ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMzNjcxMQotLS0gL2Rldi9udWxsCisrKyBiL01ha2VmaWxlCkBAIC0wLDAgKzEsMTQ1IEBACisjCisjICAgIENvcHlyaWdodCAoYykgMjAxMC0yMDExIE5lc3QsIEluYy4KKyMgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgICAgVGhpcyBkb2N1bWVudCBpcyB0aGUgcHJvcGVydHkgb2YgTmVzdC4gSXQgaXMgY29uc2lkZXJlZAorIyAgICBjb25maWRlbnRpYWwgYW5kIHByb3ByaWV0YXJ5IGluZm9ybWF0aW9uLgorIworIyAgICBUaGlzIGRvY3VtZW50IG1heSBub3QgYmUgcmVwcm9kdWNlZCBvciB0cmFuc21pdHRlZCBpbiBhbnkgZm9ybSwKKyMgICAgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCB0aGUgZXhwcmVzcyB3cml0dGVuIHBlcm1pc3Npb24gb2YKKyMgICAgTmVzdC4KKyMKKyMgICAgRGVzY3JpcHRpb246CisjICAgICAgVGhpcyBmaWxlIGlzIHRoZSBtYWtlIGZpbGUgZm9yIHV0aWwtbGludXgsIGEgdmFyaWV0eSBvZiBsb3ctCisjICAgICAgbGV2ZWwgc3lzdGVtIHV0aWxpdGllcyBmb3IgTGludXguCisjCisKK0J1aWxkQ29uZmlnU3BlY2lhbGl6ZWQJOj0gTm8KK0J1aWxkUHJvZHVjdFNwZWNpYWxpemVkCTo9IE5vCisKK2luY2x1ZGUgcHJlLm1haworCitQYWNrYWdlTmFtZQkJOj0gdXRpbC1saW51eC1uZworCitQYWNrYWdlRXh0ZW5zaW9uCTo9IHRhci5iejIKK1BhY2thZ2VTZXBhcmF0b3IJOj0gLQorCitQYWNrYWdlQXJjaGl2ZQkJOj0gJChQYWNrYWdlTmFtZSkuJChQYWNrYWdlRXh0ZW5zaW9uKQorUGFja2FnZVNvdXJjZURpcgk6PSAkKFBhY2thZ2VOYW1lKSQoUGFja2FnZVNlcGFyYXRvcikkKFBhY2thZ2VWZXJzaW9uKQorCitQYWNrYWdlQnVpbGRNYWtlZmlsZQk9ICQoY2FsbCBHZW5lcmF0ZUJ1aWxkUGF0aHMsTWFrZWZpbGUpCisKK0NsZWFuUGF0aHMJCSs9ICQoUGFja2FnZUxpY2Vuc2VGaWxlKQorCitMaW51eERpcgkJOj0gc3cvdHBzL2xpbnV4CitMaW51eEluY0RpcgkJOj0gJChjYWxsIEdlbmVyYXRlUmVzdWx0UGF0aHMsJChMaW51eERpciksaW5jbHVkZSkKKworTkN1cnNlc0RpcgkJOj0gc3cvdHBzL25jdXJzZXMKK05DdXJzZXNJbmNEaXIJCTo9ICQoY2FsbCBHZW5lcmF0ZVJlc3VsdFBhdGhzLCQoTkN1cnNlc0RpciksdXNyL2luY2x1ZGUpCitOQ3Vyc2VzTGliRGlyCQk6PSAkKGNhbGwgR2VuZXJhdGVSZXN1bHRQYXRocywkKE5DdXJzZXNEaXIpLHVzci9saWIpCisKK2FsbDogJChQYWNrYWdlRGVmYXVsdEdvYWwpCisKKyMgR2VuZXJhdGUgdGhlIHBhY2thZ2UgbGljZW5zZSBjb250ZW50cy4KKworJChQYWNrYWdlU291cmNlRGlyKS9DT1BZSU5HOiBzb3VyY2UKKworJChQYWNrYWdlTGljZW5zZUZpbGUpOiAkKFBhY2thZ2VTb3VyY2VEaXIpL0NPUFlJTkcKKwkkKGNvcHktcmVzdWx0KQorCisjIEV4dHJhY3QgdGhlIHNvdXJjZSBmcm9tIHRoZSBhcmNoaXZlIGFuZCBhcHBseSBwYXRjaGVzLCBpZiBhbnkuCisKKyQoUGFja2FnZVNvdXJjZURpcik6ICQoUGFja2FnZUFyY2hpdmUpICQoUGFja2FnZVBhdGNoUGF0aHMpCisJJChleHBhbmQtYW5kLXBhdGNoLXBhY2thZ2UpCisKKyMgUHJlcGFyZSB0aGUgc291cmNlcy4KKworLlBIT05ZOiBzb3VyY2UKK3NvdXJjZTogfCAkKFBhY2thZ2VTb3VyY2VEaXIpCisKKyMgUGF0Y2ggdGhlIHNvdXJjZXMsIGlmIG5lY2Vzc2FyeS4KKworLlBIT05ZOiBwYXRjaAorcGF0Y2g6IHNvdXJjZQorCisjIEdlbmVyYXRlIHRoZSBwYWNrYWdlIGJ1aWxkIG1ha2VmaWxlLgorCiskKFBhY2thZ2VCdWlsZE1ha2VmaWxlKTogfCAkKFBhY2thZ2VTb3VyY2VEaXIpICQoQnVpbGREaXJlY3RvcnkpCisJJChWZXJib3NlKWNkICQoQnVpbGREaXJlY3RvcnkpICYmIFwKKwkkKENVUkRJUikvJChQYWNrYWdlU291cmNlRGlyKS9jb25maWd1cmUgXAorCUNDPSIkKENDKSIgQ1hYPSIkKENYWCkiIEFSPSQoQVIpIFJBTkxJQj0kKFJBTkxJQikgU1RSSVA9JChTVFJJUCkgXAorCUNQUEZMQUdTPSIkKGNhbGwgVG9vbEdlbmVyYXRlSW5jbHVkZUFyZ3VtZW50LCQoTGludXhJbmNEaXIpKSBcCisJJChjYWxsIFRvb2xHZW5lcmF0ZUluY2x1ZGVBcmd1bWVudCwkKE5DdXJzZXNJbmNEaXIpKSIgXAorCUlOU1RBTEw9IiQoSU5TVEFMTCkgJChJTlNUQUxMRkxBR1MpIiBcCisJTERGTEFHUz0iLUwkKE5DdXJzZXNMaWJEaXIpIiBcCisJLS1idWlsZD0kKEhvc3RUdXBsZSkgXAorCS0taG9zdD0kKFRhcmdldFR1cGxlKSBcCisJLS1wcmVmaXg9L3VzciBcCisJLS1zeXNjb25mZGlyPS9ldGMgXAorCS0tbG9jYWxzdGF0ZWRpcj0vdmFyIFwKKwktLWRpc2FibGUtYWdldHR5IFwKKwktLWRpc2FibGUtY3JhbWZzIFwKKwktLWRpc2FibGUtZWx2dHVuZSBcCisJLS1kaXNhYmxlLWZhbGxvY2F0ZSBcCisJLS1kaXNhYmxlLWZzY2sgXAorCS0tZGlzYWJsZS1pbml0IFwKKwktLWRpc2FibGUta2lsbCBcCisJLS1kaXNhYmxlLWxhc3QgXAorCS0tZGlzYWJsZS1sb2dpbi11dGlscyBcCisJLS1kaXNhYmxlLW1ha2VpbnN0YWxsLWNob3duIFwKKwktLWRpc2FibGUtbWFrZWluc3RhbGwtc2V0dWlkIFwKKwktLWRpc2FibGUtbWVzZyBcCisJLS1kaXNhYmxlLW5scyBcCisJLS1kaXNhYmxlLXBhcnR4IFwKKwktLWRpc2FibGUtcGl2b3Rfcm9vdCBcCisJLS1kaXNhYmxlLXJhdyBcCisJLS1kaXNhYmxlLXJkZXYgXAorCS0tZGlzYWJsZS1yZW5hbWUgXAorCS0tZGlzYWJsZS1yZXNldCBcCisJLS1kaXNhYmxlLXNjaGVkdXRpbHMgXAorCS0tZGlzYWJsZS1zd2l0Y2hfcm9vdCBcCisJLS1kaXNhYmxlLXRscyBcCisJLS1kaXNhYmxlLXVuc2hhcmUgXAorCS0tZGlzYWJsZS11dWlkZCBcCisJLS1kaXNhYmxlLXdhbGwgXAorCS0tZGlzYWJsZS13cml0ZSBcCisJLS1lbmFibGUtbGliYmxraWQgXAorCS0tZW5hYmxlLWxpYnV1aWQgXAorCS0td2l0aC1uY3Vyc2VzIFwKKwktLXdpdGhvdXQtc2xhbmcgXAorCS0td2l0aG91dC1wYW0gXAorCS0td2l0aG91dC1zZWxpbnV4IFwKKwktLXdpdGhvdXQtYXVkaXQKKworIyBDb25maWd1cmUgdGhlIHNvdXJjZSBmb3IgYnVpbGRpbmcuCisKKy5QSE9OWTogY29uZmlndXJlCitjb25maWd1cmU6IHNvdXJjZSAkKFBhY2thZ2VCdWlsZE1ha2VmaWxlKQorCisjIEJ1aWxkIHRoZSBzb3VyY2UuCisjCisjIFdlIGhhdmUgdG8gdW5zZXQgTUFLRUZMQUdTIHNpbmNlIHRoZXkgY29uZnVzZSB0aGUgcGFja2FnZSBidWlsZCBvdGhlcndpc2UuCisKKy5QSE9OWTogYnVpbGQKK2J1aWxkOiBjb25maWd1cmUKKwkkKFZlcmJvc2UpdW5zZXQgTUFLRUZMQUdTICYmIFwKKwkkKE1BS0UpICQoSk9CU0ZMQUcpIC1DICQoQnVpbGREaXJlY3RvcnkpIFwKKwlhbGwKKworIyBTdGFnZSB0aGUgYnVpbGQgdG8gYSB0ZW1wb3JhcnkgaW5zdGFsbGF0aW9uIGFyZWEuCisjCisjIFdlIGhhdmUgdG8gdW5zZXQgTUFLRUZMQUdTIHNpbmNlIHRoZXkgY29uZnVzZSB0aGUgcGFja2FnZSBidWlsZCBvdGhlcndpc2UuCisKKy5QSE9OWTogc3RhZ2UKK3N0YWdlOiBidWlsZCB8ICQoUmVzdWx0RGlyZWN0b3J5KQorCSQoVmVyYm9zZSl1bnNldCBNQUtFRkxBR1MgJiYgXAorCSQoTUFLRSkgJChKT0JTRkxBRykgLUMgJChCdWlsZERpcmVjdG9yeSkgXAorCURFU1RESVI9JChSZXN1bHREaXJlY3RvcnkpIFwKKwlpbnN0YWxsCisKK2NsZWFuOgorCSQoVmVyYm9zZSkkKFJNKSAkKFJNRkxBR1MpIC1yICQoUGFja2FnZVNvdXJjZURpcikKKwkkKFZlcmJvc2UpJChSTSkgJChSTUZMQUdTKSAtciAkKEJ1aWxkRGlyZWN0b3J5KQorCSQoVmVyYm9zZSkkKFJNKSAkKFJNRkxBR1MpIC1yICQoUmVzdWx0RGlyZWN0b3J5KQorCitpbmNsdWRlIHBvc3QubWFrCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9BQk9VVC1OTFMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9BQk9VVC1OTFMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY1MGM2NgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL0FCT1VULU5MUwpAQCAtMCwwICsxLDc2OCBAQAorTm90ZXMgb24gdGhlIEZyZWUgVHJhbnNsYXRpb24gUHJvamVjdAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitGcmVlIHNvZnR3YXJlIGlzIGdvaW5nIGludGVybmF0aW9uYWwhICBUaGUgRnJlZSBUcmFuc2xhdGlvbiBQcm9qZWN0IGlzCithIHdheSB0byBnZXQgbWFpbnRhaW5lcnMgb2YgZnJlZSBzb2Z0d2FyZSwgdHJhbnNsYXRvcnMsIGFuZCB1c2VycyBhbGwKK3RvZ2V0aGVyLCBzbyB0aGF0IHdpbGwgZ3JhZHVhbGx5IGJlY29tZSBhYmxlIHRvIHNwZWFrIG1hbnkgbGFuZ3VhZ2VzLgorQSBmZXcgcGFja2FnZXMgYWxyZWFkeSBwcm92aWRlIHRyYW5zbGF0aW9ucyBmb3IgdGhlaXIgbWVzc2FnZXMuCisKKyAgIElmIHlvdSBmb3VuZCB0aGlzIGBBQk9VVC1OTFMnIGZpbGUgaW5zaWRlIGEgZGlzdHJpYnV0aW9uLCB5b3UgbWF5Cithc3N1bWUgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgcGFja2FnZSBkb2VzIHVzZSBHTlUgYGdldHRleHQnIGludGVybmFsbHksCitpdHNlbGYgYXZhaWxhYmxlIGF0IHlvdXIgbmVhcmVzdCBHTlUgYXJjaGl2ZSBzaXRlLiAgQnV0IHlvdSBkbyBfbm90XworbmVlZCB0byBpbnN0YWxsIEdOVSBgZ2V0dGV4dCcgcHJpb3IgdG8gY29uZmlndXJpbmcsIGluc3RhbGxpbmcgb3IgdXNpbmcKK3RoaXMgcGFja2FnZSB3aXRoIG1lc3NhZ2VzIHRyYW5zbGF0ZWQuCisKKyAgIEluc3RhbGxlcnMgd2lsbCBmaW5kIGhlcmUgc29tZSB1c2VmdWwgaGludHMuICBUaGVzZSBub3RlcyBhbHNvCitleHBsYWluIGhvdyB1c2VycyBzaG91bGQgcHJvY2VlZCBmb3IgZ2V0dGluZyB0aGUgcHJvZ3JhbXMgdG8gdXNlIHRoZQorYXZhaWxhYmxlIHRyYW5zbGF0aW9ucy4gIFRoZXkgdGVsbCBob3cgcGVvcGxlIHdhbnRpbmcgdG8gY29udHJpYnV0ZSBhbmQKK3dvcmsgYXQgdHJhbnNsYXRpb25zIHNob3VsZCBjb250YWN0IHRoZSBhcHByb3ByaWF0ZSB0ZWFtLgorCisgICBXaGVuIHJlcG9ydGluZyBidWdzIGluIHRoZSBgaW50bC8nIGRpcmVjdG9yeSBvciBidWdzIHdoaWNoIG1heSBiZQorcmVsYXRlZCB0byBpbnRlcm5hdGlvbmFsaXphdGlvbiwgeW91IHNob3VsZCB0ZWxsIGFib3V0IHRoZSB2ZXJzaW9uIG9mCitgZ2V0dGV4dCcgd2hpY2ggaXMgdXNlZC4gIFRoZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gdGhlCitgaW50bC9WRVJTSU9OJyBmaWxlLCBpbiBpbnRlcm5hdGlvbmFsaXplZCBwYWNrYWdlcy4KKworUXVpY2sgY29uZmlndXJhdGlvbiBhZHZpY2UKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0lmIHlvdSB3YW50IHRvIGV4cGxvaXQgdGhlIGZ1bGwgcG93ZXIgb2YgaW50ZXJuYXRpb25hbGl6YXRpb24sIHlvdQorc2hvdWxkIGNvbmZpZ3VyZSBpdCB1c2luZworCisgICAgIC4vY29uZmlndXJlIC0td2l0aC1pbmNsdWRlZC1nZXR0ZXh0CisKK3RvIGZvcmNlIHVzYWdlIG9mIGludGVybmF0aW9uYWxpemluZyByb3V0aW5lcyBwcm92aWRlZCB3aXRoaW4gdGhpcworcGFja2FnZSwgZGVzcGl0ZSB0aGUgZXhpc3RlbmNlIG9mIGludGVybmF0aW9uYWxpemluZyBjYXBhYmlsaXRpZXMgaW4gdGhlCitvcGVyYXRpbmcgc3lzdGVtIHdoZXJlIHRoaXMgcGFja2FnZSBpcyBiZWluZyBpbnN0YWxsZWQuICBTbyBmYXIsIG9ubHkKK3RoZSBgZ2V0dGV4dCcgaW1wbGVtZW50YXRpb24gaW4gdGhlIEdOVSBDIGxpYnJhcnkgdmVyc2lvbiAyIHByb3ZpZGVzIGFzCittYW55IGZlYXR1cmVzIChzdWNoIGFzIGxvY2FsZSBhbGlhcywgbWVzc2FnZSBpbmhlcml0YW5jZSwgYXV0b21hdGljCitjaGFyc2V0IGNvbnZlcnNpb24gb3IgcGx1cmFsIGZvcm0gaGFuZGxpbmcpIGFzIHRoZSBpbXBsZW1lbnRhdGlvbiBoZXJlLgorSXQgaXMgYWxzbyBub3QgcG9zc2libGUgdG8gb2ZmZXIgdGhpcyBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHkgb24gdG9wCitvZiBhIGBjYXRnZXRzJyBpbXBsZW1lbnRhdGlvbi4gIEZ1dHVyZSB2ZXJzaW9ucyBvZiBHTlUgYGdldHRleHQnIHdpbGwKK3ZlcnkgbGlrZWx5IGNvbnZleSBldmVuIG1vcmUgZnVuY3Rpb25hbGl0eS4gIFNvIGl0IG1pZ2h0IGJlIGEgZ29vZCBpZGVhCit0byBjaGFuZ2UgdG8gR05VIGBnZXR0ZXh0JyBhcyBzb29uIGFzIHBvc3NpYmxlLgorCisgICBTbyB5b3UgbmVlZCBfbm90XyBwcm92aWRlIHRoaXMgb3B0aW9uIGlmIHlvdSBhcmUgdXNpbmcgR05VIGxpYmMgMiBvcgoreW91IGhhdmUgaW5zdGFsbGVkIGEgcmVjZW50IGNvcHkgb2YgdGhlIEdOVSBnZXR0ZXh0IHBhY2thZ2Ugd2l0aCB0aGUKK2luY2x1ZGVkIGBsaWJpbnRsJy4KKworSU5TVEFMTCBNYXR0ZXJzCis9PT09PT09PT09PT09PT0KKworU29tZSBwYWNrYWdlcyBhcmUgImxvY2FsaXphYmxlIiB3aGVuIHByb3Blcmx5IGluc3RhbGxlZDsgdGhlIHByb2dyYW1zCit0aGV5IGNvbnRhaW4gY2FuIGJlIG1hZGUgdG8gc3BlYWsgeW91ciBvd24gbmF0aXZlIGxhbmd1YWdlLiAgTW9zdCBzdWNoCitwYWNrYWdlcyB1c2UgR05VIGBnZXR0ZXh0Jy4gIE90aGVyIHBhY2thZ2VzIGhhdmUgdGhlaXIgb3duIHdheXMgdG8KK2ludGVybmF0aW9uYWxpemF0aW9uLCBwcmVkYXRpbmcgR05VIGBnZXR0ZXh0Jy4KKworICAgQnkgZGVmYXVsdCwgdGhpcyBwYWNrYWdlIHdpbGwgYmUgaW5zdGFsbGVkIHRvIGFsbG93IHRyYW5zbGF0aW9uIG9mCittZXNzYWdlcy4gIEl0IHdpbGwgYXV0b21hdGljYWxseSBkZXRlY3Qgd2hldGhlciB0aGUgc3lzdGVtIGFscmVhZHkKK3Byb3ZpZGVzIHRoZSBHTlUgYGdldHRleHQnIGZ1bmN0aW9ucy4gIElmIG5vdCwgdGhlIEdOVSBgZ2V0dGV4dCcgb3duCitsaWJyYXJ5IHdpbGwgYmUgdXNlZC4gIFRoaXMgbGlicmFyeSBpcyB3aG9sbHkgY29udGFpbmVkIHdpdGhpbiB0aGlzCitwYWNrYWdlLCB1c3VhbGx5IGluIHRoZSBgaW50bC8nIHN1YmRpcmVjdG9yeSwgc28gcHJpb3IgaW5zdGFsbGF0aW9uIG9mCit0aGUgR05VIGBnZXR0ZXh0JyBwYWNrYWdlIGlzIF9ub3RfIHJlcXVpcmVkLiAgSW5zdGFsbGVycyBtYXkgdXNlCitzcGVjaWFsIG9wdGlvbnMgYXQgY29uZmlndXJhdGlvbiB0aW1lIGZvciBjaGFuZ2luZyB0aGUgZGVmYXVsdAorYmVoYXZpb3VyLiAgVGhlIGNvbW1hbmRzOgorCisgICAgIC4vY29uZmlndXJlIC0td2l0aC1pbmNsdWRlZC1nZXR0ZXh0CisgICAgIC4vY29uZmlndXJlIC0tZGlzYWJsZS1ubHMKKword2lsbCByZXNwZWN0aXZlbHkgYnlwYXNzIGFueSBwcmUtZXhpc3RpbmcgYGdldHRleHQnIHRvIHVzZSB0aGUKK2ludGVybmF0aW9uYWxpemluZyByb3V0aW5lcyBwcm92aWRlZCB3aXRoaW4gdGhpcyBwYWNrYWdlLCBvciBlbHNlLAorX3RvdGFsbHlfIGRpc2FibGUgdHJhbnNsYXRpb24gb2YgbWVzc2FnZXMuCisKKyAgIFdoZW4geW91IGFscmVhZHkgaGF2ZSBHTlUgYGdldHRleHQnIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSBhbmQgcnVuCitjb25maWd1cmUgd2l0aG91dCBhbiBvcHRpb24gZm9yIHlvdXIgbmV3IHBhY2thZ2UsIGBjb25maWd1cmUnIHdpbGwKK3Byb2JhYmx5IGRldGVjdCB0aGUgcHJldmlvdXNseSBidWlsdCBhbmQgaW5zdGFsbGVkIGBsaWJpbnRsLmEnIGZpbGUgYW5kCit3aWxsIGRlY2lkZSB0byB1c2UgdGhpcy4gIFRoaXMgbWlnaHQgYmUgbm90IHdoYXQgaXMgZGVzaXJhYmxlLiAgWW91CitzaG91bGQgdXNlIHRoZSBtb3JlIHJlY2VudCB2ZXJzaW9uIG9mIHRoZSBHTlUgYGdldHRleHQnIGxpYnJhcnkuICBJLmUuCitpZiB0aGUgZmlsZSBgaW50bC9WRVJTSU9OJyBzaG93cyB0aGF0IHRoZSBsaWJyYXJ5IHdoaWNoIGNvbWVzIHdpdGggdGhpcworcGFja2FnZSBpcyBtb3JlIHJlY2VudCwgeW91IHNob3VsZCB1c2UKKworICAgICAuL2NvbmZpZ3VyZSAtLXdpdGgtaW5jbHVkZWQtZ2V0dGV4dAorCit0byBwcmV2ZW50IGF1dG8tZGV0ZWN0aW9uLgorCisgICBUaGUgY29uZmlndXJhdGlvbiBwcm9jZXNzIHdpbGwgbm90IHRlc3QgZm9yIHRoZSBgY2F0Z2V0cycgZnVuY3Rpb24KK2FuZCB0aGVyZWZvcmUgaXQgd2lsbCBub3QgYmUgdXNlZC4gIFRoZSByZWFzb24gaXMgdGhhdCBldmVuIGFuCitlbXVsYXRpb24gb2YgYGdldHRleHQnIG9uIHRvcCBvZiBgY2F0Z2V0cycgY291bGQgbm90IHByb3ZpZGUgYWxsIHRoZQorZXh0ZW5zaW9ucyBvZiB0aGUgR05VIGBnZXR0ZXh0JyBsaWJyYXJ5LgorCisgICBJbnRlcm5hdGlvbmFsaXplZCBwYWNrYWdlcyBoYXZlIHVzdWFsbHkgbWFueSBgcG8vTEwucG8nIGZpbGVzLCB3aGVyZQorTEwgZ2l2ZXMgYW4gSVNPIDYzOSB0d28tbGV0dGVyIGNvZGUgaWRlbnRpZnlpbmcgdGhlIGxhbmd1YWdlLiAgVW5sZXNzCit0cmFuc2xhdGlvbnMgaGF2ZSBiZWVuIGZvcmJpZGRlbiBhdCBgY29uZmlndXJlJyB0aW1lIGJ5IHVzaW5nIHRoZQorYC0tZGlzYWJsZS1ubHMnIHN3aXRjaCwgYWxsIGF2YWlsYWJsZSB0cmFuc2xhdGlvbnMgYXJlIGluc3RhbGxlZAordG9nZXRoZXIgd2l0aCB0aGUgcGFja2FnZS4gIEhvd2V2ZXIsIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgTElOR1VBUycKK21heSBiZSBzZXQsIHByaW9yIHRvIGNvbmZpZ3VyYXRpb24sIHRvIGxpbWl0IHRoZSBpbnN0YWxsZWQgc2V0LgorYExJTkdVQVMnIHNob3VsZCB0aGVuIGNvbnRhaW4gYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiB0d28tbGV0dGVyCitjb2Rlcywgc3RhdGluZyB3aGljaCBsYW5ndWFnZXMgYXJlIGFsbG93ZWQuCisKK1VzaW5nIFRoaXMgUGFja2FnZQorPT09PT09PT09PT09PT09PT09CisKK0FzIGEgdXNlciwgaWYgeW91ciBsYW5ndWFnZSBoYXMgYmVlbiBpbnN0YWxsZWQgZm9yIHRoaXMgcGFja2FnZSwgeW91Citvbmx5IGhhdmUgdG8gc2V0IHRoZSBgTEFORycgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIGFwcHJvcHJpYXRlCitgTExfQ0MnIGNvbWJpbmF0aW9uLiAgSGVyZSBgTEwnIGlzIGFuIElTTyA2MzkgdHdvLWxldHRlciBsYW5ndWFnZSBjb2RlLAorYW5kIGBDQycgaXMgYW4gSVNPIDMxNjYgdHdvLWxldHRlciBjb3VudHJ5IGNvZGUuICBGb3IgZXhhbXBsZSwgbGV0J3MKK3N1cHBvc2UgdGhhdCB5b3Ugc3BlYWsgR2VybWFuIGFuZCBsaXZlIGluIEdlcm1hbnkuICBBdCB0aGUgc2hlbGwKK3Byb21wdCwgbWVyZWx5IGV4ZWN1dGUgYHNldGVudiBMQU5HIGRlX0RFJyAoaW4gYGNzaCcpLAorYGV4cG9ydCBMQU5HOyBMQU5HPWRlX0RFJyAoaW4gYHNoJykgb3IgYGV4cG9ydCBMQU5HPWRlX0RFJyAoaW4gYGJhc2gnKS4KK1RoaXMgY2FuIGJlIGRvbmUgZnJvbSB5b3VyIGAubG9naW4nIG9yIGAucHJvZmlsZScgZmlsZSwgb25jZSBhbmQgZm9yCithbGwuCisKKyAgIFlvdSBtaWdodCB0aGluayB0aGF0IHRoZSBjb3VudHJ5IGNvZGUgc3BlY2lmaWNhdGlvbiBpcyByZWR1bmRhbnQuCitCdXQgaW4gZmFjdCwgc29tZSBsYW5ndWFnZXMgaGF2ZSBkaWFsZWN0cyBpbiBkaWZmZXJlbnQgY291bnRyaWVzLiAgRm9yCitleGFtcGxlLCBgZGVfQVQnIGlzIHVzZWQgZm9yIEF1c3RyaWEsIGFuZCBgcHRfQlInIGZvciBCcmF6aWwuICBUaGUKK2NvdW50cnkgY29kZSBzZXJ2ZXMgdG8gZGlzdGluZ3Vpc2ggdGhlIGRpYWxlY3RzLgorCisgICBUaGUgbG9jYWxlIG5hbWluZyBjb252ZW50aW9uIG9mIGBMTF9DQycsIHdpdGggYExMJyBkZW5vdGluZyB0aGUKK2xhbmd1YWdlIGFuZCBgQ0MnIGRlbm90aW5nIHRoZSBjb3VudHJ5LCBpcyB0aGUgb25lIHVzZSBvbiBzeXN0ZW1zIGJhc2VkCitvbiBHTlUgbGliYy4gIE9uIG90aGVyIHN5c3RlbXMsIHNvbWUgdmFyaWF0aW9ucyBvZiB0aGlzIHNjaGVtZSBhcmUKK3VzZWQsIHN1Y2ggYXMgYExMJyBvciBgTExfQ0MuRU5DT0RJTkcnLiAgWW91IGNhbiBnZXQgdGhlIGxpc3Qgb2YKK2xvY2FsZXMgc3VwcG9ydGVkIGJ5IHlvdXIgc3lzdGVtIGZvciB5b3VyIGNvdW50cnkgYnkgcnVubmluZyB0aGUgY29tbWFuZAorYGxvY2FsZSAtYSB8IGdyZXAgJ15MTCcnLgorCisgICBOb3QgYWxsIHByb2dyYW1zIGhhdmUgdHJhbnNsYXRpb25zIGZvciBhbGwgbGFuZ3VhZ2VzLiAgQnkgZGVmYXVsdCwgYW4KK0VuZ2xpc2ggbWVzc2FnZSBpcyBzaG93biBpbiBwbGFjZSBvZiBhIG5vbmV4aXN0ZW50IHRyYW5zbGF0aW9uLiAgSWYgeW91Cit1bmRlcnN0YW5kIG90aGVyIGxhbmd1YWdlcywgeW91IGNhbiBzZXQgdXAgYSBwcmlvcml0eSBsaXN0IG9mIGxhbmd1YWdlcy4KK1RoaXMgaXMgZG9uZSB0aHJvdWdoIGEgZGlmZmVyZW50IGVudmlyb25tZW50IHZhcmlhYmxlLCBjYWxsZWQKK2BMQU5HVUFHRScuICBHTlUgYGdldHRleHQnIGdpdmVzIHByZWZlcmVuY2UgdG8gYExBTkdVQUdFJyBvdmVyIGBMQU5HJworZm9yIHRoZSBwdXJwb3NlIG9mIG1lc3NhZ2UgaGFuZGxpbmcsIGJ1dCB5b3Ugc3RpbGwgbmVlZCB0byBoYXZlIGBMQU5HJworc2V0IHRvIHRoZSBwcmltYXJ5IGxhbmd1YWdlOyB0aGlzIGlzIHJlcXVpcmVkIGJ5IG90aGVyIHBhcnRzIG9mIHRoZQorc3lzdGVtIGxpYnJhcmllcy4gIEZvciBleGFtcGxlLCBzb21lIFN3ZWRpc2ggdXNlcnMgd2hvIHdvdWxkIHJhdGhlcgorcmVhZCB0cmFuc2xhdGlvbnMgaW4gR2VybWFuIHRoYW4gRW5nbGlzaCBmb3Igd2hlbiBTd2VkaXNoIGlzIG5vdAorYXZhaWxhYmxlLCBzZXQgYExBTkdVQUdFJyB0byBgc3Y6ZGUnIHdoaWxlIGxlYXZpbmcgYExBTkcnIHRvIGBzdl9TRScuCisKKyAgIFNwZWNpYWwgYWR2aWNlIGZvciBOb3J3ZWdpYW4gdXNlcnM6IFRoZSBsYW5ndWFnZSBjb2RlIGZvciBOb3J3ZWdpYW4KK2Jva21hKmwgY2hhbmdlZCBmcm9tIGBubycgdG8gYG5iJyByZWNlbnRseSAoaW4gMjAwMykuICBEdXJpbmcgdGhlCit0cmFuc2l0aW9uIHBlcmlvZCwgd2hpbGUgc29tZSBtZXNzYWdlIGNhdGFsb2dzIGZvciB0aGlzIGxhbmd1YWdlIGFyZQoraW5zdGFsbGVkIHVuZGVyIGBuYicgYW5kIHNvbWUgb2xkZXIgb25lcyB1bmRlciBgbm8nLCBpdCdzIHJlY29tbWVuZGVkCitmb3IgTm9yd2VnaWFuIHVzZXJzIHRvIHNldCBgTEFOR1VBR0UnIHRvIGBuYjpubycgc28gdGhhdCBib3RoIG5ld2VyIGFuZAorb2xkZXIgdHJhbnNsYXRpb25zIGFyZSB1c2VkLgorCisgICBJbiB0aGUgYExBTkdVQUdFJyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYnV0IG5vdCBpbiB0aGUgYExBTkcnCitlbnZpcm9ubWVudCB2YXJpYWJsZSwgYExMX0NDJyBjb21iaW5hdGlvbnMgY2FuIGJlIGFiYnJldmlhdGVkIGFzIGBMTCcKK3RvIGRlbm90ZSB0aGUgbGFuZ3VhZ2UncyBtYWluIGRpYWxlY3QuICBGb3IgZXhhbXBsZSwgYGRlJyBpcyBlcXVpdmFsZW50Cit0byBgZGVfREUnIChHZXJtYW4gYXMgc3Bva2VuIGluIEdlcm1hbnkpLCBhbmQgYHB0JyB0byBgcHRfUFQnCisoUG9ydHVndWVzZSBhcyBzcG9rZW4gaW4gUG9ydHVnYWwpIGluIHRoaXMgY29udGV4dC4KKworVHJhbnNsYXRpbmcgVGVhbXMKKz09PT09PT09PT09PT09PT09CisKK0ZvciB0aGUgRnJlZSBUcmFuc2xhdGlvbiBQcm9qZWN0IHRvIGJlIGEgc3VjY2Vzcywgd2UgbmVlZCBpbnRlcmVzdGVkCitwZW9wbGUgd2hvIGxpa2UgdGhlaXIgb3duIGxhbmd1YWdlIGFuZCB3cml0ZSBpdCB3ZWxsLCBhbmQgd2hvIGFyZSBhbHNvCithYmxlIHRvIHN5bmVyZ2l6ZSB3aXRoIG90aGVyIHRyYW5zbGF0b3JzIHNwZWFraW5nIHRoZSBzYW1lIGxhbmd1YWdlLgorRWFjaCB0cmFuc2xhdGlvbiB0ZWFtIGhhcyBpdHMgb3duIG1haWxpbmcgbGlzdC4gIFRoZSB1cC10by1kYXRlIGxpc3Qgb2YKK3RlYW1zIGNhbiBiZSBmb3VuZCBhdCB0aGUgRnJlZSBUcmFuc2xhdGlvbiBQcm9qZWN0J3MgaG9tZXBhZ2UsCitgaHR0cDovL3d3dy5pcm8udW1vbnRyZWFsLmNhL2NvbnRyaWIvcG8vSFRNTC8nLCBpbiB0aGUgIk5hdGlvbmFsIHRlYW1zIgorYXJlYS4KKworICAgSWYgeW91J2QgbGlrZSB0byB2b2x1bnRlZXIgdG8gX3dvcmtfIGF0IHRyYW5zbGF0aW5nIG1lc3NhZ2VzLCB5b3UKK3Nob3VsZCBiZWNvbWUgYSBtZW1iZXIgb2YgdGhlIHRyYW5zbGF0aW5nIHRlYW0gZm9yIHlvdXIgb3duIGxhbmd1YWdlLgorVGhlIHN1YnNjcmliaW5nIGFkZHJlc3MgaXMgX25vdF8gdGhlIHNhbWUgYXMgdGhlIGxpc3QgaXRzZWxmLCBpdCBoYXMKK2AtcmVxdWVzdCcgYXBwZW5kZWQuICBGb3IgZXhhbXBsZSwgc3BlYWtlcnMgb2YgU3dlZGlzaCBjYW4gc2VuZCBhCittZXNzYWdlIHRvIGBzdi1yZXF1ZXN0QGxpLm9yZycsIGhhdmluZyB0aGlzIG1lc3NhZ2UgYm9keToKKworICAgICBzdWJzY3JpYmUKKworICAgS2VlcCBpbiBtaW5kIHRoYXQgdGVhbSBtZW1iZXJzIGFyZSBleHBlY3RlZCB0byBwYXJ0aWNpcGF0ZQorX2FjdGl2ZWx5XyBpbiB0cmFuc2xhdGlvbnMsIG9yIGF0IHNvbHZpbmcgdHJhbnNsYXRpb25hbCBkaWZmaWN1bHRpZXMsCityYXRoZXIgdGhhbiBtZXJlbHkgbHVya2luZyBhcm91bmQuICBJZiB5b3VyIHRlYW0gZG9lcyBub3QgZXhpc3QgeWV0IGFuZAoreW91IHdhbnQgdG8gc3RhcnQgb25lLCBvciBpZiB5b3UgYXJlIHVuc3VyZSBhYm91dCB3aGF0IHRvIGRvIG9yIGhvdyB0bworZ2V0IHN0YXJ0ZWQsIHBsZWFzZSB3cml0ZSB0byBgdHJhbnNsYXRpb25AaXJvLnVtb250cmVhbC5jYScgdG8gcmVhY2ggdGhlCitjb29yZGluYXRvciBmb3IgYWxsIHRyYW5zbGF0b3IgdGVhbXMuCisKKyAgIFRoZSBFbmdsaXNoIHRlYW0gaXMgc3BlY2lhbC4gIEl0IHdvcmtzIGF0IGltcHJvdmluZyBhbmQgdW5pZm9ybWl6aW5nCit0aGUgdGVybWlub2xvZ3kgaW4gdXNlLiAgUHJvdmVuIGxpbmd1aXN0aWMgc2tpbGwgYXJlIHByYWlzZWQgbW9yZSB0aGFuCitwcm9ncmFtbWluZyBza2lsbCwgaGVyZS4KKworQXZhaWxhYmxlIFBhY2thZ2VzCis9PT09PT09PT09PT09PT09PT0KKworTGFuZ3VhZ2VzIGFyZSBub3QgZXF1YWxseSBzdXBwb3J0ZWQgaW4gYWxsIHBhY2thZ2VzLiAgVGhlIGZvbGxvd2luZworbWF0cml4IHNob3dzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGludGVybmF0aW9uYWxpemF0aW9uLCBhcyBvZiBKYW51YXJ5CisyMDA0LiAgVGhlIG1hdHJpeCBzaG93cywgaW4gcmVnYXJkIG9mIGVhY2ggcGFja2FnZSwgZm9yIHdoaWNoIGxhbmd1YWdlcworUE8gZmlsZXMgaGF2ZSBiZWVuIHN1Ym1pdHRlZCB0byB0cmFuc2xhdGlvbiBjb29yZGluYXRpb24sIHdpdGggYQordHJhbnNsYXRpb24gcGVyY2VudGFnZSBvZiBhdCBsZWFzdCA1MCUuCisKKyAgICAgUmVhZHkgUE8gZmlsZXMgICAgICAgYWYgYW0gYXIgYXogYmUgYmcgYnMgY2EgY3MgZGEgZGUgZWwgZW4gZW5fR0IgZW8gZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICBhMnBzICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICBbXSBbXSBbXSAgICAgICAgICAgICAgICB8CisgICAgIGFlZ2lzICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpICAgICAgICAgICAgICAgICAgIHwKKyAgICAgYW50LXBob25lICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgICAgICAgICAgICAgICAgICAgfAorICAgICBhbnViaXMgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGFwLXV0aWxzICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgYXNwZWxsICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBiYXNoICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICBbXSAgICAgICAgICAgICBbXSBbXSB8CisgICAgIGJhdGNoZWxvciAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgYmZkICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgW10gfAorICAgICBiaW51dGlscyAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICBbXSB8CisgICAgIGJpc29uICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgYmx1ZXotcGluICAgICAgICAgIHwgW10gICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBjbGlzcCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGNsaXNwICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdICAgICAgICAgIFtdIHwKKyAgICAgY29uc29sZS10b29scyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgW10gICAgICAgICAgICAgICAgICAgfAorICAgICBjb3JldXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSBbXSAgICAgICAgICAgICAgICBbXSB8CisgICAgIGNwaW8gICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgZGFya3N0YXQgICAgICAgICAgIHwgICAgICAgICAgICAgICAgW10gICAgICAgICAgKCkgICAgICAgICAgICAgICAgICAgW10gfAorICAgICBkaWZmdXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSBbXSBbXSBbXSBbXSAgICAgICAgICBbXSBbXSB8CisgICAgIGUyZnNwcm9ncyAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgZW5zY3JpcHQgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgW10gICAgW10gW10gICAgICAgIFtdICAgICAgICAgfAorICAgICBlcnJvciAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSBbXSAgICAgICAgW10gICAgICBbXSB8CisgICAgIGZldGNobWFpbCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIFtdICgpIFtdIFtdIFtdICAgICAgICAgICAgIFtdIHwKKyAgICAgZmlsZXV0aWxzICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgW10gfAorICAgICBmaW5kdXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICBbXSAgICBbXSBbXSBbXSAgICAgICAgICBbXSBbXSB8CisgICAgIGZsZXggICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgZnNsaW50ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBnYXMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSB8CisgICAgIGdhd2sgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgZ2JpZmYgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgfAorICAgICBnY2FsICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGdjYyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgZ2V0dGV4dCAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgW10gICAgW10gW10gICAgICAgICAgICAgICAgW10gfAorICAgICBnZXR0ZXh0LWV4YW1wbGVzICAgfCBbXSAgICAgICAgICAgICAgICAgICBbXSAgICAgICBbXSAgICAgICAgICAgICAgICBbXSB8CisgICAgIGdldHRleHQtcnVudGltZSAgICB8ICAgICAgICAgICAgIFtdICAgICAgIFtdICAgIFtdIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgZ2V0dGV4dC10b29scyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgW10gfAorICAgICBnaW1wLXByaW50ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSBbXSBbXSAgICAgICAgW10gICAgICBbXSB8CisgICAgIGdsaXYgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ2x1bmFyY2xvY2sgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgfAorICAgICBnbnViaWZmICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGdudWNhc2ggICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgICgpICAgICAgICBbXSAgICAgIFtdIHwKKyAgICAgZ251Y2FzaC1nbG9zc2FyeSAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gKCkgICAgICAgICAgICAgICAgW10gfAorICAgICBnbnVwZyAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAoKSAgICBbXSBbXSAgICAgICAgICBbXSBbXSB8CisgICAgIGdwZS1hZXJpYWwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLWJlYW0gICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgW10gICAgICAgICAgICAgICAgICAgfAorICAgICBncGUtY2FsZW5kYXIgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGdwZS1jbG9jayAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLWNvbmYgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgW10gICAgICAgICAgICAgICAgICAgfAorICAgICBncGUtY29udGFjdHMgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGdwZS1lZGl0ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLWdvICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBncGUtbG9naW4gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGdwZS1vd25lcmluZm8gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLXNrZXRjaGJvb2sgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgW10gICAgICAgICAgICAgICAgICAgfAorICAgICBncGUtc3UgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGdwZS10YXNrbWFuYWdlciAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLXRpbWVzaGVldCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBncGUtdG9kYXkgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGdwZS10b2RvICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ3Bob3RvMiAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gW10gICAgICAgICAgICAgICAgW10gfAorICAgICBncHJvZiAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSBbXSAgICAgICAgICAgICAgICBbXSB8CisgICAgIGdwc2RyaXZlICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpICAgICgpICAgICAgICAgICgpIHwKKyAgICAgZ3JhbWFkb2lyICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgfAorICAgICBncmVwICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSBbXSAgICBbXSAgICAgICBbXSBbXSAgICAgICAgICAgICBbXSB8CisgICAgIGdyZXRsICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgZ3RpY2sgICAgICAgICAgICAgIHwgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgICAgICAgICAgICAgICAgICAgfAorICAgICBoZWxsbyAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSBbXSBbXSAgICAgICAgICBbXSBbXSB8CisgICAgIGlkLXV0aWxzICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgICAgIHwKKyAgICAgaW5kZW50ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgW10gW10gfAorICAgICBpc29fMzE2NiAgICAgICAgICAgfCAgICAgICAgICBbXSAgICBbXSBbXSBbXSBbXSBbXSBbXSBbXSAgICAgICAgICBbXSBbXSB8CisgICAgIGlzb18zMTY2XzEgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIFtdIFtdIFtdIFtdIFtdICAgICAgICAgICAgIFtdIHwKKyAgICAgaXNvXzMxNjZfMiAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBpc29fMzE2Nl8zICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGlzb180MjE3ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgaXNvXzYzOSAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBqcGlsb3QgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSBbXSAgICAgICAgICAgICAgICAgICBbXSB8CisgICAgIGp0YWcgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgandob2lzICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gfAorICAgICBrYmQgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSBbXSBbXSBbXSAgICAgICAgICAgICBbXSB8CisgICAgIGxhdHJpbmUgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpICAgICAgICAgICAgICAgICAgIHwKKyAgICAgbGQgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgW10gfAorICAgICBsaWJjICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSBbXSBbXSBbXSBbXSAgICAgICAgICAgICBbXSB8CisgICAgIGxpYmdwZXdpZGdldCAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgIFtdICAgICAgICAgICAgICAgICAgIHwKKyAgICAgbGliaWNvbnYgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgW10gICAgW10gW10gICAgICAgICAgICAgW10gW10gfAorICAgICBsaWZlbGluZXMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAoKSAgICAgICAgICAgICAgICAgICB8CisgICAgIGxpbHlwb25kICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgIHwKKyAgICAgbGluZ290ZWFjaCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBsaW5nb3RlYWNoX2xlc3NvbnMgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSAgICAgICAgICAgICAgICAoKSB8CisgICAgIGx5bnggICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIFtdIFtdIFtdIFtdICAgICAgICAgICAgICAgICAgIHwKKyAgICAgbTQgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gW10gW10gICAgICAgICAgICAgICAgfAorICAgICBtYWlsdXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICBbXSB8CisgICAgIG1ha2UgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgbWFuLWRiICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgW10gKCkgW10gW10gICAgICAgICAgICAgICAgKCkgfAorICAgICBtaW5pY29tICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSAgICAgICAgICAgICAgICBbXSB8CisgICAgIG15c2VjcmV0ZGlhcnkgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgbmFubyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgW10gKCkgW10gW10gICAgICAgICAgICAgICAgW10gfAorICAgICBuYW5vXzFfMCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAoKSBbXSBbXSAgICAgICAgICAgICAgICBbXSB8CisgICAgIG9wY29kZXMgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgcGFydGVkICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgW10gW10gW10gW10gICAgICAgICAgICAgICAgW10gfAorICAgICBwdHggICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSBbXSAgICAgICAgICAgICBbXSBbXSB8CisgICAgIHB5dGhvbiAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgcmFkaXVzICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gfAorICAgICByZWNvZGUgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICBbXSAgICBbXSBbXSBbXSAgICAgICAgICBbXSBbXSB8CisgICAgIHJwbSAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgc2NyZWVtICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBzY3JvbGxrZWVwZXIgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICBbXSBbXSBbXSBbXSAgICAgICAgICAgICAgICBbXSB8CisgICAgIHNlZCAgICAgICAgICAgICAgICB8IFtdICAgICAgICAgICAgICAgICAgIFtdICAgIFtdIFtdICAgICAgICAgICAgIFtdIFtdIHwKKyAgICAgc2gtdXRpbHMgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgW10gfAorICAgICBzaGFyZWQtbWltZS1pbmZvICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIHNoYXJ1dGlscyAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIFtdIFtdIFtdIFtdIFtdICAgICAgICAgICAgIFtdIHwKKyAgICAgc2lsa3kgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgICAgICAgICAgICAgICAgICAgfAorICAgICBza2VuY2lsICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAoKSAgICAgICAgICAgICAgICBbXSB8CisgICAgIHNrZXRjaCAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdICgpICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgc291bmR0cmFja2VyICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgW10gfAorICAgICBzcCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIHRhciAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFtdIFtdIFtdICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgdGV4aW5mbyAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgW10gICAgfAorICAgICB0ZXh0dXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSBbXSAgICAgICAgICAgICAgICBbXSB8CisgICAgIHRpbiAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpICAgICAgICAoKSAgICAgICAgIHwKKyAgICAgdHAtcm9ib3QgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB0dXhwYWludCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSBbXSBbXSBbXSBbXSAgICAgW10gICAgICBbXSB8CisgICAgIHVuaWNvZGUtaGFuLXRyYS4uLiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgdW5pY29kZS10cmFuc2xhLi4uIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB1dGlsLWxpbnV4ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSBbXSBbXSBbXSAgICAgICAgICAgICAgICBbXSB8CisgICAgIHZvcmJpcy10b29scyAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgd2FzdGVzZWRnZSAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgICAgICAgICAgICAgICAgICAgfAorICAgICB3ZGlmZiAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSBbXSAgICAgICAgICAgICAgICBbXSB8CisgICAgIHdnZXQgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIFtdICAgIFtdICAgIFtdIFtdIFtdICAgICAgICAgICAgIFtdIHwKKyAgICAgeGNoYXQgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgW10gW10gICAgICAgICAgICAgW10gfAorICAgICB4ZnJlZTg2X3hrYl94bWwgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSBbXSAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIHhwYWQgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgICAgICAgICAgICAgICAgICBhZiBhbSBhciBheiBiZSBiZyBicyBjYSBjcyBkYSBkZSBlbCBlbiBlbl9HQiBlbyBlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAgMCAgMCAgMSAgOSAgNCAgMSA0MCA0MSA2MCA3OCAxNyAgMSAgIDUgICAxMyA2OAorICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZXQgZXUgZmEgZmkgZnIgZ2EgZ2wgaGUgaHIgaHUgaWQgaXMgaXQgamEga28gbGcKKyAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICBhMnBzICAgICAgICAgICAgICAgfCBbXSAgICAgICBbXSBbXSAgICAgICAgICAgICAgICAgICAgICAoKSAgICAoKSAgICB8CisgICAgIGFlZ2lzICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgYW50LXBob25lICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBhbnViaXMgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGFwLXV0aWxzICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgYXNwZWxsICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBiYXNoICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGJhdGNoZWxvciAgICAgICAgICB8ICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgYmZkICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBiaW51dGlscyAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICB8CisgICAgIGJpc29uICAgICAgICAgICAgICB8IFtdICAgICAgICAgIFtdICAgICAgICAgICAgICAgIFtdICAgIFtdICAgICAgICAgIHwKKyAgICAgYmx1ZXotcGluICAgICAgICAgIHwgICAgICAgICAgW10gW10gW10gICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgfAorICAgICBjbGlzcCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGNsaXNwICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgY29uc29sZS10b29scyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBjb3JldXRpbHMgICAgICAgICAgfCBbXSAgICAgICBbXSBbXSBbXSAgICAgICAgICAgICAgICAgICBbXSBbXSAgICAgICB8CisgICAgIGNwaW8gICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgIFtdICAgICAgIFtdICAgICAgICAgICAgIFtdICAgIHwKKyAgICAgZGFya3N0YXQgICAgICAgICAgIHwgICAgICAgICAgICAgKCkgW10gICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgfAorICAgICBkaWZmdXRpbHMgICAgICAgICAgfCAgICAgICAgICBbXSBbXSAgICBbXSBbXSAgICBbXSBbXSAgICAgICBbXSAgICAgICB8CisgICAgIGUyZnNwcm9ncyAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZW5zY3JpcHQgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgfAorICAgICBlcnJvciAgICAgICAgICAgICAgfCAgICAgICAgICBbXSBbXSBbXSAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGZldGNobWFpbCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgICAgIHwKKyAgICAgZmlsZXV0aWxzICAgICAgICAgIHwgW10gICAgICAgICAgW10gW10gICAgICAgICAgW10gICAgICAgW10gW10gICAgICAgfAorICAgICBmaW5kdXRpbHMgICAgICAgICAgfCBbXSAgICAgICBbXSBbXSBbXSBbXSAgICBbXSBbXSBbXSAgICBbXSBbXSBbXSAgICB8CisgICAgIGZsZXggICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgIHwKKyAgICAgZnNsaW50ICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBnYXMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGdhd2sgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgIFtdICAgICAgICAgICAgICAgIFtdICAgICAgIHwKKyAgICAgZ2JpZmYgICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBnY2FsICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGdjYyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ2V0dGV4dCAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gICAgfAorICAgICBnZXR0ZXh0LWV4YW1wbGVzICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICB8CisgICAgIGdldHRleHQtcnVudGltZSAgICB8ICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgIFtdICAgICAgIFtdIFtdICAgIHwKKyAgICAgZ2V0dGV4dC10b29scyAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gICAgfAorICAgICBnaW1wLXByaW50ICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICB8CisgICAgIGdsaXYgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ2x1bmFyY2xvY2sgICAgICAgIHwgICAgICAgICAgW10gICAgW10gW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgfAorICAgICBnbnViaWZmICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGdudWNhc2ggICAgICAgICAgICB8ICAgICAgICAgICAgICgpICAgICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgIHwKKyAgICAgZ251Y2FzaC1nbG9zc2FyeSAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgfAorICAgICBnbnVwZyAgICAgICAgICAgICAgfCBbXSAgICAgICBbXSBbXSAgICBbXSAgICAgICAgICBbXSAgICBbXSBbXSAgICAgICB8CisgICAgIGdwZS1hZXJpYWwgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLWJlYW0gICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBncGUtY2FsZW5kYXIgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICBbXSBbXSAgICAgICAgICAgICAgICB8CisgICAgIGdwZS1jbG9jayAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLWNvbmYgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBncGUtY29udGFjdHMgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGdwZS1lZGl0ICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLWdvICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBncGUtbG9naW4gICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIGdwZS1vd25lcmluZm8gICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLXNrZXRjaGJvb2sgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBncGUtc3UgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGdwZS10YXNrbWFuYWdlciAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgZ3BlLXRpbWVzaGVldCAgICAgIHwgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgfAorICAgICBncGUtdG9kYXkgICAgICAgICAgfCAgICAgICAgICAgICBbXSBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGdwZS10b2RvICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgIHwKKyAgICAgZ3Bob3RvMiAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgW10gICAgICAgICAgW10gICAgICAgfAorICAgICBncHJvZiAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICB8CisgICAgIGdwc2RyaXZlICAgICAgICAgICB8ICAgICAgICAgICAgICgpICAgICAgICAgICAgICAgICAgICAgICgpICgpICAgICAgIHwKKyAgICAgZ3JhbWFkb2lyICAgICAgICAgIHwgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBncmVwICAgICAgICAgICAgICAgfCBbXSAgICAgICBbXSBbXSBbXSBbXSBbXSBbXSBbXSBbXSAgICBbXSBbXSAgICAgICB8CisgICAgIGdyZXRsICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgIHwKKyAgICAgZ3RpY2sgICAgICAgICAgICAgIHwgICAgICAgICAgW10gW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBoZWxsbyAgICAgICAgICAgICAgfCBbXSAgICBbXSBbXSBbXSBbXSBbXSBbXSBbXSBbXSBbXSAgICBbXSBbXSBbXSAgICB8CisgICAgIGlkLXV0aWxzICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgIFtdIFtdICAgIFtdICAgICAgICAgIHwKKyAgICAgaW5kZW50ICAgICAgICAgICAgIHwgW10gICAgICAgW10gW10gW10gW10gICAgICAgW10gW10gICAgW10gW10gICAgICAgfAorICAgICBpc29fMzE2NiAgICAgICAgICAgfCAgICBbXSAgICAgICBbXSBbXSAgICAgICBbXSBbXSBbXSAgICBbXSAgICAgICAgICB8CisgICAgIGlzb18zMTY2XzEgICAgICAgICB8ICAgIFtdICAgICAgIFtdIFtdICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgIHwKKyAgICAgaXNvXzMxNjZfMiAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBpc29fMzE2Nl8zICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGlzb180MjE3ICAgICAgICAgICB8IFtdICAgICAgICAgIFtdICAgIFtdICAgICAgIFtdICAgICAgIFtdIFtdICAgICAgIHwKKyAgICAgaXNvXzYzOSAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBqcGlsb3QgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAoKSAgICAgICB8CisgICAgIGp0YWcgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgandob2lzICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgW10gW10gICAgW10gICAgICAgICAgfAorICAgICBrYmQgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGxhdHJpbmUgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgbGQgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBsaWJjICAgICAgICAgICAgICAgfCAgICAgICAgICBbXSBbXSAgICBbXSAgICAgICBbXSAgICAgICAgICBbXSBbXSAgICB8CisgICAgIGxpYmdwZXdpZGdldCAgICAgICB8ICAgICAgICAgICAgIFtdIFtdICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgIHwKKyAgICAgbGliaWNvbnYgICAgICAgICAgIHwgW10gICAgICAgW10gW10gW10gW10gICAgW10gW10gW10gICAgW10gICAgICAgICAgfAorICAgICBsaWZlbGluZXMgICAgICAgICAgfCAgICAgICAgICAgICAoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGxpbHlwb25kICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgbGluZ290ZWFjaCAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgfAorICAgICBsaW5nb3RlYWNoX2xlc3NvbnMgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIGx5bnggICAgICAgICAgICAgICB8IFtdICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgICAgIFtdIFtdICAgICAgIHwKKyAgICAgbTQgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgW10gICAgICAgICAgW10gICAgICAgW10gICAgICAgfAorICAgICBtYWlsdXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIG1ha2UgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgIFtdIFtdIFtdICAgICAgICAgICAgIFtdIFtdICAgIHwKKyAgICAgbWFuLWRiICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgKCkgICAgICAgfAorICAgICBtaW5pY29tICAgICAgICAgICAgfCAgICAgICAgICBbXSBbXSAgICAgICAgICAgICBbXSAgICAgICAgICBbXSAgICAgICB8CisgICAgIG15c2VjcmV0ZGlhcnkgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgIHwKKyAgICAgbmFubyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgW10gICAgICAgICAgW10gICAgW10gICAgICAgICAgfAorICAgICBuYW5vXzFfMCAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICBbXSAgICAgICAgICBbXSAgICBbXSAgICAgICAgICB8CisgICAgIG9wY29kZXMgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgcGFydGVkICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgW10gICAgICAgICAgICAgICAgICAgW10gICAgICAgfAorICAgICBwdHggICAgICAgICAgICAgICAgfCBbXSAgICAgICBbXSBbXSBbXSBbXSAgICAgICBbXSBbXSAgICAgICAgICAgICAgICB8CisgICAgIHB5dGhvbiAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgcmFkaXVzICAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICByZWNvZGUgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICBbXSBbXSAgICBbXSBbXSAgICBbXSAgICAgICAgICB8CisgICAgIHJwbSAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgIHwKKyAgICAgc2NyZWVtICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBzY3JvbGxrZWVwZXIgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIHNlZCAgICAgICAgICAgICAgICB8IFtdICAgICAgIFtdIFtdIFtdIFtdICAgICAgIFtdIFtdICAgIFtdIFtdICAgICAgIHwKKyAgICAgc2gtdXRpbHMgICAgICAgICAgIHwgW10gICAgICAgW10gW10gW10gICAgICAgICAgW10gICAgICAgW10gW10gICAgICAgfAorICAgICBzaGFyZWQtbWltZS1pbmZvICAgfCAgICAgICAgICBbXSBbXSAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIHNoYXJ1dGlscyAgICAgICAgICB8IFtdICAgICAgICAgIFtdICAgIFtdICAgICAgIFtdICAgICAgICAgIFtdICAgICAgIHwKKyAgICAgc2lsa3kgICAgICAgICAgICAgIHwgICAgICAgICAgKCkgW10gICAgICAgICAgICAgKCkgICAgICAgKCkgICAgICAgICAgfAorICAgICBza2VuY2lsICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgIHNrZXRjaCAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgc291bmR0cmFja2VyICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgfAorICAgICBzcCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAoKSAgICAgICB8CisgICAgIHRhciAgICAgICAgICAgICAgICB8IFtdICAgICAgIFtdIFtdICAgIFtdICAgIFtdIFtdIFtdICAgIFtdIFtdICAgICAgIHwKKyAgICAgdGV4aW5mbyAgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgW10gW10gICAgICAgICAgICAgW10gICAgICAgfAorICAgICB0ZXh0dXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICBbXSBbXSBbXSAgICAgICBbXSAgICAgICAgICBbXSBbXSAgICB8CisgICAgIHRpbiAgICAgICAgICAgICAgICB8IFtdICAgICAgICAgICgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgdHAtcm9ib3QgICAgICAgICAgIHwgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB0dXhwYWludCAgICAgICAgICAgfCAgICAgICAgICBbXSBbXSAgICAgICBbXSAgICBbXSBbXSBbXSBbXSBbXSBbXSAgICB8CisgICAgIHVuaWNvZGUtaGFuLXRyYS4uLiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgdW5pY29kZS10cmFuc2xhLi4uIHwgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB1dGlsLWxpbnV4ICAgICAgICAgfCBbXSAgICAgICBbXSBbXSAgICAgICAgICAgICBbXSAgICAgICAoKSBbXSAgICAgICB8CisgICAgIHZvcmJpcy10b29scyAgICAgICB8ICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgd2FzdGVzZWRnZSAgICAgICAgIHwgICAgICAgICAgICAgKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB3ZGlmZiAgICAgICAgICAgICAgfCBbXSAgICAgICAgICBbXSBbXSBbXSAgICAgICBbXSBbXSAgICAgICAgICAgICAgICB8CisgICAgIHdnZXQgICAgICAgICAgICAgICB8IFtdICAgICAgIFtdIFtdICAgIFtdICAgIFtdIFtdICAgICAgICAgIFtdICAgICAgIHwKKyAgICAgeGNoYXQgICAgICAgICAgICAgIHwgW10gICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB4ZnJlZTg2X3hrYl94bWwgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICB8CisgICAgIHhwYWQgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIFtdIFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgICAgICAgICAgICAgICAgICBldCBldSBmYSBmaSBmciBnYSBnbCBoZSBociBodSBpZCBpcyBpdCBqYSBrbyBsZworICAgICAgICAgICAgICAgICAgICAgICAgICAyMiAgMiAgMSAyNiAxMDYgMjggMjQgIDggMTAgNDEgMzMgIDEgMjYgMzMgMTIgIDAKKyAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGx0IGx2IG1rIG1uIG1zIG10IG5iIG5sIG5uIG5vIG5zbyBwbCBwdCBwdF9CUiBybyBydQorICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICBhMnBzICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICBbXSAgICAoKSAgICAgKCkgICAgIFtdICAgW10gW10gfAorICAgICBhZWdpcyAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAoKSAgICAgICAgICAgICAgICAgICAgICAgKCkgKCkgfAorICAgICBhbnQtcGhvbmUgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBhbnViaXMgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICBbXSBbXSAgICAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICBhcC11dGlscyAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgKCkgICAgICAgICAgW10gICAgfAorICAgICBhc3BlbGwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBiYXNoICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgW10gW10gfAorICAgICBiYXRjaGVsb3IgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBiZmQgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBiaW51dGlscyAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gfAorICAgICBiaXNvbiAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgW10gW10gfAorICAgICBibHVlei1waW4gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgICAgICAgW10gICAgfAorICAgICBjbGlzcCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBjbGlzcCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBjb25zb2xlLXRvb2xzICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gfAorICAgICBjb3JldXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgW10gfAorICAgICBjcGlvICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICBkYXJrc3RhdCAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgW10gICAgfAorICAgICBkaWZmdXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICBbXSAgICAgICAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICBlMmZzcHJvZ3MgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgfAorICAgICBlbnNjcmlwdCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgW10gW10gfAorICAgICBlcnJvciAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgW10gICAgfAorICAgICBmZXRjaG1haWwgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgICgpICAgICAgW10gfAorICAgICBmaWxldXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICBmaW5kdXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICBmbGV4ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICBmc2xpbnQgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBnYXMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBnYXdrICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgIFtdICAgW10gICAgfAorICAgICBnYmlmZiAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBnY2FsICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBnY2MgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBnZXR0ZXh0ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICBnZXR0ZXh0LWV4YW1wbGVzICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgICAgICAgW10gICAgfAorICAgICBnZXR0ZXh0LXJ1bnRpbWUgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICBnZXR0ZXh0LXRvb2xzICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgW10gICAgfAorICAgICBnaW1wLXByaW50ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBnbGl2ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgW10gICAgfAorICAgICBnbHVuYXJjbG9jayAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgW10gW10gfAorICAgICBnbnViaWZmICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBnbnVjYXNoICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICgpICAgICAgW10gfAorICAgICBnbnVjYXNoLWdsb3NzYXJ5ICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgICAgICAgfAorICAgICBnbnVwZyAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBncGUtYWVyaWFsICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtYmVhbSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtY2FsZW5kYXIgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtY2xvY2sgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtY29uZiAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtY29udGFjdHMgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtZWRpdCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtZ28gICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgW10gW10gfAorICAgICBncGUtbG9naW4gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtb3duZXJpbmZvICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtc2tldGNoYm9vayAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtc3UgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtdGFza21hbmFnZXIgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtdGltZXNoZWV0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtdG9kYXkgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGUtdG9kbyAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gW10gfAorICAgICBncGhvdG8yICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBncHJvZiAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdICAgW10gICAgfAorICAgICBncHNkcml2ZSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAoKSAgICAoKSAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBncmFtYWRvaXIgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAoKSAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBncmVwICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gIFtdICAgW10gW10gfAorICAgICBncmV0bCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBndGljayAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgW10gW10gfAorICAgICBoZWxsbyAgICAgICAgICAgICAgfCAgICBbXSAgICAgICBbXSAgICBbXSBbXSBbXSBbXSAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICBpZC11dGlscyAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgW10gW10gfAorICAgICBpbmRlbnQgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgW10gW10gfAorICAgICBpc29fMzE2NiAgICAgICAgICAgfCAgICAgICAgICBbXSAgICAgICAgICAgICAgICBbXSBbXSAgICAgICAgICAgICAgICAgICAgfAorICAgICBpc29fMzE2Nl8xICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBpc29fMzE2Nl8yICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBpc29fMzE2Nl8zICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBpc29fNDIxNyAgICAgICAgICAgfCAgICAgICAgICBbXSAgICAgICAgICBbXSBbXSBbXSAgICAgW10gW10gIFtdICAgICAgW10gfAorICAgICBpc29fNjM5ICAgICAgICAgICAgfCAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBqcGlsb3QgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAoKSAgICAoKSAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBqdGFnICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBqd2hvaXMgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgIFtdICAgW10gKCkgfAorICAgICBrYmQgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgICAgICAgW10gICAgfAorICAgICBsYXRyaW5lICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBsZCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBsaWJjICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBbXSAgICAgICBbXSAgICAgW10gICAgIFtdICAgICAgICAgfAorICAgICBsaWJncGV3aWRnZXQgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgW10gICAgfAorICAgICBsaWJpY29udiAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICBsaWZlbGluZXMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBsaWx5cG9uZCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBsaW5nb3RlYWNoICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBsaW5nb3RlYWNoX2xlc3NvbnMgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBseW54ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgICAgW10gfAorICAgICBtNCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICBtYWlsdXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICBtYWtlICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgW10gICAgIFtdICAgICAgW10gfAorICAgICBtYW4tZGIgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBtaW5pY29tICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICBteXNlY3JldGRpYXJ5ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgW10gICAgfAorICAgICBuYW5vICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICBbXSAgICAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICBuYW5vXzFfMCAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICBbXSAgICBbXSAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICBvcGNvZGVzICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICBwYXJ0ZWQgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgW10gW10gIFtdICAgICAgICAgfAorICAgICBwdHggICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBbXSBbXSAgICBbXSAgICAgW10gW10gIFtdICAgW10gW10gfAorICAgICBweXRob24gICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICByYWRpdXMgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgW10gfAorICAgICByZWNvZGUgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICBycG0gICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gW10gICAgICAgICAgW10gfAorICAgICBzY3JlZW0gICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBzY3JvbGxrZWVwZXIgICAgICAgfCAgICAgICAgICAgICAgICAgICBbXSBbXSAgICAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICBzZWQgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgIFtdICAgW10gICAgfAorICAgICBzaC11dGlscyAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gfAorICAgICBzaGFyZWQtbWltZS1pbmZvICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBzaGFydXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgW10gfAorICAgICBzaWxreSAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgfAorICAgICBza2VuY2lsICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gIFtdICAgICAgICAgfAorICAgICBza2V0Y2ggICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gIFtdICAgICAgICAgfAorICAgICBzb3VuZHRyYWNrZXIgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICBzcCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB0YXIgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICBbXSAgICAgICBbXSAgICAgW10gICAgIFtdICAgW10gICAgfAorICAgICB0ZXhpbmZvICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICB0ZXh0dXRpbHMgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gfAorICAgICB0aW4gICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB0cC1yb2JvdCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB0dXhwYWludCAgICAgICAgICAgfCBbXSAgICAgICAgICBbXSAgICAgICBbXSBbXSAgICAgICAgW10gW10gIFtdICAgW10gICAgfAorICAgICB1bmljb2RlLWhhbi10cmEuLi4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB1bmljb2RlLXRyYW5zbGEuLi4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB1dGlsLWxpbnV4ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgIFtdICAgICAgW10gfAorICAgICB2b3JiaXMtdG9vbHMgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgW10gW10gfAorICAgICB3YXN0ZXNlZGdlICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICB3ZGlmZiAgICAgICAgICAgICAgfCAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgW10gICAgIFtdICAgW10gW10gfAorICAgICB3Z2V0ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgW10gW10gfAorICAgICB4Y2hhdCAgICAgICAgICAgICAgfCAgICBbXSAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgW10gfAorICAgICB4ZnJlZTg2X3hrYl94bWwgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgW10gfAorICAgICB4cGFkICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAgICAgICAgW10gICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgICAgICAgICAgICAgICAgICBsdCBsdiBtayBtbiBtcyBtdCBuYiBubCBubiBubyBuc28gcGwgcHQgcHRfQlIgcm8gcnUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgIDIgIDAgIDMgMTIgIDAgMTAgNjkgIDYgIDcgIDEgIDQwIDI2ICAzNiAgIDc2IDYzCisgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICBzayBzbCBzciBzdiB0YSB0aCB0ciB1ayB2ZW4gdmkgd2EgeGggemhfQ04gemhfVFcgenUKKyAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAgYTJwcyAgICAgICAgICAgICAgIHwgICAgW10gICAgW10gICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKKyAgICAgYWVnaXMgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDAKKyAgICAgYW50LXBob25lICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgYW51YmlzICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkKKyAgICAgYXAtdXRpbHMgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgYXNwZWxsICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQKKyAgICAgYmFzaCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkKKyAgICAgYmF0Y2hlbG9yICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgYmZkICAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYKKyAgICAgYmludXRpbHMgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgIDgKKyAgICAgYmlzb24gICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQKKyAgICAgYmx1ZXotcGluICAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgIHwgMTQKKyAgICAgY2xpc3AgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDAKKyAgICAgY2xpc3AgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUKKyAgICAgY29uc29sZS10b29scyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgY29yZXV0aWxzICAgICAgICAgIHwgICAgW10gICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTYKKyAgICAgY3BpbyAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTQKKyAgICAgZGFya3N0YXQgICAgICAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAoKSAgICAoKSAgICAgIHwgMTIKKyAgICAgZGlmZnV0aWxzICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMjMKKyAgICAgZTJmc3Byb2dzICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYKKyAgICAgZW5zY3JpcHQgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAgICAgZXJyb3IgICAgICAgICAgICAgIHwgW10gICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTUKKyAgICAgZmV0Y2htYWlsICAgICAgICAgIHwgW10gICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEKKyAgICAgZmlsZXV0aWxzICAgICAgICAgIHwgICAgW10gICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICBbXSAgICAgIHwgMTcKKyAgICAgZmluZHV0aWxzICAgICAgICAgIHwgW10gW10gW10gW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMjkKKyAgICAgZmxleCAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMKKyAgICAgZnNsaW50ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgZ2FzICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgZ2F3ayAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAgICAgZ2JpZmYgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQKKyAgICAgZ2NhbCAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQKKyAgICAgZ2NjICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQKKyAgICAgZ2V0dGV4dCAgICAgICAgICAgIHwgW10gW10gICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTYKKyAgICAgZ2V0dGV4dC1leGFtcGxlcyAgIHwgW10gICAgW10gW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTQKKyAgICAgZ2V0dGV4dC1ydW50aW1lICAgIHwgW10gW10gW10gW10gICAgICAgW10gW10gICAgICAgICAgICAgICBbXSAgICBbXSAgICAgIHwgMjIKKyAgICAgZ2V0dGV4dC10b29scyAgICAgIHwgW10gW10gW10gW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTQKKyAgICAgZ2ltcC1wcmludCAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAKKyAgICAgZ2xpdiAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgZ2x1bmFyY2xvY2sgICAgICAgIHwgICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgIHwgMTMKKyAgICAgZ251YmlmZiAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgZ251Y2FzaCAgICAgICAgICAgIHwgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgIDkKKyAgICAgZ251Y2FzaC1nbG9zc2FyeSAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgIDgKKyAgICAgZ251cGcgICAgICAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTcKKyAgICAgZ3BlLWFlcmlhbCAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcKKyAgICAgZ3BlLWJlYW0gICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDgKKyAgICAgZ3BlLWNhbGVuZGFyICAgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICBbXSAgICAgIHwgMTMKKyAgICAgZ3BlLWNsb2NrICAgICAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAKKyAgICAgZ3BlLWNvbmYgICAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkKKyAgICAgZ3BlLWNvbnRhY3RzICAgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTEKKyAgICAgZ3BlLWVkaXQgICAgICAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICBbXSAgICAgIHwgMTIKKyAgICAgZ3BlLWdvICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUKKyAgICAgZ3BlLWxvZ2luICAgICAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICBbXSAgICAgIHwgMTMKKyAgICAgZ3BlLW93bmVyaW5mbyAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTMKKyAgICAgZ3BlLXNrZXRjaGJvb2sgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkKKyAgICAgZ3BlLXN1ICAgICAgICAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAKKyAgICAgZ3BlLXRhc2ttYW5hZ2VyICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAKKyAgICAgZ3BlLXRpbWVzaGVldCAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTIKKyAgICAgZ3BlLXRvZGF5ICAgICAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICBbXSAgICAgIHwgMTMKKyAgICAgZ3BlLXRvZG8gICAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICBbXSAgICAgIHwgMTIKKyAgICAgZ3Bob3RvMiAgICAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTEKKyAgICAgZ3Byb2YgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkKKyAgICAgZ3BzZHJpdmUgICAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgZ3JhbWFkb2lyICAgICAgICAgIHwgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUKKyAgICAgZ3JlcCAgICAgICAgICAgICAgIHwgICAgW10gW10gICAgICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjYKKyAgICAgZ3JldGwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgZ3RpY2sgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcKKyAgICAgaGVsbG8gICAgICAgICAgICAgIHwgW10gICAgW10gW10gICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzQKKyAgICAgaWQtdXRpbHMgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKKyAgICAgaW5kZW50ICAgICAgICAgICAgIHwgW10gICAgW10gW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjEKKyAgICAgaXNvXzMxNjYgICAgICAgICAgIHwgW10gW10gW10gW10gICAgICAgW10gICAgW10gICAgIFtdICAgICAgICAgICAgICAgICAgIHwgMjcKKyAgICAgaXNvXzMxNjZfMSAgICAgICAgIHwgW10gW10gICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKKyAgICAgaXNvXzMxNjZfMiAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDAKKyAgICAgaXNvXzMxNjZfMyAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIKKyAgICAgaXNvXzQyMTcgICAgICAgICAgIHwgW10gW10gICAgW10gICAgICAgW10gW10gICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMjQKKyAgICAgaXNvXzYzOSAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEKKyAgICAganBpbG90ICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgIFtdICAgICAgICBbXSAgICBbXSAgICAgIHwgIDkKKyAgICAganRhZyAgICAgICAgICAgICAgIHwgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIKKyAgICAgandob2lzICAgICAgICAgICAgIHwgICAgICAgICAgKCkgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTEKKyAgICAga2JkICAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEKKyAgICAgbGF0cmluZSAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIKKyAgICAgbGQgICAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUKKyAgICAgbGliYyAgICAgICAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMjAKKyAgICAgbGliZ3Bld2lkZ2V0ICAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgIFtdICAgICAgICAgICAgICAgICAgIHwgMTMKKyAgICAgbGliaWNvbnYgICAgICAgICAgIHwgW10gW10gW10gW10gICAgICAgW10gW10gICAgICAgIFtdICAgICBbXSAgICAgICAgICAgIHwgMjcKKyAgICAgbGlmZWxpbmVzICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIKKyAgICAgbGlseXBvbmQgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgbGluZ290ZWFjaCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIKKyAgICAgbGluZ290ZWFjaF9sZXNzb25zIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSAgICAgICAgICAgIHwgIDAKKyAgICAgbHlueCAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQKKyAgICAgbTQgICAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTUKKyAgICAgbWFpbHV0aWxzICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUKKyAgICAgbWFrZSAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTYKKyAgICAgbWFuLWRiICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUKKyAgICAgbWluaWNvbSAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEKKyAgICAgbXlzZWNyZXRkaWFyeSAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAKKyAgICAgbmFubyAgICAgICAgICAgICAgIHwgICAgICAgW10gW10gICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTcKKyAgICAgbmFub18xXzAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTcKKyAgICAgb3Bjb2RlcyAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYKKyAgICAgcGFydGVkICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTUKKyAgICAgcHR4ICAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjIKKyAgICAgcHl0aG9uICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDAKKyAgICAgcmFkaXVzICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQKKyAgICAgcmVjb2RlICAgICAgICAgICAgIHwgICAgW10gICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKKyAgICAgcnBtICAgICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkKKyAgICAgc2NyZWVtICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgIDIKKyAgICAgc2Nyb2xsa2VlcGVyICAgICAgIHwgW10gICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUKKyAgICAgc2VkICAgICAgICAgICAgICAgIHwgW10gW10gW10gW10gICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQKKyAgICAgc2gtdXRpbHMgICAgICAgICAgIHwgICAgW10gICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQKKyAgICAgc2hhcmVkLW1pbWUtaW5mbyAgIHwgICAgICAgW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcKKyAgICAgc2hhcnV0aWxzICAgICAgICAgIHwgICAgICAgW10gW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTcKKyAgICAgc2lsa3kgICAgICAgICAgICAgIHwgKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgc2tlbmNpbCAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYKKyAgICAgc2tldGNoICAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYKKyAgICAgc291bmR0cmFja2VyICAgICAgIHwgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcKKyAgICAgc3AgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMKKyAgICAgdGFyICAgICAgICAgICAgICAgIHwgW10gW10gICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMjQKKyAgICAgdGV4aW5mbyAgICAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTQKKyAgICAgdGV4dHV0aWxzICAgICAgICAgIHwgICAgW10gICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgIHwgMTYKKyAgICAgdGluICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEKKyAgICAgdHAtcm9ib3QgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIKKyAgICAgdHV4cGFpbnQgICAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgW10gICAgICAgICAgIFtdICAgICBbXSAgICAgICAgICAgIHwgMjkKKyAgICAgdW5pY29kZS1oYW4tdHJhLi4uIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDAKKyAgICAgdW5pY29kZS10cmFuc2xhLi4uIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIKKyAgICAgdXRpbC1saW51eCAgICAgICAgIHwgICAgICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUKKyAgICAgdm9yYmlzLXRvb2xzICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDgKKyAgICAgd2FzdGVzZWRnZSAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDAKKyAgICAgd2RpZmYgICAgICAgICAgICAgIHwgW10gICAgICAgW10gICAgICAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTgKKyAgICAgd2dldCAgICAgICAgICAgICAgIHwgW10gW10gW10gW10gICAgICAgW10gW10gICAgICAgICAgICAgICBbXSAgICBbXSAgICAgIHwgMjQKKyAgICAgeGNoYXQgICAgICAgICAgICAgIHwgW10gW10gW10gW10gICAgICAgICAgICAgICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTUKKyAgICAgeGZyZWU4Nl94a2JfeG1sICAgIHwgW10gICAgW10gICAgICAgICAgW10gW10gICAgICAgICAgICAgICBbXSAgICAgICAgICAgIHwgMTEKKyAgICAgeHBhZCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUKKyAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAgICA2MyB0ZWFtcyAgICAgICAgICAgc2sgc2wgc3Igc3YgdGEgdGggdHIgdWsgdmVuIHZpIHdhIHhoIHpoX0NOIHpoX1RXIHp1CisgICAgICAxMzEgZG9tYWlucyAgICAgICAgIDQ3IDE5IDI4IDgzICAwICAwIDU5IDEzICAxICAgMSAxMSAgMCAgMjIgICAgMjIgICAgMCAgMTM3MworCisgICBTb21lIGNvdW50ZXJzIGluIHRoZSBwcmVjZWRpbmcgbWF0cml4IGFyZSBoaWdoZXIgdGhhbiB0aGUgbnVtYmVyIG9mCit2aXNpYmxlIGJsb2NrcyBsZXQgdXMgZXhwZWN0LiAgVGhpcyBpcyBiZWNhdXNlIGEgZmV3IGV4dHJhIFBPIGZpbGVzIGFyZQordXNlZCBmb3IgaW1wbGVtZW50aW5nIHJlZ2lvbmFsIHZhcmlhbnRzIG9mIGxhbmd1YWdlcywgb3IgbGFuZ3VhZ2UKK2RpYWxlY3RzLgorCisgICBGb3IgYSBQTyBmaWxlIGluIHRoZSBtYXRyaXggYWJvdmUgdG8gYmUgZWZmZWN0aXZlLCB0aGUgcGFja2FnZSB0bword2hpY2ggaXQgYXBwbGllcyBzaG91bGQgYWxzbyBoYXZlIGJlZW4gaW50ZXJuYXRpb25hbGl6ZWQgYW5kCitkaXN0cmlidXRlZCBhcyBzdWNoIGJ5IGl0cyBtYWludGFpbmVyLiAgVGhlcmUgbWlnaHQgYmUgYW4gb2JzZXJ2YWJsZQorbGFnIGJldHdlZW4gdGhlIG1lcmUgZXhpc3RlbmNlIGEgUE8gZmlsZSBhbmQgaXRzIHdpZGUgYXZhaWxhYmlsaXR5IGluIGEKK2Rpc3RyaWJ1dGlvbi4KKworICAgSWYgSmFudWFyeSAyMDA0IHNlZW1zIHRvIGJlIG9sZCwgeW91IG1heSBmZXRjaCBhIG1vcmUgcmVjZW50IGNvcHkgb2YKK3RoaXMgYEFCT1VULU5MUycgZmlsZSBvbiBtb3N0IEdOVSBhcmNoaXZlIHNpdGVzLiAgVGhlIG1vc3QgdXAtdG8tZGF0ZQorbWF0cml4IHdpdGggZnVsbCBwZXJjZW50YWdlIGRldGFpbHMgY2FuIGJlIGZvdW5kIGF0CitgaHR0cDovL3d3dy5pcm8udW1vbnRyZWFsLmNhL2NvbnRyaWIvcG8vSFRNTC9tYXRyaXguaHRtbCcuCisKK1VzaW5nIGBnZXR0ZXh0JyBpbiBuZXcgcGFja2FnZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSWYgeW91IGFyZSB3cml0aW5nIGEgZnJlZWx5IGF2YWlsYWJsZSBwcm9ncmFtIGFuZCB3YW50IHRvCitpbnRlcm5hdGlvbmFsaXplIGl0IHlvdSBhcmUgd2VsY29tZSB0byB1c2UgR05VIGBnZXR0ZXh0JyBpbiB5b3VyCitwYWNrYWdlLiAgT2YgY291cnNlIHlvdSBoYXZlIHRvIHJlc3BlY3QgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCitMaWNlbnNlIHdoaWNoIGNvdmVycyB0aGUgdXNlIG9mIHRoZSBHTlUgYGdldHRleHQnIGxpYnJhcnkuICBUaGlzIG1lYW5zCitpbiBwYXJ0aWN1bGFyIHRoYXQgZXZlbiBub24tZnJlZSBwcm9ncmFtcyBjYW4gdXNlIGBsaWJpbnRsJyBhcyBhIHNoYXJlZAorbGlicmFyeSwgd2hlcmVhcyBvbmx5IGZyZWUgc29mdHdhcmUgY2FuIHVzZSBgbGliaW50bCcgYXMgYSBzdGF0aWMKK2xpYnJhcnkgb3IgdXNlIG1vZGlmaWVkIHZlcnNpb25zIG9mIGBsaWJpbnRsJy4KKworICAgT25jZSB0aGUgc291cmNlcyBhcmUgY2hhbmdlZCBhcHByb3ByaWF0ZWx5IGFuZCB0aGUgc2V0dXAgY2FuIGhhbmRsZQordGhlIHVzZSBvZiBgZ2V0dGV4dCcgdGhlIG9ubHkgdGhpbmcgbWlzc2luZyBhcmUgdGhlIHRyYW5zbGF0aW9ucy4gIFRoZQorRnJlZSBUcmFuc2xhdGlvbiBQcm9qZWN0IGlzIGFsc28gYXZhaWxhYmxlIGZvciBwYWNrYWdlcyB3aGljaCBhcmUgbm90CitkZXZlbG9wZWQgaW5zaWRlIHRoZSBHTlUgcHJvamVjdC4gIFRoZXJlZm9yZSB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gYWJvdmUKK2FwcGxpZXMgYWxzbyBmb3IgZXZlcnkgb3RoZXIgRnJlZSBTb2Z0d2FyZSBQcm9qZWN0LiAgQ29udGFjdAorYHRyYW5zbGF0aW9uQGlyby51bW9udHJlYWwuY2EnIHRvIG1ha2UgdGhlIGAucG90JyBmaWxlcyBhdmFpbGFibGUgdG8KK3RoZSB0cmFuc2xhdGlvbiB0ZWFtcy4KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvQVVUSE9SUyBiL3V0aWwtbGludXgtbmctMi4xNy4yL0FVVEhPUlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY0MjUxMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL0FVVEhPUlMKQEAgLTAsMCArMSwyMDEgQEAKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLWxpbnV4LW5nCisgICAgICAgICAgIChmb3JrIG9mIHV0aWwtbGludXgsIGJhc2VkIG9uIHZlcnNpb24gMi4xMy1wcmU3KQorCitNQUlOVEFJTkVSOgorCisgICAgICBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKworCitQQVNUIE1BSU5UQUlORVJTOgorCisgICAgICBBZHJpYW4gQnVuayA8YnVua0BzdHVzdGEuZGU+CisgICAgICBBbmRyaWVzIEUuIEJyb3V3ZXIgPGFlYkBjd2kubmw+CisKKworQVVUSE9SUyAobWVyZ2VkIHByb2plY3RzICYgY29tbWFuZHMpOgorCisgICAgICBmYWxsb2NhdGU6ICAgICAgIEVyaWMgU2FuZGVlbiA8c2FuZGVlbkByZWRoYXQuY29tPgorICAgICAgICAgICAgICAgICAgICAgICBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAgICAgIGZsb2NrOiAgICAgICAgICAgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+CisgICAgICBnZXRvcHQ6ICAgICAgICAgIEZyb2RvIExvb2lqYWFyZCA8ZnJvZG9sQGRkcy5ubD4KKyAgICAgIGh3Y2xvY2s6ICAgICAgICAgQnJ5YW4gSGVuZGVyc29uIDxicnlhbmhAZ2lyYWZmZS1kYXRhLmNvbT4KKyAgICAgIGlwY21rOiAgICAgICAgICAgSGF5ZGVuIEphbWVzIDxoYXlkZW4uamFtZXNAZ21haWwuY29tPgorICAgICAgbGRhdHRhY2g6ICAgICAgICBUaWxtYW4gU2NobWlkdCA8dGlsbWFuQGltYXAuY2M+CisgICAgICBsaWJibGtpZDogICAgICAgIFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+CisgICAgICBsaWJ1dWlkOiAgICAgICAgIFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+CisgICAgICBsc2NwdTogICAgICAgICAgIENhaSBRaWFuIDxxY2FpQHJlZGhhdC5jb20+CisgICAgICBydGN3YWtlOiAgICAgICAgIERhdmlkIEJyb3duZWxsIDxkYXZpZC1iQHBhY2JlbGwubmV0PgorICAgICAgICAgICAgICAgICAgICAgICBCZXJuaGFyZCBXYWxsZSA8YndhbGxlQHN1c2UuZGU+CisgICAgICBzY2hlZHV0aWxzOiAgICAgIFJvYmVydCBMb3ZlIDxybG92ZUBybG92ZS5vcmc+CisgICAgICBzZXRhcmNoOiAgICAgICAgIEVsbGlvdCBMZWUgPHNvcHdpdGhAcmVkaGF0LmNvbT4KKyAgICAgICAgICAgICAgICAgICAgICAgSmluZHJpY2ggTm92eSA8am5vdnlAcmVkaGF0LmNvbT4KKyAgICAgIHNpbXBsZWluaXQ6ICAgICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CisgICAgICBzd2l0Y2hfcm9vdDogICAgIFBldGVyIEpvbmVzIDxwam9uZXNAcmVkaGF0LmNvbT4KKyAgICAgICAgICAgICAgICAgICAgICAgSmVyZW15IEthdHogPGthdHpqQHJlZGhhdC5jb20+CisgICAgICB1bnNoYXJlOiAgICAgICAgIE1pa2hhaWwgR3VzYXJvdiA8ZG90dGVkbWFnQGRvdHRlZG1hZy5uZXQ+CisgICAgICB3aXBlZnM6ICAgICAgICAgIEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorCisKK0NPTlRSSUJVVE9SUzoKKworICAgICAgQS4gQ29zdGEgPGFnY29zdGFAZ2lzLm5ldD4KKyAgICAgIEFkYW0gSmFja3NvbiA8YWpheEByZWRoYXQuY29tPgorICAgICAgQWxhaW4gR3VpYmVydCA8YWxndWliZXJ0K3VsbmdAZnJlZS5mcj4KKyAgICAgIEFsYW4gQ3VycnkgPHBhY21hbkBUaGVXb3JsZC5jb20+CisgICAgICBBbGV4ZXkgR2xhZGtvdiA8bGVnaW9uQGFsdGxpbnV4LnJ1PgorICAgICAgQWxvbiBCYXItTGV2IDxhbG9uLmJhcmxldkBnbWFpbC5jb20+CisgICAgICBBbcOpcmljbyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CisgICAgICBBbmRyZWFzIERpbGdlciA8YWRpbGdlckBzdW4uY29tPgorICAgICAgQW5kcmV3IE1jR2lsbCA8bGlzdDIwMDhAbHVuY2guemEubmV0PgorICAgICAgQW5kcnplaiBLcnp5c3p0b2Zvd2ljeiA8YW5rcnlAbWlmLnBnLmdkYS5wbD4KKyAgICAgIEFyaWYgRS4gTnVncm9obyA8YXJpZl9lbmRyb0B5YWhvby5jb20+CisgICAgICBBcmthZGl1c3ogTWlza2lld2ljeiA8YXJla21AbWF2ZW4ucGw+CisgICAgICBBdHRpbGEgw4FmcmEgPGF0dGlsYS5hZnJhQGdtYWlsLmNvbT4KKyAgICAgIEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KKyAgICAgIEJhbGludCBDcmlzdGlhbiA8Y2JhbGludEByZWRoYXQuY29tPgorICAgICAgQmFzdGlhbiBGcmllZHJpY2ggPGJhc3RpYW4uZnJpZWRyaWNoQGNvbGxheC5jb20+CisgICAgICBCZW5ubyBTY2h1bGVuYmVyZyA8YmVuc2JlcmdAanVzdGVtYWlsLm5ldD4KKyAgICAgIEJlcm5hcmRvIElubm9jZW50aSA8YmVybmllQGNvZGV3aXoub3JnPgorICAgICAgQmVybmhhcmQgV2FsbGUgPGJ3YWxsZUBzdXNlLmRlPgorICAgICAgQnJ5biBNLiBSZWV2ZXMgPGJtckBlcnJvcmlzdHMub3JnPgorICAgICAgQ2FpIFFpYW4gPHFjYWlAcmVkaGF0LmNvbT4KKyAgICAgIENocmlzdG9waGUgQmxhZXNzIDxDaHJpc3RvcGhlQEJsYWVzcy5mcj4KKyAgICAgIENocmlzdG9waCBIZWxsd2lnIDxoY2hAaW5mcmFkZWFkLm9yZz4KKyAgICAgIENocmlzIFdlYmIgPGNocmlzQGFyYWNoc3lzLmNvbT4KKyAgICAgIENsYXVzIEhpbmRzZ2F1bCA8Y2xhdXNfaEBpbWFnZS5kaz4KKyAgICAgIENsaWZmIFdpY2ttYW4gPGNwd0BzZ2kuY29tPgorICAgICAgQ2x5dGllIFNpZGRhbGwgPGNseXRpZUByaXZlcmxhbmQubmV0LmF1PgorICAgICAgQ29saW4gV2F0c29uIDxjandhdHNvbkBjYW5vbmljYWwuY29tPgorICAgICAgQ29yZW50aW4gQ2hhcnkgPGNvcmVudGluY2pAaWtzYWlmLm5ldD4KKyAgICAgIENyaXN0aWFuIFJvZHLDrWd1ZXogPGNycm9kcmlndWV6QG9wZW5zdXNlLm9yZz4KKyAgICAgIERhaXN1a2UgWWFtYXNoaXRhIDx5YW1hZEBtYi5pbmZvd2ViLm5lLmpwPgorICAgICAgRGFuaWVsIERyYWtlIDxkc2RAbGFwdG9wLm9yZz4KKyAgICAgIERhbmllbCBNaWVyc3dhIDxpbXB1bHplQGltcHVsemUub3JnPgorICAgICAgRGFuaWVsIE55bGFuZGVyIDxwb0BkYW5pZWxueWxhbmRlci5zZT4KKyAgICAgIERhdmlkIEJyb3duZWxsIDxkYXZpZC1iQHBhY2JlbGwubmV0PgorICAgICAgRGF2aWQgTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgorICAgICAgRGF2aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgorICAgICAgRGVuaXMgQ2hlbmdScSA8Y3JxdWFuQGdtYWlsLmNvbT4KKyAgICAgIERlbm5pcyBHaWxtb3JlIDxkZW5uaXNAYXVzaWwudXM+CisgICAgICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisgICAgICBFcmljIFNhbmRlZW4gPHNhbmRlZW5AcmVkaGF0LmNvbT4KKyAgICAgIEZsw6F2aW8gTGVpdG5lciA8ZmxlaXRuZXJAcmVkaGF0LmNvbT4KKyAgICAgIEZsb3JlbnRpbiBEdW5lYXUgPGZkdW5lYXVAZ21haWwuY29tPgorICAgICAgRmxvcmlhbiBadW1iaWVobCA8ZmxvcnpAZmxvcnouZGU+CisgICAgICBGcmFuY2VzY28gQ29zb2xldG8gPGNvc29sZXRvQGdtYWlsLmNvbT4KKyAgICAgIEZyw6lkw6lyaWMgQm90aGFteSA8ZnJlZGVyaWMuYm90aGFteUBmcmVlLmZyPgorICAgICAgR2Fib3IgS2VsZW1lbiA8a2VsZW1lbmdAZ25vbWUuaHU+CisgICAgICBHYWJyaWVsIEJhcmF6ZXIgPGdhYnJpZWxAb3hldmEuZnI+CisgICAgICBHYWJyaWVsIEJ1cnQgPGdidXJ0QG5vdmVsbC5jb20+CisgICAgICBHdWFuIFhpbiA8Z3VhbnguYmFjQGdtYWlsLmNvbT4KKyAgICAgIEd1aWxsZW0gSm92ZXIgPGd1aWxsZW1AaGFkcm9ucy5vcmc+CisgICAgICBIYW1pc2ggQ29sZW1hbiA8aGFtaXNoQHpvdC5vcmc+CisgICAgICBIYXlkZW4gSmFtZXMgPGhheWRlbi5qYW1lc0BnbWFpbC5jb20+CisgICAgICBIZW5kcmlrIEzDtm5uZ3JlbiA8d2lraWJ1Z3NAZ29vZ2xlbWFpbC5jb20+CisgICAgICBIZW5uZSBWb2dlbHNhbmcgPGh2b2dlbEBvcGVuc3VzZS5vcmc+CisgICAgICBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KKyAgICAgIEh1Z2ggRGlja2lucyA8aHVnaEB2ZXJpdGFzLmNvbT4KKyAgICAgIEltcmUgS2Fsb3ogPGthbG96QG9wZW53cnQub3JnPgorICAgICAgSmFrb2IgVW50ZXJ3dXJ6YWNoZXIgPGpha29idW50QGdtYWlsLmNvbT4KKyAgICAgIEpha3ViIEJvZ3VzeiA8cWJvb3NoQHBsZC1saW51eC5vcmc+CisgICAgICBKYW1lcyBZb3VuZ21hbiA8amF5QGdudS5vcmc+CisgICAgICBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgorICAgICAgSmFuIFNhcmVuaWsgPGpzYXJlbmlrQHJlZGhhdC5jb20+CisgICAgICBKYXNvbiBWYXMgRGlhcyA8anZkaWFzQHJlZGhhdC5jb20+CisgICAgICBKZWZmIE1haG9uZXkgPGplZmZtQHN1c2UuY29tPgorICAgICAgSmltIE1leWVyaW5nIDxtZXllcmluZ0ByZWRoYXQuY29tPgorICAgICAgSm9obiBLZWVwaW5nIDxqb2huLmtlZXBpbmdAbGluZW9uZS5uZXQ+CisgICAgICBKb3NlcCBQdWlnZGVtb250IDxqb3NlcC5wdWlnZGVtb250QGdtYWlsLmNvbT4KKyAgICAgIEp1c3RpbiBCIFJ5ZSA8amJyQGVkbHVnLm9yZy51az4KKyAgICAgIEthaUdhaSBLb2hlaSA8a2FpZ2FpQGthaWdhaS5nci5qcD4KKyAgICAgIEthbGV2IFNvaWtvbmVuIDxrc29wQGhvdC5lZT4KKyAgICAgIEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAgICAgIEtlZXMgQ29vayA8a2Vlcy5jb29rQGNhbm9uaWNhbC5jb20+CisgICAgICBLZW4gS29waW4gPGtlbmtvcGluQGdtYWlsLmNvbT4KKyAgICAgIGtldmluLmdyYW5hZGVAZ21haWwuY29tIDxrZXZpbi5ncmFuYWRlQGdtYWlsLmNvbT4KKyAgICAgIEt1bmloaWtvIElNQUkgPGtpbWFpQGlvZGF0YS5qcD4KKyAgICAgIExhTW9udCBKb25lcyA8bGFtb250QGRlYmlhbi5vcmc+CisgICAgICBMYU1vbnQgSm9uZXMgPGxhbW9udEBtbWpncm91cC5jb20+CisgICAgICBMYXVyaSBOdXJtaSA8bGFudXJtaUBpa2kuZmk+CisgICAgICBMYXdyZW5jZSBSdXN0IDxsYXdyZW5jZUBzb2Z0c3lzdGVtLmNvLnVrPgorICAgICAgTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgorICAgICAgTGkgWmVmYW4gPGxpemZAY24uZnVqaXRzdS5jb20+CisgICAgICBMdWJvbWlyIEt1bmRyYWsgPGxrdW5kcmFrQHJlZGhhdC5jb20+CisgICAgICBMdWNpYW5vIENoYXZleiA8bG54MTEzOEB1cy5pYm0uY29tPgorICAgICAgTHVkd2lnIE51c3NlbCA8bHVkd2lnLm51c3NlbEBzdXNlLmRlPgorICAgICAgTWFrb3RvIEthdG8gPG1ha290by5rdEBnbWFpbC5jb20+CisgICAgICBNYXJjbyBDb2xvbWJvIDxtLmNvbG9tYm9AZWQuYWMudWs+CisgICAgICBNYXJjbyBkJ0l0cmkgPG1kQExpbnV4LklUPgorICAgICAgTWFyayBNY0xvdWdobGluIDxtYXJrbWNAcmVkaGF0LmNvbT4KKyAgICAgIE1hcnRpbiBTY2hsZW1tZXIgPGF6YXJhaEBnZW50b28ub3JnPgorICAgICAgTWFydGluIFNjaHVsemUgPGpvZXlAaW5mb2Ryb20ub3JnPgorICAgICAgTWFydGluIFN0ZWlnZXJ3YWxkIDxtc0B0ZWFtaXguZGU+CisgICAgICBNYXNhdGFrZSBZQU1BVE8gPGpldEBneXZlLm9yZz4KKyAgICAgIE1hdHRoZXcgR2FycmV0dCA8bWpnNTlAc3JjZi51Y2FtLm9yZz4KKyAgICAgIE1hdHRoaWFzIEtvZW5pZyA8bWtvZW5pZ0BzdXNlLmRlPgorICAgICAgTWF0dGhpYXMgS8O2bmlnIDxta0BwaGFzb3JsYWIuZGU+CisgICAgICBtYXhpbWlsaWFuIGF0dGVtcyA8bWF4QHN0cm8uYXQ+CisgICAgICBNYXhpbSBMZXZpdHNreSA8bWF4aW1sZXZpdHNreUBnbWFpbC5jb20+CisgICAgICBNYXhpbSBWLiBEeml1bWFuZW5rbyA8bXZkQG15bGludXguY29tLnVhPgorICAgICAgTWVlbGlzIFJvb3MgPG1yb29zQGxpbnV4LmVlPgorICAgICAgTWljaGFlbCBQaWVmZWwgPHBpZWZlbEBpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KKyAgICAgIE1pY2hlbCBSb2JpdGFpbGxlIDxyb2JpdGFpbEBJUk8uVU1vbnRyZWFsLkNBPgorICAgICAgTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgorICAgICAgTWlrZSBIb21tZXkgPG1oQGdsYW5kaXVtLm9yZz4KKyAgICAgIE1pa2VsIE9sYXNhZ2FzdGkgVXJhbmdhIDxoZXlfbmVrZW5AbXVuZHVyYXQubmV0PgorICAgICAgTWlraGFpbCBHdXNhcm92IDxkb3R0ZWRtYWdAZG90dGVkbWFnLm5ldD4KKyAgICAgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBzdXNlLmN6PgorICAgICAgTWlsYW4gQnJveiA8bWJyb3pAcmVkaGF0LmNvbT4KKyAgICAgIE1vcml0eiBNdWVobGVuaG9mZiA8am1tQGludXRpbC5vcmc+CisgICAgICBOaWNvbGFzIFByb3Zvc3QgPG5wcm92b3N0QHF1YWRyaXYuY29tPgorICAgICAgTmlsZ8O8biBCZWxtYSBCdWfDvG5lciA8bmlsZ3VuQGJ1Z3VuZXIubmFtZS50cj4KKyAgICAgIE5vcmJlcnQgQnVjaG11bGxlciA8bm9yYmlAbml4Lmh1PgorICAgICAgT2xpdmVyIEZhbGsgPG9saXZlckBsaW51eC1rZXJuZWwuYXQ+CisgICAgICBPbGl2aWVyIEJsaW4gPGJsaW5vQG1hbmRyaXZhLmNvbT4KKyAgICAgIFDDoWRyYWlnIEJyYWR5IDxQQGRyYWlnQnJhZHkuY29tPgorICAgICAgUGFzY2FsIFRlcmphbiA8cHRlcmphbkBtYW5kcml2YS5jb20+CisgICAgICBQYXVsIEZveCA8cGdmQGxhcHRvcC5vcmc+CisgICAgICBQYXVsaXVzIFphbGVja2FzIDxwYXVsaXVzLnphbGVja2FzQHRlbHRvbmlrYS5sdD4KKyAgICAgIFBhdmVsIE1hcnlhbm92IDxhY2lkX2phY2tAdWtyLm5ldD4KKyAgICAgIFBlZHJvIFJpYmVpcm8gPHAubTQyLnJpYmVpcm9AZ21haWwuY29tPgorICAgICAgUGV0ZXIgQnJlaXRlbmxvaG5lciA8cGViQG1wcG11Lm1wZy5kZT4KKyAgICAgIFBldGVyIERlIFdhY2h0ZXIgPHBkZXdhY2h0QGdtYWlsLmNvbT4KKyAgICAgIFBldGVyIEpvbmVzIDxwam9uZXNAcmVkaGF0LmNvbT4KKyAgICAgIFBldGVyIFZvbGtvdiA8cHZhQGdlbnRvby5vcmc+CisgICAgICBQZXRyIFBpc2FyIDxwZXRyLnBpc2FyQGF0bGFzLmN6PgorICAgICAgUGhhbiBWaW5oIFRoaW5oIDx0ZXBwaTgyQGdtYWlsLmNvbT4KKyAgICAgIFBpZXJyZSBIYXV3ZWVsZSA8YW50ZWdhbGx5YUBnbWFpbC5jb20+CisgICAgICBSYWplZXYgVi4gUGlsbGFpIDxyYWplZXZ2cEBnbWFpbC5jb20+CisgICAgICBSYW0gUGFpIDxsaW51eHJhbUB1cy5pYm0uY29tPgorICAgICAgUmFuZHkgRHVubGFwIDxyYW5keS5kdW5sYXBAb3JhY2xlLmNvbT4KKyAgICAgIFJheSBXYW5nIDx3YW5nbGVpMTEyM0BnbWFpbC5jb20+CisgICAgICBSb2JlcnQgRsO2cnN0ZXIgPERlc3NhQGdtYWtlLmRlPgorICAgICAgUm9iZXJ0IE1pbGxhbiA8cm1oQGF5YmFidHUuY29tPgorICAgICAgUm9kcmlnbyBTdHVsemVyIExvcGVzIDxyb2RyaWdvQGNvbmVjdGl2YS5jb20uYnI+CisgICAgICBSb3kgUGVsZWQgPHRoZS5yb3kucGVsZWRAZ21haWwuY29tPgorICAgICAgU2FtdWVsIFRoaWJhdWx0IDxzYW11ZWwudGhpYmF1bHRAZW5zLWx5b24ub3JnPgorICAgICAgU2FtIFZhcnNoYXZjaGlrIDxtcnNhbUBjb3VyaWVyLW10YS5jb20+CisgICAgICBTYW50aWFnbyBWaWxhIERvbmNlbCA8c2FudmlsYUB1bmV4LmVzPgorICAgICAgU2FzY2hhIFNvbW1lciA8c3NvbW1lckBzdXNlLmRlPgorICAgICAgU2NvdHQgSmFtZXMgUmVtbmFudCA8c2NvdHRAdWJ1bnR1LmNvbT4KKyAgICAgIFNlYmFzdGlhbiBBbmRyemVqIFNpZXdpb3IgPHNlYmFzdGlhbkBicmVha3BvaW50LmNjPgorICAgICAgU2hhY2hhciBTaGVtZXNoIDxzaGFjaGFyQGRlYmlhbi5vcmc+CisgICAgICBTaW1vbiBNaWhldmMgPHNpbW9ubWloZXZjQGVtYWlsLnNpPgorICAgICAgU3RlZmFuIEtyYWggPHN0ZWZhbkBieXRlcmVlZi5vcmc+CisgICAgICBTdGVwYW4gS2FzYWwgPHNrYXNhbEByZWRoYXQuY29tPgorICAgICAgU3RlcGhhbiBNYWthIDxzdGVwaGFuQHNwYWNlYm95ei5uZXQ+CisgICAgICBTdGV2ZSBHcnViYiA8c2dydWJiQHJlZGhhdC5jb20+CisgICAgICBTdWthZGV2IEJoYXR0aXByb2x1IDxzdWthZGV2QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAgICAgIFN2ZW4gSm9zdCA8c3Zlbi5qb3N0QGdvb2dsZW1haWwuY29tPgorICAgICAgVGhlb2RvcmUgVHMnbyA8dHl0c29AbWl0LmVkdT4KKyAgICAgIFRpbG1hbiBTY2htaWR0IDx0aWxtYW5AaW1hcC5jYz4KKyAgICAgIFRvbSBQcmluY2UgPHRvbS5wcmluY2VAdWFsYmVydGEubmV0PgorICAgICAgVmFsZXJpZSBBdXJvcmEgPHZhdXJvcmFAcmVkaGF0LmNvbT4KKyAgICAgIFZpbmNlbnQgRGVmZm9udGFpbmVzIDx2aW5jZW50QGdyeXpvci5jb20+CisgICAgICBWbGFkaW1pciBCcmVkbmlrb3YgPHZicmVkbmlrb3ZAZ21haWwuY29tPgorICAgICAgVm9sa2VyIFNjaGF0eiA8b3NzQHZvbGtlcnNjaGF0ei5jb20+CisgICAgICBZYW5uIERyb25lYXVkIDx5YW5uQGRyb25lYXVkLmZyPgorICAgICAgWW9zaGloaXJvIFRha2FoYXNoaSA8eXRha2FoYXNoaUBtaXJhY2xlbGludXguY29tPgorICAgICAgWXUgWmhpZ3VvIDx5dXpnQGNuLmZ1aml0c3UuY29tPgorICAgICAgWmRlbmVrIEJlaGFuIDxyYWluQG1hdGZ5ei5jej4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL0NPUFlJTkcgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9DT1BZSU5HCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyM2I2MjUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9DT1BZSU5HCkBAIC0wLDAgKzEsMzQwIEBACisJCSAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorCQkgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKKworIENvcHlyaWdodCAoQykgMTk4OSwgMTk5MSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgICAgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCisgb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCisKKwkJCSAgICBQcmVhbWJsZQorCisgIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhcmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXIKK2ZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljCitMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCitzb2Z0d2FyZS0tdG8gbWFrZSBzdXJlIHRoZSBzb2Z0d2FyZSBpcyBmcmVlIGZvciBhbGwgaXRzIHVzZXJzLiAgVGhpcworR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcHBsaWVzIHRvIG1vc3Qgb2YgdGhlIEZyZWUgU29mdHdhcmUKK0ZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KK3VzaW5nIGl0LiAgKFNvbWUgb3RoZXIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHNvZnR3YXJlIGlzIGNvdmVyZWQgYnkKK3RoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bworeW91ciBwcm9ncmFtcywgdG9vLgorCisgIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKK3ByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UKK2hhdmUgdGhlIGZyZWVkb20gdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb2YgZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJnZSBmb3IKK3RoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAoraWYgeW91IHdhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQKK2luIG5ldyBmcmVlIHByb2dyYW1zOyBhbmQgdGhhdCB5b3Uga25vdyB5b3UgY2FuIGRvIHRoZXNlIHRoaW5ncy4KKworICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rpb25zIHRoYXQgZm9yYmlkCithbnlvbmUgdG8gZGVueSB5b3UgdGhlc2UgcmlnaHRzIG9yIHRvIGFzayB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuCitUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQorZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZiB5b3UgbW9kaWZ5IGl0LgorCisgIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKK2dyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IGdpdmUgdGhlIHJlY2lwaWVudHMgYWxsIHRoZSByaWdodHMgdGhhdAoreW91IGhhdmUuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUgb3IgY2FuIGdldCB0aGUKK3NvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKK3JpZ2h0cy4KKworICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCisoMikgb2ZmZXIgeW91IHRoaXMgbGljZW5zZSB3aGljaCBnaXZlcyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LAorZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoZSBzb2Z0d2FyZS4KKworICBBbHNvLCBmb3IgZWFjaCBhdXRob3IncyBwcm90ZWN0aW9uIGFuZCBvdXJzLCB3ZSB3YW50IHRvIG1ha2UgY2VydGFpbgordGhhdCBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGlzIGZyZWUKK3NvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQord2FudCBpdHMgcmVjaXBpZW50cyB0byBrbm93IHRoYXQgd2hhdCB0aGV5IGhhdmUgaXMgbm90IHRoZSBvcmlnaW5hbCwgc28KK3RoYXQgYW55IHByb2JsZW1zIGludHJvZHVjZWQgYnkgb3RoZXJzIHdpbGwgbm90IHJlZmxlY3Qgb24gdGhlIG9yaWdpbmFsCithdXRob3JzJyByZXB1dGF0aW9ucy4KKworICBGaW5hbGx5LCBhbnkgZnJlZSBwcm9ncmFtIGlzIHRocmVhdGVuZWQgY29uc3RhbnRseSBieSBzb2Z0d2FyZQorcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQorcHJvZ3JhbSB3aWxsIGluZGl2aWR1YWxseSBvYnRhaW4gcGF0ZW50IGxpY2Vuc2VzLCBpbiBlZmZlY3QgbWFraW5nIHRoZQorcHJvZ3JhbSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgd2UgaGF2ZSBtYWRlIGl0IGNsZWFyIHRoYXQgYW55CitwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgorCisgIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCittb2RpZmljYXRpb24gZm9sbG93LgorDAorCQkgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKKyAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04gQU5EIE1PRElGSUNBVElPTgorCisgIDAuIFRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIGFueSBwcm9ncmFtIG9yIG90aGVyIHdvcmsgd2hpY2ggY29udGFpbnMKK2Egbm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBzYXlpbmcgaXQgbWF5IGJlIGRpc3RyaWJ1dGVkCit1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCityZWZlcnMgdG8gYW55IHN1Y2ggcHJvZ3JhbSBvciB3b3JrLCBhbmQgYSAid29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSIKK21lYW5zIGVpdGhlciB0aGUgUHJvZ3JhbSBvciBhbnkgZGVyaXZhdGl2ZSB3b3JrIHVuZGVyIGNvcHlyaWdodCBsYXc6Cit0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAorZWl0aGVyIHZlcmJhdGltIG9yIHdpdGggbW9kaWZpY2F0aW9ucyBhbmQvb3IgdHJhbnNsYXRlZCBpbnRvIGFub3RoZXIKK2xhbmd1YWdlLiAgKEhlcmVpbmFmdGVyLCB0cmFuc2xhdGlvbiBpcyBpbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4KK3RoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgorCitBY3Rpdml0aWVzIG90aGVyIHRoYW4gY29weWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gYXJlIG5vdAorY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgorcnVubmluZyB0aGUgUHJvZ3JhbSBpcyBub3QgcmVzdHJpY3RlZCwgYW5kIHRoZSBvdXRwdXQgZnJvbSB0aGUgUHJvZ3JhbQoraXMgY292ZXJlZCBvbmx5IGlmIGl0cyBjb250ZW50cyBjb25zdGl0dXRlIGEgd29yayBiYXNlZCBvbiB0aGUKK1Byb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCitXaGV0aGVyIHRoYXQgaXMgdHJ1ZSBkZXBlbmRzIG9uIHdoYXQgdGhlIFByb2dyYW0gZG9lcy4KKworICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKK3NvdXJjZSBjb2RlIGFzIHlvdSByZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdQorY29uc3BpY3VvdXNseSBhbmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZQorY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQorbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSBhbmQgdG8gdGhlIGFic2VuY2Ugb2YgYW55IHdhcnJhbnR5OworYW5kIGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFByb2dyYW0gYSBjb3B5IG9mIHRoaXMgTGljZW5zZQorYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KKworWW91IG1heSBjaGFyZ2UgYSBmZWUgZm9yIHRoZSBwaHlzaWNhbCBhY3Qgb2YgdHJhbnNmZXJyaW5nIGEgY29weSwgYW5kCit5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgorCisgIDIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIFByb2dyYW0gb3IgYW55IHBvcnRpb24KK29mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKK2Rpc3RyaWJ1dGUgc3VjaCBtb2RpZmljYXRpb25zIG9yIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMQorYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKKworICAgIGEpIFlvdSBtdXN0IGNhdXNlIHRoZSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgIHN0YXRpbmcgdGhhdCB5b3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCisKKyAgICBiKSBZb3UgbXVzdCBjYXVzZSBhbnkgd29yayB0aGF0IHlvdSBkaXN0cmlidXRlIG9yIHB1Ymxpc2gsIHRoYXQgaW4KKyAgICB3aG9sZSBvciBpbiBwYXJ0IGNvbnRhaW5zIG9yIGlzIGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSBvciBhbnkKKyAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAorICAgIHBhcnRpZXMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4KKworICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKKyAgICB3aGVuIHJ1biwgeW91IG11c3QgY2F1c2UgaXQsIHdoZW4gc3RhcnRlZCBydW5uaW5nIGZvciBzdWNoCisgICAgaW50ZXJhY3RpdmUgdXNlIGluIHRoZSBtb3N0IG9yZGluYXJ5IHdheSwgdG8gcHJpbnQgb3IgZGlzcGxheSBhbgorICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQorICAgIG5vdGljZSB0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IChvciBlbHNlLCBzYXlpbmcgdGhhdCB5b3UgcHJvdmlkZQorICAgIGEgd2FycmFudHkpIGFuZCB0aGF0IHVzZXJzIG1heSByZWRpc3RyaWJ1dGUgdGhlIHByb2dyYW0gdW5kZXIKKyAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcworICAgIExpY2Vuc2UuICAoRXhjZXB0aW9uOiBpZiB0aGUgUHJvZ3JhbSBpdHNlbGYgaXMgaW50ZXJhY3RpdmUgYnV0CisgICAgZG9lcyBub3Qgbm9ybWFsbHkgcHJpbnQgc3VjaCBhbiBhbm5vdW5jZW1lbnQsIHlvdXIgd29yayBiYXNlZCBvbgorICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQorDAorVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgoraWRlbnRpZmlhYmxlIHNlY3Rpb25zIG9mIHRoYXQgd29yayBhcmUgbm90IGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSwKK2FuZCBjYW4gYmUgcmVhc29uYWJseSBjb25zaWRlcmVkIGluZGVwZW5kZW50IGFuZCBzZXBhcmF0ZSB3b3JrcyBpbgordGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQorc2VjdGlvbnMgd2hlbiB5b3UgZGlzdHJpYnV0ZSB0aGVtIGFzIHNlcGFyYXRlIHdvcmtzLiAgQnV0IHdoZW4geW91CitkaXN0cmlidXRlIHRoZSBzYW1lIHNlY3Rpb25zIGFzIHBhcnQgb2YgYSB3aG9sZSB3aGljaCBpcyBhIHdvcmsgYmFzZWQKK29uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgordGhpcyBMaWNlbnNlLCB3aG9zZSBwZXJtaXNzaW9ucyBmb3Igb3RoZXIgbGljZW5zZWVzIGV4dGVuZCB0byB0aGUKK2VudGlyZSB3aG9sZSwgYW5kIHRodXMgdG8gZWFjaCBhbmQgZXZlcnkgcGFydCByZWdhcmRsZXNzIG9mIHdobyB3cm90ZSBpdC4KKworVGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJpZ2h0cyBvciBjb250ZXN0Cit5b3VyIHJpZ2h0cyB0byB3b3JrIHdyaXR0ZW4gZW50aXJlbHkgYnkgeW91OyByYXRoZXIsIHRoZSBpbnRlbnQgaXMgdG8KK2V4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgorY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0aGUgUHJvZ3JhbS4KKworSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQord2l0aCB0aGUgUHJvZ3JhbSAob3Igd2l0aCBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0pIG9uIGEgdm9sdW1lIG9mCithIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSBkb2VzIG5vdCBicmluZyB0aGUgb3RoZXIgd29yayB1bmRlcgordGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KKworICAzLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGEgd29yayBiYXNlZCBvbiBpdCwKK3VuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgorU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIGRvIG9uZSBvZiB0aGUgZm9sbG93aW5nOgorCisgICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQorICAgIHNvdXJjZSBjb2RlLCB3aGljaCBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucworICAgIDEgYW5kIDIgYWJvdmUgb24gYSBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2U7IG9yLAorCisgICAgYikgQWNjb21wYW55IGl0IHdpdGggYSB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQgbGVhc3QgdGhyZWUKKyAgICB5ZWFycywgdG8gZ2l2ZSBhbnkgdGhpcmQgcGFydHksIGZvciBhIGNoYXJnZSBubyBtb3JlIHRoYW4geW91cgorICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKKyAgICBtYWNoaW5lLXJlYWRhYmxlIGNvcHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUsIHRvIGJlCisgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgb24gYSBtZWRpdW0KKyAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCisKKyAgICBjKSBBY2NvbXBhbnkgaXQgd2l0aCB0aGUgaW5mb3JtYXRpb24geW91IHJlY2VpdmVkIGFzIHRvIHRoZSBvZmZlcgorICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCisgICAgYWxsb3dlZCBvbmx5IGZvciBub25jb21tZXJjaWFsIGRpc3RyaWJ1dGlvbiBhbmQgb25seSBpZiB5b3UKKyAgICByZWNlaXZlZCB0aGUgcHJvZ3JhbSBpbiBvYmplY3QgY29kZSBvciBleGVjdXRhYmxlIGZvcm0gd2l0aCBzdWNoCisgICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCisKK1RoZSBzb3VyY2UgY29kZSBmb3IgYSB3b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yayBmb3IKK21ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCitjb2RlIG1lYW5zIGFsbCB0aGUgc291cmNlIGNvZGUgZm9yIGFsbCBtb2R1bGVzIGl0IGNvbnRhaW5zLCBwbHVzIGFueQorYXNzb2NpYXRlZCBpbnRlcmZhY2UgZGVmaW5pdGlvbiBmaWxlcywgcGx1cyB0aGUgc2NyaXB0cyB1c2VkIHRvCitjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCitzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIHNvdXJjZSBjb2RlIGRpc3RyaWJ1dGVkIG5lZWQgbm90IGluY2x1ZGUKK2FueXRoaW5nIHRoYXQgaXMgbm9ybWFsbHkgZGlzdHJpYnV0ZWQgKGluIGVpdGhlciBzb3VyY2Ugb3IgYmluYXJ5Citmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQorb3BlcmF0aW5nIHN5c3RlbSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSBydW5zLCB1bmxlc3MgdGhhdCBjb21wb25lbnQKK2l0c2VsZiBhY2NvbXBhbmllcyB0aGUgZXhlY3V0YWJsZS4KKworSWYgZGlzdHJpYnV0aW9uIG9mIGV4ZWN1dGFibGUgb3Igb2JqZWN0IGNvZGUgaXMgbWFkZSBieSBvZmZlcmluZworYWNjZXNzIHRvIGNvcHkgZnJvbSBhIGRlc2lnbmF0ZWQgcGxhY2UsIHRoZW4gb2ZmZXJpbmcgZXF1aXZhbGVudAorYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCitkaXN0cmlidXRpb24gb2YgdGhlIHNvdXJjZSBjb2RlLCBldmVuIHRob3VnaCB0aGlyZCBwYXJ0aWVzIGFyZSBub3QKK2NvbXBlbGxlZCB0byBjb3B5IHRoZSBzb3VyY2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuCisMCisgIDQuIFlvdSBtYXkgbm90IGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSwgb3IgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbQorZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdAorb3RoZXJ3aXNlIHRvIGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGlzCit2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2UuCitIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlcgordGhpcyBMaWNlbnNlIHdpbGwgbm90IGhhdmUgdGhlaXIgbGljZW5zZXMgdGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2gKK3BhcnRpZXMgcmVtYWluIGluIGZ1bGwgY29tcGxpYW5jZS4KKworICA1LiBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlLCBzaW5jZSB5b3UgaGF2ZSBub3QKK3NpZ25lZCBpdC4gIEhvd2V2ZXIsIG5vdGhpbmcgZWxzZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gbW9kaWZ5IG9yCitkaXN0cmlidXRlIHRoZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKK3Byb2hpYml0ZWQgYnkgbGF3IGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkKK21vZGlmeWluZyBvciBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQorUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKK2FsbCBpdHMgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBtb2RpZnlpbmcKK3RoZSBQcm9ncmFtIG9yIHdvcmtzIGJhc2VkIG9uIGl0LgorCisgIDYuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKK1Byb2dyYW0pLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNlbnNlIGZyb20gdGhlCitvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCit0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlcgorcmVzdHJpY3Rpb25zIG9uIHRoZSByZWNpcGllbnRzJyBleGVyY2lzZSBvZiB0aGUgcmlnaHRzIGdyYW50ZWQgaGVyZWluLgorWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KK3RoaXMgTGljZW5zZS4KKworICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CitpbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLAorY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgorb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdAorZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QKK2Rpc3RyaWJ1dGUgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKK0xpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKK21heSBub3QgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQKK2xpY2Vuc2Ugd291bGQgbm90IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkKK2FsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgordGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0bworcmVmcmFpbiBlbnRpcmVseSBmcm9tIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbS4KKworSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCithbnkgcGFydGljdWxhciBjaXJjdW1zdGFuY2UsIHRoZSBiYWxhbmNlIG9mIHRoZSBzZWN0aW9uIGlzIGludGVuZGVkIHRvCithcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgorY2lyY3Vtc3RhbmNlcy4KKworSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQorcGF0ZW50cyBvciBvdGhlciBwcm9wZXJ0eSByaWdodCBjbGFpbXMgb3IgdG8gY29udGVzdCB2YWxpZGl0eSBvZiBhbnkKK3N1Y2ggY2xhaW1zOyB0aGlzIHNlY3Rpb24gaGFzIHRoZSBzb2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUKK2ludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcworaW1wbGVtZW50ZWQgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiAgTWFueSBwZW9wbGUgaGF2ZSBtYWRlCitnZW5lcm91cyBjb250cmlidXRpb25zIHRvIHRoZSB3aWRlIHJhbmdlIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkCit0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdAorc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZwordG8gZGlzdHJpYnV0ZSBzb2Z0d2FyZSB0aHJvdWdoIGFueSBvdGhlciBzeXN0ZW0gYW5kIGEgbGljZW5zZWUgY2Fubm90CitpbXBvc2UgdGhhdCBjaG9pY2UuCisKK1RoaXMgc2VjdGlvbiBpcyBpbnRlbmRlZCB0byBtYWtlIHRob3JvdWdobHkgY2xlYXIgd2hhdCBpcyBiZWxpZXZlZCB0bworYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCisMCisgIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCitjZXJ0YWluIGNvdW50cmllcyBlaXRoZXIgYnkgcGF0ZW50cyBvciBieSBjb3B5cmlnaHRlZCBpbnRlcmZhY2VzLCB0aGUKK29yaWdpbmFsIGNvcHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIExpY2Vuc2UKK21heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwordGhvc2UgY291bnRyaWVzLCBzbyB0aGF0IGRpc3RyaWJ1dGlvbiBpcyBwZXJtaXR0ZWQgb25seSBpbiBvciBhbW9uZworY291bnRyaWVzIG5vdCB0aHVzIGV4Y2x1ZGVkLiAgSW4gc3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzCit0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KKworICA5LiBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucworb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCitiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KK2FkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgorCitFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZSBQcm9ncmFtCitzcGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQgImFueQorbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworZWl0aGVyIG9mIHRoYXQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKK1NvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YKK3RoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKK0ZvdW5kYXRpb24uCisKKyAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQorcHJvZ3JhbXMgd2hvc2UgZGlzdHJpYnV0aW9uIGNvbmRpdGlvbnMgYXJlIGRpZmZlcmVudCwgd3JpdGUgdG8gdGhlIGF1dGhvcgordG8gYXNrIGZvciBwZXJtaXNzaW9uLiAgRm9yIHNvZnR3YXJlIHdoaWNoIGlzIGNvcHlyaWdodGVkIGJ5IHRoZSBGcmVlCitTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKK21ha2UgZXhjZXB0aW9ucyBmb3IgdGhpcy4gIE91ciBkZWNpc2lvbiB3aWxsIGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzCitvZiBwcmVzZXJ2aW5nIHRoZSBmcmVlIHN0YXR1cyBvZiBhbGwgZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kCitvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KKworCQkJICAgIE5PIFdBUlJBTlRZCisKKyAgMTEuIEJFQ0FVU0UgVEhFIFBST0dSQU0gSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRIRVJFIElTIE5PIFdBUlJBTlRZCitGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4KK09USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKK1BST1ZJREUgVEhFIFBST0dSQU0gIkFTIElTIiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VECitPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUworVE8gVEhFIFFVQUxJVFkgQU5EIFBFUkZPUk1BTkNFIE9GIFRIRSBQUk9HUkFNIElTIFdJVEggWU9VLiAgU0hPVUxEIFRIRQorUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsCitSRVBBSVIgT1IgQ09SUkVDVElPTi4KKworICAxMi4gSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJTiBXUklUSU5HCitXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SCitSRURJU1RSSUJVVEUgVEhFIFBST0dSQU0gQVMgUEVSTUlUVEVEIEFCT1ZFLCBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLAorSU5DTFVESU5HIEFOWSBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HCitPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVECitUTyBMT1NTIE9GIERBVEEgT1IgREFUQSBCRUlORyBSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NFUyBTVVNUQUlORUQgQlkKK1lPVSBPUiBUSElSRCBQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSCitQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KKworCQkgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworDAorCSAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKKworICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0Citwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CitmcmVlIHNvZnR3YXJlIHdoaWNoIGV2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5nZSB1bmRlciB0aGVzZSB0ZXJtcy4KKworICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAordG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9zdCBlZmZlY3RpdmVseQorY29udmV5IHRoZSBleGNsdXNpb24gb2Ygd2FycmFudHk7IGFuZCBlYWNoIGZpbGUgc2hvdWxkIGhhdmUgYXQgbGVhc3QKK3RoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgorCisgICAgPG9uZSBsaW5lIHRvIGdpdmUgdGhlIHByb2dyYW0ncyBuYW1lIGFuZCBhIGJyaWVmIGlkZWEgb2Ygd2hhdCBpdCBkb2VzLj4KKyAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKKworQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCisKK0lmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKK3doZW4gaXQgc3RhcnRzIGluIGFuIGludGVyYWN0aXZlIG1vZGU6CisKKyAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgIG5hbWUgb2YgYXV0aG9yCisgICAgR25vbW92aXNpb24gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZOyBmb3IgZGV0YWlscyB0eXBlIGBzaG93IHcnLgorICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKKyAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCisKK1RoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQorcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHRoZSBjb21tYW5kcyB5b3UgdXNlIG1heQorYmUgY2FsbGVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGBzaG93IHcnIGFuZCBgc2hvdyBjJzsgdGhleSBjb3VsZCBldmVuIGJlCittb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgorCitZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3IgeW91cgorc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKK25lY2Vzc2FyeS4gIEhlcmUgaXMgYSBzYW1wbGU7IGFsdGVyIHRoZSBuYW1lczoKKworICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCisgIGBHbm9tb3Zpc2lvbicgKHdoaWNoIG1ha2VzIHBhc3NlcyBhdCBjb21waWxlcnMpIHdyaXR0ZW4gYnkgSmFtZXMgSGFja2VyLgorCisgIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQorICBUeSBDb29uLCBQcmVzaWRlbnQgb2YgVmljZQorCitUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KK3Byb3ByaWV0YXJ5IHByb2dyYW1zLiAgSWYgeW91ciBwcm9ncmFtIGlzIGEgc3Vicm91dGluZSBsaWJyYXJ5LCB5b3UgbWF5Citjb25zaWRlciBpdCBtb3JlIHVzZWZ1bCB0byBwZXJtaXQgbGlua2luZyBwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnMgd2l0aCB0aGUKK2xpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbAorUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9ERVBSRUNBVEVEIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvREVQUkVDQVRFRApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDIzNjAxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvREVQUkVDQVRFRApAQCAtMCwwICsxLDYwIEBACitUaGUgZm9sbG93aW5nIGlzIGEgbGlzdCBvZiBjb21tYW5kcyBvciBmZWF0dXJlcyB0aGF0IGFyZSBkZXByZWNhdGVkLiAgQWxsCitkZXByZWNhdGVkIHV0aWxzIGFyZSBpbiBtYWludGVuYWNlIG1vZGUgYW5kIHdlIGtlZXAgdGhlbSBpbiBzb3VyY2UgdHJlZSBmb3IKK2JhY2t3YXJkIGNvbXBhdGliaWx0eSBvbmx5LgorCitXaGF0Oglsb3NldHVwIC1zCitXaGVuOgkyLjE1CitXaHk6CXRoZSBvcHRpb24gLXMgaXMgaW4gY29sbGlzaW9uIHdpdGggdGhlIExvb3AtQUVTIGxvc2V0dXAgZGlhbGVjdCB0aGF0IGlzIHVzZWQKKyAgICAgICAgaW4gc29tZSBkaXN0cmlidXRpb25zLiBVc2UgdGhlIGxvbmcgdmVyc2lvbiAoLS1zaG93KSBvbmx5LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGF0OgljcnlwdG9sb29wIHN1cHBvcnQgaW4gbW91bnQvbG9zZXR1cAorV2hlbjoJdW5kZWZpbmVkIHlldAorV2h5OglkZXByZWNpYXRlZCBpbiBmYXZvciBvZiBkbS1jcnlwdC4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1doYXQ6CWVsdnR1bmUKK1doZW46CXVuZGVmaW5lZCB5ZXQKK1doeToJdXNlbGVzcyBmb3Iga2VybmVsID49IDIuNi45CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGF0OglhcmNoKDEpIGNvbW1hbmQKK1doZW46CTIuMTQKK1doeToJZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB1bmFtZSgxKSBvciBhcmNoKDEpIGZyb20gY29yZXV0aWxzCisKKwlUaGUgYXJjaCgxKSBoYXMgYmVlbiBhZGRlZCAoZHVyaW5nIDIuMTMgZGV2ZWxvcG1lbnQgY3ljbGUpIHRvIGNvcmV1dHVscworCXdoZXJlIGl0IHdpbGwgYmUgbWFpbnRhaW5lZCBhcyBhbiBhbGlhcyBmb3IgdW5hbWUoMSkgY29tbWFuZC4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGF0OglraWxsKDEpIGNvbW1hbmQKK1doeToJZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBraWxsIGZyb20gcHJvY3BzIG9yIGJhc2ggYnVpbGQtaW4ga2lsbCBjb21tYW5kCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2hhdDoJbmV3Z3JwKDEpCitXaHk6CWRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgbmV3Z3JwIGZyb20gc2hhZG93LXV0aWxzCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2hhdDoJdmlwdy92aWdyKDgpCitXaHk6CWRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygdmlwdy92aWdyKDgpIGZyb20gc2hhZG93LXV0aWxzCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2hhdDoJbGFzdCgxKQorV2h5Oglub2JvZHkgdXNlcyB0aGlzIGltcGxlbWVudGF0aW9uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2hhdDoJc2h1dGRvd24oMSkKK1doeToJbm9ib2R5IHVzZXMgdGhpcyBpbXBsZW1lbnRhdGlvbgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1doYXQ6CXJkZXYoOCksIHJhbXNpemUoOCksIHZpZG1vZGUoOCkgYW5kICByb290ZmxhZ3MoOCkKK1doeToJaTM4NiBzcGVjaWZpYyBhbmQgcHJvYmFibHkgdXNlbGVzcworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9JTlNUQUxMIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvSU5TVEFMTApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2U1ZjI1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvSU5TVEFMTApAQCAtMCwwICsxLDIzNiBAQAorSW5zdGFsbGF0aW9uIEluc3RydWN0aW9ucworKioqKioqKioqKioqKioqKioqKioqKioqKgorCitDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDQsIDIwMDUgRnJlZQorU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitUaGlzIGZpbGUgaXMgZnJlZSBkb2N1bWVudGF0aW9uOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCit1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCisKK0Jhc2ljIEluc3RhbGxhdGlvbgorPT09PT09PT09PT09PT09PT09CisKK1RoZXNlIGFyZSBnZW5lcmljIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuCisKKyAgIFRoZSBgY29uZmlndXJlJyBzaGVsbCBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgY29ycmVjdCB2YWx1ZXMgZm9yCit2YXJpb3VzIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIHVzZWQgZHVyaW5nIGNvbXBpbGF0aW9uLiAgSXQgdXNlcwordGhvc2UgdmFsdWVzIHRvIGNyZWF0ZSBhIGBNYWtlZmlsZScgaW4gZWFjaCBkaXJlY3Rvcnkgb2YgdGhlIHBhY2thZ2UuCitJdCBtYXkgYWxzbyBjcmVhdGUgb25lIG9yIG1vcmUgYC5oJyBmaWxlcyBjb250YWluaW5nIHN5c3RlbS1kZXBlbmRlbnQKK2RlZmluaXRpb25zLiAgRmluYWxseSwgaXQgY3JlYXRlcyBhIHNoZWxsIHNjcmlwdCBgY29uZmlnLnN0YXR1cycgdGhhdAoreW91IGNhbiBydW4gaW4gdGhlIGZ1dHVyZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLCBhbmQgYQorZmlsZSBgY29uZmlnLmxvZycgY29udGFpbmluZyBjb21waWxlciBvdXRwdXQgKHVzZWZ1bCBtYWlubHkgZm9yCitkZWJ1Z2dpbmcgYGNvbmZpZ3VyZScpLgorCisgICBJdCBjYW4gYWxzbyB1c2UgYW4gb3B0aW9uYWwgZmlsZSAodHlwaWNhbGx5IGNhbGxlZCBgY29uZmlnLmNhY2hlJworYW5kIGVuYWJsZWQgd2l0aCBgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScgb3Igc2ltcGx5IGAtQycpIHRoYXQgc2F2ZXMKK3RoZSByZXN1bHRzIG9mIGl0cyB0ZXN0cyB0byBzcGVlZCB1cCByZWNvbmZpZ3VyaW5nLiAgKENhY2hpbmcgaXMKK2Rpc2FibGVkIGJ5IGRlZmF1bHQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIGFjY2lkZW50YWwgdXNlIG9mIHN0YWxlCitjYWNoZSBmaWxlcy4pCisKKyAgIElmIHlvdSBuZWVkIHRvIGRvIHVudXN1YWwgdGhpbmdzIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UsIHBsZWFzZSB0cnkKK3RvIGZpZ3VyZSBvdXQgaG93IGBjb25maWd1cmUnIGNvdWxkIGNoZWNrIHdoZXRoZXIgdG8gZG8gdGhlbSwgYW5kIG1haWwKK2RpZmZzIG9yIGluc3RydWN0aW9ucyB0byB0aGUgYWRkcmVzcyBnaXZlbiBpbiB0aGUgYFJFQURNRScgc28gdGhleSBjYW4KK2JlIGNvbnNpZGVyZWQgZm9yIHRoZSBuZXh0IHJlbGVhc2UuICBJZiB5b3UgYXJlIHVzaW5nIHRoZSBjYWNoZSwgYW5kIGF0Citzb21lIHBvaW50IGBjb25maWcuY2FjaGUnIGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91CittYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCisKKyAgIFRoZSBmaWxlIGBjb25maWd1cmUuYWMnIChvciBgY29uZmlndXJlLmluJykgaXMgdXNlZCB0byBjcmVhdGUKK2Bjb25maWd1cmUnIGJ5IGEgcHJvZ3JhbSBjYWxsZWQgYGF1dG9jb25mJy4gIFlvdSBvbmx5IG5lZWQKK2Bjb25maWd1cmUuYWMnIGlmIHlvdSB3YW50IHRvIGNoYW5nZSBpdCBvciByZWdlbmVyYXRlIGBjb25maWd1cmUnIHVzaW5nCithIG5ld2VyIHZlcnNpb24gb2YgYGF1dG9jb25mJy4KKworVGhlIHNpbXBsZXN0IHdheSB0byBjb21waWxlIHRoaXMgcGFja2FnZSBpczoKKworICAxLiBgY2QnIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgcGFja2FnZSdzIHNvdXJjZSBjb2RlIGFuZCB0eXBlCisgICAgIGAuL2NvbmZpZ3VyZScgdG8gY29uZmlndXJlIHRoZSBwYWNrYWdlIGZvciB5b3VyIHN5c3RlbS4gIElmIHlvdSdyZQorICAgICB1c2luZyBgY3NoJyBvbiBhbiBvbGQgdmVyc2lvbiBvZiBTeXN0ZW0gViwgeW91IG1pZ2h0IG5lZWQgdG8gdHlwZQorICAgICBgc2ggLi9jb25maWd1cmUnIGluc3RlYWQgdG8gcHJldmVudCBgY3NoJyBmcm9tIHRyeWluZyB0byBleGVjdXRlCisgICAgIGBjb25maWd1cmUnIGl0c2VsZi4KKworICAgICBSdW5uaW5nIGBjb25maWd1cmUnIHRha2VzIGF3aGlsZS4gIFdoaWxlIHJ1bm5pbmcsIGl0IHByaW50cyBzb21lCisgICAgIG1lc3NhZ2VzIHRlbGxpbmcgd2hpY2ggZmVhdHVyZXMgaXQgaXMgY2hlY2tpbmcgZm9yLgorCisgIDIuIFR5cGUgYG1ha2UnIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UuCisKKyAgMy4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBjaGVjaycgdG8gcnVuIGFueSBzZWxmLXRlc3RzIHRoYXQgY29tZSB3aXRoCisgICAgIHRoZSBwYWNrYWdlLgorCisgIDQuIFR5cGUgYG1ha2UgaW5zdGFsbCcgdG8gaW5zdGFsbCB0aGUgcHJvZ3JhbXMgYW5kIGFueSBkYXRhIGZpbGVzIGFuZAorICAgICBkb2N1bWVudGF0aW9uLgorCisgIDUuIFlvdSBjYW4gcmVtb3ZlIHRoZSBwcm9ncmFtIGJpbmFyaWVzIGFuZCBvYmplY3QgZmlsZXMgZnJvbSB0aGUKKyAgICAgc291cmNlIGNvZGUgZGlyZWN0b3J5IGJ5IHR5cGluZyBgbWFrZSBjbGVhbicuICBUbyBhbHNvIHJlbW92ZSB0aGUKKyAgICAgZmlsZXMgdGhhdCBgY29uZmlndXJlJyBjcmVhdGVkIChzbyB5b3UgY2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yCisgICAgIGEgZGlmZmVyZW50IGtpbmQgb2YgY29tcHV0ZXIpLCB0eXBlIGBtYWtlIGRpc3RjbGVhbicuICBUaGVyZSBpcworICAgICBhbHNvIGEgYG1ha2UgbWFpbnRhaW5lci1jbGVhbicgdGFyZ2V0LCBidXQgdGhhdCBpcyBpbnRlbmRlZCBtYWlubHkKKyAgICAgZm9yIHRoZSBwYWNrYWdlJ3MgZGV2ZWxvcGVycy4gIElmIHlvdSB1c2UgaXQsIHlvdSBtYXkgaGF2ZSB0byBnZXQKKyAgICAgYWxsIHNvcnRzIG9mIG90aGVyIHByb2dyYW1zIGluIG9yZGVyIHRvIHJlZ2VuZXJhdGUgZmlsZXMgdGhhdCBjYW1lCisgICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworQ29tcGlsZXJzIGFuZCBPcHRpb25zCis9PT09PT09PT09PT09PT09PT09PT0KKworU29tZSBzeXN0ZW1zIHJlcXVpcmUgdW51c3VhbCBvcHRpb25zIGZvciBjb21waWxhdGlvbiBvciBsaW5raW5nIHRoYXQgdGhlCitgY29uZmlndXJlJyBzY3JpcHQgZG9lcyBub3Qga25vdyBhYm91dC4gIFJ1biBgLi9jb25maWd1cmUgLS1oZWxwJyBmb3IKK2RldGFpbHMgb24gc29tZSBvZiB0aGUgcGVydGluZW50IGVudmlyb25tZW50IHZhcmlhYmxlcy4KKworICAgWW91IGNhbiBnaXZlIGBjb25maWd1cmUnIGluaXRpYWwgdmFsdWVzIGZvciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMKK2J5IHNldHRpbmcgdmFyaWFibGVzIGluIHRoZSBjb21tYW5kIGxpbmUgb3IgaW4gdGhlIGVudmlyb25tZW50LiAgSGVyZQoraXMgYW4gZXhhbXBsZToKKworICAgICAuL2NvbmZpZ3VyZSBDQz1jODkgQ0ZMQUdTPS1PMiBMSUJTPS1scG9zaXgKKworICAgKk5vdGUgRGVmaW5pbmcgVmFyaWFibGVzOjosIGZvciBtb3JlIGRldGFpbHMuCisKK0NvbXBpbGluZyBGb3IgTXVsdGlwbGUgQXJjaGl0ZWN0dXJlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1lvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IgbW9yZSB0aGFuIG9uZSBraW5kIG9mIGNvbXB1dGVyIGF0IHRoZQorc2FtZSB0aW1lLCBieSBwbGFjaW5nIHRoZSBvYmplY3QgZmlsZXMgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlIGluIHRoZWlyCitvd24gZGlyZWN0b3J5LiAgVG8gZG8gdGhpcywgeW91IG11c3QgdXNlIGEgdmVyc2lvbiBvZiBgbWFrZScgdGhhdAorc3VwcG9ydHMgdGhlIGBWUEFUSCcgdmFyaWFibGUsIHN1Y2ggYXMgR05VIGBtYWtlJy4gIGBjZCcgdG8gdGhlCitkaXJlY3Rvcnkgd2hlcmUgeW91IHdhbnQgdGhlIG9iamVjdCBmaWxlcyBhbmQgZXhlY3V0YWJsZXMgdG8gZ28gYW5kIHJ1bgordGhlIGBjb25maWd1cmUnIHNjcmlwdC4gIGBjb25maWd1cmUnIGF1dG9tYXRpY2FsbHkgY2hlY2tzIGZvciB0aGUKK3NvdXJjZSBjb2RlIGluIHRoZSBkaXJlY3RvcnkgdGhhdCBgY29uZmlndXJlJyBpcyBpbiBhbmQgaW4gYC4uJy4KKworICAgSWYgeW91IGhhdmUgdG8gdXNlIGEgYG1ha2UnIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYFZQQVRIJwordmFyaWFibGUsIHlvdSBoYXZlIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yIG9uZSBhcmNoaXRlY3R1cmUgYXQgYQordGltZSBpbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LiAgQWZ0ZXIgeW91IGhhdmUgaW5zdGFsbGVkIHRoZQorcGFja2FnZSBmb3Igb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3JlIHJlY29uZmlndXJpbmcKK2ZvciBhbm90aGVyIGFyY2hpdGVjdHVyZS4KKworSW5zdGFsbGF0aW9uIE5hbWVzCis9PT09PT09PT09PT09PT09PT0KKworQnkgZGVmYXVsdCwgYG1ha2UgaW5zdGFsbCcgaW5zdGFsbHMgdGhlIHBhY2thZ2UncyBjb21tYW5kcyB1bmRlcgorYC91c3IvbG9jYWwvYmluJywgaW5jbHVkZSBmaWxlcyB1bmRlciBgL3Vzci9sb2NhbC9pbmNsdWRlJywgZXRjLiAgWW91CitjYW4gc3BlY2lmeSBhbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gYC91c3IvbG9jYWwnIGJ5IGdpdmluZworYGNvbmZpZ3VyZScgdGhlIG9wdGlvbiBgLS1wcmVmaXg9UFJFRklYJy4KKworICAgWW91IGNhbiBzcGVjaWZ5IHNlcGFyYXRlIGluc3RhbGxhdGlvbiBwcmVmaXhlcyBmb3IKK2FyY2hpdGVjdHVyZS1zcGVjaWZpYyBmaWxlcyBhbmQgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzLiAgSWYgeW91CitwYXNzIHRoZSBvcHRpb24gYC0tZXhlYy1wcmVmaXg9UFJFRklYJyB0byBgY29uZmlndXJlJywgdGhlIHBhY2thZ2UgdXNlcworUFJFRklYIGFzIHRoZSBwcmVmaXggZm9yIGluc3RhbGxpbmcgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcy4KK0RvY3VtZW50YXRpb24gYW5kIG90aGVyIGRhdGEgZmlsZXMgc3RpbGwgdXNlIHRoZSByZWd1bGFyIHByZWZpeC4KKworICAgSW4gYWRkaXRpb24sIGlmIHlvdSB1c2UgYW4gdW51c3VhbCBkaXJlY3RvcnkgbGF5b3V0IHlvdSBjYW4gZ2l2ZQorb3B0aW9ucyBsaWtlIGAtLWJpbmRpcj1ESVInIHRvIHNwZWNpZnkgZGlmZmVyZW50IHZhbHVlcyBmb3IgcGFydGljdWxhcgora2luZHMgb2YgZmlsZXMuICBSdW4gYGNvbmZpZ3VyZSAtLWhlbHAnIGZvciBhIGxpc3Qgb2YgdGhlIGRpcmVjdG9yaWVzCit5b3UgY2FuIHNldCBhbmQgd2hhdCBraW5kcyBvZiBmaWxlcyBnbyBpbiB0aGVtLgorCisgICBJZiB0aGUgcGFja2FnZSBzdXBwb3J0cyBpdCwgeW91IGNhbiBjYXVzZSBwcm9ncmFtcyB0byBiZSBpbnN0YWxsZWQKK3dpdGggYW4gZXh0cmEgcHJlZml4IG9yIHN1ZmZpeCBvbiB0aGVpciBuYW1lcyBieSBnaXZpbmcgYGNvbmZpZ3VyZScgdGhlCitvcHRpb24gYC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklYJyBvciBgLS1wcm9ncmFtLXN1ZmZpeD1TVUZGSVgnLgorCitPcHRpb25hbCBGZWF0dXJlcworPT09PT09PT09PT09PT09PT0KKworU29tZSBwYWNrYWdlcyBwYXkgYXR0ZW50aW9uIHRvIGAtLWVuYWJsZS1GRUFUVVJFJyBvcHRpb25zIHRvCitgY29uZmlndXJlJywgd2hlcmUgRkVBVFVSRSBpbmRpY2F0ZXMgYW4gb3B0aW9uYWwgcGFydCBvZiB0aGUgcGFja2FnZS4KK1RoZXkgbWF5IGFsc28gcGF5IGF0dGVudGlvbiB0byBgLS13aXRoLVBBQ0tBR0UnIG9wdGlvbnMsIHdoZXJlIFBBQ0tBR0UKK2lzIHNvbWV0aGluZyBsaWtlIGBnbnUtYXMnIG9yIGB4JyAoZm9yIHRoZSBYIFdpbmRvdyBTeXN0ZW0pLiAgVGhlCitgUkVBRE1FJyBzaG91bGQgbWVudGlvbiBhbnkgYC0tZW5hYmxlLScgYW5kIGAtLXdpdGgtJyBvcHRpb25zIHRoYXQgdGhlCitwYWNrYWdlIHJlY29nbml6ZXMuCisKKyAgIEZvciBwYWNrYWdlcyB0aGF0IHVzZSB0aGUgWCBXaW5kb3cgU3lzdGVtLCBgY29uZmlndXJlJyBjYW4gdXN1YWxseQorZmluZCB0aGUgWCBpbmNsdWRlIGFuZCBsaWJyYXJ5IGZpbGVzIGF1dG9tYXRpY2FsbHksIGJ1dCBpZiBpdCBkb2Vzbid0LAoreW91IGNhbiB1c2UgdGhlIGBjb25maWd1cmUnIG9wdGlvbnMgYC0teC1pbmNsdWRlcz1ESVInIGFuZAorYC0teC1saWJyYXJpZXM9RElSJyB0byBzcGVjaWZ5IHRoZWlyIGxvY2F0aW9ucy4KKworU3BlY2lmeWluZyB0aGUgU3lzdGVtIFR5cGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZXJlIG1heSBiZSBzb21lIGZlYXR1cmVzIGBjb25maWd1cmUnIGNhbm5vdCBmaWd1cmUgb3V0IGF1dG9tYXRpY2FsbHksCitidXQgbmVlZHMgdG8gZGV0ZXJtaW5lIGJ5IHRoZSB0eXBlIG9mIG1hY2hpbmUgdGhlIHBhY2thZ2Ugd2lsbCBydW4gb24uCitVc3VhbGx5LCBhc3N1bWluZyB0aGUgcGFja2FnZSBpcyBidWlsdCB0byBiZSBydW4gb24gdGhlIF9zYW1lXworYXJjaGl0ZWN0dXJlcywgYGNvbmZpZ3VyZScgY2FuIGZpZ3VyZSB0aGF0IG91dCwgYnV0IGlmIGl0IHByaW50cyBhCittZXNzYWdlIHNheWluZyBpdCBjYW5ub3QgZ3Vlc3MgdGhlIG1hY2hpbmUgdHlwZSwgZ2l2ZSBpdCB0aGUKK2AtLWJ1aWxkPVRZUEUnIG9wdGlvbi4gIFRZUEUgY2FuIGVpdGhlciBiZSBhIHNob3J0IG5hbWUgZm9yIHRoZSBzeXN0ZW0KK3R5cGUsIHN1Y2ggYXMgYHN1bjQnLCBvciBhIGNhbm9uaWNhbCBuYW1lIHdoaWNoIGhhcyB0aGUgZm9ybToKKworICAgICBDUFUtQ09NUEFOWS1TWVNURU0KKword2hlcmUgU1lTVEVNIGNhbiBoYXZlIG9uZSBvZiB0aGVzZSBmb3JtczoKKworICAgICBPUyBLRVJORUwtT1MKKworICAgU2VlIHRoZSBmaWxlIGBjb25maWcuc3ViJyBmb3IgdGhlIHBvc3NpYmxlIHZhbHVlcyBvZiBlYWNoIGZpZWxkLiAgSWYKK2Bjb25maWcuc3ViJyBpc24ndCBpbmNsdWRlZCBpbiB0aGlzIHBhY2thZ2UsIHRoZW4gdGhpcyBwYWNrYWdlIGRvZXNuJ3QKK25lZWQgdG8ga25vdyB0aGUgbWFjaGluZSB0eXBlLgorCisgICBJZiB5b3UgYXJlIF9idWlsZGluZ18gY29tcGlsZXIgdG9vbHMgZm9yIGNyb3NzLWNvbXBpbGluZywgeW91IHNob3VsZAordXNlIHRoZSBvcHRpb24gYC0tdGFyZ2V0PVRZUEUnIHRvIHNlbGVjdCB0aGUgdHlwZSBvZiBzeXN0ZW0gdGhleSB3aWxsCitwcm9kdWNlIGNvZGUgZm9yLgorCisgICBJZiB5b3Ugd2FudCB0byBfdXNlXyBhIGNyb3NzIGNvbXBpbGVyLCB0aGF0IGdlbmVyYXRlcyBjb2RlIGZvciBhCitwbGF0Zm9ybSBkaWZmZXJlbnQgZnJvbSB0aGUgYnVpbGQgcGxhdGZvcm0sIHlvdSBzaG91bGQgc3BlY2lmeSB0aGUKKyJob3N0IiBwbGF0Zm9ybSAoaS5lLiwgdGhhdCBvbiB3aGljaCB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zIHdpbGwKK2V2ZW50dWFsbHkgYmUgcnVuKSB3aXRoIGAtLWhvc3Q9VFlQRScuCisKK1NoYXJpbmcgRGVmYXVsdHMKKz09PT09PT09PT09PT09PT0KKworSWYgeW91IHdhbnQgdG8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBgY29uZmlndXJlJyBzY3JpcHRzIHRvIHNoYXJlLCB5b3UKK2NhbiBjcmVhdGUgYSBzaXRlIHNoZWxsIHNjcmlwdCBjYWxsZWQgYGNvbmZpZy5zaXRlJyB0aGF0IGdpdmVzIGRlZmF1bHQKK3ZhbHVlcyBmb3IgdmFyaWFibGVzIGxpa2UgYENDJywgYGNhY2hlX2ZpbGUnLCBhbmQgYHByZWZpeCcuCitgY29uZmlndXJlJyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLCB0aGVuCitgUFJFRklYL2V0Yy9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLiAgT3IsIHlvdSBjYW4gc2V0IHRoZQorYENPTkZJR19TSVRFJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgbG9jYXRpb24gb2YgdGhlIHNpdGUgc2NyaXB0LgorQSB3YXJuaW5nOiBub3QgYWxsIGBjb25maWd1cmUnIHNjcmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4KKworRGVmaW5pbmcgVmFyaWFibGVzCis9PT09PT09PT09PT09PT09PT0KKworVmFyaWFibGVzIG5vdCBkZWZpbmVkIGluIGEgc2l0ZSBzaGVsbCBzY3JpcHQgY2FuIGJlIHNldCBpbiB0aGUKK2Vudmlyb25tZW50IHBhc3NlZCB0byBgY29uZmlndXJlJy4gIEhvd2V2ZXIsIHNvbWUgcGFja2FnZXMgbWF5IHJ1bgorY29uZmlndXJlIGFnYWluIGR1cmluZyB0aGUgYnVpbGQsIGFuZCB0aGUgY3VzdG9taXplZCB2YWx1ZXMgb2YgdGhlc2UKK3ZhcmlhYmxlcyBtYXkgYmUgbG9zdC4gIEluIG9yZGVyIHRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgeW91IHNob3VsZCBzZXQKK3RoZW0gaW4gdGhlIGBjb25maWd1cmUnIGNvbW1hbmQgbGluZSwgdXNpbmcgYFZBUj12YWx1ZScuICBGb3IgZXhhbXBsZToKKworICAgICAuL2NvbmZpZ3VyZSBDQz0vdXNyL2xvY2FsMi9iaW4vZ2NjCisKK2NhdXNlcyB0aGUgc3BlY2lmaWVkIGBnY2MnIHRvIGJlIHVzZWQgYXMgdGhlIEMgY29tcGlsZXIgKHVubGVzcyBpdCBpcworb3ZlcnJpZGRlbiBpbiB0aGUgc2l0ZSBzaGVsbCBzY3JpcHQpLiAgSGVyZSBpcyBhIGFub3RoZXIgZXhhbXBsZToKKworICAgICAvYmluL2Jhc2ggLi9jb25maWd1cmUgQ09ORklHX1NIRUxMPS9iaW4vYmFzaAorCitIZXJlIHRoZSBgQ09ORklHX1NIRUxMPS9iaW4vYmFzaCcgb3BlcmFuZCBjYXVzZXMgc3Vic2VxdWVudAorY29uZmlndXJhdGlvbi1yZWxhdGVkIHNjcmlwdHMgdG8gYmUgZXhlY3V0ZWQgYnkgYC9iaW4vYmFzaCcuCisKK2Bjb25maWd1cmUnIEludm9jYXRpb24KKz09PT09PT09PT09PT09PT09PT09PT0KKworYGNvbmZpZ3VyZScgcmVjb2duaXplcyB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gY29udHJvbCBob3cgaXQgb3BlcmF0ZXMuCisKK2AtLWhlbHAnCitgLWgnCisgICAgIFByaW50IGEgc3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB0byBgY29uZmlndXJlJywgYW5kIGV4aXQuCisKK2AtLXZlcnNpb24nCitgLVYnCisgICAgIFByaW50IHRoZSB2ZXJzaW9uIG9mIEF1dG9jb25mIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBjb25maWd1cmUnCisgICAgIHNjcmlwdCwgYW5kIGV4aXQuCisKK2AtLWNhY2hlLWZpbGU9RklMRScKKyAgICAgRW5hYmxlIHRoZSBjYWNoZTogdXNlIGFuZCBzYXZlIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0cyBpbiBGSUxFLAorICAgICB0cmFkaXRpb25hbGx5IGBjb25maWcuY2FjaGUnLiAgRklMRSBkZWZhdWx0cyB0byBgL2Rldi9udWxsJyB0bworICAgICBkaXNhYmxlIGNhY2hpbmcuCisKK2AtLWNvbmZpZy1jYWNoZScKK2AtQycKKyAgICAgQWxpYXMgZm9yIGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJy4KKworYC0tcXVpZXQnCitgLS1zaWxlbnQnCitgLXEnCisgICAgIERvIG5vdCBwcmludCBtZXNzYWdlcyBzYXlpbmcgd2hpY2ggY2hlY2tzIGFyZSBiZWluZyBtYWRlLiAgVG8KKyAgICAgc3VwcHJlc3MgYWxsIG5vcm1hbCBvdXRwdXQsIHJlZGlyZWN0IGl0IHRvIGAvZGV2L251bGwnIChhbnkgZXJyb3IKKyAgICAgbWVzc2FnZXMgd2lsbCBzdGlsbCBiZSBzaG93bikuCisKK2AtLXNyY2Rpcj1ESVInCisgICAgIExvb2sgZm9yIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgaW4gZGlyZWN0b3J5IERJUi4gIFVzdWFsbHkKKyAgICAgYGNvbmZpZ3VyZScgY2FuIGRldGVybWluZSB0aGF0IGRpcmVjdG9yeSBhdXRvbWF0aWNhbGx5LgorCitgY29uZmlndXJlJyBhbHNvIGFjY2VwdHMgc29tZSBvdGhlciwgbm90IHdpZGVseSB1c2VmdWwsIG9wdGlvbnMuICBSdW4KK2Bjb25maWd1cmUgLS1oZWxwJyBmb3IgbW9yZSBkZXRhaWxzLgorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9NYWtlZmlsZS5hbSBiL3V0aWwtbGludXgtbmctMi4xNy4yL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzMzI1MTAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDcxIEBACitpbmNsdWRlICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KKworU1VCRElSUyA9IFwKKwlpbmNsdWRlIFwKKwlkaXNrLXV0aWxzIFwKKwlmZGlzayBcCisJZ2V0b3B0IFwKKwlsaWIgXAorCXNobGlicyBcCisJbG9naW4tdXRpbHMgXAorCW1pc2MtdXRpbHMgXAorCXBvIFwKKwlzY2hlZHV0aWxzIFwKKwlzeXMtdXRpbHMgXAorCXRleHQtdXRpbHMgXAorCXRlc3RzCisKKworUkNTX0ZJTkRfSUdOT1JFIDo9IFwoIC1uYW1lIFNDQ1MgLW8gLW5hbWUgQml0S2VlcGVyIC1vIC1uYW1lIC5zdm4gLW8gXAorCQktbmFtZSBDVlMgLW8gLW5hbWUgLnBjIC1vIC1uYW1lIC5oZyAtbyAtbmFtZSAuZ2l0IFwpIC1wcnVuZSAtbworCitpZiBMSU5VWAorU1VCRElSUyArPSBcCisJaHdjbG9jayBcCisJcGFydHgKK2VuZGlmCisKK2lmIEJVSUxEX01PVU5UCitTVUJESVJTICs9IG1vdW50CitlbmRpZgorCitpZiBCVUlMRF9GU0NLCitTVUJESVJTICs9IGZzY2sKK2VuZGlmCisKK0FDTE9DQUxfQU1GTEFHUyA9IC1JIG00CisKK0VYVFJBX0RJU1QgPSBcCisJCWF1dG9nZW4uc2ggXAorCQlSRUFETUUuZGV2ZWwgXAorCQlSRUFETUUubGljZW5zaW5nIFwKKwkJREVQUkVDQVRFRCBcCisJCWxpY2Vuc2VzIFwKKwkJZXhhbXBsZS5maWxlcyBcCisJCXBvL3VwZGF0ZS1wb3RmaWxlcyBcCisJCXRvb2xzIFwKKwkJZG9jcworCisKK2Rpc3RjbGVhbi1sb2NhbDoKKwktZmluZCAuIC1uYW1lIFwqfiAtbyAtbmFtZSBcKi5vcmlnIC1vIC1uYW1lIFwqLnJlaiB8IHhhcmdzIHJtIC1mCisJcm0gLXJmIGF1dG9tNHRlLmNhY2hlCisKKworY2hlY2tpbmNsdWRlczoKKwlAZmluZCAqICQoUkNTX0ZJTkRfSUdOT1JFKSBcCisJCS1uYW1lICcqLltoY1NdJyAtdHlwZSBmIC1wcmludCB8IHNvcnQgLXUgXAorCQl8IHhhcmdzICQodG9wX3NyY2RpcikvdG9vbHMvY2hlY2tpbmNsdWRlcy5wbAorCitjaGVja2NvbmZpZzoKKwlAZmluZCAqICQoUkNTX0ZJTkRfSUdOT1JFKSBcCisJCS1uYW1lICcqLltoY1NdJyAtdHlwZSBmIC1wcmludCB8IHNvcnQgLXUgXAorCQl8IHhhcmdzICQodG9wX3NyY2RpcikvdG9vbHMvY2hlY2tjb25maWcuc2ggJCh0b3Bfc3JjZGlyKQorCisKK0VOQUJMRV9BTEwgPSAtLWVuYWJsZS1zdGF0aWMtcHJvZ3JhbXMgXAorIC0tZW5hYmxlLWVsdnR1bmUgLS1lbmFibGUtaW5pdCAtLWVuYWJsZS1raWxsIC0tZW5hYmxlLWxhc3QgXAorIC0tZW5hYmxlLW1lc2cgLS1lbmFibGUtcGFydHggLS1lbmFibGUtcmF3IC0tZW5hYmxlLXJkZXYgLS1lbmFibGUtcmVzZXQgXAorIC0tZW5hYmxlLWxvZ2luLXV0aWxzIC0tZW5hYmxlLXdyaXRlIC0tZW5hYmxlLWFyY2ggLS1lbmFibGUtbW91bnQKKworRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUyA9IC0tZW5hYmxlLWd0ay1kb2MgLS1kaXNhYmxlLXVzZS10dHktZ3JvdXAgJChFTkFCTEVfQUxMKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvTWFrZWZpbGUuaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjYyYTE4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw4NTIgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK0RJU1RfQ09NTU9OID0gUkVBRE1FICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAkKGRpc3Rfbm9pbnN0X0RBVEEpIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKwkkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgQUJPVVQtTkxTIEFVVEhPUlMgQ09QWUlORyBJTlNUQUxMIE5FV1MgXAorCVRPRE8gY29uZmlnL2NvbmZpZy5ndWVzcyBjb25maWcvY29uZmlnLnJwYXRoIGNvbmZpZy9jb25maWcuc3ViIFwKKwljb25maWcvZGVwY29tcCBjb25maWcvaW5zdGFsbC1zaCBjb25maWcvbHRtYWluLnNoIFwKKwljb25maWcvbWlzc2luZyBjb25maWcvbWtpbnN0YWxsZGlycyBjb25maWcvdGV4aW5mby50ZXgKK0BMSU5VWF9UUlVFQGFtX19hcHBlbmRfMSA9IFwKK0BMSU5VWF9UUlVFQAlod2Nsb2NrIFwKK0BMSU5VWF9UUlVFQAlwYXJ0eAorCitAQlVJTERfTU9VTlRfVFJVRUBhbV9fYXBwZW5kXzIgPSBtb3VudAorQEJVSUxEX0ZTQ0tfVFJVRUBhbV9fYXBwZW5kXzMgPSBmc2NrCitzdWJkaXIgPSAuCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9nZXR0ZXh0Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2d0ay1kb2MubTQgJCh0b3Bfc3JjZGlyKS9tNC9pY29udi5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItbGQubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWItbGluay5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItcHJlZml4Lm00ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L25scy5tNCAkKHRvcF9zcmNkaXIpL200L3BvLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L3Byb2d0ZXN0Lm00ICQodG9wX3NyY2RpcikvbTQvdGxzLm00IFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCithbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUyA9IGNvbmZpZy5zdGF0dXMgY29uZmlnLmNhY2hlIGNvbmZpZy5sb2cgXAorIGNvbmZpZ3VyZS5saW5lbm8gY29uZmlnLnN0YXR1cy5saW5lbm8KK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQU1fVl9HRU4gPSAkKGFtX192X0dFTl8kKFYpKQorYW1fX3ZfR0VOXyA9ICQoYW1fX3ZfR0VOXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfR0VOXzAgPSBAZWNobyAiICBHRU4gICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorU09VUkNFUyA9CitESVNUX1NPVVJDRVMgPQorUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCitEQVRBID0gJChkaXN0X25vaW5zdF9EQVRBKQorUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKKwlkaXN0ZGlyIGRpc3QgZGlzdC1hbGwgZGlzdGNoZWNrCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNUX1NVQkRJUlMgPSBpbmNsdWRlIGRpc2stdXRpbHMgZmRpc2sgZ2V0b3B0IGxpYiBzaGxpYnMgbG9naW4tdXRpbHMgXAorCW1pc2MtdXRpbHMgcG8gc2NoZWR1dGlscyBzeXMtdXRpbHMgdGV4dC11dGlscyB0ZXN0cyBod2Nsb2NrIFwKKwlwYXJ0eCBtb3VudCBmc2NrCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorZGlzdGRpciA9ICQoUEFDS0FHRSktJChWRVJTSU9OKQordG9wX2Rpc3RkaXIgPSAkKGRpc3RkaXIpCithbV9fcmVtb3ZlX2Rpc3RkaXIgPSBcCisgIHsgdGVzdCAhIC1kICIkKGRpc3RkaXIpIiBcCisgICAgfHwgeyBmaW5kICIkKGRpc3RkaXIpIiAtdHlwZSBkICEgLXBlcm0gLTIwMCAtZXhlYyBjaG1vZCB1K3cge30gJzsnIFwKKyAgICAgICAgICYmIHJtIC1mciAiJChkaXN0ZGlyKSI7IH07IH0KK2FtX19yZWxhdGl2aXplID0gXAorICBkaXIwPWBwd2RgOyBcCisgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKyAgICAgIGVsc2UgXAorICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKyAgICAgICAgZWxzZSBcCisgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorICAgICAgICBmaTsgXAorICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorICAgICAgZmk7IFwKKyAgICBmaTsgXAorICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorICBkb25lOyBcCisgIHJlbGRpcj0iJCRkaXIyIgorRElTVF9BUkNISVZFUyA9ICQoZGlzdGRpcikudGFyLmd6ICQoZGlzdGRpcikudGFyLmJ6MgorR1pJUF9FTlYgPSAtLWJlc3QKK2Rpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKK2Rpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcyA9IGZpbmQgLiAtdHlwZSBmIC1wcmludAorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSBcCisJLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIgorCitBTV9DRkxBR1MgPSAtZnNpZ25lZC1jaGFyCitBTV9MREZMQUdTID0gCisKKyMgQXV0b21ha2UgKGF0IGxlYXN0IHVwIHRvIDEuMTApIG1pc2hhbmRsZXMgZGlzdF9tYW5fTUFOUyBpbnNpZGUgY29uZGl0aW9uYWxzLgorIyBVbmxpa2Ugd2l0aCBvdGhlciBkaXN0IHByaW1hcmllcywgdGhlIGZpbGVzIGFyZSBub3QgZGlzdHJpYnV0ZWQgaWYgdGhlCisjIGNvbmRpdGlvbmFsIGlzIGZhbHNlLgorIyBXb3JrIHRoZSBidWcgYXJvdW5kIHVudGlsIGl0IGlzIGZpeGVkOgorZGlzdF9ub2luc3RfREFUQSA9ICQoZGlzdF9tYW5fTUFOUykKKworIyBQYXRocyB0byBpbi10cmVlIGxpYnJhcmllcyAodXNlIHVsXyBwcmVmaXggdG8gYXZvaWQgcG9zc2libGUgY29sbGlzaW9ucykKKyMKKyMgYmxraWQKK3VsX2xpYmJsa2lkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYy9saWJibGtpZC5sYQorCisjIGJsa2lkLmggaXMgZ2VuZXJhdGVkIGJ5IC4vY29uZmlndXJlIHNjcmlwdCBhbmQgc3RvcmVkIGluIGJ1aWxkIGRpcmVjdG9yeQordWxfbGliYmxraWRfaW5jZGlyID0gJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworIyB1dWlkCit1bF9saWJ1dWlkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMvbGlidXVpZC5sYQorU1VCRElSUyA9IGluY2x1ZGUgZGlzay11dGlscyBmZGlzayBnZXRvcHQgbGliIHNobGlicyBsb2dpbi11dGlscyBcCisJbWlzYy11dGlscyBwbyBzY2hlZHV0aWxzIHN5cy11dGlscyB0ZXh0LXV0aWxzIHRlc3RzIFwKKwkkKGFtX19hcHBlbmRfMSkgJChhbV9fYXBwZW5kXzIpICQoYW1fX2FwcGVuZF8zKQorUkNTX0ZJTkRfSUdOT1JFIDo9IFwoIC1uYW1lIFNDQ1MgLW8gLW5hbWUgQml0S2VlcGVyIC1vIC1uYW1lIC5zdm4gLW8gXAorCQktbmFtZSBDVlMgLW8gLW5hbWUgLnBjIC1vIC1uYW1lIC5oZyAtbyAtbmFtZSAuZ2l0IFwpIC1wcnVuZSAtbworCitBQ0xPQ0FMX0FNRkxBR1MgPSAtSSBtNAorRVhUUkFfRElTVCA9IFwKKwkJYXV0b2dlbi5zaCBcCisJCVJFQURNRS5kZXZlbCBcCisJCVJFQURNRS5saWNlbnNpbmcgXAorCQlERVBSRUNBVEVEIFwKKwkJbGljZW5zZXMgXAorCQlleGFtcGxlLmZpbGVzIFwKKwkJcG8vdXBkYXRlLXBvdGZpbGVzIFwKKwkJdG9vbHMgXAorCQlkb2NzCisKK0VOQUJMRV9BTEwgPSAtLWVuYWJsZS1zdGF0aWMtcHJvZ3JhbXMgXAorIC0tZW5hYmxlLWVsdnR1bmUgLS1lbmFibGUtaW5pdCAtLWVuYWJsZS1raWxsIC0tZW5hYmxlLWxhc3QgXAorIC0tZW5hYmxlLW1lc2cgLS1lbmFibGUtcGFydHggLS1lbmFibGUtcmF3IC0tZW5hYmxlLXJkZXYgLS1lbmFibGUtcmVzZXQgXAorIC0tZW5hYmxlLWxvZ2luLXV0aWxzIC0tZW5hYmxlLXdyaXRlIC0tZW5hYmxlLWFyY2ggLS1lbmFibGUtbW91bnQKKworRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUyA9IC0tZW5hYmxlLWd0ay1kb2MgLS1kaXNhYmxlLXVzZS10dHktZ3JvdXAgJChFTkFCTEVfQUxMKQorYWxsOiBjb25maWcuaAorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFsbC1yZWN1cnNpdmUKKworLlNVRkZJWEVTOgorYW0tLXJlZnJlc2g6CisJQDoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgIGVjaG8gJyBjZCAkKHNyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduJzsgXAorCSAgICAgICQoYW1fX2NkKSAkKHNyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIFwKKwkJJiYgZXhpdCAwOyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduIE1ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgZWNobyAnICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyc7IFwKKwkgICAgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCSQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwkkKGFtX19jZCkgJChzcmNkaXIpICYmICQoQVVUT0NPTkYpCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCSQoYW1fX2NkKSAkKHNyY2RpcikgJiYgJChBQ0xPQ0FMKSAkKEFDTE9DQUxfQU1GTEFHUykKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisKK2NvbmZpZy5oOiBzdGFtcC1oMQorCUBpZiB0ZXN0ICEgLWYgJEA7IHRoZW4gXAorCSAgcm0gLWYgc3RhbXAtaDE7IFwKKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHN0YW1wLWgxOyBcCisJZWxzZSA6OyBmaQorCitzdGFtcC1oMTogJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQHJtIC1mIHN0YW1wLWgxCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyBjb25maWcuaAorJChzcmNkaXIpL2NvbmZpZy5oLmluOiAgJChhbV9fY29uZmlndXJlX2RlcHMpIAorCSgkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9IRUFERVIpKQorCXJtIC1mIHN0YW1wLWgxCisJdG91Y2ggJEAKKworZGlzdGNsZWFuLWhkcjoKKwktcm0gLWYgY29uZmlnLmggc3RhbXAtaDEKKworbW9zdGx5Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgKi5sbworCitjbGVhbi1saWJ0b29sOgorCS1ybSAtcmYgLmxpYnMgX2xpYnMKKworZGlzdGNsZWFuLWxpYnRvb2w6CisJLXJtIC1mIGxpYnRvb2wgY29uZmlnLmx0CisKKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCiskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKwkgIGNhc2UgJCRmIGluIFwKKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwlkb3Rfc2Vlbj1ubzsgXAorCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGRvdF9zZWVuPXllczsgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorCSAgZWxzZSBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisJICBmaTsgXAorCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKwlkb25lOyBcCisJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisJZmk7IHRlc3QgLXogIiQkZmFpbCIKKworJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisJICBjYXNlICQkZiBpbiBcCisJICAgICo9KiB8IC0tWyFrXSopOzsgXAorCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZG90X3NlZW49bm87IFwKKwljYXNlICIkQCIgaW4gXAorCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorCWVzYWM7IFwKKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlyZXY9IiQkcmV2IC4iOyBcCisJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisJICBlbHNlIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKwkgIGZpOyBcCisJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisJICB8fCBldmFsICQkZmFpbGNvbTsgXAorCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgordGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKwlkb25lCitjdGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisJZG9uZQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorCSAgZW1wdHlfZml4PS47IFwKKwllbHNlIFwKKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorCSAgZW1wdHlfZml4PTsgXAorCWZpOyBcCisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpIGNvbmZpZy5oLmluICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKwkgICAgICQkdW5pcXVlCisKK0dUQUdTOgorCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisKK2Rpc3RjbGVhbi10YWdzOgorCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBjYXNlIGBzZWQgMTVxICQoc3JjZGlyKS9ORVdTYCBpbiBcCisJKiIkKFZFUlNJT04pIiopIDogOzsgXAorCSopIFwKKwkgIGVjaG8gIk5FV1Mgbm90IHVwZGF0ZWQ7IG5vdCByZWxlYXNpbmciIDE+JjI7IFwKKwkgIGV4aXQgMTs7IFwKKwllc2FjCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisJdGVzdCAtZCAiJChkaXN0ZGlyKSIgfHwgbWtkaXIgIiQoZGlzdGRpcikiCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCisJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCisJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAorCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisJICAgICAgICBkaXN0ZGlyKSBcCisJICAgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwktdGVzdCAtbiAiJChhbV9fc2tpcF9tb2RlX2ZpeCkiIFwKKwl8fCBmaW5kICIkKGRpc3RkaXIpIiAtdHlwZSBkICEgLXBlcm0gLTc1NSBcCisJCS1leGVjIGNobW9kIHUrcnd4LGdvK3J4IHt9IFw7IC1vIFwKKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWxpbmtzIDEgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00MDAgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWV4ZWMgJChpbnN0YWxsX3NoKSAtYyAtbSBhK3Ige30ge30gXDsgXAorCXx8IGNobW9kIC1SIGErciAiJChkaXN0ZGlyKSIKK2Rpc3QtZ3ppcDogZGlzdGRpcgorCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6CisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCitkaXN0LWJ6aXAyOiBkaXN0ZGlyCisJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKworZGlzdC1sem1hOiBkaXN0ZGlyCisJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGx6bWEgLTkgLWMgPiQoZGlzdGRpcikudGFyLmx6bWEKKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKworZGlzdC14ejogZGlzdGRpcgorCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCB4eiAtYyA+JChkaXN0ZGlyKS50YXIueHoKKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKworZGlzdC10YXJaOiBkaXN0ZGlyCisJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGNvbXByZXNzIC1jID4kKGRpc3RkaXIpLnRhci5aCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKK2Rpc3Qtc2hhcjogZGlzdGRpcgorCXNoYXIgJChkaXN0ZGlyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS5zaGFyLmd6CisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKK2Rpc3QtemlwOiBkaXN0ZGlyCisJLXJtIC1mICQoZGlzdGRpcikuemlwCisJemlwIC1ycSAkKGRpc3RkaXIpLnppcCAkKGRpc3RkaXIpCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKK2Rpc3QgZGlzdC1hbGw6IGRpc3RkaXIKKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnRhci5negorCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0ZGlyKS50YXIuYnoyCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKKyMgVGhpcyB0YXJnZXQgdW50YXJzIHRoZSBkaXN0IGZpbGUgYW5kIHRyaWVzIGEgVlBBVEggY29uZmlndXJhdGlvbi4gIFRoZW4KKyMgaXQgZ3VhcmFudGVlcyB0aGF0IHRoZSBkaXN0cmlidXRpb24gaXMgc2VsZi1jb250YWluZWQgYnkgbWFraW5nIGFub3RoZXIKKyMgdGFyZmlsZS4KK2Rpc3RjaGVjazogZGlzdAorCWNhc2UgJyQoRElTVF9BUkNISVZFUyknIGluIFwKKwkqLnRhci5neiopIFwKKwkgIEdaSVA9JChHWklQX0VOVikgZ3ppcCAtZGMgJChkaXN0ZGlyKS50YXIuZ3ogfCAkKGFtX191bnRhcikgOztcCisJKi50YXIuYnoyKikgXAorCSAgYnppcDIgLWRjICQoZGlzdGRpcikudGFyLmJ6MiB8ICQoYW1fX3VudGFyKSA7O1wKKwkqLnRhci5sem1hKikgXAorCSAgbHptYSAtZGMgJChkaXN0ZGlyKS50YXIubHptYSB8ICQoYW1fX3VudGFyKSA7O1wKKwkqLnRhci54eiopIFwKKwkgIHh6IC1kYyAkKGRpc3RkaXIpLnRhci54eiB8ICQoYW1fX3VudGFyKSA7O1wKKwkqLnRhci5aKikgXAorCSAgdW5jb21wcmVzcyAtYyAkKGRpc3RkaXIpLnRhci5aIHwgJChhbV9fdW50YXIpIDs7XAorCSouc2hhci5neiopIFwKKwkgIEdaSVA9JChHWklQX0VOVikgZ3ppcCAtZGMgJChkaXN0ZGlyKS5zaGFyLmd6IHwgdW5zaGFyIDs7XAorCSouemlwKikgXAorCSAgdW56aXAgJChkaXN0ZGlyKS56aXAgOztcCisJZXNhYworCWNobW9kIC1SIGEtdyAkKGRpc3RkaXIpOyBjaG1vZCBhK3cgJChkaXN0ZGlyKQorCW1rZGlyICQoZGlzdGRpcikvX2J1aWxkCisJbWtkaXIgJChkaXN0ZGlyKS9faW5zdAorCWNobW9kIGEtdyAkKGRpc3RkaXIpCisJdGVzdCAtZCAkKGRpc3RkaXIpL19idWlsZCB8fCBleGl0IDA7IFwKKwlkY19pbnN0YWxsX2Jhc2U9YCQoYW1fX2NkKSAkKGRpc3RkaXIpL19pbnN0ICYmIHB3ZCB8IHNlZCAtZSAncyxeW146XFwvXTpbXFwvXSwvLCdgIFwKKwkgICYmIGRjX2Rlc3RkaXI9IiQke1RNUERJUi0vdG1wfS9hbS1kYy0kJCQkLyIgXAorCSAgJiYgYW1fX2N3ZD1gcHdkYCBcCisJICAmJiAkKGFtX19jZCkgJChkaXN0ZGlyKS9fYnVpbGQgXAorCSAgJiYgLi4vY29uZmlndXJlIC0tc3JjZGlyPS4uIC0tcHJlZml4PSIkJGRjX2luc3RhbGxfYmFzZSIgXAorCSAgICAkKERJU1RDSEVDS19DT05GSUdVUkVfRkxBR1MpIFwKKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGR2aSBcCisJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjaGVjayBcCisJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsIFwKKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGxjaGVjayBcCisJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB1bmluc3RhbGwgXAorCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKKwkgICAgICAgIGRpc3R1bmluc3RhbGxjaGVjayBcCisJICAmJiBjaG1vZCAtUiBhLXcgIiQkZGNfaW5zdGFsbF9iYXNlIiBcCisJICAmJiAoeyBcCisJICAgICAgIChjZCAuLi8uLiAmJiB1bWFzayAwNzcgJiYgbWtkaXIgIiQkZGNfZGVzdGRpciIpIFwKKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBpbnN0YWxsIFwKKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiB1bmluc3RhbGwgXAorCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIFwKKwkgICAgICAgICAgICBkaXN0dW5pbnN0YWxsY2hlY2tfZGlyPSIkJGRjX2Rlc3RkaXIiIGRpc3R1bmluc3RhbGxjaGVjazsgXAorCSAgICAgIH0gfHwgeyBybSAtcmYgIiQkZGNfZGVzdGRpciI7IGV4aXQgMTsgfSkgXAorCSAgJiYgcm0gLXJmICIkJGRjX2Rlc3RkaXIiIFwKKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3QgXAorCSAgJiYgcm0gLXJmICQoRElTVF9BUkNISVZFUykgXAorCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdGNsZWFuY2hlY2sgXAorCSAgJiYgY2QgIiQkYW1fX2N3ZCIgXAorCSAgfHwgZXhpdCAxCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisJQChlY2hvICIkKGRpc3RkaXIpIGFyY2hpdmVzIHJlYWR5IGZvciBkaXN0cmlidXRpb246ICI7IFwKKwkgIGxpc3Q9JyQoRElTVF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwKKwkgIHNlZCAtZSAxaCAtZSAxcy8uLz0vZyAtZSAxcCAtZSAxeCAtZSAnJCRwJyAtZSAnJCR4JworZGlzdHVuaW5zdGFsbGNoZWNrOgorCUAkKGFtX19jZCkgJyQoZGlzdHVuaW5zdGFsbGNoZWNrX2RpciknIFwKKwkmJiB0ZXN0IGAkKGRpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIHwgd2MgLWxgIC1sZSAxIFwKKwkgICB8fCB7IGVjaG8gIkVSUk9SOiBmaWxlcyBsZWZ0IGFmdGVyIHVuaW5zdGFsbDoiIDsgXAorCSAgICAgICAgaWYgdGVzdCAtbiAiJChERVNURElSKSI7IHRoZW4gXAorCSAgICAgICAgICBlY2hvICIgIChjaGVjayBERVNURElSIHN1cHBvcnQpIjsgXAorCSAgICAgICAgZmkgOyBcCisJICAgICAgICAkKGRpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIDsgXAorCSAgICAgICAgZXhpdCAxOyB9ID4mMgorZGlzdGNsZWFuY2hlY2s6IGRpc3RjbGVhbgorCUBpZiB0ZXN0ICckKHNyY2RpciknID0gLiA7IHRoZW4gXAorCSAgZWNobyAiRVJST1I6IGRpc3RjbGVhbmNoZWNrIGNhbiBvbmx5IHJ1biBmcm9tIGEgVlBBVEggYnVpbGQiIDsgXAorCSAgZXhpdCAxIDsgXAorCWZpCisJQHRlc3QgYCQoZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1sYCAtZXEgMCBcCisJICB8fCB7IGVjaG8gIkVSUk9SOiBmaWxlcyBsZWZ0IGluIGJ1aWxkIGRpcmVjdG9yeSBhZnRlciBkaXN0Y2xlYW46IiA7IFwKKwkgICAgICAgJChkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMpIDsgXAorCSAgICAgICBleGl0IDE7IH0gPiYyCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stcmVjdXJzaXZlCithbGwtYW06IE1ha2VmaWxlICQoREFUQSkgY29uZmlnLmgKK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKK2luc3RhbGxkaXJzLWFtOgoraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCit1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorCitjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorCS1ybSAtZiAkKGFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTKQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4taGRyIFwKKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tbG9jYWwgZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktcmVjdXJzaXZlCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1yZWN1cnNpdmUKKworaHRtbC1hbToKKworaW5mbzogaW5mby1yZWN1cnNpdmUKKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06CisKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisJLXJtIC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCisJLXJtIC1yZiAkKHRvcF9zcmNkaXIpL2F1dG9tNHRlLmNhY2hlCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1yZWN1cnNpdmUKKworcGRmLWFtOgorCitwczogcHMtcmVjdXJzaXZlCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06CisKKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBhbGwgXAorCWN0YWdzLXJlY3Vyc2l2ZSBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKworLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisJYWxsIGFsbC1hbSBhbS0tcmVmcmVzaCBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKwljbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0IGRpc3QtYWxsIGRpc3QtYnppcDIgXAorCWRpc3QtZ3ppcCBkaXN0LWx6bWEgZGlzdC1zaGFyIGRpc3QtdGFyWiBkaXN0LXh6IGRpc3QtemlwIFwKKwlkaXN0Y2hlY2sgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1oZHIgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi1sb2NhbCBkaXN0Y2xlYW4tdGFncyBcCisJZGlzdGNsZWFuY2hlY2sgZGlzdGRpciBkaXN0dW5pbnN0YWxsY2hlY2sgZHZpIGR2aS1hbSBodG1sIFwKKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisKKworJCh1bF9saWJibGtpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCiskKHVsX2xpYnV1aWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJ1dWlkX2J1aWxkZGlyKQorCitkaXN0Y2xlYW4tbG9jYWw6CisJLWZpbmQgLiAtbmFtZSBcKn4gLW8gLW5hbWUgXCoub3JpZyAtbyAtbmFtZSBcKi5yZWogfCB4YXJncyBybSAtZgorCXJtIC1yZiBhdXRvbTR0ZS5jYWNoZQorCitjaGVja2luY2x1ZGVzOgorCUBmaW5kICogJChSQ1NfRklORF9JR05PUkUpIFwKKwkJLW5hbWUgJyouW2hjU10nIC10eXBlIGYgLXByaW50IHwgc29ydCAtdSBcCisJCXwgeGFyZ3MgJCh0b3Bfc3JjZGlyKS90b29scy9jaGVja2luY2x1ZGVzLnBsCisKK2NoZWNrY29uZmlnOgorCUBmaW5kICogJChSQ1NfRklORF9JR05PUkUpIFwKKwkJLW5hbWUgJyouW2hjU10nIC10eXBlIGYgLXByaW50IHwgc29ydCAtdSBcCisJCXwgeGFyZ3MgJCh0b3Bfc3JjZGlyKS90b29scy9jaGVja2NvbmZpZy5zaCAkKHRvcF9zcmNkaXIpCisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL05FV1MgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9ORVdTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzOGJjMmUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9ORVdTCkBAIC0wLDAgKzEsMTYzOSBAQAordXRpbC1saW51eC1uZyAyLjE3LjI6IE1hciAyMiAyMDEwCisqIHNlZSBkb2NzL3YyLjE3LjItUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAorICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNy92Mi4xNy4yLUNoYW5nZUxvZworCit1dGlsLWxpbnV4LW5nIDIuMTcuMTogRmViIDIyIDIwMTAKKyogc2VlIGRvY3MvdjIuMTcuMS1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CisgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE3L3YyLjE3LjEtQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xNy4xLXJjMTogRmViIDE2IDIwMTAKKyogc2VlIGRvY3MvdjIuMTcuMS1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CisgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE3L3YyLjE3LjEtcmMxLUNoYW5nZUxvZworCit1dGlsLWxpbnV4LW5nIDIuMTc6IEphbiA4IDIwMTAKKyogc2VlIGRvY3MvdjIuMTctUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAorICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNy92Mi4xNy1DaGFuZ2VMb2cKKwordXRpbC1saW51eC1uZyAyLjE3LXJjMzogRGVjIDEwIDIwMDkKKyogc2VlIGRvY3MvdjIuMTctUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAorICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNy92Mi4xNy1yYzMtQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xNy1yYzI6IERlYyA5IDIwMDkKKyogc2VlIGRvY3MvdjIuMTctUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAorICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNy92Mi4xNy1yYzItQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xNy1yYzE6IE5vdiAyMCAyMDA5CisqIHNlZSBkb2NzL3YyLjE3LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKKyAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTcvdjIuMTctcmMxLUNoYW5nZUxvZworCit1dGlsLWxpbnV4LW5nIDIuMTY6IEp1bCAgMjAwOQorKiBzZWUgZG9jcy92Mi4xNi1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CisgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE2L3YyLjE2LUNoYW5nZUxvZworCit1dGlsLWxpbnV4LW5nIDIuMTYtcmMyOiBKdWwgMiAyMDA5CisqIHNlZSBkb2NzL3YyLjE2LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKKyAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTYvdjIuMTYtcmMyLUNoYW5nZUxvZworCit1dGlsLWxpbnV4LW5nIDIuMTYtcmMxOiBKdW4gMjggMjAwOQorKiBzZWUgZG9jcy92Mi4xNi1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CisgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE2L3YyLjE2LXJjMS1DaGFuZ2VMb2cKKwordXRpbC1saW51eC1uZyAyLjE1OiBNYXkgNSAyMDA5CisqIHNlZSBkb2NzL3YyLjE1LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKKyAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTUvdjIuMTUtQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xNS1yYzI6IEFwciAxNyAyMDA5CisqIHNlZSBkb2NzL3YyLjE1LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKKyAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTUvdjIuMTUtcmMyLUNoYW5nZUxvZworCit1dGlsLWxpbnV4LW5nIDIuMTUtcmMxOiBNYXIgMTggMjAwOQorKiBzZWUgZG9jcy92Mi4xNS1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CisgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE1L3YyLjE1LXJjMS1DaGFuZ2VMb2cKKwordXRpbC1saW51eC1uZyAyLjE0OiBKdW4gOSAyMDA4CisqIHNlZSBkb2NzL3YyLjE0LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKKyAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTQvdjIuMTQtQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xNC1yYzMKKyogc2VlIGRvY3MvdjIuMTQtUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAorICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNC92Mi4xNC1yYzMtQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xNC1yYzIKKyogc2VlIGRvY3MvdjIuMTQtUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAorICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNC92Mi4xNC1yYzItQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xNC1yYzEKKyogc2VlIGRvY3MvdjIuMTQtUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAorICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNC92Mi4xNC1yYzEtQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xMworCisqIHNlZSBkb2NzL3YyLjEzLVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKKyAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTMvdjIuMTMtQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xMy1yYzMKKworKiBzZWUgZG9jcy92Mi4xMy1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CisgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjEzL3YyLjEzLXJjMy1DaGFuZ2VMb2cKKwordXRpbC1saW51eC1uZyAyLjEzLXJjMgorCisqIHNlZSBkb2NzL3YyLjEzLVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKKyAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTMvdjIuMTMtcmMyLUNoYW5nZUxvZworCit1dGlsLWxpbnV4LW5nIDIuMTMtcmMxCisKKyogc2VlIGRvY3MvdjIuMTMtUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAorICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xMy92Mi4xMy1yYzEtQ2hhbmdlTG9nCisKK3V0aWwtbGludXggMi4xMy1wcmU3CisKKyogbW91bnQ6IGRlZmF1bHQgdG8gY2lmcyBpbnN0ZWFkIG9mIHNtYmZzIGZvciBzb3VyY2VzCisgICAgICAgICBzdGFydGluZyB3aXRoIC8vIExhcnMgTXVlbGxlcigpCisqIGZsb2NrOiBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgKEguIFBldGVyIEFudmluKQorKiBuZXcgdHJhbnNsYXRpb246IGlkCisqIHVwZGF0ZWQgdHJhbnNsYXRpb25zOiBkZSwgaXQsIHNsLCB1aworCit1dGlsLWxpbnV4IDIuMTMtcHJlNgorCisqIGdldG9wdDogdXBkYXRlZCB0byAxLjEuNAorKiByZXBsYWNlZCBhbGwgKmxsc2VlayB2YXJpYW50cyB3aXRoIGxzZWVrCisqIG1pc2MgYnVpbGQgc3lzdGVtLCBjb2RlIGFuZCBkb2NzIGNsZWFudXBzIGFuZCBmaXhlcworKiB1cGRhdGVkIHRyYW5zbGF0aW9uczogZnIsIGl0CisKK3V0aWwtbGludXggMi4xMy1wcmU1CisKKyoge2ZzY2ssbWtmc30uY3JhbWZzOiB1cGRhdGVkIHRvIGNyYW1mcy0xLjEKKyoge2ZzY2ssbWtmc30uY3JhbWZzOiByZW1vdmVkIFBBR0VfQ0FDSEVfU0laRSB1c2FnZQorKiB1bW91bnQ6IGZpeCAidW1vdW50IC1uIC1yIiAoRGVyaWNrIFN3YW5lcG9lbCkKKyogbWlzYyBidWlsZCBzeXN0ZW0gYW5kIGNvZGUgY2xlYW51cHMgYW5kIGZpeGVzCisqIHVwZGF0ZWQgdHJhbnNsYXRpb246IGNhCisKK3V0aWwtbGludXggMi4xMy1wcmU0CisKKyogZG9uJ3QgYnVpbGQgZmRpc2sgb24gbTY4ayAoTWlrZSBGcnlzaW5nZXIpCisqIG1pc2MgYnVpbGQgc3lzdGVtIGFuZCBkb2N1bWVudGF0aW9uIGZpeGVzCisqIHJlbW92ZWQgcHJvZ3JhbTogY2xlYXIKKwordXRpbC1saW51eCAyLjEzLXByZTMKKworKiBtaXNjIGJ1bGQgc3lzdGVtIGZpeGVzCisqIGNmZGlzazogZml4IGEgc2VnZmF1bHQgd2l0aCBSZWlzZXJGUyBwYXJ0aXRpb25zCisqIHVtb3VudDogZGlzYWxsb3cgLXIgb3B0aW9uIGZvciBub24tcm9vdCB1c2VycworKiB1cGRhdGVkIHRyYW5zbGF0aW9uczogZGEsIGZyLCBpdCwgbmwsIHJ1LCBzbCwgdHIKKwordXRpbC1saW51eCAyLjEzLXByZTIKKworKiBmbG9jazogcmVwbGFjZWQgd2l0aCBmbG9jay0yLjAuMiBieSBILiBQZXRlciBBbnZpbgorKiBtaXNjIGJ1aWxkIHN5c3RlbSBmaXhlcywgbGlidG9vbCBpcyBubyBsb25nZXIgdXNlZAorKiBtaXNjIGNvZGUgZml4ZXMKKyogdXBkYXRlZCB0cmFuc2xhdGlvbnM6IGNhLCBmaSwgZnIsIG5sLCBydSwgdHIKKwordXRpbC1saW51eCAyLjEzLXByZTEKKworKiB1c2UgR05VIGF1dG9jb25mL2F1dG9tYWtlL2xpYnRvb2wgZm9yIGJ1aWxkaW5nCisqIGFkZGVkIHNjaGVkdXRpbHMKKyogcmVtb3ZlZCBzdXBwb3J0IGZvciBjdXJzZXMgaW1wbGVtZW50YXRpb25zIG90aGVyIHRoYW4gbmN1cnNlcworKiByZW1vdmVkIHByb2dyYW1zOiBhcmNoLCBwYXNzd2QsIHJlc2N1ZXB0LCBzZXRmZHBybSwgc2xuCisqIHJlbW92ZWQgbWttaW5peC0wLjEvCisqIG1pc2MgZml4ZXMgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlcworKiBuZXcgdHJhbnNsYXRpb246IHZpCisqIHVwZGF0ZWQgdHJhbnNsYXRpb25zOiBjYSwgZGUsIGZpLCBmciwgaXQsIG5sLCBydSwgdHIKKwordXRpbC1saW51eCAyLjEycQorCisqIHVwZGF0ZWQgdHJhbnNsYXRpb246IG5sCisKK3V0aWwtbGludXggMi4xMnEtcHJlMgorCisqIHNmZGlzazogZG9jdW1lbnQgLUcgb3B0aW9uIGluIC0taGVscCBvdXRwdXQKKyogdXBkYXRlZCB0cmFuc2xhdGlvbnM6IGNhLCBldCwgZnIKKwordXRpbC1saW51eCAyLjEycS1wcmUxCisKKyogbmV3IG1haW50YWluZXIKKyogc2ZkaXNrOiBhZGQgLUcgb3B0aW9uIChBbmRyaWVzIEJyb3V3ZXIpCisqIHVwZGF0ZWQgdHJhbnNsYXRpb25zOiBkZSwgZXMsIHJ1LCBzdiwgdHIKKwordXRpbC1saW51eCAyLjEycAorCisqIGNmZGlzazogZml4IG51bWJlciBvZiBuZXcgcGFydGl0aW9uIHdoZW4gcGFydGl0aW9ucyBub3QgaW4gZGlzayBvcmRlcgorKiBmZGlzazogZml4IFN1biBsYWJlbCBoYW5kbGluZyBpbiBzZWN0b3IgbW9kZQorKiBta2ZzOiBuZXZlciB0cnVuY2F0ZSBmaWxlbmFtZSAobm90IHRoYXQgdGhhdCBldmVyIGhhcHBlbmVkKQorKiBtb3JlOiBmaXggcmVkcmF3IGZsYXcKKwordXRpbC1saW51eCAyLjEybixvCisKKyogbG9tb3VudDogcmV2ZXJ0IHBhdGNoIGZyb20gMi4xMmoKKyogbHB0dW5lLjg6IC1UIG9wdGlvbiBpcyBvYnNvbGV0ZQorKiBta3N3YXAsIG1rc3dhcC44LCBzd2Fwb246IHN1cHBvcnQgbGFiZWxzCisgICh1c2UgSEFWRV9CTEtJRD1ubyBhcyBsb25nIGFzIHRoZSBibGtpZCBsaWJyYXJ5IGRvZXNudCBzdXBwb3J0IHRoaXMpCisqIHVtb3VudDogYWxsb3cgdXNlciB1bm1vdW50aW5nIHJlcGVhdGVkbHkgbW91bnRlZCBuZnMgbW91bnRzCisKK3V0aWwtbGludXggMi4xMm0KKworKiBjZmRpc2s6IHJlY29nbml6ZSBKRlMsIHN1cHBvcnQgcmVpc2VyZnMgbGFiZWxzIChmbGF2aW8uc3RhbmNoaW5hQHRpbi5pdCkKKyogbW91bnQ6IGZpeCBvcHRpb24gcGFyc2luZyBidWcKKyogbW91bnQuODogc2V2ZXJhbCB1cGRhdGVzCisqIHN3YXBvbi44OiBkb2N1bWVudCAtdiBvcHRpb24KKwordXRpbC1saW51eCAyLjEybAorCisqIE1ha2VmaWxlOiByZW1vdmUgY2F0LWlkLXRibC5jIHVwb24gbWFrZSBjbGVhbgorKiBmZGlzazogZml4ZWQgYSBidWcgdGhhdCB3b3VsZCBjYXVzZSBhIG5vbi11cGRhdGUgb2YgYSBzdW4gZGlza2xhYmVsCisqIGZkaXNrOiB1c2Ugc2VjdG9yc2l6ZSBpbnN0ZWFkIG9mIDUxMiBmb3IgU0dJIChFcmljIFkuIFRoZXJpYXVsdCkKKyogZmRpc2s6IHVzZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBmb3IgYWxwaGEsIEFSTTogYXZvaWQgdW5hbGlnbmVkIGFjY2Vzc2VzCisqIGh3Y2xvY2s6IGFjdHVhbGx5IHVzZSBIQVZFX3RtX2dtdG9mZgorKiBzd2Fwb246IGZpeCBwcmlvcml0eSBoYW5kbGluZworKiB1bW91bnQ6IHJlZnVzZSB0byB1bm1vdW50IGFuIGVtcHR5IHN0cmluZworCit1dGlsLWxpbnV4IDIuMTJrCisKKyogY2ZkaXNrOiBmaXhlZCBhIHNpZ25lZCBjaGFyYWN0ZXIgYnVnIGNhdXNpbmcgcHJvYmxlbXMgZm9yIFNwYW5pc2ggdXNlcnMKKyogY29uZmlndXJlLCBNQ09ORklHOiBkZXRlY3QgZ2NjIDMuNC4wIGFuZCB1c2UgLW10dW5lIG9wdGlvbiAoTWF0dGhldyBCdXJnZXNzKQorKiBjb25maWd1cmU6IGRvIG5vdCBydW4gLi9jb25mdGVzdCAoZm9yIGNyb3NzIGNvbXBpbGF0aW9uKSAoTklJQkUgWXV0YWthKQorKiBmc2NrLmNyYW1mczogdHJ5IHRvIGdldCBjb3JyZWN0IFBBR0VfQ0FDSEVfU0laRQorKiBsb3NldHVwOiB0cnkgdG8gZ2l2ZSBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMKKyogcmVhZHByb2ZpbGU6IGRlZmF1bHQgbWFwIGZpbGUgaXMgL2Jvb3QvU3lzdGVtLm1hcAorKiByZGV2Ljg6IGFkZGVkIGhpc3RvcmljYWwgaW5mbyBvbiByYW1kaXNrCisqIE5ldyBGcmVuY2gsIFNwYW5pc2gsIFN3ZWRpc2ggYW5kIFR1cmtpc2ggbWVzc2FnZXMKKwordXRpbC1saW51eCAyLjEyagorCisqIGNhbDogaGlnaGxpZ2h0IHRvZGF5IChQw6FkcmFpZyBCcmFkeSkKKyogbG9tb3VudDogc3RvcCByZWFkaW5nIHBhc3N3ZCBhdCBOVUwsIGZpeCBsb19lbmNyeXB0IGtleV9zaXplIChXb2xmcmFtIEtsZWZmKQorKiBsb3NldHVwOiBhZGQgLWYgb3B0aW9uIHRvIGZpbmQgYW4gdW51c2VkIGxvb3AgZGV2aWNlCisgIChBbGV4YW5kZXIgV2lnZW4sIFJlbWNvIHZhbiBNb29rKQorKiBtb3JlOiBjb2RlIGNsZWFudXAgKEpvYWNoaW0gSGVua2UpCisqIG1vdW50OiBhZGQgImdyb3VwIiBtb3VudCBvcHRpb24gKE1hcnRpbiBEaWNrb3BwKQorKiBzZmRpc2s6IGZpeCAyLjYuOCBCTEtSUlBBUlQgaW9jdGwgZGFtYWdlIChFcmljIExhbW1lcnRzKQorKiBzd2Fwb246IGxldCBzd2Fwb24gLWEgc2tpcCB0aGUgc3dhcGZpbGVzIG1hcmtlZCAibm9hdXRvIiAoRGFsZSBSLiBXb3JsZXkpCisqIHVtb3VudDogZml4IHByb2JsZW0gd2l0aCBlbXB0eSBtdGFiIChCcnlhbiBLYWR6YmFuKQorKiB1bW91bnQ6IHVzZSBzcGVjaWFsIHVtb3VudCBwcm9ncmFtIGlmIGl0IGV4aXN0cyAoUmFtIFBhaSkKKyogTmV3IERhbmlzaCBhbmQgRnJlbmNoIG1lc3NhZ2VzCisKK3V0aWwtbGludXggMi4xMmkKKworKiBNQ09ORklHOiBmaXggYnVpbGQgY29uZGl0aW9ucworKiBjaGZuLCBjaHNoOiBhZGQgZXJyb3IgY2hlY2tpbmcKKyogY3l0dW5lOiB1c2UgbG9jYWwgaGVhZGVyIGN5Y2xhZGVzLmgKKyogZmRpc2s6IGZpeCBkZWZhdWx0IFNHSSB2b2x1bWUgaGVhZGVyIHNpemUgKEVyaWMgU2FuZGVlbikKKyogZnN0YWIuYzogdXNlIHN0cnNpZ25hbCgpIGluc3RlYWQgb2Ygc3lzX3NpZ2xpc3RbXQorKiBod2Nsb2NrOiB1c2UgPHN5cy9pby5oPiB3aGVuIGF2YWlsYWJsZSBvbiBpMzg2CisqIGh3Y2xvY2s6IGRvbnQgdHJ5IEtER0hXQ0xLIG9uIGFyY2hzIG90aGVyIHRoYW4gX19tNjhrX18KKyogc2ZkaXNrOiBjb3JyZWN0IHR5cG8gaW4gX19hdHRyaWJ1dGVfX3VzZWQgbm9uc2Vuc2UKKyogc2ZkaXNrOiB1c2UgUEFDS0VEIG9uIF9fYXJtX18gKEplcm9lbiBEb2JiZWxhZXJlKQorKiBzZmRpc2s6IGZpeCB3YXJuaW5nIHByaW50b3V0CisKK3V0aWwtbGludXggMi4xMmUsZixnLGgKKworKiBjZmRpc2s6IGF2b2lkIGNyYXNoIGlmIG5vIHBhcnRpdGlvbiB0YWJsZQorKiBlbHZ0dW5lOiB0ZWxsIHVzZXIgdGhhdCB0aGlzIG9ubHkgd29ya3Mgb24gMi40IGtlcm5lbHMKKyogbG9tb3VudDogY2xlYXIgcGFzc3dvcmRzIGFmdGVyIHVzZQorKiBtb3VudDogYWNjZXB0IGNvbW1lbnRzIChpbnRyb2R1Y2VkIGJ5IFw7KSBpbiBmc3RhYiAtIHdpdGhkcmF3biBhZ2FpbgorKiBtb3VudDogYWNjZXB0IGNvbW1lbnRzIChzcGVjaWZpZWQgYnkgY29tbWVudD0pIGluIGZzdGFiCisqIG1vdW50OiBzdXBwb3J0IG9jZnMsIG9jZnMyCisqIFt1XW1vdW50OiBiZSBtb3JlIGNhcmVmdWwgd2l0aCBtYWxsb2MsIHRyeSB0byBhdm9pZCBPT00gd2l0aCBtYW55IG1vdW50cworKiBzZmRpc2s6IF9fYXR0cmlidXRlX191c2VkIG5vbnNlbnNlIHRvIHN1cHBvcnQgZ2NjIDMuNAorKiBzaHV0ZG93bjogZG8gbm90IHVubW91bnQgdmFyaW91cyB2aXJ0dWFsIGZpbGVzeXN0ZW1zCisKK3V0aWwtbGludXggMi4xMmMsZAorCisqIG1vdW50Ljg6IGFkZGVkIHJlY2VudCBleHQyIG1vdW50IG9wdGlvbnMKKyogbW91bnQ6IHN1cHBvcnQgamZzIG1vdW50LWJ5LWxhYmVsLCBpbXByb3ZlIHJlaXNlcmZzIHN1cHBvcnQKKyogc2ZkaXNrOiByZW1vdmUgc3RyYW5nZSAiZW5kcyBpbiBhIGRpZ2l0IiBoZXVyaXN0aWMKKyogKmZkaXNrOiB1c2UgY29tbW9uIGRpc2tzaXplKCkgcm91dGluZQorCit1dGlsLWxpbnV4IDIuMTJiCisKKyogY2hzaDogaW1wcm92ZWQgZXJyb3IgbWVzc2FnZQorKiBkbWVzZzogYXNrIGtlcm5lbCBwcm9wZXIgYnVmZmVyIHNpemUKKyogbG9zZXR1cDogaGFuZGxlIDY0LWJpdCBvZmZzZXRzCisqIGJsb2NrZGV2OiBhbHNvIHJlcG9ydCBCTEtHRVRTSVpFNjQgcmVzdWx0CisqIGJsb2NrZGV2LCBlbHZ0dW5lLCBmZGlzazogaGFuZGxlIG5ldyBrZXJuZWwgX0lPUixfSU9XIGRlZmluZXMKKyogZmRpc2s6IHJlbW92ZSBzdHJhbmdlICJlbmRzIGluIGEgZGlnaXQiIGhldXJpc3RpYworKiBmZGlzazogYWxzbyBsaXN0IFNvbGFyaXMgYXMgcG9zc2libGUgdHlwZSBmb3IgMHg4MgorKiBtb3VudDogYWRkZWQgLS1yYmluZCBvcHRpb24KKyogbW91bnQ6IHVzZSBibGtpZCwgdXVpZCBsaWJyYXJpZXMgd2hlbiBhdmFpbGFibGUKKyogbW91bnQ6IHN1cHBvcnQgcmVpc2VyZnMgbW91bnQgYnkgbGFiZWwKKyogbW91bnQ6IGF0dGVtcHQgdG8gdXNlIHRoZSByaWdodCBkZWZpbml0aW9uIG9mIGRldl90IGluIHN0cnVjdCBsb29waW5mbworKiBtb3VudC44OiBqZnMgbW91bnQgb3B0aW9ucyBhZGRlZAorKiByZWFkcHJvZmlsZTogbmV3IC1zIG9wdGlvbgorKiByZW5hbWUuMTogYWRkZWQgcmVmIHRvIG1tdi4xCisqIHJlcGxheTogcmVuYW1lZCB0byBzY3JpcHRyZXBsYXk7IGNvcnJlY3QgdHlwb3MKKyogc2NyaXB0OiBkbyBub3QgdXNlIGxvY2FsZSBmb3IgdGltZSBkZWxheSBmbG9hdGluZyBwb2ludCBudW1iZXIgZm9ybWF0CisqIHNmZGlzazogZXJyb3IgbWVzc2FnZXMgdG8gc3RkZXJyCisqIE5ldyBDYXRhbGFuLCBEdXRjaCwgRmlubmlzaCwgRnJlbmNoLCBHZXJtYW4sIFNwYW5pc2gsIFN3ZWRpc2gsIFR1cmtpc2gsCisgIFVrcmFpbmlhbiBtZXNzYWdlcworCit1dGlsLWxpbnV4IDIuMTJhCisKKyogY2hmbiwgY2hzaCwgbG9naW4sIHZpcHc6IFNFbGludXggc3VwcG9ydAorKiBmZGlzazogZml4IGZvciBrZXJuZWxzIDIuNC4xNS0yLjQuMTcKKyogZmRpc2s6IGZpeCB3aGVuIGFsbCBwYXJ0aXRpb25zIGFyZSBpbiB1c2UKKyogaHdjbG9jazogYWRkIGEgdGltZW91dCB3aGVuIHdhaXRpbmcgZm9yIGEgY2xvY2sgdXBkYXRlIChH9nJhbiBXZWluaG9sdCkKKyogaXBjczogY29tcGlsYXRpb24gZml4CisqIGlwY3M6IHNobWluZm8uc2htYWxsIGdpdmVzIHBhZ2VzCisqIGxvZ2luOiB1c2UgZ2V0dXRsaW5lKCkgaW5zdGVhZCBvZiBnZXR1dGlkKCkKKyogbG9naW46IGZpeCBmb3IgNjQtYml0IHRpbWVfdAorKiBtb3VudDogZWZzIHN1cHBvcnQKKyogcGFydHg6IGJpZ2VuZGlhbiBmaXgKKyogcmVhZHByb2ZpbGU6IHN1cHBvcnQgZm9yIDY0LWJpdCBhZGRyZXNzZXMKKyogc2V0dGVybTogZml4IGtsb2djdGwgZXJyb3IgbWVzc2FnZSAoSm9lcm4gSGVpc3NsZXIpCisqIHNldHRlcm0uMTogY2xhcmlmaWNhdGlvbgorKiBzZmRpc2s6IGZpeCBjaGVjayBmb3IgaXNfaWRlX2Nkcm9tX29yX3RhcGUKKyogdW1vdW50OiBza2lwIHByb2MsIGRldmZzLCBkZXZwdHMgb24gdW1vdW50IC1hCisKK3V0aWwtbGludXggMi4xMgorCisqIGxvc2V0dXA6IGNyeXB0b2xvb3Agc3VwcG9ydAorKiBsb3NldHVwOiAtcCBvcHRpb24gc3BlY2lmaWVzIGZkIGZvciBwYXNzcGhyYXNlCisqIGZkaXNrOiBzZ2kgbGF5b3V0IGZpeAorKiBtb3VudDogLXAgb3B0aW9uIHNwZWNpZmllcyBmZCBmb3IgcGFzc3BocmFzZQorKiBtb3VudDogcmVjb2duaXplIHNvbWUgUENET1MgZmxvcHBpZXMKKyogdW1vdW50OiBpbiAidW1vdW50IG5hbWUiLCBmaXJzdCB0cnkgdG8gaW50ZXJwcmV0ICJuYW1lIiBhcyBhIG1vdW50IHBvaW50CisKK3V0aWwtbGludXggMi4xMnByZQorCisqIENhdGFsYW4gbWVzc2FnZXMgKEFudG9uaSBCZWxsYSBQZXJleikKKyogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCisqIER1dGNoIG1lc3NhZ2VzIChUYWNvIFdpdHRlKQorKiBGaW5uaXNoIG1lc3NhZ2VzIChMYXVyaSBOdXJtaSkKKyogRnJlbmNoIG1lc3NhZ2VzIChNaWNoZWwgUm9iaXRhaWxsZSkKKyogR2VybWFuIG1lc3NhZ2VzIChNaWNoYWVsIFBpZWZlbCkKKyogU2xvdmVuaWFuIG1lc3NhZ2VzIChQcmltb3ogUGV0ZXJsaW4pCisqIFNwYW5pc2ggbWVzc2FnZXMgKFNhbnRpYWdvIFZpbGEgRG9uY2VsKQorKiBTd2VkaXNoIG1lc3NhZ2VzIChDaHJpc3RpYW4gUm9zZSkKKyogVHVya2lzaCBtZXNzYWdlcyAoTmlsZ/xuIEJlbG1hIEJ1Z/xuZXIpCisqIGNmZGlzazogbG9jYWxpemUgdGhlIFkvTiBhbnN3ZXIsIGltcHJvdmUgcHJpbnRpbmcgbG9jYWxpemVkIG1lc3NhZ2VzCisqIGNmZGlzazogbWFrZSB2YXJpb3VzIHZhcmlhYmxlcyBsb25nIGxvbmcgLSBzb21lIGRpc2tzIGFyZSBjbG9zZSB0byAyIFRCCisqIGNmZGlzazogdXNlIEJMS0dFVFNJWkU2NAorKiBmZGlzazogbWFrZSB2YXJpb3VzIHZhcmlhYmxlcyB1bnNpZ25lZCB0byBsZW5ndGhlbiB0aGUgbGlmZSBvZiAzMi1iaXQgdmFycworKiBmZGlzazogc29tZSBzZ2kgZml4ZXMgKFBoaWxsaXAgS2VzbGluZykKKyogZmRpc2s6IGs9MTAwMCwgSz0xMDI0CisqIGZkaXNrOiByZW1vdmVkIGxhc3Qgb2NjdXJyZW5jZXMgb2YgSERJT19SRVEKKyogZmRpc2s6IHVzZSBCTEtHRVRTSVpFNjQKKyogaHdjbG9jazogZml4IHJ0YyB0ZXN0IChIZWlrbyBadWVya2VyKQorKiBsb2dpbjogc2V0IGEgdGltZW91dCBvbiBwcmludGluZyB0aGUgdGltZW91dCBtZXNzYWdlIChSb2JlcnQgQW1icm9zZSkKKyogbWQ1OiB4ODZfNjQgZml4IChtbWopCisqIG1vcmU6IFBPU0lYIGZpeGVzCisqIG1vdW50OiBkbyBub3Qgc3VwcGx5IE1TX01HQ19WQUwgd2hlbiB0aGVyZSBhcmUgY29uZmxpY3RpbmcgZmxhZ3MKKyogbW91bnQ6IG5jcCBhbmQgc21iIGFyZSBjYWxsZWQgc21iZnMgYW5kIG5jcGZzIC0gZ2xvYmFsIGNoYW5nZQorKiBtb3VudDogYWRkIHN1cHBvcnQgZm9yIHh2bSBtb3VudCBieSBsYWJlbCAoRXJpYyBTYW5kZWVuKQorKiBtb3VudDogY29ycmVjdCBoZnMgbWFnaWMgcmVjb2duaXRpb24KKyogbW91bnQ6IGtlZXAgb3JpZ2luYWwgdW1hc2sgLSBpdCBpbmZsdWVuY2VzIHRoZSBtb3VudCBjYWxsIChtbWopCisqIHJhdy44OiBkb2N1bWVudGVkIHVuYmluZGluZyBvZiByYXcgZGV2aWNlcworKiByZWFkcHJvZmlsZTogZml4ZWQgb2ZmLWJ5IGVpZ2h0IGVycm9yIChXZXJuZXIgQWxtZXNiZXJnZXIpCisqIHNjcmlwdDogYWRkIC1jIG9wdGlvbiAoV2F5bmUgRGF2aXNvbikKKyogc2ZkaXNrLjg6IGFkZGVkIGFuIGV4YW1wbGUgb2YgcGFydGl0aW9uaW5nIHdpdGggbG9naWNhbCBwYXJ0aXRpb25zCisqIHNmZGlzazogb25seSBhZGQgYSBBQTU1IHNpZ25hdHVyZSBmb3IgRE9TLXR5cGUgcGFydGl0aW9uIHRhYmxlcworKiB0YWlsZjogbmV3IChSaWsgRmFpdGgpCisKK3V0aWwtbGludXggMi4xMXoKKworKiBDYXRhbGFuIG1lc3NhZ2VzIChBbnRvbmkgQmVsbGEgUGVyZXopCisqIERhbmlzaCBtZXNzYWdlcyAoQ2xhdXMgSGluZHNnYXVsKQorKiBEdXRjaCBtZXNzYWdlcyAoVGFjbyBXaXR0ZSkKKyogRmlubmlzaCBtZXNzYWdlcyAoTGF1cmkgTnVybWkpCisqIEZyZW5jaCBtZXNzYWdlcyAoTWljaGVsIFJvYml0YWlsbGUpIC0gSFVSUkFZIQorKiBHZXJtYW4gbWVzc2FnZXMgKE1pY2hhZWwgUGllZmVsKQorKiBTbG92ZW5pYW4gbWVzc2FnZXMgKFByaW1veiBQZXRlcmxpbikKKyogU3BhbmlzaCBtZXNzYWdlcyAoU2FudGlhZ28gVmlsYSBEb25jZWwpCisqIFN3ZWRpc2ggbWVzc2FnZXMgKENocmlzdGlhbiBSb3NlKQorKiBUdXJraXNoIG1lc3NhZ2VzIChOaWxn/G4gQmVsbWEgQnVn/G5lcikKKyogZ2V0b3B0OiByZXBsYWNlZCBnZXRvcHQtMS4xLjIgYnkgZ2V0b3B0LTEuMS4zIChGcm9kbyBMb29pamFhcmQpCisqIG1rY3JhbWZzOiBjaGFuZ2UgZGVmYXVsdCBibG9ja3NpemUgZm9yIGlhNjQgYW5kIGFscGhhCisqIG1vcmUuaGVscDogcmVtb3ZlZCAoaXQgaXMgYnVpbHQtaW4gbm93LCBhbmQgdHJhbnNsYXRlZCkKKyogbW91bnQ6IGFkZCAtaSBvcHRpb24gKGluaGliaXQgY2FsbGluZyBleHRlcm5hbCBtb3VudCBwcm9ncmFtcykKKyogbW91bnQ6IGNoYW5nZSBkZWZhdWx0OiBkbyByZXNvbHZlIHN5bWxpbmtzCisqIHJlYWRwcm9maWxlOiBsb29rIGZvciBTeXN0ZW0ubWFwIGFsc28gaW4gL2Jvb3QvU3lzdGVtLm1hcC1gdW5hbWUgLXJgIChtbWopCisqIHNmZGlzazogYWxzbyB0cmFuc2xhdGUgInN0YXJ0IiBhbmQgImVuZCI7IHMvTUIvTWlCLworCit1dGlsLWxpbnV4IDIuMTF5CisKKyogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCisqIEZpbm5pc2ggbWVzc2FnZXMgKExhdXJpIE51cm1pKQorKiBHZXJtYW4gbWVzc2FnZXMgKE1pY2hhZWwgUGllZmVsKQorKiBTcGFuaXNoIG1lc3NhZ2VzIChTYW50aWFnbyBWaWxhIERvbmNlbCkKKyogU3dlZGlzaCBtZXNzYWdlcyAoQ2hyaXN0aWFuIFJvc2UpCisqIGNmZGlzazogaW1wcm92ZSBlc2NhcGUgc2VxIHJlY29nbml0aW9uIHdoZW4gY29tcGlsZWQgd2l0aCBzbGFuZworKiBmZGlzazogZGVjaW1hbCB1bml0cworKiBod2Nsb2NrL3J0Yy5jOiBtaW5vciBjbGVhbnVwIChKb2FjaGltIEhlbmtlKQorKiBpcGNzOiBjb21waWxhdGlvbiBmaXgKKyogbW9yZToga2lsbCBleHRlcm5hbCBoZWxwIGZpbGUgKEpvYWNoaW0gSGVua2UpCisqIG1vdW50OiBmaXggTEFCRUw9IGhhbmRsaW5nIGZvciB1c2VyIHVtb3VudAorKiBtb3VudDogZG9uJ3QgYWJvcnQgb24gcmVhZCBlcnJvciBvbiBwaG90b2NkcyAoR3lvcmd5IEtvdmVzZGkpCisqIG1vdW50Ljg6IGFkZCBkbWFzayBhbmQgZm1hc2sgdmZhdCBtb3VudCBvcHRpb25zCisqIHBnOiBjb21waWxhdGlvbiBmaXggKEpvYWNoaW0gSGVua2UpCisqIHNjcmlwdDogbG9jYWxpemVkIHRpbWUgc3RyaW5ncyAoR29lcmFuIFVkZGVib3JnKQorKiBzZXR0ZXJtOiBhY2NlcHQgZGV2ZnMgbmFtZSAoSm9hY2hpbSBIZW5rZSkKKyogc2ltcGxlaW5pdDogc2VjdXJpdHk6IHJlZnVzZSBpbml0Y3RsX2ZkIGlmIHNldHRpbmcgRkRfQ0xPRVhFQyBmYWlscworKiB1bW91bnQ6IGFsbG93IHVzZXIgdW1vdW50IGFmdGVyIG1vdW50IGJ5IGxhYmVsIG9yIHV1aWQKKwordXRpbC1saW51eCAyLjExeAorCisqIERhbmlzaCBtZXNzYWdlcyAoQ2xhdXMgSGluZHNnYXVsKQorKiBEdXRjaCBtZXNzYWdlcyAoVGFjbyBXaXR0ZSkKKyogRmlubmlzaCBtZXNzYWdlcyAoTGF1cmkgTnVybWkpCisqIEdlcm1hbiBtZXNzYWdlcyAoTWljaGFlbCBQaWVmZWwpCisqIFN3ZWRpc2ggbWVzc2FnZXMgKENocmlzdGlhbiBSb3NlKQorKiBUdXJraXNoIG1lc3NhZ2VzIChOaWxn/G4gQmVsbWEgQnVn/G5lcikKKyogY2ZkaXNrOiBjb3JyZWN0IGVycm9yIHByaW50b3V0CisqIGZkaXNrOiBhbGxvdyBhZGRpdGlvbiBvZiBhIG5ldyBwYXJ0aXRpb24gd2hlbiBsb2dpY2FscyBhbGwgdXNlZAorICBidXQgcHJpbWFyeSBmcmVlCisqIGh3Y2xvY2s6IGRldGVjdCBzeXN0aW1lIGp1bXBzIGJhY2t3YXJkIGR1cmluZyBzZXR0aW5nIGh3Y2xvY2sKKyogbWtmcy5jcmFtZnM6IGRvIG5vdCBtbWFwIGFsbCBmaWxlcyBzaW11bHRhbmVvdXNseQorKiBta2ZzLmNyYW1mczogbWFrZSBibG9ja3NpemUgc2V0dGFibGUKKyogbWtmcy5taW5peDogY29ycmVjdCBlcnJvciBwcmludG91dAorKiBta3N3YXAuODogbm93IG1heCAzMiBzd2Fwc3BhY2VzCisqIG1vdW50OiBuZXcgLS1yYmluZCBmbGFnLCBmb3IgcmVjdXJzaXZlIGxvb3BiYWNrIG1vdW50cworKiBtb3VudCwgdW1vdW50OiBuZXcgLU8gb3B0aW9uIChNaWNoYWVsIEsuIEpvaG5zb24pCisqIG1vdW50Ljg6IC1PIGFuZCB3aW45NSBvcHRpb25zIGRvY3VtZW50ZWQKKyogc2V0cHduYW0uYzogb3BlbiB0ZW1wIHB3IGZpbGUgd2l0aCBPX0VYQ0wKKyogc2ltcGxlaW5pdDogZml4IGZvciAic3Bhd24gdG9vIGZhc3QiIChEZW5pcyBWbGFzZW5rbykKKyogc3dhcG9uOiBuZXcgLWUgb3B0aW9uIChFcmlrIFRyb2FuKQorCit1dGlsLWxpbnV4IDIuMTF3CisKKyogY2ZkaXNrLCBmZGlzazogYWxsb3cgc2xpZ2h0bHkgbGFyZ2VyIGRpc2sgc2l6ZXMKKyogZmRpc2s6IE1ha2VmaWxlOiBhbHNvIGZvciBtNjggKHN1bjMpIChLYWotTWljaGFlbCBMYW5nKQorKiBmZGlzazogYWxsb3cgdG8gdXNlIHRoZSBsYXN0IHBhcnRpYWwgY3lsaW5kZXIsIGNoYW5nZSBkaXNwbGF5IGZvcm1hdAorKiBmZGlzazogZG8gbm90IGFzayBwYXJ0aXRpb24gbnVtYmVyIGluIGNhc2UgdGhlcmUgaXMgb25seSBvbmUgY2hvaWNlCisqIGZkaXNrOiBuZXcgc3VubGFiZWwgZml4CisqIGxvZ2luOiBmaXggcG9zc2libGUgbG9jYWwgcm9vdCBleHBsb2l0IChXb2pjaWVjaCBQdXJjenluc2tpKQorKiBtb3JlOiBiaWdlbmRpYW4gZml4CisKK3V0aWwtbGludXggMi4xMXYKKworKiBDYXRhbGFuIG1lc3NhZ2VzIChBbnRvbmkgQmVsbGEgUGVyZXopCisqIEZpbm5pc2ggbWVzc2FnZXMgKExhdXJpIE51cm1pKQorKiBWZXJ5IGZldyBSdXNzaWFuIG1lc3NhZ2VzIChwYW5pdmFuQHlhbmRleC5ydSkKKyogU2xvdmVuaWFuIG1lc3NhZ2VzIChQcmltb3ogUGV0ZXJsaW4pCisqIFNwYW5pc2ggbWVzc2FnZXMgKFNhbnRpYWdvIFZpbGEgRG9uY2VsKQorKiBTd2VkaXNoIG1lc3NhZ2VzIChDaHJpc3RpYW4gUm9zZSkKKyogVHVya2lzaCBtZXNzYWdlcyAoTmlsZ/xuIEJlbG1hIEJ1Z/xuZXIpCisqIGZkaXNrOiBhZGQgLUMsIC1ILCAtUyBjb21tYW5kIGxpbmUgb3B0aW9ucworKiBmZGlzazogYWxsb3cgY2hhbmdpbmcgdHlwZSAwCisqIG1rc3dhcDogZW5hYmxlIHVzZSBvZiA+IDJHQiBzd2Fwc3BhY2UKKyogbW9yZTogdHJhbnNsYXRpb24gZml4CisqIG1vdW50OiBzZXQgdW1hc2sgKFNlYmFzdGlhbiBLcmFobWVyKQorKiBtb3VudDogdGVzdCBib3RoIGxlIGFuZCBiZSB2ZXJzaW9uIG9mIGNyYW1mcyBtYWdpYyAoT2xhZiBIZXJpbmcpCisqIG1vdW50OiByZWNvZ25pemUgT3JhY2xlIG1hZ2ljCisqIHBnOiB1c2UgZnNlZWtvNjQgYW5kIGZ0ZWxsbzY0IHdoZW4gYXZhaWxhYmxlCisKK3V0aWwtbGludXggMi4xMXUKKworKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKyogR2VybWFuIG1lc3NhZ2VzIChNaWNoYWVsIFBpZWZlbCkKKyogU3BhbmlzaCBtZXNzYWdlcyAoU2FudGlhZ28gVmlsYSBEb25jZWwpCisqIFN3ZWRpc2ggbWVzc2FnZXMgKENocmlzdGlhbiBSb3NlKQorKiBUdXJraXNoIG1lc3NhZ2VzIChOaWxn/G4gQmVsbWEgQnVn/G5lcikKKyogY29uZmlndXJlOiBmb3IgZnNjay5jcmFtZnMsIG1rZnMuY3JhbWZzOiBhZGQgdGVzdCBmb3IgbGliegorKiB0ZXh0LXV0aWxzL01ha2VmaWxlOiBwZyBmaXggKFRvb21hcyBSb3NpbikKKyogcG8vTWFrZWZpbGU6IHR5cG8gZml4IChTaWx2YW4gTWluZ2hldHRpKQorKiBhZ2V0dHk6IHVzZSBzYW1lIHRlc3QgYXMgbG9naW4gZG9lcyB0byBmaW5kIHV0bXAgZW50cnkKKyogZmRpc2s6IGZpeCBmb3IgZmRpc2sgb24gZW1wdHkgZGlzayAoTWljaGFlbCBELiBCbGFjaykKKyogaHdjbG9jazogY29tcGlsYXRpb24gZml4IG9uIGFscGhhCisqIG1vdW50OiBhZGQgbW91bnQgYnkgbGFiZWwgZm9yIGpmcyAoQ2hyaXN0b3BoIEhlbGx3aWcpCisqIG1vdW50OiBhZGQgbW91bnQgYnkgbGFiZWwgZm9yIGV2bXMgKEx1Y2lhbm8gQ2hhdmV6KQorKiBtb3VudDogYWxsb3cgcmVndWxhciBmaWxlcyB3aGVuIGd1ZXNzaW5nIChNaWNoYWwgU3ZlYykKKyogcGFydHgvZ3B0LmM6IGZpeCBzaXplIGNvbXB1dGF0aW9uIChNYXR0IERvbXNjaCkKKyogcmVhZHByb2ZpbGU6IG5ldyBvcHRpb24gLWIgKERhdmlkIE1vc2JlcmdlcikKKyogdW1vdW50OiBkb24ndCB1bW91bnQgZGV2ZnMgdXBvbiB1bW91bnQgLWEgKERhdmlkIEdpbGJlcnQpCisKK3V0aWwtbGludXggMi4xMXQKKworKiBmZGZvcm1hdDogcmVtb3ZlIHRlc3Qgb24gbWFqb3IKKyogZnNjay5jcmFtZnM6IGFkZGVkIE5MUworKiBmZGlzazogZml4IGRldmljZSBuYW1lcyB3aXRoIHN1bmRpc2tsYWJlbHMgdW5kZXIgZGV2ZnMgKEthai1NaWNoYWVsIExhbmcpCisqIGZkaXNrOiBtaW5vciBwb2xpc2hpbmcKKyogaHdjbG9jazogYWxzbyBoYW5kbGUgRU5PVFRZIGlvY3RsIHJldHVybiAoTWFjaWVqIFcuIFJvenlja2kpCisqIGh3Y2xvY2s6IG1pbm9yIHBvbGlzaGluZworKiBpcGNybS44OiBtaW5vciBwb2xpc2hpbmcKKyogbWtmcy5jcmFtZnM6IGFkZGVkIE5MUworKiBta2ZzLmNyYW1mczogYWRkZWQgLXYgKHZlcmJvc2UpIG9wdGlvbiwgYW5kIG1hZGUgZGVmYXVsdCBzaWxlbnQKKyogbW91bnQ6IHBhdGNoIGZvciBtYWtlIC1qIChSZWRIYXQpCisqIHN3YXBvZmY6IG1pbm9yIHBvbGlzaGluZworCit1dGlsLWxpbnV4IDIuMTFzCisKKyogRXN0b25pYW4gbWVzc2FnZXMgKE1lZWxpcyBSb29zKQorKiBGcmVuY2ggbWVzc2FnZXM6IHNvbWUgbWlub3IgY29ycmVjdGlvbnMKKyogR2VybWFuIG1lc3NhZ2VzIChNaWNoYWVsIFBpZWZlbCkKKyogU3BhbmlzaCBtZXNzYWdlcyAoU2FudGlhZ28gVmlsYSBEb25jZWwpCisqIFN3ZWRpc2ggbWVzc2FnZXMgKENocmlzdGlhbiBSb3NlKQorKiBUdXJraXNoIG1lc3NhZ2VzIChOaWxn/G4gQmVsbWEgQnVn/G5lcikKKyogTUNPTkZJRzogYWxsb3cgIm1ha2UgRElTQUJMRV9OTFM9eWVzIDx0YXJnZXQ+IiAoUGV0ZXIgQnJlaXRlbmxvaG5lcikKKyogY29uZmlndXJlOiBkb24ndCBydW4gLi9jb25mdGVzdCAtIGJldHRlciBmb3IgY3Jvc3MtY29tcGlsYXRpb24gKE1hZ251cyBEYW1tKQorKiBmZGlzazogZml4ZXMgZm9yIGRpc2tzIHdpdGggT1NGLzEgbGFiZWwKKyogZnNjay5jcmFtZnM6IG5ldyAoZnJvbSBrZXJuZWwgc291cmNlKQorKiBod2Nsb2NrOiBpbXByb3ZlZCBhZGp0aW1lIGhhbmRsaW5nIChKYW1lcyBQLiBSdXRsZWRnZSkKKyogaHdjbG9jazogcmVtb3ZlIHNoaG9wdHMgc3R1ZmYKKyogaXBjczogcmVtb3ZlIHVudXNlZCBoZWFkaW5nIChNaWNoYWVsIEtlcnJpc2spCisqIGxpbmU6IHJlcGxhY2UgYnkgQyB2ZXJzaW9uIC0gdGhlIHNoIHZlcnNpb24gd2FzIGJyb2tlbiAoR3VubmFyIFJpdHRlcikKKyogbG9naW46IGRlZmF1bHQgcm9vdCBwYXRoOiBhZGRlZCAvdXNyL2xvY2FsL1tzXWJpbiAoUmVkSGF0KQorKiBta2ZzLmNyYW1mczogbmV3IChmcm9tIGtlcm5lbCBzb3VyY2UpCisqIG1vdW50OiB3aGVuIG5vIHR5cGUgaXMga25vd24sIGFzc3VtZSB0aGF0IHByZWZpeCAvLyBpbXBsaWVzIHNhbWJhIChSZWRIYXQpCisqIG1vdW50IC1hOiBhdm9pZCBzdGF0IG9uIGRldmljZXMgdGhhdCBoYXZlIG5vYXV0byBvcHRpb24gKEplcm9lbiBNb3N0ZXJ0KQorKiBtb3VudCBieSBsYWJlbDogaWdub3JlIFJBSUQgcGFydGl0aW9ucyAoUmVkSGF0KQorKiBbdV1tb3VudDogZnN0YWIuYyBmaXggKGVqYkBxbC5vcmcpCisqIHBnOiBuZXcgKEd1bm5hciBSaXR0ZXIpCisqIHNmZGlzazogc21hbGwgQlNEIHBhcnRpdGlvbiBmaXgKKyogc3dhcG9mZiAtYTogYWxzbyBkbyBzd2Fwb2ZmIG9uIGFsbCBmaWxlcyBmb3VuZCBpbiAvcHJvYy9zd2FwcworKiBzd2Fwb24gLWE6IHNraXAgZmlsZXMgYWxyZWFkeSBmb3VuZCBpbiAvcHJvYy9zd2FwcworCit1dGlsLWxpbnV4IDIuMTFyCisKKyogRXN0b25pYW4gbWVzc2FnZXMgKE1lZWxpcyBSb29zKQorKiBHZXJtYW4gbWVzc2FnZXMgKE1pY2hhZWwgUGllZmVsKQorKiBTcGFuaXNoIG1lc3NhZ2VzIChTYW50aWFnbyBWaWxhIERvbmNlbCkKKyogU3dlZGlzaCBtZXNzYWdlcyAoQ2hyaXN0aWFuIFJvc2UpCisqIFR1cmtpc2ggbWVzc2FnZXMgKE5pbGf8biBCZWxtYSBCdWf8bmVyKQorKiBNQ09ORklHOiBtb3ZlICQoQ0ZMQUdTKSB0byB0aGUgZW5kIHRvIGFsbG93IG92ZXJyaWRlcyAoS2V2aW4gUC4gRmxlbWluZykKKyogY2FsOiB0aW55IGZpeCAoTWl0c3VydSBDaGluZW4pCisqIGZkaXNrOiBhdm9pZCA8bGludXgvaGRyZWcuaD4KKyogZmRpc2s6IHg4Nl82NCBwYXRjaCAoTWFkcyBNYXJ0aW4gSvhyZ2Vuc2VuKQorKiBod2Nsb2NrLjg6IHpvbmVpbmZvIGlzIG5vdyBpbiAvdXNyL3NoYXJlCisqIG1rc3dhcDogcmVwb3J0IGluIEtpQiBpbnN0ZWFkIG9mIGJ5dGVzLgorCit1dGlsLWxpbnV4IDIuMTFxCisKKyogZmRpc2s6IGdlb21ldHJ5IGltcHJvdmVtZW50CisqIGxvZ2luOiBvcGVuIHR0eSBmaXggKERlbmlzIFZsYXNlbmtvKQorKiBtb3JlOiB3aWRlIGNoYXJhY3RlciBwYXRjaGVzIChNaXRzdXJ1IENoaW5lbikKKyogbW91bnQ6IGNvbXBsYWluIG9uIG1vdW50LWJ5LWxhYmVsIHdoZW4gbGFiZWwgaXMgbm90IHVuaXF1ZSAoTWF0dCBDb3BwaW5nKQorKiBwYXJ0eDogYWRkIEdVSUQgUGFydGl0aW9uIFRhYmxlcyAoTWF0dCBEb21zY2gpCisKK3V0aWwtbGludXggMi4xMXAKKworKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKyogR2VybWFuIG1lc3NhZ2VzIChLYXJsIEVpY2h3YWxkZXIpCisqIFNwYW5pc2ggbWVzc2FnZXMgKFNhbnRpYWdvIFZpbGEgRG9uY2VsKQorKiBTd2VkaXNoIG1lc3NhZ2VzIChDaHJpc3RpYW4gUm9zZSkKKyogVHVya2lzaCBtZXNzYWdlcyAoTmlsZ/xuIEJlbG1hIEJ1Z/xuZXIpCisqIGlwY3JtOiBtYWtlIFBPU0lYIGNvbXBhdGlibGUgKEFuZHJlIENvcndpbiBNYXp6b25lKQorKiBpcGNybS44OiBpZGVtCisqIGtpbGw6IGZpeGVkIE1ha2VmaWxlCisqIGxvZ2luOiBzZXRzaWQgZml4ZXMKKyogbWtzd2FwOiBtYXggc2l6ZSBvZiBzd2FwIHNwYWNlIGlzIHZlcnkgbGFyZ2UgKFBldGVyIENodWJiKQorKiBtb3VudDogSkZTIHN1cHBvcnQgZm9yIG1vdW50LWJ5LWxhYmVsIChoY2gpCisqIG5mc21vdW50OiBjaGVjayBmb3IgPHJwY3N2Yy9uZnNfcHJvdC5oPiAoaGNoKQorKiByZWFkcHJvZmlsZToga2VlcCB0cmFjayBvZiBsaW5lIG51bWJlcnMgKEpvaG4gTGV2b24pCisqIHVtb3VudDogZml4IGZvciBNTlRfREVUQUNICisKK3V0aWwtbGludXggMi4xMW8KKworKiBFc3RvbmlhbiBtZXNzYWdlcyAoTWVlbGlzIFJvb3MpCisqIEphcGFuZXNlIG1lc3NhZ2VzIChEYWlzdWtlIFlhbWFzaGl0YSkKKyogU3BhbmlzaCBtZXNzYWdlcyAoU2FudGlhZ28gVmlsYSBEb25jZWwpCisqIGNhbDogb3B0aW9uIC1zOiBTdW5kYXkgaXMgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrCisqIGNhbC4xOiB1cGRhdGVkCisqIGNmZGlzazogZ2l2ZSBub3Qgb25seSBieXRlcyBidXQgYWxzbyBNQiBvciBHQiBmb3IgY2xhcml0eS4KKyogY29scm06IHdpZGUgY2hhcmFjdGVyIGZpeCAoRWxsaW90IExlZSkKKyogKmZkaXNrOiBhZGRlZCBEYXJ3aW4gdHlwZXMgKFZpbmNlbnQgQm91cmdvbmplbikKKyogZnN0YWIuNTogdXBkYXRlZAorKiBoZXhkdW1wOiAtQyBvcHRpb24KKyogaHdjbG9jazogY21vcy5jOiBkbyBub3QgaW5jbHVkZSA8YXNtL2lvLmg+IG9uIGFscGhhCisqIG1vdW50OiBpbXByb3ZlZCBkZXRlY3Rpb24gb2YgdWZzIChhbmQgc2xvd2Rvd24gb2YgZGV0ZWN0aW9uIG9mIGlzbzk2NjApCisqIG1vdW50Ljg6IGFkZGVkIGluZm8gb24gKiBpbiAvZXRjL2ZpbGVzeXN0ZW1zLCBzaG9ydG5hbWUgb3B0aW9uIG9mIHZmYXQsCisgIG1vdW50IC0tbW92ZSwgdWRmLCByZXR1cm4gY29kZXMKKyogcmF3OiB0cnkgL2Rldi9yYXcvcmF3Y3RsIHdoZW4gL2Rldi9yYXdjdGwgZmFpbHMgKFRoaWVycnkgVmlnbmF1ZCkKKyogcmMuc2VyaWFsOiByZW1vdmVkIC0gc2V0c2VyaWFsIGlzIG5vIGxvbmdlciBpbiB1dGlsLWxpbnV4IChrcm9tSngpCisqIFJFQURNRS5hZG11dGlsOiByZW1vdmVkIC0gb25seSBvZiBoaXN0b3JpY2FsIGludGVyZXN0CisqIFJFQURNRS5ib290dXRpbHMtMC4xOiByZW1vdmVkIC0gb25seSBvZiBoaXN0b3JpY2FsIGludGVyZXN0CisqIHNjcmlwdDogc2VjdXJpdHkgZml4CisqIHNmZGlzazogaW1wcm92ZWQgZ2VvbWV0cnkgZGV0ZWN0aW9uOyB3aWRlciBjb2x1bW5zOyBkZWZhdWx0IGRpc2tzIGZyb20KKyAgL3Byb2MvcGFydGl0aW9ucworKiB1bW91bnQ6IHBlcm1pc3Npb24gdGVzdCBvd25lciB1bW91bnQKKyogd2FsbC4xOiBhZGRlZCBzdWlkIHJlc3RyaWN0aW9uCisKK3V0aWwtbGludXggMi4xMW4KKworKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKyogR2VybWFuIG1lc3NhZ2VzIChLYXJsIEVpY2h3YWxkZXIpCisqIFN3ZWRpc2ggbWVzc2FnZXMgKENocmlzdGlhbiBSb3NlKQorKiBUdXJraXNoIG1lc3NhZ2VzIG5vdyBpbiBVVEYtOCAoTmlsZ/xuIEJlbG1hIEJ1Z/xuZXIpCisqIGJsb2NrZGV2OiBhZGQgLS1yZXBvcnQgb3B0aW9uCisqIGNhbDogZml4IGZvciB3aWRlIG11bHRpYnl0ZS1jaGFyIChNb3Rvbm9idSBJY2hpbXVyYSkKKyogY2ZkaXNrOiByZWNvZ25pemUgZXh0MyBhbmQgcmVpc2VyZnMgKEZsYXZpbyBTdGFuY2hpbmEpCisqIGZzY2subWluaXg6IGkxOG4gY2hhbmdlcworKiBpcGMue2luZm8sdGV4aX06IG1pbm9yIGNvcnJlY3Rpb24KKyogbG9naW46IGNvbXBpbGF0aW9uIGZpeCAoSmFyb3NsYXcgSi4gUHlzem55KQorKiBtb3VudC44OiB0bXBmcyBtb3VudCBvcHRpb25zIChLYXJsIEVpY2h3YWxkZXIpCisqIG1vdW50OiByZWNvZ25pemUgbWluaXggdjIKKyogbW91bnQ6IHN1cHBvcnQgbW91bnQtYnktbGFiZWwgYWxzbyBmb3IgbHZtIChLaXJieSBCb2hsaW5nKQorKiBtb3VudDogb3JkZXIgZ3Vlc3Npbmcgb2YgZnN0eXBlcyBhY2NvcmRpbmcgdG8gc2VlayBvZmZzZXQKKyogcGl2b3Rfcm9vdDogY29tcGlsYXRpb24gZml4IGZvciBpYTY0CisqIHJlYWRwcm9maWxlOiBieXRlIG9yZGVyIGF1dG8tZGV0ZWN0aW9uIChXZXJuZXIgQWxtZXNiZXJnZXIpCisKK3V0aWwtbGludXggMi4xMW0KKworKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKyogR2VybWFuIG1lc3NhZ2VzIChLYXJsIEVpY2h3YWxkZXIpCisqIFN3ZWRpc2ggbWVzc2FnZXMgKENocmlzdGlhbiBSb3NlKQorKiBUdXJraXNoIG1lc3NhZ2VzIChOaWxn/G4gQmVsbWEgQnVn/G5lcikKKyogZmRpc2s6IGFkZGVkIG5ldGJzZCB0eXBlIChTdGV2ZW4gSi4gSGlsbCkKKyogbW9yZTogZml4IGZvciB1bnNpZ25lZCBjaGFyIChSdXN0eSBSdXNzZWxsKQorKiBtb3VudDogYWRkZWQgc3lzdiBtYWdpYyAoVGltIExhdW5jaGJ1cnkpCisqIHNldHRlcm06IGZpeGVkICJzZXR0ZXJtIC1mb3JlZ3JvdW5kIGRlZmF1bHQiCisKK3V0aWwtbGludXggMi4xMWwKKworKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKyogYmFubmVyOiByZW1vdmVkIC0gaXQgaXMgaW4gYnNkZ2FtZXMKKyogZmRpc2s6IHNob3cgcGFydGl0aW9ucyB3aXRoIGVtcHR5IHR5cGUgYnV0IHNvbWUgb3RoZXIgbm9uemVybyBmaWVsZAorKiBsb2dpbjogY29weSB0aGUgc3RhdGljIHN0cnVjdCB0aGF0IGdldHB3bmFtKCkgcmV0dXJucyBiZWZvcmUgY2FsbGluZworICBQQU0gcm91dGluZXMgdGhhdCBtaWdodCB0aGVtc2VsdmVzIHVzZSBnZXRwd25hbSgpLiBBYm9ydCBvbiBwcm9ibGVtcy4KKyAgKE9sYWYgS2lyY2gpCisqIG1vdW50OiBhZGRlZCBqZnMgbWFnaWMgKENocmlzdG9waCBIZWxsd2lnKQorKiByZW5pY2U6IHJlcG9ydCB0aGUgY29ycmVjdCBuZXcgcHJpb3JpdHkgYWZ0ZXIgYSBzZXRwcmlvcml0eSgpCisqIHVtb3VudDogYWRkIGxhenkgdW5tb3VudCAoQ2hyaXN0b3BoIEhlbGx3aWcpCisKK3V0aWwtbGludXggMi4xMWsKKworICBWYXJpb3VzIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3dzIHdlcmUgcG9pbnRlZCBvdXQgYnkgYXdheXp6ekBkaWdpYmVsLm9yZy4KKyAgRml4ZXMgaW4gYWdldHR5LCBod2Nsb2NrLCBuYW1laSwgcmVhZHByb2ZpbGUsIHNpbXBsZWluaXQsIHZpcHcuCisgIChBbHNvIGFkZGVkIGEgZmV3IFtmXWNsb3NlKCkgY2FsbHMgLSBlbnRpcmVseSBzdXBlcmZsdW91c2x5LikKKworKiBhZ2V0dHk6IGF2b2lkIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdworKiBjZmRpc2s6IHJlY29nbml6ZSB4ZnMgKE5hdGhhbiBTY290dCkKKyogY3l0dW5lOiBhZGRlZCBjbG9zZSgpCisqIGZkZm9ybWF0OiBhZGRlZCBjbG9zZSgpCisqIGZkaXNrOiBhZGRlZCBmY2xvc2UoKQorKiBod2Nsb2NrOiBhdm9pZCBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cKKyogbWtmcy5taW5peDogYWRkZWQgZmNsb3NlKCkKKyogbW91bnQ6IHJlbW92ZSB0aGUgYXNzdW1wdGlvbiB0aGF0IDYzNSBpcyB0aGUgZGVmYXVsdCBtb3VudCBwb3J0CisqIG5hbWVpOiBhdm9pZCBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cKKyogcmRldjogYWRkZWQgY2xvc2VkaXIoKQorKiByZWFkcHJvZmlsZTogYXZvaWQgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93CisqIHNmZGlzazogYWRkZWQgZmNsb3NlKCkKKyogc2ltcGxlaW5pdDogYXZvaWQgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93CisqIHN3YXBvbjogYWRkZWQgZmNsb3NlKCkKKyogdW1vdW50OiB1c2UgdGNwIHdoZW4gbW91bnQgd2FzIGRvbmUgdXNpbmcgdGNwIChKYW1lcyBEIFN0cmFuZGJvZ2UpCisqIHZpcHc6IGF2b2lkIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdworCit1dGlsLWxpbnV4IDIuMTFqCisKKyogZmRpc2s6IGZpeCBmb3IgQUlYIGxhYmVsIChPbGFmIEhlcmluZykKKyogZmRpc2s6IGZpeCBmb3IgY3JlYXRpbmcgRE9TIGxhYmVsIHdoZW4gQlNEIGxhYmVsIGlzIHByZXNlbnQKKyogbW91bnQuODogYWRkZWQgcmVtYXJrIGFib3V0IGJsb2Nrc2l6ZSB0byBleHQyIHNiPSBtb3VudCBvcHRpb24gZGVzY3JpcHRpb24uCisqIHBhcnRpdGlvbnR5cGU6IG5ldywgbm90IGluc3RhbGxlZAorCit1dGlsLWxpbnV4IDIuMTFpCisKKyogdGVzdGluY2w6IGRvIG5vdCBydW4gY29uZnRlc3QgKEJyaWFuIE11cnBoeSkKKyogYmxvY2tkZXY6IGNvcnJlY3RlZCBpb2N0bCBudW1iZXJzIG5vdyB0aGF0IEJMS0JTWkdFVCBpcyBpbiAyLjQuMTBwcmUzCisqIGNhbDogZml4ZWQgZm9yIEh1bmdhcmlhbiBsb2NhbGUKKyogY2FsOiBmaXhlZCBmb3IgbXVsdGlieXRlIGxvY2FsZXMgKFBhYmxvIFNhcmF0eGFnYSkKKyogZmRpc2s6IGF2b2lkIHN1cGVyZmx1b3VzIHdhcm5pbmcgYWJvdXQgRE9TIHBhcnRpdGlvbnMKKyogbGluZTogbmV3LCB0byBzdXBwb3J0IFNDTyBzaGVsbCBzY3JpcHRzIChDaHJpc3RvcGggSGVsbHdpZykKKyogbW91bnQ6IGFkZGVkIHZ4ZnMgbWFnaWMKKyogcGFzc3dkOiB0aW55IGZpeCBmb3IgQVJNIChLZW4gQ294KQorKiByZXBsYXk6IHJlcGxheSB0eXBlc2NyaXB0IHdpdGggdGltaW5ncyAoSm9leSBIZXNzKQorKiBzY3JpcHQ6IGFkZCAtdCBmbGFnIGZvciB0aW1pbmcgKEpvZXkgSGVzcykKKwordXRpbC1saW51eCAyLjExaAorCisqIFR1cmtpc2ggbWVzc2FnZXMgKE5pbGf8biBCZWxtYSBCdWf8bmVyKQorKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKyogYmFubmVyOiBtaW5vciBmaXggKGF3YXl6enpAZGlnaWJlbC5vcmcpCisqIG1rZnMubWluaXg6IG1pbml4IHYyIGZpeAorKiBtb3JlLjE6IGltcHJvdmVkIChFZHdhcmQgQmV0dHMpCisqIG1vdW50Ljg6IGNvcnJlY3RlZCBkZXNjcmlwdGlvbiBvZiB0aGUgbndmcyB1bmlfeGxhdGUgbW91bnQgb3B0aW9uCisqIHZpcHc6IG1ha2UgdGVtcCBmaWxlcyBvZiBtb2RlIDA2MDAgKEJpbGwgTm90dGluZ2hhbSkKKyogd2FsbDogYXZvaWQgd3JpdGluZyB0byAvZGV2LzowCisKK3V0aWwtbGludXggMi4xMWcKKworKiBNQ09ORklHICYgY29uZmlndXJlOiBmaXggZm9yIGdjYyAzLjAKKyAgTm90ZSB0aGF0IG5mc21vdW50X3hkci5jIG1heSBnaXZlIHdhcm5pbmdzIHdpdGggZ2NjIDMuMCwgZXNzZW50aWFsbHkKKyAgYmVjYXVzZSBvZiBkZWZpbmVzIGluIDxycGMveGRyLmg+IHRoYXQgdXNlIHRoaW5ncyBsaWtlIG50b2hsKCpidWYrKykKKyAgd2hlcmUgbnRvaGwoeCkgaXMgYSBtYWNybyB3aXRoIHNldmVyYWwgb2NjdXJyZW5jZXMgb2YgeC4KKyogYmxvY2tkZXY6IHN1cHBvcnQgZm9yIHRoZSBnZXQvc2V0IGJsb2Nrc2l6ZSBpb2N0bHMKKyAgW25vdCB5ZXQgaW4gdGhlIDIuNC41IGtlcm5lbF0KKyogZmRpc2s6IGFkZGVkIExpbnV4L1BBLVJJU0MgdHlwZSAoTWF0dCBUYWdnYXJ0KQorKiBtb3VudDogbWlub3IgZml4IChBbmRyZXkgSi4gTWVsbmlrb2ZmKQorKiBtb3VudDogYWRkZWQgc29tZSBleHQzIHN0dWZmIChBbmRyZXcgTW9ydG9uKQorKiBtb3VudDogYWRkZWQgaGV1cmlzdGljcyBmb3IgcmVpc2VyZnMgKEFuZHJldyBNb3J0b24pCisqIG1vdW50Ljg6IGFkZGVkIGV4dDMgYW5kIHJlaXNlcmZzIGRvY3MgKEFuZHJldyBNb3J0b24pCisKK3V0aWwtbGludXggMi4xMWYKKworKiBDemVjaCBtZXNzYWdlcyAoSmn47SBQYXZsb3Zza/0pCisqIGZkaXNrOiBmaXggZm9yICJyZW9yZGVyIiBleHBlcnQgY29tbWFuZAorICAodXNlIG9mIHNmZGlzayBhZnRlcndhcmRzIGlzIHN0aWxsIHJlY29tbWVuZGVkKQorKiBtb3VudDogbWlub3IgZml4ZXMKKwordXRpbC1saW51eCAyLjExZQorCisqIERhbmlzaCBtZXNzYWdlcyAoQ2xhdXMgSGluZHNnYXVsKQorKiBCcmF6aWxpYW4gUG9ydHVndWVzZSBtZXNzYWdlcyAoUm9kcmlnbyBTdHVsemVyIExvcGVzKQorKiBhZ2V0dHk6IGdpdmUgdHR5IG1vZGUgMDYwMCBpbnN0ZWFkIG9mIDA2MjIKKyogY2FsOiBpbXByb3ZlZCBtYW5wYWdlCisqIGNmZGlzazogYWRkIHVzZXItZnJpZW5kbGluZXNzIGluIGNhc2Ugb2YgZW1wdHkgZGlzayAoTWF0dGhldyBXaWxjb3gpCisqIGRtZXNnOiBpbXByb3ZlZCBtYW5wYWdlCisqIGZkaXNrOiBTdXBlckggZml4IChJU0hJS0FXQSBNdXRzdW1pKQorKiBod2Nsb2NrOiBhY2NlcHQgYWxwaGEgb3B0aW9ucyBpbiBib3RoIHVwcGVyIGFuZCBsb3dlciBjYXNlCisgIChzbyBhcyB0byBtYWtlIHRoZSBtYW4gcGFnZSBjb3JyZWN0KQorKiBod2Nsb2NrOiBhZGQgb3B0aW9uIC0tbm9hZGp0aW1lIChIZW5yaXF1ZSBNIEhvbHNjaHVoKQorKiBsb2dpbjogY2hpbGQgbXVzdCBoYXZlIGNvbnRyb2xsaW5nIHR0eSAoTWljaGFsIE1vc2thbCkKKyogbW9yZTogZG9uJ3Qgc2VlayB1bnNlZWthYmxlIGlucHV0IChEYXZpZCBXaGVkb24pCisqIG1vdW50OiB1cG9uIHJlcXVlc3QgYnkgUmljaGFyZCBHb29jaDogaWYgdGhlIG1vdW50IHBvaW50IGlzIHNwZWNpZmllZAorICBhcyBzeW1saW5rLCBwdXQgc3ltbGluaywgbm90IGFjdHVhbCBtb3VudCBwb2ludCBpbiBtdGFiLgorICAoVGhpcyBhdm9pZHMgdGhlIGxvbmcgYW5kIHVnbHkgZGV2ZnMgbmFtZXMsIGJ1dCBtYXkgYnJlYWsgdGhpbmdzLgorICBQbGVhc2UgY29tcGxhaW4gaW4gY2FzZSBvZiBwcm9ibGVtcy4pCisqIG1vdW50OiB3aXRoIG1vdW50IC1hIC10IG5mczoKKyAgaWYgd2UgdXNlZCBmYWxsYmFjayB0byBuZnMgdjMsIGRvbid0IGRvIHNvIGZvciBzdWJzZXF1ZW50IG1vdW50cworKiBtb3VudDogYWRkIGhldXJpc3RpY3MgZm9yIGV4dDMgKEFuZHJldyBNb3J0b24pCisqIG1vdW50OiBhZGRlZCBxdW90YSBpbmZvIHRvIG1vdW50LjgKKyogbW91bnQ6IGFsbG93IGNvbW1hLXNlcGFyYXRlZCB0eXBlIGxpc3RzLCBhbHNvIGluIGZzdGFiCisqIHJhdzogc21hbGwgZml4IGZvciBwcGMKKwordXRpbC1saW51eCAyLjExZAorCisqIGZkaXNrOiBmaXggZm9yIE9TRiAoV2lsbCBXb29kcykKKyogY2hzaDogY29tcGlsYXRpb24gZml4IChSb25hbGQgV2FobCkKKwordXRpbC1saW51eCAyLjExYworCisqIEN6ZWNoIG1lc3NhZ2VzIChKafjtIFBhdmxvdnNr/SkKKyogR2VybWFuIG1lc3NhZ2VzIChFbHJvbmQpCisqIE1ha2VmaWxlL01DT05GSUcgaW1wcm92ZW1lbnRzIChQZXRlciBCcmVpdGVubG9obmVyKQorKiBmZGlzazogYWRkZWQgYSBmZXcgcGFydGl0aW9uIHR5cGVzCisqIGZkaXNrOiBjb3JyZWN0IHBhcnRpdGlvbiBudW1iZXJpbmcgZm9yIHNnaSBwYXJ0aXRpb25zIChOYXRoYW4gU2NvdHQpCisqIGZkaXNrOiBtYWtlIGl0IGNvbXBpbGUgb24gaHBwYSBieSBhcmJpdHJhcmlseSB0cmVhdGluZyBocHBhIGxpa2UgcG93ZXJwYworICAoTWF0dCBUYWdnYXJ0KQorKiBmc2NrLm1pbml4OiBpbXByb3ZlZCBsb2NhbGlzYXRpb24gKEVscm9uZCkKKyogZ2V0b3B0OiB1cGRhdGVkIHRvIHZlcnNpb24gMS4xLjIgKEZyb2RvIExvb2lqYWFyZCkKKyogaHdjbG9jazogZml4ZXMgZm9yIElBNjQgKFRob3JzdGVuIEt1a3VrKQorKiBod2Nsb2NrOiB1c2UgL2Rldi92Yy8xIHdoZW4gZGV2ZnMgaXMgdXNlZCAoVGhvbWFzIEtvZWxsZXIpCisqIGh3Y2xvY2s6IG1vcmUgZGV2ZnMgc3VwcG9ydCAoZS5nLiAvZGV2L21pc2MvcnRjKQorKiBpcGNzOiBhZGQgc3BhY2VzIGluIG91dHB1dCAoRGVXaXR0IENsaW50b24pLAorICBjb3JyZWN0IHNvbWUgZXJyb3IgbWVzc2FnZXMgKEJvYmJ5IGRlIFZvcykKKyogbG9naW46IGZpeCBUSU9DTk9UVFkgKEFuZHJlYXMgSGF1bWVyLCBBZGFtIEouIFJpY2h0ZXIpCisqIGxvZ2luOiBhZGQgYnRtcCBsb2dnaW5nIG9mIHVuc3VjY2Vzc2Z1bCBsb2dpbiBhdHRlbXB0cyAoRXJpayBUcm9hbikKKyogbG9naW46IGF2b2lkIGEgU0lHSFVQIHJhY2Ugd2l0aCBQQU0gZW5hYmxlZCAoUGV0ZXIgJ0x1bmEnIFJ1bmVzdGlnKQorKiBsb2dpbjogY29weSB0aGUgc3RhdGljIHJlc3VsdCByZXR1cm5lZCBieSBnZXRob3N0YnluYW1lIHRvIGF2b2lkCisgIGNvcnJ1cHRpb24gYnkgcGFtX2F1dGhlbnRpY2F0ZSB2aWEgcGFtX2xkYXAgKEFuZHJlYXMgRGFtbSkKKyogbG9naW46IHJlbW92ZWQgdGhlIFJFREhBVF9JR05PUkVEX01BSUxTSVpFIGhhY2sKKyogbG9naW46IHVuY29uZGl0aW9uYWxseSBkbyB2aGFuZ3VwCisqIGxvZ2luOiB6ZXJvIFBBTV9VU0VSIHdoZW4gbm8gdXNlcm5hbWUgd2FzIGdpdmVuIChBcmthZGl1c3ogTWlza2lld2ljeikKKyogbG9vazogZGljdGlvbmFyeSBub3cgdW5kZXIgL3Vzci9zaGFyZSAoRXJpayBUcm9hbikKKyogbW91bnQ6IGFkZCBzYW5pdGl6ZV9lbnYoKSAoU29sYXIgRGVzaWduZXIpCisqIG1vdW50OiBhbm90aGVyIGhldXJpc3RpYyBmb3IgdmZhdCAoTWljaGFsIFN2ZWMpCisqIG1vdW50OiB4ZnMgbWFnaWMgaGFzIG9ubHkgb25lIGVuZGlhbm5lc3MgKE5hdGhhbiBTY290dCkKKyogbW91bnQ6IHJldHVybiBmYWlsdXJlIHdoZW4gdGNwIHVzZWQgYW5kIHBvcnRtYXAgcmV0dXJucyAwIChILiBKLiBMdSkKKyogcmRldjogYWxsb3cgdW5saW1pdGVkIHJlY3Vyc2lvbiB0byBmaW5kIHRoZSBsb25nIGRldmZzIG5hbWVzCisgIEFsc28sIGFsbG93IG1ham9yLG1pbm9yIHBhaXIgdGhlIHNwZWNpZnkgZGV2aWNlIChyZXF1ZXN0IGJ5IFJ1c3NlbGwgQ29rZXIpCisqIHJlYWRwcm9maWxlOiBhcnJheSBib3VuZCBjaGVjayAoQW5kcmV3IE1vcnRvbikKKyogc2NyaXB0OiB0cmFuc21pdCB3aW5kb3cgY2hhbmdlcyB0byBjaGlsZCAoSm9leSBIZXNzKQorKiBzZmRpc2s6IGVuZGlhbiBmaXggZm9yIHBwYyAoR3JlZ29yeSBHZWlzZWxoYXJ0KQorKiBzZmRpc2s6IG5ldyBmZWF0dXJlOiBzaWduIGlzIG9mZnNldCBmcm9tIGRlZmF1bHQgKEJ5cm9uIFN0YW5vc3playkKKyogc2ZkaXNrOiBhZGQgc29tZSBkZWZhdWx0IGRldmljZXMgdG8gbGlzdCAoTHVjYSBNb250ZWNjaGlhbmkpCisqIHNmZGlzazogbm8gcGFydGl0aW9uIHRhYmxlIG9uIGlkZSB0YXBlCisqIHNodXRkb3duOiBjbG9zZSBmaWxlcywgdW5ibG9jayBzaWduYWxzIChSaWNoYXJkIEdvb2NoKQorKiBzaW1wbGVpbml0OiBibG9jayBzaWduYWxzIGluIGhhbmRsZXJzOyBhZGQgbm9fcmVib290IG9wdGlvbiAoUmljaGFyZCBHb29jaCkKKyogc3dhcGRldjogZGVsZXRlZCwgaXQgd2FzIGxhc3QgdXNlZCB3aXRoIExpbnV4IDAuMTIuCisqIHVtb3VudDogbWlwcyBkb2VzIHN1cHBvcnQgdW1vdW50MiAoTWFjaWVqIFcuIFJvenlja2kpCisqIHVtb3VudDogYWRkIHNhbml0aXplX2VudigpIChTb2xhciBEZXNpZ25lcikKKyogdW1vdW50OiBmaXggZXhpdCBzdGF0dXMKKyogd2FsbDogZG8gbm90IGZvcmdldCA4MHRoIGNoYXJhY3RlciAoVGhvcnN0ZW4gS3VrdWspCisKK3V0aWwtbGludXggMi4xMWI6CisKKyogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCisqIHVtb3VudDogbWlwcyBkb2VzIG5vdCBzdXBwb3J0IHVtb3VudDIgKENocmlzdG9waCBNYXJ0aW4pCisqIGZkaXNrOiB0aW55IGZpeAorKiBtb3VudC44OiBhZGZzIG9wdGlvbnMgZG9jdW1lbnRlZCwgeGZzIGNvcnJlY3RlZAorCit1dGlsLWxpbnV4IDIuMTFhOgorCisqIHRzb3J0OiBkZWxldGVkIC0gaXQgaXMgcGFydCBvZiBHTlUgdGV4dHV0aWxzIDIuMAorKiBtb3VudDogZml4IHJvb3RkZXYoKSAoUmljaGFyZCBLZXR0bGV3ZWxsKQorKiBtb3VudDogZml4IGdpZCBvZiBtdGFiIGZpbGUKKyogbW91bnQ6IHRyeSAvcHJvYy9maWxlc3lzdGVtcyBhZnRlciAvZXRjL2ZpbGVzeXN0ZW1zIGlmIHRoZSBsYXR0ZXIgZW5kcyBpbiAiKiIKKyogZmRpc2s6IGFkZGVkIGEgZmV3IHN5c3RlbSB0eXBlcworCit1dGlsLWxpbnV4IDIuMTE6CisKKyogSnVtcCB0byAyLjExIHRvIG5vdGUgdGhhdCBsaWJjLTQuNS4yNiBpcyBubyBsb25nZXIgc3VwcG9ydGVkLAorICBhbmQgd2UgcmVxdWlyZSBsaWJjLTQuNi4yNyAoc2luY2Ugbm93IHNucHJpbnRmIGlzIHVzZWQpLgorICBBbHNvLCBrYmRyYXRlIGhhcyBub3cgYmVlbiByZW1vdmVkLiBGaW5kIGl0IGluIGtiZC0xLjA1LgorICBBZGRlZCAtRF9GSUxFX09GRlNFVF9CSVRTPTY0IHRvIENGTEFHUy4KKyogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCisqIGZkaXNrOiBhdm9pZCBsb29wIGluIGNhc2Ugb2YgZXh0ZW5kZWQgd2l0aG91dCBsb2dpY2FsCisqIGlwY3M6IGNvcnJlY3RlZCBpbnRlcmNoYW5nZWQgcmVwb3J0IG9uIG1zZ19ydGltZS9tc2dfc3RpbWUgKEFydW4gS3VtYXIgVSkKKyoga2lsbDogdXBkYXRlZCBtYW5wYWdlCisqIGxhc3Q6IHZlcnkgbXVjaCBmYXN0ZXIgd2l0aCBtbWFwIChNYXJlayBaZWxlbSkKKyogbG9naW46IEFwcGxpZWQgUEFNIHBhdGNoIGJ5IERhdmlkIE1hY0tlbnppZSA8ZGptQHdlYi51cy51dS5uZXQ+CisqIGxvZ2luOiBkbyBhIHNldHNpZCBpbiB0aGUgY2hpbGQgKEVyaWsgVHJvYW4pCisqIG1vdW50OiBtYWtlICJtb3VudCAxOTIuMTY4LjEuODovIC9hIC1vIGJnIiB3b3JrIGFnYWluIChCam9lcm4gVm9pZ3QpCisqIG1vdW50OiBhZGRlZCBjb25zdGFudCBNU19NT1ZFCisqIHJlYWRwcm9maWxlOiBhZGRlZCAtTSBvcHRpb24sIHVwZGF0ZWQgbWFucGFnZSAoQW5kcmV3IE1vcnRvbikKKyogc2V0c2lkOiBmb3JrIHdoZW4gaXQgd291bGQgZmFpbCBvdGhlcndpc2UgKEpvaG4gRnJlbWxpbikKKyogc2ltcGxlaW5pdDogdXBkYXRlZCAoUmljaGFyZCBHb29jaCBldCBhbC4pCisqIHZpcHc6IGFsc28gb2ZmZXIgdG8gZWRpdCBzaGFkb3cgZmlsZSAoRXJpayBUcm9hbikKKyogeGZzIGRvY3MgKE5hdGhhbiBTY290dCkKKwordXRpbC1saW51eCAyLjEwczoKKworKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKyogZml4ZXMgdG8gbWFrZSBnY2MgaGFwcHkgKEpvc2VwaCBTLiBNeWVycykKKyogZml4IGZvciBtb3JlIG9uIHBhcmlzYyAoUmljaGFyZCBIaXJzdCkKKyogY2hhbmdlIHJkZXYgdG8gc2VhcmNoIHN1YmRpcmVjdG9yaWVzIG9mIC9kZXYgKFBhdWwgQ2xlbWVudHMpCisqIHVsIGZpeCAoTWFzYW8gS2F3YW11cmEpIC0gc2V0IGNvbHVtbnMgY29ycmVjdGx5CisqIGNhbCBmaXggKEJyZW5kYW4gS2Vob2UpIC0gZG9uJ3Qgb3ZlcmZsb3cgd2Vla2RheSBhcnJheSBpbiBHYWVsaWMKKyogZmRpc2sgZml4IChuaWxlc0BzY3lsZC5jb20pIC0gZmx1c2ggc3Rkb3V0CisqIGZkaXNrIGZpeCAtIGRvbid0IGZvcmdldCB0byB3cml0ZSBvdXQgZW1wdHkgbGFiZWwKKyogbG9naW46IG1ha2UgZGVmYXVsdCB0dHkgbW9kZSAwNjAwCisqIHNjcmlwdDogcmVmdXNlIHRvIHdyaXRlIHR5cGVzY3JpcHQgaWYgdGhhdCBpcyBhIHN5bWxpbmsKKyogc2NyaXB0OiBhY2NlcHQgLVYgdG8gb3V0cHV0IHZlcnNpb24KKyogd2hlcmVpczogYWxzbyBzZWFyY2ggL3Vzci9zaGFyZS9tYW4uCisqIGh3Y2xvY2s6IGltcHJvdmUgbG9jYWxlIGhhbmRsaW5nCisqIGh3Y2xvY2s6IGZpeCBmb3IgTmF1dGlsdXMgKE5lb2tsaXMgS3lyaWF6aXMpCisqIGlzb3NpemU6IG5ldworCit1dGlsLWxpbnV4IDIuMTByOgorCisqIG1vdW50OiBzdXBwb3J0IG1vdW50IGJ5IHV1aWQgb3IgbGFiZWwgZm9yIHhmcyAoTmF0aGFuIFNjb3R0KQorKiBtb3VudDogYWRkZWQgcHJvYmUgZm9yIG1pbml4IG9uIGJpZ2VuZGlhbiBzeXN0ZW1zIChOYXRoYW4gU2NvdHQpCisqIG1vdW50OiBhZGRlZCBwcm9iZXMgZm9yIGNyYW1mcywgaGZzLCBocGZzIGFuZCBhZGZzIChTZXBwIFdpam5hbmRzKQorKiBtb3VudDogY2hhbmdlIHNldHVwOyBsZXQgdW1vdW50IHJlbW92ZSBhdCBtb3N0IG9uZSBsaW5lIGZyb20gL2V0Yy9tdGFiCisqIG1vdW50OiBpbXByb3ZlIG1hbiBwYWdlCisqIG1vcmUsIGNvbCwgY29sY3J0LCBjb2xybSwgY29sdW1uLCB1bDogbmxzIGltcHJvdmVtZW50cyAoTWFzYW8gS2F3YW11cmEpCisKK3V0aWwtbGludXggMi4xMHE6CisKKyogbW91bnQ6IGFjY2VwdCBub25udW1lcmljIHVpZD0gYW5kIGdpZD0gb3B0aW9ucworKiB3cml0ZSBhbmQgd2FsbDogc2VjdXJpdHkgaW1wcm92ZW1lbnQKKyogZml4ZWQgZmRmb3JtYXQgZmxhdyAoV2VybmVyIEFsbWVzYmVyZ2VyKQorKiB1c2UgcmlnaHQgbW91bnRwb3J0IHVwb24gdW1vdW50IChHbGVubiBMaW5nbGUpCisqIHNpbXBsZWluaXQgLyBuZWVkIC8gaW5pdGN0bCBzdHVmZiAoUmljaGFyZCBHb29jaCkKKyogUG9ydHVndWVzZSBtZXNzYWdlcyAoUm9kcmlnbyBTdHVsemVyIExvcGVzIGV0IGFsLikKKwordXRpbC1saW51eCAyLjEwcDoKKworKiBtb3VudDogZG9uJ3Qgc2V0IHVwIGEgbG9vcCBmaWxlIHdpdGggLW8gbG9vcCxyZW1vdW50IChNYXJjIE11dHopCisqIGZkaXNrOiBjaGFuZ2VzIGZvciBzZWN0b3JzaXplIGRpZmZlcmVudCBmcm9tIDUxMgorKiBtb3JlOiBzdGFuZG91dCBmaXggKFBhdWwgVm9qdGEpCisqIG1vcmU6IGltcHJvdmUgdXNhZ2UgbWVzc2FnZSAoTGluY29sbiBNeWVycykKKyogbG9nZ2VyOiBBZGRlZCAtZCBvcHRpb24gdG8gdXNlIGRhdGFncmFtcyAoR2Vyd2luIFBmYWIpCisqIGNhbDogQWRkZWQgLTMgb3B0aW9uIHRvIGFsc28gcHJpbnQgcHJldi9uZXh0IG1vbnRoIChNaWNoYWVsIENoYXJsZXMgUHJ1em5pY2spCisqIEZyZW5jaCBtZXNzYWdlcyAoQ2hyaXN0b3BoZSBNZXJsZXQpCisqIEphcGFuZXNlIG1lc3NhZ2VzIChEYWlzdWtlIFlhbWFzaGl0YSkKKwordXRpbC1saW51eCAyLjEwbzoKKworKiBmZGZvcm1hdDogZml4ZWQgdG8gd29yayB3aXRoIGtlcm5lbCAyLjQuMHRlc3Q2IChNYXJlayBXb2p0b3dpY3opCisqIGxvc2V0dXA6IGFsc28gcmV0dXJuIHN0YXR1cyB3aGVuIG9ubHkgc2hvd2luZyBsb29wIGRldmljZSBzdGF0dXMgKGV3dCkKKyogbW91bnQ6IGRvIG5vdCByZXRyeSBybyBpZiBtb3VudCB3YXMgcm87IGltcHJvdmUgZXJyb3IgbWVzc2FnZQorKiBsb2dpbjogbm90IGluc3RhbGxlZCBzdWlkCisqIGdldG9wdDogYnkgZGVmYXVsdCBpbnN0YWxsIGF1eCBmaWxlcyBpbiAvdXNyL3NoYXJlL21pc2MKKwordXRpbC1saW51eCAyLjEwbjoKKworKiBhZGRlZCBibG9ja2Rldi44CisqIGNoYW5nZSB0byBlbHZ0dW5lIChhbmRyZWEpCisqIGZpeGVkIG92ZXJydW4gaW4gYWdldHR5ICh2aWlAcGVuZ3VpbnBvd2VyZWQuY29tKQorKiBzaHV0ZG93bjogcHJlZmVyIHVtb3VudGluZyBieSBtb3VudCBwb2ludCAocmdvb2NoKQorKiBmZGlzazogYWRkZWQgcGxhbjkKKyogZmRpc2s6IHJlbW92ZSBlbXB0eSBsaW5rcyBpbiBjaGFpbiBvZiBleHRlbmRlZCBwYXJ0aXRpb25zCisqIG1vdW50OiBkZWZpbmUgQUxXQVlTX1NUQVQKKyogbW91bnQ6IGFkZCByZXBsYWNlLCBhZnRlciwgYmVmb3JlLCBvdmVyLCBiaW5kCisqIHVtb3VudDogYWxzbyBmcmVlIGxvb3AgZGV2aWNlIHdoZW4gbm90IHdyaXRpbmcgbXRhYgorKiBsb21vdW50OiB0cnkgYm90aCAvZGV2L2xvb3BOIGFuZCAvZGV2L2xvb3AvTgorKiBod2Nsb2NrOiBoYW5kbGUgYm90aCAvZGV2L3J0YyBhbmQgL2Rldi9lZmlydGMgKEJpbGwgTm90dGluZ2hhbSkKKyogc2NyaXB0OiBhZGRlZCAtZiAoZmx1c2gpIG9wdGlvbiAoSXZhbiBTY2hyZXRlcikKKyogc2NyaXB0OiBhZGRlZCAtcSAocXVpZXQpIG9wdGlvbiAoUGVyIEFuZHJlYXMgQnVlcikKKyogZ2V0b3B0OiB1cGRhdGVkIHRvIHZlcnNpb24gMS4xLjAgKEZyb2RvIExvb2lqYWFyZCkKKyogQ3plY2ggbWVzc2FnZXMgKEppcmkgUGF2bG92c2t5KQorCit1dGlsLWxpbnV4IDIuMTBtOgorCisqIGNoZm4gZml4IHdoZW4gUEFNIGlzIHVzZWQgKE1hcnRpbi1ELiBMYWNhc3NlKQorKiBkbyBub3QgdXNlIExDX05VTUVSSUMgcGFydCBvZiBsb2NhbGUgaW4gaHdjbG9jayB3aGVuIHdyaXRpbmcgL2V0Yy9hZGp0aW1lCisqIG1vdW50IHN0YXR1cyByZXR1cm4gZnJvbSBzbWIgb3IgbmNwIGZpeCAoTWFyayBQZWxvcXVpbikKKyogbW91bnQgbmV3IG9wdGlvbiAtbDogYWxzbyBwcmludCBsYWJlbCB3aGVuIGxpc3RpbmcgbW91bnRzCisqIG1vdW50IGFkZCBoZXVyaXN0aWMgZm9yIHhmcyAoTWFydGluIEsuIFBldGVyc2VuKQorKiBtb3VudCBVVUlEIGFuZCBsYWJlbCBjYWNoZSAoRXJpayBUcm9hbikKKyogbW91bnQgaW1wcm92ZSBjaGVjayBmb3IgYGFscmVhZHkgbW91bnRlZCcgaW4gY2FzZSBvZiBsYWJlbCBvciB1dWlkCisqIGZkaXNrIHBhcnRpdGlvbiBuYW1lcyBtb3JlIGRldmZzLWZyaWVuZGx5CisqIGZkaXNrIGJzZGxhYmVsIGxhcmdlIGRpc2sgc3VwcG9ydAorKiBzZXR0ZXJtLjE6IG9wdGlvbnMgZG9jdW1lbnRlZCAoQ29saW4gV2F0c29uKQorKiByZW5hbWUgY29ycmVjdGlvbgorKiBHZXJtYW4sIFNwYW5pc2gsIEZyZW5jaCwgSXRhbGlhbiwgUG9ydHVndWVzZSBtZXNzYWdlcworICAoUm9nZXIgTHVldGhpLCBCZXRoIFBvd2VsbCwgQWx2YXJvIEFudHVuZXMpCisKK3V0aWwtbGludXggMi4xMGw6CisKKyogTWVyZ2VkIGxvc2V0dXAuYyBhbmQgbG9tb3VudC5jCisqIEFOU0lmaWVkIGV2ZXJ5dGhpbmcKKwordXRpbC1saW51eCAyLjEwazoKKworKiBORlMgdmVyc2lvbiA0IG1vdW50IHN1cHBvcnQgKFRyb25kIE15a2xlYnVzdCkKKyogaHdjbG9jayBmaXggKFN0ZWZhbiBSaW5nKQorKiBBZGRlZCAtcCBvcHRpb24gdG8gY29sLCBhcyByZXF1aXJlZCBieSBTVVMgKEpvc2VwaCBTLiBNeWVycykKKwordXRpbC1saW51eCAyLjEwajoKKworKiBmZGlzayBmaXhlcyAoTWljaGFsIEphZWdlcm1hbm4pCisKK3V0aWwtbGludXggMi4xMGk6CisKKyogbmV3IGRpcmVjdG9yeSBwYXJ0eCAod2l0aCBjb2RlIHRvIHBsYXkgd2l0aCwgbm90IHRvIHVzZSkKKyogbWlub3IgZmRpc2sgY2hhbmdlcworCit1dGlsLWxpbnV4IDIuMTBoOgorCisqIEFkZGVkIHBpdm90X3Jvb3QgKFdlcm5lciBBbG1lc2JlcmdlcikKKyogQWRkZWQgZWx2dHVuZSAoQW5kcmVhIEFyY2FuZ2VsaSkKKyogQWRkZWQgbmVlZCBhbmQgZXh0ZW5kZWQgc2ltcGxlaW5pdCBhbmQgc2h1dGRvd24gKFJpY2hhcmQgR29vY2gpCisqIFJlbW92ZWQgYWxsICNpbmNsdWRlIDxsaW51eC9mcy5oPgorKiBlcnJubyBmaXhlcyAoSm9zZXBoIFMuIE15ZXJzKQorKiBJQS02NCBmaXhlcyAoTWljaGFlbCBLLiBKb2huc29uKQorKiBmZGlzayBmaXhlcyBmb3IgT1NGLzEgb24gQWxwaGEgKERhdmlkIEh1Z2dpbnMtRGFpbmVzKQorKiBmZGlzayBzZWN0b3JzaXplIGZpeCAoR3JlZyBIb3NsZXIpCisqIG1vdW50IHNwZWVkPSBvcHRpb24gdG8gZW5hYmxlIG1vdW50aW5nIGJhZCBDRFJPTXMgKE1hcmNvIGQnSXRyaSkKKyogaXBjcm0gZGVsZXRlcyBzZXZlcmFsIHRoaW5ncyBhdCBvbmNlIChGcmFuayBaYWdvKQorCit1dGlsLWxpbnV4IDIuMTBnOgorCisqIGZkaXNrIGNhbiBub3cgc29ydCBwYXJ0aXRpb25zIGludG8gb3JkZXIgW3VudGVzdGVkLCBiZXdhcmUhXQorKiBVcGRhdGUgb2YgbWtzd2FwIGZvciBzcGFyYzY0IChqaikKKyogVXBkYXRlIG9mIHJhdyAoU3RlcGhlbiBUd2VlZGllKToKKyAgQ29udHJvbCBmaWxlIHdhcyAvZGV2L3Jhdywgbm93IC9kZXYvcmF3Y3RsCisgIEFjY2VzcyBmaWxlcyB3ZXJlIC9kZXYvcmF3Kiwgbm93IC9kZXYvcmF3L3JhdyoKKyogQ3plY2ggbWVzc2FnZXMgKEppcmkgUGF2bG92c2t5KQorKiBHZXJtYW4gbWVzc2FnZXMgKERhbmllbCBFZ2dlcikKKyogbG9zZXR1cCBsb2NrcyBtZW1vcnkgKEZyYW5rIHYgV2F2ZXJlbikKKwordXRpbC1saW51eCAyLjEwZjoKKworKiBTZWN1cml0eSBmaXggZm9yIG1vdW50IChva2lyKQorKiBBdm9pZCBpbmZpbml0ZSBsb29wIGluIG5hbWVpIChCcmV0dCBXdXRoKQorKiBhZGRlZCBjbG9jay1wcGMuYyAoZnJvbSBNYXRzdXVyYSBUYWthbm9yaSksIG5vdCBtZXJnZWQgeWV0CisqIGRlbGV0ZWQgY2xvY2tCIHN1YmRpcmVjdG9yeQorKiByZWNvZ25pemUgbWtkb3NmcyBzdHJpbmcgKE1pY2hhbCBTdmVjKQorCit1dGlsLWxpbnV4IDIuMTBlOgorCisqIE5ldzogcmVuYW1lCisqIEFkZGVkIG9wdGlvbiB0byBta3N3YXAgc28gdGhhdCB1c2VyIGNhbiBvdmVycmlkZSBwYWdlc2l6ZQorKiBmZGlzayAtbCBub3cgcmVhZHMgL3Byb2MvcGFydGl0aW9ucyB3aGVuIG5vIGRldmljZSB3YXMgZ2l2ZW4KKyogRml4ZWQgZmRpc2suOCAoSmFtZXMgTWFubmluZykKKyogQWRkZWQgZGV2cHRzIGluZm8gdG8gbW91bnQuOCAoRWxyb25kKQorKiBOZXdsaW5lIGZpeCBmb3IgbG9nZ2VyIG91dHB1dCB0byBzdGRvdXQgKEhlbnJpIFNwZW5jZXIpCisKK3V0aWwtbGludXggMi4xMGQ6CisKKyogRG8gbm90IHRyeSB0byBtb3VudCBzb21ldGhpbmcgYXMgdWRmIHdpdGhvdXQgZ29vZCByZWFzb24KKyogRG8gbm90IGxvb3AgaW4gdW1vdW50IGlmIHRoZXJlIGlzIGEgc3RhbGUgbG9jayBmaWxlCisqIEFsbG93IGZkaXNrIHR3aWNlIGFzIG1hbnkgY3lsaW5kZXJzCisqIEZpeGVkIG5vbi1jYXNlZm9sZGluZyBzZWFyY2ggaW4gbG9vayAoTWFya3VzIERlbWxlaXRuZXIpCisKK3V0aWwtbGludXggMi4xMGM6CisKKyogVmFyaW91cyBjb21waWxhdGlvbiBmaXhlcworCit1dGlsLWxpbnV4IDIuMTBiOgorCisqIEZpeGVkIHNtYm1vdW50IHByb2JsZW0gKEFuZHJldyBUcmlkZ2VsbCkKKyogRml4ZWQgZGRhdGUgcHJvYmxlbSB3aXRoIHRoZSBkYXkgYWZ0ZXIgU3QuIFRpYidzIERheSAoQnJhZCkKKyogR2VybWFuIG1lc3NhZ2VzIChFbHJvbmQpCisqIE1hZGUga2lsbCBhIGJpdCBtb3JlIHN0YW5kYXJkIGNvbXBsaWFudAorKiBNYWRlIHNvbWUgbW9yZSBwcm9ncmFtcyBvdXRwdXQgYSB2ZXJzaW9uCisKK3V0aWwtbGludXggMi4xMGE6CisKKyogSmFwYW5lc2UgbWVzc2FnZXMgKERhaXN1a2UgWWFtYXNoaXRhKQorKiBGcmVuY2ggbWVzc2FnZXMgYW5kIHNldmVyYWwgRGViaWFuIGZpeGVzIChWaW5jZW50IFJlbmFyZGlhcykKKyogRml4ZWQgaW5maW5pdGUgbG9vcCBpbiBta2ZzLm1pbml4CisKK3V0aWwtbGludXggMi4xMDoKKworKiBBZGRlZCBCU0QgZGlza2xhYmVsIGNvZGUgdG8gcmVzY3VlcHQKKyogQWRkZWQgYmxvY2tkZXYgdXRpbGl0eQorKiBGaXggbG9zZXR1cCByZXR1cm4gY29kZQorKiBGaXggdW5pdCBkaXNwbGF5IGluIGNmZGlzaworKiBEbyBub3QgcmVkZWZpbmUgX1BBVEhfTUFJTERJUiAoc28gdGhhdCByZWNlbnQgc3lzdGVtcyBjYW4gaGF2ZSAvdmFyL21haWwpCisqIEFkZGVkIC0tbG9jYWx0aW1lIG9wdGlvbiB0byBod2Nsb2NrOworICBhZGRlZCB0aGlyZCBsaW5lIChMT0NBTC9VVEMpIHRvIC9ldGMvYWRqdGltZS4KKyogQWRkIC1IIG9wdGlvbiB0byBhZ2V0dHkgKERhdmlkIEhvbGxhbmQpCisKK3V0aWwtbGludXggMi45ejoKKworKiBKYXBhbmVzZSBtZXNzYWdlcyAoRGFpc3VrZSBZYW1hc2hpdGEpCisqIEN6ZWNoIG1lc3NhZ2VzIChKaXJpIFBhdmxvdnNreSkKKyogQWRkZWQgc29tZSB1ZGYgc3R1ZmYgdG8gbW91bnQuOAorKiBBZGRlZCBpb2N0bCBmb3IgZmRpc2sgb24gYnNkbGFiZWxzCisKK3V0aWwtbGludXggMi45eToKKworKiBXaWRlIGNoYXJhY3RlciBzdXBwb3J0IChCcnVubyBIYWlibGUpCisqIEdlcm1hbiBtZXNzYWdlcyBhbmQgc29tZSBzbWFsbCBmaXhlcyAoRWxyb25kKQorKiBTbWFsbCBmaXggdG8gb3duZXIgbW91bnQgb3B0aW9uIChFcmlrIFRyb2FuKQorKiBEb24ndCBzbGVlcCBzbyBsb25nIGluIGNsb2NrL2tkLmMgKENocmlzdGlhbiBULiBTdGVpZ2llcykKKwordXRpbC1saW51eCAyLjl4OgorCisqIEdlcm1hbiBtZXNzYWdlcyBhbmQgYSBpMThuIGZpeCAoRWxyb25kKQorKiBtb3VudCBvcHRpb246IGFsbG93IHRoZSBvd25lciB0byBtb3VudCBhIGRldmljZSAoUmVkSGF0KQorKiB1Z2x5OiBsZXQgbG9naW4gb3BlbiBjb25zb2xlIHdpdGggT19OT05CTE9DSyAoTWFjaWVqIFcuIFJvenlja2kpCisqIFVHTFk6IGxldCBsb2dpbiBpZ25vcmUgbWFpbCB0aGF0IGlzIHByZWNpc2VseSA1MjMgYnl0ZXMgbG9uZyAoUmVkSGF0KQorKiBhZGRlZCBta2ZzLmJmcywgbWtmcy5iZnMuOAorKiBtb3VudCBub3cgcmVjb2duaXplcyBxbng0IGFuZCBiZnMgcGFydGl0aW9ucworKiByZXNjdWVwdCBub3cgcmVjb2duaXplcyBVbml4d2FyZSBwYXJ0aXRpb25zCisqIGh3Y2xvY2sgZml4IG9uIG02OGsgKFJvbWFuIEhvZGVrKQorKiBzZXZlcmFsIG1pbm9yIHRoaW5ncworCit1dGlsLWxpbnV4IDIuOXc6CisKKyogVXBkYXRlZCBtb3VudC44IChZYW5uIERyb25lYXVkKQorKiBJbXByb3ZlZCBtYWtlZmlsZXMKKyogRml4ZWQgZmxhdyBpbiBmZGlzaworCit1dGlsLWxpbnV4IDIuOXY6CisKKyogY2ZkaXNrIG5vIGxvbmdlciBiZWxpZXZlcyB0aGUga2VybmVsJ3MgSERHRVRHRU8KKyAgKGFuZCBtYXkgYmUgYWJsZSB0byBwYXJ0aXRpb24gYSAyIFRCIGRpc2spCisKK3V0aWwtbGludXggMi45dToKKworKiBDemVjaCBtb3JlLmhlbHAgYW5kIG1lc3NhZ2VzIChKafjtIFBhdmxvdnNr/SkKKyogSmFwYW5lc2UgbWVzc2FnZXMgKERhaXN1a2UgWWFtYXNoaXRhKQorKiBmZGlzayBmaXggKEtsYXVzIEcuIFdhZ25lcikKKyogbW91bnQgZml4IChIaXJva2F6dSBUYWthaGFzaGkpCisqIGFnZXR0eTogZW5hYmxlIGhhcmR3YXJlIGZsb3cgY29udHJvbCAoVGhvcnN0ZW4gS3Jhbnprb3dza2kpCisqIG1pbm9yIGNmZGlzayBpbXByb3ZlbWVudHMKKyogZmRpc2sgbm8gbG9uZ2VyIGFjY2VwdHMgYSBkZWZhdWx0IGRldmljZQorKiBNYWtlZmlsZSBmaXgKKwordXRpbC1saW51eCAyLjl0OgorCisqIG5hdGlvbmFsIGxhbmd1YWdlIHN1cHBvcnQgZm9yIGh3Y2xvY2sKKyogSmFwYW5lc2UgbWVzc2FnZXMgKGJvdGggYnkgRGFpc3VrZSBZYW1hc2hpdGEpCisqIEdlcm1hbiBtZXNzYWdlcyBhbmQgc29tZSBtaXNjIGkxOG4gZml4ZXMgKEVscm9uZCkKKyogQ3plY2ggbWVzc2FnZXMgKEpp+O0gUGF2bG92c2v9KQorKiB3YWxsIGZpeGVkIGZvciAvZGV2L3B0cy94eCB0dHlzCisqIG1ha2UgbGFzdCBhbmQgd2FsbCB1c2UgZ2V0dXRlbnQoKSAoU2FzY2hhIFNjaHVtYW5uKQorICBbTWF5YmUgdGhpcyBpcyBiYWQ6IGxhc3QgcmVhZGluZyBhbGwgb2Ygd3RtcCBtYXkgYmUgdG9vIHNsb3cuCisgICBSZXZlcnQgaW4gY2FzZSBwZW9wbGUgY29tcGxhaW4uXQorKiBkb2N1bWVudGVkIFVVSUQ9IGFuZCBMQUJFTD0gaW4gZnN0YWIuNQorKiBhZGRlZCBzb21lIHBhcnRpdGlvbiB0eXBlcworKiBzd2Fwb246IHdhcm4gb25seSBpZiB2ZXJib3NlCisKK3V0aWwtbGludXggMi45czoKKworKiB0dW5lbHAgcGF0Y2ggKEFuZHJlYSBBcmNhbmdlbGkpCisqIGZpeGVkIG1vdW50IHJhY2UgKEhKTHUpCisqIEdlcm1hbiBtZXNzYWdlcyAoRWxyb25kKQorCit1dGlsLWxpbnV4IDIuOVtwcXJdOgorCisqIGVycm5vLT5lcnJzdiBwYXRjaCAoQXJuYWxkbyBDYXJ2YWxobyBkZSBNZWxvKQorKiBod2Nsb2NrIHBhdGNoIGZvciB0aGUgQXdhcmQgNC41MGcgQklPUyAiMjA5NCIgYnVnLiAoRGF2ZSBDb2ZmaW4pCisqIGZkaXNrIHBhdGNoIHRvIGNvcnJlY3QgZGVsZXRpb24gb2YgbGFzdCBsb2dpY2FsIHBhcnRpdGlvbgorCit1dGlsLWxpbnV4IDIuOW86CisKKyogZml4IHRvIGxvZ2luIGJ5IEFtYnJvc2UgQy4gTGkKKyogaW1wcm92ZW1lbnQgdG8gbWNvb2tpZSBpbnNwaXJlZCBieSBhIHBhdGNoIGZyb20gUmlrIEZhaXRoCisqIG1vcmUgaTE4biBieSBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG87IHB0X0JSIGxvY2FsZQorCit1dGlsLWxpbnV4IDIuOW46CisKKyogQWRkZWQgLXUgb3B0aW9uIHRvIGxvZ2dlciAod3JpdGUgdG8gdXNlci1zcGVjaWZpZWQgc29ja2V0OyBNYXJ0aW4gU2NodWx0emUpCisqIEFkZGVkIG1vdW50LnNtYiBzY3JpcHQgY29udHJpYnV0ZWQgYnkgR3JlZyBHYWxwZXJpbgorKiBTb21lIG1vcmUgbmF0aW9uYWwgbGFuZ3VhZ2Ugc3VwcG9ydAorKiBta2ZzLm1pbml4IGFyZ3VtZW50IHBhcnNpbmcgZml4ZWQKKyogd3JpdGUgZml4ZWQgZm9yIC9kZXYvcHRzL3h4IHR0eXMKKyogY29uZmlndXJlIGFkYXB0ZWQgZm9yIHRoZSBjYXNlIG9mIDxzY3NpL3Njc2kuaD4gdGhhdCBuZWVkcyB1X2NoYXIuCisKK3V0aWwtbGludXggMi45bToKKworKiBBZGRlZCBuYXRpb25hbCBsYW5ndWFnZSBzdXBwb3J0IChtaXNpZWtAcGxkLk9SRy5QTCkKKyogbWlub3IgaW1wcm92ZW1lbnRzIGluIG1vdW50LCBmZGlzaywgY2ZkaXNrLCBhZ2V0dHksIG1vcmUKKwordXRpbC1saW51eCAyLjlsOgorCisqIEFkZGVkIC9kZXYvcG9ydCB1c2UgdG8gaHdjbG9jayBhZ2FpbiAtIGl0IG1heSBiZSBuZWNlc3NhcnkgZm9yIEplbnNlbi4KKwordXRpbC1saW51eCAyLjlrOgorCisqIG1ham9yIHJlc2h1ZmZsZSBvZiBod2Nsb2NrIHN0dWZmOyBhZGRlZCBzcGFyYyBhbmQgYWxwaGEgY29kZQorKiBmZGlzayBmaXgKKyogdGlueSBzaHV0ZG93biBmaXgKKwordXRpbC1saW51eCAyLjlqOgorCisqIGFkZGVkIGNvbmZpZ3VyZQorKiBtZXJnZWQgdGhyZWUgbGlzdHMgb2YgcGFydGl0aW9uIHR5cGVzIGluICpmZGlzaworKiBtdWx0aSBwYWdlIGRpc3BsYXkgaW4gY2ZkaXNrCisqIHRlc3QgZm9yIGdldGxvZ2luKCkgPT0gIiI7CisqIHN0YXJ0IGZpeHVwIGh3Y2xvY2sKKwordXRpbC1saW51eCAyLjlpOgorCisqIGZpeGVkIDIuOWggdHlwbyBpbiBtb3JlCisqIGFkZGVkIC1tOiBgTW9uZGF5IGlzIDFzdCBkYXknIG9wdGlvbiB0byBjYWwgKEplYW4tRnJhbmNvaXMgQmlnbm9sbGVzKQorKiBjaGFuZ2VkIFBBTSBzdHVmZiBpbiBsb2dpbi5jICgrLSBtam9obnNvbikKKyogYWRkZWQgd2FybmluZyB0byBjZmRpc2sgaW4gY2FzZSBvZiBtdWx0aXBsZSBib290YWJsZSBwYXJ0aXRpb25zCisqIGFkZGVkIDIwNDgtYnl0ZSBzZWN0b3Igc3VwcG9ydCBpbiBmZGlzayAoT2xpdmVyIFNjaGFlcnRlbCkKKwordXRpbC1saW51eCAyLjloOgorCisqIG1vdW50IHJlY29nbml6ZXMgInVpZD11c2VydWlkIiBhbmQgImdpZD11c2VyZ2lkIiBpbiAvZXRjL2ZzdGFiLgorKiBkb2N1bWVudGVkIHRoZSBmYWN0IHRoYXQgIm1vdW50IC10IHNtYiIgd2lsbCBjYWxsIC9zYmluL21vdW50LnNtYi4KKyogbW91bnQgZ2l2ZXMgY2xlYXIgZXJyb3IgbWVzc2FnZSB3aGVuIGZzdGFiIGRvZXMgbm90IGVuZCBpbiBuZXdsaW5lLgorKiBzd2Fwb24gY2hlY2tzIG1vZGUgb2YgZmlsZQorKiBjZmRpc2sgZ290IGEgbW9yZSBzcGVjaWZpYyBleGl0IHN0YXR1cyAoRW5yaXF1ZSBaYW5hcmRpKQorCit1dGlsLWxpbnV4IDIuOWc6CisKKyogbW91bnQgdXBkYXRlcyAobG9ja2luZywgInVzZXJzIiBrZXl3b3JkLCAiL2V0Yy9maWxlc3lzdGVtcyIsCisgICJwcm90byIgYW5kICJ2ZXJzIiBvcHRpb25zIGluIG5mc21vdW50LCAuLi4pCisKK3V0aWwtbGludXggMi45ZjoKKworKiBtYWRlIHVsIGhhbmRsZSBsaW5lcyBvZiBhcmJpdHJhcnkgbGVuZ3RoIChTY290dCBNYXh3ZWxsKQorKiBraWxsZWQgc29tZSBDL0gvUyBub25zZW5zZSBpbiBmZGlzaworKiBmaXhlcyBmb3IgYXJjaHMgd2l0aCB1bnNpZ25lZCBjaGFyIHR5cGUgKEFtYnJvc2UgTGkpCisqIGZkaXNrIGZpeGVzIGZvciBwb3dlciBwYyAoVG9tIFJpbmkpCisqIGFkZGVkIGEgZGVmaW5lIGZvciBOQ1VSU0VTX0NPTlNUCisqIGZpeGVzIGZvciBsaXN0IG9mIHNpZ25hbHMgaW4ga2lsbC5jCisqIGZpeGVzIGZvciB1c2VyIG5hbWUgbGVuZ3RoIGluIGxhc3QuYworCit1dGlsLWxpbnV4IDIuOWU6CisKKyogYWRkZWQgYSBmb3Jnb3R0ZW4gZGVjbGFyYXRpb24gdG8gbG9naW4uYyAoQ2hyaXN0aWFuIE95YXJ6dW4pCisKK3V0aWwtbGludXggMi45ZDoKKworKiBmaXhlZCBzZWdmYXVsdCBpbiB1bW91bnQgY2F1c2VkIGJ5IFdpbGNveCcgcGF0Y2ggKFN0ZWZmZW4gWmFobikKKyogYWRkZWQgbG56IHN0dWZmIHRvIGZkaXNrCisKK3V0aWwtbGludXggMi45YzoKKworKiByZWZpeGVkIFBBTSBzdHVmZiBpbiBsb2dpbi5jIHRoYXQgd2FzIGJyb2tlbiBpbiAyLjguCisKK3V0aWwtbGludXggMi45YjoKKworKiBzcGxpdCBSRUFETUUgaW50byBJTlNUQUxMIGFuZCBISVNUT1JZCisqIGFkZGVkIGEgc2VudGVuY2UgdG8gc3dhcG9uLjgKKyogYmVoYXZpb3VyIG9mIHdyaXRlIG9uIG5vbi1BU0NJSSBmaXhlZAorKiBod2Nsb2NrIGFkYXB0ZWQgdG8gc3Vydml2ZSBhIGZhaWxpbmcgbWt0aW1lKCkKKwordXRpbC1saW51eCAyLjlhOgorCisqIGFkZGVkIGFuIGluY2x1ZGUgdG8gbGliL215X3JlYm9vdC5jIHNvIHRoYXQgX19HTElCQ19fIGlzIGRlZmluZWQKKyogYWRkZWQgc2V0bG9jYWxlKCkgdG8gbG9naW4tdXRpbHMvY2hmbi5jCisqIGRvIG5vdCByZWNvbXB1dGUgTUFJTCBpbiBsb2dpbi11dGlscy9sb2dpbi5jCisKK3V0aWwtbGludXggMi45OgorCitISUdITElHSFRTIGZvciB2ZXJzaW9uIDIuOToKKworMSkgUmVtb3ZlZCBwcm9ncmFtczoKKyAgIC0gc3RyaW5ncy4gVGhlcmUgaXMgYSB2ZXJzaW9uIGluIGJpbnV0aWxzLgorICAgLSBmcmFnLiAoTW92ZWQgdG8gaGlzdG9yaWMgaW4gMi40LCBjcmVwdCBiYWNrIGluIDIuNS4gR29uZSBhZ2Fpbi4pCisxYSkgTm90IHlldCByZW1vdmVkIHByb2dyYW06CisgICAtIHNldGZkcHJtLiBJdCBhbHNvIGlzIGluIGZkdXRpbHMtNS4yICh3aXRoIGFuIGV4Y2VwdGlvbmFsbHkKKyAgICAgdWdseSBtYW4gcGFnZSkuCisxYikgUmVtb3ZlZCBkaXJlY3Rvcnk6CisgICAtIGJzZC4gKFRoZSByb3V0aW5lIGdldG9wdCgpIGlzIGluIGxpYmMuIGVycigpIG1vdmVkIHRvIGxpYi4pCisyKSBJbXByb3ZlbWVudHM6CisgICAtIGRkYXRlIGhhcyBiZWVuIGZpeGVkIHRvIGNvdW50IGRvd24gdG8gdGhlIG5ldywgcmlnaHQgWC1kYXkKKyAgIC0gbG9vayBpcyBub3cgd2lsbGluZyB0byBzZWFyY2ggbm9uLUVuZ2xpc2ggZGljdGlvbmFyaWVzCisgICAgIChpLmUuLCB1c2VzIGxvY2FsZSkKKyAgIC0gY2FsIG5vdyBrbm93cyB0aGF0IER1dGNoIGRheSBhYmJyZXZpYXRpb25zIGhhdmUgbGVuZ3RoIDIgb25seQorICAgLSBtY29va2llIGRvZXMgbm90IGJsb2NrIHdoZW4gbm8gcmFuZG9tIHN0dWZmIGlzIGF2YWlsYWJsZQorICAgLSBzaHV0ZG93biBnb3QgYSBjb25maWd1cmF0aW9uIGZpbGUgL2V0Yy9zaHV0ZG93bi5jb25mCisgICAtIGZkaXNrIG5vdyByZWFkcyBTR0kgZGlzayBsYWJlbHMgKHRoYW5rcyB0byBBbmRyZWFzIE5ldXBlcikKKyAgIC0gbWtzd2FwIG5vdyBrbm93cyBhYm91dCBuZXcgc3dhcCBhcmVhczsgbWtzd2FwLjggaGFzIGJlZW4gcmV3cml0dGVuCisgICAtIHVtb3VudCBrbm93cyBhYm91dCB1bW91bnQyKCkgYW5kIGZvcmNlZCB1bm1vdW50aW5nIG9mIG5mcyBtb3VudHMKKyAgICAgKGhvd2V2ZXIsIEkgZG9uJ3QgdGhpbmsgaXQgcmVhbGx5IHdvcmtzKQorICAgLSBtb3VudCBpcyBub3cgd2lsbGluZyB0byBoYW5kbGUgZmlsZSBuYW1lcyB3aXRoIGVtYmVkZGVkIHNwYWNlcworICAgLSBtb3VudCBjYW4gbm93IG1vdW50IHRoaW5ncyBieSBVVUlEIG9yIHZvbHVtZSBuYW1lCiszKSBVZ2xpZmljYXRpb25zOgorICAgLSBzd2FwLmggaGFzIGJlZW4gcmVwbGFjZWQgYnkgYSBwcml2YXRlIHN3YXBfY29uc3RhbnRzLmggc2luY2UKKyAgICAgPGxpbnV4L3N3YXAuaD4gZG9lcyBub3QgY29tcGlsZQorICAgLSByZWJvb3QgaGFzIGJlY29tZSBhIHByaXZhdGUgcm91dGluZSwgc2luY2UgbGliYzUgYW5kIGdsaWJjMiBjb25mbGljdAorICAgLSBhIG1rbWluaXgtMC4xIGRpcmVjdG9yeSBjb250YWlucyBzb21lIHBhdGNoZXMgdG8gbGV0IG1rZnMubWluaXgKKyAgICAgd29yayB1bmRlciBET1MuIChVbnRlc3RlZC4pCis0KSBOdW1lcm91cyBvdGhlciBzbWFsbCBjaGFuZ2VzLgorCisweEYpIFNlbmQgcXVlc3Rpb25zIGFuZC9vciBwYXRjaGVzIHRvIHV0aWwtbGludXhAbWF0aC51aW8ubm8KKwordXRpbC1saW51eCAyLjkgd2FzIHJlbGVhc2VkIGJ5IEFuZHJpZXMgQnJvdXdlciAtIGFlYkBjd2kubmwKK1RoZSBhZGRyZXNzIHV0aWwtbGludXhAbWF0aC51aW8ubm8gcmVhY2hlcyBSaWssIEFuZHJpZXMsIFBldGVyLAorTWljaGFlbCwgRXJpaywgTmljb2xhaSBhbmQgcG9zc2libHkgb3RoZXJzLiAgSHdjbG9jayBzdHVmZiBpcworZm9yd2FyZGVkIHRvIEJyeWFuLgorCit1dGlsLWxpbnV4IDIuODoKKworSElHSExJR0hUUyBmb3IgdmVyc2lvbiAyLjg6CisKKzEpIE5ldyBwcm9ncmFtczoKKyAgIC0gZ2V0b3B0KDEpIGJ5IEZyb2RvIExvb2lqYWFyZCByZXBsYWNlcyB0aGUgb2xkZXIgYnNkIGJhc2VkIHZlcnNpb24uCisgICAgIEtleXdvcmRzOiBCYWNrd2FyZCBjb21wYXRpYmxlLCBzdXBwb3J0cyAtLWxvbmcgb3B0aW9ucy4KKzEpIFJlbW92ZWQgcHJvZ3JhbXM6IAorICAgLSBjaHJvb3Q6IGlzIG5vIGxvbmdlciBpbiB1dGlsLWxpbnV4LiAgR2V0IGl0IGZyZWUgd2l0aCBHTlUgc2gtdXRpbHMKKyAgIC0gaG9zdGlkOiBOby1vbmUgY291bGQgZmlndXJlIG91dCB0aGUgcmlnaHQgd2F5IGZvciB0aGlzIHByb2dyYW0gdG8KKwkJd29yay4gIEFub3RoZXIgaG9zdGlkIHByb2dyYW0gaXMgaW5jbHVkZWQgaW4gcG9laWdsCisJCShzZWUgdGhlIExTTSwgUHJpbWFyeS1zaXRlOiBmdHAuZGFpbWkuYWF1LmRrIC9wdWIvbGludXgvcG9lKQorMikgVmFyaW91cyBwb3J0YWJpbGl0eSBlbmhhbmNlbWVudHMuICBBbW9uZyBvdGhlciB0aGluZ3MgaHdjbG9jayBub3cgd29ya3MKKyAgIGEgbG90IGJldHRlciBvbiBub24gSW50ZWwgYXJjaGl0ZWN0dXJlcy4gIFNob3VsZCBjb21waWxlIHdpdGggbGliYyA0LCA1CisgICBhbmQgNiBhcyB3ZWxsIGFzIG9sZCBhbmQgcmVjZW50IGtlcm5lbHMuICBQZW9wbGUgdXNpbmcgbm9uLWludGVsIGhhcmR3YXJlCisgICBhcmUgZW5jb3VyYWdlZCB0byBzZW5kIHBhdGNoZXMuCiszKSByZXYgbm93IG9ubHkgbGltaXRzIGxpbmVsZW5ndGggdG8gbWVtb3J5IGNhcGFjaXR5Cis0KSBkbWVzZyBub3cgdXNlcyBhIGJ1ZmZlciB0aGF0IG1hdGNoZXMgdGhlIGtlcm5lbCBidWZmZXIgaW4gc2l6ZSAoOEtCKQorCisKK3V0aWwtbGludXggMi43OgorCitISUdMSUdIVFMgZm9yIHZlcnNpb24gMi43OgorCisxKSB1dGlsLWxpbnV4IG5vdyBfcmVxdWlyZXNfIG5jdXJzZXMuICBTZXZlcmFsIHByb2dyYW1zIGFyZSBjb21wbGV0ZWx5CisgICBjb252ZXJ0ZWQgdG8gdXNlIHRlcm1pbmZvIChpbnN0ZWFkIG9mIHRlcm1jYXApLgorCisyKSBSZW1vdmVkIHByb2dhbXM6CisgICAtIGNsb2NrOiBEcm9wcGVkIGVudGlyZWx5LiAgVXNlIGh3Y2xvY2sgKGluY2x1ZGVkKS4KKyAgIC0gc3luYzogaXMgaW4gZ251IGZpbGV1dGlscy4KKyAgIC0gc2V0c2VyaWFsOiBJcyBiZWluZyBtYWludGFpbmVkIGJ5IFRlZCBUcydvLCBoZSByZWNvbW1lbmRzCisJc2V0c2VyaWFsLTIuMTIgKDIuMTMgaXMgYmFkIGx1Y2spCisgICAtIGNsZWFyOiBJbmNsdWRlZCBpbiBuY3Vyc2VzCisgICAtIGhvc3RuYW1lLCBkb21haW5uYW1lLCBkbnNkb21haW5uYW1lOiBJdCdzIGluIG5ldC11dGlscy4KKyAgIC0gbHBjbnRsLgorCiszKSBCdWdmaXhlcywgYWRkaXRpb25zOgorICAgLSBjZmRpc2s6IEEgbXVjaCBpbXByb3ZlZCB2ZXJzaW9uLiBBbGwga25vd24gYnVncyBoYXZlIGJlZW4gZml4ZWQuCisgICAtIHNmZGlzazogQSBjb21tYW5kIGxpbmUgZmRpc2sgdHlwZSB1dGlsaXR5LCBmb3JtZXJseSBjYWxsZWQgZmRpc2stMy4wNC4KKyAgIC0gU0VDVVJJVFk6IEFsbCBrbm93biBob2xlcyBpbiBsb2dpbiwgY2hmbiwgY2hzaCBhbmQgb3RoZXJzIGhhdmUgYmVlbgorICAgICBwbHVnZ2VkLiAgVVBHUkFERSBOT1cgaWYgeW91IGhhdmVuJ3QgYWxyZWFkeSBmaXhlZCB0aGVtIHlvdXJzZWxmLgorICAgLSBTaG91bGQgd29yayB3aXRoIGxpYmMgNCwgNSBhbmQgNiAoZ251bGliYyksIG9uIG02OGssIGludGVsLCBhbHBoYQorICAgICBhbmQgc3BhcmMuCisKKzQpIFByb2JsZW1zOgorICAgLSBUaGUgcnBjZ2VuIHRoYXQgY29tZXMgaW4gTmV0S2l0LUItMC4wOSBpcyBicm9rZW4uICBBdCBsZWFzdCBhcworICAgICBwYWNrYWdlZCB3aXRoIFJlZEhhdCA0LjIgKE5ldEtpdC1CLTAuMDktNikuICBUaGVyZSBhcmUgc2V2ZXJhbAorICAgICB3YXlzIHRvIGRlYWwgd2l0aCB0aGlzOgorICAgICAtIERvbid0IHJ1biBycGNnZW4sIHRoZSBuZWVkZWQgcHJlLWdlbmVyYXRlZCBzb3VyY2VzIGFyZSBpbmNsdWRlZAorICAgICAgIChuZnNtb3VudF94ZHIuYykuICBZb3UgbXVzdCBoYWNrIG1vdW50L01ha2VmaWxlIHRvIGRvIHRoaXMuCisgICAgIC0gRWRpdCB0aGUgc291cmNlIGVtaXR0ZWQgYnkgcnBjZ2VuIHNvIGl0IGNhbiBjb21waWxlLiAgVGhpcyBpcyB2ZXJ5CisgICAgICAgc2ltcGxlIGlmIHlvdSBrbm93IEMuCisgICAgIC0gRGlzYWJsZSB0aGUgTkZTIHBhcnRzIG9mIG1vdW50LiAgWW91IGhhdmUgdG8gZWRpdCBtb3VudC9NYWtlZmlsZQorICAgICAgIHRvIGRvIHRoaXMuCisgICAgIC0gVXNlIHNvbWUgb3RoZXIgcnBjZ2VuLgorCit1dGlsLWxpbnV4IDIuNi4xCisKK1RoaXMgcmVsZWFzZSB3YXMgbmV2ZXIgbWFkZSBwdWJsaWMKKworU2VlIG5vdGVzIGZvciAyLjYgZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuCisKK1RoaXMgaXMgYSBpbmNyZW1lbnRhbCByZWxlYXNlIGNvbnRhaW5pbmcgc29tZSBmaXhlcy4gIEEgbmV3IHJlbGVhc2UKK3dpbGwgYmUgbWFkZSBsYXRlciBmaXhpbmcgdGhlIG91dHN0YW5kaW5nIGJ1Z3MuCistIFRoaW5ncyBjb21waWxlcyBhbmQgd29ya3MgYmV0dGVyIHdpdGggcmVjZW50IHJlbGVhc2VzIG9mIGtlcm5lbCwgCisgIG5jdXJzZXMsIGFuZCBzbyBmb3J0aDogZmRpc2ssIG1vcmUKKy0gU29tZSBmaXhlcyB0byBtYWtlIHRoaW5ncyBjb21waWxlIG91dCBvZiB0aGUgYm94IG9uIGFscGhhcy4KKy0gVGhlcmUgaGFzIGJlZW4gcmVwb3J0ZWQgYSBwcm9ibGVtIHdpdGggbG9naW4gYW5kIC9ldGMvdXNlcnR0eS4gIEl0CisgIHNob3VsZCBiZSBmaXhlZC4gIElmIHlvdSBzdGlsbCBoYXZlIHByb2JsZW1zIGdldCBhIHJlY2VudCBNQUtFREVWIGFuZCAKKyAgdXNlIGl0IHRvIG1ha2UgbmV3IHR0eSBkZXZpY2VzLiAgVGhleSB3ZXJlIHJlbnVtYmVyZWQgc29tZXRpbWUgZHVyaW5nCisgIHRoZSAxLjMgcGhhc2Ugb2YgdGhlIGtlcm5lbC4KKy0gaXBjcyBub3cgZGlzcGxheXMgdGhlIGtleSBvZiB0aGUgc3RydWN0dXJlcy4KKy0gQSAoaGFybWxlc3M/KSBvdmVyZmxvdyBidWcgd2FzIGZpeGVkIGluIGxvZ2luLgorCitPdXRzdGFuZGluZyBidWdzOgorLSBsb2dpbi9nZXR0eSBoYXMgYSBkZW5pYWwgb2Ygc2VydmljZSBwcm9ibGVtLgorLSBTZXZlcmFsIHBsYWNlcyBuZWVkcyBhIGJpdCBtb3JlIHBvbGlzaC4KKy0gVGhlcmUgYXJlIGEgX2xvdF8gb2Ygbm9uZmF0YWwgd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgbW91bnQuICBUaGlzIHdpbGwKKyAgbm90IG5lY2VzYXJpbHkgYmUgZml4ZWQuCisKKwordXRpbC1saW51eCAyLjYKKworSElHSExJR0hUUyBmb3IgdmVyc2lvbiAyLjY6CisKKzApIFRoZSBmaXJzdCByZWxlYXNlIHdpdGggbWUgYXQgdGhlIGhlbG0uICBQTEVBU0UgU0VORCBQQVRDSEVTIEFORAorICAgVVBEQVRFUyBUTzogdXRpbC1saW51eEBtYXRoLnVpby5uby4KKworMSkgUmVtb3ZlZCBwcm9ncmFtczoKKyAgIC0gbWQ1c3VtLCBkc3BsaXQ6IGF2YWlsYWJsZSBpbiBHTlUgdGV4dHV0aWxzLgorICAgLSBzeXNsb2dkOiBTeXNrbG9nZCBpcyBub3cgcHJlZmVyZWQuICBJdCBpcyBhdmFpbGFibGUgYXQgCisJdHN4LTExLm1pdC5lZHU6L3B1Yi9zb3VyY2VzL3NiaW4KKwlzdW5zaXRlLnVuYy5lZHU6L3B1Yi9MaW51eC9zeXN0ZW0vRGFlbW9ucworCisyKSBCdWdmaXhlcywgYWRkaXRpb25zOiAKKyAgIC0gU0VDVVJJVFk6IEFsbCBrbm93biBob2xlcyBpbiBtb3VudCBoYXZlIGJlZW4gZml4ZWQuICBVUEdSQURFIE5PVworICAgICBpZiB5b3UgaGF2ZW4ndCBhbHJlYWR5IQorICAgLSBQb3J0YWJpbGl0eSBlbmhhbmNtZW50cyB0byB0aGUgbWluaXggZmlsZXN5c3RlbSB1dGlscyAobTY4ayBhbmQKKyAgICAgQXJtIHBhdGNoZXMpLgorICAgLSBwYXNzd2QvY2hzaC9jaGZuIHdpbGwgbm90IG1lc3MgdXAgdGhlIHBhc3N3ZCBmaWxlIG9uIGEgTklTIG1hY2hpbmUKKyAgIC0gb3RoZXJzIHRvbyBudW1lcm91cyB0byBlbnVtZXJhdGUuCisKKzMpIE5ldyBwcm9ncmFtczogCisgICAtIHZpZ3IgKGl0J3MgbGlrZSB2aXB3KQorICAgLSBJbnRyb2R1Y2luZyBod2Nsb2NrLiAgQSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBsYXRlc3QgYXZhaWxhYmxlCisgICAgIGNsb2NrIHNvdXJjZS4gIEl0IHN1cHBvcnRzIGludGVsL0NNT1MsIC9kZXYvcnRjIGFuZCBsaW51eC9tNjhrCisgICAgIHN5c3RlbSBjbG9jayBpbnRlcmZhY2VzLiAgQ2xvY2sgc3VwcG9ydHMgdGhlIHNhbWUgdGhpbmdzIGJ1dCBpcyBub3cKKyAgICAgb2Jzb2xldGUgYW5kIHdpbGwgbm90IGJlIHByZXNlbnQgaW4gdGhlIG5leHQgcmVsZWFzZS4gIFN0YXJ0IHVzaW5nCisgICAgIGh3Y2xvY2sgbm93LiAgUGxlYXNlLgorCisKK3V0aWwtbGludXggMi41CisKK0hJR0hMSUdIVFMgZm9yIHZlcnNpb24gMi41OgorMCkgTmljb2xhaSBMYW5nZmVsZHQgaXMgdGFraW5nIG92ZXIgbWFpbnRlbmFuY2Ugb2YgdXRpbC1saW51eCwgd2l0aCB0aGUKKyAgIGhlbHAgb2YgYSBmZXcgb3RoZXJzIChNaWNoYWVsIEsuIEpvaG5zb24sIEFuZHJpZXMgQnJvdXdlciwgYW5kIFJpaworICAgRmFpdGgpLgorCisgICBQTEVBU0UgU0VORCBQQVRDSEVTIEFORCBVUERBVEVTIFRPOiB1dGlsLWxpbnV4QG1hdGgudWlvLm5vCisKKzEpIFRoZSBmb2xsb3dpbmcgcGFja2FnZXMgaGF2ZSBiZWVuIHJlbW92ZWQuICBQbGVhc2UgdXNlIHRoZSB1cC10by1kYXRlLAorICAgY2Fub25pY2FsIHZlcnNpb25zIG9mIHRoZXNlIHBhY2thZ2VzIGZyb20gdGhlIGxpc3RlZCBwbGFjZXM6CisKKyAgICB0aW1lem9uZSBzdXBwb3J0ICgvdXNyL2xpYi96b25laW5mbywgbGliei5hLCB6aWMsIHpkdW1wKToKKyAgICAgICAgZWxzaWUubmNpLm5paC5nb3Y6L3B1Yi90emNvZGU5NWQudGFyLmd6CisgICAgICAgIGVsc2llLm5jaS5uaWguZ292Oi9wdWIvdHpkYXRhOTVoLnRhci5negorICAgIE1BS0VERVYtQzoKKyAgICAgICAgc3Vuc2l0ZS51bmMuZWR1Oi9wdWIvTGludXgvc3lzdGVtL0FkbWluL01BS0VERVYtQy0xLjUudGFyLmd6CisgICAgTUFLRURFVjoKKyAgICAgICAgc3Vuc2l0ZS51bmMuZWR1Oi9wdWIvTGludXgvc3lzdGVtL0FkbWluL01BS0VERVYtMi4yLnRhci5negorICAgIG1kNXN1bToKKyAgICAgICAgcHJlcC5haS5taXQuZWR1Oi9wdWIvZ251L3RleHR1dGlscy0xLjMudGFyLmd6CisgICAgICAgIFtUaGUgR05VIHZlcnNpb24gaXMgbm93IGNvbXBhdGlibGUgd2l0aCB0aGUgUGx1bWIvTGFua2VzdGVyCisgICAgICAgIHZlcnNpb24uXQorICAgIGtzeW1vb3BzOgorICAgICAgICBOb3cgYnVuZGxlZCB3aXRoIHRoZSBrZXJuZWwgaW4gbGludXgvc2NyaXB0cy4KKworMikgdXBkYXRlX3N0YXRlIGhhcyBiZWVuIHJlbW92ZWQKKzMpIGZkaXNrIG5vdyBzdXBwb3J0cyBOZXRCU0QgZGlza2xhYmVscyBjb3VydGVzeSBvZiBCZXJuaGFyZCBGYXN0ZW5yYXRoCisgICA8ZmFzdGVuQGF0aGVuZS5pbmZvcm1hdGlrLnVuaS1ib25uLmRlPiAoYW5kID4gOEdCIGRpc2tzLCBjb3VydGVzeSBvZgorICAgQW5kcmllcyBCcm91d2VyKQorNCkgbW91bnQgaW1wcm92ZWQgLS0gbWFueSBwYXRjaGVzIGZyb20gQW5kcmllcyBCcm91d2VyIGZvciBncmVhdGx5IGltcHJvdmVkCisgICBlcnJvciByZXBvcnRpbmcKKzUpIGRkYXRlLCBjaGtkdXBleGUsIGFuZCBvdGhlciBwcm9ncmFtcyBoYXZlIGJlZW4gaW1wcm92ZWQgYW5kIGJ1ZyBmaXhlZAorNikgdXRpbC1saW51eCBpcyBub3cgYSBzb3VyY2Utb25seSBkaXN0cmlidXRpb24KKzcpIG1jb29raWUgZ2VuZXJhdGVzIGJldHRlciByYW5kb20gbnVtYmVycyBhbmQgd2lsbCB1c2UgL2Rldi9yYW5kb20gb3IKKyAgIC9kZXYvYXVkaW8gaWYgYXZhaWxhYmxlCis4KSBjaGZuLCBjaHNoLCBwYXNzd2QsIGFuZCB2aXB3IGhhdmUgYmVlbiB1cGRhdGVkIHdpdGggc2VjdXJpdHkgcGF0Y2hlcworICAgZnJvbSBaZWZyYW0gPEEuTWFpbkBkY3Mud2Fyd2ljay5hYy51az4uICBOb3csIHRoZXkgYWxsIHVzZSB0aGUgc2FtZQorICAgbG9ja2luZywgYW5kIHNldmVyYWwgc2VjdXJpdHkgaG9sZXMgaGF2ZSBiZWVuIHBhdGNoZWQuICBGdXJ0aGVyLCBjaHNoCisgICBhbmQgY2hmbiBjYW4gYmUgY29uZmlndXJlZCBhdCBjb21waWxlIHRpbWUgdG8gcmVxdWlyZSBhIHBhc3N3b3JkIGJlZm9yZQorICAgdXBkYXRlcyBhbmQgY2hzaCBjYW4gYmUgY29uZmlndXJlZCB0byBvbmx5IHVzZSBzaGVsbHMgZnJvbSAvZXRjL3NoZWxscy4KKyAgICAgICAgCisKK0hJR0hMSUdIVFMgZm9yIHZlcnNpb24gMi40ICgyLjMgd2FzIG5ldmVyIHJlbGVhc2VkKToKKzApIE1pY2hhZWwgSy4gSm9obnNvbiA8am9obnNvbm1AbmlnZWwudm5ldC5uZXQ+IGlzIHRoZSBpbnRlcmltIG1haW50YWluZXIKKyAgIHdoaWxlIFJpayBGYWl0aCBpcyB3b3JraW5nIG9uIFBoRCB3b3JrLgorMSkgbG9naW4gbm93IG1ha2VzIHRoZSBsb2dpbiB0dHkgbW9kZSA2MDAgYW5kIHBsYWNlcyBpdCBpbiBncm91cCAidHR5IgorMikgd2FsbCwgYW5kIHdyaXRlIHdpbGwgbm90IHdyaXRlIGRhbmdlcm91cyBlc2NhcGUgc2VxdWVuY2VzCiszKSB3YWxsIGFuZCB3cml0ZSBjYW4gYmUgcnVuIHNldGdpZCAidHR5Ii4gIElmIHV0aWwtbGludXggaXMgY29tcGlsZWQgZm9yCisgICB0aGlzIG9wdGlvbiwgIm1lc2cgeSIgd2lsbCBvbmx5IHNldCBncm91cCB3cml0ZSBpbnN0ZWFkIG9mIGdyb3VwL290aGVyCisgICB3cml0ZS4KKzQpIGZkaXNrIGFuZCBjZmRpc2sgaGF2ZSBiZWVuIHBhdGNoZWQgd2l0aCB0aGUgbGF0ZXN0IGxsc2Vlay5jLiAgQWx0aG91Z2ggSQorICAgaGFkIGEgbG90IG9mIGJ1ZyByZXBvcnRzIGFib3V0IGZkaXNrIGZyb20gdXRpbC1saW51eC0yLjIsIEkgd2FzIHVuYWJsZQorICAgdG8gcmVwcm9kdWNlIGFueSBvZiB0aGUgcHJvYmxlbXMuICBTb21lIG9mIHRoZSBwcm9ibGVtcyBhcHBlYXJlZCB0byBiZQorICAgcmVsZWF0ZWQgdG8gYSBmYWlsdXJlIHRvIHJlYm9vdCB0aGUgbWFjaGluZSBhZnRlciBjaGFuZ2luZyB0aGUgcGFydGl0aW9uCisgICB0YWJsZSwgYW5kIHNvbWUgbWF5IGhhdmUgYmVlbiBkdWUgdG8gYSBzcGVjaWZpYyBrZXJuZWwgcmV2aXNpb24gcHJvYmxlbS4KKyAgIEhvd2V2ZXIsIHRoaXMgZG9lc24ndCBzZWVtIHRvIGFjY291bnQgZm9yIGFsbCBvZiB0aGUgYnVnIHJlcG9ydHMgLS0gaWYKKyAgIHRoaXMgdmVyc2lvbiBnaXZlcyB5b3UgcHJvYmxlbSwgcGxlYXNlIHNlbmQgYXMgY29tcGxldGUgYSBidWcgcmVwb3J0IGFzCisgICBwb3NzaWJsZS4KKzUpIGNoa2R1cGV4ZSBmcm9tIE5pY29sYWkgTGFuZ2ZlbGR0IChqYW5sQGlmaS51aW8ubm8pCis2KSBjdHJsYWx0ZGVsIG5vdyBpbnN0YWxscyBpbnRvIC9zYmluIGluc3RlYWQgb2YgL3Vzci9zYmluCis3KSBta2ZzIHJlcGxhY2VtZW50IGZyb20gUm9uIFNvbW1lbGluZyAoc29tbWVsQHNjaS5rdW4ubmwpCis4KSBscGNudGwgcmVtb3ZlZC4gIFVzZSB0dW5lbHAgaW5zdGVhZC4KKzkpIGtzeW1vb3BzIGZyb20gR3JlZyBNY0dhcnkgPGdrbUBtYWdpbGxhLmNpY2hsaWQuY29tPgorMTApIG1rZnMubWluaXggbm93IGNsZWFycyB0aGUgZmlyc3QgNTEyIGJ5dGVzIG9mIHRoZSBmaWxlIHN5c3RlbSBzbyB0aGF0CisgICAgTWluaXggZGlza3Mgd29uJ3QgYmUgY29uZnVzZWQgd2l0aCBNU0RPUyBkaXNrcyAoRGFuaWVsIFF1aW5sYW4KKyAgICAocXVpbmxhbkB5Z2dkcmFzaWwuY29tKSkKKzExKSBta3N3YXAgc2hvdWxkIG5vdyB3b3JrIG9uIGFuIEFscGhhIHJ1bm5pbmcgTGludXgKKzEyKSBmcmFnIHJlbW92ZWQuICBTZWUKKyAgICBzdW5zaXRlLnVuYy5lZHU6L3B1Yi9MaW51eC9zeXN0ZW0vRmlsZXN5c3RlbXMvZGVmcmFnLTAuNi50YXIuZ3ogZm9yIHRoZQorICAgIGxhdGVzdCB2ZXJzaW9uLgorMTMpIG1vdW50IHBhdGNoZXMgZnJvbSBBbmRyaWVzLkJyb3V3ZXJAY3dpLm5sIGFuZCBEYW4gUXVpbmxhbgorICAgIChxdWlubGFuQHlnZ2RyYXNpbC5jb20pLgorMTQpIE1BS0VERVYgYW5kIE1BS0VERVYtQyB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgdmVyc2lvbnMuCisxNSkgUGF0aHMgdXBkYXRlZCBmb3IgRlNTVE5EIDEuMi4gIFRoaXMgbWVhbnMgdGhhdCB5b3UgbWF5IG5lZWQgdG8gbWFrZQorICAgIHNvbWUgbGlua3MuICBUaGUgbGlua3MgeW91IG5lZWQgdG8gbWFrZSB3ZSBzeXN0ZW0gZGVwZW5kZW50LiAgVGhlCisgICAgdWx0aW1hdGUgZ29hbCBpcyB0byByZW5hbWUgL3Zhci9hZG0gdG8gL3Zhci9sb2cgYW5kIGhhdmUgYSBzeW1ib2xpYworICAgIGxpbmsgZnJvbSAvdmFyL2FkbSB0byAvdmFyL2xvZyBkdXJpbmcgdGhlIHRyYW5zaXRpb24gcGVyaW9kLiAgSWYgeW91CisgICAgYXJlIHJ1bm5pbmcgYW4gRUxGIHN5c3RlbSwgeW91IHByb2JhYmx5IHdvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcuICBUaGUKKyAgICBib3R0b20gbGluZSBpcyB0aGF0IHRoZSBmb2xsb3dpbmcgZmlsZXMgbXVzdCBleGlzdCBvciBiZSBwb2ludGVycyB0bworICAgIHRoZSBvbGQgdmVyc2lvbiAodXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBhLm91dCBsaWJyYXJpZXMpOgorCisgICAgICAgICAgICAgTmV3ICAgICAgICAgICAgICAgICBPbGQKKworICAgICAgICAvdmFyL2xvZy93dG1wICAgICAgIC92YXIvYWRtL3d0bXAKKyAgICAgICAgL3Zhci9sb2cvbGFzdGxvZyAgICAvdmFyL2FkbS9sYXN0bG9nCisgICAgICAgIC92YXIvcnVuL3V0bXAgICAgICAgL3Zhci9hZG0vdXRtcAorCitISUdITElHSFRTIGZvciB2ZXJzaW9uIDIuMjoKKzEpIFRoaXMgaXMgcHJpbWFyaWx5IGEgcXVpY2sgYnVnLWZpeCByZWxlYXNlIGZvciB2ZXJzaW9uIDIuMQorMikgbWtmcyB3cmFwcGVyIGFkZGVkIGJhY2sgaW4sIHNpbmNlIGUyZnNwcm9ncyBvbmx5IHN1cHBsaWVzIGFuIGZzY2sgd3JhcHBlcgorMykgc2VsZWN0aW9uIHJlbW92ZWQsIHNpbmNlIHNvbWVvbmUgYXBwZWFycyB0byBiZSBtYWludGFpbmluZyBpdCBub3cuICBTZWUKKyAgIHN1bnNpdGUudW5jLmVkdTovcHViL2xpbnV4L2tlcm5lbC9wYXRjaGVzL2NvbnNvbGUgZm9yIHJlY2VudCBzb3VyY2VzLgorICAgRm9yIHRoZSB0aW1lIGJlaW5nLCBJJ20ga2VlcGluZyBhIGNvcHkgaW4gdGhlIGhpc3RvcmljIHN1YmRpcmVjdG9yeSBvZgorICAgdXRpbC1saW51eC4gIEEgIm1ha2UgaW5zdGFsbCIgc2hvdWxkIHdvcmsgZmluZCBmcm9tIHdpdGhpbiB0aGF0CisgICBkaXJlY3RvcnkuCis0KSBOb3RlIHRoYXQgb3RoZXIgZmxvcHB5IHV0aWxpdGllcyBhcmUgYXZhaWxhYmxlIGZyb206CisgICAgZnRwLmltYWcuZnI6cHViL0xpbnV4L1pMSUJDL2ZkdXRpbHMvZmR1dGlscy00LjEuc3JjLnRhci5negorICAgIHN1bnNpdGUudW5jLmVkdTovcHViL0xpbnV4L3N5c3RlbS9NaXNjL2ZkdXRpbHMtNC4xLnNyYy50YXIuZ3oKKyAgICB0c3gtMTEubWl0LmVkdTovcHViL2xpbnV4L3NvdXJjZXMvc2Jpbi9mZHV0aWxzLTQuMS5zcmMudGFyLmd6CisKKworSElHSExJR0hUUyBmb3IgdmVyc2lvbiAyLjE6CisKKzEpIERpcmVjdG9yeSBzdHJ1Y3R1cmUgcmVhcnJhbmdlLCB3aXRoIGNvbmZpZ3VyYXRpb24gc3VwcG9ydCBmb3IgdGhvc2Ugd2hvCisgICB1c2Ugc2hhZG93IHBhc3N3b3JkcyBhbmQgU3lzdGVtIFYgaW5pdCAobm8gc3VwcG9ydCBpcyBwcm92aWRlZCBmb3IgdGhlc2UKKyAgIHRoaW5ncywgYnV0IHlvdXIgdXRpbGl0aWVzIHdvbid0IGdldCBvdmVyd3JpdHRlbiBpZiB5b3UgZG8gYSAibWFrZQorICAgaW5zdGFsbCIgYWZ0ZXIgeW91IHByb3Blcmx5IGVkaXQgTUNPTkZJRykuCisyKSBmZGlzayBhbmQgY2ZkaXNrIHNob3VsZCB3b3JrIGFzIGV4cGVjdGVkIHdpdGggMkdCKyBkaXNrIGRyaXZlcworMykgQXMgdXN1YWwsIGxvdHMgb2Ygc3R1ZmYgd2FzIHVwZGF0ZWQgYW5kIGFkZGVkLCBpbmNsdWRpbmcgbW91bnQsIHZpcHcsCisgICByZWFkcHJvZmlsZQorNCkgU29tZSBzdHVmZiB3YXMgYWxzbyBkZWxldGVkLCBhbmQgY2FuIG5vdyBiZSBmb3VuZCBlbHNld2hlcmU6CisgICAgZnNjayB3cmFwcGVyOiB0c3gtMTEubWl0LmVkdTovcHViL2xpbnV4L0FMUEhBL2V4dDJmcy9lMmZzcHJvZ3MqCisgICAgcHdkLCBzdTogcHJlcC5haS5taXQuZWR1Oi9wdWIvZ251L3NoLXV0aWxzKgorICAgIGVkOiBwcmVwLmFpLm1pdC5lZHU6L3B1Yi9nbnUvZWQqCisgICAgb2Q6IHByZXAuYWkubWl0LmVkdTovcHViL2dudS90ZXh0dXRpbHMqCisgICAgdXVkZWNvZGUvdXVlbmNvZGU6IHByZXAuYWkubWl0LmVkdTovcHViL2dudS9zaGFydXRpbHMqCisgICAgYmRmbHVzaC91cGRhdGU6IGZ0cC5mdW5ldC5maTovcHViL09TL0xpbnV4L1BFT1BMRS9MaW51cy92MS4xL2JkZmx1c2gqCisKKworCitQQVJUSUFMIEhJU1RPUlkgT0YgVVRJTC1MSU5VWDoKKworYnNkOgorICAgIE5vdGhpbmcgaW4gdGhpcyBkaXJlY3RvcnkgZ2V0cyBpbnN0YWxsZWQsIGJ1dCBzb21lIEJTRCBwcm9ncmFtcyBuZWVkCisgICAgdGhpcyBzdXBwb3J0OgorICAgICAgICBlcnIuYzogOC4xIChCZXJrZWxleSkgNi80LzkzCisgICAgICAgIGVyci5oOiA4LjEgKEJlcmtlbGV5KSA2LzIvOTMKKyAgICAgICAgZ2V0b3B0LmM6IDQuMTMgKEJlcmtlbGV5KSAyLzIzLzkxCisgICAgICAgIHBhdGhuYW1lcy5oOiA1LjMgKEJlcmtlbGV5KSA1LzkvODkgd2l0aCBleHRlbnNpdmUgbW9kaWZpY2F0aW9ucyBmb3IKKyAgICAgICAgICAgICAgICAgICAgIExpbnV4CisKK2Rpc2stdXRpbHM6CisgICAgY2ZkaXNrOiAwLjggQkVUQSAoPjJHQikgZnJvbSBLZXZpbiBFLiBNYXJ0aW4gKG1hcnRpbkBjcy51bmMuZWR1KSB3aXRoCisgICAgICAgICAgICBtb2RpZmljYXRpb25zIGZvciBkaXNrcyA+IDJHQi4KKyAgICAgICAgICAgIGZ0cC5jcy51bmMuZWR1Oi9wdWIvdXNlcnMvbWFydGluL2xpbnV4L2NmZGlzay0wLjgudGFyLmd6CisgICAgZmRmb3JtYXQ6IFdlcm5lciBBbG1lc2JlcmdlciAoYWxtZXNiZXJAbmVzc2llLmNzLmlkLmV0aHouY2gpLCB3aXRoCisgICAgICAgICAgICAgIG1vZGlmaWNhdGlvbnMgYnkgTWFyY2VsIE1vbCAobWFyY2VsQGR1dGVjYWQuZXQudHVkZWxmdC5ubCkpLgorICAgICAgICAgICAgICBMYXRlciwgdXBkYXRlZCB3aXRoIGEgU2VwdGVtYmVyIDE5OTIgdmVyc2lvbiBieSBXZXJuZXIuCisgICAgZmRpc2s6IEEuIFYuIExlIEJsYW5jIChMZUJsYW5jQG1jYy5hYy51aykgZmRpc2sgMS41IHJlbGVhc2UsIHdpdGgKKyAgICAgICAgICAgcGF0Y2hlZCBmcm9tIEtldmluIE1hcnRpbiBmb3IgRE9TIGFuZCBPUy8yIGNvbXBhdGliaWxpdHkgKDEuNWEpOworICAgICAgICAgICBSaWsgRmFpdGggKDEuNWIsIDIuMCkuCisgICAgZnNjay5taW5peCwgbWtmcy5taW5peDogTGludXMgVG9ydmFsZHMsIHdpdGggbW9kaWZpY2F0aW9ucyBieTogUmlrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFpdGggKGZhaXRoQGNzLnVuYy5lZHUpLCBTY290dCBIZWF2bmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNkaEBwby5jd3J1LmVkdSksIERyLiBXZXR0c3RlaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3JlZyV3aW5kLnV1Y3BAcGxhaW5zLm5vZGFrLmVkdSksIERhbmllbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1aW5sYW4gKHF1aW5sYW5AeWdnZHJhc2lsLmNvbSkuCisgICAgbWtmczogRGF2aWQgRW5nZWwgKGRhdmlkQG9kcy5jb20pIGFuZCBGcmVkIE4uIHZhbiBLZW1wZW4KKyAgICAgICAgICAod2FsdGplQHVXYWx0Lk5MLk11Z25ldC5PUkcpCisgICAgICAgICAgVmVyc2lvbiAxLjkgZnJvbSBSb24gU29tbWVsaW5nIChzb21tZWxAc2NpLmt1bi5ubCkKKyAgICBta3N3YXA6IExpbnVzIFRvcnZhbGRzLCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgTWlrZSBKYWdkaXMKKyAgICAgICAgICAgIChqYWdneUBwdXJwbGV0LmRlbW9uLmNvLnVrLiApCisgICAgICAgICAgICBWZXJzaW9uIGZvciBBbHBoYSBmcm9tCisgICAgICAgICAgICBjYWdlLmNzLmFyaXpvbmEuZWR1Oi9wdWIvZGF2aWRtL2xpbnV4L21rc3dhcC1heHAtOTUwNTAzLnRhci5negorICAgIHNldGZkcHJtOiBXZXJuZXIgQWxtZXNiZXJnZXIgKGFsbWVzYmVyQG5lc3NpZS5jcy5pZC5ldGh6LmNoKQorICAgICAgICAgICAgICBOb3RlIHRoYXQgbW9yZSBmbG9wcHkgdXRpbGl0aWVzIGFyZSBhdmFpbGFibGUgZnJvbToKKyAgICAgICAgICAgICAgICBmdHAuaW1hZy5mcjpwdWIvTGludXgvWkxJQkMvZmR1dGlscy9mZHV0aWxzLTQuMS5zcmMudGFyLmd6CisgICAgICAgICAgICAgICAgc3Vuc2l0ZS51bmMuZWR1Oi9wdWIvTGludXgvc3lzdGVtL01pc2MvZmR1dGlscy00LjEuc3JjLnRhci5negorICAgICAgICAgICAgICAgIHRzeC0xMS5taXQuZWR1Oi9wdWIvbGludXgvc291cmNlcy9zYmluL2ZkdXRpbHMtNC4xLnNyYy50YXIuZ3oKKyAgICBsbHNlZWsuYzogZnJvbSBSZW15IENhcmQncyBlMmZzcHJvZ3MtMC41Yi50YXIuZ3ogKDIxTWFyOTUgdmVyc2lvbikgZnJvbToKKyAgICAgICAgICAgICAgICBzdW5zaXRlLnVuYy5lZHU6L3B1Yi9MaW51eC9zeXN0ZW0vRmlsZXN5c3RlbXMvZXh0MgorCitnYW1lczoKKyAgICBiYW5uZXI6ICg4LjMgKEJlcmtlbGV5KSA0LzIvOTQpCisgICAgICAgICAgICBmdHAuY2Ryb20uY29tOi9wdWIvYnNkLXNvdXJjZXMvNC40QlNELUxpdGUvdXNyL3NyYy91c3IuYmluCisKK2xvZ2luLXV0aWxzOgorICAgIGFnZXR0eTogVy4gWi4gVmVuZW1hLCBwb3J0ZWQgYnkgUGV0ZXIgT3JiYWVrIDxwb2VAZGFpbWkuYWF1LmRrPi4KKyAgICAgICAgICAgIGZ0cC5kYWltaS5hYXUuZGs6L3B1Yi9saW51eC9wb2UvcG9laWdsLTEuMzcudGFyLmd6CisgICAgY2hmbjogU2FsdmF0b3JlIFZhbGVudGUgPHN2YWxlbnRlQGF0aGVuYS5taXQuZWR1PgorICAgIGNoc2g6IFNhbHZhdG9yZSBWYWxlbnRlIDxzdmFsZW50ZUBhdGhlbmEubWl0LmVkdT4KKyAgICBsYXN0OiA1LjExIHcveWVhciAoQmVya2VsZXkpIDYvMjkvODg7IFBvcnQgYnkgTWljaGFlbCBIYWFyZHQgd2l0aAorICAgICAgICAgIGNoYW5nZXMgYnkgUGV0ZXIgT3JiYWVrLgorICAgICAgICAgIGZ0cDovL2Z0cC5kYWltaS5hYXUuZGsvcHViL2xpbnV4L3BvZS9hZG11dGlsLTEuMTYudGFyLmd6CisgICAgbG9naW46IDUuNDAgKEJlcmtlbGV5KSA1LzkvODk7IHdpdGggcG9ydHMgYnkgTWljaGFlbCBHbGFkIGFuZCBQZXRlciBPcmJhZWsKKyAgICAgICAgICAgZnRwLmRhaW1pLmFhdS5kazovcHViL2xpbnV4L3BvZS9wb2VpZ2wtMS4zNy50YXIuZ3oKKyAgICBtZXNnOiA4LjIgKEJlcmtlbGV5KSAxLzIxLzk0CisgICAgICAgICAgZnRwLmNkcm9tLmNvbTovcHViL2JzZC1zb3VyY2VzLzQuNEJTRC1MaXRlL3Vzci9zcmMvdXNyLmJpbgorICAgIG5ld2dycDogTWljaGFlbCBIYWFyZHQsIHdpdGggbW9kaWZpY2F0aW9ucyBieSBQZXRlciBPcmJhZWsuCisgICAgICAgICAgICBmdHA6Ly9mdHAuZGFpbWkuYWF1LmRrL3B1Yi9saW51eC9wb2UvYWRtdXRpbC0xLjE2LnRhci5negorICAgIHBhc3N3ZDogUGV0ZXIgT3JiYWVrLCB3aXRoIHlwIG1vZGlmaWNhdGlvbnMgYnkgQWx2YXJvIE1hcnRpbmV6CisgICAgICAgICAgICBFY2hldmFycmlhIChhbHZhcm9AZW5hbm8uZXRzaXQudXBtLmVzKQorICAgICAgICAgICAgZnRwOi8vZnRwLmRhaW1pLmFhdS5kay9wdWIvbGludXgvcG9lL2FkbXV0aWwtMS4xNi50YXIuZ3oKKyAgICBzaHV0ZG93bjogUGV0ZXIgT3JiYWVrLCB3aXRoIG5ldyBtb2RpZmljYXRpb25zIGJ5IFN0ZXBoZW4gVHdlZWRpZSwgUmlrCisgICAgICAgICAgICAgIEZhaXRoLCBhbmQgRGF2ZSAoZ2VudHplbEBub3ZhLmVuZXQuZGVjLmNvbSkuCisgICAgICAgICAgICAgIGZ0cDovL2Z0cC5kYWltaS5hYXUuZGsvcHViL2xpbnV4L3BvZS9hZG11dGlsLTEuMTYudGFyLmd6CisgICAgc2ltcGxlaW5pdDogUGV0ZXIgT3JiYWVrCisgICAgICAgICAgICAgICAgZnRwLmRhaW1pLmFhdS5kazovcHViL2xpbnV4L3BvZS9wb2VpZ2wtMS4zNy50YXIuZ3oKKyAgICB2aXB3OiA1LjE2IChCZXJrZWxleSkgMy8zLzkxLCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgTWlrZSBHcnVwZW5ob2ZmCisgICAgICAgICAgPGthc2htaXJAdW1pYWNzLlVNRC5FRFU+IAorICAgIHdhbGw6IDguMiAoQmVya2VsZXkpIDExLzE2LzkzIChXaXRoIGNoYW5nZXMgc28gdGhhdCBkYW1hZ2luZyBlc2NhcGUKKyAgICAgICAgICBzZXF1ZW5jZXMgY2Fubm90IGJlIHNlbnQuKQorICAgICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KKworCittaXNjLXV0aWxzOgorICAgIGNhbDogOC40IChCZXJrZWxleSkgNC8yLzk0LCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgUmlrIEZhaXRoIGFuZAorICAgICAgICAgSGVpbkBzdHVkZW50LnR1LWNsYXVzdGhhbC5kZSAoSm9jaGVuIEhlaW4pLgorICAgICAgICAgZnRwLmNkcm9tLmNvbTovcHViL2JzZC1zb3VyY2VzLzQuNEJTRC1MaXRlL3Vzci9zcmMvdXNyLmJpbgorICAgIGNoa2R1cGV4ZTogVmVyc2lvbiAxLjIgZnJvbSAiTmljb2xhaSBMYW5nZmVsZHQiIDxqYW5sQGlmaS51aW8ubm8+CisgICAgY2xlYXI6IFJpayBGYWl0aAorICAgIGRkYXRlOiBEcnVlbCB0aGUgQ2hhb3RpYyBha2EgSmVyZW15IEpvaG5zb24gYWthIG1weXRob25AZ251LmFpLm1pdC5lZHUsCisgICAgICAgICAgIHdpdGggbW9kaWZpY2F0aW9ucyBieSBMZWUgSGFydmV5IE9zd2FsZCBTbWl0aCwgSy5TLkMuIGFuZAorICAgICAgICAgICBzdWJzdGFudGlhbCB1cGRhdGVzIGZyb20gUmV2LiBCcm8uIExlZSBIOi4gTzouIFNtaXRoLCBLWVRQCisgICAgZG9tYWlubmFtZTogUGV0ZXIgT3JiYWVrCisgICAgICAgICAgICBmdHAuZGFpbWkuYWF1LmRrOi9wdWIvbGludXgvcG9lL3BvZWlnbC0xLjM3LnRhci5negorICAgIGRzcGxpdDogRGF2aWQgQXJuc3RlaW4gKGFybnN0ZWluQG5ldGNvbS5jb20pCisgICAgICAgICAgICBnYXRla2VlcGVyLmRlYy5jb206L3B1Yi91c2VuZXQvY29tcC5zb3VyY2VzLm1pc2Mvdm9sdW1lNDAvZHNwbGl0CisgICAgZ2V0b3B0IChnZXRvcHRwcm9nKTogamh1bml4LmhjZi5qaHUuZWR1OgorICAgICAgICAgICAvcHViL3B1YmxpY19kb21haW5fc29mdHdhcmUvTmV0QlNEL3Vzci9zcmMvdXNyLmJpbi9nZXRvcHQKKwkgICByZXBsYWNlZCBieSBnZXRvcHQtMS4wLjMudGFyLmd6IGZyb20gRnJvZG8gTG9vaWphYXJkLAorCSAgIGZvdW5kIGF0IGh0dHA6Ly9odWl6ZW4uZGRzLm5sL35mcm9kb2wKKyAgICBob3N0aWQ6IE1pdGNoIERTb3V6YSAobS5kc291emFAbXJjLWFwdS5jYW0uYWMudWspCisgICAgICAgICAgICBmdHAuZGFpbWkuYWF1LmRrOi9wdWIvbGludXgvcG9lL3BvZWlnbC0xLjM3LnRhci5negorICAgIGhvc3RuYW1lL2Ruc2RvbWFpbm5hbWU6IFBldGVyIFRvYmlhcyA8dG9iaWFzQHNlcnZlci5ldC1pbmYuZmhvLWVtZGVuLmRlPgorICAgICAgICAgICAgICBUaGlzIHZlcnNpb24gKDEuNikgc2hvdWxkIGFsc28gYmUgYXZhaWxhYmxlIHNvb24gaW46CisgICAgICAgICAgICAgIG5pYy5mdW5ldC5maTovcHViL09TL0xpbnV4L1BFT1BMRS9MaW51cy9uZXQtc291cmNlL2Jhc2UvTmV0S2l0LUEqCisgICAga2lsbDogQlNEIHZlcnNpb24sIG1vZGlmaWVkIGJ5IFNhbHZhdG9yZSBWYWxlbnRlIDxzdmFsZW50ZUBtaXQuZWR1PgorICAgIGxvZ2dlcjogOC4xIChCZXJrZWxleSkgNi82LzkzLCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgUmlrIEZhaXRoCisgICAgICAgICAgICBmdHAuY2Ryb20uY29tOi9wdWIvYnNkLXNvdXJjZXMvNC40QlNELUxpdGUvdXNyL3NyYy91c3IuYmluCisgICAgbG9vay5jOiA4LjEgKEJlcmtlbGV5KSA2LzE0LzkzLCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgUmlrIEZhaXRoCisgICAgICAgICAgICBmdHAuY2Ryb20uY29tOi9wdWIvYnNkLXNvdXJjZXMvNC40QlNELUxpdGUvdXNyL3NyYy91c3IuYmluCisgICAgbWNvb2tpZTogUmlrIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorICAgIG1kNXN1bTogQnJhbmtpIExhbmtlc3RlciBhbmQgQ29saW4gUGx1bWIuICBUaGUgTUQ1IG1lc3NhZ2UtZGlnZXN0CisgICAgICAgICAgICBhbGdvcml0aG0gaXMgaW4gdGhlIFB1YmxpYyBEb21haW4uICBUaGlzIGltcGxlbWVudGF0aW9uCisgICAgICAgICAgICBjYWxjdWxhdGVzIG1lc3NhZ2UtZGlnZXN0IGluZm9ybWF0aW9uIG9ubHksIGFuZCBjYW4gTk9UIGJlIHVzZWQKKyAgICAgICAgICAgIGZvciBlbmNyeXB0aW9uLiAgVGhlcmVmb3JlIGl0IGlzIGV4cG9ydGFibGUgZnJvbSB0aGUgVVNBLgorICAgICAgICAgICAgT3JpZ2luYWwgc291cmNlcyBpbiB0aGUgTUlUIHZlcnNpb24gb2YgUEdQIDIuNi4yLgorICAgIG5hbWVpOiBSb2dlciBTLiBTb3V0aHdpY2ssIHdpdGggbW9kaWZpY2F0aW9ucyBieSBTdGV2ZSBUZWxsLgorICAgIHJlc2V0OiBSaWsgRmFpdGgKKyAgICBzY3JpcHQ6IDUuMTMgKEJlcmtlbGV5KSAzLzUvOTEsIHdpdGggbW9kaWZpY2F0aW9ucyBieSBSaWNrIFNsYWRrZXkKKyAgICAgICAgICAgIChqcnNAd29ybGQuc3RkLmNvbSksIEhhcmFsZCBLb2VuaWcKKyAgICAgICAgICAgIChrb2VuaWdAbm92YS50YXQucGh5c2lrLnVuaS10dWViaW5nZW4uZGUpLgorICAgIHNldHRlcm06IEdvcmRvbiBJcmxhbSAoZ29yZG9uaUBjcy51YS5vei5hdSksIHdpdGggbW9kaWZpY2F0aW9ucyBieQorICAgICAgICAgICAgIFBldGVyIE1hY0RvbmFsZCwgTWlrYSBMaWxqZWJlcmcgKGxpbGplYmVyQGNzLkhlbHNpbmtpLkZJKSwKKyAgICAgICAgICAgICBKb2huIFdhbGRlciAoai13YWxkZXJAdWl1Yy5lZHUpIFtmb3IgZG9zZW11XS4KKyAgICB0c29ydDogNS4zIChCZXJrZWxleSkgNi8xLzkwCisgICAgICAgICAgIHd1YXJjaGl2ZS53dXN0bC5lZHU6L21pcnJvcnMvNC4zLXJlbm8KKyAgICB3aGVyZWlzOiA1LjUgKEJlcmtlbGV5KSA0LzE4LzkxCisgICAgICAgICAgICAgd3VhcmNoaXZlLnd1c3RsLmVkdTovbWlycm9ycy80LjMtcmVubworICAgIHdyaXRlOiA4LjEgKEJlcmtlbGV5KSA2LzYvOTMsIHdpdGggbW9kaWZpY2F0aW9ucyBieSBNaWtlIEdydXBlbmhvZmYKKyAgICAgICAgICAgKGthc2htaXJAdW1pYWNzLnVtZC5lZHUpLiAgV2l0aCBjaGFuZ2VzIHNvIHRoYXQgZGFtYWdpbmcgZXNjYXBlCisgICAgICAgICAgIHNlcXVlbmNlcyBjYW5ub3QgYmUgc2VudC4KKyAgICAgICAgICAgZnRwLmNkcm9tLmNvbTovcHViL2JzZC1zb3VyY2VzLzQuNEJTRC1MaXRlL3Vzci9zcmMvdXNyLmJpbgorCisKK21vdW50OgorICAgIG1vdW50LCB1bW91bnQsIHN3YXBvbgorCisgICAgUmljayBTbGFka2V5IHB1dCB0b2dldGhlciB0aGUgbW91bnQtMC45OS42LnRhci5aIHBhY2thZ2UsIGFuZCBTdGVwaGVuCisgICAgVHdlZWRpZSBwcm92aWRlZCB1cGRhdGVzLiAgVGhlIHV0aWxpdGllcyB3ZXJlIG9yaWdpbmFsbHkgZnJvbSB0aGF0CisgICAgcGFja2FnZSAoYWxsIGFwcGVhciB0byBiZSBieSBEb3VnIFF1YWxlIChxdWFsZUBzYWF2aWsuY3Mud2lzYy5lZHUpLAorICAgIHdpdGggbW9kaWZpY2F0aW9ucyBieSBILiBKLiBMdSAoaGx1QGVlY3Mud3N1LmVkdSkgb24gMTEvMjUvOTI7IFJpY2sKKyAgICBTbGFka2V5IChqcnNAd29ybGQuc3RkLmNvbSkgaW4gSmFudWFyeSAxOTkzOyBhbmQgU3RlcGhlbiBUd2VlZGllCisgICAgPHNjdEBkY3MuZWQuYWMudWs+IG9uIDggT2N0b2JlciAxOTkzLiAgVGhpcyBkaXN0cmlidXRpb24gbW91bnQgbm93CisgICAgc3VwcG9ydHMgTkZTIHN0dWZmLiAgSSBoYXZlIG1vZGlmaWVkIHRoZSBtYW4gcGFnZXMuICBJIGhhdmUgYWxzbyBhZGRlZAorICAgIGEgc21hbGwgcGF0Y2ggZnJvbSBIYW1pc2ggR2xlbiBDb2xlbWFuICh0OTMzMDkzQG1pbnlvcy54eC5ybWl0Lk9aLkFVKQorICAgIHdoaWNoIHJlc3RvcmVzIHRoZSAtbyBzZW1hbnRpY3MuCisgICAgCisgICAgVXBkYXRlZCB3aXRoIFJpY2sgU2xhZGtleSdzIG1vdW50LTAuOTkuMTQudGFyLmd6IHBhY2thZ2UsIGFuZCB3aXRoCisgICAgZXh0cmEgcGF0Y2hlcyBmcm9tIFJpY2suICBBZGFtIEouIFJpY2h0ZXIgYWxsb3dlZCAtdCBvcHRpb24gdG8gYmUKKyAgICBvcHRpb25hbC4gUGF0cmljayBKLiBWb2xrZXJkaW5nICh2b2xrZXJkaUBtaGQxLm1vb3JoZWFkLm1zdXMuZWR1KSBhbmQKKyAgICBNaXRjaHVtIERTb3V6YSBib3RoIHByb3ZpZGVkIHBhdGNoZXMgdGhhdCBmaXhlZCB0aGUgKG51bGwpIHByb2JsZW0gd2hlbgorICAgIG5vdCB1c2luZyAtdC4gTWl0Y2h1bSBEU291emEKKyAgICAobWl0Y2hAbXJjLWFwcGxpZWQtcHN5Y2hvbG9neS5jYW1icmlkZ2UuYWMudWspIGFkZGVkIHN1cHBvcnQgZm9yIGxvb3AKKyAgICBkZXZpY2UgbW91bnRzLiBTZWJhc3RpYW4gTGVkZXJlcgorICAgIChsZWRlcmVyQG5leHQtcGMuaW5mb3JtYXRpay51bmktYm9ubi5kZSkgYWRkZWQgc3VwcG9ydCBmb3Igc2VuZGluZyBhbgorICAgIHVubW91bnQgUlBDIGNhbGwgdG8gdGhlIHNlcnZlciB3aGVuIGFuIE5GUy1maWxlc3lzdGVtIGlzIHVubW91bnRlZC4KKyAgICBTYW5kZXIgdmFuIE1hbHNzZW4gKHN2bUBrb3ptaXguaGFja3RpYy5ubCkgYWRkZWQgc3VwcG9ydCBmb3IgcmVtb3VudGluZworICAgIHJlYWRvbmx5IGZpbGUgc3lzdGVtcyByZWFkb25seS4gIE1pa2UgR3J1cGVuaG9mZgorICAgIDxrYXNobWlyQHVtaWFjcy5VTUQuRURVPiBhZGRlZCBhIHByb2JlIG9mIHRoZSBzdXBlcmJsb2NrIGZvciB0aGUgdHlwZQorICAgIGJlZm9yZSAvcHJvYy9maWxlc3lzdGVtcyBpcyBjaGVja2VkLiAgQW5kcmllcy5Ccm91d2VyQGN3aS5ubCBmaXhlZCB1cAorICAgIGVycm9yIHJlcG9ydGluZy4KKworICAgIFVwZGF0ZWQgd2l0aCBwYXRjaGVzIGZyb20gQW5kcmllcy5Ccm91d2VyQGN3aS5ubCBhbmQgRGFuIFF1aW5sYW4KKyAgICAocXVpbmxhbkB5Z2dkcmFzaWwuY29tKS4gIEFuZCBtb3JlIHBhdGNoZXMgZnJvbSBBbmRyaWVzIGFuZCBvdGhlcnMuCisKK2hpc3RvcmljL3NlbGVjdGlvbjogVGhlIGNvbXBsZXRlIHNlbGVjdGlvbi0xLjUgcGFja2FnZSwgYnkgQW5kcmV3IEhheWxldHQKKyAgICA8YWpoQGdlYy1tcmMuY28udWs+LCAxN3RoIEp1bmUgMTk5MywgaXMgaW5jbHVkZWQgaW4gdGhlIGhpc3RvcmljIHRyZWUuCisgICAgS2VybmVsIHBhdGNoZXMgYXJlIG5vIGxvbmdlciBuZWNlc3NhcnkgZm9yIG1vZGVybiBrZXJuZWxzLCBidXQgdGhlc2UKKyAgICB3ZXJlIHRpbnkgc28gSSBsZWZ0IHRoZW0gaW4gZm9yIGhpc3RvcmljYWwgcmVhc29ucy4gIFRoZSBNYWtlZmlsZSB3YXMKKyAgICBtb2RpZmllZCBmb3IgdGhpcyBkaXN0cmlidXRpb24uICBXaXRoIGNoYW5nZXMgZnJvbSBSaWNrIFNsYWRrZXkuCisKK3N5cy11dGlsczoKKyAgICBhcmNoOiBSaWsgRmFpdGggPGZhaXRoQGNzLnVuYy5lZHU+CisgICAgY2hyb290OiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICAgIGNsb2NrOiBPcmlnaW5hbGx5IGZyb20gdGhlIHRpbWVzcmMtMS4yLnRhci5aIHBhY2thZ2UsIENoYXJsZXMgSGVkcmljaywKKyAgICAgICAgICAgaGVkcmlja0Bjcy5ydXRnZXJzLmVkdSAoVjEuMCk7IFJvYiBIb29mdCwgaG9vZnRAY2hlbS5ydXUubmwKKyAgICAgICAgICAgKFYxLjEpOyBIYXJhbGQgS29lbmlnIChrb2VuaWdAbm92YS50YXQucGh5c2lrLnVuaS10dWViaW5nZW4uZGUpCisgICAgICAgICAgIChWMS4yKS4gIFdpdGggYWRkaXRpb25hbCBjaGFuZ2VzOiBIYW1pc2ggQ29sZW1hbgorICAgICAgICAgICAoaGFtaXNoQHpvdC5hcGFuYS5vcmcuYXUpIChWMS4yYSk7IEFsYW4gTW9kcmEKKyAgICAgICAgICAgKGFsYW5Ac3ByaS5sZXZlbHMudW5pc2EuZWR1LmF1IChWMS4zLCBWMS40KS4KKyAgICBjdHJsYWx0ZGVsOiBQZXRlciBPcmJhZWsgPHBvZUBkYWltaS5hYXUuZGs+CisgICAgICAgICAgICAgICAgZnRwOi8vZnRwLmRhaW1pLmFhdS5kay9wdWIvbGludXgvcG9lL2FkbXV0aWwtMS4xNi50YXIuZ3oKKyAgICBjeXR1bmU6IE5pY2sgU2ltaWNpc2ggKG5qc0BzY2lmaS5lbWkubmV0KSBhbmQgUmlrIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorICAgIGRtZXNnOiBUaGVvZG9yZSBUcydvICh0eXRzb0BhdGhlbmEubWl0LmVkdSk7IFJpY2sgU2xhZGtleQorICAgICAgICAgICAoanJzQHdvcmxkLnN0ZC5jb20pCisgICAgaXBjcm06IEZyb20gdGhlIGlwY2RlbHRhLnRhci56IGRpc3RyaWJ1dGlvbiBieSBrcmlzaG5hCisgICAgICAgICAgIGJhbGFzdWJAY2lzLm9oaW8tc3RhdGUuZWR1IG9uIDMvMTUvOTMuICBpcGMuaW5mbyBhbmQgaXBjLnRleGkKKyAgICAgICAgICAgYXJlIGFsc28gZnJvbSB0aGF0IGRpc3RyaWJ1dGlvbi4KKyAgICBpcGNzOiBBbHNvIGZyb20gdGhlIGlwY2RlbHRhLnRhci56IGRpc3RyaWJ1dGlvbiBieSBrcmlzaG5hCisgICAgICAgICAgYmFsYXN1YkBjaXMub2hpby1zdGF0ZS5lZHUsIHdpdGggcGF0Y2hlcyBmcm9tIE1pa2UgSmFnZGlzCisgICAgICAgICAgKGphZ2d5QHB1cnBsZXQuZGVtb24uY28udWspCisgICAga2JkcmF0ZTogUmlrIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KSwgd2l0aCBwYXRjaGVzIGZyb20KKyAgICAgICAgICAgICBBbmRyaWVzLkJyb3V3ZXJAY3dpLm5sIGFuZCBKb2huIEJvd21hbgorICAgICAgICAgICAgIChib3dtYW5AaGFnYXIucGgudXRleGFzLmVkdSkKKyAgICBrc3ltb29wczogMS43IGZyb20gR3JlZyBNY0dhcnkgPGdrbUBtYWdpbGxhLmNpY2hsaWQuY29tPgorICAgIHJkZXY6IGFsbWVzYmVyQG5lc3NpZS5jcy5pZC5ldGh6LmNoIChXZXJuZXIgQWxtZXNiZXJnZXIpLCB3aXRoCisgICAgICAgICAgbW9kaWZpY2F0aW9ucyBmcm9tIFBldGVyIE1hY0RvbmFsZCwgU3RlcGhlbiBUd2VlZGllCisgICAgICAgICAgKHNjdEBkY3MuZWQuYWMudWspLCBhbmQgRGF2ZSAoZ2VudHplbEBub3ZhLmVuZXQuZGVjLmNvbSkKKyAgICByZWFkcHJvZmlsZTogQWxlc3NhbmRybyBSdWJpbmkgZnJvbSByZWFkcHJvZmlsZS0yLjAudGFyLmd6CisgICAgcmVuaWNlOiA4LjEgKEJlcmtlbGV5KSA2LzkvOTMKKyAgICAgICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KKyAgICBzZXRzZXJpYWw6IE1pY2hhZWwgSy4gSm9obnNvbiAoam9obnNvbm1Ac3RvbGFmLmVkdSkgcmUtcmVsZWFzZWQgUmljaworICAgICAgICAgICAgICAgU2xhZGtleSdzIHNldHNlcmlhbCBpbiBKYW51YXJ5IDE5OTMsIHdpdGggY2hhbmdlcyBieQorICAgICAgICAgICAgICAgVGhlb2RvcmUgVHMnbyAodHl0c29AbWl0LmVkdSkuICBJIHRoaW5rIHRoYXQgVGhlb2RvcmUgYWxzbworICAgICAgICAgICAgICAgZGlkIGV4dGVuc2l2ZSBjaGFuZ2VzIGZvciB2ZXJzaW9uIDIuMDEsIEkgY2FuJ3QgZmluZCBhbnkKKyAgICAgICAgICAgICAgIG5vdGVzIGFib3V0IHRoaXMgaW4gdGhlIGRvY3VtZW50YXRpb24uIEhvd2V2ZXIsIFRoZW9kb3JlCisgICAgICAgICAgICAgICBUcydvICh0eXRzb0BBVEhFTkEuTUlULkVEVSkgcmVsZWFzZWQgdmVyc2lvbiAyLjEwLCBhbmQgdGhhdAorICAgICAgICAgICAgICAgaXMgbm93IGluY2x1ZGVkLgorICAgIHNldHNpZDogUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAgICBzbG46IE1pa2UgUGFya2VyIGFuZCBEYXZpZCBNYWNLZW56aWUgKGZyb20gTGludXgncyBsaWJjKQorICAgIHN5bmM6IE5pY2sgSG9sbG93YXksIHdpdGggdGhhbmtzIHRvIEphbWVzIEJvbmZpZWxkCisgICAgdHVuZWxwOiBNaWNoYWVsIEsuIEpvaG5zb24gKGpvaG5zb25tQG5pZ2VsLnZuZXQubmV0KQorCisKK3N5c2xvZ2Q6CisgICA1LjQ1IChCZXJrZWxleSkgMy8yLzkxCisKKyAgIE1vc3Qgb2YgdGhlIGNoYW5nZXMgZm9yIHN5c2xvZ2QgY29tZSBmcm9tIFJpY2sgU2xhZGtleQorICAgKGpyc0B3b3JsZC5zdGQuY29tKSwgYnV0IEknZCBsaWtlIHRvIHRoYW5rIG90aGVyIHBlb3BsZSB3aG8gc2VudCBpbgorICAgY2hhbmdlcyAod2hpY2ggdXN1YWxseSBnb3QgZm9yd2FyZGVkIHRvIFJpY2spOiBDYXJzdGVuIFBhZXRoCisgICAoY2FsbGVAY2FsbGUuaW4tYmVybGluLmRlKSBhbmQgS2F6IFNhc2F5YW1hIChrYXpAbGlsaWEuaWlqbmV0Lm9yLmpwKS4KKwordGV4dC11dGlsczoKKyAgICBjb2w6IDUuMyAoQmVya2VsZXkpIDIvMi85MTsgd2l0aCBwYXRjaGVzIGZyb20gQW5kcmllcy5Ccm91d2VyQGN3aS5ubAorICAgICAgICAgYW5kIENhcmwgQ2hyaXN0b2ZmZXJzb24gKGNjaHJpc0Bjb25uZWN0ZWQuY29tKQorICAgICAgICAgd3VhcmNoaXZlLnd1c3RsLmVkdTovbWlycm9ycy80LjMtcmVuby97YmluLHVzci5iaW59CisgICAgY29sY3J0OiA4LjEgKEJlcmtlbGV5KSA2LzYvOTMgKEJpbGwgSm95KQorICAgICAgICAgICAgZnRwLmNkcm9tLmNvbTovcHViL2JzZC1zb3VyY2VzLzQuNEJTRC1MaXRlL3Vzci9zcmMvdXNyLmJpbgorICAgIGNvbHJtOiA1LjQgKEJlcmtlbGV5KSA2LzEvOTAgKEplZmYgU2NocmllYm1hbikKKyAgICBjb2x1bW46IDguMyAoQmVya2VsZXkpIDQvMi85NAorICAgICAgICAgICAgZnRwLmNkcm9tLmNvbTovcHViL2JzZC1zb3VyY2VzLzQuNEJTRC1MaXRlL3Vzci9zcmMvdXNyLmJpbgorICAgIGhleGR1bXA6IDUuNSAoQmVya2VsZXkpIDYvMS85MAorICAgICAgICAgICAgIHd1YXJjaGl2ZS53dXN0bC5lZHU6L21pcnJvcnMvNC4zLXJlbm8ve2Jpbix1c3IuYmlufQorICAgIG1vcmU6IDUuMTkgKEJlcmtlbGV5KSA2LzI5Lzg4IChFcmljIFNoaWVuYnJvb2QsIEdlb2ZmIFBlY2ssIEpvaG4gRm9kZXJhcm8pCisgICAgcmV2OiA1LjIgKEJlcmtlbGV5KSAzLzIxLzkyOyB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgQ2hhcmxlcyBIYW5udW0KKyAgICAgICAgIChteWNyb2Z0QGdudS5haS5taXQuZWR1KSwgQnJpYW4gS29laG1zdGVkdCAoYnBrQGdudS5haS5taXQuZWR1KSwKKyAgICAgICAgIGJqZG91bWFAeHM0YWxsLm5sCisgICAgICAgICB3dWFyY2hpdmUud3VzdGwuZWR1Oi9taXJyb3JzLzQuMy1yZW5vL3tiaW4sdXNyLmJpbn0KKyAgICBzdHJpbmdzOiA1LjEwIChCZXJrZWxleSkgNS8yMy85MTsgd2l0aCBwYXRjaGVzIGZyb20gVml0b3IgRHVhcnRlCisgICAgICAgICAgICAgPHZhZEBmY3QudW5sLnB0PgorICAgICAgICAgICAgIHd1YXJjaGl2ZS53dXN0bC5lZHU6L21pcnJvcnMvNC4zLXJlbm8ve2Jpbix1c3IuYmlufQorICAgIHVsOiA4LjEgKEJlcmtlbGV5KSA2LzYvOTMKKyAgICAgICAgZnRwLmNkcm9tLmNvbTovcHViL2JzZC1zb3VyY2VzLzQuNEJTRC1MaXRlL3Vzci9zcmMvdXNyLmJpbgorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9SRUFETUUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNkMTNlMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL1JFQURNRQpAQCAtMCwwICsxLDk5IEBACisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbC1saW51eC1uZworICAgICAgICAgICAoZm9yayBvZiB1dGlsLWxpbnV4LCBiYXNlZCBvbiB2ZXJzaW9uIDIuMTMtcHJlNykKKworICAgICAgICAgdXRpbC1saW51eCBpcyBhIHJhbmRvbSBjb2xsZWN0aW9uIG9mIExpbnV4IHV0aWxpdGllcworCitXRUIgUEFHRToKKworICAgICBodHRwOi8va2VybmVsLm9yZy9+a3phay91dGlsLWxpbnV4LW5nLworCisKK01BSUxJTkcgTElTVDoKKworICAgICAgRS1NQUlMOiB1dGlsLWxpbnV4LW5nQHZnZXIua2VybmVsLm9yZworICAgICAgVVJMOiAgICBodHRwOi8vdmdlci5rZXJuZWwub3JnL3ZnZXItbGlzdHMuaHRtbCN1dGlsLWxpbnV4LW5nCisKKworRE9XTkxPQUQ6CisKKyAgICAgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLworCisKK1NPVVJDRSBDT0RFOgorCisgICAgICBXZWIgaW50ZXJmYWNlOgorICAgICAgICAgIGh0dHA6Ly9naXQua2VybmVsLm9yZy8/cD11dGlscy91dGlsLWxpbnV4LW5nL3V0aWwtbGludXgtbmcuZ2l0CisgICAgICBDaGVja291dDoKKyAgICAgICAgICBnaXQgY2xvbmUgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS91dGlscy91dGlsLWxpbnV4LW5nL3V0aWwtbGludXgtbmcuZ2l0IHV0aWwtbGludXgtbmcKKworTkxTIChQTyBUUkFOU0xBVElPTlMpOgorCisgICAgICBQTyBmaWxlcyBhcmUgbWFpbnRhaW5lZCBieToKKyAgICAgICAgICBodHRwOi8vdHJhbnNsYXRpb25wcm9qZWN0Lm9yZy9kb21haW4vdXRpbC1saW51eC1uZy5odG1sCisKK05FVVRSQUxJVFk6CisKKyAgICAgIFRoZSBzdHVmZiBpbiB1dGlsLWxpbnV4LW5nIHNob3VsZCBiZSByYXRoZXIgZGlzdHJpYnV0aW9uLW5ldXRyYWwuCisgICAgICBObyBSUE1zL0RFQnMvLi4uIGFyZSBwcm92aWRlZCAtIGdldCB5b3VycyBmcm9tIHlvdXIgZGlzdHJpYnV0b3IuCisKKworVkVSU0lPTiBTQ0hFTUE6CisKKyAgICAgIFN0YW5kYXJkIHJlbGVhc2VzOgorCisgICAgICAgICAgPG1ham9yPi48bWlub3I+Wy48bWFpbnQ+Wy48YnVnZml4Pl1dCisKKyAgICAgICAgICAgICBtYWpvciA9IGZhdGFsIGFuZCBkZWVwIGNoYW5nZXMKKyAgICAgICAgICAgICBtaW5vciA9IHR5cGljYWwgcmVsZWFzZSB3aXRoIG5ldyBmZXR1cmVzCisgICAgICAgICAgICAgbWFpbnQgPSBtYWludGVuYW5jZSByZWxlYXNlczsgYnVnIGZpeGVzIG9ubHkKKyAgICAgICAgICAgICBidWdmaXggPSB1bnBsYW5uZWQgcmVsZWFzZXMgZm9yIGNyaXRpY2FsL3NlY3VyaXR5IGJ1Z3MKKworICAgICAgRGV2ZWxvcG1lbnQgcmVsZWFzZXM6CisKKyAgICAgICAgIDxtYWpvcj4uPG1pbm9yPjxzdWZmaXg+CisKKyAgICAgICAgICAgICBzdWZmaXggPSAiZGV2ZWwiIG9yICItcmM8Tj4iCisKKworQ09NUElMQVRJT046CisKKyAgICAgIFNlZSB0aGUgSU5TVEFMTCBmaWxlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgIE5vdGVzOgorICAgICAgICAgICAgKiB1c2UgU1VJRF9DRkxBR1MgYW5kIFNVSURfTERGTEFHUyB3aGVuIHlvdSB3YW50IHRvIGRlZmluZSBzcGVjaWFsCisgICAgICAgICAgICAgIGNvbXBpbGVyIG9wdGlvbnMgZm9yIHR5cGljYWwgc3VpZCBwcm9ncmFtcywgZm9yIGV4YW1wbGU6CisKKyAgICAgICAgICAgICAgICAgIC4vY29uZmlndXJlIFNVSURfQ0ZMQUdTPSItZnBpZSIgU1VJRF9MREZMQUdTPSItcGllIgorCisgICAgICAgICAgICAgIFRoaXMgZmVhdHVyZSBpcyBjdXJyZW50bHkgc3VwcG9ydGVkIGZvciBjaGZuLCBjaHNoLCBuZXdncnAsCisgICAgICAgICAgICAgIHdyaXRlLCBtb3VudCwgYW5kIHVtb3VudC4KKworCitTVEFUSUMgTElOS0lORzoKKworICAgICAgVXNlIC0tZW5hYmxlLXN0YXRpYy1wcm9ncmFtc1s9TElTVF0gY29uZmlndXJlIG9wdGlvbiB3aGVuIHlvdSB3YW50IHRvIHVzZQorICAgICAgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMuCisKKyAgICAgIE5vdGUsIG1vdW50KDgpIHVzZXMgZ2V0e3B3LGdyfW5hbSgpIGFuZCBnZXRwd3VpZCgpIGZ1bmN0aW9ucyBmb3IKKyAgICAgIHRyYW5zbGF0aW9uIGZyb20gdXNlcm5hbWUgYW5kIGdyb3VwbmFtZSB0byBVSUQgYW5kIEdJRC4gVGhlc2UgZnVuY3Rpb25zCisgICAgICBjb3VsZCBiZSBpbXBsZW1lbnRlZCBieSBkeW5hbWljYWxseSBsb2FkZWQgaW5kZXBlbmRlbnQgbW9kdWxlcyAoTlNTKSBpbgorICAgICAgeW91ciBsaWJjIChlLmcuIGdsaWJjKS4gVGhlc2UgbW9kdWxlcyBhcmUgbm90IHN0YXRpY2FsbHkgbGlua2VkIHRvCisgICAgICBtb3VudCg4KSBhbmQgbW91bnQuc3RhdGljIGlzIHN0aWxsIHVzaW5nIGRsb3BlbigpIGxpa2UgZHluYW1pY2FsbHkKKyAgICAgIGxpbmtlZCB2ZXJzaW9uLgorCisgICAgICBUaGUgdHJhbnNsYXRpb24gd29uJ3Qgd29yayBpbiBlbnZpcm9ubWVudCB3aGVyZSBOU1MgbW9kdWxlcyBhcmUKKyAgICAgIG5vdCBpbnN0YWxsZWQuCisKKyAgICAgIEZvciBleGFtcGxlIG5vcm1hbCBzeXN0ZW0gKE5TUyBtb2R1bGVzIGFyZSBhdmFpbGFibGUpOgorCisgICAgICAgICAgICAgICMgLi9tb3VudC5zdGF0aWMgLXYgLWYgLW4gLW91aWQ9a3phayAvbW50L2ZvbworICAgICAgICAgICAgICBMQUJFTD0vbW50L2ZvbyBvbiAvbW50L2ZvbyB0eXBlIHZmYXQgKHJ3LHVpZD01MDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXgorICAgICAgYW5kIHdpdGhvdXQgTlNTIG1vZHVsZXM6CisKKyAgICAgICAgICAgICAgIyBjaHJvb3QgLiAuL21vdW50LnN0YXRpYyAtdiAtZiAtbiAtb3VpZD1remFrIC9tbnQvd2luCisgICAgICAgICAgICAgIExBQkVMPS9tbnQvd2luIG9uIC9tbnQvd2luIHR5cGUgdmZhdCAocncsdWlkPWt6YWspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl4KKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9SRUFETUUuZGV2ZWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9SRUFETUUuZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgxMzU3NAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL1JFQURNRS5kZXZlbApAQCAtMCwwICsxLDExNyBAQAorCisgTm90ZXMgZm9yIHV0aWwtbGludXgtbmcgZGV2ZWxvcGVycworIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworQVVUT1RPT0xTOgorCisgICAgICogIi4vYXV0b2dlbi5zaCIgZ2VuZXJhdGVzIGFsbCBuZWNlc3NhcnkgZmlsZXMgKHJ1biBpdCBhZnRlciBjaGVja291dCBmcm9tCisgICAgICAgZ2l0KQorCisgICAgICogIm1ha2UgZGlzdGNsZWFuIiByZW1vdmVzIGFsbCB1bm5lY2Vzc2FyeSBmaWxlcywgYnV0IGNvZGUgaXMgc3RpbGwgcG9zc2libGUKKyAgICAgICByZWNvbXBpbGUgYnkgIi4vY29uZmlndXJlOyBtYWtlIgorCisgICAgICogIm1ha2UgZGlzdC1nemlwIiAob3IgLWJ6aXAyKSBjcmVhdGVzIHRhcmJhbGwgd2hpY2ggaXMgcG9zc2libGUgdXNlIHdpdGhvdXQKKyAgICAgIGF1dG9nZW4uc2gKKworCitQQVRDSEVTOgorCisgICAgICogc2VuZCB5b3VyIHBhdGNoZXMgdG8gdGhlIG1haWxpbmcgbGlzdCBvciB0byB1cHN0cmVhbSBtYWludGFpbmVyCisgICAgICAgKHNlZSB0aGUgQVVUSE9SUyBmaWxlKQorCisgICAgICogZGlmZiAtdQorCisgICAgICogZG9uJ3QgaW5jbHVkZSBnZW5lcmF0ZWQgKGF1dG90b29scykgc3R1ZmYgdG8geW91ciBwYXRjaGVzCisgICAgICAgKGhpbnQ6IHVzZSBnaXQtY2xlYW4gWy1YXSkKKworICAgICAqIHBhdGNoZXMgYXJlIGRlbGl2ZXJlZCB2aWEgZW1haWwgb25seS4gIERvd25sb2FkaW5nIHRoZW0gZnJvbSBpbnRlcm5ldAorICAgICAgIHNlcnZlcnMgaXMgYSBwYWluLgorCisgICAgICogb25lIHBhdGNoIHBlciBlbWFpbCwgd2l0aCB0aGUgY2hhbmdlbG9nIGluIHRoZSBib2R5IG9mIHRoZSBlbWFpbC4KKworICAgICAqIFN1YmplY3Q6IFtQQVRDSF0gc3Vic3lzdGVtOiBkZXNjcmlwdGlvbgorCisgICAgICogaWYgc29tZW9uZSBlbHNlIHdyb3RlIHRoZSBwYXRjaCwgdGhleSBzaG91bGQgYmUgY3JlZGl0ZWQgKGFuZCBibGFtZWQpCisgICAgICAgZm9yIGl0LiBUbyBjb21tdW5pY2F0ZSB0aGlzLCBhZGQgYSBsaW5lOgorCisgICAgICAgICAgRnJvbTogSm9obiBEb2UgPGpkb2VAd2hlcmV2ZXIuY29tPgorCisgICAgICogYWRkIGEgU2lnbmVkLW9mZi1ieSBsaW5lIChoaW50OiB1c2UgImdpdCBjb21taXQgLXMiKQorCisgICAgICAgVGhlIHNpZ24tb2ZmIGlzIGEgc2ltcGxlIGxpbmUgYXQgdGhlIGVuZCBvZiB0aGUgZXhwbGFuYXRpb24gZm9yIHRoZQorICAgICAgIHBhdGNoLCB3aGljaCBjZXJ0aWZpZXMgdGhhdCB5b3Ugd3JvdGUgaXQgb3Igb3RoZXJ3aXNlIGhhdmUgdGhlIHJpZ2h0IHRvCisgICAgICAgcGFzcyBpdCBvbiBhcyBhIG9wZW4tc291cmNlIHBhdGNoLiAgVGhlIHJ1bGVzIGFyZSBwcmV0dHkgc2ltcGxlOiBpZiB5b3UKKyAgICAgICBjYW4gY2VydGlmeSB0aGUgYmVsb3c6CisKKyAgICAgICAgICAgQnkgbWFraW5nIGEgY29udHJpYnV0aW9uIHRvIHRoaXMgcHJvamVjdCwgSSBjZXJ0aWZ5IHRoYXQ6CisKKyAgICAgICAgICAgKGEpIFRoZSBjb250cmlidXRpb24gd2FzIGNyZWF0ZWQgaW4gd2hvbGUgb3IgaW4gcGFydCBieSBtZSBhbmQgSQorICAgICAgICAgICAgICAgaGF2ZSB0aGUgcmlnaHQgdG8gc3VibWl0IGl0IHVuZGVyIHRoZSBvcGVuIHNvdXJjZSBsaWNlbnNlCisgICAgICAgICAgICAgICBpbmRpY2F0ZWQgaW4gdGhlIGZpbGU7IG9yCisKKyAgICAgICAgICAgKGIpIFRoZSBjb250cmlidXRpb24gaXMgYmFzZWQgdXBvbiBwcmV2aW91cyB3b3JrIHRoYXQsIHRvIHRoZSBiZXN0CisgICAgICAgICAgICAgICBvZiBteSBrbm93bGVkZ2UsIGlzIGNvdmVyZWQgdW5kZXIgYW4gYXBwcm9wcmlhdGUgb3BlbiBzb3VyY2UKKyAgICAgICAgICAgICAgIGxpY2Vuc2UgYW5kIEkgaGF2ZSB0aGUgcmlnaHQgdW5kZXIgdGhhdCBsaWNlbnNlIHRvIHN1Ym1pdCB0aGF0CisgICAgICAgICAgICAgICB3b3JrIHdpdGggbW9kaWZpY2F0aW9ucywgd2hldGhlciBjcmVhdGVkIGluIHdob2xlIG9yIGluIHBhcnQKKyAgICAgICAgICAgICAgIGJ5IG1lLCB1bmRlciB0aGUgc2FtZSBvcGVuIHNvdXJjZSBsaWNlbnNlICh1bmxlc3MgSSBhbQorICAgICAgICAgICAgICAgcGVybWl0dGVkIHRvIHN1Ym1pdCB1bmRlciBhIGRpZmZlcmVudCBsaWNlbnNlKSwgYXMgaW5kaWNhdGVkCisgICAgICAgICAgICAgICBpbiB0aGUgZmlsZTsgb3IKKworICAgICAgICAgICAoYykgVGhlIGNvbnRyaWJ1dGlvbiB3YXMgcHJvdmlkZWQgZGlyZWN0bHkgdG8gbWUgYnkgc29tZSBvdGhlcgorICAgICAgICAgICAgICAgcGVyc29uIHdobyBjZXJ0aWZpZWQgKGEpLCAoYikgb3IgKGMpIGFuZCBJIGhhdmUgbm90IG1vZGlmaWVkIGl0LgorCisgICAgICAgICAgIChkKSBJIHVuZGVyc3RhbmQgYW5kIGFncmVlIHRoYXQgdGhpcyBwcm9qZWN0IGFuZCB0aGUgY29udHJpYnV0aW9uCisgICAgICAgICAgICAgICBhcmUgcHVibGljIGFuZCB0aGF0IGEgcmVjb3JkIG9mIHRoZSBjb250cmlidXRpb24gKGluY2x1ZGluZyBhbGwKKyAgICAgICAgICAgICAgIHBlcnNvbmFsIGluZm9ybWF0aW9uIEkgc3VibWl0IHdpdGggaXQsIGluY2x1ZGluZyBteSBzaWduLW9mZikgaXMKKyAgICAgICAgICAgICAgIG1haW50YWluZWQgaW5kZWZpbml0ZWx5IGFuZCBtYXkgYmUgcmVkaXN0cmlidXRlZCBjb25zaXN0ZW50IHdpdGgKKyAgICAgICAgICAgICAgIHRoaXMgcHJvamVjdCBvciB0aGUgb3BlbiBzb3VyY2UgbGljZW5zZShzKSBpbnZvbHZlZC4KKworICAgICAgIHRoZW4geW91IGp1c3QgYWRkIGEgbGluZSBzYXlpbmcKKworICAgICAgICAgICAgICAgU2lnbmVkLW9mZi1ieTogUmFuZG9tIEogRGV2ZWxvcGVyIDxyYW5kb21AZGV2ZWxvcGVyLmV4YW1wbGUub3JnPgorCisgICAgICAgdXNpbmcgeW91ciByZWFsIG5hbWUgKHNvcnJ5LCBubyBwc2V1ZG9ueW1zIG9yIGFub255bW91cyBjb250cmlidXRpb25zLikKKworCisgICAgICogZm9yIG1vcmUgZGV0YWlscyBzZWU6CisKKyAgICAgICBUaGUgcGVyZmVjdCBwYXRjaAorICAgICAgICAgICAgICAgIGh0dHA6Ly91c2Vyd2ViLmtlcm5lbC5vcmcvfmFrcG0vc3R1ZmYvdHBwLnR4dAorCitDT0RJTkcgU1RZTEU6CisKKyAgICAgKiB0aGUgcHJlZmVycmVkIGNvZGluZyBzdHlsZSBpcyBiYXNlZCBvbiB0aGUgbGludXgga2VybmVsIERvY3VtZW50YXRpb24vQ29kaW5nU3R5bGUuCisgICAgICAgRm9yIG1vcmUgZGV0YWlscyBzZWU6CisKKyAgICAgICBodHRwOi8vZ2l0Lmtlcm5lbC5vcmcvP3A9bGludXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51eC0yLjYuZ2l0O2E9YmxvYl9wbGFpbjtmPURvY3VtZW50YXRpb24vQ29kaW5nU3R5bGUKKworCitTQ00gKHNvdXJjZSBjb2RlIG1hbmFnZW1lbnQpOgorCisgICAgIGdpdCBjbG9uZSBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL3V0aWxzL3V0aWwtbGludXgtbmcvdXRpbC1saW51eC1uZy5naXQgdXRpbC1saW51eC1uZworCisKKyAgICAqIG1haW50ZW5hbmNlIChzdGFibGUpIGJyYW5jaAorICAgICAgICAtIGNyZWF0ZWQgZm9yIGV2ZXJ5IDxtYWpvcj4uPG1pbm9yPiByZWxlYXNlCisgICAgICAgIC0gYnJhbmNoIG5hbWU6IHN0YWJsZS92PG1ham9yPi48bWlub3I+CisKKyAgICAqIGJ1Z2ZpeCBicmFuY2gKKyAgICAgICAgLSBjcmVhdGVkIGZvciA8bWFqb3I+LjxtaW5vcj4uPG1haW50PiByZWxlYXNlIGZvciBjcml0aWNhbC9zZWN1cml0eSBidWdzIG9ubHkKKyAgICAgICAgLSB0aGlzIGJyYW5jaCBpcyBvcHRpb25hbAorICAgICAgICAtIGJyYW5jaCBuYW1lOiBzdGFibGUvdjxtYWpvcj4uPG1pbm9yPi48bWFpbnQ+CisKKyAgICAqIG1hc3RlciBicmFuY2gKKyAgICAgICAgLSB0aGUgc3RhdHVzIG9mIHRoaXMgYnJhbmNoIGlzOiAiaXQgd29ya3MgZm9yIG1lIi4gSXQgbWVhbnMgdXNlZnVsCisgICAgICAgICAgYnV0IG5vdCB3ZWxsIHRlc3RlZCBwYXRjaGVzLgorICAgICAgICAtIGl0J3Mgc291cmNlIGZvciBvY2Nhc2lvbmFsIHNuYXBzaG90cworICAgICAgICAtIGZvciBsb25nLXRlcm0gZGV2ZWxvcG1lbnQgb3IgaW52YXNpdmUgY2hhbmdlcyBzaG91bGQgYmUgYW4gYWN0aXZlCisgICAgICAgICAgZGV2ZWxvcG1lbnQgZm9ya2VkIGludG8gYSBzZXBhcmF0ZSBicmFuY2ggKHRvcGljIGJyYW5jaGVzKSBmcm9tIHRoZQorICAgICAgICAgIHRpcCBvZiAibWFzdGVyIi4KKworICAgICogQSBuZXcgdGFnIG9iamVjdCBpcyBjcmVhdGVkIGZvcjoKKyAgICAgICAgLSBldmVyeSByZWxlYXNlLCB0YWcgbmFtZTogdjx2ZXJzaW9uPgorCisKKyAgICAqIEtOT1dOIEJVR1M6CisgICAgICAgIC0gdGFnIHYyLjEzLjEgaXMgdHlwby4gUGxlYXNlLCBpZ25vcmUgdGhpcyB0YWcuCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL1JFQURNRS5saWNlbnNpbmcgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9SRUFETUUubGljZW5zaW5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmNGZlZjAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9SRUFETUUubGljZW5zaW5nCkBAIC0wLDAgKzEsMjIgQEAKKworVGhlIHByb2plY3QgdXRpbHMtbGludXgtbmcgZG9lc24ndCB1c2Ugc2FtZSBsaWNlbnNlIGZvciBhbGwgY29kZS4gVGhlcmUgYXJlCitjb2RlIHdpdGg6CisKKyAgICogR1BMdjMrIChHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMsIG9yIGFueSBsYXRlciB2ZXJzaW9uKQorCisgICAqIEdQTHYyKyAoR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLCBvciBhbnkgbGF0ZXIgdmVyc2lvbikKKworICAgKiBHUEx2MiAoR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyKQorCisgICAqIExHUEx2MisgKEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MiAob3IgMi4xKSBvciBhbnkgbGF0ZXIgdmVyc2lvbikKKworICAgKiBCU0Qgd2l0aCBhZHZlcnRpc2luZworCisgICAqIFB1YmxpYyBEb21haW4KKworUGxlYXNlLCBjaGVjayBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLiBBIGxpY2Vuc2UgaXMgdXN1YWxseSBhdCB0aGUgc3RhcnQKK29mIGVhY2ggc291cmNlIGZpbGUuCisKK1RoZSAvQ09QWUlORyBmaWxlIChHUEx2MispIGlzIHRoZSBkZWZhdWx0IGxpY2Vuc2UgZm9yIGNvZGUgd2l0aG91dCBhbiBleHBsaWNpdGx5CitkZWZpbmVkIGxpY2Vuc2UuCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL1RPRE8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9UT0RPCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjM2MwZjkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9UT0RPCkBAIC0wLDAgKzEsMTQ1IEBACitsaWJibGtpZAorLS0tLS0tLS0KKworIC0gYWRkIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UgZm9yIGJsa2lkX3Byb2JlX2ZpbHRlcl90eXBlcygpOgorCisgICAgICAgIyBibGtpZCAtcCAtbyB1ZGV2IC0tZmlsdGVyLXR5cGUgbm9mYXQKKworIC0gYWRkIC08QkV8TEU+IHN1ZmZpeCB0byB0ZXN0IGltYWdlcyBmb3IgbmF0aXZlLWVuZGlhbiBmaWxlc3lzdGVtcyAoZS5nLiBzd2FwKQorICAgYW5kIGFkZCBzdXBwb3J0IGZvciBzdWNoIGZ1bmN0aW9uYWxpdHkgdG8gdGVzdHMvdHMvYmxraWQvbG93LXByb2JlCisKKyAtIGNvbnNvbGlkYXRlICJnZXRzaXplIiBzdHVmZiAoc2VlIGdldHNpemUuYyBhbmQgbGliL2Jsa2Rldi5jKQorCisgLSBhZGQgdmFsdWVzOgorCisJRlNTSVpFICAgLS0gZmlsZXN5c3RlbSBzaXplIChrbGliYyByZXF1aXJlbWVudCkKKworIC0gYWRkIHJlZmVyZW5jZSBjb3VudGVycyB0byB0aGUgYmluYXJ5IGludGVyZmFjZXMuIEN1cnJlbnRseSwgYWxsIGNoYWluIAorICAgZGF0YSBhcmUgYWxsb2NhdGVkIGluIGJsa2lkX3Byb2JlIGFuZCBjYW5ub3QgYmUgdXNlZCBpbmRlcGVuZGVudGx5IG9uIAorICAgdGhlIHByb2Jpbmcgc3R1ZmYuCisKKwlibGtpZF90b3BvbG9neSB0cCA9IGJsa2RpX3Byb2JlX2dldF90b3BvbG9neShwcikKKworCWJsa2lkX3JlZih0cCk7CisJLi4uCisJYmxraWRfdW5yZWYodHApOworCitmZGlzayhzKQorLS0tLS0tLS0KKworICogdXNlIG9mZl90IGluc3RlYWQgImxvbmcgbG9uZyIKKworICogY2F0Y2ggU0lHSU5UIChDdHJsLUMpIGFuZCByZXR1cm4gdG8gbWFpbiBtZW51LgorICAgRnJvbSBSZWQgSGF0IGJ1Z3ppbGxhICM1NDU0ODg6CisKKyAgIFdoaWxlIHVzaW5nIGZkaXNrIG5vcm1hbGx5LCBpZiB5b3UgYWNjaWRlbnRhbGx5IHByZXNzZWQgdGhlIHdyb25nIGJ1dHRvbiAodG8KKyAgIHN0YXJ0IGEgc2VxdWVuY2Ugb2YgcXVlc3Rpb25zIGZvciBzb21lIG9wZXJhdGlvbiwgZS5nLiAnYycgdG8gY3JlYXRlCisgICBwYXJ0aXRpb24pLiAgVGhlIHRvb2wgdHJpZXMgdG9vIGhhcmQgdG8ga2VlcCBhc2tpbmcgeW91IGZvciB2YWxpZCBpbnB1dC4gIFlvdQorICAgY2FuJ3QgcHJvdmlkZSBhIGJsYW5rIG9yIGludmFsaWQgaW5wdXQgdG8gZ2V0IGl0IHRvIGJyZWFrIG91dCBvZiB0aGUgY3VycmVudAorICAgZGlhbG9nIHNlcXVlbmNlIGFuZCBnZXQgYmFjayB0byB0aGUgbWFpbiBtZW51LgorCisgKiBmZGlzay8qIHJlZmFjdG9yaW5nCisKKyAqIGFkZCBHUFQgc3VwcG9ydAorCittaXNjCistLS0tCisKKyAqIHVzZSBuZ2V0dGV4dCgpIGZvciBzdHJpbmdzIHdpdGggcGx1cmFscywgZm9yIGV4YW1wbGUKKworICAgIC8qIGluY2x1ZGUvbmxzLmggKi8KKyAgICAjZGVmaW5lIFBfKGlkLCBpZF9wbHVyYWwsIG4pCW5nZXR0ZXh0KGlkLCBpZF9wbHVyYWwsIG4pCisKKyAgICBwcmludGYoUF8oIiVkIHVzZWQgc2VjdG9yIiwKKyAgICAgICAgICAgICAgIiVkIHVzZWQgc2VjdG9ycyIsIHNlY3RvcnMpLAorICAgICAgICAgICAgICBzZWN0b3JzKTsKKworICogY2hlY2sgZm9yIHByb2dyYW1faW52b2NhdGlvbl9zaG9ydF9uYW1lIGluIC4vY29uZmlndXJlLmFjIGFuZCBhZGQgCisgICBsaWIvcHJvZ25hbWUuYyBmYWxsYmFjayBmb3IgbGliYyB3aXRob3V0IHRoaXMgZmVhdHVyZSAoZm9yIGV4YW1wbGUKKyAgIHVzZSB0aGUgMXN0IGZpZWxkIGZyb20gL3Byb2MvIy9jbWRsaW5lKQorCisgKiB1c2Ugc29tZXRoaW5nIGJldHRlciB0aGFuIGd0ay1kb2MgKGRveHlkZW4/KQorCisgKiBwYXJ0eDogY29weSBzdW4uYywgbWFjLmMgYW5kIGRhc2guYyBmcm9tIGtwYXJ0eAorICAgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9zdG9yYWdlL211bHRpcGF0aC10b29scy8uZ2l0CisKKyAqIHN3YXBvbiAtcyAgLS0gTEFCRUxzIHN1cHBvcnQKKworICAgQWx0aG91Z2ggbWtzd2FwIGhhcyByZWNlbnRseSBiZWVuIC1MIG9wdGlvbiB0byBjcmVhdGUgYSBsYWJlbCBub3RoaW5nIGFwcGVhcnMgdG8KKyAgIGhhdmUgYmVlbiBjaGFuZ2UgdG8gc3dhcG9uIHRvIGRpc3BsYXkgc2FpZCBsYWJlbHMuIChyaCM0MzAzODYpCisKKyAqIHVzZSBUWj1VVEMgZm9yIHRlc3RzCisKKyAqIGFkZCBOTFMgYW5kIGVyci5oIHN0dWZmIHRvIHNjaGVkdXRpbHMgKGNocnQuYywgdGFza3NldC5jKQorCisgKiBhZGQgbWxsb2NrYWxsKCkgYW5kIFNDSEVEX0ZJRk8gdG8gaHdjbG9jaywKKyAgIHNlZSBodHRwOi8vbGttbC5vcmcvbGttbC8yMDA4LzEwLzEyLzEzMgorIAorICogdXNlIHJwbWF0Y2goKSBmb3IgYWxsIFkvTiBxdWVzdGlvbnMKKworICogbW91bnQgLWEgLS0gcmVvcmRlciBmc3RhYiBlbnRyaWVzIGJ5IHBhdGhzIGJlZm9yZSBtb3VudCAoanVzdCBpZGVhIG9ubHkpCisKKyAqIG1vdW50IC1hICAoanVzdCBpZGVhIG9ubHkpCisKKyAgICAgICAgRGF0ZTogICBTdW4sIDMgSnVuIDIwMDcgMTg6MDQ6MjQgKzAzMDAgKE1FVCBEU1QpCisgICAgICAgIEZyb206IFN6YWJvbGNzIFN6YWthY3NpdHMgPHN6YWthQHNpZW5ldC5odT4KKworCUluIHRoZSBwYXN0IHRoZSByaWdodCByZWNvcmQgb3JkZXIgY291bGQgYmUgZmlndXJlZCBvdXQgZWFzaWx5IGJ5IGp1c3QKKwljaGVja2luZyBvdXQgZnN0YWIgKGlmIG9uZSBrbmV3IHdoYXQgdG8gbG9vayBmb3IpIGJ1dCBjb25zaWRlcmluZyB0aGUKKwlmYXN0bHkgaW5jcmVhc2luZyBudW1iZXIgb2YgdXNlciBzcGFjZSBmaWxlIHN5c3RlbXMgYW5kIHRoZWlyIHVzYWdlLCB3aXRoCisJdGhlaXIgcGF0aCwgbGlicmFyeSwgZXRjIGRlcGVuZGVuY2llcywgaXQncyBnZXR0aW5nIHRyaWNraWVyIGFuZCBpcyBhIGJsYWNrCisJbWFnaWMgZm9yIG1vc3QgdXNlcnMgYmVjYXVzZSB0aGV5IHNpbXBseSBleHBlY3QgZHJpdmVzIHRvIGJlIG1vdW50ZWQKKwlpbmRlcGVuZGVudGx5IG9mIHRoZWlyIG9yZGVyIGluIGZzdGFiLgorCisJT25lIHR5cGljYWwsIHdyb25nbHkgZWRpdGVkIGZzdGFiIGV4YW1wbGUgaXM6CisKKwkgIC9kZXYvaGRhMiAvICAgICAgICAgICAgIGV4dDMgICAgICBkZWZhdWx0cyAgMSAxCisJICAvZGV2L2hkYTEgL21udC93aW5kb3dzICBudGZzLTNnICAgZGVmYXVsdHMgIDAgMAorCSAgL2Rldi9oZGEzIC91c3IgICAgICAgICAgZXh0MyAgICAgIGRlZmF1bHRzICAwIDAKKworCVRoZSBldmVudHM6CisKKwkgIG1vdW50ICAtPiAgL3NiaW4vbW91bnQubnRmcy0zZyAgLT4KKwkJIC0+ICByZXNvbHZlcyB0byA8cGF0aDE+L250ZnMtM2cgdmlhIGEgc3ltbGluayAtPgorCQkgLT4gIG50ZnMtM2cgcmVxdWlyZXMgYXQgbGVhc3QgPHBhdGgyPi9saWJmdXNlKgorCisJVGhlcmUgYXJlIG1hbnkgcG90ZW50aWFsIHNvbHV0aW9ucy4gRm9yIGV4YW1wbGUgaW5zdGFsbGluZyBldmVyeXRoaW5nIG9uCisJdGhlIHJvb3QgZmlsZSBzeXN0ZW0gd2hpY2ggbWF5IGJlIG5lZWRlZCBmb3Igc3VjY2Vzc2Z1bCBtb3VudC4gQnV0IHRoaXMKKwlpcyBub3QgYWx3YXlzIGZlYXNpYmxlIG9yIHByYWN0aWNhbCBzaW5jZSB3ZSBjb3VsZCBlbmQgdXAgcHV0dGluZyBhbG1vc3QKKwlldmVyeXRoaW5nIG9uIHRoZSByb290IGZpbGUgc3lzdGVtIGluIHRoZSBlbmQuCisKKwlBbm90aGVyIGlkZWEgaXMgYW4gaW1wcm92ZWQgbW91bnQgc3RyYXRlZ3k6CisKKwkgIGRvIHsKKwkJdHJ5IHRvIG1vdW50IGFsbCB1bm1vdW50ZWQgZW50cmllcworCSAgfSB3aGlsZSAobm90IGFsbCBtb3VudGVkICYmIGF0IGxlYXN0IG9uZSBuZXcgd2FzIHN1Y2Nlc3NmdWxseSBtb3VudGVkKQorCisgKiBhZ2V0dHk6IHVzZSBubF9sYW5naW5mbygpIGZvciBkYXlzIGFuZCBtb250aHMgcmF0aGVyIHRoYW4gaGFyZGNvZGVkCisgICBFbmdsaXNoIG5hbWVzLgorCisgKiByZXdyaXRlIGlwY3MgdG8gdXNlIC9wcm9jL3N5cy9rZXJuZWwgcmF0aGVyIHRoYW4gdW5yZWxpYWJsZSBzeXNjYWxscworICAgKHRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIDMyYml0IHVzZXJzcGFjZSBvbiA2NGJpdCBrZXJuZWwpCisKKyAqIG1pbml4IHYzCisKKwlGcm9tOiBNYXR0aGlhcyBLb2VuaWcgPG1rb2VuaWdAc3VzZS5kZT4KKwlEYXRlOiAgIFR1ZSwgMjUgU2VwIDIwMDcgMTI6MDA6MDEgKzAyMDAKKworCUl0IHNlZW1zIHRoYXQgdGhlIGtlcm5lbCBoYXMgc3VwcG9ydCBmb3IgbWluaXggZnMgdjMKKwkodGhvdWdoIEkgaGF2ZSBub3QgdHJpZWQgaXQsIGp1c3QgaW5zcGVjdGVkIHNvbWUgY29kZSB3aGVuCisJdHJ5aW5nIHRvIGZpbmQgYSBta2ZzLm1pbml4IGlzc3VlKS4KKwlJdCBtaWdodCBiZSB3b3J0aCBhIHRob3VnaHQgaW1wbGVtZW50aW5nIHYzIHN1cHBvcnQKKwkodGhvdWdoIEkgYW0gbm90IHJlYWxseSBzdXJlIGhvdyBtdWNoIHBlb3BsZSB1cyBtaW5peCBmcyA7LSkKKwlUaGlzIG1pZ2h0IHJlcXVpcmUgc29tZSBtYWpvciBjb2RlIGNsZWFudXAgaW4gbWtmcy5taW5peC4KKworICogcnRjd2FrZSBkb2VzIG5vdCBzdXBwb3J0IHdha2UgZnJvbSBTNS9vZmYKKyAgIGh0dHA6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD00NDkxMTUKKworICogYWRkIFNFTGludXggc2VjdXJpdHkgY29udGV4dHMgc3VwcG9ydCB0byB0aGUgJ2lwY3MnIHV0aWxpdHkKKyAgIGh0dHA6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0yMjUzNDIKKworICAgV291bGQgYmUgZ3JlYXQgdG8gbGlzdCB0aGUgY3VycmVudCBzeXN0ZW0gSVBDIE9iamVjdHMgd2l0aCB0aGVpciByZXNwZWN0aXZlCisgICBzZWN1cml0eSBsYWJlbHMgKHdoZXJlIGFsbG93ZWQpIHdpdGggc29tZXRoaW5nIGxpa2UgJ2lwY3MgLVonIC0gZm9sbG93aW5nIHRoZQorICAgd2F5IG90aGVyIHRvb2xzIHJlcG9ydHMgdGhvc2UuCisKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvYWNsb2NhbC5tNCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2FjbG9jYWwubTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE0NDIxYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2FjbG9jYWwubTQKQEAgLTAsMCArMSwxMTQ5IEBACisjIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGFjbG9jYWwgMS4xMS4xIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCisjIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCittNF9pZm5kZWYoW0FDX0FVVE9DT05GX1ZFUlNJT05dLAorICBbbTRfY29weShbbTRfUEFDS0FHRV9WRVJTSU9OXSwgW0FDX0FVVE9DT05GX1ZFUlNJT05dKV0pZG5sCittNF9pZihtNF9kZWZuKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSksIFsyLjYzXSwsCitbbTRfd2FybmluZyhbdGhpcyBmaWxlIHdhcyBnZW5lcmF0ZWQgZm9yIGF1dG9jb25mIDIuNjMuCitZb3UgaGF2ZSBhbm90aGVyIHZlcnNpb24gb2YgYXV0b2NvbmYuICBJdCBtYXkgd29yaywgYnV0IGlzIG5vdCBndWFyYW50ZWVkIHRvLgorSWYgeW91IGhhdmUgcHJvYmxlbXMsIHlvdSBtYXkgbmVlZCB0byByZWdlbmVyYXRlIHRoZSBidWlsZCBzeXN0ZW0gZW50aXJlbHkuCitUbyBkbyBzbywgdXNlIHRoZSBwcm9jZWR1cmUgZG9jdW1lbnRlZCBieSB0aGUgcGFja2FnZSwgdHlwaWNhbGx5IGBhdXRvcmVjb25mJy5dKV0pCisKKyMgcGtnLm00IC0gTWFjcm9zIHRvIGxvY2F0ZSBhbmQgdXRpbGlzZSBwa2ctY29uZmlnLiAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKyMgCisjIENvcHlyaWdodCDCqSAyMDA0IFNjb3R0IEphbWVzIFJlbW5hbnQgPHNjb3R0QG5ldHNwbGl0LmNvbT4uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisjCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworIyBQS0dfUFJPR19QS0dfQ09ORklHKFtNSU4tVkVSU0lPTl0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtQS0dfUFJPR19QS0dfQ09ORklHXSwKK1ttNF9wYXR0ZXJuX2ZvcmJpZChbXl8/UEtHX1tBLVpfXSskXSkKK200X3BhdHRlcm5fYWxsb3coW15QS0dfQ09ORklHKF9QQVRIKT8kXSkKK0FDX0FSR19WQVIoW1BLR19DT05GSUddLCBbcGF0aCB0byBwa2ctY29uZmlnIHV0aWxpdHldKWRubAoraWYgdGVzdCAieCRhY19jdl9lbnZfUEtHX0NPTkZJR19zZXQiICE9ICJ4c2V0IjsgdGhlbgorCUFDX1BBVEhfVE9PTChbUEtHX0NPTkZJR10sIFtwa2ctY29uZmlnXSkKK2ZpCitpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KKwlfcGtnX21pbl92ZXJzaW9uPW00X2RlZmF1bHQoWyQxXSwgWzAuOS4wXSkKKwlBQ19NU0dfQ0hFQ0tJTkcoW3BrZy1jb25maWcgaXMgYXQgbGVhc3QgdmVyc2lvbiAkX3BrZ19taW5fdmVyc2lvbl0pCisJaWYgJFBLR19DT05GSUcgLS1hdGxlYXN0LXBrZ2NvbmZpZy12ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uOyB0aGVuCisJCUFDX01TR19SRVNVTFQoW3llc10pCisJZWxzZQorCQlBQ19NU0dfUkVTVUxUKFtub10pCisJCVBLR19DT05GSUc9IiIKKwlmaQorCQkKK2ZpW11kbmwKK10pIyBQS0dfUFJPR19QS0dfQ09ORklHCisKKyMgUEtHX0NIRUNLX0VYSVNUUyhNT0RVTEVTLCBbQUNUSU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1QtRk9VTkRdKQorIworIyBDaGVjayB0byBzZWUgd2hldGhlciBhIHBhcnRpY3VsYXIgc2V0IG9mIG1vZHVsZXMgZXhpc3RzLiAgU2ltaWxhcgorIyB0byBQS0dfQ0hFQ0tfTU9EVUxFUygpLCBidXQgZG9lcyBub3Qgc2V0IHZhcmlhYmxlcyBvciBwcmludCBlcnJvcnMuCisjCisjCisjIFNpbWlsYXIgdG8gUEtHX0NIRUNLX01PRFVMRVMsIG1ha2Ugc3VyZSB0aGF0IHRoZSBmaXJzdCBpbnN0YW5jZSBvZgorIyB0aGlzIG9yIFBLR19DSEVDS19NT0RVTEVTIGlzIGNhbGxlZCwgb3IgbWFrZSBzdXJlIHRvIGNhbGwKKyMgUEtHX0NIRUNLX0VYSVNUUyBtYW51YWxseQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW1BLR19DSEVDS19FWElTVFNdLAorW0FDX1JFUVVJUkUoW1BLR19QUk9HX1BLR19DT05GSUddKWRubAoraWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYmIFwKKyAgICBBQ19SVU5fTE9HKFskUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiJDEiXSk7IHRoZW4KKyAgbTRfaWZ2YWwoWyQyXSwgWyQyXSwgWzpdKQorbTRfaWZ2YWxuKFskM10sIFtlbHNlCisgICQzXSlkbmwKK2ZpXSkKKworCisjIF9QS0dfQ09ORklHKFtWQVJJQUJMRV0sIFtDT01NQU5EXSwgW01PRFVMRVNdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbX1BLR19DT05GSUddLAorW2lmIHRlc3QgLW4gIiQkMSI7IHRoZW4KKyAgICBwa2dfY3ZfW10kMT0iJCQxIgorIGVsaWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCisgICAgUEtHX0NIRUNLX0VYSVNUUyhbJDNdLAorICAgICAgICAgICAgICAgICAgICAgW3BrZ19jdl9bXSQxPWAkUEtHX0NPTkZJRyAtLVtdJDIgIiQzIiAyPi9kZXYvbnVsbGBdLAorCQkgICAgIFtwa2dfZmFpbGVkPXllc10pCisgZWxzZQorICAgIHBrZ19mYWlsZWQ9dW50cmllZAorZmlbXWRubAorXSkjIF9QS0dfQ09ORklHCisKKyMgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVECisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVEXSwKK1tBQ19SRVFVSVJFKFtQS0dfUFJPR19QS0dfQ09ORklHXSkKK2lmICRQS0dfQ09ORklHIC0tYXRsZWFzdC1wa2djb25maWctdmVyc2lvbiAwLjIwOyB0aGVuCisgICAgICAgIF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZD15ZXMKK2Vsc2UKKyAgICAgICAgX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkPW5vCitmaVtdZG5sCitdKSMgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVECisKKworIyBQS0dfQ0hFQ0tfTU9EVUxFUyhWQVJJQUJMRS1QUkVGSVgsIE1PRFVMRVMsIFtBQ1RJT04tSUYtRk9VTkRdLAorIyBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCisjCisjCisjIE5vdGUgdGhhdCBpZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoZSBmaXJzdCBjYWxsIHRvCisjIFBLR19DSEVDS19NT0RVTEVTIG1pZ2h0IG5vdCBoYXBwZW4sIHlvdSBzaG91bGQgYmUgc3VyZSB0byBpbmNsdWRlIGFuCisjIGV4cGxpY2l0IGNhbGwgdG8gUEtHX1BST0dfUEtHX0NPTkZJRyBpbiB5b3VyIGNvbmZpZ3VyZS5hYworIworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW1BLR19DSEVDS19NT0RVTEVTXSwKK1tBQ19SRVFVSVJFKFtQS0dfUFJPR19QS0dfQ09ORklHXSlkbmwKK0FDX0FSR19WQVIoWyQxXVtfQ0ZMQUdTXSwgW0MgY29tcGlsZXIgZmxhZ3MgZm9yICQxLCBvdmVycmlkaW5nIHBrZy1jb25maWddKWRubAorQUNfQVJHX1ZBUihbJDFdW19MSUJTXSwgW2xpbmtlciBmbGFncyBmb3IgJDEsIG92ZXJyaWRpbmcgcGtnLWNvbmZpZ10pZG5sCisKK3BrZ19mYWlsZWQ9bm8KK0FDX01TR19DSEVDS0lORyhbZm9yICQxXSkKKworX1BLR19DT05GSUcoWyQxXVtfQ0ZMQUdTXSwgW2NmbGFnc10sIFskMl0pCitfUEtHX0NPTkZJRyhbJDFdW19MSUJTXSwgW2xpYnNdLCBbJDJdKQorCittNF9kZWZpbmUoW19QS0dfVEVYVF0sIFtBbHRlcm5hdGl2ZWx5LCB5b3UgbWF5IHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzICQxW11fQ0ZMQUdTCithbmQgJDFbXV9MSUJTIHRvIGF2b2lkIHRoZSBuZWVkIHRvIGNhbGwgcGtnLWNvbmZpZy4KK1NlZSB0aGUgcGtnLWNvbmZpZyBtYW4gcGFnZSBmb3IgbW9yZSBkZXRhaWxzLl0pCisKK2lmIHRlc3QgJHBrZ19mYWlsZWQgPSB5ZXM7IHRoZW4KKyAgICAgICAgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVECisgICAgICAgIGlmIHRlc3QgJF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZCA9IHllczsgdGhlbgorCSAgICAgICAgJDFbXV9QS0dfRVJST1JTPWAkUEtHX0NPTkZJRyAtLXNob3J0LWVycm9ycyAtLXByaW50LWVycm9ycyAiJDIiIDI+JjFgCisgICAgICAgIGVsc2UgCisJICAgICAgICAkMVtdX1BLR19FUlJPUlM9YCRQS0dfQ09ORklHIC0tcHJpbnQtZXJyb3JzICIkMiIgMj4mMWAKKyAgICAgICAgZmkKKwkjIFB1dCB0aGUgbmFzdHkgZXJyb3IgbWVzc2FnZSBpbiBjb25maWcubG9nIHdoZXJlIGl0IGJlbG9uZ3MKKwllY2hvICIkJDFbXV9QS0dfRVJST1JTIiA+JkFTX01FU1NBR0VfTE9HX0ZECisKKwlpZmVsc2UoWyQ0XSwgLCBbQUNfTVNHX0VSUk9SKGRubAorW1BhY2thZ2UgcmVxdWlyZW1lbnRzICgkMikgd2VyZSBub3QgbWV0OgorCiskJDFfUEtHX0VSUk9SUworCitDb25zaWRlciBhZGp1c3RpbmcgdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpZiB5b3UKK2luc3RhbGxlZCBzb2Z0d2FyZSBpbiBhIG5vbi1zdGFuZGFyZCBwcmVmaXguCisKK19QS0dfVEVYVAorXSldLAorCQlbQUNfTVNHX1JFU1VMVChbbm9dKQorICAgICAgICAgICAgICAgICQ0XSkKK2VsaWYgdGVzdCAkcGtnX2ZhaWxlZCA9IHVudHJpZWQ7IHRoZW4KKwlpZmVsc2UoWyQ0XSwgLCBbQUNfTVNHX0ZBSUxVUkUoZG5sCitbVGhlIHBrZy1jb25maWcgc2NyaXB0IGNvdWxkIG5vdCBiZSBmb3VuZCBvciBpcyB0b28gb2xkLiAgTWFrZSBzdXJlIGl0CitpcyBpbiB5b3VyIFBBVEggb3Igc2V0IHRoZSBQS0dfQ09ORklHIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoZSBmdWxsCitwYXRoIHRvIHBrZy1jb25maWcuCisKK19QS0dfVEVYVAorCitUbyBnZXQgcGtnLWNvbmZpZywgc2VlIDxodHRwOi8vcGtnLWNvbmZpZy5mcmVlZGVza3RvcC5vcmcvPi5dKV0sCisJCVskNF0pCitlbHNlCisJJDFbXV9DRkxBR1M9JHBrZ19jdl9bXSQxW11fQ0ZMQUdTCisJJDFbXV9MSUJTPSRwa2dfY3ZfW10kMVtdX0xJQlMKKyAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKwlpZmVsc2UoWyQzXSwgLCA6LCBbJDNdKQorZmlbXWRubAorXSkjIFBLR19DSEVDS19NT0RVTEVTCisKKyMgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDAzLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIEFNX0FVVE9NQUtFX1ZFUlNJT04oVkVSU0lPTikKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBdXRvbWFrZSBYLlkgdHJhY2VzIHRoaXMgbWFjcm8gdG8gZW5zdXJlIGFjbG9jYWwubTQgaGFzIGJlZW4KKyMgZ2VuZXJhdGVkIGZyb20gdGhlIG00IGZpbGVzIGFjY29tcGFueWluZyBBdXRvbWFrZSBYLlkuCisjIChUaGlzIHByaXZhdGUgbWFjcm8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0aGlzIGZpbGUuKQorQUNfREVGVU4oW0FNX0FVVE9NQUtFX1ZFUlNJT05dLAorW2FtX19hcGlfdmVyc2lvbj0nMS4xMScKK2RubCBTb21lIHVzZXJzIGZpbmQgQU1fQVVUT01BS0VfVkVSU0lPTiBhbmQgbWlzdGFrZSBpdCBmb3IgYSB3YXkgdG8KK2RubCByZXF1aXJlIHNvbWUgbWluaW11bSB2ZXJzaW9uLiAgUG9pbnQgdGhlbSB0byB0aGUgcmlnaHQgbWFjcm8uCittNF9pZihbJDFdLCBbMS4xMS4xXSwgW10sCisgICAgICBbQUNfRkFUQUwoW0RvIG5vdCBjYWxsICQwLCB1c2UgQU1fSU5JVF9BVVRPTUFLRShbJDFdKS5dKV0pZG5sCitdKQorCisjIF9BTV9BVVRPQ09ORl9WRVJTSU9OKFZFUlNJT04pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGFjbG9jYWwgdHJhY2VzIHRoaXMgbWFjcm8gdG8gZmluZCB0aGUgQXV0b2NvbmYgdmVyc2lvbi4KKyMgVGhpcyBpcyBhIHByaXZhdGUgbWFjcm8gdG9vLiAgVXNpbmcgbTRfZGVmaW5lIHNpbXBsaWZpZXMKKyMgdGhlIGxvZ2ljIGluIGFjbG9jYWwsIHdoaWNoIGNhbiBzaW1wbHkgaWdub3JlIHRoaXMgZGVmaW5pdGlvbi4KK200X2RlZmluZShbX0FNX0FVVE9DT05GX1ZFUlNJT05dLCBbXSkKKworIyBBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2FsbCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBBTV9BVVRPTUFLRV9WRVJTSU9OIHNvIHRoZXkgY2FuIGJlIHRyYWNlZC4KKyMgVGhpcyBmdW5jdGlvbiBpcyBBQ19SRVFVSVJFZCBieSBBTV9JTklUX0FVVE9NQUtFLgorQUNfREVGVU4oW0FNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT05dLAorW0FNX0FVVE9NQUtFX1ZFUlNJT04oWzEuMTEuMV0pZG5sCittNF9pZm5kZWYoW0FDX0FVVE9DT05GX1ZFUlNJT05dLAorICBbbTRfY29weShbbTRfUEFDS0FHRV9WRVJTSU9OXSwgW0FDX0FVVE9DT05GX1ZFUlNJT05dKV0pZG5sCitfQU1fQVVUT0NPTkZfVkVSU0lPTihtNF9kZWZuKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSkpXSkKKworIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorCisjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBGb3IgcHJvamVjdHMgdXNpbmcgQUNfQ09ORklHX0FVWF9ESVIoW2Zvb10pLCBBdXRvY29uZiBzZXRzCisjICRhY19hdXhfZGlyIHRvIGAkc3JjZGlyL2ZvbycuICBJbiBvdGhlciBwcm9qZWN0cywgaXQgaXMgc2V0IHRvCisjIGAkc3JjZGlyJywgYCRzcmNkaXIvLi4nLCBvciBgJHNyY2Rpci8uLi8uLicuCisjCisjIE9mIGNvdXJzZSwgQXV0b21ha2UgbXVzdCBob25vciB0aGlzIHZhcmlhYmxlIHdoZW5ldmVyIGl0IGNhbGxzIGEKKyMgdG9vbCBmcm9tIHRoZSBhdXhpbGlhcnkgZGlyZWN0b3J5LiAgVGhlIHByb2JsZW0gaXMgdGhhdCAkc3JjZGlyIChhbmQKKyMgdGhlcmVmb3JlICRhY19hdXhfZGlyIGFzIHdlbGwpIGNhbiBiZSBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUsCisjIGRlcGVuZGluZyBvbiBob3cgY29uZmlndXJlIGlzIHJ1bi4gIFRoaXMgaXMgcHJldHR5IGFubm95aW5nLCBzaW5jZQorIyBpdCBtYWtlcyAkYWNfYXV4X2RpciBxdWl0ZSB1bnVzYWJsZSBpbiBzdWJkaXJlY3RvcmllczogaW4gdGhlIHRvcAorIyBzb3VyY2UgZGlyZWN0b3J5LCBhbnkgZm9ybSB3aWxsIHdvcmsgZmluZSwgYnV0IGluIHN1YmRpcmVjdG9yaWVzIGEKKyMgcmVsYXRpdmUgcGF0aCBuZWVkcyB0byBiZSBhZGp1c3RlZCBmaXJzdC4KKyMKKyMgJGFjX2F1eF9kaXIvbWlzc2luZworIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGlmICRhY19hdXhfZGlyIGlzIHJlbGF0aXZlCisjICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3NpbmcKKyMgICAgZmFpbHMgaWYgJGFjX2F1eF9kaXIgaXMgYWJzb2x1dGUsCisjICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaW4gYSBWUEFUSCBidWlsZCB3aXRoCisjICAgICAgICAgIGEgcmVsYXRpdmUgJGFjX2F1eF9kaXIKKyMKKyMgVGhlIHJlYXNvbiBvZiB0aGUgbGF0dGVyIGZhaWx1cmUgaXMgdGhhdCAkdG9wX3NyY2RpciBhbmQgJGFjX2F1eF9kaXIKKyMgYXJlIGJvdGggcHJlZml4ZWQgYnkgJHNyY2Rpci4gIEluIGFuIGluLXNvdXJjZSBidWlsZCB0aGlzIGlzIHVzdWFsbHkKKyMgaGFybWxlc3MgYmVjYXVzZSAkc3JjZGlyIGlzIGAuJywgYnV0IHRoaW5ncyB3aWxsIGJyb2tlIHdoZW4geW91CisjIHN0YXJ0IGEgVlBBVEggYnVpbGQgb3IgdXNlIGFuIGFic29sdXRlICRzcmNkaXIuCisjCisjIFNvIHdlIGNvdWxkIHVzZSBzb21ldGhpbmcgc2ltaWxhciB0byAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNzaW5nLAorIyBpZmYgd2Ugc3RyaXAgdGhlIGxlYWRpbmcgJHNyY2RpciBmcm9tICRhY19hdXhfZGlyLiAgVGhhdCB3b3VsZCBiZToKKyMgICBhbV9hdXhfZGlyPSdcJCh0b3Bfc3JjZGlyKS8nYGV4cHIgIiRhY19hdXhfZGlyIiA6ICIkc3JjZGlyLy8qXCguKlwpImAKKyMgYW5kIHRoZW4gd2Ugd291bGQgZGVmaW5lICRNSVNTSU5HIGFzCisjICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCisjIFRoaXMgd2lsbCB3b3JrIGFzIGxvbmcgYXMgTUlTU0lORyBpcyBub3QgY2FsbGVkIGZyb20gY29uZmlndXJlLCBiZWNhdXNlCisjIHVuZm9ydHVuYXRlbHkgJCh0b3Bfc3JjZGlyKSBoYXMgbm8gbWVhbmluZyBpbiBjb25maWd1cmUuCisjIEhvd2V2ZXIgdGhlcmUgYXJlIG90aGVyIHZhcmlhYmxlcywgbGlrZSBDQywgd2hpY2ggYXJlIG9mdGVuIHVzZWQgaW4KKyMgY29uZmlndXJlLCBhbmQgY291bGQgdGhlcmVmb3JlIG5vdCB1c2UgdGhpcyAiZml4ZWQiICRhY19hdXhfZGlyLgorIworIyBBbm90aGVyIHNvbHV0aW9uLCB1c2VkIGhlcmUsIGlzIHRvIGFsd2F5cyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4KKyMgYWJzb2x1dGUgUEFUSC4gIFRoZSBkcmF3YmFjayBpcyB0aGF0IHVzaW5nIGFic29sdXRlIHBhdGhzIHByZXZlbnQgYQorIyBjb25maWd1cmVkIHRyZWUgdG8gYmUgbW92ZWQgd2l0aG91dCByZWNvbmZpZ3VyYXRpb24uCisKK0FDX0RFRlVOKFtBTV9BVVhfRElSX0VYUEFORF0sCitbZG5sIFJlbHkgb24gYXV0b2NvbmYgdG8gc2V0IHVwIENEUEFUSCBwcm9wZXJseS4KK0FDX1BSRVJFUShbMi41MF0pZG5sCisjIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCithbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCitdKQorCisjIEFNX0NPTkRJVElPTkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4CisjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDkKKworIyBBTV9DT05ESVRJT05BTChOQU1FLCBTSEVMTC1DT05ESVRJT04pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRGVmaW5lIGEgY29uZGl0aW9uYWwuCitBQ19ERUZVTihbQU1fQ09ORElUSU9OQUxdLAorW0FDX1BSRVJFUSgyLjUyKWRubAorIGlmZWxzZShbJDFdLCBbVFJVRV0sICBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0sCisJWyQxXSwgW0ZBTFNFXSwgW0FDX0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRpb246ICQxXSldKWRubAorQUNfU1VCU1QoWyQxX1RSVUVdKWRubAorQUNfU1VCU1QoWyQxX0ZBTFNFXSlkbmwKK19BTV9TVUJTVF9OT1RNQUtFKFskMV9UUlVFXSlkbmwKK19BTV9TVUJTVF9OT1RNQUtFKFskMV9GQUxTRV0pZG5sCittNF9kZWZpbmUoW19BTV9DT05EX1ZBTFVFXyQxXSwgWyQyXSlkbmwKK2lmICQyOyB0aGVuCisgICQxX1RSVUU9CisgICQxX0ZBTFNFPScjJworZWxzZQorICAkMV9UUlVFPScjJworICAkMV9GQUxTRT0KK2ZpCitBQ19DT05GSUdfQ09NTUFORFNfUFJFKAorW2lmIHRlc3QgLXogIiR7JDFfVFJVRX0iICYmIHRlc3QgLXogIiR7JDFfRkFMU0V9IjsgdGhlbgorICBBQ19NU0dfRVJST1IoW1tjb25kaXRpb25hbCAiJDEiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuXV0pCitmaV0pXSkKKworIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDkKKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgMTAKKworIyBUaGVyZSBhcmUgYSBmZXcgZGlydHkgaGFja3MgYmVsb3cgdG8gYXZvaWQgbGV0dGluZyBgQUNfUFJPR19DQycgYmUKKyMgd3JpdHRlbiBpbiBjbGVhciwgaW4gd2hpY2ggY2FzZSBhdXRvbWFrZSwgd2hlbiByZWFkaW5nIGFjbG9jYWwubTQsCisjIHdpbGwgdGhpbmsgaXQgc2VlcyBhICp1c2UqLCBhbmQgdGhlcmVmb3JlIHdpbGwgdHJpZ2dlciBhbGwgaXQncworIyBDIHN1cHBvcnQgbWFjaGluZXJ5LiAgQWxzbyBub3RlIHRoYXQgaXQgbWVhbnMgdGhhdCBhdXRvc2Nhbiwgc2VlaW5nCisjIENDIGV0Yy4gaW4gdGhlIE1ha2VmaWxlLCB3aWxsIGFzayBmb3IgYW4gQUNfUFJPR19DQyB1c2UuLi4KKworCisjIF9BTV9ERVBFTkRFTkNJRVMoTkFNRSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTZWUgaG93IHRoZSBjb21waWxlciBpbXBsZW1lbnRzIGRlcGVuZGVuY3kgY2hlY2tpbmcuCisjIE5BTUUgaXMgIkNDIiwgIkNYWCIsICJHQ0oiLCBvciAiT0JKQyIuCisjIFdlIHRyeSBhIGZldyB0ZWNobmlxdWVzIGFuZCB1c2UgdGhhdCB0byBzZXQgYSBzaW5nbGUgY2FjaGUgdmFyaWFibGUuCisjCisjIFdlIGRvbid0IEFDX1JFUVVJUkUgdGhlIGNvcnJlc3BvbmRpbmcgQUNfUFJPR19DQyBzaW5jZSB0aGUgbGF0dGVyIHdhcworIyBtb2RpZmllZCB0byBpbnZva2UgX0FNX0RFUEVOREVOQ0lFUyhDQyk7IHdlIHdvdWxkIGhhdmUgYSBjaXJjdWxhcgorIyBkZXBlbmRlbmN5LCBhbmQgZ2l2ZW4gdGhhdCB0aGUgdXNlciBpcyBub3QgZXhwZWN0ZWQgdG8gcnVuIHRoaXMgbWFjcm8sCisjIGp1c3QgcmVseSBvbiBBQ19QUk9HX0NDLgorQUNfREVGVU4oW19BTV9ERVBFTkRFTkNJRVNdLAorW0FDX1JFUVVJUkUoW0FNX1NFVF9ERVBESVJdKWRubAorQUNfUkVRVUlSRShbQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdKWRubAorQUNfUkVRVUlSRShbQU1fTUFLRV9JTkNMVURFXSlkbmwKK0FDX1JFUVVJUkUoW0FNX0RFUF9UUkFDS10pZG5sCisKK2lmZWxzZShbJDFdLCBDQywgICBbZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PV0sCisgICAgICAgWyQxXSwgQ1hYLCAgW2RlcGNjPSIkQ1hYIiAgYW1fY29tcGlsZXJfbGlzdD1dLAorICAgICAgIFskMV0sIE9CSkMsIFtkZXBjYz0iJE9CSkMiIGFtX2NvbXBpbGVyX2xpc3Q9J2djYzMgZ2NjJ10sCisgICAgICAgWyQxXSwgVVBDLCAgW2RlcGNjPSIkVVBDIiAgYW1fY29tcGlsZXJfbGlzdD1dLAorICAgICAgIFskMV0sIEdDSiwgIFtkZXBjYz0iJEdDSiIgIGFtX2NvbXBpbGVyX2xpc3Q9J2djYzMgZ2NjJ10sCisgICAgICAgICAgICAgICAgICAgW2RlcGNjPSIkJDEiICAgYW1fY29tcGlsZXJfbGlzdD1dKQorCitBQ19DQUNIRV9DSEVDSyhbZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2NdLAorICAgICAgICAgICAgICAgW2FtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlXSwKK1tpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCisgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKKyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAorICAjIGluIEQnLgorICBta2RpciBjb25mdGVzdC5kaXIKKyAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKKyAgY2QgY29uZnRlc3QuZGlyCisgICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQorICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQorICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0CisgICMgZGlyZWN0b3J5LgorICBta2RpciBzdWIKKworICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCisgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29tcGAKKyAgZmkKKyAgYW1fX3VuaXZlcnNhbD1mYWxzZQorICBtNF9jYXNlKFskMV0sIFtDQ10sCisgICAgW2Nhc2UgIiAkZGVwY2MgIiBpbiAjKAorICAgICAqXCAtYXJjaFwgKlwgLWFyY2hcICopIGFtX191bml2ZXJzYWw9dHJ1ZSA7OworICAgICBlc2FjXSwKKyAgICBbQ1hYXSwKKyAgICBbY2FzZSAiICRkZXBjYyAiIGluICMoCisgICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3VuaXZlcnNhbD10cnVlIDs7CisgICAgIGVzYWNdKQorCisgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbworICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCisgICAgIworICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIgbWF5CisgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCisgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgorICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisgICAgZG9uZQorICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKKworICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgorICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5CisgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCisgICAgIyB2ZXJzaW9ucyBoYWQgdHJvdWJsZSB3aXRoIG91dHB1dCBpbiBzdWJkaXJzCisgICAgYW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KKyAgICBhbV9fbWludXNfb2JqPSItbyAkYW1fX29iaiIKKyAgICBjYXNlICRkZXBtb2RlIGluCisgICAgZ2NjKQorICAgICAgIyBUaGlzIGRlcG1vZGUgY2F1c2VzIGEgY29tcGlsZXIgcmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KKyAgICAgIHRlc3QgIiRhbV9fdW5pdmVyc2FsIiA9IGZhbHNlIHx8IGNvbnRpbnVlCisgICAgICA7OworICAgIG5vc2lkZWVmZmVjdCkKKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAorICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAorICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCisJY29udGludWUKKyAgICAgIGVsc2UKKwlicmVhaworICAgICAgZmkKKyAgICAgIDs7CisgICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKKyAgICAgICMgVGhpcyBjb21waWxlciB3b24ndCBncm9rIGAtYyAtbycsIGJ1dCBhbHNvLCB0aGUgbWludXNvIHRlc3QgaGFzCisgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKKyAgICAgICMgc28gd2VhayB0aGF0IHRoZWlyIGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCisgICAgICBhbV9fb2JqPWNvbmZ0ZXN0LiR7T0JKRVhULW99CisgICAgICBhbV9fbWludXNfb2JqPQorICAgICAgOzsKKyAgICBub25lKSBicmVhayA7OworICAgIGVzYWMKKyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PSRhbV9fb2JqIFwKKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAorICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwKKyAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVzdC5lcnIgJiYKKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorICAgICAgIGdyZXAgJGFtX19vYmogc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKKyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCisgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KKyAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCisgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgorICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKKyAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAorICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKKyAgICAgICAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKKyAgICAgICAgYnJlYWsKKyAgICAgIGZpCisgICAgZmkKKyAgZG9uZQorCisgIGNkIC4uCisgIHJtIC1yZiBjb25mdGVzdC5kaXIKK2Vsc2UKKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorZmkKK10pCitBQ19TVUJTVChbJDFERVBNT0RFXSwgW2RlcG1vZGU9JGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlXSkKK0FNX0NPTkRJVElPTkFMKFthbV9fZmFzdGRlcCQxXSwgWworICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAorICAmJiB0ZXN0ICIkYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID0gZ2NjM10pCitdKQorCisKKyMgQU1fU0VUX0RFUERJUgorIyAtLS0tLS0tLS0tLS0tCisjIENob29zZSBhIGRpcmVjdG9yeSBuYW1lIGZvciBkZXBlbmRlbmN5IGZpbGVzLgorIyBUaGlzIG1hY3JvIGlzIEFDX1JFUVVJUkVkIGluIF9BTV9ERVBFTkRFTkNJRVMKK0FDX0RFRlVOKFtBTV9TRVRfREVQRElSXSwKK1tBQ19SRVFVSVJFKFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorQUNfU1VCU1QoW0RFUERJUl0sIFsiJHthbV9fbGVhZGluZ19kb3R9ZGVwcyJdKWRubAorXSkKKworCisjIEFNX0RFUF9UUkFDSworIyAtLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtBTV9ERVBfVFJBQ0tdLAorW0FDX0FSR19FTkFCTEUoZGVwZW5kZW5jeS10cmFja2luZywKK1sgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKKyAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJhY3RvcnNdKQoraWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0aGVuCisgIGFtX2RlcGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCisgIEFNREVQQkFDS1NMQVNIPSdcJworZmkKK0FNX0NPTkRJVElPTkFMKFtBTURFUF0sIFt0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm9dKQorQUNfU1VCU1QoW0FNREVQQkFDS1NMQVNIXSlkbmwKK19BTV9TVUJTVF9OT1RNQUtFKFtBTURFUEJBQ0tTTEFTSF0pZG5sCitdKQorCisjIEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA4CisjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyNzZXJpYWwgNQorCisjIF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorW3sKKyAgIyBBdXRvY29uZiAyLjYyIHF1b3RlcyAtLWZpbGUgYXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90IHdoZW4gZmlsZXMKKyAgIyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3MgcGxheSBzYWZlIGFuZCBvbmx5IGVuYWJsZSB0aGUgZXZhbAorICAjIGlmIHdlIGRldGVjdCB0aGUgcXVvdGluZy4KKyAgY2FzZSAkQ09ORklHX0ZJTEVTIGluCisgICpcJyopIGV2YWwgc2V0IHggIiRDT05GSUdfRklMRVMiIDs7CisgICopICAgc2V0IHggJENPTkZJR19GSUxFUyA7OworICBlc2FjCisgIHNoaWZ0CisgIGZvciBtZgorICBkbworICAgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVwIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCisgICAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKKyAgICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90LgorICAgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5IHRoZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKKyAgICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KKyAgICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxlIHBvc3QtcHJvY2VzcworICAgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24gdG9wIG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCisgICAgIyBHcmVwJ2luZyB0aGUgd2hvbGUgZmlsZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJWCBncmVwIGhhcyBhIGxpbmUKKyAgICAjIGxpbWl0IG9mIDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQgYXQgbGVhc3QgNDAwMC4KKyAgICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcgIiRtZiIgfCBncmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICBkaXJwYXJ0PWBBU19ESVJOQU1FKCIkbWYiKWAKKyAgICBlbHNlCisgICAgICBjb250aW51ZQorICAgIGZpCisgICAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUKKyAgICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCisgICAgREVQRElSPWBzZWQgLW4gJ3MvXkRFUERJUiA9IC8vcCcgPCAiJG1mImAKKyAgICB0ZXN0IC16ICIkREVQRElSIiAmJiBjb250aW51ZQorICAgIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAorICAgIHRlc3QgLXogImFtX19pbmNsdWRlIiAmJiBjb250aW51ZQorICAgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJgCisgICAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKKyAgICBVPWBzZWQgLW4gJ3MvXlUgPSAvL3AnIDwgIiRtZiJgCisgICAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMgd2l0aAorICAgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQorICAgICMgc2ltcGxlc3QgYXBwcm9hY2ggdG8gY2hhbmdpbmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFsdWUgaW4gdGhlCisgICAgIyBleHBhbnNpb24uCisgICAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCisgICAgICBzL14kYW1fX2luY2x1ZGUgJGFtX19xdW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3RlIickL1wxL3AnIDwiJG1mIiB8IFwKKwkgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCisgICAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KKyAgICAgIHRlc3QgLWYgIiRkaXJwYXJ0LyRmaWxlIiAmJiBjb250aW51ZQorICAgICAgZmRpcj1gQVNfRElSTkFNRShbIiRmaWxlIl0pYAorICAgICAgQVNfTUtESVJfUChbJGRpcnBhcnQvJGZkaXJdKQorICAgICAgIyBlY2hvICJjcmVhdGluZyAkZGlycGFydC8kZmlsZSIKKyAgICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgorICAgIGRvbmUKKyAgZG9uZQorfQorXSkjIF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUworCisKKyMgQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGhpcyBtYWNybyBzaG91bGQgb25seSBiZSBpbnZva2VkIG9uY2UgLS0gdXNlIHZpYSBBQ19SRVFVSVJFLgorIworIyBUaGlzIGNvZGUgaXMgb25seSByZXF1aXJlZCB3aGVuIGF1dG9tYXRpYyBkZXBlbmRlbmN5IHRyYWNraW5nCisjIGlzIGVuYWJsZWQuICBGSVhNRS4gIFRoaXMgY3JlYXRlcyBlYWNoIGAuUCcgZmlsZSB0aGF0IHdlIHdpbGwKKyMgbmVlZCBpbiBvcmRlciB0byBib290c3RyYXAgdGhlIGRlcGVuZGVuY3kgaGFuZGxpbmcgY29kZS4KK0FDX0RFRlVOKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10sCitbQUNfQ09ORklHX0NPTU1BTkRTKFtkZXBmaWxlc10sCisgICAgIFt0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorICAgICBbQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIl0pCitdKQorCisjIERvIGFsbCB0aGUgd29yayBmb3IgQXV0b21ha2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LAorIyAyMDA1LCAyMDA2LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDE2CisKKyMgVGhpcyBtYWNybyBhY3R1YWxseSBkb2VzIHRvbyBtdWNoLiAgU29tZSBjaGVja3MgYXJlIG9ubHkgbmVlZGVkIGlmCisjIHlvdXIgcGFja2FnZSBkb2VzIGNlcnRhaW4gdGhpbmdzLiAgQnV0IHRoaXMgaXNuJ3QgcmVhbGx5IGEgYmlnIGRlYWwuCisKKyMgQU1fSU5JVF9BVVRPTUFLRShQQUNLQUdFLCBWRVJTSU9OLCBbTk8tREVGSU5FXSkKKyMgQU1fSU5JVF9BVVRPTUFLRShbT1BUSU9OU10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRoZSBjYWxsIHdpdGggUEFDS0FHRSBhbmQgVkVSU0lPTiBhcmd1bWVudHMgaXMgdGhlIG9sZCBzdHlsZQorIyBjYWxsIChwcmUgYXV0b2NvbmYtMi41MCksIHdoaWNoIGlzIGJlaW5nIHBoYXNlZCBvdXQuICBQQUNLQUdFCisjIGFuZCBWRVJTSU9OIHNob3VsZCBub3cgYmUgcGFzc2VkIHRvIEFDX0lOSVQgYW5kIHJlbW92ZWQgZnJvbQorIyB0aGUgY2FsbCB0byBBTV9JTklUX0FVVE9NQUtFLgorIyBXZSBzdXBwb3J0IGJvdGggY2FsbCBzdHlsZXMgZm9yIHRoZSB0cmFuc2l0aW9uLiAgQWZ0ZXIKKyMgdGhlIG5leHQgQXV0b21ha2UgcmVsZWFzZSwgQXV0b2NvbmYgY2FuIG1ha2UgdGhlIEFDX0lOSVQKKyMgYXJndW1lbnRzIG1hbmRhdG9yeSwgYW5kIHRoZW4gd2UgY2FuIGRlcGVuZCBvbiBhIG5ldyBBdXRvY29uZgorIyByZWxlYXNlIGFuZCBkcm9wIHRoZSBvbGQgY2FsbCBzdXBwb3J0LgorQUNfREVGVU4oW0FNX0lOSVRfQVVUT01BS0VdLAorW0FDX1BSRVJFUShbMi42Ml0pZG5sCitkbmwgQXV0b2NvbmYgd2FudHMgdG8gZGlzYWxsb3cgQU1fIG5hbWVzLiAgV2UgZXhwbGljaXRseSBhbGxvdworZG5sIHRoZSBvbmVzIHdlIGNhcmUgYWJvdXQuCittNF9wYXR0ZXJuX2FsbG93KFteQU1fW0EtWl0rRkxBR1MkXSlkbmwKK0FDX1JFUVVJUkUoW0FNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT05dKWRubAorQUNfUkVRVUlSRShbQUNfUFJPR19JTlNUQUxMXSlkbmwKK2lmIHRlc3QgImBjZCAkc3JjZGlyICYmIHB3ZGAiICE9ICJgcHdkYCI7IHRoZW4KKyAgIyBVc2UgLUkkKHNyY2Rpcikgb25seSB3aGVuICQoc3JjZGlyKSAhPSAuLCBzbyB0aGF0IG1ha2UncyBvdXRwdXQKKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgorICBBQ19TVUJTVChbYW1fX2lzcmNdLCBbJyAtSSQoc3JjZGlyKSddKV9BTV9TVUJTVF9OT1RNQUtFKFthbV9faXNyY10pZG5sCisgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAorICBpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgorICAgIEFDX01TR19FUlJPUihbc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biAibWFrZSBkaXN0Y2xlYW4iIHRoZXJlIGZpcnN0XSkKKyAgZmkKK2ZpCisKKyMgdGVzdCB3aGV0aGVyIHdlIGhhdmUgY3lncGF0aAoraWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KKyAgaWYgKGN5Z3BhdGggLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCisgICAgQ1lHUEFUSF9XPSdjeWdwYXRoIC13JworICBlbHNlCisgICAgQ1lHUEFUSF9XPWVjaG8KKyAgZmkKK2ZpCitBQ19TVUJTVChbQ1lHUEFUSF9XXSkKKworIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgorZG5sIERpc3Rpbmd1aXNoIGJldHdlZW4gb2xkLXN0eWxlIGFuZCBuZXctc3R5bGUgY2FsbHMuCittNF9pZnZhbChbJDJdLAorW200X2lmdmFsKFskM10sIFtfQU1fU0VUX09QVElPTihbbm8tZGVmaW5lXSldKWRubAorIEFDX1NVQlNUKFtQQUNLQUdFXSwgWyQxXSlkbmwKKyBBQ19TVUJTVChbVkVSU0lPTl0sIFskMl0pXSwKK1tfQU1fU0VUX09QVElPTlMoWyQxXSlkbmwKK2RubCBEaWFnbm9zZSBvbGQtc3R5bGUgQUNfSU5JVCB3aXRoIG5ldy1zdHlsZSBBTV9BVVRPTUFLRV9JTklULgorbTRfaWYobTRfaWZkZWYoW0FDX1BBQ0tBR0VfTkFNRV0sIDEpbTRfaWZkZWYoW0FDX1BBQ0tBR0VfVkVSU0lPTl0sIDEpLCAxMSwsCisgIFttNF9mYXRhbChbQUNfSU5JVCBzaG91bGQgYmUgY2FsbGVkIHdpdGggcGFja2FnZSBhbmQgdmVyc2lvbiBhcmd1bWVudHNdKV0pZG5sCisgQUNfU1VCU1QoW1BBQ0tBR0VdLCBbJ0FDX1BBQ0tBR0VfVEFSTkFNRSddKWRubAorIEFDX1NVQlNUKFtWRVJTSU9OXSwgWydBQ19QQUNLQUdFX1ZFUlNJT04nXSldKWRubAorCitfQU1fSUZfT1BUSU9OKFtuby1kZWZpbmVdLCwKK1tBQ19ERUZJTkVfVU5RVU9URUQoUEFDS0FHRSwgIiRQQUNLQUdFIiwgW05hbWUgb2YgcGFja2FnZV0pCisgQUNfREVGSU5FX1VOUVVPVEVEKFZFUlNJT04sICIkVkVSU0lPTiIsIFtWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlXSldKWRubAorCisjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCitBQ19SRVFVSVJFKFtBTV9TQU5JVFlfQ0hFQ0tdKWRubAorQUNfUkVRVUlSRShbQUNfQVJHX1BST0dSQU1dKWRubAorQU1fTUlTU0lOR19QUk9HKEFDTE9DQUwsIGFjbG9jYWwtJHthbV9fYXBpX3ZlcnNpb259KQorQU1fTUlTU0lOR19QUk9HKEFVVE9DT05GLCBhdXRvY29uZikKK0FNX01JU1NJTkdfUFJPRyhBVVRPTUFLRSwgYXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259KQorQU1fTUlTU0lOR19QUk9HKEFVVE9IRUFERVIsIGF1dG9oZWFkZXIpCitBTV9NSVNTSU5HX1BST0coTUFLRUlORk8sIG1ha2VpbmZvKQorQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKK0FDX1JFUVVJUkUoW0FNX1BST0dfSU5TVEFMTF9TVFJJUF0pZG5sCitBQ19SRVFVSVJFKFtBTV9QUk9HX01LRElSX1BdKWRubAorIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFyZ2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KKyMgc29tZSBwbGF0Zm9ybXMuCitBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCitBQ19SRVFVSVJFKFtBQ19QUk9HX01BS0VfU0VUXSlkbmwKK0FDX1JFUVVJUkUoW0FNX1NFVF9MRUFESU5HX0RPVF0pZG5sCitfQU1fSUZfT1BUSU9OKFt0YXItdXN0YXJdLCBbX0FNX1BST0dfVEFSKFt1c3Rhcl0pXSwKKwkgICAgICBbX0FNX0lGX09QVElPTihbdGFyLXBheF0sIFtfQU1fUFJPR19UQVIoW3BheF0pXSwKKwkJCSAgICAgW19BTV9QUk9HX1RBUihbdjddKV0pXSkKK19BTV9JRl9PUFRJT04oW25vLWRlcGVuZGVuY2llc10sLAorW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NDXSwKKwkJICBbX0FNX0RFUEVOREVOQ0lFUyhDQyldLAorCQkgIFtkZWZpbmUoW0FDX1BST0dfQ0NdLAorCQkJICBkZWZuKFtBQ19QUk9HX0NDXSlbX0FNX0RFUEVOREVOQ0lFUyhDQyldKV0pZG5sCitBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DWFhdLAorCQkgIFtfQU1fREVQRU5ERU5DSUVTKENYWCldLAorCQkgIFtkZWZpbmUoW0FDX1BST0dfQ1hYXSwKKwkJCSAgZGVmbihbQUNfUFJPR19DWFhdKVtfQU1fREVQRU5ERU5DSUVTKENYWCldKV0pZG5sCitBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19PQkpDXSwKKwkJICBbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0sCisJCSAgW2RlZmluZShbQUNfUFJPR19PQkpDXSwKKwkJCSAgZGVmbihbQUNfUFJPR19PQkpDXSlbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0pXSlkbmwKK10pCitfQU1fSUZfT1BUSU9OKFtzaWxlbnQtcnVsZXNdLCBbQUNfUkVRVUlSRShbQU1fU0lMRU5UX1JVTEVTXSldKWRubAorZG5sIFRoZSBgcGFyYWxsZWwtdGVzdHMnIGRyaXZlciBtYXkgbmVlZCB0byBrbm93IGFib3V0IEVYRUVYVCwgc28gYWRkIHRoZQorZG5sIGBhbV9fRVhFRVhUJyBjb25kaXRpb25hbCBpZiBfQU1fQ09NUElMRVJfRVhFRVhUIHdhcyBzZWVuLiAgVGhpcyBtYWNybworZG5sIGlzIGhvb2tlZCBvbnRvIF9BQ19DT01QSUxFUl9FWEVFWFQgZWFybHksIHNlZSBiZWxvdy4KK0FDX0NPTkZJR19DT01NQU5EU19QUkUoZG5sCitbbTRfcHJvdmlkZV9pZihbX0FNX0NPTVBJTEVSX0VYRUVYVF0sCisgIFtBTV9DT05ESVRJT05BTChbYW1fX0VYRUVYVF0sIFt0ZXN0IC1uICIkRVhFRVhUIl0pXSldKWRubAorXSkKKworZG5sIEhvb2sgaW50byBgX0FDX0NPTVBJTEVSX0VYRUVYVCcgZWFybHkgdG8gbGVhcm4gaXRzIGV4cGFuc2lvbi4gIERvIG5vdAorZG5sIGFkZCB0aGUgY29uZGl0aW9uYWwgcmlnaHQgaGVyZSwgYXMgX0FDX0NPTVBJTEVSX0VYRUVYVCBtYXkgYmUgZnVydGhlcgorZG5sIG1hbmdsZWQgYnkgQXV0b2NvbmYgYW5kIHJ1biBpbiBhIHNoZWxsIGNvbmRpdGlvbmFsIHN0YXRlbWVudC4KK200X2RlZmluZShbX0FDX0NPTVBJTEVSX0VYRUVYVF0sCittNF9kZWZuKFtfQUNfQ09NUElMRVJfRVhFRVhUXSlbbTRfcHJvdmlkZShbX0FNX0NPTVBJTEVSX0VYRUVYVF0pXSkKKworCisjIFdoZW4gY29uZmlnLnN0YXR1cyBnZW5lcmF0ZXMgYSBoZWFkZXIsIHdlIG11c3QgdXBkYXRlIHRoZSBzdGFtcC1oIGZpbGUuCisjIFRoaXMgZmlsZSByZXNpZGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGhlYWRlcgorIyB0aGF0IGlzIGdlbmVyYXRlZC4gIFRoZSBzdGFtcCBmaWxlcyBhcmUgbnVtYmVyZWQgdG8gaGF2ZSBkaWZmZXJlbnQgbmFtZXMuCisKKyMgQXV0b2NvbmYgY2FsbHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBkZWZpbmVkKSBpbiB0aGUKKyMgbG9vcCB3aGVyZSBjb25maWcuc3RhdHVzIGNyZWF0ZXMgdGhlIGhlYWRlcnMsIHNvIHdlIGNhbiBnZW5lcmF0ZQorIyBvdXIgc3RhbXAgZmlsZXMgdGhlcmUuCitBQ19ERUZVTihbX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PS10sCitbIyBDb21wdXRlICQxJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgorX2FtX2FyZz0kMQorX2FtX3N0YW1wX2NvdW50PTEKK2ZvciBfYW1faGVhZGVyIGluICRjb25maWdfaGVhZGVycyA6OyBkbworICBjYXNlICRfYW1faGVhZGVyIGluCisgICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoqICkKKyAgICAgIGJyZWFrIDs7CisgICAgKiApCisgICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7CisgIGVzYWMKK2RvbmUKK2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gQVNfRElSTkFNRShbIiRfYW1fYXJnIl0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKKworIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgQU1fUFJPR19JTlNUQUxMX1NICisjIC0tLS0tLS0tLS0tLS0tLS0tLQorIyBEZWZpbmUgJGluc3RhbGxfc2guCitBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NIXSwKK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCitpZiB0ZXN0IHgiJHtpbnN0YWxsX3NofSIgIT0geHNldDsgdGhlbgorICBjYXNlICRhbV9hdXhfZGlyIGluCisgICpcICogfCAqXAkqKQorICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAnJGFtX2F1eF9kaXIvaW5zdGFsbC1zaCciIDs7CisgICopCisgICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL2luc3RhbGwtc2giCisgIGVzYWMKK2ZpCitBQ19TVUJTVChpbnN0YWxsX3NoKV0pCisKKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCAyCisKKyMgQ2hlY2sgd2hldGhlciB0aGUgdW5kZXJseWluZyBmaWxlLXN5c3RlbSBzdXBwb3J0cyBmaWxlbmFtZXMKKyMgd2l0aCBhIGxlYWRpbmcgZG90LiAgRm9yIGluc3RhbmNlIE1TLURPUyBkb2Vzbid0LgorQUNfREVGVU4oW0FNX1NFVF9MRUFESU5HX0RPVF0sCitbcm0gLXJmIC50c3QgMj4vZGV2L251bGwKK21rZGlyIC50c3QgMj4vZGV2L251bGwKK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgorICBhbV9fbGVhZGluZ19kb3Q9LgorZWxzZQorICBhbV9fbGVhZGluZ19kb3Q9XworZmkKK3JtZGlyIC50c3QgMj4vZGV2L251bGwKK0FDX1NVQlNUKFthbV9fbGVhZGluZ19kb3RdKV0pCisKKyMgQ2hlY2sgdG8gc2VlIGhvdyAnbWFrZScgdHJlYXRzIGluY2x1ZGVzLgkgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAyLCAyMDAzLCAyMDA1LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCA0CisKKyMgQU1fTUFLRV9JTkNMVURFKCkKKyMgLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2sgdG8gc2VlIGhvdyBtYWtlIHRyZWF0cyBpbmNsdWRlcy4KK0FDX0RFRlVOKFtBTV9NQUtFX0lOQ0xVREVdLAorW2FtX21ha2U9JHtNQUtFLW1ha2V9CitjYXQgPiBjb25maW5jIDw8ICdFTkQnCithbV9fZG9pdDoKKwlAZWNobyB0aGlzIGlzIHRoZSBhbV9fZG9pdCB0YXJnZXQKKy5QSE9OWTogYW1fX2RvaXQKK0VORAorIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGlyZWN0aXZlLCBqdXN0IGNvbW1lbnQgb3V0IHRoZSBjb2RlLgorQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlXSkKK2FtX19pbmNsdWRlPSIjIgorYW1fX3F1b3RlPQorX2FtX3Jlc3VsdD1ub25lCisjIEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorZWNobyAiaW5jbHVkZSBjb25maW5jIiA+IGNvbmZtZgorIyBJZ25vcmUgYWxsIGtpbmRzIG9mIGFkZGl0aW9uYWwgb3V0cHV0IGZyb20gYG1ha2UnLgorY2FzZSBgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbGAgaW4gIygKKyp0aGVcIGFtX19kb2l0XCB0YXJnZXQqKQorICBhbV9faW5jbHVkZT1pbmNsdWRlCisgIGFtX19xdW90ZT0KKyAgX2FtX3Jlc3VsdD1HTlUKKyAgOzsKK2VzYWMKKyMgTm93IHRyeSBCU0QgbWFrZSBzdHlsZSBpbmNsdWRlLgoraWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgorICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorICAgY2FzZSBgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbGAgaW4gIygKKyAgICp0aGVcIGFtX19kb2l0XCB0YXJnZXQqKQorICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQorICAgICBhbV9fcXVvdGU9IlwiIgorICAgICBfYW1fcmVzdWx0PUJTRAorICAgICA7OworICAgZXNhYworZmkKK0FDX1NVQlNUKFthbV9faW5jbHVkZV0pCitBQ19TVUJTVChbYW1fX3F1b3RlXSkKK0FDX01TR19SRVNVTFQoWyRfYW1fcmVzdWx0XSkKK3JtIC1mIGNvbmZpbmMgY29uZm1mCitdKQorCisjIEZha2UgdGhlIGV4aXN0ZW5jZSBvZiBwcm9ncmFtcyB0aGF0IEdOVSBtYWludGFpbmVycyB1c2UuICAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA4CisjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDYKKworIyBBTV9NSVNTSU5HX1BST0coTkFNRSwgUFJPR1JBTSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbQU1fTUlTU0lOR19QUk9HXSwKK1tBQ19SRVFVSVJFKFtBTV9NSVNTSU5HX0hBU19SVU5dKQorJDE9JHskMS0iJHthbV9taXNzaW5nX3J1bn0kMiJ9CitBQ19TVUJTVCgkMSldKQorCisKKyMgQU1fTUlTU0lOR19IQVNfUlVOCisjIC0tLS0tLS0tLS0tLS0tLS0tLQorIyBEZWZpbmUgTUlTU0lORyBpZiBub3QgZGVmaW5lZCBzbyBmYXIgYW5kIHRlc3QgaWYgaXQgc3VwcG9ydHMgLS1ydW4uCisjIElmIGl0IGRvZXMsIHNldCBhbV9taXNzaW5nX3J1biB0byB1c2UgaXQsIG90aGVyd2lzZSwgdG8gbm90aGluZy4KK0FDX0RFRlVOKFtBTV9NSVNTSU5HX0hBU19SVU5dLAorW0FDX1JFUVVJUkUoW0FNX0FVWF9ESVJfRVhQQU5EXSlkbmwKK0FDX1JFUVVJUkVfQVVYX0ZJTEUoW21pc3NpbmddKWRubAoraWYgdGVzdCB4IiR7TUlTU0lORytzZXR9IiAhPSB4c2V0OyB0aGVuCisgIGNhc2UgJGFtX2F1eF9kaXIgaW4KKyAgKlwgKiB8ICpcCSopCisgICAgTUlTU0lORz0iXCR7U0hFTEx9IFwiJGFtX2F1eF9kaXIvbWlzc2luZ1wiIiA7OworICAqKQorICAgIE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIiA7OworICBlc2FjCitmaQorIyBVc2UgZXZhbCB0byBleHBhbmQgJFNIRUxMCitpZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgorICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgorZWxzZQorICBhbV9taXNzaW5nX3J1bj0KKyAgQUNfTVNHX1dBUk4oW2BtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nXSkKK2ZpCitdKQorCisjIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBBTV9QUk9HX01LRElSX1AKKyMgLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIGZvciBgbWtkaXIgLXAnLgorQUNfREVGVU4oW0FNX1BST0dfTUtESVJfUF0sCitbQUNfUFJFUkVRKFsyLjYwXSlkbmwKK0FDX1JFUVVJUkUoW0FDX1BST0dfTUtESVJfUF0pZG5sCitkbmwgQXV0b21ha2UgMS44IHRvIDEuOS42IHVzZWQgdG8gZGVmaW5lIG1rZGlyX3AuICBXZSBub3cgdXNlIE1LRElSX1AsCitkbmwgd2hpbGUga2VlcGluZyBhIGRlZmluaXRpb24gb2YgbWtkaXJfcCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KK2RubCBATUtESVJfUEAgaXMgbWFnaWM6IEFDX09VVFBVVCBhZGp1c3RzIGl0cyB2YWx1ZSBmb3IgZWFjaCBNYWtlZmlsZS4KK2RubCBIb3dldmVyIHdlIGNhbm5vdCBkZWZpbmUgbWtkaXJfcCBhcyAkKE1LRElSX1ApIGZvciB0aGUgc2FrZSBvZgorZG5sIE1ha2VmaWxlLmlucyB0aGF0IGRvIG5vdCBkZWZpbmUgTUtESVJfUCwgc28gd2UgZG8gb3VyIG93bgorZG5sIGFkanVzdG1lbnQgdXNpbmcgdG9wX2J1aWxkZGlyICh3aGljaCBpcyBkZWZpbmVkIG1vcmUgb2Z0ZW4gdGhhbgorZG5sIE1LRElSX1ApLgorQUNfU1VCU1QoW21rZGlyX3BdLCBbIiRNS0RJUl9QIl0pZG5sCitjYXNlICRta2Rpcl9wIGluCisgIFtbXFwvJF1dKiB8ID86W1tcXC9dXSopIDs7CisgICovKikgbWtkaXJfcD0iXCQodG9wX2J1aWxkZGlyKS8kbWtkaXJfcCIgOzsKK2VzYWMKK10pCisKKyMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDQKKworIyBfQU1fTUFOR0xFX09QVElPTihOQU1FKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW19BTV9NQU5HTEVfT1BUSU9OXSwKK1tbX0FNX09QVElPTl9dbTRfYnBhdHN1YnN0KCQxLCBbW15hLXpBLVowLTlfXV0sIFtfXSldKQorCisjIF9BTV9TRVRfT1BUSU9OKE5BTUUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTZXQgb3B0aW9uIE5BTUUuICBQcmVzZW50bHkgdGhhdCBvbmx5IG1lYW5zIGRlZmluaW5nIGEgZmxhZyBmb3IgdGhpcyBvcHRpb24uCitBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05dLAorW200X2RlZmluZShfQU1fTUFOR0xFX09QVElPTihbJDFdKSwgMSldKQorCisjIF9BTV9TRVRfT1BUSU9OUyhPUFRJT05TKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE9QVElPTlMgaXMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBBdXRvbWFrZSBvcHRpb25zLgorQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OU10sCitbbTRfZm9yZWFjaF93KFtfQU1fT3B0aW9uXSwgWyQxXSwgW19BTV9TRVRfT1BUSU9OKF9BTV9PcHRpb24pXSldKQorCisjIF9BTV9JRl9PUFRJT04oT1BUSU9OLCBJRi1TRVQsIFtJRi1OT1QtU0VUXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KK0FDX0RFRlVOKFtfQU1fSUZfT1BUSU9OXSwKK1ttNF9pZnNldChfQU1fTUFOR0xFX09QVElPTihbJDFdKSwgWyQyXSwgWyQzXSldKQorCisjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLiAgICAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1LCAyMDA4CisjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDUKKworIyBBTV9TQU5JVFlfQ0hFQ0sKKyMgLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbQU1fU0FOSVRZX0NIRUNLXSwKK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZV0pCisjIEp1c3QgaW4gY2FzZQorc2xlZXAgMQorZWNobyB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCisjIFJlamVjdCB1bnNhZmUgY2hhcmFjdGVycyBpbiAkc3JjZGlyIG9yIHRoZSBhYnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9yeQorIyBuYW1lLiAgQWNjZXB0IHNwYWNlIGFuZCB0YWIgb25seSBpbiB0aGUgbGF0dGVyLgorYW1fbGY9JworJworY2FzZSBgcHdkYCBpbgorICAqW1tcXFwiXCNcJFwmXCdcYCRhbV9sZl1dKikKKyAgICBBQ19NU0dfRVJST1IoW3Vuc2FmZSBhYnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9yeSBuYW1lXSk7OworZXNhYworY2FzZSAkc3JjZGlyIGluCisgICpbW1xcXCJcI1wkXCZcJ1xgJGFtX2xmXCBcCV1dKikKKyAgICBBQ19NU0dfRVJST1IoW3Vuc2FmZSBzcmNkaXIgdmFsdWU6IGAkc3JjZGlyJ10pOzsKK2VzYWMKKworIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncworIyBhcmd1bWVudHMuICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBpcyBhY3R1YWxseSBhCisjIHN5bWxpbms7IHNvbWUgc3lzdGVtcyBwbGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0aW1lIG9mIHN5bWxpbmtzCisjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmluZworIyBkaXJlY3RvcnkpLgoraWYgKAorICAgc2V0IFggYGxzIC1MdCAiJHNyY2Rpci9jb25maWd1cmUiIGNvbmZ0ZXN0LmZpbGUgMj4gL2Rldi9udWxsYAorICAgaWYgdGVzdCAiJFsqXSIgPSAiWCI7IHRoZW4KKyAgICAgICMgLUwgZGlkbid0IHdvcmsuCisgICAgICBzZXQgWCBgbHMgLXQgIiRzcmNkaXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlYAorICAgZmkKKyAgIHJtIC1mIGNvbmZ0ZXN0LmZpbGUKKyAgIGlmIHRlc3QgIiRbKl0iICE9ICJYICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGUiIFwKKyAgICAgICYmIHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCisKKyAgICAgICMgSWYgbmVpdGhlciBtYXRjaGVkLCB0aGVuIHdlIGhhdmUgYSBicm9rZW4gbHMuICBUaGlzIGNhbiBoYXBwZW4KKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKKyAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKKyAgICAgICMgaGFwcGVuZWQuICBTdWNoIGEgc3lzdGVtIGNvdWxkIG5vdCBiZSBjb25zaWRlcmVkICJzYW5lIi4KKyAgICAgIEFDX01TR19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgorYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudF0pCisgICBmaQorCisgICB0ZXN0ICIkWzJdIiA9IGNvbmZ0ZXN0LmZpbGUKKyAgICkKK3RoZW4KKyAgICMgT2suCisgICA6CitlbHNlCisgICBBQ19NU0dfRVJST1IoW25ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQorQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2tdKQorZmkKK0FDX01TR19SRVNVTFQoeWVzKV0pCisKKyMgQ29weXJpZ2h0IChDKSAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCAxCisKKyMgQU1fU0lMRU5UX1JVTEVTKFtERUZBVUxUXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRW5hYmxlIGxlc3MgdmVyYm9zZSBidWlsZCBydWxlczsgd2l0aCB0aGUgZGVmYXVsdCBzZXQgdG8gREVGQVVMVAorIyAoYHllcycgYmVpbmcgbGVzcyB2ZXJib3NlLCBgbm8nIG9yIGVtcHR5IGJlaW5nIHZlcmJvc2UpLgorQUNfREVGVU4oW0FNX1NJTEVOVF9SVUxFU10sCitbQUNfQVJHX0VOQUJMRShbc2lsZW50LXJ1bGVzXSwKK1sgIC0tZW5hYmxlLXNpbGVudC1ydWxlcyAgICAgICAgICBsZXNzIHZlcmJvc2UgYnVpbGQgb3V0cHV0ICh1bmRvOiBgbWFrZSBWPTEnKQorICAtLWRpc2FibGUtc2lsZW50LXJ1bGVzICAgICAgICAgdmVyYm9zZSBidWlsZCBvdXRwdXQgKHVuZG86IGBtYWtlIFY9MCcpXSkKK2Nhc2UgJGVuYWJsZV9zaWxlbnRfcnVsZXMgaW4KK3llcykgQU1fREVGQVVMVF9WRVJCT1NJVFk9MDs7CitubykgIEFNX0RFRkFVTFRfVkVSQk9TSVRZPTE7OworKikgICBBTV9ERUZBVUxUX1ZFUkJPU0lUWT1tNF9pZihbJDFdLCBbeWVzXSwgWzBdLCBbMV0pOzsKK2VzYWMKK0FDX1NVQlNUKFtBTV9ERUZBVUxUX1ZFUkJPU0lUWV0pZG5sCitBTV9CQUNLU0xBU0g9J1wnCitBQ19TVUJTVChbQU1fQkFDS1NMQVNIXSlkbmwKK19BTV9TVUJTVF9OT1RNQUtFKFtBTV9CQUNLU0xBU0hdKWRubAorXSkKKworIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgQU1fUFJPR19JTlNUQUxMX1NUUklQCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBPbmUgaXNzdWUgd2l0aCB2ZW5kb3IgYGluc3RhbGwnIChldmVuIEdOVSkgaXMgdGhhdCB5b3UgY2FuJ3QKKyMgc3BlY2lmeSB0aGUgcHJvZ3JhbSB1c2VkIHRvIHN0cmlwIGJpbmFyaWVzLiAgVGhpcyBpcyBlc3BlY2lhbGx5CisjIGFubm95aW5nIGluIGNyb3NzLWNvbXBpbGluZyBlbnZpcm9ubWVudHMsIHdoZXJlIHRoZSBidWlsZCdzIHN0cmlwCisjIGlzIHVubGlrZWx5IHRvIGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFyaWVzLgorIyBGb3J0dW5hdGVseSBpbnN0YWxsLXNoIHdpbGwgaG9ub3IgYSBTVFJJUFBST0cgdmFyaWFibGUsIHNvIHdlCisjIGFsd2F5cyB1c2UgaW5zdGFsbC1zaCBpbiBgbWFrZSBpbnN0YWxsLXN0cmlwJywgYW5kIGluaXRpYWxpemUKKyMgU1RSSVBQUk9HIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBTVFJJUCB2YXJpYWJsZSAoc2V0IGJ5IHRoZSB1c2VyKS4KK0FDX0RFRlVOKFtBTV9QUk9HX0lOU1RBTExfU1RSSVBdLAorW0FDX1JFUVVJUkUoW0FNX1BST0dfSU5TVEFMTF9TSF0pZG5sCisjIEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKKyMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQKKyMgdG9vbCB0byB1c2UgaW4gY3Jvc3MtY29tcGlsYXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UKKyMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCitkbmwgRG9uJ3QgdGVzdCBmb3IgJGNyb3NzX2NvbXBpbGluZyA9IHllcywgYmVjYXVzZSBpdCBtaWdodCBiZSBgbWF5YmUnLgoraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgIT0gbm87IHRoZW4KKyAgQUNfQ0hFQ0tfVE9PTChbU1RSSVBdLCBbc3RyaXBdLCA6KQorZmkKK0lOU1RBTExfU1RSSVBfUFJPR1JBTT0iXCQoaW5zdGFsbF9zaCkgLWMgLXMiCitBQ19TVUJTVChbSU5TVEFMTF9TVFJJUF9QUk9HUkFNXSldKQorCisjIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgMgorCisjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxFKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUHJldmVudCBBdXRvbWFrZSBmcm9tIG91dHB1dHRpbmcgVkFSSUFCTEUgPSBAVkFSSUFCTEVAIGluIE1ha2VmaWxlLmluLgorIyBUaGlzIG1hY3JvIGlzIHRyYWNlZCBieSBBdXRvbWFrZS4KK0FDX0RFRlVOKFtfQU1fU1VCU1RfTk9UTUFLRV0pCisKKyMgQU1fU1VCU1RfTk9UTUFLRShWQVJJQUJMRSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFB1YmxpYyBzaXN0ZXIgb2YgX0FNX1NVQlNUX05PVE1BS0UuCitBQ19ERUZVTihbQU1fU1VCU1RfTk9UTUFLRV0sIFtfQU1fU1VCU1RfTk9UTUFLRSgkQCldKQorCisjIENoZWNrIGhvdyB0byBjcmVhdGUgYSB0YXJiYWxsLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCAyCisKKyMgX0FNX1BST0dfVEFSKEZPUk1BVCkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwgaW4gZm9ybWF0IEZPUk1BVC4KKyMgRk9STUFUIHNob3VsZCBiZSBvbmUgb2YgYHY3JywgYHVzdGFyJywgb3IgYHBheCcuCisjCisjIFN1YnN0aXR1dGUgYSB2YXJpYWJsZSAkKGFtX190YXIpIHRoYXQgaXMgYSBjb21tYW5kCisjIHdyaXRpbmcgdG8gc3Rkb3V0IGEgRk9STUFULXRhcmJhbGwgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5CisjICR0YXJkaXIuCisjICAgICB0YXJkaXI9ZGlyZWN0b3J5ICYmICQoYW1fX3RhcikgPiByZXN1bHQudGFyCisjCisjIFN1YnN0aXR1dGUgYSB2YXJpYWJsZSAkKGFtX191bnRhcikgdGhhdCBleHRyYWN0IHN1Y2gKKyMgYSB0YXJiYWxsIHJlYWQgZnJvbSBzdGRpbi4KKyMgICAgICQoYW1fX3VudGFyKSA8IHJlc3VsdC50YXIKK0FDX0RFRlVOKFtfQU1fUFJPR19UQVJdLAorWyMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KK0FNX01JU1NJTkdfUFJPRyhbQU1UQVJdLCBbdGFyXSkKK200X2lmKFskMV0sIFt2N10sCisgICAgIFthbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLSddLAorICAgICBbbTRfY2FzZShbJDFdLCBbdXN0YXJdLCwgW3BheF0sLAorICAgICAgICAgICAgICBbbTRfZmF0YWwoW1Vua25vd24gdGFyIGZvcm1hdF0pXSkKK0FDX01TR19DSEVDS0lORyhbaG93IHRvIGNyZWF0ZSBhICQxIHRhciBhcmNoaXZlXSkKKyMgTG9vcCBvdmVyIGFsbCBrbm93biBtZXRob2RzIHRvIGNyZWF0ZSBhIHRhciBhcmNoaXZlIHVudGlsIG9uZSB3b3Jrcy4KK19hbV90b29scz0nZ251dGFyIG00X2lmKFskMV0sIFt1c3Rhcl0sIFtwbGFpbnRhcl0pIHBheCBjcGlvIG5vbmUnCitfYW1fdG9vbHM9JHthbV9jdl9wcm9nX3Rhcl8kMS0kX2FtX3Rvb2xzfQorIyBEbyBub3QgZm9sZCB0aGUgYWJvdmUgdHdvIGxpbmUgaW50byBvbmUsIGJlY2F1c2UgVHJ1NjQgc2ggYW5kCisjIFNvbGFyaXMgc2ggd2lsbCBub3QgZ3JvayBzcGFjZXMgaW4gdGhlIHJocyBvZiBgLScuCitmb3IgX2FtX3Rvb2wgaW4gJF9hbV90b29scworZG8KKyAgY2FzZSAkX2FtX3Rvb2wgaW4KKyAgZ251dGFyKQorICAgIGZvciBfYW1fdGFyIGluIHRhciBnbnV0YXIgZ3RhcjsKKyAgICBkbworICAgICAgQU1fUlVOX0xPRyhbJF9hbV90YXIgLS12ZXJzaW9uXSkgJiYgYnJlYWsKKyAgICBkb25lCisgICAgYW1fX3Rhcj0iJF9hbV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIkJHRhcmRpciInCisgICAgYW1fX3Rhcl89IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJHRhcmRpciInCisgICAgYW1fX3VudGFyPSIkX2FtX3RhciAteGYgLSIKKyAgICA7OworICBwbGFpbnRhcikKKyAgICAjIE11c3Qgc2tpcCBHTlUgdGFyOiBpZiBpdCBkb2VzIG5vdCBzdXBwb3J0IC0tZm9ybWF0PSBpdCBkb2Vzbid0IGNyZWF0ZQorICAgICMgdXN0YXIgdGFyYmFsbCBlaXRoZXIuCisgICAgKHRhciAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMSAmJiBjb250aW51ZQorICAgIGFtX190YXI9J3RhciBjaGYgLSAiJCR0YXJkaXIiJworICAgIGFtX190YXJfPSd0YXIgY2hmIC0gIiR0YXJkaXIiJworICAgIGFtX191bnRhcj0ndGFyIHhmIC0nCisgICAgOzsKKyAgcGF4KQorICAgIGFtX190YXI9J3BheCAtTCAteCAkMSAtdyAiJCR0YXJkaXIiJworICAgIGFtX190YXJfPSdwYXggLUwgLXggJDEgLXcgIiR0YXJkaXIiJworICAgIGFtX191bnRhcj0ncGF4IC1yJworICAgIDs7CisgIGNwaW8pCisgICAgYW1fX3Rhcj0nZmluZCAiJCR0YXJkaXIiIC1wcmludCB8IGNwaW8gLW8gLUggJDEgLUwnCisgICAgYW1fX3Rhcl89J2ZpbmQgIiR0YXJkaXIiIC1wcmludCB8IGNwaW8gLW8gLUggJDEgLUwnCisgICAgYW1fX3VudGFyPSdjcGlvIC1pIC1IICQxIC1kJworICAgIDs7CisgIG5vbmUpCisgICAgYW1fX3Rhcj1mYWxzZQorICAgIGFtX190YXJfPWZhbHNlCisgICAgYW1fX3VudGFyPWZhbHNlCisgICAgOzsKKyAgZXNhYworCisgICMgSWYgdGhlIHZhbHVlIHdhcyBjYWNoZWQsIHN0b3Agbm93LiAgV2UganVzdCB3YW50ZWQgdG8gaGF2ZSBhbV9fdGFyCisgICMgYW5kIGFtX191bnRhciBzZXQuCisgIHRlc3QgLW4gIiR7YW1fY3ZfcHJvZ190YXJfJDF9IiAmJiBicmVhaworCisgICMgdGFyL3VudGFyIGEgZHVtbXkgZGlyZWN0b3J5LCBhbmQgc3RvcCBpZiB0aGUgY29tbWFuZCB3b3JrcworICBybSAtcmYgY29uZnRlc3QuZGlyCisgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorICBlY2hvIEdyZXBNZSA+IGNvbmZ0ZXN0LmRpci9maWxlCisgIEFNX1JVTl9MT0coW3RhcmRpcj1jb25mdGVzdC5kaXIgJiYgZXZhbCAkYW1fX3Rhcl8gPmNvbmZ0ZXN0LnRhcl0pCisgIHJtIC1yZiBjb25mdGVzdC5kaXIKKyAgaWYgdGVzdCAtcyBjb25mdGVzdC50YXI7IHRoZW4KKyAgICBBTV9SVU5fTE9HKFskYW1fX3VudGFyIDxjb25mdGVzdC50YXJdKQorICAgIGdyZXAgR3JlcE1lIGNvbmZ0ZXN0LmRpci9maWxlID4vZGV2L251bGwgMj4mMSAmJiBicmVhaworICBmaQorZG9uZQorcm0gLXJmIGNvbmZ0ZXN0LmRpcgorCitBQ19DQUNIRV9WQUwoW2FtX2N2X3Byb2dfdGFyXyQxXSwgW2FtX2N2X3Byb2dfdGFyXyQxPSRfYW1fdG9vbF0pCitBQ19NU0dfUkVTVUxUKFskYW1fY3ZfcHJvZ190YXJfJDFdKV0pCitBQ19TVUJTVChbYW1fX3Rhcl0pCitBQ19TVUJTVChbYW1fX3VudGFyXSkKK10pICMgX0FNX1BST0dfVEFSCisKK200X2luY2x1ZGUoW200L2dldHRleHQubTRdKQorbTRfaW5jbHVkZShbbTQvZ3RrLWRvYy5tNF0pCittNF9pbmNsdWRlKFttNC9pY29udi5tNF0pCittNF9pbmNsdWRlKFttNC9saWItbGQubTRdKQorbTRfaW5jbHVkZShbbTQvbGliLWxpbmsubTRdKQorbTRfaW5jbHVkZShbbTQvbGliLXByZWZpeC5tNF0pCittNF9pbmNsdWRlKFttNC9saWJ0b29sLm00XSkKK200X2luY2x1ZGUoW200L2x0b3B0aW9ucy5tNF0pCittNF9pbmNsdWRlKFttNC9sdHN1Z2FyLm00XSkKK200X2luY2x1ZGUoW200L2x0dmVyc2lvbi5tNF0pCittNF9pbmNsdWRlKFttNC9sdH5vYnNvbGV0ZS5tNF0pCittNF9pbmNsdWRlKFttNC9ubHMubTRdKQorbTRfaW5jbHVkZShbbTQvcG8ubTRdKQorbTRfaW5jbHVkZShbbTQvcHJvZ3Rlc3QubTRdKQorbTRfaW5jbHVkZShbbTQvdGxzLm00XSkKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2F1dG9nZW4uc2ggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9hdXRvZ2VuLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY1ZTgzZjIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9hdXRvZ2VuLnNoCkBAIC0wLDAgKzEsOTcgQEAKKyMhL2Jpbi9zaAorCisjCisjIEhlbHBzIGdlbmVyYXRlIGF1dG9jb25mL2F1dG9tYWtlIHN0dWZmLCB3aGVuIGNvZGUgaXMgY2hlY2tlZCBvdXQgZnJvbSBTQ00uCisjCisjIENvcHlyaWdodCAoQykgMjAwNi0yMDA5IC0gS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisKK3NyY2Rpcj1gZGlybmFtZSAkMGAKK3Rlc3QgLXogIiRzcmNkaXIiICYmIHNyY2Rpcj0uCisKK1RIRURJUj1gcHdkYAorY2QgJHNyY2RpcgorRElFPTAKK0hBU19HVEtET0M9MQorCisoYXV0b3BvaW50IC0tdmVyc2lvbikgPCAvZGV2L251bGwgPiAvZGV2L251bGwgMj4mMSB8fCB7CisgICAgICAgIGVjaG8KKyAgICAgICAgZWNobyAiWW91IG11c3QgaGF2ZSBhdXRvcG9pbnQgaW5zdGFsbGVkIHRvIGdlbmVyYXRlIHV0aWwtbGludXgtbmcgYnVpbGQgc3lzdGVtLi4iCisgICAgICAgIGVjaG8gIkRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBwYWNrYWdlIGZvciB5b3VyIGRpc3RyaWJ1dGlvbiwiCisgICAgICAgIGVjaG8gIm9yIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ2V0dGV4dCIKKyAgICAgICAgRElFPTEKK30KKyhhdXRvY29uZiAtLXZlcnNpb24pIDwgL2Rldi9udWxsID4gL2Rldi9udWxsIDI+JjEgfHwgeworCWVjaG8KKwllY2hvICJZb3UgbXVzdCBoYXZlIGF1dG9jb25mIGluc3RhbGxlZCB0byBnZW5lcmF0ZSB1dGlsLWxpbnV4LW5nIGJ1aWxkIHN5c3RlbS4iCisJZWNobworCWVjaG8gIkRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBwYWNrYWdlIGZvciB5b3VyIGRpc3RyaWJ1dGlvbiwiCisJZWNobyAib3Igc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvY29uZiIKKwlESUU9MQorfQorCisjKGxpYnRvb2wgLS12ZXJzaW9uKSA8IC9kZXYvbnVsbCA+IC9kZXYvbnVsbCAyPiYxIHx8IHsKKyMJZWNobworIwllY2hvICJZb3UgbXVzdCBoYXZlIGxpYnRvb2wtMiBpbnN0YWxsZWQgdG8gZ2VuZXJhdGUgdXRpbC1saW51eC1uZyBidWlsZCBzeXN0ZW0uIgorIwllY2hvICJEb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgcGFja2FnZSBmb3IgeW91ciBkaXN0cmlidXRpb24sIgorIwllY2hvICJvciBzZWUgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wiCisjCURJRT0xCisjfQorCisoYXV0b21ha2UgLS12ZXJzaW9uKSA8IC9kZXYvbnVsbCA+IC9kZXYvbnVsbCAyPiYxIHx8IHsKKwllY2hvCisJZWNobyAiWW91IG11c3QgaGF2ZSBhdXRvbWFrZSBpbnN0YWxsZWQgdG8gZ2VuZXJhdGUgdXRpbC1saW51eC1uZyBidWlsZCBzeXN0ZW0uIgorCWVjaG8gCisJZWNobyAiRG93bmxvYWQgdGhlIGFwcHJvcHJpYXRlIHBhY2thZ2UgZm9yIHlvdXIgZGlzdHJpYnV0aW9uLCIKKwllY2hvICJvciBzZWUgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9tYWtlIgorCURJRT0xCit9CisoYXV0b2hlYWRlciAtLXZlcnNpb24pIDwgL2Rldi9udWxsID4gL2Rldi9udWxsIDI+JjEgfHwgeworCWVjaG8KKwllY2hvICJZb3UgbXVzdCBoYXZlIGF1dG9oZWFkZXIgaW5zdGFsbGVkIHRvIGdlbmVyYXRlIHV0aWwtbGludXgtbmcgYnVpbGQgc3lzdGVtLiIKKwllY2hvIAorCWVjaG8gIkRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBwYWNrYWdlIGZvciB5b3VyIGRpc3RyaWJ1dGlvbiwiCisJZWNobyAib3Igc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvaGVhZGVyIgorCURJRT0xCit9CisKK2lmIHRlc3QgIiRESUUiIC1lcSAxOyB0aGVuCisJZXhpdCAxCitmaQorCit0ZXN0IC1mIG1vdW50L21vdW50LmMgfHwgeworCWVjaG8gIllvdSBtdXN0IHJ1biB0aGlzIHNjcmlwdCBpbiB0aGUgdG9wLWxldmVsIHV0aWwtbGludXgtbmcgZGlyZWN0b3J5IgorCWV4aXQgMQorfQorCisjbHR2ZXI9JChsaWJ0b29saXplIC0tdmVyc2lvbiB8IGF3ayAnL15saWJ0b29saXplLyB7IHByaW50ICQ0IH0nKQorI3Rlc3QgJHtsdHZlciMjMi59ID09ICIkbHR2ZXIiICYmIHsKKyMJZWNobyAiWW91IG11c3QgaGF2ZSBsaWJ0b29sIHZlcnNpb24gPj0gMi54LngsIGJ1dCB5b3UgaGF2ZSAkbHR2ZXIuIgorIwlleGl0IDEKKyN9CisKK2VjaG8KK2VjaG8gIkdlbmVyYXRlIGJ1aWxkLXN5c3RlbSBieToiCitlY2hvICIgICBhdXRvcG9pbnQ6ICAkKGF1dG9wb2ludCAtLXZlcnNpb24gfCBoZWFkIC0xKSIKK2VjaG8gIiAgIGFjbG9jYWw6ICAgICQoYWNsb2NhbCAtLXZlcnNpb24gfCBoZWFkIC0xKSIKK2VjaG8gIiAgIGF1dG9jb25mOiAgICQoYXV0b2NvbmYgLS12ZXJzaW9uIHwgaGVhZCAtMSkiCitlY2hvICIgICBhdXRvaGVhZGVyOiAkKGF1dG9oZWFkZXIgLS12ZXJzaW9uIHwgaGVhZCAtMSkiCitlY2hvICIgICBhdXRvbWFrZTogICAkKGF1dG9tYWtlIC0tdmVyc2lvbiB8IGhlYWQgLTEpIgorI2VjaG8gIiAgIGxpYnRvb2xpemU6ICQobGlidG9vbGl6ZSAtLXZlcnNpb24gfCBoZWFkIC0xKSIKKworc2V0IC1lCithdXRvcG9pbnQgLS1mb3JjZSAkQVBfT1BUUworI2xpYnRvb2xpemUgLS1mb3JjZSAtLWNvcHkgJExUX09QVFMKK2FjbG9jYWwgLUkgbTQgJEFMX09QVFMKK2F1dG9jb25mICRBQ19PUFRTCithdXRvaGVhZGVyICRBSF9PUFRTCisKK2F1dG9tYWtlIC0tYWRkLW1pc3NpbmcgJEFNX09QVFMKKworY2QgJFRIRURJUgorCitlY2hvCitlY2hvICJOb3cgdHlwZSAnJHNyY2Rpci9jb25maWd1cmUnIGFuZCAnbWFrZScgdG8gY29tcGlsZS4iCitlY2hvCisKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnLmguaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcuaC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzIyYjM5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnLmguaW4KQEAgLTAsMCArMSw1MTUgQEAKKy8qIGNvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLworCisvKiBEZWZpbmUgaWYgYnVpbGRpbmcgdW5pdmVyc2FsIChpbnRlcm5hbCBoZWxwZXIgbWFjcm8pICovCisjdW5kZWYgQUNfQVBQTEVfVU5JVkVSU0FMX0JVSUxECisKKy8qIERlZmluZSB0byAxIGlmIHRyYW5zbGF0aW9uIG9mIHByb2dyYW0gbWVzc2FnZXMgdG8gdGhlIHVzZXIncyBuYXRpdmUKKyAgIGxhbmd1YWdlIGlzIHJlcXVlc3RlZC4gKi8KKyN1bmRlZiBFTkFCTEVfTkxTCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YmxraWQvYmxraWQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9CTEtJRF9CTEtJRF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YmxraWQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9CTEtJRF9ICisKKy8qIERlZmluZSBpZiB0aGUgR05VIGRjZ2V0dGV4dCgpIGZ1bmN0aW9uIGlzIGFscmVhZHkgcHJlc2VudCBvciBwcmVpbnN0YWxsZWQuCisgICAqLworI3VuZGVmIEhBVkVfRENHRVRURVhUCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgQUREUl9DT01QQVRfTEFZT1VUJywgYW5kIHRvIDAKKyAgIGlmIHlvdSBkb24ndC4gKi8KKyN1bmRlZiBIQVZFX0RFQ0xfQUREUl9DT01QQVRfTEFZT1VUCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgQUREUl9MSU1JVF8zMkJJVCcsIGFuZCB0byAwIGlmCisgICB5b3UgZG9uJ3QuICovCisjdW5kZWYgSEFWRV9ERUNMX0FERFJfTElNSVRfMzJCSVQKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBBRERSX0xJTUlUXzNHQicsIGFuZCB0byAwIGlmCisgICB5b3UgZG9uJ3QuICovCisjdW5kZWYgSEFWRV9ERUNMX0FERFJfTElNSVRfM0dCCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgQUREUl9OT19SQU5ET01JWkUnLCBhbmQgdG8gMCBpZgorICAgeW91IGRvbid0LiAqLworI3VuZGVmIEhBVkVfREVDTF9BRERSX05PX1JBTkRPTUlaRQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYEZEUElDX0ZVTkNQVFJTJywgYW5kIHRvIDAgaWYKKyAgIHlvdSBkb24ndC4gKi8KKyN1bmRlZiBIQVZFX0RFQ0xfRkRQSUNfRlVOQ1BUUlMKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBNTUFQX1BBR0VfWkVSTycsIGFuZCB0byAwIGlmCisgICB5b3UgZG9uJ3QuICovCisjdW5kZWYgSEFWRV9ERUNMX01NQVBfUEFHRV9aRVJPCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgUkVBRF9JTVBMSUVTX0VYRUMnLCBhbmQgdG8gMCBpZgorICAgeW91IGRvbid0LiAqLworI3VuZGVmIEhBVkVfREVDTF9SRUFEX0lNUExJRVNfRVhFQworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYFNUSUNLWV9USU1FT1VUUycsIGFuZCB0byAwIGlmCisgICB5b3UgZG9uJ3QuICovCisjdW5kZWYgSEFWRV9ERUNMX1NUSUNLWV9USU1FT1VUUworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYFdIT0xFX1NFQ09ORFMnLCBhbmQgdG8gMCBpZiB5b3UKKyAgIGRvbid0LiAqLworI3VuZGVmIEhBVkVfREVDTF9XSE9MRV9TRUNPTkRTCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgX05MX1RJTUVfV0VFS18xU1REQVknLCBhbmQgdG8gMAorICAgaWYgeW91IGRvbid0LiAqLworI3VuZGVmIEhBVkVfREVDTF9fTkxfVElNRV9XRUVLXzFTVERBWQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfRExGQ05fSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGVycm5vLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfRVJSTk9fSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGVyci5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0VSUl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmFsbG9jYXRlJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZBTExPQ0FURQorCisvKiBEZWZpbmUgdG8gMSBpZiBmc2Vla28gKGFuZCBwcmVzdW1hYmx5IGZ0ZWxsbykgZXhpc3RzIGFuZCBpcyBkZWNsYXJlZC4gKi8KKyN1bmRlZiBIQVZFX0ZTRUVLTworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZzdGF0NjQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRlNUQVQ2NAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZzdGF0YXQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRlNUQVRBVAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZzeW5jJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZTWU5DCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZnV0aW1lbnMnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRlVUSU1FTlMKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkb21haW5uYW1lJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0dFVERPTUFJTk5BTUUKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkdGFibGVzaXplJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0dFVERUQUJMRVNJWkUKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRtbnRpbmZvJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0dFVE1OVElORk8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxnZXRvcHQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9HRVRPUFRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHJsaW1pdCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9HRVRSTElNSVQKKworLyogRGVmaW5lIGlmIHRoZSBHTlUgZ2V0dGV4dCgpIGZ1bmN0aW9uIGlzIGFscmVhZHkgcHJlc2VudCBvciBwcmVpbnN0YWxsZWQuICovCisjdW5kZWYgSEFWRV9HRVRURVhUCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0X2N1cnJlbnRfZGlyX25hbWUnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfR0VUX0NVUlJFTlRfRElSX05BTUUKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBpY29udigpIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfSUNPTlYKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpbmV0X2F0b24nIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfSU5FVF9BVE9OCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5vdGlmeV9pbml0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0lOT1RJRllfSU5JVAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGpyYW5kNDgnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfSlJBTkQ0OAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxhbmdpbmZvLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTEFOR0lORk9fSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxjaG93bicgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9MQ0hPV04KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBhdWRpdCcgbGlicmFyeSAoLWxhdWRpdCkuICovCisjdW5kZWYgSEFWRV9MSUJBVURJVAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgLWxibGtpZC4gKi8KKyN1bmRlZiBIQVZFX0xJQkJMS0lECisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBpbi10cmVlIGxpYmJsa2lkLiAqLworI3VuZGVmIEhBVkVfTElCQkxLSURfSU5URVJOQUwKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBuY3Vyc2VzJyBsaWJyYXJ5ICgtbG5jdXJzZXMpLiAqLworI3VuZGVmIEhBVkVfTElCTkNVUlNFUworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG5jdXJzZXN3JyBsaWJyYXJ5ICgtbG5jdXJzZXN3KS4gKi8KKyN1bmRlZiBIQVZFX0xJQk5DVVJTRVNXCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2VsaW51eCcgbGlicmFyeSAoLWxzZWxpbnV4KS4gKi8KKyN1bmRlZiBIQVZFX0xJQlNFTElOVVgKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB0ZXJtY2FwJyBsaWJyYXJ5ICgtbHRlcm1jYXApLiAqLworI3VuZGVmIEhBVkVfTElCVEVSTUNBUAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHV0aWwnIGxpYnJhcnkgKC1sdXRpbCkuICovCisjdW5kZWYgSEFWRV9MSUJVVElMCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSAtbHV1aWQuICovCisjdW5kZWYgSEFWRV9MSUJVVUlECisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgeicgbGlicmFyeSAoLWx6KS4gKi8KKyN1bmRlZiBIQVZFX0xJQloKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9ibGtwZy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX0JMS1BHX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9jb21waWxlci5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX0NPTVBJTEVSX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9mZC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX0ZEX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9tYWpvci5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX01BSk9SX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9yYXcuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9MSU5VWF9SQVdfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3Rpb2NsLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTElOVVhfVElPQ0xfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3ZlcnNpb24uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9MSU5VWF9WRVJTSU9OX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBsbHNlZWsnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfTExTRUVLCisKKy8qIERlZmluZSB0byAxIGlmIGhhdmUgbGxzZWVrIHByb3RvdHlwZSAqLworI3VuZGVmIEhBVkVfTExTRUVLX1BST1RPVFlQRQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxvY2FsZS5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xPQ0FMRV9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbHNlZWs2NCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9MU0VFSzY0CisKKy8qIERlZmluZSB0byAxIGlmIGhhdmUgbHNlZWs2NCBwcm90b3R5cGUgKi8KKyN1bmRlZiBIQVZFX0xTRUVLNjRfUFJPVE9UWVBFCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTUVNT1JZX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtbnRlbnQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9NTlRFTlRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG5hbm9zbGVlcCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9OQU5PU0xFRVAKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuY3Vyc2VzLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTkNVUlNFU19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmN1cnNlcy9uY3Vyc2VzLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTkNVUlNFU19OQ1VSU0VTX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX2RsLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTkVUX0lGX0RMX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWYuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9ORVRfSUZfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG9wZW5hdCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9PUEVOQVQKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwZXJzb25hbGl0eScgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9QRVJTT05BTElUWQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHBvc2l4X2ZhZHZpc2UnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfUE9TSVhfRkFEVklTRQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByY3RsJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1BSQ1RMCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cHR5Lmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfUFRZX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxycGNzdmMvbmZzX3Byb3QuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9SUENTVkNfTkZTX1BST1RfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJwbWF0Y2gnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfUlBNQVRDSAorCisvKiBEZWZpbmUgaWYgc3RydWN0IHNvY2thZGRyIGNvbnRhaW5zIHNhX2xlbiAqLworI3VuZGVmIEhBVkVfU0FfTEVOCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2VjdXJpdHlfZ2V0X2luaXRpYWxfY29udGV4dCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TRUNVUklUWV9HRVRfSU5JVElBTF9DT05URVhUCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2VjdXJpdHkvcGFtX21pc2MuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TRUNVUklUWV9QQU1fTUlTQ19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0cmVzZ2lkJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NFVFJFU0dJRAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldHJlc3VpZCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TRVRSRVNVSUQKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzbGFuZy9zbGN1cnNlcy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NMQU5HX1NMQ1VSU0VTX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzbGN1cnNlcy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NMQ1VSU0VTX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzcmFuZG9tJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NSQU5ET00KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRpbnQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TVERJTlRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NURExJQl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NUUklOR1NfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NUUklOR19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RydG91bGwnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfU1RSVE9VTEwKKworLyogRGVmaW5lIHRvIDEgaWYgYGNfbGluZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgdGVybWlvcycuICovCisjdW5kZWYgSEFWRV9TVFJVQ1RfVEVSTUlPU19DX0xJTkUKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeXNjb25mJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NZU0NPTkYKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlza2xhYmVsLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX0RJU0tMQUJFTF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpc2suaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfRElTS19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGUuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfRklMRV9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2lvY3RsLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX0lPQ1RMX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvaW8uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfSU9fSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9ta2Rldi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19NS0RFVl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ByY3RsLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1BSQ1RMX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcXVldWUuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfUVVFVUVfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9yZXNvdXJjZS5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19SRVNPVVJDRV9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NvY2tldC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19TT0NLRVRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zb2NraW8uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfU09DS0lPX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19TVEFUX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3dhcC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19TV0FQX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzY2FsbC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19TWVNDQUxMX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZS5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19USU1FX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfVFlQRVNfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91bi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19VTl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3VzZXIuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfVVNFUl9ICisKKy8qIERlZmluZSB0byAxIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgdGhyZWFkLWxvY2FsIHN0b3JhZ2UuICovCisjdW5kZWYgSEFWRV9UTFMKKworLyogRG9lcyBzdHJ1Y3QgdG0gaGF2ZSBhIGZpZWxkIHRtX2dtdG9mZj8gKi8KKyN1bmRlZiBIQVZFX1RNX0dNVE9GRgorCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdW5pb24gc2VtdW4nLiAqLworI3VuZGVmIEhBVkVfVU5JT05fU0VNVU4KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9VTklTVERfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHVubGlua2F0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1VOTElOS0FUCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdW5zaGFyZScgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9VTlNIQVJFCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdXBkd3RtcCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9VUERXVE1QCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdXNsZWVwJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1VTTEVFUAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3Ugd2FudCB0byB1c2UgdXVpZCBkYWVtb24uICovCisjdW5kZWYgSEFWRV9VVUlERAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV1aWQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9VVUlEX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1dWlkL3V1aWQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9VVUlEX1VVSURfSAorCisvKiBEbyB3ZSBoYXZlIHdpZGUgY2hhcmFjdGVyIHN1cHBvcnQ/ICovCisjdW5kZWYgSEFWRV9XSURFQ0hBUgorCisvKiBEbyB3ZSBoYXZlIF9fcHJvZ25hbWU/ICovCisjdW5kZWYgSEFWRV9fX1BST0dOQU1FCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgX19zZWN1cmVfZ2V0ZW52JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX19fU0VDVVJFX0dFVEVOVgorCisvKiBsaWJibGtpZCBkYXRlIHN0cmluZyAqLworI3VuZGVmIExJQkJMS0lEX0RBVEUKKworLyogbGliYmxraWQgdmVyc2lvbiBzdHJpbmcgKi8KKyN1bmRlZiBMSUJCTEtJRF9WRVJTSU9OCisKKy8qIFNob3VsZCBsb2dpbiBjaG93biAvZGV2L3Zjc04/ICovCisjdW5kZWYgTE9HSU5fQ0hPV05fVkNTCisKKy8qIFNob3VsZCBsb2dpbiBzdGF0KCkgdGhlIG1haWxib3g/ICovCisjdW5kZWYgTE9HSU5fU1RBVF9NQUlMCisKKy8qIERlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuCisgICAqLworI3VuZGVmIExUX09CSkRJUgorCisvKiBEbyB3ZSBuZWVkIC1sY3J5cHQ/ICovCisjdW5kZWYgTkVFRF9MSUJDUllQVAorCisvKiBTaG91bGQgY2hzaCBhbGxvdyBvbmx5IHNoZWxscyBpbiAvZXRjL3NoZWxscz8gKi8KKyN1bmRlZiBPTkxZX0xJU1RFRF9TSEVMTFMKKworLyogTmFtZSBvZiBwYWNrYWdlICovCisjdW5kZWYgUEFDS0FHRQorCisvKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KKyN1bmRlZiBQQUNLQUdFX0JVR1JFUE9SVAorCisvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCisjdW5kZWYgUEFDS0FHRV9OQU1FCisKKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KKyN1bmRlZiBQQUNLQUdFX1NUUklORworCisvKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCisjdW5kZWYgUEFDS0FHRV9UQVJOQU1FCisKKy8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCisjdW5kZWYgUEFDS0FHRV9WRVJTSU9OCisKKy8qIFNob3VsZCBwZyByaW5nIHRoZSBiZWxsIG9uIGludmFsaWQga2V5cz8gKi8KKyN1bmRlZiBQR19CRUxMCisKKy8qIFNob3VsZCBjaGZuIGFuZCBjaHNoIHJlcXVpcmUgdGhlIHVzZXIgdG8gZW50ZXIgdGhlIHBhc3N3b3JkPyAqLworI3VuZGVmIFJFUVVJUkVfUEFTU1dPUkQKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFOU0kgQyBoZWFkZXIgZmlsZXMuICovCisjdW5kZWYgU1REQ19IRUFERVJTCisKKy8qIElzIHN3YXBvbigpIGRlY2xhcmVkIHdpdGggdHdvIHBhcmFtZXRlcnM/ICovCisjdW5kZWYgU1dBUE9OX0hBU19UV09fQVJHUworCisvKiBGYWxsYmFjayBzeXNjYWxsIG51bWJlciBmb3IgZmFsbG9jYXRlICovCisjdW5kZWYgU1lTX2ZhbGxvY2F0ZQorCisvKiBGYWxsYmFjayBzeXNjYWxsIG51bWJlciBmb3IgaW9wcmlvX2dldCAqLworI3VuZGVmIFNZU19pb3ByaW9fZ2V0CisKKy8qIEZhbGxiYWNrIHN5c2NhbGwgbnVtYmVyIGZvciBpb3ByaW9fc2V0ICovCisjdW5kZWYgU1lTX2lvcHJpb19zZXQKKworLyogRmFsbGJhY2sgc3lzY2FsbCBudW1iZXIgZm9yIHBpdm90X3Jvb3QgKi8KKyN1bmRlZiBTWVNfcGl2b3Rfcm9vdAorCisvKiBGYWxsYmFjayBzeXNjYWxsIG51bWJlciBmb3Igc2NoZWRfZ2V0YWZmaW5pdHkgKi8KKyN1bmRlZiBTWVNfc2NoZWRfZ2V0YWZmaW5pdHkKKworLyogRmFsbGJhY2sgc3lzY2FsbCBudW1iZXIgZm9yIHVuc2hhcmUgKi8KKyN1bmRlZiBTWVNfdW5zaGFyZQorCisvKiBFbmFibGUgZXh0ZW5zaW9ucyBvbiBBSVggMywgSW50ZXJpeC4gICovCisjaWZuZGVmIF9BTExfU09VUkNFCisjIHVuZGVmIF9BTExfU09VUkNFCisjZW5kaWYKKy8qIEVuYWJsZSBHTlUgZXh0ZW5zaW9ucyBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSB0aGVtLiAgKi8KKyNpZm5kZWYgX0dOVV9TT1VSQ0UKKyMgdW5kZWYgX0dOVV9TT1VSQ0UKKyNlbmRpZgorLyogRW5hYmxlIHRocmVhZGluZyBleHRlbnNpb25zIG9uIFNvbGFyaXMuICAqLworI2lmbmRlZiBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MKKyMgdW5kZWYgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTCisjZW5kaWYKKy8qIEVuYWJsZSBleHRlbnNpb25zIG9uIEhQIE5vblN0b3AuICAqLworI2lmbmRlZiBfVEFOREVNX1NPVVJDRQorIyB1bmRlZiBfVEFOREVNX1NPVVJDRQorI2VuZGlmCisvKiBFbmFibGUgZ2VuZXJhbCBleHRlbnNpb25zIG9uIFNvbGFyaXMuICAqLworI2lmbmRlZiBfX0VYVEVOU0lPTlNfXworIyB1bmRlZiBfX0VYVEVOU0lPTlNfXworI2VuZGlmCisKKworLyogU2hvdWxkIHdhbGwgYW5kIHdyaXRlIGJlIGluc3RhbGxlZCBzZXRnaWQgdHR5PyAqLworI3VuZGVmIFVTRV9UVFlfR1JPVVAKKworLyogVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZSAqLworI3VuZGVmIFZFUlNJT04KKworLyogRGVmaW5lIFdPUkRTX0JJR0VORElBTiB0byAxIGlmIHlvdXIgcHJvY2Vzc29yIHN0b3JlcyB3b3JkcyB3aXRoIHRoZSBtb3N0CisgICBzaWduaWZpY2FudCBieXRlIGZpcnN0IChsaWtlIE1vdG9yb2xhIGFuZCBTUEFSQywgdW5saWtlIEludGVsKS4gKi8KKyNpZiBkZWZpbmVkIEFDX0FQUExFX1VOSVZFUlNBTF9CVUlMRAorIyBpZiBkZWZpbmVkIF9fQklHX0VORElBTl9fCisjICBkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKKyMgZW5kaWYKKyNlbHNlCisjIGlmbmRlZiBXT1JEU19CSUdFTkRJQU4KKyMgIHVuZGVmIFdPUkRTX0JJR0VORElBTgorIyBlbmRpZgorI2VuZGlmCisKKy8qIE51bWJlciBvZiBiaXRzIGluIGEgZmlsZSBvZmZzZXQsIG9uIGhvc3RzIHdoZXJlIHRoaXMgaXMgc2V0dGFibGUuICovCisjdW5kZWYgX0ZJTEVfT0ZGU0VUX0JJVFMKKworLyogRGVmaW5lIHRvIDEgdG8gbWFrZSBmc2Vla28gdmlzaWJsZSBvbiBzb21lIGhvc3RzIChlLmcuIGdsaWJjIDIuMikuICovCisjdW5kZWYgX0xBUkdFRklMRV9TT1VSQ0UKKworLyogRGVmaW5lIGZvciBsYXJnZSBmaWxlcywgb24gQUlYLXN0eWxlIGhvc3RzLiAqLworI3VuZGVmIF9MQVJHRV9GSUxFUworCisvKiBEZWZpbmUgdG8gMSBpZiBvbiBNSU5JWC4gKi8KKyN1bmRlZiBfTUlOSVgKKworLyogRGVmaW5lIHRvIDIgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdCBwcm92aWRlIFBPU0lYLjEgZmVhdHVyZXMgZXhjZXB0IHdpdGgKKyAgIHRoaXMgZGVmaW5lZC4gKi8KKyN1bmRlZiBfUE9TSVhfMV9TT1VSQ0UKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IG5lZWQgdG8gaW4gb3JkZXIgZm9yIGBzdGF0JyBhbmQgb3RoZXIgdGhpbmdzIHRvIHdvcmsuICovCisjdW5kZWYgX1BPU0lYX1NPVVJDRQorCisvKiBEZWZpbmUgdG8gZW1wdHkgaWYgYGNvbnN0JyBkb2VzIG5vdCBjb25mb3JtIHRvIEFOU0kgQy4gKi8KKyN1bmRlZiBjb25zdAorCisvKiBEZWZpbmUgdG8gZW1wdHkgaWYgdGhlIGtleXdvcmQgYHZvbGF0aWxlJyBkb2VzIG5vdCB3b3JrLiBXYXJuaW5nOiB2YWxpZAorICAgY29kZSB1c2luZyBgdm9sYXRpbGUnIGNhbiBiZWNvbWUgaW5jb3JyZWN0IHdpdGhvdXQuIERpc2FibGUgd2l0aCBjYXJlLiAqLworI3VuZGVmIHZvbGF0aWxlCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvY29uZmlnLmd1ZXNzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL2NvbmZpZy5ndWVzcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYzg0YzY4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL2NvbmZpZy5ndWVzcwpAQCAtMCwwICsxLDE1MDEgQEAKKyMhIC9iaW4vc2gKKyMgQXR0ZW1wdCB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZS4KKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCisjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOQorIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCit0aW1lc3RhbXA9JzIwMDktMTEtMjAnCisKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKyMgMDIxMTAtMTMwMSwgVVNBLgorIworIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKKworIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuICBQbGVhc2Ugc2VuZCBwYXRjaGVzIChjb250ZXh0CisjIGRpZmYgZm9ybWF0KSB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gYW5kIGluY2x1ZGUgYSBDaGFuZ2VMb2cKKyMgZW50cnkuCisjCisjIFRoaXMgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lIHNpbWlsYXIgdG8KKyMgY29uZmlnLnN1Yi4gIElmIGl0IHN1Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwgYW5kCisjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgorIworIyBZb3UgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBzY3JpcHQgZnJvbToKKyMgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFECisKK21lPWBlY2hvICIkMCIgfCBzZWQgLWUgJ3MsLiovLCwnYAorCit1c2FnZT0iXAorVXNhZ2U6ICQwIFtPUFRJT05dCisKK091dHB1dCB0aGUgY29uZmlndXJhdGlvbiBuYW1lIG9mIHRoZSBzeXN0ZW0gXGAkbWUnIGlzIHJ1biBvbi4KKworT3BlcmF0aW9uIG1vZGVzOgorICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKKyAgLXQsIC0tdGltZS1zdGFtcCAgIHByaW50IGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24sIHRoZW4gZXhpdAorICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorCitSZXBvcnQgYnVncyBhbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uIgorCit2ZXJzaW9uPSJcCitHTlUgY29uZmlnLmd1ZXNzICgkdGltZXN0YW1wKQorCitPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuCitDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCisyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTword2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorCitoZWxwPSIKK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKworIyBQYXJzZSBjb21tYW5kIGxpbmUKK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworICBjYXNlICQxIGluCisgICAgLS10aW1lLXN0YW1wIHwgLS10aW1lKiB8IC10ICkKKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQgOzsKKyAgICAtLXZlcnNpb24gfCAtdiApCisgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCA7OworICAgIC0taGVscCB8IC0taCogfCAtaCApCisgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OworICAgIC0tICkgICAgICMgU3RvcCBvcHRpb24gcHJvY2Vzc2luZworICAgICAgIHNoaWZ0OyBicmVhayA7OworICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KKyAgICAgICBicmVhayA7OworICAgIC0qICkKKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiID4mMgorICAgICAgIGV4aXQgMSA7OworICAgICogKQorICAgICAgIGJyZWFrIDs7CisgIGVzYWMKK2RvbmUKKworaWYgdGVzdCAkIyAhPSAwOyB0aGVuCisgIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorICBleGl0IDEKK2ZpCisKK3RyYXAgJ2V4aXQgMScgMSAyIDE1CisKKyMgQ0NfRk9SX0JVSUxEIC0tIGNvbXBpbGVyIHVzZWQgYnkgdGhpcyBzY3JpcHQuIE5vdGUgdGhhdCB0aGUgdXNlIG9mIGEKKyMgY29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rpb24gaXMgZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMKKyMgdGVtcG9yYXJ5IGZpbGVzIHRvIGJlIGNyZWF0ZWQgYW5kLCBhcyB5b3UgY2FuIHNlZSBiZWxvdywgaXQgaXMgYQorIyBoZWFkYWNoZSB0byBkZWFsIHdpdGggaW4gYSBwb3J0YWJsZSBmYXNoaW9uLgorCisjIEhpc3RvcmljYWxseSwgYENDX0ZPUl9CVUlMRCcgdXNlZCB0byBiZSBuYW1lZCBgSE9TVF9DQycuIFdlIHN0aWxsCisjIHVzZSBgSE9TVF9DQycgaWYgZGVmaW5lZCwgYnV0IGl0IGlzIGRlcHJlY2F0ZWQuCisKKyMgUG9ydGFibGUgdG1wIGRpcmVjdG9yeSBjcmVhdGlvbiBpbnNwaXJlZCBieSB0aGUgQXV0b2NvbmYgdGVhbS4KKworc2V0X2NjX2Zvcl9idWlsZD0nCit0cmFwICJleGl0Y29kZT1cJD87IChybSAtZiBcJHRtcGZpbGVzIDI+L2Rldi9udWxsOyBybWRpciBcJHRtcCAyPi9kZXYvbnVsbCkgJiYgZXhpdCBcJGV4aXRjb2RlIiAwIDsKK3RyYXAgInJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsOyBleGl0IDEiIDEgMiAxMyAxNSA7Cis6ICR7VE1QRElSPS90bXB9IDsKKyB7IHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgIiRUTVBESVIvY2dYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYgdGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIgOyB9IHx8CisgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9jZyQkLSRSQU5ET00gJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKKyB7IHRtcD0kVE1QRElSL2NnLSQkICYmICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkgJiYgZWNobyAiV2FybmluZzogY3JlYXRpbmcgaW5zZWN1cmUgdGVtcCBkaXJlY3RvcnkiID4mMiA7IH0gfHwKKyB7IGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gJFRNUERJUiIgPiYyIDsgZXhpdCAxIDsgfSA7CitkdW1teT0kdG1wL2R1bW15IDsKK3RtcGZpbGVzPSIkZHVtbXkuYyAkZHVtbXkubyAkZHVtbXkucmVsICRkdW1teSIgOworY2FzZSAkQ0NfRk9SX0JVSUxELCRIT1NUX0NDLCRDQyBpbgorICwsKSAgICBlY2hvICJpbnQgeDsiID4gJGR1bW15LmMgOworCWZvciBjIGluIGNjIGdjYyBjODkgYzk5IDsgZG8KKwkgIGlmICgkYyAtYyAtbyAkZHVtbXkubyAkZHVtbXkuYykgPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorCSAgICAgQ0NfRk9SX0JVSUxEPSIkYyI7IGJyZWFrIDsKKwkgIGZpIDsKKwlkb25lIDsKKwlpZiB0ZXN0IHgiJENDX0ZPUl9CVUlMRCIgPSB4IDsgdGhlbgorCSAgQ0NfRk9SX0JVSUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKKwlmaQorCTs7CisgLCwqKSAgIENDX0ZPUl9CVUlMRD0kQ0MgOzsKKyAsKiwqKSAgQ0NfRk9SX0JVSUxEPSRIT1NUX0NDIDs7Citlc2FjIDsgc2V0X2NjX2Zvcl9idWlsZD0gOycKKworIyBUaGlzIGlzIG5lZWRlZCB0byBmaW5kIHVuYW1lIG9uIGEgUHlyYW1pZCBPU3ggd2hlbiBydW4gaW4gdGhlIEJTRCB1bml2ZXJzZS4KKyMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQoraWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKwlQQVRIPSRQQVRIOi8uYXR0YmluIDsgZXhwb3J0IFBBVEgKK2ZpCisKK1VOQU1FX01BQ0hJTkU9YCh1bmFtZSAtbSkgMj4vZGV2L251bGxgIHx8IFVOQU1FX01BQ0hJTkU9dW5rbm93bgorVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCitVTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgorVU5BTUVfVkVSU0lPTj1gKHVuYW1lIC12KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfVkVSU0lPTj11bmtub3duCisKKyMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KKworY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgorICAgICo6TmV0QlNEOio6KikKKwkjIE5ldEJTRCAobmJzZCkgdGFyZ2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9uZSBvcgorCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJzZGVsZiosICotKi1uZXRic2Rhb3V0KiwKKwkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhhdCByZWNlbnRseQorCSMgc3dpdGNoZWQgdG8gRUxGLCAqLSotbmV0YnNkKiB3b3VsZCBzZWxlY3QgdGhlIG9sZAorCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAgVGhpcyBwcm92aWRlcyBib3RoIGZvcndhcmQKKwkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9yIHNlbGVjdGluZyB0aGUKKwkjIG9iamVjdCBmaWxlIGZvcm1hdC4KKwkjCisJIyBOb3RlOiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCisJIyBwb3J0aW9uIG9mIHRoZSBuYW1lLiAgV2UgYWx3YXlzIHNldCBpdCB0byAidW5rbm93biIuCisJc3lzY3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgorCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAorCSAgICAvdXNyL3NiaW4vJHN5c2N0bCAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd24pYAorCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OworCSAgICBhcm0qKSBtYWNoaW5lPWFybS11bmtub3duIDs7CisJICAgIHNoM2VsKSBtYWNoaW5lPXNobC11bmtub3duIDs7CisJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKKwkgICAgc2g1ZWwpIG1hY2hpbmU9c2g1bGUtdW5rbm93biA7OworCSAgICAqKSBtYWNoaW5lPSR7VU5BTUVfTUFDSElORV9BUkNIfS11bmtub3duIDs7CisJZXNhYworCSMgVGhlIE9wZXJhdGluZyBTeXN0ZW0gaW5jbHVkaW5nIG9iamVjdCBmb3JtYXQsIGlmIGl0IGhhcyBzd2l0Y2hlZAorCSMgdG8gRUxGIHJlY2VudGx5LCBvciB3aWxsIGluIHRoZSBmdXR1cmUuCisJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgorCSAgICBhcm0qfGkzODZ8bTY4a3xuczMya3xzaDMqfHNwYXJjfHZheCkKKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCQlpZiBlY2hvIF9fRUxGX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAorCQkJfCBncmVwIC1xIF9fRUxGX18KKwkJdGhlbgorCQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZGIChuZXRic2RlY29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgorCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/CisJCSAgICBvcz1uZXRic2QKKwkJZWxzZQorCQkgICAgb3M9bmV0YnNkZWxmCisJCWZpCisJCTs7CisJICAgICopCisJICAgICAgICBvcz1uZXRic2QKKwkJOzsKKwllc2FjCisJIyBUaGUgT1MgcmVsZWFzZQorCSMgRGViaWFuIEdOVS9OZXRCU0QgbWFjaGluZXMgaGF2ZSBhIGRpZmZlcmVudCB1c2VybGFuZCwgYW5kCisJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4gSG93ZXZlciwgdGhleSBkbyBub3QgbmVlZAorCSMga2VybmVsIHZlcnNpb24gaW5mb3JtYXRpb24sIHNvIGl0IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEKKwkjIHN1aXRhYmxlIHRhZywgaW4gdGhlIHN0eWxlIG9mIGxpbnV4LWdudS4KKwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgorCSAgICBEZWJpYW4qKQorCQlyZWxlYXNlPSctZ251JworCQk7OworCSAgICAqKQorCQlyZWxlYXNlPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stX10uKi9cLi8nYAorCQk7OworCWVzYWMKKwkjIFNpbmNlIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTToKKwkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9ybToKKwkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNIGlzIHVzZWQuCisJZWNobyAiJHttYWNoaW5lfS0ke29zfSR7cmVsZWFzZX0iCisJZXhpdCA7OworICAgICo6T3BlbkJTRDoqOiopCisJVU5BTUVfTUFDSElORV9BUkNIPWBhcmNoIHwgc2VkICdzL09wZW5CU0QuLy8nYAorCWVjaG8gJHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpla2tvQlNEOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1la2tvYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICAqOlNvbGlkQlNEOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zb2xpZGJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgbWFjcHBjOk1pckJTRDoqOiopCisJZWNobyBwb3dlcnBjLXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICAqOk1pckJTRDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBhbHBoYTpPU0YxOio6KikKKwljYXNlICRVTkFNRV9SRUxFQVNFIGluCisJKjQuMCkKKwkJVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDN9J2AKKwkJOzsKKwkqNS4qKQorCSAgICAgICAgVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDR9J2AKKwkJOzsKKwllc2FjCisJIyBBY2NvcmRpbmcgdG8gQ29tcGFxLCAvdXNyL3NiaW4vcHNyaW5mbyBoYXMgYmVlbiBhdmFpbGFibGUgb24KKwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHByb2R1Y2VkIHNpbmNlIDE5OTUuICBJIGhvcGUgdGhhdAorCSMgY292ZXJzIG1vc3Qgc3lzdGVtcyBydW5uaW5nIHRvZGF5LiAgVGhpcyBjb2RlIHBpcGVzIHRoZSBDUFUKKwkjIHR5cGVzIHRocm91Z2ggaGVhZCAtbiAxLCBzbyB3ZSBvbmx5IGRldGVjdCB0aGUgdHlwZSBvZiBDUFUgMC4KKwlBTFBIQV9DUFVfVFlQRT1gL3Vzci9zYmluL3BzcmluZm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFscGhhIFwoLipcKSBwcm9jZXNzb3IuKiQvXDEvcCcgfCBoZWFkIC1uIDFgCisJY2FzZSAiJEFMUEhBX0NQVV9UWVBFIiBpbgorCSAgICAiRVY0ICgyMTA2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKwkgICAgIkVWNC41ICgyMTA2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKwkgICAgIkxDQTQgKDIxMDY2LzIxMDY4KSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OworCSAgICAiRVY1ICgyMTE2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIgOzsKKwkgICAgIkVWNS42ICgyMTE2NEEpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjU2IiA7OworCSAgICAiRVY1LjYgKDIxMTY0UEMpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NiIgOzsKKwkgICAgIkVWNS43ICgyMTE2NFBDKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTciIDs7CisJICAgICJFVjYgKDIxMjY0KSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2IiA7OworCSAgICAiRVY2LjcgKDIxMjY0QSkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjciIDs7CisJICAgICJFVjYuOENCICgyMTI2NEMpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworCSAgICAiRVY2LjhBTCAoMjEyNjRCKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKwkgICAgIkVWNi44Q1ggKDIxMjY0RCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7CisJICAgICJFVjYuOUEgKDIxMjY0L0VWNjlBKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OSIgOzsKKwkgICAgIkVWNyAoMjEzNjQpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjciIDs7CisJICAgICJFVjcuOSAoMjEzNjRBKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY3OSIgOzsKKwllc2FjCisJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBhdGNoZWQgdmVyc2lvbi4KKwkjIEEgVm4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgdmVyc2lvbi4KKwkjIEEgVG4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgZmllbGQgdGVzdCB2ZXJzaW9uLgorCSMgQSBYbi5uIHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgorCSMgMS4yIHVzZXMgIjEuMiIgZm9yIHVuYW1lIC1yLgorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtb3NmYGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9eW1BWVFhdLy8nIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAorCWV4aXQgOzsKKyAgICBBbHBoYVwgKjpXaW5kb3dzX05UKjoqKQorCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBnZW5lcmljIFBPU0lYIHN1YnN5c3RlbT8KKwkjIFNob3VsZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQKKwkjIG9mIHRoZSBzcGVjaWZpYyBBbHBoYSBtb2RlbD8KKwllY2hvIGFscGhhLXBjLWludGVyaXgKKwlleGl0IDs7CisgICAgMjEwNjQ6V2luZG93c19OVDo1MDozKQorCWVjaG8gYWxwaGEtZGVjLXdpbm50My41CisJZXhpdCA7OworICAgIEFtaWdhKjpVTklYX1N5c3RlbV9WOjQuMDoqKQorCWVjaG8gbTY4ay11bmtub3duLXN5c3Y0CisJZXhpdCA7OworICAgICo6W0FhXW1pZ2FbT29dW1NzXToqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYW1pZ2FvcworCWV4aXQgOzsKKyAgICAqOltNbV1vcnBoW09vXVtTc106KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW1vcnBob3MKKwlleGl0IDs7CisgICAgKjpPUy8zOTA6KjoqKQorCWVjaG8gaTM3MC1pYm0tb3BlbmVkaXRpb24KKwlleGl0IDs7CisgICAgKjp6L1ZNOio6KikKKwllY2hvIHMzOTAtaWJtLXp2bW9lCisJZXhpdCA7OworICAgICo6T1M0MDA6KjoqKQorICAgICAgICBlY2hvIHBvd2VycGMtaWJtLW9zNDAwCisJZXhpdCA7OworICAgIGFybTpSSVNDKjoxLlswMTJdKjoqfGFybTpyaXNjaXg6MS5bMDEyXSo6KikKKwllY2hvIGFybS1hY29ybi1yaXNjaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIGFybTpyaXNjb3M6KjoqfGFybTpSSVNDT1M6KjoqKQorCWVjaG8gYXJtLXVua25vd24tcmlzY29zCisJZXhpdCA7OworICAgIFNSMj8wMTpISS1VWC9NUFA6KjoqIHwgU1I4MDAwOkhJLVVYL01QUDoqOiopCisJZWNobyBocHBhMS4xLWhpdGFjaGktaGl1eG1wcAorCWV4aXQgOzsKKyAgICBQeXJhbWlkKjpPU3gqOio6KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6KikKKwkjIGFrZWVAd3BkaXMwMy53cGFmYi5hZi5taWwgKEVhcmxlIEYuIEFrZSkgY29udHJpYnV0ZWQgTUlTIGFuZCBOSUxFLgorCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KKwkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKKwllbHNlCisJCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJzZAorCWZpCisJZXhpdCA7OworICAgIE5JTEUqOio6KjpkY29zeCkKKwllY2hvIHB5cmFtaWQtcHlyYW1pZC1zdnI0CisJZXhpdCA7OworICAgIERSUz82MDAwOnVuaXg6NC4wOjYqKQorCWVjaG8gc3BhcmMtaWNsLW54NgorCWV4aXQgOzsKKyAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCisJY2FzZSBgL3Vzci9iaW4vdW5hbWUgLXBgIGluCisJICAgIHNwYXJjKSBlY2hvIHNwYXJjLWljbC1ueDc7IGV4aXQgOzsKKwllc2FjIDs7CisgICAgczM5MHg6U3VuT1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDs7CisgICAgc3VuNEg6U3VuT1M6NS4qOiopCisJZWNobyBzcGFyYy1oYWwtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDs7CisgICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1Lio6KikKKwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorCWV4aXQgOzsKKyAgICBpODZwYzpBdXJvcmFVWDo1Lio6KiB8IGk4NnhlbjpBdXJvcmFVWDo1Lio6KikKKwllY2hvIGkzODYtcGMtYXVyb3JhdXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIGk4NnBjOlN1bk9TOjUuKjoqIHwgaTg2eGVuOlN1bk9TOjUuKjoqKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlTVU5fQVJDSD0iaTM4NiIKKwkjIElmIHRoZXJlIGlzIGEgY29tcGlsZXIsIHNlZSBpZiBpdCBpcyBjb25maWd1cmVkIGZvciA2NC1iaXQgb2JqZWN0cy4KKwkjIE5vdGUgdGhhdCB0aGUgU3VuIGNjIGRvZXMgbm90IHR1cm4gX19MUDY0X18gaW50byAxIGxpa2UgZ2NjIGRvZXMuCisJIyBUaGlzIHRlc3Qgd29ya3MgZm9yIGJvdGggY29tcGlsZXJzLgorCWlmIFsgIiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgorCSAgICBpZiAoZWNobyAnI2lmZGVmIF9fYW1kNjQnOyBlY2hvIElTXzY0QklUX0FSQ0g7IGVjaG8gJyNlbmRpZicpIHwgXAorCQkoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwgXAorCQlncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAorCSAgICB0aGVuCisJCVNVTl9BUkNIPSJ4ODZfNjQiCisJICAgIGZpCisJZmkKKwllY2hvICR7U1VOX0FSQ0h9LXBjLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisJZXhpdCA7OworICAgIHN1bjQqOlN1bk9TOjYqOiopCisJIyBBY2NvcmRpbmcgdG8gY29uZmlnLnN1YiwgdGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBjYW5vbmljYWxpemUKKwkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1dAorCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCisJZWNobyBzcGFyYy1zdW4tc29sYXJpczNgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDs7CisgICAgc3VuNCo6U3VuT1M6KjoqKQorCWNhc2UgImAvdXNyL2Jpbi9hcmNoIC1rYCIgaW4KKwkgICAgU2VyaWVzKnxTNCopCisJCVVOQU1FX1JFTEVBU0U9YHVuYW1lIC12YAorCQk7OworCWVzYWMKKwkjIEphcGFuZXNlIExhbmd1YWdlIHZlcnNpb25zIGhhdmUgYSB2ZXJzaW9uIG51bWJlciBsaWtlIGA0LjEuMy1KTCcuCisJZWNobyBzcGFyYy1zdW4tc3Vub3NgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy8tL18vJ2AKKwlleGl0IDs7CisgICAgc3VuMyo6U3VuT1M6KjoqKQorCWVjaG8gbTY4ay1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIHN1bio6Kjo0LjJCU0Q6KikKKwlVTkFNRV9SRUxFQVNFPWAoc2VkIDFxIC9ldGMvbW90ZCB8IGF3ayAne3ByaW50IHN1YnN0cigkNSwxLDMpfScpIDI+L2Rldi9udWxsYAorCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKKwljYXNlICJgL2Jpbi9hcmNoYCIgaW4KKwkgICAgc3VuMykKKwkJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKwkJOzsKKwkgICAgc3VuNCkKKwkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJCTs7CisJZXNhYworCWV4aXQgOzsKKyAgICBhdXNocDpTdW5PUzoqOiopCisJZWNobyBzcGFyYy1hdXNwZXgtc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICMgVGhlIHNpdHVhdGlvbiBmb3IgTWlOVCBpcyBhIGxpdHRsZSBjb25mdXNpbmcuICBUaGUgbWFjaGluZSBuYW1lCisgICAgIyBjYW4gYmUgdmlydHVhbGx5IGV2ZXJ5dGhpbmcgKGV2ZXJ5dGhpbmcgd2hpY2ggaXMgbm90CisgICAgIyAiYXRhcmlzdCIgb3IgImF0YXJpc3RlIiBhdCBsZWFzdCBzaG91bGQgaGF2ZSBhIHByb2Nlc3NvcgorICAgICMgPiBtNjgwMDApLiAgVGhlIHN5c3RlbSBuYW1lIHJhbmdlcyBmcm9tICJNaU5UIiBvdmVyICJGcmVlTWlOVCIKKyAgICAjIHRvIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiAibWludCIgKG9yICJmcmVlbWludCIpLiAgRmluYWxseQorICAgICMgdGhlIHN5c3RlbSBuYW1lICJUT1MiIGRlbm90ZXMgYSBzeXN0ZW0gd2hpY2ggaXMgYWN0dWFsbHkgbm90CisgICAgIyBNaU5ULiAgQnV0IE1pTlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxkCisgICAgIyBiZSBubyBwcm9ibGVtLgorICAgIGF0YXJpc3RbZV06Kk1pTlQ6KjoqIHwgYXRhcmlzdFtlXToqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorICAgICAgICBleGl0IDs7CisgICAgKmZhbGNvbio6Kk1pTlQ6KjoqIHwgKmZhbGNvbio6Km1pbnQ6KjoqIHwgKmZhbGNvbio6KlRPUzoqOiopCisgICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBtaWxhbio6Kk1pTlQ6KjoqIHwgbWlsYW4qOiptaW50Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCisgICAgICAgIGVjaG8gbTY4ay1taWxhbi1taW50JHtVTkFNRV9SRUxFQVNFfQorICAgICAgICBleGl0IDs7CisgICAgaGFkZXMqOipNaU5UOio6KiB8IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQorICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KKyAgICAgICAgZXhpdCA7OworICAgICo6Kk1pTlQ6KjoqIHwgKjoqbWludDoqOiogfCAqOipUT1M6KjoqKQorICAgICAgICBlY2hvIG02OGstdW5rbm93bi1taW50JHtVTkFNRV9SRUxFQVNFfQorICAgICAgICBleGl0IDs7CisgICAgbTY4azptYWNodGVuOio6KikKKwllY2hvIG02OGstYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgcG93ZXJwYzptYWNodGVuOio6KikKKwllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgUklTQyo6TWFjaDoqOiopCisJZWNobyBtaXBzLWRlYy1tYWNoX2JzZDQuMworCWV4aXQgOzsKKyAgICBSSVNDKjpVTFRSSVg6KjoqKQorCWVjaG8gbWlwcy1kZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBWQVgqOlVMVFJJWCo6KjoqKQorCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIDIwMjA6Q0xJWDoqOiogfCAyNDMwOkNMSVg6KjoqKQorCWVjaG8gY2xpcHBlci1pbnRlcmdyYXBoLWNsaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIG1pcHM6KjoqOlVNSVBTIHwgbWlwczoqOio6UklTQ29zKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworI2lmZGVmIF9fY3BsdXNwbHVzCisjaW5jbHVkZSA8c3RkaW8uaD4gIC8qIGZvciBwcmludGYoKSBwcm90b3R5cGUgKi8KKwlpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworI2Vsc2UKKwlpbnQgbWFpbiAoYXJnYywgYXJndikgaW50IGFyZ2M7IGNoYXIgKmFyZ3ZbXTsgeworI2VuZGlmCisJI2lmIGRlZmluZWQgKGhvc3RfbWlwcykgJiYgZGVmaW5lZCAoTUlQU0VCKQorCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NZU1YpCisJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzeXN2XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7CisJI2VuZGlmCisJI2lmIGRlZmluZWQgKFNZU1RZUEVfU1ZSNCkKKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc3N2cjRcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKKwkjZW5kaWYKKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9CU0Q0MykgfHwgZGVmaW5lZChTWVNUWVBFX0JTRCkKKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc2JzZFxuIiwgYXJndlsxXSk7IGV4aXQgKDApOworCSNlbmRpZgorCSNlbmRpZgorCSAgZXhpdCAoLTEpOworCX0KK0VPRgorCSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmCisJICBkdW1teWFyZz1gZWNobyAiJHtVTkFNRV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3MvXChbMC05XSpcKS4qL1wxL3AnYCAmJgorCSAgU1lTVEVNX05BTUU9YCRkdW1teSAkZHVtbXlhcmdgICYmCisJICAgIHsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQorCWVjaG8gbWlwcy1taXBzLXJpc2NvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgTW90b3JvbGE6UG93ZXJNQVhfT1M6KjoqKQorCWVjaG8gcG93ZXJwYy1tb3Rvcm9sYS1wb3dlcm1heAorCWV4aXQgOzsKKyAgICBNb3Rvcm9sYToqOjQuMzpQTDgtKikKKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4CisJZXhpdCA7OworICAgIE5pZ2h0X0hhd2s6KjoqOlBvd2VyTUFYX09TIHwgU3luZXJneTpQb3dlck1BWF9PUzoqOiopCisJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAorCWV4aXQgOzsKKyAgICBOaWdodF9IYXdrOlBvd2VyX1VOSVg6KjoqKQorCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJ1bml4CisJZXhpdCA7OworICAgIG04OGs6Q1gvVVg6Nyo6KikKKwllY2hvIG04OGstaGFycmlzLWN4dXg3CisJZXhpdCA7OworICAgIG04OGs6Kjo0KjpSNCopCisJZWNobyBtODhrLW1vdG9yb2xhLXN5c3Y0CisJZXhpdCA7OworICAgIG04OGs6KjozKjpSMyopCisJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisJZXhpdCA7OworICAgIEFWaWlPTjpkZ3V4Oio6KikKKyAgICAgICAgIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKKyAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKKwlpZiBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTAwIF0gfHwgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODExMCBdCisJdGhlbgorCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKKwkgICAgICAgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSB4IF0KKwkgICAgdGhlbgorCQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KKwkgICAgZWxzZQorCQllY2hvIG04OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KKwkgICAgZmkKKwllbHNlCisJICAgIGVjaG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQorCWZpCisgCWV4aXQgOzsKKyAgICBNODgqOkRvbHBoaW5PUzoqOiopCSMgRG9scGhpbk9TIChTVlIzKQorCWVjaG8gbTg4ay1kb2xwaGluLXN5c3YzCisJZXhpdCA7OworICAgIE04OCo6KjpSMyo6KikKKwkjIERlbHRhIDg4ayBzeXN0ZW0gcnVubmluZyBTVlIzCisJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisJZXhpdCA7OworICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQorCWVjaG8gbTg4ay10ZWt0cm9uaXgtc3lzdjMKKwlleGl0IDs7CisgICAgVGVrNDNbMC05XVswLTldOlVUZWs6KjoqKSAjIFRla3Ryb25peCA0MzAwIHN5c3RlbSBydW5uaW5nIFVUZWsgKEJTRCkKKwllY2hvIG02OGstdGVrdHJvbml4LWJzZAorCWV4aXQgOzsKKyAgICAqOklSSVgqOio6KikKKwllY2hvIG1pcHMtc2dpLWlyaXhgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy8tL18vZydgCisJZXhpdCA7OworICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KKwllY2hvIHJvbXAtaWJtLWFpeCAgICAgIyB1bmFtZSAtbSBnaXZlcyBhbiA4IGhleC1jb2RlIENQVSBpZAorCWV4aXQgOzsgICAgICAgICAgICAgICAjIE5vdGUgdGhhdDogZWNobyAiJ2B1bmFtZSAtc2AnIiBnaXZlcyAnQUlYICcKKyAgICBpKjg2OkFJWDoqOiopCisJZWNobyBpMzg2LWlibS1haXgKKwlleGl0IDs7CisgICAgaWE2NDpBSVg6KjoqKQorCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgorCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAorCWVsc2UKKwkJSUJNX1JFVj0ke1VOQU1FX1ZFUlNJT059LiR7VU5BTUVfUkVMRUFTRX0KKwlmaQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tYWl4JHtJQk1fUkVWfQorCWV4aXQgOzsKKyAgICAqOkFJWDoyOjMpCisJaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwkJc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+CisKKwkJbWFpbigpCisJCQl7CisJCQlpZiAoIV9fcG93ZXJfcGMoKSkKKwkJCQlleGl0KDEpOworCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKKwkJCWV4aXQoMCk7CisJCQl9CitFT0YKKwkJaWYgJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAKKwkJdGhlbgorCQkJZWNobyAiJFNZU1RFTV9OQU1FIgorCQllbHNlCisJCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjUKKwkJZmkKKwllbGlmIGdyZXAgYm9zMzI0IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgorCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjQKKwllbHNlCisJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIKKwlmaQorCWV4aXQgOzsKKyAgICAqOkFJWDoqOls0NTZdKQorCUlCTV9DUFVfSUQ9YC91c3Ivc2Jpbi9sc2RldiAtQyAtYyBwcm9jZXNzb3IgLVMgYXZhaWxhYmxlIHwgc2VkIDFxIHwgYXdrICd7IHByaW50ICQxIH0nYAorCWlmIC91c3Ivc2Jpbi9sc2F0dHIgLUVsICR7SUJNX0NQVV9JRH0gfCBncmVwICcgUE9XRVInID4vZGV2L251bGwgMj4mMTsgdGhlbgorCQlJQk1fQVJDSD1yczYwMDAKKwllbHNlCisJCUlCTV9BUkNIPXBvd2VycGMKKwlmaQorCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgorCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAorCWVsc2UKKwkJSUJNX1JFVj0ke1VOQU1FX1ZFUlNJT059LiR7VU5BTUVfUkVMRUFTRX0KKwlmaQorCWVjaG8gJHtJQk1fQVJDSH0taWJtLWFpeCR7SUJNX1JFVn0KKwlleGl0IDs7CisgICAgKjpBSVg6KjoqKQorCWVjaG8gcnM2MDAwLWlibS1haXgKKwlleGl0IDs7CisgICAgaWJtcnQ6NC40QlNEOip8cm9tcC1pYm06QlNEOiopCisJZWNobyByb21wLWlibS1ic2Q0LjQKKwlleGl0IDs7CisgICAgaWJtcnQ6KkJTRDoqfHJvbXAtaWJtOkJTRDoqKSAgICAgICAgICAgICMgY292ZXJzIFJUL1BDIEJTRCBhbmQKKwllY2hvIHJvbXAtaWJtLWJzZCR7VU5BTUVfUkVMRUFTRX0gICAjIDQuMyB3aXRoIHVuYW1lIGFkZGVkIHRvCisJZXhpdCA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZXBvcnQ6IHJvbXAtaWJtIEJTRCA0LjMKKyAgICAqOkJPU1g6KjoqKQorCWVjaG8gcnM2MDAwLWJ1bGwtYm9zeAorCWV4aXQgOzsKKyAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQorCWVjaG8gbTY4ay1idWxsLXN5c3YzCisJZXhpdCA7OworICAgIDkwMDAvWzM0XT8/OjQuM2JzZDoxLio6KikKKwllY2hvIG02OGstaHAtYnNkCisJZXhpdCA7OworICAgIGhwMzAwOjQuNEJTRDoqOiogfCA5MDAwL1szNF0/Pzo0LjNic2Q6Mi4qOiopCisJZWNobyBtNjhrLWhwLWJzZDQuNAorCWV4aXQgOzsKKyAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCisJSFBVWF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCisJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KKwkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7CisJICAgIDkwMDAvWzM0XT8/ICkgICAgICAgICBIUF9BUkNIPW02OGsgOzsKKwkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCisJCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCisJCSAgICBzY19jcHVfdmVyc2lvbj1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19DUFVfVkVSU0lPTiAyPi9kZXYvbnVsbGAKKyAgICAgICAgICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgorICAgICAgICAgICAgICAgICAgICAgIDUyMykgSFBfQVJDSD0iaHBwYTEuMCIgOzsgIyBDUFVfUEFfUklTQzFfMAorICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQorICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiJHtzY19rZXJuZWxfYml0c30iIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OworCQkJICAnJykgSFBfQVJDSD0iaHBwYTIuMCIgOzsgICAjIEhQLVVYIDEwLjIwCisgICAgICAgICAgICAgICAgICAgICAgICBlc2FjIDs7CisgICAgICAgICAgICAgICAgICAgIGVzYWMKKwkJZmkKKwkJaWYgWyAiJHtIUF9BUkNIfSIgPSAiIiBdOyB0aGVuCisJCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJCSAgICBzZWQgJ3MvXiAgICAgICAgICAgICAgLy8nIDw8IEVPRiA+JGR1bW15LmMKKworICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQorICAgICAgICAgICAgICAjaW5jbHVkZSA8c3RkbGliLmg+CisgICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KKworICAgICAgICAgICAgICBpbnQgbWFpbiAoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKKyAgICAgICAgICAgICAgICAgIGxvbmcgYml0cyA9IHN5c2NvbmYoX1NDX0tFUk5FTF9CSVRTKTsKKyAgICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOworCisgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNwdSkKKyAgICAgICAgICAgICAgCXsKKyAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MxXzA6IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOworICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7CisgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgorICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCisgICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRzKQorICAgICAgICAgICAgICAJCXsKKyAgICAgICAgICAgICAgCQljYXNlIDY0OiBwdXRzICgiaHBwYTIuMHciKTsgYnJlYWs7CisgICAgICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEyLjBuIik7IGJyZWFrOworICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOworICAgICAgICAgICAgICAJCX0gYnJlYWs7CisgICAgICAgICAgICAgICNlbHNlICAvKiAhZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpICovCisgICAgICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7CisgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAJZGVmYXVsdDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7CisgICAgICAgICAgICAgIAl9CisgICAgICAgICAgICAgICAgICBleGl0ICgwKTsKKyAgICAgICAgICAgICAgfQorRU9GCisJCSAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gJGR1bW15YAorCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9aHBwYQorCQlmaSA7OworCWVzYWMKKwlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0KKwl0aGVuCisJICAgIGV2YWwgJHNldF9jY19mb3JfYnVpbGQKKworCSAgICAjIGhwcGEyLjB3LWhwLWhwdXgqIGhhcyBhIDY0LWJpdCBrZXJuZWwgYW5kIGEgY29tcGlsZXIgZ2VuZXJhdGluZworCSAgICAjIDMyLWJpdCBjb2RlLiAgaHBwYTY0LWhwLWhwdXgqIGhhcyB0aGUgc2FtZSBrZXJuZWwgYW5kIGEgY29tcGlsZXIKKwkgICAgIyBnZW5lcmF0aW5nIDY0LWJpdCBjb2RlLiAgR05VIGFuZCBIUCB1c2UgZGlmZmVyZW50IG5vbWVuY2xhdHVyZToKKwkgICAgIworCSAgICAjICQgQ0NfRk9SX0JVSUxEPWNjIC4vY29uZmlnLmd1ZXNzCisJICAgICMgPT4gaHBwYTIuMHctaHAtaHB1eDExLjIzCisJICAgICMgJCBDQ19GT1JfQlVJTEQ9ImNjICtEQTIuMHciIC4vY29uZmlnLmd1ZXNzCisJICAgICMgPT4gaHBwYTY0LWhwLWhwdXgxMS4yMworCisJICAgIGlmIGVjaG8gX19MUDY0X18gfCAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwKKwkJZ3JlcCAtcSBfX0xQNjRfXworCSAgICB0aGVuCisJCUhQX0FSQ0g9ImhwcGEyLjB3IgorCSAgICBlbHNlCisJCUhQX0FSQ0g9ImhwcGE2NCIKKwkgICAgZmkKKwlmaQorCWVjaG8gJHtIUF9BUkNIfS1ocC1ocHV4JHtIUFVYX1JFVn0KKwlleGl0IDs7CisgICAgaWE2NDpIUC1VWDoqOiopCisJSFBVWF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCisJZWNobyBpYTY0LWhwLWhwdXgke0hQVVhfUkVWfQorCWV4aXQgOzsKKyAgICAzMDUwKjpISS1VWDoqOiopCisJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJI2luY2x1ZGUgPHVuaXN0ZC5oPgorCWludAorCW1haW4gKCkKKwl7CisJICBsb25nIGNwdSA9IHN5c2NvbmYgKF9TQ19DUFVfVkVSU0lPTik7CisJICAvKiBUaGUgb3JkZXIgbWF0dGVycywgYmVjYXVzZSBDUFVfSVNfSFBfTUM2OEsgZXJyb25lb3VzbHkgcmV0dXJucworCSAgICAgdHJ1ZSBmb3IgQ1BVX1BBX1JJU0MxXzAuICBDUFVfSVNfUEFfUklTQyByZXR1cm5zIGNvcnJlY3QKKwkgICAgIHJlc3VsdHMsIGhvd2V2ZXIuICAqLworCSAgaWYgKENQVV9JU19QQV9SSVNDIChjcHUpKQorCSAgICB7CisJICAgICAgc3dpdGNoIChjcHUpCisJCXsKKwkJICBjYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisJCSAgY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworCQkgIGNhc2UgQ1BVX1BBX1JJU0MyXzA6IHB1dHMgKCJocHBhMi4wLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKwkJICBkZWZhdWx0OiBwdXRzICgiaHBwYS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisJCX0KKwkgICAgfQorCSAgZWxzZSBpZiAoQ1BVX0lTX0hQX01DNjhLIChjcHUpKQorCSAgICBwdXRzICgibTY4ay1oaXRhY2hpLWhpdXh3ZTIiKTsKKwkgIGVsc2UgcHV0cyAoInVua25vd24taGl0YWNoaS1oaXV4d2UyIik7CisJICBleGl0ICgwKTsKKwl9CitFT0YKKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFNRT1gJGR1bW15YCAmJgorCQl7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KKwllY2hvIHVua25vd24taGl0YWNoaS1oaXV4d2UyCisJZXhpdCA7OworICAgIDkwMDAvNz8/OjQuM2JzZDoqOiogfCA5MDAwLzg/Wzc5XTo0LjNic2Q6KjoqICkKKwllY2hvIGhwcGExLjEtaHAtYnNkCisJZXhpdCA7OworICAgIDkwMDAvOD8/OjQuM2JzZDoqOiopCisJZWNobyBocHBhMS4wLWhwLWJzZAorCWV4aXQgOzsKKyAgICAqOT8/KjpNUEUvaVg6KjoqIHwgKjMwMDAqOk1QRS9pWDoqOiopCisJZWNobyBocHBhMS4wLWhwLW1wZWl4CisJZXhpdCA7OworICAgIGhwNz8/Ok9TRjE6KjoqIHwgaHA4P1s3OV06T1NGMToqOiogKQorCWVjaG8gaHBwYTEuMS1ocC1vc2YKKwlleGl0IDs7CisgICAgaHA4Pz86T1NGMToqOiopCisJZWNobyBocHBhMS4wLWhwLW9zZgorCWV4aXQgOzsKKyAgICBpKjg2Ok9TRjE6KjoqKQorCWlmIFsgLXggL3Vzci9zYmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3NmMW1rCisJZWxzZQorCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxCisJZmkKKwlleGl0IDs7CisgICAgcGFyaXNjKjpMaXRlcyo6KjoqKQorCWVjaG8gaHBwYTEuMS1ocC1saXRlcworCWV4aXQgOzsKKyAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQorCWVjaG8gYzEtY29udmV4LWJzZAorICAgICAgICBleGl0IDs7CisgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMio6KikKKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAorCWZpCisgICAgICAgIGV4aXQgOzsKKyAgICBDMzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzQqOiopCisJZWNobyBjMzQtY29udmV4LWJzZAorICAgICAgICBleGl0IDs7CisgICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQorCWVjaG8gYzM4LWNvbnZleC1ic2QKKyAgICAgICAgZXhpdCA7OworICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzQqOiopCisJZWNobyBjNC1jb252ZXgtYnNkCisgICAgICAgIGV4aXQgOzsKKyAgICBDUkFZKlktTVA6KjoqOiopCisJZWNobyB5bXAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKwlleGl0IDs7CisgICAgQ1JBWSpbQS1aXTkwOio6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gXAorCXwgc2VkIC1lICdzL0NSQVkuKlwoW0EtWl05MFwpL1wxLycgXAorCSAgICAgIC1lIHkvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKKwkgICAgICAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCA7OworICAgIENSQVkqVFM6KjoqOiopCisJZWNobyB0OTAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKwlleGl0IDs7CisgICAgQ1JBWSpUM0U6KjoqOiopCisJZWNobyBhbHBoYWV2NS1jcmF5LXVuaWNvc21rJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCA7OworICAgIENSQVkqU1YxOio6KjoqKQorCWVjaG8gc3YxLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCA7OworICAgICo6VU5JQ09TL21wOio6KikKKwllY2hvIGNyYXludi1jcmF5LXVuaWNvc21wJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCA7OworICAgIEYzMFswMV06VU5JWF9TeXN0ZW1fVjoqOiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQorCUZVSklUU1VfUFJPQz1gdW5hbWUgLW0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCisgICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKKyAgICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy8gL18vJ2AKKyAgICAgICAgZWNobyAiJHtGVUpJVFNVX1BST0N9LWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVMfSIKKyAgICAgICAgZXhpdCA7OworICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKKyAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAorICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAorICAgICAgICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisJZXhpdCA7OworICAgIGkqODY6QlNELzM4NjoqOiogfCBpKjg2OkJTRC9PUzoqOiogfCAqOkFzY2VuZFwgRW1iZWRkZWQvT1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1ic2RpJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBzcGFyYyo6QlNEL09TOio6KikKKwllY2hvIHNwYXJjLXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpCU0QvT1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6RnJlZUJTRDoqOiopCisJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCisJICAgIHBjOTgpCisJCWVjaG8gaTM4Ni11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisJICAgIGFtZDY0KQorCQllY2hvIHg4Nl82NC11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisJICAgICopCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisJZXNhYworCWV4aXQgOzsKKyAgICBpKjpDWUdXSU4qOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWN5Z3dpbgorCWV4aXQgOzsKKyAgICAqOk1JTkdXKjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1taW5ndzMyCisJZXhpdCA7OworICAgIGkqOndpbmRvd3MzMio6KikKKyAgICAJIyB1bmFtZSAtbSBpbmNsdWRlcyAiLXBjIiBvbiB0aGlzIHN5c3RlbS4KKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LW1pbmd3MzIKKwlleGl0IDs7CisgICAgaSo6UFcqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXB3MzIKKwlleGl0IDs7CisgICAgKjpJbnRlcml4KjoqKQorICAgIAljYXNlICR7VU5BTUVfTUFDSElORX0gaW4KKwkgICAgeDg2KQorCQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KKwkJZXhpdCA7OworCSAgICBhdXRoZW50aWNhbWQgfCBnZW51aW5laW50ZWwgfCBFTTY0VCkKKwkJZWNobyB4ODZfNjQtdW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQorCQlleGl0IDs7CisJICAgIElBNjQpCisJCWVjaG8gaWE2NC11bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9CisJCWV4aXQgOzsKKwllc2FjIDs7CisgICAgWzM0NV04NjpXaW5kb3dzXzk1OiogfCBbMzQ1XTg2OldpbmRvd3NfOTg6KiB8IFszNDVdODY6V2luZG93c19OVDoqKQorCWVjaG8gaSR7VU5BTUVfTUFDSElORX0tcGMtbWtzCisJZXhpdCA7OworICAgIDg2NjQ6V2luZG93c19OVDoqKQorCWVjaG8geDg2XzY0LXBjLW1rcworCWV4aXQgOzsKKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKKwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/CisJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVyc2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/CisJZWNobyBpNTg2LXBjLWludGVyaXgKKwlleGl0IDs7CisgICAgaSo6VVdJTio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtdXdpbgorCWV4aXQgOzsKKyAgICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKKwllY2hvIHg4Nl82NC11bmtub3duLWN5Z3dpbgorCWV4aXQgOzsKKyAgICBwKjpDWUdXSU4qOiopCisJZWNobyBwb3dlcnBjbGUtdW5rbm93bi1jeWd3aW4KKwlleGl0IDs7CisgICAgcHJlcCo6U3VuT1M6NS4qOiopCisJZWNobyBwb3dlcnBjbGUtdW5rbm93bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorCWV4aXQgOzsKKyAgICAqOkdOVToqOiopCisJIyB0aGUgR05VIHN5c3RlbQorCWVjaG8gYGVjaG8gJHtVTkFNRV9NQUNISU5FfXxzZWQgLWUgJ3MsWy0vXS4qJCwsJ2AtdW5rbm93bi1nbnVgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncywvLiokLCwnYAorCWV4aXQgOzsKKyAgICAqOkdOVS8qOio6KikKKwkjIG90aGVyIHN5c3RlbXMgd2l0aCBHTlUgbGliYyBhbmQgdXNlcmxhbmQKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZU1RFTX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQorCWV4aXQgOzsKKyAgICBpKjg2Ok1pbml4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKKwlleGl0IDs7CisgICAgYWxwaGE6TGludXg6KjoqKQorCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9kZWwvcy9eLio6IFwoLipcKS9cMS9wJyA8IC9wcm9jL2NwdWluZm9gIGluCisJICBFVjUpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7OworCSAgRVY1NikgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjU2IDs7CisJICBQQ0E1NikgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisJICBQQ0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisJICBFVjYpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NiA7OworCSAgRVY2NykgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7CisJICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBoYWV2NjggOzsKKyAgICAgICAgZXNhYworCW9iamR1bXAgLS1wcml2YXRlLWhlYWRlcnMgL2Jpbi9zaCB8IGdyZXAgLXEgbGQuc28uMQorCWlmIHRlc3QgIiQ/IiA9IDAgOyB0aGVuIExJQkM9ImxpYmMxIiA7IGVsc2UgTElCQz0iIiA7IGZpCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251JHtMSUJDfQorCWV4aXQgOzsKKyAgICBhcm0qOkxpbnV4Oio6KikKKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJaWYgZWNobyBfX0FSTV9FQUJJX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAorCSAgICB8IGdyZXAgLXEgX19BUk1fRUFCSV9fCisJdGhlbgorCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwllbHNlCisJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudWVhYmkKKwlmaQorCWV4aXQgOzsKKyAgICBhdnIzMio6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBjcmlzOkxpbnV4Oio6KikKKwllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKKwlleGl0IDs7CisgICAgY3Jpc3YzMjpMaW51eDoqOiopCisJZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251CisJZXhpdCA7OworICAgIGZydjpMaW51eDoqOiopCisgICAgCWVjaG8gZnJ2LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIGkqODY6TGludXg6KjoqKQorCUxJQkM9Z251CisJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJI2lmZGVmIF9fZGlldGxpYmNfXworCUxJQkM9ZGlldGxpYmMKKwkjZW5kaWYKK0VPRgorCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwICdeTElCQydgCisJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC0ke0xJQkN9IgorCWV4aXQgOzsKKyAgICBpYTY0OkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgbTMycio6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBtNjgqOkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgbWlwczpMaW51eDoqOiogfCBtaXBzNjQ6TGludXg6KjoqKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworCSN1bmRlZiBDUFUKKwkjdW5kZWYgJHtVTkFNRV9NQUNISU5FfQorCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9ZWwKKwkjaWYgZGVmaW5lZChfX01JUFNFTF9fKSB8fCBkZWZpbmVkKF9fTUlQU0VMKSB8fCBkZWZpbmVkKF9NSVBTRUwpIHx8IGRlZmluZWQoTUlQU0VMKQorCUNQVT0ke1VOQU1FX01BQ0hJTkV9ZWwKKwkjZWxzZQorCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCisJQ1BVPSR7VU5BTUVfTUFDSElORX0KKwkjZWxzZQorCUNQVT0KKwkjZW5kaWYKKwkjZW5kaWYKK0VPRgorCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwICdeQ1BVJ2AKKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQorCTs7CisgICAgb3IzMjpMaW51eDoqOiopCisJZWNobyBvcjMyLXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHBhZHJlOkxpbnV4Oio6KikKKwllY2hvIHNwYXJjLXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHBhcmlzYzY0OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51eDoqOiopCisJZWNobyBocHBhNjQtdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgcGFyaXNjOkxpbnV4Oio6KiB8IGhwcGE6TGludXg6KjoqKQorCSMgTG9vayBmb3IgQ1BVIGxldmVsCisJY2FzZSBgZ3JlcCAnXmNwdVteYS16XSo6JyAvcHJvYy9jcHVpbmZvIDI+L2Rldi9udWxsIHwgY3V0IC1kJyAnIC1mMmAgaW4KKwkgIFBBNyopIGVjaG8gaHBwYTEuMS11bmtub3duLWxpbnV4LWdudSA7OworCSAgUEE4KikgZWNobyBocHBhMi4wLXVua25vd24tbGludXgtZ251IDs7CisJICAqKSAgICBlY2hvIGhwcGEtdW5rbm93bi1saW51eC1nbnUgOzsKKwllc2FjCisJZXhpdCA7OworICAgIHBwYzY0OkxpbnV4Oio6KikKKwllY2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBwcGM6TGludXg6KjoqKQorCWVjaG8gcG93ZXJwYy11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBzMzkwOkxpbnV4Oio6KiB8IHMzOTB4OkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0taWJtLWxpbnV4CisJZXhpdCA7OworICAgIHNoNjQqOkxpbnV4Oio6KikKKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHNoKjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHNwYXJjOkxpbnV4Oio6KiB8IHNwYXJjNjQ6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICB2YXg6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtbGludXgtZ251CisJZXhpdCA7OworICAgIHg4Nl82NDpMaW51eDoqOiopCisJZWNobyB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgeHRlbnNhKjpMaW51eDoqOiopCisgICAgCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQorCSMgcHR4IDQuMCBkb2VzIHVuYW1lIC1zIGNvcnJlY3RseSwgd2l0aCBEWU5JWC9wdHggaW4gdGhlcmUuCisJIyBlYXJsaWVyIHZlcnNpb25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1dCB0aGUgbm9kZW5hbWUgaW4gYm90aAorCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCisJZWNobyBpMzg2LXNlcXVlbnQtc3lzdjQKKwlleGl0IDs7CisgICAgaSo4NjpVTklYX1NWOjQuMk1QOjIuKikKKyAgICAgICAgIyBVbml4d2FyZSBpcyBhbiBvZmZzaG9vdCBvZiBTVlI0LCBidXQgaXQgaGFzIGl0cyBvd24gdmVyc2lvbgorICAgICAgICAjIG51bWJlciBzZXJpZXMgc3RhcnRpbmcgd2l0aCAyLi4uCisgICAgICAgICMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29uJ3QgbWF0Y2ggdGhpcywKKwkjIEkganVzdCBoYXZlIHRvIGhvcGUuICAtLSBybXMuCisgICAgICAgICMgVXNlIHN5c3Y0LjJ1dy4uLiBzbyB0aGF0IHN5c3Y0KiBtYXRjaGVzIGl0LgorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059CisJZXhpdCA7OworICAgIGkqODY6T1MvMjoqOiopCisJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmluZCBgdW5hbWUnLCB0aGVuIEVNWCBVbml4IGNvbXBhdGliaWxpdHkKKwkjIGlzIHByb2JhYmx5IGluc3RhbGxlZC4KKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtb3MyLWVteAorCWV4aXQgOzsKKyAgICBpKjg2OlhUUy0zMDA6KjpTVE9QKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN0b3AKKwlleGl0IDs7CisgICAgaSo4NjphdGhlb3M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWF0aGVvcworCWV4aXQgOzsKKyAgICBpKjg2OnN5bGxhYmxlOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lsbGFibGUKKwlleGl0IDs7CisgICAgaSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzozLlswMV0qOiogfCBpKjg2Okx5bnhPUzo0LlswMl0qOiopCisJZWNobyBpMzg2LXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBpKjg2OipET1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1tc2Rvc2RqZ3BwCisJZXhpdCA7OworICAgIGkqODY6Kjo0Lio6KiB8IGkqODY6U1lTVEVNX1Y6NC4qOiopCisJVU5BTUVfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgJ3MvXC9NUCQvLydgCisJaWYgZ3JlcCBOb3ZlbGwgL3Vzci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bml2ZWwtc3lzdiR7VU5BTUVfUkVMfQorCWVsc2UKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JFTH0KKwlmaQorCWV4aXQgOzsKKyAgICBpKjg2Oio6NTpbNjc4XSopCisgICAgCSMgVW5peFdhcmUgNy54LCBPcGVuVU5JWCBhbmQgT3BlblNlcnZlciA2LgorCWNhc2UgYC9iaW4vdW5hbWUgLVggfCBncmVwICJeTWFjaGluZSJgIGluCisJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4NiA7OworCSAgICAqUGVudGl1bSkJICAgICBVTkFNRV9NQUNISU5FPWk1ODYgOzsKKwkgICAgKlBlbnQqfCpDZWxlcm9uKSBVTkFNRV9NQUNISU5FPWk2ODYgOzsKKwllc2FjCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0ke1VOQU1FX1NZU1RFTX0ke1VOQU1FX1ZFUlNJT059CisJZXhpdCA7OworICAgIGkqODY6KjozLjI6KikKKwlpZiB0ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0aGVuCisJCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAvL3AnIDwvdXNyL29wdGlvbnMvY2IubmFtZWAKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9SRUwKKwllbGlmIC9iaW4vdW5hbWUgLVggMj4vZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KKwkJVU5BTUVfUkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1lICdzLy4qPSAvLycpYAorCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0ODYKKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bSBQcm8nID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2NvJFVOQU1FX1JFTAorCWVsc2UKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgorCWZpCisJZXhpdCA7OworICAgIHBjOio6KjoqKQorCSMgTGVmdCBoZXJlIGZvciBjb21wYXRpYmlsaXR5OgorICAgICAgICAjIHVuYW1lIC1tIHByaW50cyBmb3IgREpHUFAgYWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGluZyBhYm91dAorICAgICAgICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBpNTg2LgorCSMgTm90ZTogd2hhdGV2ZXIgdGhpcyBpcywgaXQgTVVTVCBiZSB0aGUgc2FtZSBhcyB3aGF0IGNvbmZpZy5zdWIKKwkjIHByaW50cyBmb3IgdGhlICJkamdwcCIgaG9zdCwgb3IgZWxzZSBHREIgY29uZmlndXJ5IHdpbGwgZGVjaWRlIHRoYXQKKwkjIHRoaXMgaXMgYSBjcm9zcy1idWlsZC4KKwllY2hvIGk1ODYtcGMtbXNkb3NkamdwcAorICAgICAgICBleGl0IDs7CisgICAgSW50ZWw6TWFjaDozKjoqKQorCWVjaG8gaTM4Ni1wYy1tYWNoMworCWV4aXQgOzsKKyAgICBwYXJhZ29uOio6KjoqKQorCWVjaG8gaTg2MC1pbnRlbC1vc2YxCisJZXhpdCA7OworICAgIGk4NjA6Kjo0Lio6KikgIyBpODYwLVNWUjQKKwlpZiBncmVwIFN0YXJkZW50IC91c3IvaW5jbHVkZS9zeXMvdWFkbWluLmggPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorCSAgZWNobyBpODYwLXN0YXJkZW50LXN5c3Yke1VOQU1FX1JFTEVBU0V9ICMgU3RhcmRlbnQgVmlzdHJhIGk4NjAtU1ZSNAorCWVsc2UgIyBBZGQgb3RoZXIgaTg2MC1TVlI0IHZlbmRvcnMgYmVsb3cgYXMgdGhleSBhcmUgZGlzY292ZXJlZC4KKwkgIGVjaG8gaTg2MC11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9ICAjIFVua25vd24gaTg2MC1TVlI0CisJZmkKKwlleGl0IDs7CisgICAgbWluaSo6Q1RJWDpTWVMqNToqKQorCSMgIm1pbmlmcmFtZSIKKwllY2hvIG02ODAxMC1jb252ZXJnZW50LXN5c3YKKwlleGl0IDs7CisgICAgbWM2OGs6VU5JWDpTWVNURU01OjMuNTFtKQorCWVjaG8gbTY4ay1jb252ZXJnZW50LXN5c3YKKwlleGl0IDs7CisgICAgTTY4MD8wOkQtTklYOjUuMzoqKQorCWVjaG8gbTY4ay1kaWFiLWRuaXgKKwlleGl0IDs7CisgICAgTTY4KjoqOlIzVls1Njc4XSo6KikKKwl0ZXN0IC1yIC9zeXNWNjggJiYgeyBlY2hvICdtNjhrLW1vdG9yb2xhLXN5c3YnOyBleGl0OyB9IDs7CisgICAgM1szNDVdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6My4wIHwgM1szNF0/PywqOio6NC4wOjMuMCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDozLjAgfCBTSEcyOio6NC4wOjMuMCB8IFM3NTAxKjoqOjQuMDozLjApCisJT1NfUkVMPScnCisJdGVzdCAtciAvZXRjLy5yZWxpZCBcCisJJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKwkgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9CisJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCisJICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OworICAgIDNbMzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQorICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKyAgICAgICAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQ7IGV4aXQ7IH0gOzsKKyAgICBOQ1IqOio6NC4yOiogfCBNUFJBUyo6Kjo0LjI6KikKKwlPU19SRUw9Jy4zJworCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAorCSAgICAmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAorCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAorCSAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQorCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgZW50aXVtID4vZGV2L251bGwgXAorCSAgICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQorCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgcHRlcm9uID4vZGV2L251bGwgXAorCSAgICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OworICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQorCWVjaG8gbTY4ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgbWM2ODAzMDpVTklYX1N5c3RlbV9WOjQuKjoqKQorCWVjaG8gbTY4ay1hdGFyaS1zeXN2NAorCWV4aXQgOzsKKyAgICBUU1VOQU1JOkx5bnhPUzoyLio6KikKKwllY2hvIHNwYXJjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICByczYwMDA6THlueE9TOjIuKjoqKQorCWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBQb3dlclBDOkx5bnhPUzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBvd2VyUEM6THlueE9TOjQuWzAyXSo6KikKKwllY2hvIHBvd2VycGMtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCisJZWNobyBtaXBzLWRkZS1zeXN2JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCisJZWNobyBtaXBzLXNuaS1zeXN2NAorCWV4aXQgOzsKKyAgICBSTSo6U0lOSVgtKjoqOiopCisJZWNobyBtaXBzLXNuaS1zeXN2NAorCWV4aXQgOzsKKyAgICAqOlNJTklYLSo6KjoqKQorCWlmIHVuYW1lIC1wIDI+L2Rldi9udWxsID4vZGV2L251bGwgOyB0aGVuCisJCVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtcCkgMj4vZGV2L251bGxgCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1zbmktc3lzdjQKKwllbHNlCisJCWVjaG8gbnMzMmstc25pLXN5c3YKKwlmaQorCWV4aXQgOzsKKyAgICBQRU5USVVNOio6NC4wKjoqKSAjIFVuaXN5cyBgQ2xlYXJQYXRoIEhNUCBJWCA0MDAwJyBTVlI0L01QIGVmZm9ydAorICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KKyAgICAgICAgZWNobyBpNTg2LXVuaXN5cy1zeXN2NAorICAgICAgICBleGl0IDs7CisgICAgKjpVTklYX1N5c3RlbV9WOjQqOkZUWCopCisJIyBGcm9tIEdlcmFsZCBIZXdlcyA8aGV3ZXNAb3Blbm1hcmtldC5jb20+LgorCSMgSG93IGFib3V0IGRpZmZlcmVudGlhdGluZyBiZXR3ZWVuIHN0cmF0dXMgYXJjaGl0ZWN0dXJlcz8gLWRqbQorCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXN5c3Y0CisJZXhpdCA7OworICAgICo6KjoqOkZUWCopCisJIyBGcm9tIHNlYW5mQHN3ZGMuc3RyYXR1cy5jb20uCisJZWNobyBpODYwLXN0cmF0dXMtc3lzdjQKKwlleGl0IDs7CisgICAgaSo4NjpWT1M6KjoqKQorCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1zdHJhdHVzLXZvcworCWV4aXQgOzsKKyAgICAqOlZPUzoqOiopCisJIyBGcm9tIFBhdWwuR3JlZW5Ac3RyYXR1cy5jb20uCisJZWNobyBocHBhMS4xLXN0cmF0dXMtdm9zCisJZXhpdCA7OworICAgIG1jNjgqOkEvVVg6KjoqKQorCWVjaG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIG5ld3MqOk5FV1MtT1M6Nio6KikKKwllY2hvIG1pcHMtc29ueS1uZXdzb3M2CisJZXhpdCA7OworICAgIFJbMzRdMDAwOipTeXN0ZW1fVio6KjoqIHwgUjQwMDA6VU5JWF9TWVNWOio6KiB8IFIqMDAwOlVOSVhfU1Y6KjoqKQorCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgorCSAgICAgICAgZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxFQVNFfQorCWVsc2UKKwkgICAgICAgIGVjaG8gbWlwcy11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9CisJZmkKKyAgICAgICAgZXhpdCA7OworICAgIEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQUEMgb25seS4KKwllY2hvIHBvd2VycGMtYmUtYmVvcworCWV4aXQgOzsKKyAgICBCZU1hYzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gTWFjIG9yIE1hYyBjbG9uZSwgUFBDIG9ubHkuCisJZWNobyBwb3dlcnBjLWFwcGxlLWJlb3MKKwlleGl0IDs7CisgICAgQmVQQzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKwllY2hvIGk1ODYtcGMtYmVvcworCWV4aXQgOzsKKyAgICBCZVBDOkhhaWt1Oio6KikJIyBIYWlrdSBydW5uaW5nIG9uIEludGVsIFBDIGNvbXBhdGlibGUuCisJZWNobyBpNTg2LXBjLWhhaWt1CisJZXhpdCA7OworICAgIFNYLTQ6U1VQRVItVVg6KjoqKQorCWVjaG8gc3g0LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBTWC01OlNVUEVSLVVYOio6KikKKwllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgU1gtNjpTVVBFUi1VWDoqOiopCisJZWNobyBzeDYtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIFNYLTc6U1VQRVItVVg6KjoqKQorCWVjaG8gc3g3LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBTWC04OlNVUEVSLVVYOio6KikKKwllY2hvIHN4OC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgU1gtOFI6U1VQRVItVVg6KjoqKQorCWVjaG8gc3g4ci1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgUG93ZXIqOlJoYXBzb2R5Oio6KikKKwllY2hvIHBvd2VycGMtYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6UmhhcHNvZHk6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpEYXJ3aW46KjoqKQorCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCisJY2FzZSAkVU5BTUVfUFJPQ0VTU09SIGluCisJICAgIGkzODYpCisJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwkJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0gJ25vX2NvbXBpbGVyX2ZvdW5kJyBdOyB0aGVuCisJCSAgaWYgKGVjaG8gJyNpZmRlZiBfX0xQNjRfXyc7IGVjaG8gSVNfNjRCSVRfQVJDSDsgZWNobyAnI2VuZGlmJykgfCBcCisJCSAgICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkgfCBcCisJCSAgICAgIGdyZXAgSVNfNjRCSVRfQVJDSCA+L2Rldi9udWxsCisJCSAgdGhlbgorCQkgICAgICBVTkFNRV9QUk9DRVNTT1I9Ing4Nl82NCIKKwkJICBmaQorCQlmaSA7OworCSAgICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7OworCWVzYWMKKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS1hcHBsZS1kYXJ3aW4ke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6cHJvY250byo6KjoqIHwgKjpRTlg6WzAxMjM0NTY3ODldKjoqKQorCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgCisJaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2IjsgdGhlbgorCQlVTkFNRV9QUk9DRVNTT1I9aTM4NgorCQlVTkFNRV9NQUNISU5FPXBjCisJZmkKKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS0ke1VOQU1FX01BQ0hJTkV9LW50by1xbngke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6UU5YOio6NCopCisJZWNobyBpMzg2LXBjLXFueAorCWV4aXQgOzsKKyAgICBOU0UtPzpOT05TVE9QX0tFUk5FTDoqOiopCisJZWNobyBuc2UtdGFuZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorCWVjaG8gbnNyLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6Tm9uU3RvcC1VWDoqOiopCisJZWNobyBtaXBzLWNvbXBhcS1ub25zdG9wdXgKKwlleGl0IDs7CisgICAgQlMyMDAwOlBPU0lYKjoqOiopCisJZWNobyBiczIwMDAtc2llbWVucy1zeXN2CisJZXhpdCA7OworICAgIERTLyo6VU5JWF9TeXN0ZW1fVjoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LSR7VU5BTUVfU1lTVEVNfS0ke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6UGxhbjk6KjoqKQorCSMgInVuYW1lIC1tIiBpcyBub3QgY29uc2lzdGVudCwgc28gdXNlICRjcHV0eXBlIGluc3RlYWQuIDM4NgorCSMgaXMgY29udmVydGVkIHRvIGkzODYgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgeDg2CisJIyBvcGVyYXRpbmcgc3lzdGVtcy4KKwlpZiB0ZXN0ICIkY3B1dHlwZSIgPSAiMzg2IjsgdGhlbgorCSAgICBVTkFNRV9NQUNISU5FPWkzODYKKwllbHNlCisJICAgIFVOQU1FX01BQ0hJTkU9IiRjcHV0eXBlIgorCWZpCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tcGxhbjkKKwlleGl0IDs7CisgICAgKjpUT1BTLTEwOio6KikKKwllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCisJZXhpdCA7OworICAgICo6VEVORVg6KjoqKQorCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAorCWV4aXQgOzsKKyAgICBLUzEwOlRPUFMtMjA6KjoqIHwgS0wxMDpUT1BTLTIwOio6KiB8IFRZUEU0OlRPUFMtMjA6KjoqKQorCWVjaG8gcGRwMTAtZGVjLXRvcHMyMAorCWV4aXQgOzsKKyAgICBYS0wtMTpUT1BTLTIwOio6KiB8IFRZUEU1OlRPUFMtMjA6KjoqKQorCWVjaG8gcGRwMTAteGtsLXRvcHMyMAorCWV4aXQgOzsKKyAgICAqOlRPUFMtMjA6KjoqKQorCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMjAKKwlleGl0IDs7CisgICAgKjpJVFM6KjoqKQorCWVjaG8gcGRwMTAtdW5rbm93bi1pdHMKKwlleGl0IDs7CisgICAgU0VJOio6KjpTRUlVWCkKKyAgICAgICAgZWNobyBtaXBzLXNlaS1zZWl1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpEcmFnb25GbHk6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKKwlleGl0IDs7CisgICAgKjoqVk1TOio6KikKKyAgICAJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKwljYXNlICIke1VOQU1FX01BQ0hJTkV9IiBpbgorCSAgICBBKikgZWNobyBhbHBoYS1kZWMtdm1zIDsgZXhpdCA7OworCSAgICBJKikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7CisJICAgIFYqKSBlY2hvIHZheC1kZWMtdm1zIDsgZXhpdCA7OworCWVzYWMgOzsKKyAgICAqOlhFTklYOio6U3lzVikKKwllY2hvIGkzODYtcGMteGVuaXgKKwlleGl0IDs7CisgICAgaSo4Njpza3lvczoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXNreW9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfWAgfCBzZWQgLWUgJ3MvIC4qJC8vJworCWV4aXQgOzsKKyAgICBpKjg2OnJkb3M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1yZG9zCisJZXhpdCA7OworICAgIGkqODY6QVJPUzoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWFyb3MKKwlleGl0IDs7Citlc2FjCisKKyNlY2hvICcoTm8gdW5hbWUgY29tbWFuZCBvciB1bmFtZSBvdXRwdXQgbm90IHJlY29nbml6ZWQuKScgMT4mMgorI2VjaG8gIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7VU5BTUVfUkVMRUFTRX06JHtVTkFNRV9WRVJTSU9OfSIgMT4mMgorCitldmFsICRzZXRfY2NfZm9yX2J1aWxkCitjYXQgPiRkdW1teS5jIDw8RU9GCisjaWZkZWYgX1NFUVVFTlRfCisjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorIyBpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorI2VuZGlmCittYWluICgpCit7CisjaWYgZGVmaW5lZCAoc29ueSkKKyNpZiBkZWZpbmVkIChNSVBTRUIpCisgIC8qIEJGRCB3YW50cyAiYnNkIiBpbnN0ZWFkIG9mICJuZXdzb3MiLiAgUGVyaGFwcyBCRkQgc2hvdWxkIGJlIGNoYW5nZWQsCisgICAgIEkgZG9uJ3Qga25vdy4uLi4gICovCisgIHByaW50ZiAoIm1pcHMtc29ueS1ic2RcbiIpOyBleGl0ICgwKTsKKyNlbHNlCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisgIHByaW50ZiAoIm02OGstc29ueS1uZXdzb3Mlc1xuIiwKKyNpZmRlZiBORVdTT1M0CisgICAgICAgICAgIjQiCisjZWxzZQorCSAgIiIKKyNlbmRpZgorICAgICAgICAgKTsgZXhpdCAoMCk7CisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoX19hcm0pICYmIGRlZmluZWQgKF9fYWNvcm4pICYmIGRlZmluZWQgKF9fdW5peCkKKyAgcHJpbnRmICgiYXJtLWFjb3JuLXJpc2NpeFxuIik7IGV4aXQgKDApOworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChocDMwMCkgJiYgIWRlZmluZWQgKGhwdXgpCisgIHByaW50ZiAoIm02OGstaHAtYnNkXG4iKTsgZXhpdCAoMCk7CisjZW5kaWYKKworI2lmIGRlZmluZWQgKE5lWFQpCisjaWYgIWRlZmluZWQgKF9fQVJDSElURUNUVVJFX18pCisjZGVmaW5lIF9fQVJDSElURUNUVVJFX18gIm02OGsiCisjZW5kaWYKKyAgaW50IHZlcnNpb247CisgIHZlcnNpb249YChob3N0aW5mbyB8IHNlZCAtbiAncy8uKk5lWFQgTWFjaCBcKFswLTldKlwpLiovXDEvcCcpIDI+L2Rldi9udWxsYDsKKyAgaWYgKHZlcnNpb24gPCA0KQorICAgIHByaW50ZiAoIiVzLW5leHQtbmV4dHN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7CisgIGVsc2UKKyAgICBwcmludGYgKCIlcy1uZXh0LW9wZW5zdGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNpb24pOworICBleGl0ICgwKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoTVVMVElNQVgpIHx8IGRlZmluZWQgKG4xNikKKyNpZiBkZWZpbmVkIChVTUFYVikKKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLXN5c3ZcbiIpOyBleGl0ICgwKTsKKyNlbHNlCisjaWYgZGVmaW5lZCAoQ01VKQorICBwcmludGYgKCJuczMyay1lbmNvcmUtbWFjaFxuIik7IGV4aXQgKDApOworI2Vsc2UKKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLWJzZFxuIik7IGV4aXQgKDApOworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoX18zODZCU0RfXykKKyAgcHJpbnRmICgiaTM4Ni1wYy1ic2RcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoc2VxdWVudCkKKyNpZiBkZWZpbmVkIChpMzg2KQorICBwcmludGYgKCJpMzg2LXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorI2lmIGRlZmluZWQgKG5zMzIwMDApCisgIHByaW50ZiAoIm5zMzJrLXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkIChfU0VRVUVOVF8pCisgICAgc3RydWN0IHV0c25hbWUgdW47CisKKyAgICB1bmFtZSgmdW4pOworCisgICAgaWYgKHN0cm5jbXAodW4udmVyc2lvbiwgIlYyIiwgMikgPT0gMCkgeworCXByaW50ZiAoImkzODYtc2VxdWVudC1wdHgyXG4iKTsgZXhpdCAoMCk7CisgICAgfQorICAgIGlmIChzdHJuY21wKHVuLnZlcnNpb24sICJWMSIsIDIpID09IDApIHsgLyogWFhYIGlzIFYxIGNvcnJlY3Q/ICovCisJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDFcbiIpOyBleGl0ICgwKTsKKyAgICB9CisgICAgcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eFxuIik7IGV4aXQgKDApOworCisjZW5kaWYKKworI2lmIGRlZmluZWQgKHZheCkKKyMgaWYgIWRlZmluZWQgKHVsdHJpeCkKKyMgIGluY2x1ZGUgPHN5cy9wYXJhbS5oPgorIyAgaWYgZGVmaW5lZCAoQlNEKQorIyAgIGlmIEJTRCA9PSA0MworICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNcbiIpOyBleGl0ICgwKTsKKyMgICBlbHNlCisjICAgIGlmIEJTRCA9PSAxOTkwMDYKKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zcmVub1xuIik7IGV4aXQgKDApOworIyAgICBlbHNlCisgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOworIyAgICBlbmRpZgorIyAgIGVuZGlmCisjICBlbHNlCisgICAgcHJpbnRmICgidmF4LWRlYy1ic2RcbiIpOyBleGl0ICgwKTsKKyMgIGVuZGlmCisjIGVsc2UKKyAgICBwcmludGYgKCJ2YXgtZGVjLXVsdHJpeFxuIik7IGV4aXQgKDApOworIyBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkIChhbGxpYW50KSAmJiBkZWZpbmVkIChpODYwKQorICBwcmludGYgKCJpODYwLWFsbGlhbnQtYnNkXG4iKTsgZXhpdCAoMCk7CisjZW5kaWYKKworICBleGl0ICgxKTsKK30KK0VPRgorCiskQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCAmJiBTWVNURU1fTkFNRT1gJGR1bW15YCAmJgorCXsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQorCisjIEFwb2xsb3MgcHV0IHRoZSBzeXN0ZW0gdHlwZSBpbiB0aGUgZW52aXJvbm1lbnQuCisKK3Rlc3QgLWQgL3Vzci9hcG9sbG8gJiYgeyBlY2hvICR7SVNQfS1hcG9sbG8tJHtTWVNUWVBFfTsgZXhpdDsgfQorCisjIENvbnZleCB2ZXJzaW9ucyB0aGF0IHByZWRhdGUgdW5hbWUgY2FuIHVzZSBnZXRzeXNpbmZvKDEpCisKK2lmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyBdCit0aGVuCisgICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KKyAgICBjMSopCisJZWNobyBjMS1jb252ZXgtYnNkCisJZXhpdCA7OworICAgIGMyKikKKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAorCWZpCisJZXhpdCA7OworICAgIGMzNCopCisJZWNobyBjMzQtY29udmV4LWJzZAorCWV4aXQgOzsKKyAgICBjMzgqKQorCWVjaG8gYzM4LWNvbnZleC1ic2QKKwlleGl0IDs7CisgICAgYzQqKQorCWVjaG8gYzQtY29udmV4LWJzZAorCWV4aXQgOzsKKyAgICBlc2FjCitmaQorCitjYXQgPiYyIDw8RU9GCiskMDogdW5hYmxlIHRvIGd1ZXNzIHN5c3RlbSB0eXBlCisKK1RoaXMgc2NyaXB0LCBsYXN0IG1vZGlmaWVkICR0aW1lc3RhbXAsIGhhcyBmYWlsZWQgdG8gcmVjb2duaXplCit0aGUgb3BlcmF0aW5nIHN5c3RlbSB5b3UgYXJlIHVzaW5nLiBJdCBpcyBhZHZpc2VkIHRoYXQgeW91Citkb3dubG9hZCB0aGUgbW9zdCB1cCB0byBkYXRlIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBzY3JpcHRzIGZyb20KKworICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLmd1ZXNzO2hiPUhFQUQKK2FuZAorICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECisKK0lmIHRoZSB2ZXJzaW9uIHlvdSBydW4gKCQwKSBpcyBhbHJlYWR5IHVwIHRvIGRhdGUsIHBsZWFzZQorc2VuZCB0aGUgZm9sbG93aW5nIGRhdGEgYW5kIGFueSBpbmZvcm1hdGlvbiB5b3UgdGhpbmsgbWlnaHQgYmUKK3BlcnRpbmVudCB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gaW4gb3JkZXIgdG8gcHJvdmlkZSB0aGUgbmVlZGVkCitpbmZvcm1hdGlvbiB0byBoYW5kbGUgeW91ciBzeXN0ZW0uCisKK2NvbmZpZy5ndWVzcyB0aW1lc3RhbXAgPSAkdGltZXN0YW1wCisKK3VuYW1lIC1tID0gYCh1bmFtZSAtbSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAordW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCit1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKK3VuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorCisvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9udWxsYAorL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsYAorCitob3N0aW5mbyAgICAgICAgICAgICAgID0gYChob3N0aW5mbykgMj4vZGV2L251bGxgCisvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbGAKKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsYAorL2Jpbi9hcmNoICAgICAgICAgICAgICA9IGAoL2Jpbi9hcmNoKSAyPi9kZXYvbnVsbGAKKy91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsYAorL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGxgCisKK1VOQU1FX01BQ0hJTkUgPSAke1VOQU1FX01BQ0hJTkV9CitVTkFNRV9SRUxFQVNFID0gJHtVTkFNRV9SRUxFQVNFfQorVU5BTUVfU1lTVEVNICA9ICR7VU5BTUVfU1lTVEVNfQorVU5BTUVfVkVSU0lPTiA9ICR7VU5BTUVfVkVSU0lPTn0KK0VPRgorCitleGl0IDEKKworIyBMb2NhbCB2YXJpYWJsZXM6CisjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKyMgdGltZS1zdGFtcC1zdGFydDogInRpbWVzdGFtcD0nIgorIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisjIHRpbWUtc3RhbXAtZW5kOiAiJyIKKyMgRW5kOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL2NvbmZpZy5ycGF0aCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2NvbmZpZy9jb25maWcucnBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGRiMTNlNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2NvbmZpZy9jb25maWcucnBhdGgKQEAgLTAsMCArMSw1NDggQEAKKyMhIC9iaW4vc2gKKyMgT3V0cHV0IGEgc3lzdGVtIGRlcGVuZGVudCBzZXQgb2YgdmFyaWFibGVzLCBkZXNjcmliaW5nIGhvdyB0byBzZXQgdGhlCisjIHJ1biB0aW1lIHNlYXJjaCBwYXRoIG9mIHNoYXJlZCBsaWJyYXJpZXMgaW4gYW4gZXhlY3V0YWJsZS4KKyMKKyMgICBDb3B5cmlnaHQgMTk5Ni0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgIFRha2VuIGZyb20gR05VIGxpYnRvb2wsIDIwMDEKKyMgICBPcmlnaW5hbGx5IGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxnb3JkQGdudS5haS5taXQuZWR1PiwgMTk5NgorIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyMKKyMgICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisjICAgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisjICAgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKyMgICB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisjCisjIFRoZSBmaXJzdCBhcmd1bWVudCBwYXNzZWQgdG8gdGhpcyBmaWxlIGlzIHRoZSBjYW5vbmljYWwgaG9zdCBzcGVjaWZpY2F0aW9uLAorIyAgICBDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQorIyBvcgorIyAgICBDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVMLU9QRVJBVElOR19TWVNURU0KKyMgVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBDQywgR0NDLCBMREZMQUdTLCBMRCwgd2l0aF9nbnVfbGQKKyMgc2hvdWxkIGJlIHNldCBieSB0aGUgY2FsbGVyLgorIworIyBUaGUgc2V0IG9mIGRlZmluZWQgdmFyaWFibGVzIGlzIGF0IHRoZSBlbmQgb2YgdGhpcyBzY3JpcHQuCisKKyMgS25vd24gbGltaXRhdGlvbnM6CisjIC0gT24gSVJJWCA2LjUgd2l0aCBDQz0iY2MiLCB0aGUgcnVuIHRpbWUgc2VhcmNoIHBhdGNoIG11c3Qgbm90IGJlIGxvbmdlcgorIyAgIHRoYW4gMjU2IGJ5dGVzLCBvdGhlcndpc2UgdGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGR1bXAgY29yZS4gVGhlIG9ubHkKKyMgICBrbm93biB3b3JrYXJvdW5kIGlzIHRvIGNob29zZSBzaG9ydGVyIGRpcmVjdG9yeSBuYW1lcyBmb3IgdGhlIGJ1aWxkCisjICAgZGlyZWN0b3J5IGFuZC9vciB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeS4KKworIyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE0kVkMsCisjIHdoaWNoIG5lZWRzICcubGliJykuCitsaWJleHQ9YQorc2hyZXh0PS5zbworCitob3N0PSIkMSIKK2hvc3RfY3B1PWBlY2hvICIkaG9zdCIgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMS8nYAoraG9zdF92ZW5kb3I9YGVjaG8gIiRob3N0IiB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wyLydgCitob3N0X29zPWBlY2hvICIkaG9zdCIgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMy8nYAorCisjIENvZGUgdGFrZW4gZnJvbSBsaWJ0b29sLm00J3MgQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQy4KKword2w9CitpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICB3bD0nLVdsLCcKK2Vsc2UKKyAgY2FzZSAiJGhvc3Rfb3MiIGluCisgICAgYWl4KikKKyAgICAgIHdsPSctV2wsJworICAgICAgOzsKKyAgICBtaW5ndyogfCBwdzMyKiB8IG9zMiopCisgICAgICA7OworICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorICAgICAgd2w9Jy1XbCwnCisgICAgICA7OworICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisgICAgICB3bD0nLVdsLCcKKyAgICAgIDs7CisgICAgbmV3c29zNikKKyAgICAgIDs7CisgICAgbGludXgqKQorICAgICAgY2FzZSAkQ0MgaW4KKyAgICAgICAgaWNjfGVjYykKKyAgICAgICAgICB3bD0nLVdsLCcKKyAgICAgICAgICA7OworICAgICAgICBjY2MpCisgICAgICAgICAgd2w9Jy1XbCwnCisgICAgICAgICAgOzsKKyAgICAgIGVzYWMKKyAgICAgIDs7CisgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorICAgICAgd2w9Jy1XbCwnCisgICAgICA7OworICAgIHNjbzMuMnY1KikKKyAgICAgIDs7CisgICAgc29sYXJpcyopCisgICAgICB3bD0nLVdsLCcKKyAgICAgIDs7CisgICAgc3Vub3M0KikKKyAgICAgIHdsPSctUW9wdGlvbiBsZCAnCisgICAgICA7OworICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKKyAgICAgIHdsPSctV2wsJworICAgICAgOzsKKyAgICBzeXN2NCpNUCopCisgICAgICA7OworICAgIHV0czQqKQorICAgICAgOzsKKyAgZXNhYworZmkKKworIyBDb2RlIHRha2VuIGZyb20gbGlidG9vbC5tNCdzIEFDX0xJQlRPT0xfUFJPR19MRF9TSExJQlMuCisKK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9CitoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPQoraGFyZGNvZGVfZGlyZWN0PW5vCitoYXJkY29kZV9taW51c19MPW5vCisKK2Nhc2UgIiRob3N0X29zIiBpbgorICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGltZQorICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCisgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKyAgICAgIHdpdGhfZ251X2xkPW5vCisgICAgZmkKKyAgICA7OworICBvcGVuYnNkKikKKyAgICB3aXRoX2dudV9sZD1ubworICAgIDs7Citlc2FjCisKK2xkX3NobGlicz15ZXMKK2lmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgY2FzZSAiJGhvc3Rfb3MiIGluCisgICAgYWl4MyogfCBhaXg0KiB8IGFpeDUqKQorICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgorICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCisgICAgICAgIGxkX3NobGlicz1ubworICAgICAgZmkKKyAgICAgIDs7CisgICAgYW1pZ2FvcyopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisgICAgICBoYXJkY29kZV9taW51c19MPXllcworICAgICAgIyBTYW11ZWwgQS4gRmFsdm8gSUkgPGtjNXRqYUBkb2xwaGluLm9wZW5wcm9qZWN0cy5uZXQ+IHJlcG9ydHMKKyAgICAgICMgdGhhdCB0aGUgc2VtYW50aWNzIG9mIGR5bmFtaWMgbGlicmFyaWVzIG9uIEFtaWdhT1MsIGF0IGxlYXN0IHVwCisgICAgICAjIHRvIHZlcnNpb24gNCwgaXMgdG8gc2hhcmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQKKyAgICAgICMgd2l0aCB0aGUgc2FtZSBkeW5hbWljIGxpYnJhcnkuICBTaW5jZSB0aGlzIGRvZXNuJ3QgbWF0Y2ggdGhlCisgICAgICAjIGJlaGF2aW9yIG9mIHNoYXJlZCBsaWJyYXJpZXMgb24gb3RoZXIgcGxhdGZvcm1zLCB3ZSBjYW4gdXNlCisgICAgICAjIHRoZW0uCisgICAgICBsZF9zaGxpYnM9bm8KKyAgICAgIDs7CisgICAgYmVvcyopCisgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgICAgOgorICAgICAgZWxzZQorICAgICAgICBsZF9zaGxpYnM9bm8KKyAgICAgIGZpCisgICAgICA7OworICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKyAgICAgICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywgYXMgdGhlcmUgaXMKKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgICAgOgorICAgICAgZWxzZQorICAgICAgICBsZF9zaGxpYnM9bm8KKyAgICAgIGZpCisgICAgICA7OworICAgIG5ldGJzZCopCisgICAgICA7OworICAgIHNvbGFyaXMqIHwgc3lzdjUqKQorICAgICAgaWYgJExEIC12IDI+JjEgfCBncmVwICdCRkQgMlwuOCcgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgICAgbGRfc2hsaWJzPW5vCisgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgICA6CisgICAgICBlbHNlCisgICAgICAgIGxkX3NobGlicz1ubworICAgICAgZmkKKyAgICAgIDs7CisgICAgc3Vub3M0KikKKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKyAgICAgIDs7CisgICAgKikKKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgICA6CisgICAgICBlbHNlCisgICAgICAgIGxkX3NobGlicz1ubworICAgICAgZmkKKyAgICAgIDs7CisgIGVzYWMKKyAgaWYgdGVzdCAiJGxkX3NobGlicyIgPSB5ZXM7IHRoZW4KKyAgICAjIFVubGlrZSBsaWJ0b29sLCB3ZSB1c2UgLXJwYXRoIGhlcmUsIG5vdCAtLXJwYXRoLCBzaW5jZSB0aGUgZG9jdW1lbnRlZAorICAgICMgb3B0aW9uIG9mIEdOVSBsZCBpcyBjYWxsZWQgLXJwYXRoLCBub3QgLS1ycGF0aC4KKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisgIGZpCitlbHNlCisgIGNhc2UgIiRob3N0X29zIiBpbgorICAgIGFpeDMqKQorICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUKKyAgICAgICMgYXJlIG5vIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBieSAtTC4KKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICAgICAgICAjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKKyAgICAgICAgIyBicm9rZW4gY29sbGVjdDIuCisgICAgICAgIGhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAorICAgICAgZmkKKyAgICAgIDs7CisgICAgYWl4NCogfCBhaXg1KikKKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisgICAgICAgICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKKyAgICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKyAgICAgIGVsc2UKKyAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworICAgICAgICAjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKKyAgICAgICAgIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCisgICAgICAgICMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCisgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4qfGFpeDUqKQorICAgICAgICAgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbworICAgICAgICAgICAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KKyAgICAgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKKyAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgZG9uZQorICAgICAgICBlc2FjCisgICAgICBmaQorICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCisgICAgICAgICAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAorICAgICAgICAgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmIFwKKyAgICAgICAgICAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKyAgICAgICAgICB0aGVuCisgICAgICAgICAgICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3Q9dW5zdXBwb3J0ZWQKKyAgICAgICAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPQorICAgICAgICAgIGZpCisgICAgICAgIGVzYWMKKyAgICAgIGZpCisgICAgICAjIEJlZ2luIF9MVF9BQ19TWVNfTElCUEFUSF9BSVguCisgICAgICBlY2hvICdpbnQgbWFpbiAoKSB7IHJldHVybiAwOyB9JyA+IGNvbmZ0ZXN0LmMKKyAgICAgICR7Q0N9ICR7TERGTEFHU30gY29uZnRlc3QuYyAtbyBjb25mdGVzdAorICAgICAgYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QgMj4vZGV2L251bGwgfCBzZWQgLW4gLWUgJy9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsgL14wLyB7IHMvXjAgICpcKC4qXCkkL1wxLzsgcDsgfQorfSdgCisgICAgICBpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCisgICAgICAgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0IDI+L2Rldi9udWxsIHwgc2VkIC1uIC1lICcvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7IC9eMC8geyBzL14wICAqXCguKlwpJC9cMS87IHA7IH0KK30nYAorICAgICAgZmkKKyAgICAgIGlmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKyAgICAgICAgYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiCisgICAgICBmaQorICAgICAgcm0gLWYgY29uZnRlc3QuYyBjb25mdGVzdAorICAgICAgIyBFbmQgX0xUX0FDX1NZU19MSUJQQVRIX0FJWC4KKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgorICAgICAgZWxzZQorICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworICAgICAgICBlbHNlCisgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKyAgICAgICAgZmkKKyAgICAgIGZpCisgICAgICA7OworICAgIGFtaWdhb3MqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKyAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgZGlmZmVyZW50IHNlbWFudGljcyBvbiB0aGUgR05VIGxkIHNlY3Rpb24KKyAgICAgIGxkX3NobGlicz1ubworICAgICAgOzsKKyAgICBic2RpNCopCisgICAgICA7OworICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKyAgICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCisgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcworICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyAnCisgICAgICBsaWJleHQ9bGliCisgICAgICA7OworICAgIGRhcndpbiogfCByaGFwc29keSopCisgICAgICBpZiAkQ0MgLXYgMj4mMSB8IGdyZXAgJ0FwcGxlJyA+L2Rldi9udWxsIDsgdGhlbgorICAgICAgICBoYXJkY29kZV9kaXJlY3Q9bm8KKyAgICAgIGZpCisgICAgICA7OworICAgIGRndXgqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworICAgICAgOzsKKyAgICBmcmVlYnNkMSopCisgICAgICBsZF9zaGxpYnM9bm8KKyAgICAgIDs7CisgICAgZnJlZWJzZDIuMiopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICA7OworICAgIGZyZWVic2QyKikKKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisgICAgICA7OworICAgIGZyZWVic2QqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJworICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworICAgICAgOzsKKyAgICBocHV4OSopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicKKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKyAgICAgIDs7CisgICAgaHB1eDEwKiB8IGhwdXgxMSopCisgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKyAgICAgICAgY2FzZSAiJGhvc3RfY3B1IiBpbgorICAgICAgICAgIGhwcGEqNjQqKQorICAgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubworICAgICAgICAgICAgOzsKKyAgICAgICAgICBpYTY0KikKKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubworICAgICAgICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKyAgICAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKyAgICAgICAgICAgIDs7CisgICAgICAgICAgKikKKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworICAgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICAgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorICAgICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisgICAgICAgICAgICBoYXJkY29kZV9taW51c19MPXllcworICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgZmkKKyAgICAgIDs7CisgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorICAgICAgOzsKKyAgICBuZXRic2QqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJworICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworICAgICAgOzsKKyAgICBuZXdzb3M2KQorICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisgICAgICA7OworICAgIG9wZW5ic2QqKQorICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworICAgICAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisgICAgICBlbHNlCisgICAgICAgIGNhc2UgIiRob3N0X29zIiBpbgorICAgICAgICAgIG9wZW5ic2RbMDFdLiogfCBvcGVuYnNkMi5bMC03XSB8IG9wZW5ic2QyLlswLTddLiopCisgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisgICAgICAgICAgICA7OworICAgICAgICAgICopCisgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGlyJworICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgZmkKKyAgICAgIDs7CisgICAgb3MyKikKKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisgICAgICA7OworICAgIG9zZjMqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisgICAgICA7OworICAgIG9zZjQqIHwgb3NmNSopCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisgICAgICBlbHNlCisgICAgICAgICMgQm90aCBjYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1ycGF0aCAkbGliZGlyJworICAgICAgZmkKKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorICAgICAgOzsKKyAgICBzY28zLjJ2NSopCisgICAgICA7OworICAgIHNvbGFyaXMqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJworICAgICAgOzsKKyAgICBzdW5vczQqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKyAgICAgIDs7CisgICAgc3lzdjQpCisgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgorICAgICAgICBzbmkpCisgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KKyAgICAgICAgICA7OworICAgICAgICBzaWVtZW5zKQorICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubworICAgICAgICAgIDs7CisgICAgICAgIG1vdG9yb2xhKQorICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubyAjTW90b3JvbGEgbWFudWFsIHNheXMgeWVzLCBidXQgbXkgdGVzdHMgc2F5IHRoZXkgbGllCisgICAgICAgICAgOzsKKyAgICAgIGVzYWMKKyAgICAgIDs7CisgICAgc3lzdjQuMyopCisgICAgICA7OworICAgIHN5c3Y0Kk1QKikKKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKyAgICAgICAgbGRfc2hsaWJzPXllcworICAgICAgZmkKKyAgICAgIDs7CisgICAgc3lzdjQuMnV3MiopCisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICBoYXJkY29kZV9taW51c19MPW5vCisgICAgICA7OworICAgIHN5c3Y1T3BlblVOSVg4KiB8IHN5c3Y1VW5peFdhcmU3KiB8ICBzeXN2NXV3Wzc4XSogfCB1bml4d2FyZTcqKQorICAgICAgOzsKKyAgICBzeXN2NSopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQorICAgICAgOzsKKyAgICB1dHM0KikKKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKyAgICAgIDs7CisgICAgKikKKyAgICAgIGxkX3NobGlicz1ubworICAgICAgOzsKKyAgZXNhYworZmkKKworIyBDaGVjayBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MKKyMgQ29kZSB0YWtlbiBmcm9tIGxpYnRvb2wubTQncyBBQ19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUi4KK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCitjYXNlICIkaG9zdF9vcyIgaW4KKyAgYWl4MyopCisgICAgOzsKKyAgYWl4NCogfCBhaXg1KikKKyAgICA7OworICBhbWlnYW9zKikKKyAgICA7OworICBiZW9zKikKKyAgICA7OworICBic2RpNCopCisgICAgOzsKKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQorICAgIHNocmV4dD0uZGxsCisgICAgOzsKKyAgZGFyd2luKiB8IHJoYXBzb2R5KikKKyAgICBzaHJleHQ9LmR5bGliCisgICAgOzsKKyAgZGd1eCopCisgICAgOzsKKyAgZnJlZWJzZDEqKQorICAgIDs7CisgIGZyZWVic2QqKQorICAgIDs7CisgIGdudSopCisgICAgOzsKKyAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisgICAgY2FzZSAiJGhvc3RfY3B1IiBpbgorICAgICAgaWE2NCopCisgICAgICAgIHNocmV4dD0uc28KKyAgICAgICAgOzsKKyAgICAgIGhwcGEqNjQqKQorICAgICAgICBzaHJleHQ9LnNsCisgICAgICAgIDs7CisgICAgICAqKQorICAgICAgICBzaHJleHQ9LnNsCisgICAgICAgIDs7CisgICAgZXNhYworICAgIDs7CisgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisgICAgY2FzZSAiJGhvc3Rfb3MiIGluCisgICAgICBpcml4NSogfCBub25zdG9wdXgqKQorICAgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9CisgICAgICAgIDs7CisgICAgICAqKQorICAgICAgICBjYXNlICRMRCBpbgorICAgICAgICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpIGxpYnN1ZmY9IHNobGlic3VmZj0gOzsKKyAgICAgICAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKSBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgOzsKKyAgICAgICAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgOzsKKyAgICAgICAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgOzsKKyAgICBlc2FjCisgICAgOzsKKyAgbGludXgqb2xkbGQqIHwgbGludXgqYW91dCogfCBsaW51eCpjb2ZmKikKKyAgICA7OworICBsaW51eCopCisgICAgOzsKKyAgbmV0YnNkKikKKyAgICA7OworICBuZXdzb3M2KQorICAgIDs7CisgIG50by1xbngpCisgICAgOzsKKyAgb3BlbmJzZCopCisgICAgOzsKKyAgb3MyKikKKyAgICBsaWJuYW1lX3NwZWM9JyRuYW1lJworICAgIHNocmV4dD0uZGxsCisgICAgOzsKKyAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorICAgIDs7CisgIHNjbzMuMnY1KikKKyAgICA7OworICBzb2xhcmlzKikKKyAgICA7OworICBzdW5vczQqKQorICAgIDs7CisgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKKyAgICA7OworICBzeXN2NCpNUCopCisgICAgOzsKKyAgdXRzNCopCisgICAgOzsKK2VzYWMKKworc2VkX3F1b3RlX3N1YnN0PSdzL1woWyJgJFxcXVwpL1xcXDEvZycKK2VzY2FwZWRfd2w9YGVjaG8gIlgkd2wiIHwgc2VkIC1lICdzL15YLy8nIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKK3NobGliZXh0PWBlY2hvICIkc2hyZXh0IiB8IHNlZCAtZSAncyxeXC4sLCdgCitlc2NhcGVkX2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9YGVjaG8gIlgkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgfCBzZWQgLWUgJ3MvXlgvLycgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorCitzZWQgLWUgJ3MvXlwoW2EtekEtWjAtOV9dKlwpPS9hY2xfY3ZfXDE9LycgPDxFT0YKKworIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgord2w9IiRlc2NhcGVkX3dsIgorCisjIFN0YXRpYyBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgImEiKS4KK2xpYmV4dD0iJGxpYmV4dCIKKworIyBTaGFyZWQgbGlicmFyeSBzdWZmaXggKG5vcm1hbGx5ICJzbyIpLgorc2hsaWJleHQ9IiRzaGxpYmV4dCIKKworIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCisjIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCitoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSIkZXNjYXBlZF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIgorCisjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAtcnBhdGggZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgoraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0iJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiCisKKyMgU2V0IHRvIHllcyBpZiB1c2luZyBESVIvbGliTkFNRS5zbyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCisjIHJlc3VsdGluZyBiaW5hcnkuCitoYXJkY29kZV9kaXJlY3Q9IiRoYXJkY29kZV9kaXJlY3QiCisKKyMgU2V0IHRvIHllcyBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCisjIHJlc3VsdGluZyBiaW5hcnkuCitoYXJkY29kZV9taW51c19MPSIkaGFyZGNvZGVfbWludXNfTCIKKworRU9GCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvY29uZmlnLnN1YiBiL3V0aWwtbGludXgtbmctMi4xNy4yL2NvbmZpZy9jb25maWcuc3ViCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJhNTVhNTAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvY29uZmlnLnN1YgpAQCAtMCwwICsxLDE3MDUgQEAKKyMhIC9iaW4vc2gKKyMgQ29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIHN1YnJvdXRpbmUgc2NyaXB0LgorIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKKyMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5CisjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKK3RpbWVzdGFtcD0nMjAwOS0xMS0yMCcKKworIyBUaGlzIGZpbGUgaXMgKGluIHByaW5jaXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCisjIFRoZSBwcmVzZW5jZSBvZiBhIG1hY2hpbmUgaW4gdGhpcyBmaWxlIHN1Z2dlc3RzIHRoYXQgU09NRSBHTlUgc29mdHdhcmUKKyMgY2FuIGhhbmRsZSB0aGF0IG1hY2hpbmUuICBJdCBkb2VzIG5vdCBpbXBseSBBTEwgR05VIHNvZnR3YXJlIGNhbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKyMgMDIxMTAtMTMwMSwgVVNBLgorIworIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKKworIyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBhIGNvbnRleHQKKyMgZGlmZiBhbmQgYSBwcm9wZXJseSBmb3JtYXR0ZWQgR05VIENoYW5nZUxvZyBlbnRyeS4KKyMKKyMgQ29uZmlndXJhdGlvbiBzdWJyb3V0aW5lIHRvIHZhbGlkYXRlIGFuZCBjYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5cGUuCisjIFN1cHBseSB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gdHlwZSBhcyBhbiBhcmd1bWVudC4KKyMgSWYgaXQgaXMgaW52YWxpZCwgd2UgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBvbiBzdGRlcnIgYW5kIGV4aXQgd2l0aCBjb2RlIDEuCisjIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhlIGNhbm9uaWNhbCBjb25maWcgdHlwZSBvbiBzdGRvdXQgYW5kIHN1Y2NlZWQuCisKKyMgWW91IGNhbiBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgc2NyaXB0IGZyb206CisjIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuc3ViO2hiPUhFQUQKKworIyBUaGlzIGZpbGUgaXMgc3VwcG9zZWQgdG8gYmUgdGhlIHNhbWUgZm9yIGFsbCBHTlUgcGFja2FnZXMKKyMgYW5kIHJlY29nbml6ZSBhbGwgdGhlIENQVSB0eXBlcywgc3lzdGVtIHR5cGVzIGFuZCBhbGlhc2VzCisjIHRoYXQgYXJlIG1lYW5pbmdmdWwgd2l0aCAqYW55KiBHTlUgc29mdHdhcmUuCisjIEVhY2ggcGFja2FnZSBpcyByZXNwb25zaWJsZSBmb3IgcmVwb3J0aW5nIHdoaWNoIHZhbGlkIGNvbmZpZ3VyYXRpb25zCisjIGl0IGRvZXMgbm90IHN1cHBvcnQuICBUaGUgdXNlciBzaG91bGQgYmUgYWJsZSB0byBkaXN0aW5ndWlzaAorIyBhIGZhaWx1cmUgdG8gc3VwcG9ydCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZnJvbSBhIG1lYW5pbmdsZXNzCisjIGNvbmZpZ3VyYXRpb24uCisKKyMgVGhlIGdvYWwgb2YgdGhpcyBmaWxlIGlzIHRvIG1hcCBhbGwgdGhlIHZhcmlvdXMgdmFyaWF0aW9ucyBvZiBhIGdpdmVuCisjIG1hY2hpbmUgc3BlY2lmaWNhdGlvbiBpbnRvIGEgc2luZ2xlIHNwZWNpZmljYXRpb24gaW4gdGhlIGZvcm06CisjCUNQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNCisjIG9yIGluIHNvbWUgY2FzZXMsIHRoZSBuZXdlciBmb3VyLXBhcnQgZm9ybToKKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNCisjIEl0IGlzIHdyb25nIHRvIGVjaG8gYW55IG90aGVyIHR5cGUgb2Ygc3BlY2lmaWNhdGlvbi4KKworbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCisKK3VzYWdlPSJcCitVc2FnZTogJDAgW09QVElPTl0gQ1BVLU1GUi1PUFNZUworICAgICAgICQwIFtPUFRJT05dIEFMSUFTCisKK0Nhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gbmFtZS4KKworT3BlcmF0aW9uIG1vZGVzOgorICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKKyAgLXQsIC0tdGltZS1zdGFtcCAgIHByaW50IGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24sIHRoZW4gZXhpdAorICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorCitSZXBvcnQgYnVncyBhbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uIgorCit2ZXJzaW9uPSJcCitHTlUgY29uZmlnLnN1YiAoJHRpbWVzdGFtcCkKKworQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAorMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiIKKworaGVscD0iCitUcnkgXGAkbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisKKyMgUGFyc2UgY29tbWFuZCBsaW5lCit3aGlsZSB0ZXN0ICQjIC1ndCAwIDsgZG8KKyAgY2FzZSAkMSBpbgorICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCisgICAgICAgZWNobyAiJHRpbWVzdGFtcCIgOyBleGl0IDs7CisgICAgLS12ZXJzaW9uIHwgLXYgKQorICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKKyAgICAtLWhlbHAgfCAtLWgqIHwgLWggKQorICAgICAgIGVjaG8gIiR1c2FnZSI7IGV4aXQgOzsKKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKKyAgICAgICBzaGlmdDsgYnJlYWsgOzsKKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCisgICAgICAgYnJlYWsgOzsKKyAgICAtKiApCisgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAkMSRoZWxwIgorICAgICAgIGV4aXQgMSA7OworCisgICAgKmxvY2FsKikKKyAgICAgICAjIEZpcnN0IHBhc3MgdGhyb3VnaCBhbnkgbG9jYWwgbWFjaGluZSB0eXBlcy4KKyAgICAgICBlY2hvICQxCisgICAgICAgZXhpdCA7OworCisgICAgKiApCisgICAgICAgYnJlYWsgOzsKKyAgZXNhYworZG9uZQorCitjYXNlICQjIGluCisgMCkgZWNobyAiJG1lOiBtaXNzaW5nIGFyZ3VtZW50JGhlbHAiID4mMgorICAgIGV4aXQgMTs7CisgMSkgOzsKKyAqKSBlY2hvICIkbWU6IHRvbyBtYW55IGFyZ3VtZW50cyRoZWxwIiA+JjIKKyAgICBleGl0IDE7OworZXNhYworCisjIFNlcGFyYXRlIHdoYXQgdGhlIHVzZXIgZ2F2ZSBpbnRvIENQVS1DT01QQU5ZIGFuZCBPUyBvciBLRVJORUwtT1MgKGlmIGFueSkuCisjIEhlcmUgd2UgbXVzdCByZWNvZ25pemUgYWxsIHRoZSB2YWxpZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgorbWF5YmVfb3M9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wyLydgCitjYXNlICRtYXliZV9vcyBpbgorICBudG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8IGxpbnV4LW5ld2xpYiogfCBsaW51eC11Y2xpYmMqIHwgXAorICB1Y2xpbnV4LXVjbGliYyogfCB1Y2xpbnV4LWdudSogfCBrZnJlZWJzZCotZ251KiB8IGtuZXRic2QqLWdudSogfCBuZXRic2QqLWdudSogfCBcCisgIGtvcGVuc29sYXJpcyotZ251KiB8IFwKKyAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQorICAgIG9zPS0kbWF5YmVfb3MKKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAorICAgIDs7CisgICopCisgICAgYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy8tW14tXSokLy8nYAorICAgIGlmIFsgJGJhc2ljX21hY2hpbmUgIT0gJDEgXQorICAgIHRoZW4gb3M9YGVjaG8gJDEgfCBzZWQgJ3MvLiotLy0vJ2AKKyAgICBlbHNlIG9zPTsgZmkKKyAgICA7OworZXNhYworCisjIyMgTGV0J3MgcmVjb2duaXplIGNvbW1vbiBtYWNoaW5lcyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMgc28KKyMjIyB0aGF0IHRoaW5ncyBsaWtlIGNvbmZpZy5zdWIgZGVjc3RhdGlvbi0zMTAwIHdvcmsuICBXZSBhbHNvCisjIyMgcmVjb2duaXplIHNvbWUgbWFudWZhY3R1cmVycyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMsIHNvIHdlCisjIyMgY2FuIHByb3ZpZGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyBiZWxvdy4KK2Nhc2UgJG9zIGluCisJLXN1bipvcyopCisJCSMgUHJldmVudCBmb2xsb3dpbmcgY2xhdXNlIGZyb20gaGFuZGxpbmcgdGhpcyBpbnZhbGlkIGlucHV0LgorCQk7OworCS1kZWMqIHwgLW1pcHMqIHwgLXNlcXVlbnQqIHwgLWVuY29yZSogfCAtcGM1MzIqIHwgLXNnaSogfCAtc29ueSogfCBcCisJLWF0dCogfCAtNzMwMCogfCAtMzMwMCogfCAtZGVsdGEqIHwgLW1vdG9yb2xhKiB8IC1zdW5bMjM0XSogfCBcCisJLXVuaWNvbSogfCAtaWJtKiB8IC1uZXh0IHwgLWhwIHwgLWlzaSogfCAtYXBvbGxvIHwgLWFsdG9zKiB8IFwKKwktY29udmVyZ2VudCogfCAtbmNyKiB8IC1uZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hpKiB8XAorCS1jWzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwgLWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCisJLWhhcnJpcyB8IC1kb2xwaGluIHwgLWhpZ2hsZXZlbCB8IC1nb3VsZCB8IC1jYm0gfCAtbnMgfCAtbWFzc2NvbXAgfCBcCisJLWFwcGxlIHwgLWF4aXMgfCAta251dGggfCAtY3JheSB8IC1taWNyb2JsYXplKQorCQlvcz0KKwkJYmFzaWNfbWFjaGluZT0kMQorCQk7OworICAgICAgICAtYmx1ZWdlbmUqKQorCSAgICAgICAgb3M9LWNuaworCQk7OworCS1zaW0gfCAtY2lzY28gfCAtb2tpIHwgLXdlYyB8IC13aW5ib25kKQorCQlvcz0KKwkJYmFzaWNfbWFjaGluZT0kMQorCQk7OworCS1zY291dCkKKwkJOzsKKwktd3JzKQorCQlvcz0tdnh3b3JrcworCQliYXNpY19tYWNoaW5lPSQxCisJCTs7CisJLWNob3J1c29zKikKKwkJb3M9LWNob3J1c29zCisJCWJhc2ljX21hY2hpbmU9JDEKKwkJOzsKKyAJLWNob3J1c3JkYikKKyAJCW9zPS1jaG9ydXNyZGIKKwkJYmFzaWNfbWFjaGluZT0kMQorIAkJOzsKKwktaGl1eCopCisJCW9zPS1oaXV4d2UyCisJCTs7CisJLXNjbzYpCisJCW9zPS1zY281djYKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY281KQorCQlvcz0tc2NvMy4ydjUKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY280KQorCQlvcz0tc2NvMy4ydjQKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY28zLjIuWzQtOV0qKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvc2NvMy4yLi9zY28zLjJ2LydgCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktc2NvMy4ydls0LTldKikKKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY281djYqKQorCQkjIERvbid0IGZvcmdldCB2ZXJzaW9uIGlmIGl0IGlzIDMuMnY0IG9yIG5ld2VyLgorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXNjbyopCisJCW9zPS1zY28zLjJ2MgorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXVkayopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktaXNjKQorCQlvcz0taXNjMi4yCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktY2xpeCopCisJCWJhc2ljX21hY2hpbmU9Y2xpcHBlci1pbnRlcmdyYXBoCisJCTs7CisJLWlzYyopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktbHlueCopCisJCW9zPS1seW54b3MKKwkJOzsKKwktcHR4KikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1zZXF1ZW50LydgCisJCTs7CisJLXdpbmRvd3NudCopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy93aW5kb3dzbnQvd2lubnQvJ2AKKwkJOzsKKwktcHNvcyopCisJCW9zPS1wc29zCisJCTs7CisJLW1pbnQgfCAtbWludFswLTldKikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0YXJpCisJCW9zPS1taW50CisJCTs7Citlc2FjCisKKyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29tYmluYXRpb25zLgorY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUuCisJIyBTb21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxvdy4KKwkxNzUwYSB8IDU4MCBcCisJfCBhMjlrIFwKKwl8IGFscGhhIHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2IHwgYWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3XSBcCisJfCBhbHBoYTY0IHwgYWxwaGE2NGV2WzQtOF0gfCBhbHBoYTY0ZXY1NiB8IGFscGhhNjRldjZbNzhdIHwgYWxwaGE2NHBjYTVbNjddIFwKKwl8IGFtMzNfMi4wIFwKKwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwKKwl8IGJmaW4gXAorCXwgYzR4IHwgY2xpcHBlciBcCisJfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAorCXwgZmlkbyB8IGZyMzAgfCBmcnYgXAorCXwgaDgzMDAgfCBoODUwMCB8IGhwcGEgfCBocHBhMS5bMDFdIHwgaHBwYTIuMCB8IGhwcGEyLjBbbnddIHwgaHBwYTY0IFwKKwl8IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAorCXwgaXAyayB8IGlxMjAwMCBcCisJfCBsbTMyIFwKKwl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAorCXwgbWF4cSB8IG1iIHwgbWljcm9ibGF6ZSB8IG1jb3JlIHwgbWVwIHwgbWV0YWcgXAorCXwgbWlwcyB8IG1pcHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1pcHNsZSBcCisJfCBtaXBzMTYgXAorCXwgbWlwczY0IHwgbWlwczY0ZWwgXAorCXwgbWlwczY0b2N0ZW9uIHwgbWlwczY0b2N0ZW9uZWwgXAorCXwgbWlwczY0b3Jpb24gfCBtaXBzNjRvcmlvbmVsIFwKKwl8IG1pcHM2NHI1OTAwIHwgbWlwczY0cjU5MDBlbCBcCisJfCBtaXBzNjR2ciB8IG1pcHM2NHZyZWwgXAorCXwgbWlwczY0dnI0MTAwIHwgbWlwczY0dnI0MTAwZWwgXAorCXwgbWlwczY0dnI0MzAwIHwgbWlwczY0dnI0MzAwZWwgXAorCXwgbWlwczY0dnI1MDAwIHwgbWlwczY0dnI1MDAwZWwgXAorCXwgbWlwczY0dnI1OTAwIHwgbWlwczY0dnI1OTAwZWwgXAorCXwgbWlwc2lzYTMyIHwgbWlwc2lzYTMyZWwgXAorCXwgbWlwc2lzYTMycjIgfCBtaXBzaXNhMzJyMmVsIFwKKwl8IG1pcHNpc2E2NCB8IG1pcHNpc2E2NGVsIFwKKwl8IG1pcHNpc2E2NHIyIHwgbWlwc2lzYTY0cjJlbCBcCisJfCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFlbCBcCisJfCBtaXBzaXNhNjRzcjcxayB8IG1pcHNpc2E2NHNyNzFrZWwgXAorCXwgbWlwc3R4MzkgfCBtaXBzdHgzOWVsIFwKKwl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKKwl8IG1veGllIFwKKwl8IG10IFwKKwl8IG1zcDQzMCBcCisJfCBuaW9zIHwgbmlvczIgXAorCXwgbnMxNmsgfCBuczMyayBcCisJfCBvcjMyIFwKKwl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCisJfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93ZXJwYzY0bGUgfCBwb3dlcnBjbGUgfCBwcGNiZSBcCisJfCBweXJhbWlkIFwKKwl8IHJ4IFwKKwl8IHNjb3JlIFwKKwl8IHNoIHwgc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMjRdYWViIHwgc2hbMjNdZSB8IHNoWzM0XWViIHwgc2hlYiB8IHNoYmUgfCBzaGxlIHwgc2hbMTIzNF1sZSB8IHNoM2VsZSBcCisJfCBzaDY0IHwgc2g2NGxlIFwKKwl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjNjRiIHwgc3BhcmM2NHYgfCBzcGFyYzg2eCB8IHNwYXJjbGV0IHwgc3BhcmNsaXRlIFwKKwl8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgfCBzcGFyY3Y5diBcCisJfCBzcHUgfCBzdHJvbmdhcm0gXAorCXwgdGFob2UgfCB0aHVtYiB8IHRpYzR4IHwgdGljODAgfCB0cm9uIFwKKwl8IHViaWNvbTMyIFwKKwl8IHY4NTAgfCB2ODUwZSBcCisJfCB3ZTMyayBcCisJfCB4ODYgfCB4YzE2eCB8IHhzY2FsZSB8IHhzY2FsZWVbYmxdIHwgeHN0b3JteTE2IHwgeHRlbnNhIFwKKwl8IHo4ayB8IHo4MCkKKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCisJCTs7CisJbTY4MTEgfCBtNjhoYzExIHwgbTY4MTIgfCBtNjhoYzEyIHwgcGljb2NoaXApCisJCSMgTW90b3JvbGEgNjhIQzExLzEyLgorCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKwkJb3M9LW5vbmUKKwkJOzsKKwltODgxMTAgfCBtNjgwWzEyMzQ2XTAgfCBtNjgzPzIgfCBtNjgzNjAgfCBtNTIwMCB8IHY3MCB8IHc2NSB8IHo4aykKKwkJOzsKKwltczEpCisJCWJhc2ljX21hY2hpbmU9bXQtdW5rbm93bgorCQk7OworCisJIyBXZSB1c2UgYHBjJyByYXRoZXIgdGhhbiBgdW5rbm93bicKKwkjIGJlY2F1c2UgKDEpIHRoYXQncyB3aGF0IHRoZXkgbm9ybWFsbHkgYXJlLCBhbmQKKwkjICgyKSB0aGUgd29yZCAidW5rbm93biIgdGVuZHMgdG8gY29uZnVzZSBiZWdpbm5pbmcgdXNlcnMuCisJaSo4NiB8IHg4Nl82NCkKKwkgIGJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtcGMKKwkgIDs7CisJIyBPYmplY3QgaWYgbW9yZSB0aGFuIG9uZSBjb21wYW55IG5hbWUgd29yZC4KKwkqLSotKikKKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCisJCWV4aXQgMQorCQk7OworCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aCBjb21wYW55IG5hbWUuCisJNTgwLSogXAorCXwgYTI5ay0qIFwKKwl8IGFscGhhLSogfCBhbHBoYWV2WzQtOF0tKiB8IGFscGhhZXY1Ni0qIHwgYWxwaGFldjZbNzhdLSogXAorCXwgYWxwaGE2NC0qIHwgYWxwaGE2NGV2WzQtOF0tKiB8IGFscGhhNjRldjU2LSogfCBhbHBoYTY0ZXY2Wzc4XS0qIFwKKwl8IGFscGhhcGNhNVs2N10tKiB8IGFscGhhNjRwY2E1WzY3XS0qIHwgYXJjLSogXAorCXwgYXJtLSogIHwgYXJtYmUtKiB8IGFybWxlLSogfCBhcm1lYi0qIHwgYXJtdiotKiBcCisJfCBhdnItKiB8IGF2cjMyLSogXAorCXwgYmZpbi0qIHwgYnMyMDAwLSogXAorCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwgYzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBjNngtKiBcCisJfCBjbGlwcGVyLSogfCBjcmF5bnYtKiB8IGN5ZHJhLSogXAorCXwgZDEwdi0qIHwgZDMwdi0qIHwgZGx4LSogXAorCXwgZWx4c2ktKiBcCisJfCBmMzBbMDFdLSogfCBmNzAwLSogfCBmaWRvLSogfCBmcjMwLSogfCBmcnYtKiB8IGZ4ODAtKiBcCisJfCBoODMwMC0qIHwgaDg1MDAtKiBcCisJfCBocHBhLSogfCBocHBhMS5bMDFdLSogfCBocHBhMi4wLSogfCBocHBhMi4wW253XS0qIHwgaHBwYTY0LSogXAorCXwgaSo4Ni0qIHwgaTg2MC0qIHwgaTk2MC0qIHwgaWE2NC0qIFwKKwl8IGlwMmstKiB8IGlxMjAwMC0qIFwKKwl8IGxtMzItKiBcCisJfCBtMzJjLSogfCBtMzJyLSogfCBtMzJybGUtKiBcCisJfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAorCXwgbTg4MTEwLSogfCBtODhrLSogfCBtYXhxLSogfCBtY29yZS0qIHwgbWV0YWctKiB8IG1pY3JvYmxhemUtKiBcCisJfCBtaXBzLSogfCBtaXBzYmUtKiB8IG1pcHNlYi0qIHwgbWlwc2VsLSogfCBtaXBzbGUtKiBcCisJfCBtaXBzMTYtKiBcCisJfCBtaXBzNjQtKiB8IG1pcHM2NGVsLSogXAorCXwgbWlwczY0b2N0ZW9uLSogfCBtaXBzNjRvY3Rlb25lbC0qIFwKKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAorCXwgbWlwczY0cjU5MDAtKiB8IG1pcHM2NHI1OTAwZWwtKiBcCisJfCBtaXBzNjR2ci0qIHwgbWlwczY0dnJlbC0qIFwKKwl8IG1pcHM2NHZyNDEwMC0qIHwgbWlwczY0dnI0MTAwZWwtKiBcCisJfCBtaXBzNjR2cjQzMDAtKiB8IG1pcHM2NHZyNDMwMGVsLSogXAorCXwgbWlwczY0dnI1MDAwLSogfCBtaXBzNjR2cjUwMDBlbC0qIFwKKwl8IG1pcHM2NHZyNTkwMC0qIHwgbWlwczY0dnI1OTAwZWwtKiBcCisJfCBtaXBzaXNhMzItKiB8IG1pcHNpc2EzMmVsLSogXAorCXwgbWlwc2lzYTMycjItKiB8IG1pcHNpc2EzMnIyZWwtKiBcCisJfCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAorCXwgbWlwc2lzYTY0cjItKiB8IG1pcHNpc2E2NHIyZWwtKiBcCisJfCBtaXBzaXNhNjRzYjEtKiB8IG1pcHNpc2E2NHNiMWVsLSogXAorCXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCisJfCBtaXBzdHgzOS0qIHwgbWlwc3R4MzllbC0qIFwKKwl8IG1taXgtKiBcCisJfCBtdC0qIFwKKwl8IG1zcDQzMC0qIFwKKwl8IG5pb3MtKiB8IG5pb3MyLSogXAorCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCisJfCBvcmlvbi0qIFwKKwl8IHBkcDEwLSogfCBwZHAxMS0qIHwgcGotKiB8IHBqbC0qIHwgcG4tKiB8IHBvd2VyLSogXAorCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNiZS0qIFwKKwl8IHB5cmFtaWQtKiBcCisJfCByb21wLSogfCByczYwMDAtKiB8IHJ4LSogXAorCXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsyNF1hZWItKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAorCXwgc2hsZS0qIHwgc2hbMTIzNF1sZS0qIHwgc2gzZWxlLSogfCBzaDY0LSogfCBzaDY0bGUtKiBcCisJfCBzcGFyYy0qIHwgc3BhcmM2NC0qIHwgc3BhcmM2NGItKiB8IHNwYXJjNjR2LSogfCBzcGFyYzg2eC0qIHwgc3BhcmNsZXQtKiBcCisJfCBzcGFyY2xpdGUtKiBcCisJfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwgc3BhcmN2OXYtKiB8IHN0cm9uZ2FybS0qIHwgc3YxLSogfCBzeD8tKiBcCisJfCB0YWhvZS0qIHwgdGh1bWItKiBcCisJfCB0aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiB8IHRpbGUtKiBcCisJfCB0cm9uLSogXAorCXwgdWJpY29tMzItKiBcCisJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAorCXwgd2UzMmstKiBcCisJfCB4ODYtKiB8IHg4Nl82NC0qIHwgeGMxNngtKiB8IHhwczEwMC0qIHwgeHNjYWxlLSogfCB4c2NhbGVlW2JsXS0qIFwKKwl8IHhzdG9ybXkxNi0qIHwgeHRlbnNhKi0qIFwKKwl8IHltcC0qIFwKKwl8IHo4ay0qIHwgejgwLSopCisJCTs7CisJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZSwgd2l0aCBnbG9iIG1hdGNoLgorCXh0ZW5zYSopCisJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgorCQk7OworCSMgUmVjb2duaXplIHRoZSB2YXJpb3VzIG1hY2hpbmUgbmFtZXMgYW5kIGFsaWFzZXMgd2hpY2ggc3RhbmQKKwkjIGZvciBhIENQVSB0eXBlIGFuZCBhIGNvbXBhbnkgYW5kIHNvbWV0aW1lcyBldmVuIGFuIE9TLgorCTM4NmJzZCkKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKwkJb3M9LWJzZAorCQk7OworCTNiMSB8IDczMDAgfCA3MzAwLWF0dCB8IGF0dC03MzAwIHwgcGM3MzAwIHwgc2FmYXJpIHwgdW5peHBjKQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1hdHQKKwkJOzsKKwkzYiopCisJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0CisJCTs7CisJYTI5a2hpZikKKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorCQlvcz0tdWRpCisJCTs7CisgICAgCWFiYWN1cykKKwkJYmFzaWNfbWFjaGluZT1hYmFjdXMtdW5rbm93bgorCQk7OworCWFkb2JlNjhrKQorCQliYXNpY19tYWNoaW5lPW02ODAxMC1hZG9iZQorCQlvcz0tc2NvdXQKKwkJOzsKKwlhbGxpYW50IHwgZng4MCkKKwkJYmFzaWNfbWFjaGluZT1meDgwLWFsbGlhbnQKKwkJOzsKKwlhbHRvcyB8IGFsdG9zMzA2OCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFsdG9zCisJCTs7CisJYW0yOWspCisJCWJhc2ljX21hY2hpbmU9YTI5ay1ub25lCisJCW9zPS1ic2QKKwkJOzsKKwlhbWQ2NCkKKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtcGMKKwkJOzsKKwlhbWQ2NC0qKQorCQliYXNpY19tYWNoaW5lPXg4Nl82NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCWFtZGFobCkKKwkJYmFzaWNfbWFjaGluZT01ODAtYW1kYWhsCisJCW9zPS1zeXN2CisJCTs7CisJYW1pZ2EgfCBhbWlnYS0qKQorCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorCQk7OworCWFtaWdhb3MgfCBhbWlnYWRvcykKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KKwkJb3M9LWFtaWdhb3MKKwkJOzsKKwlhbWlnYXVuaXggfCBhbWl4KQorCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorCQlvcz0tc3lzdjQKKwkJOzsKKwlhcG9sbG82OCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbworCQlvcz0tc3lzdgorCQk7OworCWFwb2xsbzY4YnNkKQorCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCisJCW9zPS1ic2QKKwkJOzsKKwlhcm9zKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LWFyb3MKKwkJOzsKKwlhdXgpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQorCQlvcz0tYXV4CisJCTs7CisJYmFsYW5jZSkKKwkJYmFzaWNfbWFjaGluZT1uczMyay1zZXF1ZW50CisJCW9zPS1keW5peAorCQk7OworCWJsYWNrZmluKQorCQliYXNpY19tYWNoaW5lPWJmaW4tdW5rbm93bgorCQlvcz0tbGludXgKKwkJOzsKKwlibGFja2Zpbi0qKQorCQliYXNpY19tYWNoaW5lPWJmaW4tYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJb3M9LWxpbnV4CisJCTs7CisJYmx1ZWdlbmUqKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCisJCW9zPS1jbmsKKwkJOzsKKwljOTApCisJCWJhc2ljX21hY2hpbmU9YzkwLWNyYXkKKwkJb3M9LXVuaWNvcworCQk7OworICAgICAgICBjZWdjYykKKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgorCQlvcz0tY2VnY2MKKwkJOzsKKwljb252ZXgtYzEpCisJCWJhc2ljX21hY2hpbmU9YzEtY29udmV4CisJCW9zPS1ic2QKKwkJOzsKKwljb252ZXgtYzIpCisJCWJhc2ljX21hY2hpbmU9YzItY29udmV4CisJCW9zPS1ic2QKKwkJOzsKKwljb252ZXgtYzMyKQorCQliYXNpY19tYWNoaW5lPWMzMi1jb252ZXgKKwkJb3M9LWJzZAorCQk7OworCWNvbnZleC1jMzQpCisJCWJhc2ljX21hY2hpbmU9YzM0LWNvbnZleAorCQlvcz0tYnNkCisJCTs7CisJY29udmV4LWMzOCkKKwkJYmFzaWNfbWFjaGluZT1jMzgtY29udmV4CisJCW9zPS1ic2QKKwkJOzsKKwljcmF5IHwgajkwKQorCQliYXNpY19tYWNoaW5lPWo5MC1jcmF5CisJCW9zPS11bmljb3MKKwkJOzsKKwljcmF5bnYpCisJCWJhc2ljX21hY2hpbmU9Y3JheW52LWNyYXkKKwkJb3M9LXVuaWNvc21wCisJCTs7CisJY3IxNikKKwkJYmFzaWNfbWFjaGluZT1jcjE2LXVua25vd24KKwkJb3M9LWVsZgorCQk7OworCWNyZHMgfCB1bm9zKQorCQliYXNpY19tYWNoaW5lPW02OGstY3JkcworCQk7OworCWNyaXN2MzIgfCBjcmlzdjMyLSogfCBldHJheGZzKikKKwkJYmFzaWNfbWFjaGluZT1jcmlzdjMyLWF4aXMKKwkJOzsKKwljcmlzIHwgY3Jpcy0qIHwgZXRyYXgqKQorCQliYXNpY19tYWNoaW5lPWNyaXMtYXhpcworCQk7OworCWNyeCkKKwkJYmFzaWNfbWFjaGluZT1jcngtdW5rbm93bgorCQlvcz0tZWxmCisJCTs7CisJZGEzMCB8IGRhMzAtKikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWRhMzAKKwkJOzsKKwlkZWNzdGF0aW9uIHwgZGVjc3RhdGlvbi0zMTAwIHwgcG1heCB8IHBtYXgtKiB8IHBtaW4gfCBkZWMzMTAwIHwgZGVjc3RhdG4pCisJCWJhc2ljX21hY2hpbmU9bWlwcy1kZWMKKwkJOzsKKwlkZWNzeXN0ZW0xMCogfCBkZWMxMCopCisJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCisJCW9zPS10b3BzMTAKKwkJOzsKKwlkZWNzeXN0ZW0yMCogfCBkZWMyMCopCisJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCisJCW9zPS10b3BzMjAKKwkJOzsKKwlkZWx0YSB8IDMzMDAgfCBtb3Rvcm9sYS0zMzAwIHwgbW90b3JvbGEtZGVsdGEgXAorCSAgICAgIHwgMzMwMC1tb3Rvcm9sYSB8IGRlbHRhLW1vdG9yb2xhKQorCQliYXNpY19tYWNoaW5lPW02OGstbW90b3JvbGEKKwkJOzsKKwlkZWx0YTg4KQorCQliYXNpY19tYWNoaW5lPW04OGstbW90b3JvbGEKKwkJb3M9LXN5c3YzCisJCTs7CisJZGljb3MpCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworCQlvcz0tZGljb3MKKwkJOzsKKwlkamdwcCkKKwkJYmFzaWNfbWFjaGluZT1pNTg2LXBjCisJCW9zPS1tc2Rvc2RqZ3BwCisJCTs7CisJZHB4MjAgfCBkcHgyMC0qKQorCQliYXNpY19tYWNoaW5lPXJzNjAwMC1idWxsCisJCW9zPS1ib3N4CisJCTs7CisJZHB4MiogfCBkcHgyKi1idWxsKQorCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAorCQlvcz0tc3lzdjMKKwkJOzsKKwllYm1vbjI5aykKKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorCQlvcz0tZWJtb24KKwkJOzsKKwllbHhzaSkKKwkJYmFzaWNfbWFjaGluZT1lbHhzaS1lbHhzaQorCQlvcz0tYnNkCisJCTs7CisJZW5jb3JlIHwgdW1heCB8IG1tYXgpCisJCWJhc2ljX21hY2hpbmU9bnMzMmstZW5jb3JlCisJCTs7CisJZXMxODAwIHwgT1NFNjhrIHwgb3NlNjhrIHwgb3NlIHwgT1NFKQorCQliYXNpY19tYWNoaW5lPW02OGstZXJpY3Nzb24KKwkJb3M9LW9zZQorCQk7OworCWZ4MjgwMCkKKwkJYmFzaWNfbWFjaGluZT1pODYwLWFsbGlhbnQKKwkJOzsKKwlnZW5peCkKKwkJYmFzaWNfbWFjaGluZT1uczMyay1ucworCQk7OworCWdtaWNybykKKwkJYmFzaWNfbWFjaGluZT10cm9uLWdtaWNybworCQlvcz0tc3lzdgorCQk7OworCWdvMzIpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworCQlvcz0tZ28zMgorCQk7OworCWgzMDUwciogfCBoaXV4KikKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKKwkJb3M9LWhpdXh3ZTIKKwkJOzsKKwloODMwMGhtcykKKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCisJCW9zPS1obXMKKwkJOzsKKwloODMwMHhyYXkpCisJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQorCQlvcz0teHJheQorCQk7OworCWg4NTAwaG1zKQorCQliYXNpY19tYWNoaW5lPWg4NTAwLWhpdGFjaGkKKwkJb3M9LWhtcworCQk7OworCWhhcnJpcykKKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcworCQlvcz0tc3lzdjMKKwkJOzsKKwlocDMwMC0qKQorCQliYXNpY19tYWNoaW5lPW02OGstaHAKKwkJOzsKKwlocDMwMGJzZCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisJCW9zPS1ic2QKKwkJOzsKKwlocDMwMGhwdXgpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorCQlvcz0taHB1eAorCQk7OworCWhwM2s5WzAtOV1bMC05XSB8IGhwOVswLTldWzAtOV0pCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAorCQk7OworCWhwOWsyWzAtOV1bMC05XSB8IGhwOWszMVswLTldKQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1ocAorCQk7OworCWhwOWszWzItOV1bMC05XSkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisJCTs7CisJaHA5azZbMC05XVswLTldIHwgaHA2WzAtOV1bMC05XSkKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisJCTs7CisJaHA5azdbMC03OV1bMC05XSB8IGhwN1swLTc5XVswLTldKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKwkJOzsKKwlocDlrNzhbMC05XSB8IGhwNzhbMC05XSkKKwkJIyBGSVhNRTogcmVhbGx5IGhwcGEyLjAtaHAKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCTs7CisJaHA5azhbNjddMSB8IGhwOFs2N10xIHwgaHA5azgwWzI0XSB8IGhwODBbMjRdIHwgaHA5azhbNzhdOSB8IGhwOFs3OF05IHwgaHA5azg5MyB8IGhwODkzKQorCQkjIEZJWE1FOiByZWFsbHkgaHBwYTIuMC1ocAorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKwkJOzsKKwlocDlrOFswLTldWzEzNjc5XSB8IGhwOFswLTldWzEzNjc5XSkKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCTs7CisJaHA5azhbMC05XVswLTldIHwgaHA4WzAtOV1bMC05XSkKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisJCTs7CisJaHBwYS1uZXh0KQorCQlvcz0tbmV4dHN0ZXAzCisJCTs7CisJaHBwYW9zZikKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCW9zPS1vc2YKKwkJOzsKKwlocHBybykKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCW9zPS1wcm9lbGYKKwkJOzsKKwlpMzcwLWlibSogfCBpYm0qKQorCQliYXNpY19tYWNoaW5lPWkzNzAtaWJtCisJCTs7CisjIEknbSBub3Qgc3VyZSB3aGF0ICJTeXN2MzIiIG1lYW5zLiAgU2hvdWxkIHRoaXMgYmUgc3lzdjMuMj8KKwlpKjg2djMyKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKwkJb3M9LXN5c3YzMgorCQk7OworCWkqODZ2NCopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorCQlvcz0tc3lzdjQKKwkJOzsKKwlpKjg2dikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCisJCW9zPS1zeXN2CisJCTs7CisJaSo4NnNvbDIpCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorCQlvcz0tc29sYXJpczIKKwkJOzsKKwlpMzg2bWFjaCkKKwkJYmFzaWNfbWFjaGluZT1pMzg2LW1hY2gKKwkJb3M9LW1hY2gKKwkJOzsKKwlpMzg2LXZzdGEgfCB2c3RhKQorCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgorCQlvcz0tdnN0YQorCQk7OworCWlyaXMgfCBpcmlzNGQpCisJCWJhc2ljX21hY2hpbmU9bWlwcy1zZ2kKKwkJY2FzZSAkb3MgaW4KKwkJICAgIC1pcml4KikKKwkJCTs7CisJCSAgICAqKQorCQkJb3M9LWlyaXg0CisJCQk7OworCQllc2FjCisJCTs7CisJaXNpNjggfCBpc2kpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1pc2kKKwkJb3M9LXN5c3YKKwkJOzsKKwltNjhrbm9tbXUpCisJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCisJCW9zPS1saW51eAorCQk7OworCW02OGtub21tdS0qKQorCQliYXNpY19tYWNoaW5lPW02OGstYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJb3M9LWxpbnV4CisJCTs7CisJbTg4ay1vbXJvbiopCisJCWJhc2ljX21hY2hpbmU9bTg4ay1vbXJvbgorCQk7OworCW1hZ251bSB8IG0zMjMwKQorCQliYXNpY19tYWNoaW5lPW1pcHMtbWlwcworCQlvcz0tc3lzdgorCQk7OworCW1lcmxpbikKKwkJYmFzaWNfbWFjaGluZT1uczMyay11dGVrCisJCW9zPS1zeXN2CisJCTs7CisgICAgICAgIG1pY3JvYmxhemUpCisJCWJhc2ljX21hY2hpbmU9bWljcm9ibGF6ZS14aWxpbngKKwkJOzsKKwltaW5ndzMyKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LW1pbmd3MzIKKwkJOzsKKwltaW5ndzMyY2UpCisJCWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24KKwkJb3M9LW1pbmd3MzJjZQorCQk7OworCW1pbmlmcmFtZSkKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAorCQk7OworCSptaW50IHwgLW1pbnRbMC05XSogfCAqTWlOVCB8ICpNaU5UWzAtOV0qKQorCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkKKwkJb3M9LW1pbnQKKwkJOzsKKwltaXBzMyotKikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2AKKwkJOzsKKwltaXBzMyopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgLXVua25vd24KKwkJOzsKKwltb25pdG9yKQorCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhrCisJCW9zPS1jb2ZmCisJCTs7CisJbW9ycGhvcykKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KKwkJb3M9LW1vcnBob3MKKwkJOzsKKwltc2RvcykKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisJCW9zPS1tc2RvcworCQk7OworCW1zMS0qKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21zMS0vbXQtLydgCisJCTs7CisJbXZzKQorCQliYXNpY19tYWNoaW5lPWkzNzAtaWJtCisJCW9zPS1tdnMKKwkJOzsKKwluY3IzMDAwKQorCQliYXNpY19tYWNoaW5lPWk0ODYtbmNyCisJCW9zPS1zeXN2NAorCQk7OworCW5ldGJzZDM4NikKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKwkJb3M9LW5ldGJzZAorCQk7OworCW5ldHdpbmRlcikKKwkJYmFzaWNfbWFjaGluZT1hcm12NGwtcmViZWwKKwkJb3M9LWxpbnV4CisJCTs7CisJbmV3cyB8IG5ld3M3MDAgfCBuZXdzODAwIHwgbmV3czkwMCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXNvbnkKKwkJb3M9LW5ld3NvcworCQk7OworCW5ld3MxMDAwKQorCQliYXNpY19tYWNoaW5lPW02ODAzMC1zb255CisJCW9zPS1uZXdzb3MKKwkJOzsKKwluZXdzLTM2MDAgfCByaXNjLW5ld3MpCisJCWJhc2ljX21hY2hpbmU9bWlwcy1zb255CisJCW9zPS1uZXdzb3MKKwkJOzsKKwluZWN2NzApCisJCWJhc2ljX21hY2hpbmU9djcwLW5lYworCQlvcz0tc3lzdgorCQk7OworCW5leHQgfCBtKi1uZXh0ICkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5leHQKKwkJY2FzZSAkb3MgaW4KKwkJICAgIC1uZXh0c3RlcCogKQorCQkJOzsKKwkJICAgIC1uczIqKQorCQkgICAgICBvcz0tbmV4dHN0ZXAyCisJCQk7OworCQkgICAgKikKKwkJICAgICAgb3M9LW5leHRzdGVwMworCQkJOzsKKwkJZXNhYworCQk7OworCW5oMzAwMCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhhcnJpcworCQlvcz0tY3h1eAorCQk7OworCW5oWzQ1XTAwMCkKKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcworCQlvcz0tY3h1eAorCQk7OworCW5pbmR5OTYwKQorCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwKKwkJb3M9LW5pbmR5CisJCTs7CisJbW9uOTYwKQorCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwKKwkJb3M9LW1vbjk2MAorCQk7OworCW5vbnN0b3B1eCkKKwkJYmFzaWNfbWFjaGluZT1taXBzLWNvbXBhcQorCQlvcz0tbm9uc3RvcHV4CisJCTs7CisJbnAxKQorCQliYXNpY19tYWNoaW5lPW5wMS1nb3VsZAorCQk7OworCW5zci10YW5kZW0pCisJCWJhc2ljX21hY2hpbmU9bnNyLXRhbmRlbQorCQk7OworCW9wNTBuLSogfCBvcDYwYy0qKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCisJCW9zPS1wcm9lbGYKKwkJOzsKKwlvcGVucmlzYyB8IG9wZW5yaXNjLSopCisJCWJhc2ljX21hY2hpbmU9b3IzMi11bmtub3duCisJCTs7CisJb3M0MDApCisJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1pYm0KKwkJb3M9LW9zNDAwCisJCTs7CisJT1NFNjgwMDAgfCBvc2U2ODAwMCkKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtZXJpY3Nzb24KKwkJb3M9LW9zZQorCQk7OworCW9zNjhrKQorCQliYXNpY19tYWNoaW5lPW02OGstbm9uZQorCQlvcz0tb3M2OGsKKwkJOzsKKwlwYS1oaXRhY2hpKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaGl0YWNoaQorCQlvcz0taGl1eHdlMgorCQk7OworCXBhcmFnb24pCisJCWJhc2ljX21hY2hpbmU9aTg2MC1pbnRlbAorCQlvcz0tb3NmCisJCTs7CisJcGFyaXNjKQorCQliYXNpY19tYWNoaW5lPWhwcGEtdW5rbm93bgorCQlvcz0tbGludXgKKwkJOzsKKwlwYXJpc2MtKikKKwkJYmFzaWNfbWFjaGluZT1ocHBhLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCW9zPS1saW51eAorCQk7OworCXBiZCkKKwkJYmFzaWNfbWFjaGluZT1zcGFyYy10dGkKKwkJOzsKKwlwYmIpCisJCWJhc2ljX21hY2hpbmU9bTY4ay10dGkKKwkJOzsKKwlwYzUzMiB8IHBjNTMyLSopCisJCWJhc2ljX21hY2hpbmU9bnMzMmstcGM1MzIKKwkJOzsKKwlwYzk4KQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJOzsKKwlwYzk4LSopCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBlbnRpdW0gfCBwNSB8IGs1IHwgazYgfCBuZXhnZW4gfCB2aWFjMykKKwkJYmFzaWNfbWFjaGluZT1pNTg2LXBjCisJCTs7CisJcGVudGl1bXBybyB8IHA2IHwgNng4NiB8IGF0aGxvbiB8IGF0aGxvbl8qKQorCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKwkJOzsKKwlwZW50aXVtaWkgfCBwZW50aXVtMiB8IHBlbnRpdW1paWkgfCBwZW50aXVtMykKKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisJCTs7CisJcGVudGl1bTQpCisJCWJhc2ljX21hY2hpbmU9aTc4Ni1wYworCQk7OworCXBlbnRpdW0tKiB8IHA1LSogfCBrNS0qIHwgazYtKiB8IG5leGdlbi0qIHwgdmlhYzMtKikKKwkJYmFzaWNfbWFjaGluZT1pNTg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcGVudGl1bXByby0qIHwgcDYtKiB8IDZ4ODYtKiB8IGF0aGxvbi0qKQorCQliYXNpY19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwZW50aXVtaWktKiB8IHBlbnRpdW0yLSogfCBwZW50aXVtaWlpLSogfCBwZW50aXVtMy0qKQorCQliYXNpY19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwZW50aXVtNC0qKQorCQliYXNpY19tYWNoaW5lPWk3ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwbikKKwkJYmFzaWNfbWFjaGluZT1wbi1nb3VsZAorCQk7OworCXBvd2VyKQliYXNpY19tYWNoaW5lPXBvd2VyLWlibQorCQk7OworCXBwYykJYmFzaWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KKwkJOzsKKwlwcGMtKikJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcHBjbGUgfCBwb3dlcnBjbGl0dGxlIHwgcHBjLWxlIHwgcG93ZXJwYy1saXR0bGUpCisJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLXVua25vd24KKwkJOzsKKwlwcGNsZS0qIHwgcG93ZXJwY2xpdHRsZS0qKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGNsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBwYzY0KQliYXNpY19tYWNoaW5lPXBvd2VycGM2NC11bmtub3duCisJCTs7CisJcHBjNjQtKikgYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwcGM2NGxlIHwgcG93ZXJwYzY0bGl0dGxlIHwgcHBjNjQtbGUgfCBwb3dlcnBjNjQtbGl0dGxlKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGM2NGxlLXVua25vd24KKwkJOzsKKwlwcGM2NGxlLSogfCBwb3dlcnBjNjRsaXR0bGUtKikKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBzMikKKwkJYmFzaWNfbWFjaGluZT1pMzg2LWlibQorCQk7OworCXB3MzIpCisJCWJhc2ljX21hY2hpbmU9aTU4Ni11bmtub3duCisJCW9zPS1wdzMyCisJCTs7CisJcmRvcykKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisJCW9zPS1yZG9zCisJCTs7CisJcm9tNjhrKQorCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhrCisJCW9zPS1jb2ZmCisJCTs7CisJcm1bNDZdMDApCisJCWJhc2ljX21hY2hpbmU9bWlwcy1zaWVtZW5zCisJCTs7CisJcnRwYyB8IHJ0cGMtKikKKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQorCQk7OworCXMzOTAgfCBzMzkwLSopCisJCWJhc2ljX21hY2hpbmU9czM5MC1pYm0KKwkJOzsKKwlzMzkweCB8IHMzOTB4LSopCisJCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCisJCTs7CisJc2EyOTIwMCkKKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorCQlvcz0tdWRpCisJCTs7CisJc2IxKQorCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMS11bmtub3duCisJCTs7CisJc2IxZWwpCisJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxZWwtdW5rbm93bgorCQk7OworCXNkZSkKKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhMzItc2RlCisJCW9zPS1lbGYKKwkJOzsKKwlzZWkpCisJCWJhc2ljX21hY2hpbmU9bWlwcy1zZWkKKwkJb3M9LXNlaXV4CisJCTs7CisJc2VxdWVudCkKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKKwkJOzsKKwlzaCkKKwkJYmFzaWNfbWFjaGluZT1zaC1oaXRhY2hpCisJCW9zPS1obXMKKwkJOzsKKwlzaDVlbCkKKwkJYmFzaWNfbWFjaGluZT1zaDVsZS11bmtub3duCisJCTs7CisJc2g2NCkKKwkJYmFzaWNfbWFjaGluZT1zaDY0LXVua25vd24KKwkJOzsKKwlzcGFyY2xpdGUtd3JzIHwgc2ltc28td3JzKQorCQliYXNpY19tYWNoaW5lPXNwYXJjbGl0ZS13cnMKKwkJb3M9LXZ4d29ya3MKKwkJOzsKKwlzcHM3KQorCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAorCQlvcz0tc3lzdjIKKwkJOzsKKwlzcHVyKQorCQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgorCQk7OworCXN0MjAwMCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXRhbmRlbQorCQk7OworCXN0cmF0dXMpCisJCWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCisJCW9zPS1zeXN2NAorCQk7OworCXN1bjIpCisJCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgorCQk7OworCXN1bjJvczMpCisJCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgorCQlvcz0tc3Vub3MzCisJCTs7CisJc3VuMm9zNCkKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisJCW9zPS1zdW5vczQKKwkJOzsKKwlzdW4zb3MzKQorCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisJCW9zPS1zdW5vczMKKwkJOzsKKwlzdW4zb3M0KQorCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisJCW9zPS1zdW5vczQKKwkJOzsKKwlzdW40b3MzKQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorCQlvcz0tc3Vub3MzCisJCTs7CisJc3VuNG9zNCkKKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKwkJb3M9LXN1bm9zNAorCQk7OworCXN1bjRzb2wyKQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorCQlvcz0tc29sYXJpczIKKwkJOzsKKwlzdW4zIHwgc3VuMy0qKQorCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisJCTs7CisJc3VuNCkKKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKwkJOzsKKwlzdW4zODYgfCBzdW4zODZpIHwgcm9hZHJ1bm5lcikKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXN1bgorCQk7OworCXN2MSkKKwkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQorCQlvcz0tdW5pY29zCisJCTs7CisJc3ltbWV0cnkpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50CisJCW9zPS1keW5peAorCQk7OworCXQzZSkKKwkJYmFzaWNfbWFjaGluZT1hbHBoYWV2NS1jcmF5CisJCW9zPS11bmljb3MKKwkJOzsKKwl0OTApCisJCWJhc2ljX21hY2hpbmU9dDkwLWNyYXkKKwkJb3M9LXVuaWNvcworCQk7OworCXRpYzU0eCB8IGM1NHgqKQorCQliYXNpY19tYWNoaW5lPXRpYzU0eC11bmtub3duCisJCW9zPS1jb2ZmCisJCTs7CisJdGljNTV4IHwgYzU1eCopCisJCWJhc2ljX21hY2hpbmU9dGljNTV4LXVua25vd24KKwkJb3M9LWNvZmYKKwkJOzsKKwl0aWM2eCB8IGM2eCopCisJCWJhc2ljX21hY2hpbmU9dGljNngtdW5rbm93bgorCQlvcz0tY29mZgorCQk7OworCXRpbGUqKQorCQliYXNpY19tYWNoaW5lPXRpbGUtdW5rbm93bgorCQlvcz0tbGludXgtZ251CisJCTs7CisJdHgzOSkKKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOS11bmtub3duCisJCTs7CisJdHgzOWVsKQorCQliYXNpY19tYWNoaW5lPW1pcHN0eDM5ZWwtdW5rbm93bgorCQk7OworCXRvYWQxKQorCQliYXNpY19tYWNoaW5lPXBkcDEwLXhrbAorCQlvcz0tdG9wczIwCisJCTs7CisJdG93ZXIgfCB0b3dlci0zMikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5jcgorCQk7OworCXRwZikKKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KKwkJb3M9LXRwZgorCQk7OworCXVkaTI5aykKKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorCQlvcz0tdWRpCisJCTs7CisJdWx0cmEzKQorCQliYXNpY19tYWNoaW5lPWEyOWstbnl1CisJCW9zPS1zeW0xCisJCTs7CisJdjgxMCB8IG5lY3Y4MTApCisJCWJhc2ljX21hY2hpbmU9djgxMC1uZWMKKwkJb3M9LW5vbmUKKwkJOzsKKwl2YXh2KQorCQliYXNpY19tYWNoaW5lPXZheC1kZWMKKwkJb3M9LXN5c3YKKwkJOzsKKwl2bXMpCisJCWJhc2ljX21hY2hpbmU9dmF4LWRlYworCQlvcz0tdm1zCisJCTs7CisJdnBwKnx2eHx2eC0qKQorCQliYXNpY19tYWNoaW5lPWYzMDEtZnVqaXRzdQorCQk7OworCXZ4d29ya3M5NjApCisJCWJhc2ljX21hY2hpbmU9aTk2MC13cnMKKwkJb3M9LXZ4d29ya3MKKwkJOzsKKwl2eHdvcmtzNjgpCisJCWJhc2ljX21hY2hpbmU9bTY4ay13cnMKKwkJb3M9LXZ4d29ya3MKKwkJOzsKKwl2eHdvcmtzMjlrKQorCQliYXNpY19tYWNoaW5lPWEyOWstd3JzCisJCW9zPS12eHdvcmtzCisJCTs7CisJdzY1KikKKwkJYmFzaWNfbWFjaGluZT13NjUtd2RjCisJCW9zPS1ub25lCisJCTs7CisJdzg5ay0qKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAorCQlvcz0tcHJvZWxmCisJCTs7CisJeGJveCkKKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisJCW9zPS1taW5ndzMyCisJCTs7CisJeHBzIHwgeHBzMTAwKQorCQliYXNpY19tYWNoaW5lPXhwczEwMC1ob25leXdlbGwKKwkJOzsKKwl5bXApCisJCWJhc2ljX21hY2hpbmU9eW1wLWNyYXkKKwkJb3M9LXVuaWNvcworCQk7OworCXo4ay0qLWNvZmYpCisJCWJhc2ljX21hY2hpbmU9ejhrLXVua25vd24KKwkJb3M9LXNpbQorCQk7OworCXo4MC0qLWNvZmYpCisJCWJhc2ljX21hY2hpbmU9ejgwLXVua25vd24KKwkJb3M9LXNpbQorCQk7OworCW5vbmUpCisJCWJhc2ljX21hY2hpbmU9bm9uZS1ub25lCisJCW9zPS1ub25lCisJCTs7CisKKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQgbWFudWZhY3R1cmVyIG9mIGNlcnRhaW4gQ1BVIHR5cGVzLiAgSXQgaXMgaW4KKyMgc29tZSBjYXNlcyB0aGUgb25seSBtYW51ZmFjdHVyZXIsIGluIG90aGVycywgaXQgaXMgdGhlIG1vc3QgcG9wdWxhci4KKwl3ODlrKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAorCQk7OworCW9wNTBuKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCisJCTs7CisJb3A2MGMpCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKKwkJOzsKKwlyb21wKQorCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCisJCTs7CisJbW1peCkKKwkJYmFzaWNfbWFjaGluZT1tbWl4LWtudXRoCisJCTs7CisJcnM2MDAwKQorCQliYXNpY19tYWNoaW5lPXJzNjAwMC1pYm0KKwkJOzsKKwl2YXgpCisJCWJhc2ljX21hY2hpbmU9dmF4LWRlYworCQk7OworCXBkcDEwKQorCQkjIHRoZXJlIGFyZSBtYW55IGNsb25lcywgc28gREVDIGlzIG5vdCBhIHNhZmUgYmV0CisJCWJhc2ljX21hY2hpbmU9cGRwMTAtdW5rbm93bgorCQk7OworCXBkcDExKQorCQliYXNpY19tYWNoaW5lPXBkcDExLWRlYworCQk7OworCXdlMzJrKQorCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAorCQk7OworCXNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzI0XWFlYiB8IHNoWzM0XWViIHwgc2hbMTIzNF1sZSB8IHNoWzIzXWVsZSkKKwkJYmFzaWNfbWFjaGluZT1zaC11bmtub3duCisJCTs7CisJc3BhcmMgfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYpCisJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisJCTs7CisJY3lkcmEpCisJCWJhc2ljX21hY2hpbmU9Y3lkcmEtY3lkcm9tZQorCQk7OworCW9yaW9uKQorCQliYXNpY19tYWNoaW5lPW9yaW9uLWhpZ2hsZXZlbAorCQk7OworCW9yaW9uMTA1KQorCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaGlnaGxldmVsCisJCTs7CisJbWFjIHwgbXB3IHwgbWFjLW1wdykKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCisJCTs7CisJcG1hYyB8IHBtYWMtbXB3KQorCQliYXNpY19tYWNoaW5lPXBvd2VycGMtYXBwbGUKKwkJOzsKKwkqLXVua25vd24pCisJCSMgTWFrZSBzdXJlIHRvIG1hdGNoIGFuIGFscmVhZHktY2Fub25pY2FsaXplZCBtYWNoaW5lIG5hbWUuCisJCTs7CisJKikKKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCisJCWV4aXQgMQorCQk7OworZXNhYworCisjIEhlcmUgd2UgY2Fub25pY2FsaXplIGNlcnRhaW4gYWxpYXNlcyBmb3IgbWFudWZhY3R1cmVycy4KK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKwkqLWRpZ2l0YWwqKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2RpZ2l0YWwuKi9kZWMvJ2AKKwkJOzsKKwkqLWNvbW1vZG9yZSopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvY29tbW9kb3JlLiovY2JtLydgCisJCTs7CisJKikKKwkJOzsKK2VzYWMKKworIyBEZWNvZGUgbWFudWZhY3R1cmVyLXNwZWNpZmljIGFsaWFzZXMgZm9yIGNlcnRhaW4gb3BlcmF0aW5nIHN5c3RlbXMuCisKK2lmIFsgeCIkb3MiICE9IHgiIiBdCit0aGVuCitjYXNlICRvcyBpbgorICAgICAgICAjIEZpcnN0IG1hdGNoIHNvbWUgc3lzdGVtIHR5cGUgYWxpYXNlcworICAgICAgICAjIHRoYXQgbWlnaHQgZ2V0IGNvbmZ1c2VkIHdpdGggdmFsaWQgc3lzdGVtIHR5cGVzLgorCSMgLXNvbGFyaXMqIGlzIGEgYmFzaWMgc3lzdGVtIHR5cGUsIHdpdGggdGhpcyBvbmUgZXhjZXB0aW9uLgorICAgICAgICAtYXVyb3JhdXgpCisJICAgICAgICBvcz0tYXVyb3JhdXgKKwkJOzsKKwktc29sYXJpczEgfCAtc29sYXJpczEuKikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNvbGFyaXMxfHN1bm9zNHwnYAorCQk7OworCS1zb2xhcmlzKQorCQlvcz0tc29sYXJpczIKKwkJOzsKKwktc3ZyNCopCisJCW9zPS1zeXN2NAorCQk7OworCS11bml4d2FyZSopCisJCW9zPS1zeXN2NC4ydXcKKwkJOzsKKwktZ251L2xpbnV4KikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGdudS9saW51eHxsaW51eC1nbnV8J2AKKwkJOzsKKwkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVzLgorCSMgVGhlIHBvcnRhYmxlIHN5c3RlbXMgY29tZXMgZmlyc3QuCisJIyBFYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5EIElOIEEgKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KKwkjIC1zeXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCisJLWdudSogfCAtYnNkKiB8IC1tYWNoKiB8IC1taW5peCogfCAtZ2VuaXgqIHwgLXVsdHJpeCogfCAtaXJpeCogXAorCSAgICAgIHwgLSp2bXMqIHwgLXNjbyogfCAtZXNpeCogfCAtaXNjKiB8IC1haXgqIHwgLWNuayogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwKKwkgICAgICB8IC1ocHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgqIHwgLWF1cm9yYXV4KiB8IC1zb2xhcmlzKiBcCisJICAgICAgfCAtc3ltKiB8IC1rb3BlbnNvbGFyaXMqIFwKKwkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyogfCAtbXNkb3MqIHwgLW5ld3NvcyogfCAtdW5pY29zKiB8IC1hb2YqIFwKKwkgICAgICB8IC1hb3MqIHwgLWFyb3MqIFwKKwkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVibW9uKiB8IC1obXMqIHwgLW12cyogXAorCSAgICAgIHwgLWNsaXgqIHwgLXJpc2NvcyogfCAtdW5pcGx1cyogfCAtaXJpcyogfCAtcnR1KiB8IC14ZW5peCogXAorCSAgICAgIHwgLWhpdXgqIHwgLTM4NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIFwKKwkgICAgICB8IC1vcGVuYnNkKiB8IC1zb2xpZGJzZCogXAorCSAgICAgIHwgLWVra29ic2QqIHwgLWtmcmVlYnNkKiB8IC1mcmVlYnNkKiB8IC1yaXNjaXgqIHwgLWx5bnhvcyogXAorCSAgICAgIHwgLWJvc3gqIHwgLW5leHRzdGVwKiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9hYmkqIFwKKwkgICAgICB8IC1wdHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5udCogfCAtZG9tYWluKiB8IC12c3RhKiBcCisJICAgICAgfCAtdWRpKiB8IC1lYWJpKiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAtYXV4KiBcCisJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3JkYiogfCAtY2VnY2MqIFwKKwkgICAgICB8IC1jeWd3aW4qIHwgLXBlKiB8IC1wc29zKiB8IC1tb3NzKiB8IC1wcm9lbGYqIHwgLXJ0ZW1zKiBcCisJICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC1uZXdsaWIqIHwgLWxpbnV4LXVjbGliYyogXAorCSAgICAgIHwgLXV4cHYqIHwgLWJlb3MqIHwgLW1wZWl4KiB8IC11ZGsqIFwKKwkgICAgICB8IC1pbnRlcml4KiB8IC11d2luKiB8IC1ta3MqIHwgLXJoYXBzb2R5KiB8IC1kYXJ3aW4qIHwgLW9wZW5lZCogXAorCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCogfCAtY29uaXgqIHwgLXB3MzIqIHwgLW5vbnN0b3B1eCogXAorCSAgICAgIHwgLXN0b3JtLWNoYW9zKiB8IC10b3BzMTAqIHwgLXRlbmV4KiB8IC10b3BzMjAqIHwgLWl0cyogXAorCSAgICAgIHwgLW9zMiogfCAtdm9zKiB8IC1wYWxtb3MqIHwgLXVjbGludXgqIHwgLW51Y2xldXMqIFwKKwkgICAgICB8IC1tb3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3MqIFwKKwkgICAgICB8IC1wb3dlcm1heCogfCAtZG5peCogfCAtbng2IHwgLW54NyB8IC1zZWkqIHwgLWRyYWdvbmZseSogXAorCSAgICAgIHwgLXNreW9zKiB8IC1oYWlrdSogfCAtcmRvcyogfCAtdG9wcGVycyogfCAtZHJvcHMqIHwgLWVzKikKKwkjIFJlbWVtYmVyLCBlYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5EIElOICosIHRvIG1hdGNoIGEgdmVyc2lvbiBudW1iZXIuCisJCTs7CisJLXFueCopCisJCWNhc2UgJGJhc2ljX21hY2hpbmUgaW4KKwkJICAgIHg4Ni0qIHwgaSo4Ni0qKQorCQkJOzsKKwkJICAgICopCisJCQlvcz0tbnRvJG9zCisJCQk7OworCQllc2FjCisJCTs7CisJLW50by1xbngqKQorCQk7OworCS1udG8qKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bnRvfG50by1xbnh8J2AKKwkJOzsKKwktc2ltIHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwgLW9zNjhrKiB8IC1ub25lKiB8IC12ODhyKiBcCisJICAgICAgfCAtd2luZG93cyogfCAtb3N4IHwgLWFidWcgfCAtbmV0d2FyZSogfCAtb3M5KiB8IC1iZW9zKiB8IC1oYWlrdSogXAorCSAgICAgIHwgLW1hY29zKiB8IC1tcHcqIHwgLW1hZ2ljKiB8IC1tbWl4d2FyZSogfCAtbW9uOTYwKiB8IC1sbmV3cyopCisJCTs7CisJLW1hYyopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xtYWN8bWFjb3N8J2AKKwkJOzsKKwktbGludXgtZGlldGxpYmMpCisJCW9zPS1saW51eC1kaWV0bGliYworCQk7OworCS1saW51eCopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xsaW51eHxsaW51eC1nbnV8J2AKKwkJOzsKKwktc3Vub3M1KikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHN1bm9zNXxzb2xhcmlzMnwnYAorCQk7OworCS1zdW5vczYqKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M2fHNvbGFyaXMzfCdgCisJCTs7CisJLW9wZW5lZCopCisJCW9zPS1vcGVuZWRpdGlvbgorCQk7OworICAgICAgICAtb3M0MDAqKQorCQlvcz0tb3M0MDAKKwkJOzsKKwktd2luY2UqKQorCQlvcz0td2luY2UKKwkJOzsKKwktb3Nmcm9zZSopCisJCW9zPS1vc2Zyb3NlCisJCTs7CisJLW9zZiopCisJCW9zPS1vc2YKKwkJOzsKKwktdXRlayopCisJCW9zPS1ic2QKKwkJOzsKKwktZHluaXgqKQorCQlvcz0tYnNkCisJCTs7CisJLWFjaXMqKQorCQlvcz0tYW9zCisJCTs7CisJLWF0aGVvcyopCisJCW9zPS1hdGhlb3MKKwkJOzsKKwktc3lsbGFibGUqKQorCQlvcz0tc3lsbGFibGUKKwkJOzsKKwktMzg2YnNkKQorCQlvcz0tYnNkCisJCTs7CisJLWN0aXgqIHwgLXV0cyopCisJCW9zPS1zeXN2CisJCTs7CisJLW5vdmEqKQorCQlvcz0tcnRtay1ub3ZhCisJCTs7CisJLW5zMiApCisJCW9zPS1uZXh0c3RlcDIKKwkJOzsKKwktbnNrKikKKwkJb3M9LW5zaworCQk7OworCSMgUHJlc2VydmUgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHNpbml4NS4KKwktc2luaXg1LiopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdgCisJCTs7CisJLXNpbml4KikKKwkJb3M9LXN5c3Y0CisJCTs7CisgICAgICAgIC10cGYqKQorCQlvcz0tdHBmCisJCTs7CisJLXRyaXRvbiopCisJCW9zPS1zeXN2MworCQk7OworCS1vc3MqKQorCQlvcz0tc3lzdjMKKwkJOzsKKwktc3ZyNCkKKwkJb3M9LXN5c3Y0CisJCTs7CisJLXN2cjMpCisJCW9zPS1zeXN2MworCQk7OworCS1zeXN2cjQpCisJCW9zPS1zeXN2NAorCQk7OworCSMgVGhpcyBtdXN0IGNvbWUgYWZ0ZXIgLXN5c3ZyNC4KKwktc3lzdiopCisJCTs7CisJLW9zZSopCisJCW9zPS1vc2UKKwkJOzsKKwktZXMxODAwKikKKwkJb3M9LW9zZQorCQk7OworCS14ZW5peCkKKwkJb3M9LXhlbml4CisJCTs7CisJLSptaW50IHwgLW1pbnRbMC05XSogfCAtKk1pTlQgfCAtTWlOVFswLTldKikKKwkJb3M9LW1pbnQKKwkJOzsKKwktYXJvcyopCisJCW9zPS1hcm9zCisJCTs7CisJLWthb3MqKQorCQlvcz0ta2FvcworCQk7OworCS16dm1vZSkKKwkJb3M9LXp2bW9lCisJCTs7CisJLWRpY29zKikKKwkJb3M9LWRpY29zCisJCTs7CisJLW5vbmUpCisJCTs7CisJKikKKwkJIyBHZXQgcmlkIG9mIHRoZSBgLScgYXQgdGhlIGJlZ2lubmluZyBvZiAkb3MuCisJCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCisJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogc3lzdGVtIFxgJG9zXCcgbm90IHJlY29nbml6ZWQgMT4mMgorCQlleGl0IDEKKwkJOzsKK2VzYWMKK2Vsc2UKKworIyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyB0aGF0IGNvbWUgd2l0aCB2YXJpb3VzIG1hY2hpbmVzLgorIyBUaGUgdmFsdWUgc2hvdWxkIGJlIHdoYXQgdGhlIHZlbmRvciBjdXJyZW50bHkgc2hpcHMgb3V0IHRoZSBkb29yIHdpdGggdGhlaXIKKyMgbWFjaGluZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGluZS4KKworIyBOb3RlIHRoYXQgaWYgeW91J3JlIGdvaW5nIHRvIHRyeSB0byBtYXRjaCAiLU1BTlVGQUNUVVJFUiIgaGVyZSAoc2F5LAorIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAorIyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcgc3lzdGVtLiAgT3RoZXJ3aXNlLCBjb2RlIGFib3ZlCisjIHdpbGwgc2lnbmFsIGFuIGVycm9yIHNheWluZyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcKKyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCisKK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKyAgICAgICAgc2NvcmUtKikKKwkJb3M9LWVsZgorCQk7OworICAgICAgICBzcHUtKikKKwkJb3M9LWVsZgorCQk7OworCSotYWNvcm4pCisJCW9zPS1yaXNjaXgxLjIKKwkJOzsKKwlhcm0qLXJlYmVsKQorCQlvcz0tbGludXgKKwkJOzsKKwlhcm0qLXNlbWkpCisJCW9zPS1hb3V0CisJCTs7CisgICAgICAgIGM0eC0qIHwgdGljNHgtKikKKyAgICAgICAgCW9zPS1jb2ZmCisJCTs7CisJIyBUaGlzIG11c3QgY29tZSBiZWZvcmUgdGhlICotZGVjIGVudHJ5LgorCXBkcDEwLSopCisJCW9zPS10b3BzMjAKKwkJOzsKKwlwZHAxMS0qKQorCQlvcz0tbm9uZQorCQk7OworCSotZGVjIHwgdmF4LSopCisJCW9zPS11bHRyaXg0LjIKKwkJOzsKKwltNjgqLWFwb2xsbykKKwkJb3M9LWRvbWFpbgorCQk7OworCWkzODYtc3VuKQorCQlvcz0tc3Vub3M0LjAuMgorCQk7OworCW02ODAwMC1zdW4pCisJCW9zPS1zdW5vczMKKwkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUgcHJvZ3JhbSwgYnV0IHdhcyBub3QgdGhlCisJCSMgZGVmYXVsdC4KKwkJIyBvcz0tc3Vub3M0CisJCTs7CisJbTY4Ki1jaXNjbykKKwkJb3M9LWFvdXQKKwkJOzsKKyAgICAgICAgbWVwLSopCisJCW9zPS1lbGYKKwkJOzsKKwltaXBzKi1jaXNjbykKKwkJb3M9LWVsZgorCQk7OworCW1pcHMqLSopCisJCW9zPS1lbGYKKwkJOzsKKwlvcjMyLSopCisJCW9zPS1jb2ZmCisJCTs7CisJKi10dGkpCSMgbXVzdCBiZSBiZWZvcmUgc3BhcmMgZW50cnkgb3Igd2UgZ2V0IHRoZSB3cm9uZyBvcy4KKwkJb3M9LXN5c3YzCisJCTs7CisJc3BhcmMtKiB8ICotc3VuKQorCQlvcz0tc3Vub3M0LjEuMQorCQk7OworCSotYmUpCisJCW9zPS1iZW9zCisJCTs7CisJKi1oYWlrdSkKKwkJb3M9LWhhaWt1CisJCTs7CisJKi1pYm0pCisJCW9zPS1haXgKKwkJOzsKKyAgICAJKi1rbnV0aCkKKwkJb3M9LW1taXh3YXJlCisJCTs7CisJKi13ZWMpCisJCW9zPS1wcm9lbGYKKwkJOzsKKwkqLXdpbmJvbmQpCisJCW9zPS1wcm9lbGYKKwkJOzsKKwkqLW9raSkKKwkJb3M9LXByb2VsZgorCQk7OworCSotaHApCisJCW9zPS1ocHV4CisJCTs7CisJKi1oaXRhY2hpKQorCQlvcz0taGl1eAorCQk7OworCWk4NjAtKiB8ICotYXR0IHwgKi1uY3IgfCAqLWFsdG9zIHwgKi1tb3Rvcm9sYSB8ICotY29udmVyZ2VudCkKKwkJb3M9LXN5c3YKKwkJOzsKKwkqLWNibSkKKwkJb3M9LWFtaWdhb3MKKwkJOzsKKwkqLWRnKQorCQlvcz0tZGd1eAorCQk7OworCSotZG9scGhpbikKKwkJb3M9LXN5c3YzCisJCTs7CisJbTY4ay1jY3VyKQorCQlvcz0tcnR1CisJCTs7CisJbTg4ay1vbXJvbiopCisJCW9zPS1sdW5hCisJCTs7CisJKi1uZXh0ICkKKwkJb3M9LW5leHRzdGVwCisJCTs7CisJKi1zZXF1ZW50KQorCQlvcz0tcHR4CisJCTs7CisJKi1jcmRzKQorCQlvcz0tdW5vcworCQk7OworCSotbnMpCisJCW9zPS1nZW5peAorCQk7OworCWkzNzAtKikKKwkJb3M9LW12cworCQk7OworCSotbmV4dCkKKwkJb3M9LW5leHRzdGVwMworCQk7OworCSotZ291bGQpCisJCW9zPS1zeXN2CisJCTs7CisJKi1oaWdobGV2ZWwpCisJCW9zPS1ic2QKKwkJOzsKKwkqLWVuY29yZSkKKwkJb3M9LWJzZAorCQk7OworCSotc2dpKQorCQlvcz0taXJpeAorCQk7OworCSotc2llbWVucykKKwkJb3M9LXN5c3Y0CisJCTs7CisJKi1tYXNzY29tcCkKKwkJb3M9LXJ0dQorCQk7OworCWYzMFswMV0tZnVqaXRzdSB8IGY3MDAtZnVqaXRzdSkKKwkJb3M9LXV4cHYKKwkJOzsKKwkqLXJvbTY4aykKKwkJb3M9LWNvZmYKKwkJOzsKKwkqLSpidWcpCisJCW9zPS1jb2ZmCisJCTs7CisJKi1hcHBsZSkKKwkJb3M9LW1hY29zCisJCTs7CisJKi1hdGFyaSopCisJCW9zPS1taW50CisJCTs7CisJKikKKwkJb3M9LW5vbmUKKwkJOzsKK2VzYWMKK2ZpCisKKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgd2Uga25vdyB0aGUgb3MsIGFuZCB0aGUgQ1BVIHR5cGUsIGJ1dCBub3QgdGhlCisjIG1hbnVmYWN0dXJlci4gIFdlIHBpY2sgdGhlIGxvZ2ljYWwgbWFudWZhY3R1cmVyLgordmVuZG9yPXVua25vd24KK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKwkqLXVua25vd24pCisJCWNhc2UgJG9zIGluCisJCQktcmlzY2l4KikKKwkJCQl2ZW5kb3I9YWNvcm4KKwkJCQk7OworCQkJLXN1bm9zKikKKwkJCQl2ZW5kb3I9c3VuCisJCQkJOzsKKwkJCS1jbmsqfC1haXgqKQorCQkJCXZlbmRvcj1pYm0KKwkJCQk7OworCQkJLWJlb3MqKQorCQkJCXZlbmRvcj1iZQorCQkJCTs7CisJCQktaHB1eCopCisJCQkJdmVuZG9yPWhwCisJCQkJOzsKKwkJCS1tcGVpeCopCisJCQkJdmVuZG9yPWhwCisJCQkJOzsKKwkJCS1oaXV4KikKKwkJCQl2ZW5kb3I9aGl0YWNoaQorCQkJCTs7CisJCQktdW5vcyopCisJCQkJdmVuZG9yPWNyZHMKKwkJCQk7OworCQkJLWRndXgqKQorCQkJCXZlbmRvcj1kZworCQkJCTs7CisJCQktbHVuYSopCisJCQkJdmVuZG9yPW9tcm9uCisJCQkJOzsKKwkJCS1nZW5peCopCisJCQkJdmVuZG9yPW5zCisJCQkJOzsKKwkJCS1tdnMqIHwgLW9wZW5lZCopCisJCQkJdmVuZG9yPWlibQorCQkJCTs7CisJCQktb3M0MDAqKQorCQkJCXZlbmRvcj1pYm0KKwkJCQk7OworCQkJLXB0eCopCisJCQkJdmVuZG9yPXNlcXVlbnQKKwkJCQk7OworCQkJLXRwZiopCisJCQkJdmVuZG9yPWlibQorCQkJCTs7CisJCQktdnhzaW0qIHwgLXZ4d29ya3MqIHwgLXdpbmRpc3MqKQorCQkJCXZlbmRvcj13cnMKKwkJCQk7OworCQkJLWF1eCopCisJCQkJdmVuZG9yPWFwcGxlCisJCQkJOzsKKwkJCS1obXMqKQorCQkJCXZlbmRvcj1oaXRhY2hpCisJCQkJOzsKKwkJCS1tcHcqIHwgLW1hY29zKikKKwkJCQl2ZW5kb3I9YXBwbGUKKwkJCQk7OworCQkJLSptaW50IHwgLW1pbnRbMC05XSogfCAtKk1pTlQgfCAtTWlOVFswLTldKikKKwkJCQl2ZW5kb3I9YXRhcmkKKwkJCQk7OworCQkJLXZvcyopCisJCQkJdmVuZG9yPXN0cmF0dXMKKwkJCQk7OworCQllc2FjCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgInMvdW5rbm93bi8kdmVuZG9yLyJgCisJCTs7Citlc2FjCisKK2VjaG8gJGJhc2ljX21hY2hpbmUkb3MKK2V4aXQKKworIyBMb2NhbCB2YXJpYWJsZXM6CisjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKyMgdGltZS1zdGFtcC1zdGFydDogInRpbWVzdGFtcD0nIgorIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisjIHRpbWUtc3RhbXAtZW5kOiAiJyIKKyMgRW5kOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL2RlcGNvbXAgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvZGVwY29tcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZjhlZWE3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL2RlcGNvbXAKQEAgLTAsMCArMSw2MzAgQEAKKyMhIC9iaW4vc2gKKyMgZGVwY29tcCAtIGNvbXBpbGUgYSBwcm9ncmFtIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cworCitzY3JpcHR2ZXJzaW9uPTIwMDktMDQtMjguMjE7ICMgVVRDCisKKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA5IEZyZWUKKyMgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyMgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKKyMgT3JpZ2luYWxseSB3cml0dGVuIGJ5IEFsZXhhbmRyZSBPbGl2YSA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+LgorCitjYXNlICQxIGluCisgICcnKQorICAgICBlY2hvICIkMDogTm8gY29tbWFuZC4gIFRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAxPiYyCisgICAgIGV4aXQgMTsKKyAgICAgOzsKKyAgLWggfCAtLWgqKQorICAgIGNhdCA8PFxFT0YKK1VzYWdlOiBkZXBjb21wIFstLWhlbHBdIFstLXZlcnNpb25dIFBST0dSQU0gW0FSR1NdCisKK1J1biBQUk9HUkFNUyBBUkdTIHRvIGNvbXBpbGUgYSBmaWxlLCBnZW5lcmF0aW5nIGRlcGVuZGVuY2llcworYXMgc2lkZS1lZmZlY3RzLgorCitFbnZpcm9ubWVudCB2YXJpYWJsZXM6CisgIGRlcG1vZGUgICAgIERlcGVuZGVuY3kgdHJhY2tpbmcgbW9kZS4KKyAgc291cmNlICAgICAgU291cmNlIGZpbGUgcmVhZCBieSBgUFJPR1JBTVMgQVJHUycuCisgIG9iamVjdCAgICAgIE9iamVjdCBmaWxlIG91dHB1dCBieSBgUFJPR1JBTVMgQVJHUycuCisgIERFUERJUiAgICAgIGRpcmVjdG9yeSB3aGVyZSB0byBzdG9yZSBkZXBlbmRlbmNpZXMuCisgIGRlcGZpbGUgICAgIERlcGVuZGVuY3kgZmlsZSB0byBvdXRwdXQuCisgIHRtcGRlcGZpbGUgIFRlbXBvcmFyeSBmaWxlIHRvIHVzZSB3aGVuIG91dHB1dGluZyBkZXBlbmRlbmNpZXMuCisgIGxpYnRvb2wgICAgIFdoZXRoZXIgbGlidG9vbCBpcyB1c2VkICh5ZXMvbm8pLgorCitSZXBvcnQgYnVncyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+LgorRU9GCisgICAgZXhpdCAkPworICAgIDs7CisgIC12IHwgLS12KikKKyAgICBlY2hvICJkZXBjb21wICRzY3JpcHR2ZXJzaW9uIgorICAgIGV4aXQgJD8KKyAgICA7OworZXNhYworCitpZiB0ZXN0IC16ICIkZGVwbW9kZSIgfHwgdGVzdCAteiAiJHNvdXJjZSIgfHwgdGVzdCAteiAiJG9iamVjdCI7IHRoZW4KKyAgZWNobyAiZGVwY29tcDogVmFyaWFibGVzIHNvdXJjZSwgb2JqZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAxPiYyCisgIGV4aXQgMQorZmkKKworIyBEZXBlbmRlbmNpZXMgZm9yIHN1Yi9iYXIubyBvciBzdWIvYmFyLm9iaiBnbyBpbnRvIHN1Yi8uZGVwcy9iYXIuUG8uCitkZXBmaWxlPSR7ZGVwZmlsZS1gZWNobyAiJG9iamVjdCIgfAorICBzZWQgJ3N8W15cXC9dKiR8JyR7REVQRElSLS5kZXBzfScvJnw7c3xcLlwoW14uXSpcKSR8LlBcMXw7c3xQb2JqJHxQb3wnYH0KK3RtcGRlcGZpbGU9JHt0bXBkZXBmaWxlLWBlY2hvICIkZGVwZmlsZSIgfCBzZWQgJ3MvXC5cKFteLl0qXCkkLy5UXDEvJ2B9CisKK3JtIC1mICIkdG1wZGVwZmlsZSIKKworIyBTb21lIG1vZGVzIHdvcmsganVzdCBsaWtlIG90aGVyIG1vZGVzLCBidXQgdXNlIGRpZmZlcmVudCBmbGFncy4gIFdlCisjIHBhcmFtZXRlcml6ZSBoZXJlLCBidXQgc3RpbGwgbGlzdCB0aGUgbW9kZXMgaW4gdGhlIGJpZyBjYXNlIGJlbG93LAorIyB0byBtYWtlIGRlcGVuZC5tNCBlYXNpZXIgdG8gd3JpdGUuICBOb3RlIHRoYXQgd2UgKmNhbm5vdCogdXNlIGEgY2FzZQorIyBoZXJlLCBiZWNhdXNlIHRoaXMgZmlsZSBjYW4gb25seSBjb250YWluIG9uZSBjYXNlIHN0YXRlbWVudC4KK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGhwOyB0aGVuCisgICMgSFAgY29tcGlsZXIgdXNlcyAtTSBhbmQgbm8gZXh0cmEgYXJnLgorICBnY2NmbGFnPS1NCisgIGRlcG1vZGU9Z2NjCitmaQorCitpZiB0ZXN0ICIkZGVwbW9kZSIgPSBkYXNoWG1zdGRvdXQ7IHRoZW4KKyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgZGFzaG1zdGRvdXQgd2l0aCBhIGRpZmZlcmVudCBhcmd1bWVudC4KKyAgIGRhc2htZmxhZz0teE0KKyAgIGRlcG1vZGU9ZGFzaG1zdGRvdXQKK2ZpCisKK2N5Z3BhdGhfdT0iY3lncGF0aCAtdSAtZiAtIgoraWYgdGVzdCAiJGRlcG1vZGUiID0gbXN2Y21zeXM7IHRoZW4KKyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgbXN2aXN1YWxjcHAgYnV0IHcvbyBjeWdwYXRoIHRyYW5zbGF0aW9uLgorICAgIyBKdXN0IGNvbnZlcnQgdGhlIGJhY2tzbGFzaC1lc2NhcGVkIGJhY2tzbGFzaGVzIHRvIHNpbmdsZSBmb3J3YXJkCisgICAjIHNsYXNoZXMgdG8gc2F0aXNmeSBkZXBlbmQubTQKKyAgIGN5Z3BhdGhfdT0ic2VkIHMsXFxcXFxcXFwsLyxnIgorICAgZGVwbW9kZT1tc3Zpc3VhbGNwcAorZmkKKworY2FzZSAiJGRlcG1vZGUiIGluCitnY2MzKQorIyMgZ2NjIDMgaW1wbGVtZW50cyBkZXBlbmRlbmN5IHRyYWNraW5nIHRoYXQgZG9lcyBleGFjdGx5IHdoYXQKKyMjIHdlIHdhbnQuICBZYXkhICBOb3RlOiBmb3Igc29tZSByZWFzb24gbGlidG9vbCAxLjQgZG9lc24ndCBsaWtlCisjIyBpdCBpZiAtTUQgLU1QIGNvbWVzIGFmdGVyIHRoZSAtTUYgc3R1ZmYuICBIbW0uCisjIyBVbmZvcnR1bmF0ZWx5LCBGcmVlQlNEIGM4OSBhY2NlcHRhbmNlIG9mIGZsYWdzIGRlcGVuZHMgdXBvbgorIyMgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudCBvcmRlcjsgc28gYWRkIHRoZSBmbGFncyB3aGVyZSB0aGV5CisjIyBhcHBlYXIgaW4gZGVwZW5kMi5hbS4gIE5vdGUgdGhhdCB0aGUgc2xvd2Rvd24gaW5jdXJyZWQgaGVyZQorIyMgYWZmZWN0cyBvbmx5IGNvbmZpZ3VyZTogaW4gbWFrZWZpbGVzLCAlRkFTVERFUCUgc2hvcnRjdXRzIHRoaXMuCisgIGZvciBhcmcKKyAgZG8KKyAgICBjYXNlICRhcmcgaW4KKyAgICAtYykgc2V0IGZub3JkICIkQCIgLU1UICIkb2JqZWN0IiAtTUQgLU1QIC1NRiAiJHRtcGRlcGZpbGUiICIkYXJnIiA7OworICAgICopICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIgOzsKKyAgICBlc2FjCisgICAgc2hpZnQgIyBmbm9yZAorICAgIHNoaWZ0ICMgJGFyZworICBkb25lCisgICIkQCIKKyAgc3RhdD0kPworICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgZWxzZQorICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBleGl0ICRzdGF0CisgIGZpCisgIG12ICIkdG1wZGVwZmlsZSIgIiRkZXBmaWxlIgorICA7OworCitnY2MpCisjIyBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHRvIGdldCBkZXBlbmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUncworIyMgd2h5IHdlIHBpY2sgdGhpcyByYXRoZXIgb2JzY3VyZSBtZXRob2Q6CisjIyAtIERvbid0IHdhbnQgdG8gdXNlIC1NRCBiZWNhdXNlIHdlJ2QgbGlrZSB0aGUgZGVwZW5kZW5jaWVzIHRvIGVuZAorIyMgICB1cCBpbiBhIHN1YmRpci4gIEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1Z2x5LgorIyMgICAoV2UgbWlnaHQgZW5kIHVwIGRvaW5nIHRoaXMgYW55d2F5IHRvIHN1cHBvcnQgb3RoZXIgY29tcGlsZXJzLikKKyMjIC0gVGhlIERFUEVOREVOQ0lFU19PVVRQVVQgZW52aXJvbm1lbnQgdmFyaWFibGUgbWFrZXMgZ2NjIGFjdCBsaWtlCisjIyAgIC1NTSwgbm90IC1NIChkZXNwaXRlIHdoYXQgdGhlIGRvY3Mgc2F5KS4KKyMjIC0gVXNpbmcgLU0gZGlyZWN0bHkgbWVhbnMgcnVubmluZyB0aGUgY29tcGlsZXIgdHdpY2UgKGV2ZW4gd29yc2UKKyMjICAgdGhhbiByZW5hbWluZykuCisgIGlmIHRlc3QgLXogIiRnY2NmbGFnIjsgdGhlbgorICAgIGdjY2ZsYWc9LU1ELAorICBmaQorICAiJEAiIC1XcCwiJGdjY2ZsYWckdG1wZGVwZmlsZSIKKyAgc3RhdD0kPworICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgZWxzZQorICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBleGl0ICRzdGF0CisgIGZpCisgIHJtIC1mICIkZGVwZmlsZSIKKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKyAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egorIyMgVGhlIHNlY29uZCAtZSBleHByZXNzaW9uIGhhbmRsZXMgRE9TLXN0eWxlIGZpbGUgbmFtZXMgd2l0aCBkcml2ZSBsZXR0ZXJzLgorICBzZWQgLWUgJ3MvXlteOl0qOiAvIC8nIFwKKyAgICAgIC1lICdzL15bJyRhbHBoYSddOlwvW146XSo6IC8gLycgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKyMjIFRoaXMgbmV4dCBwaWVjZSBvZiBtYWdpYyBhdm9pZHMgdGhlIGBkZWxldGVkIGhlYWRlciBmaWxlJyBwcm9ibGVtLgorIyMgVGhlIHByb2JsZW0gaXMgdGhhdCB3aGVuIGEgaGVhZGVyIGZpbGUgd2hpY2ggYXBwZWFycyBpbiBhIC5QIGZpbGUKKyMjIGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtlIHRvIGRpZSAoYmVjYXVzZSB0aGVyZSBpcworIyMgdHlwaWNhbGx5IG5vIHdheSB0byByZWJ1aWxkIHRoZSBoZWFkZXIpLiAgV2UgYXZvaWQgdGhpcyBieSBhZGRpbmcKKyMjIGR1bW15IGRlcGVuZGVuY2llcyBmb3IgZWFjaCBoZWFkZXIgZmlsZS4gIFRvbyBiYWQgZ2NjIGRvZXNuJ3QgZG8KKyMjIHRoaXMgZm9yIHVzIGRpcmVjdGx5LgorICB0ciAnICcgJworJyA8ICIkdG1wZGVwZmlsZSIgfAorIyMgU29tZSB2ZXJzaW9ucyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBPbiB0aGUgdGhlb3J5CisjIyB0aGF0IHRoZSBzcGFjZSBtZWFucyBzb21ldGhpbmcsIHdlIGFkZCBhIHNwYWNlIHRvIHRoZSBvdXRwdXQgYXMKKyMjIHdlbGwuCisjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KKyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCitocCkKKyAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8gbGV0IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5CisgICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlwdC4gIFRoaXMgY2FzZSB3aWxsIG5ldmVyIGJlIHJ1biwKKyAgIyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KKyAgZXhpdCAxCisgIDs7CisKK3NnaSkKKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1wZGVwZmlsZSIKKyAgZWxzZQorICAgICIkQCIgLU1EdXBkYXRlICIkdG1wZGVwZmlsZSIKKyAgZmkKKyAgc3RhdD0kPworICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgZWxzZQorICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBleGl0ICRzdGF0CisgIGZpCisgIHJtIC1mICIkZGVwZmlsZSIKKworICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVzLCB0aGUgc291cmNlZmlsZSBkZXBlbmQgb24gb3RoZXIgZmlsZXMKKyAgICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgorCisgICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVtZW50ICh0aGUgZGVwZW5kZW50KS4gIERvbid0IHRyeSB0byBiZQorICAgICMgY2xldmVyIGFuZCByZXBsYWNlIHRoaXMgd2l0aCBzZWQgY29kZSwgYXMgSVJJWCBzZWQgd29uJ3QgaGFuZGxlCisgICAgIyBsaW5lcyB3aXRoIG1vcmUgdGhhbiBhIGZpeGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzICg0MDk2IGluCisgICAgIyBJUklYIDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyByZW1vdmUgY29tbWVudCBsaW5lczsKKyAgICAjIHRoZSBJUklYIGNjIGFkZHMgY29tbWVudHMgbGlrZSBgIzpmZWMnIHRvIHRoZSBlbmQgb2YgdGhlCisgICAgIyBkZXBlbmRlbmN5IGxpbmUuCisgICAgdHIgJyAnICcKKycgPCAiJHRtcGRlcGZpbGUiIFwKKyAgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1lICdzLyMuKiQvLycgLWUgJy9eJC8gZCcgfCBcCisgICAgdHIgJworJyAnICcgPj4gIiRkZXBmaWxlIgorICAgIGVjaG8gPj4gIiRkZXBmaWxlIgorCisgICAgIyBUaGUgc2Vjb25kIHBhc3MgZ2VuZXJhdGVzIGEgZHVtbXkgZW50cnkgZm9yIGVhY2ggaGVhZGVyIGZpbGUuCisgICAgdHIgJyAnICcKKycgPCAiJHRtcGRlcGZpbGUiIFwKKyAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyAtZSAncy8kLzovJyBcCisgICA+PiAiJGRlcGZpbGUiCisgIGVsc2UKKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAorICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQorICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCisgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKyAgZmkKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCithaXgpCisgICMgVGhlIEMgZm9yIEFJWCBDb21waWxlciB1c2VzIC1NIGFuZCBvdXRwdXRzIHRoZSBkZXBlbmRlbmNpZXMKKyAgIyBpbiBhIC51IGZpbGUuICBJbiBvbGRlciB2ZXJzaW9ucywgdGhpcyBmaWxlIGFsd2F5cyBsaXZlcyBpbiB0aGUKKyAgIyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9iamVjdDonIGF0IHRoZQorICAjIHN0YXJ0IG9mIGVhY2ggbGluZTsgJG9iamVjdCBkb2Vzbid0IGhhdmUgZGlyZWN0b3J5IGluZm9ybWF0aW9uLgorICAjIFZlcnNpb24gNiB1c2VzIHRoZSBkaXJlY3RvcnkgaW4gYm90aCBjYXNlcy4KKyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKKyAgdGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAmJiBkaXI9CisgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKKyAgICB0bXBkZXBmaWxlMj0kYmFzZS51CisgICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNlLnUKKyAgICAiJEAiIC1XYywtTQorICBlbHNlCisgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKKyAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UudQorICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFzZS51CisgICAgIiRAIiAtTQorICBmaQorICBzdGF0PSQ/CisKKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisgIGVsc2UKKyAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgorICAgIGV4aXQgJHN0YXQKKyAgZmkKKworICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgorICBkbworICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworICBkb25lCisgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgorICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgorICAgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCisgICAgIyBgJG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgorICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgICAgIyBUaGF0J3MgYSB0YWIgYW5kIGEgc3BhY2UgaW4gdGhlIFtdLgorICAgIHNlZCAtZSAncyxeLipcLlthLXpdKjpbCSBdKiwsJyAtZSAncywkLDosJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorICBlbHNlCisgICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKKyAgICAjIHN0b3JlIGEgZHVtbXkgY29tbWVudCBsaW5lLCB0byBhdm9pZCBlcnJvcnMgd2l0aCB0aGUgTWFrZWZpbGUKKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgorICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisgIGZpCisgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgOzsKKworaWNjKQorICAjIEludGVsJ3MgQyBjb21waWxlciB1bmRlcnN0YW5kcyBgLU1EIC1NRiBmaWxlJy4gIEhvd2V2ZXIgb24KKyAgIyAgICBpY2MgLU1EIC1NRiBmb28uZCAtYyAtbyBzdWIvZm9vLm8gc3ViL2Zvby5jCisgICMgSUNDIDcuMCB3aWxsIGZpbGwgZm9vLmQgd2l0aCBzb21ldGhpbmcgbGlrZQorICAjICAgIGZvby5vOiBzdWIvZm9vLmMKKyAgIyAgICBmb28ubzogc3ViL2Zvby5oCisgICMgd2hpY2ggaXMgd3JvbmcuICBXZSB3YW50OgorICAjICAgIHN1Yi9mb28ubzogc3ViL2Zvby5jCisgICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmgKKyAgIyAgICBzdWIvZm9vLmM6CisgICMgICAgc3ViL2Zvby5oOgorICAjIElDQyA3LjEgd2lsbCBvdXRwdXQKKyAgIyAgICBmb28ubzogc3ViL2Zvby5jIHN1Yi9mb28uaAorICAjIGFuZCB3aWxsIHdyYXAgbG9uZyBsaW5lcyB1c2luZyBcIDoKKyAgIyAgICBmb28ubzogc3ViL2Zvby5jIC4uLiBcCisgICMgICAgIHN1Yi9mb28uaCAuLi4gXAorICAjICAgICAuLi4KKworICAiJEAiIC1NRCAtTUYgIiR0bXBkZXBmaWxlIgorICBzdGF0PSQ/CisgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorICBlbHNlCisgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICAgIGV4aXQgJHN0YXQKKyAgZmkKKyAgcm0gLWYgIiRkZXBmaWxlIgorICAjIEVhY2ggbGluZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJywKKyAgIyBvciBgZm9vLm86IGRlcDEuaCBkZXAyLmggXCcsIG9yIGAgZGVwMy5oIGRlcDQuaCBcJy4KKyAgIyBEbyB0d28gcGFzc2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhlc2UgdG8KKyAgIyBgJG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgorICBzZWQgInMsXlteOl0qOiwkb2JqZWN0IDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgICMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KKyAgIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorICBzZWQgJ3MsXlteOl0qOiBcKC4qXCkkLFwxLDtzL15cXCQvLzsvXiQvZDsvOiQvZCcgPCAiJHRtcGRlcGZpbGUiIHwKKyAgICBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCitocDIpCisgICMgVGhlICJocCIgc3RhbnphIGFib3ZlIGRvZXMgbm90IHdvcmsgd2l0aCBhQ0MgKEMrKykgYW5kIEhQJ3MgaWE2NAorICAjIGNvbXBpbGVycywgd2hpY2ggaGF2ZSBpbnRlZ3JhdGVkIHByZXByb2Nlc3NvcnMuICBUaGUgY29ycmVjdCBvcHRpb24KKyAgIyB0byB1c2Ugd2l0aCB0aGVzZSBpcyArTWFrZWQ7IGl0IHdyaXRlcyBkZXBlbmRlbmNpZXMgdG8gYSBmaWxlIG5hbWVkCisgICMgJ2Zvby5kJywgd2hpY2ggbGFuZHMgbmV4dCB0byB0aGUgb2JqZWN0IGZpbGUsIHdoZXJldmVyIHRoYXQKKyAgIyBoYXBwZW5zIHRvIGJlLgorICAjIE11Y2ggb2YgdGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB0cnU2NCBjYXNlOyBzZWUgY29tbWVudHMgdGhlcmUuCisgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCisgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQorICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCisgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5kCisgICAgdG1wZGVwZmlsZTI9JGRpci5saWJzLyRiYXNlLmQKKyAgICAiJEAiIC1XYywrTWFrZWQKKyAgZWxzZQorICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5kCisgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLmQKKyAgICAiJEAiICtNYWtlZAorICBmaQorICBzdGF0PSQ/CisgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorICBlbHNlCisgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiCisgICAgIGV4aXQgJHN0YXQKKyAgZmkKKworICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIgorICBkbworICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworICBkb25lCisgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgorICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorICAgICMgQWRkIGBkZXBlbmRlbnQuaDonIGxpbmVzLgorICAgIHNlZCAtbmUgJzIsJHsKKwkgICAgICAgcy9eICovLworCSAgICAgICBzLyBcXCokLy8KKwkgICAgICAgcy8kLzovCisJICAgICAgIHAKKwkgICAgIH0nICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorICBlbHNlCisgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKyAgZmkKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZpbGUyIgorICA7OworCit0cnU2NCkKKyAgICMgVGhlIFRydTY0IGNvbXBpbGVyIHVzZXMgLU1EIHRvIGdlbmVyYXRlIGRlcGVuZGVuY2llcyBhcyBhIHNpZGUKKyAgICMgZWZmZWN0LiAgYGNjIC1NRCAtbyBmb28ubyAuLi4nIHB1dHMgdGhlIGRlcGVuZGVuY2llcyBpbnRvIGBmb28uby5kJy4KKyAgICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0IDYuMSwgQ29tcGFxIENDQyBWNi4yLTUwNCBzZWVtcyB0byBwdXQKKyAgICMgZGVwZW5kZW5jaWVzIGluIGBmb28uZCcgaW5zdGVhZCwgc28gd2UgY2hlY2sgZm9yIHRoYXQgdG9vLgorICAgIyBTdWJkaXJlY3RvcmllcyBhcmUgcmVzcGVjdGVkLgorICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKKyAgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQorICAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAorCisgICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKyAgICAgICMgV2l0aCBUcnU2NCBjYywgc2hhcmVkIG9iamVjdHMgY2FuIGFsc28gYmUgdXNlZCB0byBtYWtlIGEKKyAgICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBpcyB1c2VkIGluIGxpYnRvb2wgMS40IHNlcmllcyB0bworICAgICAgIyBoYW5kbGUgYm90aCBzaGFyZWQgYW5kIHN0YXRpYyBsaWJyYXJpZXMgaW4gYSBzaW5nbGUgY29tcGlsYXRpb24uCisgICAgICAjIFdpdGggbGlidG9vbCAxLjQsIGRlcGVuZGVuY2llcyB3ZXJlIG91dHB1dCBpbiAkZGlyLmxpYnMvJGJhc2UubG8uZC4KKyAgICAgICMKKyAgICAgICMgV2l0aCBsaWJ0b29sIDEuNSB0aGlzIGV4Y2VwdGlvbiB3YXMgcmVtb3ZlZCwgYW5kIGxpYnRvb2wgbm93CisgICAgICAjIGdlbmVyYXRlcyAyIHNlcGFyYXRlIG9iamVjdHMgZm9yIHRoZSAyIGxpYnJhcmllcy4gIFRoZXNlIHR3bworICAgICAgIyBjb21waWxhdGlvbnMgb3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uuby5kIGFuZAorICAgICAgIyBpbiAkZGlyJGJhc2Uuby5kLiAgV2UgaGF2ZSB0byBjaGVjayBmb3IgYm90aCBmaWxlcywgYmVjYXVzZQorICAgICAgIyBvbmUgb2YgdGhlIHR3byBjb21waWxhdGlvbnMgY2FuIGJlIGRpc2FibGVkLiAgV2Ugc2hvdWxkIHByZWZlcgorICAgICAgIyAkZGlyJGJhc2Uuby5kIG92ZXIgJGRpci5saWJzLyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMKKyAgICAgICMgYXV0b21hdGljYWxseSBjbGVhbmVkIHdoZW4gLmxpYnMvIGlzIGRlbGV0ZWQsIHdoaWxlIGlnbm9yaW5nCisgICAgICAjIHRoZSBmb3JtZXIgd291bGQgY2F1c2UgYSBkaXN0Y2xlYW5jaGVjayBwYW5pYy4KKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0b29sIDEuNAorICAgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLm8uZCAgICAgICAgICAjIGxpYnRvb2wgMS41CisgICAgICB0bXBkZXBmaWxlMz0kZGlyLmxpYnMvJGJhc2Uuby5kICAgICMgbGlidG9vbCAxLjUKKyAgICAgIHRtcGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5kICAgICAgIyBDb21wYXEgQ0NDIFY2LjItNTA0CisgICAgICAiJEAiIC1XYywtTUQKKyAgIGVsc2UKKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5vLmQKKyAgICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5kCisgICAgICB0bXBkZXBmaWxlMz0kZGlyJGJhc2UuZAorICAgICAgdG1wZGVwZmlsZTQ9JGRpciRiYXNlLmQKKyAgICAgICIkQCIgLU1ECisgICBmaQorCisgICBzdGF0PSQ/CisgICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgIGVsc2UKKyAgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQiCisgICAgICBleGl0ICRzdGF0CisgICBmaQorCisgICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0IgorICAgZG8KKyAgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCisgICBkb25lCisgICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KKyAgICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgICAgICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFjZSBpbiB0aGUgW10uCisgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKyAgIGVsc2UKKyAgICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisgICBmaQorICAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICAgOzsKKworI25vc2lkZWVmZmVjdCkKKyAgIyBUaGlzIGNvbW1lbnQgYWJvdmUgaXMgdXNlZCBieSBhdXRvbWFrZSB0byB0ZWxsIHNpZGUtZWZmZWN0CisgICMgZGVwZW5kZW5jeSB0cmFja2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCisKK2Rhc2htc3Rkb3V0KQorICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dCwgcmVnYXJkbGVzcyBvZiAtby4KKyAgIiRAIiB8fCBleGl0ICQ/CisKKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KKyAgICAgIHNoaWZ0CisgICAgZG9uZQorICAgIHNoaWZ0CisgIGZpCisKKyAgIyBSZW1vdmUgYC1vICRvYmplY3QnLgorICBJRlM9IiAiCisgIGZvciBhcmcKKyAgZG8KKyAgICBjYXNlICRhcmcgaW4KKyAgICAtbykKKyAgICAgIHNoaWZ0CisgICAgICA7OworICAgICRvYmplY3QpCisgICAgICBzaGlmdAorICAgICAgOzsKKyAgICAqKQorICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciCisgICAgICBzaGlmdCAjIGZub3JkCisgICAgICBzaGlmdCAjICRhcmcKKyAgICAgIDs7CisgICAgZXNhYworICBkb25lCisKKyAgdGVzdCAteiAiJGRhc2htZmxhZyIgJiYgZGFzaG1mbGFnPS1NCisgICMgUmVxdWlyZSBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBiZWZvcmUgc2VhcmNoaW5nIGZvciBgOicKKyAgIyBpbiB0aGUgdGFyZ2V0IG5hbWUuICBUaGlzIGlzIHRvIGNvcGUgd2l0aCBET1Mtc3R5bGUgZmlsZW5hbWVzOgorICAjIGEgZGVwZW5kZW5jeSBzdWNoIGFzIGBjOi9mb28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBgYycgb3RoZXJ3aXNlLgorICAiJEAiICRkYXNobWZsYWcgfAorICAgIHNlZCAnczpeWyAgXSpbXjogXVteOl1bXjpdKlw6WyAgICBdKjonIiRvYmplY3QiJ1w6IDonID4gIiR0bXBkZXBmaWxlIgorICBybSAtZiAiJGRlcGZpbGUiCisgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgIHRyICcgJyAnCisnIDwgIiR0bXBkZXBmaWxlIiB8IFwKKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorICBybSAtZiAiJHRtcGRlcGZpbGUiCisgIDs7CisKK2Rhc2hYbXN0ZG91dCkKKyAgIyBUaGlzIGNhc2Ugb25seSBleGlzdHMgdG8gc2F0aXNmeSBkZXBlbmQubTQuICBJdCBpcyBuZXZlciBhY3R1YWxseQorICAjIHJ1biwgYXMgdGhpcyBtb2RlIGlzIHNwZWNpYWxseSByZWNvZ25pemVkIGluIHRoZSBwcmVhbWJsZS4KKyAgZXhpdCAxCisgIDs7CisKK21ha2VkZXBlbmQpCisgICIkQCIgfHwgZXhpdCAkPworICAjIFJlbW92ZSBhbnkgTGlidG9vbCBjYWxsCisgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorICAgIHdoaWxlIHRlc3QgIlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCisgICAgICBzaGlmdAorICAgIGRvbmUKKyAgICBzaGlmdAorICBmaQorICAjIFggbWFrZWRlcGVuZAorICBzaGlmdAorICBjbGVhcmVkPW5vIGVhdD1ubworICBmb3IgYXJnCisgIGRvCisgICAgY2FzZSAkY2xlYXJlZCBpbgorICAgIG5vKQorICAgICAgc2V0ICIiOyBzaGlmdAorICAgICAgY2xlYXJlZD15ZXMgOzsKKyAgICBlc2FjCisgICAgaWYgdGVzdCAkZWF0ID0geWVzOyB0aGVuCisgICAgICBlYXQ9bm8KKyAgICAgIGNvbnRpbnVlCisgICAgZmkKKyAgICBjYXNlICIkYXJnIiBpbgorICAgIC1EKnwtSSopCisgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyI7IHNoaWZ0IDs7CisgICAgIyBTdHJpcCBhbnkgb3B0aW9uIHRoYXQgbWFrZWRlcGVuZCBtYXkgbm90IHVuZGVyc3RhbmQuICBSZW1vdmUKKyAgICAjIHRoZSBvYmplY3QgdG9vLCBvdGhlcndpc2UgbWFrZWRlcGVuZCB3aWxsIHBhcnNlIGl0IGFzIGEgc291cmNlIGZpbGUuCisgICAgLWFyY2gpCisgICAgICBlYXQ9eWVzIDs7CisgICAgLSp8JG9iamVjdCkKKyAgICAgIDs7CisgICAgKikKKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKKyAgICBlc2FjCisgIGRvbmUKKyAgb2JqX3N1ZmZpeD1gZWNobyAiJG9iamVjdCIgfCBzZWQgJ3MvXi4qXC4vLi8nYAorICB0b3VjaCAiJHRtcGRlcGZpbGUiCisgICR7TUFLRURFUEVORC1tYWtlZGVwZW5kfSAtbyIkb2JqX3N1ZmZpeCIgLWYiJHRtcGRlcGZpbGUiICIkQCIKKyAgcm0gLWYgIiRkZXBmaWxlIgorICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorICBzZWQgJzEsMmQnICIkdG1wZGVwZmlsZSIgfCB0ciAnICcgJworJyB8IFwKKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZSIuYmFrCisgIDs7CisKK2NwcCkKKyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCisgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQuCisgICIkQCIgfHwgZXhpdCAkPworCisgICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorICAgIHdoaWxlIHRlc3QgIlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCisgICAgICBzaGlmdAorICAgIGRvbmUKKyAgICBzaGlmdAorICBmaQorCisgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KKyAgSUZTPSIgIgorICBmb3IgYXJnCisgIGRvCisgICAgY2FzZSAkYXJnIGluCisgICAgLW8pCisgICAgICBzaGlmdAorICAgICAgOzsKKyAgICAkb2JqZWN0KQorICAgICAgc2hpZnQKKyAgICAgIDs7CisgICAgKikKKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIgorICAgICAgc2hpZnQgIyBmbm9yZAorICAgICAgc2hpZnQgIyAkYXJnCisgICAgICA7OworICAgIGVzYWMKKyAgZG9uZQorCisgICIkQCIgLUUgfAorICAgIHNlZCAtbiAtZSAnL14jIFswLTldWzAtOV0qICJcKFteIl0qXCkiLiovIHM6OiBcMSBcXDpwJyBcCisgICAgICAgLWUgJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIHwKKyAgICBzZWQgJyQgczogXFwkOjonID4gIiR0bXBkZXBmaWxlIgorICBybSAtZiAiJGRlcGZpbGUiCisgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCisgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorICBzZWQgPCAiJHRtcGRlcGZpbGUiICcvXiQvZDtzL14gLy87cy8gXFwkLy87cy8kLyA6LycgPj4gIiRkZXBmaWxlIgorICBybSAtZiAiJHRtcGRlcGZpbGUiCisgIDs7CisKK21zdmlzdWFsY3BwKQorICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KKyAgIiRAIiB8fCBleGl0ICQ/CisKKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KKyAgICAgIHNoaWZ0CisgICAgZG9uZQorICAgIHNoaWZ0CisgIGZpCisKKyAgSUZTPSIgIgorICBmb3IgYXJnCisgIGRvCisgICAgY2FzZSAiJGFyZyIgaW4KKyAgICAtbykKKyAgICAgIHNoaWZ0CisgICAgICA7OworICAgICRvYmplY3QpCisgICAgICBzaGlmdAorICAgICAgOzsKKyAgICAiLUdtInwiL0dtInwiLUdpInwiL0dpInwiLVpJInwiL1pJIikKKwlzZXQgZm5vcmQgIiRAIgorCXNoaWZ0CisJc2hpZnQKKwk7OworICAgICopCisJc2V0IGZub3JkICIkQCIgIiRhcmciCisJc2hpZnQKKwlzaGlmdAorCTs7CisgICAgZXNhYworICBkb25lCisgICIkQCIgLUUgMj4vZGV2L251bGwgfAorICBzZWQgLW4gJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIvIHM6OlwxOnAnIHwgJGN5Z3BhdGhfdSB8IHNvcnQgLXUgPiAiJHRtcGRlcGZpbGUiCisgIHJtIC1mICIkZGVwZmlsZSIKKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKyAgc2VkIDwgIiR0bXBkZXBmaWxlIiAtbiAtZSAncyUgJVxcICVnJyAtZSAnL15cKC4qXCkkLyBzOjoJXDEgXFw6cCcgPj4gIiRkZXBmaWxlIgorICBlY2hvICIJIiA+PiAiJGRlcGZpbGUiCisgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4gLWUgJ3MlICVcXCAlZycgLWUgJy9eXCguKlwpJC8gczo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCisgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgOzsKKworbXN2Y21zeXMpCisgICMgVGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRvIGxldCBkZXBlbmQubTQgZG8gaXRzIHdvcmsuICBJdCB3b3JrcyBieQorICAjIGxvb2tpbmcgYXQgdGhlIHRleHQgb2YgdGhpcyBzY3JpcHQuICBUaGlzIGNhc2Ugd2lsbCBuZXZlciBiZSBydW4sCisgICMgc2luY2UgaXQgaXMgY2hlY2tlZCBmb3IgYWJvdmUuCisgIGV4aXQgMQorICA7OworCitub25lKQorICBleGVjICIkQCIKKyAgOzsKKworKikKKyAgZWNobyAiVW5rbm93biBkZXBtb2RlICRkZXBtb2RlIiAxPiYyCisgIGV4aXQgMQorICA7OworZXNhYworCitleGl0IDAKKworIyBMb2NhbCBWYXJpYWJsZXM6CisjIG1vZGU6IHNoZWxsLXNjcmlwdAorIyBzaC1pbmRlbnRhdGlvbjogMgorIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCisjIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgorIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMiCisjIEVuZDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2NvbmZpZy9ndGstZG9jLm1ha2UgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvZ3RrLWRvYy5tYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5Y2QwZTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvZ3RrLWRvYy5tYWtlCkBAIC0wLDAgKzEsMjI1IEBACisjCisjIFdBUk5JTkc6IHRoaXMgaXMgbm90IGd0ay1kb2MubWFrZSBmaWxlIGZyb20gZ3RrLWRvYyBwcm9qZWN0LiBUaGlzCisjICAgICAgICAgIGZpbGUgaGFzIGJlZW4gbW9kaWZpZWQgdG8gbWF0Y2ggd2l0aCB1dGlsLWxpbnV4LW5nIHJlcXVpcmVtZW50czoKKyMKKyMgICAgICAgICAgKiBpbnN0YWxsIGZpbGVzIHRvICRkYXRhZGlyCisjICAgICAgICAgICogZG9uJ3QgbWFpbnRhaW4gZ2VuZXJhdGVkIGZpbGVzIGluIGdpdCByZXBvc2l0b3J5CisjICAgICAgICAgICogZG9uJ3QgZGlzdHJpYnV0ZSB0aGUgZmluYWwgaHRtbCBmaWxlcworIyAgICAgICAgICAqIGRvbid0IHJlcXVpcmUgLS1lbmFibGUtZ3RrLWRvYyBmb3IgIm1ha2UgZGlzdCIKKyMgICAgICAgICAgKiBzdXBwb3J0IG91dC1vZi10cmVlIGJ1aWxkICgkc3JjZGlyICE9ICRidWlsZGRpcikKKyMKKyMgLS0ga3phaywgTm92IDIwMDkKKyMKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBnZW5lcmljICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpZiBHVEtfRE9DX1VTRV9MSUJUT09MCitHVEtET0NfQ0MgPSAkKExJQlRPT0wpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0dUS0RPQ19MRCA9ICQoTElCVE9PTCkgLS1tb2RlPWxpbmsgJChDQykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpICQoTERGTEFHUykKK0dUS0RPQ19SVU4gPSAkKExJQlRPT0wpIC0tbW9kZT1leGVjdXRlCitlbHNlCitHVEtET0NfQ0MgPSAkKENDKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitHVEtET0NfTEQgPSAkKENDKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgJChMREZMQUdTKQorR1RLRE9DX1JVTiA9IHNoIC1jCitlbmRpZgorCisjIFdlIHNldCBHUEFUSCBoZXJlOyB0aGlzIGdpdmVzIHVzIHNlbWFudGljcyBmb3IgR05VIG1ha2UKKyMgd2hpY2ggYXJlIG1vcmUgbGlrZSBvdGhlciBtYWtlJ3MgVlBBVEgsIHdoZW4gaXQgY29tZXMgdG8KKyMgd2hldGhlciBhIHNvdXJjZSB0aGF0IGlzIGEgdGFyZ2V0IG9mIG9uZSBydWxlIGlzIHRoZW4KKyMgc2VhcmNoZWQgZm9yIGluIFZQQVRIL0dQQVRILgorIworR1BBVEggPSAkKHNyY2RpcikKKworVEFSR0VUX0RJUj0kKGRvY2RpcikvJChET0NfTU9EVUxFKQorCitFWFRSQV9ESVNUID0gCQkJCVwKKwkkKGNvbnRlbnRfZmlsZXMpCQlcCisJJChIVE1MX0lNQUdFUykJCQlcCisJJChET0NfTUFJTl9TR01MX0ZJTEUpCQlcCisJJChET0NfTU9EVUxFKS1zZWN0aW9ucy50eHQKKyMJJChET0NfTU9EVUxFKS1vdmVycmlkZXMudHh0CisKK0RPQ19TVEFNUFM9c2Nhbi1idWlsZC5zdGFtcCB0bXBsLWJ1aWxkLnN0YW1wIHNnbWwtYnVpbGQuc3RhbXAgaHRtbC1idWlsZC5zdGFtcCBcCisJICAgJChzcmNkaXIpL3RtcGwuc3RhbXAgJChzcmNkaXIpL3NnbWwuc3RhbXAgJChzcmNkaXIpL2h0bWwuc3RhbXAKKworU0NBTk9CSl9GSUxFUyA9IAkJIFwKKwkkKERPQ19NT0RVTEUpLmFyZ3MgCSBcCisJJChET0NfTU9EVUxFKS5oaWVyYXJjaHkgIFwKKwkkKERPQ19NT0RVTEUpLmludGVyZmFjZXMgXAorCSQoRE9DX01PRFVMRSkucHJlcmVxdWlzaXRlcyBcCisJJChET0NfTU9EVUxFKS5zaWduYWxzCisKK1JFUE9SVF9GSUxFUyA9IFwKKwkkKERPQ19NT0RVTEUpLXVuZG9jdW1lbnRlZC50eHQgXAorCSQoRE9DX01PRFVMRSktdW5kZWNsYXJlZC50eHQgXAorCSQoRE9DX01PRFVMRSktdW51c2VkLnR4dAorCitDTEVBTkZJTEVTID0gJChTQ0FOT0JKX0ZJTEVTKSAkKFJFUE9SVF9GSUxFUykgJChET0NfU1RBTVBTKQorCitpZiBFTkFCTEVfR1RLX0RPQworYWxsLWxvY2FsOiBodG1sLWJ1aWxkLnN0YW1wCitlbHNlCithbGwtbG9jYWw6CitlbmRpZgorCitkb2NzOiBodG1sLWJ1aWxkLnN0YW1wCisKKyQoUkVQT1JUX0ZJTEVTKTogc2dtbC1idWlsZC5zdGFtcAorCisjIyMjIHNjYW4gIyMjIworCitzY2FuLWJ1aWxkLnN0YW1wOiAkKEhGSUxFX0dMT0IpICQoQ0ZJTEVfR0xPQikgJChzcmNkaXIpLyQoRE9DX01PRFVMRSktKi50eHQgJChjb250ZW50X2ZpbGVzKQorCisJdGVzdCAtZiAkKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCB8fCBcCisJCWNwICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKGJ1aWxkZGlyKQorCisJQGVjaG8gJ2d0ay1kb2M6IFNjYW5uaW5nIGhlYWRlciBmaWxlcycKKwlndGtkb2Mtc2NhbiAtLW1vZHVsZT0kKERPQ19NT0RVTEUpIFwKKwkgICAgICAgICAgICAtLXNvdXJjZS1kaXI9JChzcmNkaXIpLyQoRE9DX1NPVVJDRV9ESVIpIFwKKwkgICAgICAgICAgICAtLXNvdXJjZS1kaXI9JChidWlsZGRpcikvJChET0NfU09VUkNFX0RJUikgXAorCSAgICAgICAgICAgIC0taWdub3JlLWhlYWRlcnM9IiQoSUdOT1JFX0hGSUxFUykiIFwKKwkgICAgICAgICAgICAtLW91dHB1dC1kaXI9JChidWlsZGRpcikgXAorCSAgICAgICAgICAgICQoU0NBTl9PUFRJT05TKSAkKEVYVFJBX0hGSUxFUykKKworCWlmIGdyZXAgLWwgJ14uLiokJCcgJChzcmNkaXIpLyQoRE9DX01PRFVMRSkudHlwZXMgPiAvZGV2L251bGwgMj4mMSA7IHRoZW4gXAorCSAgICBDQz0iJChHVEtET0NfQ0MpIiBMRD0iJChHVEtET0NfTEQpIiBSVU49IiQoR1RLRE9DX1JVTikiIFwKKwkgICAgQ0ZMQUdTPSIkKEdUS0RPQ19DRkxBR1MpICQoQ0ZMQUdTKSIgTERGTEFHUz0iJChHVEtET0NfTElCUykgXAorICAgICAgICAgICAgJChMREZMQUdTKSIgZ3RrZG9jLXNjYW5nb2JqICQoU0NBTkdPQkpfT1BUSU9OUykgXAorCQkJLS1tb2R1bGU9JChET0NfTU9EVUxFKSAtLW91dHB1dC1kaXI9JChidWlsZGRpcikgOyBcCisJZWxzZSBcCisJICAgIGZvciBpIGluICQoU0NBTk9CSl9GSUxFUykgOyBkbyBcCisgICAgICAgICAgICAgICB0ZXN0IC1mICQkaSB8fCB0b3VjaCAkJGkgOyBcCisJICAgIGRvbmUgXAorCWZpCisJdG91Y2ggc2Nhbi1idWlsZC5zdGFtcAorCiskKERPQ19NT0RVTEUpLWRlY2wudHh0ICQoU0NBTk9CSl9GSUxFUykgJChzcmNkaXIpLyQoRE9DX01PRFVMRSktc2VjdGlvbnMudHh0ICQoRE9DX01PRFVMRSktb3ZlcnJpZGVzLnR4dDogc2Nhbi1idWlsZC5zdGFtcAorCUB0cnVlCisKKyMjIyMgdGVtcGxhdGVzICMjIyMKKwordG1wbC1idWlsZC5zdGFtcDogJChET0NfTU9EVUxFKS1kZWNsLnR4dCAkKFNDQU5PQkpfRklMRVMpICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKERPQ19NT0RVTEUpLW92ZXJyaWRlcy50eHQKKwlAZWNobyAnZ3RrLWRvYzogUmVidWlsZGluZyB0ZW1wbGF0ZSBmaWxlcycKKwl0ZXN0IC16ICQoYnVpbGRkaXIpL3RtcGwgfHwgJChNS0RJUl9QKSAkKGJ1aWxkZGlyKS90bXBsCisJZ3RrZG9jLW1rdG1wbCAtLW1vZHVsZT0kKERPQ19NT0RVTEUpIFwKKwkgICAgICAgICAgICAgICQoTUtUTVBMX09QVElPTlMpCisJdG91Y2ggdG1wbC1idWlsZC5zdGFtcAorCit0bXBsLnN0YW1wOiB0bXBsLWJ1aWxkLnN0YW1wCisJQHRydWUKKwordG1wbC8qLnNnbWw6CisJQHRydWUKKworCisjIyMjIHhtbCAjIyMjCisKK3NnbWwtYnVpbGQuc3RhbXA6IHRtcGwuc3RhbXAgJChIRklMRV9HTE9CKSAkKENGSUxFX0dMT0IpICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKGJ1aWxkZGlyKS90bXBsLyouc2dtbCAkKGV4cGFuZF9jb250ZW50X2ZpbGVzKQorCUBlY2hvICdndGstZG9jOiBCdWlsZGluZyBYTUwnCisJZ3RrZG9jLW1rZGIgLS1tb2R1bGU9JChET0NfTU9EVUxFKSBcCisJICAgICAgICAgICAgLS1zb3VyY2UtZGlyPSQoc3JjZGlyKS8kKERPQ19TT1VSQ0VfRElSKSBcCisJICAgICAgICAgICAgLS1zb3VyY2UtZGlyPSQoYnVpbGRkaXIpLyQoRE9DX1NPVVJDRV9ESVIpIFwKKwkgICAgICAgICAgICAtLW91dHB1dC1mb3JtYXQ9eG1sIFwKKwkgICAgICAgICAgICAtLWlnbm9yZS1maWxlcz0iJChJR05PUkVfSEZJTEVTKSIgXAorCSAgICAgICAgICAgIC0tZXhwYW5kLWNvbnRlbnQtZmlsZXM9IiQoZXhwYW5kX2NvbnRlbnRfZmlsZXMpIiBcCisJICAgICAgICAgICAgLS1tYWluLXNnbWwtZmlsZT0kKHNyY2RpcikvJChET0NfTUFJTl9TR01MX0ZJTEUpIFwKKwkgICAgICAgICAgICAkKE1LREJfT1BUSU9OUykKKwl0b3VjaCBzZ21sLWJ1aWxkLnN0YW1wCisKK3NnbWwuc3RhbXA6IHNnbWwtYnVpbGQuc3RhbXAKKwlAdHJ1ZQorCisjIyMjIGh0bWwgIyMjIworCitodG1sLWJ1aWxkLnN0YW1wOiBzZ21sLnN0YW1wICQoc3JjZGlyKS8kKERPQ19NQUlOX1NHTUxfRklMRSkgJChjb250ZW50X2ZpbGVzKQorCUBlY2hvICdndGstZG9jOiBCdWlsZGluZyBIVE1MJworCXJtIC1yZiAkKGJ1aWxkZGlyKS9odG1sCisJJChNS0RJUl9QKSAkKGJ1aWxkZGlyKS9odG1sCisJY2QgJChidWlsZGRpcikvaHRtbCAmJiBcCisJICBndGtkb2MtbWtodG1sIC0tcGF0aD0iJChhYnNfYnVpbGRkaXIpOiQoYWJzX2J1aWxkZGlyKS94bWw6JChhYnNfc3JjZGlyKSIgXAorCSAgICAgICAgICAgICAgICAkKE1LSFRNTF9PUFRJT05TKSBcCisJICAgICAgICAgICAgICAgICQoRE9DX01PRFVMRSkgXAorCSAgICAgICAgICAgICAgICAkKGFic19zcmNkaXIpLyQoRE9DX01BSU5fU0dNTF9GSUxFKQorCisJdGVzdCAieCQoSFRNTF9JTUFHRVMpIiA9ICJ4IiB8fCBcCisJCSggY2QgJChzcmNkaXIpICYmIGNwICQoSFRNTF9JTUFHRVMpICQoYWJzX2J1aWxkZGlyKS9odG1sICkKKworCUBlY2hvICdndGstZG9jOiBGaXhpbmcgY3Jvc3MtcmVmZXJlbmNlcycKKwlndGtkb2MtZml4eHJlZiAtLW1vZHVsZS1kaXI9aHRtbCBcCisJICAgICAgICAgICAgICAgLS1odG1sLWRpcj0kKEhUTUxfRElSKSBcCisJICAgICAgICAgICAgICAgJChGSVhYUkVGX09QVElPTlMpCisJdG91Y2ggaHRtbC1idWlsZC5zdGFtcAorCisjIyMjIyMjIyMjIyMjIworCitjbGVhbi1sb2NhbDoKKwlybSAtZiAqfiAqLmJhaworCXJtIC1yZiAubGlicworCitkaXN0Y2xlYW4tbG9jYWw6CisJcm0gLXJmIHhtbCBodG1sIHRtcGwgJChSRVBPUlRfRklMRVMpICouc3RhbXAgXAorCSAgICAgICAkKERPQ19NT0RVTEUpLW92ZXJyaWRlcy50eHQgXAorCSAgICAgICAkKERPQ19NT0RVTEUpLWRlY2wtbGlzdC50eHQgJChET0NfTU9EVUxFKS1kZWNsLnR4dAorCXRlc3QgJChhYnNfYnVpbGRkaXIpID09ICAkKGFic19zcmNkaXIpIHx8IFwKKwkgICAgICAgcm0gLWYgJChET0NfTU9EVUxFKS1zZWN0aW9ucy50eHQKKworaW5zdGFsbC1kYXRhLWxvY2FsOgorCWluc3RhbGxmaWxlcz1gZWNobyAkKGJ1aWxkZGlyKS9odG1sLypgOyBcCisJaWYgdGVzdCAiJCRpbnN0YWxsZmlsZXMiID0gJyQoYnVpbGRkaXIpL2h0bWwvKic7IFwKKwl0aGVuIGVjaG8gJy0tIE5vdGhpbmcgdG8gaW5zdGFsbCcgOyBcCisJZWxzZSBcCisJICBpZiB0ZXN0IC1uICIkKERPQ19NT0RVTEVfVkVSU0lPTikiOyB0aGVuIFwKKwkgICAgaW5zdGFsbGRpcj0iJChERVNURElSKSQoVEFSR0VUX0RJUiktJChET0NfTU9EVUxFX1ZFUlNJT04pIjsgXAorCSAgZWxzZSBcCisJICAgIGluc3RhbGxkaXI9IiQoREVTVERJUikkKFRBUkdFVF9ESVIpIjsgXAorCSAgZmk7IFwKKwkgICQobWtpbnN0YWxsZGlycykgJCR7aW5zdGFsbGRpcn0gOyBcCisJICBmb3IgaSBpbiAkJGluc3RhbGxmaWxlczsgZG8gXAorCSAgICBlY2hvICctLSBJbnN0YWxsaW5nICckJGkgOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAkJGkgJCR7aW5zdGFsbGRpcn07IFwKKwkgIGRvbmU7IFwKKwkgIGlmIHRlc3QgLW4gIiQoRE9DX01PRFVMRV9WRVJTSU9OKSI7IHRoZW4gXAorCSAgICBtdiAtZiAkJHtpbnN0YWxsZGlyfS8kKERPQ19NT0RVTEUpLmRldmhlbHAyIFwKKwkgICAgICAkJHtpbnN0YWxsZGlyfS8kKERPQ19NT0RVTEUpLSQoRE9DX01PRFVMRV9WRVJTSU9OKS5kZXZoZWxwMjsgXAorCSAgICBtdiAtZiAkJHtpbnN0YWxsZGlyfS8kKERPQ19NT0RVTEUpLmRldmhlbHAgXAorCSAgICAgICQke2luc3RhbGxkaXJ9LyQoRE9DX01PRFVMRSktJChET0NfTU9EVUxFX1ZFUlNJT04pLmRldmhlbHA7IFwKKwkgIGZpOyBcCisJICAhIHdoaWNoIGd0a2RvYy1yZWJhc2UgPi9kZXYvbnVsbCAyPiYxIHx8IFwKKwkgICAgZ3RrZG9jLXJlYmFzZSAtLXJlbGF0aXZlIC0tZGVzdC1kaXI9JChERVNURElSKSAtLWh0bWwtZGlyPSQke2luc3RhbGxkaXJ9IDsgXAorCWZpCisKK3VuaW5zdGFsbC1sb2NhbDoKKwlpZiB0ZXN0IC1uICIkKERPQ19NT0RVTEVfVkVSU0lPTikiOyB0aGVuIFwKKwkgIGluc3RhbGxkaXI9IiQoREVTVERJUikkKFRBUkdFVF9ESVIpLSQoRE9DX01PRFVMRV9WRVJTSU9OKSI7IFwKKwllbHNlIFwKKwkgIGluc3RhbGxkaXI9IiQoREVTVERJUikkKFRBUkdFVF9ESVIpIjsgXAorCWZpOyBcCisJcm0gLXJmICQke2luc3RhbGxkaXJ9CisKKyMKKyMgUmVxdWlyZSBndGstZG9jIHdoZW4gbWFraW5nIGRpc3QKKyMKK2lmIEVOQUJMRV9HVEtfRE9DCitkaXN0LWNoZWNrLWd0a2RvYzoKK2Vsc2UKK2Rpc3QtY2hlY2stZ3RrZG9jOgorCUBlY2hvICIqKiogZ3RrLWRvYyBtdXN0IGJlIGluc3RhbGxlZCBhbmQgZW5hYmxlZCBpbiBvcmRlciB0byBtYWtlIGRpc3QiCisJQGZhbHNlCitlbmRpZgorCisjZGlzdC1ob29rOiBkaXN0LWNoZWNrLWd0a2RvYyBkaXN0LWhvb2stbG9jYWwgc2dtbC5zdGFtcCBodG1sLWJ1aWxkLnN0YW1wCisjCW1rZGlyICQoZGlzdGRpcikvdG1wbAorIwlta2RpciAkKGRpc3RkaXIpL3htbAorIwlta2RpciAkKGRpc3RkaXIpL2h0bWwKKyMJLWNwICQoc3JjZGlyKS90bXBsLyouc2dtbCAkKGRpc3RkaXIpL3RtcGwKKyMJLWNwICQoc3JjZGlyKS94bWwvKi54bWwgJChkaXN0ZGlyKS94bWwKKyMJY3AgJChzcmNkaXIpL2h0bWwvKiAkKGRpc3RkaXIpL2h0bWwKKyMJLWNwICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLnR5cGVzICQoZGlzdGRpcikvCisjCS1jcCAkKHNyY2RpcikvJChET0NfTU9EVUxFKS1zZWN0aW9ucy50eHQgJChkaXN0ZGlyKS8KKyMJY2QgJChkaXN0ZGlyKSAmJiBybSAtZiAkKERJU1RDTEVBTkZJTEVTKQorIwkhIHdoaWNoIGd0a2RvYy1yZWJhc2UgPi9kZXYvbnVsbCAyPiYxIHx8IFwKKyMJICBndGtkb2MtcmViYXNlIC0tb25saW5lIC0tcmVsYXRpdmUgLS1odG1sLWRpcj0kKGRpc3RkaXIpL2h0bWwKKyMKKyMuUEhPTlkgOiBkaXN0LWhvb2stbG9jYWwgZG9jcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTNiYjhlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwzMiBAQAorQU1fQ1BQRkxBR1MgPSAtaW5jbHVkZSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmggLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgXAorCS1ETE9DQUxFRElSPVwiJChsb2NhbGVkaXIpXCIKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPQorCisjIEF1dG9tYWtlIChhdCBsZWFzdCB1cCB0byAxLjEwKSBtaXNoYW5kbGVzIGRpc3RfbWFuX01BTlMgaW5zaWRlIGNvbmRpdGlvbmFscy4KKyMgVW5saWtlIHdpdGggb3RoZXIgZGlzdCBwcmltYXJpZXMsIHRoZSBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVkIGlmIHRoZQorIyBjb25kaXRpb25hbCBpcyBmYWxzZS4KKyMgV29yayB0aGUgYnVnIGFyb3VuZCB1bnRpbCBpdCBpcyBmaXhlZDoKK2Rpc3Rfbm9pbnN0X0RBVEEgPSAkKGRpc3RfbWFuX01BTlMpCisKKyMgUGF0aHMgdG8gaW4tdHJlZSBsaWJyYXJpZXMgKHVzZSB1bF8gcHJlZml4IHRvIGF2b2lkIHBvc3NpYmxlIGNvbGxpc2lvbnMpCisjCisjIGJsa2lkCit1bF9saWJibGtpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMvbGliYmxraWQubGEKKworIyBibGtpZC5oIGlzIGdlbmVyYXRlZCBieSAuL2NvbmZpZ3VyZSBzY3JpcHQgYW5kIHN0b3JlZCBpbiBidWlsZCBkaXJlY3RvcnkKK3VsX2xpYmJsa2lkX2luY2RpciA9ICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworIyB1dWlkCit1bF9saWJ1dWlkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMvbGlidXVpZC5sYQorCiskKHVsX2xpYnV1aWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJ1dWlkX2J1aWxkZGlyKQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvaW5zdGFsbC1zaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2NvbmZpZy9pbnN0YWxsLXNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3ODFiOTgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvaW5zdGFsbC1zaApAQCAtMCwwICsxLDUyMCBAQAorIyEvYmluL3NoCisjIGluc3RhbGwgLSBpbnN0YWxsIGEgcHJvZ3JhbSwgc2NyaXB0LCBvciBkYXRhZmlsZQorCitzY3JpcHR2ZXJzaW9uPTIwMDktMDQtMjguMjE7ICMgVVRDCisKKyMgVGhpcyBvcmlnaW5hdGVzIGZyb20gWDExUjUgKG1pdC91dGlsL3NjcmlwdHMvaW5zdGFsbC5zaCksIHdoaWNoIHdhcworIyBsYXRlciByZWxlYXNlZCBpbiBYMTFSNiAoeGMvY29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKKyMgZm9sbG93aW5nIGNvcHlyaWdodCBhbmQgbGljZW5zZS4KKyMKKyMgQ29weXJpZ2h0IChDKSAxOTk0IFggQ29uc29ydGl1bQorIworIyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisjIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworIyBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQorIyByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyMgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyMKKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyMgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisjCisjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisjIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorIyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisjIFggQ09OU09SVElVTSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDLQorIyBUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorIworIyBFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiB0aGUgWCBDb25zb3J0aXVtIHNoYWxsIG5vdAorIyBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxlLCB1c2Ugb3Igb3RoZXIgZGVhbC0KKyMgaW5ncyBpbiB0aGlzIFNvZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0aW9uIGZyb20gdGhlIFggQ29uc29yLQorIyB0aXVtLgorIworIworIyBGU0YgY2hhbmdlcyB0byB0aGlzIGZpbGUgYXJlIGluIHRoZSBwdWJsaWMgZG9tYWluLgorIworIyBDYWxsaW5nIHRoaXMgc2NyaXB0IGluc3RhbGwtc2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8gcHJldmVudAorIyBgbWFrZScgaW1wbGljaXQgcnVsZXMgZnJvbSBjcmVhdGluZyBhIGZpbGUgY2FsbGVkIGluc3RhbGwgZnJvbSBpdAorIyB3aGVuIHRoZXJlIGlzIG5vIE1ha2VmaWxlLgorIworIyBUaGlzIHNjcmlwdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIEJTRCBpbnN0YWxsIHNjcmlwdCwgYnV0IHdhcyB3cml0dGVuCisjIGZyb20gc2NyYXRjaC4KKworbmw9JworJworSUZTPSIgIiIJJG5sIgorCisjIHNldCBET0lUUFJPRyB0byBlY2hvIHRvIHRlc3QgdGhpcyBzY3JpcHQKKworIyBEb24ndCB1c2UgOi0gc2luY2UgNC4zQlNEIGFuZCBlYXJsaWVyIHNoZWxscyBkb24ndCBsaWtlIGl0LgorZG9pdD0ke0RPSVRQUk9HLX0KK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgorICBkb2l0X2V4ZWM9ZXhlYworZWxzZQorICBkb2l0X2V4ZWM9JGRvaXQKK2ZpCisKKyMgUHV0IGluIGFic29sdXRlIGZpbGUgbmFtZXMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3VyIHBhdGg7CisjIG9yIHVzZSBlbnZpcm9ubWVudCB2YXJzLgorCitjaGdycHByb2c9JHtDSEdSUFBST0ctY2hncnB9CitjaG1vZHByb2c9JHtDSE1PRFBST0ctY2htb2R9CitjaG93bnByb2c9JHtDSE9XTlBST0ctY2hvd259CitjbXBwcm9nPSR7Q01QUFJPRy1jbXB9CitjcHByb2c9JHtDUFBST0ctY3B9Citta2RpcnByb2c9JHtNS0RJUlBST0ctbWtkaXJ9CittdnByb2c9JHtNVlBST0ctbXZ9CitybXByb2c9JHtSTVBST0ctcm19CitzdHJpcHByb2c9JHtTVFJJUFBST0ctc3RyaXB9CisKK3Bvc2l4X2dsb2I9Jz8nCitpbml0aWFsaXplX3Bvc2l4X2dsb2I9JworICB0ZXN0ICIkcG9zaXhfZ2xvYiIgIT0gIj8iIHx8IHsKKyAgICBpZiAoc2V0IC1mKSAyPi9kZXYvbnVsbDsgdGhlbgorICAgICAgcG9zaXhfZ2xvYj0KKyAgICBlbHNlCisgICAgICBwb3NpeF9nbG9iPToKKyAgICBmaQorICB9CisnCisKK3Bvc2l4X21rZGlyPQorCisjIERlc2lyZWQgbW9kZSBvZiBpbnN0YWxsZWQgZmlsZS4KK21vZGU9MDc1NQorCitjaGdycGNtZD0KK2NobW9kY21kPSRjaG1vZHByb2cKK2Nob3duY21kPQorbXZjbWQ9JG12cHJvZworcm1jbWQ9IiRybXByb2cgLWYiCitzdHJpcGNtZD0KKworc3JjPQorZHN0PQorZGlyX2FyZz0KK2RzdF9hcmc9CisKK2NvcHlfb25fY2hhbmdlPWZhbHNlCitub190YXJnZXRfZGlyZWN0b3J5PQorCit1c2FnZT0iXAorVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFstVF0gU1JDRklMRSBEU1RGSUxFCisgICBvcjogJDAgW09QVElPTl0uLi4gU1JDRklMRVMuLi4gRElSRUNUT1JZCisgICBvcjogJDAgW09QVElPTl0uLi4gLXQgRElSRUNUT1JZIFNSQ0ZJTEVTLi4uCisgICBvcjogJDAgW09QVElPTl0uLi4gLWQgRElSRUNUT1JJRVMuLi4KKworSW4gdGhlIDFzdCBmb3JtLCBjb3B5IFNSQ0ZJTEUgdG8gRFNURklMRS4KK0luIHRoZSAybmQgYW5kIDNyZCwgY29weSBhbGwgU1JDRklMRVMgdG8gRElSRUNUT1JZLgorSW4gdGhlIDR0aCwgY3JlYXRlIERJUkVDVE9SSUVTLgorCitPcHRpb25zOgorICAgICAtLWhlbHAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0LgorICAgICAtLXZlcnNpb24gIGRpc3BsYXkgdmVyc2lvbiBpbmZvIGFuZCBleGl0LgorCisgIC1jICAgICAgICAgICAgKGlnbm9yZWQpCisgIC1DICAgICAgICAgICAgaW5zdGFsbCBvbmx5IGlmIGRpZmZlcmVudCAocHJlc2VydmUgdGhlIGxhc3QgZGF0YSBtb2RpZmljYXRpb24gdGltZSkKKyAgLWQgICAgICAgICAgICBjcmVhdGUgZGlyZWN0b3JpZXMgaW5zdGVhZCBvZiBpbnN0YWxsaW5nIGZpbGVzLgorICAtZyBHUk9VUCAgICAgICRjaGdycHByb2cgaW5zdGFsbGVkIGZpbGVzIHRvIEdST1VQLgorICAtbSBNT0RFICAgICAgICRjaG1vZHByb2cgaW5zdGFsbGVkIGZpbGVzIHRvIE1PREUuCisgIC1vIFVTRVIgICAgICAgJGNob3ducHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gVVNFUi4KKyAgLXMgICAgICAgICAgICAkc3RyaXBwcm9nIGluc3RhbGxlZCBmaWxlcy4KKyAgLXQgRElSRUNUT1JZICBpbnN0YWxsIGludG8gRElSRUNUT1JZLgorICAtVCAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEgZGlyZWN0b3J5LgorCitFbnZpcm9ubWVudCB2YXJpYWJsZXMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY29tbWFuZHM6CisgIENIR1JQUFJPRyBDSE1PRFBST0cgQ0hPV05QUk9HIENNUFBST0cgQ1BQUk9HIE1LRElSUFJPRyBNVlBST0cKKyAgUk1QUk9HIFNUUklQUFJPRworIgorCit3aGlsZSB0ZXN0ICQjIC1uZSAwOyBkbworICBjYXNlICQxIGluCisgICAgLWMpIDs7CisKKyAgICAtQykgY29weV9vbl9jaGFuZ2U9dHJ1ZTs7CisKKyAgICAtZCkgZGlyX2FyZz10cnVlOzsKKworICAgIC1nKSBjaGdycGNtZD0iJGNoZ3JwcHJvZyAkMiIKKwlzaGlmdDs7CisKKyAgICAtLWhlbHApIGVjaG8gIiR1c2FnZSI7IGV4aXQgJD87OworCisgICAgLW0pIG1vZGU9JDIKKwljYXNlICRtb2RlIGluCisJICAqJyAnKiB8IConCScqIHwgKicKKycqCSAgfCAqJyonKiB8IConPycqIHwgKidbJyopCisJICAgIGVjaG8gIiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKKwkgICAgZXhpdCAxOzsKKwllc2FjCisJc2hpZnQ7OworCisgICAgLW8pIGNob3duY21kPSIkY2hvd25wcm9nICQyIgorCXNoaWZ0OzsKKworICAgIC1zKSBzdHJpcGNtZD0kc3RyaXBwcm9nOzsKKworICAgIC10KSBkc3RfYXJnPSQyCisJc2hpZnQ7OworCisgICAgLVQpIG5vX3RhcmdldF9kaXJlY3Rvcnk9dHJ1ZTs7CisKKyAgICAtLXZlcnNpb24pIGVjaG8gIiQwICRzY3JpcHR2ZXJzaW9uIjsgZXhpdCAkPzs7CisKKyAgICAtLSkJc2hpZnQKKwlicmVhazs7CisKKyAgICAtKikJZWNobyAiJDA6IGludmFsaWQgb3B0aW9uOiAkMSIgPiYyCisJZXhpdCAxOzsKKworICAgICopICBicmVhazs7CisgIGVzYWMKKyAgc2hpZnQKK2RvbmUKKworaWYgdGVzdCAkIyAtbmUgMCAmJiB0ZXN0IC16ICIkZGlyX2FyZyRkc3RfYXJnIjsgdGhlbgorICAjIFdoZW4gLWQgaXMgdXNlZCwgYWxsIHJlbWFpbmluZyBhcmd1bWVudHMgYXJlIGRpcmVjdG9yaWVzIHRvIGNyZWF0ZS4KKyAgIyBXaGVuIC10IGlzIHVzZWQsIHRoZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IHNwZWNpZmllZC4KKyAgIyBPdGhlcndpc2UsIHRoZSBsYXN0IGFyZ3VtZW50IGlzIHRoZSBkZXN0aW5hdGlvbi4gIFJlbW92ZSBpdCBmcm9tICRALgorICBmb3IgYXJnCisgIGRvCisgICAgaWYgdGVzdCAtbiAiJGRzdF9hcmciOyB0aGVuCisgICAgICAjICRAIGlzIG5vdCBlbXB0eTogaXQgY29udGFpbnMgYXQgbGVhc3QgJGFyZy4KKyAgICAgIHNldCBmbm9yZCAiJEAiICIkZHN0X2FyZyIKKyAgICAgIHNoaWZ0ICMgZm5vcmQKKyAgICBmaQorICAgIHNoaWZ0ICMgYXJnCisgICAgZHN0X2FyZz0kYXJnCisgIGRvbmUKK2ZpCisKK2lmIHRlc3QgJCMgLWVxIDA7IHRoZW4KKyAgaWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVuCisgICAgZWNobyAiJDA6IG5vIGlucHV0IGZpbGUgc3BlY2lmaWVkLiIgPiYyCisgICAgZXhpdCAxCisgIGZpCisgICMgSXQncyBPSyB0byBjYWxsIGBpbnN0YWxsLXNoIC1kJyB3aXRob3V0IGFyZ3VtZW50LgorICAjIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGNyZWF0aW5nIGNvbmRpdGlvbmFsIGRpcmVjdG9yaWVzLgorICBleGl0IDAKK2ZpCisKK2lmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhlbgorICB0cmFwICcoZXhpdCAkPyk7IGV4aXQnIDEgMiAxMyAxNQorCisgICMgU2V0IHVtYXNrIHNvIGFzIG5vdCB0byBjcmVhdGUgdGVtcHMgd2l0aCB0b28tZ2VuZXJvdXMgbW9kZXMuCisgICMgSG93ZXZlciwgJ3N0cmlwJyByZXF1aXJlcyBib3RoIHJlYWQgYW5kIHdyaXRlIGFjY2VzcyB0byB0ZW1wcy4KKyAgY2FzZSAkbW9kZSBpbgorICAgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgorICAgICo2NDQpIGNwX3VtYXNrPTEzMzs7CisgICAgKjc1NSkgY3BfdW1hc2s9MjI7OworCisgICAgKlswLTddKQorICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgorCXVfcGx1c19ydz0KKyAgICAgIGVsc2UKKwl1X3BsdXNfcnc9JyUgMjAwJworICAgICAgZmkKKyAgICAgIGNwX3VtYXNrPWBleHByICcoJyA3NzcgLSAkbW9kZSAlIDEwMDAgJyknICR1X3BsdXNfcndgOzsKKyAgICAqKQorICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgorCXVfcGx1c19ydz0KKyAgICAgIGVsc2UKKwl1X3BsdXNfcnc9LHUrcncKKyAgICAgIGZpCisgICAgICBjcF91bWFzaz0kbW9kZSR1X3BsdXNfcnc7OworICBlc2FjCitmaQorCitmb3Igc3JjCitkbworICAjIFByb3RlY3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCisgIGNhc2UgJHNyYyBpbgorICAgIC0qKSBzcmM9Li8kc3JjOzsKKyAgZXNhYworCisgIGlmIHRlc3QgLW4gIiRkaXJfYXJnIjsgdGhlbgorICAgIGRzdD0kc3JjCisgICAgZHN0ZGlyPSRkc3QKKyAgICB0ZXN0IC1kICIkZHN0ZGlyIgorICAgIGRzdGRpcl9zdGF0dXM9JD8KKyAgZWxzZQorCisgICAgIyBXYWl0aW5nIGZvciB0aGlzIHRvIGJlIGRldGVjdGVkIGJ5IHRoZSAiJGNwcHJvZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQKKyAgICAjIG1pZ2h0IGNhdXNlIGRpcmVjdG9yaWVzIHRvIGJlIGNyZWF0ZWQsIHdoaWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCisgICAgIyBpZiAkc3JjIChhbmQgdGh1cyAkZHN0dG1wKSBjb250YWlucyAnKicuCisgICAgaWYgdGVzdCAhIC1mICIkc3JjIiAmJiB0ZXN0ICEgLWQgIiRzcmMiOyB0aGVuCisgICAgICBlY2hvICIkMDogJHNyYyBkb2VzIG5vdCBleGlzdC4iID4mMgorICAgICAgZXhpdCAxCisgICAgZmkKKworICAgIGlmIHRlc3QgLXogIiRkc3RfYXJnIjsgdGhlbgorICAgICAgZWNobyAiJDA6IG5vIGRlc3RpbmF0aW9uIHNwZWNpZmllZC4iID4mMgorICAgICAgZXhpdCAxCisgICAgZmkKKworICAgIGRzdD0kZHN0X2FyZworICAgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KKyAgICBjYXNlICRkc3QgaW4KKyAgICAgIC0qKSBkc3Q9Li8kZHN0OzsKKyAgICBlc2FjCisKKyAgICAjIElmIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1lOyB3b24ndCB3b3JrCisgICAgIyBpZiBkb3VibGUgc2xhc2hlcyBhcmVuJ3QgaWdub3JlZC4KKyAgICBpZiB0ZXN0IC1kICIkZHN0IjsgdGhlbgorICAgICAgaWYgdGVzdCAtbiAiJG5vX3RhcmdldF9kaXJlY3RvcnkiOyB0aGVuCisJZWNobyAiJDA6ICRkc3RfYXJnOiBJcyBhIGRpcmVjdG9yeSIgPiYyCisJZXhpdCAxCisgICAgICBmaQorICAgICAgZHN0ZGlyPSRkc3QKKyAgICAgIGRzdD0kZHN0ZGlyL2BiYXNlbmFtZSAiJHNyYyJgCisgICAgICBkc3RkaXJfc3RhdHVzPTAKKyAgICBlbHNlCisgICAgICAjIFByZWZlciBkaXJuYW1lLCBidXQgZmFsbCBiYWNrIG9uIGEgc3Vic3RpdHV0ZSBpZiBkaXJuYW1lIGZhaWxzLgorICAgICAgZHN0ZGlyPWAKKwkoZGlybmFtZSAiJGRzdCIpIDI+L2Rldi9udWxsIHx8CisJZXhwciBYIiRkc3QiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJICAgICBYIiRkc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJICAgICBYIiRkc3QiIDogJ1hcKC8vXCkkJyBcfCBcCisJICAgICBYIiRkc3QiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorCWVjaG8gWCIkZHN0IiB8CisJICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CisJCSAgIHMvL1wxLworCQkgICBxCisJCSB9CisJCSAvXlhcKFwvXC9cKVteL10uKi97CisJCSAgIHMvL1wxLworCQkgICBxCisJCSB9CisJCSAvXlhcKFwvXC9cKSQveworCQkgICBzLy9cMS8KKwkJICAgcQorCQkgfQorCQkgL15YXChcL1wpLioveworCQkgICBzLy9cMS8KKwkJICAgcQorCQkgfQorCQkgcy8uKi8uLzsgcScKKyAgICAgIGAKKworICAgICAgdGVzdCAtZCAiJGRzdGRpciIKKyAgICAgIGRzdGRpcl9zdGF0dXM9JD8KKyAgICBmaQorICBmaQorCisgIG9ic29sZXRlX21rZGlyX3VzZWQ9ZmFsc2UKKworICBpZiB0ZXN0ICRkc3RkaXJfc3RhdHVzICE9IDA7IHRoZW4KKyAgICBjYXNlICRwb3NpeF9ta2RpciBpbgorICAgICAgJycpCisJIyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9kZSA3NTUgYXMgbW9kaWZpZWQgYnkgdGhlIHVtYXNrLgorCSMgVGhpcyBpcyBsaWtlIEZyZWVCU0QgJ2luc3RhbGwnIGFzIG9mIDE5OTctMTAtMjguCisJdW1hc2s9YHVtYXNrYAorCWNhc2UgJHN0cmlwY21kLiR1bWFzayBpbgorCSAgIyBPcHRpbWl6ZSBjb21tb24gY2FzZXMuCisJICAqWzIzNjddWzIzNjddKSBta2Rpcl91bWFzaz0kdW1hc2s7OworCSAgLiowWzAyXVswMl0gfCAuWzAyXVswMl0gfCAuWzAyXSkgbWtkaXJfdW1hc2s9MjI7OworCisJICAqWzAtN10pCisJICAgIG1rZGlyX3VtYXNrPWBleHByICR1bWFzayArIDIyIFwKKwkgICAgICAtICR1bWFzayAlIDEwMCAlIDQwICsgJHVtYXNrICUgMjAgXAorCSAgICAgIC0gJHVtYXNrICUgMTAgJSA0ICsgJHVtYXNrICUgMgorCSAgICBgOzsKKwkgICopIG1rZGlyX3VtYXNrPSR1bWFzayxnby13OzsKKwllc2FjCisKKwkjIFdpdGggLWQsIGNyZWF0ZSB0aGUgbmV3IGRpcmVjdG9yeSB3aXRoIHRoZSB1c2VyLXNwZWNpZmllZCBtb2RlLgorCSMgT3RoZXJ3aXNlLCByZWx5IG9uICRta2Rpcl91bWFzay4KKwlpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KKwkgIG1rZGlyX21vZGU9LW0kbW9kZQorCWVsc2UKKwkgIG1rZGlyX21vZGU9CisJZmkKKworCXBvc2l4X21rZGlyPWZhbHNlCisJY2FzZSAkdW1hc2sgaW4KKwkgICpbMTIzNTY3XVswLTddWzAtN10pCisJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0cyB1K3d4IGJpdHMgcmVnYXJkbGVzcyBvZiB1bWFzaywgd2hpY2gKKwkgICAgIyBpcyBpbmNvbXBhdGlibGUgd2l0aCBGcmVlQlNEICdpbnN0YWxsJyB3aGVuICh1bWFzayAmIDMwMCkgIT0gMC4KKwkgICAgOzsKKwkgICopCisJICAgIHRtcGRpcj0ke1RNUERJUi0vdG1wfS9pbnMkUkFORE9NLSQkCisJICAgIHRyYXAgJ3JldD0kPzsgcm1kaXIgIiR0bXBkaXIvZCIgIiR0bXBkaXIiIDI+L2Rldi9udWxsOyBleGl0ICRyZXQnIDAKKworCSAgICBpZiAodW1hc2sgJG1rZGlyX3VtYXNrICYmCisJCWV4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAtcCAtLSAiJHRtcGRpci9kIikgPi9kZXYvbnVsbCAyPiYxCisJICAgIHRoZW4KKwkgICAgICBpZiB0ZXN0IC16ICIkZGlyX2FyZyIgfHwgeworCQkgICAjIENoZWNrIGZvciBQT1NJWCBpbmNvbXBhdGliaWxpdGllcyB3aXRoIC1tLgorCQkgICAjIEhQLVVYIDExLjIzIGFuZCBJUklYIDYuNSBta2RpciAtbSAtcCBzZXRzIGdyb3VwLSBvcgorCQkgICAjIG90aGVyLXdyaXRlYWJsZSBiaXQgb2YgcGFyZW50IGRpcmVjdG9yeSB3aGVuIGl0IHNob3VsZG4ndC4KKwkJICAgIyBGcmVlQlNEIDYuMSBta2RpciAtbSAtcCBzZXRzIG1vZGUgb2YgZXhpc3RpbmcgZGlyZWN0b3J5LgorCQkgICBsc19sZF90bXBkaXI9YGxzIC1sZCAiJHRtcGRpciJgCisJCSAgIGNhc2UgJGxzX2xkX3RtcGRpciBpbgorCQkgICAgIGQ/Pz8/LT9yLSopIGRpZmZlcmVudF9tb2RlPTcwMDs7CisJCSAgICAgZD8/Pz8tPy0tKikgZGlmZmVyZW50X21vZGU9NzU1OzsKKwkJICAgICAqKSBmYWxzZTs7CisJCSAgIGVzYWMgJiYKKwkJICAgJG1rZGlycHJvZyAtbSRkaWZmZXJlbnRfbW9kZSAtcCAtLSAiJHRtcGRpciIgJiYgeworCQkgICAgIGxzX2xkX3RtcGRpcl8xPWBscyAtbGQgIiR0bXBkaXIiYAorCQkgICAgIHRlc3QgIiRsc19sZF90bXBkaXIiID0gIiRsc19sZF90bXBkaXJfMSIKKwkJICAgfQorCQkgfQorCSAgICAgIHRoZW4gcG9zaXhfbWtkaXI9OgorCSAgICAgIGZpCisJICAgICAgcm1kaXIgIiR0bXBkaXIvZCIgIiR0bXBkaXIiCisJICAgIGVsc2UKKwkgICAgICAjIFJlbW92ZSBhbnkgZGlycyBsZWZ0IGJlaGluZCBieSBhbmNpZW50IG1rZGlyIGltcGxlbWVudGF0aW9ucy4KKwkgICAgICBybWRpciAuLyRta2Rpcl9tb2RlIC4vLXAgLi8tLSAyPi9kZXYvbnVsbAorCSAgICBmaQorCSAgICB0cmFwICcnIDA7OworCWVzYWM7OworICAgIGVzYWMKKworICAgIGlmCisgICAgICAkcG9zaXhfbWtkaXIgJiYgKAorCXVtYXNrICRta2Rpcl91bWFzayAmJgorCSRkb2l0X2V4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAtcCAtLSAiJGRzdGRpciIKKyAgICAgICkKKyAgICB0aGVuIDoKKyAgICBlbHNlCisKKyAgICAgICMgVGhlIHVtYXNrIGlzIHJpZGljdWxvdXMsIG9yIG1rZGlyIGRvZXMgbm90IGNvbmZvcm0gdG8gUE9TSVgsCisgICAgICAjIG9yIGl0IGZhaWxlZCBwb3NzaWJseSBkdWUgdG8gYSByYWNlIGNvbmRpdGlvbi4gIENyZWF0ZSB0aGUKKyAgICAgICMgZGlyZWN0b3J5IHRoZSBzbG93IHdheSwgc3RlcCBieSBzdGVwLCBjaGVja2luZyBmb3IgcmFjZXMgYXMgd2UgZ28uCisKKyAgICAgIGNhc2UgJGRzdGRpciBpbgorCS8qKSBwcmVmaXg9Jy8nOzsKKwktKikgcHJlZml4PScuLyc7OworCSopICBwcmVmaXg9Jyc7OworICAgICAgZXNhYworCisgICAgICBldmFsICIkaW5pdGlhbGl6ZV9wb3NpeF9nbG9iIgorCisgICAgICBvSUZTPSRJRlMKKyAgICAgIElGUz0vCisgICAgICAkcG9zaXhfZ2xvYiBzZXQgLWYKKyAgICAgIHNldCBmbm9yZCAkZHN0ZGlyCisgICAgICBzaGlmdAorICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmCisgICAgICBJRlM9JG9JRlMKKworICAgICAgcHJlZml4ZXM9CisKKyAgICAgIGZvciBkCisgICAgICBkbworCXRlc3QgLXogIiRkIiAmJiBjb250aW51ZQorCisJcHJlZml4PSRwcmVmaXgkZAorCWlmIHRlc3QgLWQgIiRwcmVmaXgiOyB0aGVuCisJICBwcmVmaXhlcz0KKwllbHNlCisJICBpZiAkcG9zaXhfbWtkaXI7IHRoZW4KKwkgICAgKHVtYXNrPSRta2Rpcl91bWFzayAmJgorCSAgICAgJGRvaXRfZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkZHN0ZGlyIikgJiYgYnJlYWsKKwkgICAgIyBEb24ndCBmYWlsIGlmIHR3byBpbnN0YW5jZXMgYXJlIHJ1bm5pbmcgY29uY3VycmVudGx5LgorCSAgICB0ZXN0IC1kICIkcHJlZml4IiB8fCBleGl0IDEKKwkgIGVsc2UKKwkgICAgY2FzZSAkcHJlZml4IGluCisJICAgICAgKlwnKikgcXByZWZpeD1gZWNobyAiJHByZWZpeCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OworCSAgICAgICopIHFwcmVmaXg9JHByZWZpeDs7CisJICAgIGVzYWMKKwkgICAgcHJlZml4ZXM9IiRwcmVmaXhlcyAnJHFwcmVmaXgnIgorCSAgZmkKKwlmaQorCXByZWZpeD0kcHJlZml4LworICAgICAgZG9uZQorCisgICAgICBpZiB0ZXN0IC1uICIkcHJlZml4ZXMiOyB0aGVuCisJIyBEb24ndCBmYWlsIGlmIHR3byBpbnN0YW5jZXMgYXJlIHJ1bm5pbmcgY29uY3VycmVudGx5LgorCSh1bWFzayAkbWtkaXJfdW1hc2sgJiYKKwkgZXZhbCAiXCRkb2l0X2V4ZWMgXCRta2RpcnByb2cgJHByZWZpeGVzIikgfHwKKwkgIHRlc3QgLWQgIiRkc3RkaXIiIHx8IGV4aXQgMQorCW9ic29sZXRlX21rZGlyX3VzZWQ9dHJ1ZQorICAgICAgZmkKKyAgICBmaQorICBmaQorCisgIGlmIHRlc3QgLW4gIiRkaXJfYXJnIjsgdGhlbgorICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQgIiRkc3QiOyB9ICYmCisgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAiJGRzdCI7IH0gJiYKKyAgICB7IHRlc3QgIiRvYnNvbGV0ZV9ta2Rpcl91c2VkJGNob3duY21kJGNoZ3JwY21kIiA9IGZhbHNlIHx8CisgICAgICB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdCI7IH0gfHwgZXhpdCAxCisgIGVsc2UKKworICAgICMgTWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhlIHByb3BlciBkaXJlY3RvcnkuCisgICAgZHN0dG1wPSRkc3RkaXIvX2luc3QuJCRfCisgICAgcm10bXA9JGRzdGRpci9fcm0uJCRfCisKKyAgICAjIFRyYXAgdG8gY2xlYW4gdXAgdGhvc2UgdGVtcCBmaWxlcyBhdCBleGl0LgorICAgIHRyYXAgJ3JldD0kPzsgcm0gLWYgIiRkc3R0bXAiICIkcm10bXAiICYmIGV4aXQgJHJldCcgMAorCisgICAgIyBDb3B5IHRoZSBmaWxlIG5hbWUgdG8gdGhlIHRlbXAgbmFtZS4KKyAgICAodW1hc2sgJGNwX3VtYXNrICYmICRkb2l0X2V4ZWMgJGNwcHJvZyAiJHNyYyIgIiRkc3R0bXAiKSAmJgorCisgICAgIyBhbmQgc2V0IGFueSBvcHRpb25zOyBkbyBjaG1vZCBsYXN0IHRvIHByZXNlcnZlIHNldHVpZCBiaXRzLgorICAgICMKKyAgICAjIElmIGFueSBvZiB0aGVzZSBmYWlsLCB3ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50IHRvCisgICAgIyBpZ25vcmUgZXJyb3JzIGZyb20gYW55IG9mIHRoZXNlLCBqdXN0IG1ha2Ugc3VyZSBub3QgdG8gaWdub3JlCisgICAgIyBlcnJvcnMgZnJvbSB0aGUgYWJvdmUgIiRkb2l0ICRjcHByb2cgJHNyYyAkZHN0dG1wIiBjb21tYW5kLgorICAgICMKKyAgICB7IHRlc3QgLXogIiRjaG93bmNtZCIgfHwgJGRvaXQgJGNob3duY21kICIkZHN0dG1wIjsgfSAmJgorICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8fCAkZG9pdCAkY2hncnBjbWQgIiRkc3R0bXAiOyB9ICYmCisgICAgeyB0ZXN0IC16ICIkc3RyaXBjbWQiIHx8ICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IH0gJiYKKyAgICB7IHRlc3QgLXogIiRjaG1vZGNtZCIgfHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIkZHN0dG1wIjsgfSAmJgorCisgICAgIyBJZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291bGRuJ3QgY2hhbmdlIHRoZSBmaWxlLgorICAgIGlmICRjb3B5X29uX2NoYW5nZSAmJgorICAgICAgIG9sZD1gTENfQUxMPUMgbHMgLWRsTCAiJGRzdCIJMj4vZGV2L251bGxgICYmCisgICAgICAgbmV3PWBMQ19BTEw9QyBscyAtZGxMICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKKworICAgICAgIGV2YWwgIiRpbml0aWFsaXplX3Bvc2l4X2dsb2IiICYmCisgICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mICYmCisgICAgICAgc2V0IFggJG9sZCAmJiBvbGQ9OiQyOiQ0OiQ1OiQ2ICYmCisgICAgICAgc2V0IFggJG5ldyAmJiBuZXc9OiQyOiQ0OiQ1OiQ2ICYmCisgICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmICYmCisKKyAgICAgICB0ZXN0ICIkb2xkIiA9ICIkbmV3IiAmJgorICAgICAgICRjbXBwcm9nICIkZHN0IiAiJGRzdHRtcCIgPi9kZXYvbnVsbCAyPiYxCisgICAgdGhlbgorICAgICAgcm0gLWYgIiRkc3R0bXAiCisgICAgZWxzZQorICAgICAgIyBSZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCisgICAgICAkZG9pdCAkbXZjbWQgLWYgIiRkc3R0bXAiICIkZHN0IiAyPi9kZXYvbnVsbCB8fAorCisgICAgICAjIFRoZSByZW5hbWUgZmFpbGVkLCBwZXJoYXBzIGJlY2F1c2UgbXYgY2FuJ3QgcmVuYW1lIHNvbWV0aGluZyBlbHNlCisgICAgICAjIHRvIGl0c2VsZiwgb3IgcGVyaGFwcyBiZWNhdXNlIG12IGlzIHNvIGFuY2llbnQgdGhhdCBpdCBkb2VzIG5vdAorICAgICAgIyBzdXBwb3J0IC1mLgorICAgICAgeworCSMgTm93IHJlbW92ZSBvciBtb3ZlIGFzaWRlIGFueSBvbGQgZmlsZSBhdCBkZXN0aW5hdGlvbiBsb2NhdGlvbi4KKwkjIFdlIHRyeSB0aGlzIHR3byB3YXlzIHNpbmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQorCSMgc3lzdGVtcyBhbmQgdGhlIGRlc3RpbmF0aW9uIGZpbGUgbWlnaHQgYmUgYnVzeSBmb3Igb3RoZXIKKwkjIHJlYXNvbnMuICBJbiB0aGlzIGNhc2UsIHRoZSBmaW5hbCBjbGVhbnVwIG1pZ2h0IGZhaWwgYnV0IHRoZSBuZXcKKwkjIGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5LgorCXsKKwkgIHRlc3QgISAtZiAiJGRzdCIgfHwKKwkgICRkb2l0ICRybWNtZCAtZiAiJGRzdCIgMj4vZGV2L251bGwgfHwKKwkgIHsgJGRvaXQgJG12Y21kIC1mICIkZHN0IiAiJHJtdG1wIiAyPi9kZXYvbnVsbCAmJgorCSAgICB7ICRkb2l0ICRybWNtZCAtZiAiJHJtdG1wIiAyPi9kZXYvbnVsbDsgOjsgfQorCSAgfSB8fAorCSAgeyBlY2hvICIkMDogY2Fubm90IHVubGluayBvciByZW5hbWUgJGRzdCIgPiYyCisJICAgIChleGl0IDEpOyBleGl0IDEKKwkgIH0KKwl9ICYmCisKKwkjIE5vdyByZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCisJJGRvaXQgJG12Y21kICIkZHN0dG1wIiAiJGRzdCIKKyAgICAgIH0KKyAgICBmaSB8fCBleGl0IDEKKworICAgIHRyYXAgJycgMAorICBmaQorZG9uZQorCisjIExvY2FsIHZhcmlhYmxlczoKKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQorIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCisjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgorIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIKKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgorIyBFbmQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvbHRtYWluLnNoIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL2x0bWFpbi5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42OTM5ZGNjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL2x0bWFpbi5zaApAQCAtMCwwICsxLDg0MDYgQEAKKyMgR2VuZXJhdGVkIGZyb20gbHRtYWluLm00c2guCisKKyMgbHRtYWluLnNoIChHTlUgbGlidG9vbCkgMi4yLjYKKyMgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KKyMgd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisKKyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAorIyBpcyBidWlsdCB1c2luZyBHTlUgTGlidG9vbCwgeW91IG1heSBpbmNsdWRlIHRoaXMgZmlsZSB1bmRlciB0aGUKKyMgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisjCisjIEdOVSBMaWJ0b29sIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCBHTlUgTGlidG9vbDsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIGEgY29weQorIyBjYW4gYmUgZG93bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbCwKKyMgb3Igb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorIyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKworIyBVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIFtNT0RFLUFSR10uLi4KKyMKKyMgUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisjCisjICAgICAtLWNvbmZpZyAgICAgICAgICAgICBzaG93IGFsbCBjb25maWd1cmF0aW9uIHZhcmlhYmxlcworIyAgICAgLS1kZWJ1ZyAgICAgICAgICAgICAgZW5hYmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2luZworIyAtbiwgLS1kcnktcnVuICAgICAgICAgICAgZGlzcGxheSBjb21tYW5kcyB3aXRob3V0IG1vZGlmeWluZyBhbnkgZmlsZXMKKyMgICAgIC0tZmVhdHVyZXMgICAgICAgICAgIGRpc3BsYXkgYmFzaWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAorIyAgICAgLS1tb2RlPU1PREUgICAgICAgICAgdXNlIG9wZXJhdGlvbiBtb2RlIE1PREUKKyMgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMgIGRvbid0IHJlbW92ZSBkdXBsaWNhdGUgZGVwZW5kZW5jeSBsaWJyYXJpZXMKKyMgICAgIC0tcXVpZXQsIC0tc2lsZW50ICAgIGRvbid0IHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMKKyMgICAgIC0tdGFnPVRBRyAgICAgICAgICAgIHVzZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmcm9tIHRhZyBUQUcKKyMgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgKGRlZmF1bHQpCisjICAgICAtLXZlcnNpb24gICAgICAgICAgICBwcmludCB2ZXJzaW9uIGluZm9ybWF0aW9uCisjIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBwcmludCBzaG9ydCBvciBsb25nIGhlbHAgbWVzc2FnZQorIworIyBNT0RFIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CisjCisjICAgICAgIGNsZWFuICAgICAgICAgICAgICByZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5CisjICAgICAgIGNvbXBpbGUgICAgICAgICAgICBjb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgb2JqZWN0CisjICAgICAgIGV4ZWN1dGUgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbQorIyAgICAgICBmaW5pc2ggICAgICAgICAgICAgY29tcGxldGUgdGhlIGluc3RhbGxhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcworIyAgICAgICBpbnN0YWxsICAgICAgICAgICAgaW5zdGFsbCBsaWJyYXJpZXMgb3IgZXhlY3V0YWJsZXMKKyMgICAgICAgbGluayAgICAgICAgICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkgb3IgYW4gZXhlY3V0YWJsZQorIyAgICAgICB1bmluc3RhbGwgICAgICAgICAgcmVtb3ZlIGxpYnJhcmllcyBmcm9tIGFuIGluc3RhbGxlZCBkaXJlY3RvcnkKKyMKKyMgTU9ERS1BUkdTIHZhcnkgZGVwZW5kaW5nIG9uIHRoZSBNT0RFLgorIyBUcnkgYCRwcm9nbmFtZSAtLWhlbHAgLS1tb2RlPU1PREUnIGZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgTU9ERS4KKyMKKyMgV2hlbiByZXBvcnRpbmcgYSBidWcsIHBsZWFzZSBkZXNjcmliZSBhIHRlc3QgY2FzZSB0byByZXByb2R1Y2UgaXQgYW5kCisjIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKyMKKyMgICAgICAgaG9zdC10cmlwbGV0OgkkaG9zdAorIyAgICAgICBzaGVsbDoJCSRTSEVMTAorIyAgICAgICBjb21waWxlcjoJCSRMVENDCisjICAgICAgIGNvbXBpbGVyIGZsYWdzOgkJJExUQ0ZMQUdTCisjICAgICAgIGxpbmtlcjoJCSRMRCAoZ251PyAkd2l0aF9nbnVfbGQpCisjICAgICAgICRwcm9nbmFtZToJCShHTlUgbGlidG9vbCkgMi4yLjYKKyMgICAgICAgYXV0b21ha2U6CQkkYXV0b21ha2VfdmVyc2lvbgorIyAgICAgICBhdXRvY29uZjoJCSRhdXRvY29uZl92ZXJzaW9uCisjCisjIFJlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4KKworUFJPR1JBTT1sdG1haW4uc2gKK1BBQ0tBR0U9bGlidG9vbAorVkVSU0lPTj0yLjIuNgorVElNRVNUQU1QPSIiCitwYWNrYWdlX3JldmlzaW9uPTEuMzAxMgorCisjIEJlIEJvdXJuZSBjb21wYXRpYmxlCitpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgZW11bGF0ZSBzaAorICBOVUxMQ01EPToKKyAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKK2Vsc2UKKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluICpwb3NpeCopIHNldCAtbyBwb3NpeDs7IGVzYWMKK2ZpCitCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9TSCAjIGZvciBUcnU2NAorRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAorCisjIE5MUyBudWlzYW5jZXM6IFdlIHNhdmUgdGhlIG9sZCB2YWx1ZXMgdG8gcmVzdG9yZSBkdXJpbmcgZXhlY3V0ZSBtb2RlLgorIyBPbmx5IHNldCBMQU5HIGFuZCBMQ19BTEwgdG8gQyBpZiBhbHJlYWR5IHNldC4KKyMgVGhlc2UgbXVzdCBub3QgYmUgc2V0IHVuY29uZGl0aW9uYWxseSBiZWNhdXNlIG5vdCBhbGwgc3lzdGVtcyB1bmRlcnN0YW5kCisjIGUuZy4gTEFORz1DIChub3RhYmx5IFNDTykuCitsdF91c2VyX2xvY2FsZT0KK2x0X3NhZmVfbG9jYWxlPQorZm9yIGx0X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExDX01FU1NBR0VTCitkbworICBldmFsICJpZiB0ZXN0IFwiXCR7JGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRoZW4KKyAgICAgICAgICBzYXZlXyRsdF92YXI9XCQkbHRfdmFyCisgICAgICAgICAgJGx0X3Zhcj1DCisJICBleHBvcnQgJGx0X3ZhcgorCSAgbHRfdXNlcl9sb2NhbGU9XCIkbHRfdmFyPVxcXCRzYXZlX1wkbHRfdmFyOyBcJGx0X3VzZXJfbG9jYWxlXCIKKwkgIGx0X3NhZmVfbG9jYWxlPVwiJGx0X3Zhcj1DOyBcJGx0X3NhZmVfbG9jYWxlXCIKKwlmaSIKK2RvbmUKKworJGx0X3Vuc2V0IENEUEFUSAorCisKKworCisKKzogJHtDUD0iY3AgLWYifQorOiAke0VDSE89ImVjaG8ifQorOiAke0VHUkVQPSIvYmluL2dyZXAgLUUifQorOiAke0ZHUkVQPSIvYmluL2dyZXAgLUYifQorOiAke0dSRVA9Ii9iaW4vZ3JlcCJ9Cis6ICR7TE5fUz0ibG4gLXMifQorOiAke01BS0U9Im1ha2UifQorOiAke01LRElSPSJta2RpciJ9Cis6ICR7TVY9Im12IC1mIn0KKzogJHtSTT0icm0gLWYifQorOiAke1NFRD0iL2Jpbi9zZWQifQorOiAke1NIRUxMPSIke0NPTkZJR19TSEVMTC0vYmluL3NofSJ9Cis6ICR7WHNlZD0iJFNFRCAtZSAxcy9eWC8vIn0KKworIyBHbG9iYWwgdmFyaWFibGVzOgorRVhJVF9TVUNDRVNTPTAKK0VYSVRfRkFJTFVSRT0xCitFWElUX01JU01BVENIPTYzICAjICQ/ID0gNjMgaXMgdXNlZCB0byBpbmRpY2F0ZSB2ZXJzaW9uIG1pc21hdGNoIHRvIG1pc3NpbmcuCitFWElUX1NLSVA9NzcJICAjICQ/ID0gNzcgaXMgdXNlZCB0byBpbmRpY2F0ZSBhIHNraXBwZWQgdGVzdCB0byBhdXRvbWFrZS4KKworZXhpdF9zdGF0dXM9JEVYSVRfU1VDQ0VTUworCisjIE1ha2Ugc3VyZSBJRlMgaGFzIGEgc2Vuc2libGUgZGVmYXVsdAorbHRfbmw9JworJworSUZTPSIgCSRsdF9ubCIKKworZGlybmFtZT0icywvW14vXSokLCwiCitiYXNlbmFtZT0icyxeLiovLCwiCisKKyMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KKyMgY2FsbDoKKyMgICBkaXJuYW1lOiAgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksCisjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgorIyAgICAgICAgICAgICB2YWx1ZSByZXR1cm5lZCBpbiAiJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisjICAgYmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KKyMgICAgICAgICAgICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorIyBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIGtlcHQgc3luY2hyb25pemVkIHdpdGggZnVuY19kaXJuYW1lCisjIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVnYXRlIHRvCisjIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KK2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgKCkKK3sKKyAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKyAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCisgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCisgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKKyAgZWxzZQorICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKKyAgZmkKKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKK30KKworIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUuCisKKyMgV29yayBhcm91bmQgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpc3N1ZSBvbiBJUklYIDYuNS4gT24gSVJJWCA2LjQrLCBzaAorIyBpcyBrc2ggYnV0IHdoZW4gdGhlIHNoZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQgdGhlIGN1cnJlbnQgdmFsdWUgb2YKKyMgdGhlIF9YUEcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGVxdWFsIHRvIDEgKG9uZSksIHRoZSBzcGVjaWFsCisjIHBvc2l0aW9uYWwgcGFyYW1ldGVyICQwLCB3aXRoaW4gYSBmdW5jdGlvbiBjYWxsLCBpcyB0aGUgbmFtZSBvZiB0aGUKKyMgZnVuY3Rpb24uCitwcm9ncGF0aD0iJDAiCisKKyMgVGhlIG5hbWUgb2YgdGhpcyBwcm9ncmFtOgorIyBJbiB0aGUgdW5saWtlbHkgZXZlbnQgJHByb2duYW1lIGJlZ2FuIHdpdGggYSAnLScsIGl0IHdvdWxkIHBsYXkgaGF2b2Mgd2l0aAorIyBmdW5jX2VjaG8gKGltYWdpbmUgcHJvZ25hbWU9LW4pLCBzbyB3ZSBwcmVwZW5kIC4vIGluIHRoYXQgY2FzZToKK2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRwcm9ncGF0aCIKK3Byb2duYW1lPSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAorY2FzZSAkcHJvZ25hbWUgaW4KKyAgLSopIHByb2duYW1lPS4vJHByb2duYW1lIDs7Citlc2FjCisKKyMgTWFrZSBzdXJlIHdlIGhhdmUgYW4gYWJzb2x1dGUgcGF0aCBmb3IgcmVleGVjdXRpb246CitjYXNlICRwcm9ncGF0aCBpbgorICBbXFwvXSp8W0EtWmEtel06XFwqKSA7OworICAqW1xcL10qKQorICAgICBwcm9nZGlyPSRmdW5jX2Rpcm5hbWVfcmVzdWx0CisgICAgIHByb2dkaXI9YGNkICIkcHJvZ2RpciIgJiYgcHdkYAorICAgICBwcm9ncGF0aD0iJHByb2dkaXIvJHByb2duYW1lIgorICAgICA7OworICAqKQorICAgICBzYXZlX0lGUz0iJElGUyIKKyAgICAgSUZTPToKKyAgICAgZm9yIHByb2dkaXIgaW4gJFBBVEg7IGRvCisgICAgICAgSUZTPSIkc2F2ZV9JRlMiCisgICAgICAgdGVzdCAteCAiJHByb2dkaXIvJHByb2duYW1lIiAmJiBicmVhaworICAgICBkb25lCisgICAgIElGUz0iJHNhdmVfSUZTIgorICAgICB0ZXN0IC1uICIkcHJvZ2RpciIgfHwgcHJvZ2Rpcj1gcHdkYAorICAgICBwcm9ncGF0aD0iJHByb2dkaXIvJHByb2duYW1lIgorICAgICA7OworZXNhYworCisjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorWHNlZD0iJHtTRUR9IicgLWUgMXMvXlgvLycKK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtgIiRcXF1cKS9cXFwxL2cnCisKKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgorZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxdXCkvXFxcMS9nJworCisjIFJlLWBcJyBwYXJhbWV0ZXIgZXhwYW5zaW9ucyBpbiBvdXRwdXQgb2YgZG91YmxlX3F1b3RlX3N1YnN0IHRoYXQgd2VyZQorIyBgXCctZWQgaW4gaW5wdXQgdG8gdGhlIHNhbWUuICBJZiBhbiBvZGQgbnVtYmVyIG9mIGBcJyBwcmVjZWRlZCBhICckJworIyBpbiBpbnB1dCB0byBkb3VibGVfcXVvdGVfc3Vic3QsIHRoYXQgJyQnIHdhcyBwcm90ZWN0ZWQgZnJvbSBleHBhbnNpb24uCisjIFNpbmNlIGVhY2ggaW5wdXQgYFwnIGlzIG5vdyB0d28gYFwncywgbG9vayBmb3IgYW55IG51bWJlciBvZiBydW5zIG9mCisjIGZvdXIgYFwncyBmb2xsb3dlZCBieSB0d28gYFwncyBhbmQgdGhlbiBhICckJy4gIGBcJyB0aGF0ICckJy4KK2JzPSdcXCcKK2JzMj0nXFxcXCcKK2JzND0nXFxcXFxcXFwnCitkb2xsYXI9J1wkJworc2VkX2RvdWJsZV9iYWNrc2xhc2g9IlwKKyAgcy8kYnM0LyZcXAorL2cKKyAgcy9eJGJzMiRkb2xsYXIvJGJzJi8KKyAgcy9cXChbXiRic11cXCkkYnMyJGRvbGxhci9cXDEkYnMyJGJzJGRvbGxhci9nCisgIHMvXG4vL2ciCisKKyMgU3RhbmRhcmQgb3B0aW9uczoKK29wdF9kcnlfcnVuPWZhbHNlCitvcHRfaGVscD1mYWxzZQorb3B0X3F1aWV0PWZhbHNlCitvcHRfdmVyYm9zZT1mYWxzZQorb3B0X3dhcm5pbmc9OgorCisjIGZ1bmNfZWNobyBhcmcuLi4KKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSwgYWxvbmcgd2l0aCB0aGUgY3VycmVudCBtb2RlCisjIG5hbWUgaWYgaXQgaGFzIGJlZW4gc2V0IHlldC4KK2Z1bmNfZWNobyAoKQoreworICAgICRFQ0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6ICQqIgorfQorCisjIGZ1bmNfdmVyYm9zZSBhcmcuLi4KKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSBpbiB2ZXJib3NlIG1vZGUgb25seS4KK2Z1bmNfdmVyYm9zZSAoKQoreworICAgICRvcHRfdmVyYm9zZSAmJiBmdW5jX2VjaG8gJHsxKyIkQCJ9CisKKyAgICAjIEEgYnVnIGluIGJhc2ggaGFsdHMgdGhlIHNjcmlwdCBpZiB0aGUgbGFzdCBsaW5lIG9mIGEgZnVuY3Rpb24KKyAgICAjIGZhaWxzIHdoZW4gc2V0IC1lIGlzIGluIGZvcmNlLCBzbyB3ZSBuZWVkIGFub3RoZXIgY29tbWFuZCB0bworICAgICMgd29yayBhcm91bmQgdGhhdDoKKyAgICA6Cit9CisKKyMgZnVuY19lcnJvciBhcmcuLi4KKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KK2Z1bmNfZXJyb3IgKCkKK3sKKyAgICAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAiJHsxKyIkQCJ9IDE+JjIKK30KKworIyBmdW5jX3dhcm5pbmcgYXJnLi4uCisjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIHdhcm5pbmcgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KK2Z1bmNfd2FybmluZyAoKQoreworICAgICRvcHRfd2FybmluZyAmJiAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiB3YXJuaW5nOiAiJHsxKyIkQCJ9IDE+JjIKKworICAgICMgYmFzaCBidWcgYWdhaW46CisgICAgOgorfQorCisjIGZ1bmNfZmF0YWxfZXJyb3IgYXJnLi4uCisjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGFuZCBleGl0LgorZnVuY19mYXRhbF9lcnJvciAoKQoreworICAgIGZ1bmNfZXJyb3IgJHsxKyIkQCJ9CisgICAgZXhpdCAkRVhJVF9GQUlMVVJFCit9CisKKyMgZnVuY19mYXRhbF9oZWxwIGFyZy4uLgorIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBmb2xsb3dlZCBieQorIyBhIGhlbHAgaGludCwgYW5kIGV4aXQuCitmdW5jX2ZhdGFsX2hlbHAgKCkKK3sKKyAgICBmdW5jX2Vycm9yICR7MSsiJEAifQorICAgIGZ1bmNfZmF0YWxfZXJyb3IgIiRoZWxwIgorfQoraGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAgIyMgZGVmYXVsdAorCisKKyMgZnVuY19ncmVwIGV4cHJlc3Npb24gZmlsZW5hbWUKKyMgQ2hlY2sgd2hldGhlciBFWFBSRVNTSU9OIG1hdGNoZXMgYW55IGxpbmUgb2YgRklMRU5BTUUsIHdpdGhvdXQgb3V0cHV0LgorZnVuY19ncmVwICgpCit7CisgICAgJEdSRVAgIiQxIiAiJDIiID4vZGV2L251bGwgMj4mMQorfQorCisKKyMgZnVuY19ta2Rpcl9wIGRpcmVjdG9yeS1wYXRoCisjIE1ha2Ugc3VyZSB0aGUgZW50aXJlIHBhdGggdG8gRElSRUNUT1JZLVBBVEggaXMgYXZhaWxhYmxlLgorZnVuY19ta2Rpcl9wICgpCit7CisgICAgbXlfZGlyZWN0b3J5X3BhdGg9IiQxIgorICAgIG15X2Rpcl9saXN0PQorCisgICAgaWYgdGVzdCAtbiAiJG15X2RpcmVjdG9yeV9wYXRoIiAmJiB0ZXN0ICIkb3B0X2RyeV9ydW4iICE9ICI6IjsgdGhlbgorCisgICAgICAjIFByb3RlY3QgZGlyZWN0b3J5IG5hbWVzIHN0YXJ0aW5nIHdpdGggYC0nCisgICAgICBjYXNlICRteV9kaXJlY3RvcnlfcGF0aCBpbgorICAgICAgICAtKikgbXlfZGlyZWN0b3J5X3BhdGg9Ii4vJG15X2RpcmVjdG9yeV9wYXRoIiA7OworICAgICAgZXNhYworCisgICAgICAjIFdoaWxlIHNvbWUgcG9ydGlvbiBvZiBESVIgZG9lcyBub3QgeWV0IGV4aXN0Li4uCisgICAgICB3aGlsZSB0ZXN0ICEgLWQgIiRteV9kaXJlY3RvcnlfcGF0aCI7IGRvCisgICAgICAgICMgLi4ubWFrZSBhIGxpc3QgaW4gdG9wbW9zdCBmaXJzdCBvcmRlci4gIFVzZSBhIGNvbG9uIGRlbGltaXRlZAorCSMgbGlzdCBpbmNhc2Ugc29tZSBwb3J0aW9uIG9mIHBhdGggY29udGFpbnMgd2hpdGVzcGFjZS4KKyAgICAgICAgbXlfZGlyX2xpc3Q9IiRteV9kaXJlY3RvcnlfcGF0aDokbXlfZGlyX2xpc3QiCisKKyAgICAgICAgIyBJZiB0aGUgbGFzdCBwb3J0aW9uIGFkZGVkIGhhcyBubyBzbGFzaCBpbiBpdCwgdGhlIGxpc3QgaXMgZG9uZQorICAgICAgICBjYXNlICRteV9kaXJlY3RvcnlfcGF0aCBpbiAqLyopIDs7ICopIGJyZWFrIDs7IGVzYWMKKworICAgICAgICAjIC4uLm90aGVyd2lzZSB0aHJvdyBhd2F5IHRoZSBjaGlsZCBkaXJlY3RvcnkgYW5kIGxvb3AKKyAgICAgICAgbXlfZGlyZWN0b3J5X3BhdGg9YCRFQ0hPICJYJG15X2RpcmVjdG9yeV9wYXRoIiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCisgICAgICBkb25lCisgICAgICBteV9kaXJfbGlzdD1gJEVDSE8gIlgkbXlfZGlyX2xpc3QiIHwgJFhzZWQgLWUgJ3MsOiokLCwnYAorCisgICAgICBzYXZlX21rZGlyX3BfSUZTPSIkSUZTIjsgSUZTPSc6JworICAgICAgZm9yIG15X2RpciBpbiAkbXlfZGlyX2xpc3Q7IGRvCisJSUZTPSIkc2F2ZV9ta2Rpcl9wX0lGUyIKKyAgICAgICAgIyBta2RpciBjYW4gZmFpbCB3aXRoIGEgYEZpbGUgZXhpc3QnIGVycm9yIGlmIHR3byBwcm9jZXNzZXMKKyAgICAgICAgIyB0cnkgdG8gY3JlYXRlIG9uZSBvZiB0aGUgZGlyZWN0b3JpZXMgY29uY3VycmVudGx5LiAgRG9uJ3QKKyAgICAgICAgIyBzdG9wIGluIHRoYXQgY2FzZSEKKyAgICAgICAgJE1LRElSICIkbXlfZGlyIiAyPi9kZXYvbnVsbCB8fCA6CisgICAgICBkb25lCisgICAgICBJRlM9IiRzYXZlX21rZGlyX3BfSUZTIgorCisgICAgICAjIEJhaWwgb3V0IGlmIHdlIChvciBzb21lIG90aGVyIHByb2Nlc3MpIGZhaWxlZCB0byBjcmVhdGUgYSBkaXJlY3RvcnkuCisgICAgICB0ZXN0IC1kICIkbXlfZGlyZWN0b3J5X3BhdGgiIHx8IFwKKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiRmFpbGVkIHRvIGNyZWF0ZSBcYCQxJyIKKyAgICBmaQorfQorCisKKyMgZnVuY19ta3RlbXBkaXIgW3N0cmluZ10KKyMgTWFrZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdGhhdCB3b24ndCBjbGFzaCB3aXRoIG90aGVyIHJ1bm5pbmcKKyMgbGlidG9vbCBwcm9jZXNzZXMsIGFuZCBhdm9pZHMgcmFjZSBjb25kaXRpb25zIGlmIHBvc3NpYmxlLiAgSWYKKyMgZ2l2ZW4sIFNUUklORyBpcyB0aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGlyZWN0b3J5LgorZnVuY19ta3RlbXBkaXIgKCkKK3sKKyAgICBteV90ZW1wbGF0ZT0iJHtUTVBESVItL3RtcH0vJHsxLSRwcm9nbmFtZX0iCisKKyAgICBpZiB0ZXN0ICIkb3B0X2RyeV9ydW4iID0gIjoiOyB0aGVuCisgICAgICAjIFJldHVybiBhIGRpcmVjdG9yeSBuYW1lLCBidXQgZG9uJ3QgY3JlYXRlIGl0IGluIGRyeS1ydW4gbW9kZQorICAgICAgbXlfdG1wZGlyPSIke215X3RlbXBsYXRlfS0kJCIKKyAgICBlbHNlCisKKyAgICAgICMgSWYgbWt0ZW1wIHdvcmtzLCB1c2UgdGhhdCBmaXJzdCBhbmQgZm9yZW1vc3QKKyAgICAgIG15X3RtcGRpcj1gbWt0ZW1wIC1kICIke215X3RlbXBsYXRlfS1YWFhYWFhYWCIgMj4vZGV2L251bGxgCisKKyAgICAgIGlmIHRlc3QgISAtZCAiJG15X3RtcGRpciI7IHRoZW4KKyAgICAgICAgIyBGYWlsaW5nIHRoYXQsIGF0IGxlYXN0IHRyeSBhbmQgdXNlICRSQU5ET00gdG8gYXZvaWQgYSByYWNlCisgICAgICAgIG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJHtSQU5ET00tMH0kJCIKKworICAgICAgICBzYXZlX21rdGVtcGRpcl91bWFzaz1gdW1hc2tgCisgICAgICAgIHVtYXNrIDAwNzcKKyAgICAgICAgJE1LRElSICIkbXlfdG1wZGlyIgorICAgICAgICB1bWFzayAkc2F2ZV9ta3RlbXBkaXJfdW1hc2sKKyAgICAgIGZpCisKKyAgICAgICMgSWYgd2UncmUgbm90IGluIGRyeS1ydW4gbW9kZSwgYm9tYiBvdXQgb24gZmFpbHVyZQorICAgICAgdGVzdCAtZCAiJG15X3RtcGRpciIgfHwgXAorICAgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3RvcnkgXGAkbXlfdG1wZGlyJyIKKyAgICBmaQorCisgICAgJEVDSE8gIlgkbXlfdG1wZGlyIiB8ICRYc2VkCit9CisKKworIyBmdW5jX3F1b3RlX2Zvcl9ldmFsIGFyZworIyBBZXN0aGV0aWNhbGx5IHF1b3RlIEFSRyB0byBiZSBldmFsZWQgbGF0ZXIuCisjIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0d28gdmFsdWVzOiBGVU5DX1FVT1RFX0ZPUl9FVkFMX1JFU1VMVAorIyBpcyBkb3VibGUtcXVvdGVkLCBzdWl0YWJsZSBmb3IgYSBzdWJzZXF1ZW50IGV2YWwsIHdoZXJlYXMKKyMgRlVOQ19RVU9URV9GT1JfRVZBTF9VTlFVT1RFRF9SRVNVTFQgaGFzIG1lcmVseSBhbGwgY2hhcmFjdGVycworIyB3aGljaCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUgcXVvdGVzIGJhY2tzbGFzaGlmaWVkLgorZnVuY19xdW90ZV9mb3JfZXZhbCAoKQoreworICAgIGNhc2UgJDEgaW4KKyAgICAgICpbXFxcYFwiXCRdKikKKwlmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdD1gJEVDSE8gIlgkMSIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgIDs7CisgICAgICAqKQorICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdD0iJDEiIDs7CisgICAgZXNhYworCisgICAgY2FzZSAkZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQgaW4KKyAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycyB0byBkZWxheQorICAgICAgIyB3b3JkIHNwbGl0dGluZywgY29tbWFuZCBzdWJzdGl0dXRpb24gYW5kIGFuZCB2YXJpYWJsZQorICAgICAgIyBleHBhbnNpb24gZm9yIGEgc3Vic2VxdWVudCBldmFsLgorICAgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKKyAgICAgICMgaW4gc2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCisgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ9IlwiJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0XCIiCisgICAgICAgIDs7CisgICAgICAqKQorICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdD0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0IgorICAgIGVzYWMKK30KKworCisjIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCBhcmcKKyMgQWVzdGhldGljYWxseSBxdW90ZSBBUkcgdG8gYmUgZXZhbGVkIGxhdGVyOyBzYW1lIGFzIGFib3ZlLAorIyBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCitmdW5jX3F1b3RlX2Zvcl9leHBhbmQgKCkKK3sKKyAgICBjYXNlICQxIGluCisgICAgICAqW1xcXGBcIl0qKQorCW15X2FyZz1gJEVDSE8gIlgkMSIgfCAkWHNlZCBcCisJICAgIC1lICIkZG91YmxlX3F1b3RlX3N1YnN0IiAtZSAiJHNlZF9kb3VibGVfYmFja3NsYXNoImAgOzsKKyAgICAgICopCisgICAgICAgIG15X2FyZz0iJDEiIDs7CisgICAgZXNhYworCisgICAgY2FzZSAkbXlfYXJnIGluCisgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkKKyAgICAgICMgd29yZCBzcGxpdHRpbmcgYW5kIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGZvciBhIHN1YnNlcXVlbnQgZXZhbC4KKyAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5CisgICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgorICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisgICAgICAgIG15X2FyZz0iXCIkbXlfYXJnXCIiCisgICAgICAgIDs7CisgICAgZXNhYworCisgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdD0iJG15X2FyZyIKK30KKworCisjIGZ1bmNfc2hvd19ldmFsIGNtZCBbZmFpbF9leHBdCisjIFVubGVzcyBvcHRfc2lsZW50IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9wdF9kcnlydW4gaXMKKyMgbm90IHRydWUsIGV2YWx1YXRlIENNRC4gIElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWlscywgYW5kIEZBSUxfRVhQCisjIGlzIGdpdmVuLCB0aGVuIGV2YWx1YXRlIGl0LgorZnVuY19zaG93X2V2YWwgKCkKK3sKKyAgICBteV9jbWQ9IiQxIgorICAgIG15X2ZhaWxfZXhwPSIkezItOn0iCisKKyAgICAke29wdF9zaWxlbnQtZmFsc2V9IHx8IHsKKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJG15X2NtZCIKKyAgICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKKyAgICB9CisKKyAgICBpZiAke29wdF9kcnlfcnVuLWZhbHNlfTsgdGhlbiA6OyBlbHNlCisgICAgICBldmFsICIkbXlfY21kIgorICAgICAgbXlfc3RhdHVzPSQ/CisgICAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtZXEgMDsgdGhlbiA6OyBlbHNlCisJZXZhbCAiKGV4aXQgJG15X3N0YXR1cyk7ICRteV9mYWlsX2V4cCIKKyAgICAgIGZpCisgICAgZmkKK30KKworCisjIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSBjbWQgW2ZhaWxfZXhwXQorIyBVbmxlc3Mgb3B0X3NpbGVudCBpcyB0cnVlLCB0aGVuIG91dHB1dCBDTUQuICBUaGVuLCBpZiBvcHRfZHJ5cnVuIGlzCisjIG5vdCB0cnVlLCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlvbiBvZiBDTUQgZmFpbHMsIGFuZCBGQUlMX0VYUAorIyBpcyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBpdC4gIFVzZSB0aGUgc2F2ZWQgbG9jYWxlIGZvciBldmFsdWF0aW9uLgorZnVuY19zaG93X2V2YWxfbG9jYWxlICgpCit7CisgICAgbXlfY21kPSIkMSIKKyAgICBteV9mYWlsX2V4cD0iJHsyLTp9IgorCisgICAgJHtvcHRfc2lsZW50LWZhbHNlfSB8fCB7CisgICAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRteV9jbWQiCisgICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisgICAgfQorCisgICAgaWYgJHtvcHRfZHJ5X3J1bi1mYWxzZX07IHRoZW4gOjsgZWxzZQorICAgICAgZXZhbCAiJGx0X3VzZXJfbG9jYWxlCisJICAgICRteV9jbWQiCisgICAgICBteV9zdGF0dXM9JD8KKyAgICAgIGV2YWwgIiRsdF9zYWZlX2xvY2FsZSIKKyAgICAgIGlmIHRlc3QgIiRteV9zdGF0dXMiIC1lcSAwOyB0aGVuIDo7IGVsc2UKKwlldmFsICIoZXhpdCAkbXlfc3RhdHVzKTsgJG15X2ZhaWxfZXhwIgorICAgICAgZmkKKyAgICBmaQorfQorCisKKworCisKKyMgZnVuY192ZXJzaW9uCisjIEVjaG8gdmVyc2lvbiBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KK2Z1bmNfdmVyc2lvbiAoKQoreworICAgICRTRUQgLW4gJy9eIyAnJFBST0dSQU0nIChHTlUgLywvIyB3YXJyYW50eTsgLyB7CisgICAgICAgIHMvXiMgLy8KKwlzL14jICokLy8KKyAgICAgICAgcy9cKChDKVwpWyAwLTksLV0qXCggWzEtOV1bMC05XSpcKS9cMVwyLworICAgICAgICBwCisgICAgIH0nIDwgIiRwcm9ncGF0aCIKKyAgICAgZXhpdCAkPworfQorCisjIGZ1bmNfdXNhZ2UKKyMgRWNobyBzaG9ydCBoZWxwIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LgorZnVuY191c2FnZSAoKQoreworICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC8jIC1oLyB7CisgICAgICAgIHMvXiMgLy8KKwlzL14jICokLy8KKwlzL1wkcHJvZ25hbWUvJyRwcm9nbmFtZScvCisJcAorICAgIH0nIDwgIiRwcm9ncGF0aCIKKyAgICAkRUNITworICAgICRFQ0hPICJydW4gXGAkcHJvZ25hbWUgLS1oZWxwIHwgbW9yZScgZm9yIGZ1bGwgdXNhZ2UiCisgICAgZXhpdCAkPworfQorCisjIGZ1bmNfaGVscAorIyBFY2hvIGxvbmcgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KK2Z1bmNfaGVscCAoKQoreworICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC8jIFJlcG9ydCBidWdzIHRvLyB7CisgICAgICAgIHMvXiMgLy8KKwlzL14jICokLy8KKwlzKlwkcHJvZ25hbWUqJyRwcm9nbmFtZScqCisJcypcJGhvc3QqJyIkaG9zdCInKgorCXMqXCRTSEVMTConIiRTSEVMTCInKgorCXMqXCRMVENDKiciJExUQ0MiJyoKKwlzKlwkTFRDRkxBR1MqJyIkTFRDRkxBR1MiJyoKKwlzKlwkTEQqJyIkTEQiJyoKKwlzL1wkd2l0aF9nbnVfbGQvJyIkd2l0aF9nbnVfbGQiJy8KKwlzL1wkYXV0b21ha2VfdmVyc2lvbi8nImAoYXV0b21ha2UgLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KKwlzL1wkYXV0b2NvbmZfdmVyc2lvbi8nImAoYXV0b2NvbmYgLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KKwlwCisgICAgIH0nIDwgIiRwcm9ncGF0aCIKKyAgICBleGl0ICQ/Cit9CisKKyMgZnVuY19taXNzaW5nX2FyZyBhcmduYW1lCisjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IgYW5kIHNldCBnbG9iYWwKKyMgZXhpdF9jbWQuCitmdW5jX21pc3NpbmdfYXJnICgpCit7CisgICAgZnVuY19lcnJvciAibWlzc2luZyBhcmd1bWVudCBmb3IgJDEiCisgICAgZXhpdF9jbWQ9ZXhpdAorfQorCitleGl0X2NtZD06CisKKworCisKKworIyBDaGVjayB0aGF0IHdlIGhhdmUgYSB3b3JraW5nICRFQ0hPLgoraWYgdGVzdCAiWCQxIiA9IFgtLW5vLXJlZXhlYzsgdGhlbgorICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KKyAgc2hpZnQKK2VsaWYgdGVzdCAiWCQxIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorICA6CitlbGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JzsgdGhlbgorICAjIFlpcHBlZSwgJEVDSE8gd29ya3MhCisgIDoKK2Vsc2UKKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXliZSAkRUNITyB3aWxsIHdvcmsuCisgIGV4ZWMgJFNIRUxMICIkcHJvZ3BhdGgiIC0tbm8tcmVleGVjICR7MSsiJEAifQorZmkKKworaWYgdGVzdCAiWCQxIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KKyAgIyB1c2VkIGFzIGZhbGxiYWNrIGVjaG8KKyAgc2hpZnQKKyAgY2F0IDw8RU9GCiskKgorRU9GCisgIGV4aXQgJEVYSVRfU1VDQ0VTUworZmkKKworbWFnaWM9IiUlJU1BR0lDIHZhcmlhYmxlJSUlIgorbWFnaWNfZXhlPSIlJSVNQUdJQyBFWEUgdmFyaWFibGUlJSUiCisKKyMgR2xvYmFsIHZhcmlhYmxlcy4KKyMgJG1vZGUgaXMgdW5zZXQKK25vbm9wdD0KK2V4ZWN1dGVfZGxmaWxlcz0KK3ByZXNlcnZlX2FyZ3M9CitsbzJvPSJzL1xcLmxvXCQvLiR7b2JqZXh0fS8iCitvMmxvPSJzL1xcLiR7b2JqZXh0fVwkLy5sby8iCitleHRyYWN0ZWRfYXJjaGl2ZXM9CitleHRyYWN0ZWRfc2VyaWFsPTAKKworb3B0X2RyeV9ydW49ZmFsc2UKK29wdF9kdXBsaWNhdGVfZGVwcz1mYWxzZQorb3B0X3NpbGVudD1mYWxzZQorb3B0X2RlYnVnPToKKworIyBJZiB0aGlzIHZhcmlhYmxlIGlzIHNldCBpbiBhbnkgb2YgdGhlIGFjdGlvbnMsIHRoZSBjb21tYW5kIGluIGl0CisjIHdpbGwgYmUgZXhlY2VkIGF0IHRoZSBlbmQuICBUaGlzIHByZXZlbnRzIGhlcmUtZG9jdW1lbnRzIGZyb20gYmVpbmcKKyMgbGVmdCBvdmVyIGJ5IHNoZWxscy4KK2V4ZWNfY21kPQorCisjIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiBhcmcuLi4KKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgZm9sbG93ZWQgYnkKKyMgYSBjb25maWd1cmF0aW9uIGZhaWx1cmUgaGludCwgYW5kIGV4aXQuCitmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gKCkKK3sKKyAgICBmdW5jX2Vycm9yICR7MSsiJEAifQorICAgIGZ1bmNfZXJyb3IgIlNlZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisgICAgZnVuY19mYXRhbF9lcnJvciAiRmF0YWwgY29uZmlndXJhdGlvbiBlcnJvci4iCit9CisKKworIyBmdW5jX2NvbmZpZworIyBEaXNwbGF5IHRoZSBjb25maWd1cmF0aW9uIGZvciBhbGwgdGhlIHRhZ3MgaW4gdGhpcyBzY3JpcHQuCitmdW5jX2NvbmZpZyAoKQoreworICAgIHJlX2JlZ2luY2Y9J14jICMjIyBCRUdJTiBMSUJUT09MJworICAgIHJlX2VuZGNmPSdeIyAjIyMgRU5EIExJQlRPT0wnCisKKyAgICAjIERlZmF1bHQgY29uZmlndXJhdGlvbi4KKyAgICAkU0VEICIxLC8kcmVfYmVnaW5jZiBDT05GSUcvZDsvJHJlX2VuZGNmIENPTkZJRy8sXCRkIiA8ICIkcHJvZ3BhdGgiCisKKyAgICAjIE5vdyBwcmludCB0aGUgY29uZmlndXJhdGlvbnMgZm9yIHRoZSB0YWdzLgorICAgIGZvciB0YWduYW1lIGluICR0YWdsaXN0OyBkbworICAgICAgJFNFRCAtbiAiLyRyZV9iZWdpbmNmIFRBRyBDT05GSUc6ICR0YWduYW1lXCQvLC8kcmVfZW5kY2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC9wIiA8ICIkcHJvZ3BhdGgiCisgICAgZG9uZQorCisgICAgZXhpdCAkPworfQorCisjIGZ1bmNfZmVhdHVyZXMKKyMgRGlzcGxheSB0aGUgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgorZnVuY19mZWF0dXJlcyAoKQoreworICAgICRFQ0hPICJob3N0OiAkaG9zdCIKKyAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgorICAgICAgJEVDSE8gImVuYWJsZSBzaGFyZWQgbGlicmFyaWVzIgorICAgIGVsc2UKKyAgICAgICRFQ0hPICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMiCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisgICAgICAkRUNITyAiZW5hYmxlIHN0YXRpYyBsaWJyYXJpZXMiCisgICAgZWxzZQorICAgICAgJEVDSE8gImRpc2FibGUgc3RhdGljIGxpYnJhcmllcyIKKyAgICBmaQorCisgICAgZXhpdCAkPworfQorCisjIGZ1bmNfZW5hYmxlX3RhZyB0YWduYW1lCisjIFZlcmlmeSB0aGF0IFRBR05BTUUgaXMgdmFsaWQsIGFuZCBlaXRoZXIgZmxhZyBhbiBlcnJvciBhbmQgZXhpdCwgb3IKKyMgZW5hYmxlIHRoZSBUQUdOQU1FIHRhZy4gIFdlIGFsc28gYWRkIFRBR05BTUUgdG8gdGhlIGdsb2JhbCAkdGFnbGlzdAorIyB2YXJpYWJsZSBoZXJlLgorZnVuY19lbmFibGVfdGFnICgpCit7CisgICMgR2xvYmFsIHZhcmlhYmxlOgorICB0YWduYW1lPSIkMSIKKworICByZV9iZWdpbmNmPSJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwkIgorICByZV9lbmRjZj0iXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lXCQiCisgIHNlZF9leHRyYWN0Y2Y9Ii8kcmVfYmVnaW5jZi8sLyRyZV9lbmRjZi9wIgorCisgICMgVmFsaWRhdGUgdGFnbmFtZS4KKyAgY2FzZSAkdGFnbmFtZSBpbgorICAgICpbIS1fQS1aYS16MC05LC9dKikKKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImludmFsaWQgdGFnIG5hbWU6ICR0YWduYW1lIgorICAgICAgOzsKKyAgZXNhYworCisgICMgRG9uJ3QgdGVzdCBmb3IgdGhlICJkZWZhdWx0IiBDIHRhZywgYXMgd2Uga25vdyBpdCdzCisgICMgdGhlcmUgYnV0IG5vdCBzcGVjaWFsbHkgbWFya2VkLgorICBjYXNlICR0YWduYW1lIGluCisgICAgQ0MpIDs7CisgICAgKikKKyAgICAgIGlmICRHUkVQICIkcmVfYmVnaW5jZiIgIiRwcm9ncGF0aCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJdGFnbGlzdD0iJHRhZ2xpc3QgJHRhZ25hbWUiCisKKwkjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLiAgQmUgY2FyZWZ1bCB0byBxdW90ZSB0aGUgcGF0aAorCSMgYW5kIHRoZSBzZWQgc2NyaXB0LCB0byBhdm9pZCBzcGxpdHRpbmcgb24gd2hpdGVzcGFjZSwgYnV0CisJIyBhbHNvIGRvbid0IHVzZSBub24tcG9ydGFibGUgcXVvdGVzIHdpdGhpbiBiYWNrcXVvdGVzIHdpdGhpbgorCSMgcXVvdGVzIHdlIGhhdmUgdG8gZG8gaXQgaW4gMiBzdGVwczoKKwlleHRyYWN0ZWRjZj1gJFNFRCAtbiAtZSAiJHNlZF9leHRyYWN0Y2YiIDwgIiRwcm9ncGF0aCJgCisJZXZhbCAiJGV4dHJhY3RlZGNmIgorICAgICAgZWxzZQorCWZ1bmNfZXJyb3IgImlnbm9yaW5nIHVua25vd24gdGFnICR0YWduYW1lIgorICAgICAgZmkKKyAgICAgIDs7CisgIGVzYWMKK30KKworIyBQYXJzZSBvcHRpb25zIG9uY2UsIHRob3JvdWdobHkuICBUaGlzIGNvbWVzIGFzIHNvb24gYXMgcG9zc2libGUgaW4KKyMgdGhlIHNjcmlwdCB0byBtYWtlIHRoaW5ncyBsaWtlIGBsaWJ0b29sIC0tdmVyc2lvbicgaGFwcGVuIHF1aWNrbHkuCit7CisKKyAgIyBTaG9ydGhhbmQgZm9yIC0tbW9kZT1mb28sIG9ubHkgdmFsaWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50CisgIGNhc2UgJDEgaW4KKyAgY2xlYW58Y2xlYXxjbGV8Y2wpCisgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY2xlYW4gJHsxKyIkQCJ9OyBzaGlmdAorICAgIDs7CisgIGNvbXBpbGV8Y29tcGlsfGNvbXBpfGNvbXB8Y29tfGNvfGMpCisgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY29tcGlsZSAkezErIiRAIn07IHNoaWZ0CisgICAgOzsKKyAgZXhlY3V0ZXxleGVjdXR8ZXhlY3V8ZXhlY3xleGV8ZXh8ZSkKKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBleGVjdXRlICR7MSsiJEAifTsgc2hpZnQKKyAgICA7OworICBmaW5pc2h8ZmluaXN8ZmluaXxmaW58Zml8ZikKKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBzaGlmdAorICAgIDs7CisgIGluc3RhbGx8aW5zdGFsfGluc3RhfGluc3R8aW5zfGlufGkpCisgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0CisgICAgOzsKKyAgbGlua3xsaW58bGl8bCkKKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7MSsiJEAifTsgc2hpZnQKKyAgICA7OworICB1bmluc3RhbGx8dW5pbnN0YWx8dW5pbnN0YXx1bmluc3R8dW5pbnN8dW5pbnx1bml8dW58dSkKKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1bmluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAorICAgIDs7CisgIGVzYWMKKworICAjIFBhcnNlIG5vbi1tb2RlIHNwZWNpZmljIGFyZ3VtZW50czoKKyAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbworICAgIG9wdD0iJDEiCisgICAgc2hpZnQKKworICAgIGNhc2UgJG9wdCBpbgorICAgICAgLS1jb25maWcpCQlmdW5jX2NvbmZpZwkJCQkJOzsKKworICAgICAgLS1kZWJ1ZykJCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisJCQlmdW5jX2VjaG8gImVuYWJsaW5nIHNoZWxsIHRyYWNlIG1vZGUiCisJCQlvcHRfZGVidWc9J3NldCAteCcKKwkJCSRvcHRfZGVidWcKKwkJCTs7CisKKyAgICAgIC1kbG9wZW4pCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKKwkJCWV4ZWN1dGVfZGxmaWxlcz0iJGV4ZWN1dGVfZGxmaWxlcyAkMSIKKwkJCXNoaWZ0CisJCQk7OworCisgICAgICAtLWRyeS1ydW4gfCAtbikJb3B0X2RyeV9ydW49OgkJCQkJOzsKKyAgICAgIC0tZmVhdHVyZXMpICAgICAgIGZ1bmNfZmVhdHVyZXMJCQkJCTs7CisgICAgICAtLWZpbmlzaCkJCW1vZGU9ImZpbmlzaCIJCQkJCTs7CisKKyAgICAgIC0tbW9kZSkJCXRlc3QgIiQjIiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0IiAmJiBicmVhaworCQkJY2FzZSAkMSBpbgorCQkJICAjIFZhbGlkIG1vZGUgYXJndW1lbnRzOgorCQkJICBjbGVhbikJOzsKKwkJCSAgY29tcGlsZSkJOzsKKwkJCSAgZXhlY3V0ZSkJOzsKKwkJCSAgZmluaXNoKQk7OworCQkJICBpbnN0YWxsKQk7OworCQkJICBsaW5rKQkJOzsKKwkJCSAgcmVsaW5rKQk7OworCQkJICB1bmluc3RhbGwpCTs7CisKKwkJCSAgIyBDYXRjaCBhbnl0aGluZyBlbHNlIGFzIGFuIGVycm9yCisJCQkgICopIGZ1bmNfZXJyb3IgImludmFsaWQgYXJndW1lbnQgZm9yICRvcHQiCisJCQkgICAgIGV4aXRfY21kPWV4aXQKKwkJCSAgICAgYnJlYWsKKwkJCSAgICAgOzsKKwkJICAgICAgICBlc2FjCisKKwkJCW1vZGU9IiQxIgorCQkJc2hpZnQKKwkJCTs7CisKKyAgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMpCisJCQlvcHRfZHVwbGljYXRlX2RlcHM9OgkJCQk7OworCisgICAgICAtLXF1aWV0fC0tc2lsZW50KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgorCQkJb3B0X3NpbGVudD06CisJCQk7OworCisgICAgICAtLXZlcmJvc2V8IC12KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgorCQkJb3B0X3NpbGVudD1mYWxzZQorCQkJOzsKKworICAgICAgLS10YWcpCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKKwkJCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQgJDEiCisJCQlmdW5jX2VuYWJsZV90YWcgIiQxIgkjIHRhZ25hbWUgaXMgc2V0IGhlcmUKKwkJCXNoaWZ0CisJCQk7OworCisgICAgICAjIFNlcGFyYXRlIG9wdGFyZ3MgdG8gbG9uZyBvcHRpb25zOgorICAgICAgLWRsb3Blbj0qfC0tbW9kZT0qfC0tdGFnPSopCisJCQlmdW5jX29wdF9zcGxpdCAiJG9wdCIKKwkJCXNldCBkdW1teSAiJGZ1bmNfb3B0X3NwbGl0X29wdCIgIiRmdW5jX29wdF9zcGxpdF9hcmciICR7MSsiJEAifQorCQkJc2hpZnQKKwkJCTs7CisKKyAgICAgIC1cP3wtaCkJCWZ1bmNfdXNhZ2UJCQkJCTs7CisgICAgICAtLWhlbHApCQlvcHRfaGVscD06CQkJCQk7OworICAgICAgLS12ZXJzaW9uKQlmdW5jX3ZlcnNpb24JCQkJCTs7CisKKyAgICAgIC0qKQkJZnVuY19mYXRhbF9oZWxwICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgJG9wdCciCTs7CisKKyAgICAgICopCQlub25vcHQ9IiRvcHQiCisJCQlicmVhaworCQkJOzsKKyAgICBlc2FjCisgIGRvbmUKKworCisgIGNhc2UgJGhvc3QgaW4KKyAgICAqY3lnd2luKiB8ICptaW5ndyogfCAqcHczMiogfCAqY2VnY2MqKQorICAgICAgIyBkb24ndCBlbGltaW5hdGUgZHVwbGljYXRpb25zIGluICRwb3N0ZGVwcyBhbmQgJHByZWRlcHMKKyAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9OgorICAgICAgOzsKKyAgICAqKQorICAgICAgb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwcz0kb3B0X2R1cGxpY2F0ZV9kZXBzCisgICAgICA7OworICBlc2FjCisKKyAgIyBIYXZpbmcgd2FybmVkIGFib3V0IGFsbCBtaXMtc3BlY2lmaWVkIG9wdGlvbnMsIGJhaWwgb3V0IGlmCisgICMgYW55dGhpbmcgd2FzIHdyb25nLgorICAkZXhpdF9jbWQgJEVYSVRfRkFJTFVSRQorfQorCisjIGZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaAorIyBFbnN1cmUgdGhhdCB3ZSBhcmUgdXNpbmcgbTQgbWFjcm9zLCBhbmQgbGlidG9vbCBzY3JpcHQgZnJvbSB0aGUgc2FtZQorIyByZWxlYXNlIG9mIGxpYnRvb2wuCitmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2ggKCkKK3sKKyAgaWYgdGVzdCAiJHBhY2thZ2VfcmV2aXNpb24iICE9ICIkbWFjcm9fcmV2aXNpb24iOyB0aGVuCisgICAgaWYgdGVzdCAiJFZFUlNJT04iICE9ICIkbWFjcm9fdmVyc2lvbiI7IHRoZW4KKyAgICAgIGlmIHRlc3QgLXogIiRtYWNyb192ZXJzaW9uIjsgdGhlbgorICAgICAgICBjYXQgPiYyIDw8X0xUX0VPRgorJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQorJHByb2duYW1lOiBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tIGFuIG9sZGVyIHJlbGVhc2UuCiskcHJvZ25hbWU6IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tICRQQUNLQUdFICRWRVJTSU9OCiskcHJvZ25hbWU6IGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCitfTFRfRU9GCisgICAgICBlbHNlCisgICAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCiskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCBidXQgdGhlCiskcHJvZ25hbWU6IGRlZmluaXRpb24gb2YgdGhpcyBMVF9JTklUIGNvbWVzIGZyb20gJFBBQ0tBR0UgJG1hY3JvX3ZlcnNpb24uCiskcHJvZ25hbWU6IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tICRQQUNLQUdFICRWRVJTSU9OCiskcHJvZ25hbWU6IGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCitfTFRfRU9GCisgICAgICBmaQorICAgIGVsc2UKKyAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCiskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCByZXZpc2lvbiAkcGFja2FnZV9yZXZpc2lvbiwKKyRwcm9nbmFtZTogYnV0IHRoZSBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tIHJldmlzaW9uICRtYWNyb19yZXZpc2lvbi4KKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdpdGggbWFjcm9zIGZyb20gcmV2aXNpb24gJHBhY2thZ2VfcmV2aXNpb24KKyRwcm9nbmFtZTogb2YgJFBBQ0tBR0UgJFZFUlNJT04gYW5kIHJ1biBhdXRvY29uZiBhZ2Fpbi4KK19MVF9FT0YKKyAgICBmaQorCisgICAgZXhpdCAkRVhJVF9NSVNNQVRDSAorICBmaQorfQorCisKKyMjIC0tLS0tLS0tLS0tICMjCisjIyAgICBNYWluLiAgICAjIworIyMgLS0tLS0tLS0tLS0gIyMKKworJG9wdF9oZWxwIHx8IHsKKyAgIyBTYW5pdHkgY2hlY2tzIGZpcnN0OgorICBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKKworICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiAhPSB5ZXM7IHRoZW4KKyAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gIm5vdCBjb25maWd1cmVkIHRvIGJ1aWxkIGFueSBraW5kIG9mIGxpYnJhcnkiCisgIGZpCisKKyAgdGVzdCAteiAiJG1vZGUiICYmIGZ1bmNfZmF0YWxfZXJyb3IgImVycm9yOiB5b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERS4iCisKKworICAjIERhcndpbiBzdWNrcworICBldmFsIHN0ZF9zaHJleHQ9XCIkc2hyZXh0X2NtZHNcIgorCisKKyAgIyBPbmx5IGV4ZWN1dGUgbW9kZSBpcyBhbGxvd2VkIHRvIGhhdmUgLWRsb3BlbiBmbGFncy4KKyAgaWYgdGVzdCAtbiAiJGV4ZWN1dGVfZGxmaWxlcyIgJiYgdGVzdCAiJG1vZGUiICE9IGV4ZWN1dGU7IHRoZW4KKyAgICBmdW5jX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgLWRsb3BlbiciCisgICAgJEVDSE8gIiRoZWxwIiAxPiYyCisgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisgIGZpCisKKyAgIyBDaGFuZ2UgdGhlIGhlbHAgbWVzc2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25lLgorICBnZW5lcmljX2hlbHA9IiRoZWxwIgorICBoZWxwPSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwIC0tbW9kZT0kbW9kZScgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgorfQorCisKKyMgZnVuY19sYWxpYl9wIGZpbGUKKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKKyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCitmdW5jX2xhbGliX3AgKCkKK3sKKyAgICB0ZXN0IC1mICIkMSIgJiYKKyAgICAgICRTRUQgLWUgNHEgIiQxIiAyPi9kZXYvbnVsbCBcCisgICAgICAgIHwgJEdSRVAgIl4jIEdlbmVyYXRlZCBieSAuKiRQQUNLQUdFIiA+IC9kZXYvbnVsbCAyPiYxCit9CisKKyMgZnVuY19sYWxpYl91bnNhZmVfcCBmaWxlCisjIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIGAubGEnIGxpYnJhcnkgb3IgYC5sbycgb2JqZWN0IGZpbGUuCisjIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgc2FtZSBjaGVjayBhcyBmdW5jX2xhbGliX3Agd2l0aG91dAorIyByZXNvcnRpbmcgdG8gZXh0ZXJuYWwgcHJvZ3JhbXMuICBUbyB0aGlzIGVuZCwgaXQgcmVkaXJlY3RzIHN0ZGluIGFuZAorIyBjbG9zZXMgaXQgYWZ0ZXJ3YXJkcywgd2l0aG91dCBzYXZpbmcgdGhlIG9yaWdpbmFsIGZpbGUgZGVzY3JpcHRvci4KKyMgQXMgYSBzYWZldHkgbWVhc3VyZSwgdXNlIGl0IG9ubHkgd2hlcmUgYSBuZWdhdGl2ZSByZXN1bHQgd291bGQgYmUKKyMgZmF0YWwgYW55d2F5LiAgV29ya3MgaWYgYGZpbGUnIGRvZXMgbm90IGV4aXN0LgorZnVuY19sYWxpYl91bnNhZmVfcCAoKQoreworICAgIGxhbGliX3A9bm8KKyAgICBpZiB0ZXN0IC1mICIkMSIgJiYgdGVzdCAtciAiJDEiICYmIGV4ZWMgNTwmMCA8IiQxIjsgdGhlbgorCWZvciBsYWxpYl9wX2wgaW4gMSAyIDMgNAorCWRvCisJICAgIHJlYWQgbGFsaWJfcF9saW5lCisJICAgIGNhc2UgIiRsYWxpYl9wX2xpbmUiIGluCisJCVwjXCBHZW5lcmF0ZWRcIGJ5XCAqJFBBQ0tBR0UqICkgbGFsaWJfcD15ZXM7IGJyZWFrOzsKKwkgICAgZXNhYworCWRvbmUKKwlleGVjIDA8JjUgNTwmLQorICAgIGZpCisgICAgdGVzdCAiJGxhbGliX3AiID0geWVzCit9CisKKyMgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgZmlsZQorIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdAorIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAorIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICgpCit7CisgICAgZnVuY19sYWxpYl9wICIkMSIKK30KKworIyBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgZmlsZQorIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVyIGV4ZWN1dGFibGUKKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKKyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCitmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgKCkKK3sKKyAgICBmdW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeD0KKyAgICBjYXNlICQxIGluCisgICAgKi5leGUpIDs7CisgICAgKikgZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXg9LmV4ZSA7OworICAgIGVzYWMKKyAgICAkR1JFUCAiJG1hZ2ljX2V4ZSIgIiQxJGZ1bmNfbHR3cmFwcGVyX2V4ZWNfc3VmZml4IiA+L2Rldi9udWxsIDI+JjEKK30KKworIyBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lIGZpbGUKKyMgQXNzdW1lcyBmaWxlIGlzIGFuIGx0d3JhcHBlcl9leGVjdXRhYmxlCisjIHVzZXMgJGZpbGUgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBmaWxlbmFtZSBmb3IgYQorIyB0ZW1wb3JhcnkgbHR3cmFwcGVyX3NjcmlwdC4KK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgKCkKK3sKKyAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdD0iIgorICAgIGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJDEiOyB0aGVuCisJZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJDEiICIiICIuIgorCWZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCWZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdC8kb2JqZGlyLyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fV9sdHNod3JhcHBlciIKKyAgICBmaQorfQorCisjIGZ1bmNfbHR3cmFwcGVyX3AgZmlsZQorIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBvciB3cmFwcGVyIGV4ZWN1dGFibGUKKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKKyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCitmdW5jX2x0d3JhcHBlcl9wICgpCit7CisgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgIiQxIiB8fCBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiQxIgorfQorCisKKyMgZnVuY19leGVjdXRlX2NtZHMgY29tbWFuZHMgZmFpbF9jbWQKKyMgRXhlY3V0ZSB0aWxkZS1kZWxpbWl0ZWQgQ09NTUFORFMuCisjIElmIEZBSUxfQ01EIGlzIGdpdmVuLCBldmFsIHRoYXQgdXBvbiBmYWlsdXJlLgorIyBGQUlMX0NNRCBtYXkgcmVhZC1hY2Nlc3MgdGhlIGN1cnJlbnQgY29tbWFuZCBpbiB2YXJpYWJsZSBDTUQhCitmdW5jX2V4ZWN1dGVfY21kcyAoKQoreworICAgICRvcHRfZGVidWcKKyAgICBzYXZlX2lmcz0kSUZTOyBJRlM9J34nCisgICAgZm9yIGNtZCBpbiAkMTsgZG8KKyAgICAgIElGUz0kc2F2ZV9pZnMKKyAgICAgIGV2YWwgY21kPVwiJGNtZFwiCisgICAgICBmdW5jX3Nob3dfZXZhbCAiJGNtZCIgIiR7Mi06fSIKKyAgICBkb25lCisgICAgSUZTPSRzYXZlX2lmcworfQorCisKKyMgZnVuY19zb3VyY2UgZmlsZQorIyBTb3VyY2UgRklMRSwgYWRkaW5nIGRpcmVjdG9yeSBjb21wb25lbnQgaWYgbmVjZXNzYXJ5LgorIyBOb3RlIHRoYXQgaXQgaXMgbm90IG5lY2Vzc2FyeSBvbiBjeWd3aW4vbWluZ3cgdG8gYXBwZW5kIGEgZG90IHRvCisjIEZJTEUgZXZlbiBpZiBib3RoIEZJTEUgYW5kIEZJTEUuZXhlIGV4aXN0OiBhdXRvbWF0aWMtYXBwZW5kLS5leGUKKyMgYmVoYXZpb3IgaGFwcGVucyBvbmx5IGZvciBleGVjKDMpLCBub3QgZm9yIG9wZW4oMikhICBBbHNvLCBzb3VyY2luZworIyBgRklMRS4nIGRvZXMgbm90IHdvcmsgb24gY3lnd2luIG1hbmFnZWQgbW91bnRzLgorZnVuY19zb3VyY2UgKCkKK3sKKyAgICAkb3B0X2RlYnVnCisgICAgY2FzZSAkMSBpbgorICAgICovKiB8ICpcXCopCS4gIiQxIiA7OworICAgICopCQkuICIuLyQxIiA7OworICAgIGVzYWMKK30KKworCisjIGZ1bmNfaW5mZXJfdGFnIGFyZworIyBJbmZlciB0YWdnZWQgY29uZmlndXJhdGlvbiB0byB1c2UgaWYgYW55IGFyZSBhdmFpbGFibGUgYW5kCisjIGlmIG9uZSB3YXNuJ3QgY2hvc2VuIHZpYSB0aGUgIi0tdGFnIiBjb21tYW5kIGxpbmUgb3B0aW9uLgorIyBPbmx5IGF0dGVtcHQgdGhpcyBpZiB0aGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZQorIyBjb21tYW5kIGRvZXNuJ3QgbWF0Y2ggdGhlIGRlZmF1bHQgY29tcGlsZXIuCisjIGFyZyBpcyB1c3VhbGx5IG9mIHRoZSBmb3JtICdnY2MgLi4uJworZnVuY19pbmZlcl90YWcgKCkKK3sKKyAgICAkb3B0X2RlYnVnCisgICAgaWYgdGVzdCAtbiAiJGF2YWlsYWJsZV90YWdzIiAmJiB0ZXN0IC16ICIkdGFnbmFtZSI7IHRoZW4KKyAgICAgIENDX3F1b3RlZD0KKyAgICAgIGZvciBhcmcgaW4gJENDOyBkbworICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorCUNDX3F1b3RlZD0iJENDX3F1b3RlZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisgICAgICBkb25lCisgICAgICBjYXNlICRAIGluCisgICAgICAjIEJsYW5rcyBpbiB0aGUgY29tbWFuZCBtYXkgaGF2ZSBiZWVuIHN0cmlwcGVkIGJ5IHRoZSBjYWxsaW5nIHNoZWxsLAorICAgICAgIyBidXQgbm90IGZyb20gdGhlIENDIGVudmlyb25tZW50IHZhcmlhYmxlIHdoZW4gY29uZmlndXJlIHdhcyBydW4uCisgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkRUNITyAkQ0NgICIqIHwgImAkRUNITyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRFQ0hPICRDQ19xdW90ZWRgICIqIHwgImAkRUNITyAkQ0NfcXVvdGVkYCAiKikgOzsKKyAgICAgICMgQmxhbmtzIGF0IHRoZSBzdGFydCBvZiAkYmFzZV9jb21waWxlIHdpbGwgY2F1c2UgdGhpcyB0byBmYWlsCisgICAgICAjIGlmIHdlIGRvbid0IGNoZWNrIGZvciB0aGVtIGFzIHdlbGwuCisgICAgICAqKQorCWZvciB6IGluICRhdmFpbGFibGVfdGFnczsgZG8KKwkgIGlmICRHUkVQICJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkeiQiIDwgIiRwcm9ncGF0aCIgPiAvZGV2L251bGw7IHRoZW4KKwkgICAgIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4KKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAtZSAnL14jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICckeickL3AnIDwgJHByb2dwYXRoYCIKKwkgICAgQ0NfcXVvdGVkPQorCSAgICBmb3IgYXJnIGluICRDQzsgZG8KKwkgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgb3RoZXIgc2hlbGwgbWV0YWNoYXJhY3RlcnMuCisJICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKwkgICAgICBDQ19xdW90ZWQ9IiRDQ19xdW90ZWQgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCSAgICBkb25lCisJICAgIGNhc2UgIiRAICIgaW4KKwkgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkRUNITyAkQ0NgICIqIHwgImAkRUNITyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRFQ0hPICRDQ19xdW90ZWRgICIqIHwgImAkRUNITyAkQ0NfcXVvdGVkYCAiKikKKwkgICAgICAjIFRoZSBjb21waWxlciBpbiB0aGUgYmFzZSBjb21waWxlIGNvbW1hbmQgbWF0Y2hlcworCSAgICAgICMgdGhlIG9uZSBpbiB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24uCisJICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4KKwkgICAgICB0YWduYW1lPSR6CisJICAgICAgYnJlYWsKKwkgICAgICA7OworCSAgICBlc2FjCisJICBmaQorCWRvbmUKKwkjIElmICR0YWduYW1lIHN0aWxsIGlzbid0IHNldCwgdGhlbiBubyB0YWdnZWQgY29uZmlndXJhdGlvbgorCSMgd2FzIGZvdW5kIGFuZCBsZXQgdGhlIHVzZXIga25vdyB0aGF0IHRoZSAiLS10YWciIGNvbW1hbmQKKwkjIGxpbmUgb3B0aW9uIG11c3QgYmUgdXNlZC4KKwlpZiB0ZXN0IC16ICIkdGFnbmFtZSI7IHRoZW4KKwkgIGZ1bmNfZWNobyAidW5hYmxlIHRvIGluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIgorCSAgZnVuY19mYXRhbF9lcnJvciAic3BlY2lmeSBhIHRhZyB3aXRoIFxgLS10YWcnIgorIwllbHNlCisjCSAgZnVuY192ZXJib3NlICJ1c2luZyAkdGFnbmFtZSB0YWdnZWQgY29uZmlndXJhdGlvbiIKKwlmaQorCTs7CisgICAgICBlc2FjCisgICAgZmkKK30KKworCisKKyMgZnVuY193cml0ZV9saWJ0b29sX29iamVjdCBvdXRwdXRfbmFtZSBwaWNfbmFtZSBub25waWNfbmFtZQorIyBDcmVhdGUgYSBsaWJ0b29sIG9iamVjdCBmaWxlIChhbmFsb2dvdXMgdG8gYSAiLmxhIiBmaWxlKSwKKyMgYnV0IGRvbid0IGNyZWF0ZSBpdCBpZiB3ZSdyZSBkb2luZyBhIGRyeSBydW4uCitmdW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0ICgpCit7CisgICAgd3JpdGVfbGlib2JqPSR7MX0KKyAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgorICAgICAgd3JpdGVfbG9iaj1cJyR7Mn1cJworICAgIGVsc2UKKyAgICAgIHdyaXRlX2xvYmo9bm9uZQorICAgIGZpCisKKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisgICAgICB3cml0ZV9vbGRvYmo9XCckezN9XCcKKyAgICBlbHNlCisgICAgICB3cml0ZV9vbGRvYmo9bm9uZQorICAgIGZpCisKKyAgICAkb3B0X2RyeV9ydW4gfHwgeworICAgICAgY2F0ID4ke3dyaXRlX2xpYm9ian1UIDw8RU9GCisjICR3cml0ZV9saWJvYmogLSBhIGxpYnRvb2wgb2JqZWN0IGZpbGUKKyMgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorIworIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCisjIEl0IGlzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyB0aGUgbGlicmFyeS4KKworIyBOYW1lIG9mIHRoZSBQSUMgb2JqZWN0LgorcGljX29iamVjdD0kd3JpdGVfbG9iagorCisjIE5hbWUgb2YgdGhlIG5vbi1QSUMgb2JqZWN0Citub25fcGljX29iamVjdD0kd3JpdGVfb2xkb2JqCisKK0VPRgorICAgICAgJE1WICIke3dyaXRlX2xpYm9ian1UIiAiJHt3cml0ZV9saWJvYmp9IgorICAgIH0KK30KKworIyBmdW5jX21vZGVfY29tcGlsZSBhcmcuLi4KK2Z1bmNfbW9kZV9jb21waWxlICgpCit7CisgICAgJG9wdF9kZWJ1ZworICAgICMgR2V0IHRoZSBjb21waWxhdGlvbiBjb21tYW5kIGFuZCB0aGUgc291cmNlIGZpbGUuCisgICAgYmFzZV9jb21waWxlPQorICAgIHNyY2ZpbGU9IiRub25vcHQiICAjICBhbHdheXMga2VlcCBhIG5vbi1lbXB0eSB2YWx1ZSBpbiAic3JjZmlsZSIKKyAgICBzdXBwcmVzc19vcHQ9eWVzCisgICAgc3VwcHJlc3Nfb3V0cHV0PQorICAgIGFyZ19tb2RlPW5vcm1hbAorICAgIGxpYm9iaj0KKyAgICBsYXRlcj0KKyAgICBwaWVfZmxhZz0KKworICAgIGZvciBhcmcKKyAgICBkbworICAgICAgY2FzZSAkYXJnX21vZGUgaW4KKyAgICAgIGFyZyAgKQorCSMgZG8gbm90ICJjb250aW51ZSIuICBJbnN0ZWFkLCBhZGQgdGhpcyB0byBiYXNlX2NvbXBpbGUKKwlsYXN0YXJnPSIkYXJnIgorCWFyZ19tb2RlPW5vcm1hbAorCTs7CisKKyAgICAgIHRhcmdldCApCisJbGlib2JqPSIkYXJnIgorCWFyZ19tb2RlPW5vcm1hbAorCWNvbnRpbnVlCisJOzsKKworICAgICAgbm9ybWFsICkKKwkjIEFjY2VwdCBhbnkgY29tbWFuZC1saW5lIG9wdGlvbnMuCisJY2FzZSAkYXJnIGluCisJLW8pCisJICB0ZXN0IC1uICIkbGlib2JqIiAmJiBcCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBjYW5ub3Qgc3BlY2lmeSBcYC1vJyBtb3JlIHRoYW4gb25jZSIKKwkgIGFyZ19tb2RlPXRhcmdldAorCSAgY29udGludWUKKwkgIDs7CisKKwktcGllIHwgLWZwaWUgfCAtZlBJRSkKKyAgICAgICAgICBwaWVfZmxhZz0iJHBpZV9mbGFnICRhcmciCisJICBjb250aW51ZQorCSAgOzsKKworCS1zaGFyZWQgfCAtc3RhdGljIHwgLXByZWZlci1waWMgfCAtcHJlZmVyLW5vbi1waWMpCisJICBsYXRlcj0iJGxhdGVyICRhcmciCisJICBjb250aW51ZQorCSAgOzsKKworCS1uby1zdXBwcmVzcykKKwkgIHN1cHByZXNzX29wdD1ubworCSAgY29udGludWUKKwkgIDs7CisKKwktWGNvbXBpbGVyKQorCSAgYXJnX21vZGU9YXJnICAjICB0aGUgbmV4dCBvbmUgZ29lcyBpbnRvIHRoZSAiYmFzZV9jb21waWxlIiBhcmcgbGlzdAorCSAgY29udGludWUgICAgICAjICBUaGUgY3VycmVudCAic3JjZmlsZSIgd2lsbCBlaXRoZXIgYmUgcmV0YWluZWQgb3IKKwkgIDs7ICAgICAgICAgICAgIyAgcmVwbGFjZWQgbGF0ZXIuICBJIHdvdWxkIGd1ZXNzIHRoYXQgd291bGQgYmUgYSBidWcuCisKKwktV2MsKikKKwkgIGZ1bmNfc3RyaXBuYW1lICctV2MsJyAnJyAiJGFyZyIKKwkgIGFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCSAgbGFzdGFyZz0KKwkgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPScsJworCSAgZm9yIGFyZyBpbiAkYXJnczsgZG8KKwkgICAgSUZTPSIkc2F2ZV9pZnMiCisJICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisJICAgIGxhc3Rhcmc9IiRsYXN0YXJnICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwkgIGRvbmUKKwkgIElGUz0iJHNhdmVfaWZzIgorCSAgZnVuY19zdHJpcG5hbWUgJyAnICcnICIkbGFzdGFyZyIKKwkgIGxhc3Rhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCisJICAjIEFkZCB0aGUgYXJndW1lbnRzIHRvIGJhc2VfY29tcGlsZS4KKwkgIGJhc2VfY29tcGlsZT0iJGJhc2VfY29tcGlsZSAkbGFzdGFyZyIKKwkgIGNvbnRpbnVlCisJICA7OworCisJKikKKwkgICMgQWNjZXB0IHRoZSBjdXJyZW50IGFyZ3VtZW50IGFzIHRoZSBzb3VyY2UgZmlsZS4KKwkgICMgVGhlIHByZXZpb3VzICJzcmNmaWxlIiBiZWNvbWVzIHRoZSBjdXJyZW50IGFyZ3VtZW50LgorCSAgIworCSAgbGFzdGFyZz0iJHNyY2ZpbGUiCisJICBzcmNmaWxlPSIkYXJnIgorCSAgOzsKKwllc2FjICAjICBjYXNlICRhcmcKKwk7OworICAgICAgZXNhYyAgICAjICBjYXNlICRhcmdfbW9kZQorCisgICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgdGhlIHByZXZpb3VzIGFyZ3VtZW50LgorICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGxhc3RhcmciCisgICAgICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorICAgIGRvbmUgIyBmb3IgYXJnCisKKyAgICBjYXNlICRhcmdfbW9kZSBpbgorICAgIGFyZykKKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBtdXN0IHNwZWNpZnkgYW4gYXJndW1lbnQgZm9yIC1YY29tcGlsZSIKKyAgICAgIDs7CisgICAgdGFyZ2V0KQorICAgICAgZnVuY19mYXRhbF9lcnJvciAieW91IG11c3Qgc3BlY2lmeSBhIHRhcmdldCB3aXRoIFxgLW8nIgorICAgICAgOzsKKyAgICAqKQorICAgICAgIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgb2JqZWN0LgorICAgICAgdGVzdCAteiAiJGxpYm9iaiIgJiYgeworCWZ1bmNfYmFzZW5hbWUgIiRzcmNmaWxlIgorCWxpYm9iaj0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorICAgICAgfQorICAgICAgOzsKKyAgICBlc2FjCisKKyAgICAjIFJlY29nbml6ZSBzZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzLgorICAgICMgSWYgdGhlIHVzZXIgc3BlY2lmaWVzIC1vIGZpbGUubywgaXQgaXMgcmVwbGFjZWQgd2l0aCBmaWxlLmxvCisgICAgY2FzZSAkbGlib2JqIGluCisgICAgKi5bY0NGU2lmbXNvXSB8IFwKKyAgICAqLmFkYSB8ICouYWRiIHwgKi5hZHMgfCAqLmFzbSB8IFwKKyAgICAqLmMrKyB8ICouY2MgfCAqLmlpIHwgKi5jbGFzcyB8ICouY3BwIHwgKi5jeHggfCBcCisgICAgKi5bZkZdWzA5XT8gfCAqLmZvciB8ICouamF2YSB8ICoub2JqIHwgKi5zeCkKKyAgICAgIGZ1bmNfeGZvcm0gIiRsaWJvYmoiCisgICAgICBsaWJvYmo9JGZ1bmNfeGZvcm1fcmVzdWx0CisgICAgICA7OworICAgIGVzYWMKKworICAgIGNhc2UgJGxpYm9iaiBpbgorICAgICoubG8pIGZ1bmNfbG8ybyAiJGxpYm9iaiI7IG9iaj0kZnVuY19sbzJvX3Jlc3VsdCA7OworICAgICopCisgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZGV0ZXJtaW5lIG5hbWUgb2YgbGlicmFyeSBvYmplY3QgZnJvbSBcYCRsaWJvYmonIgorICAgICAgOzsKKyAgICBlc2FjCisKKyAgICBmdW5jX2luZmVyX3RhZyAkYmFzZV9jb21waWxlCisKKyAgICBmb3IgYXJnIGluICRsYXRlcjsgZG8KKyAgICAgIGNhc2UgJGFyZyBpbgorICAgICAgLXNoYXJlZCkKKwl0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYgXAorCSAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkiCisJYnVpbGRfb2xkX2xpYnM9bm8KKwljb250aW51ZQorCTs7CisKKyAgICAgIC1zdGF0aWMpCisJYnVpbGRfbGlidG9vbF9saWJzPW5vCisJYnVpbGRfb2xkX2xpYnM9eWVzCisJY29udGludWUKKwk7OworCisgICAgICAtcHJlZmVyLXBpYykKKwlwaWNfbW9kZT15ZXMKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1wcmVmZXItbm9uLXBpYykKKwlwaWNfbW9kZT1ubworCWNvbnRpbnVlCisJOzsKKyAgICAgIGVzYWMKKyAgICBkb25lCisKKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkbGlib2JqIgorICAgIHRlc3QgIlgkbGlib2JqIiAhPSAiWCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIgXAorICAgICAgJiYgJEVDSE8gIlgkbGlib2JqIiB8ICRHUkVQICdbXX4jXip7fTs8Pj8iJyInIicJICYoKXxgJFtdJyBcCisgICAgICAmJiBmdW5jX3dhcm5pbmcgImxpYm9iaiBuYW1lIFxgJGxpYm9iaicgbWF5IG5vdCBjb250YWluIHNoZWxsIHNwZWNpYWwgY2hhcmFjdGVycy4iCisgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG9iaiIgIi8iICIiCisgICAgb2JqbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorICAgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorICAgIGxvYmo9JHt4ZGlyfSRvYmpkaXIvJG9iam5hbWUKKworICAgIHRlc3QgLXogIiRiYXNlX2NvbXBpbGUiICYmIFwKKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIGNvbXBpbGF0aW9uIGNvbW1hbmQiCisKKyAgICAjIERlbGV0ZSBhbnkgbGVmdG92ZXIgbGlicmFyeSBvYmplY3RzLgorICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKyAgICAgIHJlbW92ZWxpc3Q9IiRvYmogJGxvYmogJGxpYm9iaiAke2xpYm9ian1UIgorICAgIGVsc2UKKyAgICAgIHJlbW92ZWxpc3Q9IiRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKKyAgICBmaQorCisgICAgIyBPbiBDeWd3aW4gdGhlcmUncyBubyAicmVhbCIgUElDIGZsYWcgc28gd2UgbXVzdCBidWlsZCBib3RoIG9iamVjdCB0eXBlcworICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQorICAgICAgcGljX21vZGU9ZGVmYXVsdAorICAgICAgOzsKKyAgICBlc2FjCisgICAgaWYgdGVzdCAiJHBpY19tb2RlIiA9IG5vICYmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KKyAgICAgICMgbm9uLVBJQyBjb2RlIGluIHNoYXJlZCBsaWJyYXJpZXMgaXMgbm90IHN1cHBvcnRlZAorICAgICAgcGljX21vZGU9ZGVmYXVsdAorICAgIGZpCisKKyAgICAjIENhbGN1bGF0ZSB0aGUgZmlsZW5hbWUgb2YgdGhlIG91dHB1dCBvYmplY3QgaWYgY29tcGlsZXIgZG9lcworICAgICMgbm90IHN1cHBvcnQgLW8gd2l0aCAtYworICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0gbm87IHRoZW4KKyAgICAgIG91dHB1dF9vYmo9YCRFQ0hPICJYJHNyY2ZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJyAtZSAncyVcLlteLl0qJCUlJ2AuJHtvYmpleHR9CisgICAgICBsb2NrZmlsZT0iJG91dHB1dF9vYmoubG9jayIKKyAgICBlbHNlCisgICAgICBvdXRwdXRfb2JqPQorICAgICAgbmVlZF9sb2Nrcz1ubworICAgICAgbG9ja2ZpbGU9CisgICAgZmkKKworICAgICMgTG9jayB0aGlzIGNyaXRpY2FsIHNlY3Rpb24gaWYgaXQgaXMgbmVlZGVkCisgICAgIyBXZSB1c2UgdGhpcyBzY3JpcHQgZmlsZSB0byBtYWtlIHRoZSBsaW5rLCBpdCBhdm9pZHMgY3JlYXRpbmcgYSBuZXcgZmlsZQorICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHllczsgdGhlbgorICAgICAgdW50aWwgJG9wdF9kcnlfcnVuIHx8IGxuICIkcHJvZ3BhdGgiICIkbG9ja2ZpbGUiIDI+L2Rldi9udWxsOyBkbworCWZ1bmNfZWNobyAiV2FpdGluZyBmb3IgJGxvY2tmaWxlIHRvIGJlIHJlbW92ZWQiCisJc2xlZXAgMgorICAgICAgZG9uZQorICAgIGVsaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybjsgdGhlbgorICAgICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxlIjsgdGhlbgorCSRFQ0hPICJcCisqKiogRVJST1IsICRsb2NrZmlsZSBleGlzdHMgYW5kIGNvbnRhaW5zOgorYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCisKK1RoaXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUKK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0ZXIKK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCitjb21waWxlci4iCisKKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0CisJZXhpdCAkRVhJVF9GQUlMVVJFCisgICAgICBmaQorICAgICAgcmVtb3ZlbGlzdD0iJHJlbW92ZWxpc3QgJG91dHB1dF9vYmoiCisgICAgICAkRUNITyAiJHNyY2ZpbGUiID4gIiRsb2NrZmlsZSIKKyAgICBmaQorCisgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAorICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRsb2NrZmlsZSIKKyAgICB0cmFwICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnIDEgMiAxNQorCisgICAgaWYgdGVzdCAtbiAiJGZpeF9zcmNmaWxlX3BhdGgiOyB0aGVuCisgICAgICBldmFsIHNyY2ZpbGU9XCIkZml4X3NyY2ZpbGVfcGF0aFwiCisgICAgZmkKKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkc3JjZmlsZSIKKyAgICBxc3JjZmlsZT0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQKKworICAgICMgT25seSBidWlsZCBhIFBJQyBvYmplY3QgaWYgd2UgYXJlIGJ1aWxkaW5nIGxpYnRvb2wgbGlicmFyaWVzLgorICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisgICAgICAjIFdpdGhvdXQgdGhpcyBhc3NpZ25tZW50LCBiYXNlX2NvbXBpbGUgZ2V0cyBlbXB0aWVkLgorICAgICAgZmJzZF9oaWRlb3VzX3NoX2J1Zz0kYmFzZV9jb21waWxlCisKKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0gbm87IHRoZW4KKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSAkcGljX2ZsYWciCisgICAgICBlbHNlCisJIyBEb24ndCBidWlsZCBQSUMgY29kZQorCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlIgorICAgICAgZmkKKworICAgICAgZnVuY19ta2Rpcl9wICIkeGRpciRvYmpkaXIiCisKKyAgICAgIGlmIHRlc3QgLXogIiRvdXRwdXRfb2JqIjsgdGhlbgorCSMgUGxhY2UgUElDIG9iamVjdHMgaW4gJG9iamRpcgorCWNvbW1hbmQ9IiRjb21tYW5kIC1vICRsb2JqIgorICAgICAgZmkKKworICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxlICIkY29tbWFuZCIJXAorICAgICAgICAgICd0ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnCisKKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm4gJiYKKwkgdGVzdCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KKwkkRUNITyAiXAorKioqIEVSUk9SLCAkbG9ja2ZpbGUgY29udGFpbnM6CitgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKKworYnV0IGl0IHNob3VsZCBjb250YWluOgorJHNyY2ZpbGUKKworVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQordGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQoreW91ciBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4gIElmIHlvdQorcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgorYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKK2NvbXBpbGVyLiIKKworCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKwlleGl0ICRFWElUX0ZBSUxVUkUKKyAgICAgIGZpCisKKyAgICAgICMgSnVzdCBtb3ZlIHRoZSBvYmplY3QgaWYgbmVlZGVkLCB0aGVuIGdvIG9uIHRvIGNvbXBpbGUgdGhlIG5leHQgb25lCisgICAgICBpZiB0ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAhPSAiWCRsb2JqIjsgdGhlbgorCWZ1bmNfc2hvd19ldmFsICckTVYgIiRvdXRwdXRfb2JqIiAiJGxvYmoiJyBcCisJICAnZXJyb3I9JD87ICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJGVycm9yJworICAgICAgZmkKKworICAgICAgIyBBbGxvdyBlcnJvciBtZXNzYWdlcyBvbmx5IGZyb20gdGhlIGZpcnN0IGNvbXBpbGF0aW9uLgorICAgICAgaWYgdGVzdCAiJHN1cHByZXNzX29wdCIgPSB5ZXM7IHRoZW4KKwlzdXBwcmVzc19vdXRwdXQ9JyA+L2Rldi9udWxsIDI+JjEnCisgICAgICBmaQorICAgIGZpCisKKyAgICAjIE9ubHkgYnVpbGQgYSBwb3NpdGlvbi1kZXBlbmRlbnQgb2JqZWN0IGlmIHdlIGJ1aWxkIG9sZCBsaWJyYXJpZXMuCisgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorICAgICAgaWYgdGVzdCAiJHBpY19tb2RlIiAhPSB5ZXM7IHRoZW4KKwkjIERvbid0IGJ1aWxkIFBJQyBjb2RlCisJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUkcGllX2ZsYWciCisgICAgICBlbHNlCisJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgorICAgICAgZmkKKyAgICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0geWVzOyB0aGVuCisJY29tbWFuZD0iJGNvbW1hbmQgLW8gJG9iaiIKKyAgICAgIGZpCisKKyAgICAgICMgU3VwcHJlc3MgY29tcGlsZXIgb3V0cHV0IGlmIHdlIGFscmVhZHkgZGlkIGEgUElDIGNvbXBpbGF0aW9uLgorICAgICAgY29tbWFuZD0iJGNvbW1hbmQkc3VwcHJlc3Nfb3V0cHV0IgorICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxlICIkY29tbWFuZCIgXAorICAgICAgICAnJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJworCisgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuICYmCisJIHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJYJHNyY2ZpbGUiOyB0aGVuCisJJEVDSE8gIlwKKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGNvbnRhaW5zOgorYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCisKK2J1dCBpdCBzaG91bGQgY29udGFpbjoKKyRzcmNmaWxlCisKK1RoaXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUKK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0ZXIKK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCitjb21waWxlci4iCisKKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0CisJZXhpdCAkRVhJVF9GQUlMVVJFCisgICAgICBmaQorCisgICAgICAjIEp1c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZAorICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0X29iaiIgIT0gIlgkb2JqIjsgdGhlbgorCWZ1bmNfc2hvd19ldmFsICckTVYgIiRvdXRwdXRfb2JqIiAiJG9iaiInIFwKKwkgICdlcnJvcj0kPzsgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3InCisgICAgICBmaQorICAgIGZpCisKKyAgICAkb3B0X2RyeV9ydW4gfHwgeworICAgICAgZnVuY193cml0ZV9saWJ0b29sX29iamVjdCAiJGxpYm9iaiIgIiRvYmpkaXIvJG9iam5hbWUiICIkb2JqbmFtZSIKKworICAgICAgIyBVbmxvY2sgdGhlIGNyaXRpY2FsIHNlY3Rpb24gaWYgaXQgd2FzIGxvY2tlZAorICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCisJcmVtb3ZlbGlzdD0kbG9ja2ZpbGUKKyAgICAgICAgJFJNICIkbG9ja2ZpbGUiCisgICAgICBmaQorICAgIH0KKworICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworfQorCiskb3B0X2hlbHAgfHwgewordGVzdCAiJG1vZGUiID0gY29tcGlsZSAmJiBmdW5jX21vZGVfY29tcGlsZSAkezErIiRAIn0KK30KKworZnVuY19tb2RlX2hlbHAgKCkKK3sKKyAgICAjIFdlIG5lZWQgdG8gZGlzcGxheSBoZWxwIGZvciBlYWNoIG9mIHRoZSBtb2Rlcy4KKyAgICBjYXNlICRtb2RlIGluCisgICAgICAiIikKKyAgICAgICAgIyBHZW5lcmljIGhlbHAgaXMgZXh0cmFjdGVkIGZyb20gdGhlIHVzYWdlIGNvbW1lbnRzCisgICAgICAgICMgYXQgdGhlIHN0YXJ0IG9mIHRoaXMgZmlsZS4KKyAgICAgICAgZnVuY19oZWxwCisgICAgICAgIDs7CisKKyAgICAgIGNsZWFuKQorICAgICAgICAkRUNITyBcCisiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9Y2xlYW4gUk0gW1JNLU9QVElPTl0uLi4gRklMRS4uLgorCitSZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5LgorCitSTSBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvZ3JhbSB0byB1c2UgdG8gZGVsZXRlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEZJTEUKKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKK3RvIFJNLgorCitJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBvYmplY3Qgb3IgcHJvZ3JhbSwgYWxsIHRoZSBmaWxlcyBhc3NvY2lhdGVkCit3aXRoIGl0IGFyZSBkZWxldGVkLiBPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBSTS4iCisgICAgICAgIDs7CisKKyAgICAgIGNvbXBpbGUpCisgICAgICAkRUNITyBcCisiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9Y29tcGlsZSBDT01QSUxFLUNPTU1BTkQuLi4gU09VUkNFRklMRQorCitDb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgbGlicmFyeSBvYmplY3QuCisKK1RoaXMgbW9kZSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgorCisgIC1vIE9VVFBVVC1GSUxFICAgIHNldCB0aGUgb3V0cHV0IGZpbGUgbmFtZSB0byBPVVRQVVQtRklMRQorICAtbm8tc3VwcHJlc3MgICAgICBkbyBub3Qgc3VwcHJlc3MgY29tcGlsZXIgb3V0cHV0IGZvciBtdWx0aXBsZSBwYXNzZXMKKyAgLXByZWZlci1waWMgICAgICAgdHJ5IHRvIGJ1aWxkaW5nIFBJQyBvYmplY3RzIG9ubHkKKyAgLXByZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkaW5nIG5vbi1QSUMgb2JqZWN0cyBvbmx5CisgIC1zaGFyZWQgICAgICAgICAgIGRvIG5vdCBidWlsZCBhIFxgLm8nIGZpbGUgc3VpdGFibGUgZm9yIHN0YXRpYyBsaW5raW5nCisgIC1zdGF0aWMgICAgICAgICAgIG9ubHkgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZworCitDT01QSUxFLUNPTU1BTkQgaXMgYSBjb21tYW5kIHRvIGJlIHVzZWQgaW4gY3JlYXRpbmcgYSBcYHN0YW5kYXJkJyBvYmplY3QgZmlsZQorZnJvbSB0aGUgZ2l2ZW4gU09VUkNFRklMRS4KKworVGhlIG91dHB1dCBmaWxlIG5hbWUgaXMgZGV0ZXJtaW5lZCBieSByZW1vdmluZyB0aGUgZGlyZWN0b3J5IGNvbXBvbmVudCBmcm9tCitTT1VSQ0VGSUxFLCB0aGVuIHN1YnN0aXR1dGluZyB0aGUgQyBzb3VyY2UgY29kZSBzdWZmaXggXGAuYycgd2l0aCB0aGUKK2xpYnJhcnkgb2JqZWN0IHN1ZmZpeCwgXGAubG8nLiIKKyAgICAgICAgOzsKKworICAgICAgZXhlY3V0ZSkKKyAgICAgICAgJEVDSE8gXAorIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWV4ZWN1dGUgQ09NTUFORCBbQVJHU10uLi4KKworQXV0b21hdGljYWxseSBzZXQgbGlicmFyeSBwYXRoLCB0aGVuIHJ1biBhIHByb2dyYW0uCisKK1RoaXMgbW9kZSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgorCisgIC1kbG9wZW4gRklMRSAgICAgIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgRklMRSB0byB0aGUgbGlicmFyeSBwYXRoCisKK1RoaXMgbW9kZSBzZXRzIHRoZSBsaWJyYXJ5IHBhdGggZW52aXJvbm1lbnQgdmFyaWFibGUgYWNjb3JkaW5nIHRvIFxgLWRsb3BlbicKK2ZsYWdzLgorCitJZiBhbnkgb2YgdGhlIEFSR1MgYXJlIGxpYnRvb2wgZXhlY3V0YWJsZSB3cmFwcGVycywgdGhlbiB0aGV5IGFyZSB0cmFuc2xhdGVkCitpbnRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgdW5pbnN0YWxsZWQgYmluYXJ5LCBhbmQgYW55IG9mIHRoZWlyIHJlcXVpcmVkIGxpYnJhcnkKK2RpcmVjdG9yaWVzIGFyZSBhZGRlZCB0byB0aGUgbGlicmFyeSBwYXRoLgorCitUaGVuLCBDT01NQU5EIGlzIGV4ZWN1dGVkLCB3aXRoIEFSR1MgYXMgYXJndW1lbnRzLiIKKyAgICAgICAgOzsKKworICAgICAgZmluaXNoKQorICAgICAgICAkRUNITyBcCisiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9ZmluaXNoIFtMSUJESVJdLi4uCisKK0NvbXBsZXRlIHRoZSBpbnN0YWxsYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMuCisKK0VhY2ggTElCRElSIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgbGlidG9vbCBsaWJyYXJpZXMuCisKK1RoZSBjb21tYW5kcyB0aGF0IHRoaXMgbW9kZSBleGVjdXRlcyBtYXkgcmVxdWlyZSBzdXBlcnVzZXIgcHJpdmlsZWdlcy4gIFVzZQordGhlIFxgLS1kcnktcnVuJyBvcHRpb24gaWYgeW91IGp1c3Qgd2FudCB0byBzZWUgd2hhdCB3b3VsZCBiZSBleGVjdXRlZC4iCisgICAgICAgIDs7CisKKyAgICAgIGluc3RhbGwpCisgICAgICAgICRFQ0hPIFwKKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1pbnN0YWxsIElOU1RBTEwtQ09NTUFORC4uLgorCitJbnN0YWxsIGV4ZWN1dGFibGVzIG9yIGxpYnJhcmllcy4KKworSU5TVEFMTC1DT01NQU5EIGlzIHRoZSBpbnN0YWxsYXRpb24gY29tbWFuZC4gIFRoZSBmaXJzdCBjb21wb25lbnQgc2hvdWxkIGJlCitlaXRoZXIgdGhlIFxgaW5zdGFsbCcgb3IgXGBjcCcgcHJvZ3JhbS4KKworVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIElOU1RBTEwtQ09NTUFORCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6CisKKyAgLWluc3QtcHJlZml4IFBSRUZJWC1ESVIgIFVzZSBQUkVGSVgtRElSIGFzIGEgc3RhZ2luZyBhcmVhIGZvciBpbnN0YWxsYXRpb24KKworVGhlIHJlc3Qgb2YgdGhlIGNvbXBvbmVudHMgYXJlIGludGVycHJldGVkIGFzIGFyZ3VtZW50cyB0byB0aGF0IGNvbW1hbmQgKG9ubHkKK0JTRC1jb21wYXRpYmxlIGluc3RhbGwgb3B0aW9ucyBhcmUgcmVjb2duaXplZCkuIgorICAgICAgICA7OworCisgICAgICBsaW5rKQorICAgICAgICAkRUNITyBcCisiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9bGluayBMSU5LLUNPTU1BTkQuLi4KKworTGluayBvYmplY3QgZmlsZXMgb3IgbGlicmFyaWVzIHRvZ2V0aGVyIHRvIGZvcm0gYW5vdGhlciBsaWJyYXJ5LCBvciB0bworY3JlYXRlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbS4KKworTElOSy1DT01NQU5EIGlzIGEgY29tbWFuZCB1c2luZyB0aGUgQyBjb21waWxlciB0aGF0IHlvdSB3b3VsZCB1c2UgdG8gY3JlYXRlCithIHByb2dyYW0gZnJvbSBzZXZlcmFsIG9iamVjdCBmaWxlcy4KKworVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIExJTkstQ09NTUFORCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6CisKKyAgLWFsbC1zdGF0aWMgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgYXQgYWxsCisgIC1hdm9pZC12ZXJzaW9uICAgIGRvIG5vdCBhZGQgYSB2ZXJzaW9uIHN1ZmZpeCBpZiBwb3NzaWJsZQorICAtZGxvcGVuIEZJTEUgICAgICBcYC1kbHByZW9wZW4nIEZJTEUgaWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkIGF0IHJ1bnRpbWUKKyAgLWRscHJlb3BlbiBGSUxFICAgbGluayBpbiBGSUxFIGFuZCBhZGQgaXRzIHN5bWJvbHMgdG8gbHRfcHJlbG9hZGVkX3N5bWJvbHMKKyAgLWV4cG9ydC1keW5hbWljICAgYWxsb3cgc3ltYm9scyBmcm9tIE9VVFBVVC1GSUxFIHRvIGJlIHJlc29sdmVkIHdpdGggZGxzeW0oMykKKyAgLWV4cG9ydC1zeW1ib2xzIFNZTUZJTEUKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHRvIGV4cG9ydCBvbmx5IHRoZSBzeW1ib2xzIGxpc3RlZCBpbiBTWU1GSUxFCisgIC1leHBvcnQtc3ltYm9scy1yZWdleCBSRUdFWAorICAgICAgICAgICAgICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMgbWF0Y2hpbmcgUkVHRVgKKyAgLUxMSUJESVIgICAgICAgICAgc2VhcmNoIExJQkRJUiBmb3IgcmVxdWlyZWQgaW5zdGFsbGVkIGxpYnJhcmllcworICAtbE5BTUUgICAgICAgICAgICBPVVRQVVQtRklMRSByZXF1aXJlcyB0aGUgaW5zdGFsbGVkIGxpYnJhcnkgbGliTkFNRQorICAtbW9kdWxlICAgICAgICAgICBidWlsZCBhIGxpYnJhcnkgdGhhdCBjYW4gZGxvcGVuZWQKKyAgLW5vLWZhc3QtaW5zdGFsbCAgZGlzYWJsZSB0aGUgZmFzdC1pbnN0YWxsIG1vZGUKKyAgLW5vLWluc3RhbGwgICAgICAgbGluayBhIG5vdC1pbnN0YWxsYWJsZSBleGVjdXRhYmxlCisgIC1uby11bmRlZmluZWQgICAgIGRlY2xhcmUgdGhhdCBhIGxpYnJhcnkgZG9lcyBub3QgcmVmZXIgdG8gZXh0ZXJuYWwgc3ltYm9scworICAtbyBPVVRQVVQtRklMRSAgICBjcmVhdGUgT1VUUFVULUZJTEUgZnJvbSB0aGUgc3BlY2lmaWVkIG9iamVjdHMKKyAgLW9iamVjdGxpc3QgRklMRSAgVXNlIGEgbGlzdCBvZiBvYmplY3QgZmlsZXMgZm91bmQgaW4gRklMRSB0byBzcGVjaWZ5IG9iamVjdHMKKyAgLXByZWNpb3VzLWZpbGVzLXJlZ2V4IFJFR0VYCisgICAgICAgICAgICAgICAgICAgIGRvbid0IHJlbW92ZSBvdXRwdXQgZmlsZXMgbWF0Y2hpbmcgUkVHRVgKKyAgLXJlbGVhc2UgUkVMRUFTRSAgc3BlY2lmeSBwYWNrYWdlIHJlbGVhc2UgaW5mb3JtYXRpb24KKyAgLXJwYXRoIExJQkRJUiAgICAgdGhlIGNyZWF0ZWQgbGlicmFyeSB3aWxsIGV2ZW50dWFsbHkgYmUgaW5zdGFsbGVkIGluIExJQkRJUgorICAtUlsgXUxJQkRJUiAgICAgICBhZGQgTElCRElSIHRvIHRoZSBydW50aW1lIHBhdGggb2YgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcworICAtc2hhcmVkICAgICAgICAgICBvbmx5IGRvIGR5bmFtaWMgbGlua2luZyBvZiBsaWJ0b29sIGxpYnJhcmllcworICAtc2hyZXh0IFNVRkZJWCAgICBvdmVycmlkZSB0aGUgc3RhbmRhcmQgc2hhcmVkIGxpYnJhcnkgZmlsZSBleHRlbnNpb24KKyAgLXN0YXRpYyAgICAgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgb2YgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKyAgLXN0YXRpYy1saWJ0b29sLWxpYnMKKyAgICAgICAgICAgICAgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKKyAgLXZlcnNpb24taW5mbyBDVVJSRU5UWzpSRVZJU0lPTls6QUdFXV0KKyAgICAgICAgICAgICAgICAgICAgc3BlY2lmeSBsaWJyYXJ5IHZlcnNpb24gaW5mbyBbZWFjaCB2YXJpYWJsZSBkZWZhdWx0cyB0byAwXQorICAtd2VhayBMSUJOQU1FICAgICBkZWNsYXJlIHRoYXQgdGhlIHRhcmdldCBwcm92aWRlcyB0aGUgTElCTkFNRSBpbnRlcmZhY2UKKworQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0nKSBhcmUgaWdub3JlZC4KKworRXZlcnkgb3RoZXIgYXJndW1lbnQgaXMgdHJlYXRlZCBhcyBhIGZpbGVuYW1lLiAgRmlsZXMgZW5kaW5nIGluIFxgLmxhJyBhcmUKK3RyZWF0ZWQgYXMgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVzIGFyZSBzdGFuZGFyZCBvciBsaWJyYXJ5CitvYmplY3QgZmlsZXMuCisKK0lmIHRoZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxhJywgdGhlbiBhIGxpYnRvb2wgbGlicmFyeSBpcyBjcmVhdGVkLAorb25seSBsaWJyYXJ5IG9iamVjdHMgKFxgLmxvJyBmaWxlcykgbWF5IGJlIHNwZWNpZmllZCwgYW5kIFxgLXJwYXRoJyBpcworcmVxdWlyZWQsIGV4Y2VwdCB3aGVuIGNyZWF0aW5nIGEgY29udmVuaWVuY2UgbGlicmFyeS4KKworSWYgT1VUUFVULUZJTEUgZW5kcyBpbiBcYC5hJyBvciBcYC5saWInLCB0aGVuIGEgc3RhbmRhcmQgbGlicmFyeSBpcyBjcmVhdGVkCit1c2luZyBcYGFyJyBhbmQgXGByYW5saWInLCBvciBvbiBXaW5kb3dzIHVzaW5nIFxgbGliJy4KKworSWYgT1VUUFVULUZJTEUgZW5kcyBpbiBcYC5sbycgb3IgXGAuJHtvYmpleHR9JywgdGhlbiBhIHJlbG9hZGFibGUgb2JqZWN0IGZpbGUKK2lzIGNyZWF0ZWQsIG90aGVyd2lzZSBhbiBleGVjdXRhYmxlIHByb2dyYW0gaXMgY3JlYXRlZC4iCisgICAgICAgIDs7CisKKyAgICAgIHVuaW5zdGFsbCkKKyAgICAgICAgJEVDSE8gXAorIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPXVuaW5zdGFsbCBSTSBbUk0tT1BUSU9OXS4uLiBGSUxFLi4uCisKK1JlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgorCitSTSBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvZ3JhbSB0byB1c2UgdG8gZGVsZXRlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEZJTEUKKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKK3RvIFJNLgorCitJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCBhcmUgZGVsZXRlZC4KK090aGVyd2lzZSwgb25seSBGSUxFIGl0c2VsZiBpcyBkZWxldGVkIHVzaW5nIFJNLiIKKyAgICAgICAgOzsKKworICAgICAgKikKKyAgICAgICAgZnVuY19mYXRhbF9oZWxwICJpbnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG1vZGUnIgorICAgICAgICA7OworICAgIGVzYWMKKworICAgICRFQ0hPCisgICAgJEVDSE8gIlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIG1vZGVzLiIKKworICAgIGV4aXQgJD8KK30KKworICAjIE5vdyB0aGF0IHdlJ3ZlIGNvbGxlY3RlZCBhIHBvc3NpYmxlIC0tbW9kZSBhcmcsIHNob3cgaGVscCBpZiBuZWNlc3NhcnkKKyAgJG9wdF9oZWxwICYmIGZ1bmNfbW9kZV9oZWxwCisKKworIyBmdW5jX21vZGVfZXhlY3V0ZSBhcmcuLi4KK2Z1bmNfbW9kZV9leGVjdXRlICgpCit7CisgICAgJG9wdF9kZWJ1ZworICAgICMgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBjb21tYW5kIG5hbWUuCisgICAgY21kPSIkbm9ub3B0IgorICAgIHRlc3QgLXogIiRjbWQiICYmIFwKKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIENPTU1BTkQiCisKKyAgICAjIEhhbmRsZSAtZGxvcGVuIGZsYWdzIGltbWVkaWF0ZWx5LgorICAgIGZvciBmaWxlIGluICRleGVjdXRlX2RsZmlsZXM7IGRvCisgICAgICB0ZXN0IC1mICIkZmlsZSIgXAorCXx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMgbm90IGEgZmlsZSIKKworICAgICAgZGlyPQorICAgICAgY2FzZSAkZmlsZSBpbgorICAgICAgKi5sYSkKKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgorCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCisJICB8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorCisJIyBSZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCisJZGxuYW1lPQorCWxpYnJhcnlfbmFtZXM9CisJZnVuY19zb3VyY2UgIiRmaWxlIgorCisJIyBTa2lwIHRoaXMgbGlicmFyeSBpZiBpdCBjYW5ub3QgYmUgZGxvcGVuZWQuCisJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KKwkgICMgV2FybiBpZiBpdCB3YXMgYSBzaGFyZWQgbGlicmFyeS4KKwkgIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJiBcCisJICAgIGZ1bmNfd2FybmluZyAiXGAkZmlsZScgd2FzIG5vdCBsaW5rZWQgd2l0aCBcYC1leHBvcnQtZHluYW1pYyciCisJICBjb250aW51ZQorCWZpCisKKwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCisJaWYgdGVzdCAtZiAiJGRpci8kb2JqZGlyLyRkbG5hbWUiOyB0aGVuCisJICBkaXI9IiRkaXIvJG9iamRpciIKKwllbHNlCisJICBpZiB0ZXN0ICEgLWYgIiRkaXIvJGRsbmFtZSI7IHRoZW4KKwkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgXGAkZGxuYW1lJyBpbiBcYCRkaXInIG9yIFxgJGRpci8kb2JqZGlyJyIKKwkgIGZpCisJZmkKKwk7OworCisgICAgICAqLmxvKQorCSMgSnVzdCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSAubG8gZmlsZS4KKwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCTs7CisKKyAgICAgICopCisJZnVuY193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG5vbi1saWJ0b29sIGxpYnJhcmllcyBhbmQgb2JqZWN0cyIKKwljb250aW51ZQorCTs7CisgICAgICBlc2FjCisKKyAgICAgICMgR2V0IHRoZSBhYnNvbHV0ZSBwYXRobmFtZS4KKyAgICAgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKyAgICAgIHRlc3QgLW4gIiRhYnNkaXIiICYmIGRpcj0iJGFic2RpciIKKworICAgICAgIyBOb3cgYWRkIHRoZSBkaXJlY3RvcnkgdG8gc2hsaWJwYXRoX3Zhci4KKyAgICAgIGlmIGV2YWwgInRlc3QgLXogXCJcJCRzaGxpYnBhdGhfdmFyXCIiOyB0aGVuCisJZXZhbCAiJHNobGlicGF0aF92YXI9XCJcJGRpclwiIgorICAgICAgZWxzZQorCWV2YWwgIiRzaGxpYnBhdGhfdmFyPVwiXCRkaXI6XCQkc2hsaWJwYXRoX3ZhclwiIgorICAgICAgZmkKKyAgICBkb25lCisKKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHNobGlicGF0aF92YXIKKyAgICAjIHJhdGhlciB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisgICAgbGlidG9vbF9leGVjdXRlX21hZ2ljPSIkbWFnaWMiCisKKyAgICAjIENoZWNrIGlmIGFueSBvZiB0aGUgYXJndW1lbnRzIGlzIGEgd3JhcHBlciBzY3JpcHQuCisgICAgYXJncz0KKyAgICBmb3IgZmlsZQorICAgIGRvCisgICAgICBjYXNlICRmaWxlIGluCisgICAgICAtKikgOzsKKyAgICAgICopCisJIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgorCWlmIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkZmlsZSI7IHRoZW4KKwkgIGZ1bmNfc291cmNlICIkZmlsZSIKKwkgICMgVHJhbnNmb3JtIGFyZyB0byB3cmFwcGVkIG5hbWUuCisJICBmaWxlPSIkcHJvZ2Rpci8kcHJvZ3JhbSIKKwllbGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCisJICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKKwkgIGZ1bmNfc291cmNlICIkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQiCisJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBlZCBuYW1lLgorCSAgZmlsZT0iJHByb2dkaXIvJHByb2dyYW0iCisJZmkKKwk7OworICAgICAgZXNhYworICAgICAgIyBRdW90ZSBhcmd1bWVudHMgKHRvIHByZXNlcnZlIHNoZWxsIG1ldGFjaGFyYWN0ZXJzKS4KKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmaWxlIgorICAgICAgYXJncz0iJGFyZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorICAgIGRvbmUKKworICAgIGlmIHRlc3QgIlgkb3B0X2RyeV9ydW4iID0gWGZhbHNlOyB0aGVuCisgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKwkjIEV4cG9ydCB0aGUgc2hsaWJwYXRoX3Zhci4KKwlldmFsICJleHBvcnQgJHNobGlicGF0aF92YXIiCisgICAgICBmaQorCisgICAgICAjIFJlc3RvcmUgc2F2ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAgICBmb3IgbHRfdmFyIGluIExBTkcgTEFOR1VBR0UgTENfQUxMIExDX0NUWVBFIExDX0NPTExBVEUgTENfTUVTU0FHRVMKKyAgICAgIGRvCisJZXZhbCAiaWYgdGVzdCBcIlwke3NhdmVfJGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRoZW4KKyAgICAgICAgICAgICAgICAkbHRfdmFyPVwkc2F2ZV8kbHRfdmFyOyBleHBvcnQgJGx0X3ZhcgorCSAgICAgIGVsc2UKKwkJJGx0X3Vuc2V0ICRsdF92YXIKKwkgICAgICBmaSIKKyAgICAgIGRvbmUKKworICAgICAgIyBOb3cgcHJlcGFyZSB0byBhY3R1YWxseSBleGVjIHRoZSBjb21tYW5kLgorICAgICAgZXhlY19jbWQ9IlwkY21kJGFyZ3MiCisgICAgZWxzZQorICAgICAgIyBEaXNwbGF5IHdoYXQgd291bGQgYmUgZG9uZS4KKyAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorCWV2YWwgIlwkRUNITyBcIlwkc2hsaWJwYXRoX3Zhcj1cJCRzaGxpYnBhdGhfdmFyXCIiCisJJEVDSE8gImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKKyAgICAgIGZpCisgICAgICAkRUNITyAiJGNtZCRhcmdzIgorICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisgICAgZmkKK30KKwordGVzdCAiJG1vZGUiID0gZXhlY3V0ZSAmJiBmdW5jX21vZGVfZXhlY3V0ZSAkezErIiRAIn0KKworCisjIGZ1bmNfbW9kZV9maW5pc2ggYXJnLi4uCitmdW5jX21vZGVfZmluaXNoICgpCit7CisgICAgJG9wdF9kZWJ1ZworICAgIGxpYmRpcnM9IiRub25vcHQiCisgICAgYWRtaW5jbWRzPQorCisgICAgaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzJGZpbmlzaF9ldmFsIiAmJiB0ZXN0IC1uICIkbGliZGlycyI7IHRoZW4KKyAgICAgIGZvciBkaXIKKyAgICAgIGRvCisJbGliZGlycz0iJGxpYmRpcnMgJGRpciIKKyAgICAgIGRvbmUKKworICAgICAgZm9yIGxpYmRpciBpbiAkbGliZGlyczsgZG8KKwlpZiB0ZXN0IC1uICIkZmluaXNoX2NtZHMiOyB0aGVuCisJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgZmluaXNoIGNvbW1hbmRzLgorCSAgZnVuY19leGVjdXRlX2NtZHMgIiRmaW5pc2hfY21kcyIgJ2FkbWluY21kcz0iJGFkbWluY21kcworJyIkY21kIiciJworCWZpCisJaWYgdGVzdCAtbiAiJGZpbmlzaF9ldmFsIjsgdGhlbgorCSAgIyBEbyB0aGUgc2luZ2xlIGZpbmlzaF9ldmFsLgorCSAgZXZhbCBjbWRzPVwiJGZpbmlzaF9ldmFsXCIKKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kcyIgfHwgYWRtaW5jbWRzPSIkYWRtaW5jbWRzCisgICAgICAgJGNtZHMiCisJZmkKKyAgICAgIGRvbmUKKyAgICBmaQorCisgICAgIyBFeGl0IGhlcmUgaWYgdGhleSB3YW50ZWQgc2lsZW50IG1vZGUuCisgICAgJG9wdF9zaWxlbnQgJiYgZXhpdCAkRVhJVF9TVUNDRVNTCisKKyAgICAkRUNITyAiWC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIHwgJFhzZWQKKyAgICAkRUNITyAiTGlicmFyaWVzIGhhdmUgYmVlbiBpbnN0YWxsZWQgaW46IgorICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCisgICAgICAkRUNITyAiICAgJGxpYmRpciIKKyAgICBkb25lCisgICAgJEVDSE8KKyAgICAkRUNITyAiSWYgeW91IGV2ZXIgaGFwcGVuIHRvIHdhbnQgdG8gbGluayBhZ2FpbnN0IGluc3RhbGxlZCBsaWJyYXJpZXMiCisgICAgJEVDSE8gImluIGEgZ2l2ZW4gZGlyZWN0b3J5LCBMSUJESVIsIHlvdSBtdXN0IGVpdGhlciB1c2UgbGlidG9vbCwgYW5kIgorICAgICRFQ0hPICJzcGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBvciB1c2UgdGhlIFxgLUxMSUJESVInIgorICAgICRFQ0hPICJmbGFnIGR1cmluZyBsaW5raW5nIGFuZCBkbyBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZzoiCisgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCisgICAgICAkRUNITyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKKyAgICAgICRFQ0hPICIgICAgIGR1cmluZyBleGVjdXRpb24iCisgICAgZmkKKyAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisgICAgICAkRUNITyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRydW5wYXRoX3ZhcicgZW52aXJvbm1lbnQgdmFyaWFibGUiCisgICAgICAkRUNITyAiICAgICBkdXJpbmcgbGlua2luZyIKKyAgICBmaQorICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorICAgICAgbGliZGlyPUxJQkRJUgorICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorCisgICAgICAkRUNITyAiICAgLSB1c2UgdGhlIFxgJGZsYWcnIGxpbmtlciBmbGFnIgorICAgIGZpCisgICAgaWYgdGVzdCAtbiAiJGFkbWluY21kcyI7IHRoZW4KKyAgICAgICRFQ0hPICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBydW4gdGhlc2UgY29tbWFuZHM6JGFkbWluY21kcyIKKyAgICBmaQorICAgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisgICAgICAkRUNITyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgYWRkIExJQkRJUiB0byBcYC9ldGMvbGQuc28uY29uZiciCisgICAgZmkKKyAgICAkRUNITworCisgICAgJEVDSE8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0aW9uIGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgorICAgIGNhc2UgJGhvc3QgaW4KKyAgICAgIHNvbGFyaXMyLls2Nzg5XXxzb2xhcmlzMi4xWzAtOV0pCisgICAgICAgICRFQ0hPICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSwgY3JsZSgxKSBhbmQgbGQuc28oOCkgbWFudWFsIgorCSRFQ0hPICJwYWdlcy4iCisJOzsKKyAgICAgICopCisgICAgICAgICRFQ0hPICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSBhbmQgbGQuc28oOCkgbWFudWFsIHBhZ2VzLiIKKyAgICAgICAgOzsKKyAgICBlc2FjCisgICAgJEVDSE8gIlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRYc2VkCisgICAgZXhpdCAkRVhJVF9TVUNDRVNTCit9CisKK3Rlc3QgIiRtb2RlIiA9IGZpbmlzaCAmJiBmdW5jX21vZGVfZmluaXNoICR7MSsiJEAifQorCisKKyMgZnVuY19tb2RlX2luc3RhbGwgYXJnLi4uCitmdW5jX21vZGVfaW5zdGFsbCAoKQoreworICAgICRvcHRfZGVidWcKKyAgICAjIFRoZXJlIG1heSBiZSBhbiBvcHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mCisgICAgIyBpbnN0YWxsX3Byb2cgKGVzcGVjaWFsbHkgb24gV2luZG93cyBOVCkuCisgICAgaWYgdGVzdCAiJG5vbm9wdCIgPSAiJFNIRUxMIiB8fCB0ZXN0ICIkbm9ub3B0IiA9IC9iaW4vc2ggfHwKKyAgICAgICAjIEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdzIGluc3RhbGwgY29tbWFuZC4KKyAgICAgICAkRUNITyAiWCRub25vcHQiIHwgJEdSRVAgc2h0b29sID4vZGV2L251bGw7IHRoZW4KKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSBpdC4KKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRub25vcHQiCisgICAgICBpbnN0YWxsX3Byb2c9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCAiCisgICAgICBhcmc9JDEKKyAgICAgIHNoaWZ0CisgICAgZWxzZQorICAgICAgaW5zdGFsbF9wcm9nPQorICAgICAgYXJnPSRub25vcHQKKyAgICBmaQorCisgICAgIyBUaGUgcmVhbCBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIGluc3RhbGxhdGlvbiBwcm9ncmFtLgorICAgICMgQWVzdGhldGljYWxseSBxdW90ZSBpdC4KKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorICAgIGluc3RhbGxfcHJvZz0iJGluc3RhbGxfcHJvZyRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKworICAgICMgV2UgbmVlZCB0byBhY2NlcHQgYXQgbGVhc3QgYWxsIHRoZSBCU0QgaW5zdGFsbCBmbGFncy4KKyAgICBkZXN0PQorICAgIGZpbGVzPQorICAgIG9wdHM9CisgICAgcHJldj0KKyAgICBpbnN0YWxsX3R5cGU9CisgICAgaXNkaXI9bm8KKyAgICBzdHJpcG1lPQorICAgIGZvciBhcmcKKyAgICBkbworICAgICAgaWYgdGVzdCAtbiAiJGRlc3QiOyB0aGVuCisJZmlsZXM9IiRmaWxlcyAkZGVzdCIKKwlkZXN0PSRhcmcKKwljb250aW51ZQorICAgICAgZmkKKworICAgICAgY2FzZSAkYXJnIGluCisgICAgICAtZCkgaXNkaXI9eWVzIDs7CisgICAgICAtZikKKwljYXNlICIgJGluc3RhbGxfcHJvZyAiIGluCisJKltcXFwgL11jcFwgKikgOzsKKwkqKSBwcmV2PSRhcmcgOzsKKwllc2FjCisJOzsKKyAgICAgIC1nIHwgLW0gfCAtbykKKwlwcmV2PSRhcmcKKwk7OworICAgICAgLXMpCisJc3RyaXBtZT0iIC1zIgorCWNvbnRpbnVlCisJOzsKKyAgICAgIC0qKQorCTs7CisgICAgICAqKQorCSMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkZWQgYW4gYXJndW1lbnQsIHRoZW4gc2tpcCBpdC4KKwlpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KKwkgIHByZXY9CisJZWxzZQorCSAgZGVzdD0kYXJnCisJICBjb250aW51ZQorCWZpCisJOzsKKyAgICAgIGVzYWMKKworICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBhcmd1bWVudC4KKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisgICAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2cgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorICAgIGRvbmUKKworICAgIHRlc3QgLXogIiRpbnN0YWxsX3Byb2ciICYmIFwKKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBpbnN0YWxsIHByb2dyYW0iCisKKyAgICB0ZXN0IC1uICIkcHJldiIgJiYgXAorICAgICAgZnVuY19mYXRhbF9oZWxwICJ0aGUgXGAkcHJldicgb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IgorCisgICAgaWYgdGVzdCAteiAiJGZpbGVzIjsgdGhlbgorICAgICAgaWYgdGVzdCAteiAiJGRlc3QiOyB0aGVuCisJZnVuY19mYXRhbF9oZWxwICJubyBmaWxlIG9yIGRlc3RpbmF0aW9uIHNwZWNpZmllZCIKKyAgICAgIGVsc2UKKwlmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBkZXN0aW5hdGlvbiIKKyAgICAgIGZpCisgICAgZmkKKworICAgICMgU3RyaXAgYW55IHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIGRlc3RpbmF0aW9uLgorICAgIGZ1bmNfc3RyaXBuYW1lICcnICcvJyAiJGRlc3QiCisgICAgZGVzdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisKKyAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBpcyBhIGRpcmVjdG9yeS4KKyAgICB0ZXN0IC1kICIkZGVzdCIgJiYgaXNkaXI9eWVzCisgICAgaWYgdGVzdCAiJGlzZGlyIiA9IHllczsgdGhlbgorICAgICAgZGVzdGRpcj0iJGRlc3QiCisgICAgICBkZXN0bmFtZT0KKyAgICBlbHNlCisgICAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkZGVzdCIgIiIgIi4iCisgICAgICBkZXN0ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKyAgICAgIGRlc3RuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisKKyAgICAgICMgTm90IGEgZGlyZWN0b3J5LCBzbyBjaGVjayB0byBzZWUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBmaWxlIHNwZWNpZmllZC4KKyAgICAgIHNldCBkdW1teSAkZmlsZXM7IHNoaWZ0CisgICAgICB0ZXN0ICIkIyIgLWd0IDEgJiYgXAorCWZ1bmNfZmF0YWxfaGVscCAiXGAkZGVzdCcgaXMgbm90IGEgZGlyZWN0b3J5IgorICAgIGZpCisgICAgY2FzZSAkZGVzdGRpciBpbgorICAgIFtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKKyAgICAqKQorICAgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbworCWNhc2UgJGZpbGUgaW4KKwkqLmxvKSA7OworCSopCisJICBmdW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3RkaXInIG11c3QgYmUgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUiCisJICA7OworCWVzYWMKKyAgICAgIGRvbmUKKyAgICAgIDs7CisgICAgZXNhYworCisgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0cyBqdXN0IHRvIHNldCB2YXJpYWJsZXMgcmF0aGVyCisgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisgICAgbGlidG9vbF9pbnN0YWxsX21hZ2ljPSIkbWFnaWMiCisKKyAgICBzdGF0aWNsaWJzPQorICAgIGZ1dHVyZV9saWJkaXJzPQorICAgIGN1cnJlbnRfbGliZGlycz0KKyAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCisKKyAgICAgICMgRG8gZWFjaCBpbnN0YWxsYXRpb24uCisgICAgICBjYXNlICRmaWxlIGluCisgICAgICAqLiRsaWJleHQpCisJIyBEbyB0aGUgc3RhdGljIGxpYnJhcmllcyBsYXRlci4KKwlzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZmlsZSIKKwk7OworCisgICAgICAqLmxhKQorCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUuCisJZnVuY19sYWxpYl91bnNhZmVfcCAiJGZpbGUiIFwKKwkgIHx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorCisJbGlicmFyeV9uYW1lcz0KKwlvbGRfbGlicmFyeT0KKwlyZWxpbmtfY29tbWFuZD0KKwlmdW5jX3NvdXJjZSAiJGZpbGUiCisKKwkjIEFkZCB0aGUgbGliZGlyIHRvIGN1cnJlbnRfbGliZGlycyBpZiBpdCBpcyB0aGUgZGVzdGluYXRpb24uCisJaWYgdGVzdCAiWCRkZXN0ZGlyIiA9ICJYJGxpYmRpciI7IHRoZW4KKwkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgorCSAgKiIgJGxpYmRpciAiKikgOzsKKwkgICopIGN1cnJlbnRfbGliZGlycz0iJGN1cnJlbnRfbGliZGlycyAkbGliZGlyIiA7OworCSAgZXNhYworCWVsc2UKKwkgICMgTm90ZSB0aGUgbGliZGlyIGFzIGEgZnV0dXJlIGxpYmRpci4KKwkgIGNhc2UgIiRmdXR1cmVfbGliZGlycyAiIGluCisJICAqIiAkbGliZGlyICIqKSA7OworCSAgKikgZnV0dXJlX2xpYmRpcnM9IiRmdXR1cmVfbGliZGlycyAkbGliZGlyIiA7OworCSAgZXNhYworCWZpCisKKwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiLyIgIiIKKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCWRpcj0iJGRpciRvYmpkaXIiCisKKwlpZiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisJICAjIERldGVybWluZSB0aGUgcHJlZml4IHRoZSB1c2VyIGhhcyBhcHBsaWVkIHRvIG91ciBmdXR1cmUgZGlyLgorCSAgaW5zdF9wcmVmaXhfZGlyPWAkRUNITyAiWCRkZXN0ZGlyIiB8ICRYc2VkIC1lICJzJSRsaWJkaXJcJCUlImAKKworCSAgIyBEb24ndCBhbGxvdyB0aGUgdXNlciB0byBwbGFjZSB1cyBvdXRzaWRlIG9mIG91ciBleHBlY3RlZAorCSAgIyBsb2NhdGlvbiBiL2MgdGhpcyBwcmV2ZW50cyBmaW5kaW5nIGRlcGVuZGVudCBsaWJyYXJpZXMgdGhhdAorCSAgIyBhcmUgaW5zdGFsbGVkIHRvIHRoZSBzYW1lIHByZWZpeC4KKwkgICMgQXQgcHJlc2VudCwgdGhpcyBjaGVjayBkb2Vzbid0IGFmZmVjdCB3aW5kb3dzIC5kbGwncyB0aGF0CisJICAjIGFyZSBpbnN0YWxsZWQgaW50byAkbGliZGlyLy4uL2JpbiAoY3VycmVudGx5LCB0aGF0IHdvcmtzIGZpbmUpCisJICAjIGJ1dCBpdCdzIHNvbWV0aGluZyB0byBrZWVwIGFuIGV5ZSBvbi4KKwkgIHRlc3QgIiRpbnN0X3ByZWZpeF9kaXIiID0gIiRkZXN0ZGlyIiAmJiBcCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImVycm9yOiBjYW5ub3QgaW5zdGFsbCBcYCRmaWxlJyB0byBhIGRpcmVjdG9yeSBub3QgZW5kaW5nIGluICRsaWJkaXIiCisKKwkgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCisJICAgICMgU3RpY2sgdGhlIGluc3RfcHJlZml4X2RpciBkYXRhIGludG8gdGhlIGxpbmsgY29tbWFuZC4KKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBpbnN0X3ByZWZpeF9kaXJAJS1pbnN0LXByZWZpeC1kaXIgJGluc3RfcHJlZml4X2RpciUiYAorCSAgZWxzZQorCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQGluc3RfcHJlZml4X2RpckAlJSJgCisJICBmaQorCisJICBmdW5jX3dhcm5pbmcgInJlbGlua2luZyBcYCRmaWxlJyIKKwkgIGZ1bmNfc2hvd19ldmFsICIkcmVsaW5rX2NvbW1hbmQiIFwKKwkgICAgJ2Z1bmNfZmF0YWxfZXJyb3IgImVycm9yOiByZWxpbmsgXGAkZmlsZSdcJycgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCInCisJZmkKKworCSMgU2VlIHRoZSBuYW1lcyBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCisJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzOyBzaGlmdAorCWlmIHRlc3QgLW4gIiQxIjsgdGhlbgorCSAgcmVhbG5hbWU9IiQxIgorCSAgc2hpZnQKKworCSAgc3JjbmFtZT0iJHJlYWxuYW1lIgorCSAgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIiAmJiBzcmNuYW1lPSIkcmVhbG5hbWUiVAorCisJICAjIEluc3RhbGwgdGhlIHNoYXJlZCBsaWJyYXJ5IGFuZCBidWlsZCB0aGUgc3ltbGlua3MuCisJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkZGlyLyRzcmNuYW1lICRkZXN0ZGlyLyRyZWFsbmFtZSIgXAorCSAgICAgICdleGl0ICQ/JworCSAgdHN0cmlwbWU9IiRzdHJpcG1lIgorCSAgY2FzZSAkaG9zdF9vcyBpbgorCSAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorCSAgICBjYXNlICRyZWFsbmFtZSBpbgorCSAgICAqLmRsbC5hKQorCSAgICAgIHRzdHJpcG1lPSIiCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgICA7OworCSAgZXNhYworCSAgaWYgdGVzdCAtbiAiJHRzdHJpcG1lIiAmJiB0ZXN0IC1uICIkc3RyaXBsaWIiOyB0aGVuCisJICAgIGZ1bmNfc2hvd19ldmFsICIkc3RyaXBsaWIgJGRlc3RkaXIvJHJlYWxuYW1lIiAnZXhpdCAkPycKKwkgIGZpCisKKwkgIGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgorCSAgICAjIERlbGV0ZSB0aGUgb2xkIHN5bWxpbmtzLCBhbmQgY3JlYXRlIG5ldyBvbmVzLgorCSAgICAjIFRyeSBgbG4gLXNmJyBmaXJzdCwgYmVjYXVzZSB0aGUgYGxuJyBiaW5hcnkgbWlnaHQgZGVwZW5kIG9uCisJICAgICMgdGhlIHN5bWxpbmsgd2UgcmVwbGFjZSEgIFNvbGFyaXMgL2Jpbi9sbiBkb2VzIG5vdCB1bmRlcnN0YW5kIC1mLAorCSAgICAjIHNvIHdlIGFsc28gbmVlZCB0byB0cnkgcm0gJiYgbG4gLXMuCisJICAgIGZvciBsaW5rbmFtZQorCSAgICBkbworCSAgICAgIHRlc3QgIiRsaW5rbmFtZSIgIT0gIiRyZWFsbmFtZSIgXAorCQkmJiBmdW5jX3Nob3dfZXZhbCAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJlYWxuYW1lICRsaW5rbmFtZSB8fCB7ICRSTSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZTsgfTsgfSkiCisJICAgIGRvbmUKKwkgIGZpCisKKwkgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KKwkgIGxpYj0iJGRlc3RkaXIvJHJlYWxuYW1lIgorCSAgZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0aW5zdGFsbF9jbWRzIiAnZXhpdCAkPycKKwlmaQorCisJIyBJbnN0YWxsIHRoZSBwc2V1ZG8tbGlicmFyeSBmb3IgaW5mb3JtYXRpb24gcHVycG9zZXMuCisJZnVuY19iYXNlbmFtZSAiJGZpbGUiCisJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCWluc3RuYW1lPSIkZGlyLyRuYW1lImkKKwlmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkaW5zdG5hbWUgJGRlc3RkaXIvJG5hbWUiICdleGl0ICQ/JworCisJIyBNYXliZSBpbnN0YWxsIHRoZSBzdGF0aWMgbGlicmFyeSwgdG9vLgorCXRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGRpci8kb2xkX2xpYnJhcnkiCisJOzsKKworICAgICAgKi5sbykKKwkjIEluc3RhbGwgKGkuZS4gY29weSkgYSBsaWJ0b29sIG9iamVjdC4KKworCSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5hbWUsIGlmIGl0IHdhc24ndCBhbHJlYWR5IHNwZWNpZmllZC4KKwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUiOyB0aGVuCisJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgorCWVsc2UKKwkgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorCSAgZGVzdGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdGZpbGUiCisJZmkKKworCSMgRGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBkZXN0aW5hdGlvbiBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCisJY2FzZSAkZGVzdGZpbGUgaW4KKwkqLmxvKQorCSAgZnVuY19sbzJvICIkZGVzdGZpbGUiCisJICBzdGF0aWNkZXN0PSRmdW5jX2xvMm9fcmVzdWx0CisJICA7OworCSouJG9iamV4dCkKKwkgIHN0YXRpY2Rlc3Q9IiRkZXN0ZmlsZSIKKwkgIGRlc3RmaWxlPQorCSAgOzsKKwkqKQorCSAgZnVuY19mYXRhbF9oZWxwICJjYW5ub3QgY29weSBhIGxpYnRvb2wgb2JqZWN0IHRvIFxgJGRlc3RmaWxlJyIKKwkgIDs7CisJZXNhYworCisJIyBJbnN0YWxsIHRoZSBsaWJ0b29sIG9iamVjdCBpZiByZXF1ZXN0ZWQuCisJdGVzdCAtbiAiJGRlc3RmaWxlIiAmJiBcCisJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVzdGZpbGUiICdleGl0ICQ/JworCisJIyBJbnN0YWxsIHRoZSBvbGQgb2JqZWN0IGlmIGVuYWJsZWQuCisJaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorCSAgIyBEZWR1Y2UgdGhlIG5hbWUgb2YgdGhlIG9sZC1zdHlsZSBvYmplY3QgZmlsZS4KKwkgIGZ1bmNfbG8ybyAiJGZpbGUiCisJICBzdGF0aWNvYmo9JGZ1bmNfbG8yb19yZXN1bHQKKwkgIGZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nIFwkc3RhdGljb2JqIFwkc3RhdGljZGVzdCIgJ2V4aXQgJD8nCisJZmkKKwlleGl0ICRFWElUX1NVQ0NFU1MKKwk7OworCisgICAgICAqKQorCSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5hbWUsIGlmIGl0IHdhc24ndCBhbHJlYWR5IHNwZWNpZmllZC4KKwlpZiB0ZXN0IC1uICIkZGVzdG5hbWUiOyB0aGVuCisJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgorCWVsc2UKKwkgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorCSAgZGVzdGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdGZpbGUiCisJZmkKKworCSMgSWYgdGhlIGZpbGUgaXMgbWlzc2luZywgYW5kIHRoZXJlIGlzIGEgLmV4ZSBvbiB0aGUgZW5kLCBzdHJpcCBpdAorCSMgYmVjYXVzZSBpdCBpcyBtb3N0IGxpa2VseSBhIGxpYnRvb2wgc2NyaXB0IHdlIGFjdHVhbGx5IHdhbnQgdG8KKwkjIGluc3RhbGwKKwlzdHJpcHBlZF9leHQ9IiIKKwljYXNlICRmaWxlIGluCisJICAqLmV4ZSkKKwkgICAgaWYgdGVzdCAhIC1mICIkZmlsZSI7IHRoZW4KKwkgICAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmaWxlIgorCSAgICAgIGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCSAgICAgIHN0cmlwcGVkX2V4dD0iLmV4ZSIKKwkgICAgZmkKKwkgICAgOzsKKwllc2FjCisKKwkjIERvIGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyByZWFsbHkgYSBsaWJ0b29sIHByb2dyYW0uCisJY2FzZSAkaG9zdCBpbgorCSpjeWd3aW4qIHwgKm1pbmd3KikKKwkgICAgaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KKwkgICAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKKwkgICAgICB3cmFwcGVyPSRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAorCSAgICBlbHNlCisJICAgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZmlsZSIKKwkgICAgICB3cmFwcGVyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkgICAgZmkKKwkgICAgOzsKKwkqKQorCSAgICB3cmFwcGVyPSRmaWxlCisJICAgIDs7CisJZXNhYworCWlmIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkd3JhcHBlciI7IHRoZW4KKwkgIG5vdGluc3RfZGVwbGlicz0KKwkgIHJlbGlua19jb21tYW5kPQorCisJICBmdW5jX3NvdXJjZSAiJHdyYXBwZXIiCisKKwkgICMgQ2hlY2sgdGhlIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gc2V0LgorCSAgdGVzdCAteiAiJGdlbmVyYXRlZF9ieV9saWJ0b29sX3ZlcnNpb24iICYmIFwKKwkgICAgZnVuY19mYXRhbF9lcnJvciAiaW52YWxpZCBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IFxgJHdyYXBwZXInIgorCisJICBmaW5hbGl6ZT15ZXMKKwkgIGZvciBsaWIgaW4gJG5vdGluc3RfZGVwbGliczsgZG8KKwkgICAgIyBDaGVjayB0byBzZWUgdGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5zdGFsbGVkLgorCSAgICBsaWJkaXI9CisJICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVuCisJICAgICAgZnVuY19zb3VyY2UgIiRsaWIiCisJICAgIGZpCisJICAgIGxpYmZpbGU9IiRsaWJkaXIvImAkRUNITyAiWCRsaWIiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAorCSAgICBpZiB0ZXN0IC1uICIkbGliZGlyIiAmJiB0ZXN0ICEgLWYgIiRsaWJmaWxlIjsgdGhlbgorCSAgICAgIGZ1bmNfd2FybmluZyAiXGAkbGliJyBoYXMgbm90IGJlZW4gaW5zdGFsbGVkIGluIFxgJGxpYmRpciciCisJICAgICAgZmluYWxpemU9bm8KKwkgICAgZmkKKwkgIGRvbmUKKworCSAgcmVsaW5rX2NvbW1hbmQ9CisJICBmdW5jX3NvdXJjZSAiJHdyYXBwZXIiCisKKwkgIG91dHB1dG5hbWU9CisJICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IG5vICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgICBpZiB0ZXN0ICIkZmluYWxpemUiID0geWVzOyB0aGVuCisJICAgICAgICB0bXBkaXI9YGZ1bmNfbWt0ZW1wZGlyYAorCQlmdW5jX2Jhc2VuYW1lICIkZmlsZSRzdHJpcHBlZF9leHQiCisJCWZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwkgICAgICAgIG91dHB1dG5hbWU9IiR0bXBkaXIvJGZpbGUiCisJICAgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisJICAgICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0bmFtZSInJWcnYAorCisJICAgICAgICAkb3B0X3NpbGVudCB8fCB7CisJICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJHJlbGlua19jb21tYW5kIgorCQkgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKKwkgICAgICAgIH0KKwkgICAgICAgIGlmIGV2YWwgIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4gOgorCSAgICAgICAgICBlbHNlCisJCSAgZnVuY19lcnJvciAiZXJyb3I6IHJlbGluayBcYCRmaWxlJyB3aXRoIHRoZSBhYm92ZSBjb21tYW5kIGJlZm9yZSBpbnN0YWxsaW5nIGl0IgorCQkgICRvcHRfZHJ5X3J1biB8fCAke1JNfXIgIiR0bXBkaXIiCisJCSAgY29udGludWUKKwkgICAgICAgIGZpCisJICAgICAgICBmaWxlPSIkb3V0cHV0bmFtZSIKKwkgICAgICBlbHNlCisJICAgICAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCByZWxpbmsgXGAkZmlsZSciCisJICAgICAgZmkKKwkgICAgfQorCSAgZWxzZQorCSAgICAjIEluc3RhbGwgdGhlIGJpbmFyeSB0aGF0IHdlIGNvbXBpbGVkIGVhcmxpZXIuCisJICAgIGZpbGU9YCRFQ0hPICJYJGZpbGUkc3RyaXBwZWRfZXh0IiB8ICRYc2VkIC1lICJzJVwoW14vXSpcKSQlJG9iamRpci9cMSUiYAorCSAgZmkKKwlmaQorCisJIyByZW1vdmUgLmV4ZSBzaW5jZSBjeWd3aW4gL3Vzci9iaW4vaW5zdGFsbCB3aWxsIGFwcGVuZCBhbm90aGVyCisJIyBvbmUgYW55d2F5CisJY2FzZSAkaW5zdGFsbF9wcm9nLCRob3N0IGluCisJKi91c3IvYmluL2luc3RhbGwqLCpjeWd3aW4qKQorCSAgY2FzZSAkZmlsZTokZGVzdGZpbGUgaW4KKwkgICouZXhlOiouZXhlKQorCSAgICAjIHRoaXMgaXMgb2sKKwkgICAgOzsKKwkgICouZXhlOiopCisJICAgIGRlc3RmaWxlPSRkZXN0ZmlsZS5leGUKKwkgICAgOzsKKwkgICo6Ki5leGUpCisJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGRlc3RmaWxlIgorCSAgICBkZXN0ZmlsZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICAgIDs7CisJICBlc2FjCisJICA7OworCWVzYWMKKwlmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZ1wkc3RyaXBtZSBcJGZpbGUgXCRkZXN0ZmlsZSIgJ2V4aXQgJD8nCisJJG9wdF9kcnlfcnVuIHx8IGlmIHRlc3QgLW4gIiRvdXRwdXRuYW1lIjsgdGhlbgorCSAgJHtSTX1yICIkdG1wZGlyIgorCWZpCisJOzsKKyAgICAgIGVzYWMKKyAgICBkb25lCisKKyAgICBmb3IgZmlsZSBpbiAkc3RhdGljbGliczsgZG8KKyAgICAgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorICAgICAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCisgICAgICAjIFNldCB1cCB0aGUgcmFubGliIHBhcmFtZXRlcnMuCisgICAgICBvbGRsaWI9IiRkZXN0ZGlyLyRuYW1lIgorCisgICAgICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyBcJGZpbGUgXCRvbGRsaWIiICdleGl0ICQ/JworCisgICAgICBpZiB0ZXN0IC1uICIkc3RyaXBtZSIgJiYgdGVzdCAtbiAiJG9sZF9zdHJpcGxpYiI7IHRoZW4KKwlmdW5jX3Nob3dfZXZhbCAiJG9sZF9zdHJpcGxpYiAkb2xkbGliIiAnZXhpdCAkPycKKyAgICAgIGZpCisKKyAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3RpbnN0YWxsX2NtZHMiICdleGl0ICQ/JworICAgIGRvbmUKKworICAgIHRlc3QgLW4gIiRmdXR1cmVfbGliZGlycyIgJiYgXAorICAgICAgZnVuY193YXJuaW5nICJyZW1lbWJlciB0byBydW4gXGAkcHJvZ25hbWUgLS1maW5pc2gkZnV0dXJlX2xpYmRpcnMnIgorCisgICAgaWYgdGVzdCAtbiAiJGN1cnJlbnRfbGliZGlycyI7IHRoZW4KKyAgICAgICMgTWF5YmUganVzdCBkbyBhIGRyeSBydW4uCisgICAgICAkb3B0X2RyeV9ydW4gJiYgY3VycmVudF9saWJkaXJzPSIgLW4kY3VycmVudF9saWJkaXJzIgorICAgICAgZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1maW5pc2gkY3VycmVudF9saWJkaXJzJworICAgIGVsc2UKKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworICAgIGZpCit9CisKK3Rlc3QgIiRtb2RlIiA9IGluc3RhbGwgJiYgZnVuY19tb2RlX2luc3RhbGwgJHsxKyIkQCJ9CisKKworIyBmdW5jX2dlbmVyYXRlX2Rsc3ltcyBvdXRwdXRuYW1lIG9yaWdpbmF0b3IgcGljX3AKKyMgRXh0cmFjdCBzeW1ib2xzIGZyb20gZGxwcmVmaWxlcyBhbmQgY3JlYXRlICR7b3V0cHV0bmFtZX1TLm8gd2l0aAorIyBhIGRscHJlb3BlbiBzeW1ib2wgdGFibGUuCitmdW5jX2dlbmVyYXRlX2Rsc3ltcyAoKQoreworICAgICRvcHRfZGVidWcKKyAgICBteV9vdXRwdXRuYW1lPSIkMSIKKyAgICBteV9vcmlnaW5hdG9yPSIkMiIKKyAgICBteV9waWNfcD0iJHszLW5vfSIKKyAgICBteV9wcmVmaXg9YCRFQ0hPICIkbXlfb3JpZ2luYXRvciIgfCBzZWQgJ3MlW15hLXpBLVowLTldJV8lZydgCisgICAgbXlfZGxzeW1zPQorCisgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KKyAgICAgIGlmIHRlc3QgLW4gIiROTSIgJiYgdGVzdCAtbiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKwlteV9kbHN5bXM9IiR7bXlfb3V0cHV0bmFtZX1TLmMiCisgICAgICBlbHNlCisJZnVuY19lcnJvciAibm90IGNvbmZpZ3VyZWQgdG8gZXh0cmFjdCBnbG9iYWwgc3ltYm9scyBmcm9tIGRscHJlb3BlbmVkIGZpbGVzIgorICAgICAgZmkKKyAgICBmaQorCisgICAgaWYgdGVzdCAtbiAiJG15X2Rsc3ltcyI7IHRoZW4KKyAgICAgIGNhc2UgJG15X2Rsc3ltcyBpbgorICAgICAgIiIpIDs7CisgICAgICAqLmMpCisJIyBEaXNjb3ZlciB0aGUgbmxpc3Qgb2YgZWFjaCBvZiB0aGUgZGxmaWxlcy4KKwlubGlzdD0iJG91dHB1dF9vYmpkaXIvJHtteV9vdXRwdXRuYW1lfS5ubSIKKworCWZ1bmNfc2hvd19ldmFsICIkUk0gJG5saXN0ICR7bmxpc3R9UyAke25saXN0fVQiCisKKwkjIFBhcnNlIHRoZSBuYW1lIGxpc3QgaW50byBhIHNvdXJjZSBmaWxlLgorCWZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKKworCSRvcHRfZHJ5X3J1biB8fCAkRUNITyA+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorLyogJG15X2Rsc3ltcyAtIHN5bWJvbCByZXNvbHV0aW9uIHRhYmxlIGZvciBcYCRteV9vdXRwdXRuYW1lJyBkbHN5bSBlbXVsYXRpb24uICovCisvKiBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuIFwiQ1wiIHsKKyNlbmRpZgorCisvKiBFeHRlcm5hbCBzeW1ib2wgZGVjbGFyYXRpb25zIGZvciB0aGUgY29tcGlsZXIuICovXAorIgorCisJaWYgdGVzdCAiJGRsc2VsZiIgPSB5ZXM7IHRoZW4KKwkgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkb3V0cHV0JyIKKworCSAgJG9wdF9kcnlfcnVuIHx8IGVjaG8gJzogQFBST0dSQU1AICcgPiAiJG5saXN0IgorCisJICAjIEFkZCBvdXIgb3duIHByb2dyYW0gb2JqZWN0cyB0byB0aGUgc3ltYm9sIGxpc3QuCisJICBwcm9nZmlsZXM9YCRFQ0hPICJYJG9ianMkb2xkX2RlcGxpYnMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKKwkgIGZvciBwcm9nZmlsZSBpbiAkcHJvZ2ZpbGVzOyBkbworCSAgICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFsIEMgc3ltYm9scyBmcm9tIFxgJHByb2dmaWxlJyIKKwkgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiROTSAkcHJvZ2ZpbGUgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgorCSAgZG9uZQorCisJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1zIjsgdGhlbgorCSAgICAkb3B0X2RyeV9ydW4gfHwgeworCSAgICAgIGV2YWwgJyRFR1JFUCAtdiAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3QiID4gIiRubGlzdCJUJworCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCisJICAgIH0KKwkgIGZpCisKKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgICBldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCisJICAgICAgZXZhbCAnJE1WICIkbmxpc3QiVCAiJG5saXN0IicKKwkgICAgfQorCSAgZmkKKworCSAgIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKKwkgIGlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KKwkgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIKKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgICAkUk0gJGV4cG9ydF9zeW1ib2xzCisJICAgICAgZXZhbCAiJHtTRUR9IC1uIC1lICcvXjogQFBST0dSQU1AICQvZCcgLWUgJ3MvXi4qIFwoLipcKSQvXDEvcCcgIic8ICIkbmxpc3QiID4gIiRleHBvcnRfc3ltYm9scyInCisJICAgICAgY2FzZSAkaG9zdCBpbgorCSAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorICAgICAgICAgICAgICAgIGV2YWwgImVjaG8gRVhQT1JUUyAiJz4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCisgICAgICAgICAgICAgICAgZXZhbCAnY2F0ICIkZXhwb3J0X3N5bWJvbHMiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworCSAgICAgICAgOzsKKwkgICAgICBlc2FjCisJICAgIH0KKwkgIGVsc2UKKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgICBldmFsICIke1NFRH0gLWUgJ3MvXChbXS5bKl4kXVwpL1xcXFxcMS9nJyAtZSAncy9eLyAvJyAtZSAncy8kLyQvJyInIDwgIiRleHBvcnRfc3ltYm9scyIgPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIicKKwkgICAgICBldmFsICckR1JFUCAtZiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIiA8ICIkbmxpc3QiID4gIiRubGlzdCJUJworCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCisJICAgICAgY2FzZSAkaG9zdCBpbgorCSAgICAgICAgKmN5Z3dpbiB8ICptaW5ndyogfCAqY2VnY2MqICkKKwkgICAgICAgICAgZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKKwkgICAgICAgICAgZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworCSAgICAgICAgICA7OworCSAgICAgIGVzYWMKKwkgICAgfQorCSAgZmkKKwlmaQorCisJZm9yIGRscHJlZmlsZSBpbiAkZGxwcmVmaWxlczsgZG8KKwkgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkZGxwcmVmaWxlJyIKKwkgIGZ1bmNfYmFzZW5hbWUgIiRkbHByZWZpbGUiCisJICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisJICAkb3B0X2RyeV9ydW4gfHwgeworCSAgICBldmFsICckRUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJworCSAgICBldmFsICIkTk0gJGRscHJlZmlsZSAyPi9kZXYvbnVsbCB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCisJICB9CisJZG9uZQorCisJJG9wdF9kcnlfcnVuIHx8IHsKKwkgICMgTWFrZSBzdXJlIHdlIGhhdmUgYXQgbGVhc3QgYW4gZW1wdHkgZmlsZS4KKwkgIHRlc3QgLWYgIiRubGlzdCIgfHwgOiA+ICIkbmxpc3QiCisKKwkgIGlmIHRlc3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVuCisJICAgICRFR1JFUCAtdiAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3QiID4gIiRubGlzdCJUCisJICAgICRNViAiJG5saXN0IlQgIiRubGlzdCIKKwkgIGZpCisKKwkgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCisJICBpZiAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiIHwKKwkgICAgICBpZiBzb3J0IC1rIDMgPC9kZXYvbnVsbCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKwkJc29ydCAtayAzCisJICAgICAgZWxzZQorCQlzb3J0ICsyCisJICAgICAgZmkgfAorCSAgICAgIHVuaXEgPiAiJG5saXN0IlM7IHRoZW4KKwkgICAgOgorCSAgZWxzZQorCSAgICAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiID4gIiRubGlzdCJTCisJICBmaQorCisJICBpZiB0ZXN0IC1mICIkbmxpc3QiUzsgdGhlbgorCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRubGlzdCJTID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIicKKwkgIGVsc2UKKwkgICAgJEVDSE8gJy8qIE5PTkUgKi8nID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorCSAgZmkKKworCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisKKy8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgY29uc3QgY2hhciAqbmFtZTsKKyAgdm9pZCAqYWRkcmVzczsKK30gbHRfZGxzeW1saXN0OworIgorCSAgY2FzZSAkaG9zdCBpbgorCSAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisJICAgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorLyogREFUQSBpbXBvcnRzIGZyb20gRExMcyBvbiBXSU4zMiBjb24ndCBiZSBjb25zdCwgYmVjYXVzZQorICAgcnVudGltZSByZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdzIGRvY3VtZW50YXRpb24KKyAgIG9uIHBzZXVkby1yZWxvY3MuICAqLyIKKwkgICAgbHRfZGxzeW1fY29uc3Q9IDs7CisJICAqb3NmNSopCisJICAgIGVjaG8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisvKiBUaGlzIHN5c3RlbSBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCByZWxvY2F0aW9ucyBpbiBjb25zdCBkYXRhICovIgorCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKKwkgICopCisJICAgIGx0X2Rsc3ltX2NvbnN0PWNvbnN0IDs7CisJICBlc2FjCisKKwkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorZXh0ZXJuICRsdF9kbHN5bV9jb25zdCBsdF9kbHN5bWxpc3QKK2x0XyR7bXlfcHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHNbXTsKKyRsdF9kbHN5bV9jb25zdCBsdF9kbHN5bWxpc3QKK2x0XyR7bXlfcHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHNbXSA9Cit7XAorICB7IFwiJG15X29yaWdpbmF0b3JcIiwgKHZvaWQgKikgMCB9LCIKKworCSAgY2FzZSAkbmVlZF9saWJfcHJlZml4IGluCisJICBubykKKwkgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MiIDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCisJICAgIDs7CisJICAqKQorCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4IiA8ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorCSAgICA7OworCSAgZXNhYworCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisgIHswLCAodm9pZCAqKSAwfQorfTsKKworLyogVGhpcyB3b3JrcyBhcm91bmQgYSBwcm9ibGVtIGluIEZyZWVCU0QgbGlua2VyICovCisjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECitzdGF0aWMgY29uc3Qgdm9pZCAqbHRfcHJlbG9hZGVkX3NldHVwKCkgeworICByZXR1cm4gbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sczsKK30KKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZlwKKyIKKwl9ICMgISRvcHRfZHJ5X3J1bgorCisJcGljX2ZsYWdfZm9yX3N5bXRhYmxlPQorCWNhc2UgIiRjb21waWxlX2NvbW1hbmQgIiBpbgorCSoiIC1zdGF0aWMgIiopIDs7CisJKikKKwkgIGNhc2UgJGhvc3QgaW4KKwkgICMgY29tcGlsaW5nIHRoZSBzeW1ib2wgdGFibGUgZmlsZSB3aXRoIHBpY19mbGFnIHdvcmtzIGFyb3VuZAorCSAgIyBhIEZyZWVCU0QgYnVnIHRoYXQgY2F1c2VzIHByb2dyYW1zIHRvIGNyYXNoIHdoZW4gLWxtIGlzCisJICAjIGxpbmtlZCBiZWZvcmUgYW55IG90aGVyIFBJQyBvYmplY3QuICBCdXQgd2UgbXVzdCBub3QgdXNlCisJICAjIHBpY19mbGFnIHdoZW4gbGlua2luZyB3aXRoIC1zdGF0aWMuICBUaGUgcHJvYmxlbSBleGlzdHMgaW4KKwkgICMgRnJlZUJTRCAyLjIuNiBhbmQgaXMgZml4ZWQgaW4gRnJlZUJTRCAzLjEuCisJICAqLSotZnJlZWJzZDIqfCotKi1mcmVlYnNkMy4wKnwqLSotZnJlZWJzZGVsZjMuMCopCisJICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyAtREZSRUVCU0RfV09SS0FST1VORCIgOzsKKwkgICotKi1ocHV4KikKKwkgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFnIiAgOzsKKwkgICopCisJICAgIGlmIHRlc3QgIlgkbXlfcGljX3AiICE9IFhubzsgdGhlbgorCSAgICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIKKwkgICAgZmkKKwkgICAgOzsKKwkgIGVzYWMKKwkgIDs7CisJZXNhYworCXN5bXRhYl9jZmxhZ3M9CisJZm9yIGFyZyBpbiAkTFRDRkxBR1M7IGRvCisJICBjYXNlICRhcmcgaW4KKwkgIC1waWUgfCAtZnBpZSB8IC1mUElFKSA7OworCSAgKikgc3ltdGFiX2NmbGFncz0iJHN5bXRhYl9jZmxhZ3MgJGFyZyIgOzsKKwkgIGVzYWMKKwlkb25lCisKKwkjIE5vdyBjb21waWxlIHRoZSBkeW5hbWljIHN5bWJvbCBmaWxlLgorCWZ1bmNfc2hvd19ldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJExUQ0Mkc3ltdGFiX2NmbGFncyAtYyRub19idWlsdGluX2ZsYWckcGljX2ZsYWdfZm9yX3N5bXRhYmxlICIkbXlfZGxzeW1zIiknICdleGl0ICQ/JworCisJIyBDbGVhbiB1cCB0aGUgZ2VuZXJhdGVkIGZpbGVzLgorCWZ1bmNfc2hvd19ldmFsICckUk0gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICIkbmxpc3QiICIke25saXN0fVMiICIke25saXN0fVQiJworCisJIyBUcmFuc2Zvcm0gdGhlIHN5bWJvbCBmaWxlIGludG8gdGhlIGNvcnJlY3QgbmFtZS4KKwlzeW1maWxlb2JqPSIkb3V0cHV0X29iamRpci8ke215X291dHB1dG5hbWV9Uy4kb2JqZXh0IgorCWNhc2UgJGhvc3QgaW4KKwkqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKKwkgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiI7IHRoZW4KKwkgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAorCSAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKKwkgIGVsc2UKKwkgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCisJICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCisJICBmaQorCSAgOzsKKwkqKQorCSAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCisJICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorCSAgOzsKKwllc2FjCisJOzsKKyAgICAgICopCisJZnVuY19mYXRhbF9lcnJvciAidW5rbm93biBzdWZmaXggZm9yIFxgJG15X2Rsc3ltcyciCisJOzsKKyAgICAgIGVzYWMKKyAgICBlbHNlCisgICAgICAjIFdlIGtlZXAgZ29pbmcganVzdCBpbiBjYXNlIHRoZSB1c2VyIGRpZG4ndCByZWZlciB0bworICAgICAgIyBsdF9wcmVsb2FkZWRfc3ltYm9scy4gIFRoZSBsaW5rZXIgd2lsbCBmYWlsIGlmIGdsb2JhbF9zeW1ib2xfcGlwZQorICAgICAgIyByZWFsbHkgd2FzIHJlcXVpcmVkLgorCisgICAgICAjIE51bGxpZnkgdGhlIHN5bWJvbCBmaWxlLgorICAgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlImAKKyAgICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlImAKKyAgICBmaQorfQorCisjIGZ1bmNfd2luMzJfbGliaWQgYXJnCisjIHJldHVybiB0aGUgbGlicmFyeSB0eXBlIG9mIGZpbGUgJ2FyZycKKyMKKyMgTmVlZCBhIGxvdCBvZiBnb28gdG8gaGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBvcnQgbGlicworIyBIYXMgdG8gYmUgYSBzaGVsbCBmdW5jdGlvbiBpbiBvcmRlciB0byAnZWF0JyB0aGUgYXJndW1lbnQKKyMgdGhhdCBpcyBzdXBwbGllZCB3aGVuICRmaWxlX21hZ2ljX2NvbW1hbmQgaXMgY2FsbGVkLgorZnVuY193aW4zMl9saWJpZCAoKQoreworICAkb3B0X2RlYnVnCisgIHdpbjMyX2xpYmlkX3R5cGU9InVua25vd24iCisgIHdpbjMyX2ZpbGVyZXM9YGZpbGUgLUwgJDEgMj4vZGV2L251bGxgCisgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KKyAgKmFyXCBhcmNoaXZlXCBpbXBvcnRcIGxpYnJhcnkqKSAjIGRlZmluaXRlbHkgaW1wb3J0CisgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0IgorICAgIDs7CisgICphclwgYXJjaGl2ZSopICMgY291bGQgYmUgYW4gaW1wb3J0LCBvciBzdGF0aWMKKyAgICBpZiBldmFsICRPQkpEVU1QIC1mICQxIHwgJFNFRCAtZSAnMTBxJyAyPi9kZXYvbnVsbCB8CisgICAgICAgJEVHUkVQICdmaWxlIGZvcm1hdCBwZS1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT8nID4vZGV2L251bGwgOyB0aGVuCisgICAgICB3aW4zMl9ubXJlcz1gZXZhbCAkTk0gLWYgcG9zaXggLUEgJDEgfAorCSRTRUQgLW4gLWUgJworCSAgICAxLDEwMHsKKwkJLyBJIC97CisJCSAgICBzLC4qLGltcG9ydCwKKwkJICAgIHAKKwkJICAgIHEKKwkJfQorCSAgICB9J2AKKyAgICAgIGNhc2UgJHdpbjMyX25tcmVzIGluCisgICAgICBpbXBvcnQqKSAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0Ijs7CisgICAgICAqKSAgICAgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgc3RhdGljIjs7CisgICAgICBlc2FjCisgICAgZmkKKyAgICA7OworICAqRExMKikKKyAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgorICAgIDs7CisgICpleGVjdXRhYmxlKikgIyBidXQgc2hlbGwgc2NyaXB0cyBhcmUgImV4ZWN1dGFibGUiIHRvby4uLgorICAgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KKyAgICAqTVNcIFdpbmRvd3NcIFBFXCBJbnRlbCopCisgICAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgorICAgICAgOzsKKyAgICBlc2FjCisgICAgOzsKKyAgZXNhYworICAkRUNITyAiJHdpbjMyX2xpYmlkX3R5cGUiCit9CisKKworCisjIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlIGRpciBvbGRsaWIKK2Z1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICgpCit7CisgICAgJG9wdF9kZWJ1ZworICAgIGZfZXhfYW5fYXJfZGlyPSIkMSI7IHNoaWZ0CisgICAgZl9leF9hbl9hcl9vbGRsaWI9IiQxIgorICAgIGZ1bmNfc2hvd19ldmFsICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBcIlwkZl9leF9hbl9hcl9vbGRsaWJcIikiICdleGl0ICQ/JworICAgIGlmICgkQVIgdCAiJGZfZXhfYW5fYXJfb2xkbGliIiB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCisgICAgIDoKKyAgICBlbHNlCisgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJvYmplY3QgbmFtZSBjb25mbGljdHMgaW4gYXJjaGl2ZTogJGZfZXhfYW5fYXJfZGlyLyRmX2V4X2FuX2FyX29sZGxpYiIKKyAgICBmaQorfQorCisKKyMgZnVuY19leHRyYWN0X2FyY2hpdmVzIGdlbnRvcCBvbGRsaWIgLi4uCitmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgKCkKK3sKKyAgICAkb3B0X2RlYnVnCisgICAgbXlfZ2VudG9wPSIkMSI7IHNoaWZ0CisgICAgbXlfb2xkbGlicz0kezErIiRAIn0KKyAgICBteV9vbGRvYmpzPSIiCisgICAgbXlfeGxpYj0iIgorICAgIG15X3hhYnM9IiIKKyAgICBteV94ZGlyPSIiCisKKyAgICBmb3IgbXlfeGxpYiBpbiAkbXlfb2xkbGliczsgZG8KKyAgICAgICMgRXh0cmFjdCB0aGUgb2JqZWN0cy4KKyAgICAgIGNhc2UgJG15X3hsaWIgaW4KKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIG15X3hhYnM9IiRteV94bGliIiA7OworCSopIG15X3hhYnM9YHB3ZGAiLyRteV94bGliIiA7OworICAgICAgZXNhYworICAgICAgZnVuY19iYXNlbmFtZSAiJG15X3hsaWIiCisgICAgICBteV94bGliPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisgICAgICBteV94bGliX3U9JG15X3hsaWIKKyAgICAgIHdoaWxlIDo7IGRvCisgICAgICAgIGNhc2UgIiAkZXh0cmFjdGVkX2FyY2hpdmVzICIgaW4KKwkqIiAkbXlfeGxpYl91ICIqKQorCSAgZnVuY19hcml0aCAkZXh0cmFjdGVkX3NlcmlhbCArIDEKKwkgIGV4dHJhY3RlZF9zZXJpYWw9JGZ1bmNfYXJpdGhfcmVzdWx0CisJICBteV94bGliX3U9bHQkZXh0cmFjdGVkX3NlcmlhbC0kbXlfeGxpYiA7OworCSopIGJyZWFrIDs7CisJZXNhYworICAgICAgZG9uZQorICAgICAgZXh0cmFjdGVkX2FyY2hpdmVzPSIkZXh0cmFjdGVkX2FyY2hpdmVzICRteV94bGliX3UiCisgICAgICBteV94ZGlyPSIkbXlfZ2VudG9wLyRteV94bGliX3UiCisKKyAgICAgIGZ1bmNfbWtkaXJfcCAiJG15X3hkaXIiCisKKyAgICAgIGNhc2UgJGhvc3QgaW4KKyAgICAgICotZGFyd2luKikKKwlmdW5jX3ZlcmJvc2UgIkV4dHJhY3RpbmcgJG15X3hhYnMiCisJIyBEbyBub3QgYm90aGVyIGRvaW5nIGFueXRoaW5nIGlmIGp1c3QgYSBkcnkgcnVuCisJJG9wdF9kcnlfcnVuIHx8IHsKKwkgIGRhcndpbl9vcmlnX2Rpcj1gcHdkYAorCSAgY2QgJG15X3hkaXIgfHwgZXhpdCAkPworCSAgZGFyd2luX2FyY2hpdmU9JG15X3hhYnMKKwkgIGRhcndpbl9jdXJkaXI9YHB3ZGAKKwkgIGRhcndpbl9iYXNlX2FyY2hpdmU9YGJhc2VuYW1lICIkZGFyd2luX2FyY2hpdmUiYAorCSAgZGFyd2luX2FyY2hlcz1gJExJUE8gLWluZm8gIiRkYXJ3aW5fYXJjaGl2ZSIgMj4vZGV2L251bGwgfCAkR1JFUCBBcmNoaXRlY3R1cmVzIDI+L2Rldi9udWxsIHx8IHRydWVgCisJICBpZiB0ZXN0IC1uICIkZGFyd2luX2FyY2hlcyI7IHRoZW4KKwkgICAgZGFyd2luX2FyY2hlcz1gJEVDSE8gIiRkYXJ3aW5fYXJjaGVzIiB8ICRTRUQgLWUgJ3MvLiphcmU6Ly8nYAorCSAgICBkYXJ3aW5fYXJjaD0KKwkgICAgZnVuY192ZXJib3NlICIkZGFyd2luX2Jhc2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAkZGFyd2luX2FyY2hlcyIKKwkgICAgZm9yIGRhcndpbl9hcmNoIGluICAkZGFyd2luX2FyY2hlcyA7IGRvCisJICAgICAgZnVuY19ta2Rpcl9wICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgorCSAgICAgICRMSVBPIC10aGluICRkYXJ3aW5fYXJjaCAtb3V0cHV0ICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iICIke2Rhcndpbl9hcmNoaXZlfSIKKwkgICAgICBjZCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofSIKKwkgICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiYHB3ZGAiICIke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgorCSAgICAgIGNkICIkZGFyd2luX2N1cmRpciIKKwkgICAgICAkUk0gInVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0vJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfSIKKwkgICAgZG9uZSAjICRkYXJ3aW5fYXJjaGVzCisgICAgICAgICAgICAjIyBPa2F5IG5vdyB3ZSd2ZSBhIGJ1bmNoIG9mIHRoaW4gb2JqZWN0cywgZ290dGEgZmF0dGVuIHRoZW0gdXAgOikKKwkgICAgZGFyd2luX2ZpbGVsaXN0PWBmaW5kIHVuZmF0LSQkIC10eXBlIGYgLW5hbWUgXCoubyAtcHJpbnQgLW8gLW5hbWUgXCoubG8gLXByaW50IHwgJFNFRCAtZSAiJGJhc2VuYW1lIiB8IHNvcnQgLXVgCisJICAgIGRhcndpbl9maWxlPQorCSAgICBkYXJ3aW5fZmlsZXM9CisJICAgIGZvciBkYXJ3aW5fZmlsZSBpbiAkZGFyd2luX2ZpbGVsaXN0OyBkbworCSAgICAgIGRhcndpbl9maWxlcz1gZmluZCB1bmZhdC0kJCAtbmFtZSAkZGFyd2luX2ZpbGUgLXByaW50IHwgJE5MMlNQYAorCSAgICAgICRMSVBPIC1jcmVhdGUgLW91dHB1dCAiJGRhcndpbl9maWxlIiAkZGFyd2luX2ZpbGVzCisJICAgIGRvbmUgIyAkZGFyd2luX2ZpbGVsaXN0CisJICAgICRSTSAtcmYgdW5mYXQtJCQKKwkgICAgY2QgIiRkYXJ3aW5fb3JpZ19kaXIiCisJICBlbHNlCisJICAgIGNkICRkYXJ3aW5fb3JpZ19kaXIKKwkgICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgIiRteV94ZGlyIiAiJG15X3hhYnMiCisJICBmaSAjICRkYXJ3aW5fYXJjaGVzCisJfSAjICEkb3B0X2RyeV9ydW4KKwk7OworICAgICAgKikKKyAgICAgICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgIiRteV94ZGlyIiAiJG15X3hhYnMiCisJOzsKKyAgICAgIGVzYWMKKyAgICAgIG15X29sZG9ianM9IiRteV9vbGRvYmpzICJgZmluZCAkbXlfeGRpciAtbmFtZSBcKi4kb2JqZXh0IC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJpbnQgfCAkTkwyU1BgCisgICAgZG9uZQorCisgICAgZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdD0iJG15X29sZG9ianMiCit9CisKKworCisjIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxIFthcmc9bm9dCisjCisjIEVtaXQgdGhlIGZpcnN0IHBhcnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KKyMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24gYXNzb2NpYXRlZCB3aXRoCisjIGZ1bmNfZW1pdF93cmFwcGVyKCksIGJlbG93LgorZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgKCkKK3sKKwlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MV9hcmcxPW5vCisJaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgorCSAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDFfYXJnMT0kMQorCWZpCisKKwkkRUNITyAiXAorIyEgJFNIRUxMCisKKyMgJG91dHB1dCAtIHRlbXBvcmFyeSB3cmFwcGVyIHNjcmlwdCBmb3IgJG9iamRpci8kb3V0cHV0bmFtZQorIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCisjCisjIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90IGJlIGRpcmVjdGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGlidG9vbAorIyBsaWJyYXJpZXMgdGhhdCBpdCBkZXBlbmRzIG9uIGFyZSBpbnN0YWxsZWQuCisjCisjIFRoaXMgd3JhcHBlciBzY3JpcHQgc2hvdWxkIG5ldmVyIGJlIG1vdmVkIG91dCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5LgorIyBJZiBpdCBpcywgaXQgd2lsbCBub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuCisKKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKKyMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCitYc2VkPScke1NFRH0gLWUgMXMvXlgvLycKK3NlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9zdWJzdCcKKworIyBCZSBCb3VybmUgY29tcGF0aWJsZQoraWYgdGVzdCAtbiBcIlwke1pTSF9WRVJTSU9OK3NldH1cIiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIGVtdWxhdGUgc2gKKyAgTlVMTENNRD06CisgICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uIFwkezErXCJcJEBcIn0sIHdoaWNoCisgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKK2Vsc2UKKyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworZmkKK0JJTl9TSD14cGc0OyBleHBvcnQgQklOX1NIICMgZm9yIFRydTY0CitEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisKKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0CisjIGlmIENEUEFUSCBpcyBzZXQuCisodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICisKK3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKKworIyBUaGlzIGVudmlyb25tZW50IHZhcmlhYmxlIGRldGVybWluZXMgb3VyIG9wZXJhdGlvbiBtb2RlLgoraWYgdGVzdCBcIlwkbGlidG9vbF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0aGVuCisgICMgaW5zdGFsbCBtb2RlIG5lZWRzIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzOgorICBnZW5lcmF0ZWRfYnlfbGlidG9vbF92ZXJzaW9uPSckbWFjcm9fdmVyc2lvbicKKyAgbm90aW5zdF9kZXBsaWJzPSckbm90aW5zdF9kZXBsaWJzJworZWxzZQorICAjIFdoZW4gd2UgYXJlIHNvdXJjZWQgaW4gZXhlY3V0ZSBtb2RlLCBcJGZpbGUgYW5kIFwkRUNITyBhcmUgYWxyZWFkeSBzZXQuCisgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KKyAgICBFQ0hPPVwiJHFlY2hvXCIKKyAgICBmaWxlPVwiXCQwXCIKKyAgICAjIE1ha2Ugc3VyZSBlY2hvIHdvcmtzLgorICAgIGlmIHRlc3QgXCJYXCQxXCIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KKyAgICAgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgorICAgICAgc2hpZnQKKyAgICBlbGlmIHRlc3QgXCJYXGB7IFwkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsXGBcIiA9ICdYXHQnOyB0aGVuCisgICAgICAjIFlpcHBlZSwgXCRFQ0hPIHdvcmtzIQorICAgICAgOgorICAgIGVsc2UKKyAgICAgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbCwgYW5kIHRoZW4gbWF5YmUgXCRFQ0hPIHdpbGwgd29yay4KKyAgICAgIGV4ZWMgJFNIRUxMIFwiXCQwXCIgLS1uby1yZWV4ZWMgXCR7MStcIlwkQFwifQorICAgIGZpCisgIGZpXAorIgorCSRFQ0hPICJcCisKKyAgIyBGaW5kIHRoZSBkaXJlY3RvcnkgdGhhdCB0aGlzIHNjcmlwdCBsaXZlcyBpbi4KKyAgdGhpc2Rpcj1cYFwkRUNITyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAtZSAncyUvW14vXSokJSUnXGAKKyAgdGVzdCBcInhcJHRoaXNkaXJcIiA9IFwieFwkZmlsZVwiICYmIHRoaXNkaXI9LgorCisgICMgRm9sbG93IHN5bWJvbGljIGxpbmtzIHVudGlsIHdlIGdldCB0byB0aGUgcmVhbCB0aGlzZGlyLgorICBmaWxlPVxgbHMgLWxkIFwiXCRmaWxlXCIgfCAke1NFRH0gLW4gJ3MvLiotPiAvL3AnXGAKKyAgd2hpbGUgdGVzdCAtbiBcIlwkZmlsZVwiOyBkbworICAgIGRlc3RkaXI9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qXCQlJSdcYAorCisgICAgIyBJZiB0aGVyZSB3YXMgYSBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGNoYW5nZSB0aGlzZGlyLgorICAgIGlmIHRlc3QgXCJ4XCRkZXN0ZGlyXCIgIT0gXCJ4XCRmaWxlXCI7IHRoZW4KKyAgICAgIGNhc2UgXCJcJGRlc3RkaXJcIiBpbgorICAgICAgW1xcXFwvXSogfCBbQS1aYS16XTpbXFxcXC9dKikgdGhpc2Rpcj1cIlwkZGVzdGRpclwiIDs7CisgICAgICAqKSB0aGlzZGlyPVwiXCR0aGlzZGlyL1wkZGVzdGRpclwiIDs7CisgICAgICBlc2FjCisgICAgZmkKKworICAgIGZpbGU9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlXi4qLyUlJ1xgCisgICAgZmlsZT1cYGxzIC1sZCBcIlwkdGhpc2Rpci9cJGZpbGVcIiB8ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdcYAorICBkb25lCisiCit9CisjIGVuZDogZnVuY19lbWl0X3dyYXBwZXJfcGFydDEKKworIyBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiBbYXJnPW5vXQorIworIyBFbWl0IHRoZSBzZWNvbmQgcGFydCBvZiBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb24gc3Rkb3V0LgorIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkZXNjcmlwdGlvbiBhc3NvY2lhdGVkIHdpdGgKKyMgZnVuY19lbWl0X3dyYXBwZXIoKSwgYmVsb3cuCitmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiAoKQoreworCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzE9bm8KKwlpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCisJICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcxPSQxCisJZmkKKworCSRFQ0hPICJcCisKKyAgIyBVc3VhbGx5ICdubycsIGV4Y2VwdCBvbiBjeWd3aW4vbWluZ3cgd2hlbiBlbWJlZGRlZCBpbnRvCisgICMgdGhlIGN3cmFwcGVyLgorICBXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUj0kZnVuY19lbWl0X3dyYXBwZXJfcGFydDJfYXJnMQorICBpZiB0ZXN0IFwiXCRXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUlwiID0gXCJ5ZXNcIjsgdGhlbgorICAgICMgc3BlY2lhbCBjYXNlIGZvciAnLicKKyAgICBpZiB0ZXN0IFwiXCR0aGlzZGlyXCIgPSBcIi5cIjsgdGhlbgorICAgICAgdGhpc2Rpcj1cYHB3ZFxgCisgICAgZmkKKyAgICAjIHJlbW92ZSAubGlicyBmcm9tIHRoaXNkaXIKKyAgICBjYXNlIFwiXCR0aGlzZGlyXCIgaW4KKyAgICAqW1xcXFwvXSRvYmpkaXIgKSB0aGlzZGlyPVxgXCRFQ0hPIFwiWFwkdGhpc2RpclwiIHwgXCRYc2VkIC1lICdzJVtcXFxcL11bXlxcXFwvXSokJSUnXGAgOzsKKyAgICAkb2JqZGlyICkgICB0aGlzZGlyPS4gOzsKKyAgICBlc2FjCisgIGZpCisKKyAgIyBUcnkgdG8gZ2V0IHRoZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZS4KKyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBwd2RcYAorICB0ZXN0IC1uIFwiXCRhYnNkaXJcIiAmJiB0aGlzZGlyPVwiXCRhYnNkaXJcIgorIgorCisJaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KKwkgICRFQ0hPICJcCisgIHByb2dyYW09bHQtJyRvdXRwdXRuYW1lJyRleGVleHQKKyAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8kb2JqZGlyXCIKKworICBpZiB0ZXN0ICEgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgfHwKKyAgICAgeyBmaWxlPVxgbHMgLTFkdCBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiBcIlwkcHJvZ2Rpci8uLi9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8ICR7U0VEfSAxcVxgOyBcXAorICAgICAgIHRlc3QgXCJYXCRmaWxlXCIgIT0gXCJYXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB9OyB0aGVuCisKKyAgICBmaWxlPVwiXCRcJC1cJHByb2dyYW1cIgorCisgICAgaWYgdGVzdCAhIC1kIFwiXCRwcm9nZGlyXCI7IHRoZW4KKyAgICAgICRNS0RJUiBcIlwkcHJvZ2RpclwiCisgICAgZWxzZQorICAgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisgICAgZmkiCisKKwkgICRFQ0hPICJcCisKKyAgICAjIHJlbGluayBleGVjdXRhYmxlIGlmIG5lY2Vzc2FyeQorICAgIGlmIHRlc3QgLW4gXCJcJHJlbGlua19jb21tYW5kXCI7IHRoZW4KKyAgICAgIGlmIHJlbGlua19jb21tYW5kX291dHB1dD1cYGV2YWwgXCRyZWxpbmtfY29tbWFuZCAyPiYxXGA7IHRoZW4gOgorICAgICAgZWxzZQorCSRFQ0hPIFwiXCRyZWxpbmtfY29tbWFuZF9vdXRwdXRcIiA+JjIKKwkkUk0gXCJcJHByb2dkaXIvXCRmaWxlXCIKKwlleGl0IDEKKyAgICAgIGZpCisgICAgZmkKKworICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8fAorICAgIHsgJFJNIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOworICAgICAgJE1WIFwiXCRwcm9nZGlyL1wkZmlsZVwiIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB9CisgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisgIGZpIgorCWVsc2UKKwkgICRFQ0hPICJcCisgIHByb2dyYW09JyRvdXRwdXRuYW1lJworICBwcm9nZGlyPVwiXCR0aGlzZGlyLyRvYmpkaXJcIgorIgorCWZpCisKKwkkRUNITyAiXAorCisgIGlmIHRlc3QgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7IHRoZW4iCisKKwkjIEV4cG9ydCBvdXIgc2hsaWJwYXRoX3ZhciBpZiB3ZSBoYXZlIG9uZS4KKwlpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyAmJiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHRlbXBfcnBhdGgiOyB0aGVuCisJICAkRUNITyAiXAorICAgICMgQWRkIG91ciBvd24gbGlicmFyeSBwYXRoIHRvICRzaGxpYnBhdGhfdmFyCisgICAgJHNobGlicGF0aF92YXI9XCIkdGVtcF9ycGF0aFwkJHNobGlicGF0aF92YXJcIgorCisgICAgIyBTb21lIHN5c3RlbXMgY2Fubm90IGNvcGUgd2l0aCBjb2xvbi10ZXJtaW5hdGVkICRzaGxpYnBhdGhfdmFyCisgICAgIyBUaGUgc2Vjb25kIGNvbG9uIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBidWcgaW4gQmVPUyBSNCBzZWQKKyAgICAkc2hsaWJwYXRoX3Zhcj1cYFwkRUNITyBcIlhcJCRzaGxpYnBhdGhfdmFyXCIgfCBcJFhzZWQgLWUgJ3MvOjoqXCQvLydcYAorCisgICAgZXhwb3J0ICRzaGxpYnBhdGhfdmFyCisiCisJZmkKKworCSMgZml4dXAgdGhlIGRsbCBzZWFyY2hwYXRoIGlmIHdlIG5lZWQgdG8uCisJaWYgdGVzdCAtbiAiJGRsbHNlYXJjaHBhdGgiOyB0aGVuCisJICAkRUNITyAiXAorICAgICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQQVRICisgICAgUEFUSD0kZGxsc2VhcmNocGF0aDpcJFBBVEgKKyIKKwlmaQorCisJJEVDSE8gIlwKKyAgICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBcIiRtYWdpY1wiOyB0aGVuCisgICAgICAjIFJ1biB0aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJndW1lbnRzLgorIgorCWNhc2UgJGhvc3QgaW4KKwkjIEJhY2tzbGFzaGVzIHNlcGFyYXRlIGRpcmVjdG9yaWVzIG9uIHBsYWluIHdpbmRvd3MKKwkqLSotbWluZ3cgfCAqLSotb3MyKiB8ICotY2VnY2MqKQorCSAgJEVDSE8gIlwKKyAgICAgIGV4ZWMgXCJcJHByb2dkaXJcXFxcXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQorIgorCSAgOzsKKworCSopCisJICAkRUNITyAiXAorICAgICAgZXhlYyBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiBcJHsxK1wiXCRAXCJ9CisiCisJICA7OworCWVzYWMKKwkkRUNITyAiXAorICAgICAgXCRFQ0hPIFwiXCQwOiBjYW5ub3QgZXhlYyBcJHByb2dyYW0gXCQqXCIgMT4mMgorICAgICAgZXhpdCAxCisgICAgZmkKKyAgZWxzZQorICAgICMgVGhlIHByb2dyYW0gZG9lc24ndCBleGlzdC4KKyAgICBcJEVDSE8gXCJcJDA6IGVycm9yOiBcXFxgXCRwcm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBub3QgZXhpc3RcIiAxPiYyCisgICAgXCRFQ0hPIFwiVGhpcyBzY3JpcHQgaXMganVzdCBhIHdyYXBwZXIgZm9yIFwkcHJvZ3JhbS5cIiAxPiYyCisgICAgJEVDSE8gXCJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgMT4mMgorICAgIGV4aXQgMQorICBmaQorZmlcCisiCit9CisjIGVuZDogZnVuY19lbWl0X3dyYXBwZXJfcGFydDIKKworCisjIGZ1bmNfZW1pdF93cmFwcGVyIFthcmc9bm9dCisjCisjIEVtaXQgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KKyMgRG9uJ3QgZGlyZWN0bHkgb3BlbiBhIGZpbGUgYmVjYXVzZSB3ZSBtYXkgd2FudCB0bworIyBpbmNvcnBvcmF0ZSB0aGUgc2NyaXB0IGNvbnRlbnRzIHdpdGhpbiBhIGN5Z3dpbi9taW5ndworIyB3cmFwcGVyIGV4ZWN1dGFibGUuICBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluCisjIGZ1bmNfbW9kZV9saW5rIGJlY2F1c2UgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJpYWJsZXMKKyMgc2V0IHRoZXJlaW4uCisjCisjIEFSRyBpcyB0aGUgdmFsdWUgdGhhdCB0aGUgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVIKKyMgdmFyaWFibGUgd2lsbCB0YWtlLiAgSWYgJ3llcycsIHRoZW4gdGhlIGVtaXR0ZWQgc2NyaXB0CisjIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBpdCBpcyBzdG9yZWQgaXMKKyMgdGhlICRvYmpkaXIgZGlyZWN0b3J5LiAgVGhpcyBpcyBhIGN5Z3dpbi9taW5ndy1zcGVjaWZpYworIyBiZWhhdmlvci4KK2Z1bmNfZW1pdF93cmFwcGVyICgpCit7CisJZnVuY19lbWl0X3dyYXBwZXJfYXJnMT1ubworCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KKwkgIGZ1bmNfZW1pdF93cmFwcGVyX2FyZzE9JDEKKwlmaQorCisJIyBzcGxpdCB0aGlzIHVwIHNvIHRoYXQgZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYworCSMgY2FuIGNhbGwgZWFjaCBwYXJ0IGluZGVwZW5kZW50bHkuCisJZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgIiR7ZnVuY19lbWl0X3dyYXBwZXJfYXJnMX0iCisJZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgIiR7ZnVuY19lbWl0X3dyYXBwZXJfYXJnMX0iCit9CisKKworIyBmdW5jX3RvX2hvc3RfcGF0aCBhcmcKKyMKKyMgQ29udmVydCBwYXRocyB0byBob3N0IGZvcm1hdCB3aGVuIHVzZWQgd2l0aCBidWlsZCB0b29scy4KKyMgSW50ZW5kZWQgZm9yIHVzZSB3aXRoICJuYXRpdmUiIG1pbmd3ICh3aGVyZSBsaWJ0b29sIGl0c2VsZgorIyBpcyBydW5uaW5nIHVuZGVyIHRoZSBtc3lzIHNoZWxsKSwgb3IgaW4gdGhlIGZvbGxvd2luZyBjcm9zcy0KKyMgYnVpbGQgZW52aXJvbm1lbnRzOgorIyAgICAkYnVpbGQgICAgICAgICAgJGhvc3QKKyMgICAgbWluZ3cgKG1zeXMpICAgIG1pbmd3ICBbZS5nLiBuYXRpdmVdCisjICAgIGN5Z3dpbiAgICAgICAgICBtaW5ndworIyAgICAqbml4ICsgd2luZSAgICAgbWluZ3cKKyMgd2hlcmUgd2luZSBpcyBlcXVpcHBlZCB3aXRoIHRoZSBgd2luZXBhdGgnIGV4ZWN1dGFibGUuCisjIEluIHRoZSBuYXRpdmUgbWluZ3cgY2FzZSwgdGhlIChtc3lzKSBzaGVsbCBhdXRvbWF0aWNhbGx5CisjIGNvbnZlcnRzIHBhdGhzIGZvciBhbnkgbm9uLW1zeXMgYXBwbGljYXRpb25zIGl0IGxhdW5jaGVzLAorIyBidXQgdGhhdCBmYWNpbGl0eSBpc24ndCBhdmFpbGFibGUgZnJvbSBpbnNpZGUgdGhlIGN3cmFwcGVyLgorIyBTaW1pbGFyIGFjY29tbW9kYXRpb25zIGFyZSBuZWNlc3NhcnkgZm9yICRob3N0IG1pbmd3IGFuZAorIyAkYnVpbGQgY3lnd2luLiAgQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRvZXMgbm8gaGFybSBmb3Igb3RoZXIKKyMgJGhvc3QvJGJ1aWxkIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGFib3ZlLgorIworIyBBUkcgaXMgdGhlIHBhdGggKG9uICRidWlsZCkgdGhhdCBzaG91bGQgYmUgY29udmVydGVkIHRvCisjIHRoZSBwcm9wZXIgcmVwcmVzZW50YXRpb24gZm9yICRob3N0LiBUaGUgcmVzdWx0IGlzIHN0b3JlZAorIyBpbiAkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0LgorZnVuY190b19ob3N0X3BhdGggKCkKK3sKKyAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgorICAgIGNhc2UgJGhvc3QgaW4KKyAgICAgICptaW5ndyogKQorICAgICAgICBsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwqfFxcfGc7c3wvfFxcfGc7c3xcXHxcXFxcfGcnCisgICAgICAgIGNhc2UgJGJ1aWxkIGluCisgICAgICAgICAgKm1pbmd3KiApICMgYWN0dWFsbHksIG1zeXMKKyAgICAgICAgICAgICMgYXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2VzIHRvIHJlc3VsdAorICAgICAgICAgICAgbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcz0icy9bIF0qXCQvLyIKKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9YCggY21kIC8vYyBlY2hvICIkMSIgfFwKKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXMiICkgMj4vZGV2L251bGwgfHwgZWNobyAiImAKKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCisgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKKyAgICAgICAgICAgIDs7CisgICAgICAgICAgKmN5Z3dpbiogKQorICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT1gY3lncGF0aCAtdyAiJDEiYAorICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgfFwKKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorICAgICAgICAgICAgOzsKKyAgICAgICAgICAqICkKKyAgICAgICAgICAgICMgVW5mb3J0dW5hdGVseSwgd2luZXBhdGggZG9lcyBub3QgZXhpdCB3aXRoIGEgbm9uLXplcm8KKyAgICAgICAgICAgICMgZXJyb3IgY29kZSwgc28gd2UgYXJlIGZvcmNlZCB0byBjaGVjayB0aGUgY29udGVudHMgb2YKKyAgICAgICAgICAgICMgc3Rkb3V0LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIGNvbW1hbmQgaXMgbm90CisgICAgICAgICAgICAjIGZvdW5kLCB0aGUgc2hlbGwgd2lsbCBzZXQgYW4gZXhpdCBjb2RlIG9mIDEyNyBhbmQgcHJpbnQKKyAgICAgICAgICAgICMgKmFuIGVycm9yIG1lc3NhZ2UqIHRvIHN0ZG91dC4gU28gd2UgbXVzdCBjaGVjayBmb3IgYm90aAorICAgICAgICAgICAgIyBlcnJvciBjb2RlIG9mIHplcm8gQU5EIG5vbi1lbXB0eSBzdGRvdXQsIHdoaWNoIGV4cGxhaW5zCisgICAgICAgICAgICAjIHRoZSBvZGQgY29uc3RydWN0aW9uOgorICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT1gd2luZXBhdGggLXcgIiQxIiAyPi9kZXYvbnVsbGAKKyAgICAgICAgICAgIGlmIHRlc3QgIiQ/IiAtZXEgMCAmJiB0ZXN0IC1uICIke2Z1bmNfdG9faG9zdF9wYXRoX3RtcDF9IjsgdGhlbgorICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAorICAgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgIyBBbGxvdyB3YXJuaW5nIGJlbG93LgorICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiIKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgICA7OworICAgICAgICBlc2FjCisgICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiIDsgdGhlbgorICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgaG9zdCBwYXRoIGNvcnJlc3BvbmRpbmcgdG8iCisgICAgICAgICAgZnVuY19lcnJvciAiICAnJDEnIgorICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyBtYXkgbm90IHdvcmsuIgorICAgICAgICAgICMgRmFsbGJhY2s6CisgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKKyAgICAgICAgZmkKKyAgICAgICAgOzsKKyAgICBlc2FjCisgIGZpCit9CisjIGVuZDogZnVuY190b19ob3N0X3BhdGgKKworIyBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgYXJnCisjCisjIENvbnZlcnQgcGF0aGxpc3RzIHRvIGhvc3QgZm9ybWF0IHdoZW4gdXNlZCB3aXRoIGJ1aWxkIHRvb2xzLgorIyBTZWUgZnVuY190b19ob3N0X3BhdGgoKSwgYWJvdmUuIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgdGhlCisjIGZvbGxvd2luZyAkYnVpbGQvJGhvc3QgY29tYmluYXRpb25zIChidXQgZG9lcyBubyBoYXJtIGZvcgorIyBjb21iaW5hdGlvbnMgbm90IGxpc3RlZCBoZXJlKToKKyMgICAgJGJ1aWxkICAgICAgICAgICRob3N0CisjICAgIG1pbmd3IChtc3lzKSAgICBtaW5ndyAgW2UuZy4gbmF0aXZlXQorIyAgICBjeWd3aW4gICAgICAgICAgbWluZ3cKKyMgICAgKm5peCArIHdpbmUgICAgIG1pbmd3CisjCisjIFBhdGggc2VwYXJhdG9ycyBhcmUgYWxzbyBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgZm9ybWF0IHRvCisjICRob3N0IGZvcm1hdC4gSWYgQVJHIGJlZ2lucyBvciBlbmRzIHdpdGggYSBwYXRoIHNlcGFyYXRvcgorIyBjaGFyYWN0ZXIsIGl0IGlzIHByZXNlcnZlZCAoYnV0IGNvbnZlcnRlZCB0byAkaG9zdCBmb3JtYXQpCisjIG9uIG91dHB1dC4KKyMKKyMgQVJHIGlzIGEgcGF0aGxpc3QgKG9uICRidWlsZCkgdGhhdCBzaG91bGQgYmUgY29udmVydGVkIHRvCisjIHRoZSBwcm9wZXIgcmVwcmVzZW50YXRpb24gb24gJGhvc3QuIFRoZSByZXN1bHQgaXMgc3RvcmVkCisjIGluICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0LgorZnVuY190b19ob3N0X3BhdGhsaXN0ICgpCit7CisgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiQxIgorICBpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCisgICAgY2FzZSAkaG9zdCBpbgorICAgICAgKm1pbmd3KiApCisgICAgICAgIGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKKyAgICAgICAgIyBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVycyBmcm9tCisgICAgICAgICMgQVJHLiBtc3lzIGJlaGF2aW9yIGlzIGluY29uc2lzdGVudCBoZXJlLCBjeWdwYXRoIHR1cm5zIHRoZW0KKyAgICAgICAgIyBpbnRvICcuOycgYW5kICc7LicsIGFuZCB3aW5lcGF0aCBpZ25vcmVzIHRoZW0gY29tcGxldGVseS4KKyAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDI9IiQxIgorICAgICAgICAjIE9uY2Ugc2V0IGZvciB0aGlzIGNhbGwsIHRoaXMgdmFyaWFibGUgc2hvdWxkIG5vdCBiZQorICAgICAgICAjIHJlYXNzaWduZWQuIEl0IGlzIHVzZWQgaW4gdGhhIGZhbGxiYWNrIGNhc2UuCisgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxPWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDIiIHxcCisgICAgICAgICAgJFNFRCAtZSAnc3xeOip8fCcgLWUgJ3N8OiokfHwnYAorICAgICAgICBjYXNlICRidWlsZCBpbgorICAgICAgICAgICptaW5ndyogKSAjIEFjdHVhbGx5LCBtc3lzLgorICAgICAgICAgICAgIyBBd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0LgorICAgICAgICAgICAgbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcz0icy9bIF0qXCQvLyIKKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyPWAoIGNtZCAvL2MgZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIiB8XAorICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcyIgKSAyPi9kZXYvbnVsbCB8fCBlY2hvICIiYAorICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8XAorICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisgICAgICAgICAgICA7OworICAgICAgICAgICpjeWd3aW4qICkKKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyPWBjeWdwYXRoIC13IC1wICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEiYAorICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8XAorICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisgICAgICAgICAgICA7OworICAgICAgICAgICogKQorICAgICAgICAgICAgIyB1bmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2Vzbid0IGNvbnZlcnQgcGF0aGxpc3RzCisgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIiCisgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTPSRJRlMKKyAgICAgICAgICAgIElGUz06CisgICAgICAgICAgICBmb3IgZnVuY190b19ob3N0X3BhdGhsaXN0X2YgaW4gJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIDsgZG8KKyAgICAgICAgICAgICAgSUZTPSRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTCisgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiIgOyB0aGVuCisgICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGggIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiIKKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IiA7IHRoZW4KKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IiA7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKKyAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ7JGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKKyAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgSUZTPToKKyAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgIElGUz0kZnVuY190b19ob3N0X3BhdGhsaXN0X29sZElGUworICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIgOyB0aGVuCisgICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSB0aGUgaG9zdCBwYXRoKHMpIGNvcnJlc3BvbmRpbmcgdG8iCisgICAgICAgICAgZnVuY19lcnJvciAiICAnJDEnIgorICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyBtYXkgbm90IHdvcmsuIgorICAgICAgICAgICMgRmFsbGJhY2suIFRoaXMgbWF5IGJyZWFrIGlmICQxIGNvbnRhaW5zIERPUy1zdHlsZSBkcml2ZQorICAgICAgICAgICMgc3BlY2lmaWNhdGlvbnMuIFRoZSBmaXggaXMgbm90IHRvIGNvbXBsaWNhdGUgdGhlIGV4cHJlc3Npb24KKyAgICAgICAgICAjIGJlbG93LCBidXQgZm9yIHRoZSB1c2VyIHRvIHByb3ZpZGUgYSB3b3JraW5nIHdpbmUgaW5zdGFsbGF0aW9uCisgICAgICAgICAgIyB3aXRoIHdpbmVwYXRoIHNvIHRoYXQgcGF0aCB0cmFuc2xhdGlvbiBpbiB0aGUgY3Jvc3MtdG8tbWluZ3cKKyAgICAgICAgICAjIGNhc2Ugd29ya3MgcHJvcGVybHkuCisgICAgICAgICAgbHRfcmVwbGFjZV9wYXRoc2VwX25peF90b19kb3M9InN8Onw7fGciCisgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIiB8XAorICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3JlcGxhY2VfcGF0aHNlcF9uaXhfdG9fZG9zImAKKyAgICAgICAgZmkKKyAgICAgICAgIyBOb3csIGFkZCB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3JzIGJhY2sKKyAgICAgICAgY2FzZSAiJDEiIGluCisgICAgICAgICAgOiogKSBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSI7JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiCisgICAgICAgICAgICA7OworICAgICAgICBlc2FjCisgICAgICAgIGNhc2UgIiQxIiBpbgorICAgICAgICAgICo6ICkgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ7IgorICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICA7OworICAgIGVzYWMKKyAgZmkKK30KKyMgZW5kOiBmdW5jX3RvX2hvc3RfcGF0aGxpc3QKKworIyBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjCisjIGVtaXQgdGhlIHNvdXJjZSBjb2RlIGZvciBhIHdyYXBwZXIgZXhlY3V0YWJsZSBvbiBzdGRvdXQKKyMgTXVzdCBPTkxZIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBmdW5jX21vZGVfbGluayBiZWNhdXNlCisjIGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFyaWFibGUgc2V0IHRoZXJlaW4uCitmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjICgpCit7CisJY2F0IDw8RU9GCisKKy8qICRjd3JhcHBlcnNvdXJjZSAtIHRlbXBvcmFyeSB3cmFwcGVyIGV4ZWN1dGFibGUgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKKyAgIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKworICAgVGhlICRvdXRwdXQgcHJvZ3JhbSBjYW5ub3QgYmUgZGlyZWN0bHkgZXhlY3V0ZWQgdW50aWwgYWxsIHRoZSBsaWJ0b29sCisgICBsaWJyYXJpZXMgdGhhdCBpdCBkZXBlbmRzIG9uIGFyZSBpbnN0YWxsZWQuCisKKyAgIFRoaXMgd3JhcHBlciBleGVjdXRhYmxlIHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKyAgIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KKworICAgQ3VycmVudGx5LCBpdCBzaW1wbHkgZXhlY3MgdGhlIHdyYXBwZXIgKnNjcmlwdCogIiRTSEVMTCAkb3V0cHV0IiwKKyAgIGJ1dCBjb3VsZCBldmVudHVhbGx5IGFic29yYiBhbGwgb2YgdGhlIHNjcmlwdHMgZnVuY3Rpb25hbGl0eSBhbmQKKyAgIGV4ZWMgJG9iamRpci8kb3V0cHV0bmFtZSBkaXJlY3RseS4KKyovCitFT0YKKwkgICAgY2F0IDw8IkVPRiIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2lmZGVmIF9NU0NfVkVSCisjIGluY2x1ZGUgPGRpcmVjdC5oPgorIyBpbmNsdWRlIDxwcm9jZXNzLmg+CisjIGluY2x1ZGUgPGlvLmg+CisjIGRlZmluZSBzZXRtb2RlIF9zZXRtb2RlCisjZWxzZQorIyBpbmNsdWRlIDx1bmlzdGQuaD4KKyMgaW5jbHVkZSA8c3RkaW50Lmg+CisjIGlmZGVmIF9fQ1lHV0lOX18KKyMgIGluY2x1ZGUgPGlvLmg+CisjICBkZWZpbmUgSEFWRV9TRVRFTlYKKyMgIGlmZGVmIF9fU1RSSUNUX0FOU0lfXworY2hhciAqcmVhbHBhdGggKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKK2ludCBwdXRlbnYgKGNoYXIgKik7CitpbnQgc2V0ZW52IChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsKKyMgIGVuZGlmCisjIGVuZGlmCisjZW5kaWYKKyNpbmNsdWRlIDxtYWxsb2MuaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorCisjaWYgZGVmaW5lZChQQVRIX01BWCkKKyMgZGVmaW5lIExUX1BBVEhNQVggUEFUSF9NQVgKKyNlbGlmIGRlZmluZWQoTUFYUEFUSExFTikKKyMgZGVmaW5lIExUX1BBVEhNQVggTUFYUEFUSExFTgorI2Vsc2UKKyMgZGVmaW5lIExUX1BBVEhNQVggMTAyNAorI2VuZGlmCisKKyNpZm5kZWYgU19JWE9USAorIyBkZWZpbmUgU19JWE9USCAwCisjZW5kaWYKKyNpZm5kZWYgU19JWEdSUAorIyBkZWZpbmUgU19JWEdSUCAwCisjZW5kaWYKKworI2lmZGVmIF9NU0NfVkVSCisjIGRlZmluZSBTX0lYVVNSIF9TX0lFWEVDCisjIGRlZmluZSBzdGF0IF9zdGF0CisjIGlmbmRlZiBfSU5UUFRSX1RfREVGSU5FRAorIyAgZGVmaW5lIGludHB0cl90IGludAorIyBlbmRpZgorI2VuZGlmCisKKyNpZm5kZWYgRElSX1NFUEFSQVRPUgorIyBkZWZpbmUgRElSX1NFUEFSQVRPUiAnLycKKyMgZGVmaW5lIFBBVEhfU0VQQVJBVE9SICc6JworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChfV0lOMzIpIHx8IGRlZmluZWQgKF9fTVNET1NfXykgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSB8fCBcCisgIGRlZmluZWQgKF9fT1MyX18pCisjIGRlZmluZSBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTQorIyBkZWZpbmUgRk9QRU5fV0IgIndiIgorIyBpZm5kZWYgRElSX1NFUEFSQVRPUl8yCisjICBkZWZpbmUgRElSX1NFUEFSQVRPUl8yICdcXCcKKyMgZW5kaWYKKyMgaWZuZGVmIFBBVEhfU0VQQVJBVE9SXzIKKyMgIGRlZmluZSBQQVRIX1NFUEFSQVRPUl8yICc7JworIyBlbmRpZgorI2VuZGlmCisKKyNpZm5kZWYgRElSX1NFUEFSQVRPUl8yCisjIGRlZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBESVJfU0VQQVJBVE9SKQorI2Vsc2UgLyogRElSX1NFUEFSQVRPUl8yICovCisjIGRlZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSBcCisJKCgoY2gpID09IERJUl9TRVBBUkFUT1IpIHx8ICgoY2gpID09IERJUl9TRVBBUkFUT1JfMikpCisjZW5kaWYgLyogRElSX1NFUEFSQVRPUl8yICovCisKKyNpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgorIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQQVJBVE9SKQorI2Vsc2UgLyogUEFUSF9TRVBBUkFUT1JfMiAqLworIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQQVJBVE9SXzIpCisjZW5kaWYgLyogUEFUSF9TRVBBUkFUT1JfMiAqLworCisjaWZkZWYgX19DWUdXSU5fXworIyBkZWZpbmUgRk9QRU5fV0IgIndiIgorI2VuZGlmCisKKyNpZm5kZWYgRk9QRU5fV0IKKyMgZGVmaW5lIEZPUEVOX1dCICJ3IgorI2VuZGlmCisjaWZuZGVmIF9PX0JJTkFSWQorIyBkZWZpbmUgX09fQklOQVJZIDAKKyNlbmRpZgorCisjZGVmaW5lIFhNQUxMT0ModHlwZSwgbnVtKSAgICAgICgodHlwZSAqKSB4bWFsbG9jICgobnVtKSAqIHNpemVvZih0eXBlKSkpCisjZGVmaW5lIFhGUkVFKHN0YWxlKSBkbyB7IFwKKyAgaWYgKHN0YWxlKSB7IGZyZWUgKCh2b2lkICopIHN0YWxlKTsgc3RhbGUgPSAwOyB9IFwKK30gd2hpbGUgKDApCisKKyN1bmRlZiBMVFdSQVBQRVJfREVCVUdQUklOVEYKKyNpZiBkZWZpbmVkIERFQlVHV1JBUFBFUgorIyBkZWZpbmUgTFRXUkFQUEVSX0RFQlVHUFJJTlRGKGFyZ3MpIGx0d3JhcHBlcl9kZWJ1Z3ByaW50ZiBhcmdzCitzdGF0aWMgdm9pZAorbHR3cmFwcGVyX2RlYnVncHJpbnRmIChjb25zdCBjaGFyICpmbXQsIC4uLikKK3sKKyAgICB2YV9saXN0IGFyZ3M7CisgICAgdmFfc3RhcnQgKGFyZ3MsIGZtdCk7CisgICAgKHZvaWQpIHZmcHJpbnRmIChzdGRlcnIsIGZtdCwgYXJncyk7CisgICAgdmFfZW5kIChhcmdzKTsKK30KKyNlbHNlCisjIGRlZmluZSBMVFdSQVBQRVJfREVCVUdQUklOVEYoYXJncykKKyNlbmRpZgorCitjb25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSBOVUxMOworCit2b2lkICp4bWFsbG9jIChzaXplX3QgbnVtKTsKK2NoYXIgKnhzdHJkdXAgKGNvbnN0IGNoYXIgKnN0cmluZyk7Citjb25zdCBjaGFyICpiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOworY2hhciAqZmluZF9leGVjdXRhYmxlIChjb25zdCBjaGFyICp3cmFwcGVyKTsKK2NoYXIgKmNoYXNlX3N5bWxpbmtzIChjb25zdCBjaGFyICpwYXRoc3BlYyk7CitpbnQgbWFrZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKTsKK2ludCBjaGVja19leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKTsKK2NoYXIgKnN0cmVuZHphcCAoY2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpOwordm9pZCBsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKTsKK3ZvaWQgbHRfc2V0ZW52IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7CitjaGFyICpsdF9leHRlbmRfc3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQsIGludCB0b19lbmQpOwordm9pZCBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChjb25zdCBjaGFyICphcmcpOwordm9pZCBsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAoY29uc3QgY2hhciAqYXJnKTsKK3ZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoY29uc3QgY2hhciAqYXJnKTsKK2ludCBsdF9zcGxpdF9uYW1lX3ZhbHVlIChjb25zdCBjaGFyICphcmcsIGNoYXIqKiBuYW1lLCBjaGFyKiogdmFsdWUpOwordm9pZCBsdF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKK3ZvaWQgbHRfdXBkYXRlX2xpYl9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7CisKK3N0YXRpYyBjb25zdCBjaGFyICpzY3JpcHRfdGV4dF9wYXJ0MSA9CitFT0YKKworCSAgICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSB5ZXMgfAorCSAgICAgICAgJFNFRCAtZSAncy9cKFtcXCJdXCkvXFxcMS9nJyBcCisJICAgICAgICAgICAgIC1lICdzL14vICAiLycgLWUgJ3MvJC9cXG4iLycKKwkgICAgZWNobyAiOyIKKwkgICAgY2F0IDw8RU9GCisKK3N0YXRpYyBjb25zdCBjaGFyICpzY3JpcHRfdGV4dF9wYXJ0MiA9CitFT0YKKwkgICAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgeWVzIHwKKwkgICAgICAgICRTRUQgLWUgJ3MvXChbXFwiXVwpL1xcXDEvZycgXAorCSAgICAgICAgICAgICAtZSAncy9eLyAgIi8nIC1lICdzLyQvXFxuIi8nCisJICAgIGVjaG8gIjsiCisKKwkgICAgY2F0IDw8RU9GCitjb25zdCBjaGFyICogTUFHSUNfRVhFID0gIiRtYWdpY19leGUiOworY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBUk5BTUUgPSAiJHNobGlicGF0aF92YXIiOworRU9GCisKKwkgICAgaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgorICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgIiR0ZW1wX3JwYXRoIgorCSAgICAgIGNhdCA8PEVPRgorY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiOworRU9GCisJICAgIGVsc2UKKwkgICAgICBjYXQgPDwiRU9GIgorY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiIjsKK0VPRgorCSAgICBmaQorCisJICAgIGlmIHRlc3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsgdGhlbgorICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgIiRkbGxzZWFyY2hwYXRoOiIKKwkgICAgICBjYXQgPDxFT0YKK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIlBBVEgiOworY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBTFVFICAgPSAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiOworRU9GCisJICAgIGVsc2UKKwkgICAgICBjYXQgPDwiRU9GIgorY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBUk5BTUUgPSAiIjsKK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiI7CitFT0YKKwkgICAgZmkKKworCSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgorCSAgICAgIGNhdCA8PEVPRgorY29uc3QgY2hhciAqIFRBUkdFVF9QUk9HUkFNX05BTUUgPSAibHQtJG91dHB1dG5hbWUiOyAvKiBob3BlZnVsbHksIG5vIC5leGUgKi8KK0VPRgorCSAgICBlbHNlCisJICAgICAgY2F0IDw8RU9GCitjb25zdCBjaGFyICogVEFSR0VUX1BST0dSQU1fTkFNRSA9ICIkb3V0cHV0bmFtZSI7IC8qIGhvcGVmdWxseSwgbm8gLmV4ZSAqLworRU9GCisJICAgIGZpCisKKworCSAgICBjYXQgPDwiRU9GIgorCisjZGVmaW5lIExUV1JBUFBFUl9PUFRJT05fUFJFRklYICAgICAgICAgIi0tbHQtIgorI2RlZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggIDUKKworc3RhdGljIGNvbnN0IHNpemVfdCBvcHRfcHJlZml4X2xlbiAgICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIOworc3RhdGljIGNvbnN0IGNoYXIgKmx0d3JhcHBlcl9vcHRpb25fcHJlZml4ID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVg7CisKK3N0YXRpYyBjb25zdCBjaGFyICpkdW1wc2NyaXB0X29wdCAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJkdW1wLXNjcmlwdCI7CisKK3N0YXRpYyBjb25zdCBzaXplX3QgZW52X3NldF9vcHRfbGVuICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCArIDc7CitzdGF0aWMgY29uc3QgY2hhciAqZW52X3NldF9vcHQgICAgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZW52LXNldCI7CisgIC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIHZhbHVlIG9mIGZvbyBpcyBzZXQgdG8gYmFyICovCisKK3N0YXRpYyBjb25zdCBzaXplX3QgZW52X3ByZXBlbmRfb3B0X2xlbiA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCArIDExOworc3RhdGljIGNvbnN0IGNoYXIgKmVudl9wcmVwZW5kX29wdCAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVudi1wcmVwZW5kIjsKKyAgLyogYXJndW1lbnQgaXMgcHV0ZW52LXN0eWxlICJmb289YmFyIiwgbmV3IHZhbHVlIG9mIGZvbyBpcyBiYXIke2Zvb30gKi8KKworc3RhdGljIGNvbnN0IHNpemVfdCBlbnZfYXBwZW5kX29wdF9sZW4gID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICsgMTA7CitzdGF0aWMgY29uc3QgY2hhciAqZW52X2FwcGVuZF9vcHQgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZW52LWFwcGVuZCI7CisgIC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIG5ldyB2YWx1ZSBvZiBmb28gaXMgJHtmb299YmFyICovCisKK2ludAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgY2hhciAqKm5ld2FyZ3o7CisgIGludCAgbmV3YXJnYzsKKyAgY2hhciAqdG1wX3BhdGhzcGVjOworICBjaGFyICphY3R1YWxfY3dyYXBwZXJfcGF0aDsKKyAgY2hhciAqYWN0dWFsX2N3cmFwcGVyX25hbWU7CisgIGNoYXIgKnRhcmdldF9uYW1lOworICBjaGFyICpsdF9hcmd2X3plcm87CisgIGludHB0cl90IHJ2YWwgPSAxMjc7CisKKyAgaW50IGk7CisKKyAgcHJvZ3JhbV9uYW1lID0gKGNoYXIgKikgeHN0cmR1cCAoYmFzZV9uYW1lIChhcmd2WzBdKSk7CisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgYXJndlswXSAgICAgIDogJXNcbiIsIGFyZ3ZbMF0pKTsKKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBwcm9ncmFtX25hbWUgOiAlc1xuIiwgcHJvZ3JhbV9uYW1lKSk7CisKKyAgLyogdmVyeSBzaW1wbGUgYXJnIHBhcnNpbmc7IGRvbid0IHdhbnQgdG8gcmVseSBvbiBnZXRvcHQgKi8KKyAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykKKyAgICB7CisgICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBkdW1wc2NyaXB0X29wdCkgPT0gMCkKKwl7CitFT0YKKwkgICAgY2FzZSAiJGhvc3QiIGluCisJICAgICAgKm1pbmd3KiB8ICpjeWd3aW4qICkKKwkJIyBtYWtlIHN0ZG91dCB1c2UgInVuaXgiIGxpbmUgZW5kaW5ncworCQllY2hvICIgICAgICAgICAgc2V0bW9kZSgxLF9PX0JJTkFSWSk7IgorCQk7OworCSAgICAgIGVzYWMKKworCSAgICBjYXQgPDwiRU9GIgorCSAgcHJpbnRmICgiJXMiLCBzY3JpcHRfdGV4dF9wYXJ0MSk7CisJICBwcmludGYgKCIlcyIsIHNjcmlwdF90ZXh0X3BhcnQyKTsKKwkgIHJldHVybiAwOworCX0KKyAgICB9CisKKyAgbmV3YXJneiA9IFhNQUxMT0MgKGNoYXIgKiwgYXJnYyArIDEpOworICB0bXBfcGF0aHNwZWMgPSBmaW5kX2V4ZWN1dGFibGUgKGFyZ3ZbMF0pOworICBpZiAodG1wX3BhdGhzcGVjID09IE5VTEwpCisgICAgbHRfZmF0YWwgKCJDb3VsZG4ndCBmaW5kICVzIiwgYXJndlswXSk7CisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgZm91bmQgZXhlIChiZWZvcmUgc3ltbGluayBjaGFzZSkgYXQgOiAlc1xuIiwKKwkJCSAgdG1wX3BhdGhzcGVjKSk7CisKKyAgYWN0dWFsX2N3cmFwcGVyX3BhdGggPSBjaGFzZV9zeW1saW5rcyAodG1wX3BhdGhzcGVjKTsKKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmb3VuZCBleGUgKGFmdGVyIHN5bWxpbmsgY2hhc2UpIGF0IDogJXNcbiIsCisJCQkgIGFjdHVhbF9jd3JhcHBlcl9wYXRoKSk7CisgIFhGUkVFICh0bXBfcGF0aHNwZWMpOworCisgIGFjdHVhbF9jd3JhcHBlcl9uYW1lID0geHN0cmR1cCggYmFzZV9uYW1lIChhY3R1YWxfY3dyYXBwZXJfcGF0aCkpOworICBzdHJlbmR6YXAgKGFjdHVhbF9jd3JhcHBlcl9wYXRoLCBhY3R1YWxfY3dyYXBwZXJfbmFtZSk7CisKKyAgLyogd3JhcHBlciBuYW1lIHRyYW5zZm9ybXMgKi8KKyAgc3RyZW5kemFwIChhY3R1YWxfY3dyYXBwZXJfbmFtZSwgIi5leGUiKTsKKyAgdG1wX3BhdGhzcGVjID0gbHRfZXh0ZW5kX3N0ciAoYWN0dWFsX2N3cmFwcGVyX25hbWUsICIuZXhlIiwgMSk7CisgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfbmFtZSk7CisgIGFjdHVhbF9jd3JhcHBlcl9uYW1lID0gdG1wX3BhdGhzcGVjOworICB0bXBfcGF0aHNwZWMgPSAwOworCisgIC8qIHRhcmdldF9uYW1lIHRyYW5zZm9ybXMgLS0gdXNlIGFjdHVhbCB0YXJnZXQgcHJvZ3JhbSBuYW1lOyBtaWdodCBoYXZlIGx0LSBwcmVmaXggKi8KKyAgdGFyZ2V0X25hbWUgPSB4c3RyZHVwIChiYXNlX25hbWUgKFRBUkdFVF9QUk9HUkFNX05BTUUpKTsKKyAgc3RyZW5kemFwICh0YXJnZXRfbmFtZSwgIi5leGUiKTsKKyAgdG1wX3BhdGhzcGVjID0gbHRfZXh0ZW5kX3N0ciAodGFyZ2V0X25hbWUsICIuZXhlIiwgMSk7CisgIFhGUkVFICh0YXJnZXRfbmFtZSk7CisgIHRhcmdldF9uYW1lID0gdG1wX3BhdGhzcGVjOworICB0bXBfcGF0aHNwZWMgPSAwOworCisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgbGlidG9vbCB0YXJnZXQgbmFtZTogJXNcbiIsCisJCQkgIHRhcmdldF9uYW1lKSk7CitFT0YKKworCSAgICBjYXQgPDxFT0YKKyAgbmV3YXJnelswXSA9CisgICAgWE1BTExPQyAoY2hhciwgKHN0cmxlbiAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpICsKKwkJICAgIHN0cmxlbiAoIiRvYmpkaXIiKSArIDEgKyBzdHJsZW4gKGFjdHVhbF9jd3JhcHBlcl9uYW1lKSArIDEpKTsKKyAgc3RyY3B5IChuZXdhcmd6WzBdLCBhY3R1YWxfY3dyYXBwZXJfcGF0aCk7CisgIHN0cmNhdCAobmV3YXJnelswXSwgIiRvYmpkaXIiKTsKKyAgc3RyY2F0IChuZXdhcmd6WzBdLCAiLyIpOworRU9GCisKKwkgICAgY2F0IDw8IkVPRiIKKyAgLyogc3RvcCBoZXJlLCBhbmQgY29weSBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoaXMgdHdpY2UgKi8KKyAgdG1wX3BhdGhzcGVjID0geHN0cmR1cCAobmV3YXJnelswXSk7CisKKyAgLyogZG8gTk9UIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSwgc28gdXNlIGFjdHVhbF9jd3JhcHBlcl9uYW1lICovCisgIHN0cmNhdCAobmV3YXJnelswXSwgYWN0dWFsX2N3cmFwcGVyX25hbWUpOworCisgIC8qIERPIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSBpZiBpdCBleGlzdHMsIHNvIHVzZSB0YXJnZXRfbmFtZSAqLworICBsdF9hcmd2X3plcm8gPSBsdF9leHRlbmRfc3RyICh0bXBfcGF0aHNwZWMsIHRhcmdldF9uYW1lLCAxKTsKKyAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7CisgIHRtcF9wYXRoc3BlYyA9IE5VTEw7CitFT0YKKworCSAgICBjYXNlICRob3N0X29zIGluCisJICAgICAgbWluZ3cqKQorCSAgICBjYXQgPDwiRU9GIgorICB7CisgICAgY2hhciogcDsKKyAgICB3aGlsZSAoKHAgPSBzdHJjaHIgKG5ld2FyZ3pbMF0sICdcXCcpKSAhPSBOVUxMKQorICAgICAgeworCSpwID0gJy8nOworICAgICAgfQorICAgIHdoaWxlICgocCA9IHN0cmNociAobHRfYXJndl96ZXJvLCAnXFwnKSkgIT0gTlVMTCkKKyAgICAgIHsKKwkqcCA9ICcvJzsKKyAgICAgIH0KKyAgfQorRU9GCisJICAgIDs7CisJICAgIGVzYWMKKworCSAgICBjYXQgPDwiRU9GIgorICBYRlJFRSAodGFyZ2V0X25hbWUpOworICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpOworICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVyX25hbWUpOworCisgIGx0X3NldGVudiAoIkJJTl9TSCIsICJ4cGc0Iik7IC8qIGZvciBUcnU2NCAqLworICBsdF9zZXRlbnYgKCJEVUFMQ0FTRSIsICIxIik7ICAvKiBmb3IgTVNLIHNoICovCisgIGx0X3VwZGF0ZV9saWJfcGF0aCAoTElCX1BBVEhfVkFSTkFNRSwgTElCX1BBVEhfVkFMVUUpOworICBsdF91cGRhdGVfZXhlX3BhdGggKEVYRV9QQVRIX1ZBUk5BTUUsIEVYRV9QQVRIX1ZBTFVFKTsKKworICBuZXdhcmdjPTA7CisgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCisgICAgeworICAgICAgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGVudl9zZXRfb3B0LCBlbnZfc2V0X29wdF9sZW4pID09IDApCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoYXJndltpXVtlbnZfc2V0X29wdF9sZW5dID09ICc9JykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9IGFyZ3ZbaV0gKyBlbnZfc2V0X29wdF9sZW4gKyAxOworICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlIGlmIChhcmd2W2ldW2Vudl9zZXRfb3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGFyZ3ZbKytpXSk7IC8qIGRvbid0IGNvcHkgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBsdF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQiLCBlbnZfc2V0X29wdCk7CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfcHJlcGVuZF9vcHQsIGVudl9wcmVwZW5kX29wdF9sZW4pID09IDApCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoYXJndltpXVtlbnZfcHJlcGVuZF9vcHRfbGVuXSA9PSAnPScpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAgPSBhcmd2W2ldICsgZW52X3ByZXBlbmRfb3B0X2xlbiArIDE7CisgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlIGlmIChhcmd2W2ldW2Vudl9wcmVwZW5kX29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdjKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAoYXJndlsrK2ldKTsgLyogZG9uJ3QgY29weSAqLworICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIsIGVudl9wcmVwZW5kX29wdCk7CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfYXBwZW5kX29wdCwgZW52X2FwcGVuZF9vcHRfbGVuKSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X2FwcGVuZF9vcHRfbGVuXSA9PSAnPScpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAgPSBhcmd2W2ldICsgZW52X2FwcGVuZF9vcHRfbGVuICsgMTsKKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAocCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZSBpZiAoYXJndltpXVtlbnZfYXBwZW5kX29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdjKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICovCisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgbHRfZmF0YWwgKCIlcyBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50IiwgZW52X2FwcGVuZF9vcHQpOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgbHR3cmFwcGVyX29wdGlvbl9wcmVmaXgsIG9wdF9wcmVmaXhfbGVuKSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgLyogaG93ZXZlciwgaWYgdGhlcmUgaXMgYW4gb3B0aW9uIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAorICAgICAgICAgICAgIG5hbWVzcGFjZSwgYnV0IGl0IGlzIG5vdCBvbmUgb2YgdGhlIG9uZXMgd2Uga25vdyBhYm91dCBhbmQKKyAgICAgICAgICAgICBoYXZlIGFscmVhZHkgZGVhbHQgd2l0aCwgYWJvdmUgKGlubHVkaW5nIGR1bXAtc2NyaXB0KSwgdGhlbgorICAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvci4gT3RoZXJ3aXNlLCB0YXJnZXRzIG1pZ2h0IGJlZ2luIHRvIGJlbGlldmUKKyAgICAgICAgICAgICB0aGV5IGFyZSBhbGxvd2VkIHRvIHVzZSBvcHRpb25zIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAorICAgICAgICAgICAgIG5hbWVzcGFjZS4gVGhlIGZpcnN0IHRpbWUgYW55IHVzZXIgY29tcGxhaW5zIGFib3V0IHRoaXMsIHdlJ2xsCisgICAgICAgICAgICAgbmVlZCB0byBtYWtlIExUV1JBUFBFUl9PUFRJT05fUFJFRklYIGEgY29uZmlndXJlLXRpbWUgb3B0aW9uCisgICAgICAgICAgICAgb3IgYSBjb25maWd1cmUuYWMtc2V0dGFibGUgdmFsdWUuCisgICAgICAgICAgICovCisgICAgICAgICAgbHRfZmF0YWwgKCJVbnJlY29nbml6ZWQgb3B0aW9uIGluICVzIG5hbWVzcGFjZTogJyVzJyIsCisgICAgICAgICAgICAgICAgICAgIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBhcmd2W2ldKTsKKyAgICAgICAgfQorICAgICAgLyogb3RoZXJ3aXNlIC4uLiAqLworICAgICAgbmV3YXJnelsrK25ld2FyZ2NdID0geHN0cmR1cCAoYXJndltpXSk7CisgICAgfQorICBuZXdhcmd6WysrbmV3YXJnY10gPSBOVUxMOworCisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAgICAgKCgiKG1haW4pIGx0X2FyZ3ZfemVybyA6ICVzXG4iLCAobHRfYXJndl96ZXJvID8gbHRfYXJndl96ZXJvIDogIjxOVUxMPiIpKSk7CisgIGZvciAoaSA9IDA7IGkgPCBuZXdhcmdjOyBpKyspCisgICAgeworICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBuZXdhcmd6WyVkXSAgIDogJXNcbiIsIGksIChuZXdhcmd6W2ldID8gbmV3YXJneltpXSA6ICI8TlVMTD4iKSkpOworICAgIH0KKworRU9GCisKKwkgICAgY2FzZSAkaG9zdF9vcyBpbgorCSAgICAgIG1pbmd3KikKKwkJY2F0IDw8IkVPRiIKKyAgLyogZXhlY3YgZG9lc24ndCBhY3R1YWxseSB3b3JrIG9uIG1pbmd3IGFzIGV4cGVjdGVkIG9uIHVuaXggKi8KKyAgcnZhbCA9IF9zcGF3bnYgKF9QX1dBSVQsIGx0X2FyZ3ZfemVybywgKGNvbnN0IGNoYXIgKiBjb25zdCAqKSBuZXdhcmd6KTsKKyAgaWYgKHJ2YWwgPT0gLTEpCisgICAgeworICAgICAgLyogZmFpbGVkIHRvIHN0YXJ0IHByb2Nlc3MgKi8KKyAgICAgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgZmFpbGVkIHRvIGxhdW5jaCB0YXJnZXQgXCIlc1wiOiBlcnJubyA9ICVkXG4iLCBsdF9hcmd2X3plcm8sIGVycm5vKSk7CisgICAgICByZXR1cm4gMTI3OworICAgIH0KKyAgcmV0dXJuIHJ2YWw7CitFT0YKKwkJOzsKKwkgICAgICAqKQorCQljYXQgPDwiRU9GIgorICBleGVjdiAobHRfYXJndl96ZXJvLCBuZXdhcmd6KTsKKyAgcmV0dXJuIHJ2YWw7IC8qID0xMjcsIGJ1dCBhdm9pZHMgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgKi8KK0VPRgorCQk7OworCSAgICBlc2FjCisKKwkgICAgY2F0IDw8IkVPRiIKK30KKwordm9pZCAqCit4bWFsbG9jIChzaXplX3QgbnVtKQoreworICB2b2lkICpwID0gKHZvaWQgKikgbWFsbG9jIChudW0pOworICBpZiAoIXApCisgICAgbHRfZmF0YWwgKCJNZW1vcnkgZXhoYXVzdGVkIik7CisKKyAgcmV0dXJuIHA7Cit9CisKK2NoYXIgKgoreHN0cmR1cCAoY29uc3QgY2hhciAqc3RyaW5nKQoreworICByZXR1cm4gc3RyaW5nID8gc3RyY3B5ICgoY2hhciAqKSB4bWFsbG9jIChzdHJsZW4gKHN0cmluZykgKyAxKSwKKwkJCSAgc3RyaW5nKSA6IE5VTEw7Cit9CisKK2NvbnN0IGNoYXIgKgorYmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1lKQoreworICBjb25zdCBjaGFyICpiYXNlOworCisjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisgIC8qIFNraXAgb3ZlciB0aGUgZGlzayBuYW1lIGluIE1TRE9TIHBhdGhuYW1lcy4gKi8KKyAgaWYgKGlzYWxwaGEgKCh1bnNpZ25lZCBjaGFyKSBuYW1lWzBdKSAmJiBuYW1lWzFdID09ICc6JykKKyAgICBuYW1lICs9IDI7CisjZW5kaWYKKworICBmb3IgKGJhc2UgPSBuYW1lOyAqbmFtZTsgbmFtZSsrKQorICAgIGlmIChJU19ESVJfU0VQQVJBVE9SICgqbmFtZSkpCisgICAgICBiYXNlID0gbmFtZSArIDE7CisgIHJldHVybiBiYXNlOworfQorCitpbnQKK2NoZWNrX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpCit7CisgIHN0cnVjdCBzdGF0IHN0OworCisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIoY2hlY2tfZXhlY3V0YWJsZSkgIDogJXNcbiIsCisJCQkgIHBhdGggPyAoKnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOworICBpZiAoKCFwYXRoKSB8fCAoISpwYXRoKSkKKyAgICByZXR1cm4gMDsKKworICBpZiAoKHN0YXQgKHBhdGgsICZzdCkgPj0gMCkKKyAgICAgICYmIChzdC5zdF9tb2RlICYgKFNfSVhVU1IgfCBTX0lYR1JQIHwgU19JWE9USCkpKQorICAgIHJldHVybiAxOworICBlbHNlCisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorbWFrZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKQoreworICBpbnQgcnZhbCA9IDA7CisgIHN0cnVjdCBzdGF0IHN0OworCisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFrZV9leGVjdXRhYmxlKSAgIDogJXNcbiIsCisJCQkgIHBhdGggPyAoKnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOworICBpZiAoKCFwYXRoKSB8fCAoISpwYXRoKSkKKyAgICByZXR1cm4gMDsKKworICBpZiAoc3RhdCAocGF0aCwgJnN0KSA+PSAwKQorICAgIHsKKyAgICAgIHJ2YWwgPSBjaG1vZCAocGF0aCwgc3Quc3RfbW9kZSB8IFNfSVhPVEggfCBTX0lYR1JQIHwgU19JWFVTUik7CisgICAgfQorICByZXR1cm4gcnZhbDsKK30KKworLyogU2VhcmNoZXMgZm9yIHRoZSBmdWxsIHBhdGggb2YgdGhlIHdyYXBwZXIuICBSZXR1cm5zCisgICBuZXdseSBhbGxvY2F0ZWQgZnVsbCBwYXRoIG5hbWUgaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNlCisgICBEb2VzIG5vdCBjaGFzZSBzeW1saW5rcywgZXZlbiBvbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IHRoZW0uCisqLworY2hhciAqCitmaW5kX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKndyYXBwZXIpCit7CisgIGludCBoYXNfc2xhc2ggPSAwOworICBjb25zdCBjaGFyICpwOworICBjb25zdCBjaGFyICpwX25leHQ7CisgIC8qIHN0YXRpYyBidWZmZXIgZm9yIGdldGN3ZCAqLworICBjaGFyIHRtcFtMVF9QQVRITUFYICsgMV07CisgIGludCB0bXBfbGVuOworICBjaGFyICpjb25jYXRfbmFtZTsKKworICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGZpbmRfZXhlY3V0YWJsZSkgICA6ICVzXG4iLAorCQkJICB3cmFwcGVyID8gKCp3cmFwcGVyID8gd3JhcHBlciA6ICJFTVBUWSEiKSA6ICJOVUxMISIpKTsKKworICBpZiAoKHdyYXBwZXIgPT0gTlVMTCkgfHwgKCp3cmFwcGVyID09ICdcMCcpKQorICAgIHJldHVybiBOVUxMOworCisgIC8qIEFic29sdXRlIHBhdGg/ICovCisjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisgIGlmIChpc2FscGhhICgodW5zaWduZWQgY2hhcikgd3JhcHBlclswXSkgJiYgd3JhcHBlclsxXSA9PSAnOicpCisgICAgeworICAgICAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKKyAgICAgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCisJcmV0dXJuIGNvbmNhdF9uYW1lOworICAgICAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisjZW5kaWYKKyAgICAgIGlmIChJU19ESVJfU0VQQVJBVE9SICh3cmFwcGVyWzBdKSkKKwl7CisJICBjb25jYXRfbmFtZSA9IHhzdHJkdXAgKHdyYXBwZXIpOworCSAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKKwkgICAgcmV0dXJuIGNvbmNhdF9uYW1lOworCSAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKKwl9CisjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisgICAgfQorI2VuZGlmCisKKyAgZm9yIChwID0gd3JhcHBlcjsgKnA7IHArKykKKyAgICBpZiAoKnAgPT0gJy8nKQorICAgICAgeworCWhhc19zbGFzaCA9IDE7CisJYnJlYWs7CisgICAgICB9CisgIGlmICghaGFzX3NsYXNoKQorICAgIHsKKyAgICAgIC8qIG5vIHNsYXNoZXM7IHNlYXJjaCBQQVRIICovCisgICAgICBjb25zdCBjaGFyICpwYXRoID0gZ2V0ZW52ICgiUEFUSCIpOworICAgICAgaWYgKHBhdGggIT0gTlVMTCkKKwl7CisJICBmb3IgKHAgPSBwYXRoOyAqcDsgcCA9IHBfbmV4dCkKKwkgICAgeworCSAgICAgIGNvbnN0IGNoYXIgKnE7CisJICAgICAgc2l6ZV90IHBfbGVuOworCSAgICAgIGZvciAocSA9IHA7ICpxOyBxKyspCisJCWlmIChJU19QQVRIX1NFUEFSQVRPUiAoKnEpKQorCQkgIGJyZWFrOworCSAgICAgIHBfbGVuID0gcSAtIHA7CisJICAgICAgcF9uZXh0ID0gKCpxID09ICdcMCcgPyBxIDogcSArIDEpOworCSAgICAgIGlmIChwX2xlbiA9PSAwKQorCQl7CisJCSAgLyogZW1wdHkgcGF0aDogY3VycmVudCBkaXJlY3RvcnkgKi8KKwkJICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCisJCSAgICBsdF9mYXRhbCAoImdldGN3ZCBmYWlsZWQiKTsKKwkJICB0bXBfbGVuID0gc3RybGVuICh0bXApOworCQkgIGNvbmNhdF9uYW1lID0KKwkJICAgIFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOworCQkgIG1lbWNweSAoY29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7CisJCSAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7CisJCSAgc3RyY3B5IChjb25jYXRfbmFtZSArIHRtcF9sZW4gKyAxLCB3cmFwcGVyKTsKKwkJfQorCSAgICAgIGVsc2UKKwkJeworCQkgIGNvbmNhdF9uYW1lID0KKwkJICAgIFhNQUxMT0MgKGNoYXIsIHBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKKwkJICBtZW1jcHkgKGNvbmNhdF9uYW1lLCBwLCBwX2xlbik7CisJCSAgY29uY2F0X25hbWVbcF9sZW5dID0gJy8nOworCQkgIHN0cmNweSAoY29uY2F0X25hbWUgKyBwX2xlbiArIDEsIHdyYXBwZXIpOworCQl9CisJICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKKwkJcmV0dXJuIGNvbmNhdF9uYW1lOworCSAgICAgIFhGUkVFIChjb25jYXRfbmFtZSk7CisJICAgIH0KKwl9CisgICAgICAvKiBub3QgZm91bmQgaW4gUEFUSDsgYXNzdW1lIGN1cmRpciAqLworICAgIH0KKyAgLyogUmVsYXRpdmUgcGF0aCB8IG5vdCBmb3VuZCBpbiBwYXRoOiBwcmVwZW5kIGN3ZCAqLworICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCisgICAgbHRfZmF0YWwgKCJnZXRjd2QgZmFpbGVkIik7CisgIHRtcF9sZW4gPSBzdHJsZW4gKHRtcCk7CisgIGNvbmNhdF9uYW1lID0gWE1BTExPQyAoY2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CisgIG1lbWNweSAoY29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7CisgIGNvbmNhdF9uYW1lW3RtcF9sZW5dID0gJy8nOworICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgdG1wX2xlbiArIDEsIHdyYXBwZXIpOworCisgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCisgICAgcmV0dXJuIGNvbmNhdF9uYW1lOworICBYRlJFRSAoY29uY2F0X25hbWUpOworICByZXR1cm4gTlVMTDsKK30KKworY2hhciAqCitjaGFzZV9zeW1saW5rcyAoY29uc3QgY2hhciAqcGF0aHNwZWMpCit7CisjaWZuZGVmIFNfSVNMTksKKyAgcmV0dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKKyNlbHNlCisgIGNoYXIgYnVmW0xUX1BBVEhNQVhdOworICBzdHJ1Y3Qgc3RhdCBzOworICBjaGFyICp0bXBfcGF0aHNwZWMgPSB4c3RyZHVwIChwYXRoc3BlYyk7CisgIGNoYXIgKnA7CisgIGludCBoYXNfc3ltbGlua3MgPSAwOworICB3aGlsZSAoc3RybGVuICh0bXBfcGF0aHNwZWMpICYmICFoYXNfc3ltbGlua3MpCisgICAgeworICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoImNoZWNraW5nIHBhdGggY29tcG9uZW50IGZvciBzeW1saW5rczogJXNcbiIsCisJCQkgICAgICB0bXBfcGF0aHNwZWMpKTsKKyAgICAgIGlmIChsc3RhdCAodG1wX3BhdGhzcGVjLCAmcykgPT0gMCkKKwl7CisJICBpZiAoU19JU0xOSyAocy5zdF9tb2RlKSAhPSAwKQorCSAgICB7CisJICAgICAgaGFzX3N5bWxpbmtzID0gMTsKKwkgICAgICBicmVhazsKKwkgICAgfQorCisJICAvKiBzZWFyY2ggYmFja3dhcmRzIGZvciBsYXN0IERJUl9TRVBBUkFUT1IgKi8KKwkgIHAgPSB0bXBfcGF0aHNwZWMgKyBzdHJsZW4gKHRtcF9wYXRoc3BlYykgLSAxOworCSAgd2hpbGUgKChwID4gdG1wX3BhdGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkpCisJICAgIHAtLTsKKwkgIGlmICgocCA9PSB0bXBfcGF0aHNwZWMpICYmICghSVNfRElSX1NFUEFSQVRPUiAoKnApKSkKKwkgICAgeworCSAgICAgIC8qIG5vIG1vcmUgRElSX1NFUEFSQVRPUlMgbGVmdCAqLworCSAgICAgIGJyZWFrOworCSAgICB9CisJICAqcCA9ICdcMCc7CisJfQorICAgICAgZWxzZQorCXsKKwkgIGNoYXIgKmVycnN0ciA9IHN0cmVycm9yIChlcnJubyk7CisJICBsdF9mYXRhbCAoIkVycm9yIGFjY2Vzc2luZyBmaWxlICVzICglcykiLCB0bXBfcGF0aHNwZWMsIGVycnN0cik7CisJfQorICAgIH0KKyAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7CisKKyAgaWYgKCFoYXNfc3ltbGlua3MpCisgICAgeworICAgICAgcmV0dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKKyAgICB9CisKKyAgdG1wX3BhdGhzcGVjID0gcmVhbHBhdGggKHBhdGhzcGVjLCBidWYpOworICBpZiAodG1wX3BhdGhzcGVjID09IDApCisgICAgeworICAgICAgbHRfZmF0YWwgKCJDb3VsZCBub3QgZm9sbG93IHN5bWxpbmtzIGZvciAlcyIsIHBhdGhzcGVjKTsKKyAgICB9CisgIHJldHVybiB4c3RyZHVwICh0bXBfcGF0aHNwZWMpOworI2VuZGlmCit9CisKK2NoYXIgKgorc3RyZW5kemFwIChjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnBhdCkKK3sKKyAgc2l6ZV90IGxlbiwgcGF0bGVuOworCisgIGFzc2VydCAoc3RyICE9IE5VTEwpOworICBhc3NlcnQgKHBhdCAhPSBOVUxMKTsKKworICBsZW4gPSBzdHJsZW4gKHN0cik7CisgIHBhdGxlbiA9IHN0cmxlbiAocGF0KTsKKworICBpZiAocGF0bGVuIDw9IGxlbikKKyAgICB7CisgICAgICBzdHIgKz0gbGVuIC0gcGF0bGVuOworICAgICAgaWYgKHN0cmNtcCAoc3RyLCBwYXQpID09IDApCisJKnN0ciA9ICdcMCc7CisgICAgfQorICByZXR1cm4gc3RyOworfQorCitzdGF0aWMgdm9pZAorbHRfZXJyb3JfY29yZSAoaW50IGV4aXRfc3RhdHVzLCBjb25zdCBjaGFyICptb2RlLAorCSAgICAgICBjb25zdCBjaGFyICptZXNzYWdlLCB2YV9saXN0IGFwKQoreworICBmcHJpbnRmIChzdGRlcnIsICIlczogJXM6ICIsIHByb2dyYW1fbmFtZSwgbW9kZSk7CisgIHZmcHJpbnRmIChzdGRlcnIsIG1lc3NhZ2UsIGFwKTsKKyAgZnByaW50ZiAoc3RkZXJyLCAiLlxuIik7CisKKyAgaWYgKGV4aXRfc3RhdHVzID49IDApCisgICAgZXhpdCAoZXhpdF9zdGF0dXMpOworfQorCit2b2lkCitsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKQoreworICB2YV9saXN0IGFwOworICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOworICBsdF9lcnJvcl9jb3JlIChFWElUX0ZBSUxVUkUsICJGQVRBTCIsIG1lc3NhZ2UsIGFwKTsKKyAgdmFfZW5kIChhcCk7Cit9CisKK3ZvaWQKK2x0X3NldGVudiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCit7CisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfc2V0ZW52KSBzZXR0aW5nICclcycgdG8gJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOworICB7CisjaWZkZWYgSEFWRV9TRVRFTlYKKyAgICAvKiBhbHdheXMgbWFrZSBhIGNvcHksIGZvciBjb25zaXN0ZW5jeSB3aXRoICFIQVZFX1NFVEVOViAqLworICAgIGNoYXIgKnN0ciA9IHhzdHJkdXAgKHZhbHVlKTsKKyAgICBzZXRlbnYgKG5hbWUsIHN0ciwgMSk7CisjZWxzZQorICAgIGludCBsZW4gPSBzdHJsZW4gKG5hbWUpICsgMSArIHN0cmxlbiAodmFsdWUpICsgMTsKKyAgICBjaGFyICpzdHIgPSBYTUFMTE9DIChjaGFyLCBsZW4pOworICAgIHNwcmludGYgKHN0ciwgIiVzPSVzIiwgbmFtZSwgdmFsdWUpOworICAgIGlmIChwdXRlbnYgKHN0cikgIT0gRVhJVF9TVUNDRVNTKQorICAgICAgeworICAgICAgICBYRlJFRSAoc3RyKTsKKyAgICAgIH0KKyNlbmRpZgorICB9Cit9CisKK2NoYXIgKgorbHRfZXh0ZW5kX3N0ciAoY29uc3QgY2hhciAqb3JpZ192YWx1ZSwgY29uc3QgY2hhciAqYWRkLCBpbnQgdG9fZW5kKQoreworICBjaGFyICpuZXdfdmFsdWU7CisgIGlmIChvcmlnX3ZhbHVlICYmICpvcmlnX3ZhbHVlKQorICAgIHsKKyAgICAgIGludCBvcmlnX3ZhbHVlX2xlbiA9IHN0cmxlbiAob3JpZ192YWx1ZSk7CisgICAgICBpbnQgYWRkX2xlbiA9IHN0cmxlbiAoYWRkKTsKKyAgICAgIG5ld192YWx1ZSA9IFhNQUxMT0MgKGNoYXIsIGFkZF9sZW4gKyBvcmlnX3ZhbHVlX2xlbiArIDEpOworICAgICAgaWYgKHRvX2VuZCkKKyAgICAgICAgeworICAgICAgICAgIHN0cmNweSAobmV3X3ZhbHVlLCBvcmlnX3ZhbHVlKTsKKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSArIG9yaWdfdmFsdWVfbGVuLCBhZGQpOworICAgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSwgYWRkKTsKKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSArIGFkZF9sZW4sIG9yaWdfdmFsdWUpOworICAgICAgICB9CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgbmV3X3ZhbHVlID0geHN0cmR1cCAoYWRkKTsKKyAgICB9CisgIHJldHVybiBuZXdfdmFsdWU7Cit9CisKK2ludAorbHRfc3BsaXRfbmFtZV92YWx1ZSAoY29uc3QgY2hhciAqYXJnLCBjaGFyKiogbmFtZSwgY2hhcioqIHZhbHVlKQoreworICBjb25zdCBjaGFyICpwOworICBpbnQgbGVuOworICBpZiAoIWFyZyB8fCAhKmFyZykKKyAgICByZXR1cm4gMTsKKworICBwID0gc3RyY2hyIChhcmcsIChpbnQpJz0nKTsKKworICBpZiAoIXApCisgICAgcmV0dXJuIDE7CisKKyAgKnZhbHVlID0geHN0cmR1cCAoKytwKTsKKworICBsZW4gPSBzdHJsZW4gKGFyZykgLSBzdHJsZW4gKCp2YWx1ZSk7CisgICpuYW1lID0gWE1BTExPQyAoY2hhciwgbGVuKTsKKyAgc3RybmNweSAoKm5hbWUsIGFyZywgbGVuLTEpOworICAoKm5hbWUpW2xlbiAtIDFdID0gJ1wwJzsKKworICByZXR1cm4gMDsKK30KKwordm9pZAorbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAoY29uc3QgY2hhciAqYXJnKQoreworICBjaGFyICpuYW1lID0gTlVMTDsKKyAgY2hhciAqdmFsdWUgPSBOVUxMOworCisgIGlmIChsdF9zcGxpdF9uYW1lX3ZhbHVlIChhcmcsICZuYW1lLCAmdmFsdWUpICE9IDApCisgICAgeworICAgICAgWEZSRUUgKG5hbWUpOworICAgICAgWEZSRUUgKHZhbHVlKTsKKyAgICAgIGx0X2ZhdGFsICgiYmFkIGFyZ3VtZW50IGZvciAlczogJyVzJyIsIGVudl9zZXRfb3B0LCBhcmcpOworICAgIH0KKworICBsdF9zZXRlbnYgKG5hbWUsIHZhbHVlKTsKKyAgWEZSRUUgKG5hbWUpOworICBYRlJFRSAodmFsdWUpOworfQorCit2b2lkCitsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAoY29uc3QgY2hhciAqYXJnKQoreworICBjaGFyICpuYW1lID0gTlVMTDsKKyAgY2hhciAqdmFsdWUgPSBOVUxMOworICBjaGFyICpuZXdfdmFsdWUgPSBOVUxMOworCisgIGlmIChsdF9zcGxpdF9uYW1lX3ZhbHVlIChhcmcsICZuYW1lLCAmdmFsdWUpICE9IDApCisgICAgeworICAgICAgWEZSRUUgKG5hbWUpOworICAgICAgWEZSRUUgKHZhbHVlKTsKKyAgICAgIGx0X2ZhdGFsICgiYmFkIGFyZ3VtZW50IGZvciAlczogJyVzJyIsIGVudl9wcmVwZW5kX29wdCwgYXJnKTsKKyAgICB9CisKKyAgbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOworICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisgIFhGUkVFIChuZXdfdmFsdWUpOworICBYRlJFRSAobmFtZSk7CisgIFhGUkVFICh2YWx1ZSk7Cit9CisKK3ZvaWQKK2x0X29wdF9wcm9jZXNzX2Vudl9hcHBlbmQgKGNvbnN0IGNoYXIgKmFyZykKK3sKKyAgY2hhciAqbmFtZSA9IE5VTEw7CisgIGNoYXIgKnZhbHVlID0gTlVMTDsKKyAgY2hhciAqbmV3X3ZhbHVlID0gTlVMTDsKKworICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQorICAgIHsKKyAgICAgIFhGUkVFIChuYW1lKTsKKyAgICAgIFhGUkVFICh2YWx1ZSk7CisgICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZfYXBwZW5kX29wdCwgYXJnKTsKKyAgICB9CisKKyAgbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDEpOworICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisgIFhGUkVFIChuZXdfdmFsdWUpOworICBYRlJFRSAobmFtZSk7CisgIFhGUkVFICh2YWx1ZSk7Cit9CisKK3ZvaWQKK2x0X3VwZGF0ZV9leGVfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCit7CisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfdXBkYXRlX2V4ZV9wYXRoKSBtb2RpZnlpbmcgJyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKKworICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUpCisgICAgeworICAgICAgY2hhciAqbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOworICAgICAgLyogc29tZSBzeXN0ZW1zIGNhbid0IGNvcGUgd2l0aCBhICc6Jy10ZXJtaW5hdGVkIHBhdGggIycgKi8KKyAgICAgIGludCBsZW4gPSBzdHJsZW4gKG5ld192YWx1ZSk7CisgICAgICB3aGlsZSAoKChsZW4gPSBzdHJsZW4gKG5ld192YWx1ZSkpID4gMCkgJiYgSVNfUEFUSF9TRVBBUkFUT1IgKG5ld192YWx1ZVtsZW4tMV0pKQorICAgICAgICB7CisgICAgICAgICAgbmV3X3ZhbHVlW2xlbi0xXSA9ICdcMCc7CisgICAgICAgIH0KKyAgICAgIGx0X3NldGVudiAobmFtZSwgbmV3X3ZhbHVlKTsKKyAgICAgIFhGUkVFIChuZXdfdmFsdWUpOworICAgIH0KK30KKwordm9pZAorbHRfdXBkYXRlX2xpYl9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKK3sKKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihsdF91cGRhdGVfbGliX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBlbmRpbmcgJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOworCisgIGlmIChuYW1lICYmICpuYW1lICYmIHZhbHVlICYmICp2YWx1ZSkKKyAgICB7CisgICAgICBjaGFyICpuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMCk7CisgICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisgICAgICBYRlJFRSAobmV3X3ZhbHVlKTsKKyAgICB9Cit9CisKKworRU9GCit9CisjIGVuZDogZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYworCisjIGZ1bmNfbW9kZV9saW5rIGFyZy4uLgorZnVuY19tb2RlX2xpbmsgKCkKK3sKKyAgICAkb3B0X2RlYnVnCisgICAgY2FzZSAkaG9zdCBpbgorICAgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdjYyopCisgICAgICAjIEl0IGlzIGltcG9zc2libGUgdG8gbGluayBhIGRsbCB3aXRob3V0IHRoaXMgc2V0dGluZywgYW5kCisgICAgICAjIHdlIHNob3VsZG4ndCBmb3JjZSB0aGUgbWFrZWZpbGUgbWFpbnRhaW5lciB0byBmaWd1cmUgb3V0CisgICAgICAjIHdoaWNoIHN5c3RlbSB3ZSBhcmUgY29tcGlsaW5nIGZvciBpbiBvcmRlciB0byBwYXNzIGFuIGV4dHJhCisgICAgICAjIGZsYWcgZm9yIGV2ZXJ5IGxpYnRvb2wgaW52b2NhdGlvbi4KKyAgICAgICMgYWxsb3dfdW5kZWZpbmVkPW5vCisKKyAgICAgICMgRklYTUU6IFVuZm9ydHVuYXRlbHksIHRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIHRoZSBhYm92ZSB3aGVuIHRyeWluZworICAgICAgIyB0byBtYWtlIGEgZGxsIHdoaWNoIGhhcyB1bmRlZmluZWQgc3ltYm9scywgaW4gd2hpY2ggY2FzZSBub3QKKyAgICAgICMgZXZlbiBhIHN0YXRpYyBsaWJyYXJ5IGlzIGJ1aWx0LiAgRm9yIG5vdywgd2UgbmVlZCB0byBzcGVjaWZ5CisgICAgICAjIC1uby11bmRlZmluZWQgb24gdGhlIGxpYnRvb2wgbGluayBsaW5lIHdoZW4gd2UgY2FuIGJlIGNlcnRhaW4KKyAgICAgICMgdGhhdCBhbGwgc3ltYm9scyBhcmUgc2F0aXNmaWVkLCBvdGhlcndpc2Ugd2UgZ2V0IGEgc3RhdGljIGxpYnJhcnkuCisgICAgICBhbGxvd191bmRlZmluZWQ9eWVzCisgICAgICA7OworICAgICopCisgICAgICBhbGxvd191bmRlZmluZWQ9eWVzCisgICAgICA7OworICAgIGVzYWMKKyAgICBsaWJ0b29sX2FyZ3M9JG5vbm9wdAorICAgIGJhc2VfY29tcGlsZT0iJG5vbm9wdCAkQCIKKyAgICBjb21waWxlX2NvbW1hbmQ9JG5vbm9wdAorICAgIGZpbmFsaXplX2NvbW1hbmQ9JG5vbm9wdAorCisgICAgY29tcGlsZV9ycGF0aD0KKyAgICBmaW5hbGl6ZV9ycGF0aD0KKyAgICBjb21waWxlX3NobGlicGF0aD0KKyAgICBmaW5hbGl6ZV9zaGxpYnBhdGg9CisgICAgY29udmVuaWVuY2U9CisgICAgb2xkX2NvbnZlbmllbmNlPQorICAgIGRlcGxpYnM9CisgICAgb2xkX2RlcGxpYnM9CisgICAgY29tcGlsZXJfZmxhZ3M9CisgICAgbGlua2VyX2ZsYWdzPQorICAgIGRsbHNlYXJjaHBhdGg9CisgICAgbGliX3NlYXJjaF9wYXRoPWBwd2RgCisgICAgaW5zdF9wcmVmaXhfZGlyPQorICAgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQorCisgICAgYXZvaWRfdmVyc2lvbj1ubworICAgIGRsZmlsZXM9CisgICAgZGxwcmVmaWxlcz0KKyAgICBkbHNlbGY9bm8KKyAgICBleHBvcnRfZHluYW1pYz1ubworICAgIGV4cG9ydF9zeW1ib2xzPQorICAgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PQorICAgIGdlbmVyYXRlZD0KKyAgICBsaWJvYmpzPQorICAgIGx0bGlicz0KKyAgICBtb2R1bGU9bm8KKyAgICBub19pbnN0YWxsPW5vCisgICAgb2Jqcz0KKyAgICBub25fcGljX29iamVjdHM9CisgICAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9CisgICAgcHJlZmVyX3N0YXRpY19saWJzPW5vCisgICAgcHJlbG9hZD1ubworICAgIHByZXY9CisgICAgcHJldmFyZz0KKyAgICByZWxlYXNlPQorICAgIHJwYXRoPQorICAgIHhycGF0aD0KKyAgICBwZXJtX3JwYXRoPQorICAgIHRlbXBfcnBhdGg9CisgICAgdGhyZWFkX3NhZmU9bm8KKyAgICB2aW5mbz0KKyAgICB2aW5mb19udW1iZXI9bm8KKyAgICB3ZWFrX2xpYnM9CisgICAgc2luZ2xlX21vZHVsZT0iJHt3bH0tc2luZ2xlX21vZHVsZSIKKyAgICBmdW5jX2luZmVyX3RhZyAkYmFzZV9jb21waWxlCisKKyAgICAjIFdlIG5lZWQgdG8ga25vdyAtc3RhdGljLCB0byBnZXQgdGhlIHJpZ2h0IG91dHB1dCBmaWxlbmFtZXMuCisgICAgZm9yIGFyZworICAgIGRvCisgICAgICBjYXNlICRhcmcgaW4KKyAgICAgIC1zaGFyZWQpCisJdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIFwKKwkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAiY2FuIG5vdCBidWlsZCBhIHNoYXJlZCBsaWJyYXJ5IgorCWJ1aWxkX29sZF9saWJzPW5vCisJYnJlYWsKKwk7OworICAgICAgLWFsbC1zdGF0aWMgfCAtc3RhdGljIHwgLXN0YXRpYy1saWJ0b29sLWxpYnMpCisJY2FzZSAkYXJnIGluCisJLWFsbC1zdGF0aWMpCisJICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0IC16ICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KKwkgICAgZnVuY193YXJuaW5nICJjb21wbGV0ZSBzdGF0aWMgbGlua2luZyBpcyBpbXBvc3NpYmxlIGluIHRoaXMgY29uZmlndXJhdGlvbiIKKwkgIGZpCisJICBpZiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KKwkgICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYworCSAgZmkKKwkgIHByZWZlcl9zdGF0aWNfbGlicz15ZXMKKwkgIDs7CisJLXN0YXRpYykKKwkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIgJiYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKKwkgIGZpCisJICBwcmVmZXJfc3RhdGljX2xpYnM9YnVpbHQKKwkgIDs7CisJLXN0YXRpYy1saWJ0b29sLWxpYnMpCisJICBpZiB0ZXN0IC16ICIkcGljX2ZsYWciICYmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCisJICBmaQorCSAgcHJlZmVyX3N0YXRpY19saWJzPXllcworCSAgOzsKKwllc2FjCisJYnVpbGRfbGlidG9vbF9saWJzPW5vCisJYnVpbGRfb2xkX2xpYnM9eWVzCisJYnJlYWsKKwk7OworICAgICAgZXNhYworICAgIGRvbmUKKworICAgICMgU2VlIGlmIG91ciBzaGFyZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4KKyAgICB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIgJiYgYnVpbGRfb2xkX2xpYnM9eWVzCisKKyAgICAjIEdvIHRocm91Z2ggdGhlIGFyZ3VtZW50cywgdHJhbnNmb3JtaW5nIHRoZW0gb24gdGhlIHdheS4KKyAgICB3aGlsZSB0ZXN0ICIkIyIgLWd0IDA7IGRvCisgICAgICBhcmc9IiQxIgorICAgICAgc2hpZnQKKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisgICAgICBxYXJnPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdAorICAgICAgZnVuY19hcHBlbmQgbGlidG9vbF9hcmdzICIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCisgICAgICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KKyAgICAgIGlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgorCWNhc2UgJHByZXYgaW4KKwlvdXRwdXQpCisJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiBAT1VUUFVUQCIKKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiBAT1VUUFVUQCIKKwkgIDs7CisJZXNhYworCisJY2FzZSAkcHJldiBpbgorCWRsZmlsZXN8ZGxwcmVmaWxlcykKKwkgIGlmIHRlc3QgIiRwcmVsb2FkIiA9IG5vOyB0aGVuCisJICAgICMgQWRkIHRoZSBzeW1ib2wgb2JqZWN0IGludG8gdGhlIGxpbmtpbmcgY29tbWFuZHMuCisJICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiIEBTWU1GSUxFQCIKKwkgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiIEBTWU1GSUxFQCIKKwkgICAgcHJlbG9hZD15ZXMKKwkgIGZpCisJICBjYXNlICRhcmcgaW4KKwkgICoubGEgfCAqLmxvKSA7OyAgIyBXZSBoYW5kbGUgdGhlc2UgY2FzZXMgYmVsb3cuCisJICBmb3JjZSkKKwkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsgdGhlbgorCSAgICAgIGRsc2VsZj1uZWVkbGVzcworCSAgICAgIGV4cG9ydF9keW5hbWljPXllcworCSAgICBmaQorCSAgICBwcmV2PQorCSAgICBjb250aW51ZQorCSAgICA7OworCSAgc2VsZikKKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgorCSAgICAgIGRsc2VsZj15ZXMKKwkgICAgZWxpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzICYmIHRlc3QgIiRkbG9wZW5fc2VsZiIgIT0geWVzOyB0aGVuCisJICAgICAgZGxzZWxmPXllcworCSAgICBlbHNlCisJICAgICAgZGxzZWxmPW5lZWRsZXNzCisJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVzCisJICAgIGZpCisJICAgIHByZXY9CisJICAgIGNvbnRpbnVlCisJICAgIDs7CisJICAqKQorCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCisJICAgICAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKKwkgICAgZWxzZQorCSAgICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRhcmciCisJICAgIGZpCisJICAgIHByZXY9CisJICAgIGNvbnRpbnVlCisJICAgIDs7CisJICBlc2FjCisJICA7OworCWV4cHN5bXMpCisJICBleHBvcnRfc3ltYm9scz0iJGFyZyIKKwkgIHRlc3QgLWYgIiRhcmciIFwKKwkgICAgfHwgZnVuY19mYXRhbF9lcnJvciAic3ltYm9sIGZpbGUgXGAkYXJnJyBkb2VzIG5vdCBleGlzdCIKKwkgIHByZXY9CisJICBjb250aW51ZQorCSAgOzsKKwlleHBzeW1zX3JlZ2V4KQorCSAgZXhwb3J0X3N5bWJvbHNfcmVnZXg9IiRhcmciCisJICBwcmV2PQorCSAgY29udGludWUKKwkgIDs7CisJZnJhbWV3b3JrKQorCSAgY2FzZSAkaG9zdCBpbgorCSAgICAqLSotZGFyd2luKikKKwkgICAgICBjYXNlICIkZGVwbGlicyAiIGluCisJCSoiICRxYXJnLmx0ZnJhbWV3b3JrICIqKSA7OworCQkqKSBkZXBsaWJzPSIkZGVwbGlicyAkcWFyZy5sdGZyYW1ld29yayIgIyB0aGlzIGlzIGZpeGVkIGxhdGVyCisJCSAgIDs7CisJICAgICAgZXNhYworCSAgICAgIDs7CisJICBlc2FjCisJICBwcmV2PQorCSAgY29udGludWUKKwkgIDs7CisJaW5zdF9wcmVmaXgpCisJICBpbnN0X3ByZWZpeF9kaXI9IiRhcmciCisJICBwcmV2PQorCSAgY29udGludWUKKwkgIDs7CisJb2JqZWN0bGlzdCkKKwkgIGlmIHRlc3QgLWYgIiRhcmciOyB0aGVuCisJICAgIHNhdmVfYXJnPSRhcmcKKwkgICAgbW9yZWFyZ3M9CisJICAgIGZvciBmaWwgaW4gYGNhdCAiJHNhdmVfYXJnImAKKwkgICAgZG8KKyMJICAgICAgbW9yZWFyZ3M9IiRtb3JlYXJncyAkZmlsIgorCSAgICAgIGFyZz0kZmlsCisJICAgICAgIyBBIGxpYnRvb2wtY29udHJvbGxlZCBvYmplY3QuCisKKwkgICAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3QuCisJICAgICAgaWYgZnVuY19sYWxpYl91bnNhZmVfcCAiJGFyZyI7IHRoZW4KKwkJcGljX29iamVjdD0KKwkJbm9uX3BpY19vYmplY3Q9CisKKwkJIyBSZWFkIHRoZSAubG8gZmlsZQorCQlmdW5jX3NvdXJjZSAiJGFyZyIKKworCQlpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwKKwkJICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAorCQkgICB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lICYmCisJCSAgIHRlc3QgIiRub25fcGljX29iamVjdCIgPSBub25lOyB0aGVuCisJCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBvYmplY3QgZm9yIFxgJGFyZyciCisJCWZpCisKKwkJIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKwkJZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKKwkJeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisKKwkJaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGluLgorCQkgIHBpY19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3QiCisKKwkJICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCisJCSAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCisJCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgorCQkgICAgICBwcmV2PQorCQkgICAgICBjb250aW51ZQorCQkgICAgZWxzZQorCQkgICAgICAjIElmIGxpYnRvb2wgb2JqZWN0cyBhcmUgdW5zdXBwb3J0ZWQsIHRoZW4gd2UgbmVlZCB0byBwcmVsb2FkLgorCQkgICAgICBwcmV2PWRscHJlZmlsZXMKKwkJICAgIGZpCisJCSAgZmkKKworCQkgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCisJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgorCQkgICAgIyBQcmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgorCQkgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCisJCSAgICBwcmV2PQorCQkgIGZpCisKKwkJICAjIEEgUElDIG9iamVjdC4KKwkJICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCisJCSAgYXJnPSIkcGljX29iamVjdCIKKwkJZmkKKworCQkjIE5vbi1QSUMgb2JqZWN0LgorCQlpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGluLgorCQkgIG5vbl9waWNfb2JqZWN0PSIkeGRpciRub25fcGljX29iamVjdCIKKworCQkgICMgQSBzdGFuZGFyZCBub24tUElDIG9iamVjdAorCQkgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKKwkJICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSA7IHRoZW4KKwkJICAgIGFyZz0iJG5vbl9waWNfb2JqZWN0IgorCQkgIGZpCisJCWVsc2UKKwkJICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0cywgdXNlIGl0IGluc3RlYWQuCisJCSAgIyAkeGRpciB3YXMgcHJlcGVuZGVkIHRvICRwaWNfb2JqZWN0IGFib3ZlLgorCQkgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIKKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisJCWZpCisJICAgICAgZWxzZQorCQkjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KKwkJaWYgJG9wdF9kcnlfcnVuOyB0aGVuCisJCSAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKwkJICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgorCQkgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCisJCSAgZnVuY19sbzJvICIkYXJnIgorCQkgIHBpY19vYmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5jX2xvMm9fcmVzdWx0CisJCSAgbm9uX3BpY19vYmplY3Q9JHhkaXIkZnVuY19sbzJvX3Jlc3VsdAorCQkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisJICAgICAgICBlbHNlCisJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIG9iamVjdCIKKwkJZmkKKwkgICAgICBmaQorCSAgICBkb25lCisJICBlbHNlCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImxpbmsgaW5wdXQgZmlsZSBcYCRhcmcnIGRvZXMgbm90IGV4aXN0IgorCSAgZmkKKwkgIGFyZz0kc2F2ZV9hcmcKKwkgIHByZXY9CisJICBjb250aW51ZQorCSAgOzsKKwlwcmVjaW91c19yZWdleCkKKwkgIHByZWNpb3VzX2ZpbGVzX3JlZ2V4PSIkYXJnIgorCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OworCXJlbGVhc2UpCisJICByZWxlYXNlPSItJGFyZyIKKwkgIHByZXY9CisJICBjb250aW51ZQorCSAgOzsKKwlycGF0aCB8IHhycGF0aCkKKwkgICMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorCSAgY2FzZSAkYXJnIGluCisJICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisJICAqKQorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIKKwkgICAgOzsKKwkgIGVzYWMKKwkgIGlmIHRlc3QgIiRwcmV2IiA9IHJwYXRoOyB0aGVuCisJICAgIGNhc2UgIiRycGF0aCAiIGluCisJICAgICoiICRhcmcgIiopIDs7CisJICAgICopIHJwYXRoPSIkcnBhdGggJGFyZyIgOzsKKwkgICAgZXNhYworCSAgZWxzZQorCSAgICBjYXNlICIkeHJwYXRoICIgaW4KKwkgICAgKiIgJGFyZyAiKikgOzsKKwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRhcmciIDs7CisJICAgIGVzYWMKKwkgIGZpCisJICBwcmV2PQorCSAgY29udGludWUKKwkgIDs7CisJc2hyZXh0KQorCSAgc2hyZXh0X2NtZHM9IiRhcmciCisJICBwcmV2PQorCSAgY29udGludWUKKwkgIDs7CisJd2VhaykKKwkgIHdlYWtfbGlicz0iJHdlYWtfbGlicyAkYXJnIgorCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OworCXhjY2xpbmtlcikKKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCisJICBwcmV2PQorCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHFhcmciCisJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHFhcmciCisJICBjb250aW51ZQorCSAgOzsKKwl4Y29tcGlsZXIpCisJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRxYXJnIgorCSAgcHJldj0KKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRxYXJnIgorCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRxYXJnIgorCSAgY29udGludWUKKwkgIDs7CisJeGxpbmtlcikKKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJHFhcmciCisJICBwcmV2PQorCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHdsJHFhcmciCisJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHdsJHFhcmciCisJICBjb250aW51ZQorCSAgOzsKKwkqKQorCSAgZXZhbCAiJHByZXY9XCJcJGFyZ1wiIgorCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OworCWVzYWMKKyAgICAgIGZpICMgdGVzdCAtbiAiJHByZXYiCisKKyAgICAgIHByZXZhcmc9IiRhcmciCisKKyAgICAgIGNhc2UgJGFyZyBpbgorICAgICAgLWFsbC1zdGF0aWMpCisJaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisJICAjIFNlZSBjb21tZW50IGZvciAtc3RhdGljIGZsYWcgYmVsb3csIGZvciBtb3JlIGRldGFpbHMuCisJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkbGlua19zdGF0aWNfZmxhZyIKKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkbGlua19zdGF0aWNfZmxhZyIKKwlmaQorCWNvbnRpbnVlCisJOzsKKworICAgICAgLWFsbG93LXVuZGVmaW5lZCkKKwkjIEZJWE1FOiByZW1vdmUgdGhpcyBmbGFnIHNvbWV0aW1lIGluIHRoZSBmdXR1cmUuCisJZnVuY19mYXRhbF9lcnJvciAiXGAtYWxsb3ctdW5kZWZpbmVkJyBtdXN0IG5vdCBiZSB1c2VkIGJlY2F1c2UgaXQgaXMgdGhlIGRlZmF1bHQiCisJOzsKKworICAgICAgLWF2b2lkLXZlcnNpb24pCisJYXZvaWRfdmVyc2lvbj15ZXMKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1kbG9wZW4pCisJcHJldj1kbGZpbGVzCisJY29udGludWUKKwk7OworCisgICAgICAtZGxwcmVvcGVuKQorCXByZXY9ZGxwcmVmaWxlcworCWNvbnRpbnVlCisJOzsKKworICAgICAgLWV4cG9ydC1keW5hbWljKQorCWV4cG9ydF9keW5hbWljPXllcworCWNvbnRpbnVlCisJOzsKKworICAgICAgLWV4cG9ydC1zeW1ib2xzIHwgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4KQorCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgfHwgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorCSAgZnVuY19mYXRhbF9lcnJvciAibW9yZSB0aGFuIG9uZSAtZXhwb3J0ZWQtc3ltYm9scyBhcmd1bWVudCBpcyBub3QgYWxsb3dlZCIKKwlmaQorCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWV4cG9ydC1zeW1ib2xzIjsgdGhlbgorCSAgcHJldj1leHBzeW1zCisJZWxzZQorCSAgcHJldj1leHBzeW1zX3JlZ2V4CisJZmkKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1mcmFtZXdvcmspCisJcHJldj1mcmFtZXdvcmsKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1pbnN0LXByZWZpeC1kaXIpCisJcHJldj1pbnN0X3ByZWZpeAorCWNvbnRpbnVlCisJOzsKKworICAgICAgIyBUaGUgbmF0aXZlIElSSVggbGlua2VyIHVuZGVyc3RhbmRzIC1MQU5HOiosIC1MSVNUOiogYW5kIC1MTk86KgorICAgICAgIyBzbywgaWYgd2Ugc2VlIHRoZXNlIGZsYWdzIGJlIGNhcmVmdWwgbm90IHRvIHRyZWF0IHRoZW0gbGlrZSAtTAorICAgICAgLUxbQS1aXVtBLVpdKjoqKQorCWNhc2UgJHdpdGhfZ2NjLyRob3N0IGluCisJbm8vKi0qLWlyaXgqIHwgLyotKi1pcml4KikKKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKKwkgIDs7CisJZXNhYworCWNvbnRpbnVlCisJOzsKKworICAgICAgLUwqKQorCWZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRhcmciCisJZGlyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwlpZiB0ZXN0IC16ICIkZGlyIjsgdGhlbgorCSAgaWYgdGVzdCAiJCMiIC1ndCAwOyB0aGVuCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInJlcXVpcmUgbm8gc3BhY2UgYmV0d2VlbiBcYC1MJyBhbmQgXGAkMSciCisJICBlbHNlCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm5lZWQgcGF0aCBmb3IgXGAtTCcgb3B0aW9uIgorCSAgZmkKKwlmaQorCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorCWNhc2UgJGRpciBpbgorCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKKwkqKQorCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAorCSAgdGVzdCAteiAiJGFic2RpciIgJiYgXAorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGRpciciCisJICBkaXI9IiRhYnNkaXIiCisJICA7OworCWVzYWMKKwljYXNlICIkZGVwbGlicyAiIGluCisJKiIgLUwkZGlyICIqKSA7OworCSopCisJICBkZXBsaWJzPSIkZGVwbGlicyAtTCRkaXIiCisJICBsaWJfc2VhcmNoX3BhdGg9IiRsaWJfc2VhcmNoX3BhdGggJGRpciIKKwkgIDs7CisJZXNhYworCWNhc2UgJGhvc3QgaW4KKwkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotY2VnY2MqKQorCSAgdGVzdGJpbmRpcj1gJEVDSE8gIlgkZGlyIiB8ICRYc2VkIC1lICdzKi9saWIkKi9iaW4qJ2AKKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgorCSAgKiI6JGRpcjoiKikgOzsKKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSRkaXI7OworCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JGRpciI7OworCSAgZXNhYworCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsKKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0YmluZGlyIjs7CisJICBlc2FjCisJICA7OworCWVzYWMKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1sKikKKwlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgfHwgdGVzdCAiWCRhcmciID0gIlgtbG0iOyB0aGVuCisJICBjYXNlICRob3N0IGluCisJICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKikKKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIG9yIG1hdGggbGlicmFyeSAoYXMgc3VjaCkKKwkgICAgY29udGludWUKKwkgICAgOzsKKwkgICotKi1vczIqKQorCSAgICAjIFRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgbGlicmFyeSAoYXMgc3VjaCkKKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVlCisJICAgIDs7CisJICAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKKwkgICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjIGR1ZSB0byB1cyBoYXZpbmcgbGliYy9saWJjX3IuCisJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorCSAgICA7OworCSAgKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQorCSAgICAjIFJoYXBzb2R5IEMgYW5kIG1hdGggbGlicmFyaWVzIGFyZSBpbiB0aGUgU3lzdGVtIGZyYW1ld29yaworCSAgICBkZXBsaWJzPSIkZGVwbGlicyBTeXN0ZW0ubHRmcmFtZXdvcmsiCisJICAgIGNvbnRpbnVlCisJICAgIDs7CisJICAqLSotc2NvMy4ydjUqIHwgKi0qLXNjbzV2NiopCisJICAgICMgQ2F1c2VzIHByb2JsZW1zIHdpdGggX19jdHlwZQorCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKKwkgICAgOzsKKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0qLU9wZW5VTklYKikKKwkgICAgIyBDb21waWxlciBpbnNlcnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVhZHMgdG8gd29yaworCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKKwkgICAgOzsKKwkgIGVzYWMKKwllbGlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjX3IiOyB0aGVuCisJIGNhc2UgJGhvc3QgaW4KKwkgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCisJICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjX3IgZGlyZWN0bHksIHVzZSAtcHRocmVhZCBmbGFnLgorCSAgIGNvbnRpbnVlCisJICAgOzsKKwkgZXNhYworCWZpCisJZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1tb2R1bGUpCisJbW9kdWxlPXllcworCWNvbnRpbnVlCisJOzsKKworICAgICAgIyBUcnU2NCBVTklYIHVzZXMgLW1vZGVsIFthcmddIHRvIGRldGVybWluZSB0aGUgbGF5b3V0IG9mIEMrKworICAgICAgIyBjbGFzc2VzLCBuYW1lIG1hbmdsaW5nLCBhbmQgZXhjZXB0aW9uIGhhbmRsaW5nLgorICAgICAgIyBEYXJ3aW4gdXNlcyB0aGUgLWFyY2ggZmxhZyB0byBkZXRlcm1pbmUgb3V0cHV0IGFyY2hpdGVjdHVyZS4KKyAgICAgIC1tb2RlbHwtYXJjaHwtaXN5c3Jvb3QpCisJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgorCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisJZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisJcHJldj14Y29tcGlsZXIKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRocmVhZHMpCisJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgorCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisJZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKwkgICAgKiIgJGFyZyAiKikgOzsKKwkgICAgKiApIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGFyZyIgOzsKKwllc2FjCisJY29udGludWUKKwk7OworCisgICAgICAtbXVsdGlfbW9kdWxlKQorCXNpbmdsZV9tb2R1bGU9IiR7d2x9LW11bHRpX21vZHVsZSIKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1uby1mYXN0LWluc3RhbGwpCisJZmFzdF9pbnN0YWxsPW5vCisJY29udGludWUKKwk7OworCisgICAgICAtbm8taW5zdGFsbCkKKwljYXNlICRob3N0IGluCisJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSotZGFyd2luKiB8ICotY2VnY2MqKQorCSAgIyBUaGUgUEFUSCBoYWNrZXJ5IGluIHdyYXBwZXIgc2NyaXB0cyBpcyByZXF1aXJlZCBvbiBXaW5kb3dzCisJICAjIGFuZCBEYXJ3aW4gaW4gb3JkZXIgZm9yIHRoZSBsb2FkZXIgdG8gZmluZCBhbnkgZGxscyBpdCBuZWVkcy4KKwkgIGZ1bmNfd2FybmluZyAiXGAtbm8taW5zdGFsbCcgaXMgaWdub3JlZCBmb3IgJGhvc3QiCisJICBmdW5jX3dhcm5pbmcgImFzc3VtaW5nIFxgLW5vLWZhc3QtaW5zdGFsbCcgaW5zdGVhZCIKKwkgIGZhc3RfaW5zdGFsbD1ubworCSAgOzsKKwkqKSBub19pbnN0YWxsPXllcyA7OworCWVzYWMKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1uby11bmRlZmluZWQpCisJYWxsb3dfdW5kZWZpbmVkPW5vCisJY29udGludWUKKwk7OworCisgICAgICAtb2JqZWN0bGlzdCkKKwlwcmV2PW9iamVjdGxpc3QKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1vKSBwcmV2PW91dHB1dCA7OworCisgICAgICAtcHJlY2lvdXMtZmlsZXMtcmVnZXgpCisJcHJldj1wcmVjaW91c19yZWdleAorCWNvbnRpbnVlCisJOzsKKworICAgICAgLXJlbGVhc2UpCisJcHJldj1yZWxlYXNlCisJY29udGludWUKKwk7OworCisgICAgICAtcnBhdGgpCisJcHJldj1ycGF0aAorCWNvbnRpbnVlCisJOzsKKworICAgICAgLVIpCisJcHJldj14cnBhdGgKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1SKikKKwlmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkYXJnIgorCWRpcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisJY2FzZSAkZGlyIGluCisJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OworCSopCisJICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIKKwkgIDs7CisJZXNhYworCWNhc2UgIiR4cnBhdGggIiBpbgorCSoiICRkaXIgIiopIDs7CisJKikgeHJwYXRoPSIkeHJwYXRoICRkaXIiIDs7CisJZXNhYworCWNvbnRpbnVlCisJOzsKKworICAgICAgLXNoYXJlZCkKKwkjIFRoZSBlZmZlY3RzIG9mIC1zaGFyZWQgYXJlIGRlZmluZWQgaW4gYSBwcmV2aW91cyBsb29wLgorCWNvbnRpbnVlCisJOzsKKworICAgICAgLXNocmV4dCkKKwlwcmV2PXNocmV4dAorCWNvbnRpbnVlCisJOzsKKworICAgICAgLXN0YXRpYyB8IC1zdGF0aWMtbGlidG9vbC1saWJzKQorCSMgVGhlIGVmZmVjdHMgb2YgLXN0YXRpYyBhcmUgZGVmaW5lZCBpbiBhIHByZXZpb3VzIGxvb3AuCisJIyBXZSB1c2VkIHRvIGRvIHRoZSBzYW1lIGFzIC1hbGwtc3RhdGljIG9uIHBsYXRmb3JtcyB0aGF0CisJIyBkaWRuJ3QgaGF2ZSBhIFBJQyBmbGFnLCBidXQgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgZWZmZWN0cworCSMgd291bGQgYmUgZXF1aXZhbGVudCB3YXMgd3JvbmcuICBJdCB3b3VsZCBicmVhayBvbiBhdCBsZWFzdAorCSMgRGlnaXRhbCBVbml4IGFuZCBBSVguCisJY29udGludWUKKwk7OworCisgICAgICAtdGhyZWFkLXNhZmUpCisJdGhyZWFkX3NhZmU9eWVzCisJY29udGludWUKKwk7OworCisgICAgICAtdmVyc2lvbi1pbmZvKQorCXByZXY9dmluZm8KKwljb250aW51ZQorCTs7CisKKyAgICAgIC12ZXJzaW9uLW51bWJlcikKKwlwcmV2PXZpbmZvCisJdmluZm9fbnVtYmVyPXllcworCWNvbnRpbnVlCisJOzsKKworICAgICAgLXdlYWspCisgICAgICAgIHByZXY9d2VhaworCWNvbnRpbnVlCisJOzsKKworICAgICAgLVdjLCopCisJZnVuY19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgorCWFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCWFyZz0KKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKKwlmb3IgZmxhZyBpbiAkYXJnczsgZG8KKwkgIElGUz0iJHNhdmVfaWZzIgorICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgorCSAgYXJnPSIkYXJnICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCWRvbmUKKwlJRlM9IiRzYXZlX2lmcyIKKwlmdW5jX3N0cmlwbmFtZSAnICcgJycgIiRhcmciCisJYXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwk7OworCisgICAgICAtV2wsKikKKwlmdW5jX3N0cmlwbmFtZSAnLVdsLCcgJycgIiRhcmciCisJYXJncz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJYXJnPQorCXNhdmVfaWZzPSIkSUZTIjsgSUZTPScsJworCWZvciBmbGFnIGluICRhcmdzOyBkbworCSAgSUZTPSIkc2F2ZV9pZnMiCisgICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZsYWciCisJICBhcmc9IiRhcmcgJHdsJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCWRvbmUKKwlJRlM9IiRzYXZlX2lmcyIKKwlmdW5jX3N0cmlwbmFtZSAnICcgJycgIiRhcmciCisJYXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwk7OworCisgICAgICAtWGNvbXBpbGVyKQorCXByZXY9eGNvbXBpbGVyCisJY29udGludWUKKwk7OworCisgICAgICAtWGxpbmtlcikKKwlwcmV2PXhsaW5rZXIKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1YQ0NsaW5rZXIpCisJcHJldj14Y2NsaW5rZXIKKwljb250aW51ZQorCTs7CisKKyAgICAgICMgLW1zZ18qIGZvciBvc2YgY2MKKyAgICAgIC1tc2dfKikKKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCTs7CisKKyAgICAgICMgLTY0LCAtbWlwc1swLTldIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgU0dJIGNvbXBpbGVyCisgICAgICAjIC1yWzAtOV1bMC05XSogc3BlY2lmaWVzIHRoZSBwcm9jZXNzb3Igb24gdGhlIFNHSSBjb21waWxlcgorICAgICAgIyAteGFyY2g9KiwgLXh0YXJnZXQ9KiBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIFN1biBjb21waWxlcgorICAgICAgIyArREEqLCArREQqIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgSFAgY29tcGlsZXIKKyAgICAgICMgLXEqIHBhc3MgdGhyb3VnaCBjb21waWxlciBhcmdzIGZvciB0aGUgSUJNIGNvbXBpbGVyCisgICAgICAjIC1tKiwgLXRbNDVdKiwgLXR4c2NhbGUqIHBhc3MgdGhyb3VnaCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMKKyAgICAgICMgY29tcGlsZXIgYXJncyBmb3IgR0NDCisgICAgICAjIC1GL3BhdGggZ2l2ZXMgcGF0aCB0byB1bmluc3RhbGxlZCBmcmFtZXdvcmtzLCBnY2Mgb24gZGFyd2luCisgICAgICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qIHBhc3MgdGhyb3VnaCBwcm9maWxpbmcgZmxhZyBmb3IgR0NDCisgICAgICAjIEBmaWxlIEdDQyByZXNwb25zZSBmaWxlcworICAgICAgLTY0fC1taXBzWzAtOV18LXJbMC05XVswLTldKnwteGFyY2g9KnwteHRhcmdldD0qfCtEQSp8K0REKnwtcSp8LW0qfCBcCisgICAgICAtdFs0NV0qfC10eHNjYWxlKnwtcHwtcGd8LS1jb3ZlcmFnZXwtZnByb2ZpbGUtKnwtRip8QCopCisgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisgICAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisgICAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgorICAgICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisgICAgICAgIGNvbnRpbnVlCisgICAgICAgIDs7CisKKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBmbGFnLgorICAgICAgLSogfCArKikKKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwk7OworCisgICAgICAqLiRvYmpleHQpCisJIyBBIHN0YW5kYXJkIG9iamVjdC4KKwlvYmpzPSIkb2JqcyAkYXJnIgorCTs7CisKKyAgICAgICoubG8pCisJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBvYmplY3QuCisKKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3QuCisJaWYgZnVuY19sYWxpYl91bnNhZmVfcCAiJGFyZyI7IHRoZW4KKwkgIHBpY19vYmplY3Q9CisJICBub25fcGljX29iamVjdD0KKworCSAgIyBSZWFkIHRoZSAubG8gZmlsZQorCSAgZnVuY19zb3VyY2UgIiRhcmciCisKKwkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fAorCSAgICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAorCSAgICAgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSAmJgorCSAgICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiA9IG5vbmU7IHRoZW4KKwkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBvYmplY3QgZm9yIFxgJGFyZyciCisJICBmaQorCisJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorCSAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKKwkgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCisJICBpZiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgorCSAgICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGluLgorCSAgICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgorCisJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCisJCWRsZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgorCQlwcmV2PQorCQljb250aW51ZQorCSAgICAgIGVsc2UKKwkJIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KKwkJcHJldj1kbHByZWZpbGVzCisJICAgICAgZmkKKwkgICAgZmkKKworCSAgICAjIENIRUNLIE1FOiAgSSB0aGluayBJIGJ1c3RlZCB0aGlzLiAgLU9zc2FtYQorCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCisJICAgICAgIyBQcmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgorCSAgICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0IgorCSAgICAgIHByZXY9CisJICAgIGZpCisKKwkgICAgIyBBIFBJQyBvYmplY3QuCisJICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKKwkgICAgYXJnPSIkcGljX29iamVjdCIKKwkgIGZpCisKKwkgICMgTm9uLVBJQyBvYmplY3QuCisJICBpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKwkgICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKwkgICAgbm9uX3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9waWNfb2JqZWN0IgorCisJICAgICMgQSBzdGFuZGFyZCBub24tUElDIG9iamVjdAorCSAgICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisJICAgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fCB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lIDsgdGhlbgorCSAgICAgIGFyZz0iJG5vbl9waWNfb2JqZWN0IgorCSAgICBmaQorCSAgZWxzZQorCSAgICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0cywgdXNlIGl0IGluc3RlYWQuCisJICAgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92ZS4KKwkgICAgbm9uX3BpY19vYmplY3Q9IiRwaWNfb2JqZWN0IgorCSAgICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisJICBmaQorCWVsc2UKKwkgICMgT25seSBhbiBlcnJvciBpZiBub3QgZG9pbmcgYSBkcnktcnVuLgorCSAgaWYgJG9wdF9kcnlfcnVuOyB0aGVuCisJICAgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisJICAgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisJICAgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCisJICAgIGZ1bmNfbG8ybyAiJGFyZyIKKwkgICAgcGljX29iamVjdD0keGRpciRvYmpkaXIvJGZ1bmNfbG8yb19yZXN1bHQKKwkgICAgbm9uX3BpY19vYmplY3Q9JHhkaXIkZnVuY19sbzJvX3Jlc3VsdAorCSAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCisJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKKwkgIGVsc2UKKwkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIG9iamVjdCIKKwkgIGZpCisJZmkKKwk7OworCisgICAgICAqLiRsaWJleHQpCisJIyBBbiBhcmNoaXZlLgorCWRlcGxpYnM9IiRkZXBsaWJzICRhcmciCisJb2xkX2RlcGxpYnM9IiRvbGRfZGVwbGlicyAkYXJnIgorCWNvbnRpbnVlCisJOzsKKworICAgICAgKi5sYSkKKwkjIEEgbGlidG9vbC1jb250cm9sbGVkIGxpYnJhcnkuCisKKwlpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCisJICAjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRsb3Blbi4KKwkgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisJICBwcmV2PQorCWVsaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgorCSAgIyBUaGUgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4KKwkgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRhcmciCisJICBwcmV2PQorCWVsc2UKKwkgIGRlcGxpYnM9IiRkZXBsaWJzICRhcmciCisJZmkKKwljb250aW51ZQorCTs7CisKKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBhcmd1bWVudC4KKyAgICAgICopCisJIyBVbmtub3duIGFyZ3VtZW50cyBpbiBib3RoIGZpbmFsaXplX2NvbW1hbmQgYW5kIGNvbXBpbGVfY29tbWFuZCBuZWVkCisJIyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4KKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCTs7CisgICAgICBlc2FjICMgYXJnCisKKyAgICAgICMgTm93IGFjdHVhbGx5IHN1YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRzLgorICAgICAgaWYgdGVzdCAtbiAiJGFyZyI7IHRoZW4KKwlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgorCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgorICAgICAgZmkKKyAgICBkb25lICMgYXJndW1lbnQgcGFyc2luZyBsb29wCisKKyAgICB0ZXN0IC1uICIkcHJldiIgJiYgXAorICAgICAgZnVuY19mYXRhbF9oZWxwICJ0aGUgXGAkcHJldmFyZycgb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IgorCisgICAgaWYgdGVzdCAiJGV4cG9ydF9keW5hbWljIiA9IHllcyAmJiB0ZXN0IC1uICIkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjIjsgdGhlbgorICAgICAgZXZhbCBhcmc9XCIkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIKKyAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisgICAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKKyAgICBmaQorCisgICAgb2xkbGlicz0KKyAgICAjIGNhbGN1bGF0ZSB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgd2l0aG91dCBpdHMgZGlyZWN0b3J5CisgICAgZnVuY19iYXNlbmFtZSAiJG91dHB1dCIKKyAgICBvdXRwdXRuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisgICAgbGlib2Jqc19zYXZlPSIkbGlib2JqcyIKKworICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorICAgICAgIyBnZXQgdGhlIGRpcmVjdG9yaWVzIGxpc3RlZCBpbiAkc2hsaWJwYXRoX3ZhcgorICAgICAgZXZhbCBzaGxpYl9zZWFyY2hfcGF0aD1cYFwkRUNITyBcIlhcJHskc2hsaWJwYXRoX3Zhcn1cIiBcfCBcJFhzZWQgLWUgXCdzLzovIC9nXCdcYAorICAgIGVsc2UKKyAgICAgIHNobGliX3NlYXJjaF9wYXRoPQorICAgIGZpCisgICAgZXZhbCBzeXNfbGliX3NlYXJjaF9wYXRoPVwiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlY1wiCisgICAgZXZhbCBzeXNfbGliX2Rsc2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWNcIgorCisgICAgZnVuY19kaXJuYW1lICIkb3V0cHV0IiAiLyIgIiIKKyAgICBvdXRwdXRfb2JqZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCRvYmpkaXIiCisgICAgIyBDcmVhdGUgdGhlIG9iamVjdCBkaXJlY3RvcnkuCisgICAgZnVuY19ta2Rpcl9wICIkb3V0cHV0X29iamRpciIKKworICAgICMgRGV0ZXJtaW5lIHRoZSB0eXBlIG9mIG91dHB1dAorICAgIGNhc2UgJG91dHB1dCBpbgorICAgICIiKQorICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIgorICAgICAgOzsKKyAgICAqLiRsaWJleHQpIGxpbmttb2RlPW9sZGxpYiA7OworICAgICoubG8gfCAqLiRvYmpleHQpIGxpbmttb2RlPW9iaiA7OworICAgICoubGEpIGxpbmttb2RlPWxpYiA7OworICAgICopIGxpbmttb2RlPXByb2cgOzsgIyBBbnl0aGluZyBlbHNlIHNob3VsZCBiZSBhIHByb2dyYW0uCisgICAgZXNhYworCisgICAgc3BlY2lhbGRlcGxpYnM9CisKKyAgICBsaWJzPQorICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVwbGlicyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcworICAgICMgdGhhdCBhcmUgbGlua2VkIG1vcmUgdGhhbiBvbmNlIChlLmcuIC1sYSAtbGIgLWxhKQorICAgIGZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCisgICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorCWNhc2UgIiRsaWJzICIgaW4KKwkqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisJZXNhYworICAgICAgZmkKKyAgICAgIGxpYnM9IiRsaWJzICRkZXBsaWIiCisgICAgZG9uZQorCisgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgorICAgICAgbGlicz0iJHByZWRlcHMgJGxpYnMgJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCAkcG9zdGRlcHMiCisKKyAgICAgICMgQ29tcHV0ZSBsaWJyYXJpZXMgdGhhdCBhcmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVkZXBzCisgICAgICAjICRwb3N0ZGVwcyBhbmQgbWFyayB0aGVtIGFzIHNwZWNpYWwgKGkuZS4sIHdob3NlIGR1cGxpY2F0ZXMgYXJlCisgICAgICAjIG5vdCB0byBiZSBlbGltaW5hdGVkKS4KKyAgICAgIHByZV9wb3N0X2RlcHM9CisgICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwczsgdGhlbgorCWZvciBwcmVfcG9zdF9kZXAgaW4gJHByZWRlcHMgJHBvc3RkZXBzOyBkbworCSAgY2FzZSAiJHByZV9wb3N0X2RlcHMgIiBpbgorCSAgKiIgJHByZV9wb3N0X2RlcCAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkcHJlX3Bvc3RfZGVwcyIgOzsKKwkgIGVzYWMKKwkgIHByZV9wb3N0X2RlcHM9IiRwcmVfcG9zdF9kZXBzICRwcmVfcG9zdF9kZXAiCisJZG9uZQorICAgICAgZmkKKyAgICAgIHByZV9wb3N0X2RlcHM9CisgICAgZmkKKworICAgIGRlcGxpYnM9CisgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQorICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0KKyAgICBuZWVkX3JlbGluaz1ubyAjIHdoZXRoZXIgd2UncmUgbGlua2luZyBhbnkgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKyAgICBub3RpbnN0X2RlcGxpYnM9ICMgbm90LWluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcworICAgIG5vdGluc3RfcGF0aD0gIyBwYXRocyB0aGF0IGNvbnRhaW4gbm90LWluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcworCisgICAgY2FzZSAkbGlua21vZGUgaW4KKyAgICBsaWIpCisJcGFzc2VzPSJjb252IGRscHJlb3BlbiBsaW5rIgorCWZvciBmaWxlIGluICRkbGZpbGVzICRkbHByZWZpbGVzOyBkbworCSAgY2FzZSAkZmlsZSBpbgorCSAgKi5sYSkgOzsKKwkgICopCisJICAgIGZ1bmNfZmF0YWxfaGVscCAibGlicmFyaWVzIGNhbiBcYC1kbG9wZW4nIG9ubHkgbGlidG9vbCBsaWJyYXJpZXM6ICRmaWxlIgorCSAgICA7OworCSAgZXNhYworCWRvbmUKKwk7OworICAgIHByb2cpCisJY29tcGlsZV9kZXBsaWJzPQorCWZpbmFsaXplX2RlcGxpYnM9CisJYWxsZGVwbGlicz1ubworCW5ld2RsZmlsZXM9CisJbmV3ZGxwcmVmaWxlcz0KKwlwYXNzZXM9ImNvbnYgc2NhbiBkbG9wZW4gZGxwcmVvcGVuIGxpbmsiCisJOzsKKyAgICAqKSAgcGFzc2VzPSJjb252IgorCTs7CisgICAgZXNhYworCisgICAgZm9yIHBhc3MgaW4gJHBhc3NlczsgZG8KKyAgICAgICMgVGhlIHByZW9wZW4gcGFzcyBpbiBsaWIgbW9kZSByZXZlcnNlcyAkZGVwbGliczsgcHV0IGl0IGJhY2sgaGVyZQorICAgICAgIyBzbyB0aGF0IC1MIGNvbWVzIGJlZm9yZSBsaWJzIHRoYXQgbmVlZCBpdCBmb3IgaW5zdGFuY2UuLi4KKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiOyB0aGVuCisJIyMgRklYTUU6IEZpbmQgdGhlIHBsYWNlIHdoZXJlIHRoZSBsaXN0IGlzIHJlYnVpbHQgaW4gdGhlIHdyb25nCisJIyMgICAgICAgIG9yZGVyLCBhbmQgZml4IGl0IHRoZXJlIHByb3Blcmx5CisgICAgICAgIHRtcF9kZXBsaWJzPQorCWZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCisJICB0bXBfZGVwbGlicz0iJGRlcGxpYiAkdG1wX2RlcGxpYnMiCisJZG9uZQorCWRlcGxpYnM9IiR0bXBfZGVwbGlicyIKKyAgICAgIGZpCisKKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiIHx8CisJIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2FuIjsgdGhlbgorCWxpYnM9IiRkZXBsaWJzIgorCWRlcGxpYnM9CisgICAgICBmaQorICAgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKwljYXNlICRwYXNzIGluCisJZGxvcGVuKSBsaWJzPSIkZGxmaWxlcyIgOzsKKwlkbHByZW9wZW4pIGxpYnM9IiRkbHByZWZpbGVzIiA7OworCWxpbmspIGxpYnM9IiRkZXBsaWJzICVERVBMSUJTJSAkZGVwZW5kZW5jeV9saWJzIiA7OworCWVzYWMKKyAgICAgIGZpCisgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixkbHByZW9wZW4iOyB0aGVuCisJIyBDb2xsZWN0IGFuZCBmb3J3YXJkIGRlcGxpYnMgb2YgcHJlb3BlbmVkIGxpYnRvb2wgbGlicworCWZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCisJICAjIElnbm9yZSBub24tbGlidG9vbC1saWJzCisJICBkZXBlbmRlbmN5X2xpYnM9CisJICBjYXNlICRsaWIgaW4KKwkgICoubGEpCWZ1bmNfc291cmNlICIkbGliIiA7OworCSAgZXNhYworCisJICAjIENvbGxlY3QgcHJlb3BlbmVkIGxpYnRvb2wgZGVwbGlicywgZXhjZXB0IGFueSB0aGlzIGxpYnJhcnkKKwkgICMgaGFzIGRlY2xhcmVkIGFzIHdlYWsgbGlicworCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworICAgICAgICAgICAgZGVwbGliX2Jhc2U9YCRFQ0hPICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKKwkgICAgY2FzZSAiICR3ZWFrX2xpYnMgIiBpbgorCSAgICAqIiAkZGVwbGliX2Jhc2UgIiopIDs7CisJICAgICopIGRlcGxpYnM9IiRkZXBsaWJzICRkZXBsaWIiIDs7CisJICAgIGVzYWMKKwkgIGRvbmUKKwlkb25lCisJbGlicz0iJGRscHJlZmlsZXMiCisgICAgICBmaQorICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCisJIyBDb2xsZWN0IGRscHJlb3BlbmVkIGxpYnJhcmllcworCXNhdmVfZGVwbGlicz0iJGRlcGxpYnMiCisJZGVwbGlicz0KKyAgICAgIGZpCisKKyAgICAgIGZvciBkZXBsaWIgaW4gJGxpYnM7IGRvCisJbGliPQorCWZvdW5kPW5vCisJY2FzZSAkZGVwbGliIGluCisJLW10fC1tdGhyZWFkc3wta3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRocmVhZHN8LS10aHJlYWQtc2FmZXwtdGhyZWFkcykKKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgorCSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKwkgIGVsc2UKKwkgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkZGVwbGliIgorCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliIDsgdGhlbgorCQljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgorCQkgICAgKiIgJGRlcGxpYiAiKikgOzsKKwkJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRkZXBsaWIiIDs7CisJCWVzYWMKKwkgICAgZmkKKwkgIGZpCisJICBjb250aW51ZQorCSAgOzsKKwktbCopCisJICBpZiB0ZXN0ICIkbGlua21vZGUiICE9IGxpYiAmJiB0ZXN0ICIkbGlua21vZGUiICE9IHByb2c7IHRoZW4KKwkgICAgZnVuY193YXJuaW5nICJcYC1sJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIgorCSAgICBjb250aW51ZQorCSAgZmkKKwkgIGZ1bmNfc3RyaXBuYW1lICctbCcgJycgIiRkZXBsaWIiCisJICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KKwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRjb21waWxlcl9saWJfc2VhcmNoX2RpcnMgJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoIgorCSAgZWxzZQorCSAgICBzZWFyY2hkaXJzPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsaWJfc2VhcmNoX3BhdGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoIgorCSAgZmkKKwkgIGZvciBzZWFyY2hkaXIgaW4gJHNlYXJjaGRpcnM7IGRvCisJICAgIGZvciBzZWFyY2hfZXh0IGluIC5sYSAkc3RkX3NocmV4dCAuc28gLmE7IGRvCisJICAgICAgIyBTZWFyY2ggdGhlIGxpYnRvb2wgbGlicmFyeQorCSAgICAgIGxpYj0iJHNlYXJjaGRpci9saWIke25hbWV9JHtzZWFyY2hfZXh0fSIKKwkgICAgICBpZiB0ZXN0IC1mICIkbGliIjsgdGhlbgorCQlpZiB0ZXN0ICIkc2VhcmNoX2V4dCIgPSAiLmxhIjsgdGhlbgorCQkgIGZvdW5kPXllcworCQllbHNlCisJCSAgZm91bmQ9bm8KKwkJZmkKKwkJYnJlYWsgMgorCSAgICAgIGZpCisJICAgIGRvbmUKKwkgIGRvbmUKKwkgIGlmIHRlc3QgIiRmb3VuZCIgIT0geWVzOyB0aGVuCisJICAgICMgZGVwbGliIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGxpYnRvb2wgbGlicmFyeQorCSAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorCSAgICBlbHNlCisJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwkgICAgICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorCSAgICBmaQorCSAgICBjb250aW51ZQorCSAgZWxzZSAjIGRlcGxpYiBpcyBhIGxpYnRvb2wgbGlicmFyeQorCSAgICAjIElmICRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMgJiYgJGRlcGxpYiBpcyBhIHN0ZGxpYiwKKwkgICAgIyBXZSBuZWVkIHRvIGRvIHNvbWUgc3BlY2lhbCB0aGluZ3MgaGVyZSwgYW5kIG5vdCBsYXRlci4KKwkgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorCSAgICAgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorCSAgICAgICoiICRkZXBsaWIgIiopCisJCWlmIGZ1bmNfbGFsaWJfcCAiJGxpYiI7IHRoZW4KKwkJICBsaWJyYXJ5X25hbWVzPQorCQkgIG9sZF9saWJyYXJ5PQorCQkgIGZ1bmNfc291cmNlICIkbGliIgorCQkgIGZvciBsIGluICRvbGRfbGlicmFyeSAkbGlicmFyeV9uYW1lczsgZG8KKwkJICAgIGxsPSIkbCIKKwkJICBkb25lCisJCSAgaWYgdGVzdCAiWCRsbCIgPSAiWCRvbGRfbGlicmFyeSIgOyB0aGVuICMgb25seSBzdGF0aWMgdmVyc2lvbiBhdmFpbGFibGUKKwkJICAgIGZvdW5kPW5vCisJCSAgICBmdW5jX2Rpcm5hbWUgIiRsaWIiICIiICIuIgorCQkgICAgbGFkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCQkgICAgbGliPSRsYWRpci8kb2xkX2xpYnJhcnkKKwkJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgorCQkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKwkJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKwkJICAgIGVsc2UKKwkJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwkJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKwkJICAgIGZpCisJCSAgICBjb250aW51ZQorCQkgIGZpCisJCWZpCisJCTs7CisJICAgICAgKikgOzsKKwkgICAgICBlc2FjCisJICAgIGZpCisJICBmaQorCSAgOzsgIyAtbAorCSoubHRmcmFtZXdvcmspCisJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisJICBlbHNlCisJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgOyB0aGVuCisJCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisJCSAgICAqIiAkZGVwbGliICIqKSA7OworCQkgICAgKiApIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGRlcGxpYiIgOzsKKwkJZXNhYworCSAgICBmaQorCSAgZmkKKwkgIGNvbnRpbnVlCisJICA7OworCS1MKikKKwkgIGNhc2UgJGxpbmttb2RlIGluCisJICBsaWIpCisJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisJICAgIHRlc3QgIiRwYXNzIiA9IGNvbnYgJiYgY29udGludWUKKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCisJICAgIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCisJICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCSAgICA7OworCSAgcHJvZykKKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgorCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisJICAgICAgY29udGludWUKKwkgICAgZmkKKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gc2NhbjsgdGhlbgorCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisJICAgIGVsc2UKKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorCSAgICBmaQorCSAgICBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgorCSAgICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKKwkgICAgOzsKKwkgICopCisJICAgIGZ1bmNfd2FybmluZyAiXGAtTCcgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMvb2JqZWN0cyIKKwkgICAgOzsKKwkgIGVzYWMgIyBsaW5rbW9kZQorCSAgY29udGludWUKKwkgIDs7ICMgLUwKKwktUiopCisJICBpZiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0aGVuCisJICAgIGZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRkZXBsaWIiCisJICAgIGRpcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICAgICMgTWFrZSBzdXJlIHRoZSB4cnBhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCisJICAgIGNhc2UgIiR4cnBhdGggIiBpbgorCSAgICAqIiAkZGlyICIqKSA7OworCSAgICAqKSB4cnBhdGg9IiR4cnBhdGggJGRpciIgOzsKKwkgICAgZXNhYworCSAgZmkKKwkgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisJICBjb250aW51ZQorCSAgOzsKKwkqLmxhKSBsaWI9IiRkZXBsaWIiIDs7CisJKi4kbGliZXh0KQorCSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgorCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgICBjb250aW51ZQorCSAgZmkKKwkgIGNhc2UgJGxpbmttb2RlIGluCisJICBsaWIpCisJICAgICMgTGlua2luZyBjb252ZW5pZW5jZSBtb2R1bGVzIGludG8gc2hhcmVkIGxpYnJhcmllcyBpcyBhbGxvd2VkLAorCSAgICAjIGJ1dCBsaW5raW5nIG90aGVyIHN0YXRpYyBsaWJyYXJpZXMgaXMgbm9uLXBvcnRhYmxlLgorCSAgICBjYXNlICIgJGRscHJlY29udmVuaWVuY2VsaWJzICIgaW4KKwkgICAgKiIgJGRlcGxpYiAiKikgOzsKKwkgICAgKikKKwkgICAgICB2YWxpZF9hX2xpYj1ubworCSAgICAgIGNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisJCW1hdGNoX3BhdHRlcm4qKQorCQkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0CisJCSAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAorCQkgIGlmIGV2YWwgIlwkRUNITyBcIlgkZGVwbGliXCIiIDI+L2Rldi9udWxsIHwgJFhzZWQgLWUgMTBxIFwKKwkJICAgIHwgJEVHUkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKwkJICAgIHZhbGlkX2FfbGliPXllcworCQkgIGZpCisJCTs7CisJCXBhc3NfYWxsKQorCQkgIHZhbGlkX2FfbGliPXllcworCQk7OworCSAgICAgIGVzYWMKKwkgICAgICBpZiB0ZXN0ICIkdmFsaWRfYV9saWIiICE9IHllczsgdGhlbgorCQkkRUNITworCQkkRUNITyAiKioqIFdhcm5pbmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRkZXBsaWIuIgorCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkJJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisJCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisJCSRFQ0hPICIqKiogYmVjYXVzZSB0aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJndW1lbnQgbWFrZXMgbWUgYmVsaWV2ZSIKKwkJJEVDSE8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBzdGF0aWMgYXJjaGl2ZSB0aGF0IEkgc2hvdWxkIG5vdCB1c2UgaGVyZS4iCisJICAgICAgZWxzZQorCQkkRUNITworCQkkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUiCisJCSRFQ0hPICIqKiogc3RhdGljIGxpYnJhcnkgJGRlcGxpYiBpcyBub3QgcG9ydGFibGUhIgorCQlkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgICAgIGZpCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgICBjb250aW51ZQorCSAgICA7OworCSAgcHJvZykKKwkgICAgaWYgdGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4KKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgICBlbHNlCisJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKwkgICAgZmkKKwkgICAgY29udGludWUKKwkgICAgOzsKKwkgIGVzYWMgIyBsaW5rbW9kZQorCSAgOzsgIyAqLiRsaWJleHQKKwkqLmxvIHwgKi4kb2JqZXh0KQorCSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgorCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW4gfHwgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMgfHwgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgorCSAgICAgICMgSWYgdGhlcmUgaXMgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZyBzdGF0aWNhbGx5LAorCSAgICAgICMgd2UgbmVlZCB0byBwcmVsb2FkLgorCSAgICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkZXBsaWIiCisJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKwkgICAgZWxzZQorCSAgICAgIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRkZXBsaWIiCisJICAgIGZpCisJICBmaQorCSAgY29udGludWUKKwkgIDs7CisJJURFUExJQlMlKQorCSAgYWxsZGVwbGlicz15ZXMKKwkgIGNvbnRpbnVlCisJICA7OworCWVzYWMgIyBjYXNlICRkZXBsaWIKKworCWlmIHRlc3QgIiRmb3VuZCIgPSB5ZXMgfHwgdGVzdCAtZiAiJGxpYiI7IHRoZW4gOgorCWVsc2UKKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIHRoZSBsaWJyYXJ5IFxgJGxpYicgb3IgdW5oYW5kbGVkIGFyZ3VtZW50IFxgJGRlcGxpYiciCisJZmkKKworCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUuCisJZnVuY19sYWxpYl91bnNhZmVfcCAiJGxpYiIgXAorCSAgfHwgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisKKwlmdW5jX2Rpcm5hbWUgIiRsaWIiICIiICIuIgorCWxhZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKworCWRsbmFtZT0KKwlkbG9wZW49CisJZGxwcmVvcGVuPQorCWxpYmRpcj0KKwlsaWJyYXJ5X25hbWVzPQorCW9sZF9saWJyYXJ5PQorCWluaGVyaXRlZF9saW5rZXJfZmxhZ3M9CisJIyBJZiB0aGUgbGlicmFyeSB3YXMgaW5zdGFsbGVkIHdpdGggYW4gb2xkIHJlbGVhc2Ugb2YgbGlidG9vbCwKKwkjIGl0IHdpbGwgbm90IHJlZGVmaW5lIHZhcmlhYmxlcyBpbnN0YWxsZWQsIG9yIHNob3VsZG5vdGxpbmsKKwlpbnN0YWxsZWQ9eWVzCisJc2hvdWxkbm90bGluaz1ubworCWF2b2lkdGVtcHJwYXRoPQorCisKKwkjIFJlYWQgdGhlIC5sYSBmaWxlCisJZnVuY19zb3VyY2UgIiRsaWIiCisKKwkjIENvbnZlcnQgIi1mcmFtZXdvcmsgZm9vIiB0byAiZm9vLmx0ZnJhbWV3b3JrIgorCWlmIHRlc3QgLW4gIiRpbmhlcml0ZWRfbGlua2VyX2ZsYWdzIjsgdGhlbgorCSAgdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9YCRFQ0hPICJYJGluaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MvLWZyYW1ld29yayBcKFteICRdKlwpL1wxLmx0ZnJhbWV3b3JrL2cnYAorCSAgZm9yIHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgaW4gJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzOyBkbworCSAgICBjYXNlICIgJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKwkgICAgICAqIiAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyAiKikgOzsKKwkgICAgICAqKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnIjs7CisJICAgIGVzYWMKKwkgIGRvbmUKKwlmaQorCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIlggJGRlcGVuZGVuY3lfbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwlpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIiB8fAorCSAgIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2FuIiB8fAorCSAgIHsgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliOyB9OyB0aGVuCisJICB0ZXN0IC1uICIkZGxvcGVuIiAmJiBkbGZpbGVzPSIkZGxmaWxlcyAkZGxvcGVuIgorCSAgdGVzdCAtbiAiJGRscHJlb3BlbiIgJiYgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGRscHJlb3BlbiIKKwlmaQorCisJaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgorCSAgIyBPbmx5IGNoZWNrIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMKKwkgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiCisJICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgorCSAgICBpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB0aGVuCisJICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBsaW5rIGxpYnJhcnkgZm9yIFxgJGxpYiciCisJICAgIGZpCisJICAgICMgSXQgaXMgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxpYnJhcnksIHNvIGFkZCBpbiBpdHMgb2JqZWN0cy4KKwkgICAgY29udmVuaWVuY2U9IiRjb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCisJICAgIG9sZF9jb252ZW5pZW5jZT0iJG9sZF9jb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCisJICBlbGlmIHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0ZXN0ICIkbGlua21vZGUiICE9IGxpYjsgdGhlbgorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIGNvbnZlbmllbmNlIGxpYnJhcnkiCisJICBmaQorCSAgdG1wX2xpYnM9CisJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisJICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCisJICAgICAgY2FzZSAiJHRtcF9saWJzICIgaW4KKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisJICAgICAgZXNhYworCSAgICBmaQorCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisJICBkb25lCisJICBjb250aW51ZQorCWZpICMgJHBhc3MgPSBjb252CisKKworCSMgR2V0IHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IHdlIGxpbmsgYWdhaW5zdC4KKwlsaW5rbGliPQorCWZvciBsIGluICRvbGRfbGlicmFyeSAkbGlicmFyeV9uYW1lczsgZG8KKwkgIGxpbmtsaWI9IiRsIgorCWRvbmUKKwlpZiB0ZXN0IC16ICIkbGlua2xpYiI7IHRoZW4KKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgorCWZpCisKKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRsb3Blbi4KKwlpZiB0ZXN0ICIkcGFzcyIgPSBkbG9wZW47IHRoZW4KKwkgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCAtZGxvcGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKKwkgIGZpCisJICBpZiB0ZXN0IC16ICIkZGxuYW1lIiB8fAorCSAgICAgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMgfHwKKwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKwkgICAgIyBJZiB0aGVyZSBpcyBubyBkbG5hbWUsIG5vIGRsb3BlbiBzdXBwb3J0IG9yIHdlJ3JlIGxpbmtpbmcKKwkgICAgIyBzdGF0aWNhbGx5LCB3ZSBuZWVkIHRvIHByZWxvYWQuICBXZSBhbHNvIG5lZWQgdG8gcHJlbG9hZCBhbnkKKwkgICAgIyBkZXBlbmRlbnQgbGlicmFyaWVzIHNvIGxpYmx0ZGwncyBkZXBsaWIgcHJlbG9hZGVyIGRvZXNuJ3QKKwkgICAgIyBib21iIG91dCBpbiB0aGUgbG9hZCBkZXBsaWJzIHBoYXNlLgorCSAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliICRkZXBlbmRlbmN5X2xpYnMiCisJICBlbHNlCisJICAgIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRsaWIiCisJICBmaQorCSAgY29udGludWUKKwlmaSAjICRwYXNzID0gZGxvcGVuCisKKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KKwljYXNlICRsYWRpciBpbgorCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzX2xhZGlyPSIkbGFkaXIiIDs7CisJKikKKwkgIGFic19sYWRpcj1gY2QgIiRsYWRpciIgJiYgcHdkYAorCSAgaWYgdGVzdCAteiAiJGFic19sYWRpciI7IHRoZW4KKwkgICAgZnVuY193YXJuaW5nICJjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGxhZGlyJyIKKwkgICAgZnVuY193YXJuaW5nICJwYXNzaW5nIGl0IGxpdGVyYWxseSB0byB0aGUgbGlua2VyLCBhbHRob3VnaCBpdCBtaWdodCBmYWlsIgorCSAgICBhYnNfbGFkaXI9IiRsYWRpciIKKwkgIGZpCisJICA7OworCWVzYWMKKwlmdW5jX2Jhc2VuYW1lICIkbGliIgorCWxhbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCisJIyBGaW5kIHRoZSByZWxldmFudCBvYmplY3QgZGlyZWN0b3J5IGFuZCBsaWJyYXJ5IG5hbWUuCisJaWYgdGVzdCAiWCRpbnN0YWxsZWQiID0gWHllczsgdGhlbgorCSAgaWYgdGVzdCAhIC1mICIkbGliZGlyLyRsaW5rbGliIiAmJiB0ZXN0IC1mICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgorCSAgICBmdW5jX3dhcm5pbmcgImxpYnJhcnkgXGAkbGliJyB3YXMgbW92ZWQuIgorCSAgICBkaXI9IiRsYWRpciIKKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgorCSAgICBsaWJkaXI9IiRhYnNfbGFkaXIiCisJICBlbHNlCisJICAgIGRpcj0iJGxpYmRpciIKKwkgICAgYWJzZGlyPSIkbGliZGlyIgorCSAgZmkKKwkgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGljIiA9IFh5ZXMgJiYgYXZvaWR0ZW1wcnBhdGg9eWVzCisJZWxzZQorCSAgaWYgdGVzdCAhIC1mICIkbGFkaXIvJG9iamRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KKwkgICAgZGlyPSIkbGFkaXIiCisJICAgIGFic2Rpcj0iJGFic19sYWRpciIKKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgorCSAgICBub3RpbnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKwkgIGVsc2UKKwkgICAgZGlyPSIkbGFkaXIvJG9iamRpciIKKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyLyRvYmpkaXIiCisJICAgICMgUmVtb3ZlIHRoaXMgc2VhcmNoIHBhdGggbGF0ZXIKKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIiCisJICBmaQorCWZpICMgJGluc3RhbGxlZCA9IHllcworCWZ1bmNfc3RyaXBuYW1lICdsaWInICcubGEnICIkbGFuYW1lIgorCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCisJIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbHByZW9wZW4uCisJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCisJICBpZiB0ZXN0IC16ICIkbGliZGlyIiAmJiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGxpYnJhcmllcyBtYXkgLWRscHJlb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6IFxgJGxpYiciCisJICBmaQorCSAgIyBQcmVmZXIgdXNpbmcgYSBzdGF0aWMgbGlicmFyeSAoc28gdGhhdCBubyBzaWxseSBfRFlOQU1JQyBzeW1ib2xzCisJICAjIGFyZSByZXF1aXJlZCB0byBsaW5rKS4KKwkgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KKwkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kb2xkX2xpYnJhcnkiCisJICAgICMgS2VlcCBhIGxpc3Qgb2YgcHJlb3BlbmVkIGNvbnZlbmllbmNlIGxpYnJhcmllcyB0byBjaGVjaworCSAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsgcGFzcy4KKwkgICAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAorCQlkbHByZWNvbnZlbmllbmNlbGlicz0iJGRscHJlY29udmVuaWVuY2VsaWJzICRkaXIvJG9sZF9saWJyYXJ5IgorCSAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0X2Rsb3BlbiBmaW5kcyBpdC4KKwkgIGVsaWYgdGVzdCAtbiAiJGRsbmFtZSI7IHRoZW4KKwkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kZGxuYW1lIgorCSAgZWxzZQorCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRsaW5rbGliIgorCSAgZmkKKwlmaSAjICRwYXNzID0gZGxwcmVvcGVuCisKKwlpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgorCSAgIyBMaW5rIHRoZSBjb252ZW5pZW5jZSBsaWJyYXJ5CisJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisJICAgIGRlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRkZXBsaWJzIgorCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkY29tcGlsZV9kZXBsaWJzIgorCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZmluYWxpemVfZGVwbGlicyIKKwkgIGVsc2UKKwkgICAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIgIyB1c2VkIGZvciBwcm9nLHNjYW4gcGFzcworCSAgZmkKKwkgIGNvbnRpbnVlCisJZmkKKworCisJaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgJiYgdGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4KKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGFkaXIiCisJICBkZXBsaWJzPSIkbGliICRkZXBsaWJzIgorCisJICBsaW5rYWxsZGVwbGlicz1ubworCSAgaWYgdGVzdCAiJGxpbmtfYWxsX2RlcGxpYnMiICE9IG5vIHx8IHRlc3QgLXogIiRsaWJyYXJ5X25hbWVzIiB8fAorCSAgICAgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgorCSAgICBsaW5rYWxsZGVwbGlicz15ZXMKKwkgIGZpCisKKwkgIHRtcF9saWJzPQorCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworCSAgICBjYXNlICRkZXBsaWIgaW4KKwkgICAgLUwqKSBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgorCSAgICAgICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCQkgOzsKKwkgICAgZXNhYworCSAgICAjIE5lZWQgdG8gbGluayBhZ2FpbnN0IGFsbCBkZXBlbmRlbmN5X2xpYnM/CisJICAgIGlmIHRlc3QgIiRsaW5rYWxsZGVwbGlicyIgPSB5ZXM7IHRoZW4KKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgICBlbHNlCisJICAgICAgIyBOZWVkIHRvIGhhcmRjb2RlIHNoYXJlZCBsaWJyYXJ5IHBhdGhzCisJICAgICAgIyBvci9hbmQgbGluayBhZ2FpbnN0IHN0YXRpYyBsaWJyYXJpZXMKKwkgICAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKwkgICAgZmkKKwkgICAgaWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKKwkgICAgICBlc2FjCisJICAgIGZpCisJICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKKwkgIGRvbmUgIyBmb3IgZGVwbGliCisJICBjb250aW51ZQorCWZpICMgJGxpbmttb2RlID0gcHJvZy4uLgorCisJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisJICBpZiB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyIgJiYKKwkgICAgIHsgeyB0ZXN0ICIkcHJlZmVyX3N0YXRpY19saWJzIiA9IG5vIHx8CisJICAgICAgICAgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicywkaW5zdGFsbGVkIiA9ICJidWlsdCx5ZXMiOyB9IHx8CisJICAgICAgIHRlc3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KKwkgICAgIyBXZSBuZWVkIHRvIGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGgKKwkgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLXogIiRhdm9pZHRlbXBycGF0aCIgOyB0aGVuCisJICAgICAgIyBNYWtlIHN1cmUgdGhlIHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgorCSAgICAgIGNhc2UgIiR0ZW1wX3JwYXRoOiIgaW4KKwkgICAgICAqIiRhYnNkaXI6IiopIDs7CisJICAgICAgKikgdGVtcF9ycGF0aD0iJHRlbXBfcnBhdGgkYWJzZGlyOiIgOzsKKwkgICAgICBlc2FjCisJICAgIGZpCisKKwkgICAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgorCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisJICAgICMgc2VhcmNoIHBhdGguCisJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KKwkgICAgKiIgJGFic2RpciAiKikgOzsKKwkgICAgKikKKwkgICAgICBjYXNlICIkY29tcGlsZV9ycGF0aCAiIGluCisJICAgICAgKiIgJGFic2RpciAiKikgOzsKKwkgICAgICAqKSBjb21waWxlX3JwYXRoPSIkY29tcGlsZV9ycGF0aCAkYWJzZGlyIgorCSAgICAgIGVzYWMKKwkgICAgICA7OworCSAgICBlc2FjCisJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KKwkgICAgKiIgJGxpYmRpciAiKikgOzsKKwkgICAgKikKKwkgICAgICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgorCSAgICAgICoiICRsaWJkaXIgIiopIDs7CisJICAgICAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIgorCSAgICAgIGVzYWMKKwkgICAgICA7OworCSAgICBlc2FjCisJICBmaSAjICRsaW5rbW9kZSwkcGFzcyA9IHByb2csbGluay4uLgorCisJICBpZiB0ZXN0ICIkYWxsZGVwbGlicyIgPSB5ZXMgJiYKKwkgICAgIHsgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9IHBhc3NfYWxsIHx8CisJICAgICAgIHsgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYKKwkJIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIjsgfTsgfTsgdGhlbgorCSAgICAjIFdlIG9ubHkgbmVlZCB0byBzZWFyY2ggZm9yIHN0YXRpYyBsaWJyYXJpZXMKKwkgICAgY29udGludWUKKwkgIGZpCisJZmkKKworCWxpbmtfc3RhdGljPW5vICMgV2hldGhlciB0aGUgZGVwbGliIHdpbGwgYmUgbGlua2VkIHN0YXRpY2FsbHkKKwl1c2Vfc3RhdGljX2xpYnM9JHByZWZlcl9zdGF0aWNfbGlicworCWlmIHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gYnVpbHQgJiYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KKwkgIHVzZV9zdGF0aWNfbGlicz1ubworCWZpCisJaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisJICAgeyB0ZXN0ICIkdXNlX3N0YXRpY19saWJzIiA9IG5vIHx8IHRlc3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KKwkgIGNhc2UgJGhvc3QgaW4KKwkgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyopCisJICAgICAgIyBObyBwb2ludCBpbiByZWxpbmtpbmcgRExMcyBiZWNhdXNlIHBhdGhzIGFyZSBub3QgZW5jb2RlZAorCSAgICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgorCSAgICAgIG5lZWRfcmVsaW5rPW5vCisJICAgIDs7CisJICAqKQorCSAgICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5vOyB0aGVuCisJICAgICAgbm90aW5zdF9kZXBsaWJzPSIkbm90aW5zdF9kZXBsaWJzICRsaWIiCisJICAgICAgbmVlZF9yZWxpbms9eWVzCisJICAgIGZpCisJICAgIDs7CisJICBlc2FjCisJICAjIFRoaXMgaXMgYSBzaGFyZWQgbGlicmFyeQorCisJICAjIFdhcm4gYWJvdXQgcG9ydGFiaWxpdHksIGNhbid0IGxpbmsgYWdhaW5zdCAtbW9kdWxlJ3Mgb24gc29tZQorCSAgIyBzeXN0ZW1zIChkYXJ3aW4pLiAgRG9uJ3QgYmxlYXQgYWJvdXQgZGxvcGVuZWQgbW9kdWxlcyB0aG91Z2ghCisJICBkbG9wZW5tb2R1bGU9IiIKKwkgIGZvciBkbHByZW1vZHVsZXRlc3QgaW4gJGRscHJlZmlsZXM7IGRvCisJICAgIGlmIHRlc3QgIlgkZGxwcmVtb2R1bGV0ZXN0IiA9ICJYJGxpYiI7IHRoZW4KKwkgICAgICBkbG9wZW5tb2R1bGU9IiRkbHByZW1vZHVsZXRlc3QiCisJICAgICAgYnJlYWsKKwkgICAgZmkKKwkgIGRvbmUKKwkgIGlmIHRlc3QgLXogIiRkbG9wZW5tb2R1bGUiICYmIHRlc3QgIiRzaG91bGRub3RsaW5rIiA9IHllcyAmJiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0aGVuCisJICAgICRFQ0hPCisJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCisJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxlICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgorCSAgICBlbHNlCisJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIGxvYWRhYmxlIG1vZHVsZSIKKwkgICAgZmkKKwkgICAgJEVDSE8gIioqKiAkbGlua2xpYiBpcyBub3QgcG9ydGFibGUhIgorCSAgZmkKKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYKKwkgICAgIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisJICAgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aC4KKwkgICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4tdGltZQorCSAgICAjIHNlYXJjaCBwYXRoLgorCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCisJICAgICoiICRhYnNkaXIgIiopIDs7CisJICAgICopCisJICAgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgorCSAgICAgICoiICRhYnNkaXIgIiopIDs7CisJICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKwkgICAgICBlc2FjCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCisJICAgICoiICRsaWJkaXIgIiopIDs7CisJICAgICopCisJICAgICAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKwkgICAgICAqIiAkbGliZGlyICIqKSA7OworCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKwkgICAgICBlc2FjCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgZmkKKworCSAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIjsgdGhlbgorCSAgICAjIGZpZ3VyZSBvdXQgdGhlIHNvbmFtZQorCSAgICBzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKKwkgICAgc2hpZnQKKwkgICAgcmVhbG5hbWU9IiQxIgorCSAgICBzaGlmdAorCSAgICBsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKwkgICAgIyB1c2UgZGxuYW1lIGlmIHdlIGdvdCBpdC4gaXQncyBwZXJmZWN0bHkgZ29vZCwgbm8/CisJICAgIGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCisJICAgICAgc29uYW1lPSIkZGxuYW1lIgorCSAgICBlbGlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KKwkgICAgICAjIGJsZWggd2luZG93cworCSAgICAgIGNhc2UgJGhvc3QgaW4KKwkgICAgICAqY3lnd2luKiB8IG1pbmd3KiB8ICpjZWdjYyopCisJICAgICAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQorCQltYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKKwkJdmVyc3VmZml4PSItJG1ham9yIgorCQk7OworCSAgICAgIGVzYWMKKwkgICAgICBldmFsIHNvbmFtZT1cIiRzb25hbWVfc3BlY1wiCisJICAgIGVsc2UKKwkgICAgICBzb25hbWU9IiRyZWFsbmFtZSIKKwkgICAgZmkKKworCSAgICAjIE1ha2UgYSBuZXcgbmFtZSBmb3IgdGhlIGV4dHJhY3RfZXhwc3ltc19jbWRzIHRvIHVzZQorCSAgICBzb3Jvb3Q9IiRzb25hbWUiCisJICAgIGZ1bmNfYmFzZW5hbWUgIiRzb3Jvb3QiCisJICAgIHNvbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCSAgICBmdW5jX3N0cmlwbmFtZSAnbGliJyAnLmRsbCcgIiRzb25hbWUiCisJICAgIG5ld2xpYj1saWJpbXAtJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdC5hCisKKwkgICAgIyBJZiB0aGUgbGlicmFyeSBoYXMgbm8gZXhwb3J0IGxpc3QsIHRoZW4gY3JlYXRlIG9uZSBub3cKKwkgICAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHNvbmFtZS1kZWYiOyB0aGVuIDoKKwkgICAgZWxzZQorCSAgICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIFxgJHNvbmFtZSciCisJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRleHRyYWN0X2V4cHN5bXNfY21kcyIgJ2V4aXQgJD8nCisJICAgIGZpCisKKwkgICAgIyBDcmVhdGUgJG5ld2xpYgorCSAgICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kbmV3bGliIjsgdGhlbiA6OyBlbHNlCisJICAgICAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIGltcG9ydCBsaWJyYXJ5IGZvciBcYCRzb25hbWUnIgorCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiICdleGl0ICQ/JworCSAgICBmaQorCSAgICAjIG1ha2Ugc3VyZSB0aGUgbGlicmFyeSB2YXJpYWJsZXMgYXJlIHBvaW50aW5nIHRvIHRoZSBuZXcgbGlicmFyeQorCSAgICBkaXI9JG91dHB1dF9vYmpkaXIKKwkgICAgbGlua2xpYj0kbmV3bGliCisJICBmaSAjIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIKKworCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgorCSAgICBhZGRfc2hsaWJwYXRoPQorCSAgICBhZGRfZGlyPQorCSAgICBhZGQ9CisJICAgIGxpYl9saW5rZWQ9eWVzCisJICAgIGNhc2UgJGhhcmRjb2RlX2FjdGlvbiBpbgorCSAgICBpbW1lZGlhdGUgfCB1bnN1cHBvcnRlZCkKKwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IG5vOyB0aGVuCisJCWFkZD0iJGRpci8kbGlua2xpYiIKKwkJY2FzZSAkaG9zdCBpbgorCQkgICotKi1zY28zLjJ2NS4wLlswMjRdKikgYWRkX2Rpcj0iLUwkZGlyIiA7OworCQkgICotKi1zeXN2NCp1dzIqKSBhZGRfZGlyPSItTCRkaXIiIDs7CisJCSAgKi0qLXN5c3Y1T3BlblVOSVgqIHwgKi0qLXN5c3Y1VW5peFdhcmU3LlswMV0uWzEwXSogfCBcCisJCSAgICAqLSotdW5peHdhcmU3KikgYWRkX2Rpcj0iLUwkZGlyIiA7OworCQkgICotKi1kYXJ3aW4qICkKKwkJICAgICMgaWYgdGhlIGxpYiBpcyBhIChub24tZGxvcGVuZWQpIG1vZHVsZSB0aGVuIHdlIGNhbiBub3QKKwkJICAgICMgbGluayBhZ2FpbnN0IGl0LCBzb21lb25lIGlzIGlnbm9yaW5nIHRoZSBlYXJsaWVyIHdhcm5pbmdzCisJCSAgICBpZiAvdXNyL2Jpbi9maWxlIC1MICRhZGQgMj4gL2Rldi9udWxsIHwKKwkJCSAkR1JFUCAiOiBbXjpdKiBidW5kbGUiID4vZGV2L251bGwgOyB0aGVuCisJCSAgICAgIGlmIHRlc3QgIlgkZGxvcGVubW9kdWxlIiAhPSAiWCRsaWIiOyB0aGVuCisJCQkkRUNITyAiKioqIFdhcm5pbmc6IGxpYiAkbGlua2xpYiBpcyBhIG1vZHVsZSwgbm90IGEgc2hhcmVkIGxpYnJhcnkiCisJCQlpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiIDsgdGhlbgorCQkJICAkRUNITworCQkJICAkRUNITyAiKioqIEFuZCB0aGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYSBzdGF0aWMgYXJjaGl2ZSBhdmFpbGFibGUiCisJCQkgICRFQ0hPICIqKiogVGhlIGxpbmsgd2lsbCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKKwkJCWVsc2UKKwkJCSAgYWRkPSIkZGlyLyRvbGRfbGlicmFyeSIKKwkJCWZpCisJCSAgICAgIGVsaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgorCQkJYWRkPSIkZGlyLyRvbGRfbGlicmFyeSIKKwkJICAgICAgZmkKKwkJICAgIGZpCisJCWVzYWMKKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IG5vOyB0aGVuCisJCWNhc2UgJGhvc3QgaW4KKwkJKi0qLXN1bm9zKikgYWRkX3NobGlicGF0aD0iJGRpciIgOzsKKwkJZXNhYworCQlhZGRfZGlyPSItTCRkaXIiCisJCWFkZD0iLWwkbmFtZSIKKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IG5vOyB0aGVuCisJCWFkZF9zaGxpYnBhdGg9IiRkaXIiCisJCWFkZD0iLWwkbmFtZSIKKwkgICAgICBlbHNlCisJCWxpYl9saW5rZWQ9bm8KKwkgICAgICBmaQorCSAgICAgIDs7CisJICAgIHJlbGluaykKKwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IHllcyAmJgorCSAgICAgICAgIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87IHRoZW4KKwkJYWRkPSIkZGlyLyRsaW5rbGliIgorCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0geWVzOyB0aGVuCisJCWFkZF9kaXI9Ii1MJGRpciIKKwkJIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgorCQlpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgorCQkgIGNhc2UgJGxpYmRpciBpbgorCQkgICAgW1xcL10qKQorCQkgICAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgorCQkgICAgICA7OworCQkgIGVzYWMKKwkJZmkKKwkJYWRkPSItbCRuYW1lIgorCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCisJCWFkZF9zaGxpYnBhdGg9IiRkaXIiCisJCWFkZD0iLWwkbmFtZSIKKwkgICAgICBlbHNlCisJCWxpYl9saW5rZWQ9bm8KKwkgICAgICBmaQorCSAgICAgIDs7CisJICAgICopIGxpYl9saW5rZWQ9bm8gOzsKKwkgICAgZXNhYworCisJICAgIGlmIHRlc3QgIiRsaWJfbGlua2VkIiAhPSB5ZXM7IHRoZW4KKwkgICAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gInVuc3VwcG9ydGVkIGhhcmRjb2RlIHByb3BlcnRpZXMiCisJICAgIGZpCisKKwkgICAgaWYgdGVzdCAtbiAiJGFkZF9zaGxpYnBhdGgiOyB0aGVuCisJICAgICAgY2FzZSA6JGNvbXBpbGVfc2hsaWJwYXRoOiBpbgorCSAgICAgICoiOiRhZGRfc2hsaWJwYXRoOiIqKSA7OworCSAgICAgICopIGNvbXBpbGVfc2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkYWRkX3NobGlicGF0aDoiIDs7CisJICAgICAgZXNhYworCSAgICBmaQorCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGRfZGlyICRjb21waWxlX2RlcGxpYnMiCisJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgY29tcGlsZV9kZXBsaWJzPSIkYWRkICRjb21waWxlX2RlcGxpYnMiCisJICAgIGVsc2UKKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxpYnMiCisJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZGVwbGlicz0iJGFkZCAkZGVwbGlicyIKKwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSB5ZXMgJiYKKwkJIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSB5ZXMgJiYKKwkJIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgorCQljYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgorCQkqIjokbGliZGlyOiIqKSA7OworCQkqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgkbGliZGlyOiIgOzsKKwkJZXNhYworCSAgICAgIGZpCisJICAgIGZpCisJICBmaQorCisJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKwkgICAgYWRkX3NobGlicGF0aD0KKwkgICAgYWRkX2Rpcj0KKwkgICAgYWRkPQorCSAgICAjIEZpbmFsaXplIGNvbW1hbmQgZm9yIGJvdGggaXMgc2ltcGxlOiBqdXN0IGhhcmRjb2RlIGl0LgorCSAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IHllcyAmJgorCSAgICAgICB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiA9IG5vOyB0aGVuCisJICAgICAgYWRkPSIkbGliZGlyLyRsaW5rbGliIgorCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgorCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIKKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCisJICAgICAgY2FzZSA6JGZpbmFsaXplX3NobGlicGF0aDogaW4KKwkgICAgICAqIjokbGliZGlyOiIqKSA7OworCSAgICAgICopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6IiA7OworCSAgICAgIGVzYWMKKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSB5ZXM7IHRoZW4KKwkgICAgICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIiAmJgorCQkgdGVzdCAtZiAiJGluc3RfcHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIiIDsgdGhlbgorCQlhZGQ9IiRpbnN0X3ByZWZpeF9kaXIkbGliZGlyLyRsaW5rbGliIgorCSAgICAgIGVsc2UKKwkJYWRkPSIkbGliZGlyLyRsaW5rbGliIgorCSAgICAgIGZpCisJICAgIGVsc2UKKwkgICAgICAjIFdlIGNhbm5vdCBzZWVtIHRvIGhhcmRjb2RlIGl0LCBndWVzcyB3ZSdsbCBmYWtlIGl0LgorCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIKKwkgICAgICAjIFRyeSBsb29raW5nIGZpcnN0IGluIHRoZSBsb2NhdGlvbiB3ZSdyZSBiZWluZyBpbnN0YWxsZWQgdG8uCisJICAgICAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KKwkJY2FzZSAkbGliZGlyIGluCisJCSAgW1xcL10qKQorCQkgICAgYWRkX2Rpcj0iJGFkZF9kaXIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKKwkJICAgIDs7CisJCWVzYWMKKwkgICAgICBmaQorCSAgICAgIGFkZD0iLWwkbmFtZSIKKwkgICAgZmkKKworCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBmaW5hbGl6ZV9kZXBsaWJzPSIkYWRkX2RpciAkZmluYWxpemVfZGVwbGlicyIKKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBmaW5hbGl6ZV9kZXBsaWJzPSIkYWRkICRmaW5hbGl6ZV9kZXBsaWJzIgorCSAgICBlbHNlCisJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGRlcGxpYnM9IiRhZGRfZGlyICRkZXBsaWJzIgorCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxpYnMiCisJICAgIGZpCisJICBmaQorCWVsaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKwkgICMgSGVyZSB3ZSBhc3N1bWUgdGhhdCBvbmUgb2YgaGFyZGNvZGVfZGlyZWN0IG9yIGhhcmRjb2RlX21pbnVzX0wKKwkgICMgaXMgbm90IHVuc3VwcG9ydGVkLiAgVGhpcyBpcyB2YWxpZCBvbiBhbGwga25vd24gc3RhdGljIGFuZAorCSAgIyBzaGFyZWQgcGxhdGZvcm1zLgorCSAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gdW5zdXBwb3J0ZWQ7IHRoZW4KKwkgICAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBsaW5rbGliPSIkb2xkX2xpYnJhcnkiCisJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRpci8kbGlua2xpYiAkY29tcGlsZV9kZXBsaWJzIgorCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRsaW5rbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorCSAgZWxzZQorCSAgICBjb21waWxlX2RlcGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRjb21waWxlX2RlcGxpYnMiCisJICAgIGZpbmFsaXplX2RlcGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgorCSAgZmkKKwllbGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisJICAjIE5vdCBhIHNoYXJlZCBsaWJyYXJ5CisJICBpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCisJICAgICMgV2UncmUgdHJ5aW5nIGxpbmsgYSBzaGFyZWQgbGlicmFyeSBhZ2FpbnN0IGEgc3RhdGljIG9uZQorCSAgICAjIGJ1dCB0aGUgc3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCBpdC4KKworCSAgICAjIEp1c3QgcHJpbnQgYSB3YXJuaW5nIGFuZCBhZGQgdGhlIGxpYnJhcnkgdG8gZGVwZW5kZW5jeV9saWJzIHNvCisJICAgICMgdGhhdCB0aGUgcHJvZ3JhbSBjYW4gYmUgbGlua2VkIGFnYWluc3QgdGhlIHN0YXRpYyBsaWJyYXJ5LgorCSAgICAkRUNITworCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IFRoaXMgc3lzdGVtIGNhbiBub3QgbGluayB0byBzdGF0aWMgbGliIGFyY2hpdmUgJGxpYi4iCisJICAgICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCSAgICAkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkgICAgJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZS4iCisJICAgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzOyB0aGVuCisJICAgICAgJEVDSE8gIioqKiBCdXQgYXMgeW91IHRyeSB0byBidWlsZCBhIG1vZHVsZSBsaWJyYXJ5LCBsaWJ0b29sIHdpbGwgc3RpbGwgY3JlYXRlICIKKwkgICAgICAkRUNITyAiKioqIGEgc3RhdGljIG1vZHVsZSwgdGhhdCBzaG91bGQgd29yayBhcyBsb25nIGFzIHRoZSBkbG9wZW5pbmcgYXBwbGljYXRpb24iCisJICAgICAgJEVDSE8gIioqKiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnIHRvIHJlc29sdmUgc3ltYm9scyBhdCBydW50aW1lLiIKKwkgICAgICBpZiB0ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgorCQkkRUNITworCQkkRUNITyAiKioqIEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0cmFjdCBzeW1ib2wiCisJCSRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgorCQkkRUNITyAiKioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgorCQkkRUNITyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCisJICAgICAgZmkKKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQorCQlidWlsZF9vbGRfbGlicz15ZXMKKwkgICAgICBlbHNlCisJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubworCSAgICAgIGZpCisJICAgIGZpCisJICBlbHNlCisJICAgIGRlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRkZXBsaWJzIgorCSAgICBsaW5rX3N0YXRpYz15ZXMKKwkgIGZpCisJZmkgIyBsaW5rIHNoYXJlZC9zdGF0aWMgbGlicmFyeT8KKworCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KKwkgIGlmIHRlc3QgLW4gIiRkZXBlbmRlbmN5X2xpYnMiICYmCisJICAgICB7IHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8fAorCSAgICAgICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzIHx8CisJICAgICAgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSB5ZXM7IH07IHRoZW4KKwkgICAgIyBFeHRyYWN0IC1SIGZyb20gZGVwZW5kZW5jeV9saWJzCisJICAgIHRlbXBfZGVwbGlicz0KKwkgICAgZm9yIGxpYmRpciBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworCSAgICAgIGNhc2UgJGxpYmRpciBpbgorCSAgICAgIC1SKikgZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAiJGxpYmRpciIKKwkgICAgICAgICAgIHRlbXBfeHJwYXRoPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkJICAgY2FzZSAiICR4cnBhdGggIiBpbgorCQkgICAqIiAkdGVtcF94cnBhdGggIiopIDs7CisJCSAgICopIHhycGF0aD0iJHhycGF0aCAkdGVtcF94cnBhdGgiOzsKKwkJICAgZXNhYzs7CisJICAgICAgKikgdGVtcF9kZXBsaWJzPSIkdGVtcF9kZXBsaWJzICRsaWJkaXIiOzsKKwkgICAgICBlc2FjCisJICAgIGRvbmUKKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF9kZXBsaWJzIgorCSAgZmkKKworCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRhYnNkaXIiCisJICAjIExpbmsgYWdhaW5zdCB0aGlzIGxpYnJhcnkKKwkgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSBubyAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRhYnNfbGFkaXIvJGxhbmFtZSAkbmV3ZGVwZW5kZW5jeV9saWJzIgorCSAgIyAuLi4gYW5kIGl0cyBkZXBlbmRlbmN5X2xpYnMKKwkgIHRtcF9saWJzPQorCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKwkgICAgaWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKKwkgICAgICBlc2FjCisJICAgIGZpCisJICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKKwkgIGRvbmUKKworCSAgaWYgdGVzdCAiJGxpbmtfYWxsX2RlcGxpYnMiICE9IG5vOyB0aGVuCisJICAgICMgQWRkIHRoZSBzZWFyY2ggcGF0aHMgb2YgYWxsIGRlcGVuZGVuY3kgbGlicmFyaWVzCisJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKwkgICAgICBjYXNlICRkZXBsaWIgaW4KKwkgICAgICAtTCopIHBhdGg9IiRkZXBsaWIiIDs7CisJICAgICAgKi5sYSkKKwkgICAgICAgIGZ1bmNfZGlybmFtZSAiJGRlcGxpYiIgIiIgIi4iCisJCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisJCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorCQljYXNlICRkaXIgaW4KKwkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnNkaXI9IiRkaXIiIDs7CisJCSopCisJCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAorCQkgIGlmIHRlc3QgLXogIiRhYnNkaXIiOyB0aGVuCisJCSAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKKwkJICAgIGFic2Rpcj0iJGRpciIKKwkJICBmaQorCQkgIDs7CisJCWVzYWMKKwkJaWYgJEdSRVAgIl5pbnN0YWxsZWQ9bm8iICRkZXBsaWIgPiAvZGV2L251bGw7IHRoZW4KKwkJY2FzZSAkaG9zdCBpbgorCQkqLSotZGFyd2luKikKKwkJICBkZXBkZXBsPQorCQkgIGV2YWwgZGVwbGlicmFyeV9uYW1lcz1gJHtTRUR9IC1uIC1lICdzL15saWJyYXJ5X25hbWVzPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKwkJICBpZiB0ZXN0IC1uICIkZGVwbGlicmFyeV9uYW1lcyIgOyB0aGVuCisJCSAgICBmb3IgdG1wIGluICRkZXBsaWJyYXJ5X25hbWVzIDsgZG8KKwkJICAgICAgZGVwZGVwbD0kdG1wCisJCSAgICBkb25lCisJCSAgICBpZiB0ZXN0IC1mICIkYWJzZGlyLyRvYmpkaXIvJGRlcGRlcGwiIDsgdGhlbgorCQkgICAgICBkZXBkZXBsPSIkYWJzZGlyLyRvYmpkaXIvJGRlcGRlcGwiCisJCSAgICAgIGRhcndpbl9pbnN0YWxsX25hbWU9YCR7T1RPT0x9IC1MICRkZXBkZXBsIHwgYXdrICd7aWYgKE5SID09IDIpIHtwcmludCAkMTtleGl0fX0nYAorICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRkYXJ3aW5faW5zdGFsbF9uYW1lIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICBkYXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09MNjR9IC1MICRkZXBkZXBsICB8IGF3ayAne2lmIChOUiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKKyAgICAgICAgICAgICAgICAgICAgICBmaQorCQkgICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWR5bGliX2ZpbGUgJHt3bH0ke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCisJCSAgICAgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAtZHlsaWJfZmlsZSAke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCisJCSAgICAgIHBhdGg9CisJCSAgICBmaQorCQkgIGZpCisJCSAgOzsKKwkJKikKKwkJICBwYXRoPSItTCRhYnNkaXIvJG9iamRpciIKKwkJICA7OworCQllc2FjCisJCWVsc2UKKwkJICBldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkZGVwbGliYAorCQkgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKKwkJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGRlcGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorCQkgIHRlc3QgIiRhYnNkaXIiICE9ICIkbGliZGlyIiAmJiBcCisJCSAgICBmdW5jX3dhcm5pbmcgIlxgJGRlcGxpYicgc2VlbXMgdG8gYmUgbW92ZWQiCisKKwkJICBwYXRoPSItTCRhYnNkaXIiCisJCWZpCisJCTs7CisJICAgICAgZXNhYworCSAgICAgIGNhc2UgIiAkZGVwbGlicyAiIGluCisJICAgICAgKiIgJHBhdGggIiopIDs7CisJICAgICAgKikgZGVwbGlicz0iJHBhdGggJGRlcGxpYnMiIDs7CisJICAgICAgZXNhYworCSAgICBkb25lCisJICBmaSAjIGxpbmtfYWxsX2RlcGxpYnMgIT0gbm8KKwlmaSAjIGxpbmttb2RlID0gbGliCisgICAgICBkb25lICMgZm9yIGRlcGxpYiBpbiAkbGlicworICAgICAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgorCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSAicHJvZyI7IHRoZW4KKwkgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRjb21waWxlX2RlcGxpYnMiCisJICBmaW5hbGl6ZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGZpbmFsaXplX2RlcGxpYnMiCisJZWxzZQorCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAiYCRFQ0hPICJYICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwlmaQorICAgICAgZmkKKyAgICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKKyAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3BlbjsgdGhlbgorCSMgTGluayB0aGUgZGxwcmVvcGVuZWQgbGlicmFyaWVzIGJlZm9yZSBvdGhlciBsaWJyYXJpZXMKKwlmb3IgZGVwbGliIGluICRzYXZlX2RlcGxpYnM7IGRvCisJICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCWRvbmUKKyAgICAgIGZpCisgICAgICBpZiB0ZXN0ICIkcGFzcyIgIT0gZGxvcGVuOyB0aGVuCisJaWYgdGVzdCAiJHBhc3MiICE9IGNvbnY7IHRoZW4KKwkgICMgTWFrZSBzdXJlIGxpYl9zZWFyY2hfcGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKwkgIGxpYl9zZWFyY2hfcGF0aD0KKwkgIGZvciBkaXIgaW4gJG5ld2xpYl9zZWFyY2hfcGF0aDsgZG8KKwkgICAgY2FzZSAiJGxpYl9zZWFyY2hfcGF0aCAiIGluCisJICAgICoiICRkaXIgIiopIDs7CisJICAgICopIGxpYl9zZWFyY2hfcGF0aD0iJGxpYl9zZWFyY2hfcGF0aCAkZGlyIiA7OworCSAgICBlc2FjCisJICBkb25lCisJICBuZXdsaWJfc2VhcmNoX3BhdGg9CisJZmkKKworCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgIT0gInByb2csbGluayI7IHRoZW4KKwkgIHZhcnM9ImRlcGxpYnMiCisJZWxzZQorCSAgdmFycz0iY29tcGlsZV9kZXBsaWJzIGZpbmFsaXplX2RlcGxpYnMiCisJZmkKKwlmb3IgdmFyIGluICR2YXJzIGRlcGVuZGVuY3lfbGliczsgZG8KKwkgICMgQWRkIGxpYnJhcmllcyB0byAkdmFyIGluIHJldmVyc2Ugb3JkZXIKKwkgIGV2YWwgdG1wX2xpYnM9XCJcJCR2YXJcIgorCSAgbmV3X2xpYnM9CisJICBmb3IgZGVwbGliIGluICR0bXBfbGliczsgZG8KKwkgICAgIyBGSVhNRTogUGVkYW50aWNhbGx5LCB0aGlzIGlzIHRoZSByaWdodCB0aGluZyB0byBkbywgc28KKwkgICAgIyAgICAgICAgdGhhdCBzb21lIG5hc3R5IGRlcGVuZGVuY3kgbG9vcCBpc24ndCBhY2NpZGVudGFsbHkKKwkgICAgIyAgICAgICAgYnJva2VuOgorCSAgICAjbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIgorCSAgICAjIFByYWdtYXRpY2FsbHksIHRoaXMgc2VlbXMgdG8gY2F1c2UgdmVyeSBmZXcgcHJvYmxlbXMgaW4KKwkgICAgIyBwcmFjdGljZToKKwkgICAgY2FzZSAkZGVwbGliIGluCisJICAgIC1MKikgbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OworCSAgICAtUiopIDs7CisJICAgICopCisJICAgICAgIyBBbmQgaGVyZSBpcyB0aGUgcmVhc29uOiB3aGVuIGEgbGlicmFyeSBhcHBlYXJzIG1vcmUKKwkgICAgICAjIHRoYW4gb25jZSBhcyBhbiBleHBsaWNpdCBkZXBlbmRlbmNlIG9mIGEgbGlicmFyeSwgb3IKKwkgICAgICAjIGlzIGltcGxpY2l0bHkgbGlua2VkIGluIG1vcmUgdGhhbiBvbmNlIGJ5IHRoZQorCSAgICAgICMgY29tcGlsZXIsIGl0IGlzIGNvbnNpZGVyZWQgc3BlY2lhbCwgYW5kIG11bHRpcGxlCisJICAgICAgIyBvY2N1cnJlbmNlcyB0aGVyZW9mIGFyZSBub3QgcmVtb3ZlZC4gIENvbXBhcmUgdGhpcworCSAgICAgICMgd2l0aCBoYXZpbmcgdGhlIHNhbWUgbGlicmFyeSBiZWluZyBsaXN0ZWQgYXMgYQorCSAgICAgICMgZGVwZW5kZW5jeSBvZiBtdWx0aXBsZSBvdGhlciBsaWJyYXJpZXM6IGluIHRoaXMgY2FzZSwKKwkgICAgICAjIHdlIGtub3cgKHBlZGFudGljYWxseSwgd2UgYXNzdW1lKSB0aGUgbGlicmFyeSBkb2VzIG5vdAorCSAgICAgICMgbmVlZCB0byBiZSBsaXN0ZWQgbW9yZSB0aGFuIG9uY2UsIHNvIHdlIGtlZXAgb25seSB0aGUKKwkgICAgICAjIGxhc3QgY29weS4gIFRoaXMgaXMgbm90IGFsd2F5cyByaWdodCwgYnV0IGl0IGlzIHJhcmUKKwkgICAgICAjIGVub3VnaCB0aGF0IHdlIHJlcXVpcmUgdXNlcnMgdGhhdCByZWFsbHkgbWVhbiB0byBwbGF5CisJICAgICAgIyBzdWNoIHVucG9ydGFibGUgbGlua2luZyB0cmlja3MgdG8gbGluayB0aGUgbGlicmFyeQorCSAgICAgICMgdXNpbmcgLVdsLC1sbmFtZSwgc28gdGhhdCBsaWJ0b29sIGRvZXMgbm90IGNvbnNpZGVyIGl0CisJICAgICAgIyBmb3IgZHVwbGljYXRlIHJlbW92YWwuCisJICAgICAgY2FzZSAiICRzcGVjaWFsZGVwbGlicyAiIGluCisJICAgICAgKiIgJGRlcGxpYiAiKikgbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OworCSAgICAgICopCisJCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorCQkqIiAkZGVwbGliICIqKSA7OworCQkqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7CisJCWVzYWMKKwkJOzsKKwkgICAgICBlc2FjCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgZG9uZQorCSAgdG1wX2xpYnM9CisJICBmb3IgZGVwbGliIGluICRuZXdfbGliczsgZG8KKwkgICAgY2FzZSAkZGVwbGliIGluCisJICAgIC1MKikKKwkgICAgICBjYXNlICIgJHRtcF9saWJzICIgaW4KKwkgICAgICAqIiAkZGVwbGliICIqKSA7OworCSAgICAgICopIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIgOzsKKwkgICAgICBlc2FjCisJICAgICAgOzsKKwkgICAgKikgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIiA7OworCSAgICBlc2FjCisJICBkb25lCisJICBldmFsICR2YXI9XCIkdG1wX2xpYnNcIgorCWRvbmUgIyBmb3IgdmFyCisgICAgICBmaQorICAgICAgIyBMYXN0IHN0ZXA6IHJlbW92ZSBydW50aW1lIGxpYnMgZnJvbSBkZXBlbmRlbmN5X2xpYnMKKyAgICAgICMgKHRoZXkgc3RheSBpbiBkZXBsaWJzKQorICAgICAgdG1wX2xpYnM9CisgICAgICBmb3IgaSBpbiAkZGVwZW5kZW5jeV9saWJzIDsgZG8KKwljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICRjb21waWxlcl9saWJfc2VhcmNoX3BhdGggIiBpbgorCSoiICRpICIqKQorCSAgaT0iIgorCSAgOzsKKwllc2FjCisJaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorCSAgdG1wX2xpYnM9IiR0bXBfbGlicyAkaSIKKwlmaQorICAgICAgZG9uZQorICAgICAgZGVwZW5kZW5jeV9saWJzPSR0bXBfbGlicworICAgIGRvbmUgIyBmb3IgcGFzcworICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCisgICAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKKyAgICBmaQorICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KKyAgICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgorICAgIGZpCisKKyAgICBjYXNlICRsaW5rbW9kZSBpbgorICAgIG9sZGxpYikKKyAgICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCisJZnVuY193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorICAgICAgZmkKKworICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgorICAgICAgKlwgLWwqIHwgKlwgLUwqKQorCWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBhcmNoaXZlcyIgOzsKKyAgICAgIGVzYWMKKworICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisJZnVuY193YXJuaW5nICJcYC1ycGF0aCcgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCisKKyAgICAgIHRlc3QgLW4gIiR4cnBhdGgiICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLVInIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorCisgICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXInIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorCisgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCisKKyAgICAgIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgXAorCWZ1bmNfd2FybmluZyAiXGAtZXhwb3J0LXN5bWJvbHMnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorCisgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KKyAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubworICAgICAgb2xkbGlicz0iJG91dHB1dCIKKyAgICAgIG9ianM9IiRvYmpzJG9sZF9kZXBsaWJzIgorICAgICAgOzsKKworICAgIGxpYikKKyAgICAgICMgTWFrZSBzdXJlIHdlIG9ubHkgZ2VuZXJhdGUgbGlicmFyaWVzIG9mIHRoZSBmb3JtIGBsaWJOQU1FLmxhJy4KKyAgICAgIGNhc2UgJG91dHB1dG5hbWUgaW4KKyAgICAgIGxpYiopCisJZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRvdXRwdXRuYW1lIgorCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCisJZXZhbCBsaWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wiCisJOzsKKyAgICAgICopCisJdGVzdCAiJG1vZHVsZSIgPSBubyAmJiBcCisJICBmdW5jX2ZhdGFsX2hlbHAgImxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIG11c3QgYmVnaW4gd2l0aCBcYGxpYiciCisKKwlpZiB0ZXN0ICIkbmVlZF9saWJfcHJlZml4IiAhPSBubzsgdGhlbgorCSAgIyBBZGQgdGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcyBpZiByZXF1aXJlZAorCSAgZnVuY19zdHJpcG5hbWUgJycgJy5sYScgIiRvdXRwdXRuYW1lIgorCSAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICBldmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgorCSAgZXZhbCBsaWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wiCisJZWxzZQorCSAgZnVuY19zdHJpcG5hbWUgJycgJy5sYScgIiRvdXRwdXRuYW1lIgorCSAgbGlibmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJZmkKKwk7OworICAgICAgZXNhYworCisgICAgICBpZiB0ZXN0IC1uICIkb2JqcyI7IHRoZW4KKwlpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCisJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgYnVpbGQgbGlidG9vbCBsaWJyYXJ5IFxgJG91dHB1dCcgZnJvbSBub24tbGlidG9vbCBvYmplY3RzIG9uIHRoaXMgaG9zdDokb2JqcyIKKwllbHNlCisJICAkRUNITworCSAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0b29sIgorCSAgJEVDSE8gIioqKiBvYmplY3RzICRvYmpzIGlzIG5vdCBwb3J0YWJsZSEiCisJICBsaWJvYmpzPSIkbGlib2JqcyAkb2JqcyIKKwlmaQorICAgICAgZmkKKworICAgICAgdGVzdCAiJGRsc2VsZiIgIT0gbm8gJiYgXAorCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuIHNlbGYnIGlzIGlnbm9yZWQgZm9yIGxpYnRvb2wgbGlicmFyaWVzIgorCisgICAgICBzZXQgZHVtbXkgJHJwYXRoCisgICAgICBzaGlmdAorICAgICAgdGVzdCAiJCMiIC1ndCAxICYmIFwKKwlmdW5jX3dhcm5pbmcgImlnbm9yaW5nIG11bHRpcGxlIFxgLXJwYXRoJ3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5IgorCisgICAgICBpbnN0YWxsX2xpYmRpcj0iJDEiCisKKyAgICAgIG9sZGxpYnM9CisgICAgICBpZiB0ZXN0IC16ICIkcnBhdGgiOyB0aGVuCisJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKwkgICMgQnVpbGRpbmcgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxpYnJhcnkuCisJICAjIFNvbWUgY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0aCBhIGAuYWwnIGV4dGVuc2lvbiBzbworCSAgIyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgZXh0ZW5zaW9uIGFuCisJICAjIGFyY2hpdmUgbm9ybWFsbHkgd291bGQuCisJICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0ICRvbGRsaWJzIgorCSAgYnVpbGRfbGlidG9vbF9saWJzPWNvbnZlbmllbmNlCisJICBidWlsZF9vbGRfbGlicz15ZXMKKwlmaQorCisJdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisJICBmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXInIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKKworCXRlc3QgLW4gIiRyZWxlYXNlIiAmJiBcCisJICBmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKKyAgICAgIGVsc2UKKworCSMgUGFyc2UgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gYXJndW1lbnQuCisJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JzonCisJc2V0IGR1bW15ICR2aW5mbyAwIDAgMAorCXNoaWZ0CisJSUZTPSIkc2F2ZV9pZnMiCisKKwl0ZXN0IC1uICIkNyIgJiYgXAorCSAgZnVuY19mYXRhbF9oZWxwICJ0b28gbWFueSBwYXJhbWV0ZXJzIHRvIFxgLXZlcnNpb24taW5mbyciCisKKwkjIGNvbnZlcnQgYWJzb2x1dGUgdmVyc2lvbiBudW1iZXJzIHRvIGxpYnRvb2wgYWdlcworCSMgdGhpcyByZXRhaW5zIGNvbXBhdGliaWxpdHkgd2l0aCAubGEgZmlsZXMgYW5kIGF0dGVtcHRzCisJIyB0byBtYWtlIHRoZSBjb2RlIGJlbG93IGEgYml0IG1vcmUgY29tcHJlaGVuc2libGUKKworCWNhc2UgJHZpbmZvX251bWJlciBpbgorCXllcykKKwkgIG51bWJlcl9tYWpvcj0iJDEiCisJICBudW1iZXJfbWlub3I9IiQyIgorCSAgbnVtYmVyX3JldmlzaW9uPSIkMyIKKwkgICMKKwkgICMgVGhlcmUgYXJlIHJlYWxseSBvbmx5IHR3byBraW5kcyAtLSB0aG9zZSB0aGF0CisJICAjIHVzZSB0aGUgY3VycmVudCByZXZpc2lvbiBhcyB0aGUgbWFqb3IgdmVyc2lvbgorCSAgIyBhbmQgdGhvc2UgdGhhdCBzdWJ0cmFjdCBhZ2UgYW5kIHVzZSBhZ2UgYXMKKwkgICMgYSBtaW5vciB2ZXJzaW9uLiAgQnV0LCB0aGVuIHRoZXJlIGlzIGlyaXgKKwkgICMgd2hpY2ggaGFzIGFuIGV4dHJhIDEgYWRkZWQganVzdCBmb3IgZnVuCisJICAjCisJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKwkgIGRhcndpbnxsaW51eHxvc2Z8d2luZG93c3xub25lKQorCSAgICBmdW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCisJICAgIGN1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0CisJICAgIGFnZT0iJG51bWJlcl9taW5vciIKKwkgICAgcmV2aXNpb249IiRudW1iZXJfcmV2aXNpb24iCisJICAgIDs7CisJICBmcmVlYnNkLWFvdXR8ZnJlZWJzZC1lbGZ8c3Vub3MpCisJICAgIGN1cnJlbnQ9IiRudW1iZXJfbWFqb3IiCisJICAgIHJldmlzaW9uPSIkbnVtYmVyX21pbm9yIgorCSAgICBhZ2U9IjAiCisJICAgIDs7CisJICBpcml4fG5vbnN0b3B1eCkKKwkgICAgZnVuY19hcml0aCAkbnVtYmVyX21ham9yICsgJG51bWJlcl9taW5vcgorCSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgICBhZ2U9IiRudW1iZXJfbWlub3IiCisJICAgIHJldmlzaW9uPSIkbnVtYmVyX21pbm9yIgorCSAgICBsdF9pcml4X2luY3JlbWVudD1ubworCSAgICA7OworCSAgZXNhYworCSAgOzsKKwlubykKKwkgIGN1cnJlbnQ9IiQxIgorCSAgcmV2aXNpb249IiQyIgorCSAgYWdlPSIkMyIKKwkgIDs7CisJZXNhYworCisJIyBDaGVjayB0aGF0IGVhY2ggb2YgdGhlIHRoaW5ncyBhcmUgdmFsaWQgbnVtYmVycy4KKwljYXNlICRjdXJyZW50IGluCisJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTldKSA7OworCSopCisJICBmdW5jX2Vycm9yICJDVVJSRU5UIFxgJGN1cnJlbnQnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgorCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgorCSAgOzsKKwllc2FjCisKKwljYXNlICRyZXZpc2lvbiBpbgorCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKwkqKQorCSAgZnVuY19lcnJvciAiUkVWSVNJT04gXGAkcmV2aXNpb24nIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgorCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgorCSAgOzsKKwllc2FjCisKKwljYXNlICRhZ2UgaW4KKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7CisJKikKKwkgIGZ1bmNfZXJyb3IgIkFHRSBcYCRhZ2UnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgorCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgorCSAgOzsKKwllc2FjCisKKwlpZiB0ZXN0ICIkYWdlIiAtZ3QgIiRjdXJyZW50IjsgdGhlbgorCSAgZnVuY19lcnJvciAiQUdFIFxgJGFnZScgaXMgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGludGVyZmFjZSBudW1iZXIgXGAkY3VycmVudCciCisJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCisJZmkKKworCSMgQ2FsY3VsYXRlIHRoZSB2ZXJzaW9uIHZhcmlhYmxlcy4KKwltYWpvcj0KKwl2ZXJzdWZmaXg9CisJdmVyc3RyaW5nPQorCWNhc2UgJHZlcnNpb25fdHlwZSBpbgorCW5vbmUpIDs7CisKKwlkYXJ3aW4pCisJICAjIExpa2UgTGludXgsIGJ1dCB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gYXZhaWxhYmxlIGluCisJICAjIHZlcnN0cmluZyBmb3IgY29kaW5nIGl0IGludG8gdGhlIGxpYnJhcnkgaGVhZGVyCisJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQorCSAgbWFqb3I9LiRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgdmVyc3VmZml4PSIkbWFqb3IuJGFnZS4kcmV2aXNpb24iCisJICAjIERhcndpbiBsZCBkb2Vzbid0IGxpa2UgMCBmb3IgdGhlc2Ugb3B0aW9ucy4uLgorCSAgZnVuY19hcml0aCAkY3VycmVudCArIDEKKwkgIG1pbm9yX2N1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0CisJICB4bGN2ZXJzdHJpbmc9IiR7d2x9LWNvbXBhdGliaWxpdHlfdmVyc2lvbiAke3dsfSRtaW5vcl9jdXJyZW50ICR7d2x9LWN1cnJlbnRfdmVyc2lvbiAke3dsfSRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKKwkgIHZlcnN0cmluZz0iLWNvbXBhdGliaWxpdHlfdmVyc2lvbiAkbWlub3JfY3VycmVudCAtY3VycmVudF92ZXJzaW9uICRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKKwkgIDs7CisKKwlmcmVlYnNkLWFvdXQpCisJICBtYWpvcj0iLiRjdXJyZW50IgorCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIjsKKwkgIDs7CisKKwlmcmVlYnNkLWVsZikKKwkgIG1ham9yPSIuJGN1cnJlbnQiCisJICB2ZXJzdWZmaXg9Ii4kY3VycmVudCIKKwkgIDs7CisKKwlpcml4IHwgbm9uc3RvcHV4KQorCSAgaWYgdGVzdCAiWCRsdF9pcml4X2luY3JlbWVudCIgPSAiWG5vIjsgdGhlbgorCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQorCSAgZWxzZQorCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZSArIDEKKwkgIGZpCisJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKKworCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisJICAgIG5vbnN0b3B1eCkgdmVyc3RyaW5nX3ByZWZpeD1ub25zdG9wdXggOzsKKwkgICAgKikgICAgICAgICB2ZXJzdHJpbmdfcHJlZml4PXNnaSA7OworCSAgZXNhYworCSAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZpeCRtYWpvci4kcmV2aXNpb24iCisKKwkgICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNlcyB0aGF0IHdlIGFyZSBjb21wYXRpYmxlIHdpdGguCisJICBsb29wPSRyZXZpc2lvbgorCSAgd2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAwOyBkbworCSAgICBmdW5jX2FyaXRoICRyZXZpc2lvbiAtICRsb29wCisJICAgIGlmYWNlPSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgICBmdW5jX2FyaXRoICRsb29wIC0gMQorCSAgICBsb29wPSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9yLiRpZmFjZTokdmVyc3RyaW5nIgorCSAgZG9uZQorCisJICAjIEJlZm9yZSB0aGlzIHBvaW50LCAkbWFqb3IgbXVzdCBub3QgY29udGFpbiBgLicuCisJICBtYWpvcj0uJG1ham9yCisJICB2ZXJzdWZmaXg9IiRtYWpvci4kcmV2aXNpb24iCisJICA7OworCisJbGludXgpCisJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQorCSAgbWFqb3I9LiRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgdmVyc3VmZml4PSIkbWFqb3IuJGFnZS4kcmV2aXNpb24iCisJICA7OworCisJb3NmKQorCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRhZ2UuJHJldmlzaW9uIgorCSAgdmVyc3RyaW5nPSIkY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKKworCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KKwkgIGxvb3A9JGFnZQorCSAgd2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAwOyBkbworCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGxvb3AKKwkgICAgaWZhY2U9JGZ1bmNfYXJpdGhfcmVzdWx0CisJICAgIGZ1bmNfYXJpdGggJGxvb3AgLSAxCisJICAgIGxvb3A9JGZ1bmNfYXJpdGhfcmVzdWx0CisJICAgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2lmYWNlfS4wIgorCSAgZG9uZQorCisJICAjIE1ha2UgZXhlY3V0YWJsZXMgZGVwZW5kIG9uIG91ciBjdXJyZW50IHZlcnNpb24uCisJICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtjdXJyZW50fS4wIgorCSAgOzsKKworCXFueCkKKwkgIG1ham9yPSIuJGN1cnJlbnQiCisJICB2ZXJzdWZmaXg9Ii4kY3VycmVudCIKKwkgIDs7CisKKwlzdW5vcykKKwkgIG1ham9yPSIuJGN1cnJlbnQiCisJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24iCisJICA7OworCisJd2luZG93cykKKwkgICMgVXNlICctJyByYXRoZXIgdGhhbiAnLicsIHNpbmNlIHdlIG9ubHkgd2FudCBvbmUKKwkgICMgZXh0ZW5zaW9uIG9uIERPUyA4LjMgZmlsZXN5c3RlbXMuCisJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQorCSAgbWFqb3I9JGZ1bmNfYXJpdGhfcmVzdWx0CisJICB2ZXJzdWZmaXg9Ii0kbWFqb3IiCisJICA7OworCisJKikKKwkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAidW5rbm93biBsaWJyYXJ5IHZlcnNpb24gdHlwZSBcYCR2ZXJzaW9uX3R5cGUnIgorCSAgOzsKKwllc2FjCisKKwkjIENsZWFyIHRoZSB2ZXJzaW9uIGluZm8gaWYgd2UgZGVmYXVsdGVkLCBhbmQgdGhleSBzcGVjaWZpZWQgYSByZWxlYXNlLgorCWlmIHRlc3QgLXogIiR2aW5mbyIgJiYgdGVzdCAtbiAiJHJlbGVhc2UiOyB0aGVuCisJICBtYWpvcj0KKwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorCSAgZGFyd2luKQorCSAgICAjIHdlIGNhbid0IGNoZWNrIGZvciAiMC4wIiBpbiBhcmNoaXZlX2NtZHMgZHVlIHRvIHF1b3RpbmcKKwkgICAgIyBwcm9ibGVtcywgc28gd2UgcmVzZXQgaXQgY29tcGxldGVseQorCSAgICB2ZXJzdHJpbmc9CisJICAgIDs7CisJICAqKQorCSAgICB2ZXJzdHJpbmc9IjAuMCIKKwkgICAgOzsKKwkgIGVzYWMKKwkgIGlmIHRlc3QgIiRuZWVkX3ZlcnNpb24iID0gbm87IHRoZW4KKwkgICAgdmVyc3VmZml4PQorCSAgZWxzZQorCSAgICB2ZXJzdWZmaXg9Ii4wLjAiCisJICBmaQorCWZpCisKKwkjIFJlbW92ZSB2ZXJzaW9uIGluZm8gZnJvbSBuYW1lIGlmIHZlcnNpb25pbmcgc2hvdWxkIGJlIGF2b2lkZWQKKwlpZiB0ZXN0ICIkYXZvaWRfdmVyc2lvbiIgPSB5ZXMgJiYgdGVzdCAiJG5lZWRfdmVyc2lvbiIgPSBubzsgdGhlbgorCSAgbWFqb3I9CisJICB2ZXJzdWZmaXg9CisJICB2ZXJzdHJpbmc9IiIKKwlmaQorCisJIyBDaGVjayB0byBzZWUgaWYgdGhlIGFyY2hpdmUgd2lsbCBoYXZlIHVuZGVmaW5lZCBzeW1ib2xzLgorCWlmIHRlc3QgIiRhbGxvd191bmRlZmluZWQiID0geWVzOyB0aGVuCisJICBpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkX2ZsYWciID0gdW5zdXBwb3J0ZWQ7IHRoZW4KKwkgICAgZnVuY193YXJuaW5nICJ1bmRlZmluZWQgc3ltYm9scyBub3QgYWxsb3dlZCBpbiAkaG9zdCBzaGFyZWQgbGlicmFyaWVzIgorCSAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKwkgICAgYnVpbGRfb2xkX2xpYnM9eWVzCisJICBmaQorCWVsc2UKKwkgICMgRG9uJ3QgYWxsb3cgdW5kZWZpbmVkIHN5bWJvbHMuCisJICBhbGxvd191bmRlZmluZWRfZmxhZz0iJG5vX3VuZGVmaW5lZF9mbGFnIgorCWZpCisKKyAgICAgIGZpCisKKyAgICAgIGZ1bmNfZ2VuZXJhdGVfZGxzeW1zICIkbGlibmFtZSIgIiRsaWJuYW1lIiAieWVzIgorICAgICAgbGlib2Jqcz0iJGxpYm9ianMgJHN5bWZpbGVvYmoiCisgICAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorCisgICAgICBpZiB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rOyB0aGVuCisJIyBSZW1vdmUgb3VyIG91dHB1dHMsIGJ1dCBkb24ndCByZW1vdmUgb2JqZWN0IGZpbGVzIHNpbmNlIHRoZXkKKwkjIG1heSBoYXZlIGJlZW4gY3JlYXRlZCB3aGVuIGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KKwlyZW1vdmVsaXN0PQorCXRlbXByZW1vdmVsaXN0PWAkRUNITyAiJG91dHB1dF9vYmpkaXIvKiJgCisJZm9yIHAgaW4gJHRlbXByZW1vdmVsaXN0OyBkbworCSAgY2FzZSAkcCBpbgorCSAgICAqLiRvYmpleHQgfCAqLmdjbm8pCisJICAgICAgIDs7CisJICAgICRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lIHwgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuKiB8ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0ke3JlbGVhc2V9LiopCisJICAgICAgIGlmIHRlc3QgIlgkcHJlY2lvdXNfZmlsZXNfcmVnZXgiICE9ICJYIjsgdGhlbgorCQkgaWYgJEVDSE8gIiRwIiB8ICRFR1JFUCAtZSAiJHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiA+L2Rldi9udWxsIDI+JjEKKwkJIHRoZW4KKwkJICAgY29udGludWUKKwkJIGZpCisJICAgICAgIGZpCisJICAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRwIgorCSAgICAgICA7OworCSAgICAqKSA7OworCSAgZXNhYworCWRvbmUKKwl0ZXN0IC1uICIkcmVtb3ZlbGlzdCIgJiYgXAorCSAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciBcJHJlbW92ZWxpc3QiCisgICAgICBmaQorCisgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KKyAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0gY29udmVuaWVuY2UgOyB0aGVuCisJb2xkbGlicz0iJG9sZGxpYnMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKKworCSMgVHJhbnNmb3JtIC5sbyBmaWxlcyB0byAubyBmaWxlcy4KKwlvbGRvYmpzPSIkb2JqcyAiYCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgJy9cLicke2xpYmV4dH0nJC9kJyAtZSAiJGxvMm8iIHwgJE5MMlNQYAorICAgICAgZmkKKworICAgICAgIyBFbGltaW5hdGUgYWxsIHRlbXBvcmFyeSBkaXJlY3Rvcmllcy4KKyAgICAgICNmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbworICAgICAgIwlsaWJfc2VhcmNoX3BhdGg9YCRFQ0hPICJYJGxpYl9zZWFyY2hfcGF0aCAiIHwgJFhzZWQgLWUgInMlICRwYXRoICUgJWciYAorICAgICAgIwlkZXBsaWJzPWAkRUNITyAiWCRkZXBsaWJzICIgfCAkWHNlZCAtZSAicyUgLUwkcGF0aCAlICVnImAKKyAgICAgICMJZGVwZW5kZW5jeV9saWJzPWAkRUNITyAiWCRkZXBlbmRlbmN5X2xpYnMgIiB8ICRYc2VkIC1lICJzJSAtTCRwYXRoICUgJWciYAorICAgICAgI2RvbmUKKworICAgICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7IHRoZW4KKwkjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbnkgcnBhdGggZmxhZ3MsIHRoZW4gYWRkIHRoZW0uCisJdGVtcF94cnBhdGg9CisJZm9yIGxpYmRpciBpbiAkeHJwYXRoOyBkbworCSAgdGVtcF94cnBhdGg9IiR0ZW1wX3hycGF0aCAtUiRsaWJkaXIiCisJICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgorCSAgKiIgJGxpYmRpciAiKikgOzsKKwkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKKwkgIGVzYWMKKwlkb25lCisJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKwkgIGRlcGVuZGVuY3lfbGlicz0iJHRlbXBfeHJwYXRoICRkZXBlbmRlbmN5X2xpYnMiCisJZmkKKyAgICAgIGZpCisKKyAgICAgICMgTWFrZSBzdXJlIGRsZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMgdGhhdCB3b24ndCBiZSBkbHByZW9wZW5lZAorICAgICAgb2xkX2RsZmlsZXM9IiRkbGZpbGVzIgorICAgICAgZGxmaWxlcz0KKyAgICAgIGZvciBsaWIgaW4gJG9sZF9kbGZpbGVzOyBkbworCWNhc2UgIiAkZGxwcmVmaWxlcyAkZGxmaWxlcyAiIGluCisJKiIgJGxpYiAiKikgOzsKKwkqKSBkbGZpbGVzPSIkZGxmaWxlcyAkbGliIiA7OworCWVzYWMKKyAgICAgIGRvbmUKKworICAgICAgIyBNYWtlIHN1cmUgZGxwcmVmaWxlcyBjb250YWlucyBvbmx5IHVuaXF1ZSBmaWxlcworICAgICAgb2xkX2RscHJlZmlsZXM9IiRkbHByZWZpbGVzIgorICAgICAgZGxwcmVmaWxlcz0KKyAgICAgIGZvciBsaWIgaW4gJG9sZF9kbHByZWZpbGVzOyBkbworCWNhc2UgIiRkbHByZWZpbGVzICIgaW4KKwkqIiAkbGliICIqKSA7OworCSopIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRsaWIiIDs7CisJZXNhYworICAgICAgZG9uZQorCisgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgorCWlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KKwkgIGNhc2UgJGhvc3QgaW4KKwkgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi0qLWJlb3MqIHwgKi1jZWdjYyopCisJICAgICMgdGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgYyBsaWJyYXJ5IChhcyBzdWNoKSEKKwkgICAgOzsKKwkgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKwkgICAgIyBSaGFwc29keSBDIGxpYnJhcnkgaXMgaW4gdGhlIFN5c3RlbSBmcmFtZXdvcmsKKwkgICAgZGVwbGlicz0iJGRlcGxpYnMgU3lzdGVtLmx0ZnJhbWV3b3JrIgorCSAgICA7OworCSAgKi0qLW5ldGJzZCopCisJICAgICMgRG9uJ3QgbGluayB3aXRoIGxpYmMgdW50aWwgdGhlIGEub3V0IGxkLnNvIGlzIGZpeGVkLgorCSAgICA7OworCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCisJICAgICMgRG8gbm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgorCSAgICA7OworCSAgKi0qLXNjbzMuMnY1KiB8ICotKi1zY281djYqKQorCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKKwkgICAgOzsKKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0qLU9wZW5VTklYKikKKwkgICAgIyBDb21waWxlciBpbnNlcnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVhZHMgdG8gd29yaworCSAgICA7OworCSAgKikKKwkgICAgIyBBZGQgbGliYyB0byBkZXBsaWJzIG9uIGFsbCBvdGhlciBzeXN0ZW1zIGlmIG5lY2Vzc2FyeS4KKwkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbmVlZF9sYyIgPSAieWVzIjsgdGhlbgorCSAgICAgIGRlcGxpYnM9IiRkZXBsaWJzIC1sYyIKKwkgICAgZmkKKwkgICAgOzsKKwkgIGVzYWMKKwlmaQorCisJIyBUcmFuc2Zvcm0gZGVwbGlicyBpbnRvIG9ubHkgZGVwbGlicyB0aGF0IGNhbiBiZSBsaW5rZWQgaW4gc2hhcmVkLgorCW5hbWVfc2F2ZT0kbmFtZQorCWxpYm5hbWVfc2F2ZT0kbGlibmFtZQorCXJlbGVhc2Vfc2F2ZT0kcmVsZWFzZQorCXZlcnN1ZmZpeF9zYXZlPSR2ZXJzdWZmaXgKKwltYWpvcl9zYXZlPSRtYWpvcgorCSMgSSdtIG5vdCBzdXJlIGlmIEknbSB0cmVhdGluZyB0aGUgcmVsZWFzZSBjb3JyZWN0bHkuICBJIHRoaW5rCisJIyByZWxlYXNlIHNob3VsZCBzaG93IHVwIGluIHRoZSAtbCAoaWUgLWxnbXA1KSBzbyB3ZSBkb24ndCB3YW50IHRvCisJIyBhZGQgaXQgaW4gdHdpY2UuICBJcyB0aGF0IGNvcnJlY3Q/CisJcmVsZWFzZT0iIgorCXZlcnN1ZmZpeD0iIgorCW1ham9yPSIiCisJbmV3ZGVwbGlicz0KKwlkcm9wcGVkZGVwcz1ubworCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisJcGFzc19hbGwpCisJICAjIERvbid0IGNoZWNrIGZvciBzaGFyZWQvc3RhdGljLiAgRXZlcnl0aGluZyB3b3Jrcy4KKwkgICMgVGhpcyBtaWdodCBiZSBhIGxpdHRsZSBuYWl2ZS4gIFdlIG1pZ2h0IHdhbnQgdG8gY2hlY2sKKwkgICMgd2hldGhlciB0aGUgbGlicmFyeSBleGlzdHMgb3Igbm90LiAgQnV0IHRoaXMgaXMgb24KKwkgICMgb3NmMyAmIG9zZjQgYW5kIEknbSBub3QgcmVhbGx5IHN1cmUuLi4gSnVzdAorCSAgIyBpbXBsZW1lbnRpbmcgd2hhdCB3YXMgYWxyZWFkeSB0aGUgYmVoYXZpb3IuCisJICBuZXdkZXBsaWJzPSRkZXBsaWJzCisJICA7OworCXRlc3RfY29tcGlsZSkKKwkgICMgVGhpcyBjb2RlIHN0cmVzc2VzIHRoZSAibGlicmFyaWVzIGFyZSBwcm9ncmFtcyIgcGFyYWRpZ20gdG8gaXRzCisJICAjIGxpbWl0cy4gTWF5YmUgZXZlbiBicmVha3MgaXQuICBXZSBjb21waWxlIGEgcHJvZ3JhbSwgbGlua2luZyBpdAorCSAgIyBhZ2FpbnN0IHRoZSBkZXBsaWJzIGFzIGEgcHJveHkgZm9yIHRoZSBsaWJyYXJ5LiAgVGhlbiB3ZSBjYW4gY2hlY2sKKwkgICMgd2hldGhlciB0aGV5IGxpbmtlZCBpbiBzdGF0aWNhbGx5IG9yIGR5bmFtaWNhbGx5IHdpdGggbGRkLgorCSAgJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdC5jCisJICBjYXQgPiBjb25mdGVzdC5jIDw8RU9GCisJICBpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0KK0VPRgorCSAgJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdAorCSAgaWYgJExUQ0MgJExUQ0ZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGRlcGxpYnM7IHRoZW4KKwkgICAgbGRkX291dHB1dD1gbGRkIGNvbmZ0ZXN0YAorCSAgICBmb3IgaSBpbiAkZGVwbGliczsgZG8KKwkgICAgICBjYXNlICRpIGluCisJICAgICAgLWwqKQorCQlmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGkiCisJCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCQlpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisJCSAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCisJCSAgKiIgJGkgIiopCisJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKwkJICAgIGk9IiIKKwkJICAgIDs7CisJCSAgZXNhYworCQlmaQorCQlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCisJCSAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisJCSAgZGVwbGliX21hdGNoZXM9YGV2YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCIiYAorCQkgIHNldCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0CisJCSAgZGVwbGliX21hdGNoPSQxCisJCSAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgorCQkgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCSAgZWxzZQorCQkgICAgZHJvcHBlZGRlcHM9eWVzCisJCSAgICAkRUNITworCQkgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgorCQkgICAgJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisJCSAgICAkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIEkgYmVsaWV2ZSB5b3UgZG8gbm90IGhhdmUiCisJCSAgICAkRUNITyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgaXQgZm9yIgorCQkgICAgJEVDSE8gIioqKiBpdHMgZHluYW1pYyBkZXBlbmRlbmN5IGxpc3QgdGhhdCBwcm9ncmFtcyBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKKwkJICBmaQorCQlmaQorCQk7OworCSAgICAgICopCisJCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQk7OworCSAgICAgIGVzYWMKKwkgICAgZG9uZQorCSAgZWxzZQorCSAgICAjIEVycm9yIG9jY3VycmVkIGluIHRoZSBmaXJzdCBjb21waWxlLiAgTGV0J3MgdHJ5IHRvIHNhbHZhZ2UKKwkgICAgIyB0aGUgc2l0dWF0aW9uOiBDb21waWxlIGEgc2VwYXJhdGUgcHJvZ3JhbSBmb3IgZWFjaCBsaWJyYXJ5LgorCSAgICBmb3IgaSBpbiAkZGVwbGliczsgZG8KKwkgICAgICBjYXNlICRpIGluCisJICAgICAgLWwqKQorCQlmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGkiCisJCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCQkkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0CisJCWlmICRMVENDICRMVENGTEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5jICRpOyB0aGVuCisJCSAgbGRkX291dHB1dD1gbGRkIGNvbmZ0ZXN0YAorCQkgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKwkJICAgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorCQkgICAgKiIgJGkgIiopCisJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQkgICAgICBpPSIiCisJCSAgICAgIDs7CisJCSAgICBlc2FjCisJCSAgZmkKKwkJICBpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCisJCSAgICBsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKwkJICAgIGRlcGxpYl9tYXRjaGVzPWBldmFsICJcXCRFQ0hPIFwiJGxpYnJhcnlfbmFtZXNfc3BlY1wiImAKKwkJICAgIHNldCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0CisJCSAgICBkZXBsaWJfbWF0Y2g9JDEKKwkJICAgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCSAgICBlbHNlCisJCSAgICAgIGRyb3BwZWRkZXBzPXllcworCQkgICAgICAkRUNITworCQkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2VwdCBuZWVkZWQgbGlicmFyeSAkaS4iCisJCSAgICAgICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCQkgICAgICAkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJICAgICAgJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKKwkJICAgICAgJEVDSE8gIioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIHRoaXMgb25lIgorCQkgICAgICAkRUNITyAiKioqIGFzIGEgZHluYW1pYyBkZXBlbmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgorCQkgICAgZmkKKwkJICBmaQorCQllbHNlCisJCSAgZHJvcHBlZGRlcHM9eWVzCisJCSAgJEVDSE8KKwkJICAkRUNITyAiKioqIFdhcm5pbmchICBMaWJyYXJ5ICRpIGlzIG5lZWRlZCBieSB0aGlzIGxpYnJhcnkgYnV0IEkgd2FzIG5vdCBhYmxlIHRvIgorCQkgICRFQ0hPICIqKiogbWFrZSBpdCBsaW5rIGluISAgWW91IHdpbGwgcHJvYmFibHkgbmVlZCB0byBpbnN0YWxsIGl0IG9yIHNvbWUiCisJCSAgJEVDSE8gIioqKiBsaWJyYXJ5IHRoYXQgaXQgZGVwZW5kcyBvbiBiZWZvcmUgdGhpcyBsaWJyYXJ5IHdpbGwgYmUgZnVsbHkiCisJCSAgJEVDSE8gIioqKiBmdW5jdGlvbmFsLiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBldmVuIGJldHRlci4iCisJCWZpCisJCTs7CisJICAgICAgKikKKwkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCTs7CisJICAgICAgZXNhYworCSAgICBkb25lCisJICBmaQorCSAgOzsKKwlmaWxlX21hZ2ljKikKKwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0CisJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQxIFwoLipcKSJgCisJICBmb3IgYV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCisJICAgIGNhc2UgJGFfZGVwbGliIGluCisJICAgIC1sKikKKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGFfZGVwbGliIgorCSAgICAgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKwkJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCisJCSoiICRhX2RlcGxpYiAiKikKKwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisJCSAgYV9kZXBsaWI9IiIKKwkJICA7OworCQllc2FjCisJICAgICAgZmkKKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgorCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKwkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCisJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxgCisJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbworCQkgICAgICAjIEZvbGxvdyBzb2Z0IGxpbmtzLgorCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIgMj4vZGV2L251bGwgfAorCQkJICRHUkVQICIgLT4gIiA+L2Rldi9udWxsOyB0aGVuCisJCQljb250aW51ZQorCQkgICAgICBmaQorCQkgICAgICAjIFRoZSBzdGF0ZW1lbnQgYWJvdmUgdHJpZXMgdG8gYXZvaWQgZW50ZXJpbmcgYW4KKwkJICAgICAgIyBlbmRsZXNzIGxvb3AgYmVsb3csIGluIGNhc2Ugb2YgY3ljbGljIGxpbmtzLgorCQkgICAgICAjIFdlIG1pZ2h0IHN0aWxsIGVudGVyIGFuIGVuZGxlc3MgbG9vcCwgc2luY2UgYSBsaW5rCisJCSAgICAgICMgbG9vcCBjYW4gYmUgY2xvc2VkIHdoaWxlIHdlIGZvbGxvdyBsaW5rcywKKwkJICAgICAgIyBidXQgc28gd2hhdD8KKwkJICAgICAgcG90bGliPSIkcG90ZW50X2xpYiIKKwkJICAgICAgd2hpbGUgdGVzdCAtaCAiJHBvdGxpYiIgMj4vZGV2L251bGw7IGRvCisJCQlwb3RsaWJsaW5rPWBscyAtbGQgJHBvdGxpYiB8ICR7U0VEfSAncy8uKiAtPiAvLydgCisJCQljYXNlICRwb3RsaWJsaW5rIGluCisJCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHBvdGxpYj0iJHBvdGxpYmxpbmsiOzsKKwkJCSopIHBvdGxpYj1gJEVDSE8gIlgkcG90bGliIiB8ICRYc2VkIC1lICdzLFteL10qJCwsJ2AiJHBvdGxpYmxpbmsiOzsKKwkJCWVzYWMKKwkJICAgICAgZG9uZQorCQkgICAgICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcIlwkcG90bGliXCIgMj4vZGV2L251bGwgfAorCQkJICRTRUQgLWUgMTBxIHwKKwkJCSAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorCQkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkJYV9kZXBsaWI9IiIKKwkJCWJyZWFrIDIKKwkJICAgICAgZmkKKwkJICBkb25lCisJCWRvbmUKKwkgICAgICBmaQorCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisJCWRyb3BwZWRkZXBzPXllcworCQkkRUNITworCQkkRUNITyAiKioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRvZXMgbm90IGhhdmUgcmVhbCBmaWxlIGZvciBsaWJyYXJ5ICRhX2RlcGxpYi4iCisJCSRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCQkkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKKwkJJEVDSE8gIioqKiBiZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5rZXIgcGF0aCBsb29raW5nIGZvciBhIGZpbGUgc3RhcnRpbmciCisJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgorCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIGZpbGUgbWFnaWMgdGVzdCkiCisJCWVsc2UKKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKKwkJICAkRUNITyAiKioqIHVzaW5nIGEgZmlsZSBtYWdpYy4gTGFzdCBmaWxlIGNoZWNrZWQ6ICRwb3RsaWIiCisJCWZpCisJICAgICAgZmkKKwkgICAgICA7OworCSAgICAqKQorCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCisJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCSAgICAgIDs7CisJICAgIGVzYWMKKwkgIGRvbmUgIyBHb25lIHRocm91Z2ggYWxsIGRlcGxpYnMuCisJICA7OworCW1hdGNoX3BhdHRlcm4qKQorCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKKwkgIG1hdGNoX3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEgXCguKlwpImAKKwkgIGZvciBhX2RlcGxpYiBpbiAkZGVwbGliczsgZG8KKwkgICAgY2FzZSAkYV9kZXBsaWIgaW4KKwkgICAgLWwqKQorCSAgICAgIGZ1bmNfc3RyaXBuYW1lIC1sICcnICIkYV9kZXBsaWIiCisJICAgICAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICAgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorCQljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKwkJKiIgJGFfZGVwbGliICIqKQorCQkgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKwkJICBhX2RlcGxpYj0iIgorCQkgIDs7CisJCWVzYWMKKwkgICAgICBmaQorCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisJCWxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAorCQlmb3IgaSBpbiAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aDsgZG8KKwkJICBwb3RlbnRpYWxfbGlicz1gbHMgJGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYvbnVsbGAKKwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRvCisJCSAgICBwb3RsaWI9IiRwb3RlbnRfbGliIiAjIHNlZSBzeW1saW5rLWNoZWNrIGFib3ZlIGluIGZpbGVfbWFnaWMgdGVzdAorCQkgICAgaWYgZXZhbCAiXCRFQ0hPIFwiWCRwb3RlbnRfbGliXCIiIDI+L2Rldi9udWxsIHwgJFhzZWQgLWUgMTBxIHwgXAorCQkgICAgICAgJEVHUkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkgICAgICBhX2RlcGxpYj0iIgorCQkgICAgICBicmVhayAyCisJCSAgICBmaQorCQkgIGRvbmUKKwkJZG9uZQorCSAgICAgIGZpCisJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KKwkJZHJvcHBlZGRlcHM9eWVzCisJCSRFQ0hPCisJCSRFQ0hPICIqKiogV2FybmluZzogbGlua2VyIHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFfZGVwbGliLiIKKwkJJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisJCSRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorCQkkRUNITyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKKwkJaWYgdGVzdCAteiAiJHBvdGxpYiIgOyB0aGVuCisJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGJ1dCBubyBjYW5kaWRhdGVzIHdlcmUgZm91bmQuICguLi5mb3IgcmVnZXggcGF0dGVybiB0ZXN0KSIKKwkJZWxzZQorCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBhbmQgbm9uZSBvZiB0aGUgY2FuZGlkYXRlcyBwYXNzZWQgYSBmaWxlIGZvcm1hdCB0ZXN0IgorCQkgICRFQ0hPICIqKiogdXNpbmcgYSByZWdleCBwYXR0ZXJuLiBMYXN0IGZpbGUgY2hlY2tlZDogJHBvdGxpYiIKKwkJZmkKKwkgICAgICBmaQorCSAgICAgIDs7CisJICAgICopCisJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KKwkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KKwkgIDs7CisJbm9uZSB8IHVua25vd24gfCAqKQorCSAgbmV3ZGVwbGlicz0iIgorCSAgdG1wX2RlcGxpYnM9YCRFQ0hPICJYICRkZXBsaWJzIiB8ICRYc2VkIFwKKwkgICAgICAtZSAncy8gLWxjJC8vJyAtZSAncy8gLVtMUl1bXiBdKi8vZydgCisJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisJICAgIGZvciBpIGluICRwcmVkZXBzICRwb3N0ZGVwcyA7IGRvCisJICAgICAgIyBjYW4ndCB1c2UgWHNlZCBiZWxvdywgYmVjYXVzZSAkaSBtaWdodCBjb250YWluICcvJworCSAgICAgIHRtcF9kZXBsaWJzPWAkRUNITyAiWCAkdG1wX2RlcGxpYnMiIHwgJFhzZWQgLWUgInMsJGksLCJgCisJICAgIGRvbmUKKwkgIGZpCisJICBpZiAkRUNITyAiWCAkdG1wX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvWwkgXS8vZycgfAorCSAgICAgJEdSRVAgLiA+L2Rldi9udWxsOyB0aGVuCisJICAgICRFQ0hPCisJICAgIGlmIHRlc3QgIlgkZGVwbGlic19jaGVja19tZXRob2QiID0gIlhub25lIjsgdGhlbgorCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBwbGF0Zm9ybS4iCisJICAgIGVsc2UKKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qga25vd24gdG8gYmUgc3VwcG9ydGVkLiIKKwkgICAgZmkKKwkgICAgJEVDSE8gIioqKiBBbGwgZGVjbGFyZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIGJlaW5nIGRyb3BwZWQuIgorCSAgICBkcm9wcGVkZGVwcz15ZXMKKwkgIGZpCisJICA7OworCWVzYWMKKwl2ZXJzdWZmaXg9JHZlcnN1ZmZpeF9zYXZlCisJbWFqb3I9JG1ham9yX3NhdmUKKwlyZWxlYXNlPSRyZWxlYXNlX3NhdmUKKwlsaWJuYW1lPSRsaWJuYW1lX3NhdmUKKwluYW1lPSRuYW1lX3NhdmUKKworCWNhc2UgJGhvc3QgaW4KKwkqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCisJICAjIE9uIFJoYXBzb2R5IHJlcGxhY2UgdGhlIEMgbGlicmFyeSB3aXRoIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisJICBuZXdkZXBsaWJzPWAkRUNITyAiWCAkbmV3ZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAorCSAgOzsKKwllc2FjCisKKwlpZiB0ZXN0ICIkZHJvcHBlZGRlcHMiID0geWVzOyB0aGVuCisJICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgorCSAgICAkRUNITworCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IGxpYnRvb2wgY291bGQgbm90IHNhdGlzZnkgYWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkiCisJICAgICRFQ0hPICIqKiogZGVwZW5kZW5jaWVzIG9mIG1vZHVsZSAkbGlibmFtZS4gIFRoZXJlZm9yZSwgbGlidG9vbCB3aWxsIGNyZWF0ZSIKKwkgICAgJEVDSE8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgorCSAgICAkRUNITyAiKioqIGFwcGxpY2F0aW9uIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcuIgorCSAgICBpZiB0ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgorCSAgICAgICRFQ0hPCisJICAgICAgJEVDSE8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgorCSAgICAgICRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgorCSAgICAgICRFQ0hPICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCisJICAgICAgJEVDSE8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgorCSAgICBmaQorCSAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KKwkgICAgICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorCSAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKwkgICAgICBidWlsZF9vbGRfbGlicz15ZXMKKwkgICAgZWxzZQorCSAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubworCSAgICBmaQorCSAgZWxzZQorCSAgICAkRUNITyAiKioqIFRoZSBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyB0aGF0IGhhdmUgYmVlbiBkcm9wcGVkIGhlcmUgd2lsbCBiZSIKKwkgICAgJEVDSE8gIioqKiBhdXRvbWF0aWNhbGx5IGFkZGVkIHdoZW5ldmVyIGEgcHJvZ3JhbSBpcyBsaW5rZWQgd2l0aCB0aGlzIGxpYnJhcnkiCisJICAgICRFQ0hPICIqKiogb3IgaXMgZGVjbGFyZWQgdG8gLWRsb3BlbiBpdC4iCisKKwkgICAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZCIgPSBubzsgdGhlbgorCSAgICAgICRFQ0hPCisJICAgICAgJEVDSE8gIioqKiBTaW5jZSB0aGlzIGxpYnJhcnkgbXVzdCBub3QgY29udGFpbiB1bmRlZmluZWQgc3ltYm9scywiCisJICAgICAgJEVDSE8gIioqKiBiZWNhdXNlIGVpdGhlciB0aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGVtIG9yIgorCSAgICAgICRFQ0hPICIqKiogaXQgd2FzIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHdpdGggLW5vLXVuZGVmaW5lZCwiCisJICAgICAgJEVDSE8gIioqKiBsaWJ0b29sIHdpbGwgb25seSBjcmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBvZiBpdC4iCisJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCisJCW9sZGxpYnM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRsaWJleHQiCisJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKwkJYnVpbGRfb2xkX2xpYnM9eWVzCisJICAgICAgZWxzZQorCQlidWlsZF9saWJ0b29sX2xpYnM9bm8KKwkgICAgICBmaQorCSAgICBmaQorCSAgZmkKKwlmaQorCSMgRG9uZSBjaGVja2luZyBkZXBsaWJzIQorCWRlcGxpYnM9JG5ld2RlcGxpYnMKKyAgICAgIGZpCisgICAgICAjIFRpbWUgdG8gY2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29yayBmb28iCisgICAgICBjYXNlICRob3N0IGluCisJKi0qLWRhcndpbiopCisJICBuZXdkZXBsaWJzPWAkRUNITyAiWCAkbmV3ZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiWCAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisJICBkZXBsaWJzPWAkRUNITyAiWCAkZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwkgIDs7CisgICAgICBlc2FjCisKKyAgICAgICMgbW92ZSBsaWJyYXJ5IHNlYXJjaCBwYXRocyB0aGF0IGNvaW5jaWRlIHdpdGggcGF0aHMgdG8gbm90IHlldAorICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKKyAgICAgIG5ld19saWJzPQorICAgICAgZm9yIHBhdGggaW4gJG5vdGluc3RfcGF0aDsgZG8KKwljYXNlICIgJG5ld19saWJzICIgaW4KKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7CisJKikKKwkgIGNhc2UgIiAkZGVwbGlicyAiIGluCisJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCisJICAgIG5ld19saWJzPSIkbmV3X2xpYnMgLUwkcGF0aC8kb2JqZGlyIiA7OworCSAgZXNhYworCSAgOzsKKwllc2FjCisgICAgICBkb25lCisgICAgICBmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbworCWNhc2UgJGRlcGxpYiBpbgorCS1MKikKKwkgIGNhc2UgIiAkbmV3X2xpYnMgIiBpbgorCSAgKiIgJGRlcGxpYiAiKikgOzsKKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKwkgIGVzYWMKKwkgIDs7CisJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworCWVzYWMKKyAgICAgIGRvbmUKKyAgICAgIGRlcGxpYnM9IiRuZXdfbGlicyIKKworICAgICAgIyBBbGwgdGhlIGxpYnJhcnktc3BlY2lmaWMgdmFyaWFibGVzIChpbnN0YWxsX2xpYmRpciBpcyBzZXQgYWJvdmUpLgorICAgICAgbGlicmFyeV9uYW1lcz0KKyAgICAgIG9sZF9saWJyYXJ5PQorICAgICAgZGxuYW1lPQorCisgICAgICAjIFRlc3QgYWdhaW4sIHdlIG1heSBoYXZlIGRlY2lkZWQgbm90IHRvIGJ1aWxkIGl0IGFueSBtb3JlCisgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgorCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisJICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhzCisJICBoYXJkY29kZV9saWJkaXJzPQorCSAgZGVwX3JwYXRoPQorCSAgcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCIKKwkgIHRlc3QgIiRtb2RlIiAhPSByZWxpbmsgJiYgcnBhdGg9IiRjb21waWxlX3JwYXRoJHJwYXRoIgorCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCisJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorCSAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgorCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKwkJICBoYXJkY29kZV9saWJkaXJzPSIkbGliZGlyIgorCQllbHNlCisJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorCQkgIGNhc2UgJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIGluCisJCSAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQorCQkgICAgOzsKKwkJICAqKQorCQkgICAgaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisJCSAgICA7OworCQkgIGVzYWMKKwkJZmkKKwkgICAgICBlbHNlCisJCWV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKwkJZGVwX3JwYXRoPSIkZGVwX3JwYXRoICRmbGFnIgorCSAgICAgIGZpCisJICAgIGVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorCSAgICAgIGNhc2UgIiRwZXJtX3JwYXRoICIgaW4KKwkgICAgICAqIiAkbGliZGlyICIqKSA7OworCSAgICAgICopIHBlcm1fcnBhdGg9IiRwZXJtX3JwYXRoICRsaWJkaXIiIDs7CisJICAgICAgZXNhYworCSAgICBmaQorCSAgZG9uZQorCSAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQgbGliZGlycyBpbnRvIHRoZSBycGF0aC4KKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorCSAgICAgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisJICAgIGxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCisJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIjsgdGhlbgorCSAgICAgIGV2YWwgZGVwX3JwYXRoPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRcIgorCSAgICBlbHNlCisJICAgICAgZXZhbCBkZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisJICAgIGZpCisJICBmaQorCSAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KKwkgICAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KKwkgICAgcnBhdGg9CisJICAgIGZvciBkaXIgaW4gJHBlcm1fcnBhdGg7IGRvCisJICAgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorCSAgICBkb25lCisJICAgIGV2YWwgIiRydW5wYXRoX3Zhcj0nJHJwYXRoXCQkcnVucGF0aF92YXInOyBleHBvcnQgJHJ1bnBhdGhfdmFyIgorCSAgZmkKKwkgIHRlc3QgLW4gIiRkZXBfcnBhdGgiICYmIGRlcGxpYnM9IiRkZXBfcnBhdGggJGRlcGxpYnMiCisJZmkKKworCXNobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCIKKwl0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rICYmIHNobGlicGF0aD0iJGNvbXBpbGVfc2hsaWJwYXRoJHNobGlicGF0aCIKKwlpZiB0ZXN0IC1uICIkc2hsaWJwYXRoIjsgdGhlbgorCSAgZXZhbCAiJHNobGlicGF0aF92YXI9JyRzaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFyJzsgZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgorCWZpCisKKwkjIEdldCB0aGUgcmVhbCBhbmQgbGluayBuYW1lcyBvZiB0aGUgbGlicmFyeS4KKwlldmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgorCWV2YWwgbGlicmFyeV9uYW1lcz1cIiRsaWJyYXJ5X25hbWVzX3NwZWNcIgorCXNldCBkdW1teSAkbGlicmFyeV9uYW1lcworCXNoaWZ0CisJcmVhbG5hbWU9IiQxIgorCXNoaWZ0CisKKwlpZiB0ZXN0IC1uICIkc29uYW1lX3NwZWMiOyB0aGVuCisJICBldmFsIHNvbmFtZT1cIiRzb25hbWVfc3BlY1wiCisJZWxzZQorCSAgc29uYW1lPSIkcmVhbG5hbWUiCisJZmkKKwlpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhlbgorCSAgZGxuYW1lPSRzb25hbWUKKwlmaQorCisJbGliPSIkb3V0cHV0X29iamRpci8kcmVhbG5hbWUiCisJbGlua25hbWVzPQorCWZvciBsaW5rCisJZG8KKwkgIGxpbmtuYW1lcz0iJGxpbmtuYW1lcyAkbGluayIKKwlkb25lCisKKwkjIFVzZSBzdGFuZGFyZCBvYmplY3RzIGlmIHRoZXkgYXJlIHBpYworCXRlc3QgLXogIiRwaWNfZmxhZyIgJiYgbGlib2Jqcz1gJEVDSE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorCXRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CisKKwlkZWxmaWxlcz0KKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCisJICAkb3B0X2RyeV9ydW4gfHwgY3AgIiRleHBvcnRfc3ltYm9scyIgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCisJICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudWV4cCIKKwkgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzIgorCWZpCisKKwlvcmlnX2V4cG9ydF9zeW1ib2xzPQorCWNhc2UgJGhvc3Rfb3MgaW4KKwljeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQorCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCisJICAgICMgZXhwb3J0aW5nIHVzaW5nIHVzZXIgc3VwcGxpZWQgc3ltZmlsZQorCSAgICBpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgIT0geEVYUE9SVFM7IHRoZW4KKwkgICAgICAjIGFuZCBpdCdzIE5PVCBhbHJlYWR5IGEgLmRlZiBmaWxlLiBNdXN0IGZpZ3VyZSBvdXQKKwkgICAgICAjIHdoaWNoIG9mIHRoZSBnaXZlbiBzeW1ib2xzIGFyZSBkYXRhIHN5bWJvbHMgYW5kIHRhZworCSAgICAgICMgdGhlbSBhcyBzdWNoLiBTbywgdHJpZ2dlciB1c2Ugb2YgZXhwb3J0X3N5bWJvbHNfY21kcy4KKwkgICAgICAjIGV4cG9ydF9zeW1ib2xzIGdldHMgcmVhc3NpZ25lZCBpbnNpZGUgdGhlICJwcmVwYXJlCisJICAgICAgIyB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzIiBpZiBzdGF0ZW1lbnQsIHNvIHRoZQorCSAgICAgICMgaW5jbHVkZV9leHBzeW1zIGxvZ2ljIHN0aWxsIHdvcmtzLgorCSAgICAgIG9yaWdfZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKKwkgICAgICBleHBvcnRfc3ltYm9scz0KKwkgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9eWVzCisJICAgIGZpCisJICBmaQorCSAgOzsKKwllc2FjCisKKwkjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scworCWlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KKwkgIGlmIHRlc3QgIiRhbHdheXNfZXhwb3J0X3N5bWJvbHMiID0geWVzIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKwkgICAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyIKKwkgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmV4cCIKKwkgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKKwkgICAgY21kcz0kZXhwb3J0X3N5bWJvbHNfY21kcworCSAgICBzYXZlX2lmcz0iJElGUyI7IElGUz0nficKKwkgICAgZm9yIGNtZCBpbiAkY21kczsgZG8KKwkgICAgICBJRlM9IiRzYXZlX2lmcyIKKwkgICAgICBldmFsIGNtZD1cIiRjbWRcIgorCSAgICAgIGZ1bmNfbGVuICIgJGNtZCIKKwkgICAgICBsZW49JGZ1bmNfbGVuX3Jlc3VsdAorCSAgICAgIGlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgorCQlmdW5jX3Nob3dfZXZhbCAiJGNtZCIgJ2V4aXQgJD8nCisJCXNraXBwZWRfZXhwb3J0PWZhbHNlCisJICAgICAgZWxzZQorCQkjIFRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gZXhlY3V0ZSBpbiBvbmUgc3RlcC4KKwkJZnVuY192ZXJib3NlICJ1c2luZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlIGZvciBleHBvcnQgbGlzdC4uLiIKKwkJc2tpcHBlZF9leHBvcnQ9OgorCQkjIEJyZWFrIG91dCBlYXJseSwgb3RoZXJ3aXNlIHNraXBwZWRfZXhwb3J0IG1heSBiZQorCQkjIHNldCB0byBmYWxzZSBieSBhIGxhdGVyIGJ1dCBzaG9ydGVyIGNtZC4KKwkJYnJlYWsKKwkgICAgICBmaQorCSAgICBkb25lCisJICAgIElGUz0iJHNhdmVfaWZzIgorCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiI7IHRoZW4KKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkZXhwb3J0X3N5bWJvbHMiID4gIiR7ZXhwb3J0X3N5bWJvbHN9VCInCisJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAiJHtleHBvcnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xzIicKKwkgICAgZmkKKwkgIGZpCisJZmkKKworCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KKwkgIHRtcF9leHBvcnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgorCSAgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0iJG9yaWdfZXhwb3J0X3N5bWJvbHMiCisJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zIiB8ICRYc2VkIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKKwlmaQorCisJaWYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KKwkgICMgVGhlIGdpdmVuIGV4cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0byBiZSBmaWx0ZXJlZCwgc28gZmlsdGVyIGl0LgorCSAgZnVuY192ZXJib3NlICJmaWx0ZXIgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIHRvIHRhZyBEQVRBIGV4cG9ydHMiCisJICAjIEZJWE1FOiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgcG90ZW50aWFsbHkgY29udGFpbnMgbG90cyBvZgorCSAgIyAncycgY29tbWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdOVSBzZWQgc2hvdWxkIGJlIGZpbmUKKwkgICMgdGhvdWdoLiBBbHNvLCB0aGUgZmlsdGVyIHNjYWxlcyBzdXBlcmxpbmVhcmx5IHdpdGggdGhlIG51bWJlciBvZgorCSAgIyBnbG9iYWwgdmFyaWFibGVzLiBqb2luKDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IHVuZm9ydHVuYXRlbHkKKwkgICMgaXNuJ3QgYSBibGVzc2VkIHRvb2wuCisJICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZSAnL1sgLF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xeXDEkfFwxXDJ8LCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIKKwkgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciIKKwkgIGV4cG9ydF9zeW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgorCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWYgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIDwgJG9yaWdfZXhwb3J0X3N5bWJvbHMgPiAkZXhwb3J0X3N5bWJvbHMKKwlmaQorCisJdG1wX2RlcGxpYnM9CisJZm9yIHRlc3RfZGVwbGliIGluICRkZXBsaWJzOyBkbworCSAgY2FzZSAiICRjb252ZW5pZW5jZSAiIGluCisJICAqIiAkdGVzdF9kZXBsaWIgIiopIDs7CisJICAqKQorCSAgICB0bXBfZGVwbGlicz0iJHRtcF9kZXBsaWJzICR0ZXN0X2RlcGxpYiIKKwkgICAgOzsKKwkgIGVzYWMKKwlkb25lCisJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgorCisJaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgorCSAgaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIiAmJgorCSAgICB0ZXN0ICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiA9IHllcyAmJgorCSAgICB0ZXN0IC16ICIkbGlib2JqcyI7IHRoZW4KKwkgICAgIyBleHRyYWN0IHRoZSBhcmNoaXZlcywgc28gd2UgaGF2ZSBvYmplY3RzIHRvIGxpc3QuCisJICAgICMgVE9ETzogY291bGQgb3B0aW1pemUgdGhpcyB0byBqdXN0IGV4dHJhY3Qgb25lIGFyY2hpdmUuCisJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQorCSAgZmkKKwkgIGlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKwkgICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpzCisJICAgIGV2YWwgbGlib2Jqcz1cIlwkbGlib2JqcyAkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgorCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorCSAgZWxzZQorCSAgICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorCSAgICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKworCSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKKwkgICAgbGlib2Jqcz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CisJICBmaQorCWZpCisKKwlpZiB0ZXN0ICIkdGhyZWFkX3NhZmUiID0geWVzICYmIHRlc3QgLW4gIiR0aHJlYWRfc2FmZV9mbGFnX3NwZWMiOyB0aGVuCisJICBldmFsIGZsYWc9XCIkdGhyZWFkX3NhZmVfZmxhZ19zcGVjXCIKKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkZmxhZyIKKwlmaQorCisJIyBNYWtlIGEgYmFja3VwIG9mIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IHdoZW4gcmVsaW5raW5nCisJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRSTSAke3JlYWxuYW1lfVUgJiYgJE1WICRyZWFsbmFtZSAke3JlYWxuYW1lfVUpJyB8fCBleGl0ICQ/CisJZmkKKworCSMgRG8gZWFjaCBvZiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0IC1uICIkbW9kdWxlX2NtZHMiIDsgdGhlbgorCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkbW9kdWxlX2V4cHN5bV9jbWRzIjsgdGhlbgorCSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfZXhwc3ltX2NtZHNcIgorCSAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMKKwkgIGVsc2UKKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkbW9kdWxlX2NtZHNcIgorCSAgICBjbWRzPSRtb2R1bGVfY21kcworCSAgZmkKKwllbHNlCisJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9jbWRzIjsgdGhlbgorCSAgICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2V4cHN5bV9jbWRzXCIKKwkgICAgY21kcz0kYXJjaGl2ZV9leHBzeW1fY21kcworCSAgZWxzZQorCSAgICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2NtZHNcIgorCSAgICBjbWRzPSRhcmNoaXZlX2NtZHMKKwkgIGZpCisJZmkKKworCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYKKwkgICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiICYmCisJICAgbGVuPSRmdW5jX2xlbl9yZXN1bHQgJiYKKwkgICB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KKwkgIDoKKwllbHNlCisJICAjIFRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGluayBwaWVjZXdpc2UKKwkgICMgb3IsIGlmIHVzaW5nIEdOVSBsZCBhbmQgc2tpcHBlZF9leHBvcnQgaXMgbm90IDosIHVzZSBhIGxpbmtlcgorCSAgIyBzY3JpcHQuCisKKwkgICMgU2F2ZSB0aGUgdmFsdWUgb2YgJG91dHB1dCBhbmQgJGxpYm9ianMgYmVjYXVzZSB3ZSB3YW50IHRvCisJICAjIHVzZSB0aGVtIGxhdGVyLiAgSWYgd2UgaGF2ZSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgd2UKKwkgICMgd2FudCB0byB1c2Ugc2F2ZV9saWJvYmpzIGFzIGl0IHdhcyBiZWZvcmUKKwkgICMgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgd2FzIGV4cGFuZGVkLCBiZWNhdXNlIHdlIGNhbid0CisJICAjIGFzc3VtZSB0aGUgbGlua2VyIHVuZGVyc3RhbmRzIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLgorCSAgIyBUaGlzIG1heSBoYXZlIHRvIGJlIHJldmlzaXRlZCwgaW4gY2FzZSB0b28gbWFueQorCSAgIyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgZ2V0IGxpbmtlZCBpbiBhbmQgZW5kIHVwIGV4Y2VlZGluZworCSAgIyB0aGUgc3BlYy4KKwkgIGlmIHRlc3QgLXogIiRjb252ZW5pZW5jZSIgfHwgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMKKwkgIGZpCisJICBzYXZlX291dHB1dD0kb3V0cHV0CisJICBvdXRwdXRfbGE9YCRFQ0hPICJYJG91dHB1dCIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKKworCSAgIyBDbGVhciB0aGUgcmVsb2FkYWJsZSBvYmplY3QgY3JlYXRpb24gY29tbWFuZCBxdWV1ZSBhbmQKKwkgICMgaW5pdGlhbGl6ZSBrIHRvIG9uZS4KKwkgIHRlc3RfY21kcz0KKwkgIGNvbmNhdF9jbWRzPQorCSAgb2JqbGlzdD0KKwkgIGxhc3Rfcm9iaj0KKwkgIGs9MQorCisJICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKwkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9Lmxua3NjcmlwdAorCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIEdOVSBsZCBzY3JpcHQ6ICRvdXRwdXQiCisJICAgICRFQ0hPICdJTlBVVCAoJyA+ICRvdXRwdXQKKwkgICAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCisJICAgIGRvCisJICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKKwkgICAgZG9uZQorCSAgICAkRUNITyAnKScgPj4gJG91dHB1dAorCSAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRvdXRwdXQiCisJICBlbGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAiWCRmaWxlX2xpc3Rfc3BlYyIgIT0gWDsgdGhlbgorCSAgICBvdXRwdXQ9JHtvdXRwdXRfb2JqZGlyfS8ke291dHB1dF9sYX0ubG5rCisJICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgbGlua2VyIGlucHV0IGZpbGUgbGlzdDogJG91dHB1dCIKKwkgICAgOiA+ICRvdXRwdXQKKwkgICAgc2V0IHggJHNhdmVfbGlib2JqcworCSAgICBzaGlmdAorCSAgICBmaXJzdG9iaj0KKwkgICAgaWYgdGVzdCAiJGNvbXBpbGVyX25lZWRzX29iamVjdCIgPSB5ZXM7IHRoZW4KKwkgICAgICBmaXJzdG9iaj0iJDEgIgorCSAgICAgIHNoaWZ0CisJICAgIGZpCisJICAgIGZvciBvYmoKKwkgICAgZG8KKwkgICAgICAkRUNITyAiJG9iaiIgPj4gJG91dHB1dAorCSAgICBkb25lCisJICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKKwkgICAgb3V0cHV0PSRmaXJzdG9ialwiJGZpbGVfbGlzdF9zcGVjJG91dHB1dFwiCisJICBlbHNlCisJICAgIGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiOyB0aGVuCisJICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4uLiIKKwkgICAgICBvdXRwdXQ9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKKwkgICAgICBldmFsIHRlc3RfY21kcz1cIiRyZWxvYWRfY21kc1wiCisJICAgICAgZnVuY19sZW4gIiAkdGVzdF9jbWRzIgorCSAgICAgIGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAorCSAgICAgIGxlbj0kbGVuMAorCisJICAgICAgIyBMb29wIG92ZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBiZSBsaW5rZWQuCisJICAgICAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCisJICAgICAgZG8KKwkJZnVuY19sZW4gIiAkb2JqIgorCQlmdW5jX2FyaXRoICRsZW4gKyAkZnVuY19sZW5fcmVzdWx0CisJCWxlbj0kZnVuY19hcml0aF9yZXN1bHQKKwkJaWYgdGVzdCAiWCRvYmpsaXN0IiA9IFggfHwKKwkJICAgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCisJCSAgZnVuY19hcHBlbmQgb2JqbGlzdCAiICRvYmoiCisJCWVsc2UKKwkJICAjIFRoZSBjb21tYW5kICR0ZXN0X2NtZHMgaXMgYWxtb3N0IHRvbyBsb25nLCBhZGQgYQorCQkgICMgY29tbWFuZCB0byB0aGUgcXVldWUuCisJCSAgaWYgdGVzdCAiJGsiIC1lcSAxIDsgdGhlbgorCQkgICAgIyBUaGUgZmlyc3QgZmlsZSBkb2Vzbid0IGhhdmUgYSBwcmV2aW91cyBjb21tYW5kIHRvIGFkZC4KKwkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCIkcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ialwiCisJCSAgZWxzZQorCQkgICAgIyBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9iamVjdCBmaWxlcyB3aWxsIGxpbmsgaW4KKwkJICAgICMgdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCisJCSAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc34kcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ian5cJFJNICRsYXN0X3JvYmpcIgorCQkgIGZpCisJCSAgbGFzdF9yb2JqPSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CisJCSAgZnVuY19hcml0aCAkayArIDEKKwkJICBrPSRmdW5jX2FyaXRoX3Jlc3VsdAorCQkgIG91dHB1dD0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAorCQkgIG9iamxpc3Q9JG9iagorCQkgIGZ1bmNfbGVuICIgJGxhc3Rfcm9iaiIKKwkJICBmdW5jX2FyaXRoICRsZW4wICsgJGZ1bmNfbGVuX3Jlc3VsdAorCQkgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQKKwkJZmkKKwkgICAgICBkb25lCisJICAgICAgIyBIYW5kbGUgdGhlIHJlbWFpbmluZyBvYmplY3RzIGJ5IGNyZWF0aW5nIG9uZSBsYXN0CisJICAgICAgIyByZWxvYWRhYmxlIG9iamVjdCBmaWxlLiAgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QKKwkgICAgICAjIGZpbGVzIHdpbGwgbGluayBpbiB0aGUgbGFzdCBvbmUgY3JlYXRlZC4KKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpcIgorCSAgICAgIGlmIHRlc3QgLW4gIiRsYXN0X3JvYmoiOyB0aGVuCisJICAgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9flwkUk0gJGxhc3Rfcm9ialwiCisJICAgICAgZmkKKwkgICAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRvdXRwdXQiCisKKwkgICAgZWxzZQorCSAgICAgIG91dHB1dD0KKwkgICAgZmkKKworCSAgICBpZiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhlbgorCSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCisJICAgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmV4cCIKKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRleHBvcnRfc3ltYm9scworCSAgICAgIGxpYm9ianM9JG91dHB1dAorCSAgICAgICMgQXBwZW5kIHRoZSBjb21tYW5kIHRvIGNyZWF0ZSB0aGUgZXhwb3J0IGZpbGUuCisJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+CisJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHMkZXhwb3J0X3N5bWJvbHNfY21kc1wiCisJICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rfcm9iaiI7IHRoZW4KKwkJZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+XCRSTSAkbGFzdF9yb2JqXCIKKwkgICAgICBmaQorCSAgICBmaQorCisJICAgIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmCisJICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBhIHRlbXBvcmFyeSByZWxvYWRhYmxlIG9iamVjdCBmaWxlOiAkb3V0cHV0IgorCisJICAgICMgTG9vcCB0aHJvdWdoIHRoZSBjb21tYW5kcyBnZW5lcmF0ZWQgYWJvdmUgYW5kIGV4ZWN1dGUgdGhlbS4KKwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisJICAgIGZvciBjbWQgaW4gJGNvbmNhdF9jbWRzOyBkbworCSAgICAgIElGUz0iJHNhdmVfaWZzIgorCSAgICAgICRvcHRfc2lsZW50IHx8IHsKKwkJICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRjbWQiCisJCSAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgorCSAgICAgIH0KKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZCIgfHwgeworCQlsdF9leGl0PSQ/CisKKwkJIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0CisJCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorCQkgICggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiBcCisJCSAgICAkUk0gIiR7cmVhbG5hbWV9VCIgJiYgXAorCQkgICAgJE1WICIke3JlYWxuYW1lfVUiICIkcmVhbG5hbWUiICkKKwkJZmkKKworCQlleGl0ICRsdF9leGl0CisJICAgICAgfQorCSAgICBkb25lCisJICAgIElGUz0iJHNhdmVfaWZzIgorCisJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkZXhwb3J0X3N5bWJvbHMiID4gIiR7ZXhwb3J0X3N5bWJvbHN9VCInCisJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAiJHtleHBvcnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xzIicKKwkgICAgZmkKKwkgIGZpCisKKyAgICAgICAgICBpZiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhlbgorCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCisJICAgICAgdG1wX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCisJICAgICAgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0iJG9yaWdfZXhwb3J0X3N5bWJvbHMiCisJICAgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCB8ICRTUDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCisJICAgIGZpCisKKwkgICAgaWYgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisJICAgICAgIyBUaGUgZ2l2ZW4gZXhwb3J0c19zeW1ib2xzIGZpbGUgaGFzIHRvIGJlIGZpbHRlcmVkLCBzbyBmaWx0ZXIgaXQuCisJICAgICAgZnVuY192ZXJib3NlICJmaWx0ZXIgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIHRvIHRhZyBEQVRBIGV4cG9ydHMiCisJICAgICAgIyBGSVhNRTogJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIHBvdGVudGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YKKwkgICAgICAjICdzJyBjb21tYW5kcyB3aGljaCBub3QgYWxsIHNlZHMgY2FuIGhhbmRsZS4gR05VIHNlZCBzaG91bGQgYmUgZmluZQorCSAgICAgICMgdGhvdWdoLiBBbHNvLCB0aGUgZmlsdGVyIHNjYWxlcyBzdXBlcmxpbmVhcmx5IHdpdGggdGhlIG51bWJlciBvZgorCSAgICAgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigxKSB3b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5CisJICAgICAgIyBpc24ndCBhIGJsZXNzZWQgdG9vbC4KKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZSAnL1sgLF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xeXDEkfFwxXDJ8LCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIKKwkgICAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCisJICAgICAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmCisJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWYgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIDwgJG9yaWdfZXhwb3J0X3N5bWJvbHMgPiAkZXhwb3J0X3N5bWJvbHMKKwkgICAgZmkKKwkgIGZpCisKKwkgIGxpYm9ianM9JG91dHB1dAorCSAgIyBSZXN0b3JlIHRoZSB2YWx1ZSBvZiBvdXRwdXQuCisJICBvdXRwdXQ9JHNhdmVfb3V0cHV0CisKKwkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSIgJiYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKKwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKwkgIGZpCisJICAjIEV4cGFuZCB0aGUgbGlicmFyeSBsaW5raW5nIGNvbW1hbmRzIGFnYWluIHRvIHJlc2V0IHRoZQorCSAgIyB2YWx1ZSBvZiAkbGlib2JqcyBmb3IgcGllY2V3aXNlIGxpbmtpbmcuCisKKwkgICMgRG8gZWFjaCBvZiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCisJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KKwkgICAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMKKwkgICAgZWxzZQorCSAgICAgIGNtZHM9JG1vZHVsZV9jbWRzCisJICAgIGZpCisJICBlbHNlCisJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGFyY2hpdmVfZXhwc3ltX2NtZHMiOyB0aGVuCisJICAgICAgY21kcz0kYXJjaGl2ZV9leHBzeW1fY21kcworCSAgICBlbHNlCisJICAgICAgY21kcz0kYXJjaGl2ZV9jbWRzCisJICAgIGZpCisJICBmaQorCWZpCisKKwlpZiB0ZXN0IC1uICIkZGVsZmlsZXMiOyB0aGVuCisJICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0byByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzIHRvICRjbWRzLgorCSAgZXZhbCBjbWRzPVwiXCRjbWRzflwkUk0gJGRlbGZpbGVzXCIKKwlmaQorCisJIyBBZGQgYW55IG9iamVjdHMgZnJvbSBwcmVsb2FkZWQgY29udmVuaWVuY2UgbGlicmFyaWVzCisJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCisJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisKKwkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHByZWZpbGVzCisJICBsaWJvYmpzPSIkbGlib2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKKwkgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CisJZmkKKworCXNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworCWZvciBjbWQgaW4gJGNtZHM7IGRvCisJICBJRlM9IiRzYXZlX2lmcyIKKwkgIGV2YWwgY21kPVwiJGNtZFwiCisJICAkb3B0X3NpbGVudCB8fCB7CisJICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJGNtZCIKKwkgICAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgorCSAgfQorCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWQiIHx8IHsKKwkgICAgbHRfZXhpdD0kPworCisJICAgICMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAorCSAgICBpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKwkgICAgICAoIGNkICIkb3V0cHV0X29iamRpciIgJiYgXAorCSAgICAgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwKKwkJJE1WICIke3JlYWxuYW1lfVUiICIkcmVhbG5hbWUiICkKKwkgICAgZmkKKworCSAgICBleGl0ICRsdF9leGl0CisJICB9CisJZG9uZQorCUlGUz0iJHNhdmVfaWZzIgorCisJIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0CisJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRSTSAke3JlYWxuYW1lfVQgJiYgJE1WICRyZWFsbmFtZSAke3JlYWxuYW1lfVQgJiYgJE1WICR7cmVhbG5hbWV9VSAkcmVhbG5hbWUpJyB8fCBleGl0ICQ/CisKKwkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KKwkgICAgaWYgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorCSAgICAgIGZ1bmNfc2hvd19ldmFsICcke1JNfXIgIiRnZW50b3AiJworCSAgICBmaQorCSAgZmkKKworCSAgZXhpdCAkRVhJVF9TVUNDRVNTCisJZmkKKworCSMgQ3JlYXRlIGxpbmtzIHRvIHRoZSByZWFsIGxpYnJhcnkuCisJZm9yIGxpbmtuYW1lIGluICRsaW5rbmFtZXM7IGRvCisJICBpZiB0ZXN0ICIkcmVhbG5hbWUiICE9ICIkbGlua25hbWUiOyB0aGVuCisJICAgIGZ1bmNfc2hvd19ldmFsICcoY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiAkUk0gIiRsaW5rbmFtZSIgJiYgJExOX1MgIiRyZWFsbmFtZSIgIiRsaW5rbmFtZSIpJyAnZXhpdCAkPycKKwkgIGZpCisJZG9uZQorCisJIyBJZiAtbW9kdWxlIG9yIC1leHBvcnQtZHluYW1pYyB3YXMgc3BlY2lmaWVkLCBzZXQgdGhlIGRsbmFtZS4KKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyB8fCB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0geWVzOyB0aGVuCisJICAjIE9uIGFsbCBrbm93biBvcGVyYXRpbmcgc3lzdGVtcywgdGhlc2UgYXJlIGlkZW50aWNhbC4KKwkgIGRsbmFtZT0iJHNvbmFtZSIKKwlmaQorICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBvYmopCisgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgorCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgorICAgICAgZmkKKworICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgorICAgICAgKlwgLWwqIHwgKlwgLUwqKQorCWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBvYmplY3RzIiA7OworICAgICAgZXNhYworCisgICAgICB0ZXN0IC1uICIkcnBhdGgiICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgorCisgICAgICB0ZXN0IC1uICIkeHJwYXRoIiAmJiBcCisJZnVuY193YXJuaW5nICJcYC1SJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgorCisgICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mbycgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKKworICAgICAgdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisKKyAgICAgIGNhc2UgJG91dHB1dCBpbgorICAgICAgKi5sbykKKwl0ZXN0IC1uICIkb2JqcyRvbGRfZGVwbGlicyIgJiYgXAorCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGJ1aWxkIGxpYnJhcnkgb2JqZWN0IFxgJG91dHB1dCcgZnJvbSBub24tbGlidG9vbCBvYmplY3RzIgorCisJbGlib2JqPSRvdXRwdXQKKwlmdW5jX2xvMm8gIiRsaWJvYmoiCisJb2JqPSRmdW5jX2xvMm9fcmVzdWx0CisJOzsKKyAgICAgICopCisJbGlib2JqPQorCW9iaj0iJG91dHB1dCIKKwk7OworICAgICAgZXNhYworCisgICAgICAjIERlbGV0ZSB0aGUgb2xkIG9iamVjdHMuCisgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRvYmogJGxpYm9iagorCisgICAgICAjIE9iamVjdHMgZnJvbSBjb252ZW5pZW5jZSBsaWJyYXJpZXMuICBUaGlzIGFzc3VtZXMKKyAgICAgICMgc2luZ2xlLXZlcnNpb24gY29udmVuaWVuY2UgbGlicmFyaWVzLiAgV2hlbmV2ZXIgd2UgY3JlYXRlCisgICAgICAjIGRpZmZlcmVudCBvbmVzIGZvciBQSUMvbm9uLVBJQywgdGhpcyB3ZSdsbCBoYXZlIHRvIGR1cGxpY2F0ZQorICAgICAgIyB0aGUgZXh0cmFjdGlvbi4KKyAgICAgIHJlbG9hZF9jb252X29ianM9CisgICAgICBnZW50b3A9CisgICAgICAjIHJlbG9hZF9jbWRzIHJ1bnMgJExEIGRpcmVjdGx5LCBzbyBsZXQgdXMgZ2V0IHJpZCBvZgorICAgICAgIyAtV2wgZnJvbSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBhbmQgaG9wZSB3ZSBjYW4gZ2V0IGJ5IHdpdGgKKyAgICAgICMgdHVybmluZyBjb21tYSBpbnRvIHNwYWNlLi4KKyAgICAgIHdsPQorCisgICAgICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCisJaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorCSAgZXZhbCB0bXBfd2hvbGVfYXJjaGl2ZV9mbGFncz1cIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCisJICByZWxvYWRfY29udl9vYmpzPSRyZWxvYWRfb2Jqc1wgYCRFQ0hPICJYJHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzIiB8ICRYc2VkIC1lICdzfCx8IHxnJ2AKKwllbHNlCisJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b2JqfXgiCisJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKworCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCisJICByZWxvYWRfY29udl9vYmpzPSIkcmVsb2FkX29ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisJZmkKKyAgICAgIGZpCisKKyAgICAgICMgQ3JlYXRlIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgorICAgICAgcmVsb2FkX29ianM9IiRvYmpzJG9sZF9kZXBsaWJzICJgJEVDSE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSQnL2QnIC1lICcvXC5saWIkL2QnIC1lICIkbG8ybyIgfCAkTkwyU1BgIiAkcmVsb2FkX2NvbnZfb2JqcyIgIyMjIHRlc3RzdWl0ZTogc2tpcCBuZXN0ZWQgcXVvdGluZyB0ZXN0CisKKyAgICAgIG91dHB1dD0iJG9iaiIKKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcmVsb2FkX2NtZHMiICdleGl0ICQ/JworCisgICAgICAjIEV4aXQgaWYgd2UgYXJlbid0IGRvaW5nIGEgbGlicmFyeSBvYmplY3QgZmlsZS4KKyAgICAgIGlmIHRlc3QgLXogIiRsaWJvYmoiOyB0aGVuCisJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKwkgIGZ1bmNfc2hvd19ldmFsICcke1JNfXIgIiRnZW50b3AiJworCWZpCisKKwlleGl0ICRFWElUX1NVQ0NFU1MKKyAgICAgIGZpCisKKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgorCWlmIHRlc3QgLW4gIiRnZW50b3AiOyB0aGVuCisJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKwlmaQorCisJIyBDcmVhdGUgYW4gaW52YWxpZCBsaWJ0b29sIG9iamVjdCBpZiBubyBQSUMsIHNvIHRoYXQgd2UgZG9uJ3QKKwkjIGFjY2lkZW50YWxseSBsaW5rIGl0IGludG8gYSBwcm9ncmFtLgorCSMgJHNob3cgImVjaG8gdGltZXN0YW1wID4gJGxpYm9iaiIKKwkjICRvcHRfZHJ5X3J1biB8fCBldmFsICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiIHx8IGV4aXQgJD8KKwlleGl0ICRFWElUX1NVQ0NFU1MKKyAgICAgIGZpCisKKyAgICAgIGlmIHRlc3QgLW4gIiRwaWNfZmxhZyIgfHwgdGVzdCAiJHBpY19tb2RlIiAhPSBkZWZhdWx0OyB0aGVuCisJIyBPbmx5IGRvIGNvbW1hbmRzIGlmIHdlIHJlYWxseSBoYXZlIGRpZmZlcmVudCBQSUMgb2JqZWN0cy4KKwlyZWxvYWRfb2Jqcz0iJGxpYm9ianMgJHJlbG9hZF9jb252X29ianMiCisJb3V0cHV0PSIkbGlib2JqIgorCWZ1bmNfZXhlY3V0ZV9jbWRzICIkcmVsb2FkX2NtZHMiICdleGl0ICQ/JworICAgICAgZmkKKworICAgICAgaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKwlmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKyAgICAgIGZpCisKKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworICAgICAgOzsKKworICAgIHByb2cpCisgICAgICBjYXNlICRob3N0IGluCisJKmN5Z3dpbiopIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG91dHB1dCIKKwkgICAgICAgICAgb3V0cHV0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuZXhlOzsKKyAgICAgIGVzYWMKKyAgICAgIHRlc3QgLW4gIiR2aW5mbyIgJiYgXAorCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIKKworICAgICAgdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIgorCisgICAgICB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXMgXAorICAgICAgICAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0gdW5rbm93biBcCisJJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiA9IHVua25vd24gXAorCSYmIHRlc3QgIiRkbG9wZW5fc2VsZl9zdGF0aWMiID0gdW5rbm93biAmJiBcCisJICBmdW5jX3dhcm5pbmcgIlxgTFRfSU5JVChbZGxvcGVuXSknIG5vdCB1c2VkLiBBc3N1bWluZyBubyBkbG9wZW4gc3VwcG9ydC4iCisKKyAgICAgIGNhc2UgJGhvc3QgaW4KKyAgICAgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKwkjIE9uIFJoYXBzb2R5IHJlcGxhY2UgdGhlIEMgbGlicmFyeSBpcyB0aGUgU3lzdGVtIGZyYW1ld29yaworCWNvbXBpbGVfZGVwbGlicz1gJEVDSE8gIlggJGNvbXBpbGVfZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAorCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCisJOzsKKyAgICAgIGVzYWMKKworICAgICAgY2FzZSAkaG9zdCBpbgorICAgICAgKi0qLWRhcndpbiopCisJIyBEb24ndCBhbGxvdyBsYXp5IGxpbmtpbmcsIGl0IGJyZWFrcyBDKysgZ2xvYmFsIGNvbnN0cnVjdG9ycworCSMgQnV0IGlzIHN1cHBvc2VkbHkgZml4ZWQgb24gMTAuNCBvciBsYXRlciAoeWF5ISkuCisJaWYgdGVzdCAiJHRhZ25hbWUiID0gQ1hYIDsgdGhlbgorCSAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVC0xMC4wfSBpbgorCSAgICAxMC5bMDEyM10pCisJICAgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKKwkgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAke3dsfS1iaW5kX2F0X2xvYWQiCisJICAgIDs7CisJICBlc2FjCisJZmkKKwkjIFRpbWUgdG8gY2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29yayBmb28iCisJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiWCAkY29tcGlsZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorCTs7CisgICAgICBlc2FjCisKKworICAgICAgIyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0CisgICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2ggbGlzdAorICAgICAgbmV3X2xpYnM9CisgICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbworCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorCSoiIC1MJHBhdGgvJG9iamRpciAiKikgOzsKKwkqKQorCSAgY2FzZSAiICRjb21waWxlX2RlcGxpYnMgIiBpbgorCSAgKiIgLUwkcGF0aC8kb2JqZGlyICIqKQorCSAgICBuZXdfbGlicz0iJG5ld19saWJzIC1MJHBhdGgvJG9iamRpciIgOzsKKwkgIGVzYWMKKwkgIDs7CisJZXNhYworICAgICAgZG9uZQorICAgICAgZm9yIGRlcGxpYiBpbiAkY29tcGlsZV9kZXBsaWJzOyBkbworCWNhc2UgJGRlcGxpYiBpbgorCS1MKikKKwkgIGNhc2UgIiAkbmV3X2xpYnMgIiBpbgorCSAgKiIgJGRlcGxpYiAiKikgOzsKKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKwkgIGVzYWMKKwkgIDs7CisJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworCWVzYWMKKyAgICAgIGRvbmUKKyAgICAgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19saWJzIgorCisKKyAgICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkY29tcGlsZV9kZXBsaWJzIgorICAgICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGZpbmFsaXplX2RlcGxpYnMiCisKKyAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0aGVuCisJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55IHJwYXRoIGZsYWdzLCB0aGVuIGFkZCB0aGVtLgorCWZvciBsaWJkaXIgaW4gJHJwYXRoICR4cnBhdGg7IGRvCisJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAtcnBhdGguCisJICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgorCSAgKiIgJGxpYmRpciAiKikgOzsKKwkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKKwkgIGVzYWMKKwlkb25lCisgICAgICBmaQorCisgICAgICAjIE5vdyBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRocworICAgICAgcnBhdGg9CisgICAgICBoYXJkY29kZV9saWJkaXJzPQorICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aCAkZmluYWxpemVfcnBhdGg7IGRvCisJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KKwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKwkgICAgZWxzZQorCSAgICAgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KKwkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorCSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiKikKKwkJOzsKKwkgICAgICAqKQorCQloYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKKwkJOzsKKwkgICAgICBlc2FjCisJICAgIGZpCisJICBlbHNlCisJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKwkgICAgcnBhdGg9IiRycGF0aCAkZmxhZyIKKwkgIGZpCisJZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisJICBjYXNlICIkcGVybV9ycGF0aCAiIGluCisJICAqIiAkbGliZGlyICIqKSA7OworCSAgKikgcGVybV9ycGF0aD0iJHBlcm1fcnBhdGggJGxpYmRpciIgOzsKKwkgIGVzYWMKKwlmaQorCWNhc2UgJGhvc3QgaW4KKwkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotY2VnY2MqKQorCSAgdGVzdGJpbmRpcj1gJHtFQ0hPfSAiJGxpYmRpciIgfCAke1NFRH0gLWUgJ3MqL2xpYiQqL2JpbionYAorCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisJICAqIjokbGliZGlyOiIqKSA7OworCSAgOjopIGRsbHNlYXJjaHBhdGg9JGxpYmRpcjs7CisJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokbGliZGlyIjs7CisJICBlc2FjCisJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OworCSAgOjopIGRsbHNlYXJjaHBhdGg9JHRlc3RiaW5kaXI7OworCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JHRlc3RiaW5kaXIiOzsKKwkgIGVzYWMKKwkgIDs7CisJZXNhYworICAgICAgZG9uZQorICAgICAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQgbGliZGlycyBpbnRvIHRoZSBycGF0aC4KKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKwlsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJzIgorCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorICAgICAgZmkKKyAgICAgIGNvbXBpbGVfcnBhdGg9IiRycGF0aCIKKworICAgICAgcnBhdGg9CisgICAgICBoYXJkY29kZV9saWJkaXJzPQorICAgICAgZm9yIGxpYmRpciBpbiAkZmluYWxpemVfcnBhdGg7IGRvCisJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KKwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKwkgICAgZWxzZQorCSAgICAgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KKwkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorCSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiKikKKwkJOzsKKwkgICAgICAqKQorCQloYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKKwkJOzsKKwkgICAgICBlc2FjCisJICAgIGZpCisJICBlbHNlCisJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKwkgICAgcnBhdGg9IiRycGF0aCAkZmxhZyIKKwkgIGZpCisJZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisJICBjYXNlICIkZmluYWxpemVfcGVybV9ycGF0aCAiIGluCisJICAqIiAkbGliZGlyICIqKSA7OworCSAgKikgZmluYWxpemVfcGVybV9ycGF0aD0iJGZpbmFsaXplX3Blcm1fcnBhdGggJGxpYmRpciIgOzsKKwkgIGVzYWMKKwlmaQorICAgICAgZG9uZQorICAgICAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQgbGliZGlycyBpbnRvIHRoZSBycGF0aC4KKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKwlsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJzIgorCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorICAgICAgZmkKKyAgICAgIGZpbmFsaXplX3JwYXRoPSIkcnBhdGgiCisKKyAgICAgIGlmIHRlc3QgLW4gIiRsaWJvYmpzIiAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisJIyBUcmFuc2Zvcm0gYWxsIHRoZSBsaWJyYXJ5IG9iamVjdHMgaW50byBzdGFuZGFyZCBvYmplY3RzLgorCWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCisJZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorICAgICAgZmkKKworICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRvdXRwdXRuYW1lIiAiQFBST0dSQU1AIiAibm8iCisKKyAgICAgICMgdGVtcGxhdGUgcHJlbGlua2luZyBzdGVwCisgICAgICBpZiB0ZXN0IC1uICIkcHJlbGlua19jbWRzIjsgdGhlbgorCWZ1bmNfZXhlY3V0ZV9jbWRzICIkcHJlbGlua19jbWRzIiAnZXhpdCAkPycKKyAgICAgIGZpCisKKyAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPXllcworICAgICAgY2FzZSAkaG9zdCBpbgorICAgICAgKmN5Z3dpbiogfCAqbWluZ3cqICkKKyAgICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCisgICAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KKyAgICAgICAgZmkKKyAgICAgICAgOzsKKyAgICAgICpjZWdjYykKKyAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJzIGZvciBjZWdjYywgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyBhbnl3YXkuCisgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCisgICAgICAgIDs7CisgICAgICAqKQorICAgICAgICBpZiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0gbm8gfHwgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCisgICAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KKyAgICAgICAgZmkKKyAgICAgICAgOzsKKyAgICAgIGVzYWMKKyAgICAgIGlmIHRlc3QgIiR3cmFwcGVyc19yZXF1aXJlZCIgPSBubzsgdGhlbgorCSMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KKwljb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJ2AKKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKKworCSMgV2UgaGF2ZSBubyB1bmluc3RhbGxlZCBsaWJyYXJ5IGRlcGVuZGVuY2llcywgc28gZmluYWxpemUgcmlnaHQgbm93LgorCWV4aXRfc3RhdHVzPTAKKwlmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXRfc3RhdHVzPSQ/JworCisJIyBEZWxldGUgdGhlIGdlbmVyYXRlZCBmaWxlcy4KKwlpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iOyB0aGVuCisJICBmdW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iJworCWZpCisKKwlleGl0ICRleGl0X3N0YXR1cworICAgICAgZmkKKworICAgICAgaWYgdGVzdCAtbiAiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4KKwljb21waWxlX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAkY29tcGlsZV9jb21tYW5kIgorICAgICAgZmkKKyAgICAgIGlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9zaGxpYnBhdGgiOyB0aGVuCisJZmluYWxpemVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9XCIkZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRmaW5hbGl6ZV9jb21tYW5kIgorICAgICAgZmkKKworICAgICAgY29tcGlsZV92YXI9CisgICAgICBmaW5hbGl6ZV92YXI9CisgICAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisJaWYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVuCisJICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgorCSAgcnBhdGg9CisJICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbworCSAgICBycGF0aD0iJHJwYXRoJGRpcjoiCisJICBkb25lCisJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJcIiAiCisJZmkKKwlpZiB0ZXN0IC1uICIkZmluYWxpemVfcGVybV9ycGF0aCI7IHRoZW4KKwkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCisJICBycGF0aD0KKwkgIGZvciBkaXIgaW4gJGZpbmFsaXplX3Blcm1fcnBhdGg7IGRvCisJICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKwkgIGRvbmUKKwkgIGZpbmFsaXplX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJcIiAiCisJZmkKKyAgICAgIGZpCisKKyAgICAgIGlmIHRlc3QgIiRub19pbnN0YWxsIiA9IHllczsgdGhlbgorCSMgV2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUgYSB3cmFwcGVyIHNjcmlwdC4KKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisJbGlua19jb21tYW5kPWAkRUNITyAiWCRsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0IiclZydgCisJIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZS4KKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRvdXRwdXQKKwkjIExpbmsgdGhlIGV4ZWN1dGFibGUgYW5kIGV4aXQKKwlmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXQgJD8nCisJZXhpdCAkRVhJVF9TVUNDRVNTCisgICAgICBmaQorCisgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9IHJlbGluazsgdGhlbgorCSMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorCXJlbGlua19jb21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisKKwlmdW5jX3dhcm5pbmcgInRoaXMgcGxhdGZvcm0gZG9lcyBub3QgbGlrZSB1bmluc3RhbGxlZCBzaGFyZWQgbGlicmFyaWVzIgorCWZ1bmNfd2FybmluZyAiXGAkb3V0cHV0JyB3aWxsIGJlIHJlbGlua2VkIGR1cmluZyBpbnN0YWxsYXRpb24iCisgICAgICBlbHNlCisJaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgIT0gbm87IHRoZW4KKwkgIGxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRjb21waWxlX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisJICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgorCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVnJ2AKKwkgIGVsc2UKKwkgICAgIyBmYXN0X2luc3RhbGwgaXMgc2V0IHRvIG5lZWRsZXNzCisJICAgIHJlbGlua19jb21tYW5kPQorCSAgZmkKKwllbHNlCisJICBsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKKwkgIHJlbGlua19jb21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisJZmkKKyAgICAgIGZpCisKKyAgICAgICMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KKyAgICAgIGxpbmtfY29tbWFuZD1gJEVDSE8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiJyVnJ2AKKworICAgICAgIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZXMuCisgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRvdXRwdXQgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUgJG91dHB1dF9vYmpkaXIvbHQtJG91dHB1dG5hbWUKKworICAgICAgZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0ICQ/JworCisgICAgICAjIE5vdyBjcmVhdGUgdGhlIHdyYXBwZXIgc2NyaXB0LgorICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyAkb3V0cHV0IgorCisgICAgICAjIFF1b3RlIHRoZSByZWxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCisgICAgICBpZiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisJIyBQcmVzZXJ2ZSBhbnkgdmFyaWFibGVzIHRoYXQgbWF5IGFmZmVjdCBjb21waWxlciBiZWhhdmlvcgorCWZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbworCSAgaWYgZXZhbCB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCI7IHRoZW4KKwkgICAgcmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8ICRsdF91bnNldCAkdmFyIHx8IHsgJHZhcj07IGV4cG9ydCAkdmFyOyB9OyB9OyAkcmVsaW5rX2NvbW1hbmQiCisJICBlbGlmIGV2YWwgdmFyX3ZhbHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorCSAgZWxzZQorCSAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgorCSAgICByZWxpbmtfY29tbWFuZD0iJHZhcj0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ7IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCisJICBmaQorCWRvbmUKKwlyZWxpbmtfY29tbWFuZD0iKGNkIGBwd2RgOyAkcmVsaW5rX2NvbW1hbmQpIgorCXJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCisgICAgICBmaQorCisgICAgICAjIFF1b3RlICRFQ0hPIGZvciBzaGlwcGluZy4KKyAgICAgIGlmIHRlc3QgIlgkRUNITyIgPSAiWCRTSEVMTCAkcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjsgdGhlbgorCWNhc2UgJHByb2dwYXRoIGluCisJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBxZWNobz0iJFNIRUxMICRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOzsKKwkqKSBxZWNobz0iJFNIRUxMIGBwd2RgLyRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOzsKKwllc2FjCisJcWVjaG89YCRFQ0hPICJYJHFlY2hvIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKyAgICAgIGVsc2UKKwlxZWNobz1gJEVDSE8gIlgkRUNITyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCisgICAgICBmaQorCisgICAgICAjIE9ubHkgYWN0dWFsbHkgZG8gdGhpbmdzIGlmIG5vdCBpbiBkcnkgcnVuIG1vZGUuCisgICAgICAkb3B0X2RyeV9ydW4gfHwgeworCSMgd2luMzIgd2lsbCB0aGluayB0aGUgc2NyaXB0IGlzIGEgYmluYXJ5IGlmIGl0IGhhcworCSMgYSAuZXhlIHN1ZmZpeCwgc28gd2Ugc3RyaXAgaXQgb2ZmIGhlcmUuCisJY2FzZSAkb3V0cHV0IGluCisJICAqLmV4ZSkgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0IgorCSAgICAgICAgIG91dHB1dD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7CisJZXNhYworCSMgdGVzdCBmb3IgY3lnd2luIGJlY2F1c2UgbXYgZmFpbHMgdy9vIC5leGUgZXh0ZW5zaW9ucworCWNhc2UgJGhvc3QgaW4KKwkgICpjeWd3aW4qKQorCSAgICBleGVleHQ9LmV4ZQorCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXRuYW1lIgorCSAgICBvdXRwdXRuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKKwkgICopIGV4ZWV4dD0gOzsKKwllc2FjCisJY2FzZSAkaG9zdCBpbgorCSAgKmN5Z3dpbiogfCAqbWluZ3cqICkKKwkgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG91dHB1dCIgIiIgIi4iCisJICAgIG91dHB1dF9uYW1lPSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAorCSAgICBvdXRwdXRfcGF0aD0kZnVuY19kaXJuYW1lX3Jlc3VsdAorCSAgICBjd3JhcHBlcnNvdXJjZT0iJG91dHB1dF9wYXRoLyRvYmpkaXIvbHQtJG91dHB1dF9uYW1lLmMiCisJICAgIGN3cmFwcGVyPSIkb3V0cHV0X3BhdGgvJG91dHB1dF9uYW1lLmV4ZSIKKwkgICAgJFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXIKKwkgICAgdHJhcCAiJFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXI7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1CisKKwkgICAgZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYyA+ICRjd3JhcHBlcnNvdXJjZQorCisJICAgICMgVGhlIHdyYXBwZXIgZXhlY3V0YWJsZSBpcyBidWlsdCB1c2luZyB0aGUgJGhvc3QgY29tcGlsZXIsCisJICAgICMgYmVjYXVzZSBpdCBjb250YWlucyAkaG9zdCBwYXRocyBhbmQgZmlsZXMuIElmIGNyb3NzLQorCSAgICAjIGNvbXBpbGluZywgaXQsIGxpa2UgdGhlIHRhcmdldCBleGVjdXRhYmxlLCBtdXN0IGJlCisJICAgICMgZXhlY3V0ZWQgb24gdGhlICRob3N0IG9yIHVuZGVyIGFuIGVtdWxhdGlvbiBlbnZpcm9ubWVudC4KKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgICAkTFRDQyAkTFRDRkxBR1MgLW8gJGN3cmFwcGVyICRjd3JhcHBlcnNvdXJjZQorCSAgICAgICRTVFJJUCAkY3dyYXBwZXIKKwkgICAgfQorCisJICAgICMgTm93LCBjcmVhdGUgdGhlIHdyYXBwZXIgc2NyaXB0IGZvciBmdW5jX3NvdXJjZSB1c2U6CisJICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgJGN3cmFwcGVyCisJICAgICRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKwkgICAgdHJhcCAiJFJNICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdDsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgICAjIG5vdGU6IHRoaXMgc2NyaXB0IHdpbGwgbm90IGJlIGV4ZWN1dGVkLCBzbyBkbyBub3QgY2htb2QuCisJICAgICAgaWYgdGVzdCAieCRidWlsZCIgPSAieCRob3N0IiA7IHRoZW4KKwkJJGN3cmFwcGVyIC0tbHQtZHVtcC1zY3JpcHQgPiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKwkgICAgICBlbHNlCisJCWZ1bmNfZW1pdF93cmFwcGVyIG5vID4gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0CisJICAgICAgZmkKKwkgICAgfQorCSAgOzsKKwkgICogKQorCSAgICAkUk0gJG91dHB1dAorCSAgICB0cmFwICIkUk0gJG91dHB1dDsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKKworCSAgICBmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRvdXRwdXQKKwkgICAgY2htb2QgK3ggJG91dHB1dAorCSAgOzsKKwllc2FjCisgICAgICB9CisgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyAgICAgIDs7CisgICAgZXNhYworCisgICAgIyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFyY2hpdmUuCisgICAgZm9yIG9sZGxpYiBpbiAkb2xkbGliczsgZG8KKworICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBjb252ZW5pZW5jZTsgdGhlbgorCW9sZG9ianM9IiRsaWJvYmpzX3NhdmUgJHN5bWZpbGVvYmoiCisJYWRkbGlicz0iJGNvbnZlbmllbmNlIgorCWJ1aWxkX2xpYnRvb2xfbGlicz1ubworICAgICAgZWxzZQorCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbW9kdWxlOyB0aGVuCisJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgorCSAgYnVpbGRfbGlidG9vbF9saWJzPW5vCisJZWxzZQorCSAgb2xkb2Jqcz0iJG9sZF9kZXBsaWJzICRub25fcGljX29iamVjdHMiCisJICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXMgJiYgdGVzdCAtZiAiJHN5bWZpbGVvYmoiOyB0aGVuCisJICAgIG9sZG9ianM9IiRvbGRvYmpzICRzeW1maWxlb2JqIgorCSAgZmkKKwlmaQorCWFkZGxpYnM9IiRvbGRfY29udmVuaWVuY2UiCisgICAgICBmaQorCisgICAgICBpZiB0ZXN0IC1uICIkYWRkbGlicyI7IHRoZW4KKwlnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorCWdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorCisJZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGFkZGxpYnMKKwlvbGRvYmpzPSIkb2xkb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKKyAgICAgIGZpCisKKyAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgorICAgICAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisJY21kcz0kb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcworICAgICAgZWxzZQorCisJIyBBZGQgYW55IG9iamVjdHMgZnJvbSBwcmVsb2FkZWQgY29udmVuaWVuY2UgbGlicmFyaWVzCisJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCisJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisKKwkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHByZWZpbGVzCisJICBvbGRvYmpzPSIkb2xkb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKKwlmaQorCisJIyBQT1NJWCBkZW1hbmRzIG5vIHBhdGhzIHRvIGJlIGVuY29kZWQgaW4gYXJjaGl2ZXMuICBXZSBoYXZlCisJIyB0byBhdm9pZCBjcmVhdGluZyBhcmNoaXZlcyB3aXRoIGR1cGxpY2F0ZSBiYXNlbmFtZXMgaWYgd2UKKwkjIG1pZ2h0IGhhdmUgdG8gZXh0cmFjdCB0aGVtIGFmdGVyd2FyZHMsIGUuZy4sIHdoZW4gY3JlYXRpbmcgYQorCSMgc3RhdGljIGFyY2hpdmUgb3V0IG9mIGEgY29udmVuaWVuY2UgbGlicmFyeSwgb3Igd2hlbiBsaW5raW5nCisJIyB0aGUgZW50aXJldHkgb2YgYSBsaWJ0b29sIGFyY2hpdmUgaW50byBhbm90aGVyIChjdXJyZW50bHkKKwkjIG5vdCBzdXBwb3J0ZWQgYnkgbGlidG9vbCkuCisJaWYgKGZvciBvYmogaW4gJG9sZG9ianMKKwkgICAgZG8KKwkgICAgICBmdW5jX2Jhc2VuYW1lICIkb2JqIgorCSAgICAgICRFQ0hPICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisJICAgIGRvbmUgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVsbCAyPiYxKTsgdGhlbgorCSAgOgorCWVsc2UKKwkgICRFQ0hPICJjb3B5aW5nIHNlbGVjdGVkIG9iamVjdCBmaWxlcyB0byBhdm9pZCBiYXNlbmFtZSBjb25mbGljdHMuLi4iCisJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisJICBmdW5jX21rZGlyX3AgIiRnZW50b3AiCisJICBzYXZlX29sZG9ianM9JG9sZG9ianMKKwkgIG9sZG9ianM9CisJICBjb3VudGVyPTEKKwkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcworCSAgZG8KKwkgICAgZnVuY19iYXNlbmFtZSAiJG9iaiIKKwkgICAgb2JqYmFzZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCSAgICBjYXNlICIgJG9sZG9ianMgIiBpbgorCSAgICAiICIpIG9sZG9ianM9JG9iaiA7OworCSAgICAqW1wgL10iJG9iamJhc2UgIiopCisJICAgICAgd2hpbGUgOjsgZG8KKwkJIyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGljayBhbiBhbHRlcm5hdGUgbmFtZSB0aGF0IGFsc28KKwkJIyBvdmVybGFwcy4KKwkJbmV3b2JqPWx0JGNvdW50ZXItJG9iamJhc2UKKwkJZnVuY19hcml0aCAkY291bnRlciArIDEKKwkJY291bnRlcj0kZnVuY19hcml0aF9yZXN1bHQKKwkJY2FzZSAiICRvbGRvYmpzICIgaW4KKwkJKltcIC9dIiRuZXdvYmogIiopIDs7CisJCSopIGlmIHRlc3QgISAtZiAiJGdlbnRvcC8kbmV3b2JqIjsgdGhlbiBicmVhazsgZmkgOzsKKwkJZXNhYworCSAgICAgIGRvbmUKKwkgICAgICBmdW5jX3Nob3dfZXZhbCAibG4gJG9iaiAkZ2VudG9wLyRuZXdvYmogfHwgY3AgJG9iaiAkZ2VudG9wLyRuZXdvYmoiCisJICAgICAgb2xkb2Jqcz0iJG9sZG9ianMgJGdlbnRvcC8kbmV3b2JqIgorCSAgICAgIDs7CisJICAgICopIG9sZG9ianM9IiRvbGRvYmpzICRvYmoiIDs7CisJICAgIGVzYWMKKwkgIGRvbmUKKwlmaQorCWV2YWwgY21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKKworCWZ1bmNfbGVuICIgJGNtZHMiCisJbGVuPSRmdW5jX2xlbl9yZXN1bHQKKwlpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKKwllbHNlCisJICAjIHRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGluayBpbiBwYXJ0cworCSAgZnVuY192ZXJib3NlICJ1c2luZyBwaWVjZXdpc2UgYXJjaGl2ZSBsaW5raW5nLi4uIgorCSAgc2F2ZV9SQU5MSUI9JFJBTkxJQgorCSAgUkFOTElCPToKKwkgIG9iamxpc3Q9CisJICBjb25jYXRfY21kcz0KKwkgIHNhdmVfb2xkb2Jqcz0kb2xkb2JqcworCSAgb2xkb2Jqcz0KKwkgICMgSXMgdGhlcmUgYSBiZXR0ZXIgd2F5IG9mIGZpbmRpbmcgdGhlIGxhc3Qgb2JqZWN0IGluIHRoZSBsaXN0PworCSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCisJICBkbworCSAgICBsYXN0X29sZG9iaj0kb2JqCisJICBkb25lCisJICBldmFsIHRlc3RfY21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKKwkgIGZ1bmNfbGVuICIgJHRlc3RfY21kcyIKKwkgIGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAorCSAgbGVuPSRsZW4wCisJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKKwkgIGRvCisJICAgIGZ1bmNfbGVuICIgJG9iaiIKKwkgICAgZnVuY19hcml0aCAkbGVuICsgJGZ1bmNfbGVuX3Jlc3VsdAorCSAgICBsZW49JGZ1bmNfYXJpdGhfcmVzdWx0CisJICAgIGZ1bmNfYXBwZW5kIG9iamxpc3QgIiAkb2JqIgorCSAgICBpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiI7IHRoZW4KKwkgICAgICA6CisJICAgIGVsc2UKKwkgICAgICAjIHRoZSBhYm92ZSBjb21tYW5kIHNob3VsZCBiZSB1c2VkIGJlZm9yZSBpdCBnZXRzIHRvbyBsb25nCisJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAorCSAgICAgIGlmIHRlc3QgIiRvYmoiID0gIiRsYXN0X29sZG9iaiIgOyB0aGVuCisJCVJBTkxJQj0kc2F2ZV9SQU5MSUIKKwkgICAgICBmaQorCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgorCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc30kb2xkX2FyY2hpdmVfY21kc1wiCisJICAgICAgb2JqbGlzdD0KKwkgICAgICBsZW49JGxlbjAKKwkgICAgZmkKKwkgIGRvbmUKKwkgIFJBTkxJQj0kc2F2ZV9SQU5MSUIKKwkgIG9sZG9ianM9JG9iamxpc3QKKwkgIGlmIHRlc3QgIlgkb2xkb2JqcyIgPSAiWCIgOyB0aGVuCisJICAgIGV2YWwgY21kcz1cIlwkY29uY2F0X2NtZHNcIgorCSAgZWxzZQorCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzflwkb2xkX2FyY2hpdmVfY21kc1wiCisJICBmaQorCWZpCisgICAgICBmaQorICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRjbWRzIiAnZXhpdCAkPycKKyAgICBkb25lCisKKyAgICB0ZXN0IC1uICIkZ2VuZXJhdGVkIiAmJiBcCisgICAgICBmdW5jX3Nob3dfZXZhbCAiJHtSTX1yJGdlbmVyYXRlZCIKKworICAgICMgTm93IGNyZWF0ZSB0aGUgbGlidG9vbCBhcmNoaXZlLgorICAgIGNhc2UgJG91dHB1dCBpbgorICAgICoubGEpCisgICAgICBvbGRfbGlicmFyeT0KKyAgICAgIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXMgJiYgb2xkX2xpYnJhcnk9IiRsaWJuYW1lLiRsaWJleHQiCisgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRwdXQiCisKKyAgICAgICMgUHJlc2VydmUgYW55IHZhcmlhYmxlcyB0aGF0IG1heSBhZmZlY3QgY29tcGlsZXIgYmVoYXZpb3IKKyAgICAgIGZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbworCWlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisJICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwgJGx0X3Vuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKKwllbGlmIGV2YWwgdmFyX3ZhbHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KKwkgIHJlbGlua19jb21tYW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKwllbHNlCisJICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgorCSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorCWZpCisgICAgICBkb25lCisgICAgICAjIFF1b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgorICAgICAgcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJFNIRUxMICRwcm9ncGF0aCAkcHJlc2VydmVfYXJncyAtLW1vZGU9cmVsaW5rICRsaWJ0b29sX2FyZ3MgQGluc3RfcHJlZml4X2RpckApIgorICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKyAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzIDsgdGhlbgorCXJlbGlua19jb21tYW5kPQorICAgICAgZmkKKworICAgICAgIyBPbmx5IGNyZWF0ZSB0aGUgb3V0cHV0IGlmIG5vdCBhIGRyeSBydW4uCisgICAgICAkb3B0X2RyeV9ydW4gfHwgeworCWZvciBpbnN0YWxsZWQgaW4gbm8geWVzOyBkbworCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KKwkgICAgaWYgdGVzdCAteiAiJGluc3RhbGxfbGliZGlyIjsgdGhlbgorCSAgICAgIGJyZWFrCisJICAgIGZpCisJICAgIG91dHB1dD0iJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiaQorCSAgICAjIFJlcGxhY2UgYWxsIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzIHdpdGggdGhlIGluc3RhbGxlZCBvbmVzCisJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0KKwkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworCSAgICAgIGNhc2UgJGRlcGxpYiBpbgorCSAgICAgICoubGEpCisJCWZ1bmNfYmFzZW5hbWUgIiRkZXBsaWIiCisJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAorCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGRlcGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorCQluZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGxpYmRpci8kbmFtZSIKKwkJOzsKKwkgICAgICAqKSBuZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGRlcGxpYiIgOzsKKwkgICAgICBlc2FjCisJICAgIGRvbmUKKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzIgorCSAgICBuZXdkbGZpbGVzPQorCisJICAgIGZvciBsaWIgaW4gJGRsZmlsZXM7IGRvCisJICAgICAgY2FzZSAkbGliIGluCisJICAgICAgKi5sYSkKKwkgICAgICAgIGZ1bmNfYmFzZW5hbWUgIiRsaWIiCisJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGxpYmAKKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAorCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorCQluZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliZGlyLyRuYW1lIgorCQk7OworCSAgICAgICopIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRsaWIiIDs7CisJICAgICAgZXNhYworCSAgICBkb25lCisJICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgorCSAgICBuZXdkbHByZWZpbGVzPQorCSAgICBmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbworCSAgICAgIGNhc2UgJGxpYiBpbgorCSAgICAgICoubGEpCisJCSMgT25seSBwYXNzIHByZW9wZW5lZCBmaWxlcyB0byB0aGUgcHNldWRvLWFyY2hpdmUgKGZvcgorCQkjIGV2ZW50dWFsIGxpbmtpbmcgd2l0aCB0aGUgYXBwLiB0aGF0IGxpbmtzIGl0KSBpZiB3ZQorCQkjIGRpZG4ndCBhbHJlYWR5IGxpbmsgdGhlIHByZW9wZW5lZCBvYmplY3RzIGRpcmVjdGx5IGludG8KKwkJIyB0aGUgbGlicmFyeToKKwkJZnVuY19iYXNlbmFtZSAiJGxpYiIKKwkJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkbGliYAorCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCisJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisJCW5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRsaWJkaXIvJG5hbWUiCisJCTs7CisJICAgICAgZXNhYworCSAgICBkb25lCisJICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgorCSAgZWxzZQorCSAgICBuZXdkbGZpbGVzPQorCSAgICBmb3IgbGliIGluICRkbGZpbGVzOyBkbworCSAgICAgIGNhc2UgJGxpYiBpbgorCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKKwkJKikgYWJzPWBwd2RgIi8kbGliIiA7OworCSAgICAgIGVzYWMKKwkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkYWJzIgorCSAgICBkb25lCisJICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgorCSAgICBuZXdkbHByZWZpbGVzPQorCSAgICBmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbworCSAgICAgIGNhc2UgJGxpYiBpbgorCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKKwkJKikgYWJzPWBwd2RgIi8kbGliIiA7OworCSAgICAgIGVzYWMKKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkYWJzIgorCSAgICBkb25lCisJICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgorCSAgZmkKKwkgICRSTSAkb3V0cHV0CisJICAjIHBsYWNlIGRsbmFtZSBpbiBjb3JyZWN0IHBvc2l0aW9uIGZvciBjeWd3aW4KKwkgIHRkbG5hbWU9JGRsbmFtZQorCSAgY2FzZSAkaG9zdCwkb3V0cHV0LCRpbnN0YWxsZWQsJG1vZHVsZSwkZGxuYW1lIGluCisJICAgICpjeWd3aW4qLCpsYWkseWVzLG5vLCouZGxsIHwgKm1pbmd3KiwqbGFpLHllcyxubywqLmRsbCB8ICpjZWdjYyosKmxhaSx5ZXMsbm8sKi5kbGwpIHRkbG5hbWU9Li4vYmluLyRkbG5hbWUgOzsKKwkgIGVzYWMKKwkgICRFQ0hPID4gJG91dHB1dCAiXAorIyAkb3V0cHV0bmFtZSAtIGEgbGlidG9vbCBsaWJyYXJ5IGZpbGUKKyMgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorIworIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCisjIEl0IGlzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyB0aGUgbGlicmFyeS4KKworIyBUaGUgbmFtZSB0aGF0IHdlIGNhbiBkbG9wZW4oMykuCitkbG5hbWU9JyR0ZGxuYW1lJworCisjIE5hbWVzIG9mIHRoaXMgbGlicmFyeS4KK2xpYnJhcnlfbmFtZXM9JyRsaWJyYXJ5X25hbWVzJworCisjIFRoZSBuYW1lIG9mIHRoZSBzdGF0aWMgYXJjaGl2ZS4KK29sZF9saWJyYXJ5PSckb2xkX2xpYnJhcnknCisKKyMgTGlua2VyIGZsYWdzIHRoYXQgY2FuIG5vdCBnbyBpbiBkZXBlbmRlbmN5X2xpYnMuCitpbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSckbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MnCisKKyMgTGlicmFyaWVzIHRoYXQgdGhpcyBvbmUgZGVwZW5kcyB1cG9uLgorZGVwZW5kZW5jeV9saWJzPSckZGVwZW5kZW5jeV9saWJzJworCisjIE5hbWVzIG9mIGFkZGl0aW9uYWwgd2VhayBsaWJyYXJpZXMgcHJvdmlkZWQgYnkgdGhpcyBsaWJyYXJ5Cit3ZWFrX2xpYnJhcnlfbmFtZXM9JyR3ZWFrX2xpYnMnCisKKyMgVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgJGxpYm5hbWUuCitjdXJyZW50PSRjdXJyZW50CithZ2U9JGFnZQorcmV2aXNpb249JHJldmlzaW9uCisKKyMgSXMgdGhpcyBhbiBhbHJlYWR5IGluc3RhbGxlZCBsaWJyYXJ5PworaW5zdGFsbGVkPSRpbnN0YWxsZWQKKworIyBTaG91bGQgd2Ugd2FybiBhYm91dCBwb3J0YWJpbGl0eSB3aGVuIGxpbmtpbmcgYWdhaW5zdCAtbW9kdWxlcz8KK3Nob3VsZG5vdGxpbms9JG1vZHVsZQorCisjIEZpbGVzIHRvIGRsb3Blbi9kbHByZW9wZW4KK2Rsb3Blbj0nJGRsZmlsZXMnCitkbHByZW9wZW49JyRkbHByZWZpbGVzJworCisjIERpcmVjdG9yeSB0aGF0IHRoaXMgbGlicmFyeSBuZWVkcyB0byBiZSBpbnN0YWxsZWQgaW46CitsaWJkaXI9JyRpbnN0YWxsX2xpYmRpciciCisJICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5vICYmIHRlc3QgIiRuZWVkX3JlbGluayIgPSB5ZXM7IHRoZW4KKwkgICAgJEVDSE8gPj4gJG91dHB1dCAiXAorcmVsaW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2NvbW1hbmRcIiIKKwkgIGZpCisJZG9uZQorICAgICAgfQorCisgICAgICAjIERvIGEgc3ltYm9saWMgbGluayBzbyB0aGF0IHRoZSBsaWJ0b29sIGFyY2hpdmUgY2FuIGJlIGZvdW5kIGluCisgICAgICAjIExEX0xJQlJBUllfUEFUSCBiZWZvcmUgdGhlIHByb2dyYW0gaXMgaW5zdGFsbGVkLgorICAgICAgZnVuY19zaG93X2V2YWwgJyggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiAkUk0gIiRvdXRwdXRuYW1lIiAmJiAkTE5fUyAiLi4vJG91dHB1dG5hbWUiICIkb3V0cHV0bmFtZSIgKScgJ2V4aXQgJD8nCisgICAgICA7OworICAgIGVzYWMKKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKK30KKworeyB0ZXN0ICIkbW9kZSIgPSBsaW5rIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgfSAmJgorICAgIGZ1bmNfbW9kZV9saW5rICR7MSsiJEAifQorCisKKyMgZnVuY19tb2RlX3VuaW5zdGFsbCBhcmcuLi4KK2Z1bmNfbW9kZV91bmluc3RhbGwgKCkKK3sKKyAgICAkb3B0X2RlYnVnCisgICAgUk09IiRub25vcHQiCisgICAgZmlsZXM9CisgICAgcm1mb3JjZT0KKyAgICBleGl0X3N0YXR1cz0wCisKKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKKyAgICAjIHRoYW4gcnVubmluZyB0aGVpciBwcm9ncmFtcy4KKyAgICBsaWJ0b29sX2luc3RhbGxfbWFnaWM9IiRtYWdpYyIKKworICAgIGZvciBhcmcKKyAgICBkbworICAgICAgY2FzZSAkYXJnIGluCisgICAgICAtZikgUk09IiRSTSAkYXJnIjsgcm1mb3JjZT15ZXMgOzsKKyAgICAgIC0qKSBSTT0iJFJNICRhcmciIDs7CisgICAgICAqKSBmaWxlcz0iJGZpbGVzICRhcmciIDs7CisgICAgICBlc2FjCisgICAgZG9uZQorCisgICAgdGVzdCAteiAiJFJNIiAmJiBcCisgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYW4gUk0gcHJvZ3JhbSIKKworICAgIHJtZGlycz0KKworICAgIG9yaWdvYmpkaXI9IiRvYmpkaXIiCisgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbworICAgICAgZnVuY19kaXJuYW1lICIkZmlsZSIgIiIgIi4iCisgICAgICBkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorICAgICAgaWYgdGVzdCAiWCRkaXIiID0gWC47IHRoZW4KKwlvYmpkaXI9IiRvcmlnb2JqZGlyIgorICAgICAgZWxzZQorCW9iamRpcj0iJGRpci8kb3JpZ29iamRpciIKKyAgICAgIGZpCisgICAgICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKKyAgICAgIG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKyAgICAgIHRlc3QgIiRtb2RlIiA9IHVuaW5zdGFsbCAmJiBvYmpkaXI9IiRkaXIiCisKKyAgICAgICMgUmVtZW1iZXIgb2JqZGlyIGZvciByZW1vdmFsIGxhdGVyLCBiZWluZyBjYXJlZnVsIHRvIGF2b2lkIGR1cGxpY2F0ZXMKKyAgICAgIGlmIHRlc3QgIiRtb2RlIiA9IGNsZWFuOyB0aGVuCisJY2FzZSAiICRybWRpcnMgIiBpbgorCSAgKiIgJG9iamRpciAiKikgOzsKKwkgICopIHJtZGlycz0iJHJtZGlycyAkb2JqZGlyIiA7OworCWVzYWMKKyAgICAgIGZpCisKKyAgICAgICMgRG9uJ3QgZXJyb3IgaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdCBhbmQgcm0gLWYgd2FzIHVzZWQuCisgICAgICBpZiB7IHRlc3QgLUwgIiRmaWxlIjsgfSA+L2Rldi9udWxsIDI+JjEgfHwKKwkgeyB0ZXN0IC1oICIkZmlsZSI7IH0gPi9kZXYvbnVsbCAyPiYxIHx8CisJIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgorCToKKyAgICAgIGVsaWYgdGVzdCAtZCAiJGZpbGUiOyB0aGVuCisJZXhpdF9zdGF0dXM9MQorCWNvbnRpbnVlCisgICAgICBlbGlmIHRlc3QgIiRybWZvcmNlIiA9IHllczsgdGhlbgorCWNvbnRpbnVlCisgICAgICBmaQorCisgICAgICBybWZpbGVzPSIkZmlsZSIKKworICAgICAgY2FzZSAkbmFtZSBpbgorICAgICAgKi5sYSkKKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBhcmNoaXZlLCBzbyB2ZXJpZnkgaXQuCisJaWYgZnVuY19sYWxpYl9wICIkZmlsZSI7IHRoZW4KKwkgIGZ1bmNfc291cmNlICRkaXIvJG5hbWUKKworCSAgIyBEZWxldGUgdGhlIGxpYnRvb2wgbGlicmFyaWVzIGFuZCBzeW1saW5rcy4KKwkgIGZvciBuIGluICRsaWJyYXJ5X25hbWVzOyBkbworCSAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRuIgorCSAgZG9uZQorCSAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRvbGRfbGlicmFyeSIKKworCSAgY2FzZSAiJG1vZGUiIGluCisJICBjbGVhbikKKwkgICAgY2FzZSAiICAkbGlicmFyeV9uYW1lcyAiIGluCisJICAgICMgIiAgIiBpbiB0aGUgYmVnaW5uaW5nIGNhdGNoZXMgZW1wdHkgJGRsbmFtZQorCSAgICAqIiAkZGxuYW1lICIqKSA7OworCSAgICAqKSBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRkbG5hbWUiIDs7CisJICAgIGVzYWMKKwkgICAgdGVzdCAtbiAiJGxpYmRpciIgJiYgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1pIgorCSAgICA7OworCSAgdW5pbnN0YWxsKQorCSAgICBpZiB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IHRoZW4KKwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdHVuaW5zdGFsbCBjb21tYW5kcy4KKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJHBvc3R1bmluc3RhbGxfY21kcyIgJ3Rlc3QgIiRybWZvcmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0xJworCSAgICBmaQorCisJICAgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KKwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bvc3R1bmluc3RhbGwgY29tbWFuZHMuCisJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIiAndGVzdCAiJHJtZm9yY2UiID0geWVzIHx8IGV4aXRfc3RhdHVzPTEnCisJICAgIGZpCisJICAgICMgRklYTUU6IHNob3VsZCByZWluc3RhbGwgdGhlIGJlc3QgcmVtYWluaW5nIHNoYXJlZCBsaWJyYXJ5LgorCSAgICA7OworCSAgZXNhYworCWZpCisJOzsKKworICAgICAgKi5sbykKKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBvYmplY3QsIHNvIHZlcmlmeSBpdC4KKwlpZiBmdW5jX2xhbGliX3AgIiRmaWxlIjsgdGhlbgorCisJICAjIFJlYWQgdGhlIC5sbyBmaWxlCisJICBmdW5jX3NvdXJjZSAkZGlyLyRuYW1lCisKKwkgICMgQWRkIFBJQyBvYmplY3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgorCSAgaWYgdGVzdCAtbiAiJHBpY19vYmplY3QiICYmCisJICAgICB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgorCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZGlyLyRwaWNfb2JqZWN0IgorCSAgZmkKKworCSAgIyBBZGQgbm9uLVBJQyBvYmplY3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgorCSAgaWYgdGVzdCAtbiAiJG5vbl9waWNfb2JqZWN0IiAmJgorCSAgICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCisJICAgIHJtZmlsZXM9IiRybWZpbGVzICRkaXIvJG5vbl9waWNfb2JqZWN0IgorCSAgZmkKKwlmaQorCTs7CisKKyAgICAgICopCisJaWYgdGVzdCAiJG1vZGUiID0gY2xlYW4gOyB0aGVuCisJICBub2V4ZW5hbWU9JG5hbWUKKwkgIGNhc2UgJGZpbGUgaW4KKwkgICouZXhlKQorCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmaWxlIgorCSAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkbmFtZSIKKwkgICAgbm9leGVuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkgICAgIyAkZmlsZSB3aXRoIC5leGUgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byBybWZpbGVzLAorCSAgICAjIGFkZCAkZmlsZSB3aXRob3V0IC5leGUKKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGZpbGUiCisJICAgIDs7CisJICBlc2FjCisJICAjIERvIGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyBhIGxpYnRvb2wgcHJvZ3JhbS4KKwkgIGlmIGZ1bmNfbHR3cmFwcGVyX3AgIiRmaWxlIjsgdGhlbgorCSAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsgdGhlbgorCSAgICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxlIgorCSAgICAgIHJlbGlua19jb21tYW5kPQorCSAgICAgIGZ1bmNfc291cmNlICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAorCSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdCIKKwkgICAgZWxzZQorCSAgICAgIHJlbGlua19jb21tYW5kPQorCSAgICAgIGZ1bmNfc291cmNlICRkaXIvJG5vZXhlbmFtZQorCSAgICBmaQorCisJICAgICMgbm90ZSAkbmFtZSBzdGlsbCBjb250YWlucyAuZXhlIGlmIGl0IHdhcyBpbiAkZmlsZSBvcmlnaW5hbGx5CisJICAgICMgYXMgZG9lcyB0aGUgdmVyc2lvbiBvZiAkZmlsZSB0aGF0IHdhcyBhZGRlZCBpbnRvICRybWZpbGVzCisJICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9iamRpci8ke25hbWV9Uy4ke29iamV4dH0iCisJICAgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KKwkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyL2x0LSRuYW1lIgorCSAgICBmaQorCSAgICBpZiB0ZXN0ICJYJG5vZXhlbmFtZSIgIT0gIlgkbmFtZSIgOyB0aGVuCisJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0ke25vZXhlbmFtZX0uYyIKKwkgICAgZmkKKwkgIGZpCisJZmkKKwk7OworICAgICAgZXNhYworICAgICAgZnVuY19zaG93X2V2YWwgIiRSTSAkcm1maWxlcyIgJ2V4aXRfc3RhdHVzPTEnCisgICAgZG9uZQorICAgIG9iamRpcj0iJG9yaWdvYmpkaXIiCisKKyAgICAjIFRyeSB0byByZW1vdmUgdGhlICR7b2JqZGlyfXMgaW4gdGhlIGRpcmVjdG9yaWVzIHdoZXJlIHdlIGRlbGV0ZWQgZmlsZXMKKyAgICBmb3IgZGlyIGluICRybWRpcnM7IGRvCisgICAgICBpZiB0ZXN0IC1kICIkZGlyIjsgdGhlbgorCWZ1bmNfc2hvd19ldmFsICJybWRpciAkZGlyID4vZGV2L251bGwgMj4mMSIKKyAgICAgIGZpCisgICAgZG9uZQorCisgICAgZXhpdCAkZXhpdF9zdGF0dXMKK30KKworeyB0ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgfHwgdGVzdCAiJG1vZGUiID0gY2xlYW47IH0gJiYKKyAgICBmdW5jX21vZGVfdW5pbnN0YWxsICR7MSsiJEAifQorCit0ZXN0IC16ICIkbW9kZSIgJiYgeworICBoZWxwPSIkZ2VuZXJpY19oZWxwIgorICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBNT0RFIgorfQorCit0ZXN0IC16ICIkZXhlY19jbWQiICYmIFwKKyAgZnVuY19mYXRhbF9oZWxwICJpbnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG1vZGUnIgorCitpZiB0ZXN0IC1uICIkZXhlY19jbWQiOyB0aGVuCisgIGV2YWwgZXhlYyAiJGV4ZWNfY21kIgorICBleGl0ICRFWElUX0ZBSUxVUkUKK2ZpCisKK2V4aXQgJGV4aXRfc3RhdHVzCisKKworIyBUaGUgVEFHcyBiZWxvdyBhcmUgZGVmaW5lZCBzdWNoIHRoYXQgd2UgbmV2ZXIgZ2V0IGludG8gYSBzaXR1YXRpb24KKyMgaW4gd2hpY2ggd2UgZGlzYWJsZSBib3RoIGtpbmRzIG9mIGxpYnJhcmllcy4gIEdpdmVuIGNvbmZsaWN0aW5nCisjIGNob2ljZXMsIHdlIGdvIGZvciBhIHN0YXRpYyBsaWJyYXJ5LCB0aGF0IGlzIHRoZSBtb3N0IHBvcnRhYmxlLAorIyBzaW5jZSB3ZSBjYW4ndCB0ZWxsIHdoZXRoZXIgc2hhcmVkIGxpYnJhcmllcyB3ZXJlIGRpc2FibGVkIGJlY2F1c2UKKyMgdGhlIHVzZXIgYXNrZWQgZm9yIHRoYXQgb3IgYmVjYXVzZSB0aGUgcGxhdGZvcm0gZG9lc24ndCBzdXBwb3J0CisjIHRoZW0uICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgb24gQUlYLCBiZWNhdXNlIHdlIGRvbid0CisjIHN1cHBvcnQgaGF2aW5nIGJvdGggc3RhdGljIGFuZCBzaGFyZWQgbGlicmFyaWVzIGVuYWJsZWQgYXQgdGhlIHNhbWUKKyMgdGltZSBvbiB0aGF0IHBsYXRmb3JtLCBzbyB3ZSBkZWZhdWx0IHRvIGEgc2hhcmVkLW9ubHkgY29uZmlndXJhdGlvbi4KKyMgSWYgYSBkaXNhYmxlLXNoYXJlZCB0YWcgaXMgZ2l2ZW4sIHdlJ2xsIGZhbGxiYWNrIHRvIGEgc3RhdGljLW9ubHkKKyMgY29uZmlndXJhdGlvbi4gIEJ1dCB3ZSdsbCBuZXZlciBnbyBmcm9tIHN0YXRpYy1vbmx5IHRvIHNoYXJlZC1vbmx5LgorCisjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc2hhcmVkCitidWlsZF9saWJ0b29sX2xpYnM9bm8KK2J1aWxkX29sZF9saWJzPXllcworIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zaGFyZWQKKworIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXN0YXRpYworYnVpbGRfb2xkX2xpYnM9YGNhc2UgJGJ1aWxkX2xpYnRvb2xfbGlicyBpbiB5ZXMpIGVjaG8gbm87OyAqKSBlY2hvIHllczs7IGVzYWNgCisjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXN0YXRpYworCisjIExvY2FsIFZhcmlhYmxlczoKKyMgbW9kZTpzaGVsbC1zY3JpcHQKKyMgc2gtaW5kZW50YXRpb246MgorIyBFbmQ6CisjIHZpOnN3PTIKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL21pc3NpbmcgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvbWlzc2luZwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yODA1NWQyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL21pc3NpbmcKQEAgLTAsMCArMSwzNzYgQEAKKyMhIC9iaW4vc2gKKyMgQ29tbW9uIHN0dWIgZm9yIGEgZmV3IG1pc3NpbmcgR05VIHByb2dyYW1zIHdoaWxlIGluc3RhbGxpbmcuCisKK3NjcmlwdHZlcnNpb249MjAwOS0wNC0yOC4yMTsgIyBVVEMKKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTksIDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsCisjIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIE9yaWdpbmFsbHkgYnkgRnJhbixjb2lzIFBpbmFyZCA8cGluYXJkQGlyby51bW9udHJlYWwuY2E+LCAxOTk2LgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyMgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKK2lmIHRlc3QgJCMgLWVxIDA7IHRoZW4KKyAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgorICBleGl0IDEKK2ZpCisKK3J1bj06CitzZWRfb3V0cHV0PSdzLy4qIC0tb3V0cHV0WyA9XVwoW14gXSpcKS4qL1wxL3AnCitzZWRfbWludXNvPSdzLy4qIC1vIFwoW14gXSpcKS4qL1wxL3AnCisKKyMgSW4gdGhlIGNhc2VzIHdoZXJlIHRoaXMgbWF0dGVycywgYG1pc3NpbmcnIGlzIGJlaW5nIHJ1biBpbiB0aGUKKyMgc3JjZGlyIGFscmVhZHkuCitpZiB0ZXN0IC1mIGNvbmZpZ3VyZS5hYzsgdGhlbgorICBjb25maWd1cmVfYWM9Y29uZmlndXJlLmFjCitlbHNlCisgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuaW4KK2ZpCisKK21zZz0ibWlzc2luZyBvbiB5b3VyIHN5c3RlbSIKKworY2FzZSAkMSBpbgorLS1ydW4pCisgICMgVHJ5IHRvIHJ1biByZXF1ZXN0ZWQgcHJvZ3JhbSwgYW5kIGp1c3QgZXhpdCBpZiBpdCBzdWNjZWVkcy4KKyAgcnVuPQorICBzaGlmdAorICAiJEAiICYmIGV4aXQgMAorICAjIEV4aXQgY29kZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21hdGNoLiAgVGhpcyBvZnRlbiBoYXBwZW5zCisgICMgd2hlbiB0aGUgdXNlciB0cnkgdG8gdXNlIGFuIGFuY2llbnQgdmVyc2lvbiBvZiBhIHRvb2wgb24KKyAgIyBhIGZpbGUgdGhhdCByZXF1aXJlcyBhIG1pbmltdW0gdmVyc2lvbi4gIEluIHRoaXMgY2FzZSB3ZQorICAjIHdlIHNob3VsZCBwcm9jZWVkIGhhcyBpZiB0aGUgcHJvZ3JhbSBoYWQgYmVlbiBhYnNlbnQsIG9yCisgICMgaWYgLS1ydW4gaGFkbid0IGJlZW4gcGFzc2VkLgorICBpZiB0ZXN0ICQ/ID0gNjM7IHRoZW4KKyAgICBydW49OgorICAgIG1zZz0icHJvYmFibHkgdG9vIG9sZCIKKyAgZmkKKyAgOzsKKworICAtaHwtLWh8LS1oZXwtLWhlbHwtLWhlbHApCisgICAgZWNobyAiXAorJDAgW09QVElPTl0uLi4gUFJPR1JBTSBbQVJHVU1FTlRdLi4uCisKK0hhbmRsZSBcYFBST0dSQU0gW0FSR1VNRU5UXS4uLicgZm9yIHdoZW4gUFJPR1JBTSBpcyBtaXNzaW5nLCBvciByZXR1cm4gYW4KK2Vycm9yIHN0YXR1cyBpZiB0aGVyZSBpcyBubyBrbm93biBoYW5kbGluZyBmb3IgUFJPR1JBTS4KKworT3B0aW9uczoKKyAgLWgsIC0taGVscCAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0CisgIC12LCAtLXZlcnNpb24gICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAorICAtLXJ1biAgICAgICAgICAgdHJ5IHRvIHJ1biB0aGUgZ2l2ZW4gY29tbWFuZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQgZmFpbHMKKworU3VwcG9ydGVkIFBST0dSQU0gdmFsdWVzOgorICBhY2xvY2FsICAgICAgdG91Y2ggZmlsZSBcYGFjbG9jYWwubTQnCisgIGF1dG9jb25mICAgICB0b3VjaCBmaWxlIFxgY29uZmlndXJlJworICBhdXRvaGVhZGVyICAgdG91Y2ggZmlsZSBcYGNvbmZpZy5oLmluJworICBhdXRvbTR0ZSAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlLCBvciBjcmVhdGUgYSBzdHViIG9uZQorICBhdXRvbWFrZSAgICAgdG91Y2ggYWxsIFxgTWFrZWZpbGUuaW4nIGZpbGVzCisgIGJpc29uICAgICAgICBjcmVhdGUgXGB5LnRhYi5bY2hdJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLltjaF0KKyAgZmxleCAgICAgICAgIGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKKyAgaGVscDJtYW4gICAgIHRvdWNoIHRoZSBvdXRwdXQgZmlsZQorICBsZXggICAgICAgICAgY3JlYXRlIFxgbGV4Lnl5LmMnLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuYworICBtYWtlaW5mbyAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCisgIHRhciAgICAgICAgICB0cnkgdGFyLCBnbnV0YXIsIGd0YXIsIHRoZW4gdGFyIHdpdGhvdXQgbm9uLXBvcnRhYmxlIGZsYWdzCisgIHlhY2MgICAgICAgICBjcmVhdGUgXGB5LnRhYi5bY2hdJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLltjaF0KKworVmVyc2lvbiBzdWZmaXhlcyB0byBQUk9HUkFNIGFzIHdlbGwgYXMgdGhlIHByZWZpeGVzIFxgZ251LScsIFxgZ251JywgYW5kCitcYGcnIGFyZSBpZ25vcmVkIHdoZW4gY2hlY2tpbmcgdGhlIG5hbWUuCisKK1NlbmQgYnVnIHJlcG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCisgICAgZXhpdCAkPworICAgIDs7CisKKyAgLXZ8LS12fC0tdmV8LS12ZXJ8LS12ZXJzfC0tdmVyc2l8LS12ZXJzaW98LS12ZXJzaW9uKQorICAgIGVjaG8gIm1pc3NpbmcgJHNjcmlwdHZlcnNpb24gKEdOVSBBdXRvbWFrZSkiCisgICAgZXhpdCAkPworICAgIDs7CisKKyAgLSopCisgICAgZWNobyAxPiYyICIkMDogVW5rbm93biBcYCQxJyBvcHRpb24iCisgICAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgorICAgIGV4aXQgMQorICAgIDs7CisKK2VzYWMKKworIyBub3JtYWxpemUgcHJvZ3JhbSBuYW1lIHRvIGNoZWNrIGZvci4KK3Byb2dyYW09YGVjaG8gIiQxIiB8IHNlZCAnCisgIHMvXmdudS0vLzsgdAorICBzL15nbnUvLzsgdAorICBzL15nLy87IHQnYAorCisjIE5vdyBleGl0IGlmIHdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuICBBbHNvIGV4aXQgbm93IGlmIHdlCisjIGRvbid0IGhhdmUgaXQgYW5kIC0tdmVyc2lvbiB3YXMgcGFzc2VkIChtb3N0IGxpa2VseSB0byBkZXRlY3QKKyMgdGhlIHByb2dyYW0pLiAgVGhpcyBpcyBhYm91dCBub24tR05VIHByb2dyYW1zLCBzbyB1c2UgJDEgbm90CisjICRwcm9ncmFtLgorY2FzZSAkMSBpbgorICBsZXgqfHlhY2MqKQorICAgICMgTm90IEdOVSBwcm9ncmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lvbi4KKyAgICA7OworCisgIHRhciopCisgICAgaWYgdGVzdCAtbiAiJHJ1biI7IHRoZW4KKyAgICAgICBlY2hvIDE+JjIgIkVSUk9SOiBcYHRhcicgcmVxdWlyZXMgLS1ydW4iCisgICAgICAgZXhpdCAxCisgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8IHRlc3QgIngkMiIgPSAieC0taGVscCI7IHRoZW4KKyAgICAgICBleGl0IDEKKyAgICBmaQorICAgIDs7CisKKyAgKikKKyAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICAgIyBXZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLgorICAgICAgIGV4aXQgMQorICAgIGVsaWYgdGVzdCAieCQyIiA9ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIiID0gIngtLWhlbHAiOyB0aGVuCisgICAgICAgIyBDb3VsZCBub3QgcnVuIC0tdmVyc2lvbiBvciAtLWhlbHAuICBUaGlzIGlzIHByb2JhYmx5IHNvbWVvbmUKKyAgICAgICAjIHJ1bm5pbmcgYCRUT09MIC0tdmVyc2lvbicgb3IgYCRUT09MIC0taGVscCcgdG8gY2hlY2sgd2hldGhlcgorICAgICAgICMgJFRPT0wgZXhpc3RzIGFuZCBub3Qga25vd2luZyAkVE9PTCB1c2VzIG1pc3NpbmcuCisgICAgICAgZXhpdCAxCisgICAgZmkKKyAgICA7OworZXNhYworCisjIElmIGl0IGRvZXMgbm90IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFuIG91dGRhdGVkIHZlcnNpb24pLAorIyB0cnkgdG8gZW11bGF0ZSBpdC4KK2Nhc2UgJHByb2dyYW0gaW4KKyAgYWNsb2NhbCopCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFjaW5jbHVkZS5tNCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKKyAgICAgICAgIHRvIGluc3RhbGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLiAgR3JhYiB0aGVtIGZyb20KKyAgICAgICAgIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKyAgICB0b3VjaCBhY2xvY2FsLm00CisgICAgOzsKKworICBhdXRvY29uZiopCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZQorICAgICAgICAgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tIGFueSBHTlUKKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCisgICAgdG91Y2ggY29uZmlndXJlCisgICAgOzsKKworICBhdXRvaGVhZGVyKikKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNjb25maWcuaCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKKyAgICAgICAgIHRvIGluc3RhbGwgdGhlIFxgQXV0b2NvbmYnIGFuZCBcYEdOVSBtNCcgcGFja2FnZXMuICBHcmFiIHRoZW0KKyAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorICAgIGZpbGVzPWBzZWQgLW4gJ3MvXlsgXSpBW0NNXV9DT05GSUdfSEVBREVSKFwoW14pXSpcKSkuKi9cMS9wJyAke2NvbmZpZ3VyZV9hY31gCisgICAgdGVzdCAteiAiJGZpbGVzIiAmJiBmaWxlcz0iY29uZmlnLmgiCisgICAgdG91Y2hfZmlsZXM9CisgICAgZm9yIGYgaW4gJGZpbGVzOyBkbworICAgICAgY2FzZSAkZiBpbgorICAgICAgKjoqKSB0b3VjaF9maWxlcz0iJHRvdWNoX2ZpbGVzICJgZWNobyAiJGYiIHwKKwkJCQkgICAgICAgc2VkIC1lICdzL15bXjpdKjovLycgLWUgJ3MvOi4qLy8nYDs7CisgICAgICAqKSB0b3VjaF9maWxlcz0iJHRvdWNoX2ZpbGVzICRmLmluIjs7CisgICAgICBlc2FjCisgICAgZG9uZQorICAgIHRvdWNoICR0b3VjaF9maWxlcworICAgIDs7CisKKyAgYXV0b21ha2UqKQorICAgIGVjaG8gMT4mMiAiXAorV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisgICAgICAgICB5b3UgbW9kaWZpZWQgXGBNYWtlZmlsZS5hbScsIFxgYWNpbmNsdWRlLm00JyBvciBcYCR7Y29uZmlndXJlX2FjfScuCisgICAgICAgICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4KKyAgICAgICAgIEdyYWIgdGhlbSBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKyAgICBmaW5kIC4gLXR5cGUgZiAtbmFtZSBNYWtlZmlsZS5hbSAtcHJpbnQgfAorCSAgIHNlZCAncy9cLmFtJC8uaW4vJyB8CisJICAgd2hpbGUgcmVhZCBmOyBkbyB0b3VjaCAiJGYiOyBkb25lCisgICAgOzsKKworICBhdXRvbTR0ZSopCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyBuZWVkZWQsIGJ1dCBpcyAkbXNnLgorICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKKyAgICAgICAgIHByb3BlciB0b29scyBmb3IgZnVydGhlciBoYW5kbGluZyB0aGVtLgorICAgICAgICAgWW91IGNhbiBnZXQgXGAkMScgYXMgcGFydCBvZiBcYEF1dG9jb25mJyBmcm9tIGFueSBHTlUKKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCisKKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAKKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCisgICAgaWYgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCisJdG91Y2ggJGZpbGUKKyAgICBlbHNlCisJdGVzdCAteiAiJGZpbGUiIHx8IGV4ZWMgPiRmaWxlCisJZWNobyAiIyEgL2Jpbi9zaCIKKwllY2hvICIjIENyZWF0ZWQgYnkgR05VIEF1dG9tYWtlIG1pc3NpbmcgYXMgYSByZXBsYWNlbWVudCBvZiIKKwllY2hvICIjICAkICRAIgorCWVjaG8gImV4aXQgMCIKKwljaG1vZCAreCAkZmlsZQorCWV4aXQgMQorICAgIGZpCisgICAgOzsKKworICBiaXNvbip8eWFjYyopCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnknIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKKyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKKyAgICAgICAgIFxgQmlzb24nIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorICAgIHJtIC1mIHkudGFiLmMgeS50YWIuaAorICAgIGlmIHRlc3QgJCMgLW5lIDE7IHRoZW4KKyAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCisJY2FzZSAkTEFTVEFSRyBpbgorCSoueSkKKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL3kkL2MvJ2AKKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCisJICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5jCisJICAgIGZpCisJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9oLydgCisJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgorCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50YWIuaAorCSAgICBmaQorCSAgOzsKKwllc2FjCisgICAgZmkKKyAgICBpZiB0ZXN0ICEgLWYgeS50YWIuaDsgdGhlbgorCWVjaG8gPnkudGFiLmgKKyAgICBmaQorICAgIGlmIHRlc3QgISAtZiB5LnRhYi5jOyB0aGVuCisJZWNobyAnbWFpbigpIHsgcmV0dXJuIDA7IH0nID55LnRhYi5jCisgICAgZmkKKyAgICA7OworCisgIGxleCp8ZmxleCopCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLmwnIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgRmxleCcgcGFja2FnZQorICAgICAgICAgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZSBlZmZlY3QuICBZb3UgY2FuIGdldAorICAgICAgICAgXGBGbGV4JyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKyAgICBybSAtZiBsZXgueXkuYworICAgIGlmIHRlc3QgJCMgLW5lIDE7IHRoZW4KKyAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCisJY2FzZSAkTEFTVEFSRyBpbgorCSoubCkKKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL2wkL2MvJ2AKKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCisJICAgICAgICAgY3AgIiRTUkNGSUxFIiBsZXgueXkuYworCSAgICBmaQorCSAgOzsKKwllc2FjCisgICAgZmkKKyAgICBpZiB0ZXN0ICEgLWYgbGV4Lnl5LmM7IHRoZW4KKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPmxleC55eS5jCisgICAgZmkKKyAgICA7OworCisgIGhlbHAybWFuKikKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorCSB5b3UgbW9kaWZpZWQgYSBkZXBlbmRlbmN5IG9mIGEgbWFudWFsIHBhZ2UuICBZb3UgbWF5IG5lZWQgdGhlCisJIFxgSGVscDJtYW4nIHBhY2thZ2UgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZQorCSBlZmZlY3QuICBZb3UgY2FuIGdldCBcYEhlbHAybWFuJyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKworICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfbWludXNvImAKKyAgICBpZiB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KKwl0b3VjaCAkZmlsZQorICAgIGVsc2UKKwl0ZXN0IC16ICIkZmlsZSIgfHwgZXhlYyA+JGZpbGUKKwllY2hvICIuYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlIgorCWV4aXQgJD8KKyAgICBmaQorICAgIDs7CisKKyAgbWFrZWluZm8qKQorICAgIGVjaG8gMT4mMiAiXAorV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC50ZXhpJyBvciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmlsZQorICAgICAgICAgaW5kaXJlY3RseSBhZmZlY3RpbmcgdGhlIGFzcGVjdCBvZiB0aGUgbWFudWFsLiAgVGhlIHNwdXJpb3VzCisgICAgICAgICBjYWxsIG1pZ2h0IGFsc28gYmUgdGhlIGNvbnNlcXVlbmNlIG9mIHVzaW5nIGEgYnVnZ3kgXGBtYWtlJyAoQUlYLAorICAgICAgICAgRFUsIElSSVgpLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdlIG9yCisgICAgICAgICB0aGUgXGBHTlUgbWFrZScgcGFja2FnZS4gIEdyYWIgZWl0aGVyIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorICAgICMgVGhlIGZpbGUgdG8gdG91Y2ggaXMgdGhhdCBzcGVjaWZpZWQgd2l0aCAtbyAuLi4KKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAKKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCisgICAgaWYgdGVzdCAteiAiJGZpbGUiOyB0aGVuCisgICAgICAjIC4uLiBvciBpdCBpcyB0aGUgb25lIHNwZWNpZmllZCB3aXRoIEBzZXRmaWxlbmFtZSAuLi4KKyAgICAgIGluZmlsZT1gZWNobyAiJCoiIHwgc2VkICdzLy4qIFwoW14gXSpcKSAqJC9cMS8nYAorICAgICAgZmlsZT1gc2VkIC1uICcKKwkvXkBzZXRmaWxlbmFtZS97CisJICBzLy4qIFwoW14gXSpcKSAqJC9cMS8KKwkgIHAKKwkgIHEKKwl9JyAkaW5maWxlYAorICAgICAgIyAuLi4gb3IgaXQgaXMgZGVyaXZlZCBmcm9tIHRoZSBzb3VyY2UgbmFtZSAoZGlyL2YudGV4aSBiZWNvbWVzIGYuaW5mbykKKyAgICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkaW5maWxlIiB8IHNlZCAncywuKi8sLDtzLC5bXi5dKiQsLCdgLmluZm8KKyAgICBmaQorICAgICMgSWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QsIHRoZSB1c2VyIHJlYWxseSBuZWVkcyBtYWtlaW5mbzsKKyAgICAjIGxldCdzIGZhaWwgd2l0aG91dCB0b3VjaGluZyBhbnl0aGluZy4KKyAgICB0ZXN0IC1mICRmaWxlIHx8IGV4aXQgMQorICAgIHRvdWNoICRmaWxlCisgICAgOzsKKworICB0YXIqKQorICAgIHNoaWZ0CisKKyAgICAjIFdlIGhhdmUgYWxyZWFkeSB0cmllZCB0YXIgaW4gdGhlIGdlbmVyaWMgcGFydC4KKyAgICAjIExvb2sgZm9yIGdudXRhci9ndGFyIGJlZm9yZSBpbnZvY2F0aW9uIHRvIGF2b2lkIHVnbHkgZXJyb3IKKyAgICAjIG1lc3NhZ2VzLgorICAgIGlmIChnbnV0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCisgICAgICAgZ251dGFyICIkQCIgJiYgZXhpdCAwCisgICAgZmkKKyAgICBpZiAoZ3RhciAtLXZlcnNpb24gPiAvZGV2L251bGwgMj4mMSk7IHRoZW4KKyAgICAgICBndGFyICIkQCIgJiYgZXhpdCAwCisgICAgZmkKKyAgICBmaXJzdGFyZz0iJDEiCisgICAgaWYgc2hpZnQ7IHRoZW4KKwljYXNlICRmaXJzdGFyZyBpbgorCSpvKikKKwkgICAgZmlyc3Rhcmc9YGVjaG8gIiRmaXJzdGFyZyIgfCBzZWQgcy9vLy9gCisJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAorCSAgICA7OworCWVzYWMKKwljYXNlICRmaXJzdGFyZyBpbgorCSpoKikKKwkgICAgZmlyc3Rhcmc9YGVjaG8gIiRmaXJzdGFyZyIgfCBzZWQgcy9oLy9gCisJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAorCSAgICA7OworCWVzYWMKKyAgICBmaQorCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBJIGNhbid0IHNlZW0gdG8gYmUgYWJsZSB0byBydW4gXGB0YXInIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KKyAgICAgICAgIFlvdSBtYXkgd2FudCB0byBpbnN0YWxsIEdOVSB0YXIgb3IgRnJlZSBwYXh1dGlscywgb3IgY2hlY2sgdGhlCisgICAgICAgICBjb21tYW5kIGxpbmUgYXJndW1lbnRzLiIKKyAgICBleGl0IDEKKyAgICA7OworCisgICopCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyBuZWVkZWQsIGFuZCBpcyAkbXNnLgorICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKKyAgICAgICAgIHByb3BlciB0b29scyBmb3IgZnVydGhlciBoYW5kbGluZyB0aGVtLiAgQ2hlY2sgdGhlIFxgUkVBRE1FJyBmaWxlLAorICAgICAgICAgaXQgb2Z0ZW4gdGVsbHMgeW91IGFib3V0IHRoZSBuZWVkZWQgcHJlcmVxdWlzaXRlcyBmb3IgaW5zdGFsbGluZworICAgICAgICAgdGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBlZWsgYXQgYW55IEdOVSBhcmNoaXZlIHNpdGUsIGluIGNhc2UKKyAgICAgICAgIHNvbWUgb3RoZXIgcGFja2FnZSB3b3VsZCBjb250YWluIHRoaXMgbWlzc2luZyBcYCQxJyBwcm9ncmFtLiIKKyAgICBleGl0IDEKKyAgICA7OworZXNhYworCitleGl0IDAKKworIyBMb2NhbCB2YXJpYWJsZXM6CisjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgorIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKKyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCisjIHRpbWUtc3RhbXAtZW5kOiAiOyAjIFVUQyIKKyMgRW5kOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL21raW5zdGFsbGRpcnMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvbWtpbnN0YWxsZGlycwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMmQ1ZjIxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL21raW5zdGFsbGRpcnMKQEAgLTAsMCArMSwxMTEgQEAKKyMhIC9iaW4vc2gKKyMgbWtpbnN0YWxsZGlycyAtLS0gbWFrZSBkaXJlY3RvcnkgaGllcmFyY2h5CisjIEF1dGhvcjogTm9haCBGcmllZG1hbiA8ZnJpZWRtYW5AcHJlcC5haS5taXQuZWR1PgorIyBDcmVhdGVkOiAxOTkzLTA1LTE2CisjIFB1YmxpYyBkb21haW4KKworZXJyc3RhdHVzPTAKK2Rpcm1vZGU9IiIKKwordXNhZ2U9IlwKK1VzYWdlOiBta2luc3RhbGxkaXJzIFstaF0gWy0taGVscF0gWy1tIG1vZGVdIGRpciAuLi4iCisKKyMgcHJvY2VzcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzCit3aGlsZSB0ZXN0ICQjIC1ndCAwIDsgZG8KKyAgY2FzZSAkMSBpbgorICAgIC1oIHwgLS1oZWxwIHwgLS1oKikgICAgICAgICAjIC1oIGZvciBoZWxwCisgICAgICBlY2hvICIkdXNhZ2UiIDE+JjIKKyAgICAgIGV4aXQgMAorICAgICAgOzsKKyAgICAtbSkgICAgICAgICAgICAgICAgICAgICAgICAgIyAtbSBQRVJNIGFyZworICAgICAgc2hpZnQKKyAgICAgIHRlc3QgJCMgLWVxIDAgJiYgeyBlY2hvICIkdXNhZ2UiIDE+JjI7IGV4aXQgMTsgfQorICAgICAgZGlybW9kZT0kMQorICAgICAgc2hpZnQKKyAgICAgIDs7CisgICAgLS0pICAgICAgICAgICAgICAgICAgICAgICAgICMgc3RvcCBvcHRpb24gcHJvY2Vzc2luZworICAgICAgc2hpZnQKKyAgICAgIGJyZWFrCisgICAgICA7OworICAgIC0qKSAgICAgICAgICAgICAgICAgICAgICAgICAjIHVua25vd24gb3B0aW9uCisgICAgICBlY2hvICIkdXNhZ2UiIDE+JjIKKyAgICAgIGV4aXQgMQorICAgICAgOzsKKyAgICAqKSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmaXJzdCBub24tb3B0IGFyZworICAgICAgYnJlYWsKKyAgICAgIDs7CisgIGVzYWMKK2RvbmUKKworZm9yIGZpbGUKK2RvCisgIGlmIHRlc3QgLWQgIiRmaWxlIjsgdGhlbgorICAgIHNoaWZ0CisgIGVsc2UKKyAgICBicmVhaworICBmaQorZG9uZQorCitjYXNlICQjIGluCisgIDApIGV4aXQgMCA7OworZXNhYworCitjYXNlICRkaXJtb2RlIGluCisgICcnKQorICAgIGlmIG1rZGlyIC1wIC0tIC4gMj4vZGV2L251bGw7IHRoZW4KKyAgICAgIGVjaG8gIm1rZGlyIC1wIC0tICQqIgorICAgICAgZXhlYyBta2RpciAtcCAtLSAiJEAiCisgICAgZmkKKyAgICA7OworICAqKQorICAgIGlmIG1rZGlyIC1tICIkZGlybW9kZSIgLXAgLS0gLiAyPi9kZXYvbnVsbDsgdGhlbgorICAgICAgZWNobyAibWtkaXIgLW0gJGRpcm1vZGUgLXAgLS0gJCoiCisgICAgICBleGVjIG1rZGlyIC1tICIkZGlybW9kZSIgLXAgLS0gIiRAIgorICAgIGZpCisgICAgOzsKK2VzYWMKKworZm9yIGZpbGUKK2RvCisgIHNldCBmbm9yZCBgZWNobyAiOiRmaWxlIiB8IHNlZCAtbmUgJ3MvXjpcLy8jLztzL146Ly87cy9cLy8gL2c7cy9eIy9cLy87cCdgCisgIHNoaWZ0CisKKyAgcGF0aGNvbXA9CisgIGZvciBkCisgIGRvCisgICAgcGF0aGNvbXA9IiRwYXRoY29tcCRkIgorICAgIGNhc2UgJHBhdGhjb21wIGluCisgICAgICAtKikgcGF0aGNvbXA9Li8kcGF0aGNvbXAgOzsKKyAgICBlc2FjCisKKyAgICBpZiB0ZXN0ICEgLWQgIiRwYXRoY29tcCI7IHRoZW4KKyAgICAgIGVjaG8gIm1rZGlyICRwYXRoY29tcCIKKworICAgICAgbWtkaXIgIiRwYXRoY29tcCIgfHwgbGFzdGVycj0kPworCisgICAgICBpZiB0ZXN0ICEgLWQgIiRwYXRoY29tcCI7IHRoZW4KKyAgCWVycnN0YXR1cz0kbGFzdGVycgorICAgICAgZWxzZQorICAJaWYgdGVzdCAhIC16ICIkZGlybW9kZSI7IHRoZW4KKwkgIGVjaG8gImNobW9kICRkaXJtb2RlICRwYXRoY29tcCIKKyAgICAJICBsYXN0ZXJyPSIiCisgIAkgIGNobW9kICIkZGlybW9kZSIgIiRwYXRoY29tcCIgfHwgbGFzdGVycj0kPworCisgIAkgIGlmIHRlc3QgISAteiAiJGxhc3RlcnIiOyB0aGVuCisgIAkgICAgZXJyc3RhdHVzPSRsYXN0ZXJyCisgIAkgIGZpCisgIAlmaQorICAgICAgZmkKKyAgICBmaQorCisgICAgcGF0aGNvbXA9IiRwYXRoY29tcC8iCisgIGRvbmUKK2RvbmUKKworZXhpdCAkZXJyc3RhdHVzCisKKyMgTG9jYWwgVmFyaWFibGVzOgorIyBtb2RlOiBzaGVsbC1zY3JpcHQKKyMgc2gtaW5kZW50YXRpb246IDIKKyMgRW5kOgorIyBta2luc3RhbGxkaXJzIGVuZHMgaGVyZQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL3RleGluZm8udGV4IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlnL3RleGluZm8udGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmMmM0MDYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWcvdGV4aW5mby50ZXgKQEAgLTAsMCArMSw3MjEwIEBACislIHRleGluZm8udGV4IC0tIFRlWCBtYWNyb3MgdG8gaGFuZGxlIFRleGluZm8gZmlsZXMuCislCislIExvYWQgcGxhaW4gaWYgbmVjZXNzYXJ5LCBpLmUuLCBpZiBydW5uaW5nIHVuZGVyIGluaXRleC4KK1xleHBhbmRhZnRlclxpZnhcY3NuYW1lIGZtdG5hbWVcZW5kY3NuYW1lXHJlbGF4XGlucHV0IHBsYWluXGZpCislCitcZGVmXHRleGluZm92ZXJzaW9uezIwMDUtMDctMDUuMTl9CislCislIENvcHlyaWdodCAoQykgMTk4NSwgMTk4NiwgMTk4OCwgMTk5MCwgMTk5MSwgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwKKyUgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSBGcmVlIFNvZnR3YXJlCislIEZvdW5kYXRpb24sIEluYy4KKyUKKyUgVGhpcyB0ZXhpbmZvLnRleCBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorJSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworJSBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0CislIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyUKKyUgVGhpcyB0ZXhpbmZvLnRleCBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZQorJSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5CislIG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCislIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyUKKyUgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyUgYWxvbmcgd2l0aCB0aGlzIHRleGluZm8udGV4IGZpbGU7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZQorJSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorJSBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyUKKyUgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgd2hlbiB0aGlzIGZpbGUgaXMgcmVhZCBieSBUZVggd2hlbiBwcm9jZXNzaW5nCislIGEgVGV4aW5mbyBzb3VyY2UgZG9jdW1lbnQsIHlvdSBtYXkgdXNlIHRoZSByZXN1bHQgd2l0aG91dAorJSByZXN0cmljdGlvbi4gIChUaGlzIGhhcyBiZWVuIG91ciBpbnRlbnQgc2luY2UgVGV4aW5mbyB3YXMgaW52ZW50ZWQuKQorJQorJSBQbGVhc2UgdHJ5IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0ZXhpbmZvLnRleCBiZWZvcmUgc3VibWl0dGluZyBidWcKKyUgcmVwb3J0czsgeW91IGNhbiBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIGZyb206CislICAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL3RleGluZm8vICh0aGUgVGV4aW5mbyBob21lIHBhZ2UpLCBvcgorJSAgIGZ0cDovL3R1Zy5vcmcvdGV4L3RleGluZm8udGV4CislICAgICAoYW5kIGFsbCBDVEFOIG1pcnJvcnMsIHNlZSBodHRwOi8vd3d3LmN0YW4ub3JnKS4KKyUgVGhlIHRleGluZm8udGV4IGluIGFueSBnaXZlbiBkaXN0cmlidXRpb24gY291bGQgd2VsbCBiZSBvdXQKKyUgb2YgZGF0ZSwgc28gaWYgdGhhdCdzIHdoYXQgeW91J3JlIHVzaW5nLCBwbGVhc2UgY2hlY2suCislCislIFNlbmQgYnVnIHJlcG9ydHMgdG8gYnVnLXRleGluZm9AZ251Lm9yZy4gIFBsZWFzZSBpbmNsdWRlIGluY2x1ZGluZyBhCislIGNvbXBsZXRlIGRvY3VtZW50IGluIGVhY2ggYnVnIHJlcG9ydCB3aXRoIHdoaWNoIHdlIGNhbiByZXByb2R1Y2UgdGhlCislIHByb2JsZW0uICBQYXRjaGVzIGFyZSwgb2YgY291cnNlLCBncmVhdGx5IGFwcHJlY2lhdGVkLgorJQorJSBUbyBwcm9jZXNzIGEgVGV4aW5mbyBtYW51YWwgd2l0aCBUZVgsIGl0J3MgbW9zdCByZWxpYWJsZSB0byB1c2UgdGhlCislIHRleGkyZHZpIHNoZWxsIHNjcmlwdCB0aGF0IGNvbWVzIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gIEZvciBhIHNpbXBsZQorJSBtYW51YWwgZm9vLnRleGksIGhvd2V2ZXIsIHlvdSBjYW4gZ2V0IGF3YXkgd2l0aCB0aGlzOgorJSAgIHRleCBmb28udGV4aQorJSAgIHRleGluZGV4IGZvby4/PworJSAgIHRleCBmb28udGV4aQorJSAgIHRleCBmb28udGV4aQorJSAgIGR2aXBzIGZvby5kdmkgLW8gICMgb3Igd2hhdGV2ZXI7IHRoaXMgbWFrZXMgZm9vLnBzLgorJSBUaGUgZXh0cmEgVGVYIHJ1bnMgZ2V0IHRoZSBjcm9zcy1yZWZlcmVuY2UgaW5mb3JtYXRpb24gY29ycmVjdC4KKyUgU29tZXRpbWVzIG9uZSBydW4gYWZ0ZXIgdGV4aW5kZXggc3VmZmljZXMsIGFuZCBzb21ldGltZXMgeW91IG5lZWQgbW9yZQorJSB0aGFuIHR3bzsgdGV4aTJkdmkgZG9lcyBpdCBhcyBtYW55IHRpbWVzIGFzIG5lY2Vzc2FyeS4KKyUKKyUgSXQgaXMgcG9zc2libGUgdG8gYWRhcHQgdGV4aW5mby50ZXggZm9yIG90aGVyIGxhbmd1YWdlcywgdG8gc29tZQorJSBleHRlbnQuICBZb3UgY2FuIGdldCB0aGUgZXhpc3RpbmcgbGFuZ3VhZ2Utc3BlY2lmaWMgZmlsZXMgZnJvbSB0aGUKKyUgZnVsbCBUZXhpbmZvIGRpc3RyaWJ1dGlvbi4KKyUKKyUgVGhlIEdOVSBUZXhpbmZvIGhvbWUgcGFnZSBpcyBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvdGV4aW5mby4KKworCitcbWVzc2FnZXtMb2FkaW5nIHRleGluZm8gW3ZlcnNpb24gXHRleGluZm92ZXJzaW9uXTp9CisKKyUgSWYgaW4gYSAuZm10IGZpbGUsIHByaW50IHRoZSB2ZXJzaW9uIG51bWJlcgorJSBhbmQgdHVybiBvbiBhY3RpdmUgY2hhcmFjdGVycyB0aGF0IHdlIGNvdWxkbid0IGRvIGVhcmxpZXIgYmVjYXVzZQorJSB0aGV5IG1pZ2h0IGhhdmUgYXBwZWFyZWQgaW4gdGhlIGlucHV0IGZpbGUgbmFtZS4KK1xldmVyeWpvYntcbWVzc2FnZXtbVGV4aW5mbyB2ZXJzaW9uIFx0ZXhpbmZvdmVyc2lvbl19JQorICBcY2F0Y29kZWArPVxhY3RpdmUgXGNhdGNvZGVgXF89XGFjdGl2ZX0KKworXG1lc3NhZ2V7QmFzaWNzLH0KK1xjaGFyZGVmXG90aGVyPTEyCisKKyUgV2UgbmV2ZXIgd2FudCBwbGFpbidzIFxvdXRlciBkZWZpbml0aW9uIG9mIFwrIGluIFRleGluZm8uCislIEZvciBAdGV4LCB3ZSBjYW4gdXNlIFx0YWJhbGlnbi4KK1xsZXRcKyA9IFxyZWxheAorCislIFNhdmUgc29tZSBwbGFpbiB0ZXggbWFjcm9zIHdob3NlIG5hbWVzIHdlIHdpbGwgcmVkZWZpbmUuCitcbGV0XHB0ZXhiPVxiCitcbGV0XHB0ZXhidWxsZXQ9XGJ1bGxldAorXGxldFxwdGV4Yz1cYworXGxldFxwdGV4Y29tbWE9XCwKK1xsZXRccHRleGRvdD1cLgorXGxldFxwdGV4ZG90cz1cZG90cworXGxldFxwdGV4ZW5kPVxlbmQKK1xsZXRccHRleGVxdWl2PVxlcXVpdgorXGxldFxwdGV4ZXhjbGFtPVwhCitcbGV0XHB0ZXhmb290bm90ZT1cZm9vdG5vdGUKK1xsZXRccHRleGd0cj0+CitcbGV0XHB0ZXhoYXQ9XgorXGxldFxwdGV4aT1caQorXGxldFxwdGV4aW5kZW50PVxpbmRlbnQKK1xsZXRccHRleGluc2VydD1caW5zZXJ0CitcbGV0XHB0ZXhsYnJhY2U9XHsKK1xsZXRccHRleGxlc3M9PAorXGxldFxwdGV4bmV3d3JpdGVcbmV3d3JpdGUKK1xsZXRccHRleG5vaW5kZW50PVxub2luZGVudAorXGxldFxwdGV4cGx1cz0rCitcbGV0XHB0ZXhyYnJhY2U9XH0KK1xsZXRccHRleHNsYXNoPVwvCitcbGV0XHB0ZXhzdGFyPVwqCitcbGV0XHB0ZXh0PVx0CisKKyUgSWYgdGhpcyBjaGFyYWN0ZXIgYXBwZWFycyBpbiBhbiBlcnJvciBtZXNzYWdlIG9yIGhlbHAgc3RyaW5nLCBpdAorJSBzdGFydHMgYSBuZXcgbGluZSBpbiB0aGUgb3V0cHV0LgorXG5ld2xpbmVjaGFyID0gYF5eSgorCislIFVzZSBUZVggMy4wJ3MgXGlucHV0bGluZW5vIHRvIGdldCB0aGUgbGluZSBudW1iZXIsIGZvciBiZXR0ZXIgZXJyb3IKKyUgbWVzc2FnZXMsIGJ1dCBpZiB3ZSdyZSB1c2luZyBhbiBvbGQgdmVyc2lvbiBvZiBUZVgsIGRvbid0IGRvIGFueXRoaW5nLgorJQorXGlmeFxpbnB1dGxpbmVub1x0aGlzaXN1bmRlZmluZWQKKyAgXGxldFxsaW5lbnVtYmVyID0gXGVtcHR5ICUgUHJlLTMuMC4KK1xlbHNlCisgIFxkZWZcbGluZW51bWJlcntsLlx0aGVcaW5wdXRsaW5lbm86XHNwYWNlfQorXGZpCisKKyUgU2V0IHVwIGZpeGVkIHdvcmRzIGZvciBFbmdsaXNoIGlmIG5vdCBhbHJlYWR5IHNldC4KK1xpZnhccHV0d29yZEFwcGVuZGl4XHVuZGVmaW5lZCAgXGdkZWZccHV0d29yZEFwcGVuZGl4e0FwcGVuZGl4fVxmaQorXGlmeFxwdXR3b3JkQ2hhcHRlclx1bmRlZmluZWQgICBcZ2RlZlxwdXR3b3JkQ2hhcHRlcntDaGFwdGVyfVxmaQorXGlmeFxwdXR3b3JkZmlsZVx1bmRlZmluZWQgICAgICBcZ2RlZlxwdXR3b3JkZmlsZXtmaWxlfVxmaQorXGlmeFxwdXR3b3JkaW5cdW5kZWZpbmVkICAgICAgICBcZ2RlZlxwdXR3b3JkaW57aW59XGZpCitcaWZ4XHB1dHdvcmRJbmRleElzRW1wdHlcdW5kZWZpbmVkICAgICBcZ2RlZlxwdXR3b3JkSW5kZXhJc0VtcHR5eyhJbmRleCBpcyBlbXB0eSl9XGZpCitcaWZ4XHB1dHdvcmRJbmRleE5vbmV4aXN0ZW50XHVuZGVmaW5lZCBcZ2RlZlxwdXR3b3JkSW5kZXhOb25leGlzdGVudHsoSW5kZXggaXMgbm9uZXhpc3RlbnQpfVxmaQorXGlmeFxwdXR3b3JkSW5mb1x1bmRlZmluZWQgICAgICBcZ2RlZlxwdXR3b3JkSW5mb3tJbmZvfVxmaQorXGlmeFxwdXR3b3JkSW5zdGFuY2VWYXJpYWJsZW9mXHVuZGVmaW5lZCBcZ2RlZlxwdXR3b3JkSW5zdGFuY2VWYXJpYWJsZW9me0luc3RhbmNlIFZhcmlhYmxlIG9mfVxmaQorXGlmeFxwdXR3b3JkTWV0aG9kb25cdW5kZWZpbmVkICBcZ2RlZlxwdXR3b3JkTWV0aG9kb257TWV0aG9kIG9ufVxmaQorXGlmeFxwdXR3b3JkTm9UaXRsZVx1bmRlZmluZWQgICBcZ2RlZlxwdXR3b3JkTm9UaXRsZXtObyBUaXRsZX1cZmkKK1xpZnhccHV0d29yZG9mXHVuZGVmaW5lZCAgICAgICAgXGdkZWZccHV0d29yZG9me29mfVxmaQorXGlmeFxwdXR3b3Jkb25cdW5kZWZpbmVkICAgICAgICBcZ2RlZlxwdXR3b3Jkb257b259XGZpCitcaWZ4XHB1dHdvcmRwYWdlXHVuZGVmaW5lZCAgICAgIFxnZGVmXHB1dHdvcmRwYWdle3BhZ2V9XGZpCitcaWZ4XHB1dHdvcmRzZWN0aW9uXHVuZGVmaW5lZCAgIFxnZGVmXHB1dHdvcmRzZWN0aW9ue3NlY3Rpb259XGZpCitcaWZ4XHB1dHdvcmRTZWN0aW9uXHVuZGVmaW5lZCAgIFxnZGVmXHB1dHdvcmRTZWN0aW9ue1NlY3Rpb259XGZpCitcaWZ4XHB1dHdvcmRzZWVcdW5kZWZpbmVkICAgICAgIFxnZGVmXHB1dHdvcmRzZWV7c2VlfVxmaQorXGlmeFxwdXR3b3JkU2VlXHVuZGVmaW5lZCAgICAgICBcZ2RlZlxwdXR3b3JkU2Vle1NlZX1cZmkKK1xpZnhccHV0d29yZFNob3J0VE9DXHVuZGVmaW5lZCAgXGdkZWZccHV0d29yZFNob3J0VE9De1Nob3J0IENvbnRlbnRzfVxmaQorXGlmeFxwdXR3b3JkVE9DXHVuZGVmaW5lZCAgICAgICBcZ2RlZlxwdXR3b3JkVE9De1RhYmxlIG9mIENvbnRlbnRzfVxmaQorJQorXGlmeFxwdXR3b3JkTUphblx1bmRlZmluZWQgXGdkZWZccHV0d29yZE1KYW57SmFudWFyeX1cZmkKK1xpZnhccHV0d29yZE1GZWJcdW5kZWZpbmVkIFxnZGVmXHB1dHdvcmRNRmVie0ZlYnJ1YXJ5fVxmaQorXGlmeFxwdXR3b3JkTU1hclx1bmRlZmluZWQgXGdkZWZccHV0d29yZE1NYXJ7TWFyY2h9XGZpCitcaWZ4XHB1dHdvcmRNQXByXHVuZGVmaW5lZCBcZ2RlZlxwdXR3b3JkTUFwcntBcHJpbH1cZmkKK1xpZnhccHV0d29yZE1NYXlcdW5kZWZpbmVkIFxnZGVmXHB1dHdvcmRNTWF5e01heX1cZmkKK1xpZnhccHV0d29yZE1KdW5cdW5kZWZpbmVkIFxnZGVmXHB1dHdvcmRNSnVue0p1bmV9XGZpCitcaWZ4XHB1dHdvcmRNSnVsXHVuZGVmaW5lZCBcZ2RlZlxwdXR3b3JkTUp1bHtKdWx5fVxmaQorXGlmeFxwdXR3b3JkTUF1Z1x1bmRlZmluZWQgXGdkZWZccHV0d29yZE1BdWd7QXVndXN0fVxmaQorXGlmeFxwdXR3b3JkTVNlcFx1bmRlZmluZWQgXGdkZWZccHV0d29yZE1TZXB7U2VwdGVtYmVyfVxmaQorXGlmeFxwdXR3b3JkTU9jdFx1bmRlZmluZWQgXGdkZWZccHV0d29yZE1PY3R7T2N0b2Jlcn1cZmkKK1xpZnhccHV0d29yZE1Ob3ZcdW5kZWZpbmVkIFxnZGVmXHB1dHdvcmRNTm92e05vdmVtYmVyfVxmaQorXGlmeFxwdXR3b3JkTURlY1x1bmRlZmluZWQgXGdkZWZccHV0d29yZE1EZWN7RGVjZW1iZXJ9XGZpCislCitcaWZ4XHB1dHdvcmREZWZtYWNcdW5kZWZpbmVkICAgIFxnZGVmXHB1dHdvcmREZWZtYWN7TWFjcm99XGZpCitcaWZ4XHB1dHdvcmREZWZzcGVjXHVuZGVmaW5lZCAgIFxnZGVmXHB1dHdvcmREZWZzcGVje1NwZWNpYWwgRm9ybX1cZmkKK1xpZnhccHV0d29yZERlZnZhclx1bmRlZmluZWQgICAgXGdkZWZccHV0d29yZERlZnZhcntWYXJpYWJsZX1cZmkKK1xpZnhccHV0d29yZERlZm9wdFx1bmRlZmluZWQgICAgXGdkZWZccHV0d29yZERlZm9wdHtVc2VyIE9wdGlvbn1cZmkKK1xpZnhccHV0d29yZERlZmZ1bmNcdW5kZWZpbmVkICAgXGdkZWZccHV0d29yZERlZmZ1bmN7RnVuY3Rpb259XGZpCisKKyUgSW4gc29tZSBtYWNyb3MsIHdlIGNhbm5vdCB1c2UgdGhlIGBcPyBub3RhdGlvbi0tLXRoZSBsZWZ0IHF1b3RlIGlzCislIGluIHNvbWUgY2FzZXMgdGhlIGVzY2FwZSBjaGFyLgorXGNoYXJkZWZcYmFja0NoYXIgID0gYFxcCitcY2hhcmRlZlxjb2xvbkNoYXIgPSBgXDoKK1xjaGFyZGVmXGNvbW1hQ2hhciA9IGBcLAorXGNoYXJkZWZcZG90Q2hhciAgID0gYFwuCitcY2hhcmRlZlxleGNsYW1DaGFyPSBgXCEKK1xjaGFyZGVmXHBsdXNDaGFyICA9IGBcKworXGNoYXJkZWZccXVlc3RDaGFyID0gYFw/CitcY2hhcmRlZlxzZW1pQ2hhciAgPSBgXDsKK1xjaGFyZGVmXHVuZGVyQ2hhciA9IGBcXworCitcY2hhcmRlZlxzcGFjZUNoYXIgPSBgXCAlCitcY2hhcmRlZlxzcGFjZWNhdCA9IDEwCitcZGVmXHNwYWNlaXNzcGFjZXtcY2F0Y29kZVxzcGFjZUNoYXI9XHNwYWNlY2F0fQorCit7JSBmb3IgaGVscCB3aXRoIGRlYnVnZ2luZy4KKyAlIGV4YW1wbGUgdXNhZ2U6IFxleHBhbmRhZnRlclxzaG93XGFjdGl2ZWJhY2tzbGFzaAorIFxjYXRjb2RlYFwhID0gMCBcY2F0Y29kZWBcXCA9IFxhY3RpdmUKKyAhZ2xvYmFsIWRlZiFhY3RpdmViYWNrc2xhc2h7XH0KK30KKworJSBJZ25vcmUgYSB0b2tlbi4KKyUKK1xkZWZcZ29iYmxlIzF7fQorCislIFRoZSBmb2xsb3dpbmcgaXMgdXNlZCBpbnNpZGUgc2V2ZXJhbCBcZWRlZidzLgorXGRlZlxtYWtlY3NuYW1lIzF7XGV4cGFuZGFmdGVyXG5vZXhwYW5kXGNzbmFtZSMxXGVuZGNzbmFtZX0KKworJSBIeXBoZW5hdGlvbiBmaXhlcy4KK1xoeXBoZW5hdGlvbnsKKyAgRmxvci1pLWRhIEdob3N0LXNjcmlwdCBHaG9zdC12aWV3IE1hYy1PUyBQb3N0LVNjcmlwdAorICBhcC1wZW4tZGl4IGJpdC1tYXAgYml0LW1hcHMKKyAgZGF0YS1iYXNlIGRhdGEtYmFzZXMgZXNoZWxsIGZhbGwtaW5nIGhhbGYtd2F5IGxvbmctZXN0IG1hbi11LXNjcmlwdAorICBtYW4tdS1zY3JpcHRzIG1pbmktYnVmLWZlciBtaW5pLWJ1Zi1mZXJzIG92ZXItdmlldyBwYXItYS1kaWdtCisgIHBhci1hLWRpZ21zIHJhdGgtZXIgcmVjLXRhbi1ndS1sYXIgcm8tYm90LWljcyBzZS12ZXJlLWx5IHNldC11cCBzcGEtY2VzCisgIHNwZWxsLWluZyBzcGVsbC1pbmdzCisgIHN0YW5kLWFsb25lIHN0cm9uZy1lc3QgdGltZS1zdGFtcCB0aW1lLXN0YW1wcyB3aGljaC1ldmVyIHdoaXRlLXNwYWNlCisgIHdpZGUtc3ByZWFkIHdyYXAtYXJvdW5kCit9CisKKyUgTWFyZ2luIHRvIGFkZCB0byByaWdodCBvZiBldmVuIHBhZ2VzLCB0byBsZWZ0IG9mIG9kZCBwYWdlcy4KK1xuZXdkaW1lblxiaW5kaW5nb2Zmc2V0CitcbmV3ZGltZW5cbm9ybWFsb2Zmc2V0CitcbmV3ZGltZW5ccGFnZXdpZHRoIFxuZXdkaW1lblxwYWdlaGVpZ2h0CisKKyUgRm9yIGEgZmluYWwgY29weSwgdGFrZSBvdXQgdGhlIHJlY3RhbmdsZXMKKyUgdGhhdCBtYXJrIG92ZXJmdWxsIGJveGVzIChpbiBjYXNlIHlvdSBoYXZlIGRlY2lkZWQKKyUgdGhhdCB0aGUgdGV4dCBsb29rcyBvayBldmVuIHRob3VnaCBpdCBwYXNzZXMgdGhlIG1hcmdpbikuCislCitcZGVmXGZpbmFsb3V0e1xvdmVyZnVsbHJ1bGU9MHB0fQorCislIEB8IGluc2VydHMgYSBjaGFuZ2ViYXIgdG8gdGhlIGxlZnQgb2YgdGhlIGN1cnJlbnQgbGluZS4gIEl0IHNob3VsZAorJSBzdXJyb3VuZCBhbnkgY2hhbmdlZCB0ZXh0LiAgVGhpcyBhcHByb2FjaCBkb2VzICpub3QqIHdvcmsgaWYgdGhlCislIGNoYW5nZSBzcGFucyBtb3JlIHRoYW4gdHdvIGxpbmVzIG9mIG91dHB1dC4gIFRvIGhhbmRsZSB0aGF0LCB3ZSB3b3VsZAorJSBoYXZlIGFkb3B0IGEgbXVjaCBtb3JlIGRpZmZpY3VsdCBhcHByb2FjaCAocHV0dGluZyBtYXJrcyBpbnRvIHRoZSBtYWluCislIHZlcnRpY2FsIGxpc3QgZm9yIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiBlYWNoIGNoYW5nZSkuCislCitcZGVmXHx7JQorICAlIFx2YWRqdXN0IGNhbiBvbmx5IGJlIHVzZWQgaW4gaG9yaXpvbnRhbCBtb2RlLgorICBcbGVhdmV2bW9kZQorICAlCisgICUgQXBwZW5kIHRoaXMgdmVydGljYWwgbW9kZSBtYXRlcmlhbCBhZnRlciB0aGUgY3VycmVudCBsaW5lIGluIHRoZSBvdXRwdXQuCisgIFx2YWRqdXN0eyUKKyAgICAlIFdlIHdhbnQgdG8gaW5zZXJ0IGEgcnVsZSB3aXRoIHRoZSBoZWlnaHQgYW5kIGRlcHRoIG9mIHRoZSBjdXJyZW50CisgICAgJSBsZWFkaW5nOyB0aGF0IGlzIGV4YWN0bHkgd2hhdCBcc3RydXRib3ggaXMgc3VwcG9zZWQgdG8gcmVjb3JkLgorICAgIFx2c2tpcC1cYmFzZWxpbmVza2lwCisgICAgJQorICAgICUgXHZhZGp1c3QtaXRlbXMgYXJlIGluc2VydGVkIGF0IHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIHR5cGUuICBTbworICAgICUgdGhlIFxsbGFwIGhlcmUgbW92ZXMgb3V0IGludG8gdGhlIGxlZnQtaGFuZCBtYXJnaW4uCisgICAgXGxsYXB7JQorICAgICAgJQorICAgICAgJSBGb3IgYSB0aGlja2VyIG9yIHRoaW5uZXIgYmFyLCBjaGFuZ2UgdGhlIGAxcHQnLgorICAgICAgXHZydWxlIGhlaWdodFxiYXNlbGluZXNraXAgd2lkdGgxcHQKKyAgICAgICUKKyAgICAgICUgVGhpcyBpcyB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgYmFyIGFuZCB0aGUgdGV4dC4KKyAgICAgIFxoc2tpcCAxMnB0CisgICAgfSUKKyAgfSUKK30KKworJSBTb21ldGltZXMgaXQgaXMgY29udmVuaWVudCB0byBoYXZlIGV2ZXJ5dGhpbmcgaW4gdGhlIHRyYW5zY3JpcHQgZmlsZQorJSBhbmQgbm90aGluZyBvbiB0aGUgdGVybWluYWwuICBXZSBkb24ndCBqdXN0IGNhbGwgXHRyYWNpbmdhbGwgaGVyZSwKKyUgc2luY2UgdGhhdCBwcm9kdWNlcyBzb21lIHVzZWxlc3Mgb3V0cHV0IG9uIHRoZSB0ZXJtaW5hbC4gIFdlIGFsc28gbWFrZQorJSBzb21lIGVmZm9ydCB0byBvcmRlciB0aGUgdHJhY2luZyBjb21tYW5kcyB0byByZWR1Y2Ugb3V0cHV0IGluIHRoZSBsb2cKKyUgZmlsZTsgY2YuIHRyYWNlLnN0eSBpbiBMYVRlWC4KKyUKK1xkZWZcZ2xvZ2dpbmdhbGx7XGJlZ2luZ3JvdXAgXGdsb2JhbGRlZnMgPSAxIFxsb2dnaW5nYWxsIFxlbmRncm91cH0lCitcZGVmXGxvZ2dpbmdhbGx7JQorICBcdHJhY2luZ3N0YXRzMgorICBcdHJhY2luZ3BhZ2VzMQorICBcdHJhY2luZ2xvc3RjaGFyczIgICUgMiBnaXZlcyB1cyBtb3JlIGluIGV0ZXgKKyAgXHRyYWNpbmdwYXJhZ3JhcGhzMQorICBcdHJhY2luZ291dHB1dDEKKyAgXHRyYWNpbmdtYWNyb3MyCisgIFx0cmFjaW5ncmVzdG9yZXMxCisgIFxzaG93Ym94YnJlYWR0aFxtYXhkaW1lbiBcc2hvd2JveGRlcHRoXG1heGRpbWVuCisgIFxpZnhcZVRlWHZlcnNpb25cdW5kZWZpbmVkXGVsc2UgJSBldGV4IGdpdmVzIHVzIG1vcmUgbG9nZ2luZworICAgIFx0cmFjaW5nc2NhbnRva2VuczEKKyAgICBcdHJhY2luZ2lmczEKKyAgICBcdHJhY2luZ2dyb3VwczEKKyAgICBcdHJhY2luZ25lc3RpbmcyCisgICAgXHRyYWNpbmdhc3NpZ25zMQorICBcZmkKKyAgXHRyYWNpbmdjb21tYW5kczMgICUgMyBnaXZlcyB1cyBtb3JlIGluIGV0ZXgKKyAgXGVycm9yY29udGV4dGxpbmVzMTYKK30lCisKKyUgYWRkIGNoZWNrIGZvciBcbGFzdHBlbmFsdHkgdG8gcGxhaW4ncyBkZWZpbml0aW9ucy4gIElmIHRoZSBsYXN0IHRoaW5nCislIHdlIGRpZCB3YXMgYSBcbm9icmVhaywgd2UgZG9uJ3Qgd2FudCB0byBpbnNlcnQgbW9yZSBzcGFjZS4KKyUKK1xkZWZcc21hbGxicmVha3tcaWZudW1cbGFzdHBlbmFsdHk8MTAwMDBccGFyXGlmZGltXGxhc3Rza2lwPFxzbWFsbHNraXBhbW91bnQKKyAgXHJlbW92ZWxhc3Rza2lwXHBlbmFsdHktNTBcc21hbGxza2lwXGZpXGZpfQorXGRlZlxtZWRicmVha3tcaWZudW1cbGFzdHBlbmFsdHk8MTAwMDBccGFyXGlmZGltXGxhc3Rza2lwPFxtZWRza2lwYW1vdW50CisgIFxyZW1vdmVsYXN0c2tpcFxwZW5hbHR5LTEwMFxtZWRza2lwXGZpXGZpfQorXGRlZlxiaWdicmVha3tcaWZudW1cbGFzdHBlbmFsdHk8MTAwMDBccGFyXGlmZGltXGxhc3Rza2lwPFxiaWdza2lwYW1vdW50CisgIFxyZW1vdmVsYXN0c2tpcFxwZW5hbHR5LTIwMFxiaWdza2lwXGZpXGZpfQorCislIEZvciBAY3JvcG1hcmtzIGNvbW1hbmQuCislIERvIEBjcm9wbWFya3MgdG8gZ2V0IGNyb3AgbWFya3MuCislCitcbmV3aWZcaWZjcm9wbWFya3MKK1xsZXRcY3JvcG1hcmtzID0gXGNyb3BtYXJrc3RydWUKKyUKKyUgRGltZW5zaW9ucyB0byBhZGQgY3JvcG1hcmtzIGF0IGNvcm5lcnMuCislIEFkZGVkIGJ5IFAuIEEuIE1hY0theSwgMTIgTm92LiAxOTg2CislCitcbmV3ZGltZW5cb3V0ZXJoc2l6ZSBcbmV3ZGltZW5cb3V0ZXJ2c2l6ZSAlIHNldCBieSB0aGUgcGFwZXIgc2l6ZSByb3V0aW5lcworXG5ld2RpbWVuXGNvcm5lcmxvbmcgIFxjb3JuZXJsb25nPTFwYworXG5ld2RpbWVuXGNvcm5lcnRoaWNrIFxjb3JuZXJ0aGljaz0uM3B0CitcbmV3ZGltZW5cdG9wYW5kYm90dG9tbWFyZ2luIFx0b3BhbmRib3R0b21tYXJnaW49Ljc1aW4KKworJSBNYWluIG91dHB1dCByb3V0aW5lLgorXGNoYXJkZWZcUEFHRSA9IDI1NQorXG91dHB1dCA9IHtcb25lcGFnZW91dHtccGFnZWNvbnRlbnRzXFBBR0V9fQorCitcbmV3Ym94XGhlYWRsaW5lYm94CitcbmV3Ym94XGZvb3RsaW5lYm94CisKKyUgXG9uZXBhZ2VvdXQgdGFrZXMgYSB2Ym94IGFzIGFuIGFyZ3VtZW50LiAgTm90ZSB0aGF0IFxwYWdlY29udGVudHMKKyUgZG9lcyBpbnNlcnRpb25zLCBidXQgeW91IGhhdmUgdG8gY2FsbCBpdCB5b3Vyc2VsZi4KK1xkZWZcb25lcGFnZW91dCMxeyUKKyAgXGlmY3JvcG1hcmtzIFxob2Zmc2V0PTBwdCBcZWxzZSBcaG9mZnNldD1cbm9ybWFsb2Zmc2V0IFxmaQorICAlCisgIFxpZm9kZFxwYWdlbm8gIFxhZHZhbmNlXGhvZmZzZXQgYnkgXGJpbmRpbmdvZmZzZXQKKyAgXGVsc2UgXGFkdmFuY2VcaG9mZnNldCBieSAtXGJpbmRpbmdvZmZzZXRcZmkKKyAgJQorICAlIERvIHRoaXMgb3V0c2lkZSBvZiB0aGUgXHNoaXBvdXQgc28gQGNvZGUgZXRjLiB3aWxsIGJlIGV4cGFuZGVkIGluCisgICUgdGhlIGhlYWRsaW5lIGFzIHRoZXkgc2hvdWxkIGJlLCBub3QgdGFrZW4gbGl0ZXJhbGx5IChvdXRwdXR0aW5nICcnY29kZSkuCisgIFxzZXRib3hcaGVhZGxpbmVib3ggPSBcdmJveHtcbGV0XGhzaXplPVxwYWdld2lkdGggXG1ha2VoZWFkbGluZX0lCisgIFxzZXRib3hcZm9vdGxpbmVib3ggPSBcdmJveHtcbGV0XGhzaXplPVxwYWdld2lkdGggXG1ha2Vmb290bGluZX0lCisgICUKKyAgeyUKKyAgICAlIEhhdmUgdG8gZG8gdGhpcyBzdHVmZiBvdXRzaWRlIHRoZSBcc2hpcG91dCBiZWNhdXNlIHdlIHdhbnQgaXQgdG8KKyAgICAlIHRha2UgZWZmZWN0IGluIFx3cml0ZSdzLCB5ZXQgdGhlIGdyb3VwIGRlZmluZWQgYnkgdGhlIFx2Ym94IGVuZHMKKyAgICAlIGJlZm9yZSB0aGUgXHNoaXBvdXQgcnVucy4KKyAgICAlCisgICAgXGluZGV4ZHVtbWllcyAgICAgICAgICUgZG9uJ3QgZXhwYW5kIGNvbW1hbmRzIGluIHRoZSBvdXRwdXQuCisgICAgXHNoaXBvdXRcdmJveHslCisgICAgICAlIERvIHRoaXMgZWFybHkgc28gcGRmIHJlZmVyZW5jZXMgZ28gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgcGFnZS4KKyAgICAgIFxpZnBkZm1ha2VwYWdlZGVzdCBccGRmZGVzdCBuYW1le1x0aGVccGFnZW5vfSB4eXpcZmkKKyAgICAgICUKKyAgICAgIFxpZmNyb3BtYXJrcyBcdmJveCB0byBcb3V0ZXJ2c2l6ZVxiZ3JvdXAKKyAgICAgICAgXGhzaXplID0gXG91dGVyaHNpemUKKyAgICAgICAgXHZza2lwLVx0b3BhbmRib3R0b21tYXJnaW4KKyAgICAgICAgXHZ0b3AgdG8wcHR7JQorICAgICAgICAgIFxsaW5le1xld3RvcFxoZmlsXGV3dG9wfSUKKyAgICAgICAgICBcbm9pbnRlcmxpbmVza2lwCisgICAgICAgICAgXGxpbmV7JQorICAgICAgICAgICAgXHZib3h7XG1vdmVsZWZ0XGNvcm5lcnRoaWNrXG5zdG9wfSUKKyAgICAgICAgICAgIFxoZmlsbAorICAgICAgICAgICAgXHZib3h7XG1vdmVyaWdodFxjb3JuZXJ0aGlja1xuc3RvcH0lCisgICAgICAgICAgfSUKKyAgICAgICAgICBcdnNzfSUKKyAgICAgICAgXHZza2lwXHRvcGFuZGJvdHRvbW1hcmdpbgorICAgICAgICBcbGluZVxiZ3JvdXAKKyAgICAgICAgICBcaGZpbCAlIGNlbnRlciB0aGUgcGFnZSB3aXRoaW4gdGhlIG91dGVyIChwYWdlKSBoc2l6ZS4KKyAgICAgICAgICBcaWZvZGRccGFnZW5vXGhza2lwXGJpbmRpbmdvZmZzZXRcZmkKKyAgICAgICAgICBcdmJveFxiZ3JvdXAKKyAgICAgIFxmaQorICAgICAgJQorICAgICAgXHVudmJveFxoZWFkbGluZWJveAorICAgICAgXHBhZ2Vib2R5eyMxfSUKKyAgICAgIFxpZmRpbVxodFxmb290bGluZWJveCA+IDBwdAorICAgICAgICAlIE9ubHkgbGVhdmUgdGhpcyBzcGFjZSBpZiB0aGUgZm9vdGxpbmUgaXMgbm9uZW1wdHkuCisgICAgICAgICUgKFdlIGxlc3NlbmVkIFx2c2l6ZSBmb3IgaXQgaW4gXG9kZGZvb3Rpbmd4eHguKQorICAgICAgICAlIFRoZSBcYmFzZWxpbmVza2lwPTI0cHQgaW4gcGxhaW4ncyBcbWFrZWZvb3RsaW5lIGhhcyBubyBlZmZlY3QuCisgICAgICAgIFx2c2tpcCAyXGJhc2VsaW5lc2tpcAorICAgICAgICBcdW52Ym94XGZvb3RsaW5lYm94CisgICAgICBcZmkKKyAgICAgICUKKyAgICAgIFxpZmNyb3BtYXJrcworICAgICAgICAgIFxlZ3JvdXAgJSBlbmQgb2YgXHZib3hcYmdyb3VwCisgICAgICAgIFxoZmlsXGVncm91cCAlIGVuZCBvZiAoY2VudGVyaW5nKSBcbGluZVxiZ3JvdXAKKyAgICAgICAgXHZza2lwXHRvcGFuZGJvdHRvbW1hcmdpbiBwbHVzMWZpbGwgbWludXMxZmlsbAorICAgICAgICBcYm94bWF4ZGVwdGggPSBcY29ybmVydGhpY2sKKyAgICAgICAgXHZib3ggdG8wcHR7XHZzcworICAgICAgICAgIFxsaW5leyUKKyAgICAgICAgICAgIFx2Ym94e1xtb3ZlbGVmdFxjb3JuZXJ0aGlja1xuc2JvdH0lCisgICAgICAgICAgICBcaGZpbGwKKyAgICAgICAgICAgIFx2Ym94e1xtb3ZlcmlnaHRcY29ybmVydGhpY2tcbnNib3R9JQorICAgICAgICAgIH0lCisgICAgICAgICAgXG5vaW50ZXJsaW5lc2tpcAorICAgICAgICAgIFxsaW5le1xld2JvdFxoZmlsXGV3Ym90fSUKKyAgICAgICAgfSUKKyAgICAgIFxlZ3JvdXAgJSBcdmJveCBmcm9tIGZpcnN0IGNyb3BtYXJrcyBjbGF1c2UKKyAgICAgIFxmaQorICAgIH0lIGVuZCBvZiBcc2hpcG91dFx2Ym94CisgIH0lIGVuZCBvZiBncm91cCB3aXRoIFxpbmRleGR1bW1pZXMKKyAgXGFkdmFuY2VwYWdlbm8KKyAgXGlmbnVtXG91dHB1dHBlbmFsdHk+LTIwMDAwIFxlbHNlXGRvc3VwZXJlamVjdFxmaQorfQorCitcbmV3aW5zZXJ0XG1hcmdpbiBcZGltZW5cbWFyZ2luPVxtYXhkaW1lbgorCitcZGVmXHBhZ2Vib2R5IzF7XHZib3ggdG9ccGFnZWhlaWdodHtcYm94bWF4ZGVwdGg9XG1heGRlcHRoICMxfX0KK3tcY2F0Y29kZWBcQCA9MTEKK1xnZGVmXHBhZ2Vjb250ZW50cyMxe1xpZnZvaWRcdG9waW5zXGVsc2VcdW52Ym94XHRvcGluc1xmaQorJSBtYXJnaW5hbCBoYWNrcywganVoYUB2aWlzYS51dWNwIChKdWhhIFRha2FsYSkKK1xpZnZvaWRcbWFyZ2luXGVsc2UgJSBtYXJnaW5hbCBpbmZvIGlzIHByZXNlbnQKKyAgXHJsYXB7XGtlcm5caHNpemVcdmJveCB0b1x6QHtca2VybjFwdFxib3hcbWFyZ2luIFx2c3N9fVxmaQorXGRpbWVuQD1cZHAjMSBcdW52Ym94IzEKK1xpZnZvaWRcZm9vdGluc1xlbHNlXHZza2lwXHNraXBcZm9vdGluc1xmb290bm90ZXJ1bGUgXHVudmJveFxmb290aW5zXGZpCitcaWZyQGdnZWRib3R0b20gXGtlcm4tXGRpbWVuQCBcdmZpbCBcZml9Cit9CisKKyUgSGVyZSBhcmUgdGhlIHJ1bGVzIGZvciB0aGUgY3JvcG1hcmtzLiAgTm90ZSB0aGF0IHRoZXkgYXJlCislIG9mZnNldCBzbyB0aGF0IHRoZSBzcGFjZSBiZXR3ZWVuIHRoZW0gaXMgdHJ1bHkgXG91dGVyaHNpemUgb3IgXG91dGVydnNpemUKKyUgKFAuIEEuIE1hY0theSwgMTIgTm92ZW1iZXIsIDE5ODYpCislCitcZGVmXGV3dG9we1x2cnVsZSBoZWlnaHRcY29ybmVydGhpY2sgZGVwdGgwcHQgd2lkdGhcY29ybmVybG9uZ30KK1xkZWZcbnN0b3B7XHZib3gKKyAge1xocnVsZSBoZWlnaHRcY29ybmVydGhpY2sgZGVwdGhcY29ybmVybG9uZyB3aWR0aFxjb3JuZXJ0aGlja319CitcZGVmXGV3Ym90e1x2cnVsZSBoZWlnaHQwcHQgZGVwdGhcY29ybmVydGhpY2sgd2lkdGhcY29ybmVybG9uZ30KK1xkZWZcbnNib3R7XHZib3gKKyAge1xocnVsZSBoZWlnaHRcY29ybmVybG9uZyBkZXB0aFxjb3JuZXJ0aGljayB3aWR0aFxjb3JuZXJ0aGlja319CisKKyUgUGFyc2UgYW4gYXJndW1lbnQsIHRoZW4gcGFzcyBpdCB0byAjMS4gIFRoZSBhcmd1bWVudCBpcyB0aGUgcmVzdCBvZgorJSB0aGUgaW5wdXQgbGluZSAoZXhjZXB0IHdlIHJlbW92ZSBhIHRyYWlsaW5nIGNvbW1lbnQpLiAgIzEgc2hvdWxkIGJlIGEKKyUgbWFjcm8gd2hpY2ggZXhwZWN0cyBhbiBvcmRpbmFyeSB1bmRlbGltaXRlZCBUZVggYXJndW1lbnQuCislCitcZGVmXHBhcnNlYXJne1xwYXJzZWFyZ3VzaW5ne319CitcZGVmXHBhcnNlYXJndXNpbmcjMSMyeyUKKyAgXGRlZlxuZXh0eyMyfSUKKyAgXGJlZ2luZ3JvdXAKKyAgICBcb2JleWxpbmVzCisgICAgXHNwYWNlaXNzcGFjZQorICAgICMxJQorICAgIFxwYXJzZWFyZ2xpbmVcZW1wdHklIEluc2VydCB0aGUgXGVtcHR5IHRva2VuLCBzZWUgXGZpbmlzaHBhcnNlYXJnIGJlbG93LgorfQorCit7XG9iZXlsaW5lcyAlCisgIFxnZGVmXHBhcnNlYXJnbGluZSMxXl5NeyUKKyAgICBcZW5kZ3JvdXAgJSBFbmQgb2YgdGhlIGdyb3VwIHN0YXJ0ZWQgaW4gXHBhcnNlYXJnLgorICAgIFxhcmdyZW1vdmVjb21tZW50ICMxXGNvbW1lbnRcQXJnVGVybSUKKyAgfSUKK30KKworJSBGaXJzdCByZW1vdmUgYW55IEBjb21tZW50LCB0aGVuIGFueSBAYyBjb21tZW50LgorXGRlZlxhcmdyZW1vdmVjb21tZW50IzFcY29tbWVudCMyXEFyZ1Rlcm17XGFyZ3JlbW92ZWMgIzFcY1xBcmdUZXJtfQorXGRlZlxhcmdyZW1vdmVjIzFcYyMyXEFyZ1Rlcm17XGFyZ2NoZWNrc3BhY2VzIzFcXl5NXEFyZ1Rlcm19CisKKyUgRWFjaCBvY2N1cmVuY2Ugb2YgYFxeXk0nIG9yIGA8c3BhY2U+XF5eTScgaXMgcmVwbGFjZWQgYnkgYSBzaW5nbGUgc3BhY2UuCislCislIFxhcmdyZW1vdmVjIG1pZ2h0IGxlYXZlIHVzIHdpdGggdHJhaWxpbmcgc3BhY2UsIGUuZy4sCislICAgIEBlbmQgaXRlbWl6ZSAgQGMgZm9vCislIFRoaXMgc3BhY2UgdG9rZW4gdW5kZXJnb2VzIHRoZSBzYW1lIHByb2NlZHVyZSBhbmQgaXMgZXZlbnR1YWxseSByZW1vdmVkCislIGJ5IFxmaW5pc2hwYXJzZWFyZy4KKyUKK1xkZWZcYXJnY2hlY2tzcGFjZXMjMVxeXk17XGFyZ2NoZWNrc3BhY2VzWCMxXF5eTSBcXl5NfQorXGRlZlxhcmdjaGVja3NwYWNlc1gjMSBcXl5Ne1xhcmdjaGVja3NwYWNlc1kjMVxeXk19CitcZGVmXGFyZ2NoZWNrc3BhY2VzWSMxXF5eTSMyXF5eTSMzXEFyZ1Rlcm17JQorICBcZGVmXHRlbXB7IzN9JQorICBcaWZ4XHRlbXBcZW1wdHkKKyAgICAlIFdlIGNhbm5vdCB1c2UgXG5leHQgaGVyZSwgYXMgaXQgaG9sZHMgdGhlIG1hY3JvIHRvIHJ1bjsKKyAgICAlIHRodXMgd2UgcmV1c2UgXHRlbXAuCisgICAgXGxldFx0ZW1wXGZpbmlzaHBhcnNlYXJnCisgIFxlbHNlCisgICAgXGxldFx0ZW1wXGFyZ2NoZWNrc3BhY2VzCisgIFxmaQorICAlIFB1dCB0aGUgc3BhY2UgdG9rZW4gaW46CisgIFx0ZW1wIzEgIzNcQXJnVGVybQorfQorCislIElmIGEgX2RlbGltaXRlZF8gYXJndW1lbnQgaXMgZW5jbG9zZWQgaW4gYnJhY2VzLCB0aGV5IGdldCBzdHJpcHBlZDsgc28KKyUgdG8gZ2V0IF9leGFjdGx5XyB0aGUgcmVzdCBvZiB0aGUgbGluZSwgd2UgaGFkIHRvIHByZXZlbnQgc3VjaCBzaXR1YXRpb24uCislIFdlIHByZXBlbmRlZCBhbiBcZW1wdHkgdG9rZW4gYXQgdGhlIHZlcnkgYmVnaW5uaW5nIGFuZCB3ZSBleHBhbmQgaXQgbm93LAorJSBqdXN0IGJlZm9yZSBwYXNzaW5nIHRoZSBjb250cm9sIHRvIFxuZXh0LgorJSAoU2ltaWxhcmlseSwgd2UgaGF2ZSB0byB0aGluayBhYm91dCAjMyBvZiBcYXJnY2hlY2tzcGFjZXNZIGFib3ZlOiBpdCBpcworJSBlaXRoZXIgdGhlIG51bGwgc3RyaW5nLCBvciBpdCBlbmRzIHdpdGggXF5eTS0tLXRodXMgdGhlcmUgaXMgbm8gZGFuZ2VyCislIHRoYXQgYSBwYWlyIG9mIGJyYWNlcyB3b3VsZCBiZSBzdHJpcHBlZC4KKyUKKyUgQnV0IGZpcnN0LCB3ZSBoYXZlIHRvIHJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2UgdG9rZW4uCislCitcZGVmXGZpbmlzaHBhcnNlYXJnIzEgXEFyZ1Rlcm17XGV4cGFuZGFmdGVyXG5leHRcZXhwYW5kYWZ0ZXJ7IzF9fQorCislIFxwYXJzZWFyZ2RlZlxmb297Li4ufQorJQlpcyByb3VnaGx5IGVxdWl2YWxlbnQgdG8KKyUgXGRlZlxmb297XHBhcnNlYXJnXFhmb299CislIFxkZWZcWGZvbyMxey4uLn0KKyUKKyUgQWN0dWFsbHksIEkgdXNlIFxjc25hbWVcc3RyaW5nXGZvb1xlbmRjc25hbWUsIGllLiBcXGZvbywgYXMgaXQgaXMgbXkKKyUgZmF2b3VyaXRlIFRlWCB0cmljay4gIC0ta2FzYWwsIDE2bm92MDMKKworXGRlZlxwYXJzZWFyZ2RlZiMxeyUKKyAgXGV4cGFuZGFmdGVyIFxkb3BhcnNlYXJnZGVmIFxjc25hbWVcc3RyaW5nIzFcZW5kY3NuYW1lICMxJQorfQorXGRlZlxkb3BhcnNlYXJnZGVmIzEjMnslCisgIFxkZWYjMntccGFyc2VhcmcjMX0lCisgIFxkZWYjMSMjMSUKK30KKworJSBTZXZlcmFsIHV0aWxpdHkgZGVmaW5pdGlvbnMgd2l0aCBhY3RpdmUgc3BhY2U6Cit7CisgIFxvYmV5c3BhY2VzCisgIFxnZGVmXG9iZXllZHNwYWNleyB9CisKKyAgJSBNYWtlIGVhY2ggc3BhY2UgY2hhcmFjdGVyIGluIHRoZSBpbnB1dCBwcm9kdWNlIGEgbm9ybWFsIGludGVyd29yZAorICAlIHNwYWNlIGluIHRoZSBvdXRwdXQuICBEb24ndCBhbGxvdyBhIGxpbmUgYnJlYWsgYXQgdGhpcyBzcGFjZSwgYXMgdGhpcworICAlIGlzIHVzZWQgb25seSBpbiBlbnZpcm9ubWVudHMgbGlrZSBAZXhhbXBsZSwgd2hlcmUgZWFjaCBsaW5lIG9mIGlucHV0CisgICUgc2hvdWxkIHByb2R1Y2UgYSBsaW5lIG9mIG91dHB1dCBhbnl3YXkuCisgICUKKyAgXGdkZWZcc2Vwc3BhY2Vze1xvYmV5c3BhY2VzXGxldCA9XHRpZX0KKworICAlIElmIGFuIGluZGV4IGNvbW1hbmQgaXMgdXNlZCBpbiBhbiBAZXhhbXBsZSBlbnZpcm9ubWVudCwgYW55IHNwYWNlcworICAlIHRoZXJlaW4gc2hvdWxkIGJlY29tZSByZWd1bGFyIHNwYWNlcyBpbiB0aGUgcmF3IGluZGV4IGZpbGUsIG5vdCB0aGUKKyAgJSBleHBhbnNpb24gb2YgXHRpZSAoXGxlYXZldm1vZGUgXHBlbmFsdHkgXEBNIFwgKS4KKyAgXGdkZWZcdW5zZXBzcGFjZXN7XGxldCA9XHNwYWNlfQorfQorCisKK1xkZWZcZmx1c2hjcntcaWZ4XHBhclxsaXNwcGFyIFxkZWZcbmV4dCMjMXt9XGVsc2UgXGxldFxuZXh0PVxyZWxheCBcZmkgXG5leHR9CisKKyUgRGVmaW5lIHRoZSBmcmFtZXdvcmsgZm9yIGVudmlyb25tZW50cyBpbiB0ZXhpbmZvLnRleC4gIEl0J3MgdXNlZCBsaWtlIHRoaXM6CislCislICAgXGVudmRlZlxmb297Li4ufQorJSAgIFxkZWZcRWZvb3suLi59CislCislIEl0J3MgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIFxlbnZkZWYgdG8gaW5zZXJ0IFxiZWdpbmdyb3VwIGJlZm9yZSB0aGUKKyUgYWN0dWFsIGJvZHk7IEBlbmQgY2xvc2VzIHRoZSBncm91cCBhZnRlciBjYWxsaW5nIFxFZm9vLiAgXGVudmRlZiBhbHNvCislIGRlZmluZXMgXHRoaXNlbnYsIHNvIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGlzIGtub3duOyBAZW5kIGNoZWNrcworJSB3aGV0aGVyIHRoZSBlbnZpcm9ubWVudCBuYW1lIG1hdGNoZXMuICBUaGUgXGNoZWNrZW52IG1hY3JvIGNhbiBhbHNvIGJlCislIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBpcyB0aGUgb25lIGV4cGVjdGVkLgorJQorJSBOb24tZmFsc2UgY29uZGl0aW9uYWxzIChAaWZ0ZXgsIEBpZnNldCkgZG9uJ3QgZml0IGludG8gdGhpcywgc28gdGhleQorJSBhcmUgbm90IHRyZWF0ZWQgYXMgZW52aXJvbWVudHM7IHRoZXkgZG9uJ3Qgb3BlbiBhIGdyb3VwLiAgKFRoZQorJSBpbXBsZW1lbnRhdGlvbiBvZiBAZW5kIHRha2VzIGNhcmUgbm90IHRvIGNhbGwgXGVuZGdyb3VwIGluIHRoaXMKKyUgc3BlY2lhbCBjYXNlLikKKworCislIEF0IHJ1bnRpbWUsIGVudmlyb25tZW50cyBzdGFydCB3aXRoIHRoaXM6CitcZGVmXHN0YXJ0ZW52aXJvbm1lbnQjMXtcYmVnaW5ncm91cFxkZWZcdGhpc2VudnsjMX19CislIGluaXRpYWxpemUKK1xsZXRcdGhpc2VudlxlbXB0eQorCislIC4uLiBidXQgdGhleSBnZXQgZGVmaW5lZCB2aWEgYGBcZW52ZGVmXGZvb3suLi59Jyc6CitcbG9uZ1xkZWZcZW52ZGVmIzEjMntcZGVmIzF7XHN0YXJ0ZW52aXJvbm1lbnQjMSMyfX0KK1xkZWZcZW52cGFyc2VhcmdkZWYjMSMye1xwYXJzZWFyZ2RlZiMxe1xzdGFydGVudmlyb25tZW50IzEjMn19CisKKyUgQ2hlY2sgd2hldGhlciB3ZSdyZSBpbiB0aGUgcmlnaHQgZW52aXJvbm1lbnQ6CitcZGVmXGNoZWNrZW52IzF7JQorICBcZGVmXHRlbXB7IzF9JQorICBcaWZ4XHRoaXNlbnZcdGVtcAorICBcZWxzZQorICAgIFxiYWRlbnZlcnIKKyAgXGZpCit9CisKKyUgRXZpcm9ubWVudCBtaXNtYXRjaCwgIzEgZXhwZWN0ZWQ6CitcZGVmXGJhZGVudmVycnslCisgIFxlcnJoZWxwID0gXEVNc2ltcGxlCisgIFxlcnJtZXNzYWdle1RoaXMgY29tbWFuZCBjYW4gYXBwZWFyIG9ubHkgXGluZW52aXJvbm1lbnRcdGVtcCwKKyAgICBub3QgXGluZW52aXJvbm1lbnRcdGhpc2Vudn0lCit9CitcZGVmXGluZW52aXJvbm1lbnQjMXslCisgIFxpZngjMVxlbXB0eQorICAgIG91dCBvZiBhbnkgZW52aXJvbm1lbnQlCisgIFxlbHNlCisgICAgaW4gZW52aXJvbm1lbnQgXGV4cGFuZGFmdGVyXHN0cmluZyMxJQorICBcZmkKK30KKworJSBAZW5kIGZvbyBleGVjdXRlcyB0aGUgZGVmaW5pdGlvbiBvZiBcRWZvby4KKyUgQnV0IGZpcnN0LCBpdCBleGVjdXRlcyBhIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgXGNoZWNrZW52CislCitccGFyc2VhcmdkZWZcZW5keyUKKyAgXGlmIDFcY3NuYW1lIGlzY29uZC4jMVxlbmRjc25hbWUKKyAgXGVsc2UKKyAgICAlIFRoZSBnZW5lcmFsIHdvcmRpbmcgb2YgXGJhZGVudmVyciBtYXkgbm90IGJlIGlkZWFsLCBidXQuLi4gLS1rYXNhbCwgMDZub3YwMworICAgIFxleHBhbmRhZnRlclxjaGVja2Vudlxjc25hbWUjMVxlbmRjc25hbWUKKyAgICBcY3NuYW1lIEUjMVxlbmRjc25hbWUKKyAgICBcZW5kZ3JvdXAKKyAgXGZpCit9CisKK1xuZXdoZWxwXEVNc2ltcGxle1ByZXNzIFJFVFVSTiB0byBjb250aW51ZS59CisKKworJSUgU2ltcGxlIHNpbmdsZS1jaGFyYWN0ZXIgQCBjb21tYW5kcworCislIEBAIHByaW50cyBhbiBACislIEtsdWRnZSB0aGlzIHVudGlsIHRoZSBmb250cyBhcmUgcmlnaHQgKGdycikuCitcZGVmXEB7e1x0dFxjaGFyNjR9fQorCislIFRoaXMgaXMgdHVybmVkIG9mZiBiZWNhdXNlIGl0IHdhcyBuZXZlciBkb2N1bWVudGVkCislIGFuZCB5b3UgY2FuIHVzZSBAd3suLi59IGFyb3VuZCBhIHF1b3RlIHRvIHN1cHByZXNzIGxpZ2F0dXJlcy4KKyUlIERlZmluZSBAYCBhbmQgQCcgdG8gYmUgdGhlIHNhbWUgYXMgYCBhbmQgJworJSUgYnV0IHN1cHByZXNzaW5nIGxpZ2F0dXJlcy4KKyVcZGVmXGB7e2B9fQorJVxkZWZcJ3t7J319CisKKyUgVXNlZCB0byBnZW5lcmF0ZSBxdW90ZWQgYnJhY2VzLgorXGRlZlxteWxicmFjZSB7e1x0dFxjaGFyMTIzfX0KK1xkZWZcbXlyYnJhY2Uge3tcdHRcY2hhcjEyNX19CitcbGV0XHs9XG15bGJyYWNlCitcbGV0XH09XG15cmJyYWNlCitcYmVnaW5ncm91cAorICAlIERlZmluaXRpb25zIHRvIHByb2R1Y2UgXHsgYW5kIFx9IGNvbW1hbmRzIGZvciBpbmRpY2VzLAorICAlIGFuZCBAeyBhbmQgQH0gZm9yIHRoZSBhdXgvdG9jIGZpbGVzLgorICBcY2F0Y29kZWBceyA9IFxvdGhlciBcY2F0Y29kZWBcfSA9IFxvdGhlcgorICBcY2F0Y29kZWBcWyA9IDEgXGNhdGNvZGVgXF0gPSAyCisgIFxjYXRjb2RlYFwhID0gMCBcY2F0Y29kZWBcXCA9IFxvdGhlcgorICAhZ2RlZiFsYnJhY2VjbWRbXHtdJQorICAhZ2RlZiFyYnJhY2VjbWRbXH1dJQorICAhZ2RlZiFsYnJhY2VhdGNtZFtAe10lCisgICFnZGVmIXJicmFjZWF0Y21kW0B9XSUKKyFlbmRncm91cAorCislIEBjb21tYXt9IHRvIGF2b2lkICwgcGFyc2luZyBwcm9ibGVtcy4KK1xsZXRcY29tbWEgPSAsCisKKyUgQWNjZW50czogQCwgQGRvdGFjY2VudCBAcmluZ2FjY2VudCBAdWJhcmFjY2VudCBAdWRvdGFjY2VudAorJSBPdGhlcnMgYXJlIGRlZmluZWQgYnkgcGxhaW4gVGVYOiBAYCBAJyBAIiBAXiBAfiBAPSBAdSBAdiBASC4KK1xsZXRcLCA9IFxjCitcbGV0XGRvdGFjY2VudCA9IFwuCitcZGVmXHJpbmdhY2NlbnQjMXt7XGFjY2VudDIzICMxfX0KK1xsZXRcdGllYWNjZW50ID0gXHQKK1xsZXRcdWJhcmFjY2VudCA9IFxiCitcbGV0XHVkb3RhY2NlbnQgPSBcZAorCislIE90aGVyIHNwZWNpYWwgY2hhcmFjdGVyczogQHF1ZXN0aW9uZG93biBAZXhjbGFtZG93biBAb3JkZiBAb3JkbQorJSBQbGFpbiBUZVggZGVmaW5lczogQEFBIEBBRSBATyBAT0UgQEwgKHBsdXMgbG93ZXJjYXNlIHZlcnNpb25zKSBAc3MuCitcZGVmXHF1ZXN0aW9uZG93bns/YH0KK1xkZWZcZXhjbGFtZG93bnshYH0KK1xkZWZcb3JkZntcbGVhdmV2bW9kZVxyYWlzZTFleFxoYm94e1xzZWxlY3Rmb250c1xsbGxzaXplIFx1bmRlcmJhcnthfX19CitcZGVmXG9yZG17XGxlYXZldm1vZGVccmFpc2UxZXhcaGJveHtcc2VsZWN0Zm9udHNcbGxsc2l6ZSBcdW5kZXJiYXJ7b319fQorCislIERvdGxlc3MgaSBhbmQgZG90bGVzcyBqLCB1c2VkIGZvciBhY2NlbnRzLgorXGRlZlxpbWFjcm97aX0KK1xkZWZcam1hY3Jve2p9CitcZGVmXGRvdGxlc3MjMXslCisgIFxkZWZcdGVtcHsjMX0lCisgIFxpZnhcdGVtcFxpbWFjcm8gXHB0ZXhpCisgIFxlbHNlXGlmeFx0ZW1wXGptYWNybyBcagorICBcZWxzZSBcZXJybWVzc2FnZXtAZG90bGVzcyBjYW4gYmUgdXNlZCBvbmx5IHdpdGggaSBvciBqfSUKKyAgXGZpXGZpCit9CisKKyUgVGhlIFxUZVh7fSBsb2dvLCBhcyBpbiBwbGFpbiwgYnV0IHJlc2V0dGluZyB0aGUgc3BhY2luZyBzbyB0aGF0IGEKKyUgcGVyaW9kIGZvbGxvd2luZyBjb3VudHMgYXMgZW5kaW5nIGEgc2VudGVuY2UuICAoSWRlYSBmb3VuZCBpbiBsYXRleC4pCislCitcZWRlZlxUZVh7XFRlWCBcc3BhY2VmYWN0b3I9MTAwMCB9CisKKyUgQExhVGVYe30gbG9nby4gIE5vdCBxdWl0ZSB0aGUgc2FtZSByZXN1bHRzIGFzIHRoZSBkZWZpbml0aW9uIGluCislIGxhdGV4Lmx0eCwgc2luY2Ugd2UgdXNlIGEgZGlmZmVyZW50IGZvbnQgZm9yIHRoZSByYWlzZWQgQTsgaXQncyBtb3N0CislIGNvbnZlbmllbnQgZm9yIHVzIHRvIHVzZSBhbiBleHBsaWNpdGx5IHNtYWxsZXIgZm9udCwgcmF0aGVyIHRoYW4gdXNpbmcKKyUgdGhlIFxzY3JpcHRzdHlsZSBmb250IChzaW5jZSB3ZSBkb24ndCByZXNldCBcc2NyaXB0c3R5bGUgYW5kCislIFxzY3JpcHRzY3JpcHRzdHlsZSkuCislCitcZGVmXExhVGVYeyUKKyAgTFxrZXJuLS4zNmVtCisgIHtcc2V0Ym94MD1caGJveHtUfSUKKyAgIFx2Ym94IHRvIFxodDB7XGhib3h7XHNlbGVjdGZvbnRzXGxsbHNpemUgQX1cdnNzfX0lCisgIFxrZXJuLS4xNWVtCisgIFxUZVgKK30KKworJSBCZSBzdXJlIHdlJ3JlIGluIGhvcml6b250YWwgbW9kZSB3aGVuIGRvaW5nIGEgdGllLCBzaW5jZSB3ZSBtYWtlIHNwYWNlCislIGVxdWl2YWxlbnQgdG8gdGhpcyBpbiBAZXhhbXBsZS1saWtlIGVudmlyb25tZW50cy4gT3RoZXJ3aXNlLCBhIHNwYWNlCislIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lIHdpbGwgc3RhcnQgd2l0aCBccGVuYWx0eSAtLSBhbmQKKyUgc2luY2UgXHBlbmFsdHkgaXMgdmFsaWQgaW4gdmVydGljYWwgbW9kZSwgd2UnZCBlbmQgdXAgcHV0dGluZyB0aGUKKyUgcGVuYWx0eSBvbiB0aGUgdmVydGljYWwgbGlzdCBpbnN0ZWFkIG9mIGluIHRoZSBuZXcgcGFyYWdyYXBoLgore1xjYXRjb2RlYEAgPSAxMQorICUgQXZvaWQgdXNpbmcgXEBNIGRpcmVjdGx5LCBiZWNhdXNlIHRoYXQgY2F1c2VzIHRyb3VibGUKKyAlIGlmIHRoZSBkZWZpbml0aW9uIGlzIHdyaXR0ZW4gaW50byBhbiBpbmRleCBmaWxlLgorIFxnbG9iYWxcbGV0XHRpZXBlbmFsdHkgPSBcQE0KKyBcZ2RlZlx0aWV7XGxlYXZldm1vZGVccGVuYWx0eVx0aWVwZW5hbHR5XCB9Cit9CisKKyUgQDogZm9yY2VzIG5vcm1hbCBzaXplIHdoaXRlc3BhY2UgZm9sbG93aW5nLgorXGRlZlw6e1xzcGFjZWZhY3Rvcj0xMDAwIH0KKworJSBAKiBmb3JjZXMgYSBsaW5lIGJyZWFrLgorXGRlZlwqe1xoZmlsXGJyZWFrXGhib3h7fVxpZ25vcmVzcGFjZXN9CisKKyUgQC8gYWxsb3dzIGEgbGluZSBicmVhay4KK1xsZXRcLz1cYWxsb3dicmVhaworCislIEAuIGlzIGFuIGVuZC1vZi1zZW50ZW5jZSBwZXJpb2QuCitcZGVmXC57LlxzcGFjZWZhY3Rvcj1cZW5kb2ZzZW50ZW5jZXNwYWNlZmFjdG9yXHNwYWNlfQorCislIEAhIGlzIGFuIGVuZC1vZi1zZW50ZW5jZSBiYW5nLgorXGRlZlwheyFcc3BhY2VmYWN0b3I9XGVuZG9mc2VudGVuY2VzcGFjZWZhY3RvclxzcGFjZX0KKworJSBAPyBpcyBhbiBlbmQtb2Ytc2VudGVuY2UgcXVlcnkuCitcZGVmXD97P1xzcGFjZWZhY3Rvcj1cZW5kb2ZzZW50ZW5jZXNwYWNlZmFjdG9yXHNwYWNlfQorCislIEBmcmVuY2hzcGFjaW5nIG9ufG9mZiAgc2F5cyB3aGV0aGVyIHRvIHB1dCBleHRyYSBzcGFjZSBhZnRlciBwdW5jdHVhdGlvbi4KKyUgCitcZGVmXG9ud29yZHtvbn0KK1xkZWZcb2Zmd29yZHtvZmZ9CislCitccGFyc2VhcmdkZWZcZnJlbmNoc3BhY2luZ3slCisgIFxkZWZcdGVtcHsjMX0lCisgIFxpZnhcdGVtcFxvbndvcmQgXHBsYWluZnJlbmNoc3BhY2luZworICBcZWxzZVxpZnhcdGVtcFxvZmZ3b3JkIFxwbGFpbm5vbmZyZW5jaHNwYWNpbmcKKyAgXGVsc2UKKyAgICBcZXJyaGVscCA9IFxFTXNpbXBsZQorICAgIFxlcnJtZXNzYWdle1Vua25vd24gQGZyZW5jaHNwYWNpbmcgb3B0aW9uIGBcdGVtcCcsIG11c3QgYmUgb24vb2ZmfSUKKyAgXGZpXGZpCit9CisKKyUgQHcgcHJldmVudHMgYSB3b3JkIGJyZWFrLiAgV2l0aG91dCB0aGUgXGxlYXZldm1vZGUsIEB3IGF0IHRoZQorJSBiZWdpbm5pbmcgb2YgYSBwYXJhZ3JhcGgsIHdoZW4gVGVYIGlzIHN0aWxsIGluIHZlcnRpY2FsIG1vZGUsIHdvdWxkCislIHByb2R1Y2UgYSB3aG9sZSBsaW5lIG9mIG91dHB1dCBpbnN0ZWFkIG9mIHN0YXJ0aW5nIHRoZSBwYXJhZ3JhcGguCitcZGVmXHcjMXtcbGVhdmV2bW9kZVxoYm94eyMxfX0KKworJSBAZ3JvdXAgLi4uIEBlbmQgZ3JvdXAgZm9yY2VzIC4uLiB0byBiZSBhbGwgb24gb25lIHBhZ2UsIGJ5IGVuY2xvc2luZworJSBpdCBpbiBhIFRlWCB2Ym94LiAgV2UgdXNlIFx2dG9wIGluc3RlYWQgb2YgXHZib3ggdG8gY29uc3RydWN0IHRoZSBib3gKKyUgdG8ga2VlcCBpdHMgaGVpZ2h0IHRoYXQgb2YgYSBub3JtYWwgbGluZS4gIEFjY29yZGluZyB0byB0aGUgcnVsZXMgZm9yCislIFx0b3Bza2lwIChwLjExNCBvZiB0aGUgVGVYYm9vayksIHRoZSBnbHVlIGluc2VydGVkIGlzCislIG1heCAoXHRvcHNraXAgLSBcaHQgKGZpcnN0IGl0ZW0pLCAwKS4gIElmIHRoYXQgaGVpZ2h0IGlzIGxhcmdlLAorJSB0aGVyZWZvcmUsIG5vIGdsdWUgaXMgaW5zZXJ0ZWQsIGFuZCB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgaGVhZGxpbmUgYW5kCislIHRoZSB0ZXh0IGlzIHNtYWxsLCB3aGljaCBsb29rcyBiYWQuCislCislIEFub3RoZXIgY29tcGxpY2F0aW9uIGlzIHRoYXQgdGhlIGdyb3VwIG1pZ2h0IGJlIHZlcnkgbGFyZ2UuICBUaGlzIGNhbgorJSBjYXVzZSB0aGUgZ2x1ZSBvbiB0aGUgcHJldmlvdXMgcGFnZSB0byBiZSB1bmR1bHkgc3RyZXRjaGVkLCBiZWNhdXNlIGl0CislIGRvZXMgbm90IGhhdmUgbXVjaCBtYXRlcmlhbC4gIEluIHRoaXMgY2FzZSwgaXQncyBiZXR0ZXIgdG8gYWRkIGFuCislIGV4cGxpY2l0IFx2ZmlsbCBzbyB0aGF0IHRoZSBleHRyYSBzcGFjZSBpcyBhdCB0aGUgYm90dG9tLiAgVGhlCislIHRocmVzaG9sZCBmb3IgZG9pbmcgdGhpcyBpcyBpZiB0aGUgZ3JvdXAgaXMgbW9yZSB0aGFuIFx2ZmlsbGxpbWl0CislIHBlcmNlbnQgb2YgYSBwYWdlIChcdmZpbGxsaW1pdCBjYW4gYmUgY2hhbmdlZCBpbnNpZGUgb2YgQHRleCkuCislCitcbmV3Ym94XGdyb3VwYm94CitcZGVmXHZmaWxsbGltaXR7MC43fQorJQorXGVudmRlZlxncm91cHslCisgIFxpZm51bVxjYXRjb2RlYFxeXk09XGFjdGl2ZSBcZWxzZQorICAgIFxlcnJoZWxwID0gXGdyb3VwaW52YWxpZGhlbHAKKyAgICBcZXJybWVzc2FnZXtAZ3JvdXAgaW52YWxpZCBpbiBjb250ZXh0IHdoZXJlIGZpbGxpbmcgaXMgZW5hYmxlZH0lCisgIFxmaQorICBcc3RhcnRzYXZpbmdpbnNlcnRzCisgICUKKyAgXHNldGJveFxncm91cGJveCA9IFx2dG9wXGJncm91cAorICAgICUgRG8gQGNvbW1lbnQgc2luY2Ugd2UgYXJlIGNhbGxlZCBpbnNpZGUgYW4gZW52aXJvbm1lbnQgc3VjaCBhcworICAgICUgQGV4YW1wbGUsIHdoZXJlIGVhY2ggZW5kLW9mLWxpbmUgaW4gdGhlIGlucHV0IGNhdXNlcyBhbgorICAgICUgZW5kLW9mLWxpbmUgaW4gdGhlIG91dHB1dC4gIFdlIGRvbid0IHdhbnQgdGhlIGVuZC1vZi1saW5lIGFmdGVyCisgICAgJSB0aGUgYEBncm91cCcgdG8gcHV0IGV4dHJhIHNwYWNlIGluIHRoZSBvdXRwdXQuICBTaW5jZSBAZ3JvdXAKKyAgICAlIHNob3VsZCBhcHBlYXIgb24gYSBsaW5lIGJ5IGl0c2VsZiAoYWNjb3JkaW5nIHRvIHRoZSBUZXhpbmZvCisgICAgJSBtYW51YWwpLCB3ZSBkb24ndCB3b3JyeSBhYm91dCBlYXRpbmcgYW55IHVzZXIgdGV4dC4KKyAgICBcY29tbWVudAorfQorJQorJSBUaGUgXHZ0b3AgcHJvZHVjZXMgYSBib3ggd2l0aCBub3JtYWwgaGVpZ2h0IGFuZCBsYXJnZSBkZXB0aDsgdGh1cywgVGVYIHB1dHMKKyUgXGJhc2VsaW5lc2tpcCBnbHVlIGJlZm9yZSBpdCwgYW5kICh3aGVuIHRoZSBuZXh0IGxpbmUgb2YgdGV4dCBpcyBkb25lKQorJSBcbGluZXNraXAgZ2x1ZSBhZnRlciBpdC4gIFRodXMsIHNwYWNlIGJlbG93IGlzIG5vdCBxdWl0ZSBlcXVhbCB0byBzcGFjZQorJSBhYm92ZS4gIEJ1dCBpdCdzIHByZXR0eSBjbG9zZS4KK1xkZWZcRWdyb3VweyUKKyAgICAlIFRvIGdldCBjb3JyZWN0IGludGVybGluZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYXN0IGxpbmUgb2YgdGhlIGdyb3VwCisgICAgJSBhbmQgdGhlIGZpcnN0IGxpbmUgYWZ0ZXJ3YXJkcywgd2UgaGF2ZSB0byBwcm9wYWdhdGUgXHByZXZkZXB0aC4KKyAgICBcZW5kZ3JhZiAlIE5vdCBccGFyLCBhcyBpdCBtYXkgaGF2ZSBiZWVuIHNldCB0byBcbGlzcHBhci4KKyAgICBcZ2xvYmFsXGRpbWVuMSA9IFxwcmV2ZGVwdGgKKyAgXGVncm91cCAgICAgICAgICAgJSBFbmQgdGhlIFx2dG9wLgorICAlIFxkaW1lbjAgaXMgdGhlIHZlcnRpY2FsIHNpemUgb2YgdGhlIGdyb3VwJ3MgYm94LgorICBcZGltZW4wID0gXGh0XGdyb3VwYm94ICBcYWR2YW5jZVxkaW1lbjAgYnkgXGRwXGdyb3VwYm94CisgICUgXGRpbWVuMiBpcyBob3cgbXVjaCBzcGFjZSBpcyBsZWZ0IG9uIHRoZSBwYWdlIChtb3JlIG9yIGxlc3MpLgorICBcZGltZW4yID0gXHBhZ2VoZWlnaHQgICBcYWR2YW5jZVxkaW1lbjIgYnkgLVxwYWdldG90YWwKKyAgJSBpZiB0aGUgZ3JvdXAgZG9lc24ndCBmaXQgb24gdGhlIGN1cnJlbnQgcGFnZSwgYW5kIGl0J3MgYSBiaWcgYmlnCisgICUgZ3JvdXAsIGZvcmNlIGEgcGFnZSBicmVhay4KKyAgXGlmZGltIFxkaW1lbjAgPiBcZGltZW4yCisgICAgXGlmZGltIFxwYWdldG90YWwgPCBcdmZpbGxsaW1pdFxwYWdlaGVpZ2h0CisgICAgICBccGFnZQorICAgIFxmaQorICBcZmkKKyAgXGJveFxncm91cGJveAorICBccHJldmRlcHRoID0gXGRpbWVuMQorICBcY2hlY2tpbnNlcnRzCit9CislCislIFRlWCBwdXRzIGluIGFuIFxlc2NhcGVjaGFyIChpLmUuLCBgQCcpIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGhlbHAKKyUgbWVzc2FnZSwgc28gdGhpcyBlbmRzIHVwIHByaW50aW5nIGBAZ3JvdXAgY2FuIG9ubHkgLi4uJy4KKyUKK1xuZXdoZWxwXGdyb3VwaW52YWxpZGhlbHB7JQorZ3JvdXAgY2FuIG9ubHkgYmUgdXNlZCBpbiBlbnZpcm9ubWVudHMgc3VjaCBhcyBAZXhhbXBsZSxeXkolCit3aGVyZSBlYWNoIGxpbmUgb2YgaW5wdXQgcHJvZHVjZXMgYSBsaW5lIG9mIG91dHB1dC59CisKKyUgQG5lZWQgc3BhY2UtaW4tbWlscworJSBmb3JjZXMgYSBwYWdlIGJyZWFrIGlmIHRoZXJlIGlzIG5vdCBzcGFjZS1pbi1taWxzIHJlbWFpbmluZy4KKworXG5ld2RpbWVuXG1pbCAgXG1pbD0wLjAwMWluCisKKyUgT2xkIGRlZmluaXRpb24tLWRpZG4ndCB3b3JrLgorJVxwYXJzZWFyZ2RlZlxuZWVke1xwYXIgJQorJSUgVGhpcyBtZXRob2QgdHJpZXMgdG8gbWFrZSBUZVggYnJlYWsgdGhlIHBhZ2UgbmF0dXJhbGx5CislJSBpZiB0aGUgZGVwdGggb2YgdGhlIGJveCBkb2VzIG5vdCBmaXQuCisle1xiYXNlbGluZXNraXA9MHB0JQorJVx2dG9wIHRvICMxXG1pbHtcdmZpbH1ca2VybiAtIzFcbWlsXG5vYnJlYWsKKyVccHJldmRlcHRoPS0xMDAwcHQKKyV9fQorCitccGFyc2VhcmdkZWZcbmVlZHslCisgICUgRW5zdXJlIHZlcnRpY2FsIG1vZGUsIHNvIHdlIGRvbid0IG1ha2UgYSBiaWcgYm94IGluIHRoZSBtaWRkbGUgb2YgYQorICAlIHBhcmFncmFwaC4KKyAgXHBhcgorICAlCisgICUgSWYgdGhlIEBuZWVkIHZhbHVlIGlzIGxlc3MgdGhhbiBvbmUgbGluZSBzcGFjZSwgaXQncyB1c2VsZXNzLgorICBcZGltZW4wID0gIzFcbWlsCisgIFxkaW1lbjIgPSBcaHRcc3RydXRib3gKKyAgXGFkdmFuY2VcZGltZW4yIGJ5IFxkcFxzdHJ1dGJveAorICBcaWZkaW1cZGltZW4wID4gXGRpbWVuMgorICAgICUKKyAgICAlIERvIGEgXHN0cnV0IGp1c3QgdG8gbWFrZSB0aGUgaGVpZ2h0IG9mIHRoaXMgYm94IGJlIG5vcm1hbCwgc28gdGhlCisgICAgJSBub3JtYWwgbGVhZGluZyBpcyBpbnNlcnRlZCByZWxhdGl2ZSB0byB0aGUgcHJlY2VkaW5nIGxpbmUuCisgICAgJSBBbmQgYSBwYWdlIGJyZWFrIGhlcmUgaXMgZmluZS4KKyAgICBcdnRvcCB0byAjMVxtaWx7XHN0cnV0XHZmaWx9JQorICAgICUKKyAgICAlIFRlWCBkb2VzIG5vdCBldmVuIGNvbnNpZGVyIHBhZ2UgYnJlYWtzIGlmIGEgcGVuYWx0eSBhZGRlZCB0byB0aGUKKyAgICAlIG1haW4gdmVydGljYWwgbGlzdCBpcyAxMDAwMCBvciBtb3JlLiAgQnV0IGluIG9yZGVyIHRvIHNlZSBpZiB0aGUKKyAgICAlIGVtcHR5IGJveCB3ZSBqdXN0IGFkZGVkIGZpdHMgb24gdGhlIHBhZ2UsIHdlIG11c3QgbWFrZSBpdCBjb25zaWRlcgorICAgICUgcGFnZSBicmVha3MuICBPbiB0aGUgb3RoZXIgaGFuZCwgd2UgZG9uJ3Qgd2FudCB0byBhY3R1YWxseSBicmVhayB0aGUKKyAgICAlIHBhZ2UgYWZ0ZXIgdGhlIGVtcHR5IGJveC4gIFNvIHdlIHVzZSBhIHBlbmFsdHkgb2YgOTk5OS4KKyAgICAlCisgICAgJSBUaGVyZSBpcyBhbiBleHRyZW1lbHkgc21hbGwgY2hhbmNlIHRoYXQgVGVYIHdpbGwgYWN0dWFsbHkgYnJlYWsgdGhlCisgICAgJSBwYWdlIGF0IHRoaXMgXHBlbmFsdHksIGlmIHRoZXJlIGFyZSBubyBvdGhlciBmZWFzaWJsZSBicmVha3BvaW50cyBpbgorICAgICUgc2lnaHQuICAoSWYgdGhlIHVzZXIgaXMgdXNpbmcgbG90cyBvZiBiaWcgQGdyb3VwIGNvbW1hbmRzLCB3aGljaAorICAgICUgYWxtb3N0LWJ1dC1ub3QtcXVpdGUgZmlsbCB1cCBhIHBhZ2UsIFRlWCB3aWxsIGhhdmUgYSBoYXJkIHRpbWUgZG9pbmcKKyAgICAlIGdvb2QgcGFnZSBicmVha2luZywgZm9yIGV4YW1wbGUuKSAgSG93ZXZlciwgSSBjb3VsZCBub3QgY29uc3RydWN0IGFuCisgICAgJSBleGFtcGxlIHdoZXJlIGEgcGFnZSBicm9rZSBhdCB0aGlzIFxwZW5hbHR5OyBpZiBpdCBoYXBwZW5zIGluIGEgcmVhbAorICAgICUgZG9jdW1lbnQsIHRoZW4gd2UgY2FuIHJlY29uc2lkZXIgb3VyIHN0cmF0ZWd5LgorICAgIFxwZW5hbHR5OTk5OQorICAgICUKKyAgICAlIEJhY2sgdXAgYnkgdGhlIHNpemUgb2YgdGhlIGJveCwgd2hldGhlciB3ZSBkaWQgYSBwYWdlIGJyZWFrIG9yIG5vdC4KKyAgICBca2VybiAtIzFcbWlsCisgICAgJQorICAgICUgRG8gbm90IGFsbG93IGEgcGFnZSBicmVhayByaWdodCBhZnRlciB0aGlzIGtlcm4uCisgICAgXG5vYnJlYWsKKyAgXGZpCit9CisKKyUgQGJyICAgZm9yY2VzIHBhcmFncmFwaCBicmVhayAoYW5kIGlzIHVuZG9jdW1lbnRlZCkuCisKK1xsZXRcYnIgPSBccGFyCisKKyUgQHBhZ2UgZm9yY2VzIHRoZSBzdGFydCBvZiBhIG5ldyBwYWdlLgorJQorXGRlZlxwYWdle1xwYXJcdmZpbGxcc3VwZXJlamVjdH0KKworJSBAZXhkZW50IHRleHQuLi4uCislIG91dHB1dHMgdGV4dCBvbiBzZXBhcmF0ZSBsaW5lIGluIHJvbWFuIGZvbnQsIHN0YXJ0aW5nIGF0IHN0YW5kYXJkIHBhZ2UgbWFyZ2luCisKKyUgVGhpcyByZWNvcmRzIHRoZSBhbW91bnQgb2YgaW5kZW50IGluIHRoZSBpbm5lcm1vc3QgZW52aXJvbm1lbnQuCislIFRoYXQncyBob3cgbXVjaCBcZXhkZW50IHNob3VsZCB0YWtlIG91dC4KK1xuZXdza2lwXGV4ZGVudGFtb3VudAorCislIFRoaXMgZGVmbiBpcyB1c2VkIGluc2lkZSBmaWxsIGVudmlyb25tZW50cyBzdWNoIGFzIEBkZWZ1bi4KK1xwYXJzZWFyZ2RlZlxleGRlbnR7XGhmaWxcYnJlYWtcaGJveHtca2VybiAtXGV4ZGVudGFtb3VudHtccm0jMX19XGhmaWxcYnJlYWt9CisKKyUgVGhpcyBkZWZuIGlzIHVzZWQgaW5zaWRlIG5vZmlsbCBlbnZpcm9ubWVudHMgc3VjaCBhcyBAZXhhbXBsZS4KK1xwYXJzZWFyZ2RlZlxub2ZpbGxleGRlbnR7e1xhZHZhbmNlIFxsZWZ0c2tpcCBieSAtXGV4ZGVudGFtb3VudAorICBcbGVmdGxpbmV7XGhza2lwXGxlZnRza2lwe1xybSMxfX19fQorCislIEBpbm1hcmdpbntXSElDSH17VEVYVH0gcHV0cyBURVhUIGluIHRoZSBXSElDSCBtYXJnaW4gbmV4dCB0byB0aGUgY3VycmVudAorJSBwYXJhZ3JhcGguICBGb3IgbW9yZSBnZW5lcmFsIHB1cnBvc2VzLCB1c2UgdGhlIFxtYXJnaW4gaW5zZXJ0aW9uCislIGNsYXNzLiAgV0hJQ0ggaXMgYGwnIG9yIGByJy4KKyUKK1xuZXdza2lwXGlubWFyZ2luc3BhY2luZyBcaW5tYXJnaW5zcGFjaW5nPTFjbQorXGRlZlxzdHJ1dGRlcHRoe1xkcFxzdHJ1dGJveH0KKyUKK1xkZWZcZG9pbm1hcmdpbiMxIzJ7XHN0cnV0XHZhZGp1c3R7JQorICBcbm9icmVhaworICBca2Vybi1cc3RydXRkZXB0aAorICBcdnRvcCB0byBcc3RydXRkZXB0aHslCisgICAgXGJhc2VsaW5lc2tpcD1cc3RydXRkZXB0aAorICAgIFx2c3MKKyAgICAlIGlmIHlvdSBoYXZlIG11bHRpcGxlIGxpbmVzIG9mIHN0dWZmIHRvIHB1dCBoZXJlLCB5b3UnbGwgbmVlZCB0bworICAgICUgbWFrZSB0aGUgdmJveCB5b3Vyc2VsZiBvZiB0aGUgYXBwcm9wcmlhdGUgc2l6ZS4KKyAgICBcaWZ4IzFsJQorICAgICAgXGxsYXB7XGlnbm9yZXNwYWNlcyAjMlxoc2tpcFxpbm1hcmdpbnNwYWNpbmd9JQorICAgIFxlbHNlCisgICAgICBccmxhcHtcaHNraXBcaHNpemUgXGhza2lwXGlubWFyZ2luc3BhY2luZyBcaWdub3Jlc3BhY2VzICMyfSUKKyAgICBcZmkKKyAgICBcbnVsbAorICB9JQorfX0KK1xkZWZcaW5sZWZ0bWFyZ2lue1xkb2lubWFyZ2luIGx9CitcZGVmXGlucmlnaHRtYXJnaW57XGRvaW5tYXJnaW4gcn0KKyUKKyUgQGlubWFyZ2lue1RFWFQgWywgUklHSFQtVEVYVF19CislIChpZiBSSUdIVC1URVhUIGlzIGdpdmVuLCB1c2UgVEVYVCBmb3IgbGVmdCBwYWdlLCBSSUdIVC1URVhUIGZvciByaWdodDsKKyUgZWxzZSB1c2UgVEVYVCBmb3IgYm90aCkuCislCitcZGVmXGlubWFyZ2luIzF7XHBhcnNlaW5tYXJnaW4gIzEsLFxmaW5pc2h9CitcZGVmXHBhcnNlaW5tYXJnaW4jMSwjMiwjM1xmaW5pc2h7JSBub3QgcGVyZmVjdCwgYnV0IGJldHRlciB0aGFuIG5vdGhpbmcuCisgIFxzZXRib3gwID0gXGhib3h7XGlnbm9yZXNwYWNlcyAjMn0lCisgIFxpZmRpbVx3ZDAgPiAwcHQKKyAgICBcZGVmXGxlZnR0ZXh0eyMxfSUgIGhhdmUgYm90aCB0ZXh0cworICAgIFxkZWZccmlnaHR0ZXh0eyMyfSUKKyAgXGVsc2UKKyAgICBcZGVmXGxlZnR0ZXh0eyMxfSUgIGhhdmUgb25seSBvbmUgdGV4dAorICAgIFxkZWZccmlnaHR0ZXh0eyMxfSUKKyAgXGZpCisgICUKKyAgXGlmb2RkXHBhZ2VubworICAgIFxkZWZcdGVtcHtcaW5yaWdodG1hcmdpblxyaWdodHRleHR9JSBvZGQgcGFnZSAtPiBvdXRzaWRlIGlzIHJpZ2h0IG1hcmdpbgorICBcZWxzZQorICAgIFxkZWZcdGVtcHtcaW5sZWZ0bWFyZ2luXGxlZnR0ZXh0fSUKKyAgXGZpCisgIFx0ZW1wCit9CisKKyUgQGluY2x1ZGUgZmlsZSAgICBpbnNlcnQgdGV4dCBvZiB0aGF0IGZpbGUgYXMgaW5wdXQuCislCitcZGVmXGluY2x1ZGV7XHBhcnNlYXJndXNpbmdcZmlsZW5hbWVjYXRjb2Rlc1xpbmNsdWRlenp6fQorXGRlZlxpbmNsdWRlenp6IzF7JQorICBccHVzaHRoaXNmaWxlc3RhY2sKKyAgXGRlZlx0aGlzZmlsZXsjMX0lCisgIHslCisgICAgXG1ha2V2YWx1ZWV4cGFuZGFibGUKKyAgICBcZGVmXHRlbXB7XGlucHV0ICMxIH0lCisgICAgXGV4cGFuZGFmdGVyCisgIH1cdGVtcAorICBccG9wdGhpc2ZpbGVzdGFjaworfQorXGRlZlxmaWxlbmFtZWNhdGNvZGVzeyUKKyAgXGNhdGNvZGVgXFw9XG90aGVyCisgIFxjYXRjb2RlYH49XG90aGVyCisgIFxjYXRjb2RlYF49XG90aGVyCisgIFxjYXRjb2RlYF89XG90aGVyCisgIFxjYXRjb2RlYHw9XG90aGVyCisgIFxjYXRjb2RlYDw9XG90aGVyCisgIFxjYXRjb2RlYD49XG90aGVyCisgIFxjYXRjb2RlYCs9XG90aGVyCisgIFxjYXRjb2RlYC09XG90aGVyCit9CisKK1xkZWZccHVzaHRoaXNmaWxlc3RhY2t7JQorICBcZXhwYW5kYWZ0ZXJccHVzaHRoaXNmaWxlc3RhY2tYXHBvcHRoaXNmaWxlc3RhY2tcU3RhY2tUZXJtCit9CitcZGVmXHB1c2h0aGlzZmlsZXN0YWNrWHslCisgIFxleHBhbmRhZnRlclxwdXNodGhpc2ZpbGVzdGFja1lcdGhpc2ZpbGVcU3RhY2tUZXJtCit9CitcZGVmXHB1c2h0aGlzZmlsZXN0YWNrWSAjMVxTdGFja1Rlcm0gIzJcU3RhY2tUZXJtIHslCisgIFxnZGVmXHBvcHRoaXNmaWxlc3RhY2t7XGdkZWZcdGhpc2ZpbGV7IzF9XGdkZWZccG9wdGhpc2ZpbGVzdGFja3sjMn19JQorfQorCitcZGVmXHBvcHRoaXNmaWxlc3RhY2t7XGVycnRoaXNmaWxlc3RhY2tlbXB0eX0KK1xkZWZcZXJydGhpc2ZpbGVzdGFja2VtcHR5e1xlcnJtZXNzYWdle0ludGVybmFsIGVycm9yOgorICB0aGUgc3RhY2sgb2YgZmlsZW5hbWVzIGlzIGVtcHR5Ln19CisKK1xkZWZcdGhpc2ZpbGV7fQorCislIEBjZW50ZXIgbGluZQorJSBvdXRwdXRzIHRoYXQgbGluZSwgY2VudGVyZWQuCislCitccGFyc2VhcmdkZWZcY2VudGVyeyUKKyAgXGlmaG1vZGUKKyAgICBcbGV0XG5leHRcY2VudGVySAorICBcZWxzZQorICAgIFxsZXRcbmV4dFxjZW50ZXJWCisgIFxmaQorICBcbmV4dHtcaGZpbCBcaWdub3Jlc3BhY2VzIzFcdW5za2lwIFxoZmlsfSUKK30KK1xkZWZcY2VudGVySCMxeyUKKyAgeyUKKyAgICBcaGZpbFxicmVhaworICAgIFxhZHZhbmNlXGhzaXplIGJ5IC1cbGVmdHNraXAKKyAgICBcYWR2YW5jZVxoc2l6ZSBieSAtXHJpZ2h0c2tpcAorICAgIFxsaW5leyMxfSUKKyAgICBcYnJlYWsKKyAgfSUKK30KK1xkZWZcY2VudGVyViMxe1xsaW5le1xrZXJuXGxlZnRza2lwICMxXGtlcm5ccmlnaHRza2lwfX0KKworJSBAc3AgbiAgIG91dHB1dHMgbiBsaW5lcyBvZiB2ZXJ0aWNhbCBzcGFjZQorCitccGFyc2VhcmdkZWZcc3B7XHZza2lwICMxXGJhc2VsaW5lc2tpcH0KKworJSBAY29tbWVudCAuLi5saW5lIHdoaWNoIGlzIGlnbm9yZWQuLi4KKyUgQGMgaXMgdGhlIHNhbWUgYXMgQGNvbW1lbnQKKyUgQGlnbm9yZSAuLi4gQGVuZCBpZ25vcmUgIGlzIGFub3RoZXIgd2F5IHRvIHdyaXRlIGEgY29tbWVudAorCitcZGVmXGNvbW1lbnR7XGJlZ2luZ3JvdXAgXGNhdGNvZGVgXF5eTT1cb3RoZXIlCitcY2F0Y29kZWBcQD1cb3RoZXIgXGNhdGNvZGVgXHs9XG90aGVyIFxjYXRjb2RlYFx9PVxvdGhlciUKK1xjb21tZW50eHh4fQore1xjYXRjb2RlYFxeXk09XG90aGVyIFxnZGVmXGNvbW1lbnR4eHgjMV5eTXtcZW5kZ3JvdXB9fQorCitcbGV0XGM9XGNvbW1lbnQKKworJSBAcGFyYWdyYXBoaW5kZW50IE5DSEFSUworJSBXZSdsbCB1c2UgZW1zIGZvciBOQ0hBUlMsIGNsb3NlIGVub3VnaC4KKyUgTkNIQVJTIGNhbiBhbHNvIGJlIHRoZSB3b3JkIGBhc2lzJyBvciBgbm9uZScuCislIFdlIGNhbm5vdCBmZWFzaWJseSBpbXBsZW1lbnQgQHBhcmFncmFwaGluZGVudCBhc2lzLCB0aG91Z2guCislCitcZGVmXGFzaXN3b3Jke2FzaXN9ICUgbm8gdHJhbnNsYXRpb24sIHRoZXNlIGFyZSBrZXl3b3JkcworXGRlZlxub25ld29yZHtub25lfQorJQorXHBhcnNlYXJnZGVmXHBhcmFncmFwaGluZGVudHslCisgIFxkZWZcdGVtcHsjMX0lCisgIFxpZnhcdGVtcFxhc2lzd29yZAorICBcZWxzZQorICAgIFxpZnhcdGVtcFxub25ld29yZAorICAgICAgXGRlZmF1bHRwYXJpbmRlbnQgPSAwcHQKKyAgICBcZWxzZQorICAgICAgXGRlZmF1bHRwYXJpbmRlbnQgPSAjMWVtCisgICAgXGZpCisgIFxmaQorICBccGFyaW5kZW50ID0gXGRlZmF1bHRwYXJpbmRlbnQKK30KKworJSBAZXhhbXBsZWluZGVudCBOQ0hBUlMKKyUgV2UnbGwgdXNlIGVtcyBmb3IgTkNIQVJTIGxpa2UgQHBhcmFncmFwaGluZGVudC4KKyUgSXQgc2VlbXMgQGV4YW1wbGVpbmRlbnQgYXNpcyBpc24ndCBuZWNlc3NhcnksIGJ1dAorJSBJIHByZXNlcnZlIGl0IHRvIG1ha2UgaXQgc2ltaWxhciB0byBAcGFyYWdyYXBoaW5kZW50LgorXHBhcnNlYXJnZGVmXGV4YW1wbGVpbmRlbnR7JQorICBcZGVmXHRlbXB7IzF9JQorICBcaWZ4XHRlbXBcYXNpc3dvcmQKKyAgXGVsc2UKKyAgICBcaWZ4XHRlbXBcbm9uZXdvcmQKKyAgICAgIFxsaXNwbmFycm93aW5nID0gMHB0CisgICAgXGVsc2UKKyAgICAgIFxsaXNwbmFycm93aW5nID0gIzFlbQorICAgIFxmaQorICBcZmkKK30KKworJSBAZmlyc3RwYXJhZ3JhcGhpbmRlbnQgV09SRAorJSBJZiBXT1JEIGlzIGBub25lJywgdGhlbiBzdXBwcmVzcyBpbmRlbnRhdGlvbiBvZiB0aGUgZmlyc3QgcGFyYWdyYXBoCislIGFmdGVyIGEgc2VjdGlvbiBoZWFkaW5nLiAgSWYgV09SRCBpcyBgaW5zZXJ0JywgdGhlbiBkbyBpbmRlbnQgYXQgc3VjaAorJSBwYXJhZ3JhcGhzLgorJQorJSBUaGUgcGFyYWdyYXBoIGluZGVudGF0aW9uIGlzIHN1cHByZXNzZWQgb3Igbm90IGJ5IGNhbGxpbmcKKyUgXHN1cHByZXNzZmlyc3RwYXJhZ3JhcGhpbmRlbnQsIHdoaWNoIHRoZSBzZWN0aW9uaW5nIGNvbW1hbmRzIGRvLgorJSBXZSBzd2l0Y2ggdGhlIGRlZmluaXRpb24gb2YgdGhpcyBiYWNrIGFuZCBmb3J0aCBhY2NvcmRpbmcgdG8gV09SRC4KKyUgQnkgZGVmYXVsdCwgd2Ugc3VwcHJlc3MgaW5kZW50YXRpb24uCislCitcZGVmXHN1cHByZXNzZmlyc3RwYXJhZ3JhcGhpbmRlbnR7XGRvc3VwcHJlc3NmaXJzdHBhcmFncmFwaGluZGVudH0KK1xkZWZcaW5zZXJ0d29yZHtpbnNlcnR9CislCitccGFyc2VhcmdkZWZcZmlyc3RwYXJhZ3JhcGhpbmRlbnR7JQorICBcZGVmXHRlbXB7IzF9JQorICBcaWZ4XHRlbXBcbm9uZXdvcmQKKyAgICBcbGV0XHN1cHByZXNzZmlyc3RwYXJhZ3JhcGhpbmRlbnQgPSBcZG9zdXBwcmVzc2ZpcnN0cGFyYWdyYXBoaW5kZW50CisgIFxlbHNlXGlmeFx0ZW1wXGluc2VydHdvcmQKKyAgICBcbGV0XHN1cHByZXNzZmlyc3RwYXJhZ3JhcGhpbmRlbnQgPSBccmVsYXgKKyAgXGVsc2UKKyAgICBcZXJyaGVscCA9IFxFTXNpbXBsZQorICAgIFxlcnJtZXNzYWdle1Vua25vd24gQGZpcnN0cGFyYWdyYXBoaW5kZW50IG9wdGlvbiBgXHRlbXAnfSUKKyAgXGZpXGZpCit9CisKKyUgSGVyZSBpcyBob3cgd2UgYWN0dWFsbHkgc3VwcHJlc3MgaW5kZW50YXRpb24uICBSZWRlZmluZSBcZXZlcnlwYXIgdG8KKyUgXGtlcm4gYmFja3dhcmRzIGJ5IFxwYXJpbmRlbnQsIGFuZCB0aGVuIHJlc2V0IGl0c2VsZiB0byBlbXB0eS4KKyUKKyUgV2UgYWxzbyBtYWtlIFxpbmRlbnQgaXRzZWxmIG5vdCBhY3R1YWxseSBkbyBhbnl0aGluZyB1bnRpbCB0aGUgbmV4dAorJSBwYXJhZ3JhcGguCislCitcZ2RlZlxkb3N1cHByZXNzZmlyc3RwYXJhZ3JhcGhpbmRlbnR7JQorICBcZ2RlZlxpbmRlbnR7JQorICAgIFxyZXN0b3JlZmlyc3RwYXJhZ3JhcGhpbmRlbnQKKyAgICBcaW5kZW50CisgIH0lCisgIFxnZGVmXG5vaW5kZW50eyUKKyAgICBccmVzdG9yZWZpcnN0cGFyYWdyYXBoaW5kZW50CisgICAgXG5vaW5kZW50CisgIH0lCisgIFxnbG9iYWxcZXZlcnlwYXIgPSB7JQorICAgIFxrZXJuIC1ccGFyaW5kZW50CisgICAgXHJlc3RvcmVmaXJzdHBhcmFncmFwaGluZGVudAorICB9JQorfQorCitcZ2RlZlxyZXN0b3JlZmlyc3RwYXJhZ3JhcGhpbmRlbnR7JQorICBcZ2xvYmFsIFxsZXQgXGluZGVudCA9IFxwdGV4aW5kZW50CisgIFxnbG9iYWwgXGxldCBcbm9pbmRlbnQgPSBccHRleG5vaW5kZW50CisgIFxnbG9iYWwgXGV2ZXJ5cGFyID0ge30lCit9CisKKworJSBAYXNpcyBqdXN0IHlpZWxkcyBpdHMgYXJndW1lbnQuICBVc2VkIHdpdGggQHRhYmxlLCBmb3IgZXhhbXBsZS4KKyUKK1xkZWZcYXNpcyMxeyMxfQorCislIEBtYXRoIG91dHB1dHMgaXRzIGFyZ3VtZW50IGluIG1hdGggbW9kZS4KKyUKKyUgT25lIGNvbXBsaWNhdGlvbjogXyB1c3VhbGx5IG1lYW5zIHN1YnNjcmlwdHMsIGJ1dCBpdCBjb3VsZCBhbHNvIG1lYW4KKyUgYW4gYWN0dWFsIF8gY2hhcmFjdGVyLCBhcyBpbiBAbWF0aHtAdmFye3NvbWVfdmFyaWFibGV9ICsgMX0uICBTbyBtYWtlCislIF8gYWN0aXZlLCBhbmQgZGlzdGluZ3Vpc2ggYnkgc2VlaW5nIGlmIHRoZSBjdXJyZW50IGZhbWlseSBpcyBcc2xmYW0sCislIHdoaWNoIGlzIHdoYXQgQHZhciB1c2VzLgoreworICBcY2F0Y29kZVx1bmRlckNoYXIgPSBcYWN0aXZlCisgIFxnZGVmXG1hdGh1bmRlcnNjb3JleyUKKyAgICBcY2F0Y29kZVx1bmRlckNoYXI9XGFjdGl2ZQorICAgIFxkZWZfe1xpZm51bVxmYW09XHNsZmFtIFxfXGVsc2Vcc2JcZml9JQorICB9Cit9CislIEFub3RoZXIgY29tcGxpY2F0aW9uOiB3ZSB3YW50IFxcIChhbmQgQFwpIHRvIG91dHB1dCBhIFwgY2hhcmFjdGVyLgorJSBGWUksIHBsYWluLnRleCB1c2VzIFxcIGFzIGEgdGVtcG9yYXJ5IGNvbnRyb2wgc2VxdWVuY2UgKHdoeT8pLCBidXQKKyUgdGhpcyBpcyBub3QgYWR2ZXJ0aXNlZCBhbmQgd2UgZG9uJ3QgY2FyZS4gIFRleGluZm8gZG9lcyBub3QKKyUgb3RoZXJ3aXNlIGRlZmluZSBAXC4KKyUKKyUgVGhlIFxtYXRoY2hhciBpcyBjbGFzcz0wPW9yZGluYXJ5LCBmYW1pbHk9Nz10dGZhbSwgcG9zaXRpb249NUM9XC4KK1xkZWZcbWF0aGJhY2tzbGFzaHtcaWZudW1cZmFtPVx0dGZhbSBcbWF0aGNoYXIiMDc1QyBcZWxzZVxiYWNrc2xhc2ggXGZpfQorJQorXGRlZlxtYXRoeyUKKyAgXHRleAorICBcbWF0aHVuZGVyc2NvcmUKKyAgXGxldFxcID0gXG1hdGhiYWNrc2xhc2gKKyAgXG1hdGhhY3RpdmUKKyAgJFxmaW5pc2htYXRoCit9CitcZGVmXGZpbmlzaG1hdGgjMXsjMSRcZW5kZ3JvdXB9ICAlIENsb3NlIHRoZSBncm91cCBvcGVuZWQgYnkgXHRleC4KKworJSBTb21lIGFjdGl2ZSBjaGFyYWN0ZXJzIChzdWNoIGFzIDwpIGFyZSBzcGFjZWQgZGlmZmVyZW50bHkgaW4gbWF0aC4KKyUgV2UgaGF2ZSB0byByZXNldCB0aGVpciBkZWZpbml0aW9ucyBpbiBjYXNlIHRoZSBAbWF0aCB3YXMgYW4gYXJndW1lbnQKKyUgdG8gYSBjb21tYW5kIHdoaWNoIHNldHMgdGhlIGNhdGNvZGVzIChzdWNoIGFzIEBpdGVtIG9yIEBzZWN0aW9uKS4KKyUKK3sKKyAgXGNhdGNvZGVgXiA9IFxhY3RpdmUKKyAgXGNhdGNvZGVgPCA9IFxhY3RpdmUKKyAgXGNhdGNvZGVgPiA9IFxhY3RpdmUKKyAgXGNhdGNvZGVgKyA9IFxhY3RpdmUKKyAgXGdkZWZcbWF0aGFjdGl2ZXslCisgICAgXGxldF4gPSBccHRleGhhdAorICAgIFxsZXQ8ID0gXHB0ZXhsZXNzCisgICAgXGxldD4gPSBccHRleGd0cgorICAgIFxsZXQrID0gXHB0ZXhwbHVzCisgIH0KK30KKworJSBAYnVsbGV0IGFuZCBAbWludXMgbmVlZCB0aGUgc2FtZSB0cmVhdG1lbnQgYXMgQG1hdGgsIGp1c3QgYWJvdmUuCitcZGVmXGJ1bGxldHskXHB0ZXhidWxsZXQkfQorXGRlZlxtaW51c3skLSR9CisKKyUgQGRvdHN7fSBvdXRwdXRzIGFuIGVsbGlwc2lzIHVzaW5nIHRoZSBjdXJyZW50IGZvbnQuCislIFdlIGRvIC41ZW0gcGVyIHBlcmlvZCBzbyB0aGF0IGl0IGhhcyB0aGUgc2FtZSBzcGFjaW5nIGluIGEgdHlwZXdyaXRlcgorJSBmb250IGFzIHRocmVlIGFjdHVhbCBwZXJpb2QgY2hhcmFjdGVycy4KKyUKK1xkZWZcZG90c3slCisgIFxsZWF2ZXZtb2RlCisgIFxoYm94IHRvIDEuNWVteyUKKyAgICBcaHNraXAgMHB0IHBsdXMgMC4yNWZpbAorICAgIC5caGZpbC5caGZpbC4lCisgICAgXGhza2lwIDBwdCBwbHVzIDAuNWZpbAorICB9JQorfQorCislIEBlbmRkb3Rze30gaXMgYW4gZW5kLW9mLXNlbnRlbmNlIGVsbGlwc2lzLgorJQorXGRlZlxlbmRkb3RzeyUKKyAgXGRvdHMKKyAgXHNwYWNlZmFjdG9yPVxlbmRvZnNlbnRlbmNlc3BhY2VmYWN0b3IKK30KKworJSBAY29tbWF7fSBpcyBzbyBjb21tYXMgY2FuIGJlIGluc2VydGVkIGludG8gdGV4dCB3aXRob3V0IG1lc3NpbmcgdXAKKyUgVGV4aW5mbydzIHBhcnNpbmcuCislCitcbGV0XGNvbW1hID0gLAorCislIEByZWZpbGwgaXMgYSBuby1vcC4KK1xsZXRccmVmaWxsPVxyZWxheAorCislIElmIHdvcmtpbmcgb24gYSBsYXJnZSBkb2N1bWVudCBpbiBjaGFwdGVycywgaXQgaXMgY29udmVuaWVudCB0bworJSBiZSBhYmxlIHRvIGRpc2FibGUgaW5kZXhpbmcsIGNyb3NzLXJlZmVyZW5jaW5nLCBhbmQgY29udGVudHMsIGZvciB0ZXN0IHJ1bnMuCislIFRoaXMgaXMgZG9uZSB3aXRoIEBub3ZhbGlkYXRlIChiZWZvcmUgQHNldGZpbGVuYW1lKS4KKyUKK1xuZXdpZlxpZmxpbmtzIFxsaW5rc3RydWUgJSBieSBkZWZhdWx0IHdlIHdhbnQgdGhlIGF1eCBmaWxlcy4KK1xsZXRcbm92YWxpZGF0ZSA9IFxsaW5rc2ZhbHNlCisKKyUgQHNldGZpbGVuYW1lIGlzIGRvbmUgYXQgdGhlIGJlZ2lubmluZyBvZiBldmVyeSB0ZXhpbmZvIGZpbGUuCislIFNvIG9wZW4gaGVyZSB0aGUgZmlsZXMgd2UgbmVlZCB0byBoYXZlIG9wZW4gd2hpbGUgcmVhZGluZyB0aGUgaW5wdXQuCislIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gbWFrZSBhIC5mbXQgZmlsZSBmb3IgdGV4aW5mby4KK1xkZWZcc2V0ZmlsZW5hbWV7JQorICAgXGZpeGJhY2tzbGFzaCAgJSBUdXJuIG9mZiBoYWNrIHRvIHN3YWxsb3cgYFxpbnB1dCB0ZXhpbmZvJy4KKyAgIFxpZmxpbmtzCisgICAgIFx0cnlhdXhmaWxlCisgICAgICUgT3BlbiB0aGUgbmV3IGF1eCBmaWxlLiAgVGVYIHdpbGwgY2xvc2UgaXQgYXV0b21hdGljYWxseSBhdCBleGl0LgorICAgICBcaW1tZWRpYXRlXG9wZW5vdXRcYXV4ZmlsZT1cam9ibmFtZS5hdXgKKyAgIFxmaSAlIFxvcGVuaW5kaWNlcyBuZWVkcyB0byBkbyBzb21lIHdvcmsgaW4gYW55IGNhc2UuCisgICBcb3BlbmluZGljZXMKKyAgIFxsZXRcc2V0ZmlsZW5hbWU9XGNvbW1lbnQgJSBJZ25vcmUgZXh0cmEgQHNldGZpbGVuYW1lIGNtZHMuCisgICAlCisgICAlIElmIHRleGluZm8uY25mIGlzIHByZXNlbnQgb24gdGhlIHN5c3RlbSwgcmVhZCBpdC4KKyAgICUgVXNlZnVsIGZvciBzaXRlLXdpZGUgQGFmb3VycGFwZXIsIGV0Yy4KKyAgIFxvcGVuaW4gMSB0ZXhpbmZvLmNuZgorICAgXGlmZW9mIDEgXGVsc2UgXGlucHV0IHRleGluZm8uY25mIFxmaQorICAgXGNsb3NlaW4gMQorICAgJQorICAgXGNvbW1lbnQgJSBJZ25vcmUgdGhlIGFjdHVhbCBmaWxlbmFtZS4KK30KKworJSBDYWxsZWQgZnJvbSBcc2V0ZmlsZW5hbWUuCislCitcZGVmXG9wZW5pbmRpY2VzeyUKKyAgXG5ld2luZGV4e2NwfSUKKyAgXG5ld2NvZGVpbmRleHtmbn0lCisgIFxuZXdjb2RlaW5kZXh7dnJ9JQorICBcbmV3Y29kZWluZGV4e3RwfSUKKyAgXG5ld2NvZGVpbmRleHtreX0lCisgIFxuZXdjb2RlaW5kZXh7cGd9JQorfQorCislIEBieWUuCitcb3V0ZXJcZGVmXGJ5ZXtccGFnZWFsaWdubWFjcm9cdHJhY2luZ3N0YXRzPTFccHRleGVuZH0KKworCitcbWVzc2FnZXtwZGYsfQorJSBhZG9iZSBgcG9ydGFibGUnIGRvY3VtZW50IGZvcm1hdAorXG5ld2NvdW50XHRlbXBudW0KK1xuZXdjb3VudFxsbmtjb3VudAorXG5ld3Rva3NcZmlsZW5hbWUKK1xuZXdjb3VudFxmaWxlbmFtZWxlbmd0aAorXG5ld2NvdW50XHBnbgorXG5ld3Rva3NcdG9rc0EKK1xuZXd0b2tzXHRva3NCCitcbmV3dG9rc1x0b2tzQworXG5ld3Rva3NcdG9rc0QKK1xuZXdib3hcYm94QQorXG5ld2NvdW50XGNvdW50QQorXG5ld2lmXGlmcGRmCitcbmV3aWZcaWZwZGZtYWtlcGFnZWRlc3QKKworJSB3aGVuIHBkZnRleCBpcyBydW4gaW4gZHZpIG1vZGUsIFxwZGZvdXRwdXQgaXMgZGVmaW5lZCAoc28gXHBkZm91dHB1dD0xCislIGNhbiBiZSBzZXQpLiAgU28gd2UgdGVzdCBmb3IgXHJlbGF4IGFuZCAwIGFzIHdlbGwgYXMgXHVuZGVmaW5lZCwKKyUgYm9ycm93ZWQgZnJvbSBpZnBkZi5zdHkuCitcaWZ4XHBkZm91dHB1dFx1bmRlZmluZWQKK1xlbHNlCisgIFxpZnhccGRmb3V0cHV0XHJlbGF4CisgIFxlbHNlCisgICAgXGlmY2FzZVxwZGZvdXRwdXQKKyAgICBcZWxzZQorICAgICAgXHBkZnRydWUKKyAgICBcZmkKKyAgXGZpCitcZmkKKworJSBQREYgdXNlcyBQb3N0U2NyaXB0IHN0cmluZyBjb25zdGFudHMgZm9yIHRoZSBuYW1lcyBvZiB4cmVmIHRhcmdldHMsIHRvCislIGZvciBkaXNwbGF5IGluIHRoZSBvdXRsaW5lcywgYW5kIGluIG90aGVyIHBsYWNlcy4gIFRodXMsIHdlIGhhdmUgdG8KKyUgZG91YmxlIGFueSBiYWNrc2xhc2hlcy4gIE90aGVyd2lzZSwgYSBuYW1lIGxpa2UgIlxub2RlIiB3aWxsIGJlCislIGludGVycHJldGVkIGFzIGEgbmV3bGluZSAoXG4pLCBmb2xsb3dlZCBieSBvLCBkLCBlLiAgTm90IGdvb2QuCislIGh0dHA6Ly93d3cubnRnLm5sL3BpcGVybWFpbC9udGctcGRmdGV4LzIwMDQtSnVseS8wMDA2NTQuaHRtbAorJSAoYW5kIHJlbGF0ZWQgbWVzc2FnZXMsIHRoZSBmaW5hbCBvdXRjb21lIGlzIHRoYXQgaXQgaXMgdXAgdG8gdGhlIFRlWAorJSB1c2VyIHRvIGRvdWJsZSB0aGUgYmFja3NsYXNoZXMgYW5kIG90aGVyd2lzZSBtYWtlIHRoZSBzdHJpbmcgdmFsaWQsIHNvCislIHRoYXQncyB3ZSBkbykuCisKKyUgZG91YmxlIGFjdGl2ZSBiYWNrc2xhc2hlcy4KKyUgCit7XGNhdGNvZGVgXEA9MCBcY2F0Y29kZWBcXD1cYWN0aXZlCisgQGdkZWZAYWN0aXZlYmFja3NsYXNoe0BjYXRjb2RlYEBcPUBhY3RpdmUgQG90aGVyYmFja3NsYXNofQorIEBnZGVmQGFjdGl2ZWJhY2tzbGFzaGRvdWJsZXslCisgICBAY2F0Y29kZUBiYWNrQ2hhcj1AYWN0aXZlCisgICBAbGV0XD1AZG91YmxlYmFja3NsYXNofQorfQorCislIFRvIGhhbmRsZSBwYXJlbnMsIHdlIG11c3QgYWRvcHQgYSBkaWZmZXJlbnQgYXBwcm9hY2gsIHNpbmNlIHBhcmVucyBhcmUKKyUgbm90IGFjdGl2ZSBjaGFyYWN0ZXJzLiAgaHlwZXJyZWYuZHR4ICh3aGljaCBoYXMgdGhlIHNhbWUgcHJvYmxlbSBhcworJSB1cykgaGFuZGxlcyBpdCB3aXRoIHRoaXMgYW1hemluZyBtYWNybyB0byByZXBsYWNlIHRva2Vucy4gIEkndmUKKyUgdGlua2VyZWQgd2l0aCBpdCBhIGxpdHRsZSBmb3IgdGV4aW5mbywgYnV0IGl0J3MgZGVmaW5pdGVseSBmcm9tIHRoZXJlLgorJSAKKyUgIzEgaXMgdGhlIHRva2VucyB0byByZXBsYWNlLgorJSAjMiBpcyB0aGUgcmVwbGFjZW1lbnQuCislICMzIGlzIHRoZSBjb250cm9sIHNlcXVlbmNlIHdpdGggdGhlIHN0cmluZy4KKyUgCitcZGVmXEh5UHNkU3Vic3QjMSMyIzN7JQorICBcZGVmXEh5UHNkUmVwbGFjZSMjMSMxIyMyXEVORHslCisgICAgIyMxJQorICAgIFxpZnhcXCMjMlxcJQorICAgIFxlbHNlCisgICAgICAjMiUKKyAgICAgIFxIeVJldHVybkFmdGVyRml7JQorICAgICAgICBcSHlQc2RSZXBsYWNlIyMyXEVORAorICAgICAgfSUKKyAgICBcZmkKKyAgfSUKKyAgXHhkZWYjM3tcZXhwYW5kYWZ0ZXJcSHlQc2RSZXBsYWNlIzMjMVxFTkR9JQorfQorXGxvbmdcZGVmXEh5UmV0dXJuQWZ0ZXJGaSMxXGZpe1xmaSMxfQorCislICMxIGlzIGEgY29udHJvbCBzZXF1ZW5jZSBpbiB3aGljaCB0byBkbyB0aGUgcmVwbGFjZW1lbnRzLgorXGRlZlxiYWNrc2xhc2hwYXJlbnMjMXslCisgIFx4ZGVmIzF7IzF9JSByZWRlZmluZSBpdCBhcyBpdHMgZXhwYW5zaW9uOyB0aGUgZGVmaW5pdGlvbiBpcyBzaW1wbHkKKyAgICAgICAgICAgICAlIFxsYXN0bm9kZSB3aGVuIGNhbGxlZCBmcm9tIFxzZXRyZWYgLT4gXHBkZm1rZGVzdC4KKyAgXEh5UHNkU3Vic3R7KH17XGJhY2tzbGFzaGxwYXJlbn17IzF9JQorICBcSHlQc2RTdWJzdHspfXtcYmFja3NsYXNocnBhcmVufXsjMX0lCit9CisKK3tcY2F0Y29kZVxleGNsYW1DaGFyID0gMCBcY2F0Y29kZVxiYWNrQ2hhciA9IFxvdGhlcgorICFnZGVmIWJhY2tzbGFzaGxwYXJlbntcKH0lCisgIWdkZWYhYmFja3NsYXNocnBhcmVue1wpfSUKK30KKworXGlmcGRmCisgIFxpbnB1dCBwZGZjb2xvcgorICBccGRmY2F0YWxvZ3svUGFnZU1vZGUgL1VzZU91dGxpbmVzfSUKKyAgXGRlZlxkb3BkZmltYWdlIzEjMiMzeyUKKyAgICBcZGVmXGltYWdld2lkdGh7IzJ9JQorICAgIFxkZWZcaW1hZ2VoZWlnaHR7IzN9JQorICAgICUgd2l0aG91dCBcaW1tZWRpYXRlLCBwZGZ0ZXggc2VnIGZhdWx0cyB3aGVuIHRoZSBzYW1lIGltYWdlIGlzCisgICAgJSBpbmNsdWRlZCB0d2ljZS4gIChWZXJzaW9uIDMuMTQxNTktcHJlLTEuMC11bm9mZmljaWFsLTIwMDEwNzA0LikKKyAgICBcaWZudW1ccGRmdGV4dmVyc2lvbiA8IDE0CisgICAgICBcaW1tZWRpYXRlXHBkZmltYWdlCisgICAgXGVsc2UKKyAgICAgIFxpbW1lZGlhdGVccGRmeGltYWdlCisgICAgXGZpCisgICAgICBcaWZ4XGVtcHR5XGltYWdld2lkdGhcZWxzZSB3aWR0aCBcaW1hZ2V3aWR0aCBcZmkKKyAgICAgIFxpZnhcZW1wdHlcaW1hZ2VoZWlnaHRcZWxzZSBoZWlnaHQgXGltYWdlaGVpZ2h0IFxmaQorICAgICAgXGlmbnVtXHBkZnRleHZlcnNpb248MTMKKyAgICAgICAgICMxLnBkZiUKKyAgICAgICBcZWxzZQorICAgICAgICAgeyMxLnBkZn0lCisgICAgICAgXGZpCisgICAgXGlmbnVtXHBkZnRleHZlcnNpb24gPCAxNCBcZWxzZQorICAgICAgXHBkZnJlZnhpbWFnZSBccGRmbGFzdHhpbWFnZQorICAgIFxmaX0KKyAgXGRlZlxwZGZta2Rlc3QjMXt7JQorICAgICUgV2UgaGF2ZSB0byBzZXQgZHVtbWllcyBzbyBjb21tYW5kcyBzdWNoIGFzIEBjb2RlLCBhbmQgY2hhcmFjdGVycworICAgICUgc3VjaCBhcyBcLCBhcmVuJ3QgZXhwYW5kZWQgd2hlbiBwcmVzZW50IGluIGEgc2VjdGlvbiB0aXRsZS4KKyAgICBcYXRkdW1taWVzCisgICAgXGFjdGl2ZWJhY2tzbGFzaGRvdWJsZQorICAgIFxkZWZccGRmZGVzdG5hbWV7IzF9JQorICAgIFxiYWNrc2xhc2hwYXJlbnNccGRmZGVzdG5hbWUKKyAgICBccGRmZGVzdCBuYW1le1xwZGZkZXN0bmFtZX0geHl6JQorICB9fSUKKyAgJQorICAlIHVzZWQgdG8gbWFyayB0YXJnZXQgbmFtZXM7IG11c3QgYmUgZXhwYW5kYWJsZS4KKyAgXGRlZlxwZGZta3BnbiMxeyMxfSUKKyAgJQorICBcbGV0XGxpbmtjb2xvciA9IFxCbHVlICAlIHdhcyBDeWFuLCBidXQgdGhhdCBzZWVtcyBsaWdodD8KKyAgXGRlZlxlbmRsaW5re1xCbGFja1xwZGZlbmRsaW5rfQorICAlIEFkZGluZyBvdXRsaW5lcyB0byBQREY7IG1hY3JvcyBmb3IgY2FsY3VsYXRpbmcgc3RydWN0dXJlIG9mIG91dGxpbmVzCisgICUgY29tZSBmcm9tIFBldHIgT2xzYWsKKyAgXGRlZlxleHBudW1iZXIjMXtcZXhwYW5kYWZ0ZXJcaWZ4XGNzbmFtZSMxXGVuZGNzbmFtZVxyZWxheCAwJQorICAgIFxlbHNlIFxjc25hbWUjMVxlbmRjc25hbWUgXGZpfQorICBcZGVmXGFkdmFuY2VudW1iZXIjMXtcdGVtcG51bT1cZXhwbnVtYmVyeyMxfVxyZWxheAorICAgIFxhZHZhbmNlXHRlbXBudW0gYnkgMQorICAgIFxleHBhbmRhZnRlclx4ZGVmXGNzbmFtZSMxXGVuZGNzbmFtZXtcdGhlXHRlbXBudW19fQorICAlCisgICUgIzEgaXMgdGhlIHNlY3Rpb24gdGV4dCwgd2hpY2ggaXMgd2hhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUKKyAgJSBvdXRsaW5lIGJ5IHRoZSBwZGYgdmlld2VyLiAgIzIgaXMgdGhlIHBkZiBleHByZXNzaW9uIGZvciB0aGUgbnVtYmVyCisgICUgb2Ygc3ViZW50cmllcyAob3IgZW1wdHksIGZvciBzdWJzdWJzZWN0aW9ucykuICAjMyBpcyB0aGUgbm9kZSB0ZXh0LAorICAlIHdoaWNoIG1pZ2h0IGJlIGVtcHR5IGlmIHRoaXMgdG9jIGVudHJ5IGhhZCBubyBjb3JyZXNwb25kaW5nIG5vZGUuCisgICUgIzQgaXMgdGhlIHBhZ2UgbnVtYmVyCisgICUKKyAgXGRlZlxkb3BkZm91dGxpbmUjMSMyIzMjNHslCisgICAgJSBHZW5lcmF0ZSBhIGxpbmsgdG8gdGhlIG5vZGUgdGV4dCBpZiB0aGF0IGV4aXN0czsgZWxzZSwgdXNlIHRoZQorICAgICUgcGFnZSBudW1iZXIuICBXZSBjb3VsZCBnZW5lcmF0ZSBhIGRlc3RpbmF0aW9uIGZvciB0aGUgc2VjdGlvbgorICAgICUgdGV4dCBpbiB0aGUgY2FzZSB3aGVyZSBhIHNlY3Rpb24gaGFzIG5vIG5vZGUsIGJ1dCBpdCBkb2Vzbid0CisgICAgJSBzZWVtIHdvcnRoIHRoZSB0cm91YmxlLCBzaW5jZSBtb3N0IGRvY3VtZW50cyBhcmUgbm9ybWFsbHkgc3RydWN0dXJlZC4KKyAgICBcZGVmXHBkZm91dGxpbmVkZXN0eyMzfSUKKyAgICBcaWZ4XHBkZm91dGxpbmVkZXN0XGVtcHR5CisgICAgICBcZGVmXHBkZm91dGxpbmVkZXN0eyM0fSUKKyAgICBcZWxzZQorICAgICAgJSBEb3VibGVkIGJhY2tzbGFzaGVzIGluIHRoZSBuYW1lLgorICAgICAge1xhY3RpdmViYWNrc2xhc2hkb3VibGUgXHhkZWZccGRmb3V0bGluZWRlc3R7IzN9JQorICAgICAgIFxiYWNrc2xhc2hwYXJlbnNccGRmb3V0bGluZWRlc3R9JQorICAgIFxmaQorICAgICUKKyAgICAlIEFsc28gZG91YmxlIHRoZSBiYWNrc2xhc2hlcyBpbiB0aGUgZGlzcGxheSBzdHJpbmcuCisgICAge1xhY3RpdmViYWNrc2xhc2hkb3VibGUgXHhkZWZccGRmb3V0bGluZXRleHR7IzF9JQorICAgICBcYmFja3NsYXNocGFyZW5zXHBkZm91dGxpbmV0ZXh0fSUKKyAgICAlCisgICAgXHBkZm91dGxpbmUgZ290byBuYW1le1xwZGZta3BnbntccGRmb3V0bGluZWRlc3R9fSMye1xwZGZvdXRsaW5ldGV4dH0lCisgIH0KKyAgJQorICBcZGVmXHBkZm1ha2VvdXRsaW5lc3slCisgICAgXGJlZ2luZ3JvdXAKKyAgICAgICUgVGhhbmgncyBoYWNrIC8gcHJvcGVyIGJyYWNlcyBpbiBib29rbWFya3MKKyAgICAgIFxlZGVmXG15bGJyYWNle1xpZnRydWUgXHN0cmluZ3tcZWxzZX1cZml9XGxldFx7PVxteWxicmFjZQorICAgICAgXGVkZWZcbXlyYnJhY2V7XGlmZmFsc2V7XGVsc2Vcc3RyaW5nfVxmaX1cbGV0XH09XG15cmJyYWNlCisgICAgICAlCisgICAgICAlIFJlYWQgdG9jIHNpbGVudGx5LCB0byBnZXQgY291bnRzIG9mIHN1YmVudHJpZXMgZm9yIFxwZGZvdXRsaW5lLgorICAgICAgXGRlZlxudW1jaGFwZW50cnkjIzEjIzIjIzMjIzR7JQorCVxkZWZcdGhpc2NoYXBudW17IyMyfSUKKwlcZGVmXHRoaXNzZWNudW17MH0lCisJXGRlZlx0aGlzc3Vic2VjbnVtezB9JQorICAgICAgfSUKKyAgICAgIFxkZWZcbnVtc2VjZW50cnkjIzEjIzIjIzMjIzR7JQorCVxhZHZhbmNlbnVtYmVye2NoYXBcdGhpc2NoYXBudW19JQorCVxkZWZcdGhpc3NlY251bXsjIzJ9JQorCVxkZWZcdGhpc3N1YnNlY251bXswfSUKKyAgICAgIH0lCisgICAgICBcZGVmXG51bXN1YnNlY2VudHJ5IyMxIyMyIyMzIyM0eyUKKwlcYWR2YW5jZW51bWJlcntzZWNcdGhpc3NlY251bX0lCisJXGRlZlx0aGlzc3Vic2VjbnVteyMjMn0lCisgICAgICB9JQorICAgICAgXGRlZlxudW1zdWJzdWJzZWNlbnRyeSMjMSMjMiMjMyMjNHslCisJXGFkdmFuY2VudW1iZXJ7c3Vic2VjXHRoaXNzdWJzZWNudW19JQorICAgICAgfSUKKyAgICAgIFxkZWZcdGhpc2NoYXBudW17MH0lCisgICAgICBcZGVmXHRoaXNzZWNudW17MH0lCisgICAgICBcZGVmXHRoaXNzdWJzZWNudW17MH0lCisgICAgICAlCisgICAgICAlIHVzZSBcZGVmIHJhdGhlciB0aGFuIFxsZXQgaGVyZSBiZWNhdXNlIHdlIHJlZGVmaW5lIFxjaGFwZW50cnkgZXQKKyAgICAgICUgYWwuIGEgc2Vjb25kIHRpbWUsIGJlbG93LgorICAgICAgXGRlZlxhcHBlbnRyeXtcbnVtY2hhcGVudHJ5fSUKKyAgICAgIFxkZWZcYXBwc2VjZW50cnl7XG51bXNlY2VudHJ5fSUKKyAgICAgIFxkZWZcYXBwc3Vic2VjZW50cnl7XG51bXN1YnNlY2VudHJ5fSUKKyAgICAgIFxkZWZcYXBwc3Vic3Vic2VjZW50cnl7XG51bXN1YnN1YnNlY2VudHJ5fSUKKyAgICAgIFxkZWZcdW5uY2hhcGVudHJ5e1xudW1jaGFwZW50cnl9JQorICAgICAgXGRlZlx1bm5zZWNlbnRyeXtcbnVtc2VjZW50cnl9JQorICAgICAgXGRlZlx1bm5zdWJzZWNlbnRyeXtcbnVtc3Vic2VjZW50cnl9JQorICAgICAgXGRlZlx1bm5zdWJzdWJzZWNlbnRyeXtcbnVtc3Vic3Vic2VjZW50cnl9JQorICAgICAgXHJlYWRkYXRhZmlsZXt0b2N9JQorICAgICAgJQorICAgICAgJSBSZWFkIHRvYyBzZWNvbmQgdGltZSwgdGhpcyB0aW1lIGFjdHVhbGx5IHByb2R1Y2luZyB0aGUgb3V0bGluZXMuCisgICAgICAlIFRoZSBgLScgbWVhbnMgdGFrZSB0aGUgXGV4cG51bWJlciBhcyB0aGUgYWJzb2x1dGUgbnVtYmVyIG9mCisgICAgICAlIHN1YmVudHJpZXMsIHdoaWNoIHdlIGNhbGN1bGF0ZWQgb24gb3VyIGZpcnN0IHJlYWQgb2YgdGhlIC50b2MgYWJvdmUuCisgICAgICAlCisgICAgICAlIFdlIHVzZSB0aGUgbm9kZSBuYW1lcyBhcyB0aGUgZGVzdGluYXRpb25zLgorICAgICAgXGRlZlxudW1jaGFwZW50cnkjIzEjIzIjIzMjIzR7JQorICAgICAgICBcZG9wZGZvdXRsaW5leyMjMX17Y291bnQtXGV4cG51bWJlcntjaGFwIyMyfX17IyMzfXsjIzR9fSUKKyAgICAgIFxkZWZcbnVtc2VjZW50cnkjIzEjIzIjIzMjIzR7JQorICAgICAgICBcZG9wZGZvdXRsaW5leyMjMX17Y291bnQtXGV4cG51bWJlcntzZWMjIzJ9fXsjIzN9eyMjNH19JQorICAgICAgXGRlZlxudW1zdWJzZWNlbnRyeSMjMSMjMiMjMyMjNHslCisgICAgICAgIFxkb3BkZm91dGxpbmV7IyMxfXtjb3VudC1cZXhwbnVtYmVye3N1YnNlYyMjMn19eyMjM317IyM0fX0lCisgICAgICBcZGVmXG51bXN1YnN1YnNlY2VudHJ5IyMxIyMyIyMzIyM0eyUgY291bnQgaXMgYWx3YXlzIHplcm8KKyAgICAgICAgXGRvcGRmb3V0bGluZXsjIzF9e317IyMzfXsjIzR9fSUKKyAgICAgICUKKyAgICAgICUgUERGIG91dGxpbmVzIGFyZSBkaXNwbGF5ZWQgdXNpbmcgc3lzdGVtIGZvbnRzLCBpbnN0ZWFkIG9mCisgICAgICAlIGRvY3VtZW50IGZvbnRzLiAgVGhlcmVmb3JlIHdlIGNhbm5vdCB1c2Ugc3BlY2lhbCBjaGFyYWN0ZXJzLAorICAgICAgJSBzaW5jZSB0aGUgZW5jb2RpbmcgaXMgdW5rbm93bi4gIEZvciBleGFtcGxlLCB0aGUgZW9nb25layBmcm9tCisgICAgICAlIExhdGluIDIgKDB4ZWEpIGdldHMgdHJhbnNsYXRlZCB0byBhIHwgY2hhcmFjdGVyLiAgSW5mbyBmcm9tCisgICAgICAlIFN0YXN6ZWsgV2F3cnlraWV3aWN6LCAxOSBKYW4gMjAwNCAwNDowOToyNCArMDEwMC4KKyAgICAgICUKKyAgICAgICUgeHggdG8gZG8gdGhpcyByaWdodCwgd2UgaGF2ZSB0byB0cmFuc2xhdGUgOC1iaXQgY2hhcmFjdGVycyB0bworICAgICAgJSB0aGVpciAiYmVzdCIgZXF1aXZhbGVudCwgYmFzZWQgb24gdGhlIEBkb2N1bWVudGVuY29kaW5nLiAgUmlnaHQKKyAgICAgICUgbm93LCBJIGd1ZXNzIHdlJ2xsIGp1c3QgbGV0IHRoZSBwZGYgcmVhZGVyIGhhdmUgaXRzIHdheS4KKyAgICAgIFxpbmRleG5vZm9udHMKKyAgICAgIFxzZXR1cGRhdGFmaWxlCisgICAgICBcYWN0aXZlYmFja3NsYXNoCisgICAgICBcaW5wdXQgXGpvYm5hbWUudG9jCisgICAgXGVuZGdyb3VwCisgIH0KKyAgJQorICBcZGVmXHNraXBzcGFjZXMjMXtcZGVmXFBQeyMxfVxkZWZcRHt8fSUKKyAgICBcaWZ4XFBQXERcbGV0XG5leHRzcFxyZWxheAorICAgIFxlbHNlXGxldFxuZXh0c3Bcc2tpcHNwYWNlcworICAgICAgXGlmeFxwXHNwYWNlXGVsc2VcYWRkdG9rZW5ze1xmaWxlbmFtZX17XFBQfSUKKyAgICAgICAgXGFkdmFuY2VcZmlsZW5hbWVsZW5ndGggYnkgMQorICAgICAgXGZpCisgICAgXGZpCisgICAgXG5leHRzcH0KKyAgXGRlZlxnZXRmaWxlbmFtZSMxe1xmaWxlbmFtZWxlbmd0aD0wXGV4cGFuZGFmdGVyXHNraXBzcGFjZXMjMXxccmVsYXh9CisgIFxpZm51bVxwZGZ0ZXh2ZXJzaW9uIDwgMTQKKyAgICBcbGV0IFxzdGFydGxpbmsgXHBkZmFubm90bGluaworICBcZWxzZQorICAgIFxsZXQgXHN0YXJ0bGluayBccGRmc3RhcnRsaW5rCisgIFxmaQorICBcZGVmXHBkZnVybCMxeyUKKyAgICBcYmVnaW5ncm91cAorICAgICAgXG5vcm1hbHR1cm5vZmZhY3RpdmVcZGVmXEB7QH0lCisgICAgICBcbWFrZXZhbHVlZXhwYW5kYWJsZQorICAgICAgXGxlYXZldm1vZGVcUmVkCisgICAgICBcc3RhcnRsaW5rIGF0dHJ7L0JvcmRlciBbMCAwIDBdfSUKKyAgICAgICAgdXNlcnsvU3VidHlwZSAvTGluayAvQSA8PCAvUyAvVVJJIC9VUkkgKCMxKSA+Pn0lCisgICAgXGVuZGdyb3VwfQorICBcZGVmXHBkZmdldHRva3MjMS57XHNldGJveFxib3hBPVxoYm94e1x0b2tzQT17IzEufVx0b2tzQj17fVxtYWtldG9rc319CisgIFxkZWZcYWRkdG9rZW5zIzEjMntcZWRlZlxhZGR0b2tze1xub2V4cGFuZCMxPXtcdGhlIzEjMn19XGFkZHRva3N9CisgIFxkZWZcYWRuIzF7XGFkZHRva2Vuc3tcdG9rc0N9eyMxfVxnbG9iYWxcY291bnRBPTFcbGV0XG5leHQ9XG1ha2V0b2tzfQorICBcZGVmXHBvcHRva3MjMSMyfEVORFRPS1N8e1xsZXRcZmlyc3Q9IzFcdG9rc0Q9eyMxfVx0b2tzQT17IzJ9fQorICBcZGVmXG1ha2V0b2tzeyUKKyAgICBcZXhwYW5kYWZ0ZXJccG9wdG9rc1x0aGVcdG9rc0F8RU5EVE9LU3xccmVsYXgKKyAgICBcaWZ4XGZpcnN0MFxhZG4wCisgICAgXGVsc2VcaWZ4XGZpcnN0MVxhZG4xIFxlbHNlXGlmeFxmaXJzdDJcYWRuMiBcZWxzZVxpZnhcZmlyc3QzXGFkbjMKKyAgICBcZWxzZVxpZnhcZmlyc3Q0XGFkbjQgXGVsc2VcaWZ4XGZpcnN0NVxhZG41IFxlbHNlXGlmeFxmaXJzdDZcYWRuNgorICAgIFxlbHNlXGlmeFxmaXJzdDdcYWRuNyBcZWxzZVxpZnhcZmlyc3Q4XGFkbjggXGVsc2VcaWZ4XGZpcnN0OVxhZG45CisgICAgXGVsc2UKKyAgICAgIFxpZm51bTA9XGNvdW50QVxlbHNlXG1ha2VsaW5rXGZpCisgICAgICBcaWZ4XGZpcnN0LlxsZXRcbmV4dD1cZG9uZVxlbHNlCisgICAgICAgIFxsZXRcbmV4dD1cbWFrZXRva3MKKyAgICAgICAgXGFkZHRva2Vuc3tcdG9rc0J9e1x0aGVcdG9rc0R9CisgICAgICAgIFxpZnhcZmlyc3QsXGFkZHRva2Vuc3tcdG9rc0J9e1xzcGFjZX1cZmkKKyAgICAgIFxmaQorICAgIFxmaVxmaVxmaVxmaVxmaVxmaVxmaVxmaVxmaVxmaQorICAgIFxuZXh0fQorICBcZGVmXG1ha2VsaW5re1xhZGR0b2tlbnN7XHRva3NCfSUKKyAgICB7XG5vZXhwYW5kXHBkZmxpbmt7XHRoZVx0b2tzQ319XHRva3NDPXt9XGdsb2JhbFxjb3VudEE9MH0KKyAgXGRlZlxwZGZsaW5rIzF7JQorICAgIFxzdGFydGxpbmsgYXR0cnsvQm9yZGVyIFswIDAgMF19IGdvdG8gbmFtZXtccGRmbWtwZ257IzF9fQorICAgIFxsaW5rY29sb3IgIzFcZW5kbGlua30KKyAgXGRlZlxkb25le1xlZGVmXHN0e1xnbG9iYWxcbm9leHBhbmRcdG9rc0E9e1x0aGVcdG9rc0J9fVxzdH0KK1xlbHNlCisgIFxsZXRccGRmbWtkZXN0ID0gXGdvYmJsZQorICBcbGV0XHBkZnVybCA9IFxnb2JibGUKKyAgXGxldFxlbmRsaW5rID0gXHJlbGF4CisgIFxsZXRcbGlua2NvbG9yID0gXHJlbGF4CisgIFxsZXRccGRmbWFrZW91dGxpbmVzID0gXHJlbGF4CitcZmkgICUgXGlmeFxwZGZvdXRwdXQKKworCitcbWVzc2FnZXtmb250cyx9CisKKyUgQ2hhbmdlIHRoZSBjdXJyZW50IGZvbnQgc3R5bGUgdG8gIzEsIHJlbWVtYmVyaW5nIGl0IGluIFxjdXJmb250c3R5bGUuCislIEZvciBub3csIHdlIGRvIG5vdCBhY2N1bXVsYXRlIGZvbnQgc3R5bGVzOiBAYntAaXtmb299fSBwcmludHMgZm9vIGluCislIGl0YWxpY3MsIG5vdCBib2xkIGl0YWxpY3MuCislCitcZGVmXHNldGZvbnRzdHlsZSMxeyUKKyAgXGRlZlxjdXJmb250c3R5bGV7IzF9JSBub3QgYXMgYSBjb250cm9sIHNlcXVlbmNlLCBiZWNhdXNlIHdlIGFyZSBcZWRlZidkLgorICBcY3NuYW1lIHRlbiMxXGVuZGNzbmFtZSAgJSBjaGFuZ2UgdGhlIGN1cnJlbnQgZm9udAorfQorCislIFNlbGVjdCAjMSBmb250cyB3aXRoIHRoZSBjdXJyZW50IHN0eWxlLgorJQorXGRlZlxzZWxlY3Rmb250cyMxe1xjc25hbWUgIzFmb250c1xlbmRjc25hbWUgXGNzbmFtZVxjdXJmb250c3R5bGVcZW5kY3NuYW1lfQorCitcZGVmXHJte1xmYW09MCBcc2V0Zm9udHN0eWxle3JtfX0KK1xkZWZcaXR7XGZhbT1caXRmYW0gXHNldGZvbnRzdHlsZXtpdH19CitcZGVmXHNse1xmYW09XHNsZmFtIFxzZXRmb250c3R5bGV7c2x9fQorXGRlZlxiZntcZmFtPVxiZmZhbSBcc2V0Zm9udHN0eWxle2JmfX1cZGVmXGJmc3R5bGVuYW1le2JmfQorXGRlZlx0dHtcZmFtPVx0dGZhbSBcc2V0Zm9udHN0eWxle3R0fX0KKworJSBUZXhpbmZvIHNvcnQgb2Ygc3VwcG9ydHMgdGhlIHNhbnMgc2VyaWYgZm9udCBzdHlsZSwgd2hpY2ggcGxhaW4gVGVYIGRvZXMgbm90LgorJSBTbyB3ZSBzZXQgdXAgYSBcc2YuCitcbmV3ZmFtXHNmZmFtCitcZGVmXHNme1xmYW09XHNmZmFtIFxzZXRmb250c3R5bGV7c2Z9fQorXGxldFxsaSA9IFxzZiAlIFNvbWV0aW1lcyB3ZSBjYWxsIGl0IFxsaSwgbm90IFxzZi4KKworJSBXZSBkb24ndCBuZWVkIG1hdGggZm9yIHRoaXMgZm9udCBzdHlsZS4KK1xkZWZcdHRzbHtcc2V0Zm9udHN0eWxle3R0c2x9fQorCislIERlZmF1bHQgbGVhZGluZy4KK1xuZXdkaW1lblx0ZXh0bGVhZGluZyAgXHRleHRsZWFkaW5nID0gMTMuMnB0CisKKyUgU2V0IHRoZSBiYXNlbGluZXNraXAgdG8gIzEsIGFuZCB0aGUgbGluZXNraXAgYW5kIHN0cnV0IHNpemUKKyUgY29ycmVzcG9uZGluZ2x5LiAgVGhlcmUgaXMgbm8gZGVlcCBtZWFuaW5nIGJlaGluZCB0aGVzZSBtYWdpYyBudW1iZXJzCislIHVzZWQgYXMgZmFjdG9yczsgdGhleSBqdXN0IG1hdGNoIChjbG9zZWx5IGVub3VnaCkgd2hhdCBLbnV0aCBkZWZpbmVkLgorJQorXGRlZlxsaW5lc2tpcGZhY3RvcnsuMDgzMzN9CitcZGVmXHN0cnV0aGVpZ2h0cGVyY2VudHsuNzA4MzN9CitcZGVmXHN0cnV0ZGVwdGhwZXJjZW50IHsuMjkxNjd9CislCitcZGVmXHNldGxlYWRpbmcjMXslCisgIFxub3JtYWxiYXNlbGluZXNraXAgPSAjMVxyZWxheAorICBcbm9ybWFsbGluZXNraXAgPSBcbGluZXNraXBmYWN0b3Jcbm9ybWFsYmFzZWxpbmVza2lwCisgIFxub3JtYWxiYXNlbGluZXMKKyAgXHNldGJveFxzdHJ1dGJveCA9XGhib3h7JQorICAgIFx2cnVsZSB3aWR0aDBwdCBoZWlnaHRcc3RydXRoZWlnaHRwZXJjZW50XGJhc2VsaW5lc2tpcAorICAgICAgICAgICAgICAgICAgICBkZXB0aCBcc3RydXRkZXB0aHBlcmNlbnQgXGJhc2VsaW5lc2tpcAorICB9JQorfQorCislIFNldCB0aGUgZm9udCBtYWNybyAjMSB0byB0aGUgZm9udCBuYW1lZCAjMiwgYWRkaW5nIG9uIHRoZQorJSBzcGVjaWZpZWQgZm9udCBwcmVmaXggKG5vcm1hbGx5IGBjbScpLgorJSAjMyBpcyB0aGUgZm9udCdzIGRlc2lnbiBzaXplLCAjNCBpcyBhIHNjYWxlIGZhY3RvcgorXGRlZlxzZXRmb250IzEjMiMzIzR7XGZvbnQjMT1cZm9udHByZWZpeCMyIzMgc2NhbGVkICM0fQorCislIFVzZSBjbSBhcyB0aGUgZGVmYXVsdCBmb250IHByZWZpeC4KKyUgVG8gc3BlY2lmeSB0aGUgZm9udCBwcmVmaXgsIHlvdSBtdXN0IGRlZmluZSBcZm9udHByZWZpeAorJSBiZWZvcmUgeW91IHJlYWQgaW4gdGV4aW5mby50ZXguCitcaWZ4XGZvbnRwcmVmaXhcdW5kZWZpbmVkCitcZGVmXGZvbnRwcmVmaXh7Y219CitcZmkKKyUgU3VwcG9ydCBmb250IGZhbWlsaWVzIHRoYXQgZG9uJ3QgdXNlIHRoZSBzYW1lIG5hbWluZyBzY2hlbWUgYXMgQ00uCitcZGVmXHJtc2hhcGV7cn0KK1xkZWZccm1ic2hhcGV7Ynh9ICAgICAgICAgICAgICAgJXdoZXJlIHRoZSBub3JtYWwgZmFjZSBpcyBib2xkCitcZGVmXGJmc2hhcGV7Yn0KK1xkZWZcYnhzaGFwZXtieH0KK1xkZWZcdHRzaGFwZXt0dH0KK1xkZWZcdHRic2hhcGV7dHR9CitcZGVmXHR0c2xzaGFwZXtzbHR0fQorXGRlZlxpdHNoYXBle3RpfQorXGRlZlxpdGJzaGFwZXtieHRpfQorXGRlZlxzbHNoYXBle3NsfQorXGRlZlxzbGJzaGFwZXtieHNsfQorXGRlZlxzZnNoYXBle3NzfQorXGRlZlxzZmJzaGFwZXtzc30KK1xkZWZcc2NzaGFwZXtjc2N9CitcZGVmXHNjYnNoYXBle2NzY30KKworJSBUZXh0IGZvbnRzICgxMS4ycHQsIG1hZ3N0ZXAxKS4KK1xkZWZcdGV4dG5vbWluYWxzaXplezExcHR9CitcZWRlZlxtYWlubWFnc3RlcHtcbWFnc3RlcGhhbGZ9Citcc2V0Zm9udFx0ZXh0cm1ccm1zaGFwZXsxMH17XG1haW5tYWdzdGVwfQorXHNldGZvbnRcdGV4dHR0XHR0c2hhcGV7MTB9e1xtYWlubWFnc3RlcH0KK1xzZXRmb250XHRleHRiZlxiZnNoYXBlezEwfXtcbWFpbm1hZ3N0ZXB9Citcc2V0Zm9udFx0ZXh0aXRcaXRzaGFwZXsxMH17XG1haW5tYWdzdGVwfQorXHNldGZvbnRcdGV4dHNsXHNsc2hhcGV7MTB9e1xtYWlubWFnc3RlcH0KK1xzZXRmb250XHRleHRzZlxzZnNoYXBlezEwfXtcbWFpbm1hZ3N0ZXB9Citcc2V0Zm9udFx0ZXh0c2Ncc2NzaGFwZXsxMH17XG1haW5tYWdzdGVwfQorXHNldGZvbnRcdGV4dHR0c2xcdHRzbHNoYXBlezEwfXtcbWFpbm1hZ3N0ZXB9CitcZm9udFx0ZXh0aT1jbW1pMTAgc2NhbGVkIFxtYWlubWFnc3RlcAorXGZvbnRcdGV4dHN5PWNtc3kxMCBzY2FsZWQgXG1haW5tYWdzdGVwCisKKyUgQSBmZXcgZm9udHMgZm9yIEBkZWZ1biBuYW1lcyBhbmQgYXJncy4KK1xzZXRmb250XGRlZmJmXGJmc2hhcGV7MTB9e1xtYWdzdGVwMX0KK1xzZXRmb250XGRlZnR0XHR0c2hhcGV7MTB9e1xtYWdzdGVwMX0KK1xzZXRmb250XGRlZnR0c2xcdHRzbHNoYXBlezEwfXtcbWFnc3RlcDF9CitcZGVmXGRme1xsZXRcdGVudHQ9XGRlZnR0IFxsZXRcdGVuYmYgPSBcZGVmYmYgXGxldFx0ZW50dHNsPVxkZWZ0dHNsIFxiZn0KKworJSBGb250cyBmb3IgaW5kaWNlcywgZm9vdG5vdGVzLCBzbWFsbCBleGFtcGxlcyAoOXB0KS4KK1xkZWZcc21hbGxub21pbmFsc2l6ZXs5cHR9Citcc2V0Zm9udFxzbWFsbHJtXHJtc2hhcGV7OX17MTAwMH0KK1xzZXRmb250XHNtYWxsdHRcdHRzaGFwZXs5fXsxMDAwfQorXHNldGZvbnRcc21hbGxiZlxiZnNoYXBlezEwfXs5MDB9Citcc2V0Zm9udFxzbWFsbGl0XGl0c2hhcGV7OX17MTAwMH0KK1xzZXRmb250XHNtYWxsc2xcc2xzaGFwZXs5fXsxMDAwfQorXHNldGZvbnRcc21hbGxzZlxzZnNoYXBlezl9ezEwMDB9Citcc2V0Zm9udFxzbWFsbHNjXHNjc2hhcGV7MTB9ezkwMH0KK1xzZXRmb250XHNtYWxsdHRzbFx0dHNsc2hhcGV7MTB9ezkwMH0KK1xmb250XHNtYWxsaT1jbW1pOQorXGZvbnRcc21hbGxzeT1jbXN5OQorCislIEZvbnRzIGZvciBzbWFsbCBleGFtcGxlcyAoOHB0KS4KK1xkZWZcc21hbGxlcm5vbWluYWxzaXplezhwdH0KK1xzZXRmb250XHNtYWxsZXJybVxybXNoYXBlezh9ezEwMDB9Citcc2V0Zm9udFxzbWFsbGVydHRcdHRzaGFwZXs4fXsxMDAwfQorXHNldGZvbnRcc21hbGxlcmJmXGJmc2hhcGV7MTB9ezgwMH0KK1xzZXRmb250XHNtYWxsZXJpdFxpdHNoYXBlezh9ezEwMDB9Citcc2V0Zm9udFxzbWFsbGVyc2xcc2xzaGFwZXs4fXsxMDAwfQorXHNldGZvbnRcc21hbGxlcnNmXHNmc2hhcGV7OH17MTAwMH0KK1xzZXRmb250XHNtYWxsZXJzY1xzY3NoYXBlezEwfXs4MDB9Citcc2V0Zm9udFxzbWFsbGVydHRzbFx0dHNsc2hhcGV7MTB9ezgwMH0KK1xmb250XHNtYWxsZXJpPWNtbWk4CitcZm9udFxzbWFsbGVyc3k9Y21zeTgKKworJSBGb250cyBmb3IgdGl0bGUgcGFnZSAoMjAuNHB0KToKK1xkZWZcdGl0bGVub21pbmFsc2l6ZXsyMHB0fQorXHNldGZvbnRcdGl0bGVybVxybWJzaGFwZXsxMn17XG1hZ3N0ZXAzfQorXHNldGZvbnRcdGl0bGVpdFxpdGJzaGFwZXsxMH17XG1hZ3N0ZXA0fQorXHNldGZvbnRcdGl0bGVzbFxzbGJzaGFwZXsxMH17XG1hZ3N0ZXA0fQorXHNldGZvbnRcdGl0bGV0dFx0dGJzaGFwZXsxMn17XG1hZ3N0ZXAzfQorXHNldGZvbnRcdGl0bGV0dHNsXHR0c2xzaGFwZXsxMH17XG1hZ3N0ZXA0fQorXHNldGZvbnRcdGl0bGVzZlxzZmJzaGFwZXsxN317XG1hZ3N0ZXAxfQorXGxldFx0aXRsZWJmPVx0aXRsZXJtCitcc2V0Zm9udFx0aXRsZXNjXHNjYnNoYXBlezEwfXtcbWFnc3RlcDR9CitcZm9udFx0aXRsZWk9Y21taTEyIHNjYWxlZCBcbWFnc3RlcDMKK1xmb250XHRpdGxlc3k9Y21zeTEwIHNjYWxlZCBcbWFnc3RlcDQKK1xkZWZcYXV0aG9ycm17XHNlY3JtfQorXGRlZlxhdXRob3J0dHtcc2VjdHR9CisKKyUgQ2hhcHRlciAoYW5kIHVubnVtYmVyZWQpIGZvbnRzICgxNy4yOHB0KS4KK1xkZWZcY2hhcG5vbWluYWxzaXplezE3cHR9Citcc2V0Zm9udFxjaGFwcm1ccm1ic2hhcGV7MTJ9e1xtYWdzdGVwMn0KK1xzZXRmb250XGNoYXBpdFxpdGJzaGFwZXsxMH17XG1hZ3N0ZXAzfQorXHNldGZvbnRcY2hhcHNsXHNsYnNoYXBlezEwfXtcbWFnc3RlcDN9Citcc2V0Zm9udFxjaGFwdHRcdHRic2hhcGV7MTJ9e1xtYWdzdGVwMn0KK1xzZXRmb250XGNoYXB0dHNsXHR0c2xzaGFwZXsxMH17XG1hZ3N0ZXAzfQorXHNldGZvbnRcY2hhcHNmXHNmYnNoYXBlezE3fXsxMDAwfQorXGxldFxjaGFwYmY9XGNoYXBybQorXHNldGZvbnRcY2hhcHNjXHNjYnNoYXBlezEwfXtcbWFnc3RlcDN9CitcZm9udFxjaGFwaT1jbW1pMTIgc2NhbGVkIFxtYWdzdGVwMgorXGZvbnRcY2hhcHN5PWNtc3kxMCBzY2FsZWQgXG1hZ3N0ZXAzCisKKyUgU2VjdGlvbiBmb250cyAoMTQuNHB0KS4KK1xkZWZcc2Vjbm9taW5hbHNpemV7MTRwdH0KK1xzZXRmb250XHNlY3JtXHJtYnNoYXBlezEyfXtcbWFnc3RlcDF9Citcc2V0Zm9udFxzZWNpdFxpdGJzaGFwZXsxMH17XG1hZ3N0ZXAyfQorXHNldGZvbnRcc2Vjc2xcc2xic2hhcGV7MTB9e1xtYWdzdGVwMn0KK1xzZXRmb250XHNlY3R0XHR0YnNoYXBlezEyfXtcbWFnc3RlcDF9Citcc2V0Zm9udFxzZWN0dHNsXHR0c2xzaGFwZXsxMH17XG1hZ3N0ZXAyfQorXHNldGZvbnRcc2Vjc2Zcc2Zic2hhcGV7MTJ9e1xtYWdzdGVwMX0KK1xsZXRcc2VjYmZcc2Vjcm0KK1xzZXRmb250XHNlY3NjXHNjYnNoYXBlezEwfXtcbWFnc3RlcDJ9CitcZm9udFxzZWNpPWNtbWkxMiBzY2FsZWQgXG1hZ3N0ZXAxCitcZm9udFxzZWNzeT1jbXN5MTAgc2NhbGVkIFxtYWdzdGVwMgorCislIFN1YnNlY3Rpb24gZm9udHMgKDEzLjE1cHQpLgorXGRlZlxzc2Vjbm9taW5hbHNpemV7MTNwdH0KK1xzZXRmb250XHNzZWNybVxybWJzaGFwZXsxMn17XG1hZ3N0ZXBoYWxmfQorXHNldGZvbnRcc3NlY2l0XGl0YnNoYXBlezEwfXsxMzE1fQorXHNldGZvbnRcc3NlY3NsXHNsYnNoYXBlezEwfXsxMzE1fQorXHNldGZvbnRcc3NlY3R0XHR0YnNoYXBlezEyfXtcbWFnc3RlcGhhbGZ9Citcc2V0Zm9udFxzc2VjdHRzbFx0dHNsc2hhcGV7MTB9ezEzMTV9Citcc2V0Zm9udFxzc2Vjc2Zcc2Zic2hhcGV7MTJ9e1xtYWdzdGVwaGFsZn0KK1xsZXRcc3NlY2JmXHNzZWNybQorXHNldGZvbnRcc3NlY3NjXHNjYnNoYXBlezEwfXsxMzE1fQorXGZvbnRcc3NlY2k9Y21taTEyIHNjYWxlZCBcbWFnc3RlcGhhbGYKK1xmb250XHNzZWNzeT1jbXN5MTAgc2NhbGVkIDEzMTUKKworJSBSZWR1Y2VkIGZvbnRzIGZvciBAYWNybyBpbiB0ZXh0ICgxMHB0KS4KK1xkZWZccmVkdWNlZG5vbWluYWxzaXplezEwcHR9Citcc2V0Zm9udFxyZWR1Y2Vkcm1ccm1zaGFwZXsxMH17MTAwMH0KK1xzZXRmb250XHJlZHVjZWR0dFx0dHNoYXBlezEwfXsxMDAwfQorXHNldGZvbnRccmVkdWNlZGJmXGJmc2hhcGV7MTB9ezEwMDB9Citcc2V0Zm9udFxyZWR1Y2VkaXRcaXRzaGFwZXsxMH17MTAwMH0KK1xzZXRmb250XHJlZHVjZWRzbFxzbHNoYXBlezEwfXsxMDAwfQorXHNldGZvbnRccmVkdWNlZHNmXHNmc2hhcGV7MTB9ezEwMDB9Citcc2V0Zm9udFxyZWR1Y2Vkc2Ncc2NzaGFwZXsxMH17MTAwMH0KK1xzZXRmb250XHJlZHVjZWR0dHNsXHR0c2xzaGFwZXsxMH17MTAwMH0KK1xmb250XHJlZHVjZWRpPWNtbWkxMAorXGZvbnRccmVkdWNlZHN5PWNtc3kxMAorCislIEluIG9yZGVyIGZvciB0aGUgZm9udCBjaGFuZ2VzIHRvIGFmZmVjdCBtb3N0IG1hdGggc3ltYm9scyBhbmQgbGV0dGVycywKKyUgd2UgaGF2ZSB0byBkZWZpbmUgdGhlIFx0ZXh0Zm9udCBvZiB0aGUgc3RhbmRhcmQgZmFtaWxpZXMuICBTaW5jZQorJSB0ZXhpbmZvIGRvZXNuJ3QgYWxsb3cgZm9yIHByb2R1Y2luZyBzdWJzY3JpcHRzIGFuZCBzdXBlcnNjcmlwdHMgZXhjZXB0CislIGluIHRoZSBtYWluIHRleHQsIHdlIGRvbid0IGJvdGhlciB0byByZXNldCBcc2NyaXB0Zm9udCBhbmQKKyUgXHNjcmlwdHNjcmlwdGZvbnQgKHdoaWNoIHdvdWxkIGFsc28gcmVxdWlyZSBsb2FkaW5nIGEgbG90IG1vcmUgZm9udHMpLgorJQorXGRlZlxyZXNldG1hdGhmb250c3slCisgIFx0ZXh0Zm9udDA9XHRlbnJtIFx0ZXh0Zm9udDE9XHRlbmkgXHRleHRmb250Mj1cdGVuc3kKKyAgXHRleHRmb250XGl0ZmFtPVx0ZW5pdCBcdGV4dGZvbnRcc2xmYW09XHRlbnNsIFx0ZXh0Zm9udFxiZmZhbT1cdGVuYmYKKyAgXHRleHRmb250XHR0ZmFtPVx0ZW50dCBcdGV4dGZvbnRcc2ZmYW09XHRlbnNmCit9CisKKyUgVGhlIGZvbnQtY2hhbmdpbmcgY29tbWFuZHMgcmVkZWZpbmUgdGhlIG1lYW5pbmdzIG9mIFx0ZW5TVFlMRSwgaW5zdGVhZAorJSBvZiBqdXN0IFxTVFlMRS4gIFdlIGRvIHRoaXMgYmVjYXVzZSBcU1RZTEUgbmVlZHMgdG8gYWxzbyBzZXQgdGhlCislIGN1cnJlbnQgXGZhbSBmb3IgbWF0aCBtb2RlLiAgT3VyIFxTVFlMRSAoZS5nLiwgXHJtKSBjb21tYW5kcyBoYXJkd2lyZQorJSBcdGVuU1RZTEUgdG8gc2V0IHRoZSBjdXJyZW50IGZvbnQuCislCislIEVhY2ggZm9udC1jaGFuZ2luZyBjb21tYW5kIGFsc28gc2V0cyB0aGUgbmFtZXMgXGxzaXplIChvbmUgc2l6ZSBsb3dlcikKKyUgYW5kIFxsbGxzaXplICh0aHJlZSBzaXplcyBsb3dlcikuICBUaGVzZSByZWxhdGl2ZSBjb21tYW5kcyBhcmUgdXNlZCBpbgorJSB0aGUgTGFUZVggbG9nbyBhbmQgYWNyb255bXMuCislCislIFRoaXMgYWxsIG5lZWRzIGdlbmVyYWxpemluZywgYmFkbHkuCislCitcZGVmXHRleHRmb250c3slCisgIFxsZXRcdGVucm09XHRleHRybSBcbGV0XHRlbml0PVx0ZXh0aXQgXGxldFx0ZW5zbD1cdGV4dHNsCisgIFxsZXRcdGVuYmY9XHRleHRiZiBcbGV0XHRlbnR0PVx0ZXh0dHQgXGxldFxzbWFsbGNhcHM9XHRleHRzYworICBcbGV0XHRlbnNmPVx0ZXh0c2YgXGxldFx0ZW5pPVx0ZXh0aSBcbGV0XHRlbnN5PVx0ZXh0c3kKKyAgXGxldFx0ZW50dHNsPVx0ZXh0dHRzbAorICBcZGVmXGN1cmZvbnRzaXple3RleHR9JQorICBcZGVmXGxzaXple3JlZHVjZWR9XGRlZlxsbGxzaXple3NtYWxsZXJ9JQorICBccmVzZXRtYXRoZm9udHMgXHNldGxlYWRpbmd7XHRleHRsZWFkaW5nfX0KK1xkZWZcdGl0bGVmb250c3slCisgIFxsZXRcdGVucm09XHRpdGxlcm0gXGxldFx0ZW5pdD1cdGl0bGVpdCBcbGV0XHRlbnNsPVx0aXRsZXNsCisgIFxsZXRcdGVuYmY9XHRpdGxlYmYgXGxldFx0ZW50dD1cdGl0bGV0dCBcbGV0XHNtYWxsY2Fwcz1cdGl0bGVzYworICBcbGV0XHRlbnNmPVx0aXRsZXNmIFxsZXRcdGVuaT1cdGl0bGVpIFxsZXRcdGVuc3k9XHRpdGxlc3kKKyAgXGxldFx0ZW50dHNsPVx0aXRsZXR0c2wKKyAgXGRlZlxjdXJmb250c2l6ZXt0aXRsZX0lCisgIFxkZWZcbHNpemV7Y2hhcH1cZGVmXGxsbHNpemV7c3Vic2VjfSUKKyAgXHJlc2V0bWF0aGZvbnRzIFxzZXRsZWFkaW5nezI1cHR9fQorXGRlZlx0aXRsZWZvbnQjMXt7XHRpdGxlZm9udHNccm0gIzF9fQorXGRlZlxjaGFwZm9udHN7JQorICBcbGV0XHRlbnJtPVxjaGFwcm0gXGxldFx0ZW5pdD1cY2hhcGl0IFxsZXRcdGVuc2w9XGNoYXBzbAorICBcbGV0XHRlbmJmPVxjaGFwYmYgXGxldFx0ZW50dD1cY2hhcHR0IFxsZXRcc21hbGxjYXBzPVxjaGFwc2MKKyAgXGxldFx0ZW5zZj1cY2hhcHNmIFxsZXRcdGVuaT1cY2hhcGkgXGxldFx0ZW5zeT1cY2hhcHN5CisgIFxsZXRcdGVudHRzbD1cY2hhcHR0c2wKKyAgXGRlZlxjdXJmb250c2l6ZXtjaGFwfSUKKyAgXGRlZlxsc2l6ZXtzZWN9XGRlZlxsbGxzaXple3RleHR9JQorICBccmVzZXRtYXRoZm9udHMgXHNldGxlYWRpbmd7MTlwdH19CitcZGVmXHNlY2ZvbnRzeyUKKyAgXGxldFx0ZW5ybT1cc2Vjcm0gXGxldFx0ZW5pdD1cc2VjaXQgXGxldFx0ZW5zbD1cc2Vjc2wKKyAgXGxldFx0ZW5iZj1cc2VjYmYgXGxldFx0ZW50dD1cc2VjdHQgXGxldFxzbWFsbGNhcHM9XHNlY3NjCisgIFxsZXRcdGVuc2Y9XHNlY3NmIFxsZXRcdGVuaT1cc2VjaSBcbGV0XHRlbnN5PVxzZWNzeQorICBcbGV0XHRlbnR0c2w9XHNlY3R0c2wKKyAgXGRlZlxjdXJmb250c2l6ZXtzZWN9JQorICBcZGVmXGxzaXple3N1YnNlY31cZGVmXGxsbHNpemV7cmVkdWNlZH0lCisgIFxyZXNldG1hdGhmb250cyBcc2V0bGVhZGluZ3sxNnB0fX0KK1xkZWZcc3Vic2VjZm9udHN7JQorICBcbGV0XHRlbnJtPVxzc2Vjcm0gXGxldFx0ZW5pdD1cc3NlY2l0IFxsZXRcdGVuc2w9XHNzZWNzbAorICBcbGV0XHRlbmJmPVxzc2VjYmYgXGxldFx0ZW50dD1cc3NlY3R0IFxsZXRcc21hbGxjYXBzPVxzc2Vjc2MKKyAgXGxldFx0ZW5zZj1cc3NlY3NmIFxsZXRcdGVuaT1cc3NlY2kgXGxldFx0ZW5zeT1cc3NlY3N5CisgIFxsZXRcdGVudHRzbD1cc3NlY3R0c2wKKyAgXGRlZlxjdXJmb250c2l6ZXtzc2VjfSUKKyAgXGRlZlxsc2l6ZXt0ZXh0fVxkZWZcbGxsc2l6ZXtzbWFsbH0lCisgIFxyZXNldG1hdGhmb250cyBcc2V0bGVhZGluZ3sxNXB0fX0KK1xsZXRcc3Vic3Vic2VjZm9udHMgPSBcc3Vic2VjZm9udHMKK1xkZWZccmVkdWNlZGZvbnRzeyUKKyAgXGxldFx0ZW5ybT1ccmVkdWNlZHJtIFxsZXRcdGVuaXQ9XHJlZHVjZWRpdCBcbGV0XHRlbnNsPVxyZWR1Y2Vkc2wKKyAgXGxldFx0ZW5iZj1ccmVkdWNlZGJmIFxsZXRcdGVudHQ9XHJlZHVjZWR0dCBcbGV0XHJlZHVjZWRjYXBzPVxyZWR1Y2Vkc2MKKyAgXGxldFx0ZW5zZj1ccmVkdWNlZHNmIFxsZXRcdGVuaT1ccmVkdWNlZGkgXGxldFx0ZW5zeT1ccmVkdWNlZHN5CisgIFxsZXRcdGVudHRzbD1ccmVkdWNlZHR0c2wKKyAgXGRlZlxjdXJmb250c2l6ZXtyZWR1Y2VkfSUKKyAgXGRlZlxsc2l6ZXtzbWFsbH1cZGVmXGxsbHNpemV7c21hbGxlcn0lCisgIFxyZXNldG1hdGhmb250cyBcc2V0bGVhZGluZ3sxMC41cHR9fQorXGRlZlxzbWFsbGZvbnRzeyUKKyAgXGxldFx0ZW5ybT1cc21hbGxybSBcbGV0XHRlbml0PVxzbWFsbGl0IFxsZXRcdGVuc2w9XHNtYWxsc2wKKyAgXGxldFx0ZW5iZj1cc21hbGxiZiBcbGV0XHRlbnR0PVxzbWFsbHR0IFxsZXRcc21hbGxjYXBzPVxzbWFsbHNjCisgIFxsZXRcdGVuc2Y9XHNtYWxsc2YgXGxldFx0ZW5pPVxzbWFsbGkgXGxldFx0ZW5zeT1cc21hbGxzeQorICBcbGV0XHRlbnR0c2w9XHNtYWxsdHRzbAorICBcZGVmXGN1cmZvbnRzaXple3NtYWxsfSUKKyAgXGRlZlxsc2l6ZXtzbWFsbGVyfVxkZWZcbGxsc2l6ZXtzbWFsbGVyfSUKKyAgXHJlc2V0bWF0aGZvbnRzIFxzZXRsZWFkaW5nezEwLjVwdH19CitcZGVmXHNtYWxsZXJmb250c3slCisgIFxsZXRcdGVucm09XHNtYWxsZXJybSBcbGV0XHRlbml0PVxzbWFsbGVyaXQgXGxldFx0ZW5zbD1cc21hbGxlcnNsCisgIFxsZXRcdGVuYmY9XHNtYWxsZXJiZiBcbGV0XHRlbnR0PVxzbWFsbGVydHQgXGxldFxzbWFsbGNhcHM9XHNtYWxsZXJzYworICBcbGV0XHRlbnNmPVxzbWFsbGVyc2YgXGxldFx0ZW5pPVxzbWFsbGVyaSBcbGV0XHRlbnN5PVxzbWFsbGVyc3kKKyAgXGxldFx0ZW50dHNsPVxzbWFsbGVydHRzbAorICBcZGVmXGN1cmZvbnRzaXple3NtYWxsZXJ9JQorICBcZGVmXGxzaXple3NtYWxsZXJ9XGRlZlxsbGxzaXple3NtYWxsZXJ9JQorICBccmVzZXRtYXRoZm9udHMgXHNldGxlYWRpbmd7OS41cHR9fQorCislIFNldCB0aGUgZm9udHMgdG8gdXNlIHdpdGggdGhlIEBzbWFsbC4uLiBlbnZpcm9ubWVudHMuCitcbGV0XHNtYWxsZXhhbXBsZWZvbnRzID0gXHNtYWxsZm9udHMKKworJSBBYm91dCBcc21hbGxleGFtcGxlZm9udHMuICBJZiB3ZSB1c2UgXHNtYWxsZm9udHMgKDlwdCksIEBzbWFsbGV4YW1wbGUKKyUgY2FuIGZpdCB0aGlzIG1hbnkgY2hhcmFjdGVyczoKKyUgICA4LjV4MTE9ODYgICBzbWFsbGJvb2s9NzIgIGE0PTkwICBhNT02OQorJSBJZiB3ZSB1c2UgXHNjcmlwdGZvbnRzICg4cHQpLCB0aGVuIHdlIGNhbiBmaXQgdGhpcyBtYW55IGNoYXJhY3RlcnM6CislICAgOC41eDExPTkwKyAgc21hbGxib29rPTgwICBhND05MCsgIGE1PTc3CislIEZvciBtZSwgc3ViamVjdGl2ZWx5LCB0aGUgZmV3IGV4dHJhIGNoYXJhY3RlcnMgdGhhdCBmaXQgYXJlbid0IHdvcnRoCislIHRoZSBhZGRpdGlvbmFsIHNtYWxsbmVzcyBvZiA4cHQuICBTbyBJJ20gbWFraW5nIHRoZSBkZWZhdWx0IDlwdC4KKyUKKyUgQnkgdGhlIHdheSwgZm9yIGNvbXBhcmlzb24sIGhlcmUncyB3aGF0IGZpdHMgd2l0aCBAZXhhbXBsZSAoMTBwdCk6CislICAgOC41eDExPTcxICBzbWFsbGJvb2s9NjAgIGE0PTc1ICBhNT01OAorJQorJSBJIHdpc2ggdGhlIFVTQSB1c2VkIEE0IHBhcGVyLgorJSAtLWthcmwsIDI0amFuMDMuCisKKworJSBTZXQgdXAgdGhlIGRlZmF1bHQgZm9udHMsIHNvIHdlIGNhbiB1c2UgdGhlbSBmb3IgY3JlYXRpbmcgYm94ZXMuCislCitcdGV4dGZvbnRzIFxybQorCislIERlZmluZSB0aGVzZSBzbyB0aGV5IGNhbiBiZSBlYXNpbHkgY2hhbmdlZCBmb3Igb3RoZXIgZm9udHMuCitcZGVmXGFuZ2xlbGVmdHskXGxhbmdsZSR9CitcZGVmXGFuZ2xlcmlnaHR7JFxyYW5nbGUkfQorCislIENvdW50IGRlcHRoIGluIGZvbnQtY2hhbmdlcywgZm9yIGVycm9yIGNoZWNrcworXG5ld2NvdW50XGZvbnRkZXB0aCBcZm9udGRlcHRoPTAKKworJSBGb250cyBmb3Igc2hvcnQgdGFibGUgb2YgY29udGVudHMuCitcc2V0Zm9udFxzaG9ydGNvbnRybVxybXNoYXBlezEyfXsxMDAwfQorXHNldGZvbnRcc2hvcnRjb250YmZcYmZzaGFwZXsxMH17XG1hZ3N0ZXAxfSAgJSBubyBjbWIxMgorXHNldGZvbnRcc2hvcnRjb250c2xcc2xzaGFwZXsxMn17MTAwMH0KK1xzZXRmb250XHNob3J0Y29udHR0XHR0c2hhcGV7MTJ9ezEwMDB9CisKKyUlIEFkZCBzY3JpYmUtbGlrZSBmb250IGVudmlyb25tZW50cywgcGx1cyBAbCBmb3IgaW5saW5lIGxpc3AgKHVzdWFsbHkgc2FucworJSUgc2VyaWYpIGFuZCBAaWkgZm9yIFRlWCBpdGFsaWMKKworJSBcc21hcnRpdGFsaWN7QVJHfSBvdXRwdXRzIGFyZyBpbiBpdGFsaWNzLCBmb2xsb3dlZCBieSBhbiBpdGFsaWMgY29ycmVjdGlvbgorJSB1bmxlc3MgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIgaXMgc3VjaCBhcyBub3QgdG8gbmVlZCBvbmUuCitcZGVmXHNtYXJ0aXRhbGljeHtcaWZ4XG5leHQsXGVsc2VcaWZ4XG5leHQtXGVsc2VcaWZ4XG5leHQuXGVsc2UKKyAgICAgICAgICAgICAgICAgICAgXHB0ZXhzbGFzaFxmaVxmaVxmaX0KK1xkZWZcc21hcnRzbGFudGVkIzF7e1xpZnVzaW5ndHRcdHRzbFxzbCAjMX1cZnV0dXJlbGV0XG5leHRcc21hcnRpdGFsaWN4fQorXGRlZlxzbWFydGl0YWxpYyMxe3tcaWZ1c2luZ3R0XHR0c2xcaXQgIzF9XGZ1dHVyZWxldFxuZXh0XHNtYXJ0aXRhbGljeH0KKworJSBsaWtlIFxzbWFydHNsYW50ZWQgZXhjZXB0IHVuY29uZGl0aW9uYWxseSB1c2VzIFx0dHNsLgorJSBAdmFyIGlzIHNldCB0byB0aGlzIGZvciBkZWZ1biBhcmd1bWVudHMuCitcZGVmXHR0c2xhbnRlZCMxe3tcdHRzbCAjMX1cZnV0dXJlbGV0XG5leHRcc21hcnRpdGFsaWN4fQorCislIGxpa2UgXHNtYXJ0c2xhbnRlZCBleGNlcHQgdW5jb25kaXRpb25hbGx5IHVzZSBcc2wuICBXZSBuZXZlciB3YW50CislIHR0c2wgZm9yIGJvb2sgdGl0bGVzLCBkbyB3ZT8KK1xkZWZcY2l0ZSMxe3tcc2wgIzF9XGZ1dHVyZWxldFxuZXh0XHNtYXJ0aXRhbGljeH0KKworXGxldFxpPVxzbWFydGl0YWxpYworXGxldFxzbGFudGVkPVxzbWFydHNsYW50ZWQKK1xsZXRcdmFyPVxzbWFydHNsYW50ZWQKK1xsZXRcZGZuPVxzbWFydHNsYW50ZWQKK1xsZXRcZW1waD1cc21hcnRpdGFsaWMKKworJSBAYiwgZXhwbGljaXQgYm9sZC4KK1xkZWZcYiMxe3tcYmYgIzF9fQorXGxldFxzdHJvbmc9XGIKKworJSBAc2Fuc3NlcmlmLCBleHBsaWNpdCBzYW5zLgorXGRlZlxzYW5zc2VyaWYjMXt7XHNmICMxfX0KKworJSBXZSBjYW4ndCBqdXN0IHVzZSBcZXhoeXBoZW5wZW5hbHR5LCBiZWNhdXNlIHRoYXQgb25seSBoYXMgZWZmZWN0IGF0CislIHRoZSBlbmQgb2YgYSBwYXJhZ3JhcGguICBSZXN0b3JlIG5vcm1hbCBoeXBoZW5hdGlvbiBhdCB0aGUgZW5kIG9mIHRoZQorJSBncm91cCB3aXRoaW4gd2hpY2ggXG5vaHlwaGVuYXRpb24gaXMgcHJlc3VtYWJseSBjYWxsZWQuCislCitcZGVmXG5vaHlwaGVuYXRpb257XGh5cGhlbmNoYXJcZm9udCA9IC0xICBcYWZ0ZXJncm91cFxyZXN0b3JlaHlwaGVuYXRpb259CitcZGVmXHJlc3RvcmVoeXBoZW5hdGlvbntcaHlwaGVuY2hhclxmb250ID0gYC0gfQorCislIFNldCBzZmNvZGUgdG8gbm9ybWFsIGZvciB0aGUgY2hhcnMgdGhhdCB1c3VhbGx5IGhhdmUgYW5vdGhlciB2YWx1ZS4KKyUgQ2FuJ3QgdXNlIHBsYWluJ3MgXGZyZW5jaHNwYWNpbmcgYmVjYXVzZSBpdCB1c2VzIHRoZSBgXHggbm90YXRpb24sIGFuZAorJSBzb21ldGltZXMgXHggaGFzIGFuIGFjdGl2ZSBkZWZpbml0aW9uIHRoYXQgbWVzc2VzIHRoaW5ncyB1cC4KKyUKK1xjYXRjb2RlYEA9MTEKKyAgXGRlZlxwbGFpbmZyZW5jaHNwYWNpbmd7JQorICAgIFxzZmNvZGVcZG90Q2hhciAgPVxAbSBcc2Zjb2RlXHF1ZXN0Q2hhcj1cQG0gXHNmY29kZVxleGNsYW1DaGFyPVxAbQorICAgIFxzZmNvZGVcY29sb25DaGFyPVxAbSBcc2Zjb2RlXHNlbWlDaGFyID1cQG0gXHNmY29kZVxjb21tYUNoYXIgPVxAbQorICAgIFxkZWZcZW5kb2ZzZW50ZW5jZXNwYWNlZmFjdG9yezEwMDB9JSBmb3IgQC4gYW5kIGZyaWVuZHMKKyAgfQorICBcZGVmXHBsYWlubm9uZnJlbmNoc3BhY2luZ3slCisgICAgXHNmY29kZWBcLjMwMDBcc2Zjb2RlYFw/MzAwMFxzZmNvZGVgXCEzMDAwCisgICAgXHNmY29kZWBcOjIwMDBcc2Zjb2RlYFw7MTUwMFxzZmNvZGVgXCwxMjUwCisgICAgXGRlZlxlbmRvZnNlbnRlbmNlc3BhY2VmYWN0b3J7MzAwMH0lIGZvciBALiBhbmQgZnJpZW5kcworICB9CitcY2F0Y29kZWBAPVxvdGhlcgorXGRlZlxlbmRvZnNlbnRlbmNlc3BhY2VmYWN0b3J7MzAwMH0lIGRlZmF1bHQKKworXGRlZlx0IzF7JQorICB7XHR0IFxyYXdiYWNrc2xhc2ggXHBsYWluZnJlbmNoc3BhY2luZyAjMX0lCisgIFxudWxsCit9CitcZGVmXHNhbXAjMXtgXHRjbG9zZXsjMX0nXG51bGx9Citcc2V0Zm9udFxrZXlybVxybXNoYXBlezh9ezEwMDB9CitcZm9udFxrZXlzeT1jbXN5OQorXGRlZlxrZXkjMXt7XGtleXJtXHRleHRmb250Mj1ca2V5c3kgXGxlYXZldm1vZGVcaGJveHslCisgIFxyYWlzZTAuNHB0XGhib3h7XGFuZ2xlbGVmdH1ca2Vybi0uMDhlbVx2dG9weyUKKyAgICBcdmJveHtcaHJ1bGVca2Vybi0wLjRwdAorICAgICBcaGJveHtccmFpc2UwLjRwdFxoYm94e1x2cGhhbnRvbXtcYW5nbGVsZWZ0fX0jMX19JQorICAgIFxrZXJuLTAuNHB0XGhydWxlfSUKKyAgXGtlcm4tLjA2ZW1ccmFpc2UwLjRwdFxoYm94e1xhbmdsZXJpZ2h0fX19fQorJSBUaGUgb2xkIGRlZmluaXRpb24sIHdpdGggbm8gbG96ZW5nZToKKyVcZGVmXGtleSAjMXt7XHR0c2wgXG5vaHlwaGVuYXRpb24gXHVwcGVyY2FzZXsjMX19XG51bGx9CitcZGVmXGN0cmwgIzF7e1x0dCBccmF3YmFja3NsYXNoIFxoYXR9IzF9CisKKyUgQGZpbGUsIEBvcHRpb24gYXJlIHRoZSBzYW1lIGFzIEBzYW1wLgorXGxldFxmaWxlPVxzYW1wCitcbGV0XG9wdGlvbj1cc2FtcAorCislIEBjb2RlIGlzIGEgbW9kaWZpY2F0aW9uIG9mIEB0LAorJSB3aGljaCBtYWtlcyBzcGFjZXMgdGhlIHNhbWUgc2l6ZSBhcyBub3JtYWwgaW4gdGhlIHN1cnJvdW5kaW5nIHRleHQuCitcZGVmXHRjbG9zZSMxeyUKKyAgeyUKKyAgICAlIENoYW5nZSBub3JtYWwgaW50ZXJ3b3JkIHNwYWNlIHRvIGJlIHNhbWUgYXMgZm9yIHRoZSBjdXJyZW50IGZvbnQuCisgICAgXHNwYWNlc2tpcCA9IFxmb250ZGltZW4yXGZvbnQKKyAgICAlCisgICAgJSBTd2l0Y2ggdG8gdHlwZXdyaXRlci4KKyAgICBcdHQKKyAgICAlCisgICAgJSBCdXQgYFwgJyBwcm9kdWNlcyB0aGUgbGFyZ2UgdHlwZXdyaXRlciBpbnRlcndvcmQgc3BhY2UuCisgICAgXGRlZlwge3tcc3BhY2Vza2lwID0gMHB0e30gfX0lCisgICAgJQorICAgICUgVHVybiBvZmYgaHlwaGVuYXRpb24uCisgICAgXG5vaHlwaGVuYXRpb24KKyAgICAlCisgICAgXHJhd2JhY2tzbGFzaAorICAgIFxwbGFpbmZyZW5jaHNwYWNpbmcKKyAgICAjMSUKKyAgfSUKKyAgXG51bGwKK30KKworJSBXZSAqbXVzdCogdHVybiBvbiBoeXBoZW5hdGlvbiBhdCBgLScgYW5kIGBfJyBpbiBAY29kZS4KKyUgT3RoZXJ3aXNlLCBpdCBpcyB0b28gaGFyZCB0byBhdm9pZCBvdmVyZnVsbCBoYm94ZXMKKyUgaW4gdGhlIEVtYWNzIG1hbnVhbCwgdGhlIExpYnJhcnkgbWFudWFsLCBldGMuCisKKyUgVW5mb3J0dW5hdGVseSwgVGVYIHVzZXMgb25lIHBhcmFtZXRlciAoXGh5cGhlbmNoYXIpIHRvIGNvbnRyb2wKKyUgYm90aCBoeXBoZW5hdGlvbiBhdCAtIGFuZCBoeXBoZW5hdGlvbiB3aXRoaW4gd29yZHMuCislIFdlIG11c3QgdGhlcmVmb3JlIHR1cm4gdGhlbSBib3RoIG9mZiAoXHRjbG9zZSBkb2VzIHRoYXQpCislIGFuZCBhcnJhbmdlIGV4cGxpY2l0bHkgdG8gaHlwaGVuYXRlIGF0IGEgZGFzaC4KKyUgIC0tIHJtcy4KK3sKKyAgXGNhdGNvZGVgXC09XGFjdGl2ZQorICBcY2F0Y29kZWBcXz1cYWN0aXZlCisgICUKKyAgXGdsb2JhbFxkZWZcY29kZXtcYmVnaW5ncm91cAorICAgIFxjYXRjb2RlYFwtPVxhY3RpdmUgIFxjYXRjb2RlYFxfPVxhY3RpdmUKKyAgICBcaWZhbGxvd2NvZGVicmVha3MKKyAgICAgXGxldC1cY29kZWRhc2gKKyAgICAgXGxldF9cY29kZXVuZGVyCisgICAgXGVsc2UKKyAgICAgXGxldC1ccmVhbGRhc2gKKyAgICAgXGxldF9ccmVhbHVuZGVyCisgICAgXGZpCisgICAgXGNvZGV4CisgIH0KK30KKworXGRlZlxyZWFsZGFzaHstfQorXGRlZlxjb2RlZGFzaHstXGRpc2NyZXRpb25hcnl7fXt9e319CitcZGVmXGNvZGV1bmRlcnslCisgICUgdGhpcyBpcyBhbGwgc28gQG1hdGh7QGNvZGV7dmFyX25hbWV9KzF9IGNhbiB3b3JrLiAgSW4gbWF0aCBtb2RlLCBfCisgICUgaXMgImFjdGl2ZSIgKG1hdGhjb2RlIjgwMDApIGFuZCBcbm9ybWFsdW5kZXJzY29yZSAob3IgXGNoYXI5NSwgZXRjLikKKyAgJSB3aWxsIHRoZXJlZm9yZSBleHBhbmQgdGhlIGFjdGl2ZSBkZWZpbml0aW9uIG9mIF8sIHdoaWNoIGlzIHVzCisgICUgKGluc2lkZSBAY29kZSB0aGF0IGlzKSwgdGhlcmVmb3JlIGFuIGVuZGxlc3MgbG9vcC4KKyAgXGlmdXNpbmd0dHtcaWZtbW9kZQorICAgICAgICAgICAgICAgXG1hdGhjaGFyIjA3NUYgJSBjbGFzcyAwPW9yZGluYXJ5LCBmYW1pbHkgNz10dGZhbSwgcG9zIDB4NUY9Xy4KKyAgICAgICAgICAgICBcZWxzZVxub3JtYWx1bmRlcnNjb3JlIFxmaQorICAgICAgICAgICAgIFxkaXNjcmV0aW9uYXJ5e317fXt9fSUKKyAgICAgICAgICAgIHtcX30lCit9CitcZGVmXGNvZGV4ICMxe1x0Y2xvc2V7IzF9XGVuZGdyb3VwfQorCislIEFuIGFkZGl0aW9uYWwgY29tcGxpY2F0aW9uOiB0aGUgYWJvdmUgd2lsbCBhbGxvdyBicmVha3MgYWZ0ZXIsIGUuZy4sCislIGVhY2ggb2YgdGhlIGZvdXIgdW5kZXJzY29yZXMgaW4gX190eXBlb2ZfXy4gIFRoaXMgaXMgdW5kZXNpcmFibGUgaW4KKyUgc29tZSBtYW51YWxzLCBlc3BlY2lhbGx5IGlmIHRoZXkgZG9uJ3QgaGF2ZSBsb25nIGlkZW50aWZpZXJzIGluCislIGdlbmVyYWwuICBAYWxsb3djb2RlYnJlYWtzIHByb3ZpZGVzIGEgd2F5IHRvIGNvbnRyb2wgdGhpcy4KKyUgCitcbmV3aWZcaWZhbGxvd2NvZGVicmVha3MgIFxhbGxvd2NvZGVicmVha3N0cnVlCisKK1xkZWZca2V5d29yZHRydWV7dHJ1ZX0KK1xkZWZca2V5d29yZGZhbHNle2ZhbHNlfQorCitccGFyc2VhcmdkZWZcYWxsb3djb2RlYnJlYWtzeyUKKyAgXGRlZlx0eGlhcmd7IzF9JQorICBcaWZ4XHR4aWFyZ1xrZXl3b3JkdHJ1ZQorICAgIFxhbGxvd2NvZGVicmVha3N0cnVlCisgIFxlbHNlXGlmeFx0eGlhcmdca2V5d29yZGZhbHNlCisgICAgXGFsbG93Y29kZWJyZWFrc2ZhbHNlCisgIFxlbHNlCisgICAgXGVycmhlbHAgPSBcRU1zaW1wbGUKKyAgICBcZXJybWVzc2FnZXtVbmtub3duIEBhbGxvd2NvZGVicmVha3Mgb3B0aW9uIGBcdHhpYXJnJ30lCisgIFxmaVxmaQorfQorCislIEBrYmQgaXMgbGlrZSBAY29kZSwgZXhjZXB0IHRoYXQgaWYgdGhlIGFyZ3VtZW50IGlzIGp1c3Qgb25lIEBrZXkgY29tbWFuZCwKKyUgdGhlbiBAa2JkIGhhcyBubyBlZmZlY3QuCisKKyUgQGtiZGlucHV0c3R5bGUgLS0gYXJnIGlzIGBkaXN0aW5jdCcgKEBrYmQgdXNlcyBzbGFudGVkIHR0eSBmb250IGFsd2F5cyksCislICAgYGV4YW1wbGUnIChAa2JkIHVzZXMgdHRzbCBvbmx5IGluc2lkZSBvZiBAZXhhbXBsZSBhbmQgZnJpZW5kcyksCislICAgb3IgYGNvZGUnIChAa2JkIHVzZXMgbm9ybWFsIHR0eSBmb250IGFsd2F5cykuCitccGFyc2VhcmdkZWZca2JkaW5wdXRzdHlsZXslCisgIFxkZWZcdHhpYXJneyMxfSUKKyAgXGlmeFx0eGlhcmdcd29yZGRpc3RpbmN0CisgICAgXGdkZWZca2JkZXhhbXBsZWZvbnR7XHR0c2x9XGdkZWZca2JkZm9udHtcdHRzbH0lCisgIFxlbHNlXGlmeFx0eGlhcmdcd29yZGV4YW1wbGUKKyAgICBcZ2RlZlxrYmRleGFtcGxlZm9udHtcdHRzbH1cZ2RlZlxrYmRmb250e1x0dH0lCisgIFxlbHNlXGlmeFx0eGlhcmdcd29yZGNvZGUKKyAgICBcZ2RlZlxrYmRleGFtcGxlZm9udHtcdHR9XGdkZWZca2JkZm9udHtcdHR9JQorICBcZWxzZQorICAgIFxlcnJoZWxwID0gXEVNc2ltcGxlCisgICAgXGVycm1lc3NhZ2V7VW5rbm93biBAa2JkaW5wdXRzdHlsZSBvcHRpb24gYFx0eGlhcmcnfSUKKyAgXGZpXGZpXGZpCit9CitcZGVmXHdvcmRkaXN0aW5jdHtkaXN0aW5jdH0KK1xkZWZcd29yZGV4YW1wbGV7ZXhhbXBsZX0KK1xkZWZcd29yZGNvZGV7Y29kZX0KKworJSBEZWZhdWx0IGlzIGBkaXN0aW5jdC4nCitca2JkaW5wdXRzdHlsZSBkaXN0aW5jdAorCitcZGVmXHhrZXl7XGtleX0KK1xkZWZca2JkZm9vIzEjMiMzXHBhcntcZGVmXG9uZXsjMX1cZGVmXHRocmVleyMzfVxkZWZcdGhyZWV4ez8/fSUKK1xpZnhcb25lXHhrZXlcaWZ4XHRocmVleFx0aHJlZSBca2V5eyMyfSUKK1xlbHNle1x0Y2xvc2V7XGtiZGZvbnRcbG9va319XGZpCitcZWxzZXtcdGNsb3Nle1xrYmRmb250XGxvb2t9fVxmaX0KKworJSBGb3IgQGluZGljYXRldXJsLCBAZW52LCBAY29tbWFuZCBxdW90ZXMgc2VlbSB1bm5lY2Vzc2FyeSwgc28gdXNlIFxjb2RlLgorXGxldFxpbmRpY2F0ZXVybD1cY29kZQorXGxldFxlbnY9XGNvZGUKK1xsZXRcY29tbWFuZD1cY29kZQorCislIEB1cmVmIChhYmJyZXZpYXRpb24gZm9yIGB1cmxyZWYnKSB0YWtlcyBhbiBvcHRpb25hbCAoY29tbWEtc2VwYXJhdGVkKQorJSBzZWNvbmQgYXJndW1lbnQgc3BlY2lmeWluZyB0aGUgdGV4dCB0byBkaXNwbGF5IGFuZCBhbiBvcHRpb25hbCB0aGlyZAorJSBhcmcgYXMgdGV4dCB0byBkaXNwbGF5IGluc3RlYWQgb2YgKHJhdGhlciB0aGFuIGluIGFkZGl0aW9uIHRvKSB0aGUgdXJsCislIGl0c2VsZi4gIEZpcnN0IChtYW5kYXRvcnkpIGFyZyBpcyB0aGUgdXJsLiAgUGVyaGFwcyBldmVudHVhbGx5IHB1dCBpbgorJSBhIGh5cGVydGV4IFxzcGVjaWFsIGhlcmUuCislCitcZGVmXHVyZWYjMXtcZG91cmVmICMxLCwsXGZpbmlzaH0KK1xkZWZcZG91cmVmIzEsIzIsIzMsIzRcZmluaXNoe1xiZWdpbmdyb3VwCisgIFx1bnNlcHNwYWNlcworICBccGRmdXJseyMxfSUKKyAgXHNldGJveDAgPSBcaGJveHtcaWdub3Jlc3BhY2VzICMzfSUKKyAgXGlmZGltXHdkMCA+IDBwdAorICAgIFx1bmhib3gwICUgdGhpcmQgYXJnIGdpdmVuLCBzaG93IG9ubHkgdGhhdAorICBcZWxzZQorICAgIFxzZXRib3gwID0gXGhib3h7XGlnbm9yZXNwYWNlcyAjMn0lCisgICAgXGlmZGltXHdkMCA+IDBwdAorICAgICAgXGlmcGRmCisgICAgICAgIFx1bmhib3gwICAgICAgICAgICAgICUgUERGOiAybmQgYXJnIGdpdmVuLCBzaG93IG9ubHkgaXQKKyAgICAgIFxlbHNlCisgICAgICAgIFx1bmhib3gwXCAoXGNvZGV7IzF9KSUgRFZJOiAybmQgYXJnIGdpdmVuLCBzaG93IGJvdGggaXQgYW5kIHVybAorICAgICAgXGZpCisgICAgXGVsc2UKKyAgICAgIFxjb2RleyMxfSUgb25seSB1cmwgZ2l2ZW4sIHNvIHNob3cgaXQKKyAgICBcZmkKKyAgXGZpCisgIFxlbmRsaW5rCitcZW5kZ3JvdXB9CisKKyUgQHVybCBzeW5vbnltIGZvciBAdXJlZiwgc2luY2UgdGhhdCdzIGhvdyBldmVyeW9uZSB1c2VzIGl0LgorJQorXGxldFx1cmw9XHVyZWYKKworJSBybXMgZG9lcyBub3QgbGlrZSBhbmdsZSBicmFja2V0cyAtLWthcmwsIDE3bWF5OTcuCislIFNvIG5vdyBAZW1haWwgaXMganVzdCBsaWtlIEB1cmVmLCB1bmxlc3Mgd2UgYXJlIHBkZi4KKyUKKyVcZGVmXGVtYWlsIzF7XGFuZ2xlbGVmdHtcdHQgIzF9XGFuZ2xlcmlnaHR9CitcaWZwZGYKKyAgXGRlZlxlbWFpbCMxe1xkb2VtYWlsIzEsLFxmaW5pc2h9CisgIFxkZWZcZG9lbWFpbCMxLCMyLCMzXGZpbmlzaHtcYmVnaW5ncm91cAorICAgIFx1bnNlcHNwYWNlcworICAgIFxwZGZ1cmx7bWFpbHRvOiMxfSUKKyAgICBcc2V0Ym94MCA9IFxoYm94e1xpZ25vcmVzcGFjZXMgIzJ9JQorICAgIFxpZmRpbVx3ZDA+MHB0XHVuaGJveDBcZWxzZVxjb2RleyMxfVxmaQorICAgIFxlbmRsaW5rCisgIFxlbmRncm91cH0KK1xlbHNlCisgIFxsZXRcZW1haWw9XHVyZWYKK1xmaQorCislIENoZWNrIGlmIHdlIGFyZSBjdXJyZW50bHkgdXNpbmcgYSB0eXBld3JpdGVyIGZvbnQuICBTaW5jZSBhbGwgdGhlCislIENvbXB1dGVyIE1vZGVybiB0eXBld3JpdGVyIGZvbnRzIGhhdmUgemVybyBpbnRlcndvcmQgc3RyZXRjaCAoYW5kCislIHNocmluayksIGFuZCBpdCBpcyByZWFzb25hYmxlIHRvIGV4cGVjdCBhbGwgdHlwZXdyaXRlciBmb250cyB0byBoYXZlCislIHRoaXMgcHJvcGVydHksIHdlIGNhbiBjaGVjayB0aGF0IGZvbnQgcGFyYW1ldGVyLgorJQorXGRlZlxpZm1vbm9zcGFjZXtcaWZkaW1cZm9udGRpbWVuM1xmb250PTBwdCB9CisKKyUgVHlwZXNldCBhIGRpbWVuc2lvbiwgZS5nLiwgYGluJyBvciBgcHQnLiAgVGhlIG9ubHkgcmVhc29uIGZvciB0aGUKKyUgYXJndW1lbnQgaXMgdG8gbWFrZSB0aGUgaW5wdXQgbG9vayByaWdodDogQGRtbntwdH0gaW5zdGVhZCBvZiBAZG1ue31wdC4KKyUKK1xkZWZcZG1uIzF7XHRoaW5zcGFjZSAjMX0KKworXGRlZlxrYmQjMXtcZGVmXGxvb2t7IzF9XGV4cGFuZGFmdGVyXGtiZGZvb1xsb29rPz9ccGFyfQorCislIEBsIHdhcyBuZXZlciBkb2N1bWVudGVkIHRvIG1lYW4gYGBzd2l0Y2ggdG8gdGhlIExpc3AgZm9udCcnLAorJSBhbmQgaXQgaXMgbm90IHVzZWQgYXMgc3VjaCBpbiBhbnkgbWFudWFsIEkgY2FuIGZpbmQuICBXZSBuZWVkIGl0IGZvcgorJSBQb2xpc2ggc3VwcHJlc3NlZC1sLiAgLS1rYXJsLCAyMnNlcDk2LgorJVxkZWZcbCMxe3tcbGkgIzF9XG51bGx9CisKKyUgRXhwbGljaXQgZm9udCBjaGFuZ2VzOiBAciwgQHNjLCB1bmRvY3VtZW50ZWQgQGlpLgorXGRlZlxyIzF7e1xybSAjMX19ICAgICAgICAgICAgICAlIHJvbWFuIGZvbnQKK1xkZWZcc2MjMXt7XHNtYWxsY2FwcyMxfX0gICAgICAgJSBzbWFsbGNhcHMgZm9udAorXGRlZlxpaSMxe3tcaXQgIzF9fSAgICAgICAgICAgICAlIGl0YWxpYyBmb250CisKKyUgQGFjcm9ueW0gZm9yICJGQkkiLCAiTkFUTyIsIGFuZCB0aGUgbGlrZS4KKyUgV2UgcHJpbnQgdGhpcyBvbmUgcG9pbnQgc2l6ZSBzbWFsbGVyLCBzaW5jZSBpdCdzIGludGVuZGVkIGZvcgorJSBhbGwtdXBwZXJjYXNlLgorJSAKK1xkZWZcYWNyb255bSMxe1xkb2Fjcm9ueW0gIzEsLFxmaW5pc2h9CitcZGVmXGRvYWNyb255bSMxLCMyLCMzXGZpbmlzaHslCisgIHtcc2VsZWN0Zm9udHNcbHNpemUgIzF9JQorICBcZGVmXHRlbXB7IzJ9JQorICBcaWZ4XHRlbXBcZW1wdHkgXGVsc2UKKyAgICBcc3BhY2UgKHtcdW5zZXBzcGFjZXMgXGlnbm9yZXNwYWNlcyBcdGVtcCBcdW5za2lwfSklCisgIFxmaQorfQorCislIEBhYmJyIGZvciAiQ29tcHV0LiBKLiIgYW5kIHRoZSBsaWtlLgorJSBObyBmb250IGNoYW5nZSwgYnV0IGRvbid0IGRvIGVuZC1vZi1zZW50ZW5jZSBzcGFjaW5nLgorJSAKK1xkZWZcYWJiciMxe1xkb2FiYnIgIzEsLFxmaW5pc2h9CitcZGVmXGRvYWJiciMxLCMyLCMzXGZpbmlzaHslCisgIHtccGxhaW5mcmVuY2hzcGFjaW5nICMxfSUKKyAgXGRlZlx0ZW1weyMyfSUKKyAgXGlmeFx0ZW1wXGVtcHR5IFxlbHNlCisgICAgXHNwYWNlICh7XHVuc2Vwc3BhY2VzIFxpZ25vcmVzcGFjZXMgXHRlbXAgXHVuc2tpcH0pJQorICBcZmkKK30KKworJSBAcG91bmRze30gaXMgYSBzdGVybGluZyBzaWduLCB3aGljaCBLbnV0aCBwdXQgaW4gdGhlIENNIGl0YWxpYyBmb250LgorJQorXGRlZlxwb3VuZHN7e1xpdFwkfX0KKworJSBAZXVyb3t9IGNvbWVzIGZyb20gYSBzZXBhcmF0ZSBmb250LCBkZXBlbmRpbmcgb24gdGhlIGN1cnJlbnQgc3R5bGUuCislIFdlIHVzZSB0aGUgZnJlZSBmZXltKiBmb250cyBmcm9tIHRoZSBldXJvc3ltIHBhY2thZ2UgYnkgSGVucmlrCislIFRoZWlsaW5nLCB3aGljaCBzdXBwb3J0IHJlZ3VsYXIsIHNsYW50ZWQsIGJvbGQgYW5kIGJvbGQgc2xhbnRlZCAoYW5kCislICJvdXRsaW5lZCIgKGJsYWNrYm9hcmQgYm9hcmQsIHNvcnQgb2YpIHZlcnNpb25zLCB3aGljaCB3ZSBkb24ndCBuZWVkKS4KKyUgSXQgaXMgYXZhaWxhYmxlIGZyb20gaHR0cDovL3d3dy5jdGFuLm9yZy90ZXgtYXJjaGl2ZS9mb250cy9ldXJvc3ltLgorJSAKKyUgQWx0aG91Z2ggb25seSByZWd1bGFyIGlzIHRoZSB0cnVseSBvZmZpY2lhbCBFdXJvIHN5bWJvbCwgd2UgaWdub3JlCislIHRoYXQuICBUaGUgRXVybyBpcyBkZXNpZ25lZCB0byBiZSBzbGlnaHRseSB0YWxsZXIgdGhhbiB0aGUgcmVndWxhcgorJSBmb250IGhlaWdodC4KKyUgCislIGZleW1yIC0gcmVndWxhcgorJSBmZXltbyAtIHNsYW50ZWQKKyUgZmV5YnIgLSBib2xkCislIGZleWJvIC0gYm9sZCBzbGFudGVkCislIAorJSBUaGVyZSBpcyBubyBnb29kIChmcmVlKSB0eXBld3JpdGVyIHZlcnNpb24sIHRvIG15IGtub3dsZWRnZS4KKyUgQSBmZXltcjEwIGV1cm8gaXMgfjcuM3B0IHdpZGUsIHdoaWxlIGEgbm9ybWFsIGNtdHQxMCBjaGFyIGlzIH41LjI1cHQgd2lkZS4KKyUgSG1tLgorJSAKKyUgQWxzbyBkb2Vzbid0IHdvcmsgaW4gbWF0aC4gIERvIHdlIG5lZWQgdG8gZG8gbWF0aCB3aXRoIGV1cm8gc3ltYm9scz8KKyUgSG9wZSBub3QuCislIAorJSAKK1xkZWZcZXVyb3t7XGV1cm9mb250IGV9fQorXGRlZlxldXJvZm9udHslCisgICUgV2Ugc2V0IHRoZSBmb250IGF0IGVhY2ggY29tbWFuZCwgcmF0aGVyIHRoYW4gcHJlZGVmaW5pbmcgaXQgaW4KKyAgJSBcdGV4dGZvbnRzIGFuZCB0aGUgb3RoZXIgZm9udC1zd2l0Y2hpbmcgY29tbWFuZHMsIHNvIHRoYXQKKyAgJSBpbnN0YWxsYXRpb25zIHdoaWNoIG5ldmVyIG5lZWQgdGhlIHN5bWJvbCBkb24ndCBoYXZlIHRvIGhhdmUgdGhlCisgICUgZm9udCBpbnN0YWxsZWQuCisgICUgCisgICUgVGhlcmUgaXMgb25seSBvbmUgZGVzaWduZWQgc2l6ZSAobm9taW5hbCAxMHB0KSwgc28gd2UgYWx3YXlzIHNjYWxlCisgICUgdGhhdCB0byB0aGUgY3VycmVudCBub21pbmFsIHNpemUuCisgICUgCisgICUgQnkgdGhlIHdheSwgc2ltcGx5IHVzaW5nICJhdCAxZW0iIHdvcmtzIGZvciBjbXIxMCBhbmQgdGhlIGxpa2UsIGJ1dAorICAlIGRvZXMgbm90IHdvcmsgZm9yIGNtYngxMCBhbmQgb3RoZXIgZXh0ZW5kZWQvc2hydW5rZW4gZm9udHMuCisgICUgCisgIFxkZWZcZXVyb3NpemV7XGNzbmFtZVxjdXJmb250c2l6ZSBub21pbmFsc2l6ZVxlbmRjc25hbWV9JQorICAlCisgIFxpZnhcY3VyZm9udHN0eWxlXGJmc3R5bGVuYW1lIAorICAgICUgYm9sZDoKKyAgICBcZm9udFx0aGlzZXVyb2ZvbnQgPSBcaWZ1c2luZ2l0e2ZleWJvMTB9e2ZleWJyMTB9IGF0IFxldXJvc2l6ZQorICBcZWxzZSAKKyAgICAlIHJlZ3VsYXI6CisgICAgXGZvbnRcdGhpc2V1cm9mb250ID0gXGlmdXNpbmdpdHtmZXltbzEwfXtmZXltcjEwfSBhdCBcZXVyb3NpemUKKyAgXGZpCisgIFx0aGlzZXVyb2ZvbnQKK30KKworJSBAcmVnaXN0ZXJlZHN5bWJvbCAtIFIgaW4gYSBjaXJjbGUuICBUaGUgZm9udCBmb3IgdGhlIFIgc2hvdWxkIHJlYWxseQorJSBiZSBzbWFsbGVyIHlldCwgYnV0IGxsbHNpemUgaXMgdGhlIGJlc3Qgd2UgY2FuIGRvIGZvciBub3cuCislIEFkYXB0ZWQgZnJvbSB0aGUgcGxhaW4udGV4IGRlZmluaXRpb24gb2YgXGNvcHlyaWdodC4KKyUKK1xkZWZccmVnaXN0ZXJlZHN5bWJvbHslCisgICRee3tcb29hbGlnbntcaGZpbFxyYWlzZS4wN2V4XGhib3h7XHNlbGVjdGZvbnRzXGxsbHNpemUgUn0lCisgICAgICAgICAgICAgICBcaGZpbFxjcmNyXE9yYn19JQorICAgIH0kJQorfQorCislIExhdXJlbnQgU2llYmVubWFubiByZXBvcnRzIFxPcmIgdW5kZWZpbmVkIHdpdGg6CislICBUZXh0dXJlcyAxLjcuNyAocHJlbG9hZGVkIGZvcm1hdD1wbGFpbiA5My4xMC4xNCkgICg2OEspICAxNiBBUFIgMjAwNCAwMjozOAorJSBzbyB3ZSdsbCBkZWZpbmUgaXQgaWYgbmVjZXNzYXJ5LgorJSAKK1xpZnhcT3JiXHVuZGVmaW5lZAorXGRlZlxPcmJ7XG1hdGhoZXhib3gyMER9CitcZmkKKworCitcbWVzc2FnZXtwYWdlIGhlYWRpbmdzLH0KKworXG5ld3NraXBcdGl0bGVwYWdldG9wZ2x1ZSBcdGl0bGVwYWdldG9wZ2x1ZSA9IDEuNWluCitcbmV3c2tpcFx0aXRsZXBhZ2Vib3R0b21nbHVlIFx0aXRsZXBhZ2Vib3R0b21nbHVlID0gMnBjCisKKyUgRmlyc3QgdGhlIHRpdGxlIHBhZ2UuICBNdXN0IGRvIEBzZXR0aXRsZSBiZWZvcmUgQHRpdGxlcGFnZS4KK1xuZXdpZlxpZnNlZW5hdXRob3IKK1xuZXdpZlxpZmZpbmlzaGVkdGl0bGVwYWdlCisKKyUgRG8gYW4gaW1wbGljaXQgQGNvbnRlbnRzIG9yIEBzaG9ydGNvbnRlbnRzIGFmdGVyIEBlbmQgdGl0bGVwYWdlIGlmIHRoZQorJSB1c2VyIHNheXMgQHNldGNvbnRlbnRzYWZ0ZXJ0aXRsZXBhZ2Ugb3IgQHNldHNob3J0Y29udGVudHNhZnRlcnRpdGxlcGFnZS4KKyUKK1xuZXdpZlxpZnNldGNvbnRlbnRzYWZ0ZXJ0aXRsZXBhZ2UKKyBcbGV0XHNldGNvbnRlbnRzYWZ0ZXJ0aXRsZXBhZ2UgPSBcc2V0Y29udGVudHNhZnRlcnRpdGxlcGFnZXRydWUKK1xuZXdpZlxpZnNldHNob3J0Y29udGVudHNhZnRlcnRpdGxlcGFnZQorIFxsZXRcc2V0c2hvcnRjb250ZW50c2FmdGVydGl0bGVwYWdlID0gXHNldHNob3J0Y29udGVudHNhZnRlcnRpdGxlcGFnZXRydWUKKworXHBhcnNlYXJnZGVmXHNob3J0dGl0bGVwYWdle1xiZWdpbmdyb3VwXGhib3h7fVx2c2tpcCAxLjVpbiBcY2hhcHJtIFxjZW50ZXJsaW5leyMxfSUKKyAgICAgICAgXGVuZGdyb3VwXHBhZ2VcaGJveHt9XHBhZ2V9CisKK1xlbnZkZWZcdGl0bGVwYWdleyUKKyAgJSBPcGVuIG9uZSBleHRyYSBncm91cCwgYXMgd2Ugd2FudCB0byBjbG9zZSBpdCBpbiB0aGUgbWlkZGxlIG9mIFxFdGl0bGVwYWdlLgorICBcYmVnaW5ncm91cAorICAgIFxwYXJpbmRlbnQ9MHB0IFx0ZXh0Zm9udHMKKyAgICAlIExlYXZlIHNvbWUgc3BhY2UgYXQgdGhlIHZlcnkgdG9wIG9mIHRoZSBwYWdlLgorICAgIFx2Z2x1ZVx0aXRsZXBhZ2V0b3BnbHVlCisgICAgJSBObyBydWxlIGF0IHBhZ2UgYm90dG9tIHVubGVzcyB3ZSBwcmludCBvbmUgYXQgdGhlIHRvcCB3aXRoIEB0aXRsZS4KKyAgICBcZmluaXNoZWR0aXRsZXBhZ2V0cnVlCisgICAgJQorICAgICUgTW9zdCB0aXRsZSBgYHBhZ2VzJycgYXJlIGFjdHVhbGx5IHR3byBwYWdlcyBsb25nLCB3aXRoIHNwYWNlCisgICAgJSBhdCB0aGUgdG9wIG9mIHRoZSBzZWNvbmQuICBXZSBkb24ndCB3YW50IHRoZSByYWdnZWQgbGVmdCBvbiB0aGUgc2Vjb25kLgorICAgIFxsZXRcb2xkcGFnZSA9IFxwYWdlCisgICAgXGRlZlxwYWdleyUKKyAgICAgIFxpZmZpbmlzaGVkdGl0bGVwYWdlXGVsc2UKKwkgXGZpbmlzaHRpdGxlcGFnZQorICAgICAgXGZpCisgICAgICBcbGV0XHBhZ2UgPSBcb2xkcGFnZQorICAgICAgXHBhZ2UKKyAgICAgIFxudWxsCisgICAgfSUKK30KKworXGRlZlxFdGl0bGVwYWdleyUKKyAgICBcaWZmaW5pc2hlZHRpdGxlcGFnZVxlbHNlCisJXGZpbmlzaHRpdGxlcGFnZQorICAgIFxmaQorICAgICUgSXQgaXMgaW1wb3J0YW50IHRvIGRvIHRoZSBwYWdlIGJyZWFrIGJlZm9yZSBlbmRpbmcgdGhlIGdyb3VwLAorICAgICUgYmVjYXVzZSB0aGUgaGVhZGxpbmUgYW5kIGZvb3RsaW5lIGFyZSBvbmx5IGVtcHR5IGluc2lkZSB0aGUgZ3JvdXAuCisgICAgJSBJZiB3ZSB1c2UgdGhlIG5ldyBkZWZpbml0aW9uIG9mIFxwYWdlLCB3ZSBhbHdheXMgZ2V0IGEgYmxhbmsgcGFnZQorICAgICUgYWZ0ZXIgdGhlIHRpdGxlIHBhZ2UsIHdoaWNoIHdlIGNlcnRhaW5seSBkb24ndCB3YW50LgorICAgIFxvbGRwYWdlCisgIFxlbmRncm91cAorICAlCisgICUgTmVlZCB0aGlzIGJlZm9yZSB0aGUgXC4uLmFmdGVydGl0bGVwYWdlIGNoZWNrcyBzbyB0aGF0IGlmIHRoZXkgYXJlCisgICUgaW4gZWZmZWN0IHRoZSB0b2MgcGFnZXMgd2lsbCBjb21lIG91dCB3aXRoIHBhZ2UgbnVtYmVycy4KKyAgXEhFQURJTkdTb24KKyAgJQorICAlIElmIHRoZXkgd2FudCBzaG9ydCwgdGhleSBjZXJ0YWlubHkgd2FudCBsb25nIHRvby4KKyAgXGlmc2V0c2hvcnRjb250ZW50c2FmdGVydGl0bGVwYWdlCisgICAgXHNob3J0Y29udGVudHMKKyAgICBcY29udGVudHMKKyAgICBcZ2xvYmFsXGxldFxzaG9ydGNvbnRlbnRzID0gXHJlbGF4CisgICAgXGdsb2JhbFxsZXRcY29udGVudHMgPSBccmVsYXgKKyAgXGZpCisgICUKKyAgXGlmc2V0Y29udGVudHNhZnRlcnRpdGxlcGFnZQorICAgIFxjb250ZW50cworICAgIFxnbG9iYWxcbGV0XGNvbnRlbnRzID0gXHJlbGF4CisgICAgXGdsb2JhbFxsZXRcc2hvcnRjb250ZW50cyA9IFxyZWxheAorICBcZmkKK30KKworXGRlZlxmaW5pc2h0aXRsZXBhZ2V7JQorICBcdnNraXA0cHQgXGhydWxlIGhlaWdodCAycHQgd2lkdGggXGhzaXplCisgIFx2c2tpcFx0aXRsZXBhZ2Vib3R0b21nbHVlCisgIFxmaW5pc2hlZHRpdGxlcGFnZXRydWUKK30KKworJSUlIE1hY3JvcyB0byBiZSB1c2VkIHdpdGhpbiBAdGl0bGVwYWdlOgorCitcbGV0XHN1YnRpdGxlcm09XHRlbnJtCitcZGVmXHN1YnRpdGxlZm9udHtcc3VidGl0bGVybSBcbm9ybWFsYmFzZWxpbmVza2lwID0gMTNwdCBcbm9ybWFsYmFzZWxpbmVzfQorCitcZGVmXGF1dGhvcmZvbnR7XGF1dGhvcnJtIFxub3JtYWxiYXNlbGluZXNraXAgPSAxNnB0IFxub3JtYWxiYXNlbGluZXMKKwkJXGxldFx0dD1cYXV0aG9ydHR9CisKK1xwYXJzZWFyZ2RlZlx0aXRsZXslCisgIFxjaGVja2Vudlx0aXRsZXBhZ2UKKyAgXGxlZnRsaW5le1x0aXRsZWZvbnRzXHJtICMxfQorICAlIHByaW50IGEgcnVsZSBhdCB0aGUgcGFnZSBib3R0b20gYWxzby4KKyAgXGZpbmlzaGVkdGl0bGVwYWdlZmFsc2UKKyAgXHZza2lwNHB0IFxocnVsZSBoZWlnaHQgNHB0IHdpZHRoIFxoc2l6ZSBcdnNraXA0cHQKK30KKworXHBhcnNlYXJnZGVmXHN1YnRpdGxleyUKKyAgXGNoZWNrZW52XHRpdGxlcGFnZQorICB7XHN1YnRpdGxlZm9udCBccmlnaHRsaW5leyMxfX0lCit9CisKKyUgQGF1dGhvciBzaG91bGQgY29tZSBsYXN0LCBidXQgbWF5IGNvbWUgbWFueSB0aW1lcy4KKyUgSXQgY2FuIGFsc28gYmUgdXNlZCBpbnNpZGUgQHF1b3RhdGlvbi4KKyUKK1xwYXJzZWFyZ2RlZlxhdXRob3J7JQorICBcZGVmXHRlbXB7XHF1b3RhdGlvbn0lCisgIFxpZnhcdGhpc2Vudlx0ZW1wCisgICAgXGRlZlxxdW90YXRpb25hdXRob3J7IzF9JSBwcmludGVkIGluIFxFcXVvdGF0aW9uLgorICBcZWxzZQorICAgIFxjaGVja2Vudlx0aXRsZXBhZ2UKKyAgICBcaWZzZWVuYXV0aG9yXGVsc2UgXHZza2lwIDBwdCBwbHVzIDFmaWxsbCBcc2VlbmF1dGhvcnRydWUgXGZpCisgICAge1xhdXRob3Jmb250IFxsZWZ0bGluZXsjMX19JQorICBcZmkKK30KKworCislJSUgU2V0IHVwIHBhZ2UgaGVhZGluZ3MgYW5kIGZvb3RpbmdzLgorCitcbGV0XHRoaXNwYWdlPVxmb2xpbworCitcbmV3dG9rc1xldmVuaGVhZGxpbmUgICAgJSBoZWFkbGluZSBvbiBldmVuIHBhZ2VzCitcbmV3dG9rc1xvZGRoZWFkbGluZSAgICAgJSBoZWFkbGluZSBvbiBvZGQgcGFnZXMKK1xuZXd0b2tzXGV2ZW5mb290bGluZSAgICAlIGZvb3RsaW5lIG9uIGV2ZW4gcGFnZXMKK1xuZXd0b2tzXG9kZGZvb3RsaW5lICAgICAlIGZvb3RsaW5lIG9uIG9kZCBwYWdlcworCislIE5vdyBtYWtlIFRlWCB1c2UgdGhvc2UgdmFyaWFibGVzCitcaGVhZGxpbmU9e3tcdGV4dGZvbnRzXHJtIFxpZm9kZFxwYWdlbm8gXHRoZVxvZGRoZWFkbGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxlbHNlIFx0aGVcZXZlbmhlYWRsaW5lIFxmaX19CitcZm9vdGxpbmU9e3tcdGV4dGZvbnRzXHJtIFxpZm9kZFxwYWdlbm8gXHRoZVxvZGRmb290bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxlbHNlIFx0aGVcZXZlbmZvb3RsaW5lIFxmaX1cSEVBRElOR1Nob29rfQorXGxldFxIRUFESU5HU2hvb2s9XHJlbGF4CisKKyUgQ29tbWFuZHMgdG8gc2V0IHRob3NlIHZhcmlhYmxlcy4KKyUgRm9yIGV4YW1wbGUsIHRoaXMgaXMgd2hhdCAgQGhlYWRpbmdzIG9uICBkb2VzCislIEBldmVuaGVhZGluZyBAdGhpc3RpdGxlfEB0aGlzcGFnZXxAdGhpc2NoYXB0ZXIKKyUgQG9kZGhlYWRpbmcgQHRoaXNjaGFwdGVyfEB0aGlzcGFnZXxAdGhpc3RpdGxlCislIEBldmVuZm9vdGluZyBAdGhpc2ZpbGV8fAorJSBAb2RkZm9vdGluZyB8fEB0aGlzZmlsZQorCisKK1xkZWZcZXZlbmhlYWRpbmd7XHBhcnNlYXJnXGV2ZW5oZWFkaW5neHh4fQorXGRlZlxldmVuaGVhZGluZ3h4eCAjMXtcZXZlbmhlYWRpbmd5eXkgIzFcfFx8XHxcfFxmaW5pc2h9CitcZGVmXGV2ZW5oZWFkaW5neXl5ICMxXHwjMlx8IzNcfCM0XGZpbmlzaHslCitcZ2xvYmFsXGV2ZW5oZWFkbGluZT17XHJsYXB7XGNlbnRlcmxpbmV7IzJ9fVxsaW5leyMxXGhmaWwjM319fQorCitcZGVmXG9kZGhlYWRpbmd7XHBhcnNlYXJnXG9kZGhlYWRpbmd4eHh9CitcZGVmXG9kZGhlYWRpbmd4eHggIzF7XG9kZGhlYWRpbmd5eXkgIzFcfFx8XHxcfFxmaW5pc2h9CitcZGVmXG9kZGhlYWRpbmd5eXkgIzFcfCMyXHwjM1x8IzRcZmluaXNoeyUKK1xnbG9iYWxcb2RkaGVhZGxpbmU9e1xybGFwe1xjZW50ZXJsaW5leyMyfX1cbGluZXsjMVxoZmlsIzN9fX0KKworXHBhcnNlYXJnZGVmXGV2ZXJ5aGVhZGluZ3tcb2RkaGVhZGluZ3h4eHsjMX1cZXZlbmhlYWRpbmd4eHh7IzF9fSUKKworXGRlZlxldmVuZm9vdGluZ3tccGFyc2VhcmdcZXZlbmZvb3Rpbmd4eHh9CitcZGVmXGV2ZW5mb290aW5neHh4ICMxe1xldmVuZm9vdGluZ3l5eSAjMVx8XHxcfFx8XGZpbmlzaH0KK1xkZWZcZXZlbmZvb3Rpbmd5eXkgIzFcfCMyXHwjM1x8IzRcZmluaXNoeyUKK1xnbG9iYWxcZXZlbmZvb3RsaW5lPXtccmxhcHtcY2VudGVybGluZXsjMn19XGxpbmV7IzFcaGZpbCMzfX19CisKK1xkZWZcb2RkZm9vdGluZ3tccGFyc2Vhcmdcb2RkZm9vdGluZ3h4eH0KK1xkZWZcb2RkZm9vdGluZ3h4eCAjMXtcb2RkZm9vdGluZ3l5eSAjMVx8XHxcfFx8XGZpbmlzaH0KK1xkZWZcb2RkZm9vdGluZ3l5eSAjMVx8IzJcfCMzXHwjNFxmaW5pc2h7JQorICBcZ2xvYmFsXG9kZGZvb3RsaW5lID0ge1xybGFwe1xjZW50ZXJsaW5leyMyfX1cbGluZXsjMVxoZmlsIzN9fSUKKyAgJQorICAlIExlYXZlIHNvbWUgc3BhY2UgZm9yIHRoZSBmb290bGluZS4gIEhvcGVmdWxseSBvayB0byBhc3N1bWUKKyAgJSBAZXZlbmZvb3Rpbmcgd2lsbCBub3QgYmUgdXNlZCBieSBpdHNlbGYuCisgIFxnbG9iYWxcYWR2YW5jZVxwYWdlaGVpZ2h0IGJ5IC1cYmFzZWxpbmVza2lwCisgIFxnbG9iYWxcYWR2YW5jZVx2c2l6ZSBieSAtXGJhc2VsaW5lc2tpcAorfQorCitccGFyc2VhcmdkZWZcZXZlcnlmb290aW5ne1xvZGRmb290aW5neHh4eyMxfVxldmVuZm9vdGluZ3h4eHsjMX19CisKKworJSBAaGVhZGluZ3MgZG91YmxlICAgICAgdHVybnMgaGVhZGluZ3Mgb24gZm9yIGRvdWJsZS1zaWRlZCBwcmludGluZy4KKyUgQGhlYWRpbmdzIHNpbmdsZSAgICAgIHR1cm5zIGhlYWRpbmdzIG9uIGZvciBzaW5nbGUtc2lkZWQgcHJpbnRpbmcuCislIEBoZWFkaW5ncyBvZmYgICAgICAgICB0dXJucyB0aGVtIG9mZi4KKyUgQGhlYWRpbmdzIG9uICAgICAgICAgIHNhbWUgYXMgQGhlYWRpbmdzIGRvdWJsZSwgcmV0YWluZWQgZm9yIGNvbXBhdGliaWxpdHkuCislIEBoZWFkaW5ncyBhZnRlciAgICAgICB0dXJucyBvbiBkb3VibGUtc2lkZWQgaGVhZGluZ3MgYWZ0ZXIgdGhpcyBwYWdlLgorJSBAaGVhZGluZ3MgZG91YmxlYWZ0ZXIgdHVybnMgb24gZG91YmxlLXNpZGVkIGhlYWRpbmdzIGFmdGVyIHRoaXMgcGFnZS4KKyUgQGhlYWRpbmdzIHNpbmdsZWFmdGVyIHR1cm5zIG9uIHNpbmdsZS1zaWRlZCBoZWFkaW5ncyBhZnRlciB0aGlzIHBhZ2UuCislIEJ5IGRlZmF1bHQsIHRoZXkgYXJlIG9mZiBhdCB0aGUgc3RhcnQgb2YgYSBkb2N1bWVudCwKKyUgYW5kIHR1cm5lZCBgb24nIGFmdGVyIEBlbmQgdGl0bGVwYWdlLgorCitcZGVmXGhlYWRpbmdzICMxIHtcY3NuYW1lIEhFQURJTkdTIzFcZW5kY3NuYW1lfQorCitcZGVmXEhFQURJTkdTb2ZmeyUKK1xnbG9iYWxcZXZlbmhlYWRsaW5lPXtcaGZpbH0gXGdsb2JhbFxldmVuZm9vdGxpbmU9e1xoZmlsfQorXGdsb2JhbFxvZGRoZWFkbGluZT17XGhmaWx9IFxnbG9iYWxcb2RkZm9vdGxpbmU9e1xoZmlsfX0KK1xIRUFESU5HU29mZgorJSBXaGVuIHdlIHR1cm4gaGVhZGluZ3Mgb24sIHNldCB0aGUgcGFnZSBudW1iZXIgdG8gMS4KKyUgRm9yIGRvdWJsZS1zaWRlZCBwcmludGluZywgcHV0IGN1cnJlbnQgZmlsZSBuYW1lIGluIGxvd2VyIGxlZnQgY29ybmVyLAorJSBjaGFwdGVyIG5hbWUgb24gaW5zaWRlIHRvcCBvZiByaWdodCBoYW5kIHBhZ2VzLCBkb2N1bWVudAorJSB0aXRsZSBvbiBpbnNpZGUgdG9wIG9mIGxlZnQgaGFuZCBwYWdlcywgYW5kIHBhZ2UgbnVtYmVycyBvbiBvdXRzaWRlIHRvcAorJSBlZGdlIG9mIGFsbCBwYWdlcy4KK1xkZWZcSEVBRElOR1Nkb3VibGV7JQorXGdsb2JhbFxwYWdlbm89MQorXGdsb2JhbFxldmVuZm9vdGxpbmU9e1xoZmlsfQorXGdsb2JhbFxvZGRmb290bGluZT17XGhmaWx9CitcZ2xvYmFsXGV2ZW5oZWFkbGluZT17XGxpbmV7XGZvbGlvXGhmaWxcdGhpc3RpdGxlfX0KK1xnbG9iYWxcb2RkaGVhZGxpbmU9e1xsaW5le1x0aGlzY2hhcHRlclxoZmlsXGZvbGlvfX0KK1xnbG9iYWxcbGV0XGNvbnRlbnRzYWxpZ25tYWNybyA9IFxjaGFwb2RkcGFnZQorfQorXGxldFxjb250ZW50c2FsaWdubWFjcm8gPSBcY2hhcHBhZ2VyCisKKyUgRm9yIHNpbmdsZS1zaWRlZCBwcmludGluZywgY2hhcHRlciB0aXRsZSBnb2VzIGFjcm9zcyB0b3AgbGVmdCBvZiBwYWdlLAorJSBwYWdlIG51bWJlciBvbiB0b3AgcmlnaHQuCitcZGVmXEhFQURJTkdTc2luZ2xleyUKK1xnbG9iYWxccGFnZW5vPTEKK1xnbG9iYWxcZXZlbmZvb3RsaW5lPXtcaGZpbH0KK1xnbG9iYWxcb2RkZm9vdGxpbmU9e1xoZmlsfQorXGdsb2JhbFxldmVuaGVhZGxpbmU9e1xsaW5le1x0aGlzY2hhcHRlclxoZmlsXGZvbGlvfX0KK1xnbG9iYWxcb2RkaGVhZGxpbmU9e1xsaW5le1x0aGlzY2hhcHRlclxoZmlsXGZvbGlvfX0KK1xnbG9iYWxcbGV0XGNvbnRlbnRzYWxpZ25tYWNybyA9IFxjaGFwcGFnZXIKK30KK1xkZWZcSEVBRElOR1NvbntcSEVBRElOR1Nkb3VibGV9CisKK1xkZWZcSEVBRElOR1NhZnRlcntcbGV0XEhFQURJTkdTaG9vaz1cSEVBRElOR1Nkb3VibGV4fQorXGxldFxIRUFESU5HU2RvdWJsZWFmdGVyPVxIRUFESU5HU2FmdGVyCitcZGVmXEhFQURJTkdTZG91YmxleHslCitcZ2xvYmFsXGV2ZW5mb290bGluZT17XGhmaWx9CitcZ2xvYmFsXG9kZGZvb3RsaW5lPXtcaGZpbH0KK1xnbG9iYWxcZXZlbmhlYWRsaW5lPXtcbGluZXtcZm9saW9caGZpbFx0aGlzdGl0bGV9fQorXGdsb2JhbFxvZGRoZWFkbGluZT17XGxpbmV7XHRoaXNjaGFwdGVyXGhmaWxcZm9saW99fQorXGdsb2JhbFxsZXRcY29udGVudHNhbGlnbm1hY3JvID0gXGNoYXBvZGRwYWdlCit9CisKK1xkZWZcSEVBRElOR1NzaW5nbGVhZnRlcntcbGV0XEhFQURJTkdTaG9vaz1cSEVBRElOR1NzaW5nbGV4fQorXGRlZlxIRUFESU5HU3NpbmdsZXh7JQorXGdsb2JhbFxldmVuZm9vdGxpbmU9e1xoZmlsfQorXGdsb2JhbFxvZGRmb290bGluZT17XGhmaWx9CitcZ2xvYmFsXGV2ZW5oZWFkbGluZT17XGxpbmV7XHRoaXNjaGFwdGVyXGhmaWxcZm9saW99fQorXGdsb2JhbFxvZGRoZWFkbGluZT17XGxpbmV7XHRoaXNjaGFwdGVyXGhmaWxcZm9saW99fQorXGdsb2JhbFxsZXRcY29udGVudHNhbGlnbm1hY3JvID0gXGNoYXBwYWdlcgorfQorCislIFN1YnJvdXRpbmVzIHVzZWQgaW4gZ2VuZXJhdGluZyBoZWFkaW5ncworJSBUaGlzIHByb2R1Y2VzIERheSBNb250aCBZZWFyIHN0eWxlIG9mIG91dHB1dC4KKyUgT25seSBkZWZpbmUgaWYgbm90IGFscmVhZHkgZGVmaW5lZCwgaW4gY2FzZSBhIHR4aS0/Py50ZXggZmlsZSBoYXMgc2V0CislIHVwIGEgZGlmZmVyZW50IGZvcm1hdCAoZS5nLiwgdHhpLWNzLnRleCBkb2VzIHRoaXMpLgorXGlmeFx0b2RheVx1bmRlZmluZWQKK1xkZWZcdG9kYXl7JQorICBcbnVtYmVyXGRheVxzcGFjZQorICBcaWZjYXNlXG1vbnRoCisgIFxvclxwdXR3b3JkTUphblxvclxwdXR3b3JkTUZlYlxvclxwdXR3b3JkTU1hclxvclxwdXR3b3JkTUFwcgorICBcb3JccHV0d29yZE1NYXlcb3JccHV0d29yZE1KdW5cb3JccHV0d29yZE1KdWxcb3JccHV0d29yZE1BdWcKKyAgXG9yXHB1dHdvcmRNU2VwXG9yXHB1dHdvcmRNT2N0XG9yXHB1dHdvcmRNTm92XG9yXHB1dHdvcmRNRGVjCisgIFxmaQorICBcc3BhY2VcbnVtYmVyXHllYXJ9CitcZmkKKworJSBAc2V0dGl0bGUgbGluZS4uLiAgc3BlY2lmaWVzIHRoZSB0aXRsZSBvZiB0aGUgZG9jdW1lbnQsIGZvciBoZWFkaW5ncy4KKyUgSXQgZ2VuZXJhdGVzIG5vIG91dHB1dCBvZiBpdHMgb3duLgorXGRlZlx0aGlzdGl0bGV7XHB1dHdvcmROb1RpdGxlfQorXGRlZlxzZXR0aXRsZXtccGFyc2Vhcmd7XGdkZWZcdGhpc3RpdGxlfX0KKworCitcbWVzc2FnZXt0YWJsZXMsfQorJSBUYWJsZXMgLS0gQHRhYmxlLCBAZnRhYmxlLCBAdnRhYmxlLCBAaXRlbSh4KS4KKworJSBkZWZhdWx0IGluZGVudGF0aW9uIG9mIHRhYmxlIHRleHQKK1xuZXdkaW1lblx0YWJsZWluZGVudCBcdGFibGVpbmRlbnQ9LjhpbgorJSBkZWZhdWx0IGluZGVudGF0aW9uIG9mIEBpdGVtaXplIGFuZCBAZW51bWVyYXRlIHRleHQKK1xuZXdkaW1lblxpdGVtaW5kZW50ICBcaXRlbWluZGVudD0uM2luCislIG1hcmdpbiBiZXR3ZWVuIGVuZCBvZiB0YWJsZSBpdGVtIGFuZCBzdGFydCBvZiB0YWJsZSB0ZXh0LgorXG5ld2RpbWVuXGl0ZW1tYXJnaW4gIFxpdGVtbWFyZ2luPS4xaW4KKworJSB1c2VkIGludGVybmFsbHkgZm9yIFxpdGVtaW5kZW50IG1pbnVzIFxpdGVtbWFyZ2luCitcbmV3ZGltZW5caXRlbW1heAorCislIE5vdGUgQHRhYmxlLCBAZnRhYmxlLCBhbmQgQHZ0YWJsZSBkZWZpbmUgQGl0ZW0sIEBpdGVteCwgZXRjLiwgd2l0aAorJSB0aGVzZSBkZWZzLgorJSBUaGV5IGFsc28gZGVmaW5lIFxpdGVtaW5kZXgKKyUgdG8gaW5kZXggdGhlIGl0ZW0gbmFtZSBpbiB3aGF0ZXZlciBtYW5uZXIgaXMgZGVzaXJlZCAocGVyaGFwcyBub25lKS4KKworXG5ld2lmXGlmaXRlbXhuZWVkc25lZ2F0aXZldnNraXAKKworXGRlZlxpdGVteHBhcntccGFyXGlmaXRlbXhuZWVkc25lZ2F0aXZldnNraXBcbm9icmVha1x2c2tpcC1ccGFyc2tpcFxub2JyZWFrXGZpfQorCitcZGVmXGludGVybmFsQml0ZW17XHNtYWxsYnJlYWsgXHBhcnNlYXJnXGl0ZW16enp9CitcZGVmXGludGVybmFsQml0ZW14e1xpdGVteHBhciBccGFyc2VhcmdcaXRlbXp6en0KKworXGRlZlxpdGVtenp6ICMxe1xiZWdpbmdyb3VwICUKKyAgXGFkdmFuY2VcaHNpemUgYnkgLVxyaWdodHNraXAKKyAgXGFkdmFuY2VcaHNpemUgYnkgLVx0YWJsZWluZGVudAorICBcc2V0Ym94MD1caGJveHtcaXRlbWluZGljYXRleyMxfX0lCisgIFxpdGVtaW5kZXh7IzF9JQorICBcbm9icmVhayAlIFRoaXMgcHJldmVudHMgYSBicmVhayBiZWZvcmUgQGl0ZW14LgorICAlCisgICUgSWYgdGhlIGl0ZW0gdGV4dCBkb2VzIG5vdCBmaXQgaW4gdGhlIHNwYWNlIHdlIGhhdmUsIHB1dCBpdCBvbiBhIGxpbmUKKyAgJSBieSBpdHNlbGYsIGFuZCBkbyBub3QgYWxsb3cgYSBwYWdlIGJyZWFrIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXIgdGhhdAorICAlIGxpbmUuICBXZSBkbyBub3Qgc3RhcnQgYSBwYXJhZ3JhcGggaGVyZSBiZWNhdXNlIHRoZW4gaWYgdGhlIG5leHQKKyAgJSBjb21tYW5kIGlzLCBlLmcuLCBAa2luZGV4LCB0aGUgd2hhdHNpdCB3b3VsZCBnZXQgcHV0IGludG8gdGhlCisgICUgaG9yaXpvbnRhbCBsaXN0IG9uIGEgbGluZSBieSBpdHNlbGYsIHJlc3VsdGluZyBpbiBleHRyYSBibGFuayBzcGFjZS4KKyAgXGlmZGltIFx3ZDA+XGl0ZW1tYXgKKyAgICAlCisgICAgJSBNYWtlIHRoaXMgYSBwYXJhZ3JhcGggc28gd2UgZ2V0IHRoZSBccGFyc2tpcCBnbHVlIGFuZCB3cmFwcGluZywKKyAgICAlIGJ1dCBsZWF2ZSBpdCByYWdnZWQtcmlnaHQuCisgICAgXGJlZ2luZ3JvdXAKKyAgICAgIFxhZHZhbmNlXGxlZnRza2lwIGJ5LVx0YWJsZWluZGVudAorICAgICAgXGFkdmFuY2VcaHNpemUgYnlcdGFibGVpbmRlbnQKKyAgICAgIFxhZHZhbmNlXHJpZ2h0c2tpcCBieTBwdCBwbHVzMWZpbAorICAgICAgXGxlYXZldm1vZGVcdW5oYm94MFxwYXIKKyAgICBcZW5kZ3JvdXAKKyAgICAlCisgICAgJSBXZSdyZSBnb2luZyB0byBiZSBzdGFydGluZyBhIHBhcmFncmFwaCwgYnV0IHdlIGRvbid0IHdhbnQgdGhlCisgICAgJSBccGFyc2tpcCBnbHVlIC0tIGxvZ2ljYWxseSBpdCdzIHBhcnQgb2YgdGhlIEBpdGVtIHdlIGp1c3Qgc3RhcnRlZC4KKyAgICBcbm9icmVhayBcdnNraXAtXHBhcnNraXAKKyAgICAlCisgICAgJSBTdG9wIGEgcGFnZSBicmVhayBhdCB0aGUgXHBhcnNraXAgZ2x1ZSBjb21pbmcgdXAuICBIb3dldmVyLCBpZgorICAgICUgd2hhdCBmb2xsb3dzIGlzIGFuIGVudmlyb25tZW50IHN1Y2ggYXMgQGV4YW1wbGUsIHRoZXJlIHdpbGwgYmUgbm8KKyAgICAlIFxwYXJza2lwIGdsdWU7IHRoZW4gdGhlIG5lZ2F0aXZlIHZza2lwIHdlIGp1c3QgaW5zZXJ0ZWQgd291bGQKKyAgICAlIGNhdXNlIHRoZSBleGFtcGxlIGFuZCB0aGUgaXRlbSB0byBjcmFzaCB0b2dldGhlci4gIFNvIHdlIHVzZSB0aGlzCisgICAgJSBiaXphcnJlIHZhbHVlIG9mIDEwMDAxIGFzIGEgc2lnbmFsIHRvIFxhYm92ZWVudmJyZWFrIHRvIGluc2VydAorICAgICUgXHBhcnNraXAgZ2x1ZSBhZnRlciBhbGwuICBTZWN0aW9uIHRpdGxlcyBhcmUgaGFuZGxlZCB0aGlzIHdheSBhbHNvLgorICAgICUgCisgICAgXHBlbmFsdHkgMTAwMDEKKyAgICBcZW5kZ3JvdXAKKyAgICBcaXRlbXhuZWVkc25lZ2F0aXZldnNraXBmYWxzZQorICBcZWxzZQorICAgICUgVGhlIGl0ZW0gdGV4dCBmaXRzIGludG8gdGhlIHNwYWNlLiAgU3RhcnQgYSBwYXJhZ3JhcGgsIHNvIHRoYXQgdGhlCisgICAgJSBmb2xsb3dpbmcgdGV4dCAoaWYgYW55KSB3aWxsIGVuZCB1cCBvbiB0aGUgc2FtZSBsaW5lLgorICAgIFxub2luZGVudAorICAgICUgRG8gdGhpcyB3aXRoIGtlcm5zIGFuZCBcdW5oYm94IHNvIHRoYXQgaWYgdGhlcmUgaXMgYSBmb290bm90ZSBpbgorICAgICUgdGhlIGl0ZW0gdGV4dCwgaXQgY2FuIG1pZ3JhdGUgdG8gdGhlIG1haW4gdmVydGljYWwgbGlzdCBhbmQKKyAgICAlIGV2ZW50dWFsbHkgYmUgcHJpbnRlZC4KKyAgICBcbm9icmVha1xrZXJuLVx0YWJsZWluZGVudAorICAgIFxkaW1lbjAgPSBcaXRlbW1heCAgXGFkdmFuY2VcZGltZW4wIGJ5IFxpdGVtbWFyZ2luIFxhZHZhbmNlXGRpbWVuMCBieSAtXHdkMAorICAgIFx1bmhib3gwCisgICAgXG5vYnJlYWtca2VyblxkaW1lbjAKKyAgICBcZW5kZ3JvdXAKKyAgICBcaXRlbXhuZWVkc25lZ2F0aXZldnNraXB0cnVlCisgIFxmaQorfQorCitcZGVmXGl0ZW17XGVycm1lc3NhZ2V7QGl0ZW0gd2hpbGUgbm90IGluIGEgbGlzdCBlbnZpcm9ubWVudH19CitcZGVmXGl0ZW14e1xlcnJtZXNzYWdle0BpdGVteCB3aGlsZSBub3QgaW4gYSBsaXN0IGVudmlyb25tZW50fX0KKworJSBAdGFibGUsIEBmdGFibGUsIEB2dGFibGUuCitcZW52ZGVmXHRhYmxleyUKKyAgXGxldFxpdGVtaW5kZXhcZ29iYmxlCisgIFx0YWJsZWNoZWNre3RhYmxlfSUKK30KK1xlbnZkZWZcZnRhYmxleyUKKyAgXGRlZlxpdGVtaW5kZXggIyMxe1xkb2luZCB7Zm59e1xjb2RleyMjMX19fSUKKyAgXHRhYmxlY2hlY2t7ZnRhYmxlfSUKK30KK1xlbnZkZWZcdnRhYmxleyUKKyAgXGRlZlxpdGVtaW5kZXggIyMxe1xkb2luZCB7dnJ9e1xjb2RleyMjMX19fSUKKyAgXHRhYmxlY2hlY2t7dnRhYmxlfSUKK30KK1xkZWZcdGFibGVjaGVjayMxeyUKKyAgXGlmbnVtIFx0aGVcY2F0Y29kZWBcXl5NPVxhY3RpdmUKKyAgICBcZW5kZ3JvdXAKKyAgICBcZXJybWVzc2FnZXtUaGlzIGNvbW1hbmQgd29uJ3Qgd29yayBpbiB0aGlzIGNvbnRleHQ7IHBlcmhhcHMgdGhlIHByb2JsZW0gaXMKKyAgICAgIHRoYXQgd2UgYXJlIFxpbmVudmlyb25tZW50XHRoaXNlbnZ9JQorICAgIFxkZWZcbmV4dHtcZG9pZ25vcmV7IzF9fSUKKyAgXGVsc2UKKyAgICBcbGV0XG5leHRcdGFibGV4CisgIFxmaQorICBcbmV4dAorfQorXGRlZlx0YWJsZXgjMXslCisgIFxkZWZcaXRlbWluZGljYXRleyMxfSUKKyAgXHBhcnNlYXJnXHRhYmxleQorfQorXGRlZlx0YWJsZXkjMXslCisgIHslCisgICAgXG1ha2V2YWx1ZWV4cGFuZGFibGUKKyAgICBcZWRlZlx0ZW1we1xub2V4cGFuZFx0YWJsZXogIzFcc3BhY2Vcc3BhY2Vcc3BhY2V9JQorICAgIFxleHBhbmRhZnRlcgorICB9XHRlbXAgXGVuZHRhYmxlegorfQorXGRlZlx0YWJsZXogIzEgIzIgIzMgIzRcZW5kdGFibGV6eyUKKyAgXGFib3ZlZW52YnJlYWsKKyAgXGlmbnVtIDAjMT4wIFxhZHZhbmNlIFxsZWZ0c2tpcCBieSAjMVxtaWwgXGZpCisgIFxpZm51bSAwIzI+MCBcdGFibGVpbmRlbnQ9IzJcbWlsIFxmaQorICBcaWZudW0gMCMzPjAgXGFkdmFuY2UgXHJpZ2h0c2tpcCBieSAjM1xtaWwgXGZpCisgIFxpdGVtbWF4PVx0YWJsZWluZGVudAorICBcYWR2YW5jZSBcaXRlbW1heCBieSAtXGl0ZW1tYXJnaW4KKyAgXGFkdmFuY2UgXGxlZnRza2lwIGJ5IFx0YWJsZWluZGVudAorICBcZXhkZW50YW1vdW50PVx0YWJsZWluZGVudAorICBccGFyaW5kZW50ID0gMHB0CisgIFxwYXJza2lwID0gXHNtYWxsc2tpcGFtb3VudAorICBcaWZkaW0gXHBhcnNraXA9MHB0IFxwYXJza2lwPTJwdCBcZmkKKyAgXGxldFxpdGVtID0gXGludGVybmFsQml0ZW0KKyAgXGxldFxpdGVteCA9IFxpbnRlcm5hbEJpdGVteAorfQorXGRlZlxFdGFibGV7XGVuZGdyYWZcYWZ0ZXJlbnZicmVha30KK1xsZXRcRWZ0YWJsZVxFdGFibGUKK1xsZXRcRXZ0YWJsZVxFdGFibGUKK1xsZXRcRWl0ZW1pemVcRXRhYmxlCitcbGV0XEVlbnVtZXJhdGVcRXRhYmxlCisKKyUgVGhpcyBpcyB0aGUgY291bnRlciB1c2VkIGJ5IEBlbnVtZXJhdGUsIHdoaWNoIGlzIHJlYWxseSBAaXRlbWl6ZQorCitcbmV3Y291bnQgXGl0ZW1ubworCitcZW52ZGVmXGl0ZW1pemV7XHBhcnNlYXJnXGRvaXRlbWl6ZX0KKworXGRlZlxkb2l0ZW1pemUjMXslCisgIFxhYm92ZWVudmJyZWFrCisgIFxpdGVtbWF4PVxpdGVtaW5kZW50CisgIFxhZHZhbmNlXGl0ZW1tYXggYnkgLVxpdGVtbWFyZ2luCisgIFxhZHZhbmNlXGxlZnRza2lwIGJ5IFxpdGVtaW5kZW50CisgIFxleGRlbnRhbW91bnQ9XGl0ZW1pbmRlbnQKKyAgXHBhcmluZGVudD0wcHQKKyAgXHBhcnNraXA9XHNtYWxsc2tpcGFtb3VudAorICBcaWZkaW1ccGFyc2tpcD0wcHQgXHBhcnNraXA9MnB0IFxmaQorICBcZGVmXGl0ZW1jb250ZW50c3sjMX0lCisgICUgQGl0ZW1pemUgd2l0aCBubyBhcmcgaXMgZXF1aXZhbGVudCB0byBAaXRlbWl6ZSBAYnVsbGV0LgorICBcaWZ4XGl0ZW1jb250ZW50c1xlbXB0eVxkZWZcaXRlbWNvbnRlbnRze1xidWxsZXR9XGZpCisgIFxsZXRcaXRlbT1caXRlbWl6ZWl0ZW0KK30KKworJSBEZWZpbml0aW9uIG9mIEBpdGVtIHdoaWxlIGluc2lkZSBAaXRlbWl6ZSBhbmQgQGVudW1lcmF0ZS4KKyUKK1xkZWZcaXRlbWl6ZWl0ZW17JQorICBcYWR2YW5jZVxpdGVtbm8gYnkgMSAgJSBmb3IgZW51bWVyYXRpb25zCisgIHtcbGV0XHBhcj1cZW5kZ3JhZiBcc21hbGxicmVha30lIHJlYXNvbmFibGUgcGxhY2UgdG8gYnJlYWsKKyAgeyUKKyAgICUgSWYgdGhlIGRvY3VtZW50IGhhcyBhbiBAaXRlbWl6ZSBkaXJlY3RseSBhZnRlciBhIHNlY3Rpb24gdGl0bGUsIGEKKyAgICUgXG5vYnJlYWsgd2lsbCBiZSBsYXN0IG9uIHRoZSBsaXN0LCBhbmQgXHNlY3Rpb25oZWFkaW5nIHdpbGwgaGF2ZQorICAgJSBkb25lIGEgXHZza2lwLVxwYXJza2lwLiAgSW4gdGhhdCBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIHplcm8KKyAgICUgcGFyc2tpcCwgb3IgdGhlIGl0ZW0gdGV4dCB3aWxsIGNyYXNoIHdpdGggdGhlIGhlYWRpbmcuICBPbiB0aGUKKyAgICUgb3RoZXIgaGFuZCwgd2hlbiB0aGVyZSBpcyBub3JtYWwgdGV4dCBwcmVjZWRpbmcgdGhlIGl0ZW0gKGFzIHRoZXJlCisgICAlIHVzdWFsbHkgaXMpLCB3ZSBkbyB3YW50IHRvIHplcm8gcGFyc2tpcCwgb3IgdGhlcmUgd291bGQgYmUgdG9vIG11Y2gKKyAgICUgc3BhY2UuICBJbiB0aGF0IGNhc2UsIHdlIHdvbid0IGhhdmUgYSBcbm9icmVhayBiZWZvcmUuICBBdCBsZWFzdAorICAgJSB0aGF0J3MgdGhlIHRoZW9yeS4KKyAgIFxpZm51bVxsYXN0cGVuYWx0eTwxMDAwMCBccGFyc2tpcD0waW4gXGZpCisgICBcbm9pbmRlbnQKKyAgIFxoYm94IHRvIDBwdHtcaHNzIFxpdGVtY29udGVudHMgXGtlcm5caXRlbW1hcmdpbn0lCisgICBcdmFkanVzdHtccGVuYWx0eSAxMjAwfX0lIG5vdCBnb29kIHRvIGJyZWFrIGFmdGVyIGZpcnN0IGxpbmUgb2YgaXRlbS4KKyAgXGZsdXNoY3IKK30KKworJSBcc3BsaXRvZmYgVE9LRU5TXGVuZG1hcmsgZGVmaW5lcyBcZmlyc3QgdG8gYmUgdGhlIGZpcnN0IHRva2VuIGluCislIFRPS0VOUywgYW5kIFxyZXN0IHRvIGJlIHRoZSByZW1haW5kZXIuCislCitcZGVmXHNwbGl0b2ZmIzEjMlxlbmRtYXJre1xkZWZcZmlyc3R7IzF9XGRlZlxyZXN0eyMyfX0lCisKKyUgQWxsb3cgYW4gb3B0aW9uYWwgYXJndW1lbnQgb2YgYW4gdXBwZXJjYXNlIGxldHRlciwgbG93ZXJjYXNlIGxldHRlciwKKyUgb3IgbnVtYmVyLCB0byBzcGVjaWZ5IHRoZSBmaXJzdCBsYWJlbCBpbiB0aGUgZW51bWVyYXRlZCBsaXN0LiAgTm8KKyUgYXJndW1lbnQgaXMgdGhlIHNhbWUgYXMgYDEnLgorJQorXGVudnBhcnNlYXJnZGVmXGVudW1lcmF0ZXtcZW51bWVyYXRleSAjMSAgXGVuZGVudW1lcmF0ZXl9CitcZGVmXGVudW1lcmF0ZXkgIzEgIzJcZW5kZW51bWVyYXRleXslCisgICUgSWYgd2Ugd2VyZSBnaXZlbiBubyBhcmd1bWVudCwgcHJldGVuZCB3ZSB3ZXJlIGdpdmVuIGAxJy4KKyAgXGRlZlx0aGVhcmd7IzF9JQorICBcaWZ4XHRoZWFyZ1xlbXB0eSBcZGVmXHRoZWFyZ3sxfVxmaQorICAlCisgICUgRGV0ZWN0IGlmIHRoZSBhcmd1bWVudCBpcyBhIHNpbmdsZSB0b2tlbi4gIElmIHNvLCBpdCBtaWdodCBiZSBhCisgICUgbGV0dGVyLiAgT3RoZXJ3aXNlLCB0aGUgb25seSB2YWxpZCB0aGluZyBpdCBjYW4gYmUgaXMgYSBudW1iZXIuCisgICUgKFdlIHdpbGwgYWx3YXlzIGhhdmUgb25lIHRva2VuLCBiZWNhdXNlIG9mIHRoZSB0ZXN0IHdlIGp1c3QgbWFkZS4KKyAgJSBUaGlzIGlzIGEgZ29vZCB0aGluZywgc2luY2UgXHNwbGl0b2ZmIGRvZXNuJ3Qgd29yayBnaXZlbiBub3RoaW5nIGF0CisgICUgYWxsIC0tIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdW5kZWxpbWl0ZWQuKQorICBcZXhwYW5kYWZ0ZXJcc3BsaXRvZmZcdGhlYXJnXGVuZG1hcmsKKyAgXGlmeFxyZXN0XGVtcHR5CisgICAgJSBPbmx5IG9uZSB0b2tlbiBpbiB0aGUgYXJndW1lbnQuICBJdCBjb3VsZCBzdGlsbCBiZSBhbnl0aGluZy4KKyAgICAlIEEgYGBsb3dlcmNhc2UgbGV0dGVyJycgaXMgb25lIHdob3NlIFxsY2NvZGUgaXMgbm9uemVyby4KKyAgICAlIEFuIGBgdXBwZXJjYXNlIGxldHRlcicnIGlzIG9uZSB3aG9zZSBcbGNjb2RlIGlzIGJvdGggbm9uemVybywgYW5kCisgICAgJSAgIG5vdCBlcXVhbCB0byBpdHNlbGYuCisgICAgJSBPdGhlcndpc2UsIHdlIGFzc3VtZSBpdCdzIGEgbnVtYmVyLgorICAgICUKKyAgICAlIFdlIG5lZWQgdGhlIFxyZWxheCBhdCB0aGUgZW5kIG9mIHRoZSBcaWZudW0gbGluZXMgdG8gc3RvcCBUZVggZnJvbQorICAgICUgY29udGludWluZyB0byBsb29rIGZvciBhIDxudW1iZXI+LgorICAgICUKKyAgICBcaWZudW1cbGNjb2RlXGV4cGFuZGFmdGVyYFx0aGVhcmc9MFxyZWxheAorICAgICAgXG51bWVyaWNlbnVtZXJhdGUgJSBhIG51bWJlciAod2UgaG9wZSkKKyAgICBcZWxzZQorICAgICAgJSBJdCdzIGEgbGV0dGVyLgorICAgICAgXGlmbnVtXGxjY29kZVxleHBhbmRhZnRlcmBcdGhlYXJnPVxleHBhbmRhZnRlcmBcdGhlYXJnXHJlbGF4CisgICAgICAgIFxsb3dlcmNhc2VlbnVtZXJhdGUgJSBsb3dlcmNhc2UgbGV0dGVyCisgICAgICBcZWxzZQorICAgICAgICBcdXBwZXJjYXNlZW51bWVyYXRlICUgdXBwZXJjYXNlIGxldHRlcgorICAgICAgXGZpCisgICAgXGZpCisgIFxlbHNlCisgICAgJSBNdWx0aXBsZSB0b2tlbnMgaW4gdGhlIGFyZ3VtZW50LiAgV2UgaG9wZSBpdCdzIGEgbnVtYmVyLgorICAgIFxudW1lcmljZW51bWVyYXRlCisgIFxmaQorfQorCislIEFuIEBlbnVtZXJhdGUgd2hvc2UgbGFiZWxzIGFyZSBpbnRlZ2Vycy4gIFRoZSBzdGFydGluZyBpbnRlZ2VyIGlzCislIGdpdmVuIGluIFx0aGVhcmcuCislCitcZGVmXG51bWVyaWNlbnVtZXJhdGV7JQorICBcaXRlbW5vID0gXHRoZWFyZworICBcc3RhcnRlbnVtZXJhdGlvbntcdGhlXGl0ZW1ub30lCit9CisKKyUgVGhlIHN0YXJ0aW5nIChsb3dlcmNhc2UpIGxldHRlciBpcyBpbiBcdGhlYXJnLgorXGRlZlxsb3dlcmNhc2VlbnVtZXJhdGV7JQorICBcaXRlbW5vID0gXGV4cGFuZGFmdGVyYFx0aGVhcmcKKyAgXHN0YXJ0ZW51bWVyYXRpb257JQorICAgICUgQmUgc3VyZSB3ZSdyZSBub3QgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGFscGhhYmV0LgorICAgIFxpZm51bVxpdGVtbm89MAorICAgICAgXGVycm1lc3NhZ2V7Tm8gbW9yZSBsb3dlcmNhc2UgbGV0dGVycyBpbiBAZW51bWVyYXRlOyBnZXQgYSBiaWdnZXIKKyAgICAgICAgICAgICAgICAgIGFscGhhYmV0fSUKKyAgICBcZmkKKyAgICBcY2hhclxsY2NvZGVcaXRlbW5vCisgIH0lCit9CisKKyUgVGhlIHN0YXJ0aW5nICh1cHBlcmNhc2UpIGxldHRlciBpcyBpbiBcdGhlYXJnLgorXGRlZlx1cHBlcmNhc2VlbnVtZXJhdGV7JQorICBcaXRlbW5vID0gXGV4cGFuZGFmdGVyYFx0aGVhcmcKKyAgXHN0YXJ0ZW51bWVyYXRpb257JQorICAgICUgQmUgc3VyZSB3ZSdyZSBub3QgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGFscGhhYmV0LgorICAgIFxpZm51bVxpdGVtbm89MAorICAgICAgXGVycm1lc3NhZ2V7Tm8gbW9yZSB1cHBlcmNhc2UgbGV0dGVycyBpbiBAZW51bWVyYXRlOyBnZXQgYSBiaWdnZXIKKyAgICAgICAgICAgICAgICAgIGFscGhhYmV0fQorICAgIFxmaQorICAgIFxjaGFyXHVjY29kZVxpdGVtbm8KKyAgfSUKK30KKworJSBDYWxsIFxkb2l0ZW1pemUsIGFkZGluZyBhIHBlcmlvZCB0byB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHN1cHBseWluZyB0aGUKKyUgY29tbW9uIGxhc3QgdHdvIGFyZ3VtZW50cy4gIEFsc28gc3VidHJhY3Qgb25lIGZyb20gdGhlIGluaXRpYWwgdmFsdWUgaW4KKyUgXGl0ZW1ubywgc2luY2UgQGl0ZW0gaW5jcmVtZW50cyBcaXRlbW5vLgorJQorXGRlZlxzdGFydGVudW1lcmF0aW9uIzF7JQorICBcYWR2YW5jZVxpdGVtbm8gYnkgLTEKKyAgXGRvaXRlbWl6ZXsjMS59XGZsdXNoY3IKK30KKworJSBAYWxwaGFlbnVtZXJhdGUgYW5kIEBjYXBzZW51bWVyYXRlIGFyZSBhYmJyZXZpYXRpb25zIGZvciBnaXZpbmcgYW4gYXJnCislIHRvIEBlbnVtZXJhdGUuCislCitcZGVmXGFscGhhZW51bWVyYXRle1xlbnVtZXJhdGV7YX19CitcZGVmXGNhcHNlbnVtZXJhdGV7XGVudW1lcmF0ZXtBfX0KK1xkZWZcRWFscGhhZW51bWVyYXRle1xFZW51bWVyYXRlfQorXGRlZlxFY2Fwc2VudW1lcmF0ZXtcRWVudW1lcmF0ZX0KKworCislIEBtdWx0aXRhYmxlIG1hY3JvcworJSBBbXkgSGVuZHJpY2tzb24sIDgvMTgvOTQsIDMvNi85NgorJQorJSBAbXVsdGl0YWJsZSAuLi4gQGVuZCBtdWx0aXRhYmxlIHdpbGwgbWFrZSBhcyBtYW55IGNvbHVtbnMgYXMgZGVzaXJlZC4KKyUgQ29udGVudHMgb2YgZWFjaCBjb2x1bW4gd2lsbCB3cmFwIGF0IHdpZHRoIGdpdmVuIGluIHByZWFtYmxlLiAgV2lkdGgKKyUgY2FuIGJlIHNwZWNpZmllZCBlaXRoZXIgd2l0aCBzYW1wbGUgdGV4dCBnaXZlbiBpbiBhIHRlbXBsYXRlIGxpbmUsCislIG9yIGluIHBlcmNlbnQgb2YgXGhzaXplLCB0aGUgY3VycmVudCB3aWR0aCBvZiB0ZXh0IG9uIHBhZ2UuCisKKyUgVGFibGUgY2FuIGNvbnRpbnVlIG92ZXIgcGFnZXMgYnV0IHdpbGwgb25seSBicmVhayBiZXR3ZWVuIGxpbmVzLgorCislIFRvIG1ha2UgcHJlYW1ibGU6CislCislIEVpdGhlciBkZWZpbmUgd2lkdGhzIG9mIGNvbHVtbnMgaW4gdGVybXMgb2YgcGVyY2VudCBvZiBcaHNpemU6CislICAgQG11bHRpdGFibGUgQGNvbHVtbmZyYWN0aW9ucyAuMjUgLjMgLjQ1CislICAgQGl0ZW0gLi4uCislCislICAgTnVtYmVycyBmb2xsb3dpbmcgQGNvbHVtbmZyYWN0aW9ucyBhcmUgdGhlIHBlcmNlbnQgb2YgdGhlIHRvdGFsCislICAgY3VycmVudCBoc2l6ZSB0byBiZSB1c2VkIGZvciBlYWNoIGNvbHVtbi4gWW91IG1heSB1c2UgYXMgbWFueQorJSAgIGNvbHVtbnMgYXMgZGVzaXJlZC4KKworCislIE9yIHVzZSBhIHRlbXBsYXRlOgorJSAgIEBtdWx0aXRhYmxlIHtDb2x1bW4gMSB0ZW1wbGF0ZX0ge0NvbHVtbiAyIHRlbXBsYXRlfSB7Q29sdW1uIDMgdGVtcGxhdGV9CislICAgQGl0ZW0gLi4uCislICAgdXNpbmcgdGhlIHdpZGVzdCB0ZXJtIGRlc2lyZWQgaW4gZWFjaCBjb2x1bW4uCisKKyUgRWFjaCBuZXcgdGFibGUgbGluZSBzdGFydHMgd2l0aCBAaXRlbSwgZWFjaCBzdWJzZXF1ZW50IG5ldyBjb2x1bW4KKyUgc3RhcnRzIHdpdGggQHRhYi4gRW1wdHkgY29sdW1ucyBtYXkgYmUgcHJvZHVjZWQgYnkgc3VwcGx5aW5nIEB0YWIncworJSB3aXRoIG5vdGhpbmcgYmV0d2VlbiB0aGVtIGZvciBhcyBtYW55IHRpbWVzIGFzIGVtcHR5IGNvbHVtbnMgYXJlIG5lZWRlZCwKKyUgaWUsIEB0YWJAdGFiQHRhYiB3aWxsIHByb2R1Y2UgdHdvIGVtcHR5IGNvbHVtbnMuCisKKyUgQGl0ZW0sIEB0YWIgZG8gbm90IG5lZWQgdG8gYmUgb24gdGhlaXIgb3duIGxpbmVzLCBidXQgaXQgd2lsbCBub3QgaHVydAorJSBpZiB0aGV5IGFyZS4KKworJSBTYW1wbGUgbXVsdGl0YWJsZToKKworJSAgIEBtdWx0aXRhYmxlIHtDb2x1bW4gMSB0ZW1wbGF0ZX0ge0NvbHVtbiAyIHRlbXBsYXRlfSB7Q29sdW1uIDMgdGVtcGxhdGV9CislICAgQGl0ZW0gZmlyc3QgY29sIHN0dWZmIEB0YWIgc2Vjb25kIGNvbCBzdHVmZiBAdGFiIHRoaXJkIGNvbAorJSAgIEBpdGVtCislICAgZmlyc3QgY29sIHN0dWZmCislICAgQHRhYgorJSAgIHNlY29uZCBjb2wgc3R1ZmYKKyUgICBAdGFiCislICAgdGhpcmQgY29sCislICAgQGl0ZW0gZmlyc3QgY29sIHN0dWZmIEB0YWIgc2Vjb25kIGNvbCBzdHVmZgorJSAgIEB0YWIgTWFueSBwYXJhZ3JhcGhzIG9mIHRleHQgbWF5IGJlIHVzZWQgaW4gYW55IGNvbHVtbi4KKyUKKyUgICAgICAgICBUaGV5IHdpbGwgd3JhcCBhdCB0aGUgd2lkdGggZGV0ZXJtaW5lZCBieSB0aGUgdGVtcGxhdGUuCislICAgQGl0ZW1AdGFiQHRhYiBUaGlzIHdpbGwgYmUgaW4gdGhpcmQgY29sdW1uLgorJSAgIEBlbmQgbXVsdGl0YWJsZQorCislIERlZmF1bHQgZGltZW5zaW9ucyBtYXkgYmUgcmVzZXQgYnkgdXNlci4KKyUgQG11bHRpdGFibGVwYXJza2lwIGlzIHZlcnRpY2FsIHNwYWNlIGJldHdlZW4gcGFyYWdyYXBocyBpbiB0YWJsZS4KKyUgQG11bHRpdGFibGVwYXJpbmRlbnQgaXMgcGFyYWdyYXBoIGluZGVudCBpbiB0YWJsZS4KKyUgQG11bHRpdGFibGVjb2xtYXJnaW4gaXMgaG9yaXpvbnRhbCBzcGFjZSB0byBiZSBsZWZ0IGJldHdlZW4gY29sdW1ucy4KKyUgQG11bHRpdGFibGVsaW5lc3BhY2UgaXMgc3BhY2UgdG8gbGVhdmUgYmV0d2VlbiB0YWJsZSBpdGVtcywgYmFzZWxpbmUKKyUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBiYXNlbGluZS4KKyUgICAwcHQgbWVhbnMgaXQgZGVwZW5kcyBvbiBjdXJyZW50IG5vcm1hbCBsaW5lIHNwYWNpbmcuCislCitcbmV3c2tpcFxtdWx0aXRhYmxlcGFyc2tpcAorXG5ld3NraXBcbXVsdGl0YWJsZXBhcmluZGVudAorXG5ld2RpbWVuXG11bHRpdGFibGVjb2xzcGFjZQorXG5ld3NraXBcbXVsdGl0YWJsZWxpbmVzcGFjZQorXG11bHRpdGFibGVwYXJza2lwPTBwdAorXG11bHRpdGFibGVwYXJpbmRlbnQ9NnB0CitcbXVsdGl0YWJsZWNvbHNwYWNlPTEycHQKK1xtdWx0aXRhYmxlbGluZXNwYWNlPTBwdAorCislIE1hY3JvcyB1c2VkIHRvIHNldCB1cCBoYWxpZ24gcHJlYW1ibGU6CislCitcbGV0XGVuZHNldHVwdGFibGVccmVsYXgKK1xkZWZceGVuZHNldHVwdGFibGV7XGVuZHNldHVwdGFibGV9CitcbGV0XGNvbHVtbmZyYWN0aW9uc1xyZWxheAorXGRlZlx4Y29sdW1uZnJhY3Rpb25ze1xjb2x1bW5mcmFjdGlvbnN9CitcbmV3aWZcaWZzZXRwZXJjZW50CisKKyUgIzEgaXMgdGhlIEBjb2x1bW5mcmFjdGlvbiwgdXN1YWxseSBhIGRlY2ltYWwgbnVtYmVyIGxpa2UgLjUsIGJ1dCBtaWdodAorJSBiZSBqdXN0IDEuICBXZSBqdXN0IHVzZSBpdCwgd2hhdGV2ZXIgaXQgaXMuCislCitcZGVmXHBpY2t1cHdob2xlZnJhY3Rpb24jMSB7JQorICBcZ2xvYmFsXGFkdmFuY2VcY29sY291bnQgYnkgMQorICBcZXhwYW5kYWZ0ZXJceGRlZlxjc25hbWUgY29sXHRoZVxjb2xjb3VudFxlbmRjc25hbWV7IzFcaHNpemV9JQorICBcc2V0dXB0YWJsZQorfQorCitcbmV3Y291bnRcY29sY291bnQKK1xkZWZcc2V0dXB0YWJsZSMxeyUKKyAgXGRlZlxmaXJzdGFyZ3sjMX0lCisgIFxpZnhcZmlyc3RhcmdceGVuZHNldHVwdGFibGUKKyAgICBcbGV0XGdvID0gXHJlbGF4CisgIFxlbHNlCisgICAgXGlmeFxmaXJzdGFyZ1x4Y29sdW1uZnJhY3Rpb25zCisgICAgICBcZ2xvYmFsXHNldHBlcmNlbnR0cnVlCisgICAgXGVsc2UKKyAgICAgIFxpZnNldHBlcmNlbnQKKyAgICAgICAgIFxsZXRcZ29ccGlja3Vwd2hvbGVmcmFjdGlvbgorICAgICAgXGVsc2UKKyAgICAgICAgIFxnbG9iYWxcYWR2YW5jZVxjb2xjb3VudCBieSAxCisgICAgICAgICBcc2V0Ym94MD1caGJveHsjMVx1bnNraXBcc3BhY2V9JSBBZGQgYSBub3JtYWwgd29yZCBzcGFjZSBhcyBhCisgICAgICAgICAgICAgICAgICAgJSBzZXBhcmF0b3I7IHR5cGljYWxseSB0aGF0IGlzIGFsd2F5cyBpbiB0aGUgaW5wdXQsIGFueXdheS4KKyAgICAgICAgIFxleHBhbmRhZnRlclx4ZGVmXGNzbmFtZSBjb2xcdGhlXGNvbGNvdW50XGVuZGNzbmFtZXtcdGhlXHdkMH0lCisgICAgICBcZmkKKyAgICBcZmkKKyAgICBcaWZ4XGdvXHBpY2t1cHdob2xlZnJhY3Rpb24KKyAgICAgICUgUHV0IHRoZSBhcmd1bWVudCBiYWNrIGZvciB0aGUgXHBpY2t1cHdob2xlZnJhY3Rpb24gY2FsbCwgc28KKyAgICAgICUgd2UnbGwgYWx3YXlzIGhhdmUgYSBwZXJpb2QgdGhlcmUgdG8gYmUgcGFyc2VkLgorICAgICAgXGRlZlxnb3tccGlja3Vwd2hvbGVmcmFjdGlvbiMxfSUKKyAgICBcZWxzZQorICAgICAgXGxldFxnbyA9IFxzZXR1cHRhYmxlCisgICAgXGZpJQorICBcZmkKKyAgXGdvCit9CisKKyUgbXVsdGl0YWJsZS1vbmx5IGNvbW1hbmRzLgorJQorJSBAaGVhZGl0ZW0gc3RhcnRzIGEgaGVhZGluZyByb3csIHdoaWNoIHdlIHR5cGVzZXQgaW4gYm9sZC4KKyUgQXNzaWdubWVudHMgaGF2ZSB0byBiZSBnbG9iYWwgc2luY2Ugd2UgYXJlIGluc2lkZSB0aGUgaW1wbGljaXQgZ3JvdXAKKyUgb2YgYW4gYWxpZ25tZW50IGVudHJ5LiAgTm90ZSB0aGF0IFxldmVyeWNyIHJlc2V0cyBcZXZlcnl0YWIuCitcZGVmXGhlYWRpdGVte1xjaGVja2VudlxtdWx0aXRhYmxlIFxjcmNyIFxnbG9iYWxcZXZlcnl0YWI9e1xiZn1cdGhlXGV2ZXJ5dGFifSUKKyUKKyUgQSBcdGFiIHVzZWQgdG8gaW5jbHVkZSBcaHNraXAxc3AuICBCdXQgdGhlbiB0aGUgc3BhY2UgaW4gYSB0ZW1wbGF0ZQorJSBsaW5lIGlzIG5vdCBlbm91Z2guICBUaGF0IGlzIGJhZC4gIFNvIGxldCdzIGdvIGJhY2sgdG8ganVzdCBgJicgdW50aWwKKyUgd2UgZW5jb3VudGVyIHRoZSBwcm9ibGVtIGl0IHdhcyBpbnRlbmRlZCB0byBzb2x2ZSBhZ2Fpbi4KKyUJCQkJCS0ta2FybCwgbmF0aGFuQGFjbS5vcmcsIDIwYXByOTkuCitcZGVmXHRhYntcY2hlY2tlbnZcbXVsdGl0YWJsZSAmXHRoZVxldmVyeXRhYn0lCisKKyUgQG11bHRpdGFibGUgLi4uIEBlbmQgbXVsdGl0YWJsZSBkZWZpbml0aW9uczoKKyUKK1xuZXd0b2tzXGV2ZXJ5dGFiICAlIGluc2VydCBhZnRlciBldmVyeSB0YWIuCislCitcZW52ZGVmXG11bHRpdGFibGV7JQorICBcdnNraXBccGFyc2tpcAorICBcc3RhcnRzYXZpbmdpbnNlcnRzCisgICUKKyAgJSBAaXRlbSB3aXRoaW4gYSBtdWx0aXRhYmxlIHN0YXJ0cyBhIG5vcm1hbCByb3cuCisgICUgV2UgdXNlIFxkZWYgaW5zdGVhZCBvZiBcbGV0IHNvIHRoYXQgaWYgb25lIG9mIHRoZSBtdWx0aXRhYmxlIGVudHJpZXMKKyAgJSBjb250YWlucyBhbiBAaXRlbWl6ZSwgd2UgZG9uJ3QgY2hva2Ugb24gdGhlIFxpdGVtIChzZWVuIGFzIFxjcmNyIGFrYQorICAlIFxlbmR0ZW1wbGF0ZSkgZXhwYW5kaW5nIFxkb2l0ZW1pemUuCisgIFxkZWZcaXRlbXtcY3Jjcn0lCisgICUKKyAgXHRvbGVyYW5jZT05NTAwCisgIFxoYmFkbmVzcz05NTAwCisgIFxzZXRtdWx0aXRhYmxlc3BhY2luZworICBccGFyc2tpcD1cbXVsdGl0YWJsZXBhcnNraXAKKyAgXHBhcmluZGVudD1cbXVsdGl0YWJsZXBhcmluZGVudAorICBcb3ZlcmZ1bGxydWxlPTBwdAorICBcZ2xvYmFsXGNvbGNvdW50PTAKKyAgJQorICBcZXZlcnljciA9IHslCisgICAgXG5vYWxpZ257JQorICAgICAgXGdsb2JhbFxldmVyeXRhYj17fSUKKyAgICAgIFxnbG9iYWxcY29sY291bnQ9MCAlIFJlc2V0IHRoZSBjb2x1bW4gY291bnRlci4KKyAgICAgICUgQ2hlY2sgZm9yIHNhdmVkIGZvb3Rub3RlcywgZXRjLgorICAgICAgXGNoZWNraW5zZXJ0cworICAgICAgJSBLZWVwcyB1bmRlcmZ1bGwgYm94IG1lc3NhZ2VzIG9mZiB3aGVuIHRhYmxlIGJyZWFrcyBvdmVyIHBhZ2VzLgorICAgICAgJVxmaWxicmVhaworCSUgTWF5YmUgc28sIGJ1dCBpdCBhbHNvIGNyZWF0ZXMgcmVhbGx5IHdlaXJkIHBhZ2UgYnJlYWtzIHdoZW4gdGhlCisJJSB0YWJsZSBicmVha3Mgb3ZlciBwYWdlcy4gV291bGRuJ3QgXHZmaWwgYmUgYmV0dGVyPyAgV2FpdCB1bnRpbCB0aGUKKwklIHByb2JsZW0gbWFuaWZlc3RzIGl0c2VsZiwgc28gaXQgY2FuIGJlIGZpeGVkIGZvciByZWFsIC0ta2FybC4KKyAgICB9JQorICB9JQorICAlCisgIFxwYXJzZWFyZ1xkb211bHRpdGFibGUKK30KK1xkZWZcZG9tdWx0aXRhYmxlIzF7JQorICAlIFRvIHBhcnNlIGV2ZXJ5dGhpbmcgYmV0d2VlbiBAbXVsdGl0YWJsZSBhbmQgQGl0ZW06CisgIFxzZXR1cHRhYmxlIzEgXGVuZHNldHVwdGFibGUKKyAgJQorICAlIFRoaXMgcHJlYW1ibGUgc2V0cyB1cCBhIGdlbmVyaWMgY29sdW1uIGRlZmluaXRpb24sIHdoaWNoIHdpbGwKKyAgJSBiZSB1c2VkIGFzIG1hbnkgdGltZXMgYXMgdXNlciBjYWxscyBmb3IgY29sdW1ucy4KKyAgJSBcdnRvcCB3aWxsIHNldCBhIHNpbmdsZSBsaW5lIGFuZCB3aWxsIGFsc28gbGV0IHRleHQgd3JhcCBhbmQKKyAgJSBjb250aW51ZSBmb3IgbWFueSBwYXJhZ3JhcGhzIGlmIGRlc2lyZWQuCisgIFxoYWxpZ25cYmdyb3VwICYlCisgICAgXGdsb2JhbFxhZHZhbmNlXGNvbGNvdW50IGJ5IDEKKyAgICBcbXVsdGlzdHJ1dAorICAgIFx2dG9weyUKKyAgICAgICUgVXNlIHRoZSBjdXJyZW50IFxjb2xjb3VudCB0byBmaW5kIHRoZSBjb3JyZWN0IGNvbHVtbiB3aWR0aDoKKyAgICAgIFxoc2l6ZT1cZXhwYW5kYWZ0ZXJcY3NuYW1lIGNvbFx0aGVcY29sY291bnRcZW5kY3NuYW1lCisgICAgICAlCisgICAgICAlIEluIG9yZGVyIHRvIGtlZXAgZW50cmllcyBmcm9tIGJ1bXBpbmcgaW50byBlYWNoIG90aGVyCisgICAgICAlIHdlIHdpbGwgYWRkIGEgXGxlZnRza2lwIG9mIFxtdWx0aXRhYmxlY29sc3BhY2UgdG8gYWxsIGNvbHVtbnMgYWZ0ZXIKKyAgICAgICUgdGhlIGZpcnN0IG9uZS4KKyAgICAgICUKKyAgICAgICUgSWYgYSB0ZW1wbGF0ZSBoYXMgYmVlbiB1c2VkLCB3ZSB3aWxsIGFkZCBcbXVsdGl0YWJsZWNvbHNwYWNlCisgICAgICAlIHRvIHRoZSB3aWR0aCBvZiBlYWNoIHRlbXBsYXRlIGVudHJ5LgorICAgICAgJQorICAgICAgJSBJZiB0aGUgdXNlciBoYXMgc2V0IHByZWFtYmxlIGluIHRlcm1zIG9mIHBlcmNlbnQgb2YgXGhzaXplIHdlIHdpbGwKKyAgICAgICUgdXNlIHRoYXQgZGltZW5zaW9uIGFzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uLCBhbmQgdGhlIFxsZWZ0c2tpcAorICAgICAgJSB3aWxsIGtlZXAgZW50cmllcyBmcm9tIGJ1bXBpbmcgaW50byBlYWNoIG90aGVyLiAgVGFibGUgd2lsbCBzdGFydCBhdAorICAgICAgJSBsZWZ0IG1hcmdpbiBhbmQgZmluYWwgY29sdW1uIHdpbGwganVzdGlmeSBhdCByaWdodCBtYXJnaW4uCisgICAgICAlCisgICAgICAlIE1ha2Ugc3VyZSB3ZSBkb24ndCBpbmhlcml0IFxyaWdodHNraXAgZnJvbSB0aGUgb3V0ZXIgZW52aXJvbm1lbnQuCisgICAgICBccmlnaHRza2lwPTBwdAorICAgICAgXGlmbnVtXGNvbGNvdW50PTEKKwklIFRoZSBmaXJzdCBjb2x1bW4gd2lsbCBiZSBpbmRlbnRlZCB3aXRoIHRoZSBzdXJyb3VuZGluZyB0ZXh0LgorCVxhZHZhbmNlXGhzaXplIGJ5XGxlZnRza2lwCisgICAgICBcZWxzZQorCVxpZnNldHBlcmNlbnQgXGVsc2UKKwkgICUgSWYgdXNlciBoYXMgbm90IHNldCBwcmVhbWJsZSBpbiB0ZXJtcyBvZiBwZXJjZW50IG9mIFxoc2l6ZQorCSAgJSB3ZSB3aWxsIGFkdmFuY2UgXGhzaXplIGJ5IFxtdWx0aXRhYmxlY29sc3BhY2UuCisJICBcYWR2YW5jZVxoc2l6ZSBieSBcbXVsdGl0YWJsZWNvbHNwYWNlCisJXGZpCisgICAgICAgJSBJbiBlaXRoZXIgY2FzZSB3ZSB3aWxsIG1ha2UgXGxlZnRza2lwPVxtdWx0aXRhYmxlY29sc3BhY2U6CisgICAgICBcbGVmdHNraXA9XG11bHRpdGFibGVjb2xzcGFjZQorICAgICAgXGZpCisgICAgICAlIElnbm9yaW5nIHNwYWNlIGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBhdm9pZHMgYW4gb2NjYXNpb25hbCBzcHVyaW91cworICAgICAgJSBibGFuayBsaW5lLCB3aGVuIFRlWCBkZWNpZGVzIHRvIGJyZWFrIHRoZSBsaW5lIGF0IHRoZSBzcGFjZSBiZWZvcmUgdGhlCisgICAgICAlIGJveCBmcm9tIHRoZSBtdWx0aXN0cnV0LCBzbyB0aGUgc3RydXQgZW5kcyB1cCBvbiBhIGxpbmUgYnkgaXRzZWxmLgorICAgICAgJSBGb3IgZXhhbXBsZToKKyAgICAgICUgQG11bHRpdGFibGUgQGNvbHVtbmZyYWN0aW9ucyAuMTEgLjg5CisgICAgICAlIEBpdGVtIEBjb2RleyN9CisgICAgICAlIEB0YWIgTGVnYWwgaG9saWRheSB3aGljaCBpcyB2YWxpZCBpbiBtYWpvciBwYXJ0cyBvZiB0aGUgd2hvbGUgY291bnRyeS4KKyAgICAgICUgSXMgYXV0b21hdGljYWxseSBwcm92aWRlZCB3aXRoIGhpZ2hsaWdodGluZyBzZXF1ZW5jZXMgcmVzcGVjdGl2ZWx5CisgICAgICAlIG1hcmtpbmcgY2hhcmFjdGVycy4KKyAgICAgIFxub2luZGVudFxpZ25vcmVzcGFjZXMjI1x1bnNraXBcbXVsdGlzdHJ1dAorICAgIH1cY3IKK30KK1xkZWZcRW11bHRpdGFibGV7JQorICBcY3JjcgorICBcZWdyb3VwICUgZW5kIHRoZSBcaGFsaWduCisgIFxnbG9iYWxcc2V0cGVyY2VudGZhbHNlCit9CisKK1xkZWZcc2V0bXVsdGl0YWJsZXNwYWNpbmd7JQorICBcZGVmXG11bHRpc3RydXR7XHN0cnV0fSUganVzdCB1c2UgdGhlIHN0YW5kYXJkIGxpbmUgc3BhY2luZworICAlCisgICUgQ29tcHV0ZSBcbXVsdGl0YWJsZWxpbmVzcGFjZSAoaWYgbm90IGRlZmluZWQgYnkgdXNlcikgZm9yIHVzZSBpbgorICAlIFxtdWx0aXRhYmxlcGFyc2tpcCBjYWxjdWxhdGlvbi4gIFdlIHVzZWQgZGVmaW5lIFxtdWx0aXN0cnV0IGJhc2VkIG9uCisgICUgdGhpcywgYnV0IChpcm9uaWNhbGx5KSB0aGF0IGNhdXNlZCB0aGUgc3BhY2luZyB0byBiZSBvZmYuCisgICUgU2VlIGJ1Zy10ZXhpbmZvIHJlcG9ydCBmcm9tIFdlcm5lciBMZW1iZXJnLCAzMSBPY3QgMjAwNCAxMjo1MjoyMCArMDEwMC4KK1xpZmRpbVxtdWx0aXRhYmxlbGluZXNwYWNlPTBwdAorXHNldGJveDA9XHZib3h7WH1cZ2xvYmFsXG11bHRpdGFibGVsaW5lc3BhY2U9XHRoZVxiYXNlbGluZXNraXAKK1xnbG9iYWxcYWR2YW5jZVxtdWx0aXRhYmxlbGluZXNwYWNlIGJ5LVxodDAKK1xmaQorJSUgVGVzdCB0byBzZWUgaWYgcGFyc2tpcCBpcyBsYXJnZXIgdGhhbiBzcGFjZSBiZXR3ZWVuIGxpbmVzIG9mCislJSB0YWJsZS4gSWYgbm90LCBkbyBub3RoaW5nLgorJSUgICAgICAgIElmIHNvLCBzZXQgdG8gc2FtZSBkaW1lbnNpb24gYXMgbXVsdGl0YWJsZWxpbmVzcGFjZS4KK1xpZmRpbVxtdWx0aXRhYmxlcGFyc2tpcD5cbXVsdGl0YWJsZWxpbmVzcGFjZQorXGdsb2JhbFxtdWx0aXRhYmxlcGFyc2tpcD1cbXVsdGl0YWJsZWxpbmVzcGFjZQorXGdsb2JhbFxhZHZhbmNlXG11bHRpdGFibGVwYXJza2lwLTdwdCAlJSB0byBrZWVwIHBhcnNraXAgc29tZXdoYXQgc21hbGxlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlJSB0aGFuIHNraXAgYmV0d2VlbiBsaW5lcyBpbiB0aGUgdGFibGUuCitcZmklCitcaWZkaW1cbXVsdGl0YWJsZXBhcnNraXA9MHB0CitcZ2xvYmFsXG11bHRpdGFibGVwYXJza2lwPVxtdWx0aXRhYmxlbGluZXNwYWNlCitcZ2xvYmFsXGFkdmFuY2VcbXVsdGl0YWJsZXBhcnNraXAtN3B0ICUlIHRvIGtlZXAgcGFyc2tpcCBzb21ld2hhdCBzbWFsbGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUlIHRoYW4gc2tpcCBiZXR3ZWVuIGxpbmVzIGluIHRoZSB0YWJsZS4KK1xmaX0KKworCitcbWVzc2FnZXtjb25kaXRpb25hbHMsfQorCislIEBpZnRleCwgQGlmbm90ZG9jYm9vaywgQGlmbm90aHRtbCwgQGlmbm90aW5mbywgQGlmbm90cGxhaW50ZXh0LAorJSBAaWZub3R4bWwgYWx3YXlzIHN1Y2NlZWQuICBUaGV5IGN1cnJlbnRseSBkbyBub3RoaW5nOyB3ZSBkb24ndAorJSBhdHRlbXB0IHRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbmRpdGlvbmFscyBhcmUgcHJvcGVybHkgbmVzdGVkLiAgQnV0IHdlCislIGhhdmUgdG8gcmVtZW1iZXIgdGhhdCB0aGV5IGFyZSBjb25kaXRpb25hbHMsIHNvIHRoYXQgQGVuZCBkb2Vzbid0CislIGF0dGVtcHQgdG8gY2xvc2UgYW4gZW52aXJvbm1lbnQgZ3JvdXAuCislCitcZGVmXG1ha2Vjb25kIzF7JQorICBcZXhwYW5kYWZ0ZXJcbGV0XGNzbmFtZSAjMVxlbmRjc25hbWUgPSBccmVsYXgKKyAgXGV4cGFuZGFmdGVyXGxldFxjc25hbWUgaXNjb25kLiMxXGVuZGNzbmFtZSA9IDEKK30KK1xtYWtlY29uZHtpZnRleH0KK1xtYWtlY29uZHtpZm5vdGRvY2Jvb2t9CitcbWFrZWNvbmR7aWZub3RodG1sfQorXG1ha2Vjb25ke2lmbm90aW5mb30KK1xtYWtlY29uZHtpZm5vdHBsYWludGV4dH0KK1xtYWtlY29uZHtpZm5vdHhtbH0KKworJSBJZ25vcmUgQGlnbm9yZSwgQGlmaHRtbCwgQGlmaW5mbywgYW5kIHRoZSBsaWtlLgorJQorXGRlZlxkaXJlbnRyeXtcZG9pZ25vcmV7ZGlyZW50cnl9fQorXGRlZlxkb2N1bWVudGRlc2NyaXB0aW9ue1xkb2lnbm9yZXtkb2N1bWVudGRlc2NyaXB0aW9ufX0KK1xkZWZcZG9jYm9va3tcZG9pZ25vcmV7ZG9jYm9va319CitcZGVmXGh0bWx7XGRvaWdub3Jle2h0bWx9fQorXGRlZlxpZmRvY2Jvb2t7XGRvaWdub3Jle2lmZG9jYm9va319CitcZGVmXGlmaHRtbHtcZG9pZ25vcmV7aWZodG1sfX0KK1xkZWZcaWZpbmZve1xkb2lnbm9yZXtpZmluZm99fQorXGRlZlxpZm5vdHRleHtcZG9pZ25vcmV7aWZub3R0ZXh9fQorXGRlZlxpZnBsYWludGV4dHtcZG9pZ25vcmV7aWZwbGFpbnRleHR9fQorXGRlZlxpZnhtbHtcZG9pZ25vcmV7aWZ4bWx9fQorXGRlZlxpZ25vcmV7XGRvaWdub3Jle2lnbm9yZX19CitcZGVmXG1lbnV7XGRvaWdub3Jle21lbnV9fQorXGRlZlx4bWx7XGRvaWdub3Jle3htbH19CisKKyUgSWdub3JlIHRleHQgdW50aWwgYSBsaW5lIGBAZW5kICMxJywga2VlcGluZyB0cmFjayBvZiBuZXN0ZWQgY29uZGl0aW9uYWxzLgorJQorJSBBIGNvdW50IHRvIHJlbWVtYmVyIHRoZSBkZXB0aCBvZiBuZXN0aW5nLgorXG5ld2NvdW50XGRvaWdub3JlY291bnQKKworXGRlZlxkb2lnbm9yZSMxe1xiZWdpbmdyb3VwCisgICUgU2NhbiBpbiBgYHZlcmJhdGltJycgbW9kZToKKyAgXGNhdGNvZGVgXEAgPSBcb3RoZXIKKyAgXGNhdGNvZGVgXHsgPSBcb3RoZXIKKyAgXGNhdGNvZGVgXH0gPSBcb3RoZXIKKyAgJQorICAlIE1ha2Ugc3VyZSB0aGF0IHNwYWNlcyB0dXJuIGludG8gdG9rZW5zIHRoYXQgbWF0Y2ggd2hhdCBcZG9pZ25vcmV0ZXh0IHdhbnRzLgorICBcc3BhY2Vpc3NwYWNlCisgICUKKyAgJSBDb3VudCBudW1iZXIgb2YgIzEncyB0aGF0IHdlJ3ZlIHNlZW4uCisgIFxkb2lnbm9yZWNvdW50ID0gMAorICAlCisgICUgU3dhbGxvdyB0ZXh0IHVudGlsIHdlIHJlYWNoIHRoZSBtYXRjaGluZyBgQGVuZCAjMScuCisgIFxkb2RvaWdub3JleyMxfSUKK30KKworeyBcY2F0Y29kZWBfPTExICUgV2Ugd2FudCB0byB1c2UgXF9TVE9QXyB3aGljaCBjYW5ub3QgYXBwZWFyIGluIHRleGluZm8gc291cmNlLgorICBcb2JleWxpbmVzICUKKyAgJQorICBcZ2RlZlxkb2RvaWdub3JlIzF7JQorICAgICUgIzEgY29udGFpbnMgdGhlIGNvbW1hbmQgbmFtZSBhcyBhIHN0cmluZywgZS5nLiwgYGlmaW5mbycuCisgICAgJQorICAgICUgRGVmaW5lIGEgY29tbWFuZCB0byBmaW5kIHRoZSBuZXh0IGBAZW5kICMxJywgd2hpY2ggbXVzdCBiZSBvbiBhIGxpbmUKKyAgICAlIGJ5IGl0c2VsZi4KKyAgICBcbG9uZ1xkZWZcZG9pZ25vcmV0ZXh0IyMxXl5NQGVuZCAjMXtcZG9pZ25vcmV0ZXh0eXl5IyMxXl5NQCMxXF9TVE9QX30lCisgICAgJSBBbmQgdGhpcyBjb21tYW5kIHRvIGZpbmQgYW5vdGhlciAjMSBjb21tYW5kLCBhdCB0aGUgYmVnaW5uaW5nIG9mIGEKKyAgICAlIGxpbmUuICAoT3RoZXJ3aXNlLCB3ZSB3b3VsZCBjb25zaWRlciBhIGxpbmUgYEBjIEBpZnNldCcsIGZvcgorICAgICUgZXhhbXBsZSwgdG8gY291bnQgYXMgYW4gQGlmc2V0IGZvciBuZXN0aW5nLikKKyAgICBcbG9uZ1xkZWZcZG9pZ25vcmV0ZXh0eXl5IyMxXl5NQCMxIyMyXF9TVE9QX3tcZG9pZ25vcmV5eXl7IyMyfVxfU1RPUF99JQorICAgICUKKyAgICAlIEFuZCBub3cgZXhwYW5kIHRoYXQgY29tbWFuZC4KKyAgICBcb2JleWxpbmVzICUKKyAgICBcZG9pZ25vcmV0ZXh0IF5eTSUKKyAgfSUKK30KKworXGRlZlxkb2lnbm9yZXl5eSMxeyUKKyAgXGRlZlx0ZW1weyMxfSUKKyAgXGlmeFx0ZW1wXGVtcHR5CQkJJSBOb3RoaW5nIGZvdW5kLgorICAgIFxsZXRcbmV4dFxkb2lnbm9yZXRleHR6enoKKyAgXGVsc2UJCQkJCSUgRm91bmQgYSBuZXN0ZWQgY29uZGl0aW9uLCAuLi4KKyAgICBcYWR2YW5jZVxkb2lnbm9yZWNvdW50IGJ5IDEKKyAgICBcbGV0XG5leHRcZG9pZ25vcmV0ZXh0eXl5CQklIC4uLiwgbG9vayBmb3IgYW5vdGhlci4KKyAgICAlIElmIHdlJ3JlIGhlcmUsICMxIGVuZHMgd2l0aCBeXk1caWZpbmZvIChmb3IgZXhhbXBsZSkuCisgIFxmaQorICBcbmV4dCAjMSUgdGhlIHRva2VuIFxfU1RPUF8gaXMgcHJlc2VudCBqdXN0IGFmdGVyIHRoaXMgbWFjcm8uCit9CisKKyUgV2UgaGF2ZSB0byBzd2FsbG93IHRoZSByZW1haW5pbmcgIlxfU1RPUF8iLgorJQorXGRlZlxkb2lnbm9yZXRleHR6enojMXslCisgIFxpZm51bVxkb2lnbm9yZWNvdW50ID0gMAklIFdlIGhhdmUganVzdCBmb3VuZCB0aGUgb3V0ZXJtb3N0IEBlbmQuCisgICAgXGxldFxuZXh0XGVuZGRvaWdub3JlCisgIFxlbHNlCQkJCSUgU3RpbGwgaW5zaWRlIGEgbmVzdGVkIGNvbmRpdGlvbi4KKyAgICBcYWR2YW5jZVxkb2lnbm9yZWNvdW50IGJ5IC0xCisgICAgXGxldFxuZXh0XGRvaWdub3JldGV4dCAgICAgICUgTG9vayBmb3IgdGhlIG5leHQgQGVuZC4KKyAgXGZpCisgIFxuZXh0Cit9CisKKyUgRmluaXNoIG9mZiBpZ25vcmVkIHRleHQuCitcZGVmXGVuZGRvaWdub3Jle1xlbmRncm91cFxpZ25vcmVzcGFjZXN9CisKKworJSBAc2V0IFZBUiBzZXRzIHRoZSB2YXJpYWJsZSBWQVIgdG8gYW4gZW1wdHkgdmFsdWUuCislIEBzZXQgVkFSIFJFU1QtT0YtTElORSBzZXRzIFZBUiB0byB0aGUgdmFsdWUgUkVTVC1PRi1MSU5FLgorJQorJSBTaW5jZSB3ZSB3YW50IHRvIHNlcGFyYXRlIFZBUiBmcm9tIFJFU1QtT0YtTElORSAod2hpY2ggbWlnaHQgYmUKKyUgZW1wdHkpLCB3ZSBjYW4ndCBqdXN0IHVzZSBccGFyc2Vhcmc7IHdlIGhhdmUgdG8gaW5zZXJ0IGEgc3BhY2Ugb2Ygb3VyCislIG93biB0byBkZWxpbWl0IHRoZSByZXN0IG9mIHRoZSBsaW5lLCBhbmQgdGhlbiB0YWtlIGl0IG91dCBhZ2FpbiBpZiB3ZQorJSBkaWRuJ3QgbmVlZCBpdC4KKyUgV2UgcmVseSBvbiB0aGUgZmFjdCB0aGF0IFxwYXJzZWFyZyBzZXRzIFxjYXRjb2RlYFwgPTEwLgorJQorXHBhcnNlYXJnZGVmXHNldHtcc2V0eXl5IzEgXGVuZHNldHl5eX0KK1xkZWZcc2V0eXl5IzEgIzJcZW5kc2V0eXl5eyUKKyAgeyUKKyAgICBcbWFrZXZhbHVlZXhwYW5kYWJsZQorICAgIFxkZWZcdGVtcHsjMn0lCisgICAgXGVkZWZcbmV4dHtcZ2RlZlxtYWtlY3NuYW1le1NFVCMxfX0lCisgICAgXGlmeFx0ZW1wXGVtcHR5CisgICAgICBcbmV4dHt9JQorICAgIFxlbHNlCisgICAgICBcc2V0enp6IzJcZW5kc2V0enp6CisgICAgXGZpCisgIH0lCit9CislIFJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2UgXHNldHh4eCBpbnNlcnRlZC4KK1xkZWZcc2V0enp6IzEgXGVuZHNldHp6entcbmV4dHsjMX19CisKKyUgQGNsZWFyIFZBUiBjbGVhcnMgKGkuZS4sIHVuc2V0cykgdGhlIHZhcmlhYmxlIFZBUi4KKyUKK1xwYXJzZWFyZ2RlZlxjbGVhcnslCisgIHslCisgICAgXG1ha2V2YWx1ZWV4cGFuZGFibGUKKyAgICBcZ2xvYmFsXGV4cGFuZGFmdGVyXGxldFxjc25hbWUgU0VUIzFcZW5kY3NuYW1lPVxyZWxheAorICB9JQorfQorCislIEB2YWx1ZXtmb299IGdldHMgdGhlIHRleHQgc2F2ZWQgaW4gdmFyaWFibGUgZm9vLgorXGRlZlx2YWx1ZXtcYmVnaW5ncm91cFxtYWtldmFsdWVleHBhbmRhYmxlXHZhbHVleHh4fQorXGRlZlx2YWx1ZXh4eCMxe1xleHBhbmRhYmxldmFsdWV7IzF9XGVuZGdyb3VwfQoreworICBcY2F0Y29kZWBcLSA9IFxhY3RpdmUgXGNhdGNvZGVgXF8gPSBcYWN0aXZlCisgICUKKyAgXGdkZWZcbWFrZXZhbHVlZXhwYW5kYWJsZXslCisgICAgXGxldFx2YWx1ZSA9IFxleHBhbmRhYmxldmFsdWUKKyAgICAlIFdlIGRvbid0IHdhbnQgdGhlc2UgY2hhcmFjdGVycyBhY3RpdmUsIC4uLgorICAgIFxjYXRjb2RlYFwtPVxvdGhlciBcY2F0Y29kZWBcXz1cb3RoZXIKKyAgICAlIC4uLiwgYnV0IHdlIG1pZ2h0IGVuZCB1cCB3aXRoIGFjdGl2ZSBvbmVzIGluIHRoZSBhcmd1bWVudCBpZgorICAgICUgd2UncmUgY2FsbGVkIGZyb20gQGNvZGUsIGFzIEBjb2Rle0B2YWx1ZXtmb28tYmFyX319LCB0aG91Z2guCisgICAgJSBTbyBcbGV0IHRoZW0gdG8gdGhlaXIgbm9ybWFsIGVxdWl2YWxlbnRzLgorICAgIFxsZXQtXHJlYWxkYXNoIFxsZXRfXG5vcm1hbHVuZGVyc2NvcmUKKyAgfQorfQorCislIFdlIGhhdmUgdGhpcyBzdWJyb3V0aW5lIHNvIHRoYXQgd2UgY2FuIGhhbmRsZSBhdCBsZWFzdCBzb21lIEB2YWx1ZSdzCislIHByb3Blcmx5IGluIGluZGV4ZXMgKHdlIGNhbGwgXG1ha2V2YWx1ZWV4cGFuZGFibGUgaW4gXGluZGV4ZHVtbWllcykuCislIFRoZSBjb21tYW5kIGhhcyB0byBiZSBmdWxseSBleHBhbmRhYmxlIChpZiB0aGUgdmFyaWFibGUgaXMgc2V0KSwgc2luY2UKKyUgdGhlIHJlc3VsdCB3aW5kcyB1cCBpbiB0aGUgaW5kZXggZmlsZS4gIFRoaXMgbWVhbnMgdGhhdCBpZiB0aGUKKyUgdmFyaWFibGUncyB2YWx1ZSBjb250YWlucyBvdGhlciBUZXhpbmZvIGNvbW1hbmRzLCBpdCdzIGFsbW9zdCBjZXJ0YWluCislIGl0IHdpbGwgZmFpbCAoYWx0aG91Z2ggcGVyaGFwcyB3ZSBjb3VsZCBmaXggdGhhdCB3aXRoIHN1ZmZpY2llbnQgd29yaworJSB0byBkbyBhIG9uZS1sZXZlbCBleHBhbnNpb24gb24gdGhlIHJlc3VsdCwgaW5zdGVhZCBvZiBjb21wbGV0ZSkuCislCitcZGVmXGV4cGFuZGFibGV2YWx1ZSMxeyUKKyAgXGV4cGFuZGFmdGVyXGlmeFxjc25hbWUgU0VUIzFcZW5kY3NuYW1lXHJlbGF4CisgICAge1tObyB2YWx1ZSBmb3IgYGAjMScnXX0lCisgICAgXG1lc3NhZ2V7VmFyaWFibGUgYCMxJywgdXNlZCBpbiBAdmFsdWUsIGlzIG5vdCBzZXQufSUKKyAgXGVsc2UKKyAgICBcY3NuYW1lIFNFVCMxXGVuZGNzbmFtZQorICBcZmkKK30KKworJSBAaWZzZXQgVkFSIC4uLiBAZW5kIGlmc2V0IHJlYWRzIHRoZSBgLi4uJyBpZmYgVkFSIGhhcyBiZWVuIGRlZmluZWQKKyUgd2l0aCBAc2V0LgorJQorJSBUbyBnZXQgc3BlY2lhbCB0cmVhdG1lbnQgb2YgYEBlbmQgaWZzZXQsJyBjYWxsIFxtYWtlb25kIGFuZCB0aGUgcmVkZWZpbmUuCislCitcbWFrZWNvbmR7aWZzZXR9CitcZGVmXGlmc2V0e1xwYXJzZWFyZ3tcZG9pZnNldHtcbGV0XG5leHQ9XGlmc2V0ZmFpbH19fQorXGRlZlxkb2lmc2V0IzEjMnslCisgIHslCisgICAgXG1ha2V2YWx1ZWV4cGFuZGFibGUKKyAgICBcbGV0XG5leHQ9XGVtcHR5CisgICAgXGV4cGFuZGFmdGVyXGlmeFxjc25hbWUgU0VUIzJcZW5kY3NuYW1lXHJlbGF4CisgICAgICAjMSUgSWYgbm90IHNldCwgcmVkZWZpbmUgXG5leHQuCisgICAgXGZpCisgICAgXGV4cGFuZGFmdGVyCisgIH1cbmV4dAorfQorXGRlZlxpZnNldGZhaWx7XGRvaWdub3Jle2lmc2V0fX0KKworJSBAaWZjbGVhciBWQVIgLi4uIEBlbmQgaWZjbGVhciByZWFkcyB0aGUgYC4uLicgaWZmIFZBUiBoYXMgbmV2ZXIgYmVlbgorJSBkZWZpbmVkIHdpdGggQHNldCwgb3IgaGFzIGJlZW4gdW5kZWZpbmVkIHdpdGggQGNsZWFyLgorJQorJSBUaGUgYFxlbHNlJyBpbnNpZGUgdGhlIGBcZG9pZnNldCcgcGFyYW1ldGVyIGlzIGEgdHJpY2sgdG8gcmV1c2UgdGhlCislIGFib3ZlIGNvZGU6IGlmIHRoZSB2YXJpYWJsZSBpcyBub3Qgc2V0LCBkbyBub3RoaW5nLCBpZiBpdCBpcyBzZXQsCislIHRoZW4gcmVkZWZpbmUgXG5leHQgdG8gXGlmY2xlYXJmYWlsLgorJQorXG1ha2Vjb25ke2lmY2xlYXJ9CitcZGVmXGlmY2xlYXJ7XHBhcnNlYXJne1xkb2lmc2V0e1xlbHNlIFxsZXRcbmV4dD1caWZjbGVhcmZhaWx9fX0KK1xkZWZcaWZjbGVhcmZhaWx7XGRvaWdub3Jle2lmY2xlYXJ9fQorCislIEBkaXJjYXRlZ29yeSBDQVRFR09SWSAgLS0gc3BlY2lmeSBhIGNhdGVnb3J5IG9mIHRoZSBkaXIgZmlsZQorJSB3aGljaCB0aGlzIGZpbGUgc2hvdWxkIGJlbG9uZyB0by4gIElnbm9yZSB0aGlzIGluIFRlWC4KK1xsZXRcZGlyY2F0ZWdvcnk9XGNvbW1lbnQKKworJSBAZGVmaW5pbmZvZW5jbG9zZS4KK1xsZXRcZGVmaW5mb2VuY2xvc2U9XGNvbW1lbnQKKworCitcbWVzc2FnZXtpbmRleGluZyx9CislIEluZGV4IGdlbmVyYXRpb24gZmFjaWxpdGllcworCislIERlZmluZSBcbmV3d3JpdGUgdG8gYmUgaWRlbnRpY2FsIHRvIHBsYWluIHRleCdzIFxuZXd3cml0ZQorJSBleGNlcHQgbm90IFxvdXRlciwgc28gaXQgY2FuIGJlIHVzZWQgd2l0aGluIG1hY3JvcyBhbmQgXGlmJ3MuCitcZWRlZlxuZXd3cml0ZXtcbWFrZWNzbmFtZXtwdGV4bmV3d3JpdGV9fQorCislIFxuZXdpbmRleCB7Zm9vfSBkZWZpbmVzIGFuIGluZGV4IG5hbWVkIGZvby4KKyUgSXQgYXV0b21hdGljYWxseSBkZWZpbmVzIFxmb29pbmRleCBzdWNoIHRoYXQKKyUgXGZvb2luZGV4IC4uLnJlc3Qgb2YgbGluZS4uLiBwdXRzIGFuIGVudHJ5IGluIHRoZSBpbmRleCBmb28uCislIEl0IGFsc28gZGVmaW5lcyBcZm9vaW5kZmlsZSB0byBiZSB0aGUgbnVtYmVyIG9mIHRoZSBvdXRwdXQgY2hhbm5lbCBmb3IKKyUgdGhlIGZpbGUgdGhhdCBhY2N1bXVsYXRlcyB0aGlzIGluZGV4LiAgVGhlIGZpbGUncyBleHRlbnNpb24gaXMgZm9vLgorJSBUaGUgbmFtZSBvZiBhbiBpbmRleCBzaG91bGQgYmUgbm8gbW9yZSB0aGFuIDIgY2hhcmFjdGVycyBsb25nCislIGZvciB0aGUgc2FrZSBvZiB2bXMuCislCitcZGVmXG5ld2luZGV4IzF7JQorICBcaWZsaW5rcworICAgIFxleHBhbmRhZnRlclxuZXd3cml0ZSBcY3NuYW1lIzFpbmRmaWxlXGVuZGNzbmFtZQorICAgIFxvcGVub3V0IFxjc25hbWUjMWluZGZpbGVcZW5kY3NuYW1lIFxqb2JuYW1lLiMxICUgT3BlbiB0aGUgZmlsZQorICBcZmkKKyAgXGV4cGFuZGFmdGVyXHhkZWZcY3NuYW1lIzFpbmRleFxlbmRjc25hbWV7JSAgICAgJSBEZWZpbmUgQCMxaW5kZXgKKyAgICBcbm9leHBhbmRcZG9pbmRleHsjMX19Cit9CisKKyUgQGRlZmluZGV4IGZvbyAgPT0gIFxuZXdpbmRleHtmb299CislCitcZGVmXGRlZmluZGV4e1xwYXJzZWFyZ1xuZXdpbmRleH0KKworJSBEZWZpbmUgQGRlZmNvZGVpbmRleCwgbGlrZSBAZGVmaW5kZXggZXhjZXB0IHB1dCBhbGwgZW50cmllcyBpbiBAY29kZS4KKyUKK1xkZWZcZGVmY29kZWluZGV4e1xwYXJzZWFyZ1xuZXdjb2RlaW5kZXh9CislCitcZGVmXG5ld2NvZGVpbmRleCMxeyUKKyAgXGlmbGlua3MKKyAgICBcZXhwYW5kYWZ0ZXJcbmV3d3JpdGUgXGNzbmFtZSMxaW5kZmlsZVxlbmRjc25hbWUKKyAgICBcb3Blbm91dCBcY3NuYW1lIzFpbmRmaWxlXGVuZGNzbmFtZSBcam9ibmFtZS4jMQorICBcZmkKKyAgXGV4cGFuZGFmdGVyXHhkZWZcY3NuYW1lIzFpbmRleFxlbmRjc25hbWV7JQorICAgIFxub2V4cGFuZFxkb2NvZGVpbmRleHsjMX19JQorfQorCisKKyUgQHN5bmluZGV4IGZvbyBiYXIgICAgbWFrZXMgaW5kZXggZm9vIGZlZWQgaW50byBpbmRleCBiYXIuCislIERvIHRoaXMgaW5zdGVhZCBvZiBAZGVmaW5kZXggZm9vIGlmIHlvdSBkb24ndCB3YW50IGl0IGFzIGEgc2VwYXJhdGUgaW5kZXguCislCislIEBzeW5jb2RlaW5kZXggZm9vIGJhciAgIHNpbWlsYXIsIGJ1dCBwdXQgYWxsIGVudHJpZXMgbWFkZSBmb3IgaW5kZXggZm9vCislIGluc2lkZSBAY29kZS4KKyUKK1xkZWZcc3luaW5kZXgjMSAjMiB7XGRvc3luaW5kZXhcZG9pbmRleHsjMX17IzJ9fQorXGRlZlxzeW5jb2RlaW5kZXgjMSAjMiB7XGRvc3luaW5kZXhcZG9jb2RlaW5kZXh7IzF9eyMyfX0KKworJSAjMSBpcyBcZG9pbmRleCBvciBcZG9jb2RlaW5kZXgsICMyIHRoZSBpbmRleCBnZXR0aW5nIHJlZGVmaW5lZCAoZm9vKSwKKyUgIzMgdGhlIHRhcmdldCBpbmRleCAoYmFyKS4KK1xkZWZcZG9zeW5pbmRleCMxIzIjM3slCisgICUgT25seSBkbyBcY2xvc2VvdXQgaWYgd2UgaGF2ZW4ndCBhbHJlYWR5IGRvbmUgaXQsIGVsc2Ugd2UnbGwgZW5kIHVwCisgICUgY2xvc2luZyB0aGUgdGFyZ2V0IGluZGV4LgorICBcZXhwYW5kYWZ0ZXIgXGlmeFxjc25hbWUgZG9uZXN5bmluZGV4IzJcZW5kY3NuYW1lIFx1bmRlZmluZWQKKyAgICAlIFRoZSBcY2xvc2VvdXQgaGVscHMgcmVkdWNlIHVubmVjZXNzYXJ5IG9wZW4gZmlsZXM7IHRoZSBsaW1pdCBvbiB0aGUKKyAgICAlIEFjb3JuIFJJU0MgT1MgaXMgYSBtZXJlIDE2IGZpbGVzLgorICAgIFxleHBhbmRhZnRlclxjbG9zZW91dFxjc25hbWUjMmluZGZpbGVcZW5kY3NuYW1lCisgICAgXGV4cGFuZGFmdGVyXGxldFxjc25hbWVcZG9uZXN5bmluZGV4IzJcZW5kY3NuYW1lID0gMQorICBcZmkKKyAgJSByZWRlZmluZSBcZm9vaW5kZmlsZToKKyAgXGV4cGFuZGFmdGVyXGxldFxleHBhbmRhZnRlclx0ZW1wXGV4cGFuZGFmdGVyPVxjc25hbWUjM2luZGZpbGVcZW5kY3NuYW1lCisgIFxleHBhbmRhZnRlclxsZXRcY3NuYW1lIzJpbmRmaWxlXGVuZGNzbmFtZT1cdGVtcAorICAlIHJlZGVmaW5lIFxmb29pbmRleDoKKyAgXGV4cGFuZGFmdGVyXHhkZWZcY3NuYW1lIzJpbmRleFxlbmRjc25hbWV7XG5vZXhwYW5kIzF7IzN9fSUKK30KKworJSBEZWZpbmUgXGRvaW5kZXgsIHRoZSBkcml2ZXIgZm9yIGFsbCBcZm9vaW5kZXggbWFjcm9zLgorJSBBcmd1bWVudCAjMSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGNhbGxpbmcgXGZvb2luZGV4IG1hY3JvLAorJSAgYW5kIGl0IGlzICJmb28iLCB0aGUgbmFtZSBvZiB0aGUgaW5kZXguCisKKyUgXGRvaW5kZXgganVzdCB1c2VzIFxwYXJzZWFyZzsgaXQgY2FsbHMgXGRvaW5kIGZvciB0aGUgYWN0dWFsIHdvcmsuCislIFRoaXMgaXMgYmVjYXVzZSBcZG9pbmQgaXMgbW9yZSB1c2VmdWwgdG8gY2FsbCBmcm9tIG90aGVyIG1hY3Jvcy4KKworJSBUaGVyZSBpcyBhbHNvIFxkb3N1YmluZCB7aW5kZXh9e3RvcGljfXtzdWJ0b3BpY30KKyUgd2hpY2ggbWFrZXMgYW4gZW50cnkgaW4gYSB0d28tbGV2ZWwgaW5kZXggc3VjaCBhcyB0aGUgb3BlcmF0aW9uIGluZGV4LgorCitcZGVmXGRvaW5kZXgjMXtcZWRlZlxpbmRleG5hbWV7IzF9XHBhcnNlYXJnXHNpbmdsZWluZGV4ZXJ9CitcZGVmXHNpbmdsZWluZGV4ZXIgIzF7XGRvaW5ke1xpbmRleG5hbWV9eyMxfX0KKworJSBsaWtlIHRoZSBwcmV2aW91cyB0d28sIGJ1dCB0aGV5IHB1dCBAY29kZSBhcm91bmQgdGhlIGFyZ3VtZW50LgorXGRlZlxkb2NvZGVpbmRleCMxe1xlZGVmXGluZGV4bmFtZXsjMX1ccGFyc2Vhcmdcc2luZ2xlY29kZWluZGV4ZXJ9CitcZGVmXHNpbmdsZWNvZGVpbmRleGVyICMxe1xkb2luZHtcaW5kZXhuYW1lfXtcY29kZXsjMX19fQorCislIFRha2UgY2FyZSBvZiBUZXhpbmZvIGNvbW1hbmRzIHRoYXQgY2FuIGFwcGVhciBpbiBhbiBpbmRleCBlbnRyeS4KKyUgU2luY2UgdGhlcmUgYXJlIHNvbWUgY29tbWFuZHMgd2Ugd2FudCB0byBleHBhbmQsIGFuZCBvdGhlcnMgd2UgZG9uJ3QsCislIHdlIGhhdmUgdG8gbGFib3Jpb3VzbHkgcHJldmVudCBleHBhbnNpb24gZm9yIHRob3NlIHRoYXQgd2UgZG9uJ3QuCislCitcZGVmXGluZGV4ZHVtbWllc3slCisgIFxlc2NhcGVjaGFyID0gYFxcICAgICAlIHVzZSBiYWNrc2xhc2ggaW4gb3V0cHV0IGZpbGVzLgorICBcZGVmXEB7QH0lIGNoYW5nZSB0byBAQCB3aGVuIHdlIHN3aXRjaCB0byBAIGFzIGVzY2FwZSBjaGFyIGluIGluZGV4IGZpbGVzLgorICBcZGVmXCB7XHJlYWxiYWNrc2xhc2hcc3BhY2UgfSUKKyAgJSBOZWVkIHRoZXNlIGluIGNhc2UgXHRleCBpcyBpbiBlZmZlY3QgYW5kIFx7IGlzIGEgXGRlbGltaXRlciBhZ2Fpbi4KKyAgJSBCdXQgY2FuJ3QgdXNlIFxsYnJhY2VjbWQgYW5kIFxyYnJhY2VjbWQgYmVjYXVzZSB0ZXhpbmRleCBhc3N1bWVzCisgICUgYnJhY2VzIGFuZCBiYWNrc2xhc2hlcyBhcmUgdXNlZCBvbmx5IGFzIGRlbGltaXRlcnMuCisgIFxsZXRceyA9IFxteWxicmFjZQorICBcbGV0XH0gPSBcbXlyYnJhY2UKKyAgJQorICAlIERvIHRoZSByZWRlZmluaXRpb25zLgorICBcY29tbW9uZHVtbWllcworfQorCislIEZvciB0aGUgYXV4IGFuZCB0b2MgZmlsZXMsIEAgaXMgdGhlIGVzY2FwZSBjaGFyYWN0ZXIuICBTbyB3ZSB3YW50IHRvCislIHJlZGVmaW5lIGV2ZXJ5dGhpbmcgdXNpbmcgQCBhcyB0aGUgZXNjYXBlIGNoYXJhY3RlciAoaW5zdGVhZCBvZgorJSBccmVhbGJhY2tzbGFzaCwgc3RpbGwgdXNlZCBmb3IgaW5kZXggZmlsZXMpLiAgV2hlbiBldmVyeXRoaW5nIHVzZXMgQCwKKyUgdGhpcyB3aWxsIGJlIHNpbXBsZXIuCislCitcZGVmXGF0ZHVtbWllc3slCisgIFxkZWZcQHtAQH0lCisgIFxkZWZcIHtAIH0lCisgIFxsZXRceyA9IFxsYnJhY2VhdGNtZAorICBcbGV0XH0gPSBccmJyYWNlYXRjbWQKKyAgJQorICAlIERvIHRoZSByZWRlZmluaXRpb25zLgorICBcY29tbW9uZHVtbWllcworfQorCislIENhbGxlZCBmcm9tIFxpbmRleGR1bW1pZXMgYW5kIFxhdGR1bW1pZXMuCislCitcZGVmXGNvbW1vbmR1bW1pZXN7JQorICAlCisgICUgXGRlZmluZWR1bW15d29yZCBkZWZpbmVzIFwjMSBhcyBcc3RyaW5nXCMxXHNwYWNlLCB0aHVzIGVmZmVjdGl2ZWx5CisgICUgcHJldmVudGluZyBpdHMgZXhwYW5zaW9uLiAgVGhpcyBpcyB1c2VkIG9ubHkgZm9yIGNvbnRyb2wlIHdvcmRzLAorICAlIG5vdCBjb250cm9sIGxldHRlcnMsIGJlY2F1c2UgdGhlIFxzcGFjZSB3b3VsZCBiZSBpbmNvcnJlY3QgZm9yCisgICUgY29udHJvbCBjaGFyYWN0ZXJzLCBidXQgaXMgbmVlZGVkIHRvIHNlcGFyYXRlIHRoZSBjb250cm9sIHdvcmQKKyAgJSBmcm9tIHdoYXRldmVyIGZvbGxvd3MuCisgICUKKyAgJSBGb3IgY29udHJvbCBsZXR0ZXJzLCB3ZSBoYXZlIFxkZWZpbmVkdW1teWxldHRlciwgd2hpY2ggb21pdHMgdGhlCisgICUgc3BhY2UuCisgICUKKyAgJSBUaGVzZSBjYW4gYmUgdXNlZCBib3RoIGZvciBjb250cm9sIHdvcmRzIHRoYXQgdGFrZSBhbiBhcmd1bWVudCBhbmQKKyAgJSB0aG9zZSB0aGF0IGRvIG5vdC4gIElmIGl0IGlzIGZvbGxvd2VkIGJ5IHthcmd9IGluIHRoZSBpbnB1dCwgdGhlbgorICAlIHRoYXQgd2lsbCBkdXRpZnVsbHkgZ2V0IHdyaXR0ZW4gdG8gdGhlIGluZGV4IChvciB3aGVyZXZlcikuCisgICUKKyAgXGRlZlxkZWZpbmVkdW1teXdvcmQgICMjMXtcZGVmIyMxe1xzdHJpbmcjIzFcc3BhY2V9fSUKKyAgXGRlZlxkZWZpbmVkdW1teWxldHRlciMjMXtcZGVmIyMxe1xzdHJpbmcjIzF9fSUKKyAgXGxldFxkZWZpbmVkdW1teWFjY2VudFxkZWZpbmVkdW1teWxldHRlcgorICAlCisgIFxjb21tb25kdW1taWVzbm9mb250cworICAlCisgIFxkZWZpbmVkdW1teWxldHRlclxfJQorICAlCisgICUgTm9uLUVuZ2xpc2ggbGV0dGVycy4KKyAgXGRlZmluZWR1bW15d29yZFxBQQorICBcZGVmaW5lZHVtbXl3b3JkXEFFCisgIFxkZWZpbmVkdW1teXdvcmRcTAorICBcZGVmaW5lZHVtbXl3b3JkXE9FCisgIFxkZWZpbmVkdW1teXdvcmRcTworICBcZGVmaW5lZHVtbXl3b3JkXGFhCisgIFxkZWZpbmVkdW1teXdvcmRcYWUKKyAgXGRlZmluZWR1bW15d29yZFxsCisgIFxkZWZpbmVkdW1teXdvcmRcb2UKKyAgXGRlZmluZWR1bW15d29yZFxvCisgIFxkZWZpbmVkdW1teXdvcmRcc3MKKyAgXGRlZmluZWR1bW15d29yZFxleGNsYW1kb3duCisgIFxkZWZpbmVkdW1teXdvcmRccXVlc3Rpb25kb3duCisgIFxkZWZpbmVkdW1teXdvcmRcb3JkZgorICBcZGVmaW5lZHVtbXl3b3JkXG9yZG0KKyAgJQorICAlIEFsdGhvdWdoIHRoZXNlIGludGVybmFsIGNvbW1hbmRzIHNob3VsZG4ndCBzaG93IHVwLCBzb21ldGltZXMgdGhleSBkby4KKyAgXGRlZmluZWR1bW15d29yZFxiZgorICBcZGVmaW5lZHVtbXl3b3JkXGd0cgorICBcZGVmaW5lZHVtbXl3b3JkXGhhdAorICBcZGVmaW5lZHVtbXl3b3JkXGxlc3MKKyAgXGRlZmluZWR1bW15d29yZFxzZgorICBcZGVmaW5lZHVtbXl3b3JkXHNsCisgIFxkZWZpbmVkdW1teXdvcmRcdGNsb3NlCisgIFxkZWZpbmVkdW1teXdvcmRcdHQKKyAgJQorICBcZGVmaW5lZHVtbXl3b3JkXExhVGVYCisgIFxkZWZpbmVkdW1teXdvcmRcVGVYCisgICUKKyAgJSBBc3NvcnRlZCBzcGVjaWFsIGNoYXJhY3RlcnMuCisgIFxkZWZpbmVkdW1teXdvcmRcYnVsbGV0CisgIFxkZWZpbmVkdW1teXdvcmRcY29tbWEKKyAgXGRlZmluZWR1bW15d29yZFxjb3B5cmlnaHQKKyAgXGRlZmluZWR1bW15d29yZFxyZWdpc3RlcmVkc3ltYm9sCisgIFxkZWZpbmVkdW1teXdvcmRcZG90cworICBcZGVmaW5lZHVtbXl3b3JkXGVuZGRvdHMKKyAgXGRlZmluZWR1bW15d29yZFxlcXVpdgorICBcZGVmaW5lZHVtbXl3b3JkXGVycm9yCisgIFxkZWZpbmVkdW1teXdvcmRcZXVybworICBcZGVmaW5lZHVtbXl3b3JkXGV4cGFuc2lvbgorICBcZGVmaW5lZHVtbXl3b3JkXG1pbnVzCisgIFxkZWZpbmVkdW1teXdvcmRccG91bmRzCisgIFxkZWZpbmVkdW1teXdvcmRccG9pbnQKKyAgXGRlZmluZWR1bW15d29yZFxwcmludAorICBcZGVmaW5lZHVtbXl3b3JkXHJlc3VsdAorICAlCisgICUgV2Ugd2FudCB0byBkaXNhYmxlIGFsbCBtYWNyb3Mgc28gdGhhdCB0aGV5IGFyZSBub3QgZXhwYW5kZWQgYnkgXHdyaXRlLgorICBcbWFjcm9saXN0CisgICUKKyAgXG5vcm1hbHR1cm5vZmZhY3RpdmUKKyAgJQorICAlIEhhbmRsZSBzb21lIGNhc2VzIG9mIEB2YWx1ZSAtLSB3aGVyZSBpdCBkb2VzIG5vdCBjb250YWluIGFueQorICAlIChub24tZnVsbHktZXhwYW5kYWJsZSkgY29tbWFuZHMuCisgIFxtYWtldmFsdWVleHBhbmRhYmxlCit9CisKKyUgXGNvbW1vbmR1bW1pZXNub2ZvbnRzOiBjb21tb24gdG8gXGNvbW1vbmR1bW1pZXMgYW5kIFxpbmRleG5vZm9udHMuCislCislIEJldHRlciBoYXZlIHRoaXMgd2l0aG91dCBhY3RpdmUgY2hhcnMuCit7CisgIFxjYXRjb2RlYFx+PVxvdGhlcgorICBcZ2RlZlxjb21tb25kdW1taWVzbm9mb250c3slCisgICAgJSBDb250cm9sIGxldHRlcnMgYW5kIGFjY2VudHMuCisgICAgXGRlZmluZWR1bW15bGV0dGVyXCElCisgICAgXGRlZmluZWR1bW15YWNjZW50XCIlCisgICAgXGRlZmluZWR1bW15YWNjZW50XCclCisgICAgXGRlZmluZWR1bW15bGV0dGVyXColCisgICAgXGRlZmluZWR1bW15YWNjZW50XCwlCisgICAgXGRlZmluZWR1bW15bGV0dGVyXC4lCisgICAgXGRlZmluZWR1bW15bGV0dGVyXC8lCisgICAgXGRlZmluZWR1bW15bGV0dGVyXDolCisgICAgXGRlZmluZWR1bW15YWNjZW50XD0lCisgICAgXGRlZmluZWR1bW15bGV0dGVyXD8lCisgICAgXGRlZmluZWR1bW15YWNjZW50XF4lCisgICAgXGRlZmluZWR1bW15YWNjZW50XGAlCisgICAgXGRlZmluZWR1bW15YWNjZW50XH4lCisgICAgXGRlZmluZWR1bW15d29yZFx1CisgICAgXGRlZmluZWR1bW15d29yZFx2CisgICAgXGRlZmluZWR1bW15d29yZFxICisgICAgXGRlZmluZWR1bW15d29yZFxkb3RhY2NlbnQKKyAgICBcZGVmaW5lZHVtbXl3b3JkXHJpbmdhY2NlbnQKKyAgICBcZGVmaW5lZHVtbXl3b3JkXHRpZWFjY2VudAorICAgIFxkZWZpbmVkdW1teXdvcmRcdWJhcmFjY2VudAorICAgIFxkZWZpbmVkdW1teXdvcmRcdWRvdGFjY2VudAorICAgIFxkZWZpbmVkdW1teXdvcmRcZG90bGVzcworICAgICUKKyAgICAlIFRleGluZm8gZm9udCBjb21tYW5kcy4KKyAgICBcZGVmaW5lZHVtbXl3b3JkXGIKKyAgICBcZGVmaW5lZHVtbXl3b3JkXGkKKyAgICBcZGVmaW5lZHVtbXl3b3JkXHIKKyAgICBcZGVmaW5lZHVtbXl3b3JkXHNjCisgICAgXGRlZmluZWR1bW15d29yZFx0CisgICAgJQorICAgICUgQ29tbWFuZHMgdGhhdCB0YWtlIGFyZ3VtZW50cy4KKyAgICBcZGVmaW5lZHVtbXl3b3JkXGFjcm9ueW0KKyAgICBcZGVmaW5lZHVtbXl3b3JkXGNpdGUKKyAgICBcZGVmaW5lZHVtbXl3b3JkXGNvZGUKKyAgICBcZGVmaW5lZHVtbXl3b3JkXGNvbW1hbmQKKyAgICBcZGVmaW5lZHVtbXl3b3JkXGRmbgorICAgIFxkZWZpbmVkdW1teXdvcmRcZW1waAorICAgIFxkZWZpbmVkdW1teXdvcmRcZW52CisgICAgXGRlZmluZWR1bW15d29yZFxmaWxlCisgICAgXGRlZmluZWR1bW15d29yZFxrYmQKKyAgICBcZGVmaW5lZHVtbXl3b3JkXGtleQorICAgIFxkZWZpbmVkdW1teXdvcmRcbWF0aAorICAgIFxkZWZpbmVkdW1teXdvcmRcb3B0aW9uCisgICAgXGRlZmluZWR1bW15d29yZFxzYW1wCisgICAgXGRlZmluZWR1bW15d29yZFxzdHJvbmcKKyAgICBcZGVmaW5lZHVtbXl3b3JkXHRpZQorICAgIFxkZWZpbmVkdW1teXdvcmRcdXJlZgorICAgIFxkZWZpbmVkdW1teXdvcmRcdXJsCisgICAgXGRlZmluZWR1bW15d29yZFx2YXIKKyAgICBcZGVmaW5lZHVtbXl3b3JkXHZlcmIKKyAgICBcZGVmaW5lZHVtbXl3b3JkXHcKKyAgfQorfQorCislIFxpbmRleG5vZm9udHMgaXMgdXNlZCB3aGVuIG91dHB1dHRpbmcgdGhlIHN0cmluZ3MgdG8gc29ydCB0aGUgaW5kZXgKKyUgYnksIGFuZCB3aGVuIGNvbnN0cnVjdGluZyBjb250cm9sIHNlcXVlbmNlIG5hbWVzLiAgSXQgZWxpbWluYXRlcyBhbGwKKyUgY29udHJvbCBzZXF1ZW5jZXMgYW5kIGp1c3Qgd3JpdGVzIHdoYXRldmVyIHRoZSBiZXN0IEFTQ0lJIHNvcnQgc3RyaW5nCislIHdvdWxkIGJlIGZvciBhIGdpdmVuIGNvbW1hbmQgKHVzdWFsbHkgaXRzIGFyZ3VtZW50KS4KKyUKK1xkZWZcaW5kZXhub2ZvbnRzeyUKKyAgJSBBY2NlbnQgY29tbWFuZHMgc2hvdWxkIGJlY29tZSBAYXNpcy4KKyAgXGRlZlxkZWZpbmVkdW1teWFjY2VudCMjMXtcbGV0IyMxXGFzaXN9JQorICAlIFdlIGNhbiBqdXN0IGlnbm9yZSBvdGhlciBjb250cm9sIGxldHRlcnMuCisgIFxkZWZcZGVmaW5lZHVtbXlsZXR0ZXIjIzF7XGxldCMjMVxlbXB0eX0lCisgICUgSG9wZWZ1bGx5LCBhbGwgY29udHJvbCB3b3JkcyBjYW4gYmVjb21lIEBhc2lzLgorICBcbGV0XGRlZmluZWR1bW15d29yZFxkZWZpbmVkdW1teWFjY2VudAorICAlCisgIFxjb21tb25kdW1taWVzbm9mb250cworICAlCisgICUgRG9uJ3Qgbm8tb3AgXHR0LCBzaW5jZSBpdCBpc24ndCBhIHVzZXItbGV2ZWwgY29tbWFuZAorICAlIGFuZCBpcyB1c2VkIGluIHRoZSBkZWZpbml0aW9ucyBvZiB0aGUgYWN0aXZlIGNoYXJzIGxpa2UgPCwgPiwgfCwgZXRjLgorICAlIExpa2V3aXNlIHdpdGggdGhlIG90aGVyIHBsYWluIHRleCBmb250IGNvbW1hbmRzLgorICAlXGxldFx0dD1cYXNpcworICAlCisgIFxkZWZcIHsgfSUKKyAgXGRlZlxAe0B9JQorICAlIGhvdyB0byBoYW5kbGUgYnJhY2VzPworICBcZGVmXF97XG5vcm1hbHVuZGVyc2NvcmV9JQorICAlCisgICUgTm9uLUVuZ2xpc2ggbGV0dGVycy4KKyAgXGRlZlxBQXtBQX0lCisgIFxkZWZcQUV7QUV9JQorICBcZGVmXEx7TH0lCisgIFxkZWZcT0V7T0V9JQorICBcZGVmXE97T30lCisgIFxkZWZcYWF7YWF9JQorICBcZGVmXGFle2FlfSUKKyAgXGRlZlxse2x9JQorICBcZGVmXG9le29lfSUKKyAgXGRlZlxve299JQorICBcZGVmXHNze3NzfSUKKyAgXGRlZlxleGNsYW1kb3dueyF9JQorICBcZGVmXHF1ZXN0aW9uZG93bns/fSUKKyAgXGRlZlxvcmRme2F9JQorICBcZGVmXG9yZG17b30lCisgICUKKyAgXGRlZlxMYVRlWHtMYVRlWH0lCisgIFxkZWZcVGVYe1RlWH0lCisgICUKKyAgJSBBc3NvcnRlZCBzcGVjaWFsIGNoYXJhY3RlcnMuCisgICUgKFRoZSBmb2xsb3dpbmcge30gd2lsbCBlbmQgdXAgaW4gdGhlIHNvcnQgc3RyaW5nLCBidXQgdGhhdCdzIG9rLikKKyAgXGRlZlxidWxsZXR7YnVsbGV0fSUKKyAgXGRlZlxjb21tYXssfSUKKyAgXGRlZlxjb3B5cmlnaHR7Y29weXJpZ2h0fSUKKyAgXGRlZlxyZWdpc3RlcmVkc3ltYm9se1J9JQorICBcZGVmXGRvdHN7Li4ufSUKKyAgXGRlZlxlbmRkb3Rzey4uLn0lCisgIFxkZWZcZXF1aXZ7PT19JQorICBcZGVmXGVycm9ye2Vycm9yfSUKKyAgXGRlZlxldXJve2V1cm99JQorICBcZGVmXGV4cGFuc2lvbns9PT59JQorICBcZGVmXG1pbnVzey19JQorICBcZGVmXHBvdW5kc3twb3VuZHN9JQorICBcZGVmXHBvaW50ey59JQorICBcZGVmXHByaW50ey18fSUKKyAgXGRlZlxyZXN1bHR7PT59JQorICAlCisgICUgV2UgbmVlZCB0byBnZXQgcmlkIG9mIGFsbCBtYWNyb3MsIGxlYXZpbmcgb25seSB0aGUgYXJndW1lbnRzIChpZiBwcmVzZW50KS4KKyAgJSBPZiBjb3Vyc2UgdGhpcyBpcyBub3QgbmVhcmx5IGNvcnJlY3QsIGJ1dCBpdCBpcyB0aGUgYmVzdCB3ZSBjYW4gZG8gZm9yIG5vdy4KKyAgJSBtYWtlaW5mbyBkb2VzIG5vdCBleHBhbmQgbWFjcm9zIGluIHRoZSBhcmd1bWVudCB0byBAZGVmZm4sIHdoaWNoIGVuZHMgdXAKKyAgJSB3cml0aW5nIGFuIGluZGV4IGVudHJ5LCBhbmQgdGV4aW5kZXggaXNuJ3QgcHJlcGFyZWQgZm9yIGFuIGluZGV4IHNvcnQgZW50cnkKKyAgJSB0aGF0IHN0YXJ0cyB3aXRoIFwuCisgICUgCisgICUgU2luY2UgbWFjcm8gaW52b2NhdGlvbnMgYXJlIGZvbGxvd2VkIGJ5IGJyYWNlcywgd2UgY2FuIGp1c3QgcmVkZWZpbmUgdGhlbQorICAlIHRvIHRha2UgYSBzaW5nbGUgVGVYIGFyZ3VtZW50LiAgVGhlIGNhc2Ugb2YgYSBtYWNybyBpbnZvY2F0aW9uIHRoYXQKKyAgJSBnb2VzIHRvIGVuZC1vZi1saW5lIGlzIG5vdCBoYW5kbGVkLgorICAlIAorICBcbWFjcm9saXN0Cit9CisKK1xsZXRcaW5kZXhiYWNrc2xhc2g9MCAgJW92ZXJyaWRkZW4gZHVyaW5nIFxwcmludGluZGV4LgorXGxldFxTRVRtYXJnaW5pbmRleD1ccmVsYXggJSBwdXQgaW5kZXggZW50cmllcyBpbiBtYXJnaW4gKHVuZG9jdW1lbnRlZCk/CisKKyUgTW9zdCBpbmRleCBlbnRyaWVzIGdvIHRocm91Z2ggaGVyZSwgYnV0IFxkb3N1YmluZCBpcyB0aGUgZ2VuZXJhbCBjYXNlLgorJSAjMSBpcyB0aGUgaW5kZXggbmFtZSwgIzIgaXMgdGhlIGVudHJ5IHRleHQuCitcZGVmXGRvaW5kIzEjMntcZG9zdWJpbmR7IzF9eyMyfXt9fQorCislIFdvcmtob3JzZSBmb3IgYWxsIFxmb29pbmRleGVzLgorJSAjMSBpcyBuYW1lIG9mIGluZGV4LCAjMiBpcyBzdHVmZiB0byBwdXQgdGhlcmUsICMzIGlzIHN1YmVudHJ5IC0tCislIGVtcHR5IGlmIGNhbGxlZCBmcm9tIFxkb2luZCwgYXMgd2UgdXN1YWxseSBhcmUgKHRoZSBtYWluIGV4Y2VwdGlvbgorJSBpcyB3aXRoIG1vc3QgZGVmdW5zLCB3aGljaCBjYWxsIHVzIGRpcmVjdGx5KS4KKyUKK1xkZWZcZG9zdWJpbmQjMSMyIzN7JQorICBcaWZsaW5rcworICB7JQorICAgICUgU3RvcmUgdGhlIG1haW4gaW5kZXggZW50cnkgdGV4dCAoaW5jbHVkaW5nIHRoZSB0aGlyZCBhcmcpLgorICAgIFx0b2tzMCA9IHsjMn0lCisgICAgJSBJZiB0aGlyZCBhcmcgaXMgcHJlc2VudCwgcHJlY2VkZSBpdCB3aXRoIGEgc3BhY2UuCisgICAgXGRlZlx0aGlyZGFyZ3sjM30lCisgICAgXGlmeFx0aGlyZGFyZ1xlbXB0eSBcZWxzZQorICAgICAgXHRva3MwID0gXGV4cGFuZGFmdGVye1x0aGVcdG9rczAgXHNwYWNlICMzfSUKKyAgICBcZmkKKyAgICAlCisgICAgXGVkZWZcd3JpdGV0b3tcY3NuYW1lIzFpbmRmaWxlXGVuZGNzbmFtZX0lCisgICAgJQorICAgIFxpZnZtb2RlCisgICAgICBcZG9zdWJpbmRzYW5pdGl6ZQorICAgIFxlbHNlCisgICAgICBcZG9zdWJpbmR3cml0ZQorICAgIFxmaQorICB9JQorICBcZmkKK30KKworJSBXcml0ZSB0aGUgZW50cnkgaW4gXHRva3MwIHRvIHRoZSBpbmRleCBmaWxlOgorJQorXGRlZlxkb3N1YmluZHdyaXRleyUKKyAgJSBQdXQgdGhlIGluZGV4IGVudHJ5IGluIHRoZSBtYXJnaW4gaWYgZGVzaXJlZC4KKyAgXGlmeFxTRVRtYXJnaW5pbmRleFxyZWxheFxlbHNlCisgICAgXGluc2VydFxtYXJnaW57XGhib3h7XHZydWxlIGhlaWdodDhwdCBkZXB0aDNwdCB3aWR0aDBwdCBcdGhlXHRva3MwfX0lCisgIFxmaQorICAlCisgICUgUmVtZW1iZXIsIHdlIGFyZSB3aXRoaW4gYSBncm91cC4KKyAgXGluZGV4ZHVtbWllcyAlIE11c3QgZG8gdGhpcyBoZXJlLCBzaW5jZSBcYmYsIGV0YyBleHBhbmQgYXQgdGhpcyBzdGFnZQorICBcZGVmXGJhY2tzbGFzaGN1cmZvbnR7XGluZGV4YmFja3NsYXNofSUgXGluZGV4YmFja3NsYXNoIGlzbid0IGRlZmluZWQgbm93CisgICAgICAlIHNvIGl0IHdpbGwgYmUgb3V0cHV0IGFzIGlzOyBhbmQgaXQgd2lsbCBwcmludCBhcyBiYWNrc2xhc2guCisgICUKKyAgJSBQcm9jZXNzIHRoZSBpbmRleCBlbnRyeSB3aXRoIGFsbCBmb250IGNvbW1hbmRzIHR1cm5lZCBvZmYsIHRvCisgICUgZ2V0IHRoZSBzdHJpbmcgdG8gc29ydCBieS4KKyAge1xpbmRleG5vZm9udHMKKyAgIFxlZGVmXHRlbXB7XHRoZVx0b2tzMH0lIG5lZWQgZnVsbCBleHBhbnNpb24KKyAgIFx4ZGVmXGluZGV4c29ydHRtcHtcdGVtcH0lCisgIH0lCisgICUKKyAgJSBTZXQgdXAgdGhlIGNvbXBsZXRlIGluZGV4IGVudHJ5LCB3aXRoIGJvdGggdGhlIHNvcnQga2V5IGFuZAorICAlIHRoZSBvcmlnaW5hbCB0ZXh0LCBpbmNsdWRpbmcgYW55IGZvbnQgY29tbWFuZHMuICBXZSB3cml0ZQorICAlIHRocmVlIGFyZ3VtZW50cyB0byBcZW50cnkgdG8gdGhlIC4/PyBmaWxlIChmb3VyIGluIHRoZQorICAlIHN1YmVudHJ5IGNhc2UpLCB0ZXhpbmRleCByZWR1Y2VzIHRvIHR3byB3aGVuIHdyaXRpbmcgdGhlIC4/P3MKKyAgJSBzb3J0ZWQgcmVzdWx0LgorICBcZWRlZlx0ZW1weyUKKyAgICBcd3JpdGVcd3JpdGV0b3slCisgICAgICBcc3RyaW5nXGVudHJ5e1xpbmRleHNvcnR0bXB9e1xub2V4cGFuZFxmb2xpb317XHRoZVx0b2tzMH19JQorICB9JQorICBcdGVtcAorfQorCislIFRha2UgY2FyZSBvZiB1bndhbnRlZCBwYWdlIGJyZWFrczoKKyUKKyUgSWYgYSBza2lwIGlzIHRoZSBsYXN0IHRoaW5nIG9uIHRoZSBsaXN0IG5vdywgcHJlc2VydmUgaXQKKyUgYnkgYmFja2luZyB1cCBieSBcbGFzdHNraXAsIGRvaW5nIHRoZSBcd3JpdGUsIHRoZW4gaW5zZXJ0aW5nCislIHRoZSBza2lwIGFnYWluLiAgT3RoZXJ3aXNlLCB0aGUgd2hhdHNpdCBnZW5lcmF0ZWQgYnkgdGhlCislIFx3cml0ZSB3aWxsIG1ha2UgXGxhc3Rza2lwIHplcm8uICBUaGUgcmVzdWx0IGlzIHRoYXQgc2VxdWVuY2VzCislIGxpa2UgdGhpczoKKyUgQGVuZCBkZWZ1bgorJSBAdGluZGV4IHdoYXRldmVyCislIEBkZWZ1biAuLi4KKyUgd2lsbCBoYXZlIGV4dHJhIHNwYWNlIGluc2VydGVkLCBiZWNhdXNlIHRoZSBcbWVkYnJlYWsgaW4gdGhlCislIHN0YXJ0IG9mIHRoZSBAZGVmdW4gd29uJ3Qgc2VlIHRoZSBza2lwIGluc2VydGVkIGJ5IHRoZSBAZW5kIG9mCislIHRoZSBwcmV2aW91cyBkZWZ1bi4KKyUKKyUgQnV0IGRvbid0IGRvIGFueSBvZiB0aGlzIGlmIHdlJ3JlIG5vdCBpbiB2ZXJ0aWNhbCBtb2RlLiAgV2UKKyUgZG9uJ3Qgd2FudCB0byBkbyBhIFx2c2tpcCBhbmQgcHJlbWF0dXJlbHkgZW5kIGEgcGFyYWdyYXBoLgorJQorJSBBdm9pZCBwYWdlIGJyZWFrcyBkdWUgdG8gdGhlc2UgZXh0cmEgc2tpcHMsIHRvby4KKyUKKyUgQnV0IHdhaXQsIHRoZXJlIGlzIGEgY2F0Y2ggdGhlcmU6CislIFdlJ2xsIGhhdmUgdG8gY2hlY2sgd2hldGhlciBcbGFzdHNraXAgaXMgemVybyBza2lwLiAgXGlmZGltIGlzIG5vdAorJSBzdWZmaWNpZW50IGZvciB0aGlzIHB1cnBvc2UsIGFzIGl0IGlnbm9yZXMgc3RyZXRjaCBhbmQgc2hyaW5rIHBhcnRzCislIG9mIHRoZSBza2lwLiAgVGhlIG9ubHkgd2F5IHNlZW1zIHRvIGJlIHRvIGNoZWNrIHRoZSB0ZXh0dWFsCislIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBza2lwLgorJQorJSBUaGUgZm9sbG93aW5nIGlzIGFsbW9zdCBsaWtlIFxkZWZcemVyb3NraXBtYWNyb3swLjBwdH0gZXhjZXB0IHRoYXQKKyUgdGhlIGBgcCcnIGFuZCBgYHQnJyBjaGFyYWN0ZXJzIGhhdmUgY2F0Y29kZSBcb3RoZXIsIG5vdCAxMSAobGV0dGVyKS4KKyUKK1xlZGVmXHplcm9za2lwbWFjcm97XGV4cGFuZGFmdGVyXHRoZVxjc25hbWUgekBza2lwXGVuZGNzbmFtZX0KKyUKKyUgLi4uLCByZWFkeSwgR086CislCitcZGVmXGRvc3ViaW5kc2FuaXRpemV7JQorICAlIFxsYXN0c2tpcCBhbmQgXGxhc3RwZW5hbHR5IGNhbm5vdCBib3RoIGJlIG5vbnplcm8gc2ltdWx0YW5lb3VzbHkuCisgIFxza2lwMCA9IFxsYXN0c2tpcAorICBcZWRlZlxsYXN0c2tpcG1hY3Jve1x0aGVcbGFzdHNraXB9JQorICBcY291bnQyNTUgPSBcbGFzdHBlbmFsdHkKKyAgJQorICAlIElmIFxsYXN0c2tpcCBpcyBub256ZXJvLCB0aGF0IG1lYW5zIHRoZSBsYXN0IGl0ZW0gd2FzIGEKKyAgJSBza2lwLiAgQW5kIHNpbmNlIGEgc2tpcCBpcyBkaXNjYXJkYWJsZSwgdGhhdCBtZWFucyB0aGlzCisgICUgLVxza2lwMCBnbHVlIHdlJ3JlIGluc2VydGluZyBpcyBwcmVjZWRlZCBieSBhCisgICUgbm9uLWRpc2NhcmRhYmxlIGl0ZW0sIHRoZXJlZm9yZSBpdCBpcyBub3QgYSBwb3RlbnRpYWwKKyAgJSBicmVha3BvaW50LCB0aGVyZWZvcmUgbm8gXG5vYnJlYWsgbmVlZGVkLgorICBcaWZ4XGxhc3Rza2lwbWFjcm9cemVyb3NraXBtYWNybworICBcZWxzZQorICAgIFx2c2tpcC1cc2tpcDAKKyAgXGZpCisgICUKKyAgXGRvc3ViaW5kd3JpdGUKKyAgJQorICBcaWZ4XGxhc3Rza2lwbWFjcm9cemVyb3NraXBtYWNybworICAgICUgSWYgXGxhc3Rza2lwIHdhcyB6ZXJvLCBwZXJoYXBzIHRoZSBsYXN0IGl0ZW0gd2FzIGEgcGVuYWx0eSwgYW5kCisgICAgJSBwZXJoYXBzIGl0IHdhcyA+PTEwMDAwLCBlLmcuLCBhIFxub2JyZWFrLiAgSW4gdGhhdCBjYXNlLCB3ZSB3YW50CisgICAgJSB0byByZS1pbnNlcnQgdGhlIHNhbWUgcGVuYWx0eSAodmFsdWVzID4xMDAwMCBhcmUgdXNlZCBmb3IgdmFyaW91cworICAgICUgc2lnbmFscyk7IHNpbmNlIHdlIGp1c3QgaW5zZXJ0ZWQgYSBub24tZGlzY2FyZGFibGUgaXRlbSwgYW55CisgICAgJSBmb2xsb3dpbmcgZ2x1ZSAoc3VjaCBhcyBhIFxwYXJza2lwKSB3b3VsZCBiZSBhIGJyZWFrcG9pbnQuICBGb3IgZXhhbXBsZToKKyAgICAlIAorICAgICUgICBAZGVmZm4gZGVmZm4td2hhdGV2ZXIKKyAgICAlICAgQHZpbmRleCBpbmRleC13aGF0ZXZlcgorICAgICUgICBEZXNjcmlwdGlvbi4KKyAgICAlIHdvdWxkIGFsbG93IGEgYnJlYWsgYmV0d2VlbiB0aGUgaW5kZXgtd2hhdGV2ZXIgd2hhdHNpdAorICAgICUgYW5kIHRoZSAiRGVzY3JpcHRpb24uIiBwYXJhZ3JhcGguCisgICAgXGlmbnVtXGNvdW50MjU1Pjk5OTkgXHBlbmFsdHlcY291bnQyNTUgXGZpCisgIFxlbHNlCisgICAgJSBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgd2UgaGFkIGEgbm9uemVybyBcbGFzdHNraXAsCisgICAgJSB0aGlzIG1ha2UtdXAgZ2x1ZSB3b3VsZCBiZSBwcmVjZWRlZCBieSBhIG5vbi1kaXNjYXJkYWJsZSBpdGVtCisgICAgJSAodGhlIHdoYXRzaXQgZnJvbSB0aGUgXHdyaXRlKSwgc28gd2UgbXVzdCBpbnNlcnQgYSBcbm9icmVhay4KKyAgICBcbm9icmVha1x2c2tpcFxza2lwMAorICBcZmkKK30KKworJSBUaGUgaW5kZXggZW50cnkgd3JpdHRlbiBpbiB0aGUgZmlsZSBhY3R1YWxseSBsb29rcyBsaWtlCislICBcZW50cnkge3NvcnRzdHJpbmd9e3BhZ2V9e3RvcGljfQorJSBvcgorJSAgXGVudHJ5IHtzb3J0c3RyaW5nfXtwYWdlfXt0b3BpY317c3VidG9waWN9CislIFRoZSB0ZXhpbmRleCBwcm9ncmFtIHJlYWRzIGluIHRoZXNlIGZpbGVzIGFuZCB3cml0ZXMgZmlsZXMKKyUgY29udGFpbmluZyB0aGVzZSBraW5kcyBvZiBsaW5lczoKKyUgIFxpbml0aWFsIHtjfQorJSAgICAgYmVmb3JlIHRoZSBmaXJzdCB0b3BpYyB3aG9zZSBpbml0aWFsIGlzIGMKKyUgIFxlbnRyeSB7dG9waWN9e3BhZ2VsaXN0fQorJSAgICAgZm9yIGEgdG9waWMgdGhhdCBpcyB1c2VkIHdpdGhvdXQgc3VidG9waWNzCislICBccHJpbWFyeSB7dG9waWN9CislICAgICBmb3IgdGhlIGJlZ2lubmluZyBvZiBhIHRvcGljIHRoYXQgaXMgdXNlZCB3aXRoIHN1YnRvcGljcworJSAgXHNlY29uZGFyeSB7c3VidG9waWN9e3BhZ2VsaXN0fQorJSAgICAgZm9yIGVhY2ggc3VidG9waWMuCisKKyUgRGVmaW5lIHRoZSB1c2VyLWFjY2Vzc2libGUgaW5kZXhpbmcgY29tbWFuZHMKKyUgQGZpbmRleCwgQHZpbmRleCwgQGtpbmRleCwgQGNpbmRleC4KKworXGRlZlxmaW5kZXgge1xmbmluZGV4fQorXGRlZlxraW5kZXgge1xreWluZGV4fQorXGRlZlxjaW5kZXgge1xjcGluZGV4fQorXGRlZlx2aW5kZXgge1x2cmluZGV4fQorXGRlZlx0aW5kZXgge1x0cGluZGV4fQorXGRlZlxwaW5kZXgge1xwZ2luZGV4fQorCitcZGVmXGNpbmRleHN1YiB7XGJlZ2luZ3JvdXBcb2JleWxpbmVzXGNpbmRleHN1Yn0KK3tcb2JleWxpbmVzICUKK1xnZGVmXGNpbmRleHN1YiAiIzEiICMyXl5Ne1xlbmRncm91cCAlCitcZG9zdWJpbmR7Y3B9eyMyfXsjMX19fQorCislIERlZmluZSB0aGUgbWFjcm9zIHVzZWQgaW4gZm9ybWF0dGluZyBvdXRwdXQgb2YgdGhlIHNvcnRlZCBpbmRleCBtYXRlcmlhbC4KKworJSBAcHJpbnRpbmRleCBjYXVzZXMgYSBwYXJ0aWN1bGFyIGluZGV4ICh0aGUgPz9zIGZpbGUpIHRvIGdldCBwcmludGVkLgorJSBJdCBkb2VzIG5vdCBwcmludCBhbnkgY2hhcHRlciBoZWFkaW5nICh1c3VhbGx5IGFuIEB1bm51bWJlcmVkKS4KKyUKK1xwYXJzZWFyZ2RlZlxwcmludGluZGV4e1xiZWdpbmdyb3VwCisgIFxkb2JyZWFrIFxjaGFwaGVhZGluZ3NraXB7MTAwMDB9JQorICAlCisgIFxzbWFsbGZvbnRzIFxybQorICBcdG9sZXJhbmNlID0gOTUwMAorICBcZXZlcnlwYXIgPSB7fSUgZG9uJ3Qgd2FudCB0aGUgXGtlcm5cLXBhcmluZGVudCBmcm9tIGluZGVudGF0aW9uIHN1cHByZXNzaW9uLgorICAlCisgICUgU2VlIGlmIHRoZSBpbmRleCBmaWxlIGV4aXN0cyBhbmQgaXMgbm9uZW1wdHkuCisgICUgQ2hhbmdlIGNhdGNvZGUgb2YgQCBoZXJlIHNvIHRoYXQgaWYgdGhlIGluZGV4IGZpbGUgY29udGFpbnMKKyAgJSBcaW5pdGlhbCB7QH0KKyAgJSBhcyBpdHMgZmlyc3QgbGluZSwgVGVYIGRvZXNuJ3QgY29tcGxhaW4gYWJvdXQgbWlzbWF0Y2hlZCBicmFjZXMKKyAgJSAoYmVjYXVzZSBpdCB0aGlua3MgQH0gaXMgYSBjb250cm9sIHNlcXVlbmNlKS4KKyAgXGNhdGNvZGVgXEAgPSAxMQorICBcb3BlbmluIDEgXGpvYm5hbWUuIzFzCisgIFxpZmVvZiAxCisgICAgJSBcZW5kZG91YmxlY29sdW1ucyBnZXRzIGNvbmZ1c2VkIGlmIHRoZXJlIGlzIG5vIHRleHQgaW4gdGhlIGluZGV4LAorICAgICUgYW5kIGl0IGxvc2VzIHRoZSBjaGFwdGVyIHRpdGxlIGFuZCB0aGUgYXV4IGZpbGUgZW50cmllcyBmb3IgdGhlCisgICAgJSBpbmRleC4gIFRoZSBlYXNpZXN0IHdheSB0byBwcmV2ZW50IHRoaXMgcHJvYmxlbSBpcyB0byBtYWtlIHN1cmUKKyAgICAlIHRoZXJlIGlzIHNvbWUgdGV4dC4KKyAgICBccHV0d29yZEluZGV4Tm9uZXhpc3RlbnQKKyAgXGVsc2UKKyAgICAlCisgICAgJSBJZiB0aGUgaW5kZXggZmlsZSBleGlzdHMgYnV0IGlzIGVtcHR5LCB0aGVuIFxvcGVuaW4gbGVhdmVzIFxpZmVvZgorICAgICUgZmFsc2UuICBXZSBoYXZlIHRvIG1ha2UgVGVYIHRyeSB0byByZWFkIHNvbWV0aGluZyBmcm9tIHRoZSBmaWxlLCBzbworICAgICUgaXQgY2FuIGRpc2NvdmVyIGlmIHRoZXJlIGlzIGFueXRoaW5nIGluIGl0LgorICAgIFxyZWFkIDEgdG8gXHRlbXAKKyAgICBcaWZlb2YgMQorICAgICAgXHB1dHdvcmRJbmRleElzRW1wdHkKKyAgICBcZWxzZQorICAgICAgJSBJbmRleCBmaWxlcyBhcmUgYWxtb3N0IFRleGluZm8gc291cmNlLCBidXQgd2UgdXNlIFwgYXMgdGhlIGVzY2FwZQorICAgICAgJSBjaGFyYWN0ZXIuICBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gdXNlIEAsIGJ1dCB0aGF0J3MgdG9vIGJpZyBhIGNoYW5nZQorICAgICAgJSB0byBtYWtlIHJpZ2h0IG5vdy4KKyAgICAgIFxkZWZcaW5kZXhiYWNrc2xhc2h7XGJhY2tzbGFzaGN1cmZvbnR9JQorICAgICAgXGNhdGNvZGVgXFwgPSAwCisgICAgICBcZXNjYXBlY2hhciA9IGBcXAorICAgICAgXGJlZ2luZG91YmxlY29sdW1ucworICAgICAgXGlucHV0IFxqb2JuYW1lLiMxcworICAgICAgXGVuZGRvdWJsZWNvbHVtbnMKKyAgICBcZmkKKyAgXGZpCisgIFxjbG9zZWluIDEKK1xlbmRncm91cH0KKworJSBUaGVzZSBtYWNyb3MgYXJlIHVzZWQgYnkgdGhlIHNvcnRlZCBpbmRleCBmaWxlIGl0c2VsZi4KKyUgQ2hhbmdlIHRoZW0gdG8gY29udHJvbCB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgaW5kZXguCisKK1xkZWZcaW5pdGlhbCMxe3slCisgICUgU29tZSBtaW5vciBmb250IGNoYW5nZXMgZm9yIHRoZSBzcGVjaWFsIGNoYXJhY3RlcnMuCisgIFxsZXRcdGVudHQ9XHNlY3R0IFxsZXRcdHQ9XHNlY3R0IFxsZXRcc2Y9XHNlY3R0CisgICUKKyAgJSBSZW1vdmUgYW55IGdsdWUgd2UgbWF5IGhhdmUsIHdlJ2xsIGJlIGluc2VydGluZyBvdXIgb3duLgorICBccmVtb3ZlbGFzdHNraXAKKyAgJQorICAlIFdlIGxpa2UgYnJlYWtzIGJlZm9yZSB0aGUgaW5kZXggaW5pdGlhbHMsIHNvIGluc2VydCBhIGJvbnVzLgorICBcbm9icmVhaworICBcdnNraXAgMHB0IHBsdXMgM1xiYXNlbGluZXNraXAKKyAgXHBlbmFsdHkgMAorICBcdnNraXAgMHB0IHBsdXMgLTNcYmFzZWxpbmVza2lwCisgICUKKyAgJSBUeXBlc2V0IHRoZSBpbml0aWFsLiAgTWFraW5nIHRoaXMgYWRkIHVwIHRvIGEgd2hvbGUgbnVtYmVyIG9mCisgICUgYmFzZWxpbmVza2lwcyBpbmNyZWFzZXMgdGhlIGNoYW5jZSBvZiB0aGUgZG90cyBsaW5pbmcgdXAgZnJvbSBjb2x1bW4KKyAgJSB0byBjb2x1bW4uICBJdCBzdGlsbCB3b24ndCBvZnRlbiBiZSBwZXJmZWN0LCBiZWNhdXNlIG9mIHRoZSBzdHJldGNoCisgICUgd2UgbmVlZCBiZWZvcmUgZWFjaCBlbnRyeSwgYnV0IGl0J3MgYmV0dGVyLgorICAlCisgICUgTm8gc2hyaW5rIGJlY2F1c2UgaXQgY29uZnVzZXMgXGJhbGFuY2Vjb2x1bW5zLgorICBcdnNraXAgMS42N1xiYXNlbGluZXNraXAgcGx1cyAuNVxiYXNlbGluZXNraXAKKyAgXGxlZnRsaW5le1xzZWNiZiAjMX0lCisgICUgRG8gb3VyIGJlc3Qgbm90IHRvIGJyZWFrIGFmdGVyIHRoZSBpbml0aWFsLgorICBcbm9icmVhaworICBcdnNraXAgLjMzXGJhc2VsaW5lc2tpcCBwbHVzIC4xXGJhc2VsaW5lc2tpcAorfX0KKworJSBcZW50cnkgdHlwZXNldHMgYSBwYXJhZ3JhcGggY29uc2lzdGluZyBvZiB0aGUgdGV4dCAoIzEpLCBkb3QgbGVhZGVycywgYW5kCislIHRoZW4gcGFnZSBudW1iZXIgKCMyKSBmbHVzaGVkIHRvIHRoZSByaWdodCBtYXJnaW4uICBJdCBpcyB1c2VkIGZvciBpbmRleAorJSBhbmQgdGFibGUgb2YgY29udGVudHMgZW50cmllcy4gIFRoZSBwYXJhZ3JhcGggaXMgaW5kZW50ZWQgYnkgXGxlZnRza2lwLgorJQorJSBBIHN0cmFpZ2h0Zm9yd2FyZCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBzdGFydCBsaWtlIHRoaXM6CislCVxkZWZcZW50cnkjMSMyey4uLgorJSBCdXQgdGhpcyBmcm96ZXMgdGhlIGNhdGNvZGVzIGluIHRoZSBhcmd1bWVudCwgYW5kIGNhbiBjYXVzZSBwcm9ibGVtcyB0bworJSBAY29kZSwgd2hpY2ggc2V0cyAtIGFjdGl2ZS4gIFRoaXMgcHJvYmxlbSB3YXMgZml4ZWQgYnkgYSBrbHVkZ2UtLS0KKyUgYGAtJycgd2FzIGFjdGl2ZSB0aHJvdWdob3V0IHdob2xlIGluZGV4LCBidXQgdGhpcyBpc24ndCByZWFsbHkgcmlnaHQuCislCislIFRoZSByaWdodCBzb2x1dGlvbiBpcyB0byBwcmV2ZW50IFxlbnRyeSBmcm9tIHN3YWxsb3dpbmcgdGhlIHdob2xlIHRleHQuCislICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1rYXNhbCwgMjFub3YwMworXGRlZlxlbnRyeXslCisgIFxiZWdpbmdyb3VwCisgICAgJQorICAgICUgU3RhcnQgYSBuZXcgcGFyYWdyYXBoIGlmIG5lY2Vzc2FyeSwgc28gb3VyIGFzc2lnbm1lbnRzIGJlbG93IGNhbid0CisgICAgJSBhZmZlY3QgcHJldmlvdXMgdGV4dC4KKyAgICBccGFyCisgICAgJQorICAgICUgRG8gbm90IGZpbGwgb3V0IHRoZSBsYXN0IGxpbmUgd2l0aCB3aGl0ZSBzcGFjZS4KKyAgICBccGFyZmlsbHNraXAgPSAwaW4KKyAgICAlCisgICAgJSBObyBleHRyYSBzcGFjZSBhYm92ZSB0aGlzIHBhcmFncmFwaC4KKyAgICBccGFyc2tpcCA9IDBpbgorICAgICUKKyAgICAlIERvIG5vdCBwcmVmZXIgYSBzZXBhcmF0ZSBsaW5lIGVuZGluZyB3aXRoIGEgaHlwaGVuIHRvIGZld2VyIGxpbmVzLgorICAgIFxmaW5hbGh5cGhlbmRlbWVyaXRzID0gMAorICAgICUKKyAgICAlIFxoYW5naW5kZW50IGlzIG9ubHkgcmVsZXZhbnQgd2hlbiB0aGUgZW50cnkgdGV4dCBhbmQgcGFnZSBudW1iZXIKKyAgICAlIGRvbid0IGJvdGggZml0IG9uIG9uZSBsaW5lLiAgSW4gdGhhdCBjYXNlLCBib2Igc3VnZ2VzdHMgc3RhcnRpbmcgdGhlCisgICAgJSBkb3RzIHByZXR0eSBmYXIgb3ZlciBvbiB0aGUgbGluZS4gIFVuZm9ydHVuYXRlbHksIGEgbGFyZ2UKKyAgICAlIGluZGVudGF0aW9uIGxvb2tzIHdyb25nIHdoZW4gdGhlIGVudHJ5IHRleHQgaXRzZWxmIGlzIGJyb2tlbiBhY3Jvc3MKKyAgICAlIGxpbmVzLiAgU28gd2UgdXNlIGEgc21hbGwgaW5kZW50YXRpb24gYW5kIHB1dCB1cCB3aXRoIGxvbmcgbGVhZGVycy4KKyAgICAlCisgICAgJSBcaGFuZ2FmdGVyIGlzIHJlc2V0IHRvIDEgKHdoaWNoIGlzIHRoZSB2YWx1ZSB3ZSB3YW50KSBhdCB0aGUgc3RhcnQKKyAgICAlIG9mIGVhY2ggcGFyYWdyYXBoLCBzbyB3ZSBuZWVkIG5vdCBkbyBhbnl0aGluZyB3aXRoIHRoYXQuCisgICAgXGhhbmdpbmRlbnQgPSAyZW0KKyAgICAlCisgICAgJSBXaGVuIHRoZSBlbnRyeSB0ZXh0IG5lZWRzIHRvIGJlIGJyb2tlbiwganVzdCBmaWxsIG91dCB0aGUgZmlyc3QgbGluZQorICAgICUgd2l0aCBibGFuayBzcGFjZS4KKyAgICBccmlnaHRza2lwID0gMHB0IHBsdXMxZmlsCisgICAgJQorICAgICUgQSBiaXQgb2Ygc3RyZXRjaCBiZWZvcmUgZWFjaCBlbnRyeSBmb3IgdGhlIGJlbmVmaXQgb2YgYmFsYW5jaW5nCisgICAgJSBjb2x1bW5zLgorICAgIFx2c2tpcCAwcHQgcGx1czFwdAorICAgICUKKyAgICAlIFN3YWxsb3cgdGhlIGxlZnQgYnJhY2Ugb2YgdGhlIHRleHQgKGZpcnN0IHBhcmFtZXRlcik6CisgICAgXGFmdGVyYXNzaWdubWVudFxkb2VudHJ5CisgICAgXGxldFx0ZW1wID0KK30KK1xkZWZcZG9lbnRyeXslCisgICAgXGJncm91cCAlIEluc3RlYWQgb2YgdGhlIHN3YWxsb3dlZCBicmFjZS4KKyAgICAgIFxub2luZGVudAorICAgICAgXGFmdGVyZ3JvdXBcZmluaXNoZW50cnkKKyAgICAgICUgQW5kIG5vdyBjb21lcyB0aGUgdGV4dCBvZiB0aGUgZW50cnkuCit9CitcZGVmXGZpbmlzaGVudHJ5IzF7JQorICAgICUgIzEgaXMgdGhlIHBhZ2UgbnVtYmVyLgorICAgICUKKyAgICAlIFRoZSBmb2xsb3dpbmcgaXMga2x1ZGdlZCB0byBub3Qgb3V0cHV0IGEgbGluZSBvZiBkb3RzIGluIHRoZSBpbmRleCBpZgorICAgICUgdGhlcmUgYXJlIG5vIHBhZ2UgbnVtYmVycy4gIFRoZSBuZXh0IHBlcnNvbiB3aG8gYnJlYWtzIHRoaXMgd2lsbCBiZQorICAgICUgY3Vyc2VkIGJ5IGEgVW5peCBkYWVtb24uCisgICAgXGRlZlx0ZW1wYXt7XHJtIH19JQorICAgIFxkZWZcdGVtcGJ7IzF9JQorICAgIFxlZGVmXHRlbXBje1x0ZW1wYX0lCisgICAgXGVkZWZcdGVtcGR7XHRlbXBifSUKKyAgICBcaWZ4XHRlbXBjXHRlbXBkCisgICAgICBcICUKKyAgICBcZWxzZQorICAgICAgJQorICAgICAgJSBJZiB3ZSBtdXN0LCBwdXQgdGhlIHBhZ2UgbnVtYmVyIG9uIGEgbGluZSBvZiBpdHMgb3duLCBhbmQgZmlsbCBvdXQKKyAgICAgICUgdGhpcyBsaW5lIHdpdGggYmxhbmsgc3BhY2UuICAoVGhlIFxoZmlsIGlzIG92ZXJ3aGVsbWVkIHdpdGggdGhlCisgICAgICAlIGZpbGwgbGVhZGVycyBnbHVlIGluIFxpbmRleGRvdGZpbGwgaWYgdGhlIHBhZ2UgbnVtYmVyIGRvZXMgZml0LikKKyAgICAgIFxoZmlsXHBlbmFsdHk1MAorICAgICAgXG51bGxcbm9icmVha1xpbmRleGRvdGZpbGwgJSBIYXZlIGxlYWRlcnMgYmVmb3JlIHRoZSBwYWdlIG51bWJlci4KKyAgICAgICUKKyAgICAgICUgVGhlIGBcICcgaGVyZSBpcyByZW1vdmVkIGJ5IHRoZSBpbXBsaWNpdCBcdW5za2lwIHRoYXQgVGVYIGRvZXMgYXMKKyAgICAgICUgcGFydCBvZiAodGhlIHByaW1pdGl2ZSkgXHBhci4gIFdpdGhvdXQgaXQsIGEgc3B1cmlvdXMgdW5kZXJmdWxsCisgICAgICAlIFxoYm94IGVuc3Vlcy4KKyAgICAgIFxpZnBkZgorCVxwZGZnZXR0b2tzIzEuJQorCVwgXHRoZVx0b2tzQQorICAgICAgXGVsc2UKKwlcICMxJQorICAgICAgXGZpCisgICAgXGZpCisgICAgXHBhcgorICBcZW5kZ3JvdXAKK30KKworJSBMaWtlIFxkb3RmaWxsIGV4Y2VwdCB0YWtlcyBhdCBsZWFzdCAxIGVtLgorXGRlZlxpbmRleGRvdGZpbGx7XGNsZWFkZXJzCisgIFxoYm94eyRcbWF0aHN1cnJvdW5kPTBwdCBcbWtlcm4xLjVtdSAke1xpdCAufSQgXG1rZXJuMS41bXUkfVxoc2tpcCAxZW0gcGx1cyAxZmlsbH0KKworXGRlZlxwcmltYXJ5ICMxe1xsaW5leyMxXGhmaWx9fQorCitcbmV3c2tpcFxzZWNvbmRhcnlpbmRlbnQgXHNlY29uZGFyeWluZGVudD0wLjVjbQorXGRlZlxzZWNvbmRhcnkjMSMye3slCisgIFxwYXJmaWxsc2tpcD0waW4KKyAgXHBhcnNraXA9MGluCisgIFxoYW5naW5kZW50PTFpbgorICBcaGFuZ2FmdGVyPTEKKyAgXG5vaW5kZW50XGhza2lwXHNlY29uZGFyeWluZGVudFxoYm94eyMxfVxpbmRleGRvdGZpbGwKKyAgXGlmcGRmCisgICAgXHBkZmdldHRva3MjMi5cIFx0aGVcdG9rc0EgJSBUaGUgcGFnZSBudW1iZXIgZW5kcyB0aGUgcGFyYWdyYXBoLgorICBcZWxzZQorICAgICMyCisgIFxmaQorICBccGFyCit9fQorCislIERlZmluZSB0d28tY29sdW1uIG1vZGUsIHdoaWNoIHdlIHVzZSB0byB0eXBlc2V0IGluZGV4ZXMuCislIEFkYXB0ZWQgZnJvbSB0aGUgVGVYYm9vaywgcGFnZSA0MTYsIHdoaWNoIGlzIHRvIHNheSwKKyUgdGhlIG1hbm1hYy50ZXggZm9ybWF0IHVzZWQgdG8gcHJpbnQgdGhlIFRlWGJvb2sgaXRzZWxmLgorXGNhdGNvZGVgXEA9MTEKKworXG5ld2JveFxwYXJ0aWFscGFnZQorXG5ld2RpbWVuXGRvdWJsZWNvbHVtbmhzaXplCisKK1xkZWZcYmVnaW5kb3VibGVjb2x1bW5ze1xiZWdpbmdyb3VwICUgZW5kZWQgYnkgXGVuZGRvdWJsZWNvbHVtbnMKKyAgJSBHcmFiIGFueSBzaW5nbGUtY29sdW1uIG1hdGVyaWFsIGFib3ZlIHVzLgorICBcb3V0cHV0ID0geyUKKyAgICAlCisgICAgJSBIZXJlIGlzIGEgcG9zc2liaWxpdHkgbm90IGZvcmVzZWVuIGluIG1hbm1hYzogaWYgd2UgYWNjdW11bGF0ZSBhCisgICAgJSB3aG9sZSBsb3Qgb2YgbWF0ZXJpYWwsIHdlIG1pZ2h0IGVuZCB1cCBjYWxsaW5nIHRoaXMgXG91dHB1dAorICAgICUgcm91dGluZSB0d2ljZSBpbiBhIHJvdyAoc2VlIHRoZSBkb3VibGVjb2wtbG9zZSB0ZXN0LCB3aGljaCBpcworICAgICUgZXNzZW50aWFsbHkgYSBjb3VwbGUgb2YgaW5kZXhlcyB3aXRoIEBzZXRjaGFwdGVybmV3cGFnZSBvZmYpLiAgSW4KKyAgICAlIHRoYXQgY2FzZSB3ZSBqdXN0IHNoaXAgb3V0IHdoYXQgaXMgaW4gXHBhcnRpYWxwYWdlIHdpdGggdGhlIG5vcm1hbAorICAgICUgb3V0cHV0IHJvdXRpbmUuICBHZW5lcmFsbHksIFxwYXJ0aWFscGFnZSB3aWxsIGJlIGVtcHR5IHdoZW4gdGhpcworICAgICUgcnVucyBhbmQgdGhpcyB3aWxsIGJlIGEgbm8tb3AuICBTZWUgdGhlIGluZGV4c3ByZWFkLnRleCB0ZXN0IGNhc2UuCisgICAgXGlmdm9pZFxwYXJ0aWFscGFnZSBcZWxzZQorICAgICAgXG9uZXBhZ2VvdXR7XHBhZ2Vjb250ZW50c1xwYXJ0aWFscGFnZX0lCisgICAgXGZpCisgICAgJQorICAgIFxnbG9iYWxcc2V0Ym94XHBhcnRpYWxwYWdlID0gXHZib3h7JQorICAgICAgJSBVbnZib3ggdGhlIG1haW4gb3V0cHV0IHBhZ2UuCisgICAgICBcdW52Ym94XFBBR0UKKyAgICAgIFxrZXJuLVx0b3Bza2lwIFxrZXJuXGJhc2VsaW5lc2tpcAorICAgIH0lCisgIH0lCisgIFxlamVjdCAlIHJ1biB0aGF0IG91dHB1dCByb3V0aW5lIHRvIHNldCBccGFydGlhbHBhZ2UKKyAgJQorICAlIFVzZSB0aGUgZG91YmxlLWNvbHVtbiBvdXRwdXQgcm91dGluZSBmb3Igc3Vic2VxdWVudCBwYWdlcy4KKyAgXG91dHB1dCA9IHtcZG91YmxlY29sdW1ub3V0fSUKKyAgJQorICAlIENoYW5nZSB0aGUgcGFnZSBzaXplIHBhcmFtZXRlcnMuICBXZSBjb3VsZCBkbyB0aGlzIG9uY2Ugb3V0c2lkZSB0aGlzCisgICUgcm91dGluZSwgaW4gZWFjaCBvZiBAc21hbGxib29rLCBAYWZvdXJwYXBlciwgYW5kIHRoZSBkZWZhdWx0IDguNXgxMQorICAlIGZvcm1hdCwgYnV0IHRoZW4gd2UgcmVwZWF0IHRoZSBzYW1lIGNvbXB1dGF0aW9uLiAgUmVwZWF0aW5nIGEgY291cGxlCisgICUgb2YgYXNzaWdubWVudHMgb25jZSBwZXIgaW5kZXggaXMgY2xlYXJseSBtZWFuaW5nbGVzcyBmb3IgdGhlCisgICUgZXhlY3V0aW9uIHRpbWUsIHNvIHdlIG1heSBhcyB3ZWxsIGRvIGl0IGluIG9uZSBwbGFjZS4KKyAgJQorICAlIEZpcnN0IHdlIGhhbHZlIHRoZSBsaW5lIGxlbmd0aCwgbGVzcyBhIGxpdHRsZSBmb3IgdGhlIGd1dHRlciBiZXR3ZWVuCisgICUgdGhlIGNvbHVtbnMuICBXZSBjb21wdXRlIHRoZSBndXR0ZXIgYmFzZWQgb24gdGhlIGxpbmUgbGVuZ3RoLCBzbyBpdAorICAlIGNoYW5nZXMgYXV0b21hdGljYWxseSB3aXRoIHRoZSBwYXBlciBmb3JtYXQuICBUaGUgbWFnaWMgY29uc3RhbnQKKyAgJSBiZWxvdyBpcyBjaG9zZW4gc28gdGhhdCB0aGUgZ3V0dGVyIGhhcyB0aGUgc2FtZSB2YWx1ZSAod2VsbCwgKy08MXB0KQorICAlIGFzIGl0IGRpZCB3aGVuIHdlIGhhcmQtY29kZWQgaXQuCisgICUKKyAgJSBXZSBwdXQgdGhlIHJlc3VsdCBpbiBhIHNlcGFyYXRlIHJlZ2lzdGVyLCBcZG91YmxlY29sdW1oc2l6ZSwgc28gd2UKKyAgJSBjYW4gcmVzdG9yZSBpdCBpbiBccGFnZXNvZmFyLCBhZnRlciBcaHNpemUgaXRzZWxmIGhhcyAocG90ZW50aWFsbHkpCisgICUgYmVlbiBjbG9iYmVyZWQuCisgICUKKyAgXGRvdWJsZWNvbHVtbmhzaXplID0gXGhzaXplCisgICAgXGFkdmFuY2VcZG91YmxlY29sdW1uaHNpemUgYnkgLS4wNDE1NFxoc2l6ZQorICAgIFxkaXZpZGVcZG91YmxlY29sdW1uaHNpemUgYnkgMgorICBcaHNpemUgPSBcZG91YmxlY29sdW1uaHNpemUKKyAgJQorICAlIERvdWJsZSB0aGUgXHZzaXplIGFzIHdlbGwuICAoV2UgZG9uJ3QgbmVlZCBhIHNlcGFyYXRlIHJlZ2lzdGVyIGhlcmUsCisgICUgc2luY2Ugbm9ib2R5IGNsb2JiZXJzIFx2c2l6ZS4pCisgIFx2c2l6ZSA9IDJcdnNpemUKK30KKworJSBUaGUgZG91YmxlLWNvbHVtbiBvdXRwdXQgcm91dGluZSBmb3IgYWxsIGRvdWJsZS1jb2x1bW4gcGFnZXMgZXhjZXB0CislIHRoZSBsYXN0LgorJQorXGRlZlxkb3VibGVjb2x1bW5vdXR7JQorICBcc3BsaXR0b3Bza2lwPVx0b3Bza2lwIFxzcGxpdG1heGRlcHRoPVxtYXhkZXB0aAorICAlIEdldCB0aGUgYXZhaWxhYmxlIHNwYWNlIGZvciB0aGUgZG91YmxlIGNvbHVtbnMgLS0gdGhlIG5vcm1hbAorICAlICh1bmRvdWJsZWQpIHBhZ2UgaGVpZ2h0IG1pbnVzIGFueSBtYXRlcmlhbCBsZWZ0IG92ZXIgZnJvbSB0aGUKKyAgJSBwcmV2aW91cyBwYWdlLgorICBcZGltZW5AID0gXHZzaXplCisgIFxkaXZpZGVcZGltZW5AIGJ5IDIKKyAgXGFkdmFuY2VcZGltZW5AIGJ5IC1caHRccGFydGlhbHBhZ2UKKyAgJQorICAlIGJveDAgd2lsbCBiZSB0aGUgbGVmdC1oYW5kIGNvbHVtbiwgYm94MiB0aGUgcmlnaHQuCisgIFxzZXRib3gwPVx2c3BsaXQyNTUgdG9cZGltZW5AIFxzZXRib3gyPVx2c3BsaXQyNTUgdG9cZGltZW5ACisgIFxvbmVwYWdlb3V0XHBhZ2Vzb2ZhcgorICBcdW52Ym94MjU1CisgIFxwZW5hbHR5XG91dHB1dHBlbmFsdHkKK30KKyUKKyUgUmUtb3V0cHV0IHRoZSBjb250ZW50cyBvZiB0aGUgb3V0cHV0IHBhZ2UgLS0gYW55IHByZXZpb3VzIG1hdGVyaWFsLAorJSBmb2xsb3dlZCBieSB0aGUgdHdvIGJveGVzIHdlIGp1c3Qgc3BsaXQsIGluIGJveDAgYW5kIGJveDIuCitcZGVmXHBhZ2Vzb2ZhcnslCisgIFx1bnZib3hccGFydGlhbHBhZ2UKKyAgJQorICBcaHNpemUgPSBcZG91YmxlY29sdW1uaHNpemUKKyAgXHdkMD1caHNpemUgXHdkMj1caHNpemUKKyAgXGhib3ggdG9ccGFnZXdpZHRoe1xib3gwXGhmaWxcYm94Mn0lCit9CislCislIEFsbCBkb25lIHdpdGggZG91YmxlIGNvbHVtbnMuCitcZGVmXGVuZGRvdWJsZWNvbHVtbnN7JQorICBcb3V0cHV0ID0geyUKKyAgICAlIFNwbGl0IHRoZSBsYXN0IG9mIHRoZSBkb3VibGUtY29sdW1uIG1hdGVyaWFsLiAgTGVhdmUgaXQgb24gdGhlCisgICAgJSBjdXJyZW50IHBhZ2UsIG5vIGF1dG9tYXRpYyBwYWdlIGJyZWFrLgorICAgIFxiYWxhbmNlY29sdW1ucworICAgICUKKyAgICAlIElmIHdlIGVuZCB1cCBzcGxpdHRpbmcgdG9vIG11Y2ggbWF0ZXJpYWwgZm9yIHRoZSBjdXJyZW50IHBhZ2UsCisgICAgJSB0aG91Z2gsIHRoZXJlIHdpbGwgYmUgYW5vdGhlciBwYWdlIGJyZWFrIHJpZ2h0IGFmdGVyIHRoaXMgXG91dHB1dAorICAgICUgaW52b2NhdGlvbiBlbmRzLiAgSGF2aW5nIGNhbGxlZCBcYmFsYW5jZWNvbHVtbnMgb25jZSwgd2UgZG8gbm90CisgICAgJSB3YW50IHRvIGNhbGwgaXQgYWdhaW4uICBUaGVyZWZvcmUsIHJlc2V0IFxvdXRwdXQgdG8gaXRzIG5vcm1hbAorICAgICUgZGVmaW5pdGlvbiByaWdodCBhd2F5LiAgKFdlIGhvcGUgXGJhbGFuY2Vjb2x1bW5zIHdpbGwgbmV2ZXIgYmUKKyAgICAlIGNhbGxlZCBvbiB0byBiYWxhbmNlIHRvbyBtdWNoIG1hdGVyaWFsLCBidXQgaWYgaXQgaXMsIHRoaXMgbWFrZXMKKyAgICAlIHRoZSBvdXRwdXQgc29tZXdoYXQgbW9yZSBwYWxhdGFibGUuKQorICAgIFxnbG9iYWxcb3V0cHV0ID0ge1xvbmVwYWdlb3V0e1xwYWdlY29udGVudHNcUEFHRX19JQorICB9JQorICBcZWplY3QKKyAgXGVuZGdyb3VwICUgc3RhcnRlZCBpbiBcYmVnaW5kb3VibGVjb2x1bW5zCisgICUKKyAgJSBccGFnZWdvYWwgd2FzIHNldCB0byB0aGUgZG91YmxlZCBcdnNpemUgYWJvdmUsIHNpbmNlIHdlIHJlc3RhcnRlZAorICAlIHRoZSBjdXJyZW50IHBhZ2UuICBXZSdyZSBub3cgYmFjayB0byBub3JtYWwgc2luZ2xlLWNvbHVtbgorICAlIHR5cGVzZXR0aW5nLCBzbyByZXNldCBccGFnZWdvYWwgdG8gdGhlIG5vcm1hbCBcdnNpemUgKGFmdGVyIHRoZQorICAlIFxlbmRncm91cCB3aGVyZSBcdnNpemUgZ290IHJlc3RvcmVkKS4KKyAgXHBhZ2Vnb2FsID0gXHZzaXplCit9CislCislIENhbGxlZCBhdCB0aGUgZW5kIG9mIHRoZSBkb3VibGUgY29sdW1uIG1hdGVyaWFsLgorXGRlZlxiYWxhbmNlY29sdW1uc3slCisgIFxzZXRib3gwID0gXHZib3h7XHVudmJveDI1NX0lIGxpa2UgXGJveDI1NSBidXQgbW9yZSBlZmZpY2llbnQsIHNlZSBwLjEyMC4KKyAgXGRpbWVuQCA9IFxodDAKKyAgXGFkdmFuY2VcZGltZW5AIGJ5IFx0b3Bza2lwCisgIFxhZHZhbmNlXGRpbWVuQCBieS1cYmFzZWxpbmVza2lwCisgIFxkaXZpZGVcZGltZW5AIGJ5IDIgJSB0YXJnZXQgdG8gc3BsaXQgdG8KKyAgJWRlYnVnXG1lc3NhZ2V7ZmluYWwgMi1jb2x1bW4gbWF0ZXJpYWwgaGVpZ2h0PVx0aGVcaHQwLCB0YXJnZXQ9XHRoZVxkaW1lbkAufSUKKyAgXHNwbGl0dG9wc2tpcCA9IFx0b3Bza2lwCisgICUgTG9vcCB1bnRpbCB3ZSBnZXQgYSBkZWNlbnQgYnJlYWtwb2ludC4KKyAgeyUKKyAgICBcdmJhZG5lc3MgPSAxMDAwMAorICAgIFxsb29wCisgICAgICBcZ2xvYmFsXHNldGJveDMgPSBcY29weTAKKyAgICAgIFxnbG9iYWxcc2V0Ym94MSA9IFx2c3BsaXQzIHRvIFxkaW1lbkAKKyAgICBcaWZkaW1caHQzPlxkaW1lbkAKKyAgICAgIFxnbG9iYWxcYWR2YW5jZVxkaW1lbkAgYnkgMXB0CisgICAgXHJlcGVhdAorICB9JQorICAlZGVidWdcbWVzc2FnZXtzcGxpdCB0byBcdGhlXGRpbWVuQCwgY29sdW1uIGhlaWdodHM6IFx0aGVcaHQxLCBcdGhlXGh0My59JQorICBcc2V0Ym94MD1cdmJveCB0b1xkaW1lbkB7XHVudmJveDF9JQorICBcc2V0Ym94Mj1cdmJveCB0b1xkaW1lbkB7XHVudmJveDN9JQorICAlCisgIFxwYWdlc29mYXIKK30KK1xjYXRjb2RlYFxAID0gXG90aGVyCisKKworXG1lc3NhZ2V7c2VjdGlvbmluZyx9CislIENoYXB0ZXJzLCBzZWN0aW9ucywgZXRjLgorCislIFx1bm51bWJlcmVkbm8gaXMgYW4gb3h5bW9yb24sIG9mIGNvdXJzZS4gIEJ1dCB3ZSBjb3VudCB0aGUgdW5udW1iZXJlZAorJSBzZWN0aW9ucyBzbyB0aGF0IHdlIGNhbiByZWZlciB0byB0aGVtIHVuYW1iaWd1b3VzbHkgaW4gdGhlIHBkZgorJSBvdXRsaW5lcyBieSB0aGVpciAic2VjdGlvbiBudW1iZXIiLiAgV2UgYXZvaWQgY29sbGlzaW9ucyB3aXRoIGNoYXB0ZXIKKyUgbnVtYmVycyBieSBzdGFydGluZyB0aGVtIGF0IDEwMDAwLiAgKElmIGEgZG9jdW1lbnQgZXZlciBoYXMgMTAwMDAKKyUgY2hhcHRlcnMsIHdlJ3JlIGluIHRyb3VibGUgYW55d2F5LCBJJ20gc3VyZS4pCitcbmV3Y291bnRcdW5udW1iZXJlZG5vIFx1bm51bWJlcmVkbm8gPSAxMDAwMAorXG5ld2NvdW50XGNoYXBubworXG5ld2NvdW50XHNlY25vICAgICAgICBcc2Vjbm89MAorXG5ld2NvdW50XHN1YnNlY25vICAgICBcc3Vic2Vjbm89MAorXG5ld2NvdW50XHN1YnN1YnNlY25vICBcc3Vic3Vic2Vjbm89MAorCislIFRoaXMgY291bnRlciBpcyBmdW5ueSBzaW5jZSBpdCBjb3VudHMgdGhyb3VnaCBjaGFyY29kZXMgb2YgbGV0dGVycyBBLCBCLCAuLi4KK1xuZXdjb3VudFxhcHBlbmRpeG5vICBcYXBwZW5kaXhubyA9IGBcQAorJQorJSBcZGVmXGFwcGVuZGl4bGV0dGVye1xjaGFyXHRoZVxhcHBlbmRpeG5vfQorJSBXZSBkbyB0aGUgZm9sbG93aW5nIHVnbHkgY29uZGl0aW9uYWwgaW5zdGVhZCBvZiB0aGUgYWJvdmUgc2ltcGxlCislIGNvbnN0cnVjdCBmb3IgdGhlIHNha2Ugb2YgcGRmdGV4LCB3aGljaCBuZWVkcyB0aGUgYWN0dWFsCislIGxldHRlciBpbiB0aGUgZXhwYW5zaW9uLCBub3QganVzdCB0eXBlc2V0LgorJQorXGRlZlxhcHBlbmRpeGxldHRlcnslCisgIFxpZm51bVxhcHBlbmRpeG5vPWBBIEElCisgIFxlbHNlXGlmbnVtXGFwcGVuZGl4bm89YEIgQiUKKyAgXGVsc2VcaWZudW1cYXBwZW5kaXhubz1gQyBDJQorICBcZWxzZVxpZm51bVxhcHBlbmRpeG5vPWBEIEQlCisgIFxlbHNlXGlmbnVtXGFwcGVuZGl4bm89YEUgRSUKKyAgXGVsc2VcaWZudW1cYXBwZW5kaXhubz1gRiBGJQorICBcZWxzZVxpZm51bVxhcHBlbmRpeG5vPWBHIEclCisgIFxlbHNlXGlmbnVtXGFwcGVuZGl4bm89YEggSCUKKyAgXGVsc2VcaWZudW1cYXBwZW5kaXhubz1gSSBJJQorICBcZWxzZVxpZm51bVxhcHBlbmRpeG5vPWBKIEolCisgIFxlbHNlXGlmbnVtXGFwcGVuZGl4bm89YEsgSyUKKyAgXGVsc2VcaWZudW1cYXBwZW5kaXhubz1gTCBMJQorICBcZWxzZVxpZm51bVxhcHBlbmRpeG5vPWBNIE0lCisgIFxlbHNlXGlmbnVtXGFwcGVuZGl4bm89YE4gTiUKKyAgXGVsc2VcaWZudW1cYXBwZW5kaXhubz1gTyBPJQorICBcZWxzZVxpZm51bVxhcHBlbmRpeG5vPWBQIFAlCisgIFxlbHNlXGlmbnVtXGFwcGVuZGl4bm89YFEgUSUKKyAgXGVsc2VcaWZudW1cYXBwZW5kaXhubz1gUiBSJQorICBcZWxzZVxpZm51bVxhcHBlbmRpeG5vPWBTIFMlCisgIFxlbHNlXGlmbnVtXGFwcGVuZGl4bm89YFQgVCUKKyAgXGVsc2VcaWZudW1cYXBwZW5kaXhubz1gVSBVJQorICBcZWxzZVxpZm51bVxhcHBlbmRpeG5vPWBWIFYlCisgIFxlbHNlXGlmbnVtXGFwcGVuZGl4bm89YFcgVyUKKyAgXGVsc2VcaWZudW1cYXBwZW5kaXhubz1gWCBYJQorICBcZWxzZVxpZm51bVxhcHBlbmRpeG5vPWBZIFklCisgIFxlbHNlXGlmbnVtXGFwcGVuZGl4bm89YFogWiUKKyAgJSBUaGUgXHRoZSBpcyBuZWNlc3NhcnksIGRlc3BpdGUgYXBwZWFyYW5jZXMsIGJlY2F1c2UgXGFwcGVuZGl4bGV0dGVyIGlzCisgICUgZXhwYW5kZWQgd2hpbGUgd3JpdGluZyB0aGUgLnRvYyBmaWxlLiAgXGNoYXJcYXBwZW5kaXhubyBpcyBub3QKKyAgJSBleHBhbmRhYmxlLCB0aHVzIGl0IGlzIHdyaXR0ZW4gbGl0ZXJhbGx5LCB0aHVzIGFsbCBhcHBlbmRpeGVzIGNvbWUgb3V0CisgICUgd2l0aCB0aGUgc2FtZSBsZXR0ZXIgKG9yIEApIGluIHRoZSB0b2Mgd2l0aG91dCBpdC4KKyAgXGVsc2VcY2hhclx0aGVcYXBwZW5kaXhubworICBcZmlcZmlcZmlcZmlcZmlcZmlcZmlcZmlcZmlcZmlcZmlcZmlcZmkKKyAgXGZpXGZpXGZpXGZpXGZpXGZpXGZpXGZpXGZpXGZpXGZpXGZpXGZpfQorCislIEVhY2ggQGNoYXB0ZXIgZGVmaW5lcyB0aGlzIGFzIHRoZSBuYW1lIG9mIHRoZSBjaGFwdGVyLgorJSBwYWdlIGhlYWRpbmdzIGFuZCBmb290aW5ncyBjYW4gdXNlIGl0LiAgQHNlY3Rpb24gZG9lcyBsaWtld2lzZS4KKyUgSG93ZXZlciwgdGhleSBhcmUgbm90IHJlbGlhYmxlLCBiZWNhdXNlIHdlIGRvbid0IHVzZSBtYXJrcy4KK1xkZWZcdGhpc2NoYXB0ZXJ7fQorXGRlZlx0aGlzc2VjdGlvbnt9CisKK1xuZXdjb3VudFxhYnNzZWNsZXZlbCAlIHVzZWQgdG8gY2FsY3VsYXRlIHByb3BlciBoZWFkaW5nIGxldmVsCitcbmV3Y291bnRcc2VjYmFzZVxzZWNiYXNlPTAgJSBAcmFpc2VzZWN0aW9ucy9AbG93ZXJzZWN0aW9ucyBtb2RpZnkgdGhpcyBjb3VudAorCislIEByYWlzZXNlY3Rpb25zOiB0cmVhdCBAc2VjdGlvbiBhcyBjaGFwdGVyLCBAc3Vic2VjdGlvbiBhcyBzZWN0aW9uLCBldGMuCitcZGVmXHJhaXNlc2VjdGlvbnN7XGdsb2JhbFxhZHZhbmNlXHNlY2Jhc2UgYnkgLTF9CitcbGV0XHVwPVxyYWlzZXNlY3Rpb25zICUgb3JpZ2luYWwgQkZveCBuYW1lCisKKyUgQGxvd2Vyc2VjdGlvbnM6IHRyZWF0IEBjaGFwdGVyIGFzIHNlY3Rpb24sIEBzZWN0aW9uIGFzIHN1YnNlY3Rpb24sIGV0Yy4KK1xkZWZcbG93ZXJzZWN0aW9uc3tcZ2xvYmFsXGFkdmFuY2Vcc2VjYmFzZSBieSAxfQorXGxldFxkb3duPVxsb3dlcnNlY3Rpb25zICUgb3JpZ2luYWwgQkZveCBuYW1lCisKKyUgd2Ugb25seSBoYXZlIHN1YnN1Yi4KK1xjaGFyZGVmXG1heHNlY2xldmVsID0gMworJQorJSBBIG51bWJlcmVkIHNlY3Rpb24gd2l0aGluIGFuIHVubnVtYmVyZWQgY2hhbmdlcyB0byB1bm51bWJlcmVkIHRvby4KKyUgVG8gYWNoaXZlIHRoaXMsIHJlbWVtYmVyIHRoZSAiYmlnZ2VzdCIgdW5udW0uIHNlYy4gd2UgYXJlIGN1cnJlbnRseSBpbjoKK1xjaGFyZGVmXHVubWxldmVsID0gXG1heHNlY2xldmVsCislCislIFRyYWNlIHdoZXRoZXIgdGhlIGN1cnJlbnQgY2hhcHRlciBpcyBhbiBhcHBlbmRpeCBvciBub3Q6CislIFxjaGFwaGVhZHR5cGUgaXMgIk4iIG9yICJBIiwgdW5udW1iZXJlZCBjaGFwdGVycyBhcmUgaWdub3JlZC4KK1xkZWZcY2hhcGhlYWR0eXBle059CisKKyUgQ2hvb3NlIGEgaGVhZGluZyBtYWNybworJSAjMSBpcyBoZWFkaW5nIHR5cGUKKyUgIzIgaXMgaGVhZGluZyBsZXZlbAorJSAjMyBpcyB0ZXh0IGZvciBoZWFkaW5nCitcZGVmXGdlbmhlYWQjMSMyIzN7JQorICAlIENvbXB1dGUgdGhlIGFicy4gc2VjLiBsZXZlbDoKKyAgXGFic3NlY2xldmVsPSMyCisgIFxhZHZhbmNlXGFic3NlY2xldmVsIGJ5IFxzZWNiYXNlCisgICUgTWFrZSBzdXJlIFxhYnNzZWNsZXZlbCBkb2Vzbid0IGZhbGwgb3V0c2lkZSB0aGUgcmFuZ2U6CisgIFxpZm51bSBcYWJzc2VjbGV2ZWwgPCAwCisgICAgXGFic3NlY2xldmVsID0gMAorICBcZWxzZQorICAgIFxpZm51bSBcYWJzc2VjbGV2ZWwgPiAzCisgICAgICBcYWJzc2VjbGV2ZWwgPSAzCisgICAgXGZpCisgIFxmaQorICAlIFRoZSBoZWFkaW5nIHR5cGU6CisgIFxkZWZcaGVhZHR5cGV7IzF9JQorICBcaWYgXGhlYWR0eXBlIFUlCisgICAgXGlmbnVtIFxhYnNzZWNsZXZlbCA8IFx1bm1sZXZlbAorICAgICAgXGNoYXJkZWZcdW5tbGV2ZWwgPSBcYWJzc2VjbGV2ZWwKKyAgICBcZmkKKyAgXGVsc2UKKyAgICAlIENoZWNrIGZvciBhcHBlbmRpeCBzZWN0aW9uczoKKyAgICBcaWZudW0gXGFic3NlY2xldmVsID0gMAorICAgICAgXGVkZWZcY2hhcGhlYWR0eXBle1xoZWFkdHlwZX0lCisgICAgXGVsc2UKKyAgICAgIFxpZiBcaGVhZHR5cGUgQVxpZiBcY2hhcGhlYWR0eXBlIE4lCisJXGVycm1lc3NhZ2V7QGFwcGVuZGl4Li4uIHdpdGhpbiBhIG5vbi1hcHBlbmRpeCBjaGFwdGVyfSUKKyAgICAgIFxmaVxmaQorICAgIFxmaQorICAgICUgQ2hlY2sgZm9yIG51bWJlcmVkIHdpdGhpbiB1bm51bWJlcmVkOgorICAgIFxpZm51bSBcYWJzc2VjbGV2ZWwgPiBcdW5tbGV2ZWwKKyAgICAgIFxkZWZcaGVhZHR5cGV7VX0lCisgICAgXGVsc2UKKyAgICAgIFxjaGFyZGVmXHVubWxldmVsID0gMworICAgIFxmaQorICBcZmkKKyAgJSBOb3cgcHJpbnQgdGhlIGhlYWRpbmc6CisgIFxpZiBcaGVhZHR5cGUgVSUKKyAgICBcaWZjYXNlXGFic3NlY2xldmVsCisJXHVubnVtYmVyZWR6enp7IzN9JQorICAgIFxvciBcdW5udW1iZXJlZHNlY3p6ensjM30lCisgICAgXG9yIFx1bm51bWJlcmVkc3Vic2Vjenp6eyMzfSUKKyAgICBcb3IgXHVubnVtYmVyZWRzdWJzdWJzZWN6enp7IzN9JQorICAgIFxmaQorICBcZWxzZQorICAgIFxpZiBcaGVhZHR5cGUgQSUKKyAgICAgIFxpZmNhc2VcYWJzc2VjbGV2ZWwKKwkgIFxhcHBlbmRpeHp6ensjM30lCisgICAgICBcb3IgXGFwcGVuZGl4c2VjdGlvbnp6ensjM30lCisgICAgICBcb3IgXGFwcGVuZGl4c3Vic2Vjenp6eyMzfSUKKyAgICAgIFxvciBcYXBwZW5kaXhzdWJzdWJzZWN6enp7IzN9JQorICAgICAgXGZpCisgICAgXGVsc2UKKyAgICAgIFxpZmNhc2VcYWJzc2VjbGV2ZWwKKwkgIFxjaGFwdGVyenp6eyMzfSUKKyAgICAgIFxvciBcc2Vjenp6eyMzfSUKKyAgICAgIFxvciBcbnVtYmVyZWRzdWJzZWN6enp7IzN9JQorICAgICAgXG9yIFxudW1iZXJlZHN1YnN1YnNlY3p6ensjM30lCisgICAgICBcZmkKKyAgICBcZmkKKyAgXGZpCisgIFxzdXBwcmVzc2ZpcnN0cGFyYWdyYXBoaW5kZW50Cit9CisKKyUgYW4gaW50ZXJmYWNlOgorXGRlZlxudW1oZWFke1xnZW5oZWFkIE59CitcZGVmXGFwcGhlYWR7XGdlbmhlYWQgQX0KK1xkZWZcdW5ubWhlYWR7XGdlbmhlYWQgVX0KKworJSBAY2hhcHRlciwgQGFwcGVuZGl4LCBAdW5udW1iZXJlZC4gIEluY3JlbWVudCB0b3AtbGV2ZWwgY291bnRlciwgcmVzZXQKKyUgYWxsIGxvd2VyLWxldmVsIHNlY3Rpb25pbmcgY291bnRlcnMgdG8gemVyby4KKyUKKyUgQWxzbyBzZXQgXGNoYXBsZXZlbHByZWZpeCwgd2hpY2ggd2UgcHJlcGVuZCB0byBAZmxvYXQgc2VxdWVuY2UgbnVtYmVycworJSAoZS5nLiwgZmlndXJlcyksIHEudi4gIEJ5IGRlZmF1bHQgKGJlZm9yZSBhbnkgY2hhcHRlciksIHRoYXQgaXMgZW1wdHkuCitcbGV0XGNoYXBsZXZlbHByZWZpeCA9IFxlbXB0eQorJQorXG91dGVyXHBhcnNlYXJnZGVmXGNoYXB0ZXJ7XG51bWhlYWQweyMxfX0gJSBub3JtYWxseSBudW1oZWFkMCBjYWxscyBjaGFwdGVyenp6CitcZGVmXGNoYXB0ZXJ6enojMXslCisgICUgc2VjdGlvbiByZXNldHRpbmcgaXMgXGdsb2JhbCBpbiBjYXNlIHRoZSBjaGFwdGVyIGlzIGluIGEgZ3JvdXAsIHN1Y2gKKyAgJSBhcyBhbiBAaW5jbHVkZSBmaWxlLgorICBcZ2xvYmFsXHNlY25vPTAgXGdsb2JhbFxzdWJzZWNubz0wIFxnbG9iYWxcc3Vic3Vic2Vjbm89MAorICAgIFxnbG9iYWxcYWR2YW5jZVxjaGFwbm8gYnkgMQorICAlCisgICUgVXNlZCBmb3IgXGZsb2F0LgorICBcZ2RlZlxjaGFwbGV2ZWxwcmVmaXh7XHRoZVxjaGFwbm8ufSUKKyAgXHJlc2V0YWxsZmxvYXRub3MKKyAgJQorICBcbWVzc2FnZXtccHV0d29yZENoYXB0ZXJcc3BhY2UgXHRoZVxjaGFwbm99JQorICAlCisgICUgV3JpdGUgdGhlIGFjdHVhbCBoZWFkaW5nLgorICBcY2hhcG1hY3JveyMxfXtZbnVtYmVyZWR9e1x0aGVcY2hhcG5vfSUKKyAgJQorICAlIFNvIEBzZWN0aW9uIGFuZCB0aGUgbGlrZSBhcmUgbnVtYmVyZWQgdW5kZXJuZWF0aCB0aGlzIGNoYXB0ZXIuCisgIFxnbG9iYWxcbGV0XHNlY3Rpb24gPSBcbnVtYmVyZWRzZWMKKyAgXGdsb2JhbFxsZXRcc3Vic2VjdGlvbiA9IFxudW1iZXJlZHN1YnNlYworICBcZ2xvYmFsXGxldFxzdWJzdWJzZWN0aW9uID0gXG51bWJlcmVkc3Vic3Vic2VjCit9CisKK1xvdXRlclxwYXJzZWFyZ2RlZlxhcHBlbmRpeHtcYXBwaGVhZDB7IzF9fSAlIG5vcm1hbGx5IGFwcGhlYWQwIGNhbGxzIGFwcGVuZGl4enp6CitcZGVmXGFwcGVuZGl4enp6IzF7JQorICBcZ2xvYmFsXHNlY25vPTAgXGdsb2JhbFxzdWJzZWNubz0wIFxnbG9iYWxcc3Vic3Vic2Vjbm89MAorICAgIFxnbG9iYWxcYWR2YW5jZVxhcHBlbmRpeG5vIGJ5IDEKKyAgXGdkZWZcY2hhcGxldmVscHJlZml4e1xhcHBlbmRpeGxldHRlci59JQorICBccmVzZXRhbGxmbG9hdG5vcworICAlCisgIFxkZWZcYXBwZW5kaXhudW17XHB1dHdvcmRBcHBlbmRpeFxzcGFjZSBcYXBwZW5kaXhsZXR0ZXJ9JQorICBcbWVzc2FnZXtcYXBwZW5kaXhudW19JQorICAlCisgIFxjaGFwbWFjcm97IzF9e1lhcHBlbmRpeH17XGFwcGVuZGl4bGV0dGVyfSUKKyAgJQorICBcZ2xvYmFsXGxldFxzZWN0aW9uID0gXGFwcGVuZGl4c2VjCisgIFxnbG9iYWxcbGV0XHN1YnNlY3Rpb24gPSBcYXBwZW5kaXhzdWJzZWMKKyAgXGdsb2JhbFxsZXRcc3Vic3Vic2VjdGlvbiA9IFxhcHBlbmRpeHN1YnN1YnNlYworfQorCitcb3V0ZXJccGFyc2VhcmdkZWZcdW5udW1iZXJlZHtcdW5ubWhlYWQweyMxfX0gJSBub3JtYWxseSB1bm5taGVhZDAgY2FsbHMgdW5udW1iZXJlZHp6egorXGRlZlx1bm51bWJlcmVkenp6IzF7JQorICBcZ2xvYmFsXHNlY25vPTAgXGdsb2JhbFxzdWJzZWNubz0wIFxnbG9iYWxcc3Vic3Vic2Vjbm89MAorICAgIFxnbG9iYWxcYWR2YW5jZVx1bm51bWJlcmVkbm8gYnkgMQorICAlCisgICUgU2luY2UgYW4gdW5udW1iZXJlZCBoYXMgbm8gbnVtYmVyLCBubyBwcmVmaXggZm9yIGZpZ3VyZXMuCisgIFxnbG9iYWxcbGV0XGNoYXBsZXZlbHByZWZpeCA9IFxlbXB0eQorICBccmVzZXRhbGxmbG9hdG5vcworICAlCisgICUgVGhpcyB1c2VkIHRvIGJlIHNpbXBseSBcbWVzc2FnZXsjMX0sIGJ1dCBUZVggZnVsbHkgZXhwYW5kcyB0aGUKKyAgJSBhcmd1bWVudCB0byBcbWVzc2FnZS4gIFRoZXJlZm9yZSwgaWYgIzEgY29udGFpbmVkIEAtY29tbWFuZHMsIFRlWAorICAlIGV4cGFuZGVkIHRoZW0uICBGb3IgZXhhbXBsZSwgaW4gYEB1bm51bWJlcmVkIFRoZSBAY2l0ZXtCb29rfScsIFRlWAorICAlIGV4cGFuZGVkIEBjaXRlICh3aGljaCB0dXJucyBvdXQgdG8gY2F1c2UgZXJyb3JzIGJlY2F1c2UgXGNpdGUgaXMgbWVhbnQKKyAgJSB0byBiZSBleGVjdXRlZCwgbm90IGV4cGFuZGVkKS4KKyAgJQorICAlIEFueXdheSwgd2UgZG9uJ3Qgd2FudCB0aGUgZnVsbHktZXhwYW5kZWQgZGVmaW5pdGlvbiBvZiBAY2l0ZSB0byBhcHBlYXIKKyAgJSBhcyBhIHJlc3VsdCBvZiB0aGUgXG1lc3NhZ2UsIHdlIGp1c3Qgd2FudCBgQGNpdGUnIGl0c2VsZi4gIFdlIHVzZQorICAlIFx0aGU8dG9rcyByZWdpc3Rlcj4gdG8gYWNoaWV2ZSB0aGlzOiBUZVggZXhwYW5kcyBcdGhlPHRva3M+IG9ubHkgb25jZSwKKyAgJSBzaW1wbHkgeWllbGRpbmcgdGhlIGNvbnRlbnRzIG9mIDx0b2tzIHJlZ2lzdGVyPi4gIChXZSBhbHNvIGRvIHRoaXMgZm9yCisgICUgdGhlIHRvYyBlbnRyaWVzLikKKyAgXHRva3MwID0geyMxfSUKKyAgXG1lc3NhZ2V7KFx0aGVcdG9rczApfSUKKyAgJQorICBcY2hhcG1hY3JveyMxfXtZbm90aGluZ317XHRoZVx1bm51bWJlcmVkbm99JQorICAlCisgIFxnbG9iYWxcbGV0XHNlY3Rpb24gPSBcdW5udW1iZXJlZHNlYworICBcZ2xvYmFsXGxldFxzdWJzZWN0aW9uID0gXHVubnVtYmVyZWRzdWJzZWMKKyAgXGdsb2JhbFxsZXRcc3Vic3Vic2VjdGlvbiA9IFx1bm51bWJlcmVkc3Vic3Vic2VjCit9CisKKyUgQGNlbnRlcmNoYXAgaXMgbGlrZSBAdW5udW1iZXJlZCwgYnV0IHRoZSBoZWFkaW5nIGlzIGNlbnRlcmVkLgorXG91dGVyXHBhcnNlYXJnZGVmXGNlbnRlcmNoYXB7JQorICAlIFdlbGwsIHdlIGNvdWxkIGRvIHRoZSBmb2xsb3dpbmcgaW4gYSBncm91cCwgYnV0IHRoYXQgd291bGQgYnJlYWsKKyAgJSBhbiBhc3N1bXB0aW9uIHRoYXQgXGNoYXBtYWNybyBpcyBjYWxsZWQgYXQgdGhlIG91dGVybW9zdCBsZXZlbC4KKyAgJSBUaHVzIHdlIGFyZSBzYWZlciB0aGlzIHdheToJCS0ta2FzYWwsIDI0ZmViMDQKKyAgXGxldFxjZW50ZXJwYXJhbWV0ZXJzbWF5YmUgPSBcY2VudGVycGFyYW1ldGVycworICBcdW5ubWhlYWQweyMxfSUKKyAgXGxldFxjZW50ZXJwYXJhbWV0ZXJzbWF5YmUgPSBccmVsYXgKK30KKworJSBAdG9wIGlzIGxpa2UgQHVubnVtYmVyZWQuCitcbGV0XHRvcFx1bm51bWJlcmVkCisKKyUgU2VjdGlvbnMuCitcb3V0ZXJccGFyc2VhcmdkZWZcbnVtYmVyZWRzZWN7XG51bWhlYWQxeyMxfX0gJSBub3JtYWxseSBjYWxscyBzZWN6enoKK1xkZWZcc2Vjenp6IzF7JQorICBcZ2xvYmFsXHN1YnNlY25vPTAgXGdsb2JhbFxzdWJzdWJzZWNubz0wICBcZ2xvYmFsXGFkdmFuY2Vcc2Vjbm8gYnkgMQorICBcc2VjdGlvbmhlYWRpbmd7IzF9e3NlY317WW51bWJlcmVkfXtcdGhlXGNoYXBuby5cdGhlXHNlY25vfSUKK30KKworXG91dGVyXHBhcnNlYXJnZGVmXGFwcGVuZGl4c2VjdGlvbntcYXBwaGVhZDF7IzF9fSAlIG5vcm1hbGx5IGNhbGxzIGFwcGVuZGl4c2VjdGlvbnp6egorXGRlZlxhcHBlbmRpeHNlY3Rpb256enojMXslCisgIFxnbG9iYWxcc3Vic2Vjbm89MCBcZ2xvYmFsXHN1YnN1YnNlY25vPTAgIFxnbG9iYWxcYWR2YW5jZVxzZWNubyBieSAxCisgIFxzZWN0aW9uaGVhZGluZ3sjMX17c2VjfXtZYXBwZW5kaXh9e1xhcHBlbmRpeGxldHRlci5cdGhlXHNlY25vfSUKK30KK1xsZXRcYXBwZW5kaXhzZWNcYXBwZW5kaXhzZWN0aW9uCisKK1xvdXRlclxwYXJzZWFyZ2RlZlx1bm51bWJlcmVkc2Vje1x1bm5taGVhZDF7IzF9fSAlIG5vcm1hbGx5IGNhbGxzIHVubnVtYmVyZWRzZWN6enoKK1xkZWZcdW5udW1iZXJlZHNlY3p6eiMxeyUKKyAgXGdsb2JhbFxzdWJzZWNubz0wIFxnbG9iYWxcc3Vic3Vic2Vjbm89MCAgXGdsb2JhbFxhZHZhbmNlXHNlY25vIGJ5IDEKKyAgXHNlY3Rpb25oZWFkaW5neyMxfXtzZWN9e1lub3RoaW5nfXtcdGhlXHVubnVtYmVyZWRuby5cdGhlXHNlY25vfSUKK30KKworJSBTdWJzZWN0aW9ucy4KK1xvdXRlclxwYXJzZWFyZ2RlZlxudW1iZXJlZHN1YnNlY3tcbnVtaGVhZDJ7IzF9fSAlIG5vcm1hbGx5IGNhbGxzIG51bWJlcmVkc3Vic2Vjenp6CitcZGVmXG51bWJlcmVkc3Vic2Vjenp6IzF7JQorICBcZ2xvYmFsXHN1YnN1YnNlY25vPTAgIFxnbG9iYWxcYWR2YW5jZVxzdWJzZWNubyBieSAxCisgIFxzZWN0aW9uaGVhZGluZ3sjMX17c3Vic2VjfXtZbnVtYmVyZWR9e1x0aGVcY2hhcG5vLlx0aGVcc2Vjbm8uXHRoZVxzdWJzZWNub30lCit9CisKK1xvdXRlclxwYXJzZWFyZ2RlZlxhcHBlbmRpeHN1YnNlY3tcYXBwaGVhZDJ7IzF9fSAlIG5vcm1hbGx5IGNhbGxzIGFwcGVuZGl4c3Vic2Vjenp6CitcZGVmXGFwcGVuZGl4c3Vic2Vjenp6IzF7JQorICBcZ2xvYmFsXHN1YnN1YnNlY25vPTAgIFxnbG9iYWxcYWR2YW5jZVxzdWJzZWNubyBieSAxCisgIFxzZWN0aW9uaGVhZGluZ3sjMX17c3Vic2VjfXtZYXBwZW5kaXh9JQorICAgICAgICAgICAgICAgICB7XGFwcGVuZGl4bGV0dGVyLlx0aGVcc2Vjbm8uXHRoZVxzdWJzZWNub30lCit9CisKK1xvdXRlclxwYXJzZWFyZ2RlZlx1bm51bWJlcmVkc3Vic2Vje1x1bm5taGVhZDJ7IzF9fSAlbm9ybWFsbHkgY2FsbHMgdW5udW1iZXJlZHN1YnNlY3p6egorXGRlZlx1bm51bWJlcmVkc3Vic2Vjenp6IzF7JQorICBcZ2xvYmFsXHN1YnN1YnNlY25vPTAgIFxnbG9iYWxcYWR2YW5jZVxzdWJzZWNubyBieSAxCisgIFxzZWN0aW9uaGVhZGluZ3sjMX17c3Vic2VjfXtZbm90aGluZ30lCisgICAgICAgICAgICAgICAgIHtcdGhlXHVubnVtYmVyZWRuby5cdGhlXHNlY25vLlx0aGVcc3Vic2Vjbm99JQorfQorCislIFN1YnN1YnNlY3Rpb25zLgorXG91dGVyXHBhcnNlYXJnZGVmXG51bWJlcmVkc3Vic3Vic2Vje1xudW1oZWFkM3sjMX19ICUgbm9ybWFsbHkgbnVtYmVyZWRzdWJzdWJzZWN6enoKK1xkZWZcbnVtYmVyZWRzdWJzdWJzZWN6enojMXslCisgIFxnbG9iYWxcYWR2YW5jZVxzdWJzdWJzZWNubyBieSAxCisgIFxzZWN0aW9uaGVhZGluZ3sjMX17c3Vic3Vic2VjfXtZbnVtYmVyZWR9JQorICAgICAgICAgICAgICAgICB7XHRoZVxjaGFwbm8uXHRoZVxzZWNuby5cdGhlXHN1YnNlY25vLlx0aGVcc3Vic3Vic2Vjbm99JQorfQorCitcb3V0ZXJccGFyc2VhcmdkZWZcYXBwZW5kaXhzdWJzdWJzZWN7XGFwcGhlYWQzeyMxfX0gJSBub3JtYWxseSBhcHBlbmRpeHN1YnN1YnNlY3p6egorXGRlZlxhcHBlbmRpeHN1YnN1YnNlY3p6eiMxeyUKKyAgXGdsb2JhbFxhZHZhbmNlXHN1YnN1YnNlY25vIGJ5IDEKKyAgXHNlY3Rpb25oZWFkaW5neyMxfXtzdWJzdWJzZWN9e1lhcHBlbmRpeH0lCisgICAgICAgICAgICAgICAgIHtcYXBwZW5kaXhsZXR0ZXIuXHRoZVxzZWNuby5cdGhlXHN1YnNlY25vLlx0aGVcc3Vic3Vic2Vjbm99JQorfQorCitcb3V0ZXJccGFyc2VhcmdkZWZcdW5udW1iZXJlZHN1YnN1YnNlY3tcdW5ubWhlYWQzeyMxfX0gJW5vcm1hbGx5IHVubnVtYmVyZWRzdWJzdWJzZWN6enoKK1xkZWZcdW5udW1iZXJlZHN1YnN1YnNlY3p6eiMxeyUKKyAgXGdsb2JhbFxhZHZhbmNlXHN1YnN1YnNlY25vIGJ5IDEKKyAgXHNlY3Rpb25oZWFkaW5neyMxfXtzdWJzdWJzZWN9e1lub3RoaW5nfSUKKyAgICAgICAgICAgICAgICAge1x0aGVcdW5udW1iZXJlZG5vLlx0aGVcc2Vjbm8uXHRoZVxzdWJzZWNuby5cdGhlXHN1YnN1YnNlY25vfSUKK30KKworJSBUaGVzZSBtYWNyb3MgY29udHJvbCB3aGF0IHRoZSBzZWN0aW9uIGNvbW1hbmRzIGRvLCBhY2NvcmRpbmcKKyUgdG8gd2hhdCBraW5kIG9mIGNoYXB0ZXIgd2UgYXJlIGluIChvcmRpbmFyeSwgYXBwZW5kaXgsIG9yIHVubnVtYmVyZWQpLgorJSBEZWZpbmUgdGhlbSBieSBkZWZhdWx0IGZvciBhIG51bWJlcmVkIGNoYXB0ZXIuCitcbGV0XHNlY3Rpb24gPSBcbnVtYmVyZWRzZWMKK1xsZXRcc3Vic2VjdGlvbiA9IFxudW1iZXJlZHN1YnNlYworXGxldFxzdWJzdWJzZWN0aW9uID0gXG51bWJlcmVkc3Vic3Vic2VjCisKKyUgRGVmaW5lIEBtYWpvcmhlYWRpbmcsIEBoZWFkaW5nIGFuZCBAc3ViaGVhZGluZworCislIE5PVEUgb24gdXNlIG9mIFx2Ym94IGZvciBjaGFwdGVyIGhlYWRpbmdzLCBzZWN0aW9uIGhlYWRpbmdzLCBhbmQgc3VjaDoKKyUgICAgICAgMSkgV2UgdXNlIFx2Ym94IHJhdGhlciB0aGFuIHRoZSBlYXJsaWVyIFxsaW5lIHRvIHBlcm1pdAorJSAgICAgICAgICBvdmVybG9uZyBoZWFkaW5ncyB0byBmb2xkLgorJSAgICAgICAyKSBcaHlwaGVucGVuYWx0eSBpcyBzZXQgdG8gMTAwMDAgYmVjYXVzZSBoeXBoZW5hdGlvbiBpbiBhCislICAgICAgICAgIGhlYWRpbmcgaXMgb2Jub3hpb3VzOyB0aGlzIGZvcmJpZHMgaXQuCislICAgICAgIDMpIExpa2V3aXNlLCBoZWFkaW5ncyBsb29rIGJlc3QgaWYgbm8gXHBhcmluZGVudCBpcyB1c2VkLCBhbmQKKyUgICAgICAgICAgaWYganVzdGlmaWNhdGlvbiBpcyBub3QgYXR0ZW1wdGVkLiAgSGVuY2UgXHJhZ2dlZHJpZ2h0LgorCisKK1xkZWZcbWFqb3JoZWFkaW5neyUKKyAge1xhZHZhbmNlXGNoYXBoZWFkaW5nc2tpcCBieSAxMHB0IFxjaGFwYnJlYWsgfSUKKyAgXHBhcnNlYXJnXGNoYXBoZWFkaW5nenp6Cit9CisKK1xkZWZcY2hhcGhlYWRpbmd7XGNoYXBicmVhayBccGFyc2VhcmdcY2hhcGhlYWRpbmd6enp9CitcZGVmXGNoYXBoZWFkaW5nenp6IzF7JQorICB7XGNoYXBmb250cyBcdmJveHtcaHlwaGVucGVuYWx0eT0xMDAwMFx0b2xlcmFuY2U9NTAwMAorICAgICAgICAgICAgICAgICAgICBccGFyaW5kZW50PTBwdFxyYWdnZWRyaWdodAorICAgICAgICAgICAgICAgICAgICBccm0gIzFcaGZpbGx9fSUKKyAgXGJpZ3NraXAgXHBhclxwZW5hbHR5IDIwMFxyZWxheAorICBcc3VwcHJlc3NmaXJzdHBhcmFncmFwaGluZGVudAorfQorCislIEBoZWFkaW5nLCBAc3ViaGVhZGluZywgQHN1YnN1YmhlYWRpbmcuCitccGFyc2VhcmdkZWZcaGVhZGluZ3tcc2VjdGlvbmhlYWRpbmd7IzF9e3NlY317WW9taXRmcm9tdG9jfXt9CisgIFxzdXBwcmVzc2ZpcnN0cGFyYWdyYXBoaW5kZW50fQorXHBhcnNlYXJnZGVmXHN1YmhlYWRpbmd7XHNlY3Rpb25oZWFkaW5neyMxfXtzdWJzZWN9e1lvbWl0ZnJvbXRvY317fQorICBcc3VwcHJlc3NmaXJzdHBhcmFncmFwaGluZGVudH0KK1xwYXJzZWFyZ2RlZlxzdWJzdWJoZWFkaW5ne1xzZWN0aW9uaGVhZGluZ3sjMX17c3Vic3Vic2VjfXtZb21pdGZyb210b2N9e30KKyAgXHN1cHByZXNzZmlyc3RwYXJhZ3JhcGhpbmRlbnR9CisKKyUgVGhlc2UgbWFjcm9zIGdlbmVyYXRlIGEgY2hhcHRlciwgc2VjdGlvbiwgZXRjLiBoZWFkaW5nIG9ubHkKKyUgKGluY2x1ZGluZyB3aGl0ZXNwYWNlLCBsaW5lYnJlYWtpbmcsIGV0Yy4gYXJvdW5kIGl0KSwKKyUgZ2l2ZW4gYWxsIHRoZSBpbmZvcm1hdGlvbiBpbiBjb252ZW5pZW50LCBwYXJzZWQgZm9ybS4KKworJSUlIEFyZ3MgYXJlIHRoZSBza2lwIGFuZCBwZW5hbHR5ICh1c3VhbGx5IG5lZ2F0aXZlKQorXGRlZlxkb2JyZWFrIzEjMntccGFyXGlmZGltXGxhc3Rza2lwPCMxXHJlbW92ZWxhc3Rza2lwXHBlbmFsdHkjMlx2c2tpcCMxXGZpfQorCislJSUgRGVmaW5lIHBsYWluIGNoYXB0ZXIgc3RhcnRzLCBhbmQgcGFnZSBvbi9vZmYgc3dpdGNoaW5nIGZvciBpdAorJSBQYXJhbWV0ZXIgY29udHJvbGxpbmcgc2tpcCBiZWZvcmUgY2hhcHRlciBoZWFkaW5ncyAoaWYgbmVlZGVkKQorCitcbmV3c2tpcFxjaGFwaGVhZGluZ3NraXAKKworXGRlZlxjaGFwYnJlYWt7XGRvYnJlYWsgXGNoYXBoZWFkaW5nc2tpcCB7LTQwMDB9fQorXGRlZlxjaGFwcGFnZXJ7XHBhclx2ZmlsbFxzdXBlcmVqZWN0fQorXGRlZlxjaGFwb2RkcGFnZXtcY2hhcHBhZ2VyIFxpZm9kZFxwYWdlbm8gXGVsc2UgXGhib3ggdG8gMHB0e30gXGNoYXBwYWdlclxmaX0KKworXGRlZlxzZXRjaGFwdGVybmV3cGFnZSAjMSB7XGNzbmFtZSBDSEFQUEFHIzFcZW5kY3NuYW1lfQorCitcZGVmXENIQVBQQUdvZmZ7JQorXGdsb2JhbFxsZXRcY29udGVudHNhbGlnbm1hY3JvID0gXGNoYXBwYWdlcgorXGdsb2JhbFxsZXRccGNoYXBzZXBtYWNybz1cY2hhcGJyZWFrCitcZ2xvYmFsXGxldFxwYWdlYWxpZ25tYWNybz1cY2hhcHBhZ2VyfQorCitcZGVmXENIQVBQQUdvbnslCitcZ2xvYmFsXGxldFxjb250ZW50c2FsaWdubWFjcm8gPSBcY2hhcHBhZ2VyCitcZ2xvYmFsXGxldFxwY2hhcHNlcG1hY3JvPVxjaGFwcGFnZXIKK1xnbG9iYWxcbGV0XHBhZ2VhbGlnbm1hY3JvPVxjaGFwcGFnZXIKK1xnbG9iYWxcZGVmXEhFQURJTkdTb257XEhFQURJTkdTc2luZ2xlfX0KKworXGRlZlxDSEFQUEFHb2RkeyUKK1xnbG9iYWxcbGV0XGNvbnRlbnRzYWxpZ25tYWNybyA9IFxjaGFwb2RkcGFnZQorXGdsb2JhbFxsZXRccGNoYXBzZXBtYWNybz1cY2hhcG9kZHBhZ2UKK1xnbG9iYWxcbGV0XHBhZ2VhbGlnbm1hY3JvPVxjaGFwb2RkcGFnZQorXGdsb2JhbFxkZWZcSEVBRElOR1NvbntcSEVBRElOR1Nkb3VibGV9fQorCitcQ0hBUFBBR29uCisKKyUgQ2hhcHRlciBvcGVuaW5nLgorJQorJSAjMSBpcyB0aGUgdGV4dCwgIzIgaXMgdGhlIHNlY3Rpb24gdHlwZSAoWW51bWJlcmVkLCBZbm90aGluZywKKyUgWWFwcGVuZGl4LCBZb21pdGZyb210b2MpLCAjMyB0aGUgY2hhcHRlciBudW1iZXIuCislCislIFRvIHRlc3QgYWdhaW5zdCBvdXIgYXJndW1lbnQuCitcZGVmXFlub3RoaW5na2V5d29yZHtZbm90aGluZ30KK1xkZWZcWW9taXRmcm9tdG9ja2V5d29yZHtZb21pdGZyb210b2N9CitcZGVmXFlhcHBlbmRpeGtleXdvcmR7WWFwcGVuZGl4fQorJQorXGRlZlxjaGFwbWFjcm8jMSMyIzN7JQorICBccGNoYXBzZXBtYWNybworICB7JQorICAgIFxjaGFwZm9udHMgXHJtCisgICAgJQorICAgICUgSGF2ZSB0byBkZWZpbmUgXHRoaXNzZWN0aW9uIGJlZm9yZSBjYWxsaW5nIFxkb25vZGVyZWYsIGJlY2F1c2UgdGhlCisgICAgJSB4cmVmIGNvZGUgZXZlbnR1YWxseSB1c2VzIGl0LiAgT24gdGhlIG90aGVyIGhhbmQsIGl0IGhhcyB0byBiZSBjYWxsZWQKKyAgICAlIGFmdGVyIFxwY2hhcHNlcG1hY3JvLCBvciB0aGUgaGVhZGxpbmUgd2lsbCBjaGFuZ2UgdG9vIHNvb24uCisgICAgXGdkZWZcdGhpc3NlY3Rpb257IzF9JQorICAgIFxnZGVmXHRoaXNjaGFwdGVybmFtZXsjMX0lCisgICAgJQorICAgICUgT25seSBpbnNlcnQgdGhlIHNlcGFyYXRpbmcgc3BhY2UgaWYgd2UgaGF2ZSBhIGNoYXB0ZXIvYXBwZW5kaXgKKyAgICAlIG51bWJlciwgYW5kIGRvbid0IHByaW50IHRoZSB1bm51bWJlcmVkIGBgbnVtYmVyJycuCisgICAgXGRlZlx0ZW1wdHlwZXsjMn0lCisgICAgXGlmeFx0ZW1wdHlwZVxZbm90aGluZ2tleXdvcmQKKyAgICAgIFxzZXRib3gwID0gXGhib3h7fSUKKyAgICAgIFxkZWZcdG9jdHlwZXt1bm5jaGFwfSUKKyAgICAgIFxnZGVmXHRoaXNjaGFwdGVyeyMxfSUKKyAgICBcZWxzZVxpZnhcdGVtcHR5cGVcWW9taXRmcm9tdG9ja2V5d29yZAorICAgICAgXHNldGJveDAgPSBcaGJveHt9JSBjb250ZW50cyBsaWtlIHVubnVtYmVyZWQsIGJ1dCBubyB0b2MgZW50cnkKKyAgICAgIFxkZWZcdG9jdHlwZXtvbWl0fSUKKyAgICAgIFxnZGVmXHRoaXNjaGFwdGVye30lCisgICAgXGVsc2VcaWZ4XHRlbXB0eXBlXFlhcHBlbmRpeGtleXdvcmQKKyAgICAgIFxzZXRib3gwID0gXGhib3h7XHB1dHdvcmRBcHBlbmRpeHt9ICMzXGVuc3BhY2V9JQorICAgICAgXGRlZlx0b2N0eXBle2FwcH0lCisgICAgICAlIFdlIGRvbid0IHN1YnN0aXR1dGUgdGhlIGFjdHVhbCBjaGFwdGVyIG5hbWUgaW50byBcdGhpc2NoYXB0ZXIKKyAgICAgICUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGl0cyBtYWNyb3MgZXZhbHVhdGVkIG5vdy4gIEFuZCB3ZSBkb24ndAorICAgICAgJSB1c2UgXHRoaXNzZWN0aW9uIGJlY2F1c2UgdGhhdCBjaGFuZ2VzIHdpdGggZWFjaCBzZWN0aW9uLgorICAgICAgJQorICAgICAgXHhkZWZcdGhpc2NoYXB0ZXJ7XHB1dHdvcmRBcHBlbmRpeHt9IFxhcHBlbmRpeGxldHRlcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIFxub2V4cGFuZFx0aGlzY2hhcHRlcm5hbWV9JQorICAgIFxlbHNlCisgICAgICBcc2V0Ym94MCA9IFxoYm94eyMzXGVuc3BhY2V9JQorICAgICAgXGRlZlx0b2N0eXBle251bWNoYXB9JQorICAgICAgXHhkZWZcdGhpc2NoYXB0ZXJ7XHB1dHdvcmRDaGFwdGVye30gXHRoZVxjaGFwbm86CisgICAgICAgICAgICAgICAgICAgICAgICBcbm9leHBhbmRcdGhpc2NoYXB0ZXJuYW1lfSUKKyAgICBcZmlcZmlcZmkKKyAgICAlCisgICAgJSBXcml0ZSB0aGUgdG9jIGVudHJ5IGZvciB0aGlzIGNoYXB0ZXIuICBNdXN0IGNvbWUgYmVmb3JlIHRoZQorICAgICUgXGRvbm9kZXJlZiwgYmVjYXVzZSB3ZSBpbmNsdWRlIHRoZSBjdXJyZW50IG5vZGUgbmFtZSBpbiB0aGUgdG9jCisgICAgJSBlbnRyeSwgYW5kIFxkb25vZGVyZWYgcmVzZXRzIGl0IHRvIGVtcHR5LgorICAgIFx3cml0ZXRvY2VudHJ5e1x0b2N0eXBlfXsjMX17IzN9JQorICAgICUKKyAgICAlIEZvciBwZGZ0ZXgsIHdlIGhhdmUgdG8gd3JpdGUgb3V0IHRoZSBub2RlIGRlZmluaXRpb24gKGFrYSwgbWFrZQorICAgICUgdGhlIHBkZmRlc3QpIGFmdGVyIGFueSBwYWdlIGJyZWFrLCBidXQgYmVmb3JlIHRoZSBhY3R1YWwgdGV4dCBoYXMKKyAgICAlIGJlZW4gdHlwZXNldC4gIElmIHRoZSBkZXN0aW5hdGlvbiBmb3IgdGhlIHBkZiBvdXRsaW5lIGlzIGFmdGVyIHRoZQorICAgICUgdGV4dCwgdGhlbiBqdW1waW5nIGZyb20gdGhlIG91dGxpbmUgbWF5IHdpbmQgdXAgd2l0aCB0aGUgdGV4dCBub3QKKyAgICAlIGJlaW5nIHZpc2libGUsIGZvciBpbnN0YW5jZSB1bmRlciBoaWdoIG1hZ25pZmljYXRpb24uCisgICAgXGRvbm9kZXJlZnsjMn0lCisgICAgJQorICAgICUgVHlwZXNldCB0aGUgYWN0dWFsIGhlYWRpbmcuCisgICAgXHZib3h7XGh5cGhlbnBlbmFsdHk9MTAwMDAgXHRvbGVyYW5jZT01MDAwIFxwYXJpbmRlbnQ9MHB0IFxyYWdnZWRyaWdodAorICAgICAgICAgIFxoYW5naW5kZW50PVx3ZDAgXGNlbnRlcnBhcmFtZXRlcnNtYXliZQorICAgICAgICAgIFx1bmhib3gwICMxXHBhcn0lCisgIH0lCisgIFxub2JyZWFrXGJpZ3NraXAgJSBubyBwYWdlIGJyZWFrIGFmdGVyIGEgY2hhcHRlciB0aXRsZQorICBcbm9icmVhaworfQorCislIEBjZW50ZXJjaGFwIC0tIGNlbnRlcmVkIGFuZCB1bm51bWJlcmVkLgorXGxldFxjZW50ZXJwYXJhbWV0ZXJzbWF5YmUgPSBccmVsYXgKK1xkZWZcY2VudGVycGFyYW1ldGVyc3slCisgIFxhZHZhbmNlXHJpZ2h0c2tpcCBieSAzXHJpZ2h0c2tpcAorICBcbGVmdHNraXAgPSBccmlnaHRza2lwCisgIFxwYXJmaWxsc2tpcCA9IDBwdAorfQorCisKKyUgSSBkb24ndCB0aGluayB0aGlzIGNoYXB0ZXIgc3R5bGUgaXMgc3VwcG9ydGVkIGFueSBtb3JlLCBzbyBJJ20gbm90CislIHVwZGF0aW5nIGl0IHdpdGggdGhlIG5ldyBub2RlcmVmIHN0dWZmLiAgV2UnbGwgc2VlLiAgLS1rYXJsLCAxMWF1ZzAzLgorJQorXGRlZlxzZXRjaGFwdGVyc3R5bGUgIzEge1xjc25hbWUgQ0hBUEYjMVxlbmRjc25hbWV9CislCitcZGVmXHVubmNoZm9wZW4gIzF7JQorXGNoYXBvZGRwYWdlIHtcY2hhcGZvbnRzIFx2Ym94e1xoeXBoZW5wZW5hbHR5PTEwMDAwXHRvbGVyYW5jZT01MDAwCisgICAgICAgICAgICAgICAgICAgICAgIFxwYXJpbmRlbnQ9MHB0XHJhZ2dlZHJpZ2h0CisgICAgICAgICAgICAgICAgICAgICAgIFxybSAjMVxoZmlsbH19XGJpZ3NraXAgXHBhclxub2JyZWFrCit9CitcZGVmXGNoZm9wZW4gIzEjMntcY2hhcG9kZHBhZ2Uge1xjaGFwZm9udHMKK1x2Ym94IHRvIDNpbntcdmZpbCBcaGJveCB0b1xoc2l6ZXtcaGZpbCAjMn0gXGhib3ggdG9caHNpemV7XGhmaWwgIzF9IFx2ZmlsfX0lCitccGFyXHBlbmFsdHkgNTAwMCAlCit9CitcZGVmXGNlbnRlcmNoZm9wZW4gIzF7JQorXGNoYXBvZGRwYWdlIHtcY2hhcGZvbnRzIFx2Ym94e1xoeXBoZW5wZW5hbHR5PTEwMDAwXHRvbGVyYW5jZT01MDAwCisgICAgICAgICAgICAgICAgICAgICAgIFxwYXJpbmRlbnQ9MHB0CisgICAgICAgICAgICAgICAgICAgICAgIFxoZmlsbCB7XHJtICMxfVxoZmlsbH19XGJpZ3NraXAgXHBhclxub2JyZWFrCit9CitcZGVmXENIQVBGb3BlbnslCisgIFxnbG9iYWxcbGV0XGNoYXBtYWNybz1cY2hmb3BlbgorICBcZ2xvYmFsXGxldFxjZW50ZXJjaGFwbWFjcm89XGNlbnRlcmNoZm9wZW59CisKKworJSBTZWN0aW9uIHRpdGxlcy4gIFRoZXNlIG1hY3JvcyBjb21iaW5lIHRoZSBzZWN0aW9uIG51bWJlciBwYXJ0cyBhbmQKKyUgY2FsbCB0aGUgZ2VuZXJpYyBcc2VjdGlvbmhlYWRpbmcgdG8gZG8gdGhlIHByaW50aW5nLgorJQorXG5ld3NraXBcc2VjaGVhZGluZ3NraXAKK1xkZWZcc2VjaGVhZGluZ2JyZWFre1xkb2JyZWFrIFxzZWNoZWFkaW5nc2tpcHstMTAwMH19CisKKyUgU3Vic2VjdGlvbiB0aXRsZXMuCitcbmV3c2tpcFxzdWJzZWNoZWFkaW5nc2tpcAorXGRlZlxzdWJzZWNoZWFkaW5nYnJlYWt7XGRvYnJlYWsgXHN1YnNlY2hlYWRpbmdza2lwey01MDB9fQorCislIFN1YnN1YnNlY3Rpb24gdGl0bGVzLgorXGRlZlxzdWJzdWJzZWNoZWFkaW5nc2tpcHtcc3Vic2VjaGVhZGluZ3NraXB9CitcZGVmXHN1YnN1YnNlY2hlYWRpbmdicmVha3tcc3Vic2VjaGVhZGluZ2JyZWFrfQorCisKKyUgUHJpbnQgYW55IHNpemUsIGFueSB0eXBlLCBzZWN0aW9uIHRpdGxlLgorJQorJSAjMSBpcyB0aGUgdGV4dCwgIzIgaXMgdGhlIHNlY3Rpb24gbGV2ZWwgKHNlYy9zdWJzZWMvc3Vic3Vic2VjKSwgIzMgaXMKKyUgdGhlIHNlY3Rpb24gdHlwZSBmb3IgeHJlZnMgKFludW1iZXJlZCwgWW5vdGhpbmcsIFlhcHBlbmRpeCksICM0IGlzIHRoZQorJSBzZWN0aW9uIG51bWJlci4KKyUKK1xkZWZcc2VjdGlvbmhlYWRpbmcjMSMyIzMjNHslCisgIHslCisgICAgJSBTd2l0Y2ggdG8gdGhlIHJpZ2h0IHNldCBvZiBmb250cy4KKyAgICBcY3NuYW1lICMyZm9udHNcZW5kY3NuYW1lIFxybQorICAgICUKKyAgICAlIEluc2VydCBzcGFjZSBhYm92ZSB0aGUgaGVhZGluZy4KKyAgICBcY3NuYW1lICMyaGVhZGluZ2JyZWFrXGVuZGNzbmFtZQorICAgICUKKyAgICAlIE9ubHkgaW5zZXJ0IHRoZSBzcGFjZSBhZnRlciB0aGUgbnVtYmVyIGlmIHdlIGhhdmUgYSBzZWN0aW9uIG51bWJlci4KKyAgICBcZGVmXHNlY3Rpb25sZXZlbHsjMn0lCisgICAgXGRlZlx0ZW1wdHlwZXsjM30lCisgICAgJQorICAgIFxpZnhcdGVtcHR5cGVcWW5vdGhpbmdrZXl3b3JkCisgICAgICBcc2V0Ym94MCA9IFxoYm94e30lCisgICAgICBcZGVmXHRvY3R5cGV7dW5ufSUKKyAgICAgIFxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKKyAgICBcZWxzZVxpZnhcdGVtcHR5cGVcWW9taXRmcm9tdG9ja2V5d29yZAorICAgICAgJSBmb3IgQGhlYWRpbmdzIC0tIG5vIHNlY3Rpb24gbnVtYmVyLCBkb24ndCBpbmNsdWRlIGluIHRvYywKKyAgICAgICUgYW5kIGRvbid0IHJlZGVmaW5lIFx0aGlzc2VjdGlvbi4KKyAgICAgIFxzZXRib3gwID0gXGhib3h7fSUKKyAgICAgIFxkZWZcdG9jdHlwZXtvbWl0fSUKKyAgICAgIFxsZXRcc2VjdGlvbmxldmVsPVxlbXB0eQorICAgIFxlbHNlXGlmeFx0ZW1wdHlwZVxZYXBwZW5kaXhrZXl3b3JkCisgICAgICBcc2V0Ym94MCA9IFxoYm94eyM0XGVuc3BhY2V9JQorICAgICAgXGRlZlx0b2N0eXBle2FwcH0lCisgICAgICBcZ2RlZlx0aGlzc2VjdGlvbnsjMX0lCisgICAgXGVsc2UKKyAgICAgIFxzZXRib3gwID0gXGhib3h7IzRcZW5zcGFjZX0lCisgICAgICBcZGVmXHRvY3R5cGV7bnVtfSUKKyAgICAgIFxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKKyAgICBcZmlcZmlcZmkKKyAgICAlCisgICAgJSBXcml0ZSB0aGUgdG9jIGVudHJ5IChiZWZvcmUgXGRvbm9kZXJlZikuICBTZWUgY29tbWVudHMgaW4gXGNoZnBsYWluLgorICAgIFx3cml0ZXRvY2VudHJ5e1x0b2N0eXBlXHNlY3Rpb25sZXZlbH17IzF9eyM0fSUKKyAgICAlCisgICAgJSBXcml0ZSB0aGUgbm9kZSByZWZlcmVuY2UgKD0gcGRmIGRlc3RpbmF0aW9uIGZvciBwZGZ0ZXgpLgorICAgICUgQWdhaW4sIHNlZSBjb21tZW50cyBpbiBcY2hmcGxhaW4uCisgICAgXGRvbm9kZXJlZnsjM30lCisgICAgJQorICAgICUgT3V0cHV0IHRoZSBhY3R1YWwgc2VjdGlvbiBoZWFkaW5nLgorICAgIFx2Ym94e1xoeXBoZW5wZW5hbHR5PTEwMDAwIFx0b2xlcmFuY2U9NTAwMCBccGFyaW5kZW50PTBwdCBccmFnZ2VkcmlnaHQKKyAgICAgICAgICBcaGFuZ2luZGVudD1cd2QwICAlIHplcm8gaWYgbm8gc2VjdGlvbiBudW1iZXIKKyAgICAgICAgICBcdW5oYm94MCAjMX0lCisgIH0lCisgICUgQWRkIGV4dHJhIHNwYWNlIGFmdGVyIHRoZSBoZWFkaW5nIC0tIGhhbGYgb2Ygd2hhdGV2ZXIgY2FtZSBhYm92ZSBpdC4KKyAgJSBEb24ndCBhbGxvdyBzdHJldGNoLCB0aG91Z2guCisgIFxrZXJuIC41IFxjc25hbWUgIzJoZWFkaW5nc2tpcFxlbmRjc25hbWUKKyAgJQorICAlIERvIG5vdCBsZXQgdGhlIGtlcm4gYmUgYSBwb3RlbnRpYWwgYnJlYWtwb2ludCwgYXMgaXQgd291bGQgYmUgaWYgaXQKKyAgJSB3YXMgZm9sbG93ZWQgYnkgZ2x1ZS4KKyAgXG5vYnJlYWsKKyAgJQorICAlIFdlJ2xsIGFsbW9zdCBjZXJ0YWlubHkgc3RhcnQgYSBwYXJhZ3JhcGggbmV4dCwgc28gZG9uJ3QgbGV0IHRoYXQKKyAgJSBnbHVlIGFjY3VtdWxhdGUuICAoTm90IGEgYnJlYWtwb2ludCBiZWNhdXNlIGl0J3MgcHJlY2VkZWQgYnkgYQorICAlIGRpc2NhcmRhYmxlIGl0ZW0uKQorICBcdnNraXAtXHBhcnNraXAKKyAgJSAKKyAgJSBUaGlzIGlzIHB1cmVseSBzbyB0aGUgbGFzdCBpdGVtIG9uIHRoZSBsaXN0IGlzIGEga25vd24gXHBlbmFsdHkgPgorICAlIDEwMDAwLiAgVGhpcyBpcyBzbyBcc3RhcnRkZWZ1biBjYW4gYXZvaWQgYWxsb3dpbmcgYnJlYWtwb2ludHMgYWZ0ZXIKKyAgJSBzZWN0aW9uIGhlYWRpbmdzLiAgT3RoZXJ3aXNlLCBpdCB3b3VsZCBpbnNlcnQgYSB2YWxpZCBicmVha3BvaW50IGJldHdlZW46CisgICUgCisgICUgICBAc2VjdGlvbiBzZWMtd2hhdGV2ZXIKKyAgJSAgIEBkZWZmbiBkZWYtd2hhdGV2ZXIKKyAgXHBlbmFsdHkgMTAwMDEKK30KKworCitcbWVzc2FnZXt0b2MsfQorJSBUYWJsZSBvZiBjb250ZW50cy4KK1xuZXd3cml0ZVx0b2NmaWxlCisKKyUgV3JpdGUgYW4gZW50cnkgdG8gdGhlIHRvYyBmaWxlLCBvcGVuaW5nIGl0IGlmIG5lY2Vzc2FyeS4KKyUgQ2FsbGVkIGZyb20gQGNoYXB0ZXIsIGV0Yy4KKyUKKyUgRXhhbXBsZSB1c2FnZTogXHdyaXRldG9jZW50cnl7c2VjfXtTZWN0aW9uIE5hbWV9e1x0aGVcY2hhcG5vLlx0aGVcc2Vjbm99CislIFdlIGFwcGVuZCB0aGUgY3VycmVudCBub2RlIG5hbWUgKGlmIGFueSkgYW5kIHBhZ2UgbnVtYmVyIGFzIGFkZGl0aW9uYWwKKyUgYXJndW1lbnRzIGZvciB0aGUgXHtjaGFwLHNlYywuLi59ZW50cnkgbWFjcm9zIHdoaWNoIHdpbGwgZXZlbnR1YWxseQorJSByZWFkIHRoaXMuICBUaGUgbm9kZSBuYW1lIGlzIHVzZWQgaW4gdGhlIHBkZiBvdXRsaW5lcyBhcyB0aGUKKyUgZGVzdGluYXRpb24gdG8ganVtcCB0by4KKyUKKyUgV2Ugb3BlbiB0aGUgLnRvYyBmaWxlIGZvciB3cml0aW5nIGhlcmUgaW5zdGVhZCBvZiBhdCBAc2V0ZmlsZW5hbWUgKG9yCislIGFueSBvdGhlciBmaXhlZCB0aW1lKSBzbyB0aGF0IEBjb250ZW50cyBjYW4gYmUgYW55d2hlcmUgaW4gdGhlIGRvY3VtZW50LgorJSBCdXQgaWYgIzEgaXMgYG9taXQnLCB0aGVuIHdlIGRvbid0IGRvIGFueXRoaW5nLiAgVGhpcyBpcyB1c2VkIGZvciB0aGUKKyUgdGFibGUgb2YgY29udGVudHMgY2hhcHRlciBvcGVuaW5ncyB0aGVtc2VsdmVzLgorJQorXG5ld2lmXGlmdG9jZmlsZW9wZW5lZAorXGRlZlxvbWl0a2V5d29yZHtvbWl0fSUKKyUKK1xkZWZcd3JpdGV0b2NlbnRyeSMxIzIjM3slCisgIFxlZGVmXHdyaXRldG9jdHlwZXsjMX0lCisgIFxpZnhcd3JpdGV0b2N0eXBlXG9taXRrZXl3b3JkIFxlbHNlCisgICAgXGlmdG9jZmlsZW9wZW5lZFxlbHNlCisgICAgICBcaW1tZWRpYXRlXG9wZW5vdXRcdG9jZmlsZSA9IFxqb2JuYW1lLnRvYworICAgICAgXGdsb2JhbFx0b2NmaWxlb3BlbmVkdHJ1ZQorICAgIFxmaQorICAgICUKKyAgICBcaWZsaW5rcworICAgICAge1xhdGR1bW1pZXMKKyAgICAgICBcZWRlZlx0ZW1weyUKKyAgICAgICAgIFx3cml0ZVx0b2NmaWxle0AjMWVudHJ5eyMyfXsjM317XGxhc3Rub2RlfXtcbm9leHBhbmRcZm9saW99fX0lCisgICAgICAgXHRlbXAKKyAgICAgIH0KKyAgICBcZmkKKyAgXGZpCisgICUKKyAgJSBUZWxsIFxzaGlwb3V0IHRvIGNyZWF0ZSBhIHBkZiBkZXN0aW5hdGlvbiBvbiBlYWNoIHBhZ2UsIGlmIHdlJ3JlCisgICUgd3JpdGluZyBwZGYuICBUaGVzZSBhcmUgdXNlZCBpbiB0aGUgdGFibGUgb2YgY29udGVudHMuICBXZSBjYW4ndAorICAlIGp1c3Qgd3JpdGUgb25lIG9uIGV2ZXJ5IHBhZ2UgYmVjYXVzZSB0aGUgdGl0bGUgcGFnZXMgYXJlIG51bWJlcmVkCisgICUgMSBhbmQgMiAodGhlIHBhZ2UgbnVtYmVycyBhcmVuJ3QgcHJpbnRlZCksIGFuZCBzbyBhcmUgdGhlIGZpcnN0CisgICUgdHdvIHBhZ2VzIG9mIHRoZSBkb2N1bWVudC4gIFRodXMsIHdlJ2QgaGF2ZSB0d28gZGVzdGluYXRpb25zIG5hbWVkCisgICUgYDEnLCBhbmQgdHdvIG5hbWVkIGAyJy4KKyAgXGlmcGRmIFxnbG9iYWxccGRmbWFrZXBhZ2VkZXN0dHJ1ZSBcZmkKK30KKworCislIFRoZXNlIGNoYXJhY3RlcnMgZG8gbm90IHByaW50IHByb3Blcmx5IGluIHRoZSBDb21wdXRlciBNb2Rlcm4gcm9tYW4KKyUgZm9udHMsIHNvIHdlIG11c3QgdGFrZSBzcGVjaWFsIGNhcmUuICBUaGlzIGlzIG1vcmUgb3IgbGVzcyByZWR1bmRhbnQKKyUgd2l0aCB0aGUgVGV4aW5mbyBpbnB1dCBmb3JtYXQgc2V0dXAgYXQgdGhlIGVuZCBvZiB0aGlzIGZpbGUuCislIAorXGRlZlxhY3RpdmVjYXRjb2Rlc3slCisgIFxjYXRjb2RlYFwiPVxhY3RpdmUKKyAgXGNhdGNvZGVgXCQ9XGFjdGl2ZQorICBcY2F0Y29kZWBcPD1cYWN0aXZlCisgIFxjYXRjb2RlYFw+PVxhY3RpdmUKKyAgXGNhdGNvZGVgXFw9XGFjdGl2ZQorICBcY2F0Y29kZWBcXj1cYWN0aXZlCisgIFxjYXRjb2RlYFxfPVxhY3RpdmUKKyAgXGNhdGNvZGVgXHw9XGFjdGl2ZQorICBcY2F0Y29kZWBcfj1cYWN0aXZlCit9CisKKworJSBSZWFkIHRoZSB0b2MgZmlsZSwgd2hpY2ggaXMgZXNzZW50aWFsbHkgVGV4aW5mbyBpbnB1dC4KK1xkZWZccmVhZHRvY2ZpbGV7JQorICBcc2V0dXBkYXRhZmlsZQorICBcYWN0aXZlY2F0Y29kZXMKKyAgXGlucHV0IFxqb2JuYW1lLnRvYworfQorCitcbmV3c2tpcFxjb250ZW50c3JpZ2h0bWFyZ2luIFxjb250ZW50c3JpZ2h0bWFyZ2luPTFpbgorXG5ld2NvdW50XHNhdmVwYWdlbm8KK1xuZXdjb3VudFxsYXN0bmVnYXRpdmVwYWdlbm8gXGxhc3RuZWdhdGl2ZXBhZ2VubyA9IC0xCisKKyUgUHJlcGFyZSB0byByZWFkIHdoYXQgd2UndmUgd3JpdHRlbiB0byBcdG9jZmlsZS4KKyUKK1xkZWZcc3RhcnRjb250ZW50cyMxeyUKKyAgJSBJZiBAc2V0Y2hhcHRlcm5ld3BhZ2Ugb24sIGFuZCBAaGVhZGluZ3MgZG91YmxlLCB0aGUgY29udGVudHMgc2hvdWxkCisgICUgc3RhcnQgb24gYW4gb2RkIHBhZ2UsIHVubGlrZSBjaGFwdGVycy4gIFRodXMsIHdlIG1haW50YWluCisgICUgXGNvbnRlbnRzYWxpZ25tYWNybyBpbiBwYXJhbGxlbCB3aXRoIFxwYWdlYWxpZ25tYWNyby4KKyAgJSBGcm9tOiBUb3Jiam9ybiBHcmFubHVuZCA8dGVnZUBtYXRlbWF0aWsuc3Uuc2U+CisgIFxjb250ZW50c2FsaWdubWFjcm8KKyAgXGltbWVkaWF0ZVxjbG9zZW91dFx0b2NmaWxlCisgICUKKyAgJSBEb24ndCBuZWVkIHRvIHB1dCBgQ29udGVudHMnIG9yIGBTaG9ydCBDb250ZW50cycgaW4gdGhlIGhlYWRsaW5lLgorICAlIEl0IGlzIGFidW5kYW50bHkgY2xlYXIgd2hhdCB0aGV5IGFyZS4KKyAgXGRlZlx0aGlzY2hhcHRlcnt9JQorICBcY2hhcG1hY3JveyMxfXtZb21pdGZyb210b2N9e30lCisgICUKKyAgXHNhdmVwYWdlbm8gPSBccGFnZW5vCisgIFxiZWdpbmdyb3VwICAgICAgICAgICAgICAgICAgJSBTZXQgdXAgdG8gaGFuZGxlIGNvbnRlbnRzIGZpbGVzIHByb3Blcmx5LgorICAgIFxyYWdnZWRib3R0b20gICAgICAgICAgICAgICUgV29ycnkgbW9yZSBhYm91dCBicmVha3BvaW50cyB0aGFuIHRoZSBib3R0b20uCisgICAgXGFkdmFuY2VcaHNpemUgYnkgLVxjb250ZW50c3JpZ2h0bWFyZ2luICUgRG9uJ3QgdXNlIHRoZSBmdWxsIGxpbmUgbGVuZ3RoLgorICAgICUKKyAgICAlIFJvbWFuIG51bWVyYWxzIGZvciBwYWdlIG51bWJlcnMuCisgICAgXGlmbnVtIFxwYWdlbm8+MCBcZ2xvYmFsXHBhZ2VubyA9IFxsYXN0bmVnYXRpdmVwYWdlbm8gXGZpCit9CisKKworJSBOb3JtYWwgKGxvbmcpIHRvYy4KK1xkZWZcY29udGVudHN7JQorICBcc3RhcnRjb250ZW50c3tccHV0d29yZFRPQ30lCisgICAgXG9wZW5pbiAxIFxqb2JuYW1lLnRvYworICAgIFxpZmVvZiAxIFxlbHNlCisgICAgICBccmVhZHRvY2ZpbGUKKyAgICBcZmkKKyAgICBcdmZpbGwgXGVqZWN0CisgICAgXGNvbnRlbnRzYWxpZ25tYWNybyAlIGluIGNhc2UgQHNldGNoYXB0ZXJuZXdwYWdlIG9kZCBpcyBpbiBlZmZlY3QKKyAgICBcaWZlb2YgMSBcZWxzZQorICAgICAgXHBkZm1ha2VvdXRsaW5lcworICAgIFxmaQorICAgIFxjbG9zZWluIDEKKyAgXGVuZGdyb3VwCisgIFxsYXN0bmVnYXRpdmVwYWdlbm8gPSBccGFnZW5vCisgIFxnbG9iYWxccGFnZW5vID0gXHNhdmVwYWdlbm8KK30KKworJSBBbmQganVzdCB0aGUgY2hhcHRlcnMuCitcZGVmXHN1bW1hcnljb250ZW50c3slCisgIFxzdGFydGNvbnRlbnRze1xwdXR3b3JkU2hvcnRUT0N9JQorICAgICUKKyAgICBcbGV0XG51bWNoYXBlbnRyeSA9IFxzaG9ydGNoYXBlbnRyeQorICAgIFxsZXRcYXBwZW50cnkgPSBcc2hvcnRjaGFwZW50cnkKKyAgICBcbGV0XHVubmNoYXBlbnRyeSA9IFxzaG9ydHVubmNoYXBlbnRyeQorICAgICUgV2Ugd2FudCBhIHRydWUgcm9tYW4gaGVyZSBmb3IgdGhlIHBhZ2UgbnVtYmVycy4KKyAgICBcc2VjZm9udHMKKyAgICBcbGV0XHJtPVxzaG9ydGNvbnRybSBcbGV0XGJmPVxzaG9ydGNvbnRiZgorICAgIFxsZXRcc2w9XHNob3J0Y29udHNsIFxsZXRcdHQ9XHNob3J0Y29udHR0CisgICAgXHJtCisgICAgXGh5cGhlbnBlbmFsdHkgPSAxMDAwMAorICAgIFxhZHZhbmNlXGJhc2VsaW5lc2tpcCBieSAxcHQgJSBPcGVuIGl0IHVwIGEgbGl0dGxlLgorICAgIFxkZWZcbnVtc2VjZW50cnkjIzEjIzIjIzMjIzR7fQorICAgIFxsZXRcYXBwc2VjZW50cnkgPSBcbnVtc2VjZW50cnkKKyAgICBcbGV0XHVubnNlY2VudHJ5ID0gXG51bXNlY2VudHJ5CisgICAgXGxldFxudW1zdWJzZWNlbnRyeSA9IFxudW1zZWNlbnRyeQorICAgIFxsZXRcYXBwc3Vic2VjZW50cnkgPSBcbnVtc2VjZW50cnkKKyAgICBcbGV0XHVubnN1YnNlY2VudHJ5ID0gXG51bXNlY2VudHJ5CisgICAgXGxldFxudW1zdWJzdWJzZWNlbnRyeSA9IFxudW1zZWNlbnRyeQorICAgIFxsZXRcYXBwc3Vic3Vic2VjZW50cnkgPSBcbnVtc2VjZW50cnkKKyAgICBcbGV0XHVubnN1YnN1YnNlY2VudHJ5ID0gXG51bXNlY2VudHJ5CisgICAgXG9wZW5pbiAxIFxqb2JuYW1lLnRvYworICAgIFxpZmVvZiAxIFxlbHNlCisgICAgICBccmVhZHRvY2ZpbGUKKyAgICBcZmkKKyAgICBcY2xvc2VpbiAxCisgICAgXHZmaWxsIFxlamVjdAorICAgIFxjb250ZW50c2FsaWdubWFjcm8gJSBpbiBjYXNlIEBzZXRjaGFwdGVybmV3cGFnZSBvZGQgaXMgaW4gZWZmZWN0CisgIFxlbmRncm91cAorICBcbGFzdG5lZ2F0aXZlcGFnZW5vID0gXHBhZ2VubworICBcZ2xvYmFsXHBhZ2VubyA9IFxzYXZlcGFnZW5vCit9CitcbGV0XHNob3J0Y29udGVudHMgPSBcc3VtbWFyeWNvbnRlbnRzCisKKyUgVHlwZXNldCB0aGUgbGFiZWwgZm9yIGEgY2hhcHRlciBvciBhcHBlbmRpeCBmb3IgdGhlIHNob3J0IGNvbnRlbnRzLgorJSBUaGUgYXJnIGlzLCBlLmcuLCBgQScgZm9yIGFuIGFwcGVuZGl4LCBvciBgMycgZm9yIGEgY2hhcHRlci4KKyUKK1xkZWZcc2hvcnRjaGFwbGFiZWwjMXslCisgICUgVGhpcyBzcGFjZSBzaG91bGQgYmUgZW5vdWdoLCBzaW5jZSBhIHNpbmdsZSBudW1iZXIgaXMgLjVlbSwgYW5kIHRoZQorICAlIHdpZGVzdCBsZXR0ZXIgKE0pIGlzIDFlbSwgYXQgbGVhc3QgaW4gdGhlIENvbXB1dGVyIE1vZGVybiBmb250cy4KKyAgJSBCdXQgdXNlIFxoc3MganVzdCBpbiBjYXNlLgorICAlIChUaGlzIHNwYWNlIGRvZXNuJ3QgaW5jbHVkZSB0aGUgZXh0cmEgc3BhY2UgdGhhdCBnZXRzIGFkZGVkIGFmdGVyCisgICUgdGhlIGxhYmVsOyB0aGF0IGdldHMgcHV0IGluIGJ5IFxzaG9ydGNoYXBlbnRyeSBhYm92ZS4pCisgICUKKyAgJSBXZSdkIGxpa2UgdG8gcmlnaHQtanVzdGlmeSBjaGFwdGVyIG51bWJlcnMsIGJ1dCB0aGF0IGxvb2tzIHN0cmFuZ2UKKyAgJSB3aXRoIGFwcGVuZGl4IGxldHRlcnMuICBBbmQgcmlnaHQtanVzdGlmeWluZyBudW1iZXJzIGFuZAorICAlIGxlZnQtanVzdGlmeWluZyBsZXR0ZXJzIGxvb2tzIHN0cmFuZ2Ugd2hlbiB0aGVyZSBpcyBsZXNzIHRoYW4gMTAKKyAgJSBjaGFwdGVycy4gIEhhdmUgdG8gcmVhZCB0aGUgd2hvbGUgdG9jIG9uY2UgdG8ga25vdyBob3cgbWFueSBjaGFwdGVycworICAlIHRoZXJlIGFyZSBiZWZvcmUgZGVjaWRpbmcgLi4uCisgIFxoYm94IHRvIDFlbXsjMVxoc3N9JQorfQorCislIFRoZXNlIG1hY3JvcyBnZW5lcmF0ZSBpbmRpdmlkdWFsIGVudHJpZXMgaW4gdGhlIHRhYmxlIG9mIGNvbnRlbnRzLgorJSBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIGNoYXB0ZXIgb3Igc2VjdGlvbiBuYW1lLgorJSBUaGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgcGFnZSBudW1iZXIuCislIFRoZSBhcmd1bWVudHMgaW4gYmV0d2VlbiBhcmUgdGhlIGNoYXB0ZXIgbnVtYmVyLCBzZWN0aW9uIG51bWJlciwgLi4uCisKKyUgQ2hhcHRlcnMsIGluIHRoZSBtYWluIGNvbnRlbnRzLgorXGRlZlxudW1jaGFwZW50cnkjMSMyIzMjNHtcZG9jaGFwZW50cnl7IzJcbGFiZWxzcGFjZSMxfXsjNH19CislCislIENoYXB0ZXJzLCBpbiB0aGUgc2hvcnQgdG9jLgorJSBTZWUgY29tbWVudHMgaW4gXGRvY2hhcGVudHJ5IHJlIHZib3ggYW5kIHJlbGF0ZWQgc2V0dGluZ3MuCitcZGVmXHNob3J0Y2hhcGVudHJ5IzEjMiMzIzR7JQorICBcdG9jZW50cnl7XHNob3J0Y2hhcGxhYmVseyMyfVxsYWJlbHNwYWNlICMxfXtcZG9zaG9ydHBhZ2Vub1xiZ3JvdXAjNFxlZ3JvdXB9JQorfQorCislIEFwcGVuZGljZXMsIGluIHRoZSBtYWluIGNvbnRlbnRzLgorJSBOZWVkIHRoZSB3b3JkIEFwcGVuZGl4LCBhbmQgYSBmaXhlZC1zaXplIGJveC4KKyUKK1xkZWZcYXBwZW5kaXhib3gjMXslCisgICUgV2UgdXNlIE0gc2luY2UgaXQncyBwcm9iYWJseSB0aGUgd2lkZXN0IGxldHRlci4KKyAgXHNldGJveDAgPSBcaGJveHtccHV0d29yZEFwcGVuZGl4e30gTX0lCisgIFxoYm94IHRvIFx3ZDB7XHB1dHdvcmRBcHBlbmRpeHt9ICMxXGhzc319CislCitcZGVmXGFwcGVudHJ5IzEjMiMzIzR7XGRvY2hhcGVudHJ5e1xhcHBlbmRpeGJveHsjMn1cbGFiZWxzcGFjZSMxfXsjNH19CisKKyUgVW5udW1iZXJlZCBjaGFwdGVycy4KK1xkZWZcdW5uY2hhcGVudHJ5IzEjMiMzIzR7XGRvY2hhcGVudHJ5eyMxfXsjNH19CitcZGVmXHNob3J0dW5uY2hhcGVudHJ5IzEjMiMzIzR7XHRvY2VudHJ5eyMxfXtcZG9zaG9ydHBhZ2Vub1xiZ3JvdXAjNFxlZ3JvdXB9fQorCislIFNlY3Rpb25zLgorXGRlZlxudW1zZWNlbnRyeSMxIzIjMyM0e1xkb3NlY2VudHJ5eyMyXGxhYmVsc3BhY2UjMX17IzR9fQorXGxldFxhcHBzZWNlbnRyeT1cbnVtc2VjZW50cnkKK1xkZWZcdW5uc2VjZW50cnkjMSMyIzMjNHtcZG9zZWNlbnRyeXsjMX17IzR9fQorCislIFN1YnNlY3Rpb25zLgorXGRlZlxudW1zdWJzZWNlbnRyeSMxIzIjMyM0e1xkb3N1YnNlY2VudHJ5eyMyXGxhYmVsc3BhY2UjMX17IzR9fQorXGxldFxhcHBzdWJzZWNlbnRyeT1cbnVtc3Vic2VjZW50cnkKK1xkZWZcdW5uc3Vic2VjZW50cnkjMSMyIzMjNHtcZG9zdWJzZWNlbnRyeXsjMX17IzR9fQorCislIEFuZCBzdWJzdWJzZWN0aW9ucy4KK1xkZWZcbnVtc3Vic3Vic2VjZW50cnkjMSMyIzMjNHtcZG9zdWJzdWJzZWNlbnRyeXsjMlxsYWJlbHNwYWNlIzF9eyM0fX0KK1xsZXRcYXBwc3Vic3Vic2VjZW50cnk9XG51bXN1YnN1YnNlY2VudHJ5CitcZGVmXHVubnN1YnN1YnNlY2VudHJ5IzEjMiMzIzR7XGRvc3Vic3Vic2VjZW50cnl7IzF9eyM0fX0KKworJSBUaGlzIHBhcmFtZXRlciBjb250cm9scyB0aGUgaW5kZW50YXRpb24gb2YgdGhlIHZhcmlvdXMgbGV2ZWxzLgorJSBTYW1lIGFzIFxkZWZhdWx0cGFyaW5kZW50LgorXG5ld2RpbWVuXHRvY2luZGVudCBcdG9jaW5kZW50ID0gMTVwdAorCislIE5vdyBmb3IgdGhlIGFjdHVhbCB0eXBlc2V0dGluZy4gSW4gYWxsIHRoZXNlLCAjMSBpcyB0aGUgdGV4dCBhbmQgIzIgaXMgdGhlCislIHBhZ2UgbnVtYmVyLgorJQorJSBJZiB0aGUgdG9jIGhhcyB0byBiZSBicm9rZW4gb3ZlciBwYWdlcywgd2Ugd2FudCBpdCB0byBiZSBhdCBjaGFwdGVycworJSBpZiBhdCBhbGwgcG9zc2libGU7IGhlbmNlIHRoZSBccGVuYWx0eS4KK1xkZWZcZG9jaGFwZW50cnkjMSMyeyUKKyAgIFxwZW5hbHR5LTMwMCBcdnNraXAxXGJhc2VsaW5lc2tpcCBwbHVzLjMzXGJhc2VsaW5lc2tpcCBtaW51cy4yNVxiYXNlbGluZXNraXAKKyAgIFxiZWdpbmdyb3VwCisgICAgIFxjaGFwZW50cnlmb250cworICAgICBcdG9jZW50cnl7IzF9e1xkb3BhZ2Vub1xiZ3JvdXAjMlxlZ3JvdXB9JQorICAgXGVuZGdyb3VwCisgICBcbm9icmVha1x2c2tpcCAuMjVcYmFzZWxpbmVza2lwIHBsdXMuMVxiYXNlbGluZXNraXAKK30KKworXGRlZlxkb3NlY2VudHJ5IzEjMntcYmVnaW5ncm91cAorICBcc2VjZW50cnlmb250cyBcbGVmdHNraXA9XHRvY2luZGVudAorICBcdG9jZW50cnl7IzF9e1xkb3BhZ2Vub1xiZ3JvdXAjMlxlZ3JvdXB9JQorXGVuZGdyb3VwfQorCitcZGVmXGRvc3Vic2VjZW50cnkjMSMye1xiZWdpbmdyb3VwCisgIFxzdWJzZWNlbnRyeWZvbnRzIFxsZWZ0c2tpcD0yXHRvY2luZGVudAorICBcdG9jZW50cnl7IzF9e1xkb3BhZ2Vub1xiZ3JvdXAjMlxlZ3JvdXB9JQorXGVuZGdyb3VwfQorCitcZGVmXGRvc3Vic3Vic2VjZW50cnkjMSMye1xiZWdpbmdyb3VwCisgIFxzdWJzdWJzZWNlbnRyeWZvbnRzIFxsZWZ0c2tpcD0zXHRvY2luZGVudAorICBcdG9jZW50cnl7IzF9e1xkb3BhZ2Vub1xiZ3JvdXAjMlxlZ3JvdXB9JQorXGVuZGdyb3VwfQorCislIFdlIHVzZSB0aGUgc2FtZSBcZW50cnkgbWFjcm8gYXMgZm9yIHRoZSBpbmRleCBlbnRyaWVzLgorXGxldFx0b2NlbnRyeSA9IFxlbnRyeQorCislIFNwYWNlIGJldHdlZW4gY2hhcHRlciAob3Igd2hhdGV2ZXIpIG51bWJlciBhbmQgdGhlIHRpdGxlLgorXGRlZlxsYWJlbHNwYWNle1xoc2tpcDFlbSBccmVsYXh9CisKK1xkZWZcZG9wYWdlbm8jMXt7XHJtICMxfX0KK1xkZWZcZG9zaG9ydHBhZ2VubyMxe3tccm0gIzF9fQorCitcZGVmXGNoYXBlbnRyeWZvbnRze1xzZWNmb250cyBccm19CitcZGVmXHNlY2VudHJ5Zm9udHN7XHRleHRmb250c30KK1xkZWZcc3Vic2VjZW50cnlmb250c3tcdGV4dGZvbnRzfQorXGRlZlxzdWJzdWJzZWNlbnRyeWZvbnRze1x0ZXh0Zm9udHN9CisKKworXG1lc3NhZ2V7ZW52aXJvbm1lbnRzLH0KKyUgQGZvbyAuLi4gQGVuZCBmb28uCisKKyUgQHBvaW50e30sIEByZXN1bHR7fSwgQGV4cGFuc2lvbnt9LCBAcHJpbnR7fSwgQGVxdWl2e30uCislCislIFNpbmNlIHRoZXNlIGNoYXJhY3RlcnMgYXJlIHVzZWQgaW4gZXhhbXBsZXMsIGl0IHNob3VsZCBiZSBhbiBldmVuIG51bWJlciBvZgorJSBcdHQgd2lkdGhzLiBFYWNoIFx0dCBjaGFyYWN0ZXIgaXMgMWVuLCBzbyB0d28gbWFrZXMgaXQgMWVtLgorJQorXGRlZlxwb2ludHskXHN0YXIkfQorXGRlZlxyZXN1bHR7XGxlYXZldm1vZGVccmFpc2UuMTVleFxoYm94IHRvIDFlbXtcaGZpbCRcUmlnaHRhcnJvdyRcaGZpbH19CitcZGVmXGV4cGFuc2lvbntcbGVhdmV2bW9kZVxyYWlzZS4xZXhcaGJveCB0byAxZW17XGhmaWwkXG1hcHN0byRcaGZpbH19CitcZGVmXHByaW50e1xsZWF2ZXZtb2RlXGxvd2VyLjFleFxoYm94IHRvIDFlbXtcaGZpbCRcZGFzaHYkXGhmaWx9fQorXGRlZlxlcXVpdntcbGVhdmV2bW9kZVxsb3dlci4xZXhcaGJveCB0byAxZW17XGhmaWwkXHB0ZXhlcXVpdiRcaGZpbH19CisKKyUgVGhlIEBlcnJvcnt9IGNvbW1hbmQuCislIEFkYXB0ZWQgZnJvbSB0aGUgVGVYYm9vaydzIFxib3hpdC4KKyUKK1xuZXdib3hcZXJyb3Jib3gKKyUKK3tcdGVudHQgXGdsb2JhbFxkaW1lbjAgPSAzZW19JSBXaWR0aCBvZiB0aGUgYm94LgorXGRpbWVuMiA9IC41NXB0ICUgVGhpY2tuZXNzIG9mIHJ1bGVzCislIFRoZSB0ZXh0LiAoYHInIGlzIG9wZW4gb24gdGhlIHJpZ2h0LCBgZScgc29tZXdoYXQgbGVzcyBzbyBvbiB0aGUgbGVmdC4pCitcc2V0Ym94MCA9IFxoYm94e1xrZXJuLS43NXB0IFx0ZW5zZiBlcnJvclxrZXJuLTEuNXB0fQorJQorXHNldGJveFxlcnJvcmJveD1caGJveCB0byBcZGltZW4we1xoZmlsCisgICBcaHNpemUgPSBcZGltZW4wIFxhZHZhbmNlXGhzaXplIGJ5IC01LjhwdCAlIFNwYWNlIHRvIGxlZnQrcmlnaHQuCisgICBcYWR2YW5jZVxoc2l6ZSBieSAtMlxkaW1lbjIgJSBSdWxlcy4KKyAgIFx2Ym94eyUKKyAgICAgIFxocnVsZSBoZWlnaHRcZGltZW4yCisgICAgICBcaGJveHtcdnJ1bGUgd2lkdGhcZGltZW4yIFxrZXJuM3B0ICAgICAgICAgICUgU3BhY2UgdG8gbGVmdCBvZiB0ZXh0LgorICAgICAgICAgXHZ0b3B7XGtlcm4yLjRwdCBcYm94MCBca2VybjIuNHB0fSUgU3BhY2UgYWJvdmUvYmVsb3cuCisgICAgICAgICBca2VybjNwdFx2cnVsZSB3aWR0aFxkaW1lbjJ9JSBTcGFjZSB0byByaWdodC4KKyAgICAgIFxocnVsZSBoZWlnaHRcZGltZW4yfQorICAgIFxoZmlsfQorJQorXGRlZlxlcnJvcntcbGVhdmV2bW9kZVxsb3dlci43ZXhcY29weVxlcnJvcmJveH0KKworJSBAdGV4IC4uLiBAZW5kIHRleCAgICBlc2NhcGVzIGludG8gcmF3IFRleCB0ZW1wb3JhcmlseS4KKyUgT25lIGV4Y2VwdGlvbjogQCBpcyBzdGlsbCBhbiBlc2NhcGUgY2hhcmFjdGVyLCBzbyB0aGF0IEBlbmQgdGV4IHdvcmtzLgorJSBCdXQgXEAgb3IgQEAgd2lsbCBnZXQgYSBwbGFpbiB0ZXggQCBjaGFyYWN0ZXIuCisKK1xlbnZkZWZcdGV4eyUKKyAgXGNhdGNvZGUgYFxcPTAgXGNhdGNvZGUgYFx7PTEgXGNhdGNvZGUgYFx9PTIKKyAgXGNhdGNvZGUgYFwkPTMgXGNhdGNvZGUgYFwmPTQgXGNhdGNvZGUgYFwjPTYKKyAgXGNhdGNvZGUgYFxePTcgXGNhdGNvZGUgYFxfPTggXGNhdGNvZGUgYFx+PVxhY3RpdmUgXGxldH49XHRpZQorICBcY2F0Y29kZSBgXCU9MTQKKyAgXGNhdGNvZGUgYFwrPVxvdGhlcgorICBcY2F0Y29kZSBgXCI9XG90aGVyCisgIFxjYXRjb2RlIGBcfD1cb3RoZXIKKyAgXGNhdGNvZGUgYFw8PVxvdGhlcgorICBcY2F0Y29kZSBgXD49XG90aGVyCisgIFxlc2NhcGVjaGFyPWBcXAorICAlCisgIFxsZXRcYj1ccHRleGIKKyAgXGxldFxidWxsZXQ9XHB0ZXhidWxsZXQKKyAgXGxldFxjPVxwdGV4YworICBcbGV0XCw9XHB0ZXhjb21tYQorICBcbGV0XC49XHB0ZXhkb3QKKyAgXGxldFxkb3RzPVxwdGV4ZG90cworICBcbGV0XGVxdWl2PVxwdGV4ZXF1aXYKKyAgXGxldFwhPVxwdGV4ZXhjbGFtCisgIFxsZXRcaT1ccHRleGkKKyAgXGxldFxpbmRlbnQ9XHB0ZXhpbmRlbnQKKyAgXGxldFxub2luZGVudD1ccHRleG5vaW5kZW50CisgIFxsZXRcez1ccHRleGxicmFjZQorICBcbGV0XCs9XHRhYmFsaWduCisgIFxsZXRcfT1ccHRleHJicmFjZQorICBcbGV0XC89XHB0ZXhzbGFzaAorICBcbGV0XCo9XHB0ZXhzdGFyCisgIFxsZXRcdD1ccHRleHQKKyAgXGxldFxmcmVuY2hzcGFjaW5nPVxwbGFpbmZyZW5jaHNwYWNpbmcKKyAgJQorICBcZGVmXGVuZGxkb3Rze1xtYXRoaW5uZXJ7XGxkb3RzXGxkb3RzXGxkb3RzXGxkb3RzfX0lCisgIFxkZWZcZW5kZG90c3tccmVsYXhcaWZtbW9kZVxlbmRsZG90c1xlbHNlJFxtYXRoc3Vycm91bmQ9MHB0IFxlbmRsZG90c1wsJFxmaX0lCisgIFxkZWZcQHtAfSUKK30KKyUgVGhlcmUgaXMgbm8gbmVlZCB0byBkZWZpbmUgXEV0ZXguCisKKyUgRGVmaW5lIEBsaXNwIC4uLiBAZW5kIGxpc3AuCislIEBsaXNwIGVudmlyb25tZW50IGZvcm1zIGEgZ3JvdXAgc28gaXQgY2FuIHJlYmluZCB0aGluZ3MsCislIGluY2x1ZGluZyB0aGUgZGVmaW5pdGlvbiBvZiBAZW5kIGxpc3AgKHdoaWNoIG5vcm1hbGx5IGlzIGVycm9uZW91cykuCisKKyUgQW1vdW50IHRvIG5hcnJvdyB0aGUgbWFyZ2lucyBieSBmb3IgQGxpc3AuCitcbmV3c2tpcFxsaXNwbmFycm93aW5nIFxsaXNwbmFycm93aW5nPTAuNGluCisKKyUgVGhpcyBpcyB0aGUgZGVmaW5pdGlvbiB0aGF0IF5eTSBnZXRzIGluc2lkZSBAbGlzcCwgQGV4YW1wbGUsIGFuZCBvdGhlcgorJSBzdWNoIGVudmlyb25tZW50cy4gIFxudWxsIGlzIGJldHRlciB0aGFuIGEgc3BhY2UsIHNpbmNlIGl0IGRvZXNuJ3QKKyUgaGF2ZSBhbnkgd2lkdGguCitcZGVmXGxpc3BwYXJ7XG51bGxcZW5kZ3JhZn0KKworJSBUaGlzIHNwYWNlIGlzIGFsd2F5cyBwcmVzZW50IGFib3ZlIGFuZCBiZWxvdyBlbnZpcm9ubWVudHMuCitcbmV3c2tpcFxlbnZza2lwYW1vdW50IFxlbnZza2lwYW1vdW50ID0gMHB0CisKKyUgTWFrZSBzcGFjaW5nIGFuZCBiZWxvdyBlbnZpcm9ubWVudCBzeW1tZXRyaWNhbC4gIFdlIHVzZSBccGFyc2tpcCBoZXJlCislIHRvIGhlbHAgaW4gZG9pbmcgdGhhdCwgc2luY2UgaW4gQGV4YW1wbGUtbGlrZSBlbnZpcm9ubWVudHMgXHBhcnNraXAKKyUgaXMgcmVzZXQgdG8gemVybzsgdGh1cyB0aGUgXGFmdGVyZW52YnJlYWsgaW5zZXJ0cyBubyBzcGFjZSAtLSBidXQgdGhlCislIHN0YXJ0IG9mIHRoZSBuZXh0IHBhcmFncmFwaCB3aWxsIGluc2VydCBccGFyc2tpcC4KKyUKK1xkZWZcYWJvdmVlbnZicmVha3t7JQorICAlID0xMDAwMCBpbnN0ZWFkIG9mIDwxMDAwMCBiZWNhdXNlIG9mIGEgc3BlY2lhbCBjYXNlIGluIFxpdGVtenp6IGFuZAorICAlIFxzZWN0aW9uaGVhZGluZywgcS52LgorICBcaWZudW0gXGxhc3RwZW5hbHR5PTEwMDAwIFxlbHNlCisgICAgXGFkdmFuY2VcZW52c2tpcGFtb3VudCBieSBccGFyc2tpcAorICAgIFxlbmRncmFmCisgICAgXGlmZGltXGxhc3Rza2lwPFxlbnZza2lwYW1vdW50CisgICAgICBccmVtb3ZlbGFzdHNraXAKKyAgICAgICUgaXQncyBub3QgYSBnb29kIHBsYWNlIHRvIGJyZWFrIGlmIHRoZSBsYXN0IHBlbmFsdHkgd2FzIFxub2JyZWFrCisgICAgICAlIG9yIGJldHRlciAuLi4KKyAgICAgIFxpZm51bVxsYXN0cGVuYWx0eTwxMDAwMCBccGVuYWx0eS01MCBcZmkKKyAgICAgIFx2c2tpcFxlbnZza2lwYW1vdW50CisgICAgXGZpCisgIFxmaQorfX0KKworXGxldFxhZnRlcmVudmJyZWFrID0gXGFib3ZlZW52YnJlYWsKKworJSBcbm9uYXJyb3dpbmcgaXMgYSBmbGFnLiAgSWYgInNldCIsIEBsaXNwIGV0YyBkb24ndCBuYXJyb3cgbWFyZ2luczsgaXQgd2lsbAorJSBhbHNvIGNsZWFyIGl0LCBzbyB0aGF0IGl0cyBlbWJlZGRlZCBlbnZpcm9ubWVudHMgZG8gdGhlIG5hcnJvd2luZyBhZ2Fpbi4KK1xsZXRcbm9uYXJyb3dpbmc9XHJlbGF4CisKKyUgQGNhcnRvdWNoZSAuLi4gQGVuZCBjYXJ0b3VjaGU6IGRyYXcgcmVjdGFuZ2xlIHcvcm91bmRlZCBjb3JuZXJzIGFyb3VuZAorJSBlbnZpcm9ubWVudCBjb250ZW50cy4KK1xmb250XGNpcmNsZT1sY2lyY2xlMTAKK1xuZXdkaW1lblxjaXJjdGhpY2sKK1xuZXdkaW1lblxjYXJ0b3V0ZXJcbmV3ZGltZW5cY2FydGlubmVyCitcbmV3c2tpcFxub3JtYnNraXBcbmV3c2tpcFxub3JtcHNraXBcbmV3c2tpcFxub3JtbHNraXAKK1xjaXJjdGhpY2s9XGZvbnRkaW1lbjhcY2lyY2xlCislCitcZGVmXGN0bHt7XGNpcmNsZVxjaGFyJzAxM1xoc2tpcCAtNnB0fX0lIDZwdCBmcm9tIHBsIGZpbGU6IDEvMmNoYXJ3aWR0aAorXGRlZlxjdHJ7e1xoc2tpcCA2cHRcY2lyY2xlXGNoYXInMDEwfX0KK1xkZWZcY2Jse3tcY2lyY2xlXGNoYXInMDEyXGhza2lwIC02cHR9fQorXGRlZlxjYnJ7e1xoc2tpcCA2cHRcY2lyY2xlXGNoYXInMDExfX0KK1xkZWZcY2FydHRvcHtcaGJveCB0byBcY2FydG91dGVye1xoc2tpcFxsc2tpcAorICAgICAgICBcY3RsXGxlYWRlcnNcaHJ1bGUgaGVpZ2h0XGNpcmN0aGlja1xoZmlsXGN0cgorICAgICAgICBcaHNraXBccnNraXB9fQorXGRlZlxjYXJ0Ym90e1xoYm94IHRvIFxjYXJ0b3V0ZXJ7XGhza2lwXGxza2lwCisgICAgICAgIFxjYmxcbGVhZGVyc1xocnVsZSBoZWlnaHRcY2lyY3RoaWNrXGhmaWxcY2JyCisgICAgICAgIFxoc2tpcFxyc2tpcH19CislCitcbmV3c2tpcFxsc2tpcFxuZXdza2lwXHJza2lwCisKK1xlbnZkZWZcY2FydG91Y2hleyUKKyAgXGlmaG1vZGVccGFyXGZpICAlIGNhbid0IGJlIGluIHRoZSBtaWRzdCBvZiBhIHBhcmFncmFwaC4KKyAgXHN0YXJ0c2F2aW5naW5zZXJ0cworICBcbHNraXA9XGxlZnRza2lwIFxyc2tpcD1ccmlnaHRza2lwCisgIFxsZWZ0c2tpcD0wcHRccmlnaHRza2lwPTBwdCAlIHdlIHdhbnQgdGhlc2UgKm91dHNpZGUqLgorICBcY2FydGlubmVyPVxoc2l6ZSBcYWR2YW5jZVxjYXJ0aW5uZXIgYnktXGxza2lwCisgIFxhZHZhbmNlXGNhcnRpbm5lciBieS1ccnNraXAKKyAgXGNhcnRvdXRlcj1caHNpemUKKyAgXGFkdmFuY2VcY2FydG91dGVyIGJ5IDE4LjRwdAklIGFsbG93IGZvciAzcHQga2VybnMgb24gZWl0aGVyCisJCQkJJSBzaWRlLCBhbmQgZm9yIDZwdCB3YXN0ZSBmcm9tCisJCQkJJSBlYWNoIGNvcm5lciBjaGFyLCBhbmQgcnVsZSB0aGlja25lc3MKKyAgXG5vcm1ic2tpcD1cYmFzZWxpbmVza2lwIFxub3JtcHNraXA9XHBhcnNraXAgXG5vcm1sc2tpcD1cbGluZXNraXAKKyAgJSBGbGFnIHRvIHRlbGwgQGxpc3AsIGV0Yy4sIG5vdCB0byBuYXJyb3cgbWFyZ2luLgorICBcbGV0XG5vbmFycm93aW5nID0gdCUKKyAgXHZib3hcYmdyb3VwCisgICAgICBcYmFzZWxpbmVza2lwPTBwdFxwYXJza2lwPTBwdFxsaW5lc2tpcD0wcHQKKyAgICAgIFxjYXJ0dG9wCisgICAgICBcaGJveFxiZ3JvdXAKKwkgIFxoc2tpcFxsc2tpcAorCSAgXHZydWxlXGtlcm4zcHQKKwkgIFx2Ym94XGJncm91cAorCSAgICAgIFxrZXJuM3B0CisJICAgICAgXGhzaXplPVxjYXJ0aW5uZXIKKwkgICAgICBcYmFzZWxpbmVza2lwPVxub3JtYnNraXAKKwkgICAgICBcbGluZXNraXA9XG5vcm1sc2tpcAorCSAgICAgIFxwYXJza2lwPVxub3JtcHNraXAKKwkgICAgICBcdnNraXAgLVxwYXJza2lwCisJICAgICAgXGNvbW1lbnQgJSBGb3IgZXhwbGFuYXRpb24sIHNlZSB0aGUgZW5kIG9mIFxkZWZcZ3JvdXAuCit9CitcZGVmXEVjYXJ0b3VjaGV7JQorICAgICAgICAgICAgICBcaWZobW9kZVxwYXJcZmkKKwkgICAgICBca2VybjNwdAorCSAgXGVncm91cAorCSAgXGtlcm4zcHRcdnJ1bGUKKwkgIFxoc2tpcFxyc2tpcAorICAgICAgXGVncm91cAorICAgICAgXGNhcnRib3QKKyAgXGVncm91cAorICBcY2hlY2tpbnNlcnRzCit9CisKKworJSBUaGlzIG1hY3JvIGlzIGNhbGxlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGFsbCB0aGUgQGV4YW1wbGUgdmFyaWFudHMsCislIGluc2lkZSBhIGdyb3VwLgorXGRlZlxub25maWxsc3RhcnR7JQorICBcYWJvdmVlbnZicmVhaworICBcaGZ1enogPSAxMnB0ICUgRG9uJ3QgYmUgZnVzc3kKKyAgXHNlcHNwYWNlcyAlIE1ha2Ugc3BhY2VzIGJlIHdvcmQtc2VwYXJhdG9ycyByYXRoZXIgdGhhbiBzcGFjZSB0b2tlbnMuCisgIFxsZXRccGFyID0gXGxpc3BwYXIgJSBkb24ndCBpZ25vcmUgYmxhbmsgbGluZXMKKyAgXG9iZXlsaW5lcyAlIGVhY2ggbGluZSBvZiBpbnB1dCBpcyBhIGxpbmUgb2Ygb3V0cHV0CisgIFxwYXJza2lwID0gMHB0CisgIFxwYXJpbmRlbnQgPSAwcHQKKyAgXGVtZXJnZW5jeXN0cmV0Y2ggPSAwcHQgJSBkb24ndCB0cnkgdG8gYXZvaWQgb3ZlcmZ1bGwgYm94ZXMKKyAgXGlmeFxub25hcnJvd2luZ1xyZWxheAorICAgIFxhZHZhbmNlIFxsZWZ0c2tpcCBieSBcbGlzcG5hcnJvd2luZworICAgIFxleGRlbnRhbW91bnQ9XGxpc3BuYXJyb3dpbmcKKyAgXGVsc2UKKyAgICBcbGV0XG5vbmFycm93aW5nID0gXHJlbGF4CisgIFxmaQorICBcbGV0XGV4ZGVudD1cbm9maWxsZXhkZW50Cit9CisKKyUgSWYgeW91IHdhbnQgYWxsIGV4YW1wbGVzIGV0Yy4gc21hbGw6IEBzZXQgZGlzcGVudnNpemUgc21hbGwuCislIElmIHlvdSB3YW50IGV2ZW4gc21hbGwgZXhhbXBsZXMgdGhlIGZ1bGwgc2l6ZTogQHNldCBkaXNwZW52c2l6ZSBub3NtYWxsLgorJSBUaGlzIGFmZmVjdHMgdGhlIGZvbGxvd2luZyBkaXNwbGF5ZWQgZW52aXJvbm1lbnRzOgorJSAgICBAZXhhbXBsZSwgQGRpc3BsYXksIEBmb3JtYXQsIEBsaXNwCislCitcZGVmXHNtYWxsd29yZHtzbWFsbH0KK1xkZWZcbm9zbWFsbHdvcmR7bm9zbWFsbH0KK1xsZXRcU0VUZGlzcGVudnNpemVccmVsYXgKK1xkZWZcc2V0bm9ybWFsZGlzcGVudnslCisgIFxpZnhcU0VUZGlzcGVudnNpemVcc21hbGx3b3JkCisgICAgXHNtYWxsZXhhbXBsZWZvbnRzIFxybQorICBcZmkKK30KK1xkZWZcc2V0c21hbGxkaXNwZW52eyUKKyAgXGlmeFxTRVRkaXNwZW52c2l6ZVxub3NtYWxsd29yZAorICBcZWxzZQorICAgIFxzbWFsbGV4YW1wbGVmb250cyBccm0KKyAgXGZpCit9CisKKyUgV2Ugb2Z0ZW4gZGVmaW5lIHR3byBlbnZpcm9ubWVudHMsIEBmb28gYW5kIEBzbWFsbGZvby4KKyUgTGV0J3MgZG8gaXQgYnkgb25lIGNvbW1hbmQ6CitcZGVmXG1ha2VkaXNwZW52ICMxIzJ7CisgIFxleHBhbmRhZnRlclxlbnZkZWZcY3NuYW1lIzFcZW5kY3NuYW1lIHtcc2V0bm9ybWFsZGlzcGVudiAjMn0KKyAgXGV4cGFuZGFmdGVyXGVudmRlZlxjc25hbWUgc21hbGwjMVxlbmRjc25hbWUge1xzZXRzbWFsbGRpc3BlbnYgIzJ9CisgIFxleHBhbmRhZnRlclxsZXRcY3NuYW1lIEUjMVxlbmRjc25hbWUgXGFmdGVyZW52YnJlYWsKKyAgXGV4cGFuZGFmdGVyXGxldFxjc25hbWUgRXNtYWxsIzFcZW5kY3NuYW1lIFxhZnRlcmVudmJyZWFrCit9CisKKyUgRGVmaW5lIHR3byBzeW5vbnltczoKK1xkZWZcbWFrZXR3b2Rpc3BlbnZzICMxIzIjM3sKKyAgXG1ha2VkaXNwZW52eyMxfXsjM30KKyAgXG1ha2VkaXNwZW52eyMyfXsjM30KK30KKworJSBAbGlzcDogaW5kZW50ZWQsIG5hcnJvd2VkLCB0eXBld3JpdGVyIGZvbnQ7IEBleGFtcGxlOiBzYW1lIGFzIEBsaXNwLgorJQorJSBAc21hbGxleGFtcGxlIGFuZCBAc21hbGxsaXNwOiB1c2Ugc21hbGxlciBmb250cy4KKyUgT3JpZ2luYWxseSBjb250cmlidXRlZCBieSBQYXZlbEB4ZXJveC4KKyUKK1xtYWtldHdvZGlzcGVudnMge2xpc3B9e2V4YW1wbGV9eyUKKyAgXG5vbmZpbGxzdGFydAorICBcdHQKKyAgXGxldFxrYmRmb250ID0gXGtiZGV4YW1wbGVmb250ICUgQWxsb3cgQGtiZCB0byBkbyBzb21ldGhpbmcgc3BlY2lhbC4KKyAgXGdvYmJsZSAgICAgICAlIGVhdCByZXR1cm4KK30KKworJSBAZGlzcGxheS9Ac21hbGxkaXNwbGF5OiBzYW1lIGFzIEBsaXNwIGV4Y2VwdCBrZWVwIGN1cnJlbnQgZm9udC4KKyUKK1xtYWtlZGlzcGVudiB7ZGlzcGxheX17JQorICBcbm9uZmlsbHN0YXJ0CisgIFxnb2JibGUKK30KKworJSBAZm9ybWF0L0BzbWFsbGZvcm1hdDogc2FtZSBhcyBAZGlzcGxheSBleGNlcHQgZG9uJ3QgbmFycm93IG1hcmdpbnMuCislCitcbWFrZWRpc3BlbnZ7Zm9ybWF0fXslCisgIFxsZXRcbm9uYXJyb3dpbmcgPSB0JQorICBcbm9uZmlsbHN0YXJ0CisgIFxnb2JibGUKK30KKworJSBAZmx1c2hsZWZ0OiBzYW1lIGFzIEBmb3JtYXQsIGJ1dCBkb2Vzbid0IG9iZXkgXFNFVGRpc3BlbnZzaXplLgorXGVudmRlZlxmbHVzaGxlZnR7JQorICBcbGV0XG5vbmFycm93aW5nID0gdCUKKyAgXG5vbmZpbGxzdGFydAorICBcZ29iYmxlCit9CitcbGV0XEVmbHVzaGxlZnQgPSBcYWZ0ZXJlbnZicmVhaworCislIEBmbHVzaHJpZ2h0LgorJQorXGVudmRlZlxmbHVzaHJpZ2h0eyUKKyAgXGxldFxub25hcnJvd2luZyA9IHQlCisgIFxub25maWxsc3RhcnQKKyAgXGFkdmFuY2VcbGVmdHNraXAgYnkgMHB0IHBsdXMgMWZpbGwKKyAgXGdvYmJsZQorfQorXGxldFxFZmx1c2hyaWdodCA9IFxhZnRlcmVudmJyZWFrCisKKworJSBAcXVvdGF0aW9uIGRvZXMgbm9ybWFsIGxpbmVicmVha2luZyAoaGVuY2Ugd2UgY2FuJ3QgdXNlIFxub25maWxsc3RhcnQpCislIGFuZCBuYXJyb3dzIHRoZSBtYXJnaW5zLiAgV2Uga2VlcCBccGFyc2tpcCBub256ZXJvIGluIGdlbmVyYWwsIHNpbmNlCislIHdlJ3JlIGRvaW5nIG5vcm1hbCBmaWxsaW5nLiAgU28sIHdoZW4gdXNpbmcgXGFib3ZlZW52YnJlYWsgYW5kCislIFxhZnRlcmVudmJyZWFrLCB0ZW1wb3JhcmlseSBtYWtlIFxwYXJza2lwIDAuCislCitcZW52ZGVmXHF1b3RhdGlvbnslCisgIHtccGFyc2tpcD0wcHQgXGFib3ZlZW52YnJlYWt9JSBiZWNhdXNlIFxhYm92ZWVudmJyZWFrIGluc2VydHMgXHBhcnNraXAKKyAgXHBhcmluZGVudD0wcHQKKyAgJQorICAlIEBjYXJ0b3VjaGUgZGVmaW5lcyBcbm9uYXJyb3dpbmcgdG8gaW5oaWJpdCBuYXJyb3dpbmcgYXQgbmV4dCBsZXZlbCBkb3duLgorICBcaWZ4XG5vbmFycm93aW5nXHJlbGF4CisgICAgXGFkdmFuY2VcbGVmdHNraXAgYnkgXGxpc3BuYXJyb3dpbmcKKyAgICBcYWR2YW5jZVxyaWdodHNraXAgYnkgXGxpc3BuYXJyb3dpbmcKKyAgICBcZXhkZW50YW1vdW50ID0gXGxpc3BuYXJyb3dpbmcKKyAgXGVsc2UKKyAgICBcbGV0XG5vbmFycm93aW5nID0gXHJlbGF4CisgIFxmaQorICBccGFyc2VhcmdccXVvdGF0aW9ubGFiZWwKK30KKworJSBXZSBoYXZlIHJldGFpbmVkIGEgbm9uemVybyBwYXJza2lwIGZvciB0aGUgZW52aXJvbm1lbnQsIHNpbmNlIHdlJ3JlCislIGRvaW5nIG5vcm1hbCBmaWxsaW5nLgorJQorXGRlZlxFcXVvdGF0aW9ueyUKKyAgXHBhcgorICBcaWZ4XHF1b3RhdGlvbmF1dGhvclx1bmRlZmluZWRcZWxzZQorICAgICUgaW5kZW50IGEgYml0LgorICAgIFxsZWZ0bGluZXtca2VybiAyXGxlZnRza2lwIFxzbCAtLS1ccXVvdGF0aW9uYXV0aG9yfSUKKyAgXGZpCisgIHtccGFyc2tpcD0wcHQgXGFmdGVyZW52YnJlYWt9JQorfQorCislIElmIHdlJ3JlIGdpdmVuIGFuIGFyZ3VtZW50LCB0eXBlc2V0IGl0IGluIGJvbGQgd2l0aCBhIGNvbG9uIGFmdGVyLgorXGRlZlxxdW90YXRpb25sYWJlbCMxeyUKKyAgXGRlZlx0ZW1weyMxfSUKKyAgXGlmeFx0ZW1wXGVtcHR5IFxlbHNlCisgICAge1xiZiAjMTogfSUKKyAgXGZpCit9CisKKworJSBMYVRlWC1saWtlIEB2ZXJiYXRpbS4uLkBlbmQgdmVyYmF0aW0gYW5kIEB2ZXJiezxjaGFyPi4uLjxjaGFyPn0KKyUgSWYgd2Ugd2FudCB0byBhbGxvdyBhbnkgPGNoYXI+IGFzIGRlbGltaXRlciwKKyUgd2UgbmVlZCB0aGUgY3VybHkgYnJhY2VzIHNvIHRoYXQgbWFrZWluZm8gc2VlcyB0aGUgQHZlcmIgY29tbWFuZCwgZWc6CislIGBAdmVyYnguLi54JyB3b3VsZCBsb29rIGxpa2UgdGhlICdAdmVyYngnIGNvbW1hbmQuICAtLWphbm5la2VAZ251Lm9yZworJQorJSBbS251dGhdOiBEb25hbGQgRXJ2aW4gS251dGgsIDE5OTYuICBUaGUgVGVYYm9vay4KKyUKKyUgW0tudXRoXSBwLjM0NDsgb25seSB3ZSBuZWVkIHRvIGRvIHRoZSBvdGhlciBjaGFyYWN0ZXJzIFRleGluZm8gc2V0cworJSBhY3RpdmUgdG9vLiAgT3RoZXJ3aXNlLCB0aGV5IGdldCBsb3N0IGFzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb24gYQorJSB2ZXJiYXRpbSBsaW5lLgorXGRlZlxkb3NwZWNpYWxzeyUKKyAgXGRvXCBcZG9cXFxkb1x7XGRvXH1cZG9cJFxkb1wmJQorICBcZG9cI1xkb1xeXGRvXF5eS1xkb1xfXGRvXF5eQVxkb1wlXGRvXH4lCisgIFxkb1w8XGRvXD5cZG9cfFxkb1xAXGRvK1xkb1wiJQorfQorJQorJSBbS251dGhdIHAuIDM4MAorXGRlZlx1bmNhdGNvZGVzcGVjaWFsc3slCisgIFxkZWZcZG8jIzF7XGNhdGNvZGVgIyMxPVxvdGhlcn1cZG9zcGVjaWFsc30KKyUKKyUgW0tudXRoXSBwcC4gMzgwLDM4MSwzOTEKKyUgRGlzYWJsZSBTcGFuaXNoIGxpZ2F0dXJlcyA/YCBhbmQgIWAgb2YgXHR0IGZvbnQKK1xiZWdpbmdyb3VwCisgIFxjYXRjb2RlYFxgPVxhY3RpdmVcZ2RlZmB7XHJlbGF4XGxxfQorXGVuZGdyb3VwCislCislIFNldHVwIGZvciB0aGUgQHZlcmIgY29tbWFuZC4KKyUKKyUgRWlnaHQgc3BhY2VzIGZvciBhIHRhYgorXGJlZ2luZ3JvdXAKKyAgXGNhdGNvZGVgXF5eST1cYWN0aXZlCisgIFxnZGVmXHRhYmVpZ2h0c3BhY2Vze1xjYXRjb2RlYFxeXkk9XGFjdGl2ZVxkZWZeXkl7XCBcIFwgXCBcIFwgXCBcIH19CitcZW5kZ3JvdXAKKyUKK1xkZWZcc2V0dXB2ZXJieyUKKyAgXHR0ICAlIGVhc2llc3QgKGFuZCBjb252ZW50aW9uYWxseSB1c2VkKSBmb250IGZvciB2ZXJiYXRpbQorICBcZGVmXHBhcntcbGVhdmV2bW9kZVxlbmRncmFmfSUKKyAgXGNhdGNvZGVgXGA9XGFjdGl2ZQorICBcdGFiZWlnaHRzcGFjZXMKKyAgJSBSZXNwZWN0IGxpbmUgYnJlYWtzLAorICAlIHByaW50IHNwZWNpYWwgc3ltYm9scyBhcyB0aGVtc2VsdmVzLCBhbmQKKyAgJSBtYWtlIGVhY2ggc3BhY2UgY291bnQKKyAgJSBtdXN0IGRvIGluIHRoaXMgb3JkZXI6CisgIFxvYmV5bGluZXMgXHVuY2F0Y29kZXNwZWNpYWxzIFxzZXBzcGFjZXMKK30KKworJSBTZXR1cCBmb3IgdGhlIEB2ZXJiYXRpbSBlbnZpcm9ubWVudAorJQorJSBSZWFsIHRhYiBleHBhbnNpb24KK1xuZXdkaW1lblx0YWJ3IFxzZXRib3gwPVxoYm94e1x0dFxzcGFjZX0gXHRhYnc9OFx3ZDAgJSB0YWIgYW1vdW50CislCitcZGVmXHN0YXJ0dGFiYm94e1xzZXRib3gwPVxoYm94XGJncm91cH0KK1xiZWdpbmdyb3VwCisgIFxjYXRjb2RlYFxeXkk9XGFjdGl2ZQorICBcZ2RlZlx0YWJleHBhbmR7JQorICAgIFxjYXRjb2RlYFxeXkk9XGFjdGl2ZQorICAgIFxkZWZeXkl7XGxlYXZldm1vZGVcZWdyb3VwCisgICAgICBcZGltZW4wPVx3ZDAgJSB0aGUgd2lkdGggc28gZmFyLCBvciBzaW5jZSB0aGUgcHJldmlvdXMgdGFiCisgICAgICBcZGl2aWRlXGRpbWVuMCBieVx0YWJ3CisgICAgICBcbXVsdGlwbHlcZGltZW4wIGJ5XHRhYncgJSBjb21wdXRlIHByZXZpb3VzIG11bHRpcGxlIG9mIFx0YWJ3CisgICAgICBcYWR2YW5jZVxkaW1lbjAgYnlcdGFidyAgJSBhZHZhbmNlIHRvIG5leHQgbXVsdGlwbGUgb2YgXHRhYncKKyAgICAgIFx3ZDA9XGRpbWVuMCBcYm94MCBcc3RhcnR0YWJib3gKKyAgICB9JQorICB9CitcZW5kZ3JvdXAKK1xkZWZcc2V0dXB2ZXJiYXRpbXslCisgIFxsZXRcbm9uYXJyb3dpbmcgPSB0JQorICBcbm9uZmlsbHN0YXJ0CisgICUgRWFzaWVzdCAoYW5kIGNvbnZlbnRpb25hbGx5IHVzZWQpIGZvbnQgZm9yIHZlcmJhdGltCisgIFx0dAorICBcZGVmXHBhcntcbGVhdmV2bW9kZVxlZ3JvdXBcYm94MFxlbmRncmFmfSUKKyAgXGNhdGNvZGVgXGA9XGFjdGl2ZQorICBcdGFiZXhwYW5kCisgICUgUmVzcGVjdCBsaW5lIGJyZWFrcywKKyAgJSBwcmludCBzcGVjaWFsIHN5bWJvbHMgYXMgdGhlbXNlbHZlcywgYW5kCisgICUgbWFrZSBlYWNoIHNwYWNlIGNvdW50CisgICUgbXVzdCBkbyBpbiB0aGlzIG9yZGVyOgorICBcb2JleWxpbmVzIFx1bmNhdGNvZGVzcGVjaWFscyBcc2Vwc3BhY2VzCisgIFxldmVyeXBhcntcc3RhcnR0YWJib3h9JQorfQorCislIERvIHRoZSBAdmVyYiBtYWdpYzogdmVyYmF0aW0gdGV4dCBpcyBxdW90ZWQgYnkgdW5pcXVlCislIGRlbGltaXRlciBjaGFyYWN0ZXJzLiAgQmVmb3JlIGZpcnN0IGRlbGltaXRlciBleHBlY3QgYQorJSByaWdodCBicmFjZSwgYWZ0ZXIgbGFzdCBkZWxpbWl0ZXIgZXhwZWN0IGNsb3NpbmcgYnJhY2U6CislCislICAgIFxkZWZcZG92ZXJiJ3snPGNoYXI+IzE8Y2hhcj4nfSd7IzF9CislCislIFtLbnV0aF0gcC4gMzgyOyBvbmx5IGVhdCBvdXRlciB7fQorXGJlZ2luZ3JvdXAKKyAgXGNhdGNvZGVgWz0xXGNhdGNvZGVgXT0yXGNhdGNvZGVgXHs9XG90aGVyXGNhdGNvZGVgXH09XG90aGVyCisgIFxnZGVmXGRvdmVyYnsjMVtcZGVmXG5leHQjIzEjMX1bIyMxXGVuZGdyb3VwXVxuZXh0XQorXGVuZGdyb3VwCislCitcZGVmXHZlcmJ7XGJlZ2luZ3JvdXBcc2V0dXB2ZXJiXGRvdmVyYn0KKyUKKyUKKyUgRG8gdGhlIEB2ZXJiYXRpbSBtYWdpYzogZGVmaW5lIHRoZSBtYWNybyBcZG92ZXJiYXRpbSBzbyB0aGF0CislIHRoZSAoZmlyc3QpIGFyZ3VtZW50IGVuZHMgd2hlbiAnQGVuZCB2ZXJiYXRpbScgaXMgcmVhY2hlZCwgaWU6CislCislICAgICBcZGVmXGRvdmVyYmF0aW0jMUBlbmQgdmVyYmF0aW17IzF9CislCislIEZvciBUZXhpbmZvIGl0J3MgYSBsb3QgZWFzaWVyIHRoYW4gZm9yIExhVGVYLAorJSBiZWNhdXNlIHRleGluZm8ncyBcdmVyYmF0aW0gZG9lc24ndCBzdG9wIGF0ICdcZW5ke3ZlcmJhdGltfSc6CislIHdlIG5lZWQgbm90IHJlZGVmaW5lICdcJywgJ3snIGFuZCAnfScuCislCislIEluc3BpcmVkIGJ5IExhVGVYJ3MgdmVyYmF0aW0gY29tbWFuZCBzZXQgW2xhdGV4Lmx0eF0KKyUKK1xiZWdpbmdyb3VwCisgIFxjYXRjb2RlYFwgPVxhY3RpdmUKKyAgXG9iZXlsaW5lcyAlCisgICUgaWdub3JlIGV2ZXJ5dGhpbmcgdXAgdG8gdGhlIGZpcnN0IF5eTSwgdGhhdCdzIHRoZSBuZXdsaW5lIGF0IHRoZSBlbmQKKyAgJSBvZiB0aGUgQHZlcmJhdGltIGlucHV0IGxpbmUgaXRzZWxmLiAgT3RoZXJ3aXNlIHdlIGdldCBhbiBleHRyYSBibGFuaworICAlIGxpbmUgaW4gdGhlIG91dHB1dC4KKyAgXHhkZWZcZG92ZXJiYXRpbSMxXl5NIzJAZW5kIHZlcmJhdGlteyMyXG5vZXhwYW5kXGVuZFxnb2JibGUgdmVyYmF0aW19JQorICAlIFdlIHJlYWxseSB3YW50IHsuLi5cZW5kIHZlcmJhdGltfSBpbiB0aGUgYm9keSBvZiB0aGUgbWFjcm8sIGJ1dAorICAlIHdpdGhvdXQgdGhlIGFjdGl2ZSBzcGFjZTsgdGh1cyB3ZSBoYXZlIHRvIHVzZSBceGRlZiBhbmQgXGdvYmJsZS4KK1xlbmRncm91cAorJQorXGVudmRlZlx2ZXJiYXRpbXslCisgICAgXHNldHVwdmVyYmF0aW1cZG92ZXJiYXRpbQorfQorXGxldFxFdmVyYmF0aW0gPSBcYWZ0ZXJlbnZicmVhaworCisKKyUgQHZlcmJhdGltaW5jbHVkZSBGSUxFIC0gaW5zZXJ0IHRleHQgb2YgZmlsZSBpbiB2ZXJiYXRpbSBlbnZpcm9ubWVudC4KKyUKK1xkZWZcdmVyYmF0aW1pbmNsdWRle1xwYXJzZWFyZ3VzaW5nXGZpbGVuYW1lY2F0Y29kZXNcZG92ZXJiYXRpbWluY2x1ZGV9CislCitcZGVmXGRvdmVyYmF0aW1pbmNsdWRlIzF7JQorICB7JQorICAgIFxtYWtldmFsdWVleHBhbmRhYmxlCisgICAgXHNldHVwdmVyYmF0aW0KKyAgICBcaW5wdXQgIzEKKyAgICBcYWZ0ZXJlbnZicmVhaworICB9JQorfQorCislIEBjb3B5aW5nIC4uLiBAZW5kIGNvcHlpbmcuCislIFNhdmUgdGhlIHRleHQgYXdheSBmb3IgQGluc2VydGNvcHlpbmcgbGF0ZXIuCislCislIFdlIHNhdmUgdGhlIHVuaW50ZXJwcmV0ZWQgdG9rZW5zLCByYXRoZXIgdGhhbiBjcmVhdGluZyBhIGJveC4KKyUgU2F2aW5nIHRoZSB0ZXh0IGluIGEgYm94IHdvdWxkIGJlIG11Y2ggZWFzaWVyLCBidXQgdGhlbiBhbGwgdGhlCislIHR5cGVzZXR0aW5nIGNvbW1hbmRzIChAc21hbGxib29rLCBmb250IGNoYW5nZXMsIGV0Yy4pIGhhdmUgdG8gYmUgZG9uZQorJSBiZWZvcmVoYW5kIC0tIGFuZCBhKSB3ZSB3YW50IEBjb3B5aW5nIHRvIGJlIGRvbmUgZmlyc3QgaW4gdGhlIHNvdXJjZQorJSBmaWxlOyBiKSBsZXR0aW5nIHVzZXJzIGRlZmluZSB0aGUgZnJvbnRtYXR0ZXIgaW4gYXMgZmxleGlibGUgb3JkZXIgYXMKKyUgcG9zc2libGUgaXMgdmVyeSBkZXNpcmFibGUuCislCitcZGVmXGNvcHlpbmd7XGNoZWNrZW52e31cYmVnaW5ncm91cFxzY2FuYXJnY3R4dFxkb2NvcHlpbmd9CitcZGVmXGRvY29weWluZyMxQGVuZCBjb3B5aW5ne1xlbmRncm91cFxkZWZcY29weWluZ3RleHR7IzF9fQorJQorXGRlZlxpbnNlcnRjb3B5aW5neyUKKyAgXGJlZ2luZ3JvdXAKKyAgICBccGFyaW5kZW50ID0gMHB0ICAlIHBhcmFncmFwaCBpbmRlbnRhdGlvbiBsb29rcyB3cm9uZyBvbiB0aXRsZSBwYWdlCisgICAgXHNjYW5leHBcY29weWluZ3RleHQKKyAgXGVuZGdyb3VwCit9CisKK1xtZXNzYWdle2RlZnVucyx9CislIEBkZWZ1biBldGMuCisKK1xuZXdza2lwXGRlZmJvZHlpbmRlbnQgXGRlZmJvZHlpbmRlbnQ9LjRpbgorXG5ld3NraXBcZGVmYXJnc2luZGVudCBcZGVmYXJnc2luZGVudD01MHB0CitcbmV3c2tpcFxkZWZsYXN0YXJnbWFyZ2luIFxkZWZsYXN0YXJnbWFyZ2luPTE4cHQKKworJSBTdGFydCB0aGUgcHJvY2Vzc2luZyBvZiBAZGVmZm46CitcZGVmXHN0YXJ0ZGVmdW57JQorICBcaWZudW1cbGFzdHBlbmFsdHk8MTAwMDAKKyAgICBcbWVkYnJlYWsKKyAgXGVsc2UKKyAgICAlIElmIHRoZXJlIGFyZSB0d28gQGRlZiBjb21tYW5kcyBpbiBhIHJvdywgd2UnbGwgaGF2ZSBhIFxub2JyZWFrLAorICAgICUgd2hpY2ggaXMgdGhlcmUgdG8ga2VlcCB0aGUgZnVuY3Rpb24gZGVzY3JpcHRpb24gdG9nZXRoZXIgd2l0aCBpdHMKKyAgICAlIGhlYWRlci4gIEJ1dCBpZiB0aGVyZSdzIG5vdGhpbmcgYnV0IGhlYWRlcnMsIHdlIG5lZWQgdG8gYWxsb3cgYQorICAgICUgYnJlYWsgc29tZXdoZXJlLiAgQ2hlY2sgc3BlY2lmaWNhbGx5IGZvciBwZW5hbHR5IDEwMDAyLCBpbnNlcnRlZAorICAgICUgYnkgXGRlZmFyZ3Njb21tb25lbmRpbmcsIGluc3RlYWQgb2YgMTAwMDAsIHNpbmNlIHRoZSBzZWN0aW9uaW5nCisgICAgJSBjb21tYW5kcyBhbHNvIGluc2VydCBhIG5vYnJlYWsgcGVuYWx0eSwgYW5kIHdlIGRvbid0IHdhbnQgdG8gYWxsb3cKKyAgICAlIGEgYnJlYWsgYmV0d2VlbiBhIHNlY3Rpb24gaGVhZGluZyBhbmQgYSBkZWZ1bi4KKyAgICAlIAorICAgIFxpZm51bVxsYXN0cGVuYWx0eT0xMDAwMiBccGVuYWx0eTIwMDAgXGZpCisgICAgJQorICAgICUgU2ltaWxhcmx5LCBhZnRlciBhIHNlY3Rpb24gaGVhZGluZywgZG8gbm90IGFsbG93IGEgYnJlYWsuCisgICAgJSBCdXQgZG8gaW5zZXJ0IHRoZSBnbHVlLgorICAgIFxtZWRza2lwICAlIHByZWNlZGVkIGJ5IGRpc2NhcmRhYmxlIHBlbmFsdHksIHNvIG5vdCBhIGJyZWFrcG9pbnQKKyAgXGZpCisgICUKKyAgXHBhcmluZGVudD0waW4KKyAgXGFkdmFuY2VcbGVmdHNraXAgYnkgXGRlZmJvZHlpbmRlbnQKKyAgXGV4ZGVudGFtb3VudD1cZGVmYm9keWluZGVudAorfQorCitcZGVmXGRvZGVmdW54IzF7JQorICAlIEZpcnN0LCBjaGVjayB3aGV0aGVyIHdlIGFyZSBpbiB0aGUgcmlnaHQgZW52aXJvbm1lbnQ6CisgIFxjaGVja2VudiMxJQorICAlCisgICUgQXMgYWJvdmUsIGFsbG93IGxpbmUgYnJlYWsgaWYgd2UgaGF2ZSBtdWx0aXBsZSB4IGhlYWRlcnMgaW4gYSByb3cuCisgICUgSXQncyBub3QgYSBncmVhdCBwbGFjZSwgdGhvdWdoLgorICBcaWZudW1cbGFzdHBlbmFsdHk9MTAwMDIgXHBlbmFsdHkzMDAwIFxmaQorICAlCisgICUgQW5kIG5vdywgaXQncyB0aW1lIHRvIHJldXNlIHRoZSBib2R5IG9mIHRoZSBvcmlnaW5hbCBkZWZ1bjoKKyAgXGV4cGFuZGFmdGVyXGdvYmJsZWRlZnVuIzElCit9CitcZGVmXGdvYmJsZWRlZnVuIzFcc3RhcnRkZWZ1bnt9CisKKyUgXHByaW50ZGVmdW5saW5lIFxkZWZmbmhlYWRlcnt0ZXh0fQorJQorXGRlZlxwcmludGRlZnVubGluZSMxIzJ7JQorICBcYmVnaW5ncm91cAorICAgICUgY2FsbCBcZGVmZm5oZWFkZXI6CisgICAgIzEjMiBcZW5kaGVhZGVyCisgICAgJSBjb21tb24gZW5kaW5nOgorICAgIFxpbnRlcmxpbmVwZW5hbHR5ID0gMTAwMDAKKyAgICBcYWR2YW5jZVxyaWdodHNraXAgYnkgMHB0IHBsdXMgMWZpbAorICAgIFxlbmRncmFmCisgICAgXG5vYnJlYWtcdnNraXAgLVxwYXJza2lwCisgICAgXHBlbmFsdHkgMTAwMDIgICUgc2lnbmFsIHRvIFxzdGFydGRlZnVuIGFuZCBcZG9kZWZ1bngKKyAgICAlIFNvbWUgb2YgdGhlIEBkZWZ1bi10eXBlIHRhZ3MgZG8gbm90IGVuYWJsZSBtYWdpYyBwYXJlbnRoZXNlcywKKyAgICAlIHJlbmRlcmluZyB0aGUgZm9sbG93aW5nIGNoZWNrIHJlZHVuZGFudC4gIEJ1dCB3ZSBkb24ndCBvcHRpbWl6ZS4KKyAgICBcY2hlY2twYXJlbmNvdW50cworICBcZW5kZ3JvdXAKK30KKworXGRlZlxFZGVmdW57XGVuZGdyYWZcbWVkYnJlYWt9CisKKyUgXG1ha2VkZWZ1bntkZWZmbn0gY3JlYXRlcyBcZGVmZm4sIFxkZWZmbnggYW5kIFxFZGVmZm47CislIHRoZSBvbmx5IHRoaW5nIHJlbWFpbm5pZyBpcyB0byBkZWZpbmUgXGRlZmZuaGVhZGVyLgorJQorXGRlZlxtYWtlZGVmdW4jMXslCisgIFxleHBhbmRhZnRlclxsZXRcY3NuYW1lIEUjMVxlbmRjc25hbWUgPSBcRWRlZnVuCisgIFxlZGVmXHRlbXB7XG5vZXhwYW5kXGRvbWFrZWRlZnVuCisgICAgXG1ha2Vjc25hbWV7IzF9XG1ha2Vjc25hbWV7IzF4fVxtYWtlY3NuYW1leyMxaGVhZGVyfX0lCisgIFx0ZW1wCit9CisKKyUgXGRvbWFrZWRlZnVuIFxkZWZmbiBcZGVmZm54IFxkZWZmbmhlYWRlcgorJQorJSBEZWZpbmUgXGRlZmZuIGFuZCBcZGVmZm54LCB3aXRob3V0IHBhcmFtZXRlcnMuCislIFxkZWZmbmhlYWRlciBoYXMgdG8gYmUgZGVmaW5lZCBleHBsaWNpdGx5LgorJQorXGRlZlxkb21ha2VkZWZ1biMxIzIjM3slCisgIFxlbnZkZWYjMXslCisgICAgXHN0YXJ0ZGVmdW4KKyAgICBccGFyc2Vhcmd1c2luZ1xhY3RpdmVwYXJlbnN7XHByaW50ZGVmdW5saW5lIzN9JQorICB9JQorICBcZGVmIzJ7XGRvZGVmdW54IzF9JQorICBcZGVmIzMlCit9CisKKyUlJSBVbnR5cGVkIGZ1bmN0aW9uczoKKworJSBAZGVmZm4gY2F0ZWdvcnkgbmFtZSBhcmdzCitcbWFrZWRlZnVue2RlZmZufXtcZGVmZm5nZW5lcmFse319CisKKyUgQGRlZmZuIGNhdGVnb3J5IGNsYXNzIG5hbWUgYXJncworXG1ha2VkZWZ1bntkZWZvcH0jMSB7XGRlZm9wb257IzFcIFxwdXR3b3Jkb259fQorCislIFxkZWZvcG9uIHtjYXRlZ29yeSBvbn1jbGFzcyBuYW1lIGFyZ3MKK1xkZWZcZGVmb3BvbiMxIzIge1xkZWZmbmdlbmVyYWx7XHB1dHdvcmRvblwgXGNvZGV7IzJ9fXsjMVwgXGNvZGV7IzJ9fSB9CisKKyUgXGRlZmZuZ2VuZXJhbCB7c3ViaW5kfWNhdGVnb3J5IG5hbWUgYXJncworJQorXGRlZlxkZWZmbmdlbmVyYWwjMSMyICMzICM0XGVuZGhlYWRlcnslCisgICUgUmVtZW1iZXIgdGhhdCBcZG9zdWJpbmR7Zm59e2Zvb317fSBpcyBlcXVpdmFsZW50IHRvIFxkb2luZHtmbn17Zm9vfS4KKyAgXGRvc3ViaW5ke2ZufXtcY29kZXsjM319eyMxfSUKKyAgXGRlZm5hbWV7IzJ9e317IzN9XG1hZ2ljYW1wXGRlZnVuYXJnc3sjNFx1bnNraXB9JQorfQorCislJSUgVHlwZWQgZnVuY3Rpb25zOgorCislIEBkZWZ0eXBlZm4gY2F0ZWdvcnkgdHlwZSBuYW1lIGFyZ3MKK1xtYWtlZGVmdW57ZGVmdHlwZWZufXtcZGVmdHlwZWZuZ2VuZXJhbHt9fQorCislIEBkZWZ0eXBlb3AgY2F0ZWdvcnkgY2xhc3MgdHlwZSBuYW1lIGFyZ3MKK1xtYWtlZGVmdW57ZGVmdHlwZW9wfSMxIHtcZGVmdHlwZW9wb257IzFcIFxwdXR3b3Jkb259fQorCislIFxkZWZ0eXBlb3BvbiB7Y2F0ZWdvcnkgb259Y2xhc3MgdHlwZSBuYW1lIGFyZ3MKK1xkZWZcZGVmdHlwZW9wb24jMSMyIHtcZGVmdHlwZWZuZ2VuZXJhbHtccHV0d29yZG9uXCBcY29kZXsjMn19eyMxXCBcY29kZXsjMn19IH0KKworJSBcZGVmdHlwZWZuZ2VuZXJhbCB7c3ViaW5kfWNhdGVnb3J5IHR5cGUgbmFtZSBhcmdzCislCitcZGVmXGRlZnR5cGVmbmdlbmVyYWwjMSMyICMzICM0ICM1XGVuZGhlYWRlcnslCisgIFxkb3N1YmluZHtmbn17XGNvZGV7IzR9fXsjMX0lCisgIFxkZWZuYW1leyMyfXsjM317IzR9XGRlZnVuYXJnc3sjNVx1bnNraXB9JQorfQorCislJSUgVHlwZWQgdmFyaWFibGVzOgorCislIEBkZWZ0eXBldnIgY2F0ZWdvcnkgdHlwZSB2YXIgYXJncworXG1ha2VkZWZ1bntkZWZ0eXBldnJ9e1xkZWZ0eXBlY3ZnZW5lcmFse319CisKKyUgQGRlZnR5cGVjdiBjYXRlZ29yeSBjbGFzcyB0eXBlIHZhciBhcmdzCitcbWFrZWRlZnVue2RlZnR5cGVjdn0jMSB7XGRlZnR5cGVjdm9meyMxXCBccHV0d29yZG9mfX0KKworJSBcZGVmdHlwZWN2b2Yge2NhdGVnb3J5IG9mfWNsYXNzIHR5cGUgdmFyIGFyZ3MKK1xkZWZcZGVmdHlwZWN2b2YjMSMyIHtcZGVmdHlwZWN2Z2VuZXJhbHtccHV0d29yZG9mXCBcY29kZXsjMn19eyMxXCBcY29kZXsjMn19IH0KKworJSBcZGVmdHlwZWN2Z2VuZXJhbCB7c3ViaW5kfWNhdGVnb3J5IHR5cGUgdmFyIGFyZ3MKKyUKK1xkZWZcZGVmdHlwZWN2Z2VuZXJhbCMxIzIgIzMgIzQgIzVcZW5kaGVhZGVyeyUKKyAgXGRvc3ViaW5ke3ZyfXtcY29kZXsjNH19eyMxfSUKKyAgXGRlZm5hbWV7IzJ9eyMzfXsjNH1cZGVmdW5hcmdzeyM1XHVuc2tpcH0lCit9CisKKyUlJSBVbnR5cGVkIHZhcmlhYmxlczoKKworJSBAZGVmdnIgY2F0ZWdvcnkgdmFyIGFyZ3MKK1xtYWtlZGVmdW57ZGVmdnJ9IzEge1xkZWZ0eXBldnJoZWFkZXJ7IzF9IHt9IH0KKworJSBAZGVmY3YgY2F0ZWdvcnkgY2xhc3MgdmFyIGFyZ3MKK1xtYWtlZGVmdW57ZGVmY3Z9IzEge1xkZWZjdm9meyMxXCBccHV0d29yZG9mfX0KKworJSBcZGVmY3ZvZiB7Y2F0ZWdvcnkgb2Z9Y2xhc3MgdmFyIGFyZ3MKK1xkZWZcZGVmY3ZvZiMxIzIge1xkZWZ0eXBlY3ZvZnsjMX0jMiB7fSB9CisKKyUlJSBUeXBlOgorJSBAZGVmdHAgY2F0ZWdvcnkgbmFtZSBhcmdzCitcbWFrZWRlZnVue2RlZnRwfSMxICMyICMzXGVuZGhlYWRlcnslCisgIFxkb2luZHt0cH17XGNvZGV7IzJ9fSUKKyAgXGRlZm5hbWV7IzF9e317IzJ9XGRlZnVuYXJnc3sjM1x1bnNraXB9JQorfQorCislIFJlbWFpbmluZyBAZGVmdW4tbGlrZSBzaG9ydGN1dHM6CitcbWFrZWRlZnVue2RlZnVufXtcZGVmZm5oZWFkZXJ7XHB1dHdvcmREZWZmdW5jfSB9CitcbWFrZWRlZnVue2RlZm1hY317XGRlZmZuaGVhZGVye1xwdXR3b3JkRGVmbWFjfSB9CitcbWFrZWRlZnVue2RlZnNwZWN9e1xkZWZmbmhlYWRlcntccHV0d29yZERlZnNwZWN9IH0KK1xtYWtlZGVmdW57ZGVmdHlwZWZ1bn17XGRlZnR5cGVmbmhlYWRlcntccHV0d29yZERlZmZ1bmN9IH0KK1xtYWtlZGVmdW57ZGVmdmFyfXtcZGVmdnJoZWFkZXJ7XHB1dHdvcmREZWZ2YXJ9IH0KK1xtYWtlZGVmdW57ZGVmb3B0fXtcZGVmdnJoZWFkZXJ7XHB1dHdvcmREZWZvcHR9IH0KK1xtYWtlZGVmdW57ZGVmdHlwZXZhcn17XGRlZnR5cGV2cmhlYWRlcntccHV0d29yZERlZnZhcn0gfQorXG1ha2VkZWZ1bntkZWZtZXRob2R9e1xkZWZvcG9uXHB1dHdvcmRNZXRob2Rvbn0KK1xtYWtlZGVmdW57ZGVmdHlwZW1ldGhvZH17XGRlZnR5cGVvcG9uXHB1dHdvcmRNZXRob2Rvbn0KK1xtYWtlZGVmdW57ZGVmaXZhcn17XGRlZmN2b2ZccHV0d29yZEluc3RhbmNlVmFyaWFibGVvZn0KK1xtYWtlZGVmdW57ZGVmdHlwZWl2YXJ9e1xkZWZ0eXBlY3ZvZlxwdXR3b3JkSW5zdGFuY2VWYXJpYWJsZW9mfQorCislIFxkZWZuYW1lLCB3aGljaCBmb3JtYXRzIHRoZSBuYW1lIG9mIHRoZSBAZGVmIChub3QgdGhlIGFyZ3MpLgorJSAjMSBpcyB0aGUgY2F0ZWdvcnksIHN1Y2ggYXMgIkZ1bmN0aW9uIi4KKyUgIzIgaXMgdGhlIHJldHVybiB0eXBlLCBpZiBhbnkuCislICMzIGlzIHRoZSBmdW5jdGlvbiBuYW1lLgorJQorJSBXZSBhcmUgZm9sbG93ZWQgYnkgKGJ1dCBub3QgcGFzc2VkKSB0aGUgYXJndW1lbnRzLCBpZiBhbnkuCislCitcZGVmXGRlZm5hbWUjMSMyIzN7JQorICAlIEdldCB0aGUgdmFsdWVzIG9mIFxsZWZ0c2tpcCBhbmQgXHJpZ2h0c2tpcCBhcyB0aGV5IHdlcmUgb3V0c2lkZSB0aGUgQGRlZi4uLgorICBcYWR2YW5jZVxsZWZ0c2tpcCBieSAtXGRlZmJvZHlpbmRlbnQKKyAgJQorICAlIEhvdyB3ZSdsbCBmb3JtYXQgdGhlIHR5cGUgbmFtZS4gIFB1dHRpbmcgaXQgaW4gYnJhY2tldHMgaGVscHMKKyAgJSBkaXN0aW5ndWlzaCBpdCBmcm9tIHRoZSBib2R5IHRleHQgdGhhdCBtYXkgZW5kIHVwIG9uIHRoZSBuZXh0IGxpbmUKKyAgJSBqdXN0IGJlbG93IGl0LgorICBcZGVmXHRlbXB7IzF9JQorICBcc2V0Ym94MD1caGJveHtca2VyblxkZWZsYXN0YXJnbWFyZ2luIFxpZnhcdGVtcFxlbXB0eVxlbHNlIFtccm1cdGVtcF1cZml9CisgICUKKyAgJSBGaWd1cmUgb3V0IGxpbmUgc2l6ZXMgZm9yIHRoZSBwYXJhZ3JhcGggc2hhcGUuCisgICUgVGhlIGZpcnN0IGxpbmUgbmVlZHMgc3BhY2UgZm9yIFxib3gwOyBidXQgaWYgXHJpZ2h0c2tpcCBpcyBub256ZXJvLAorICAlIHdlIG5lZWQgb25seSBzcGFjZSBmb3IgdGhlIHBhcnQgb2YgXGJveDAgd2hpY2ggZXhjZWVkcyBpdDoKKyAgXGRpbWVuMD1caHNpemUgIFxhZHZhbmNlXGRpbWVuMCBieSAtXHdkMCAgXGFkdmFuY2VcZGltZW4wIGJ5IFxyaWdodHNraXAKKyAgJSBUaGUgY29udGludWF0aW9uczoKKyAgXGRpbWVuMj1caHNpemUgIFxhZHZhbmNlXGRpbWVuMiBieSAtXGRlZmFyZ3NpbmRlbnQKKyAgJSAocGxhaW4udGV4IHNheXMgdGhhdCBcZGltZW4xIHNob3VsZCBiZSB1c2VkIG9ubHkgYXMgZ2xvYmFsLikKKyAgXHBhcnNoYXBlIDIgMGluIFxkaW1lbjAgXGRlZmFyZ3NpbmRlbnQgXGRpbWVuMgorICAlCisgICUgUHV0IHRoZSB0eXBlIG5hbWUgdG8gdGhlIHJpZ2h0IG1hcmdpbi4KKyAgXG5vaW5kZW50CisgIFxoYm94IHRvIDBwdHslCisgICAgXGhmaWxcYm94MCBca2Vybi1caHNpemUKKyAgICAlIFxoc2l6ZSBoYXMgdG8gYmUgc2hvcnRlbmVkIHRoaXMgd2F5OgorICAgIFxrZXJuXGxlZnRza2lwCisgICAgJSBJbnRlbnRpb25hbGx5IGRvIG5vdCByZXNwZWN0IFxyaWdodHNraXAsIHNpbmNlIHdlIG5lZWQgdGhlIHNwYWNlLgorICB9JQorICAlCisgICUgQWxsb3cgYWxsIGxpbmVzIHRvIGJlIHVuZGVyZnVsbCB3aXRob3V0IGNvbXBsYWludDoKKyAgXHRvbGVyYW5jZT0xMDAwMCBcaGJhZG5lc3M9MTAwMDAKKyAgXGV4ZGVudGFtb3VudD1cZGVmYm9keWluZGVudAorICB7JQorICAgICUgZGVmdW4gZm9udHMuIFdlIHVzZSB0eXBld3JpdGVyIGJ5IGRlZmF1bHQgKHVzZWQgdG8gYmUgYm9sZCkgYmVjYXVzZToKKyAgICAlIC4gd2UncmUgcHJpbnRpbmcgaWRlbnRpZmllcnMsIHRoZXkgc2hvdWxkIGJlIGluIHR0IGluIHByaW5jaXBsZS4KKyAgICAlIC4gaW4gbGFuZ3VhZ2VzIHdpdGggbWFueSBhY2NlbnRzLCBzdWNoIGFzIEN6ZWNoIG9yIEZyZW5jaCwgaXQncworICAgICUgICBjb21tb24gdG8gbGVhdmUgYWNjZW50cyBvZmYgaWRlbnRpZmllcnMuICBUaGUgcmVzdWx0IGxvb2tzIG9rIGluCisgICAgJSAgIHR0LCBidXQgZXhjZWVkaW5nbHkgc3RyYW5nZSBpbiBybS4KKyAgICAlIC4gd2UgZG9uJ3Qgd2FudCAtLSBhbmQgLS0tIHRvIGJlIHRyZWF0ZWQgYXMgbGlnYXR1cmVzLgorICAgICUgLiB0aGlzIHN0aWxsIGRvZXMgbm90IGZpeCB0aGUgP2AgYW5kICFgIGxpZ2F0dXJlcywgYnV0IHNvIGZhciBubworICAgICUgICBvbmUgaGFzIG1hZGUgaWRlbnRpZmllcnMgdXNpbmcgdGhlbSA6KS4KKyAgICBcZGYgXHR0CisgICAgXGRlZlx0ZW1weyMyfSUgcmV0dXJuIHZhbHVlIHR5cGUKKyAgICBcaWZ4XHRlbXBcZW1wdHlcZWxzZSBcdGNsb3Nle1x0ZW1wfSBcZmkKKyAgICAjMyUgb3V0cHV0IGZ1bmN0aW9uIG5hbWUKKyAgfSUKKyAge1xybVxlbnNraXB9JSBoc2tpcCAwLjUgZW0gb2YgXHRlbnJtCisgICUKKyAgXGJvbGRicmF4CisgICUgYXJndW1lbnRzIHdpbGwgYmUgb3V0cHV0IG5leHQsIGlmIGFueS4KK30KKworJSBQcmludCBhcmd1bWVudHMgaW4gc2xhbnRlZCByb21hbiAobm90IHR0c2wpLCBpbmNvbnNpc3RlbnRseSB3aXRoIHVzaW5nCislIHR0IGZvciB0aGUgbmFtZS4gIFRoaXMgaXMgYmVjYXVzZSBsaXRlcmFsIHRleHQgaXMgc29tZXRpbWVzIG5lZWRlZCBpbgorJSB0aGUgYXJndW1lbnQgbGlzdCAoZ3JvZmYgbWFudWFsKSwgYW5kIHR0c2wgYW5kIHR0IGFyZSBub3QgdmVyeQorJSBkaXN0aW5ndWlzaGFibGUuICBQcmV2ZW50IGh5cGhlbmF0aW9uIGF0IGAtJyBjaGFycy4KKyUKK1xkZWZcZGVmdW5hcmdzIzF7JQorICAlIHVzZSBzbCBieSBkZWZhdWx0IChub3QgdHRzbCksCisgICUgdHQgZm9yIHRoZSBuYW1lcy4KKyAgXGRmIFxzbCBcaHlwaGVuY2hhclxmb250PTAKKyAgJQorICAlIE9uIHRoZSBvdGhlciBoYW5kLCBpZiBhbiBhcmd1bWVudCBoYXMgdHdvIGRhc2hlcyAoZm9yIGluc3RhbmNlKSwgd2UKKyAgJSB3YW50IGEgd2F5IHRvIGdldCB0dHNsLiAgTGV0J3MgdHJ5IEB2YXIgZm9yIHRoYXQuCisgIFxsZXRcdmFyPVx0dHNsYW50ZWQKKyAgIzElCisgIFxzbFxoeXBoZW5jaGFyXGZvbnQ9NDUKK30KKworJSBXZSB3YW50ICgpJltdIHRvIHByaW50IHNwZWNpYWxseSBvbiB0aGUgZGVmdW4gbGluZS4KKyUKK1xkZWZcYWN0aXZlcGFyZW5zeyUKKyAgXGNhdGNvZGVgXCg9XGFjdGl2ZSBcY2F0Y29kZWBcKT1cYWN0aXZlCisgIFxjYXRjb2RlYFxbPVxhY3RpdmUgXGNhdGNvZGVgXF09XGFjdGl2ZQorICBcY2F0Y29kZWBcJj1cYWN0aXZlCit9CisKKyUgTWFrZSBjb250cm9sIHNlcXVlbmNlcyB3aGljaCBhY3QgbGlrZSBub3JtYWwgcGFyZW50aGVzaXMgY2hhcnMuCitcbGV0XGxwYXJlbiA9ICggXGxldFxycGFyZW4gPSApCisKKyUgQmUgc3VyZSB0aGF0IHdlIGFsd2F5cyBoYXZlIGEgZGVmaW5pdGlvbiBmb3IgYCgnLCBldGMuICBGb3IgZXhhbXBsZSwKKyUgaWYgdGhlIGZuIG5hbWUgaGFzIHBhcmVucyBpbiBpdCwgXGJvbGRicmF4IHdpbGwgbm90IGJlIGluIGVmZmVjdCB5ZXQsCislIHNvIFRlWCB3b3VsZCBvdGhlcndpc2UgY29tcGxhaW4gYWJvdXQgdW5kZWZpbmVkIGNvbnRyb2wgc2VxdWVuY2UuCit7CisgIFxhY3RpdmVwYXJlbnMKKyAgXGdsb2JhbFxsZXQoPVxscGFyZW4gXGdsb2JhbFxsZXQpPVxycGFyZW4KKyAgXGdsb2JhbFxsZXRbPVxsYnJhY2sgXGdsb2JhbFxsZXRdPVxyYnJhY2sKKyAgXGdsb2JhbFxsZXQmID0gXCYKKworICBcZ2RlZlxib2xkYnJheHtcbGV0KD1cb3BuclxsZXQpPVxjbG5yXGxldFs9XGxicmJcbGV0XT1ccmJyYn0KKyAgXGdkZWZcbWFnaWNhbXB7XGxldCY9XGFtcHJtfQorfQorCitcbmV3Y291bnRccGFyZW5jb3VudAorCislIElmIHdlIGVuY291bnRlciAmZm9vLCB0aGVuIHR1cm4gb24gKCktaGFja2luZyBhZnRlcndhcmRzCitcbmV3aWZcaWZhbXBzZWVuCitcZGVmXGFtcHJtIzEge1xhbXBzZWVudHJ1ZXtcYmZcJiMxIH19CisKK1xkZWZccGFyZW5mb250eyUKKyAgXGlmYW1wc2VlbgorICAgICUgQXQgdGhlIGZpcnN0IGxldmVsLCBwcmludCBwYXJlbnMgaW4gcm9tYW4sCisgICAgJSBvdGhlcndpc2UgdXNlIHRoZSBkZWZhdWx0IGZvbnQuCisgICAgXGlmbnVtIFxwYXJlbmNvdW50PTEgXHJtIFxmaQorICBcZWxzZQorICAgICUgVGhlIFxzZiBwYXJlbnMgKGluIFxib2xkYnJheCkgYWN0dWFsbHkgYXJlIGEgbGl0dGxlIGJvbGRlciB0aGFuCisgICAgJSB0aGUgY29udGFpbmVkIHRleHQuICBUaGlzIGlzIGVzcGVjaWFsbHkgbmVlZGVkIGZvciBbIGFuZCBdIC4KKyAgICBcc2YKKyAgXGZpCit9CitcZGVmXGluZmlyc3RsZXZlbCMxeyUKKyAgXGlmYW1wc2VlbgorICAgIFxpZm51bVxwYXJlbmNvdW50PTEKKyAgICAgICMxJQorICAgIFxmaQorICBcZmkKK30KK1xkZWZcYmZhZnRlcndvcmQjMSB7IzEgXGJmfQorCitcZGVmXG9wbnJ7JQorICBcZ2xvYmFsXGFkdmFuY2VccGFyZW5jb3VudCBieSAxCisgIHtccGFyZW5mb250KH0lCisgIFxpbmZpcnN0bGV2ZWwgXGJmYWZ0ZXJ3b3JkCit9CitcZGVmXGNsbnJ7JQorICB7XHBhcmVuZm9udCl9JQorICBcaW5maXJzdGxldmVsIFxzbAorICBcZ2xvYmFsXGFkdmFuY2VccGFyZW5jb3VudCBieSAtMQorfQorCitcbmV3Y291bnRcYnJhY2tjb3VudAorXGRlZlxsYnJieyUKKyAgXGdsb2JhbFxhZHZhbmNlXGJyYWNrY291bnQgYnkgMQorICB7XGJmW30lCit9CitcZGVmXHJicmJ7JQorICB7XGJmXX0lCisgIFxnbG9iYWxcYWR2YW5jZVxicmFja2NvdW50IGJ5IC0xCit9CisKK1xkZWZcY2hlY2twYXJlbmNvdW50c3slCisgIFxpZm51bVxwYXJlbmNvdW50PTAgXGVsc2UgXGJhZHBhcmVuY291bnQgXGZpCisgIFxpZm51bVxicmFja2NvdW50PTAgXGVsc2UgXGJhZGJyYWNrY291bnQgXGZpCit9CitcZGVmXGJhZHBhcmVuY291bnR7JQorICBcZXJybWVzc2FnZXtVbmJhbGFuY2VkIHBhcmVudGhlc2VzIGluIEBkZWZ9JQorICBcZ2xvYmFsXHBhcmVuY291bnQ9MAorfQorXGRlZlxiYWRicmFja2NvdW50eyUKKyAgXGVycm1lc3NhZ2V7VW5iYWxhbmNlZCBzcXVhcmUgYnJhY2VzIGluIEBkZWZ9JQorICBcZ2xvYmFsXGJyYWNrY291bnQ9MAorfQorCisKK1xtZXNzYWdle21hY3Jvcyx9CislIEBtYWNyby4KKworJSBUbyBkbyB0aGlzIHJpZ2h0IHdlIG5lZWQgYSBmZWF0dXJlIG9mIGUtVGVYLCBcc2NhbnRva2VucywKKyUgd2hpY2ggd2UgYXJyYW5nZSB0byBlbXVsYXRlIHdpdGggYSB0ZW1wb3JhcnkgZmlsZSBpbiBvcmRpbmFyeSBUZVguCitcaWZ4XGVUZVh2ZXJzaW9uXHVuZGVmaW5lZAorICBcbmV3d3JpdGVcbWFjc2NyaWJibGUKKyAgXGRlZlxzY2FudG9rZW5zIzF7JQorICAgIFx0b2tzMD17IzF9JQorICAgIFxpbW1lZGlhdGVcb3Blbm91dFxtYWNzY3JpYmJsZT1cam9ibmFtZS50bXAKKyAgICBcaW1tZWRpYXRlXHdyaXRlXG1hY3NjcmliYmxle1x0aGVcdG9rczB9JQorICAgIFxpbW1lZGlhdGVcY2xvc2VvdXRcbWFjc2NyaWJibGUKKyAgICBcaW5wdXQgXGpvYm5hbWUudG1wCisgIH0KK1xmaQorCitcZGVmXHNjYW5tYWNybyMxeyUKKyAgXGJlZ2luZ3JvdXAKKyAgICBcbmV3bGluZWNoYXJgXF5eTQorICAgIFxsZXRceGVhdHNwYWNlc1xlYXRzcGFjZXMKKyAgICAlIFVuZG8gY2F0Y29kZSBjaGFuZ2VzIG9mIFxzdGFydGNvbnRlbnRzIGFuZCBcZG9wcmludGluZGV4CisgICAgJSBXaGVuIGNhbGxlZCBmcm9tIEBpbnNlcnRjb3B5aW5nIG9yIChzaG9ydCljYXB0aW9uLCB3ZSBuZWVkIGFjdGl2ZQorICAgICUgYmFja3NsYXNoIHRvIGdldCBpdCBwcmludGVkIGNvcnJlY3RseS4gIFByZXZpb3VzbHksIHdlIGhhZAorICAgICUgXGNhdGNvZGVgXFw9XG90aGVyIGluc3RlYWQuICBXZSdsbCBzZWUgd2hldGhlciBhIHByb2JsZW0gYXBwZWFycworICAgICUgd2l0aCBtYWNybyBleHBhbnNpb24uCQkJCS0ta2FzYWwsIDE5YXVnMDQKKyAgICBcY2F0Y29kZWBcQD0wIFxjYXRjb2RlYFxcPVxhY3RpdmUgXGVzY2FwZWNoYXI9YFxACisgICAgJSAuLi4gYW5kIFxleGFtcGxlCisgICAgXHNwYWNlaXNzcGFjZQorICAgICUKKyAgICAlIEFwcGVuZCBcZW5kaW5wdXQgdG8gbWFrZSBzdXJlIHRoYXQgVGVYIGRvZXMgbm90IHNlZSB0aGUgZW5kaW5nIG5ld2xpbmUuCisgICAgJQorICAgICUgSSd2ZSB2ZXJpZmllZCB0aGF0IGl0IGlzIG5lY2Vzc2FyeSBib3RoIGZvciBlLVRlWCBhbmQgZm9yIG9yZGluYXJ5IFRlWAorICAgICUJCQkJCQkJLS1rYXNhbCwgMjlub3YwMworICAgIFxzY2FudG9rZW5zeyMxXGVuZGlucHV0fSUKKyAgXGVuZGdyb3VwCit9CisKK1xkZWZcc2NhbmV4cCMxeyUKKyAgXGVkZWZcdGVtcHtcbm9leHBhbmRcc2Nhbm1hY3JveyMxfX0lCisgIFx0ZW1wCit9CisKK1xuZXdjb3VudFxwYXJhbW5vICAgJSBDb3VudCBvZiBwYXJhbWV0ZXJzCitcbmV3dG9rc1xtYWNuYW1lICAgICUgTWFjcm8gbmFtZQorXG5ld2lmXGlmcmVjdXJzaXZlICAlIElzIGl0IHJlY3Vyc2l2ZT8KKworJSBMaXN0IG9mIGFsbCBkZWZpbmVkIG1hY3JvcyBpbiB0aGUgZm9ybQorJSAgICBcZGVmaW5lZHVtbXl3b3JkXG1hY3JvMVxkZWZpbmVkdW1teXdvcmRcbWFjcm8yLi4uCislIEN1cnJlbnRseSBpcyBhbHNvIGNvbnRhaW5zIGFsbCBAYWxpYXNlczsgdGhlIGxpc3QgY2FuIGJlIHNwbGl0CislIGlmIHRoZXJlIGlzIGEgbmVlZC4KK1xkZWZcbWFjcm9saXN0e30KKworJSBBZGQgdGhlIG1hY3JvIHRvIFxtYWNyb2xpc3QKK1xkZWZcYWRkdG9tYWNyb2xpc3QjMXtcZXhwYW5kYWZ0ZXIgXGFkZHRvbWFjcm9saXN0eHh4IFxjc25hbWUjMVxlbmRjc25hbWV9CitcZGVmXGFkZHRvbWFjcm9saXN0eHh4IzF7JQorICAgICBcdG9rczAgPSBcZXhwYW5kYWZ0ZXJ7XG1hY3JvbGlzdFxkZWZpbmVkdW1teXdvcmQjMX0lCisgICAgIFx4ZGVmXG1hY3JvbGlzdHtcdGhlXHRva3MwfSUKK30KKworJSBVdGlsaXR5IHJvdXRpbmVzLgorJSBUaGlzIGRvZXMgXGxldCAjMSA9ICMyLCB3aXRoIFxjc25hbWVzOyB0aGF0IGlzLAorJSAgIFxsZXQgXGNzbmFtZSMxXGVuZGNzbmFtZSA9IFxjc25hbWUjMlxlbmRjc25hbWUKKyUgKGV4Y2VwdCBvZiBjb3Vyc2Ugd2UgaGF2ZSB0byBwbGF5IGV4cGFuc2lvbiBnYW1lcykuCislIAorXGRlZlxjc2xldCMxIzJ7JQorICBcZXhwYW5kYWZ0ZXJcbGV0CisgIFxjc25hbWUjMVxleHBhbmRhZnRlclxlbmRjc25hbWUKKyAgXGNzbmFtZSMyXGVuZGNzbmFtZQorfQorCislIFRyaW0gbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzIG9mZiBhIHN0cmluZy4KKyUgQ29uY2VwdHMgZnJvbSBhcm8tYmVuZCBwcm9ibGVtIDE1IChzZWUgQ1RBTikuCit7XGNhdGNvZGVgXEA9MTEKK1xnZGVmXGVhdHNwYWNlcyAjMXtcZXhwYW5kYWZ0ZXJcdHJpbUBcZXhwYW5kYWZ0ZXJ7IzEgfX0KK1xnZGVmXHRyaW1AICMxe1x0cmltQEAgQCMxIEAgIzEgQCBAQH0KK1xnZGVmXHRyaW1AQCAjMUAgIzJAICMzQEB7XHRyaW1AQEBcZW1wdHkgIzIgQH0KK1xkZWZcdW5icmFjZSMxeyMxfQorXHVuYnJhY2V7XGdkZWZcdHJpbUBAQCAjMSB9ICMyQHsjMX0KK30KKworJSBUcmltIGEgc2luZ2xlIHRyYWlsaW5nIF5eTSBvZmYgYSBzdHJpbmcuCit7XGNhdGNvZGVgXF5eTT1cb3RoZXIgXGNhdGNvZGVgXFE9MyUKK1xnZGVmXGVhdGNyICMxe1xlYXRjcmEgIzFRXl5NUX0lCitcZ2RlZlxlYXRjcmEjMV5eTVF7XGVhdGNyYiMxUX0lCitcZ2RlZlxlYXRjcmIjMVEjMlF7IzF9JQorfQorCislIE1hY3JvIGJvZGllcyBhcmUgYWJzb3JiZWQgYXMgYW4gYXJndW1lbnQgaW4gYSBjb250ZXh0IHdoZXJlCislIGFsbCBjaGFyYWN0ZXJzIGFyZSBjYXRjb2RlIDEwLCAxMSBvciAxMiwgZXhjZXB0IFwgd2hpY2ggaXMgYWN0aXZlCislIChhcyBpbiBub3JtYWwgdGV4aW5mbykuIEl0IGlzIG5lY2Vzc2FyeSB0byBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgXC4KKworJSBJdCdzIG5lY2Vzc2FyeSB0byBoYXZlIGhhcmQgQ1JzIHdoZW4gdGhlIG1hY3JvIGlzIGV4ZWN1dGVkLiBUaGlzIGlzCislIGRvbmUgYnkgIG1ha2luZyBeXk0gKFxlbmRsaW5lY2hhcikgY2F0Y29kZSAxMiB3aGVuIHJlYWRpbmcgdGhlIG1hY3JvCislIGJvZHksIGFuZCB0aGVuIG1ha2luZyBpdCB0aGUgXG5ld2xpbmVjaGFyIGluIFxzY2FubWFjcm8uCisKK1xkZWZcc2NhbmN0eHR7JQorICBcY2F0Y29kZWBcIj1cb3RoZXIKKyAgXGNhdGNvZGVgXCs9XG90aGVyCisgIFxjYXRjb2RlYFw8PVxvdGhlcgorICBcY2F0Y29kZWBcPj1cb3RoZXIKKyAgXGNhdGNvZGVgXEA9XG90aGVyCisgIFxjYXRjb2RlYFxePVxvdGhlcgorICBcY2F0Y29kZWBcXz1cb3RoZXIKKyAgXGNhdGNvZGVgXHw9XG90aGVyCisgIFxjYXRjb2RlYFx+PVxvdGhlcgorfQorCitcZGVmXHNjYW5hcmdjdHh0eyUKKyAgXHNjYW5jdHh0CisgIFxjYXRjb2RlYFxcPVxvdGhlcgorICBcY2F0Y29kZWBcXl5NPVxvdGhlcgorfQorCitcZGVmXG1hY3JvYm9keWN0eHR7JQorICBcc2NhbmN0eHQKKyAgXGNhdGNvZGVgXHs9XG90aGVyCisgIFxjYXRjb2RlYFx9PVxvdGhlcgorICBcY2F0Y29kZWBcXl5NPVxvdGhlcgorICBcdXNlbWJvZHliYWNrc2xhc2gKK30KKworXGRlZlxtYWNyb2FyZ2N0eHR7JQorICBcc2NhbmN0eHQKKyAgXGNhdGNvZGVgXFw9XG90aGVyCit9CisKKyUgXG1ib2R5YmFja3NsYXNoIGlzIHRoZSBkZWZpbml0aW9uIG9mIFwgaW4gQG1hY3JvIGJvZGllcy4KKyUgSXQgbWFwcyBcZm9vXCA9PiBcY3NuYW1lIG1hY2FyZy5mb29cZW5kY3NuYW1lID0+ICNOCislIHdoZXJlIE4gaXMgdGhlIG1hY3JvIHBhcmFtZXRlciBudW1iZXIuCislIFdlIGRlZmluZSBcY3NuYW1lIG1hY2FyZy5cZW5kY3NuYW1lIHRvIGJlIFxyZWFsYmFja3NsYXNoLCBzbworJSBcXCBpbiBtYWNybyByZXBsYWNlbWVudCB0ZXh0IGdldHMgeW91IGEgYmFja3NsYXNoLgorCit7XGNhdGNvZGVgQD0wIEBjYXRjb2RlYEBcPUBhY3RpdmUKKyBAZ2RlZkB1c2VtYm9keWJhY2tzbGFzaHtAbGV0XD1AbWJvZHliYWNrc2xhc2h9CisgQGdkZWZAbWJvZHliYWNrc2xhc2gjMVx7QGNzbmFtZSBtYWNhcmcuIzFAZW5kY3NuYW1lfQorfQorXGV4cGFuZGFmdGVyXGRlZlxjc25hbWUgbWFjYXJnLlxlbmRjc25hbWV7XHJlYWxiYWNrc2xhc2h9CisKK1xkZWZcbWFjcm97XHJlY3Vyc2l2ZWZhbHNlXHBhcnNlYXJnXG1hY3JveHh4fQorXGRlZlxybWFjcm97XHJlY3Vyc2l2ZXRydWVccGFyc2VhcmdcbWFjcm94eHh9CisKK1xkZWZcbWFjcm94eHgjMXslCisgIFxnZXRhcmdzeyMxfSUgICAgICAgICAgIG5vdyBcbWFjbmFtZSBpcyB0aGUgbWFjbmFtZSBhbmQgXGFyZ2wgdGhlIGFyZ2xpc3QKKyAgXGlmeFxhcmdsXGVtcHR5ICAgICAgICUgbm8gYXJndW1lbnRzCisgICAgIFxwYXJhbW5vPTAlCisgIFxlbHNlCisgICAgIFxleHBhbmRhZnRlclxwYXJzZW1hcmdkZWYgXGFyZ2w7JQorICBcZmkKKyAgXGlmMVxjc25hbWUgaXNtYWNyby5cdGhlXG1hY25hbWVcZW5kY3NuYW1lCisgICAgIFxtZXNzYWdle1dhcm5pbmc6IHJlZGVmaW5pbmcgXHRoZVxtYWNuYW1lfSUKKyAgXGVsc2UKKyAgICAgXGV4cGFuZGFmdGVyXGlmeFxjc25hbWUgXHRoZVxtYWNuYW1lXGVuZGNzbmFtZSBccmVsYXgKKyAgICAgXGVsc2UgXGVycm1lc3NhZ2V7TWFjcm8gbmFtZSBcdGhlXG1hY25hbWVcc3BhY2UgYWxyZWFkeSBkZWZpbmVkfVxmaQorICAgICBcZ2xvYmFsXGNzbGV0e21hY3NhdmUuXHRoZVxtYWNuYW1lfXtcdGhlXG1hY25hbWV9JQorICAgICBcZ2xvYmFsXGV4cGFuZGFmdGVyXGxldFxjc25hbWUgaXNtYWNyby5cdGhlXG1hY25hbWVcZW5kY3NuYW1lPTElCisgICAgIFxhZGR0b21hY3JvbGlzdHtcdGhlXG1hY25hbWV9JQorICBcZmkKKyAgXGJlZ2luZ3JvdXAgXG1hY3JvYm9keWN0eHQKKyAgXGlmcmVjdXJzaXZlIFxleHBhbmRhZnRlclxwYXJzZXJtYWNib2R5CisgIFxlbHNlIFxleHBhbmRhZnRlclxwYXJzZW1hY2JvZHkKKyAgXGZpfQorCitccGFyc2VhcmdkZWZcdW5tYWNyb3slCisgIFxpZjFcY3NuYW1lIGlzbWFjcm8uIzFcZW5kY3NuYW1lCisgICAgXGdsb2JhbFxjc2xldHsjMX17bWFjc2F2ZS4jMX0lCisgICAgXGdsb2JhbFxleHBhbmRhZnRlclxsZXQgXGNzbmFtZSBpc21hY3JvLiMxXGVuZGNzbmFtZT0wJQorICAgICUgUmVtb3ZlIHRoZSBtYWNybyBuYW1lIGZyb20gXG1hY3JvbGlzdDoKKyAgICBcYmVnaW5ncm91cAorICAgICAgXGV4cGFuZGFmdGVyXGxldFxjc25hbWUjMVxlbmRjc25hbWUgXHJlbGF4CisgICAgICBcbGV0XGRlZmluZWR1bW15d29yZFx1bm1hY3JvZG8KKyAgICAgIFx4ZGVmXG1hY3JvbGlzdHtcbWFjcm9saXN0fSUKKyAgICBcZW5kZ3JvdXAKKyAgXGVsc2UKKyAgICBcZXJybWVzc2FnZXtNYWNybyAjMSBub3QgZGVmaW5lZH0lCisgIFxmaQorfQorCislIENhbGxlZCBieSBcZG8gZnJvbSBcZG91bm1hY3JvIG9uIGVhY2ggbWFjcm8uICBUaGUgaWRlYSBpcyB0byBvbWl0IGFueQorJSBtYWNybyBkZWZpbml0aW9ucyB0aGF0IGhhdmUgYmVlbiBjaGFuZ2VkIHRvIFxyZWxheC4KKyUKK1xkZWZcdW5tYWNyb2RvIzF7JQorICBcaWZ4ICMxXHJlbGF4CisgICAgJSByZW1vdmUgdGhpcworICBcZWxzZQorICAgIFxub2V4cGFuZFxkZWZpbmVkdW1teXdvcmQgXG5vZXhwYW5kIzElCisgIFxmaQorfQorCislIFRoaXMgbWFrZXMgdXNlIG9mIHRoZSBvYnNjdXJlIGZlYXR1cmUgdGhhdCBpZiB0aGUgbGFzdCB0b2tlbiBvZiBhCislIDxwYXJhbWV0ZXIgbGlzdD4gaXMgIywgdGhlbiB0aGUgcHJlY2VkaW5nIGFyZ3VtZW50IGlzIGRlbGltaXRlZCBieQorJSBhbiBvcGVuaW5nIGJyYWNlLCBhbmQgdGhhdCBvcGVuaW5nIGJyYWNlIGlzIG5vdCBjb25zdW1lZC4KK1xkZWZcZ2V0YXJncyMxe1xnZXRhcmdzeHh4IzF7fX0KK1xkZWZcZ2V0YXJnc3h4eCMxI3tcZ2V0bWFjbmFtZSAjMSBccmVsYXhcZ2V0bWFjYXJnc30KK1xkZWZcZ2V0bWFjbmFtZSAjMSAjMlxyZWxheHtcbWFjbmFtZT17IzF9fQorXGRlZlxnZXRtYWNhcmdzIzF7XGRlZlxhcmdseyMxfX0KKworJSBQYXJzZSB0aGUgb3B0aW9uYWwge3BhcmFtc30gbGlzdC4gIFNldCB1cCBccGFyYW1ubyBhbmQgXHBhcmFtbGlzdAorJSBzbyBcZGVmbWFjcm8ga25vd3Mgd2hhdCB0byBkby4gIERlZmluZSBcbWFjYXJnLmJsYWggZm9yIGVhY2ggYmxhaAorJSBpbiB0aGUgcGFyYW1zIGxpc3QsIHRvIGJlICMjTiB3aGVyZSBOIGlzIHRoZSBwb3NpdGlvbiBpbiB0aGF0IGxpc3QuCislIFRoYXQgZ2V0cyB1c2VkIGJ5IFxtYm9keWJhY2tzbGFzaCAoYWJvdmUpLgorCislIFdlIG5lZWQgdG8gZ2V0IGBtYWNybyBwYXJhbWV0ZXIgY2hhciAjJyBpbnRvIHNldmVyYWwgZGVmaW5pdGlvbnMuCislIFRoZSB0ZWNobmlxdWUgdXNlZCBpcyBzdG9sZW4gZnJvbSBMYVRlWDogIGxldCBcaGFzaCBiZSBzb21ldGhpbmcKKyUgdW5leHBhbmRhYmxlLCBpbnNlcnQgdGhhdCB3aGVyZXZlciB5b3UgbmVlZCBhICMsIGFuZCB0aGVuIHJlZGVmaW5lCislIGl0IHRvICMganVzdCBiZWZvcmUgdXNpbmcgdGhlIHRva2VuIGxpc3QgcHJvZHVjZWQuCislCislIFRoZSBzYW1lIHRlY2huaXF1ZSBpcyB1c2VkIHRvIHByb3RlY3QgXGVhdHNwYWNlcyB0aWxsIGp1c3QgYmVmb3JlCislIHRoZSBtYWNybyBpcyB1c2VkLgorCitcZGVmXHBhcnNlbWFyZ2RlZiMxO3tccGFyYW1ubz0wXGRlZlxwYXJhbWxpc3R7fSUKKyAgICAgICAgXGxldFxoYXNoXHJlbGF4XGxldFx4ZWF0c3BhY2VzXHJlbGF4XHBhcnNlbWFyZ2RlZnh4eCMxLDssfQorXGRlZlxwYXJzZW1hcmdkZWZ4eHgjMSx7JQorICBcaWYjMTtcbGV0XG5leHQ9XHJlbGF4CisgIFxlbHNlIFxsZXRcbmV4dD1ccGFyc2VtYXJnZGVmeHh4CisgICAgXGFkdmFuY2VccGFyYW1ubyBieSAxJQorICAgIFxleHBhbmRhZnRlclxlZGVmXGNzbmFtZSBtYWNhcmcuXGVhdHNwYWNlc3sjMX1cZW5kY3NuYW1lCisgICAgICAgIHtceGVhdHNwYWNlc3tcaGFzaFx0aGVccGFyYW1ub319JQorICAgIFxlZGVmXHBhcmFtbGlzdHtccGFyYW1saXN0XGhhc2hcdGhlXHBhcmFtbm8sfSUKKyAgXGZpXG5leHR9CisKKyUgVGhlc2UgdHdvIGNvbW1hbmRzIHJlYWQgcmVjdXJzaXZlIGFuZCBub25yZWN1cnNpdmUgbWFjcm8gYm9kaWVzLgorJSAoVGhleSdyZSBkaWZmZXJlbnQgc2luY2UgcmVjIGFuZCBub25yZWMgbWFjcm9zIGVuZCBkaWZmZXJlbnRseS4pCisKK1xsb25nXGRlZlxwYXJzZW1hY2JvZHkjMUBlbmQgbWFjcm8lCit7XHhkZWZcdGVtcHtcZWF0Y3J7IzF9fVxlbmRncm91cFxkZWZtYWNyb30lCitcbG9uZ1xkZWZccGFyc2VybWFjYm9keSMxQGVuZCBybWFjcm8lCit7XHhkZWZcdGVtcHtcZWF0Y3J7IzF9fVxlbmRncm91cFxkZWZtYWNyb30lCisKKyUgVGhpcyBkZWZpbmVzIHRoZSBtYWNybyBpdHNlbGYuIFRoZXJlIGFyZSBzaXggY2FzZXM6IHJlY3Vyc2l2ZSBhbmQKKyUgbm9ucmVjdXJzaXZlIG1hY3JvcyBvZiB6ZXJvLCBvbmUsIGFuZCBtYW55IGFyZ3VtZW50cy4KKyUgTXVjaCBtYWdpYyB3aXRoIFxleHBhbmRhZnRlciBoZXJlLgorJSBceGRlZiBpcyB1c2VkIHNvIHRoYXQgbWFjcm8gZGVmaW5pdGlvbnMgd2lsbCBzdXJ2aXZlIHRoZSBmaWxlCislIHRoZXkncmUgZGVmaW5lZCBpbjsgQGluY2x1ZGUgcmVhZHMgdGhlIGZpbGUgaW5zaWRlIGEgZ3JvdXAuCitcZGVmXGRlZm1hY3JveyUKKyAgXGxldFxoYXNoPSMjJSBjb252ZXJ0IHBsYWNlaG9sZGVycyB0byBtYWNybyBwYXJhbWV0ZXIgY2hhcnMKKyAgXGlmcmVjdXJzaXZlCisgICAgXGlmY2FzZVxwYXJhbW5vCisgICAgJSAwCisgICAgICBcZXhwYW5kYWZ0ZXJceGRlZlxjc25hbWVcdGhlXG1hY25hbWVcZW5kY3NuYW1leyUKKyAgICAgICAgXG5vZXhwYW5kXHNjYW5tYWNyb3tcdGVtcH19JQorICAgIFxvciAlIDEKKyAgICAgIFxleHBhbmRhZnRlclx4ZGVmXGNzbmFtZVx0aGVcbWFjbmFtZVxlbmRjc25hbWV7JQorICAgICAgICAgXGJncm91cFxub2V4cGFuZFxtYWNyb2FyZ2N0eHQKKyAgICAgICAgIFxub2V4cGFuZFxicmFjZW9ybGluZQorICAgICAgICAgXGV4cGFuZGFmdGVyXG5vZXhwYW5kXGNzbmFtZVx0aGVcbWFjbmFtZSB4eHhcZW5kY3NuYW1lfSUKKyAgICAgIFxleHBhbmRhZnRlclx4ZGVmXGNzbmFtZVx0aGVcbWFjbmFtZSB4eHhcZW5kY3NuYW1lIyMxeyUKKyAgICAgICAgIFxlZ3JvdXBcbm9leHBhbmRcc2Nhbm1hY3Jve1x0ZW1wfX0lCisgICAgXGVsc2UgJSBtYW55CisgICAgICBcZXhwYW5kYWZ0ZXJceGRlZlxjc25hbWVcdGhlXG1hY25hbWVcZW5kY3NuYW1leyUKKyAgICAgICAgIFxiZ3JvdXBcbm9leHBhbmRcbWFjcm9hcmdjdHh0CisgICAgICAgICBcbm9leHBhbmRcY3NuYW1lXHRoZVxtYWNuYW1lIHh4XGVuZGNzbmFtZX0lCisgICAgICBcZXhwYW5kYWZ0ZXJceGRlZlxjc25hbWVcdGhlXG1hY25hbWUgeHhcZW5kY3NuYW1lIyMxeyUKKyAgICAgICAgICBcZXhwYW5kYWZ0ZXJcbm9leHBhbmRcY3NuYW1lXHRoZVxtYWNuYW1lIHh4eFxlbmRjc25hbWUgIyMxLH0lCisgICAgICBcZXhwYW5kYWZ0ZXJcZXhwYW5kYWZ0ZXIKKyAgICAgIFxleHBhbmRhZnRlclx4ZGVmCisgICAgICBcZXhwYW5kYWZ0ZXJcZXhwYW5kYWZ0ZXIKKyAgICAgICAgXGNzbmFtZVx0aGVcbWFjbmFtZSB4eHhcZW5kY3NuYW1lCisgICAgICAgICAgXHBhcmFtbGlzdHtcZWdyb3VwXG5vZXhwYW5kXHNjYW5tYWNyb3tcdGVtcH19JQorICAgIFxmaQorICBcZWxzZQorICAgIFxpZmNhc2VccGFyYW1ubworICAgICUgMAorICAgICAgXGV4cGFuZGFmdGVyXHhkZWZcY3NuYW1lXHRoZVxtYWNuYW1lXGVuZGNzbmFtZXslCisgICAgICAgIFxub2V4cGFuZFxub3JlY3Vyc2V7XHRoZVxtYWNuYW1lfSUKKyAgICAgICAgXG5vZXhwYW5kXHNjYW5tYWNyb3tcdGVtcH1cZWdyb3VwfSUKKyAgICBcb3IgJSAxCisgICAgICBcZXhwYW5kYWZ0ZXJceGRlZlxjc25hbWVcdGhlXG1hY25hbWVcZW5kY3NuYW1leyUKKyAgICAgICAgIFxiZ3JvdXBcbm9leHBhbmRcbWFjcm9hcmdjdHh0CisgICAgICAgICBcbm9leHBhbmRcYnJhY2VvcmxpbmUKKyAgICAgICAgIFxleHBhbmRhZnRlclxub2V4cGFuZFxjc25hbWVcdGhlXG1hY25hbWUgeHh4XGVuZGNzbmFtZX0lCisgICAgICBcZXhwYW5kYWZ0ZXJceGRlZlxjc25hbWVcdGhlXG1hY25hbWUgeHh4XGVuZGNzbmFtZSMjMXslCisgICAgICAgIFxlZ3JvdXAKKyAgICAgICAgXG5vZXhwYW5kXG5vcmVjdXJzZXtcdGhlXG1hY25hbWV9JQorICAgICAgICBcbm9leHBhbmRcc2Nhbm1hY3Jve1x0ZW1wfVxlZ3JvdXB9JQorICAgIFxlbHNlICUgbWFueQorICAgICAgXGV4cGFuZGFmdGVyXHhkZWZcY3NuYW1lXHRoZVxtYWNuYW1lXGVuZGNzbmFtZXslCisgICAgICAgICBcYmdyb3VwXG5vZXhwYW5kXG1hY3JvYXJnY3R4dAorICAgICAgICAgXGV4cGFuZGFmdGVyXG5vZXhwYW5kXGNzbmFtZVx0aGVcbWFjbmFtZSB4eFxlbmRjc25hbWV9JQorICAgICAgXGV4cGFuZGFmdGVyXHhkZWZcY3NuYW1lXHRoZVxtYWNuYW1lIHh4XGVuZGNzbmFtZSMjMXslCisgICAgICAgICAgXGV4cGFuZGFmdGVyXG5vZXhwYW5kXGNzbmFtZVx0aGVcbWFjbmFtZSB4eHhcZW5kY3NuYW1lICMjMSx9JQorICAgICAgXGV4cGFuZGFmdGVyXGV4cGFuZGFmdGVyCisgICAgICBcZXhwYW5kYWZ0ZXJceGRlZgorICAgICAgXGV4cGFuZGFmdGVyXGV4cGFuZGFmdGVyCisgICAgICBcY3NuYW1lXHRoZVxtYWNuYW1lIHh4eFxlbmRjc25hbWUKKyAgICAgIFxwYXJhbWxpc3R7JQorICAgICAgICAgIFxlZ3JvdXAKKyAgICAgICAgICBcbm9leHBhbmRcbm9yZWN1cnNle1x0aGVcbWFjbmFtZX0lCisgICAgICAgICAgXG5vZXhwYW5kXHNjYW5tYWNyb3tcdGVtcH1cZWdyb3VwfSUKKyAgICBcZmkKKyAgXGZpfQorCitcZGVmXG5vcmVjdXJzZSMxe1xiZ3JvdXBcY3NsZXR7IzF9e21hY3NhdmUuIzF9fQorCislIFxicmFjZW9ybGluZSBkZWNpZGVzIHdoZXRoZXIgdGhlIG5leHQgbm9ud2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgYQorJSB7LiAgSWYgc28gaXQgcmVhZHMgdXAgdG8gdGhlIGNsb3NpbmcgfSwgaWYgbm90LCBpdCByZWFkcyB0aGUgd2hvbGUKKyUgbGluZS4gIFdoYXRldmVyIHdhcyByZWFkIGlzIHRoZW4gZmVkIHRvIHRoZSBuZXh0IGNvbnRyb2wgc2VxdWVuY2UKKyUgYXMgYW4gYXJndW1lbnQgKGJ5IFxwYXJzZWJyYWNlIG9yIFxwYXJzZWFyZykKK1xkZWZcYnJhY2VvcmxpbmUjMXtcbGV0XG5leHQ9IzFcZnV0dXJlbGV0XG5jaGFyXGJyYWNlb3JsaW5leHh4fQorXGRlZlxicmFjZW9ybGluZXh4eHslCisgIFxpZnhcbmNoYXJcYmdyb3VwXGVsc2UKKyAgICBcZXhwYW5kYWZ0ZXJccGFyc2VhcmcKKyAgXGZpIFxuZXh0fQorCisKKyUgQGFsaWFzLgorJSBXZSBuZWVkIHNvbWUgdHJpY2tlcnkgdG8gcmVtb3ZlIHRoZSBvcHRpb25hbCBzcGFjZXMgYXJvdW5kIHRoZSBlcXVhbAorJSBzaWduLiAgSnVzdCBtYWtlIHRoZW0gYWN0aXZlIGFuZCB0aGVuIGV4cGFuZCB0aGVtIGFsbCB0byBub3RoaW5nLgorXGRlZlxhbGlhc3tccGFyc2Vhcmd1c2luZ1xvYmV5c3BhY2VzXGFsaWFzeHh4fQorXGRlZlxhbGlhc3h4eCAjMXtcYWxpYXN5eXkjMVxyZWxheH0KK1xkZWZcYWxpYXN5eXkgIzE9IzJccmVsYXh7JQorICB7JQorICAgIFxleHBhbmRhZnRlclxsZXRcb2JleWVkc3BhY2U9XGVtcHR5CisgICAgXGFkZHRvbWFjcm9saXN0eyMxfSUKKyAgICBceGRlZlxuZXh0e1xnbG9iYWxcbGV0XG1ha2Vjc25hbWV7IzF9PVxtYWtlY3NuYW1leyMyfX0lCisgIH0lCisgIFxuZXh0Cit9CisKKworXG1lc3NhZ2V7Y3Jvc3MgcmVmZXJlbmNlcyx9CisKK1xuZXd3cml0ZVxhdXhmaWxlCisKK1xuZXdpZlxpZmhhdmV4cmVmcyAgICAlIFRydWUgaWYgeHJlZiB2YWx1ZXMgYXJlIGtub3duLgorXG5ld2lmXGlmd2FybmVkeHJlZnMgICUgVHJ1ZSBpZiB3ZSB3YXJuZWQgb25jZSB0aGF0IHRoZXkgYXJlbid0IGtub3duLgorCislIEBpbmZvcmVmIGlzIHJlbGF0aXZlbHkgc2ltcGxlLgorXGRlZlxpbmZvcmVmICMxe1xpbmZvcmVmenp6ICMxLCwsLCoqfQorXGRlZlxpbmZvcmVmenp6ICMxLCMyLCMzLCM0Kip7XHB1dHdvcmRTZWV7fSBccHV0d29yZEluZm97fSBccHV0d29yZGZpbGV7fSBcZmlsZXtcaWdub3Jlc3BhY2VzICMze319LAorICBub2RlIFxzYW1we1xpZ25vcmVzcGFjZXMjMXt9fX0KKworJSBAbm9kZSdzIG9ubHkgam9iIGluIFRlWCBpcyB0byBkZWZpbmUgXGxhc3Rub2RlLCB3aGljaCBpcyB1c2VkIGluCislIGNyb3NzLXJlZmVyZW5jZXMuICBUaGUgQG5vZGUgbGluZSBtaWdodCBvciBtaWdodCBub3QgaGF2ZSBjb21tYXMsIGFuZAorJSBtaWdodCBvciBtaWdodCBub3QgaGF2ZSBzcGFjZXMgYmVmb3JlIHRoZSBmaXJzdCBjb21tYSwgbGlrZToKKyUgQG5vZGUgZm9vICwgYmFyICwgLi4uCislIFdlIGRvbid0IHdhbnQgc3VjaCB0cmFpbGluZyBzcGFjZXMgaW4gdGhlIG5vZGUgbmFtZS4KKyUKK1xwYXJzZWFyZ2RlZlxub2Rle1xjaGVja2Vudnt9XGRvbm9kZSAjMSAsXGZpbmlzaG5vZGVwYXJzZX0KKyUKKyUgYWxzbyByZW1vdmUgYSB0cmFpbGluZyBjb21tYSwgaW4gY2FzZSBvZiBzb21ldGhpbmcgbGlrZSB0aGlzOgorJSBAbm9kZSBIZWxwLUNyb3NzLCAgLCAgLCBDcm9zcy1yZWZzCitcZGVmXGRvbm9kZSMxICwjMlxmaW5pc2hub2RlcGFyc2V7XGRvZG9ub2RlICMxLFxmaW5pc2hub2RlcGFyc2V9CitcZGVmXGRvZG9ub2RlIzEsIzJcZmluaXNobm9kZXBhcnNle1xnZGVmXGxhc3Rub2RleyMxfX0KKworXGxldFxud25vZGU9XG5vZGUKK1xsZXRcbGFzdG5vZGU9XGVtcHR5CisKKyUgV3JpdGUgYSBjcm9zcy1yZWZlcmVuY2UgZGVmaW5pdGlvbiBmb3IgdGhlIGN1cnJlbnQgbm9kZS4gICMxIGlzIHRoZQorJSB0eXBlIChZbnVtYmVyZWQsIFlhcHBlbmRpeCwgWW5vdGhpbmcpLgorJQorXGRlZlxkb25vZGVyZWYjMXslCisgIFxpZnhcbGFzdG5vZGVcZW1wdHlcZWxzZQorICAgIFxzZXRyZWZ7XGxhc3Rub2RlfXsjMX0lCisgICAgXGdsb2JhbFxsZXRcbGFzdG5vZGU9XGVtcHR5CisgIFxmaQorfQorCislIEBhbmNob3J7TkFNRX0gLS0gZGVmaW5lIHhyZWYgdGFyZ2V0IGF0IGFyYml0cmFyeSBwb2ludC4KKyUKK1xuZXdjb3VudFxzYXZlc2ZyZWdpc3RlcgorJQorXGRlZlxzYXZlc2Z7XHJlbGF4IFxpZmhtb2RlIFxzYXZlc2ZyZWdpc3Rlcj1cc3BhY2VmYWN0b3IgXGZpfQorXGRlZlxyZXN0b3Jlc2Z7XHJlbGF4IFxpZmhtb2RlIFxzcGFjZWZhY3Rvcj1cc2F2ZXNmcmVnaXN0ZXIgXGZpfQorXGRlZlxhbmNob3IjMXtcc2F2ZXNmIFxzZXRyZWZ7IzF9e1lub3RoaW5nfVxyZXN0b3Jlc2YgXGlnbm9yZXNwYWNlc30KKworJSBcc2V0cmVme05BTUV9e1NOVH0gZGVmaW5lcyBhIGNyb3NzLXJlZmVyZW5jZSBwb2ludCBOQU1FIChhIG5vZGUgb3IgYW4KKyUgYW5jaG9yKSwgd2hpY2ggY29uc2lzdHMgb2YgdGhyZWUgcGFydHM6CislIDEpIE5BTUUtdGl0bGUgLSB0aGUgY3VycmVudCBzZWN0aW9uaW5nIG5hbWUgdGFrZW4gZnJvbSBcdGhpc3NlY3Rpb24sCislICAgICAgICAgICAgICAgICBvciB0aGUgYW5jaG9yIG5hbWUuCislIDIpIE5BTUUtc250ICAgLSBzZWN0aW9uIG51bWJlciBhbmQgdHlwZSwgcGFzc2VkIGFzIHRoZSBTTlQgYXJnLCBvcgorJSAgICAgICAgICAgICAgICAgZW1wdHkgZm9yIGFuY2hvcnMuCislIDMpIE5BTUUtcGcgICAgLSB0aGUgcGFnZSBudW1iZXIuCislCislIFRoaXMgaXMgY2FsbGVkIGZyb20gXGRvbm9kZXJlZiwgXGFuY2hvciwgYW5kIFxkb2Zsb2F0LiAgSW4gdGhlIGNhc2Ugb2YKKyUgZmxvYXRzLCB0aGVyZSBpcyBhbiBhZGRpdGlvbmFsIHBhcnQsIHdoaWNoIGlzIG5vdCB3cml0dGVuIGhlcmU6CislIDQpIE5BTUUtbG9mICAgLSB0aGUgdGV4dCBhcyBpdCBzaG91bGQgYXBwZWFyIGluIGEgQGxpc3RvZmZsb2F0cy4KKyUKK1xkZWZcc2V0cmVmIzEjMnslCisgIFxwZGZta2Rlc3R7IzF9JQorICBcaWZsaW5rcworICAgIHslCisgICAgICBcYXRkdW1taWVzICAlIHByZXNlcnZlIGNvbW1hbmRzLCBidXQgZG9uJ3QgZXhwYW5kIHRoZW0KKyAgICAgIFxlZGVmXHdyaXRleHJkZWYjIzEjIzJ7JQorCVx3cml0ZVxhdXhmaWxle0B4cmRlZnsjMS0lICMxIG9mIFxzZXRyZWYsIGV4cGFuZGVkIGJ5IHRoZSBcZWRlZgorCSAgIyMxfXsjIzJ9fSUgdGhlc2UgYXJlIHBhcmFtZXRlcnMgb2YgXHdyaXRleHJkZWYKKyAgICAgIH0lCisgICAgICBcdG9rczAgPSBcZXhwYW5kYWZ0ZXJ7XHRoaXNzZWN0aW9ufSUKKyAgICAgIFxpbW1lZGlhdGUgXHdyaXRleHJkZWZ7dGl0bGV9e1x0aGVcdG9rczAgfSUKKyAgICAgIFxpbW1lZGlhdGUgXHdyaXRleHJkZWZ7c250fXtcY3NuYW1lICMyXGVuZGNzbmFtZX0lIFxZbnVtYmVyZWQgZXRjLgorICAgICAgXHdyaXRleHJkZWZ7cGd9e1xmb2xpb30lIHdpbGwgYmUgd3JpdHRlbiBsYXRlciwgZHVyaW5nIFxzaGlwb3V0CisgICAgfSUKKyAgXGZpCit9CisKKyUgQHhyZWYsIEBweHJlZiwgYW5kIEByZWYgZ2VuZXJhdGUgY3Jvc3MtcmVmZXJlbmNlcy4gIEZvciBceHJlZlgsICMxIGlzCislIHRoZSBub2RlIG5hbWUsICMyIHRoZSBuYW1lIG9mIHRoZSBJbmZvIGNyb3NzLXJlZmVyZW5jZSwgIzMgdGhlIHByaW50ZWQKKyUgbm9kZSBuYW1lLCAjNCB0aGUgbmFtZSBvZiB0aGUgSW5mbyBmaWxlLCAjNSB0aGUgbmFtZSBvZiB0aGUgcHJpbnRlZAorJSBtYW51YWwuICBBbGwgYnV0IHRoZSBub2RlIG5hbWUgY2FuIGJlIG9taXR0ZWQuCislCitcZGVmXHB4cmVmIzF7XHB1dHdvcmRzZWV7fSBceHJlZlhbIzEsLCwsLCwsXX0KK1xkZWZceHJlZiMxe1xwdXR3b3JkU2Vle30gXHhyZWZYWyMxLCwsLCwsLF19CitcZGVmXHJlZiMxe1x4cmVmWFsjMSwsLCwsLCxdfQorXGRlZlx4cmVmWFsjMSwjMiwjMywjNCwjNSwjNl17XGJlZ2luZ3JvdXAKKyAgXHVuc2Vwc3BhY2VzCisgIFxkZWZccHJpbnRlZG1hbnVhbHtcaWdub3Jlc3BhY2VzICM1fSUKKyAgXGRlZlxwcmludGVkcmVmbmFtZXtcaWdub3Jlc3BhY2VzICMzfSUKKyAgXHNldGJveDE9XGhib3h7XHByaW50ZWRtYW51YWxcdW5za2lwfSUKKyAgXHNldGJveDA9XGhib3h7XHByaW50ZWRyZWZuYW1lXHVuc2tpcH0lCisgIFxpZmRpbSBcd2QwID0gMHB0CisgICAgJSBObyBwcmludGVkIG5vZGUgbmFtZSB3YXMgZXhwbGljaXRseSBnaXZlbi4KKyAgICBcZXhwYW5kYWZ0ZXJcaWZ4XGNzbmFtZSBTRVR4cmVmLWF1dG9tYXRpYy1zZWN0aW9uLXRpdGxlXGVuZGNzbmFtZVxyZWxheAorICAgICAgJSBVc2UgdGhlIG5vZGUgbmFtZSBpbnNpZGUgdGhlIHNxdWFyZSBicmFja2V0cy4KKyAgICAgIFxkZWZccHJpbnRlZHJlZm5hbWV7XGlnbm9yZXNwYWNlcyAjMX0lCisgICAgXGVsc2UKKyAgICAgICUgVXNlIHRoZSBhY3R1YWwgY2hhcHRlci9zZWN0aW9uIHRpdGxlIGFwcGVhciBpbnNpZGUKKyAgICAgICUgdGhlIHNxdWFyZSBicmFja2V0cy4gIFVzZSB0aGUgcmVhbCBzZWN0aW9uIHRpdGxlIGlmIHdlIGhhdmUgaXQuCisgICAgICBcaWZkaW0gXHdkMSA+IDBwdAorICAgICAgICAlIEl0IGlzIGluIGFub3RoZXIgbWFudWFsLCBzbyB3ZSBkb24ndCBoYXZlIGl0LgorICAgICAgICBcZGVmXHByaW50ZWRyZWZuYW1le1xpZ25vcmVzcGFjZXMgIzF9JQorICAgICAgXGVsc2UKKyAgICAgICAgXGlmaGF2ZXhyZWZzCisgICAgICAgICAgJSBXZSBrbm93IHRoZSByZWFsIHRpdGxlIGlmIHdlIGhhdmUgdGhlIHhyZWYgdmFsdWVzLgorICAgICAgICAgIFxkZWZccHJpbnRlZHJlZm5hbWV7XHJlZnh7IzEtdGl0bGV9e319JQorICAgICAgICBcZWxzZQorICAgICAgICAgICUgT3RoZXJ3aXNlIGp1c3QgY29weSB0aGUgSW5mbyBub2RlIG5hbWUuCisgICAgICAgICAgXGRlZlxwcmludGVkcmVmbmFtZXtcaWdub3Jlc3BhY2VzICMxfSUKKyAgICAgICAgXGZpJQorICAgICAgXGZpCisgICAgXGZpCisgIFxmaQorICAlCisgICUgTWFrZSBsaW5rIGluIHBkZiBvdXRwdXQuCisgIFxpZnBkZgorICAgIFxsZWF2ZXZtb2RlCisgICAgXGdldGZpbGVuYW1leyM0fSUKKyAgICB7XHR1cm5vZmZhY3RpdmUKKyAgICAgJSBTZWUgY29tbWVudHMgYXQgXGFjdGl2ZWJhY2tzbGFzaGRvdWJsZS4KKyAgICAge1xhY3RpdmViYWNrc2xhc2hkb3VibGUgXHhkZWZccGRmeHJlZmRlc3R7IzF9JQorICAgICAgXGJhY2tzbGFzaHBhcmVuc1xwZGZ4cmVmZGVzdH0lCisgICAgICUKKyAgICAgXGlmbnVtXGZpbGVuYW1lbGVuZ3RoPjAKKyAgICAgICBcc3RhcnRsaW5rIGF0dHJ7L0JvcmRlciBbMCAwIDBdfSUKKyAgICAgICAgIGdvdG8gZmlsZXtcdGhlXGZpbGVuYW1lLnBkZn0gbmFtZXtccGRmeHJlZmRlc3R9JQorICAgICBcZWxzZQorICAgICAgIFxzdGFydGxpbmsgYXR0cnsvQm9yZGVyIFswIDAgMF19JQorICAgICAgICAgZ290byBuYW1le1xwZGZta3BnbntccGRmeHJlZmRlc3R9fSUKKyAgICAgXGZpCisgICAgfSUKKyAgICBcbGlua2NvbG9yCisgIFxmaQorICAlCisgICUgRmxvYXQgcmVmZXJlbmNlcyBhcmUgcHJpbnRlZCBjb21wbGV0ZWx5IGRpZmZlcmVudGx5OiAiRmlndXJlIDEuMiIKKyAgJSBpbnN0ZWFkIG9mICJbc29tZW5vZGVdLCBwLjMiLiAgV2UgZGlzdGluZ3Vpc2ggdGhlbSBieSB0aGUKKyAgJSBMQUJFTC10aXRsZSBiZWluZyBzZXQgdG8gYSBtYWdpYyBzdHJpbmcuCisgIHslCisgICAgJSBIYXZlIHRvIG90aGVyaWZ5IGV2ZXJ5dGhpbmcgc3BlY2lhbCB0byBhbGxvdyB0aGUgXGNzbmFtZSB0bworICAgICUgaW5jbHVkZSBhbiBfIGluIHRoZSB4cmVmIG5hbWUsIGV0Yy4KKyAgICBcaW5kZXhub2ZvbnRzCisgICAgXHR1cm5vZmZhY3RpdmUKKyAgICBcZXhwYW5kYWZ0ZXJcZ2xvYmFsXGV4cGFuZGFmdGVyXGxldFxleHBhbmRhZnRlclxYdGhpc3JlZnRpdGxlCisgICAgICBcY3NuYW1lIFhSIzEtdGl0bGVcZW5kY3NuYW1lCisgIH0lCisgIFxpZmZsb2F0XFh0aGlzcmVmdGl0bGUKKyAgICAlIElmIHRoZSB1c2VyIHNwZWNpZmllZCB0aGUgcHJpbnQgbmFtZSAodGhpcmQgYXJnKSB0byB0aGUgcmVmLAorICAgICUgcHJpbnQgaXQgaW5zdGVhZCBvZiBvdXIgdXN1YWwgIkZpZ3VyZSAxLjIiLgorICAgIFxpZmRpbVx3ZDAgPSAwcHQKKyAgICAgIFxyZWZ4eyMxLXNudH0lCisgICAgXGVsc2UKKyAgICAgIFxwcmludGVkcmVmbmFtZQorICAgIFxmaQorICAgICUKKyAgICAlIGlmIHRoZSB1c2VyIGFsc28gZ2F2ZSB0aGUgcHJpbnRlZCBtYW51YWwgbmFtZSAoZmlmdGggYXJnKSwgYXBwZW5kCisgICAgJSAiaW4gTUFOVUFMTkFNRSIuCisgICAgXGlmZGltIFx3ZDEgPiAwcHQKKyAgICAgIFxzcGFjZSBccHV0d29yZGlue30gXGNpdGV7XHByaW50ZWRtYW51YWx9JQorICAgIFxmaQorICBcZWxzZQorICAgICUgbm9kZS9hbmNob3IgKG5vbi1mbG9hdCkgcmVmZXJlbmNlcy4KKyAgICAlCisgICAgJSBJZiB3ZSB1c2UgXHVuaGJveDAgYW5kIFx1bmhib3gxIHRvIHByaW50IHRoZSBub2RlIG5hbWVzLCBUZVggZG9lcyBub3QKKyAgICAlIGluc2VydCBlbXB0eSBkaXNjcmV0aW9uYXJpZXMgYWZ0ZXIgaHlwaGVucywgd2hpY2ggbWVhbnMgdGhhdCBpdCB3aWxsCisgICAgJSBub3QgZmluZCBhIGxpbmUgYnJlYWsgYXQgYSBoeXBoZW4gaW4gYSBub2RlIG5hbWVzLiAgU2luY2Ugc29tZSBtYW51YWxzCisgICAgJSBhcmUgYmVzdCB3cml0dGVuIHdpdGggZmFpcmx5IGxvbmcgbm9kZSBuYW1lcywgY29udGFpbmluZyBoeXBoZW5zLCB0aGlzCisgICAgJSBpcyBhIGxvc3MuICBUaGVyZWZvcmUsIHdlIGdpdmUgdGhlIHRleHQgb2YgdGhlIG5vZGUgbmFtZSBhZ2Fpbiwgc28gaXQKKyAgICAlIGlzIGFzIGlmIFRlWCBpcyBzZWVpbmcgaXQgZm9yIHRoZSBmaXJzdCB0aW1lLgorICAgIFxpZmRpbSBcd2QxID4gMHB0CisgICAgICBccHV0d29yZHNlY3Rpb257fSBgYFxwcmludGVkcmVmbmFtZScnIFxwdXR3b3JkaW57fSBcY2l0ZXtccHJpbnRlZG1hbnVhbH0lCisgICAgXGVsc2UKKyAgICAgICUgXyAoZm9yIGV4YW1wbGUpIGhhcyB0byBiZSB0aGUgY2hhcmFjdGVyIF8gZm9yIHRoZSBwdXJwb3NlcyBvZiB0aGUKKyAgICAgICUgY29udHJvbCBzZXF1ZW5jZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBub2RlLCBidXQgaXQgaGFzIHRvIGV4cGFuZAorICAgICAgJSBpbnRvIHRoZSB1c3VhbCBcbGVhdmV2bW9kZS4uLlx2cnVsZSBzdHVmZiBmb3IgcHVycG9zZXMgb2YKKyAgICAgICUgcHJpbnRpbmcuIFNvIHdlIFx0dXJub2ZmYWN0aXZlIGZvciB0aGUgXHJlZngtc250LCBiYWNrIG9uIGZvciB0aGUKKyAgICAgICUgcHJpbnRpbmcsIGJhY2sgb2ZmIGZvciB0aGUgXHJlZngtcGcuCisgICAgICB7XHR1cm5vZmZhY3RpdmUKKyAgICAgICAlIE9ubHkgb3V0cHV0IGEgZm9sbG93aW5nIHNwYWNlIGlmIHRoZSAtc250IHJlZiBpcyBub25lbXB0eTsgZm9yCisgICAgICAgJSBAdW5udW1iZXJlZCBhbmQgQGFuY2hvciwgaXQgd29uJ3QgYmUuCisgICAgICAgXHNldGJveDIgPSBcaGJveHtcaWdub3Jlc3BhY2VzIFxyZWZ4eyMxLXNudH17fX0lCisgICAgICAgXGlmZGltIFx3ZDIgPiAwcHQgXHJlZnh7IzEtc250fVxzcGFjZVxmaQorICAgICAgfSUKKyAgICAgICUgb3V0cHV0IHRoZSBgW215bm9kZV0nIHZpYSBhIG1hY3JvIHNvIGl0IGNhbiBiZSBvdmVycmlkZGVuLgorICAgICAgXHhyZWZwcmludG5vZGVuYW1lXHByaW50ZWRyZWZuYW1lCisgICAgICAlCisgICAgICAlIEJ1dCB3ZSBhbHdheXMgd2FudCBhIGNvbW1hIGFuZCBhIHNwYWNlOgorICAgICAgLFxzcGFjZQorICAgICAgJQorICAgICAgJSBvdXRwdXQgdGhlIGBwYWdlIDMnLgorICAgICAgXHR1cm5vZmZhY3RpdmUgXHB1dHdvcmRwYWdlXHRpZVxyZWZ4eyMxLXBnfXt9JQorICAgIFxmaQorICBcZmkKKyAgXGVuZGxpbmsKK1xlbmRncm91cH0KKworJSBUaGlzIG1hY3JvIGlzIGNhbGxlZCBmcm9tIFx4cmVmWCBmb3IgdGhlIGBbbm9kZW5hbWVdJyBwYXJ0IG9mIHhyZWYKKyUgb3V0cHV0LiAgSXQncyBhIHNlcGFyYXRlIG1hY3JvIG9ubHkgc28gaXQgY2FuIGJlIGNoYW5nZWQgbW9yZSBlYXNpbHksCislIHNpbmNlIHNxdWFyZSBicmFja2V0cyBkb24ndCB3b3JrIHdlbGwgaW4gc29tZSBkb2N1bWVudHMuICBQYXJ0aWN1bGFybHkKKyUgb25lIHRoYXQgQm9iIGlzIHdvcmtpbmcgb24gOikuCislCitcZGVmXHhyZWZwcmludG5vZGVuYW1lIzF7WyMxXX0KKworJSBUaGluZ3MgcmVmZXJyZWQgdG8gYnkgXHNldHJlZi4KKyUKK1xkZWZcWW5vdGhpbmd7fQorXGRlZlxZb21pdGZyb210b2N7fQorXGRlZlxZbnVtYmVyZWR7JQorICBcaWZudW1cc2Vjbm89MAorICAgIFxwdXR3b3JkQ2hhcHRlckB0aWUgXHRoZVxjaGFwbm8KKyAgXGVsc2UgXGlmbnVtXHN1YnNlY25vPTAKKyAgICBccHV0d29yZFNlY3Rpb25AdGllIFx0aGVcY2hhcG5vLlx0aGVcc2Vjbm8KKyAgXGVsc2UgXGlmbnVtXHN1YnN1YnNlY25vPTAKKyAgICBccHV0d29yZFNlY3Rpb25AdGllIFx0aGVcY2hhcG5vLlx0aGVcc2Vjbm8uXHRoZVxzdWJzZWNubworICBcZWxzZQorICAgIFxwdXR3b3JkU2VjdGlvbkB0aWUgXHRoZVxjaGFwbm8uXHRoZVxzZWNuby5cdGhlXHN1YnNlY25vLlx0aGVcc3Vic3Vic2Vjbm8KKyAgXGZpXGZpXGZpCit9CitcZGVmXFlhcHBlbmRpeHslCisgIFxpZm51bVxzZWNubz0wCisgICAgIFxwdXR3b3JkQXBwZW5kaXhAdGllIEBjaGFyXHRoZVxhcHBlbmRpeG5ve30lCisgIFxlbHNlIFxpZm51bVxzdWJzZWNubz0wCisgICAgIFxwdXR3b3JkU2VjdGlvbkB0aWUgQGNoYXJcdGhlXGFwcGVuZGl4bm8uXHRoZVxzZWNubworICBcZWxzZSBcaWZudW1cc3Vic3Vic2Vjbm89MAorICAgIFxwdXR3b3JkU2VjdGlvbkB0aWUgQGNoYXJcdGhlXGFwcGVuZGl4bm8uXHRoZVxzZWNuby5cdGhlXHN1YnNlY25vCisgIFxlbHNlCisgICAgXHB1dHdvcmRTZWN0aW9uQHRpZQorICAgICAgQGNoYXJcdGhlXGFwcGVuZGl4bm8uXHRoZVxzZWNuby5cdGhlXHN1YnNlY25vLlx0aGVcc3Vic3Vic2Vjbm8KKyAgXGZpXGZpXGZpCit9CisKKyUgRGVmaW5lIFxyZWZ4e05BTUV9e1NVRkZJWH0gdG8gcmVmZXJlbmNlIGEgY3Jvc3MtcmVmZXJlbmNlIHN0cmluZyBuYW1lZCBOQU1FLgorJSBJZiBpdHMgdmFsdWUgaXMgbm9uZW1wdHksIFNVRkZJWCBpcyBvdXRwdXQgYWZ0ZXJ3YXJkLgorJQorXGRlZlxyZWZ4IzEjMnslCisgIHslCisgICAgXGluZGV4bm9mb250cworICAgIFxvdGhlcmJhY2tzbGFzaAorICAgIFxleHBhbmRhZnRlclxnbG9iYWxcZXhwYW5kYWZ0ZXJcbGV0XGV4cGFuZGFmdGVyXHRoaXNyZWZYCisgICAgICBcY3NuYW1lIFhSIzFcZW5kY3NuYW1lCisgIH0lCisgIFxpZnhcdGhpc3JlZlhccmVsYXgKKyAgICAlIElmIG5vdCBkZWZpbmVkLCBzYXkgc29tZXRoaW5nIGF0IGxlYXN0LgorICAgIFxhbmdsZWxlZnQgdW5cLWRlXC1maW5lZFxhbmdsZXJpZ2h0CisgICAgXGlmbGlua3MKKyAgICAgIFxpZmhhdmV4cmVmcworICAgICAgICBcbWVzc2FnZXtcbGluZW51bWJlciBVbmRlZmluZWQgY3Jvc3MgcmVmZXJlbmNlIGAjMScufSUKKyAgICAgIFxlbHNlCisgICAgICAgIFxpZndhcm5lZHhyZWZzXGVsc2UKKyAgICAgICAgICBcZ2xvYmFsXHdhcm5lZHhyZWZzdHJ1ZQorICAgICAgICAgIFxtZXNzYWdle0Nyb3NzIHJlZmVyZW5jZSB2YWx1ZXMgdW5rbm93bjsgeW91IG11c3QgcnVuIFRlWCBhZ2Fpbi59JQorICAgICAgICBcZmkKKyAgICAgIFxmaQorICAgIFxmaQorICBcZWxzZQorICAgICUgSXQncyBkZWZpbmVkLCBzbyBqdXN0IHVzZSBpdC4KKyAgICBcdGhpc3JlZlgKKyAgXGZpCisgICMyJSBPdXRwdXQgdGhlIHN1ZmZpeCBpbiBhbnkgY2FzZS4KK30KKworJSBUaGlzIGlzIHRoZSBtYWNybyBpbnZva2VkIGJ5IGVudHJpZXMgaW4gdGhlIGF1eCBmaWxlLiAgVXN1YWxseSBpdCdzCislIGp1c3QgYSBcZGVmICh3ZSBwcmVwZW5kIFhSIHRvIHRoZSBjb250cm9sIHNlcXVlbmNlIG5hbWUgdG8gYXZvaWQKKyUgY29sbGlzaW9ucykuICBCdXQgaWYgdGhpcyBpcyBhIGZsb2F0IHR5cGUsIHdlIGhhdmUgbW9yZSB3b3JrIHRvIGRvLgorJQorXGRlZlx4cmRlZiMxIzJ7JQorICBcZXhwYW5kYWZ0ZXJcZ2RlZlxjc25hbWUgWFIjMVxlbmRjc25hbWV7IzJ9JSByZW1lbWJlciB0aGlzIHhyZWYgdmFsdWUuCisgICUKKyAgJSBXYXMgdGhhdCB4cmVmIGNvbnRyb2wgc2VxdWVuY2UgdGhhdCB3ZSBqdXN0IGRlZmluZWQgZm9yIGEgZmxvYXQ/CisgIFxleHBhbmRhZnRlclxpZmZsb2F0XGNzbmFtZSBYUiMxXGVuZGNzbmFtZQorICAgICUgaXQgd2FzIGEgZmxvYXQsIGFuZCB3ZSBoYXZlIHRoZSAoc2FmZSkgZmxvYXQgdHlwZSBpbiBcaWZmbG9hdHR5cGUuCisgICAgXGV4cGFuZGFmdGVyXGxldFxleHBhbmRhZnRlclxmbG9hdGxpc3QKKyAgICAgIFxjc25hbWUgZmxvYXRsaXN0XGlmZmxvYXR0eXBlXGVuZGNzbmFtZQorICAgICUKKyAgICAlIElzIHRoaXMgdGhlIGZpcnN0IHRpbWUgd2UndmUgc2VlbiB0aGlzIGZsb2F0IHR5cGU/CisgICAgXGV4cGFuZGFmdGVyXGlmeFxmbG9hdGxpc3RccmVsYXgKKyAgICAgIFx0b2tzMCA9IHtcZG99JSB5ZXMsIHNvIGp1c3QgXGRvCisgICAgXGVsc2UKKyAgICAgICUgaGFkIGl0IGJlZm9yZSwgc28gcHJlc2VydmUgcHJldmlvdXMgZWxlbWVudHMgaW4gbGlzdC4KKyAgICAgIFx0b2tzMCA9IFxleHBhbmRhZnRlcntcZmxvYXRsaXN0XGRvfSUKKyAgICBcZmkKKyAgICAlCisgICAgJSBSZW1lbWJlciB0aGlzIHhyZWYgaW4gdGhlIGNvbnRyb2wgc2VxdWVuY2UgXGZsb2F0bGlzdEZMT0FUVFlQRSwKKyAgICAlIGZvciBsYXRlciB1c2UgaW4gXGxpc3RvZmZsb2F0cy4KKyAgICBcZXhwYW5kYWZ0ZXJceGRlZlxjc25hbWUgZmxvYXRsaXN0XGlmZmxvYXR0eXBlXGVuZGNzbmFtZXtcdGhlXHRva3MweyMxfX0lCisgIFxmaQorfQorCislIFJlYWQgdGhlIGxhc3QgZXhpc3RpbmcgYXV4IGZpbGUsIGlmIGFueS4gIE5vIGVycm9yIGlmIG5vbmUgZXhpc3RzLgorJQorXGRlZlx0cnlhdXhmaWxleyUKKyAgXG9wZW5pbiAxIFxqb2JuYW1lLmF1eAorICBcaWZlb2YgMSBcZWxzZQorICAgIFxyZWFkZGF0YWZpbGV7YXV4fSUKKyAgICBcZ2xvYmFsXGhhdmV4cmVmc3RydWUKKyAgXGZpCisgIFxjbG9zZWluIDEKK30KKworXGRlZlxzZXR1cGRhdGFmaWxleyUKKyAgXGNhdGNvZGVgXF5eQD1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eQT1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eQj1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eQz1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eRD1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eRT1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eRj1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eRz1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eSD1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eSz1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eTD1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eTj1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eUD1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eUT1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eUj1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eUz1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eVD1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eVT1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eVj1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eVz1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eWD1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eWj1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eWz1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eXD1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eXT1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eXj1cb3RoZXIKKyAgXGNhdGNvZGVgXF5eXz1cb3RoZXIKKyAgJSBJdCB3YXMgc3VnZ2VzdGVkIHRvIHNldCB0aGUgY2F0Y29kZSBvZiBeIHRvIDcsIHdoaWNoIHdvdWxkIGFsbG93IF5eZTQgZXRjLgorICAlIGluIHhyZWYgdGFncywgaS5lLiwgbm9kZSBuYW1lcy4gIEJ1dCBzaW5jZSBeXmU0IG5vdGF0aW9uIGlzbid0CisgICUgc3VwcG9ydGVkIGluIHRoZSBtYWluIHRleHQsIGl0IGRvZXNuJ3Qgc2VlbSBkZXNpcmFibGUuICBGdXJ0aGVybW9yZSwKKyAgJSB0aGF0IGlzIG5vdCBlbm91Z2g6IGZvciBub2RlIG5hbWVzIHRoYXQgYWN0dWFsbHkgY29udGFpbiBhIF4KKyAgJSBjaGFyYWN0ZXIsIHdlIHdvdWxkIGVuZCB1cCB3cml0aW5nIGEgbGluZSBsaWtlIHRoaXM6ICd4cmRlZiB7J2hhdAorICAlIGItdGl0bGV9eydoYXQgYn0gYW5kIFx4cmRlZiBkb2VzIGEgXGNzbmFtZS4uLlxlbmRjc25hbWUgb24gdGhlIGZpcnN0CisgICUgYXJndW1lbnQsIGFuZCBcaGF0IGlzIG5vdCBhbiBleHBhbmRhYmxlIGNvbnRyb2wgc2VxdWVuY2UuICBJdCBjb3VsZAorICAlIGFsbCBiZSB3b3JrZWQgb3V0LCBidXQgd2h5PyAgRWl0aGVyIHdlIHN1cHBvcnQgXl4gb3Igd2UgZG9uJ3QuCisgICUKKyAgJSBUaGUgb3RoZXIgY2hhbmdlIG5lY2Vzc2FyeSBmb3IgdGhpcyB3YXMgdG8gZGVmaW5lIFxhdXhoYXQ6CisgICUgXGRlZlxhdXhoYXR7XGRlZl57J2hhdCB9fSUgZXh0cmEgc3BhY2Ugc28gb2sgaWYgZm9sbG93ZWQgYnkgbGV0dGVyCisgICUgYW5kIHRoZW4gdG8gY2FsbCBcYXV4aGF0IGluIFxzZXRxLgorICAlCisgIFxjYXRjb2RlYFxePVxvdGhlcgorICAlCisgICUgU3BlY2lhbCBjaGFyYWN0ZXJzLiAgU2hvdWxkIGJlIHR1cm5lZCBvZmYgYW55d2F5LCBidXQuLi4KKyAgXGNhdGNvZGVgXH49XG90aGVyCisgIFxjYXRjb2RlYFxbPVxvdGhlcgorICBcY2F0Y29kZWBcXT1cb3RoZXIKKyAgXGNhdGNvZGVgXCI9XG90aGVyCisgIFxjYXRjb2RlYFxfPVxvdGhlcgorICBcY2F0Y29kZWBcfD1cb3RoZXIKKyAgXGNhdGNvZGVgXDw9XG90aGVyCisgIFxjYXRjb2RlYFw+PVxvdGhlcgorICBcY2F0Y29kZWBcJD1cb3RoZXIKKyAgXGNhdGNvZGVgXCM9XG90aGVyCisgIFxjYXRjb2RlYFwmPVxvdGhlcgorICBcY2F0Y29kZWBcJT1cb3RoZXIKKyAgXGNhdGNvZGVgKz1cb3RoZXIgJSBhdm9pZCBcKyBmb3IgcGFyYW5vaWEgZXZlbiB0aG91Z2ggd2UndmUgdHVybmVkIGl0IG9mZgorICAlCisgICUgVGhpcyBpcyB0byBzdXBwb3J0IFwgaW4gbm9kZSBuYW1lcyBhbmQgdGl0bGVzLCBzaW5jZSB0aGUgXAorICAlIGNoYXJhY3RlcnMgZW5kIHVwIGluIGEgXGNzbmFtZS4gIEl0J3MgZWFzaWVyIHRoYW4KKyAgJSBsZWF2aW5nIGl0IGFjdGl2ZSBhbmQgbWFraW5nIGl0cyBhY3RpdmUgZGVmaW5pdGlvbiBhbiBhY3R1YWwgXAorICAlIGNoYXJhY3Rlci4gIFdoYXQgSSBkb24ndCB1bmRlcnN0YW5kIGlzIHdoeSBpdCB3b3JrcyBpbiB0aGUgKnZhbHVlKgorICAlIG9mIHRoZSB4cmRlZi4gIFNlZW1zIGxpa2UgaXQgc2hvdWxkIGJlIGEgY2F0Y29kZTEyIFwsIGFuZCB0aGF0CisgICUgc2hvdWxkIG5vdCB0eXBlc2V0IHByb3Blcmx5LiAgQnV0IGl0IHdvcmtzLCBzbyBJJ20gbW92aW5nIG9uIGZvcgorICAlIG5vdy4gIC0ta2FybCwgMTVqYW4wNC4KKyAgXGNhdGNvZGVgXFw9XG90aGVyCisgICUKKyAgJSBNYWtlIHRoZSBjaGFyYWN0ZXJzIDEyOC0yNTUgYmUgcHJpbnRpbmcgY2hhcmFjdGVycy4KKyAgeyUKKyAgICBcY291bnQxPTEyOAorICAgIFxkZWZcbG9vcHslCisgICAgICBcY2F0Y29kZVxjb3VudDE9XG90aGVyCisgICAgICBcYWR2YW5jZVxjb3VudDEgYnkgMQorICAgICAgXGlmbnVtIFxjb3VudDE8MjU2IFxsb29wIFxmaQorICAgIH0lCisgIH0lCisgICUKKyAgJSBAIGlzIG91ciBlc2NhcGUgY2hhcmFjdGVyIGluIC5hdXggZmlsZXMsIGFuZCB3ZSBuZWVkIGJyYWNlcy4KKyAgXGNhdGNvZGVgXHs9MQorICBcY2F0Y29kZWBcfT0yCisgIFxjYXRjb2RlYFxAPTAKK30KKworXGRlZlxyZWFkZGF0YWZpbGUjMXslCitcYmVnaW5ncm91cAorICBcc2V0dXBkYXRhZmlsZQorICBcaW5wdXRcam9ibmFtZS4jMQorXGVuZGdyb3VwfQorCitcbWVzc2FnZXtpbnNlcnRpb25zLH0KKyUgaW5jbHVkaW5nIGZvb3Rub3Rlcy4KKworXG5ld2NvdW50IFxmb290bm90ZW5vCisKKyUgVGhlIHRyYWlsaW5nIHNwYWNlIGluIHRoZSBmb2xsb3dpbmcgZGVmaW5pdGlvbiBmb3Igc3VwZXJlamVjdCBpcworJSB2aXRhbCBmb3IgcHJvcGVyIGZpbGxpbmc7IHBhZ2VzIGNvbWUgb3V0IHVuYWxpZ25lZCB3aGVuIHlvdSBkbyBhCislIHBhZ2VhbGlnbm1hY3JvIGNhbGwgaWYgdGhhdCBzcGFjZSBiZWZvcmUgdGhlIGNsb3NpbmcgYnJhY2UgaXMKKyUgcmVtb3ZlZC4gKEdlbmVyYWxseSwgbnVtZXJpYyBjb25zdGFudHMgc2hvdWxkIGFsd2F5cyBiZSBmb2xsb3dlZCBieSBhCislIHNwYWNlIHRvIHByZXZlbnQgc3RyYW5nZSBleHBhbnNpb24gZXJyb3JzLikKK1xkZWZcc3VwZXJlamVjdHtccGFyXHBlbmFsdHkgLTIwMDAwXGZvb3Rub3Rlbm8gPTAgfQorCislIEBmb290bm90ZXN0eWxlIGlzIG1lYW5pbmdmdWwgZm9yIGluZm8gb3V0cHV0IG9ubHkuCitcbGV0XGZvb3Rub3Rlc3R5bGU9XGNvbW1lbnQKKwore1xjYXRjb2RlIGBcQD0xMQorJQorJSBBdXRvLW51bWJlciBmb290bm90ZXMuICBPdGhlcndpc2UgbGlrZSBwbGFpbi4KK1xnZGVmXGZvb3Rub3RleyUKKyAgXGxldFxpbmRlbnQ9XHB0ZXhpbmRlbnQKKyAgXGxldFxub2luZGVudD1ccHRleG5vaW5kZW50CisgIFxnbG9iYWxcYWR2YW5jZVxmb290bm90ZW5vIGJ5IFxAbmUKKyAgXGVkZWZcdGhpc2Zvb3Rub3skXntcdGhlXGZvb3Rub3Rlbm99JH0lCisgICUKKyAgJSBJbiBjYXNlIHRoZSBmb290bm90ZSBjb21lcyBhdCB0aGUgZW5kIG9mIGEgc2VudGVuY2UsIHByZXNlcnZlIHRoZQorICAlIGV4dHJhIHNwYWNpbmcgYWZ0ZXIgd2UgZG8gdGhlIGZvb3Rub3RlIG51bWJlci4KKyAgXGxldFxAc2ZcZW1wdHkKKyAgXGlmaG1vZGVcZWRlZlxAc2Z7XHNwYWNlZmFjdG9yXHRoZVxzcGFjZWZhY3Rvcn1ccHRleHNsYXNoXGZpCisgICUKKyAgJSBSZW1vdmUgaW5hZHZlcnRlbnQgYmxhbmsgc3BhY2UgYmVmb3JlIHR5cGVzZXR0aW5nIHRoZSBmb290bm90ZSBudW1iZXIuCisgIFx1bnNraXAKKyAgXHRoaXNmb290bm9cQHNmCisgIFxkb2Zvb3Rub3RlCit9JQorCislIERvbid0IGJvdGhlciB3aXRoIHRoZSB0cmlja2VyeSBpbiBwbGFpbi50ZXggdG8gbm90IHJlcXVpcmUgdGhlCislIGZvb3Rub3RlIHRleHQgYXMgYSBwYXJhbWV0ZXIuICBPdXIgZm9vdG5vdGVzIGRvbid0IG5lZWQgdG8gYmUgc28gZ2VuZXJhbC4KKyUKKyUgT2ggeWVzLCB0aGV5IGRvOyBvdGhlcndpc2UsIEBpZnNldCAoYW5kIGFueXRoaW5nIGVsc2UgdGhhdCB1c2VzCislIFxwYXJzZWFyZ2xpbmUpIGZhaWxzIGluc2lkZSBmb290bm90ZXMgYmVjYXVzZSB0aGUgdG9rZW5zIGFyZSBmaXhlZCB3aGVuCislIHRoZSBmb290bm90ZSBpcyByZWFkLiAgLS1rYXJsLCAxNm5vdjk2LgorJQorXGdkZWZcZG9mb290bm90ZXslCisgIFxpbnNlcnRcZm9vdGluc1xiZ3JvdXAKKyAgJSBXZSB3YW50IHRvIHR5cGVzZXQgdGhpcyB0ZXh0IGFzIGEgbm9ybWFsIHBhcmFncmFwaCwgZXZlbiBpZiB0aGUKKyAgJSBmb290bm90ZSByZWZlcmVuY2Ugb2NjdXJzIGluIChmb3IgZXhhbXBsZSkgYSBkaXNwbGF5IGVudmlyb25tZW50LgorICAlIFNvIHJlc2V0IHNvbWUgcGFyYW1ldGVycy4KKyAgXGhzaXplPVxwYWdld2lkdGgKKyAgXGludGVybGluZXBlbmFsdHlcaW50ZXJmb290bm90ZWxpbmVwZW5hbHR5CisgIFxzcGxpdHRvcHNraXBcaHRcc3RydXRib3ggJSB0b3AgYmFzZWxpbmUgZm9yIGJyb2tlbiBmb290bm90ZXMKKyAgXHNwbGl0bWF4ZGVwdGhcZHBcc3RydXRib3gKKyAgXGZsb2F0aW5ncGVuYWx0eVxATU0KKyAgXGxlZnRza2lwXHpAc2tpcAorICBccmlnaHRza2lwXHpAc2tpcAorICBcc3BhY2Vza2lwXHpAc2tpcAorICBceHNwYWNlc2tpcFx6QHNraXAKKyAgXHBhcmluZGVudFxkZWZhdWx0cGFyaW5kZW50CisgICUKKyAgXHNtYWxsZm9udHMgXHJtCisgICUKKyAgJSBCZWNhdXNlIHdlIHVzZSBoYW5naW5nIGluZGVudGF0aW9uIGluIGZvb3Rub3RlcywgYSBAbm9pbmRlbnQgYXBwZWFycworICAlIHRvIGV4ZGVudCB0aGlzIHRleHQsIHNvIG1ha2UgaXQgYmUgYSBuby1vcC4gIG1ha2VpbmZvIGRvZXMgbm90IHVzZQorICAlIGhhbmdpbmcgaW5kZW50YXRpb24gc28gQG5vaW5kZW50IGNhbiBzdGlsbCBiZSBuZWVkZWQgd2l0aGluIGZvb3Rub3RlCisgICUgdGV4dCBhZnRlciBhbiBAZXhhbXBsZSBvciB0aGUgbGlrZSAobm90IHRoYXQgdGhpcyBpcyBnb29kIHN0eWxlKS4KKyAgXGxldFxub2luZGVudCA9IFxyZWxheAorICAlCisgICUgSGFuZyB0aGUgZm9vdG5vdGUgdGV4dCBvZmYgdGhlIG51bWJlci4gIFVzZSBcZXZlcnlwYXIgaW4gY2FzZSB0aGUKKyAgJSBmb290bm90ZSBleHRlbmRzIGZvciBtb3JlIHRoYW4gb25lIHBhcmFncmFwaC4KKyAgXGV2ZXJ5cGFyID0ge1xoYW5nfSUKKyAgXHRleHRpbmRlbnR7XHRoaXNmb290bm99JQorICAlCisgICUgRG9uJ3QgY3Jhc2ggaW50byB0aGUgbGluZSBhYm92ZSB0aGUgZm9vdG5vdGUgdGV4dC4gIFNpbmNlIHRoaXMKKyAgJSBleHBhbmRzIGludG8gYSBib3gsIGl0IG11c3QgY29tZSB3aXRoaW4gdGhlIHBhcmFncmFwaCwgbGVzdCBpdAorICAlIHByb3ZpZGUgYSBwbGFjZSB3aGVyZSBUZVggY2FuIHNwbGl0IHRoZSBmb290bm90ZS4KKyAgXGZvb3RzdHJ1dAorICBcZnV0dXJlbGV0XG5leHRcZm9AdAorfQorfSVlbmQgXGNhdGNvZGUgYFxAPTExCisKKyUgSW4gY2FzZSBhIEBmb290bm90ZSBhcHBlYXJzIGluIGEgdmJveCwgc2F2ZSB0aGUgZm9vdG5vdGUgdGV4dCBhbmQgY3JlYXRlCislIHRoZSByZWFsIFxpbnNlcnQganVzdCBhZnRlciB0aGUgdmJveCBmaW5pc2hlZC4gIE90aGVyd2lzZSwgdGhlIGluc2VydGlvbgorJSB3b3VsZCBiZSBsb3N0LgorJSBTaW1pbGFyaWx5LCBpZiBhIEBmb290bm90ZSBhcHBlYXJzIGluc2lkZSBhbiBhbGlnbm1lbnQsIHNhdmUgdGhlIGZvb3Rub3RlCislIHRleHQgdG8gYSBib3ggYW5kIG1ha2UgdGhlIFxpbnNlcnQgd2hlbiBhIHJvdyBvZiB0aGUgdGFibGUgaXMgZmluaXNoZWQuCislIEFuZCB0aGUgc2FtZSBjYW4gYmUgZG9uZSBmb3Igb3RoZXIgaW5zZXJ0IGNsYXNzZXMuICAtLWthc2FsLCAxNm5vdjAzLgorCislIFJlcGxhY2UgdGhlIFxpbnNlcnQgcHJpbWl0aXZlIGJ5IGEgY2hlYXRpbmcgbWFjcm8uCislIERlZXBlciBpbnNpZGUsIGp1c3QgbWFrZSBzdXJlIHRoYXQgdGhlIHNhdmVkIGluc2VydGlvbnMgYXJlIG5vdCBzcGlsbGVkCislIG91dCBwcmVtYXR1cmVseS4KKyUKK1xkZWZcc3RhcnRzYXZpbmdpbnNlcnRzeyUKKyAgXGlmeCBcaW5zZXJ0XHB0ZXhpbnNlcnQKKyAgICBcbGV0XGluc2VydFxzYXZlaW5zZXJ0CisgIFxlbHNlCisgICAgXGxldFxjaGVja2luc2VydHNccmVsYXgKKyAgXGZpCit9CisKKyUgVGhpcyBcaW5zZXJ0IHJlcGxhY2VtZW50IHdvcmtzIGZvciBib3RoIFxpbnNlcnRcZm9vdGluc3tmb299IGFuZAorJSBcaW5zZXJ0XGZvb3RpbnNcYmdyb3VwIGZvb1xlZ3JvdXAsIGJ1dCBpdCBkb2Vzbid0IHdvcmsgZm9yIFxpbnNlcnQyN3tmb299LgorJQorXGRlZlxzYXZlaW5zZXJ0IzF7JQorICBcZWRlZlxuZXh0e1xub2V4cGFuZFxzYXZldG9ib3ggXG1ha2VTQVZFbmFtZSMxfSUKKyAgXGFmdGVyYXNzaWdubWVudFxuZXh0CisgICUgc3dhbGxvdyB0aGUgbGVmdCBicmFjZQorICBcbGV0XHRlbXAgPQorfQorXGRlZlxtYWtlU0FWRW5hbWUjMXtcbWFrZWNzbmFtZXtTQVZFXGV4cGFuZGFmdGVyXGdvYmJsZVxzdHJpbmcjMX19CitcZGVmXHNhdmV0b2JveCMxe1xnbG9iYWxcc2V0Ym94IzEgPSBcdmJveFxiZ3JvdXAgXHVudmJveCMxfQorCitcZGVmXGNoZWNrc2F2ZWlucyMxe1xpZnZvaWQjMVxlbHNlIFxwbGFjZXNhdmVpbnMjMVxmaX0KKworXGRlZlxwbGFjZXNhdmVpbnMjMXslCisgIFxwdGV4aW5zZXJ0IFxjc25hbWVcZXhwYW5kYWZ0ZXJcZ29iYmxlc2F2ZVxzdHJpbmcjMVxlbmRjc25hbWUKKyAgICB7XGJveCMxfSUKK30KKworJSBlYXQgQFNBVkUgLS0gYmV3YXJlLCBhbGwgb2YgdGhlbSBoYXZlIGNhdGNvZGUgXG90aGVyOgoreworICBcZGVmXGRvc3BlY2lhbHN7XGRvIFNcZG8gQVxkbyBWXGRvIEV9IFx1bmNhdGNvZGVzcGVjaWFscyAgJSAgOy0pCisgIFxnZGVmXGdvYmJsZXNhdmUgQFNBVkV7fQorfQorCislIGluaXRpYWxpemF0aW9uOgorXGRlZlxuZXdzYXZlaW5zICMxeyUKKyAgXGVkZWZcbmV4dHtcbm9leHBhbmRcbmV3c2F2ZWluc1ggXG1ha2VTQVZFbmFtZSMxfSUKKyAgXG5leHQKK30KK1xkZWZcbmV3c2F2ZWluc1ggIzF7JQorICBcY3NuYW1lIG5ld2JveFxlbmRjc25hbWUgIzElCisgIFxleHBhbmRhZnRlclxkZWZcZXhwYW5kYWZ0ZXJcY2hlY2tpbnNlcnRzXGV4cGFuZGFmdGVye1xjaGVja2luc2VydHMKKyAgICBcY2hlY2tzYXZlaW5zICMxfSUKK30KKworJSBpbml0aWFsaXplOgorXGxldFxjaGVja2luc2VydHNcZW1wdHkKK1xuZXdzYXZlaW5zXGZvb3RpbnMKK1xuZXdzYXZlaW5zXG1hcmdpbgorCisKKyUgQGltYWdlLiAgV2UgdXNlIHRoZSBtYWNyb3MgZnJvbSBlcHNmLnRleCB0byBzdXBwb3J0IHRoaXMuCislIElmIGVwc2YudGV4IGlzIG5vdCBpbnN0YWxsZWQgYW5kIEBpbWFnZSBpcyB1c2VkLCB3ZSBjb21wbGFpbi4KKyUKKyUgQ2hlY2sgZm9yIGFuZCByZWFkIGVwc2YudGV4IHVwIGZyb250LiAgSWYgd2UgcmVhZCBpdCBvbmx5IGF0IEBpbWFnZQorJSB0aW1lLCB3ZSBtaWdodCBiZSBpbnNpZGUgYSBncm91cCwgYW5kIHRoZW4gaXRzIGRlZmluaXRpb25zIHdvdWxkIGdldAorJSB1bmRvbmUgYW5kIHRoZSBuZXh0IGltYWdlIHdvdWxkIGZhaWwuCitcb3BlbmluIDEgPSBlcHNmLnRleAorXGlmZW9mIDEgXGVsc2UKKyAgJSBEbyBub3QgYm90aGVyIHNob3dpbmcgYmFubmVyIHdpdGggZXBzZi50ZXggdjIuN2sgKGF2YWlsYWJsZSBpbgorICAlIGRvYy9lcHNmLnRleCBhbmQgb24gY3RhbikuCisgIFxkZWZcZXBzZmFubm91bmNle1x0b2tzMCA9IH0lCisgIFxpbnB1dCBlcHNmLnRleAorXGZpCitcY2xvc2VpbiAxCislCislIFdlIHdpbGwgb25seSBjb21wbGFpbiBvbmNlIGFib3V0IGxhY2sgb2YgZXBzZi50ZXguCitcbmV3aWZcaWZ3YXJuZWRub2Vwc2YKK1xuZXdoZWxwXG5vZXBzZmhlbHB7ZXBzZi50ZXggbXVzdCBiZSBpbnN0YWxsZWQgZm9yIGltYWdlcyB0bworICB3b3JrLiAgSXQgaXMgYWxzbyBpbmNsdWRlZCBpbiB0aGUgVGV4aW5mbyBkaXN0cmlidXRpb24sIG9yIHlvdSBjYW4gZ2V0CisgIGl0IGZyb20gZnRwOi8vdHVnLm9yZy90ZXgvZXBzZi50ZXgufQorJQorXGRlZlxpbWFnZSMxeyUKKyAgXGlmeFxlcHNmYm94XHVuZGVmaW5lZAorICAgIFxpZndhcm5lZG5vZXBzZiBcZWxzZQorICAgICAgXGVycmhlbHAgPSBcbm9lcHNmaGVscAorICAgICAgXGVycm1lc3NhZ2V7ZXBzZi50ZXggbm90IGZvdW5kLCBpbWFnZXMgd2lsbCBiZSBpZ25vcmVkfSUKKyAgICAgIFxnbG9iYWxcd2FybmVkbm9lcHNmdHJ1ZQorICAgIFxmaQorICBcZWxzZQorICAgIFxpbWFnZXh4eCAjMSwsLCwsXGZpbmlzaAorICBcZmkKK30KKyUKKyUgQXJndW1lbnRzIHRvIEBpbWFnZToKKyUgIzEgaXMgKG1hbmRhdG9yeSkgaW1hZ2UgZmlsZW5hbWU7IHdlIHRhY2sgb24gLmVwcyBleHRlbnNpb24uCislICMyIGlzIChvcHRpb25hbCkgd2lkdGgsICMzIGlzIChvcHRpb25hbCkgaGVpZ2h0LgorJSAjNCBpcyAoaWdub3JlZCBvcHRpb25hbCkgaHRtbCBhbHQgdGV4dC4KKyUgIzUgaXMgKGlnbm9yZWQgb3B0aW9uYWwpIGV4dGVuc2lvbi4KKyUgIzYgaXMganVzdCB0aGUgdXN1YWwgZXh0cmEgaWdub3JlZCBhcmcgZm9yIHBhcnNpbmcgdGhpcyBzdHVmZi4KK1xuZXdpZlxpZmltYWdldm1vZGUKK1xkZWZcaW1hZ2V4eHgjMSwjMiwjMywjNCwjNSwjNlxmaW5pc2h7XGJlZ2luZ3JvdXAKKyAgXGNhdGNvZGVgXF5eTSA9IDUgICAgICUgaW4gY2FzZSB3ZSdyZSBpbnNpZGUgYW4gZXhhbXBsZQorICBcbm9ybWFsdHVybm9mZmFjdGl2ZSAgJSBhbGxvdyBfIGV0IGFsLiBpbiBuYW1lcworICAlIElmIHRoZSBpbWFnZSBpcyBieSBpdHNlbGYsIGNlbnRlciBpdC4KKyAgXGlmdm1vZGUKKyAgICBcaW1hZ2V2bW9kZXRydWUKKyAgICBcbm9icmVha1xiaWdza2lwCisgICAgJSBVc3VhbGx5IHdlJ2xsIGhhdmUgdGV4dCBhZnRlciB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBpbnNlcnQKKyAgICAlIFxwYXJza2lwIGdsdWUsIHNvIGluc2VydCBpdCBoZXJlIHRvbyB0byBlcXVhbGl6ZSB0aGUgc3BhY2UKKyAgICAlIGFib3ZlIGFuZCBiZWxvdy4KKyAgICBcbm9icmVha1x2c2tpcFxwYXJza2lwCisgICAgXG5vYnJlYWsKKyAgICBcbGluZVxiZ3JvdXBcaHNzCisgIFxmaQorICAlCisgICUgT3V0cHV0IHRoZSBpbWFnZS4KKyAgXGlmcGRmCisgICAgXGRvcGRmaW1hZ2V7IzF9eyMyfXsjM30lCisgIFxlbHNlCisgICAgJSBcZXBzZmJveCBpdHNlbGYgcmVzZXRzIFxlcHNmP3NpemUgYXQgZWFjaCBmaWd1cmUuCisgICAgXHNldGJveDAgPSBcaGJveHtcaWdub3Jlc3BhY2VzICMyfVxpZmRpbVx3ZDAgPiAwcHQgXGVwc2Z4c2l6ZT0jMlxyZWxheCBcZmkKKyAgICBcc2V0Ym94MCA9IFxoYm94e1xpZ25vcmVzcGFjZXMgIzN9XGlmZGltXHdkMCA+IDBwdCBcZXBzZnlzaXplPSMzXHJlbGF4IFxmaQorICAgIFxlcHNmYm94eyMxLmVwc30lCisgIFxmaQorICAlCisgIFxpZmltYWdldm1vZGUgXGhzcyBcZWdyb3VwIFxiaWdicmVhayBcZmkgICUgc3BhY2UgYWZ0ZXIgdGhlIGltYWdlCitcZW5kZ3JvdXB9CisKKworJSBAZmxvYXQgRkxPQVRUWVBFLExBQkVMLExPQyAuLi4gQGVuZCBmbG9hdCBmb3IgZGlzcGxheWVkIGZpZ3VyZXMsIHRhYmxlcywKKyUgZXRjLiAgV2UgZG9uJ3QgYWN0dWFsbHkgaW1wbGVtZW50IGZsb2F0aW5nIHlldCwgd2UgYWx3YXlzIGluY2x1ZGUgdGhlCislIGZsb2F0ICJoZXJlIi4gIEJ1dCBpdCBzZWVtZWQgdGhlIGJlc3QgbmFtZSBmb3IgdGhlIGZ1dHVyZS4KKyUKK1xlbnZwYXJzZWFyZ2RlZlxmbG9hdHtcZWF0Y29tbWFzcGFjZVxlYXRjb21tYXNwYWNlXGRvZmxvYXQjMSwgLCAsXGZpbmlzaH0KKworJSBUaGVyZSBtYXkgYmUgYSBzcGFjZSBiZWZvcmUgc2Vjb25kIGFuZC9vciB0aGlyZCBwYXJhbWV0ZXI7IGRlbGV0ZSBpdC4KK1xkZWZcZWF0Y29tbWFzcGFjZSMxLCB7IzEsfQorCislICMxIGlzIHRoZSBvcHRpb25hbCBGTE9BVFRZUEUsIHRoZSB0ZXh0IGxhYmVsIGZvciB0aGlzIGZsb2F0LCB0eXBpY2FsbHkKKyUgIkZpZ3VyZSIsICJUYWJsZSIsICJFeGFtcGxlIiwgZXRjLiAgQ2FuJ3QgY29udGFpbiBjb21tYXMuICBJZiBvbWl0dGVkLAorJSB0aGlzIGZsb2F0IHdpbGwgbm90IGJlIG51bWJlcmVkIGFuZCBjYW5ub3QgYmUgcmVmZXJyZWQgdG8uCislCislICMyIGlzIHRoZSBvcHRpb25hbCB4cmVmIGxhYmVsLiAgQWxzbyBtdXN0IGJlIHByZXNlbnQgZm9yIHRoZSBmbG9hdCB0bworJSBiZSByZWZlcmFibGUuCislCislICMzIGlzIHRoZSBvcHRpb25hbCBwb3NpdGlvbmluZyBhcmd1bWVudDsgZm9yIG5vdywgaXQgaXMgaWdub3JlZC4gIEl0CislIHdpbGwgc29tZWhvdyBzcGVjaWZ5IHRoZSBwb3NpdGlvbnMgYWxsb3dlZCB0byBmbG9hdCB0byAoaGVyZSwgdG9wLCBib3R0b20pLgorJQorJSBXZSBrZWVwIGEgc2VwYXJhdGUgY291bnRlciBmb3IgZWFjaCBGTE9BVFRZUEUsIHdoaWNoIHdlIHJlc2V0IGF0IGVhY2gKKyUgY2hhcHRlci1sZXZlbCBjb21tYW5kLgorXGxldFxyZXNldGFsbGZsb2F0bm9zPVxlbXB0eQorJQorXGRlZlxkb2Zsb2F0IzEsIzIsIzMsIzRcZmluaXNoeyUKKyAgXGxldFx0aGlzY2FwdGlvbj1cZW1wdHkKKyAgXGxldFx0aGlzc2hvcnRjYXB0aW9uPVxlbXB0eQorICAlCisgICUgZG9uJ3QgbG9zZSBmb290bm90ZXMgaW5zaWRlIEBmbG9hdC4KKyAgJQorICAlIEJFV0FSRTogd2hlbiB0aGUgZmxvYXRzIHN0YXJ0IGZsb2F0LCB3ZSBoYXZlIHRvIGlzc3VlIHdhcm5pbmcgd2hlbmV2ZXIgYW4KKyAgJSBpbnNlcnQgYXBwZWFycyBpbnNpZGUgYSBmbG9hdCB3aGljaCBjb3VsZCBwb3NzaWJseSBmbG9hdC4gLS1rYXNhbCwgMjZtYXkwNAorICAlCisgIFxzdGFydHNhdmluZ2luc2VydHMKKyAgJQorICAlIFdlIGNhbid0IGJlIHVzZWQgaW5zaWRlIGEgcGFyYWdyYXBoLgorICBccGFyCisgICUKKyAgXHZ0b3BcYmdyb3VwCisgICAgXGRlZlxmbG9hdHR5cGV7IzF9JQorICAgIFxkZWZcZmxvYXRsYWJlbHsjMn0lCisgICAgXGRlZlxmbG9hdGxvY3sjM30lIHdlIGRvIG5vdGhpbmcgd2l0aCB0aGlzIHlldC4KKyAgICAlCisgICAgXGlmeFxmbG9hdHR5cGVcZW1wdHkKKyAgICAgIFxsZXRcc2FmZWZsb2F0dHlwZT1cZW1wdHkKKyAgICBcZWxzZQorICAgICAgeyUKKyAgICAgICAgJSB0aGUgZmxvYXR0eXBlIG1pZ2h0IGhhdmUgYWNjZW50cyBvciBvdGhlciBzcGVjaWFsIGNoYXJhY3RlcnMsCisgICAgICAgICUgYnV0IHdlIG5lZWQgdG8gdXNlIGl0IGluIGEgY29udHJvbCBzZXF1ZW5jZSBuYW1lLgorICAgICAgICBcaW5kZXhub2ZvbnRzCisgICAgICAgIFx0dXJub2ZmYWN0aXZlCisgICAgICAgIFx4ZGVmXHNhZmVmbG9hdHR5cGV7XGZsb2F0dHlwZX0lCisgICAgICB9JQorICAgIFxmaQorICAgICUKKyAgICAlIElmIGxhYmVsIGlzIGdpdmVuIGJ1dCBubyB0eXBlLCB3ZSBoYW5kbGUgdGhhdCBhcyB0aGUgZW1wdHkgdHlwZS4KKyAgICBcaWZ4XGZsb2F0bGFiZWxcZW1wdHkgXGVsc2UKKyAgICAgICUgV2Ugd2FudCBlYWNoIEZMT0FUVFlQRSB0byBiZSBudW1iZXJlZCBzZXBhcmF0ZWx5IChGaWd1cmUgMSwKKyAgICAgICUgVGFibGUgMSwgRmlndXJlIDIsIC4uLikuICAoQW5kIGlmIG5vIGxhYmVsLCBubyBudW1iZXIuKQorICAgICAgJQorICAgICAgXGV4cGFuZGFmdGVyXGdldGZsb2F0bm9cY3NuYW1lXHNhZmVmbG9hdHR5cGUgZmxvYXRub1xlbmRjc25hbWUKKyAgICAgIFxnbG9iYWxcYWR2YW5jZVxmbG9hdG5vIGJ5IDEKKyAgICAgICUKKyAgICAgIHslCisgICAgICAgICUgVGhpcyBtYWdpYyB2YWx1ZSBmb3IgXHRoaXNzZWN0aW9uIGlzIG91dHB1dCBieSBcc2V0cmVmIGFzIHRoZQorICAgICAgICAlIFhSRUZMQUJFTC10aXRsZSB2YWx1ZS4gIFx4cmVmWCB1c2VzIGl0IHRvIGRpc3Rpbmd1aXNoIGZsb2F0CisgICAgICAgICUgbGFiZWxzICh3aGljaCBoYXZlIGEgY29tcGxldGVseSBkaWZmZXJlbnQgb3V0cHV0IGZvcm1hdCkgZnJvbQorICAgICAgICAlIG5vZGUgYW5kIGFuY2hvciBsYWJlbHMuICBBbmQgXHhyZGVmIHVzZXMgaXQgdG8gY29uc3RydWN0IHRoZQorICAgICAgICAlIGxpc3RzIG9mIGZsb2F0cy4KKyAgICAgICAgJQorICAgICAgICBcZWRlZlx0aGlzc2VjdGlvbntcZmxvYXRtYWdpYz1cc2FmZWZsb2F0dHlwZX0lCisgICAgICAgIFxzZXRyZWZ7XGZsb2F0bGFiZWx9e1lmbG9hdH0lCisgICAgICB9JQorICAgIFxmaQorICAgICUKKyAgICAlIHN0YXJ0IHdpdGggXHBhcnNraXAgZ2x1ZSwgSSBndWVzcy4KKyAgICBcdnNraXBccGFyc2tpcAorICAgICUKKyAgICAlIERvbid0IHN1cHByZXNzIGluZGVudGF0aW9uIGlmIGEgZmxvYXQgaGFwcGVucyB0byBzdGFydCBhIHNlY3Rpb24uCisgICAgXHJlc3RvcmVmaXJzdHBhcmFncmFwaGluZGVudAorfQorCislIHdlIGhhdmUgdGhlc2UgcG9zc2liaWxpdGllczoKKyUgQGZsb2F0IEZvbyxsYmwgJiBAY2FwdGlvbntDYXB9OiBGb28gMS4xOiBDYXAKKyUgQGZsb2F0IEZvbyxsYmwgJiBubyBjYXB0aW9uOiAgICBGb28gMS4xCislIEBmbG9hdCBGb28gJiBAY2FwdGlvbntDYXB9OiAgICAgRm9vOiBDYXAKKyUgQGZsb2F0IEZvbyAmIG5vIGNhcHRpb246ICAgICAgICBGb28KKyUgQGZsb2F0ICxsYmwgJiBDYXB0aW9ue0NhcH06ICAgICAxLjE6IENhcAorJSBAZmxvYXQgLGxibCAmIG5vIGNhcHRpb246ICAgICAgIDEuMQorJSBAZmxvYXQgJiBAY2FwdGlvbntDYXB9OiAgICAgICAgIENhcAorJSBAZmxvYXQgJiBubyBjYXB0aW9uOgorJQorXGRlZlxFZmxvYXR7JQorICAgIFxsZXRcZmxvYXRpZGVudCA9IFxlbXB0eQorICAgICUKKyAgICAlIEluIGFsbCBjYXNlcywgaWYgd2UgaGF2ZSBhIGZsb2F0IHR5cGUsIGl0IGNvbWVzIGZpcnN0LgorICAgIFxpZnhcZmxvYXR0eXBlXGVtcHR5IFxlbHNlIFxkZWZcZmxvYXRpZGVudHtcZmxvYXR0eXBlfVxmaQorICAgICUKKyAgICAlIElmIHdlIGhhdmUgYW4geHJlZiBsYWJlbCwgdGhlIG51bWJlciBjb21lcyBuZXh0LgorICAgIFxpZnhcZmxvYXRsYWJlbFxlbXB0eSBcZWxzZQorICAgICAgXGlmeFxmbG9hdHR5cGVcZW1wdHkgXGVsc2UgJSBpZiBhbHNvIGhhZCBmbG9hdCB0eXBlLCBuZWVkIHRpZSBmaXJzdC4KKyAgICAgICAgXGFwcGVuZHRvbWFjcm9cZmxvYXRpZGVudHtcdGllfSUKKyAgICAgIFxmaQorICAgICAgJSB0aGUgbnVtYmVyLgorICAgICAgXGFwcGVuZHRvbWFjcm9cZmxvYXRpZGVudHtcY2hhcGxldmVscHJlZml4XHRoZVxmbG9hdG5vfSUKKyAgICBcZmkKKyAgICAlCisgICAgJSBTdGFydCB0aGUgcHJpbnRlZCBjYXB0aW9uIHdpdGggd2hhdCB3ZSd2ZSBjb25zdHJ1Y3RlZCBpbgorICAgICUgXGZsb2F0aWRlbnQsIGJ1dCBrZWVwIGl0IHNlcGFyYXRlOyB3ZSBuZWVkIFxmbG9hdGlkZW50IGFnYWluLgorICAgIFxsZXRcY2FwdGlvbmxpbmUgPSBcZmxvYXRpZGVudAorICAgICUKKyAgICBcaWZ4XHRoaXNjYXB0aW9uXGVtcHR5IFxlbHNlCisgICAgICBcaWZ4XGZsb2F0aWRlbnRcZW1wdHkgXGVsc2UKKwlcYXBwZW5kdG9tYWNyb1xjYXB0aW9ubGluZXs6IH0lIGhhZCBpZGVudCwgc28gbmVlZCBhIGNvbG9uIGJldHdlZW4KKyAgICAgIFxmaQorICAgICAgJQorICAgICAgJSBjYXB0aW9uIHRleHQuCisgICAgICBcYXBwZW5kdG9tYWNyb1xjYXB0aW9ubGluZXtcc2NhbmV4cFx0aGlzY2FwdGlvbn0lCisgICAgXGZpCisgICAgJQorICAgICUgSWYgd2UgaGF2ZSBhbnl0aGluZyB0byBwcmludCwgcHJpbnQgaXQsIHdpdGggc3BhY2UgYmVmb3JlLgorICAgICUgRXZlbnR1YWxseSB0aGlzIG5lZWRzIHRvIGJlY29tZSBhbiBcaW5zZXJ0LgorICAgIFxpZnhcY2FwdGlvbmxpbmVcZW1wdHkgXGVsc2UKKyAgICAgIFx2c2tpcC41XHBhcnNraXAKKyAgICAgIFxjYXB0aW9ubGluZQorICAgICAgJQorICAgICAgJSBTcGFjZSBiZWxvdyBjYXB0aW9uLgorICAgICAgXHZza2lwXHBhcnNraXAKKyAgICBcZmkKKyAgICAlCisgICAgJSBJZiBoYXZlIGFuIHhyZWYgbGFiZWwsIHdyaXRlIHRoZSBsaXN0IG9mIGZsb2F0cyBpbmZvLiAgRG8gdGhpcworICAgICUgYWZ0ZXIgdGhlIGNhcHRpb24sIHRvIGF2b2lkIGNoYW5jZSBvZiBpdCBiZWluZyBhIGJyZWFrcG9pbnQuCisgICAgXGlmeFxmbG9hdGxhYmVsXGVtcHR5IFxlbHNlCisgICAgICAlIFdyaXRlIHRoZSB0ZXh0IHRoYXQgZ29lcyBpbiB0aGUgbG9mIHRvIHRoZSBhdXggZmlsZSBhcworICAgICAgJSBcZmxvYXRsYWJlbC1sb2YuICBCZXNpZGVzIFxmbG9hdGlkZW50LCB3ZSBpbmNsdWRlIHRoZSBzaG9ydAorICAgICAgJSBjYXB0aW9uIGlmIHNwZWNpZmllZCwgZWxzZSB0aGUgZnVsbCBjYXB0aW9uIGlmIHNwZWNpZmllZCwgZWxzZSBub3RoaW5nLgorICAgICAgeyUKKyAgICAgICAgXGF0ZHVtbWllcworICAgICAgICAlIHNpbmNlIHdlIHJlYWQgdGhlIGNhcHRpb24gdGV4dCBpbiB0aGUgbWFjcm8gd29ybGQsIHdoZXJlIF5eTQorICAgICAgICAlIGlzIHR1cm5lZCBpbnRvIGEgbm9ybWFsIGNoYXJhY3Rlciwgd2UgaGF2ZSB0byBzY2FuIGl0IGJhY2ssIHNvCisgICAgICAgICUgd2UgZG9uJ3Qgd3JpdGUgdGhlIGxpdGVyYWwgdGhyZWUgY2hhcmFjdGVycyAiXl5NIiBpbnRvIHRoZSBhdXggZmlsZS4KKwlcc2NhbmV4cHslCisJICBceGRlZlxub2V4cGFuZFxndGVtcHslCisJICAgIFxpZnhcdGhpc3Nob3J0Y2FwdGlvblxlbXB0eQorCSAgICAgIFx0aGlzY2FwdGlvbgorCSAgICBcZWxzZQorCSAgICAgIFx0aGlzc2hvcnRjYXB0aW9uCisJICAgIFxmaQorCSAgfSUKKwl9JQorICAgICAgICBcaW1tZWRpYXRlXHdyaXRlXGF1eGZpbGV7QHhyZGVme1xmbG9hdGxhYmVsLWxvZn17XGZsb2F0aWRlbnQKKwkgIFxpZnhcZ3RlbXBcZW1wdHkgXGVsc2UgOiBcZ3RlbXAgXGZpfX0lCisgICAgICB9JQorICAgIFxmaQorICBcZWdyb3VwICAlIGVuZCBvZiBcdnRvcAorICAlCisgICUgcGxhY2UgdGhlIGNhcHR1cmVkIGluc2VydHMKKyAgJQorICAlIEJFV0FSRTogd2hlbiB0aGUgZmxvYXRzIHN0YXJ0IGZsb2F0LCB3ZSBoYXZlIHRvIGlzc3VlIHdhcm5pbmcgd2hlbmV2ZXIgYW4KKyAgJSBpbnNlcnQgYXBwZWFycyBpbnNpZGUgYSBmbG9hdCB3aGljaCBjb3VsZCBwb3NzaWJseSBmbG9hdC4gLS1rYXNhbCwgMjZtYXkwNAorICAlCisgIFxjaGVja2luc2VydHMKK30KKworJSBBcHBlbmQgdGhlIHRva2VucyAjMiB0byB0aGUgZGVmaW5pdGlvbiBvZiBtYWNybyAjMSwgbm90IGV4cGFuZGluZyBlaXRoZXIuCislCitcZGVmXGFwcGVuZHRvbWFjcm8jMSMyeyUKKyAgXGV4cGFuZGFmdGVyXGRlZlxleHBhbmRhZnRlciMxXGV4cGFuZGFmdGVyeyMxIzJ9JQorfQorCislIEBjYXB0aW9uLCBAc2hvcnRjYXB0aW9uCislCitcZGVmXGNhcHRpb257XGRvY2FwdGlvblx0aGlzY2FwdGlvbn0KK1xkZWZcc2hvcnRjYXB0aW9ue1xkb2NhcHRpb25cdGhpc3Nob3J0Y2FwdGlvbn0KK1xkZWZcZG9jYXB0aW9ue1xjaGVja2VudlxmbG9hdCBcYmdyb3VwXHNjYW5hcmdjdHh0XGRlZmNhcHRpb259CitcZGVmXGRlZmNhcHRpb24jMSMye1xlZ3JvdXAgXGRlZiMxeyMyfX0KKworJSBUaGUgcGFyYW1ldGVyIGlzIHRoZSBjb250cm9sIHNlcXVlbmNlIGlkZW50aWZ5aW5nIHRoZSBjb3VudGVyIHdlIGFyZQorJSBnb2luZyB0byB1c2UuICBDcmVhdGUgaXQgaWYgaXQgZG9lc24ndCBleGlzdCBhbmQgYXNzaWduIGl0IHRvIFxmbG9hdG5vLgorXGRlZlxnZXRmbG9hdG5vIzF7JQorICBcaWZ4IzFccmVsYXgKKyAgICAgICUgSGF2ZW4ndCBzZWVuIHRoaXMgZmlndXJlIHR5cGUgYmVmb3JlLgorICAgICAgXGNzbmFtZSBuZXdjb3VudFxlbmRjc25hbWUgIzElCisgICAgICAlCisgICAgICAlIFJlbWVtYmVyIHRvIHJlc2V0IHRoaXMgZmxvYXRubyBhdCB0aGUgbmV4dCBjaGFwLgorICAgICAgXGV4cGFuZGFmdGVyXGdkZWZcZXhwYW5kYWZ0ZXJccmVzZXRhbGxmbG9hdG5vcworICAgICAgICBcZXhwYW5kYWZ0ZXJ7XHJlc2V0YWxsZmxvYXRub3MgIzE9MCB9JQorICBcZmkKKyAgXGxldFxmbG9hdG5vIzElCit9CisKKyUgXHNldHJlZiBjYWxscyB0aGlzIHRvIGdldCB0aGUgWFJFRkxBQkVMLXNudCB2YWx1ZS4gIFdlIHdhbnQgYW4gQHhyZWYKKyUgdG8gdGhlIEZMT0FUTEFCRUwgdG8gZXhwYW5kIHRvICJGaWd1cmUgMy4xIi4gIFdlIGNhbGwgXHNldHJlZiB3aGVuIHdlCislIGZpcnN0IHJlYWQgdGhlIEBmbG9hdCBjb21tYW5kLgorJQorXGRlZlxZZmxvYXR7XGZsb2F0dHlwZUB0aWUgXGNoYXBsZXZlbHByZWZpeFx0aGVcZmxvYXRub30lCisKKyUgTWFnaWMgc3RyaW5nIHVzZWQgZm9yIHRoZSBYUkVGTEFCRUwtdGl0bGUgdmFsdWUsIHNvIFx4cmVmWCBjYW4KKyUgZGlzdGluZ3Vpc2ggZmxvYXRzIGZyb20gb3RoZXIgeHJlZiB0eXBlcy4KK1xkZWZcZmxvYXRtYWdpY3shIWZsb2F0ISF9CisKKyUgIzEgaXMgdGhlIGNvbnRyb2wgc2VxdWVuY2Ugd2UgYXJlIHBhc3NlZDsgd2UgZXhwYW5kIGludG8gYSBjb25kaXRpb25hbAorJSB3aGljaCBpcyB0cnVlIGlmICMxIHJlcHJlc2VudHMgYSBmbG9hdCByZWYuICBUaGF0IGlzLCB0aGUgbWFnaWMKKyUgXHRoaXNzZWN0aW9uIHZhbHVlIHdoaWNoIHdlIFxzZXRyZWYgYWJvdmUuCislCitcZGVmXGlmZmxvYXQjMXtcZXhwYW5kYWZ0ZXJcZG9pZmZsb2F0IzE9PVxmaW5pc2h9CislCislICMxIGlzIChtYXliZSkgdGhlIFxmbG9hdG1hZ2ljIHN0cmluZy4gIElmIHNvLCAjMiB3aWxsIGJlIHRoZQorJSAoc2FmZSkgZmxvYXQgdHlwZSBmb3IgdGhpcyBmbG9hdC4gIFdlIHNldCBcaWZmbG9hdHR5cGUgdG8gIzIuCislCitcZGVmXGRvaWZmbG9hdCMxPSMyPSMzXGZpbmlzaHslCisgIFxkZWZcdGVtcHsjMX0lCisgIFxkZWZcaWZmbG9hdHR5cGV7IzJ9JQorICBcaWZ4XHRlbXBcZmxvYXRtYWdpYworfQorCislIEBsaXN0b2ZmbG9hdHMgRkxPQVRUWVBFIC0gcHJpbnQgYSBsaXN0IG9mIGZsb2F0cyBsaWtlIGEgdGFibGUgb2YgY29udGVudHMuCislCitccGFyc2VhcmdkZWZcbGlzdG9mZmxvYXRzeyUKKyAgXGRlZlxmbG9hdHR5cGV7IzF9JSBmbG9hdHR5cGUKKyAgeyUKKyAgICAlIHRoZSBmbG9hdHR5cGUgbWlnaHQgaGF2ZSBhY2NlbnRzIG9yIG90aGVyIHNwZWNpYWwgY2hhcmFjdGVycywKKyAgICAlIGJ1dCB3ZSBuZWVkIHRvIHVzZSBpdCBpbiBhIGNvbnRyb2wgc2VxdWVuY2UgbmFtZS4KKyAgICBcaW5kZXhub2ZvbnRzCisgICAgXHR1cm5vZmZhY3RpdmUKKyAgICBceGRlZlxzYWZlZmxvYXR0eXBle1xmbG9hdHR5cGV9JQorICB9JQorICAlCisgICUgXHhyZGVmIHNhdmVzIHRoZSBmbG9hdHMgYXMgYSBcZG8tbGlzdCBpbiBcZmxvYXRsaXN0U0FGRUZMT0FUVFlQRS4KKyAgXGV4cGFuZGFmdGVyXGlmeFxjc25hbWUgZmxvYXRsaXN0XHNhZmVmbG9hdHR5cGVcZW5kY3NuYW1lIFxyZWxheAorICAgIFxpZmhhdmV4cmVmcworICAgICAgJSBpZiB0aGUgdXNlciBzYWlkIEBsaXN0b2ZmbG9hdHMgZm9vIGJ1dCBuZXZlciBAZmxvYXQgZm9vLgorICAgICAgXG1lc3NhZ2V7XGxpbmVudW1iZXIgTm8gYFxzYWZlZmxvYXR0eXBlJyBmbG9hdHMgdG8gbGlzdC59JQorICAgIFxmaQorICBcZWxzZQorICAgIFxiZWdpbmdyb3VwCisgICAgICBcbGVmdHNraXA9XHRvY2luZGVudCAgJSBpbmRlbnQgdGhlc2UgZW50cmllcyBsaWtlIGEgdG9jCisgICAgICBcbGV0XGRvPVxsaXN0b2ZmbG9hdHNkbworICAgICAgXGNzbmFtZSBmbG9hdGxpc3Rcc2FmZWZsb2F0dHlwZVxlbmRjc25hbWUKKyAgICBcZW5kZ3JvdXAKKyAgXGZpCit9CisKKyUgVGhpcyBpcyBjYWxsZWQgb24gZWFjaCBlbnRyeSBpbiBhIGxpc3Qgb2YgZmxvYXRzLiAgV2UncmUgcGFzc2VkIHRoZQorJSB4cmVmIGxhYmVsLCBpbiB0aGUgZm9ybSBMQUJFTC10aXRsZSwgd2hpY2ggaXMgaG93IHdlIHNhdmUgaXQgaW4gdGhlCislIGF1eCBmaWxlLiAgV2Ugc3RyaXAgb2ZmIHRoZSAtdGl0bGUgYW5kIGxvb2sgdXAgXFhSTEFCRUwtbG9mLCB3aGljaAorJSBoYXMgdGhlIHRleHQgd2UncmUgc3VwcG9zZWQgdG8gdHlwZXNldCBoZXJlLgorJQorJSBGaWd1cmVzIHdpdGhvdXQgeHJlZiBsYWJlbHMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGxpc3QgKHNpbmNlCislIHRoZXkgd29uJ3QgYXBwZWFyIGluIHRoZSBhdXggZmlsZSkuCislCitcZGVmXGxpc3RvZmZsb2F0c2RvIzF7XGxpc3RvZmZsb2F0c2RvZW50cnkjMVxmaW5pc2h9CitcZGVmXGxpc3RvZmZsb2F0c2RvZW50cnkjMS10aXRsZVxmaW5pc2h7eyUKKyAgJSBDYW4ndCBmdWxseSBleHBhbmQgWFIjMS1sb2YgYmVjYXVzZSBpdCBjYW4gY29udGFpbiBhbnl0aGluZy4gIEp1c3QKKyAgJSBwYXNzIHRoZSBjb250cm9sIHNlcXVlbmNlLiAgT24gdGhlIG90aGVyIGhhbmQsIFhSIzEtcGcgaXMganVzdCB0aGUKKyAgJSBwYWdlIG51bWJlciwgYW5kIHdlIHdhbnQgdG8gZnVsbHkgZXhwYW5kIHRoYXQgc28gd2UgY2FuIGdldCBhIGxpbmsKKyAgJSBpbiBwZGYgb3V0cHV0LgorICBcdG9rc0EgPSBcZXhwYW5kYWZ0ZXJ7XGNzbmFtZSBYUiMxLWxvZlxlbmRjc25hbWV9JQorICAlCisgICUgdXNlIHRoZSBzYW1lIFxlbnRyeSBtYWNybyB3ZSB1c2UgdG8gZ2VuZXJhdGUgdGhlIFRPQyBhbmQgaW5kZXguCisgIFxlZGVmXHdyaXRlZW50cnl7XG5vZXhwYW5kXGVudHJ5e1x0aGVcdG9rc0F9e1xjc25hbWUgWFIjMS1wZ1xlbmRjc25hbWV9fSUKKyAgXHdyaXRlZW50cnkKK319CisKK1xtZXNzYWdle2xvY2FsaXphdGlvbix9CislIGFuZCBpMThuLgorCislIEBkb2N1bWVudGxhbmd1YWdlIGlzIHVzdWFsbHkgZ2l2ZW4gdmVyeSBlYXJseSwganVzdCBhZnRlcgorJSBAc2V0ZmlsZW5hbWUuICBJZiBkb25lIHRvbyBsYXRlLCBpdCBtYXkgbm90IG92ZXJyaWRlIGV2ZXJ5dGhpbmcKKyUgcHJvcGVybHkuICBTaW5nbGUgYXJndW1lbnQgaXMgdGhlIGxhbmd1YWdlIGFiYnJldmlhdGlvbi4KKyUgSXQgd291bGQgYmUgbmljZSBpZiB3ZSBjb3VsZCBzZXQgdXAgYSBoeXBoZW5hdGlvbiBmaWxlIGhlcmUuCislCitccGFyc2VhcmdkZWZcZG9jdW1lbnRsYW5ndWFnZXslCisgIFx0ZXggJSByZWFkIHR4aS0/Py50ZXggZmlsZSBpbiBwbGFpbiBUZVguCisgICAgJSBSZWFkIHRoZSBmaWxlIGlmIGl0IGV4aXN0cy4KKyAgICBcb3BlbmluIDEgdHhpLSMxLnRleAorICAgIFxpZmVvZiAxCisgICAgICBcZXJyaGVscCA9IFxub2xhbmdoZWxwCisgICAgICBcZXJybWVzc2FnZXtDYW5ub3QgcmVhZCBsYW5ndWFnZSBmaWxlIHR4aS0jMS50ZXh9JQorICAgIFxlbHNlCisgICAgICBcaW5wdXQgdHhpLSMxLnRleAorICAgIFxmaQorICAgIFxjbG9zZWluIDEKKyAgXGVuZGdyb3VwCit9CitcbmV3aGVscFxub2xhbmdoZWxwe1RoZSBnaXZlbiBsYW5ndWFnZSBkZWZpbml0aW9uIGZpbGUgY2Fubm90IGJlIGZvdW5kIG9yCitpcyBlbXB0eS4gIE1heWJlIHlvdSBuZWVkIHRvIGluc3RhbGwgaXQ/ICBJbiB0aGUgY3VycmVudCBkaXJlY3RvcnkKK3Nob3VsZCB3b3JrIGlmIG5vd2hlcmUgZWxzZSBkb2VzLn0KKworCislIEBkb2N1bWVudGVuY29kaW5nIHNob3VsZCBjaGFuZ2Ugc29tZXRoaW5nIGluIFRlWCBldmVudHVhbGx5LCBtb3N0CislIGxpa2VseSwgYnV0IGZvciBub3cganVzdCByZWNvZ25pemUgaXQuCitcbGV0XGRvY3VtZW50ZW5jb2RpbmcgPSBcY29tbWVudAorCisKKyUgUGFnZSBzaXplIHBhcmFtZXRlcnMuCislCitcbmV3ZGltZW5cZGVmYXVsdHBhcmluZGVudCBcZGVmYXVsdHBhcmluZGVudCA9IDE1cHQKKworXGNoYXBoZWFkaW5nc2tpcCA9IDE1cHQgcGx1cyA0cHQgbWludXMgMnB0Citcc2VjaGVhZGluZ3NraXAgPSAxMnB0IHBsdXMgM3B0IG1pbnVzIDJwdAorXHN1YnNlY2hlYWRpbmdza2lwID0gOXB0IHBsdXMgMnB0IG1pbnVzIDJwdAorCislIFByZXZlbnQgdW5kZXJmdWxsIHZib3ggZXJyb3IgbWVzc2FnZXMuCitcdmJhZG5lc3MgPSAxMDAwMAorCislIERvbid0IGJlIHNvIGZpbmlja3kgYWJvdXQgdW5kZXJmdWxsIGhib3hlcywgZWl0aGVyLgorXGhiYWRuZXNzID0gMjAwMAorCislIEZvbGxvd2luZyBHZW9yZ2UgQnVzaCwganVzdCBnZXQgcmlkIG9mIHdpZG93cyBhbmQgb3JwaGFucy4KK1x3aWRvd3BlbmFsdHk9MTAwMDAKK1xjbHVicGVuYWx0eT0xMDAwMAorCislIFVzZSBUZVggMy4wJ3MgXGVtZXJnZW5jeXN0cmV0Y2ggdG8gaGVscCBsaW5lIGJyZWFraW5nLCBidXQgaWYgd2UncmUKKyUgdXNpbmcgYW4gb2xkIHZlcnNpb24gb2YgVGVYLCBkb24ndCBkbyBhbnl0aGluZy4gIFdlIHdhbnQgdGhlIGFtb3VudCBvZgorJSBzdHJldGNoIGFkZGVkIHRvIGRlcGVuZCBvbiB0aGUgbGluZSBsZW5ndGgsIGhlbmNlIHRoZSBkZXBlbmRlbmNlIG9uCislIFxoc2l6ZS4gIFdlIGNhbGwgdGhpcyB3aGVuZXZlciB0aGUgcGFwZXIgc2l6ZSBpcyBzZXQuCislCitcZGVmXHNldGVtZXJnZW5jeXN0cmV0Y2h7JQorICBcaWZ4XGVtZXJnZW5jeXN0cmV0Y2hcdGhpc2lzdW5kZWZpbmVkCisgICAgJSBBbGxvdyB1cyB0byBhc3NpZ24gdG8gXGVtZXJnZW5jeXN0cmV0Y2ggYW55d2F5LgorICAgIFxkZWZcZW1lcmdlbmN5c3RyZXRjaHtcZGltZW4wfSUKKyAgXGVsc2UKKyAgICBcZW1lcmdlbmN5c3RyZXRjaCA9IC4xNVxoc2l6ZQorICBcZmkKK30KKworJSBQYXJhbWV0ZXJzIGluIG9yZGVyOiAxKSB0ZXh0aGVpZ2h0OyAyKSB0ZXh0d2lkdGg7CislIDMpIHZvZmZzZXQ7IDQpIGhvZmZzZXQ7IDUpIGJpbmRpbmcgb2Zmc2V0OyA2KSB0b3Bza2lwOworJSA3KSBwaHlzaWNhbCBwYWdlIGhlaWdodDsgOCkgcGh5c2ljYWwgcGFnZSB3aWR0aC4KKyUKKyUgV2UgYWxzbyBjYWxsIFxzZXRsZWFkaW5ne1x0ZXh0bGVhZGluZ30sIHNvIHRoZSBjYWxsZXIgc2hvdWxkIGRlZmluZQorJSBcdGV4dGxlYWRpbmcuICBUaGUgY2FsbGVyIHNob3VsZCBhbHNvIHNldCBccGFyc2tpcC4KKyUKK1xkZWZcaW50ZXJuYWxwYWdlc2l6ZXMjMSMyIzMjNCM1IzYjNyM4eyUKKyAgXHZvZmZzZXQgPSAjM1xyZWxheAorICBcdG9wc2tpcCA9ICM2XHJlbGF4CisgIFxzcGxpdHRvcHNraXAgPSBcdG9wc2tpcAorICAlCisgIFx2c2l6ZSA9ICMxXHJlbGF4CisgIFxhZHZhbmNlXHZzaXplIGJ5IFx0b3Bza2lwCisgIFxvdXRlcnZzaXplID0gXHZzaXplCisgIFxhZHZhbmNlXG91dGVydnNpemUgYnkgMlx0b3BhbmRib3R0b21tYXJnaW4KKyAgXHBhZ2VoZWlnaHQgPSBcdnNpemUKKyAgJQorICBcaHNpemUgPSAjMlxyZWxheAorICBcb3V0ZXJoc2l6ZSA9IFxoc2l6ZQorICBcYWR2YW5jZVxvdXRlcmhzaXplIGJ5IDAuNWluCisgIFxwYWdld2lkdGggPSBcaHNpemUKKyAgJQorICBcbm9ybWFsb2Zmc2V0ID0gIzRccmVsYXgKKyAgXGJpbmRpbmdvZmZzZXQgPSAjNVxyZWxheAorICAlCisgIFxpZnBkZgorICAgIFxwZGZwYWdlaGVpZ2h0ICM3XHJlbGF4CisgICAgXHBkZnBhZ2V3aWR0aCAjOFxyZWxheAorICBcZmkKKyAgJQorICBcc2V0bGVhZGluZ3tcdGV4dGxlYWRpbmd9CisgICUKKyAgXHBhcmluZGVudCA9IFxkZWZhdWx0cGFyaW5kZW50CisgIFxzZXRlbWVyZ2VuY3lzdHJldGNoCit9CisKKyUgQGxldHRlcnBhcGVyICh0aGUgZGVmYXVsdCkuCitcZGVmXGxldHRlcnBhcGVye3tcZ2xvYmFsZGVmcyA9IDEKKyAgXHBhcnNraXAgPSAzcHQgcGx1cyAycHQgbWludXMgMXB0CisgIFx0ZXh0bGVhZGluZyA9IDEzLjJwdAorICAlCisgICUgSWYgcGFnZSBpcyBub3RoaW5nIGJ1dCB0ZXh0LCBtYWtlIGl0IGNvbWUgb3V0IGV2ZW4uCisgIFxpbnRlcm5hbHBhZ2VzaXplc3s0NlxiYXNlbGluZXNraXB9ezZpbn0lCisgICAgICAgICAgICAgICAgICAgIHtcdm9mZnNldH17LjI1aW59JQorICAgICAgICAgICAgICAgICAgICB7XGJpbmRpbmdvZmZzZXR9ezM2cHR9JQorICAgICAgICAgICAgICAgICAgICB7MTFpbn17OC41aW59JQorfX0KKworJSBVc2UgQHNtYWxsYm9vayB0byByZXNldCBwYXJhbWV0ZXJzIGZvciA3eDkuMjUgdHJpbSBzaXplLgorXGRlZlxzbWFsbGJvb2t7e1xnbG9iYWxkZWZzID0gMQorICBccGFyc2tpcCA9IDJwdCBwbHVzIDFwdAorICBcdGV4dGxlYWRpbmcgPSAxMnB0CisgICUKKyAgXGludGVybmFscGFnZXNpemVzezcuNWlufXs1aW59JQorICAgICAgICAgICAgICAgICAgICB7XHZvZmZzZXR9ey4yNWlufSUKKyAgICAgICAgICAgICAgICAgICAge1xiaW5kaW5nb2Zmc2V0fXsxNnB0fSUKKyAgICAgICAgICAgICAgICAgICAgezkuMjVpbn17N2lufSUKKyAgJQorICBcbGlzcG5hcnJvd2luZyA9IDAuM2luCisgIFx0b2xlcmFuY2UgPSA3MDAKKyAgXGhmdXp6ID0gMXB0CisgIFxjb250ZW50c3JpZ2h0bWFyZ2luID0gMHB0CisgIFxkZWZib2R5aW5kZW50ID0gLjVjbQorfX0KKworJSBVc2UgQHNtYWxsZXJib29rIHRvIHJlc2V0IHBhcmFtZXRlcnMgZm9yIDZ4OSB0cmltIHNpemUuCislIChKdXN0IHRlc3RpbmcsIHBhcmFtZXRlcnMgc3RpbGwgaW4gZmx1eC4pCitcZGVmXHNtYWxsZXJib29re3tcZ2xvYmFsZGVmcyA9IDEKKyAgXHBhcnNraXAgPSAxLjVwdCBwbHVzIDFwdAorICBcdGV4dGxlYWRpbmcgPSAxMnB0CisgICUKKyAgXGludGVybmFscGFnZXNpemVzezcuNGlufXs0Ljhpbn0lCisgICAgICAgICAgICAgICAgICAgIHstLjJpbn17LS40aW59JQorICAgICAgICAgICAgICAgICAgICB7MHB0fXsxNHB0fSUKKyAgICAgICAgICAgICAgICAgICAgezlpbn17NmlufSUKKyAgJQorICBcbGlzcG5hcnJvd2luZyA9IDAuMjVpbgorICBcdG9sZXJhbmNlID0gNzAwCisgIFxoZnV6eiA9IDFwdAorICBcY29udGVudHNyaWdodG1hcmdpbiA9IDBwdAorICBcZGVmYm9keWluZGVudCA9IC40Y20KK319CisKKyUgVXNlIEBhZm91cnBhcGVyIHRvIHByaW50IG9uIEV1cm9wZWFuIEE0IHBhcGVyLgorXGRlZlxhZm91cnBhcGVye3tcZ2xvYmFsZGVmcyA9IDEKKyAgXHBhcnNraXAgPSAzcHQgcGx1cyAycHQgbWludXMgMXB0CisgIFx0ZXh0bGVhZGluZyA9IDEzLjJwdAorICAlCisgICUgRG91YmxlLXNpZGUgcHJpbnRpbmcgdmlhIHBvc3RzY3JpcHQgb24gTGFzZXJqZXQgNDA1MAorICAlIHByaW50cyBkb3VibGUtc2lkZWQgbmljZWx5IHdoZW4gXGJpbmRpbmdvZmZzZXQ9MTBtbSBhbmQgXGhvZmZzZXQ9LTZtbS4KKyAgJSBUbyBjaGFuZ2UgdGhlIHNldHRpbmdzIGZvciBhIGRpZmZlcmVudCBwcmludGVyIG9yIHNpdHVhdGlvbiwgYWRqdXN0CisgICUgXG5vcm1hbG9mZnNldCB1bnRpbCB0aGUgZnJvbnQtc2lkZSBhbmQgYmFjay1zaWRlIHRleHRzIGFsaWduLiAgVGhlbgorICAlIGRvIHRoZSBzYW1lIGZvciBcYmluZGluZ29mZnNldC4gIFlvdSBjYW4gc2V0IHRoZXNlIGZvciB0ZXN0aW5nIGluCisgICUgeW91ciB0ZXhpbmZvIHNvdXJjZSBmaWxlIGxpa2UgdGhpczoKKyAgJSBAdGV4CisgICUgXGdsb2JhbFxub3JtYWxvZmZzZXQgPSAtNm1tCisgICUgXGdsb2JhbFxiaW5kaW5nb2Zmc2V0ID0gMTBtbQorICAlIEBlbmQgdGV4CisgIFxpbnRlcm5hbHBhZ2VzaXplc3s1MVxiYXNlbGluZXNraXB9ezE2MG1tfQorICAgICAgICAgICAgICAgICAgICB7XHZvZmZzZXR9e1xob2Zmc2V0fSUKKyAgICAgICAgICAgICAgICAgICAge1xiaW5kaW5nb2Zmc2V0fXs0NHB0fSUKKyAgICAgICAgICAgICAgICAgICAgezI5N21tfXsyMTBtbX0lCisgICUKKyAgXHRvbGVyYW5jZSA9IDcwMAorICBcaGZ1enogPSAxcHQKKyAgXGNvbnRlbnRzcmlnaHRtYXJnaW4gPSAwcHQKKyAgXGRlZmJvZHlpbmRlbnQgPSA1bW0KK319CisKKyUgVXNlIEBhZml2ZXBhcGVyIHRvIHByaW50IG9uIEV1cm9wZWFuIEE1IHBhcGVyLgorJSBGcm9tIHJvbWlsZG9AdXJhbm8uaWNlYi51Zm9wLmJyLCAyIEp1bHkgMjAwMC4KKyUgSGUgYWxzbyByZWNvbW1lbmRzIG1ha2luZyBAZXhhbXBsZSBhbmQgQGxpc3AgYmUgc21hbGwuCitcZGVmXGFmaXZlcGFwZXJ7e1xnbG9iYWxkZWZzID0gMQorICBccGFyc2tpcCA9IDJwdCBwbHVzIDFwdCBtaW51cyAwLjFwdAorICBcdGV4dGxlYWRpbmcgPSAxMi41cHQKKyAgJQorICBcaW50ZXJuYWxwYWdlc2l6ZXN7MTYwbW19ezEyMG1tfSUKKyAgICAgICAgICAgICAgICAgICAge1x2b2Zmc2V0fXtcaG9mZnNldH0lCisgICAgICAgICAgICAgICAgICAgIHtcYmluZGluZ29mZnNldH17OHB0fSUKKyAgICAgICAgICAgICAgICAgICAgezIxMG1tfXsxNDhtbX0lCisgICUKKyAgXGxpc3BuYXJyb3dpbmcgPSAwLjJpbgorICBcdG9sZXJhbmNlID0gODAwCisgIFxoZnV6eiA9IDEuMnB0CisgIFxjb250ZW50c3JpZ2h0bWFyZ2luID0gMHB0CisgIFxkZWZib2R5aW5kZW50ID0gMm1tCisgIFx0YWJsZWluZGVudCA9IDEybW0KK319CisKKyUgQSBzcGVjaWZpYyB0ZXh0IGxheW91dCwgMjR4MTVjbSBvdmVyYWxsLCBpbnRlbmRlZCBmb3IgQTQgcGFwZXIuCitcZGVmXGFmb3VybGF0ZXh7e1xnbG9iYWxkZWZzID0gMQorICBcYWZvdXJwYXBlcgorICBcaW50ZXJuYWxwYWdlc2l6ZXN7MjM3bW19ezE1MG1tfSUKKyAgICAgICAgICAgICAgICAgICAge1x2b2Zmc2V0fXs0LjZtbX0lCisgICAgICAgICAgICAgICAgICAgIHtcYmluZGluZ29mZnNldH17N21tfSUKKyAgICAgICAgICAgICAgICAgICAgezI5N21tfXsyMTBtbX0lCisgICUKKyAgJSBNdXN0IGV4cGxpY2l0bHkgcmVzZXQgdG8gMCBiZWNhdXNlIHdlIGNhbGwgXGFmb3VycGFwZXIuCisgIFxnbG9iYWxkZWZzID0gMAorfX0KKworJSBVc2UgQGFmb3Vyd2lkZSB0byBwcmludCBvbiBBNCBwYXBlciBpbiBsYW5kc2NhcGUgZm9ybWF0LgorXGRlZlxhZm91cndpZGV7e1xnbG9iYWxkZWZzID0gMQorICBcYWZvdXJwYXBlcgorICBcaW50ZXJuYWxwYWdlc2l6ZXN7MjQxbW19ezE2NW1tfSUKKyAgICAgICAgICAgICAgICAgICAge1x2b2Zmc2V0fXstMi45NW1tfSUKKyAgICAgICAgICAgICAgICAgICAge1xiaW5kaW5nb2Zmc2V0fXs3bW19JQorICAgICAgICAgICAgICAgICAgICB7Mjk3bW19ezIxMG1tfSUKKyAgXGdsb2JhbGRlZnMgPSAwCit9fQorCislIEBwYWdlc2l6ZXMgVEVYVEhFSUdIVFssVEVYVFdJRFRIXQorJSBQZXJoYXBzIHdlIHNob3VsZCBhbGxvdyBzZXR0aW5nIHRoZSBtYXJnaW5zLCBcdG9wc2tpcCwgXHBhcnNraXAsCislIGFuZC9vciBsZWFkaW5nLCBhbHNvLiBPciBwZXJoYXBzIHdlIHNob3VsZCBjb21wdXRlIHRoZW0gc29tZWhvdy4KKyUKK1xwYXJzZWFyZ2RlZlxwYWdlc2l6ZXN7XHBhZ2VzaXplc3l5eSAjMSwsXGZpbmlzaH0KK1xkZWZccGFnZXNpemVzeXl5IzEsIzIsIzNcZmluaXNoe3slCisgIFxzZXRib3gwID0gXGhib3h7XGlnbm9yZXNwYWNlcyAjMn1caWZkaW1cd2QwID4gMHB0IFxoc2l6ZT0jMlxyZWxheCBcZmkKKyAgXGdsb2JhbGRlZnMgPSAxCisgICUKKyAgXHBhcnNraXAgPSAzcHQgcGx1cyAycHQgbWludXMgMXB0CisgIFxzZXRsZWFkaW5ne1x0ZXh0bGVhZGluZ30lCisgICUKKyAgXGRpbWVuMCA9ICMxCisgIFxhZHZhbmNlXGRpbWVuMCBieSBcdm9mZnNldAorICAlCisgIFxkaW1lbjIgPSBcaHNpemUKKyAgXGFkdmFuY2VcZGltZW4yIGJ5IFxub3JtYWxvZmZzZXQKKyAgJQorICBcaW50ZXJuYWxwYWdlc2l6ZXN7IzF9e1xoc2l6ZX0lCisgICAgICAgICAgICAgICAgICAgIHtcdm9mZnNldH17XG5vcm1hbG9mZnNldH0lCisgICAgICAgICAgICAgICAgICAgIHtcYmluZGluZ29mZnNldH17NDRwdH0lCisgICAgICAgICAgICAgICAgICAgIHtcZGltZW4wfXtcZGltZW4yfSUKK319CisKKyUgU2V0IGRlZmF1bHQgdG8gbGV0dGVyLgorJQorXGxldHRlcnBhcGVyCisKKworXG1lc3NhZ2V7YW5kIHR1cm5pbmcgb24gdGV4aW5mbyBpbnB1dCBmb3JtYXQufQorCislIERlZmluZSBtYWNyb3MgdG8gb3V0cHV0IHZhcmlvdXMgY2hhcmFjdGVycyB3aXRoIGNhdGNvZGUgZm9yIG5vcm1hbCB0ZXh0LgorXGNhdGNvZGVgXCI9XG90aGVyCitcY2F0Y29kZWBcfj1cb3RoZXIKK1xjYXRjb2RlYFxePVxvdGhlcgorXGNhdGNvZGVgXF89XG90aGVyCitcY2F0Y29kZWBcfD1cb3RoZXIKK1xjYXRjb2RlYFw8PVxvdGhlcgorXGNhdGNvZGVgXD49XG90aGVyCitcY2F0Y29kZWBcKz1cb3RoZXIKK1xjYXRjb2RlYFwkPVxvdGhlcgorXGRlZlxub3JtYWxkb3VibGVxdW90ZXsifQorXGRlZlxub3JtYWx0aWxkZXt+fQorXGRlZlxub3JtYWxjYXJldHtefQorXGRlZlxub3JtYWx1bmRlcnNjb3Jle199CitcZGVmXG5vcm1hbHZlcnRpY2FsYmFye3x9CitcZGVmXG5vcm1hbGxlc3N7PH0KK1xkZWZcbm9ybWFsZ3JlYXRlcns+fQorXGRlZlxub3JtYWxwbHVzeyt9CitcZGVmXG5vcm1hbGRvbGxhcnskfSUkIGZvbnQtbG9jayBmaXgKKworJSBUaGlzIG1hY3JvIGlzIHVzZWQgdG8gbWFrZSBhIGNoYXJhY3RlciBwcmludCBvbmUgd2F5IGluIFx0dAorJSAod2hlcmUgaXQgY2FuIHByb2JhYmx5IGJlIG91dHB1dCBhcy1pcyksIGFuZCBhbm90aGVyIHdheSBpbiBvdGhlciBmb250cywKKyUgd2hlcmUgc29tZXRoaW5nIGhhaXJpZXIgcHJvYmFibHkgbmVlZHMgdG8gYmUgZG9uZS4KKyUKKyUgIzEgaXMgd2hhdCB0byBwcmludCBpZiB3ZSBhcmUgaW5kZWVkIHVzaW5nIFx0dDsgIzIgaXMgd2hhdCB0byBwcmludAorJSBvdGhlcndpc2UuICBTaW5jZSBhbGwgdGhlIENvbXB1dGVyIE1vZGVybiB0eXBld3JpdGVyIGZvbnRzIGhhdmUgemVybworJSBpbnRlcndvcmQgc3RyZXRjaCAoYW5kIHNocmluayksIGFuZCBpdCBpcyByZWFzb25hYmxlIHRvIGV4cGVjdCBhbGwKKyUgdHlwZXdyaXRlciBmb250cyB0byBoYXZlIHRoaXMsIHdlIGNhbiBjaGVjayB0aGF0IGZvbnQgcGFyYW1ldGVyLgorJQorXGRlZlxpZnVzaW5ndHQjMSMye1xpZmRpbSBcZm9udGRpbWVuM1xmb250PTBwdCAjMVxlbHNlICMyXGZpfQorCislIFNhbWUgYXMgYWJvdmUsIGJ1dCBjaGVjayBmb3IgaXRhbGljIGZvbnQuICBBY3R1YWxseSB0aGlzIGFsc28gY2F0Y2hlcworJSBub24taXRhbGljIHNsYW50ZWQgZm9udHMgc2luY2UgaXQgaXMgaW1wb3NzaWJsZSB0byBkaXN0aW5ndWlzaCB0aGVtIGZyb20KKyUgaXRhbGljIGZvbnRzLiAgQnV0IHNpbmNlIHRoaXMgaXMgb25seSB1c2VkIGJ5ICQgYW5kIGl0IHVzZXMgXHNsIGFueXdheQorJSB0aGlzIGlzIG5vdCBhIHByb2JsZW0uCitcZGVmXGlmdXNpbmdpdCMxIzJ7XGlmZGltIFxmb250ZGltZW4xXGZvbnQ+MHB0ICMxXGVsc2UgIzJcZml9CisKKyUgVHVybiBvZmYgYWxsIHNwZWNpYWwgY2hhcmFjdGVycyBleGNlcHQgQAorJSAoYW5kIHRob3NlIHdoaWNoIHRoZSB1c2VyIGNhbiB1c2UgYXMgaWYgdGhleSB3ZXJlIG9yZGluYXJ5KS4KKyUgTW9zdCBvZiB0aGVzZSB3ZSBzaW1wbHkgcHJpbnQgZnJvbSB0aGUgXHR0IGZvbnQsIGJ1dCBmb3Igc29tZSwgd2UgY2FuCislIHVzZSBtYXRoIG9yIG90aGVyIHZhcmlhbnRzIHRoYXQgbG9vayBiZXR0ZXIgaW4gbm9ybWFsIHRleHQuCisKK1xjYXRjb2RlYFwiPVxhY3RpdmUKK1xkZWZcYWN0aXZlZG91YmxlcXVvdGV7e1x0dFxjaGFyMzR9fQorXGxldCI9XGFjdGl2ZWRvdWJsZXF1b3RlCitcY2F0Y29kZWBcfj1cYWN0aXZlCitcZGVmfnt7XHR0XGNoYXIxMjZ9fQorXGNoYXJkZWZcaGF0PWBcXgorXGNhdGNvZGVgXF49XGFjdGl2ZQorXGRlZl57e1x0dCBcaGF0fX0KKworXGNhdGNvZGVgXF89XGFjdGl2ZQorXGRlZl97XGlmdXNpbmd0dFxub3JtYWx1bmRlcnNjb3JlXF99CitcbGV0XHJlYWx1bmRlcj1fCislIFN1YnJvdXRpbmUgZm9yIHRoZSBwcmV2aW91cyBtYWNyby4KK1xkZWZcX3tcbGVhdmV2bW9kZSBca2Vybi4wN2VtIFx2Ym94e1xocnVsZSB3aWR0aC4zZW0gaGVpZ2h0LjFleH1ca2VybiAuMDdlbSB9CisKK1xjYXRjb2RlYFx8PVxhY3RpdmUKK1xkZWZ8e3tcdHRcY2hhcjEyNH19CitcY2hhcmRlZiBcbGVzcz1gXDwKK1xjYXRjb2RlYFw8PVxhY3RpdmUKK1xkZWY8e3tcdHQgXGxlc3N9fQorXGNoYXJkZWYgXGd0cj1gXD4KK1xjYXRjb2RlYFw+PVxhY3RpdmUKK1xkZWY+e3tcdHQgXGd0cn19CitcY2F0Y29kZWBcKz1cYWN0aXZlCitcZGVmK3t7XHR0IFxjaGFyIDQzfX0KK1xjYXRjb2RlYFwkPVxhY3RpdmUKK1xkZWYke1xpZnVzaW5naXR7e1xzbFwkfX1cbm9ybWFsZG9sbGFyfSUkIGZvbnQtbG9jayBmaXgKKworJSBJZiBhIC5mbXQgZmlsZSBpcyBiZWluZyB1c2VkLCBjaGFyYWN0ZXJzIHRoYXQgbWlnaHQgYXBwZWFyIGluIGEgZmlsZQorJSBuYW1lIGNhbm5vdCBiZSBhY3RpdmUgdW50aWwgd2UgaGF2ZSBwYXJzZWQgdGhlIGNvbW1hbmQgbGluZS4KKyUgU28gdHVybiB0aGVtIG9mZiBhZ2FpbiwgYW5kIGhhdmUgXGV2ZXJ5am9iIChvciBAc2V0ZmlsZW5hbWUpIHR1cm4gdGhlbSBvbi4KKyUgXG90aGVyaWZ5YWN0aXZlIGlzIGNhbGxlZCBuZWFyIHRoZSBlbmQgb2YgdGhpcyBmaWxlLgorXGRlZlxvdGhlcmlmeWFjdGl2ZXtcY2F0Y29kZWArPVxvdGhlciBcY2F0Y29kZWBcXz1cb3RoZXJ9CisKK1xjYXRjb2RlYFxAPTAKKworJSBcYmFja3NsYXNoY3VyZm9udCBvdXRwdXRzIG9uZSBiYWNrc2xhc2ggY2hhcmFjdGVyIGluIGN1cnJlbnQgZm9udCwKKyUgYXMgaW4gXGNoYXJgXFwuCitcZ2xvYmFsXGNoYXJkZWZcYmFja3NsYXNoY3VyZm9udD1gXFwKK1xnbG9iYWxcbGV0XHJhd2JhY2tzbGFzaHh4PVxiYWNrc2xhc2hjdXJmb250ICAlIGxldCBleGlzdGluZyAuPz9zIGZpbGVzIHdvcmsKKworJSBccmF3YmFja3NsYXNoIGRlZmluZXMgYW4gYWN0aXZlIFwgdG8gZG8gXGJhY2tzbGFzaGN1cmZvbnQuCislIFxvdGhlcmJhY2tzbGFzaCBkZWZpbmVzIGFuIGFjdGl2ZSBcIHRvIGJlIGEgbGl0ZXJhbCBgXCcgY2hhcmFjdGVyIHdpdGgKKyUgY2F0Y29kZSBvdGhlci4KK3tcY2F0Y29kZWBcXD1cYWN0aXZlCisgQGdkZWZAcmF3YmFja3NsYXNoe0BsZXRcPUBiYWNrc2xhc2hjdXJmb250fQorIEBnZGVmQG90aGVyYmFja3NsYXNoe0BsZXRcPUByZWFsYmFja3NsYXNofQorfQorCislIFxyZWFsYmFja3NsYXNoIGlzIGFuIGFjdHVhbCBjaGFyYWN0ZXIgYFwnIHdpdGggY2F0Y29kZSBvdGhlciwgYW5kCislIFxkb3VibGViYWNrc2xhc2ggaXMgdHdvIG9mIHRoZW0gKGZvciB0aGUgcGRmIG91dGxpbmVzKS4KK3tcY2F0Y29kZWBcXD1cb3RoZXIgQGdkZWZAcmVhbGJhY2tzbGFzaHtcfSBAZ2RlZkBkb3VibGViYWNrc2xhc2h7XFx9fQorCislIFxub3JtYWxiYWNrc2xhc2ggb3V0cHV0cyBvbmUgYmFja3NsYXNoIGluIGZpeGVkIHdpZHRoIGZvbnQuCitcZGVmXG5vcm1hbGJhY2tzbGFzaHt7XHR0XGJhY2tzbGFzaGN1cmZvbnR9fQorCitcY2F0Y29kZWBcXD1cYWN0aXZlCisKKyUgVXNlZCBzb21ldGltZXMgdG8gdHVybiBvZmYgKGVmZmVjdGl2ZWx5KSB0aGUgYWN0aXZlIGNoYXJhY3RlcnMKKyUgZXZlbiBhZnRlciBwYXJzaW5nIHRoZW0uCitAZGVmQHR1cm5vZmZhY3RpdmV7JQorICBAbGV0Ij1Abm9ybWFsZG91YmxlcXVvdGUKKyAgQGxldFw9QHJlYWxiYWNrc2xhc2gKKyAgQGxldH49QG5vcm1hbHRpbGRlCisgIEBsZXRePUBub3JtYWxjYXJldAorICBAbGV0Xz1Abm9ybWFsdW5kZXJzY29yZQorICBAbGV0fD1Abm9ybWFsdmVydGljYWxiYXIKKyAgQGxldDw9QG5vcm1hbGxlc3MKKyAgQGxldD49QG5vcm1hbGdyZWF0ZXIKKyAgQGxldCs9QG5vcm1hbHBsdXMKKyAgQGxldCQ9QG5vcm1hbGRvbGxhciAlJCBmb250LWxvY2sgZml4CisgIEB1bnNlcHNwYWNlcworfQorCislIFNhbWUgYXMgQHR1cm5vZmZhY3RpdmUgZXhjZXB0IG91dHB1dHMgXCBhcyB7XHR0XGNoYXJgXFx9IGluc3RlYWQgb2YKKyUgdGhlIGxpdGVyYWwgY2hhcmFjdGVyIGBcJy4gIChUaHVzLCBcIGlzIG5vdCBleHBhbmRhYmxlIHdoZW4gdGhpcyBpcyBpbgorJSBlZmZlY3QuKQorJQorQGRlZkBub3JtYWx0dXJub2ZmYWN0aXZle0B0dXJub2ZmYWN0aXZlIEBsZXRcPUBub3JtYWxiYWNrc2xhc2h9CisKKyUgTWFrZSBfIGFuZCArIFxvdGhlciBjaGFyYWN0ZXJzLCB0ZW1wb3JhcmlseS4KKyUgVGhpcyBpcyBjYW5jZWxlZCBieSBAZml4YmFja3NsYXNoLgorQG90aGVyaWZ5YWN0aXZlCisKKyUgSWYgYSAuZm10IGZpbGUgaXMgYmVpbmcgdXNlZCwgd2UgZG9uJ3Qgd2FudCB0aGUgYFxpbnB1dCB0ZXhpbmZvJyB0byBzaG93IHVwLgorJSBUaGF0IGlzIHdoYXQgXGVhdGlucHV0IGlzIGZvcjsgYWZ0ZXIgdGhhdCwgdGhlIGBcJyBzaG91bGQgcmV2ZXJ0IHRvIHByaW50aW5nCislIGEgYmFja3NsYXNoLgorJQorQGdkZWZAZWF0aW5wdXQgaW5wdXQgdGV4aW5mb3tAZml4YmFja3NsYXNofQorQGdsb2JhbEBsZXRcID0gQGVhdGlucHV0CisKKyUgT24gdGhlIG90aGVyIGhhbmQsIHBlcmhhcHMgdGhlIGZpbGUgZGlkIG5vdCBoYXZlIGEgYFxpbnB1dCB0ZXhpbmZvJy4gVGhlbgorJSB0aGUgZmlyc3QgYFx7IGluIHRoZSBmaWxlIHdvdWxkIGNhdXNlIGFuIGVycm9yLiBUaGlzIG1hY3JvIHRyaWVzIHRvIGZpeAorJSB0aGF0LCBhc3N1bWluZyBpdCBpcyBjYWxsZWQgYmVmb3JlIHRoZSBmaXJzdCBgXCcgY291bGQgcGxhdXNpYmx5IG9jY3VyLgorJSBBbHNvIHR1cm4gYmFjayBvbiBhY3RpdmUgY2hhcmFjdGVycyB0aGF0IG1pZ2h0IGFwcGVhciBpbiB0aGUgaW5wdXQKKyUgZmlsZSBuYW1lLCBpbiBjYXNlIG5vdCB1c2luZyBhIHByZS1kdW1wZWQgZm9ybWF0LgorJQorQGdkZWZAZml4YmFja3NsYXNoeyUKKyAgQGlmeFxAZWF0aW5wdXQgQGxldFwgPSBAbm9ybWFsYmFja3NsYXNoIEBmaQorICBAY2F0Y29kZWArPUBhY3RpdmUKKyAgQGNhdGNvZGVgQF89QGFjdGl2ZQorfQorCislIFNheSBAZm9vLCBub3QgXGZvbywgaW4gZXJyb3IgbWVzc2FnZXMuCitAZXNjYXBlY2hhciA9IGBAQAorCislIFRoZXNlIGxvb2sgb2sgaW4gYWxsIGZvbnRzLCBzbyBqdXN0IG1ha2UgdGhlbSBub3Qgc3BlY2lhbC4KK0BjYXRjb2RlYEAmID0gQG90aGVyCitAY2F0Y29kZWBAIyA9IEBvdGhlcgorQGNhdGNvZGVgQCUgPSBAb3RoZXIKKworCitAYyBMb2NhbCB2YXJpYWJsZXM6CitAYyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCitAYyBwYWdlLWRlbGltaXRlcjogIl5cXFxcbWVzc2FnZSIKK0BjIHRpbWUtc3RhbXAtc3RhcnQ6ICJkZWZcXFxcdGV4aW5mb3ZlcnNpb257IgorQGMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCitAYyB0aW1lLXN0YW1wLWVuZDogIn0iCitAYyBFbmQ6CisKK0BjIHZpbTpzdz0yOgorCitAaWdub3JlCisgICBhcmNoLXRhZzogZTFiMzZlMzItYzk2ZS00MTM1LWE0MWEtMGIyZWZhMmVhMTE1CitAZW5kIGlnbm9yZQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlndXJlIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlndXJlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliNDljYmIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWd1cmUKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlndXJlLmFjIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvY29uZmlndXJlLmFjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmODI0ZjQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9jb25maWd1cmUuYWMKQEAgLTAsMCArMSwxMDUyIEBACitBQ19JTklUKHV0aWwtbGludXgtbmcsIDIuMTcuMiwga3pha0ByZWRoYXQuY29tKQorCitBQ19QUkVSRVEoMi42MCkKKworQUNfQ09ORklHX0FVWF9ESVIoY29uZmlnKQorQUNfQ09ORklHX01BQ1JPX0RJUihbbTRdKQorCitBTV9JTklUX0FVVE9NQUtFKFtjaGVjay1uZXdzIC1XYWxsIGZvcmVpZ24gMS45IGRpc3QtYnppcDJdKQorCittNF9pZmRlZihbQU1fU0lMRU5UX1JVTEVTXSwgW0FNX1NJTEVOVF9SVUxFUyhbeWVzXSldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBQ19TVUJTVChbQU1fREVGQVVMVF9WRVJCT1NJVFldLCBbMV0pXSkKKworQUNfQ09ORklHX1NSQ0RJUihtb3VudC9tb3VudC5jKQorCitBQ19QUkVGSVhfREVGQVVMVChbL3Vzcl0pCisKK2RubCB2ZXJzaW9uIGRldGFpbHMgZnJvbSA8bWFqb3I+LjxtaW5vcj5bLTxzdWZmaXg+XQorUEFDS0FHRV9WRVJTSU9OX01BSk9SPSQoZWNobyAkUEFDS0FHRV9WRVJTSU9OIHwgYXdrIC1GLiAne3ByaW50ICQxfScpCitQQUNLQUdFX1ZFUlNJT05fTUlOT1I9JChlY2hvICRQQUNLQUdFX1ZFUlNJT04gfCBhd2sgLUYuICd7cHJpbnQgJDJ9JyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhd2sgLUYtICd7cHJpbnQgJDF9JykKK1BBQ0tBR0VfVkVSU0lPTl9SRUxFQVNFPTAKKworZG5sIGxpYmJsa2lkIHZlcnNpb24KK0xJQkJMS0lEX1ZFUlNJT049IiRQQUNLQUdFX1ZFUlNJT05fTUFKT1IuJFBBQ0tBR0VfVkVSU0lPTl9NSU5PUi4kUEFDS0FHRV9WRVJTSU9OX1JFTEVBU0UiCitMSUJCTEtJRF9EQVRFPSIyMi1NYXItMjAxMCIKK0xJQkJMS0lEX0xUX01BSk9SPTEKK0xJQkJMS0lEX0xUX01JTk9SPTEKK0xJQkJMS0lEX0xUX01JQ1JPPTAKK0xJQkJMS0lEX1ZFUlNJT05fSU5GTz1gZXhwciAkTElCQkxLSURfTFRfTUFKT1IgKyAkTElCQkxLSURfTFRfTUlOT1JgOiRMSUJCTEtJRF9MVF9NSUNSTzokTElCQkxLSURfTFRfTUlOT1IKKworZG5sIGxpYnV1aWQgdmVyc2lvbgorTElCVVVJRF9WRVJTSU9OPSIkUEFDS0FHRV9WRVJTSU9OX01BSk9SLiRQQUNLQUdFX1ZFUlNJT05fTUlOT1IuJFBBQ0tBR0VfVkVSU0lPTl9SRUxFQVNFIgorTElCVVVJRF9MVF9NQUpPUj0xCitMSUJVVUlEX0xUX01JTk9SPTMKK0xJQlVVSURfTFRfTUlDUk89MAorTElCVVVJRF9WRVJTSU9OX0lORk89YGV4cHIgJExJQlVVSURfTFRfTUFKT1IgKyAkTElCVVVJRF9MVF9NSU5PUmA6JExJQlVVSURfTFRfTUlDUk86JExJQlVVSURfTFRfTUlOT1IKKworIyBDaGVjayB3aGV0aGVyIGV4ZWNfcHJlZml4PS91c3I6CitjYXNlICRleGVjX3ByZWZpeDokcHJlZml4IGluCitOT05FOk5PTkUgfCBOT05FOi91c3IgfCAvdXNyOiopCisgIEFDX01TR19OT1RJQ0UoW0RlZmF1bHQgLS1leGVjLXByZWZpeCBkZXRlY3RlZC5dKQorICBjYXNlICRiaW5kaXIgaW4KKyAgJyR7ZXhlY19wcmVmaXh9L2JpbicpIGJpbmRpcj0vYmluCisgICAgQUNfTVNHX05PVElDRShbICAtLWJpbmRpciBkZWZhdWx0cyB0byAvYmluXSkgOzsKKyAgZXNhYworICBjYXNlICRzYmluZGlyIGluCisgICcke2V4ZWNfcHJlZml4fS9zYmluJykgc2JpbmRpcj0vc2JpbgorICAgIEFDX01TR19OT1RJQ0UoWyAgLS1zYmluZGlyIGRlZmF1bHRzIHRvIC9zYmluXSkgOzsKKyAgZXNhYworICBjYXNlICRsaWJkaXIgaW4KKyAgJyR7ZXhlY19wcmVmaXh9L2xpYicpIGxpYmRpcj0vbGliCisgICAgQUNfTVNHX05PVElDRShbICAtLWxpYmRpciBkZWZhdWx0cyB0byAvbGliXSkgOzsKKyAgZXNhYyA7OworZXNhYworCitsaWJkaXJuYW1lPWBiYXNlbmFtZSAiJGxpYmRpciJgCitBQ19TVUJTVChbbGliZGlybmFtZV0pCisKKyMgVGhlIG9yaWdpbmFsIGRlZmF1bHQgdmFsdWVzIG9mIHtiaW4sc2JpbixsaWJ9ZGlyCit1c3JiaW5fZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vYmluJworQUNfU1VCU1QoW3VzcmJpbl9leGVjZGlyXSkKKwordXNyc2Jpbl9leGVjZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJworQUNfU1VCU1QoW3VzcnNiaW5fZXhlY2Rpcl0pCisKK3VzcmxpYl9leGVjZGlyPScke2V4ZWNfcHJlZml4fS8nJGxpYmRpcm5hbWUKK0FDX1NVQlNUKFt1c3JsaWJfZXhlY2Rpcl0pCisKKworQUNfUFJPR19DQ19TVERDCitBQ19HTlVfU09VUkNFCitBQ19DQU5PTklDQUxfSE9TVAorQUNfQ19DT05TVAorQUNfQ19WT0xBVElMRQorQUNfQ19CSUdFTkRJQU4KKworZG5sIGxpYnRvb2wtMgorTFRfSU5JVAorCitQS0dfUFJPR19QS0dfQ09ORklHCisKK0dUS19ET0NfQ0hFQ0soWzEuMTBdKQorQUNfUEFUSF9QUk9HKFtYU0xUUFJPQ10sIFt4c2x0cHJvY10pCisKK2xpbnV4X29zPW5vCitjYXNlICR7aG9zdF9vc30gaW4KKyAgKmxpbnV4KikKKyAgICBsaW51eF9vcz15ZXMKKyAgICA7OworZXNhYworQU1fQ09ORElUSU9OQUwoW0xJTlVYXSwgdGVzdCAieCRsaW51eF9vcyIgPSB4eWVzKQorCitBQ19QQVRIX1BST0coUEVSTCwgcGVybCkKKworQUNfU1lTX0xBUkdFRklMRQorCitBQ19DSEVDS19IRUFERVJTKFtsaW51eC9jb21waWxlci5oIGxpbnV4L2Jsa3BnLmggbGludXgvbWFqb3IuaF0sIFtdLCBbXSwgWworI2lmZGVmIEhBVkVfTElOVVhfQ09NUElMRVJfSAorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisjZW5kaWYKK10pCitBQ19DSEVDS19IRUFERVJTKAorCVtlcnIuaCBcCisJZXJybm8uaCBcCisJZ2V0b3B0LmggXAorCWxhbmdpbmZvLmggXAorCWxpbnV4L2ZkLmggXAorCWxpbnV4L3Rpb2NsLmggXAorCWxpbnV4L3ZlcnNpb24uaCBcCisJbG9jYWxlLmggXAorCXN0ZGludC5oIFwKKwlpbnR0eXBlcy5oIFwKKwlwdHkuaCBcCisJbW50ZW50LmggXAorICAgICAgICBuZXQvaWYuaCBcCisJbmV0L2lmX2RsLmggXAorICAgICAgICBuZXRpbmV0L2luLmggXAorCXJwY3N2Yy9uZnNfcHJvdC5oIFwKKwlzdGRsaWIuaCBcCisJc3lzL2Rpc2suaCBcCisJc3lzL2Rpc2tsYWJlbC5oIFwKKwlzeXMvaW9jdGwuaCBcCisJc3lzL2lvLmggXAorCXN5cy90aW1lLmggXAorCXN5cy9ta2Rldi5oIFwKKwlzeXMvcHJjdGwuaCBcCisJc3lzL3F1ZXVlLmggXAorCXN5cy9zb2NraW8uaCBcCisJc3lzL3NvY2tldC5oIFwKKwlzeXMvc3lzY2FsbC5oIFwKKwlzeXMvZmlsZS5oIFwKKwlzeXMvaW9jdGwuaCBcCisJc3lzL3N0YXQuaCBcCisJc3lzL3R5cGVzLmggXAorCXN5cy91bi5oIFwKKwlzeXMvdXNlci5oIFwKKwlzeXMvcmVzb3VyY2UuaCBcCisJdW5pc3RkLmggXSkKK0FDX0NIRUNLX0hFQURFUlMoW2xpbnV4L3Jhdy5oXSwKKwkJIFtBTV9DT05ESVRJT05BTChbSEFWRV9SQVddLCBbdHJ1ZV0pXSwKKwkJIFtBTV9DT05ESVRJT05BTChbSEFWRV9SQVddLCBbZmFsc2VdKV0pCisKK0FDX0NIRUNLX0RFQ0xTKFtfTkxfVElNRV9XRUVLXzFTVERBWV0sW10sW10sW1sjaW5jbHVkZSA8bGFuZ2luZm8uaD5dXSkKKworQUNfQ0hFQ0tfREVDTChbbGxzZWVrXSwKKwlbQUNfREVGSU5FKEhBVkVfTExTRUVLX1BST1RPVFlQRSwgMSwKKwkJCVtEZWZpbmUgdG8gMSBpZiBoYXZlIGxsc2VlayBwcm90b3R5cGVdKV0sCisJW10sCisJWyNpbmNsdWRlIDx1bmlzdGQuaD5dKQorCitBQ19DSEVDS19ERUNMKFtsc2VlazY0XSwKKwlbQUNfREVGSU5FKEhBVkVfTFNFRUs2NF9QUk9UT1RZUEUsIDEsCisJCQlbRGVmaW5lIHRvIDEgaWYgaGF2ZSBsc2VlazY0IHByb3RvdHlwZV0pXSwKKwlbXSwKKwlbI2RlZmluZSBfTEFSR0VGSUxFX1NPVVJDRQorCSAjZGVmaW5lIF9MQVJHRUZJTEU2NF9TT1VSQ0UKKwkgI2luY2x1ZGUgPHVuaXN0ZC5oPl0pCisKK0FDX0NIRUNLX0ZVTkNTKAorCVtpbmV0X2F0b24gXAorCWZ1dGltZW5zIFwKKwlmc3RhdDY0IFwKKwlmc3luYyBcCisJZ2V0ZG9tYWlubmFtZSBcCisJZ2V0X2N1cnJlbnRfZGlyX25hbWUgXAorCXVzbGVlcCBcCisJbmFub3NsZWVwIFwKKwlwZXJzb25hbGl0eSBcCisJdXBkd3RtcCBcCisJanJhbmQ0OCBcCisJbGNob3duIFwKKwlsbHNlZWsgXAorCWxzZWVrNjQgXAorCXN0cnRvdWxsIFwKKwlzeXNjb25mIFwKKwlnZXRkdGFibGVzaXplIFwKKwlnZXRybGltaXQgXAorCXNyYW5kb20gXAorCXNldHJlc2dpZCBcCisJc2V0cmVzdWlkIFwKKwlpbm90aWZ5X2luaXQgXAorCXByY3RsIFwKKwlwb3NpeF9mYWR2aXNlIFwKKwlnZXRtbnRpbmZvIFwKKwlfX3NlY3VyZV9nZXRlbnYgXAorCXJwbWF0Y2hdKQorQUNfRlVOQ19GU0VFS08KKworQUNfQ0hFQ0tfRlVOQ1MoW29wZW5hdCBmc3RhdGF0IHVubGlua2F0XSwgW2hhdmVfb3BlbmF0PXllc10sIFtoYXZlX29wZW5hdD1ub10pCisKK0FDX0NIRUNLX01FTUJFUihzdHJ1Y3Qgc29ja2FkZHIuc2FfbGVuLAorCQlBQ19ERUZJTkVfVU5RVU9URUQoSEFWRV9TQV9MRU4sMSxbRGVmaW5lIGlmIHN0cnVjdCBzb2NrYWRkciBjb250YWlucyBzYV9sZW5dKSwsCisJWyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKwkgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD5dKQorCitkbmwgU3RhdGljIGNvbXBpbGF0aW9uCittNF9kZWZpbmUoW1VUSUxfU1RBVElDX1BST0dSQU1TXSwgW2xvc2V0dXAsIG1vdW50LCB1bW91bnQsIGZkaXNrLCBzZmRpc2ssIGJsa2lkXSkKKworQUNfQVJHX0VOQUJMRShbc3RhdGljLXByb2dyYW1zXSwKKyAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zdGF0aWMtcHJvZ3JhbXM9TElTVF0sCisgICAgICBbbGluayBzdGF0aWMgdGhlIHByb2dyYW1zIGluIExJU1QgKGNvbW1hLXNlcGFyYXRlZCwKKyAgICAgIHN1cHBvcnRlZCBmb3IgXW00X2RlZm4oW1VUSUxfU1RBVElDX1BST0dSQU1TXSlbKV0pXSkKKworY2FzZSAkZW5hYmxlX3N0YXRpY19wcm9ncmFtcyBpbgoreWVzKSBlbmFibGVfc3RhdGljX3Byb2dyYW1zPW00X3F1b3RlKFVUSUxfU1RBVElDX1BST0dSQU1TKSA7Oworbm8pIGVuYWJsZV9zdGF0aWNfcHJvZ3JhbXM9IDs7Citlc2FjCisKK2RubCBTZXQgYWxsIHRoZSBpbmRpdmlkdWFsIEFNX0NPTkRJVElPTkFMcworbTRfZm9yZWFjaChbVVRJTF9QUkddLCBtNF9kZWZuKFtVVElMX1NUQVRJQ19QUk9HUkFNU10pLCBbCisgIGNhc2UgLCRlbmFibGVfc3RhdGljX3Byb2dyYW1zLCBpbgorICAgKixVVElMX1BSRywqKSBzdGF0aWNfW11VVElMX1BSRz15ZXMgOzsKKyAgZXNhYworICBBTV9DT05ESVRJT05BTChbSEFWRV9TVEFUSUNfXW00X3RvdXBwZXIoVVRJTF9QUkcpLAorICAgIFt0ZXN0ICJ4JHN0YXRpY19bXVVUSUxfUFJHIiA9IHh5ZXNdKQorXSkKKworZG5sIFVUSUxfUEtHX1NUQVRJQyhWQVJJQUJMRSwgTU9EVUxFUykKK2RubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbVVRJTF9QS0dfU1RBVElDXSwgWworICBpZiBBQ19SVU5fTE9HKFtwa2ctY29uZmlnIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICIkMiJdKTsgdGhlbgorICAgICQxPWBwa2ctY29uZmlnIC0tbGlicyAtLXN0YXRpYyAiJDIiYAorICBlbHNlCisgICAgQUNfTVNHX0VSUk9SKFtwa2ctY29uZmlnIGRlc2NyaXB0aW9uIG9mICQyLCBuZWVkZWQgZm9yIHN0YXRpYyBidWlsZCwgaXMgbm90IGF2YWlsYWJsZV0pCisgIGZpCitdKQorCitkbmwgVVRJTF9DSEVDS19MSUIoTElCUkFSWSwgRlVOQ1RJT04sIFtWQVJTVUZGSVggPSAkMV0pKQorZG5sIFRoZSBWQVJTVUZGSVggaXMgb3B0aW9uYWwgYW5kIG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIuIEZvciBleGFtcGxlOgorZG5sICAgICBVVElMX0NIRUNLX0xJQih5eXksIGZ1bmMsIHh4eCkgZ2VuZXJhdGVzIGhhdmVfeHh4IGFuZCBIQVZFX0xJQlhYWAorZG5sICAgICBVVElMX0NIRUNLX0xJQih5eXksIGZ1bmMpICAgICAgZ2VuZXJhdGVzIGhhdmVfeXl5IGFuZCBIQVZFX0xJQllZWQorZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW1VUSUxfQ0hFQ0tfTElCXSwgWworICBtNF9kZWZpbmUoW3N1ZmZpeF0sIG00X2RlZmF1bHQoWyQzXSwkMSkpCisgIFtoYXZlX11zdWZmaXg9eWVzCisgIG00X2lmZGVmKFskM10sCisgICAgW0FDX0NIRUNLX0xJQihbJDFdLCBbJDJdLCBbQUNfREVGSU5FKEFTX1RSX0NQUChbSEFWRV9MSUJdc3VmZml4KSwgMSldLCBbW2hhdmVfXXN1ZmZpeD1ub10pXSwKKyAgICBbQUNfQ0hFQ0tfTElCKFskMV0sIFskMl0sIFtdLCBbW2hhdmVfXXN1ZmZpeD1ub10pXSkKKyAgQU1fQ09ORElUSU9OQUwoQVNfVFJfQ1BQKFtIQVZFX11zdWZmaXgpLCBbdGVzdCBbJGhhdmVfXXN1ZmZpeCA9IHllc10pCitdKQorCitkbmwgVVRJTF9TRVRfRkxBR1MoQ0ZMQUdTLCBDUFBGTEFHUywgTERGTEFHUykKK0FDX0RFRlVOKFtVVElMX1NFVF9GTEFHU10sIFsKKyAgb2xkX0NGTEFHUz0iJENGTEFHUyIKKyAgb2xkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCisgIG9sZF9MREZMQUdTPSIkTERGTEFHUyIKKyAgQ0ZMQUdTPSIkQ0ZMQUdTICQxIgorICBDUFBGTEFHUz0iJENQUEZMQUdTICQyIgorICBMREZMQUdTPSIkTERGTEFHUyAkMyIKK10pCisKK2RubCBVVElMX1JFU1RPUkVfRkxBR1MoKQorQUNfREVGVU4oW1VUSUxfUkVTVE9SRV9GTEFHU10sIFsKKyAgQ0ZMQUdTPSIkb2xkX0NGTEFHUyIKKyAgQ1BQRkxBR1M9IiRvbGRfQ1BQRkxBR1MiCisgIExERkxBR1M9IiRvbGRfTERGTEFHUyIKK10pCisKKworQVhfQ0hFQ0tfVExTCisKK0FDX0FSR19FTkFCTEUoW21vdW50XSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1tb3VudF0sIFtkbyBub3QgYnVpbGQgbW91bnQgdXRpbGl0aWVzXSksCisgIFtdLCBlbmFibGVfbW91bnQ9Y2hlY2sKKykKK2J1aWxkX21vdW50PXllcworaWYgdGVzdCAieCRlbmFibGVfbW91bnQiID0geGNoZWNrOyB0aGVuCisgIGlmIHRlc3QgIngkbGludXhfb3MiID0geG5vOyB0aGVuCisgICAgQUNfTVNHX1dBUk4oW25vbi1saW51eCBzeXN0ZW07IGRvIG5vdCBidWlsZCBtb3VudCB1dGlsaXRpZXNdKQorICAgIGJ1aWxkX21vdW50PW5vCisgIGZpCitlbGlmIHRlc3QgIngkZW5hYmxlX21vdW50IiA9IHhubzsgdGhlbgorICAgIGJ1aWxkX21vdW50PW5vCitmaQorQU1fQ09ORElUSU9OQUwoQlVJTERfTU9VTlQsIHRlc3QgIngkYnVpbGRfbW91bnQiID0geHllcykKKworCitBQ19BUkdfRU5BQkxFKFtmc2NrXSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1mc2NrXSwgW2RvIG5vdCBidWlsZCBmc2NrXSksCisgIFtdLCBlbmFibGVfZnNjaz15ZXMKKykKK0FNX0NPTkRJVElPTkFMKEJVSUxEX0ZTQ0ssIHRlc3QgIngkZW5hYmxlX2ZzY2siID0geHllcykKKworCitBQ19BUkdfRU5BQkxFKFtsaWJ1dWlkXSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1saWJ1dWlkXSwgW2RvIG5vdCBidWlsZCBsaWJ1dWlkIGFuZCB1dWlkIHV0aWxpdGllc10pLAorICBbXSwgZW5hYmxlX2xpYnV1aWQ9eWVzCispCitBQ19TVUJTVChbTElCVVVJRF9WRVJTSU9OXSkKK0FDX1NVQlNUKFtMSUJVVUlEX1ZFUlNJT05fSU5GT10pCitBTV9DT05ESVRJT05BTChCVUlMRF9MSUJVVUlELCB0ZXN0ICJ4JGVuYWJsZV9saWJ1dWlkIiA9IHh5ZXMpCitoYXZlX3V1aWQ9eWVzCisKK2lmIHRlc3QgIngkZW5hYmxlX2xpYnV1aWQiID0geG5vOyB0aGVuCisgICMgQ2hlY2sgZm9yIGV4dGVybmFsIChlMmZzcHJvZ3MpIGxpYnV1aWQKKyAgUEtHX0NIRUNLX01PRFVMRVMoVVVJRCwgdXVpZCwgW2hhdmVfdXVpZD15ZXNdLCBbaGF2ZV91dWlkPW5vXSkKKyAgaWYgdGVzdCAieCRoYXZlX3V1aWQiID0geG5vOyB0aGVuCisgICAgIyBzeXN0ZW0gd2l0aG91dCBwa2ctY29uZmlnIG9yIHNvLCB0cnkgY2xhc3NpYyBjaGVjaworICAgIEFDX0NIRUNLX0xJQih1dWlkLCB1dWlkX2lzX251bGwsIFtoYXZlX3V1aWQ9eWVzXSwgW2hhdmVfdXVpZD1ub10pCisgIGZpCisgIGlmIHRlc3QgIngkaGF2ZV91dWlkIiA9IHh5ZXM7IHRoZW4KKyAgICBVVElMX1NFVF9GTEFHUygkVVVJRF9DRkxBR1MsICRVVUlEX0NGTEFHUywgJFVVSURfTElCUykKKyAgICBBQ19DSEVDS19IRUFERVJTKFt1dWlkLmggdXVpZC91dWlkLmhdLCBbYnJlYWtdLCBbXSkKKyAgICBVVElMX1JFU1RPUkVfRkxBR1MKKyAgZmkKK2Vsc2UKKyAgIyBpbnRlcm5hbCBsaWJyYXJ5CisgIEFDX0RFRklORShIQVZFX1VVSURfSCwgMSwgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXVpZC5oPiBoZWFkZXIgZmlsZS5dKQorZmkKKworaWYgdGVzdCAieCRoYXZlX3V1aWQiID0geHllczsgdGhlbgorICBBQ19ERUZJTkUoSEFWRV9MSUJVVUlELCAxLCBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIC1sdXVpZC5dKQorZWxzZQorICBBQ19NU0dfV0FSTihbdXVpZCBsaWJyYXJ5IGlzIG5vdCBmb3VuZDsgbWtzd2FwKDgpIHdpbGwgbm90IGdlbmVyYXRlIFVVSURzXSkKK2ZpCitBTV9DT05ESVRJT05BTChIQVZFX1VVSUQsIHRlc3QgIngkaGF2ZV91dWlkIiA9IHh5ZXMpCisjIGRlZmF1bHQKKzogJHtVVUlEX0xJQlM9Jy1sdXVpZCd9CisKKworQUNfQVJHX0VOQUJMRShbdXVpZGRdLAorICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLXV1aWRkXSwgW2RvIG5vdCBidWlsZCB0aGUgdXVpZCBkYWVtb25dKSwKKyAgW10sIGVuYWJsZV91dWlkZD1hdXRvCispCisKK2Nhc2UgIiRlbmFibGVfdXVpZGQ6JGhhdmVfdXVpZCIgaW4KK3llczpubykKKyAgQUNfTVNHX0VSUk9SKFtjYW5ub3QgZW5hYmxlIHV1aWRkIHdoZW4gbGlidXVpZCBpcyBkaXNhYmxlZF0pIDs7CithdXRvOiopCisgIGVuYWJsZV91dWlkZD0kaGF2ZV91dWlkIDs7Citlc2FjCitpZiB0ZXN0ICJ4JGVuYWJsZV91dWlkZCIgPSB4eWVzOyB0aGVuCisgIEFDX0RFRklORShIQVZFX1VVSURELCAxLCBbRGVmaW5lIHRvIDEgaWYgeW91IHdhbnQgdG8gdXNlIHV1aWQgZGFlbW9uLl0pCitmaQorQU1fQ09ORElUSU9OQUwoQlVJTERfVVVJREQsIHRlc3QgIngkZW5hYmxlX3V1aWRkIiA9IHh5ZXMpCisKKworQUNfQVJHX0VOQUJMRShbbGliYmxraWRdLAorICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWxpYmJsa2lkXSwgW2RvIG5vdCBidWlsZCBsaWJibGtpZCBhbmQgYmxraWQgdXRpbGl0aWVzXSksCisgIFtdLCBlbmFibGVfbGliYmxraWQ9eWVzCispCitBQ19TVUJTVChbTElCQkxLSURfREFURV0pCitBQ19TVUJTVChbTElCQkxLSURfVkVSU0lPTl0pCitBQ19TVUJTVChbTElCQkxLSURfVkVSU0lPTl9JTkZPXSkKK0FNX0NPTkRJVElPTkFMKEJVSUxEX0xJQkJMS0lELCB0ZXN0ICJ4JGVuYWJsZV9saWJibGtpZCIgPSB4eWVzKQorQUNfREVGSU5FX1VOUVVPVEVEKExJQkJMS0lEX1ZFUlNJT04sICIkTElCQkxLSURfVkVSU0lPTiIsIFtsaWJibGtpZCB2ZXJzaW9uIHN0cmluZ10pCitBQ19ERUZJTkVfVU5RVU9URUQoTElCQkxLSURfREFURSwgIiRMSUJCTEtJRF9EQVRFIiwgW2xpYmJsa2lkIGRhdGUgc3RyaW5nXSkKK2hhdmVfYmxraWQ9eWVzCisKK2lmIHRlc3QgIngkZW5hYmxlX2xpYmJsa2lkIiA9IHhubzsgdGhlbgorICBpZiB0ZXN0ICJ4JGJ1aWxkX21vdW50IiA9IHh5ZXMgfHwgdGVzdCAieCRlbmFibGVfZnNjayIgPSB4eWVzOyB0aGVuCisgICAgIyBDaGVjayBmb3IgZXh0ZXJuYWwgKGUyZnNwcm9ncykgbGliYmxraWQKKyAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhCTEtJRCwgYmxraWQsIFtoYXZlX2Jsa2lkPXllc10sIFtoYXZlX2Jsa2lkPW5vXSkKKyAgICBpZiB0ZXN0ICJ4JGhhdmVfYmxraWQiID0geG5vOyB0aGVuCisgICAgICAjIHN5c3RlbSB3aXRob3V0IHBrZy1jb25maWcgb3Igc28sIHRyeSBjbGFzc2ljIGNoZWNrCisgICAgICBBQ19DSEVDS19MSUIoYmxraWQsIGJsa2lkX2dldF9jYWNoZSwgW2hhdmVfYmxraWQ9eWVzXSwgW2hhdmVfYmxraWQ9bm9dKQorICAgIGZpCisgICAgaWYgdGVzdCAieCRoYXZlX2Jsa2lkIiA9IHh5ZXM7IHRoZW4KKyAgICAgIFVUSUxfU0VUX0ZMQUdTKCRCTEtJRF9DRkxBR1MsICRCTEtJRF9DRkxBR1MsICRCTEtJRF9MSUJTKQorICAgICAgQUNfQ0hFQ0tfSEVBREVSUyhbYmxraWQuaCBibGtpZC9ibGtpZC5oXSwgW2JyZWFrXSwgW10pCisgICAgICBVVElMX1JFU1RPUkVfRkxBR1MKKyAgICBmaQorICAgIGlmIHRlc3QgLW4gIiRlbmFibGVfc3RhdGljX3Byb2dyYW1zIjsgdGhlbgorICAgICAgIyBUT0RPIGNoZWNrIG9ubHkgd2hlbiBtb3VudCBvZiBmc2NrIGFyZSByZXF1ZXN0ZWQKKyAgICAgIFVUSUxfUEtHX1NUQVRJQyhbQkxLSURfTElCU19TVEFUSUNdLCBbYmxraWRdKQorICAgIGZpCisgIGZpCitlbHNlCisgICMgaW50ZXJuYWwgbGlicmFyeQorICBBQ19ERUZJTkUoSEFWRV9CTEtJRF9ILCAxLCBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxibGtpZC5oPiBoZWFkZXIgZmlsZS5dKQorICBBQ19ERUZJTkUoSEFWRV9MSUJCTEtJRF9JTlRFUk5BTCwgMSwgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBpbi10cmVlIGxpYmJsa2lkLl0pCitmaQorCitpZiB0ZXN0ICJ4JGhhdmVfYmxraWQiID0geHllczsgdGhlbgorICBBQ19ERUZJTkUoSEFWRV9MSUJCTEtJRCwgMSwgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSAtbGJsa2lkLl0pCitlbHNlCisgIGlmIHRlc3QgIngkYnVpbGRfbW91bnQiID0geHllczsgdGhlbgorICAgIEFDX01TR19FUlJPUihbbGliYmxraWQgaXMgbmVlZGVkIHRvIGJ1aWxkIHV0aWwtbGludXgtbmcgbW91bnRdKQorICBmaQorICBpZiB0ZXN0ICJ4JGVuYWJsZV9mc2NrIiA9IHh5ZXM7IHRoZW4KKyAgICBBQ19NU0dfRVJST1IoW2xpYmJsa2lkIGlzIG5lZWRlZCB0byBidWlsZCB1dGlsLWxpbnV4LW5nIGZzY2tdKQorICBmaQorZmkKK0FNX0NPTkRJVElPTkFMKEhBVkVfQkxLSUQsIHRlc3QgIngkaGF2ZV9ibGtpZCIgPSB4eWVzKQorIyBkZWZhdWx0Cis6ICR7QkxLSURfTElCUz0nLWxibGtpZCAtbHV1aWQnfQorCitBQ19BUkdfVkFSKFtCTEtJRF9MSUJTX1NUQVRJQ10sIFstbCBvcHRpb25zIGZvciBsaW5raW5nIHN0YXRpY2FsbHkgd2l0aCBibGtpZF0pCisKK1VUSUxfQ0hFQ0tfTElCKHV0aWwsIG9wZW5wdHkpCitVVElMX0NIRUNLX0xJQih0ZXJtY2FwLCB0Z2V0bnVtKQorCitBTV9HTlVfR0VUVEVYVF9WRVJTSU9OKFswLjE0LjFdKQorQU1fR05VX0dFVFRFWFQoW2V4dGVybmFsXSkKK2lmIHRlc3QgLWQgIiRzcmNkaXIvcG8iCit0aGVuCisgICAgQUxMX0xJTkdVQVM9YGNkICRzcmNkaXIvcG8gPiAvZGV2L251bGwgJiYgZWNobyAqLnBvIHwgc2VkICdzL1wucG8vL2cnYAorZWxzZQorICAgIEFMTF9MSU5HVUFTPSJhZiBhbSBhciBhcyBiZSBiZyBibl9JTiBibiBjYSBjcyBjeSBkYSBkZSBlbCBlbl9HQiBlcyBldCBldV9FUyBmYSBmaSBmciBnbCBndSBoZSBoaSBociBodSBoeSBpZCBpcyBpdCBqYSBrYSBrbiBrbyBrdSBsbyBsdCBsdiBtayBtbCBtciBtcyBteSBuYiBubCBubiBubyBuc28gb3IgcGEgcGwgcHRfQlIgcHQgcm8gcnUgc2kgc2sgc2wgc3Egc3JATGF0biBzciBzdiB0YSB0ZSB0aCB0ciB1ayB1ciB2aSB6aF9DTiB6aF9UVyB6dSIKK2ZpCisKK0FDX0FSR19XSVRIKFtuY3Vyc2VzXSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1uY3Vyc2VzXSwgW2J1aWxkIHdpdGggbm9uLXdpZGUgbmN1cnNlcywgZGVmYXVsdCBpcyB3aWRlIHZlcnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtLXdpdGhvdXQtbmN1cnNlcyBkaXNhYmxlcyBhbGwgbmN1cnNlcyh3KSBzdXBwb3J0KV0pLAorICBbXSwgd2l0aF9uY3Vyc2VzPWF1dG8KKykKK0FNX0NPTkRJVElPTkFMKEhBVkVfTkNVUlNFUywgZmFsc2UpCisKK2lmIHRlc3QgIngkd2l0aF9uY3Vyc2VzIiAhPSB4bm87IHRoZW4KKyAgaGF2ZV9uY3Vyc2VzPW5vCisgIEFDX0NIRUNLX0hFQURFUlMoW25jdXJzZXMuaCBuY3Vyc2VzL25jdXJzZXMuaF0sIFsKKyAgICBpZiB0ZXN0ICJ4JHdpdGhfbmN1cnNlcyIgPSB4YXV0bzsgdGhlbgorICAgICAgVVRJTF9DSEVDS19MSUIobmN1cnNlc3csIGluaXRzY3IsIG5jdXJzZXMpCisgICAgICBpZiB0ZXN0ICJ4JGhhdmVfbmN1cnNlcyIgPSB4eWVzOyB0aGVuCisgICAgICAgIE5DVVJTRVNfTElCUz0iLWxuY3Vyc2VzdyIKKyAgICAgIGZpCisgICAgZmkKKyAgICBpZiB0ZXN0ICJ4JGhhdmVfbmN1cnNlcyIgPSB4bm87IHRoZW4KKyAgICAgIFVUSUxfQ0hFQ0tfTElCKG5jdXJzZXMsIGluaXRzY3IpCisgICAgICBpZiB0ZXN0ICJ4JGhhdmVfbmN1cnNlcyIgPSB4eWVzOyB0aGVuCisgICAgICAgIE5DVVJTRVNfTElCUz0iLWxuY3Vyc2VzIgorICAgICAgZmkKKyAgICBmaQorICBdKQorICBpZiB0ZXN0ICJ4JGhhdmVfbmN1cnNlcyIgPSB4bm87IHRoZW4KKyAgICBBQ19NU0dfRVJST1IoW25jdXJzZXMgb3IgbmN1cnNlc3cgc2VsZWN0ZWQsIGJ1dCBsaWJyYXJ5IG5vdCBmb3VuZCAoLS13aXRob3V0LW5jdXJzZXMgdG8gZGlzYWJsZSldKQorICBmaQorZmkKK0FDX1NVQlNUKFtOQ1VSU0VTX0xJQlNdKQorCisKK0FDX0FSR19XSVRIKFtzbGFuZ10sCisgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtc2xhbmddLCBbY29tcGlsZSBjZmRpc2sgd2l0aCBzbGFuZ10pLAorICBbXSwgd2l0aF9zbGFuZz1ubworKQorCitoYXZlX3RpbmZvPW5vCitBQ19DSEVDS19MSUIodGluZm8sIHRnZXRlbnQsIFtoYXZlX3RpbmZvPXllc10pCitBTV9DT05ESVRJT05BTChIQVZFX1RJTkZPLCB0ZXN0ICJ4JGhhdmVfdGluZm8iID0geHllcykKKwordXNlX3NsYW5nPW5vCitpZiB0ZXN0ICJ4JHdpdGhfc2xhbmciID0geHllczsgdGhlbgorICBBQ19DSEVDS19IRUFERVJTKFtzbGN1cnNlcy5oIHNsYW5nL3NsY3Vyc2VzLmhdLCBbdXNlX3NsYW5nPXllc10pCisgIGlmIHRlc3QgIngkdXNlX3NsYW5nIiA9IHhubzsgdGhlbgorICAgIEFDX01TR19FUlJPUihbc2xhbmcgc2VsZWN0ZWQgYnV0IHNsY3Vyc2VzLmggbm90IGZvdW5kXSkKKyAgZmkKK2ZpCitBTV9DT05ESVRJT05BTChVU0VfU0xBTkcsIHRlc3QgIngkdXNlX3NsYW5nIiA9IHh5ZXMpCisKKworQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2RlZmluZSBfWE9QRU5fU09VUkNFCisjaW5jbHVkZSA8dW5pc3RkLmg+CitdXSwgW1sKK2NoYXIgKmMgPSBjcnlwdCgiYWJjIiwicHciKTsKK11dKV0sW10sWworICBMSUJTPSIkTElCUyAtbGNyeXB0IgorICBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisgICNkZWZpbmUgX1hPUEVOX1NPVVJDRQorICAjaW5jbHVkZSA8dW5pc3RkLmg+CisgIF1dLCBbWworICBjaGFyICpjID0gY3J5cHQoImFiYyIsInB3Iik7CisgIF1dKV0sWworICBBQ19ERUZJTkUoTkVFRF9MSUJDUllQVCwgMSwgW0RvIHdlIG5lZWQgLWxjcnlwdD9dKQorICBuZWVkX2xpYmNyeXB0PXllcworICBdLFsKKyAgQUNfTVNHX0VSUk9SKFtjcnlwdCgpIGlzIG5vdCBhdmFpbGFibGVdKQorICBdKQorXSkKKworQU1fQ09ORElUSU9OQUwoTkVFRF9MSUJDUllQVCwgdGVzdCAieCRuZWVkX2xpYmNyeXB0IiA9IHh5ZXMpCisKK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKyNpbmNsdWRlIDxzdGRpby5oPgorXV0sIFtbCitwcmludGYoX19wcm9nbmFtZSk7CitdXSldLAorW0FDX0RFRklORShIQVZFX19fUFJPR05BTUUsIDEsIERvIHdlIGhhdmUgX19wcm9nbmFtZT8pCitdKQorCisKK0FDX0NIRUNLX1RZUEVTKFt1bmlvbiBzZW11bl0sIFtdLCBbXSwgW1sKKyNpbmNsdWRlIDxzeXMvc2VtLmg+CitdXSkKKworCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisjaW5jbHVkZSA8d2NoYXIuaD4KKyNpbmNsdWRlIDx3Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorXV0sIFtbCisgIHdjaGFyX3Qgd2M7CisgIHdpbnRfdCB3OworICB3ID0gZmdldHdjKHN0ZGluKTsKKyAgaWYgKHcgPT0gV0VPRikgZXhpdCgxKTsKKyAgd2MgPSB3OworICBmcHV0d2Mod2Msc3Rkb3V0KTsKK11dKV0sCitbQUNfREVGSU5FKEhBVkVfV0lERUNIQVIsMSxEbyB3ZSBoYXZlIHdpZGUgY2hhcmFjdGVyIHN1cHBvcnQ/KQorXSkKKworCitkbmwgVVRJTF9DSEVDS19TWVNDQUxMKFNZU0NBTEwsIEZBTExCQUNLLCAuLi4pCitkbmwgT25seSBzcGVjaWZ5IEZBTExCQUNLIGlmIHRoZSBTWVNDQUxMCitkbmwgeW91J3JlIGNoZWNraW5nIGZvciBpcyBhICJuZXdpc2giIG9uZQorZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtVVElMX0NIRUNLX1NZU0NBTExdLCBbCisgIGRubCBUaGlzIG1hY3JvIHVzZXMgaG9zdF9jcHUuCisgIEFDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSkKKyAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBzeXNjYWxsICQxXSwKKyAgICBbdXRpbF9jdl9zeXNjYWxsXyQxXSwKKyAgICBbX1VUSUxfU1lTQ0FMTF9DSEVDS19ERUNMKFtTWVNfJDFdLAorICAgICAgW3N5c2NhbGw9U1lTXyQxXSwKKyAgICAgIFtkbmwgT3VyIGxpYmMgZmFpbGVkIHVzZSwgc28gc2VlIGlmIHdlIGNhbiBnZXQgdGhlIGtlcm5lbAorICAgICAgZG5sIGhlYWRlcnMgdG8gcGxheSBiYWxsIC4uLgorICAgICAgX1VUSUxfU1lTQ0FMTF9DSEVDS19ERUNMKFtfTlJfJDFdLAorCVtzeXNjYWxsPV9OUl8kMV0sCisJWworCSAgc3lzY2FsbD1ubworCSAgaWYgdGVzdCAieCRsaW51eF9vcyIgPSB4eWVzOyB0aGVuCisJICAgIGNhc2UgJGhvc3RfY3B1IGluCisJICAgICAgX1VUSUxfQ0hFQ0tfU1lTQ0FMTF9GQUxMQkFDSyhtNF9zaGlmdCgkQCkpCisJICAgIGVzYWMKKwkgIGZpCisgICAgICAgIF0pCisgICAgICBdKQorICAgIHV0aWxfY3Zfc3lzY2FsbF8kMT0kc3lzY2FsbAorICAgIF0pCisgIEFNX0NPTkRJVElPTkFMKFtIQVZFX11tNF90b3VwcGVyKCQxKSwgW3Rlc3QgIngkdXRpbF9jdl9zeXNjYWxsXyQxIiAhPSB4bm9dKQorICBjYXNlICR1dGlsX2N2X3N5c2NhbGxfJDEgaW4gIygKKyAgbm8pIEFDX01TR19XQVJOKFtVbmFibGUgdG8gZGV0ZWN0IHN5c2NhbGwgJDEuXSkgOzsKKyAgU1lTXyopIDs7CisgICopIEFDX0RFRklORV9VTlFVT1RFRChbU1lTXyQxXSwgWyR1dGlsX2N2X3N5c2NhbGxfJDFdLAorCVtGYWxsYmFjayBzeXNjYWxsIG51bWJlciBmb3IgJDFdKSA7OworICBlc2FjCitdKQorCitkbmwgX1VUSUxfU1lTQ0FMTF9DSEVDS19ERUNMKFNZTUJPTCwgQUNUSU9OLUlGLUZPVU5ELCBBQ1RJT04tSUYtTk9ULUZPVU5EKQorZG5sIENoZWNrIGlmIFNZTUJPTCBpcyBkZWNsYXJlZCwgdXNpbmcgdGhlIGhlYWRlcnMgbmVlZGVkIGZvciBzeXNjYWxsIGNoZWNrcy4KK2RubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW19VVElMX1NZU0NBTExfQ0hFQ0tfREVDTF0sCitbQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CitdXSwgW1tpbnQgdGVzdCA9ICQxO11dKV0sCitbJDJdLCBbJDNdKQorXSkKKworZG5sIF9VVElMX0NIRUNLX1NZU0NBTExfRkFMTEJBQ0soUEFUVEVSTiwgVkFMVUUsIC4uLikKK2RubCBIZWxwZXIgbWFjcm8gdG8gY3JlYXRlIHRoZSBib2R5IGZvciB0aGUgYWJvdmUgYGNhc2UnLgorZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbX1VUSUxfQ0hFQ0tfU1lTQ0FMTF9GQUxMQkFDS10sCitbbTRfaWZ2YWwoWyQxXSwKKyAgWyMoCisgICQxKSBzeXNjYWxsPSIkMiIgOztkbmwKKyAgX1VUSUxfQ0hFQ0tfU1lTQ0FMTF9GQUxMQkFDSyhtNF9zaGlmdG4oMiwgJEApKV0pZG5sCitdKQorCisKK1VUSUxfQ0hFQ0tfU1lTQ0FMTChbcGl2b3Rfcm9vdF0pCitVVElMX0NIRUNLX1NZU0NBTEwoW3NjaGVkX2dldGFmZmluaXR5XSkKK1VUSUxfQ0hFQ0tfU1lTQ0FMTChbaW9wcmlvX3NldF0sCisgIFthbHBoYV0sICAgIFs0NDJdLAorICBbaSo4Nl0sICAgICBbMjg5XSwKKyAgW2lhNjQqXSwgICAgWzEyNzRdLAorICBbcG93ZXJwYypdLCBbMjczXSwKKyAgW3MzOTAqXSwgICAgWzI4Ml0sCisgIFtzcGFyYypdLCAgIFsxOTZdLAorICBbc2gqXSwgICAgICBbMjg4XSwKKyAgW3g4Nl82NCpdLCAgWzI1MV0pCitVVElMX0NIRUNLX1NZU0NBTEwoW2lvcHJpb19nZXRdLAorICBbYWxwaGFdLCAgICBbNDQzXSwKKyAgW2kqODZdLCAgICAgWzI5MF0sCisgIFtpYTY0Kl0sICAgIFsxMjc1XSwKKyAgW3Bvd2VycGMqXSwgWzI3NF0sCisgIFtzMzkwKl0sICAgIFsyODNdLAorICBbc3BhcmMqXSwgICBbMjE4XSwKKyAgW3NoKl0sICAgICAgWzI4OV0sCisgIFt4ODZfNjQqXSwgIFsyNTJdKQorCitkbmwgZmFsbG9jYXRlIGNvdWxkIGJlIGF2YWlsYWJsZSBhcyBsaWJjIGZ1bmN0aW9uIG9yIGFzIHN5c2NhbGwgb25seQorVVRJTF9DSEVDS19TWVNDQUxMKFtmYWxsb2NhdGVdKQorQUNfQ0hFQ0tfRlVOQ1MoW2ZhbGxvY2F0ZV0pCisKK2RubCB1bnNoYXJlIGNvdWxkIGJlIGF2YWlsYWJsZSBhcyBsaWJjIGZ1bmN0aW9uIG9yIGFzIHN5c2NhbGwgb25seQorVVRJTF9DSEVDS19TWVNDQUxMKFt1bnNoYXJlXSkKK0FDX0NIRUNLX0ZVTkNTKFt1bnNoYXJlXSkKKworQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KK11dLCBbWworICAgIGludCBhID0gMDsKKyAgICBzdHJ1Y3QgdG0gKnRtID0gbG9jYWx0aW1lKDApOworICAgIGlmIChhID09IC0xKSAgLyogZmFsc2UgKi8KKyAgICAgICAgc2xlZXAodG0tPnRtX2dtdG9mZik7CitdXSldLAorW0FDX0RFRklORShIQVZFX1RNX0dNVE9GRiwxLFtEb2VzIHN0cnVjdCB0bSBoYXZlIGEgZmllbGQgdG1fZ210b2ZmP10pCitdKQorCitBQ19DSEVDS19NRU1CRVJTKFtzdHJ1Y3QgdGVybWlvcy5jX2xpbmVdLCwsCisgICAgW1sjaW5jbHVkZSA8dGVybWlvcy5oPl1dKQorCitBQ19DSEVDS19ERUNMUyhbCisgQUREUl9OT19SQU5ET01JWkUsCisgRkRQSUNfRlVOQ1BUUlMsCisgTU1BUF9QQUdFX1pFUk8sCisgQUREUl9DT01QQVRfTEFZT1VULAorIFJFQURfSU1QTElFU19FWEVDLAorIEFERFJfTElNSVRfMzJCSVQsCisgV0hPTEVfU0VDT05EUywKKyBTVElDS1lfVElNRU9VVFMsCisgQUREUl9MSU1JVF8zR0JdLCBbXSwgW10sIFsjaW5jbHVkZSA8bGludXgvcGVyc29uYWxpdHkuaD5dKQorCitBQ19DSEVDS19IRUFERVJTKFtzeXMvc3dhcC5oXSkKKworQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTSgKK1tbCisjaWZkZWYgSEFWRV9TWVNfU1dBUF9ICisjIGluY2x1ZGUgPHN5cy9zd2FwLmg+CisjZW5kaWYKKyNpbmNsdWRlIDx1bmlzdGQuaD4KK11dLAorW1tzd2Fwb24oIi9kZXYvbnVsbCIsIDApO11dKV0sCitbQUNfREVGSU5FKFNXQVBPTl9IQVNfVFdPX0FSR1MsIDEsIFtJcyBzd2Fwb24oKSBkZWNsYXJlZCB3aXRoIHR3byBwYXJhbWV0ZXJzP10pCitdLAorW0FDX01TR19OT1RJQ0UoW1lvdXIgbGliYyB0aGlua3MgdGhhdCBzd2Fwb24gaGFzIDEgYXJnIG9ubHkuXSkKK10pCisKKworZG5sIFVUSUxfU0VUX0FSQ0goQVJDSE5BTUUsIFBBVFRFUk4pCitkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbVVRJTF9TRVRfQVJDSF0sIFsKKyAgY3B1XyQxPWZhbHNlCisgIGNhc2UgIiRob3N0IiBpbgorICAgJDIpIGNwdV8kMT10cnVlIDs7CisgIGVzYWMKKyAgQU1fQ09ORElUSU9OQUwoQVNfVFJfQ1BQKEFSQ0hfJDEpLCBbdGVzdCAieCRjcHVfJDEiID0geHRydWVdKQorXSkKKworVVRJTF9TRVRfQVJDSChJODYsIGk/ODYtKikKK1VUSUxfU0VUX0FSQ0goODZfNjQsIHg4Nl82NCopCitVVElMX1NFVF9BUkNIKElBNjQsIGlhNjQqKQorVVRJTF9TRVRfQVJDSChTMzkwLCBzMzkwKikKK1VUSUxfU0VUX0FSQ0goU1BBUkMsIHNwYXJjKikKK1VUSUxfU0VUX0FSQ0goUFBDLCBwcGMqfHBvd2VycGMqKQorVVRJTF9TRVRfQVJDSChNNjhLLCBtNjgqKQorVVRJTF9TRVRfQVJDSChNSVBTLCBtaXBzKikKK1VUSUxfU0VUX0FSQ0goSFBQQSwgaHBwYSopCisKK0FDX0FSR19FTkFCTEUoW2FyY2hdLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtYXJjaF0sIFtkbyBidWlsZCBhcmNoXSksCisgIFtdLCBlbmFibGVfYXJjaD1ubworKQorQU1fQ09ORElUSU9OQUwoQlVJTERfQVJDSCwgdGVzdCAieCRlbmFibGVfYXJjaCIgPSB4eWVzKQorCitBQ19BUkdfRU5BQkxFKFthZ2V0dHldLAorICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWFnZXR0eV0sIFtkbyBub3QgYnVpbGQgYWdldHR5XSksCisgIFtdLCBlbmFibGVfYWdldHR5PXllcworKQorQU1fQ09ORElUSU9OQUwoQlVJTERfQUdFVFRZLCB0ZXN0ICJ4JGVuYWJsZV9hZ2V0dHkiID0geHllcykKKworQUNfQVJHX0VOQUJMRShbY3JhbWZzXSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1jcmFtZnNdLCBbZG8gbm90IGJ1aWxkIGZzY2suY3JhbWZzLCBta2ZzLmNyYW1mc10pLAorICBbXSwgZW5hYmxlX2NyYW1mcz1jaGVjaworKQorCitpZiB0ZXN0ICJ4JGVuYWJsZV9jcmFtZnMiID0geG5vOyB0aGVuCisgIGJ1aWxkX2NyYW1mcz1ubworZWxzZQorICBidWlsZF9jcmFtZnM9eWVzCisgIGRubCBUcmljazogbGVhdmUgdGhlIHRoaXJkIHBhcmFtZXRlciBlbXB0eSB0byBnZXQgdGhlIGRlZmF1bHQgYWN0aW9uLgorICBBQ19DSEVDS19MSUIoeiwgY3JjMzIsIFtdLCBidWlsZF9jcmFtZnM9bm8pCisgIGNhc2UgJGVuYWJsZV9jcmFtZnM6JGJ1aWxkX2NyYW1mcyBpbgorICB5ZXM6bm8pIEFDX01TR19FUlJPUihbY3JhbWZzIHNlbGVjdGVkIGJ1dCBsaWJ6IG5vdCBmb3VuZF0pOzsKKyAgZXNhYworZmkKK0FNX0NPTkRJVElPTkFMKEJVSUxEX0NSQU1GUywgdGVzdCAieCRidWlsZF9jcmFtZnMiID0geHllcykKKworCitBQ19BUkdfRU5BQkxFKFtzd2l0Y2hfcm9vdF0sCisgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtc3dpdGNoX3Jvb3RdLCBbZG8gbm90IGJ1aWxkIHN3aXRjaF9yb290XSksCisgIFtdLCBlbmFibGVfc3dpdGNoX3Jvb3Q9Y2hlY2sKKykKK2lmIHRlc3QgIngkZW5hYmxlX3N3aXRjaF9yb290IiA9IHhubzsgdGhlbgorICBidWlsZF9zd2l0Y2hfcm9vdD1ubworZWxzZQorICBidWlsZF9zd2l0Y2hfcm9vdD15ZXMKKyAgY2FzZSAkZW5hYmxlX3N3aXRjaF9yb290OiRsaW51eF9vcyBpbgorICB5ZXM6bm8pIEFDX01TR19FUlJPUihbc3dpdGNoX3Jvb3Qgc2VsZWN0ZWQgZm9yIG5vbi1saW51eCBzeXN0ZW1dKTs7CisgIGNoZWNrOm5vKSBBQ19NU0dfV0FSTihbbm9uLWxpbnV4IHN5c3RlbTsgZG8gbm90IGJ1aWxkIHN3aXRjaF9yb290XSkKKyAgICAgICAgICAgIGJ1aWxkX3N3aXRjaF9yb290PW5vOzsKKyAgZXNhYworICBpZiB0ZXN0ICJ4JGJ1aWxkX3N3aXRjaF9yb290IiA9IHh5ZXM7IHRoZW4KKyAgICBjYXNlICRlbmFibGVfc3dpdGNoX3Jvb3Q6JGhhdmVfb3BlbmF0IGluCisgICAgeWVzOm5vKSBBQ19NU0dfRVJST1IoW3N3aXRjaF9yb290IHNlbGVjdGVkIGJ1dCBvcGVuYXQoKSBmdW5jdGlvbiBub3QgZm91bmRdKTs7CisgICAgY2hlY2s6bm8pIEFDX01TR19XQVJOKFtvcGVuYXQoKSBmdW5jdGlvbiBub3QgZm91bmQ7IGRvIG5vdCBidWlsZCBzd2l0Y2hfcm9vdF0pCisgICAgICAgICAgICAgIGJ1aWxkX3N3aXRjaF9yb290PW5vOzsKKyAgICBlc2FjCisgIGZpCitmaQorQU1fQ09ORElUSU9OQUwoQlVJTERfU1dJVENIX1JPT1QsIHRlc3QgIngkYnVpbGRfc3dpdGNoX3Jvb3QiID0geHllcykKKworCitBQ19BUkdfRU5BQkxFKFtwaXZvdF9yb290XSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1waXZvdF9yb290XSwgW2RvIG5vdCBidWlsZCBwaXZvdF9yb290XSksCisgIFtdLCBlbmFibGVfcGl2b3Rfcm9vdD1jaGVjaworKQoraWYgdGVzdCAieCRlbmFibGVfcGl2b3Rfcm9vdCIgPSB4bm87IHRoZW4KKyAgYnVpbGRfcGl2b3Rfcm9vdD1ubworZWxzZQorICBidWlsZF9waXZvdF9yb290PXllcworICBjYXNlICRlbmFibGVfcGl2b3Rfcm9vdDokbGludXhfb3MgaW4KKyAgeWVzOm5vKSBBQ19NU0dfRVJST1IoW3Bpdm90X3Jvb3Qgc2VsZWN0ZWQgZm9yIG5vbi1saW51eCBzeXN0ZW1dKTs7CisgIGNoZWNrOm5vKSBBQ19NU0dfV0FSTihbbm9uLWxpbnV4IHN5c3RlbTsgZG8gbm90IGJ1aWxkIHBpdm90X3Jvb3RdKQorICAgICAgICAgICAgYnVpbGRfcGl2b3Rfcm9vdD1ubzs7CisgIGVzYWMKKyAgaWYgdGVzdCAieCRidWlsZF9waXZvdF9yb290IiA9IHh5ZXM7IHRoZW4KKyAgICBjYXNlICRlbmFibGVfcGl2b3Rfcm9vdDokdXRpbF9jdl9zeXNjYWxsX3Bpdm90X3Jvb3QgaW4KKyAgICB5ZXM6bm8pIEFDX01TR19FUlJPUihbcGl2b3Rfcm9vdCBzZWxlY3RlZCBidXQgcGl2b3Rfcm9vdCBzeXNjYWxsIG5vdCBmb3VuZF0pOzsKKyAgICBjaGVjazpubykgQUNfTVNHX1dBUk4oW3Bpdm90X3Jvb3Qgc3lzY2FsbCBub3QgZm91bmQ7IGRvIG5vdCBidWlsZCBwaXZvdF9yb290XSkKKyAgICAgICAgICAgICAgYnVpbGRfcGl2b3Rfcm9vdD1ubzs7CisgICAgZXNhYworICBmaQorZmkKK0FNX0NPTkRJVElPTkFMKEJVSUxEX1BJVk9UX1JPT1QsIHRlc3QgIngkYnVpbGRfcGl2b3Rfcm9vdCIgPSB4eWVzKQorCisKK0FDX0FSR19FTkFCTEUoW2ZhbGxvY2F0ZV0sCisgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtZmFsbG9jYXRlXSwgW2RvIG5vdCBidWlsZCBmYWxsb2NhdGVdKSwKKyAgW10sIGVuYWJsZV9mYWxsb2NhdGU9Y2hlY2sKKykKK2lmIHRlc3QgIngkZW5hYmxlX2ZhbGxvY2F0ZSIgPSB4bm87IHRoZW4KKyAgYnVpbGRfZmFsbG9jYXRlPW5vCitlbHNlCisgIGJ1aWxkX2ZhbGxvY2F0ZT15ZXMKKyAgY2FzZSAkZW5hYmxlX2ZhbGxvY2F0ZTokbGludXhfb3MgaW4KKyAgeWVzOm5vKSBBQ19NU0dfRVJST1IoW2ZhbGxvY2F0ZSBzZWxlY3RlZCBmb3Igbm9uLWxpbnV4IHN5c3RlbV0pOzsKKyAgY2hlY2s6bm8pIEFDX01TR19XQVJOKFtub24tbGludXggc3lzdGVtOyBkbyBub3QgYnVpbGQgZmFsbG9jYXRlXSkKKyAgICAgICAgICAgIGJ1aWxkX2ZhbGxvY2F0ZT1ubzs7CisgIGVzYWMKKyAgaWYgdGVzdCAieCRidWlsZF9mYWxsb2NhdGUiID0geHllczsgdGhlbgorICAgIGNhc2UgJGVuYWJsZV9mYWxsb2NhdGU6JHV0aWxfY3Zfc3lzY2FsbF9mYWxsb2NhdGUgaW4KKyAgICB5ZXM6bm8pIEFDX01TR19FUlJPUihbZmFsbG9jYXRlIHNlbGVjdGVkIGJ1dCBmYWxsb2NhdGUgc3lzY2FsbCBub3QgZm91bmRdKTs7CisgICAgY2hlY2s6bm8pIEFDX01TR19XQVJOKFtmYWxsb2NhdGUgc3lzY2FsbCBub3QgZm91bmQ7IGRvIG5vdCBidWlsZCBmYWxsb2NhdGVdKQorICAgICAgICAgICAgICBidWlsZF9mYWxsb2NhdGU9bm87OworICAgIGVzYWMKKyAgZmkKK2ZpCitBTV9DT05ESVRJT05BTChCVUlMRF9GQUxMT0NBVEUsIHRlc3QgIngkYnVpbGRfZmFsbG9jYXRlIiA9IHh5ZXMpCisKKworQUNfQVJHX0VOQUJMRShbdW5zaGFyZV0sCisgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtdW5zaGFyZV0sIFtkbyBub3QgYnVpbGQgdW5zaGFyZV0pLAorICBbXSwgZW5hYmxlX3Vuc2hhcmU9Y2hlY2sKKykKK2lmIHRlc3QgIngkZW5hYmxlX3Vuc2hhcmUiID0geG5vOyB0aGVuCisgIGJ1aWxkX3Vuc2hhcmU9bm8KK2Vsc2UKKyAgYnVpbGRfdW5zaGFyZT15ZXMKKyAgY2FzZSAkZW5hYmxlX3Vuc2hhcmU6JGxpbnV4X29zIGluCisgIHllczpubykgQUNfTVNHX0VSUk9SKFt1bnNoYXJlIHNlbGVjdGVkIGZvciBub24tbGludXggc3lzdGVtXSk7OworICBjaGVjazpubykgQUNfTVNHX1dBUk4oW25vbi1saW51eCBzeXN0ZW07IGRvIG5vdCBidWlsZCB1bnNoYXJlXSkKKyAgICAgICAgICAgIGJ1aWxkX3Vuc2hhcmU9bm87OworICBlc2FjCisgIGlmIHRlc3QgIngkYnVpbGRfdW5zaGFyZSIgPSB4eWVzOyB0aGVuCisgICAgY2FzZSAkZW5hYmxlX3Vuc2hhcmU6JHV0aWxfY3Zfc3lzY2FsbF91bnNoYXJlIGluCisgICAgeWVzOm5vKSBBQ19NU0dfRVJST1IoW3Vuc2hhcmUgc2VsZWN0ZWQgYnV0IHVuc2hhcmUgc3lzY2FsbCBub3QgZm91bmRdKTs7CisgICAgY2hlY2s6bm8pIEFDX01TR19XQVJOKFt1bnNoYXJlIHN5c2NhbGwgbm90IGZvdW5kOyBkbyBub3QgYnVpbGQgdW5zaGFyZV0pCisgICAgICAgICAgICAgIGJ1aWxkX3Vuc2hhcmU9bm87OworICAgIGVzYWMKKyAgZmkKK2ZpCitBTV9DT05ESVRJT05BTChCVUlMRF9VTlNIQVJFLCB0ZXN0ICJ4JGJ1aWxkX3Vuc2hhcmUiID0geHllcykKKworCisKK0FDX0FSR19FTkFCTEUoW2VsdnR1bmVdLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZWx2dHVuZV0sIFtidWlsZCBlbHZ0dW5lIChvbmx5IHdvcmtzIHdpdGggMi4yIGFuZCAyLjQga2VybmVscyldKSwKKyAgW10sIGVuYWJsZV9lbHZ0dW5lPW5vCispCitBTV9DT05ESVRJT05BTChCVUlMRF9FTFZUVU5FLCB0ZXN0ICJ4JGVuYWJsZV9lbHZ0dW5lIiA9IHh5ZXMpCisKKworQUNfQVJHX0VOQUJMRShbaW5pdF0sCisgIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1pbml0XSwgW2J1aWxkIHNpbXBsZWluaXQsIHNodXRkb3duLCBpbml0Y3RsXSksCisgIFtdLCBlbmFibGVfaW5pdD1ubworKQorQU1fQ09ORElUSU9OQUwoQlVJTERfSU5JVCwgdGVzdCAieCRlbmFibGVfaW5pdCIgPSB4eWVzKQorCisKK0FDX0FSR19FTkFCTEUoW2tpbGxdLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUta2lsbF0sIFtidWlsZCBraWxsXSksCisgIFtdLCBlbmFibGVfa2lsbD1ubworKQorQU1fQ09ORElUSU9OQUwoQlVJTERfS0lMTCwgdGVzdCAieCRlbmFibGVfa2lsbCIgPSB4eWVzKQorCisKK0FDX0FSR19FTkFCTEUoW2xhc3RdLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbGFzdF0sIFtidWlsZCBsYXN0XSksCisgIFtdLCBlbmFibGVfbGFzdD1ubworKQorQU1fQ09ORElUSU9OQUwoQlVJTERfTEFTVCwgdGVzdCAieCRlbmFibGVfbGFzdCIgPSB4eWVzKQorCisKK0FDX0FSR19FTkFCTEUoW21lc2ddLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbWVzZ10sIFtidWlsZCBtZXNnXSksCisgIFtdLCBlbmFibGVfbWVzZz1ubworKQorQU1fQ09ORElUSU9OQUwoQlVJTERfTUVTRywgdGVzdCAieCRlbmFibGVfbWVzZyIgPSB4eWVzKQorCisKK0FDX0FSR19FTkFCTEUoW3BhcnR4XSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBhcnR4XSwgW2J1aWxkIGFkZHBhcnQsIGRlbHBhcnQsIHBhcnR4XSksCisgIFtdLCBlbmFibGVfcGFydHg9bm8KKykKK0FNX0NPTkRJVElPTkFMKEJVSUxEX1BBUlRYLCB0ZXN0ICJ4JGVuYWJsZV9wYXJ0eCIgPSB4eWVzKQorCisKK0FDX0FSR19FTkFCTEUoW3Jhd10sCisgIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1yYXddLCBbYnVpbGQgcmF3XSksCisgIFtdLCBlbmFibGVfcmF3PW5vCispCitBTV9DT05ESVRJT05BTChCVUlMRF9SQVcsIHRlc3QgIngkZW5hYmxlX3JhdyIgPSB4eWVzKQorCisKK0FDX0FSR19FTkFCTEUoW3JkZXZdLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtcmRldl0sIFtidWlsZCByZGV2IG9uIGkzODZdKSwKKyAgW10sIGVuYWJsZV9yZGV2PW5vCispCitBTV9DT05ESVRJT05BTChCVUlMRF9SREVWLCB0ZXN0ICJ4JGVuYWJsZV9yZGV2IiA9IHh5ZXMpCisKKworQUNfQVJHX0VOQUJMRShbcmVuYW1lXSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1yZW5hbWVdLCBbZG8gbm90IGJ1aWxkIHJlbmFtZV0pLAorICBbXSwgZW5hYmxlX3JlbmFtZT15ZXMKKykKK0FNX0NPTkRJVElPTkFMKEJVSUxEX1JFTkFNRSwgdGVzdCAieCRlbmFibGVfcmVuYW1lIiA9IHh5ZXMpCisKKworQUNfQVJHX0VOQUJMRShbcmVzZXRdLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtcmVzZXRdLCBbYnVpbGQgcmVzZXRdKSwKKyAgW10sIGVuYWJsZV9yZXNldD1ubworKQorQU1fQ09ORElUSU9OQUwoQlVJTERfUkVTRVQsIHRlc3QgIngkZW5hYmxlX3Jlc2V0IiA9IHh5ZXMpCisKKworQUNfQVJHX0VOQUJMRShbbG9naW4tdXRpbHNdLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbG9naW4tdXRpbHNdLCBbYnVpbGQgY2hmbiwgY2hzaCwgbG9naW4sIG5ld2dycCwgdmlwd10pLAorICBbXSwgZW5hYmxlX2xvZ2luX3V0aWxzPW5vCispCitBTV9DT05ESVRJT05BTChCVUlMRF9MT0dJTl9VVElMUywgdGVzdCAieCRlbmFibGVfbG9naW5fdXRpbHMiID0geHllcykKKworQUNfQVJHX1dJVEgoW3BhbV0sCisgIFtBU19IRUxQX1NUUklORyhbLS13aXRob3V0LXBhbV0sIFtjb21waWxlIGxvZ2luLXV0aWxzIHdpdGhvdXQgUEFNIHN1cHBvcnRdKV0pCisKK0FNX0NPTkRJVElPTkFMKEhBVkVfUEFNLCBmYWxzZSkKK2lmIHRlc3QgIngkZW5hYmxlX2xvZ2luX3V0aWxzIiA9IHh5ZXMgJiYgdGVzdCAieCR3aXRoX3BhbSIgIT0geG5vOyB0aGVuCisgIEFDX0NIRUNLX0hFQURFUlMoW3NlY3VyaXR5L3BhbV9taXNjLmhdLAorICAgIFtBTV9DT05ESVRJT05BTChIQVZFX1BBTSwgdHJ1ZSldLAorICAgIFtpZiB0ZXN0ICJ4JHdpdGhfcGFtIiA9IHh5ZXM7IHRoZW4KKwlBQ19NU0dfRVJST1IoW1BBTSBzZWxlY3RlZCBidXQgc2VjdXJpdHkvcGFtX21pc2MuaCBub3QgZm91bmRdKQorICAgICBmaQorICAgIF0pCitmaQorCitBQ19BUkdfV0lUSChbc2VsaW51eF0sCisgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtc2VsaW51eF0sIFtjb21waWxlIHdpdGggU0VMaW51eCBzdXBwb3J0XSksCisgIFtdLCB3aXRoX3NlbGludXg9bm8KKykKKworaWYgdGVzdCAieCR3aXRoX3NlbGludXgiID0geG5vOyB0aGVuCisgIEFNX0NPTkRJVElPTkFMKEhBVkVfU0VMSU5VWCwgZmFsc2UpCitlbHNlCisgIFVUSUxfQ0hFQ0tfTElCKHNlbGludXgsIGdldHByZXZjb24pCisgIGNhc2UgIiR3aXRoX3NlbGludXg6JGhhdmVfc2VsaW51eCIgaW4KKyAgeWVzOm5vKSBBQ19NU0dfRVJST1IoW1NFTGludXggc2VsZWN0ZWQgYnV0IGxpYnNlbGludXggbm90IGZvdW5kXSk7OworICBlc2FjCitmaQorCitpZiB0ZXN0ICJ4JGhhdmVfc2VsaW51eCIgPSB4eWVzOyB0aGVuCisgIFNFTElOVVhfTElCUz0iLWxzZWxpbnV4IC1sc2Vwb2wiCisgIFNFTElOVVhfTElCU19TVEFUSUM9Ii1sc2VsaW51eCAtbHNlcG9sIgorICBvbGRfTERGTEFHUz0iJExERkxBR1MiCisgIExERkxBR1M9IiRMREZMQUdTICRTRUxJTlVYX0xJQlMiCisgICMgVGhpcyBmdW5jdGlvbiBpcyBtaXNzaW5nIGluIG9sZCBsaWJzZWxpbnV4IDEueHggdmVyc2lvbnMKKyAgQUNfQ0hFQ0tfRlVOQ1MoW3NlY3VyaXR5X2dldF9pbml0aWFsX2NvbnRleHRdKQorICBMREZMQUdTPSIkb2xkX0xERkxBR1MiCitmaQorQUNfU1VCU1QoW1NFTElOVVhfTElCU10pCitBQ19TVUJTVChbU0VMSU5VWF9MSUJTX1NUQVRJQ10pCisKK0FDX0FSR19XSVRIKFthdWRpdF0sCisgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtYXVkaXRdLCBbY29tcGlsZSB3aXRoIGF1ZGl0IHN1cHBvcnRdKSwKKyAgW10sIHdpdGhfYXVkaXQ9bm8KKykKKworaWYgdGVzdCAieCR3aXRoX2F1ZGl0IiA9IHhubzsgdGhlbgorICBBTV9DT05ESVRJT05BTChIQVZFX0FVRElULCBmYWxzZSkKK2Vsc2UKKyAgVVRJTF9DSEVDS19MSUIoYXVkaXQsIGF1ZGl0X2xvZ191c2VyX21lc3NhZ2UpCisgIGNhc2UgIiR3aXRoX2F1ZGl0OiRoYXZlX2F1ZGl0IiBpbgorICB5ZXM6bm8pCisgICBBQ19NU0dfRVJST1IoW0F1ZGl0IHNlbGVjdGVkIGJ1dCBsaWJhdWRpdCBub3QgZm91bmQgKG9yIGRvZXNuJ3Qgc3VwcG9ydCBhdWRpdF9sb2dfdXNlcl9tZXNzYWdlKCkpXSkKKyAgIDs7CisgIGVzYWMKK2ZpCisKK0FDX0FSR19FTkFCTEUoW3NjaGVkdXRpbHNdLAorICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLXNjaGVkdXRpbHNdLCBbZG8gbm90IGJ1aWxkIGNocnQsIGlvbmljZSwgdGVza3NldF0pLAorICBbXSwgZW5hYmxlX3NjaGVkdXRpbHM9eWVzCispCitBTV9DT05ESVRJT05BTChCVUlMRF9TQ0hFRFVUSUxTLCB0ZXN0ICJ4JGVuYWJsZV9zY2hlZHV0aWxzIiA9IHh5ZXMpCisKKworQUNfQVJHX0VOQUJMRShbd2FsbF0sCisgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtd2FsbF0sIFtkbyBub3QgYnVpbGQgd2FsbF0pLAorICBbXSwgZW5hYmxlX3dhbGw9eWVzCispCitBTV9DT05ESVRJT05BTChCVUlMRF9XQUxMLCB0ZXN0ICJ4JGVuYWJsZV93YWxsIiA9IHh5ZXMpCisKKworQUNfQVJHX0VOQUJMRShbd3JpdGVdLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtd3JpdGVdLCBbYnVpbGQgd3JpdGVdKSwKKyAgW10sIGVuYWJsZV93cml0ZT1ubworKQorQU1fQ09ORElUSU9OQUwoQlVJTERfV1JJVEUsIHRlc3QgIngkZW5hYmxlX3dyaXRlIiA9IHh5ZXMpCisKKworQUNfQVJHX0VOQUJMRShbY2hzaC1vbmx5LWxpc3RlZF0sCisgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtY2hzaC1vbmx5LWxpc3RlZF0sIFtjaHNoOiBhbGxvdyBzaGVsbHMgbm90IGluIC9ldGMvc2hlbGxzXSksCisgIFtdLCBlbmFibGVfY2hzaF9vbmx5X2xpc3RlZD15ZXMKKykKKworaWYgdGVzdCAieCRlbmFibGVfY2hzaF9vbmx5X2xpc3RlZCIgPSB4eWVzOyB0aGVuCisgIEFDX0RFRklORShPTkxZX0xJU1RFRF9TSEVMTFMsIDEsIFtTaG91bGQgY2hzaCBhbGxvdyBvbmx5IHNoZWxscyBpbiAvZXRjL3NoZWxscz9dKQorZmkKKworCitBQ19BUkdfRU5BQkxFKFtsb2dpbi1jaG93bi12Y3NdLAorICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbG9naW4tY2hvd24tdmNzXSwgW2xldCBsb2dpbiBjaG93biAvZGV2L3Zjc05dKSwKKyAgW10sIGVuYWJsZV9sb2dpbl9jaG93bl92Y3M9bm8KKykKKworaWYgdGVzdCAieCRlbmFibGVfbG9naW5fY2hvd25fdmNzIiA9IHh5ZXM7IHRoZW4KKyAgQUNfREVGSU5FKExPR0lOX0NIT1dOX1ZDUywgMSwgW1Nob3VsZCBsb2dpbiBjaG93biAvZGV2L3Zjc04/XSkKK2ZpCisKKworQUNfQVJHX0VOQUJMRShbbG9naW4tc3RhdC1tYWlsXSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWxvZ2luLXN0YXQtbWFpbF0sIFtsZXQgbG9naW4gc3RhdCgpIHRoZSBtYWlsYm94XSksCisgIFtdLCBlbmFibGVfbG9naW5fc3RhdF9tYWlsPW5vCispCisKK2lmIHRlc3QgIngkZW5hYmxlX2xvZ2luX3N0YXRfbWFpbCIgPSB4eWVzOyB0aGVuCisgIEFDX0RFRklORShMT0dJTl9TVEFUX01BSUwsIDEsIFtTaG91bGQgbG9naW4gc3RhdCgpIHRoZSBtYWlsYm94P10pCitmaQorCisKK0FDX0FSR19FTkFCTEUoW3BnLWJlbGxdLAorICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLXBnLWJlbGxdLCBbbGV0IHBnIG5vdCByaW5nIHRoZSBiZWxsIG9uIGludmFsaWQga2V5c10pLAorICBbXSwgZW5hYmxlX3BnX2JlbGw9eWVzCispCisKK2lmIHRlc3QgIngkZW5hYmxlX3BnX2JlbGwiID0geHllczsgdGhlbgorICBBQ19ERUZJTkUoUEdfQkVMTCwgMSwgW1Nob3VsZCBwZyByaW5nIHRoZSBiZWxsIG9uIGludmFsaWQga2V5cz9dKQorZmkKKworCitBQ19BUkdfRU5BQkxFKFtyZXF1aXJlLXBhc3N3b3JkXSwKKyAgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1yZXF1aXJlLXBhc3N3b3JkXSwgW2RvIG5vdCByZXF1aXJlIHRoZSB1c2VyIHRvIGVudGVyIHRoZSBwYXNzd29yZCBpbiBjaGZuIGFuZCBjaHNoXSksCisgIFtdLCBlbmFibGVfcmVxdWlyZV9wYXNzd29yZD15ZXMKKykKKworaWYgdGVzdCAieCRlbmFibGVfcmVxdWlyZV9wYXNzd29yZCIgPSB4eWVzOyB0aGVuCisgIEFDX0RFRklORShSRVFVSVJFX1BBU1NXT1JELCAxLCBbU2hvdWxkIGNoZm4gYW5kIGNoc2ggcmVxdWlyZSB0aGUgdXNlciB0byBlbnRlciB0aGUgcGFzc3dvcmQ/XSkKK2ZpCisKKworQUNfQVJHX0VOQUJMRShbdXNlLXR0eS1ncm91cF0sCisgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtdXNlLXR0eS1ncm91cF0sIFtkbyBub3QgaW5zdGFsbCB3YWxsIGFuZCB3cml0ZSBzZXRnaWQgdHR5XSksCisgIFtdLCBlbmFibGVfdXNlX3R0eV9ncm91cD15ZXMKKykKK0FNX0NPTkRJVElPTkFMKFVTRV9UVFlfR1JPVVAsIHRlc3QgIngkZW5hYmxlX3VzZV90dHlfZ3JvdXAiID0geHllcykKKworaWYgdGVzdCAieCRlbmFibGVfdXNlX3R0eV9ncm91cCIgPSB4eWVzOyB0aGVuCisgIEFDX0RFRklORShVU0VfVFRZX0dST1VQLCAxLCBbU2hvdWxkIHdhbGwgYW5kIHdyaXRlIGJlIGluc3RhbGxlZCBzZXRnaWQgdHR5P10pCitmaQorCitBQ19BUkdfRU5BQkxFKFttYWtlaW5zdGFsbC1jaG93bl0sCisgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbWFrZWluc3RhbGwtY2hvd25dLCBbZG8gbm90IGRvIGNob3duLWxpa2Ugb3BlcmF0aW9ucyBkdXJpbmcgIm1ha2UgaW5zdGFsbCJdKSwKKyAgW10sIGVuYWJsZV9tYWtlaW5zdGFsbF9jaG93bj15ZXMKKykKK0FNX0NPTkRJVElPTkFMKE1BS0VJTlNUQUxMX0RPX0NIT1dOLCB0ZXN0ICJ4JGVuYWJsZV9tYWtlaW5zdGFsbF9jaG93biIgPSB4eWVzKQorCitBQ19BUkdfRU5BQkxFKFttYWtlaW5zdGFsbC1zZXR1aWRdLAorICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLW1ha2VpbnN0YWxsLXNldHVpZF0sIFtkbyBub3QgZG8gc2V0dWlkIGNobW9kIG9wZXJhdGlvbnMgZHVyaW5nICJtYWtlIGluc3RhbGwiXSksCisgIFtdLCBlbmFibGVfbWFrZWluc3RhbGxfc2V0dWlkPXllcworKQorQU1fQ09ORElUSU9OQUwoTUFLRUlOU1RBTExfRE9fU0VUVUlELCB0ZXN0ICJ4JGVuYWJsZV9tYWtlaW5zdGFsbF9zZXR1aWQiID0geHllcykKKworCitBQ19BUkdfVkFSKFtTVUlEX0NGTEFHU10sCisJICAgW0NGTEFHUyB1c2VkIGZvciBiaW5hcmllcyB3aGljaCBhcmUgdXN1YWxseSB3aXRoIHRoZSBzdWlkIGJpdF0pCitBQ19BUkdfVkFSKFtTVUlEX0xERkxBR1NdLAorCSAgIFtMREZMQUdTIHVzZWQgZm9yIGJpbmFyaWVzIHdoaWNoIGFyZSB1c3VhbGx5IHdpdGggdGhlIHN1aWQgYml0XSkKKworTElCUz0iIgorCisKK0FDX0NPTkZJR19IRUFERVJTKGNvbmZpZy5oKQorCitBQ19DT05GSUdfRklMRVMoWworZGlzay11dGlscy9NYWtlZmlsZQorZmRpc2svTWFrZWZpbGUKK2ZzY2svTWFrZWZpbGUKK2dldG9wdC9NYWtlZmlsZQoraHdjbG9jay9NYWtlZmlsZQoraW5jbHVkZS9NYWtlZmlsZQorbGliL01ha2VmaWxlCitsb2dpbi11dGlscy9NYWtlZmlsZQorTWFrZWZpbGUKK21pc2MtdXRpbHMvY2hrZHVwZXhlOm1pc2MtdXRpbHMvY2hrZHVwZXhlLnBsCittaXNjLXV0aWxzL01ha2VmaWxlCittb3VudC9NYWtlZmlsZQorcGFydHgvTWFrZWZpbGUKK3BvL01ha2VmaWxlLmluCitzY2hlZHV0aWxzL01ha2VmaWxlCitzaGxpYnMvYmxraWQvYmxraWQucGMKK3NobGlicy9ibGtpZC9NYWtlZmlsZQorc2hsaWJzL2Jsa2lkL2RvY3MvTWFrZWZpbGUKK3NobGlicy9ibGtpZC9kb2NzL3ZlcnNpb24ueG1sCitzaGxpYnMvYmxraWQvc3JjL01ha2VmaWxlCitzaGxpYnMvYmxraWQvc3JjL2Jsa2lkLmgKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvTWFrZWZpbGUKK3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvTWFrZWZpbGUKK3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9NYWtlZmlsZQorc2hsaWJzL2Jsa2lkL3NhbXBsZXMvTWFrZWZpbGUKK3NobGlicy91dWlkL3V1aWQucGMKK3NobGlicy91dWlkL01ha2VmaWxlCitzaGxpYnMvdXVpZC9tYW4vTWFrZWZpbGUKK3NobGlicy91dWlkL3NyYy9NYWtlZmlsZQorc2hsaWJzL01ha2VmaWxlCitzeXMtdXRpbHMvTWFrZWZpbGUKK3Rlc3RzL2NvbW1hbmRzLnNoCit0ZXN0cy9oZWxwZXJzL01ha2VmaWxlCit0ZXN0cy9NYWtlZmlsZQordGV4dC11dGlscy9NYWtlZmlsZQorXSkKKworCitBQ19PVVRQVVQKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvTWFrZWZpbGUuYW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMGE2ZTQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsNzEgQEAKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorCit1dGlsc19jb21tb24gPSAuLi9saWIvYmxrZGV2LmMKK2lmIExJTlVYCit1dGlsc19jb21tb24gKz0gLi4vbGliL2xpbnV4X3ZlcnNpb24uYworZW5kaWYKKworZGlzdF9tYW5fTUFOUyA9IGlzb3NpemUuOCBta2ZzLjggbWtzd2FwLjggXAorICAgICAgICAgICBmc2NrLm1pbml4LjggbWtmcy5taW5peC44IG1rZnMuYmZzLjgKKworc2Jpbl9QUk9HUkFNUyA9IG1rZnMgbWtzd2FwIGZzY2subWluaXggbWtmcy5taW5peCBta2ZzLmJmcworZnNja19taW5peF9TT1VSQ0VTID0gZnNjay5taW5peC5jIG1pbml4LmgKK21rZnNfbWluaXhfU09VUkNFUyA9IG1rZnMubWluaXguYyBtaW5peC5oICQodXRpbHNfY29tbW9uKQorbWtmc19iZnNfU09VUkNFUyA9IG1rZnMuYmZzLmMgJCh1dGlsc19jb21tb24pCisKK21rc3dhcF9TT1VSQ0VTID0gbWtzd2FwLmMgJCh1dGlsc19jb21tb24pIC4uL2xpYi93aG9sZWRpc2suYworbWtzd2FwX0xEQUREID0KK21rc3dhcF9DRkxBR1MgPSAkKEFNX0NGTEFHUykKKwordXNyYmluX2V4ZWNfUFJPR1JBTVMgPSBpc29zaXplCit1c3JzYmluX2V4ZWNfUFJPR1JBTVMgPQorCitpZiBMSU5VWAorZGlzdF9tYW5fTUFOUyArPSBmZGZvcm1hdC44IGJsb2NrZGV2LjgKK3NiaW5fUFJPR1JBTVMgKz0gYmxvY2tkZXYKK3VzcnNiaW5fZXhlY19QUk9HUkFNUyArPSBmZGZvcm1hdAorYmxvY2tkZXZfU09VUkNFUyA9IGJsb2NrZGV2LmMgJCh1dGlsc19jb21tb24pCitlbmRpZgorCitpZiBCVUlMRF9FTFZUVU5FCitzYmluX1BST0dSQU1TICs9IGVsdnR1bmUKK2Rpc3RfbWFuX01BTlMgKz0gZWx2dHVuZS44CitlbHZ0dW5lX1NPVVJDRVMgPSBlbHZ0dW5lLmMgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworZW5kaWYKKworaWYgSEFWRV9SQVcKK2lmIEJVSUxEX1JBVworc2Jpbl9QUk9HUkFNUyArPSByYXcKK2Rpc3RfbWFuX01BTlMgKz0gcmF3LjgKK2VuZGlmCitlbmRpZgorCitpZiBCVUlMRF9DUkFNRlMKK2NyYW1mc19jb21tb24gPSAkKHV0aWxzX2NvbW1vbikgY3JhbWZzLmggY3JhbWZzX2NvbW1vbi5jIGNyYW1mc19jb21tb24uaAorc2Jpbl9QUk9HUkFNUyArPSBmc2NrLmNyYW1mcyBta2ZzLmNyYW1mcworZnNja19jcmFtZnNfU09VUkNFUyA9IGZzY2suY3JhbWZzLmMgJChjcmFtZnNfY29tbW9uKQorbWtmc19jcmFtZnNfU09VUkNFUyA9IG1rZnMuY3JhbWZzLmMgJChjcmFtZnNfY29tbW9uKSAuLi9saWIvbWQ1LmMKK2ZzY2tfY3JhbWZzX0xEQUREID0gLWx6Citta2ZzX2NyYW1mc19MREFERCA9IC1segorZW5kaWYKKworaWYgSEFWRV9VVUlECitpZiBCVUlMRF9MSUJVVUlECitta3N3YXBfTERBREQgKz0gJCh1bF9saWJ1dWlkX2xhKQorbWtzd2FwX0NGTEFHUyArPSAtSSQodWxfbGlidXVpZF9zcmNkaXIpCitlbHNlCitta3N3YXBfTERBREQgKz0gJChVVUlEX0xJQlMpCitta3N3YXBfQ0ZMQUdTICs9ICQoVVVJRF9DRkxBR1MpCitlbmRpZgorZW5kaWYKKworaWYgQlVJTERfTElCQkxLSUQKKyMgb25seSBpbi10cmVlIGxpYmJsa2lkIGhhcyBwYXJ0aXRpb25zIHBhcnNpbmcgc3VwcG9ydAorbWtzd2FwX0xEQUREICs9ICQodWxfbGliYmxraWRfbGEpCitta3N3YXBfQ0ZMQUdTICs9IC1JJCh1bF9saWJibGtpZF9pbmNkaXIpCitlbmRpZgorCitpZiBIQVZFX1NFTElOVVgKK21rc3dhcF9MREFERCArPSAtbHNlbGludXgKK2VuZGlmCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvTWFrZWZpbGUuaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhMGNhYmYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsMTA1NyBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoYW1fX2Rpc3Rfbm9pbnN0X0RBVEFfRElTVCkgJChkaXN0X21hbl9NQU5TKSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorQExJTlVYX1RSVUVAYW1fX2FwcGVuZF8xID0gLi4vbGliL2xpbnV4X3ZlcnNpb24uYworc2Jpbl9QUk9HUkFNUyA9IG1rZnMkKEVYRUVYVCkgbWtzd2FwJChFWEVFWFQpIGZzY2subWluaXgkKEVYRUVYVCkgXAorCW1rZnMubWluaXgkKEVYRUVYVCkgbWtmcy5iZnMkKEVYRUVYVCkgJChhbV9fRVhFRVhUXzEpIFwKKwkkKGFtX19FWEVFWFRfMikgJChhbV9fRVhFRVhUXzMpICQoYW1fX0VYRUVYVF80KQordXNyYmluX2V4ZWNfUFJPR1JBTVMgPSBpc29zaXplJChFWEVFWFQpCit1c3JzYmluX2V4ZWNfUFJPR1JBTVMgPSAkKGFtX19FWEVFWFRfNSkKK0BMSU5VWF9UUlVFQGFtX19hcHBlbmRfMiA9IGZkZm9ybWF0LjggYmxvY2tkZXYuOAorQExJTlVYX1RSVUVAYW1fX2FwcGVuZF8zID0gYmxvY2tkZXYKK0BMSU5VWF9UUlVFQGFtX19hcHBlbmRfNCA9IGZkZm9ybWF0CitAQlVJTERfRUxWVFVORV9UUlVFQGFtX19hcHBlbmRfNSA9IGVsdnR1bmUKK0BCVUlMRF9FTFZUVU5FX1RSVUVAYW1fX2FwcGVuZF82ID0gZWx2dHVuZS44CitAQlVJTERfUkFXX1RSVUVAQEhBVkVfUkFXX1RSVUVAYW1fX2FwcGVuZF83ID0gcmF3CitAQlVJTERfUkFXX1RSVUVAQEhBVkVfUkFXX1RSVUVAYW1fX2FwcGVuZF84ID0gcmF3LjgKK0BCVUlMRF9DUkFNRlNfVFJVRUBhbV9fYXBwZW5kXzkgPSBmc2NrLmNyYW1mcyBta2ZzLmNyYW1mcworQEJVSUxEX0xJQlVVSURfVFJVRUBASEFWRV9VVUlEX1RSVUVAYW1fX2FwcGVuZF8xMCA9ICQodWxfbGlidXVpZF9sYSkKK0BCVUlMRF9MSUJVVUlEX1RSVUVAQEhBVkVfVVVJRF9UUlVFQGFtX19hcHBlbmRfMTEgPSAtSSQodWxfbGlidXVpZF9zcmNkaXIpCitAQlVJTERfTElCVVVJRF9GQUxTRUBASEFWRV9VVUlEX1RSVUVAYW1fX2FwcGVuZF8xMiA9ICQoVVVJRF9MSUJTKQorQEJVSUxEX0xJQlVVSURfRkFMU0VAQEhBVkVfVVVJRF9UUlVFQGFtX19hcHBlbmRfMTMgPSAkKFVVSURfQ0ZMQUdTKQorCisjIG9ubHkgaW4tdHJlZSBsaWJibGtpZCBoYXMgcGFydGl0aW9ucyBwYXJzaW5nIHN1cHBvcnQKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQGFtX19hcHBlbmRfMTQgPSAkKHVsX2xpYmJsa2lkX2xhKQorQEJVSUxEX0xJQkJMS0lEX1RSVUVAYW1fX2FwcGVuZF8xNSA9IC1JJCh1bF9saWJibGtpZF9pbmNkaXIpCitASEFWRV9TRUxJTlVYX1RSVUVAYW1fX2FwcGVuZF8xNiA9IC1sc2VsaW51eAorc3ViZGlyID0gZGlzay11dGlscworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQExJTlVYX1RSVUVAYW1fX0VYRUVYVF8xID0gYmxvY2tkZXYkKEVYRUVYVCkKK0BCVUlMRF9FTFZUVU5FX1RSVUVAYW1fX0VYRUVYVF8yID0gZWx2dHVuZSQoRVhFRVhUKQorQEJVSUxEX1JBV19UUlVFQEBIQVZFX1JBV19UUlVFQGFtX19FWEVFWFRfMyA9IHJhdyQoRVhFRVhUKQorQEJVSUxEX0NSQU1GU19UUlVFQGFtX19FWEVFWFRfNCA9IGZzY2suY3JhbWZzJChFWEVFWFQpIFwKK0BCVUlMRF9DUkFNRlNfVFJVRUAJbWtmcy5jcmFtZnMkKEVYRUVYVCkKK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChzYmluZGlyKSIgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgXAorCSIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpIiAiJChERVNURElSKSQobWFuOGRpcikiCitATElOVVhfVFJVRUBhbV9fRVhFRVhUXzUgPSBmZGZvcm1hdCQoRVhFRVhUKQorUFJPR1JBTVMgPSAkKHNiaW5fUFJPR1JBTVMpICQodXNyYmluX2V4ZWNfUFJPR1JBTVMpIFwKKwkkKHVzcnNiaW5fZXhlY19QUk9HUkFNUykKK2FtX19ibG9ja2Rldl9TT1VSQ0VTX0RJU1QgPSBibG9ja2Rldi5jIC4uL2xpYi9ibGtkZXYuYyBcCisJLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQExJTlVYX1RSVUVAYW1fX29iamVjdHNfMSA9IGxpbnV4X3ZlcnNpb24uJChPQkpFWFQpCithbV9fb2JqZWN0c18yID0gYmxrZGV2LiQoT0JKRVhUKSAkKGFtX19vYmplY3RzXzEpCitATElOVVhfVFJVRUBhbV9ibG9ja2Rldl9PQkpFQ1RTID0gYmxvY2tkZXYuJChPQkpFWFQpICQoYW1fX29iamVjdHNfMikKK2Jsb2NrZGV2X09CSkVDVFMgPSAkKGFtX2Jsb2NrZGV2X09CSkVDVFMpCitibG9ja2Rldl9MREFERCA9ICQoTERBREQpCitBTV9WX2x0ID0gJChhbV9fdl9sdF8kKFYpKQorYW1fX3ZfbHRfID0gJChhbV9fdl9sdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2x0XzAgPSAtLXNpbGVudAorYW1fX2VsdnR1bmVfU09VUkNFU19ESVNUID0gZWx2dHVuZS5jIC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BCVUlMRF9FTFZUVU5FX1RSVUVAYW1fZWx2dHVuZV9PQkpFQ1RTID0gZWx2dHVuZS4kKE9CSkVYVCkgXAorQEJVSUxEX0VMVlRVTkVfVFJVRUAJbGludXhfdmVyc2lvbi4kKE9CSkVYVCkKK2VsdnR1bmVfT0JKRUNUUyA9ICQoYW1fZWx2dHVuZV9PQkpFQ1RTKQorZWx2dHVuZV9MREFERCA9ICQoTERBREQpCitmZGZvcm1hdF9TT1VSQ0VTID0gZmRmb3JtYXQuYworZmRmb3JtYXRfT0JKRUNUUyA9IGZkZm9ybWF0LiQoT0JKRVhUKQorZmRmb3JtYXRfTERBREQgPSAkKExEQUREKQorYW1fX2ZzY2tfY3JhbWZzX1NPVVJDRVNfRElTVCA9IGZzY2suY3JhbWZzLmMgLi4vbGliL2Jsa2Rldi5jIFwKKwkuLi9saWIvbGludXhfdmVyc2lvbi5jIGNyYW1mcy5oIGNyYW1mc19jb21tb24uYyBcCisJY3JhbWZzX2NvbW1vbi5oCitAQlVJTERfQ1JBTUZTX1RSVUVAYW1fX29iamVjdHNfMyA9ICQoYW1fX29iamVjdHNfMikgXAorQEJVSUxEX0NSQU1GU19UUlVFQAljcmFtZnNfY29tbW9uLiQoT0JKRVhUKQorQEJVSUxEX0NSQU1GU19UUlVFQGFtX2ZzY2tfY3JhbWZzX09CSkVDVFMgPSBmc2NrLmNyYW1mcy4kKE9CSkVYVCkgXAorQEJVSUxEX0NSQU1GU19UUlVFQAkkKGFtX19vYmplY3RzXzMpCitmc2NrX2NyYW1mc19PQkpFQ1RTID0gJChhbV9mc2NrX2NyYW1mc19PQkpFQ1RTKQorZnNja19jcmFtZnNfREVQRU5ERU5DSUVTID0KK2FtX2ZzY2tfbWluaXhfT0JKRUNUUyA9IGZzY2subWluaXguJChPQkpFWFQpCitmc2NrX21pbml4X09CSkVDVFMgPSAkKGFtX2ZzY2tfbWluaXhfT0JKRUNUUykKK2ZzY2tfbWluaXhfTERBREQgPSAkKExEQUREKQoraXNvc2l6ZV9TT1VSQ0VTID0gaXNvc2l6ZS5jCitpc29zaXplX09CSkVDVFMgPSBpc29zaXplLiQoT0JKRVhUKQoraXNvc2l6ZV9MREFERCA9ICQoTERBREQpCitta2ZzX1NPVVJDRVMgPSBta2ZzLmMKK21rZnNfT0JKRUNUUyA9IG1rZnMuJChPQkpFWFQpCitta2ZzX0xEQUREID0gJChMREFERCkKK2FtX19ta2ZzX2Jmc19TT1VSQ0VTX0RJU1QgPSBta2ZzLmJmcy5jIC4uL2xpYi9ibGtkZXYuYyBcCisJLi4vbGliL2xpbnV4X3ZlcnNpb24uYworYW1fbWtmc19iZnNfT0JKRUNUUyA9IG1rZnMuYmZzLiQoT0JKRVhUKSAkKGFtX19vYmplY3RzXzIpCitta2ZzX2Jmc19PQkpFQ1RTID0gJChhbV9ta2ZzX2Jmc19PQkpFQ1RTKQorbWtmc19iZnNfTERBREQgPSAkKExEQUREKQorYW1fX21rZnNfY3JhbWZzX1NPVVJDRVNfRElTVCA9IG1rZnMuY3JhbWZzLmMgLi4vbGliL2Jsa2Rldi5jIFwKKwkuLi9saWIvbGludXhfdmVyc2lvbi5jIGNyYW1mcy5oIGNyYW1mc19jb21tb24uYyBcCisJY3JhbWZzX2NvbW1vbi5oIC4uL2xpYi9tZDUuYworQEJVSUxEX0NSQU1GU19UUlVFQGFtX21rZnNfY3JhbWZzX09CSkVDVFMgPSBta2ZzLmNyYW1mcy4kKE9CSkVYVCkgXAorQEJVSUxEX0NSQU1GU19UUlVFQAkkKGFtX19vYmplY3RzXzMpIG1kNS4kKE9CSkVYVCkKK21rZnNfY3JhbWZzX09CSkVDVFMgPSAkKGFtX21rZnNfY3JhbWZzX09CSkVDVFMpCitta2ZzX2NyYW1mc19ERVBFTkRFTkNJRVMgPQorYW1fX21rZnNfbWluaXhfU09VUkNFU19ESVNUID0gbWtmcy5taW5peC5jIG1pbml4LmggLi4vbGliL2Jsa2Rldi5jIFwKKwkuLi9saWIvbGludXhfdmVyc2lvbi5jCithbV9ta2ZzX21pbml4X09CSkVDVFMgPSBta2ZzLm1pbml4LiQoT0JKRVhUKSAkKGFtX19vYmplY3RzXzIpCitta2ZzX21pbml4X09CSkVDVFMgPSAkKGFtX21rZnNfbWluaXhfT0JKRUNUUykKK21rZnNfbWluaXhfTERBREQgPSAkKExEQUREKQorYW1fX21rc3dhcF9TT1VSQ0VTX0RJU1QgPSBta3N3YXAuYyAuLi9saWIvYmxrZGV2LmMgXAorCS4uL2xpYi9saW51eF92ZXJzaW9uLmMgLi4vbGliL3dob2xlZGlzay5jCitATElOVVhfVFJVRUBhbV9fb2JqZWN0c180ID0gbWtzd2FwLWxpbnV4X3ZlcnNpb24uJChPQkpFWFQpCithbV9fb2JqZWN0c181ID0gbWtzd2FwLWJsa2Rldi4kKE9CSkVYVCkgJChhbV9fb2JqZWN0c180KQorYW1fbWtzd2FwX09CSkVDVFMgPSBta3N3YXAtbWtzd2FwLiQoT0JKRVhUKSAkKGFtX19vYmplY3RzXzUpIFwKKwlta3N3YXAtd2hvbGVkaXNrLiQoT0JKRVhUKQorbWtzd2FwX09CSkVDVFMgPSAkKGFtX21rc3dhcF9PQkpFQ1RTKQorYW1fX0RFUEVOREVOQ0lFU18xID0KK0BCVUlMRF9MSUJVVUlEX0ZBTFNFQEBIQVZFX1VVSURfVFJVRUBhbV9fREVQRU5ERU5DSUVTXzIgPSAgXAorQEJVSUxEX0xJQlVVSURfRkFMU0VAQEhBVkVfVVVJRF9UUlVFQAkkKGFtX19ERVBFTkRFTkNJRVNfMSkKK21rc3dhcF9ERVBFTkRFTkNJRVMgPSAkKGFtX19hcHBlbmRfMTApICQoYW1fX0RFUEVOREVOQ0lFU18yKSBcCisJJChhbV9fYXBwZW5kXzE0KSAkKGFtX19ERVBFTkRFTkNJRVNfMSkKK21rc3dhcF9MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChta3N3YXBfQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorcmF3X1NPVVJDRVMgPSByYXcuYworcmF3X09CSkVDVFMgPSByYXcuJChPQkpFWFQpCityYXdfTERBREQgPSAkKExEQUREKQorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSAkKGJsb2NrZGV2X1NPVVJDRVMpICQoZWx2dHVuZV9TT1VSQ0VTKSBmZGZvcm1hdC5jIFwKKwkkKGZzY2tfY3JhbWZzX1NPVVJDRVMpICQoZnNja19taW5peF9TT1VSQ0VTKSBpc29zaXplLmMgbWtmcy5jIFwKKwkkKG1rZnNfYmZzX1NPVVJDRVMpICQobWtmc19jcmFtZnNfU09VUkNFUykgXAorCSQobWtmc19taW5peF9TT1VSQ0VTKSAkKG1rc3dhcF9TT1VSQ0VTKSByYXcuYworRElTVF9TT1VSQ0VTID0gJChhbV9fYmxvY2tkZXZfU09VUkNFU19ESVNUKSBcCisJJChhbV9fZWx2dHVuZV9TT1VSQ0VTX0RJU1QpIGZkZm9ybWF0LmMgXAorCSQoYW1fX2ZzY2tfY3JhbWZzX1NPVVJDRVNfRElTVCkgJChmc2NrX21pbml4X1NPVVJDRVMpIFwKKwlpc29zaXplLmMgbWtmcy5jICQoYW1fX21rZnNfYmZzX1NPVVJDRVNfRElTVCkgXAorCSQoYW1fX21rZnNfY3JhbWZzX1NPVVJDRVNfRElTVCkgJChhbV9fbWtmc19taW5peF9TT1VSQ0VTX0RJU1QpIFwKKwkkKGFtX19ta3N3YXBfU09VUkNFU19ESVNUKSByYXcuYworYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CithbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisgICAgKikgZj0kJHA7OyBcCisgIGVzYWM7CithbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CithbV9faW5zdGFsbF9tYXggPSA0MAorYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorYW1fX25vYmFzZV9zdHJpcCA9IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCithbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCisgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworYW1fX2Jhc2VfbGlzdCA9IFwKKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworbWFuOGRpciA9ICQobWFuZGlyKS9tYW44CitOUk9GRiA9IG5yb2ZmCitNQU5TID0gJChkaXN0X21hbl9NQU5TKQorYW1fX2Rpc3Rfbm9pbnN0X0RBVEFfRElTVCA9IGlzb3NpemUuOCBta2ZzLjggbWtzd2FwLjggZnNjay5taW5peC44IFwKKwlta2ZzLm1pbml4LjggbWtmcy5iZnMuOCBmZGZvcm1hdC44IGJsb2NrZGV2LjggZWx2dHVuZS44IHJhdy44CitEQVRBID0gJChkaXN0X25vaW5zdF9EQVRBKQorRVRBR1MgPSBldGFncworQ1RBR1MgPSBjdGFncworRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKK0FDTE9DQUwgPSBAQUNMT0NBTEAKK0FNVEFSID0gQEFNVEFSQAorQU1fREVGQVVMVF9WRVJCT1NJVFkgPSBAQU1fREVGQVVMVF9WRVJCT1NJVFlACitBUiA9IEBBUkAKK0FVVE9DT05GID0gQEFVVE9DT05GQAorQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorQVVUT01BS0UgPSBAQVVUT01BS0VACitBV0sgPSBAQVdLQAorQkxLSURfQ0ZMQUdTID0gQEJMS0lEX0NGTEFHU0AKK0JMS0lEX0xJQlMgPSBAQkxLSURfTElCU0AKK0JMS0lEX0xJQlNfU1RBVElDID0gQEJMS0lEX0xJQlNfU1RBVElDQAorQ0MgPSBAQ0NACitDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorQ0ZMQUdTID0gQENGTEFHU0AKK0NQUCA9IEBDUFBACitDUFBGTEFHUyA9IEBDUFBGTEFHU0AKK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACitERUZTID0gQERFRlNACitERVBESVIgPSBAREVQRElSQAorRFNZTVVUSUwgPSBARFNZTVVUSUxACitEVU1QQklOID0gQERVTVBCSU5ACitFQ0hPX0MgPSBARUNIT19DQAorRUNIT19OID0gQEVDSE9fTkAKK0VDSE9fVCA9IEBFQ0hPX1RACitFR1JFUCA9IEBFR1JFUEAKK0VYRUVYVCA9IEBFWEVFWFRACitGR1JFUCA9IEBGR1JFUEAKK0dNU0dGTVQgPSBAR01TR0ZNVEAKK0dSRVAgPSBAR1JFUEAKK0dUS0RPQ19DSEVDSyA9IEBHVEtET0NfQ0hFQ0tACitIVE1MX0RJUiA9IEBIVE1MX0RJUkAKK0lOU1RBTEwgPSBASU5TVEFMTEAKK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACitJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACitJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorSU5UTExJQlMgPSBASU5UTExJQlNACitMRCA9IEBMREAKK0xERkxBR1MgPSBATERGTEFHU0AKK0xJQkJMS0lEX0RBVEUgPSBATElCQkxLSURfREFURUAKK0xJQkJMS0lEX1ZFUlNJT04gPSBATElCQkxLSURfVkVSU0lPTkAKK0xJQkJMS0lEX1ZFUlNJT05fSU5GTyA9IEBMSUJCTEtJRF9WRVJTSU9OX0lORk9ACitMSUJJQ09OViA9IEBMSUJJQ09OVkAKK0xJQklOVEwgPSBATElCSU5UTEAKK0xJQk9CSlMgPSBATElCT0JKU0AKK0xJQlMgPSBATElCU0AKK0xJQlRPT0wgPSBATElCVE9PTEAKK0xJQlVVSURfVkVSU0lPTiA9IEBMSUJVVUlEX1ZFUlNJT05ACitMSUJVVUlEX1ZFUlNJT05fSU5GTyA9IEBMSUJVVUlEX1ZFUlNJT05fSU5GT0AKK0xJUE8gPSBATElQT0AKK0xOX1MgPSBATE5fU0AKK0xUTElCSUNPTlYgPSBATFRMSUJJQ09OVkAKK0xUTElCSU5UTCA9IEBMVExJQklOVExACitMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorTUFLRUlORk8gPSBATUFLRUlORk9ACitNS0RJUl9QID0gQE1LRElSX1BACitNS0lOU1RBTExESVJTID0gQE1LSU5TVEFMTERJUlNACitNU0dGTVQgPSBATVNHRk1UQAorTVNHTUVSR0UgPSBATVNHTUVSR0VACitOQ1VSU0VTX0xJQlMgPSBATkNVUlNFU19MSUJTQAorTk0gPSBATk1ACitOTUVESVQgPSBATk1FRElUQAorT0JKRFVNUCA9IEBPQkpEVU1QQAorT0JKRVhUID0gQE9CSkVYVEAKK09UT09MID0gQE9UT09MQAorT1RPT0w2NCA9IEBPVE9PTDY0QAorUEFDS0FHRSA9IEBQQUNLQUdFQAorUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACitQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACitQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorUEVSTCA9IEBQRVJMQAorUEtHX0NPTkZJRyA9IEBQS0dfQ09ORklHQAorUE9TVUIgPSBAUE9TVUJACitSQU5MSUIgPSBAUkFOTElCQAorU0VEID0gQFNFREAKK1NFTElOVVhfTElCUyA9IEBTRUxJTlVYX0xJQlNACitTRUxJTlVYX0xJQlNfU1RBVElDID0gQFNFTElOVVhfTElCU19TVEFUSUNACitTRVRfTUFLRSA9IEBTRVRfTUFLRUAKK1NIRUxMID0gQFNIRUxMQAorU1RSSVAgPSBAU1RSSVBACitTVUlEX0NGTEFHUyA9IEBTVUlEX0NGTEFHU0AKK1NVSURfTERGTEFHUyA9IEBTVUlEX0xERkxBR1NACitVU0VfTkxTID0gQFVTRV9OTFNACitVVUlEX0NGTEFHUyA9IEBVVUlEX0NGTEFHU0AKK1VVSURfTElCUyA9IEBVVUlEX0xJQlNACitWRVJTSU9OID0gQFZFUlNJT05ACitYR0VUVEVYVCA9IEBYR0VUVEVYVEAKK1hTTFRQUk9DID0gQFhTTFRQUk9DQAorYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACithY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACithbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACithbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorYW1fX3RhciA9IEBhbV9fdGFyQAorYW1fX3VudGFyID0gQGFtX191bnRhckAKK2JpbmRpciA9IEBiaW5kaXJACitidWlsZCA9IEBidWlsZEAKK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKK2J1aWxkX29zID0gQGJ1aWxkX29zQAorYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorZGF0YWRpciA9IEBkYXRhZGlyQAorZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACitkb2NkaXIgPSBAZG9jZGlyQAorZHZpZGlyID0gQGR2aWRpckAKK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAoraG9zdCA9IEBob3N0QAoraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAoraG9zdF9jcHUgPSBAaG9zdF9jcHVACitob3N0X29zID0gQGhvc3Rfb3NACitob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKK2h0bWxkaXIgPSBAaHRtbGRpckAKK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKK2luZm9kaXIgPSBAaW5mb2RpckAKK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKK2xpYmRpciA9IEBsaWJkaXJACitsaWJkaXJuYW1lID0gQGxpYmRpcm5hbWVACitsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACitsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorbHRfRUNITyA9IEBsdF9FQ0hPQAorbWFuZGlyID0gQG1hbmRpckAKK21rZGlyX3AgPSBAbWtkaXJfcEAKK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKK3BkZmRpciA9IEBwZGZkaXJACitwcmVmaXggPSBAcHJlZml4QAorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorcHNkaXIgPSBAcHNkaXJACitzYmluZGlyID0gQHNiaW5kaXJACitzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKK3NyY2RpciA9IEBzcmNkaXJACitzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACit0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAordG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAordG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKK3VzcmJpbl9leGVjZGlyID0gQHVzcmJpbl9leGVjZGlyQAordXNybGliX2V4ZWNkaXIgPSBAdXNybGliX2V4ZWNkaXJACit1c3JzYmluX2V4ZWNkaXIgPSBAdXNyc2Jpbl9leGVjZGlyQAorQU1fQ1BQRkxBR1MgPSAtaW5jbHVkZSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmggLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgXAorCS1ETE9DQUxFRElSPVwiJChsb2NhbGVkaXIpXCIKKworQU1fQ0ZMQUdTID0gLWZzaWduZWQtY2hhcgorQU1fTERGTEFHUyA9IAorCisjIEF1dG9tYWtlIChhdCBsZWFzdCB1cCB0byAxLjEwKSBtaXNoYW5kbGVzIGRpc3RfbWFuX01BTlMgaW5zaWRlIGNvbmRpdGlvbmFscy4KKyMgVW5saWtlIHdpdGggb3RoZXIgZGlzdCBwcmltYXJpZXMsIHRoZSBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVkIGlmIHRoZQorIyBjb25kaXRpb25hbCBpcyBmYWxzZS4KKyMgV29yayB0aGUgYnVnIGFyb3VuZCB1bnRpbCBpdCBpcyBmaXhlZDoKK2Rpc3Rfbm9pbnN0X0RBVEEgPSAkKGRpc3RfbWFuX01BTlMpCisKKyMgUGF0aHMgdG8gaW4tdHJlZSBsaWJyYXJpZXMgKHVzZSB1bF8gcHJlZml4IHRvIGF2b2lkIHBvc3NpYmxlIGNvbGxpc2lvbnMpCisjCisjIGJsa2lkCit1bF9saWJibGtpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMvbGliYmxraWQubGEKKworIyBibGtpZC5oIGlzIGdlbmVyYXRlZCBieSAuL2NvbmZpZ3VyZSBzY3JpcHQgYW5kIHN0b3JlZCBpbiBidWlsZCBkaXJlY3RvcnkKK3VsX2xpYmJsa2lkX2luY2RpciA9ICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyMgdXVpZAordWxfbGlidXVpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjL2xpYnV1aWQubGEKK3V0aWxzX2NvbW1vbiA9IC4uL2xpYi9ibGtkZXYuYyAkKGFtX19hcHBlbmRfMSkKK2Rpc3RfbWFuX01BTlMgPSBpc29zaXplLjggbWtmcy44IG1rc3dhcC44IGZzY2subWluaXguOCBta2ZzLm1pbml4LjggXAorCW1rZnMuYmZzLjggJChhbV9fYXBwZW5kXzIpICQoYW1fX2FwcGVuZF82KSAkKGFtX19hcHBlbmRfOCkKK2ZzY2tfbWluaXhfU09VUkNFUyA9IGZzY2subWluaXguYyBtaW5peC5oCitta2ZzX21pbml4X1NPVVJDRVMgPSBta2ZzLm1pbml4LmMgbWluaXguaCAkKHV0aWxzX2NvbW1vbikKK21rZnNfYmZzX1NPVVJDRVMgPSBta2ZzLmJmcy5jICQodXRpbHNfY29tbW9uKQorbWtzd2FwX1NPVVJDRVMgPSBta3N3YXAuYyAkKHV0aWxzX2NvbW1vbikgLi4vbGliL3dob2xlZGlzay5jCitta3N3YXBfTERBREQgPSAkKGFtX19hcHBlbmRfMTApICQoYW1fX2FwcGVuZF8xMikgJChhbV9fYXBwZW5kXzE0KSBcCisJJChhbV9fYXBwZW5kXzE2KQorbWtzd2FwX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAkKGFtX19hcHBlbmRfMTEpICQoYW1fX2FwcGVuZF8xMykgXAorCSQoYW1fX2FwcGVuZF8xNSkKK0BMSU5VWF9UUlVFQGJsb2NrZGV2X1NPVVJDRVMgPSBibG9ja2Rldi5jICQodXRpbHNfY29tbW9uKQorQEJVSUxEX0VMVlRVTkVfVFJVRUBlbHZ0dW5lX1NPVVJDRVMgPSBlbHZ0dW5lLmMgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQEJVSUxEX0NSQU1GU19UUlVFQGNyYW1mc19jb21tb24gPSAkKHV0aWxzX2NvbW1vbikgY3JhbWZzLmggY3JhbWZzX2NvbW1vbi5jIGNyYW1mc19jb21tb24uaAorQEJVSUxEX0NSQU1GU19UUlVFQGZzY2tfY3JhbWZzX1NPVVJDRVMgPSBmc2NrLmNyYW1mcy5jICQoY3JhbWZzX2NvbW1vbikKK0BCVUlMRF9DUkFNRlNfVFJVRUBta2ZzX2NyYW1mc19TT1VSQ0VTID0gbWtmcy5jcmFtZnMuYyAkKGNyYW1mc19jb21tb24pIC4uL2xpYi9tZDUuYworQEJVSUxEX0NSQU1GU19UUlVFQGZzY2tfY3JhbWZzX0xEQUREID0gLWx6CitAQlVJTERfQ1JBTUZTX1RSVUVAbWtmc19jcmFtZnNfTERBREQgPSAtbHoKK2FsbDogYWxsLWFtCisKKy5TVUZGSVhFUzoKKy5TVUZGSVhFUzogLmMgLmxvIC5vIC5vYmoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiBkaXNrLXV0aWxzL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZm9yZWlnbiBkaXNrLXV0aWxzL01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKK2luc3RhbGwtc2JpblBST0dSQU1TOiAkKHNiaW5fUFJPR1JBTVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChzYmluZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoc2JpbmRpcikiCisJQGxpc3Q9JyQoc2Jpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHNiaW5kaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisJc2VkICdzLyQoRVhFRVhUKSQkLy8nIHwgXAorCXdoaWxlIHJlYWQgcCBwMTsgZG8gaWYgdGVzdCAtZiAkJHAgfHwgdGVzdCAtZiAkJHAxOyBcCisJICB0aGVuIGVjaG8gIiQkcCI7IGVjaG8gIiQkcCI7IGVsc2UgOjsgZmk7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAncDtzLC4qLywsO247aCcgLWUgJ3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJyB8IFwKKwlzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxIH0gXAorCSAgeyBkPSQkMzsgaWYgKGRpcnNbZF0gIT0gMSkgeyBwcmludCAiZCIsIGQ7IGRpcnNbZF0gPSAxIH0gXAorCSAgICBpZiAoJCQyID09ICQkNCkgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgIGVsc2UgeyBwcmludCAiZiIsICQkMyAiLyIgJCQ0LCAkJDE7IH0gfSBcCisJICBFTkQgeyBmb3IgKGQgaW4gZmlsZXMpIHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCisJd2hpbGUgcmVhZCB0eXBlIGRpciBmaWxlczsgZG8gXAorCSAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKKwkgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAnJChERVNURElSKSQoc2JpbmRpcikkJGRpciciOyBcCisJICAgICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICIkKERFU1RESVIpJChzYmluZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAorCSAgICB9IFwKKwk7IGRvbmUKKwordW5pbnN0YWxsLXNiaW5QUk9HUkFNUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKHNiaW5fUFJPR1JBTVMpJzsgdGVzdCAtbiAiJChzYmluZGlyKSIgfHwgbGlzdD07IFwKKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgXAorCSAgc2VkIC1lICdoO3MsXi4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSknIFwKKwkgICAgICAtZSAncy8kJC8kKEVYRUVYVCkvJyBgOyBcCisJdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQoc2JpbmRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJChzYmluZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworCitjbGVhbi1zYmluUFJPR1JBTVM6CisJQGxpc3Q9JyQoc2Jpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QKK2luc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUzogJCh1c3JiaW5fZXhlY19QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHVzcmJpbl9leGVjZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpIgorCUBsaXN0PSckKHVzcmJpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisJc2VkICdzLyQoRVhFRVhUKSQkLy8nIHwgXAorCXdoaWxlIHJlYWQgcCBwMTsgZG8gaWYgdGVzdCAtZiAkJHAgfHwgdGVzdCAtZiAkJHAxOyBcCisJICB0aGVuIGVjaG8gIiQkcCI7IGVjaG8gIiQkcCI7IGVsc2UgOjsgZmk7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAncDtzLC4qLywsO247aCcgLWUgJ3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJyB8IFwKKwlzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxIH0gXAorCSAgeyBkPSQkMzsgaWYgKGRpcnNbZF0gIT0gMSkgeyBwcmludCAiZCIsIGQ7IGRpcnNbZF0gPSAxIH0gXAorCSAgICBpZiAoJCQyID09ICQkNCkgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgIGVsc2UgeyBwcmludCAiZiIsICQkMyAiLyIgJCQ0LCAkJDE7IH0gfSBcCisJICBFTkQgeyBmb3IgKGQgaW4gZmlsZXMpIHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCisJd2hpbGUgcmVhZCB0eXBlIGRpciBmaWxlczsgZG8gXAorCSAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKKwkgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAnJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKHVzcmJpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tdXNyYmluX2V4ZWNQUk9HUkFNUzoKKwlAbGlzdD0nJCh1c3JiaW5fZXhlY19QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QKK2luc3RhbGwtdXNyc2Jpbl9leGVjUFJPR1JBTVM6ICQodXNyc2Jpbl9leGVjX1BST0dSQU1TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQodXNyc2Jpbl9leGVjZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKSIKKwlAbGlzdD0nJCh1c3JzYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCh1c3JzYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisJc2VkICdzLyQoRVhFRVhUKSQkLy8nIHwgXAorCXdoaWxlIHJlYWQgcCBwMTsgZG8gaWYgdGVzdCAtZiAkJHAgfHwgdGVzdCAtZiAkJHAxOyBcCisJICB0aGVuIGVjaG8gIiQkcCI7IGVjaG8gIiQkcCI7IGVsc2UgOjsgZmk7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAncDtzLC4qLywsO247aCcgLWUgJ3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJyB8IFwKKwlzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxIH0gXAorCSAgeyBkPSQkMzsgaWYgKGRpcnNbZF0gIT0gMSkgeyBwcmludCAiZCIsIGQ7IGRpcnNbZF0gPSAxIH0gXAorCSAgICBpZiAoJCQyID09ICQkNCkgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgIGVsc2UgeyBwcmludCAiZiIsICQkMyAiLyIgJCQ0LCAkJDE7IH0gfSBcCisJICBFTkQgeyBmb3IgKGQgaW4gZmlsZXMpIHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCisJd2hpbGUgcmVhZCB0eXBlIGRpciBmaWxlczsgZG8gXAorCSAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKKwkgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAnJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKSQkZGlyJyI7IFwKKwkgICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgIiQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgfSBcCisJOyBkb25lCisKK3VuaW5zdGFsbC11c3JzYmluX2V4ZWNQUk9HUkFNUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKHVzcnNiaW5fZXhlY19QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHVzcnNiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKwkgIHNlZCAtZSAnaDtzLF4uKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pJyBcCisJICAgICAgLWUgJ3MvJCQvJChFWEVFWFQpLycgYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK2NsZWFuLXVzcnNiaW5fZXhlY1BST0dSQU1TOgorCUBsaXN0PSckKHVzcnNiaW5fZXhlY19QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QKK2Jsb2NrZGV2JChFWEVFWFQpOiAkKGJsb2NrZGV2X09CSkVDVFMpICQoYmxvY2tkZXZfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgYmxvY2tkZXYkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoYmxvY2tkZXZfT0JKRUNUUykgJChibG9ja2Rldl9MREFERCkgJChMSUJTKQorZWx2dHVuZSQoRVhFRVhUKTogJChlbHZ0dW5lX09CSkVDVFMpICQoZWx2dHVuZV9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBlbHZ0dW5lJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGVsdnR1bmVfT0JKRUNUUykgJChlbHZ0dW5lX0xEQUREKSAkKExJQlMpCitmZGZvcm1hdCQoRVhFRVhUKTogJChmZGZvcm1hdF9PQkpFQ1RTKSAkKGZkZm9ybWF0X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGZkZm9ybWF0JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGZkZm9ybWF0X09CSkVDVFMpICQoZmRmb3JtYXRfTERBREQpICQoTElCUykKK2ZzY2suY3JhbWZzJChFWEVFWFQpOiAkKGZzY2tfY3JhbWZzX09CSkVDVFMpICQoZnNja19jcmFtZnNfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgZnNjay5jcmFtZnMkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoZnNja19jcmFtZnNfT0JKRUNUUykgJChmc2NrX2NyYW1mc19MREFERCkgJChMSUJTKQorZnNjay5taW5peCQoRVhFRVhUKTogJChmc2NrX21pbml4X09CSkVDVFMpICQoZnNja19taW5peF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBmc2NrLm1pbml4JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGZzY2tfbWluaXhfT0JKRUNUUykgJChmc2NrX21pbml4X0xEQUREKSAkKExJQlMpCitpc29zaXplJChFWEVFWFQpOiAkKGlzb3NpemVfT0JKRUNUUykgJChpc29zaXplX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGlzb3NpemUkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoaXNvc2l6ZV9PQkpFQ1RTKSAkKGlzb3NpemVfTERBREQpICQoTElCUykKK21rZnMkKEVYRUVYVCk6ICQobWtmc19PQkpFQ1RTKSAkKG1rZnNfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgbWtmcyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChta2ZzX09CSkVDVFMpICQobWtmc19MREFERCkgJChMSUJTKQorbWtmcy5iZnMkKEVYRUVYVCk6ICQobWtmc19iZnNfT0JKRUNUUykgJChta2ZzX2Jmc19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBta2ZzLmJmcyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChta2ZzX2Jmc19PQkpFQ1RTKSAkKG1rZnNfYmZzX0xEQUREKSAkKExJQlMpCitta2ZzLmNyYW1mcyQoRVhFRVhUKTogJChta2ZzX2NyYW1mc19PQkpFQ1RTKSAkKG1rZnNfY3JhbWZzX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIG1rZnMuY3JhbWZzJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKG1rZnNfY3JhbWZzX09CSkVDVFMpICQobWtmc19jcmFtZnNfTERBREQpICQoTElCUykKK21rZnMubWluaXgkKEVYRUVYVCk6ICQobWtmc19taW5peF9PQkpFQ1RTKSAkKG1rZnNfbWluaXhfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgbWtmcy5taW5peCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChta2ZzX21pbml4X09CSkVDVFMpICQobWtmc19taW5peF9MREFERCkgJChMSUJTKQorbWtzd2FwJChFWEVFWFQpOiAkKG1rc3dhcF9PQkpFQ1RTKSAkKG1rc3dhcF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBta3N3YXAkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKG1rc3dhcF9MSU5LKSAkKG1rc3dhcF9PQkpFQ1RTKSAkKG1rc3dhcF9MREFERCkgJChMSUJTKQorcmF3JChFWEVFWFQpOiAkKHJhd19PQkpFQ1RTKSAkKHJhd19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiByYXckKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQocmF3X09CSkVDVFMpICQocmF3X0xEQUREKSAkKExJQlMpCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ibGtkZXYuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2Jsb2NrZGV2LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jcmFtZnNfY29tbW9uLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9lbHZ0dW5lLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGZvcm1hdC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZnNjay5jcmFtZnMuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2ZzY2subWluaXguUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2lzb3NpemUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpbnV4X3ZlcnNpb24uUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21kNS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWtmcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWtmcy5iZnMuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21rZnMuY3JhbWZzLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ta2ZzLm1pbml4LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ta3N3YXAtYmxrZGV2LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ta3N3YXAtbGludXhfdmVyc2lvbi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWtzd2FwLW1rc3dhcC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWtzd2FwLXdob2xlZGlzay5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcmF3LlBvQGFtX19xdW90ZUAKKworLmMubzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgJDwKKworLmMub2JqOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jIGAkKENZR1BBVEhfVykgJyQ8J2AKKworLmMubG86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChMVENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMVENPTVBJTEUpIC1jIC1vICRAICQ8CisKK2Jsa2Rldi5vOiAuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgYmxrZGV2Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2Jsa2Rldi5UcG8gLWMgLW8gYmxrZGV2Lm8gYHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9ibGtkZXYuVHBvICQoREVQRElSKS9ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0nYmxrZGV2Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworCitibGtkZXYub2JqOiAuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgYmxrZGV2Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvYmxrZGV2LlRwbyAtYyAtbyBibGtkZXYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Jsa2Rldi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvYmxrZGV2LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2Jsa2Rldi5UcG8gJChERVBESVIpL2Jsa2Rldi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9ibGtkZXYuYycgb2JqZWN0PSdibGtkZXYub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBibGtkZXYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Jsa2Rldi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvYmxrZGV2LmMnOyBmaWAKKworbGludXhfdmVyc2lvbi5vOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGxpbnV4X3ZlcnNpb24ubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGludXhfdmVyc2lvbi5UcG8gLWMgLW8gbGludXhfdmVyc2lvbi5vIGB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9saW51eF92ZXJzaW9uLlRwbyAkKERFUERJUikvbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0nbGludXhfdmVyc2lvbi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBsaW51eF92ZXJzaW9uLm8gYHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9saW51eF92ZXJzaW9uLmMKKworbGludXhfdmVyc2lvbi5vYmo6IC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbGludXhfdmVyc2lvbi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2xpbnV4X3ZlcnNpb24uVHBvIC1jIC1vIGxpbnV4X3ZlcnNpb24ub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2xpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS9saW51eF92ZXJzaW9uLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgb2JqZWN0PSdsaW51eF92ZXJzaW9uLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbGludXhfdmVyc2lvbi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGZpYAorCittZDUubzogLi4vbGliL21kNS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1kNS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tZDUuVHBvIC1jIC1vIG1kNS5vIGB0ZXN0IC1mICcuLi9saWIvbWQ1LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9tZDUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbWQ1LlRwbyAkKERFUERJUikvbWQ1LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL21kNS5jJyBvYmplY3Q9J21kNS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtZDUubyBgdGVzdCAtZiAnLi4vbGliL21kNS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvbWQ1LmMKKworbWQ1Lm9iajogLi4vbGliL21kNS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1kNS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21kNS5UcG8gLWMgLW8gbWQ1Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL21kNS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9tZDUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL21kNS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tZDUuVHBvICQoREVQRElSKS9tZDUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvbWQ1LmMnIG9iamVjdD0nbWQ1Lm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbWQ1Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL21kNS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9tZDUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL21kNS5jJzsgZmlgCisKK21rc3dhcC1ta3N3YXAubzogbWtzd2FwLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChta3N3YXBfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1rc3dhcC1ta3N3YXAubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbWtzd2FwLW1rc3dhcC5UcG8gLWMgLW8gbWtzd2FwLW1rc3dhcC5vIGB0ZXN0IC1mICdta3N3YXAuYycgfHwgZWNobyAnJChzcmNkaXIpLydgbWtzd2FwLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21rc3dhcC1ta3N3YXAuVHBvICQoREVQRElSKS9ta3N3YXAtbWtzd2FwLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbWtzd2FwLmMnIG9iamVjdD0nbWtzd2FwLW1rc3dhcC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChta3N3YXBfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbWtzd2FwLW1rc3dhcC5vIGB0ZXN0IC1mICdta3N3YXAuYycgfHwgZWNobyAnJChzcmNkaXIpLydgbWtzd2FwLmMKKworbWtzd2FwLW1rc3dhcC5vYmo6IG1rc3dhcC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobWtzd2FwX0NGTEFHUykgJChDRkxBR1MpIC1NVCBta3N3YXAtbWtzd2FwLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbWtzd2FwLW1rc3dhcC5UcG8gLWMgLW8gbWtzd2FwLW1rc3dhcC5vYmogYGlmIHRlc3QgLWYgJ21rc3dhcC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ21rc3dhcC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9ta3N3YXAuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbWtzd2FwLW1rc3dhcC5UcG8gJChERVBESVIpL21rc3dhcC1ta3N3YXAuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdta3N3YXAuYycgb2JqZWN0PSdta3N3YXAtbWtzd2FwLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobWtzd2FwX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1rc3dhcC1ta3N3YXAub2JqIGBpZiB0ZXN0IC1mICdta3N3YXAuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdta3N3YXAuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvbWtzd2FwLmMnOyBmaWAKKworbWtzd2FwLWJsa2Rldi5vOiAuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChta3N3YXBfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1rc3dhcC1ibGtkZXYubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbWtzd2FwLWJsa2Rldi5UcG8gLWMgLW8gbWtzd2FwLWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbWtzd2FwLWJsa2Rldi5UcG8gJChERVBESVIpL21rc3dhcC1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0nbWtzd2FwLWJsa2Rldi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChta3N3YXBfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbWtzd2FwLWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworCitta3N3YXAtYmxrZGV2Lm9iajogLi4vbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobWtzd2FwX0NGTEFHUykgJChDRkxBR1MpIC1NVCBta3N3YXAtYmxrZGV2Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbWtzd2FwLWJsa2Rldi5UcG8gLWMgLW8gbWtzd2FwLWJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbWtzd2FwLWJsa2Rldi5UcG8gJChERVBESVIpL21rc3dhcC1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0nbWtzd2FwLWJsa2Rldi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1rc3dhcF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBta3N3YXAtYmxrZGV2Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9ibGtkZXYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Jsa2Rldi5jJzsgZmlgCisKK21rc3dhcC1saW51eF92ZXJzaW9uLm86IC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChta3N3YXBfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1rc3dhcC1saW51eF92ZXJzaW9uLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21rc3dhcC1saW51eF92ZXJzaW9uLlRwbyAtYyAtbyBta3N3YXAtbGludXhfdmVyc2lvbi5vIGB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9ta3N3YXAtbGludXhfdmVyc2lvbi5UcG8gJChERVBESVIpL21rc3dhcC1saW51eF92ZXJzaW9uLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgb2JqZWN0PSdta3N3YXAtbGludXhfdmVyc2lvbi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChta3N3YXBfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbWtzd2FwLWxpbnV4X3ZlcnNpb24ubyBgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworCitta3N3YXAtbGludXhfdmVyc2lvbi5vYmo6IC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChta3N3YXBfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1rc3dhcC1saW51eF92ZXJzaW9uLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbWtzd2FwLWxpbnV4X3ZlcnNpb24uVHBvIC1jIC1vIG1rc3dhcC1saW51eF92ZXJzaW9uLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9ta3N3YXAtbGludXhfdmVyc2lvbi5UcG8gJChERVBESVIpL21rc3dhcC1saW51eF92ZXJzaW9uLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgb2JqZWN0PSdta3N3YXAtbGludXhfdmVyc2lvbi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1rc3dhcF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBta3N3YXAtbGludXhfdmVyc2lvbi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGZpYAorCitta3N3YXAtd2hvbGVkaXNrLm86IC4uL2xpYi93aG9sZWRpc2suYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1rc3dhcF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbWtzd2FwLXdob2xlZGlzay5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9ta3N3YXAtd2hvbGVkaXNrLlRwbyAtYyAtbyBta3N3YXAtd2hvbGVkaXNrLm8gYHRlc3QgLWYgJy4uL2xpYi93aG9sZWRpc2suYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL3dob2xlZGlzay5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9ta3N3YXAtd2hvbGVkaXNrLlRwbyAkKERFUERJUikvbWtzd2FwLXdob2xlZGlzay5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi93aG9sZWRpc2suYycgb2JqZWN0PSdta3N3YXAtd2hvbGVkaXNrLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1rc3dhcF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBta3N3YXAtd2hvbGVkaXNrLm8gYHRlc3QgLWYgJy4uL2xpYi93aG9sZWRpc2suYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL3dob2xlZGlzay5jCisKK21rc3dhcC13aG9sZWRpc2sub2JqOiAuLi9saWIvd2hvbGVkaXNrLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChta3N3YXBfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1rc3dhcC13aG9sZWRpc2sub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9ta3N3YXAtd2hvbGVkaXNrLlRwbyAtYyAtbyBta3N3YXAtd2hvbGVkaXNrLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL3dob2xlZGlzay5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi93aG9sZWRpc2suYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL3dob2xlZGlzay5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9ta3N3YXAtd2hvbGVkaXNrLlRwbyAkKERFUERJUikvbWtzd2FwLXdob2xlZGlzay5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi93aG9sZWRpc2suYycgb2JqZWN0PSdta3N3YXAtd2hvbGVkaXNrLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobWtzd2FwX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1rc3dhcC13aG9sZWRpc2sub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvd2hvbGVkaXNrLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL3dob2xlZGlzay5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvd2hvbGVkaXNrLmMnOyBmaWAKKworbW9zdGx5Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgKi5sbworCitjbGVhbi1saWJ0b29sOgorCS1ybSAtcmYgLmxpYnMgX2xpYnMKK2luc3RhbGwtbWFuODogJChkaXN0X21hbl9NQU5TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQobWFuOGRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjhkaXIpIgorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjhkaXIpIiB8fCBleGl0IDA7IFwKKwl7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHdoaWxlIHJlYWQgcDsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ247cywuKi8sLDtwO2g7cywuKlwuLCw7cyxeW144XVswLTlhLXpdKiQkLDgsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCcgfCBcCisJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCisJbGlzdD07IHdoaWxlIHJlYWQgZmlsZSBiYXNlIGluc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkYmFzZSIgPSAiJCRpbnN0IjsgdGhlbiBsaXN0PSIkJGxpc3QgJCRmaWxlIjsgZWxzZSBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjhkaXIpLyQkaW5zdCciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAiJCRmaWxlIiAiJChERVNURElSKSQobWFuOGRpcikvJCRpbnN0IiB8fCBleGl0ICQkPzsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChtYW44ZGlyKSciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChtYW44ZGlyKSIgfHwgZXhpdCAkJD87IH07IFwKKwlkb25lOyB9CisKK3VuaW5zdGFsbC1tYW44OgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuOGRpcikiIHx8IGV4aXQgMDsgXAorCWZpbGVzPWB7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteOF1bMC05YS16XSokJCw4LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnYDsgXAorCXRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjhkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwkgIGNkICIkKERFU1RESVIpJChtYW44ZGlyKSIgJiYgcm0gLWYgJCRmaWxlczsgfQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAbGlzdD0nJChNQU5TKSc7IGlmIHRlc3QgLW4gIiQkbGlzdCI7IHRoZW4gXAorCSAgbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgICBpZiB0ZXN0IC1mICIkJGQkJHAiOyB0aGVuIGVjaG8gIiQkZCQkcCI7IGVsc2UgOjsgZmk7IGRvbmVgOyBcCisJICBpZiB0ZXN0IC1uICIkJGxpc3QiICYmIFwKKwkgICAgZ3JlcCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVsbDsgdGhlbiBcCisJICAgIGVjaG8gImVycm9yOiBmb3VuZCBtYW4gcGFnZXMgY29udGFpbmluZyB0aGUgXGBtaXNzaW5nIGhlbHAybWFuJyByZXBsYWNlbWVudCB0ZXh0OiIgPiYyOyBcCisJICAgIGdyZXAgLWwgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0IHwgc2VkICdzL14vICAgICAgICAgLycgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0byBmaXggdGhlbSwgaW5zdGFsbCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBtYW4gcGFnZXM7IiA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHR5cGljYWxseSBcYG1ha2UgbWFpbnRhaW5lci1jbGVhbicgd2lsbCByZW1vdmUgdGhlbSIgPiYyOyBcCisJICAgIGV4aXQgMTsgXAorCSAgZWxzZSA6OyBmaTsgXAorCWVsc2UgOjsgZmkKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1hbQorYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKSAkKE1BTlMpICQoREFUQSkKK2luc3RhbGxkaXJzOgorCWZvciBkaXIgaW4gIiQoREVTVERJUikkKHNiaW5kaXIpIiAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpIiAiJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKSIgIiQoREVTVERJUikkKG1hbjhkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1zYmluUFJPR1JBTVMgXAorCWNsZWFuLXVzcmJpbl9leGVjUFJPR1JBTVMgY2xlYW4tdXNyc2Jpbl9leGVjUFJPR1JBTVMgXAorCW1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktYW0KKworZHZpLWFtOgorCitodG1sOiBodG1sLWFtCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tYW0KKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1zYmluUFJPR1JBTVMgaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TIFwKKwlpbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TCisKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisKK2luc3RhbGwtaHRtbC1hbToKKworaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjogaW5zdGFsbC1tYW44CisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1tYW4gdW5pbnN0YWxsLXNiaW5QUk9HUkFNUyBcCisJdW5pbnN0YWxsLXVzcmJpbl9leGVjUFJPR1JBTVMgdW5pbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TCisKK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW44CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorCWNsZWFuLWxpYnRvb2wgY2xlYW4tc2JpblBST0dSQU1TIGNsZWFuLXVzcmJpbl9leGVjUFJPR1JBTVMgXAorCWNsZWFuLXVzcnNiaW5fZXhlY1BST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBcCisJZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgXAorCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCisJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtbWFuOCBcCisJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKwlpbnN0YWxsLXNiaW5QUk9HUkFNUyBpbnN0YWxsLXN0cmlwIGluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUyBcCisJaW5zdGFsbC11c3JzYmluX2V4ZWNQUk9HUkFNUyBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKwlpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgXAorCXVuaW5zdGFsbC1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW44IFwKKwl1bmluc3RhbGwtc2JpblBST0dSQU1TIHVuaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TIFwKKwl1bmluc3RhbGwtdXNyc2Jpbl9leGVjUFJPR1JBTVMKKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvYmxvY2tkZXYuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvYmxvY2tkZXYuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTAxZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9ibG9ja2Rldi44CkBAIC0wLDAgKzEsOTMgQEAKKy5cIiAtKi0gbnJvZmYgLSotCisuXCIgQ29weXJpZ2h0IDE5OTggQW5kcmllcyBFLiBCcm91d2VyIChhZWJAY3dpLm5sKQorLlwiIENvcHlyaWdodCAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorLlwiCisuXCIgTWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLlRIIEJMT0NLREVWIDggIkp1biAyMDA3IiAiIgorLlNIIE5BTUUKK2Jsb2NrZGV2IFwtIGNhbGwgYmxvY2sgZGV2aWNlIGlvY3RscyBmcm9tIHRoZSBjb21tYW5kIGxpbmUKKy5TSCBTWU5PUFNJUworLkIgYmxvY2tkZXYKKy5SSSBbIG9wdGlvbnMgXQorLkkgY29tbWFuZHMgZGV2aWNlcworLmJyCisuQiBibG9ja2RldgorLkIgXC1cLXJlcG9ydAorLlJJIFsgZGV2aWNlcyBdCisuU0ggREVTQ1JJUFRJT04KK1RoZSB1dGlsaXR5CisuQiBibG9ja2RldgorYWxsb3dzIG9uZSB0byBjYWxsIGJsb2NrIGRldmljZSBpb2N0bHMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgorLlNIIE9QVElPTlMKKy5UUAorLkIgXC1WCitQcmludCB2ZXJzaW9uIGFuZCBleGl0LgorLlRQCisuQiBcLXEKK0JlIHF1aWV0LgorLlRQCisuQiBcLXYKK0JlIHZlcmJvc2UuCisuVFAKKy5CIFwtXC1yZXBvcnQKK1ByaW50IGEgcmVwb3J0IGZvcgorLklSIGRldmljZXMgLgorTm90ZSB0aGF0IHRoZSBwYXJ0aXRpb24gU3RhcnRTZWMgaXMgaW4gNTEyLWJ5dGUgc2VjdG9ycy4KKy5TSCBDT01NQU5EUworLlRQCisuQiBcLS1zZXRybworU2V0IHJlYWQtb25seS4KKy5UUAorLkIgXC0tc2V0cncKK1NldCByZWFkLXdyaXRlLgorLlRQCisuQiBcLS1nZXRybworR2V0IHJlYWQtb25seS4gUHJpbnQgMSBpZiB0aGUgZGV2aWNlIGlzIHJlYWQtb25seSwgMCBvdGhlcndpc2UuCisuVFAKKy5CIFwtLWdldHNzCitQcmludCBzZWN0b3JzaXplIGluIGJ5dGVzIC0gdXN1YWxseSA1MTIuCisuVFAKKy5CIFwtLWdldGJzegorUHJpbnQgYmxvY2tzaXplIGluIGJ5dGVzLgorLlRQCisuQkkgXC0tc2V0YnN6ICIgTiIKK1NldCBibG9ja3NpemUgdG8KKy5JIE4KK2J5dGVzLgorLlRQCisuQiBcLS1nZXRzaXplCitQcmludCBkZXZpY2Ugc2l6ZSBpbiBzZWN0b3JzIChCTEtHRVRTSVpFKS4gRGVwcmVjYXRlZCBpbiBmYXZvciBvZiB0aGUKKy5CIFwtLWdldHN6CitvcHRpb24uCisuVFAKKy5CIFwtLWdldHNpemU2NAorUHJpbnQgZGV2aWNlIHNpemUgaW4gYnl0ZXMgKEJMS0dFVFNJWkU2NCkKKy5UUAorLkIgXC0tZ2V0c3oKK0dldCBzaXplIGluIDUxMi1ieXRlIHNlY3RvcnMgKEJMS0dFVFNJWkU2NCAvIDUxMikuCisuVFAKKy5CSSBcLS1zZXRyYSAiIE4iCitTZXQgcmVhZGFoZWFkIHRvCisuSSBOCis1MTItYnl0ZSBzZWN0b3JzLgorLlRQCisuQiBcLS1nZXRyYQorUHJpbnQgcmVhZGFoZWFkIChpbiA1MTItYnl0ZSBzZWN0b3JzKS4KKy5UUAorLkJJIFwtLXNldGZyYSAiIE4iCitTZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQgKHNhbWUgbGlrZSAtLXNldHJhIG9uIDIuNiBrZXJuZWxzKS4KKy5UUAorLkIgXC0tZ2V0ZnJhCitHZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQuCisuVFAKKy5CIFwtLWZsdXNoYnVmcworRmx1c2ggYnVmZmVycy4KKy5UUAorLkIgXC0tcmVyZWFkcHQKK1JlcmVhZCBwYXJ0aXRpb24gdGFibGUuCisuU0ggQVVUSE9SCitibG9ja2RldiB3YXMgd3JpdHRlbiBieSBBbmRyaWVzIEUuIEJyb3V3ZXIuCisuU0ggQVZBSUxBQklMSVRZCitUaGUgYmxvY2tkZXYgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvYmxvY2tkZXYuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvYmxvY2tkZXYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODhjMTAyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9ibG9ja2Rldi5jCkBAIC0wLDAgKzEsNDgyIEBACisvKgorICogYmxvY2tkZXYuYyAtLS0gRG8gdmFyaW91cyBzaW1wbGUgYmxvY2sgZGV2aWNlIGlvY3RscyBmcm9tIHRoZSBjb21tYW5kIGxpbmUKKyAqIGFlYiwgOTkxMDI4CisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSAiYy5oIgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgImJsa2Rldi5oIgorCitjb25zdCBjaGFyICpwcm9nbmFtZTsKKworCitzdHJ1Y3QgYmRjIHsKKwlsb25nCQlpb2M7CQkvKiBpb2N0bCBjb2RlICovCisJY29uc3QgY2hhcgkqaW9jbmFtZTsJLyogaW9jdGwgbmFtZSAoZS5nLiBCTEtST1NFVCkgKi8KKwlsb25nCQlhcmd2YWw7CQkvKiBkZWZhdWx0IGFyZ3VtZW50ICovCisKKwljb25zdCBjaGFyCSpuYW1lOwkJLyogLS1zZXRmb28gKi8KKwljb25zdCBjaGFyCSphcmduYW1lOwkvKiBhcmd1bWVudCBuYW1lIG9yIE5VTEwgKi8KKworCWNvbnN0IGNoYXIJKmhlbHA7CisKKwlpbnQJCWFyZ3R5cGU7CisJaW50CQlmbGFnczsKK307CisKKy8qIGNvbW1hbmQgZmxhZ3MgKi8KK2VudW0geworCUZMX05PUFRSCT0gKDEgPDwgMSksCS8qIGRvZXMgbm90IGFzc3VtZSBwb2ludGVyIChBUkdfSU5UIG9ubHkpKi8KKwlGTF9OT1JFU1VMVAk9ICgxIDw8IDIpCS8qIGRvZXMgbm90IHJldHVybiBhbnkgZGF0YSAqLworfTsKKworLyogaW9jdGwgYXJndW1lbnQgdHlwZXMgKi8KK2VudW0geworCUFSR19OT05FLAorCUFSR19VU0hSVCwKKwlBUkdfSU5ULAorCUFSR19VSU5ULAorCUFSR19MT05HLAorCUFSR19VTE9ORywKKwlBUkdfTExPTkcsCisJQVJHX1VMTE9ORworfTsKKworI2RlZmluZSBJT0NUTF9FTlRSWSggaW8gKQkuaW9jID0gaW8sIC5pb2NuYW1lID0gIyBpbworCitzdHJ1Y3QgYmRjIGJkY21zW10gPQoreworCXsKKwkJSU9DVExfRU5UUlkoQkxLUk9TRVQpLAorCQkubmFtZSA9ICItLXNldHJvIiwKKwkJLmFyZ3R5cGUgPSBBUkdfSU5ULAorCQkuYXJndmFsID0gMSwKKwkJLmZsYWdzID0gRkxfTk9SRVNVTFQsCisJCS5oZWxwID0gTl8oInNldCByZWFkLW9ubHkiKQorCX0seworCQlJT0NUTF9FTlRSWShCTEtST1NFVCksCisJCS5uYW1lID0gIi0tc2V0cnciLAorCQkuYXJndHlwZSA9IEFSR19JTlQsCisJCS5hcmd2YWwgPSAwLAorCQkuZmxhZ3MgPSBGTF9OT1JFU1VMVCwKKwkJLmhlbHAgPSBOXygic2V0IHJlYWQtd3JpdGUiKQorCX0seworCQlJT0NUTF9FTlRSWShCTEtST0dFVCksCisJCS5uYW1lID0gIi0tZ2V0cm8iLAorCQkuYXJndHlwZSA9IEFSR19JTlQsCisJCS5hcmd2YWwgPSAtMSwKKwkJLmhlbHAgPSBOXygiZ2V0IHJlYWQtb25seSIpCisJfSx7CisJCUlPQ1RMX0VOVFJZKEJMS1NTWkdFVCksCisJCS5uYW1lID0gIi0tZ2V0c3MiLAorCQkuYXJndHlwZSA9IEFSR19JTlQsCisJCS5hcmd2YWwgPSAtMSwKKwkJLmhlbHAgPSBOXygiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIpCisJfSx7CisJCUlPQ1RMX0VOVFJZKEJMS1BCU1pHRVQpLAorCQkubmFtZSA9ICItLWdldHBic3oiLAorCQkuYXJndHlwZSA9IEFSR19VSU5ULAorCQkuYXJndmFsID0gLTEsCisJCS5oZWxwID0gTl8oImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIikKKwl9LHsKKwkJSU9DVExfRU5UUlkoQkxLSU9NSU4pLAorCQkubmFtZSA9ICItLWdldGlvbWluIiwKKwkJLmFyZ3R5cGUgPSBBUkdfVUlOVCwKKwkJLmFyZ3ZhbCA9IC0xLAorCQkuaGVscCA9IE5fKCJnZXQgbWluaW11bSBJL08gc2l6ZSIpCisJfSx7CisJCUlPQ1RMX0VOVFJZKEJMS0lPT1BUKSwKKwkJLm5hbWUgPSAiLS1nZXRpb29wdCIsCisJCS5hcmd0eXBlID0gQVJHX1VJTlQsCisJCS5hcmd2YWwgPSAtMSwKKwkJLmhlbHAgPSBOXygiZ2V0IG9wdGltYWwgSS9PIHNpemUiKQorCX0seworCQlJT0NUTF9FTlRSWShCTEtBTElHTk9GRiksCisJCS5uYW1lID0gIi0tZ2V0YWxpZ25vZmYiLAorCQkuYXJndHlwZSA9IEFSR19JTlQsCisJCS5hcmd2YWwgPSAtMSwKKwkJLmhlbHAgPSBOXygiZ2V0IGFsaWdubWVudCBvZmZzZXQiKQorCX0seworCQlJT0NUTF9FTlRSWShCTEtTRUNUR0VUKSwKKwkJLm5hbWUgPSAiLS1nZXRtYXhzZWN0IiwKKwkJLmFyZ3R5cGUgPSBBUkdfVVNIUlQsCisJCS5hcmd2YWwgPSAtMSwKKwkJLmhlbHAgPSBOXygiZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IikKKwl9LHsKKwkJSU9DVExfRU5UUlkoQkxLQlNaR0VUKSwKKwkJLm5hbWUgPSAiLS1nZXRic3oiLAorCQkuYXJndHlwZSA9IEFSR19JTlQsCisJCS5hcmd2YWwgPSAtMSwKKwkJLmhlbHAgPSBOXygiZ2V0IGJsb2Nrc2l6ZSIpCisJfSx7CisJCUlPQ1RMX0VOVFJZKEJMS0JTWlNFVCksCisJCS5uYW1lID0gIi0tc2V0YnN6IiwKKwkJLmFyZ25hbWUgPSAiQkxPQ0tTSVpFIiwKKwkJLmFyZ3R5cGUgPSBBUkdfSU5ULAorCQkuZmxhZ3MgPSBGTF9OT1JFU1VMVCwKKwkgICAgICAgIC5oZWxwID0gTl8oInNldCBibG9ja3NpemUiKQorCX0seworCQlJT0NUTF9FTlRSWShCTEtHRVRTSVpFKSwKKwkJLm5hbWUgPSAiLS1nZXRzaXplIiwKKwkJLmFyZ3R5cGUgPSBBUkdfVUxPTkcsCisJCS5hcmd2YWwgPSAtMSwKKwkJLmhlbHAgPSBOXygiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiKQorCX0seworCQlJT0NUTF9FTlRSWShCTEtHRVRTSVpFNjQpLAorCQkubmFtZSA9ICItLWdldHNpemU2NCIsCisJCS5hcmd0eXBlID0gQVJHX1VMTE9ORywKKwkJLmFyZ3ZhbCA9IC0xLAorCQkuaGVscCA9IE5fKCJnZXQgc2l6ZSBpbiBieXRlcyIpCisJfSx7CisJCUlPQ1RMX0VOVFJZKEJMS1JBU0VUKSwKKwkJLm5hbWUgPSAiLS1zZXRyYSIsCisJCS5hcmduYW1lID0gIlJFQURBSEVBRCIsCisJCS5hcmd0eXBlID0gQVJHX0lOVCwKKwkJLmZsYWdzID0gRkxfTk9QVFIgfCBGTF9OT1JFU1VMVCwKKwkJLmhlbHAgPSBOXygic2V0IHJlYWRhaGVhZCIpCisJfSx7CisJCUlPQ1RMX0VOVFJZKEJMS1JBR0VUKSwKKwkJLm5hbWUgPSAiLS1nZXRyYSIsCisJCS5hcmd0eXBlID0gQVJHX0xPTkcsCisJCS5hcmd2YWwgPSAtMSwKKwkJLmhlbHAgPSBOXygiZ2V0IHJlYWRhaGVhZCIpCisJfSx7CisJCUlPQ1RMX0VOVFJZKEJMS0ZSQVNFVCksCisJCS5uYW1lID0gIi0tc2V0ZnJhIiwKKwkJLmFyZ25hbWUgPSAiRlNSRUFEQUhFQUQiLAorCQkuYXJndHlwZSA9IEFSR19JTlQsCisJCS5mbGFncyA9IEZMX05PUFRSIHwgRkxfTk9SRVNVTFQsCisJCS5oZWxwID0gTl8oInNldCBmaWxlc3lzdGVtIHJlYWRhaGVhZCIpCisJfSx7CisJCUlPQ1RMX0VOVFJZKEJMS0ZSQUdFVCksCisJCS5uYW1lID0gIi0tZ2V0ZnJhIiwKKwkJLmFyZ3R5cGUgPSBBUkdfTE9ORywKKwkJLmFyZ3ZhbCA9IC0xLAorCQkuaGVscCA9IE5fKCJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiKQorCX0seworCQlJT0NUTF9FTlRSWShCTEtGTFNCVUYpLAorCQkubmFtZSA9ICItLWZsdXNoYnVmcyIsCisJCS5oZWxwID0gTl8oImZsdXNoIGJ1ZmZlcnMiKQorCX0seworCQlJT0NUTF9FTlRSWShCTEtSUlBBUlQpLAorCQkubmFtZSA9ICItLXJlcmVhZHB0IiwKKwkJLmhlbHAgPSBOXygicmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIpCisJfQorfTsKKworc3RhdGljIHZvaWQKK3VzYWdlKHZvaWQpIHsKKwlpbnQgaTsKKwlmcHV0YygnXG4nLCBzdGRlcnIpOworCWZwcmludGYoc3RkZXJyLCBfKCJVc2FnZTpcbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgIiAgJXMgLVZcbiIsIHByb2duYW1lKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICAlcyAtLXJlcG9ydCBbZGV2aWNlc11cbiIpLCBwcm9nbmFtZSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgJXMgWy12fC1xXSBjb21tYW5kcyBkZXZpY2VzXG4iKSwgcHJvZ25hbWUpOworCWZwdXRjKCdcbicsIHN0ZGVycik7CisKKwlmcHJpbnRmKHN0ZGVyciwgXygiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIikpOworCWZwcmludGYoc3RkZXJyLCAiXHQlLTMwcyAlc1xuIiwgIi0tZ2V0c3oiLAorCQkJXygiZ2V0IHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9ycyIpKTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShiZGNtcyk7IGkrKykgeworCQlpZiAoYmRjbXNbaV0uYXJnbmFtZSkKKwkJCWZwcmludGYoc3RkZXJyLCAiXHQlcyAlLSpzICVzXG4iLCBiZGNtc1tpXS5uYW1lLAorCQkJCQkoaW50KSAoMjkgLSBzdHJsZW4oYmRjbXNbaV0ubmFtZSkpLAorCQkJCQliZGNtc1tpXS5hcmduYW1lLCBfKGJkY21zW2ldLmhlbHApKTsKKwkJZWxzZQorCQkJZnByaW50ZihzdGRlcnIsICJcdCUtMzBzICVzXG4iLCBiZGNtc1tpXS5uYW1lLAorCQkJCQlfKGJkY21zW2ldLmhlbHApKTsKKwl9CisJZnB1dGMoJ1xuJywgc3RkZXJyKTsKKwlleGl0KDEpOworfQorCitzdGF0aWMgaW50CitmaW5kX2NtZChjaGFyICpzKSB7CisJaW50IGo7CisKKwlmb3IgKGogPSAwOyBqIDwgQVJSQVlfU0laRShiZGNtcyk7IGorKykKKwkJaWYgKCFzdHJjbXAocywgYmRjbXNbal0ubmFtZSkpCisJCQlyZXR1cm4gajsKKwlyZXR1cm4gLTE7Cit9CisKK3ZvaWQgZG9fY29tbWFuZHMoaW50IGZkLCBjaGFyICoqYXJndiwgaW50IGQpOwordm9pZCByZXBvcnRfaGVhZGVyKHZvaWQpOwordm9pZCByZXBvcnRfZGV2aWNlKGNoYXIgKmRldmljZSwgaW50IHF1aWV0KTsKK3ZvaWQgcmVwb3J0X2FsbF9kZXZpY2VzKHZvaWQpOworCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisJaW50IGZkLCBkLCBqLCBrOworCWNoYXIgKnA7CisKKwkvKiBlZ2NzLTIuOTEuNjYgaXMgYnVnZ3kgYW5kIHNheXM6CisJICAgYmxvY2tkZXYuYzo5Mzogd2FybmluZzogYGQnIG1pZ2h0IGJlIHVzZWQgdW5pbml0aWFsaXplZCAqLworCWQgPSAwOworCisJcHJvZ25hbWUgPSBhcmd2WzBdOworCWlmICgocCA9IHN0cnJjaHIocHJvZ25hbWUsICcvJykpICE9IE5VTEwpCisJCXByb2duYW1lID0gcCsxOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWlmIChhcmdjIDwgMikKKwkJdXNhZ2UoKTsKKworCS8qIC1WIG5vdCB0b2dldGhlciB3aXRoIGNvbW1hbmRzICovCisJaWYgKCFzdHJjbXAoYXJndlsxXSwgIi1WIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiLS12ZXJzaW9uIikpIHsKKwkJcHJpbnRmKCIlcyAoJXMpXG4iLCBwcm9nbmFtZSwgUEFDS0FHRV9TVFJJTkcpOworCQlleGl0KDApOworCX0KKworCS8qIC0tcmVwb3J0IG5vdCB0b2dldGhlciB3aXRoIG90aGVyIGNvbW1hbmRzICovCisJaWYgKCFzdHJjbXAoYXJndlsxXSwgIi0tcmVwb3J0IikpIHsKKwkJcmVwb3J0X2hlYWRlcigpOworCQlpZiAoYXJnYyA+IDIpIHsKKwkJCWZvciAoZCA9IDI7IGQgPCBhcmdjOyBkKyspCisJCQkJcmVwb3J0X2RldmljZShhcmd2W2RdLCAwKTsKKwkJfSBlbHNlIHsKKwkJCXJlcG9ydF9hbGxfZGV2aWNlcygpOworCQl9CisJCWV4aXQoMCk7CisJfQorCisJLyogZG8gZWFjaCBvZiB0aGUgY29tbWFuZHMgb24gZWFjaCBvZiB0aGUgZGV2aWNlcyAqLworCS8qIGRldmljZXMgc3RhcnQgYWZ0ZXIgbGFzdCBjb21tYW5kICovCisJZm9yIChkID0gMTsgZCA8IGFyZ2M7IGQrKykgeworCQlqID0gZmluZF9jbWQoYXJndltkXSk7CisJCWlmIChqID49IDApIHsKKwkJCWlmIChiZGNtc1tqXS5hcmduYW1lKQorCQkJCWQrKzsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICghc3RyY21wKGFyZ3ZbZF0sICItLWdldHN6IikpCisJCQljb250aW51ZTsKKwkJaWYgKCFzdHJjbXAoYXJndltkXSwgIi0tIikpIHsKKwkJCWQrKzsKKwkJCWJyZWFrOworCQl9CisJCWlmIChhcmd2W2RdWzBdICE9ICctJykKKwkJCWJyZWFrOworCX0KKworCWlmIChkID49IGFyZ2MpCisJCXVzYWdlKCk7CisKKwlmb3IgKGsgPSBkOyBrIDwgYXJnYzsgaysrKSB7CisJCWZkID0gb3Blbihhcmd2W2tdLCBPX1JET05MWSwgMCk7CisJCWlmIChmZCA8IDApIHsKKwkJCXBlcnJvcihhcmd2W2tdKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJZG9fY29tbWFuZHMoZmQsIGFyZ3YsIGQpOworCQljbG9zZShmZCk7CisJfQorCXJldHVybiAwOworfQorCit2b2lkCitkb19jb21tYW5kcyhpbnQgZmQsIGNoYXIgKiphcmd2LCBpbnQgZCkgeworCWludCByZXMsIGksIGo7CisJaW50IGlhcmc7CisJdW5zaWduZWQgaW50IHVhcmc7CisJdW5zaWduZWQgc2hvcnQgaHVhcmc7CisJbG9uZyBsYXJnOworCWxvbmcgbG9uZyBsbGFyZzsKKwl1bnNpZ25lZCBsb25nIGx1OworCXVuc2lnbmVkIGxvbmcgbG9uZyBsbHU7CisJaW50IHZlcmJvc2UgPSAwOworCisJZm9yIChpID0gMTsgaSA8IGQ7IGkrKykgeworCQlpZiAoIXN0cmNtcChhcmd2W2ldLCAiLXYiKSkgeworCQkJdmVyYm9zZSA9IDE7CisJCQljb250aW51ZTsKKwkJfQorCQlpZiAoIXN0cmNtcChhcmd2W2ldLCAiLXEiKSkgeworCQkJdmVyYm9zZSA9IDA7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmICghc3RyY21wKGFyZ3ZbaV0sICItLWdldHN6IikpIHsKKwkJCXJlcyA9IGJsa2Rldl9nZXRfc2VjdG9ycyhmZCwgJmxsdSk7CisJCQlpZiAocmVzID09IDApCisJCQkJcHJpbnRmKCIlbGxkXG4iLCBsbHUpOworCQkJZWxzZQorCQkJCWV4aXQoMSk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWogPSBmaW5kX2NtZChhcmd2W2ldKTsKKwkJaWYgKGogPT0gLTEpIHsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogVW5rbm93biBjb21tYW5kOiAlc1xuIiksCisJCQkJcHJvZ25hbWUsIGFyZ3ZbaV0pOworCQkJdXNhZ2UoKTsKKwkJfQorCisJCXN3aXRjaChiZGNtc1tqXS5hcmd0eXBlKSB7CisJCWRlZmF1bHQ6CisJCWNhc2UgQVJHX05PTkU6CisJCQlyZXMgPSBpb2N0bChmZCwgYmRjbXNbal0uaW9jLCAwKTsKKwkJCWJyZWFrOworCQljYXNlIEFSR19VU0hSVDoKKwkJCWh1YXJnID0gYmRjbXNbal0uYXJndmFsOworCQkJcmVzID0gaW9jdGwoZmQsIGJkY21zW2pdLmlvYywgJmh1YXJnKTsKKwkJCWJyZWFrOworCQljYXNlIEFSR19JTlQ6CisJCQlpZiAoYmRjbXNbal0uYXJnbmFtZSkgeworCQkJCWlmIChpID09IGQtMSkgeworCQkJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIpLAorCQkJCQkJYmRjbXNbal0ubmFtZSk7CisJCQkJCXVzYWdlKCk7CisJCQkJfQorCQkJCWlhcmcgPSBhdG9pKGFyZ3ZbKytpXSk7CisJCQl9IGVsc2UKKwkJCQlpYXJnID0gYmRjbXNbal0uYXJndmFsOworCisJCQlyZXMgPSBiZGNtc1tqXS5mbGFncyAmIEZMX05PUFRSID8KKwkJCQkJaW9jdGwoZmQsIGJkY21zW2pdLmlvYywgaWFyZykgOgorCQkJCQlpb2N0bChmZCwgYmRjbXNbal0uaW9jLCAmaWFyZyk7CisJCQlicmVhazsKKwkJY2FzZSBBUkdfVUlOVDoKKwkJCXVhcmcgPSBiZGNtc1tqXS5hcmd2YWw7CisJCQlyZXMgPSBpb2N0bChmZCwgYmRjbXNbal0uaW9jLCAmdWFyZyk7CisJCQlicmVhazsKKwkJY2FzZSBBUkdfTE9ORzoKKwkJCWxhcmcgPSBiZGNtc1tqXS5hcmd2YWw7CisJCQlyZXMgPSBpb2N0bChmZCwgYmRjbXNbal0uaW9jLCAmbGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSBBUkdfTExPTkc6CisJCQlsbGFyZyA9IGJkY21zW2pdLmFyZ3ZhbDsKKwkJCXJlcyA9IGlvY3RsKGZkLCBiZGNtc1tqXS5pb2MsICZsbGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSBBUkdfVUxPTkc6CisJCQlsdSA9IGJkY21zW2pdLmFyZ3ZhbDsKKwkJCXJlcyA9IGlvY3RsKGZkLCBiZGNtc1tqXS5pb2MsICZsdSk7CisJCQlicmVhazsKKwkJY2FzZSBBUkdfVUxMT05HOgorCQkJbGx1ID0gYmRjbXNbal0uYXJndmFsOworCQkJcmVzID0gaW9jdGwoZmQsIGJkY21zW2pdLmlvYywgJmxsdSk7CisJCQlicmVhazsKKwkJfQorCisJCWlmIChyZXMgPT0gLTEpIHsKKwkJCXBlcnJvcihiZGNtc1tqXS5pb2NuYW1lKTsKKwkJCWlmICh2ZXJib3NlKQorCQkJCXByaW50ZihfKCIlcyBmYWlsZWQuXG4iKSwgXyhiZGNtc1tqXS5oZWxwKSk7CisJCQlleGl0KDEpOworCQl9CisKKwkJaWYgKGJkY21zW2pdLmFyZ3R5cGUgPT0gQVJHX05PTkUgfHwKKwkJICAgIChiZGNtc1tqXS5mbGFncyAmIEZMX05PUkVTVUxUKSkgeworCQkJaWYgKHZlcmJvc2UpCisJCQkJcHJpbnRmKF8oIiVzIHN1Y2NlZWRlZC5cbiIpLCBfKGJkY21zW2pdLmhlbHApKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKHZlcmJvc2UpCisJCQlwcmludGYoIiVzOiAiLCBfKGJkY21zW2pdLmhlbHApKTsKKworCQlzd2l0Y2goYmRjbXNbal0uYXJndHlwZSkgeworCQljYXNlIEFSR19VU0hSVDoKKwkJCXByaW50ZigiJWh1XG4iLCBodWFyZyk7CisJCQlicmVhazsKKwkJY2FzZSBBUkdfSU5UOgorCQkJcHJpbnRmKCIlZFxuIiwgaWFyZyk7CisJCQlicmVhazsKKwkJY2FzZSBBUkdfVUlOVDoKKwkJCXByaW50ZigiJXVcbiIsIHVhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgQVJHX0xPTkc6CisJCQlwcmludGYoIiVsZFxuIiwgbGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSBBUkdfTExPTkc6CisJCQlwcmludGYoIiVsbGRcbiIsIGxsYXJnKTsKKwkJCWJyZWFrOworCQljYXNlIEFSR19VTE9ORzoKKwkJCXByaW50ZigiJWx1XG4iLCBsdSk7CisJCQlicmVhazsKKwkJY2FzZSBBUkdfVUxMT05HOgorCQkJcHJpbnRmKCIlbGx1XG4iLCBsbHUpOworCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKKyNkZWZpbmUgUFJPQ19QQVJUSVRJT05TICIvcHJvYy9wYXJ0aXRpb25zIgorCit2b2lkCityZXBvcnRfYWxsX2RldmljZXModm9pZCkgeworCUZJTEUgKnByb2NwdDsKKwljaGFyIGxpbmVbMjAwXTsKKwljaGFyIHB0bmFtZVsyMDBdOworCWNoYXIgZGV2aWNlWzIxMF07CisJaW50IG1hLCBtaSwgc3o7CisKKwlwcm9jcHQgPSBmb3BlbihQUk9DX1BBUlRJVElPTlMsICJyIik7CisJaWYgKCFwcm9jcHQpIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIiksCisJCQlwcm9nbmFtZSwgUFJPQ19QQVJUSVRJT05TKTsKKwkJZXhpdCgxKTsKKwl9CisKKwl3aGlsZSAoZmdldHMobGluZSwgc2l6ZW9mKGxpbmUpLCBwcm9jcHQpKSB7CisJCWlmIChzc2NhbmYgKGxpbmUsICIgJWQgJWQgJWQgJTIwMFteXG4gXSIsCisJCQkgICAgJm1hLCAmbWksICZzeiwgcHRuYW1lKSAhPSA0KQorCQkJY29udGludWU7CisKKwkJc3ByaW50ZihkZXZpY2UsICIvZGV2LyVzIiwgcHRuYW1lKTsKKwkJcmVwb3J0X2RldmljZShkZXZpY2UsIDEpOworCX0KKworCWZjbG9zZShwcm9jcHQpOworfQorCit2b2lkCityZXBvcnRfZGV2aWNlKGNoYXIgKmRldmljZSwgaW50IHF1aWV0KSB7CisJaW50IGZkOworCWludCBybywgc3N6LCBic3o7CisJbG9uZyByYTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXM7CisJc3RydWN0IGhkX2dlb21ldHJ5IGc7CisKKwlmZCA9IG9wZW4oZGV2aWNlLCBPX1JET05MWSB8IE9fTk9OQkxPQ0spOworCWlmIChmZCA8IDApIHsKKwkJaWYgKCFxdWlldCkKKwkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY2Fubm90IG9wZW4gJXNcbiIpLAorCQkJCXByb2duYW1lLCBkZXZpY2UpOworCQlyZXR1cm47CisJfQorCisJcm8gPSBzc3ogPSBic3ogPSAwOworCWcuc3RhcnQgPSByYSA9IDA7CisJaWYgKGlvY3RsIChmZCwgQkxLUk9HRVQsICZybykgPT0gMCAmJgorCSAgICBpb2N0bCAoZmQsIEJMS1JBR0VULCAmcmEpID09IDAgJiYKKwkgICAgaW9jdGwgKGZkLCBCTEtTU1pHRVQsICZzc3opID09IDAgJiYKKwkgICAgaW9jdGwgKGZkLCBCTEtCU1pHRVQsICZic3opID09IDAgJiYKKwkgICAgaW9jdGwgKGZkLCBIRElPX0dFVEdFTywgJmcpID09IDAgJiYKKwkgICAgYmxrZGV2X2dldF9zaXplIChmZCwgJmJ5dGVzKSA9PSAwKSB7CisJCXByaW50ZigiJXMgJTVsZCAlNWQgJTVkICUxMGxkICUxNWxsZCAgICVzXG4iLAorCQkgICAgICAgcm8gPyAicm8iIDogInJ3IiwgcmEsIHNzeiwgYnN6LCBnLnN0YXJ0LCBieXRlcywgZGV2aWNlKTsKKwl9IGVsc2UgeworCQlpZiAoIXF1aWV0KQorCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBpb2N0bCBlcnJvciBvbiAlc1xuIiksCisJCQkJcHJvZ25hbWUsIGRldmljZSk7CisJfQorCisJY2xvc2UoZmQpOworfQorCit2b2lkCityZXBvcnRfaGVhZGVyKCkgeworCXByaW50ZihfKCJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIFN0YXJ0U2VjICAgICAgICAgICAgU2l6ZSAgIERldmljZVxuIikpOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9jcmFtZnMuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvY3JhbWZzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRiMzJjYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvY3JhbWZzLmgKQEAgLTAsMCArMSw4MSBAQAorI2lmbmRlZiBfX0NSQU1GU19ICisjZGVmaW5lIF9fQ1JBTUZTX0gKKwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIHU4OwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1MTY7Cit0eXBlZGVmIHVuc2lnbmVkIGludCB1MzI7CisKKyNkZWZpbmUgQ1JBTUZTX01BR0lDCQkweDI4Y2QzZDQ1CS8qIHNvbWUgcmFuZG9tIG51bWJlciAqLworI2RlZmluZSBDUkFNRlNfU0lHTkFUVVJFCSJDb21wcmVzc2VkIFJPTUZTIgorCisvKgorICogV2lkdGggb2YgdmFyaW91cyBiaXRmaWVsZHMgaW4gc3RydWN0IGNyYW1mc19pbm9kZS4KKyAqIFByaW1hcmlseSB1c2VkIHRvIGdlbmVyYXRlIHdhcm5pbmdzIGluIG1rY3JhbWZzLgorICovCisjZGVmaW5lIENSQU1GU19NT0RFX1dJRFRIIDE2CisjZGVmaW5lIENSQU1GU19VSURfV0lEVEggMTYKKyNkZWZpbmUgQ1JBTUZTX1NJWkVfV0lEVEggMjQKKyNkZWZpbmUgQ1JBTUZTX0dJRF9XSURUSCA4CisjZGVmaW5lIENSQU1GU19OQU1FTEVOX1dJRFRIIDYKKyNkZWZpbmUgQ1JBTUZTX09GRlNFVF9XSURUSCAyNgorCisKKy8qCisgKiBSZWFzb25hYmx5IHRlcnNlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbm9kZSBkYXRhLgorICovCitzdHJ1Y3QgY3JhbWZzX2lub2RlIHsKKwl1MzIgbW9kZToxNiwgdWlkOjE2OworCS8qIFNJWkUgZm9yIGRldmljZSBmaWxlcyBpcyBpX3JkZXYgKi8KKwl1MzIgc2l6ZToyNCwgZ2lkOjg7CisJLyogTkFNRUxFTiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBmaWxlIG5hbWUsIGRpdmlkZWQgYnkgNCBhbmQKKyAgICAgICAgICAgcm91bmRlZCB1cC4gIChjcmFtZnMgZG9lc24ndCBzdXBwb3J0IGhhcmQgbGlua3MuKSAqLworCS8qIE9GRlNFVDogRm9yIHN5bWxpbmtzIGFuZCBub24tZW1wdHkgcmVndWxhciBmaWxlcywgdGhpcworCSAgIGNvbnRhaW5zIHRoZSBvZmZzZXQgKGRpdmlkZWQgYnkgNCkgb2YgdGhlIGZpbGUgZGF0YSBpbgorCSAgIGNvbXByZXNzZWQgZm9ybSAoc3RhcnRpbmcgd2l0aCBhbiBhcnJheSBvZiBibG9jayBwb2ludGVyczsKKwkgICBzZWUgUkVBRE1FKS4gIEZvciBub24tZW1wdHkgZGlyZWN0b3JpZXMgaXQgaXMgdGhlIG9mZnNldAorCSAgIChkaXZpZGVkIGJ5IDQpIG9mIHRoZSBpbm9kZSBvZiB0aGUgZmlyc3QgZmlsZSBpbiB0aGF0CisJICAgZGlyZWN0b3J5LiAgRm9yIGFueXRoaW5nIGVsc2UsIG9mZnNldCBpcyB6ZXJvLiAqLworCXUzMiBuYW1lbGVuOjYsIG9mZnNldDoyNjsKK307CisKK3N0cnVjdCBjcmFtZnNfaW5mbyB7CisgICAgICAgIHUzMiBjcmM7CisgICAgICAgIHUzMiBlZGl0aW9uOworICAgICAgICB1MzIgYmxvY2tzOworICAgICAgICB1MzIgZmlsZXM7Cit9OworCisvKgorICogU3VwZXJibG9jayBpbmZvcm1hdGlvbiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBGUy4KKyAqLworc3RydWN0IGNyYW1mc19zdXBlciB7CisJdTMyIG1hZ2ljOwkJLyogMHgyOGNkM2Q0NSAtIHJhbmRvbSBudW1iZXIgKi8KKwl1MzIgc2l6ZTsJCS8qIE5vdCB1c2VkLiAgbWtjcmFtZnMgY3VycmVudGx5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlcyBhIGNvbnN0YW50IDE8PDE2IGhlcmUuICovCisJdTMyIGZsYWdzOwkJLyogMCAqLworCXUzMiBmdXR1cmU7CQkvKiAwICovCisJdTggc2lnbmF0dXJlWzE2XTsJLyogIkNvbXByZXNzZWQgUk9NRlMiICovCisJc3RydWN0IGNyYW1mc19pbmZvIGZzaWQ7LyogdW5pcXVlIGZpbGVzeXN0ZW0gaW5mbyAqLworCXU4IG5hbWVbMTZdOwkJLyogdXNlci1kZWZpbmVkIG5hbWUgKi8KKwlzdHJ1Y3QgY3JhbWZzX2lub2RlIHJvb3Q7CS8qIFJvb3QgaW5vZGUgZGF0YSAqLworfTsKKworI2RlZmluZSBDUkFNRlNfRkxBR19GU0lEX1ZFUlNJT05fMiAgICAgIDB4MDAwMDAwMDEgICAgICAvKiBmc2lkIHZlcnNpb24gIzIgKi8KKyNkZWZpbmUgQ1JBTUZTX0ZMQUdfU09SVEVEX0RJUlMgICAgICAgICAweDAwMDAwMDAyICAgICAgLyogc29ydGVkIGRpcnMgKi8KKyNkZWZpbmUgQ1JBTUZTX0ZMQUdfSE9MRVMgICAgICAgICAgICAgICAweDAwMDAwMTAwICAgICAgLyogc3VwcG9ydCBmb3IgaG9sZXMgKi8KKyNkZWZpbmUgQ1JBTUZTX0ZMQUdfV1JPTkdfU0lHTkFUVVJFICAgICAweDAwMDAwMjAwICAgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgQ1JBTUZTX0ZMQUdfU0hJRlRFRF9ST09UX09GRlNFVCAweDAwMDAwNDAwICAgICAgLyogc2hpZnRlZCByb290IGZzICovCisKKy8qCisgKiBWYWxpZCB2YWx1ZXMgaW4gc3VwZXIuZmxhZ3MuICBDdXJyZW50bHkgd2UgcmVmdXNlIHRvIG1vdW50CisgKiBpZiAoZmxhZ3MgJiB+Q1JBTUZTX1NVUFBPUlRFRF9GTEFHUykuICBNYXliZSB0aGF0IHNob3VsZCBiZQorICogY2hhbmdlZCB0byB0ZXN0IHN1cGVyLmZ1dHVyZSBpbnN0ZWFkLgorICovCisjZGVmaW5lIENSQU1GU19TVVBQT1JURURfRkxBR1MgKDB4ZmYpCisKKy8qIFVuY29tcHJlc3Npb24gaW50ZXJmYWNlcyB0byB0aGUgdW5kZXJseWluZyB6bGliICovCitpbnQgY3JhbWZzX3VuY29tcHJlc3NfYmxvY2sodm9pZCAqZHN0LCBpbnQgZHN0bGVuLCB2b2lkICpzcmMsIGludCBzcmNsZW4pOworaW50IGNyYW1mc191bmNvbXByZXNzX2luaXQodm9pZCk7CitpbnQgY3JhbWZzX3VuY29tcHJlc3NfZXhpdCh2b2lkKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL2NyYW1mc19jb21tb24uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvY3JhbWZzX2NvbW1vbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZGFkOWIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL2NyYW1mc19jb21tb24uYwpAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIGNyYW1mc19jb21tb24gLSBjcmFtZnMgY29tbW9uIGNvZGUKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggUm95IFBlbGVkLCB0aGUucm95LnBlbGVkICAtYXQtICBnbWFpbC5jb20KKyAqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2IGJ5IE1pY2hhZWwgSG9senQsIGtqdSAtYXQtIGZxZG4ub3JnCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqLworCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSAiY3JhbWZzX2NvbW1vbi5oIgorI2luY2x1ZGUgIi4uL2luY2x1ZGUvYml0b3BzLmgiCisKK3UzMiB1MzJfdG9nZ2xlX2VuZGlhbm5lc3MoaW50IGJpZ19lbmRpYW4sIHUzMiB3aGF0KQoreworCXJldHVybiBiaWdfZW5kaWFuID09IEhPU1RfSVNfQklHX0VORElBTiA/IHdoYXQgOiBzd2FiMzIod2hhdCk7Cit9CisKK3ZvaWQgc3VwZXJfdG9nZ2xlX2VuZGlhbm5lc3MoaW50IGJpZ19lbmRpYW4sIHN0cnVjdCBjcmFtZnNfc3VwZXIgKnN1cGVyKQoreworCWlmIChiaWdfZW5kaWFuICE9IEhPU1RfSVNfQklHX0VORElBTikgeworCQlzdXBlci0+bWFnaWMgPSBzd2FiMzIoc3VwZXItPm1hZ2ljKTsKKwkJc3VwZXItPnNpemUgPSBzd2FiMzIoc3VwZXItPnNpemUpOworCQlzdXBlci0+ZmxhZ3MgPSBzd2FiMzIoc3VwZXItPmZsYWdzKTsKKwkJc3VwZXItPmZ1dHVyZSA9IHN3YWIzMihzdXBlci0+ZnV0dXJlKTsKKwkJc3VwZXItPmZzaWQuY3JjID0gc3dhYjMyKHN1cGVyLT5mc2lkLmNyYyk7CisJCXN1cGVyLT5mc2lkLmVkaXRpb24gPSBzd2FiMzIoc3VwZXItPmZzaWQuZWRpdGlvbik7CisJCXN1cGVyLT5mc2lkLmJsb2NrcyA9IHN3YWIzMihzdXBlci0+ZnNpZC5ibG9ja3MpOworCQlzdXBlci0+ZnNpZC5maWxlcyA9IHN3YWIzMihzdXBlci0+ZnNpZC5maWxlcyk7CQorCX0KK30KKwordm9pZCBpbm9kZV90b2dnbGVfZW5kaWFubmVzcyhpbnQgaW5wdXRfYmlnX2VuZGlhbiwgaW50IG91dHB1dF9iaWdfZW5kaWFuLCBzdHJ1Y3QgY3JhbWZzX2lub2RlICppbm9kZV9pbiwgc3RydWN0IGNyYW1mc19pbm9kZSAqaW5vZGVfb3V0KQoreworCWlmIChpbnB1dF9iaWdfZW5kaWFuID09IG91dHB1dF9iaWdfZW5kaWFuKSB7CisJCW1lbW1vdmUoaW5vZGVfb3V0LCBpbm9kZV9pbiwgc2l6ZW9mKCppbm9kZV9vdXQpKTsKKwl9CisJZWxzZSB7CisJCXVuc2lnbmVkIGNoYXIgaW5vZGVfb3V0X2J1ZltzaXplb2YoKmlub2RlX2luKV07CisJCXVuc2lnbmVkIGNoYXIgKmlub2RlX2luX2J1ZiA9ICh1bnNpZ25lZCBjaGFyKilpbm9kZV9pbjsKKworCQlpbm9kZV9vdXRfYnVmWzBdID0gaW5vZGVfaW5fYnVmWzFdOyAvKiAxNiBiaXQ6IG1vZGUgKi8KKwkJaW5vZGVfb3V0X2J1ZlsxXSA9IGlub2RlX2luX2J1ZlswXTsKKworCQlpbm9kZV9vdXRfYnVmWzJdID0gaW5vZGVfaW5fYnVmWzNdOyAvKiAxNiBiaXQ6IHVpZCAqLworCQlpbm9kZV9vdXRfYnVmWzNdID0gaW5vZGVfaW5fYnVmWzJdOyAKKworCQlpbm9kZV9vdXRfYnVmWzRdID0gaW5vZGVfaW5fYnVmWzZdOyAvKiAyNCBiaXQ6IHNpemUgKi8KKwkJaW5vZGVfb3V0X2J1Zls1XSA9IGlub2RlX2luX2J1Zls1XTsKKwkJaW5vZGVfb3V0X2J1Zls2XSA9IGlub2RlX2luX2J1Zls0XTsKKworCQlpbm9kZV9vdXRfYnVmWzddID0gaW5vZGVfaW5fYnVmWzddOyAvKiA4IGJpdDogZ2lkIHdpZHRoICovCisKKwkJLyogU3RvcCB0aGUgbWFkbmVzcyEgT3V0bGF3IEMgYml0ZmllbGRzISBUaGV5IGFyZSB1bnBvcnRhYmxlIGFuZCBuYXN0eSEKKwkJU2VlIGZvciB5b3Vyc2VsZiB3aGF0IGEgbWVzcyB0aGlzIGlzOiAqLworCisJCWlmIChvdXRwdXRfYmlnX2VuZGlhbikgeworCQkJaW5vZGVfb3V0X2J1ZlsgOF0gPSAoIChpbm9kZV9pbl9idWZbIDhdJjB4M0YpIDw8IDIgKSB8IAorCQkJCSggKGlub2RlX2luX2J1ZlsxMV0mMHhDMCkgPj4gNiApOworCisJCQlpbm9kZV9vdXRfYnVmWyA5XSA9ICggKGlub2RlX2luX2J1ZlsxMV0mMHgzRikgPDwgMiApIHwKKwkJCQkoIChpbm9kZV9pbl9idWZbMTBdJjB4QzApID4+IDYgKTsKKworCQkJaW5vZGVfb3V0X2J1ZlsxMF0gPSAoIChpbm9kZV9pbl9idWZbMTBdJjB4M0YpIDw8IDIgKSB8CisJCQkJKCAoaW5vZGVfaW5fYnVmWyA5XSYweEMwKSA+PiA2ICk7CisKKwkJCWlub2RlX291dF9idWZbMTFdID0gKCAoaW5vZGVfaW5fYnVmWyA5XSYweDNGKSA8PCAyICkgfAorCQkJCSggKGlub2RlX2luX2J1ZlsgOF0mMHhDMCkgPj4gNiApOworCQl9CisJCWVsc2UgeworCQkJaW5vZGVfb3V0X2J1ZlsgOF0gPSAoIChpbm9kZV9pbl9idWZbIDhdJjB4RkQpID4+IDIgKSB8IAorCQkJCSggKGlub2RlX2luX2J1ZlsxMV0mMHgwMykgPDwgNiApOworCisJCQlpbm9kZV9vdXRfYnVmWyA5XSA9ICggKGlub2RlX2luX2J1ZlsxMV0mMHhGRCkgPj4gMiApIHwgCisJCQkJKCAoaW5vZGVfaW5fYnVmWzEwXSYweDAzKSA8PCA2ICk7CisKKwkJCWlub2RlX291dF9idWZbMTBdID0gKCAoaW5vZGVfaW5fYnVmWzEwXSYweEZEKSA+PiAyICkgfCAKKwkJCQkoIChpbm9kZV9pbl9idWZbIDldJjB4MDMpIDw8IDYgKTsKKworCQkJaW5vZGVfb3V0X2J1ZlsxMV0gPSAoIChpbm9kZV9pbl9idWZbIDldJjB4RkQpID4+IDIgKSB8IAorCQkJCSggKGlub2RlX2luX2J1ZlsgOF0mMHgwMykgPDwgNiApOworCQl9CisKKwkJbWVtbW92ZShpbm9kZV9vdXQsIGlub2RlX291dF9idWYsIHNpemVvZigqaW5vZGVfb3V0KSk7CisJfQorfQorCit2b2lkIGlub2RlX3RvX2hvc3QoaW50IGZyb21fYmlnX2VuZGlhbiwgc3RydWN0IGNyYW1mc19pbm9kZSAqaW5vZGVfaW4sIHN0cnVjdCBjcmFtZnNfaW5vZGUgKmlub2RlX291dCkKK3sKKwlpbm9kZV90b2dnbGVfZW5kaWFubmVzcyhmcm9tX2JpZ19lbmRpYW4sIEhPU1RfSVNfQklHX0VORElBTiwgaW5vZGVfaW4sIGlub2RlX291dCk7Cit9CisKK3ZvaWQgaW5vZGVfZnJvbV9ob3N0KGludCB0b19iaWdfZW5kaWFuLCBzdHJ1Y3QgY3JhbWZzX2lub2RlICppbm9kZV9pbiwgc3RydWN0IGNyYW1mc19pbm9kZSAqaW5vZGVfb3V0KQoreworCWlub2RlX3RvZ2dsZV9lbmRpYW5uZXNzKEhPU1RfSVNfQklHX0VORElBTiwgdG9fYmlnX2VuZGlhbiwgaW5vZGVfaW4sIGlub2RlX291dCk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL2NyYW1mc19jb21tb24uaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvY3JhbWZzX2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMTFiY2UKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL2NyYW1mc19jb21tb24uaApAQCAtMCwwICsxLDM3IEBACisvKgorICogY3JhbWZzX2NvbW1vbiAtIGNyYW1mcyBjb21tb24gY29kZQorICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBSb3kgUGVsZWQsIHRoZS5yb3kucGVsZWQgIC1hdC0gIGdtYWlsCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNiBieSBNaWNoYWVsIEhvbHp0LCBranUgLWF0LSBmcWRuLm9yZworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKi8KKworI2lmbmRlZiBfX0NSQU1GU19DT01NT05fSAorI2RlZmluZSBfX0NSQU1GU19DT01NT05fSAorCisjaW5jbHVkZSAiY3JhbWZzLmgiCisKKyNpZm5kZWYgSE9TVF9JU19CSUdfRU5ESUFOCisjaWZkZWYgV09SRFNfQklHRU5ESUFOCisjZGVmaW5lIEhPU1RfSVNfQklHX0VORElBTiAxCisjZWxzZQorI2RlZmluZSBIT1NUX0lTX0JJR19FTkRJQU4gMAorI2VuZGlmCisjZW5kaWYKKwordTMyIHUzMl90b2dnbGVfZW5kaWFubmVzcyhpbnQgYmlnX2VuZGlhbiwgdTMyIHdoYXQpOwordm9pZCBzdXBlcl90b2dnbGVfZW5kaWFubmVzcyhpbnQgZnJvbV9iaWdfZW5kaWFuLCBzdHJ1Y3QgY3JhbWZzX3N1cGVyICpzdXBlcik7Cit2b2lkIGlub2RlX3RvX2hvc3QoaW50IGZyb21fYmlnX2VuZGlhbiwgc3RydWN0IGNyYW1mc19pbm9kZSAqaW5vZGVfaW4sIHN0cnVjdCBjcmFtZnNfaW5vZGUgKmlub2RlX291dCk7Cit2b2lkIGlub2RlX2Zyb21faG9zdChpbnQgdG9fYmlnX2VuZGlhbiwgc3RydWN0IGNyYW1mc19pbm9kZSAqaW5vZGVfaW4sIHN0cnVjdCBjcmFtZnNfaW5vZGUgKmlub2RlX291dCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9lbHZ0dW5lLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL2VsdnR1bmUuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWNiYWU4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9lbHZ0dW5lLjgKQEAgLTAsMCArMSw2NSBAQAorLlwiIC0qLSBucm9mZiAtKi0KKy5USCBFTFZUVU5FIDggIjE0IE1hcmNoIDIwMDAiICJWZXJzaW9uIDEuMCIKKy5TSCBOQU1FCitlbHZ0dW5lIFwtIEkvTyBlbGV2YXRvciB0dW5lcgorLlNIIFNZTk9QU0lTCisuQiBlbHZ0dW5lCisuUkIgWyBcLXIKKy5JUiByX2xhdCBdCisuUkIgWyBcLXcKKy5JUiB3X2xhdCBdCisuUkIgWyBcLWIKKy5JUiBiX21heCBdCisuSVIgZGV2aWNlIC4uLgorLmJyCisuQiBlbHZ0dW5lIFwtaAorLmJyCisuQiBlbHZ0dW5lIFwtdgorLlNIIERFU0NSSVBUSU9OCisuQiBlbHZ0dW5lCithbGxvd3MgdG8gdHVuZSB0aGUgSS9PIGVsZXZhdG9yIHBlciBibG9ja2RldmljZSBxdWV1ZSBiYXNpcy4gVGhlCit0dW5pbmcgY2FuIGJlIHNhZmVseSBkb25lIGF0IHJ1bnRpbWUuIFR1bmluZyB0aGUgZWxldmF0b3IgbWVhbnMKK2JlaW5nIGFibGUgdG8gY2hhbmdlIGRpc2sgcGVyZm9ybWFuY2UgYW5kIGludGVyYWN0aXZlbmVzcy4gSW4gdGhlCitvdXRwdXQgb2YgZWx2dHVuZSB0aGUgYWRkcmVzcyBvZiB0aGUgcXVldWUgdHVuZWQgd2lsbCBiZSBzaG93bgorYW5kIGl0IGNhbiBiZSBjb25zaWRlcmVkIGFzIGEgcXVldWUgSUQuCitGb3IgZXhhbXBsZSBtdWx0aXBsZSBwYXJ0aXRpb25zIGluIHRoZSBzYW1lIGhhcmRkaXNrIHdpbGwKK3NoYXJlIHRoZSBzYW1lIHF1ZXVlIGFuZCBzbyB0dW5pbmcgb25lIHBhcnRpdGlvbiB3aWxsIGJlCitsaWtlIHR1bmluZyB0aGUgd2hvbGUgSEQuCisuU0ggT1BUSU9OUworLlRQCisuQkkgLXIgXCByX2xhdAorc2V0IHRoZSBtYXggbGF0ZW5jeSB0aGF0IHRoZSBJL08gc2NoZWR1bGVyIHdpbGwgcHJvdmlkZSBvbgorZWFjaCByZWFkLgorLlRQCisuQkkgLXcgXCB3X2xhdAorc2V0IHRoZSBtYXggbGF0ZW5jeSB0aGF0IHRoZSBJL08gc2NoZWR1bGVyIHdpbGwgcHJvdmlkZSBvbgorZWFjaCB3cml0ZS4KKy5UUAorLkJJIC1iIFwgYl9tYXgKK21heCBjb2FsZXNjaW5nIGZhY3RvciBhbGxvd2VkIG9uIHdyaXRlcyB3aGVuIHRoZXJlIGFyZSByZWFkcworcGVuZGluZyBpbiB0aGUgcXVldWUuCisuVFAKKy5CSSAtaAoraGVscC4KKy5UUAorLkJJIC12Cit2ZXJzaW9uLgorLlNIIE5PVEUKK0FjdHVhbGx5IHRoZSBvbmx5IGZpZWxkcyB0dW5hYmxlIGFyZSB0aG9zZSByZWxhdGl2ZQordG8gdGhlIElPIHNjaGVkdWxlci4gSXQncyBub3QgcG9zc2libGUgdG8gc2VsZWN0CithIG9uZS13YXkgb3IgdHdvLXdheSBlbGV2YXRvciB5ZXQuCisuUFAKK0ZvciBsb2dpY2FsIGJsb2NrZGV2aWNlcyBsaWtlIExWTSB0aGUgdHVuaW5nIGhhcyB0bworYmUgZG9uZSBvbiB0aGUKKy5JIHBoeXNpY2FsCitkZXZpY2VzLiBUdW5pbmcgdGhlIHF1ZXVlIG9mIHRoZSBMVk0gbG9naWNhbCBkZXZpY2UKK2lzIHVzZWxlc3MuCisuU0ggUkVUVVJOIFZBTFVFCiswIG9uIHN1Y2Nlc3MgYW5kIDEgb24gZmFpbHVyZS4KKy5TSCBISVNUT1JZCitJb2N0bHMgZm9yIHR1bmluZyBlbGV2YXRvciBiZWhhdmlvdXIgd2VyZSBhZGRlZCBpbiBMaW51eCAyLjMuOTktcHJlMS4KKy5TSCBBVVRIT1JTCitBbmRyZWEgQXJjYW5nZWxpIDxhbmRyZWFAc3VzZS5kZT4gU3VTRQorLlNIIEFWQUlMQUJJTElUWQorVGhlIGVsdnR1bmUgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL2VsdnR1bmUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvZWx2dHVuZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1YmIzNzgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL2VsdnR1bmUuYwpAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqICBlbHZ0dW5lLmMgLSBJL08gZWxldmF0b3IgdHVuZXIKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDAwIEFuZHJlYSBBcmNhbmdlbGkgPGFuZHJlYUBzdXNlLmRlPiBTdVNFCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqICBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbAorICogIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIuCisgKi8KKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisjaW5jbHVkZSAibmxzLmgiCisjaW5jbHVkZSAiYmxrZGV2LmgiCisjaW5jbHVkZSAibGludXhfdmVyc2lvbi5oIgorCisvKiB0aGlzIGhhcyB0byBtYXRjaCB3aXRoIHRoZSBrZXJuZWwgc3RydWN0dXJlICovCisvKiBjdXJyZW50IHZlcnNpb24gZm9yIGFjMTkgYW5kIDIuMi4xNiAqLwordHlwZWRlZiBzdHJ1Y3QgYmxrZWx2X2lvY3RsX2FyZ19zIHsKKwlpbnQgcXVldWVfSUQ7CisJaW50IHJlYWRfbGF0ZW5jeTsKKwlpbnQgd3JpdGVfbGF0ZW5jeTsKKwlpbnQgbWF4X2JvbWJfc2VnbWVudHM7Cit9IGJsa2Vsdl9pb2N0bF9hcmdfdDsKKworc3RhdGljIHZvaWQKK3VzYWdlKHZvaWQpIHsKKwlmcHJpbnRmKHN0ZGVyciwgImVsdnR1bmUgKCVzKVxuIiwgUEFDS0FHRV9TVFJJTkcpOworCWZwcmludGYoc3RkZXJyLCBfKCJ1c2FnZTpcbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgIlx0ZWx2dHVuZSBbLXIgcl9sYXRdIFstdyB3X2xhdF0gWy1iIGJfbGF0XSIKKwkJICAgICAgICAiIC9kZXYvYmxrZGV2MSBbL2Rldi9ibGtkZXYyLi4uXVxuIik7CisJZnByaW50ZihzdGRlcnIsICJcdGVsdnR1bmUgLWhcbiIpOworCWZwcmludGYoc3RkZXJyLCAiXHRlbHZ0dW5lIC12XG4iKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiXHROT1RFOiBlbHZ0dW5lIG9ubHkgd29ya3Mgd2l0aCAyLjQga2VybmVsc1xuIikpOworCS8qIChpb2N0bHMgZXhpc3QgaW4gMi4yLjE2IC0gMi41LjU3KSAqLworfQorCitzdGF0aWMgdm9pZAordmVyc2lvbih2b2lkKSB7CisJZnByaW50ZihzdGRlcnIsICJlbHZ0dW5lICglcylcbiIsIFBBQ0tBR0VfU1RSSU5HKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICogYXJndltdKSB7CisJaW50IHJlYWRfdmFsdWUgPSAweGJlZWZiZWVmLCB3cml0ZV92YWx1ZSA9IDB4YmVlZmJlZWYsIGJvbWJfdmFsdWUgPSAweGJlZWZiZWVmOworCWludCByZWFkX3NldCwgd3JpdGVfc2V0LCBib21iX3NldCwgc2V0OworCWNoYXIgKiBkZXZuYW1lOworCWludCBmZDsKKwlibGtlbHZfaW9jdGxfYXJnX3QgZWxldmF0b3I7CisKKwlyZWFkX3NldCA9IHdyaXRlX3NldCA9IGJvbWJfc2V0ID0gc2V0ID0gMDsKKworCXNldGxvY2FsZShMQ19NRVNTQUdFUywgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWZvciAoOzspIHsKKwkJaW50IG9wdDsKKworCQlvcHQgPSBnZXRvcHQoYXJnYywgYXJndiwgInI6dzpiOmh2Iik7CisJCWlmIChvcHQgPT0gLTEpCisJCQlicmVhazsKKwkJc3dpdGNoIChvcHQpIHsKKwkJY2FzZSAncic6CisJCQlyZWFkX3ZhbHVlID0gYXRvaShvcHRhcmcpOworCQkJcmVhZF9zZXQgPSBzZXQgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3cnOgorCQkJd3JpdGVfdmFsdWUgPSBhdG9pKG9wdGFyZyk7CisJCQl3cml0ZV9zZXQgPSBzZXQgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ2InOgorCQkJYm9tYl92YWx1ZSA9IGF0b2kob3B0YXJnKTsKKwkJCWJvbWJfc2V0ID0gc2V0ID0gMTsKKwkJCWJyZWFrOworCisJCWNhc2UgJ2gnOgorCQkJdXNhZ2UoKSwgZXhpdCgwKTsKKwkJY2FzZSAndic6CisJCQl2ZXJzaW9uKCksIGV4aXQoMCk7CisKKwkJY2FzZSAnPyc6CisJCWRlZmF1bHQ6CisJCWNhc2UgJzonOgorCQkJZnByaW50ZihzdGRlcnIsIF8oInBhcnNlIGVycm9yXG4iKSk7CisJCQlleGl0KDEpOworCQl9CisJfQorCisJaWYgKG9wdGluZCA+PSBhcmdjKQorCQlmcHJpbnRmKHN0ZGVyciwgXygibWlzc2luZyBibG9ja2RldmljZSwgdXNlIC1oIGZvciBoZWxwXG4iKSksIGV4aXQoMSk7CisKKwl3aGlsZSAob3B0aW5kIDwgYXJnYykgeworCQlkZXZuYW1lID0gYXJndltvcHRpbmQrK107CisKKwkJZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZfE9fTk9OQkxPQ0spOworCQlpZiAoZmQgPCAwKSB7CisJCQlwZXJyb3IoIm9wZW4iKTsKKwkJCWJyZWFrOworCQl9CisKKwkJLyogbW1qOiBJZiB3ZSBnZXQgRUlOVkFMIGl0J3Mgbm90IGEgMi40IGtlcm5lbCwgc28gd2FybiBhYm91dAorCQkgICB0aGF0IGFuZCBleGl0LiBJdCBzaG91bGQgcmV0dXJuIEVOT1RUWSBob3dldmVyLCBzbyBjaGVjayBmb3IKKwkJICAgdGhhdCBhcyB3ZWxsIGluIGNhc2UgaXQgZ2V0cyBjb3JyZWN0ZWQgaW4gdGhlIGZ1dHVyZSAqLworCisJCWlmIChpb2N0bChmZCwgQkxLRUxWR0VULCAmZWxldmF0b3IpIDwgMCkgeworCQkJaW50IGVycnN2ID0gZXJybm87CisJCQlwZXJyb3IoImlvY3RsIGdldCIpOworCQkJaWYgKChlcnJzdiA9PSBFSU5WQUwgfHwgZXJyc3YgPT0gRU5PVFRZKSAmJgorCQkJICAgIGdldF9saW51eF92ZXJzaW9uKCkgPj0gS0VSTkVMX1ZFUlNJT04oMiw1LDU4KSkgeworCQkJCWZwcmludGYoc3RkZXJyLAorCQkJCQlfKCJcbmVsdnR1bmUgaXMgb25seSB1c2VmdWwgb24gb2xkZXIgIgorCQkJCQkia2VybmVscztcbmZvciAyLjYgdXNlIElPIHNjaGVkdWxlciAiCisJCQkJCSJzeXNmcyB0dW5hYmxlcyBpbnN0ZWFkLi5cbiIpKTsKKwkJCX0KKwkJCWJyZWFrOworCQl9CisKKwkJaWYgKHNldCkgeworCQkJaWYgKHJlYWRfc2V0KQorCQkJCWVsZXZhdG9yLnJlYWRfbGF0ZW5jeSA9IHJlYWRfdmFsdWU7CisJCQlpZiAod3JpdGVfc2V0KQorCQkJCWVsZXZhdG9yLndyaXRlX2xhdGVuY3kgPSB3cml0ZV92YWx1ZTsKKwkJCWlmIChib21iX3NldCkKKwkJCQllbGV2YXRvci5tYXhfYm9tYl9zZWdtZW50cyA9IGJvbWJfdmFsdWU7CisKKwkJCWlmIChpb2N0bChmZCwgQkxLRUxWU0VULCAmZWxldmF0b3IpIDwgMCkgeworCQkJCXBlcnJvcigiaW9jdGwgc2V0Iik7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoaW9jdGwoZmQsIEJMS0VMVkdFVCwgJmVsZXZhdG9yKSA8IDApIHsKKwkJCQlwZXJyb3IoImlvY3RsIHJlZ2V0Iik7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlwcmludGYoIlxuJXMgZWxldmF0b3IgSURcdFx0JWRcbiIsIGRldm5hbWUsIGVsZXZhdG9yLnF1ZXVlX0lEKTsKKwkJcHJpbnRmKCJcdHJlYWRfbGF0ZW5jeTpcdFx0JWRcbiIsIGVsZXZhdG9yLnJlYWRfbGF0ZW5jeSk7CisJCXByaW50ZigiXHR3cml0ZV9sYXRlbmN5Olx0XHQlZFxuIiwgZWxldmF0b3Iud3JpdGVfbGF0ZW5jeSk7CisJCXByaW50ZigiXHRtYXhfYm9tYl9zZWdtZW50czpcdCVkXG5cbiIsIGVsZXZhdG9yLm1heF9ib21iX3NlZ21lbnRzKTsKKworCQlpZiAoY2xvc2UoZmQpIDwgMCkgeworCQkJcGVycm9yKCJjbG9zZSIpOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvZmRmb3JtYXQuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvZmRmb3JtYXQuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmZjMDBjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9mZGZvcm1hdC44CkBAIC0wLDAgKzEsNjIgQEAKKy5cIiBDb3B5cmlnaHQgMTk5MiwgMTk5MyBSaWNrYXJkIEUuIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlwiIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5USCBGREZPUk1BVCA4ICIxIEZlYnJ1YXJ5IDE5OTMiICJMaW51eCAwLjk5IiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCBOQU1FCitmZGZvcm1hdCBcLSBMb3ctbGV2ZWwgZm9ybWF0cyBhIGZsb3BweSBkaXNrCisuU0ggU1lOT1BTSVMKKy5CIGZkZm9ybWF0CisuUkIgWyBcLW4gXQorLkkgZGV2aWNlCisuU0ggREVTQ1JJUFRJT04KKy5CIGZkZm9ybWF0Citkb2VzIGEgbG93IGxldmVsIGZvcm1hdCBvbiBhIGZsb3BweSBkaXNrLgorLkkgZGV2aWNlCitpcyB1c3VhbGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIChmb3IgZmxvcHB5IGRldmljZXMsIHRoZSBtYWpvciA9IDIsIGFuZCB0aGUKK21pbm9yIGlzIHNob3duIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkpOgorLnNwCisubmYKKy5SUworL2Rldi9mZDBkMzYwICAobWlub3IgPSA0KQorL2Rldi9mZDBoMTIwMCAobWlub3IgPSA4KQorL2Rldi9mZDBEMzYwICAobWlub3IgPSAxMikKKy9kZXYvZmQwSDM2MCAgKG1pbm9yID0gMTIpCisvZGV2L2ZkMEQ3MjAgIChtaW5vciA9IDE2KQorL2Rldi9mZDBINzIwICAobWlub3IgPSAxNikKKy9kZXYvZmQwaDM2MCAgKG1pbm9yID0gMjApCisvZGV2L2ZkMGg3MjAgIChtaW5vciA9IDI0KQorL2Rldi9mZDBIMTQ0MCAobWlub3IgPSAyOCkKKworL2Rldi9mZDFkMzYwICAobWlub3IgPSA1KQorL2Rldi9mZDFoMTIwMCAobWlub3IgPSA5KQorL2Rldi9mZDFEMzYwICAobWlub3IgPSAxMykKKy9kZXYvZmQxSDM2MCAgKG1pbm9yID0gMTMpCisvZGV2L2ZkMUQ3MjAgIChtaW5vciA9IDE3KQorL2Rldi9mZDFINzIwICAobWlub3IgPSAxNykKKy9kZXYvZmQxaDM2MCAgKG1pbm9yID0gMjEpCisvZGV2L2ZkMWg3MjAgIChtaW5vciA9IDI1KQorL2Rldi9mZDFIMTQ0MCAobWlub3IgPSAyOSkKKy5SRQorLmZpCisKK1RoZSBnZW5lcmljIGZsb3BweSBkZXZpY2VzLCAvZGV2L2ZkMCBhbmQgL2Rldi9mZDEsIHdpbGwgZmFpbCB0byB3b3JrIHdpdGgKKy5CIGZkZm9ybWF0Cit3aGVuIGEgbm9uLXN0YW5kYXJkIGZvcm1hdCBpcyBiZWluZyB1c2VkLCBvciBpZiB0aGUgZm9ybWF0IGhhcyBub3QgYmVlbgorYXV0b2RldGVjdGVkIGVhcmxpZXIuICBJbiB0aGlzIGNhc2UsIHVzZQorLkJSIHNldGZkcHJtICg4KQordG8gbG9hZCB0aGUgZGlzayBwYXJhbWV0ZXJzLgorCisuU0ggT1BUSU9OUworLlRQCisuQiBcLW4KK05vIHZlcmlmeS4gIFRoaXMgb3B0aW9uIHdpbGwgZGlzYWJsZSB0aGUgdmVyaWZpY2F0aW9uIHRoYXQgaXMgcGVyZm9ybWVkCithZnRlciB0aGUgZm9ybWF0LgorLlNIICJTRUUgQUxTTyIKKy5CUiBmZCAoNCksCisuQlIgc2V0ZmRwcm0gKDgpLAorLkJSIG1rZnMgKDgpLAorLkJSIGVta2ZzICg4KQorLlNIIEFVVEhPUgorV2VybmVyIEFsbWVzYmVyZ2VyIChhbG1lc2JlckBuZXNzaWUuY3MuaWQuZXRoei5jaCkKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBmZGZvcm1hdCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvZmRmb3JtYXQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvZmRmb3JtYXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmJiNTc0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9mZGZvcm1hdC5jCkBAIC0wLDAgKzEsMTUyIEBACisvKiBmZGZvcm1hdC5jICAtICBMb3ctbGV2ZWwgZm9ybWF0cyBhIGZsb3BweSBkaXNrIC0gV2VybmVyIEFsbWVzYmVyZ2VyICovCisKKy8qIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICogMTk5OS0wMy0yMCBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8gPGFjbWVAY29uZWN0aXZhLmNvbS5icj4KKyAmIC0gbW9yZSBpMThuL25scyB0cmFuc2xhdGFibGUgc3RyaW5ncyBtYXJrZWQKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxsaW51eC9mZC5oPgorCisjaW5jbHVkZSAibmxzLmgiCisKK3N0cnVjdCBmbG9wcHlfc3RydWN0IHBhcmFtOworCisjZGVmaW5lIFNFQ1RPUl9TSVpFIDUxMgorI2RlZmluZSBQRVJST1IobXNnKSB7IHBlcnJvcihtc2cpOyBleGl0KDEpOyB9CisKK3N0YXRpYyB2b2lkIGZvcm1hdF9kaXNrKGludCBjdHJsLCBjaGFyICpuYW1lKQoreworICAgIHN0cnVjdCBmb3JtYXRfZGVzY3IgZGVzY3I7CisgICAgaW50IHRyYWNrOworCisgICAgcHJpbnRmKF8oIkZvcm1hdHRpbmcgLi4uICIpKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICBpZiAoaW9jdGwoY3RybCxGREZNVEJFRyxOVUxMKSA8IDApIFBFUlJPUigiXG5pb2N0bChGREZNVEJFRykiKTsKKyAgICBmb3IgKHRyYWNrID0gMDsgdHJhY2sgPCBwYXJhbS50cmFjazsgdHJhY2srKykgeworCWRlc2NyLnRyYWNrID0gdHJhY2s7CisJZGVzY3IuaGVhZCA9IDA7CisJaWYgKGlvY3RsKGN0cmwsRkRGTVRUUkssKGxvbmcpICZkZXNjcikgPCAwKQorCSAgUEVSUk9SKCJcbmlvY3RsKEZERk1UVFJLKSIpOworCisJcHJpbnRmKCIlM2RcYlxiXGIiLHRyYWNrKTsKKwlmZmx1c2goc3Rkb3V0KTsKKwlpZiAocGFyYW0uaGVhZCA9PSAyKSB7CisJICAgIGRlc2NyLmhlYWQgPSAxOworCSAgICBpZiAoaW9jdGwoY3RybCxGREZNVFRSSywobG9uZykgJmRlc2NyKSA8IDApCisJICAgICAgUEVSUk9SKCJcbmlvY3RsKEZERk1UVFJLKSIpOworCX0KKyAgICB9CisgICAgaWYgKGlvY3RsKGN0cmwsRkRGTVRFTkQsTlVMTCkgPCAwKSBQRVJST1IoIlxuaW9jdGwoRkRGTVRFTkQpIik7CisgICAgcHJpbnRmKF8oImRvbmVcbiIpKTsKK30KKworCitzdGF0aWMgdm9pZCB2ZXJpZnlfZGlzayhjaGFyICpuYW1lKQoreworICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7CisgICAgaW50IGZkLGN5bF9zaXplLGN5bCxjb3VudDsKKworICAgIGN5bF9zaXplID0gcGFyYW0uc2VjdCpwYXJhbS5oZWFkKjUxMjsKKyAgICBpZiAoKGRhdGEgPSAodW5zaWduZWQgY2hhciAqKSBtYWxsb2MoY3lsX3NpemUpKSA9PSBOVUxMKSBQRVJST1IoIm1hbGxvYyIpOworICAgIHByaW50ZihfKCJWZXJpZnlpbmcgLi4uICIpKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICBpZiAoKGZkID0gb3BlbihuYW1lLE9fUkRPTkxZKSkgPCAwKSBQRVJST1IobmFtZSk7CisgICAgZm9yIChjeWwgPSAwOyBjeWwgPCBwYXJhbS50cmFjazsgY3lsKyspIHsKKwlpbnQgcmVhZF9ieXRlczsKKworCXByaW50ZigiJTNkXGJcYlxiIixjeWwpOworCWZmbHVzaChzdGRvdXQpOworCXJlYWRfYnl0ZXMgPSByZWFkKGZkLGRhdGEsY3lsX3NpemUpOworCWlmKHJlYWRfYnl0ZXMgIT0gY3lsX3NpemUpIHsKKwkgICAgaWYocmVhZF9ieXRlcyA8IDApCisJCSAgICBwZXJyb3IoXygiUmVhZDogIikpOworCSAgICBmcHJpbnRmKHN0ZGVyciwKKwkJICAgIF8oIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIpLAorCQkgICAgY3lsLCBjeWxfc2l6ZSwgcmVhZF9ieXRlcyk7CisJICAgIGZyZWUoZGF0YSk7CisJICAgIGV4aXQoMSk7CisJfQorCWZvciAoY291bnQgPSAwOyBjb3VudCA8IGN5bF9zaXplOyBjb3VudCsrKQorCSAgICBpZiAoZGF0YVtjb3VudF0gIT0gRkRfRklMTF9CWVRFKSB7CisJCXByaW50ZihfKCJiYWQgZGF0YSBpbiBjeWwgJWRcbkNvbnRpbnVpbmcgLi4uICIpLGN5bCk7CisJCWZmbHVzaChzdGRvdXQpOworCQlicmVhazsKKwkgICAgfQorICAgIH0KKyAgICBmcmVlKGRhdGEpOworICAgIHByaW50ZihfKCJkb25lXG4iKSk7CisgICAgaWYgKGNsb3NlKGZkKSA8IDApIFBFUlJPUigiY2xvc2UiKTsKK30KKworCitzdGF0aWMgdm9pZCB1c2FnZShjaGFyICpuYW1lKQoreworICAgIGNoYXIgKnRoaXM7CisKKyAgICBpZiAoKHRoaXMgPSBzdHJyY2hyKG5hbWUsJy8nKSkgIT0gTlVMTCkgbmFtZSA9IHRoaXMrMTsKKyAgICBmcHJpbnRmKHN0ZGVycixfKCJ1c2FnZTogJXMgWyAtbiBdIGRldmljZVxuIiksbmFtZSk7CisgICAgZXhpdCgxKTsKK30KKworCitpbnQgbWFpbihpbnQgYXJnYyxjaGFyICoqYXJndikKK3sKKyAgICBpbnQgY3RybDsKKyAgICBpbnQgdmVyaWZ5OworICAgIHN0cnVjdCBzdGF0IHN0OworICAgIGNoYXIgKnByb2duYW1lLCAqcDsKKworICAgIHByb2duYW1lID0gYXJndlswXTsKKyAgICBpZiAoKHAgPSBzdHJyY2hyKHByb2duYW1lLCAnLycpKSAhPSBOVUxMKQorCSAgICBwcm9nbmFtZSA9IHArMTsKKworICAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyAgICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICAgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgICBpZiAoYXJnYyA9PSAyICYmCisJKCFzdHJjbXAoYXJndlsxXSwgIi1WIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiLS12ZXJzaW9uIikpKSB7CisJICAgIHByaW50ZihfKCIlcyAoJXMpXG4iKSwgcHJvZ25hbWUsIFBBQ0tBR0VfU1RSSU5HKTsKKwkgICAgZXhpdCgwKTsKKyAgICB9CisKKyAgICB2ZXJpZnkgPSAxOworICAgIGlmIChhcmdjID4gMSAmJiBhcmd2WzFdWzBdID09ICctJykgeworCWlmIChhcmd2WzFdWzFdICE9ICduJykgdXNhZ2UocHJvZ25hbWUpOworCXZlcmlmeSA9IDA7CisJYXJnYy0tOworCWFyZ3YrKzsKKyAgICB9CisgICAgaWYgKGFyZ2MgIT0gMikgdXNhZ2UocHJvZ25hbWUpOworICAgIGlmIChzdGF0KGFyZ3ZbMV0sJnN0KSA8IDApIFBFUlJPUihhcmd2WzFdKTsKKyAgICBpZiAoIVNfSVNCTEsoc3Quc3RfbW9kZSkpIHsKKwlmcHJpbnRmKHN0ZGVycixfKCIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iKSxhcmd2WzFdKTsKKwlleGl0KDEpOworCS8qIGRvIG5vdCB0ZXN0IG1ham9yIC0gcGVyaGFwcyB0aGlzIHdhcyBhbiBVU0IgZmxvcHB5ICovCisgICAgfQorICAgIGlmIChhY2Nlc3MoYXJndlsxXSxXX09LKSA8IDApIFBFUlJPUihhcmd2WzFdKTsKKworICAgIGN0cmwgPSBvcGVuKGFyZ3ZbMV0sT19XUk9OTFkpOworICAgIGlmIChjdHJsIDwgMCkKKwkgICAgUEVSUk9SKGFyZ3ZbMV0pOworICAgIGlmIChpb2N0bChjdHJsLEZER0VUUFJNLChsb25nKSAmcGFyYW0pIDwgMCkgCisJICAgIFBFUlJPUihfKCJDb3VsZCBub3QgZGV0ZXJtaW5lIGN1cnJlbnQgZm9ybWF0IHR5cGUiKSk7CisgICAgcHJpbnRmKF8oIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iKSwKKwkgICAocGFyYW0uaGVhZCA9PSAyKSA/IF8oIkRvdWJsZSIpIDogXygiU2luZ2xlIiksCisJICAgcGFyYW0udHJhY2ssIHBhcmFtLnNlY3QscGFyYW0uc2l6ZSA+PiAxKTsKKyAgICBmb3JtYXRfZGlzayhjdHJsLCBhcmd2WzFdKTsKKyAgICBjbG9zZShjdHJsKTsKKworICAgIGlmICh2ZXJpZnkpCisJICAgIHZlcmlmeV9kaXNrKGFyZ3ZbMV0pOworICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9mc2NrLmNyYW1mcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9mc2NrLmNyYW1mcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5OTUzZGMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmMKQEAgLTAsMCArMSw3NTAgQEAKKy8qCisgKiBjcmFtZnNjayAtIGNoZWNrIGEgY3JhbWZzIGZpbGUgc3lzdGVtCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgVHJhbnNtZXRhIENvcnBvcmF0aW9uCisgKiAgICAgICAgICAgICAgIDIwMDUgQWRyaWFuIEJ1bmsKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKgorICogMTk5OS8xMi8wMzogTGludXMgVG9ydmFsZHMgKGNyYW1mcyB0ZXN0ZXIgYW5kIHVuYXJjaGl2ZSBwcm9ncmFtKQorICogMjAwMC8wNi8wMzogRGFuaWVsIFF1aW5sYW4gKENSQyBhbmQgbGVuZ3RoIGNoZWNraW5nIHByb2dyYW0pCisgKiAyMDAwLzA2LzA0OiBEYW5pZWwgUXVpbmxhbiAobWVyZ2VkIHByb2dyYW1zLCBhZGRlZCBvcHRpb25zLCBzdXBwb3J0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Igc3BlY2lhbCBmaWxlcywgcHJlc2VydmUgcGVybWlzc2lvbnMgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvd25lcnNoaXAsIGNyYW1mcyBzdXBlcmJsb2NrIHYyLCBib2d1cyBtb2RlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LCBwYXRobmFtZSBsZW5ndGggdGVzdCwgZXRjLikKKyAqIDIwMDAvMDYvMDY6IERhbmllbCBRdWlubGFuIChzdXBwb3J0IGZvciBob2xlcywgcHJldHR5LXByaW50aW5nLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltbGluayBzaXplIHRlc3QpCisgKiAyMDAwLzA3LzExOiBEYW5pZWwgUXVpbmxhbiAoZmlsZSBsZW5ndGggdGVzdHMsIHN0YXJ0IGF0IG9mZnNldCAwIG9yIDUxMiwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZzY2stY29tcGF0aWJsZSBleGl0IGNvZGVzKQorICogMjAwMC8wNy8xNTogRGFuaWVsIFF1aW5sYW4gKGluaXRpYWwgc3VwcG9ydCBmb3IgYmxvY2sgZGV2aWNlcykKKyAqIDIwMDIvMDEvMTA6IERhbmllbCBRdWlubGFuIChhZGRpdGlvbmFsIGNoZWNrcywgdGVzdCBtb3JlIHJldHVybiBjb2RlcywKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZSByZWFkIGlmIG1tYXAgZmFpbHMsIHN0YW5kYXJkaXplIG1lc3NhZ2VzKQorICovCisKKy8qIGNvbXBpbGUtdGltZSBvcHRpb25zICovCisvLyNkZWZpbmUgSU5DTFVERV9GU19URVNUUwkvKiBpbmNsdWRlIGNyYW1mcyBjaGVja2luZyBhbmQgZXh0cmFjdGlvbiAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPHV0aW1lLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx6bGliLmg+CisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgkvKiBmb3IgbWFqb3IsIG1pbm9yICovCisKKyNpbmNsdWRlICJjcmFtZnMuaCIKKyNpbmNsdWRlICJjcmFtZnNfY29tbW9uLmgiCisjaW5jbHVkZSAibmxzLmgiCisjaW5jbHVkZSAiYmxrZGV2LmgiCisKK3N0YXRpYyBjb25zdCBjaGFyICpwcm9nbmFtZSA9ICJjcmFtZnNjayI7CisKK3N0YXRpYyBpbnQgZmQ7CQkJLyogUk9NIGltYWdlIGZpbGUgZGVzY3JpcHRvciAqLworc3RhdGljIGNoYXIgKmZpbGVuYW1lOwkJLyogUk9NIGltYWdlIGZpbGVuYW1lICovCitzdHJ1Y3QgY3JhbWZzX3N1cGVyIHN1cGVyOwkvKiBqdXN0IGZpbmQgdGhlIGNyYW1mcyBzdXBlcmJsb2NrIG9uY2UgKi8KK3N0YXRpYyBpbnQgY3JhbWZzX2lzX2JpZ19lbmRpYW4gPSAwOwkvKiBzb3VyY2UgaXMgYmlnIGVuZGlhbiAqLworc3RhdGljIGludCBvcHRfdmVyYm9zZSA9IDA7CS8qIDEgPSB2ZXJib3NlICgtdiksIDIrID0gdmVyeSB2ZXJib3NlICgtdnYpICovCisKK2NoYXIgKmV4dHJhY3RfZGlyID0gIiI7CS8qIGV4dHJhY3Rpb24gZGlyZWN0b3J5ICgteCkgKi8KKworLyogRXhpdCBjb2RlcyB1c2VkIGJ5IGZzY2stdHlwZSBwcm9ncmFtcyAqLworI2RlZmluZSBGU0NLX09LICAgICAgICAgIDAJLyogTm8gZXJyb3JzICovCisjZGVmaW5lIEZTQ0tfTk9OREVTVFJVQ1QgMQkvKiBGaWxlIHN5c3RlbSBlcnJvcnMgY29ycmVjdGVkICovCisjZGVmaW5lIEZTQ0tfUkVCT09UICAgICAgMgkvKiBTeXN0ZW0gc2hvdWxkIGJlIHJlYm9vdGVkICovCisjZGVmaW5lIEZTQ0tfVU5DT1JSRUNURUQgNAkvKiBGaWxlIHN5c3RlbSBlcnJvcnMgbGVmdCB1bmNvcnJlY3RlZCAqLworI2RlZmluZSBGU0NLX0VSUk9SICAgICAgIDgJLyogT3BlcmF0aW9uYWwgZXJyb3IgKi8KKyNkZWZpbmUgRlNDS19VU0FHRSAgICAgICAxNgkvKiBVc2FnZSBvciBzeW50YXggZXJyb3IgKi8KKyNkZWZpbmUgRlNDS19MSUJSQVJZICAgICAxMjgJLyogU2hhcmVkIGxpYnJhcnkgZXJyb3IgKi8KKworI2RlZmluZSBQQURfU0laRSA1MTIKKworI2lmZGVmIElOQ0xVREVfRlNfVEVTVFMKKworc3RhdGljIGludCBvcHRfZXh0cmFjdCA9IDA7CS8qIGV4dHJhY3QgY3JhbWZzICgteCkgKi8KKworc3RhdGljIHVpZF90IGV1aWQ7ICAgICAgICAgICAgICAgICAgICAgLyogZWZmZWN0aXZlIFVJRCAqLworCisvKiAoY3JhbWZzX3N1cGVyICsgc3RhcnQpIDw9IHN0YXJ0X2RpciA8IGVuZF9kaXIgPD0gc3RhcnRfZGF0YSA8PSBlbmRfZGF0YSAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgc3RhcnRfZGlyID0gfjBVTDsgLyogc3RhcnQgb2YgZmlyc3Qgbm9uLXJvb3QgaW5vZGUgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGVuZF9kaXIgPSAwOyAgICAgIC8qIGVuZCBvZiB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgc3RhcnRfZGF0YSA9IH4wVUw7ICAgICAgICAvKiBzdGFydCBvZiB0aGUgZGF0YSAoMjU2IE1CID0gbWF4KSAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgZW5kX2RhdGEgPSAwOyAgICAgLyogZW5kIG9mIHRoZSBkYXRhICovCisKKworLyogR3VhcmFudGVlIGFjY2VzcyB0byBhdCBsZWFzdCA4a0IgYXQgYSB0aW1lICovCisjZGVmaW5lIFJPTUJVRkZFUl9CSVRTCTEzCisjZGVmaW5lIFJPTUJVRkZFUlNJWkUJKDEgPDwgUk9NQlVGRkVSX0JJVFMpCisjZGVmaW5lIFJPTUJVRkZFUk1BU0sJKFJPTUJVRkZFUlNJWkUtMSkKK3N0YXRpYyBjaGFyIHJlYWRfYnVmZmVyW1JPTUJVRkZFUlNJWkUgKiAyXTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHJlYWRfYnVmZmVyX2Jsb2NrID0gfjBVTDsKKworc3RhdGljIHpfc3RyZWFtIHN0cmVhbTsKKworLyogUHJvdG90eXBlcyAqLworc3RhdGljIHZvaWQgZXhwYW5kX2ZzKGNoYXIgKiwgc3RydWN0IGNyYW1mc19pbm9kZSAqKTsKKyNlbmRpZiAvKiBJTkNMVURFX0ZTX1RFU1RTICovCisKK3N0YXRpYyBjaGFyICpvdXRidWZmZXI7CisKK3N0YXRpYyBzaXplX3QgcGFnZV9zaXplOworCisvKiBJbnB1dCBzdGF0dXMgb2YgMCB0byBwcmludCBoZWxwIGFuZCBleGl0IHdpdGhvdXQgYW4gZXJyb3IuICovCitzdGF0aWMgdm9pZCB1c2FnZShpbnQgc3RhdHVzKQoreworCUZJTEUgKnN0cmVhbSA9IHN0YXR1cyA/IHN0ZGVyciA6IHN0ZG91dDsKKworCWZwcmludGYoc3RyZWFtLCBfKCJ1c2FnZTogJXMgWy1odl0gWy14IGRpcl0gZmlsZVxuIgorCQkiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisJCSIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisJCSIgLXYgICAgICAgICBiZSBtb3JlIHZlcmJvc2VcbiIKKwkJIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIiksIHByb2duYW1lKTsKKworCWV4aXQoc3RhdHVzKTsKK30KKworc3RhdGljIHZvaWQgZGllKGludCBzdGF0dXMsIGludCBzeXNlcnIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCXZhX2xpc3QgYXJnX3B0cjsKKwlpbnQgc2F2ZSA9IGVycm5vOworCisJZmZsdXNoKDApOworCXZhX3N0YXJ0KGFyZ19wdHIsIGZtdCk7CisJZnByaW50ZihzdGRlcnIsICIlczogIiwgcHJvZ25hbWUpOworCXZmcHJpbnRmKHN0ZGVyciwgZm10LCBhcmdfcHRyKTsKKwlpZiAoc3lzZXJyKSB7CisJCWZwcmludGYoc3RkZXJyLCAiOiAlcyIsIHN0cmVycm9yKHNhdmUpKTsKKwl9CisJZnByaW50ZihzdGRlcnIsICJcbiIpOworCXZhX2VuZChhcmdfcHRyKTsKKwlleGl0KHN0YXR1cyk7Cit9CisKK2ludCBnZXRfc3VwZXJibG9ja19lbmRpYW5uZXNzKHUzMiBtYWdpYykKK3sKKwlpZiAobWFnaWMgPT0gQ1JBTUZTX01BR0lDKSB7CisJCWNyYW1mc19pc19iaWdfZW5kaWFuID0gSE9TVF9JU19CSUdfRU5ESUFOOworCQlyZXR1cm4gMDsKKwl9CisJZWxzZSBpZiAobWFnaWMgPT0gdTMyX3RvZ2dsZV9lbmRpYW5uZXNzKCFIT1NUX0lTX0JJR19FTkRJQU4sIENSQU1GU19NQUdJQykpIHsKKwkJY3JhbWZzX2lzX2JpZ19lbmRpYW4gPSAhSE9TVF9JU19CSUdfRU5ESUFOOworCQlyZXR1cm4gMDsKKwl9CisJZWxzZSB7CisJCXJldHVybiAtMTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfc3VwZXIoaW50ICpzdGFydCwgc2l6ZV90ICpsZW5ndGgpIHsKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCS8qIGZpbmQgdGhlIHBoeXNpY2FsIHNpemUgb2YgdGhlIGZpbGUgb3IgYmxvY2sgZGV2aWNlICovCisJaWYgKHN0YXQoZmlsZW5hbWUsICZzdCkgPCAwKSB7CisJCWRpZShGU0NLX0VSUk9SLCAxLCBfKCJzdGF0IGZhaWxlZDogJXMiKSwgZmlsZW5hbWUpOworCX0KKwlmZCA9IG9wZW4oZmlsZW5hbWUsIE9fUkRPTkxZKTsKKwlpZiAoZmQgPCAwKSB7CisJCWRpZShGU0NLX0VSUk9SLCAxLCBfKCJvcGVuIGZhaWxlZDogJXMiKSwgZmlsZW5hbWUpOworCX0KKwlpZiAoU19JU0JMSyhzdC5zdF9tb2RlKSkgeworCQl1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXM7CisJCWlmIChibGtkZXZfZ2V0X3NpemUoZmQsICZieXRlcykpIHsKKwkJCWRpZShGU0NLX0VSUk9SLCAxLCBfKCJpb2N0bCBmYWlsZWQ6IHVuYWJsZSB0byBkZXRlcm1pbmUgZGV2aWNlIHNpemU6ICVzIiksIGZpbGVuYW1lKTsKKwkJfQorCQkqbGVuZ3RoID0gYnl0ZXM7CisJfQorCWVsc2UgaWYgKFNfSVNSRUcoc3Quc3RfbW9kZSkpIHsKKwkJKmxlbmd0aCA9IHN0LnN0X3NpemU7CisJfQorCWVsc2UgeworCQlkaWUoRlNDS19FUlJPUiwgMCwgXygibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIiksIGZpbGVuYW1lKTsKKwl9CisKKwlpZiAoKmxlbmd0aCA8IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKSkgeworCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygiZmlsZSBsZW5ndGggdG9vIHNob3J0IikpOworCX0KKworCS8qIGZpbmQgc3VwZXJibG9jayAqLworCWlmIChyZWFkKGZkLCAmc3VwZXIsIHNpemVvZihzdXBlcikpICE9IHNpemVvZihzdXBlcikpIHsKKwkJZGllKEZTQ0tfRVJST1IsIDEsIF8oInJlYWQgZmFpbGVkOiAlcyIpLCBmaWxlbmFtZSk7CisJfQorCWlmIChnZXRfc3VwZXJibG9ja19lbmRpYW5uZXNzKHN1cGVyLm1hZ2ljKSAhPSAtMSkgeworCQkqc3RhcnQgPSAwOworCX0KKwllbHNlIGlmICgqbGVuZ3RoID49IChQQURfU0laRSArIHNpemVvZihzdXBlcikpKSB7CisJCWxzZWVrKGZkLCBQQURfU0laRSwgU0VFS19TRVQpOworCQlpZiAocmVhZChmZCwgJnN1cGVyLCBzaXplb2Yoc3VwZXIpKSAhPSBzaXplb2Yoc3VwZXIpKSB7CisJCQlkaWUoRlNDS19FUlJPUiwgMSwgXygicmVhZCBmYWlsZWQ6ICVzIiksIGZpbGVuYW1lKTsKKwkJfQorCQlpZiAoZ2V0X3N1cGVyYmxvY2tfZW5kaWFubmVzcyhzdXBlci5tYWdpYykgIT0gLTEpIHsKKwkJCSpzdGFydCA9IFBBRF9TSVpFOworCQl9CisJCWVsc2UgeworCQkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIpOworCQl9CisJfQorCWVsc2UgeworCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygic3VwZXJibG9jayBtYWdpYyBub3QgZm91bmQiKSk7CisJfQorCisJaWYgKG9wdF92ZXJib3NlKSB7CisJCXByaW50ZigiY3JhbWZzIGVuZGlhbm5lc3MgaXMgJXNcbiIsIGNyYW1mc19pc19iaWdfZW5kaWFuID8gImJpZyIgOiAibGl0dGxlIik7CisJfQorCisJc3VwZXJfdG9nZ2xlX2VuZGlhbm5lc3MoY3JhbWZzX2lzX2JpZ19lbmRpYW4sICZzdXBlcik7CisJaWYgKHN1cGVyLmZsYWdzICYgfkNSQU1GU19TVVBQT1JURURfRkxBR1MpIHsKKwkJZGllKEZTQ0tfRVJST1IsIDAsIF8oInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiKSk7CisJfQorCWlmIChzdXBlci5zaXplIDwgcGFnZV9zaXplKSB7CisJCWRpZShGU0NLX1VOQ09SUkVDVEVELCAwLCBfKCJzdXBlcmJsb2NrIHNpemUgKCVkKSB0b28gc21hbGwiKSwgc3VwZXIuc2l6ZSk7CisJfQorCWlmIChzdXBlci5mbGFncyAmIENSQU1GU19GTEFHX0ZTSURfVkVSU0lPTl8yKSB7CisJCWlmIChzdXBlci5mc2lkLmZpbGVzID09IDApIHsKKwkJCWRpZShGU0NLX1VOQ09SUkVDVEVELCAwLCBfKCJ6ZXJvIGZpbGUgY291bnQiKSk7CisJCX0KKwkJaWYgKCpsZW5ndGggPCBzdXBlci5zaXplKSB7CisJCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygiZmlsZSBsZW5ndGggdG9vIHNob3J0IikpOworCQl9CisJCWVsc2UgaWYgKCpsZW5ndGggPiBzdXBlci5zaXplKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgXygid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIpKTsKKwkJfQorCX0KKwllbHNlIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iKSk7CisJfQorfQorCitzdGF0aWMgdm9pZCB0ZXN0X2NyYyhpbnQgc3RhcnQpCit7CisJdm9pZCAqYnVmOworCXUzMiBjcmM7CisKKwlpZiAoIShzdXBlci5mbGFncyAmIENSQU1GU19GTEFHX0ZTSURfVkVSU0lPTl8yKSkgeworI2lmZGVmIElOQ0xVREVfRlNfVEVTVFMKKwkJcmV0dXJuOworI2Vsc2UgLyogbm90IElOQ0xVREVfRlNfVEVTVFMgKi8KKwkJZGllKEZTQ0tfVVNBR0UsIDAsIF8oInVuYWJsZSB0byB0ZXN0IENSQzogb2xkIGNyYW1mcyBmb3JtYXQiKSk7CisjZW5kaWYgLyogbm90IElOQ0xVREVfRlNfVEVTVFMgKi8KKwl9CisKKwljcmMgPSBjcmMzMigwTCwgWl9OVUxMLCAwKTsKKworCWJ1ZiA9IG1tYXAoTlVMTCwgc3VwZXIuc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUsIGZkLCAwKTsKKwlpZiAoYnVmID09IE1BUF9GQUlMRUQpIHsKKwkJYnVmID0gbW1hcChOVUxMLCBzdXBlci5zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9BTk9OWU1PVVMsIC0xLCAwKTsKKwkJaWYgKGJ1ZiAhPSBNQVBfRkFJTEVEKSB7CisJCQlsc2VlayhmZCwgMCwgU0VFS19TRVQpOworCQkJaWYgKHJlYWQoZmQsIGJ1Ziwgc3VwZXIuc2l6ZSkgPCAwKQorCQkJCWRpZShGU0NLX0VSUk9SLCAxLCBfKCJyZWFkIGZhaWxlZDogJXMiKSwgZmlsZW5hbWUpOworCQl9CisJfQorCWlmIChidWYgIT0gTUFQX0ZBSUxFRCkgeworCQkoKHN0cnVjdCBjcmFtZnNfc3VwZXIgKikgKGJ1ZitzdGFydCkpLT5mc2lkLmNyYyA9IGNyYzMyKDBMLCBaX05VTEwsIDApOworCQljcmMgPSBjcmMzMihjcmMsIGJ1ZitzdGFydCwgc3VwZXIuc2l6ZS1zdGFydCk7CisJCW11bm1hcChidWYsIHN1cGVyLnNpemUpOworCX0KKwllbHNlIHsKKwkJaW50IHJldHZhbDsKKwkJc2l6ZV90IGxlbmd0aCA9IDA7CisKKwkJYnVmID0gbWFsbG9jKDQwOTYpOworCQlpZiAoIWJ1ZikgeworCQkJZGllKEZTQ0tfRVJST1IsIDEsIF8oIm1hbGxvYyBmYWlsZWQiKSk7CisJCX0KKwkJbHNlZWsoZmQsIHN0YXJ0LCBTRUVLX1NFVCk7CisJCWZvciAoOzspIHsKKwkJCXJldHZhbCA9IHJlYWQoZmQsIGJ1ZiwgNDA5Nik7CisJCQlpZiAocmV0dmFsIDwgMCkgeworCQkJCWRpZShGU0NLX0VSUk9SLCAxLCBfKCJyZWFkIGZhaWxlZDogJXMiKSwgZmlsZW5hbWUpOworCQkJfQorCQkJZWxzZSBpZiAocmV0dmFsID09IDApIHsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChsZW5ndGggPT0gMCkgeworCQkJCSgoc3RydWN0IGNyYW1mc19zdXBlciAqKSBidWYpLT5mc2lkLmNyYyA9IGNyYzMyKDBMLCBaX05VTEwsIDApOworCQkJfQorCQkJbGVuZ3RoICs9IHJldHZhbDsKKwkJCWlmIChsZW5ndGggPiAoc3VwZXIuc2l6ZS1zdGFydCkpIHsKKwkJCQljcmMgPSBjcmMzMihjcmMsIGJ1ZiwgcmV0dmFsIC0gKGxlbmd0aCAtIChzdXBlci5zaXplLXN0YXJ0KSkpOworCQkJCWJyZWFrOworCQkJfQorCQkJY3JjID0gY3JjMzIoY3JjLCBidWYsIHJldHZhbCk7CisJCX0KKwkJZnJlZShidWYpOworCX0KKworCWlmIChjcmMgIT0gc3VwZXIuZnNpZC5jcmMpIHsKKwkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsIF8oImNyYyBlcnJvciIpKTsKKwl9Cit9CisKKyNpZmRlZiBJTkNMVURFX0ZTX1RFU1RTCitzdGF0aWMgdm9pZCBwcmludF9ub2RlKGNoYXIgdHlwZSwgc3RydWN0IGNyYW1mc19pbm9kZSAqaSwgY2hhciAqbmFtZSkKK3sKKwljaGFyIGluZm9bMTBdOworCisJaWYgKFNfSVNDSFIoaS0+bW9kZSkgfHwgKFNfSVNCTEsoaS0+bW9kZSkpKSB7CisJCS8qIG1ham9yL21pbm9yIG51bWJlcnMgY2FuIGJlIGFzIGhpZ2ggYXMgMl4xMiBvciA0MDk2ICovCisJCXNucHJpbnRmKGluZm8sIDEwLCAiJTRkLCU0ZCIsIG1ham9yKGktPnNpemUpLCBtaW5vcihpLT5zaXplKSk7CisJfQorCWVsc2UgeworCQkvKiBzaXplIGJlIGFzIGhpZ2ggYXMgMl4yNCBvciAxNjc3NzIxNiAqLworCQlzbnByaW50ZihpbmZvLCAxMCwgIiU5ZCIsIGktPnNpemUpOworCX0KKworCXByaW50ZigiJWMgJTA0byAlcyAlNWQ6JS0zZCAlc1xuIiwKKwkgICAgICAgdHlwZSwgaS0+bW9kZSAmIH5TX0lGTVQsIGluZm8sIGktPnVpZCwgaS0+Z2lkLAorCSAgICAgICAhKm5hbWUgJiYgdHlwZSA9PSAnZCcgPyAiLyIgOiBuYW1lKTsKK30KKworLyoKKyAqIENyZWF0ZSBhIGZha2UgImJsb2NrZWQiIGFjY2VzcworICovCitzdGF0aWMgdm9pZCAqcm9tZnNfcmVhZCh1bnNpZ25lZCBsb25nIG9mZnNldCkKK3sKKwl1bnNpZ25lZCBpbnQgYmxvY2sgPSBvZmZzZXQgPj4gUk9NQlVGRkVSX0JJVFM7CisJaWYgKGJsb2NrICE9IHJlYWRfYnVmZmVyX2Jsb2NrKSB7CisJCXJlYWRfYnVmZmVyX2Jsb2NrID0gYmxvY2s7CisJCWxzZWVrKGZkLCBibG9jayA8PCBST01CVUZGRVJfQklUUywgU0VFS19TRVQpOworCQlyZWFkKGZkLCByZWFkX2J1ZmZlciwgUk9NQlVGRkVSU0laRSAqIDIpOworCX0KKwlyZXR1cm4gcmVhZF9idWZmZXIgKyAob2Zmc2V0ICYgUk9NQlVGRkVSTUFTSyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3JhbWZzX2lub2RlICpjcmFtZnNfaWdldChzdHJ1Y3QgY3JhbWZzX2lub2RlICogaSkKK3sKKwlzdHJ1Y3QgY3JhbWZzX2lub2RlICppbm9kZSA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGNyYW1mc19pbm9kZSkpOworCisJaWYgKCFpbm9kZSkgeworCQlkaWUoRlNDS19FUlJPUiwgMSwgXygibWFsbG9jIGZhaWxlZCIpKTsKKwl9CisJaW5vZGVfdG9faG9zdChjcmFtZnNfaXNfYmlnX2VuZGlhbiwgaSwgaW5vZGUpOworCXJldHVybiBpbm9kZTsKK30KKworc3RhdGljIHN0cnVjdCBjcmFtZnNfaW5vZGUgKmlnZXQodW5zaWduZWQgaW50IGlubykKK3sKKwlyZXR1cm4gY3JhbWZzX2lnZXQocm9tZnNfcmVhZChpbm8pKTsKK30KKworc3RhdGljIHZvaWQgaXB1dChzdHJ1Y3QgY3JhbWZzX2lub2RlICppbm9kZSkKK3sKKwlmcmVlKGlub2RlKTsKK30KKworLyoKKyAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSByb290IGRpcmVjdG9yeQorICovCitzdGF0aWMgc3RydWN0IGNyYW1mc19pbm9kZSAqcmVhZF9zdXBlcih2b2lkKQoreworCXN0cnVjdCBjcmFtZnNfaW5vZGUgKiByb290ID0gY3JhbWZzX2lnZXQoJnN1cGVyLnJvb3QpOworCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gcm9vdC0+b2Zmc2V0IDw8IDI7CisKKwlpZiAoIVNfSVNESVIocm9vdC0+bW9kZSkpCisJCWRpZShGU0NLX1VOQ09SUkVDVEVELCAwLCBfKCJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiKSk7CisJaWYgKCEoc3VwZXIuZmxhZ3MgJiBDUkFNRlNfRkxBR19TSElGVEVEX1JPT1RfT0ZGU0VUKSAmJgorCSAgICAoKG9mZnNldCAhPSBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikpICYmCisJICAgICAob2Zmc2V0ICE9IFBBRF9TSVpFICsgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpKSkpCisJeworCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygiYmFkIHJvb3Qgb2Zmc2V0ICglbHUpIiksIG9mZnNldCk7CisJfQorCXJldHVybiByb290OworfQorCitzdGF0aWMgaW50IHVuY29tcHJlc3NfYmxvY2sodm9pZCAqc3JjLCBpbnQgbGVuKQoreworCWludCBlcnI7CisKKwlzdHJlYW0ubmV4dF9pbiA9IHNyYzsKKwlzdHJlYW0uYXZhaWxfaW4gPSBsZW47CisKKwlzdHJlYW0ubmV4dF9vdXQgPSAodW5zaWduZWQgY2hhciAqKSBvdXRidWZmZXI7CisJc3RyZWFtLmF2YWlsX291dCA9IHBhZ2Vfc2l6ZSoyOworCisJaW5mbGF0ZVJlc2V0KCZzdHJlYW0pOworCisJaWYgKGxlbiA+IHBhZ2Vfc2l6ZSoyKSB7CisJCWRpZShGU0NLX1VOQ09SUkVDVEVELCAwLCBfKCJkYXRhIGJsb2NrIHRvbyBsYXJnZSIpKTsKKwl9CisJZXJyID0gaW5mbGF0ZSgmc3RyZWFtLCBaX0ZJTklTSCk7CisJaWYgKGVyciAhPSBaX1NUUkVBTV9FTkQpIHsKKwkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsIF8oImRlY29tcHJlc3Npb24gZXJyb3IgJXAoJWQpOiAlcyIpLAorCQkgICAgekVycm9yKGVyciksIHNyYywgbGVuKTsKKwl9CisJcmV0dXJuIHN0cmVhbS50b3RhbF9vdXQ7Cit9CisKKyNpZiAhSEFWRV9MQ0hPV04KKyNkZWZpbmUgbGNob3duIGNob3duCisjZW5kaWYKK3N0YXRpYyB2b2lkIGRvX3VuY29tcHJlc3MoY2hhciAqcGF0aCwgaW50IGZkLCB1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKQoreworCXVuc2lnbmVkIGxvbmcgY3VyciA9IG9mZnNldCArIDQgKiAoKHNpemUgKyBwYWdlX3NpemUgLSAxKSAvIHBhZ2Vfc2l6ZSk7CisKKwlkbyB7CisJCXVuc2lnbmVkIGxvbmcgb3V0ID0gcGFnZV9zaXplOworCQl1bnNpZ25lZCBsb25nIG5leHQgPSB1MzJfdG9nZ2xlX2VuZGlhbm5lc3MoY3JhbWZzX2lzX2JpZ19lbmRpYW4sICoodTMyICopIHJvbWZzX3JlYWQob2Zmc2V0KSk7CisKKwkJaWYgKG5leHQgPiBlbmRfZGF0YSkgeworCQkJZW5kX2RhdGEgPSBuZXh0OworCQl9CisKKwkJb2Zmc2V0ICs9IDQ7CisJCWlmIChjdXJyID09IG5leHQpIHsKKwkJCWlmIChvcHRfdmVyYm9zZSA+IDEpIHsKKwkJCQlwcmludGYoXygiICBob2xlIGF0ICVsZCAoJXpkKVxuIiksIGN1cnIsIHBhZ2Vfc2l6ZSk7CisJCQl9CisJCQlpZiAoc2l6ZSA8IHBhZ2Vfc2l6ZSkKKwkJCQlvdXQgPSBzaXplOworCQkJbWVtc2V0KG91dGJ1ZmZlciwgMHgwMCwgb3V0KTsKKwkJfQorCQllbHNlIHsKKwkJCWlmIChvcHRfdmVyYm9zZSA+IDEpIHsKKwkJCQlwcmludGYoXygiICB1bmNvbXByZXNzaW5nIGJsb2NrIGF0ICVsZCB0byAlbGQgKCVsZClcbiIpLCBjdXJyLCBuZXh0LCBuZXh0IC0gY3Vycik7CisJCQl9CisJCQlvdXQgPSB1bmNvbXByZXNzX2Jsb2NrKHJvbWZzX3JlYWQoY3VyciksIG5leHQgLSBjdXJyKTsKKwkJfQorCQlpZiAoc2l6ZSA+PSBwYWdlX3NpemUpIHsKKwkJCWlmIChvdXQgIT0gcGFnZV9zaXplKSB7CisJCQkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsIF8oIm5vbi1ibG9jayAoJWxkKSBieXRlcyIpLCBvdXQpOworCQkJfQorCQl9IGVsc2UgeworCQkJaWYgKG91dCAhPSBzaXplKSB7CisJCQkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsIF8oIm5vbi1zaXplICglbGQgdnMgJWxkKSBieXRlcyIpLCBvdXQsIHNpemUpOworCQkJfQorCQl9CisJCXNpemUgLT0gb3V0OworCQlpZiAob3B0X2V4dHJhY3QpIHsKKwkJCWlmICh3cml0ZShmZCwgb3V0YnVmZmVyLCBvdXQpIDwgMCkgeworCQkJCWRpZShGU0NLX0VSUk9SLCAxLCBfKCJ3cml0ZSBmYWlsZWQ6ICVzIiksIHBhdGgpOworCQkJfQorCQl9CisJCWN1cnIgPSBuZXh0OworCX0gd2hpbGUgKHNpemUpOworfQorCitzdGF0aWMgdm9pZCBjaGFuZ2VfZmlsZV9zdGF0dXMoY2hhciAqcGF0aCwgc3RydWN0IGNyYW1mc19pbm9kZSAqaSkKK3sKKwlzdHJ1Y3QgdXRpbWJ1ZiBlcG9jaCA9IHsgMCwgMCB9OworCisJaWYgKGV1aWQgPT0gMCkgeworCQlpZiAobGNob3duKHBhdGgsIGktPnVpZCwgaS0+Z2lkKSA8IDApIHsKKwkJCWRpZShGU0NLX0VSUk9SLCAxLCBfKCJsY2hvd24gZmFpbGVkOiAlcyIpLCBwYXRoKTsKKwkJfQorCQlpZiAoU19JU0xOSyhpLT5tb2RlKSkKKwkJCXJldHVybjsKKwkJaWYgKChTX0lTVUlEIHwgU19JU0dJRCkgJiBpLT5tb2RlKSB7CisJCQlpZiAoY2htb2QocGF0aCwgaS0+bW9kZSkgPCAwKSB7CisJCQkJZGllKEZTQ0tfRVJST1IsIDEsIF8oImNob3duIGZhaWxlZDogJXMiKSwgcGF0aCk7CisJCQl9CisJCX0KKwl9CisJaWYgKFNfSVNMTksoaS0+bW9kZSkpCisJCXJldHVybjsKKwlpZiAodXRpbWUocGF0aCwgJmVwb2NoKSA8IDApIHsKKwkJZGllKEZTQ0tfRVJST1IsIDEsIF8oInV0aW1lIGZhaWxlZDogJXMiKSwgcGF0aCk7CisJfQorfQorCitzdGF0aWMgdm9pZCBkb19kaXJlY3RvcnkoY2hhciAqcGF0aCwgc3RydWN0IGNyYW1mc19pbm9kZSAqaSkKK3sKKwlpbnQgcGF0aGxlbiA9IHN0cmxlbihwYXRoKTsKKwlpbnQgY291bnQgPSBpLT5zaXplOworCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gaS0+b2Zmc2V0IDw8IDI7CisJY2hhciAqbmV3cGF0aCA9IG1hbGxvYyhwYXRobGVuICsgMjU2KTsKKworCWlmICghbmV3cGF0aCkgeworCQlkaWUoRlNDS19FUlJPUiwgMSwgXygibWFsbG9jIGZhaWxlZCIpKTsKKwl9CisJaWYgKG9mZnNldCA9PSAwICYmIGNvdW50ICE9IDApIHsKKwkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsIF8oImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIiksIHBhdGgpOworCX0KKwlpZiAob2Zmc2V0ICE9IDAgJiYgb2Zmc2V0IDwgc3RhcnRfZGlyKSB7CisJCXN0YXJ0X2RpciA9IG9mZnNldDsKKwl9CisJLyogVE9ETzogRG8gd2UgbmVlZCB0byBjaGVjayBlbmRfZGlyIGZvciBlbXB0eSBjYXNlPyAqLworCW1lbWNweShuZXdwYXRoLCBwYXRoLCBwYXRobGVuKTsKKwluZXdwYXRoW3BhdGhsZW5dID0gJy8nOworCXBhdGhsZW4rKzsKKwlpZiAob3B0X3ZlcmJvc2UpIHsKKwkJcHJpbnRfbm9kZSgnZCcsIGksIHBhdGgpOworCX0KKwlpZiAob3B0X2V4dHJhY3QpIHsKKwkJaWYgKG1rZGlyKHBhdGgsIGktPm1vZGUpIDwgMCkgeworCQkJZGllKEZTQ0tfRVJST1IsIDEsIF8oIm1rZGlyIGZhaWxlZDogJXMiKSwgcGF0aCk7CisJCX0KKwkJY2hhbmdlX2ZpbGVfc3RhdHVzKHBhdGgsIGkpOworCX0KKwl3aGlsZSAoY291bnQgPiAwKSB7CisJCXN0cnVjdCBjcmFtZnNfaW5vZGUgKmNoaWxkID0gaWdldChvZmZzZXQpOworCQlpbnQgc2l6ZTsKKwkJaW50IG5ld2xlbiA9IGNoaWxkLT5uYW1lbGVuIDw8IDI7CisKKwkJc2l6ZSA9IHNpemVvZihzdHJ1Y3QgY3JhbWZzX2lub2RlKSArIG5ld2xlbjsKKwkJY291bnQgLT0gc2l6ZTsKKworCQlvZmZzZXQgKz0gc2l6ZW9mKHN0cnVjdCBjcmFtZnNfaW5vZGUpOworCisJCW1lbWNweShuZXdwYXRoICsgcGF0aGxlbiwgcm9tZnNfcmVhZChvZmZzZXQpLCBuZXdsZW4pOworCQluZXdwYXRoW3BhdGhsZW4gKyBuZXdsZW5dID0gMDsKKwkJaWYgKG5ld2xlbiA9PSAwKSB7CisJCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygiZmlsZW5hbWUgbGVuZ3RoIGlzIHplcm8iKSk7CisJCX0KKwkJaWYgKChwYXRobGVuICsgbmV3bGVuKSAtIHN0cmxlbihuZXdwYXRoKSA+IDMpIHsKKwkJCWRpZShGU0NLX1VOQ09SUkVDVEVELCAwLCBfKCJiYWQgZmlsZW5hbWUgbGVuZ3RoIikpOworCQl9CisJCWV4cGFuZF9mcyhuZXdwYXRoLCBjaGlsZCk7CisKKwkJb2Zmc2V0ICs9IG5ld2xlbjsKKworCQlpZiAob2Zmc2V0IDw9IHN0YXJ0X2RpcikgeworCQkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsIF8oImJhZCBpbm9kZSBvZmZzZXQiKSk7CisJCX0KKwkJaWYgKG9mZnNldCA+IGVuZF9kaXIpIHsKKwkJCWVuZF9kaXIgPSBvZmZzZXQ7CisJCX0KKwkJaXB1dChjaGlsZCk7IC8qIGZyZWUoY2hpbGQpICovCisJfQorCWZyZWUobmV3cGF0aCk7Cit9CisKK3N0YXRpYyB2b2lkIGRvX2ZpbGUoY2hhciAqcGF0aCwgc3RydWN0IGNyYW1mc19pbm9kZSAqaSkKK3sKKwl1bnNpZ25lZCBsb25nIG9mZnNldCA9IGktPm9mZnNldCA8PCAyOworCWludCBmZCA9IDA7CisKKwlpZiAob2Zmc2V0ID09IDAgJiYgaS0+c2l6ZSAhPSAwKSB7CisJCWRpZShGU0NLX1VOQ09SUkVDVEVELCAwLCBfKCJmaWxlIGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZSIpKTsKKwl9CisJaWYgKGktPnNpemUgPT0gMCAmJiBvZmZzZXQgIT0gMCkgeworCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygiZmlsZSBpbm9kZSBoYXMgemVybyBzaXplIGFuZCBub24temVybyBvZmZzZXQiKSk7CisJfQorCWlmIChvZmZzZXQgIT0gMCAmJiBvZmZzZXQgPCBzdGFydF9kYXRhKSB7CisJCXN0YXJ0X2RhdGEgPSBvZmZzZXQ7CisJfQorCWlmIChvcHRfdmVyYm9zZSkgeworCQlwcmludF9ub2RlKCdmJywgaSwgcGF0aCk7CisJfQorCWlmIChvcHRfZXh0cmFjdCkgeworCQlmZCA9IG9wZW4ocGF0aCwgT19XUk9OTFkgfCBPX0NSRUFUIHwgT19UUlVOQywgaS0+bW9kZSk7CisJCWlmIChmZCA8IDApIHsKKwkJCWRpZShGU0NLX0VSUk9SLCAxLCBfKCJvcGVuIGZhaWxlZDogJXMiKSwgcGF0aCk7CisJCX0KKwl9CisJaWYgKGktPnNpemUpIHsKKwkJZG9fdW5jb21wcmVzcyhwYXRoLCBmZCwgb2Zmc2V0LCBpLT5zaXplKTsKKwl9CisJaWYgKG9wdF9leHRyYWN0KSB7CisJCWNsb3NlKGZkKTsKKwkJY2hhbmdlX2ZpbGVfc3RhdHVzKHBhdGgsIGkpOworCX0KK30KKworc3RhdGljIHZvaWQgZG9fc3ltbGluayhjaGFyICpwYXRoLCBzdHJ1Y3QgY3JhbWZzX2lub2RlICppKQoreworCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gaS0+b2Zmc2V0IDw8IDI7CisJdW5zaWduZWQgbG9uZyBjdXJyID0gb2Zmc2V0ICsgNDsKKwl1bnNpZ25lZCBsb25nIG5leHQgPSB1MzJfdG9nZ2xlX2VuZGlhbm5lc3MoY3JhbWZzX2lzX2JpZ19lbmRpYW4sICoodTMyICopIHJvbWZzX3JlYWQob2Zmc2V0KSk7CisJdW5zaWduZWQgbG9uZyBzaXplOworCisJaWYgKG9mZnNldCA9PSAwKSB7CisJCWRpZShGU0NLX1VOQ09SUkVDVEVELCAwLCBfKCJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIpKTsKKwl9CisJaWYgKGktPnNpemUgPT0gMCkgeworCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygic3ltYm9saWMgbGluayBoYXMgemVybyBzaXplIikpOworCX0KKworCWlmIChvZmZzZXQgPCBzdGFydF9kYXRhKSB7CisJCXN0YXJ0X2RhdGEgPSBvZmZzZXQ7CisJfQorCWlmIChuZXh0ID4gZW5kX2RhdGEpIHsKKwkJZW5kX2RhdGEgPSBuZXh0OworCX0KKworCXNpemUgPSB1bmNvbXByZXNzX2Jsb2NrKHJvbWZzX3JlYWQoY3VyciksIG5leHQgLSBjdXJyKTsKKwlpZiAoc2l6ZSAhPSBpLT5zaXplKSB7CisJCWRpZShGU0NLX1VOQ09SUkVDVEVELCAwLCBfKCJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIiksIHBhdGgpOworCX0KKwlvdXRidWZmZXJbc2l6ZV0gPSAwOworCWlmIChvcHRfdmVyYm9zZSkgeworCQljaGFyICpzdHI7CisKKwkJYXNwcmludGYoJnN0ciwgIiVzIC0+ICVzIiwgcGF0aCwgb3V0YnVmZmVyKTsKKwkJcHJpbnRfbm9kZSgnbCcsIGksIHN0cik7CisJCWlmIChvcHRfdmVyYm9zZSA+IDEpIHsKKwkJCXByaW50ZihfKCIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIiksIGN1cnIsIG5leHQsIG5leHQgLSBjdXJyKTsKKwkJfQorCQlmcmVlKHN0cik7CisJfQorCWlmIChvcHRfZXh0cmFjdCkgeworCQlpZiAoc3ltbGluayhvdXRidWZmZXIsIHBhdGgpIDwgMCkgeworCQkJZGllKEZTQ0tfRVJST1IsIDEsIF8oInN5bWxpbmsgZmFpbGVkOiAlcyIpLCBwYXRoKTsKKwkJfQorCQljaGFuZ2VfZmlsZV9zdGF0dXMocGF0aCwgaSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBkb19zcGVjaWFsX2lub2RlKGNoYXIgKnBhdGgsIHN0cnVjdCBjcmFtZnNfaW5vZGUgKmkpCit7CisJZGV2X3QgZGV2dHlwZSA9IDA7CisJY2hhciB0eXBlOworCisJaWYgKGktPm9mZnNldCkgewkvKiBubyBuZWVkIHRvIHNoaWZ0IG9mZnNldCAqLworCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygic3BlY2lhbCBmaWxlIGhhcyBub24temVybyBvZmZzZXQ6ICVzIiksIHBhdGgpOworCX0KKwlpZiAoU19JU0NIUihpLT5tb2RlKSkgeworCQlkZXZ0eXBlID0gaS0+c2l6ZTsKKwkJdHlwZSA9ICdjJzsKKwl9CisJZWxzZSBpZiAoU19JU0JMSyhpLT5tb2RlKSkgeworCQlkZXZ0eXBlID0gaS0+c2l6ZTsKKwkJdHlwZSA9ICdiJzsKKwl9CisJZWxzZSBpZiAoU19JU0ZJRk8oaS0+bW9kZSkpIHsKKwkJaWYgKGktPnNpemUgIT0gMCkgeworCQkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsIF8oImZpZm8gaGFzIG5vbi16ZXJvIHNpemU6ICVzIiksIHBhdGgpOworCQl9CisJCXR5cGUgPSAncCc7CisJfQorCWVsc2UgaWYgKFNfSVNTT0NLKGktPm1vZGUpKSB7CisJCWlmIChpLT5zaXplICE9IDApIHsKKwkJCWRpZShGU0NLX1VOQ09SUkVDVEVELCAwLCBfKCJzb2NrZXQgaGFzIG5vbi16ZXJvIHNpemU6ICVzIiksIHBhdGgpOworCQl9CisJCXR5cGUgPSAncyc7CisJfQorCWVsc2UgeworCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygiYm9ndXMgbW9kZTogJXMgKCVvKSIpLCBwYXRoLCBpLT5tb2RlKTsKKwkJcmV0dXJuOwkJLyogbm90IHJlYWNoZWQgKi8KKwl9CisKKwlpZiAob3B0X3ZlcmJvc2UpIHsKKwkJcHJpbnRfbm9kZSh0eXBlLCBpLCBwYXRoKTsKKwl9CisKKwlpZiAob3B0X2V4dHJhY3QpIHsKKwkJaWYgKG1rbm9kKHBhdGgsIGktPm1vZGUsIGRldnR5cGUpIDwgMCkgeworCQkJZGllKEZTQ0tfRVJST1IsIDEsIF8oIm1rbm9kIGZhaWxlZDogJXMiKSwgcGF0aCk7CisJCX0KKwkJY2hhbmdlX2ZpbGVfc3RhdHVzKHBhdGgsIGkpOworCX0KK30KKworc3RhdGljIHZvaWQgZXhwYW5kX2ZzKGNoYXIgKnBhdGgsIHN0cnVjdCBjcmFtZnNfaW5vZGUgKmlub2RlKQoreworCWlmIChTX0lTRElSKGlub2RlLT5tb2RlKSkgeworCQlkb19kaXJlY3RvcnkocGF0aCwgaW5vZGUpOworCX0KKwllbHNlIGlmIChTX0lTUkVHKGlub2RlLT5tb2RlKSkgeworCQlkb19maWxlKHBhdGgsIGlub2RlKTsKKwl9CisJZWxzZSBpZiAoU19JU0xOSyhpbm9kZS0+bW9kZSkpIHsKKwkJZG9fc3ltbGluayhwYXRoLCBpbm9kZSk7CisJfQorCWVsc2UgeworCQlkb19zcGVjaWFsX2lub2RlKHBhdGgsIGlub2RlKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfZnMoaW50IHN0YXJ0KQoreworCXN0cnVjdCBjcmFtZnNfaW5vZGUgKnJvb3Q7CisKKwlyb290ID0gcmVhZF9zdXBlcigpOworCXVtYXNrKDApOworCWV1aWQgPSBnZXRldWlkKCk7CisJc3RyZWFtLm5leHRfaW4gPSBOVUxMOworCXN0cmVhbS5hdmFpbF9pbiA9IDA7CisJaW5mbGF0ZUluaXQoJnN0cmVhbSk7CisJZXhwYW5kX2ZzKGV4dHJhY3RfZGlyLCByb290KTsKKwlpbmZsYXRlRW5kKCZzdHJlYW0pOworCWlmIChzdGFydF9kYXRhICE9IH4wVUwpIHsKKwkJaWYgKHN0YXJ0X2RhdGEgPCAoc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgc3RhcnQpKSB7CisJCQlkaWUoRlNDS19VTkNPUlJFQ1RFRCwgMCwgXygiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIpLCBzdGFydF9kYXRhLCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCk7CisJCX0KKwkJaWYgKGVuZF9kaXIgIT0gc3RhcnRfZGF0YSkgeworCQkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsIF8oImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiKSwgZW5kX2Rpciwgc3RhcnRfZGF0YSk7CisJCX0KKwl9CisJaWYgKHN1cGVyLmZsYWdzICYgQ1JBTUZTX0ZMQUdfRlNJRF9WRVJTSU9OXzIpIHsKKwkJaWYgKGVuZF9kYXRhID4gc3VwZXIuc2l6ZSkgeworCQkJZGllKEZTQ0tfVU5DT1JSRUNURUQsIDAsIF8oImludmFsaWQgZmlsZSBkYXRhIG9mZnNldCIpKTsKKwkJfQorCX0KKwlpcHV0KHJvb3QpOwkJLyogZnJlZShyb290KSAqLworfQorI2VuZGlmIC8qIElOQ0xVREVfRlNfVEVTVFMgKi8KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWludCBjOwkJCS8qIGZvciBnZXRvcHQgKi8KKwlpbnQgc3RhcnQgPSAwOworCXNpemVfdCBsZW5ndGggPSAwOworCisJc2V0bG9jYWxlKExDX01FU1NBR0VTLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisJcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKKworCWlmIChhcmdjKQorCQlwcm9nbmFtZSA9IGFyZ3ZbMF07CisKKwlvdXRidWZmZXIgPSBtYWxsb2MocGFnZV9zaXplICogMik7CisJaWYgKCFvdXRidWZmZXIpCisJCWRpZShGU0NLX0VSUk9SLCAxLCBfKCJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIikpOworCisJLyogY29tbWFuZCBsaW5lIG9wdGlvbnMgKi8KKwl3aGlsZSAoKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgImh4OnYiKSkgIT0gRU9GKSB7CisJCXN3aXRjaCAoYykgeworCQljYXNlICdoJzoKKwkJCXVzYWdlKEZTQ0tfT0spOworCQljYXNlICd4JzoKKyNpZmRlZiBJTkNMVURFX0ZTX1RFU1RTCisJCQlvcHRfZXh0cmFjdCA9IDE7CisJCQlleHRyYWN0X2RpciA9IG9wdGFyZzsKKwkJCWJyZWFrOworI2Vsc2UgLyogbm90IElOQ0xVREVfRlNfVEVTVFMgKi8KKwkJCWRpZShGU0NLX1VTQUdFLCAwLCBfKCJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiKSk7CisjZW5kaWYgLyogbm90IElOQ0xVREVfRlNfVEVTVFMgKi8KKwkJY2FzZSAndic6CisJCQlvcHRfdmVyYm9zZSsrOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoKGFyZ2MgLSBvcHRpbmQpICE9IDEpCisJCXVzYWdlKEZTQ0tfVVNBR0UpOworCWZpbGVuYW1lID0gYXJndltvcHRpbmRdOworCisJdGVzdF9zdXBlcigmc3RhcnQsICZsZW5ndGgpOworCXRlc3RfY3JjKHN0YXJ0KTsKKyNpZmRlZiBJTkNMVURFX0ZTX1RFU1RTCisJdGVzdF9mcyhzdGFydCk7CisjZW5kaWYgLyogSU5DTFVERV9GU19URVNUUyAqLworCisJaWYgKG9wdF92ZXJib3NlKSB7CisJCXByaW50ZigiJXM6IE9LXG4iLCBmaWxlbmFtZSk7CisJfQorCisJZXhpdChGU0NLX09LKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvZnNjay5taW5peC44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9mc2NrLm1pbml4LjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFlYWI1YwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvZnNjay5taW5peC44CkBAIC0wLDAgKzEsMTM2IEBACisuXCIgQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQgUmlja2FyZCBFLiBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSkKKy5cIiBNYXkgYmUgZnJlZWx5IGRpc3RyaWJ1dGVkLgorLlwiICIgZm9yIGhpbGl0MTkKKy5USCBGU0NLIDggIjIgSnVseSAxOTk2IiAiVXRpbC1MaW51eCAyLjYiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK2ZzY2subWluaXggXC0gYSBmaWxlIHN5c3RlbSBjb25zaXN0ZW5jeSBjaGVja2VyIGZvciBMaW51eAorLlNIIFNZTk9QU0lTCisuQiBmc2NrLm1pbml4CisuUkIgWyBcLWxhcnZzbWYgXQorLkkgZGV2aWNlCisuU0ggREVTQ1JJUFRJT04KKy5CIGZzY2subWluaXgKK3BlcmZvcm1zIGEgY29uc2lzdGVuY3kgY2hlY2sgZm9yIHRoZSBMaW51eCBNSU5JWCBmaWxlc3lzdGVtLiAgVGhlIGN1cnJlbnQKK3ZlcnNpb24gc3VwcG9ydHMgdGhlIDE0IGNoYXJhY3RlciBhbmQgMzAgY2hhcmFjdGVyIGZpbGVuYW1lIG9wdGlvbnMuCisKK1RoZSBwcm9ncmFtCithc3N1bWVzIHRoZSBmaWxlIHN5c3RlbSBpcyBxdWllc2NlbnQuCisuQiBmc2NrLm1pbml4CitzaG91bGQgbm90IGJlIHVzZWQgb24gYSBtb3VudGVkIGRldmljZSB1bmxlc3MgeW91IGNhbiBiZSBzdXJlIG5vYm9keSBpcword3JpdGluZyB0byBpdCAoYW5kIHJlbWVtYmVyIHRoYXQgdGhlIGtlcm5lbCBjYW4gd3JpdGUgdG8gaXQgd2hlbiBpdAorc2VhcmNoZXMgZm9yIGZpbGVzKS4KKworVGhlIGRldmljZSB3aWxsIHVzdWFsbHkgaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm06CisubmYKKy5SUworL2Rldi9oZGFbMS02M10gKElERSBkaXNrIDEpCisvZGV2L2hkYlsxLTYzXSAoSURFIGRpc2sgMikKKy9kZXYvc2RhWzEtMTVdIChTQ1NJIGRpc2sgMSkKKy9kZXYvc2RiWzEtMTVdIChTQ1NJIGRpc2sgMikKKy5SRQorLmZpCisKK0lmIHRoZSBmaWxlIHN5c3RlbSB3YXMgY2hhbmdlZCAoaS5lLiwgcmVwYWlyZWQpLCB0aGVuCisuQiBmc2NrLm1pbml4Cit3aWxsIHByaW50ICJGSUxFIFNZU1RFTSBIQVMgQ0hBTkdFRCIgYW5kIHdpbGwKKy5CUiBzeW5jICgyKQordGhyZWUgdGltZXMgYmVmb3JlIGV4aXRpbmcuICBTaW5jZSBMaW51eCBkb2VzIG5vdCBjdXJyZW50bHkgaGF2ZSByYXcKK2RldmljZXMsIHRoZXJlIGlzCisuSSBubworbmVlZCB0byByZWJvb3QgYXQgdGhpcyB0aW1lLgorLlNIIFdBUk5JTkcKKy5CIGZzY2subWluaXgKK3Nob3VsZAorLkIgbm90CitiZSB1c2VkIG9uIGEgbW91bnRlZCBmaWxlc3lzdGVtLiAgVXNpbmcKKy5CIGZzY2subWluaXgKK29uIGEgbW91bnRlZCBmaWxlc3lzdGVtIGlzIHZlcnkgZGFuZ2Vyb3VzLCBkdWUgdG8gdGhlIHBvc3NpYmlsaXR5IHRoYXQKK2RlbGV0ZWQgZmlsZXMgYXJlIHN0aWxsIGluIHVzZSwgYW5kIGNhbiBzZXJpb3VzbHkgZGFtYWdlIGEgcGVyZmVjdGx5IGdvb2QKK2ZpbGVzeXN0ZW0hICBJZiB5b3UgYWJzb2x1dGVseSBoYXZlIHRvIHJ1bgorLkIgZnNjay5taW5peAorb24gYSBtb3VudGVkIGZpbGVzeXN0ZW0gKGkuZS4sIHRoZSByb290IGZpbGVzeXN0ZW0pLCBtYWtlIHN1cmUgbm90aGluZyBpcword3JpdGluZyB0byB0aGUgZGlzaywgYW5kIHRoYXQgbm8gZmlsZXMgYXJlICJ6b21iaWVzIiB3YWl0aW5nIGZvciBkZWxldGlvbi4KKy5TSCBPUFRJT05TCisuVFAKKy5CIFwtbAorTGlzdHMgYWxsIGZpbGVuYW1lcworLlRQCisuQiBcLXIKK1BlcmZvcm1zIGludGVyYWN0aXZlIHJlcGFpcnMKKy5UUAorLkIgXC1hCitQZXJmb3JtcyBhdXRvbWF0aWMgcmVwYWlycyAodGhpcyBvcHRpb24gaW1wbGllcworLkJSIFwtciApLAorYW5kIHNlcnZlcyB0byBhbnN3ZXIgYWxsIG9mIHRoZSBxdWVzdGlvbnMgYXNrZWQgd2l0aCB0aGUgZGVmYXVsdC4gIE5vdGUKK3RoYXQgdGhpcyBjYW4gYmUgZXh0cmVtZWx5IGRhbmdlcm91cyBpbiB0aGUgY2FzZSBvZiBleHRlbnNpdmUgZmlsZSBzeXN0ZW0KK2RhbWFnZS4KKy5UUAorLkIgXC12CitWZXJib3NlCisuVFAKKy5CIFwtcworT3V0cHV0cyBzdXBlci1ibG9jayBpbmZvcm1hdGlvbgorLlRQCisuQiBcLW0KK0FjdGl2YXRlcyBNSU5JWC1saWtlICJtb2RlIG5vdCBjbGVhcmVkIiB3YXJuaW5ncworLlRQCisuQiBcLWYKK0ZvcmNlIGZpbGUgc3lzdGVtIGNoZWNrIGV2ZW4gaWYgdGhlIGZpbGUgc3lzdGVtIHdhcyBtYXJrZWQgYXMgdmFsaWQgKHRoaXMKK21hcmtpbmcgaXMgZG9uZSBieSB0aGUga2VybmVsIHdoZW4gdGhlIGZpbGUgc3lzdGVtIGlzIHVubW91bnRlZCkuCisuU0ggIlNFRSBBTFNPIgorLkJSIGZzY2sgKDgpLAorLkJSIGZzY2suZXh0ICg4KSwKKy5CUiBmc2NrLmV4dDIgKDgpLAorLkJSIGZzY2sueGlhZnMgKDgpLAorLkJSIG1rZnMgKDgpLAorLkJSIG1rZnMubWluaXggKDgpLAorLkJSIG1rZnMuZXh0ICg4KSwKKy5CUiBta2ZzLmV4dDIgKDgpLAorLkJSIG1rZnMueGlhZnMgKDgpLAorLkJSIHJlYm9vdCAoOCkKKy5TSCBESUFHTk9TVElDUworVGhlcmUgYXJlIG51bWVyb3VzIGRpYWdub3N0aWMgbWVzc2FnZXMuICBUaGUgb25lcyBtZW50aW9uZWQgaGVyZSBhcmUgdGhlCittb3N0IGNvbW1vbmx5IHNlZW4gaW4gbm9ybWFsIHVzYWdlLgorCitJZiB0aGUgZGV2aWNlIGRvZXMgbm90IGV4aXN0LAorLkIgZnNjay5taW5peAord2lsbCBwcmludCAidW5hYmxlIHRvIHJlYWQgc3VwZXIgYmxvY2siLiAgSWYgdGhlIGRldmljZSBleGlzdHMsIGJ1dCBpcyBub3QKK2EgTUlOSVggZmlsZSBzeXN0ZW0sCisuQiBmc2NrLm1pbml4Cit3aWxsIHByaW50ICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIi4KKy5TSCAiRVhJVCBDT0RFUyIKK1RoZSBleGl0IGNvZGUgcmV0dXJuZWQgYnkKKy5CIGZzY2subWluaXgKK2lzIHRoZSBzdW0gb2YgdGhlIGZvbGxvd2luZzoKKy5JUCAwCitObyBlcnJvcnMKKy5JUCAzCitGaWxlIHN5c3RlbSBlcnJvcnMgY29ycmVjdGVkLCBzeXN0ZW0gc2hvdWxkIGJlIHJlYm9vdGVkIGlmIGZpbGUgc3lzdGVtIHdhcworbW91bnRlZAorLklQIDQKK0ZpbGUgc3lzdGVtIGVycm9ycyBsZWZ0IHVuY29ycmVjdGVkCisuSVAgOAorT3BlcmF0aW9uYWwgZXJyb3IKKy5JUCAxNgorVXNhZ2Ugb3Igc3ludGF4IGVycm9yCisuUFAKK0luIHBvaW50IG9mIGZhY3QsIG9ubHkgMCwgMywgNCwgNywgOCwgYW5kIDE2IGNhbiBldmVyIGJlIHJldHVybmVkLgorLlNIIEFVVEhPUgorTGludXMgVG9ydmFsZHMgKHRvcnZhbGRzQGNzLmhlbHNpbmtpLmZpKQorLmJyCitFcnJvciBjb2RlIHZhbHVlcyBieSBSaWsgRmFpdGggKGZhaXRoQGNzLnVuYy5lZHUpCisuYnIKK0FkZGVkIHN1cHBvcnQgZm9yIGZpbGUgc3lzdGVtIHZhbGlkIGZsYWc6IERyLiBXZXR0c3RlaW4KKyhncmVnJXdpbmQudXVjcEBwbGFpbnMubm9kYWsuZWR1KQorLmJyCitDaGVjayB0byBwcmV2ZW50IGZzY2sgb2YgbW91bnRlZCBmaWxlc3lzdGVtIGFkZGVkIGJ5IERhbmllbCBRdWlubGFuCisocXVpbmxhbkB5Z2dkcmFzaWwuY29tKQorLmJyCitNaW5peCB2MiBmcyBzdXBwb3J0IGJ5IEFuZHJlYXMgU2Nod2FiCisoc2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlKSwgdXBkYXRlZCBieSBOaWNvbGFpCitMYW5nZmVsZHQgKGphbmxAbWF0aC51aW8ubm8pCisuYnIKK1BvcnRhYmlsaXR5IHBhdGNoIGJ5IFJ1c3NlbGwgS2luZyAocm1rQGVjcy5zb3Rvbi5hYy51aykuCisuU0ggQVZBSUxBQklMSVRZCitUaGUgZnNjay5taW5peCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvZnNjay5taW5peC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9mc2NrLm1pbml4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNlNzE5NgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvZnNjay5taW5peC5jCkBAIC0wLDAgKzEsMTQxMiBAQAorLyoKKyAqIGZzY2subWluaXguYyAtIGEgZmlsZSBzeXN0ZW0gY29uc2lzdGVuY3kgY2hlY2tlciBmb3IgTGludXguCisgKgorICogKEMpIDE5OTEsIDE5OTIgTGludXMgVG9ydmFsZHMuIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZAorICogYXMgcGVyIHRoZSBHTlUgY29weWxlZnQuCisgKi8KKworLyoKKyAqIDA5LjExLjkxICAtICBtYWRlIHRoZSBmaXJzdCBydWRpbWV0YXJ5IGZ1bmN0aW9ucworICoKKyAqIDEwLjExLjkxICAtICB1cGRhdGVkLCBkb2VzIGNoZWNraW5nLCBubyByZXBhaXJzIHlldC4KKyAqCQlTZW50IG91dCB0byB0aGUgbWFpbGluZy1saXN0IGZvciB0ZXN0aW5nLgorICoKKyAqIDE0LjExLjkxICAtCVRlc3Rpbmcgc2VlbXMgdG8gaGF2ZSBnb25lIHdlbGwuIEFkZGVkIHNvbWUKKyAqCQljb3JyZWN0aW9uLWNvZGUsIGFuZCBjaGFuZ2VkIHNvbWUgZnVuY3Rpb25zLgorICoKKyAqIDE1LjExLjkxICAtICBNb3JlIGNvcnJlY3Rpb24gY29kZS4gSG9wZWZ1bGx5IGl0IG5vdGljZXMgbW9zdAorICoJCWNhc2VzIG5vdywgYW5kIHRyaWVzIHRvIGRvIHNvbWV0aGluZyBhYm91dCB0aGVtLgorICoKKyAqIDE2LjExLjkxICAtICBNb3JlIGNvcnJlY3Rpb25zICh0aGFua3MgdG8gTWlrYSBKYWxhdmEpLiBNb3N0CisgKgkJdGhpbmdzIHNlZW0gdG8gd29yayBub3cuIFllYWgsIHN1cmUuCisgKgorICoKKyAqIDE5LjA0LjkyICAtCUhhZCB0byBzdGFydCBvdmVyIGFnYWluIGZyb20gdGhpcyBvbGQgdmVyc2lvbiwgYXMgYQorICoJCWtlcm5lbCBidWcgYXRlIG15IGVuaGFuY2VkIGZzY2sgaW4gZmVicnVhcnkuCisgKgorICogMjguMDIuOTMgIC0JYWRkZWQgc3VwcG9ydCBmb3IgZGlmZmVyZW50IGRpcmVjdG9yeSBlbnRyeSBzaXplcy4uCisgKgorICogU2F0IE1hciAgNiAxODo1OTo0MiAxOTkzLCBmYWl0aEBjcy51bmMuZWR1OiBPdXRwdXQgbmFtZWxlbiB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyLWJsb2NrIGluZm9ybWF0aW9uCisgKgorICogU2F0IE9jdCAgOSAxMToxNzoxMSAxOTkzLCBmYWl0aEBjcy51bmMuZWR1OiBtYWtlIGV4aXQgc3RhdHVzIGNvbmZvcm0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhhdCByZXF1aXJlZCBieSBmc3V0aWwKKyAqCisgKiBNb24gSmFuICAzIDExOjA2OjUyIDE5OTQgLSBEci4gV2V0dHN0ZWluIChncmVnJXdpbmQudXVjcEBwbGFpbnMubm9kYWsuZWR1KQorICoJCQkgICAgICBBZGRlZCBzdXBwb3J0IGZvciBmaWxlIHN5c3RlbSB2YWxpZCBmbGFnLiAgQWxzbworICoJCQkgICAgICBhZGRlZCBwcm9ncmFtX3ZlcnNpb24gdmFyaWFibGUgYW5kIG91dHB1dCBvZgorICoJCQkgICAgICBwcm9ncmFtIG5hbWUgYW5kIHZlcnNpb24gbnVtYmVyIHdoZW4gcHJvZ3JhbQorICoJCQkgICAgICBpcyBleGVjdXRlZC4KKyAqCisgKiAzMC4xMC45NCAtIGFkZGVkIHN1cHBvcnQgZm9yIHYyIGZpbGVzeXN0ZW0KKyAqICAgICAgICAgICAgKEFuZHJlYXMgU2Nod2FiLCBzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGUpCisgKgorICogMTAuMTIuOTQgIC0gIGFkZGVkIHRlc3QgdG8gcHJldmVudCBjaGVja2luZyBvZiBtb3VudGVkIGZzIGFkYXB0ZWQKKyAqICAgICAgICAgICAgICBmcm9tIFRoZW9kb3JlIFRzJ28ncyAodHl0c29AYXRoZW5hLm1pdC5lZHUpIGUyZnNjaworICogICAgICAgICAgICAgIHByb2dyYW0uICAoRGFuaWVsIFF1aW5sYW4sIHF1aW5sYW5AeWdnZHJhc2lsLmNvbSkKKyAqCisgKiAwMS4wNy45NiAgLSBGaXhlZCB0aGUgdjIgZnMgc3R1ZmYgdG8gdXNlIHRoZSByaWdodCAjZGVmaW5lcyBhbmQgc3VjaAorICoJICAgICAgIGZvciBtb2Rlcm4gbGliY3MgKGphbmxAbWF0aC51aW8ubm8sIE5pY29sYWkgTGFuZ2ZlbGR0KQorICoKKyAqIDAyLjA3Ljk2ICAtIEFkZGVkIEMgYml0IGZpZGRsaW5nIHJvdXRpbmVzIGZyb20gcm1rQGVjcy5zb3Rvbi5hYy51ayAKKyAqICAgICAgICAgICAgIChSdXNzZWxsIEtpbmcpLiAgSGUgbWFkZSB0aGVtIGZvciBBUk0uICBJdCB3b3VsZCBzZWVtCisgKgkgICAgICAgdGhhdCB0aGUgQVJNIGlzIHBvd2VyZnVsIGVub3VnaCB0byBkbyB0aGlzIGluIEMgd2hlcmVhcworICogICAgICAgICAgICAgaTM4NiBhbmQgbTY0ayBtdXN0IHVzZSBhc3NlbWJseSB0byBnZXQgaXQgZmFzdCA+Oi0pCisgKgkgICAgICAgVGhpcyBzaG91bGQgbWFrZSBtaW5peCBmc2NrIHN5c3RlbWluZGVwZW5kZW50LgorICoJICAgICAgIChqYW5sQG1hdGgudWlvLm5vLCBOaWNvbGFpIExhbmdmZWxkdCkKKyAqCisgKiAwNC4xMS45NiAgLSBBZGRlZCBtaW5vciBmaXhlcyBmcm9tIEFuZHJlYXMgU2Nod2FiIHRvIGF2b2lkIGNvbXBpbGVyCisgKiAgICAgICAgICAgICB3YXJuaW5ncy4gIEFkZGVkIG1jNjhrIGJpdG9wcyBmcm9tIAorICoJICAgICAgIEpvZXJnIERvcmNoYWluIDxkb3JjaGFpbkBtcGktc2IubXBnLmRlPi4KKyAqCisgKiAwNi4xMS45NiAgLSBBZGRlZCB2MiBjb2RlIHN1Ym1pdHRlZCBieSBKb2VyZyBEb3JjaGFpbiwgYnV0IHdyaXR0ZW4gYnkKKyAqICAgICAgICAgICAgIEFuZHJlYXMgU2Nod2FiLgorICoKKyAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqIDIwMDgtMDQtMDYgSmFtZXMgWW91bmdtYW4gPGpheUBnbnUub3JnPgorICogLSBJc3N1ZSBiZXR0ZXIgZXJyb3IgbWVzc2FnZSBpZiB3ZSBmYWlsIHRvIG9wZW4gdGhlIGRldmljZS4KKyAqIC0gUmVzdG9yZSB0ZXJtaW5hbCBzdGF0ZSBpZiB3ZSBnZXQgYSBmYXRhbCBzaWduYWwuCisgKgorICoKKyAqIEkndmUgaGFkIG5vIHRpbWUgdG8gYWRkIGNvbW1lbnRzIC0gaG9wZWZ1bGx5IHRoZSBmdW5jdGlvbiBuYW1lcworICogYXJlIGNvbW1lbnRzIGVub3VnaC4gQXMgd2l0aCBhbGwgZmlsZSBzeXN0ZW0gY2hlY2tlcnMsIHRoaXMgYXNzdW1lcworICogdGhlIGZpbGUgc3lzdGVtIGlzIHF1aWVzY2VudCAtIGRvbid0IHVzZSBpdCBvbiBhIG1vdW50ZWQgZGV2aWNlCisgKiB1bmxlc3MgeW91IGNhbiBiZSBzdXJlIG5vYm9keSBpcyB3cml0aW5nIHRvIGl0IChhbmQgcmVtZW1iZXIgdGhhdCB0aGUKKyAqIGtlcm5lbCBjYW4gd3JpdGUgdG8gaXQgd2hlbiBpdCBzZWFyY2hlcyBmb3IgZmlsZXMpLgorICoKKyAqIFVzdWFnZTogZnNjayBbLWxhcnZzbV0gZGV2aWNlCisgKgktbCBmb3IgYSBsaXN0aW5nIG9mIGFsbCB0aGUgZmlsZW5hbWVzCisgKgktYSBmb3IgYXV0b21hdGljIHJlcGFpcnMgKG5vdCBpbXBsZW1lbnRlZCkKKyAqCS1yIGZvciByZXBhaXJzIChpbnRlcmFjdGl2ZSkgKG5vdCBpbXBsZW1lbnRlZCkKKyAqCS12IGZvciB2ZXJib3NlICh0ZWxscyBob3cgbWFueSBmaWxlcykKKyAqCS1zIGZvciBzdXBlci1ibG9jayBpbmZvCisgKgktbSBmb3IgbWluaXgtbGlrZSAibW9kZSBub3QgY2xlYXJlZCIgd2FybmluZ3MKKyAqCS1mIGZvcmNlIGZpbGVzeXN0ZW0gY2hlY2sgZXZlbiBpZiBmaWxlc3lzdGVtIG1hcmtlZCBhcyB2YWxpZAorICoKKyAqIFRoZSBkZXZpY2UgbWF5IGJlIGEgYmxvY2sgZGV2aWNlIG9yIGEgaW1hZ2Ugb2Ygb25lLCBidXQgdGhpcyBpc24ndAorICogZW5mb3JjZWQgKGJ1dCBpdCdzIG5vdCBtdWNoIGZ1biBvbiBhIGNoYXJhY3RlciBkZXZpY2UgOi0pLiAKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisjaW5jbHVkZSA8bW50ZW50Lmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKworI2luY2x1ZGUgIm1pbml4LmgiCisjaW5jbHVkZSAibmxzLmgiCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAiYml0b3BzLmgiCisKKyNkZWZpbmUgUk9PVF9JTk8gMQorCisjZGVmaW5lIFVQUEVSKHNpemUsbikgKChzaXplKygobiktMSkpLyhuKSkKKyNkZWZpbmUgSU5PREVfU0laRSAoc2l6ZW9mKHN0cnVjdCBtaW5peF9pbm9kZSkpCisjZGVmaW5lIElOT0RFX1NJWkUyIChzaXplb2Yoc3RydWN0IG1pbml4Ml9pbm9kZSkpCisjZGVmaW5lIElOT0RFX0JMT0NLUyBVUFBFUihJTk9ERVMsICh2ZXJzaW9uMiA/IE1JTklYMl9JTk9ERVNfUEVSX0JMT0NLIFwKKwkJCQkgICAgOiBNSU5JWF9JTk9ERVNfUEVSX0JMT0NLKSkKKyNkZWZpbmUgSU5PREVfQlVGRkVSX1NJWkUgKElOT0RFX0JMT0NLUyAqIEJMT0NLX1NJWkUpCisKKyNkZWZpbmUgQklUU19QRVJfQkxPQ0sgKEJMT0NLX1NJWkU8PDMpCisKK3N0YXRpYyBjaGFyICogcHJvZ3JhbV9uYW1lID0gImZzY2subWluaXgiOworc3RhdGljIGNoYXIgKiBkZXZpY2VfbmFtZSA9IE5VTEw7CitzdGF0aWMgaW50IElOOworc3RhdGljIGludCByZXBhaXI9MCwgYXV0b21hdGljPTAsIHZlcmJvc2U9MCwgbGlzdD0wLCBzaG93PTAsIHdhcm5fbW9kZT0wLCAKKwlmb3JjZT0wOworc3RhdGljIGludCBkaXJlY3Rvcnk9MCwgcmVndWxhcj0wLCBibG9ja2Rldj0wLCBjaGFyZGV2PTAsIGxpbmtzPTAsCisJCXN5bWxpbmtzPTAsIHRvdGFsPTA7CisKK3N0YXRpYyBpbnQgY2hhbmdlZCA9IDA7IC8qIGZsYWdzIGlmIHRoZSBmaWxlc3lzdGVtIGhhcyBiZWVuIGNoYW5nZWQgKi8KK3N0YXRpYyBpbnQgZXJyb3JzX3VuY29ycmVjdGVkID0gMDsgLyogZmxhZyBpZiBzb21lIGVycm9yIHdhcyBub3QgY29ycmVjdGVkICovCitzdGF0aWMgaW50IGRpcnNpemUgPSAxNjsKK3N0YXRpYyBpbnQgbmFtZWxlbiA9IDE0Oworc3RhdGljIGludCB2ZXJzaW9uMiA9IDA7CitzdGF0aWMgc3RydWN0IHRlcm1pb3MgdGVybWlvczsKK3N0YXRpYyB2b2xhdGlsZSBzaWdfYXRvbWljX3QgdGVybWlvc19zZXQgPSAwOworCisvKiBGaWxlLW5hbWUgZGF0YSAqLworI2RlZmluZSBNQVhfREVQVEggNTAKK3N0YXRpYyBpbnQgbmFtZV9kZXB0aCA9IDA7CitzdGF0aWMgY2hhciBuYW1lX2xpc3RbTUFYX0RFUFRIXVtOQU1FX01BWCsxXTsKKy8qIENvcHkgb2YgdGhlIHByZXZpb3VzLCBqdXN0IGZvciBlcnJvciByZXBvcnRpbmcgLSBzZWUgZ2V0X2N1cnJlbnRfbmFtZSAqLworLyogVGhpcyBpcyBhIHdhc3RlIG9mIDEya0Igb3Igc28uICovCitzdGF0aWMgY2hhciBjdXJyZW50X25hbWVbTUFYX0RFUFRIKihOQU1FX01BWCsxKSsxXTsKKworc3RhdGljIGNoYXIgKiBpbm9kZV9idWZmZXIgPSBOVUxMOworI2RlZmluZSBJbm9kZSAoKChzdHJ1Y3QgbWluaXhfaW5vZGUgKikgaW5vZGVfYnVmZmVyKS0xKQorI2RlZmluZSBJbm9kZTIgKCgoc3RydWN0IG1pbml4Ml9pbm9kZSAqKSBpbm9kZV9idWZmZXIpLTEpCisKK3N0YXRpYyBjaGFyICpzdXBlcl9ibG9ja19idWZmZXI7CisjZGVmaW5lIFN1cGVyICgqKHN0cnVjdCBtaW5peF9zdXBlcl9ibG9jayAqKXN1cGVyX2Jsb2NrX2J1ZmZlcikKKyNkZWZpbmUgSU5PREVTICgodW5zaWduZWQgbG9uZylTdXBlci5zX25pbm9kZXMpCisjZGVmaW5lIFpPTkVTICgodW5zaWduZWQgbG9uZykodmVyc2lvbjIgPyBTdXBlci5zX3pvbmVzIDogU3VwZXIuc19uem9uZXMpKQorI2RlZmluZSBJTUFQUyAoKHVuc2lnbmVkIGxvbmcpU3VwZXIuc19pbWFwX2Jsb2NrcykKKyNkZWZpbmUgWk1BUFMgKCh1bnNpZ25lZCBsb25nKVN1cGVyLnNfem1hcF9ibG9ja3MpCisjZGVmaW5lIEZJUlNUWk9ORSAoKHVuc2lnbmVkIGxvbmcpU3VwZXIuc19maXJzdGRhdGF6b25lKQorI2RlZmluZSBaT05FU0laRSAoKHVuc2lnbmVkIGxvbmcpU3VwZXIuc19sb2dfem9uZV9zaXplKQorI2RlZmluZSBNQVhTSVpFICgodW5zaWduZWQgbG9uZylTdXBlci5zX21heF9zaXplKQorI2RlZmluZSBNQUdJQyAoU3VwZXIuc19tYWdpYykKKyNkZWZpbmUgTk9STV9GSVJTVFpPTkUgKDIrSU1BUFMrWk1BUFMrSU5PREVfQkxPQ0tTKQorCitzdGF0aWMgY2hhciAqaW5vZGVfbWFwOworc3RhdGljIGNoYXIgKnpvbmVfbWFwOworCitzdGF0aWMgdW5zaWduZWQgY2hhciAqIGlub2RlX2NvdW50ID0gTlVMTDsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyICogem9uZV9jb3VudCA9IE5VTEw7CisKK3N0YXRpYyB2b2lkIHJlY3Vyc2l2ZV9jaGVjayh1bnNpZ25lZCBpbnQgaW5vKTsKK3N0YXRpYyB2b2lkIHJlY3Vyc2l2ZV9jaGVjazIodW5zaWduZWQgaW50IGlubyk7CisKKyNkZWZpbmUgaW5vZGVfaW5fdXNlKHgpIChpc3NldChpbm9kZV9tYXAsKHgpKSAhPSAwKQorI2RlZmluZSB6b25lX2luX3VzZSh4KSAoaXNzZXQoem9uZV9tYXAsKHgpLUZJUlNUWk9ORSsxKSAhPSAwKQorCisjZGVmaW5lIG1hcmtfaW5vZGUoeCkgKHNldGJpdChpbm9kZV9tYXAsKHgpKSxjaGFuZ2VkPTEpCisjZGVmaW5lIHVubWFya19pbm9kZSh4KSAoY2xyYml0KGlub2RlX21hcCwoeCkpLGNoYW5nZWQ9MSkKKworI2RlZmluZSBtYXJrX3pvbmUoeCkgKHNldGJpdCh6b25lX21hcCwoeCktRklSU1RaT05FKzEpLGNoYW5nZWQ9MSkKKyNkZWZpbmUgdW5tYXJrX3pvbmUoeCkgKGNscmJpdCh6b25lX21hcCwoeCktRklSU1RaT05FKzEpLGNoYW5nZWQ9MSkKKworc3RhdGljIHZvaWQKK3Jlc2V0KHZvaWQpIHsKKwlpZiAodGVybWlvc19zZXQpCisJCXRjc2V0YXR0cigwLCBUQ1NBTk9XLCAmdGVybWlvcyk7Cit9CisKKworc3RhdGljIHZvaWQKK2ZhdGFsc2lnKGludCBzaWcpIHsKKwkvKiBXZSByZWNlaXZlZCBhIGZhdGFsIHNpZ25hbC4gIFJlc2V0IHRoZSB0ZXJtaW5hbC4KKwkgKiBBbHNvIHJlc2V0IHRoZSBzaWduYWwgaGFuZGxlciBhbmQgcmUtc2VuZCB0aGUgc2lnbmFsLAorCSAqIHNvIHRoYXQgdGhlIHBhcmVudCBwcm9jZXNzIGtub3dzIHdoaWNoIHNpZ25hbCBhY3R1YWxseQorCSAqIGNhdXNlZCBvdXIgZGVhdGguCisJICovCisJc2lnbmFsKHNpZywgU0lHX0RGTCk7CisJcmVzZXQoKTsKKwlyYWlzZShzaWcpOworfQorCitzdGF0aWMgdm9pZAorbGVhdmUoaW50IHN0YXR1cykgeworICAgICAgICByZXNldCgpOworCWV4aXQoc3RhdHVzKTsKK30KKworc3RhdGljIHZvaWQKK3VzYWdlKHZvaWQpIHsKKwlmcHJpbnRmKHN0ZGVyciwKKwkJXygiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iKSwKKwkJcHJvZ3JhbV9uYW1lKTsKKwlsZWF2ZSgxNik7Cit9CisKK3N0YXRpYyB2b2lkIGRpZShjb25zdCBjaGFyICpmbXQsIC4uLikKKwlfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMSwgMikpKTsKKworc3RhdGljIHZvaWQKK2RpZShjb25zdCBjaGFyICpmbXQsIC4uLikgeworCXZhX2xpc3QgYXA7CisKKwlmcHJpbnRmKHN0ZGVyciwgIiVzOiAiLCBwcm9ncmFtX25hbWUpOworCXZhX3N0YXJ0KGFwLCBmbXQpOworCXZmcHJpbnRmKHN0ZGVyciwgZm10LCBhcCk7CisJdmFfZW5kIChhcCk7CisJZnB1dGMoJ1xuJywgc3RkZXJyKTsKKwlsZWF2ZSg4KTsKK30KKworLyoKKyAqIFRoaXMgc2ltcGx5IGdvZXMgdGhyb3VnaCB0aGUgZmlsZS1uYW1lIGRhdGEgYW5kIHByaW50cyBvdXQgdGhlCisgKiBjdXJyZW50IGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCitnZXRfY3VycmVudF9uYW1lKHZvaWQpIHsKKwlpbnQgaSA9IDAsIGN0OworCWNoYXIgKnAsICpxOworCisJcSA9IGN1cnJlbnRfbmFtZTsKKwl3aGlsZSAoaSA8IG5hbWVfZGVwdGgpIHsKKwkJcCA9IG5hbWVfbGlzdFtpKytdOworCQljdCA9IG5hbWVsZW47CisJCSpxKysgPSAnLyc7CisJCXdoaWxlIChjdC0tICYmICpwKQorCQkJKnErKyA9ICpwKys7CisJfQorCWlmIChpID09IDApCisJCSpxKysgPSAnLyc7CisJKnEgPSAwOworfQorCitzdGF0aWMgaW50Cithc2soY29uc3QgY2hhciAqIHN0cmluZywgaW50IGRlZikgeworCWludCBjOworCisJaWYgKCFyZXBhaXIpIHsKKwkJcHJpbnRmKCJcbiIpOworCQllcnJvcnNfdW5jb3JyZWN0ZWQgPSAxOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKGF1dG9tYXRpYykgeworCQlwcmludGYoIlxuIik7CisJCWlmICghZGVmKQorCQkgICAgICBlcnJvcnNfdW5jb3JyZWN0ZWQgPSAxOworCQlyZXR1cm4gZGVmOworCX0KKwlwcmludGYoZGVmPyIlcyAoeS9uKT8gIjoiJXMgKG4veSk/ICIsc3RyaW5nKTsKKwlmb3IgKDs7KSB7CisJCWZmbHVzaChzdGRvdXQpOworCQlpZiAoKGM9Z2V0Y2hhcigpKT09RU9GKSB7CisJCSAgICAgICAgaWYgKCFkZWYpCisJCQkgICAgICBlcnJvcnNfdW5jb3JyZWN0ZWQgPSAxOworCQkJcmV0dXJuIGRlZjsKKwkJfQorCQljPXRvdXBwZXIoYyk7CisJCWlmIChjID09ICdZJykgeworCQkJZGVmID0gMTsKKwkJCWJyZWFrOworCQl9IGVsc2UgaWYgKGMgPT0gJ04nKSB7CisJCQlkZWYgPSAwOworCQkJYnJlYWs7CisJCX0gZWxzZSBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXG4nKQorCQkJYnJlYWs7CisJfQorCWlmIChkZWYpCisJCXByaW50ZigieVxuIik7CisJZWxzZSB7CisJCXByaW50ZigiblxuIik7CisJCWVycm9yc191bmNvcnJlY3RlZCA9IDE7CisJICAgICB9CisJcmV0dXJuIGRlZjsKK30KKworLyoKKyAqIE1ha2UgY2VydGFpbiB0aGF0IHdlIGFyZW4ndCBjaGVja2luZyBhIGZpbGVzeXN0ZW0gdGhhdCBpcyBvbiBhCisgKiBtb3VudGVkIHBhcnRpdGlvbi4gIENvZGUgYWRhcHRlZCBmcm9tIGUyZnNjaywgQ29weXJpZ2h0IChDKSAxOTkzLAorICogMTk5NCBUaGVvZG9yZSBUcydvLiAgQWxzbyBsaWNlbnNlZCB1bmRlciBHUEwuCisgKi8KK3N0YXRpYyB2b2lkCitjaGVja19tb3VudCh2b2lkKSB7CisJRklMRSAqIGY7CisJc3RydWN0IG1udGVudCAqIG1udDsKKwlpbnQgY29udDsKKwlpbnQgZmQ7CisKKwlpZiAoKGYgPSBzZXRtbnRlbnQgKF9QQVRIX01PVU5URUQsICJyIikpID09IE5VTEwpCisJCXJldHVybjsKKwl3aGlsZSAoKG1udCA9IGdldG1udGVudCAoZikpICE9IE5VTEwpCisJCWlmIChzdHJjbXAgKGRldmljZV9uYW1lLCBtbnQtPm1udF9mc25hbWUpID09IDApCisJCQlicmVhazsKKwllbmRtbnRlbnQgKGYpOworCWlmICghbW50KQorCQlyZXR1cm47CisKKwkvKgorCSAqIElmIHRoZSByb290IGlzIG1vdW50ZWQgcmVhZC1vbmx5LCB0aGVuIC9ldGMvbXRhYiBpcworCSAqIHByb2JhYmx5IG5vdCBjb3JyZWN0OyBzbyB3ZSB3b24ndCBpc3N1ZSBhIHdhcm5pbmcgYmFzZWQgb24KKwkgKiBpdC4KKwkgKi8KKwlmZCA9IG9wZW4oX1BBVEhfTU9VTlRFRCwgT19SRFdSKTsKKwlpZiAoZmQgPCAwICYmIGVycm5vID09IEVST0ZTKQorCQlyZXR1cm47CisJZWxzZQorCQljbG9zZShmZCk7CisJCisJcHJpbnRmIChfKCIlcyBpcyBtb3VudGVkLgkgIiksIGRldmljZV9uYW1lKTsKKwlpZiAoaXNhdHR5KDApICYmIGlzYXR0eSgxKSkKKwkJY29udCA9IGFzayhfKCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiKSwgMCk7CisJZWxzZQorCQljb250ID0gMDsKKwlpZiAoIWNvbnQpIHsKKwkJcHJpbnRmIChfKCJjaGVjayBhYm9ydGVkLlxuIikpOworCQlleGl0ICgwKTsKKwl9CisJcmV0dXJuOworfQorCisvKgorICogY2hlY2tfem9uZV9uciBjaGVja3MgdG8gc2VlIHRoYXQgKm5yIGlzIGEgdmFsaWQgem9uZSBuci4gSWYgaXQKKyAqIGlzbid0LCBpdCB3aWxsIHBvc3NpYmx5IGJlIHJlcGFpcmVkLiBDaGVja196b25lX25yIHNldHMgKmNvcnJlY3RlZAorICogaWYgYW4gZXJyb3Igd2FzIGNvcnJlY3RlZCwgYW5kIHJldHVybnMgdGhlIHpvbmUgKDAgZm9yIG5vIHpvbmUKKyAqIG9yIGEgYmFkIHpvbmUtbnVtYmVyKS4KKyAqLworc3RhdGljIGludAorY2hlY2tfem9uZV9ucih1bnNpZ25lZCBzaG9ydCAqIG5yLCBpbnQgKiBjb3JyZWN0ZWQpIHsKKwlpZiAoISpucikKKwkJcmV0dXJuIDA7CisKKwlpZiAoKm5yIDwgRklSU1RaT05FKSB7CisJCWdldF9jdXJyZW50X25hbWUoKTsKKwkJcHJpbnRmKF8oIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIpLAorCQkgICAgICAgY3VycmVudF9uYW1lKTsKKwl9IGVsc2UgaWYgKCpuciA+PSBaT05FUykgeworCQlnZXRfY3VycmVudF9uYW1lKCk7CisJCXByaW50ZihfKCJab25lIG5yID49IFpPTkVTIGluIGZpbGUgYCVzJy4iKSwKKwkJICAgICAgIGN1cnJlbnRfbmFtZSk7CisJfSBlbHNlCisJCXJldHVybiAqbnI7CisKKwlpZiAoYXNrKF8oIlJlbW92ZSBibG9jayIpLDEpKSB7CisJCSpuciA9IDA7CisJCSpjb3JyZWN0ZWQgPSAxOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorY2hlY2tfem9uZV9ucjIgKHVuc2lnbmVkIGludCAqbnIsIGludCAqY29ycmVjdGVkKSB7CisJaWYgKCEqbnIpCisJCXJldHVybiAwOworCisJaWYgKCpuciA8IEZJUlNUWk9ORSkgeworCQlnZXRfY3VycmVudF9uYW1lKCk7CisJCXByaW50ZiAoXygiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIiksCisJCQljdXJyZW50X25hbWUpOworCX0gZWxzZSBpZiAoKm5yID49IFpPTkVTKSB7CisJCWdldF9jdXJyZW50X25hbWUoKTsKKwkJcHJpbnRmIChfKCJab25lIG5yID49IFpPTkVTIGluIGZpbGUgYCVzJy4iKSwKKwkJCWN1cnJlbnRfbmFtZSk7CisJfSBlbHNlCisJCXJldHVybiAqbnI7CisKKwlpZiAoYXNrIChfKCJSZW1vdmUgYmxvY2siKSwgMSkpIHsKKwkJKm5yID0gMDsKKwkJKmNvcnJlY3RlZCA9IDE7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogcmVhZC1ibG9jayByZWFkcyBibG9jayBuciBpbnRvIHRoZSBidWZmZXIgYXQgYWRkci4KKyAqLworc3RhdGljIHZvaWQKK3JlYWRfYmxvY2sodW5zaWduZWQgaW50IG5yLCBjaGFyICogYWRkcikgeworCWlmICghbnIpIHsKKwkJbWVtc2V0KGFkZHIsMCxCTE9DS19TSVpFKTsKKwkJcmV0dXJuOworCX0KKwlpZiAoQkxPQ0tfU0laRSpuciAhPSBsc2VlayhJTiwgQkxPQ0tfU0laRSpuciwgU0VFS19TRVQpKSB7CisJCWdldF9jdXJyZW50X25hbWUoKTsKKwkJcHJpbnRmKF8oIlJlYWQgZXJyb3I6IHVuYWJsZSB0byBzZWVrIHRvIGJsb2NrIGluIGZpbGUgJyVzJ1xuIiksCisJCSAgICAgICBjdXJyZW50X25hbWUpOworCQltZW1zZXQoYWRkciwwLEJMT0NLX1NJWkUpOworCQllcnJvcnNfdW5jb3JyZWN0ZWQgPSAxOworCX0gZWxzZSBpZiAoQkxPQ0tfU0laRSAhPSByZWFkKElOLCBhZGRyLCBCTE9DS19TSVpFKSkgeworCQlnZXRfY3VycmVudF9uYW1lKCk7CisJCXByaW50ZihfKCJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iKSwKKwkJICAgICAgIGN1cnJlbnRfbmFtZSk7CisJCW1lbXNldChhZGRyLDAsQkxPQ0tfU0laRSk7CisJCWVycm9yc191bmNvcnJlY3RlZCA9IDE7CisJfQorfQorCisvKgorICogd3JpdGVfYmxvY2sgd3JpdGVzIGJsb2NrIG5yIHRvIGRpc2suCisgKi8KK3N0YXRpYyB2b2lkCit3cml0ZV9ibG9jayh1bnNpZ25lZCBpbnQgbnIsIGNoYXIgKiBhZGRyKSB7CisJaWYgKCFucikKKwkJcmV0dXJuOworCWlmIChuciA8IEZJUlNUWk9ORSB8fCBuciA+PSBaT05FUykgeworCQlwcmludGYoXygiSW50ZXJuYWwgZXJyb3I6IHRyeWluZyB0byB3cml0ZSBiYWQgYmxvY2tcbiIKKwkJIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIikpOworCQllcnJvcnNfdW5jb3JyZWN0ZWQgPSAxOworCQlyZXR1cm47CisJfQorCWlmIChCTE9DS19TSVpFKm5yICE9IGxzZWVrKElOLCBCTE9DS19TSVpFKm5yLCBTRUVLX1NFVCkpCisJCWRpZShfKCJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIpKTsKKwlpZiAoQkxPQ0tfU0laRSAhPSB3cml0ZShJTiwgYWRkciwgQkxPQ0tfU0laRSkpIHsKKwkJZ2V0X2N1cnJlbnRfbmFtZSgpOworCQlwcmludGYoXygiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIpLAorCQkgICAgICAgY3VycmVudF9uYW1lKTsKKwkJZXJyb3JzX3VuY29ycmVjdGVkID0gMTsKKwl9Cit9CisKKy8qCisgKiBtYXAtYmxvY2sgY2FsY3VsYXRlcyB0aGUgYWJzb2x1dGUgYmxvY2sgbnIgb2YgYSBibG9jayBpbiBhIGZpbGUuCisgKiBJdCBzZXRzICdjaGFuZ2VkJyBpZiB0aGUgaW5vZGUgaGFzIG5lZWRlZCBjaGFuZ2luZywgYW5kIHJlLXdyaXRlcworICogYW55IGluZGlyZWN0IGJsb2NrcyB3aXRoIGVycm9ycy4KKyAqLworc3RhdGljIGludAorbWFwX2Jsb2NrKHN0cnVjdCBtaW5peF9pbm9kZSAqIGlub2RlLCB1bnNpZ25lZCBpbnQgYmxrbnIpIHsKKwl1bnNpZ25lZCBzaG9ydCBpbmRbQkxPQ0tfU0laRT4+MV07CisJdW5zaWduZWQgc2hvcnQgZGluZFtCTE9DS19TSVpFPj4xXTsKKwlpbnQgYmxrX2NoZywgYmxvY2ssIHJlc3VsdDsKKworCWlmIChibGtucjw3KQorCQlyZXR1cm4gY2hlY2tfem9uZV9ucihpbm9kZS0+aV96b25lICsgYmxrbnIsICZjaGFuZ2VkKTsKKwlibGtuciAtPSA3OworCWlmIChibGtucjw1MTIpIHsKKwkJYmxvY2sgPSBjaGVja196b25lX25yKGlub2RlLT5pX3pvbmUgKyA3LCAmY2hhbmdlZCk7CisJCXJlYWRfYmxvY2soYmxvY2ssIChjaGFyICopIGluZCk7CisJCWJsa19jaGcgPSAwOworCQlyZXN1bHQgPSBjaGVja196b25lX25yKGJsa25yICsgaW5kLCAmYmxrX2NoZyk7CisJCWlmIChibGtfY2hnKQorCQkJd3JpdGVfYmxvY2soYmxvY2ssIChjaGFyICopIGluZCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCWJsa25yIC09IDUxMjsKKwlibG9jayA9IGNoZWNrX3pvbmVfbnIoaW5vZGUtPmlfem9uZSArIDgsICZjaGFuZ2VkKTsKKwlyZWFkX2Jsb2NrKGJsb2NrLCAoY2hhciAqKSBkaW5kKTsKKwlibGtfY2hnID0gMDsKKwlyZXN1bHQgPSBjaGVja196b25lX25yKGRpbmQgKyAoYmxrbnIvNTEyKSwgJmJsa19jaGcpOworCWlmIChibGtfY2hnKQorCQl3cml0ZV9ibG9jayhibG9jaywgKGNoYXIgKikgZGluZCk7CisJYmxvY2sgPSByZXN1bHQ7CisJcmVhZF9ibG9jayhibG9jaywgKGNoYXIgKikgaW5kKTsKKwlibGtfY2hnID0gMDsKKwlyZXN1bHQgPSBjaGVja196b25lX25yKGluZCArIChibGtuciU1MTIpLCAmYmxrX2NoZyk7CisJaWYgKGJsa19jaGcpCisJCXdyaXRlX2Jsb2NrKGJsb2NrLCAoY2hhciAqKSBpbmQpOworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbnQKK21hcF9ibG9jazIgKHN0cnVjdCBtaW5peDJfaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBpbnQgYmxrbnIpIHsKKyAgCXVuc2lnbmVkIGludCBpbmRbQkxPQ0tfU0laRSA+PiAyXTsKKwl1bnNpZ25lZCBpbnQgZGluZFtCTE9DS19TSVpFID4+IDJdOworCXVuc2lnbmVkIGludCB0aW5kW0JMT0NLX1NJWkUgPj4gMl07CisJaW50IGJsa19jaGcsIGJsb2NrLCByZXN1bHQ7CisKKwlpZiAoYmxrbnIgPCA3KQorCQlyZXR1cm4gY2hlY2tfem9uZV9ucjIgKGlub2RlLT5pX3pvbmUgKyBibGtuciwgJmNoYW5nZWQpOworCWJsa25yIC09IDc7CisJaWYgKGJsa25yIDwgMjU2KSB7CisJCWJsb2NrID0gY2hlY2tfem9uZV9ucjIgKGlub2RlLT5pX3pvbmUgKyA3LCAmY2hhbmdlZCk7CisJCXJlYWRfYmxvY2sgKGJsb2NrLCAoY2hhciAqKSBpbmQpOworCQlibGtfY2hnID0gMDsKKwkJcmVzdWx0ID0gY2hlY2tfem9uZV9ucjIgKGJsa25yICsgaW5kLCAmYmxrX2NoZyk7CisJCWlmIChibGtfY2hnKQorCQkJd3JpdGVfYmxvY2sgKGJsb2NrLCAoY2hhciAqKSBpbmQpOworCQlyZXR1cm4gcmVzdWx0OworCX0KKwlibGtuciAtPSAyNTY7CisJaWYgKGJsa25yID49IDI1NiAqIDI1NikgeworCQlibG9jayA9IGNoZWNrX3pvbmVfbnIyIChpbm9kZS0+aV96b25lICsgOCwgJmNoYW5nZWQpOworCQlyZWFkX2Jsb2NrIChibG9jaywgKGNoYXIgKikgZGluZCk7CisJCWJsa19jaGcgPSAwOworCQlyZXN1bHQgPSBjaGVja196b25lX25yMiAoZGluZCArIGJsa25yIC8gMjU2LCAmYmxrX2NoZyk7CisJCWlmIChibGtfY2hnKQorCQkJd3JpdGVfYmxvY2sgKGJsb2NrLCAoY2hhciAqKSBkaW5kKTsKKwkJYmxvY2sgPSByZXN1bHQ7CisJCXJlYWRfYmxvY2sgKGJsb2NrLCAoY2hhciAqKSBpbmQpOworCQlibGtfY2hnID0gMDsKKwkJcmVzdWx0ID0gY2hlY2tfem9uZV9ucjIgKGluZCArIGJsa25yICUgMjU2LCAmYmxrX2NoZyk7CisJCWlmIChibGtfY2hnKQorCQkJd3JpdGVfYmxvY2sgKGJsb2NrLCAoY2hhciAqKSBpbmQpOworCQlyZXR1cm4gcmVzdWx0OworCX0KKwlibGtuciAtPSAyNTYgKiAyNTY7CisJYmxvY2sgPSBjaGVja196b25lX25yMiAoaW5vZGUtPmlfem9uZSArIDksICZjaGFuZ2VkKTsKKwlyZWFkX2Jsb2NrIChibG9jaywgKGNoYXIgKikgdGluZCk7CisJYmxrX2NoZyA9IDA7CisJcmVzdWx0ID0gY2hlY2tfem9uZV9ucjIgKHRpbmQgKyBibGtuciAvICgyNTYgKiAyNTYpLCAmYmxrX2NoZyk7CisJaWYgKGJsa19jaGcpCisJCXdyaXRlX2Jsb2NrIChibG9jaywgKGNoYXIgKikgdGluZCk7CisJYmxvY2sgPSByZXN1bHQ7CisJcmVhZF9ibG9jayAoYmxvY2ssIChjaGFyICopIGRpbmQpOworCWJsa19jaGcgPSAwOworCXJlc3VsdCA9IGNoZWNrX3pvbmVfbnIyIChkaW5kICsgKGJsa25yIC8gMjU2KSAlIDI1NiwgJmJsa19jaGcpOworCWlmIChibGtfY2hnKQorCQl3cml0ZV9ibG9jayAoYmxvY2ssIChjaGFyICopIGRpbmQpOworCWJsb2NrID0gcmVzdWx0OworCXJlYWRfYmxvY2sgKGJsb2NrLCAoY2hhciAqKSBpbmQpOworCWJsa19jaGcgPSAwOworCXJlc3VsdCA9IGNoZWNrX3pvbmVfbnIyIChpbmQgKyBibGtuciAlIDI1NiwgJmJsa19jaGcpOworCWlmIChibGtfY2hnKQorCQl3cml0ZV9ibG9jayAoYmxvY2ssIChjaGFyICopIGluZCk7CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIHZvaWQKK3dyaXRlX3N1cGVyX2Jsb2NrKHZvaWQpIHsKKwkvKgorCSAqIFNldCB0aGUgc3RhdGUgb2YgdGhlIGZpbGVzeXN0ZW0gYmFzZWQgb24gd2hldGhlciBvciBub3QgdGhlcmUKKwkgKiBhcmUgdW5jb3JyZWN0ZWQgZXJyb3JzLiAgVGhlIGZpbGVzeXN0ZW0gdmFsaWQgZmxhZyBpcworCSAqIHVuY29uZGl0aW9uYWxseSBzZXQgaWYgd2UgZ2V0IHRoaXMgZmFyLgorCSAqLworCVN1cGVyLnNfc3RhdGUgfD0gTUlOSVhfVkFMSURfRlM7CisJaWYgKCBlcnJvcnNfdW5jb3JyZWN0ZWQgKQorCQlTdXBlci5zX3N0YXRlIHw9IE1JTklYX0VSUk9SX0ZTOworCWVsc2UKKwkJU3VwZXIuc19zdGF0ZSAmPSB+TUlOSVhfRVJST1JfRlM7CisJCisJaWYgKEJMT0NLX1NJWkUgIT0gbHNlZWsoSU4sIEJMT0NLX1NJWkUsIFNFRUtfU0VUKSkKKwkJZGllKF8oInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIikpOworCWlmIChCTE9DS19TSVpFICE9IHdyaXRlKElOLCBzdXBlcl9ibG9ja19idWZmZXIsIEJMT0NLX1NJWkUpKQorCQlkaWUoXygidW5hYmxlIHRvIHdyaXRlIHN1cGVyLWJsb2NrIikpOworCisJcmV0dXJuOworfQorCitzdGF0aWMgdm9pZAord3JpdGVfdGFibGVzKHZvaWQpIHsKKwl3cml0ZV9zdXBlcl9ibG9jaygpOworCisJaWYgKElNQVBTKkJMT0NLX1NJWkUgIT0gd3JpdGUoSU4saW5vZGVfbWFwLElNQVBTKkJMT0NLX1NJWkUpKQorCQlkaWUoXygiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIpKTsKKwlpZiAoWk1BUFMqQkxPQ0tfU0laRSAhPSB3cml0ZShJTix6b25lX21hcCxaTUFQUypCTE9DS19TSVpFKSkKKwkJZGllKF8oIlVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIpKTsKKwlpZiAoSU5PREVfQlVGRkVSX1NJWkUgIT0gd3JpdGUoSU4saW5vZGVfYnVmZmVyLElOT0RFX0JVRkZFUl9TSVpFKSkKKwkJZGllKF8oIlVuYWJsZSB0byB3cml0ZSBpbm9kZXMiKSk7Cit9CisKK3N0YXRpYyB2b2lkCitnZXRfZGlyc2l6ZSAodm9pZCkgeworCWludCBibG9jazsKKwljaGFyIGJsa1tCTE9DS19TSVpFXTsKKwlpbnQgc2l6ZTsKKworCWlmICh2ZXJzaW9uMikKKwkJYmxvY2sgPSBJbm9kZTJbUk9PVF9JTk9dLmlfem9uZVswXTsKKwllbHNlCisJCWJsb2NrID0gSW5vZGVbUk9PVF9JTk9dLmlfem9uZVswXTsKKwlyZWFkX2Jsb2NrIChibG9jaywgYmxrKTsKKwlmb3IgKHNpemUgPSAxNjsgc2l6ZSA8IEJMT0NLX1NJWkU7IHNpemUgPDw9IDEpIHsKKwkJaWYgKHN0cmNtcCAoYmxrICsgc2l6ZSArIDIsICIuLiIpID09IDApIHsKKwkJCWRpcnNpemUgPSBzaXplOworCQkJbmFtZWxlbiA9IHNpemUgLSAyOworCQkJcmV0dXJuOworCQl9CisJfQorCS8qIHVzZSBkZWZhdWx0cyAqLworfQorCitzdGF0aWMgdm9pZAorcmVhZF9zdXBlcmJsb2NrKHZvaWQpIHsKKwlpZiAoQkxPQ0tfU0laRSAhPSBsc2VlayhJTiwgQkxPQ0tfU0laRSwgU0VFS19TRVQpKQorCQlkaWUoXygic2VlayBmYWlsZWQiKSk7CisKKwlzdXBlcl9ibG9ja19idWZmZXIgPSBjYWxsb2MoMSwgQkxPQ0tfU0laRSk7CisJaWYgKCFzdXBlcl9ibG9ja19idWZmZXIpCisJCWRpZShfKCJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIikpOworCisJaWYgKEJMT0NLX1NJWkUgIT0gcmVhZChJTiwgc3VwZXJfYmxvY2tfYnVmZmVyLCBCTE9DS19TSVpFKSkKKwkJZGllKF8oInVuYWJsZSB0byByZWFkIHN1cGVyIGJsb2NrIikpOworCWlmIChNQUdJQyA9PSBNSU5JWF9TVVBFUl9NQUdJQykgeworCQluYW1lbGVuID0gMTQ7CisJCWRpcnNpemUgPSAxNjsKKwkJdmVyc2lvbjIgPSAwOworCX0gZWxzZSBpZiAoTUFHSUMgPT0gTUlOSVhfU1VQRVJfTUFHSUMyKSB7CisJCW5hbWVsZW4gPSAzMDsKKwkJZGlyc2l6ZSA9IDMyOworCQl2ZXJzaW9uMiA9IDA7CisJfSBlbHNlIGlmIChNQUdJQyA9PSBNSU5JWDJfU1VQRVJfTUFHSUMpIHsKKwkJbmFtZWxlbiA9IDE0OworCQlkaXJzaXplID0gMTY7CisJCXZlcnNpb24yID0gMTsKKwl9IGVsc2UgaWYgKE1BR0lDID09IE1JTklYMl9TVVBFUl9NQUdJQzIpIHsKKwkJbmFtZWxlbiA9IDMwOworCQlkaXJzaXplID0gMzI7CisJCXZlcnNpb24yID0gMTsKKwl9IGVsc2UKKwkJZGllKF8oImJhZCBtYWdpYyBudW1iZXIgaW4gc3VwZXItYmxvY2siKSk7CisJaWYgKFpPTkVTSVpFICE9IDAgfHwgQkxPQ0tfU0laRSAhPSAxMDI0KQorCQlkaWUoXygiT25seSAxayBibG9ja3Mvem9uZXMgc3VwcG9ydGVkIikpOworCWlmIChJTUFQUyAqIEJMT0NLX1NJWkUgKiA4IDwgSU5PREVTICsgMSkKKwkJZGllKF8oImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIikpOworCWlmIChaTUFQUyAqIEJMT0NLX1NJWkUgKiA4IDwgWk9ORVMgLSBGSVJTVFpPTkUgKyAxKQorCQlkaWUoXygiYmFkIHNfem1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siKSk7Cit9CisKK3N0YXRpYyB2b2lkCityZWFkX3RhYmxlcyh2b2lkKSB7CisJaW5vZGVfbWFwID0gbWFsbG9jKElNQVBTICogQkxPQ0tfU0laRSk7CisJaWYgKCFpbm9kZV9tYXApCisJCWRpZShfKCJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiKSk7CisJem9uZV9tYXAgPSBtYWxsb2MoWk1BUFMgKiBCTE9DS19TSVpFKTsKKwlpZiAoIWlub2RlX21hcCkKKwkJZGllKF8oIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgbWFwIikpOworCW1lbXNldChpbm9kZV9tYXAsMCxzaXplb2YoaW5vZGVfbWFwKSk7CisJbWVtc2V0KHpvbmVfbWFwLDAsc2l6ZW9mKHpvbmVfbWFwKSk7CisJaW5vZGVfYnVmZmVyID0gbWFsbG9jKElOT0RFX0JVRkZFUl9TSVpFKTsKKwlpZiAoIWlub2RlX2J1ZmZlcikKKwkJZGllKF8oIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIpKTsKKwlpbm9kZV9jb3VudCA9IG1hbGxvYyhJTk9ERVMgKyAxKTsKKwlpZiAoIWlub2RlX2NvdW50KQorCQlkaWUoXygiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgY291bnQiKSk7CisJem9uZV9jb3VudCA9IG1hbGxvYyhaT05FUyk7CisJaWYgKCF6b25lX2NvdW50KQorCQlkaWUoXygiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBjb3VudCIpKTsKKwlpZiAoSU1BUFMqQkxPQ0tfU0laRSAhPSByZWFkKElOLGlub2RlX21hcCxJTUFQUypCTE9DS19TSVpFKSkKKwkJZGllKF8oIlVuYWJsZSB0byByZWFkIGlub2RlIG1hcCIpKTsKKwlpZiAoWk1BUFMqQkxPQ0tfU0laRSAhPSByZWFkKElOLHpvbmVfbWFwLFpNQVBTKkJMT0NLX1NJWkUpKQorCQlkaWUoXygiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiKSk7CisJaWYgKElOT0RFX0JVRkZFUl9TSVpFICE9IHJlYWQoSU4saW5vZGVfYnVmZmVyLElOT0RFX0JVRkZFUl9TSVpFKSkKKwkJZGllKF8oIlVuYWJsZSB0byByZWFkIGlub2RlcyIpKTsKKwlpZiAoTk9STV9GSVJTVFpPTkUgIT0gRklSU1RaT05FKSB7CisJCXByaW50ZihfKCJXYXJuaW5nOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIpKTsKKwkJZXJyb3JzX3VuY29ycmVjdGVkID0gMTsKKwl9CisJZ2V0X2RpcnNpemUgKCk7CisJaWYgKHNob3cpIHsKKwkJcHJpbnRmKF8oIiVsZCBpbm9kZXNcbiIpLElOT0RFUyk7CisJCXByaW50ZihfKCIlbGQgYmxvY2tzXG4iKSxaT05FUyk7CisJCXByaW50ZihfKCJGaXJzdGRhdGF6b25lPSVsZCAoJWxkKVxuIiksRklSU1RaT05FLE5PUk1fRklSU1RaT05FKTsKKwkJcHJpbnRmKF8oIlpvbmVzaXplPSVkXG4iKSxCTE9DS19TSVpFPDxaT05FU0laRSk7CisJCXByaW50ZihfKCJNYXhzaXplPSVsZFxuIiksTUFYU0laRSk7CisJCXByaW50ZihfKCJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iKSwgU3VwZXIuc19zdGF0ZSk7CisJCXByaW50ZihfKCJuYW1lbGVuPSVkXG5cbiIpLG5hbWVsZW4pOworCX0KK30KKworc3RhdGljIHN0cnVjdCBtaW5peF9pbm9kZSAqCitnZXRfaW5vZGUodW5zaWduZWQgaW50IG5yKSB7CisJc3RydWN0IG1pbml4X2lub2RlICogaW5vZGU7CisKKwlpZiAoIW5yIHx8IG5yID4gSU5PREVTKQorCQlyZXR1cm4gTlVMTDsKKwl0b3RhbCsrOworCWlub2RlID0gSW5vZGUgKyBucjsKKwlpZiAoIWlub2RlX2NvdW50W25yXSkgeworCQlpZiAoIWlub2RlX2luX3VzZShucikpIHsKKwkJCWdldF9jdXJyZW50X25hbWUoKTsKKwkJCXByaW50ZihfKCJJbm9kZSAlZCBtYXJrZWQgdW51c2VkLCAiCisJCQkJICJidXQgdXNlZCBmb3IgZmlsZSAnJXMnXG4iKSwKKwkJCSAgICAgICBuciwgY3VycmVudF9uYW1lKTsKKwkJCWlmIChyZXBhaXIpIHsKKwkJCQlpZiAoYXNrKF8oIk1hcmsgaW4gdXNlIiksMSkpCisJCQkJCW1hcmtfaW5vZGUobnIpOworCQkJfSBlbHNlIHsKKwkJCSAgICAgICAgZXJyb3JzX3VuY29ycmVjdGVkID0gMTsKKwkJCX0KKwkJfQorCQlpZiAoU19JU0RJUihpbm9kZS0+aV9tb2RlKSkKKwkJCWRpcmVjdG9yeSsrOworCQllbHNlIGlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKQorCQkJcmVndWxhcisrOworCQllbHNlIGlmIChTX0lTQ0hSKGlub2RlLT5pX21vZGUpKQorCQkJY2hhcmRldisrOworCQllbHNlIGlmIChTX0lTQkxLKGlub2RlLT5pX21vZGUpKQorCQkJYmxvY2tkZXYrKzsKKwkJZWxzZSBpZiAoU19JU0xOSyhpbm9kZS0+aV9tb2RlKSkKKwkJCXN5bWxpbmtzKys7CisJCWVsc2UgaWYgKFNfSVNTT0NLKGlub2RlLT5pX21vZGUpKQorCQkJOworCQllbHNlIGlmIChTX0lTRklGTyhpbm9kZS0+aV9tb2RlKSkKKwkJCTsKKwkJZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBnZXRfY3VycmVudF9uYW1lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoXygiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iKSwKKwkJCSAgICAgICBjdXJyZW50X25hbWUsIGlub2RlLT5pX21vZGUpOworICAgICAgICAgICAgICAgIH0KKworCX0gZWxzZQorCQlsaW5rcysrOworCWlmICghKytpbm9kZV9jb3VudFtucl0pIHsKKwkJcHJpbnRmKF8oIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iKSk7CisJCWlub2RlX2NvdW50W25yXS0tOworCQllcnJvcnNfdW5jb3JyZWN0ZWQgPSAxOworCX0KKwlyZXR1cm4gaW5vZGU7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbWluaXgyX2lub2RlICoKK2dldF9pbm9kZTIgKHVuc2lnbmVkIGludCBucikgeworCXN0cnVjdCBtaW5peDJfaW5vZGUgKmlub2RlOworCisJaWYgKCFuciB8fCBuciA+IElOT0RFUykKKwkJcmV0dXJuIE5VTEw7CisJdG90YWwrKzsKKwlpbm9kZSA9IElub2RlMiArIG5yOworCWlmICghaW5vZGVfY291bnRbbnJdKSB7CisJCWlmICghaW5vZGVfaW5fdXNlIChucikpIHsKKwkJCWdldF9jdXJyZW50X25hbWUoKTsKKwkJCXByaW50ZiAoXygiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgIgorCQkJCSAgImJ1dCB1c2VkIGZvciBmaWxlICclcydcbiIpLAorCQkJCW5yLCBjdXJyZW50X25hbWUpOworCQkJaWYgKHJlcGFpcikgeworCQkJCWlmIChhc2sgKF8oIk1hcmsgaW4gdXNlIiksIDEpKQorCQkJCQltYXJrX2lub2RlIChucik7CisJCQkJZWxzZQorCQkJCQllcnJvcnNfdW5jb3JyZWN0ZWQgPSAxOworCQkJfQorCQl9CisJCWlmIChTX0lTRElSIChpbm9kZS0+aV9tb2RlKSkKKwkJCWRpcmVjdG9yeSsrOworCQllbHNlIGlmIChTX0lTUkVHIChpbm9kZS0+aV9tb2RlKSkKKwkJCXJlZ3VsYXIrKzsKKwkJZWxzZSBpZiAoU19JU0NIUiAoaW5vZGUtPmlfbW9kZSkpCisJCQljaGFyZGV2Kys7CisJCWVsc2UgaWYgKFNfSVNCTEsgKGlub2RlLT5pX21vZGUpKQorCQkJYmxvY2tkZXYrKzsKKwkJZWxzZSBpZiAoU19JU0xOSyAoaW5vZGUtPmlfbW9kZSkpCisJCQlzeW1saW5rcysrOworCQllbHNlIGlmIChTX0lTU09DSyAoaW5vZGUtPmlfbW9kZSkpOworCQllbHNlIGlmIChTX0lTRklGTyAoaW5vZGUtPmlfbW9kZSkpOworCQllbHNlIHsKKwkJCWdldF9jdXJyZW50X25hbWUgKCk7CisJCQlwcmludGYgKF8oIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIiksCisJCQkJY3VycmVudF9uYW1lLCBpbm9kZS0+aV9tb2RlKTsKKwkJfQorCX0gZWxzZQorCQlsaW5rcysrOworCWlmICghKytpbm9kZV9jb3VudFtucl0pIHsKKwkJcHJpbnRmIChfKCJXYXJuaW5nOiBpbm9kZSBjb3VudCB0b28gYmlnLlxuIikpOworCQlpbm9kZV9jb3VudFtucl0tLTsKKwkJZXJyb3JzX3VuY29ycmVjdGVkID0gMTsKKwl9CisJcmV0dXJuIGlub2RlOworfQorCitzdGF0aWMgdm9pZAorY2hlY2tfcm9vdCh2b2lkKSB7CisJc3RydWN0IG1pbml4X2lub2RlICogaW5vZGUgPSBJbm9kZSArIFJPT1RfSU5POworCisJaWYgKCFpbm9kZSB8fCAhU19JU0RJUihpbm9kZS0+aV9tb2RlKSkKKwkJZGllKF8oInJvb3QgaW5vZGUgaXNuJ3QgYSBkaXJlY3RvcnkiKSk7Cit9CisKK3N0YXRpYyB2b2lkCitjaGVja19yb290MiAodm9pZCkgeworCXN0cnVjdCBtaW5peDJfaW5vZGUgKmlub2RlID0gSW5vZGUyICsgUk9PVF9JTk87CisKKwlpZiAoIWlub2RlIHx8ICFTX0lTRElSIChpbm9kZS0+aV9tb2RlKSkKKwkJZGllKF8oInJvb3QgaW5vZGUgaXNuJ3QgYSBkaXJlY3RvcnkiKSk7Cit9CisKK3N0YXRpYyBpbnQKK2FkZF96b25lKHVuc2lnbmVkIHNob3J0ICogem5yLCBpbnQgKiBjb3JyZWN0ZWQpIHsKKwlpbnQgcmVzdWx0OworCWludCBibG9jazsKKworCXJlc3VsdCA9IDA7CisJYmxvY2sgPSBjaGVja196b25lX25yKHpuciwgY29ycmVjdGVkKTsKKwlpZiAoIWJsb2NrKQorCQlyZXR1cm4gMDsKKwlpZiAoem9uZV9jb3VudFtibG9ja10pIHsKKwkJZ2V0X2N1cnJlbnRfbmFtZSgpOworCQlwcmludGYoXygiQmxvY2sgaGFzIGJlZW4gdXNlZCBiZWZvcmUuIE5vdyBpbiBmaWxlIGAlcycuIiksCisJCSAgICAgICBjdXJyZW50X25hbWUpOworCQlpZiAoYXNrKF8oIkNsZWFyIiksMSkpIHsKKwkJCSp6bnIgPSAwOworCQkJYmxvY2sgPSAwOworCQkJKmNvcnJlY3RlZCA9IDE7CisJCX0KKwl9CisJaWYgKCFibG9jaykKKwkJcmV0dXJuIDA7CisJaWYgKCF6b25lX2luX3VzZShibG9jaykpIHsKKwkJZ2V0X2N1cnJlbnRfbmFtZSgpOworCQlwcmludGYoXygiQmxvY2sgJWQgaW4gZmlsZSBgJXMnIGlzIG1hcmtlZCBub3QgaW4gdXNlLiIpLAorCQkgICAgICAgYmxvY2ssIGN1cnJlbnRfbmFtZSk7CisJCWlmIChhc2soXygiQ29ycmVjdCIpLDEpKQorCQkJbWFya196b25lKGJsb2NrKTsKKwl9CisJaWYgKCErK3pvbmVfY291bnRbYmxvY2tdKQorCQl6b25lX2NvdW50W2Jsb2NrXS0tOworCXJldHVybiBibG9jazsKK30KKworc3RhdGljIGludAorYWRkX3pvbmUyICh1bnNpZ25lZCBpbnQgKnpuciwgaW50ICpjb3JyZWN0ZWQpIHsKKwlpbnQgcmVzdWx0OworCWludCBibG9jazsKKworCXJlc3VsdCA9IDA7CisJYmxvY2sgPSBjaGVja196b25lX25yMiAoem5yLCBjb3JyZWN0ZWQpOworCWlmICghYmxvY2spCisJCXJldHVybiAwOworCWlmICh6b25lX2NvdW50W2Jsb2NrXSkgeworCQlnZXRfY3VycmVudF9uYW1lKCk7CisJCXByaW50ZiAoXygiQmxvY2sgaGFzIGJlZW4gdXNlZCBiZWZvcmUuIE5vdyBpbiBmaWxlIGAlcycuIiksCisJCQljdXJyZW50X25hbWUpOworCQlpZiAoYXNrIChfKCJDbGVhciIpLCAxKSkgeworCQkJKnpuciA9IDA7CisJCQlibG9jayA9IDA7CisJCQkqY29ycmVjdGVkID0gMTsKKwkJfQorCX0KKwlpZiAoIWJsb2NrKQorCQlyZXR1cm4gMDsKKwlpZiAoIXpvbmVfaW5fdXNlIChibG9jaykpIHsKKwkJZ2V0X2N1cnJlbnRfbmFtZSgpOworCQlwcmludGYgKF8oIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iKSwKKwkJCWJsb2NrLCBjdXJyZW50X25hbWUpOworCQlpZiAoYXNrIChfKCJDb3JyZWN0IiksIDEpKQorCQkJbWFya196b25lIChibG9jayk7CisJfQorCWlmICghKyt6b25lX2NvdW50W2Jsb2NrXSkKKwkJem9uZV9jb3VudFtibG9ja10tLTsKKwlyZXR1cm4gYmxvY2s7Cit9CisKK3N0YXRpYyB2b2lkCithZGRfem9uZV9pbmQodW5zaWduZWQgc2hvcnQgKiB6bnIsIGludCAqIGNvcnJlY3RlZCkgeworCXN0YXRpYyBjaGFyIGJsa1tCTE9DS19TSVpFXTsKKwlpbnQgaSwgY2hnX2Jsaz0wOworCWludCBibG9jazsKKworCWJsb2NrID0gYWRkX3pvbmUoem5yLCBjb3JyZWN0ZWQpOworCWlmICghYmxvY2spCisJCXJldHVybjsKKwlyZWFkX2Jsb2NrKGJsb2NrLCBibGspOworCWZvciAoaT0wIDsgaSA8IChCTE9DS19TSVpFPj4xKSA7IGkrKykKKwkJYWRkX3pvbmUoaSArICh1bnNpZ25lZCBzaG9ydCAqKSBibGssICZjaGdfYmxrKTsKKwlpZiAoY2hnX2JsaykKKwkJd3JpdGVfYmxvY2soYmxvY2ssIGJsayk7Cit9CisKK3N0YXRpYyB2b2lkCithZGRfem9uZV9pbmQyICh1bnNpZ25lZCBpbnQgKnpuciwgaW50ICpjb3JyZWN0ZWQpIHsKKwlzdGF0aWMgY2hhciBibGtbQkxPQ0tfU0laRV07CisJaW50IGksIGNoZ19ibGsgPSAwOworCWludCBibG9jazsKKworCWJsb2NrID0gYWRkX3pvbmUyICh6bnIsIGNvcnJlY3RlZCk7CisJaWYgKCFibG9jaykKKwkJcmV0dXJuOworCXJlYWRfYmxvY2sgKGJsb2NrLCBibGspOworCWZvciAoaSA9IDA7IGkgPCBCTE9DS19TSVpFID4+IDI7IGkrKykKKwkJYWRkX3pvbmUyIChpICsgKHVuc2lnbmVkIGludCAqKSBibGssICZjaGdfYmxrKTsKKwlpZiAoY2hnX2JsaykKKwkJd3JpdGVfYmxvY2sgKGJsb2NrLCBibGspOworfQorCitzdGF0aWMgdm9pZAorYWRkX3pvbmVfZGluZCh1bnNpZ25lZCBzaG9ydCAqIHpuciwgaW50ICogY29ycmVjdGVkKSB7CisJc3RhdGljIGNoYXIgYmxrW0JMT0NLX1NJWkVdOworCWludCBpLCBibGtfY2hnPTA7CisJaW50IGJsb2NrOworCisJYmxvY2sgPSBhZGRfem9uZSh6bnIsIGNvcnJlY3RlZCk7CisJaWYgKCFibG9jaykKKwkJcmV0dXJuOworCXJlYWRfYmxvY2soYmxvY2ssIGJsayk7CisJZm9yIChpPTAgOyBpIDwgKEJMT0NLX1NJWkU+PjEpIDsgaSsrKQorCQlhZGRfem9uZV9pbmQoaSArICh1bnNpZ25lZCBzaG9ydCAqKSBibGssICZibGtfY2hnKTsKKwlpZiAoYmxrX2NoZykKKwkJd3JpdGVfYmxvY2soYmxvY2ssIGJsayk7Cit9CisKK3N0YXRpYyB2b2lkCithZGRfem9uZV9kaW5kMiAodW5zaWduZWQgaW50ICp6bnIsIGludCAqY29ycmVjdGVkKSB7CisJc3RhdGljIGNoYXIgYmxrW0JMT0NLX1NJWkVdOworCWludCBpLCBibGtfY2hnID0gMDsKKwlpbnQgYmxvY2s7CisKKwlibG9jayA9IGFkZF96b25lMiAoem5yLCBjb3JyZWN0ZWQpOworCWlmICghYmxvY2spCisJCXJldHVybjsKKwlyZWFkX2Jsb2NrIChibG9jaywgYmxrKTsKKwlmb3IgKGkgPSAwOyBpIDwgQkxPQ0tfU0laRSA+PiAyOyBpKyspCisJCWFkZF96b25lX2luZDIgKGkgKyAodW5zaWduZWQgaW50ICopIGJsaywgJmJsa19jaGcpOworCWlmIChibGtfY2hnKQorCQl3cml0ZV9ibG9jayAoYmxvY2ssIGJsayk7Cit9CisKK3N0YXRpYyB2b2lkCithZGRfem9uZV90aW5kMiAodW5zaWduZWQgaW50ICp6bnIsIGludCAqY29ycmVjdGVkKSB7CisJc3RhdGljIGNoYXIgYmxrW0JMT0NLX1NJWkVdOworCWludCBpLCBibGtfY2hnID0gMDsKKwlpbnQgYmxvY2s7CisKKwlibG9jayA9IGFkZF96b25lMiAoem5yLCBjb3JyZWN0ZWQpOworCWlmICghYmxvY2spCisJCXJldHVybjsKKwlyZWFkX2Jsb2NrIChibG9jaywgYmxrKTsKKwlmb3IgKGkgPSAwOyBpIDwgQkxPQ0tfU0laRSA+PiAyOyBpKyspCisJCWFkZF96b25lX2RpbmQyIChpICsgKHVuc2lnbmVkIGludCAqKSBibGssICZibGtfY2hnKTsKKwlpZiAoYmxrX2NoZykKKwkJd3JpdGVfYmxvY2sgKGJsb2NrLCBibGspOworfQorCitzdGF0aWMgdm9pZAorY2hlY2tfem9uZXModW5zaWduZWQgaW50IGkpIHsKKwlzdHJ1Y3QgbWluaXhfaW5vZGUgKiBpbm9kZTsKKworCWlmICghaSB8fCBpID4gSU5PREVTKQorCQlyZXR1cm47CisJaWYgKGlub2RlX2NvdW50W2ldID4gMSkJLyogaGF2ZSB3ZSBjb3VudGVkIHRoaXMgZmlsZSBhbHJlYWR5PyAqLworCQlyZXR1cm47CisJaW5vZGUgPSBJbm9kZSArIGk7CisJaWYgKCFTX0lTRElSKGlub2RlLT5pX21vZGUpICYmICFTX0lTUkVHKGlub2RlLT5pX21vZGUpICYmCisJICAgICFTX0lTTE5LKGlub2RlLT5pX21vZGUpKQorCQlyZXR1cm47CisJZm9yIChpPTAgOyBpPDcgOyBpKyspCisJCWFkZF96b25lKGkgKyBpbm9kZS0+aV96b25lLCAmY2hhbmdlZCk7CisJYWRkX3pvbmVfaW5kKDcgKyBpbm9kZS0+aV96b25lLCAmY2hhbmdlZCk7CisJYWRkX3pvbmVfZGluZCg4ICsgaW5vZGUtPmlfem9uZSwgJmNoYW5nZWQpOworfQorCitzdGF0aWMgdm9pZAorY2hlY2tfem9uZXMyICh1bnNpZ25lZCBpbnQgaSkgeworCXN0cnVjdCBtaW5peDJfaW5vZGUgKmlub2RlOworCisJaWYgKCFpIHx8IGkgPiBJTk9ERVMpCisJCXJldHVybjsKKwlpZiAoaW5vZGVfY291bnRbaV0gPiAxKQkvKiBoYXZlIHdlIGNvdW50ZWQgdGhpcyBmaWxlIGFscmVhZHk/ICovCisJCXJldHVybjsKKwlpbm9kZSA9IElub2RlMiArIGk7CisJaWYgKCFTX0lTRElSIChpbm9kZS0+aV9tb2RlKSAmJiAhU19JU1JFRyAoaW5vZGUtPmlfbW9kZSkKKwkgICAgJiYgIVNfSVNMTksgKGlub2RlLT5pX21vZGUpKQorCQlyZXR1cm47CisJZm9yIChpID0gMDsgaSA8IDc7IGkrKykKKwkJYWRkX3pvbmUyIChpICsgaW5vZGUtPmlfem9uZSwgJmNoYW5nZWQpOworCWFkZF96b25lX2luZDIgKDcgKyBpbm9kZS0+aV96b25lLCAmY2hhbmdlZCk7CisJYWRkX3pvbmVfZGluZDIgKDggKyBpbm9kZS0+aV96b25lLCAmY2hhbmdlZCk7CisJYWRkX3pvbmVfdGluZDIgKDkgKyBpbm9kZS0+aV96b25lLCAmY2hhbmdlZCk7Cit9CisKK3N0YXRpYyB2b2lkCitjaGVja19maWxlKHN0cnVjdCBtaW5peF9pbm9kZSAqIGRpciwgdW5zaWduZWQgaW50IG9mZnNldCkgeworCXN0YXRpYyBjaGFyIGJsa1tCTE9DS19TSVpFXTsKKwlzdHJ1Y3QgbWluaXhfaW5vZGUgKiBpbm9kZTsKKwlpbnQgaW5vOworCWNoYXIgKiBuYW1lOworCWludCBibG9jazsKKworCWJsb2NrID0gbWFwX2Jsb2NrKGRpcixvZmZzZXQvQkxPQ0tfU0laRSk7CisJcmVhZF9ibG9jayhibG9jaywgYmxrKTsKKwluYW1lID0gYmxrICsgKG9mZnNldCAlIEJMT0NLX1NJWkUpICsgMjsKKwlpbm8gPSAqICh1bnNpZ25lZCBzaG9ydCAqKSAobmFtZS0yKTsKKwlpZiAoaW5vID4gSU5PREVTKSB7CisJCWdldF9jdXJyZW50X25hbWUoKTsKKwkJcHJpbnRmKF8oIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgIgorCQkJICJmb3IgZmlsZSAnJS4qcycuIiksCisJCSAgICAgICBjdXJyZW50X25hbWUsIG5hbWVsZW4sIG5hbWUpOworCQlpZiAoYXNrKF8oIiBSZW1vdmUiKSwxKSkgeworCQkJKih1bnNpZ25lZCBzaG9ydCAqKShuYW1lLTIpID0gMDsKKwkJCXdyaXRlX2Jsb2NrKGJsb2NrLCBibGspOworCQl9CisJCWlubyA9IDA7CisJfQkKKwlpZiAobmFtZV9kZXB0aCA8IE1BWF9ERVBUSCkKKwkJc3RybmNweSAobmFtZV9saXN0W25hbWVfZGVwdGhdLCBuYW1lLCBuYW1lbGVuKTsKKwluYW1lX2RlcHRoKys7CisJaW5vZGUgPSBnZXRfaW5vZGUoaW5vKTsKKwluYW1lX2RlcHRoLS07CisJaWYgKCFvZmZzZXQpIHsKKwkJaWYgKCFpbm9kZSB8fCBzdHJjbXAoIi4iLG5hbWUpKSB7CisJCQlnZXRfY3VycmVudF9uYW1lKCk7CisJCQlwcmludGYoXygiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIiksCisJCQkgICAgICAgY3VycmVudF9uYW1lKTsKKwkJCWVycm9yc191bmNvcnJlY3RlZCA9IDE7CisJCX0gZWxzZSByZXR1cm47CisJfQorCWlmIChvZmZzZXQgPT0gZGlyc2l6ZSkgeworCQlpZiAoIWlub2RlIHx8IHN0cmNtcCgiLi4iLG5hbWUpKSB7CisJCQlnZXRfY3VycmVudF9uYW1lKCk7CisJCQlwcmludGYoXygiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iKSwKKwkJCSAgICAgICBjdXJyZW50X25hbWUpOworCQkJZXJyb3JzX3VuY29ycmVjdGVkID0gMTsKKwkJfSBlbHNlIHJldHVybjsKKwl9CisJaWYgKCFpbm9kZSkKKwkJcmV0dXJuOworCWlmIChuYW1lX2RlcHRoIDwgTUFYX0RFUFRIKQorCQlzdHJuY3B5KG5hbWVfbGlzdFtuYW1lX2RlcHRoXSwgbmFtZSwgbmFtZWxlbik7CisJbmFtZV9kZXB0aCsrOwkKKwlpZiAobGlzdCkgeworCQlpZiAodmVyYm9zZSkKKwkJCXByaW50ZigiJTZkICUwN28gJTNkICIsIGlubywKKwkJCSAgICAgICBpbm9kZS0+aV9tb2RlLCBpbm9kZS0+aV9ubGlua3MpOworCQlnZXRfY3VycmVudF9uYW1lKCk7CisJCXByaW50ZigiJXMiLCBjdXJyZW50X25hbWUpOworCQlpZiAoU19JU0RJUihpbm9kZS0+aV9tb2RlKSkKKwkJCXByaW50ZigiOlxuIik7CisJCWVsc2UKKwkJCXByaW50ZigiXG4iKTsKKwl9CisJY2hlY2tfem9uZXMoaW5vKTsKKwlpZiAoaW5vZGUgJiYgU19JU0RJUihpbm9kZS0+aV9tb2RlKSkKKwkJcmVjdXJzaXZlX2NoZWNrKGlubyk7CisJbmFtZV9kZXB0aC0tOworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQKK2NoZWNrX2ZpbGUyIChzdHJ1Y3QgbWluaXgyX2lub2RlICpkaXIsIHVuc2lnbmVkIGludCBvZmZzZXQpIHsKKwlzdGF0aWMgY2hhciBibGtbQkxPQ0tfU0laRV07CisJc3RydWN0IG1pbml4Ml9pbm9kZSAqaW5vZGU7CisJaW50IGlubzsKKwljaGFyICpuYW1lOworCWludCBibG9jazsKKworCWJsb2NrID0gbWFwX2Jsb2NrMiAoZGlyLCBvZmZzZXQgLyBCTE9DS19TSVpFKTsKKwlyZWFkX2Jsb2NrIChibG9jaywgYmxrKTsKKwluYW1lID0gYmxrICsgKG9mZnNldCAlIEJMT0NLX1NJWkUpICsgMjsKKwlpbm8gPSAqKHVuc2lnbmVkIHNob3J0ICopIChuYW1lIC0gMik7CisJaWYgKGlubyA+IElOT0RFUykgeworCQlnZXRfY3VycmVudF9uYW1lKCk7CisJCXByaW50ZihfKCJUaGUgZGlyZWN0b3J5ICclcycgY29udGFpbnMgYSBiYWQgaW5vZGUgbnVtYmVyICIKKwkJCSAiZm9yIGZpbGUgJyUuKnMnLiIpLAorCQkJICBjdXJyZW50X25hbWUsIG5hbWVsZW4sIG5hbWUpOworCQlpZiAoYXNrIChfKCIgUmVtb3ZlIiksIDEpKSB7CisJCQkqKHVuc2lnbmVkIHNob3J0ICopIChuYW1lIC0gMikgPSAwOworCQkJd3JpdGVfYmxvY2sgKGJsb2NrLCBibGspOworCQl9CisJCWlubyA9IDA7CisJfQorCWlmIChuYW1lX2RlcHRoIDwgTUFYX0RFUFRIKQorCQlzdHJuY3B5IChuYW1lX2xpc3RbbmFtZV9kZXB0aF0sIG5hbWUsIG5hbWVsZW4pOworCW5hbWVfZGVwdGgrKzsKKwlpbm9kZSA9IGdldF9pbm9kZTIgKGlubyk7CisJbmFtZV9kZXB0aC0tOworCWlmICghb2Zmc2V0KSB7CisJCWlmICghaW5vZGUgfHwgc3RyY21wICgiLiIsIG5hbWUpKSB7CisJCQlnZXRfY3VycmVudF9uYW1lICgpOworCQkJcHJpbnRmIChfKCIlczogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iKSwKKwkJCQljdXJyZW50X25hbWUpOworCQkJZXJyb3JzX3VuY29ycmVjdGVkID0gMTsKKwkJfSBlbHNlCisJCQlyZXR1cm47CisJfQorCWlmIChvZmZzZXQgPT0gZGlyc2l6ZSkgeworCQlpZiAoIWlub2RlIHx8IHN0cmNtcCAoIi4uIiwgbmFtZSkpIHsKKwkJCWdldF9jdXJyZW50X25hbWUgKCk7CisJCQlwcmludGYgKF8oIiVzOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIiksCisJCQkJY3VycmVudF9uYW1lKTsKKwkJCWVycm9yc191bmNvcnJlY3RlZCA9IDE7CisJCX0gZWxzZQorCQkJcmV0dXJuOworCX0KKwlpZiAoIWlub2RlKQorCQlyZXR1cm47CisJbmFtZV9kZXB0aCsrOworCWlmIChsaXN0KSB7CisJCWlmICh2ZXJib3NlKQorCQkJcHJpbnRmICgiJTZkICUwN28gJTNkICIsIGlubywgaW5vZGUtPmlfbW9kZSwKKwkJCQlpbm9kZS0+aV9ubGlua3MpOworCQlnZXRfY3VycmVudF9uYW1lICgpOworCQlwcmludGYoIiVzIiwgY3VycmVudF9uYW1lKTsKKwkJaWYgKFNfSVNESVIgKGlub2RlLT5pX21vZGUpKQorCQkJcHJpbnRmICgiOlxuIik7CisJCWVsc2UKKwkJCXByaW50ZiAoIlxuIik7CisJfQorCWNoZWNrX3pvbmVzMiAoaW5vKTsKKwlpZiAoaW5vZGUgJiYgU19JU0RJUiAoaW5vZGUtPmlfbW9kZSkpCisJCXJlY3Vyc2l2ZV9jaGVjazIgKGlubyk7CisJbmFtZV9kZXB0aC0tOworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQKK3JlY3Vyc2l2ZV9jaGVjayh1bnNpZ25lZCBpbnQgaW5vKSB7CisJc3RydWN0IG1pbml4X2lub2RlICogZGlyOworCXVuc2lnbmVkIGludCBvZmZzZXQ7CisKKwlkaXIgPSBJbm9kZSArIGlubzsKKwlpZiAoIVNfSVNESVIoZGlyLT5pX21vZGUpKQorCQlkaWUoXygiaW50ZXJuYWwgZXJyb3IiKSk7CisJaWYgKGRpci0+aV9zaXplIDwgMiAqIGRpcnNpemUpIHsKKwkJZ2V0X2N1cnJlbnRfbmFtZSgpOworCQlwcmludGYoXygiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIpLAorCQkgICAgICAgY3VycmVudF9uYW1lKTsKKwkJZXJyb3JzX3VuY29ycmVjdGVkID0gMTsKKwl9CisJZm9yIChvZmZzZXQgPSAwIDsgb2Zmc2V0IDwgZGlyLT5pX3NpemUgOyBvZmZzZXQgKz0gZGlyc2l6ZSkKKwkJY2hlY2tfZmlsZShkaXIsb2Zmc2V0KTsKK30KKworc3RhdGljIHZvaWQKK3JlY3Vyc2l2ZV9jaGVjazIgKHVuc2lnbmVkIGludCBpbm8pIHsKKwlzdHJ1Y3QgbWluaXgyX2lub2RlICpkaXI7CisJdW5zaWduZWQgaW50IG9mZnNldDsKKworCWRpciA9IElub2RlMiArIGlubzsKKwlpZiAoIVNfSVNESVIgKGRpci0+aV9tb2RlKSkKKwkJZGllKF8oImludGVybmFsIGVycm9yIikpOworCWlmIChkaXItPmlfc2l6ZSA8IDIgKiBkaXJzaXplKSB7CisJCWdldF9jdXJyZW50X25hbWUgKCk7CisJCXByaW50ZiAoXygiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIpLAorCQkJY3VycmVudF9uYW1lKTsKKwkJZXJyb3JzX3VuY29ycmVjdGVkID0gMTsKKwl9CisJZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgPCBkaXItPmlfc2l6ZTsgb2Zmc2V0ICs9IGRpcnNpemUpCisJCWNoZWNrX2ZpbGUyIChkaXIsIG9mZnNldCk7Cit9CisKK3N0YXRpYyBpbnQKK2JhZF96b25lKGludCBpKSB7CisJY2hhciBidWZmZXJbMTAyNF07CisKKwlpZiAoQkxPQ0tfU0laRSppICE9IGxzZWVrKElOLCBCTE9DS19TSVpFKmksIFNFRUtfU0VUKSkKKwkJZGllKF8oInNlZWsgZmFpbGVkIGluIGJhZF96b25lIikpOworCXJldHVybiAoQkxPQ0tfU0laRSAhPSByZWFkKElOLCBidWZmZXIsIEJMT0NLX1NJWkUpKTsKK30KKworc3RhdGljIHZvaWQKK2NoZWNrX2NvdW50cyh2b2lkKSB7CisJaW50IGk7CisKKwlmb3IgKGk9MSA7IGkgPD0gSU5PREVTIDsgaSsrKSB7CisJCWlmICghaW5vZGVfaW5fdXNlKGkpICYmIElub2RlW2ldLmlfbW9kZSAmJiB3YXJuX21vZGUpIHsKKwkJCXByaW50ZihfKCJJbm9kZSAlZCBtb2RlIG5vdCBjbGVhcmVkLiIpLGkpOworCQkJaWYgKGFzayhfKCJDbGVhciIpLDEpKSB7CisJCQkJSW5vZGVbaV0uaV9tb2RlID0gMDsKKwkJCQljaGFuZ2VkID0gMTsKKwkJCX0KKwkJfQorCQlpZiAoIWlub2RlX2NvdW50W2ldKSB7CisJCQlpZiAoIWlub2RlX2luX3VzZShpKSkKKwkJCQljb250aW51ZTsKKwkJCXByaW50ZihfKCJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iKSxpKTsKKwkJCWlmIChhc2soXygiQ2xlYXIiKSwxKSkKKwkJCQl1bm1hcmtfaW5vZGUoaSk7CisJCQljb250aW51ZTsKKwkJfQorCQlpZiAoIWlub2RlX2luX3VzZShpKSkgeworCQkJcHJpbnRmKF8oIklub2RlICVkIHVzZWQsIG1hcmtlZCB1bnVzZWQgaW4gdGhlIGJpdG1hcC4iKSwKKwkJCQlpKTsKKwkJCWlmIChhc2soXygiU2V0IiksMSkpCisJCQkJbWFya19pbm9kZShpKTsKKwkJfQorCQlpZiAoSW5vZGVbaV0uaV9ubGlua3MgIT0gaW5vZGVfY291bnRbaV0pIHsKKwkJCXByaW50ZihfKCJJbm9kZSAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgY291bnRlZD0lZC4iKSwKKwkJCQlpLElub2RlW2ldLmlfbW9kZSxJbm9kZVtpXS5pX25saW5rcyxpbm9kZV9jb3VudFtpXSk7CisJCQlpZiAoYXNrKF8oIlNldCBpX25saW5rcyB0byBjb3VudCIpLDEpKSB7CisJCQkJSW5vZGVbaV0uaV9ubGlua3M9aW5vZGVfY291bnRbaV07CisJCQkJY2hhbmdlZD0xOworCQkJfQorCQl9CisJfQorCWZvciAoaT1GSVJTVFpPTkUgOyBpIDwgWk9ORVMgOyBpKyspIHsKKwkJaWYgKHpvbmVfaW5fdXNlKGkpID09IHpvbmVfY291bnRbaV0pCisJCQljb250aW51ZTsKKwkJaWYgKCF6b25lX2NvdW50W2ldKSB7CisJCQlpZiAoYmFkX3pvbmUoaSkpCisJCQkJY29udGludWU7CisJCQlwcmludGYoXygiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIpLGkpOworCQkJaWYgKGFzayhfKCJVbm1hcmsiKSwxKSkKKwkJCQl1bm1hcmtfem9uZShpKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICh6b25lX2luX3VzZShpKSkKKwkJCXByaW50ZihfKCJab25lICVkOiBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIpLAorCQkJICAgICAgIGksIHpvbmVfY291bnRbaV0pOworCQllbHNlCisJCQlwcmludGYoXygiWm9uZSAlZDogbm90IGluIHVzZSwgY291bnRlZD0lZFxuIiksCisJCQkgICAgICAgaSwgem9uZV9jb3VudFtpXSk7CisJfQorfQorCitzdGF0aWMgdm9pZAorY2hlY2tfY291bnRzMiAodm9pZCkgeworCWludCBpOworCisJZm9yIChpID0gMTsgaSA8PSBJTk9ERVM7IGkrKykgeworCQlpZiAoIWlub2RlX2luX3VzZSAoaSkgJiYgSW5vZGUyW2ldLmlfbW9kZSAmJiB3YXJuX21vZGUpIHsKKwkJCXByaW50ZiAoXygiSW5vZGUgJWQgbW9kZSBub3QgY2xlYXJlZC4iKSwgaSk7CisJCQlpZiAoYXNrIChfKCJDbGVhciIpLCAxKSkgeworCQkJCUlub2RlMltpXS5pX21vZGUgPSAwOworCQkJCWNoYW5nZWQgPSAxOworCQkJfQorCQl9CisJCWlmICghaW5vZGVfY291bnRbaV0pIHsKKwkJCWlmICghaW5vZGVfaW5fdXNlIChpKSkKKwkJCQljb250aW51ZTsKKwkJCXByaW50ZiAoXygiSW5vZGUgJWQgbm90IHVzZWQsIG1hcmtlZCB1c2VkIGluIHRoZSBiaXRtYXAuIiksIGkpOworCQkJaWYgKGFzayAoXygiQ2xlYXIiKSwgMSkpCisJCQkJdW5tYXJrX2lub2RlIChpKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICghaW5vZGVfaW5fdXNlIChpKSkgeworCQkJcHJpbnRmIChfKCJJbm9kZSAlZCB1c2VkLCBtYXJrZWQgdW51c2VkIGluIHRoZSBiaXRtYXAuIiksIGkpOworCQkJaWYgKGFzayAoXygiU2V0IiksIDEpKQorCQkJCW1hcmtfaW5vZGUgKGkpOworCQl9CisJCWlmIChJbm9kZTJbaV0uaV9ubGlua3MgIT0gaW5vZGVfY291bnRbaV0pIHsKKwkJCXByaW50ZiAoXygiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIiksCisJCQkJaSwgSW5vZGUyW2ldLmlfbW9kZSwgSW5vZGUyW2ldLmlfbmxpbmtzLCBpbm9kZV9jb3VudFtpXSk7CisJCQlpZiAoYXNrIChfKCJTZXQgaV9ubGlua3MgdG8gY291bnQiKSwgMSkpIHsKKwkJCQlJbm9kZTJbaV0uaV9ubGlua3MgPSBpbm9kZV9jb3VudFtpXTsKKwkJCQljaGFuZ2VkID0gMTsKKwkJCX0KKwkJfQorCX0KKwlmb3IgKGkgPSBGSVJTVFpPTkU7IGkgPCBaT05FUzsgaSsrKSB7CisJCWlmICh6b25lX2luX3VzZSAoaSkgPT0gem9uZV9jb3VudFtpXSkKKwkJCWNvbnRpbnVlOworCQlpZiAoIXpvbmVfY291bnRbaV0pIHsKKwkJCWlmIChiYWRfem9uZSAoaSkpCisJCQkJY29udGludWU7CisJCQlwcmludGYgKF8oIlpvbmUgJWQ6IG1hcmtlZCBpbiB1c2UsIG5vIGZpbGUgdXNlcyBpdC4iKSwKKwkJCQlpKTsKKwkJCWlmIChhc2sgKF8oIlVubWFyayIpLCAxKSkKKwkJCQl1bm1hcmtfem9uZSAoaSk7CisJCQljb250aW51ZTsKKwkJfQorCQlpZiAoem9uZV9pbl91c2UgKGkpKQorCQkJcHJpbnRmIChfKCJab25lICVkOiBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIpLAorCQkJCWksIHpvbmVfY291bnRbaV0pOworCQllbHNlCisJCQlwcmludGYgKF8oIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIpLAorCQkJCWksIHpvbmVfY291bnRbaV0pOworCX0KK30KKworc3RhdGljIHZvaWQKK2NoZWNrKHZvaWQpIHsKKwltZW1zZXQoaW5vZGVfY291bnQsMCwoSU5PREVTICsgMSkgKiBzaXplb2YoKmlub2RlX2NvdW50KSk7CisJbWVtc2V0KHpvbmVfY291bnQsMCxaT05FUypzaXplb2YoKnpvbmVfY291bnQpKTsKKwljaGVja196b25lcyhST09UX0lOTyk7CisJcmVjdXJzaXZlX2NoZWNrKFJPT1RfSU5PKTsKKwljaGVja19jb3VudHMoKTsKK30KKworc3RhdGljIHZvaWQKK2NoZWNrMiAodm9pZCkgeworCW1lbXNldCAoaW5vZGVfY291bnQsIDAsIChJTk9ERVMgKyAxKSAqIHNpemVvZiAoKmlub2RlX2NvdW50KSk7CisJbWVtc2V0ICh6b25lX2NvdW50LCAwLCBaT05FUyAqIHNpemVvZiAoKnpvbmVfY291bnQpKTsKKwljaGVja196b25lczIgKFJPT1RfSU5PKTsKKwlyZWN1cnNpdmVfY2hlY2syIChST09UX0lOTyk7CisJY2hlY2tfY291bnRzMiAoKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqIGFyZ3YpIHsKKwlzdHJ1Y3QgdGVybWlvcyB0bXA7CisJaW50IGNvdW50OworCWludCByZXRjb2RlID0gMDsKKwljaGFyICpwOworCisJcHJvZ3JhbV9uYW1lID0gKGFyZ2MgJiYgKmFyZ3YpID8gYXJndlswXSA6ICJmc2NrLm1pbml4IjsKKwlpZiAoKHAgPSBzdHJyY2hyKHByb2dyYW1fbmFtZSwgJy8nKSkgIT0gTlVMTCkKKwkJcHJvZ3JhbV9uYW1lID0gcCsxOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWlmIChhcmdjID09IDIgJiYKKwkgICAgKCFzdHJjbXAoYXJndlsxXSwgIi1WIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiLS12ZXJzaW9uIikpKSB7CisJCXByaW50ZihfKCIlcyAoJXMpXG4iKSwgcHJvZ3JhbV9uYW1lLCBQQUNLQUdFX1NUUklORyk7CisJCWV4aXQoMCk7CisJfQorCisJaWYgKElOT0RFX1NJWkUgKiBNSU5JWF9JTk9ERVNfUEVSX0JMT0NLICE9IEJMT0NLX1NJWkUpCisJCWRpZShfKCJiYWQgaW5vZGUgc2l6ZSIpKTsKKwlpZiAoSU5PREVfU0laRTIgKiBNSU5JWDJfSU5PREVTX1BFUl9CTE9DSyAhPSBCTE9DS19TSVpFKQorCQlkaWUoXygiYmFkIHYyIGlub2RlIHNpemUiKSk7CisKKwl3aGlsZSAoYXJnYy0tID4gMSkgeworCQlhcmd2Kys7CisJCWlmIChhcmd2WzBdWzBdICE9ICctJykgeworCQkJaWYgKGRldmljZV9uYW1lKQorCQkJCXVzYWdlKCk7CisJCQllbHNlCisJCQkJZGV2aWNlX25hbWUgPSBhcmd2WzBdOworCQl9IGVsc2Ugd2hpbGUgKCorK2FyZ3ZbMF0pCisJCQlzd2l0Y2ggKGFyZ3ZbMF1bMF0pIHsKKwkJCQljYXNlICdsJzogbGlzdD0xOyBicmVhazsKKwkJCQljYXNlICdhJzogYXV0b21hdGljPTE7IHJlcGFpcj0xOyBicmVhazsKKwkJCQljYXNlICdyJzogYXV0b21hdGljPTA7IHJlcGFpcj0xOyBicmVhazsKKwkJCQljYXNlICd2JzogdmVyYm9zZT0xOyBicmVhazsKKwkJCQljYXNlICdzJzogc2hvdz0xOyBicmVhazsKKwkJCQljYXNlICdtJzogd2Fybl9tb2RlPTE7IGJyZWFrOworCQkJCWNhc2UgJ2YnOiBmb3JjZT0xOyBicmVhazsKKwkJCQlkZWZhdWx0OiB1c2FnZSgpOworCQkJfQorCX0KKwlpZiAoIWRldmljZV9uYW1lKQorCQl1c2FnZSgpOworCWNoZWNrX21vdW50KCk7CQkvKiB0cnlpbmcgdG8gY2hlY2sgYSBtb3VudGVkIGZpbGVzeXN0ZW0/ICovCisJaWYgKHJlcGFpciAmJiAhYXV0b21hdGljKSB7CisJCWlmICghaXNhdHR5KDApIHx8ICFpc2F0dHkoMSkpCisJCQlkaWUoXygibmVlZCB0ZXJtaW5hbCBmb3IgaW50ZXJhY3RpdmUgcmVwYWlycyIpKTsKKwl9CisJSU4gPSBvcGVuKGRldmljZV9uYW1lLHJlcGFpcj9PX1JEV1I6T19SRE9OTFkpOworCWlmIChJTiA8IDApCisJCWRpZShfKCJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIpLCBkZXZpY2VfbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwlmb3IgKGNvdW50PTAgOyBjb3VudDwzIDsgY291bnQrKykKKwkJc3luYygpOworCXJlYWRfc3VwZXJibG9jaygpOworCisJLyoKKwkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIGNvbnRpbnVlIHdpdGggdGhlIGNoZWNraW5nLgorCSAqIFRoaXMgaXMgYmFzZWQgb24gdGhlIHN0YXR1cyBvZiB0aGUgZmlsZXN5c3RlbSB2YWxpZCBhbmQgZXJyb3IKKwkgKiBmbGFncyBhbmQgd2hldGhlciBvciBub3QgdGhlIC1mIHN3aXRjaCB3YXMgc3BlY2lmaWVkIG9uIHRoZSAKKwkgKiBjb21tYW5kIGxpbmUuCisJICovCisJaWYgKCAhKFN1cGVyLnNfc3RhdGUgJiBNSU5JWF9FUlJPUl9GUykgJiYgCisJICAgICAgKFN1cGVyLnNfc3RhdGUgJiBNSU5JWF9WQUxJRF9GUykgJiYgCisJICAgICAgIWZvcmNlICkgeworCQlpZiAocmVwYWlyKQorCQkJcHJpbnRmKF8oIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIpLCBkZXZpY2VfbmFtZSk7CisJCXJldHVybiByZXRjb2RlOworCX0KKwllbHNlIGlmIChmb3JjZSkKKwkJcHJpbnRmKF8oIkZvcmNpbmcgZmlsZXN5c3RlbSBjaGVjayBvbiAlcy5cbiIpLCBkZXZpY2VfbmFtZSk7CisJZWxzZSBpZiAocmVwYWlyKQorCQlwcmludGYoXygiRmlsZXN5c3RlbSBvbiAlcyBpcyBkaXJ0eSwgbmVlZHMgY2hlY2tpbmcuXG4iKSxcCisJCQlkZXZpY2VfbmFtZSk7CisKKwlyZWFkX3RhYmxlcygpOworCisJLyogUmVzdG9yZSB0aGUgdGVybWluYWwgc3RhdGUgb24gZmF0YWwgc2lnbmFscy4KKwkgKiBXZSBkb24ndCBkbyB0aGlzIGZvciBTSUdBTFJNLCBTSUdVU1IxIG9yIFNJR1VTUjIuCisJICovCisJc2lnbmFsKFNJR0lOVCwgZmF0YWxzaWcpOworCXNpZ25hbChTSUdRVUlULCBmYXRhbHNpZyk7CisJc2lnbmFsKFNJR1RFUk0sIGZhdGFsc2lnKTsKKworCWlmIChyZXBhaXIgJiYgIWF1dG9tYXRpYykgeworCQl0Y2dldGF0dHIoMCwmdGVybWlvcyk7CisJCXRtcCA9IHRlcm1pb3M7CisJCXRtcC5jX2xmbGFnICY9IH4oSUNBTk9OfEVDSE8pOworCQl0Y3NldGF0dHIoMCxUQ1NBTk9XLCZ0bXApOworCQl0ZXJtaW9zX3NldCA9IDE7CisJfQorCisJaWYgKHZlcnNpb24yKSB7CisJCWNoZWNrX3Jvb3QyICgpOworCQljaGVjazIgKCk7CisJfSBlbHNlIHsKKwkJY2hlY2tfcm9vdCgpOworCQljaGVjaygpOworCX0KKwlpZiAodmVyYm9zZSkgeworCQlpbnQgaSwgZnJlZTsKKworCQlmb3IgKGk9MSxmcmVlPTAgOyBpIDw9IElOT0RFUyA7IGkrKykKKwkJCWlmICghaW5vZGVfaW5fdXNlKGkpKQorCQkJCWZyZWUrKzsKKwkJcHJpbnRmKF8oIlxuJTZsZCBpbm9kZXMgdXNlZCAoJWxkJSUpXG4iKSwoSU5PREVTLWZyZWUpLAorCQkJMTAwKihJTk9ERVMtZnJlZSkvSU5PREVTKTsKKwkJZm9yIChpPUZJUlNUWk9ORSxmcmVlPTAgOyBpIDwgWk9ORVMgOyBpKyspCisJCQlpZiAoIXpvbmVfaW5fdXNlKGkpKQorCQkJCWZyZWUrKzsKKwkJcHJpbnRmKF8oIiU2bGQgem9uZXMgdXNlZCAoJWxkJSUpXG4iKSwoWk9ORVMtZnJlZSksCisJCQkxMDAqKFpPTkVTLWZyZWUpL1pPTkVTKTsKKwkJcHJpbnRmKF8oIlxuJTZkIHJlZ3VsYXIgZmlsZXNcbiIKKwkJIiU2ZCBkaXJlY3Rvcmllc1xuIgorCQkiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKwkJIiU2ZCBibG9jayBkZXZpY2UgZmlsZXNcbiIKKwkJIiU2ZCBsaW5rc1xuIgorCQkiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisJCSItLS0tLS1cbiIKKwkJIiU2ZCBmaWxlc1xuIiksCisJCXJlZ3VsYXIsZGlyZWN0b3J5LGNoYXJkZXYsYmxvY2tkZXYsCisJCWxpbmtzLTIqZGlyZWN0b3J5KzEsc3ltbGlua3MsdG90YWwtMipkaXJlY3RvcnkrMSk7CisJfQorCWlmIChjaGFuZ2VkKSB7CisJCXdyaXRlX3RhYmxlcygpOworCQlwcmludGYoXygJIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKwkJCSJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisJCQkiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIikpOworCQlmb3IgKGNvdW50PTAgOyBjb3VudDwzIDsgY291bnQrKykKKwkJCXN5bmMoKTsKKwl9CisJZWxzZSBpZiAoIHJlcGFpciApCisJCXdyaXRlX3N1cGVyX2Jsb2NrKCk7CisJCisJaWYgKHJlcGFpciAmJiAhYXV0b21hdGljKQorCQl0Y3NldGF0dHIoMCxUQ1NBTk9XLCZ0ZXJtaW9zKTsKKworCWlmIChjaGFuZ2VkKQorCSAgICAgIHJldGNvZGUgKz0gMzsKKwlpZiAoZXJyb3JzX3VuY29ycmVjdGVkKQorCSAgICAgIHJldGNvZGUgKz0gNDsKKwlyZXR1cm4gcmV0Y29kZTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvaXNvc2l6ZS44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9pc29zaXplLjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWE4NzhjZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvaXNvc2l6ZS44CkBAIC0wLDAgKzEsMzcgQEAKKy5USCBJU09TSVpFICI4IiAiRGVjZW1iZXIgMjAwMCIgInNnM191dGlscy0wLjkxIiBTR19VVElMUworLlNIIE5BTUUKK2lzb3NpemUgXC0gb3V0cHV0cyB0aGUgbGVuZ3RoIG9mIGFuIGlzbzk2NjAgZmlsZSBzeXN0ZW0KKy5TSCBTWU5PUFNJUworLkIgaXNvc2l6ZQorLlJCIFsgXC14IF0KKy5SQiBbIFwtZAorLklSIDxudW0+IF0KKy5JUiA8aXNvOTY2MF9pbWFnZV9maWxlPiAuLi4KKy5TSCBERVNDUklQVElPTgorLlwiIEFkZCBhbnkgYWRkaXRpb25hbCBkZXNjcmlwdGlvbiBoZXJlCisuUFAKK1RoaXMgY29tbWFuZCBvdXRwdXRzIHRoZSBsZW5ndGggb2YgYW4gaXNvOTY2MCBmaWxlIHN5c3RlbSB0aGF0CitpcyBjb250YWluZWQgaW4gZ2l2ZW4gZmlsZS4gVGhhdCBmaWxlIG1heSBiZSBhIG5vcm1hbCBmaWxlIG9yCithIGJsb2NrIGRldmljZSAoZS5nLiAvZGV2L2hkZCBvciAvZGV2L3NyMCkuIEluIHRoZSBhYnNlbmNlIG9mCithbnkgc3dpdGNoZXMgKG9yIGVycm9ycykgaXQgd2lsbCBvdXRwdXQgdGhlIHNpemUgb2YgdGhlIGlzbzk2NjAKK2ZpbGUgc3lzdGVtIGluIGJ5dGVzLiBUaGlzIGNhbiBub3cgYmUgYSBsYXJnZSBudW1iZXIgKD4+IDQgR0IpLgorLlRQCisuQiBcLXgKK291dHB1dCBpbiBodW1hbmx5IHJlYWRhYmxlIGZvcm0gdGhlIGJsb2NrIGNvdW50IGFuZCB0aGUgYmxvY2sKK3NpemUuIE91dHB1dCB1c2VzIHRoZSB0ZXJtICJzZWN0b3JzIiBmb3IgImJsb2NrcyIuCisuVFAKKy5CSSBcLWRcICA8bnVtPgorb25seSBoYXMgYWZmZWN0IHdoZW4KKy5CIFwteAoraXMgbm90IGdpdmVuLiBUaGUgbnVtYmVyIG91dHB1dCAoaWYgbm8gZXJyb3JzKQoraXMgdGhlIGlzbzk2NjAgZmlsZSBzaXplIGluIGJ5dGVzIGRpdmlkZWQgYnkKKy5JUiA8bnVtPiAuCitTbyBpZgorLkkgPG51bT4KK2lzIHRoZSBibG9jayBzaXplIHRoZW4gdGhlIG91dHB1dCBudW1iZXIgd2lsbCBiZSB0aGUgYmxvY2sgY291bnQuCisuUFAKK1RoZSBzaXplIG9mIHRoZSBmaWxlIChvciBibG9jayBkZXZpY2UpIGhvbGRpbmcgYSBpc285NjYwIGZpbGUKK3N5c3RlbSBjYW4gYmUgbWFyZ2luYWxseSBsYXJnZXIgdGhhbiB0aGUgYWN0dWFsIHNpemUgb2YgdGhlCitpc285NjYwIGZpbGUgc3lzdGVtLiBPbmUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgY2Qgd3JpdGVycworYXJlIGFsbG93ZWQgdG8gYWRkICJydW4gb3V0IiBzZWN0b3JzIGF0IHRoZSBlbmQgb2YgYSBpc285NjYwCitpbWFnZS4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvaXNvc2l6ZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9pc29zaXplLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YyMmFiOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvaXNvc2l6ZS5jCkBAIC0wLDAgKzEsMjIwIEBACisvKgorICogaXNvc2l6ZS5jIC0gQW5kcmllcyBCcm91d2VyLCAwMDA2MDgKKyAqCisgKiB1c2UgaGVhZGVyIGluZm8gdG8gZmluZCBzaXplIG9mIGlzbzk2NjAgZmlsZSBzeXN0ZW0KKyAqIG91dHB1dCBhIG51bWJlciAtIHVzZWZ1bCBpbiBzY3JpcHRzCisgKgorICogU3lub3BzaXM6CisgKiAgICBpc29zaXplIFsteF0gWy1kIDxudW0+XSA8ZmlsZW5hbWU+CisgKiAgICAgICAgd2hlcmUgIi14IiBnaXZlcyBsZW5ndGggaW4gc2VjdG9ycyBhbmQgc2VjdG9yIHNpemUgd2hpbGUKKyAqICAgICAgICAgICAgICB3aXRob3V0IHRoaXMgYXJndW1lbnQgdGhlIHNpemUgaXMgZ2l2ZW4gaW4gYnl0ZXMKKyAqICAgICAgICB3aXRob3V0ICIteCIgZ2l2ZXMgbGVuZ3RoIGluIGJ5dGVzIHVubGVzcyAiLWQgPG51bT4iIGlzCisgKgkJZ2l2ZW4uIEluIHRoZSBsYXR0ZXIgY2FzZSB0aGUgbGVuZ3RoIGluIGJ5dGVzIGRpdmlkZWQKKyAqCQlieSA8bnVtPiBpcyBnaXZlbgorICoKKyAqICBWZXJzaW9uIDIuMDMgMjAwMC8xMi8yMQorICogICAgIC0gYWRkICItZCA8bnVtPiIgb3B0aW9uIGFuZCB1c2UgbG9uZyBsb25nIHRvIGZpeCB0aGluZ3MgPiAyIEdCCisgKiAgVmVyc2lvbiAyLjAyIDIwMDAvMTAvMTEKKyAqICAgICAtIGVycm9yIG1lc3NhZ2VzIG9uIElPIGZhaWx1cmVzIFtELiBHaWxiZXJ0XQorICoKKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgIm5scy5oIgorCisjZGVmaW5lIElTT0RDTChmcm9tLCB0bykgKHRvIC0gZnJvbSArIDEpCisKK2ludCB4ZmxhZzsKKworc3RhdGljIGludAoraXNvbnVtXzcyMSAodW5zaWduZWQgY2hhciAqIHApIHsKKyAgICAgICAgcmV0dXJuICgocFswXSAmIDB4ZmYpCisgICAgICAgICAgICAgICAgfCAoKHBbMV0gJiAweGZmKSA8PCA4KSk7Cit9CisKK3N0YXRpYyBpbnQKK2lzb251bV83MjIgKHVuc2lnbmVkIGNoYXIgKiBwKSB7CisgICAgICAgIHJldHVybiAoKHBbMV0gJiAweGZmKQorICAgICAgICAgICAgICAgIHwgKChwWzBdICYgMHhmZikgPDwgOCkpOworfQorCitzdGF0aWMgaW50Citpc29udW1fNzIzICh1bnNpZ25lZCBjaGFyICogcCkgeworICAgICAgICBpbnQgbGUgPSBpc29udW1fNzIxIChwKTsKKyAgICAgICAgaW50IGJlID0gaXNvbnVtXzcyMiAocCsyKTsKKyAgICAgICAgaWYgKHhmbGFnICYmIGxlICE9IGJlKQorCQkvKiB0cmFuc2xhdGlvbiBpcyB1c2VsZXNzICovCisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICI3MjNlcnJvcjogbGU9JWQgYmU9JWRcbiIsIGxlLCBiZSk7CisgICAgICAgIHJldHVybiAobGUpOworfQorCitzdGF0aWMgaW50Citpc29udW1fNzMxICh1bnNpZ25lZCBjaGFyICogcCkgeworICAgIHJldHVybiAoKHBbMF0gJiAweGZmKQorICAgICAgICAgICAgfCAoKHBbMV0gJiAweGZmKSA8PCA4KQorICAgICAgICAgICAgfCAoKHBbMl0gJiAweGZmKSA8PCAxNikKKyAgICAgICAgICAgIHwgKChwWzNdICYgMHhmZikgPDwgMjQpKTsKK30KKworc3RhdGljIGludAoraXNvbnVtXzczMiAodW5zaWduZWQgY2hhciAqIHApIHsKKyAgICByZXR1cm4gKChwWzNdICYgMHhmZikKKyAgICAgICAgICAgIHwgKChwWzJdICYgMHhmZikgPDwgOCkKKyAgICAgICAgICAgIHwgKChwWzFdICYgMHhmZikgPDwgMTYpCisgICAgICAgICAgICB8ICgocFswXSAmIDB4ZmYpIDw8IDI0KSk7Cit9CisKKworc3RhdGljIGludAoraXNvbnVtXzczMyAodW5zaWduZWQgY2hhciAqIHApIHsKKyAgICBpbnQgbGUgPSBpc29udW1fNzMxIChwKTsKKyAgICBpbnQgYmUgPSBpc29udW1fNzMyIChwKzQpOworICAgIGlmICh4ZmxhZyAmJiBsZSAhPSBiZSkKKwkgICAgLyogdHJhbnNsYXRpb24gaXMgdXNlbGVzcyAqLworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICI3MzNlcnJvcjogbGU9JWQgYmU9JWRcbiIsIGxlLCBiZSk7CisgICAgcmV0dXJuIChsZSk7Cit9CisKK3N0cnVjdCBpc29fcHJpbWFyeV9kZXNjcmlwdG9yIHsKKyAgICB1bnNpZ25lZCBjaGFyIHR5cGUgICAgICAgICAgICAgICAgICAgICAgW0lTT0RDTCAoICAxLCAgIDEpXTsgLyogNzExICovCisgICAgdW5zaWduZWQgY2hhciBpZCAgICAgICAgICAgICAgICAgICAgICAgIFtJU09EQ0wgKCAgMiwgICA2KV07CisgICAgdW5zaWduZWQgY2hhciB2ZXJzaW9uICAgICAgICAgICAgICAgICAgIFtJU09EQ0wgKCAgNywgICA3KV07IC8qIDcxMSAqLworICAgIHVuc2lnbmVkIGNoYXIgdW51c2VkMSAgICAgICAgICAgICAgICAgICBbSVNPRENMICggIDgsICAgOCldOworICAgIHVuc2lnbmVkIGNoYXIgc3lzdGVtX2lkICAgICAgICAgICAgICAgICBbSVNPRENMICggIDksICA0MCldOyAvKiBhdWNoYXJzICovCisgICAgdW5zaWduZWQgY2hhciB2b2x1bWVfaWQgICAgICAgICAgICAgICAgIFtJU09EQ0wgKCA0MSwgIDcyKV07IC8qIGR1Y2hhcnMgKi8KKyAgICB1bnNpZ25lZCBjaGFyIHVudXNlZDIgICAgICAgICAgICAgICAgICAgW0lTT0RDTCAoIDczLCAgODApXTsKKyAgICB1bnNpZ25lZCBjaGFyIHZvbHVtZV9zcGFjZV9zaXplICAgICAgICAgW0lTT0RDTCAoIDgxLCAgODgpXTsgLyogNzMzICovCisgICAgdW5zaWduZWQgY2hhciB1bnVzZWQzICAgICAgICAgICAgICAgICAgIFtJU09EQ0wgKCA4OSwgMTIwKV07CisgICAgdW5zaWduZWQgY2hhciB2b2x1bWVfc2V0X3NpemUgICAgICAgICAgIFtJU09EQ0wgKDEyMSwgMTI0KV07IC8qIDcyMyAqLworICAgIHVuc2lnbmVkIGNoYXIgdm9sdW1lX3NlcXVlbmNlX251bWJlciAgICBbSVNPRENMICgxMjUsIDEyOCldOyAvKiA3MjMgKi8KKyAgICB1bnNpZ25lZCBjaGFyIGxvZ2ljYWxfYmxvY2tfc2l6ZSAgICAgICAgW0lTT0RDTCAoMTI5LCAxMzIpXTsgLyogNzIzICovCisgICAgdW5zaWduZWQgY2hhciBwYXRoX3RhYmxlX3NpemUgICAgICAgICAgIFtJU09EQ0wgKDEzMywgMTQwKV07IC8qIDczMyAqLworICAgIHVuc2lnbmVkIGNoYXIgdHlwZV9sX3BhdGhfdGFibGUgICAgICAgICBbSVNPRENMICgxNDEsIDE0NCldOyAvKiA3MzEgKi8KKyAgICB1bnNpZ25lZCBjaGFyIG9wdF90eXBlX2xfcGF0aF90YWJsZSAgICAgW0lTT0RDTCAoMTQ1LCAxNDgpXTsgLyogNzMxICovCisgICAgdW5zaWduZWQgY2hhciB0eXBlX21fcGF0aF90YWJsZSAgICAgICAgIFtJU09EQ0wgKDE0OSwgMTUyKV07IC8qIDczMiAqLworICAgIHVuc2lnbmVkIGNoYXIgb3B0X3R5cGVfbV9wYXRoX3RhYmxlICAgICBbSVNPRENMICgxNTMsIDE1NildOyAvKiA3MzIgKi8KKyAgICB1bnNpZ25lZCBjaGFyIHJvb3RfZGlyZWN0b3J5X3JlY29yZCAgICAgW0lTT0RDTCAoMTU3LCAxOTApXTsgLyogOS4xICovCisgICAgdW5zaWduZWQgY2hhciB2b2x1bWVfc2V0X2lkICAgICAgICAgICAgIFtJU09EQ0wgKDE5MSwgMzE4KV07IC8qIGR1Y2hhcnMgKi8KKyAgICB1bnNpZ25lZCBjaGFyIHB1Ymxpc2hlcl9pZCAgICAgICAgICAgICAgW0lTT0RDTCAoMzE5LCA0NDYpXTsgLyogYWNoYXJzICovCisgICAgdW5zaWduZWQgY2hhciBwcmVwYXJlcl9pZCAgICAgICAgICAgICAgIFtJU09EQ0wgKDQ0NywgNTc0KV07IC8qIGFjaGFycyAqLworICAgIHVuc2lnbmVkIGNoYXIgYXBwbGljYXRpb25faWQgICAgICAgICAgICBbSVNPRENMICg1NzUsIDcwMildOyAvKiBhY2hhcnMgKi8KKyAgICB1bnNpZ25lZCBjaGFyIGNvcHlyaWdodF9maWxlX2lkICAgICAgICAgW0lTT0RDTCAoNzAzLCA3MzkpXTsgLyogNy41IGRjaGFycyAqLworICAgIHVuc2lnbmVkIGNoYXIgYWJzdHJhY3RfZmlsZV9pZCAgICAgICAgICBbSVNPRENMICg3NDAsIDc3NildOyAvKiA3LjUgZGNoYXJzICovCisgICAgdW5zaWduZWQgY2hhciBiaWJsaW9ncmFwaGljX2ZpbGVfaWQgICAgIFtJU09EQ0wgKDc3NywgODEzKV07IC8qIDcuNSBkY2hhcnMgKi8KKyAgICB1bnNpZ25lZCBjaGFyIGNyZWF0aW9uX2RhdGUgICAgICAgICAgICAgW0lTT0RDTCAoODE0LCA4MzApXTsgLyogOC40LjI2LjEgKi8KKyAgICB1bnNpZ25lZCBjaGFyIG1vZGlmaWNhdGlvbl9kYXRlICAgICAgICAgW0lTT0RDTCAoODMxLCA4NDcpXTsgLyogOC40LjI2LjEgKi8KKyAgICB1bnNpZ25lZCBjaGFyIGV4cGlyYXRpb25fZGF0ZSAgICAgICAgICAgW0lTT0RDTCAoODQ4LCA4NjQpXTsgLyogOC40LjI2LjEgKi8KKyAgICB1bnNpZ25lZCBjaGFyIGVmZmVjdGl2ZV9kYXRlICAgICAgICAgICAgW0lTT0RDTCAoODY1LCA4ODEpXTsgLyogOC40LjI2LjEgKi8KKyAgICB1bnNpZ25lZCBjaGFyIGZpbGVfc3RydWN0dXJlX3ZlcnNpb24gICAgW0lTT0RDTCAoODgyLCA4ODIpXTsgLyogNzExICovCisgICAgdW5zaWduZWQgY2hhciB1bnVzZWQ0ICAgICAgICAgICAgICAgICAgIFtJU09EQ0wgKDg4MywgODgzKV07CisgICAgdW5zaWduZWQgY2hhciBhcHBsaWNhdGlvbl9kYXRhICAgICAgICAgIFtJU09EQ0wgKDg4NCwgMTM5NSldOworICAgIHVuc2lnbmVkIGNoYXIgdW51c2VkNSAgICAgICAgICAgICAgICAgICBbSVNPRENMICgxMzk2LCAyMDQ4KV07Cit9OworCitjb25zdCBjaGFyICpwcm9nbmFtZTsKK2ludCBkaXZpc29yID0gMDsKKworc3RhdGljIHZvaWQKK2lzb3NpemUoY2hhciAqZmlsZW5hbWVwKSB7CisJaW50IGZkLCBuc2Vjcywgc3NpemU7CisJc3RydWN0IGlzb19wcmltYXJ5X2Rlc2NyaXB0b3IgaXBkOworCisJaWYgKChmZCA9IG9wZW4oZmlsZW5hbWVwLCBPX1JET05MWSkpIDwgMCkgeworCQlwZXJyb3IoZmlsZW5hbWVwKTsKKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIpLAorCQkJcHJvZ25hbWUsIGZpbGVuYW1lcCk7CisJCWV4aXQoMSk7CisJfQorCWlmIChsc2VlayhmZCwgMTYgPDwgMTEsIDApID09IChvZmZfdCktMSkgeworCQlwZXJyb3IoImxzZWVrIik7CisJCWZwcmludGYoc3RkZXJyLCBfKCIlczogc2VlayBlcnJvciBvbiAlc1xuIiksCisJCQlwcm9nbmFtZSwgZmlsZW5hbWVwKTsKKwkJZXhpdCgxKTsKKwl9CisJaWYgKHJlYWQoZmQsICZpcGQsIHNpemVvZihpcGQpKSA8IDApIHsKKwkJcGVycm9yKCJyZWFkIik7CisJCWZwcmludGYoc3RkZXJyLCBfKCIlczogcmVhZCBlcnJvciBvbiAlc1xuIiksCisJCQlwcm9nbmFtZSwgZmlsZW5hbWVwKTsKKwkJZXhpdCgxKTsKKwl9CisKKwluc2VjcyA9IGlzb251bV83MzMoaXBkLnZvbHVtZV9zcGFjZV9zaXplKTsKKwlzc2l6ZSA9IGlzb251bV83MjMoaXBkLmxvZ2ljYWxfYmxvY2tfc2l6ZSk7IC8qIG5vd2FkYXlzIGFsd2F5cyAyMDQ4ICovCisKKwlpZiAoeGZsYWcpIHsKKwkJcHJpbnRmIChfKCJzZWN0b3IgY291bnQ6ICVkLCBzZWN0b3Igc2l6ZTogJWRcbiIpLAorCQkJbnNlY3MsIHNzaXplKTsKKwl9IGVsc2UgeworCQlsb25nIGxvbmcgcHJvZHVjdCA9IG5zZWNzOworCisJCWlmIChkaXZpc29yID09IDApCisJCQlwcmludGYgKCIlbGxkXG4iLCBwcm9kdWN0ICogc3NpemUpOworCQllbHNlIGlmIChkaXZpc29yID09IHNzaXplKQorCQkJcHJpbnRmICgiJWRcbiIsIG5zZWNzKTsKKwkJZWxzZQorCQkJcHJpbnRmICgiJWxsZFxuIiwgKHByb2R1Y3QgKiBzc2l6ZSkgLyBkaXZpc29yKTsKKwl9CisKKwljbG9zZShmZCk7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqIGFyZ3ZbXSkgeworCWludCBqLCBjdDsKKwljaGFyICpwOworCisJcHJvZ25hbWUgPSBhcmd2WzBdOworCWlmICgocCA9IHN0cnJjaHIocHJvZ25hbWUsICcvJykpICE9IE5VTEwpCisJCXByb2duYW1lID0gcCsxOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWlmIChhcmdjID49IDIgJiYKKwkgICAgKCFzdHJjbXAoYXJndlsxXSwgIi1WIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiLS12ZXJzaW9uIikpKSB7CisJCXByaW50ZihfKCIlcyAoJXMpXG4iKSwgcHJvZ25hbWUsIFBBQ0tBR0VfU1RSSU5HKTsKKwkJZXhpdCgwKTsKKwl9CisKKwlmb3IgKDs7KSB7CisJCWludCBvcHQ7CisKKwkJb3B0ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJ4ZDoiKTsKKwkJaWYgKG9wdCA9PSAtMSkKKwkJCWJyZWFrOworCQlzd2l0Y2ggKG9wdCkgeworCQljYXNlICdkJzoKKwkJCWRpdmlzb3IgPSBhdG9pKG9wdGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSAneCc6CisJCQl4ZmxhZyA9IDE7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oIiVzOiBvcHRpb24gcGFyc2UgZXJyb3JcbiIpLCBwcm9nbmFtZSk7CisJCQlleGl0KDEpOworCQl9CisJfQorCisJY3QgPSBhcmdjIC0gb3B0aW5kOworCisJaWYgKGN0IDw9IDApIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIiksCisJCQlwcm9nbmFtZSk7CisJCWV4aXQoMSk7CisJfQorCisJZm9yIChqID0gb3B0aW5kOyBqIDwgYXJnYzsgaisrKSB7CisJCWlmIChjdCA+IDEpCisJCQlwcmludGYoIiVzOiAiLCBhcmd2W2pdKTsKKwkJaXNvc2l6ZShhcmd2W2pdKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWluaXguaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWluaXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Mzg1NjVlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9taW5peC5oCkBAIC0wLDAgKzEsNjMgQEAKKyNpZmRlZiBLRVJORUxfSU5DTFVERVNfQVJFX0NMRUFOCisKKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L21pbml4X2ZzLmg+CisKKyNlbHNlCisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciB1ODsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgdTE2OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgdTMyOworCitzdHJ1Y3QgbWluaXhfaW5vZGUgeworICAgICAgICB1MTYgaV9tb2RlOworICAgICAgICB1MTYgaV91aWQ7CisgICAgICAgIHUzMiBpX3NpemU7CisgICAgICAgIHUzMiBpX3RpbWU7CisgICAgICAgIHU4ICBpX2dpZDsKKyAgICAgICAgdTggIGlfbmxpbmtzOworICAgICAgICB1MTYgaV96b25lWzldOworfTsKKworc3RydWN0IG1pbml4Ml9pbm9kZSB7CisgICAgICAgIHUxNiBpX21vZGU7CisgICAgICAgIHUxNiBpX25saW5rczsKKyAgICAgICAgdTE2IGlfdWlkOworICAgICAgICB1MTYgaV9naWQ7CisgICAgICAgIHUzMiBpX3NpemU7CisgICAgICAgIHUzMiBpX2F0aW1lOworICAgICAgICB1MzIgaV9tdGltZTsKKyAgICAgICAgdTMyIGlfY3RpbWU7CisgICAgICAgIHUzMiBpX3pvbmVbMTBdOworfTsKKworc3RydWN0IG1pbml4X3N1cGVyX2Jsb2NrIHsKKyAgICAgICAgdTE2IHNfbmlub2RlczsKKyAgICAgICAgdTE2IHNfbnpvbmVzOworICAgICAgICB1MTYgc19pbWFwX2Jsb2NrczsKKyAgICAgICAgdTE2IHNfem1hcF9ibG9ja3M7CisgICAgICAgIHUxNiBzX2ZpcnN0ZGF0YXpvbmU7CisgICAgICAgIHUxNiBzX2xvZ196b25lX3NpemU7CisgICAgICAgIHUzMiBzX21heF9zaXplOworICAgICAgICB1MTYgc19tYWdpYzsKKyAgICAgICAgdTE2IHNfc3RhdGU7CisgICAgICAgIHUzMiBzX3pvbmVzOworfTsKKworI2RlZmluZSBCTE9DS19TSVpFX0JJVFMgMTAKKyNkZWZpbmUgQkxPQ0tfU0laRSAoMTw8QkxPQ0tfU0laRV9CSVRTKQorCisjZGVmaW5lIE5BTUVfTUFYICAgICAgICAgMjU1ICAgLyogIyBjaGFycyBpbiBhIGZpbGUgbmFtZSAqLworCisjZGVmaW5lIE1JTklYX0lOT0RFU19QRVJfQkxPQ0sgKChCTE9DS19TSVpFKS8oc2l6ZW9mIChzdHJ1Y3QgbWluaXhfaW5vZGUpKSkKKyNkZWZpbmUgTUlOSVgyX0lOT0RFU19QRVJfQkxPQ0sgKChCTE9DS19TSVpFKS8oc2l6ZW9mIChzdHJ1Y3QgbWluaXgyX2lub2RlKSkpCisKKyNkZWZpbmUgTUlOSVhfVkFMSURfRlMgICAgICAgICAgICAgICAweDAwMDEgICAgICAgICAgLyogQ2xlYW4gZnMuICovCisjZGVmaW5lIE1JTklYX0VSUk9SX0ZTICAgICAgICAgICAgICAgMHgwMDAyICAgICAgICAgIC8qIGZzIGhhcyBlcnJvcnMuICovCisKKyNkZWZpbmUgTUlOSVhfU1VQRVJfTUFHSUMgICAgMHgxMzdGICAgICAgICAgIC8qIG9yaWdpbmFsIG1pbml4IGZzICovCisjZGVmaW5lIE1JTklYX1NVUEVSX01BR0lDMiAgIDB4MTM4RiAgICAgICAgICAvKiBtaW5peCBmcywgMzAgY2hhciBuYW1lcyAqLworI2RlZmluZSBNSU5JWDJfU1VQRVJfTUFHSUMgICAweDI0NjgJICAgICAvKiBtaW5peCBWMiBmcyAqLworI2RlZmluZSBNSU5JWDJfU1VQRVJfTUFHSUMyICAweDI0NzgJICAgICAvKiBtaW5peCBWMiBmcywgMzAgY2hhciBuYW1lcyAqLworCisjZW5kaWYgLyogS0VSTkVMX0lOQ0xVREVTX0FSRV9DTEVBTiAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9ta2ZzLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rZnMuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGJmY2I5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9ta2ZzLjgKQEAgLTAsMCArMSwxMTQgQEAKKy5cIiAtKi0gbnJvZmYgLSotCisuVEggTUtGUyA4ICJKdW4gMTk5NSIgIlZlcnNpb24gMS45IgorLlNIIE5BTUUKK21rZnMgXC0gYnVpbGQgYSBMaW51eCBmaWxlIHN5c3RlbQorLlNIIFNZTk9QU0lTCisuQiBta2ZzCisuUkIgWyBcLVYgXQorLlJCIFsgXC10CisuSVIgZnN0eXBlIF0KKy5SSSBbIGZzLW9wdGlvbnMgXQorLkkgZmlsZXN5cworLlJJIFsgYmxvY2tzIF0KKy5TSCBERVNDUklQVElPTgorLkIgbWtmcworaXMgdXNlZCB0byBidWlsZCBhIExpbnV4IGZpbGUgc3lzdGVtIG9uIGEgZGV2aWNlLCB1c3VhbGx5CithIGhhcmQgZGlzayBwYXJ0aXRpb24uCisuSSBmaWxlc3lzCitpcyBlaXRoZXIgdGhlIGRldmljZSBuYW1lIChlLmcuCisuSVIgL2Rldi9oZGExICwKKy5JUiAvZGV2L3NkYjIgKSwKK29yIGEgcmVndWxhciBmaWxlIHRoYXQgc2hhbGwgY29udGFpbiB0aGUgZmlsZSBzeXN0ZW0uCisuSSBibG9ja3MKK2lzIHRoZSBudW1iZXIgb2YgYmxvY2tzIHRvIGJlIHVzZWQgZm9yIHRoZSBmaWxlIHN5c3RlbS4KKy5QUAorVGhlIGV4aXQgY29kZSByZXR1cm5lZCBieQorLkIgbWtmcworaXMgMCBvbiBzdWNjZXNzIGFuZCAxIG9uIGZhaWx1cmUuCisuUFAKK0luIGFjdHVhbGl0eSwKKy5CIG1rZnMKK2lzIHNpbXBseSBhIGZyb250LWVuZCBmb3IgdGhlIHZhcmlvdXMgZmlsZSBzeXN0ZW0gYnVpbGRlcnMKKyhcZkJta2ZzLlxmSWZzdHlwZVxmUikKK2F2YWlsYWJsZSB1bmRlciBMaW51eC4KK1RoZSBmaWxlIHN5c3RlbS1zcGVjaWZpYyBidWlsZGVyIGlzIHNlYXJjaGVkIGZvciBpbiBhIG51bWJlcgorb2YgZGlyZWN0b3JpZXMgbGlrZSBwZXJoYXBzCisuSVIgL3NiaW4gLAorLklSIC9zYmluL2ZzICwKKy5JUiAvc2Jpbi9mcy5kICwKKy5JUiAvZXRjL2ZzICwKKy5JIC9ldGMKKyh0aGUgcHJlY2lzZSBsaXN0IGlzIGRlZmluZWQgYXQgY29tcGlsZSB0aW1lIGJ1dCBhdCBsZWFzdAorY29udGFpbnMKKy5JIC9zYmluCithbmQKKy5JUiAvc2Jpbi9mcyApLAorYW5kIGZpbmFsbHkgaW4gdGhlIGRpcmVjdG9yaWVzCitsaXN0ZWQgaW4gdGhlIFBBVEggZW52aXJvbm1lbnQgdmFyaWFibGUuCitQbGVhc2Ugc2VlIHRoZSBmaWxlIHN5c3RlbS1zcGVjaWZpYyBidWlsZGVyIG1hbnVhbCBwYWdlcyBmb3IKK2Z1cnRoZXIgZGV0YWlscy4KKy5TSCBPUFRJT05TCisuVFAKKy5CIC1WCitQcm9kdWNlIHZlcmJvc2Ugb3V0cHV0LCBpbmNsdWRpbmcgYWxsIGZpbGUgc3lzdGVtLXNwZWNpZmljIGNvbW1hbmRzCit0aGF0IGFyZSBleGVjdXRlZC4KK1NwZWNpZnlpbmcgdGhpcyBvcHRpb24gbW9yZSB0aGFuIG9uY2UgaW5oaWJpdHMgZXhlY3V0aW9uIG9mIGFueQorZmlsZSBzeXN0ZW0tc3BlY2lmaWMgY29tbWFuZHMuCitUaGlzIGlzIHJlYWxseSBvbmx5IHVzZWZ1bCBmb3IgdGVzdGluZy4KKy5UUAorLkJJIC10IFwgZnN0eXBlCitTcGVjaWZpZXMgdGhlIHR5cGUgb2YgZmlsZSBzeXN0ZW0gdG8gYmUgYnVpbHQuCitJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBmaWxlIHN5c3RlbSB0eXBlCisoY3VycmVudGx5IGV4dDIpIGlzIHVzZWQuCisuVFAKKy5JIGZzLW9wdGlvbnMKK0ZpbGUgc3lzdGVtLXNwZWNpZmljIG9wdGlvbnMgdG8gYmUgcGFzc2VkIHRvIHRoZSByZWFsIGZpbGUKK3N5c3RlbSBidWlsZGVyLgorQWx0aG91Z2ggbm90IGd1YXJhbnRlZWQsIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgc3VwcG9ydGVkCitieSBtb3N0IGZpbGUgc3lzdGVtIGJ1aWxkZXJzLgorLlRQCisuQiAtYworQ2hlY2sgdGhlIGRldmljZSBmb3IgYmFkIGJsb2NrcyBiZWZvcmUgYnVpbGRpbmcgdGhlIGZpbGUgc3lzdGVtLgorLlRQCisuQkkgLWwgXCBmaWxlbmFtZQorUmVhZCB0aGUgYmFkIGJsb2NrcyBsaXN0IGZyb20KKy5JIGZpbGVuYW1lCisuVFAKKy5CIC12CitQcm9kdWNlIHZlcmJvc2Ugb3V0cHV0LgorLlNIIEJVR1MKK0FsbCBnZW5lcmljIG9wdGlvbnMgbXVzdCBwcmVjZWRlIGFuZCBub3QgYmUgY29tYmluZWQgd2l0aAorZmlsZSBzeXN0ZW0tc3BlY2lmaWMgb3B0aW9ucy4KK1NvbWUgZmlsZSBzeXN0ZW0tc3BlY2lmaWMgcHJvZ3JhbXMgZG8gbm90IHN1cHBvcnQgdGhlCisuSSAtdgorKHZlcmJvc2UpIG9wdGlvbiwgbm9yIHJldHVybiBtZWFuaW5nZnVsIGV4aXQgY29kZXMuCitBbHNvLCBzb21lIGZpbGUgc3lzdGVtLXNwZWNpZmljIHByb2dyYW1zIGRvIG5vdCBhdXRvbWF0aWNhbGx5CitkZXRlY3QgdGhlIGRldmljZSBzaXplIGFuZCByZXF1aXJlIHRoZQorLkkgYmxvY2tzCitwYXJhbWV0ZXIgdG8gYmUgc3BlY2lmaWVkLgorLlNIIEFVVEhPUlMKK0RhdmlkIEVuZ2VsIChkYXZpZEBvZHMuY29tKQorLmJyCitGcmVkIE4uIHZhbiBLZW1wZW4gKHdhbHRqZUB1d2FsdC5ubC5tdWduZXQub3JnKQorLmJyCitSb24gU29tbWVsaW5nIChzb21tZWxAc2NpLmt1bi5ubCkKKy5icgorVGhlIG1hbnVhbCBwYWdlIHdhcyBzaGFtZWxlc3NseSBhZGFwdGVkIGZyb20gUmVteSBDYXJkJ3MgdmVyc2lvbgorZm9yIHRoZSBleHQyIGZpbGUgc3lzdGVtLgorLlNIIFNFRSBBTFNPCisuQlIgZnMgKDUpLAorLkJSIGJhZGJsb2NrcyAoOCksCisuQlIgZnNjayAoOCksCisuQlIgbWtkb3NmcyAoOCksCisuQlIgbWtlMmZzICg4KSwKKy5CUiBta2ZzLmJmcyAoOCksCisuQlIgbWtmcy5leHQyICg4KSwKKy5CUiBta2ZzLmV4dDMgKDgpLAorLkJSIG1rZnMubWluaXggKDgpLAorLkJSIG1rZnMubXNkb3MgKDgpLAorLkJSIG1rZnMudmZhdCAoOCksCisuQlIgbWtmcy54ZnMgKDgpLAorLkJSIG1rZnMueGlhZnMgKDgpCisuU0ggQVZBSUxBQklMSVRZCitUaGUgbWtmcyBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtmcy5iZnMuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtmcy5iZnMuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTIwNTA2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9ta2ZzLmJmcy44CkBAIC0wLDAgKzEsNDggQEAKKy5cIiBDb3B5cmlnaHQgMTk5OSBBbmRyaWVzIEUuIEJyb3V3ZXIgKGFlYkBjd2kubmwpCisuXCIgTWF5IGJlIGZyZWVseSBkaXN0cmlidXRlZC4KKy5USCBNS0ZTLkJGUyA4ICIxMiBTZXB0IDE5OTkiICJVdGlsLWxpbnV4IDIuOXgiICJMaW51eCBTeXN0ZW0gQWRtaW5pc3RyYXRvcidzIE1hbnVhbCIKKy5TSCBOQU1FCitta2ZzLmJmcyBcLSBtYWtlIGFuIFNDTyBiZnMgZmlsZXN5c3RlbQorLlNIIFNZTk9QU0lTCisuQiBta2ZzLmJmcworLlJCIFsgXC1OCisuSVIgbnItb2YtaW5vZGVzIF0KKy5SQiBbIFwtVgorLklSIHZvbHVtZS1uYW1lIF0KKy5SQiBbIFwtRgorLklSIGZzbmFtZSBdCisuSSBkZXZpY2UKKy5SSSBbIHNpemUtaW4tYmxvY2tzIF0KKy5TSCBERVNDUklQVElPTgorLkIgbWtmcy5iZnMKK2NyZWF0ZXMgYW4gU0NPIGJmcyBmaWxlLXN5c3RlbSBvbiBhIGJsb2NrIGRldmljZQorKHVzdWFsbHkgYSBkaXNrIHBhcnRpdGlvbiBvciBhIGZpbGUgYWNjZXNzZWQgdmlhIHRoZSBsb29wIGRldmljZSkuCisKK1RoZQorLkkgc2l6ZS1pbi1ibG9ja3MKK3BhcmFtZXRlciBpcyB0aGUgZGVzaXJlZCBzaXplIG9mIHRoZSBmaWxlIHN5c3RlbSwgaW4gYmxvY2tzLgorSWYgbm90aGluZyBpcyBzcGVjaWZpZWQsIHRoZSBlbnRpcmUgcGFydGl0aW9uIHdpbGwgYmUgdXNlZC4KKy5TSCBPUFRJT05TCisuVFAKKy5CIFwtTgorU3BlY2lmeSB0aGUgZGVzaXJlZCBudW1iZXIgb2YgaW5vZGVzIChhdCBtb3N0IDUxMikuCitJZiBub3RoaW5nIGlzIHNwZWNpZmllZCBzb21lIGRlZmF1bHQgbnVtYmVyIGluIHRoZSByYW5nZSA0OC01MTIgaXMgcGlja2VkCitkZXBlbmRpbmcgb24gdGhlIHNpemUgb2YgdGhlIHBhcnRpdGlvbi4KKy5UUAorLkJJIFwtViAiIHZvbHVtZS1sYWJlbCIKK1NwZWNpZnkgdGhlIHZvbHVtZSBsYWJlbC4gSSBoYXZlIG5vIGlkZWEgaWYvd2hlcmUgdGhpcyBpcyB1c2VkLgorLlRQCisuQkkgXC1GICIgZnNuYW1lIgorU3BlY2lmeSB0aGUgZnNuYW1lLiBJIGhhdmUgbm8gaWRlYSBpZi93aGVyZSB0aGlzIGlzIHVzZWQuCisuVFAKKy5CIFwtdgorQmUgdmVyYm9zZS4KKy5TSCAiRVhJVCBDT0RFUyIKK1RoZSBleGl0IGNvZGUgcmV0dXJuZWQgYnkKKy5CIG1rZnMuYmZzCitpcyAwIHdoZW4gYWxsIHdlbnQgd2VsbCwgYW5kIDEgd2hlbiBzb21ldGhpbmcgd2VudCB3cm9uZy4KKy5TSCAiU0VFIEFMU08iCisuQlIgbWtmcyAoOCkuCisuU0ggQVZBSUxBQklMSVRZCitUaGUgbWtmcy5iZnMgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rZnMuYmZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rZnMuYmZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThmNTM1MgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtmcy5iZnMuYwpAQCAtMCwwICsxLDI4NSBAQAorLyoKKyAqICBta2ZzLmJmcyAtIENyZWF0ZSBTQ08gQkZTIGZpbGVzeXN0ZW0gLSBhZWIsIDE5OTktMDktMDcKKyAqCisgKiAgVXNhZ2U6IG1rZnMuYmZzIFstTiBuci1vZi1pbm9kZXNdIFstViB2b2x1bWUtbmFtZV0gWy1GIGZzbmFtZV0gZGV2aWNlCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgImJsa2Rldi5oIgorCisjZGVmaW5lIEJGU19ST09UX0lOTwkJMgorI2RlZmluZSBCRlNfTkFNRUxFTgkJMTQKKyNkZWZpbmUgQkZTX0JMT0NLU0laRQkJNTEyCisjZGVmaW5lIEJGU19TVVBFUl9NQUdJQwkJMHgxYmFkZmFjZQorCisvKiBzdXBlcmJsb2NrIC0gNTEyIGJ5dGVzICovCitzdHJ1Y3QgYmZzc2IgeworICAgICAgICB1bnNpZ25lZCBpbnQgc19tYWdpYzsKKyAgICAgICAgdW5zaWduZWQgaW50IHNfc3RhcnQ7CSAgLyogYnl0ZSBvZmZzZXQgb2Ygc3RhcnQgb2YgZGF0YSAqLworICAgICAgICB1bnNpZ25lZCBpbnQgc19lbmQ7ICAgICAgIC8qIHNpemVvZihzbGljZSktMSAqLworCisgICAgICAgIC8qIGZvciByZWNvdmVyeSBkdXJpbmcgY29tcGFjdGlvbiAqLworICAgICAgICBpbnQgc19mcm9tLCBzX3RvOyAgICAgICAgIC8qIHNyYyBhbmQgZGVzdCBibG9jayBvZiBjdXJyZW50IHRyYW5zZmVyICovCisgICAgICAgIGludCBzX2JhY2t1cF9mcm9tLCBzX2JhY2t1cF90bzsKKworICAgICAgICAvKiBsYWJlbHMgLSBtYXkgd2VsbCBjb250YWluIGdhcmJhZ2UgKi8KKyAgICAgICAgY2hhciBzX2ZzbmFtZVs2XTsKKyAgICAgICAgY2hhciBzX3ZvbHVtZVs2XTsKKyAgICAgICAgY2hhciBzX3BhZFs0NzJdOworfTsKKworLyogaW5vZGUgLSA2NCBieXRlcyAqLworc3RydWN0IGJmc2kgeworICAgICAgICB1bnNpZ25lZCBzaG9ydCBpX2lubzsKKyAgICAgICAgdW5zaWduZWQgY2hhciBpX3BhZDFbMl07CisgICAgICAgIHVuc2lnbmVkIGxvbmcgaV9maXJzdF9ibG9jazsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBpX2xhc3RfYmxvY2s7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgaV9ieXRlc190b19lbmQ7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgaV90eXBlOyAgICAgICAgICAgLyogMTogZmlsZSwgMjogdGhlIHVuaXF1ZSBkaXIgKi8KKyAgICAgICAgdW5zaWduZWQgbG9uZyBpX21vZGU7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgaV91aWQsIGlfZ2lkOworICAgICAgICB1bnNpZ25lZCBsb25nIGlfbmxpbmtzOworICAgICAgICB1bnNpZ25lZCBsb25nIGlfYXRpbWUsIGlfbXRpbWUsIGlfY3RpbWU7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgaV9wYWQyWzE2XTsKK307CisKKyNkZWZpbmUgQkZTX0RJUl9UWVBFCTIKKworLyogZGlyZWN0b3J5IGVudHJ5IC0gMTYgYnl0ZXMgKi8KK3N0cnVjdCBiZnNkZSB7CisgICAgICAgIHVuc2lnbmVkIHNob3J0IGRfaW5vOworICAgICAgICBjaGFyIGRfbmFtZVtCRlNfTkFNRUxFTl07Cit9OworCisKK3N0YXRpYyBjaGFyICpwcm9nbmFtZTsKKworc3RhdGljIHZvaWQKK2ZhdGFsKGNoYXIgKnMsIC4uLikgeworICAgIHZhX2xpc3QgcDsKKworICAgIHZhX3N0YXJ0KHAsIHMpOworICAgIGZmbHVzaChzdGRvdXQpOworICAgIGZwcmludGYoc3RkZXJyLCAiXG4lczogIiwgcHJvZ25hbWUpOworICAgIHZmcHJpbnRmKHN0ZGVyciwgcywgcCk7CisgICAgdmFfZW5kKHApOworICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICBleGl0KDEpOworfQorCitzdGF0aWMgdm9pZAordXNhZ2Uodm9pZCkgeworCWZwcmludGYoc3RkZXJyLCBfKAorCQkiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorCQkiICAgICAgIFstRiBmc25hbWVdIGRldmljZSBbYmxvY2stY291bnRdXG4iKSwKKwkJcHJvZ25hbWUpOworCWV4aXQoMSk7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CisJY2hhciAqZGV2aWNlLCAqdm9sdW1lLCAqZnNuYW1lOworCWludCBpbm9kZXM7CisJdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsX2Jsb2NrcywgaW5vX2J5dGVzLCBpbm9fYmxvY2tzLCBkYXRhX2Jsb2NrczsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdXNlcl9zcGVjaWZpZWRfdG90YWxfYmxvY2tzID0gMDsKKwlpbnQgdmVyYm9zZSA9IDA7CisJaW50IGZkOworCXN0cnVjdCBiZnNzYiBzYjsKKwlzdHJ1Y3QgYmZzaSByaTsKKwlzdHJ1Y3QgYmZzZGUgZGU7CisJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKwl0aW1lX3Qgbm93OworCWludCBjLCBpLCBsZW47CisJY2hhciAqcDsKKworCXByb2duYW1lID0gYXJndlswXTsKKwlpZiAoKHAgPSBzdHJyY2hyKHByb2duYW1lLCAnLycpKSAhPSBOVUxMKQorCQlwcm9nbmFtZSA9IHArMTsKKworCWlmIChhcmdjIDwgMikKKwkJdXNhZ2UoKTsKKworCWlmIChhcmdjID09IDIgJiYKKwkgICAgKCFzdHJjbXAoYXJndlsxXSwgIi1WIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiLS12ZXJzaW9uIikpKSB7CisJCXByaW50ZihfKCIlcyAoJXMpXG4iKSwgcHJvZ25hbWUsIFBBQ0tBR0VfU1RSSU5HKTsKKwkJZXhpdCgwKTsKKwl9CisKKwl2b2x1bWUgPSBmc25hbWUgPSAiICAgICAgIjsJLyogaXMgdGhlcmUgYSBkZWZhdWx0PyAqLworCWlub2RlcyA9IDA7CisKKwl3aGlsZSAoKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgInZGOk46VjpjbDoiKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ04nOgorCQkJaW5vZGVzID0gYXRvbChvcHRhcmcpOworCQkJYnJlYWs7CisKKwkJY2FzZSAnVic6CisJCQlsZW4gPSBzdHJsZW4ob3B0YXJnKTsKKwkJCWlmIChsZW4gPD0gMCB8fCBsZW4gPiA2KQorCQkJCWZhdGFsKF8oInZvbHVtZSBuYW1lIHRvbyBsb25nIikpOworCQkJdm9sdW1lID0gc3RyZHVwKG9wdGFyZyk7CisJCQlicmVhazsKKworCQljYXNlICdGJzoKKwkJCWxlbiA9IHN0cmxlbihvcHRhcmcpOworCQkJaWYgKGxlbiA8PSAwIHx8IGxlbiA+IDYpCisJCQkJZmF0YWwoXygiZnNuYW1lIG5hbWUgdG9vIGxvbmciKSk7CisJCQlmc25hbWUgPSBzdHJkdXAob3B0YXJnKTsKKwkJCWJyZWFrOworCisJCWNhc2UgJ3YnOgorCQkJdmVyYm9zZSA9IDE7CisJCQlicmVhazsKKworCQkJLyogd2hlbiBjYWxsZWQgdmlhIG1rZnMgd2UgbWF5IGdldCBvcHRpb25zIGMsbCx2ICovCisJCWNhc2UgJ2MnOgorCQljYXNlICdsJzoKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQl1c2FnZSgpOworCQl9CisJfQorCisJaWYgKG9wdGluZCA9PSBhcmdjKQorCQl1c2FnZSgpOworCisJZGV2aWNlID0gYXJndltvcHRpbmQrK107CisKKwlpZiAoc3RhdChkZXZpY2UsICZzdGF0YnVmKSA9PSAtMSkgeworCQlwZXJyb3IoZGV2aWNlKTsKKwkJZmF0YWwoXygiY2Fubm90IHN0YXQgZGV2aWNlICVzIiksIGRldmljZSk7CisJfQorCisJaWYgKCFTX0lTQkxLKHN0YXRidWYuc3RfbW9kZSkpCisJCWZhdGFsKF8oIiVzIGlzIG5vdCBhIGJsb2NrIHNwZWNpYWwgZGV2aWNlIiksIGRldmljZSk7CisKKwlmZCA9IG9wZW4oZGV2aWNlLCBPX1JEV1IgfCBPX0VYQ0wpOworCWlmIChmZCA9PSAtMSkgeworCQlwZXJyb3IoZGV2aWNlKTsKKwkJZmF0YWwoXygiY2Fubm90IG9wZW4gJXMiKSwgZGV2aWNlKTsKKwl9CisKKwlpZiAob3B0aW5kID09IGFyZ2MtMSkKKwkJdXNlcl9zcGVjaWZpZWRfdG90YWxfYmxvY2tzID0gYXRvbGwoYXJndltvcHRpbmRdKTsKKwllbHNlIGlmIChvcHRpbmQgIT0gYXJnYykKKwkJdXNhZ2UoKTsKKworCWlmIChibGtkZXZfZ2V0X3NlY3RvcnMoZmQsICZ0b3RhbF9ibG9ja3MpID09IC0xKSB7CisJCWlmICghdXNlcl9zcGVjaWZpZWRfdG90YWxfYmxvY2tzKSB7CisJCQlwZXJyb3IoImJsa2Rldl9nZXRfc2VjdG9ycyIpOworCQkJZmF0YWwoXygiY2Fubm90IGdldCBzaXplIG9mICVzIiksIGRldmljZSk7CisJCX0KKwkJdG90YWxfYmxvY2tzID0gdXNlcl9zcGVjaWZpZWRfdG90YWxfYmxvY2tzOworCX0gZWxzZSBpZiAodXNlcl9zcGVjaWZpZWRfdG90YWxfYmxvY2tzKSB7CisJCWlmICh1c2VyX3NwZWNpZmllZF90b3RhbF9ibG9ja3MgPiB0b3RhbF9ibG9ja3MpCisJCQlmYXRhbChfKCJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIpLAorCQkJICAgICAgdG90YWxfYmxvY2tzKTsKKwkJdG90YWxfYmxvY2tzID0gdXNlcl9zcGVjaWZpZWRfdG90YWxfYmxvY2tzOworCX0KKworCWlmICghaW5vZGVzKSB7CisJCS8qIHBpY2sgc29tZSByZWFzb25hYmxlIGRlZmF1bHQgKi8KKwkJaW5vZGVzID0gOCoodG90YWxfYmxvY2tzLzgwMCk7CisJCWlmIChpbm9kZXMgPCA0OCkKKwkJCWlub2RlcyA9IDQ4OworCQlpZiAoaW5vZGVzID4gNTEyKQorCQkJaW5vZGVzID0gNTEyOworCX0gZWxzZSB7CisJCS8qIGJlbGlldmUgdGhlIHVzZXIgKi8KKwkJaWYgKGlub2RlcyA+IDUxMikKKwkJCWZhdGFsKF8oInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiKSk7CisJfQorCisJaW5vX2J5dGVzID0gaW5vZGVzICogc2l6ZW9mKHN0cnVjdCBiZnNpKTsKKwlpbm9fYmxvY2tzID0gKGlub19ieXRlcyArIEJGU19CTE9DS1NJWkUgLSAxKSAvIEJGU19CTE9DS1NJWkU7CisJZGF0YV9ibG9ja3MgPSB0b3RhbF9ibG9ja3MgLSBpbm9fYmxvY2tzIC0gMTsKKworCS8qIG1pbWljIHRoZSBiZWhhdmlvdXIgb2YgU0NPJ3MgbWtmcyAtIG1heWJlIHRoaXMgbGltaXQgaXMgbmVlZGVkICovCisJaWYgKGRhdGFfYmxvY2tzIDwgMzIpCisJCWZhdGFsKF8oIm5vdCBlbm91Z2ggc3BhY2UsIG5lZWQgYXQgbGVhc3QgJWxsdSBibG9ja3MiKSwKKwkJICAgICAgaW5vX2Jsb2NrcyArIDMzKTsKKworCW1lbXNldCgmc2IsIDAsIHNpemVvZihzYikpOworCXNiLnNfbWFnaWMgPSBCRlNfU1VQRVJfTUFHSUM7CisJc2Iuc19zdGFydCA9IGlub19ieXRlcyArIHNpemVvZihzdHJ1Y3QgYmZzc2IpOworCXNiLnNfZW5kID0gdG90YWxfYmxvY2tzICogQkZTX0JMT0NLU0laRSAtIDE7CisJc2Iuc19mcm9tID0gc2Iuc190byA9IHNiLnNfYmFja3VwX2Zyb20gPSBzYi5zX2JhY2t1cF90byA9IC0xOworCW1lbWNweShzYi5zX2ZzbmFtZSwgZnNuYW1lLCA2KTsKKwltZW1jcHkoc2Iuc192b2x1bWUsIHZvbHVtZSwgNik7CisKKwlpZiAodmVyYm9zZSkgeworCQlmcHJpbnRmKHN0ZGVyciwgXygiRGV2aWNlOiAlc1xuIiksIGRldmljZSk7CisJCWZwcmludGYoc3RkZXJyLCBfKCJWb2x1bWU6IDwlLTZzPlxuIiksIHZvbHVtZSk7CisJCWZwcmludGYoc3RkZXJyLCBfKCJGU25hbWU6IDwlLTZzPlxuIiksIGZzbmFtZSk7CisJCWZwcmludGYoc3RkZXJyLCBfKCJCbG9ja1NpemU6ICVkXG4iKSwgQkZTX0JMT0NLU0laRSk7CisJCWlmIChpbm9fYmxvY2tzPT0xKQorCQkJZnByaW50ZihzdGRlcnIsIF8oIklub2RlczogJWQgKGluIDEgYmxvY2spXG4iKSwKKwkJCQlpbm9kZXMpOworCQllbHNlCisJCQlmcHJpbnRmKHN0ZGVyciwgXygiSW5vZGVzOiAlZCAoaW4gJWxsZCBibG9ja3MpXG4iKSwKKwkJCQlpbm9kZXMsIGlub19ibG9ja3MpOworCQlmcHJpbnRmKHN0ZGVyciwgXygiQmxvY2tzOiAlbGxkXG4iKSwgdG90YWxfYmxvY2tzKTsKKwkJZnByaW50ZihzdGRlcnIsIF8oIklub2RlIGVuZDogJWQsIERhdGEgZW5kOiAlZFxuIiksCisJCQlzYi5zX3N0YXJ0LTEsIHNiLnNfZW5kKTsKKwl9CisKKwlpZiAod3JpdGUoZmQsICZzYiwgc2l6ZW9mKHNiKSkgIT0gc2l6ZW9mKHNiKSkKKwkJZmF0YWwoXygiZXJyb3Igd3JpdGluZyBzdXBlcmJsb2NrIikpOworCisJbWVtc2V0KCZyaSwgMCwgc2l6ZW9mKHJpKSk7CisJcmkuaV9pbm8gPSBCRlNfUk9PVF9JTk87CisJcmkuaV9maXJzdF9ibG9jayA9IDEgKyBpbm9fYmxvY2tzOworCXJpLmlfbGFzdF9ibG9jayA9IHJpLmlfZmlyc3RfYmxvY2sgKworCQkoaW5vZGVzICogc2l6ZW9mKGRlKSAtIDEpIC8gQkZTX0JMT0NLU0laRTsKKwlyaS5pX2J5dGVzX3RvX2VuZCA9IHJpLmlfZmlyc3RfYmxvY2sgKiBCRlNfQkxPQ0tTSVpFCisJCSsgMiAqIHNpemVvZihzdHJ1Y3QgYmZzZGUpIC0gMTsKKwlyaS5pX3R5cGUgPSBCRlNfRElSX1RZUEU7CisJcmkuaV9tb2RlID0gU19JRkRJUiB8IDA3NTU7IAkvKiBvciBqdXN0IDA3NTUgKi8KKwlyaS5pX3VpZCA9IDA7CisJcmkuaV9naWQgPSAxOwkJCS8qIHJhbmRvbSAqLworCXJpLmlfbmxpbmtzID0gMjsKKwl0aW1lKCZub3cpOworCXJpLmlfYXRpbWUgPSBub3c7CisJcmkuaV9tdGltZSA9IG5vdzsKKwlyaS5pX2N0aW1lID0gbm93OworCisJaWYgKHdyaXRlKGZkLCAmcmksIHNpemVvZihyaSkpICE9IHNpemVvZihyaSkpCisJCWZhdGFsKF8oImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIpKTsKKworCW1lbXNldCgmcmksIDAsIHNpemVvZihyaSkpOworCWZvciAoaT0xOyBpPGlub2RlczsgaSsrKQorCQlpZiAod3JpdGUoZmQsICZyaSwgc2l6ZW9mKHJpKSkgIT0gc2l6ZW9mKHJpKSkKKwkJCWZhdGFsKF8oImVycm9yIHdyaXRpbmcgaW5vZGUiKSk7CisKKwlpZiAobHNlZWsoZmQsICgxICsgaW5vX2Jsb2NrcykqQkZTX0JMT0NLU0laRSwgU0VFS19TRVQpID09IC0xKQorCQlmYXRhbChfKCJzZWVrIGVycm9yIikpOworCisJbWVtc2V0KCZkZSwgMCwgc2l6ZW9mKGRlKSk7CisJZGUuZF9pbm8gPSBCRlNfUk9PVF9JTk87CisJbWVtY3B5KGRlLmRfbmFtZSwgIi4iLCAxKTsKKwlpZiAod3JpdGUoZmQsICZkZSwgc2l6ZW9mKGRlKSkgIT0gc2l6ZW9mKGRlKSkKKwkJZmF0YWwoXygiZXJyb3Igd3JpdGluZyAuIGVudHJ5IikpOworCisJbWVtY3B5KGRlLmRfbmFtZSwgIi4uIiwgMik7CisJaWYgKHdyaXRlKGZkLCAmZGUsIHNpemVvZihkZSkpICE9IHNpemVvZihkZSkpCisJCWZhdGFsKF8oImVycm9yIHdyaXRpbmcgLi4gZW50cnkiKSk7CisKKwlpZiAoY2xvc2UoZmQpID09IC0xKSB7CisJCXBlcnJvcihkZXZpY2UpOworCQlmYXRhbChfKCJlcnJvciBjbG9zaW5nICVzIiksIGRldmljZSk7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rZnMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMGRhMDYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rZnMuYwpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIG1rZnMJCUEgc2ltcGxlIGdlbmVyaWMgZnJvbnRlbmQgZm9yIHRoZSBmb3IgdGhlIG1rZnMgcHJvZ3JhbQorICoJCXVuZGVyIExpbnV4LiAgU2VlIHRoZSBtYW51YWwgcGFnZSBmb3IgZGV0YWlscy4KKyAqCisgKiBVc2FnZToJbWtmcyBbLVZdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBkZXZpY2UgW3NpemVdCisgKgorICogQXV0aG9yczoJRGF2aWQgRW5nZWwsIDxkYXZpZEBvZHMuY29tPgorICoJCUZyZWQgTi4gdmFuIEtlbXBlbiwgPHdhbHRqZUB1V2FsdC5OTC5NdWduZXQuT1JHPgorICoJCVJvbiBTb21tZWxpbmcsIDxzb21tZWxAc2NpLmt1bi5ubD4KKyAqCisgKiBNb24gSnVsICAxIDE4OjUyOjU4IDE5OTY6IGphbmxAbWF0aC51aW8ubm8gKE5pY29sYWkgTGFuZ2ZlbGR0KToKKyAqCUluY29ycG9yYXRlZCBmaXggYnkgSm9uYXRoYW4gS2FtZW5zIDxqaWtAYW5uZXgtMS1zbGlwLWppay5jYW0ub3YuY29tPgorICogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgKiAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisgKgkKKyAqLworCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG5scy5oPgorCisjaWZuZGVmIERFRkFVTFRfRlNUWVBFCisjIGRlZmluZSBERUZBVUxUX0ZTVFlQRQkJImV4dDIiCisjZW5kaWYKKworI2RlZmluZSBTRUFSQ0hfUEFUSAkiUEFUSD0vc2Jpbjovc2Jpbi9mczovc2Jpbi9mcy5kOi9ldGMvZnM6L2V0YyIKKyNkZWZpbmUgUFJPR05BTUUJIm1rZnMuJXMiCisKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgY2hhciAqcHJvZ25hbWU7CS8qIG5hbWUgb2YgZXhlY3V0YWJsZSB0byBiZSBjYWxsZWQgKi8KKyAgY2hhciAqZnN0eXBlID0gTlVMTDsKKyAgaW50IGksIG1vcmUgPSAwLCB2ZXJib3NlID0gMDsKKyAgY2hhciAqb2xkcGF0aCwgKm5ld3BhdGg7CisgIGNoYXIgKnByb2dyYW1fbmFtZSwgKnA7CisKKyAgcHJvZ3JhbV9uYW1lID0gYXJndlswXTsKKyAgaWYgKChwID0gc3RycmNocihwcm9ncmFtX25hbWUsICcvJykpICE9IE5VTEwpCisJICBwcm9ncmFtX25hbWUgPSBwKzE7CisKKyAgc2V0bG9jYWxlKExDX0FMTCwgIiIpOworICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICB0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisgIGlmIChhcmdjID09IDIgJiYKKyAgICAgICghc3RyY21wKGFyZ3ZbMV0sICItViIpIHx8ICFzdHJjbXAoYXJndlsxXSwgIi0tdmVyc2lvbiIpKSkgeworCSAgcHJpbnRmKF8oIiVzICglcylcbiIpLCBwcm9ncmFtX25hbWUsIFBBQ0tBR0VfU1RSSU5HKTsKKwkgIGV4aXQoMCk7CisgIH0KKworICAvKiBDaGVjayBjb21tYW5kbGluZSBvcHRpb25zLiAqLworICBvcHRlcnIgPSAwOworICB3aGlsZSAoKG1vcmUgPT0gMCkgJiYgKChpID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJWdDoiKSkgIT0gLTEpKQorICAgIHN3aXRjaCAoaSkgeworICAgIGNhc2UgJ1YnOgorICAgICAgdmVyYm9zZSsrOworICAgICAgYnJlYWs7CisgICAgY2FzZSAndCc6CisgICAgICBmc3R5cGUgPSBvcHRhcmc7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgb3B0aW5kLS07CisgICAgICBtb3JlID0gMTsKKyAgICAgIGJyZWFrOwkJLyogc3RhcnQgb2Ygc3BlY2lmaWMgYXJndW1lbnRzICovCisgICAgfQorICBpZiAob3B0aW5kID09IGFyZ2MpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgIF8oIlVzYWdlOiBta2ZzIFstVl0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIGRldmljZSBbc2l6ZV1cbiIpKTsKKyAgICByZXR1cm4gLTE7CisgIH0KKyAgCisgIC8qIElmIC10IHdhc24ndCBzcGVjaWZpZWQsIHVzZSB0aGUgZGVmYXVsdCAqLworICBpZiAoZnN0eXBlID09IE5VTEwpCisgICAgZnN0eXBlID0gREVGQVVMVF9GU1RZUEU7CisKKyAgLyogU2V0IFBBVEggYW5kIHByb2dyYW0gbmFtZSAqLworICBvbGRwYXRoID0gZ2V0ZW52KCJQQVRIIik7CisgIGlmICghb2xkcGF0aCkKKwkgIG9sZHBhdGggPSAiL2JpbiI7CisKKyAgbmV3cGF0aCA9IChjaGFyICopIG1hbGxvYyhzdHJsZW4ob2xkcGF0aCkgKyBzaXplb2YoU0VBUkNIX1BBVEgpICsgMyk7CisgIGlmICghbmV3cGF0aCkgeworICAgIGZwcmludGYoc3RkZXJyLCBfKCIlczogT3V0IG9mIG1lbW9yeSFcbiIpLCAibWtmcyIpOworICAgIGV4aXQoMSk7CisgIH0KKyAgc3ByaW50ZihuZXdwYXRoLCAiJXM6JXNcbiIsIFNFQVJDSF9QQVRILCBvbGRwYXRoKTsKKyAgcHV0ZW52KG5ld3BhdGgpOworCisgIHByb2duYW1lID0gKGNoYXIgKikgbWFsbG9jKHNpemVvZihQUk9HTkFNRSkgKyBzdHJsZW4oZnN0eXBlKSArIDEpOworICBpZiAoIXByb2duYW1lKSB7CisgICAgZnByaW50ZihzdGRlcnIsIF8oIiVzOiBPdXQgb2YgbWVtb3J5IVxuIiksICJta2ZzIik7CisgICAgZXhpdCgxKTsKKyAgfQorICBzcHJpbnRmKHByb2duYW1lLCBQUk9HTkFNRSwgZnN0eXBlKTsKKyAgYXJndlstLW9wdGluZF0gPSBwcm9nbmFtZTsKKworICBpZiAodmVyYm9zZSkgeworICAgIHByaW50ZihfKCJta2ZzICglcylcbiIpLCBQQUNLQUdFX1NUUklORyk7CisgICAgaSA9IG9wdGluZDsKKyAgICB3aGlsZSAoYXJndltpXSkKKyAgICAgIHByaW50ZigiJXMgIiwgYXJndltpKytdKTsKKyAgICBwcmludGYoIlxuIik7CisgICAgaWYgKHZlcmJvc2UgPiAxKQorICAgICAgcmV0dXJuIDA7CisgIH0KKworICAvKiBFeGVjdXRlIHRoZSBwcm9ncmFtICovCisgIGV4ZWN2cChwcm9nbmFtZSwgYXJnditvcHRpbmQpOworICBwZXJyb3IocHJvZ25hbWUpOworICByZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtmcy5jcmFtZnMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtmcy5jcmFtZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmZhOTA4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jCkBAIC0wLDAgKzEsOTc1IEBACisvKgorICogbWtjcmFtZnMgLSBtYWtlIGEgY3JhbWZzIGZpbGUgc3lzdGVtCisgKgorICogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDIgVHJhbnNtZXRhIENvcnBvcmF0aW9uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKy8qCisgKiBPbGQgdmVyc2lvbiB3b3VsZCBkaWUgb24gbGFyZ2lzaCBmaWxlc3lzdGVtcy4gQ2hhbmdlIHRvIG1tYXAgdGhlCisgKiBmaWxlcyBvbmUgYnkgb25lIGluc3RhZWQgb2YgYWxsIHNpbXVsdGFuZW91c2x5LiAtIGFlYiwgMjAwMi0xMS0wMQorICovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGRpcmVudC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8emxpYi5oPgorCisjaW5jbHVkZSAiY3JhbWZzLmgiCisjaW5jbHVkZSAiY3JhbWZzX2NvbW1vbi5oIgorI2luY2x1ZGUgIm1kNS5oIgorI2luY2x1ZGUgIm5scy5oIgorCisvKiBFeGl0IGNvZGVzIHVzZWQgYnkgbWtmcy10eXBlIHByb2dyYW1zICovCisjZGVmaW5lIE1LRlNfT0sgICAgICAgICAgMCAgICAgLyogTm8gZXJyb3JzICovCisjZGVmaW5lIE1LRlNfRVJST1IgICAgICAgOCAgICAgLyogT3BlcmF0aW9uYWwgZXJyb3IgKi8KKyNkZWZpbmUgTUtGU19VU0FHRSAgICAgICAxNiAgICAvKiBVc2FnZSBvciBzeW50YXggZXJyb3IgKi8KKworLyogVGhlIGtlcm5lbCBvbmx5IHN1cHBvcnRzIFBBRF9TSVpFIG9mIDAgYW5kIDUxMi4gKi8KKyNkZWZpbmUgUEFEX1NJWkUgNTEyCisKK3N0YXRpYyBjb25zdCBjaGFyICpwcm9nbmFtZSA9ICJta2NyYW1mcyI7CitzdGF0aWMgaW50IHZlcmJvc2UgPSAwOworCitzdGF0aWMgdW5zaWduZWQgaW50IGJsa3NpemU7IC8qIHNldHRhYmxlIHZpYSAtYiBvcHRpb24gKi8KK3N0YXRpYyBsb25nIHRvdGFsX2Jsb2NrcyA9IDAsIHRvdGFsX25vZGVzID0gMTsgLyogcHJlLWNvdW50IHRoZSByb290IG5vZGUgKi8KK3N0YXRpYyBpbnQgaW1hZ2VfbGVuZ3RoID0gMDsKK3N0YXRpYyBpbnQgY3JhbWZzX2lzX2JpZ19lbmRpYW4gPSAwOyAvKiB0YXJnZXQgaXMgYmlnIGVuZGlhbiAqLworCisvKgorICogSWYgb3B0X2hvbGVzIGlzIHNldCwgdGhlbiBta2NyYW1mcyBjYW4gY3JlYXRlIGV4cGxpY2l0IGhvbGVzIGluIHRoZQorICogZGF0YSwgd2hpY2ggc2F2ZXMgMjYgYnl0ZXMgcGVyIGhvbGUgKHdoaWNoIGlzIGEgbG90IHNtYWxsZXIgYQorICogc2F2aW5nIHRoYW4gZm9yIG1vc3QgZmlsZXN5c3RlbXMpLgorICoKKyAqIE5vdGUgdGhhdCBrZXJuZWxzIHVwIHRvIGF0IGxlYXN0IDIuMy4zOSBkb24ndCBzdXBwb3J0IGNyYW1mcyBob2xlcywKKyAqIHdoaWNoIGlzIHdoeSB0aGlzIGlzIHR1cm5lZCBvZmYgYnkgZGVmYXVsdC4KKyAqLworc3RhdGljIGludCBvcHRfZWRpdGlvbiA9IDA7CitzdGF0aWMgaW50IG9wdF9lcnJvcnMgPSAwOworc3RhdGljIGludCBvcHRfaG9sZXMgPSAwOworc3RhdGljIGludCBvcHRfcGFkID0gMDsKK3N0YXRpYyBjaGFyICpvcHRfaW1hZ2UgPSBOVUxMOworc3RhdGljIGNoYXIgKm9wdF9uYW1lID0gTlVMTDsKKworc3RhdGljIGludCB3YXJuX2RldiA9IDA7CitzdGF0aWMgaW50IHdhcm5fZ2lkID0gMDsKK3N0YXRpYyBpbnQgd2Fybl9uYW1lbGVuID0gMDsKK3N0YXRpYyBpbnQgd2Fybl9za2lwID0gMDsKK3N0YXRpYyBpbnQgd2Fybl9zaXplID0gMDsKK3N0YXRpYyBpbnQgd2Fybl91aWQgPSAwOworCisjaWZuZGVmIE1JTgorIyBkZWZpbmUgTUlOKF9hLF9iKSAoKF9hKSA8IChfYikgPyAoX2EpIDogKF9iKSkKKyNlbmRpZgorCisvKiBlbnRyeS5mbGFncyAqLworI2RlZmluZSBDUkFNRlNfRUZMQUdfTUQ1CTEKKyNkZWZpbmUgQ1JBTUZTX0VGTEFHX0lOVkFMSUQJMgorCisvKiBJbi1jb3JlIHZlcnNpb24gb2YgaW5vZGUgLyBkaXJlY3RvcnkgZW50cnkuICovCitzdHJ1Y3QgZW50cnkgeworCS8qIHN0YXRzICovCisJdW5zaWduZWQgY2hhciAqbmFtZTsKKwl1bnNpZ25lZCBpbnQgbW9kZSwgc2l6ZSwgdWlkLCBnaWQ7CisJdW5zaWduZWQgY2hhciBtZDVzdW1bMTZdOworCXVuc2lnbmVkIGNoYXIgZmxhZ3M7CSAgIC8qIENSQU1GU19FRkxBR18qICovCisKKwkvKiBGUyBkYXRhICovCisJY2hhciAqcGF0aDsKKwlpbnQgZmQ7CQkJICAgIC8qIHRlbXBvcmFyaWx5IG9wZW4gZmlsZXMgd2hpbGUgbW1hcHBlZCAqLworICAgICAgICBzdHJ1Y3QgZW50cnkgKnNhbWU7CSAgICAvKiBwb2ludHMgdG8gb3RoZXIgaWRlbnRpY2FsIGZpbGUgKi8KKyAgICAgICAgdW5zaWduZWQgaW50IG9mZnNldDsgICAgICAgIC8qIHBvaW50ZXIgdG8gY29tcHJlc3NlZCBkYXRhIGluIGFyY2hpdmUgKi8KKwl1bnNpZ25lZCBpbnQgZGlyX29mZnNldDsgICAgLyogb2Zmc2V0IG9mIGRpcmVjdG9yeSBlbnRyeSBpbiBhcmNoaXZlICovCisKKwkvKiBvcmdhbml6YXRpb24gKi8KKwlzdHJ1Y3QgZW50cnkgKmNoaWxkOwkgICAgLyogTlVMTCBmb3Igbm9uLWRpcmVjdG9yeSBhbmQgZW1wdHkgZGlyICovCisJc3RydWN0IGVudHJ5ICpuZXh0OworfTsKKworLyoKKyAqIFdpZHRoIG9mIHZhcmlvdXMgYml0ZmllbGRzIGluIHN0cnVjdCBjcmFtZnNfaW5vZGUuCisgKiBVc2VkIG9ubHkgdG8gZ2VuZXJhdGUgd2FybmluZ3MuCisgKi8KKyNkZWZpbmUgQ1JBTUZTX1NJWkVfV0lEVEggMjQKKyNkZWZpbmUgQ1JBTUZTX1VJRF9XSURUSCAxNgorI2RlZmluZSBDUkFNRlNfR0lEX1dJRFRIIDgKKyNkZWZpbmUgQ1JBTUZTX09GRlNFVF9XSURUSCAyNgorCisvKiBJbnB1dCBzdGF0dXMgb2YgMCB0byBwcmludCBoZWxwIGFuZCBleGl0IHdpdGhvdXQgYW4gZXJyb3IuICovCitzdGF0aWMgdm9pZAordXNhZ2UoaW50IHN0YXR1cykgeworCUZJTEUgKnN0cmVhbSA9IHN0YXR1cyA/IHN0ZGVyciA6IHN0ZG91dDsKKworCWZwcmludGYoc3RyZWFtLAorCQlfKCJ1c2FnZTogJXMgWy1oXSBbLXZdIFstYiBibGtzaXplXSBbLWUgZWRpdGlvbl0gWy1OIGVuZGlhbl0gWy1pIGZpbGVdICIKKwkJICAiWy1uIG5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorCQkgICIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKwkJICAiIC12ICAgICAgICAgYmUgdmVyYm9zZVxuIgorCQkgICIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgIgorCQkgICAgIihub24temVybyBleGl0IHN0YXR1cylcbiIKKwkJICAiIC1iIGJsa3NpemUgdXNlIHRoaXMgYmxvY2tzaXplLCBtdXN0IGVxdWFsIHBhZ2Ugc2l6ZVxuIgorCQkgICIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKwkJICAiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKwkJICAiIC1pIGZpbGUgICAgaW5zZXJ0IGEgZmlsZSBpbWFnZSBpbnRvIHRoZSBmaWxlc3lzdGVtICIKKwkJICAgICIocmVxdWlyZXMgPj0gMi40LjApXG4iCisJCSAgIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisJCSAgIiAtcCAgICAgICAgIHBhZCBieSAlZCBieXRlcyBmb3IgYm9vdCBjb2RlXG4iCisJCSAgIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisJCSAgIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKwkJICAiIGRpcm5hbWUgICAgcm9vdCBvZiB0aGUgZmlsZXN5c3RlbSB0byBiZSBjb21wcmVzc2VkXG4iCisJCSAgIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iKSwKKwkJcHJvZ25hbWUsIFBBRF9TSVpFKTsKKworCWV4aXQoc3RhdHVzKTsKK30KKworLyogbWFsbG9jIG9yIGRpZSAqLworc3RhdGljIHZvaWQgKgoreG1hbGxvYyAoc2l6ZV90IHNpemUpIHsKKwl2b2lkICp0ID0gbWFsbG9jKHNpemUpOworCWlmICh0ID09IE5VTEwpIHsKKwkJcGVycm9yKE5VTEwpOworCQlleGl0KDgpOwkvKiBvdXQgb2YgbWVtb3J5ICovCisJfQorCXJldHVybiB0OworfQorCitzdGF0aWMgY2hhciAqCitkb19tbWFwKGNoYXIgKnBhdGgsIHVuc2lnbmVkIGludCBzaXplLCB1bnNpZ25lZCBpbnQgbW9kZSl7CisJaW50IGZkOworCWNoYXIgKnN0YXJ0OworCisJaWYgKCFzaXplKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChTX0lTTE5LKG1vZGUpKSB7CisJCXN0YXJ0ID0geG1hbGxvYyhzaXplKTsKKwkJaWYgKHJlYWRsaW5rKHBhdGgsIHN0YXJ0LCBzaXplKSA8IDApIHsKKwkJCXBlcnJvcihwYXRoKTsKKwkJCXdhcm5fc2tpcCA9IDE7CisJCQlzdGFydCA9IE5VTEw7CisJCX0KKwkJcmV0dXJuIHN0YXJ0OworCX0KKworCWZkID0gb3BlbihwYXRoLCBPX1JET05MWSk7CisJaWYgKGZkIDwgMCkgeworCQlwZXJyb3IocGF0aCk7CisJCXdhcm5fc2tpcCA9IDE7CisJCXJldHVybiBOVUxMOworCX0KKworCXN0YXJ0ID0gbW1hcChOVUxMLCBzaXplLCBQUk9UX1JFQUQsIE1BUF9QUklWQVRFLCBmZCwgMCk7CisJaWYgKC0xID09IChpbnQpIChsb25nKSBzdGFydCkgeworCQlwZXJyb3IoIm1tYXAiKTsKKwkJZXhpdCg4KTsKKwl9CisJY2xvc2UoZmQpOworCisJcmV0dXJuIHN0YXJ0OworfQorCitzdGF0aWMgdm9pZAorZG9fbXVubWFwKGNoYXIgKnN0YXJ0LCB1bnNpZ25lZCBpbnQgc2l6ZSwgdW5zaWduZWQgaW50IG1vZGUpeworCWlmIChTX0lTTE5LKG1vZGUpKQorCQlmcmVlKHN0YXJ0KTsKKwllbHNlCisJCW11bm1hcChzdGFydCwgc2l6ZSk7Cit9CisKKy8qIGNvbXB1dGUgbWQ1c3Vtcywgc28gdGhhdCB3ZSBkbyBub3QgaGF2ZSB0byBjb21wYXJlIGV2ZXJ5IHBhaXIgb2YgZmlsZXMgKi8KK3N0YXRpYyB2b2lkCittZGZpbGUoc3RydWN0IGVudHJ5ICplKSB7CisJTUQ1X0NUWCBjdHg7CisJY2hhciAqc3RhcnQ7CisKKwlzdGFydCA9IGRvX21tYXAoZS0+cGF0aCwgZS0+c2l6ZSwgZS0+bW9kZSk7CisJaWYgKHN0YXJ0ID09IE5VTEwpIHsKKwkJZS0+ZmxhZ3MgfD0gQ1JBTUZTX0VGTEFHX0lOVkFMSUQ7CisJfSBlbHNlIHsKKwkJTUQ1SW5pdCgmY3R4KTsKKwkJTUQ1VXBkYXRlKCZjdHgsICh1bnNpZ25lZCBjaGFyICopIHN0YXJ0LCBlLT5zaXplKTsKKwkJTUQ1RmluYWwoZS0+bWQ1c3VtLCAmY3R4KTsKKworCQlkb19tdW5tYXAoc3RhcnQsIGUtPnNpemUsIGUtPm1vZGUpOworCisJCWUtPmZsYWdzIHw9IENSQU1GU19FRkxBR19NRDU7CisJfQorfQorCisvKiBtZDUgZGlnZXN0cyBhcmUgZXF1YWw7IGZpbGVzIGFyZSBhbG1vc3QgY2VydGFpbmx5IHRoZSBzYW1lLAorICAgYnV0IGp1c3QgdG8gYmUgc3VyZSwgZG8gdGhlIGNvbXBhcmlzb24gKi8KK3N0YXRpYyBpbnQKK2lkZW50aWNhbF9maWxlKHN0cnVjdCBlbnRyeSAqZTEsIHN0cnVjdCBlbnRyeSAqZTIpeworCWNoYXIgKnN0YXJ0MSwgKnN0YXJ0MjsKKwlpbnQgZXF1YWw7CisKKwlzdGFydDEgPSBkb19tbWFwKGUxLT5wYXRoLCBlMS0+c2l6ZSwgZTEtPm1vZGUpOworCWlmICghc3RhcnQxKQorCQlyZXR1cm4gMDsKKwlzdGFydDIgPSBkb19tbWFwKGUyLT5wYXRoLCBlMi0+c2l6ZSwgZTItPm1vZGUpOworCWlmICghc3RhcnQyKQorCQlyZXR1cm4gMDsKKwllcXVhbCA9ICFtZW1jbXAoc3RhcnQxLCBzdGFydDIsIGUxLT5zaXplKTsKKwlkb19tdW5tYXAoc3RhcnQxLCBlMS0+c2l6ZSwgZTEtPm1vZGUpOworCWRvX211bm1hcChzdGFydDIsIGUyLT5zaXplLCBlMi0+bW9kZSk7CisJcmV0dXJuIGVxdWFsOworfQorCisvKgorICogVGhlIGxvbmdlc3QgZmlsZSBuYW1lIGNvbXBvbmVudCB0byBhbGxvdyBmb3IgaW4gdGhlIGlucHV0IGRpcmVjdG9yeSB0cmVlLgorICogRXh0MmZzIChhbmQgbWFueSBvdGhlcnMpIGFsbG93IHVwIHRvIDI1NSBieXRlcy4gIEEgY291cGxlIG9mIGZpbGVzeXN0ZW1zCisgKiBhbGxvdyBsb25nZXIgKGUuZy4gc21iZnMgMTAyNCksIGJ1dCB0aGVyZSBpc24ndCBtdWNoIHVzZSBpbiBzdXBwb3J0aW5nCisgKiA+MjU1LWJ5dGUgbmFtZXMgaW4gdGhlIGlucHV0IGRpcmVjdG9yeSB0cmVlIGdpdmVuIHRoYXQgc3VjaCBuYW1lcyBnZXQKKyAqIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMgd2hlbiB3cml0dGVuIHRvIGNyYW1mcy4KKyAqLworI2RlZmluZSBNQVhfSU5QVVRfTkFNRUxFTiAyNTUKKworc3RhdGljIGludCBmaW5kX2lkZW50aWNhbF9maWxlKHN0cnVjdCBlbnRyeSAqb3JpZywgc3RydWN0IGVudHJ5ICpuZXcsIGxvZmZfdCAqZnNsZW5fdWIpCit7CisgICAgICAgIGlmIChvcmlnID09IG5ldykKKwkJcmV0dXJuIDE7CisgICAgICAgIGlmICghb3JpZykKKwkJcmV0dXJuIDA7CisgICAgICAgIGlmIChvcmlnLT5zaXplID09IG5ldy0+c2l6ZSAmJiBvcmlnLT5wYXRoKSB7CisJCWlmICghb3JpZy0+ZmxhZ3MpCisJCQltZGZpbGUob3JpZyk7CisJCWlmICghbmV3LT5mbGFncykKKwkJCW1kZmlsZShuZXcpOworCisJCWlmICgob3JpZy0+ZmxhZ3MgJiBDUkFNRlNfRUZMQUdfTUQ1KSAmJgorCQkgICAgKG5ldy0+ZmxhZ3MgJiBDUkFNRlNfRUZMQUdfTUQ1KSAmJgorCQkgICAgIW1lbWNtcChvcmlnLT5tZDVzdW0sIG5ldy0+bWQ1c3VtLCAxNikgJiYKKwkJICAgIGlkZW50aWNhbF9maWxlKG9yaWcsIG5ldykpIHsKKwkJCW5ldy0+c2FtZSA9IG9yaWc7CisJCQkqZnNsZW5fdWIgLT0gbmV3LT5zaXplOworCQkJcmV0dXJuIDE7CisJCX0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmluZF9pZGVudGljYWxfZmlsZShvcmlnLT5jaGlsZCwgbmV3LCBmc2xlbl91YikgfHwKKyAgICAgICAgICAgICAgICAgICBmaW5kX2lkZW50aWNhbF9maWxlKG9yaWctPm5leHQsIG5ldywgZnNsZW5fdWIpOworfQorCitzdGF0aWMgdm9pZCBlbGltaW5hdGVfZG91YmxlcyhzdHJ1Y3QgZW50cnkgKnJvb3QsIHN0cnVjdCBlbnRyeSAqb3JpZywgbG9mZl90ICpmc2xlbl91YikgeworICAgICAgICBpZiAob3JpZykgeworICAgICAgICAgICAgICAgIGlmIChvcmlnLT5zaXplICYmIG9yaWctPnBhdGgpCisJCQlmaW5kX2lkZW50aWNhbF9maWxlKHJvb3Qsb3JpZywgZnNsZW5fdWIpOworICAgICAgICAgICAgICAgIGVsaW1pbmF0ZV9kb3VibGVzKHJvb3Qsb3JpZy0+Y2hpbGQsIGZzbGVuX3ViKTsKKyAgICAgICAgICAgICAgICBlbGltaW5hdGVfZG91Ymxlcyhyb290LG9yaWctPm5leHQsIGZzbGVuX3ViKTsKKyAgICAgICAgfQorfQorCisvKgorICogV2UgZGVmaW5lIG91ciBvd24gc29ydGluZyBmdW5jdGlvbiBpbnN0ZWFkIG9mIHVzaW5nIGFscGhhc29ydCB3aGljaAorICogdXNlcyBzdHJjb2xsIGFuZCBjaGFuZ2VzIG9yZGVyaW5nIGJhc2VkIG9uIGxvY2FsZSBpbmZvcm1hdGlvbi4KKyAqLworc3RhdGljIGludCBjcmFtc29ydCAoY29uc3Qgc3RydWN0IGRpcmVudCAqKmEsIGNvbnN0IHN0cnVjdCBkaXJlbnQgKipiKQoreworCXJldHVybiBzdHJjbXAoKCphKS0+ZF9uYW1lLCAoKmIpLT5kX25hbWUpOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IHBhcnNlX2RpcmVjdG9yeShzdHJ1Y3QgZW50cnkgKnJvb3RfZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBlbnRyeSAqKnByZXYsIGxvZmZfdCAqZnNsZW5fdWIpCit7CisJc3RydWN0IGRpcmVudCAqKmRpcmxpc3Q7CisJaW50IHRvdGFsc2l6ZSA9IDAsIGRpcmNvdW50LCBkaXJpbmRleDsKKwljaGFyICpwYXRoLCAqZW5kcGF0aDsKKwlzaXplX3QgbGVuID0gc3RybGVuKG5hbWUpOworCisJLyogU2V0IHVwIHRoZSBwYXRoLiAqLworCS8qIFRPRE86IFJldXNlIHRoZSBwYXJlbnQncyBidWZmZXIgdG8gc2F2ZSBtZW1jcHknaW5nIGFuZCBkdXBsaWNhdGlvbi4gKi8KKwlwYXRoID0geG1hbGxvYyhsZW4gKyAxICsgTUFYX0lOUFVUX05BTUVMRU4gKyAxKTsKKwltZW1jcHkocGF0aCwgbmFtZSwgbGVuKTsKKwllbmRwYXRoID0gcGF0aCArIGxlbjsKKwkqZW5kcGF0aCA9ICcvJzsKKwllbmRwYXRoKys7CisKKyAgICAgICAgLyogcmVhZCBpbiB0aGUgZGlyZWN0b3J5IGFuZCBzb3J0ICovCisgICAgICAgIGRpcmNvdW50ID0gc2NhbmRpcihuYW1lLCAmZGlybGlzdCwgMCwgY3JhbXNvcnQpOworCisJaWYgKGRpcmNvdW50IDwgMCkgeworCQlwZXJyb3IobmFtZSk7CisJCWV4aXQoOCk7CisJfQorCisJLyogcHJvY2VzcyBkaXJlY3RvcnkgKi8KKwlmb3IgKGRpcmluZGV4ID0gMDsgZGlyaW5kZXggPCBkaXJjb3VudDsgZGlyaW5kZXgrKykgeworCQlzdHJ1Y3QgZGlyZW50ICpkaXJlbnQ7CisJCXN0cnVjdCBlbnRyeSAqZW50cnk7CisJCXN0cnVjdCBzdGF0IHN0OworCQlpbnQgc2l6ZTsKKwkJc2l6ZV90IG5hbWVsZW47CisKKwkJZGlyZW50ID0gZGlybGlzdFtkaXJpbmRleF07CisKKwkJLyogSWdub3JlICIuIiBhbmQgIi4uIiAtIHdlIHdvbid0IGJlIGFkZGluZyB0aGVtCisJCSAgIHRvIHRoZSBhcmNoaXZlICovCisJCWlmIChkaXJlbnQtPmRfbmFtZVswXSA9PSAnLicpIHsKKwkJCWlmIChkaXJlbnQtPmRfbmFtZVsxXSA9PSAnXDAnKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKGRpcmVudC0+ZF9uYW1lWzFdID09ICcuJykgeworCQkJCWlmIChkaXJlbnQtPmRfbmFtZVsyXSA9PSAnXDAnKQorCQkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCQluYW1lbGVuID0gc3RybGVuKGRpcmVudC0+ZF9uYW1lKTsKKwkJaWYgKG5hbWVsZW4gPiBNQVhfSU5QVVRfTkFNRUxFTikgeworCQkJZnByaW50ZihzdGRlcnIsCisJCQkJXygiVmVyeSBsb25nICglenUgYnl0ZXMpIGZpbGVuYW1lIGAlcycgZm91bmQuXG4iCisJCQkJICAiIFBsZWFzZSBpbmNyZWFzZSBNQVhfSU5QVVRfTkFNRUxFTiBpbiAiCisJCQkJICAibWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIpLAorCQkJCW5hbWVsZW4sIGRpcmVudC0+ZF9uYW1lKTsKKwkJCWV4aXQoOCk7CisJCX0KKwkJbWVtY3B5KGVuZHBhdGgsIGRpcmVudC0+ZF9uYW1lLCBuYW1lbGVuICsgMSk7CisKKwkJaWYgKGxzdGF0KHBhdGgsICZzdCkgPCAwKSB7CisJCQlwZXJyb3IoZW5kcGF0aCk7CisJCQl3YXJuX3NraXAgPSAxOworCQkJY29udGludWU7CisJCX0KKwkJZW50cnkgPSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBlbnRyeSkpOworCQlpZiAoIWVudHJ5KSB7CisJCQlwZXJyb3IoTlVMTCk7CisJCQlleGl0KDgpOworCQl9CisJCWVudHJ5LT5uYW1lID0gKHVuc2lnbmVkIGNoYXIgKilzdHJkdXAoZGlyZW50LT5kX25hbWUpOworCQlpZiAoIWVudHJ5LT5uYW1lKSB7CisJCQlwZXJyb3IoTlVMTCk7CisJCQlleGl0KDgpOworCQl9CisJCWlmIChuYW1lbGVuID4gMjU1KSB7CisJCQkvKiBDYW4ndCBoYXBwZW4gd2hlbiByZWFkaW5nIGZyb20gZXh0MmZzLiAqLworCisJCQkvKiBUT0RPOiB3ZSBvdWdodCB0byBhdm9pZCBjaG9wcGluZyBpbiBoYWxmCisJCQkgICBtdWx0aS1ieXRlIFVURjggY2hhcmFjdGVycy4gKi8KKwkJCWVudHJ5LT5uYW1lW25hbWVsZW4gPSAyNTVdID0gJ1wwJzsKKwkJCXdhcm5fbmFtZWxlbiA9IDE7CisJCX0KKwkJZW50cnktPm1vZGUgPSBzdC5zdF9tb2RlOworCQllbnRyeS0+c2l6ZSA9IHN0LnN0X3NpemU7CisJCWVudHJ5LT51aWQgPSBzdC5zdF91aWQ7CisJCWlmIChlbnRyeS0+dWlkID49IDEgPDwgQ1JBTUZTX1VJRF9XSURUSCkKKwkJCXdhcm5fdWlkID0gMTsKKwkJZW50cnktPmdpZCA9IHN0LnN0X2dpZDsKKwkJaWYgKGVudHJ5LT5naWQgPj0gMSA8PCBDUkFNRlNfR0lEX1dJRFRIKQorCQkJLyogVE9ETzogV2Ugb3VnaHQgdG8gcmVwbGFjZSB3aXRoIGEgZGVmYXVsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2lkIGluc3RlYWQgb2YgdHJ1bmNhdGluZzsgb3RoZXJ3aXNlIHRoZXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgc2VjdXJpdHkgcHJvYmxlbXMuICBNYXliZSBtb2RlIHNob3VsZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgJj0gfjA3MC4gIFNhbWUgZ29lcyBmb3IgdWlkIG9uY2UgTGludXgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzID4xNi1iaXQgdWlkcy4gKi8KKwkJCXdhcm5fZ2lkID0gMTsKKwkJc2l6ZSA9IHNpemVvZihzdHJ1Y3QgY3JhbWZzX2lub2RlKSArICgobmFtZWxlbiArIDMpICYgfjMpOworCQkqZnNsZW5fdWIgKz0gc2l6ZTsKKwkJaWYgKFNfSVNESVIoc3Quc3RfbW9kZSkpIHsKKwkJCWVudHJ5LT5zaXplID0gcGFyc2VfZGlyZWN0b3J5KHJvb3RfZW50cnksIHBhdGgsICZlbnRyeS0+Y2hpbGQsIGZzbGVuX3ViKTsKKwkJfSBlbHNlIGlmIChTX0lTUkVHKHN0LnN0X21vZGUpKSB7CisJCQllbnRyeS0+cGF0aCA9IHN0cmR1cChwYXRoKTsKKwkJCWlmIChlbnRyeS0+c2l6ZSkgeworCQkJCWlmIChlbnRyeS0+c2l6ZSA+PSAoMSA8PCBDUkFNRlNfU0laRV9XSURUSCkpIHsKKwkJCQkJd2Fybl9zaXplID0gMTsKKwkJCQkJZW50cnktPnNpemUgPSAoMSA8PCBDUkFNRlNfU0laRV9XSURUSCkgLSAxOworCQkJCX0KKwkJCX0KKwkJfSBlbHNlIGlmIChTX0lTTE5LKHN0LnN0X21vZGUpKSB7CisJCQllbnRyeS0+cGF0aCA9IHN0cmR1cChwYXRoKTsKKwkJfSBlbHNlIGlmIChTX0lTRklGTyhzdC5zdF9tb2RlKSB8fCBTX0lTU09DSyhzdC5zdF9tb2RlKSkgeworCQkJLyogbWF5YmUgd2Ugc2hvdWxkIHNraXAgc29ja2V0cyAqLworCQkJZW50cnktPnNpemUgPSAwOworCQl9IGVsc2UgeworCQkJZW50cnktPnNpemUgPSBzdC5zdF9yZGV2OworCQkJaWYgKGVudHJ5LT5zaXplICYgLSgxPDxDUkFNRlNfU0laRV9XSURUSCkpCisJCQkJd2Fybl9kZXYgPSAxOworCQl9CisKKwkJaWYgKFNfSVNSRUcoc3Quc3RfbW9kZSkgfHwgU19JU0xOSyhzdC5zdF9tb2RlKSkgeworCQkJaW50IGJsb2NrcyA9ICgoZW50cnktPnNpemUgLSAxKSAvIGJsa3NpemUgKyAxKTsKKworCQkJLyogYmxvY2sgcG9pbnRlcnMgJiBkYXRhIGV4cGFuc2lvbiBhbGxvd2FuY2UgKyBkYXRhICovCisJCQlpZiAoZW50cnktPnNpemUpCisJCQkJKmZzbGVuX3ViICs9ICg0KzI2KSpibG9ja3MgKyBlbnRyeS0+c2l6ZSArIDM7CisgICAgICAgICAgICAgICAgfQorCisJCS8qIExpbmsgaXQgaW50byB0aGUgbGlzdCAqLworCQkqcHJldiA9IGVudHJ5OworCQlwcmV2ID0gJmVudHJ5LT5uZXh0OworCQl0b3RhbHNpemUgKz0gc2l6ZTsKKwl9CisJZnJlZShwYXRoKTsKKwlmcmVlKGRpcmxpc3QpOwkJLyogYWxsb2NhdGVkIGJ5IHNjYW5kaXIoKSB3aXRoIG1hbGxvYygpICovCisJcmV0dXJuIHRvdGFsc2l6ZTsKK30KKworLyogUmV0dXJucyBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlciksIHdoaWNoIGluY2x1ZGVzIHRoZSByb290IGlub2RlLiAqLworc3RhdGljIHVuc2lnbmVkIGludCB3cml0ZV9zdXBlcmJsb2NrKHN0cnVjdCBlbnRyeSAqcm9vdCwgY2hhciAqYmFzZSwgaW50IHNpemUpCit7CisJc3RydWN0IGNyYW1mc19zdXBlciAqc3VwZXIgPSAoc3RydWN0IGNyYW1mc19zdXBlciAqKSBiYXNlOworCXVuc2lnbmVkIGludCBvZmZzZXQgPSBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBpbWFnZV9sZW5ndGg7CisKKwlpZiAob3B0X3BhZCkgeworCQlvZmZzZXQgKz0gb3B0X3BhZDsKKwl9CisKKwlzdXBlci0+bWFnaWMgPSBDUkFNRlNfTUFHSUM7CisJc3VwZXItPmZsYWdzID0gQ1JBTUZTX0ZMQUdfRlNJRF9WRVJTSU9OXzIgfCBDUkFNRlNfRkxBR19TT1JURURfRElSUzsKKwlpZiAob3B0X2hvbGVzKQorCQlzdXBlci0+ZmxhZ3MgfD0gQ1JBTUZTX0ZMQUdfSE9MRVM7CisJaWYgKGltYWdlX2xlbmd0aCA+IDApCisJCXN1cGVyLT5mbGFncyB8PSBDUkFNRlNfRkxBR19TSElGVEVEX1JPT1RfT0ZGU0VUOworCXN1cGVyLT5zaXplID0gc2l6ZTsKKwltZW1jcHkoc3VwZXItPnNpZ25hdHVyZSwgQ1JBTUZTX1NJR05BVFVSRSwgc2l6ZW9mKHN1cGVyLT5zaWduYXR1cmUpKTsKKworCXN1cGVyLT5mc2lkLmNyYyA9IGNyYzMyKDBMLCBaX05VTEwsIDApOworCXN1cGVyLT5mc2lkLmVkaXRpb24gPSBvcHRfZWRpdGlvbjsKKwlzdXBlci0+ZnNpZC5ibG9ja3MgPSB0b3RhbF9ibG9ja3M7CisJc3VwZXItPmZzaWQuZmlsZXMgPSB0b3RhbF9ub2RlczsKKworCW1lbXNldChzdXBlci0+bmFtZSwgMHgwMCwgc2l6ZW9mKHN1cGVyLT5uYW1lKSk7CisJaWYgKG9wdF9uYW1lKQorCQlzdHJuY3B5KChjaGFyICopc3VwZXItPm5hbWUsIG9wdF9uYW1lLCBzaXplb2Yoc3VwZXItPm5hbWUpKTsKKwllbHNlCisJCXN0cm5jcHkoKGNoYXIgKilzdXBlci0+bmFtZSwgIkNvbXByZXNzZWQiLCBzaXplb2Yoc3VwZXItPm5hbWUpKTsKKworCXN1cGVyLT5yb290Lm1vZGUgPSByb290LT5tb2RlOworCXN1cGVyLT5yb290LnVpZCA9IHJvb3QtPnVpZDsKKwlzdXBlci0+cm9vdC5naWQgPSByb290LT5naWQ7CisJc3VwZXItPnJvb3Quc2l6ZSA9IHJvb3QtPnNpemU7CisJc3VwZXItPnJvb3Qub2Zmc2V0ID0gb2Zmc2V0ID4+IDI7CisKKwlzdXBlcl90b2dnbGVfZW5kaWFubmVzcyhjcmFtZnNfaXNfYmlnX2VuZGlhbiwgc3VwZXIpOworCWlub2RlX2Zyb21faG9zdChjcmFtZnNfaXNfYmlnX2VuZGlhbiwgJnN1cGVyLT5yb290LCAmc3VwZXItPnJvb3QpOworCisJcmV0dXJuIG9mZnNldDsKK30KKworc3RhdGljIHZvaWQgc2V0X2RhdGFfb2Zmc2V0KHN0cnVjdCBlbnRyeSAqZW50cnksIGNoYXIgKmJhc2UsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQoreworCXN0cnVjdCBjcmFtZnNfaW5vZGUgKmlub2RlID0gKHN0cnVjdCBjcmFtZnNfaW5vZGUgKikgKGJhc2UgKyBlbnRyeS0+ZGlyX29mZnNldCk7CisJaW5vZGVfdG9faG9zdChjcmFtZnNfaXNfYmlnX2VuZGlhbiwgaW5vZGUsIGlub2RlKTsKKwlpZiAob2Zmc2V0ID49ICgxIDw8ICgyICsgQ1JBTUZTX09GRlNFVF9XSURUSCkpKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIikpOworCQlleGl0KDgpOworCX0KKwlpbm9kZS0+b2Zmc2V0ID0gKG9mZnNldCA+PiAyKTsKKwlpbm9kZV9mcm9tX2hvc3QoY3JhbWZzX2lzX2JpZ19lbmRpYW4sIGlub2RlLCBpbm9kZSk7Cit9CisKKworLyoKKyAqIFdlIGRvIGEgd2lkdGgtZmlyc3QgcHJpbnRvdXQgb2YgdGhlIGRpcmVjdG9yeQorICogZW50cmllcywgdXNpbmcgYSBzdGFjayB0byByZW1lbWJlciB0aGUgZGlyZWN0b3JpZXMKKyAqIHdlJ3ZlIHNlZW4uCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgd3JpdGVfZGlyZWN0b3J5X3N0cnVjdHVyZShzdHJ1Y3QgZW50cnkgKmVudHJ5LCBjaGFyICpiYXNlLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQoreworCWludCBzdGFja19lbnRyaWVzID0gMDsKKwlpbnQgc3RhY2tfc2l6ZSA9IDY0OworCXN0cnVjdCBlbnRyeSAqKmVudHJ5X3N0YWNrOworCisJZW50cnlfc3RhY2sgPSB4bWFsbG9jKHN0YWNrX3NpemUgKiBzaXplb2Yoc3RydWN0IGVudHJ5ICopKTsKKworCWZvciAoOzspIHsKKwkJaW50IGRpcl9zdGFydCA9IHN0YWNrX2VudHJpZXM7CisJCXdoaWxlIChlbnRyeSkgeworCQkJc3RydWN0IGNyYW1mc19pbm9kZSAqaW5vZGUgPQorCQkJCShzdHJ1Y3QgY3JhbWZzX2lub2RlICopIChiYXNlICsgb2Zmc2V0KTsKKwkJCXNpemVfdCBsZW4gPSBzdHJsZW4oKGNvbnN0IGNoYXIgKillbnRyeS0+bmFtZSk7CisKKwkJCWVudHJ5LT5kaXJfb2Zmc2V0ID0gb2Zmc2V0OworCisJCQlpbm9kZS0+bW9kZSA9IGVudHJ5LT5tb2RlOworCQkJaW5vZGUtPnVpZCA9IGVudHJ5LT51aWQ7CisJCQlpbm9kZS0+Z2lkID0gZW50cnktPmdpZDsKKwkJCWlub2RlLT5zaXplID0gZW50cnktPnNpemU7CisJCQlpbm9kZS0+b2Zmc2V0ID0gMDsKKwkJCS8qIE5vbi1lbXB0eSBkaXJlY3RvcmllcywgcmVnZmlsZXMgYW5kIHN5bWxpbmtzIHdpbGwKKwkJCSAgIHdyaXRlIG92ZXIgaW5vZGUtPm9mZnNldCBsYXRlci4gKi8KKworCQkJb2Zmc2V0ICs9IHNpemVvZihzdHJ1Y3QgY3JhbWZzX2lub2RlKTsKKwkJCXRvdGFsX25vZGVzKys7CS8qIGFub3RoZXIgbm9kZSAqLworCQkJbWVtY3B5KGJhc2UgKyBvZmZzZXQsIGVudHJ5LT5uYW1lLCBsZW4pOworCQkJLyogUGFkIHVwIHRoZSBuYW1lIHRvIGEgNC1ieXRlIGJvdW5kYXJ5ICovCisJCQl3aGlsZSAobGVuICYgMykgeworCQkJCSooYmFzZSArIG9mZnNldCArIGxlbikgPSAnXDAnOworCQkJCWxlbisrOworCQkJfQorCQkJaW5vZGUtPm5hbWVsZW4gPSBsZW4gPj4gMjsKKwkJCW9mZnNldCArPSBsZW47CisKKwkJCWlmICh2ZXJib3NlKQorCQkJCXByaW50ZigiICAlc1xuIiwgZW50cnktPm5hbWUpOworCQkJaWYgKGVudHJ5LT5jaGlsZCkgeworCQkJCWlmIChzdGFja19lbnRyaWVzID49IHN0YWNrX3NpemUpIHsKKwkJCQkJc3RhY2tfc2l6ZSAqPSAyOworCQkJCQllbnRyeV9zdGFjayA9IHJlYWxsb2MoZW50cnlfc3RhY2ssIHN0YWNrX3NpemUgKiBzaXplb2Yoc3RydWN0IGVudHJ5ICopKTsKKwkJCQkJaWYgKCFlbnRyeV9zdGFjaykgeworCQkJCQkJcGVycm9yKE5VTEwpOworCQkJCQkJZXhpdCg4KTsgICAgICAgIC8qIG91dCBvZiBtZW1vcnkgKi8KKwkJCQkJfQorCQkJCX0KKwkJCQllbnRyeV9zdGFja1tzdGFja19lbnRyaWVzXSA9IGVudHJ5OworCQkJCXN0YWNrX2VudHJpZXMrKzsKKwkJCX0KKwkJCWlub2RlX2Zyb21faG9zdChjcmFtZnNfaXNfYmlnX2VuZGlhbiwgaW5vZGUsIGlub2RlKTsKKwkJCWVudHJ5ID0gZW50cnktPm5leHQ7CisJCX0KKworCQkvKgorCQkgKiBSZXZlcnNlIHRoZSBvcmRlciB0aGUgc3RhY2sgZW50cmllcyBwdXNoZWQgZHVyaW5nCisgICAgICAgICAgICAgICAgICogdGhpcyBkaXJlY3RvcnksIGZvciBhIHNtYWxsIG9wdGltaXphdGlvbiBvZiBkaXNrCisgICAgICAgICAgICAgICAgICogYWNjZXNzIGluIHRoZSBjcmVhdGVkIGZzLiAgVGhpcyBjaGFuZ2UgbWFrZXMgdGhpbmdzCisgICAgICAgICAgICAgICAgICogYGxzIC1VUicgb3JkZXIuCisJCSAqLworCQl7CisJCQlzdHJ1Y3QgZW50cnkgKipsbyA9IGVudHJ5X3N0YWNrICsgZGlyX3N0YXJ0OworCQkJc3RydWN0IGVudHJ5ICoqaGkgPSBlbnRyeV9zdGFjayArIHN0YWNrX2VudHJpZXM7CisJCQlzdHJ1Y3QgZW50cnkgKnRtcDsKKworCQkJd2hpbGUgKGxvIDwgLS1oaSkgeworCQkJCXRtcCA9ICpsbzsKKwkJCQkqbG8rKyA9ICpoaTsKKwkJCQkqaGkgPSB0bXA7CisJCQl9CisJCX0KKworCQkvKiBQb3AgYSBzdWJkaXJlY3RvcnkgZW50cnkgZnJvbSB0aGUgc3RhY2ssIGFuZCByZWN1cnNlLiAqLworCQlpZiAoIXN0YWNrX2VudHJpZXMpCisJCQlicmVhazsKKwkJc3RhY2tfZW50cmllcy0tOworCQllbnRyeSA9IGVudHJ5X3N0YWNrW3N0YWNrX2VudHJpZXNdOworCisJCXNldF9kYXRhX29mZnNldChlbnRyeSwgYmFzZSwgb2Zmc2V0KTsKKwkJaWYgKHZlcmJvc2UpCisJCQlwcmludGYoIiclcyc6XG4iLCBlbnRyeS0+bmFtZSk7CisJCWVudHJ5ID0gZW50cnktPmNoaWxkOworCX0KKwlmcmVlKGVudHJ5X3N0YWNrKTsKKwlyZXR1cm4gb2Zmc2V0OworfQorCitzdGF0aWMgaW50IGlzX3plcm8odW5zaWduZWQgY2hhciBjb25zdCAqYmVnaW4sIHVuc2lnbmVkIGxlbikKK3sKKwlpZiAob3B0X2hvbGVzKQorCQkvKiBSZXR1cm5zIG5vbi16ZXJvIGlmZiB0aGUgZmlyc3QgTEVOIGJ5dGVzIGZyb20gQkVHSU4gYXJlCisJCSAgIGFsbCBOVUxzLiAqLworCQlyZXR1cm4gKGxlbi0tID09IDAgfHwKKwkJCShiZWdpblswXSA9PSAnXDAnICYmCisJCQkgKGxlbi0tID09IDAgfHwKKwkJCSAgKGJlZ2luWzFdID09ICdcMCcgJiYKKwkJCSAgIChsZW4tLSA9PSAwIHx8CisJCQkgICAgKGJlZ2luWzJdID09ICdcMCcgJiYKKwkJCSAgICAgKGxlbi0tID09IDAgfHwKKwkJCSAgICAgIChiZWdpblszXSA9PSAnXDAnICYmCisJCQkgICAgICAgbWVtY21wKGJlZ2luLCBiZWdpbiArIDQsIGxlbikgPT0gMCkpKSkpKSkpOworCWVsc2UKKwkJLyogTmV2ZXIgY3JlYXRlIGhvbGVzLiAqLworCQlyZXR1cm4gMDsKK30KKworLyoKKyAqIE9uZSA0LWJ5dGUgcG9pbnRlciBwZXIgYmxvY2sgYW5kIHRoZW4gdGhlIGFjdHVhbCBibG9ja2VkCisgKiBvdXRwdXQuIFRoZSBmaXJzdCBibG9jayBkb2VzIG5vdCBuZWVkIGFuIG9mZnNldCBwb2ludGVyLAorICogYXMgaXQgd2lsbCBzdGFydCBpbW1lZGlhdGVseSBhZnRlciB0aGUgcG9pbnRlciBibG9jazsKKyAqIHNvIHRoZSBpJ3RoIHBvaW50ZXIgcG9pbnRzIHRvIHRoZSBlbmQgb2YgdGhlIGkndGggYmxvY2sKKyAqIChpLmUuIHRoZSBzdGFydCBvZiB0aGUgKGkrMSkndGggYmxvY2sgb3IgcGFzdCBFT0YpLgorICoKKyAqIE5vdGUgdGhhdCBzaXplID4gMCwgYXMgYSB6ZXJvLXNpemVkIGZpbGUgd291bGRuJ3QgZXZlcgorICogaGF2ZSBnb3R0ZW4gaGVyZSBpbiB0aGUgZmlyc3QgcGxhY2UuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQKK2RvX2NvbXByZXNzKGNoYXIgKmJhc2UsIHVuc2lnbmVkIGludCBvZmZzZXQsIHVuc2lnbmVkIGNoYXIgY29uc3QgKm5hbWUsCisJICAgIGNoYXIgKnBhdGgsIHVuc2lnbmVkIGludCBzaXplLCB1bnNpZ25lZCBpbnQgbW9kZSkKK3sKKwl1bnNpZ25lZCBsb25nIG9yaWdpbmFsX3NpemUsIG9yaWdpbmFsX29mZnNldCwgbmV3X3NpemUsIGJsb2NrcywgY3VycjsKKwlsb25nIGNoYW5nZTsKKwljaGFyICpzdGFydDsKKwlCeXRlZiAqcDsKKworCS8qIGdldCB1bmNvbXByZXNzZWQgZGF0YSAqLworCXN0YXJ0ID0gZG9fbW1hcChwYXRoLCBzaXplLCBtb2RlKTsKKwlpZiAoc3RhcnQgPT0gTlVMTCkKKwkJcmV0dXJuIG9mZnNldDsKKwlwID0gKEJ5dGVmICopIHN0YXJ0OworCisJb3JpZ2luYWxfc2l6ZSA9IHNpemU7CisJb3JpZ2luYWxfb2Zmc2V0ID0gb2Zmc2V0OworCWJsb2NrcyA9IChzaXplIC0gMSkgLyBibGtzaXplICsgMTsKKwljdXJyID0gb2Zmc2V0ICsgNCAqIGJsb2NrczsKKworCXRvdGFsX2Jsb2NrcyArPSBibG9ja3M7CisKKwlkbyB7CisJCXVMb25nZiBsZW4gPSAyICogYmxrc2l6ZTsKKwkJdUxvbmdmIGlucHV0ID0gc2l6ZTsKKwkJaWYgKGlucHV0ID4gYmxrc2l6ZSkKKwkJCWlucHV0ID0gYmxrc2l6ZTsKKwkJc2l6ZSAtPSBpbnB1dDsKKwkJaWYgKCFpc196ZXJvIChwLCBpbnB1dCkpIHsKKwkJCWNvbXByZXNzKChCeXRlZiAqKShiYXNlICsgY3VyciksICZsZW4sIHAsIGlucHV0KTsKKwkJCWN1cnIgKz0gbGVuOworCQl9CisJCXAgKz0gaW5wdXQ7CisKKwkJaWYgKGxlbiA+IGJsa3NpemUqMikgeworCQkJLyogKEkgZG9uJ3QgdGhpbmsgdGhpcyBjYW4gaGFwcGVuIHdpdGggemxpYi4pICovCisJCQlwcmludGYoXygiQUlFRUU6IGJsb2NrIFwiY29tcHJlc3NlZFwiIHRvID4gIgorCQkJCSAiMipibG9ja2xlbmd0aCAoJWxkKVxuIiksCisJCQkgICAgICAgbGVuKTsKKwkJCWV4aXQoOCk7CisJCX0KKworCQkqKHUzMiAqKSAoYmFzZSArIG9mZnNldCkgPSB1MzJfdG9nZ2xlX2VuZGlhbm5lc3MoY3JhbWZzX2lzX2JpZ19lbmRpYW4sIGN1cnIpOworCQlvZmZzZXQgKz0gNDsKKwl9IHdoaWxlIChzaXplKTsKKworCWRvX211bm1hcChzdGFydCwgb3JpZ2luYWxfc2l6ZSwgbW9kZSk7CisKKwljdXJyID0gKGN1cnIgKyAzKSAmIH4zOworCW5ld19zaXplID0gY3VyciAtIG9yaWdpbmFsX29mZnNldDsKKwkvKiBUT0RPOiBBcmd1YWJseSwgb3JpZ2luYWxfc2l6ZSBpbiB0aGVzZSAyIGxpbmVzIHNob3VsZCBiZQorCSAgIHN0X2Jsb2NrcyAqIDUxMi4gIEJ1dCBpZiB5b3Ugc2F5IHRoYXQsIHRoZW4gcGVyaGFwcworCSAgIGFkbWluaXN0cmF0aXZlIGRhdGEgc2hvdWxkIGFsc28gYmUgaW5jbHVkZWQgaW4gYm90aC4gKi8KKwljaGFuZ2UgPSBuZXdfc2l6ZSAtIG9yaWdpbmFsX3NpemU7CisJaWYgKHZlcmJvc2UpCisJCXByaW50ZihfKCIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIpLAorCQkgICAgICAgKGNoYW5nZSAqIDEwMCkgLyAoZG91YmxlKSBvcmlnaW5hbF9zaXplLCBjaGFuZ2UsIG5hbWUpOworCisJcmV0dXJuIGN1cnI7Cit9CisKKworLyoKKyAqIFRyYXZlcnNlIHRoZSBlbnRyeSB0cmVlLCB3cml0aW5nIGRhdGEgZm9yIGV2ZXJ5IGl0ZW0gdGhhdCBoYXMKKyAqIG5vbi1udWxsIGVudHJ5LT5wYXRoIChpLmUuIGV2ZXJ5IHN5bWxpbmsgYW5kIG5vbi1lbXB0eQorICogcmVnZmlsZSkuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQKK3dyaXRlX2RhdGEoc3RydWN0IGVudHJ5ICplbnRyeSwgY2hhciAqYmFzZSwgdW5zaWduZWQgaW50IG9mZnNldCkgeworCXN0cnVjdCBlbnRyeSAqZTsKKworCWZvciAoZSA9IGVudHJ5OyBlOyBlID0gZS0+bmV4dCkgeworCQlpZiAoZS0+cGF0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUtPnNhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2RhdGFfb2Zmc2V0KGUsIGJhc2UsIGUtPnNhbWUtPm9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUtPm9mZnNldCA9IGUtPnNhbWUtPm9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS0+c2l6ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRfZGF0YV9vZmZzZXQoZSwgYmFzZSwgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS0+b2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBkb19jb21wcmVzcyhiYXNlLCBvZmZzZXQsIGUtPm5hbWUsCisJCQkJCQkgICAgIGUtPnBhdGgsIGUtPnNpemUsZS0+bW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisJCX0gZWxzZSBpZiAoZS0+Y2hpbGQpCisJCQlvZmZzZXQgPSB3cml0ZV9kYXRhKGUtPmNoaWxkLCBiYXNlLCBvZmZzZXQpOworCX0KKwlyZXR1cm4gb2Zmc2V0OworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IHdyaXRlX2ZpbGUoY2hhciAqZmlsZSwgY2hhciAqYmFzZSwgdW5zaWduZWQgaW50IG9mZnNldCkKK3sKKwlpbnQgZmQ7CisJY2hhciAqYnVmOworCisJZmQgPSBvcGVuKGZpbGUsIE9fUkRPTkxZKTsKKwlpZiAoZmQgPCAwKSB7CisJCXBlcnJvcihmaWxlKTsKKwkJZXhpdCg4KTsKKwl9CisJYnVmID0gbW1hcChOVUxMLCBpbWFnZV9sZW5ndGgsIFBST1RfUkVBRCwgTUFQX1BSSVZBVEUsIGZkLCAwKTsKKwltZW1jcHkoYmFzZSArIG9mZnNldCwgYnVmLCBpbWFnZV9sZW5ndGgpOworCW11bm1hcChidWYsIGltYWdlX2xlbmd0aCk7CisJY2xvc2UgKGZkKTsKKwkvKiBQYWQgdXAgdGhlIGltYWdlX2xlbmd0aCB0byBhIDQtYnl0ZSBib3VuZGFyeSAqLworCXdoaWxlIChpbWFnZV9sZW5ndGggJiAzKSB7CisJCSooYmFzZSArIG9mZnNldCArIGltYWdlX2xlbmd0aCkgPSAnXDAnOworCQlpbWFnZV9sZW5ndGgrKzsKKwl9CisJcmV0dXJuIChvZmZzZXQgKyBpbWFnZV9sZW5ndGgpOworfQorCisvKgorICogTWF4aW11bSBzaXplIGZzIHlvdSBjYW4gY3JlYXRlIGlzIHJvdWdobHkgMjU2TUIuICAoVGhlIGxhc3QgZmlsZSdzCisgKiBkYXRhIG11c3QgYmVnaW4gd2l0aGluIDI1Nk1CIGJvdW5kYXJ5IGJ1dCBjYW4gZXh0ZW5kIGJleW9uZCB0aGF0LikKKyAqCisgKiBOb3RlIHRoYXQgaWYgeW91IHdhbnQgaXQgdG8gZml0IGluIGEgUk9NIHRoZW4geW91J3JlIGxpbWl0ZWQgdG8gd2hhdCB0aGUKKyAqIGhhcmR3YXJlIGFuZCBrZXJuZWwgY2FuIHN1cHBvcnQgKDY0TUI/KS4KKyAqLworc3RhdGljIHVuc2lnbmVkIGludAorbWF4ZnNsZW4odm9pZCkgeworCXJldHVybiAoKCgxIDw8IENSQU1GU19PRkZTRVRfV0lEVEgpIC0gMSkgPDwgMikgICAgLyogb2Zmc2V0ICovCisJCSsgKDEgPDwgQ1JBTUZTX1NJWkVfV0lEVEgpIC0gMSAgICAgICAgICAgIC8qIGZpbGVzaXplICovCisJCSsgKDEgPDwgQ1JBTUZTX1NJWkVfV0lEVEgpICogNCAvIGJsa3NpemU7IC8qIGJsb2NrIHBvaW50ZXJzICovCit9CisKKy8qCisgKiBVc2FnZToKKyAqCisgKiAgICAgIG1rY3JhbWZzIGRpcmVjdG9yeS1uYW1lIG91dGZpbGUKKyAqCisgKiB3aGVyZSAiZGlyZWN0b3J5LW5hbWUiIGlzIHNpbXBseSB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5CisgKiB0cmVlIHRoYXQgd2Ugd2FudCB0byBnZW5lcmF0ZSBhIGNvbXByZXNzZWQgZmlsZXN5c3RlbSBvdXQKKyAqIG9mLgorICovCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJc3RydWN0IHN0YXQgc3Q7CQkvKiB1c2VkIHR3aWNlLi4uICovCisJc3RydWN0IGVudHJ5ICpyb290X2VudHJ5OworCWNoYXIgKnJvbV9pbWFnZTsKKwlzc2l6ZV90IG9mZnNldCwgd3JpdHRlbjsKKwlpbnQgZmQ7CisJLyogaW5pdGlhbCBndWVzcyAodXBwZXItYm91bmQpIG9mIHJlcXVpcmVkIGZpbGVzeXN0ZW0gc2l6ZSAqLworCWxvZmZfdCBmc2xlbl91YiA9IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKTsKKwl1bnNpZ25lZCBpbnQgZnNsZW5fbWF4OworCWNoYXIgY29uc3QgKmRpcm5hbWUsICpvdXRmaWxlOworCXUzMiBjcmMgPSBjcmMzMigwTCwgWl9OVUxMLCAwKTsKKwlpbnQgYzsKKwljcmFtZnNfaXNfYmlnX2VuZGlhbiA9IEhPU1RfSVNfQklHX0VORElBTjsgLyogZGVmYXVsdCBpcyB0byB1c2UgaG9zdCBvcmRlciAqLworCisJYmxrc2l6ZSA9IGdldHBhZ2VzaXplKCk7CisJdG90YWxfYmxvY2tzID0gMDsKKworCWlmIChhcmdjKSB7CisJCWNoYXIgKnA7CisJCXByb2duYW1lID0gYXJndlswXTsKKwkJaWYgKChwID0gc3RycmNocihwcm9nbmFtZSwgJy8nKSkgIT0gTlVMTCkKKwkJCXByb2duYW1lID0gcCsxOworCX0KKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwkvKiBjb21tYW5kIGxpbmUgb3B0aW9ucyAqLworCXdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2LCAiaGI6RWU6aTpuOk46cHNWdnoiKSkgIT0gRU9GKSB7CisJCXN3aXRjaCAoYykgeworCQljYXNlICdoJzoKKwkJCXVzYWdlKDApOworCQljYXNlICdiJzoKKwkJCWJsa3NpemUgPSBhdG9pKG9wdGFyZyk7CisJCQlpZiAoYmxrc2l6ZSA8PSAwKQorCQkJCXVzYWdlKDEpOworCQkJYnJlYWs7CisJCWNhc2UgJ0UnOgorCQkJb3B0X2Vycm9ycyA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnZSc6CisJCQlvcHRfZWRpdGlvbiA9IGF0b2kob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICdOJzoKKwkJCWlmIChzdHJjbXAob3B0YXJnLCAiYmlnIikgPT0gMCkgIHsKKwkJCQljcmFtZnNfaXNfYmlnX2VuZGlhbiA9IDE7CisJCQl9CisJCQllbHNlIGlmIChzdHJjbXAob3B0YXJnLCAibGl0dGxlIikgPT0gMCkgeworCQkJCWNyYW1mc19pc19iaWdfZW5kaWFuID0gMDsKKwkJCX0KKwkJCWVsc2UgaWYgKHN0cmNtcChvcHRhcmcsICJob3N0IikgPT0gMCk7CS8qIGRlZmF1bHQgKi8KKwkJCWVsc2UgCXsKKwkJCQlwZXJyb3IoImludmFsaWQgZW5kaWFubmVzcyBnaXZlbi4gTXVzdCBiZSAnYmlnJywgJ2xpdHRsZScsIG9yICdob3N0JyIpOworCQkJCWV4aXQoMTYpOworCQkJfQorCisJCQlicmVhazsKKwkJY2FzZSAnaSc6CisJCQlvcHRfaW1hZ2UgPSBvcHRhcmc7CisJCQlpZiAobHN0YXQob3B0X2ltYWdlLCAmc3QpIDwgMCkgeworCQkJCXBlcnJvcihvcHRfaW1hZ2UpOworCQkJCWV4aXQoMTYpOworCQkJfQorCQkJaW1hZ2VfbGVuZ3RoID0gc3Quc3Rfc2l6ZTsgLyogbWF5IGJlIHBhZGRlZCBsYXRlciAqLworCQkJZnNsZW5fdWIgKz0gKGltYWdlX2xlbmd0aCArIDMpOyAvKiAzIGlzIGZvciBwYWRkaW5nICovCisJCQlicmVhazsKKwkJY2FzZSAnbic6CisJCQlvcHRfbmFtZSA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQljYXNlICdwJzoKKwkJCW9wdF9wYWQgPSBQQURfU0laRTsKKwkJCWZzbGVuX3ViICs9IFBBRF9TSVpFOworCQkJYnJlYWs7CisJCWNhc2UgJ3MnOgorCQkJLyogb2xkIG9wdGlvbiwgaWdub3JlZCAqLworCQkJYnJlYWs7CisJCWNhc2UgJ1YnOgorCQkJcHJpbnRmKF8oIiVzICglcylcbiIpLAorCQkJICAgICAgIHByb2duYW1lLCBQQUNLQUdFX1NUUklORyk7CisJCQlleGl0KDApOworCQljYXNlICd2JzoKKwkJCXZlcmJvc2UgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3onOgorCQkJb3B0X2hvbGVzID0gMTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKChhcmdjIC0gb3B0aW5kKSAhPSAyKQorCQl1c2FnZSgxNik7CisJZGlybmFtZSA9IGFyZ3Zbb3B0aW5kXTsKKwlvdXRmaWxlID0gYXJndltvcHRpbmQgKyAxXTsKKworCWlmIChzdGF0KGRpcm5hbWUsICZzdCkgPCAwKSB7CisJCXBlcnJvcihkaXJuYW1lKTsKKwkJZXhpdCgxNik7CisJfQorCWZkID0gb3BlbihvdXRmaWxlLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX1RSVU5DLCAwNjY2KTsKKworCXJvb3RfZW50cnkgPSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBlbnRyeSkpOworCWlmICghcm9vdF9lbnRyeSkgeworCQlwZXJyb3IoTlVMTCk7CisJCWV4aXQoOCk7CisJfQorCXJvb3RfZW50cnktPm1vZGUgPSBzdC5zdF9tb2RlOworCXJvb3RfZW50cnktPnVpZCA9IHN0LnN0X3VpZDsKKwlyb290X2VudHJ5LT5naWQgPSBzdC5zdF9naWQ7CisKKwlyb290X2VudHJ5LT5zaXplID0gcGFyc2VfZGlyZWN0b3J5KHJvb3RfZW50cnksIGRpcm5hbWUsICZyb290X2VudHJ5LT5jaGlsZCwgJmZzbGVuX3ViKTsKKworCS8qIGFsd2F5cyBhbGxvY2F0ZSBhIG11bHRpcGxlIG9mIGJsa3NpemUgYnl0ZXMgYmVjYXVzZSB0aGF0J3MKKyAgICAgICAgICAgd2hhdCB3ZSdyZSBnb2luZyB0byB3cml0ZSBsYXRlciBvbiAqLworCWZzbGVuX3ViID0gKChmc2xlbl91YiAtIDEpIHwgKGJsa3NpemUgLSAxKSkgKyAxOworCWZzbGVuX21heCA9IG1heGZzbGVuKCk7CisKKwlpZiAoZnNsZW5fdWIgPiBmc2xlbl9tYXgpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJCQlfKCJ3YXJuaW5nOiBndWVzdGltYXRlIG9mIHJlcXVpcmVkIHNpemUgKHVwcGVyIGJvdW5kKSAiCisJCQkgICJpcyAlbGxkTUIsIGJ1dCBtYXhpbXVtIGltYWdlIHNpemUgaXMgJXVNQi4gICIKKwkJCSAgIldlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIpLAorCQkJKGxvbmcgbG9uZylmc2xlbl91YiA+PiAyMCwKKwkJCWZzbGVuX21heCA+PiAyMCk7CisJCWZzbGVuX3ViID0gZnNsZW5fbWF4OworCX0KKworICAgICAgICAvKiBmaW5kIGR1cGxpY2F0ZSBmaWxlcyAqLworICAgICAgICBlbGltaW5hdGVfZG91Ymxlcyhyb290X2VudHJ5LHJvb3RfZW50cnksICZmc2xlbl91Yik7CisKKwkvKiBUT0RPOiBXaHkgZG8gd2UgdXNlIGEgcHJpdmF0ZS9hbm9ueW1vdXMgbWFwcGluZyBoZXJlCisgICAgICAgICAgIGZvbGxvd2VkIGJ5IGEgd3JpdGUgYmVsb3csIGluc3RlYWQgb2YganVzdCBhIHNoYXJlZCBtYXBwaW5nCisgICAgICAgICAgIGFuZCBhIGNvdXBsZSBvZiBmdHJ1bmNhdGUgY2FsbHM/ICBJcyBpdCBqdXN0IHRvIHNhdmUgdXMKKyAgICAgICAgICAgaGF2aW5nIHRvIGRlYWwgd2l0aCByZW1vdmluZyB0aGUgZmlsZSBhZnRlcndhcmRzPyAgSWYgd2UKKyAgICAgICAgICAgcmVhbGx5IG5lZWQgdGhpcyBodWdlIGFub255bW91cyBtYXBwaW5nLCB3ZSBvdWdodCB0byBtbWFwCisgICAgICAgICAgIGluIHNtYWxsZXIgY2h1bmtzLCBzbyB0aGF0IHRoZSB1c2VyIGRvZXNuJ3QgbmVlZCBubiBNQiBvZgorICAgICAgICAgICBSQU0gZnJlZS4gIElmIHRoZSByZWFzb24gaXMgdG8gYmUgYWJsZSB0byB3cml0ZSB0bworICAgICAgICAgICB1bi1tbWFwcGFibGUgYmxvY2sgZGV2aWNlcywgdGhlbiB3ZSBjb3VsZCB0cnkgc2hhcmVkIG1tYXAKKyAgICAgICAgICAgYW5kIHJldmVydCB0byBhbm9ueW1vdXMgbW1hcCBpZiB0aGUgc2hhcmVkIG1tYXAgZmFpbHMuICovCisJcm9tX2ltYWdlID0gbW1hcChOVUxMLAorCQkJIGZzbGVuX3ViP2ZzbGVuX3ViOjEsCisJCQkgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKKwkJCSBNQVBfUFJJVkFURSB8IE1BUF9BTk9OWU1PVVMsCisJCQkgLTEsIDApOworCisJaWYgKC0xID09IChpbnQpIChsb25nKSByb21faW1hZ2UpIHsKKwkJcGVycm9yKF8oIlJPTSBpbWFnZSBtYXAiKSk7CisJCWV4aXQoOCk7CisJfQorCisJLyogU2tpcCB0aGUgZmlyc3Qgb3B0X3BhZCBieXRlcyBmb3IgYm9vdCBsb2FkZXIgY29kZSAqLworCW9mZnNldCA9IG9wdF9wYWQ7CisJbWVtc2V0KHJvbV9pbWFnZSwgMHgwMCwgb3B0X3BhZCk7CisKKwkvKiBTa2lwIHRoZSBzdXBlcmJsb2NrIGFuZCBjb21lIGJhY2sgdG8gd3JpdGUgaXQgbGF0ZXIuICovCisJb2Zmc2V0ICs9IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKTsKKworCS8qIEluc2VydCBhIGZpbGUgaW1hZ2UuICovCisJaWYgKG9wdF9pbWFnZSkgeworCQlpZiAodmVyYm9zZSkKKwkJCXByaW50ZihfKCJJbmNsdWRpbmc6ICVzXG4iKSwgb3B0X2ltYWdlKTsKKwkJb2Zmc2V0ID0gd3JpdGVfZmlsZShvcHRfaW1hZ2UsIHJvbV9pbWFnZSwgb2Zmc2V0KTsKKwl9CisKKwlvZmZzZXQgPSB3cml0ZV9kaXJlY3Rvcnlfc3RydWN0dXJlKHJvb3RfZW50cnktPmNoaWxkLCByb21faW1hZ2UsIG9mZnNldCk7CisJaWYgKHZlcmJvc2UpCisJCXByaW50ZihfKCJEaXJlY3RvcnkgZGF0YTogJXpkIGJ5dGVzXG4iKSwgb2Zmc2V0KTsKKworCW9mZnNldCA9IHdyaXRlX2RhdGEocm9vdF9lbnRyeSwgcm9tX2ltYWdlLCBvZmZzZXQpOworCisJLyogV2UgYWx3YXlzIHdyaXRlIGEgbXVsdGlwbGUgb2YgYmxrc2l6ZSBieXRlcywgc28gdGhhdAorICAgICAgICAgICBsb3NldHVwIHdvcmtzLiAqLworCW9mZnNldCA9ICgob2Zmc2V0IC0gMSkgfCAoYmxrc2l6ZSAtIDEpKSArIDE7CisJaWYgKHZlcmJvc2UpCisJCXByaW50ZihfKCJFdmVyeXRoaW5nOiAlemQga2lsb2J5dGVzXG4iKSwgb2Zmc2V0ID4+IDEwKTsKKworCS8qIFdyaXRlIHRoZSBzdXBlcmJsb2NrIG5vdyB0aGF0IHdlIGNhbiBmaWxsIGluIGFsbCBvZiB0aGUgZmllbGRzLiAqLworCXdyaXRlX3N1cGVyYmxvY2socm9vdF9lbnRyeSwgcm9tX2ltYWdlK29wdF9wYWQsIG9mZnNldCk7CisJaWYgKHZlcmJvc2UpCisJCXByaW50ZihfKCJTdXBlciBibG9jazogJXpkIGJ5dGVzXG4iKSwKKwkJICAgICAgIHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKSk7CisKKwkvKiBQdXQgdGhlIGNoZWNrc3VtIGluLiAqLworCWNyYyA9IGNyYzMyKGNyYywgKHVuc2lnbmVkIGNoYXIgKikgKHJvbV9pbWFnZStvcHRfcGFkKSwgKG9mZnNldC1vcHRfcGFkKSk7CisJKChzdHJ1Y3QgY3JhbWZzX3N1cGVyICopIChyb21faW1hZ2Urb3B0X3BhZCkpLT5mc2lkLmNyYyA9IHUzMl90b2dnbGVfZW5kaWFubmVzcyhjcmFtZnNfaXNfYmlnX2VuZGlhbiwgY3JjKTsKKwlpZiAodmVyYm9zZSkKKwkJcHJpbnRmKF8oIkNSQzogJXhcbiIpLCBjcmMpOworCisJLyogQ2hlY2sgdG8gbWFrZSBzdXJlIHdlIGFsbG9jYXRlZCBlbm91Z2ggc3BhY2UuICovCisJaWYgKGZzbGVuX3ViIDwgb2Zmc2V0KSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkJXygibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAiCisJCQkgICIoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIiksCisJCQkobG9uZyBsb25nKSBmc2xlbl91Yiwgb2Zmc2V0KTsKKwkJZXhpdCg4KTsKKwl9CisKKwl3cml0dGVuID0gd3JpdGUoZmQsIHJvbV9pbWFnZSwgb2Zmc2V0KTsKKwlpZiAod3JpdHRlbiA8IDApIHsKKwkJcGVycm9yKF8oIlJPTSBpbWFnZSIpKTsKKwkJZXhpdCg4KTsKKwl9CisJaWYgKG9mZnNldCAhPSB3cml0dGVuKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIiksCisJCQl3cml0dGVuLCBvZmZzZXQpOworCQlleGl0KDgpOworCX0KKworCS8qIChUaGVzZSB3YXJuaW5ncyB1c2VkIHRvIGNvbWUgYXQgdGhlIHN0YXJ0LCBidXQgdGhleSBzY3JvbGwgb2ZmIHRoZQorICAgICAgICAgICBzY3JlZW4gdG9vIHF1aWNrbHkuKSAqLworCWlmICh3YXJuX25hbWVsZW4pIC8qIChjYW4ndCBoYXBwZW4gd2hlbiByZWFkaW5nIGZyb20gZXh0MmZzKSAqLworCQlmcHJpbnRmKHN0ZGVyciwgLyogYnl0ZXMsIG5vdCBjaGFyczogdGhpbmsgVVRGOC4gKi8KKwkJCV8oIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIikpOworCWlmICh3YXJuX3NraXApCisJCWZwcmludGYoc3RkZXJyLAorCQkJXygid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iKSk7CisJaWYgKHdhcm5fc2l6ZSkKKwkJZnByaW50ZihzdGRlcnIsCisJCQlfKCJ3YXJuaW5nOiBmaWxlIHNpemVzIHRydW5jYXRlZCB0byAlbHVNQiAiCisJCQkgICIobWludXMgMSBieXRlKS5cbiIpLAorCQkJMUwgPDwgKENSQU1GU19TSVpFX1dJRFRIIC0gMjApKTsKKwlpZiAod2Fybl91aWQpIC8qIChub3QgcG9zc2libGUgd2l0aCBjdXJyZW50IExpbnV4IHZlcnNpb25zKSAqLworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCV8oIndhcm5pbmc6IHVpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAiCisJCQkgICIoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIpLAorCQkJQ1JBTUZTX1VJRF9XSURUSCk7CisJaWYgKHdhcm5fZ2lkKQorCQlmcHJpbnRmKHN0ZGVyciwKKwkJCV8oIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAiCisJCQkgICIoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIpLAorCQkJQ1JBTUZTX0dJRF9XSURUSCk7CisJaWYgKHdhcm5fZGV2KQorCQlmcHJpbnRmKHN0ZGVyciwKKwkJCV8oIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgIgorCQkJICAiVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisJCQkgICJ0aGF0IHNvbWUgZGV2aWNlIGZpbGVzIHdpbGwgYmUgd3JvbmcuXG4iKSwKKwkJCUNSQU1GU19PRkZTRVRfV0lEVEgpOworCWlmIChvcHRfZXJyb3JzICYmCisJICAgICh3YXJuX25hbWVsZW58d2Fybl9za2lwfHdhcm5fc2l6ZXx3YXJuX3VpZHx3YXJuX2dpZHx3YXJuX2RldikpCisJCWV4aXQoOCk7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rZnMubWluaXguOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtmcy5taW5peC44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNjEwMzcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rZnMubWluaXguOApAQCAtMCwwICsxLDgwIEBACisuXCIgQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQgUmlja2FyZCBFLiBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSkKKy5cIiBNYXkgYmUgZnJlZWx5IGRpc3RyaWJ1dGVkLgorLlRIIE1LRlMuTUlOSVggOCAiMiBKdWx5IDE5OTYiICJVdGlsLWxpbnV4IDIuNiIgIkxpbnV4IFN5c3RlbSBBZG1pbmlzdHJhdG9yJ3MgTWFudWFsIgorLlNIIE5BTUUKK21rZnMubWluaXggXC0gbWFrZSBhIExpbnV4IE1JTklYIGZpbGVzeXN0ZW0KKy5TSCBTWU5PUFNJUworLkIgbWtmcy5taW5peAorLlJCIFsgXC1jIHwgXC1sCisuSVIgZmlsZW5hbWUgXQorLlJCIFsgXC1uCisuSVIgbmFtZWxlbmd0aCBdCisuUkIgWyBcLWkKKy5JUiBpbm9kZWNvdW50IF0KKy5SQiBbIFwtdiBdCisuSSBkZXZpY2UKKy5SSSBbIHNpemUtaW4tYmxvY2tzIF0KKy5TSCBERVNDUklQVElPTgorLkIgbWtmcy5taW5peAorY3JlYXRlcyBhIExpbnV4IE1JTklYIGZpbGUtc3lzdGVtIG9uIGEgZGV2aWNlICh1c3VhbGx5IGEgZGlzayBwYXJ0aXRpb24pLgorCitUaGUKKy5JIGRldmljZQoraXMgdXN1YWxseSBvZiB0aGUgZm9sbG93aW5nIGZvcm06CisKKy5uZgorLlJTCisvZGV2L2hkYVsxLThdIChJREUgZGlzayAxKQorL2Rldi9oZGJbMS04XSAoSURFIGRpc2sgMikKKy9kZXYvc2RhWzEtOF0gKFNDU0kgZGlzayAxKQorL2Rldi9zZGJbMS04XSAoU0NTSSBkaXNrIDIpCisuUkUKKy5maQorCitUaGUKKy5JIHNpemUtaW4tYmxvY2tzCitwYXJhbWV0ZXIgaXMgdGhlIGRlc2lyZWQgc2l6ZSBvZiB0aGUgZmlsZSBzeXN0ZW0sIGluIGJsb2Nrcy4KK0l0IGlzIHByZXNlbnQgb25seSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCitJZiBvbWl0dGVkIHRoZSBzaXplIHdpbGwgYmUgZGV0ZXJtaW5lZCBhdXRvbWF0aWNhbGx5LgorT25seSBibG9jayBjb3VudHMgc3RyaWN0bHkgZ3JlYXRlciB0aGFuIDEwIGFuZCBzdHJpY3RseSBsZXNzIHRoYW4KKzY1NTM2IGFyZSBhbGxvd2VkLgorLlNIIE9QVElPTlMKKy5UUAorLkIgXC1jCitDaGVjayB0aGUgZGV2aWNlIGZvciBiYWQgYmxvY2tzIGJlZm9yZSBjcmVhdGluZyB0aGUgZmlsZSBzeXN0ZW0uICBJZiBhbnkKK2FyZSBmb3VuZCwgdGhlIGNvdW50IGlzIHByaW50ZWQuCisuVFAKKy5CSSBcLW4gIiBuYW1lbGVuZ3RoIgorU3BlY2lmeSB0aGUgbWF4aW11bSBsZW5ndGggb2YgZmlsZW5hbWVzLgorQ3VycmVudGx5LCB0aGUgb25seSBhbGxvd2FibGUgdmFsdWVzIGFyZSAxNCBhbmQgMzAuCitUaGUgZGVmYXVsdCBpcyAzMC4gTm90ZSB0aGF0IGtlcm5lbHMgb2xkZXIgdGhhbiAwLjk5cDcKK29ubHkgYWNjZXB0IG5hbWVsZW5ndGggMTQuCisuVFAKKy5CSSBcLWkgIiBpbm9kZWNvdW50IgorU3BlY2lmeSB0aGUgbnVtYmVyIG9mIGlub2RlcyBmb3IgdGhlIGZpbGVzeXN0ZW0uCisuVFAKKy5CSSBcLWwgIiBmaWxlbmFtZSIKK1JlYWQgdGhlIGJhZCBibG9ja3MgbGlzdCBmcm9tCisuSVIgZmlsZW5hbWUgLgorVGhlIGZpbGUgaGFzIG9uZSBiYWQgYmxvY2sgbnVtYmVyIHBlciBsaW5lLiAgVGhlIGNvdW50IG9mIGJhZCBibG9ja3MgcmVhZAoraXMgcHJpbnRlZC4KKy5UUAorLkIgXC12CitNYWtlIGEgTWluaXggdmVyc2lvbiAyIGZpbGVzeXN0ZW0uCisuU0ggIkVYSVQgQ09ERVMiCitUaGUgZXhpdCBjb2RlIHJldHVybmVkIGJ5CisuQiBta2ZzLm1pbml4CitpcyBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKy5JUCAwCitObyBlcnJvcnMKKy5JUCA4CitPcGVyYXRpb25hbCBlcnJvcgorLklQIDE2CitVc2FnZSBvciBzeW50YXggZXJyb3IKKy5TSCAiU0VFIEFMU08iCisuQlIgbWtmcyAoOCksCisuQlIgZnNjayAoOCksCisuQlIgcmVib290ICg4KQorLlNIIEFWQUlMQUJJTElUWQorVGhlIG1rZnMubWluaXggY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rZnMubWluaXguYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtmcy5taW5peC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MmFmYmQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rZnMubWluaXguYwpAQCAtMCwwICsxLDY4OSBAQAorLyoKKyAqIG1rZnMubWluaXguYyAtIG1ha2UgYSBsaW51eCAobWluaXgpIGZpbGUtc3lzdGVtLgorICoKKyAqIChDKSAxOTkxIExpbnVzIFRvcnZhbGRzLiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgYXMgcGVyCisgKiB0aGUgTGludXggY29weXJpZ2h0LgorICovCisKKy8qCisgKiBERC5NTS5ZWQorICoKKyAqIDI0LjExLjkxICAtCVRpbWUgYmVnYW4uIFVzZWQgdGhlIGZzY2sgc291cmNlcyB0byBnZXQgc3RhcnRlZC4KKyAqCisgKiAyNS4xMS45MSAgLQlDb3JyZWN0ZWQgc29tZSBidWdzLiBBZGRlZCBzdXBwb3J0IGZvciAiLmJhZGJsb2NrcyIKKyAqCQlUaGUgYWxnb3JpdGhtIGZvciAiLmJhZGJsb2NrcyIgaXMgYSBiaXQgd2VpcmQsIGJ1dAorICoJCWl0IHNob3VsZCB3b3JrLiBPaCwgd2VsbC4KKyAqCisgKiAyNS4wMS45MiAgLQlBZGRlZCB0aGUgLWwgb3B0aW9uIGZvciBnZXR0aW5nIHRoZSBsaXN0IG9mIGJhZCBibG9ja3MKKyAqCQlvdXQgb2YgYSBuYW1lZCBmaWxlLiAoRGF2ZSBSaXZlcnMsIHJpdmVyc0Bwb25kcy51dWNwKQorICoKKyAqIDI4LjAyLjkyICAtCUFkZGVkICUtaW5mb3JtYXRpb24gd2hlbiB1c2luZyAtYy4KKyAqCisgKiAyOC4wMi45MyAgLQlBZGRlZCBzdXBwb3J0IGZvciBvdGhlciBuYW1lbGVuZ3RocyB0aGFuIHRoZSBvcmlnaW5hbAorICoJCTE0IGNoYXJhY3RlcnMgc28gdGhhdCBJIGNhbiB0ZXN0IHRoZSBuZXcga2VybmVsIHJvdXRpbmVzLi4KKyAqCisgKiAwOS4xMC45MyAgLQlNYWtlIGV4aXQgc3RhdHVzIGNvbmZvcm0gdG8gdGhhdCByZXF1aXJlZCBieSBmc3V0aWwKKyAqCQkoUmlrIEZhaXRoLCBmYWl0aEBjcy51bmMuZWR1KQorICoKKyAqIDMxLjEwLjkzICAtCUFkZGVkIGlub2RlIHJlcXVlc3QgZmVhdHVyZSwgZm9yIGJhY2t1cCBmbG9wcGllczogdXNlCisgKgkJMzIgaW5vZGVzLCBmb3IgYSBuZXdzIHBhcnRpdGlvbiB1c2UgbW9yZS4KKyAqCQkoU2NvdHQgSGVhdm5lciwgc2RoQHBvLmN3cnUuZWR1KQorICoKKyAqIDAzLjAxLjk0ICAtCUFkZGVkIHN1cHBvcnQgZm9yIGZpbGUgc3lzdGVtIHZhbGlkIGZsYWcuCisgKgkJKERyLiBXZXR0c3RlaW4sIGdyZWcld2luZC51dWNwQHBsYWlucy5ub2Rhay5lZHUpCisgKgorICogMzAuMTAuOTQgIC0gIEFkZGVkIHN1cHBvcnQgZm9yIHYyIGZpbGVzeXN0ZW0KKyAqCQkoQW5kcmVhcyBTY2h3YWIsIHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZSkKKyAqIAorICogMDkuMTEuOTQgIC0JQWRkZWQgdGVzdCB0byBwcmV2ZW50IG92ZXJ3cml0ZSBvZiBtb3VudGVkIGZzIGFkYXB0ZWQKKyAqCQlmcm9tIFRoZW9kb3JlIFRzJ28ncyAodHl0c29AYXRoZW5hLm1pdC5lZHUpIG1rZTJmcworICoJCXByb2dyYW0uICAoRGFuaWVsIFF1aW5sYW4sIHF1aW5sYW5AeWdnZHJhc2lsLmNvbSkKKyAqCisgKiAwMy4yMC45NSAgLQlDbGVhciBmaXJzdCA1MTIgYnl0ZXMgb2YgZmlsZXN5c3RlbSB0byBtYWtlIGNlcnRhaW4gdGhhdAorICoJCXRoZSBmaWxlc3lzdGVtIGlzIG5vdCBtaXNpZGVudGlmaWVkIGFzIGEgTVMtRE9TIEZBVCBmaWxlc3lzdGVtLgorICoJCShEYW5pZWwgUXVpbmxhbiwgcXVpbmxhbkB5Z2dkcmFzaWwuY29tKQorICoKKyAqIDAyLjA3Ljk2ICAtICBBZGRlZCBzbWFsbCBwYXRjaCBmcm9tIFJ1c3NlbGwgS2luZyB0byBtYWtlIHRoZSBwcm9ncmFtIGEKKyAqCQlnb29kIGRlYWwgbW9yZSBwb3J0YWJsZSAoamFubEBtYXRoLnVpby5ubykKKyAqCisgKiBVc2FnZTogIG1rZnMgWy1jIHwgLWwgZmlsZW5hbWUgXSBbLXZdIFstblhYXSBbLWlYWF0gZGV2aWNlIFtzaXplLWluLWJsb2Nrc10KKyAqCisgKgktYyBmb3IgcmVhZGFibGlsaXR5IGNoZWNraW5nIChTTE9XISkKKyAqICAgICAgLWwgZm9yIGdldHRpbmcgYSBsaXN0IG9mIGJhZCBibG9ja3MgZnJvbSBhIGZpbGUuCisgKgktbiBmb3IgbmFtZWxlbmd0aCAoY3VycmVudGx5IHRoZSBrZXJuZWwgb25seSB1c2VzIDE0IG9yIDMwKQorICoJLWkgZm9yIG51bWJlciBvZiBpbm9kZXMKKyAqCS12IGZvciB2MiBmaWxlc3lzdGVtCisgKgorICogVGhlIGRldmljZSBtYXkgYmUgYSBibG9jayBkZXZpY2Ugb3IgYSBpbWFnZSBvZiBvbmUsIGJ1dCB0aGlzIGlzbid0CisgKiBlbmZvcmNlZCAoYnV0IGl0J3Mgbm90IG11Y2ggZnVuIG9uIGEgY2hhcmFjdGVyIGRldmljZSA6LSkuIAorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGVybWlvcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8bW50ZW50Lmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisKKyNpbmNsdWRlICJibGtkZXYuaCIKKyNpbmNsdWRlICJtaW5peC5oIgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgInBhdGhuYW1lcy5oIgorI2luY2x1ZGUgImJpdG9wcy5oIgorCisjZGVmaW5lIE1JTklYX1JPT1RfSU5PIDEKKyNkZWZpbmUgTUlOSVhfQkFEX0lOTyAyCisKKyNkZWZpbmUgVEVTVF9CVUZGRVJfQkxPQ0tTIDE2CisjZGVmaW5lIE1BWF9HT09EX0JMT0NLUyA1MTIKKworI2RlZmluZSBVUFBFUihzaXplLG4pICgoc2l6ZSsoKG4pLTEpKS8obikpCisjZGVmaW5lIElOT0RFX1NJWkUgKHNpemVvZihzdHJ1Y3QgbWluaXhfaW5vZGUpKQorCisjZGVmaW5lIElOT0RFX1NJWkUyIChzaXplb2Yoc3RydWN0IG1pbml4Ml9pbm9kZSkpCisjZGVmaW5lIElOT0RFX0JMT0NLUyBVUFBFUihJTk9ERVMsICh2ZXJzaW9uMiA/IE1JTklYMl9JTk9ERVNfUEVSX0JMT0NLIFwKKwkJCQkgICAgOiBNSU5JWF9JTk9ERVNfUEVSX0JMT0NLKSkKKyNkZWZpbmUgSU5PREVfQlVGRkVSX1NJWkUgKElOT0RFX0JMT0NLUyAqIEJMT0NLX1NJWkUpCisKKyNkZWZpbmUgQklUU19QRVJfQkxPQ0sgKEJMT0NLX1NJWkU8PDMpCisKK3N0YXRpYyBjaGFyICogcHJvZ3JhbV9uYW1lID0gIm1rZnMiOworc3RhdGljIGNoYXIgKiBkZXZpY2VfbmFtZSA9IE5VTEw7CitzdGF0aWMgaW50IERFViA9IC0xOworc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBCTE9DS1MgPSAwOworc3RhdGljIGludCBjaGVjayA9IDA7CitzdGF0aWMgaW50IGJhZGJsb2NrcyA9IDA7CitzdGF0aWMgaW50IG5hbWVsZW4gPSAzMDsJLyogZGVmYXVsdCAoY2hhbmdlZCB0byAzMCwgcGVyIExpbnVzJ3MKKwkJCQkgICBzdWdnZXN0aW9uLCBTdW4gTm92IDIxIDA4OjA1OjA3IDE5OTMpICovCitzdGF0aWMgaW50IGRpcnNpemUgPSAzMjsKK3N0YXRpYyBpbnQgbWFnaWMgPSBNSU5JWF9TVVBFUl9NQUdJQzI7CitzdGF0aWMgaW50IHZlcnNpb24yID0gMDsKKworc3RhdGljIGNoYXIgcm9vdF9ibG9ja1tCTE9DS19TSVpFXSA9ICJcMCI7CisKK3N0YXRpYyBjaGFyICogaW5vZGVfYnVmZmVyID0gTlVMTDsKKyNkZWZpbmUgSW5vZGUgKCgoc3RydWN0IG1pbml4X2lub2RlICopIGlub2RlX2J1ZmZlciktMSkKKyNkZWZpbmUgSW5vZGUyICgoKHN0cnVjdCBtaW5peDJfaW5vZGUgKikgaW5vZGVfYnVmZmVyKS0xKQorCitzdGF0aWMgY2hhciAqc3VwZXJfYmxvY2tfYnVmZmVyOworc3RhdGljIGNoYXIgYm9vdF9ibG9ja19idWZmZXJbNTEyXTsKKyNkZWZpbmUgU3VwZXIgKCooc3RydWN0IG1pbml4X3N1cGVyX2Jsb2NrICopc3VwZXJfYmxvY2tfYnVmZmVyKQorI2RlZmluZSBJTk9ERVMgKCh1bnNpZ25lZCBsb25nKVN1cGVyLnNfbmlub2RlcykKKyNkZWZpbmUgWk9ORVMgKCh1bnNpZ25lZCBsb25nKSh2ZXJzaW9uMiA/IFN1cGVyLnNfem9uZXMgOiBTdXBlci5zX256b25lcykpCisjZGVmaW5lIElNQVBTICgodW5zaWduZWQgbG9uZylTdXBlci5zX2ltYXBfYmxvY2tzKQorI2RlZmluZSBaTUFQUyAoKHVuc2lnbmVkIGxvbmcpU3VwZXIuc196bWFwX2Jsb2NrcykKKyNkZWZpbmUgRklSU1RaT05FICgodW5zaWduZWQgbG9uZylTdXBlci5zX2ZpcnN0ZGF0YXpvbmUpCisjZGVmaW5lIFpPTkVTSVpFICgodW5zaWduZWQgbG9uZylTdXBlci5zX2xvZ196b25lX3NpemUpCisjZGVmaW5lIE1BWFNJWkUgKCh1bnNpZ25lZCBsb25nKVN1cGVyLnNfbWF4X3NpemUpCisjZGVmaW5lIE1BR0lDIChTdXBlci5zX21hZ2ljKQorI2RlZmluZSBOT1JNX0ZJUlNUWk9ORSAoMitJTUFQUytaTUFQUytJTk9ERV9CTE9DS1MpCisKK3N0YXRpYyBjaGFyICppbm9kZV9tYXA7CitzdGF0aWMgY2hhciAqem9uZV9tYXA7CisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBnb29kX2Jsb2Nrc190YWJsZVtNQVhfR09PRF9CTE9DS1NdOworc3RhdGljIGludCB1c2VkX2dvb2RfYmxvY2tzID0gMDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHJlcV9ucl9pbm9kZXMgPSAwOworCisjZGVmaW5lIHpvbmVfaW5fdXNlKHgpIChpc3NldCh6b25lX21hcCwoeCktRklSU1RaT05FKzEpICE9IDApCisKKyNkZWZpbmUgbWFya19pbm9kZSh4KSAoc2V0Yml0KGlub2RlX21hcCwoeCkpKQorI2RlZmluZSB1bm1hcmtfaW5vZGUoeCkgKGNscmJpdChpbm9kZV9tYXAsKHgpKSkKKworI2RlZmluZSBtYXJrX3pvbmUoeCkgKHNldGJpdCh6b25lX21hcCwoeCktRklSU1RaT05FKzEpKQorI2RlZmluZSB1bm1hcmtfem9uZSh4KSAoY2xyYml0KHpvbmVfbWFwLCh4KS1GSVJTVFpPTkUrMSkpCisKK3N0YXRpYyB2b2lkCitkaWUoY2hhciAqc3RyKSB7CisJZnByaW50ZihzdGRlcnIsICIlczogIiwgcHJvZ3JhbV9uYW1lKTsKKwlmcHJpbnRmKHN0ZGVyciwgc3RyLCBkZXZpY2VfbmFtZSk7CisJZnByaW50ZihzdGRlcnIsICJcbiIpOworCWV4aXQoOCk7Cit9CisKK3N0YXRpYyB2b2lkCit1c2FnZSh2b2lkKSB7CisJZnByaW50ZihzdGRlcnIsICIlcyAoJXMpXG4iLCBwcm9ncmFtX25hbWUsIFBBQ0tBR0VfU1RSSU5HKTsKKwlmcHJpbnRmKHN0ZGVyciwKKwkJXygiVXNhZ2U6ICVzIFstYyB8IC1sIGZpbGVuYW1lXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIiksCisJCSAgcHJvZ3JhbV9uYW1lKTsKKwlleGl0KDE2KTsKK30KKworLyoKKyAqIENoZWNrIHRvIG1ha2UgY2VydGFpbiB0aGF0IG91ciBuZXcgZmlsZXN5c3RlbSB3b24ndCBiZSBjcmVhdGVkIG9uCisgKiBhbiBhbHJlYWR5IG1vdW50ZWQgcGFydGl0aW9uLiAgQ29kZSBhZGFwdGVkIGZyb20gbWtlMmZzLCBDb3B5cmlnaHQKKyAqIChDKSAxOTk0IFRoZW9kb3JlIFRzJ28uICBBbHNvIGxpY2Vuc2VkIHVuZGVyIEdQTC4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX21vdW50KHZvaWQpIHsKKwlGSUxFICogZjsKKwlzdHJ1Y3QgbW50ZW50ICogbW50OworCisJaWYgKChmID0gc2V0bW50ZW50IChfUEFUSF9NT1VOVEVELCAiciIpKSA9PSBOVUxMKQorCQlyZXR1cm47CisJd2hpbGUgKChtbnQgPSBnZXRtbnRlbnQgKGYpKSAhPSBOVUxMKQorCQlpZiAoc3RyY21wIChkZXZpY2VfbmFtZSwgbW50LT5tbnRfZnNuYW1lKSA9PSAwKQorCQkJYnJlYWs7CisJZW5kbW50ZW50IChmKTsKKwlpZiAoIW1udCkKKwkJcmV0dXJuOworCisJZGllKF8oIiVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2UgYSBmaWxlc3lzdGVtIGhlcmUhIikpOworfQorCitzdGF0aWMgdm9pZAord3JpdGVfdGFibGVzKHZvaWQpIHsKKwkvKiBNYXJrIHRoZSBzdXBlciBibG9jayB2YWxpZC4gKi8KKwlTdXBlci5zX3N0YXRlIHw9IE1JTklYX1ZBTElEX0ZTOworCVN1cGVyLnNfc3RhdGUgJj0gfk1JTklYX0VSUk9SX0ZTOworCisJaWYgKGxzZWVrKERFViwgMCwgU0VFS19TRVQpKQorCQlkaWUoXygic2VlayB0byBib290IGJsb2NrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiKSk7CisJaWYgKDUxMiAhPSB3cml0ZShERVYsIGJvb3RfYmxvY2tfYnVmZmVyLCA1MTIpKQorCQlkaWUoXygidW5hYmxlIHRvIGNsZWFyIGJvb3Qgc2VjdG9yIikpOworCWlmIChCTE9DS19TSVpFICE9IGxzZWVrKERFViwgQkxPQ0tfU0laRSwgU0VFS19TRVQpKQorCQlkaWUoXygic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIikpOworCWlmIChCTE9DS19TSVpFICE9IHdyaXRlKERFViwgc3VwZXJfYmxvY2tfYnVmZmVyLCBCTE9DS19TSVpFKSkKKwkJZGllKF8oInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIpKTsKKwlpZiAoSU1BUFMqQkxPQ0tfU0laRSAhPSB3cml0ZShERVYsaW5vZGVfbWFwLElNQVBTKkJMT0NLX1NJWkUpKQorCQlkaWUoXygidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIpKTsKKwlpZiAoWk1BUFMqQkxPQ0tfU0laRSAhPSB3cml0ZShERVYsem9uZV9tYXAsWk1BUFMqQkxPQ0tfU0laRSkpCisJCWRpZShfKCJ1bmFibGUgdG8gd3JpdGUgem9uZSBtYXAiKSk7CisJaWYgKElOT0RFX0JVRkZFUl9TSVpFICE9IHdyaXRlKERFVixpbm9kZV9idWZmZXIsSU5PREVfQlVGRkVSX1NJWkUpKQorCQlkaWUoXygidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIpKTsKKwkKK30KKworc3RhdGljIHZvaWQKK3dyaXRlX2Jsb2NrKGludCBibGssIGNoYXIgKiBidWZmZXIpIHsKKwlpZiAoYmxrKkJMT0NLX1NJWkUgIT0gbHNlZWsoREVWLCBibGsqQkxPQ0tfU0laRSwgU0VFS19TRVQpKQorCQlkaWUoXygic2VlayBmYWlsZWQgaW4gd3JpdGVfYmxvY2siKSk7CisJaWYgKEJMT0NLX1NJWkUgIT0gd3JpdGUoREVWLCBidWZmZXIsIEJMT0NLX1NJWkUpKQorCQlkaWUoXygid3JpdGUgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIikpOworfQorCitzdGF0aWMgaW50CitnZXRfZnJlZV9ibG9jayh2b2lkKSB7CisJaW50IGJsazsKKworCWlmICh1c2VkX2dvb2RfYmxvY2tzKzEgPj0gTUFYX0dPT0RfQkxPQ0tTKQorCQlkaWUoXygidG9vIG1hbnkgYmFkIGJsb2NrcyIpKTsKKwlpZiAodXNlZF9nb29kX2Jsb2NrcykKKwkJYmxrID0gZ29vZF9ibG9ja3NfdGFibGVbdXNlZF9nb29kX2Jsb2Nrcy0xXSsxOworCWVsc2UKKwkJYmxrID0gRklSU1RaT05FOworCXdoaWxlIChibGsgPCBaT05FUyAmJiB6b25lX2luX3VzZShibGspKQorCQlibGsrKzsKKwlpZiAoYmxrID49IFpPTkVTKQorCQlkaWUoXygibm90IGVub3VnaCBnb29kIGJsb2NrcyIpKTsKKwlnb29kX2Jsb2Nrc190YWJsZVt1c2VkX2dvb2RfYmxvY2tzXSA9IGJsazsKKwl1c2VkX2dvb2RfYmxvY2tzKys7CisJcmV0dXJuIGJsazsKK30KKworc3RhdGljIHZvaWQKK21hcmtfZ29vZF9ibG9ja3Modm9pZCkgeworCWludCBibGs7CisKKwlmb3IgKGJsaz0wIDsgYmxrIDwgdXNlZF9nb29kX2Jsb2NrcyA7IGJsaysrKQorCQltYXJrX3pvbmUoZ29vZF9ibG9ja3NfdGFibGVbYmxrXSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CituZXh0KGludCB6b25lKSB7CisJaWYgKCF6b25lKQorCQl6b25lID0gRklSU1RaT05FLTE7CisJd2hpbGUgKCsrem9uZSA8IFpPTkVTKQorCQlpZiAoem9uZV9pbl91c2Uoem9uZSkpCisJCQlyZXR1cm4gem9uZTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK21ha2VfYmFkX2lub2RlKHZvaWQpIHsKKwlzdHJ1Y3QgbWluaXhfaW5vZGUgKiBpbm9kZSA9ICZJbm9kZVtNSU5JWF9CQURfSU5PXTsKKwlpbnQgaSxqLHpvbmU7CisJaW50IGluZD0wLGRpbmQ9MDsKKwl1bnNpZ25lZCBzaG9ydCBpbmRfYmxvY2tbQkxPQ0tfU0laRT4+MV07CisJdW5zaWduZWQgc2hvcnQgZGluZF9ibG9ja1tCTE9DS19TSVpFPj4xXTsKKworI2RlZmluZSBORVhUX0JBRCAoem9uZSA9IG5leHQoem9uZSkpCisKKwlpZiAoIWJhZGJsb2NrcykKKwkJcmV0dXJuOworCW1hcmtfaW5vZGUoTUlOSVhfQkFEX0lOTyk7CisJaW5vZGUtPmlfbmxpbmtzID0gMTsKKwlpbm9kZS0+aV90aW1lID0gdGltZShOVUxMKTsKKwlpbm9kZS0+aV9tb2RlID0gU19JRlJFRyArIDAwMDA7CisJaW5vZGUtPmlfc2l6ZSA9IGJhZGJsb2NrcypCTE9DS19TSVpFOworCXpvbmUgPSBuZXh0KDApOworCWZvciAoaT0wIDsgaTw3IDsgaSsrKSB7CisJCWlub2RlLT5pX3pvbmVbaV0gPSB6b25lOworCQlpZiAoIU5FWFRfQkFEKQorCQkJZ290byBlbmRfYmFkOworCX0KKwlpbm9kZS0+aV96b25lWzddID0gaW5kID0gZ2V0X2ZyZWVfYmxvY2soKTsKKwltZW1zZXQoaW5kX2Jsb2NrLDAsQkxPQ0tfU0laRSk7CisJZm9yIChpPTAgOyBpPDUxMiA7IGkrKykgeworCQlpbmRfYmxvY2tbaV0gPSB6b25lOworCQlpZiAoIU5FWFRfQkFEKQorCQkJZ290byBlbmRfYmFkOworCX0KKwlpbm9kZS0+aV96b25lWzhdID0gZGluZCA9IGdldF9mcmVlX2Jsb2NrKCk7CisJbWVtc2V0KGRpbmRfYmxvY2ssMCxCTE9DS19TSVpFKTsKKwlmb3IgKGk9MCA7IGk8NTEyIDsgaSsrKSB7CisJCXdyaXRlX2Jsb2NrKGluZCwoY2hhciAqKSBpbmRfYmxvY2spOworCQlkaW5kX2Jsb2NrW2ldID0gaW5kID0gZ2V0X2ZyZWVfYmxvY2soKTsKKwkJbWVtc2V0KGluZF9ibG9jaywwLEJMT0NLX1NJWkUpOworCQlmb3IgKGo9MCA7IGo8NTEyIDsgaisrKSB7CisJCQlpbmRfYmxvY2tbal0gPSB6b25lOworCQkJaWYgKCFORVhUX0JBRCkKKwkJCQlnb3RvIGVuZF9iYWQ7CisJCX0KKwl9CisJZGllKF8oInRvbyBtYW55IGJhZCBibG9ja3MiKSk7CitlbmRfYmFkOgorCWlmIChpbmQpCisJCXdyaXRlX2Jsb2NrKGluZCwgKGNoYXIgKikgaW5kX2Jsb2NrKTsKKwlpZiAoZGluZCkKKwkJd3JpdGVfYmxvY2soZGluZCwgKGNoYXIgKikgZGluZF9ibG9jayk7Cit9CisKK3N0YXRpYyB2b2lkCittYWtlX2JhZF9pbm9kZTIgKHZvaWQpIHsKKwlzdHJ1Y3QgbWluaXgyX2lub2RlICppbm9kZSA9ICZJbm9kZTJbTUlOSVhfQkFEX0lOT107CisJaW50IGksIGosIHpvbmU7CisJaW50IGluZCA9IDAsIGRpbmQgPSAwOworCXVuc2lnbmVkIGxvbmcgaW5kX2Jsb2NrW0JMT0NLX1NJWkUgPj4gMl07CisJdW5zaWduZWQgbG9uZyBkaW5kX2Jsb2NrW0JMT0NLX1NJWkUgPj4gMl07CisKKwlpZiAoIWJhZGJsb2NrcykKKwkJcmV0dXJuOworCW1hcmtfaW5vZGUgKE1JTklYX0JBRF9JTk8pOworCWlub2RlLT5pX25saW5rcyA9IDE7CisJaW5vZGUtPmlfYXRpbWUgPSBpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2N0aW1lID0gdGltZSAoTlVMTCk7CisJaW5vZGUtPmlfbW9kZSA9IFNfSUZSRUcgKyAwMDAwOworCWlub2RlLT5pX3NpemUgPSBiYWRibG9ja3MgKiBCTE9DS19TSVpFOworCXpvbmUgPSBuZXh0ICgwKTsKKwlmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7CisJCWlub2RlLT5pX3pvbmVbaV0gPSB6b25lOworCQlpZiAoIU5FWFRfQkFEKQorCQkJZ290byBlbmRfYmFkOworCX0KKwlpbm9kZS0+aV96b25lWzddID0gaW5kID0gZ2V0X2ZyZWVfYmxvY2sgKCk7CisJbWVtc2V0IChpbmRfYmxvY2ssIDAsIEJMT0NLX1NJWkUpOworCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgeworCQlpbmRfYmxvY2tbaV0gPSB6b25lOworCQlpZiAoIU5FWFRfQkFEKQorCQkJZ290byBlbmRfYmFkOworCX0KKwlpbm9kZS0+aV96b25lWzhdID0gZGluZCA9IGdldF9mcmVlX2Jsb2NrICgpOworCW1lbXNldCAoZGluZF9ibG9jaywgMCwgQkxPQ0tfU0laRSk7CisJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CisJCXdyaXRlX2Jsb2NrIChpbmQsIChjaGFyICopIGluZF9ibG9jayk7CisJCWRpbmRfYmxvY2tbaV0gPSBpbmQgPSBnZXRfZnJlZV9ibG9jayAoKTsKKwkJbWVtc2V0IChpbmRfYmxvY2ssIDAsIEJMT0NLX1NJWkUpOworCQlmb3IgKGogPSAwOyBqIDwgMjU2OyBqKyspIHsKKwkJCWluZF9ibG9ja1tqXSA9IHpvbmU7CisJCQlpZiAoIU5FWFRfQkFEKQorCQkJCWdvdG8gZW5kX2JhZDsKKwkJfQorCX0KKwkvKiBDb3VsZCBtYWtlIHRyaXBsZSBpbmRpcmVjdCBibG9jayBoZXJlICovCisJZGllIChfKCJ0b28gbWFueSBiYWQgYmxvY2tzIikpOworIGVuZF9iYWQ6CisJaWYgKGluZCkKKwkJd3JpdGVfYmxvY2sgKGluZCwgKGNoYXIgKikgaW5kX2Jsb2NrKTsKKwlpZiAoZGluZCkKKwkJd3JpdGVfYmxvY2sgKGRpbmQsIChjaGFyICopIGRpbmRfYmxvY2spOworfQorCitzdGF0aWMgdm9pZAorbWFrZV9yb290X2lub2RlKHZvaWQpIHsKKwlzdHJ1Y3QgbWluaXhfaW5vZGUgKiBpbm9kZSA9ICZJbm9kZVtNSU5JWF9ST09UX0lOT107CisKKwltYXJrX2lub2RlKE1JTklYX1JPT1RfSU5PKTsKKwlpbm9kZS0+aV96b25lWzBdID0gZ2V0X2ZyZWVfYmxvY2soKTsKKwlpbm9kZS0+aV9ubGlua3MgPSAyOworCWlub2RlLT5pX3RpbWUgPSB0aW1lKE5VTEwpOworCWlmIChiYWRibG9ja3MpCisJCWlub2RlLT5pX3NpemUgPSAzKmRpcnNpemU7CisJZWxzZSB7CisJCXJvb3RfYmxvY2tbMipkaXJzaXplXSA9ICdcMCc7CisJCXJvb3RfYmxvY2tbMipkaXJzaXplKzFdID0gJ1wwJzsKKwkJaW5vZGUtPmlfc2l6ZSA9IDIqZGlyc2l6ZTsKKwl9CisJaW5vZGUtPmlfbW9kZSA9IFNfSUZESVIgKyAwNzU1OworCWlub2RlLT5pX3VpZCA9IGdldHVpZCgpOworCWlmIChpbm9kZS0+aV91aWQpCisJCWlub2RlLT5pX2dpZCA9IGdldGdpZCgpOworCXdyaXRlX2Jsb2NrKGlub2RlLT5pX3pvbmVbMF0scm9vdF9ibG9jayk7Cit9CisKK3N0YXRpYyB2b2lkCittYWtlX3Jvb3RfaW5vZGUyICh2b2lkKSB7CisJc3RydWN0IG1pbml4Ml9pbm9kZSAqaW5vZGUgPSAmSW5vZGUyW01JTklYX1JPT1RfSU5PXTsKKworCW1hcmtfaW5vZGUgKE1JTklYX1JPT1RfSU5PKTsKKwlpbm9kZS0+aV96b25lWzBdID0gZ2V0X2ZyZWVfYmxvY2sgKCk7CisJaW5vZGUtPmlfbmxpbmtzID0gMjsKKwlpbm9kZS0+aV9hdGltZSA9IGlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSB0aW1lIChOVUxMKTsKKwlpZiAoYmFkYmxvY2tzKQorCQlpbm9kZS0+aV9zaXplID0gMyAqIGRpcnNpemU7CisJZWxzZSB7CisJCXJvb3RfYmxvY2tbMiAqIGRpcnNpemVdID0gJ1wwJzsKKwkJcm9vdF9ibG9ja1syICogZGlyc2l6ZSArIDFdID0gJ1wwJzsKKwkJaW5vZGUtPmlfc2l6ZSA9IDIgKiBkaXJzaXplOworCX0KKwlpbm9kZS0+aV9tb2RlID0gU19JRkRJUiArIDA3NTU7CisJaW5vZGUtPmlfdWlkID0gZ2V0dWlkKCk7CisJaWYgKGlub2RlLT5pX3VpZCkKKwkJaW5vZGUtPmlfZ2lkID0gZ2V0Z2lkKCk7CisJd3JpdGVfYmxvY2sgKGlub2RlLT5pX3pvbmVbMF0sIHJvb3RfYmxvY2spOworfQorCitzdGF0aWMgdm9pZAorc2V0dXBfdGFibGVzKHZvaWQpIHsKKwlpbnQgaTsKKwl1bnNpZ25lZCBsb25nIGlub2RlczsKKworCXN1cGVyX2Jsb2NrX2J1ZmZlciA9IGNhbGxvYygxLCBCTE9DS19TSVpFKTsKKwlpZiAoIXN1cGVyX2Jsb2NrX2J1ZmZlcikKKwkJZGllKF8oInVuYWJsZSB0byBhbGxvYyBidWZmZXIgZm9yIHN1cGVyYmxvY2siKSk7CisKKwltZW1zZXQoYm9vdF9ibG9ja19idWZmZXIsMCw1MTIpOworCVN1cGVyLnNfbWFnaWMgPSBtYWdpYzsKKwlTdXBlci5zX2xvZ196b25lX3NpemUgPSAwOworCVN1cGVyLnNfbWF4X3NpemUgPSB2ZXJzaW9uMiA/IDB4N2ZmZmZmZmYgOiAoNys1MTIrNTEyKjUxMikqMTAyNDsKKwlpZiAodmVyc2lvbjIpCisJCVN1cGVyLnNfem9uZXMgPSBCTE9DS1M7CisJZWxzZQorCQlTdXBlci5zX256b25lcyA9IEJMT0NLUzsKKworLyogc29tZSBtYWdpYyBucnM6IDEgaW5vZGUgLyAzIGJsb2NrcyAqLworCWlmICggcmVxX25yX2lub2RlcyA9PSAwICkgCisJCWlub2RlcyA9IEJMT0NLUy8zOworCWVsc2UKKwkJaW5vZGVzID0gcmVxX25yX2lub2RlczsKKwkvKiBSb3VuZCB1cCBpbm9kZSBjb3VudCB0byBmaWxsIGJsb2NrIHNpemUgKi8KKwlpZiAodmVyc2lvbjIpCisJCWlub2RlcyA9ICgoaW5vZGVzICsgTUlOSVgyX0lOT0RFU19QRVJfQkxPQ0sgLSAxKSAmCisJCQkgIH4oTUlOSVgyX0lOT0RFU19QRVJfQkxPQ0sgLSAxKSk7CisJZWxzZQorCQlpbm9kZXMgPSAoKGlub2RlcyArIE1JTklYX0lOT0RFU19QRVJfQkxPQ0sgLSAxKSAmCisJCQkgIH4oTUlOSVhfSU5PREVTX1BFUl9CTE9DSyAtIDEpKTsKKwlpZiAoaW5vZGVzID4gNjU1MzUpCisJCWlub2RlcyA9IDY1NTM1OworCVN1cGVyLnNfbmlub2RlcyA9IGlub2RlczsKKworCS8qIFRoZSBvbGQgY29kZSBoZXJlCisJICogWk1BUFMgPSAwOworCSAqIHdoaWxlIChaTUFQUyAhPSBVUFBFUihCTE9DS1MgLSBOT1JNX0ZJUlNUWk9ORSArIDEsQklUU19QRVJfQkxPQ0spKQorCSAqCSAgWk1BUFMgPSBVUFBFUihCTE9DS1MgLSBOT1JNX0ZJUlNUWk9ORSArIDEsQklUU19QRVJfQkxPQ0spOworCSAqIHdhcyBubyBnb29kLCBzaW5jZSBpdCBtYXkgbG9vcC4gLSBhZWIKKwkgKi8KKwlTdXBlci5zX2ltYXBfYmxvY2tzID0gVVBQRVIoSU5PREVTICsgMSwgQklUU19QRVJfQkxPQ0spOworCVN1cGVyLnNfem1hcF9ibG9ja3MgPSBVUFBFUihCTE9DS1MgLSAoMStJTUFQUytJTk9ERV9CTE9DS1MpLAorCQkJCSAgICBCSVRTX1BFUl9CTE9DSysxKTsKKwlTdXBlci5zX2ZpcnN0ZGF0YXpvbmUgPSBOT1JNX0ZJUlNUWk9ORTsKKworCWlub2RlX21hcCA9IG1hbGxvYyhJTUFQUyAqIEJMT0NLX1NJWkUpOworCXpvbmVfbWFwID0gbWFsbG9jKFpNQVBTICogQkxPQ0tfU0laRSk7CisJaWYgKCFpbm9kZV9tYXAgfHwgIXpvbmVfbWFwKQorCQlkaWUoXygidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiKSk7CisJbWVtc2V0KGlub2RlX21hcCwweGZmLElNQVBTICogQkxPQ0tfU0laRSk7CisJbWVtc2V0KHpvbmVfbWFwLDB4ZmYsWk1BUFMgKiBCTE9DS19TSVpFKTsKKwlmb3IgKGkgPSBGSVJTVFpPTkUgOyBpPFpPTkVTIDsgaSsrKQorCQl1bm1hcmtfem9uZShpKTsKKwlmb3IgKGkgPSBNSU5JWF9ST09UX0lOTyA7IGk8PUlOT0RFUyA7IGkrKykKKwkJdW5tYXJrX2lub2RlKGkpOworCWlub2RlX2J1ZmZlciA9IG1hbGxvYyhJTk9ERV9CVUZGRVJfU0laRSk7CisJaWYgKCFpbm9kZV9idWZmZXIpCisJCWRpZShfKCJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiKSk7CisJbWVtc2V0KGlub2RlX2J1ZmZlciwwLElOT0RFX0JVRkZFUl9TSVpFKTsKKwlwcmludGYoXygiJWxkIGlub2Rlc1xuIiksSU5PREVTKTsKKwlwcmludGYoXygiJWxkIGJsb2Nrc1xuIiksWk9ORVMpOworCXByaW50ZihfKCJGaXJzdGRhdGF6b25lPSVsZCAoJWxkKVxuIiksRklSU1RaT05FLE5PUk1fRklSU1RaT05FKTsKKwlwcmludGYoXygiWm9uZXNpemU9JWRcbiIpLEJMT0NLX1NJWkU8PFpPTkVTSVpFKTsKKwlwcmludGYoXygiTWF4c2l6ZT0lbGRcblxuIiksTUFYU0laRSk7Cit9CisKKy8qCisgKiBQZXJmb3JtIGEgdGVzdCBvZiBhIGJsb2NrOyByZXR1cm4gdGhlIG51bWJlciBvZgorICogYmxvY2tzIHJlYWRhYmxlL3dyaXRlYWJsZS4KKyAqLworc3RhdGljIGxvbmcKK2RvX2NoZWNrKGNoYXIgKiBidWZmZXIsIGludCB0cnksIHVuc2lnbmVkIGludCBjdXJyZW50X2Jsb2NrKSB7CisJbG9uZyBnb3Q7CisJCisJLyogU2VlayB0byB0aGUgY29ycmVjdCBsb2MuICovCisJaWYgKGxzZWVrKERFViwgY3VycmVudF9ibG9jayAqIEJMT0NLX1NJWkUsIFNFRUtfU0VUKSAhPQorCQkgICAgICAgY3VycmVudF9ibG9jayAqIEJMT0NLX1NJWkUgKSB7CisJCSBkaWUoXygic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIikpOworCX0KKworCisJLyogVHJ5IHRoZSByZWFkICovCisJZ290ID0gcmVhZChERVYsIGJ1ZmZlciwgdHJ5ICogQkxPQ0tfU0laRSk7CisJaWYgKGdvdCA8IDApIGdvdCA9IDA7CQorCWlmIChnb3QgJiAoQkxPQ0tfU0laRSAtIDEgKSkgeworCQlwcmludGYoXygiV2VpcmQgdmFsdWVzIGluIGRvX2NoZWNrOiBwcm9iYWJseSBidWdzXG4iKSk7CisJfQorCWdvdCAvPSBCTE9DS19TSVpFOworCXJldHVybiBnb3Q7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgY3VycmVudGx5X3Rlc3RpbmcgPSAwOworCitzdGF0aWMgdm9pZAorYWxhcm1faW50cihpbnQgYWxudW0pIHsKKwlpZiAoY3VycmVudGx5X3Rlc3RpbmcgPj0gWk9ORVMpCisJCXJldHVybjsKKwlzaWduYWwoU0lHQUxSTSxhbGFybV9pbnRyKTsKKwlhbGFybSg1KTsKKwlpZiAoIWN1cnJlbnRseV90ZXN0aW5nKQorCQlyZXR1cm47CisJcHJpbnRmKCIlZCAuLi4iLCBjdXJyZW50bHlfdGVzdGluZyk7CisJZmZsdXNoKHN0ZG91dCk7Cit9CisKK3N0YXRpYyB2b2lkCitjaGVja19ibG9ja3Modm9pZCkgeworCWludCB0cnksZ290OworCXN0YXRpYyBjaGFyIGJ1ZmZlcltCTE9DS19TSVpFICogVEVTVF9CVUZGRVJfQkxPQ0tTXTsKKworCWN1cnJlbnRseV90ZXN0aW5nPTA7CisJc2lnbmFsKFNJR0FMUk0sYWxhcm1faW50cik7CisJYWxhcm0oNSk7CisJd2hpbGUgKGN1cnJlbnRseV90ZXN0aW5nIDwgWk9ORVMpIHsKKwkJaWYgKGxzZWVrKERFVixjdXJyZW50bHlfdGVzdGluZypCTE9DS19TSVpFLFNFRUtfU0VUKSAhPQorCQljdXJyZW50bHlfdGVzdGluZypCTE9DS19TSVpFKQorCQkJZGllKF8oInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIpKTsKKwkJdHJ5ID0gVEVTVF9CVUZGRVJfQkxPQ0tTOworCQlpZiAoY3VycmVudGx5X3Rlc3RpbmcgKyB0cnkgPiBaT05FUykKKwkJCXRyeSA9IFpPTkVTLWN1cnJlbnRseV90ZXN0aW5nOworCQlnb3QgPSBkb19jaGVjayhidWZmZXIsIHRyeSwgY3VycmVudGx5X3Rlc3RpbmcpOworCQljdXJyZW50bHlfdGVzdGluZyArPSBnb3Q7CisJCWlmIChnb3QgPT0gdHJ5KQorCQkJY29udGludWU7CisJCWlmIChjdXJyZW50bHlfdGVzdGluZyA8IEZJUlNUWk9ORSkKKwkJCWRpZShfKCJiYWQgYmxvY2tzIGJlZm9yZSBkYXRhLWFyZWE6IGNhbm5vdCBtYWtlIGZzIikpOworCQltYXJrX3pvbmUoY3VycmVudGx5X3Rlc3RpbmcpOworCQliYWRibG9ja3MrKzsKKwkJY3VycmVudGx5X3Rlc3RpbmcrKzsKKwl9CisJaWYgKGJhZGJsb2NrcyA+IDEpCisJCXByaW50ZihfKCIlZCBiYWQgYmxvY2tzXG4iKSwgYmFkYmxvY2tzKTsKKwllbHNlIGlmIChiYWRibG9ja3MgPT0gMSkKKwkJcHJpbnRmKF8oIm9uZSBiYWQgYmxvY2tcbiIpKTsKK30KKworc3RhdGljIHZvaWQKK2dldF9saXN0X2Jsb2NrcyhjaGFyICpmaWxlbmFtZSkgeworCUZJTEUgKmxpc3RmaWxlOworCXVuc2lnbmVkIGxvbmcgYmxvY2tubzsKKworCWxpc3RmaWxlID0gZm9wZW4oZmlsZW5hbWUsInIiKTsKKwlpZiAobGlzdGZpbGUgPT0gTlVMTCkKKwkJZGllKF8oImNhbid0IG9wZW4gZmlsZSBvZiBiYWQgYmxvY2tzIikpOworCisJd2hpbGUgKCFmZW9mKGxpc3RmaWxlKSkgeworCQlpZiAoZnNjYW5mKGxpc3RmaWxlLCIlbGRcbiIsICZibG9ja25vKSAhPSAxKSB7CisJCQlwcmludGYoXygiYmFkYmxvY2sgbnVtYmVyIGlucHV0IGVycm9yIG9uIGxpbmUgJWRcbiIpLCBiYWRibG9ja3MgKyAxKTsKKwkJCWRpZShfKCJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIpKTsKKwkJfQorCQltYXJrX3pvbmUoYmxvY2tubyk7CisJCWJhZGJsb2NrcysrOworCX0KKwlmY2xvc2UobGlzdGZpbGUpOworCisJaWYoYmFkYmxvY2tzID4gMSkKKwkJcHJpbnRmKF8oIiVkIGJhZCBibG9ja3NcbiIpLCBiYWRibG9ja3MpOworCWVsc2UgaWYgKGJhZGJsb2NrcyA9PSAxKQorCQlwcmludGYoXygib25lIGJhZCBibG9ja1xuIikpOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiogYXJndikgeworICBpbnQgaTsKKyAgY2hhciAqIHRtcDsKKyAgc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKyAgY2hhciAqIGxpc3RmaWxlID0gTlVMTDsKKyAgY2hhciAqIHA7CisKKyAgaWYgKGFyZ2MgJiYgKmFyZ3YpCisgICAgcHJvZ3JhbV9uYW1lID0gKmFyZ3Y7CisgIGlmICgocCA9IHN0cnJjaHIocHJvZ3JhbV9uYW1lLCAnLycpKSAhPSBOVUxMKQorICAgIHByb2dyYW1fbmFtZSA9IHArMTsKKworICBzZXRsb2NhbGUoTENfQUxMLCAiIik7CisgIGJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgaWYgKGFyZ2MgPT0gMiAmJgorICAgICAgKCFzdHJjbXAoYXJndlsxXSwgIi1WIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiLS12ZXJzaW9uIikpKSB7CisJICBwcmludGYoXygiJXMgKCVzKVxuIiksIHByb2dyYW1fbmFtZSwgUEFDS0FHRV9TVFJJTkcpOworCSAgZXhpdCgwKTsKKyAgfQorCisgIGlmIChJTk9ERV9TSVpFICogTUlOSVhfSU5PREVTX1BFUl9CTE9DSyAhPSBCTE9DS19TSVpFKQorICAgIGRpZShfKCJiYWQgaW5vZGUgc2l6ZSIpKTsKKyAgaWYgKElOT0RFX1NJWkUyICogTUlOSVgyX0lOT0RFU19QRVJfQkxPQ0sgIT0gQkxPQ0tfU0laRSkKKyAgICBkaWUoXygiYmFkIGlub2RlIHNpemUiKSk7CisKKyAgb3B0ZXJyID0gMDsKKyAgd2hpbGUgKChpID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJjaTpsOm46diIpKSAhPSAtMSkKKyAgICBzd2l0Y2ggKGkpIHsKKyAgICAgIGNhc2UgJ2MnOgorCWNoZWNrPTE7IGJyZWFrOworICAgICAgY2FzZSAnaSc6CisJcmVxX25yX2lub2RlcyA9ICh1bnNpZ25lZCBsb25nKSBhdG9sKG9wdGFyZyk7CisJYnJlYWs7CisgICAgICBjYXNlICdsJzoKKwlsaXN0ZmlsZSA9IG9wdGFyZzsgYnJlYWs7CisgICAgICBjYXNlICduJzoKKwlpID0gc3RydG91bChvcHRhcmcsJnRtcCwwKTsKKwlpZiAoKnRtcCkKKwkgIHVzYWdlKCk7CisJaWYgKGkgPT0gMTQpCisJICBtYWdpYyA9IE1JTklYX1NVUEVSX01BR0lDOworCWVsc2UgaWYgKGkgPT0gMzApCisJICBtYWdpYyA9IE1JTklYX1NVUEVSX01BR0lDMjsKKwllbHNlCisJICB1c2FnZSgpOworCW5hbWVsZW4gPSBpOworCWRpcnNpemUgPSBpKzI7CisJYnJlYWs7CisgICAgICBjYXNlICd2JzoKKwl2ZXJzaW9uMiA9IDE7CisJYnJlYWs7CisgICAgICBkZWZhdWx0OgorCXVzYWdlKCk7CisgICAgfQorICBhcmdjIC09IG9wdGluZDsKKyAgYXJndiArPSBvcHRpbmQ7CisgIGlmIChhcmdjID4gMCAmJiAhZGV2aWNlX25hbWUpIHsKKyAgICBkZXZpY2VfbmFtZSA9IGFyZ3ZbMF07CisgICAgYXJnYy0tOworICAgIGFyZ3YrKzsKKyAgfQorICBpZiAoYXJnYyA+IDApIHsKKyAgICAgQkxPQ0tTID0gc3RydG9sKGFyZ3ZbMF0sJnRtcCwwKTsKKyAgICAgaWYgKCp0bXApIHsKKyAgICAgICBwcmludGYoXygic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiKSk7CisgICAgICAgdXNhZ2UoKTsKKyAgICAgfQorICB9CisKKyAgaWYgKCFkZXZpY2VfbmFtZSkgeworICAgIHVzYWdlKCk7CisgIH0KKyAgY2hlY2tfbW91bnQoKTsJCS8qIGlzIGl0IGFscmVhZHkgbW91bnRlZD8gKi8KKyAgdG1wID0gcm9vdF9ibG9jazsKKyAgKihzaG9ydCAqKXRtcCA9IDE7CisgIHN0cmNweSh0bXArMiwiLiIpOworICB0bXAgKz0gZGlyc2l6ZTsKKyAgKihzaG9ydCAqKXRtcCA9IDE7CisgIHN0cmNweSh0bXArMiwiLi4iKTsKKyAgdG1wICs9IGRpcnNpemU7CisgICooc2hvcnQgKil0bXAgPSAyOworICBzdHJjcHkodG1wKzIsIi5iYWRibG9ja3MiKTsKKyAgaWYgKHN0YXQoZGV2aWNlX25hbWUsICZzdGF0YnVmKSA8IDApCisgICAgZGllKF8oInVuYWJsZSB0byBzdGF0ICVzIikpOworICBpZiAoU19JU0JMSyhzdGF0YnVmLnN0X21vZGUpKQorICAgIERFViA9IG9wZW4oZGV2aWNlX25hbWUsT19SRFdSIHwgT19FWENMKTsKKyAgZWxzZQorICAgIERFViA9IG9wZW4oZGV2aWNlX25hbWUsT19SRFdSKTsKKyAgaWYgKERFVjwwKQorICAgIGRpZShfKCJ1bmFibGUgdG8gb3BlbiAlcyIpKTsKKyAgaWYgKFNfSVNCTEsoc3RhdGJ1Zi5zdF9tb2RlKSkgeworICAgIGludCBzZWN0b3JzaXplOworCisgICAgaWYgKGJsa2Rldl9nZXRfc2VjdG9yX3NpemUoREVWLCAmc2VjdG9yc2l6ZSkgPT0gLTEpCisJICAgIGRpZShfKCJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIpKTsKKyAgICBpZiAoQkxPQ0tfU0laRSA8IHNlY3RvcnNpemUpCisJICAgIGRpZShfKCJibG9jayBzaXplIHNtYWxsZXIgdGhhbiBwaHlzaWNhbCBzZWN0b3Igc2l6ZSBvZiAlcyIpKTsKKyAgICBpZiAoIUJMT0NLUykgeworCSAgICBpZiAoYmxrZGV2X2dldF9zaXplKERFViwgJkJMT0NLUykgPT0gLTEpCisJCWRpZShfKCJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiKSk7CisJICAgIEJMT0NLUyAvPSBCTE9DS19TSVpFOworICAgIH0KKyAgfSBlbHNlIGlmICghU19JU0JMSyhzdGF0YnVmLnN0X21vZGUpKSB7CisgICAgaWYgKCFCTE9DS1MpCisJICAgIEJMT0NLUyA9IHN0YXRidWYuc3Rfc2l6ZSAvIEJMT0NLX1NJWkU7CisgICAgY2hlY2s9MDsKKyAgfSBlbHNlIGlmIChzdGF0YnVmLnN0X3JkZXYgPT0gMHgwMzAwIHx8IHN0YXRidWYuc3RfcmRldiA9PSAweDAzNDApCisgICAgZGllKF8oIndpbGwgbm90IHRyeSB0byBtYWtlIGZpbGVzeXN0ZW0gb24gJyVzJyIpKTsKKyAgaWYgKEJMT0NLUyA8IDEwKQorCSAgZGllKF8oIm51bWJlciBvZiBibG9ja3MgdG9vIHNtYWxsIikpOworICBpZiAodmVyc2lvbjIpIHsKKyAgICBpZiAobmFtZWxlbiA9PSAxNCkKKyAgICAgIG1hZ2ljID0gTUlOSVgyX1NVUEVSX01BR0lDOworICAgIGVsc2UKKyAgICAgIG1hZ2ljID0gTUlOSVgyX1NVUEVSX01BR0lDMjsKKyAgfSBlbHNlCisgICAgaWYgKEJMT0NLUyA+IDY1NTM1KQorICAgICAgQkxPQ0tTID0gNjU1MzU7CisgIHNldHVwX3RhYmxlcygpOworICBpZiAoY2hlY2spCisgICAgY2hlY2tfYmxvY2tzKCk7CisgIGVsc2UgaWYgKGxpc3RmaWxlKQorICAgIGdldF9saXN0X2Jsb2NrcyhsaXN0ZmlsZSk7CisgIGlmICh2ZXJzaW9uMikgeworICAgIG1ha2Vfcm9vdF9pbm9kZTIgKCk7CisgICAgbWFrZV9iYWRfaW5vZGUyICgpOworICB9IGVsc2UgeworICAgICAgbWFrZV9yb290X2lub2RlKCk7CisgICAgICBtYWtlX2JhZF9pbm9kZSgpOworICB9CisgIG1hcmtfZ29vZF9ibG9ja3MoKTsKKyAgd3JpdGVfdGFibGVzKCk7CisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9ta3N3YXAuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtzd2FwLjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RiMmE0NAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvbWtzd2FwLjgKQEAgLTAsMCArMSwxNTUgQEAKKy5cIiBDb3B5cmlnaHQgMTk5OCBBbmRyaWVzIEUuIEJyb3V3ZXIgKGFlYkBjd2kubmwpCisuXCIKKy5cIiBNYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisuXCIgUmV3cml0dGVuIGZvciAyLjEuMTE3LCBhZWIsIDk4MTAxMC4KKy5cIgorLlRIIE1LU1dBUCA4ICIxMyBNYXJjaCAyMDA5IiAiTGludXgiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK21rc3dhcCBcLSBzZXQgdXAgYSBMaW51eCBzd2FwIGFyZWEKKy5TSCBTWU5PUFNJUworLkIgbWtzd2FwCisuUkIgWyBcLWMgXQorLlJCIFsgXC1mIF0KKy5SQiBbIFwtcAorLklSIFBTWiBdCisuUkIgWyBcLUwKKy5JUiBsYWJlbCBdCisuUkIgWyBcLVUKKy5JUiB1dWlkIF0KKy5JIGRldmljZQorLlJJIFsgc2l6ZSBdCisuU0ggREVTQ1JJUFRJT04KKy5CIG1rc3dhcAorc2V0cyB1cCBhIExpbnV4IHN3YXAgYXJlYSBvbiBhIGRldmljZSBvciBpbiBhIGZpbGUuCisKK1RoZQorLkkgZGV2aWNlCithcmd1bWVudCB3aWxsIHVzdWFsbHkgYmUgYSBkaXNrIHBhcnRpdGlvbiAoc29tZXRoaW5nIGxpa2UKKy5JUiAvZGV2L3NkYjcgKQorYnV0IGNhbiBhbHNvIGJlIGEgZmlsZS4KK1RoZSBMaW51eCBrZXJuZWwgZG9lcyBub3QgbG9vayBhdCBwYXJ0aXRpb24gSWQncywgYnV0CittYW55IGluc3RhbGxhdGlvbiBzY3JpcHRzIHdpbGwgYXNzdW1lIHRoYXQgcGFydGl0aW9ucworb2YgaGV4IHR5cGUgODIgKExJTlVYX1NXQVApIGFyZSBtZWFudCB0byBiZSBzd2FwIHBhcnRpdGlvbnMuCisoXGZCV2FybmluZzogU29sYXJpcyBhbHNvIHVzZXMgdGhpcyB0eXBlLiBCZSBjYXJlZnVsIG5vdCB0byBraWxsCit5b3VyIFNvbGFyaXMgcGFydGl0aW9ucy5cZlApCisKK1RoZQorLkkgc2l6ZQorcGFyYW1ldGVyIGlzIHN1cGVyZmx1b3VzIGJ1dCByZXRhaW5lZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCisoSXQgc3BlY2lmaWVzIHRoZSBkZXNpcmVkIHNpemUgb2YgdGhlIHN3YXAgYXJlYSBpbiAxMDI0LWJ5dGUgYmxvY2tzLgorLkIgbWtzd2FwCit3aWxsIHVzZSB0aGUgZW50aXJlIHBhcnRpdGlvbiBvciBmaWxlIGlmIGl0IGlzIG9taXR0ZWQuCitTcGVjaWZ5aW5nIGl0IGlzIHVud2lzZSAtIGEgdHlwbyBtYXkgZGVzdHJveSB5b3VyIGRpc2suKQorCitUaGUKKy5JIFBTWgorcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgcGFnZSBzaXplIHRvIHVzZS4gSXQgaXMgYWxtb3N0IGFsd2F5cwordW5uZWNlc3NhcnkgKGV2ZW4gdW53aXNlKSB0byBzcGVjaWZ5IGl0LCBidXQgY2VydGFpbiBvbGQgbGliYwordmVyc2lvbnMgbGllIGFib3V0IHRoZSBwYWdlIHNpemUsIHNvIGl0IGlzIHBvc3NpYmxlIHRoYXQKKy5CIG1rc3dhcAorZ2V0cyBpdCB3cm9uZy4gVGhlIHN5bXB0b20gaXMgdGhhdCBhIHN1YnNlcXVlbnQKKy5CIHN3YXBvbgorZmFpbHMgYmVjYXVzZSBubyBzd2FwIHNpZ25hdHVyZSBpcyBmb3VuZC4gVHlwaWNhbCB2YWx1ZXMgZm9yCisuSSBQU1oKK2FyZSA0MDk2IG9yIDgxOTIuCisKK0FmdGVyIGNyZWF0aW5nIHRoZSBzd2FwIGFyZWEsIHlvdSBuZWVkIHRoZQorLkIgc3dhcG9uCitjb21tYW5kIHRvIHN0YXJ0IHVzaW5nIGl0LiBVc3VhbGx5IHN3YXAgYXJlYXMgYXJlIGxpc3RlZCBpbgorLkkgL2V0Yy9mc3RhYgorc28gdGhhdCB0aGV5IGNhbiBiZSB0YWtlbiBpbnRvIHVzZSBhdCBib290IHRpbWUgYnkgYQorLkIgc3dhcG9uIC1hCitjb21tYW5kIGluIHNvbWUgYm9vdCBzY3JpcHQuCisKKy5TSCBXQVJOSU5HCitUaGUgc3dhcCBoZWFkZXIgZG9lcyBub3QgdG91Y2ggdGhlIGZpcnN0IGJsb2NrLiBBIGJvb3QgbG9hZGVyIG9yIGRpc2sgbGFiZWwKK2NhbiBiZSB0aGVyZSwgYnV0IGl0IGlzIG5vdCByZWNvbW1lbmRlZCBzZXR1cC4gVGhlIHJlY29tbWVuZGVkIHNldHVwIGlzIHRvCit1c2UgYSBzZXBhcmF0ZSBwYXJ0aXRpb24gZm9yIGEgTGludXggc3dhcCBhcmVhLgorCisuQiBta3N3YXAgbGlrZSBtYW55IG90aGVycyBta2ZzLWxpa2UgdXRpbHMgZXJhc2VzIHRoZSBmaXJzdCBibG9jayB0byByZW1vdmUKKy5CIG9sZCBvbi1kaXNrIGZpbGVzeXN0ZW1zLgorCisuQiBta3N3YXAKK3JlZnVzZXMgdG8gZXJhc2UgdGhlIGZpcnN0IGJsb2NrIG9uIGEgZGV2aWNlIHdpdGggYSBkaXNrCitsYWJlbCAoU1VOLCBCU0QsIC4uLikgb3Igb24gd2hvbGUgZGlzayAoZS5nLiAvZGV2L3NkYSkuCisKKy5TSCBPUFRJT05TCisuVFAKKy5CIFwtYworQ2hlY2sgdGhlIGRldmljZSAoaWYgaXQgaXMgYSBibG9jayBkZXZpY2UpIGZvciBiYWQgYmxvY2tzCitiZWZvcmUgY3JlYXRpbmcgdGhlIHN3YXAgYXJlYS4KK0lmIGFueSBhcmUgZm91bmQsIHRoZSBjb3VudCBpcyBwcmludGVkLgorLlRQCisuQiBcLWYKK0ZvcmNlIC0gZ28gYWhlYWQgZXZlbiBpZiB0aGUgY29tbWFuZCBpcyBzdHVwaWQuCitUaGlzIGFsbG93cyB0aGUgY3JlYXRpb24gb2YgYSBzd2FwIGFyZWEgbGFyZ2VyIHRoYW4gdGhlIGZpbGUKK29yIHBhcnRpdGlvbiBpdCByZXNpZGVzIG9uLgorCitXaXRob3V0IHRoaXMgb3B0aW9uCisuQiBta3N3YXAKK3dpbGwgcmVmdXNlIHRvIGVyYXNlIHRoZSBmaXJzdCBibG9jayBvbiBhIGRldmljZSB3aXRoIGEgcGFydGl0aW9uIHRhYmxlIG9yIG9uCit3aG9sZSBkaXNrIChlLmcuIC9kZWMvc2RhKS4KKy5UUAorLkJJIFwtcCBcIFBTWgorU3BlY2lmeSB0aGUgcGFnZSBzaXplIHRvIHVzZS4KKy5UUAorLkJJIFwtTCBcIGxhYmVsCitTcGVjaWZ5IGEgbGFiZWwsIHRvIGFsbG93IHN3YXBvbiBieSBsYWJlbC4KKyhPbmx5IGZvciBuZXcgc3R5bGUgc3dhcCBhcmVhcy4pCisuVFAKKy5CUiBcLXYwICwgXCBcLXYxCitTcGVjaWZ5IHRoZSBzd2FwIHNwYWNlIHZlcnNpb24uIFRoaXMgb3B0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIFwtdjEgaXMKK3N1cHBvcnRlZCBvbmx5LgorCitUaGUga2VybmVsIGhhcyBub3Qgc3VwcG9ydGVkIHYwIHN3YXAgc3BhY2UgZm9ybWF0IHNpbmNlIDIuNS4yMi4gVGhlIG5ldyB2ZXJzaW9uCit2MSBpcyBzdXBwb3J0ZWQgc2luY2UgMi4xLjExNy4KKworLlRQCisuQkkgXC1VIFwgdXVpZAorU3BlY2lmeSB0aGUgdXVpZCB0byB1c2UuIFRoZSBkZWZhdWx0IGlzIHRvIGdlbmVyYXRlIFVVSURzLgorCisuU0ggTk9URVMKK1RoZSBtYXhpbXVtIHVzZWZ1bCBzaXplIG9mIGEgc3dhcCBhcmVhIGRlcGVuZHMgb24gdGhlIGFyY2hpdGVjdHVyZSBhbmQKK3RoZSBrZXJuZWwgdmVyc2lvbi4KK0l0IGlzIHJvdWdobHkgMkdpQiBvbiBpMzg2LCBQUEMsIG02OGssIEFSTSwgMUdpQiBvbiBzcGFyYywgNTEyTWlCIG9uIG1pcHMsCisxMjhHaUIgb24gYWxwaGEgYW5kIDNUaUIgb24gc3BhcmM2NC4gRm9yIGtlcm5lbHMgYWZ0ZXIgMi4zLjMgdGhlcmUgaXMgbm8KK3N1Y2ggbGltaXRhdGlvbi4KKworTm90ZSB0aGF0IGJlZm9yZSAyLjEuMTE3IHRoZSBrZXJuZWwgYWxsb2NhdGVkIG9uZSBieXRlIGZvciBlYWNoIHBhZ2UsCit3aGlsZSBpdCBub3cgYWxsb2NhdGVzIHR3byBieXRlcywgc28gdGhhdCB0YWtpbmcgYSBzd2FwIGFyZWEgb2YgMiBHaUIKK2luIHVzZSBtaWdodCByZXF1aXJlIDIgTWlCIG9mIGtlcm5lbCBtZW1vcnkuCisKK1ByZXNlbnRseSwgTGludXggYWxsb3dzIDMyIHN3YXAgYXJlYXMgKHRoaXMgd2FzIDggYmVmb3JlIExpbnV4IDIuNC4xMCkuCitUaGUgYXJlYXMgaW4gdXNlIGNhbiBiZSBzZWVuIGluIHRoZSBmaWxlCisuSSAvcHJvYy9zd2FwcworKHNpbmNlIDIuMS4yNSkuCisKKy5CIG1rc3dhcAorcmVmdXNlcyBhcmVhcyBzbWFsbGVyIHRoYW4gMTAgcGFnZXMuCisKK0lmIHlvdSBkb24ndCBrbm93IHRoZSBwYWdlIHNpemUgdGhhdCB5b3VyIG1hY2hpbmUgdXNlcywgeW91IG1heSBiZQorYWJsZSB0byBsb29rIGl0IHVwIHdpdGggImNhdCAvcHJvYy9jcHVpbmZvIiAob3IgeW91IG1heSBub3QgLQordGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBkZXBlbmQgb24gYXJjaGl0ZWN0dXJlIGFuZCBrZXJuZWwgdmVyc2lvbikuCisKK1RvIHNldHVwIGEgc3dhcCBmaWxlLCBpdCBpcyBuZWNlc3NhcnkgdG8gY3JlYXRlIHRoYXQgZmlsZSBiZWZvcmUKK2luaXRpYWxpemluZyBpdCB3aXRoCisuQlIgbWtzd2FwICwKK2UuZy4gdXNpbmcgYSBjb21tYW5kIGxpa2UKKworLm5mCisuUlMKKyMgZGQgaWY9L2Rldi96ZXJvIG9mPXN3YXBmaWxlIGJzPTEwMjQgY291bnQ9NjU1MzYKKy5SRQorLmZpCisKK05vdGUgdGhhdCBhIHN3YXAgZmlsZSBtdXN0IG5vdCBjb250YWluIGFueSBob2xlcyAoc28sIHVzaW5nCisuQlIgY3AgKDEpCit0byBjcmVhdGUgdGhlIGZpbGUgaXMgbm90IGFjY2VwdGFibGUpLgorCisKKy5TSCAiU0VFIEFMU08iCisuQlIgZmRpc2sgKDgpLAorLkJSIHN3YXBvbiAoOCkKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBta3N3YXAgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL21rc3dhcC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9ta3N3YXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzcyZDA3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9ta3N3YXAuYwpAQCAtMCwwICsxLDcxMyBAQAorLyoKKyAqIG1rc3dhcC5jIC0gc2V0IHVwIGEgbGludXggc3dhcCBkZXZpY2UKKyAqCisgKiAoQykgMTk5MSBMaW51cyBUb3J2YWxkcy4gVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIGFzIHBlcgorICogdGhlIExpbnV4IGNvcHlyaWdodC4KKyAqLworCisvKgorICogMjAuMTIuOTEgIC0JdGltZSBiZWdhbi4gR290IFZNIHdvcmtpbmcgeWVzdGVyZGF5IGJ5IGRvaW5nIHRoaXMgYnkgaGFuZC4KKyAqCisgKiBVc2FnZTogbWtzd2FwIFstY10gWy12Tl0gWy1mXSBkZXZpY2UgW3NpemUtaW4tYmxvY2tzXQorICoKKyAqCS1jICAgZm9yIHJlYWRhYmlsaXR5IGNoZWNraW5nLiAoVXNlIGl0IHVubGVzcyB5b3UgYXJlIFNVUkUhKQorICoJLXZOICBmb3Igc3dhcCBhcmVhcyB2ZXJzaW9uIE4uIChPbmx5IE49MCwxIGtub3duIHRvZGF5LikKKyAqICAgICAgLWYgICBmb3IgZm9yY2luZyBzd2FwIGNyZWF0aW9uIGV2ZW4gaWYgaXQgd291bGQgc21hc2ggcGFydGl0aW9uIHRhYmxlLgorICoKKyAqIFRoZSBkZXZpY2UgbWF5IGJlIGEgYmxvY2sgZGV2aWNlIG9yIGFuIGltYWdlIG9mIG9uZSwgYnV0IHRoaXMgaXNuJ3QKKyAqIGVuZm9yY2VkIChidXQgaXQncyBub3QgbXVjaCBmdW4gb24gYSBjaGFyYWN0ZXIgZGV2aWNlIDotKS4KKyAqCisgKiBQYXRjaGVzIGZyb20gamFnZ3lAcHVycGxldC5kZW1vbi5jby51ayAoTWlrZSBKYWdkaXMpIHRvIG1ha2UgdGhlCisgKiBzaXplLWluLWJsb2NrcyBwYXJhbWV0ZXIgb3B0aW9uYWwgYWRkZWQgV2VkIEZlYiAgOCAxMDozMzo0MyAxOTk1LgorICoKKyAqIFZlcnNpb24gMSBzd2FwIGFyZWEgY29kZSAoZm9yIGtlcm5lbCAyLjEuMTE3KSwgYWViLCA5ODEwMTAuCisgKgorICogU3BhcmMgZml4ZXMsIGpqQHVsdHJhLmxpbnV4LmN6IChKYWt1YiBKZWxpbmVrKSwgOTgxMjAxIC0gbWFuZ2xlZCBieSBhZWIuCisgKiBWMV9NQVhfUEFHRVMgZml4ZXMsIGpqLCA5OTAzMjUuCisgKiBzcGFyYzY0IGZpeGVzLCBqaiwgMDAwMjE5LgorICoKKyAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPG1udGVudC5oPgorI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2lmZGVmIEhBVkVfTElCU0VMSU5VWAorI2luY2x1ZGUgPHNlbGludXgvc2VsaW51eC5oPgorI2luY2x1ZGUgPHNlbGludXgvY29udGV4dC5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJsaW51eF92ZXJzaW9uLmgiCisjaW5jbHVkZSAic3dhcGhlYWRlci5oIgorI2luY2x1ZGUgInhzdHJuY3B5LmgiCisjaW5jbHVkZSAibmxzLmgiCisjaW5jbHVkZSAiYmxrZGV2LmgiCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAid2hvbGVkaXNrLmgiCisKKyNpZmRlZiBIQVZFX0xJQlVVSUQKKyMgaWZkZWYgSEFWRV9VVUlEX1VVSURfSAorIyAgaW5jbHVkZSA8dXVpZC91dWlkLmg+CisjIGVsc2UKKyMgIGluY2x1ZGUgPHV1aWQuaD4KKyMgZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9MSUJCTEtJRF9JTlRFUk5BTAorIyBpbmNsdWRlIDxibGtpZC5oPgorI2VuZGlmCisKK3N0YXRpYyBjaGFyICogcHJvZ3JhbV9uYW1lID0gIm1rc3dhcCI7CitzdGF0aWMgY2hhciAqIGRldmljZV9uYW1lID0gTlVMTDsKK3N0YXRpYyBpbnQgREVWID0gLTE7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIFBBR0VTID0gMDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGJhZHBhZ2VzID0gMDsKK3N0YXRpYyBpbnQgY2hlY2sgPSAwOworCisjZGVmaW5lIFNFTElOVVhfU1dBUEZJTEVfVFlQRQkic3dhcGZpbGVfdCIKKworI2lmZGVmIF9fc3BhcmNfXworIyBpZmRlZiBfX2FyY2g2NF9fCisjICBkZWZpbmUgaXNfc3BhcmM2NCgpIDEKKyMgIGRlZmluZSBpc19iZTY0KCkgMQorIyBlbHNlIC8qIHNwYXJjMzIgKi8KK3N0YXRpYyBpbnQKK2lzX3NwYXJjNjQodm9pZCkgeworCXN0cnVjdCB1dHNuYW1lIHVuOworCXN0YXRpYyBpbnQgc3BhcmM2NCA9IC0xOworCisJaWYgKHNwYXJjNjQgIT0gLTEpIHJldHVybiBzcGFyYzY0OworCXNwYXJjNjQgPSAwOworCisJaWYgKHVuYW1lKCZ1bikgPCAwKSByZXR1cm4gMDsKKwlpZiAoISBzdHJjbXAodW4ubWFjaGluZSwgInNwYXJjNjQiKSkgeworCQlzcGFyYzY0ID0gMTsKKwkJcmV0dXJuIDE7CisJfQorCWlmIChzdHJjbXAodW4ubWFjaGluZSwgInNwYXJjIikpCisJCXJldHVybiAwOyAvKiBTaG91bGQgbm90IGhhcHBlbiAqLworCisjaWZkZWYgSEFWRV9QRVJTT05BTElUWQorCXsKKwkJZXh0ZXJuIGludCBwZXJzb25hbGl0eSh1bnNpZ25lZCBsb25nKTsKKwkJaW50IG9sZHBlcnM7CisjZGVmaW5lIFBFUlNfTElOVVggICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBQRVJTX0xJTlVYXzMyQklUICAgIDB4MDA4MDAwMDAKKyNkZWZpbmUgUEVSU19MSU5VWDMyICAgICAgICAweDAwMDAwMDA4CisKKwkJb2xkcGVycyA9IHBlcnNvbmFsaXR5KFBFUlNfTElOVVhfMzJCSVQpOworCQlpZiAob2xkcGVycyAhPSAtMSkgeworCQkJaWYgKHBlcnNvbmFsaXR5KFBFUlNfTElOVVgpICE9IC0xKSB7CisJCQkJdW5hbWUoJnVuKTsKKwkJCQlpZiAoISBzdHJjbXAodW4ubWFjaGluZSwgInNwYXJjNjQiKSkgeworCQkJCQlzcGFyYzY0ID0gMTsKKwkJCQkJb2xkcGVycyA9IFBFUlNfTElOVVgzMjsKKwkJCQl9CisJCQl9CisJCQlwZXJzb25hbGl0eShvbGRwZXJzKTsKKwkJfQorCX0KKyNlbmRpZgorCisJcmV0dXJuIHNwYXJjNjQ7Cit9CisjICBkZWZpbmUgaXNfYmU2NCgpIGlzX3NwYXJjNjQoKQorIyBlbmRpZiAvKiBzcGFyYzMyICovCisjZWxzZSAvKiAhc3BhcmMgKi8KKyMgZGVmaW5lIGlzX2JlNjQoKSAwCisjZW5kaWYKKworLyoKKyAqIFRoZSBkZWZpbml0aW9uIG9mIHRoZSB1bmlvbiBzd2FwX2hlYWRlciB1c2VzIHRoZSBrZXJuZWwgY29uc3RhbnQgUEFHRV9TSVpFLgorICogVW5mb3J0dW5hdGVseSwgb24gc29tZSBhcmNoaXRlY3R1cmVzIHRoaXMgZGVwZW5kcyBvbiB0aGUgaGFyZHdhcmUgbW9kZWwsIGFuZAorICogY2FuIG9ubHkgYmUgZm91bmQgYXQgcnVuIHRpbWUgLS0gd2UgdXNlIGdldHBhZ2VzaXplKCksIHNvIHRoYXQgd2UgZG8gbm90CisgKiBuZWVkIHNlcGFyYXRlIGJpbmFyaWVzIGUuZy4gZm9yIHN1bjQsIHN1bjRjL2QvbSBhbmQgc3VuNHUuCisgKgorICogRXZlbiBtb3JlIHVuZm9ydHVuYXRlbHksIGdldHBhZ2VzaXplKCkgZG9lcyBub3QgYWx3YXlzIHJldHVybiB0aGUgcmlnaHQKKyAqIGluZm9ybWF0aW9uLiBGb3IgZXhhbXBsZSwgbGliYzQsIGxpYmM1IGFuZCBnbGliYyAyLjAgZG8gbm90IHVzZSB0aGUgc3lzdGVtCisgKiBjYWxsIGJ1dCBpbnZlbnQgYSB2YWx1ZSB0aGVtc2VsdmVzIChFWEVDX1BBR0VTSVpFIG9yIE5CUEcgKiBDTFNJWkUgb3IgTkJQQyksCisgKiBhbmQgdGh1cyBpdCBtYXkgaGFwcGVuIHRoYXQgZS5nLiBvbiBhIHNwYXJjIGtlcm5lbCBQQUdFX1NJWkU9NDA5NiBhbmQKKyAqIGdldHBhZ2VzaXplKCkgcmV0dXJucyA4MTkyLgorICoKKyAqIFdoYXQgdG8gZG8/IExldCB1cyBhbGxvdyB0aGUgdXNlciB0byBzcGVjaWZ5IHRoZSBwYWdlc2l6ZSBleHBsaWNpdGx5LgorICoKKyAqLworc3RhdGljIGludCB1c2VyX3BhZ2VzaXplOworc3RhdGljIGludCBwYWdlc2l6ZTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nICpzaWduYXR1cmVfcGFnZSA9IE5VTEw7CitzdHJ1Y3Qgc3dhcF9oZWFkZXJfdjEgKnA7CisKK3N0YXRpYyB2b2lkCitpbml0X3NpZ25hdHVyZV9wYWdlKHZvaWQpIHsKKworCWludCBrZXJuZWxfcGFnZXNpemUgPSBwYWdlc2l6ZSA9IGdldHBhZ2VzaXplKCk7CisKKwlpZiAodXNlcl9wYWdlc2l6ZSkgeworCQlpZiAoKHVzZXJfcGFnZXNpemUgJiAodXNlcl9wYWdlc2l6ZS0xKSkgfHwKKwkJICAgIHVzZXJfcGFnZXNpemUgPCAxMDI0KSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgXygiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIiksCisJCQkJdXNlcl9wYWdlc2l6ZSk7CisJCQlleGl0KDEpOworCQl9CisJCXBhZ2VzaXplID0gdXNlcl9wYWdlc2l6ZTsKKwl9CisKKwlpZiAodXNlcl9wYWdlc2l6ZSAmJiB1c2VyX3BhZ2VzaXplICE9IGtlcm5lbF9wYWdlc2l6ZSkKKwkJZnByaW50ZihzdGRlcnIsIF8oIlVzaW5nIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZCwgIgorCQkJCSAgImluc3RlYWQgb2YgdGhlIHN5c3RlbSB2YWx1ZSAlZFxuIiksCisJCQkJcGFnZXNpemUsIGtlcm5lbF9wYWdlc2l6ZSk7CisKKwlzaWduYXR1cmVfcGFnZSA9ICh1bnNpZ25lZCBsb25nICopIG1hbGxvYyhwYWdlc2l6ZSk7CisJbWVtc2V0KHNpZ25hdHVyZV9wYWdlLCAwLCBwYWdlc2l6ZSk7CisJcCA9IChzdHJ1Y3Qgc3dhcF9oZWFkZXJfdjEgKikgc2lnbmF0dXJlX3BhZ2U7Cit9CisKK3N0YXRpYyB2b2lkCitkZWluaXRfc2lnbmF0dXJlX3BhZ2Uodm9pZCkgeworCWZyZWUoc2lnbmF0dXJlX3BhZ2UpOworfQorCitzdGF0aWMgdm9pZAord3JpdGVfc2lnbmF0dXJlKGNoYXIgKnNpZykgeworCWNoYXIgKnNwID0gKGNoYXIgKikgc2lnbmF0dXJlX3BhZ2U7CisKKwlzdHJuY3B5KHNwK3BhZ2VzaXplLTEwLCBzaWcsIDEwKTsKK30KKworc3RhdGljIHZvaWQKK3dyaXRlX3V1aWRfYW5kX2xhYmVsKHVuc2lnbmVkIGNoYXIgKnV1aWQsIGNoYXIgKnZvbHVtZV9uYW1lKSB7CisJc3RydWN0IHN3YXBfaGVhZGVyX3YxXzIgKmg7CisKKwkvKiBTYW5pdHkgY2hlY2sgKi8KKwlpZiAoc2l6ZW9mKHN0cnVjdCBzd2FwX2hlYWRlcl92MSkgIT0KKwkgICAgc2l6ZW9mKHN0cnVjdCBzd2FwX2hlYWRlcl92MV8yKSkgeworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCV8oIkJhZCBzd2FwIGhlYWRlciBzaXplLCBubyBsYWJlbCB3cml0dGVuLlxuIikpOworCQlyZXR1cm47CisJfQorCisJaCA9IChzdHJ1Y3Qgc3dhcF9oZWFkZXJfdjFfMiAqKSBzaWduYXR1cmVfcGFnZTsKKwlpZiAodXVpZCkKKwkJbWVtY3B5KGgtPnV1aWQsIHV1aWQsIHNpemVvZihoLT51dWlkKSk7CisJaWYgKHZvbHVtZV9uYW1lKSB7CisJCXhzdHJuY3B5KGgtPnZvbHVtZV9uYW1lLCB2b2x1bWVfbmFtZSwgc2l6ZW9mKGgtPnZvbHVtZV9uYW1lKSk7CisJCWlmIChzdHJsZW4odm9sdW1lX25hbWUpID4gc3RybGVuKGgtPnZvbHVtZV9uYW1lKSkKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJMYWJlbCB3YXMgdHJ1bmNhdGVkLlxuIikpOworCX0KKwlpZiAodXVpZCB8fCB2b2x1bWVfbmFtZSkgeworCQlpZiAodm9sdW1lX25hbWUpCisJCQlwcmludGYoIkxBQkVMPSVzLCAiLCBoLT52b2x1bWVfbmFtZSk7CisJCWVsc2UKKwkJCXByaW50ZihfKCJubyBsYWJlbCwgIikpOworI2lmZGVmIEhBVkVfTElCVVVJRAorCQlpZiAodXVpZCkgeworCQkJY2hhciB1dWlkX3N0cmluZ1szN107CisJCQl1dWlkX3VucGFyc2UodXVpZCwgdXVpZF9zdHJpbmcpOworCQkJcHJpbnRmKCJVVUlEPSVzXG4iLCB1dWlkX3N0cmluZyk7CisJCX0gZWxzZQorI2VuZGlmCisJCQlwcmludGYoXygibm8gdXVpZFxuIikpOworCX0KK30KKworLyoKKyAqIEZpbmQgb3V0IHdoYXQgdGhlIG1heGltdW0gYW1vdW50IG9mIHN3YXAgc3BhY2UgaXMgdGhhdCB0aGUga2VybmVsIHdpbGwKKyAqIGhhbmRsZS4gIFRoaXMgd291bGRuJ3QgbWF0dGVyIGlmIHRoZSBrZXJuZWwganVzdCB1c2VkIGFzIG11Y2ggb2YgdGhlCisgKiBzd2FwIHNwYWNlIGFzIGl0IGNhbiBoYW5kbGUsIGJ1dCB1bnRpbCAyLjMuNCBpdCB3b3VsZCByZXR1cm4gYW4gZXJyb3IKKyAqIHRvIHN3YXBvbigpIGlmIHRoZSBzd2Fwc3BhY2Ugd2FzIHRvbyBsYXJnZS4KKyAqLworLyogQmVmb3JlIDIuMi4wcHJlOSAqLworI2RlZmluZSBWMV9PTERfTUFYX1BBR0VTCSgoMHg3ZmZmZmZmZiAvIHBhZ2VzaXplKSAtIDEpCisvKiBTaW5jZSAyLjIuMHByZTksIGJlZm9yZSAyLjMuNDoKKyAgIGVycm9yIGlmIG5yIG9mIHBhZ2VzID49IFNXUF9PRkZTRVQoU1dQX0VOVFJZKDAsfjBVTCkpCisgICB3aXRoIHZhcmlhdGlvbnMgb24KKwkjZGVmaW5lIFNXUF9FTlRSWSh0eXBlLG9mZnNldCkgKCgodHlwZSkgPDwgMSkgfCAoKG9mZnNldCkgPDwgOCkpCisJI2RlZmluZSBTV1BfT0ZGU0VUKGVudHJ5KSAoKGVudHJ5KSA+PiA4KQorICAgb24gdGhlIHZhcmlvdXMgYXJjaGl0ZWN0dXJlcy4gQmVsb3cgdGhlIHJlc3VsdCAtIHl1ay4KKworICAgTWFjaGluZQlwYWdlc2l6ZQlTV1BfRU5UUlkJU1dQX09GRlNFVAlib3VuZCsxCW9sZGJvdW5kKzIKKyAgIGkzODYJCTJeMTIJCW88PDgJCWU+PjgJCTE8PDI0CTE8PDE5CisgICBtaXBzCQkyXjEyCQlvPDwxNQkJZT4+MTUJCTE8PDE3CTE8PDE5CisgICBhbHBoYQkyXjEzCQlvPDw0MAkJZT4+NDAJCTE8PDI0CTE8PDE4CisgICBtNjhrCQkyXjEyCQlvPDwxMgkJZT4+MTIJCTE8PDIwCTE8PDE5CisgICBzcGFyYwkyXnsxMiwxM30JKG8mMHgzZmZmZik8PDkJKGU+PjkpJjB4M2ZmZmYJMTw8MTgJMTw8ezE5LDE4fQorICAgc3BhcmM2NAkyXjEzCQlvPDwxMwkJZT4+MTMJCTE8PDUxCTE8PDE4CisgICBwcGMJCTJeMTIJCW88PDgJCWU+PjgJCTE8PDI0CTE8PDE5CisgICBhcm1vCQkyXnsxMywxNCwxNX0Jbzw8OAkJZT4+OAkJMTw8MjQJMTw8ezE4LDE3LDE2fQorICAgYXJtdgkJMl4xMgkJbzw8OQkJZT4+OQkJMTw8MjMJMTw8MTkKKworICAgYXNzdW1pbmcgdGhhdCBsb25ncyBoYXZlIDY0IGJpdHMgb24gYWxwaGEgYW5kIHNwYXJjNjQgYW5kIDMyIGJpdHMgZWxzZXdoZXJlLgorCisgICBUaGUgYmFkIHBhcnQgaXMgdGhhdCB3ZSBuZWVkIHRvIGtub3cgdGhpcyBzaW5jZSB0aGUga2VybmVsIHdpbGwKKyAgIHJlZnVzZSBhIHN3YXAgc3BhY2UgaWYgaXQgaXMgdG9vIGxhcmdlLgorKi8KKy8qIHBhdGNoIGZyb20gamogLSB3aHkgZG9lcyB0aGlzIGRpZmZlciBmcm9tIHRoZSBhYm92ZT8gKi8KKy8qIDMyYml0IGtlcm5lbHMgaGF2ZSBhIHNlY29uZCBsaW1pdGF0aW9uIG9mIDJHQiwgc3BhcmM2NCBpcyBsaW1pdGVkIGJ5CisgICB0aGUgc2l6ZSBvZiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgYWxsb2NhdGlvbiBmb3Igdm1hbGxvYyAqLworI2lmIGRlZmluZWQoX19hbHBoYV9fKQorI2RlZmluZSBWMV9NQVhfUEFHRVMgICAgICAgICAgICgoMSA8PCAyNCkgLSAxKQorI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyNkZWZpbmUgVjFfTUFYX1BBR0VTICAgICAgICAgICAoKDEgPDwgMTcpIC0gMSkKKyNlbGlmIGRlZmluZWQoX19zcGFyY19fKQorI2RlZmluZSBWMV9NQVhfUEFHRVMgICAgICAgICAgIChpc19zcGFyYzY0KCkgPyAoKDMgPDwgMjkpIC0gMSkgOiAoKDEgPDwgMTgpIC0gMSkpCisjZWxpZiBkZWZpbmVkKF9faWE2NF9fKQorLyoKKyAqIFRoZSBhY3R1YWwgc2l6ZSB3aWxsIGRlcGVuZCBvbiB0aGUgYW1vdW50IG9mIHZpcnR1YWwgYWRkcmVzcyBzcGFjZQorICogYXZhaWxhYmxlIHRvIHZtYWxsb2MgdGhlIHN3YXAgbWFwLgorICovCisjZGVmaW5lIFYxX01BWF9QQUdFUyAgICAgICAgICAoKDFVTCA8PCA1NCkgLSAxKQorI2Vsc2UKKyNkZWZpbmUgVjFfTUFYX1BBR0VTICAgICAgICAgICBWMV9PTERfTUFYX1BBR0VTCisjZW5kaWYKKy8qIG1hbiBwYWdlIG5vdyBzYXlzOgorVGhlIG1heGltdW0gdXNlZnVsIHNpemUgb2YgYSBzd2FwIGFyZWEgbm93IGRlcGVuZHMgb24gdGhlIGFyY2hpdGVjdHVyZS4KK0l0IGlzIHJvdWdobHkgMkdCIG9uIGkzODYsIFBQQywgbTY4aywgQVJNLCAxR0Igb24gc3BhcmMsIDUxMk1CIG9uIG1pcHMsCisxMjhHQiBvbiBhbHBoYSBhbmQgM1RCIG9uIHNwYXJjNjQuCisqLworCisjZGVmaW5lIE1BWF9CQURQQUdFUwkoKHBhZ2VzaXplLTEwMjQtMTI4KnNpemVvZihpbnQpLTEwKS9zaXplb2YoaW50KSkKKyNkZWZpbmUgTUlOX0dPT0RQQUdFUwkxMAorCitzdGF0aWMgdm9pZAordXNhZ2Uodm9pZCkgeworCWZwcmludGYoc3RkZXJyLAorCQlfKCJVc2FnZTogJXMgWy1jXSBbLXBQQUdFU1pdIFstTCBsYWJlbF0gWy1VIFVVSURdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIiksCisJCXByb2dyYW1fbmFtZSk7CisJZXhpdCgxKTsKK30KKworc3RhdGljIHZvaWQKK2RpZShjb25zdCBjaGFyICpzdHIpIHsKKwlmcHJpbnRmKHN0ZGVyciwgIiVzOiAlc1xuIiwgcHJvZ3JhbV9uYW1lLCBzdHIpOworCWV4aXQoMSk7Cit9CisKK3N0YXRpYyB2b2lkCitwYWdlX2JhZChpbnQgcGFnZSkgeworCWlmIChiYWRwYWdlcyA9PSBNQVhfQkFEUEFHRVMpCisJCWRpZShfKCJ0b28gbWFueSBiYWQgcGFnZXMiKSk7CisJcC0+YmFkcGFnZXNbYmFkcGFnZXNdID0gcGFnZTsKKwliYWRwYWdlcysrOworfQorCitzdGF0aWMgdm9pZAorY2hlY2tfYmxvY2tzKHZvaWQpIHsKKwl1bnNpZ25lZCBpbnQgY3VycmVudF9wYWdlOworCWludCBkb19zZWVrID0gMTsKKwljaGFyICpidWZmZXI7CisKKwlidWZmZXIgPSBtYWxsb2MocGFnZXNpemUpOworCWlmICghYnVmZmVyKQorCQlkaWUoXygiT3V0IG9mIG1lbW9yeSIpKTsKKwljdXJyZW50X3BhZ2UgPSAwOworCXdoaWxlIChjdXJyZW50X3BhZ2UgPCBQQUdFUykgeworCQlpZiAoZG9fc2VlayAmJiBsc2VlayhERVYsY3VycmVudF9wYWdlKnBhZ2VzaXplLFNFRUtfU0VUKSAhPQorCQkgICAgY3VycmVudF9wYWdlKnBhZ2VzaXplKQorCQkJZGllKF8oInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIpKTsKKwkJaWYgKChkb19zZWVrID0gKHBhZ2VzaXplICE9IHJlYWQoREVWLCBidWZmZXIsIHBhZ2VzaXplKSkpKQorCQkJcGFnZV9iYWQoY3VycmVudF9wYWdlKTsKKwkJY3VycmVudF9wYWdlKys7CisJfQorCWlmIChiYWRwYWdlcyA9PSAxKQorCQlwcmludGYoXygib25lIGJhZCBwYWdlXG4iKSk7CisJZWxzZSBpZiAoYmFkcGFnZXMgPiAxKQorCQlwcmludGYoXygiJWx1IGJhZCBwYWdlc1xuIiksIGJhZHBhZ2VzKTsKKwlmcmVlKGJ1ZmZlcik7Cit9CisKKy8qIHJldHVybiBzaXplIGluIHBhZ2VzICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nCitnZXRfc2l6ZShjb25zdCBjaGFyICAqZmlsZSkgeworCWludAlmZDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZTsKKworCWZkID0gb3BlbihmaWxlLCBPX1JET05MWSk7CisJaWYgKGZkIDwgMCkgeworCQlwZXJyb3IoZmlsZSk7CisJCWV4aXQoMSk7CisJfQorCWlmIChibGtkZXZfZ2V0X3NpemUoZmQsICZzaXplKSA9PSAwKQorCQlzaXplIC89IHBhZ2VzaXplOworCWVsc2UKKwkJc2l6ZSA9IGJsa2Rldl9maW5kX3NpemUoZmQpIC8gcGFnZXNpemU7CisKKwljbG9zZShmZCk7CisJcmV0dXJuIHNpemU7Cit9CisKK3N0YXRpYyBpbnQKK2lzbnpkaWdpdChjaGFyIGMpIHsKKwlyZXR1cm4gKGMgPj0gJzEnICYmIGMgPD0gJzknKTsKK30KKworCisvKgorICogQ2hlY2sgdG8gbWFrZSBjZXJ0YWluIHRoYXQgb3VyIG5ldyBmaWxlc3lzdGVtIHdvbid0IGJlIGNyZWF0ZWQgb24KKyAqIGFuIGFscmVhZHkgbW91bnRlZCBwYXJ0aXRpb24uICBDb2RlIGFkYXB0ZWQgZnJvbSBta2UyZnMsIENvcHlyaWdodAorICogKEMpIDE5OTQgVGhlb2RvcmUgVHMnby4gIEFsc28gbGljZW5zZWQgdW5kZXIgR1BMLgorICogKEMpIDIwMDYgS2FyZWwgWmFrIC0tIHBvcnQgdG8gbWtzd2FwCisgKi8KK3N0YXRpYyBpbnQKK2NoZWNrX21vdW50KHZvaWQpIHsKKwlGSUxFICogZjsKKwlzdHJ1Y3QgbW50ZW50ICogbW50OworCisJaWYgKChmID0gc2V0bW50ZW50IChfUEFUSF9NT1VOVEVELCAiciIpKSA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKwl3aGlsZSAoKG1udCA9IGdldG1udGVudCAoZikpICE9IE5VTEwpCisJCWlmIChzdHJjbXAgKGRldmljZV9uYW1lLCBtbnQtPm1udF9mc25hbWUpID09IDApCisJCQlicmVhazsKKwllbmRtbnRlbnQgKGYpOworCWlmICghbW50KQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKworCitzdGF0aWMgaW50Cit3cml0ZV9hbGwoaW50IGZkLCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBjb3VudCkgeworCXdoaWxlKGNvdW50KSB7CisJCXNzaXplX3QgdG1wOworCisJCWVycm5vID0gMDsKKwkJdG1wID0gd3JpdGUoZmQsIGJ1ZiwgY291bnQpOworCQlpZiAodG1wID4gMCkgeworCQkJY291bnQgLT0gdG1wOworCQkJaWYgKGNvdW50KQorCQkJCWJ1ZiArPSB0bXA7CisJCX0gZWxzZSBpZiAoZXJybm8gIT0gRUlOVFIgJiYgZXJybm8gIT0gRUFHQUlOKQorCQkJcmV0dXJuIC0xOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK3phcF9ib290Yml0cyhpbnQgZmQsIGNvbnN0IGNoYXIgKmRldm5hbWUsIGludCBmb3JjZSkKK3sKKwljaGFyICp0eXBlID0gTlVMTDsKKwlpbnQgd2hvbGUgPSAwOworCWludCB6YXAgPSAxOworCisJaWYgKCFmb3JjZSkgeworCQlpZiAobHNlZWsoZmQsIDAsIFNFRUtfU0VUKSAhPSAwKQorCSAgICAgICAgICAgICAgICBkaWUoXygidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIpKTsKKworCQlpZiAoaXNfd2hvbGVfZGlza19mZChmZCwgZGV2bmFtZSkpIHsKKwkJCS8qIGRvbid0IHphcCBib290Yml0cyBvbiB3aG9sZSBkaXNrIC0tIHdlIGtub3cgbm90aGluZworCQkJICogYWJvdXQgYm9vdGxvYWRlcnMgb24gdGhlIGRldmljZSAqLworCQkJd2hvbGUgPSAxOworCQkJemFwID0gMDsKKwkJfSBlbHNlIHsKKyNpZmRlZiBIQVZFX0xJQkJMS0lEX0lOVEVSTkFMCisJCQlibGtpZF9wcm9iZSBwciA9IGJsa2lkX25ld19wcm9iZSgpOworCQkJaWYgKCFwcikKKwkJCQlkaWUoXygidW5hYmxlIHRvIGFsbG9jIG5ldyBsaWJibGtpZCBwcm9iZSIpKTsKKwkJCWlmIChibGtpZF9wcm9iZV9zZXRfZGV2aWNlKHByLCBmZCwgMCwgMCkpCisJCQkJZGllKF8oInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiKSk7CisKKwkJCWJsa2lkX3Byb2JlX2VuYWJsZV9wYXJ0aXRpb25zKHByLCAxKTsKKwkJCWJsa2lkX3Byb2JlX2VuYWJsZV9zdXBlcmJsb2NrcyhwciwgMCk7CisKKwkJCWlmIChibGtpZF9kb19mdWxscHJvYmUocHIpID09IDApCisJCQkJYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKHByLCAiUFRUWVBFIiwKKwkJCQkJCShjb25zdCBjaGFyICoqKSAmdHlwZSwgTlVMTCk7CisJCQlpZiAodHlwZSkgeworCQkJCXR5cGUgPSBzdHJkdXAodHlwZSk7CisJCQkJemFwID0gMDsKKwkJCX0KKwkJCWJsa2lkX2ZyZWVfcHJvYmUocHIpOworI2Vsc2UKKwkJCS8qIGRvbid0IHphcCBpZiBjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkICovCisJCQl6YXAgPSAwOworI2VuZGlmCisJCX0KKwl9CisKKwlpZiAoemFwKSB7CisJCWNoYXIgYnVmWzEwMjRdOworCisJCWlmIChsc2VlayhmZCwgMCwgU0VFS19TRVQpICE9IDApCisJICAgICAgICAgICAgICAgIGRpZShfKCJ1bmFibGUgdG8gcmV3aW5kIHN3YXAtZGV2aWNlIikpOworCisJCW1lbXNldChidWYsIDAsIHNpemVvZihidWYpKTsKKwkJaWYgKHdyaXRlX2FsbChmZCwgYnVmLCBzaXplb2YoYnVmKSkpCisJCQlkaWUoXygidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiKSk7CisJCXJldHVybjsKKwl9CisKKwlmcHJpbnRmKHN0ZGVyciwgXygiJXM6ICVzOiB3YXJuaW5nOiBkb24ndCBlcmFzZSBib290Yml0cyBzZWN0b3JzXG4iKSwKKwkJcHJvZ3JhbV9uYW1lLCBkZXZuYW1lKTsKKwlpZiAodHlwZSkKKwkJZnByaW50ZihzdGRlcnIsIF8oIiAgICAgICAgKCVzIHBhcnRpdGlvbiB0YWJsZSBkZXRlY3RlZCkuICIpLCB0eXBlKTsKKwllbHNlIGlmICh3aG9sZSkKKwkJZnByaW50ZihzdGRlcnIsIF8oIiAgICAgICAgb24gd2hvbGUgZGlzay4gIikpOworCWVsc2UKKwkJZnByaW50ZihzdGRlcnIsIF8oIiAgICAgICAgKGNvbXBpbGVkIHdpdGhvdXQgbGliYmxraWQpLiAiKSk7CisJZnByaW50ZihzdGRlcnIsICJVc2UgLWYgdG8gZm9yY2UuXG4iKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqIGFyZ3YpIHsKKwlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCWludCBpOworCXVuc2lnbmVkIGxvbmcgbG9uZyBtYXhwYWdlczsKKwl1bnNpZ25lZCBsb25nIGxvbmcgZ29vZHBhZ2VzOworCXVuc2lnbmVkIGxvbmcgbG9uZyBzejsKKwlvZmZfdCBvZmZzZXQ7CisJaW50IGZvcmNlID0gMDsKKwlpbnQgdmVyc2lvbiA9IDE7CisJY2hhciAqYmxvY2tfY291bnQgPSAwOworCWNoYXIgKnBwOworCWNoYXIgKm9wdF9sYWJlbCA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqdXVpZCA9IE5VTEw7CisjaWZkZWYgSEFWRV9MSUJVVUlECisJY29uc3QgY2hhciAqb3B0X3V1aWQgPSBOVUxMOworCXV1aWRfdCB1dWlkX2RhdDsKKyNlbmRpZgorCisJcHJvZ3JhbV9uYW1lID0gKGFyZ2MgJiYgKmFyZ3YpID8gYXJndlswXSA6ICJta3N3YXAiOworCWlmICgocHAgPSBzdHJyY2hyKHByb2dyYW1fbmFtZSwgJy8nKSkgIT0gTlVMTCkKKwkJcHJvZ3JhbV9uYW1lID0gcHArMTsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlpZiAoYXJnYyA9PSAyICYmCisJICAgICghc3RyY21wKGFyZ3ZbMV0sICItViIpIHx8ICFzdHJjbXAoYXJndlsxXSwgIi0tdmVyc2lvbiIpKSkgeworCQlwcmludGYoXygiJXMgKCVzKVxuIiksIHByb2dyYW1fbmFtZSwgUEFDS0FHRV9TVFJJTkcpOworCQlleGl0KDApOworCX0KKworCWZvciAoaT0xOyBpPGFyZ2M7IGkrKykgeworCQlpZiAoYXJndltpXVswXSA9PSAnLScpIHsKKwkJCXN3aXRjaCAoYXJndltpXVsxXSkgeworCQkJCWNhc2UgJ2MnOgorCQkJCQljaGVjaz0xOworCQkJCQlicmVhazsKKwkJCQljYXNlICdmJzoKKwkJCQkJZm9yY2U9MTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAncCc6CisJCQkJCXBwID0gYXJndltpXSsyOworCQkJCQlpZiAoISpwcCAmJiBpKzEgPCBhcmdjKQorCQkJCQkJcHAgPSBhcmd2WysraV07CisJCQkJCWlmIChpc256ZGlnaXQoKnBwKSkKKwkJCQkJCXVzZXJfcGFnZXNpemUgPSBhdG9pKHBwKTsKKwkJCQkJZWxzZQorCQkJCQkJdXNhZ2UoKTsKKwkJCQkJYnJlYWs7CisJCQkgICAgICAgIGNhc2UgJ0wnOgorCQkJCQlwcCA9IGFyZ3ZbaV0rMjsKKwkJCQkJaWYgKCEqcHAgJiYgaSsxIDwgYXJnYykKKwkJCQkJCXBwID0gYXJndlsrK2ldOworCQkJCQlvcHRfbGFiZWwgPSBwcDsKKwkJCQkgICAgICAgIGJyZWFrOworCQkJCWNhc2UgJ3YnOgorCQkJCQl2ZXJzaW9uID0gYXRvaShhcmd2W2ldKzIpOworCQkJCQlicmVhazsKKwkJCQljYXNlICdVJzoKKyNpZmRlZiBIQVZFX0xJQlVVSUQKKwkJCQkJb3B0X3V1aWQgPSBhcmd2W2ldKzI7CisJCQkJCWlmICghKm9wdF91dWlkICYmIGkrMSA8IGFyZ2MpCisJCQkJCQlvcHRfdXVpZCA9IGFyZ3ZbKytpXTsKKyNlbHNlCisJCQkJCWZwcmludGYoc3RkZXJyLCBfKCIlMSRzOiB3YXJuaW5nOiBpZ25vcmUgLVUgKFVVSURzIGFyZSB1bnN1cHBvcnRlZCBieSAlMSRzKVxuIiksCisJCQkJCQlwcm9ncmFtX25hbWUpOworI2VuZGlmCisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCXVzYWdlKCk7CisJCQl9CisJCX0gZWxzZSBpZiAoIWRldmljZV9uYW1lKSB7CisJCQlkZXZpY2VfbmFtZSA9IGFyZ3ZbaV07CisJCX0gZWxzZSBpZiAoIWJsb2NrX2NvdW50KSB7CisJCQlibG9ja19jb3VudCA9IGFyZ3ZbaV07CisJCX0gZWxzZQorCQkJdXNhZ2UoKTsKKwl9CisKKwlpZiAodmVyc2lvbiAhPSAxKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCIlczogZG9lcyBub3Qgc3VwcG9ydCBzd2Fwc3BhY2UgdmVyc2lvbiAlZC5cbiIpLAorCQkJcHJvZ3JhbV9uYW1lLCB2ZXJzaW9uKTsKKwkJZXhpdChFWElUX0ZBSUxVUkUpOworCX0KKworI2lmZGVmIEhBVkVfTElCVVVJRAorCWlmKG9wdF91dWlkKSB7CisJCWlmICh1dWlkX3BhcnNlKG9wdF91dWlkLCB1dWlkX2RhdCkgIT0gMCkKKwkJCWRpZShfKCJlcnJvcjogVVVJRCBwYXJzaW5nIGZhaWxlZCIpKTsKKwl9IGVsc2UKKwkJdXVpZF9nZW5lcmF0ZSh1dWlkX2RhdCk7CisJdXVpZCA9IHV1aWRfZGF0OworI2VuZGlmCisKKwlpbml0X3NpZ25hdHVyZV9wYWdlKCk7CS8qIGdldCBwYWdlc2l6ZSAqLworCWF0ZXhpdChkZWluaXRfc2lnbmF0dXJlX3BhZ2UpOworCisJaWYgKCFkZXZpY2VfbmFtZSkgeworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCV8oIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIpLAorCQkJcHJvZ3JhbV9uYW1lKTsKKwkJdXNhZ2UoKTsKKwl9CisJaWYgKGJsb2NrX2NvdW50KSB7CisJCS8qIHRoaXMgc2lsbHkgdXNlciBzcGVjaWZpZWQgdGhlIG51bWJlciBvZiBibG9ja3MKKwkJICAgZXhwbGljaXRseSAqLworCQljaGFyICp0bXA7CisJCWludCBibG9ja3NfcGVyX3BhZ2UgPSBwYWdlc2l6ZS8xMDI0OworCQlQQUdFUyA9IHN0cnRvdWxsKGJsb2NrX2NvdW50LCZ0bXAsMCkvYmxvY2tzX3Blcl9wYWdlOworCQlpZiAoKnRtcCkKKwkJCXVzYWdlKCk7CisJfQorCXN6ID0gZ2V0X3NpemUoZGV2aWNlX25hbWUpOworCWlmICghUEFHRVMpIHsKKwkJUEFHRVMgPSBzejsKKwl9IGVsc2UgaWYgKFBBR0VTID4gc3ogJiYgIWZvcmNlKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkJXygiJXM6IGVycm9yOiAiCisJCQkgICJzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iKSwKKwkJCXByb2dyYW1fbmFtZSwKKwkJCVBBR0VTKihwYWdlc2l6ZS8xMDI0KSwgc3oqKHBhZ2VzaXplLzEwMjQpKTsKKwkJZXhpdCgxKTsKKwl9CisKKwlpZiAoUEFHRVMgPCBNSU5fR09PRFBBR0VTKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkJXygiJXM6IGVycm9yOiBzd2FwIGFyZWEgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJWxkIEtpQlxuIiksCisJCQlwcm9ncmFtX25hbWUsIChsb25nKShNSU5fR09PRFBBR0VTICogcGFnZXNpemUvMTAyNCkpOworCQl1c2FnZSgpOworCX0KKworI2lmZGVmIF9fbGludXhfXworCWlmIChnZXRfbGludXhfdmVyc2lvbigpID49IEtFUk5FTF9WRVJTSU9OKDIsMyw0KSkKKwkJbWF4cGFnZXMgPSBVSU5UX01BWCArIDFVTEw7CisJZWxzZSBpZiAoZ2V0X2xpbnV4X3ZlcnNpb24oKSA+PSBLRVJORUxfVkVSU0lPTigyLDIsMSkpCisJCW1heHBhZ2VzID0gVjFfTUFYX1BBR0VTOworCWVsc2UKKyNlbmRpZgorCQltYXhwYWdlcyA9IFYxX09MRF9NQVhfUEFHRVM7CisKKwlpZiAoUEFHRVMgPiBtYXhwYWdlcykgeworCQlQQUdFUyA9IG1heHBhZ2VzOworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCV8oIiVzOiB3YXJuaW5nOiB0cnVuY2F0aW5nIHN3YXAgYXJlYSB0byAlbGx1IEtpQlxuIiksCisJCQlwcm9ncmFtX25hbWUsIFBBR0VTICogcGFnZXNpemUgLyAxMDI0KTsKKwl9CisKKwlpZiAoc3RhdChkZXZpY2VfbmFtZSwgJnN0YXRidWYpIDwgMCkgeworCQlwZXJyb3IoZGV2aWNlX25hbWUpOworCQlleGl0KEVYSVRfRkFJTFVSRSk7CisJfQorCWlmIChTX0lTQkxLKHN0YXRidWYuc3RfbW9kZSkpCisJCURFViA9IG9wZW4oZGV2aWNlX25hbWUsIE9fUkRXUiB8IE9fRVhDTCk7CisJZWxzZQorCQlERVYgPSBvcGVuKGRldmljZV9uYW1lLCBPX1JEV1IpOworCisJaWYgKERFViA8IDApIHsKKwkJcGVycm9yKGRldmljZV9uYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisKKwkvKiBXYW50IGEgYmxvY2sgZGV2aWNlLiBQcm9iYWJseSBub3QgL2Rldi9oZGEgb3IgL2Rldi9oZGIuICovCisJaWYgKCFTX0lTQkxLKHN0YXRidWYuc3RfbW9kZSkpCisJCWNoZWNrPTA7CisJZWxzZSBpZiAoc3RhdGJ1Zi5zdF9yZGV2ID09IDB4MDMwMCB8fCBzdGF0YnVmLnN0X3JkZXYgPT0gMHgwMzQwKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkJXygiJXM6IGVycm9yOiAiCisJCQkgICJ3aWxsIG5vdCB0cnkgdG8gbWFrZSBzd2FwZGV2aWNlIG9uICclcydcbiIpLAorCQkJcHJvZ3JhbV9uYW1lLCBkZXZpY2VfbmFtZSk7CisJCWV4aXQoMSk7CisJfSBlbHNlIGlmIChjaGVja19tb3VudCgpKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkJXygiJXM6IGVycm9yOiAiCisJCQkgICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIHN3YXBzcGFjZS5cbiIpLAorCQkJcHJvZ3JhbV9uYW1lLCBkZXZpY2VfbmFtZSk7CisJCWV4aXQoMSk7CisJfQorCisJaWYgKGNoZWNrKQorCQljaGVja19ibG9ja3MoKTsKKworCXphcF9ib290Yml0cyhERVYsIGRldmljZV9uYW1lLCBmb3JjZSk7CisKKwlwLT52ZXJzaW9uID0gMTsKKwlwLT5sYXN0X3BhZ2UgPSBQQUdFUy0xOworCXAtPm5yX2JhZHBhZ2VzID0gYmFkcGFnZXM7CisKKwlpZiAoYmFkcGFnZXMgPiBQQUdFUyAtIE1JTl9HT09EUEFHRVMpCisJCWRpZShfKCJVbmFibGUgdG8gc2V0IHVwIHN3YXAtc3BhY2U6IHVucmVhZGFibGUiKSk7CisKKwlnb29kcGFnZXMgPSBQQUdFUyAtIGJhZHBhZ2VzIC0gMTsKKwlwcmludGYoXygiU2V0dGluZyB1cCBzd2Fwc3BhY2UgdmVyc2lvbiAxLCBzaXplID0gJWxsdSBLaUJcbiIpLAorCQlnb29kcGFnZXMgKiBwYWdlc2l6ZSAvIDEwMjQpOworCisJd3JpdGVfc2lnbmF0dXJlKCJTV0FQU1BBQ0UyIik7CisJd3JpdGVfdXVpZF9hbmRfbGFiZWwodXVpZCwgb3B0X2xhYmVsKTsKKworCW9mZnNldCA9IDEwMjQ7CisJaWYgKGxzZWVrKERFViwgb2Zmc2V0LCBTRUVLX1NFVCkgIT0gb2Zmc2V0KQorCQlkaWUoXygidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIpKTsKKwlpZiAod3JpdGVfYWxsKERFViwgKGNoYXIgKikgc2lnbmF0dXJlX3BhZ2UgKyBvZmZzZXQsCisJCQkJICAgIHBhZ2VzaXplIC0gb2Zmc2V0KSA9PSAtMSkgeworCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6ICVzOiB1bmFibGUgdG8gd3JpdGUgc2lnbmF0dXJlIHBhZ2U6ICVzIiksCisJCQlwcm9ncmFtX25hbWUsIGRldmljZV9uYW1lLCBzdHJlcnJvcihlcnJubykpOworCQlleGl0KDEpOworCX0KKworCS8qCisJICogQSBzdWJzZXF1ZW50IHN3YXBvbigpIHdpbGwgZmFpbCBpZiB0aGUgc2lnbmF0dXJlCisJICogaXMgbm90IGFjdHVhbGx5IG9uIGRpc2suIChUaGlzIGlzIGEga2VybmVsIGJ1Zy4pCisJICovCisjaWZkZWYgSEFWRV9GU1lOQworCWlmIChmc3luYyhERVYpKQorCQkgZGllKF8oImZzeW5jIGZhaWxlZCIpKTsKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9MSUJTRUxJTlVYCisJaWYgKFNfSVNSRUcoc3RhdGJ1Zi5zdF9tb2RlKSAmJiBpc19zZWxpbnV4X2VuYWJsZWQoKSA+IDApIHsKKwkJc2VjdXJpdHlfY29udGV4dF90IGNvbnRleHRfc3RyaW5nOworCQlzZWN1cml0eV9jb250ZXh0X3Qgb2xkY29udGV4dDsKKwkJY29udGV4dF90IG5ld2NvbnRleHQ7CisKKwkJaWYgKGZnZXRmaWxlY29uKERFViwgJm9sZGNvbnRleHQpIDwgMCkgeworCQkJaWYgKGVycm5vICE9IEVOT0RBVEEpIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6ICVzOiB1bmFibGUgdG8gb2J0YWluIHNlbGludXggZmlsZSBsYWJlbDogJXNcbiIpLAorCQkJCQkJcHJvZ3JhbV9uYW1lLCBkZXZpY2VfbmFtZSwKKwkJCQkJCXN0cmVycm9yKGVycm5vKSk7CisJCQkJZXhpdCgxKTsKKwkJCX0KKwkJCWlmIChtYXRjaHBhdGhjb24oZGV2aWNlX25hbWUsIHN0YXRidWYuc3RfbW9kZSwgJm9sZGNvbnRleHQpKQorCQkJCWRpZShfKCJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiKSk7CisJCX0KKwkJaWYgKCEobmV3Y29udGV4dCA9IGNvbnRleHRfbmV3KG9sZGNvbnRleHQpKSkKKwkJCWRpZShfKCJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiKSk7CisJCWlmIChjb250ZXh0X3R5cGVfc2V0KG5ld2NvbnRleHQsIFNFTElOVVhfU1dBUEZJTEVfVFlQRSkpCisJCQlkaWUoXygiY291bGRuJ3QgY29tcHV0ZSBzZWxpbnV4IGNvbnRleHQiKSk7CisKKwkJY29udGV4dF9zdHJpbmcgPSBjb250ZXh0X3N0cihuZXdjb250ZXh0KTsKKworCQlpZiAoc3RyY21wKGNvbnRleHRfc3RyaW5nLCBvbGRjb250ZXh0KSE9MCkgeworCQkJaWYgKGZzZXRmaWxlY29uKERFViwgY29udGV4dF9zdHJpbmcpKSB7CisJCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIpLAorCQkJCQkJcHJvZ3JhbV9uYW1lLCBkZXZpY2VfbmFtZSwKKwkJCQkJCWNvbnRleHRfc3RyaW5nLAorCQkJCQkJc3RyZXJyb3IoZXJybm8pKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQl9CisJCWNvbnRleHRfZnJlZShuZXdjb250ZXh0KTsKKwkJZnJlZWNvbihvbGRjb250ZXh0KTsKKwl9CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2Rpc2stdXRpbHMvcmF3LjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL3Jhdy44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyYmIxN2MKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL3Jhdy44CkBAIC0wLDAgKzEsOTQgQEAKKy5cIiAtKi0gbnJvZmYgLSotCisuVEggUkFXIDggIkF1ZyAxOTk5IiAiVmVyc2lvbiAwLjEiCisuU0ggTkFNRQorcmF3IFwtIGJpbmQgYSBMaW51eCByYXcgY2hhcmFjdGVyIGRldmljZQorLlNIIFNZTk9QU0lTCisuQiByYXcKKy5JIC9kZXYvcmF3L3JhdzxOPiA8bWFqb3I+IDxtaW5vcj4KKy5QUAorLkIgcmF3CisuSSAvZGV2L3Jhdy9yYXc8Tj4gL2Rldi88YmxvY2tkZXY+CisuUFAKKy5CIHJhdworLkIgXC1xCisuSSAvZGV2L3Jhdy9yYXc8Tj4KKy5QUAorLkIgcmF3CisuQiBcLXFhCisuU0ggREVTQ1JJUFRJT04KKy5CIHJhdworaXMgdXNlZCB0byBiaW5kIGEgTGludXggcmF3IGNoYXJhY3RlciBkZXZpY2UgdG8gYSBibG9jayBkZXZpY2UuICBBbnkKK2Jsb2NrIGRldmljZSBtYXkgYmUgdXNlZDogYXQgdGhlIHRpbWUgb2YgYmluZGluZywgdGhlIGRldmljZSBkcml2ZXIgZG9lcworbm90IGV2ZW4gaGF2ZSB0byBiZSBhY2Nlc3NpYmxlIChpdCBtYXkgYmUgbG9hZGVkIG9uIGRlbWFuZCBhcyBhIGtlcm5lbAorbW9kdWxlIGxhdGVyKS4KKy5QUAorLkIgcmF3CitpcyB1c2VkIGluIHR3byBtb2RlczogaXQgZWl0aGVyIHNldHMgcmF3IGRldmljZSBiaW5kaW5ncywgb3IgaXQgcXVlcmllcworZXhpc3RpbmcgYmluZGluZ3MuICBXaGVuIHNldHRpbmcgYSByYXcgZGV2aWNlLAorLkkgL2Rldi9yYXcvcmF3PE4+CitpcyB0aGUgZGV2aWNlIG5hbWUgb2YgYW4gZXhpc3RpbmcgcmF3IGRldmljZSBub2RlIGluIHRoZSBmaWxlc3lzdGVtLgorVGhlIGJsb2NrIGRldmljZSB0byB3aGljaCBpdCBpcyB0byBiZSBib3VuZCBjYW4gYmUgc3BlY2lmaWVkIGVpdGhlciBpbgordGVybXMgb2YgaXRzCisuSSBtYWpvcgorYW5kCisuSSBtaW5vcgorZGV2aWNlIG51bWJlcnMsIG9yIGFzIGEgcGF0aCBuYW1lCisuSSAvZGV2LzxibG9ja2Rldj4KK3RvIGFuIGV4aXN0aW5nIGJsb2NrIGRldmljZSBmaWxlLgorLlBQCitUaGUgYmluZGluZ3MgYWxyZWFkeSBpbiBleGlzdGVuY2UgY2FuIGJlIHF1ZXJpZWQgd2l0aCB0aGUgCisuSSBcLXEKK29wdGlvbiwgd2l0aCBpcyB1c2VkIGVpdGhlciB3aXRoIGEgcmF3IGRldmljZSBmaWxlbmFtZSB0byBxdWVyeSB0aGF0IG9uZQorZGV2aWNlLCBvciB3aXRoIHRoZSAKKy5JIFwtYQorb3B0aW9uIHRvIHF1ZXJ5IGFsbCBib3VuZCByYXcgZGV2aWNlcy4KKy5QUAorVW5iaW5kaW5nIGNhbiBiZSBkb25lIGJ5IHNwZWNpZnlpbmcgbWFqb3IgYW5kIG1pbm9yIDAuCisuUFAKK09uY2UgYm91bmQgdG8gYSBibG9jayBkZXZpY2UsIGEgcmF3IGRldmljZSBjYW4gYmUgb3BlbmVkLCByZWFkIGFuZAord3JpdHRlbiwganVzdCBsaWtlIHRoZSBibG9jayBkZXZpY2UgaXQgaXMgYm91bmQgdG8uICBIb3dldmVyLCB0aGUgcmF3CitkZXZpY2UgZG9lcyBub3QgYmVoYXZlIGV4YWN0bHkgbGlrZSB0aGUgYmxvY2sgZGV2aWNlLiAgSW4gcGFydGljdWxhciwKK2FjY2VzcyB0byB0aGUgcmF3IGRldmljZSBieXBhc3NlcyB0aGUga2VybmVsJ3MgYmxvY2sgYnVmZmVyIGNhY2hlCitlbnRpcmVseTogYWxsIEkvTyBpcyBkb25lIGRpcmVjdGx5IHRvIGFuZCBmcm9tIHRoZSBhZGRyZXNzIHNwYWNlIG9mIHRoZQorcHJvY2VzcyBwZXJmb3JtaW5nIHRoZSBJL08uICBJZiB0aGUgdW5kZXJseWluZyBibG9jayBkZXZpY2UgZHJpdmVyIGNhbgorc3VwcG9ydCBETUEsIHRoZW4gbm8gZGF0YSBjb3B5aW5nIGF0IGFsbCBpcyByZXF1aXJlZCB0byBjb21wbGV0ZSB0aGUKK0kvTy4KKy5QUAorQmVjYXVzZSByYXcgSS9PIGludm9sdmVzIGRpcmVjdCBoYXJkd2FyZSBhY2Nlc3MgdG8gYSBwcm9jZXNzJ3MgbWVtb3J5LCBhCitmZXcgZXh0cmEgcmVzdHJpY3Rpb25zIG11c3QgYmUgb2JzZXJ2ZWQuICBBbGwgSS9PcyBtdXN0IGJlIGNvcnJlY3RseQorYWxpZ25lZCBpbiBtZW1vcnkgYW5kIG9uIGRpc2s6IHRoZXkgbXVzdCBzdGFydCBhdCBhIHNlY3RvciBvZmZzZXQgb24KK2Rpc2ssIHRoZXkgbXVzdCBiZSBhbiBleGFjdCBudW1iZXIgb2Ygc2VjdG9ycyBsb25nLCBhbmQgdGhlIGRhdGEgYnVmZmVyCitpbiB2aXJ0dWFsIG1lbW9yeSBtdXN0IGFsc28gYmUgYWxpZ25lZCB0byBhIG11bHRpcGxlIG9mIHRoZSBzZWN0b3IKK3NpemUuICBUaGUgc2VjdG9yIHNpemUgaXMgNTEyIGJ5dGVzIGZvciBtb3N0IGRldmljZXMuCisuU0ggT1BUSU9OUworLlRQCisuQiAtcQorU2V0IHF1ZXJ5IG1vZGUuCisuQiByYXcKK3dpbGwgcXVlcnkgYW4gZXhpc3RpbmcgYmluZGluZyBpbnN0ZWFkIG9mIHNldHRpbmcgYSBuZXcgb25lLgorLlRQCisuQiAtYQorV2l0aAorLkIgLXEKKywgc3BlY2lmaWVzIHRoYXQgYWxsIGJvdW5kIHJhdyBkZXZpY2VzIHNob3VsZCBiZSBxdWVyaWVkLgorLlRQCisuQiAtaAorcHJvdmlkZXMgYSB1c2FnZSBzdW1tYXJ5LgorLlNIIEJVR1MKK1RoZSBMaW51eAorLkIgZGQKKygxKSBjb21tYW5kIHNob3VsZCBiZSB1c2VkIHdpdGhvdXQgYnM9IG9wdGlvbiBvciB0aGUgYmxvY2tzaXplIG5lZWRzIHRvIGJlIGEKK211bHRpcGxlIG9mIHRoZSBzZWN0b3Igc2l6ZSBvZiB0aGUgZGV2aWNlICg1MTIgYnl0ZXMgdXN1YWxseSkgb3RoZXJ3aXNlIGl0Cit3aWxsIGZhaWwgd2l0aCAiSW52YWxpZCBBcmd1bWVudCIgbWVzc2FnZXMgKEVJTlZBTCkuCisKKy5QUAorUmF3IEkvTyBkZXZpY2VzIGRvIG5vdCBtYWludGFpbiBjYWNoZSBjb2hlcmVuY3kgd2l0aCB0aGUgTGludXggYmxvY2sKK2RldmljZSBidWZmZXIgY2FjaGUuICBJZiB5b3UgdXNlIHJhdyBJL08gdG8gb3ZlcndyaXRlIGRhdGEgYWxyZWFkeSBpbgordGhlIGJ1ZmZlciBjYWNoZSwgdGhlIGJ1ZmZlciBjYWNoZSB3aWxsIG5vIGxvbmdlciBjb3JyZXNwb25kIHRvIHRoZQorY29udGVudHMgb2YgdGhlIGFjdHVhbCBzdG9yYWdlIGRldmljZSB1bmRlcm5lYXRoLiAgVGhpcyBpcyBkZWxpYmVyYXRlLAorYnV0IGlzIHJlZ2FyZGVkIGVpdGhlciBhIGJ1ZyBvciBhIGZlYXR1cmUgZGVwZW5kaW5nIG9uIHdobyB5b3UgYXNrIQorLlNIIEFVVEhPUgorU3RlcGhlbiBUd2VlZGllIChzY3RAcmVkaGF0LmNvbSkKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSByYXcgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kaXNrLXV0aWxzL3Jhdy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9yYXcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjM0YjYwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZGlzay11dGlscy9yYXcuYwpAQCAtMCwwICsxLDI2NSBAQAorLyoKKyAqIHJhdy5jOiBVc2VyIG1vZGUgdG9vbCB0byBiaW5kIGFuZCBxdWVyeSByYXcgY2hhcmFjdGVyIGRldmljZXMuCisgKgorICogU3RlcGhlbiBUd2VlZGllLCAxOTk5LCAyMDAwCisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwKKyAqIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIuCisgKiAKKyAqIENvcHlyaWdodCBSZWQgSGF0IFNvZnR3YXJlLCAxOTk5LCAyMDAwCisgKgorICovCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN5cy9zeXNtYWNyb3MuaD4KKyNpbmNsdWRlIDxsaW51eC9yYXcuaD4KKyNpbmNsdWRlIDxsaW51eC9tYWpvci5oPgorI2luY2x1ZGUgIm5scy5oIgorCisKKyNkZWZpbmUgUkFXREVWRElSICIvZGV2L3Jhdy8iCisjZGVmaW5lIFJBV0RFVkNUTCBSQVdERVZESVIgInJhd2N0bCIKKy8qIGRlcHJlY2F0ZWQgKi8KKyNkZWZpbmUgUkFXREVWQ1RMX09MRCAiL2Rldi9yYXdjdGwiCisKKworI2RlZmluZSBSQVdfTlJfTUlOT1JTIDgxOTIKKworY2hhciAqCXByb2duYW1lOworaW50CWRvX3F1ZXJ5ID0gMDsKK2ludAlkb19xdWVyeV9hbGwgPSAwOworCitpbnQJbWFzdGVyX2ZkOworaW50CXJhd19taW5vcjsKKwordm9pZCBvcGVuX3Jhd19jdGwodm9pZCk7CitpbnQgIHF1ZXJ5KGludCBtaW5vciwgY29uc3QgY2hhciAqcmF3X25hbWUsIGludCBxdWlldCk7CitpbnQgIGJpbmQgKGludCBtaW5vciwgaW50IGJsb2NrX21ham9yLCBpbnQgYmxvY2tfbWlub3IpOworCisKK3N0YXRpYyB2b2lkIHVzYWdlKGludCBlcnIpCit7CisJZnByaW50ZihzdGRlcnIsCisJCV8oIlVzYWdlOlxuIgorCQkiICAlcyAiIFJBV0RFVkRJUiAicmF3TiA8bWFqb3I+IDxtaW5vcj5cbiIKKwkJIiAgJXMgIiBSQVdERVZESVIgInJhd04gL2Rldi88YmxvY2tkZXY+XG4iCisJCSIgICVzIC1xICIgUkFXREVWRElSICJyYXdOXG4iCisJCSIgICVzIC1xYVxuIiksCisJCXByb2duYW1lLCBwcm9nbmFtZSwgcHJvZ25hbWUsIHByb2duYW1lKTsKKwlleGl0KGVycik7Cit9CisKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlpbnQgIGM7CisJY2hhciAqIHJhd19uYW1lOworCWNoYXIgKiBibG9ja19uYW1lOworCWludCAgZXJyOworCWludCAgYmxvY2tfbWFqb3IsIGJsb2NrX21pbm9yOworCWludCAgaSwgcmM7CisKKwlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCisJc2V0bG9jYWxlKExDX01FU1NBR0VTLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisJcHJvZ25hbWUgPSBhcmd2WzBdOworCisJd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJhaHEiKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ2EnOgorCQkJZG9fcXVlcnlfYWxsID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdoJzoKKwkJCXVzYWdlKDApOworCQljYXNlICdxJzoKKwkJCWRvX3F1ZXJ5ID0gMTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJdXNhZ2UoMSk7CisJCX0KKwl9CisKKwkvKgorCSAqIENoZWNrIGZvciwgYW5kIG9wZW4sIHRoZSBtYXN0ZXIgcmF3IGRldmljZSwgL2Rldi9yYXcKKwkgKi8KKworCW9wZW5fcmF3X2N0bCgpOworCisJaWYgKGRvX3F1ZXJ5X2FsbCkgeworCQlpZiAob3B0aW5kIDwgYXJnYykKKwkJCXVzYWdlKDEpOworCQlmb3IgKGkgPSAxOyBpIDwgUkFXX05SX01JTk9SUzsgaSsrKQorCQkJcXVlcnkoaSwgTlVMTCwgMSk7CisJCWV4aXQoMCk7CisJfQorCisJLyoKKwkgKiBJdCdzIGEgYmluZCBvciBhIHNpbmdsZSBxdWVyeS4gIEVpdGhlciB3YXkgd2UgbmVlZCBhIHJhdyBkZXZpY2UuCisJICovCisKKwlpZiAob3B0aW5kID49IGFyZ2MpCisJCXVzYWdlKDEpOworCXJhd19uYW1lID0gYXJndltvcHRpbmQrK107CisKKwkvKgorCSAqIHRyeSB0byBjaGVjayB0aGUgZGV2aWNlIG5hbWUgYmVmb3JlIHN0YXQoKSwgYmVjYXVzZSBvbiBzeXN0ZW1zIHdpdGgKKwkgKiB1ZGV2IHRoZSByYXcwIGNhdXNlcyBhIGNyZWF0ZSB1ZGV2IGV2ZW50IGZvciBjaGFyIDE2Mi8wLCB3aGljaAorCSAqIGNhdXNlcyB1ZGV2IHRvICpyZW1vdmUqIC9kZXYvcmF3Y3RsCisJICovCisJcmMgPSBzc2NhbmYocmF3X25hbWUsIFJBV0RFVkRJUiAicmF3JWQiLCAmcmF3X21pbm9yKTsKKwlpZiAocmMgIT0gMSkKKwkJdXNhZ2UoMSk7CisKKwlpZiAocmF3X21pbm9yID09IDApIHsKKwkJZnByaW50ZiAoc3RkZXJyLAorCQkJXygiRGV2aWNlICclcycgaXMgY29udHJvbCByYXcgZGV2ICIKKwkJCSIodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iKSwKKwkJCXJhd19uYW1lKTsKKwkJZXhpdCgyKTsKKwl9CisKKwlpZiAoZG9fcXVlcnkpCisJCXJldHVybiBxdWVyeShyYXdfbWlub3IsIHJhd19uYW1lLCAwKTsKKworCS8qCisJICogSXQncyBub3QgYSBxdWVyeSwgc28gd2Ugc3RpbGwgaGF2ZSBzb21lIHBhcnNpbmcgdG8gZG8uICBIYXZlCisJICogd2UgYmVlbiBnaXZlbiBhIGJsb2NrIGRldmljZSBmaWxlbmFtZSBvciBhIG1ham9yL21pbm9yIHBhaXI/CisJICovCisKKwlzd2l0Y2ggKGFyZ2MgLSBvcHRpbmQpIHsKKwljYXNlIDE6CisJCWJsb2NrX25hbWUgPSBhcmd2W29wdGluZF07CisJCWVyciA9IHN0YXQoYmxvY2tfbmFtZSwgJnN0YXRidWYpOworCQlpZiAoZXJyKSB7CisJCQlmcHJpbnRmIChzdGRlcnIsCisJCQkJIF8oIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIiksCisJCQkJIGJsb2NrX25hbWUsIHN0cmVycm9yKGVycm5vKSk7CisJCQlleGl0KDIpOworCQl9CisKKwkJaWYgKCFTX0lTQkxLKHN0YXRidWYuc3RfbW9kZSkpIHsKKwkJCWZwcmludGYgKHN0ZGVyciwgXygiRGV2aWNlICclcycgaXMgbm90IGEgYmxvY2sgZGV2XG4iKSwKKwkJCQkgYmxvY2tfbmFtZSk7CisJCQlleGl0KDIpOworCQl9CisKKwkJYmxvY2tfbWFqb3IgPSBtYWpvcihzdGF0YnVmLnN0X3JkZXYpOworCQlibG9ja19taW5vciA9IG1pbm9yKHN0YXRidWYuc3RfcmRldik7CisJCWJyZWFrOworCisJY2FzZSAyOgorCQlibG9ja19tYWpvciA9IHN0cnRvbChhcmd2W29wdGluZF0sIDAsIDApOworCQlibG9ja19taW5vciA9IHN0cnRvbChhcmd2W29wdGluZCsxXSwgMCwgMCk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJYmxvY2tfbWFqb3IgPSBibG9ja19taW5vciA9IDA7IC8qIGp1c3QgdG8ga2VlcCBnY2MgaGFwcHkgKi8KKwkJdXNhZ2UoMSk7CisJfQorCisJcmV0dXJuIGJpbmQocmF3X21pbm9yLCBibG9ja19tYWpvciwgYmxvY2tfbWlub3IpOworCXJldHVybiAwOworCit9CisKKwordm9pZCBvcGVuX3Jhd19jdGwodm9pZCkKK3sKKwlpbnQgZXJyc3Y7CisKKwltYXN0ZXJfZmQgPSBvcGVuKFJBV0RFVkNUTCwgT19SRFdSLCAwKTsKKwlpZiAobWFzdGVyX2ZkIDwgMCkgeworCQllcnJzdiA9IGVycm5vOworCQltYXN0ZXJfZmQgPSBvcGVuKFJBV0RFVkNUTF9PTEQsIE9fUkRXUiwgMCk7CisJCWlmIChtYXN0ZXJfZmQgPCAwKSB7CisJCQlmcHJpbnRmIChzdGRlcnIsCisJCQkJIF8oIkNhbm5vdCBvcGVuIG1hc3RlciByYXcgZGV2aWNlICciCisJCQkJIFJBV0RFVkNUTAorCQkJCSAiJyAoJXMpXG4iKSwgc3RyZXJyb3IoZXJyc3YpKTsKKwkJCWV4aXQoMik7CisJCX0KKwl9Cit9CisKK2ludCBxdWVyeShpbnQgbWlub3IsIGNvbnN0IGNoYXIgKnJhd19uYW1lLCBpbnQgcXVpZXQpCit7CisJc3RydWN0IHJhd19jb25maWdfcmVxdWVzdCBycTsKKwlzdGF0aWMgaW50IGhhc193b3JrZWQgPSAwOworCWludCBlcnI7CisKKwlpZiAocmF3X25hbWUpIHsKKwkJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKworCQllcnIgPSBzdGF0KHJhd19uYW1lLCAmc3RhdGJ1Zik7CisJCWlmIChlcnIpIHsKKwkJCWZwcmludGYgKHN0ZGVyciwgXygiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIiksCisJCQkJIHJhd19uYW1lLCBzdHJlcnJvcihlcnJubykpOworCQkJZXhpdCgyKTsKKwkJfQorCisJCWlmICghU19JU0NIUihzdGF0YnVmLnN0X21vZGUpKSB7CisJCQlmcHJpbnRmIChzdGRlcnIsIF8oIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iKSwKKwkJCQkgcmF3X25hbWUpOworCQkJZXhpdCgyKTsKKwkJfQorCQlpZiAobWFqb3Ioc3RhdGJ1Zi5zdF9yZGV2KSAhPSBSQVdfTUFKT1IpIHsKKwkJCWZwcmludGYgKHN0ZGVyciwgXygiRGV2aWNlICclcycgaXMgbm90IGEgcmF3IGRldlxuIiksCisJCQkJIHJhd19uYW1lKTsKKwkJCWV4aXQoMik7CisJCX0KKwkJbWlub3IgPSBtaW5vcihzdGF0YnVmLnN0X3JkZXYpOworCX0KKworCXJxLnJhd19taW5vciA9IG1pbm9yOworCWVyciA9IGlvY3RsKG1hc3Rlcl9mZCwgUkFXX0dFVEJJTkQsICZycSk7CisJaWYgKGVyciA8IDApIHsKKwkJaWYgKHF1aWV0ICYmIGVycm5vID09IEVOT0RFVikKKwkJCXJldHVybiAzOworCQlpZiAoaGFzX3dvcmtlZCAmJiBlcnJubyA9PSBFSU5WQUwpCisJCQlyZXR1cm4gMDsKKwkJZnByaW50ZiAoc3RkZXJyLAorCQkJIF8oIkVycm9yIHF1ZXJ5aW5nIHJhdyBkZXZpY2UgKCVzKVxuIiksCisJCQkgc3RyZXJyb3IoZXJybm8pKTsKKwkJZXhpdCgzKTsKKwl9CisJLyogSWYgb25lIHF1ZXJ5IGhhcyB3b3JrZWQsIG1hcmsgdGhhdCBmYWN0IHNvIHRoYXQgd2UgZG9uJ3QKKwkgKiByZXBvcnQgc3B1cmlvdXMgZmF0YWwgZXJyb3JzIGlmIHJhdyg4KSBoYXMgYmVlbiBidWlsdCB0bworCSAqIHN1cHBvcnQgbW9yZSByYXcgbWlub3IgbnVtYmVycyB0aGFuIHRoZSBrZXJuZWwgaGFzLiAqLworCWhhc193b3JrZWQgPSAxOworCWlmIChxdWlldCAmJiAhcnEuYmxvY2tfbWFqb3IgJiYgIXJxLmJsb2NrX21pbm9yKQorCQlyZXR1cm4gMDsKKwlwcmludGYgKF8oUkFXREVWRElSICJyYXclZDoJYm91bmQgdG8gbWFqb3IgJWQsIG1pbm9yICVkXG4iKSwKKwkJbWlub3IsIChpbnQpIHJxLmJsb2NrX21ham9yLCAoaW50KSBycS5ibG9ja19taW5vcik7CisJcmV0dXJuIDA7Cit9CisKK2ludCBiaW5kKGludCBtaW5vciwgaW50IGJsb2NrX21ham9yLCBpbnQgYmxvY2tfbWlub3IpCit7CisJc3RydWN0IHJhd19jb25maWdfcmVxdWVzdCBycTsKKwlpbnQgZXJyOworCisJcnEucmF3X21pbm9yICAgPSBtaW5vcjsKKwlycS5ibG9ja19tYWpvciA9IGJsb2NrX21ham9yOworCXJxLmJsb2NrX21pbm9yID0gYmxvY2tfbWlub3I7CisJZXJyID0gaW9jdGwobWFzdGVyX2ZkLCBSQVdfU0VUQklORCwgJnJxKTsKKwlpZiAoZXJyIDwgMCkgeworCQlmcHJpbnRmIChzdGRlcnIsCisJCQkgXygiRXJyb3Igc2V0dGluZyByYXcgZGV2aWNlICglcylcbiIpLAorCQkJIHN0cmVycm9yKGVycm5vKSk7CisJCWV4aXQoMyk7CisJfQorCXByaW50ZiAoXyhSQVdERVZESVIgInJhdyVkOglib3VuZCB0byBtYWpvciAlZCwgbWlub3IgJWRcbiIpLAorCQlyYXdfbWlub3IsIChpbnQpIHJxLmJsb2NrX21ham9yLCAoaW50KSBycS5ibG9ja19taW5vcik7CisJcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2RvY3MvdjIuMTMtUmVsZWFzZU5vdGVzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZG9jcy92Mi4xMy1SZWxlYXNlTm90ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZkNWQ2OAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2RvY3MvdjIuMTMtUmVsZWFzZU5vdGVzCkBAIC0wLDAgKzEsNDYwIEBACisKK1V0aWwtbGludXgtbmcgMi4xMyBSZWxlYXNlIE5vdGVzICAoMjgtQXVnLTIwMDcpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitSZWxlYXNlIGhpZ2hsaWdodHM6CistLS0tLS0tLS0tLS0tLS0tLS0KKworIG1vdW50KDgpIGRvZXNuJ3QgaW5jbHVkZSBORlMgY2xpZW50IGNvZGUgYW55bW9yZS4gRG9uJ3QgZm9yZ2V0IHRvCisgaW5zdGFsbCBuZnMtdXRpbHMgMS4xLjAgb3IgbmV3ZXIgd2l0aCAvc2Jpbi9bdV1tb3VudC57bmZzLG5mczR9LgorCisgbW91bnQoOCkgZG9lc24ndCBpbmNsdWRlIGZpbGVzeXN0ZW0gZGV0ZWN0aW9uIGNvZGUgYW55bW9yZS4gWW91CisgaGF2ZSB0byBjb21waWxlIC0td2l0aC1mc3Byb2JlPXtibGtpZCx2b2x1bWVfaWR9LCBhbmQgbGliYmxraWQKKyAoZTJmc3Byb2dzKSBvciBsaWJ2b2x1bWVfaWQgKHVkZXYgPj0gdjExMCkgaXMgcmVxdWlyZWQuCisKKyBtb3VudCg4KSBzdXBwb3J0cyBuZXcgcmVsYXRpbWUsIGNvbnRleHQsIGZzY29udGV4dCwgYW5kIGRlZmNvbnRleHQKKyBtb3VudCBvcHRpb25zLgorCisgbG9zZXR1cCg4KSBzdXBwb3J0cyBjb21tYW5kIGxpbmUgb3B0aW9uICItYSIgdG8gbGlzdCBhbGwgdXNlZCBsb29wCisgZGV2aWNlcywgJy1zJyB0byBwcmludCBhIGRldmljZSBuYW1lIGlmICItZiIgYW5kIGEgZmlsZSBhcmd1bWVudAorIGFyZSBwcmVzZW50LCBhbmQgIi1yIiB0byBjcmVhdGUgYSByZWFkLW9ubHkgbG9vcCBkZXZpY2UuCisKKyBmZGlzayg4KSBTdW4gbGFiZWwgc3VwcG9ydCBoYXMgYmVlbiBpbXByb3ZlZC4gZmRpc2soOCkgaXMgYWxzbyBhYmxlCisgdG8gd2FybiBhYm91dCBkZXRlY3RlZCBHUFQgKGZkaXNrIGRvZXNuJ3Qgc3VwcG9ydCBHUFQpLgorCisgdGFza3NldCgxKSBpcyBpbmRlcGVuZGVudCBvbiBoYXJkY29kZWQgTlJfQ1BVUy4gY2hydCgxKSBzdXBwb3J0cworIFNDSEVEX0JBVENIIHNjaGVkdWxpbmcgcG9saWN5LgorCisgVGhlIHBhY2thZ2UgYnVpbGQgc3lzdGVtIGlzIG5vdyBiYXNlZCBvbiBhdXRvdG9vbHMuIFRoZSBidWlsZCBzeXN0ZW0KKyBzdXBwb3J0cyAgc2VwYXJhdGUgQ0ZMQUdTIGFuZCBMREZMQUdTIGZvciBzdWlkIHByb2dyYW1zIChTVUlEX0NGTEFHUywKKyBTVUlEX0xERkxBR1MpLiBGb3IgbW9yZSBkZXRhaWxzIHNlZSB0aGUgUkVBRE1FIGZpbGUKKworIGh3Y2xvY2soOCkgc3VwcG9ydHMgY29tbWFuZCBsaW5lIG9wdGlvbiAtLXJ0Yz08cGF0aD4gYW5kIC9kZXYvcnRjMAorIGRldmljZS4gLS1zeXN0b2hjIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gaW1wcm92ZWQsIGFuZCBpdCBkb2Vzbid0IGNhdXNlCisgYSA1MDBtcyBpbmFjY3VyYWN5IGVhY2ggdGltZSBpdCBpcyB1c2VkLgorCisgQXVkaXQgc3lzdGVtIHN1cHBvcnQgKC0td2l0aC1hdWRpdCkgaGFzIGJlZW4gYWRkZWQgdG8gaHdjbG9jayg4KSBhbmQKKyBsb2dpbigxKS4KKworIFNFTGludXggc3VwcG9ydCAoLS13aXRoLXNlbGludXgpIGhhcyBiZWVuIGFkZGVkIHRvIG1rc3dhcCg4KSBhbmQKKyBtb3VudCg4KS4KKworIHNldGFyY2goOCkgdXBzdHJlYW0gaGFzIGJlZW4gbWVyZ2VkIHdpdGggdXRpbC1saW51eC1uZy4KKworIHJ0Y3dha2UoOCkgY29tbWFuZCBoYXMgYmVlbiBhZGRlZCB0byB1dGlsLWxpbnV4LW5nLgorCisgYXJjaCgxKSBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mICJ1bmFtZSAtbSIgb3IgYXJjaCgxKSBmcm9tIGNvcmV1dGlscworICg+PSA2LjkrKS4gVGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBkb2Vzbid0IGJ1aWxkIGFyY2ggYnkgZGVmYXVsdCwKKyB5b3UgaGF2ZSB0byB1c2UgdGhlIG9wdGlvbiAtLWVuYWJsZS1hcmNoLgorCisKK0ZpeGVkIHNlY3VyaXR5IGlzc3VlczoKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgQ1ZFLTIwMDctMDgyMiAtIG1vdW50KDgpIGFsbG93cyBsb2NhbCB1c2VycyB0byB0cmlnZ2VyIGEgTlVMTAorICAgICAgICAgICAgICAgICBkZXJlZmVyZW5jZSBhbmQgYW4gYXBwbGljYXRpb24gY3Jhc2gKKyBDVkUtMjAwNi03MTA4IC0gbG9naW4oMSkgb21pdHMgUEFNIGFjY291bnQgdmFsaWRhdGlvbiB3aGVuIGF1dGggaXMKKyAgICAgICAgICAgICAgICAgc2tpcHBlZAorCisKK0NoYW5nZWxvZzoKKy0tLS0tLS0tLQorCisgRm9yIG1vcmUgZGV0YWlscyBzZWUgQ2hhbmdlTG9nIGZpbGVzIGF0OgorIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjEzLworCisKK2FnZXR0eToKKyAgIC0gOCBiaXQgY2hhcmFjdGVycyBvbiB0aGUgTGludXggY29uc29sZSBsZWFkIHRvIGlucHV0IGNvcnJ1cHRpb24gIFtTYW11ZWwgVGhpYmF1bHRdCisgICAtIGFkZCAnTycgZXNjYXBlIGNvZGUgdG8gZGlzcGxheSBkb21haW4gbmFtZSAgW0thcmVsIFpha10KKyAgIC0gY2hlY2sgZ2V0aG9zdG5hbWUoKSByZXR1cm4gdmFsdWUgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBzaG9ydCBtYWxsb2MgaW4gaW5pdHN0cmluZyBoYW5kbGluZyAgW0xhTW9udCBKb25lc10KK2Jsb2NrZGV2OgorICAgLSBhZGQgQkxLRlJBR0VUL0JMS0ZSQVNFVCBpb2N0bHMgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgdXNhZ2UoKSBhbmQgdXBkYXRlIG1hbiBwYWdlICBbS2FyZWwgWmFrXQorICAgLSBmaXggImJsb2NrZGV2IC0tZ2V0c3oiIGZvciBsYXJnZSBkZXZpY2VzICBbS2FyZWwgWmFrXQorICAgLSB1c2UgTFUgYW5kIExMVSBmb3IgQkxLR0VUU0laRSBhbmQgQkxLR0VUU0laRTY0ICBbS2FyZWwgWmFrXQorYnVpbGQtc3lzOgorICAgLSBhZGQgJHtBQyxBUCxBTSxBSH1fT1BUUyB0byBhdXRvZ2VuLnNoICBbS2FyZWwgWmFrXQorICAgLSBhZGQgQUNfR05VX1NPVVJDRSAgW0thcmVsIFpha10KKyAgIC0gYWRkIEF1dG9tYWtlIG9wdGlvbiBkaXN0LWJ6aXAyICBbU3RlcGFuIEthc2FsXQorICAgLSBhZGQgLS1kaXNhYmxlLW1ha2VpbnN0YWxsLWNob3duICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbWlzc2luZyBmaWxlcyAgW0thcmVsIFpha10KKyAgIC0gYWRkIFNVSURfQ0ZMQUdTICBbS2FyZWwgWmFrXQorICAgLSBhZGQgU1VJRF9MREZMQUdTICBbU3RlcGFuIEthc2FsXQorICAgLSBhZGQgc3VwcG9ydCBmb3IgYXVkaXQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCB3YXJuaW5nIHdoZW4gbGlidXVpZCBpcyBub3QgZm91bmQgIFtLYXJlbCBaYWtdCisgICAtIGFtZW5kIC5naXRpZ25vcmUgIFtTdGVwYW4gS2FzYWxdCisgICAtIGNhbGwgYXV0b21ha2UgYWZ0ZXIgYXV0b2NvbmYgIFtTdGVwYW4gS2FzYWxdCisgICAtIGNsZWFudXAgYXJjaGl0ZWN0dXJlIGNvbmRpdGlvbmFscyAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCBzeXMtdXRpbHMvIHJkZXYgc3ltbGlua3MgIFtLYXJlbCBaYWtdCisgICAtIGNvbmZpZ3VyZS5hbSBzZWxpbnV4IHN1cHBvcnQgY2xlYW51cCAgW0thcmVsIFpha10KKyAgIC0gZGVjbGFyZSBTVUlEX0NGTEFHUyBhbmQgU1VJRF9MREZMQUdTIGFzIHByZWNpb3VzICBbU3RlcGFuIEthc2FsXQorICAgLSBkbyBub3QgYnVpbGQgY29udmVuaWVuY2UgbGlicmFyaWVzIGluIGxpYi8gIFtTdGVwYW4gS2FzYWxdCisgICAtIGRvIG5vdCBraWNrIG9mZiBBTV9DRkxBR1MgYnkgU1VJRF9DRkxBR1MgIFtTdGVwYW4gS2FzYWxdCisgICAtIGRvIG5vdCBwbGF5IHdpdGggREVGUywgdXNlIEFNX0NQUEZMQUdTICBbU3RlcGFuIEthc2FsXQorICAgLSBkbyBub3Qgc2V0IHdpdGhfZm9vIHR3aWNlICBbU3RlcGFuIEthc2FsXQorICAgLSBkbyBub3QgdXNlIGludGVybmFsIEF1dG9jb25mIHZhcmlhYmxlcyAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gZG8gbm90IHVzZSB3aWxkY2FyZHMgaW4gRVhUUkFfRElTVCAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gZmFjdG9yIG91dCBjb21tb24gcGFydHMgZnJvbSBtb3VudC9NYWtlZmlsZS5hbSAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gZml4IGRpcmVjdG9yaWVzIGluIEVYVFJBX0RJU1QgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBIQVZFX05DVVJTRVMgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBpZmRlZiBFTkFCTEVfV0lERUNIQVIgdXNhZ2UgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBsaW5raW5nIHdoZW4gbmN1cnNlcyBpcyBidWlsdCB3aXRoIC0td2l0aC10ZXJtbGliPXRpbmZvICBbQXJrYWRpdXN6IE1pc2tpZXdpY3pdCisgICAtIGZpeCBSRUFETUUgZmlsZW5hbWVzIGFuZCBhZGQgbWlzc2luZyBmaWxlcyB0byBFWFRSQV9ESVNUcyAgW0thcmVsIFpha10KKyAgIC0gZml4IHRoZSBleGFtcGxlIGNvbmZpZ3VyZSBjYWxsIGluIFJFQURNRSAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gZml4IHRoZSBmaW5hbCBtZXNzYWdlIG9mIGF1dG9nZW4uc2ggIFtTdGVwYW4gS2FzYWxdCisgICAtIGluIGNvbmZpZ3VyZS5hYywgY2hhbmdlICJwbyIgLT4gIiRzcmNkaXIvcG8iICBbU3RlcGFuIEthc2FsXQorICAgLSBpbiB0aGUgY2xlYW4gdGFyZ2V0cyB1c2UgImZpbmQgLi4uIHwgeGFyZ3Mgcm0gLWYiICBbU3RlcGFuIEthc2FsXQorICAgLSBsZXQgY29uZmlndXJlIGluc3RhbnRpYXRlIHRoZSBtaXNjLXV0aWxzLyoucGwgc2NyaXB0cyAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gbWFrZSB0aGUgZ2V0b3B0IGV4YW1wbGUgZGlyZWN0b3J5IHJlbGF0aXZlIHRvIGRhdGFkaXIgIFtTdGVwYW4gS2FzYWxdCisgICAtIG1lcmdlIGFkamFjZW50IEFDX0NPTkZJR19IRUFERVJTIGFuZCBBQ19DT05GSUdfRlVOQ1MgY2FsbHMgIFtTdGVwYW4gS2FzYWxdCisgICAtIG1pbm9yIGZpeGVzIGluIGNvbmZpZ3VyZS5pbiAgW0thcmVsIFpha10KKyAgIC0gbWlzc2luZyBoZWFkZXIgd2hlbiBOTFMgaXMgZGlzYWJsZWQgIFtHYWJyaWVsIEJhcmF6ZXJdCisgICAtIG1vdW50L01ha2VmaWxlLmFtIHRpbnkgY2xlYW51cCBJSSAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gbW91bnQvTWFrZWZpbGUuYW0gdGlueSBjbGVhbnVwICBbU3RlcGFuIEthc2FsXQorICAgLSBtb3ZlIC1EIGZsYWdzIHRvICpfQ1BQRkxBR1MgIFtTdGVwYW4gS2FzYWxdCisgICAtIG1vdmUgdGhlIG9wdGltaXphdGlvbiBmbGFncyB0byBBTV9DRkxBR1MgIFtTdGVwYW4gS2FzYWxdCisgICAtIC0tcHJlZml4IGRlZmF1bHRzIHRvIC91c3IgIFtTdGVwYW4gS2FzYWxdCisgICAtIHJlbGVhc2UrKyAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIGFjbG9jYWwubTQgZnJvbSBTQ00gIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBBQ19QUk9HX1JBTkxJQiAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gcmVtb3ZlIGFzbS9wYWdlLmggdGVzdCAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIGNvbmZpZy5oLmluIGZyb20gVkNTICBbU3RlcGFuIEthc2FsXQorICAgLSByZW1vdmUgY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gZnJvbSBFWFRSQV9ESVNUICBbU3RlcGFuIEthc2FsXQorICAgLSByZW1vdmUgREVGQVVMVF9JTkNMVURFUyB3b3JrYXJvdW5kICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgLWZvbWl0LWZyYW1lLXBvaW50ZXIgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBnZW5lcmF0ZWQgYXV0b3Rvb2xzIHN0dWZmIGZyb20gZ2l0ICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgbGlidG9vbCAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlICJtYWtlIG1ycHJvcGVyIiwgZ2l0LWNsZWFuIGlzIGdvb2QgZW5vdWdoICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgcG8vTWFrZXZhcnMudGVtcGxhdGUgZnJvbSBFWFRSQV9ESVNUICBbU3RlcGFuIEthc2FsXQorICAgLSByZW1vdmUgc3dhcGFyZ3MuaCwgbW92ZSB0aGUgdGVzdHMgdG8gbWFpbiBjb25maWd1cmUuYWMgIFtTdGVwYW4gS2FzYWxdCisgICAtIHJlbmFtZSB0byAtbmcsIGNoYW5nZSBtYWludGFpbmVyIG5hbWUgIFtLYXJlbCBaYWtdCisgICAtIHJlcGxhY2UgQUNfVFJZXyogYnkgQUNfKl9JRkVMU0UgIFtTdGVwYW4gS2FzYWxdCisgICAtIHMvQUNfSEVMUF9TVFJJTkcvQVNfSEVMUF9TVFJJTkcvICBbU3RlcGFuIEthc2FsXQorICAgLSBzZXQgRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUyBpbiB0b3AtbGV2ZWwgbWFrZWZpbGUgIFtTdGVwYW4gS2FzYWxdCisgICAtIHNpbXBsaWZ5ICJjbGVhbiIgaW4gdGVzdHMvTWFrZWZpbGUuYW0gIFtTdGVwYW4gS2FzYWxdCisgICAtIHVwZGF0ZSBwby9QT1RGSUxFUy5pbiAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gdXNlIGRpc3RfZXhhbXBsZV9EQVRBICBbU3RlcGFuIEthc2FsXQorICAgLSB1c2UgZGlzdF9ub2luc3RfREFUQSB0byB3b3JrIGFyb3VuZCB0aGUgYnVnIHdpdGggZGlzdF9tYW5fTUFOUyAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gdXNlIGRpc3Rfbm9pbnN0X0hFQURFUlMgaW4gaW5jbHVkZS9NYWtlZmlsZS5hbSAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gdXNlIGRpc3RfdXNyYmluZXhlY19TQ1JJUFRTIGluIG1pc2MtdXRpbHMvTWFrZWZpbGUuYW0gIFtTdGVwYW4gS2FzYWxdCitjYWw6CisgICAtIGFkZCB0ZXN0IGNvZGUgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBhIHNlZ2ZhdWx0IGFuZCAtM20gaGlnaGxpZ2h0aW5nICBbS2FyZWwgWmFrXQorICAgLSBpZmRlZiBjbGVhbnVwLCBub24tY3Vyc2VzL3RlbXBjYXAgY29kZSBmaXhlcyAgW0thcmVsIFpha10KKyAgIC0gd2lkZWNoYXIgY29kZSBjbGVhbnVwICBbS2FyZWwgWmFrXQorY2ZkaXNrOgorICAgLSBidWlsZC1zeXMgZGVmaW5lcyBIQVZFX1JQTUFUQ0gsIG5vdCBIQVZFX3JwbWF0Y2ggIFtLYXJlbCBaYWtdCisgICAtIGZpeCBzdHVwaWQgdHlwbyBpbiBHUFQgY2hlY2tlciBjYWxsICBbS2FyZWwgWmFrXQorY2hzaDoKKyAgIC0gZG9uJ3QgdXNlIGVtcHR5IHNoZWxsIGZpZWxkIGluIC9ldGMvcGFzc3dkICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgdGFpbGluZyB3aWhpdC1zcGFjZXMgYW5kIHVzZSBQQVRIX0JTSEVMTCAgW0thcmVsIFpha10KK2NvbDoKKyAgIC0gZ2V0d2NoYXIoKSBlcnJvcnMgc2hvdWxkbid0IGJlIGhpZGRlbiAgW0thcmVsIFpha10KK2N5dHVuZToKKyAgIC0gbWFrZSB0aGUgb25lbGluZXIgbW9yZSBzcGVjaWZpYyB0aGUgY3ljbGFkZXMgaHcgaW4gcXVlc3Rpb24gIFtKdXN0aW4gQiBSeWVdCisgICAtIHJlbW92ZSBsaW51eC90dHkuaCBpbmNsdXNpb24gIFtLYXJlbCBaYWtdCitkZGF0ZToKKyAgIC0gZml4IGNvbXBpbGVyIHdhcm5pbmdzICBbS2FyZWwgWmFrXQorZGlzay11dGlsczoKKyAgIC0gZml4IGxpYnV1aWQgdXNhZ2UgaW4gbWtzd2FwICBbTWF0dGhpYXMgS29lbmlnXQorICAgLSBsZXQgbWtmcyB0b29scyBvcGVuIHdpdGggT19FWENMICBbTWF0dGhpYXMgS29lbmlnXQorZG9jczoKKyAgIC0gYWRkIERFUFJFQ0FURUQgdG8gRVhUUkFfRElTVCAgW0thcmVsIFpha10KKyAgIC0gYWRkIG5vdGUgYWJvdXQgaHR0cCAvL3RyYW5zbGF0aW9ucHJvamVjdC5vcmcgIFtLYXJlbCBaYWtdCisgICAtIGFkZCByZGV2KDgpIGJldHdlZW4gZGVwcmVjYXRlZCB1dGlscyAgW0thcmVsIFpha10KKyAgIC0gYWRkIFJFQURNRS5saWNlbnNpbmcgIFtLYXJlbCBaYWtdCisgICAtIGFkZCByZWxlYXNlIG5vdGVzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdGhlIERFUFJFQ0FURUQgZmlsZSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW4gdXAgVE9ETyBmaWxlIGFuZCBhZGQgYSBuZXcgcmVzdWVzdCBmb3IgMi4xNCAgW0thcmVsIFpha10KKyAgIC0gZml4IGF1dGhvcnNoaXAgb2YgOC1iaXQgY2xlYW51cCBhZ2V0dHkgcGF0Y2ggIFtLYXJlbCBaYWtdCisgICAtIGZpeCBCU0QgbGljZW5jZSBuYW1lIGluIFJFQURNRS5saWNlbnNpbmcgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBpbmZvIGFib3V0IGRldmVsL21hc3RlciBicmFuY2hzICBbS2FyZWwgWmFrXQorICAgLSBmaXggVVJMIGFuZCB0eXBvcyBpbiBSRUFETUUuZGV2ZWwgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBkZXByZWNhdGVkIHNlY3Rpb24gZnJvbSBSRUFETUUgIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSByZWxlYXNlIG5vdGVzICBbS2FyZWwgWmFrXQorZmRpc2s6CisgICAtIE1ha2VmaWxlLmFtIHJlZmFjdG9yaW5nICBbS2FyZWwgWmFrXQorICAgLSBhZGQgR1BUIGRldGVjdGlvbiBjb2RlICBbS2FyZWwgWmFrXQorICAgLSBhZGQgTUFDIGxhYmVsIGRldGVjdGlvbiAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN1cHBvcnQgZm9yIHVkZXYgcGVyc2lzdGVudCBkZXZpY2UgbmFtZXMgIFtNYXR0aGlhcyBLb2VuaWddCisgICAtIGNoZWNrIHJldHVybnMgaW4gZmRpc2sgZnJvbSBwYXJ0aXRpb24gY2hhbmdlcyAgW01pa2UgRnJ5c2luZ2VyXQorICAgLSBjbGVhbnVwIGZ1bGwgZGlzayBkZXRlY3Rpb24gY29kZSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCBwYXJ0bmFtZS5jICBbS2FyZWwgWmFrXQorICAgLSBkbyBub3QgY29tcGxhaW4gYWJvdXQgcmVndWxhciBmaWxlcyAgW0guIFBldGVyIEFudmluXQorICAgLSBmaXggImRpZmZlciBpbiBzaWduZWRuZXNzIiBjb21waWxlciB3YXJuaW5ncyAgW0thcmVsIFpha10KKyAgIC0gZml4ICJ0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZSIgIFtLYXJlbCBaYWtdCisgICAtIG1hbnkgc2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIGFuZCBmaXhlcyB0byBTdW4gbGFiZWwgaGFuZGxpbmcgIFtEYXZpZCBNaWxsZXJdCisgICAtIG1vdmUgZHVwbGljYXRlIHN0dWZmIGZyb20gZmRpc2sqbGFiZWwuaCB0byBmZGlzay5oICBbS2FyZWwgWmFrXQorICAgLSB1c2UgdW5zaWduZWQgbG9uZyBsb25nIGluc3RlYWQgaW50IGZvciBzZWN0b3JzICBbS2FyZWwgWmFrXQorICAgLSB3aGVuIGdlbmVyYXRpbmcgYSBET1MgZGlzayBsYWJlbCwgZ2l2ZSBpdCBhbiBJRCAgW0guIFBldGVyIEFudmluXQorZ2V0b3B0OgorICAgLSByZW1vdmUgb2xkIHVudXNlZCBmaWxlcyAgW0thcmVsIFpha10KK2hleGR1bXA6CisgICAtIGRvbid0IHVzZSBtZW1zZXQgd2l0aCB6ZXJvIGxlbmdodCAgW0thcmVsIFpha10KK2h3Y2xvY2s6CisgICAtIGFkZCAtLXJ0Yz08cGF0aD4gb3B0aW9uIGFuZCBzdXBwb3J0IGZvciAvZGV2L3J0YzAgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzdXBwb3J0IGZvciBhdWRpdCBzeXN0ZW0gIFtLYXJlbCBaYWtdCisgICAtIGZpeCAtLXN5c3RvaGMgc2V0cyBjbG9jayAwLjUgc2Vjb25kcyBzbG93ICBbS2FyZWwgWmFrXQorICAgLSBtYWtlIGdnYyBoYXBweSBhbmQgY2hlY2sgcmV0dXJuIHZhbHVlcyBmcm9tIGZnZXRzLCByZWFkIGFuZCB3cml0ZSAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIHRhaWxpbmcgd2hpdGUtc3BhY2VzIGFuZCBjbGVhbiB1cCBjbG9jay5oICBbS2FyZWwgWmFrXQoraW9uaWNlOgorICAgLSBjbGVhbiB1cCBlcnJvciBoYW5kbGluZyAgW01hdHRoaWFzIEtvZW5pZ10KKyAgIC0gY2xlYW51cCB1c2FnZSBmb3IgaWRsZSBjbGFzcyAgW01hdHRoaWFzIEtvZW5pZ10KKyAgIC0gZml4IGlvbmljZSBidWlsZCBvbiBzcGFyYyAgW0RhdmlkIE1pbGxlcl0KKyAgIC0gcHJlZmVyIFNZU19pb3ByaW9fe3NldCxnZXR9IGZyb20gZ2xpYmMgdG8gaGFyZGNvZGVkIHZlcnNpb24gIFtLYXJlbCBaYWtdCitpcGNzOgorICAgLSBhZGQgbmV3IHRlc3RzIGZvciBpcGNzIGxpbWl0cyAgW0thcmVsIFpha10KKyAgIC0gYWRkIHJlZ3Jlc3Npb24gdGVzdCBmb3Igb3V0cHV0IGhlYWRlcnMgIFtLYXJlbCBaYWtdCisgICAtIGZpeCB0eXBvIGluIFNlbWFwaG9yZSBoZWFkZXJzICBbS2FyZWwgWmFrXQorICAgLSBtYXggdG90YWwgc2hhcmVkIG1lbW9yeSBpbiBrYnl0ZXMgaW5zdGVhZCBwYWdlcyAgW0thcmVsIFpha10KK2xvZ2dlcjoKKyAgIC0gdXNlIHNucHJpbnRmIGluc3RlYWQgb2Ygc3ByaW50ZiBpbiBsb2dnZXIuYyAgW0xhTW9udCBKb25lc10KK2xvZ2luOgorICAgLSBhZGQgYXVkaXQgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIElQdjYgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHJlZ3Jlc3Npb24gdGVzdCBmb3IgSVAgYWRkcmVzcyBjaGVja2luZyBjb2RlICBbS2FyZWwgWmFrXQorICAgLSBhdHRlbXB0IHRvIHJ1biBpZiBpdCBoYXMgbm8gcmVhZC93cml0ZSBhY2Nlc3MgdG8gaXRzIHRlcm1pbmFsICBbSmFzb24gVmFzIERpYXNdCisgICAtIGNsb3NlIFBBTSBzZXNzaW9uIGFmdGVyIGZhaWxlZCBwYW1fc2V0Y3JlZCAgW1N0ZXZlIEdydWJiXQorICAgLSBpbXByb3ZlIHdvcmsgd2l0aCBzaWduYWxzICBbS2FyZWwgWmFrXQorICAgLSBrZWVwIHN5c2xvZyB1c2VmdWwgZm9yIGVuZCBvZiBQQU0gc2Vzc2lvbi4gIFtLYXJlbCBaYWtdCisgICAtIGxvZ2luJ3MgdGltZW91dCBjYW4gZmFpbCAgW0phc29uIFZhcyBEaWFzXQorICAgLSBvbWl0cyBQQU0gYWNjb3VudCB2YWxpZGF0aW9uIHdoZW4gYXV0aCBpcyBza2lwcGVkIChDVkUtMjAwNi03MTA4KSAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIHRyaWlsaW5nIHdoaXRlLXNwYWNlcyAgW0thcmVsIFpha10KKyAgIC0gcmVwbGFjZSAvdXNyL3Nwb29sL21haWwgd2l0aCAvdmFyL3Nwb29sL21haW4gaW4gbWFuIHBhZ2UgIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSAzMmJpdCB1dG1wIGNvcnJlY3RseSBvbiA2NGJpdCBzeXN0ZW0gIFtLYXJlbCBaYWtdCitsb21vdW50LmM6CisgICAtIGRvbid0IHVzZSBtbG9ja2FsbCBpZiBDUllQVF9OT05FICBbTWFzYXRha2UgWUFNQVRPXQorbG9vazoKKyAgIC0gZml4IHByb2JsZW0gd2l0aCAhaXNhbG51bSgpIHdvcmRzICBbS2FyZWwgWmFrXQorICAgLSBtYW4gcGFnZSBjbGFyaWZpY2F0aW9uICBbUMOhZHJhaWcgQnJhZHldCisgICAtIHJlbW92ZSB0YWlsaW5nIHdoaXRlLXNwYWNlcyAgW0thcmVsIFpha10KK2xvc2V0dXA6CisgICAtIGFkZCAtYSBvcHRpb24gdG8gbGlzdCBhbGwgdXNlZCBsb29wIGRldmljZXMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBhIG5ldyBvcHRpb24gLXMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBsb25nIG9wdGlvbnMgYW5kIGZpeCBtYW4gcGFnZSAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN1cHBvcnQgcmVhZC1vbmx5IGxvb3BzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdG8gbWFuIHBhZ2UgaW5mbyBhYm91dCBkZXByZWNhdGVkIGNyeXB0b2xvb3AgIFtLYXJlbCBaYWtdCittYW4gcGFnZXM6CisgICAtIGFkZCAiQVZBSUxBQklMSVRZIiBzZWN0aW9uICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIG9mIGNocnQuMSBhbmQgdGFza3NldC4xICBbTGFNb250IEpvbmVzXQorbWNvb2tpZToKKyAgIC0gcmVtb3ZlIG5vbi1saW51eCBjb2RlICBbS2FyZWwgWmFrXQorbWlzYy11dGlsOgorICAgLSBuZXcgcnRjd2FrZSBjb21tYW5kICBbQmVybmhhcmQgV2FsbGVdCittaXNjLXV0aWxzOgorICAgLSBhZGQgc2NyaXB0cmVwbGF5IG1hbnBhZ2UgIFtNYXR0aGlhcyBLb2VuaWddCisgICAtIHJlbW92ZSBvbGQgY2FsIHRlc3QgIFtLYXJlbCBaYWtdCitta2ZzOgorICAgLSByZW1vdmUgbm9uc2Vuc2UgZnJvbSBtYW4gcGFnZSAgW0thcmVsIFpha10KK21rZnMuY3JhbWZzOgorICAgLSBjbGVhbnVwIEhBVkVfIG1hY3JvcyB1c2FnZSAgW0thcmVsIFpha10KKyAgIC0gZml4IGEgd2F5IGhvdyBta2ZzIHdvcmtzIHdpdGggZW1wdHkgZmlsZXMgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBoYXJkY29kZWQgbGltaXQgZm9yIGRpcmVjdG9yaWVzICBbS2FyZWwgWmFrXQorbWtzd2FwOgorICAgLSBhZGQgcmVncmVzc2lvbiB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhdXRvbWF0aWNhbGx5IGFkZCBzZWxpbnV4IGxhYmVsIHRvIHN3YXBmaWxlICBbS2FyZWwgWmFrXQorICAgLSBhdm9pZCBta3N3YXAgdXNhZ2Ugb24gYWxyZWFkeSBtb3VudGVkIGRldmljZSAgW0thcmVsIFpha10KKyAgIC0gZGVmYXVsdCB0byBWMSBpbiBhbnkgY2FzZSAgW01hdHRoaWFzIEtvZW5pZ10KKyAgIC0gZml4IHNpZ25lZG5lc3MgcHJvYmxlbXMgYW5kIHJlbW92ZSBvYnNvbGV0ZSBjb2RlICBbS2FyZWwgWmFrXQorICAgLSBnY2MgaGFwcHkgIHVuc2lnbmVkIGxvbmcgdXNhZ2UgIFtLYXJlbCBaYWtdCittb3JlOgorICAgLSBmaXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgIFtTdGV2ZSBHcnViYl0KKyAgIC0gZml4IHVuZGVybGluaW5nIGZvciBtdWx0aWJ5dGUgY2hhcnMgIFtLYXJlbCBaYWtdCittb3VudDoKKyAgIC0gYWRkIGFjbCBvcHRpb24gZG9jdW1lbnRhdGlvbiBmb3IgZXh0MyBhbmQgcmVpc2VyZnMgIFtNYXR0aGlhcyBLb2VuaWddCisgICAtIGFkZCBub3RlIGFib3V0IC9ldGMvbXRhYiB1bnJlbGlhYmlsaXR5IHRvIG1vdW50LjggIFtLYXJlbCBaYWtdCisgICAtIGFkZCBub3RlIGFib3V0IGZjbnRsL2lvY3RsIHVucmVsaWFiaWxpdHkgb24gTkZTIHRvIG1vdW50LjggIFtLYXJlbCBaYWtdCisgICAtIGFkZCAtcyBhbmQgLWYgYW5kIG5vdGUgdG8gbWFuIHBhZ2UgZm9yIGV4dGVybmFsIG1vdW50IGhlbHBlcnMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzaW1wbGUgKHByaW50Zi1saWtlKSBkZWJ1ZyByb3V0aW5lIGFuZCAtLWRlYnVnIG9wdGlvbiAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN1cHBvcnQgZm9yIGNvbnRleHQsIGZzY29udGV4dCBhbmQgZGVmY29udGV4dCBzZWxpbnV4IG1vdW50IG9wdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzdXBwb3J0IGZvciBtaXhlZCB1c2FnZSBvZiBTUEVDZXMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzdXBwb3J0IGZvciBtdGFiICJ1aGVscGVyIiBvcHRpb24gIFtLYXJlbCBaYWtdCisgICAtIGF2b2lkIGR1cGxpY2F0ZSBlbnRyaWVzIGluIG10YWIgd2hlbiBtb3VudCAtZiAgW0thcmVsIFpha10KKyAgIC0gYXZvaWQgZHVwbGljYXRlcyBmb3Igcm9vdCBmcyBpbiBtdGFiICBbTWF0dGhpYXMgS29lbmlnXQorICAgLSBjYWxsIC9zYmluL21vdW50Ljx0eXBlPiBhbHNvIHdoZW4gbW91bnRpbmcgd2l0aG91dCAiLXQiICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbiB1cCBnZXRmcyogKGZzdGFiLmMpIGludGVyZmFjZSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW4gdXAgaW5mbyBhYm91dCBORlMgaW4gbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gZG9lc24ndCBycGNfcGlwZWZzIGFuZCBuZnNkIG9uIHVtb3VudCAtYSAgW0thcmVsIFpha10KKyAgIC0gZG8gbm90IHRyZWF0IGFybS9zcGFyYyBzcGVjaWFsbHkuICBbTWlrZSBGcnlzaW5nZXJdCisgICAtIGRvbid0IHVtb3VudCBzeXNmcyB3aGVuIHJ1bm5pbmcgdW1vdW50IC1hICBbTWlrZSBGcnlzaW5nZXJdCisgICAtIGZpeCAtZiAtbyByZW1vdW50ICBbS2FyZWwgWmFrXQorICAgLSBmaXggLWZ2IHNvIHRoYXQgaXQgZG9lc24ndCBpbmNvcnJlY3RseSBzcGl0IG91dCBhbiBlcnJvciB0aGF0IG5vdGhpbmcgd2FzIGRvbmUuICBbTWlrZSBGcnlzaW5nZXJdCisgICAtIGZpeCBoYXNfKiBmdW5jdGlvbnMgKENWRS0yMDA3LTA4MjIpICBbS2FyZWwgWmFrXQorICAgLSBmaXggaW5jb3JyZWN0IGJlaGF2aW9yIHdoZW4gbW9yZSB0aGFuIG9uZSBmcyB0eXBlIGlzIHNwZWNpZmllZCAgW0F0dGlsYSDDgWZyYV0KKyAgIC0gZml4IGxpc3QgbG9naWMgaW4gdXBkYXRlX210YWIgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBtZW1vcnkgdXNhZ2UgaW4gdXBkYXRlX210YWIgIFtNaWtlIEZyeXNpbmdlcl0KKyAgIC0gZml4IG10YWJfbG9jayAgW0thcmVsIFpha10KKyAgIC0gZml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZSAgW0thcmVsIFpha10KKyAgIC0gZnJlZSBsb29wIGRldmljZSBvbiBmYWlsdXJlICBbU2FzY2hhIFNvbW1lcl0KKyAgIC0gZnNwcm9iZSAgYWRkIGxpYnZvbHVtZV9pZCBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBmc3Byb2JlICBhZGQgbGlidm9sdW1lX2lkIHN1cHBvcnQgdG8gY29uZmlndXJlLmFjICBbS2FyZWwgWmFrXQorICAgLSBmc3Byb2JlICBtYWtlIGZzcHJvYmVfZ2V0X2Rldm5hbWUgZnVuY3Rpb25zIG1vcmUgZ2VuZXJpYyAgW0thcmVsIFpha10KKyAgIC0gZnNwcm9iZSAgcmVtb3ZlIG1vdW50X2d1ZXNzX2ZzdHlwZS57YyxofSAgW0thcmVsIFpha10KKyAgIC0gZnNwcm9iZSAgcmVtb3ZlIG5vbi1ibGtpZCBjb2RlICBbS2FyZWwgWmFrXQorICAgLSBmc3Byb2JlICByZW5hbWUgZmlsZXMgdG8gZnNwcm9iZV8qICBbS2FyZWwgWmFrXQorICAgLSBmc3Byb2JlICByZW5hbWUgdGhlIHJlc3Qgb2YgQVBJIHJvdXRpbmVzIHRvIGZzcHJvYmVfKiAgW0thcmVsIFpha10KKyAgIC0gZnNwcm9iZSAgdXNlIGJsa2lkIGNhY2hlIG9ubHkgd2hlbiByZWFsbHkgbmVjZXNzYXJ5ICBbS2FyZWwgWmFrXQorICAgLSBnZXRmc18qIChmc3RhYikgaW50ZXJmYWNlIGhhcyB0byB3b3JrIHdpdGggY2Fub25pY2FsaXplKCkgIFtLYXJlbCBaYWtdCisgICAtIGtpbGwgbW91bnRfZ3Vlc3Nfcm9vdGRldiAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gbG9vcCBkZXZpY2UgcmFjZSBjb25kaXRpb24gIFtNYXR0aGlhcyBLb2VuaWddCisgICAtIG1lbnRpb24gaGZzcGx1cyBpbiBtb3VudCBtYW5wYWdlICBbTGFNb250IEpvbmVzXQorICAgLSBuZWVkcyB0byBoYW5kbGUgc3BlY2lhbCBtb3VudHByb2cgZXZlbiBvbiBndWVzc2VkIGZpbGUgc3lzdGVtcy4gIFtLYXJlbCBaYWtdCisgICAtIHBhcnNlIFNQRUMgYmVmb3JlIHNlYXJjaCBpbiBmc3RhYiAgW0thcmVsIFpha10KKyAgIC0gcmVsYXRpdmUgYXRpbWUgc3VwcG9ydCAgW1ZhbGVyaWUgSGVuc29uXQorICAgLSByZW1vdmUgYWxsIE5GUyBjb2RlICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgbmZzbW91bnQoKSBmcm9tIHN1bmRyaWVzLmggIFtLYXJlbCBaYWtdCisgICAtIHJld3JpdGUgZ2V0ZnNfYnlfc3BlY2RpcigpIHdpdGhvdXQgbWVtIGxlYWtzICBbS2FyZWwgWmFrXQorICAgLSBzaGFyZWQtc3VidHJlZSBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBzaG91bGQgc2V0IHByb3BlciBwZXJtaXNzaW9ucyBvbiBsb2NrdGltZSAgW0Zsw6F2aW8gTGVpdG5lcl0KKyAgIC0gdXBkYXRlIG10YWIgY29ycmVjdGx5IHdoZW4gbW91bnQgLS1tb3ZlICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgeGZzIG1vdW50IG9wdGlvbnMgIFtNYXR0aGlhcyBLb2VuaWddCisgICAtIHVzZSBlbmNvZGVkIGxhYmVscyBmb3Igdm9sdW1lX2lkICBbS2F5IFNpZXZlcnNdCisgICAtIHVzZSBncm93YWJsZSBzdHJpbmcgZm9yIG9wdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBsb29wPSBvcHRpb24gd2hlbiBtb3VudGluZyBieSAvc2Jpbi9tb3VudC48dHlwZT4gIFtLYXJlbCBaYWtdCisgICAtIHVzZSByZWFsbG9jIGZvciB4c3RyY29uY2F0IGZ1bmN0aW9ucyAgW0thcmVsIFpha10KKyAgIC0gdXNlIHZlcmJvc2UgbW9kZSBpbnN0ZWFkIGRlYnVnIG1vZGUgIFtLYXJlbCBaYWtdCituYW1laToKKyAgIC0gZml4IGxvZ2ljIGFuZCBpbmZpbml0ZSBsb29wIG9mIHN5bWxpbmtzICBbS2FyZWwgWmFrXQorICAgLSBuZXcgcmVncmVzc2lvbiB0ZXN0ICBbS2FyZWwgWmFrXQorbmV3Z3JwOgorICAgLSBhZGQgc3VwcG9ydCBmb3IgL2V0Yy9nc2hhZG93ICBbS2FyZWwgWmFrXQorICAgLSBjaGVjayByZXN1bHQgZnJvbSBnZXRncm5hbSgpIG1vcmUgY2FyZWZ1bGx5ICBbS2FyZWwgWmFrXQorcGFydHg6CisgICAtIGFkZCBtYW4gcGFnZXMgZm9yIGFkZHBhcnQsIGRlbHBhcnQgYW5kIHBhcnR4ICBbS2FyZWwgWmFrXQorcG86CisgICAtIGdldHRleHRpemluZyBzb21lIG92ZXJsb29rZWQgbWVzc2FnZXMuICBbQmVubm8gU2NodWxlbmJlcmddCisgICAtIHJlbmFtZSBtb3VudC9tbnRlbnQuYyB0byBtb3VudC9tb3VudF9tbnRlbnQuYyAgW0thcmVsIFpha10KKyAgIC0gdHlwbyBpbiBmcmVuY2ggdHJhbnNsYXRpb24gb2YgbW91bnQgZXJyb3IuICBbTWlrZSBGcnlzaW5nZXJdCisgICAtIHVwZGF0ZSBjcy5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW1BldHIgUGlzYXJdCisgICAtIHVwZGF0ZSBkZS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW01pY2hhZWwgUGllZmVsXQorICAgLSB1cGRhdGUgbmwucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtCZW5ubyBTY2h1bGVuYmVyZ10KKyAgIC0gdXBkYXRlIHN2LnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbRGFuaWVsIE55bGFuZGVyXQorICAgLSB1cGRhdGUgdmkucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtQaGFuIFZpbmggVGhpbmhdCisgICAtIHZpcHcgZG9lc24ndCB1c2UgcnBtYXRjaCwgYWxsIHRyYW5zbGF0aW9ucyBoYXZlIHRvIHVzZSB5L24gIFtLYXJlbCBaYWtdCityYXc6CisgICAtIGFkZCBmaWxlIHdpdGggdWRldiBydWxlIGV4YW1wbGUgIFtLYXJlbCBaYWtdCisgICAtIGRvbid0IGFjY2VwdCByYXcwIGFzIGEgdGFyZ2V0IG5hbWUgIFtLYXJlbCBaYWtdCisgICAtIG1vdmUgdGhlIHJhdyBjb21tYW5kIHRvIC9zYmluICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgbWFuIHBhZ2UgKGFib3V0IGRkIGFuZCBPX0RJUkVDVCkgIFtLYXJlbCBaYWtdCityZGV2OgorICAgLSBzaG91bGQgYmUgZGVsaXZlcmVkIG9uIGFtZDY0IGFzIHdlbGwgYXMgaTM4Ni4gIFtMYU1vbnQgSm9uZXNdCityZWFkcHJvZmlsZToKKyAgIC0gZml4IG9uIHBwYzY0ICBbTWF0dGhpYXMgS29lbmlnXQorc2NoZWR1dGlsczoKKyAgIC0gYWRkIHN1cHBvcnQgZm9yIFNDSEVEX0JBVENIICBbS2FyZWwgWmFrXQorICAgLSBkZWZpbmUgU0NIRURfQkFUQ0ggd2hlbiBjb21waWxlIHdpdGggb2xkIGdsaWJjICBbS2FyZWwgWmFrXQorICAgLSBmaXggY2hydCBkb2NzIGFuZCBwaWQ9MCB1c2FnZSAgW01hdHRoaWFzIEtvZW5pZ10KKyAgIC0gcmVtb3ZlIGV4dHJhIGh5cHRlbnMgZnJvbSBtYW4gcGFnZXMgIFtLYXJlbCBaYWtdCitzY3JpcHQ6CisgICAtIGZpeCByYWNlIGNvbmRpdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIGltcHJvdmUgcXVpZXQgbW9kZSAgW0thcmVsIFpha10KK3NldGFyY2g6CisgICAtIGFkZCBOTFMgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIC0tM2diIG9wdGlvbiBmb3QgY29tcGF0aWJpbGl0eSB3aXRoIERlYmlhbiBsaW51eHszMiw2NH0gY29tbWFuZCAgW0thcmVsIFphaywgTGFNb250IEpvbmVzXQorICAgLSBhZGQgX19hbHBoYV9fIHN1cHBvcnQgIFtCYWxpbnQgQ3Jpc3RpYW5dCisgICAtIGFkZCBwYXJpc2MvcGFyaXNjNjQgc3VwcG9ydCAgW0xhTW9udCBKb25lc10KKyAgIC0gYWRkIHNwYXJjMzJiYXNoIGFsaWFzIHRvIGtlZXAgY29tcGF0aWJpbGl0eSB3aXRoIHNwYXJjMzIgIFtEZW5uaXMgR2lsbW9yZV0KKyAgIC0gY2xlYW51cCBsaWNlbnNpbmcgbm90ZSAgW0thcmVsIFpha10KKyAgIC0gZmluaXNoIGFkZGluZyBwYXJpc2Mgc3VwcG9ydCAgW0thcmVsIFphaywgTGFNb250IEpvbmVzXQorc2ZkaXNrOgorICAgLSBmaXggImRpZmZlciBpbiBzaWduZWRuZXNzIiBjb21waWxlciB3YXJuaW5ncyAgW0thcmVsIFpha10KKyAgIC0gZml4ICJtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIiBjb21waWxlciB3YXJuaW5ncyAgW0thcmVsIFpha10KKyAgIC0gc2V0dGluZyBkZWZhdWx0IGdlb21ldHJ5IHZhbHVlcyAgW0x1Y2lhbm8gQ2hhdmV6XQorc3dhcG9mZjoKKyAgIC0gY29ycmVjdGx5IGhhbmRsZSBVVUlEPSBhbmQgTEFCRUw9IGlkZW50aWZpZXJzICBbTGFNb250IEpvbmVzXQorc3dhcG9uOgorICAgLSBjbGVhbnVwIFBBVEhfIG1hY3JvcyBhbmQgdGFpbGluZyB3aGl0ZS1zcGFjZXMgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgZnNwcm9iZV8qKCkgdXNhZ2UgIFtLYXJlbCBaYWtdCisgICAtIGRvZXMgbm90IGNvcnJlY3RseSBkZWFsIHdpdGggc3ltbGlua3MgIFtNYXJjbyBkJ0l0cmldCisgICAtIGZpeCBzd2Fwb24gaGVhZGVycyBhbmQgc3lzY2FsbHMgIFtNaWtlIEZyeXNpbmdlcl0KKyAgIC0gc2ltcGxpZnkgYW4gI2lmICBbU3RlcGFuIEthc2FsXQorc3lzLXV0aWxzOgorICAgLSBhZGQgYXJjaCgxKSBiYWNrIHRvIHRoZSBvZmZpY2lhbCB0cmVlICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbm90ZSBhYm91dCBvYnNvbGV0ZSByYW1zaXplIG9wdGlvbiB0byByZGV2LjggIFtLYXJlbCBaYWtdCisgICAtIGFkZGVkIHNldGFyY2ggY29tbWFuZCAgW0thcmVsIFpha10KKyAgIC0gZml4IG1hbiBwYWdlIGhlYWRlcnMgIFtLYXJlbCBaYWtdCisgICAtIG1vdmUgc29tZSBtYW4gcGFnZXMgZnJvbSBjYXRlZ29yeSA4IHRvIDEgIFtLYXJlbCBaYWtdCit0YXNrc2V0OgorICAgLSBjaGVjayBmb3IgZXhpc3RlbmNlIG9mIHNjaGVkX2dldGFmZmluaXR5ICBbTWlrZSBGcnlzaW5nZXJdCisgICAtIGluZGVwZW5kZW50IG9mIGhhcmRjb2RlZCBOUl9DUFVTIG1heC4gIFtDbGlmZiBXaWNrbWFuXQordGVzdHM6CisgICAtIGFkZCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgcmVncmVzc2lvbiB0ZXN0cyAgW0thcmVsIFpha10KKyAgIC0gYWRkIGNhbCAtMSB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgY2FsIC0zIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBjYWwgLXkgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGV4cGVjdGVkIG91dHB1dHMgZm9yIGNyYW1mcyAgW0thcmVsIFpha10KKyAgIC0gYWRkIGZ1bmN0aW9ucyBmb3IgbGFiZWwsIHV1aWQgYW5kIGZzdHlwZSBkZXRlY3Rpb24gIFtLYXJlbCBaYWtdCisgICAtIGFkZCBod2Nsb2NrIHN5c3RvaGMgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGxpYnJhcnkgZm9yIExEX1BSRUxPQUQgdG8gbWFuaXB1bGF0ZSB3aXRoIHRpbWUoKSBpbiB0ZXN0cyAgW0thcmVsIFpha10KKyAgIC0gYWRkIGxpY2Vuc2Ugbm90aWNlcywgY2hhbmdlIGZyb20gZ3BsdjItb25seSB0byBncGx2Mi1vci1sYXRlciAgW0thcmVsIFpha10KKyAgIC0gYWRkIGxvY2tfbXRhYigpIHBlcmZvcm1hbmNlIGFuZCByZWxpYWJpbGl0eSB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbG9vayB0ZXN0IGZvciB3b3JkcyB3aXRoIHNlcGFyYXRvciAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1pc3NpbmcgaGVhZGVyICBbTWF0dGhpYXMgS29lbmlnXQorICAgLSBhZGQgbWtmcy5jcmFtZnMgdGVzdHMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3JlIHZhcmlhbnRzIHRvIHttb3VudCxmc3RhYn0tYnkte2xhYmVsLHV1aWQsZGV2bmFtZX0gIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3VudCBieSBkZXZuYW1lIGZyb20gZnN0YWIgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3VudCBieSBkZXZuYW1lIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3VudCBieSBkZXZuYW1lIHdpdGggbGFiZWwgaW4gZnN0YWIgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3VudCBieSBkZXZuYW1lIHdpdGggdXVpZCBpbiBmc3RhYiAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1vdW50IGJ5IGxhYmVsIGZyb20gZnN0YWIgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1vdW50IGJ5IExBQkVMIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3VudCBieSBsYWJlbCB3aXRoIGRldm5hbWUgaW4gZnN0YWIgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3VudCBieSBsYWJlbCB3aXRoIHV1aWQgaW4gZnN0YWIgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3VudCBieSBVVUlEIGZyb20gZnN0YWIgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1vdW50IGJ5IFVVSUQgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1vdW50IGJ5IHV1aWQgd2l0aCBkZXZuYW1lIGluIGZzdGFiICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbW91bnQgYnkgdXVpZCB3aXRoIGxhYmVsIGluIGZzdGFiICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbW91bnQgL2Rldi9zeW1saW5rIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3VudCAtLW1vdmUgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1vdW50IC1vIHJlbW91bnQgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHJldHVybiBjb2RlICBbS2FyZWwgWmFrXQorICAgLSBhZGQgc2NyaXB0KDEpIHJhY2UgY29uZGl0aW9uIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzaW1wbGUgaGVscGVyIHRoYXQgcmV0dXJucyBpbmZvIGFib3V0IHN5c3RlbSAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN1cHBvcnQgZm9yIGZzdGFiIG1vZGlmaWNhdGlvbiAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN1cHBvcnQgZm9yIHN1aWQgcHJvZ3JhbXMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzd2Fwb24gYnkgZGV2bmFtZSB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgc3dhcG9uIGJ5IFVVSUQgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHRlc3QgZm9yIC9zYmluL21vdW50Ljx0eXBlPiBjYWxsICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdHNfbG9nIGFuZCAtLXZlcmJvc2Ugc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHRzX29rIGFuZCB0c19mYWlsZWQgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgYmxraWQgY2FjaGUgYWZ0ZXIgdGVzdCBkZXZpY2UgZGVpbml0aWFsaXphdGlvbiAgW0thcmVsIFpha10KKyAgIC0gY29kZSByZWZhY3RvcmluZyAtLSBuZXcgdHNfZGV2aWNlX2luaXQgZnVuY3Rpb24gIFtLYXJlbCBaYWtdCisgICAtIGNvZGUgcmVmYWN0b3JpbmcgLS0gbmV3IHRzX3NraXBfbm9ucm9vdCBmdW5jdGlvbiAgW0thcmVsIFpha10KKyAgIC0gY29kZSByZWZhY3RvcmluZyAtLSBuZXcgdHNfdWRldl9sb29wX3N1cHBvcnQgZnVuY3Rpb24gIFtLYXJlbCBaYWtdCisgICAtIGVuYWJsZSBtdGFibG9jayB0ZXN0IHdoZW4gdWlkPTAgb25seSAgW0thcmVsIFpha10KKyAgIC0gZml4IGFyZ3ZbXSB1c2FnZSBpbiBtbnRfdGVzdF9zeXNpbmZvLmMgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBkZXBlbmRlbmNlIG9uIGJsa2lkICBbS2FyZWwgWmFrXQorICAgLSBmaXggTWFrZWZpbGUuYW0gKGFkZCBtaXNzaW5nIHRlc3RzKSAgW0thcmVsIFpha10KKyAgIC0gZml4IHRzX2ZzdGFiX2FkZCBmdW5jdGlvbiAgW0thcmVsIFpha10KKyAgIC0gZml4IFVMT05HX01BWCB1c2FnZSBvbiAzMmJpdCBtYWNoaW5lcyAgW0thcmVsIFpha10KKyAgIC0gImlmIFsuLi5dIiBjbGVhbiB1cCAgW0thcmVsIFpha10KKyAgIC0gbWFrZSBjbGVhbiBuZWVkIHRvIHJlbW92ZSBkaWZmcyBhbmQgb3V0cHV0cyAgW0thcmVsIFpha10KKyAgIC0gcGFzcyBhbGwgYXJndW1lbnRzIHRvIHRzX2luaXQsIGFkZCB0c19oYXNfb3B0aW9uIGZ1bmN0aW9uICBbS2FyZWwgWmFrXQorICAgLSByZWZyZXNoIG10YWJsb2NrIG91dHB1dCBpbiBleHBlY3RlZC8gZGlyZWN0b3J5ICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgZGVwZW5kZW5jZSBvbiBoZWxwZXJzL2xpYnByZWxvYWQtdGltZS5zbyAgW0thcmVsIFpha10KKyAgIC0gc2ltcGxpZnkgZGV2aWNlcyB1c2FnZSAgW0thcmVsIFpha10KKyAgIC0gdXNlICRBV0sgYmFzZWQgb24gY29uZmlndXJlIHJlc3VsdHMgIFtLYXJlbCBaYWtdCisgICAtIHVzZSByZWxhdGl2ZSBwYXRocyB3aGVuIHNvdXJjaW5nIGZpbGVzICBbTWlrZSBGcnlzaW5nZXJdCit0ZXh0LXV0aWxzOgorICAgLSBmaXggdGhlIG1vcmUgY29tbWFuZCBjb21waWxhdGlvbiBhZ2FpbnN0IHRlcm1jYXAgIFtLYXJlbCBaYWtdCit0b29sczoKKyAgIC0gYWRkIGNvZGVjaGVjay1jb25maWcgdGhhdCBjaGVja3MgZm9yIHtIQVZFLEVOQUJMRX1fIG9ycGhhbnMgIFtLYXJlbCBaYWtdCit2aXB3OgorICAgLSBmaXggcGVybWlzc2lvbnMgKDYwMC0+NDAwKSBmb3IgZWRpdGVkIC9ldGMvW2ddc2hvZG93IGZpbGVzICBbS2FyZWwgWmFrXQord2FsbDoKKyAgIC0gZml4IE9fTk9OQkxPQ0sgdXNhZ2UgIFtBbGFuIEN1cnJ5XQorICAgLSByZW1vdmUgZGVwcmVjYXRlZCBzaWdzZXRtYXNrKCkgZnJvbSB3YWxsICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgdW53YW50ZWQgbmV3bGluZXMgZnJvbSB3YWxsICBbS2FyZWwgWmFrXQord2hlcmVpczoKKyAgIC0gYWRkIGxpYjY0IHBhdGhzICBbS2FyZWwgWmFrXQorCistIENsZWFuIHVwIHBhZ2VzaXplL1BBR0VfU0laRSB1c2FnZS4gIFtLYXJlbCBaYWtdCistIGFsc28gc2VhcmNoIGZvciBfX3N0ZXh0IGluIHJlYWRwcm9maWxlICBbTWlrZSBGcnlzaW5nZXJdCistIGNoZWNrIGV4aXQgc3RhdHVzIG9mIGF1dG90b29scyAgW01pa2UgRnJ5c2luZ2VyXQorLSBjbGVhbiB1cCByZWFscGF0aC5bY2hdIGluY2x1ZGVzIGFuZCBtYWNyb3MgIFtLYXJlbCBaYWtdCistIGV4ZWNsKCkgc2hvdWxkIGJlIHVzZSBOVUxMIG5vdCAwICBbS2FyZWwgWmFrXQorLSBtYW5wYWdlIHR5cG9zICBbTGFNb250IEpvbmVzXQorLSByZW1vdmUgaGFyZGNvZGVkIHBhY2thZ2UgbmFtZSBmcm9tIHNvbWUgdXRpbHMgIFtLYXJlbCBaYWtdCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2RvY3MvdjIuMTQtUmVsZWFzZU5vdGVzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZG9jcy92Mi4xNC1SZWxlYXNlTm90ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM5MmE4MgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2RvY3MvdjIuMTQtUmVsZWFzZU5vdGVzCkBAIC0wLDAgKzEsNDE4IEBACisKK1V0aWwtbGludXgtbmcgMi4xNCBSZWxlYXNlIE5vdGVzICgwOS1KdW4tMjAwOCkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworUmVsZWFzZSBoaWdobGlnaHRzCistLS0tLS0tLS0tLS0tLS0tLS0KKworIG1vdW50KDgpIHN1cHBvcnRzIG5ldyAibm9mYWlsIiBtb3VudCBvcHRpb24uCisKKyBtb3VudCg4KSBzdXBwb3J0cyBhdXRvLWRlc3RydWN0aW9uIG9mIGxvb3AgZGV2aWNlcy4KKworIGxvc2V0dXAoOCkgc3VwcG9ydHMgbmV3IGNvbW1hbmQgbGluZSBvcHRpb24gIi1qIiB0byBzaG93IHN0YXR1cyBvZiBhbGwKKyBsb29wIGRldmljZXMgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIGZpbGUuCisKKyBsb3NldHVwKDgpIHN1cHBvcnRzIHVubGltaXRlZCBudW1iZXIgb2YgbG9vcCBkZXZpY2VzLgorCisgbG9zZXR1cCg4KSBzdXBwb3J0cyBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiAiLS1zaXplbGltaXQiIHRvIHNldCBkYXRhIGVuZC4KKworIGxkYXR0YWNoKDgpIGNvbW1hbmQgaGFzIGJlZW4gYWRkZWQgdG8gdXRpbC1saW51eC1uZy4gVGhlIGxkYXR0YWNoCisgZGFlbW9uIG9wZW5zIHRoZSBzcGVjaWZpZWQgZGV2aWNlIGZpbGUgYW5kIGF0dGFjaGVzIHRoZSBsaW5lIGRpc2NpcGxpbmUKKyB0byBpdCBmb3IgcHJvY2Vzc2luZyBvZiB0aGUgc2VudCBhbmQvb3IgcmVjZWl2ZWQgZGF0YS4KKworIHNldHRlcm0oOCkgc3VwcG9ydHMgbmV3IGNvbW1hbmQgbGluZSBvcHRpb24gIi1ibGFuayBbZm9yY2V8cG9rZV0iIGZvcgorIFRJT0NMX3tCTEFOS0VELEJMQU5LfVNDUkVFTi4KKworIHRhaWxmKDgpIGhhcyBiZWVuIHJlaW1wbGVtZW50ZWQgdG8gdXNlIGlub3RpZnkuCisKKyB0YWlsZig4KSBzdXBwb3J0cyBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiAiLW4iIHRvIHNwZWNpZnlpbmcgb3V0cHV0IGxpbmVzLgorCisgbWtzd2FwKDgpIHN1cHBvcnRzIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uICItVSIgdG8gc2V0IFVVSUQgZXhwbGljaXRseS4KKworIGZkaXNrKDgpIGhhcyBiZWVuIGZpeGVkIHRvIGNhbGN1bGF0ZSBwYXJ0aXRpb24gc2l6ZSBpbiAyXk4uCisKKyBjYWwoOCkgc3VwcG9ydHMgaGlnaGxpZ2h0aW5nIGFuIGFyYml0cmFyeSBkYXRlLgorCisgYWdldHR5KDgpIG1ha2VzIHVzZXJuYW1lLWluLXVwcGVyY2FzZSBmZWF0dXJlIG9wdGlvbmFsIChvZmYgYnkgZGVmYXVsdCkuCisgVXNlcnMgd2hvIHVzZSB1cHBlcmNhc2Utb25seSB0ZXJtaW5hbHMgbmVlZCB0byB1c2UgdGhlIG9wdGlvbiAiLVUiIG5vdy4KKworIGxvc2V0dXAoOCksIG1vdW50KDgpLCB1bW91bnQoOCksIGZkaXNrKDgpIGFuZCBzZmRpc2soOCkgc3VwcG9ydCBzdGF0aWMKKyBsaW5raW5nIHdoZW4gY29tcGlsZWQgd2l0aCAtLWVuYWJsZS1zdGF0aWMtcHJvZ3JhbXMuCisKKyBod2Nsb2NrKDgpIHN1cHBvcnRzIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uICJhZGpmaWxlIiB0byBvdmVycmlkZQorIHRoZSBkZWZhdWx0IC9ldGMvYWRqdGltZS4KKworIHNjcmlwdHJlcGxheSgxKSBjb21tYW5kIGhhcyBiZWVuIHJlLXdyaXR0ZW4gZnJvbSBQZXJsIHRvIEMuCisKKworRGVwcmVjYXRlZAorLS0tLS0tLS0tLQorCisgVGhlIGxvc2V0dXAoOCkgJy1zJyBvcHRpb24gKGludHJvZHVjZWQgYnkgdXRpbC1saW51eC1uZy0yLjEzKSBpcyBkZXByZWNhdGVkCisgbm93LiAgVGhpcyBzaG9ydCBmb3JtIG9mIHRoZSBvcHRpb24gJy0tc2hvdycgY291bGQgYmUgaW4gY29sbGlzaW9uIHdpdGgKKyBMb29wLUFFUyBsb3NldHVwIGltcGxlbWVudGF0aW9uIHdoZXJlIHRoZSBzYW1lIG9wdGlvbiBpcyB1c2VkIGZvciB0aGUgbG9vcAorIHNpemVsaW1pdC4KKworCitGaXhlZCBzZWN1cml0eSBpc3N1ZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgQ1ZFLTIwMDgtMTkyNiAtIGF1ZGl0IGxvZyBpbmplY3Rpb24gdmlhIGxvZ2luCisKKwkJIFRoZSBwcm9ibGVtIHdhcyBvcmlnaW5hbGx5IHJlcG9ydGVkIGZvciBPcGVuU1NIIGZldyBtb250aHMKKyAgICAgICAgICAgICAgICAgYWdvIChDVkUtMjAwNy0zMTAyKS4gVGhlIGxvZ2luKDEpIGlzIGFmZmVjdGVkIGJ5IHRoZSBzYW1lCisgICAgICAgICAgICAgICAgIGJ1ZyB3aGVuIGJ1aWx0IHdpdGggdGhlIG9wdGlvbiAiLS13aXRoLWF1ZGl0Ii4KKworCitTdGFibGUgbWFpbnRlbmFuY2UgcmVsZWFzZXMgYmV0d2VlbiB2Mi4xMyBhbmQgdjIuMTQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCit1dGlsLWxpbnV4LW5nIDIuMTMuMS4xIFsyMi1BcHItMjAwOF0KKworICogZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTMvdjIuMTMuMS4xLVJlbGVhc2VOb3RlcworICAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTMvdjIuMTMuMS4xLUNoYW5nZUxvZworCit1dGlsLWxpbnV4LW5nIDIuMTMuMSBbMTYtSmFuLTIwMDhdCisKKyAqIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjEzL3YyLjEzLjEtUmVsZWFzZU5vdGVzCisgICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xMy92Mi4xMy4xLUNoYW5nZUxvZworCisKK0NoYW5nZUxvZyBiZXR3ZWVuIHYyLjEzIGFuZCB2Mi4xNAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyBGb3IgbW9yZSBkZXRhaWxzIHNlZSBDaGFuZ2VMb2cgZmlsZXMgYXQ6CisgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTQvCisKK2FnZXR0eToKKyAgIC0gY2xlYW51cCBNQVhIT1NUTkFNRUxFTiAgW0thcmVsIFpha10KKyAgIC0gbWFrZSB1c2VybmFtZS1pbi11cHBlcmNhc2UgZmVhdHVyZSBvcHRpb25hbCAob2ZmIGJ5IGRlZmF1bHQuKSAgW0hhbWlzaCBDb2xlbWFuXQorICAgLSBub24tbGludXggc3VwcG9ydCAodXNlIHBhdGhuYW1lcy5oKSAgW0thcmVsIFpha10KKyAgIC0gcmVwbGFjZSB0ZXJtaW8gd2l0aCB0ZXJtaW9zIGludGVyZmFjZSAgW1NhbXVlbCBUaGliYXVsdF0KKyAgIC0gdW5nZXR0ZXh0aXplIHNldmVyYWwgZGVidWdnaW5nIG1lc3NhZ2VzLiAgW0Jlbm5vIFNjaHVsZW5iZXJnXQorYmxvY2tkZXY6CisgICAtIGFkZCAtLWdldHN6IHRvIGJsb2NrZGV2LjggIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtaXNzaW5nIGRlc2NyaXB0aW9uIGFib3V0IG9wdGlvbiAtLXJlcG9ydCBpbiBtYW5wYWdlICBbTGkgWmVmYW5dCisgICAtIGZpeCAgb3BlbmVkIGZpbGUgbGVhdmluZyB1bmNsb3NlZCAgW2xpemZdCisgICAtIHVzZSBsaWIvYmxrZGV2LmMsIGZpeCAtLXJlcG9ydCAgW0thcmVsIFpha10KK2J1aWxkLXN5czoKKyAgIC0gYWRkIC0tZW5hYmxlLXN0YXRpYy1wcm9ncmFtcyAgW1N0ZXBhbiBLYXNhbCwgS2FyZWwgWmFrXQorICAgLSBhZGQgQUNfQ0FOT05JQ0FMX0hPU1QgIFtNaWtsb3MgU3plcmVkaV0KKyAgIC0gYWRkIFZBUlNVRkZJWCB0byBVVElMX0NIRUNLX0xJQiAgW0thcmVsIFpha10KKyAgIC0gYWRkIGVyci5oIGNoZWNrICBbS2FyZWwgWmFrXQorICAgLSBhZGQgc3VwcG9ydCBpb25pY2UgZm9yIFN1cGVyLUggYXJjaGl0ZWN0dXJlICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdjIuMTQgdG8gTkVXUyAgW0thcmVsIFpha10KKyAgIC0gYXV0b2dlbi5zaCByZXBvcnRzIHZlcnNpb25zIG9mIGF1dG90b29scyBub3cgIFtLYXJlbCBaYWtdCisgICAtIGJ1aWxkIGFyY2goMSkgZHVyaW5nIGRpc3RjaGVjayAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gY2xlYW51cCAieCRmb28iIHVzYWdlICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIGRpc2stdXRpbHMvTWFrZWZpbGUuYW0gKHVzZSAkdXRpbHNfY29tbW9uKSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB1c2FnZSBvZiBsaW51eC9tYWpvci5oICBbU2FtdWVsIFRoaWJhdWx0XQorICAgLSBkaXNhYmxlIHN5c2NhbGwgZmFsbGJhY2tzIGZvciBub24tbGludXggc3lzdGVtcyAgW0thcmVsIFpha10KKyAgIC0gZG8gbm90IGFkZCAtbHV1aWQgdG8gQkxLSURfTElCUyAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gZml4IG1pc3NpbmcgZGVwcyBmb3Igc3dhcG9uICBbTWF0dGhpYXMgS29lbmlnXQorICAgLSBpZ25vcmUgYSBidW5jaCBvZiBnZW5lcmF0ZWQgZmlsZXMsIG1vc3RseSBiaW5hcmllcyAgW0phbWVzIFlvdW5nbWFuXQorICAgLSBubHMvbG9jYWxlIGhhbmRsaW5nIGluIHV0aWwtbGludXgtbmcgZ2VuZXJhbCAgW01pa2UgRnJ5c2luZ2VyXQorICAgLSBub24tbGludXggc3VwcG9ydCAgW1NhbXVlbCBUaGliYXVsdF0KKyAgIC0gcmVsZWFzZSsrICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgZXJycy5oICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgZmlsZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIGRlbGl2ZXJlZCBmcm9tIGdpdCAgW0xhTW9udCBKb25lc10KKyAgIC0gcmVtb3ZlIGhhcmRjb2RlZCBfR05VX1NPVVJDRSAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIHVubmVjZXNzYXJ5IGNoZWNrLWxvY2FsIHRhcmdldCBmcm9tIGxvZ2luLXV0aWxzLyAgW0thcmVsIFpha10KKyAgIC0gc2V0IEFDX1BSRVJFUSB0byAyLjYwLCBpbmNyZW1lbnQgdmVyc2lvbiB0byAyLjE0ICBbS2FyZWwgWmFrXQorICAgLSBzaW1wbGlmeSBjb2RlIGFyb3VuZCBSREVWX0xJTktTIGFuZCBTRVRBUkNIX0xJTktTICBbU3RlcGFuIEthc2FsXQorICAgLSB1bmlmeSBtZXRob2QgZm9yIGNoZWNraW5nIHN5c3RlbSBjYWxscyBhbmQgZmFsbGJhY2sgaGFuZGxpbmcgIFtNaWtlIEZyeXNpbmdlciwgU3RlcGFuIEthc2FsXQorICAgLSB1cGRhdGUgLmdpdGlnbm9yZSBmaWxlcyAgW0thcmVsIFpha10KKyAgIC0gdXNlIGRpc3RfbWFuX01BTlMgaW5zdGVhZCBvZiBtYW5fTUFOUyAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gdXNlIG5jdXJzZXN3ICh3aWRlIHZlcnNpb24pIHdoZW4gcG9zc2liZSAgW0thcmVsIFphaywgTWlrZSBGcnlzaW5nZXJdCisgICAtIHVzZSBwa2ctY29uZmlnIHRvIGZpbmQgdGhlIGxpYnMgZm9yIHN0YXRpYyBidWlsZCAgW1N0ZXBhbiBLYXNhbF0KKyAgIC0gdXNlIHBvcnRhYmxlICQoVkFSID0pIGluc3RlYWQgb2YgZ21ha2Utc3BlY2lmaWMgJChhZGRzdWZmaXgpICBbU3RlcGFuIEthc2FsXQorY2FsOgorICAgLSBhZGQgZGVzY3JpcHRpb24gYWJvdXQgb3B0aW9uIC1WIHRvIG1hbnBhZ2UgIFtMaSBaZWZhbl0KKyAgIC0gYWRkIHN1cHBvcnQgZm9yIGhpZ2hsaWdodGluZyBhbiBhcmJpdHJhcnkgZGF0ZSAgW1DDoWRyYWlnIEJyYWR5XQorICAgLSBhdm9pZCAtV2Zvcm1hdCB3YXJuaW5ncyAgW0ppbSBNZXllcmluZ10KKyAgIC0gZml4IHdlZWtkYXkgYWxpZ25tZW50IGZvciBjZXJ0YWluIGxvY2FsZXMgIFtQw6FkcmFpZyBCcmFkeV0KKyAgIC0gcmVwbGFjZSBlcnJzLmggd2l0aCBsaWJjIGVyci5oICBbS2FyZWwgWmFrXQorICAgLSB1c2UgSEFWRV9MSUJ7TkNVUlNFUyxOQ1VSU0VTV30gaW5zdGVhZCBIQVZFX05DVVJTRVMgIFtLYXJlbCBaYWtdCitjZmRpc2s6CisgICAtIGRlZmluZSBwb3J0YWJsZSB7REVGQVVMVCxBTFRFUk5BVEV9X0RFVklDRSAgW1NhbXVlbCBUaGliYXVsdF0KKyAgIC0gZGlzcGxheSBjeWxpbmRlcnMgYmV5b25kIDEwMjQgIFtQZXRlciBCcmVpdGVubG9obmVyXQorICAgLSBzbGlnaHRseSBpbmNyZWFzZSB0aGUgc2l6ZSBvZiBtZW51IGJ1dHRvbnMgIFtCZW5ubyBTY2h1bGVuYmVyZ10KKyAgIC0gdHJhbnNsYXRlIHBhcnRpdGlvbi10eXBlIG5hbWVzIHdoZW4gdGhleSBhcmUgcHJpbnRlZC4gIFtCZW5ubyBTY2h1bGVuYmVyZ10KK2NoZm46CisgICAtIGFkZCBwYW1fZW5kKCkgY2FsbCBhbmQgY2xlYW51cCBQQU0gY29kZSAgW0thcmVsIFpha10KKyAgIC0gZml4IGNvbXBpbGVyIHdhcm5pbmdzIGluIHNlbGludXggc3R1ZmYgIFtLYXJlbCBaYWtdCitjaGZuLCBjaHNoLCBsb2dpbjoKKyAgIC0gY29sbGFwc2luZyB0aHJlZSBzaW1pbGFyIG1lc3NhZ2VzIGludG8gYSBzaW5nbGUgb25lICBbQmVubm8gU2NodWxlbmJlcmddCitjaHNoOgorICAgLSBzaG91bGQgdXNlIHBhbV9lbmQgZnVuY3Rpb24gdG8gdGVybWluYXRlIHRoZSBQQU0gdHJhbnNhY3Rpb24gIFtZdSBaaGlndW8sIEthcmVsIFpha10KK2NvbHVtbjoKKyAgIC0gcmVwbGFjZSBlcnJzLmggd2l0aCBsaWJjIGVyci5oICBbS2FyZWwgWmFrXQorZGRhdGU6CisgICAtIDExdGgsIDEydGggYW5kIDEzdGggb2YgbW9udGggIFtWb2xrZXIgU2NoYXR6XQorZG9jczoKKyAgIC0gYWRkIGEgbm90ZSBhYm91dCBtaW5peCB2MyB0byBUT0RPIGZpbGUgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBpbmZvIGFib3V0IC5idWdmaXggcmVsZWFzZXMgYW5kIGJyYW5jaGVzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbm90ZSBhYm91dCBpbmNvcnJlY3QgdGFnIDIuMTMuMSAgW0thcmVsIFpha10KKyAgIC0gYWRkIG5vdGUgYWJvdXQgbG9zZXR1cCAtLXNpemVsaW1pdCB0byBSZWxlYXNlTm90ZXMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBub3RlIGFib3V0IHN0YXRpYyBsaW5raW5nICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdjIuMTQgUmVsZWFzZU5vdGVzICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIERFUFJFQ0FURUQgZmlsZSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCBSRUFETUUuZGV2ZWwsIGFkZCBub3RlIGFib3V0IGNvZGluZyBzdHlsZSBhbmQgU2lnbmVkLW9mZi1ieSAgW0thcmVsIFpha10KKyAgIC0gZml4IENoYW5nZUxvZyBVUkwgIFtQYXNjYWwgVGVyamFuXQorICAgLSBmaXggc3RhYmxlIGJyYW5jaGUgbmFtZSBpbiBSRUFETUUuZGV2ZWwgIFtLYXJlbCBaYWtdCisgICAtIG1hcmsgdmlwdygxKSBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHZpcHcgZnJvbSBzaGFkb3ctdXRpbHMgIFtLYXJlbCBaYWtdCisgICAtIHJlZnJlc2ggVE9ETyBsaXN0ICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgZGF0ZSBmcm9tIFJlbGVhc05vdGVzICBbS2FyZWwgWmFrXQorICAgLSB0d2VhayBhIGZldyBtZXNzYWdlcyBmb3IgY2xhcml0eSAgW0Jlbm5vIFNjaHVsZW5iZXJnXQorICAgLSB1cGRhdGUgQVVUSE9SUyBmaWxlICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgVE9ETyBmaWxlICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgdjIuMTQgUmVsZWFzZU5vdGVzICBbS2FyZWwgWmFrXQorICAgLSB3ZSBhbHJlYWR5IHJld3JvdGUgdGhlIHNjcmlwdHJlcGxheSBzY3JpcHQ7IHJlbW92ZSB0aGF0IFRPRE8gZW50cnkgIFtKYW1lcyBZb3VuZ21hbl0KK2VsdnR1bmU6CisgICAtIHVzZSBnZXRfbGludXhfdmVyc2lvbigpICBbS2FyZWwgWmFrXQorZmRmb3JtYXQ6CisgICAtIGluc3RhbGwgdG8gL3Vzci9zYmluIGluc3RlYWQgdG8gL3Vzci9iaW4gIFtLYXJlbCBaYWtdCitmZGlzazoKKyAgIC0gYmV0dGVyIGZhbGxiYWNrIGZvciBnZXRfcmFuZG9tX2lkKCkgIFtILiBQZXRlciBBbnZpbl0KKyAgIC0gY2FsY3VsYXRlICtzaXple0ssTSxHfSBpbiAyXk4gIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgQkxLKiBpb2N0bHMgdXNhZ2UgIFtLYXJlbCBaYWtdCisgICAtIGRvZXNuJ3QgcmVjb2duaXplIHRoZSBWTXdhcmUgRVNYIHBhcnRpdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIGRvaW5nIHVzZWxlc3MgaW9jdGwgd2hlbiBlZGl0aW5nIGFuIGltYWdlICBbUGFzY2FsIFRlcmphbl0KKyAgIC0gZml4IGJ1aWxkaW5nIGZvciBBVlIzMiBhbmQgQ1JJUyAgW0ltcmUgS2Fsb3pdCisgICAtIGZpeCB0eXBvICBbS2FyZWwgWmFrXQorICAgLSBtZXNzYWdlIHR3ZWFrICBbS2FyZWwgWmFrXQorICAgLSBub24tbGludXggc3VwcG9ydCAoTUFYUEFUSExFTikgIFtLYXJlbCBaYWtdCisgICAtIG5vbi1saW51eCBzdXBwb3J0ICh1c2Ugc3RhbmRhcmQgdWludHh5X3QgaW5zdGVhZCBfX3V4eSkgIFtTYW11ZWwgVGhpYmF1bHRdCisgICAtIHVzZSBtb3JlIHJlYWRhYmxlICJHUFQiIG5hbWUgcmF0aGVyIHRoYW4gIkVGSSBHUFQiICBbUm9iZXJ0IE1pbGxhbl0KKyAgIC0gdXNlIHN3YWIgbWFjcm9zIGZyb20gYml0b3BzLmggIFtLYXJlbCBaYWtdCitmbG9jazoKKyAgIC0gdHlwbyBpbiBtYW4gcGFnZSAgW0EuIENvc3RhXQorZnNjay5jcmFtZnM6CisgICAtIGNsZWFuIHVwIGdjYyB3YXJuaW5ncyAgW1JhbmR5IER1bmxhcF0KK2ZzY2subWluaXg6CisgICAtIGNvcnJlY3QgdGhlIGVycm9yIG1lc3NhZ2UgZ2l2ZW4gd2hlbiB3ZSBjYW4ndCBvcGVuIHRoZSBkZXZpY2UgIFtKYW1lcyBZb3VuZ21hbl0KKyAgIC0gcmVzZXQgdGhlIHRlcm1pbmFsIHN0YXRlIGlmIHdlIGFyZSBraWxsZWQgYnkgYSBmYXRhbCBzaWduYWwgIFtKYW1lcyBZb3VuZ21hbl0KK2dldG9wdDoKKyAgIC0gZml4IHBhdGggdG8gZXhhbXBsZXMgaW4gZ2V0b3B0LjEgIFtLYXJlbCBaYWtdCisgICAtIGluc3RhbGwgZXhhbXBsZSBzY3JpcHRzIGFzIFNDUklQVFMsIG5vdCBEQVRBICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK2h3Y2xvY2s6CisgICAtIGFkZCAtLWFkamZpbGU9cGF0aCBvcHRpb24gIFtLYXJlbCBaYWtdCisgICAtIGNoZWNrIGZvciBFTk9ERVYgIFtEYXZpZCBXb29kaG91c2VdCisgICAtIGRvIG5vdCBjcmVhdGUgYSB6ZXJvIGFkamZpbGUgIFtBbGFpbiBHdWliZXJ0XQorICAgLSBmaXggLS1ydGMgb3B0aW9uICBbTWF0dGhpYXMgS29lbmlnLCBLYXJlbCBaYWtdCitpbmNsdWRlOgorICAgLSA8c3RkaW50Lmg+IHByb3ZpZGVzIGV2ZXJ5dGhpbmcgIFtTYW11ZWwgVGhpYmF1bHRdCisgICAtIGFkZCBiaXRvcHMuaCB3aXRoIHN3YWJ7MTYsMzIsNjR9IG1hY3JvcyAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1vdW50IHBhdGhzIHRvIHBhdGhuYW1lcy5oICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIHBhdGhuYW1lcy5oICBbS2FyZWwgWmFrXQoraW9uaWNlOgorICAgLSBhZGQgYSBub3RlIGFib3V0IHBlcm1pc3Npb25zIHRvIGlvbmljZS4xICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgbWFuIHBhZ2UgdG8gcmVmbGVjdCBJRExFIGNsYXNzIGNoYW5nZSBpbiAgMi42LjI1ICBbS2FyZWwgWmFrXQoraXBjczoKKyAgIC0gYWRkIGluZm9ybWF0aW9uIGFib3V0IFBPU0lYIGNvbXBhdGliaWxpdHkgdG8gaXBjcy4xICBbS2FyZWwgWmFrXQora2lsbDoKKyAgIC0gbWFuIHBhZ2UgaXMgbWlzc2luZyBhIGRlc2NyaXB0aW9uIG9mICJraWxsIC0wIiAgW0thcmVsIFpha10KK2xkYXR0YWNoOgorICAgLSBhZGQgTkxTIHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIG5ldyBjb21tYW5kICBbVGlsbWFuIFNjaG1pZHRdCisgICAtIHVzZSBnbGliYyB0ZXJtaW9zICBbS2FyZWwgWmFrXQorbGliOgorICAgLSBhZGQgYmxrZGV2LntjLGh9ICBbU3RlZmFuIEtyYWgsIEthcmVsIFpha10KKyAgIC0gYWRkIGxpbnV4X3ZlcnNpb24ue2MsaH0gIFtTdGVmYW4gS3JhaF0KK2xvZ2luOgorICAgLSBhdWRpdCBsb2cgaW5qZWN0aW9uIGF0dGFjayB2aWEgbG9naW4gIFtTdGV2ZSBHcnViYl0KKyAgIC0gZml4IGEgc21hbGwgbWVtb3J5IGxlYWsgYW5kIHJlbW92ZSB1bm5lY2Vzc2FyeSB6ZXJvaW5nICBbS2FyZWwgWmFrXQorICAgLSBsb2dpbiBzZWdmYXVsdHMgb24gRU9GIChyaCMyOTg0NjEpICBbS2FyZWwgWmFrXQorICAgLSByZXBsYWNlIHRlcm1pbyB3aXRoIHRlcm1pb3MgaW50ZXJmYWNlICBbU2FtdWVsIFRoaWJhdWx0XQorICAgLSByZXdyaXRlIGlzX2xvY2FsKCkgdG8gcmVtb3ZlIGxpbWl0cyBvbiBsaW5lIGxlbmd0aCAgW0phbWVzIFlvdW5nbWFuXQorbG9naW4tdXRpbHM6CisgICAtIGNsZWFudXAgc3RybGVuKCkgYW5kIGZnZXRzKCkgdXNhZ2UgIFtKYW1lcyBZb3VuZ21hbl0KK2xvc2V0dXA6CisgICAtIGFkZCAtLWFzc29jaWF0ZWQgb3B0aW9uICBbS2FyZWwgWmFrXQorICAgLSBhZGQgLS1zaXplbGltaXQgb3B0aW9uICBbU2hhY2hhciBTaGVtZXNoXQorICAgLSBjYW5vbmljYWxpemUgbG9vcGZpbGUgbmFtZSAgW0thcmVsIFphaywgTWF0dGhpYXMgS29lbmlnXQorICAgLSBjbGVhbiB1cCBnY2Mgd2FybmluZ3MgIFtSYW5keSBEdW5sYXBdCisgICAtIGZpeCBlcnJubyB1c2FnZSAgW0thcmVsIFpha10KKyAgIC0gZml4IHR5cG8gaW4gbG9zZXR1cC44ICBbS2FyZWwgWmFrXQorICAgLSBtYXJrIHRoZSBvcHRpb24gLXMgYXMgZGVwcmVjYXRlZCAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSB4c3RyZHVwKCkgYW5kIGVycm9yKCkgIFtLYXJlbCBaYWtdCisgICAtIHNwbGl0IGhlbHAgbWVzc2FnZSBpbnRvIHR3byBzbWFsbGVyIHBhcnRzICBbQmVubm8gU2NodWxlbmJlcmddCisgICAtIHN1cHBvcnQgdW5saW1pdGVkIG51bWJlciBvZiBsb29wcyAgW0thcmVsIFpha10KKyAgIC0gdXNlIHN0YW5kYXJkIHVpbnR4eV90IHR5cGVzIChzdHJ1Y3QgbG9vcF9pbmZvNjQpICBbU2FtdWVsIFRoaWJhdWx0XQorbWVzZzoKKyAgIC0gcmVwbGFjZSBlcnJzLmggd2l0aCBsaWJjIGVyci5oICBbS2FyZWwgWmFrXQorbWtmcy5jcmFtZnM6CisgICAtIGNsZWFuIHVwIGdjYyB3YXJuaW5ncyAgW1JhbmR5IER1bmxhcCwgS2FyZWwgWmFrXQorICAgLSByZW1vdmUgdW51c2VkIGhlYWRlciBmaWxlICBbbGl6Zl0KKyAgIC0gc3dpdGNoIG9uIGxvY2FsaXphdGlvbi4gIFtCZW5ubyBTY2h1bGVuYmVyZ10KK21rZnMubWluaXg6CisgICAtIGFkZCBzZWN0b3JzaXplIGNoZWNrICBbTWF0dGhpYXMgS29lbmlnXQorICAgLSBjbGVhbiB1cCBnY2Mgd2FybmluZ3MgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFuIHVwIGdjYyB3YXJuaW5ncyAgW1JhbmR5IER1bmxhcF0KKyAgIC0gZGV2aWNlIHNpemUgY2xlYW51cCAgW01hdHRoaWFzIEtvZW5pZ10KK21rc3dhcDoKKyAgIC0gQkxLR0VUU0laRSBjbGVhbnVwICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIGtCIHZzLiBLaUIgdXNhZ2UgaW4gZXJyb3IgbWVzc2FnZXMgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBjb21waWxlciB3YXJuaW5ncyAgW0thcmVsIFpha10KKyAgIC0gbGludXhfdmVyc2lvbigpIGNvZGUgY29uc29saWRhdGlvbiAgW0thcmVsIFpha10KKyAgIC0gcG9zc2libGUgdG8gY3Jhc2ggd2l0aCBTRUxpbnV4IHJlbGFiZWxpbmcgc3VwcG9ydCAgW0thaUdhaSBLb2hlaV0KKyAgIC0gc2V0IFVVSUQgZm9yIHN3YXAgc3BhY2UgKGFkZCAtVSBvcHRpb24pICBbTWFydGluIFNjaHVsemVdCisgICAtIHNldCBlcnJubz0wIGluIHdyaXRlX2FsbCgpICBbS2FyZWwgWmFrXQorICAgLSB3aGVuIHdyaXRpbmcgdGhlIHNpZ25hdHVyZSBwYWdlLCBoYW5kbGUgRUlOVFIgcmV0dXJucyAgW0thcmVsIFpha10KK21vcmU6CisgICAtIGNsZWFudXAgZ2NjIHdhcm5pbmdzICBbUmFuZHkgRHVubGFwXQorICAgLSBub24tbGludXggc3VwcG9ydCAgW1NhbXVlbCBUaGliYXVsdF0KKyAgIC0gcmVwbGFjZSBDQkFVRCB3aXRoIGNmZ2V0aXNwZWVkKCkgIFtTYW11ZWwgVGhpYmF1bHRdCisgICAtIHVzZSBIQVZFX1dJREVDSEFSIGluc3RlYWQgRU5BQkxFX1dJREVDSEFSICBbS2FyZWwgWmFrXQorbW91bnQ6CisgICAtICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlIiBtZXNzYWdlIHNvbWV0aW1lcyBtZWFucyBmYWlsdXJlLCBzb21ldGltZXMgbm90ICBbTWFyayBNY0xvdWdobGluXQorICAgLSAibm9mYWlsIiBtb3VudCBvcHRpb24gIFtNYXR0aGlhcyBLb2VuaWcsIEthcmVsIFpha10KKyAgIC0gLUx8LVUgc2VnZmF1bHQgd2hlbiBsYWJlbCBvciB1dWlkIGRvZXNuJ3QgZXhpc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtb3JlIGRldGFpbHMgdG8gdGhlIC0tdmVyc2lvbiBvdXRwdXQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzdXBwb3J0IGZvciBzaXplbGltaXQ9IG1vdW50IG9wdGlvbiAoZm9yIGxvb3AgbW91bnRzKSAgW1NoYWNoYXIgU2hlbWVzaF0KKyAgIC0gYWxsb3cgYXV0by1kZXN0cnVjdGlvbiBvZiBsb29wIGRldmljZXMgIFtCZXJuYXJkbyBJbm5vY2VudGldCisgICAtIGNoYWluIG9mIHN5bWxpbmtzIHRvIGZzdGFiIGNhdXNlcyB1c2Ugb2YgcG9pbnRlciBhZnRlciBmcmVlICBbTm9yYmVydCBCdWNobXVsbGVyXQorICAgLSBjbGVhbiB1cCBnY2Mgd2FybmluZ3MgKG1vdW50X21udGVudC5jKSAgW1JhbmR5IER1bmxhcF0KKyAgIC0gY2xlYW4gdXAgZ2xvYmFsIHZhcmlhYmxlcyAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCAibm9uZSIgZnN0eXBlIHVzYWdlICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIEtFUk5FTF9WRVJTSU9OLCByZW1vdmUgbXlfZGV2X3QuaCAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCBjYW5vbmljYWxpemUoKSB1c2FnZSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCBlcnJvcigpIGFuZCBkaWUoKSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB1c2FnZSBvZiBfUEFUSF8qICBbS2FyZWwgWmFrXQorICAgLSBkb2Vzbid0IGRyb3AgcHJpdmlsZWdlcyBwcm9wZXJseSB3aGVuIGNhbGxpbmcgaGVscGVycyAgW0x1ZHdpZyBOdXNzZWxdCisgICAtIGRvbid0IGNhbGwgY2Fub25pY2FsaXplKFNQRUMpIGZvciBjaWZzLCBzbWJmcyBhbmQgbmZzICBbS2FyZWwgWmFrXQorICAgLSBkb24ndCBjYW5vbmljYWxpemUgTEFCRUw9IG9yIFVVSUQ9IHNwZWMgIFtLYXJlbCBaYWtdCisgICAtIGRyb3AgdGhlIHBhcnQgYWx3YXlzIHRydWUgZnJvbSBhIHdoaWxlIGNvbmRpdGlvbiAgW1Bhc2NhbCBUZXJqYW5dCisgICAtIGZpeCBhIHNtYWxsIHR5cG8gaW4gbW91bnQuOCAgW0NocmlzdG9waGUgQmxhZXNzXQorICAgLSBmaXggZmQgbGVhayAgW01hdHRoaWFzIEtvZW5pZ10KKyAgIC0gZml4IHR5cG8gaW4gbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gaGludCBhYm91dCBoZWxwZXIgcHJvZ3JhbSBpZiBkZXZpY2UgZG9lc24ndCBleGlzdCAgW0thcmVsIFpha10KKyAgIC0gaW1wcm92ZSBjaG1vZCAmIGNob3duIHVzYWdlIGFuZCBjbGVhbiB1cCBnY2Mgd2FybmluZ3MgKGZzdGFiLmMpICBbS2FyZWwgWmFrXQorICAgLSBpbXByb3ZlIGVycm9yIG1lc3NhZ2Ugd2hlbiBoZWxwZXIgcHJvZ3JhbSBub3QgcHJlc2VudCAgW0xhTW9udCBKb25lc10KKyAgIC0gcHJldmVudCBsb29wIG1vdW50aW5nIHRoZSBzYW1lIGZpbGUgdHdpY2UgIFtLYXJlbCBaYWssIE1hdHRoaWFzIEtvZW5pZ10KKyAgIC0gcmVtb3VudCBkb2Vzbid0IGNhcmUgYWJvdXQgbG9vcD0gIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBNU197UkVQTEFDRSxBRlRFUixCRUZPUkUsT1ZFUn0gIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBidWlsdC1pbiBzdXBwb3J0IGZvciBiYWNrZ3JvdW5kIG1vdW50cyAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIHJlZHVuZGFudCBmZmx1c2ggIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBzZXRfcHJvY19uYW1lKCkgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSB1c2VsZXNzIGlmLWJlZm9yZS1teV9mcmVlLCBkZWZpbmUgbXlfZnJlZSBhcyBhIG1hY3JvICBbS2FyZWwgWmFrXQorICAgLSB1c2UgTU5UVFlQRV9TV0FQIChmcm9tIG1udGVudC5oKSAgW0thcmVsIFpha10KKyAgIC0gdXNlIGF0ZXhpdCgpIHJhdGhlciB0aGFuICgqYXRfZGllKSgpICBbS2FyZWwgWmFrXQorICAgLSB1c2UgYmxrZGV2X2dldF9zaXplKCkgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBjYW5vbmljYWxpemUgaW4gZ2V0ZnNfYnlfZGV2bmFtZSAgW0thcmVsIFpha10KK25hbWVpOgorICAgLSBhZGQgdG8gaWRlbnRpZnkgRklGTyAobmFtZWQgcGlwZSkgYW5kIHVwZGF0ZSBtYW5wYWdlICBbTGkgWmVmYW5dCisgICAtIGNsZWFudXAgdGFpbGluZyB3aGl0ZS1zcGFjZXMgIFtLYXJlbCBaYWtdCisgICAtIG5vbi1saW51eCBzdXBwb3J0IChnZXRfY3VycmVudF9kaXJfbmFtZSgpIGFuZCBQQVRIX01BWCkgIFtLYXJlbCBaYWssIFNhbXVlbCBUaGliYXVsdF0KK3BhcnR4OgorICAgLSBmaXggY29tcGlsZXIgd2FybmluZ3MgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBzd2FiIG1hY3JvcyBmcm9tIGJpdG9wcy5oICBbS2FyZWwgWmFrXQorcGc6CisgICAtIGZpeCBzZWdmYXVsdCBvbiBzZWFyY2ggIFtSYWplZXYgVi4gUGlsbGFpXQorcG86CisgICAtIGFkZCBldS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW01pa2VsIE9sYXNhZ2FzdGldCisgICAtIGFkZCBwbC5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0FuZHJ6ZWogS3J6eXN6dG9mb3dpY3pdCisgICAtIGZpeCB0eXBvIGluIGRlLnBvICBbS2FyZWwgWmFrXQorICAgLSBtZXJnZSBjaGFuZ2VzICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgUE9URklMRVMuaW4gIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSBjYS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0pvc2VwIFB1aWdkZW1vbnRdCisgICAtIHVwZGF0ZSBjcy5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW1BldHIgUGlzYXJdCisgICAtIHVwZGF0ZSBkYS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0NsYXVzIEhpbmRzZ2F1bF0KKyAgIC0gdXBkYXRlIGRlLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbTWljaGFlbCBQaWVmZWxdCisgICAtIHVwZGF0ZSBlcy5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW1NhbnRpYWdvIFZpbGEgRG9uY2VsXQorICAgLSB1cGRhdGUgZXQucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtNZWVsaXMgUm9vc10KKyAgIC0gdXBkYXRlIGZpLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbTGF1cmkgTnVybWldCisgICAtIHVwZGF0ZSBmci5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW01pY2hlbCBSb2JpdGFpbGxlXQorICAgLSB1cGRhdGUgaHUucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtHYWJvciBLZWxlbWVuXQorICAgLSB1cGRhdGUgaWQucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtBcmlmIEUuIE51Z3JvaG9dCisgICAtIHVwZGF0ZSBpdC5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW01hcmNvIENvbG9tYm9dCisgICAtIHVwZGF0ZSBqYS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0RhaXN1a2UgWWFtYXNoaXRhXQorICAgLSB1cGRhdGUgbmwucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtCZW5ubyBTY2h1bGVuYmVyZ10KKyAgIC0gdXBkYXRlIHBvIGZpbGVzICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgcHRfQlIucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtSb2RyaWdvIFN0dWx6ZXIgTG9wZXNdCisgICAtIHVwZGF0ZSBydS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW1BhdmVsIE1hcnlhbm92XQorICAgLSB1cGRhdGUgc2wucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtTaW1vbiBNaWhldmNdCisgICAtIHVwZGF0ZSBzdi5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0RhbmllbCBOeWxhbmRlcl0KKyAgIC0gdXBkYXRlIHRyLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbTmlsZ8O8biBCZWxtYSBCdWfDvG5lcl0KKyAgIC0gdXBkYXRlIHVrLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbTWF4aW0gVi4gRHppdW1hbmVua29dCisgICAtIHVwZGF0ZSB2aS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0NseXRpZSBTaWRkYWxsXQorcmVuYW1lOgorICAgLSBhZGQgZGVzY3JpcHRpb24gYWJvdXQgb3B0aW9uIC1WIHRvIG1hbnBhZ2UgIFtMaSBaZWZhbl0KKyAgIC0gcmVtb3ZlIHVzZWxlc3MgdmFyaWFibGUgIFtMaSBaZWZhbl0KK3JlbmljZToKKyAgIC0gZGV0ZWN0IGVycm9ycyBpbiBhcmd1bWVudHMsIGFkZCAtdiwgLWggYW5kIGxvbmcgb3B0aW9ucyAgW0xhTW9udCBKb25lcywgS2FyZWwgWmFrXQorcmV2OgorICAgLSB1c2Ugd2FybigpIGluIGVycnMuaCAgW0xpIFplZmFuXQorcnRjd2FrZToKKyAgIC0gZml4IFVUQyB0aW1lIHVzYWdlICBbRGF2aWQgQnJvd25lbGxdCisgICAtIGZpeCB0aGUgZGVmYXVsdCBtb2RlIHRvICJzdGFuZGJ5IiAgW1BhdWxpdXMgWmFsZWNrYXNdCisgICAtIGZpeCB0eXBvICBbS2FyZWwgWmFrXQorICAgLSBmaXggdHlwbyBTQVRFIC0+IFNUQVRFICBbTWlrZSBGcnlzaW5nZXJdCisgICAtIGZpeCB2ZXJib3NlIG1lc3NhZ2UgIFtLYXJlbCBaYWtdCisgICAtIGluY2x1ZGUgbGliZ2VuLmggZm9yIGJhc2VuYW1lIHByb3RvdHlwZSAgW01pa2UgRnJ5c2luZ2VyXQorICAgLSBtaXNjIGNsZWFudXBzICBbRGF2aWQgQnJvd25lbGxdCitzY3JpcHQ6CisgICAtIGNsZWFudXAgZ2NjIHdhcm5pbmdzICBbUmFuZHkgRHVubGFwXQorICAgLSBjbGVhbnVwIGluY2x1ZGVzICBbU2FtdWVsIFRoaWJhdWx0XQorICAgLSBkaWVzIG9uIFNJR1dJTkNIICBbS2FyZWwgWmFrXQorICAgLSByZWFkIHJldHVybnMgYSBzaXplX3QgIFtKYW1lcyBZb3VuZ21hbl0KK3NjcmlwdHJlcGxheToKKyAgIC0gZ2V0dGV4dGl6ZSBhIGZvcmdvdHRlbiBtZXNzYWdlcyAgW0thcmVsIFpha10KKyAgIC0gcmV3cml0ZSBpbiBDICBbS2FyZWwgWmFrLCBKYW1lcyBZb3VuZ21hbl0KK3NldGFyY2g6CisgICAtIGFkZCBmYWxsYmFjayBmb3IgbGludXgvcGVyc29uYWxpdHkgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBsb25nIG9wdGlvbnMgdG8gc2V0YXJjaCBhbmQgdXBkYXRlIG1hbnBhZ2UgIFtLYXJlbCBaYWssIExpIFplZmFuXQorICAgLSBhZGQgbWlzc2luZyBhbHBoYSBzdWJhcmNocyAgW09saXZlciBGYWxrXQorICAgLSBhZGRpbmcgZ3JvZmYgc3ltbGlua3MgdG8gc2V0YXJjaCBtYW51YWwgcGFnZSAgW0Fya2FkaXVzeiBNaXNraWV3aWN6XQorICAgLSBmaXggY29tcGlsZXIgd2FybmluZyAgW0xhTW9udCBKb25lc10KKyAgIC0gZ2VuZXJhdGUgZ3JvZmYgbGlua3MgaW4gYSBiZXR0ZXIgd2F5ICBbS2FyZWwgWmFrXQorICAgLSBwcm92aWRlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICBbRG1pdHJ5IFYuIExldmluXQorICAgLSB0d2VhayB0aGUgaGVscCB0ZXh0LCBhbmQgZ2V0dGV4dGl6ZSBhIGZvcmdvdHRlbiBtZXNzYWdlICBbQmVubm8gU2NodWxlbmJlcmddCitzZXR0ZXJtOgorICAgLSBhZGQgLWJsYW4gW2ZvcmNlfHBva2VdIG9wdGlvbnMgZm9yIFRJT0NMX3tCTEFOS0VELEJMQU5LfVNDUkVFTiAgW1NhbXVlbCBUaGliYXVsdCwgS2FyZWwgWmFrXQorICAgLSBkdW1wIGJ5IFRJT0NMSU5VWCBpcyBkZXByZWNhdGVkIHNpbmNlIGxpbnV4IDEuMS45Mi4gIFtLYXJlbCBaYWtdCisgICAtIG9wZW5lZCBmaWxlIGxlYXZpbmcgdW5jbG9zZWQgIFtLYXJlbCBaYWssIGxpemZdCisgICAtIHJlbW92ZSB1bm5lY2Vzc2F0eSBpZm5kZWYgVENHRVRTICBbU2FtdWVsIFRoaWJhdWx0XQorc2ZkaXNrOgorICAgLSBhbGxvdyBwYXJ0aXRpb25pbmcgZHJpdmVzIG9mIG92ZXIgMl4zMSBzZWN0b3JzLiAgW0t1bmloaWtvIElNQUldCisgICAtIGNsZWFudXAgODMgZ2NjIHdhcm5pbmdzICBbUmFuZHkgRHVubGFwXQorICAgLSBvcGVuZWQgZmlsZXMgbGVhdmluZyB1bmNsb3NlZCAgW0thcmVsIFphaywgTGkgWmVmYW5dCisgICAtIHJlbW92ZSB1bm5lY2Vzc2FyeSBsaW51eC91bmlzdGQuaCAgW1NhbXVlbCBUaGliYXVsdF0KKyAgIC0gdXNlIGdldF9saW51eF92ZXJzaW9uKCkgIFtLYXJlbCBaYWtdCitzaHV0ZG93bjoKKyAgIC0gdXNlIF9QQVRIX01PVU5URUQgaW5zdGVhZCBvZiBfUEFUSF9NVEFCICBbU3RlcGFuIEthc2FsXQorc3dhcG9uOgorICAgLSBSZWluaXRpYWxpemUgc29mdHdhcmUgc3VzcGVuZCBhcmVhcyB0byBhdm9pZCBmdXR1cmUgY29ycnVwdGlvbi4gIFtLZWVzIENvb2ssIEthcmVsIFpha10KKyAgIC0gYWRkIHN1bmRyaWVzLmggIFtLYXJlbCBaYWtdCisgICAtIGNsZWFuIHVwIGdjYyB3YXJuaW5ncyAgW1JhbmR5IER1bmxhcF0KKyAgIC0gY2xlYW51cCB1c2FnZSBvdXRwdXQgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgdXNhZ2UoKSAgW0thcmVsIFpha10KKyAgIC0gZml4IHN3c3VzcGVuZCBkZXRlY3Rpb24gIFtLYXJlbCBaYWtdCisgICAtIGZpeCB0eXBvIGluIHVzYWdlKCkgIFtLYXJlbCBaYWtdCisgICAtIHJlYWRqdXN0IHRoZSB1c2FnZSBzdW1tYXJpZXMgIFtCZW5ubyBTY2h1bGVuYmVyZ10KKyAgIC0gcmVtb3ZlIHVubmVjZXNzYXJ5IG15cmVhbHBhdGgoKSBjYWxsICBbS2FyZWwgWmFrXQorc3lzLXV0aWxzOgorICAgLSBjb3JyZWN0IHNldGFyY2guOCBtYW5wYWdlIGxpbmsgY3JlYXRpb24gIFtGcsOpZMOpcmljIEJvdGhhbXldCit0YWlsZjoKKyAgIC0gYWRkIG9wdGlvbiAtbiB0byBzcGVjaWZ5aW5nIG91dHB1dCBsaW5lcyAgW0xpIFplZmFuXQorICAgLSBjbGVhbiB1cCBnY2Mgd2FybmluZ3MgJiBmaXggdXNlIG9mIGVycm5vICBbS2FyZWwgWmFrXQorICAgLSBpbm90aWZ5IGJhc2VkIHJlaW1wbGVtZW50YXRpb24gIFtLYXJlbCBaYWtdCisgICAtIG5vbi1saW51eCBzdXBwb3J0ICBbU2FtdWVsIFRoaWJhdWx0XQorICAgLSBvcGVuZWQgZmlsZSBsZWF2aW5nIHVuY2xvc2VkICBbbGl6Zl0KKyAgIC0gcmVwbGFjZSBlcnJzLmggd2l0aCBsaWJjIGVyci5oICBbS2FyZWwgWmFrXQordGVzdHM6CisgICAtIGFkZCAic29ydCIgdG8gY3JhbWZzIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCB0ZXN0IGZvciBpbmNsdWRlL3BhdGhuYW1lcy5oICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdHMtbW91bnQtbm9uY2Fub25pY2FsICBbS2FyZWwgWmFrXQorICAgLSBleGFjdGx5IGRlZmluZSBhIHRpbWUgZm9ybWF0IGluIGxzIC1sIG91dHB1dCAgW0thcmVsIFpha10KKyAgIC0gZml4IGJsa2lkIGNhY2hlIHVzYWdlICBbS2FyZWwgWmFrXQorICAgLSBtb3ZlIHRlc3RfYmtkZXYgdG8gbGliLyAgW0thcmVsIFpha10KKyAgIC0gcmVkaXJlY3QgbGliYmxraWQgY2FjaGUgdG8gQkxLSURfRklMRSAgW0thcmVsIFpha10KKyAgIC0gcmVuYW1lIHRlc3Rfc3lzaW5mbywgcmVtb3ZlIHRhaWxpbmcgd2hpdGUtc3BhY2VzICBbS2FyZWwgWmFrXQorICAgLSB1c2UgbG9zZXR1cCAtcyAgW0thcmVsIFpha10KK3Vtb3VudDoKKyAgIC0gYWRkIGhpbnQgYWJvdXQgbHNvZiAmIGZ1c2VyICBbS2FyZWwgWmFrXQorICAgLSBkb24ndCBwcmludCBkdXBsaWNhdGUgZXJyb3IgbWVzc2FnZXMgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBhdGV4aXQoKSByYXRoZXIgdGhhbiAoKmF0X2RpZSkoKSAgW0thcmVsIFpha10KK3dhbGw6CisgICAtIGNsZWFudXAgTUFYSE9TVE5BTUVMRU4gIFtLYXJlbCBaYWtdCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kb2NzL3YyLjE1LVJlbGVhc2VOb3RlcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2RvY3MvdjIuMTUtUmVsZWFzZU5vdGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YjEwYjYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kb2NzL3YyLjE1LVJlbGVhc2VOb3RlcwpAQCAtMCwwICsxLDY3NSBAQAorCitVdGlsLWxpbnV4LW5nIDIuMTUgUmVsZWFzZSBOb3RlcyAoMDUtTWF5LTIwMDkpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1JlbGVhc2UgaGlnaGxpZ2h0cworLS0tLS0tLS0tLS0tLS0tLS0tCisKK21rc3dhcCg4KToKKyAgLSBta3N3YXAgbGlrZSBtYW55IG90aGVycyBta2ZzLWxpa2UgdXRpbHMgRVJBU0VTIFRIRSBGSVJTVCBCTE9DS1Mgb24gCisgICAgdGhlIGRldmljZSB0byByZW1vdmUgb2xkIG9uLWRpc2sgZmlsZXN5c3RlbXMuIG1rc3dhcCByZWZ1c2VzIHRvIAorICAgIGVyYXNlIHRoZSBmaXJzdCBibG9jayBvbiBhIGRldmljZSB3aXRoIGEgZGlzayBsYWJlbCAoU1VOLCBCU0QsIC4uLikKKyAgICBvciBvbiB3aG9sZSBkaXNrIChlLmcuIC9kZXYvc2RhKS4KKworICAtIERPRVMgTk9UIFNVUFBPUlQgdjAgU1dBUCBTUEFDRSBhbnkgbW9yZS4gVGhlIGtlcm5lbCBoYXMgbm90CisgICAgc3VwcG9ydGVkIHYwIHN3YXAgc3BhY2UgZm9ybWF0IHNpbmNlIDIuNS4yMi4gVGhlIG5ldyB2ZXJzaW9uIHYxIGlzIAorICAgIHN1cHBvcnRlZCBzaW5jZSAyLjEuMTE3LgorCitzd2Fwb24oOCk6CisgIC0gc3VwcG9ydHMgbmV3IGNvbW1hbmQgbGluZSBvcHRpb24gIi1mLy0tZml4cGciIHRvIHJlaW5pdGlhbGl6ZSB0aGUKKyAgICBzd2FwIHNwYWNlIHdpdGggYSB3cm9uZyBwYWdlc2l6ZS4gQXMgc3dhcCBmb3JtYXQgZGVwZW5kcyBvbiB0aGUgcGFnZXNpemUKKyAgICBiZWluZyB1c2VkLCBpdCBtYXkgaGFwcGVuIHRoYXQgdGhlIHBhZ2VzaXplIG9mIHRoZSBzd2FwIHNwYWNlIGFuZCB0aGUKKyAgICBjdXJyZW50IHBhZ2VzaXplIGRpZmZlci4KKworbG9naW4oMSk6CisgIC0gcmVxdWlyZXMgL2V0Yy9wYW0uZC9yZW1vdGUgd2hlbiBjb21waWxlZCB3aXRoIFBBTSBzdXBwb3J0IGFuZAorICAgIGV4ZWN1dGVkIHdpdGggIi1oIDxob3N0bmFtZT4iIG9wdGlvbi4gVGhlICItaCIgb3B0aW9uIGlzIHVzZWQgYnkgb3RoZXIKKyAgICBzZXJ2ZXJzIChpLmUuLCB0ZWxuZXRkKDgpKSB0byBwYXNzIHRoZSBuYW1lIG9mIHRoZSByZW1vdGUgaG9zdCB0byBsb2dpbi4KKworY2FsKDEpOgorICAtIGRldGVybWluZXMgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIGZyb20gdGhlIGxvY2FsZS4KKworbGliYmxraWQsIGJsa2lkKDgpIGFuZCBmaW5kZnMoOCk6CisgIFRoZSBsaWJibGtpZCBsaWJyYXJ5IGhhcyBiZWVuIG1vdmVkIGZyb20gZTJmc3Byb2dzIHRvIHV0aWwtbGludXgtbmcuIFRoZSAKKyAgbGlicmFyeSBoYXMgYmVlbiBleHRlbmRlZCBhbmQgbm93IGluY2x1ZGVzOgorICAKKyAgICAtIGxvdy1sZXZlbCBwcm9iaW5nIEFQSSB0aGF0IGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSBmb3IgdWRldiBydWxlcworICAgICAgKGNtZGxpbmU6IGJsa2lkIC1wIC1vIHVkZXYgPGRldmljZT4pCisKKyAgICAtIHZlcnkgaGlnaC1sZXZlbCBBUEkgdGhhdCBwcm92aWRlcyBwb3J0YWJsZSBpbnRlcmZhY2UgZm9yIExBQkVMcyBhbmQKKyAgICAgIFVVSURzIGV2YWx1YXRpb24gb24gMi40LCAyLjYgYW5kIHVkZXYtYmFzZWQgc3lzdGVtLiBJdCdzIHJlY29tbWVuZGVkCisgICAgICB0byB1c2UgImJsa2lkIC1MfC1VIiBpbiB5b3VyIHNjcmlwdHMgcmF0aGVyIHRoYW4gZGlyZWN0bHkgcmVhZCAKKyAgICAgIC9kZXYvZGlzay9ieS0qIHN5bWxpbmtzLgorCisgICAgLSB0aGUgb2xkIEFCSSBhbmQgQVBJIGlzIGJhY2t3YXJkbHkgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24KKyAgICAgIGZyb20gZTJmc3Byb2dzLgorCisgIEFsbCB1dGlscyAobW91bnQsIHN3YXBvbiwgZnNjaywgLi4uKSBpbiB0aGUgcGFja2FnZSBpcyBwb3NzaWJsZSB0byBsaW5rIAorICBhZ2FpbnN0IHRoaXMgbmV3IGxpYnJhcnksIG9yIHRoZSBvbGQgdmVyc2lvbiBmcm9tIGUyZnNwcm9ncywgb3IgCisgIGxpYnZvbHVtZV9pZCBmcm9tIHVkZXYgcGFja2FnZS4KKworICBUaGUgZGVmYXVsdCBpcyBzdGlsbCBsaWJibGtpZCBmcm9tIGUyZnNwcm9ncy4gVGhlIG5ldyBsaWJyYXJ5IGNvdWxkIGJlIAorICBlbmFibGVkIGJ5ICItLXdpdGgtZnNwcm9iZT1idWlsdGluIiBjb25maWd1cmUgb3B0aW9uLgorCisgIFRoZSBsaWJ2b2x1bWVfaWQgZnJvbSB1ZGV2IGFuZCB2b2xfaWQgY29tbWFuZCBpcyBkZXByZWNhdGVkIG5vdy4KKworZnNjayg4KToKKyAgLSBoYXMgYmVlbiBtb3ZlZCB0byBmcm9tIGUyZnNwcm9ncyB0byB1dGlsLWxpbnV4LW5nLgorCitkbWVzZygxKQorICAtIHN1cHBvcnRzIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uICItciIgdG8gcHJpbnQgdGhlIHJhdyBtZXNzYWdlIGJ1ZmZlcgorICAgIChpLmUuIGRvbuKAmXQgc3RyaXAgdGhlIGxvZyBsZXZlbCBwcmVmaXhlcykuCisKK2Zsb2NrKDEpOgorICAtIGFsbG93cyBsb2NrIGRpcmVjdG9yeQorCitmc2NrLmNyYW1mczoKKyAgLSBhdXRvbWF0aWNhbGx5IGRldGVjdHMgdGhlIGltYWdlIGVuZGlhbm5lc3MsIGFuZCBjYW4gd29yayBvbiBpbWFnZXMgb2YgCisgICAgZWl0aGVyIGVuZGlhbm5lc3MuCisKK21rZnMuY3JhbWZzOgorICAtIG5vdyBhY2NlcHRzIGEgbmV3IG9wdGlvbmFsIHBhcmFtZXRlciAoLU4pIHRoYXQgYWxsb3dzIGNyZWF0aW5nIAorICAgIHRoZSBjcmFtZnMgaW1hZ2UgaW4gZWl0aGVyIGVuZGlhbm5lc3MuCisKK3JlbmljZSgxKToKKyAgLSBzdXBwb3J0cyBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiAiLW4iIGZvciBjb21wYXRpYmlsaXR5IHdpdGggUE9TSVgKKworaHdjbG9jayg4KQorICAtIHN1cHBvcnRzIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uICItLXN5c3R6IiB0byByZXNldCB0aGUgU3lzdGVtIFRpbWUKKyAgICBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZS4gU2luY2UgdGhlIHN5c3RlbSBjbG9jayB0aW1lIGlzIGFscmVhZHkKKyAgICBzZXQgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2sgYnkgdGhlIGtlcm5lbCAod2hlbiBjb21waWxlZCB3aXRoIAorICAgIENPTkZJR19SVENfSENUT1NZUyksIHRoZXJlJ3Mgbm8gcGFydGljdWxhciBuZWVkIHRvIHJlYWQgdGhlIGhhcmR3YXJlCisgICAgY2xvY2sgYWdhaW4uCisKK2lvbmljZSgxKToKKyAgLSBzdXBwb3J0cyBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXQiIG9wdGlvbiB0byBpZ25vcmUgZmFpbHVyZSB0byBzZXQKKyAgICByZXF1ZXN0ZWQgcHJpb3JpdHkuICBUaGlzIG1pZ2h0IGJlIG9mIHVzZSBpbiBjYXNlIHNvbWV0aGluZyAoc2VsaW51eCwKKyAgICBvbGQga2VybmVsLCBldGMuKSBkb2VzIG5vdCBhbGxvdyB0aGUgcmVxdWVzdGVkIHNjaGVkdWxpbmcgcHJpb3JpdHkgCisgICAgdG8gYmUgc2V0LgorCisgIC0gdGhlIGNvbW1hbmQgbGluZSBvcHRpb24gIi1wIiBoYW5kbGVzIG11bHRpcGxlIFBJRHMgbm93LgorCitsb3NldHVwKDgpOgorICAtIGRldGFjaGVzIG1vcmUgZGV2aWNlcyBieSAiLWQgPGxvb3A+IFs8bG9vcD4gLi5dIgorCitpcGNtaygxKToKKyAgLSB0aGlzIE5FVyBDT01NQU5EIGFsbG93cyB0byBjcmVhdGUgYWQtaG9jIElQQyByZXNvdXJjZXMuCisKK2xzY3B1KDEpOgorICAtIHRoaXMgTkVXIENPTU1BTkQgZ2F0aGVycyBDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGxpa2UgbnVtYmVyCisgICAgb2YgQ1BVcywgdGhyZWFkcywgY29yZXMsIHNvY2ssIE5VTUEgbm9kZXMsIGluZm9ybWF0aW9uIGFib3V0IENQVSAKKyAgICBjYWNoZXMsIGluZm9ybWF0aW9uIGFib3V0IGh5cGVydmlzb3IgYW5kIHZpcnR1YWxpemF0aW9uIHN1cHBvcnQsIAorICAgIC4uZXRjLiBhbmQgcHJpbnRzIGl0IGluIGh1bWFuLXJlYWRhYmxlIG9yIHBhcnNlLWFibGUgZm9ybWF0LgorCituYW1laSgxKToKKyAgLSBzdXBwb3J0cyBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnMgLS1vd25lcnMsIC0tbG9uZyBhbmQgLS12ZXJ0aWNhbAorICAgIHRvIHByaW50IGxzKDEpLWxpa2Ugb3V0cHV0LgorCisKK1N0YWJsZSBtYWludGVuYW5jZSByZWxlYXNlcyBiZXR3ZWVuIHYyLjE0IGFuZCB2Mi4xNQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3V0aWwtbGludXgtbmcgMi4xNC4xIFsxMC1BdWctMjAwOF0KKworICogZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTQvdjIuMTQuMS1SZWxlYXNlTm90ZXMKKyAgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE0L3YyLjE0LjEtQ2hhbmdlTG9nCisKK3V0aWwtbGludXgtbmcgMi4xNC4yIFswOS1GZWItMjAwOV0KKworICogZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTQvdjIuMTQuMi1SZWxlYXNlTm90ZXMKKyAgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE0L3YyLjE0LjItQ2hhbmdlTG9nCisKKworQ2hhbmdlTG9nIGJldHdlZW4gdjIuMTQgYW5kIHYyLjE1CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIEZvciBtb3JlIGRldGFpbHMgc2VlIENoYW5nZUxvZyBmaWxlcyBhdDoKKyBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNS8KKworYWRkcGFydDoKKyAgIC0gNTEyLWJ5dGUgc2VjdG9ycyBpbiBjb2RlLCBieXRlcyBpbiBtYW4tcGFnZSAgW0thcmVsIFpha10KK2FnZXR0eToKKyAgIC0gSVVDTEMgYW5kIE9MQ1VDIGFyZSBMaW51eCBleHRlbnNpb25zICBbQXVyZWxpZW4gSmFybm9dCisgICAtIGNoZWNrIGZvciB0ZXJtaW9zLmNfbGluZSBzdHJ1Y3QgbWVtYmVyIGJ5IGF1dG9jb25mICBbS2FyZWwgWmFrXQorICAgLSBzeXMvdHlwZXMuaCBhbmQgdGltZS5oIGFyZSBpbmNsdWRlZCBtb3JlIHRoYW4gb25jZSAgW0thcmVsIFpha10KK2Jsa2lkOgorICAgLSBHaXZlIGEgcHJpb3JpdHkgYm9udXMgdG8gImxlYWYiIGRldmljZW1hcHBlciBkZXZpY2VzICBbVGhlb2RvcmUgVHMnb10KKyAgIC0gTFNJIE1lZ2FSQUlEICBbS2FyZWwgWmFrXQorICAgLSBOVklESUEgcmFpZCAgW0thcmVsIFpha10KKyAgIC0gT3B0aW1pemUgZGV2aWNlbWFwcGVyIHN1cHBvcnQgIFtUaGVvZG9yZSBUcydvXQorICAgLSBQcm9taXNlIHJhaWQgIFtLYXJlbCBaYWtdCisgICAtIFJlZnVzZSB0byBjcmVhdGUgYSBkZXZpY2Ugc3RydWN0dXJlIGZvciBhIG5vbi1leGlzdGVudCBkZXZpY2UgIFtUaGVvZG9yZSBUcydvXQorICAgLSBVbmV4cG9ydCB0aGUgcHJpdmF0ZSBzeW1ib2wgYmxraWRfZGV2ZGlycyAgW1RoZW9kb3JlIFRzJ29dCisgICAtIGFkZCAgdG8gcmVpc2VyICBbS2FyZWwgWmFrXQorICAgLSBhZGQgLUwgLVUgb3B0aW9ucyAoZXZhbHVhdGlvbiBBUEkpICBbcm9vdF0KKyAgIC0gYWRkIC1wIGFuZCBsb3ctcHJvYmUgbW9kZSB0byBibGtpZCBiaW5hcnkgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBDaHJpc3RvcGgncyBub3RlIGFib3V0IGxpYmRpc2sgdG8gVE9ETyAgW0thcmVsIFpha10KKyAgIC0gYWRkIERERiByYWlkICBbS2FyZWwgWmFrXQorICAgLSBhZGQgREVCVUdfTE9XUFJPQkUsIGNsZWFudXAgYSBsaXR0bGUgZGVidWcgc3R1ZmYgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBHRlMgYW5kIEdGUzIgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBHRlMyIFVVSUQgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIEdGUzIgcmVnLiB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgSEZTIGFuZCBIRlMrICBbS2FyZWwgWmFrXQorICAgLSBhZGQgSFBGUyAgW0thcmVsIFpha10KKyAgIC0gYWRkIEhURlMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBJU1cgcmFpZCAgW0thcmVsIFpha10KKyAgIC0gYWRkIEpNaWNyb24gUkFJRCAgW0thcmVsIFpha10KKyAgIC0gYWRkIExVS1Mgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIExWTTIgc3VwcG9ydCBhbmQgYSBmaXggX3NwcmludGZfdXVpZCgpIGJ1ZyAgW0thcmVsIFpha10KKyAgIC0gYWRkIExpbnV4IFJBSUQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBTaWxpY29uIEltYWdlIE1lZGxheSBSQUlEICBbS2FyZWwgWmFrXQorICAgLSBhZGQgVE9ETyBmaWxlICBbS2FyZWwgWmFrXQorICAgLSBhZGQgVE9ETyBoaW50IGFib3V0IERNIGRldm5hbWVzIGluIHN5c2ZzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgVE9ETyBoaW50IGFib3V0IGJsa2lkX3BhcnNlX3RhZ19zdHJpbmcoKSAgW0thcmVsIFpha10KKyAgIC0gYWRkIFRPRE8gbm90ZSBhYm91dCBibGtpZF9ldmFsdWF0ZV9zcGVjX3RvX2J1ZmZlcigpICBbS2FyZWwgWmFrXQorICAgLSBhZGQgVURGIHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBVRlMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBWRkFUIHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBWSUEgUkFJRCAgW0thcmVsIFpha10KKyAgIC0gYWRkIFpTRiBzdXBwb3J0ICBbQW5kcmVhcyBEaWxnZXJdCisgICAtIGFkZCBaU0YgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIF9fYXR0cmlidXRlX18gKChmb3JtYXQpKSAgW0thcmVsIFpha10KKyAgIC0gYWRkIGEgbm90ZSB0byBUT0RPIGxpc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBhZGFwdGVjIHJhaWQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBiYXNpYyBjb25maWd1cmUuYWMgc3R1ZmYgYW5kIGJsa2lkLnBjICBbS2FyZWwgWmFrXQorICAgLSBhZGQgYmxraWRfZG9fc2FmZXByb2JlKCkgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBibGtpZF9ldmFsdWF0ZV9zcGVjKCkgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBibGtpZF9wcm9iZV9nZXRfc2IoKSBtYWNybyAgW0thcmVsIFpha10KKyAgIC0gYWRkIGJ0cmZzIHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBjbWRsaW5lIGludGVyZmFjZSBmb3IgYmxraWRfcHJvYmVfZmlsdGVyX3VzYWdlKCkgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBkZGYgcmFpZCByZWdyZXNzaW9uIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBleHR7MiwzLDQsNGRldmVsfSBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgZmFsbGJhY2sgdG8gZXh0NCBmb3IgMi42LjI5KyBrZXJuZWxzIGlmIGV4dDIgaXMgbm90IHByZXNlbnQgIFtUaGVvZG9yZSBUcydvXQorICAgLSBhZGQgZmluZGZzKDgpICBbS2FyZWwgWmFrXQorICAgLSBhZGQgaGlnaHBvaW50ezM3eCw0NXh9IFJBSURzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgaHBmcyByZWdyZXNzaW9uIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBpc285NjAwICBbS2FyZWwgWmFrXQorICAgLSBhZGQgamZzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbG93IGxldmVsIHByb2JpbmcgQVBJICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbHZtMSAgW0thcmVsIFpha10KKyAgIC0gYWRkIGx2bTIgcmVnLnRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtaW5peCAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1pc3NpbmcgYmxraWRQLmggdG8gTWFrZWZpbGUuYW0gIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtaXNzaW5nIGhmcy5jICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbmV0d2FyZSAoTlNTKSAgW0thcmVsIFpha10KKyAgIC0gYWRkIG5ldHdhcmUgcmVncmVzc2lvbiB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbmV3IG9wdGlvbnMgdG8gYmxraWQuOCBhbmQgaGVscCBvdXRwdXQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBuZXcgcmVxdWlyZW1lbnRzIHRvIFRPRE8gbGlzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIG9jZnMgYW5kIG9yYWNsZWFzbSAgW0thcmVsIFpha10KKyAgIC0gYWRkIG9jZnMyIHZlcnNpb24gIFtLYXJlbCBaYWtdCisgICAtIGFkZCBwcm9wZXIgY29weWluZyBpbmZvICBbS2FyZWwgWmFrXQorICAgLSBhZGQgcmVnLnRlc3RzIGZvciBIRlMgYW5kIEhGUysgIFtLYXJlbCBaYWtdCisgICAtIGFkZCByb21mcyAgW0thcmVsIFpha10KKyAgIC0gYWRkIHNxdWFzaGZzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgc3VwcG9ydCBmb3IgL2V0Yy9ibGtpZC5jb25mIGZpbGUgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzeXN2IGFuZCB4ZW5peCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHRzdF90eXBlcy5jIHRvIE1ha2VmaWxlLmFtICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdWRldiBJRF9GU18qIG91dHB1dCB0byBibGtpZCBiaW5hcnkgIFtLYXJlbCBaYWtdCisgICAtIGFkZCB1ZGV2IHN0cmluZyBlbmNvZGluZyByb3V0aW5lcyAgW0thcmVsIFpha10KKyAgIC0gYWRkIHV1aWQgYW5kIHZlcnNpb24gc3VwcG9ydCB0byBnZnMyICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdmVyc2lvbiBhbmQgcHJvYmUgRlNJbmZvICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdmVyc2lvbiBzdXBwb3J0IHRvIExWTTIgIFtLYXJlbCBaYWtdCisgICAtIGFkZCB2b2xfaWQgY2FsbCB0byBibGtpZCByZWdyZXNzaW9uIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCB2eGZzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgeGZzICBbS2FyZWwgWmFrXQorICAgLSBibGtkZXYgc2l6ZSBmYWxsYmFjayAgW0thcmVsIFpha10KKyAgIC0gYmxraWQuc3RhdGljIG1ha2UgdGFyZ2V0ICBbS2FyZWwgWmFrXQorICAgLSBibGtpZF9ldmFsdWF0ZV9zcGVjKCkgc2hvdWxkbid0IGlnbm9yZSAkQkxLSURfRklMRSAgW0thcmVsIFpha10KKyAgIC0gY2hlY2sgY2FsbG9jKCkgcmV0dXJuIHZhbHVlICBbS2FyZWwgWmFrXQorICAgLSBjaGVjayBpZGluZm9bXSBpbmRleCAgW0thcmVsIFpha10KKyAgIC0gY2xlYW4gdXAgbWFuIHBhZ2VzICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIF9MT0dQUk9CRSBkZWJ1ZyBtZXNzYWdlcyAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCBzdGFydHMgb2YgcHJvYmluZyBmaWxlcyAgW0thcmVsIFpha10KKyAgIC0gY29tcGlsZSBURVNUX1BST0dSQU1zICBbS2FyZWwgWmFrXQorICAgLSBjb3JyZWN0bHkgaW5pdGlhbGl6ZSBtYWdpY3NbXSBhcnJheXMgIFtLYXJlbCBaYWtdCisgICAtIGNyZWF0ZSBiYXNpYyBkaXJlY3RvcmllcyAgW0thcmVsIFpha10KKyAgIC0gZG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCB1cG9uIHNsYXNobGVzcyBtb2R1bGUgZGVwZW5kZW5jeSBsaW5lICBbSmltIE1leWVyaW5nXQorICAgLSBmaXggLi4uX3N0cm5jcHlfdXVpZCAgW0thcmVsIFpha10KKyAgIC0gZml4IGEgc3ludGF4IG5pdCAgW0thcmVsIFpha10KKyAgIC0gZml4IGJsa2lkX2RvX3Byb2JlKCkgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBibGtpZF9wcm9iZV9zcHJpbnRmX3ZlcnNpb24oKSB1c2FnZSAgW0thcmVsIFpha10KKyAgIC0gZml4IGJsa2lkX3NhZmVfc3RyaW5nKCkgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBleGl0IGNvZGVzIGluIGJsa2lkKDgpICBbU2NvdHQgSmFtZXMgUmVtbmFudF0KKyAgIC0gZml4IGV4dDIgU0VDX1RZUEUgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBmaWxlIGRlc2NyaXB0b3IgbGVhayB3aGVuIGNoZWNraW5nIGZvciBhIG1vZHVsZSAgW0thcmVsIFpha10KKyAgIC0gZml4IGdjYyB3YXJuaW5nIGluIGJsa2lkX2dldF9jYWNoZV9maWxlbmFtZSgpICBbS2FyZWwgWmFrXQorICAgLSBmaXggaGVkZWFkZXIgaW4gbnRmcy5jICBbS2FyZWwgWmFrXQorICAgLSBmaXggaGlnaHBvaW50Mzd4IG9mZnNldCAgW0thcmVsIFpha10KKyAgIC0gZml4IGxvdy1wcm9iZSBtb2RlIHJldHVybiBjb2RlcyAgW0thcmVsIFpha10KKyAgIC0gZml4IG5vbi11ZGV2IGxvdy1wcm9iZSBtb2RlIG91dHB1dCAgW0thcmVsIFpha10KKyAgIC0gZml4IG9jZnMyIGRldGVjdGlvbiAgW0thcmVsIFpha10KKyAgIC0gZml4IHR5cG8gKHN5bnRheCBlcnJvcikgIFtLYXJlbCBaYWtdCisgICAtIGZpeCB1ZGV2IG91dHB1dCAgW0thcmVsIFpha10KKyAgIC0gZml4IHhmcyBsYWJlbCAgW0thcmVsIFpha10KKyAgIC0gaGZzIC0gZG8gbm90IHNldCBVVUlEIGZvciBlbXRweSBmaW5kZXIgaW5mbyAgW0theSBTaWV2ZXJzXQorICAgLSBoZnMgLSB1c2UgcHJvcGVyIG5hdGl2ZSBVVUlEIGZvcm1hdCAgW0theSBTaWV2ZXJzXQorICAgLSBpbXByb3ZlIGRkZiBkZXRlY3Rpb24gIFtLYXJlbCBaYWtdCisgICAtIGxpbnV4X3JhaWQgLSBmaXggbG9naWMgZm9yIHZvbHVtZXMgd2l0aCBzaXplID09IDAgIFtLYXJlbCBaYWtdCisgICAtIG1lcmdlIGxpYmJsa2lkIGNvZGUgZnJvbSBlMmZzcHJvZ3MvbGliL2Jsa2lkICBbS2FyZWwgWmFrXQorICAgLSBtaW5vciBjaGFuZ2VzIHRvIGxpYnJhcnkgYnVpbGQgc3lzdGVtICBbS2FyZWwgWmFrXQorICAgLSBuZXR3YXJlIFNCIGhhcyB0byBiZSBwYWNrZWQgIFtLYXJlbCBaYWtdCisgICAtIG9wdGltaXplIGZvciBzdHJpbmcgVVVJRHMgIFtLYXJlbCBaYWtdCisgICAtIHJlLW9yZGVyIGxpc3Qgb2YgZmlsZXN5c3RlbXMgIFtLYXJlbCBaYWtdCisgICAtIHJlY29nbml6ZSBleHQzIHdpdGggdGVzdF9mcyBzZXQgYXMgZXh0MyAgW0VyaWMgU2FuZGVlbl0KKyAgIC0gcmVjb2duaXplIGV4dDQoZGV2KSB3aXRob3V0IGpvdXJuYWwgIFtFcmljIFNhbmRlZW5dCisgICAtIHJlZnJlc2ggVE9ETyBmaWxlICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgYmxraWRfdHlwZXMuaCAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIHVubmVjZXNzYXJ5IGRlYnVnIG1lc3NhZ2UgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSB1bm5lY2Vzc2FyeSBpZmRlZiBfX2NwbHVzcGx1cyAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIHVudXNlZCBzdHVmZiBmcm9tIE1ha2VmaWxlICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgdXNlbGVzcyBpZi1iZWZvcmUtZnJlZSB0ZXN0cyAgW0ppbSBNZXllcmluZ10KKyAgIC0gcmVtb3ZlIHdob2xlLWRpc2sgZW50cmllcyBmcm9tIGNhY2hlIHdoZW4gcGFydGl0aW9ucyBhcmUgZm91bmQgIFtFcmljIFNhbmRlZW5dCisgICAtIHJlbmFtZSBibGtpZF9kZWJ1Z19pbml0IHRvIGJsa2lkX2luaXRfZGVidWcgIFtLYXJlbCBaYWtdCisgICAtIHJlbmFtZSBibGtpZF9ldmFsdWF0ZV9zcGVjIHRvIGJsa2lkX2V2YWx1YXRlX3RhZyAgW0thcmVsIFpha10KKyAgIC0gc2V0IHNpemUgZm9yIG5vbi1ibGtkZXZzLCBhZGQgYmxraWRfcHJvYmVfc3RyY3B5X3V1aWQoKSAgW0thcmVsIFpha10KKyAgIC0gc3BsaXQgU09OQU1FIGFuZCBMSUJCTEtJRF9WRVJTSU9OICBbS2FyZWwgWmFrXQorICAgLSBzdGFydCB0byB1c2UgQUJJIHZlcnNpb25pbmcgIFtLYXJlbCBaYWtdCisgICAtIHN1cHBvcnQgZGV0ZWN0aW9uIG9mIG11bHRpcGxlIHNpZ25hdHVyZXMgIFtLYXJlbCBaYWtdCisgICAtIHN1cHBvcnQgdmlhIHJhaWQgdmVyc2lvbiAyICBbU3ZlbiBKb3N0XQorICAgLSB1cGRhdGUgVE9ETyAgW0thcmVsIFpha10KKyAgIC0gdXBkYXRlIGdpdGlnbm9yZSAgW0thcmVsIFpha10KKyAgIC0gdXNlICJjaGFyICoqIiByYXRoZXIgdGhhbiAidW5zaWduZWQgY2hhciAqKiIgIFtLYXJlbCBaYWtdCisgICAtIHVzZSAvZGV2L21hcHBlci88bmFtZT4gcmF0aGVyIHRoYW4gL2Rldi9kbS08Tj4gIFtLYXJlbCBaYWtdCisgICAtIHVzZSAvc3lzL2Jsb2NrL2RtLTxOPi9kbS9uYW1lICBbS2FyZWwgWmFrXQorICAgLSB1c2UgUmVxdWlyZXMucHJpdmF0ZSBhbmQgZml4IHRoZSBpbmNsdWRlIGRpcmVjdG9yeSAgW0thcmVsIFpha10KKyAgIC0gdXNlIGJsa2lkX3Byb2JlX3N0cmNweV91dWlkKCkgZm9yIGx1a3MgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBwb3NpeCB1aW50MzJfdCBpbiBvY2ZzIHN1cGVyYmxvY2sgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBwb3NpeCB1aW50WFhfdCBpbiBsdm0gY29kZSAgW0thcmVsIFpha10KKyAgIC0gdXNlIHNpemVvZigpIGZvciBoZnMgdXVpZCAgW0thcmVsIFpha10KKyAgIC0gdmZhdCAtIGZpeCBkZWNsYXJhdGlvbiAgW0theSBTaWV2ZXJzXQorYmxraXM6CisgICAtIGZpeCBkZXRlY3Rpb24gb2YgZXh0NGRldiBhcyBleHQ0ICBbRXJpYyBTYW5kZWVuXQorYmxvY2tkZXY6CisgICAtIGFkZCBub3RlIHRoYXQgdGhlIFN0YXJ0U2VjIGlzIGluIDUxMi1ieXRlIHNlY3RvcnMgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cgIFtLYXJlbCBaYWtdCitidWlsZC1zeXM6CisgICAtIGFkZCAkdXNybGliZXhlY2RpciBhbmQgZml4IHBhdGhzIGZvciBbL3Vzcl0vbGliNjQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCAtLWRpc2FibGUtbW91bnQgIFtBbG9uIEJhci1MZXZdCisgICAtIGFkZCAtLXdpdGg9ZnNwcm9iZT1idWlsdGluICBbS2FyZWwgWmFrXQorICAgLSBhZGQgLWx1dWlkIHRvIEJMS0lEX0xJQlMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBmc2NrIGJpbmFyeSB0byAuZ2l0aWdub3JlICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbWlzc2luZyBBQ19DX0JJR0VORElBTiAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1pc3NpbmcgZmlsZXMgdG8gaW5jbHVkZS9NYWtlZmlsZS5hbSAgW0thcmVsIFpha10KKyAgIC0gYWRkIHRlbXBvcmFyeSBsaWJ0b29sICoubTQgc3R1ZmYgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgLS13aXRoLWZzcHJvYmUgaGVscCBzdHJpbmcgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgc3lzLXV0aWxzL01ha2VmaWxlLmFtICBbS2FyZWwgWmFrXQorICAgLSBkZWZpbmUgbGliZGlyICBbS2FyZWwgWmFrXQorICAgLSBmaXggYnVncyBkZXRlY3RlZCBieSAibWFrZSBkaXN0Y2hlY2siICBbS2FyZWwgWmFrXQorICAgLSBsaWJ0b29saXplIGJ5IGxpYnRvb2wtMiAgW0thcmVsIFpha10KKyAgIC0gbGlidG9vbGl6ZSBtb3VudC9NYWtlZmlsZS5hbSAgW0thcmVsIFpha10KKyAgIC0gbW92ZSBwaXZvdF9yb290KDgpIHRvIHN5cy11dGlscyAgW0thcmVsIFpha10KKyAgIC0gcmVmcmVzaCBnZW5lcmF0ZWQgbGlidG9vbC0yIHN0dWZmICBbS2FyZWwgWmFrXQorICAgLSByZWxlYXNlKysgKHYyLjE1LXJjMSkgIFtLYXJlbCBaYWtdCisgICAtIHJlbGVhc2UrKyAodjIuMTUtcmMyKSAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIHVzZSBvZiBkZXZtYXBwZXIgbGlicmFyeSAgW0thcmVsIFpha10KKyAgIC0gdGdldHMgaXMgbm90IGluIG5jdXJzZXMgYnV0IGluIHRpbmZvICBbQXJrYWRpdXN6IE1pc2tpZXdpY3pdCisgICAtIHVzZSBwa2ctY29uZmlnIGZvciBibGtpZCBhbmQgdm9sdW1lX2lkICBbS2FyZWwgWmFrXQorY2FsOgorICAgLSBkZXRlcm1pbmUgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIGZyb20gdGhlIGxvY2FsZSAgW1DDoWRyYWlnIEJyYWR5XQorICAgLSByZW1vdmUgZ2NjLWlzbSBmcm9tIG5sX2xhbmdpbmZvKCkgY2FsbCAgW0thcmVsIFpha10KK2NmZGlzazoKKyAgIC0gYWNjZXB0IHllcy9ubyBhcyBmYWxsYmFjayAgW01hdHRoaWFzIEtvZW5pZ10KKyAgIC0gZml4ICJjYW5ub3Qgc2VlayBvbiBkaXNrIGRyaXZlIiBidWcgIFtLYXJlbCBaYWtdCitjaGZuOgorICAgLSBzZXZlcmFsIHN0cmluZ3Mgd2l0aG91dCBnZXR0ZXh0IGNhbGxzICBbS2FyZWwgWmFrXQorY2hydDoKKyAgIC0gYWRkIE5MUyBzdXBwb3J0LCBjbGVhbiBlcnJvciBtZXNzYWdlcyBhbmQgcmV0dXJuIGNvZGVzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgYSBjb21tZW50IGFib3V0IG5vbiBQT1NJWCAxMDAzLjFiIGF0dHJpYnV0ZXMgaW4gY2hydC4xICBbQXVyZWxpZW4gSmFybm9dCisgICAtIG91dHB1dCBidWdsZXQgd2hlbiByZXBvcnRpbmcgc2NoZWR1bGluZyBjbGFzcyAgW0thcmVsIFpha10KKyAgIC0gc3VwcG9ydCBDRlMgU0NIRURfSURMRSBwcmlvcml0eSBhbmQgZG9jdW1lbnQgaXQgIFtNYXJ0aW4gU3RlaWdlcndhbGRdCitkaXNrLXV0aWxzOgorICAgLSBjbGVhbiB1cCBjb2RlLCB1c2UgYmxrZGV2XyogZnVuY3Rpb25zICBbU2FtdWVsIFRoaWJhdWx0XQorICAgLSBpbmNsdWRlIGZjbnRsLmggZGlyZWN0bHkgKG1rZnMuY3JhbWZzLCByYXcpICBbbWF4aW1pbGlhbiBhdHRlbXNdCisgICAtIHMvTU9VTlRFRC9fUEFUSF9NT1VOVEVELyAgW21heGltaWxpYW4gYXR0ZW1zXQorZG1lc2c6CisgICAtIEFkZCAtciAocmF3KSBvcHRpb24uICBbQWRhbSBKYWNrc29uXQorICAgLSBudWtlIG9sZCBnbGliYyA1IHN1cHBvcnQgIFttYXhpbWlsaWFuIGF0dGVtc10KK2RvY3M6CisgICAtIFRPRE86IGFkZCByZXF1ZXN0IHRvIHVzZSBubF9sYW5naW5mbygpICBbS2FyZWwgWmFrXQorICAgLSBUT0RPIHVwZGF0ZSAgW0thcmVsIFpha10KKyAgIC0gYWRkIGEgbm90ZSBhYm91dCAvcHJvYy9zeXMva2VybmVsL3JhbmRvbS91dWlkICBbS2FyZWwgWmFrXQorICAgLSBhZGQgYSBub3RlIGFib3V0IGtwYXJ0eCB0byBUT0RPICBbS2FyZWwgWmFrXQorICAgLSBhZGQgZW50cnkgYWJvdXQgL3Byb2MvcGFydGl0aW9ucyBwYXJzaW5nICBbS2FyZWwgWmFrXQorICAgLSBhZGQgZmVhdHVyZS1yZXF1ZXN0cyBmcm9tIFJIIGJ1Z3ppbGxhIHRvIFRPRE8gbGlzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN1Z2dlc3Rpb24gYWJvdXQgVFo9VVRDIHRvIFRPRE8gZmlsZSAgW0thcmVsIFpha10KKyAgIC0gZml4IHR5cG8sIGNhbCg4KSAtLT4gY2FsKDEpICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgQVVUSE9SUyBmaWxlICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgVE9ETyBsaXN0ICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgdjIuMTUgUmVsZWFzZU5vdGVzICBbS2FyZWwgWmFrXQorZWx2dHVuZToKKyAgIC0gYWRkIE5MUyBzdXBwb3J0ICBbUGVkcm8gUmliZWlyb10KK2ZkaXNrOgorICAgLSAoYW5kIHBhcnR4KSByZW1vdmUgQkxLR0VUTEFTVFNFQ1QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCAweGFmIEhGUyAvIEhGUyBwYXJ0aXRpb24gdHlwZSAgW0thcmVsIFpha10KKyAgIC0gYWRkIHNvbWUgbWlzc2luZyBpbmNsdWRlcyAgW01hdHRoaWFzIEtvZW5pZ10KKyAgIC0gY2Fubm90IGNyZWF0ZSBwYXJ0aXRpb24gd2l0aCBzdGFydGluZyBiZXlvbmQgMSBUQiAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCBfUEFUSF9ERVZfKiBtYWNyb3MgIFtLYXJlbCBaYWtdCisgICAtIGRvZXNuJ3QgaGFuZGxlIGxhcmdlICg0S2lCKSBzZWN0b3JzIHByb3Blcmx5ICBbRXJpYyBTYW5kZWVuXQorICAgLSBkb24ndCBjaGVjayBmb3IgR1BUIHdoZW4gYXNrZWQgZm9yIGRpc2sgc2l6ZSBvbmx5ICBbS2FyZWwgWmFrXQorICAgLSBkb24ndCB1c2UgZ2V0X2xpbnV4X3ZlcnNpb24oKSBmb3Igbm9uLWxpbnV4ICBbU2FtdWVsIFRoaWJhdWx0XQorICAgLSBleGl0KDMpIG5lZWRzIHN0ZGxpYi5oIGluY2x1ZGUgIFttYXhpbWlsaWFuIGF0dGVtc10KKyAgIC0gZml4IG1hbiBwYWdlIHR5cG8gIFtLYXJlbCBaYWtdCisgICAtIGZpeCBtYXguIHB0bmFtZSAgW0thcmVsIFpha10KKyAgIC0gbm9uLWxpbnV4IHN1cHBvcnQgKEJMSyogYW5kIEhESU9fKikgIFtTYW11ZWwgVGhpYmF1bHRdCisgICAtIHJlYWQgL3Byb2MvcGFydGl0aW9ucyBpbiBtb3JlIHJvYnVzdCB3YXkgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBvYnNvbGV0ZSBpbmZvcm1hdGlvbiBmcm9tIG1hbiBwYWdlICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgdW5uZWNlc3NhcnkgZ2V0dGV4dCBjYWxsICBbS2FyZWwgWmFrXQorICAgLSByZW5hbWUgRU5BQkxFX0NNRFRBR1EgbWFjcm8gIFtLYXJlbCBaYWtdCisgICAtIHJvdW5kIHJlcG9ydGVkIHNpemVzIHJhdGhlciB0aGFuIHRydW5jYXRlICBbS2FyZWwgWmFrXQorICAgLSBzZXZlcmFsIHN0cmluZ3Mgd2l0aG91dCBnZXR0ZXh0IGNhbGxzICBbUGVkcm8gUmliZWlyb10KKyAgIC0gc3VnZ2VzdCBwYXJ0cHJvYmUoOCkgYW5kIGtwYXJ0eCg4KSB3aGVuIEJMS1JSUEFSVCBmYWlsZWQgIFtWaW5jZW50IERlZmZvbnRhaW5lcywgS2FyZWwgWmFrXQorICAgLSBzdXBwb3J0ICItYiA0MDk2IiBvcHRpb24gIFtLYXJlbCBaYWtdCisgICAtIHN1cHBvcnQgK2N5bGluZGVyIG5vdGF0aW9uICBbS2FyZWwgWmFrXQorICAgLSB1c2UgcmVhbCBzZWN0b3Igc2l6ZSBpbiB2ZXJpZnkoKSBhbmQgd2Fybl9jeWxpbmRlcnMoKSAgW0thcmVsIFpha10KKyAgIC0gd2FybiB1c2VycyBhYm91dCAyLjJUQiBkb3MgcGFydGl0aW9uIGxpbWl0ICBbS2FyZWwgWmFrXQorZmxvY2s6CisgICAtIEFsbG93IGxvY2sgZGlyZWN0b3J5ICBbQWxleGV5IEdsYWRrb3ZdCisgICAtIGFkZCBOTFMgc3VwcG9ydCwgcmVtb3ZlIHRhaWxpbmcgd2hpdGUtc3BhY2VzICBbS2FyZWwgWmFrXQorICAgLSBmaXggcHJpbnRmIGZvcm1hdCBlcnJvciBpbiB1c2FnZSgpICBbS2FyZWwgWmFrXQorICAgLSBzZWdmYXVsdHMgd2hlbiBmaWxlIG5hbWUgaXMgbm90IGdpdmVuICBbS2FyZWwgWmFrXQorZnNjazoKKyAgIC0gY29zbWV0aWMgY2hhbmdlcyAoTkxTLCBwYXRocywgLi4uKSAgW0thcmVsIFpha10KKyAgIC0gbGluayB3aXRoIGdlbmVyaWMgZnNwcm9iZSB3cmFwcGVyICBbS2FyZWwgWmFrXQorICAgLSBtb3ZlIGZzY2sgZnJvbSBlMmZzcHJvZ3MgdG8gdXRpbC1saW51eC1uZyAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIAcgZnJvbSB3YXJuaW5nIG1lc3NhZ2UgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSB1c2VsZXNzIGlmLWJlZm9yZS1mcmVlIHRlc3RzICBbS2FyZWwgWmFrXQorZnNjay5jcmFtZnM6CisgICAtIGFkZCBOTFMgc3VwcG9ydCAgW1BlZHJvIFJpYmVpcm9dCisgICAtIGZpeCBjb21waWxlciB3YXJuaW5nICBbS2FyZWwgWmFrXQorICAgLSBzZWdmYXVsdCB3aXRoIElOQ0xVREVfRlNfVEVTVFMgYW5kIG5vIC14IG9wdGlvbiAgW0thcmVsIFpha10KK2ZzY2subWluaXg6CisgICAtIGFkZCByZWdyZXNzaW9uIHRlc3QgIFtLYXJlbCBaYWtdCitnZXRvcHQ6CisgICAtIHJlbW92ZSB1bm5lY2Vzc2FyeSBpZmRlZnMgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSB1c2VsZXNzIGlmLWJlZm9yZS1mcmVlIHRlc3RzICBbS2FyZWwgWmFrXQoraHdjbG9jazoKKyAgIC0gYWRkIC0tc3lzdHogb3B0aW9uIHRvIHNldCBzeXN0ZW0gY2xvY2sgZnJvbSBpdHNlbGYgIFtTY290dCBKYW1lcyBSZW1uYW50XQorICAgLSBhbHdheXMgcmVhZHMgaGFyZHdhcmUgY2xvY2sgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgaGVscCBvdXRwdXQgYW5kIG1hbiBwYWdlICBbS2FyZWwgWmFrXQorICAgLSBjbG9jay5oIGlzIGluY2x1ZGVkIG1vcmUgdGhhbiBvbmNlICBbS2FyZWwgWmFrXQorICAgLSBkZWxheSBsb29wIGluIHNldF9oYXJkd2FyZV9jbG9ja19leGFjdCAgW0thbGV2IFNvaWtvbmVuXQorICAgLSBkb24ndCBvcGVuIC9kZXYvcnRjIHJlcGVhdGVkbHkgIFtLYXJlbCBaYWtdCisgICAtIG9taXQgd2FybmluZyBhYm91dCBkcmlmdCBpZiAtLW5vYWRqZmlsZSBnaXZlbiAgW01hdHRoaWFzIEtvZW5pZ10KKyAgIC0gcmVhZF9oYXJkd2FyZV9jbG9ja19ydGMoKSBuZWVkIHRvIHJldHVybiBlcnJvciBjb2RlcyAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlICJjbGkiIGFuZCAic3RpIiBmcm9tIGkzODYgQ01PUyBjb2RlICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgeDg2XzY0LXNwZWNpZmljIGJvZ29uICBbRGF2aWQgQnJvd25lbGxdCisgICAtIHNldmVyYWwgc3RyaW5ncyB3aXRob3V0IGdldHRleHQgY2FsbHMgIFtQZWRybyBSaWJlaXJvXQorICAgLSB1bnNoYWRvdyBhIGRpYWdub3N0aWMgcHJpbnRmICBbS2FsZXYgU29pa29uZW5dCisgICAtIHVzZSBjYXJlZnVsbHkgc3luY2hyb25pemVfdG9fY2xvY2tfdGljaygpIHJldHVybiBjb2RlcyAgW0thcmVsIFpha10KKyAgIC0gdXNlIHRpbWUgbGltaXQgZm9yIHN5bmNocm9uaXphdGlvbiBidXN5IHdhaXQgIFtLYXJlbCBaYWtdCitpbmNsdWRlOgorICAgLSBhZGQgbWlzc2luZyBmaWxlcyB0byBNYWtlZmlsZS5hbSAgW0thcmVsIFpha10KKyAgIC0gYml0b3BzIC0gZXhwbGljaXRseSBpbmNsdWRlIGVuZGlhbi5oICBbS2FyZWwgWmFrXQorICAgLSBtb3ZlIHN3YXBoZWFkZXIuaCB0byBpbmNsdWRlICBbTWF0dGhpYXMgS29lbmlnXQorICAgLSBzd2FwaGVhZGVyLmggaXMgbWlzc2luZyBpbiBNYWtlZmlsZS5hbSAgW0thcmVsIFpha10KKyAgIC0gdXNlIF9fQllURV9PUkRFUiByYXRoZXIgdGhhbiBBQyBzcGVjaWZpYyBXT1JEU19CSUdFTkRJQU4gIFtLYXJlbCBaYWtdCitpb25pY2U6CisgICAtIEV4dGVuZCB0aGUgbWFuIHBhZ2UgdG8gZXhwbGFpbiB0aGUgIm5vbmUiIGNsYXNzIGFuZCBjcHUtbmljZSBpbmhlcml0YW5jZSAgW0pha29iIFVudGVyd3VyemFjaGVyXQorICAgLSBhIGxpdHRsZSBjbGVhbnVwIG9mICJub25lIiBkZXNjcmlwdGlvbiAgW0thcmVsIFpha10KKyAgIC0gYWRkIC10IG9wdGlvbiAgW0x1Ym9taXIgS3VuZHJha10KKyAgIC0gYWRkIHN0cnRvbCgpIGNoZWNrcywgY2xlYW51cCB1c2FnZSB0ZXh0IGFuZCBtYW4gcGFnZSAgW0thcmVsIFpha10KKyAgIC0gY2hhbmdlIEplbnMgQXhib2UncyBlbWFpbCAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCBlcnJvciBtZXNzYWdlcywgYWRkIE5MUyBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIG1hbiBwYWdlICBbS2FyZWwgWmFrXQorICAgLSBmaXggdHlwbyBpbiBtYW5wYWdlICBbS2FyZWwgWmFrXQorICAgLSBsZXQgLXAgaGFuZGxlIG11bHRpcGxlIFBJRHMgIFtTdGVwaGFuIE1ha2FdCitpcGNtazoKKyAgIC0gYWRkIE5MUyBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBmaXggZXJyb3IgY29kZXMgYW5kIGVycm9yIG1lc3NhZ2VzICBbS2FyZWwgWmFrXQorICAgLSBuZXcgY29tbWFuZCAgW0hheWRlbiBKYW1lc10KK2lwY3M6CisgICAtIGFkanVzdCBzb21lIGZpZWxkIHBvc2l0aW9ucyBhbmQgd2lkdGhzIGZvciBjb3JyZWN0IGFsaWdubWVudCAgW0Jlbm5vIFNjaHVsZW5iZXJnXQorICAgLSBmaXggZXhpdCBjb2RlcywgcmVtb3ZlIHRhaWxpbmcgd2hpdGUtc3BhY2VzICBbS2FyZWwgWmFrXQorICAgLSB1bmdldHRleHRpemUgdGhlIHNwYWNpbmcgb2YgdGhlIHRhYmxlIGhlYWRlcnMgIFtCZW5ubyBTY2h1bGVuYmVyZ10KK2xkYXR0YWNoOgorICAgLSBkb24ndCBjb21waWxlIGZvciBub24tbGludXggc3lzdGVtcyAgW1NhbXVlbCBUaGliYXVsdF0KK2xpYjoKKyAgIC0gYWRkIF9fQllURV9PUkRFUiB0byBtZDUuYyAgW0thcmVsIFpha10KKyAgIC0gYWRkIGlzX3dob2xlX2Rpc2soKSBmcm9tIGZkaXNrIGNvZGUgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBwdHR5cGUuYyBmb3IgUFQgdHlwZXMgZGV0ZWN0aW9uICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdGVzdF9pc21vdW50ZWQgZm9yIHJlZ3Jlc3Npb24gdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYmxrZGV2LmMgY2xlYW4gdXAsIG5vbi1saW51eCBzdXBwb3J0ICBbU2FtdWVsIFRoaWJhdWx0XQorICAgLSBkbyBub3QgaW5jbHVkZSA8bGludXgvZmQuaD4gaW4gaXNtb3VudGVkLmMgIFtBdXJlbGllbiBKYXJub10KKyAgIC0gZml4IGZzcHJvYmUgd3JhcHBlciAoY29uc3QgY2hhciAqIGlzIG5vbnNlbnNlKSAgW0thcmVsIFpha10KKyAgIC0gZnNwcm9iZSAtIGZpeCBnY2Mgd2FybmluZyAgW0thcmVsIFpha10KKyAgIC0gZ2NjIHdhcm5pbmcgaW4gZml4IGZzcHJvYmUgIFtLYXJlbCBaYWtdCisgICAtIG1ha2Ugb3Blbl9kZXZpY2UoKSBvcHRpb25hbCBpbiBmc3Byb2JlLmMgIFtLYXJlbCBaYWtdCisgICAtIHB0dHlwZSAgYWRkIEJTRCBzdWJwYXJ0aXRpb25zIHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIHB0dHlwZSAgZml4IERPUyBkZXRlY3Rpb24gIFtLYXJlbCBaYWtdCisgICAtIHB0dHlwZSAtIGV4dGVuZCB0aGUgQVBJIHRvIHdvcmsgd2l0aCBmaWxlIGRlc2NyaXB0b3JzICBbS2FyZWwgWmFrXQorICAgLSB3aG9sZWRpc2sgLSBleHRlbmQgQVBJLCBhZGQgdGVzdCBwcm9ncmFtICBbS2FyZWwgWmFrXQorICAgLSBwdHR5cGUgLSBmaXggdHlwbyAgW0thcmVsIFpha10KK2xvZ2dlcjoKKyAgIC0gc2V2ZXJhbCBzdHJpbmdzIHdpdGhvdXQgZ2V0dGV4dCBjYWxscyAgW1BlZHJvIFJpYmVpcm9dCitsb2dpbjoKKyAgIC0gY2xlYW51cCBpbmNsdWRlcyAgW0thcmVsIFpha10KKyAgIC0gZml4IGNvbXBpbGVyIHdhcm5pbmcgKGludDMyIHRpbWUoKSBhcmcpICBbS2FyZWwgWmFrXQorICAgLSBmaXggd2FybmluZyAiZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0LWFsaWFzaW5nIHJ1bGVzIiAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlICJzd2l0Y2hpbmcgdXNlcnMiIG5vbnNlbnNlIGZyb20gbWFuIHBhZ2UgIFtLYXJlbCBaYWtdCisgICAtIHVzZSAicmVtb3RlIiBhcyBhIFBBTSBzZXJ2aWNlIG5hbWUgZm9yICJsb2dpbiAtaCIgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBvcGVuKDIpIHJhdGhlciB0aGVuIGFjY2VzcygyKSBmb3IgJEhPTUUvLmh1c2hsb2dpbiAgW0thcmVsIFpha10KK2xvZ2luLXV0aWxzOgorICAgLSBzZXZlcmFsIHN0cmluZ3Mgd2l0aG91dCBnZXR0ZXh0IGNhbGxzICBbUGVkcm8gUmliZWlyb10KK2xvc2V0dXA6CisgICAtIGFkZCB3YXJuaW5nIGFib3V0IHJlYWQtb25seSBtb2RlICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbiB1cCBjb2RlIGFyb3VuZCBMT19GTEFHU19BVVRPQ0xFQVIgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgbWFuIHBhZ2UgIFtLYXJlbCBaYWtdCisgICAtIGRldGFjaCBtb3JlIGRldmljZXMgYnkgIi1kIDxsb29wPiBbPGxvb3A+IC4uXSIgIFtLYXJlbCBaYWtdCisgICAtIGxvb3BsaXN0XyogcmVmYWN0b3JpbmcsIHJlbW92ZSBzY2FuZGlyKCkgIFtLYXJlbCBaYWtdCisgICAtIG1pc3NpbmcgRUJVU1kgZXJyb3IgaGludCBtZXNzYWdlICBbS2FyZWwgWmFrXQorICAgLSBtb3VudCBlbmRsZXNzIGxvb3AgaGFuZyAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIGRlcGVuZGVuY2Ugb24gbWlub3IgbnVtYmVycyAgW0thcmVsIFpha10KKyAgIC0gc2V2ZXJhbCBzdHJpbmdzIHdpdGhvdXQgZ2V0dGV4dCBzdHJpbmdzICBbUGVkcm8gUmliZWlyb10KKyAgIC0gdHJ5IHRvIHNldCB1cCBsb29wIHJlYWRvbmx5IGlmIEVBQ0NFUyAgW01hdHRoaWFzIEtvZW5pZ10KK2xzY3B1OgorICAgLSAtLXN5c3Jvb3Qgb3B0aW9uIGFuZCBzdGFibGUgY2FjaGUgb3V0cHV0ICBbQ2FpIFFpYW5dCisgICAtIGFkZCBIeXBlcnZpc29yIGRldGVjdGlvbiAgW0thcmVsIFphaywgS3kgU3Jpbml2YXNhbl0KKyAgIC0gbmV3IGNvbW1hbmQgIFtDYWkgUWlhbiwgS2FyZWwgWmFrXQorICAgLSByZWdyZXNzaW9uIHRlc3RzICBbQ2FpIFFpYW5dCisgICAtIHJldHVybiBFWElUX1NVQ0NFU1MgYXQgdGhlIGVuZCAgW01hdHRoaWFzIEtvZW5pZ10KK21pc2MtdXRpbHM6CisgICAtIHdyaXRlIGluY2x1ZGUgc2lnbmFsLmggZGlyZWN0bHkgIFttYXhpbWlsaWFuIGF0dGVtc10KK21rZnMuY3JhbWZzOgorICAgLSBhZGQgZW5kaWFubmVzcyBzdXBwb3J0IHRvIGNyYW1mcyB0b29scyAgW1JveSBQZWxlZF0KKyAgIC0gbG93ZXIgbWVtb3J5IHJlcXVpcmVtZW50cyBmb3IgbGF5b3V0cyB3aXRoIGR1cGxpY2F0ZSBmaWxlcyAgW1JveSBQZWxlZF0KKyAgIC0gc2V2ZXJhbCBzdHJpbmdzIHdpdGhvdXQgZ2V0dGV4dCBjYWxscyAgW1BlZHJvIFJpYmVpcm9dCitta2ZzLm1pbml4OgorICAgLSAoYW5kIGZzY2spIHJlbmFtZSBiaXRvcHMuaCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHJlZ3Jlc3Npb24gdGVzdCAgW0thcmVsIFpha10KKyAgIC0gZml4IHNpemUgZGV0ZWN0aW9uICBbTWF0dGhpYXMgS29lbmlnXQorICAgLSByZW1vdmUgbG9jYWwgaW1wbGVtZW50YXRpb24gb2Yge3NldCxjbHJ9Yml0ICBbS2FyZWwgWmFrXQorbWtzd2FwOgorICAgLSBjbGVhbiB1cCBtYW4gcGFnZSAgW0thcmVsIFpha10KKyAgIC0gaGFuZGxlIDJeMzIgcGFnZXMgIFtIdWdoIERpY2tpbnNdCisgICAtIG5vbi1saW51eCBzdXBwb3J0ICBbU2FtdWVsIFRoaWJhdWx0XQorICAgLSByZW1vdmUgdjAgc3dhcCBzcGFjZSBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSB6YXAgYm9vdGJpdHMgIFtLYXJlbCBaYWtdCittb3JlOgorICAgLSBkb250IHVzZSBhLm91dC5oICBbTWlrZSBGcnlzaW5nZXJdCisgICAtIG1pbm9yIGZpeGVzIHRvIG1hZ2ljKCkgIFtKYW1lcyBZb3VuZ21hbl0KK21vdW50OgorICAgLSBBZGQgc3RyaWN0YXRpbWUgc3VwcG9ydCAgW01hdHRoZXcgR2FycmV0dF0KKyAgIC0gYWRkIGRvY3MgYWJvdXQgdXRmOD0wIGZvciB2ZmF0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgaV92ZXJzaW9uIHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBpbmZvIGFib3V0IC9wcm9jL21vdW50cyB0byBtb3VudC4xICBbS2FyZWwgWmFrXQorICAgLSBhZGQgaW5mbyBhYm91dCBzZW1hbnRpY3Mgb2YgcmVhZC1vbmx5IG1vdW50IHRvIG1vdW50LjggIFtLYXJlbCBaYWtdCisgICAtIGFkZCBpbmZvIGFib3V0IHR6PVVUQyBvcHRpb24gZm9yIEZBVCB0byBtb3VudC44ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbm9yZWFsdGltZSB0byBtb3VudC44ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgcm9vdGNvbnRleHQ9IFNFTGludXggbW91bnQgb3B0aW9uICBbS2FyZWwgWmFrXQorICAgLSBhZGQgc2hvcnRvcHRpb25zIGZvciBiaW5kLCBtb3ZlIGFuZCByYmluZCAgW21heGltaWxpYW4gYXR0ZW1zXQorICAgLSBjbGVhbiB1cCBTUEVDIGNhbm9uaWNhbGl6YXRpb24gIFtLYXJlbCBaYWtdCisgICAtIGNsZWFucyB1cCBtb3VudCg4KSB0cm9mZiBtYXJrdXAgIFtTYW0gVmFyc2hhdmNoaWtdCisgICAtIGNyZWF0ZSBzZXBhcmF0ZSBzZWN0aW9uIGZvciBmcy1pbmRlcGVuZGVudCBvcHRpb25zIGluIG1vdW50LjggIFtLYXJlbCBaYWtdCisgICAtIGRvY3VtZW50IG5ld2luc3RhbmNlIGFuZCBwdG14bW9kZSBvcHRpb25zIHRvIGRldnB0cyAgW1N1a2FkZXYgQmhhdHRpcHJvbHVdCisgICAtIGZpbmFsaXplIHN1cHBvcnQgb2YgcXVvdGVkIExBQkVMcy9VVUlEcyAgW0thcmVsIFpha10KKyAgIC0gZml4IGdjYyB3YXJuaW5nICh2YXJpYWJsZSB1c2VkIHVuaW5pdGlhbGl6ZWQpICBbS2FyZWwgWmFrXQorICAgLSBmaXggbW91bnRfc3RhdGljX0xEQUREICBbS2FyZWwgWmFrXQorICAgLSBmaXggdHlwbyAgW0d1YW4gWGluXQorICAgLSBmaXggdHlwbyAgW0thcmVsIFpha10KKyAgIC0gZml4IHR5cG8gaW4gdm9sdW1lX2lkIGNvZGUgIFtLYXJlbCBaYWtdCisgICAtIGdlbmVyaWMgYmxraWQvdm9sdW1lX2lkIHdyYXBwZXIsIHVzZSBibGtpZF9ldmFsdWF0ZV8qICBbS2FyZWwgWmFrXQorICAgLSBpbmZvcm0gYWJvdXQgVUlEIGFuZCBlVUlEIHdoZW4gdmVyYm9zZSA+IDIgIFtLYXJlbCBaYWtdCisgICAtIG1ha2UgZmlsZV90IFNFTGludXggd2FybmluZyBvcHRpb25hbCBhbmQgc2hvcnRlciAgW0thcmVsIFpha10KKyAgIC0gbW92ZSByZWFscGF0aC5jIGNvZGUgdG8gbGliLyAgW0thcmVsIFpha10KKyAgIC0gbXRhYiBjcmVhdGVkIG11bHRpcGxlIHRpbWVzIHdpdGggLWEgb3B0aW9uICBbS2FyZWwgWmFrXQorICAgLSBub24tc2V0dWlkIChQT1NJWCBmaWxlIGNhcGFiaWxpdGllcykgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIGxpbmsgdG8gbmFtZXN5cy5jb20gIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBzcHVyaW91cyBuZXdsaW5lIGZyb20gbW91bnQuOCAgW01pa2UgRnJ5c2luZ2VyXQorICAgLSByZW1vdmUgdXNlbGVzcyBpZi1iZWZvcmUtZnJlZSB0ZXN0cyAgW0thcmVsIFpha10KKyAgIC0gcmVvcmRlciBsaXN0IG9mIG9wdGlvbnMgaW4gbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gcmV0cnkgb24gRU5PTUVESVVNICBbTWF0dGhpYXMgS29lbmlnXQorICAgLSBzL01PVU5URUQvX1BBVEhfTU9VTlRFRC8gIFttYXhpbWlsaWFuIGF0dGVtc10KKyAgIC0gc3VnZ2VzdCB0byB1c2UgYmxvY2tkZXYgLS1zZXRybyByYXRoZXIgdGhhbiBsb3NldHVwICBbS2FyZWwgWmFrXQorICAgLSBzdW5kcmllcy5oIGFkZCBrbGliYyBzdXBwb3J0ICBbbWF4aW1pbGlhbiBhdHRlbXNdCisgICAtIHN5bmMgRkFUIGluZm8gaW4gbW91bnQuOCB3aXRoIERvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvdmZhdC50eHQgIFtLYXJlbCBaYWtdCisgICAtIHN5bmMgdG1wZnMgaW5mbyBpbiBtb3VudC44IHdpdGggRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy90bXBmcy50eHQgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBzdWJzZWN0aW9ucyBpbiBtb3VudC44IERFU0NSSVBUSU9OICBbS2FyZWwgWmFrXQorICAgLSB3YXJuIG9uICJmaWxlX3QiIHNlbGludXggY29udGV4dCAgW0thcmVsIFpha10KK25hbWVpOgorICAgLSBhZGQgLS1vd25lcnMgYW5kIC0tbG9uZyBvcHRpb25zICBbS2FyZWwgWmFrXQorICAgLSBhZGQgLS12ZXJ0aWNhbCBvcHRpb24gIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtaXNzaW5nIG9wdGlvbnMgdG8gbmFtZWkuMSAgW0thcmVsIFpha10KKyAgIC0gZG9uJ3QgZHVwbGljYXRlICcvJyBkaXJlY3RvcnkgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBidWZmZXIgb3ZlcmZsb3cgIFtLYXJlbCBaYWtdCisgICAtIG5ldyByZS13cml0dGVuIHZlcnNpb24gIFtLYXJlbCBaYWtdCitwYXJ0eDoKKyAgIC0gY29udmVydCBoYXJkIHNlY3RvciBzaXplIHRvIDUxMi1ieXRlIHNlY3RvcnMgIFtLYXJlbCBaYWtdCisgICAtIGRvbid0IGR1cGxpY2F0ZSBsaWIvYmxrZGV2LmMgY29kZSAgW0thcmVsIFpha10KKyAgIC0gZG9uJ3QgcmVkZWNsYXJlIGRhZGRyX3QgIFttYXhpbWlsaWFuIGF0dGVtc10KKyAgIC0gdXNlIGlvY3RscyBmcm9tIGxpYi9ibGtkZXYuYyAgW0thcmVsIFpha10KK3BnOgorICAgLSBhZGQgZ2V0dGV4dCBjYWxsIGZvciB0aGUgaGVscCBzdHJpbmcgIFtLYXJlbCBaYWtdCisgICAtIHNldmVyYWwgc3RyaW5ncyB3aXRob3V0IGdldHRleHQgY2FsbHMgIFtQZWRybyBSaWJlaXJvXQorcGl2b3Rfcm9vdDoKKyAgIC0gY2xlYW4gdXAgIFtLYXJlbCBaYWtdCitwbzoKKyAgIC0gYWRkIHpoX0NOLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbUmF5IFdhbmddCisgICAtIG1lcmdlIGNoYW5nZXMgIFtLYXJlbCBaYWtdCisgICAtIHJld3JpdGUgdXBkYXRlLXBvdGZpbGVzIHNjcmlwdCAgW0thcmVsIFpha10KKyAgIC0gdXBkYXRlIFBPVEZJTEVTLmluICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgY3MucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtQZXRyIFBpc2FyXQorICAgLSB1cGRhdGUgZmkucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtMYXVyaSBOdXJtaV0KKyAgIC0gdXBkYXRlIGZyLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbTmljb2xhcyBQcm92b3N0XQorICAgLSB1cGRhdGUgaWQucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtBcmlmIEUuIE51Z3JvaG9dCisgICAtIHVwZGF0ZSBqYS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW01ha290byBLYXRvXQorICAgLSB1cGRhdGUgbGlzdCBvZiAuYyBmaWxlcyAgW0thcmVsIFpha10KKyAgIC0gdXBkYXRlIG5sLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbQmVubm8gU2NodWxlbmJlcmddCisgICAtIHVwZGF0ZSB2aS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0NseXRpZSBTaWRkYWxsXQorcmF3OgorICAgLSBhZGQgTkxTIHN1cHBvcnQgIFtQZWRybyBSaWJlaXJvXQorICAgLSBkZWZhdWx0IHRvIC9kZXYvcmF3L3Jhd2N0bCAgW0thcmVsIFpha10KK3JkZXY6CisgICAtIGNsZWFudXAgaW5jbHVkZXMgIFtLYXJlbCBaYWtdCityZWFkcHJvZmlsZToKKyAgIC0gc2V2ZXJhbCBzdHJpbmdzIHdpdGhvdXQgZ2V0dGV4dCBjYWxscyAgW1BlZHJvIFJpYmVpcm9dCityZW5pY2U6CisgICAtIGFkZCAtbiBvcHRpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBQT1NJWCAgW0thcmVsIFpha10KK3J0Y3dha2U6CisgICAtIGFkZCBtaXNpbmcgLlJFIHRvIHRoZSBtYW4gcGFnZSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCByZXR1cm4gY29kZXMgIFtLYXJlbCBaYWtdCisgICAtIGV4cGxhaW4gc3VwcG9ydGVkIG1vZGVzIGluIHJ0Y3dha2UuOCAgW0thcmVsIFpha10KKyAgIC0gcHJlZmVyIFJUQ19XS0FMTV9TRVQgb3ZlciBSVENfQUxNX1NFVCAgW0dhYnJpZWwgQnVydF0KKyAgIC0gc3VwcG9ydCBub3Qgc3VzcGVuZGluZyAgW01hcmNvIGQnSXRyaV0KK3NjcmlwdDoKKyAgIC0gZG9uJ3QgZmx1c2ggaW5wdXQgd2hlbiBzdGFydGluZyBzY3JpcHQgIFtBbmRyZXcgTWNHaWxsXQorc2NyaXB0cmVwbGF5OgorICAgLSBuZXcgaW1wbGVtZW50YXRpb24gaXMgb3V0LW9mLXN5bmMgIFtLYXJlbCBaYWtdCitzZWxpbnV4OgorICAgLSBpc19zZWxpbnV4X2VuYWJsZWQoKSByZXR1cm5zIDAsIDEgYW5kIC0xICBbS2FyZWwgWmFrXQorc2V0dGVybToKKyAgIC0gZml4IC1ibGFuayBtYW4gcGFnZSAgW0thcmVsIFpha10KK3NmZGlzazoKKyAgIC0gZml4IENvbXBpbGF0aW9uIEVycm9yICBbQ0FJIFFpYW5dCisgICAtIGZpeCBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cgIFtLYXJlbCBaYWtdCisgICAtIHByaW50IHZlcnNpb24gc2hvdWxkIGVuZCB3aXRoIGEgbmV3bGluZSAgW0RlbmlzIENoZW5nUnFdCitzaW1tcGxlaW5pdDoKKyAgIC0gZml4IGdjYyB3YXJuaW5nIChidWZmZXIgc2l6ZSBpbiByZWFkKCkpICBbS2FyZWwgWmFrXQorc2ltcGxlaW5pdDoKKyAgIC0gY2xlYW51cCBnZXR0ZXh0IGNhbGxzLCB1c2Ugc25wcmludGYoKSAgW0thcmVsIFpha10KK3N3YXBvbjoKKyAgIC0gLWEgaGFzIHRvIGNvbXBsYWluLCBmaXggbGVha3MgIFtLYXJlbCBaYWtdCisgICAtIGFkZCAtZi8tLWZpeHBnc3ogb3B0aW9uICBbS2FyZWwgWmFrXQorICAgLSBhZGQgZXJyb3IgbWVzc2FnZXMgZm9yIGxzZWVrIGFuZCB3cml0ZSAgW0thcmVsIFpha10KKyAgIC0gYWRkIGdlbmVyaWMgc3dhcF9nZXRfaGVhZGVyKCkgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzd2FwIGZvcm1hdCBkZXRlY3Rpb24gYW5kIHBhZ2VzaXplIGNoZWNrICBbTWF0dGhpYXMgS29lbmlnLCBPbGFmIEhlcmluZ10KKyAgIC0gY2xlYW51cCBtYW4gcGFnZSAgW0thcmVsIFpha10KKyAgIC0gZG9fc3dhcG9uKCkgcmVmYWN0b3JpbmcgKG1vdmUgc3RhdCgpIGNoZWNrcykgIFtLYXJlbCBaYWtdCisgICAtIGRvX3N3YXBvbigpIHJlZmFjdG9yaW5nIChzcGxpdCBpbnRvIHR3byBmdW5jdGlvbnMpICBbS2FyZWwgWmFrXQorICAgLSBmaXggdHlwbyBzL3dhcm4vd2FybngvICBbS2FyZWwgWmFrXQorICAgLSBmaXggd29yZGluZyBpbiBtYW4gcGFnZSAgW0thcmVsIFpha10KKyAgIC0gcmV3cml0ZSBTV1NVU1BFTkQgc2lnbmF0dXJlIHJhdGhlciB0aGFuIGV4ZWMgbWtzd2FwICBbS2FyZWwgWmFrXQorICAgLSBzaW1wbGlmeSBzcGVjIHRvIGRldm5hbWUgY29udmVyc2lvbiAgW0thcmVsIFpha10KKyAgIC0gdXNlIGVyci5oIHN0dWZmICBbS2FyZWwgWmFrXQordGFpbGY6CisgICAtIHVuaXN0ZC5oIGlzIGluY2x1ZGVkIG1vcmUgdGhhbiBvbmNlICBbS2FyZWwgWmFrXQordGVzdHM6CisgICAtIGFkZCAiYnl0ZS1vcmRlciIgdG8gaGVscGVycy90ZXN0X3N5c2luZm8gIFtLYXJlbCBaYWtdCisgICAtIGFkZCAuL3J1bi5zaCA8Y29tcG9uZW50PiAgW0thcmVsIFpha10KKyAgIC0gYWRkIE1ENSByZWdyZXNzaW9uIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBmc2NrIGlzbW91bnRlZCByZWcudGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGxpYmJsa2lkIHJlZ3Jlc3Npb24gdGVzdHMgKGltYWdlcyBmcm9tIGUyZnNwcm9ncykgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBsc2NwdSgxKSB0ZXN0IGZvciBmdWxsdmlydC4gWGVuIHg4Nl82NCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGxzY3B1KDEpIHRlc3QgZm9yIHBhcmF2aXJ0LiBYZW4gaTM4NiAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1kNSByZWdyZXNzaW9uIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtay1sc2NwdS1pbnB1dC5zaCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN1cHBvcnQgZm9yIHN1YmRpcnMgdG8gYmFzaWMgdGVzdCBmdW5jdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzdXBwb3J0IGZvciBzdWJ0ZXN0cyAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN3YWJOKCkgcmVncmVzc2lvbiB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBjaGVjayBhbHNvIGZvciAvZGV2L2xvb3AvWCAgW0thcmVsIFpha10KKyAgIC0gY2htb2QgLXggdHMvbHNjcHUvbWstaW5wdXQuc2ggIFtLYXJlbCBaYWtdCisgICAtIGNsZWFuIHVwIHRoZSB0ZXN0aW5nIHNjcmlwdHMgIFtBbcOpcmljbyBXYW5nXQorICAgLSBjbGVhbnVwIGxzY3B1IHJlZy50ZXN0cyAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0cy9iaXRvcHMgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgdHMvY2FsIHNjcmlwdHMgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgdHMvY29sIHNjcmlwdHMgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgdHMvY3JhbWZzL2ZzY2stZW5kaWFubmVzcyAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0cy9jcmFtZnMvbWtmcy1lbmRpYW5uZXNzICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIHRzL2h3Y2xvY2sgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgdHMvaXBjcyAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0cy9sb2dpbiAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0cy9sb29rICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIHRzL21kNSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0cy9taW5peCAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0cy9tb3VudCAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0cy9uYW1laSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0cy9wYXRocyAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0cy9zY3JpcHQgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgdHMvc3dhcG9uICBbS2FyZWwgWmFrXQorICAgLSBjcmVhdGUgZXhwZWN0ZWQvJChjb21wb25lbnQpLyQodGVzdG5hbWUpICBbS2FyZWwgWmFrXQorICAgLSBjcmVhdGUgc3ViZGlycyBmb3IgdGVzdCBzY3JpcHRzICBbS2FyZWwgWmFrXQorICAgLSBkZXRlY3QgbGlidm9sdW1lX2lkIHdoZW4gbW91bnQoOCkgaXMgY29tcGlsZWQgIFtLYXJlbCBaYWtdCisgICAtIGRpc2FibGUgYmxraWQgdGVzdHMgd2hlbiBibGtpZCg4KSBpcyBub3QgY29tcGlsZWQgIFtLYXJlbCBaYWtdCisgICAtIGRpc2FibGUgc3VpZCBtb3VudCB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBmaXggLXJlZ2V4IGluIHJ1bi5zaCAgW0thcmVsIFpha10KKyAgIC0gZml4IFRTXyogcGF0aHMgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBmaWxlIG5hbWUgaXMgdG9vIGxvbmcgKG1heCA5OSkgLSBndGFyICBbS2FyZWwgWmFrXQorICAgLSBmaXggb3V0cHV0IHN0cmluZyAgW0thcmVsIFpha10KKyAgIC0gZml4IHRoZSBmaW5hbCBtZXNzYWdlIGZvciBzdWJ0ZXN0cyAgW0thcmVsIFpha10KKyAgIC0gZml4IHR5cG8gaW4gbG93LXByb2JlIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGZpeCB0eXBvIGluIGxzY3B1IHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIG1vdmUgc29tZSBnZW5lcmljIHN0dWZmIGZyb20gdHNfaW5pdCgpIHRvIGEgbmV3IHRzX2luaXRfZW52KCkgIFtLYXJlbCBaYWtdCisgICAtIHJlZnJlc2ggTWFrZWZpbGUuYW0gKGFkZCBtaXNzaW5nIGxzY3B1IHRlc3RzKSAgW0thcmVsIFpha10KKyAgIC0gcmVmcmVzaCBhbmQgY2xlYW51cCBjcmFtZnMvbWtmcyAgW3Jvb3RdCisgICAtIHJlZnJlc2ggY2FsKDEpIGV4cGVjdGVkIG91dHB1dHMgIFtLYXJlbCBaYWtdCisgICAtIHJlZnJlc2ggZXhwZWN0ZWQgbW91bnQoOCkgb3V0cHV0cyAgW0thcmVsIFpha10KKyAgIC0gcmVmcmVzaCBpcGNzIGV4cGVjdGVkIG91dHB1dHMgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBpbnB1dCBkaXJlY3RvcnkgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBvYnNvbGV0ZSBzdHVmZiBmcm9tIE1ha2VmaWxlLmFtICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgdW5leHBlY3RlZCBleGl0IGZyb20gKl9zdWJ0ZXN0IGZ1bmN0aW9ucyAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIHVzZWxlc3MgcmV0dXJuIHZhbHVlIGNoZWNrcyBpbiB0ZXN0aW5nIHNjcmlwdHMgIFtBbcOpcmljbyBXYW5nXQorICAgLSB1cGRhdGUgbmFtZWkgcmVnLnRlc3QgIFtLYXJlbCBaYWtdCisgICAtIHdlIG5lZWRuJ3QgYmxraWQuc2ggIFtLYXJlbCBaYWtdCit0b29sczoKKyAgIC0gYWRkIGNoZWNrY29uZmlnIHRvIHRvcC1sZXZlbCBNYWtlZmlsZSAgW0thcmVsIFpha10KKyAgIC0gYWRkIGNoZWNraW5jbHVkZXMucGwgKGZyb20gbGludXgga2VybmVsKSAgW0thcmVsIFpha10KKyAgIC0gcmVuYW1lIGNvZGVjaGVjay1jb25maWcgdG8gY2hlY2tjb25maWcuc2ggIFtLYXJlbCBaYWtdCit1bW91bnQ6CisgICAtIGNoZWNrIGZvciBvdmVybGFpZCBtb3VudHMgIFtHdWFuIFhpbl0KKyAgIC0gY2xlYW51cCBnZWZzX2J5X3NwZWNkaXIoKSAgW0thcmVsIFpha10KKyAgIC0gaW1wcm92ZSAiLWQiIG9wdGlvbiBmb3IgYXV0b2NsZWFyIGxvb3BzICBbS2FyZWwgWmFrXQorICAgLSBubyBjaGVja2luZyBtb3VudCBwb2ludCByZW1vdmFsICBbR3VhbiBYaW5dCit3aGVyZWlzOgorICAgLSBpbmNsdWRlIGRpcmVudC5oIGluc3RlYWQgc3lzL2Rpci5oICBbbWF4aW1pbGlhbiBhdHRlbXNdCit3cml0ZToKKyAgIC0gZG9lc24ndCBjaGVjayBmb3IgdHR5IGdyb3VwICBbS2FyZWwgWmFrXQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kb2NzL3YyLjE2LVJlbGVhc2VOb3RlcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2RvY3MvdjIuMTYtUmVsZWFzZU5vdGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyMDRjNjQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kb2NzL3YyLjE2LVJlbGVhc2VOb3RlcwpAQCAtMCwwICsxLDE4MiBAQAorCitVdGlsLWxpbnV4LW5nIDIuMTYgUmVsZWFzZSBOb3RlcyAoMTUtSnVsLTIwMDkpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1JlbGVhc2UgaGlnaGxpZ2h0cworLS0tLS0tLS0tLS0tLS0tLS0tCisKK2xpYnV1aWQsIHV1aWRnZW4oMSkgYW5kIHV1aWRkKDgpOgorICAtIHRoZSBsaWJ1dWlkIGxpYnJhcnkgaGFzIGJlZW4gbW92ZWQgZnJvbSBlMmZzcHJvZ3MgdG8gdXRpbC1saW51eC1uZworCitzd2l0Y2hfcm9vdDoKKyAgLSB0aGlzIE5FVyBDT01NQU5EIGFsbG93cyB0byBzd2l0Y2ggdG8gYW5vdGhlciBmaWxlc3lzdGVtIGFzIHRoZSByb290CisgICAgb2YgdGhlIG1vdW50IHRyZWUuCisKK21vdW50LCB1bW91bnQsIGZzY2s6CisgIC0gRE9FUyBOT1QgU1VQUE9SVCBsaW5raW5nIGFnYWluc3Qgb2Jzb2xldGUgbGlidm9sdW1lX2lkIChmcm9tIHVkZXYpCisKK2xpYmJsa2lkOgorICAtIGRldmVsb3BtZW50IGZpbGVzICguc28sIC5hLCAuLi4pIGhhdmUgYmVlbiBtb3ZlZCBmcm9tIC9saWIgdG8gL3Vzci9saWIuCisKKworU3RhYmxlIG1haW50ZW5hbmNlIHJlbGVhc2VzIGJldHdlZW4gdjIuMTUgYW5kIHYyLjE2CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordXRpbC1saW51eC1uZyAyLjE1LjEgWzEwLUp1bi0yMDA5XQorCisgKiBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNS92Mi4xNS4xLVJlbGVhc2VOb3RlcworICAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTUvdjIuMTUuMS1DaGFuZ2VMb2cKKworCitDaGFuZ2VMb2cgYmV0d2VlbiB2Mi4xNSBhbmQgdjIuMTYKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgRm9yIG1vcmUgZGV0YWlscyBzZWUgQ2hhbmdlTG9nIGZpbGVzIGF0OgorIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE2LworCisKK2J1aWxkLXN5czoKKyAgIC0gYWRkIC0tZGlzYWJsZS1saWJibGtpZCwgcmVtb3ZlIHZvbHVtZV9pZCBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgLS1kaXNhYmxlLXN3aXRjaF9yb290ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgLS1kaXNhYmxlLXRscyAgW0thcmVsIFpha10KKyAgIC0gYWRkIC0tZGlzYWJsZS11dWlkZCAgW0thcmVsIFpha10KKyAgIC0gYWRkIFVUSUxfe1NFVCxSRVNUT1JFfV9GTEFHUyAgW0thcmVsIFpha10KKyAgIC0gY2hlY2sgZm9yIG9wZW5hdCgpIGFuZCBsaW51eCBmb3Igc3dpdGNoX3Jvb3QgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgbGlidXVpZCBzdHVmZiAgW0thcmVsIFpha10KKyAgIC0gY29tcGxldGUgL2xpYnMgdG8gL3NobGlicyByZW5hbWUgIFtLYXJlbCBaYWtdCisgICAtIGVuYWJsZSBmc2NrIGJ5IGRlZmF1bHQgIFtLYXJlbCBaYWtdCisgICAtIGZpeCAibWFrZSAtQyIgYnVnICBbS2FyZWwgWmFrXQorICAgLSBmaXggLS1kaXNhYmxlLXV1aWRkICBbS2FyZWwgWmFrXQorICAgLSBmaXggYmxraWQuaCBpbmNsdWRlIGZvciBvbGQgZTJmc3Byb2dzICBbS2FyZWwgWmFrXQorICAgLSBmaXggZXhlYy9kYXRhIGluc3RhbGwgaG9va3MgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBoZWFkZXJzIGluIG1rc3dhcCBhbmQgbGliYmxraWQgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBsaWJ1dWlkIE1ha2VmaWxlLmFtICBbS2FyZWwgWmFrXQorICAgLSBmaXggbGlidXVpZCBhbmQgbGliYmxraWQgdmVyc2lvbi1pbmZvICBbS2FyZWwgWmFrXQorICAgLSBmaXggdHlwbyBmcm9tIDMwNjg4ZGRlNTVmNjM3YzliOTg0ODA5YzY4NWI2MTM3OGI4MjgwNWYgIFtSb2JlcnQgRsO2cnN0ZXJdCisgICAtIGltcHJvdmUgJGxpYmRpcm5hbWUgZGVmaW5pdGlvbiAgW0thcmVsIFpha10KKyAgIC0gaW1wcm92ZSBzeW1saW5rcyBjcmVhdGlvbiBpbiBzaGxpYnMvICBbS2FyZWwgWmFrXQorICAgLSByZWxlYXNlKysgKHYyLjE2LXJjMSkgIFtLYXJlbCBaYWtdCisgICAtIHJlbGVhc2UrKyAodjIuMTYtcmMyKSAgW0thcmVsIFpha10KKyAgIC0gcmVuYW1lIC9saWJzIHRvIC9zaGxpYnMgIFtLYXJlbCBaYWtdCisgICAtIHJlbmFtZSB0byBfZXhlY2RpciAgW0thcmVsIFpha10KKyAgIC0gcmV2ZXJzZSBzaGxpYnMgaW5zdGFsbGF0aW9uICBbS2F5IFNpZXZlcnNdCitidWlsZHN5czoKKyAgIC0gbW92ZSAkdXNye2JpbixzYmluLGxpYn1leGVjZGlyIGRlZmluaXRpb24gdG8gLi9jb25maWd1cmUgIFtLYXJlbCBaYWtdCitjYWw6CisgICAtIEhpZ2hsaWdodCB0b2RheSBldmVuIHdoZW4gbW9udGggb3IgeWVhciBzcGVjaWZpZWQgIFtSYWplZXYgVi4gUGlsbGFpXQorICAgLSB1Q2xpYmMgaGFzIGxhbmdpbmZvLmggYnV0IG5vdCBfTkxfVElNRV9XRUVLXzFTVERBWS4gIFtUb20gUHJpbmNlXQorY2hydDoKKyAgIC0gZG9uJ3QgYXNzdW1lIFNDSEVEX0JBVENIIGFuZCBTQ0hFRF9JRExFIGV4aXN0ICBbQXVyZWxpZW4gSmFybm9dCitkb2NzOgorICAgLSBhZGQgbWlzc2luZyBjb21tYW5kcy9wcm9qZWN0cyB0byBBVVRIT1JTIGZpbGUgIFtLYXJlbCBaYWtdCisgICAtIGFkZCB2Mi4xNiBSZWxlYXNlTm90ZXMgIFtLYXJlbCBaYWtdCisgICAtIHJlZnJlc2ggVE9ETyBsaXN0ICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgZXhhbXBsZS5maWxlcy9yY1subG9jYWxdICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgb2Jzb2xldGUgaW5mb3JtYXRpb24gZnJvbSBmc3RhYiBleGFtcGxlICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgQVVUSE9SUyBmaWxlICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgdjIuMTYgUmVsZWFzZU5vdGVzICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgdjIuMTYtUmVsZWFzZU5vdGVzICBbS2FyZWwgWmFrXQorZmRpc2s6CisgICAtIChhbmQgY2ZkaXNrKSBmaXggdG8gYmUgY29uc2lzdGVudCBhYm91dCBtYXhpbXVtIGhlYWRzICBbQ2hyaXMgV2ViYl0KKyAgIC0gYWRkIHNpbXBsZSB0ZXN0IGZvciBkb3NsYWJlbCBzdHVmZiAgW1pkZW5layBCZWhhbl0KK2h3Y2xvY2s6CisgICAtIGZpeCBtaXNtYXRjaGVkIHBvcGVuL2ZjbG9zZS4gIFtKb2huIEtlZXBpbmddCitpbmNsdWRlOgorICAgLSBjbGVhbiB1cCBfUEFUSF9ERVZfKiBtYWNyb3MgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBfUEFUSF9ERVYgIFtLYXJlbCBaYWtdCitpb25pY2U6CisgICAtIEFsbG93IHNldHRpbmcgdGhlIG5vbmUgY2xhc3MgIFtKYWtvYiBVbnRlcnd1cnphY2hlcl0KK2xkYXR0YWNoOgorICAgLSBhZGQgTl9QUFMgc3VwcG9ydCAgW1RpbG1hbiBTY2htaWR0XQorbGliYmxraWQ6CisgICAtIGFkZCBkZXZpY2UtbWFwcGVyIHNuYXBzaG90IGNvdyBkZXZpY2UgcHJvYmUgIFtNaWxhbiBCcm96XQorICAgLSBhZGQgaW5zdGFsbC1ob29rIGZvciBsaWJ1dWlkLlthLHNvXSBkZXZlbCBmaWxlcyAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN0ZGFyZy5oIHRvIGJsa2lkUC5oICBbS2FyZWwgWmFrXQorICAgLSBibGtpZF9kb19zYWZlcHJvYmUoKSBoYXMgdG8gYmUgdG9sZXJhbnQgdG8gUkFJRHMgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgZGVidWcgbWVzc2FnZXMgYW5kIHJldHVybiBjb2RlcyBpbiBibGtpZF9kb19wcm9iZSgpICBbS2FyZWwgWmFrXQorICAgLSBkb24ndCByZXF1aXJlIHVkZXYgc3ltbGlua3MgdmVyaWZpY2F0aW9uIGZvciBub24tcm9vdCB1c2VycyAgW0thcmVsIFpha10KKyAgIC0gZml4ICJoYW5ncyBmb3JldmVyIHdpdGggcGFydGl0aW9uIHR5cGUgbWRyYWlkIiAgW0thcmVsIFpha10KKyAgIC0gZml4ICNpZmRlZnMgcmVhZGFiaWxpdHkgIFtLYXJlbCBaYWtdCisgICAtIGZpeCAkbGliZGlyIGluIGJsa2lkLnBjICBbS2FyZWwgWmFrXQorICAgLSBmaXggTFZNMSBwcm9iZSAgW01pbGFuIEJyb3pdCisgICAtIGZpeCByZWlzZXJmcyBuYW1lICBbS2FyZWwgWmFrXQorICAgLSBtYWtlIGxpYnV1aWQgb3B0aW9uYWwgIFtLYXJlbCBaYWtdCisgICAtIG1vdmUgdG8gbWlzYy11dGlscy8gZGlyZWN0b3J5ICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgbWFuIHBhZ2UgIFtLYXJlbCBaYWtdCitsaWJ1dWlkOgorICAgLSBhZGQgLS1kaXNhYmxlLWxpYnV1aWQgYW5kIExJQlVVSURfVkVSU0lPTiAgW0thcmVsIFpha10KKyAgIC0gYWRkIC5naXRpZ25vcmUgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBpbmZvIGFib3V0IHUtbC1uZyB0byBtYW4gcGFnZXMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBpbnN0YWxsLWhvb2sgZm9yIGxpYnV1aWQuW2Esc29dIGRldmVsIGZpbGVzICBbS2FyZWwgWmFrXQorICAgLSBEb24ndCBydW4gdXVpZGQgaWYgaXQgd291bGQgZmFpbCBkdWUgdG8gcGVybWlzc2lvbiBwcm9ibGVtcyAgW1RoZW9kb3JlIFRzJ29dCisgICAtIGZpeCAkbGliZGlyIGluIHV1aWQucGMgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBwYXJhbGxlbCBidWlsZGluZyAgW0thcmVsIFpha10KKyAgIC0gZ2VuZXJhdGUgdXVpZF9nZW5lcmF0ZV97cmFuZG9tLHRpbWV9LjMgbWFuIHBhZ2UgbGlua3MgW0thcmVsIFpha10KKyAgIC0gaW1wb3J0IFVVSUQgbGlicmFyeSBmcm9tIGUyZnNwcm9ncyAgW0thcmVsIFpha10KKyAgIC0gTWFrZSBzdXJlIGZkJ3MgMCwgMSwgYW5kIDIgYXJlIHZhbGlkIGJlZm9yZSBleGVjJ2luZyB1dWlkZCAgW1RoZW9kb3JlIFRzJ29dCisgICAtIG1vdmUgY2xvY2sgc3RhdGUgZmlsZSBmcm9tIC92YXIvbGliIHRvIC92YXIvcnVuICBbS2FyZWwgWmFrXQorbGlidXVpZCwgdXVpZGQ6CisgICAtIEF2b2lkIGluZmluaXRlIGxvb3Agd2hpbGUgcmVhZGluZyBmcm9tIHRoZSBzb2NrZXQgZmQgIFtUaGVvZG9yZSBUcydvXQorbG9zZXR1cDoKKyAgIC0gYWRkIC0tc2V0LWNhcGFjaXR5ICBbS2FyZWwgWmFrXQorICAgLSBmaXggcmV0dXJuIGNvZGVzIG9mIGZ1bmN0aW9ucyBhcm91bmYgaXNfYXNzb2NpYXRlZCgpICBbS2FyZWwgWmFrXQorICAgLSBoYW5kbGUgc3ltbGlua3MgaW4gL2Rldi9sb29wLyAgW01pa2UgRnJ5c2luZ2VyXQorICAgLSBzdWdnZXN0IHRvIHVzZSBtb2Rwcm9iZSByYXRoZXIgdGhhbiBpbnNtb2QgaW4gbG9zZXR1cC44ICBbS2FyZWwgWmFrXQorbHNjcHU6CisgICAtIGZpeCBjcHVpZCBjb2RlIG9uIHg4Ni9QSUMgIFtNaWtlIEZyeXNpbmdlcl0KK21vdW50OgorICAgLSAoYW5kIGZzY2spIHJlbW92ZSBsaWJ2b2x1bWVfaWQgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYSBsaXR0bGUgY2xlYW4gdXAgaW5mbyBhYm91dCBsb29wZGV2cyBpbiBtYW4gcGFnZSAgW0thcmVsIFpha10KKyAgIC0gYWRkIGV4dDQgdG8gbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGV4dDQgdG8gdGhlIGxpc3Qgb2YgZmlsZXN5c3RlbXMgaW4gbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGluZm8gYWJvdXQgb2Jzb2xldGUgdmZhdCBvcHRpb25zIHRvIG1vdW50LjggIFtLYXJlbCBaYWtdCisgICAtIGFsbG93IGxvb3Agc3VpZCB1bW91bnQgIFtLYXkgU2lldmVyc10KKyAgIC0gY2xlYW51cCBub3RlcyBhYm91dCAtbCBvcHRpb24gaW4gbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gZml4IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHNlY3VyaXR5X2dldF9pbml0aWFsX2NvbnRleHQnICBbS2FyZWwgWmFrXQorICAgLSBtb3ZlIE1TX3tQUk9QQUdBVElPTixCSU5ELE1PVkV9IGRldGVjdGlvbiAgW0thcmVsIFpha10KKyAgIC0gdXNlICJub25lIiBmc3R5cGUgZm9yIE1TX1BST1BBR0FUSU9OIG1vdW50cyAgW0thcmVsIFpha10KKyAgIC0gdXNlIFRBRyBwYXJzaW5nIGZ1bmN0aW9uIGZyb20gbGliYmxraWQgIFtLYXJlbCBaYWtdCisgICAtIHdoZW4gYSByZW1vdW50IHRvIHJ3IGZhaWxzLCBxdWl0IGFuZCByZXR1cm4gYW4gZXJyb3IgIFtWYWxlcmllIEF1cm9yYV0KK3BvOgorICAgLSBmaXggdHlwbyBpbiBGcmVuY2ggdHJhbnNsYXRpb24gIFtPbGl2aWVyIEJsaW5dCisgICAtIG1lcmdlIGNoYW5nZXMgIFtLYXJlbCBaYWtdCisgICAtIHJlZnJlc2ggUE9URklMRVMuaW4gIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSBjcy5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW1BldHIgUGlzYXJdCisgICAtIHVwZGF0ZSBmaS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0xhdXJpIE51cm1pXQorICAgLSB1cGRhdGUgZnIucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtOaWNvbGFzIFByb3Zvc3RdCisgICAtIHVwZGF0ZSB2aS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0NseXRpZSBTaWRkYWxsXQorcmF3OgorICAgLSBVc2UgdGhlIFJBV19TRVRCSU5EIGlvY3RsIHdpdGhvdXQgc3RhdCdpbmcgdGhlIHJhdyMgZmlsZSAgW0plZmYgTWFob25leV0KKyAgIC0gdW5kZXByZWNhdGUgcmF3ICBbS2FyZWwgWmFrXQorc3dpdGNoX3Jvb3Q6CisgICAtIGFkZCBtYW4gcGFnZSAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN1YnJvb3Qgc3VwcG9ydCAgW0RhbmllbCBEcmFrZV0KKyAgIC0gY2xlYW4gdXAgYXJndltdIHVzYWdlLCBhZGQgLWggYW5kIC1WICBbS2FyZWwgWmFrXQorICAgLSBkbyByZWN1cnNpdmVSZW1vdmUgYWZ0ZXIgb3VyIHJvb3QgaXMgbW92ZWQgdG8gYXZvaWQgcmFjZXMuICBbUGV0ZXIgSm9uZXNdCisgICAtIGZpeCBjb2Rpbmcgc3R5bGUgIFtLYXJlbCBaYWtdCisgICAtIGZvcmsgYmVmb3JlIGNsZWFuaW5nIHVwIHRoZSBmaWxlc3lzdGVtLiAgW1BldGVyIEpvbmVzXQorICAgLSBuZXcgY29tbWFuZCAgW0thcmVsIFpha10KKyAgIC0gcmV3cml0ZSB0byB1c2UgZnN0YXRhdCgpIGFuZCB1bmxpbmthdCgpICBbS2FyZWwgWmFrXQorICAgLSB1c2UgZXJyLmgsIGNsZWFuIHVwIHJldHVybiBjb2RlcyAgW0thcmVsIFpha10KKyAgIC0gdXNlIGZpbGUgZGVzY3JpcHRvciBpbnN0ZWFkIG9mIHBhdGggZm9yIHJlY3Vyc2l2ZVJlbW92ZSgpICBbUGV0ZXIgSm9uZXNdCisgICAtIHVzZSBzbnByaW50ZigpIHJhdGhlciB0YW4gc3Rye2NweSxjYXR9KCkgIFtLYXJlbCBaYWtdCit0ZXN0czoKKyAgIC0gYWRkIGZ1bmN0aW9ucyBmb3Igd29yayB3aXRoZGlzayBpbWFnZXMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtZHJhaWQgbGliYmxraWQgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gZG9uJ3QgcnVuIHNvbWUgbW91bnQgdGVzdHMgZm9yIG5vbi1yb290IHVzZXJzICBbS2FyZWwgWmFrXQorICAgLSBmaXggJ2RlbGV0ZSBleHRlbmRlZCBwYXJ0aXRpb24nIGNoZWNrc3VtICBbS2FyZWwgWmFrXQorICAgLSBmaXggcmVpc2VyZnMgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gZml4IHNjcmlwdCB0aGF0IGNyZWF0ZXMgbHNjcHUgZHVtcHMgIFtLYXJlbCBaYWtdCisgICAtIG1vdmUgbHNjcHUgL3Byb2MgYW5kIC9zeXMgZHVtcHMgdG8gdGFyYmFsbHMgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBicm9rZW4gWGVuIGR1bXBzIGZvciBsc2NwdSAgW0thcmVsIFpha10KK3Vtb3VudDoKKyAgIC0gY2xlYW4gdXAgaGVscCBvdXRwdXQgIFtLYXJlbCBaYWtdCit1dWlkZDoKKyAgIC0gQXZvaWQgY2xvc2luZyB0aGUgc2VydmVyIHNvY2tldCB3aGVuIGNhbGxpbmcgY3JlYXRlX2RhZW1vbigpICBbVGhlb2RvcmUgVHMnb10KKyAgIC0gZml4ICRQSURGSUxFIGluIHV1aWRkLnJjICBbS2FyZWwgWmFrXQorICAgLSBpbml0IC92YXIvcnVuL3V1aWRkLCBhZGQgb3B0aW9uIGZvciBvbi1kZW1hbmQgbW9kZSB0byAucmMgZmlsZSAgW0thcmVsIFpha10KKyAgIC0gbW92ZSB1dWlkZCBmaWxlcyBmcm9tIC92YXIvbGliL2xpYnV1aWQgdG8gL3Zhci9ydW4vdXVpZGQgIFtLYXJlbCBaYWtdCisgICAtIG1vdmUgdXVpZGQucmMgdG8gbWlzYy11dGlscyBkaXJlY3RvcnkgIFtLYXJlbCBaYWtdCisgICAtIG5ldyBjb21tYW5kIChVVUlEIGRhZW1vbiBmcm9tIGUyZnNwcm9ncykgIFtLYXJlbCBaYWtdCit1dWlkZ2VuOgorICAgLSBuZXcgY29tbWFuZCAoZnJvbSBlMmZzcHJvZ3MpICBbS2FyZWwgWmFrXQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZG9jcy92Mi4xNy1SZWxlYXNlTm90ZXMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9kb2NzL3YyLjE3LVJlbGVhc2VOb3RlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzQ2MjJiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZG9jcy92Mi4xNy1SZWxlYXNlTm90ZXMKQEAgLTAsMCArMSw1MjYgQEAKK1V0aWwtbGludXgtbmcgMi4xNyBSZWxlYXNlIE5vdGVzICgwOC1KYW4tMjAxMCkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworUmVsZWFzZSBoaWdobGlnaHRzCistLS0tLS0tLS0tLS0tLS0tLS0KKworZmFsbG9jYXRlOgorICAtIHRoaXMgTkVXIENPTU1BTkQgaXMgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlIHRvIGZhbGxvY2F0ZSAKKyAgICBMaW51eCBzeXNjYWxsIGFuZCBhbGxvd3MgdG8gcHJlYWxsb2NhdGUgYmxvY2tzIHRvIGEgZmlsZS4KKwordW5zaGFyZQorICAtIHRoaXMgTkVXIENPTU1BTkQgaXMgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlIHRvIHVuc2hhcmUgTGludXggc3lzY2FsbCAKKyAgICBhbmQgYWxsb3dzIHRvIHJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50LgorCit3aXBlZnMKKyAgLSB0aGlzIE5FVyBDT01NQU5EIGlzIGJhc2VkIG9uIGxpYmJsa2lkIGFuZCBhbGxvd3MgdG8gcmVtb3ZlIGZpbGVzeXN0ZW0KKyAgICBvciBSQUlEIHNpZ25hdHVyZXMgZnJvbSBhIGRldmljZS4KKworbGliYmxraWQ6CisgIC0gbGliYmxraWQgYWxsb3dzIHRvIGdhdGhlciBpbmZvcm1hdGlvbiBhYm91dCBibG9jayBkZXZpY2UgdG9wb2xvZ3ksCisgICAgY3VycmVudGx5IHN1cHBvcnRlZCBtZXRob2RzIGFyZToKKworICAgICAgKiBpb2N0bCAtIHN1cHBvcnRlZCBzaW5jZSBrZXJuZWwgMi42LjMyCisgICAgICAqIHN5c2ZzIC0gc3VwcG9ydGVkIHNpbmNlIGtlcm5lbCAyLjYuMzEKKyAgICAgICogZmFsbGJhY2sgZm9yIERNLCBNRCwgTFZNIGFuZCBFVk1TIG9uIG9sZCBrZXJuZWxzIChiYXNlIG9uIGNvZGUgCisgICAgICAgIGZyb20geGZzcHJvZ3MvbGliZGlzaykKKworICAgIFRoZSB0b3BvbG9neSBzdXBwb3J0IGlzIG1vc3RseSBkZXNpZ25lZCBmb3IgbWtmcyBwcm9ncmFtcyBvciBwYXJ0aXRpb25pbmcKKyAgICB0b29scyAoYWxyZWFkeSB1c2VkIGluIG1rZnMueGZzLCBta2V4MmZzLCBsaWJwYXJ0ZWQgYW5kIGZkaXNrKQorICAgIAorICAtIGxpYmJsa2lkIHN1cHBvcnRzIHBhcnRpdGlvbiB0YWJsZXMgcGFyc2luZyAoY3VycmVudGx5IHN1cHBvcnRlZCBhcmUKKyAgICBhaXgsIGJzZCwgZG9zLCBtYWMsIGdwdCwgbWluaXgsIHNnaSwgc29sYXJpcywgc3VuIGFuZCB1bml4d2FyZSkuIFRoaXMgCisgICAgZnVuY3Rpb25hbGl0eSBpcyBkZXNpZ25lZCBmb3IgbWtmcyBwcm9ncmFtcywgRGV2aWNlS2l0cywgW2tdcGFydHggb3Igc28uCisKKyAgLSBsaWJibGtpZCBBUEkgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgYXQKKyAgICBodHRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvbGliYmxraWQtZG9jcy8KKworYmxvY2tkZXY6CisgICAtIHN1cHBvcnRzIGFsbCBuZXcgdG9wb2xvZ3kgaW9jdGxzCisKK2ZkaXNrOgorICAgLSB0aGUgZmRpc2sgY29tbWFuZCBhbGlnbnMgbmV3bHkgY3JlYXRlZCBwYXJ0aXRpb25zIHRvIG1pbmltdW1faW9fc2l6ZQorICAgICBib3VuZGFyeSAoIm1pbmltdW1faW9fc2l6ZSIgaXMgcGh5c2ljYWwgc2VjdG9yIHNpemUgb3Igc3RyaXBlIGNodW5rCisgICAgIHNpemUgb24gUkFJRHMpLgorCisgICAtIHRoZSBmZGlzayBjb21tYW5kIHN1cHBvcnRzIGRpc2tzIHdpdGggYWxpZ25tZW50X29mZnNldCBub3cuCisKKworU3RhYmxlIG1haW50ZW5hbmNlIHJlbGVhc2VzIGJldHdlZW4gdjIuMTYgYW5kIHYyLjE3CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordXRpbC1saW51eC1uZyAyLjE2LjEgWzA3LVNlcC0yMDA5XQorCisgKiBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNi92Mi4xNi4xLVJlbGVhc2VOb3RlcworICAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTYvdjIuMTYuMS1DaGFuZ2VMb2cKKwordXRpbC1saW51eC1uZyAyLjE2LjIgWzMwLU5vdi0yMDA5XQorCisgKiBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNi92Mi4xNi4yLVJlbGVhc2VOb3RlcworICAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTYvdjIuMTYuMi1DaGFuZ2VMb2cKKworCitDaGFuZ2VMb2cgYmV0d2VlbiB2Mi4xNiBhbmQgdjIuMTcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgRm9yIG1vcmUgZGV0YWlscyBzZWUgQ2hhbmdlTG9nIGZpbGVzIGF0OgorIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE3LworCithZGRwYXJ0OgorICAgLSBhZGRwYXJ0LjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitibGtpZDoKKyAgIC0gYWRkIElEX0ZTX0FNQklWQUxFTlQgZm9yIHVkZXYgb3V0cHV0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgcHJldHR5IG91dHB1dCwgZG9jdW1lbnQgLUwgaW5jb21wYXRpYmlsaXR5IHdpdGggZTJmc3Byb2dzICBbS2FyZWwgWmFrXQorICAgLSBhbGxvdyB0byB1c2UgLXMgPFRBRz4gZm9yIGxvdy1sZXZlbCBwcm9iaW5nICgtcCBtb2RlKSAgW0thcmVsIFpha10KK2Jsb2NrZGV2OgorICAgLSBhZGQgc3VwcG9ydCBmb3IgdWludCBhbmQgdXNob3J0IGlvY3RscyAgW0thcmVsIFpha10KKyAgIC0gYWRkIHRvcG9sb2d5IGlvY3RscyBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBibG9ja2Rldi44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorICAgLSBmaXggdG9wb2xvZ3kgaW9jdGxzICBbS2FyZWwgWmFrXQorICAgLSByZWZhY3RvcmluZyAoYmV0dGVyIGNvbW1hbmRzIGRlZmluaXRpb24pICBbS2FyZWwgWmFrXQorICAgLSB1c2UgYy5oICBbS2FyZWwgWmFrXQorYnVpbGQtc3lzOgorICAgLSBhZGQgLS1kaXNhYmxlLW1ha2VpbnN0YWxsLXNldHVpZCAgW0thcmVsIFpha10KKyAgIC0gYWRkIEhBVkVfTElCQkxLSURfSU5URVJOQUwgIFtLYXJlbCBaYWtdCisgICAtIGNoZWNrIGZvciBwa2ctY29uZmlnIGJlZm9yZSBndGstZG9jICBbS2FyZWwgWmFrXQorICAgLSBjaGVjayBmb3IgdW5pb24gc2VtdW4gaW5zdGVhZCBvZiB1c2luZyBfU0VNX1NFTVVOX1VOREVGSU5FRCAgW0d1aWxsZW0gSm92ZXJdCisgICAtIGNsZWFuIHVwIGd0ay1kb2Mgc3R1ZmYgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFuIHVwIGd0ay1kb2MgdXNhZ2UgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgLS1kaXNhYmxlLXtmYWxsb2NhdGUscGl2b3Rfcm9vdCx1bnNoYXJlfSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCBBTV9DRkxBR1MgdXNhZ2UgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgc3RhdGljIGJ1aWxkaW5nICBbS2FyZWwgWmFrXQorICAgLSBkZXRlY3QgaWYgY29uc3QgaXMgYXZhaWxhYmxlICBbR3VpbGxlbSBKb3Zlcl0KKyAgIC0gZGV0ZWN0IGlmIHZvbGF0aWxlIGlzIGF2YWlsYWJsZSAgW0d1aWxsZW0gSm92ZXJdCisgICAtIGRvbid0IGRpc3RyaWJ1dGUgZ2VuZXJhdGVkICoucGMgZmlsZXMgIFtLYXJlbCBaYWtdCisgICAtIGRvbid0IGRpc3RyaWJ1dGUgZ2VuZXJhdGVkIGJsa2lkLmggIFtLYXJlbCBaYWtdCisgICAtIGVuYWJsZSBzaWxlbnQgcnVsZXMgaWYgYXV0b21ha2UgPj0gMS4xMSAgW0d1aWxsZW0gSm92ZXJdCisgICAtIGZpeCAob2ZmaWNpYWwpIGd0ay1kb2MubWFrZSAgW0thcmVsIFpha10KKyAgIC0gZml4IEJVSUxEX1BJVk9UX1JPT1QgY29uZGl0aW9uICBbS2FyZWwgWmFrXQorICAgLSBmaXggYmxraWQgQ0ZMQUdTIGluIGZkaXNrL01ha2VmaWxlLmFtICBbS2FyZWwgWmFrXQorICAgLSBmaXggb3V0LW9mLXNvdXJjZSBidWlsZCAgW0thcmVsIFpha10KKyAgIC0gcmVsZWFzZSsrICh2Mi4xNy1yYzEpICBbS2FyZWwgWmFrXQorICAgLSByZWxlYXNlKysgKHYyLjE3LXJjMikgIFtLYXJlbCBaYWtdCisgICAtIHJlbGVhc2UrKyAodjIuMTctcmMzKSAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIExUX1NUQVRJQ19MREZMQUdTICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgZ3RrZG9jaXplIGZyb20gYXV0b2dlbi5zaCAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIG9ic29sZXRlIC0td2l0aC1mc3Byb2JlIGZyb20gZGlzdGNoZWNrIGZsYWdzICBbS2FyZWwgWmFrXQorICAgLSByZXdyaXRlIFRMUyBkZXRlY3Rpb24gIFtLYXJlbCBaYWtdCitjYWw6CisgICAtIGNhbC4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorICAgLSBmaXggKGhhcm1sZXNzKSB0eXBvICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KKyAgIC0gZml4IGJyb2tlbiBjb21wdXRhdGlvbiBmb3IgU2VwIDE3NTIgIFtQZXRlciBCcmVpdGVubG9obmVyXQorICAgLSByZW1vdmUgb2Jzb2xldGUgPGxvY2FsZWluZm8uaD4gaW5jbHVkZSAgW0d1aWxsZW0gSm92ZXJdCisgICAtIHVzZSBjLmggIFtLYXJlbCBaYWtdCitjZmRpc2s6CisgICAtIGNmZGlzay44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorICAgLSBtb3JlIGtleSBhbHRlcm5hdGl2ZXMgIFtKYW4gU2FyZW5pa10KK2NoZm46CisgICAtIGNoZm4uMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK2NocnQ6CisgICAtIHVzZSBjLmggIFtLYXJlbCBaYWtdCitjaHNoOgorICAgLSBjaHNoLjEgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitjdHJsYWx0ZGVsOgorICAgLSBjdHJsYWx0ZGVsLjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitjeXR1bmU6CisgICAtIGN5dHVuZS44IG1pc3NpbmcgZGVzY3JpcHRpb24gb2YgYC1TJywgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitkZGF0ZToKKyAgIC0gZGRhdGUuMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK2RlbHBhcnQ6CisgICAtIGRlbHBhcnQuOCBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK2RtZXNnOgorICAgLSBhZGQgLXIgdG8gaGVscCBvdXRwdXQgIFtLYXJlbCBaYWtdCisgICAtIGRtZXNnLjEgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCisgICAtIGZpeCB0eXBvIGluIG1hbiBwYWdlICBbS2VuIEtvcGluXQorZG9jczoKKyAgIC0gUkVBRE1FIHdpZHRoIGFuZCBsYW5ndWFnZSBjb3JyZWN0aW9uICBbSmFuIFNhcmVuaWtdCisgICAtIGFkZCAndW5zaGFyZScgYW5kICd3aXBlZnMnIHRvIEFVVEhPUlMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBMR1BMdjIrIHRvIGxpc3Qgb2YgbGljZW5zZXMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBuZ2V0dGV4dCgpIGludG8gVE9ETyBmaWxlICBbS2FyZWwgWmFrXQorICAgLSBhZGQgdjIuMTcgUmVsZWFzZU5vdGVzICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgIlRoZSBQZXJmZWN0IFBhdGNoIiBVUkwgIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSBBVVRIT1JTIGZpbGUgIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSBUT0RPICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgVE9ETyBmaWxlICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgVE9ETyBsaXN0ICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgdjIuMTcgUmVsZWFzZU5vdGVzICBbS2FyZWwgWmFrXQorZWx2dHVuZToKKyAgIC0gZWx2dHVuZS44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorZmFsbG9jYXRlOgorICAgLSBjaGVjayBmb3IgRVJBTkdFIGVycm9ycyAgW0thcmVsIFpha10KKyAgIC0gbmV3IGNvbW1hbmQgIFtLYXJlbCBaYWssIEVyaWMgU2FuZGVlbl0KK2ZkZm9ybWF0OgorICAgLSBmZGZvcm1hdC44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gdmVyaWZ5X2Rpc2soKSAgW0NyaXN0aWFuIFJvZHLDrWd1ZXpdCitmZGlzazoKKyAgIC0gYWRkIGJhc2ljIHJvdXRpbmVzIGZvciBMQkEgYWxpZ25tZW50ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgcmVncmVzc2lvbiB0ZXN0IGxpc3RpbmcgZW1wdHkvbm9uc2Vuc2UgaW1hZ2VzICBbWmRlbmVrIEJlaGFuXQorICAgLSBhbGlnbiBlbmQgb2YgcGFydGl0aW9uIHdoZW4gZGVmaW5lZCBieSArc2l6ZXtLLE0sR30gIFtLYXJlbCBaYWtdCisgICAtIGNoZWNrIGZvciBwYXJ0aXRpb24gYm91bmRhcnkgIFtLYXJlbCBaYWtdCisgICAtIGZkaXNrLjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCisgICAtIGZpeCBzdHJpY3QtYWxpYXNpbmcgYnVncyAgW0thcmVsIFpha10KKyAgIC0gb2ZmZXIgYWxpZ25lZCBmaXJzdCBzZWN0b3IgIFtLYXJlbCBaYWtdCisgICAtIHByaW50IGluZm8gYW5kIHJlY29tbWVuZGF0aW9ucyBhYm91dCBhbGlnbm1lbnQgIFtLYXJlbCBaYWtdCisgICAtIHJlYWQgdG9wb2xvZ3kgaW5mbyBmcm9tIGxpYmJsa2lkICBbS2FyZWwgWmFrXQorICAgLSBzZ2kgbGFiZWwgLSByZW1vdmUgZHVwbGljYXRlIHN3YWIxNnN3YWJbMTYsMzJdKCkgZGVmaW5pdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIHNsZWVwLWFmdGVyLXN5bmMgYW5kIGZzeW5jIHVzYWdlICBbS2FyZWwgWmFrXQorICAgLSB1c2UgYy5oICBbS2FyZWwgWmFrXQorICAgLSB1c2UgbWluaW1hbF9pb19zaXplIGZvciB0aGUgZmlyc3QgcGFydGl0aW9uICBbS2FyZWwgWmFrXQorZmluZGZzOgorICAgLSBmaXggdHlwbyBpbiBmaW5kZnMuOCAgW0thcmVsIFpha10KK2Zsb2NrOgorICAgLSBmaXggaGFuZyB3aGVuIHBhcmVudCBpZ25vcmVzIFNJR0NITEQgIFtNaWtlIEZyeXNpbmdlcl0KK2ZzY2s6CisgICAtIGRvY3VtZW50IGZzY2sgYmVoYXZpb3Igd3J0IG5vZmFpbCBvcHRpb24gYW5kIGZzdHlwZSAnYXV0bycgIFtMdWR3aWcgTnVzc2VsXQorICAgLSBmc2NrLjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCisgICAtIGhvbm9yIG5vZmFpbCBvcHRpb24gaW4gZnNjayAgW0x1ZHdpZyBOdXNzZWxdCitmc2NrLm1pbml4OgorICAgLSBmaXggYnJva2VuIHpvbmUgY2hlY2tpbmcgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBzdHJpY3QtYWxpYXNpbmcgYnVncyAgW0thcmVsIFpha10KKyAgIC0gZnNjay5taW5peC44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorZnN0YWI6CisgICAtIGZzdGFiLjUgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitnZXRvcHQ6CisgICAtIGdldG9wdC4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQoraGV4ZHVtcDoKKyAgIC0gYnVnIGluIGhleGR1bXAgd2hlbiBvZmZzZXQgPT0gZmlsZSBsZW5ndGggIFtBbcOpcmljbyBXYW5nXQorICAgLSBoZXhkdW1wLjEgZXJyb25lb3VzIC5ObSAiIiAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitod2Nsb2NrOgorICAgLSBkbyBub3QgYWNjZXNzIGhhcmR3YXJlIGNsb2NrIHdoZW4gdXNpbmcgLS1zeXN0eiAgW1Njb3R0IEphbWVzIFJlbW5hbnRdCisgICAtIGh3Y2xvY2suOCBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KKyAgIC0gc2V0IGtlcm5lbCB0aW1lem9uZSB3aXRoIC0tc3lzdHogLS11dGMgIFtTY290dCBKYW1lcyBSZW1uYW50XQorICAgLSB1c2UgYy5oICBbS2FyZWwgWmFrXQorICAgLSB1c2UgdGltZSBsaW1pdCBmb3IgS0RHSFdDTEsgYnVzeSB3YWl0ICBbS2FyZWwgWmFrXQoraW5jbHVkZToKKyAgIC0gYWRkIGMuaCB3aXRoIGZ1bmRhbWVudGFsIEMgZGVmaW5pdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBjLmggaW4gY2Fub25pY2FsaXplLmggIFtLYXJlbCBaYWtdCitpbml0Y3RsOgorICAgLSBmaXggc3RyaWN0LWFsaWFzaW5nIGJ1Z3MgIFtLYXJlbCBaYWtdCisgICAtIGluaXRjdGwuOCBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK2lvbmljZToKKyAgIC0gYWRkIGEgbm90ZSBhYm91dCBub25lIGNsYXNzIGFuZCBDRlEgIFtLYXJlbCBaYWtdCisgICAtIGlvbmljZS4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQoraXBjbWs6CisgICAtIGlwY21rLjEgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitpcGNybToKKyAgIC0gaXBjcm0uMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK2lwY3M6CisgICAtIGlwY3MuMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KKyAgIC0gdXNlIF9fR0xJQkNfXyBpbnN0ZWFkIG9mIG9ic29sZXRlIF9fR05VX0xJQlJBUllfXyAgW0d1aWxsZW0gSm92ZXJdCitpc29zaXplOgorICAgLSBpc29zaXplLjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitraWxsOgorICAgLSBraWxsLjEgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCisgICAtIHVzZSBjLmggIFtLYXJlbCBaYWtdCitsYXN0OgorICAgLSBmaXggdXRtcC51dF90aW1lIHVzYWdlICBbS2FyZWwgWmFrXQorICAgLSBsYXN0LjEgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitsZGF0dGFjaDoKKyAgIC0gbGRhdHRhY2guOCBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KKyAgIC0gdXNlIGMuaCAgW0thcmVsIFpha10KK2xpYjoKKyAgIC0gYWRkIGEgZ2VuZXJpYyBjcmMzMigpICBbS2FyZWwgWmFrXQorICAgLSBidWcgKHR5cG8pIGluIGZ1bmN0aW9uIE1ENUZpbmFsKCkgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBmaWxlIGRlc2NyaXB0b3IgbGVhayBpbiBpc19tb3VudGVkKCkgIFtUaGVvZG9yZSBUcydvXQorICAgLSBmaXggbGliL01ha2VmaWxlLmFtIChyZW1vdmUgcHR0eXBlLmMpICBbS2FyZWwgWmFrXQorICAgLSBpbXBvcnQgd2hvbGUgaXNtb3VudGVkLmMgY29kZSBmcm9tIGUyZnNwcm9ncyAgW0thcmVsIFpha10KKyAgIC0gcmVtb3ZlIHB0dHlwZS5jICBbS2FyZWwgWmFrXQorbGliYmxraWQ6CisgICAtIERSQkQgc3VwcG9ydCBmb3IgYmxraWQgIFtCYXN0aWFuIEZyaWVkcmljaF0KKyAgIC0gYWRkICoua28uZ3ogc3VwcG9ydCB0byBtb2R1bGVzLmRlcCBwYXJzZXIgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBBSVggcGFydGl0aW9ucyBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgQkxLSURfU1VCTEtTXyogZmxhZ3MgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBCTEtJRF97VkVSU0lPTixEQVRFfSB0byBibGtpZC5oICBbS2FyZWwgWmFrXQorICAgLSBhZGQgQlNEIHBhcnRpdGlvbnMgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIERNIHRvcG9sb2d5IHN1cHBvcnQgKGZvciBvbGQga2VybmVscykgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBFRkkgR1BUIHBhcnRpdGlvbnMgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIEVWTVMgdG9wb2xvZ3kgc3VwcG9ydCAoZm9yIG9sZCBrZXJuZWxzKSAgW0thcmVsIFpha10KKyAgIC0gYWRkIExWTSB0b3BvbG9neSBzdXBwb3J0IChmb3Igb2xkIGtlcm5lbHMpICBbS2FyZWwgWmFrXQorICAgLSBhZGQgTUFDIHBhcnRpdGlvbnMgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIE1EIHRvcG9sb2d5IHN1cHBvcnQgKGZvciBvbGQga2VybmVscykgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBNSU5JWCBwYXJ0aXRpb25zIHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBNUy1ET1MgcGFydGl0aW9ucyBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgU0dJIHBhcnRpdGlvbnMgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIFNPTEFSSVMtWDg2IHBhcnRpdGlvbnMgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIFNVTiBwYXJ0aXRpb25zIHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBVQkkgdm9sdW1lIHN1cHBvcnQgIFtDb3JlbnRpbiBDaGFyeV0KKyAgIC0gYWRkIFVCSUZTIHN1cHBvcnQgIFtDb3JlbnRpbiBDaGFyeV0KKyAgIC0gYWRkIFVOSVhXQVJFIHBhcnRpdGlvbnMgc3VwcG9ydCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGEgcHJvYmUgZm9yIGJmcyAgW0NocmlzdG9waCBIZWxsd2lnXQorICAgLSBhZGQgYmxraWRfZGV2bm9fdG9fd2hvbGVkaXNrKCkgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBibGtpZF9kcml2ZXJfaGFzX21ham9yKCkgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBibGtpZF9uZXdfcHJvYmVfZnJvbV9maWxlbmFtZSgpICBbS2FyZWwgWmFrXQorICAgLSBhZGQgYmxraWRfcGFydGl0aW9uX2dldF90eXBlX3N0cmluZygpICBbS2FyZWwgWmFrXQorICAgLSBhZGQgYmxraWRfcHJvYmVfZ2V0X3tzaXplLHNlY3RvcnNpemUsZGV2bm99ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgYmxraXRfW3VuXXJlZigpIHRvIFRPRE8gIFtLYXJlbCBaYWtdCisgICAtIGFkZCBjaGFpbiBzdHJ1Y3RzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgZnVuY3Rpb25zIGZvciBjaGFpbiB0YWdzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgZ2VuZXJpYyBmaWx0ZXIgZnVuY3Rpb25zICBbS2FyZWwgWmFrXQorICAgLSBhZGQgZ2VuZXJpYyBmdW5jdGlvbiBmb3IgYmluYXJ5IGRhdGEgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBtaXNzaW5nIGNvbW1lbnRzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbWlzc2luZyBjb21tZW50cyB0byBwcm9iZS5jICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbWlzc2luZyBwYWNrZWQgYXR0cmlidXRlcyAgW0thcmVsIFpha10KKyAgIC0gYWRkIG1rZnMgc2FtcGxlICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbm90ZSBhYm91dCBVVUlEX1NVQiwgaW5jcmVtZW50IG51bWJlciBvZiBzdXBlcmJsb2NrIHZhbHVlcyAgW0thcmVsIFpha10KKyAgIC0gYWRkIHBhcnRpdGlvbnMgZmlsdGVyIHJvdXRpbmVzICBbS2FyZWwgWmFrXQorICAgLSBhZGQgcGFydGl0aW9ucyBwYXJzaW5nIHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBwYXJ0aXRpb25zIHNhbXBsZSAgW0thcmVsIFpha10KKyAgIC0gYWRkIHByaXZhdGUgYmxraWRfdG9wb2xvZ3lfc2V0XyooKSBmdW5jdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzYW1wbGVzL3RvcG9sb2d5LmMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzZWN0b3Igc2l6ZSBmdW5jcyB0byBibGtpZC5oLmluICBbS2FyZWwgWmFrXQorICAgLSBhZGQgc3VwZXJibG9ja3MgY2hhaW4gIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzdXBlcmJsb2NrcyBmaWx0ZXIgZnVuY3Rpb25zICBbS2FyZWwgWmFrXQorICAgLSBhZGQgc3VwZXJibG9ja3MuYyBzYW1wbGUgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBzdXBwb3J0IGZvciBTQk1BR0lDIGFuZCBTQk1BR0lDX09GRlNFVCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHN1cHBvcnQgZm9yIFZNRlMgKFZNd2FyZSBGaWxlIFN5c3RlbSkgIFtNaWtlIEhvbW1leV0KKyAgIC0gYWRkIHN1cHBvcnQgZm9yIHRvcG9sb2d5IGlvY3RscyAgW0thcmVsIFpha10KKyAgIC0gYWRkIHRlc3QgY2FzZXMgZm9yIFZNRlMgIFtNaWtlIEhvbW1leV0KKyAgIC0gYWRkIHRvcG9sb2d5IHN1cHBvcnQgIFtLYXJlbCBaYWtdCisgICAtIGFsbG93IGxpbmtpbmcgd2l0aCB1Q2xpYmMgIFtEYW5pZWwgTWllcnN3YV0KKyAgIC0gYWxsb3cgdG8gY2hhbmdlIGRpbWVuc2lvbiBvZiBwcm9iaW5nIGFyZWEgIFtLYXJlbCBaYWtdCisgICAtIGFsbG93IHRvIHJlYWQgaW4gc2VjdG9ycyAgW0thcmVsIFpha10KKyAgIC0gYWxsb3dzIG1vcmUgcHJvYmluZyBtZXRob2RzIGZvciB0b3BvbG9neSBjaGFpbiAgW0thcmVsIFpha10KKyAgIC0gYW5ub3VuY2UgSm9saWV0IGV4dGVuc2lvbiAgW01heGltIExldml0c2t5XQorICAgLSBjbGVhbnVwIGJsa2lkX3Byb2JlX3NldF9kZXZpY2UoKSAgW0thcmVsIFpha10KKyAgIC0gY2xlYW51cCB0b3BvbG9neSBmYWxsYmFjayAgW0thcmVsIFpha10KKyAgIC0gY29udmVydCBHUFQgcGFydGl0aW9uIExCQSB0byA1MTItYnl0ZSBzZWN0b3JzICBbS2FyZWwgWmFrXQorICAgLSBjb3NtZXRpYyBjaGFuZ2UgaW4gdG9wb2xvZ3kgc2FtcGxlICBbS2FyZWwgWmFrXQorICAgLSBjcmVhdGUgYSBnZW5lcmljIGJsa2lkX2VuY29kZV90b191dGY4KCkgIFtLYXJlbCBaYWtdCisgICAtIGNyZWF0ZSBhIGdlbmVyaWMgYmxraWRfdW5wYXJzZV91dWlkKCkgIFtLYXJlbCBaYWtdCisgICAtIGRvZXMgbm90IHJldHVybiB1c2VsZXNzIGJpbmFyeSBkYXRhICBbS2FyZWwgWmFrXQorICAgLSBkb24ndCByZXR1cm4gZW1wdHkgTEFCRUxzICBbS2FyZWwgWmFrXQorICAgLSBkb24ndCBzY2FuIHByaXZhdGUgL2Rldi8udWRldiBkaXJlY3RvcnkgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBBZGFwdGVjIFJBSUQgZGV0ZWN0aW9uICBbS2FyZWwgWmFrXQorICAgLSBmaXggRkFMU0UgZGVmaW5pdGlvbiAgW0thcmVsIFpha10KKyAgIC0gZml4IEZBVCBzdXBlciBibG9jayBkZWZpbml0aW9uICBbTGF3cmVuY2UgUnVzdF0KKyAgIC0gZml4IE5URlMgbm9uLUFTQ0lJIGxhYmVscyAgW0thcmVsIFpha10KKyAgIC0gZml4IFVGUyBkZXRlY3Rpb24gIFtLYXJlbCBaYWtdCisgICAtIGZpeCBibGtpZF9kZXZub190b193aG9sZWRpc2soKSAgW0thcmVsIFpha10KKyAgIC0gZml4IGJsa2lkX2RvX3Byb2JlKCkgdG8gd29yayBwcm9wZXJseSB3aXRoIGNoYWlucyAgW0thcmVsIFpha10KKyAgIC0gZml4IGJsa2lkX2ZzdGF0YXQoKSBjb2RlICBbS2FyZWwgWmFrXQorICAgLSBmaXggYmxraWRfcHJvYmVfc2V0X3V0ZjhsYWJlbCgpIGNhbGwgZm9yIEpvbGlldCAgW0thcmVsIFpha10KKyAgIC0gZml4IGJ1ZmZlciBvdmVyZmxvdyBpbiBibGtpZF9lbmNvZGVfc3RyaW5nKCkgIFtGbG9yaWFuIFp1bWJpZWhsXQorICAgLSBmaXggY2FjaGUtPnByb2JlIG1lbW9yeSBsZWFrICBbS2FyZWwgWmFrXQorICAgLSBmaXggZXh0MiBkZXRlY3Rpb24gb24gc3lzdGVtcyB3aXRoIGV4dDQgb25seSAgW0thcmVsIFpha10KKyAgIC0gZml4IGdjYyB3YXJuaW5nICh3YXJuX3VudXNlZF9yZXN1bHQpICBbS2FyZWwgWmFrXQorICAgLSBmaXggaGlnaHBvaW50Mzd4IGRldGVjdGlvbiAgW0thcmVsIFpha10KKyAgIC0gZml4IG5vbi1tYWdpYyBGQVQgZGV0ZWN0aW9uICBbS2FyZWwgWmFrXQorICAgLSBmaXggcHJvYmluZyBmb3IgYmluYXJ5IGludGVyZmFjZSAgW0thcmVsIFpha10KKyAgIC0gZml4IHNlZ2ZhdWx0IGluIGJsa2lkX2RvX3Byb2JlKCkgIFtLYXJlbCBaYWtdCisgICAtIGZpeCB0aGUgZGVmYXVsdCBjYWNoZSBmaWxlIHBhdGggIFtLYXJlbCBaYWtdCisgICAtIGZpeCB0b3BvbG9neSBpbmZvcm1hdGlvbiB2YWx1ZXMgIFtFcmljIFNhbmRlZW5dCisgICAtIGZpeCB0eXBvIChzd3N1cGVuZCAtPiBzd3N1c3BlbmQpICBbS2FyZWwgWmFrXQorICAgLSBmaXggdHlwbyBzL0hpaGcvSGlnaC8gIFtKaW0gTWV5ZXJpbmddCisgICAtIGZpeCB3YXJuaW5nIG1lc3NhZ2UgaW4gbWtmcyBzYW1wbGUgIFtLYXJlbCBaYWtdCisgICAtIGd0a2RvY2l6ZSAoQVBJIGRvY3MgZ2VuZXJhdGVkIGJ5IGd0ay1kb2NzKSAgW0thcmVsIFpha10KKyAgIC0gbWlub3IgY2hhbmdlcyB0byBkbSB0b3BvbG9neSBjb2RlICBbS2FyZWwgWmFrXQorICAgLSBtaW5vciBjaGFuZ2VzIHRvIHNhbXBsZXMgIFtLYXJlbCBaYWtdCisgICAtIG1pbm9yIGZpeCBpbiB0b3BvbG9neSBzYW1wbGUgIFtLYXJlbCBaYWtdCisgICAtIG1vdmUgRlMvcmFpZCBzdHVmZiB0byBzdXBlcmJsb2NrcyBkaXJlY3RvcnkgIFtLYXJlbCBaYWtdCisgICAtIG1vdmUgYmxraWRfa25vd25fZnN0eXBlKCkgdG8gc3VwZXJibG9ja3MuYyAgW0thcmVsIFpha10KKyAgIC0gbW92ZSBmaWx0ZXIgbWFjcm9zIHRvIGhlYWRlciBmaWxlICBbS2FyZWwgWmFrXQorICAgLSBwcmVmZXIgSVNPOTY2MCBQVkQgTGFiZWwgdG8gSm9saWV0IExhYmVsICBbS2FyZWwgWmFrXQorICAgLSBwcm9wZXJseSByZXNldCBwb3NpdGlvbiBpbiBwcm9iaW5nIGNoYWlucyAgW0thcmVsIFpha10KKyAgIC0gcmVmcmVzaCBibGtpZC57aCxzeW19ICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgZHVwbGljYXRlIGRlYnVnIG1lc3NhZ2UgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBzdXBlcmJsb2NrIGZ1bmN0aW9ucyBmcm9tIHByb2JlLmMgIFtLYXJlbCBaYWtdCisgICAtIHJlbmFtZSBoaWdocG9pbnQgUkFJRHMgdG8gaHB0ezM3LDQ1fXhfcmFpZF9tZW1iZXIgIFtLYXJlbCBaYWtdCisgICAtIHJldHVybiBmaXJzdCBkZXRlY3RlZCBjcnlwdG8gZGV2aWNlICBbU2NvdHQgSmFtZXMgUmVtbmFudF0KKyAgIC0gdG9wb2xvZ3kgLSBhZGQgbG9naWNhbCBhbmQgcGh5c2ljYWwgc2VjdG9yIHNpemUgIFtLYXJlbCBaYWtdCisgICAtIHRvcG9sb2d5IC0gaWdub3JlIG5vbi1ibG9ja2RldnMgIFtLYXJlbCBaYWtdCisgICAtIHRyaW0gdGFpbGluZyB3aGl0ZXNwYWNlIGZyb20gdW5pY29kZSBMQUJFTHMgIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSBkb2NzLy5naXRpZ25vcmUgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBCTEtTU1pHRVQgZm9yIEdQVCBzZWN0b3JzICBbS2FyZWwgWmFrXQorICAgLSB1c2UgYmxraWRfbmV3X3Byb2JlX2Zyb21fZmlsZW5hbWUoKSBpbiBkb2NzICBbS2FyZWwgWmFrXQorICAgLSB1c2UgYy5oICBbS2FyZWwgWmFrXQorICAgLSB1c2UgYy5oIGluIHNhbXBsZXMgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBjaGFpbnMgaW4gYmxraWRfZG9fe3NhZmUsZnVsbCx9X3Byb2JlKCkgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBjaGFpbnMgaW4gcHJvYmVyIChkZSlpbml0aWFsaXphdGlvbiAgW0thcmVsIFpha10KKyAgIC0gdXNlIGZzdGF0YXQoKSwgaW1wcm92ZSByZWFkZGlyKCkgdXNhZ2UgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBwcml2YXRlIHtsb29rdXAsZ2V0fV92YWx1ZSBmdW5jdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBzdXBlcmJsb2NrIGZpbHRlciBmdW5jdGlvbnMgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBzdXBlcmJsb2Nrcy5oICBbS2FyZWwgWmFrXQorICAgLSB1c2UgdGhlIG5ldyBBUEkgaW4gd2hvbGUgdS1sLW5nICBbS2FyZWwgWmFrXQorbGlidXVpZDoKKyAgIC0gcmVtb3ZlIC5VRSBtYWNybyBmcm9tIGxpYnV1aWQgbWFuIHBhZ2VzLiAgW01pbGFuIEJyb3pdCitsaW5lOgorICAgLSByZW1vdmUgZGVwcmVjYXRlZCAjaWRlbnQgZGlyZWN0aXZlICBbS2FyZWwgWmFrXQorbG9zZXR1cDoKKyAgIC0gbG9zZXR1cC44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorICAgLSByZW1vdmUgdW51c2VkIG1hY3JvICBbS2FyZWwgWmFrXQorbHNjcHU6CisgICAtIGFkZCB7MzIsNjR9LWJpdCBDUFUgbW9kZXMgZGV0ZWN0aW9uICBbS2FyZWwgWmFrXQorICAgLSBsc2NwdS4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorbWNvb2tpZToKKyAgIC0gbWNvb2tpZS4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorbWVzZzoKKyAgIC0gbWVzZy4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorbWtmczoKKyAgIC0gbWtmcy44IGluY29tcGxldGUgc2VudGVuY2UgYW5kIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorbWtmcy5iZnM6CisgICAtIG1rZnMuYmZzLjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitta2ZzLmNyYW1mczoKKyAgIC0gZml4IGdjYyB3YXJuaW5nIChpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlKSAgW0thcmVsIFpha10KK21rZnMubWluaXg6CisgICAtIGZpeCBzdHJpY3QtYWxpYXNpbmcgYnVncyAgW0thcmVsIFpha10KKyAgIC0gbWtmcy5taW5peC44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorbWtzd2FwOgorICAgLSBmaXggbWVtb3J5IGxlYWtzLCBjbGVhbnVwIGNoZWNrX2Jsb2NrcygpICBbS2FyZWwgWmFrXQorICAgLSBta3N3YXAuOCBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KKyAgIC0gcmVzdG9yZSBkZXZpY2UgYXJndW1lbnQgaW4gbWtzd2FwLjggc3lub3BzaXMgIFtQZXRlciBCcmVpdGVubG9obmVyXQorICAgLSB1bmJyZWFrIC1jICgiY2hlY2siKSBvcHRpb24uICBbUGV0ZXIgRGUgV2FjaHRlcl0KKyAgIC0gdXNlIGxpYmJsa2lkIHRvIGRldGVjdCBQVCAgW0thcmVsIFpha10KK21vcmU6CisgICAtIGxpbWl0ZWQgbGluZSBidWZmZXIgbGVuZ3RoIHJlc3VsdHMgaW4gY29ycnVwdGVkIFVURi04IHRleHQgIFtLYXJlbCBaYWtdCisgICAtIG1vcmUuMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK21vdW50OgorICAgLSBhZGQgLS1uby1jYW5vbmljYWxpemUgb3B0aW9uICBbS2FyZWwgWmFrXQorICAgLSBhZGQgYSBub3RlIGFib3V0IC9kZXYvZGlzay9ieS0qIHRvIG1vdW50LjggIFtLYXJlbCBaYWtdCisgICAtIGFkZCBhIG5vdGUgYWJvdXQgYmluZC1kaXIgcmVtb3VudHMgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBpbmZvIGFib3V0IGV4dHszLDR9IGJhcnJpZXJzIHRvIG1vdW50LjggIFtLYXJlbCBaYWtdCisgICAtIGFkZCBsb25nIG9wdGlvbnMgdG8gbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHNxdWFzaGZzIHRvIG1vdW50LjggIFtLYXJlbCBaYWtdCisgICAtIGFkZCB1YmlmcyB0byB0aGUgbW91bnQuOCBtYW4gcGFnZSAgW1NlYmFzdGlhbiBBbmRyemVqIFNpZXdpb3JdCisgICAtIGFuZCBsaWJibGtpZCAgY292ZXJ0IC9kZXYvZG0tTiB0byAvZGV2L21hcHBlci88bmFtZT4gIFtLYXJlbCBaYWtdCisgICAtIGJldHRlciAtLW1vdmUgZGVzY3JpcHRpb24gIFtLYXJlbCBaYWtdCisgICAtIGNoZWNrIGZvciB1bnN1Y2Nlc3NmdWwgcmVhZC1vbmx5IGJpbmQgbW91bnRzICBbS2FyZWwgWmFrXQorICAgLSBkaXNhYmxlIC0tbm8tY2Fub25pY2FsaXplIGZvciBub24tcm9vdCB1c2VycyAgW0thcmVsIFpha10KKyAgIC0gZG9jdW1lbnQgY2hhbmdlZCBzZW1hbnRpY3Mgb2YgdG1wZnMgc2l6ZSBvcHRpb24gaW4gbW91bnQuOCAgW2tldmluLmdyYW5hZGVAZ21haWwuY29tXQorICAgLSBmaXggbW91bnQuOCwgeGZzIGF0dHIyIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCAgW0thcmVsIFpha10KKyAgIC0gZml4IHJlZmVyZW5jZSB0byBzYW1iYS1jbGllbnQgaW4gbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gZml4IHR5cG8gaW4gbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gbWVudGlvbiBtdGFiIGZvciBzaW5nbGUgbW91bnQgcG9pbnQgbW91bnQgaW4gbW91bnQuOCAgW1BldGVyIFZvbGtvdl0KKyAgIC0gbW9yZSBleHBsaWNpdGx5IGV4cGxhaW4gJ3N0cmljdGF0aW1lJyBpbiBtb3VudC44ICBbS2FyZWwgWmFrXQorICAgLSBtb3JlIHZlcmJvc2UgIm1vdW50ICBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiIG1lc3NhZ2UgIFtLYXJlbCBaYWtdCisgICAtIG1vdW50LjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCisgICAtIG1vdmUgaW5mbyBhYm91dCBkZXZpY2VzIHRvIHRoZSB0b3Agb2YgbW91bnQuOCAgW0thcmVsIFpha10KKyAgIC0gdXBkYXRlIGxpc3Qgb2YgcHNldWRvIGZpbGVzeXN0ZW1zICBbS2FyZWwgWmFrXQorbmFtZWk6CisgICAtIGJldHRlciBtb3VudCBwb2ludHMgZGV0ZWN0aW9uICBbS2FyZWwgWmFrXQorICAgLSBmaXggYWxvbmUgc3ltbGluayBldmFsdWF0aW9uICBbS2FyZWwgWmFrXQorICAgLSBnYXRlciBpbmZvcm1hdGlvbiBhYm91dCAvIChyb290KSAgW0thcmVsIFpha10KKyAgIC0gbmFtZWkuMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KKyAgIC0gdXNlIGMuaCAgW0thcmVsIFpha10KK25ld2dycDoKKyAgIC0gbmV3Z3JwLjEgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCisgICAtIHVzZSBjLmgsIHJlbW92ZSB0YWlsaW5nIHdoaXRlc3BhY2UgIFtLYXJlbCBaYWtdCitwYXJ0eDoKKyAgIC0gcGFydHguOCBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KKyAgIC0gdXNlIGMuaCAgW0thcmVsIFpha10KKyAgIC0gd29yayBwcm9wZXJseSB3aXRoIDUxMiBzZWN0b3JzIChkb3MgUFQpICBbS2FyZWwgWmFrXQorcGc6CisgICAtIGNvbW1hbmQgZW50ZXJzIGluZmluaXRlIGxvb3AgIFtNaWtlIEZyeXNpbmdlcl0KKyAgIC0gY29tcGlsZXIgd2FybmluZyB3aXRoIE5MUyBkaXNhYmxlZCAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCisgICAtIHBnLjEgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitwaXZvdF9yb290OgorICAgLSBwaXZvdF9yb290LjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitwbzoKKyAgIC0gZml4IGdyYW1tYXIgZ2xpdGNoIGluIGdlcm1hbiB0cmFuc2xhdGlvbiAgW0hlbmRyaWsgTMO2bm5ncmVuXQorICAgLSBmaXggbXNnaWQgYnVncyAgW0thcmVsIFpha10KKyAgIC0gbWVyZ2UgY2hhbmdlcyAgW0thcmVsIFpha10KKyAgIC0gdXBkYXRlIFBPVEZJTEVTLmluICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgY3MucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtQZXRyIFBpc2FyXQorICAgLSB1cGRhdGUgZXUucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtNaWtlbCBPbGFzYWdhc3RpIFVyYW5nYV0KKyAgIC0gdXBkYXRlIGV1LnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbTWlrZWwgT2xhc2FnYXN0aV0KKyAgIC0gdXBkYXRlIGZpLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbTGF1cmkgTnVybWldCisgICAtIHVwZGF0ZSBmci5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW05pY29sYXMgUHJvdm9zdF0KKyAgIC0gdXBkYXRlIGlkLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbQXJpZiBFLiBOdWdyb2hvXQorICAgLSB1cGRhdGUgamEucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtNYWtvdG8gS2F0b10KKyAgIC0gdXBkYXRlIHBsLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbSmFrdWIgQm9ndXN6XQorICAgLSB1cGRhdGUgcG8vUE9URklMRVMuaW4gIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSB2aS5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0NseXRpZSBTaWRkYWxsXQorICAgLSB1cGRhdGUgemhfQ04ucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtSYXkgV2FuZ10KK3JkZXY6CisgICAtIHJkZXYuOCBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK3JlYWRwcm9maWxlOgorICAgLSByZWFkcHJvZmlsZS4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorcmVuYW1lOgorICAgLSByZW5hbWUuMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK3JlbmljZToKKyAgIC0gcmVuaWNlLjEgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCityZXNldDoKKyAgIC0gcmVzZXQuMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK3J0Y3dha2U6CisgICAtIGFkZCBTNSBzdXBwb3J0ICBbS2FyZWwgWmFrXQorICAgLSBpZ25vcmUgdGhlIHRtX2lzZHN0IGZpZWxkIHJldHVybmVkIGZyb20gdGhlIFJUQyAgW1BhdWwgRm94XQorICAgLSBydGN3YWtlLjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitzY3JpcHRyZXBsYXk6CisgICAtIGZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UgIFtLYXJlbCBaYWtdCisgICAtIHNjcmlwdHJlcGxheS4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorc2V0YXJjaDoKKyAgIC0gc2V0YXJjaC44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorc2V0c2lkOgorICAgLSBzZXRzaWQuMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KK3NldHRlcm06CisgICAtIHNldHRlcm0uMSBmb3JtYXR0aW5nICBbUGV0ZXIgQnJlaXRlbmxvaG5lcl0KKyAgIC0gdXNlIGMuaCwgcmVtb3ZlIHRhaWxpbmcgd2hpdGVzcGFjZSAgW0thcmVsIFpha10KK3NmZGlzazoKKyAgIC0gY29uZnVzZWQgYWJvdXQgZGlzayBzaXplICBbS2FyZWwgWmFrXQorICAgLSBkdW1wIGhhcyB0byBiZSAkTEFORyBpbnNlbnNpdGl2ZSAgW0thcmVsIFpha10KKyAgIC0gc2ZkaXNrLjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCisgICAtIHVzZSBjLmgsIHJlbW92ZSBvYnNvbGV0ZSAjaWZkZWZzICBbS2FyZWwgWmFrXQorc2h1dGRvd246CisgICAtIHNodXRkb3duLjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitzaW1wbGVpbml0OgorICAgLSBzaW1wbGVpbml0LjggZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCitzd2Fwb246CisgICAtIGZpeCB0eXBvIG9uIHN3YXBvbi44IG1hbnBhZ2UgIFtGbG9yZW50aW4gRHVuZWF1XQorICAgLSBoYW5kbGUgPD1saW51eC0yLjYuMTkgYnVnIGluIC9wcm9jL3N3YXBzICBbTWlrZSBGcnlzaW5nZXJdCisgICAtIG1vcmUgcm9idXN0IHByb2duYW1lIHByb2JpbmcgIFtLYXJlbCBaYWtdCisgICAtIHN3YXBvbi44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQorc3dpdGNoX3Jvb3Q6CisgICAtIGFkZCBub3RlIGFib3V0IHN1YnJvb3RzIHRvIHN3aXRjaF9yb290LjggIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSBUSU9DU0NUVFkgYW5kIHNldHNpZCgpICBbS2FyZWwgWmFrXQorICAgLSBzd2l0Y2hfcm9vdC44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQordGFpbGY6CisgICAtIGZpeCBwcmludGYgZm9ybWF0ICBbTWlrZSBGcnlzaW5nZXJdCisgICAtIHJlcG9ydCBpbm90aWZ5X2FkZF93YXRjaCgpIHByb2JsZW1zICBbS2FyZWwgWmFrXQordGVzdHM6CisgICAtIGFkZCBCRlMgbGliYmxraWQgcmVncmVzc2lvbiB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgTlRGUyBibGtpZCB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgVUJJRlMgdGVzdCBpbWFnZSB0byBibGtpZCB0ZXN0IHN1aXRlICBbQ29yZW50aW4gQ2hhcnldCisgICAtIGFkZCBVRlMgdGVzdCBpbWFnZSBmb3IgbGliYmxraWQgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBWSUEgUkFJRCB0ZXN0IGltYWdlIGZvciBsaWJibGtpZCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGFkYXB0ZWMgUkFJRCB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgYmxraWQgcmVncmVzc2lvbiB0ZXN0cyBmb3IgSVNPOTY2MCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGhwdDM3eCBSQUlEIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBocHQ0NXggUkFJRCB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgaXN3IFJBSUQgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIGptaWNyb24gUkFJRCB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgbHNpIFJBSUQgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIG52aWRpYSBSQUlEIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGFkZCBwYXJ0aXRpb25zIHByb2JpbmcgdGVzdCAgW0thcmVsIFpha10KKyAgIC0gYWRkIHByb21pc2UgUkFJRCB0ZXN0ICBbS2FyZWwgWmFrXQorICAgLSBhZGQgc2lsaWNvbiBSQUlEIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIGZkaXNrIGRvc2xhYmVsIHRlc3QgYWxzbyBjaGVja3MgY2hhbmdpbmcgcGFydGl0aW9uIHR5cGUgIFtaZGVuZWsgQmVoYW5dCisgICAtIGZkaXNrIGRvc2xhYmVsIHRlc3QgYWxzbyBjaGVja3Mgc2V0dGluZyBwYXJ0aXRpb24gYWN0aXZlICBbWmRlbmVrIEJlaGFuXQorICAgLSByZWZyZXNoIEdQVCByZWdyZXNzaW9uIHRlc3QgIFtLYXJlbCBaYWtdCisgICAtIHJlZnJlc2ggbHNjcHUgdGVzdHMgIFtLYXJlbCBaYWtdCisgICAtIHJlbW92ZSB2b2xfaWQgZnJvbSB0ZXN0cyAgW0thcmVsIFpha10KKyAgIC0gcmVuYW1lIGJsa2lkL2ltYWdlcyB0byBibGtpZC9pbWFnZXMtZnMgIFtLYXJlbCBaYWtdCisgICAtIHN3YXBvbiB3b3JrYXJvdW5kIGZvciBsaWJ0b29sIHdyYXBwZXIgIFtLYXJlbCBaYWtdCisgICAtIHRlc3QgZm9yIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2Ygc3VuIGxhYmVscyAgW1pkZW5layBCZWhhbl0KKyAgIC0gdXBkYXRlIGZzY2suaXNtb3VudGVkIHRlc3QgIFtLYXJlbCBaYWtdCit0dW5lbHA6CisgICAtIHR1bmVscC44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQordWw6CisgICAtIHVsLjEgZXJyb25lb3VzIC5TSCBpbnN0ZWFkIG9mIC5TaCAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCit1bW91bnQ6CisgICAtIGFkZCAtLW5vLWNhbm9uaWNhbGl6ZSAgW0thcmVsIFpha10KKyAgIC0gdW1vdW50LjggY29tbWFuZCBsaW5lIGZvciB1bW91bnQgaGVscGVycywgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCit1bnNoYXJlOgorICAgLSBuZXcgY29tbWFuZCAgW01pa2hhaWwgR3VzYXJvdl0KK3V1aWRkOgorICAgLSB1dWlkZC44IGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQordXVpZGdlbjoKKyAgIC0gdXVpZGdlbi4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQordmlwdzoKKyAgIC0gdmlwdy44IHJlbW92ZSBlcnJvbmVvdXMgZW1wdHkgbGluZSwgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCit3aGVyZWlzOgorICAgLSB3aGVyZWlzLjEgZm9ybWF0dGluZyAgW1BldGVyIEJyZWl0ZW5sb2huZXJdCit3aXBlZnM6CisgICAtIGZpeCBjb2Rpbmcgc3R5bGUgIFtLYXJlbCBaYWtdCisgICAtIG5ldyBjb21tYW5kICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgb2Jzb2xldGUgY29tbWVudCAgW0thcmVsIFpha10KK3dyaXRlOgorICAgLSB3cml0ZS4xIGZvcm1hdHRpbmcgIFtQZXRlciBCcmVpdGVubG9obmVyXQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZG9jcy92Mi4xNy4xLVJlbGVhc2VOb3RlcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2RvY3MvdjIuMTcuMS1SZWxlYXNlTm90ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ4NWQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2RvY3MvdjIuMTcuMS1SZWxlYXNlTm90ZXMKQEAgLTAsMCArMSwxMTEgQEAKK1V0aWwtbGludXgtbmcgMi4xNy4xIFJlbGVhc2UgTm90ZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworUmVsZWFzZSBoaWdobGlnaHRzCistLS0tLS0tLS0tLS0tLS0tLS0KKworZmRpc2s6CisgICAtIHN1cHBvcnRzIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uICItYyIgdG8gZGlzYWJsZSBET1MtY29tcGF0aWJsZSBtb2RlIGZyb20KKyAgICAgY29tbWFuZCBsaW5lLgorCisgICAgIFRoZSBET1MtY29tcGF0aWJsZSBtb2RlIGlzIERFUFJFQ0FURUQgYW5kIHdpbGwgYmUgZGlzYWJsZWQgYnkgZGVmYXVsdAorICAgICBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBDdXJyZW50bHksIHRoZSBET1MgbW9kZSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQKKyAgICAgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seS4gCisKKyAgICAgVGhlIGN5bGluZGVycyBhcyBkaXNwbGF5IHVuaXRzIGFyZSBERVBSRUNBVEVELiBJdCdzIHJlY29tbWVuZGVkIHRvIHVzZQorICAgICAiLXUiIGNvbW1hbmQgbGluZSBvcHRpb24gb3IgInUiIGZkaXNrIGNvbW1hbmQgYW5kIHVzZSBzZWN0b3JzIGFzIGRpc3BsYXkKKyAgICAgdW5pdHMuCisKKyAgIE5vdGUgdGhhdCB0aGUgbmV3IHN1cHBvcnQgZm9yIDRLLXNlY3RvciBkaXNrcyBpcyB1c2VsZXNzIGluIERPUy1jb21wYXRpYmxlCisgICBtb2RlLiBUaGUgZmRpc2sgY29tbWFuZCBwcmludHMgd2FybmluZyhzKSB3aGVuIHN0YXJ0dXAgaW4gRE9TIG1vZGUuCisKKworQ2hhbmdlcyBzaW5jZSB2Mi4xNworLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgRm9yIG1vcmUgZGV0YWlscyBzZWUgQ2hhbmdlTG9nIGZpbGVzIGF0OgorIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE3LworCisKK2Jsa2lkOgorICAgLSBhZGQgbmV3bGluZSB3aGVuIG9ubHkgb25lIHZhbHVlIGlzIHByaW50ZWQgIFtLYXJlbCBaYWtdCisgICAtIGZpeCAjaWZkZWYgSEFWRV9URVJNSU9bU11fSCAgW0thcmVsIFpha10KKyAgIC0gcHJvYmUgZm9yIFBULCBkb24ndCBwcm9iZSBmb3IgRlMgb24gc21hbGwgd2hvbGUtZGlza3MgIFtLYXJlbCBaYWtdCisgICAtIHJlcG9ydCBvcGVuKCkgZXJyb3JzIGluIGxvdy1sZXZlbCBwcm9iaW5nICBbS2FyZWwgWmFrXQorYnVpbGQtc3lzOgorICAgLSBhZGQgbWlzc2luZyB0ZXN0cyBmb3IgbGlidXVpZCBhbmQgbGliYmxraWQgIFtLYXJlbCBaYWtdCisgICAtIHJlbGVhc2UrKyAodjIuMTcuMS1yYzEpICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgZHVwbGljYXRlICNpbmNsdWRlcyAgW0thcmVsIFpha10KK2NhbDoKKyAgIC0gZml4IGZpcnN0IGRheSBvZiB0aGUgd2VlayBjYWxjdWxhdGlvbiBvbiBCRSBzeXN0ZW1zICBbS2FyZWwgWmFrXQorY2ZkaXNrOgorICAgLSBzZXQgJ1tOZXddJyBhcyBkZWZhdWx0IGl0ZW0gb24gbWVudSBmb3Igbm9uIGFsbG9jYXRlZCBzcGFjZSBpbnN0ZWFkIG9mICdbSGVscF0nLiAgW0ZyYW5jZXNjbyBDb3NvbGV0b10KKyAgIC0gc2V0ICdbUXVpdF0nIGFzIGRlZmF1bHQgbWVudSBpdGVtIG9uIGZpcnN0IHJ1biBpbnN0ZWFkIG9mICdbQm9vdGFibGVdJy4gIFtGcmFuY2VzY28gQ29zb2xldG9dCitkb2NzOgorICAgLSBhZGQgdjIuMTcuMSBSZWxlYXNlTm90ZXMgIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSBBVVRIT1JTIGZpbGUgIFtLYXJlbCBaYWtdCitmZGlzazoKKyAgIC0gYWRkIC1jIG9wdGlvbiAoc3dpdGNoIG9mZiBET1MgbW9kZSkgIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgYWxpZ25tZW50LCBkZWZhdWx0IHRvIDFNaUIgb2Zmc2V0ICBbS2FyZWwgWmFrXQorICAgLSBjbGVhbnVwIGhlbHAsIGFkZCAtaCBvcHRpb24gIFtLYXJlbCBaYWtdCisgICAtIGNsZWFudXAgd2FybmluZ3MgIFtLYXJlbCBaYWtdCisgICAtIGRvbid0IGNoZWNrIGFsaWdubWVudF9vZmZzZXQgYWdhaW5zdCBnZW9tZXRyeSAgW0thcmVsIFpha10KKyAgIC0gZG9uJ3QgaW5jbHVkZSBzY3NpLmggIFtLYXJlbCBaYWtdCisgICAtIGRvbid0IHVzZSAxTWlCIGdyYWluIG9uIHNtYWxsIGRldmljZXMgIFtLYXJlbCBaYWtdCisgICAtIGZhbGxiYWNrIGZvciB0b3BvbG9neSB2YWx1ZXMgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBBTElHTl9VUCAgW0thcmVsIFpha10KKyAgIC0gZml4IGNoZWNrX2FsaWdubWVudCgpICBbS2FyZWwgWmFrXQorICAgLSBmaXggZGVmYXVsdCBmaXJzdCBzZWN0b3IgIFtLYXJlbCBaYWtdCisgICAtIHN3YXAgVlRPQyB2YWx1ZXMgZm9yIHdhcm5pbmcgbWVzc2FnZXMgIFtLYXJlbCBaYWtdCisgICAtIHVzZSAib3B0aW1hbCBJL08gc2l6ZSIgaW4gd2FybmluZ3MgIFtLYXJlbCBaYWtdCisgICAtIHVzZSAxTWlCIG9mZnNldCBhbmQgZ3JhaW4gYWx3YXlzIHdoZW4gcG9zc2libGUgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBtb3JlIGVsZWdhbnQgd2F5IHRvIGNvdW50IGFuZCBjaGVjayBhbGlnbm1lbnQgIFtLYXJlbCBaYWtdCisgICAtIHVzZSBvcHRpbWFsX2lvX3NpemUgIFtLYXJlbCBaYWtdCitpbmNsdWRlOgorICAgLSBhZGQgbWluL21heCBtYWNyb3MgIFtLYXJlbCBaYWtdCitsaWJibGtpZDoKKyAgIC0gYWRkIG1pbmltYWwgc2l6ZXMgZm9yIE9DRlMgYW5kIEdGUyAgW0thcmVsIFpha10KKyAgIC0gYWRkIHNhbml0eSBjaGVja3MgZm9yIEZBVCB0byBET1MgUFQgcGFyc2VyICBbS2FyZWwgWmFrXQorICAgLSBjYWxsIHJlYWQoKSBwZXIgRkFUIHJvb3QgZGlyIGVudHJ5ICBbS2FyZWwgWmFrXQorICAgLSBkaXNhYmxlIHJlYWQtYWhlYWQgd2hlbiBwcm9iaW5nIGRldmljZSBmaWxlcyAgW0xpbnVzIFRvcnZhbGRzXQorICAgLSBkb24ndCBjYWxsIHJlYWQoKSBwZXIgRkFUIGRpci1lbnRyeSBvbiBsYXJnZSBkaXNrcyAgW0thcmVsIFpha10KKyAgIC0gZG9uJ3QgcHJvYmUgZm9yIEdQVCBhbmQgVW5peHdhcmUgUFQgb24gZmxvcHBpZXMgIFtLYXJlbCBaYWtdCisgICAtIGRvbid0IHJldHVybiBlcnJvciBvbiBlbXB0eSBmaWxlcyAgW0thcmVsIFpha10KKyAgIC0gZml4IFpTRiBkZXRlY3Rpb24gIFtBbmRyZWFzIERpbGdlcl0KKyAgIC0gZml4IHNlZ2ZhdWx0IGluIGRyZGIgIFtNYXR0aGlhcyBLw7ZuaWddCisgICAtIG1vcmUgcm9idXN0IG1pbml4IHByb2JpbmcgIFtLYXJlbCBaYWtdCisgICAtIHJlYWQgd2hvbGUgU0IgYnVmZmVyICg2OWtCKSBvbiBsYXJnZSBkaXNrcyAgW0thcmVsIFpha10KKyAgIC0gcmVhZCgpIG9wdGltaXphdGlvbiBmb3Igc21hbGwgZGV2aWNlcyAgW0thcmVsIFpha10KKyAgIC0gcmVzdHJpY3QgUkFJRC9GUyBwcm92aW5nIGZvciBzbWFsbCBkZXZpY2VzICgxLjRNaUIpICBbS2FyZWwgWmFrXQorICAgLSByZXdyaXRlIGJsa2lkX3Byb2JlX2dldF9idWZmZXIoKSAgW0thcmVsIFpha10KKyAgIC0gc2V0IG1pbmltYWwgc2l6ZSBmb3IgamZzLCByZWlzZXIsIHN3YXAgYW5kIHpmcyAgW0thcmVsIFpha10KK2xvZ2luOgorICAgLSBjaGVjayB0aGF0IGFmdGVyIHR0eSByZW9wZW4gd2Ugc3RpbGwgd29yayB3aXRoIGEgdGVybWluYWwgIFtLYXJlbCBaYWtdCisgICAtIGRvbid0IGxpbmsgUEFNZWQgdmVyc2lvbiB3aXRoIGxpYmNyeXB0ICBbS2FyZWwgWmFrXQorICAgLSB1c2UgZmQgaW5zdGVhZCBvZiBwYXRobmFtZSBmb3IgdXBkYXRlIHR0eSdzIG93bmVyIGFuZCBwZXJtaXNzaW9ucyAgW1lhbm4gRHJvbmVhdWRdCittb3VudDoKKyAgIC0gYWR2aXNlIHVzZXJzIHRvIHVzZSAibW9kcHJvYmUiLCBub3QgImluc21vZCIgIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSBkb2N1bWVudGF0aW9uIGFib3V0IGJhcnJpZXIgbW91bnQgb3B0aW9ucyAgW0phbiBLYXJhXQorICAgLSB3YXJuIHVzZXJzIHRoYXQgbXRhYiBpcyByZWFkLW9ubHkgIFtLYXJlbCBaYWtdCituYW1laToKKyAgIC0gZml4IG1hbiBwYWdlIGZvcm1hdHRpbmcgIFtWbGFkaW1pciBCcmVkbmlrb3ZdCitwbzoKKyAgIC0gbWVyZ2UgY2hhbmdlcyAgW0thcmVsIFpha10KKyAgIC0gdXBkYXRlIGNzLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbUGV0ciBQaXNhcl0KKyAgIC0gdXBkYXRlIGV1LnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbTWlrZWwgT2xhc2FnYXN0aSBVcmFuZ2FdCisgICAtIHVwZGF0ZSBpZC5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0FyaWYgRS4gTnVncm9ob10KKyAgIC0gdXBkYXRlIHBsLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbSmFrdWIgQm9ndXN6XQorICAgLSB1cGRhdGUgdmkucG8gKGZyb20gdHJhbnNsYXRpb25wcm9qZWN0Lm9yZykgIFtDbHl0aWUgU2lkZGFsbF0KK3NmZGlzazoKKyAgIC0gbWFrZSBzdXJlIHdyaXRlcyBtYWtlIGl0IHRvIGRpc2sgaW4gd3JpdGVfcGFydGl0aW9ucygpICBbQnJ5biBNLiBSZWV2ZXNdCitzd2Fwb246CisgICAtIGZpeCBzd2Fwc2l6ZSBjYWxjdWxhdGlvbiAgW0thcmVsIFpha10KK3Rlc3RzOgorICAgLSBhZGQgZmRpc2sgYWxpZ25tZW50IHRlc3RzICBbS2FyZWwgWmFrXQorICAgLSBmaXggUkFJRHMgdGVzdHMgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBhbmQgdXBkYXRlIG9sZCBmZGlzayB0ZXN0cyAgW0thcmVsIFpha10KKyAgIC0gdXBkYXRlIEZTIHRlc3QgaW1hZ2VzICBbS2FyZWwgWmFrXQorICAgLSB1cGRhdGUgZmRpc2sgdGVzdHMgIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSBmZGlzayB0ZXN0cyAoYWRkIHdoaXRlc3BhY2VzKSAgW0thcmVsIFpha10KK3dpcGVmczoKKyAgIC0gaWdub3JlIGRldmljZXMgd2l0aCBwYXJ0aXRpb24gdGFibGUgIFtLYXJlbCBaYWtdCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9kb2NzL3YyLjE3LjItUmVsZWFzZU5vdGVzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZG9jcy92Mi4xNy4yLVJlbGVhc2VOb3RlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmE0MjVlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZG9jcy92Mi4xNy4yLVJlbGVhc2VOb3RlcwpAQCAtMCwwICsxLDQxIEBACitVdGlsLWxpbnV4LW5nIDIuMTcuMiBSZWxlYXNlIE5vdGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0NoYW5nZXMgc2luY2UgdjIuMTcuMQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyBGb3IgbW9yZSBkZXRhaWxzIHNlZSBDaGFuZ2VMb2cgZmlsZXMgYXQ6CisgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTcvCisKKworZG9jczoKKyAgIC0gZml4IHNtYWxsIHR5cG8gaW4gdjIuMTcuMS1SZWxlYXNlTm90ZXMgIFtLYXJlbCBaYWtdCisgICAtIHVwZGF0ZSBBVVRIT1JTIGZpbGUgIFtLYXJlbCBaYWtdCitmZGlzazoKKyAgIC0gZml4IC1iIDxzZWN0b3JzaXplPiAgW0thcmVsIFpha10KK2lvbmljZToKKyAgIC0gZml4IHR5cG8gIFtQaWVycmUgSGF1d2VlbGVdCitsaWI6CisgICAtIGFkZCAjaWZuZGVmIGFyb3VuZCBtaW4oKSBtYXgoKSBtYWNyb3MgIFtLYXJlbCBaYWtdCitsaWJibGtpZDoKKyAgIC0gZml4IGRpc3BsYXkgb2YgZGV2aWNlIHNpemUgIFtLYXJlbCBaYWtdCisgICAtIGZpeCBpbmZpbml0ZSBsb29wIHdoZW4gcHJvYmUgY2hhaW4gYmFpbHMgb3V0IGVhcmx5ICBbQ29saW4gV2F0c29uXQorICAgLSBtb3JlIHJvYnVzdCBtaW5peCBwcm9iaW5nICBbS2FyZWwgWmFrXQorICAgLSByZW1vdmUgIjB4IiBwcmVmaXggZnJvbSBEUkJEIFVVSUQgIFtLYXJlbCBaYWtdCisgICAtIHJlc2V0IEJMS0lEX1RJTllfREVWIGZsYWcgaW4gYmxraWRfcHJvYmVfc2V0X2RldmljZSAgW1Bhc2NhbCBUZXJqYW5dCisgICAtIHN1cHBvcnQgYWxpZ25tZW50X29mZnNldD0tMSAgW0thcmVsIFpha10KK2xzY3B1OgorICAgLSBmaXggY3B1aWQgb3Bjb2RlIGRldGVjdGlvbiAgW0hlbm5lIFZvZ2Vsc2FuZ10KK21vdW50OgorICAgLSBtb3JlIGV4cGxpY2l0bHkgZXhwbGFpbiBmc3RhYiB1c2FnZSBpbiBtb3VudC44ICBbS2FyZWwgWmFrXQorICAgLSBwb3NpeCBvcHRpb24gb2YgdmZhdCBpcyBvYnNvbGV0ZSAgW1lvc2hpaGlybyBUYWthaGFzaGldCisgICAtIHByb3Blcmx5IGlnbm9yZSBjb21tZW50cyBpbiAvZXRjL2ZpbGVzeXN0ZW1zICBbTWlrZSBGcnlzaW5nZXJdCitwbzoKKyAgIC0gbWVyZ2UgY2hhbmdlcyAgW0thcmVsIFpha10KKyAgIC0gdXBkYXRlIGphLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbTWFrb3RvIEthdG9dCisgICAtIHVwZGF0ZSBwbC5wbyAoZnJvbSB0cmFuc2xhdGlvbnByb2plY3Qub3JnKSAgW0pha3ViIEJvZ3Vzel0KKyAgIC0gdXBkYXRlIHZpLnBvIChmcm9tIHRyYW5zbGF0aW9ucHJvamVjdC5vcmcpICBbQ2x5dGllIFNpZGRhbGxdCitzd2Fwb246CisgICAtIHJlbW92ZSAiIChkZWxldGVkKSIgZnJvbSBmaWxlbmFtZXMgZnJvbSAvcHJvYy9zd2FwcyAgW0thcmVsIFpha10KK3dpcGVmczoKKyAgIC0gY2xlYW51cCB1c2FnZSgpIGFuZCBtYW4gcGFnZSAgW0thcmVsIFpha10KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2V4YW1wbGUuZmlsZXMvZmlsZXN5c3RlbXMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL2ZpbGVzeXN0ZW1zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0ZTFiNTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL2ZpbGVzeXN0ZW1zCkBAIC0wLDAgKzEsMTkgQEAKKwlleHQyCisJdmZhdAorCXVtc2RvcworCW1zZG9zCisJaXNvOTY2MAorCW1pbml4CisJbnRmcworCWhwZnMKKwl1ZnMKKwlzeXN2CisJcm9tZnMKKwlyZWlzZXJmcworbm9kZXYJYXV0b2ZzCitub2Rldglwcm9jCitub2RldglzbWJmcworbm9kZXYJbmZzCitub2Rldgljb2RhCitub2RldglkZXZwdHMKK25vZGV2CWRldmZzCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL2ZzdGFiIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9mc3RhYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWI3MmYxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9mc3RhYgpAQCAtMCwwICsxLDIxIEBACisjIC9ldGMvZnN0YWIKKyMgc3RhdGljIGZpbGUgc3lzdGVtIGluZm9ybWF0aW9uCisjCisjIFRoaXMgZmlsZSBpcyBub3QgdXNlZCBieSB0aGUga2VybmVsLCBidXQgcmF0aGVyIGJ5IG1vdW50KDgpIGFuZCB1bW91bnQoOCkKKyMgKGFuZCBzb21lIGRheSBmc2NrKDgpKS4gIENvbW1lbnQgbGluZXMgaGF2ZSAiIyIgaW4gdGhlIGZpcnN0IGNvbHVtbi4KKyMKKyMgRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZzdGFiKDUpIG1hbiBwYWdlLgorIworCisjIGRldmljZQlkaXJlY3RvcnkJdHlwZQlvcHRpb25zCQlmcmVxIHBhc3MKKy9kZXYvc2RhMgkvCQlleHQyCWRlZmF1bHRzICAgICAgICAxICAgIDEKK25vbmUJCS9wcm9jCQlwcm9jCWRlZmF1bHRzICAgICAgICAwICAgIDAKKy9kZXYvc2RiMQlub25lCQlzd2FwCWRlZmF1bHRzICAgICAgICAwICAgIDAKKy9kZXYvc2RiMgkvdmFyCQlleHQyCWRlZmF1bHRzICAgICAgICAxICAgIDEKKy9kZXYvc2RjMQkvdXNyCQlleHQyCWRlZmF1bHRzICAgICAgICAxICAgIDEKKy9kZXYvc2RjMwkvdXNyL3NyYwlleHQyCWRlZmF1bHRzICAgICAgICAxICAgIDEKKy9kZXYvc2RjMgkvaG9tZQkJZXh0MglkZWZhdWx0cyAgICAgICAgMSAgICAxCisvZGV2L3NkYzQJL3BsYXlwZW4JZXh0MglkZWZhdWx0cyAgICAgICAgMSAgICAxCisKKy9kZXYvc2RhMSAgICAgICAvZG9zICAgICAgICAgICAgbXNkb3MgICBub2V4ZWMsY29udj1iaW5hcnksZ2lkPTIwLHVtYXNrPTAwNyAwIDAKKy9kZXYvc2RiMyAgICAgICAvZG9zL3VzciAgICAgICAgbXNkb3MgICBub2V4ZWMsY29udj1iaW5hcnksZ2lkPTIwLHVtYXNrPTAwNyAwIDAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2V4YW1wbGUuZmlsZXMvaW5pdHRhYiBiL3V0aWwtbGludXgtbmctMi4xNy4yL2V4YW1wbGUuZmlsZXMvaW5pdHRhYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDk1MTkwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9pbml0dGFiCkBAIC0wLDAgKzEsMTAgQEAKKyMgaW5pdHRhYgorIyBGb3JtYXQ6CisjIHR0eWxpbmU6dGVybWNhcC1lbnRyeTpnZXR0eS1jb21tYW5kCit0dHkxOmxpbnV4Oi9zYmluL2dldHR5IDk2MDAgdHR5MQordHR5MjpsaW51eDovc2Jpbi9nZXR0eSA5NjAwIHR0eTIKK3R0eTM6bGludXg6L3NiaW4vZ2V0dHkgOTYwMCB0dHkzCit0dHk0OmxpbnV4Oi9zYmluL2dldHR5IDk2MDAgdHR5NAordHR5NTpsaW51eDovc2Jpbi9nZXR0eSA5NjAwIHR0eTUKK3R0eTY6bGludXg6L3NiaW4vZ2V0dHkgOTYwMCB0dHk2Cit0dHlTMTp2dDEwMDovc2Jpbi9nZXR0eSAtTGggMTkyMDAgdHR5UzEKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2V4YW1wbGUuZmlsZXMvaXNzdWUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL2lzc3VlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZDFlYzUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL2lzc3VlCkBAIC0wLDAgKzEsMyBAQAorCitXZWxjb21lIHRvIHdpbnRlciwgYW4gaTQ4NiBydW5uaW5nIEJPR1VTIFJlbGVhc2UgMS4wLjEgTGludXggMS4xLjkwCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2V4YW1wbGUuZmlsZXMvaXNzdWUwIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9pc3N1ZTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg1ZjcxYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2V4YW1wbGUuZmlsZXMvaXNzdWUwCkBAIC0wLDAgKzEgQEAKK1RoaXMgaXMgXG4gKFxzIFxtIFxyKSBcZApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9tb3RkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9tb3RkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MmE2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL21vdGQKQEAgLTAsMCArMSwxMCBAQAorCisgICAgICAgfF5eXl5eXnwKKyAgICAgICB8ICAgICAgfCAgICAgICAgX19fX19fX19fX19fX19fX19fX19fIAorICAgICAgIHwgICAgICB8ICAgICAgIC8gICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgfCAobykobykgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICBAICAgICAgXykgICAgICB8ICAgICBCT0dVUyBtYW4hISAgICAgICB8CisgICAgICAgfCAsX19ffCAgICAgLCx8ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgfCAgIC8gICAuLicnICB8ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAvX19fX1wgICAgICAgICAgXF9fX19fX19fX19fX19fX19fX19fXy8KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9zZWN1cmV0dHkgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL3NlY3VyZXR0eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODc0NzY1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9zZWN1cmV0dHkKQEAgLTAsMCArMSw1IEBACit0dHkxCit0dHkyCit0dHkzCit0dHk0Cit0dHlTMQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9zaGVsbHMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL3NoZWxscwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGI5OWYxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZXhhbXBsZS5maWxlcy9zaGVsbHMKQEAgLTAsMCArMSw0IEBACisvYmluL3NoCisvYmluL2Jhc2gKKy9iaW4vY3NoCisvYmluL3Rjc2gKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2V4YW1wbGUuZmlsZXMvdWRldi1yYXcucnVsZXMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL3VkZXYtcmF3LnJ1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNzljOTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9leGFtcGxlLmZpbGVzL3VkZXYtcmF3LnJ1bGVzCkBAIC0wLDAgKzEsMTEgQEAKKyMgVGhpcyBmaWxlIGFuZCBpbnRlcmZhY2UgYXJlIGRlcHJlY2F0ZWQuCisjIEFwcGxpY2F0aW9ucyBuZWVkaW5nIHJhdyBkZXZpY2UgYWNjZXNzIHNob3VsZCBvcGVuIHJlZ3VsYXIKKyMgYmxvY2sgZGV2aWNlcyB3aXRoIE9fRElSRUNULgorIworIyBFbnRlciByYXcgZGV2aWNlIGJpbmRpbmdzIGhlcmUuCisjCisjIEFuIGV4YW1wbGUgd291bGQgYmU6CisjICAgQUNUSU9OPT0iYWRkIiwgS0VSTkVMPT0ic2RhIiwgUlVOKz0iL2Jpbi9yYXcgL2Rldi9yYXcvcmF3MSAlTiIKKyMgdG8gYmluZCAvZGV2L3Jhdy9yYXcxIHRvIC9kZXYvc2RhLCBvcgorIyAgIEFDVElPTj09ImFkZCIsIEVOVntNQUpPUn09PSI4IiwgRU5We01JTk9SfT09IjEiLCBSVU4rPSIvYmluL3JhdyAvZGV2L3Jhdy9yYXcyICVNICVtIgorIyB0byBiaW5kIC9kZXYvcmF3L3JhdzIgdG8gdGhlIGRldmljZSB3aXRoIG1ham9yIDgsIG1pbm9yIDEuCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9NYWtlZmlsZS5hbSBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0OTZlMjQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDcwIEBACitpbmNsdWRlICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KKworRVhUUkFfRElTVCA9IFJFQURNRS5mZGlzayBSRUFETUUuY2ZkaXNrIHNmZGlzay5leGFtcGxlcyBwYXJ0aXRpb250eXBlLmMKKworZmRpc2tfY29tbW9uID0gaTM4Nl9zeXNfdHlwZXMuYyBjb21tb24uaCBncHQuYyBncHQuaCBcCisJLi4vbGliL2Jsa2Rldi5jIC4uL2xpYi93aG9sZWRpc2suYworCitpZiBMSU5VWAorZmRpc2tfY29tbW9uICs9IC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK2VuZGlmCisKK2lmICFBUkNIX002OEsKKworc2Jpbl9QUk9HUkFNUyA9IGZkaXNrCitkaXN0X21hbl9NQU5TID0gZmRpc2suOAorZmRpc2tfU09VUkNFUyA9IGZkaXNrLmMgZmRpc2tic2RsYWJlbC5jIGZkaXNrc2dpbGFiZWwuYyBcCisJZmRpc2tzdW5sYWJlbC5jIGZkaXNrYWl4bGFiZWwuYyBmZGlza21hY2xhYmVsLmMgcGFydG5hbWUuYyBcCisJZmRpc2suaCBmZGlza3N1bmxhYmVsLmggZmRpc2tzZ2lsYWJlbC5oIGZkaXNrYWl4bGFiZWwuaCBcCisJZmRpc2tic2RsYWJlbC5oIGZkaXNrbWFjbGFiZWwuaCAkKGZkaXNrX2NvbW1vbikKKworY2ZsYWdzX2ZkaXNrID0gJChBTV9DRkxBR1MpCitsZGFkZF9mZGlzayA9CisKK2lmIEJVSUxEX0xJQkJMS0lECisjIG9ubHkgaW4tdHJlZSBsaWJibGtpZCBoYXMgdG9wb2xvZ3kgc3VwcG9ydAorbGRhZGRfZmRpc2sgKz0gJCh1bF9saWJibGtpZF9sYSkKK2NmbGFnc19mZGlzayArPSAtSSQodWxfbGliYmxraWRfaW5jZGlyKQorZW5kaWYKKworaWYgSEFWRV9TVEFUSUNfRkRJU0sKK3NiaW5fUFJPR1JBTVMgKz0gZmRpc2suc3RhdGljCitmZGlza19zdGF0aWNfU09VUkNFUyA9ICQoZmRpc2tfU09VUkNFUykKK2ZkaXNrX3N0YXRpY19MREZMQUdTID0gLWFsbC1zdGF0aWMKK2ZkaXNrX3N0YXRpY19DRkxBR1MgPSAkKGNmbGFnc19mZGlzaykKK2ZkaXNrX3N0YXRpY19MREFERCA9ICQobGRhZGRfZmRpc2spCitlbmRpZgorCitmZGlza19DRkxBR1MgPSAkKGNmbGFnc19mZGlzaykKK2ZkaXNrX0xEQUREID0gJChsZGFkZF9mZGlzaykKKworCitpZiAhQVJDSF9TUEFSQworCitzYmluX1BST0dSQU1TICs9IHNmZGlzaworZGlzdF9tYW5fTUFOUyArPSBzZmRpc2suOAorc2ZkaXNrX1NPVVJDRVMgPSBzZmRpc2suYyBwYXJ0bmFtZS5jICQoZmRpc2tfY29tbW9uKQorCitpZiBIQVZFX1NUQVRJQ19TRkRJU0sKK3NiaW5fUFJPR1JBTVMgKz0gc2ZkaXNrLnN0YXRpYworc2ZkaXNrX3N0YXRpY19TT1VSQ0VTID0gJChzZmRpc2tfU09VUkNFUykKK3NmZGlza19zdGF0aWNfTERGTEFHUyA9IC1hbGwtc3RhdGljCitlbmRpZgorCitpZiBVU0VfU0xBTkcKK3NiaW5fUFJPR1JBTVMgKz0gY2ZkaXNrCitkaXN0X21hbl9NQU5TICs9IGNmZGlzay44CitjZmRpc2tfU09VUkNFUyA9IGNmZGlzay5jICQoZmRpc2tfY29tbW9uKQorY2ZkaXNrX0xEQUREID0gLWxzbGFuZworZWxzZQoraWYgSEFWRV9OQ1VSU0VTCitzYmluX1BST0dSQU1TICs9IGNmZGlzaworZGlzdF9tYW5fTUFOUyArPSBjZmRpc2suOAorY2ZkaXNrX1NPVVJDRVMgPSBjZmRpc2suYyAkKGZkaXNrX2NvbW1vbikKK2NmZGlza19MREFERCA9IEBOQ1VSU0VTX0xJQlNACitlbmRpZgorZW5kaWYKKworZW5kaWYgIyAhQVJDSF9TUEFSQworZW5kaWYgIyAhQVJDSF9NNjhLCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE2NDhlZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsMTI4MSBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoYW1fX2Rpc3Rfbm9pbnN0X0RBVEFfRElTVCkgJChkaXN0X21hbl9NQU5TKSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorQExJTlVYX1RSVUVAYW1fX2FwcGVuZF8xID0gLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQEFSQ0hfTTY4S19GQUxTRUBzYmluX1BST0dSQU1TID0gZmRpc2skKEVYRUVYVCkgJChhbV9fRVhFRVhUXzEpIFwKK0BBUkNIX002OEtfRkFMU0VACSQoYW1fX0VYRUVYVF8yKSAkKGFtX19FWEVFWFRfMykgXAorQEFSQ0hfTTY4S19GQUxTRUAJJChhbV9fRVhFRVhUXzQpICQoYW1fX0VYRUVYVF81KQorCisjIG9ubHkgaW4tdHJlZSBsaWJibGtpZCBoYXMgdG9wb2xvZ3kgc3VwcG9ydAorQEFSQ0hfTTY4S19GQUxTRUBAQlVJTERfTElCQkxLSURfVFJVRUBhbV9fYXBwZW5kXzIgPSAkKHVsX2xpYmJsa2lkX2xhKQorQEFSQ0hfTTY4S19GQUxTRUBAQlVJTERfTElCQkxLSURfVFJVRUBhbV9fYXBwZW5kXzMgPSAtSSQodWxfbGliYmxraWRfaW5jZGlyKQorQEFSQ0hfTTY4S19GQUxTRUBASEFWRV9TVEFUSUNfRkRJU0tfVFJVRUBhbV9fYXBwZW5kXzQgPSBmZGlzay5zdGF0aWMKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAYW1fX2FwcGVuZF81ID0gc2ZkaXNrCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQGFtX19hcHBlbmRfNiA9IHNmZGlzay44CitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQEBIQVZFX1NUQVRJQ19TRkRJU0tfVFJVRUBhbV9fYXBwZW5kXzcgPSBzZmRpc2suc3RhdGljCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQEBVU0VfU0xBTkdfVFJVRUBhbV9fYXBwZW5kXzggPSBjZmRpc2sKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAQFVTRV9TTEFOR19UUlVFQGFtX19hcHBlbmRfOSA9IGNmZGlzay44CitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQEBIQVZFX05DVVJTRVNfVFJVRUBAVVNFX1NMQU5HX0ZBTFNFQGFtX19hcHBlbmRfMTAgPSBjZmRpc2sKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAQEhBVkVfTkNVUlNFU19UUlVFQEBVU0VfU0xBTkdfRkFMU0VAYW1fX2FwcGVuZF8xMSA9IGNmZGlzay44CitzdWJkaXIgPSBmZGlzaworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQEFSQ0hfTTY4S19GQUxTRUBASEFWRV9TVEFUSUNfRkRJU0tfVFJVRUBhbV9fRVhFRVhUXzEgPSBmZGlzay5zdGF0aWMkKEVYRUVYVCkKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAYW1fX0VYRUVYVF8yID0gc2ZkaXNrJChFWEVFWFQpCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQEBIQVZFX1NUQVRJQ19TRkRJU0tfVFJVRUBhbV9fRVhFRVhUXzMgPSBzZmRpc2suc3RhdGljJChFWEVFWFQpCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQEBVU0VfU0xBTkdfVFJVRUBhbV9fRVhFRVhUXzQgPSBjZmRpc2skKEVYRUVYVCkKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAQEhBVkVfTkNVUlNFU19UUlVFQEBVU0VfU0xBTkdfRkFMU0VAYW1fX0VYRUVYVF81ID0gY2ZkaXNrJChFWEVFWFQpCithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoc2JpbmRpcikiICIkKERFU1RESVIpJChtYW44ZGlyKSIKK1BST0dSQU1TID0gJChzYmluX1BST0dSQU1TKQorYW1fX2NmZGlza19TT1VSQ0VTX0RJU1QgPSBjZmRpc2suYyBpMzg2X3N5c190eXBlcy5jIGNvbW1vbi5oIGdwdC5jIFwKKwlncHQuaCAuLi9saWIvYmxrZGV2LmMgLi4vbGliL3dob2xlZGlzay5jIFwKKwkuLi9saWIvbGludXhfdmVyc2lvbi5jCitATElOVVhfVFJVRUBhbV9fb2JqZWN0c18xID0gbGludXhfdmVyc2lvbi4kKE9CSkVYVCkKK2FtX19vYmplY3RzXzIgPSBpMzg2X3N5c190eXBlcy4kKE9CSkVYVCkgZ3B0LiQoT0JKRVhUKSBcCisJYmxrZGV2LiQoT0JKRVhUKSB3aG9sZWRpc2suJChPQkpFWFQpICQoYW1fX29iamVjdHNfMSkKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAQEhBVkVfTkNVUlNFU19UUlVFQEBVU0VfU0xBTkdfRkFMU0VAYW1fY2ZkaXNrX09CSkVDVFMgPSBjZmRpc2suJChPQkpFWFQpIFwKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAQEhBVkVfTkNVUlNFU19UUlVFQEBVU0VfU0xBTkdfRkFMU0VACSQoYW1fX29iamVjdHNfMikKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAQFVTRV9TTEFOR19UUlVFQGFtX2NmZGlza19PQkpFQ1RTID0gY2ZkaXNrLiQoT0JKRVhUKSBcCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQEBVU0VfU0xBTkdfVFJVRUAJJChhbV9fb2JqZWN0c18yKQorY2ZkaXNrX09CSkVDVFMgPSAkKGFtX2NmZGlza19PQkpFQ1RTKQorY2ZkaXNrX0RFUEVOREVOQ0lFUyA9CitBTV9WX2x0ID0gJChhbV9fdl9sdF8kKFYpKQorYW1fX3ZfbHRfID0gJChhbV9fdl9sdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2x0XzAgPSAtLXNpbGVudAorYW1fX2ZkaXNrX1NPVVJDRVNfRElTVCA9IGZkaXNrLmMgZmRpc2tic2RsYWJlbC5jIGZkaXNrc2dpbGFiZWwuYyBcCisJZmRpc2tzdW5sYWJlbC5jIGZkaXNrYWl4bGFiZWwuYyBmZGlza21hY2xhYmVsLmMgcGFydG5hbWUuYyBcCisJZmRpc2suaCBmZGlza3N1bmxhYmVsLmggZmRpc2tzZ2lsYWJlbC5oIGZkaXNrYWl4bGFiZWwuaCBcCisJZmRpc2tic2RsYWJlbC5oIGZkaXNrbWFjbGFiZWwuaCBpMzg2X3N5c190eXBlcy5jIGNvbW1vbi5oIFwKKwlncHQuYyBncHQuaCAuLi9saWIvYmxrZGV2LmMgLi4vbGliL3dob2xlZGlzay5jIFwKKwkuLi9saWIvbGludXhfdmVyc2lvbi5jCitATElOVVhfVFJVRUBhbV9fb2JqZWN0c18zID0gZmRpc2stbGludXhfdmVyc2lvbi4kKE9CSkVYVCkKK2FtX19vYmplY3RzXzQgPSBmZGlzay1pMzg2X3N5c190eXBlcy4kKE9CSkVYVCkgZmRpc2stZ3B0LiQoT0JKRVhUKSBcCisJZmRpc2stYmxrZGV2LiQoT0JKRVhUKSBmZGlzay13aG9sZWRpc2suJChPQkpFWFQpIFwKKwkkKGFtX19vYmplY3RzXzMpCitAQVJDSF9NNjhLX0ZBTFNFQGFtX2ZkaXNrX09CSkVDVFMgPSBmZGlzay1mZGlzay4kKE9CSkVYVCkgXAorQEFSQ0hfTTY4S19GQUxTRUAJZmRpc2stZmRpc2tic2RsYWJlbC4kKE9CSkVYVCkgXAorQEFSQ0hfTTY4S19GQUxTRUAJZmRpc2stZmRpc2tzZ2lsYWJlbC4kKE9CSkVYVCkgXAorQEFSQ0hfTTY4S19GQUxTRUAJZmRpc2stZmRpc2tzdW5sYWJlbC4kKE9CSkVYVCkgXAorQEFSQ0hfTTY4S19GQUxTRUAJZmRpc2stZmRpc2thaXhsYWJlbC4kKE9CSkVYVCkgXAorQEFSQ0hfTTY4S19GQUxTRUAJZmRpc2stZmRpc2ttYWNsYWJlbC4kKE9CSkVYVCkgXAorQEFSQ0hfTTY4S19GQUxTRUAJZmRpc2stcGFydG5hbWUuJChPQkpFWFQpICQoYW1fX29iamVjdHNfNCkKK2ZkaXNrX09CSkVDVFMgPSAkKGFtX2ZkaXNrX09CSkVDVFMpCitAQVJDSF9NNjhLX0ZBTFNFQGZkaXNrX0RFUEVOREVOQ0lFUyA9ICQobGRhZGRfZmRpc2spCitmZGlza19MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV9fZmRpc2tfc3RhdGljX1NPVVJDRVNfRElTVCA9IGZkaXNrLmMgZmRpc2tic2RsYWJlbC5jIFwKKwlmZGlza3NnaWxhYmVsLmMgZmRpc2tzdW5sYWJlbC5jIGZkaXNrYWl4bGFiZWwuYyBcCisJZmRpc2ttYWNsYWJlbC5jIHBhcnRuYW1lLmMgZmRpc2suaCBmZGlza3N1bmxhYmVsLmggXAorCWZkaXNrc2dpbGFiZWwuaCBmZGlza2FpeGxhYmVsLmggZmRpc2tic2RsYWJlbC5oIFwKKwlmZGlza21hY2xhYmVsLmggaTM4Nl9zeXNfdHlwZXMuYyBjb21tb24uaCBncHQuYyBncHQuaCBcCisJLi4vbGliL2Jsa2Rldi5jIC4uL2xpYi93aG9sZWRpc2suYyAuLi9saWIvbGludXhfdmVyc2lvbi5jCitATElOVVhfVFJVRUBhbV9fb2JqZWN0c181ID0gZmRpc2tfc3RhdGljLWxpbnV4X3ZlcnNpb24uJChPQkpFWFQpCithbV9fb2JqZWN0c182ID0gZmRpc2tfc3RhdGljLWkzODZfc3lzX3R5cGVzLiQoT0JKRVhUKSBcCisJZmRpc2tfc3RhdGljLWdwdC4kKE9CSkVYVCkgZmRpc2tfc3RhdGljLWJsa2Rldi4kKE9CSkVYVCkgXAorCWZkaXNrX3N0YXRpYy13aG9sZWRpc2suJChPQkpFWFQpICQoYW1fX29iamVjdHNfNSkKK0BBUkNIX002OEtfRkFMU0VAYW1fX29iamVjdHNfNyA9IGZkaXNrX3N0YXRpYy1mZGlzay4kKE9CSkVYVCkgXAorQEFSQ0hfTTY4S19GQUxTRUAJZmRpc2tfc3RhdGljLWZkaXNrYnNkbGFiZWwuJChPQkpFWFQpIFwKK0BBUkNIX002OEtfRkFMU0VACWZkaXNrX3N0YXRpYy1mZGlza3NnaWxhYmVsLiQoT0JKRVhUKSBcCitAQVJDSF9NNjhLX0ZBTFNFQAlmZGlza19zdGF0aWMtZmRpc2tzdW5sYWJlbC4kKE9CSkVYVCkgXAorQEFSQ0hfTTY4S19GQUxTRUAJZmRpc2tfc3RhdGljLWZkaXNrYWl4bGFiZWwuJChPQkpFWFQpIFwKK0BBUkNIX002OEtfRkFMU0VACWZkaXNrX3N0YXRpYy1mZGlza21hY2xhYmVsLiQoT0JKRVhUKSBcCitAQVJDSF9NNjhLX0ZBTFNFQAlmZGlza19zdGF0aWMtcGFydG5hbWUuJChPQkpFWFQpIFwKK0BBUkNIX002OEtfRkFMU0VACSQoYW1fX29iamVjdHNfNikKK0BBUkNIX002OEtfRkFMU0VAQEhBVkVfU1RBVElDX0ZESVNLX1RSVUVAYW1fZmRpc2tfc3RhdGljX09CSkVDVFMgPSAgXAorQEFSQ0hfTTY4S19GQUxTRUBASEFWRV9TVEFUSUNfRkRJU0tfVFJVRUAJJChhbV9fb2JqZWN0c183KQorZmRpc2tfc3RhdGljX09CSkVDVFMgPSAkKGFtX2ZkaXNrX3N0YXRpY19PQkpFQ1RTKQorQEFSQ0hfTTY4S19GQUxTRUBASEFWRV9TVEFUSUNfRkRJU0tfVFJVRUBmZGlza19zdGF0aWNfREVQRU5ERU5DSUVTID0gIFwKK0BBUkNIX002OEtfRkFMU0VAQEhBVkVfU1RBVElDX0ZESVNLX1RSVUVACSQobGRhZGRfZmRpc2spCitmZGlza19zdGF0aWNfTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgXAorCSQoQ0ZMQUdTKSAkKGZkaXNrX3N0YXRpY19MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV9fc2ZkaXNrX1NPVVJDRVNfRElTVCA9IHNmZGlzay5jIHBhcnRuYW1lLmMgaTM4Nl9zeXNfdHlwZXMuYyBcCisJY29tbW9uLmggZ3B0LmMgZ3B0LmggLi4vbGliL2Jsa2Rldi5jIC4uL2xpYi93aG9sZWRpc2suYyBcCisJLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQEFSQ0hfTTY4S19GQUxTRUBAQVJDSF9TUEFSQ19GQUxTRUBhbV9zZmRpc2tfT0JKRUNUUyA9ICBcCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQAlzZmRpc2suJChPQkpFWFQpIFwKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VACXBhcnRuYW1lLiQoT0JKRVhUKSBcCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQAkkKGFtX19vYmplY3RzXzIpCitzZmRpc2tfT0JKRUNUUyA9ICQoYW1fc2ZkaXNrX09CSkVDVFMpCitzZmRpc2tfTERBREQgPSAkKExEQUREKQorYW1fX3NmZGlza19zdGF0aWNfU09VUkNFU19ESVNUID0gc2ZkaXNrLmMgcGFydG5hbWUuYyBpMzg2X3N5c190eXBlcy5jIFwKKwljb21tb24uaCBncHQuYyBncHQuaCAuLi9saWIvYmxrZGV2LmMgLi4vbGliL3dob2xlZGlzay5jIFwKKwkuLi9saWIvbGludXhfdmVyc2lvbi5jCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQGFtX19vYmplY3RzXzggPSBzZmRpc2suJChPQkpFWFQpIFwKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VACXBhcnRuYW1lLiQoT0JKRVhUKSBcCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQAkkKGFtX19vYmplY3RzXzIpCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQEBIQVZFX1NUQVRJQ19TRkRJU0tfVFJVRUBhbV9zZmRpc2tfc3RhdGljX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzgpCitzZmRpc2tfc3RhdGljX09CSkVDVFMgPSAkKGFtX3NmZGlza19zdGF0aWNfT0JKRUNUUykKK3NmZGlza19zdGF0aWNfTERBREQgPSAkKExEQUREKQorc2ZkaXNrX3N0YXRpY19MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChzZmRpc2tfc3RhdGljX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpCitkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKK2FtX19tdiA9IG12IC1mCitDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitMVENPTVBJTEUgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSBcCisJJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSBcCisJJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorQU1fVl9DQyA9ICQoYW1fX3ZfQ0NfJChWKSkKK2FtX192X0NDXyA9ICQoYW1fX3ZfQ0NfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ18wID0gQGVjaG8gIiAgQ0MgICAgIiAkQDsKK0FNX1ZfYXQgPSAkKGFtX192X2F0XyQoVikpCithbV9fdl9hdF8gPSAkKGFtX192X2F0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfYXRfMCA9IEAKK0NDTEQgPSAkKENDKQorTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorQU1fVl9DQ0xEID0gJChhbV9fdl9DQ0xEXyQoVikpCithbV9fdl9DQ0xEXyA9ICQoYW1fX3ZfQ0NMRF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDTERfMCA9IEBlY2hvICIgIENDTEQgICIgJEA7CitBTV9WX0dFTiA9ICQoYW1fX3ZfR0VOXyQoVikpCithbV9fdl9HRU5fID0gJChhbV9fdl9HRU5fJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9HRU5fMCA9IEBlY2hvICIgIEdFTiAgICIgJEA7CitTT1VSQ0VTID0gJChjZmRpc2tfU09VUkNFUykgJChmZGlza19TT1VSQ0VTKSAkKGZkaXNrX3N0YXRpY19TT1VSQ0VTKSBcCisJJChzZmRpc2tfU09VUkNFUykgJChzZmRpc2tfc3RhdGljX1NPVVJDRVMpCitESVNUX1NPVVJDRVMgPSAkKGFtX19jZmRpc2tfU09VUkNFU19ESVNUKSAkKGFtX19mZGlza19TT1VSQ0VTX0RJU1QpIFwKKwkkKGFtX19mZGlza19zdGF0aWNfU09VUkNFU19ESVNUKSAkKGFtX19zZmRpc2tfU09VUkNFU19ESVNUKSBcCisJJChhbV9fc2ZkaXNrX3N0YXRpY19TT1VSQ0VTX0RJU1QpCithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCittYW44ZGlyID0gJChtYW5kaXIpL21hbjgKK05ST0ZGID0gbnJvZmYKK01BTlMgPSAkKGRpc3RfbWFuX01BTlMpCithbV9fZGlzdF9ub2luc3RfREFUQV9ESVNUID0gZmRpc2suOCBzZmRpc2suOCBjZmRpc2suOAorREFUQSA9ICQoZGlzdF9ub2luc3RfREFUQSkKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitFWFRSQV9ESVNUID0gUkVBRE1FLmZkaXNrIFJFQURNRS5jZmRpc2sgc2ZkaXNrLmV4YW1wbGVzIHBhcnRpdGlvbnR5cGUuYworZmRpc2tfY29tbW9uID0gaTM4Nl9zeXNfdHlwZXMuYyBjb21tb24uaCBncHQuYyBncHQuaCAuLi9saWIvYmxrZGV2LmMgXAorCS4uL2xpYi93aG9sZWRpc2suYyAkKGFtX19hcHBlbmRfMSkKK0BBUkNIX002OEtfRkFMU0VAZGlzdF9tYW5fTUFOUyA9IGZkaXNrLjggJChhbV9fYXBwZW5kXzYpIFwKK0BBUkNIX002OEtfRkFMU0VACSQoYW1fX2FwcGVuZF85KSAkKGFtX19hcHBlbmRfMTEpCitAQVJDSF9NNjhLX0ZBTFNFQGZkaXNrX1NPVVJDRVMgPSBmZGlzay5jIGZkaXNrYnNkbGFiZWwuYyBmZGlza3NnaWxhYmVsLmMgXAorQEFSQ0hfTTY4S19GQUxTRUAJZmRpc2tzdW5sYWJlbC5jIGZkaXNrYWl4bGFiZWwuYyBmZGlza21hY2xhYmVsLmMgcGFydG5hbWUuYyBcCitAQVJDSF9NNjhLX0ZBTFNFQAlmZGlzay5oIGZkaXNrc3VubGFiZWwuaCBmZGlza3NnaWxhYmVsLmggZmRpc2thaXhsYWJlbC5oIFwKK0BBUkNIX002OEtfRkFMU0VACWZkaXNrYnNkbGFiZWwuaCBmZGlza21hY2xhYmVsLmggJChmZGlza19jb21tb24pCisKK0BBUkNIX002OEtfRkFMU0VAY2ZsYWdzX2ZkaXNrID0gJChBTV9DRkxBR1MpICQoYW1fX2FwcGVuZF8zKQorQEFSQ0hfTTY4S19GQUxTRUBsZGFkZF9mZGlzayA9ICQoYW1fX2FwcGVuZF8yKQorQEFSQ0hfTTY4S19GQUxTRUBASEFWRV9TVEFUSUNfRkRJU0tfVFJVRUBmZGlza19zdGF0aWNfU09VUkNFUyA9ICQoZmRpc2tfU09VUkNFUykKK0BBUkNIX002OEtfRkFMU0VAQEhBVkVfU1RBVElDX0ZESVNLX1RSVUVAZmRpc2tfc3RhdGljX0xERkxBR1MgPSAtYWxsLXN0YXRpYworQEFSQ0hfTTY4S19GQUxTRUBASEFWRV9TVEFUSUNfRkRJU0tfVFJVRUBmZGlza19zdGF0aWNfQ0ZMQUdTID0gJChjZmxhZ3NfZmRpc2spCitAQVJDSF9NNjhLX0ZBTFNFQEBIQVZFX1NUQVRJQ19GRElTS19UUlVFQGZkaXNrX3N0YXRpY19MREFERCA9ICQobGRhZGRfZmRpc2spCitAQVJDSF9NNjhLX0ZBTFNFQGZkaXNrX0NGTEFHUyA9ICQoY2ZsYWdzX2ZkaXNrKQorQEFSQ0hfTTY4S19GQUxTRUBmZGlza19MREFERCA9ICQobGRhZGRfZmRpc2spCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQHNmZGlza19TT1VSQ0VTID0gc2ZkaXNrLmMgcGFydG5hbWUuYyAkKGZkaXNrX2NvbW1vbikKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAQEhBVkVfU1RBVElDX1NGRElTS19UUlVFQHNmZGlza19zdGF0aWNfU09VUkNFUyA9ICQoc2ZkaXNrX1NPVVJDRVMpCitAQVJDSF9NNjhLX0ZBTFNFQEBBUkNIX1NQQVJDX0ZBTFNFQEBIQVZFX1NUQVRJQ19TRkRJU0tfVFJVRUBzZmRpc2tfc3RhdGljX0xERkxBR1MgPSAtYWxsLXN0YXRpYworQEFSQ0hfTTY4S19GQUxTRUBAQVJDSF9TUEFSQ19GQUxTRUBASEFWRV9OQ1VSU0VTX1RSVUVAQFVTRV9TTEFOR19GQUxTRUBjZmRpc2tfU09VUkNFUyA9IGNmZGlzay5jICQoZmRpc2tfY29tbW9uKQorQEFSQ0hfTTY4S19GQUxTRUBAQVJDSF9TUEFSQ19GQUxTRUBAVVNFX1NMQU5HX1RSVUVAY2ZkaXNrX1NPVVJDRVMgPSBjZmRpc2suYyAkKGZkaXNrX2NvbW1vbikKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAQEhBVkVfTkNVUlNFU19UUlVFQEBVU0VfU0xBTkdfRkFMU0VAY2ZkaXNrX0xEQUREID0gQE5DVVJTRVNfTElCU0AKK0BBUkNIX002OEtfRkFMU0VAQEFSQ0hfU1BBUkNfRkFMU0VAQFVTRV9TTEFOR19UUlVFQGNmZGlza19MREFERCA9IC1sc2xhbmcKK2FsbDogYWxsLWFtCisKKy5TVUZGSVhFUzoKKy5TVUZGSVhFUzogLmMgLmxvIC5vIC5vYmoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiBmZGlzay9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gZmRpc2svTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgoraW5zdGFsbC1zYmluUFJPR1JBTVM6ICQoc2Jpbl9QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHNiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChzYmluZGlyKSIKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoc2JpbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJChzYmluZGlyKSQkZGlyJyI7IFwKKwkgICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgIiQoREVTVERJUikkKHNiaW5kaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtc2JpblBST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoc2Jpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHNiaW5kaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChzYmluZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHNiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK2NsZWFuLXNiaW5QUk9HUkFNUzoKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAorY2ZkaXNrJChFWEVFWFQpOiAkKGNmZGlza19PQkpFQ1RTKSAkKGNmZGlza19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBjZmRpc2skKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoY2ZkaXNrX09CSkVDVFMpICQoY2ZkaXNrX0xEQUREKSAkKExJQlMpCitmZGlzayQoRVhFRVhUKTogJChmZGlza19PQkpFQ1RTKSAkKGZkaXNrX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGZkaXNrJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChmZGlza19MSU5LKSAkKGZkaXNrX09CSkVDVFMpICQoZmRpc2tfTERBREQpICQoTElCUykKK2ZkaXNrLnN0YXRpYyQoRVhFRVhUKTogJChmZGlza19zdGF0aWNfT0JKRUNUUykgJChmZGlza19zdGF0aWNfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgZmRpc2suc3RhdGljJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChmZGlza19zdGF0aWNfTElOSykgJChmZGlza19zdGF0aWNfT0JKRUNUUykgJChmZGlza19zdGF0aWNfTERBREQpICQoTElCUykKK3NmZGlzayQoRVhFRVhUKTogJChzZmRpc2tfT0JKRUNUUykgJChzZmRpc2tfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgc2ZkaXNrJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHNmZGlza19PQkpFQ1RTKSAkKHNmZGlza19MREFERCkgJChMSUJTKQorc2ZkaXNrLnN0YXRpYyQoRVhFRVhUKTogJChzZmRpc2tfc3RhdGljX09CSkVDVFMpICQoc2ZkaXNrX3N0YXRpY19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBzZmRpc2suc3RhdGljJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChzZmRpc2tfc3RhdGljX0xJTkspICQoc2ZkaXNrX3N0YXRpY19PQkpFQ1RTKSAkKHNmZGlza19zdGF0aWNfTERBREQpICQoTElCUykKKworbW9zdGx5Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi4kKE9CSkVYVCkKKworZGlzdGNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICoudGFiLmMKKworQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2Jsa2Rldi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY2ZkaXNrLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlzay1ibGtkZXYuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2ZkaXNrLWZkaXNrLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlzay1mZGlza2FpeGxhYmVsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlzay1mZGlza2JzZGxhYmVsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlzay1mZGlza21hY2xhYmVsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlzay1mZGlza3NnaWxhYmVsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlzay1mZGlza3N1bmxhYmVsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlzay1ncHQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2ZkaXNrLWkzODZfc3lzX3R5cGVzLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlzay1saW51eF92ZXJzaW9uLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlzay1wYXJ0bmFtZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZmRpc2std2hvbGVkaXNrLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlza19zdGF0aWMtYmxrZGV2LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2suUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza2FpeGxhYmVsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2tic2RsYWJlbC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrbWFjbGFiZWwuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza3NnaWxhYmVsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2tzdW5sYWJlbC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZmRpc2tfc3RhdGljLWdwdC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZmRpc2tfc3RhdGljLWkzODZfc3lzX3R5cGVzLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlza19zdGF0aWMtbGludXhfdmVyc2lvbi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZmRpc2tfc3RhdGljLXBhcnRuYW1lLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mZGlza19zdGF0aWMtd2hvbGVkaXNrLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ncHQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2kzODZfc3lzX3R5cGVzLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saW51eF92ZXJzaW9uLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9wYXJ0bmFtZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc2ZkaXNrLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS93aG9sZWRpc2suUG9AYW1fX3F1b3RlQAorCisuYy5vOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyAkPAorCisuYy5vYmo6CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgYCQoQ1lHUEFUSF9XKSAnJDwnYAorCisuYy5sbzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKExUQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKExUQ09NUElMRSkgLWMgLW8gJEAgJDwKKworYmxrZGV2Lm86IC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBibGtkZXYubyAtTUQgLU1QIC1NRiAkKERFUERJUikvYmxrZGV2LlRwbyAtYyAtbyBibGtkZXYubyBgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2Jsa2Rldi5UcG8gJChERVBESVIpL2Jsa2Rldi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9ibGtkZXYuYycgb2JqZWN0PSdibGtkZXYubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gYmxrZGV2Lm8gYHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Jsa2Rldi5jCisKK2Jsa2Rldi5vYmo6IC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBibGtkZXYub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9ibGtkZXYuVHBvIC1jIC1vIGJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvYmxrZGV2LlRwbyAkKERFUERJUikvYmxrZGV2LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Jsa2Rldi5jJyBvYmplY3Q9J2Jsa2Rldi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorCit3aG9sZWRpc2subzogLi4vbGliL3dob2xlZGlzay5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHdob2xlZGlzay5vIC1NRCAtTVAgLU1GICQoREVQRElSKS93aG9sZWRpc2suVHBvIC1jIC1vIHdob2xlZGlzay5vIGB0ZXN0IC1mICcuLi9saWIvd2hvbGVkaXNrLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi93aG9sZWRpc2suYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvd2hvbGVkaXNrLlRwbyAkKERFUERJUikvd2hvbGVkaXNrLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL3dob2xlZGlzay5jJyBvYmplY3Q9J3dob2xlZGlzay5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB3aG9sZWRpc2subyBgdGVzdCAtZiAnLi4vbGliL3dob2xlZGlzay5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvd2hvbGVkaXNrLmMKKword2hvbGVkaXNrLm9iajogLi4vbGliL3dob2xlZGlzay5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHdob2xlZGlzay5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3dob2xlZGlzay5UcG8gLWMgLW8gd2hvbGVkaXNrLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL3dob2xlZGlzay5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi93aG9sZWRpc2suYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL3dob2xlZGlzay5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS93aG9sZWRpc2suVHBvICQoREVQRElSKS93aG9sZWRpc2suUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvd2hvbGVkaXNrLmMnIG9iamVjdD0nd2hvbGVkaXNrLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gd2hvbGVkaXNrLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL3dob2xlZGlzay5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi93aG9sZWRpc2suYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL3dob2xlZGlzay5jJzsgZmlgCisKK2xpbnV4X3ZlcnNpb24ubzogLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsaW51eF92ZXJzaW9uLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpbnV4X3ZlcnNpb24uVHBvIC1jIC1vIGxpbnV4X3ZlcnNpb24ubyBgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbGludXhfdmVyc2lvbi5UcG8gJChERVBESVIpL2xpbnV4X3ZlcnNpb24uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvbGludXhfdmVyc2lvbi5jJyBvYmplY3Q9J2xpbnV4X3ZlcnNpb24ubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbGludXhfdmVyc2lvbi5vIGB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvbGludXhfdmVyc2lvbi5jCisKK2xpbnV4X3ZlcnNpb24ub2JqOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGxpbnV4X3ZlcnNpb24ub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9saW51eF92ZXJzaW9uLlRwbyAtYyAtbyBsaW51eF92ZXJzaW9uLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9saW51eF92ZXJzaW9uLlRwbyAkKERFUERJUikvbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0nbGludXhfdmVyc2lvbi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGxpbnV4X3ZlcnNpb24ub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBmaWAKKworZmRpc2stZmRpc2subzogZmRpc2suYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1mZGlzay5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1mZGlzay5UcG8gLWMgLW8gZmRpc2stZmRpc2subyBgdGVzdCAtZiAnZmRpc2suYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2suYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2stZmRpc2suVHBvICQoREVQRElSKS9mZGlzay1mZGlzay5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrLmMnIG9iamVjdD0nZmRpc2stZmRpc2subycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2stZmRpc2subyBgdGVzdCAtZiAnZmRpc2suYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2suYworCitmZGlzay1mZGlzay5vYmo6IGZkaXNrLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2stZmRpc2sub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1mZGlzay5UcG8gLWMgLW8gZmRpc2stZmRpc2sub2JqIGBpZiB0ZXN0IC1mICdmZGlzay5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZkaXNrLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrLWZkaXNrLlRwbyAkKERFUERJUikvZmRpc2stZmRpc2suUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlzay5jJyBvYmplY3Q9J2ZkaXNrLWZkaXNrLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2stZmRpc2sub2JqIGBpZiB0ZXN0IC1mICdmZGlzay5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZkaXNrLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrLmMnOyBmaWAKKworZmRpc2stZmRpc2tic2RsYWJlbC5vOiBmZGlza2JzZGxhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2stZmRpc2tic2RsYWJlbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1mZGlza2JzZGxhYmVsLlRwbyAtYyAtbyBmZGlzay1mZGlza2JzZGxhYmVsLm8gYHRlc3QgLWYgJ2ZkaXNrYnNkbGFiZWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2tic2RsYWJlbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlzay1mZGlza2JzZGxhYmVsLlRwbyAkKERFUERJUikvZmRpc2stZmRpc2tic2RsYWJlbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrYnNkbGFiZWwuYycgb2JqZWN0PSdmZGlzay1mZGlza2JzZGxhYmVsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrYnNkbGFiZWwubyBgdGVzdCAtZiAnZmRpc2tic2RsYWJlbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BmZGlza2JzZGxhYmVsLmMKKworZmRpc2stZmRpc2tic2RsYWJlbC5vYmo6IGZkaXNrYnNkbGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1mZGlza2JzZGxhYmVsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2stZmRpc2tic2RsYWJlbC5UcG8gLWMgLW8gZmRpc2stZmRpc2tic2RsYWJlbC5vYmogYGlmIHRlc3QgLWYgJ2ZkaXNrYnNkbGFiZWwuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmZGlza2JzZGxhYmVsLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrYnNkbGFiZWwuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2stZmRpc2tic2RsYWJlbC5UcG8gJChERVBESVIpL2ZkaXNrLWZkaXNrYnNkbGFiZWwuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlza2JzZGxhYmVsLmMnIG9iamVjdD0nZmRpc2stZmRpc2tic2RsYWJlbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrYnNkbGFiZWwub2JqIGBpZiB0ZXN0IC1mICdmZGlza2JzZGxhYmVsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2tic2RsYWJlbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mZGlza2JzZGxhYmVsLmMnOyBmaWAKKworZmRpc2stZmRpc2tzZ2lsYWJlbC5vOiBmZGlza3NnaWxhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2stZmRpc2tzZ2lsYWJlbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1mZGlza3NnaWxhYmVsLlRwbyAtYyAtbyBmZGlzay1mZGlza3NnaWxhYmVsLm8gYHRlc3QgLWYgJ2ZkaXNrc2dpbGFiZWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2tzZ2lsYWJlbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlzay1mZGlza3NnaWxhYmVsLlRwbyAkKERFUERJUikvZmRpc2stZmRpc2tzZ2lsYWJlbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrc2dpbGFiZWwuYycgb2JqZWN0PSdmZGlzay1mZGlza3NnaWxhYmVsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrc2dpbGFiZWwubyBgdGVzdCAtZiAnZmRpc2tzZ2lsYWJlbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BmZGlza3NnaWxhYmVsLmMKKworZmRpc2stZmRpc2tzZ2lsYWJlbC5vYmo6IGZkaXNrc2dpbGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1mZGlza3NnaWxhYmVsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2stZmRpc2tzZ2lsYWJlbC5UcG8gLWMgLW8gZmRpc2stZmRpc2tzZ2lsYWJlbC5vYmogYGlmIHRlc3QgLWYgJ2ZkaXNrc2dpbGFiZWwuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmZGlza3NnaWxhYmVsLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrc2dpbGFiZWwuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2stZmRpc2tzZ2lsYWJlbC5UcG8gJChERVBESVIpL2ZkaXNrLWZkaXNrc2dpbGFiZWwuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlza3NnaWxhYmVsLmMnIG9iamVjdD0nZmRpc2stZmRpc2tzZ2lsYWJlbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrc2dpbGFiZWwub2JqIGBpZiB0ZXN0IC1mICdmZGlza3NnaWxhYmVsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2tzZ2lsYWJlbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mZGlza3NnaWxhYmVsLmMnOyBmaWAKKworZmRpc2stZmRpc2tzdW5sYWJlbC5vOiBmZGlza3N1bmxhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2stZmRpc2tzdW5sYWJlbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1mZGlza3N1bmxhYmVsLlRwbyAtYyAtbyBmZGlzay1mZGlza3N1bmxhYmVsLm8gYHRlc3QgLWYgJ2ZkaXNrc3VubGFiZWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2tzdW5sYWJlbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlzay1mZGlza3N1bmxhYmVsLlRwbyAkKERFUERJUikvZmRpc2stZmRpc2tzdW5sYWJlbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrc3VubGFiZWwuYycgb2JqZWN0PSdmZGlzay1mZGlza3N1bmxhYmVsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrc3VubGFiZWwubyBgdGVzdCAtZiAnZmRpc2tzdW5sYWJlbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BmZGlza3N1bmxhYmVsLmMKKworZmRpc2stZmRpc2tzdW5sYWJlbC5vYmo6IGZkaXNrc3VubGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1mZGlza3N1bmxhYmVsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2stZmRpc2tzdW5sYWJlbC5UcG8gLWMgLW8gZmRpc2stZmRpc2tzdW5sYWJlbC5vYmogYGlmIHRlc3QgLWYgJ2ZkaXNrc3VubGFiZWwuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmZGlza3N1bmxhYmVsLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrc3VubGFiZWwuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2stZmRpc2tzdW5sYWJlbC5UcG8gJChERVBESVIpL2ZkaXNrLWZkaXNrc3VubGFiZWwuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlza3N1bmxhYmVsLmMnIG9iamVjdD0nZmRpc2stZmRpc2tzdW5sYWJlbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrc3VubGFiZWwub2JqIGBpZiB0ZXN0IC1mICdmZGlza3N1bmxhYmVsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2tzdW5sYWJlbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mZGlza3N1bmxhYmVsLmMnOyBmaWAKKworZmRpc2stZmRpc2thaXhsYWJlbC5vOiBmZGlza2FpeGxhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2stZmRpc2thaXhsYWJlbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1mZGlza2FpeGxhYmVsLlRwbyAtYyAtbyBmZGlzay1mZGlza2FpeGxhYmVsLm8gYHRlc3QgLWYgJ2ZkaXNrYWl4bGFiZWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2thaXhsYWJlbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlzay1mZGlza2FpeGxhYmVsLlRwbyAkKERFUERJUikvZmRpc2stZmRpc2thaXhsYWJlbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrYWl4bGFiZWwuYycgb2JqZWN0PSdmZGlzay1mZGlza2FpeGxhYmVsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrYWl4bGFiZWwubyBgdGVzdCAtZiAnZmRpc2thaXhsYWJlbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BmZGlza2FpeGxhYmVsLmMKKworZmRpc2stZmRpc2thaXhsYWJlbC5vYmo6IGZkaXNrYWl4bGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1mZGlza2FpeGxhYmVsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2stZmRpc2thaXhsYWJlbC5UcG8gLWMgLW8gZmRpc2stZmRpc2thaXhsYWJlbC5vYmogYGlmIHRlc3QgLWYgJ2ZkaXNrYWl4bGFiZWwuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmZGlza2FpeGxhYmVsLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrYWl4bGFiZWwuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2stZmRpc2thaXhsYWJlbC5UcG8gJChERVBESVIpL2ZkaXNrLWZkaXNrYWl4bGFiZWwuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlza2FpeGxhYmVsLmMnIG9iamVjdD0nZmRpc2stZmRpc2thaXhsYWJlbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrYWl4bGFiZWwub2JqIGBpZiB0ZXN0IC1mICdmZGlza2FpeGxhYmVsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2thaXhsYWJlbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mZGlza2FpeGxhYmVsLmMnOyBmaWAKKworZmRpc2stZmRpc2ttYWNsYWJlbC5vOiBmZGlza21hY2xhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2stZmRpc2ttYWNsYWJlbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1mZGlza21hY2xhYmVsLlRwbyAtYyAtbyBmZGlzay1mZGlza21hY2xhYmVsLm8gYHRlc3QgLWYgJ2ZkaXNrbWFjbGFiZWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2ttYWNsYWJlbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlzay1mZGlza21hY2xhYmVsLlRwbyAkKERFUERJUikvZmRpc2stZmRpc2ttYWNsYWJlbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrbWFjbGFiZWwuYycgb2JqZWN0PSdmZGlzay1mZGlza21hY2xhYmVsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrbWFjbGFiZWwubyBgdGVzdCAtZiAnZmRpc2ttYWNsYWJlbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BmZGlza21hY2xhYmVsLmMKKworZmRpc2stZmRpc2ttYWNsYWJlbC5vYmo6IGZkaXNrbWFjbGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1mZGlza21hY2xhYmVsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2stZmRpc2ttYWNsYWJlbC5UcG8gLWMgLW8gZmRpc2stZmRpc2ttYWNsYWJlbC5vYmogYGlmIHRlc3QgLWYgJ2ZkaXNrbWFjbGFiZWwuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmZGlza21hY2xhYmVsLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrbWFjbGFiZWwuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2stZmRpc2ttYWNsYWJlbC5UcG8gJChERVBESVIpL2ZkaXNrLWZkaXNrbWFjbGFiZWwuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlza21hY2xhYmVsLmMnIG9iamVjdD0nZmRpc2stZmRpc2ttYWNsYWJlbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWZkaXNrbWFjbGFiZWwub2JqIGBpZiB0ZXN0IC1mICdmZGlza21hY2xhYmVsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2ttYWNsYWJlbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mZGlza21hY2xhYmVsLmMnOyBmaWAKKworZmRpc2stcGFydG5hbWUubzogcGFydG5hbWUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1wYXJ0bmFtZS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1wYXJ0bmFtZS5UcG8gLWMgLW8gZmRpc2stcGFydG5hbWUubyBgdGVzdCAtZiAncGFydG5hbWUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgcGFydG5hbWUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2stcGFydG5hbWUuVHBvICQoREVQRElSKS9mZGlzay1wYXJ0bmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3BhcnRuYW1lLmMnIG9iamVjdD0nZmRpc2stcGFydG5hbWUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2stcGFydG5hbWUubyBgdGVzdCAtZiAncGFydG5hbWUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgcGFydG5hbWUuYworCitmZGlzay1wYXJ0bmFtZS5vYmo6IHBhcnRuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2stcGFydG5hbWUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1wYXJ0bmFtZS5UcG8gLWMgLW8gZmRpc2stcGFydG5hbWUub2JqIGBpZiB0ZXN0IC1mICdwYXJ0bmFtZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3BhcnRuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3BhcnRuYW1lLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrLXBhcnRuYW1lLlRwbyAkKERFUERJUikvZmRpc2stcGFydG5hbWUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdwYXJ0bmFtZS5jJyBvYmplY3Q9J2ZkaXNrLXBhcnRuYW1lLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2stcGFydG5hbWUub2JqIGBpZiB0ZXN0IC1mICdwYXJ0bmFtZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3BhcnRuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3BhcnRuYW1lLmMnOyBmaWAKKworZmRpc2staTM4Nl9zeXNfdHlwZXMubzogaTM4Nl9zeXNfdHlwZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1pMzg2X3N5c190eXBlcy5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1pMzg2X3N5c190eXBlcy5UcG8gLWMgLW8gZmRpc2staTM4Nl9zeXNfdHlwZXMubyBgdGVzdCAtZiAnaTM4Nl9zeXNfdHlwZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgaTM4Nl9zeXNfdHlwZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2staTM4Nl9zeXNfdHlwZXMuVHBvICQoREVQRElSKS9mZGlzay1pMzg2X3N5c190eXBlcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2kzODZfc3lzX3R5cGVzLmMnIG9iamVjdD0nZmRpc2staTM4Nl9zeXNfdHlwZXMubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2staTM4Nl9zeXNfdHlwZXMubyBgdGVzdCAtZiAnaTM4Nl9zeXNfdHlwZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgaTM4Nl9zeXNfdHlwZXMuYworCitmZGlzay1pMzg2X3N5c190eXBlcy5vYmo6IGkzODZfc3lzX3R5cGVzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2staTM4Nl9zeXNfdHlwZXMub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1pMzg2X3N5c190eXBlcy5UcG8gLWMgLW8gZmRpc2staTM4Nl9zeXNfdHlwZXMub2JqIGBpZiB0ZXN0IC1mICdpMzg2X3N5c190eXBlcy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2kzODZfc3lzX3R5cGVzLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2kzODZfc3lzX3R5cGVzLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrLWkzODZfc3lzX3R5cGVzLlRwbyAkKERFUERJUikvZmRpc2staTM4Nl9zeXNfdHlwZXMuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdpMzg2X3N5c190eXBlcy5jJyBvYmplY3Q9J2ZkaXNrLWkzODZfc3lzX3R5cGVzLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2staTM4Nl9zeXNfdHlwZXMub2JqIGBpZiB0ZXN0IC1mICdpMzg2X3N5c190eXBlcy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2kzODZfc3lzX3R5cGVzLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2kzODZfc3lzX3R5cGVzLmMnOyBmaWAKKworZmRpc2stZ3B0Lm86IGdwdC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrLWdwdC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1ncHQuVHBvIC1jIC1vIGZkaXNrLWdwdC5vIGB0ZXN0IC1mICdncHQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZ3B0LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrLWdwdC5UcG8gJChERVBESVIpL2ZkaXNrLWdwdC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2dwdC5jJyBvYmplY3Q9J2ZkaXNrLWdwdC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBmZGlzay1ncHQubyBgdGVzdCAtZiAnZ3B0LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGdwdC5jCisKK2ZkaXNrLWdwdC5vYmo6IGdwdC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrLWdwdC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrLWdwdC5UcG8gLWMgLW8gZmRpc2stZ3B0Lm9iaiBgaWYgdGVzdCAtZiAnZ3B0LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZ3B0LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2dwdC5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlzay1ncHQuVHBvICQoREVQRElSKS9mZGlzay1ncHQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdncHQuYycgb2JqZWN0PSdmZGlzay1ncHQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBmZGlzay1ncHQub2JqIGBpZiB0ZXN0IC1mICdncHQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdncHQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZ3B0LmMnOyBmaWAKKworZmRpc2stYmxrZGV2Lm86IC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1ibGtkZXYubyAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2stYmxrZGV2LlRwbyAtYyAtbyBmZGlzay1ibGtkZXYubyBgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrLWJsa2Rldi5UcG8gJChERVBESVIpL2ZkaXNrLWJsa2Rldi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9ibGtkZXYuYycgb2JqZWN0PSdmZGlzay1ibGtkZXYubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2stYmxrZGV2Lm8gYHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Jsa2Rldi5jCisKK2ZkaXNrLWJsa2Rldi5vYmo6IC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1ibGtkZXYub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1ibGtkZXYuVHBvIC1jIC1vIGZkaXNrLWJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2stYmxrZGV2LlRwbyAkKERFUERJUikvZmRpc2stYmxrZGV2LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Jsa2Rldi5jJyBvYmplY3Q9J2ZkaXNrLWJsa2Rldi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorCitmZGlzay13aG9sZWRpc2subzogLi4vbGliL3dob2xlZGlzay5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrLXdob2xlZGlzay5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay13aG9sZWRpc2suVHBvIC1jIC1vIGZkaXNrLXdob2xlZGlzay5vIGB0ZXN0IC1mICcuLi9saWIvd2hvbGVkaXNrLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi93aG9sZWRpc2suYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2std2hvbGVkaXNrLlRwbyAkKERFUERJUikvZmRpc2std2hvbGVkaXNrLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL3dob2xlZGlzay5jJyBvYmplY3Q9J2ZkaXNrLXdob2xlZGlzay5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBmZGlzay13aG9sZWRpc2subyBgdGVzdCAtZiAnLi4vbGliL3dob2xlZGlzay5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvd2hvbGVkaXNrLmMKKworZmRpc2std2hvbGVkaXNrLm9iajogLi4vbGliL3dob2xlZGlzay5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrLXdob2xlZGlzay5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrLXdob2xlZGlzay5UcG8gLWMgLW8gZmRpc2std2hvbGVkaXNrLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL3dob2xlZGlzay5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi93aG9sZWRpc2suYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL3dob2xlZGlzay5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlzay13aG9sZWRpc2suVHBvICQoREVQRElSKS9mZGlzay13aG9sZWRpc2suUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvd2hvbGVkaXNrLmMnIG9iamVjdD0nZmRpc2std2hvbGVkaXNrLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2std2hvbGVkaXNrLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL3dob2xlZGlzay5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi93aG9sZWRpc2suYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL3dob2xlZGlzay5jJzsgZmlgCisKK2ZkaXNrLWxpbnV4X3ZlcnNpb24ubzogLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlzay1saW51eF92ZXJzaW9uLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrLWxpbnV4X3ZlcnNpb24uVHBvIC1jIC1vIGZkaXNrLWxpbnV4X3ZlcnNpb24ubyBgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2stbGludXhfdmVyc2lvbi5UcG8gJChERVBESVIpL2ZkaXNrLWxpbnV4X3ZlcnNpb24uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvbGludXhfdmVyc2lvbi5jJyBvYmplY3Q9J2ZkaXNrLWxpbnV4X3ZlcnNpb24ubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2stbGludXhfdmVyc2lvbi5vIGB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvbGludXhfdmVyc2lvbi5jCisKK2ZkaXNrLWxpbnV4X3ZlcnNpb24ub2JqOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrLWxpbnV4X3ZlcnNpb24ub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlzay1saW51eF92ZXJzaW9uLlRwbyAtYyAtbyBmZGlzay1saW51eF92ZXJzaW9uLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlzay1saW51eF92ZXJzaW9uLlRwbyAkKERFUERJUikvZmRpc2stbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0nZmRpc2stbGludXhfdmVyc2lvbi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrLWxpbnV4X3ZlcnNpb24ub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBmaWAKKworZmRpc2tfc3RhdGljLWZkaXNrLm86IGZkaXNrLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrX3N0YXRpYy1mZGlzay5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2suVHBvIC1jIC1vIGZkaXNrX3N0YXRpYy1mZGlzay5vIGB0ZXN0IC1mICdmZGlzay5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BmZGlzay5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2suVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2suUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlzay5jJyBvYmplY3Q9J2ZkaXNrX3N0YXRpYy1mZGlzay5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLWZkaXNrLm8gYHRlc3QgLWYgJ2ZkaXNrLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGZkaXNrLmMKKworZmRpc2tfc3RhdGljLWZkaXNrLm9iajogZmRpc2suYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2tfc3RhdGljLWZkaXNrLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrLlRwbyAtYyAtbyBmZGlza19zdGF0aWMtZmRpc2sub2JqIGBpZiB0ZXN0IC1mICdmZGlzay5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZkaXNrLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlzay5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlzay5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrLmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWZkaXNrLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrX3N0YXRpYy1mZGlzay5vYmogYGlmIHRlc3QgLWYgJ2ZkaXNrLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2suYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZmRpc2suYyc7IGZpYAorCitmZGlza19zdGF0aWMtZmRpc2tic2RsYWJlbC5vOiBmZGlza2JzZGxhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrX3N0YXRpYy1mZGlza2JzZGxhYmVsLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza2JzZGxhYmVsLlRwbyAtYyAtbyBmZGlza19zdGF0aWMtZmRpc2tic2RsYWJlbC5vIGB0ZXN0IC1mICdmZGlza2JzZGxhYmVsLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGZkaXNrYnNkbGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrYnNkbGFiZWwuVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2tic2RsYWJlbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrYnNkbGFiZWwuYycgb2JqZWN0PSdmZGlza19zdGF0aWMtZmRpc2tic2RsYWJlbC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLWZkaXNrYnNkbGFiZWwubyBgdGVzdCAtZiAnZmRpc2tic2RsYWJlbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BmZGlza2JzZGxhYmVsLmMKKworZmRpc2tfc3RhdGljLWZkaXNrYnNkbGFiZWwub2JqOiBmZGlza2JzZGxhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrX3N0YXRpYy1mZGlza2JzZGxhYmVsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrYnNkbGFiZWwuVHBvIC1jIC1vIGZkaXNrX3N0YXRpYy1mZGlza2JzZGxhYmVsLm9iaiBgaWYgdGVzdCAtZiAnZmRpc2tic2RsYWJlbC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZkaXNrYnNkbGFiZWwuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZmRpc2tic2RsYWJlbC5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2tic2RsYWJlbC5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza2JzZGxhYmVsLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZmRpc2tic2RsYWJlbC5jJyBvYmplY3Q9J2ZkaXNrX3N0YXRpYy1mZGlza2JzZGxhYmVsLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrX3N0YXRpYy1mZGlza2JzZGxhYmVsLm9iaiBgaWYgdGVzdCAtZiAnZmRpc2tic2RsYWJlbC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZkaXNrYnNkbGFiZWwuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZmRpc2tic2RsYWJlbC5jJzsgZmlgCisKK2ZkaXNrX3N0YXRpYy1mZGlza3NnaWxhYmVsLm86IGZkaXNrc2dpbGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2tfc3RhdGljLWZkaXNrc2dpbGFiZWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrc2dpbGFiZWwuVHBvIC1jIC1vIGZkaXNrX3N0YXRpYy1mZGlza3NnaWxhYmVsLm8gYHRlc3QgLWYgJ2ZkaXNrc2dpbGFiZWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2tzZ2lsYWJlbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2tzZ2lsYWJlbC5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza3NnaWxhYmVsLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZmRpc2tzZ2lsYWJlbC5jJyBvYmplY3Q9J2ZkaXNrX3N0YXRpYy1mZGlza3NnaWxhYmVsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBmZGlza19zdGF0aWMtZmRpc2tzZ2lsYWJlbC5vIGB0ZXN0IC1mICdmZGlza3NnaWxhYmVsLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGZkaXNrc2dpbGFiZWwuYworCitmZGlza19zdGF0aWMtZmRpc2tzZ2lsYWJlbC5vYmo6IGZkaXNrc2dpbGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2tfc3RhdGljLWZkaXNrc2dpbGFiZWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2tzZ2lsYWJlbC5UcG8gLWMgLW8gZmRpc2tfc3RhdGljLWZkaXNrc2dpbGFiZWwub2JqIGBpZiB0ZXN0IC1mICdmZGlza3NnaWxhYmVsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2tzZ2lsYWJlbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mZGlza3NnaWxhYmVsLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza3NnaWxhYmVsLlRwbyAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrc2dpbGFiZWwuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlza3NnaWxhYmVsLmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWZkaXNrc2dpbGFiZWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLWZkaXNrc2dpbGFiZWwub2JqIGBpZiB0ZXN0IC1mICdmZGlza3NnaWxhYmVsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2tzZ2lsYWJlbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mZGlza3NnaWxhYmVsLmMnOyBmaWAKKworZmRpc2tfc3RhdGljLWZkaXNrc3VubGFiZWwubzogZmRpc2tzdW5sYWJlbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlza19zdGF0aWMtZmRpc2tzdW5sYWJlbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2tzdW5sYWJlbC5UcG8gLWMgLW8gZmRpc2tfc3RhdGljLWZkaXNrc3VubGFiZWwubyBgdGVzdCAtZiAnZmRpc2tzdW5sYWJlbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BmZGlza3N1bmxhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza3N1bmxhYmVsLlRwbyAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrc3VubGFiZWwuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlza3N1bmxhYmVsLmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWZkaXNrc3VubGFiZWwubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrX3N0YXRpYy1mZGlza3N1bmxhYmVsLm8gYHRlc3QgLWYgJ2ZkaXNrc3VubGFiZWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2tzdW5sYWJlbC5jCisKK2ZkaXNrX3N0YXRpYy1mZGlza3N1bmxhYmVsLm9iajogZmRpc2tzdW5sYWJlbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlza19zdGF0aWMtZmRpc2tzdW5sYWJlbC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza3N1bmxhYmVsLlRwbyAtYyAtbyBmZGlza19zdGF0aWMtZmRpc2tzdW5sYWJlbC5vYmogYGlmIHRlc3QgLWYgJ2ZkaXNrc3VubGFiZWwuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmZGlza3N1bmxhYmVsLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrc3VubGFiZWwuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrc3VubGFiZWwuVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2tzdW5sYWJlbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrc3VubGFiZWwuYycgb2JqZWN0PSdmZGlza19zdGF0aWMtZmRpc2tzdW5sYWJlbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBmZGlza19zdGF0aWMtZmRpc2tzdW5sYWJlbC5vYmogYGlmIHRlc3QgLWYgJ2ZkaXNrc3VubGFiZWwuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmZGlza3N1bmxhYmVsLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZkaXNrc3VubGFiZWwuYyc7IGZpYAorCitmZGlza19zdGF0aWMtZmRpc2thaXhsYWJlbC5vOiBmZGlza2FpeGxhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrX3N0YXRpYy1mZGlza2FpeGxhYmVsLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza2FpeGxhYmVsLlRwbyAtYyAtbyBmZGlza19zdGF0aWMtZmRpc2thaXhsYWJlbC5vIGB0ZXN0IC1mICdmZGlza2FpeGxhYmVsLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGZkaXNrYWl4bGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrYWl4bGFiZWwuVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2thaXhsYWJlbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZkaXNrYWl4bGFiZWwuYycgb2JqZWN0PSdmZGlza19zdGF0aWMtZmRpc2thaXhsYWJlbC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLWZkaXNrYWl4bGFiZWwubyBgdGVzdCAtZiAnZmRpc2thaXhsYWJlbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BmZGlza2FpeGxhYmVsLmMKKworZmRpc2tfc3RhdGljLWZkaXNrYWl4bGFiZWwub2JqOiBmZGlza2FpeGxhYmVsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrX3N0YXRpYy1mZGlza2FpeGxhYmVsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrYWl4bGFiZWwuVHBvIC1jIC1vIGZkaXNrX3N0YXRpYy1mZGlza2FpeGxhYmVsLm9iaiBgaWYgdGVzdCAtZiAnZmRpc2thaXhsYWJlbC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZkaXNrYWl4bGFiZWwuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZmRpc2thaXhsYWJlbC5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2thaXhsYWJlbC5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza2FpeGxhYmVsLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZmRpc2thaXhsYWJlbC5jJyBvYmplY3Q9J2ZkaXNrX3N0YXRpYy1mZGlza2FpeGxhYmVsLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrX3N0YXRpYy1mZGlza2FpeGxhYmVsLm9iaiBgaWYgdGVzdCAtZiAnZmRpc2thaXhsYWJlbC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZkaXNrYWl4bGFiZWwuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZmRpc2thaXhsYWJlbC5jJzsgZmlgCisKK2ZkaXNrX3N0YXRpYy1mZGlza21hY2xhYmVsLm86IGZkaXNrbWFjbGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2tfc3RhdGljLWZkaXNrbWFjbGFiZWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrbWFjbGFiZWwuVHBvIC1jIC1vIGZkaXNrX3N0YXRpYy1mZGlza21hY2xhYmVsLm8gYHRlc3QgLWYgJ2ZkaXNrbWFjbGFiZWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmRpc2ttYWNsYWJlbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2ttYWNsYWJlbC5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza21hY2xhYmVsLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZmRpc2ttYWNsYWJlbC5jJyBvYmplY3Q9J2ZkaXNrX3N0YXRpYy1mZGlza21hY2xhYmVsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBmZGlza19zdGF0aWMtZmRpc2ttYWNsYWJlbC5vIGB0ZXN0IC1mICdmZGlza21hY2xhYmVsLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGZkaXNrbWFjbGFiZWwuYworCitmZGlza19zdGF0aWMtZmRpc2ttYWNsYWJlbC5vYmo6IGZkaXNrbWFjbGFiZWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2tfc3RhdGljLWZkaXNrbWFjbGFiZWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlza19zdGF0aWMtZmRpc2ttYWNsYWJlbC5UcG8gLWMgLW8gZmRpc2tfc3RhdGljLWZkaXNrbWFjbGFiZWwub2JqIGBpZiB0ZXN0IC1mICdmZGlza21hY2xhYmVsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2ttYWNsYWJlbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mZGlza21hY2xhYmVsLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1mZGlza21hY2xhYmVsLlRwbyAkKERFUERJUikvZmRpc2tfc3RhdGljLWZkaXNrbWFjbGFiZWwuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmZGlza21hY2xhYmVsLmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWZkaXNrbWFjbGFiZWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLWZkaXNrbWFjbGFiZWwub2JqIGBpZiB0ZXN0IC1mICdmZGlza21hY2xhYmVsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZmRpc2ttYWNsYWJlbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mZGlza21hY2xhYmVsLmMnOyBmaWAKKworZmRpc2tfc3RhdGljLXBhcnRuYW1lLm86IHBhcnRuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrX3N0YXRpYy1wYXJ0bmFtZS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlza19zdGF0aWMtcGFydG5hbWUuVHBvIC1jIC1vIGZkaXNrX3N0YXRpYy1wYXJ0bmFtZS5vIGB0ZXN0IC1mICdwYXJ0bmFtZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BwYXJ0bmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mZGlza19zdGF0aWMtcGFydG5hbWUuVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtcGFydG5hbWUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdwYXJ0bmFtZS5jJyBvYmplY3Q9J2ZkaXNrX3N0YXRpYy1wYXJ0bmFtZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLXBhcnRuYW1lLm8gYHRlc3QgLWYgJ3BhcnRuYW1lLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHBhcnRuYW1lLmMKKworZmRpc2tfc3RhdGljLXBhcnRuYW1lLm9iajogcGFydG5hbWUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2tfc3RhdGljLXBhcnRuYW1lLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLXBhcnRuYW1lLlRwbyAtYyAtbyBmZGlza19zdGF0aWMtcGFydG5hbWUub2JqIGBpZiB0ZXN0IC1mICdwYXJ0bmFtZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3BhcnRuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3BhcnRuYW1lLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1wYXJ0bmFtZS5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1wYXJ0bmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3BhcnRuYW1lLmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLXBhcnRuYW1lLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrX3N0YXRpYy1wYXJ0bmFtZS5vYmogYGlmIHRlc3QgLWYgJ3BhcnRuYW1lLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAncGFydG5hbWUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvcGFydG5hbWUuYyc7IGZpYAorCitmZGlza19zdGF0aWMtaTM4Nl9zeXNfdHlwZXMubzogaTM4Nl9zeXNfdHlwZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2tfc3RhdGljLWkzODZfc3lzX3R5cGVzLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1pMzg2X3N5c190eXBlcy5UcG8gLWMgLW8gZmRpc2tfc3RhdGljLWkzODZfc3lzX3R5cGVzLm8gYHRlc3QgLWYgJ2kzODZfc3lzX3R5cGVzLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGkzODZfc3lzX3R5cGVzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1pMzg2X3N5c190eXBlcy5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1pMzg2X3N5c190eXBlcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2kzODZfc3lzX3R5cGVzLmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWkzODZfc3lzX3R5cGVzLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBmZGlza19zdGF0aWMtaTM4Nl9zeXNfdHlwZXMubyBgdGVzdCAtZiAnaTM4Nl9zeXNfdHlwZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgaTM4Nl9zeXNfdHlwZXMuYworCitmZGlza19zdGF0aWMtaTM4Nl9zeXNfdHlwZXMub2JqOiBpMzg2X3N5c190eXBlcy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlza19zdGF0aWMtaTM4Nl9zeXNfdHlwZXMub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlza19zdGF0aWMtaTM4Nl9zeXNfdHlwZXMuVHBvIC1jIC1vIGZkaXNrX3N0YXRpYy1pMzg2X3N5c190eXBlcy5vYmogYGlmIHRlc3QgLWYgJ2kzODZfc3lzX3R5cGVzLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnaTM4Nl9zeXNfdHlwZXMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvaTM4Nl9zeXNfdHlwZXMuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2tfc3RhdGljLWkzODZfc3lzX3R5cGVzLlRwbyAkKERFUERJUikvZmRpc2tfc3RhdGljLWkzODZfc3lzX3R5cGVzLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0naTM4Nl9zeXNfdHlwZXMuYycgb2JqZWN0PSdmZGlza19zdGF0aWMtaTM4Nl9zeXNfdHlwZXMub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLWkzODZfc3lzX3R5cGVzLm9iaiBgaWYgdGVzdCAtZiAnaTM4Nl9zeXNfdHlwZXMuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdpMzg2X3N5c190eXBlcy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9pMzg2X3N5c190eXBlcy5jJzsgZmlgCisKK2ZkaXNrX3N0YXRpYy1ncHQubzogZ3B0LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrX3N0YXRpYy1ncHQubyAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLWdwdC5UcG8gLWMgLW8gZmRpc2tfc3RhdGljLWdwdC5vIGB0ZXN0IC1mICdncHQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZ3B0LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1ncHQuVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtZ3B0LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZ3B0LmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWdwdC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLWdwdC5vIGB0ZXN0IC1mICdncHQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZ3B0LmMKKworZmRpc2tfc3RhdGljLWdwdC5vYmo6IGdwdC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlza19zdGF0aWMtZ3B0Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLWdwdC5UcG8gLWMgLW8gZmRpc2tfc3RhdGljLWdwdC5vYmogYGlmIHRlc3QgLWYgJ2dwdC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2dwdC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9ncHQuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2tfc3RhdGljLWdwdC5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1ncHQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdncHQuYycgb2JqZWN0PSdmZGlza19zdGF0aWMtZ3B0Lm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrX3N0YXRpYy1ncHQub2JqIGBpZiB0ZXN0IC1mICdncHQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdncHQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZ3B0LmMnOyBmaWAKKworZmRpc2tfc3RhdGljLWJsa2Rldi5vOiAuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZkaXNrX3N0YXRpYy1ibGtkZXYubyAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLWJsa2Rldi5UcG8gLWMgLW8gZmRpc2tfc3RhdGljLWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2tfc3RhdGljLWJsa2Rldi5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWJsa2Rldi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworCitmZGlza19zdGF0aWMtYmxrZGV2Lm9iajogLi4vbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlza19zdGF0aWMtYmxrZGV2Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmRpc2tfc3RhdGljLWJsa2Rldi5UcG8gLWMgLW8gZmRpc2tfc3RhdGljLWJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2tfc3RhdGljLWJsa2Rldi5UcG8gJChERVBESVIpL2ZkaXNrX3N0YXRpYy1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWJsa2Rldi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBmZGlza19zdGF0aWMtYmxrZGV2Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9ibGtkZXYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Jsa2Rldi5jJzsgZmlgCisKK2ZkaXNrX3N0YXRpYy13aG9sZWRpc2subzogLi4vbGliL3dob2xlZGlzay5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlza19zdGF0aWMtd2hvbGVkaXNrLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrX3N0YXRpYy13aG9sZWRpc2suVHBvIC1jIC1vIGZkaXNrX3N0YXRpYy13aG9sZWRpc2subyBgdGVzdCAtZiAnLi4vbGliL3dob2xlZGlzay5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvd2hvbGVkaXNrLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrX3N0YXRpYy13aG9sZWRpc2suVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtd2hvbGVkaXNrLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL3dob2xlZGlzay5jJyBvYmplY3Q9J2ZkaXNrX3N0YXRpYy13aG9sZWRpc2subycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrX3N0YXRpYy13aG9sZWRpc2subyBgdGVzdCAtZiAnLi4vbGliL3dob2xlZGlzay5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvd2hvbGVkaXNrLmMKKworZmRpc2tfc3RhdGljLXdob2xlZGlzay5vYmo6IC4uL2xpYi93aG9sZWRpc2suYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZkaXNrX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZmRpc2tfc3RhdGljLXdob2xlZGlzay5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrX3N0YXRpYy13aG9sZWRpc2suVHBvIC1jIC1vIGZkaXNrX3N0YXRpYy13aG9sZWRpc2sub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvd2hvbGVkaXNrLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL3dob2xlZGlzay5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvd2hvbGVkaXNrLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZkaXNrX3N0YXRpYy13aG9sZWRpc2suVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtd2hvbGVkaXNrLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL3dob2xlZGlzay5jJyBvYmplY3Q9J2ZkaXNrX3N0YXRpYy13aG9sZWRpc2sub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLXdob2xlZGlzay5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi93aG9sZWRpc2suYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvd2hvbGVkaXNrLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi93aG9sZWRpc2suYyc7IGZpYAorCitmZGlza19zdGF0aWMtbGludXhfdmVyc2lvbi5vOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlza19zdGF0aWMtbGludXhfdmVyc2lvbi5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mZGlza19zdGF0aWMtbGludXhfdmVyc2lvbi5UcG8gLWMgLW8gZmRpc2tfc3RhdGljLWxpbnV4X3ZlcnNpb24ubyBgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2tfc3RhdGljLWxpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWxpbnV4X3ZlcnNpb24ubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZkaXNrX3N0YXRpYy1saW51eF92ZXJzaW9uLm8gYHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9saW51eF92ZXJzaW9uLmMKKworZmRpc2tfc3RhdGljLWxpbnV4X3ZlcnNpb24ub2JqOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmRpc2tfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmZGlza19zdGF0aWMtbGludXhfdmVyc2lvbi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2ZkaXNrX3N0YXRpYy1saW51eF92ZXJzaW9uLlRwbyAtYyAtbyBmZGlza19zdGF0aWMtbGludXhfdmVyc2lvbi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmRpc2tfc3RhdGljLWxpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS9mZGlza19zdGF0aWMtbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0nZmRpc2tfc3RhdGljLWxpbnV4X3ZlcnNpb24ub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmZGlza19zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmRpc2tfc3RhdGljLWxpbnV4X3ZlcnNpb24ub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBmaWAKKworbW9zdGx5Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgKi5sbworCitjbGVhbi1saWJ0b29sOgorCS1ybSAtcmYgLmxpYnMgX2xpYnMKK2luc3RhbGwtbWFuODogJChkaXN0X21hbl9NQU5TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQobWFuOGRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjhkaXIpIgorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjhkaXIpIiB8fCBleGl0IDA7IFwKKwl7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHdoaWxlIHJlYWQgcDsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ247cywuKi8sLDtwO2g7cywuKlwuLCw7cyxeW144XVswLTlhLXpdKiQkLDgsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCcgfCBcCisJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCisJbGlzdD07IHdoaWxlIHJlYWQgZmlsZSBiYXNlIGluc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkYmFzZSIgPSAiJCRpbnN0IjsgdGhlbiBsaXN0PSIkJGxpc3QgJCRmaWxlIjsgZWxzZSBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjhkaXIpLyQkaW5zdCciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAiJCRmaWxlIiAiJChERVNURElSKSQobWFuOGRpcikvJCRpbnN0IiB8fCBleGl0ICQkPzsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChtYW44ZGlyKSciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChtYW44ZGlyKSIgfHwgZXhpdCAkJD87IH07IFwKKwlkb25lOyB9CisKK3VuaW5zdGFsbC1tYW44OgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuOGRpcikiIHx8IGV4aXQgMDsgXAorCWZpbGVzPWB7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteOF1bMC05YS16XSokJCw4LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnYDsgXAorCXRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjhkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwkgIGNkICIkKERFU1RESVIpJChtYW44ZGlyKSIgJiYgcm0gLWYgJCRmaWxlczsgfQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAbGlzdD0nJChNQU5TKSc7IGlmIHRlc3QgLW4gIiQkbGlzdCI7IHRoZW4gXAorCSAgbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgICBpZiB0ZXN0IC1mICIkJGQkJHAiOyB0aGVuIGVjaG8gIiQkZCQkcCI7IGVsc2UgOjsgZmk7IGRvbmVgOyBcCisJICBpZiB0ZXN0IC1uICIkJGxpc3QiICYmIFwKKwkgICAgZ3JlcCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVsbDsgdGhlbiBcCisJICAgIGVjaG8gImVycm9yOiBmb3VuZCBtYW4gcGFnZXMgY29udGFpbmluZyB0aGUgXGBtaXNzaW5nIGhlbHAybWFuJyByZXBsYWNlbWVudCB0ZXh0OiIgPiYyOyBcCisJICAgIGdyZXAgLWwgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0IHwgc2VkICdzL14vICAgICAgICAgLycgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0byBmaXggdGhlbSwgaW5zdGFsbCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBtYW4gcGFnZXM7IiA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHR5cGljYWxseSBcYG1ha2UgbWFpbnRhaW5lci1jbGVhbicgd2lsbCByZW1vdmUgdGhlbSIgPiYyOyBcCisJICAgIGV4aXQgMTsgXAorCSAgZWxzZSA6OyBmaTsgXAorCWVsc2UgOjsgZmkKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1hbQorYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKSAkKE1BTlMpICQoREFUQSkKK2luc3RhbGxkaXJzOgorCWZvciBkaXIgaW4gIiQoREVTVERJUikkKHNiaW5kaXIpIiAiJChERVNURElSKSQobWFuOGRpcikiOyBkbyBcCisJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisJZG9uZQoraW5zdGFsbDogaW5zdGFsbC1hbQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCit1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1hbQorCitjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLXNiaW5QUk9HUkFNUyBcCisJbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbWFuCisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLXNiaW5QUk9HUkFNUworCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisKK2luc3RhbGwtaW5mby1hbToKKworaW5zdGFsbC1tYW46IGluc3RhbGwtbWFuOAorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1hbQorCitwZGYtYW06CisKK3BzOiBwcy1hbQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1zYmluUFJPR1JBTVMKKwordW5pbnN0YWxsLW1hbjogdW5pbnN0YWxsLW1hbjgKKworLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisJY2xlYW4tbGlidG9vbCBjbGVhbi1zYmluUFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAorCWluc3RhbGwtbWFuOCBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIFwKKwlpbnN0YWxsLXBzLWFtIGluc3RhbGwtc2JpblBST0dSQU1TIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCisJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAorCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKwl0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuOCBcCisJdW5pbnN0YWxsLXNiaW5QUk9HUkFNUworCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworJCh1bF9saWJ1dWlkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGlidXVpZF9idWlsZGRpcikKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svUkVBRE1FLmNmZGlzayBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL1JFQURNRS5jZmRpc2sKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI0MWFkMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL1JFQURNRS5jZmRpc2sKQEAgLTAsMCArMSw0NSBAQAorQW5ub3VuY2luZyB0aGUgbmV3IGN1cnNlcyBiYXNlZCBmZGlzayBwcm9ncmFtLi4uIGNmZGlzaworCitjZmRpc2sgaXMgYSBjdXJzZXMgYmFzZWQgZGlzayBkcml2ZSBwYXJ0aXRpb25pbmcgcHJvZ3JhbSB0aGF0IGNhbgorY3JlYXRlIHBhcnRpdGlvbnMgZm9yIGEgd2lkZSB2YXJpZXR5IG9mIG9wZXJhdGluZyBzeXN0ZW1zIGluY2x1ZGluZworTGludXgsIE1TLURPUyBhbmQgT1MvMi4gIGNmZGlzayB3YXMgaW5zcGlyZWQgYnkgdGhlIGZkaXNrIHByb2dyYW0sIGJ5CitBLiBWLiBMZSBCbGFuYyAoTGVCbGFuY0BtY2MuYWMudWspLiAgSSBob3BlIHRoYXQgdGhpcyBwcm9ncmFtIHdpbGwgYmUKK3VzZWZ1bCB0byBib3RoIG5ldyBhbmQgb2xkIExpbnV4IHVzZXJzLCBhbmQgSSBob3BlIGl0IHdpbGwgbWFrZSB0aGUKK2luc3RhbGxhdGlvbiBwcm9jZXNzIGVhc2llci4KKworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAqKioqIFdBUk5JTkcgKioqKgorSWYgeW91IHdyaXRlIGEgYmFkIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrLCBpdCBtYXkgZGVzdHJveSBkYXRhIGFuZAorcGFydGl0aW9ucy4KKworCitZb3UgY2FuIEZUUCBjZmRpc2sgZnJvbSBmdHAuY3MudW5jLmVkdSBpbiB0aGUgL3B1Yi9tYXJ0aW4vbGludXgKK2RpcmVjdG9yeS4KKworSSB3b3VsZCBhbHNvIGxpa2UgY29tbWVudHMgKGdvb2QgYW5kIGJhZCkgb24gdGhlIHVzZXIgaW50ZXJmYWNlLCBsb2dpYworYW5kIGVhc2Ugb2YgdXNlLiAgSWYgeW91IGhhdmUgYW55IHN1Z2dlc3Rpb25zIGZvciBpbXByb3ZlbWVudHMsIEkKK3dvdWxkIGJlIGhhcHB5IHRvIGhlYXIgdGhlbS4KKworTXkgZS1tYWlsIGFkZHJlc3MgaXMgbWFydGluQGNzLnVuYy5lZHUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIENvcHlyaWdodCAoQykgMTk5NCBLZXZpbiBFLiBNYXJ0aW4gKG1hcnRpbkBjcy51bmMuZWR1KQorCitjZmRpc2sgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAordW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCitGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyCitvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCitjZmRpc2sgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKK0FOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCitmb3IgbW9yZSBkZXRhaWxzLgorCitZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorYWxvbmcgd2l0aCBjZmRpc2s7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKK0luYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorCitfX18KK0tldmluIEUuIE1hcnRpbiAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgb2YgTm9ydGggQ2Fyb2xpbmEgYXQgQ2hhcGVsIEhpbGwKK21hcnRpbkBjcy51bmMuZWR1ICAgICAgICAgICAgICAgICAgICAgICAgICBEZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL1JFQURNRS5mZGlzayBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL1JFQURNRS5mZGlzawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWNmZmY2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svUkVBRE1FLmZkaXNrCkBAIC0wLDAgKzEsNTgzIEBACitgZmRpc2snOiB0aGUgTGludXggcGFydGl0aW9uIHRhYmxlIGVkaXRvcgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworYGZkaXNrJyBpcyB0aGUgTGludXggcGFydGl0aW9uIHRhYmxlIGVkaXRvci4gIEluIHRoaXMgc2VjdGlvbiB3ZQorZXhhbWluZSB0aGlzIHV0aWxpdHkgYW5kIHRyeSB0byBkZXNjcmliZSBpdCB0aG9yb3VnaGx5IGVub3VnaCBzbyB0aGF0CithbnlvbmUgY2FuIHVzZSBpdC4KKworKiBDb250ZW50czoKKworKiBEaXNrcyBhbmQgaG93IHRoZXkgYXJlIGRlc2NyaWJlZC4KKyogRGl2aWRpbmcgdXAgeW91ciBkaXNrLgorKiBUaGUgYGZkaXNrJyBjb21tYW5kLgorKiBEZWxldGluZyBhbmQgYWRkaW5nIHBhcnRpdGlvbnMuCisqIEFjdGl2ZSBmbGFncyBhbmQgc3lzdGVtIHR5cGVzLgorKiBFeHRyYSBjb21tYW5kcyBmb3IgZXhwZXJ0cy4KKyogV2FybmluZ3MgZm9yIGBmZGlzaycgdXNlcnMuCisKKworRGlza3MgYW5kIGhvdyB0aGV5IGFyZSBkZXNjcmliZWQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0EgdHlwaWNhbCBkaXNrIGNvbnNpc3RzIHBoeXNpY2FsbHkgb2Ygb25lIG9yIG1vcmUgY2lyY3VsYXIgb2JqZWN0cworY2FsbGVkICJwbGF0dGVycyIsIHdoaWNoIHJvdGF0ZSBhYm91dCBhIGNlbnRyYWwgYXhpcy4gIERldmljZXMgY2FsbGVkCisiaGVhZHMiIG1vdmUgdG8gc3BlY2lmaWVkIHBsYWNlcyBvbiB0aGUgZGlzayBzdXJmYWNlIHRvIHJlYWQgb3Igd3JpdGUKK2luZm9ybWF0aW9uLiAgVGhlcmUgaXMgdXN1YWxseSBvbmUgaGVhZCBvbiBlYWNoIHNpZGUgb2YgZXZlcnkgcGxhdHRlciwKK2FuZCBhbGwgdGhlc2UgaGVhZHMgYXJlIGF0dGFjaGVkIHRvIGEgY29tYi1saWtlIGNvbnRyb2xsZXIgYXJtIHdoaWNoCittb3ZlcyBhbGwgb2YgdGhlbSBhdCB0aGUgc2FtZSB0aW1lLCBlaXRoZXIgY2xvc2VyIHRvIHRoZSBjZW50cmUgb2YgdGhlCitkaXNrLCBvciBjbG9zZXIgdG8gdGhlIG91dGVyIGVkZ2UuCisKK1N1cHBvc2UgdGhlIGFybSBpcyBpbiBvbmUgcG9zaXRpb24sIHB1dHRpbmcgYW4gYXJlYSBvZiB0aGUgZGlzaworc3VyZmFjZSB3aXRoaW4gcmVhY2ggb2Ygb25lIG9yIGFub3RoZXIgb2YgdGhlIGhlYWRzLiAgVGhpcyB0b3RhbCBhcmVhLAorZXZlcnl0aGluZyB0aGF0IGlzIGFjY2Vzc2libGUgd2l0aG91dCBtb3ZpbmcgdGhlIGFybSwgaXMgY2FsbGVkIGEKKyJjeWxpbmRlciIuICAoQSBjeWxpbmRlciBpcyBhIGJhcnJlbC1zaGFwZWQgY3Jvc3Mgc2VjdGlvbiBvZiBhIGRpc2ssCitjb25zaXN0aW5nIG9mIGEgY2lyY3VsYXIgc3RyaXAgZnJvbSBlYWNoIHNpZGUgb2YgZWFjaCBwbGF0dGVyLikgIFRoZQorcGFydCBvZiBhIGN5bGluZGVyIHRoYXQgb25lIGhlYWQgY2FuIHJlYWQgb3Igd3JpdGUgd2l0aG91dCBtb3ZpbmcgaXMKK2NhbGxlZCBhICJ0cmFjayIuCisKK0VhY2ggdHJhY2sgaXMgZGl2aWRlZCBpbnRvIHNldmVyYWwgcGllLXNoYXBlZCBzbGljZXMgY2FsbGVkCisic2VjdG9ycyIsIHdoaWNoIGFyZSB0aGUgc21hbGxlc3QgcGFydHMgb2YgdGhlIGRpc2sgd2hpY2ggY2FuIGJlIHJlYWQKK29yIHdyaXR0ZW4gYXQgYSB0aW1lLiAgVGhlIHNlY3RvcnMgb24gb25lIGRpc2sgYXJlIHVzdWFsbHkgYWxsIHRoZSBzYW1lCitzaXplLgorCitJbiBmYWN0LCB0aGVyZSBhcmUgbm90IGFsd2F5cyB0d28gaGVhZHMgdG8gZXZlcnkgcGxhdHRlciwgdGhlcmUgYXJlCitzb21lIGRpc2tzIHdoaWNoIGRvIG5vdCBoYXZlIHRoZSBzYW1lIGFtb3VudCBvZiBkYXRhIGluIGV2ZXJ5IGN5bGluZGVyLAorYW5kIHRoZXJlIG1heSBiZSBkaXNrcyB3aGljaCBkbyBub3QgaGF2ZSB0aGUgc2FtZSBhbW91bnQgb2YgZGF0YSBpbgorZXZlcnkgc2VjdG9yLiAgVGhlc2UgZmVhdHVyZXMgYXJlIHVzdWFsbHkgaGlkZGVuIG9uIFBDcyBieSB0aGUKK2NvbnRyb2xsZXIgY2FyZCBvciB0aGUgQklPUywgd2hpY2ggbWFwIHRoZSBwaHlzaWNhbCBnZW9tZXRyeSBvZiBhIGRpc2sKK29udG8gYSBsb2dpY2FsIGdlb21ldHJ5LCB3aGljaCBpcyB3aGF0IGlzIGFjdHVhbGx5IHVzZWQgdG8gYWNjZXNzIHRoZQorZGlzay4KKworVGhlIG51bWJlcnMgd2hpY2ggZGVzY3JpYmUgdGhlICJnZW9tZXRyeSIgb2YgYSBkaXNrIGFyZQorCisgIDEuIFRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIGl0IGNvbnRhaW5zLgorCisgIDIuIFRoZSBudW1iZXIgb2YgdHJhY2tzIHBlciBjeWxpbmRlciwgd2hpY2ggaXMgdGhlIG51bWJlciBvZiBoZWFkcy4KKworICAzLiBUaGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrLgorCisgIDQuIFRoZSBudW1iZXIgb2YgYnl0ZXMgcGVyIHNlY3Rvci4KKworVGhlc2UgbnVtYmVycyB2YXJ5IGZyb20gZGlzayB0byBkaXNrLCBidXQgYSB0eXBpY2FsIFBDIGRpc2sgbWlnaHQKK2hhdmUgYWJvdXQgMTAwMCBjeWxpbmRlcnMsIGhhbGYgYSBkb3plbiBoZWFkcywgYW5kIDE1IG9yIDIwIHNlY3RvcnMgcGVyCit0cmFjaywgd2l0aCBlYWNoIHNlY3RvciBjb250YWluaW5nIDUxMiBieXRlcyBvciBjaGFyYWN0ZXJzOyBzdWNoIGEgZGlzaworY29udGFpbnMgNDAgdG8gNjAgbWVnYWJ5dGVzIG9mIGRhdGEuICBBICJkb3VibGUgZGVuc2l0eSIgZmxvcHB5IGRpc2sKK2NvbnRhaW5zIDQwIGN5bGluZGVycywgd2l0aCAyIGhlYWRzICgyIHRyYWNrcyBwZXIgY3lsaW5kZXIpLCBhbmQgd2l0aCA5CitzZWN0b3JzIHBlciB0cmFjazsgc3VjaCBhIGRpc2sgY29udGFpbnMgMzYwIGtpbG9ieXRlcywgb3IgMzYwICogMTAyNAorY2hhcmFjdGVycy4gIEEgImhpZ2ggZGVuc2l0eSIgMy41IGluY2ggZmxvcHB5IGNvbnRhaW5zIDgwIGN5bGluZGVycywKK3dpdGggMiBoZWFkcyBhbmQgMTggc2VjdG9ycyBwZXIgdHJhY2ssIG9yIDEuNDQgbWVnYWJ5dGVzLCBvciAxNDQwICoKKzEwMjQgY2hhcmFjdGVycy4KKworVGhlIGV4YWN0IHNpemUgb2YgYSB0cmFjayBvciBjeWxpbmRlciBpbiBieXRlcyB2YXJpZXMgZnJvbSBvbmUgZGlzawordG8gYW5vdGhlci4gIFRoaXMgYGZkaXNrJyBmb3IgTGludXggZGVhbHMgbWFpbmx5IHdpdGggY3lsaW5kZXJzLCBzaW5jZQordGhpcyBpcyB0aGUgYmVzdCB1bml0IHRvIHVzZSB3aGVuIGFsbG9jYXRpbmcgc3BhY2UgZm9yIHBhcnRpdGlvbnMuICBJdAorcmVwb3J0cyBwYXJ0aXRpb24gc2l6ZXMgaW4gImJsb2NrcyIgb2YgMTAyNCBieXRlcywgb3IgMiBzZWN0b3JzLCBzaW5jZQorYG1rc3dhcCcgYW5kIHRoZSB2YXJpb3VzIGBta2ZzJyBwcm9ncmFtcyByZXF1aXJlIHRoaXMgbnVtYmVyLiAgQSBibG9jaworaXMgdGhlIHNtYWxsZXN0IGFtb3VudCBvZiBzcGFjZSB3aGljaCBjYW4gYmUgc2V0IGFzaWRlIGZvciBhIGZpbGUgaW4KK3RoZSBjdXJyZW50IGZpbGUgc3lzdGVtcy4KKworQW4gb3BlcmF0aW5nIHN5c3RlbSwgc3VjaCBhcyBMaW51eCBvciBET1Mgb3IgT1MvMiwgbWF5IHVzZSBhIGRpc2sgaW4KK2FueSB3YXkgdGhhdCBpdCB3aXNoZXMsIGJ1dCBpZiB0d28gb3BlcmF0aW5nIHN5c3RlbXMgc2hhcmUgdGhlIHNhbWUKK2Rpc2ssIHRoZXkgbXVzdCBhZ3JlZSBvbiB3aG8gb3ducyB3aGF0LCBvciBlbHNlIG9uZSB3aWxsIGludGVyZmVyZSB3aXRoCit0aGUgb3RoZXIgKHRoYXQgaXMsIGJ5IGRhbWFnaW5nIHRoZSBvdGhlcidzIGZpbGVzKS4gIEEgInBhcnRpdGlvbiIgaXMgYQorc2VjdGlvbiBvZiBhIGhhcmQgZGlzayB3aGljaCBpcyBoYW5kbGVkIGFzIGEgdW5pdCBieSBhbGwgb3BlcmF0aW5nCitzeXN0ZW1zIHdoaWNoIGNhbiBhY2Nlc3MgdGhlIGRpc2suICBUaGUgc3RhbmRhcmQgd2F5IHRvIGRlZmluZQorcGFydGl0aW9ucyAoZm9yIHRoZSBtb21lbnQpIGlzIHRoZSAicGFydGl0aW9uIHRhYmxlIiwgYSBsaXN0IG9mCitpbmZvcm1hdGlvbiB3aGljaCBpcyBzdG9yZWQgaW4gcGFydHMgb2YgdGhlIGRpc2sgdGhhdCBkb24ndCBiZWxvbmcgdG8KK2FueSBvZiB0aGUgc3lzdGVtcyB1c2luZyB0aGUgZGlzay4gIFRoZSBiZWdpbm5pbmcgb2YgdGhlIHBhcnRpdGlvbgordGFibGUgaXMgc3RvcmVkIGluIHRoZSBkaXNrJ3MgcHJpbWFyeSBib290IHNlY3RvciwgYW5kIHRoZSByZXN0IGlzCitzdG9yZWQgaW4gYSBjaGFpbiBvZiBzZWN0b3JzIHNjYXR0ZXJlZCB0aHJvdWdob3V0IHRoZSBkaXNrLgorCitUaGUgZmlyc3Qgc2VjdG9yIG9uIHRoZSBkaXNrIGlzIGNhbGxlZCB0aGUgInByaW1hcnkgYm9vdCBibG9jayIgb3IKKyJwcmltYXJ5IGJvb3Qgc2VjdG9yIiBiZWNhdXNlICgxKSBpdCBjb21lcyBmaXJzdCwgYmVmb3JlIG90aGVyLCBzaW1pbGFyCitzZWN0b3JzOyAoMikgaXQgdGVsbHMgd2hlcmUgdGhlIG90aGVyLCBzaW1pbGFyIHNlY3RvcnMgYXJlIGZvdW5kLCBzbwordGhhdCBpdCBpcyBsb2dpY2FsbHkgYHByaW9yJyB0byB0aGVtOyBhbmQgKDMpIGl0IHVzdWFsbHkgY29udGFpbnMgY29kZQord2hpY2ggaXMgZXhlY3V0ZWQgd2hlbiB0aGUgc3lzdGVtIGJvb3RzIHVwLiAgVGhpcyBzZWN0b3IgY29udGFpbnMgYQordGFibGUgZGVzY3JpYmluZyBhdCBtb3N0IGZvdXIgcGFydGl0aW9ucy4gIFRoZXNlIGFyZWFzIGFyZSBjYWxsZWQKKyJwcmltYXJ5IHBhcnRpdGlvbnMiLgorCitUaGUgcGFydGl0aW9uIHRhYmxlIGluIHRoZSBwcmltYXJ5IGJvb3Qgc2VjdG9yIG1heSBhbHNvIGRlc2NyaWJlIGF0Cittb3N0IG9uZSAiZXh0ZW5kZWQgcGFydGl0aW9uIi4gIFRoaXMgaXMgYSBsYXJnZSBhcmVhIG9mIHRoZSBkaXNrLAordXN1YWxseSBjb250YWluaW5nIGFsbCB0aGUgc3BhY2Ugd2hpY2ggaXMgbm90IGluIGFueSBwcmltYXJ5IHBhcnRpdGlvbi4KK1dpdGhpbiB0aGlzIHNwYWNlIHdlIGNhbiBzZXQgYXNpZGUgb3RoZXIgYXJlYXMgd2hpY2ggYXJlIGNhbGxlZAorImxvZ2ljYWwgcGFydGl0aW9ucyIsIGJlY2F1c2UgdGhleSBsb29rIGFsbW9zdCBleGFjdGx5IGxpa2UgcHJpbWFyeQorcGFydGl0aW9ucy4gIEluIGZhY3QsIHRoZSBtYWluIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGVtIGlzIHRoYXQgd2UgY2FuCitib290IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zLCB3aGlsZSB3ZSBjYW5ub3QgYm9vdCBmcm9tIGxvZ2ljYWwKK3BhcnRpdGlvbnMuICBUaGlzIGhhcHBlbnMgYmVjYXVzZSB0aGUgYWRkcmVzcyBvZiBhIHByaW1hcnkgcGFydGl0aW9uIGlzCitpbiBhIGZpeGVkIHBsYWNlLCB3aGVyZWFzIHRoZSBhZGRyZXNzIG9mIGEgc2Vjb25kYXJ5IHBhcnRpdGlvbiBpcyBub3QsCitzbyB3ZSByZXF1aXJlIGEgbW9yZSBjb21wbGljYXRlZCBwcm9jZXNzIHRvIGRpc2NvdmVyIGl0LCBvbmUgd2hpY2ggaXMKK3RvbyBkaWZmaWN1bHQgZm9yIG1vc3QgcHJpbWFyeSBib290IHByb2dyYW1zLgorCisKK0RpdmlkaW5nIHVwIHlvdXIgZGlzaworLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0l0IGlzIGEgZ29vZCBpZGVhIHRvIHBsYW4gYWhlYWQgYmVmb3JlIHlvdSBzdGFydCBjcmVhdGluZyBwYXJ0aXRpb25zCitvbiB5b3VyIGRpc2suICBJZiB5b3Ugc2V0IGFzaWRlIGEgcGFydGl0aW9uIGZvciBzb21lIHB1cnBvc2UsIGl0IGlzIG5vdAorZWFzeSB0byBjaGFuZ2UgaXRzIHNpemU6IHlvdSBtdXN0IGJhY2t1cCBhbGwgdGhlIGRhdGEgZnJvbSB0aGUgcGFydGl0aW9uLAord2hldGhlciB0byBmbG9wcGllcywgdG8gYW5vdGhlciBwYXJ0aXRpb24sIHRvIGFub3RoZXIgaGFyZCBkaXNrLCBvcgorc29tZXdoZXJlIGVsc2U7IHRoZW4geW91IG11c3QgZWRpdCB0aGUgdGFibGUgd2hpY2ggZGVzY3JpYmVzIHRoaXMKK3BhcnRpdGlvbiwgc28gY2hhbmdpbmcgaXRzIHNpemU7IHRoZW4geW91IG11c3QgcmVib290IGFuZCBpbml0aWFsaXNlCit0aGUgbmV3IHBhcnRpdGlvbiwgZm9ybWF0dGluZyBpdCwgZm9yIGV4YW1wbGUsIHVuZGVyIERPUywgb3IgcnVubmluZworYG1rZnMnIHVuZGVyIExpbnV4OyBmaW5hbGx5IHlvdSBjYW4gY29weSBhbGwgdGhlIGRhdGEgYmFjay4gIEl0IGlzCitwb3NzaWJsZSwgaWYgeW91IGhhdmUgc2V2ZXJhbCBwYXJ0aXRpb25zLCB0byBjb3B5IGRhdGEgYmFjayBhbmQgZm9ydGgKK2JldHdlZW4gdGhlbSB3aGlsZSB5b3UgY2hhbmdlIHRoZWlyIHNpemVzLCBidXQgdGhpcyBpcyBhIGJpdCByaXNreSBhbmQKK3RpbWUgY29uc3VtaW5nLiAgSXQgaXMgYmV0dGVyIHRvIHBsYW4gYWhlYWQgd2hhdCB5b3Ugd2lsbCBuZWVkLCBzaW5jZQoraXQgaXMgaGFyZCB0byBjaGFuZ2UgaXQgYWZ0ZXJ3YXJkcy4KKworTWFueSBwZW9wbGUgd2l0aCBsYXJnZSBkaXNrcyBhbmQgcmVjZW50IHZlcnNpb25zIG9mIERPUyBoYXZlIHRoZWlyCitlbnRpcmUgZmlsZSBzeXN0ZW0gb24gb25lIGxhcmdlIHBhcnRpdGlvbi4gIFRoZXkgdXN1YWxseSBhc2ssIGBJc24ndAordGhlcmUgYW55IHdheSBJIGNhbiByZWZvcm1hdCBteSBkaXNrIHdpdGhvdXQgY29weWluZyBldmVyeXRoaW5nIG9mZj8nCitUaGVyZSBpcyBubyB3YXkgdG8gZG8gaXQgdXNpbmcgc3RhbmRhcmQgRE9TIHV0aWxpdGllcywgYW5kIHRoZXJlIGlzIG5vCit0cnVseSBzYWZlIHdheSB0byBkbyBpdCB1c2luZyBjb21tZXJjaWFsIHNvZnR3YXJlLCBiZWNhdXNlLCBpZiB5b3UgbWFrZQorYSBtaXN0YWtlLCB5b3Ugd2lsbCBsb3NlIHRoZSBlbnRpcmUgY29udGVudHMgb2YgeW91ciBkaXNrLiAgSWYgeW91IGFyZQorZ29pbmcgdG8gYmFjayB1cCB5b3VyIGRpc2sgYW55d2F5LCB5b3UgbWlnaHQgYXMgd2VsbCBjb3B5IHRoZSBkYXRhIGJhY2sKK3NhZmVseS4gIFRoZSBMaW51eCBGQVEgY29udGFpbnMgcmVmZXJlbmNlcyB0byB0b29scyBhbmQgcHJvY2VkdXJlcword2hpY2ggd2lsbCBhbGxvdyB5b3UgdG8gZG8gdGhpcywgaWYgeW91IGRhcmUuCisKK0RPUyBhbmQgTGludXggYm90aCBhbGxvdyB5b3UgdG8gYWNjZXNzIHNldmVyYWwgcGFydGl0aW9ucyBvbiBhCitzaW5nbGUgZGlzazsgb24gRE9TIHRoZXNlIGFyZSB0cmVhdGVkIGFzIGlmIHRoZXkgd2VyZSBzZXBhcmF0ZSBkaXNrcyBvcgorZHJpdmVzLCBhbmQgdW5kZXIgTGludXggdGhleSBhcmUgdHJlYXRlZCBhcyBkaWZmZXJlbnQgImRldmljZXMiLgorCitZb3UgY2FuIGhhdmUgdXAgdG8gNjQgcGFydGl0aW9ucyBvbiBhIHNpbmdsZSBJREUgZGlzaywgb3IgdXAgdG8gMTYKK3BhcnRpdGlvbnMgb24gYSBzaW5nbGUgU0NTSSBkaXNrLCBhdCBsZWFzdCBhcyBmYXIgYXMgTGludXggaXMKK2NvbmNlcm5lZDsgaW4gcHJhY3RpY2UgeW91IHdpbGwgcmFyZWx5IHdhbnQgc28gbWFueS4gIFRoZSBtYXhpbXVtIHNpemUKK29mIGEgTGludXggZmlsZSBzeXN0ZW0gb24gYSBzaW5nbGUgcGFydGl0aW9uIGRlcGVuZHMgb24gdGhlIHR5cGUgb2YKK2ZpbGUgc3lzdGVtIHlvdSB1c2UuICBNaW5peCBmaWxlIHN5c3RlbXMgYXJlIGxpbWl0ZWQgdG8gNjQgbWVnYWJ5dGVzLgorWW91IG1heSBoYXZlIGFsbCBvZiB5b3VyIExpbnV4IGZpbGVzIGluIGEgc2luZ2xlIHBhcnRpdGlvbiwgb3IgeW91IG1heQoraGF2ZSB0d28sIHRocmVlLCBvciBtb3JlIExpbnV4IGZpbGUgc3lzdGVtcy4gIFNpbWlsYXJseSB5b3UgbWF5IGhhdmUKK29uZSBvciBtb3JlIERPUyBwYXJ0aXRpb25zLiAgSWYgeW91IGhhdmUgc2V2ZXJhbCBzbWFsbCBwYXJ0aXRpb25zLCB5b3UKK3J1biBtdWNoIGxlc3MgcmlzayBvZiBsb3NpbmcgYWxsIHlvdXIgZmlsZXMgaWYgeW91ciBkaXNrIGdldHMKK2NvcnJ1cHRlZC4gIE9uIHRoZSBvdGhlciBoYW5kLCB5b3UgbWF5IHJ1biBvdXQgb2Ygc3BhY2Ugb24gYSBzbWFsbAorcGFydGl0aW9uIG1vcmUgZWFzaWx5LgorCitVbmRlciBET1MsIHlvdSBtdXN0IHJlZmVyIHRvIGVhY2ggcGFydGl0aW9uIGJ5IGEgc2VwYXJhdGUgZHJpdmUKK2xldHRlciwgYnV0IGFsbCBwYXJ0aXRpb25zIGFyZSBhdXRvbWF0aWNhbGx5IGFjY2Vzc2libGUuICBVbmRlciBMaW51eAorb25seSB0aGUgcm9vdCBwYXJ0aXRpb24gaXMgYXV0b21hdGljYWxseSBhY2Nlc3NpYmxlLCBidXQgb25jZSB3ZSBtb3VudAorYW5vdGhlciBwYXJ0aXRpb24sIGl0IGlzIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gdGhlIHJlc3Qgb2YgdGhlIGZpbGUKK3N5c3RlbS4gIERpc2tzIGFyZSB1c3VhbGx5IG1vdW50ZWQgYnkgYSBjb21tYW5kIGluIG9uZSBvZiB0aGUgc3lzdGVtCitzdGFydHVwIGZpbGVzLCBgL2V0Yy9yYycsIHNvIHlvdSBuZWVkIG5vdCB3b3JyeSBhYm91dCBoYXZpbmcgdG8gZG8gaXQKK3lvdXJzZWxmIHdoZW5ldmVyIHlvdSBib290IHRoZSBzeXN0ZW0uICBCdXQgZXZlbiBvcmRpbmFyeSB1c2VycyBtYXkKK2JlIGFsbG93ZWQgdG8gbW91bnQgcmVtb3ZhYmxlIGhhcmQgZGlza3MgYW5kIGZsb3BweSBkaXNrcy4KKworTGludXggcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHBhcnRpdGlvbiwgd2hpY2ggaXMgdGhlIGByb290JyBvZiB0aGUKK2ZpbGUgc3lzdGVtLiAgWW91IG1heSBwcmVmZXIgdG8gaGF2ZSBhIHNlcGFyYXRlIHBhcnRpdGlvbiBmb3IgYC91c3InLAord2hpY2ggY29udGFpbnMgbW9zdCBvZiB0aGUgZXhlY3V0YWJsZSBmaWxlcywgb3IgZm9yIGAvaG9tZScsIHdoaWNoCitjb250YWlucyBtb3N0IG9mIHlvdXIgcHJpdmF0ZSBmaWxlcy4gIFlvdSBtYXkgYWxzbyB3aXNoIHRvIHNldCBhc2lkZSBhCitwYXJ0aXRpb24gdG8gdXNlIGZvciBzd2FwIHNwYWNlLCBkZXBlbmRpbmcgb24gdGhlIGFtb3VudCBvZiBtZW1vcnkgeW91cgorUEMgaGFzLiAgWW91IHdpbGwgY2VydGFpbmx5IG5lZWQgc3dhcCBzcGFjZSBpZiB5b3UgaGF2ZSBsZXNzIHRoYW4gNCBNQgorb2YgUkFNIGFuZCB3aXNoIHRvIGNvbXBpbGUgYW55dGhpbmcgc3Vic3RhbnRpYWwuICBZb3UgY2FuIHJlc2VydmUgc3dhcAorc3BhY2UgaW4gYSBmaWxlLCBidXQgeW91IG5lZWQgYSBwYXJ0aXRpb24gYmlnIGVub3VnaCB0byBob2xkIGl0LCBhbmQKK3RoaXMgd2lsbCBwcm9iYWJseSBiZSBsZXNzIGVmZmljaWVudCB0aGFuIGhhdmluZyBhIHBhcnRpdGlvbiBkZXZvdGVkIHRvCitzd2FwLgorCitUaGUgZGlzayBzcGFjZSB5b3UgbmVlZCBmb3IgTGludXggaXMgZGlzY3Vzc2VkIGluIFJFQURNRS5wcmVwYXJlLgorCitBcmUgeW91IGdvaW5nIHRvIGJvb3QgTGludXggZnJvbSB0aGUgaGFyZCBkaXNrLCBvciB3aWxsIHlvdSBib290Citmcm9tIGEgZmxvcHB5PyAgU29tZSBib290IHByb2dyYW1zIHBsYWNlIHNldmVyZSByZXN0cmljdGlvbnMgb24gd2hlcmUKK3RoZSBib290IHBhcnRpdGlvbiBjYW4gYmUuICBMSUxPIGlzIG1vcmUgcmVsYXhlZCBhYm91dCB0aGlzLCBidXQgZG9lcworcmVxdWlyZSBlaXRoZXIgdGhlIE1hc3RlciBCb290IFJlY29yZCBvbiB5b3VyIGZpcnN0IGhhcmQgZGlzaywgb3IgdGhlCitib290IHJlY29yZCBvbiBvbmUgb2YgdGhlIGZpcnN0IGZvdXIgcGFydGl0aW9ucyBvbiB5b3VyIGZpcnN0IGhhcmQgZGlzay4KKworSWYgeW91IGhhdmUgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIHdpdGggbG9naWNhbCBwYXJ0aXRpb25zIGluIGl0LCB5b3UKK2NhbiBoYXZlIG9ubHkgdGhyZWUgcHJpbWFyeSBwYXJ0aXRpb25zIGNvbnRhaW5pbmcgZGF0YS4KKworCitUaGUgYGZkaXNrJyBjb21tYW5kCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK0V2ZXJ5IG9wZXJhdGluZyBzeXN0ZW0sIHdoZXRoZXIgRE9TLCBPUy8yLCBvciBMaW51eCwgc2hvdWxkIHByb3ZpZGUKK2l0cyBvd24gdXRpbGl0eSBmb3IgZWRpdGluZyBoYXJkIGRpc2sgcGFydGl0aW9uIHRhYmxlcy4gIEF0IGxlYXN0IGZvdXIKK29mIHRoZXNlIHV0aWxpdGllcyBoYXZlIGJlZW4gY2FsbGVkIGBmZGlzaycsIGZvciBgRml4ZWQgRElTSyBzZXR1cAorcHJvZ3JhbScsIHdoZXJlIGBmaXhlZCcgbWVhbnMgYG5vdCByZW1vdmFibGUnLiAgSSBiZWxpZXZlIHRoZSBmaXJzdCBQQworcHJvZ3JhbSBuYW1lZCBgZmRpc2snIGNhbWUgZnJvbSBNaWNyb3NvZnQgaW4gYWJvdXQgMTk4NTsgYmVmb3JlIHRoYXQKK3RpbWUgZGlza3Mgd2VyZSB0b28gc21hbGwgdG8gZGl2aWRlIGludG8gc2VwYXJhdGUgc2VjdGlvbnMuCisKK0V2ZXJ5IG9wZXJhdGluZyBzeXN0ZW0gaGFzIGl0cyBvd24gcGVjdWxpYXJpdGllcy4gIE5vcm1hbGx5IHlvdQorc2hvdWxkIHNldCB1cCBhIHBhcnRpdGlvbiBmb3IgdGhlIHVzZSBvZiBvbmUgb3BlcmF0aW5nIHN5c3RlbSBieSB1c2luZworaXRzIG93biBgZmRpc2snIHByb2dyYW0uICBEbyBub3QgdXNlIHRoZSBMaW51eCBgZmRpc2snIHRvIGNyZWF0ZQorcGFydGl0aW9ucyBmb3IgRE9TIG9yIGZvciBhbnkgc3lzdGVtIG90aGVyIHRoYW4gTGludXg7IG90aGVyd2lzZSB5b3UKK21heSBoYXZlIHByb2JsZW1zLgorCitBbiBgZmRpc2snIHByb2dyYW0gcGVyZm9ybXMgdHdvIGZ1bmN0aW9uczogaXQgcmVwb3J0cyBob3cgdGhlIGRpc2sgaXMKK2NvbmZpZ3VyZWQsIGFuZCBpdCBjaGFuZ2VzIHRoYXQgY29uZmlndXJhdGlvbiBieSBhZGRpbmcgb3IgZGVsZXRpbmcKK3BhcnRpdGlvbnMuICBNb3N0IGBmZGlzaycgcHJvZ3JhbXMgY2FuIGFsc28gY2hhbmdlIG90aGVyIGluZm9ybWF0aW9uIGluCitwYXJ0aXRpb24gdGFibGVzLgorCitUaGlzIGBmZGlzaycgZm9yIExpbnV4IG9wZXJhdGVzIG9uIG9uZSBoYXJkIGRpc2sgYXQgYSB0aW1lLiAgSWYgeW91CitnaXZlIHRoZSBjb21tYW5kCisKKyAgICAgZmRpc2sKKworaXQgcmVwb3J0cyBvbiwgYW5kIGlzIGFibGUgdG8gY2hhbmdlLCBgL2Rldi9oZGEnLCB0aGUgZmlyc3QgaGFyZAorZGlzay4gIChJZiB5b3UgaGF2ZSBubyBgL2Rldi9oZGEnLCBgZmRpc2snIHVzZXMgYC9kZXYvc2RhJyBhcyB0aGUKK2RlZmF1bHQgZGV2aWNlLikgVG8gbG9vayBhdCBvciBjaGFuZ2UgdGhlIHNlY29uZCBoYXJkIGRpc2ssIGAvZGV2L2hkYicsCitnaXZlIHRoZSBjb21tYW5kCisKKyAgICAgZmRpc2sgL2Rldi9oZGIKKworVG8gbG9vayBhdCBvciBjaGFuZ2UgdGhlIGZpcnN0IFNDU0kgZGlzaywgZ2l2ZSB0aGUgY29tbWFuZAorCisgICAgIGZkaXNrIC9kZXYvc2RhCisKK1RoZXJlIGFyZSBzb21lIHNwZWNpYWwgZm9ybXMgb2YgdGhlIGBmZGlzaycgY29tbWFuZC4gIE9uZSBvZiB0aGVtLAorc3VnZ2VzdGVkIGJ5IEppbSBXaW5zdGVhZCwgc2ltcGx5IGxpc3RzIGFsbCBwYXJ0aXRpb25zIG9uIGFsbCBhdmFpbGFibGUKK2Rpc2tzOgorCisgICAgIGZkaXNrIC1sICAgICAod2hlcmUgYGwnIGlzIGEgbGV0dGVyLCBub3QgdGhlIGRpZ2l0IGAxJykKKworVGhlIG9wdGlvbiBgLXYnIGlzIHByb3ZpZGVkIHRvIGxpc3QgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUKK2BmZGlzaycgY29tbWFuZC4gIEZpbmFsbHksIHRoZXJlIGlzIGFuIG9wdGlvbiBgLXMnIHdoaWNoIGlzIG5vdCByZWFsbHkKK2ludGVuZGVkIGZvciBpbnRlcmFjdGl2ZSB1c2UuICBJdCBjYXVzZXMgZmRpc2sgdG8gcHJpbnQgdGhlIHNpemUgb2YgYQorcGFydGl0aW9uIGluIGJsb2NrcyBvZiAxMDI0IGJ5dGVzIGFzIGZvbGxvd3M6CisKKyAgICAgZmRpc2sgLXMgL2Rldi9oZGE3CisgICAgIDM5OTM0CisKK0JlY2F1c2UgdGhpcyBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IGBta2ZzJyBhbmQgYG1rc3dhcCcgcHJvZ3JhbXMsCitpdCBkb2VzIG5vdCByZXR1cm4gdGhlIHNpemUgb2YgZXh0ZW5kZWQgcGFydGl0aW9ucyBvciBvZiBwYXJ0aXRpb25zCit3aG9zZSBzeXN0ZW0gdHlwZSBjb2RlIGlzIGxlc3MgdGhhbiAxMCAoaGV4YWRlY2ltYWwgYSkuICBJZiB5b3Ugc3RhcnQKK2BmZGlzaycgd2l0aG91dCB1c2luZyBvbmUgb2YgdGhlc2Ugc3BlY2lhbCBvcHRpb25zLCBpdCByZXNwb25kcyBieQorYXNraW5nIGZvciBhIGNvbW1hbmQ6CisKKyAgICAgQ29tbWFuZCAobSBmb3IgaGVscCk6IF8KKworRWFjaCBgZmRpc2snIGNvbW1hbmQgY29uc2lzdHMgb2YgYSBzaW5nbGUgbGV0dGVyLCB3aGljaCBtdXN0IGJlCitmb2xsb3dlZCBieSA8UkVUVVJOPiBiZWZvcmUgaXQgaXMgb2JleWVkLiAgVXBwZXIgYW5kIGxvd2VyIGNhc2UgYXJlIG5vdAorZGlzdGluZ3Vpc2hlZC4gIEFueXRoaW5nIHlvdSB0eXBlIGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgaWdub3JlZC4KK0dpdmUgdGhlIGNvbW1hbmQgYG0nLCBhbmQgeW91IHNob3VsZCBzZWUgdGhpcyBtZW51OgorICAgICAgQ29tbWFuZCBhY3Rpb24KKyAgICAgICAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnCisgICAgICAgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uCisgICAgICAgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMKKyAgICAgICAgIG0gICBwcmludCB0aGlzIG1lbnUKKyAgICAgICAgIG4gICBhZGQgYSBuZXcgcGFydGl0aW9uCisgICAgICAgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZQorICAgICAgICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcworICAgICAgICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIHN5c3RlbSBpZAorICAgICAgICAgdSAgIGNoYW5nZSBkaXNwbGF5L2VudHJ5IHVuaXRzCisgICAgICAgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUKKyAgICAgICAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0CisgICAgICAgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KQorICAgICAKKyAgICAgIENvbW1hbmQgKG0gZm9yIGhlbHApOiBfCisKK1RoZSBzaW1wbGVzdCBjb21tYW5kcyBhcmUgUHJpbnQsIFZlcmlmeSwgYW5kIFF1aXQuICBPbiBhIHNtYWxsIGRpc2ssIHRoZQorUHJpbnQgY29tbWFuZCBtaWdodCBwcm9kdWNlIGEgZGlzcGxheSBsaWtlIHRoaXMgb25lOgorCisgICAgIERpc2sgL2Rldi9oZGE6IDUgaGVhZHMsIDE3IHNlY3RvcnMsIDk3NyBjeWxpbmRlcnMKKyAgICAgVW5pdHMgPSBjeWxpbmRlcnMgb2YgODUgKiA1MTIgYnl0ZXMKKyAgICAgCisgICAgICAgIERldmljZSBCb290ICBCZWdpbiAgIFN0YXJ0ICAgICBFbmQgIEJsb2NrcyAgIElkICBTeXN0ZW0KKyAgICAgL2Rldi9oZGExICAgKiAgICAgICAxICAgICAgIDEgICAgIDIzNiAgIDEwMDIxKyAgIDEgIERPUyAxMi1iaXQgRkFUCisgICAgIC9kZXYvaGRhMiAgICAgICAgIDgzNyAgICAgODM3ICAgICA5NzcgICAgNTk5MisgICA1ICBFeHRlbmRlZAorICAgICAvZGV2L2hkYTMgICAqICAgICAyMzcgICAgIDIzNyAgICAgODM2ICAgMjU1MDAgICA4MyAgTGludXggbmF0aXZlCisgICAgIC9kZXYvaGRhNSAgICAgICAgIDgzNyAgICAgODM3ICAgICA5MzYgICAgNDI0OSsgIDgyICBMaW51eCBzd2FwCisgICAgIC9kZXYvaGRhNiAgICAgICAgIDk0MiAgICAgOTQyICAgICA5NzcgICAgMTUyMiAgICAxICBET1MgMTItYml0IEZBVAorCitUaGVyZSBhcmUgNSBwYXJ0aXRpb25zIHJlcG9ydGVkOyBgL2Rldi9oZGE0JyBkb2VzIG5vdCBhcHBlYXIgYmVjYXVzZQoraXQgaXMgbm90IGFsbG9jYXRlZC4gIFBhcnRpdGlvbnMgMSBhbmQgMyBhcmUgZmxhZ2dlZCBhcyBib290YWJsZS4gIFRoZQorc2l6ZSBvZiBlYWNoIHBhcnRpdGlvbiBpcyByZXBvcnRlZCBpbiAxIGtpbG9ieXRlIGJsb2NrczsgaGVuY2UgdGhlCitwcmltYXJ5IExpbnV4IHBhcnRpdGlvbiwgcGFydGl0aW9uIDMsIGlzIDI1IDEvMiBtZWdhYnl0ZXMgaW4gc2l6ZS4gIFRoZQorYCsnIGFmdGVyIHRocmVlIG9mIHRoZSBzaXplcyB3YXJucyB0aGF0IHRoZXNlIHBhcnRpdGlvbnMgY29udGFpbiBhbiBvZGQKK251bWJlciBvZiBzZWN0b3JzOiBMaW51eCBub3JtYWxseSBhbGxvY2F0ZXMgZmlsZXNwYWNlIGluIDEga2lsb2J5dGUKK2Jsb2Nrcywgc28gdGhlIGV4dHJhIHNlY3RvciBpbiBwYXJ0aXRpb24gNSBpcyB3YXN0ZWQuICBJZCBudW1iZXJzIGFyZQorcmVwb3J0ZWQgaW4gaGV4YWRlY2ltYWwgYW5kIGV4cGxhaW5lZCBpbiBFbmdsaXNoLgorCitUaGUgZGlzcGxheS9lbnRyeSB1bml0cyBtYXkgYmUgZWl0aGVyIGN5bGluZGVycyBvciBzZWN0b3JzLiAgVGhlCitkZWZhdWx0IGlzIGN5bGluZGVycywgYnV0IGNoYW5naW5nIHRoZSB1bml0cyBtYWtlcyB0aGUgcHJpbnQgY29tbWFuZAorZGlzcGxheSB0aGUgZm9sbG93aW5nIHRhYmxlIGZvciB0aGUgc3lzdGVtIHJlcG9ydGVkIGFib3ZlOgorCisgICAgIERpc2sgL2Rldi9oZGE6IDUgaGVhZHMsIDE3IHNlY3RvcnMsIDk3NyBjeWxpbmRlcnMKKyAgICAgVW5pdHMgPSBzZWN0b3JzIG9mIDEgKiA1MTIgYnl0ZXMKKyAgICAgCisgICAgICAgIERldmljZSBCb290ICBCZWdpbiAgIFN0YXJ0ICAgICBFbmQgIEJsb2NrcyAgIElkICBTeXN0ZW0KKyAgICAgL2Rldi9oZGExICAgKiAgICAgICAxICAgICAgMTcgICAyMDA1OSAgIDEwMDIxKyAgIDEgIERPUyAxMi1iaXQgRkFUCisgICAgIC9kZXYvaGRhMiAgICAgICA3MTA2MCAgIDcxMDYwICAgODMwNDQgICAgNTk5MisgICA1ICBFeHRlbmRlZAorICAgICAvZGV2L2hkYTMgICAqICAgMjAwNjAgICAyMDA2MCAgIDcxMDU5ICAgMjU1MDAgICA4MyAgTGludXggbmF0aXZlCisgICAgIC9kZXYvaGRhNSAgICAgICA3MTA2MSAgIDcxMDYxICAgNzk1NTkgICAgNDI0OSsgIDgyICBMaW51eCBzd2FwCisgICAgIC9kZXYvaGRhNiAgICAgICA3OTk4NSAgIDgwMDAxICAgODMwNDQgICAgMTUyMiAgICAxICBET1MgMTItYml0IEZBVAorCitUaGUgc3RhcnQgb2YgZGF0YSBpbiBib3RoIERPUyBwYXJ0aXRpb25zIGlzIDE2IHNlY3RvcnMgYWZ0ZXIgdGhlCitiZWdpbm5pbmcgb2YgdGhlIHBhcnRpdGlvbjogdGhpcyBpcyBvbmUgcmVhc29uIHdoeSB5b3Ugc2hvdWxkIHVzZSBET1Mncworb3duIGBGRElTSycgdG8gY3JlYXRlIERPUyBwYXJ0aXRpb25zLiAgQ2hhbmdpbmcgdGhlIHVuaXRzIHRvIHNlY3RvcnMKK2Fsc28gYWZmZWN0cyB0aGUgd2F5IGluIHdoaWNoIHRoZSBuZXcgcGFydGl0aW9uIGNvbW1hbmQgYXNrcyBmb3IgdGhlCitiZWdpbm5pbmcgYW5kIGVuZCBvZiBhIG5ldyBwYXJ0aXRpb24uCisKKypXYXJuaW5nKjogaXQgaXMgZGFuZ2Vyb3VzIHRvIGNyZWF0ZSBhIG5ldyBwYXJ0aXRpb24gd2hlbiB0aGUKK2Rpc3BsYXkvZW50cnkgdW5pdHMgYXJlIHNlY3RvcnMuCisKK1RoZSBWZXJpZnkgY29tbWFuZCBpcyB1c2VmdWwgYmVjYXVzZQorCisgIDEuIEl0IHdhcm5zIHlvdSBpZiBhbnl0aGluZyBpcyB3cm9uZy4gICpBbHdheXMqIGRvIGEgVmVyaWZ5IGNvbW1hbmQKKyAgICAgdG8gY2hlY2sgeW91ciB3b3JrIGJlZm9yZSB3cml0aW5nIGFueSBjaGFuZ2VzIHRvIGRpc2suCisKKyAgMi4gSXQgcmVwb3J0cyBob3cgbWFueSB1bmFsbG9jYXRlZCBzZWN0b3JzIHRoZXJlIGFyZSBvbiB0aGUgZGlzay4KKworVGhlIFF1aXQgY29tbWFuZCBpcyBhbHNvIHVzZWZ1bC4gIGBmZGlzaycgZG9lcyBub3QgYWN0dWFsbHkgY2hhbmdlCithbnkgZGF0YSBvbiB5b3VyIGRpc2sgdW5sZXNzIHlvdSBnaXZlIGEgV3JpdGUgY29tbWFuZC4gIElmIHlvdSBhcmUKK3VuaGFwcHkgYWJvdXQgYW55IGNoYW5nZXMgeW91IG1heSBoYXZlIG1hZGUsIGdpdmUgdGhlIFF1aXQgY29tbWFuZCwgYW5kCit5b3VyIGRpc2sgd2lsbCByZW1haW4gYXMgaXQgd2FzIGJlZm9yZSB5b3UgcmFuIGBmZGlzaycuICBZb3UgY2FuIGFsc28KK2ludGVycnVwdCBgZmRpc2snIHdpdGggYENUUkwtQycuCisKKworRGVsZXRpbmcgYW5kIGFkZGluZyBwYXJ0aXRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRGVsZXRpbmcgYSBwYXJ0aXRpb24gaXMgc2ltcGxlLiAgR2l2ZSB0aGUgRGVsZXRlIGNvbW1hbmQgYnkgdHlwaW5nCitgZCcuICBgZmRpc2snIGFza3M6CisKKyAgICAgUGFydGl0aW9uIG51bWJlciAoMS02KTogXworCitPbmNlIHlvdSBnZXQgdGhpcyBmYXIsIHlvdSBtdXN0IGVpdGhlciBkZWxldGUgYSBwYXJ0aXRpb24gb3IKK2ludGVycnVwdCB0aGUgcHJvZ3JhbSB3aXRoIGBDVFJMLUMnIChvciB3aGF0ZXZlciB5b3VyIGN1cnJlbnQgaW50ZXJydXB0CitjaGFyYWN0ZXIgaXMpLiAgTm90ZToKKworICAxLiBZb3UgbWF5IGRlbGV0ZSBhIG5vbmV4aXN0ZW50IHBhcnRpdGlvbi4gIFlvdSB3aWxsIGdldCBhIHdhcm5pbmcKKyAgICAgbWVzc2FnZS4KKworICAyLiBZb3UgbWF5IGRlbGV0ZSBhbiBleHRlbmRlZCBwYXJ0aXRpb24uICBUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YKKyAgICAgZGVsZXRpbmcgYWxsIHBhcnRpdGlvbnMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDUuCisKKyAgMy4gWW91IG1heSBkZWxldGUgYSBsb2dpY2FsIHBhcnRpdGlvbi4gIEluIHRoYXQgY2FzZSwgYWxsIHBhcnRpdGlvbnMKKyAgICAgYWJvdmUgaXQgYXJlIHJlbnVtYmVyZWQgYXQgb25jZS4gIEZvciBleGFtcGxlLCBpZiB5b3UgZGVsZXRlCisgICAgIHBhcnRpdGlvbiA1LCB0aGVuIHBhcnRpdGlvbiA2IGJlY29tZXMga25vd24gYXMgcGFydGl0aW9uIDUsIGFuZAorICAgICBwYXJ0aXRpb24gNyBhcyBwYXJ0aXRpb24gNi4KKworQWRkaW5nIGEgcGFydGl0aW9uIGlzIGp1c3QgYSBiaXQgbW9yZSBjb21wbGljYXRlZC4gIEdpdmUgdGhlIE5ldworY29tbWFuZCBieSB0eXBpbmcgYG4nLiAgYGZkaXNrJyBhbGxvd3MgeW91IHRvCisKKyAgMS4gQ3JlYXRlIGEgcHJpbWFyeSBwYXJ0aXRpb24sIGlmIHRoZXJlIGlzIGEgZnJlZSBzbG90IGluIHRoZSBwcmltYXJ5CisgICAgIHBhcnRpdGlvbiB0YWJsZS4KKworICAyLiBDcmVhdGUgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGlmIHRoZXJlIGlzIGEgZnJlZSBzbG90IGluIHRoZQorICAgICBwcmltYXJ5IHBhcnRpdGlvbiB0YWJsZSwgYW5kIGlmIHRoZXJlIGlzIG5vIGV4dGVuZGVkIHBhcnRpdGlvbi4KKworICAzLiBDcmVhdGUgYSBsb2dpY2FsIHBhcnRpdGlvbiBpZiBhbiBleHRlbmRlZCBwYXJ0aXRpb24gZXhpc3RzLgorCitJZiBtb3JlIHRoYW4gb25lIG9mIHRoZXNlIGFjdGlvbnMgaXMgcG9zc2libGUsIHlvdSB3aWxsIGJlIGFza2VkIHRvCitzZWxlY3QgUHJpbWFyeSwgRXh0ZW5kZWQsIG9yIExvZ2ljYWwsIGRlcGVuZGluZyBvbiB3aGF0IGlzIGN1cnJlbnRseQorcGVybWlzc2libGUuICBCZWZvcmUgeW91IGNyZWF0ZSBhIHByaW1hcnkgb3IgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLCB5b3UKK2FyZSBhc2tlZCB3aGF0IHNsb3QgaXQgaXMgdG8gaGF2ZSBpbiB0aGUgdGFibGUgKDEtNCkuCisKK1lvdSBtYXkgbm90IGFkZCBhIHByaW1hcnkgb3IgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGlmIHRoZSBzZWxlY3RlZAorc2xvdCBpbiB0aGUgcHJpbWFyeSBwYXJ0aXRpb24gdGFibGUgaXMgYWxyZWFkeSBvY2N1cGllZDogaW4gdGhhdCBjYXNlCit5b3Ugc2ltcGx5IHJldHVybiB0byB0aGUgbWFpbiBtZW51LiAgWW91IGFyZSBub3QgYWxsb3dlZCB0byBhZGQgYSBuZXcKK3ByaW1hcnkgcGFydGl0aW9uIHVubGVzcyB0aGVyZSBhcmUgc2VjdG9ycyBhdmFpbGFibGUgb3V0c2lkZSB0aGUKK2V4dGVuZGVkIHBhcnRpdGlvbi4gIFlvdSBhcmUgbm90IGFsbG93ZWQgdG8gYWRkIGEgbmV3IGxvZ2ljYWwgcGFydGl0aW9uCit1bmxlc3MgdGhlcmUgYXJlIHNlY3RvcnMgYXZhaWxhYmxlIGluc2lkZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uLgorCitJZiBzcGFjZSBpcyBhdmFpbGFibGUsIHlvdSBhcmUgcHJvbXB0ZWQgZm9yIHRoZSBmaXJzdCBjeWxpbmRlcjoKKworICAgICBGaXJzdCBjeWxpbmRlciAoWzIzN10tOTc3KTogXworCitUaGUgbGltaXRzIGFyZSB0aGUgbG93ZXN0IGFuZCB0aGUgaGlnaGVzdCBjeWxpbmRlcnMgaW4gd2hpY2ggc2VjdG9ycworYXJlIGF2YWlsYWJsZSBpbiB0aGUgYXBwcm9wcmlhdGUgcGFydCBvZiB0aGUgZGlzay4gIFRoZSBzcXVhcmUtYnJhY2tldGVkCitudW1iZXIgaXMgd2hhdCB5b3UnbGwgZ2V0IGlmIHlvdSBzaW1wbHkgcHJlc3MgZW50ZXIuICBOb3QgYWxsIG51bWJlcnMgaW4KK3RoaXMgcmFuZ2UgYXJlIG5lY2Vzc2FyaWx5IGF2YWlsYWJsZTogdGhleSBtYXkgZmFsbCBpbnNpZGUgYW4gZXhpc3RpbmcKK3BhcnRpdGlvbi4gIElmIHlvdSBzZWxlY3QgYSBjeWxpbmRlciB3aGljaCBpcyBhbHJlYWR5IGluIHVzZSwgeW91IGFyZQordG9sZCBvZmYgYW5kIHByb21wdGVkIGFnYWluIGZvciB0aGUgZmlyc3QgY3lsaW5kZXIuICBBZnRlciBzZWxlY3RpbmcgdGhlCitmaXJzdCBjeWxpbmRlciwgeW91IGFyZSBwcm9tcHRlZCBhZ2FpbjoKKworICAgICBMYXN0IGN5bGluZGVyIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsgKDIzNy1bODM2XSk6IF8KKworVGhlIGxpbWl0cyBhcmUgdGhlIGN5bGluZGVyIHlvdSBoYXZlIGNob3NlbiBhcyB0aGUgZmlyc3QgY3lsaW5kZXIsCithbmQgdGhlIGhpZ2hlc3QgY3lsaW5kZXIgd2hpY2ggY29udGFpbnMgYSBsZWdpdGltYXRlIHVwcGVyIGJvdW5kYXJ5IGZvcgordGhlIG5ldyBwYXJ0aXRpb24uICBUaGUgc3F1YXJlLWJyYWNrZXRlZCBudW1iZXIgaXMgd2hhdCB5b3UnbGwgZ2V0IGlmCit5b3Ugc2ltcGx5IHByZXNzIGVudGVyLiBJbiBvdGhlciB3b3JkcywgYWxsIG51bWJlcnMgaW4gdGhlIGdpdmVuIHJhbmdlIGFyZQorbGVnaXRpbWF0ZSwgdW5saWtlIHRob3NlIGluIHRoZSBmaXJzdCByYW5nZSBvZiBjeWxpbmRlcnMuICBZb3UgbWF5IGFsc28KK3NwZWNpZnkgdGhlIHNpemUgb2YgYSBwYXJ0aXRpb24gaW4gbWVnYWJ5dGVzLCBraWxvYnl0ZXMsIG9yIGluIHRoZQorY3VycmVudCB1bml0cyAoY3lsaW5kZXJzIG9yIHNlY3RvcnMpLiAgQSBwbHVzIHNpZ24gYCsnIGluZGljYXRlcyB0aGF0Cit5b3VyIGFuc3dlciBpcyBhIHNpemUgcmF0aGVyIHRoYW4gYSBib3VuZGFyeSwgYW5kIHRoZSBzdWZmaXggYG0nIG9yIGBrJworKHVwcGVyIG9yIGxvd2VyIGNhc2UpIGluZGljYXRlcyB0aGF0IHRoZSBzaXplIGlzIG5vdCBnaXZlbiBpbiB1bml0cyBvZgorc2VjdG9ycyBvciBjeWxpbmVycywgYnV0IGluIG1lZ2FieXRlcyBvciBraWxvYnl0ZXMgcmVzcGVjdGl2ZWx5LiAgVGh1cworcG9zc2libGUgYW5zd2VycyB0byB0aGUgbGFzdCBjeWxpbmRlciByZXF1ZXN0IGFib3ZlIGFyZQorCis3MDAKKyAgICAgTWFrZSBjeWxpbmRlciA3MDAgdGhlIGxhc3QgY3lsaW5kZXIgaW4gdGhlIHBhcnRpdGlvbi4KKworKzMwMAorICAgICBNYWtlIGN5bGluZGVyIDIzNyArIDMwMCA9IDUzNyB0aGUgbGFzdCBjeWxpbmRlciBpbiB0aGUgcGFydGl0aW9uLgorCisrMTVtCisgICAgIE1ha2UgdGhlIHBhcnRpdGlvbiBhdCBsZWFzdCAxNSBtZWdhYnl0ZXMgaW4gc2l6ZS4KKworKzEyNTAwaworICAgICBNYWtlIHRoZSBwYXJ0aXRpb24gYXQgbGVhc3QgMTIsNTAwIGtpbG9ieXRlcyBpbiBzaXplLgorCitJZiB5b3Ugc3BlY2lmeSBhIHNpemUgd2hpY2ggaXMgdG9vIGxhcmdlIG9yIGFuIGVuZCB3aGljaCBpcyBvdXQgb2YKK3JhbmdlLCBmZGlzayBjb21wbGFpbnMgYW5kIHJlcGVhdHMgdGhlIHByb21wdC4KKworQWRkaW5nIG9yIGRlbGV0aW5nIHBhcnRpdGlvbnMgaGFzIG5vIGVmZmVjdCB1bmxlc3MgeW91IHN1YnNlcXVlbnRseQorZ2l2ZSB0aGUgV3JpdGUgY29tbWFuZC4gIFBsZWFzZSByZW1lbWJlciB0byBnaXZlIHRoZSBWZXJpZnkgY29tbWFuZAorZmlyc3QsIGp1c3QgYmVmb3JlIGdpdmluZyB0aGUgV3JpdGUgY29tbWFuZDogdGhpcyBpcyBhIHNhZmV0eQorcHJlY2F1dGlvbi4gIEFmdGVyIGdpdmluZyB0aGUgV3JpdGUgY29tbWFuZCwgeW91IHdpbGwgc2VlIHRoaXMgbWVzc2FnZToKKworICAgICBUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhCisgICAgIENhbGxpbmcgaW9jdGwoKSB0byByZS1yZWFkIHBhcnRpdGlvbiB0YWJsZS4KKyAgICAgU3luY2luZyBkaXNrcy4KKworSWYgdGhlcmUgYXJlIG5vIGZ1cnRoZXIgbWVzc2FnZXMsIHRoZSBrZXJuZWwgaGFzIHN1Y2Nlc3NmdWxseSBjb3BpZWQKK3RoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwYXJ0aXRpb24gdGFibGUgaW50byBpdHMgb3duIGludGVybmFsIHRhYmxlLgorQnV0IHNvbWV0aW1lcyB5b3Ugd2lsbCBzZWUgYSBtZXNzYWdlIGxpa2UgdGhpcyBvbmU6CisKKyAgICAgUmUtcmVhZCB0YWJsZSBmYWlsZWQgd2l0aCBlcnJvciAxNjogRGV2aWNlIG9yIHJlc291cmNlIGJ1c3kuCisgICAgIFJlYm9vdCB5b3VyIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyB1cGRhdGVkLgorCitJbiB0aGlzIGNhc2UsIGRlcGVuZGluZyBvbiB3aGF0IHlvdSBoYXZlIGNoYW5nZWQgaW4gdGhlIHBhcnRpdGlvbgordGFibGUsIGl0IG1heSBiZSBkYW5nZXJvdXMgdG8gY29udGludWUgd29ya2luZyB3aXRob3V0IHJlYm9vdGluZywKK3NpbmNlIHlvdSBtYXkgbG9zZSBvciBjb3JydXB0IHlvdXIgZGF0YS4KKworCitIZXJlIGFyZSBzb21lIGltcG9ydGFudCB0aGluZ3MgdG8gbm90ZToKKworICAxLiBCZWZvcmUgeW91IHJlYm9vdCwgeW91ICptYXkqIHJ1biBgZmRpc2snIGFnYWluLCBlaXRoZXIgdG8gbWFuYWdlCisgICAgIGFub3RoZXIgZGlzaywgb3IgdG8gbWFrZSBhZGRpdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHNhbWUgZGlzaywgb3IKKyAgICAganVzdCB0byBjaGVjayB0aGF0IHRoZSBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIGFzIHlvdSBleHBlY3RlZC4KKyAgICAgVGhpcyBpcyB0cnVlIGV2ZW4gYWZ0ZXIgeW91IHJlY2VpdmUgdGhlIG1lc3NhZ2Ugd2FybmluZyB5b3UgdG8KKyAgICAgcmVib290LgorCisgIDIuIEl0IGlzIG5vdCBhIGdvb2QgaWRlYSB0byBydW4gYW55IG9mIHRoZSBwcm9ncmFtcyBgbWtmcycsIGBta3N3YXAnLAorICAgICBgbW91bnQnLCBvciBgc3dhcG9uJyBpZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGUgd2FybmluZyBtZXNzYWdlIGJ1dAorICAgICBoYXZlIG5vdCByZWJvb3RlZC4gIEluIHRoaXMgY2FzZSBpdCBpcyBkYW5nZXJvdXMgdG8gcnVuIGFueSBwcm9ncmFtLAorICAgICBidXQgdGhlc2UgaW4gcGFydGljdWxhciBtYXkgY2F1c2Ugc2VyaW91cyBkYW1hZ2UgdG8gdGhlIGRhdGEgb24geW91cgorICAgICBkaXNrLCBpbmNsdWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZXMgdGhlbXNlbHZlcy4KKworCitBY3RpdmUgZmxhZ3MgYW5kIHN5c3RlbSB0eXBlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGFjdGl2ZSBmbGFnIGlzIGEgYml0IGluIHRoZSBwYXJ0aXRpb24gdGFibGUgZW50cnkgd2hpY2ggbWFya3MgYQorcGFydGl0aW9uIGFzIGJvb3RhYmxlLiAgVGhpcyBpcyBpbXBvcnRhbnQgdG8gc29tZSBwcmltYXJ5IGJvb3Qgc2VjdG9yCitwcm9ncmFtcywgd2hpY2ggd2lsbCBub3QgYm9vdCBmcm9tIGFuIHVuZmxhZ2dlZCBwYXJ0aXRpb24uICBPdGhlciBzdWNoCitwcm9ncmFtcyBkbyBub3QgYWxsb3cgbW9yZSB0aGFuIG9uZSBwYXJ0aXRpb24gdG8gYmUgZmxhZ2dlZC4gIFNvbWUsCitsaWtlIExJTE8sIGlnbm9yZSB0aGUgZmxhZ3MgY29tcGxldGVseS4gIEkgcHJlZmVyIHRvIGZsYWcgYWxsIGJvb3RhYmxlCitwYXJ0aXRpb25zIGFzIGFjdGl2ZSBzbyB0aGF0IHRoZXkgc3RhbmQgb3V0IG9uIHRoZSBtZW51IHdoaWNoIGBmZGlzaycKK2xpc3RzLiAgRmRpc2sgcHJpbnRzIGEgc3RhciBhZnRlciB0aGUgbmFtZSBvZiBhIHBhcnRpdGlvbidzIGRldmljZSBmaWxlCitpZiBpdHMgYWN0aXZlIGZsYWcgaXMgc2V0LgorCitUaGUgQWN0aXZlIGNvbW1hbmQgY2hhbmdlcywgb3IgdG9nZ2xlcywgYSBwYXJ0aXRpb24ncyBhY3RpdmUgZmxhZy4KK0dpdmUgdGhlIEFjdGl2ZSBjb21tYW5kLCBhbmQgc2VsZWN0IGEgcGFydGl0aW9uIGJ5IG51bWJlci4gIElmIGl0IHdhcworbWFya2VkIGluYWN0aXZlLCBpdCB3aWxsIGJlIGZsYWdnZWQgYXMgYWN0aXZlOyBpZiBpdCB3YXMgZmxhZ2dlZCBhcworYWN0aXZlLCBpdCB3aWxsIGJlIG1hcmtlZCBpbmFjdGl2ZS4gIFlvdSBtYXkgc2V0IHRoZSBhY3RpdmUgZmxhZyBvbiBhbgorZXh0ZW5kZWQgb3IgbG9naWNhbCBwYXJ0aXRpb24sIHRob3VnaCB0aGUgbWVhbmluZyBvZiBzdWNoIGEgZmxhZyBpcyBieQorbm8gbWVhbnMgY2xlYXIuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGluc3RhbGwgTElMTyBhcyBhIHNlY29uZGFyeSBib290Citsb2FkZXIgdG8gYm9vdCBhIExpbnV4IHdoaWNoIGxpdmVzIG9uIGEgc2Vjb25kIGhhcmQgZGlzay4KKworVGhlIFR5cGUgY29tbWFuZCBjaGFuZ2VzIHRoZSBJRCBudW1iZXIgd2hpY2ggZGVzY3JpYmVzIHdoYXQgdHlwZSBhCitwYXJ0aXRpb24gaXMuICBgZmRpc2snIGN1cnJlbnRseSByZWNvZ25pc2VzIDMwIHN5c3RlbSBJRHMsIGluIHRoZSBzZW5zZQordGhhdCBpdCBwcmludHMgYSBzdHJpbmcgZm9yIGVhY2ggb2YgdGhlbSwgYnV0IGl0IGFsbG93cyB5b3UgdG8gY2hhbmdlCithbnkgc3lzdGVtIElEIHRvIGFueSBvdGhlciwgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnM6IHlvdSBtYXkgbm90CitjaGFuZ2UgYW55IHBhcnRpdGlvbiB0byBvciBmcm9tIHRoZSB0eXBlIEV4dGVuZGVkLCBhbmQgeW91IG1heSBub3QKK2NoYW5nZSBhIHBhcnRpdGlvbiB3aG9zZSB0eXBlIGlzIEVtcHR5ICgwKSB0byBhbnkgb3RoZXIgdHlwZS4gIFlvdSBtYXksCitob3dldmVyLCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW55IGRhdGEgcGFydGl0aW9uIHRvIDAsIHdoaWNoIGlzCitlcXVpdmFsZW50IHRvIGRlbGV0aW5nIGl0LgorCitUaGUgbmV3IHN5c3RlbSBJRCBvciB0eXBlIGNvZGUgaXMgYSBoZXhhZGVjaW1hbCBudW1iZXIuICBUaGVyZSBhcmUKK3R3byB3YXlzIG9mIGxpc3RpbmcgdGhlIG51bWJlcnMgd2hpY2ggYGZkaXNrJyByZWNvZ25pc2VzOiB1c2UgdGhlIExpc3QKK2NvbW1hbmQsIHdoaWNoIHByaW50cyB0aGUgbGlzdCwgb3IgdXNlIHRoZSBUeXBlIGNvbW1hbmQsIHdoaWNoLCB3aGVuIGl0Citwcm9tcHRzIHlvdSBmb3IgdGhlIGNvZGUsIHNheXMKKworICAgICBIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiBfCisKK3doZXJlIHRoZSB1cHBlciBjYXNlIGBMJyBpcyB1c2VkIGZvciBjbGFyaXR5LiAgVGhlIGNvZGVzIHByaW50ZWQgYXJlOgorU29tZSBvZiB0aGVzZSBudW1iZXJzIGFyZSBhIHRyaWZsZSB1bmNlcnRhaW4uICBCeSBkZWZhdWx0IGBmZGlzaycgdXNlcworYSB0eXBlIG9mIDgzLiAgSXQgdXNlZCB0byB1c2UgODEsIHRoZSB0eXBlIGNvZGUgdXNlZCBieSB0aGUgTUlOSVgKK2BmZGlzaycuICBJdCBzZWVtZWQgcHJ1ZGVudCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgc2luY2UgKGEpIG1hbnkgTGludXgKK2BtaW5peCcgZmlsZSBzeXN0ZW1zIGFyZSBubyBsb25nZXIgY29tcGF0aWJsZSB3aXRoIE1JTklYLCAoYikgdGhlIGV4dDIKK2ZpbGUgc3lzdGVtLCBhIG5hdGl2ZSBMaW51eCBmaWxlIHN5c3RlbSwgaXMgZmFpcmx5IHN0YWJsZSwgYXMgaXMgdGhlCitYaWEgZmlsZSBzeXN0ZW0sIGFuZCAoYykgdGhlIG51bWJlciA4MSBjYXVzZXMgcHJvYmxlbXMgd2l0aCBEUi1ET1MuCitMaW51eCBkb2VzIG5vdCB1c3VhbGx5IGNhcmUgd2hhdCB2YWx1ZXMgeW91IHVzZSBmb3IgdHlwZSBjb2RlcywgYnV0CitvdGhlciBzeXN0ZW1zLCBpbiBwYXJ0aWN1bGFyIERPUywgT1MvMiwgYW5kIERSLURPUywgbWF5LgorCitUaGUgdmFsdWUgb2YgODIgZm9yIExpbnV4IHN3YXAgcGFydGl0aW9ucyBpcyBteSBvd24gaW52ZW50aW9uLCBhbmQKK2lzIGludGVuZGVkIHRvIGdpdmUgc29tZSByZWNvZ25pc2FibGUgZGlzdGluY3Rpb24gdG8gdGhlIHBhcnRpdGlvbnMKK3doZW4gdGhlIHZhbHVlcyBhcmUgZGlzcGxheWVkIGluIGhleGFkZWNpbWFsLgorCitOZXcgYWN0aXZlIGZsYWdzIGFuZCBuZXcgc3lzdGVtIHR5cGUgY29kZXMgYXJlIG5vdCB3cml0dGVuIHRvIHRoZQorZGlzayB1bnRpbCB5b3UgZXhpdCBmcm9tIGBmZGlzaycgd2l0aCB0aGUgV3JpdGUgY29tbWFuZCwgYXMgZGVzY3JpYmVkCithYm92ZSwgaW4gdGhlIHNlY3Rpb24gb24gZGVsZXRpbmcgYW5kIGFkZGluZyBwYXJ0aXRpb25zLgorCisKK0V4dHJhIGNvbW1hbmRzIGZvciBleHBlcnRzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgZVh0cmEgY29tbWFuZCBgeCcgcHV0cyBgZmRpc2snIGludG8gYGV4cGVydCcgbW9kZSwgaW4gd2hpY2ggYQorc2xpZ2h0bHkgZGlmZmVyZW50IHNldCBvZiBjb21tYW5kcyBpcyBhdmFpbGFibGUuICBUaGUgQWN0aXZlLCBEZWxldGUsCitMaXN0LCBOZXcsIFR5cGUsIFZlcmlmeSwgYW5kIGBlWHBlcnQnIGNvbW1hbmRzIGFyZSBub3QgYXZhaWxhYmxlIGluCitleHBlcnQgbW9kZS4gIFRoZSBjb21tYW5kcyBXcml0ZSBhbmQgUXVpdCBhcmUgYXZhaWxhYmxlIGFzIGluIG9yZGluYXJ5Cittb2RlLCB0aGUgUHJpbnQgY29tbWFuZCBpcyBhdmFpbGFibGUsIGJ1dCBwcm9kdWNlcyBvdXRwdXQgaW4gYSBzbGlnaHRseQorZGlmZmVyZW50IGZvcm1hdCwgYW5kIG9mIGNvdXJzZSB0aGUgTWVudSBjb21tYW5kIHByaW50cyB0aGUgZXhwZXJ0CittZW51LiAgVGhlcmUgYXJlIHNldmVyYWwgbmV3IGNvbW1hbmRzLgorCisgIDEuIFRoZSBSZXR1cm4gY29tbWFuZCBicmluZ3MgeW91IGJhY2sgdG8gdGhlIG1haW4gbWVudS4KKworICAyLiBUaGUgRXh0ZW5kZWQgY29tbWFuZCBwcmludHMgdGhlIGxpc3Qgb2YgdGFibGUgZW50cmllcyB3aGljaCBwb2ludAorICAgICB0byBvdGhlciB0YWJsZXMuICBPcmRpbmFyeSB1c2VycyBkbyBub3QgbmVlZCB0aGlzIGluZm9ybWF0aW9uLgorICAgICBUaGUgZGF0YSBpcyBzaG93biBhcyBpdCBpcyBzdG9yZWQuICBUaGUgc2FtZSBmb3JtYXQgaXMgdXNlZCBmb3IKKyAgICAgdGhlIGV4cGVydCBQcmludCBjb21tYW5kLgorCisgIDMuIFRoZSBkYW5nZXJvdXMgQmVnaW4gY29tbWFuZCBhbGxvd3MgeW91IHRvIG1vdmUgdGhlIHN0YXJ0IG9mIGRhdGEKKyAgICAgaW4gYSBwYXJ0aXRpb24gYXdheSBmcm9tIGl0cyBiZWdpbm5pbmcuICBPdGhlciBzeXN0ZW1zIGNyZWF0ZQorICAgICBwYXJ0aXRpb25zIHdpdGggdGhpcyBmb3JtYXQsIGFuZCBpdCBpcyBzb21ldGltZXMgdXNlZnVsIHRvIGJlIGFibGUKKyAgICAgdG8gcmVwcm9kdWNlIGl0LgorCisgIDQuIFRoZSBzbGlnaHRseSBkYW5nZXJvdXMgQ3lsaW5kZXJzIGNvbW1hbmQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlCisgICAgIGF2YWlsYWJsZSBudW1iZXIgb2YgY3lsaW5kZXJzLiAgRm9yIFNDU0kgZGlzayBvd25lcnMsIG5vdGUgdGhhdCB3ZQorICAgICByZXF1aXJlIG5vdCB0aGUgYWN0dWFsIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMsIGJ1dCB0aGUKKyAgICAgbnVtYmVyIG9mIGxvZ2ljYWwgY3lsaW5kZXJzIHVzZWQgYnkgRE9TIGFuZCBvdGhlciBvcGVyYXRpbmcKKyAgICAgc3lzdGVtcy4KKworICA1LiBUaGUgZXh0cmVtZWx5IGRhbmdlcm91cyBIZWFkcyBhbmQgU2VjdG9ycyBjb21tYW5kcyBhbGxvdyB5b3UgdG8KKyAgICAgY2hhbmdlIHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHNlY3RvcnMuICBJdCBzaG91bGQgbm90IGJlCisgICAgIG5lY2Vzc2FyeSB0byB1c2UgdGhlc2UgY29tbWFuZHMgdW5sZXNzIHlvdSBoYXZlIGEgU0NTSSBkaXNrLCB3aG9zZQorICAgICBnZW9tZXRyeSBMaW51eCBpcyBub3QgYWx3YXlzIGFibGUgdG8gZGV0ZXJtaW5lLiAgU0NTSSBkaXNrIG93bmVycworICAgICBub3RlIHRoYXQgd2UgbmVlZCBub3QgdGhlIGFjdHVhbCBudW1iZXIgb2YgaGVhZHMgb3Igb2Ygc2VjdG9ycyBwZXIKKyAgICAgdHJhY2ssIGJ1dCB0aGUgbnVtYmVyIGJlbGlldmVkIHRvIGV4aXN0IGJ5IERPUyBhbmQgb3RoZXIgb3BlcmF0aW5nCisgICAgIHN5c3RlbXMuICAqV2FybmluZyo6IElmIHlvdSBzZXQgZWl0aGVyIG9mIHRoZXNlIG51bWJlcnMgdG8gYSBiYWQKKyAgICAgdmFsdWUsIHlvdSBtYXkgbG9zZSBhbGwgZGF0YSBvbiB5b3VyIGRpc2suCisKK0Fsd2F5cywgYWZ0ZXIgZ2l2aW5nIGFueSBvZiB0aGUgY29tbWFuZHMgQmVnaW4sIEN5bGluZGVyLCBIZWFkcywgb3IKK1NlY3RvcnMsIHlvdSBzaG91bGQgUmV0dXJuIHRvIHRoZSBtYWluIG1lbnUgYW5kIGdpdmUgdGhlIFZlcmlmeSBjb21tYW5kLgorCisKK1dhcm5pbmdzIGZvciBgZmRpc2snIHVzZXJzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJbiBnZW5lcmFsLCB5b3Ugc2hvdWxkIG5vdCB1c2UgdGhpcyBgZmRpc2snIHByb2dyYW0gdG8gY3JlYXRlCitwYXJ0aXRpb25zIGZvciBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcywgb25seSBmb3IgTGludXguICBOb3Igc2hvdWxkIHlvdQordXNlIGBmZGlzaycgY29tbWFuZHMgZnJvbSBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcyB0byBjcmVhdGUgcGFydGl0aW9ucworZm9yIExpbnV4LgorCitEUi1ET1MgNS4wIGFuZCA2LjAgYXJlIHJlcG9ydGVkIHRvIGhhdmUgZGlmZmljdWx0aWVzIHdpdGggcGFydGl0aW9uCitJRCBjb2RlcyBvZiA4MCBvciBtb3JlLiAgVGhlIExpbnV4IGBmZGlzaycgdXNlZCB0byBzZXQgdGhlIHN5c3RlbSB0eXBlCitvZiBuZXcgcGFydGl0aW9ucyB0byBoZXhhZGVjaW1hbCA4MS4gIERSLURPUyBzZWVtcyB0byBjb25mdXNlIHRoaXMgd2l0aAoraGV4YWRlY2ltYWwgMSwgYSBET1MgY29kZS4gIFRoZSB2YWx1ZXMgODIgZm9yIHN3YXAgYW5kIDgzIGZvciBmaWxlCitzeXN0ZW1zIHNob3VsZCBub3QgY2F1c2UgcHJvYmxlbXMgd2l0aCBEUi1ET1MuICBJZiB0aGV5IGRvLCB5b3UgbWF5IHVzZQordGhlIGBmZGlzaycgY29tbWFuZCBgdCcgdG8gY2hhbmdlIHRoZSBzeXN0ZW0gY29kZSBvZiBhbnkgTGludXgKK3BhcnRpdGlvbnMgdG8gc29tZSBudW1iZXIgbGVzcyB0aGFuIGhleGFkZWNpbWFsIDgwOyBJIHN1Z2dlc3QgNDIgYW5kIDQzCitmb3IgdGhlIG1vbWVudC4KKworUGFydGl0aW9uaW5nIGEgaGFyZCBkaXNrIG1heSBkZXN0cm95IGRhdGEgd2hpY2ggaXMgb24gdGhhdCBkaXNrIGlmIHlvdQorYXJlIG5vdCBjYXJlZnVsLiAgR28gc2xvd2x5LCB3cml0ZSBkb3duIGEgZGVzY3JpcHRpb24gb2YgdGhlIHBhcnRpdGlvbgordGFibGVzIGJlZm9yZSB5b3UgY2hhbmdlZCB0aGVtLCBhbmQgYWx3YXlzIHZlcmlmeSBiZWZvcmUgeW91IHdyaXRlLgorCitNb3N0IG9wZXJhdGluZyBzeXN0ZW1zIGFuZCB1dGlsaXRpZXMgZXhwZWN0IHRoYXQgYWxsIHBhcnRpdGlvbnMgYmVnaW4gYW5kCitlbmQgYXQgY3lsaW5kZXIgYm91bmRhcmllcy4gIFRoaXMgdmVyc2lvbiBvZiBgZmRpc2snIGRvZXMgc28gYnkgZGVmYXVsdCwKK2J1dCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgcGFydGl0aW9ucyB3aGljaCBiZWdpbiBvciBlbmQgYW55d2hlcmUuCitUaGlzIGRvZXMgbm90IG5vcm1hbGx5IGFmZmVjdCBMaW51eCwgYnV0IGl0IGlzIHZlcnkgZGFuZ2Vyb3VzLCBhcyBvdGhlcgorb3BlcmF0aW5nIHN5c3RlbXMgKGluY2x1ZGluZyBET1MpIG1heSB0cnkgdG8gYGNvcnJlY3QnIHRoZSBwYXJ0aXRpb24KK2JvdW5kYXJpZXMuCisKK0l0IGlzIGRhbmdlcm91cyB0byBjcmVhdGUgYSBuZXcgcGFydGl0aW9uIHdoZW4gdGhlIGRpc3BsYXkvZW50cnkKK3VuaXRzIGFyZSBzZWN0b3JzLgorCitUaGUgVmVyaWZ5IGNvbW1hbmQgd2FybnMgeW91IGlmIGFueXRoaW5nIGlzIHdyb25nLiAgKkFsd2F5cyogZ2l2ZSBhCitWZXJpZnkgY29tbWFuZCBiZWZvcmUgd3JpdGluZyBhbnkgY2hhbmdlcyB0byBkaXNrLgorCitJZiB5b3Ugc2V0IHRoZSBkaXNrIGdlb21ldHJ5ICh0cmFja3MgcGVyIGN5bGluZGVyLCBvciBzZWN0b3JzIHBlcgordHJhY2spIHRvIGFuIGluY29ycmVjdCB2YWx1ZSwgeW91IG1heSBsb3NlIGFsbCBkYXRhIG9uIHlvdXIgZGlzay4KKworRG8gY3JlYXRlIEJTRC9TVU4gYW5kL29yIElSSVgvU0dJIGRpc2sgbGFiZWxzIG9ubHkgd2hlbiB5b3UgYXJlIHN1cmUKK3RoYXQgeW91IHdhbnQgdGhlbS4gIEJvdGggZmVhdHVyZXMgYXJlIGludGVuZGVkIHRvIGFsbG93IHlvdSBSRUFEaW5nCit0aG9zZSBsYWJlbHMgYW5kIHByZXZlbnQgdW5pbnRlbnRpb25hbCBmb3JtYXR0aW5nIG9mIHRoZXNlIGRpc2tzLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svY2ZkaXNrLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9jZmRpc2suOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDNlZTE5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svY2ZkaXNrLjgKQEAgLTAsMCArMSw0NDYgQEAKKy5cIiBjZmRpc2suOCAtLSBtYW4gcGFnZSBmb3IgY2ZkaXNrCisuXCIgQ29weXJpZ2h0IDE5OTQgS2V2aW4gRS4gTWFydGluIChtYXJ0aW5AY3MudW5jLmVkdSkKKy5cIgorLlwiIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBtYWtlIGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZiB0aGlzCisuXCIgbWFudWFsIHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFyZQorLlwiIHByZXNlcnZlZCBvbiBhbGwgY29waWVzLgorLlwiCisuXCIgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhpcworLlwiIG1hbnVhbCB1bmRlciB0aGUgY29uZGl0aW9ucyBmb3IgdmVyYmF0aW0gY29weWluZywgcHJvdmlkZWQgdGhhdCB0aGUKKy5cIiBlbnRpcmUgcmVzdWx0aW5nIGRlcml2ZWQgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgYQorLlwiIHBlcm1pc3Npb24gbm90aWNlIGlkZW50aWNhbCB0byB0aGlzIG9uZS4KKy5cIgorLlwiICIgZm9yIGhpbGl0IG1vZGUKKy5USCBDRkRJU0sgOCAiMyBKdW5lIDE5OTUiICJUaGUgQk9HVVMgTGludXggUmVsZWFzZSIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorY2ZkaXNrIFwtIEN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbiB0YWJsZSBtYW5pcHVsYXRvciBmb3IgTGludXgKKy5TSCBTWU5PUFNJUworLkIgY2ZkaXNrCisuUkIgWyBcLWFndnogXQorLlJCIFsgXC1jCisuSVIgY3lsaW5kZXJzIF0KKy5SQiBbIFwtaAorLklSIGhlYWRzIF0KKy5SQiBbIFwtcworLklSIHNlY3RvcnMtcGVyLXRyYWNrIF0KKy5SQiBbIFwtUAorLklSIG9wdCBdCisuUkkgWyBkZXZpY2UgXQorLlNIIERFU0NSSVBUSU9OCisuQiBjZmRpc2sKK2lzIGEgY3Vyc2VzIGJhc2VkIHByb2dyYW0gZm9yIHBhcnRpdGlvbmluZyBhbnkgaGFyZCBkaXNrIGRyaXZlLgorVHlwaWNhbCB2YWx1ZXMgb2YgdGhlCisuSSBkZXZpY2UKK2FyZ3VtZW50IGFyZToKKy5zcAorLm5mCisuUlMKKy9kZXYvaGRhIFtkZWZhdWx0XQorL2Rldi9oZGIKKy9kZXYvc2RhCisvZGV2L3NkYgorL2Rldi9zZGMKKy9kZXYvc2RkCisuUkUKKy5maQorCitJbiBvcmRlciB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlCisuQiBjZmRpc2sKK25lZWRzIHNvbWV0aGluZyBjYWxsZWQgdGhlIGBnZW9tZXRyeScgb2YgdGhlIGRpc2s6IHRoZSBudW1iZXIKK29mIGBoZWFkcycgYW5kIHRoZSBudW1iZXIgb2YgYHNlY3RvcnMgcGVyIHRyYWNrJy4gTGludXggZG9lcyBub3QKK3VzZSBhbnkgZ2VvbWV0cnksIHNvIGlmIHRoZSBkaXNrIHdpbGwgbm90IGJlIGFjY2Vzc2VkIGJ5IG90aGVyCitvcGVyYXRpbmcgc3lzdGVtcywgeW91IGNhbiBzYWZlbHkgYWNjZXB0IHRoZSBkZWZhdWx0cyB0aGF0CisuQiBjZmRpc2sKK2Nob29zZXMgZm9yIHlvdS4gVGhlIGdlb21ldHJ5IHVzZWQgYnkKKy5CIGNmZGlzaworaXMgZm91bmQgYXMgZm9sbG93cy4gRmlyc3QgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBleGFtaW5lZCwKK3RvIHNlZSB3aGF0IGdlb21ldHJ5IHdhcyB1c2VkIGJ5IHRoZSBwcmV2aW91cyBwcm9ncmFtIHRoYXQKK2NoYW5nZWQgaXQuIElmIHRoZSBwYXJ0aXRpb24gdGFibGUgaXMgZW1wdHksIG9yIGNvbnRhaW5zIGdhcmJhZ2UsCitvciBkb2VzIG5vdCBwb2ludCBhdCBhIGNvbnNpc3RlbnQgZ2VvbWV0cnksIHRoZSBrZXJuZWwgaXMKK2Fza2VkIGZvciBhZHZpY2UuIElmIG5vdGhpbmcgd29ya3MgMjU1IGhlYWRzIGFuZCA2MyBzZWN0b3JzL3RyYWNrCitpcyBhc3N1bWVkLiBUaGUgZ2VvbWV0cnkgY2FuIGJlIG92ZXJyaWRkZW4gb24gdGhlIGNvbW1hbmQgbGluZQorb3IgYnkgdXNlIG9mIHRoZSBgZycgY29tbWFuZC4gV2hlbiBwYXJ0aXRpb25pbmcgYW4gZW1wdHkgbGFyZ2UgbW9kZXJuCitkaXNrLCBwaWNraW5nIDI1NSBoZWFkcyBhbmQgNjMgc2VjdG9ycy90cmFjayBpcyBhbHdheXMgYSBnb29kIGlkZWEuCitUaGVyZSBpcyBubyBuZWVkIHRvIHNldCB0aGUgbnVtYmVyIG9mIGN5bGluZGVycywgc2luY2UKKy5CIGNmZGlzawora25vd3MgdGhlIGRpc2sgc2l6ZS4KKworTmV4dCwKKy5CIGNmZGlzawordHJpZXMgdG8gcmVhZCB0aGUgY3VycmVudCBwYXJ0aXRpb24gdGFibGUgZnJvbSB0aGUgZGlzayBkcml2ZS4gIElmIGl0CitpcyB1bmFibGUgdG8gZmlndXJlIG91dCB0aGUgcGFydGl0aW9uIHRhYmxlLCBhbiBlcnJvciBpcyBkaXNwbGF5ZWQgYW5kCit0aGUgcHJvZ3JhbSB3aWxsIGV4aXQuICBUaGlzIG1pZ2h0IGFsc28gYmUgY2F1c2VkIGJ5IGluY29ycmVjdAorZ2VvbWV0cnkgaW5mb3JtYXRpb24sIGFuZCBjYW4gYmUgb3ZlcnJpZGRlbiBvbiB0aGUgY29tbWFuZCBsaW5lLgorQW5vdGhlciB3YXkgYXJvdW5kIHRoaXMgcHJvYmxlbSBpcyB3aXRoIHRoZQorLkIgXC16CitvcHRpb24uICBUaGlzIHdpbGwgaWdub3JlIHRoZSBwYXJ0aXRpb24gdGFibGUgb24gdGhlIGRpc2suCisKK1RoZSBtYWluIGRpc3BsYXkgaXMgY29tcG9zZWQgb2YgZm91ciBzZWN0aW9ucywgZnJvbSB0b3AgdG8gYm90dG9tOiB0aGUKK2hlYWRlciwgdGhlIHBhcnRpdGlvbnMsIHRoZSBjb21tYW5kIGxpbmUgYW5kIGEgd2FybmluZyBsaW5lLiAgVGhlCitoZWFkZXIgY29udGFpbnMgdGhlIHByb2dyYW0gbmFtZSBhbmQgdmVyc2lvbiBudW1iZXIgZm9sbG93ZWQgYnkgdGhlCitkaXNrIGRyaXZlIGFuZCBpdHMgZ2VvbWV0cnkuICBUaGUgcGFydGl0aW9ucyBzZWN0aW9uIGFsd2F5cyBkaXNwbGF5cwordGhlIGN1cnJlbnQgcGFydGl0aW9uIHRhYmxlLiAgVGhlIGNvbW1hbmQgbGluZSBpcyB0aGUgcGxhY2Ugd2hlcmUKK2NvbW1hbmRzIGFuZCB0ZXh0IGFyZSBlbnRlcmVkLiAgVGhlIGF2YWlsYWJsZSBjb21tYW5kcyBhcmUgdXN1YWxseQorZGlzcGxheWVkIGluIGJyYWNrZXRzLiAgVGhlIHdhcm5pbmcgbGluZSBpcyB1c3VhbGx5IGVtcHR5IGV4Y2VwdCB3aGVuCit0aGVyZSBpcyBpbXBvcnRhbnQgaW5mb3JtYXRpb24gdG8gYmUgZGlzcGxheWVkLiAgVGhlIGN1cnJlbnQgcGFydGl0aW9uCitpcyBoaWdobGlnaHRlZCB3aXRoIHJldmVyc2UgdmlkZW8gKG9yIGFuIGFycm93IGlmIHRoZQorLkIgXC1hCitvcHRpb24gaXMgZ2l2ZW4pLiAgQWxsIHBhcnRpdGlvbiBzcGVjaWZpYyBjb21tYW5kcyBhcHBseSB0byB0aGUKK2N1cnJlbnQgcGFydGl0aW9uLgorCitUaGUgZm9ybWF0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgaW4gdGhlIHBhcnRpdGlvbnMgc2VjdGlvbiBpcywgZnJvbQorbGVmdCB0byByaWdodDogTmFtZSwgRmxhZ3MsIFBhcnRpdGlvbiBUeXBlLCBGaWxlc3lzdGVtIFR5cGUgYW5kIFNpemUuCitUaGUgbmFtZSBpcyB0aGUgcGFydGl0aW9uIGRldmljZSBuYW1lLiAgVGhlIGZsYWdzIGNhbiBiZQorLklSIEJvb3QgLAord2hpY2ggZGVzaWduYXRlcyBhIGJvb3RhYmxlIHBhcnRpdGlvbiBvcgorLklSIE5DICwKK3doaWNoIHN0YW5kcyBmb3IgIk5vdCBDb21wYXRpYmxlIHdpdGggRE9TIG9yIE9TLzIiLiAgRE9TLCBPUy8yIGFuZAorcG9zc2libHkgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMgcmVxdWlyZSB0aGUgZmlyc3Qgc2VjdG9yIG9mIHRoZSBmaXJzdAorcGFydGl0aW9uIG9uIHRoZSBkaXNrIGFuZCBhbGwgbG9naWNhbCBwYXJ0aXRpb25zIHRvIGJlZ2luIG9uIHRoZQorc2Vjb25kIGhlYWQuICBUaGlzIHdhc3RlcyB0aGUgc2Vjb25kIHRocm91Z2ggdGhlIGxhc3Qgc2VjdG9yIG9mIHRoZQorZmlyc3QgdHJhY2sgb2YgdGhlIGZpcnN0IGhlYWQgKHRoZSBmaXJzdCBzZWN0b3IgaXMgdGFrZW4gYnkgdGhlCitwYXJ0aXRpb24gdGFibGUgaXRzZWxmKS4KKy5CIGNmZGlzaworYWxsb3dzIHlvdSB0byByZWNvdmVyIHRoZXNlICJsb3N0IiBzZWN0b3JzIHdpdGggdGhlIG1heGltaXplIGNvbW1hbmQKKy5SQiAoIG0gKS4KKy5JIE5vdGU6CisuQlIgZmRpc2sgKDgpCithbmQgc29tZSBlYXJseSB2ZXJzaW9ucyBvZiBET1MgY3JlYXRlIGFsbCBwYXJ0aXRpb25zIHdpdGggdGhlIG51bWJlcgorb2Ygc2VjdG9ycyBhbHJlYWR5IG1heGltaXplZC4gIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIG1heGltaXplCitjb21tYW5kIGJlbG93LiAgVGhlIHBhcnRpdGlvbiB0eXBlIGNhbiBiZSBvbmUgb2YKKy5JUiBQcmltYXJ5ICIgb3IgIiBMb2dpY2FsIC4KK0ZvciB1bmFsbG9jYXRlZCBzcGFjZSBvbiB0aGUgZHJpdmUsIHRoZSBwYXJ0aXRpb24gdHlwZSBjYW4gYWxzbyBiZQorLklSIFByaS9Mb2cgLAorb3IgZW1wdHkgKGlmIHRoZSBzcGFjZSBpcyB1bnVzYWJsZSkuICBUaGUgZmlsZXN5c3RlbSB0eXBlIHNlY3Rpb24KK2Rpc3BsYXlzIHRoZSBuYW1lIG9mIHRoZSBmaWxlc3lzdGVtIHVzZWQgb24gdGhlIHBhcnRpdGlvbiwgaWYga25vd24uCitJZiBpdCBpcyB1bmtub3duLCB0aGVuCisuSSBVbmtub3duCithbmQgdGhlIGhleCB2YWx1ZSBvZiB0aGUgZmlsZXN5c3RlbSB0eXBlIGFyZSBkaXNwbGF5ZWQuICBBIHNwZWNpYWwKK2Nhc2Ugb2NjdXJzIHdoZW4gdGhlcmUgYXJlIHNlY3Rpb25zIG9mIHRoZSBkaXNrIGRyaXZlIHRoYXQgY2Fubm90IGJlCit1c2VkIChiZWNhdXNlIGFsbCBvZiB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSB1c2VkKS4gIFdoZW4gdGhpcyBpcworZGV0ZWN0ZWQsIHRoZSBmaWxlc3lzdGVtIHR5cGUgaXMgZGlzcGxheWVkIGFzCisuSVIgVW51c2FibGUgLgorVGhlIHNpemUgZmllbGQgZGlzcGxheXMgdGhlIHNpemUgb2YgdGhlIHBhcnRpdGlvbiBpbiBtZWdhYnl0ZXMgKGJ5CitkZWZhdWx0KS4gIEl0IGNhbiBhbHNvIGRpc3BsYXkgdGhlIHNpemUgaW4gc2VjdG9ycyBhbmQgY3lsaW5kZXJzIChzZWUKK3RoZSBjaGFuZ2UgdW5pdHMgY29tbWFuZCBiZWxvdykuICBJZiBhbiBhc3RlcmlzaworLlJCICggKiApCithcHBlYXJzIGFmdGVyIHRoZSBzaXplLCB0aGlzIG1lYW5zIHRoYXQgdGhlIHBhcnRpdGlvbiBpcyBub3QgYWxpZ25lZAorb24gY3lsaW5kZXIgYm91bmRhcmllcy4KKy5TSCAiRE9TIDYueCBXQVJOSU5HIgorCitUaGUgRE9TIDYueCBGT1JNQVQgY29tbWFuZCBsb29rcyBmb3Igc29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgZmlyc3QKK3NlY3RvciBvZiB0aGUgZGF0YSBhcmVhIG9mIHRoZSBwYXJ0aXRpb24sIGFuZCB0cmVhdHMgdGhpcyBpbmZvcm1hdGlvbgorYXMgbW9yZSByZWxpYWJsZSB0aGFuIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgcGFydGl0aW9uIHRhYmxlLiAgRE9TCitGT1JNQVQgZXhwZWN0cyBET1MgRkRJU0sgdG8gY2xlYXIgdGhlIGZpcnN0IDUxMiBieXRlcyBvZiB0aGUgZGF0YSBhcmVhCitvZiBhIHBhcnRpdGlvbiB3aGVuZXZlciBhIHNpemUgY2hhbmdlIG9jY3Vycy4gIERPUyBGT1JNQVQgd2lsbCBsb29rIGF0Cit0aGlzIGV4dHJhIGluZm9ybWF0aW9uIGV2ZW4gaWYgdGhlIC9VIGZsYWcgaXMgZ2l2ZW4gLS0gd2UgY29uc2lkZXIKK3RoaXMgYSBidWcgaW4gRE9TIEZPUk1BVCBhbmQgRE9TIEZESVNLLgorCitUaGUgYm90dG9tIGxpbmUgaXMgdGhhdCBpZiB5b3UgdXNlIGNmZGlzayBvciBmZGlzayB0byBjaGFuZ2UgdGhlIHNpemUgb2YgYQorRE9TIHBhcnRpdGlvbiB0YWJsZSBlbnRyeSwgdGhlbiB5b3UgbXVzdCBhbHNvIHVzZQorLkIgZGQKK3RvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlcyBvZiB0aGF0IHBhcnRpdGlvbiBiZWZvcmUgdXNpbmcgRE9TIEZPUk1BVCB0bworZm9ybWF0IHRoZSBwYXJ0aXRpb24uICBGb3IgZXhhbXBsZSwgaWYgeW91IHdlcmUgdXNpbmcgY2ZkaXNrIHRvIG1ha2UgYSBET1MKK3BhcnRpdGlvbiB0YWJsZSBlbnRyeSBmb3IgL2Rldi9oZGExLCB0aGVuIChhZnRlciBleGl0aW5nIGZkaXNrIG9yIGNmZGlzaworYW5kIHJlYm9vdGluZyBMaW51eCBzbyB0aGF0IHRoZSBwYXJ0aXRpb24gdGFibGUgaW5mb3JtYXRpb24gaXMgdmFsaWQpIHlvdQord291bGQgdXNlIHRoZSBjb21tYW5kICJkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9oZGExIGJzPTUxMiBjb3VudD0xIiB0byB6ZXJvCit0aGUgZmlyc3QgNTEyIGJ5dGVzIG9mIHRoZSBwYXJ0aXRpb24uIE5vdGU6CisKKy5CIEJFIEVYVFJFTUVMWSBDQVJFRlVMCitpZiB5b3UgdXNlIHRoZQorLkIgZGQKK2NvbW1hbmQsIHNpbmNlIGEgc21hbGwgdHlwbyBjYW4gbWFrZSBhbGwgb2YgdGhlIGRhdGEgb24geW91ciBkaXNrIHVzZWxlc3MuCisKK0ZvciBiZXN0IHJlc3VsdHMsIHlvdSBzaG91bGQgYWx3YXlzIHVzZSBhbiBPUy1zcGVjaWZpYyBwYXJ0aXRpb24gdGFibGUKK3Byb2dyYW0uICBGb3IgZXhhbXBsZSwgeW91IHNob3VsZCBtYWtlIERPUyBwYXJ0aXRpb25zIHdpdGggdGhlIERPUyBGRElTSworcHJvZ3JhbSBhbmQgTGludXggcGFydGl0aW9ucyB3aXRoIHRoZSBMaW51eCBmZGlzayBvciBMaW51eCBjZmRpc2sgcHJvZ3JhbS4KKworLlNIIENPTU1BTkRTCisuQiBjZmRpc2sKK2NvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIGJ5IHByZXNzaW5nIHRoZSBkZXNpcmVkIGtleSAocHJlc3NpbmcKKy5JIEVudGVyCithZnRlciB0aGUgY29tbWFuZCBpcyBub3QgbmVjZXNzYXJ5KS4gIEhlcmUgaXMgYSBsaXN0IG9mIHRoZSBhdmFpbGFibGUKK2NvbW1hbmRzOgorLlRQCisuQiBiCitUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24uICBUaGlzIGFsbG93cyB5b3UgdG8KK3NlbGVjdCB3aGljaCBwcmltYXJ5IHBhcnRpdGlvbiBpcyBib290YWJsZSBvbiB0aGUgZHJpdmUuCisuVFAKKy5CIGQKK0RlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24uICBUaGlzIHdpbGwgY29udmVydCB0aGUgY3VycmVudCBwYXJ0aXRpb24KK2ludG8gZnJlZSBzcGFjZSBhbmQgbWVyZ2UgaXQgd2l0aCBhbnkgZnJlZSBzcGFjZSBpbW1lZGlhdGVseQorc3Vycm91bmRpbmcgdGhlIGN1cnJlbnQgcGFydGl0aW9uLiAgQSBwYXJ0aXRpb24gYWxyZWFkeSBtYXJrZWQgYXMgZnJlZQorc3BhY2Ugb3IgbWFya2VkIGFzIHVudXNhYmxlIGNhbm5vdCBiZSBkZWxldGVkLgorLlRQCisuQiBnCitDaGFuZ2UgdGhlIGRpc2sgZ2VvbWV0cnkgKGN5bGluZGVycywgaGVhZHMsIG9yIHNlY3RvcnMtcGVyLXRyYWNrKS4KKy5CIFdBUk5JTkc6CitUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8ga25vdyB3aGF0IHRoZXkgYXJlCitkb2luZy4gIEEgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSB0byBjaGFuZ2UgdGhlIGRpc2sKK2dlb21ldHJ5LiAgV2hpbGUgYXQgdGhlIGNoYW5nZSBkaXNrIGdlb21ldHJ5IGNvbW1hbmQgbGluZSwgeW91IGNhbgorY2hvb3NlIHRvIGNoYW5nZSBjeWxpbmRlcnMKKy5SQiAoIGMgKSwKK2hlYWRzCisuUkIgKCBoICksCithbmQgc2VjdG9ycyBwZXIgdHJhY2sKKy5SQiAoIHMgKS4KK1RoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgcHJpbnRlZCBhdCB0aGUgcHJvbXB0IHdoaWNoIHlvdSBjYW4gYWNjZXB0CitieSBzaW1wbHkgcHJlc3NpbmcgdGhlCisuSSBFbnRlcgora2V5LCBvciB5b3UgY2FuIGV4aXQgd2l0aG91dCBjaGFuZ2VzIGJ5IHByZXNzaW5nIHRoZQorLkkgRVNDCitrZXkuICBJZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgdmFsdWUsIHNpbXBseSBlbnRlciB0aGUKK2Rlc2lyZWQgdmFsdWUgYW5kIHByZXNzCisuSVIgRW50ZXIgLgorVGhlIGFsdGVyZWQgZGlzayBwYXJhbWV0ZXIgdmFsdWVzIGRvIG5vdCB0YWtlIGVmZmVjdCB1bnRpbCB5b3UgcmV0dXJuCit0byB0aGUgbWFpbiBtZW51IChieSBwcmVzc2luZworLklSIEVudGVyICIgb3IgIiBFU0MKK2F0IHRoZSBjaGFuZ2UgZGlzayBnZW9tZXRyeSBjb21tYW5kIGxpbmUpLiAgSWYgeW91IGNoYW5nZSB0aGUgZ2VvbWV0cnkKK3N1Y2ggdGhhdCB0aGUgZGlzayBhcHBlYXJzIGxhcmdlciwgdGhlIGV4dHJhIHNlY3RvcnMgYXJlIGFkZGVkIGF0IHRoZQorZW5kIG9mIHRoZSBkaXNrIGFzIGZyZWUgc3BhY2UuICBJZiB0aGUgZGlzayBhcHBlYXJzIHNtYWxsZXIsIHRoZQorcGFydGl0aW9ucyB0aGF0IGFyZSBiZXlvbmQgdGhlIG5ldyBsYXN0IHNlY3RvciBhcmUgZGVsZXRlZCBhbmQgdGhlCitsYXN0IHBhcnRpdGlvbiBvbiB0aGUgZHJpdmUgKG9yIHRoZSBmcmVlIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlCitkcml2ZSkgaXMgbWFkZSB0byBlbmQgYXQgdGhlIG5ldyBsYXN0IHNlY3Rvci4KKy5UUAorLkIgaAorUHJpbnQgdGhlIGhlbHAgc2NyZWVuLgorLlRQCisuQiBtCitNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbi4gIFRoaXMgY29tbWFuZCB3aWxsCityZWNvdmVyIHRoZSB1bnVzZWQgc3BhY2UgYmV0d2VlbiB0aGUgcGFydGl0aW9uIHRhYmxlIGFuZCB0aGUKK2JlZ2lubmluZyBvZiB0aGUgcGFydGl0aW9uLCBidXQgYXQgdGhlIGNvc3Qgb2YgbWFraW5nIHRoZSBwYXJ0aXRpb24KK2luY29tcGF0aWJsZSB3aXRoIERPUywgT1MvMiBhbmQgcG9zc2libHkgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMuCitUaGlzIG9wdGlvbiB3aWxsIHRvZ2dsZSBiZXR3ZWVuIG1heGltYWwgZGlzayB1c2FnZSBhbmQgRE9TLCBPUy8yLAorZXRjLiBjb21wYXRpYmxlIGRpc2sgdXNhZ2UuICBUaGUgZGVmYXVsdCB3aGVuIGNyZWF0aW5nIGEgcGFydGl0aW9uIGlzCit0byBjcmVhdGUgRE9TLCBPUy8yLCBldGMuIGNvbXBhdGlibGUgcGFydGl0aW9ucy4KKy5UUAorLkIgbgorQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlLiAgSWYgdGhlIHBhcnRpdGlvbiB0eXBlIGlzCisuSVIgUHJpbWFyeSAiIG9yICIgTG9naWNhbCAsCithIHBhcnRpdGlvbiBvZiB0aGF0IHR5cGUgd2lsbCBiZSBjcmVhdGVkLCBidXQgaWYgdGhlIHBhcnRpdGlvbiB0eXBlIGlzCisuSVIgUHJpL0xvZyAsCit5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgdGhlIHR5cGUgeW91IHdhbnQgdG8gY3JlYXRlLiAgQmUgYXdhcmUgdGhhdAorKDEpIHRoZXJlIGFyZSBvbmx5IGZvdXIgc2xvdHMgYXZhaWxhYmxlIGZvciBwcmltYXJ5IHBhcnRpdGlvbnMgYW5kICgyKQorc2luY2UgdGhlcmUgY2FuIGJlIG9ubHkgb25lIGV4dGVuZGVkIHBhcnRpdGlvbiwgd2hpY2ggY29udGFpbnMgYWxsIG9mCit0aGUgbG9naWNhbCBkcml2ZXMsIGFsbCBvZiB0aGUgbG9naWNhbCBkcml2ZXMgbXVzdCBiZSBjb250aWd1b3VzICh3aXRoCitubyBpbnRlcnZlbmluZyBwcmltYXJ5IHBhcnRpdGlvbikuCisuQiBjZmRpc2sKK25leHQgcHJvbXB0cyB5b3UgZm9yIHRoZSBzaXplIG9mIHRoZSBwYXJ0aXRpb24geW91IHdhbnQgdG8gY3JlYXRlLgorVGhlIGRlZmF1bHQgc2l6ZSwgZXF1YWwgdG8gdGhlIGVudGlyZSBmcmVlIHNwYWNlIG9mIHRoZSBjdXJyZW50CitwYXJ0aXRpb24sIGlzIGRpc3BsYXllZCBpbiBtZWdhYnl0ZXMuICBZb3UgY2FuIGVpdGhlciBwcmVzcyB0aGUKKy5JIEVudGVyCitrZXkgdG8gYWNjZXB0IHRoZSBkZWZhdWx0IHNpemUgb3IgZW50ZXIgYSBkaWZmZXJlbnQgc2l6ZSBhdCB0aGUKK3Byb21wdC4KKy5CIGNmZGlzaworYWNjZXB0cyBzaXplIGVudHJpZXMgaW4gbWVnYWJ5dGVzCisuUkIgKCBNICkKK1tkZWZhdWx0XSwga2lsb2J5dGVzCisuUkIgKCBLICksCitjeWxpbmRlcnMKKy5SQiAoIEMgKQorYW5kIHNlY3RvcnMKKy5SQiAoIFMgKQorYnkgZW50ZXJpbmcgdGhlIG51bWJlciBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBvbmUgb2YKKy5SQiAoIE0gIiwgIiBLICIsICIgQyAiIG9yICIgUyApLgorSWYgdGhlIHBhcnRpdGlvbiBmaWxscyB0aGUgZnJlZSBzcGFjZSBhdmFpbGFibGUsIHRoZSBwYXJ0aXRpb24gaXMKK2NyZWF0ZWQgYW5kIHlvdSBhcmUgcmV0dXJuZWQgdG8gdGhlIG1haW4gY29tbWFuZCBsaW5lLiAgT3RoZXJ3aXNlLCB0aGUKK3BhcnRpdGlvbiBjYW4gYmUgY3JlYXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9yIHRoZSBlbmQgb2YgdGhlIGZyZWUKK3NwYWNlLCBhbmQKKy5CIGNmZGlzaword2lsbCBhc2sgeW91IHRvIGNob29zZSB3aGVyZSB0byBwbGFjZSB0aGUgcGFydGl0aW9uLiAgQWZ0ZXIgdGhlCitwYXJ0aXRpb24gaXMgY3JlYXRlZCwKKy5CIGNmZGlzaworYXV0b21hdGljYWxseSBhZGp1c3RzIHRoZSBvdGhlciBwYXJ0aXRpb25zJyBwYXJ0aXRpb24gdHlwZXMgaWYgYWxsIG9mCit0aGUgcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSB1c2VkLgorLlRQCisuQiBwCitQcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlLiBUaGVyZSBhcmUKK3NldmVyYWwgZGlmZmVyZW50IGZvcm1hdHMgZm9yIHRoZSBwYXJ0aXRpb24gdGhhdCB5b3UgY2FuIGNob29zZSBmcm9tOgorLnNwCisuUlMKKy5UUAorLkIgcgorUmF3IGRhdGEgZm9ybWF0IChleGFjdGx5IHdoYXQgd291bGQgYmUgd3JpdHRlbiB0byBkaXNrKQorLlRQCisuQiBzCitQYXJ0aXRpb24gdGFibGUgaW4gc2VjdG9yIG9yZGVyIGZvcm1hdAorLlRQCisuQiB0CitQYXJ0aXRpb24gdGFibGUgaW4gcmF3IGZvcm1hdAorLlJFCisKKy5SUworVGhlCisuSSByYXcgZGF0YSBmb3JtYXQKK3dpbGwgcHJpbnQgdGhlIHNlY3RvcnMgdGhhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2sgaWYgYQorLkJSIHcgcml0ZQorY29tbWFuZCBpcyBzZWxlY3RlZC4gIEZpcnN0LCB0aGUgcHJpbWFyeSBwYXJ0aXRpb24gdGFibGUgaXMgcHJpbnRlZCwKK2ZvbGxvd2VkIGJ5IHRoZSBwYXJ0aXRpb24gdGFibGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGxvZ2ljYWwKK3BhcnRpdGlvbi4gIFRoZSBkYXRhIGlzIHByaW50ZWQgaW4gaGV4IGJ5dGUgYnkgYnl0ZSB3aXRoIDE2IGJ5dGVzIHBlcgorbGluZS4KKworVGhlCisuSSBwYXJ0aXRpb24gdGFibGUgaW4gc2VjdG9yIG9yZGVyIGZvcm1hdAord2lsbCBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIG9yZGVyZWQgYnkgc2VjdG9yIG51bWJlci4gIFRoZSBmaWVsZHMsCitmcm9tIGxlZnQgdG8gcmlnaHQsIGFyZSB0aGUgbnVtYmVyIG9mIHRoZSBwYXJ0aXRpb24sIHRoZSBwYXJ0aXRpb24KK3R5cGUsIHRoZSBmaXJzdCBzZWN0b3IsIHRoZSBsYXN0IHNlY3RvciwgdGhlIG9mZnNldCBmcm9tIHRoZSBmaXJzdAorc2VjdG9yIG9mIHRoZSBwYXJ0aXRpb24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXRhLCB0aGUgbGVuZ3RoIG9mIHRoZQorcGFydGl0aW9uLCB0aGUgZmlsZXN5c3RlbSB0eXBlICh3aXRoIHRoZSBoZXggdmFsdWUgaW4gcGFyZW50aGVzaXMpLAorYW5kIHRoZSBmbGFncyAod2l0aCB0aGUgaGV4IHZhbHVlIGluIHBhcmVudGhlc2lzKS4gIEluIGFkZGl0aW9uIHRvIHRoZQorcHJpbWFyeSBhbmQgbG9naWNhbCBwYXJ0aXRpb25zLCBmcmVlIGFuZCB1bnVzYWJsZSBzcGFjZSBpcyBwcmludGVkIGFuZAordGhlIGV4dGVuZGVkIHBhcnRpdGlvbiBpcyBwcmludGVkIGJlZm9yZSB0aGUgZmlyc3QgbG9naWNhbCBwYXJ0aXRpb24uCisKK0lmIGEgcGFydGl0aW9uIGRvZXMgbm90IHN0YXJ0IG9yIGVuZCBvbiBhIGN5bGluZGVyIGJvdW5kYXJ5IG9yIGlmIHRoZQorcGFydGl0aW9uIGxlbmd0aCBpcyBub3QgZGl2aXNpYmxlIGJ5IHRoZSBjeWxpbmRlciBzaXplLCBhbiBhc3RlcmlzaworLlJCICggKiApCitpcyBwcmludGVkIGFmdGVyIHRoZSBub24tYWxpZ25lZCBzZWN0b3IgbnVtYmVyL2NvdW50LiAgVGhpcyB1c3VhbGx5CitpbmRpY2F0ZXMgdGhhdCBhIHBhcnRpdGlvbiB3YXMgY3JlYXRlZCBieSBhbiBvcGVyYXRpbmcgc3lzdGVtIHRoYXQKK2VpdGhlciBkb2VzIG5vdCBhbGlnbiBwYXJ0aXRpb25zIHRvIGN5bGluZGVyIGJvdW5kYXJpZXMgb3IgdGhhdCB1c2VkCitkaWZmZXJlbnQgZGlzayBnZW9tZXRyeSBpbmZvcm1hdGlvbi4gIElmIHlvdSBrbm93IHRoZSBkaXNrIGdlb21ldHJ5IG9mCit0aGUgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbSwgeW91IGNvdWxkIGVudGVyIHRoZSBnZW9tZXRyeSBpbmZvcm1hdGlvbgord2l0aCB0aGUgY2hhbmdlIGdlb21ldHJ5IGNvbW1hbmQKKy5SQiAoIGcgKS4KKworRm9yIHRoZSBmaXJzdCBwYXJ0aXRpb24gb24gdGhlIGRpc2sgYW5kIGZvciBhbGwgbG9naWNhbCBwYXJ0aXRpb25zLCBpZgordGhlIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHBhcnRpdGlvbiBpcyBub3QgZXF1YWwgdG8gdGhlCitudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2sgKGkuZS4sIHRoZSBkYXRhIGRvZXMgbm90IHN0YXJ0IG9uIHRoZQorZmlyc3QgaGVhZCksIGEgbnVtYmVyIHNpZ24KKy5SQiAoICMgKQoraXMgcHJpbnRlZCBhZnRlciB0aGUgb2Zmc2V0LiAgRm9yIHRoZSByZW1haW5pbmcgcGFydGl0aW9ucywgaWYgdGhlCitvZmZzZXQgaXMgbm90IHplcm8sIGEgbnVtYmVyIHNpZ24gd2lsbCBiZSBwcmludGVkIGFmdGVyIHRoZSBvZmZzZXQuCitUaGlzIGNvcnJlc3BvbmRzIHRvIHRoZQorLkkgTkMKK2ZsYWcgaW4gdGhlIHBhcnRpdGlvbnMgc2VjdGlvbiBvZiB0aGUgbWFpbiBkaXNwbGF5LgorCitUaGUKKy5JIHBhcnRpdGlvbiB0YWJsZSBpbiByYXcgZm9ybWF0Cit3aWxsIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUgb3JkZXJlZCBieSBwYXJ0aXRpb24gbnVtYmVyLiAgSXQgd2lsbAorbGVhdmUgb3V0IGFsbCBmcmVlIGFuZCB1bnVzYWJsZSBzcGFjZS4gIFRoZSBmaWVsZHMsIGZyb20gbGVmdCB0bworcmlnaHQsIGFyZSB0aGUgbnVtYmVyIG9mIHRoZSBwYXJ0aXRpb24sIHRoZSBmbGFncyAoaW4gaGV4KSwgdGhlCitzdGFydGluZyBoZWFkLCBzZWN0b3IgYW5kIGN5bGluZGVyLCB0aGUgZmlsZXN5c3RlbSBJRCAoaW4gaGV4KSwgdGhlCitlbmRpbmcgaGVhZCwgc2VjdG9yIGFuZCBjeWxpbmRlciwgdGhlIHN0YXJ0aW5nIHNlY3RvciBpbiB0aGUgcGFydGl0aW9uCithbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzIGluIHRoZSBwYXJ0aXRpb24uICBUaGUgaW5mb3JtYXRpb24gaW4gdGhpcwordGFibGUgY2FuIGJlIGRpcmVjdGx5IHRyYW5zbGF0ZWQgdG8gdGhlCisuSVIgInJhdyBkYXRhIGZvcm1hdCIgLgorCitUaGUgcGFydGl0aW9uIHRhYmxlIGVudHJpZXMgb25seSBoYXZlIDEwIGJpdHMgYXZhaWxhYmxlIHRvIHJlcHJlc2VudAordGhlIHN0YXJ0aW5nIGFuZCBlbmRpbmcgY3lsaW5kZXJzLiAgVGh1cywgd2hlbiB0aGUgYWJzb2x1dGUgc3RhcnRpbmcKKyhlbmRpbmcpIHNlY3RvciBudW1iZXIgaXMgb24gYSBjeWxpbmRlciBncmVhdGVyIHRoYW4gMTAyMywgdGhlIG1heGltYWwKK3ZhbHVlcyBmb3Igc3RhcnRpbmcgKGVuZGluZykgaGVhZCwgc2VjdG9yIGFuZCBjeWxpbmRlciBhcmUgcHJpbnRlZC4KK1RoaXMgaXMgdGhlIG1ldGhvZCB1c2VkIGJ5IE9TLzIsIGFuZCB0aHVzIGZpeGVzIHRoZSBwcm9ibGVtcworYXNzb2NpYXRlZCB3aXRoIE9TLzIncyBmZGlzayByZXdyaXRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSB3aGVuIGl0IGlzCitub3QgaW4gdGhpcyBmb3JtYXQuICBTaW5jZSBMaW51eCBhbmQgT1MvMiB1c2UgYWJzb2x1dGUgc2VjdG9yIGNvdW50cywKK3RoZSB2YWx1ZXMgaW4gdGhlIHN0YXJ0aW5nIGFuZCBlbmRpbmcgaGVhZCwgc2VjdG9yIGFuZCBjeWxpbmRlciBhcmUKK25vdCB1c2VkLgorLlJFCisuVFAKKy5CIHEKK1F1aXQgcHJvZ3JhbS4gIFRoaXMgd2lsbCBleGl0IHRoZSBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBhbnkgZGF0YSB0bworZGlzay4KKy5UUAorLkIgdAorQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUuICBCeSBkZWZhdWx0LCBuZXcgcGFydGl0aW9ucyBhcmUgY3JlYXRlZCBhcworLkkgTGludXgKK3BhcnRpdGlvbnMsIGJ1dCBzaW5jZQorLkIgY2ZkaXNrCitjYW4gY3JlYXRlIHBhcnRpdGlvbnMgZm9yIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zLCBjaGFuZ2UgcGFydGl0aW9uCit0eXBlIGFsbG93cyB5b3UgdG8gZW50ZXIgdGhlIGhleCB2YWx1ZSBvZiB0aGUgZmlsZXN5c3RlbSB5b3UgZGVzaXJlLgorQSBsaXN0IG9mIHRoZSBrbm93IGZpbGVzeXN0ZW0gdHlwZXMgaXMgZGlzcGxheWVkLiAgWW91IGNhbiB0eXBlIGluIHRoZQorZmlsZXN5c3RlbSB0eXBlIGF0IHRoZSBwcm9tcHQgb3IgYWNjZXB0IHRoZSBkZWZhdWx0IGZpbGVzeXN0ZW0gdHlwZQorLlJJIFsgTGludXggXS4KKy5UUAorLkIgdQorQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5LiAgSXQgd2lsbCByb3RhdGUgdGhyb3VnaAorbWVnYWJ5dGVzLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMuCisuVFAKKy5CIFcKK1dyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIGFuIHVwcGVyIGNhc2UgVykuICBTaW5jZQordGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IGVpdGhlciBjb25maXJtIG9yIGRlbnkKK3RoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciBgbm8nLiAgSWYgeW91IGVudGVyIGB5ZXMnLAorLkIgY2ZkaXNrCit3aWxsIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayBhbmQgdGhlIHRlbGwgdGhlIGtlcm5lbCB0byByZS1yZWFkIHRoZQorcGFydGl0aW9uIHRhYmxlIGZyb20gdGhlIGRpc2suICBUaGUgcmUtcmVhZGluZyBvZiB0aGUgcGFydGl0aW9uIHRhYmxlIGRvZXMgbm90Cit3b3JrIGluIHNvbWUgY2FzZXMsIGZvciBleGFtcGxlIGZvciBkZXZpY2UtbWFwcGVyIGRldmljZXMuICBJbgorcGFydGljdWxhciBjYXNlIHlvdSBuZWVkIHRvIGluZm9ybSBrZXJuZWwgYWJvdXQgbmV3CitwYXJ0aXRpb25zIGJ5CisuQiBwYXJ0cHJvYmUoOCksCisuQiBrcGFydHgoOCkKK29yIHJlYm9vdCB0aGUgc3lzdGVtLgorLlRQCisuSSBVcCBBcnJvdworLlRQCisuSSBEb3duIEFycm93CitNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgb3IgbmV4dCBwYXJ0aXRpb24uICBJZiB0aGVyZSBhcmUgbW9yZQorcGFydGl0aW9ucyB0aGFuIGNhbiBiZSBkaXNwbGF5ZWQgb24gYSBzY3JlZW4sIHlvdSBjYW4gZGlzcGxheSB0aGUgbmV4dAorKHByZXZpb3VzKSBzZXQgb2YgcGFydGl0aW9ucyBieSBtb3ZpbmcgZG93biAodXApIGF0IHRoZSBsYXN0IChmaXJzdCkKK3BhcnRpdGlvbiBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbi4KKy5UUAorLkkgQ1RSTC1MCitSZWRyYXdzIHRoZSBzY3JlZW4uICBJbiBjYXNlIHNvbWV0aGluZyBnb2VzIHdyb25nIGFuZCB5b3UgY2Fubm90IHJlYWQKK2FueXRoaW5nLCB5b3UgY2FuIHJlZnJlc2ggdGhlIHNjcmVlbiBmcm9tIHRoZSBtYWluIGNvbW1hbmQgbGluZS4KKy5UUAorLkIgPworUHJpbnQgdGhlIGhlbHAgc2NyZWVuLgorCisuUkUKK0FsbCBvZiB0aGUgY29tbWFuZHMgY2FuIGJlIGVudGVyZWQgd2l0aCBlaXRoZXIgdXBwZXIgb3IgbG93ZXIgY2FzZQorbGV0dGVycyAoZXhjZXB0IGZvcgorLkJSIFcgcml0ZXMpLgorV2hlbiBpbiBhIHN1Yi1tZW51IG9yIGF0IGEgcHJvbXB0IHRvIGVudGVyIGEgZmlsZW5hbWUsIHlvdSBjYW4gaGl0IHRoZQorLkkgRVNDCitrZXkgdG8gcmV0dXJuIHRvIHRoZSBtYWluIGNvbW1hbmQgbGluZS4KKy5TSCBPUFRJT05TCisuVFAKKy5CIFwtYQorVXNlIGFuIGFycm93IGN1cnNvciBpbnN0ZWFkIG9mIHJldmVyc2UgdmlkZW8gZm9yIGhpZ2hsaWdodGluZyB0aGUKK2N1cnJlbnQgcGFydGl0aW9uLgorLlRQCisuQiBcLWcKK0RvIG5vdCB1c2UgdGhlIGdlb21ldHJ5IGdpdmVuIGJ5IHRoZSBkaXNrIGRyaXZlciwgYnV0IHRyeSB0bworZ3Vlc3MgYSBnZW9tZXRyeSBmcm9tIHRoZSBwYXJ0aXRpb24gdGFibGUuCisuVFAKKy5CIFwtdgorUHJpbnQgdGhlIHZlcnNpb24gbnVtYmVyIGFuZCBjb3B5cmlnaHQuCisuVFAKKy5CIFwtegorU3RhcnQgd2l0aCB6ZXJvZWQgcGFydGl0aW9uIHRhYmxlLiAgVGhpcyBvcHRpb24gaXMgdXNlZnVsIHdoZW4geW91Cit3YW50IHRvIHJlcGFydGl0aW9uIHlvdXIgZW50aXJlIGRpc2suCisuSSBOb3RlOgordGhpcyBvcHRpb24gZG9lcyBub3QgemVybyB0aGUgcGFydGl0aW9uIHRhYmxlIG9uIHRoZSBkaXNrOyByYXRoZXIsIGl0CitzaW1wbHkgc3RhcnRzIHRoZSBwcm9ncmFtIHdpdGhvdXQgcmVhZGluZyB0aGUgZXhpc3RpbmcgcGFydGl0aW9uCit0YWJsZS4KKy5UUAorLkJJIFwtYyAiIGN5bGluZGVycyIKKy5UUAorLkJJIFwtaCAiIGhlYWRzIgorLlRQCisuQkkgXC1zICIgc2VjdG9ycy1wZXItdHJhY2siCitPdmVycmlkZSB0aGUgbnVtYmVyIG9mIGN5bGluZGVycywgaGVhZHMgYW5kIHNlY3RvcnMgcGVyIHRyYWNrIHJlYWQKK2Zyb20gdGhlIEJJT1MuICBJZiB5b3VyIEJJT1Mgb3IgYWRhcHRlciBkb2VzIG5vdCBzdXBwbHkgdGhpcworaW5mb3JtYXRpb24gb3IgaWYgaXQgc3VwcGxpZXMgaW5jb3JyZWN0IGluZm9ybWF0aW9uLCB1c2UgdGhlc2Ugb3B0aW9ucwordG8gc2V0IHRoZSBkaXNrIGdlb21ldHJ5IHZhbHVlcy4KKy5UUAorLkJJIFwtUCAiIG9wdCIKK1ByaW50cyB0aGUgcGFydGl0aW9uIHRhYmxlIGluIHNwZWNpZmllZCBmb3JtYXRzLgorLkkgb3B0CitjYW4gYmUgb25lIG9yIG1vcmUgb2YgInIiLCAicyIgb3IgInQiLiAgU2VlIHRoZQorLkJSIHAgcmludAorY29tbWFuZCAoYWJvdmUpIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBwcmludCBmb3JtYXRzLgorLlNIICJFWElUIFNUQVRVUyIKKzA6IE5vIGVycm9yczsgMTogSW52b2NhdGlvbiBlcnJvcjsgMjogSS9PIGVycm9yOworMzogY2Fubm90IGdldCBnZW9tZXRyeTsgNDogYmFkIHBhcnRpdGlvbiB0YWJsZSBvbiBkaXNrLgorLlNIICJTRUUgQUxTTyIKKy5CUiBmZGlzayAoOCksCisuQlIgc2ZkaXNrICg4KSwKKy5CUiBta2ZzICg4KSwKKy5CUiBwYXJ0ZWQgKDgpLAorLkJSIHBhcnRwcm9iZSAoOCksCisuQlIga3BhcnR4KDgpCisuU0ggQlVHUworVGhlIGN1cnJlbnQgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IG11bHRpcGxlIGRpc2tzLgorLlNIIEFVVEhPUgorS2V2aW4gRS4gTWFydGluIChtYXJ0aW5AY3MudW5jLmVkdSkKKworLlNIIEFWQUlMQUJJTElUWQorVGhlIGNmZGlzayBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2NmZGlzay5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svY2ZkaXNrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGZiNDE1MgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2NmZGlzay5jCkBAIC0wLDAgKzEsMzAzMSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgICAgQ0ZESVNLCisgKgorICogY2ZkaXNrIGlzIGEgY3Vyc2VzIGJhc2VkIGRpc2sgZHJpdmUgcGFydGl0aW9uaW5nIHByb2dyYW0gdGhhdCBjYW4KKyAqIGNyZWF0ZSBwYXJ0aXRpb25zIGZvciBhIHdpZGUgdmFyaWV0eSBvZiBvcGVyYXRpbmcgc3lzdGVtcyBpbmNsdWRpbmcKKyAqIExpbnV4LCBNUy1ET1MgYW5kIE9TLzIuCisgKgorICogY2ZkaXNrIHdhcyBpbnNwaXJlZCBieSB0aGUgZmRpc2sgcHJvZ3JhbSwgYnkgQS4gVi4gTGUgQmxhbmMKKyAqIChMZUJsYW5jQG1jYy5hYy51aykuCisgKgorICogICAgIENvcHlyaWdodCAoQykgMTk5NCBLZXZpbiBFLiBNYXJ0aW4gKG1hcnRpbkBjcy51bmMuZWR1KQorICoKKyAqIGNmZGlzayBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogY2ZkaXNrIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCBjZmRpc2s7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyAqIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICoKKyAqIENyZWF0ZWQ6CUZyaSBKYW4gMjggMjI6NDY6NTggMTk5NCwgbWFydGluQGNzLnVuYy5lZHUKKyAqID4yR0IgcGF0Y2hlczogU2F0IEZlYiAxMSAwOTowODoxMCAxOTk1LCBmYWl0aEBjcy51bmMuZWR1CisgKiBQcmV0dGllciBtZW51czogU2F0IEZlYiAxMSAwOTowODoyNSAxOTk1LCBKYW5uZSBLdWtvbmxlaHRvCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8anRrbGVodG9Ac3Rla3Qub3VsdS5maT4KKyAqIFZlcnNpb25zIDAuOGUtcDogYWViQGN3aS5ubAorICogUmViYXB0aXNlZCAyLjlwLCBmb2xsb3dpbmcgdXRpbC1saW51eCB2ZXJzaW9uaW5nLgorICoKKyAqICBSZWNvZ25pdGlvbiBvZiBOVEZTIC8gSFBGUyBkaWZmZXJlbmNlIGluc3BpcmVkIGJ5IHBhdGNoZXMKKyAqICBmcm9tIE1hcnR5IExlaXNuZXIgPGxlaXNuZXJAc2RzcC5tYy54ZXJveC5jb20+CisgKiAgRXhpdCBjb2RlcyBieSBFbnJpcXVlIFphbmFyZGkgPGV6YW5hcmRpQHVsbC5lcz46CisgKiAgICAgMDogYWxsIHdlbnQgd2VsbAorICogICAgIDE6IGNvbW1hbmQgbGluZSBlcnJvciwgb3V0IG9mIG1lbW9yeQorICogICAgIDI6IGhhcmR3YXJlIHByb2JsZW1zIFtDYW5ub3Qgb3Blbi9zZWVrL3JlYWQvd3JpdGUgZGlzayBkcml2ZV0uCisgKiAgICAgMzogaW9jdGwoZmQsIEhESU9fR0VUR0VPLC4uLikgZmFpbGVkLiAoUHJvYmFibHkgaXQgaXMgbm90IGEgZGlzay4pCisgKiAgICAgNDogYmFkIHBhcnRpdGlvbiB0YWJsZSBvbiBkaXNrLiBbQmFkIHByaW1hcnkvbG9naWNhbCBwYXJ0aXRpb25dLgorICoKKyAqIFNhdCwgMjMgSmFuIDE5OTkgMTk6MzQ6NDUgKzAxMDAgPFZpbmNlbnQuUmVuYXJkaWFzQGxkc29sLmNvbT4KKyAqICBJbnRlcm5hdGlvbmFsaXplZCArIHByb3ZpZGVkIGluaXRpYWwgRnJlbmNoIHRyYW5zbGF0aW9uLgorICogU2F0IE1hciAyMCAwOToyNjozNCBFU1QgMTk5OSA8YWNtZUBjb25lY3RpdmEuY29tLmJyPgorICogIFNvbWUgbW9yZSBpMThuLgorICogU3VuIEp1bCAxOCAwMzoxOTo0MiBNRVNUIDE5OTkgPGFlYkBjd2kubmw+CisgKiAgVGVyYWJ5dGUtc2l6ZWQgZGlza3MuCisgKiBTYXQgSnVuIDMwIDA1OjIzOjE5IEVTVCAyMDAxIDxuYXRoYW5zQHNnaS5jb20+CisgKiAgWEZTIGxhYmVsIHJlY29nbml0aW9uLgorICogVGh1IE5vdiAyMiAxNTo0Mjo1NiBDRVQgMjAwMSA8ZmxhdmlvLnN0YW5jaGluYUB0aW4uaXQ+CisgKiAgZXh0MyBhbmQgUmVpc2VyRlMgcmVjb2duaXRpb24uCisgKiBTdW4gT2N0IDEyIDE3OjQzOjQzIENFU1QgMjAwMyA8ZmxhdmlvLnN0YW5jaGluYUB0aW4uaXQ+CisgKiAgSkZTIHJlY29nbml0aW9uOyBSZWlzZXJGUyBsYWJlbCByZWNvZ25pdGlvbi4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaWZkZWYgSEFWRV9TTENVUlNFU19ICisjaW5jbHVkZSA8c2xjdXJzZXMuaD4KKyNlbGlmIGRlZmluZWQoSEFWRV9TTEFOR19TTENVUlNFU19IKQorI2luY2x1ZGUgPHNsYW5nL3NsY3Vyc2VzLmg+CisjZWxpZiBkZWZpbmVkKEhBVkVfTkNVUlNFU19IKQorI2luY2x1ZGUgPG5jdXJzZXMuaD4KKyNlbGlmIGRlZmluZWQoSEFWRV9OQ1VSU0VTX05DVVJTRVNfSCkKKyNpbmNsdWRlIDxuY3Vyc2VzL25jdXJzZXMuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorCisjaW5jbHVkZSAibmxzLmgiCisjaW5jbHVkZSAiYmxrZGV2LmgiCisjaW5jbHVkZSAieHN0cm5jcHkuaCIKKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJncHQuaCIKKworI2lmZGVmIF9fR05VX18KKyNkZWZpbmUgREVGQVVMVF9ERVZJQ0UgIi9kZXYvaGQwIgorI2RlZmluZSBBTFRFUk5BVEVfREVWSUNFICIvZGV2L3NkMCIKKyNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pCisjZGVmaW5lIERFRkFVTFRfREVWSUNFICIvZGV2L2FkMCIKKyNkZWZpbmUgQUxURVJOQVRFX0RFVklDRSAiL2Rldi9kYTAiCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0RFVklDRSAiL2Rldi9oZGEiCisjZGVmaW5lIEFMVEVSTkFURV9ERVZJQ0UgIi9kZXYvc2RhIgorI2VuZGlmCisKKy8qIFdpdGggSz0xMDI0IHdlIGhhdmUgYGJpbmFyeScgbWVnYWJ5dGVzLCBnaWdhYnl0ZXMsIGV0Yy4KKyAgIFNvbWUgbWlzZ3VpZGVkIGhhY2tlcnMgbGlrZSB0aGF0LgorICAgV2l0aCBLPTEwMDAgd2UgaGF2ZSBNQiBhbmQgR0IgdGhhdCBmb2xsb3cgdGhlIHN0YW5kYXJkcworICAgW1NJLCBBVEEsIElFRUUgZXRjXSBhbmQgdGhlIGRpc2sgbWFudWZhY3R1cmVycyBhbmQgdGhlIGxhdy4gKi8KKyNkZWZpbmUgSwkxMDAwCisKKyNkZWZpbmUgTElORV9MRU5HVEggODAKKyNkZWZpbmUgTUFYSU1VTV9QQVJUUyA2MAorCisjZGVmaW5lIFNFQ1RPUl9TSVpFIDUxMgorCisjZGVmaW5lIE1BWF9IRUFEUyAyNTYKKyNkZWZpbmUgTUFYX1NFQ1RPUlMgNjMKKworI2RlZmluZSBBQ1RJVkVfRkxBRyAweDgwCisjZGVmaW5lIFBBUlRfVEFCTEVfRkxBRzAgMHg1NQorI2RlZmluZSBQQVJUX1RBQkxFX0ZMQUcxIDB4QUEKKworI2RlZmluZSBVTlVTQUJMRSAtMQorI2RlZmluZSBGUkVFX1NQQUNFICAgICAweDAwCisjZGVmaW5lIERPU19FWFRFTkRFRCAgIDB4MDUKKyNkZWZpbmUgT1MyX09SX05URlMgICAgMHgwNworI2RlZmluZSBXSU45OF9FWFRFTkRFRCAweDBmCisjZGVmaW5lIExJTlVYX0VYVEVOREVEIDB4ODUKKyNkZWZpbmUgTElOVVhfTUlOSVggICAgMHg4MQorI2RlZmluZSBMSU5VWF9TV0FQICAgICAweDgyCisjZGVmaW5lIExJTlVYICAgICAgICAgIDB4ODMKKworI2RlZmluZSBQUklfT1JfTE9HIC0xCisjZGVmaW5lIFBSSU1BUlkgLTIKKyNkZWZpbmUgTE9HSUNBTCAtMworCisjZGVmaW5lIENPTF9JRF9XSURUSCAyNQorCisjZGVmaW5lIENSICdcMDE1JworI2RlZmluZSBFU0MgJ1wwMzMnCisjZGVmaW5lIERFTCAnXDE3NycKKyNkZWZpbmUgQkVMTCAnXDAwNycKKyNkZWZpbmUgVEFCICdcMDExJworI2RlZmluZSBSRURSQVdLRVkgJ1wwMTQnCS8qIF5MICovCisjZGVmaW5lIFVQS0VZICdcMDIwJwkJLyogXlAgKi8KKyNkZWZpbmUgVVBLRVlWSSAnXDE1MycJCS8qIGsgKi8KKyNkZWZpbmUgRE9XTktFWSAnXDAxNicJCS8qIF5OICovCisjZGVmaW5lIERPV05LRVlWSSAnXDE1MicJLyogaiAqLworCisvKiBEaXNwbGF5IHVuaXRzICovCisjZGVmaW5lIEdJR0FCWVRFUyAxCisjZGVmaW5lIE1FR0FCWVRFUyAyCisjZGVmaW5lIFNFQ1RPUlMgMworI2RlZmluZSBDWUxJTkRFUlMgNAorCisjZGVmaW5lIEdTX0RFRkFVTFQgLTEKKyNkZWZpbmUgR1NfRVNDQVBFIC0yCisKKyNkZWZpbmUgUFJJTlRfUkFXX1RBQkxFIDEKKyNkZWZpbmUgUFJJTlRfU0VDVE9SX1RBQkxFIDIKKyNkZWZpbmUgUFJJTlRfUEFSVElUSU9OX1RBQkxFIDQKKworI2RlZmluZSBJU19QUklNQVJZKHApICgocCkgPj0gMCAmJiAocCkgPCA0KQorI2RlZmluZSBJU19MT0dJQ0FMKHApICgocCkgPiAzKQorCisjZGVmaW5lIHJvdW5kX2ludChkKSAoKGRvdWJsZSkoKGludCkoZCswLjUpKSkKKyNkZWZpbmUgY2VpbGluZyhkKSAoKGRvdWJsZSkoKChkKSAhPSAoaW50KShkKSkgPyAoaW50KShkKzEuMCkgOiAoaW50KShkKSkpCisKK3N0cnVjdCBwYXJ0aXRpb24geworICAgICAgICB1bnNpZ25lZCBjaGFyIGJvb3RfaW5kOyAgICAgICAgIC8qIDB4ODAgLSBhY3RpdmUgKi8KKyAgICAgICAgdW5zaWduZWQgY2hhciBoZWFkOyAgICAgICAgICAgICAvKiBzdGFydGluZyBoZWFkICovCisgICAgICAgIHVuc2lnbmVkIGNoYXIgc2VjdG9yOyAgICAgICAgICAgLyogc3RhcnRpbmcgc2VjdG9yICovCisgICAgICAgIHVuc2lnbmVkIGNoYXIgY3lsOyAgICAgICAgICAgICAgLyogc3RhcnRpbmcgY3lsaW5kZXIgKi8KKyAgICAgICAgdW5zaWduZWQgY2hhciBzeXNfaW5kOyAgICAgICAgICAvKiBXaGF0IHBhcnRpdGlvbiB0eXBlICovCisgICAgICAgIHVuc2lnbmVkIGNoYXIgZW5kX2hlYWQ7ICAgICAgICAgLyogZW5kIGhlYWQgKi8KKyAgICAgICAgdW5zaWduZWQgY2hhciBlbmRfc2VjdG9yOyAgICAgICAvKiBlbmQgc2VjdG9yICovCisgICAgICAgIHVuc2lnbmVkIGNoYXIgZW5kX2N5bDsgICAgICAgICAgLyogZW5kIGN5bGluZGVyICovCisgICAgICAgIHVuc2lnbmVkIGNoYXIgc3RhcnQ0WzRdOyAgICAgICAgLyogc3RhcnRpbmcgc2VjdG9yIGNvdW50aW5nIGZyb20gMCAqLworICAgICAgICB1bnNpZ25lZCBjaGFyIHNpemU0WzRdOyAgICAgICAgIC8qIG5yIG9mIHNlY3RvcnMgaW4gcGFydGl0aW9uICovCit9OworCitpbnQgaGVhZHMgPSAwOworaW50IHNlY3RvcnMgPSAwOworbG9uZyBsb25nIGN5bGluZGVycyA9IDA7CitpbnQgY3lsaW5kZXJfc2l6ZSA9IDA7CQkvKiBoZWFkcyAqIHNlY3RvcnMgKi8KK2xvbmcgbG9uZyB0b3RhbF9zaXplID0gMDsJLyogYWN0dWFsX3NpemUgcm91bmRlZCBkb3duICovCitsb25nIGxvbmcgYWN0dWFsX3NpemUgPSAwOwkvKiAoaW4gNTEyLWJ5dGUgc2VjdG9ycykgLSBzZXQgdXNpbmcgaW9jdGwgKi8KKwkJCQkvKiBleHBsaWNpdGx5IGdpdmVuIHVzZXIgdmFsdWVzICovCitpbnQgdXNlcl9oZWFkcyA9IDAsIHVzZXJfc2VjdG9ycyA9IDA7Citsb25nIGxvbmcgdXNlcl9jeWxpbmRlcnMgPSAwOworCQkJCS8qIGtlcm5lbCB2YWx1ZXM7IGlnbm9yZSB0aGUgY3lsaW5kZXJzICovCitpbnQga2Vybl9oZWFkcyA9IDAsIGtlcm5fc2VjdG9ycyA9IDA7CisJCQkJLyogcGFydGl0aW9uLXRhYmxlIGRlcml2ZWQgdmFsdWVzICovCitpbnQgcHRfaGVhZHMgPSAwLCBwdF9zZWN0b3JzID0gMDsKKworCitzdGF0aWMgdm9pZAorc2V0X2hzYzAodW5zaWduZWQgY2hhciAqaCwgdW5zaWduZWQgY2hhciAqcywgaW50ICpjLCBsb25nIGxvbmcgc2VjdG9yKSB7CisJKnMgPSBzZWN0b3IgJSBzZWN0b3JzICsgMTsKKwlzZWN0b3IgLz0gc2VjdG9yczsKKwkqaCA9IHNlY3RvciAlIGhlYWRzOworCXNlY3RvciAvPSBoZWFkczsKKwkqYyA9IHNlY3RvcjsKK30KKworc3RhdGljIHZvaWQKK3NldF9oc2ModW5zaWduZWQgY2hhciAqaCwgdW5zaWduZWQgY2hhciAqcywgdW5zaWduZWQgY2hhciAqYywKKwlsb25nIGxvbmcgc2VjdG9yKSB7CisJaW50IGNjOworCisJaWYgKHNlY3RvciA+PSAxMDI0KmN5bGluZGVyX3NpemUpCisJCXNlY3RvciA9IDEwMjQqY3lsaW5kZXJfc2l6ZSAtIDE7CisJc2V0X2hzYzAoaCwgcywgJmNjLCBzZWN0b3IpOworCSpjID0gY2MgJiAweEZGOworCSpzIHw9IChjYyA+PiAyKSAmIDB4QzA7Cit9CisKK3N0YXRpYyB2b2lkCitzZXRfaHNjX2JlZ2luKHN0cnVjdCBwYXJ0aXRpb24gKnAsIGxvbmcgbG9uZyBzZWN0b3IpIHsKKwlzZXRfaHNjKCYgcC0+aGVhZCwgJiBwLT5zZWN0b3IsICYgcC0+Y3lsLCBzZWN0b3IpOworfQorCitzdGF0aWMgdm9pZAorc2V0X2hzY19lbmQoc3RydWN0IHBhcnRpdGlvbiAqcCwgbG9uZyBsb25nIHNlY3RvcikgeworCXNldF9oc2MoJiBwLT5lbmRfaGVhZCwgJiBwLT5lbmRfc2VjdG9yLCAmIHAtPmVuZF9jeWwsIHNlY3Rvcik7Cit9CisKKyNkZWZpbmUgaXNfZXh0ZW5kZWQoeCkJKCh4KSA9PSBET1NfRVhURU5ERUQgfHwgKHgpID09IFdJTjk4X0VYVEVOREVEIHx8IFwKKwkJCSAoeCkgPT0gTElOVVhfRVhURU5ERUQpCisKKyNkZWZpbmUgaXNfZG9zX3BhcnRpdGlvbih4KSAoKHgpID09IDEgfHwgKHgpID09IDQgfHwgKHgpID09IDYpCisjZGVmaW5lIG1heV9oYXZlX2Rvc19sYWJlbCh4KSAoaXNfZG9zX3BhcnRpdGlvbih4KSBcCisgICB8fCAoeCkgPT0gNyB8fCAoeCkgPT0gMHhiIHx8ICh4KSA9PSAweGMgfHwgKHgpID09IDB4ZSBcCisgICB8fCAoeCkgPT0gMHgxMSB8fCAoeCkgPT0gMHgxNCB8fCAoeCkgPT0gMHgxNiB8fCAoeCkgPT0gMHgxNykKKworLyogc3RhcnRfc2VjdCBhbmQgbnJfc2VjdHMgYXJlIHN0b3JlZCBsaXR0bGUgZW5kaWFuIG9uIGFsbCBtYWNoaW5lcyAqLworLyogbW9yZW92ZXIsIHRoZXkgYXJlIG5vdCBhbGlnbmVkIGNvcnJlY3RseSAqLworc3RhdGljIHZvaWQKK3N0b3JlNF9saXR0bGVfZW5kaWFuKHVuc2lnbmVkIGNoYXIgKmNwLCB1bnNpZ25lZCBpbnQgdmFsKSB7CisJY3BbMF0gPSAodmFsICYgMHhmZik7CisJY3BbMV0gPSAoKHZhbCA+PiA4KSAmIDB4ZmYpOworCWNwWzJdID0gKCh2YWwgPj4gMTYpICYgMHhmZik7CisJY3BbM10gPSAoKHZhbCA+PiAyNCkgJiAweGZmKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludAorcmVhZDRfbGl0dGxlX2VuZGlhbih1bnNpZ25lZCBjaGFyICpjcCkgeworCXJldHVybiAodW5zaWduZWQgaW50KShjcFswXSkgKyAoKHVuc2lnbmVkIGludCkoY3BbMV0pIDw8IDgpCisJCSsgKCh1bnNpZ25lZCBpbnQpKGNwWzJdKSA8PCAxNikKKwkJKyAoKHVuc2lnbmVkIGludCkoY3BbM10pIDw8IDI0KTsKK30KKworc3RhdGljIHZvaWQKK3NldF9zdGFydF9zZWN0KHN0cnVjdCBwYXJ0aXRpb24gKnAsIHVuc2lnbmVkIGludCBzdGFydF9zZWN0KSB7CisJc3RvcmU0X2xpdHRsZV9lbmRpYW4ocC0+c3RhcnQ0LCBzdGFydF9zZWN0KTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludAorZ2V0X3N0YXJ0X3NlY3Qoc3RydWN0IHBhcnRpdGlvbiAqcCkgeworCXJldHVybiByZWFkNF9saXR0bGVfZW5kaWFuKHAtPnN0YXJ0NCk7Cit9CisKK3N0YXRpYyB2b2lkCitzZXRfbnJfc2VjdHMoc3RydWN0IHBhcnRpdGlvbiAqcCwgdW5zaWduZWQgaW50IG5yX3NlY3RzKSB7CisJc3RvcmU0X2xpdHRsZV9lbmRpYW4ocC0+c2l6ZTQsIG5yX3NlY3RzKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludAorZ2V0X25yX3NlY3RzKHN0cnVjdCBwYXJ0aXRpb24gKnApIHsKKwlyZXR1cm4gcmVhZDRfbGl0dGxlX2VuZGlhbihwLT5zaXplNCk7Cit9CisKKyNkZWZpbmUgQUxJR05NRU5UIDIKK3R5cGVkZWYgdW5pb24geworICAgIHN0cnVjdCB7CisJdW5zaWduZWQgY2hhciBhbGlnbltBTElHTk1FTlRdOworCXVuc2lnbmVkIGNoYXIgYltTRUNUT1JfU0laRV07CisgICAgfSBjOworICAgIHN0cnVjdCB7CisJdW5zaWduZWQgY2hhciBhbGlnbltBTElHTk1FTlRdOworCXVuc2lnbmVkIGNoYXIgYnVmZmVyWzB4MUJFXTsKKwlzdHJ1Y3QgcGFydGl0aW9uIHBhcnRbNF07CisJdW5zaWduZWQgY2hhciBtYWdpY2ZsYWdbMl07CisgICAgfSBwOworfSBwYXJ0aXRpb25fdGFibGU7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBsb25nIGxvbmcgZmlyc3Rfc2VjdG9yOwkvKiBmaXJzdCBzZWN0b3IgaW4gcGFydGl0aW9uICovCisgICAgbG9uZyBsb25nIGxhc3Rfc2VjdG9yOwkvKiBsYXN0IHNlY3RvciBpbiBwYXJ0aXRpb24gKi8KKyAgICBsb25nIG9mZnNldDsJCS8qIG9mZnNldCBmcm9tIGZpcnN0IHNlY3RvciB0byBzdGFydCBvZiBkYXRhICovCisgICAgaW50IGZsYWdzOwkJLyogYWN0aXZlID09IDB4ODAgKi8KKyAgICBpbnQgaWQ7CQkvKiBmaWxlc3lzdGVtIHR5cGUgKi8KKyAgICBpbnQgbnVtOwkJLyogbnVtYmVyIG9mIHBhcnRpdGlvbiAtLSBwcmltYXJ5IHZzLiBsb2dpY2FsICovCisjZGVmaW5lIExBQkVMU1ogMTYKKyAgICBjaGFyIHZvbHVtZV9sYWJlbFtMQUJFTFNaKzFdOworI2RlZmluZSBPU1RZUEVTWiA4CisgICAgY2hhciBvc3R5cGVbT1NUWVBFU1orMV07CisjZGVmaW5lIEZTVFlQRVNaIDgKKyAgICBjaGFyIGZzdHlwZVtGU1RZUEVTWisxXTsKK30gcGFydGl0aW9uX2luZm87CisKK2NoYXIgKmRpc2tfZGV2aWNlID0gREVGQVVMVF9ERVZJQ0U7CitpbnQgZmQ7CitpbnQgY2hhbmdlZCA9IEZBTFNFOworaW50IG9wZW5lZCA9IEZBTFNFOworaW50IG9wZW50eXBlOworaW50IGN1cnNlc19zdGFydGVkID0gMDsKKworcGFydGl0aW9uX2luZm8gcF9pbmZvW01BWElNVU1fUEFSVFNdOworcGFydGl0aW9uX2luZm8gZXh0X2luZm87CitpbnQgbnVtX3BhcnRzID0gMDsKKworaW50IGxvZ2ljYWwgPSAwOworbG9uZyBsb25nIGxvZ2ljYWxfc2VjdG9yc1tNQVhJTVVNX1BBUlRTXTsKKworX19zaWdoYW5kbGVyX3Qgb2xkX1NJR0lOVCwgb2xkX1NJR1RFUk07CisKK2ludCBhcnJvd19jdXJzb3IgPSBGQUxTRTsKK2ludCBkaXNwbGF5X3VuaXRzID0gTUVHQUJZVEVTOworaW50IHplcm9fdGFibGUgPSBGQUxTRTsKK2ludCB1c2VfcGFydGl0aW9uX3RhYmxlX2dlb21ldHJ5ID0gRkFMU0U7CitpbnQgcHJpbnRfb25seSA9IDA7CisKKy8qIEN1cnNlcyBzY3JlZW4gaW5mb3JtYXRpb24gKi8KK2ludCBjdXJfcGFydCA9IDA7CitpbnQgd2FybmluZ19sYXN0X3RpbWUgPSBGQUxTRTsKK2ludCBkZWZpbmVkID0gRkFMU0U7CitpbnQgQ09MVU1OUyA9IDgwOworaW50IE5VTV9PTl9TQ1JFRU4gPSAxOworCisvKiBZIGNvb3JkaW5hdGVzICovCitpbnQgSEVBREVSX1NUQVJUID0gMDsKK2ludCBESVNLX1RBQkxFX1NUQVJUID0gNjsKK2ludCBXQVJOSU5HX1NUQVJUID0gMjM7CitpbnQgQ09NTUFORF9MSU5FX1kgPSAyMTsKKworLyogWCBjb29yZGluYXRlcyAqLworaW50IE5BTUVfU1RBUlQgPSA0OworaW50IEZMQUdTX1NUQVJUID0gMTY7CitpbnQgUFRZUEVfU1RBUlQgPSAyODsKK2ludCBGU1RZUEVfU1RBUlQgPSAzODsKK2ludCBMQUJFTF9TVEFSVCA9IDU0OworaW50IFNJWkVfU1RBUlQgPSA2ODsKK2ludCBDT01NQU5EX0xJTkVfWCA9IDU7CisKK3N0YXRpYyB2b2lkIGRpZV94KGludCByZXQpOworc3RhdGljIHZvaWQgZHJhd19zY3JlZW4odm9pZCk7CisKKy8qIEd1YXJhbnRlZWQgYWxsb2MgKi8KK3N0YXRpYyB2b2lkICoKK3htYWxsb2MgKHNpemVfdCBzaXplKSB7CisgICAgIHZvaWQgKnQ7CisKKyAgICAgaWYgKHNpemUgPT0gMCkKKyAgICAgICAgICByZXR1cm4gTlVMTDsKKworICAgICB0ID0gbWFsbG9jIChzaXplKTsKKyAgICAgaWYgKHQgPT0gTlVMTCkgeworICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwgXygiJXM6IE91dCBvZiBtZW1vcnkhXG4iKSwgImNmZGlzayIpOworCSAgZGllX3goMSk7CisgICAgIH0KKyAgICAgcmV0dXJuIHQ7Cit9CisKKy8qIFNvbWUgbGliYydzIGhhdmUgdGhlaXIgb3duIGJhc2VuYW1lKCkgKi8KK3N0YXRpYyBjaGFyICoKK215X2Jhc2VuYW1lKGNoYXIgKmRldm5hbWUpIHsKKyAgICBjaGFyICpzID0gc3RycmNocihkZXZuYW1lLCAnLycpOworICAgIHJldHVybiBzID8gcysxIDogZGV2bmFtZTsKK30KKworc3RhdGljIGNoYXIgKgorcGFydGl0aW9uX3R5cGVfbmFtZSh1bnNpZ25lZCBjaGFyIHR5cGUpIHsKKyAgICBzdHJ1Y3Qgc3lzdHlwZXMgKnMgPSBpMzg2X3N5c190eXBlczsKKworICAgIHdoaWxlKHMtPm5hbWUgJiYgcy0+dHlwZSAhPSB0eXBlKQorCSAgICBzKys7CisgICAgcmV0dXJuIHMtPm5hbWU7Cit9CisKK3N0YXRpYyBjaGFyICoKK3BhcnRpdGlvbl90eXBlX3RleHQoaW50IGkpIHsKKyAgICBpZiAocF9pbmZvW2ldLmlkID09IFVOVVNBQkxFKQorCSByZXR1cm4gXygiVW51c2FibGUiKTsKKyAgICBlbHNlIGlmIChwX2luZm9baV0uaWQgPT0gRlJFRV9TUEFDRSkKKwkgcmV0dXJuIF8oIkZyZWUgU3BhY2UiKTsKKyAgICBlbHNlIGlmIChwX2luZm9baV0uaWQgPT0gTElOVVgpIHsKKwkgaWYgKCFzdHJjbXAocF9pbmZvW2ldLmZzdHlwZSwgImV4dDIiKSkKKwkgICAgICByZXR1cm4gXygiTGludXggZXh0MiIpOworCSBlbHNlIGlmICghc3RyY21wKHBfaW5mb1tpXS5mc3R5cGUsICJleHQzIikpCisJICAgICAgcmV0dXJuIF8oIkxpbnV4IGV4dDMiKTsKKwkgZWxzZSBpZiAoIXN0cmNtcChwX2luZm9baV0uZnN0eXBlLCAieGZzIikpCisJICAgICAgcmV0dXJuIF8oIkxpbnV4IFhGUyIpOworCSBlbHNlIGlmICghc3RyY21wKHBfaW5mb1tpXS5mc3R5cGUsICJqZnMiKSkKKwkgICAgICByZXR1cm4gXygiTGludXggSkZTIik7CisJIGVsc2UgaWYgKCFzdHJjbXAocF9pbmZvW2ldLmZzdHlwZSwgInJlaXNlcmZzIikpCisJICAgICAgcmV0dXJuIF8oIkxpbnV4IFJlaXNlckZTIik7CisJIGVsc2UKKwkgICAgICByZXR1cm4gXygiTGludXgiKTsKKyAgICB9IGVsc2UgaWYgKHBfaW5mb1tpXS5pZCA9PSBPUzJfT1JfTlRGUykgeworCSBpZiAoIXN0cm5jbXAocF9pbmZvW2ldLmZzdHlwZSwgIkhQRlMiLCA0KSkKKwkgICAgICByZXR1cm4gXygiT1MvMiBIUEZTIik7CisJIGVsc2UgaWYgKCFzdHJuY21wKHBfaW5mb1tpXS5vc3R5cGUsICJPUzIiLCAzKSkKKwkgICAgICByZXR1cm4gXygiT1MvMiBJRlMiKTsKKwkgZWxzZSBpZiAoIXBfaW5mb1tpXS5vc3R5cGUpCisJICAgICAgcmV0dXJuIHBfaW5mb1tpXS5vc3R5cGU7CisJIGVsc2UKKwkgICAgICByZXR1cm4gXygiTlRGUyIpOworICAgIH0gZWxzZQorCSByZXR1cm4gXyhwYXJ0aXRpb25fdHlwZV9uYW1lKHBfaW5mb1tpXS5pZCkpOworfQorCitzdGF0aWMgdm9pZAorZmRleGl0KGludCByZXQpIHsKKyAgICBpZiAob3BlbmVkKSB7CisJaWYgKGNoYW5nZWQpCisJCWZzeW5jKGZkKTsKKwljbG9zZShmZCk7CisgICAgfQorICAgIGlmIChjaGFuZ2VkKSB7CisJZnByaW50ZihzdGRlcnIsIF8oIkRpc2sgaGFzIGJlZW4gY2hhbmdlZC5cbiIpKTsKKyNpZiAwCisJZnByaW50ZihzdGRlcnIsIF8oIlJlYm9vdCB0aGUgc3lzdGVtIHRvIGVuc3VyZSB0aGUgcGFydGl0aW9uICIKKwkJCSJ0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIpKTsKKyNlbmRpZgorCisJZnByaW50Ziggc3RkZXJyLCBfKCJcbldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55XG4iCisJCSAgICAgICAgICJET1MgNi54IHBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGNmZGlzayBtYW51YWxcbiIKKwkJICAgICAgICAgInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iKSApOworICAgIH0KKworICAgIGV4aXQocmV0KTsKK30KKworc3RhdGljIGludAorZ2V0X3N0cmluZyhjaGFyICpzdHIsIGludCBsZW4sIGNoYXIgKmRlZikgeworICAgIHVuc2lnbmVkIGNoYXIgYzsKKyAgICBpbnQgaSA9IDA7CisgICAgaW50IHgsIHk7CisgICAgaW50IHVzZV9kZWYgPSBGQUxTRTsKKworICAgIGdldHl4KHN0ZHNjciwgeSwgeCk7CisgICAgY2xydG9lb2woKTsKKworICAgIHN0cltpXSA9IDA7CisKKyAgICBpZiAoZGVmICE9IE5VTEwpIHsKKwltdmFkZHN0cih5LCB4LCBkZWYpOworCW1vdmUoeSwgeCk7CisJdXNlX2RlZiA9IFRSVUU7CisgICAgfQorCisgICAgcmVmcmVzaCgpOworICAgIHdoaWxlICgoYyA9IGdldGNoKCkpICE9ICdcbicgJiYgYyAhPSBDUikgeworCXN3aXRjaCAoYykgeworCWNhc2UgRVNDOgorCSAgICBtb3ZlKHksIHgpOworCSAgICBjbHJ0b2VvbCgpOworCSAgICByZWZyZXNoKCk7CisJICAgIHJldHVybiBHU19FU0NBUEU7CisJY2FzZSBERUw6CisJY2FzZSAnXGInOgorCSAgICBpZiAoaSA+IDApIHsKKwkJc3RyWy0taV0gPSAwOworCQltdmFkZGNoKHksIHgraSwgJyAnKTsKKwkJbW92ZSh5LCB4K2kpOworCSAgICB9IGVsc2UgaWYgKHVzZV9kZWYpIHsKKwkJY2xydG9lb2woKTsKKwkJdXNlX2RlZiA9IEZBTFNFOworCSAgICB9IGVsc2UKKwkJcHV0Y2hhcihCRUxMKTsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgaWYgKGkgPCBsZW4gJiYgaXNwcmludChjKSkgeworCQltdmFkZGNoKHksIHgraSwgYyk7CisJCWlmICh1c2VfZGVmKSB7CisJCSAgICBjbHJ0b2VvbCgpOworCQkgICAgdXNlX2RlZiA9IEZBTFNFOworCQl9CisJCXN0cltpKytdID0gYzsKKwkJc3RyW2ldID0gMDsKKwkgICAgfSBlbHNlCisJCXB1dGNoYXIoQkVMTCk7CisJfQorCXJlZnJlc2goKTsKKyAgICB9CisKKyAgICBpZiAodXNlX2RlZikKKwlyZXR1cm4gR1NfREVGQVVMVDsKKyAgICBlbHNlCisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyB2b2lkCitjbGVhcl93YXJuaW5nKHZvaWQpIHsKKyAgICBpbnQgaTsKKworICAgIGlmICghY3Vyc2VzX3N0YXJ0ZWQgfHwgIXdhcm5pbmdfbGFzdF90aW1lKQorCXJldHVybjsKKworICAgIG1vdmUoV0FSTklOR19TVEFSVCwwKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgQ09MUzsgaSsrKQorCWFkZGNoKCcgJyk7CisKKyAgICB3YXJuaW5nX2xhc3RfdGltZSA9IEZBTFNFOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRfd2FybmluZyhjaGFyICpzKSB7CisgICAgaWYgKCFjdXJzZXNfc3RhcnRlZCkgeworCSBmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBzKTsKKyAgICB9IGVsc2UgeworCW12YWRkc3RyKFdBUk5JTkdfU1RBUlQsIChDT0xTLXN0cmxlbihzKSkvMiwgcyk7CisJcHV0Y2hhcihCRUxMKTsgLyogQ1RSTC1HICovCisKKwl3YXJuaW5nX2xhc3RfdGltZSA9IFRSVUU7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorZmF0YWwoY2hhciAqcywgaW50IHJldCkgeworICAgIGNoYXIgKmVycjEgPSBfKCJGQVRBTCBFUlJPUiIpOworICAgIGNoYXIgKmVycjIgPSBfKCJQcmVzcyBhbnkga2V5IHRvIGV4aXQgY2ZkaXNrIik7CisKKyAgICBpZiAoY3Vyc2VzX3N0YXJ0ZWQpIHsKKwkgY2hhciAqc3RyID0geG1hbGxvYyhzdHJsZW4ocykgKyBzdHJsZW4oZXJyMSkgKyBzdHJsZW4oZXJyMikgKyAxMCk7CisKKwkgc3ByaW50ZihzdHIsICIlczogJXMiLCBlcnIxLCBzKTsKKwkgaWYgKHN0cmxlbihzdHIpID4gQ09MUykKKwkgICAgIHN0cltDT0xTXSA9IDA7CisJIG12YWRkc3RyKFdBUk5JTkdfU1RBUlQsIChDT0xTLXN0cmxlbihzdHIpKS8yLCBzdHIpOworCSBzcHJpbnRmKHN0ciwgIiVzIiwgZXJyMik7CisJIGlmIChzdHJsZW4oc3RyKSA+IENPTFMpCisJICAgICBzdHJbQ09MU10gPSAwOworCSBtdmFkZHN0cihXQVJOSU5HX1NUQVJUKzEsIChDT0xTLXN0cmxlbihzdHIpKS8yLCBzdHIpOworCSBwdXRjaGFyKEJFTEwpOyAvKiBDVFJMLUcgKi8KKwkgcmVmcmVzaCgpOworCSAodm9pZClnZXRjaCgpOworCSBkaWVfeChyZXQpOworICAgIH0gZWxzZSB7CisJIGZwcmludGYoc3RkZXJyLCAiJXM6ICVzXG4iLCBlcnIxLCBzKTsKKwkgZXhpdChyZXQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK2RpZShpbnQgZHVtbXkpIHsKKyAgICBkaWVfeCgwKTsKK30KKworc3RhdGljIHZvaWQKK2RpZV94KGludCByZXQpIHsKKyAgICBzaWduYWwoU0lHSU5ULCBvbGRfU0lHSU5UKTsKKyAgICBzaWduYWwoU0lHVEVSTSwgb2xkX1NJR1RFUk0pOworI2lmIGRlZmluZWQoSEFWRV9TTENVUlNFU19IKSB8fCBkZWZpbmVkKEhBVkVfU0xBTkdfU0xDVVJTRVNfSCkKKyAgICBTTHNtZ19nb3RvcmMoTElORVMtMSwgMCk7CisgICAgU0xzbWdfcmVmcmVzaCgpOworI2Vsc2UKKyAgICBtdmN1cigwLCBDT0xTLTEsIExJTkVTLTEsIDApOworI2VuZGlmCisgICAgbmwoKTsKKyAgICBlbmR3aW4oKTsKKyAgICBwcmludGYoIlxuIik7CisgICAgZmRleGl0KHJldCk7Cit9CisKK3N0YXRpYyB2b2lkCityZWFkX3NlY3Rvcih1bnNpZ25lZCBjaGFyICpidWZmZXIsIGxvbmcgbG9uZyBzZWN0X251bSkgeworICAgIGlmIChsc2VlayhmZCwgc2VjdF9udW0qU0VDVE9SX1NJWkUsIFNFRUtfU0VUKSA8IDApCisJZmF0YWwoXygiQ2Fubm90IHNlZWsgb24gZGlzayBkcml2ZSIpLCAyKTsKKyAgICBpZiAocmVhZChmZCwgYnVmZmVyLCBTRUNUT1JfU0laRSkgIT0gU0VDVE9SX1NJWkUpCisJZmF0YWwoXygiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIpLCAyKTsKK30KKworc3RhdGljIHZvaWQKK3dyaXRlX3NlY3Rvcih1bnNpZ25lZCBjaGFyICpidWZmZXIsIGxvbmcgbG9uZyBzZWN0X251bSkgeworICAgIGlmIChsc2VlayhmZCwgc2VjdF9udW0qU0VDVE9SX1NJWkUsIFNFRUtfU0VUKSA8IDApCisJZmF0YWwoXygiQ2Fubm90IHNlZWsgb24gZGlzayBkcml2ZSIpLCAyKTsKKyAgICBpZiAod3JpdGUoZmQsIGJ1ZmZlciwgU0VDVE9SX1NJWkUpICE9IFNFQ1RPUl9TSVpFKQorCWZhdGFsKF8oIkNhbm5vdCB3cml0ZSBkaXNrIGRyaXZlIiksIDIpOworfQorCitzdGF0aWMgdm9pZAorZG9zX2NvcHlfdG9faW5mbyhjaGFyICp0bywgaW50IHRvc3osIGNoYXIgKmZyb20sIGludCBmcm9tc3opIHsKKyAgICAgaW50IGk7CisKKyAgICAgZm9yKGk9MDsgaTx0b3N6ICYmIGk8ZnJvbXN6ICYmIGlzYXNjaWkoZnJvbVtpXSk7IGkrKykKKwkgIHRvW2ldID0gZnJvbVtpXTsKKyAgICAgdG9baV0gPSAwOworfQorCitzdGF0aWMgdm9pZAorZ2V0X2Rvc19sYWJlbChpbnQgaSkgeworCWNoYXIgc2VjdG9yWzEyOF07CisjZGVmaW5lIERPU19PU1RZUEVfT0ZGU0VUIDMKKyNkZWZpbmUgRE9TX0xBQkVMX09GRlNFVCA0MworI2RlZmluZSBET1NfRlNUWVBFX09GRlNFVCA1NAorI2RlZmluZSBET1NfT1NUWVBFX1NaIDgKKyNkZWZpbmUgRE9TX0xBQkVMX1NaIDExCisjZGVmaW5lIERPU19GU1RZUEVfU1ogOAorCWxvbmcgbG9uZyBvZmZzZXQ7CisKKwlvZmZzZXQgPSAocF9pbmZvW2ldLmZpcnN0X3NlY3RvciArIHBfaW5mb1tpXS5vZmZzZXQpICogU0VDVE9SX1NJWkU7CisJaWYgKGxzZWVrKGZkLCBvZmZzZXQsIFNFRUtfU0VUKSA9PSBvZmZzZXQKKwkgICAgJiYgcmVhZChmZCwgJnNlY3Rvciwgc2l6ZW9mKHNlY3RvcikpID09IHNpemVvZihzZWN0b3IpKSB7CisJCWRvc19jb3B5X3RvX2luZm8ocF9pbmZvW2ldLm9zdHlwZSwgT1NUWVBFU1osCisJCQkJIHNlY3RvcitET1NfT1NUWVBFX09GRlNFVCwgRE9TX09TVFlQRV9TWik7CisJCWRvc19jb3B5X3RvX2luZm8ocF9pbmZvW2ldLnZvbHVtZV9sYWJlbCwgTEFCRUxTWiwKKwkJCQkgc2VjdG9yK0RPU19MQUJFTF9PRkZTRVQsIERPU19MQUJFTF9TWik7CisJCWRvc19jb3B5X3RvX2luZm8ocF9pbmZvW2ldLmZzdHlwZSwgRlNUWVBFU1osCisJCQkJIHNlY3RvcitET1NfRlNUWVBFX09GRlNFVCwgRE9TX0ZTVFlQRV9TWik7CisJfQorfQorCisjZGVmaW5lIFJFSVNFUkZTX1NVUEVSX01BR0lDX1NUUklORyAiUmVJc0VyRnMiCisjZGVmaW5lIFJFSVNFUjJGU19TVVBFUl9NQUdJQ19TVFJJTkcgIlJlSXNFcjJGcyIKK3N0cnVjdCByZWlzZXJmc19zdXBlcl9ibG9jayB7CisJY2hhciBzX2R1bW15MFs1Ml07CisJY2hhciBzX21hZ2ljIFsxMF07CisJY2hhciBzX2R1bW15MVszOF07CisJdV9jaGFyIHNfbGFiZWxbMTZdOworfTsKKyNkZWZpbmUgUkVJU0VSRlNMQUJFTFNaIHNpemVvZihyZWlzZXJmc2Iuc19sYWJlbCkKKworc3RhdGljIGludAoraGFzX3JlaXNlcmZzX21hZ2ljX3N0cmluZyhjb25zdCBzdHJ1Y3QgcmVpc2VyZnNfc3VwZXJfYmxvY2sgKnJzLCBpbnQgKmlzXzNfNikgeworCWlmICghc3RybmNtcChycy0+c19tYWdpYywgUkVJU0VSRlNfU1VQRVJfTUFHSUNfU1RSSU5HLAorCQkgICAgIHN0cmxlbihSRUlTRVJGU19TVVBFUl9NQUdJQ19TVFJJTkcpKSkgeworCQkqaXNfM182ID0gMDsKKwkJcmV0dXJuIDE7CisJfQorCWlmICghc3RybmNtcChycy0+c19tYWdpYywgUkVJU0VSMkZTX1NVUEVSX01BR0lDX1NUUklORywKKwkJICAgICBzdHJsZW4oUkVJU0VSMkZTX1NVUEVSX01BR0lDX1NUUklORykpKSB7CisJCSppc18zXzYgPSAxOworCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitnZXRfbGludXhfbGFiZWwoaW50IGkpIHsKKworI2RlZmluZSBFWFQyTEFCRUxTWiAxNgorI2RlZmluZSBFWFQyX1NVUEVSX01BR0lDIDB4RUY1MworI2RlZmluZSBFWFQzX0ZFQVRVUkVfQ09NUEFUX0hBU19KT1VSTkFMIDB4MDAwNAorCXN0cnVjdCBleHQyX3N1cGVyX2Jsb2NrIHsKKwkJY2hhciAgc19kdW1teTBbNTZdOworCQl1bnNpZ25lZCBjaGFyICBzX21hZ2ljWzJdOworCQljaGFyICBzX2R1bW15MVszNF07CisJCXVuc2lnbmVkIGNoYXIgIHNfZmVhdHVyZV9jb21wYXRbNF07CisJCWNoYXIgIHNfZHVtbXkyWzI0XTsKKwkJY2hhciAgc192b2x1bWVfbmFtZVtFWFQyTEFCRUxTWl07CisJCWNoYXIgIHNfbGFzdF9tb3VudGVkWzY0XTsKKwkJY2hhciAgc19kdW1teTNbODI0XTsKKwl9IGUyZnNiOworCisjZGVmaW5lIFJFSVNFUkZTX0RJU0tfT0ZGU0VUX0lOX0JZVEVTICg2NCAqIDEwMjQpCisJc3RydWN0IHJlaXNlcmZzX3N1cGVyX2Jsb2NrIHJlaXNlcmZzYjsKKwlpbnQgcmVpc2VyZnNfaXNfM182OworCisjZGVmaW5lIEpGU19TVVBFUjFfT0ZGCTB4ODAwMAorI2RlZmluZSBKRlNfTUFHSUMJIkpGUzEiCisjZGVmaW5lIEpGU0xBQkVMU1oJMTYKKwlzdHJ1Y3QgamZzX3N1cGVyX2Jsb2NrIHsKKwkJY2hhciAgICBzX21hZ2ljWzRdOworCQl1X2NoYXIgIHNfdmVyc2lvbls0XTsKKwkJdV9jaGFyICBzX2R1bW15MVs5M107CisJCWNoYXIgICAgc19mcGFja1sxMV07CisJCXVfY2hhciAgc19kdW1teTJbMjRdOworCQl1X2NoYXIgIHNfdXVpZFsxNl07CisJCWNoYXIgICAgc19sYWJlbFtKRlNMQUJFTFNaXTsKKwl9IGpmc2I7CisKKyNkZWZpbmUgWEZTX1NVUEVSX01BR0lDICJYRlNCIgorI2RlZmluZSBYRlNMQUJFTFNaIDEyCisJc3RydWN0IHhmc19zdXBlcl9ibG9jayB7CisJCXVuc2lnbmVkIGNoYXIgICBzX21hZ2ljWzRdOworCQl1bnNpZ25lZCBjaGFyICAgc19kdW1teTBbMTA0XTsKKwkJdW5zaWduZWQgY2hhciAgIHNfZm5hbWVbWEZTTEFCRUxTWl07CisJCXVuc2lnbmVkIGNoYXIgICBzX2R1bW15MVs5MDRdOworCX0geGZzYjsKKworCWNoYXIgKmxhYmVsOworCWxvbmcgbG9uZyBvZmZzZXQ7CisJaW50IGo7CisKKwlvZmZzZXQgPSAocF9pbmZvW2ldLmZpcnN0X3NlY3RvciArIHBfaW5mb1tpXS5vZmZzZXQpICogU0VDVE9SX1NJWkUKKwkJKyAxMDI0OworCWlmIChsc2VlayhmZCwgb2Zmc2V0LCBTRUVLX1NFVCkgPT0gb2Zmc2V0CisJICAgICYmIHJlYWQoZmQsICZlMmZzYiwgc2l6ZW9mKGUyZnNiKSkgPT0gc2l6ZW9mKGUyZnNiKQorCSAgICAmJiBlMmZzYi5zX21hZ2ljWzBdICsgKGUyZnNiLnNfbWFnaWNbMV08PDgpID09IEVYVDJfU1VQRVJfTUFHSUMpIHsKKwkJbGFiZWwgPSBlMmZzYi5zX3ZvbHVtZV9uYW1lOworCQlmb3Ioaj0wOyBqPEVYVDJMQUJFTFNaICYmIGo8TEFCRUxTWiAmJiBpc3ByaW50KGxhYmVsW2pdKTsgaisrKQorCQkJcF9pbmZvW2ldLnZvbHVtZV9sYWJlbFtqXSA9IGxhYmVsW2pdOworCQlwX2luZm9baV0udm9sdW1lX2xhYmVsW2pdID0gMDsKKwkJLyogZXh0MiBvciBleHQzPyAqLworCQlpZiAoZTJmc2Iuc19mZWF0dXJlX2NvbXBhdFswXSZFWFQzX0ZFQVRVUkVfQ09NUEFUX0hBU19KT1VSTkFMKQorCQkJc3RybmNweShwX2luZm9baV0uZnN0eXBlLCAiZXh0MyIsIEZTVFlQRVNaKTsKKwkJZWxzZQorCQkJc3RybmNweShwX2luZm9baV0uZnN0eXBlLCAiZXh0MiIsIEZTVFlQRVNaKTsKKwkJcmV0dXJuOworCX0KKworCW9mZnNldCA9IChwX2luZm9baV0uZmlyc3Rfc2VjdG9yICsgcF9pbmZvW2ldLm9mZnNldCkgKiBTRUNUT1JfU0laRSArIDA7CisJaWYgKGxzZWVrKGZkLCBvZmZzZXQsIFNFRUtfU0VUKSA9PSBvZmZzZXQKKwkgICAgJiYgcmVhZChmZCwgJnhmc2IsIHNpemVvZih4ZnNiKSkgPT0gc2l6ZW9mKHhmc2IpCisJICAgICYmICFzdHJuY21wKChjaGFyICopIHhmc2Iuc19tYWdpYywgWEZTX1NVUEVSX01BR0lDLCA0KSkgeworCQlsYWJlbCA9IChjaGFyICopIHhmc2Iuc19mbmFtZTsKKwkJZm9yKGo9MDsgajxYRlNMQUJFTFNaICYmIGo8TEFCRUxTWiAmJiBpc3ByaW50KGxhYmVsW2pdKTsgaisrKQorCQkJcF9pbmZvW2ldLnZvbHVtZV9sYWJlbFtqXSA9IGxhYmVsW2pdOworCQlwX2luZm9baV0udm9sdW1lX2xhYmVsW2pdID0gMDsKKwkJc3RybmNweShwX2luZm9baV0uZnN0eXBlLCAieGZzIiwgRlNUWVBFU1opOworCQlyZXR1cm47CisJfQorCisJLyogamZzPyAqLworCW9mZnNldCA9IChwX2luZm9baV0uZmlyc3Rfc2VjdG9yICsgcF9pbmZvW2ldLm9mZnNldCkgKiBTRUNUT1JfU0laRQorCQkrIEpGU19TVVBFUjFfT0ZGOworCWlmIChsc2VlayhmZCwgb2Zmc2V0LCBTRUVLX1NFVCkgPT0gb2Zmc2V0CisJICAgICYmIHJlYWQoZmQsICZqZnNiLCBzaXplb2YoamZzYikpID09IHNpemVvZihqZnNiKQorCSAgICAmJiAhc3RybmNtcChqZnNiLnNfbWFnaWMsIEpGU19NQUdJQywgc3RybGVuKEpGU19NQUdJQykpKSB7CisJCWxhYmVsID0gamZzYi5zX2xhYmVsOworCQlmb3Ioaj0wOyBqPEpGU0xBQkVMU1ogJiYgajxMQUJFTFNaICYmIGlzcHJpbnQobGFiZWxbal0pOyBqKyspCisJCQlwX2luZm9baV0udm9sdW1lX2xhYmVsW2pdID0gbGFiZWxbal07CisJCXBfaW5mb1tpXS52b2x1bWVfbGFiZWxbal0gPSAwOworCQlzdHJuY3B5KHBfaW5mb1tpXS5mc3R5cGUsICJqZnMiLCBGU1RZUEVTWik7CisJCXJldHVybjsKKwl9CisKKwkvKiByZWlzZXJmcz8gKi8KKwlvZmZzZXQgPSAocF9pbmZvW2ldLmZpcnN0X3NlY3RvciArIHBfaW5mb1tpXS5vZmZzZXQpICogU0VDVE9SX1NJWkUKKwkJKyBSRUlTRVJGU19ESVNLX09GRlNFVF9JTl9CWVRFUzsKKwlpZiAobHNlZWsoZmQsIG9mZnNldCwgU0VFS19TRVQpID09IG9mZnNldAorCSAgICAmJiByZWFkKGZkLCAmcmVpc2VyZnNiLCBzaXplb2YocmVpc2VyZnNiKSkgPT0gc2l6ZW9mKHJlaXNlcmZzYikKKwkgICAgJiYgaGFzX3JlaXNlcmZzX21hZ2ljX3N0cmluZygmcmVpc2VyZnNiLCAmcmVpc2VyZnNfaXNfM182KSkgeworCQlpZiAocmVpc2VyZnNfaXNfM182KSB7CisJCQkvKiBsYWJlbCBvbmx5IG9uIHZlcnNpb24gMy42IG9ud2FyZCAqLworCQkJbGFiZWwgPSAoY2hhciAqKSByZWlzZXJmc2Iuc19sYWJlbDsKKwkJCWZvcihqPTA7IGo8UkVJU0VSRlNMQUJFTFNaICYmIGo8TEFCRUxTWiAmJgorCQkJCSAgICBpc3ByaW50KGxhYmVsW2pdKTsgaisrKQorCQkJCXBfaW5mb1tpXS52b2x1bWVfbGFiZWxbal0gPSBsYWJlbFtqXTsKKwkJCXBfaW5mb1tpXS52b2x1bWVfbGFiZWxbal0gPSAwOworCQl9CisJCXN0cm5jcHkocF9pbmZvW2ldLmZzdHlwZSwgInJlaXNlcmZzIiwgRlNUWVBFU1opOworCQlyZXR1cm47CisJfQorfQorCitzdGF0aWMgdm9pZAorY2hlY2tfcGFydF9pbmZvKHZvaWQpIHsKKyAgICBpbnQgaSwgcHJpID0gMCwgbG9nID0gMDsKKworICAgIGZvciAoaSA9IDA7IGkgPCBudW1fcGFydHM7IGkrKykKKwlpZiAocF9pbmZvW2ldLmlkID4gMCAmJiBJU19QUklNQVJZKHBfaW5mb1tpXS5udW0pKQorCSAgICBwcmkrKzsKKwllbHNlIGlmIChwX2luZm9baV0uaWQgPiAwICYmIElTX0xPR0lDQUwocF9pbmZvW2ldLm51bSkpCisJICAgIGxvZysrOworICAgIGlmIChpc19leHRlbmRlZChleHRfaW5mby5pZCkpIHsKKwlpZiAobG9nID4gMCkKKwkgICAgcHJpKys7CisJZWxzZSB7CisJICAgIGV4dF9pbmZvLmZpcnN0X3NlY3RvciA9IDA7CisJICAgIGV4dF9pbmZvLmxhc3Rfc2VjdG9yID0gMDsKKwkgICAgZXh0X2luZm8ub2Zmc2V0ID0gMDsKKwkgICAgZXh0X2luZm8uZmxhZ3MgPSAwOworCSAgICBleHRfaW5mby5pZCA9IEZSRUVfU1BBQ0U7CisJICAgIGV4dF9pbmZvLm51bSA9IFBSSU1BUlk7CisJfQorICAgIH0KKworICAgIGlmIChwcmkgPj0gNCkgeworCWZvciAoaSA9IDA7IGkgPCBudW1fcGFydHM7IGkrKykKKwkgICAgaWYgKHBfaW5mb1tpXS5pZCA9PSBGUkVFX1NQQUNFIHx8IHBfaW5mb1tpXS5pZCA9PSBVTlVTQUJMRSkgeworCQlpZiAoaXNfZXh0ZW5kZWQoZXh0X2luZm8uaWQpKSB7CisJCSAgICBpZiAocF9pbmZvW2ldLmZpcnN0X3NlY3RvciA+PSBleHRfaW5mby5maXJzdF9zZWN0b3IgJiYKKwkJCXBfaW5mb1tpXS5sYXN0X3NlY3RvciA8PSBleHRfaW5mby5sYXN0X3NlY3RvcikgeworCQkJcF9pbmZvW2ldLmlkID0gRlJFRV9TUEFDRTsKKwkJCXBfaW5mb1tpXS5udW0gPSBMT0dJQ0FMOworCQkgICAgfSBlbHNlIGlmIChpID4gMCAmJgorCQkJICAgICAgIHBfaW5mb1tpLTFdLmZpcnN0X3NlY3RvciA+PQorCQkJICAgICAgIGV4dF9pbmZvLmZpcnN0X3NlY3RvciAmJgorCQkJICAgICAgIHBfaW5mb1tpLTFdLmxhc3Rfc2VjdG9yIDw9CisJCQkgICAgICAgZXh0X2luZm8ubGFzdF9zZWN0b3IpIHsKKwkJCXBfaW5mb1tpXS5pZCA9IEZSRUVfU1BBQ0U7CisJCQlwX2luZm9baV0ubnVtID0gTE9HSUNBTDsKKwkJICAgIH0gZWxzZSBpZiAoaSA8IG51bV9wYXJ0cy0xICYmCisJCQkgICAgICAgcF9pbmZvW2krMV0uZmlyc3Rfc2VjdG9yID49CisJCQkgICAgICAgZXh0X2luZm8uZmlyc3Rfc2VjdG9yICYmCisJCQkgICAgICAgcF9pbmZvW2krMV0ubGFzdF9zZWN0b3IgPD0KKwkJCSAgICAgICBleHRfaW5mby5sYXN0X3NlY3RvcikgeworCQkJcF9pbmZvW2ldLmlkID0gRlJFRV9TUEFDRTsKKwkJCXBfaW5mb1tpXS5udW0gPSBMT0dJQ0FMOworCQkgICAgfSBlbHNlCisJCQlwX2luZm9baV0uaWQgPSBVTlVTQUJMRTsKKwkJfSBlbHNlIC8qIGlmICghaXNfZXh0ZW5kZWQoZXh0X2luZm8uaWQpKSAqLworCQkgICAgcF9pbmZvW2ldLmlkID0gVU5VU0FCTEU7CisJICAgIH0gZWxzZSAvKiBpZiAocF9pbmZvW2ldLmlkID4gMCkgKi8KKwkJd2hpbGUgKDApOyAvKiBMZWF2ZSB0aGVzZSBhbG9uZSAqLworICAgIH0gZWxzZSB7IC8qIGlmIChwcmkgPCA0KSAqLworCWZvciAoaSA9IDA7IGkgPCBudW1fcGFydHM7IGkrKykgeworCSAgICBpZiAocF9pbmZvW2ldLmlkID09IFVOVVNBQkxFKQorCQlwX2luZm9baV0uaWQgPSBGUkVFX1NQQUNFOworCSAgICBpZiAocF9pbmZvW2ldLmlkID09IEZSRUVfU1BBQ0UpIHsKKwkJaWYgKGlzX2V4dGVuZGVkKGV4dF9pbmZvLmlkKSkgeworCQkgICAgaWYgKHBfaW5mb1tpXS5maXJzdF9zZWN0b3IgPj0gZXh0X2luZm8uZmlyc3Rfc2VjdG9yICYmCisJCQlwX2luZm9baV0ubGFzdF9zZWN0b3IgPD0gZXh0X2luZm8ubGFzdF9zZWN0b3IpCisJCQlwX2luZm9baV0ubnVtID0gTE9HSUNBTDsKKwkJICAgIGVsc2UgaWYgKGkgPiAwICYmCisJCQkgICAgIHBfaW5mb1tpLTFdLmZpcnN0X3NlY3RvciA+PQorCQkJICAgICBleHRfaW5mby5maXJzdF9zZWN0b3IgJiYKKwkJCSAgICAgcF9pbmZvW2ktMV0ubGFzdF9zZWN0b3IgPD0KKwkJCSAgICAgZXh0X2luZm8ubGFzdF9zZWN0b3IpCisJCQlwX2luZm9baV0ubnVtID0gUFJJX09SX0xPRzsKKwkJICAgIGVsc2UgaWYgKGkgPCBudW1fcGFydHMtMSAmJgorCQkJICAgICBwX2luZm9baSsxXS5maXJzdF9zZWN0b3IgPj0KKwkJCSAgICAgZXh0X2luZm8uZmlyc3Rfc2VjdG9yICYmCisJCQkgICAgIHBfaW5mb1tpKzFdLmxhc3Rfc2VjdG9yIDw9CisJCQkgICAgIGV4dF9pbmZvLmxhc3Rfc2VjdG9yKQorCQkJcF9pbmZvW2ldLm51bSA9IFBSSV9PUl9MT0c7CisJCSAgICBlbHNlCisJCQlwX2luZm9baV0ubnVtID0gUFJJTUFSWTsKKwkJfSBlbHNlIC8qIGlmICghaXNfZXh0ZW5kZWQoZXh0X2luZm8uaWQpKSAqLworCQkgICAgcF9pbmZvW2ldLm51bSA9IFBSSV9PUl9MT0c7CisJICAgIH0gZWxzZSAvKiBpZiAocF9pbmZvW2ldLmlkID4gMCkgKi8KKwkJd2hpbGUgKDApOyAvKiBMZWF2ZSB0aGVzZSBhbG9uZSAqLworCX0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCityZW1vdmVfcGFydChpbnQgaSkgeworICAgIGludCBwOworCisgICAgZm9yIChwID0gaTsgcCA8IG51bV9wYXJ0czsgcCsrKQorCXBfaW5mb1twXSA9IHBfaW5mb1twKzFdOworCisgICAgbnVtX3BhcnRzLS07CisgICAgaWYgKGN1cl9wYXJ0ID09IG51bV9wYXJ0cykKKwljdXJfcGFydC0tOworfQorCitzdGF0aWMgdm9pZAoraW5zZXJ0X2VtcHR5X3BhcnQoaW50IGksIGxvbmcgbG9uZyBmaXJzdCwgbG9uZyBsb25nIGxhc3QpIHsKKyAgICBpbnQgcDsKKworICAgIGZvciAocCA9IG51bV9wYXJ0czsgcCA+IGk7IHAtLSkKKwkgcF9pbmZvW3BdID0gcF9pbmZvW3AtMV07CisKKyAgICBwX2luZm9baV0uZmlyc3Rfc2VjdG9yID0gZmlyc3Q7CisgICAgcF9pbmZvW2ldLmxhc3Rfc2VjdG9yID0gbGFzdDsKKyAgICBwX2luZm9baV0ub2Zmc2V0ID0gMDsKKyAgICBwX2luZm9baV0uZmxhZ3MgPSAwOworICAgIHBfaW5mb1tpXS5pZCA9IEZSRUVfU1BBQ0U7CisgICAgcF9pbmZvW2ldLm51bSA9IFBSSV9PUl9MT0c7CisgICAgcF9pbmZvW2ldLnZvbHVtZV9sYWJlbFswXSA9IDA7CisgICAgcF9pbmZvW2ldLmZzdHlwZVswXSA9IDA7CisgICAgcF9pbmZvW2ldLm9zdHlwZVswXSA9IDA7CisKKyAgICBudW1fcGFydHMrKzsKK30KKworc3RhdGljIHZvaWQKK2RlbF9wYXJ0KGludCBpKSB7CisgICAgaW50IG51bSA9IHBfaW5mb1tpXS5udW07CisKKyAgICBpZiAoaSA+IDAgJiYgKHBfaW5mb1tpLTFdLmlkID09IEZSRUVfU1BBQ0UgfHwKKwkJICBwX2luZm9baS0xXS5pZCA9PSBVTlVTQUJMRSkpIHsKKwkvKiBNZXJnZSB3aXRoIHByZXZpb3VzIHBhcnRpdGlvbiAqLworCXBfaW5mb1tpLTFdLmxhc3Rfc2VjdG9yID0gcF9pbmZvW2ldLmxhc3Rfc2VjdG9yOworCXJlbW92ZV9wYXJ0KGktLSk7CisgICAgfQorCisgICAgaWYgKGkgPCBudW1fcGFydHMgLSAxICYmIChwX2luZm9baSsxXS5pZCA9PSBGUkVFX1NQQUNFIHx8CisJCQkgICAgICBwX2luZm9baSsxXS5pZCA9PSBVTlVTQUJMRSkpIHsKKwkvKiBNZXJnZSB3aXRoIG5leHQgcGFydGl0aW9uICovCisJcF9pbmZvW2krMV0uZmlyc3Rfc2VjdG9yID0gcF9pbmZvW2ldLmZpcnN0X3NlY3RvcjsKKwlyZW1vdmVfcGFydChpKTsKKyAgICB9CisKKyAgICBpZiAoaSA+IDApCisJcF9pbmZvW2ldLmZpcnN0X3NlY3RvciA9IHBfaW5mb1tpLTFdLmxhc3Rfc2VjdG9yICsgMTsKKyAgICBlbHNlCisJcF9pbmZvW2ldLmZpcnN0X3NlY3RvciA9IDA7CisKKyAgICBpZiAoaSA8IG51bV9wYXJ0cyAtIDEpCisJcF9pbmZvW2ldLmxhc3Rfc2VjdG9yID0gcF9pbmZvW2krMV0uZmlyc3Rfc2VjdG9yIC0gMTsKKyAgICBlbHNlCisJcF9pbmZvW2ldLmxhc3Rfc2VjdG9yID0gdG90YWxfc2l6ZSAtIDE7CisKKyAgICBwX2luZm9baV0ub2Zmc2V0ID0gMDsKKyAgICBwX2luZm9baV0uZmxhZ3MgPSAwOworICAgIHBfaW5mb1tpXS5pZCA9IEZSRUVfU1BBQ0U7CisgICAgcF9pbmZvW2ldLm51bSA9IFBSSV9PUl9MT0c7CisKKyAgICBpZiAoSVNfTE9HSUNBTChudW0pKSB7CisJLyogV2UgaGF2ZSBhIGxvZ2ljYWwgcGFydGl0aW9uIC0tPiBzaHJpbmsgdGhlIGV4dGVuZGVkIHBhcnRpdGlvbgorCSAqIGlmICgxKSB0aGlzIGlzIHRoZSBmaXJzdCBsb2dpY2FsIGRyaXZlLCBvciAoMikgdGhpcyBpcyB0aGUKKwkgKiBsYXN0IGxvZ2ljYWwgZHJpdmU7IGFuZCBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGxvZ2ljYWwgZHJpdmVzCisJICogdGhlbiByZW51bWJlciB0aGUgb25lcyBhZnRlciAibnVtIi4KKwkgKi8KKwlpZiAoaSA9PSAwIHx8IChpID4gMCAmJiBJU19QUklNQVJZKHBfaW5mb1tpLTFdLm51bSkpKSB7CisJICAgIGV4dF9pbmZvLmZpcnN0X3NlY3RvciA9IHBfaW5mb1tpXS5sYXN0X3NlY3RvciArIDE7CisJICAgIGV4dF9pbmZvLm9mZnNldCA9IDA7CisJfQorCWlmIChpID09IG51bV9wYXJ0cy0xIHx8CisJICAgIChpIDwgbnVtX3BhcnRzLTEgJiYgSVNfUFJJTUFSWShwX2luZm9baSsxXS5udW0pKSkKKwkgICAgZXh0X2luZm8ubGFzdF9zZWN0b3IgPSBwX2luZm9baV0uZmlyc3Rfc2VjdG9yIC0gMTsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhcnRzOyBpKyspCisJICAgIGlmIChwX2luZm9baV0ubnVtID4gbnVtKQorCQlwX2luZm9baV0ubnVtLS07CisgICAgfQorCisgICAgLyogQ2xlYW4gdXAgdGhlIHJlc3Qgb2YgdGhlIHBhcnRpdGlvbnMgKi8KKyAgICBjaGVja19wYXJ0X2luZm8oKTsKK30KKworc3RhdGljIGludAorYWRkX3BhcnQoaW50IG51bSwgaW50IGlkLCBpbnQgZmxhZ3MsIGxvbmcgbG9uZyBmaXJzdCwgbG9uZyBsb25nIGxhc3QsCisJIGxvbmcgbG9uZyBvZmZzZXQsIGludCB3YW50X2xhYmVsLCBjaGFyICoqZXJybXNnKSB7CisgICAgaW50IGksIHByaSA9IDAsIGxvZyA9IDA7CisKKyAgICBpZiAobnVtX3BhcnRzID09IE1BWElNVU1fUEFSVFMpIHsKKwkqZXJybXNnID0gXygiVG9vIG1hbnkgcGFydGl0aW9ucyIpOworCXJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAoZmlyc3QgPCAwKSB7CisJKmVycm1zZyA9IF8oIlBhcnRpdGlvbiBiZWdpbnMgYmVmb3JlIHNlY3RvciAwIik7CisJcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChsYXN0IDwgMCkgeworCSplcnJtc2cgPSBfKCJQYXJ0aXRpb24gZW5kcyBiZWZvcmUgc2VjdG9yIDAiKTsKKwlyZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKGZpcnN0ID49IHRvdGFsX3NpemUpIHsKKwkqZXJybXNnID0gXygiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIpOworCXJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAobGFzdCA+PSBhY3R1YWxfc2l6ZSkgeworCSplcnJtc2cgPSBfKCJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIpOworCXJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAobGFzdCA+PSB0b3RhbF9zaXplKSB7CisJKmVycm1zZyA9IF8oIlBhcnRpdGlvbiBlbmRzIGluIHRoZSBmaW5hbCBwYXJ0aWFsIGN5bGluZGVyIik7CisJcmV0dXJuIC0xOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBudW1fcGFydHM7IGkrKykgeworCWlmIChwX2luZm9baV0uaWQgPiAwICYmIElTX1BSSU1BUlkocF9pbmZvW2ldLm51bSkpCisJICAgIHByaSsrOworCWVsc2UgaWYgKHBfaW5mb1tpXS5pZCA+IDAgJiYgSVNfTE9HSUNBTChwX2luZm9baV0ubnVtKSkKKwkgICAgbG9nKys7CisgICAgfQorICAgIGlmIChpc19leHRlbmRlZChleHRfaW5mby5pZCkgJiYgbG9nID4gMCkKKwlwcmkrKzsKKworICAgIGlmIChJU19QUklNQVJZKG51bSkpIHsKKwlpZiAocHJpID49IDQpIHsKKwkgICAgcmV0dXJuIC0xOwkJLyogbm8gcm9vbSBmb3IgbW9yZSAqLworCX0gZWxzZQorCSAgICBwcmkrKzsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3BhcnRzICYmIHBfaW5mb1tpXS5sYXN0X3NlY3RvciA8IGZpcnN0OyBpKyspOworCisgICAgaWYgKGkgPCBudW1fcGFydHMgJiYgcF9pbmZvW2ldLmlkICE9IEZSRUVfU1BBQ0UpIHsKKwkgaWYgKGxhc3QgPCBwX2luZm9baV0uZmlyc3Rfc2VjdG9yKQorCSAgICAgICplcnJtc2cgPSBfKCJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiKTsKKwkgZWxzZSBpZiAoZmlyc3QgKyBvZmZzZXQgPD0gcF9pbmZvW2ldLmxhc3Rfc2VjdG9yICYmCisJCSAgcF9pbmZvW2ldLmZpcnN0X3NlY3RvciArIHBfaW5mb1tpXS5vZmZzZXQgPD0gbGFzdCkKKwkgICAgICAqZXJybXNnID0gXygibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiKTsKKwkgZWxzZQorCSAgICAgIC8qIHRoZSBlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbiBzdGFydHMgYXQgdGhlCisJCSBwYXJ0aXRpb24gdGFibGUgc2VjdG9yIHRoYXQgZGVmaW5lcyBpdCAqLworCSAgICAgICplcnJtc2cgPSBfKCJlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIpOworCSByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKGkgPT0gbnVtX3BhcnRzIHx8IGxhc3QgPiBwX2luZm9baV0ubGFzdF9zZWN0b3IpIHsKKwlyZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKGlzX2V4dGVuZGVkKGlkKSkgeworCWlmIChleHRfaW5mby5pZCAhPSBGUkVFX1NQQUNFKSB7CisJICAgIHJldHVybiAtMTsJCS8qIHNlY29uZCBleHRlbmRlZCAqLworCX0KKwllbHNlIGlmIChJU19QUklNQVJZKG51bSkpIHsKKwkgICAgZXh0X2luZm8uZmlyc3Rfc2VjdG9yID0gZmlyc3Q7CisJICAgIGV4dF9pbmZvLmxhc3Rfc2VjdG9yID0gbGFzdDsKKwkgICAgZXh0X2luZm8ub2Zmc2V0ID0gb2Zmc2V0OworCSAgICBleHRfaW5mby5mbGFncyA9IGZsYWdzOworCSAgICBleHRfaW5mby5pZCA9IGlkOworCSAgICBleHRfaW5mby5udW0gPSBudW07CisJICAgIGV4dF9pbmZvLnZvbHVtZV9sYWJlbFswXSA9IDA7CisJICAgIGV4dF9pbmZvLmZzdHlwZVswXSA9IDA7CisJICAgIGV4dF9pbmZvLm9zdHlwZVswXSA9IDA7CisJICAgIHJldHVybiAwOworCX0gZWxzZSB7CisJICAgIHJldHVybiAtMTsJCS8qIGV4cGxpY2l0IGV4dGVuZGVkIGxvZ2ljYWwgKi8KKwl9CisgICAgfQorCisgICAgaWYgKElTX0xPR0lDQUwobnVtKSkgeworCWlmICghaXNfZXh0ZW5kZWQoZXh0X2luZm8uaWQpKSB7CisJICAgIHByaW50X3dhcm5pbmcoXygiISEhISBJbnRlcm5hbCBlcnJvciBjcmVhdGluZyBsb2dpY2FsICIKKwkJCSAgImRyaXZlIHdpdGggbm8gZXh0ZW5kZWQgcGFydGl0aW9uICEhISEiKSk7CisJfSBlbHNlIHsKKwkgICAgLyogV2UgbWlnaHQgaGF2ZSBhIGxvZ2ljYWwgcGFydGl0aW9uIG91dHNpZGUgb2YgdGhlIGV4dGVuZGVkCisJICAgICAqIHBhcnRpdGlvbidzIHJhbmdlIC0tPiB3ZSBoYXZlIHRvIGV4dGVuZCB0aGUgZXh0ZW5kZWQKKwkgICAgICogcGFydGl0aW9uJ3MgcmFuZ2UgdG8gZW5jb21wYXNzIHRoaXMgbmV3IHBhcnRpdGlvbiwgYnV0IHdlCisJICAgICAqIG11c3QgbWFrZSBzdXJlIHRoYXQgdGhlcmUgYXJlIG5vIHByaW1hcnkgcGFydGl0aW9ucyBiZXR3ZWVuCisJICAgICAqIGl0IGFuZCB0aGUgY2xvc2VzdCBsb2dpY2FsIGRyaXZlIGluIGV4dGVuZGVkIHBhcnRpdGlvbi4KKwkgICAgICovCisJICAgIGlmIChmaXJzdCA8IGV4dF9pbmZvLmZpcnN0X3NlY3RvcikgeworCQlpZiAoaSA8IG51bV9wYXJ0cy0xICYmIElTX1BSSU1BUlkocF9pbmZvW2krMV0ubnVtKSkgeworCQkgICAgcHJpbnRfd2FybmluZyhfKCJDYW5ub3QgY3JlYXRlIGxvZ2ljYWwgZHJpdmUgaGVyZSAtLSB3b3VsZCBjcmVhdGUgdHdvIGV4dGVuZGVkIHBhcnRpdGlvbnMiKSk7CisJCSAgICByZXR1cm4gLTE7CisJCX0gZWxzZSB7CisJCSAgICBpZiAoZmlyc3QgPT0gMCkgeworCQkJZXh0X2luZm8uZmlyc3Rfc2VjdG9yID0gMDsKKwkJCWV4dF9pbmZvLm9mZnNldCA9IGZpcnN0ID0gb2Zmc2V0OworCQkgICAgfSBlbHNlIHsKKwkJCWV4dF9pbmZvLmZpcnN0X3NlY3RvciA9IGZpcnN0OworCQkgICAgfQorCQl9CisJICAgIH0gZWxzZSBpZiAobGFzdCA+IGV4dF9pbmZvLmxhc3Rfc2VjdG9yKSB7CisJCWlmIChpID4gMCAmJiBJU19QUklNQVJZKHBfaW5mb1tpLTFdLm51bSkpIHsKKwkJICAgIHByaW50X3dhcm5pbmcoXygiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIikpOworCQkgICAgcmV0dXJuIC0xOworCQl9IGVsc2UgeworCQkgICAgZXh0X2luZm8ubGFzdF9zZWN0b3IgPSBsYXN0OworCQl9CisJICAgIH0KKwl9CisgICAgfQorCisgICAgaWYgKGZpcnN0ICE9IHBfaW5mb1tpXS5maXJzdF9zZWN0b3IgJiYKKwkhKElTX0xPR0lDQUwobnVtKSAmJiBmaXJzdCA9PSBvZmZzZXQpKSB7CisJaW5zZXJ0X2VtcHR5X3BhcnQoaSwgcF9pbmZvW2ldLmZpcnN0X3NlY3RvciwgZmlyc3QtMSk7CisJaSsrOworICAgIH0KKworICAgIGlmIChsYXN0ICE9IHBfaW5mb1tpXS5sYXN0X3NlY3RvcikKKwlpbnNlcnRfZW1wdHlfcGFydChpKzEsIGxhc3QrMSwgcF9pbmZvW2ldLmxhc3Rfc2VjdG9yKTsKKworICAgIHBfaW5mb1tpXS5maXJzdF9zZWN0b3IgPSBmaXJzdDsKKyAgICBwX2luZm9baV0ubGFzdF9zZWN0b3IgPSBsYXN0OworICAgIHBfaW5mb1tpXS5vZmZzZXQgPSBvZmZzZXQ7CisgICAgcF9pbmZvW2ldLmZsYWdzID0gZmxhZ3M7CisgICAgcF9pbmZvW2ldLmlkID0gaWQ7CisgICAgcF9pbmZvW2ldLm51bSA9IG51bTsKKyAgICBwX2luZm9baV0udm9sdW1lX2xhYmVsWzBdID0gMDsKKyAgICBwX2luZm9baV0uZnN0eXBlWzBdID0gMDsKKyAgICBwX2luZm9baV0ub3N0eXBlWzBdID0gMDsKKyAgICBpZiAod2FudF9sYWJlbCkgeworCSBpZiAobWF5X2hhdmVfZG9zX2xhYmVsKGlkKSkKKwkgICAgICBnZXRfZG9zX2xhYmVsKGkpOworCSBlbHNlIGlmIChpZCA9PSBMSU5VWCkKKwkgICAgICBnZXRfbGludXhfbGFiZWwoaSk7CisgICAgfQorCisgICAgY2hlY2tfcGFydF9pbmZvKCk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorZmluZF9wcmltYXJ5KHZvaWQpIHsKKyAgICBpbnQgbnVtID0gMCwgY3VyID0gMDsKKworICAgIHdoaWxlIChjdXIgPCBudW1fcGFydHMgJiYgSVNfUFJJTUFSWShudW0pKQorCWlmICgocF9pbmZvW2N1cl0uaWQgPiAwICYmIHBfaW5mb1tjdXJdLm51bSA9PSBudW0pIHx8CisJICAgIChpc19leHRlbmRlZChleHRfaW5mby5pZCkgJiYgZXh0X2luZm8ubnVtID09IG51bSkpIHsKKwkgICAgbnVtKys7CisJICAgIGN1ciA9IDA7CisJfSBlbHNlCisJICAgIGN1cisrOworCisgICAgaWYgKCFJU19QUklNQVJZKG51bSkpCisJcmV0dXJuIC0xOworICAgIGVsc2UKKwlyZXR1cm4gbnVtOworfQorCitzdGF0aWMgaW50CitmaW5kX2xvZ2ljYWwoaW50IGkpIHsKKyAgICBpbnQgbnVtID0gLTE7CisgICAgaW50IGo7CisKKyAgICBmb3IgKGogPSBpOyBqIDwgbnVtX3BhcnRzICYmIG51bSA9PSAtMTsgaisrKQorCWlmIChwX2luZm9bal0uaWQgPiAwICYmIElTX0xPR0lDQUwocF9pbmZvW2pdLm51bSkpCisJICAgIG51bSA9IHBfaW5mb1tqXS5udW07CisKKyAgICBpZiAobnVtID09IC0xKSB7CisJbnVtID0gNDsKKwlmb3IgKGogPSAwOyBqIDwgbnVtX3BhcnRzOyBqKyspCisJICAgIGlmIChwX2luZm9bal0uaWQgPiAwICYmIHBfaW5mb1tqXS5udW0gPT0gbnVtKQorCQludW0rKzsKKyAgICB9CisKKyAgICByZXR1cm4gbnVtOworfQorCisvKgorICogQ29tbWFuZCBtZW51IHN1cHBvcnQgYnkgSmFubmUgS3Vrb25sZWh0byA8anRrbGVodG9AcGhvZW5peC5vdWx1LmZpPgorICogU2VwdGVtYmVyIDE5OTQKKyAqLworCisvKiBDb25zdGFudHMgZm9yIG1lbnVUeXBlIHBhcmFtZXRlciBvZiBtZW51U2VsZWN0IGZ1bmN0aW9uICovCisjZGVmaW5lIE1FTlVfSE9SSVogMQorI2RlZmluZSBNRU5VX1ZFUlQgMgorI2RlZmluZSBNRU5VX0FDQ0VQVF9PVEhFUlMgNAorI2RlZmluZSBNRU5VX0JVVFRPTiA4CisvKiBNaXNjZWxsZW5vdXMgY29uc3RhbnRzICovCisjZGVmaW5lIE1FTlVfU1BBQ0lORyAyCisjZGVmaW5lIE1FTlVfTUFYX0lURU1TIDI1NiAvKiBmb3Igc2ltcGxlTWVudSBmdW5jdGlvbiAqLworI2RlZmluZSBNRU5VX1VQIDEKKyNkZWZpbmUgTUVOVV9ET1dOIDIKKyNkZWZpbmUgTUVOVV9SSUdIVCAzCisjZGVmaW5lIE1FTlVfTEVGVCA0CisKK3N0cnVjdCBNZW51SXRlbQoreworICAgIGludCBrZXk7IC8qIEtleWJvYXJkIHNob3J0Y3V0OyBpZiB6ZXJvLCB0aGVuIHRoZXJlIGlzIG5vIG1vcmUgaXRlbXMgaW4gdGhlIG1lbnUgaXRlbSB0YWJsZSAqLworICAgIGNoYXIgKm5hbWU7IC8qIEl0ZW0gbmFtZSwgc2hvdWxkIGJlIGVpZ2h0IGNoYXJhY3RlcnMgd2l0aCBjdXJyZW50IGltcGxlbWVudGF0aW9uICovCisgICAgY2hhciAqZGVzYzsgLyogSXRlbSBkZXNjcmlwdGlvbiB0byBiZSBwcmludGVkIHdoZW4gaXRlbSBpcyBzZWxlY3RlZCAqLworfTsKKworLyoKKyAqIEFjdHVhbCBmdW5jdGlvbiB3aGljaCBwcmludHMgdGhlIGJ1dHRvbiBiYXIgYW5kIGhpZ2hsaWdodHMgdGhlIGFjdGl2ZSBidXR0b24KKyAqIFNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBDYWxsIGZ1bmN0aW9uIG1lbnVTZWxlY3QgaW5zdGVhZC4KKyAqLworCitzdGF0aWMgaW50CittZW51VXBkYXRlKCBpbnQgeSwgaW50IHgsIHN0cnVjdCBNZW51SXRlbSAqbWVudUl0ZW1zLCBpbnQgaXRlbUxlbmd0aCwKKwkgICAgY2hhciAqYXZhaWxhYmxlLCBpbnQgbWVudVR5cGUsIGludCBjdXJyZW50ICkgeworICAgIGludCBpLCBsbWFyZ2luID0geCwgeW1hcmdpbiA9IHk7CisgICAgY2hhciAqbWNkOworCisgICAgLyogUHJpbnQgYXZhaWxhYmxlIGJ1dHRvbnMgKi8KKyAgICBtb3ZlKCB5LCB4ICk7IGNscnRvZW9sKCk7CisKKyAgICBmb3IoIGkgPSAwOyBtZW51SXRlbXNbaV0ua2V5OyBpKysgKSB7CisgICAgICAgIGNoYXIgYnVmZlsyMF07CisgICAgICAgIGludCBsZW5OYW1lOworCWNvbnN0IGNoYXIgKm1pOworCisgICAgICAgIC8qIFNlYXJjaCBuZXh0IGF2YWlsYWJsZSBidXR0b24gKi8KKyAgICAgICAgd2hpbGUoIG1lbnVJdGVtc1tpXS5rZXkgJiYgIXN0cmNocihhdmFpbGFibGUsIG1lbnVJdGVtc1tpXS5rZXkpICkKKyAgICAgICAgICAgIGkrKzsKKworICAgICAgICBpZiggIW1lbnVJdGVtc1tpXS5rZXkgKSBicmVhazsgLyogTm8gbW9yZSBtZW51IGl0ZW1zICovCisKKyAgICAgICAgLyogSWYgc2VsZWN0ZWQgaXRlbSBpcyBub3QgYXZhaWxhYmxlIGFuZCB3ZSBoYXZlIGJ5cGFzc2VkIGl0LAorCSAgIG1ha2UgY3VycmVudCBpdGVtIHNlbGVjdGVkICovCisgICAgICAgIGlmKCBjdXJyZW50IDwgaSAmJiBtZW51SXRlbXNbY3VycmVudF0ua2V5IDwgMCApIGN1cnJlbnQgPSBpOworCisgICAgICAgIC8qIElmIGN1cnJlbnQgaXRlbSBpcyBzZWxlY3RlZCwgaGlnaGxpZ2h0IGl0ICovCisgICAgICAgIGlmKCBjdXJyZW50ID09IGkgKSAvKmF0dHJvbiggQV9SRVZFUlNFICkqLyBzdGFuZG91dCAoKTsKKworICAgICAgICAvKiBQcmludCBpdGVtICovCisJLyogQmVjYXVzZSBvZiBhIGJ1ZyBpbiBnZXR0ZXh0KCkgd2UgbXVzdCBub3QgdHJhbnNsYXRlIGVtcHR5IHN0cmluZ3MgKi8KKwlpZiAobWVudUl0ZW1zW2ldLm5hbWVbMF0pCisJCW1pID0gXyhtZW51SXRlbXNbaV0ubmFtZSk7CisJZWxzZQorCQltaSA9ICIiOworICAgICAgICBsZW5OYW1lID0gc3RybGVuKCBtaSApOworI2lmIDAKKyAgICAgICAgaWYobGVuTmFtZSA+IGl0ZW1MZW5ndGggfHwgbGVuTmFtZSA+PSBzaXplb2YoYnVmZikpCisgICAgICAgICAgICBwcmludF93YXJuaW5nKF8oIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIikpOworI2VuZGlmCisJaWYgKGxlbk5hbWUgPj0gc2l6ZW9mKGJ1ZmYpKSB7CS8qIHRydW5jYXRlIHJpZGljdWxvdXNseSBsb25nIHN0cmluZyAqLworCSAgICB4c3RybmNweShidWZmLCBtaSwgc2l6ZW9mKGJ1ZmYpKTsKKwl9IGVsc2UgaWYgKGxlbk5hbWUgPj0gaXRlbUxlbmd0aCkgeworICAgICAgICAgICAgc25wcmludGYoYnVmZiwgc2l6ZW9mKGJ1ZmYpLAorCQkgICAgIChtZW51VHlwZSAmIE1FTlVfQlVUVE9OKSA/ICJbJXNdIiA6ICIlcyIsIG1pKTsKKwl9IGVsc2UgeworICAgICAgICAgICAgc25wcmludGYoYnVmZiwgc2l6ZW9mKGJ1ZmYpLAorCQkgICAgIChtZW51VHlwZSAmIE1FTlVfQlVUVE9OKSA/ICJbJSpzJS0qc10iIDogIiUqcyUtKnMiLAorCQkgICAgIChpdGVtTGVuZ3RoIC0gbGVuTmFtZSkgLyAyLCAiIiwKKwkJICAgICAoaXRlbUxlbmd0aCAtIGxlbk5hbWUgKyAxKSAvIDIgKyBsZW5OYW1lLCBtaSk7CisJfQorICAgICAgICBtdmFkZHN0ciggeSwgeCwgYnVmZiApOworCisgICAgICAgIC8qIExvd2xpZ2h0IGFmdGVyIHNlbGVjdGVkIGl0ZW0gKi8KKyAgICAgICAgaWYoIGN1cnJlbnQgPT0gaSApIC8qYXR0cm9mZiggQV9SRVZFUlNFICkqLyBzdGFuZGVuZCAoKTsKKworICAgICAgICAvKiBDYWxjdWxhdGUgcG9zaXRpb24gZm9yIHRoZSBuZXh0IGl0ZW0gKi8KKyAgICAgICAgaWYoIG1lbnVUeXBlICYgTUVOVV9WRVJUICkKKyAgICAgICAgeworICAgICAgICAgICAgeSArPSAxOworICAgICAgICAgICAgaWYoIHkgPj0gV0FSTklOR19TVEFSVCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgeSA9IHltYXJnaW47CisgICAgICAgICAgICAgICAgeCArPSBpdGVtTGVuZ3RoICsgTUVOVV9TUEFDSU5HOworICAgICAgICAgICAgICAgIGlmKCBtZW51VHlwZSAmIE1FTlVfQlVUVE9OICkgeCArPSAyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgeCArPSBpdGVtTGVuZ3RoICsgTUVOVV9TUEFDSU5HOworICAgICAgICAgICAgaWYoIG1lbnVUeXBlICYgTUVOVV9CVVRUT04gKSB4ICs9IDI7CisgICAgICAgICAgICBpZiggeCA+IENPTFVNTlMgLSBsbWFyZ2luIC0gMTIgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHggPSBsbWFyZ2luOworICAgICAgICAgICAgICAgIHkgKysgOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyogUHJpbnQgdGhlIGRlc2NyaXB0aW9uIG9mIHNlbGVjdGVkIGl0ZW0gKi8KKyAgICBtY2QgPSBfKG1lbnVJdGVtc1tjdXJyZW50XS5kZXNjKTsKKyAgICBtdmFkZHN0ciggV0FSTklOR19TVEFSVCArIDEsIChDT0xVTU5TIC0gc3RybGVuKCBtY2QgKSkgLyAyLCBtY2QgKTsKKyAgICByZXR1cm4geTsKK30KKworLyogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIGxpc3Qgb2YgbWVudSBpdGVtcywgbGV0cyB0aGUgdXNlciBjaG9vc2Ugb25lICoKKyAqIGFuZCByZXR1cm5zIHRoZSBrZXlib2FyZCBzaG9ydGN1dCB2YWx1ZSBvZiB0aGUgc2VsZWN0ZWQgbWVudSBpdGVtICAqLworCitzdGF0aWMgaW50CittZW51U2VsZWN0KCBpbnQgeSwgaW50IHgsIHN0cnVjdCBNZW51SXRlbSAqbWVudUl0ZW1zLCBpbnQgaXRlbUxlbmd0aCwKKwkgICAgY2hhciAqYXZhaWxhYmxlLCBpbnQgbWVudVR5cGUsIGludCBtZW51RGVmYXVsdCApIHsKKyAgICBpbnQgaSwgeWxhc3QgPSB5LCBrZXkgPSAwLCBjdXJyZW50ID0gbWVudURlZmF1bHQ7CisKKyAgICBpZiggISggbWVudVR5cGUgJiAoIE1FTlVfSE9SSVogfCBNRU5VX1ZFUlQgKSApICkgeworICAgICAgICBwcmludF93YXJuaW5nKF8oIk1lbnUgd2l0aG91dCBkaXJlY3Rpb24uIERlZmF1bHRpbmcgdG8gaG9yaXpvbnRhbC4iKSk7CisgICAgICAgIG1lbnVUeXBlIHw9IE1FTlVfSE9SSVo7CisgICAgfQorCisgICAgLyogTWFrZSBzdXJlIHRoYXQgdGhlIGN1cnJlbnQgaXMgb25lIG9mIHRoZSBhdmFpbGFibGUgaXRlbXMgKi8KKyAgICB3aGlsZSggIXN0cmNocihhdmFpbGFibGUsIG1lbnVJdGVtc1tjdXJyZW50XS5rZXkpICkgeworICAgICAgICBjdXJyZW50ICsrIDsKKyAgICAgICAgaWYoICFtZW51SXRlbXNbY3VycmVudF0ua2V5ICkgY3VycmVudCA9IDA7CisgICAgfQorCisgICAgLyogUmVwZWF0IHVudGlsIGFsbG93YWJsZSBjaG9pY2UgaGFzIGJlZW4gbWFkZSAqLworICAgIHdoaWxlKCAha2V5ICkgeworICAgICAgICAvKiBEaXNwbGF5IHRoZSBtZW51IGFuZCByZWFkIGEgY29tbWFuZCAqLworICAgICAgICB5bGFzdCA9IG1lbnVVcGRhdGUoIHksIHgsIG1lbnVJdGVtcywgaXRlbUxlbmd0aCwgYXZhaWxhYmxlLAorCQkJICAgIG1lbnVUeXBlLCBjdXJyZW50ICk7CisgICAgICAgIHJlZnJlc2goKTsKKyAgICAgICAga2V5ID0gZ2V0Y2goKTsKKworICAgICAgICAvKiBDbGVhciBvdXQgYWxsIHByb21wdHMgYW5kIHN1Y2ggKi8KKyAgICAgICAgY2xlYXJfd2FybmluZygpOworICAgICAgICBmb3IgKGkgPSB5OyBpIDwgeWxhc3Q7IGkrKykgeworICAgICAgICAgICAgbW92ZShpLCB4KTsKKyAgICAgICAgICAgIGNscnRvZW9sKCk7CisgICAgICAgIH0KKyAgICAgICAgbW92ZSggV0FSTklOR19TVEFSVCArIDEsIDAgKTsKKyAgICAgICAgY2xydG9lb2woKTsKKworICAgICAgICAvKiBDdXJzb3Iga2V5cyAtIHBvc3NpYmx5IHNwbGl0IGJ5IHNsb3cgY29ubmVjdGlvbiAqLworICAgICAgICBpZigga2V5ID09IEVTQyApIHsKKyAgICAgICAgICAgIC8qIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhIHJlYWwgRVNDIG9yIG9uZSBvZiBleHRlbmRlZCBrZXlzICovCisgICAgICAgICAgICAvKm5vZGVsYXkoc3Rkc2NyLCBUUlVFKTsqLworICAgICAgICAgICAga2V5ID0gZ2V0Y2goKTsKKyAgICAgICAgICAgIC8qbm9kZWxheShzdGRzY3IsIEZBTFNFKTsqLworCisgICAgICAgICAgICBpZigga2V5ID09IC8qRVJSKi8gRVNDICkgeworICAgICAgICAgICAgICAgIC8qIFRoaXMgaXMgYSByZWFsIEVTQyAqLworICAgICAgICAgICAgICAgIGtleSA9IEVTQzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGtleSA9PSAnWycgfHwga2V5ID09ICdPJykgeworICAgICAgICAgICAgICAgIC8qIFRoaXMgaXMgb25lIGV4dGVuZGVkIGtleXMgKi8KKwkJa2V5ID0gZ2V0Y2goKTsKKworICAgICAgICAgICAgICAgIHN3aXRjaChrZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnQSc6IC8qIFVwIGFycm93ICovCisJCQlrZXkgPSBNRU5VX1VQOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0InOiAvKiBEb3duIGFycm93ICovCisgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBNRU5VX0RPV047CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnQyc6IC8qIFJpZ2h0IGFycm93ICovCisgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBNRU5VX1JJR0hUOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0QnOiAvKiBMZWZ0IGFycm93ICovCisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1onOiAvKiBTaGlmdCBUYWIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IE1FTlVfTEVGVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCQkgICAgZGVmYXVsdDoKKwkJCWtleSA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogRW50ZXIgZXF1YWxzIHRoZSBrZXlib2FyZCBzaG9ydGN1dCBvZiBjdXJyZW50IG1lbnUgaXRlbSAqLworICAgICAgICBpZiAoa2V5ID09IENSKQorICAgICAgICAgICAga2V5ID0gbWVudUl0ZW1zW2N1cnJlbnRdLmtleTsKKworCS8qIEdpdmUgYWx0ZXJuYXRpdmVzIGZvciBhcnJvdyBrZXlzIGluIGNhc2UgdGhlIHdpbmRvdyBtYW5hZ2VyCisJICAgc3dhbGxvd3MgdGhlc2UgKi8KKwlpZiAoa2V5ID09IFRBQikKKwkgICAga2V5ID0gTUVOVV9SSUdIVDsKKyAgICAgICAgaWYgKGtleSA9PSBVUEtFWSB8fCBrZXkgPT0gVVBLRVlWSSkJLyogXlAgb3IgayAqLworCSAgICBrZXkgPSBNRU5VX1VQOworCWlmIChrZXkgPT0gRE9XTktFWSB8fCBrZXkgPT0gRE9XTktFWVZJKQkvKiBeTiBvciBqICovCisJICAgIGtleSA9IE1FTlVfRE9XTjsKKworCWlmIChrZXkgPT0gTUVOVV9VUCkgeworCSAgICBpZiggbWVudVR5cGUgJiBNRU5VX1ZFUlQgKSB7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBjdXJyZW50IC0tIDsKKyAgICAgICAgICAgICAgICAgICAgaWYoIGN1cnJlbnQgPCAwICkKKwkJCXdoaWxlKCBtZW51SXRlbXNbY3VycmVudCsxXS5rZXkgKQorCQkJICAgIGN1cnJlbnQgKysgOworICAgICAgICAgICAgICAgIH0gd2hpbGUoICFzdHJjaHIoIGF2YWlsYWJsZSwgbWVudUl0ZW1zW2N1cnJlbnRdLmtleSApKTsKKyAgICAgICAgICAgICAgICBrZXkgPSAwOworICAgICAgICAgICAgfQorCX0KKworCWlmIChrZXkgPT0gTUVOVV9ET1dOKSB7CisgICAgICAgICAgICBpZiggbWVudVR5cGUgJiBNRU5VX1ZFUlQgKSB7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBjdXJyZW50ICsrIDsKKwkJICAgIGlmKCAhbWVudUl0ZW1zW2N1cnJlbnRdLmtleSApIGN1cnJlbnQgPSAwIDsKKwkJfSB3aGlsZSggIXN0cmNociggYXZhaWxhYmxlLCBtZW51SXRlbXNbY3VycmVudF0ua2V5ICkpOworCQlrZXkgPSAwOworCSAgICB9CisJfQorCisJaWYgKGtleSA9PSBNRU5VX1JJR0hUKSB7CisJICAgIGlmKCBtZW51VHlwZSAmIE1FTlVfSE9SSVogKSB7CisJCWRvIHsKKwkJICAgIGN1cnJlbnQgKysgOworCQkgICAgaWYoICFtZW51SXRlbXNbY3VycmVudF0ua2V5ICkKKwkJCWN1cnJlbnQgPSAwIDsKKwkJfSB3aGlsZSggIXN0cmNociggYXZhaWxhYmxlLCBtZW51SXRlbXNbY3VycmVudF0ua2V5ICkpOworCQlrZXkgPSAwOworCSAgICB9CisJfQorCisJaWYgKGtleSA9PSBNRU5VX0xFRlQpIHsKKwkgICAgIGlmKCBtZW51VHlwZSAmIE1FTlVfSE9SSVogKSB7CisJCSBkbyB7CisJCSAgICAgY3VycmVudCAtLSA7CisJCSAgICAgaWYoIGN1cnJlbnQgPCAwICkgeworCQkJIHdoaWxlKCBtZW51SXRlbXNbY3VycmVudCArIDFdLmtleSApCisJCQkgICAgICBjdXJyZW50ICsrIDsKKwkJICAgICB9CisJCSB9IHdoaWxlKCAhc3RyY2hyKCBhdmFpbGFibGUsIG1lbnVJdGVtc1tjdXJyZW50XS5rZXkgKSk7CisJCSBrZXkgPSAwOworCSAgICAgfQorCX0KKworICAgICAgICAvKiBTaG91bGQgYWxsIGtleXMgdG8gYmUgYWNjZXB0ZWQ/ICovCisgICAgICAgIGlmKCBrZXkgJiYgKG1lbnVUeXBlICYgTUVOVV9BQ0NFUFRfT1RIRVJTKSApIGJyZWFrOworCisgICAgICAgIC8qIElzIHByZXNzZWQga2V5IGFtb25nIGFjY2VwdGFibGUgb25lcz8gKi8KKyAgICAgICAgaWYoIGtleSAmJiAoc3RyY2hyKGF2YWlsYWJsZSwgdG9sb3dlcihrZXkpKSB8fCBzdHJjaHIoYXZhaWxhYmxlLCBrZXkpKSkKKwkgICAgYnJlYWs7CisKKyAgICAgICAgLyogVGhlIGtleSBoYXMgbm90IGJlZW4gYWNjZXB0ZWQgc28gZmFyIC0+IGxldCdzIHJlamVjdCBpdCAqLworICAgICAgICBpZiAoa2V5KSB7CisgICAgICAgICAgICBrZXkgPSAwOworICAgICAgICAgICAgcHV0Y2hhciggQkVMTCApOworICAgICAgICAgICAgcHJpbnRfd2FybmluZyhfKCJJbGxlZ2FsIGtleSIpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIENsZWFyIG91dCBwcm9tcHRzIGFuZCBzdWNoICovCisgICAgY2xlYXJfd2FybmluZygpOworICAgIGZvciggaSA9IHk7IGkgPD0geWxhc3Q7IGkgKysgKSB7CisgICAgICAgIG1vdmUoIGksIHggKTsKKyAgICAgICAgY2xydG9lb2woKTsKKyAgICB9CisgICAgbW92ZSggV0FSTklOR19TVEFSVCArIDEsIDAgKTsKKyAgICBjbHJ0b2VvbCgpOworICAgIHJldHVybiBrZXk7Cit9CisKKy8qIEEgZnVuY3Rpb24gd2hpY2ggZGlzcGxheXMgIlByZXNzIGEga2V5IHRvIGNvbnRpbnVlIiAgICAgICAgICAgICAgICAgICoKKyAqIGFuZCB3YWl0cyBmb3IgYSBrZXlwcmVzcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFBlcmhhcHMgY2FsbGluZyBmdW5jdGlvbiBtZW51U2VsZWN0IGlzIGEgYml0IG92ZXJraWxsIGJ1dCB3aG8gY2FyZXM/ICovCisKK3N0YXRpYyB2b2lkCittZW51Q29udGludWUodm9pZCkgeworICAgIHN0YXRpYyBzdHJ1Y3QgTWVudUl0ZW0gbWVudUNvbnRpbnVlQnRuW109CisgICAgeworICAgICAgICB7ICdjJywgIiIsIE5fKCJQcmVzcyBhIGtleSB0byBjb250aW51ZSIpIH0sCisgICAgICAgIHsgMCwgTlVMTCwgTlVMTCB9CisgICAgfTsKKworICAgIG1lbnVTZWxlY3QoQ09NTUFORF9MSU5FX1ksIENPTU1BTkRfTElORV9YLAorCW1lbnVDb250aW51ZUJ0biwgMCwgImMiLCBNRU5VX0hPUklaIHwgTUVOVV9BQ0NFUFRfT1RIRVJTLCAwICk7Cit9CisKKy8qIEZ1bmN0aW9uIG1lbnVTZWxlY3QgdGFrZXMgd2F5IHRvbyBtYW55IHBhcmFtZXRlcnMgICoKKyAqIEx1Y2tpbHksIG1vc3Qgb2YgdGltZSB3ZSBjYW4gZG8gd2l0aCB0aGlzIGZ1bmN0aW9uICovCisKK3N0YXRpYyBpbnQKK21lbnVTaW1wbGUoc3RydWN0IE1lbnVJdGVtICptZW51SXRlbXMsIGludCBtZW51RGVmYXVsdCkgeworICAgIGludCBpLCBqLCBpdGVtTGVuZ3RoID0gMDsKKyAgICBjaGFyIGF2YWlsYWJsZVtNRU5VX01BWF9JVEVNU107CisKKyAgICBmb3IoaSA9IDA7IG1lbnVJdGVtc1tpXS5rZXk7IGkrKykKKyAgICB7CisgICAgICAgIGogPSBzdHJsZW4oIF8obWVudUl0ZW1zW2ldLm5hbWUpICk7CisgICAgICAgIGlmKCBqID4gaXRlbUxlbmd0aCApIGl0ZW1MZW5ndGggPSBqOworICAgICAgICBhdmFpbGFibGVbaV0gPSBtZW51SXRlbXNbaV0ua2V5OworICAgIH0KKyAgICBhdmFpbGFibGVbaV0gPSAwOworICAgIHJldHVybiBtZW51U2VsZWN0KENPTU1BTkRfTElORV9ZLCBDT01NQU5EX0xJTkVfWCwgbWVudUl0ZW1zLCBpdGVtTGVuZ3RoLAorICAgICAgICBhdmFpbGFibGUsIE1FTlVfSE9SSVogfCBNRU5VX0JVVFRPTiwgbWVudURlZmF1bHQpOworfQorCisvKiBFbmQgb2YgY29tbWFuZCBtZW51IHN1cHBvcnQgY29kZSAqLworCitzdGF0aWMgdm9pZAorbmV3X3BhcnQoaW50IGkpIHsKKyAgICBjaGFyIHJlc3BvbnNlW0xJTkVfTEVOR1RIXSwgZGVmW0xJTkVfTEVOR1RIXTsKKyAgICBjaGFyIGM7CisgICAgbG9uZyBsb25nIGZpcnN0ID0gcF9pbmZvW2ldLmZpcnN0X3NlY3RvcjsKKyAgICBsb25nIGxvbmcgbGFzdCA9IHBfaW5mb1tpXS5sYXN0X3NlY3RvcjsKKyAgICBsb25nIGxvbmcgb2Zmc2V0ID0gMDsKKyAgICBpbnQgZmxhZ3MgPSAwOworICAgIGludCBpZCA9IExJTlVYOworICAgIGludCBudW0gPSAtMTsKKyAgICBsb25nIGxvbmcgbnVtX3NlY3RzID0gbGFzdCAtIGZpcnN0ICsgMTsKKyAgICBpbnQgbGVuLCBleHQsIGo7CisgICAgY2hhciAqZXJybXNnOworICAgIGRvdWJsZSBzZWN0b3JzX3Blcl9NQiA9IEsqSyAvIDUxMi4wOworCisgICAgaWYgKHBfaW5mb1tpXS5udW0gPT0gUFJJX09SX0xPRykgeworICAgICAgICBzdGF0aWMgc3RydWN0IE1lbnVJdGVtIG1lbnVQYXJ0VHlwZVtdPQorICAgICAgICB7CisgICAgICAgICAgICB7ICdwJywgTl8oIlByaW1hcnkiKSwgTl8oIkNyZWF0ZSBhIG5ldyBwcmltYXJ5IHBhcnRpdGlvbiIpIH0sCisgICAgICAgICAgICB7ICdsJywgTl8oIkxvZ2ljYWwiKSwgTl8oIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIpIH0sCisgICAgICAgICAgICB7IEVTQywgTl8oIkNhbmNlbCIpLCBOXygiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIikgfSwKKyAgICAgICAgICAgIHsgMCwgTlVMTCwgTlVMTCB9CisgICAgICAgIH07CisKKwljID0gbWVudVNpbXBsZSggbWVudVBhcnRUeXBlLCAwICk7CisJaWYgKHRvdXBwZXIoYykgPT0gJ1AnKQorCSAgICBudW0gPSBmaW5kX3ByaW1hcnkoKTsKKwllbHNlIGlmICh0b3VwcGVyKGMpID09ICdMJykKKwkgICAgbnVtID0gZmluZF9sb2dpY2FsKGkpOworCWVsc2UKKwkgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAocF9pbmZvW2ldLm51bSA9PSBQUklNQVJZKQorCW51bSA9IGZpbmRfcHJpbWFyeSgpOworICAgIGVsc2UgaWYgKHBfaW5mb1tpXS5udW0gPT0gTE9HSUNBTCkKKwludW0gPSBmaW5kX2xvZ2ljYWwoaSk7CisgICAgZWxzZQorCXByaW50X3dhcm5pbmcoXygiISEhIEludGVybmFsIGVycm9yICEhISIpKTsKKworICAgIHNucHJpbnRmKGRlZiwgc2l6ZW9mKGRlZiksICIlLjJmIiwgbnVtX3NlY3RzL3NlY3RvcnNfcGVyX01CKTsKKyAgICBtdmFkZHN0cihDT01NQU5EX0xJTkVfWSwgQ09NTUFORF9MSU5FX1gsIF8oIlNpemUgKGluIE1CKTogIikpOworICAgIGlmICgobGVuID0gZ2V0X3N0cmluZyhyZXNwb25zZSwgTElORV9MRU5HVEgsIGRlZikpIDw9IDAgJiYKKwlsZW4gIT0gR1NfREVGQVVMVCkKKwlyZXR1cm47CisgICAgZWxzZSBpZiAobGVuID4gMCkgeworI2RlZmluZSBudW1fY3lscyhieXRlcykgKHJvdW5kX2ludChieXRlcy9TRUNUT1JfU0laRS9jeWxpbmRlcl9zaXplKSkKKwlmb3IgKGogPSAwOworCSAgICAgaiA8IGxlbi0xICYmIChpc2RpZ2l0KHJlc3BvbnNlW2pdKSB8fCByZXNwb25zZVtqXSA9PSAnLicpOworCSAgICAgaisrKTsKKwlpZiAodG91cHBlcihyZXNwb25zZVtqXSkgPT0gJ0snKSB7CisJICAgIG51bV9zZWN0cyA9IG51bV9jeWxzKGF0b2YocmVzcG9uc2UpKkspKmN5bGluZGVyX3NpemU7CisJfSBlbHNlIGlmICh0b3VwcGVyKHJlc3BvbnNlW2pdKSA9PSAnTScpIHsKKwkgICAgbnVtX3NlY3RzID0gbnVtX2N5bHMoYXRvZihyZXNwb25zZSkqSypLKSpjeWxpbmRlcl9zaXplOworCX0gZWxzZSBpZiAodG91cHBlcihyZXNwb25zZVtqXSkgPT0gJ0cnKSB7CisJICAgIG51bV9zZWN0cyA9IG51bV9jeWxzKGF0b2YocmVzcG9uc2UpKksqSypLKSpjeWxpbmRlcl9zaXplOworCX0gZWxzZSBpZiAodG91cHBlcihyZXNwb25zZVtqXSkgPT0gJ0MnKSB7CisJICAgIG51bV9zZWN0cyA9IHJvdW5kX2ludChhdG9mKHJlc3BvbnNlKSkqY3lsaW5kZXJfc2l6ZTsKKwl9IGVsc2UgaWYgKHRvdXBwZXIocmVzcG9uc2Vbal0pID09ICdTJykgeworCSAgICBudW1fc2VjdHMgPSByb3VuZF9pbnQoYXRvZihyZXNwb25zZSkpOworCX0gZWxzZSB7CisJICAgIG51bV9zZWN0cyA9IG51bV9jeWxzKGF0b2YocmVzcG9uc2UpKksqSykqY3lsaW5kZXJfc2l6ZTsKKwl9CisgICAgfQorCisgICAgaWYgKG51bV9zZWN0cyA8PSAwIHx8CisJbnVtX3NlY3RzID4gcF9pbmZvW2ldLmxhc3Rfc2VjdG9yIC0gcF9pbmZvW2ldLmZpcnN0X3NlY3RvciArIDEpCisJcmV0dXJuOworCisgICAgbW92ZSggQ09NTUFORF9MSU5FX1ksIENPTU1BTkRfTElORV9YICk7IGNscnRvZW9sKCk7CisgICAgaWYgKG51bV9zZWN0cyA8IHBfaW5mb1tpXS5sYXN0X3NlY3RvciAtIHBfaW5mb1tpXS5maXJzdF9zZWN0b3IgKyAxKSB7CisJLyogRGV0ZXJtaW5lIHdoZXJlIGluc2lkZSBmcmVlIHNwYWNlIHRvIHB1dCBwYXJ0aXRpb24uCisJICovCisJc3RhdGljIHN0cnVjdCBNZW51SXRlbSBtZW51UGxhY2VbXT0KKwl7CisJICAgIHsgJ2InLCBOXygiQmVnaW5uaW5nIiksIE5fKCJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIikgfSwKKwkgICAgeyAnZScsIE5fKCJFbmQiKSwgTl8oIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiKSB9LAorCSAgICB7IEVTQywgTl8oIkNhbmNlbCIpLCBOXygiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIikgfSwKKwkgICAgeyAwLCBOVUxMLCBOVUxMIH0KKwl9OworCWMgPSBtZW51U2ltcGxlKCBtZW51UGxhY2UsIDAgKTsKKwlpZiAodG91cHBlcihjKSA9PSAnQicpCisJICAgIGxhc3QgPSBmaXJzdCArIG51bV9zZWN0cyAtIDE7CisJZWxzZSBpZiAodG91cHBlcihjKSA9PSAnRScpCisJICAgIGZpcnN0ID0gbGFzdCAtIG51bV9zZWN0cyArIDE7CisJZWxzZQorCSAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKElTX0xPR0lDQUwobnVtKSAmJiAhaXNfZXh0ZW5kZWQoZXh0X2luZm8uaWQpKSB7CisJLyogV2Ugd2FudCB0byBhZGQgYSBsb2dpY2FsIHBhcnRpdGlvbiwgYnV0IG5lZWQgdG8gY3JlYXRlIGFuCisJICogZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0LgorCSAqLworCWlmICgoZXh0ID0gZmluZF9wcmltYXJ5KCkpIDwgMCkgeworCSAgICBwcmludF93YXJuaW5nKF8oIk5vIHJvb20gdG8gY3JlYXRlIHRoZSBleHRlbmRlZCBwYXJ0aXRpb24iKSk7CisJICAgIHJldHVybjsKKwl9CisJZXJybXNnID0gMDsKKwlpZiAoYWRkX3BhcnQoZXh0LCBET1NfRVhURU5ERUQsIDAsIGZpcnN0LCBsYXN0LAorCQkgICAgIChmaXJzdCA9PSAwID8gc2VjdG9ycyA6IDApLCAwLCAmZXJybXNnKSAmJiBlcnJtc2cpCisJCXByaW50X3dhcm5pbmcoZXJybXNnKTsKKwlmaXJzdCA9IGV4dF9pbmZvLmZpcnN0X3NlY3RvciArIGV4dF9pbmZvLm9mZnNldDsKKyAgICB9CisKKyAgICAvKiBpbmNyZW1lbnQgbnVtYmVyIG9mIGFsbCBwYXJ0aXRpb25zIHBhc3QgdGhpcyBvbmUgKi8KKyAgICBpZiAoSVNfTE9HSUNBTChudW0pKSB7CisjaWYgMAorCS8qIG9yaWdpbmFsIHRleHQgLSBvaywgYnV0IGZhaWxzIHdoZW4gcGFydGl0aW9ucyBub3QgaW4gZGlzayBvcmRlciAqLworCWZvciAoaiA9IGk7IGogPCBudW1fcGFydHM7IGorKykKKwkgICAgaWYgKHBfaW5mb1tqXS5pZCA+IDAgJiYgSVNfTE9HSUNBTChwX2luZm9bal0ubnVtKSkKKwkJcF9pbmZvW2pdLm51bSsrOworI2Vsc2UKKwkvKiBhbHdheXMgb2sgKi8KKwlmb3IgKGogPSAwOyBqIDwgbnVtX3BhcnRzOyBqKyspCisJICAgIGlmIChwX2luZm9bal0uaWQgPiAwICYmIHBfaW5mb1tqXS5udW0gPj0gbnVtKQorCQlwX2luZm9bal0ubnVtKys7CisjZW5kaWYKKyAgICB9CisKKyAgICAvKiBOb3cgd2UgaGF2ZSBhIGNvbXBsZXRlIHBhcnRpdGlvbiB0byBvdXJzZWx2ZXMgKi8KKyAgICBpZiAoZmlyc3QgPT0gMCB8fCBJU19MT0dJQ0FMKG51bSkpCisJb2Zmc2V0ID0gc2VjdG9yczsKKworICAgIGVycm1zZyA9IDA7CisgICAgaWYgKGFkZF9wYXJ0KG51bSwgaWQsIGZsYWdzLCBmaXJzdCwgbGFzdCwgb2Zmc2V0LCAwLCAmZXJybXNnKSAmJiBlcnJtc2cpCisJICAgIHByaW50X3dhcm5pbmcoZXJybXNnKTsKK30KKworc3RhdGljIHZvaWQKK2dldF9rZXJuZWxfZ2VvbWV0cnkodm9pZCkgeworI2lmZGVmIEhESU9fR0VUR0VPCisgICAgc3RydWN0IGhkX2dlb21ldHJ5IGdlb21ldHJ5OworCisgICAgaWYgKCFpb2N0bChmZCwgSERJT19HRVRHRU8sICZnZW9tZXRyeSkpIHsKKwlrZXJuX2hlYWRzID0gZ2VvbWV0cnkuaGVhZHM7CisJa2Vybl9zZWN0b3JzID0gZ2VvbWV0cnkuc2VjdG9yczsKKyAgICB9CisjZW5kaWYKK30KKworc3RhdGljIGludAorc2FpZF95ZXMoY2hhciBhbnN3ZXIpIHsKKyNpZmRlZiBIQVZFX1JQTUFUQ0gKKwljaGFyIHJlcGx5WzJdOworCWludCB5bjsKKworCXJlcGx5WzBdID0gYW5zd2VyOworCXJlcGx5WzFdID0gMDsKKwl5biA9IHJwbWF0Y2gocmVwbHkpOwkvKiAxOiB5ZXMsIDA6IG5vLCAtMTogPyAqLworCWlmICh5biA+PSAwKQorCQlyZXR1cm4geW47CisjZW5kaWYKKwlyZXR1cm4gKGFuc3dlciA9PSAneScgfHwgYW5zd2VyID09ICdZJyk7Cit9CisKK3N0YXRpYyB2b2lkCitnZXRfcGFydGl0aW9uX3RhYmxlX2dlb21ldHJ5KHBhcnRpdGlvbl90YWJsZSAqYnVmcCkgeworCXN0cnVjdCBwYXJ0aXRpb24gKnA7CisJaW50IGksaCxzLGhoLHNzOworCWludCBmaXJzdCA9IFRSVUU7CisJaW50IGJhZCA9IEZBTFNFOworCisJZm9yIChpPTA7IGk8NjY7IGkrKykKKwkJaWYgKGJ1ZnAtPmMuYls0NDYraV0pCisJCQlnb3RvIG5vbno7CisKKwkvKiB6ZXJvIHRhYmxlICovCisJaWYgKCFjdXJzZXNfc3RhcnRlZCkgeworCQlmYXRhbChfKCJObyBwYXJ0aXRpb24gdGFibGUuXG4iKSwgMyk7CisJCXJldHVybjsKKwl9IGVsc2UgeworCQltdmFkZHN0cihXQVJOSU5HX1NUQVJULCAwLAorCQkJIF8oIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIpKTsKKwkJcHV0Y2hhcihCRUxMKTsKKwkJcmVmcmVzaCgpOworCQl6ZXJvX3RhYmxlID0gVFJVRTsKKwkJcmV0dXJuOworCX0KKyBub256OgorCWlmIChidWZwLT5wLm1hZ2ljZmxhZ1swXSAhPSBQQVJUX1RBQkxFX0ZMQUcwIHx8CisJICAgIGJ1ZnAtPnAubWFnaWNmbGFnWzFdICE9IFBBUlRfVEFCTEVfRkxBRzEpIHsKKwkJaWYgKCFjdXJzZXNfc3RhcnRlZCkKKwkJCWZhdGFsKF8oIkJhZCBzaWduYXR1cmUgb24gcGFydGl0aW9uIHRhYmxlIiksIDMpOworCisJCS8qIE1hdHRoZXcgV2lsY294ICovCisJCW12YWRkc3RyKFdBUk5JTkdfU1RBUlQsIDAsCisJCQkgXygiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIpKTsKKwkJbXZhZGRzdHIoV0FSTklOR19TVEFSVCsxLCAwLAorCQkJIF8oIkRvIHlvdSB3aXNoIHRvIHN0YXJ0IHdpdGggYSB6ZXJvIHRhYmxlIFt5L05dID8iKSk7CisJCXB1dGNoYXIoQkVMTCk7CisJCXJlZnJlc2goKTsKKwkJeworCQkJaW50IGNvbnQgPSBnZXRjaCgpOworCQkJaWYgKGNvbnQgPT0gRU9GIHx8ICFzYWlkX3llcyhjb250KSkKKwkJCQlkaWVfeCgzKTsKKwkJfQorCQl6ZXJvX3RhYmxlID0gVFJVRTsKKwkJcmV0dXJuOworCX0KKworCWhoID0gc3MgPSAwOworCWZvciAoaT0wOyBpPDQ7IGkrKykgeworCQlwID0gJihidWZwLT5wLnBhcnRbaV0pOworCQlpZiAocC0+c3lzX2luZCAhPSAwKSB7CisJCQloID0gcC0+ZW5kX2hlYWQgKyAxOworCQkJcyA9IChwLT5lbmRfc2VjdG9yICYgMDc3KTsKKwkJCWlmIChmaXJzdCkgeworCQkJCWhoID0gaDsKKwkJCQlzcyA9IHM7CisJCQkJZmlyc3QgPSBGQUxTRTsKKwkJCX0gZWxzZSBpZiAoaGggIT0gaCB8fCBzcyAhPSBzKQorCQkJCWJhZCA9IFRSVUU7CisJCX0KKwl9CisKKwlpZiAoIWZpcnN0ICYmICFiYWQpIHsKKwkJcHRfaGVhZHMgPSBoaDsKKwkJcHRfc2VjdG9ycyA9IHNzOworCX0KK30KKworc3RhdGljIHZvaWQKK2RlY2lkZV9vbl9nZW9tZXRyeSh2b2lkKSB7CisgICAgaGVhZHMgPSAodXNlcl9oZWFkcyA/IHVzZXJfaGVhZHMgOgorCSAgICAgcHRfaGVhZHMgPyBwdF9oZWFkcyA6CisJICAgICBrZXJuX2hlYWRzID8ga2Vybl9oZWFkcyA6IDI1NSk7CisgICAgc2VjdG9ycyA9ICh1c2VyX3NlY3RvcnMgPyB1c2VyX3NlY3RvcnMgOgorCSAgICAgICBwdF9zZWN0b3JzID8gcHRfc2VjdG9ycyA6CisJICAgICAgIGtlcm5fc2VjdG9ycyA/IGtlcm5fc2VjdG9ycyA6IDYzKTsKKyAgICBjeWxpbmRlcl9zaXplID0gaGVhZHMqc2VjdG9yczsKKyAgICBjeWxpbmRlcnMgPSBhY3R1YWxfc2l6ZS9jeWxpbmRlcl9zaXplOworICAgIGlmICh1c2VyX2N5bGluZGVycyA+IDApCisJICAgIGN5bGluZGVycyA9IHVzZXJfY3lsaW5kZXJzOworCisgICAgdG90YWxfc2l6ZSA9IGN5bGluZGVyX3NpemUqY3lsaW5kZXJzOworICAgIGlmICh0b3RhbF9zaXplID4gYWN0dWFsX3NpemUpCisJICAgIHByaW50X3dhcm5pbmcoXygiWW91IHNwZWNpZmllZCBtb3JlIGN5bGluZGVycyB0aGFuIGZpdCBvbiBkaXNrIikpOworfQorCitzdGF0aWMgdm9pZAorY2xlYXJfcF9pbmZvKHZvaWQpIHsKKyAgICBudW1fcGFydHMgPSAxOworICAgIHBfaW5mb1swXS5maXJzdF9zZWN0b3IgPSAwOworICAgIHBfaW5mb1swXS5sYXN0X3NlY3RvciA9IHRvdGFsX3NpemUgLSAxOworICAgIHBfaW5mb1swXS5vZmZzZXQgPSAwOworICAgIHBfaW5mb1swXS5mbGFncyA9IDA7CisgICAgcF9pbmZvWzBdLmlkID0gRlJFRV9TUEFDRTsKKyAgICBwX2luZm9bMF0ubnVtID0gUFJJX09SX0xPRzsKKworICAgIGV4dF9pbmZvLmZpcnN0X3NlY3RvciA9IDA7CisgICAgZXh0X2luZm8ubGFzdF9zZWN0b3IgPSAwOworICAgIGV4dF9pbmZvLm9mZnNldCA9IDA7CisgICAgZXh0X2luZm8uZmxhZ3MgPSAwOworICAgIGV4dF9pbmZvLmlkID0gRlJFRV9TUEFDRTsKKyAgICBleHRfaW5mby5udW0gPSBQUklNQVJZOworfQorCitzdGF0aWMgdm9pZAorZmlsbF9wX2luZm8odm9pZCkgeworICAgIGludCBwbiwgaTsKKyAgICBsb25nIGxvbmcgYnMsIGJzejsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbGxzZWN0b3JzOworICAgIHN0cnVjdCBwYXJ0aXRpb24gKnA7CisgICAgcGFydGl0aW9uX3RhYmxlIGJ1ZmZlcjsKKyAgICBwYXJ0aXRpb25faW5mbyB0bXBfZXh0ID0geyAwLCAwLCAwLCAwLCBGUkVFX1NQQUNFLCBQUklNQVJZIH07CisKKyAgICBpZiAoKGZkID0gb3BlbihkaXNrX2RldmljZSwgT19SRFdSKSkgPCAwKSB7CisJIGlmICgoZmQgPSBvcGVuKGRpc2tfZGV2aWNlLCBPX1JET05MWSkpIDwgMCkKKwkgICAgICBmYXRhbChfKCJDYW5ub3Qgb3BlbiBkaXNrIGRyaXZlIiksIDIpOworCSBvcGVudHlwZSA9IE9fUkRPTkxZOworCSBwcmludF93YXJuaW5nKF8oIk9wZW5lZCBkaXNrIHJlYWQtb25seSAtIHlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gd3JpdGUiKSk7CisJIGlmIChjdXJzZXNfc3RhcnRlZCkgeworCSAgICAgIHJlZnJlc2goKTsKKwkgICAgICBnZXRjaCgpOworCSAgICAgIGNsZWFyX3dhcm5pbmcoKTsKKwkgfQorICAgIH0gZWxzZQorCSBvcGVudHlwZSA9IE9fUkRXUjsKKyAgICBvcGVuZWQgPSBUUlVFOworCisgICAgaWYgKGdwdF9wcm9iZV9zaWduYXR1cmVfZmQoZmQpKSB7CisJIHByaW50X3dhcm5pbmcoXygiV2FybmluZyEhICBVbnN1cHBvcnRlZCBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZC4gVXNlIEdOVSBQYXJ0ZWQuIikpOworCSByZWZyZXNoKCk7CisJIGdldGNoKCk7CisJIGNsZWFyX3dhcm5pbmcoKTsKKyAgICB9CisKKyNpZmRlZiBCTEtGTFNCVUYKKyAgICAvKiBCbG9ja3MgYXJlIHZpc2libGUgaW4gbW9yZSB0aGFuIG9uZSB3YXk6CisgICAgICAgZS5nLiBhcyBibG9jayBvbiAvZGV2L2hkYSBhbmQgYXMgYmxvY2sgb24gL2Rldi9oZGEzCisgICAgICAgQnkgYSBidWcgaW4gdGhlIExpbnV4IGJ1ZmZlciBjYWNoZSwgd2Ugd2lsbCBzZWUgdGhlIG9sZAorICAgICAgIGNvbnRlbnRzIG9mIC9kZXYvaGRhIHdoZW4gdGhlIGNoYW5nZSB3YXMgbWFkZSB0byAvZGV2L2hkYTMuCisgICAgICAgSW4gb3JkZXIgdG8gYXZvaWQgdGhpcywgZGlzY2FyZCBhbGwgYmxvY2tzIG9uIC9kZXYvaGRhLgorICAgICAgIE5vdGUgdGhhdCBwYXJ0aXRpb24gdGFibGUgYmxvY2tzIGRvIG5vdCBsaXZlIGluIC9kZXYvaGRhTiwKKyAgICAgICBzbyB0aGlzIG9ubHkgcGxheXMgYSByb2xlIGlmIHdlIHdhbnQgdG8gc2hvdyB2b2x1bWUgbGFiZWxzLiAqLworICAgIGlvY3RsKGZkLCBCTEtGTFNCVUYpOwkvKiBpZ25vcmUgZXJyb3JzICovCisJCQkJLyogZS5nLiBQZXJtaXNzaW9uIERlbmllZCAqLworI2VuZGlmCisKKyAgICBpZiAoYmxrZGV2X2dldF9zZWN0b3JzKGZkLCAmbGxzZWN0b3JzKSA9PSAtMSkKKwkgICAgZmF0YWwoXygiQ2Fubm90IGdldCBkaXNrIHNpemUiKSwgMyk7CisgICAgYWN0dWFsX3NpemUgPSBsbHNlY3RvcnM7CisKKyAgICByZWFkX3NlY3RvcihidWZmZXIuYy5iLCAwKTsKKworICAgIGdldF9rZXJuZWxfZ2VvbWV0cnkoKTsKKworICAgIGlmICghemVyb190YWJsZSB8fCB1c2VfcGFydGl0aW9uX3RhYmxlX2dlb21ldHJ5KQorCWdldF9wYXJ0aXRpb25fdGFibGVfZ2VvbWV0cnkoJiBidWZmZXIpOworCisgICAgZGVjaWRlX29uX2dlb21ldHJ5KCk7CisKKyAgICBjbGVhcl9wX2luZm8oKTsKKworICAgIGlmICghemVyb190YWJsZSkgeworCWNoYXIgKmVycm1zZyA9ICIiOworCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCSAgICBwID0gJiBidWZmZXIucC5wYXJ0W2ldOworCSAgICBicyA9IGdldF9zdGFydF9zZWN0KHApOworCSAgICBic3ogPSBnZXRfbnJfc2VjdHMocCk7CisKKwkgICAgaWYgKHAtPnN5c19pbmQgPiAwICYmCisJCWFkZF9wYXJ0KGksIHAtPnN5c19pbmQsIHAtPmJvb3RfaW5kLAorCQkJICgoYnMgPD0gc2VjdG9ycykgPyAwIDogYnMpLCBicyArIGJzeiAtIDEsCisJCQkgKChicyA8PSBzZWN0b3JzKSA/IGJzIDogMCksIDEsICZlcnJtc2cpKSB7CisJCSAgICBjaGFyICpiYWQgPSBfKCJCYWQgcHJpbWFyeSBwYXJ0aXRpb24iKTsKKwkJICAgIGNoYXIgKm1zZyA9IChjaGFyICopIHhtYWxsb2Moc3RybGVuKGJhZCkgKyBzdHJsZW4oZXJybXNnKSArIDMwKTsKKwkJICAgIHNwcmludGYobXNnLCAiJXMgJWQ6ICVzIiwgYmFkLCBpLCBlcnJtc2cpOworCQkgICAgZmF0YWwobXNnLCA0KTsKKwkgICAgfQorCSAgICBpZiAoaXNfZXh0ZW5kZWQoYnVmZmVyLnAucGFydFtpXS5zeXNfaW5kKSkKKwkJdG1wX2V4dCA9IGV4dF9pbmZvOworCX0KKworCWlmIChpc19leHRlbmRlZCh0bXBfZXh0LmlkKSkgeworCSAgICBleHRfaW5mbyA9IHRtcF9leHQ7CisJICAgIGxvZ2ljYWxfc2VjdG9yc1tsb2dpY2FsXSA9CisJCSBleHRfaW5mby5maXJzdF9zZWN0b3IgKyBleHRfaW5mby5vZmZzZXQ7CisJICAgIHJlYWRfc2VjdG9yKGJ1ZmZlci5jLmIsIGxvZ2ljYWxfc2VjdG9yc1tsb2dpY2FsKytdKTsKKwkgICAgaSA9IDQ7CisJICAgIGRvIHsKKwkJZm9yIChwbiA9IDA7CisJCSAgICAgcG4gPCA0ICYmICghYnVmZmVyLnAucGFydFtwbl0uc3lzX2luZCB8fAorCQkJICAgICAgIGlzX2V4dGVuZGVkKGJ1ZmZlci5wLnBhcnRbcG5dLnN5c19pbmQpKTsKKwkJICAgICBwbisrKTsKKworCQlpZiAocG4gPCA0KSB7CisJCQlwID0gJiBidWZmZXIucC5wYXJ0W3BuXTsKKwkJCWJzID0gZ2V0X3N0YXJ0X3NlY3QocCk7CisJCQlic3ogPSBnZXRfbnJfc2VjdHMocCk7CisKKwkJCWlmIChhZGRfcGFydChpKyssIHAtPnN5c19pbmQsIHAtPmJvb3RfaW5kLAorCQkJICAgICBsb2dpY2FsX3NlY3RvcnNbbG9naWNhbC0xXSwKKwkJCSAgICAgbG9naWNhbF9zZWN0b3JzW2xvZ2ljYWwtMV0gKyBicyArIGJzeiAtIDEsCisJCQkgICAgIGJzLCAxLCAmZXJybXNnKSkgeworCQkJCWNoYXIgKmJhZCA9IF8oIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIpOworCQkJCWNoYXIgKm1zZyA9IChjaGFyICopIHhtYWxsb2Moc3RybGVuKGJhZCkgKyBzdHJsZW4oZXJybXNnKSArIDMwKTsKKwkJCQlzcHJpbnRmKG1zZywgIiVzICVkOiAlcyIsIGJhZCwgaSwgZXJybXNnKTsKKwkJCQlmYXRhbChtc2csIDQpOworCQkJfQorCQl9CisKKwkJZm9yIChwbiA9IDA7CisJCSAgICAgcG4gPCA0ICYmICFpc19leHRlbmRlZChidWZmZXIucC5wYXJ0W3BuXS5zeXNfaW5kKTsKKwkJICAgICBwbisrKTsKKwkJaWYgKHBuIDwgNCkgeworCQkJcCA9ICYgYnVmZmVyLnAucGFydFtwbl07CisJCQlicyA9IGdldF9zdGFydF9zZWN0KHApOworCQkJbG9naWNhbF9zZWN0b3JzW2xvZ2ljYWxdID0gZXh0X2luZm8uZmlyc3Rfc2VjdG9yCisJCQkJKyBleHRfaW5mby5vZmZzZXQgKyBiczsKKwkJCXJlYWRfc2VjdG9yKGJ1ZmZlci5jLmIsIGxvZ2ljYWxfc2VjdG9yc1tsb2dpY2FsKytdKTsKKwkJfQorCSAgICB9IHdoaWxlIChwbiA8IDQgJiYgbG9naWNhbCA8IE1BWElNVU1fUEFSVFMtNCk7CisJfQorICAgIH0KK30KKworc3RhdGljIHZvaWQKK2ZpbGxfcGFydF90YWJsZShzdHJ1Y3QgcGFydGl0aW9uICpwLCBwYXJ0aXRpb25faW5mbyAqcGkpIHsKKyAgICBsb25nIGxvbmcgYmVnaW47CisKKyAgICBwLT5ib290X2luZCA9IHBpLT5mbGFnczsKKyAgICBwLT5zeXNfaW5kID0gcGktPmlkOworICAgIGJlZ2luID0gcGktPmZpcnN0X3NlY3RvciArIHBpLT5vZmZzZXQ7CisgICAgaWYgKElTX0xPR0lDQUwocGktPm51bSkpCisJc2V0X3N0YXJ0X3NlY3QocCxwaS0+b2Zmc2V0KTsKKyAgICBlbHNlCisJc2V0X3N0YXJ0X3NlY3QocCxiZWdpbik7CisgICAgc2V0X25yX3NlY3RzKHAsIHBpLT5sYXN0X3NlY3RvciAtIGJlZ2luICsgMSk7CisgICAgc2V0X2hzY19iZWdpbihwLCBiZWdpbik7CisgICAgc2V0X2hzY19lbmQocCwgcGktPmxhc3Rfc2VjdG9yKTsKK30KKworc3RhdGljIHZvaWQKK2ZpbGxfcHJpbWFyeV90YWJsZShwYXJ0aXRpb25fdGFibGUgKmJ1ZmZlcikgeworICAgIGludCBpOworCisgICAgLyogWmVybyBvdXQgZXhpc3RpbmcgdGFibGUgKi8KKyAgICBmb3IgKGkgPSAweDFCRTsgaSA8IFNFQ1RPUl9TSVpFOyBpKyspCisJYnVmZmVyLT5jLmJbaV0gPSAwOworCisgICAgZm9yIChpID0gMDsgaSA8IG51bV9wYXJ0czsgaSsrKQorCWlmIChJU19QUklNQVJZKHBfaW5mb1tpXS5udW0pKQorCSAgICBmaWxsX3BhcnRfdGFibGUoJihidWZmZXItPnAucGFydFtwX2luZm9baV0ubnVtXSksICYocF9pbmZvW2ldKSk7CisKKyAgICBpZiAoaXNfZXh0ZW5kZWQoZXh0X2luZm8uaWQpKQorCWZpbGxfcGFydF90YWJsZSgmKGJ1ZmZlci0+cC5wYXJ0W2V4dF9pbmZvLm51bV0pLCAmZXh0X2luZm8pOworCisgICAgYnVmZmVyLT5wLm1hZ2ljZmxhZ1swXSA9IFBBUlRfVEFCTEVfRkxBRzA7CisgICAgYnVmZmVyLT5wLm1hZ2ljZmxhZ1sxXSA9IFBBUlRfVEFCTEVfRkxBRzE7Cit9CisKK3N0YXRpYyB2b2lkCitmaWxsX2xvZ2ljYWxfdGFibGUocGFydGl0aW9uX3RhYmxlICpidWZmZXIsIHBhcnRpdGlvbl9pbmZvICpwaSkgeworICAgIHN0cnVjdCBwYXJ0aXRpb24gKnA7CisgICAgaW50IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbG9naWNhbCAmJiBwaS0+Zmlyc3Rfc2VjdG9yICE9IGxvZ2ljYWxfc2VjdG9yc1tpXTsgaSsrKTsKKyAgICBpZiAoaSA9PSBsb2dpY2FsIHx8IGJ1ZmZlci0+cC5tYWdpY2ZsYWdbMF0gIT0gUEFSVF9UQUJMRV9GTEFHMAorCSAgICAgICAgICAgICB8fCBidWZmZXItPnAubWFnaWNmbGFnWzFdICE9IFBBUlRfVEFCTEVfRkxBRzEpCisJZm9yIChpID0gMDsgaSA8IFNFQ1RPUl9TSVpFOyBpKyspCisJICAgIGJ1ZmZlci0+Yy5iW2ldID0gMDsKKworICAgIC8qIFplcm8gb3V0IGV4aXN0aW5nIHRhYmxlICovCisgICAgZm9yIChpID0gMHgxQkU7IGkgPCBTRUNUT1JfU0laRTsgaSsrKQorCWJ1ZmZlci0+Yy5iW2ldID0gMDsKKworICAgIGZpbGxfcGFydF90YWJsZSgmKGJ1ZmZlci0+cC5wYXJ0WzBdKSwgcGkpOworCisgICAgZm9yIChpID0gMDsKKwkgaSA8IG51bV9wYXJ0cyAmJiBwaS0+bnVtICE9IHBfaW5mb1tpXS5udW0gLSAxOworCSBpKyspOworCisgICAgaWYgKGkgPCBudW1fcGFydHMpIHsKKwlwID0gJihidWZmZXItPnAucGFydFsxXSk7CisJcGkgPSAmKHBfaW5mb1tpXSk7CisKKwlwLT5ib290X2luZCA9IDA7CisJcC0+c3lzX2luZCA9IERPU19FWFRFTkRFRDsKKwlzZXRfc3RhcnRfc2VjdChwLCBwaS0+Zmlyc3Rfc2VjdG9yIC0gZXh0X2luZm8uZmlyc3Rfc2VjdG9yIC0gZXh0X2luZm8ub2Zmc2V0KTsKKwlzZXRfbnJfc2VjdHMocCwgcGktPmxhc3Rfc2VjdG9yIC0gcGktPmZpcnN0X3NlY3RvciArIDEpOworCXNldF9oc2NfYmVnaW4ocCwgcGktPmZpcnN0X3NlY3Rvcik7CisJc2V0X2hzY19lbmQocCwgcGktPmxhc3Rfc2VjdG9yKTsKKyAgICB9CisKKyAgICBidWZmZXItPnAubWFnaWNmbGFnWzBdID0gUEFSVF9UQUJMRV9GTEFHMDsKKyAgICBidWZmZXItPnAubWFnaWNmbGFnWzFdID0gUEFSVF9UQUJMRV9GTEFHMTsKK30KKworc3RhdGljIHZvaWQKK3dyaXRlX3BhcnRfdGFibGUodm9pZCkgeworICAgIGludCBpLCBjdCwgZG9uZSA9IEZBTFNFLCBsZW47CisgICAgcGFydGl0aW9uX3RhYmxlIGJ1ZmZlcjsKKyAgICBzdHJ1Y3Qgc3RhdCBzOworICAgIGludCBpc19iZGV2OworICAgIGNoYXIgcmVzcG9uc2VbTElORV9MRU5HVEhdOworCisgICAgaWYgKG9wZW50eXBlID09IE9fUkRPTkxZKSB7CisJIHByaW50X3dhcm5pbmcoXygiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIpKTsKKwkgcmVmcmVzaCgpOworCSBnZXRjaCgpOworCSBjbGVhcl93YXJuaW5nKCk7CisJIHJldHVybjsKKyAgICB9CisKKyAgICBpc19iZGV2ID0gMDsKKyAgICBpZihmc3RhdChmZCwgJnMpID09IDAgJiYgU19JU0JMSyhzLnN0X21vZGUpKQorCSBpc19iZGV2ID0gMTsKKworICAgIGlmIChpc19iZGV2KSB7CisJIHByaW50X3dhcm5pbmcoXygiV2FybmluZyEhICBUaGlzIG1heSBkZXN0cm95IGRhdGEgb24geW91ciBkaXNrISIpKTsKKworCSB3aGlsZSAoIWRvbmUpIHsKKwkgICAgICBtdmFkZHN0cihDT01NQU5EX0xJTkVfWSwgQ09NTUFORF9MSU5FX1gsCisJCSAgICAgICBfKCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZSAiCisJCSAgICAgICAidG8gZGlzaz8gKHllcyBvciBubyk6ICIpKTsKKwkgICAgICBsZW4gPSBnZXRfc3RyaW5nKHJlc3BvbnNlLCBMSU5FX0xFTkdUSCwgTlVMTCk7CisJICAgICAgY2xlYXJfd2FybmluZygpOworCSAgICAgIGlmIChsZW4gPT0gR1NfRVNDQVBFKQorCQkgICByZXR1cm47CisJICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcChyZXNwb25zZSwgXygibm8iKSkgPT0gMCB8fAorCQkgICAgICAgc3RyY2FzZWNtcChyZXNwb25zZSwgIm5vIikgPT0gMCkgeworCQkgICBwcmludF93YXJuaW5nKF8oIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siKSk7CisJCSAgIHJldHVybjsKKwkgICAgICB9IGVsc2UgaWYgKHN0cmNhc2VjbXAocmVzcG9uc2UsIF8oInllcyIpKSA9PSAwIHx8CisJCQkgc3RyY2FzZWNtcChyZXNwb25zZSwgInllcyIpID09IDApCisJCSAgIGRvbmUgPSBUUlVFOworCSAgICAgIGVsc2UKKwkJICAgcHJpbnRfd2FybmluZyhfKCJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIpKTsKKwkgfQorCisJIGNsZWFyX3dhcm5pbmcoKTsKKwkgcHJpbnRfd2FybmluZyhfKCJXcml0aW5nIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrLi4uIikpOworCSByZWZyZXNoKCk7CisgICAgfQorCisgICAgcmVhZF9zZWN0b3IoYnVmZmVyLmMuYiwgMCk7CisgICAgZmlsbF9wcmltYXJ5X3RhYmxlKCZidWZmZXIpOworICAgIHdyaXRlX3NlY3RvcihidWZmZXIuYy5iLCAwKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBudW1fcGFydHM7IGkrKykKKwlpZiAoSVNfTE9HSUNBTChwX2luZm9baV0ubnVtKSkgeworCSAgICByZWFkX3NlY3RvcihidWZmZXIuYy5iLCBwX2luZm9baV0uZmlyc3Rfc2VjdG9yKTsKKwkgICAgZmlsbF9sb2dpY2FsX3RhYmxlKCZidWZmZXIsICYocF9pbmZvW2ldKSk7CisJICAgIHdyaXRlX3NlY3RvcihidWZmZXIuYy5iLCBwX2luZm9baV0uZmlyc3Rfc2VjdG9yKTsKKwl9CisKKyAgICBpZiAoaXNfYmRldikgeworI2lmZGVmIEJMS1JSUEFSVAorCSBzeW5jKCk7CisJIGlmICghaW9jdGwoZmQsQkxLUlJQQVJUKSkKKwkgICAgICBjaGFuZ2VkID0gVFJVRTsKKyNlbmRpZgorCSBzeW5jKCk7CisKKwkgY2xlYXJfd2FybmluZygpOworCSBpZiAoY2hhbmdlZCkKKwkgICAgICBwcmludF93YXJuaW5nKF8oIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIikpOworCSBlbHNlCisJICAgICAgcHJpbnRfd2FybmluZyhfKCJXcm90ZSBwYXJ0aXRpb24gdGFibGUsIGJ1dCByZS1yZWFkIHRhYmxlIGZhaWxlZC4gIFJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIpKTsKKyAgICB9IGVsc2UKKwkgcHJpbnRfd2FybmluZyhfKCJXcm90ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIpKTsKKworICAgIC8qIENoZWNrOiB1bmlxdWUgYm9vdGFibGUgcHJpbWFyeSBwYXJ0aXRpb24/ICovCisgICAgY3QgPSAwOworICAgIGZvciAoaSA9IDA7IGkgPCBudW1fcGFydHM7IGkrKykKKwlpZiAoSVNfUFJJTUFSWShpKSAmJiBwX2luZm9baV0uZmxhZ3MgPT0gQUNUSVZFX0ZMQUcpCisJICAgIGN0Kys7CisgICAgaWYgKGN0ID09IDApCisJcHJpbnRfd2FybmluZyhfKCJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIpKTsKKyAgICBpZiAoY3QgPiAxKQorCXByaW50X3dhcm5pbmcoXygiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iKSk7Cit9CisKK3N0YXRpYyB2b2lkCitmcF9wcmludGYoRklMRSAqZnAsIGNoYXIgKmZvcm1hdCwgLi4uKSB7CisgICAgdmFfbGlzdCBhcmdzOworICAgIGNoYXIgYnVmWzEwMjRdOworICAgIGludCB5LCB4OworCisgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKyAgICB2c25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgZm9ybWF0LCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7CisKKyAgICBpZiAoZnAgPT0gTlVMTCkgeworCS8qIFRoZSBmb2xsb3dpbmcgd29ya3MgYmVzdCBpZiB0aGUgc3RyaW5nIHRvIGJlIHByaW50ZWQgaGFzIGF0CisgICAgICAgICAgIG1vc3Qgb25seSBvbmUgbmV3bGluZS4gKi8KKwlwcmludHcoIiVzIiwgYnVmKTsKKwlnZXR5eChzdGRzY3IsIHksIHgpOworCWlmICh5ID49IENPTU1BTkRfTElORV9ZLTIpIHsKKwkgICAgbWVudUNvbnRpbnVlKCk7CisJICAgIGVyYXNlKCk7CisJICAgIG1vdmUoMCwgMCk7CisJfQorICAgIH0gZWxzZQorCWZwcmludGYoZnAsICIlcyIsIGJ1Zik7Cit9CisKKyNkZWZpbmUgTUFYX1BFUl9MSU5FIDE2CitzdGF0aWMgdm9pZAorcHJpbnRfZmlsZV9idWZmZXIoRklMRSAqZnAsIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlcikgeworICAgIGludCBpLGw7CisKKyAgICBmb3IgKGkgPSAwLCBsID0gMDsgaSA8IFNFQ1RPUl9TSVpFOyBpKyssIGwrKykgeworCWlmIChsID09IDApCisJICAgIGZwX3ByaW50ZihmcCwgIjB4JTAzWDoiLCBpKTsKKwlmcF9wcmludGYoZnAsICIgJTAyWCIsIGJ1ZmZlcltpXSk7CisJaWYgKGwgPT0gTUFYX1BFUl9MSU5FIC0gMSkgeworCSAgICBmcF9wcmludGYoZnAsICJcbiIpOworCSAgICBsID0gLTE7CisJfQorICAgIH0KKyAgICBpZiAobCA+IDApCisJZnBfcHJpbnRmKGZwLCAiXG4iKTsKKyAgICBmcF9wcmludGYoZnAsICJcbiIpOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRfcmF3X3RhYmxlKHZvaWQpIHsKKyAgICBpbnQgaSwgdG9fZmlsZTsKKyAgICBwYXJ0aXRpb25fdGFibGUgYnVmZmVyOworICAgIGNoYXIgZm5hbWVbTElORV9MRU5HVEhdOworICAgIEZJTEUgKmZwOworCisgICAgaWYgKHByaW50X29ubHkpIHsKKwlmcCA9IHN0ZG91dDsKKwl0b19maWxlID0gVFJVRTsKKyAgICB9IGVsc2UgeworCW12YWRkc3RyKENPTU1BTkRfTElORV9ZLCBDT01NQU5EX0xJTkVfWCwKKwkJIF8oIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIikpOworCisJaWYgKCh0b19maWxlID0gZ2V0X3N0cmluZyhmbmFtZSwgTElORV9MRU5HVEgsIE5VTEwpKSA8IDApCisJICAgIHJldHVybjsKKworCWlmICh0b19maWxlKSB7CisJICAgIGlmICgoZnAgPSBmb3BlbihmbmFtZSwgInciKSkgPT0gTlVMTCkgeworCQljaGFyIGVycnN0cltMSU5FX0xFTkdUSF07CisJCXNucHJpbnRmKGVycnN0ciwgc2l6ZW9mKGVycnN0ciksCisJCQkgXygiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIiksIGZuYW1lKTsKKwkJcHJpbnRfd2FybmluZyhlcnJzdHIpOworCQlyZXR1cm47CisJICAgIH0KKwl9IGVsc2UgeworCSAgICBmcCA9IE5VTEw7CisJICAgIGVyYXNlKCk7CisJICAgIG1vdmUoMCwgMCk7CisJfQorICAgIH0KKworICAgIGZwX3ByaW50ZihmcCwgXygiRGlzayBEcml2ZTogJXNcbiIpLCBkaXNrX2RldmljZSk7CisKKyAgICBmcF9wcmludGYoZnAsIF8oIlNlY3RvciAwOlxuIikpOworICAgIHJlYWRfc2VjdG9yKGJ1ZmZlci5jLmIsIDApOworICAgIGZpbGxfcHJpbWFyeV90YWJsZSgmYnVmZmVyKTsKKyAgICBwcmludF9maWxlX2J1ZmZlcihmcCwgYnVmZmVyLmMuYik7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3BhcnRzOyBpKyspCisJaWYgKElTX0xPR0lDQUwocF9pbmZvW2ldLm51bSkpIHsKKwkgICAgZnBfcHJpbnRmKGZwLCBfKCJTZWN0b3IgJWQ6XG4iKSwgcF9pbmZvW2ldLmZpcnN0X3NlY3Rvcik7CisJICAgIHJlYWRfc2VjdG9yKGJ1ZmZlci5jLmIsIHBfaW5mb1tpXS5maXJzdF9zZWN0b3IpOworCSAgICBmaWxsX2xvZ2ljYWxfdGFibGUoJmJ1ZmZlciwgJihwX2luZm9baV0pKTsKKwkgICAgcHJpbnRfZmlsZV9idWZmZXIoZnAsIGJ1ZmZlci5jLmIpOworCX0KKworICAgIGlmICh0b19maWxlKSB7CisJaWYgKCFwcmludF9vbmx5KQorCSAgICBmY2xvc2UoZnApOworICAgIH0gZWxzZSB7CisgICAgICAgIG1lbnVDb250aW51ZSgpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3ByaW50X3BfaW5mb19lbnRyeShGSUxFICpmcCwgcGFydGl0aW9uX2luZm8gKnApIHsKKyAgICBsb25nIGxvbmcgc2l6ZTsKKyAgICBjaGFyIHBhcnRfc3RyWzQwXTsKKworICAgIGlmIChwLT5pZCA9PSBVTlVTQUJMRSkKKwlmcF9wcmludGYoZnAsIF8oIiAgIE5vbmUgICAiKSk7CisgICAgZWxzZSBpZiAocC0+aWQgPT0gRlJFRV9TUEFDRSAmJiBwLT5udW0gPT0gUFJJX09SX0xPRykKKwlmcF9wcmludGYoZnAsIF8oIiAgIFByaS9Mb2ciKSk7CisgICAgZWxzZSBpZiAocC0+aWQgPT0gRlJFRV9TUEFDRSAmJiBwLT5udW0gPT0gUFJJTUFSWSkKKwlmcF9wcmludGYoZnAsIF8oIiAgIFByaW1hcnkiKSk7CisgICAgZWxzZSBpZiAocC0+aWQgPT0gRlJFRV9TUEFDRSAmJiBwLT5udW0gPT0gTE9HSUNBTCkKKwlmcF9wcmludGYoZnAsIF8oIiAgIExvZ2ljYWwiKSk7CisgICAgZWxzZQorCWZwX3ByaW50ZihmcCwgIiUyZCAlLTcuN3MiLCBwLT5udW0rMSwKKwkJICBJU19MT0dJQ0FMKHAtPm51bSkgPyBfKCJMb2dpY2FsIikgOiBfKCJQcmltYXJ5IikpOworCisgICAgZnBfcHJpbnRmKGZwLCAiICIpOworCisgICAgZnBfcHJpbnRmKGZwLCAiJTExbGxkJWMiLCBwLT5maXJzdF9zZWN0b3IsCisJICAgICAgKChwLT5maXJzdF9zZWN0b3IvY3lsaW5kZXJfc2l6ZSkgIT0KKwkgICAgICAgKChmbG9hdClwLT5maXJzdF9zZWN0b3IvY3lsaW5kZXJfc2l6ZSkgPworCSAgICAgICAnKicgOiAnICcpKTsKKworICAgIGZwX3ByaW50ZihmcCwgIiUxMWxsZCVjIiwgcC0+bGFzdF9zZWN0b3IsCisJICAgICAgKCgocC0+bGFzdF9zZWN0b3IrMSkvY3lsaW5kZXJfc2l6ZSkgIT0KKwkgICAgICAgKChmbG9hdCkocC0+bGFzdF9zZWN0b3IrMSkvY3lsaW5kZXJfc2l6ZSkgPworCSAgICAgICAnKicgOiAnICcpKTsKKworICAgIGZwX3ByaW50ZihmcCwgIiU2bGQlYyIsIHAtPm9mZnNldCwKKwkgICAgICAoKCgocC0+Zmlyc3Rfc2VjdG9yID09IDAgfHwgSVNfTE9HSUNBTChwLT5udW0pKSAmJgorCQkgKHAtPm9mZnNldCAhPSBzZWN0b3JzKSkgfHwKKwkJKHAtPmZpcnN0X3NlY3RvciAhPSAwICYmIElTX1BSSU1BUlkocC0+bnVtKSAmJgorCQkgcC0+b2Zmc2V0ICE9IDApKSA/CisJICAgICAgICcjJyA6ICcgJykpOworCisgICAgc2l6ZSA9IHAtPmxhc3Rfc2VjdG9yIC0gcC0+Zmlyc3Rfc2VjdG9yICsgMTsKKyAgICBmcF9wcmludGYoZnAsICIlMTFsbGQlYyIsIHNpemUsCisJICAgICAgKChzaXplL2N5bGluZGVyX3NpemUpICE9ICgoZmxvYXQpc2l6ZS9jeWxpbmRlcl9zaXplKSA/CisJICAgICAgICcqJyA6ICcgJykpOworCisgICAgLyogZnBfcHJpbnRmKGZwLCAiICIpOyAqLworCisgICAgaWYgKHAtPmlkID09IFVOVVNBQkxFKQorCXNwcmludGYocGFydF9zdHIsICIlLjE1cyIsIF8oIlVudXNhYmxlIikpOworICAgIGVsc2UgaWYgKHAtPmlkID09IEZSRUVfU1BBQ0UpCisJc3ByaW50ZihwYXJ0X3N0ciwgIiUuMTVzIiwgXygiRnJlZSBTcGFjZSIpKTsKKyAgICBlbHNlIGlmIChwYXJ0aXRpb25fdHlwZV9uYW1lKHAtPmlkKSkKKwlzcHJpbnRmKHBhcnRfc3RyLCAiJS4xNXMgKCUwMlgpIiwgXyhwYXJ0aXRpb25fdHlwZV9uYW1lKHAtPmlkKSksIHAtPmlkKTsKKyAgICBlbHNlCisJc3ByaW50ZihwYXJ0X3N0ciwgIiUuMTVzICglMDJYKSIsIF8oIlVua25vd24iKSwgcC0+aWQpOworICAgIGZwX3ByaW50ZihmcCwgIiUtMjAuMjBzIiwgcGFydF9zdHIpOworCisgICAgZnBfcHJpbnRmKGZwLCAiICIpOworCisgICAgaWYgKHAtPmZsYWdzID09IEFDVElWRV9GTEFHKQorCWZwX3ByaW50ZihmcCwgXygiQm9vdCIpLCBwLT5mbGFncyk7CisgICAgZWxzZSBpZiAocC0+ZmxhZ3MgIT0gMCkKKwlmcF9wcmludGYoZnAsIF8oIiglMDJYKSIpLCBwLT5mbGFncyk7CisgICAgZWxzZQorCWZwX3ByaW50ZihmcCwgXygiTm9uZSIpLCBwLT5mbGFncyk7CisKKyAgICBmcF9wcmludGYoZnAsICJcbiIpOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRfcF9pbmZvKHZvaWQpIHsKKyAgICBjaGFyIGZuYW1lW0xJTkVfTEVOR1RIXTsKKyAgICBGSUxFICpmcDsKKyAgICBpbnQgaSwgdG9fZmlsZSwgcGV4dCA9IGlzX2V4dGVuZGVkKGV4dF9pbmZvLmlkKTsKKworICAgIGlmIChwcmludF9vbmx5KSB7CisJZnAgPSBzdGRvdXQ7CisJdG9fZmlsZSA9IFRSVUU7CisgICAgfSBlbHNlIHsKKwltdmFkZHN0cihDT01NQU5EX0xJTkVfWSwgQ09NTUFORF9MSU5FX1gsCisJCSBfKCJFbnRlciBmaWxlbmFtZSBvciBwcmVzcyBSRVRVUk4gdG8gZGlzcGxheSBvbiBzY3JlZW46ICIpKTsKKworCWlmICgodG9fZmlsZSA9IGdldF9zdHJpbmcoZm5hbWUsIExJTkVfTEVOR1RILCBOVUxMKSkgPCAwKQorCSAgICByZXR1cm47CisKKwlpZiAodG9fZmlsZSkgeworCSAgICBpZiAoKGZwID0gZm9wZW4oZm5hbWUsICJ3IikpID09IE5VTEwpIHsKKwkJY2hhciBlcnJzdHJbTElORV9MRU5HVEhdOworCQlzbnByaW50ZihlcnJzdHIsIExJTkVfTEVOR1RILCBfKCJDYW5ub3Qgb3BlbiBmaWxlICclcyciKSwgZm5hbWUpOworCQlwcmludF93YXJuaW5nKGVycnN0cik7CisJCXJldHVybjsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIGZwID0gTlVMTDsKKwkgICAgZXJhc2UoKTsKKwkgICAgbW92ZSgwLCAwKTsKKwl9CisgICAgfQorCisgICAgZnBfcHJpbnRmKGZwLCBfKCJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iKSwgZGlza19kZXZpY2UpOworICAgIGZwX3ByaW50ZihmcCwgIlxuIik7CisgICAgZnBfcHJpbnRmKGZwLCBfKCIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iKSk7CisgICAgZnBfcHJpbnRmKGZwLCBfKCIgIyBUeXBlICAgICAgIFNlY3RvciAgICAgIFNlY3RvciAgIE9mZnNldCAgICBMZW5ndGggICBGaWxlc3lzdGVtIFR5cGUgKElEKSBGbGFnXG4iKSk7CisgICAgZnBfcHJpbnRmKGZwLCBfKCItLSAtLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tXG4iKSk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3BhcnRzOyBpKyspIHsKKwlpZiAocGV4dCAmJiAocF9pbmZvW2ldLmZpcnN0X3NlY3RvciA+PSBleHRfaW5mby5maXJzdF9zZWN0b3IpKSB7CisJICAgIHByaW50X3BfaW5mb19lbnRyeShmcCwmZXh0X2luZm8pOworCSAgICBwZXh0ID0gRkFMU0U7CisJfQorCXByaW50X3BfaW5mb19lbnRyeShmcCwgJihwX2luZm9baV0pKTsKKyAgICB9CisKKyAgICBpZiAodG9fZmlsZSkgeworCWlmICghcHJpbnRfb25seSkKKwkgICAgZmNsb3NlKGZwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtZW51Q29udGludWUoKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitwcmludF9wYXJ0X2VudHJ5KEZJTEUgKmZwLCBpbnQgbnVtLCBwYXJ0aXRpb25faW5mbyAqcGkpIHsKKyAgICBsb25nIGxvbmcgZmlyc3QgPSAwLCBzdGFydCA9IDAsIGVuZCA9IDAsIHNpemUgPSAwOworICAgIHVuc2lnbmVkIGNoYXIgc3MsIGVzLCBzaCwgZWg7CisgICAgaW50IHNjLCBlYzsKKyAgICBpbnQgZmxhZ3MgPSAwLCBpZCA9IDA7CisKKyAgICBzcyA9IHNoID0gZXMgPSBlaCA9IDA7CisgICAgc2MgPSBlYyA9IDA7CisKKyAgICBpZiAocGkgIT0gTlVMTCkgeworCWZsYWdzID0gcGktPmZsYWdzOworCWlkID0gcGktPmlkOworCisJaWYgKElTX0xPR0lDQUwobnVtKSkKKwkgICAgZmlyc3QgPSBwaS0+b2Zmc2V0OworCWVsc2UKKwkgICAgZmlyc3QgPSBwaS0+Zmlyc3Rfc2VjdG9yICsgcGktPm9mZnNldDsKKworCXN0YXJ0ID0gcGktPmZpcnN0X3NlY3RvciArIHBpLT5vZmZzZXQ7CisJZW5kID0gcGktPmxhc3Rfc2VjdG9yOworCXNpemUgPSBlbmQgLSBzdGFydCArIDE7CisKKwlzZXRfaHNjMCgmc2gsICZzcywgJnNjLCBzdGFydCk7CisJc2V0X2hzYzAoJmVoLCAmZXMsICZlYywgZW5kKTsKKyAgICB9CisKKyAgICBmcF9wcmludGYoZnAsICIlMmQgIDB4JTAyWCAlNGQgJTRkICU1ZCAweCUwMlggJTRkICU0ZCAlNWQgJTExbGxkICUxMWxsZFxuIiwKKwkgICAgICBudW0rMSwgZmxhZ3MsIHNoLCBzcywgc2MsIGlkLCBlaCwgZXMsIGVjLCBmaXJzdCwgc2l6ZSk7Cit9CisKKworc3RhdGljIHZvaWQKK3ByaW50X3BhcnRfdGFibGUodm9pZCkgeworICAgIGludCBpLCBqLCB0b19maWxlOworICAgIGNoYXIgZm5hbWVbTElORV9MRU5HVEhdOworICAgIEZJTEUgKmZwOworCisgICAgaWYgKHByaW50X29ubHkpIHsKKwlmcCA9IHN0ZG91dDsKKwl0b19maWxlID0gVFJVRTsKKyAgICB9IGVsc2UgeworCW12YWRkc3RyKENPTU1BTkRfTElORV9ZLCBDT01NQU5EX0xJTkVfWCwKKwkJIF8oIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIikpOworCisJaWYgKCh0b19maWxlID0gZ2V0X3N0cmluZyhmbmFtZSwgTElORV9MRU5HVEgsIE5VTEwpKSA8IDApCisJICAgIHJldHVybjsKKworCWlmICh0b19maWxlKSB7CisJICAgIGlmICgoZnAgPSBmb3BlbihmbmFtZSwgInciKSkgPT0gTlVMTCkgeworCQljaGFyIGVycnN0cltMSU5FX0xFTkdUSF07CisJCXNucHJpbnRmKGVycnN0ciwgTElORV9MRU5HVEgsIF8oIkNhbm5vdCBvcGVuIGZpbGUgJyVzJyIpLCBmbmFtZSk7CisJCXByaW50X3dhcm5pbmcoZXJyc3RyKTsKKwkJcmV0dXJuOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgZnAgPSBOVUxMOworCSAgICBlcmFzZSgpOworCSAgICBtb3ZlKDAsIDApOworCX0KKyAgICB9CisKKyAgICBmcF9wcmludGYoZnAsIF8oIlBhcnRpdGlvbiBUYWJsZSBmb3IgJXNcbiIpLCBkaXNrX2RldmljZSk7CisgICAgZnBfcHJpbnRmKGZwLCAiXG4iKTsKKyAgICAvKiBUaHJlZS1saW5lIGhlYWRpbmcuIFJlYWQgIlN0YXJ0IFNlY3RvciIgZXRjIHZlcnRpY2FsbHkuICovCisgICAgZnBfcHJpbnRmKGZwLCBfKCIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIikpOworICAgIGZwX3ByaW50ZihmcCwgXygiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iKSk7CisgICAgZnBfcHJpbnRmKGZwLCBfKCItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIpKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKwlmb3IgKGogPSAwOworCSAgICAgaiA8IG51bV9wYXJ0cyAmJiAocF9pbmZvW2pdLmlkIDw9IDAgfHwgcF9pbmZvW2pdLm51bSAhPSBpKTsKKwkgICAgIGorKyk7CisJaWYgKGogPCBudW1fcGFydHMpIHsKKwkgICAgcHJpbnRfcGFydF9lbnRyeShmcCwgaSwgJihwX2luZm9bal0pKTsKKwl9IGVsc2UgaWYgKGlzX2V4dGVuZGVkKGV4dF9pbmZvLmlkKSAmJiBleHRfaW5mby5udW0gPT0gaSkgeworCSAgICBwcmludF9wYXJ0X2VudHJ5KGZwLCBpLCAmZXh0X2luZm8pOworCX0gZWxzZSB7CisJICAgIHByaW50X3BhcnRfZW50cnkoZnAsIGksIE5VTEwpOworCX0KKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3BhcnRzOyBpKyspCisJaWYgKElTX0xPR0lDQUwocF9pbmZvW2ldLm51bSkpCisJICAgIHByaW50X3BhcnRfZW50cnkoZnAsIHBfaW5mb1tpXS5udW0sICYocF9pbmZvW2ldKSk7CisKKyAgICBpZiAodG9fZmlsZSkgeworCWlmICghcHJpbnRfb25seSkKKwkgICAgZmNsb3NlKGZwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtZW51Q29udGludWUoKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitwcmludF90YWJsZXModm9pZCkgeworICAgIGludCBkb25lID0gRkFMU0U7CisKKyAgICBzdGF0aWMgc3RydWN0IE1lbnVJdGVtIG1lbnVGb3JtYXRbXT0KKyAgICB7CisgICAgICAgIHsgJ3InLCBOXygiUmF3IiksIE5fKCJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IikgfSwKKyAgICAgICAgeyAncycsIE5fKCJTZWN0b3JzIiksIE5fKCJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIikgfSwKKyAgICAgICAgeyAndCcsIE5fKCJUYWJsZSIpLCBOXygiSnVzdCBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIikgfSwKKyAgICAgICAgeyBFU0MsIE5fKCJDYW5jZWwiKSwgTl8oIkRvbid0IHByaW50IHRoZSB0YWJsZSIpIH0sCisgICAgICAgIHsgMCwgTlVMTCwgTlVMTCB9CisgICAgfTsKKworICAgIHdoaWxlICghZG9uZSkKKwlzd2l0Y2ggKCB0b3VwcGVyKG1lbnVTaW1wbGUoIG1lbnVGb3JtYXQsIDIpKSApIHsKKwljYXNlICdSJzoKKwkgICAgcHJpbnRfcmF3X3RhYmxlKCk7CisJICAgIGRvbmUgPSBUUlVFOworCSAgICBicmVhazsKKwljYXNlICdTJzoKKwkgICAgcHJpbnRfcF9pbmZvKCk7CisJICAgIGRvbmUgPSBUUlVFOworCSAgICBicmVhazsKKwljYXNlICdUJzoKKwkgICAgcHJpbnRfcGFydF90YWJsZSgpOworCSAgICBkb25lID0gVFJVRTsKKwkgICAgYnJlYWs7CisJY2FzZSBFU0M6CisJICAgIGRvbmUgPSBUUlVFOworCSAgICBicmVhazsKKwl9Cit9CisKKyNkZWZpbmUgRU5EX09GX0hFTFAgIkVPSFMhIgorc3RhdGljIHZvaWQKK2Rpc3BsYXlfaGVscCh2b2lkKSB7CisgICAgY2hhciAqaGVscF90ZXh0W10gPSB7CisJTl8oIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siKSwKKwkiIiwKKwlOXygiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIiksCisJTl8oImFsbG93cyB5b3UgdG8gY3JlYXRlLCBkZWxldGUgYW5kIG1vZGlmeSBwYXJ0aXRpb25zIG9uIHlvdXIgaGFyZCIpLAorCU5fKCJkaXNrIGRyaXZlLiIpLAorCSIiLAorCU5fKCJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiKSwKKwkiIiwKKwlOXygiQ29tbWFuZCAgICAgIE1lYW5pbmciKSwKKwlOXygiLS0tLS0tLSAgICAgIC0tLS0tLS0iKSwKKwlOXygiICBiICAgICAgICAgIFRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIpLAorCU5fKCIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIpLAorCU5fKCIgIGcgICAgICAgICAgQ2hhbmdlIGN5bGluZGVycywgaGVhZHMsIHNlY3RvcnMtcGVyLXRyYWNrIHBhcmFtZXRlcnMiKSwKKwlOXygiICAgICAgICAgICAgIFdBUk5JTkc6IFRoaXMgb3B0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgcGVvcGxlIHdobyIpLAorCU5fKCIgICAgICAgICAgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLiIpLAorCU5fKCIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iKSwKKwlOXygiICBtICAgICAgICAgIE1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIiksCisJTl8oIiAgICAgICAgICAgICBOb3RlOiBUaGlzIG1heSBtYWtlIHRoZSBwYXJ0aXRpb24gaW5jb21wYXRpYmxlIHdpdGgiKSwKKwlOXygiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIiksCisJTl8oIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiKSwKKwlOXygiICBwICAgICAgICAgIFByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIpLAorCU5fKCIgICAgICAgICAgICAgVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IGZvcm1hdHMgZm9yIHRoZSBwYXJ0aXRpb24iKSwKKwlOXygiICAgICAgICAgICAgIHRoYXQgeW91IGNhbiBjaG9vc2UgZnJvbToiKSwKKwlOXygiICAgICAgICAgICAgICAgIHIgLSBSYXcgZGF0YSAoZXhhY3RseSB3aGF0IHdvdWxkIGJlIHdyaXR0ZW4gdG8gZGlzaykiKSwKKwlOXygiICAgICAgICAgICAgICAgIHMgLSBUYWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiKSwKKwlOXygiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IiksCisJTl8oIiAgcSAgICAgICAgICBRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIpLAorCU5fKCIgIHQgICAgICAgICAgQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUiKSwKKwlOXygiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIpLAorCU5fKCIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiKSwKKwlOXygiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiKSwKKyAgICAgICAgTl8oIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiKSwKKwlOXygiICAgICAgICAgICAgIGVpdGhlciBjb25maXJtIG9yIGRlbnkgdGhlIHdyaXRlIGJ5IGVudGVyaW5nIGB5ZXMnIG9yIiksCisJTl8oIiAgICAgICAgICAgICBgbm8nIiksCisJTl8oIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIiksCisJTl8oIkRvd24gQXJyb3cgICBNb3ZlIGN1cnNvciB0byB0aGUgbmV4dCBwYXJ0aXRpb24iKSwKKwlOXygiQ1RSTC1MICAgICAgIFJlZHJhd3MgdGhlIHNjcmVlbiIpLAorCU5fKCIgID8gICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iKSwKKwkiIiwKKwlOXygiTm90ZTogQWxsIG9mIHRoZSBjb21tYW5kcyBjYW4gYmUgZW50ZXJlZCB3aXRoIGVpdGhlciB1cHBlciBvciBsb3dlciIpLAorCU5fKCJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iKSwKKwlFTkRfT0ZfSEVMUAorICAgIH07CisKKyAgICBpbnQgY3VyX2xpbmUgPSAwOworICAgIEZJTEUgKmZwID0gTlVMTDsKKworICAgIGVyYXNlKCk7CisgICAgbW92ZSgwLCAwKTsKKyAgICB3aGlsZSAoc3RyY21wKGhlbHBfdGV4dFtjdXJfbGluZV0sIEVORF9PRl9IRUxQKSkgeworCWlmIChoZWxwX3RleHRbY3VyX2xpbmVdWzBdKQorCSAgICBmcF9wcmludGYoZnAsICIlc1xuIiwgXyhoZWxwX3RleHRbY3VyX2xpbmVdKSk7CisJZWxzZQorCSAgICBmcF9wcmludGYoZnAsICJcbiIpOworCWN1cl9saW5lKys7CisgICAgfQorICAgIG1lbnVDb250aW51ZSgpOworfQorCitzdGF0aWMgaW50CitjaGFuZ2VfZ2VvbWV0cnkodm9pZCkgeworICAgIGludCByZXRfdmFsID0gRkFMU0U7CisgICAgaW50IGRvbmUgPSBGQUxTRTsKKyAgICBjaGFyIGRlZltMSU5FX0xFTkdUSF07CisgICAgY2hhciByZXNwb25zZVtMSU5FX0xFTkdUSF07CisgICAgbG9uZyBsb25nIHRtcF92YWw7CisgICAgaW50IGk7CisKKyAgICB3aGlsZSAoIWRvbmUpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBNZW51SXRlbSBtZW51R2VvbWV0cnlbXT0KKyAgICAgICAgeworICAgICAgICAgICAgeyAnYycsIE5fKCJDeWxpbmRlcnMiKSwgTl8oIkNoYW5nZSBjeWxpbmRlciBnZW9tZXRyeSIpIH0sCisgICAgICAgICAgICB7ICdoJywgTl8oIkhlYWRzIiksIE5fKCJDaGFuZ2UgaGVhZCBnZW9tZXRyeSIpIH0sCisgICAgICAgICAgICB7ICdzJywgTl8oIlNlY3RvcnMiKSwgTl8oIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiKSB9LAorICAgICAgICAgICAgeyAnZCcsIE5fKCJEb25lIiksIE5fKCJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiKSB9LAorICAgICAgICAgICAgeyAwLCBOVUxMLCBOVUxMIH0KKyAgICAgICAgfTsKKwltb3ZlKENPTU1BTkRfTElORV9ZLCBDT01NQU5EX0xJTkVfWCk7CisJY2xydG9lb2woKTsKKwlyZWZyZXNoKCk7CisKKwljbGVhcl93YXJuaW5nKCk7CisKKwlzd2l0Y2ggKHRvdXBwZXIoIG1lbnVTaW1wbGUobWVudUdlb21ldHJ5LCAzKSApKSB7CisJY2FzZSAnQyc6CisJICAgIHNwcmludGYoZGVmLCAiJWxsdSIsIGFjdHVhbF9zaXplL2N5bGluZGVyX3NpemUpOworCSAgICBtdmFkZHN0cihDT01NQU5EX0xJTkVfWSwgQ09NTUFORF9MSU5FX1gsCisJCSAgICAgXygiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIpKTsKKwkgICAgaSA9IGdldF9zdHJpbmcocmVzcG9uc2UsIExJTkVfTEVOR1RILCBkZWYpOworCSAgICBpZiAoaSA9PSBHU19ERUZBVUxUKSB7CisJCXVzZXJfY3lsaW5kZXJzID0gYWN0dWFsX3NpemUvY3lsaW5kZXJfc2l6ZTsKKwkJcmV0X3ZhbCA9IFRSVUU7CisJICAgIH0gZWxzZSBpZiAoaSA+IDApIHsKKwkJdG1wX3ZhbCA9IGF0b2xsKHJlc3BvbnNlKTsKKwkJaWYgKHRtcF92YWwgPiAwKSB7CisJCSAgICB1c2VyX2N5bGluZGVycyA9IHRtcF92YWw7CisJCSAgICByZXRfdmFsID0gVFJVRTsKKwkJfSBlbHNlCisJCSAgICBwcmludF93YXJuaW5nKF8oIklsbGVnYWwgY3lsaW5kZXJzIHZhbHVlIikpOworCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgJ0gnOgorCSAgICBzcHJpbnRmKGRlZiwgIiVkIiwgaGVhZHMpOworCSAgICBtdmFkZHN0cihDT01NQU5EX0xJTkVfWSwgQ09NTUFORF9MSU5FX1gsCisJCSAgICAgXygiRW50ZXIgdGhlIG51bWJlciBvZiBoZWFkczogIikpOworCSAgICBpZiAoZ2V0X3N0cmluZyhyZXNwb25zZSwgTElORV9MRU5HVEgsIGRlZikgPiAwKSB7CisJCXRtcF92YWwgPSBhdG9sbChyZXNwb25zZSk7CisJCWlmICh0bXBfdmFsID4gMCAmJiB0bXBfdmFsIDw9IE1BWF9IRUFEUykgeworCQkgICAgdXNlcl9oZWFkcyA9IHRtcF92YWw7CisJCSAgICByZXRfdmFsID0gVFJVRTsKKwkJfSBlbHNlCisJCSAgICBwcmludF93YXJuaW5nKF8oIklsbGVnYWwgaGVhZHMgdmFsdWUiKSk7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSAnUyc6CisJICAgIHNwcmludGYoZGVmLCAiJWQiLCBzZWN0b3JzKTsKKwkgICAgbXZhZGRzdHIoQ09NTUFORF9MSU5FX1ksIENPTU1BTkRfTElORV9YLAorCQkgICAgIF8oIkVudGVyIHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2s6ICIpKTsKKwkgICAgaWYgKGdldF9zdHJpbmcocmVzcG9uc2UsIExJTkVfTEVOR1RILCBkZWYpID4gMCkgeworCQl0bXBfdmFsID0gYXRvbGwocmVzcG9uc2UpOworCQlpZiAodG1wX3ZhbCA+IDAgJiYgdG1wX3ZhbCA8PSBNQVhfU0VDVE9SUykgeworCQkgICAgdXNlcl9zZWN0b3JzID0gdG1wX3ZhbDsKKwkJICAgIHJldF92YWwgPSBUUlVFOworCQl9IGVsc2UKKwkJICAgIHByaW50X3dhcm5pbmcoXygiSWxsZWdhbCBzZWN0b3JzIHZhbHVlIikpOworCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgRVNDOgorCWNhc2UgJ0QnOgorCSAgICBkb25lID0gVFJVRTsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgcHV0Y2hhcihCRUxMKTsKKwkgICAgYnJlYWs7CisJfQorCisJaWYgKHJldF92YWwpIHsKKwkgICAgZGVjaWRlX29uX2dlb21ldHJ5KCk7CisJICAgIGRyYXdfc2NyZWVuKCk7CisJfQorICAgIH0KKworICAgIGlmIChyZXRfdmFsKSB7CisJbG9uZyBsb25nIGRpc2tfZW5kOworCisJZGlza19lbmQgPSB0b3RhbF9zaXplLTE7CisKKwlpZiAocF9pbmZvW251bV9wYXJ0cy0xXS5sYXN0X3NlY3RvciA+IGRpc2tfZW5kKSB7CisJICAgIHdoaWxlIChwX2luZm9bbnVtX3BhcnRzLTFdLmZpcnN0X3NlY3RvciA+IGRpc2tfZW5kKSB7CisJCWlmIChwX2luZm9bbnVtX3BhcnRzLTFdLmlkID09IEZSRUVfU1BBQ0UgfHwKKwkJICAgIHBfaW5mb1tudW1fcGFydHMtMV0uaWQgPT0gVU5VU0FCTEUpCisJCSAgICByZW1vdmVfcGFydChudW1fcGFydHMtMSk7CisJCWVsc2UKKwkJICAgIGRlbF9wYXJ0KG51bV9wYXJ0cy0xKTsKKwkgICAgfQorCisJICAgIHBfaW5mb1tudW1fcGFydHMtMV0ubGFzdF9zZWN0b3IgPSBkaXNrX2VuZDsKKworCSAgICBpZiAoZXh0X2luZm8ubGFzdF9zZWN0b3IgPiBkaXNrX2VuZCkKKwkJZXh0X2luZm8ubGFzdF9zZWN0b3IgPSBkaXNrX2VuZDsKKwl9IGVsc2UgaWYgKHBfaW5mb1tudW1fcGFydHMtMV0ubGFzdF9zZWN0b3IgPCBkaXNrX2VuZCkgeworCSAgICBpZiAocF9pbmZvW251bV9wYXJ0cy0xXS5pZCA9PSBGUkVFX1NQQUNFIHx8CisJCXBfaW5mb1tudW1fcGFydHMtMV0uaWQgPT0gVU5VU0FCTEUpIHsKKwkJcF9pbmZvW251bV9wYXJ0cy0xXS5sYXN0X3NlY3RvciA9IGRpc2tfZW5kOworCSAgICB9IGVsc2UgeworCQlpbnNlcnRfZW1wdHlfcGFydChudW1fcGFydHMsCisJCQkJICBwX2luZm9bbnVtX3BhcnRzLTFdLmxhc3Rfc2VjdG9yKzEsCisJCQkJICBkaXNrX2VuZCk7CisJICAgIH0KKwl9CisKKwkvKiBNYWtlIHN1cmUgdGhlIHBhcnRpdGlvbnMgYXJlIGNvcnJlY3QgKi8KKwljaGVja19wYXJ0X2luZm8oKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0X3ZhbDsKK30KKworc3RhdGljIHZvaWQKK2NoYW5nZV9pZChpbnQgaSkgeworICAgIGNoYXIgaWRbTElORV9MRU5HVEhdLCBkZWZbTElORV9MRU5HVEhdOworICAgIGludCBudW1fdHlwZXMgPSAwOworICAgIGludCBudW1fYWNyb3NzLCBudW1fZG93bjsKKyAgICBpbnQgbGVuLCBuZXdfaWQgPSAoKHBfaW5mb1tpXS5pZCA9PSBMSU5VWCkgPyBMSU5VWF9TV0FQIDogTElOVVgpOworICAgIGludCB5X3N0YXJ0LCB5X2VuZCwgcm93LCByb3dfbWluLCByb3dfbWF4LCByb3dfb2Zmc2V0LCBqLCBuZWVkbW9yZTsKKworICAgIGZvciAoaiA9IDE7IGkzODZfc3lzX3R5cGVzW2pdLm5hbWU7IGorKykgOworICAgIG51bV90eXBlcyA9IGotMTsJCS8qIGRvIG5vdCBjb3VudCB0aGUgRW1wdHkgdHlwZSAqLworCisgICAgbnVtX2Fjcm9zcyA9IENPTFMvQ09MX0lEX1dJRFRIOworICAgIG51bV9kb3duID0gKCgoZmxvYXQpbnVtX3R5cGVzKS9udW1fYWNyb3NzICsgMSk7CisgICAgeV9zdGFydCA9IENPTU1BTkRfTElORV9ZIC0gMSAtIG51bV9kb3duOworICAgIGlmICh5X3N0YXJ0IDwgMSkgeworCXlfc3RhcnQgPSAxOworCXlfZW5kID0gQ09NTUFORF9MSU5FX1kgLSAyOworICAgIH0gZWxzZSB7CisJaWYgKHlfc3RhcnQgPiBESVNLX1RBQkxFX1NUQVJUK2N1cl9wYXJ0KzQpCisJICAgIHlfc3RhcnQgPSBESVNLX1RBQkxFX1NUQVJUK2N1cl9wYXJ0KzQ7CisJeV9lbmQgPSB5X3N0YXJ0ICsgbnVtX2Rvd24gLSAxOworICAgIH0KKworICAgIHJvd19taW4gPSAxOworICAgIHJvd19tYXggPSBDT01NQU5EX0xJTkVfWSAtIDI7CisgICAgcm93X29mZnNldCA9IDA7CisgICAgZG8geworCWZvciAoaiA9IHlfc3RhcnQgLSAxOyBqIDw9IHlfZW5kICsgMTsgaisrKSB7CisJICAgIG1vdmUoaiwgMCk7CisJICAgIGNscnRvZW9sKCk7CisJfQorCW5lZWRtb3JlID0gMDsKKwlmb3IgKGogPSAxOyBpMzg2X3N5c190eXBlc1tqXS5uYW1lOyBqKyspIHsKKwkgICAgcm93ID0geV9zdGFydCArIChqLTEpICUgbnVtX2Rvd24gLSByb3dfb2Zmc2V0OworCSAgICBpZiAocm93ID49IHJvd19taW4gJiYgcm93IDw9IHJvd19tYXgpIHsKKwkJbW92ZShyb3csICgoai0xKS9udW1fZG93bikqQ09MX0lEX1dJRFRIICsgMSk7CisJCXByaW50dygiJTAyWCAlLTIwLjIwcyIsCisJCSAgICAgICBpMzg2X3N5c190eXBlc1tqXS50eXBlLAorCQkgICAgICAgXyhpMzg2X3N5c190eXBlc1tqXS5uYW1lKSk7CisJICAgIH0KKwkgICAgaWYgKHJvdyA+IHJvd19tYXgpCisJCW5lZWRtb3JlID0gMTsKKwl9CisJaWYgKG5lZWRtb3JlKQorCQltZW51Q29udGludWUoKTsKKwlyb3dfb2Zmc2V0ICs9IChyb3dfbWF4IC0gcm93X21pbiArIDEpOworICAgIH0gd2hpbGUobmVlZG1vcmUpOworCisgICAgc3ByaW50ZihkZWYsICIlMDJYIiwgbmV3X2lkKTsKKyAgICBtdmFkZHN0cihDT01NQU5EX0xJTkVfWSwgQ09NTUFORF9MSU5FX1gsIF8oIkVudGVyIGZpbGVzeXN0ZW0gdHlwZTogIikpOworICAgIGlmICgobGVuID0gZ2V0X3N0cmluZyhpZCwgMiwgZGVmKSkgPD0gMCAmJiBsZW4gIT0gR1NfREVGQVVMVCkKKwlyZXR1cm47CisKKyAgICBpZiAobGVuICE9IEdTX0RFRkFVTFQpIHsKKwlpZiAoIWlzeGRpZ2l0KGlkWzBdKSkKKwkgICAgcmV0dXJuOworCW5ld19pZCA9IChpc2RpZ2l0KGlkWzBdKSA/IGlkWzBdIC0gJzAnIDogdG9sb3dlcihpZFswXSkgLSAnYScgKyAxMCk7CisJaWYgKGxlbiA9PSAyKSB7CisJICAgIGlmIChpc3hkaWdpdChpZFsxXSkpCisJCW5ld19pZCA9IG5ld19pZCoxNiArCisJCSAgICAoaXNkaWdpdChpZFsxXSkgPyBpZFsxXSAtICcwJyA6IHRvbG93ZXIoaWRbMV0pIC0gJ2EnICsgMTApOworCSAgICBlbHNlCisJCXJldHVybjsKKwl9CisgICAgfQorCisgICAgaWYgKG5ld19pZCA9PSAwKQorCXByaW50X3dhcm5pbmcoXygiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IikpOworICAgIGVsc2UgaWYgKGlzX2V4dGVuZGVkKG5ld19pZCkpCisJcHJpbnRfd2FybmluZyhfKCJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZXh0ZW5kZWQiKSk7CisgICAgZWxzZQorCXBfaW5mb1tpXS5pZCA9IG5ld19pZDsKK30KKworc3RhdGljIHZvaWQKK2RyYXdfcGFydGl0aW9uKGludCBpKSB7CisgICAgaW50IGo7CisgICAgaW50IHkgPSBpICsgRElTS19UQUJMRV9TVEFSVCArIDIgLSAoY3VyX3BhcnQvTlVNX09OX1NDUkVFTikqTlVNX09OX1NDUkVFTjsKKyAgICBjaGFyICp0OworICAgIGxvbmcgbG9uZyBzaXplOworICAgIGRvdWJsZSBmc2l6ZTsKKworICAgIGlmICghYXJyb3dfY3Vyc29yKSB7CisJbW92ZSh5LCAwKTsKKwlmb3IgKGogPSAwOyBqIDwgQ09MUzsgaisrKQorCSAgICBhZGRjaCgnICcpOworICAgIH0KKworICAgIGlmIChwX2luZm9baV0uaWQgPiAwKSB7CisJY2hhciAqZGJuID0gbXlfYmFzZW5hbWUoZGlza19kZXZpY2UpOworCWludCBsID0gc3RybGVuKGRibik7CisJaW50IGRpZ2l0X2xhc3QgPSBpc2RpZ2l0KGRibltsLTFdKTsKKworCW12cHJpbnR3KHksIE5BTUVfU1RBUlQsCisJCSAiJXMlcyVkIiwgZGJuLCAoZGlnaXRfbGFzdCA/ICJwIiA6ICIiKSwKKwkJIHBfaW5mb1tpXS5udW0rMSk7CisJaWYgKHBfaW5mb1tpXS5mbGFncykgeworCSAgICBpZiAocF9pbmZvW2ldLmZsYWdzID09IEFDVElWRV9GTEFHKQorCQltdmFkZHN0cih5LCBGTEFHU19TVEFSVCwgXygiQm9vdCIpKTsKKwkgICAgZWxzZQorCQltdnByaW50dyh5LCBGTEFHU19TVEFSVCwgXygiVW5rKCUwMlgpIiksIHBfaW5mb1tpXS5mbGFncyk7CisJICAgIGlmIChwX2luZm9baV0uZmlyc3Rfc2VjdG9yID09IDAgfHwgSVNfTE9HSUNBTChwX2luZm9baV0ubnVtKSkgeworCQlpZiAocF9pbmZvW2ldLm9mZnNldCAhPSBzZWN0b3JzKQorCQkgICAgYWRkc3RyKF8oIiwgTkMiKSk7CisJICAgIH0gZWxzZSB7CisJCWlmIChwX2luZm9baV0ub2Zmc2V0ICE9IDApCisJCSAgICBhZGRzdHIoXygiLCBOQyIpKTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIGlmIChwX2luZm9baV0uZmlyc3Rfc2VjdG9yID09IDAgfHwgSVNfTE9HSUNBTChwX2luZm9baV0ubnVtKSkgeworCQlpZiAocF9pbmZvW2ldLm9mZnNldCAhPSBzZWN0b3JzKQorCQkgICAgbXZhZGRzdHIoeSwgRkxBR1NfU1RBUlQsIF8oIk5DIikpOworCSAgICB9IGVsc2UgeworCQlpZiAocF9pbmZvW2ldLm9mZnNldCAhPSAwKQorCQkgICAgbXZhZGRzdHIoeSwgRkxBR1NfU1RBUlQsIF8oIk5DIikpOworCSAgICB9CisJfQorICAgIH0KKyAgICBtdmFkZHN0cih5LCBQVFlQRV9TVEFSVCwKKwkgICAgIChwX2luZm9baV0uaWQgPT0gVU5VU0FCTEUgPyAiIiA6CisJICAgICAgKElTX0xPR0lDQUwocF9pbmZvW2ldLm51bSkgPyBfKCJMb2dpY2FsIikgOgorCSAgICAgICAocF9pbmZvW2ldLm51bSA+PSAwID8gXygiUHJpbWFyeSIpIDoKKwkJKHBfaW5mb1tpXS5udW0gPT0gUFJJX09SX0xPRyA/IF8oIlByaS9Mb2ciKSA6CisJCSAocF9pbmZvW2ldLm51bSA9PSBQUklNQVJZID8gXygiUHJpbWFyeSIpIDogXygiTG9naWNhbCIpKSkpKSkpOworCisgICAgdCA9IHBhcnRpdGlvbl90eXBlX3RleHQoaSk7CisgICAgaWYgKHQpCisJIG12YWRkc3RyKHksIEZTVFlQRV9TVEFSVCwgdCk7CisgICAgZWxzZQorCSBtdnByaW50dyh5LCBGU1RZUEVfU1RBUlQsIF8oIlVua25vd24gKCUwMlgpIiksIHBfaW5mb1tpXS5pZCk7CisKKyAgICBpZiAocF9pbmZvW2ldLnZvbHVtZV9sYWJlbFswXSkgeworCWludCBsID0gc3RybGVuKHBfaW5mb1tpXS52b2x1bWVfbGFiZWwpOworCWludCBzID0gU0laRV9TVEFSVC01LWw7CisJbXZwcmludHcoeSwgKHMgPiBMQUJFTF9TVEFSVCkgPyBMQUJFTF9TVEFSVCA6IHMsCisJCSAiIFslc10gICIsIHBfaW5mb1tpXS52b2x1bWVfbGFiZWwpOworICAgIH0KKworICAgIHNpemUgPSBwX2luZm9baV0ubGFzdF9zZWN0b3IgLSBwX2luZm9baV0uZmlyc3Rfc2VjdG9yICsgMTsKKyAgICBmc2l6ZSA9IChkb3VibGUpIHNpemUgKiBTRUNUT1JfU0laRTsKKyAgICBpZiAoZGlzcGxheV91bml0cyA9PSBTRUNUT1JTKQorCW12cHJpbnR3KHksIFNJWkVfU1RBUlQsICIlMTFsbGQiLCBzaXplKTsKKyAgICBlbHNlIGlmIChkaXNwbGF5X3VuaXRzID09IENZTElOREVSUykKKwltdnByaW50dyh5LCBTSVpFX1NUQVJULCAiJTExbGxkIiwgc2l6ZS9jeWxpbmRlcl9zaXplKTsKKyAgICBlbHNlIGlmIChkaXNwbGF5X3VuaXRzID09IE1FR0FCWVRFUykKKwltdnByaW50dyh5LCBTSVpFX1NUQVJULCAiJTExLjJmIiwgY2VpbGluZygoMTAwKmZzaXplKS8oSypLKSkvMTAwKTsKKyAgICBlbHNlIGlmIChkaXNwbGF5X3VuaXRzID09IEdJR0FCWVRFUykKKwltdnByaW50dyh5LCBTSVpFX1NUQVJULCAiJTExLjJmIiwgY2VpbGluZygoMTAwKmZzaXplKS8oSypLKkspKS8xMDApOworICAgIGlmIChzaXplICUgY3lsaW5kZXJfc2l6ZSAhPSAwIHx8CisJcF9pbmZvW2ldLmZpcnN0X3NlY3RvciAlIGN5bGluZGVyX3NpemUgIT0gMCkKKwltdnByaW50dyh5LCBDT0xVTU5TLTEsICIqIik7Cit9CisKK3N0YXRpYyB2b2lkCitpbml0X2NvbnN0KHZvaWQpIHsKKyAgICBpZiAoIWRlZmluZWQpIHsKKwlOQU1FX1NUQVJUID0gKCgoZmxvYXQpTkFNRV9TVEFSVCkvQ09MVU1OUykqQ09MUzsKKwlGTEFHU19TVEFSVCA9ICgoKGZsb2F0KUZMQUdTX1NUQVJUKS9DT0xVTU5TKSpDT0xTOworCVBUWVBFX1NUQVJUID0gKCgoZmxvYXQpUFRZUEVfU1RBUlQpL0NPTFVNTlMpKkNPTFM7CisJRlNUWVBFX1NUQVJUID0gKCgoZmxvYXQpRlNUWVBFX1NUQVJUKS9DT0xVTU5TKSpDT0xTOworCUxBQkVMX1NUQVJUID0gKCgoZmxvYXQpTEFCRUxfU1RBUlQpL0NPTFVNTlMpKkNPTFM7CisJU0laRV9TVEFSVCA9ICgoKGZsb2F0KVNJWkVfU1RBUlQpL0NPTFVNTlMpKkNPTFM7CisJQ09NTUFORF9MSU5FX1ggPSAoKChmbG9hdClDT01NQU5EX0xJTkVfWCkvQ09MVU1OUykqQ09MUzsKKworCUNPTU1BTkRfTElORV9ZID0gTElORVMgLSA0OworCVdBUk5JTkdfU1RBUlQgPSBMSU5FUyAtIDI7CisKKwlpZiAoKE5VTV9PTl9TQ1JFRU4gPSBDT01NQU5EX0xJTkVfWSAtIERJU0tfVEFCTEVfU1RBUlQgLSAzKSA8PSAwKQorCSAgICBOVU1fT05fU0NSRUVOID0gMTsKKworCUNPTFVNTlMgPSBDT0xTOworCWRlZmluZWQgPSBUUlVFOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK2RyYXdfc2NyZWVuKHZvaWQpIHsKKyAgICBpbnQgaTsKKyAgICBjaGFyICpsaW5lOworCisgICAgbGluZSA9IChjaGFyICopIHhtYWxsb2MoKENPTFMrMSkqc2l6ZW9mKGNoYXIpKTsKKworICAgIGlmICh3YXJuaW5nX2xhc3RfdGltZSkgeworCWZvciAoaSA9IDA7IGkgPCBDT0xTOyBpKyspIHsKKwkgICAgbW92ZShXQVJOSU5HX1NUQVJULCBpKTsKKwkgICAgbGluZVtpXSA9IGluY2goKTsKKwl9CisJbGluZVtDT0xTXSA9IDA7CisgICAgfQorCisgICAgZXJhc2UoKTsKKworICAgIGlmICh3YXJuaW5nX2xhc3RfdGltZSkKKwltdmFkZHN0cihXQVJOSU5HX1NUQVJULCAwLCBsaW5lKTsKKworCisgICAgc25wcmludGYobGluZSwgQ09MUysxLCAiY2ZkaXNrICglcykiLCBQQUNLQUdFX1NUUklORyk7CisgICAgbXZhZGRzdHIoSEVBREVSX1NUQVJULCAoQ09MUy1zdHJsZW4obGluZSkpLzIsIGxpbmUpOworICAgIHNucHJpbnRmKGxpbmUsIENPTFMrMSwgXygiRGlzayBEcml2ZTogJXMiKSwgZGlza19kZXZpY2UpOworICAgIG12YWRkc3RyKEhFQURFUl9TVEFSVCsyLCAoQ09MUy1zdHJsZW4obGluZSkpLzIsIGxpbmUpOworICAgIHsKKwkgICAgbG9uZyBsb25nIGJ5dGVzID0gYWN0dWFsX3NpemUqKGxvbmcgbG9uZykgU0VDVE9SX1NJWkU7CisJICAgIGxvbmcgbG9uZyBtZWdhYnl0ZXMgPSBieXRlcy8oSypLKTsKKworCSAgICBpZiAobWVnYWJ5dGVzIDwgMTAwMDApCisJCSAgICBzcHJpbnRmKGxpbmUsIF8oIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQgTUIiKSwKKwkJCSAgICBieXRlcywgbWVnYWJ5dGVzKTsKKwkgICAgZWxzZQorCQkgICAgc3ByaW50ZihsaW5lLCBfKCJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiKSwKKwkJCSAgICBieXRlcywgbWVnYWJ5dGVzL0ssICgxMCptZWdhYnl0ZXMvSyklMTApOworICAgIH0KKyAgICBtdmFkZHN0cihIRUFERVJfU1RBUlQrMywgKENPTFMtc3RybGVuKGxpbmUpKS8yLCBsaW5lKTsKKyAgICBzbnByaW50ZihsaW5lLCBDT0xTKzEsIF8oIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIpLAorCSAgICBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzKTsKKyAgICBtdmFkZHN0cihIRUFERVJfU1RBUlQrNCwgKENPTFMtc3RybGVuKGxpbmUpKS8yLCBsaW5lKTsKKworICAgIG12YWRkc3RyKERJU0tfVEFCTEVfU1RBUlQsIE5BTUVfU1RBUlQsIF8oIk5hbWUiKSk7CisgICAgbXZhZGRzdHIoRElTS19UQUJMRV9TVEFSVCwgRkxBR1NfU1RBUlQsIF8oIkZsYWdzIikpOworICAgIG12YWRkc3RyKERJU0tfVEFCTEVfU1RBUlQsIFBUWVBFX1NUQVJULTEsIF8oIlBhcnQgVHlwZSIpKTsKKyAgICBtdmFkZHN0cihESVNLX1RBQkxFX1NUQVJULCBGU1RZUEVfU1RBUlQsIF8oIkZTIFR5cGUiKSk7CisgICAgbXZhZGRzdHIoRElTS19UQUJMRV9TVEFSVCwgTEFCRUxfU1RBUlQrMSwgXygiW0xhYmVsXSIpKTsKKyAgICBpZiAoZGlzcGxheV91bml0cyA9PSBTRUNUT1JTKQorCW12YWRkc3RyKERJU0tfVEFCTEVfU1RBUlQsIFNJWkVfU1RBUlQsIF8oIiAgICBTZWN0b3JzIikpOworICAgIGVsc2UgaWYgKGRpc3BsYXlfdW5pdHMgPT0gQ1lMSU5ERVJTKQorCW12YWRkc3RyKERJU0tfVEFCTEVfU1RBUlQsIFNJWkVfU1RBUlQsIF8oIiAgQ3lsaW5kZXJzIikpOworICAgIGVsc2UgaWYgKGRpc3BsYXlfdW5pdHMgPT0gTUVHQUJZVEVTKQorCW12YWRkc3RyKERJU0tfVEFCTEVfU1RBUlQsIFNJWkVfU1RBUlQsIF8oIiAgU2l6ZSAoTUIpIikpOworICAgIGVsc2UgaWYgKGRpc3BsYXlfdW5pdHMgPT0gR0lHQUJZVEVTKQorCW12YWRkc3RyKERJU0tfVEFCTEVfU1RBUlQsIFNJWkVfU1RBUlQsIF8oIiAgU2l6ZSAoR0IpIikpOworCisgICAgbW92ZShESVNLX1RBQkxFX1NUQVJUKzEsIDEpOworICAgIGZvciAoaSA9IDE7IGkgPCBDT0xTLTE7IGkrKykKKwlhZGRjaCgnLScpOworCisgICAgaWYgKE5VTV9PTl9TQ1JFRU4gPj0gbnVtX3BhcnRzKQorCWZvciAoaSA9IDA7IGkgPCBudW1fcGFydHM7IGkrKykKKwkgICAgZHJhd19wYXJ0aXRpb24oaSk7CisgICAgZWxzZQorCWZvciAoaSA9IChjdXJfcGFydC9OVU1fT05fU0NSRUVOKSpOVU1fT05fU0NSRUVOOworCSAgICAgaSA8IE5VTV9PTl9TQ1JFRU4gKyAoY3VyX3BhcnQvTlVNX09OX1NDUkVFTikqTlVNX09OX1NDUkVFTiAmJgorCSAgICAgaSA8IG51bV9wYXJ0czsKKwkgICAgIGkrKykKKwkgICAgZHJhd19wYXJ0aXRpb24oaSk7CisKKyAgICBmcmVlKGxpbmUpOworfQorCitzdGF0aWMgaW50CitkcmF3X2N1cnNvcihpbnQgbW92ZSkgeworICAgIGlmIChtb3ZlICE9IDAgJiYgKGN1cl9wYXJ0ICsgbW92ZSA8IDAgfHwgY3VyX3BhcnQgKyBtb3ZlID49IG51bV9wYXJ0cykpCisJcmV0dXJuIC0xOworCisgICAgaWYgKGFycm93X2N1cnNvcikKKwltdmFkZHN0cihESVNLX1RBQkxFX1NUQVJUICsgY3VyX3BhcnQgKyAyCisJCSAtIChjdXJfcGFydC9OVU1fT05fU0NSRUVOKSpOVU1fT05fU0NSRUVOLCAwLCAiICAgIik7CisgICAgZWxzZQorCWRyYXdfcGFydGl0aW9uKGN1cl9wYXJ0KTsKKworICAgIGN1cl9wYXJ0ICs9IG1vdmU7CisKKyAgICBpZiAoKChjdXJfcGFydCAtIG1vdmUpL05VTV9PTl9TQ1JFRU4pKk5VTV9PTl9TQ1JFRU4gIT0KKwkoY3VyX3BhcnQvTlVNX09OX1NDUkVFTikqTlVNX09OX1NDUkVFTikKKwlkcmF3X3NjcmVlbigpOworCisgICAgaWYgKGFycm93X2N1cnNvcikKKwltdmFkZHN0cihESVNLX1RBQkxFX1NUQVJUICsgY3VyX3BhcnQgKyAyCisJCSAtIChjdXJfcGFydC9OVU1fT05fU0NSRUVOKSpOVU1fT05fU0NSRUVOLCAwLCAiLS0+Iik7CisgICAgZWxzZSB7CisJc3RhbmRvdXQoKTsKKwlkcmF3X3BhcnRpdGlvbihjdXJfcGFydCk7CisJc3RhbmRlbmQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2RvX2N1cnNlc19mZGlzayh2b2lkKSB7CisgICAgaW50IGRvbmUgPSBGQUxTRTsKKyAgICBjaGFyIGNvbW1hbmQ7CisgICAgaW50IGlzX2ZpcnN0X3J1biA9IFRSVUU7CisKKyAgICBzdGF0aWMgc3RydWN0IE1lbnVJdGVtIG1lbnVNYWluW10gPSB7CisgICAgICAgIHsgJ2InLCBOXygiQm9vdGFibGUiKSwgTl8oIlRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIpIH0sCisgICAgICAgIHsgJ2QnLCBOXygiRGVsZXRlIiksIE5fKCJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIikgfSwKKyAgICAgICAgeyAnZycsIE5fKCJHZW9tZXRyeSIpLCBOXygiQ2hhbmdlIGRpc2sgZ2VvbWV0cnkgKGV4cGVydHMgb25seSkiKSB9LAorICAgICAgICB7ICdoJywgTl8oIkhlbHAiKSwgTl8oIlByaW50IGhlbHAgc2NyZWVuIikgfSwKKyAgICAgICAgeyAnbScsIE5fKCJNYXhpbWl6ZSIpLCBOXygiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiKSB9LAorICAgICAgICB7ICduJywgTl8oIk5ldyIpLCBOXygiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIikgfSwKKyAgICAgICAgeyAncCcsIE5fKCJQcmludCIpLCBOXygiUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIikgfSwKKyAgICAgICAgeyAncScsIE5fKCJRdWl0IiksIE5fKCJRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIpIH0sCisgICAgICAgIHsgJ3QnLCBOXygiVHlwZSIpLCBOXygiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIpIH0sCisgICAgICAgIHsgJ3UnLCBOXygiVW5pdHMiKSwgTl8oIkNoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSAoTUIsIHNlY3QsIGN5bCkiKSB9LAorICAgICAgICB7ICdXJywgTl8oIldyaXRlIiksIE5fKCJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIikgfSwKKyAgICAgICAgeyAwLCBOVUxMLCBOVUxMIH0KKyAgICB9OworICAgIGN1cnNlc19zdGFydGVkID0gMTsKKyAgICBpbml0c2NyKCk7CisgICAgaW5pdF9jb25zdCgpOworCisgICAgb2xkX1NJR0lOVCA9IHNpZ25hbChTSUdJTlQsIGRpZSk7CisgICAgb2xkX1NJR1RFUk0gPSBzaWduYWwoU0lHVEVSTSwgZGllKTsKKyNpZmRlZiBERUJVRworICAgIHNpZ25hbChTSUdJTlQsIG9sZF9TSUdJTlQpOworICAgIHNpZ25hbChTSUdURVJNLCBvbGRfU0lHVEVSTSk7CisjZW5kaWYKKworICAgIGNicmVhaygpOworICAgIG5vZWNobygpOworICAgIG5vbmwoKTsKKworICAgIGZpbGxfcF9pbmZvKCk7CisKKyAgICBkcmF3X3NjcmVlbigpOworCisgICAgd2hpbGUgKCFkb25lKSB7CisJY2hhciAqczsKKworCSh2b2lkKWRyYXdfY3Vyc29yKDApOworCisJaWYgKHBfaW5mb1tjdXJfcGFydF0uaWQgPT0gRlJFRV9TUEFDRSkgeworCSAgICBzID0gKChvcGVudHlwZSA9PSBPX1JEV1IpID8gImhucHF1VyIgOiAiaG5wcXUiKTsKKwkgICAgY29tbWFuZCA9IG1lbnVTZWxlY3QoQ09NTUFORF9MSU5FX1ksIENPTU1BTkRfTElORV9YLCBtZW51TWFpbiwgMTAsCisJICAgICAgICBzLCBNRU5VX0hPUklaIHwgTUVOVV9CVVRUT04gfCBNRU5VX0FDQ0VQVF9PVEhFUlMsIDUpOworCX0gZWxzZSBpZiAocF9pbmZvW2N1cl9wYXJ0XS5pZCA+IDApIHsKKwkgICAgcyA9ICgob3BlbnR5cGUgPT0gT19SRFdSKSA/ICJiZGhtcHF0dVciIDogImJkaG1wcXR1Iik7CisJICAgIGNvbW1hbmQgPSBtZW51U2VsZWN0KENPTU1BTkRfTElORV9ZLCBDT01NQU5EX0xJTkVfWCwgbWVudU1haW4sIDEwLAorCSAgICAgICAgcywgTUVOVV9IT1JJWiB8IE1FTlVfQlVUVE9OIHwgTUVOVV9BQ0NFUFRfT1RIRVJTLCBpc19maXJzdF9ydW4gPyA3IDogMCk7CisJfSBlbHNlIHsKKwkgICAgcyA9ICgob3BlbnR5cGUgPT0gT19SRFdSKSA/ICJocHF1VyIgOiAiaHBxdSIpOworCSAgICBjb21tYW5kID0gbWVudVNlbGVjdChDT01NQU5EX0xJTkVfWSwgQ09NTUFORF9MSU5FX1gsIG1lbnVNYWluLCAxMCwKKwkgICAgICAgIHMsIE1FTlVfSE9SSVogfCBNRU5VX0JVVFRPTiB8IE1FTlVfQUNDRVBUX09USEVSUywgMCk7CisJfQorCWlzX2ZpcnN0X3J1biA9IEZBTFNFOworCXN3aXRjaCAoIGNvbW1hbmQgKSB7CisJY2FzZSAnQic6CisJY2FzZSAnYic6CisJICAgIGlmIChwX2luZm9bY3VyX3BhcnRdLmlkID4gMCkKKwkJcF9pbmZvW2N1cl9wYXJ0XS5mbGFncyBePSAweDgwOworCSAgICBlbHNlCisJCXByaW50X3dhcm5pbmcoXygiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiKSk7CisJICAgIGJyZWFrOworCWNhc2UgJ0QnOgorCWNhc2UgJ2QnOgorCSAgICBpZiAocF9pbmZvW2N1cl9wYXJ0XS5pZCA+IDApIHsKKwkJZGVsX3BhcnQoY3VyX3BhcnQpOworCQlpZiAoY3VyX3BhcnQgPj0gbnVtX3BhcnRzKQorCQkgICAgY3VyX3BhcnQgPSBudW1fcGFydHMgLSAxOworCQlkcmF3X3NjcmVlbigpOworCSAgICB9IGVsc2UKKwkJcHJpbnRfd2FybmluZyhfKCJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIpKTsKKwkgICAgYnJlYWs7CisJY2FzZSAnRyc6CisJY2FzZSAnZyc6CisJICAgIGlmIChjaGFuZ2VfZ2VvbWV0cnkoKSkKKwkJZHJhd19zY3JlZW4oKTsKKwkgICAgYnJlYWs7CisJY2FzZSAnTSc6CisJY2FzZSAnbSc6CisJICAgIGlmIChwX2luZm9bY3VyX3BhcnRdLmlkID4gMCkgeworCQlpZiAocF9pbmZvW2N1cl9wYXJ0XS5maXJzdF9zZWN0b3IgPT0gMCB8fAorCQkgICAgSVNfTE9HSUNBTChwX2luZm9bY3VyX3BhcnRdLm51bSkpIHsKKwkJICAgIGlmIChwX2luZm9bY3VyX3BhcnRdLm9mZnNldCA9PSBzZWN0b3JzKQorCQkJcF9pbmZvW2N1cl9wYXJ0XS5vZmZzZXQgPSAxOworCQkgICAgZWxzZQorCQkJcF9pbmZvW2N1cl9wYXJ0XS5vZmZzZXQgPSBzZWN0b3JzOworCQkgICAgZHJhd19zY3JlZW4oKTsKKwkJfSBlbHNlIGlmIChwX2luZm9bY3VyX3BhcnRdLm9mZnNldCAhPSAwKQorCQkgICAgcF9pbmZvW2N1cl9wYXJ0XS5vZmZzZXQgPSAwOworCQllbHNlCisJCSAgICBwcmludF93YXJuaW5nKF8oIkNhbm5vdCBtYXhpbWl6ZSB0aGlzIHBhcnRpdGlvbiIpKTsKKwkgICAgfSBlbHNlCisJCXByaW50X3dhcm5pbmcoXygiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIikpOworCSAgICBicmVhazsKKwljYXNlICdOJzoKKwljYXNlICduJzoKKwkgICAgaWYgKHBfaW5mb1tjdXJfcGFydF0uaWQgPT0gRlJFRV9TUEFDRSkgeworCQluZXdfcGFydChjdXJfcGFydCk7CisJCWRyYXdfc2NyZWVuKCk7CisJICAgIH0gZWxzZSBpZiAocF9pbmZvW2N1cl9wYXJ0XS5pZCA9PSBVTlVTQUJMRSkKKwkJcHJpbnRfd2FybmluZyhfKCJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIpKTsKKwkgICAgZWxzZQorCQlwcmludF93YXJuaW5nKF8oIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIikpOworCSAgICBicmVhazsKKwljYXNlICdQJzoKKwljYXNlICdwJzoKKwkgICAgcHJpbnRfdGFibGVzKCk7CisJICAgIGRyYXdfc2NyZWVuKCk7CisJICAgIGJyZWFrOworCWNhc2UgJ1EnOgorCWNhc2UgJ3EnOgorCSAgICBkb25lID0gVFJVRTsKKwkgICAgYnJlYWs7CisJY2FzZSAnVCc6CisJY2FzZSAndCc6CisJICAgIGlmIChwX2luZm9bY3VyX3BhcnRdLmlkID4gMCkgeworCQljaGFuZ2VfaWQoY3VyX3BhcnQpOworCQlkcmF3X3NjcmVlbigpOworCSAgICB9IGVsc2UKKwkJcHJpbnRfd2FybmluZyhfKCJDYW5ub3QgY2hhbmdlIHRoZSB0eXBlIG9mIGFuIGVtcHR5IHBhcnRpdGlvbiIpKTsKKwkgICAgYnJlYWs7CisJY2FzZSAnVSc6CisJY2FzZSAndSc6CisJICAgIGlmIChkaXNwbGF5X3VuaXRzID09IEdJR0FCWVRFUykKKwkJZGlzcGxheV91bml0cyA9IE1FR0FCWVRFUzsKKwkgICAgZWxzZSBpZiAoZGlzcGxheV91bml0cyA9PSBNRUdBQllURVMpCisJCWRpc3BsYXlfdW5pdHMgPSBTRUNUT1JTOworCSAgICBlbHNlIGlmIChkaXNwbGF5X3VuaXRzID09IFNFQ1RPUlMpCisJCWRpc3BsYXlfdW5pdHMgPSBDWUxJTkRFUlM7CisJICAgIGVsc2UgaWYgKGRpc3BsYXlfdW5pdHMgPT0gQ1lMSU5ERVJTKQorCQlkaXNwbGF5X3VuaXRzID0gTUVHQUJZVEVTOyAJLyogbm90IHlldCBHSUdBICovCisJICAgIGRyYXdfc2NyZWVuKCk7CisJICAgIGJyZWFrOworCWNhc2UgJ1cnOgorCSAgICB3cml0ZV9wYXJ0X3RhYmxlKCk7CisJICAgIGJyZWFrOworCWNhc2UgJ0gnOgorCWNhc2UgJ2gnOgorCWNhc2UgJz8nOgorCSAgICBkaXNwbGF5X2hlbHAoKTsKKwkgICAgZHJhd19zY3JlZW4oKTsKKwkgICAgYnJlYWs7CisJY2FzZSBNRU5VX1VQIDogLyogVXAgYXJyb3cgKi8KKwkgICAgaWYgKCFkcmF3X2N1cnNvcigtMSkpCisJCWNvbW1hbmQgPSAwOworCSAgICBlbHNlCisJCXByaW50X3dhcm5pbmcoXygiTm8gbW9yZSBwYXJ0aXRpb25zIikpOworCSAgICBicmVhazsKKwljYXNlIE1FTlVfRE9XTiA6IC8qIERvd24gYXJyb3cgKi8KKwkgICAgaWYgKCFkcmF3X2N1cnNvcigxKSkKKwkJY29tbWFuZCA9IDA7CisJICAgIGVsc2UKKwkJcHJpbnRfd2FybmluZyhfKCJObyBtb3JlIHBhcnRpdGlvbnMiKSk7CisJICAgIGJyZWFrOworCWNhc2UgUkVEUkFXS0VZOgorCSAgICBjbGVhcigpOworCSAgICBkcmF3X3NjcmVlbigpOworCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICBwcmludF93YXJuaW5nKF8oIklsbGVnYWwgY29tbWFuZCIpKTsKKwkgICAgcHV0Y2hhcihCRUxMKTsgLyogQ1RSTC1HICovCisJfQorICAgIH0KKworICAgIGRpZV94KDApOworfQorCitzdGF0aWMgdm9pZAorY29weXJpZ2h0KHZvaWQpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgXygiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iKSk7Cit9CisKK3N0YXRpYyB2b2lkCit1c2FnZShjaGFyICpwcm9nX25hbWUpIHsKKyAgICAvKiBVbmZvcnR1bmF0ZWx5LCB4Z2V0dGV4dCBkb2VzIG5vdCBoYW5kbGUgbXVsdGktbGluZSBzdHJpbmdzICovCisgICAgLyogc28sIGxldCdzIHVzZSBleHBsaWNpdCBcbidzIGluc3RlYWQgKi8KKyAgICBmcHJpbnRmKHN0ZGVyciwgXygiXG4iCisiVXNhZ2U6XG4iCisiUHJpbnQgdmVyc2lvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiUHJpbnQgcGFydGl0aW9uIHRhYmxlOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B0aW9uc10gZGV2aWNlXG4iCisiSW50ZXJhY3RpdmUgdXNlOlxuIgorIiAgICAgICAgJXMgW29wdGlvbnNdIGRldmljZVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiLWE6IFVzZSBhcnJvdyBpbnN0ZWFkIG9mIGhpZ2hsaWdodGluZztcbiIKKyItejogU3RhcnQgd2l0aCBhIHplcm8gcGFydGl0aW9uIHRhYmxlLCBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHB0IGZyb20gZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzogT3ZlcnJpZGUgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMsXG4iCisiICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHRoZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjay5cblxuIiksCisgICAgcHJvZ19uYW1lLCBwcm9nX25hbWUsIHByb2dfbmFtZSk7CisKKyAgICBjb3B5cmlnaHQoKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgICBpbnQgYzsKKyAgICBpbnQgaSwgbGVuOworCisgICAgc2V0bG9jYWxlKExDX0FMTCwgIiIpOworICAgIGJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisgICAgdGV4dGRvbWFpbihQQUNLQUdFKTsKKworICAgIHdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2LCAiYWM6Z2g6czp2elA6IikpICE9IC0xKQorCXN3aXRjaCAoYykgeworCWNhc2UgJ2EnOgorCSAgICBhcnJvd19jdXJzb3IgPSBUUlVFOworCSAgICBicmVhazsKKwljYXNlICdjJzoKKwkgICAgdXNlcl9jeWxpbmRlcnMgPSBjeWxpbmRlcnMgPSBhdG9sbChvcHRhcmcpOworCSAgICBpZiAoY3lsaW5kZXJzIDw9IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICIlczogJXNcbiIsIGFyZ3ZbMF0sIF8oIklsbGVnYWwgY3lsaW5kZXJzIHZhbHVlIikpOworCQlleGl0KDEpOworCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgJ2cnOgorCSAgICB1c2VfcGFydGl0aW9uX3RhYmxlX2dlb21ldHJ5ID0gVFJVRTsKKwkgICAgYnJlYWs7CisJY2FzZSAnaCc6CisJICAgIHVzZXJfaGVhZHMgPSBoZWFkcyA9IGF0b2kob3B0YXJnKTsKKwkgICAgaWYgKGhlYWRzIDw9IDAgfHwgaGVhZHMgPiBNQVhfSEVBRFMpIHsKKwkJZnByaW50ZihzdGRlcnIsICIlczogJXNcbiIsIGFyZ3ZbMF0sIF8oIklsbGVnYWwgaGVhZHMgdmFsdWUiKSk7CisJCWV4aXQoMSk7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSAncyc6CisJICAgIHVzZXJfc2VjdG9ycyA9IHNlY3RvcnMgPSBhdG9pKG9wdGFyZyk7CisJICAgIGlmIChzZWN0b3JzIDw9IDAgfHwgc2VjdG9ycyA+IE1BWF9TRUNUT1JTKSB7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6ICVzXG4iLCBhcmd2WzBdLCBfKCJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiKSk7CisJCWV4aXQoMSk7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSAndic6CisJICAgIGZwcmludGYoc3RkZXJyLCAiY2ZkaXNrICglcylcbiIsIFBBQ0tBR0VfU1RSSU5HKTsKKwkgICAgY29weXJpZ2h0KCk7CisJICAgIGV4aXQoMCk7CisJY2FzZSAneic6CisJICAgIHplcm9fdGFibGUgPSBUUlVFOworCSAgICBicmVhazsKKwljYXNlICdQJzoKKwkgICAgbGVuID0gc3RybGVuKG9wdGFyZyk7CisJICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworCQlzd2l0Y2ggKG9wdGFyZ1tpXSkgeworCQljYXNlICdyJzoKKwkJICAgIHByaW50X29ubHkgfD0gUFJJTlRfUkFXX1RBQkxFOworCQkgICAgYnJlYWs7CisJCWNhc2UgJ3MnOgorCQkgICAgcHJpbnRfb25seSB8PSBQUklOVF9TRUNUT1JfVEFCTEU7CisJCSAgICBicmVhazsKKwkJY2FzZSAndCc6CisJCSAgICBwcmludF9vbmx5IHw9IFBSSU5UX1BBUlRJVElPTl9UQUJMRTsKKwkJICAgIGJyZWFrOworCQlkZWZhdWx0OgorCQkgICAgdXNhZ2UoYXJndlswXSk7CisJCSAgICBleGl0KDEpOworCQl9CisJICAgIH0KKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgdXNhZ2UoYXJndlswXSk7CisJICAgIGV4aXQoMSk7CisJfQorCisgICAgaWYgKGFyZ2Mtb3B0aW5kID09IDEpCisJZGlza19kZXZpY2UgPSBhcmd2W29wdGluZF07CisgICAgZWxzZSBpZiAoYXJnYy1vcHRpbmQgIT0gMCkgeworCXVzYWdlKGFyZ3ZbMF0pOworCWV4aXQoMSk7CisgICAgfSBlbHNlIGlmICgoZmQgPSBvcGVuKERFRkFVTFRfREVWSUNFLCBPX1JET05MWSkpIDwgMCkKKwlkaXNrX2RldmljZSA9IEFMVEVSTkFURV9ERVZJQ0U7CisgICAgZWxzZSBjbG9zZShmZCk7CisKKyAgICBpZiAocHJpbnRfb25seSkgeworCWZpbGxfcF9pbmZvKCk7CisJaWYgKHByaW50X29ubHkgJiBQUklOVF9SQVdfVEFCTEUpCisJICAgIHByaW50X3Jhd190YWJsZSgpOworCWlmIChwcmludF9vbmx5ICYgUFJJTlRfU0VDVE9SX1RBQkxFKQorCSAgICBwcmludF9wX2luZm8oKTsKKwlpZiAocHJpbnRfb25seSAmIFBSSU5UX1BBUlRJVElPTl9UQUJMRSkKKwkgICAgcHJpbnRfcGFydF90YWJsZSgpOworICAgIH0gZWxzZQorCWRvX2N1cnNlc19mZGlzaygpOworCisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9jb21tb24uaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1MmI5YTUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9jb21tb24uaApAQCAtMCwwICsxLDE1IEBACisjaWZuZGVmIEZESVNLX0NPTU1PTl9ICisjZGVmaW5lIEZESVNLX0NPTU1PTl9ICisKKy8qIGNvbW1vbiBzdHVmZiBmb3IgZmRpc2ssIGNmZGlzaywgc2ZkaXNrICovCisKK3N0cnVjdCBzeXN0eXBlcyB7CisJdW5zaWduZWQgY2hhciB0eXBlOworCWNoYXIgKm5hbWU7Cit9OworCitleHRlcm4gc3RydWN0IHN5c3R5cGVzIGkzODZfc3lzX3R5cGVzW107CisKK2V4dGVybiBjaGFyICpwYXJ0bmFtZShjaGFyICpkZXYsIGludCBwbm8sIGludCBsdGgpOworCisjZW5kaWYgLyogRkRJU0tfQ09NTU9OX0ggKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlzay44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZGM5NjcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlzay44CkBAIC0wLDAgKzEsMjc1IEBACisuXCIgQ29weXJpZ2h0IDE5OTIsIDE5OTMgUmlja2FyZCBFLiBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSkKKy5cIiBDb3B5cmlnaHQgMTk5OCBBbmRyaWVzIEUuIEJyb3V3ZXIgKGFlYkBjd2kubmwpCisuXCIgTWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLlRIIEZESVNLIDggIjExIEp1bmUgMTk5OCIgIkxpbnV4IDIuMCIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorZmRpc2sgXC0gUGFydGl0aW9uIHRhYmxlIG1hbmlwdWxhdG9yIGZvciBMaW51eAorLlNIIFNZTk9QU0lTCisuQiBmZGlzaworLlJCIFsgXC11YyBdCisuUkIgWyBcLWIKKy5JUiBzZWN0b3JzaXplIF0KKy5SQiBbIFwtQworLklSIGN5bHMgXQorLlJCIFsgXC1ICisuSVIgaGVhZHMgXQorLlJCIFsgXC1TCisuSVIgc2VjdHMgXQorLkkgZGV2aWNlCisuc3AKKy5CIGZkaXNrIFwtbAorLlJCIFsgXC11IF0KKy5SSSBbIGRldmljZSAuLi5dCisuc3AKKy5CIGZkaXNrIFwtcworLklSIHBhcnRpdGlvbiAuLi4KKy5zcAorLkIgZmRpc2sgXC12Cisuc3AKKy5CIGZkaXNrIFwtaAorLlNIIERFU0NSSVBUSU9OCitIYXJkIGRpc2tzIGNhbiBiZSBkaXZpZGVkIGludG8gb25lIG9yIG1vcmUgbG9naWNhbCBkaXNrcyBjYWxsZWQKKy5JUiBwYXJ0aXRpb25zIC4KK1RoaXMgZGl2aXNpb24gaXMgZGVzY3JpYmVkIGluIHRoZQorLkkgInBhcnRpdGlvbiB0YWJsZSIKK2ZvdW5kIGluIHNlY3RvciAwIG9mIHRoZSBkaXNrLgorCitJbiB0aGUgQlNEIHdvcmxkIG9uZSB0YWxrcyBhYm91dCBgZGlzayBzbGljZXMnIGFuZCBhIGBkaXNrbGFiZWwnLgorCitMaW51eCBuZWVkcyBhdCBsZWFzdCBvbmUgcGFydGl0aW9uLCBuYW1lbHkgZm9yIGl0cyByb290IGZpbGUgc3lzdGVtLgorSXQgY2FuIHVzZSBzd2FwIGZpbGVzIGFuZC9vciBzd2FwIHBhcnRpdGlvbnMsIGJ1dCB0aGUgbGF0dGVyIGFyZSBtb3JlCitlZmZpY2llbnQuIFNvLCB1c3VhbGx5IG9uZSB3aWxsIHdhbnQgYSBzZWNvbmQgTGludXggcGFydGl0aW9uCitkZWRpY2F0ZWQgYXMgc3dhcCBwYXJ0aXRpb24uCitPbiBJbnRlbCBjb21wYXRpYmxlIGhhcmR3YXJlLCB0aGUgQklPUyB0aGF0IGJvb3RzIHRoZSBzeXN0ZW0KK2NhbiBvZnRlbiBvbmx5IGFjY2VzcyB0aGUgZmlyc3QgMTAyNCBjeWxpbmRlcnMgb2YgdGhlIGRpc2suCitGb3IgdGhpcyByZWFzb24gcGVvcGxlIHdpdGggbGFyZ2UgZGlza3Mgb2Z0ZW4gY3JlYXRlIGEgdGhpcmQgcGFydGl0aW9uLAoranVzdCBhIGZldyBNQiBsYXJnZSwgdHlwaWNhbGx5IG1vdW50ZWQgb24KKy5JUiAvYm9vdCAsCit0byBzdG9yZSB0aGUga2VybmVsIGltYWdlIGFuZCBhIGZldyBhdXhpbGlhcnkgZmlsZXMgbmVlZGVkIGF0IGJvb3QgdGltZSwKK3NvIGFzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaXMgc3R1ZmYgaXMgYWNjZXNzaWJsZSB0byB0aGUgQklPUy4KK1RoZXJlIG1heSBiZSByZWFzb25zIG9mIHNlY3VyaXR5LCBlYXNlIG9mIGFkbWluaXN0cmF0aW9uIGFuZCBiYWNrdXAsCitvciB0ZXN0aW5nLCB0byB1c2UgbW9yZSB0aGFuIHRoZSBtaW5pbXVtIG51bWJlciBvZiBwYXJ0aXRpb25zLgorCisuQiBmZGlzaworKGluIHRoZSBmaXJzdCBmb3JtIG9mIGludm9jYXRpb24pCitpcyBhIG1lbnUgZHJpdmVuIHByb2dyYW0gZm9yIGNyZWF0aW9uIGFuZCBtYW5pcHVsYXRpb24gb2YKK3BhcnRpdGlvbiB0YWJsZXMuCitJdCB1bmRlcnN0YW5kcyBET1MgdHlwZSBwYXJ0aXRpb24gdGFibGVzIGFuZCBCU0Qgb3IgU1VOIHR5cGUgZGlza2xhYmVscy4KKworLkIgZmRpc2sKK2RvZXNuJ3QgdW5kZXJzdGFuZCBHVUlEIFBhcnRpdGlvbiBUYWJsZSAoR1BUKSBhbmQKK2l0IGlzIG5vdCBkZXNpZ25lZCBmb3IgbGFyZ2UgcGFydGl0aW9ucy4gSW4gcGFydGljdWxhciBjYXNlIHVzZSBtb3JlIGFkdmFuY2VkIEdOVQorLkJSIHBhcnRlZCAoOCkuCisKK1RoZQorLkkgZGV2aWNlCitpcyB1c3VhbGx5IC9kZXYvc2RhLCAvZGV2L3NkYiBvciBzby4gQSBkZXZpY2UgbmFtZSByZWZlcnMgdG8gdGhlIGVudGlyZSBkaXNrLgorVGhlIG9sZCBzeXN0ZW1zIHdpdGhvdXQgbGliYXRhIChhIGxpYnJhcnkgdXNlZCBpbnNpZGUgdGhlIExpbnV4IGtlcm5lbCB0bworc3VwcG9ydCBBVEEgaG9zdCBjb250cm9sbGVycyBhbmQgZGV2aWNlcykgbWFrZSBhIGRpZmZlcmVuY2UgYmV0d2VlbiBJREUgYW5kCitTQ1NJIGRpc2tzLiBJbiBzdWNoIGEgY2FzZSB0aGUgZGV2aWNlIG5hbWUgd2lsbCBiZSAvZGV2L2hkKiAoSURFKSBvciAvZGV2L3NkKgorKFNDU0kpLgorCitUaGUKKy5JIHBhcnRpdGlvbgoraXMgYQorLkkgZGV2aWNlCituYW1lIGZvbGxvd2VkIGJ5IGEgcGFydGl0aW9uIG51bWJlci4gIEZvciBleGFtcGxlLAorLkIgL2Rldi9zZGExCitpcyB0aGUgZmlyc3QgcGFydGl0aW9uIG9uIHRoZSBmaXJzdCBoYXJkIGRpc2sgaW4gdGhlIHN5c3RlbS4KK1NlZSBhbHNvIExpbnV4IGtlcm5lbCBkb2N1bWVudGF0aW9uICh0aGUgRG9jdW1lbnRhdGlvbi9kZXZpY2VzLnR4dCBmaWxlKS4KKworQSBCU0QvU1VOIHR5cGUgZGlza2xhYmVsIGNhbiBkZXNjcmliZSA4IHBhcnRpdGlvbnMsCit0aGUgdGhpcmQgb2Ygd2hpY2ggc2hvdWxkIGJlIGEgYHdob2xlIGRpc2snIHBhcnRpdGlvbi4KK0RvIG5vdCBzdGFydCBhIHBhcnRpdGlvbiB0aGF0IGFjdHVhbGx5IHVzZXMgaXRzIGZpcnN0IHNlY3RvcgorKGxpa2UgYSBzd2FwIHBhcnRpdGlvbikgYXQgY3lsaW5kZXIgMCwgc2luY2UgdGhhdCB3aWxsCitkZXN0cm95IHRoZSBkaXNrbGFiZWwuCisKK0FuIElSSVgvU0dJIHR5cGUgZGlza2xhYmVsIGNhbiBkZXNjcmliZSAxNiBwYXJ0aXRpb25zLAordGhlIGVsZXZlbnRoIG9mIHdoaWNoIHNob3VsZCBiZSBhbiBlbnRpcmUgYHZvbHVtZScgcGFydGl0aW9uLAord2hpbGUgdGhlIG5pbnRoIHNob3VsZCBiZSBsYWJlbGVkIGB2b2x1bWUgaGVhZGVyJy4KK1RoZSB2b2x1bWUgaGVhZGVyIHdpbGwgYWxzbyBjb3ZlciB0aGUgcGFydGl0aW9uIHRhYmxlLCBpLmUuLAoraXQgc3RhcnRzIGF0IGJsb2NrIHplcm8gYW5kIGV4dGVuZHMgYnkgZGVmYXVsdCBvdmVyIGZpdmUgY3lsaW5kZXJzLgorVGhlIHJlbWFpbmluZyBzcGFjZSBpbiB0aGUgdm9sdW1lIGhlYWRlciBtYXkgYmUgdXNlZCBieSBoZWFkZXIKK2RpcmVjdG9yeSBlbnRyaWVzLiAgTm8gcGFydGl0aW9ucyBtYXkgb3ZlcmxhcCB3aXRoIHRoZSB2b2x1bWUgaGVhZGVyLgorQWxzbyBkbyBub3QgY2hhbmdlIGl0cyB0eXBlIGFuZCBtYWtlIHNvbWUgZmlsZSBzeXN0ZW0gb24gaXQsIHNpbmNlCit5b3Ugd2lsbCBsb3NlIHRoZSBwYXJ0aXRpb24gdGFibGUuICBVc2UgdGhpcyB0eXBlIG9mIGxhYmVsIG9ubHkgd2hlbgord29ya2luZyB3aXRoIExpbnV4IG9uIElSSVgvU0dJIG1hY2hpbmVzIG9yIElSSVgvU0dJIGRpc2tzIHVuZGVyIExpbnV4LgorCitBIERPUyB0eXBlIHBhcnRpdGlvbiB0YWJsZSBjYW4gZGVzY3JpYmUgYW4gdW5saW1pdGVkIG51bWJlcgorb2YgcGFydGl0aW9ucy4gSW4gc2VjdG9yIDAgdGhlcmUgaXMgcm9vbSBmb3IgdGhlIGRlc2NyaXB0aW9uCitvZiA0IHBhcnRpdGlvbnMgKGNhbGxlZCBgcHJpbWFyeScpLiBPbmUgb2YgdGhlc2UgbWF5IGJlIGFuCitleHRlbmRlZCBwYXJ0aXRpb247IHRoaXMgaXMgYSBib3ggaG9sZGluZyBsb2dpY2FsIHBhcnRpdGlvbnMsCit3aXRoIGRlc2NyaXB0b3JzIGZvdW5kIGluIGEgbGlua2VkIGxpc3Qgb2Ygc2VjdG9ycywgZWFjaAorcHJlY2VkaW5nIHRoZSBjb3JyZXNwb25kaW5nIGxvZ2ljYWwgcGFydGl0aW9ucy4KK1RoZSBmb3VyIHByaW1hcnkgcGFydGl0aW9ucywgcHJlc2VudCBvciBub3QsIGdldCBudW1iZXJzIDEtNC4KK0xvZ2ljYWwgcGFydGl0aW9ucyBzdGFydCBudW1iZXJpbmcgZnJvbSA1LgorCitJbiBhIERPUyB0eXBlIHBhcnRpdGlvbiB0YWJsZSB0aGUgc3RhcnRpbmcgb2Zmc2V0IGFuZCB0aGUgc2l6ZQorb2YgZWFjaCBwYXJ0aXRpb24gaXMgc3RvcmVkIGluIHR3byB3YXlzOiBhcyBhbiBhYnNvbHV0ZSBudW1iZXIKK29mIHNlY3RvcnMgKGdpdmVuIGluIDMyIGJpdHMpIGFuZCBhcyBhIEN5bGluZGVycy9IZWFkcy9TZWN0b3JzCit0cmlwbGUgKGdpdmVuIGluIDEwKzgrNiBiaXRzKS4gVGhlIGZvcm1lciBpcyBPSyAtIHdpdGggNTEyLWJ5dGUKK3NlY3RvcnMgdGhpcyB3aWxsIHdvcmsgdXAgdG8gMiBUQi4gVGhlIGxhdHRlciBoYXMgdHdvIGRpZmZlcmVudAorcHJvYmxlbXMuIEZpcnN0IG9mIGFsbCwgdGhlc2UgQy9IL1MgZmllbGRzIGNhbiBiZSBmaWxsZWQgb25seQord2hlbiB0aGUgbnVtYmVyIG9mIGhlYWRzIGFuZCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrCithcmUga25vd24uIFNlY29uZGx5LCBldmVuIGlmIHdlIGtub3cgd2hhdCB0aGVzZSBudW1iZXJzIHNob3VsZCBiZSwKK3RoZSAyNCBiaXRzIHRoYXQgYXJlIGF2YWlsYWJsZSBkbyBub3Qgc3VmZmljZS4KK0RPUyB1c2VzIEMvSC9TIG9ubHksIFdpbmRvd3MgdXNlcyBib3RoLCBMaW51eCBuZXZlciB1c2VzIEMvSC9TLgorCitJZiBwb3NzaWJsZSwKKy5CIGZkaXNrCit3aWxsIG9idGFpbiB0aGUgZGlzayBnZW9tZXRyeSBhdXRvbWF0aWNhbGx5LiAgVGhpcyBpcyBub3QKK25lY2Vzc2FyaWx5IHRoZSBwaHlzaWNhbCBkaXNrIGdlb21ldHJ5IChpbmRlZWQsIG1vZGVybiBkaXNrcyBkbyBub3QKK3JlYWxseSBoYXZlIGFueXRoaW5nIGxpa2UgYSBwaHlzaWNhbCBnZW9tZXRyeSwgY2VydGFpbmx5IG5vdCBzb21ldGhpbmcKK3RoYXQgY2FuIGJlIGRlc2NyaWJlZCBpbiBzaW1wbGlzdGljIEN5bGluZGVycy9IZWFkcy9TZWN0b3JzIGZvcm0pLAorYnV0IGlzIHRoZSBkaXNrIGdlb21ldHJ5IHRoYXQgTVMtRE9TIHVzZXMgZm9yIHRoZSBwYXJ0aXRpb24gdGFibGUuCisKK1VzdWFsbHkgYWxsIGdvZXMgd2VsbCBieSBkZWZhdWx0LCBhbmQgdGhlcmUgYXJlIG5vIHByb2JsZW1zIGlmCitMaW51eCBpcyB0aGUgb25seSBzeXN0ZW0gb24gdGhlIGRpc2suIEhvd2V2ZXIsIGlmIHRoZSBkaXNrIGhhcwordG8gYmUgc2hhcmVkIHdpdGggb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMsIGl0IGlzIG9mdGVuIGEgZ29vZCBpZGVhCit0byBsZXQgYW4gZmRpc2sgZnJvbSBhbm90aGVyIG9wZXJhdGluZyBzeXN0ZW0gbWFrZSBhdCBsZWFzdCBvbmUKK3BhcnRpdGlvbi4gV2hlbiBMaW51eCBib290cyBpdCBsb29rcyBhdCB0aGUgcGFydGl0aW9uIHRhYmxlLCBhbmQKK3RyaWVzIHRvIGRlZHVjZSB3aGF0IChmYWtlKSBnZW9tZXRyeSBpcyByZXF1aXJlZCBmb3IgZ29vZAorY29vcGVyYXRpb24gd2l0aCBvdGhlciBzeXN0ZW1zLgorCitXaGVuZXZlciBhIHBhcnRpdGlvbiB0YWJsZSBpcyBwcmludGVkIG91dCwgYSBjb25zaXN0ZW5jeSBjaGVjayBpcyBwZXJmb3JtZWQKK29uIHRoZSBwYXJ0aXRpb24gdGFibGUgZW50cmllcy4gIFRoaXMgY2hlY2sgdmVyaWZpZXMgdGhhdCB0aGUgcGh5c2ljYWwgYW5kCitsb2dpY2FsIHN0YXJ0IGFuZCBlbmQgcG9pbnRzIGFyZSBpZGVudGljYWwsIGFuZCB0aGF0IHRoZSBwYXJ0aXRpb24gc3RhcnRzCithbmQgZW5kcyBvbiBhIGN5bGluZGVyIGJvdW5kYXJ5IChleGNlcHQgZm9yIHRoZSBmaXJzdCBwYXJ0aXRpb24pLgorCitTb21lIHZlcnNpb25zIG9mIE1TLURPUyBjcmVhdGUgYSBmaXJzdCBwYXJ0aXRpb24gd2hpY2ggZG9lcyBub3QgYmVnaW4KK29uIGEgY3lsaW5kZXIgYm91bmRhcnksIGJ1dCBvbiBzZWN0b3IgMiBvZiB0aGUgZmlyc3QgY3lsaW5kZXIuCitQYXJ0aXRpb25zIGJlZ2lubmluZyBpbiBjeWxpbmRlciAxIGNhbm5vdCBiZWdpbiBvbiBhIGN5bGluZGVyIGJvdW5kYXJ5LCBidXQKK3RoaXMgaXMgdW5saWtlbHkgdG8gY2F1c2UgZGlmZmljdWx0eSB1bmxlc3MgeW91IGhhdmUgT1MvMiBvbiB5b3VyIG1hY2hpbmUuCisKK0Egc3luYygpIGFuZCBhIEJMS1JSUEFSVCBpb2N0bCgpIChyZXJlYWQgcGFydGl0aW9uIHRhYmxlIGZyb20gZGlzaykKK2FyZSBwZXJmb3JtZWQgYmVmb3JlIGV4aXRpbmcgd2hlbiB0aGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIHVwZGF0ZWQuCitMb25nIGFnbyBpdCB1c2VkIHRvIGJlIG5lY2Vzc2FyeSB0byByZWJvb3QgYWZ0ZXIgdGhlIHVzZSBvZiBmZGlzay4KK0kgZG8gbm90IHRoaW5rIHRoaXMgaXMgdGhlIGNhc2UgYW55bW9yZSAtIGluZGVlZCwgcmVib290aW5nIHRvbyBxdWlja2x5CittaWdodCBjYXVzZSBsb3NzIG9mIG5vdC15ZXQtd3JpdHRlbiBkYXRhLiBOb3RlIHRoYXQgYm90aCB0aGUga2VybmVsCithbmQgdGhlIGRpc2sgaGFyZHdhcmUgbWF5IGJ1ZmZlciBkYXRhLgorCisuU0ggIkRPUyA2LnggV0FSTklORyIKKworVGhlIERPUyA2LnggRk9STUFUIGNvbW1hbmQgbG9va3MgZm9yIHNvbWUgaW5mb3JtYXRpb24gaW4gdGhlIGZpcnN0CitzZWN0b3Igb2YgdGhlIGRhdGEgYXJlYSBvZiB0aGUgcGFydGl0aW9uLCBhbmQgdHJlYXRzIHRoaXMgaW5mb3JtYXRpb24KK2FzIG1vcmUgcmVsaWFibGUgdGhhbiB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIHBhcnRpdGlvbiB0YWJsZS4gIERPUworRk9STUFUIGV4cGVjdHMgRE9TIEZESVNLIHRvIGNsZWFyIHRoZSBmaXJzdCA1MTIgYnl0ZXMgb2YgdGhlIGRhdGEgYXJlYQorb2YgYSBwYXJ0aXRpb24gd2hlbmV2ZXIgYSBzaXplIGNoYW5nZSBvY2N1cnMuICBET1MgRk9STUFUIHdpbGwgbG9vayBhdAordGhpcyBleHRyYSBpbmZvcm1hdGlvbiBldmVuIGlmIHRoZSAvVSBmbGFnIGlzIGdpdmVuIC0tIHdlIGNvbnNpZGVyCit0aGlzIGEgYnVnIGluIERPUyBGT1JNQVQgYW5kIERPUyBGRElTSy4KKworVGhlIGJvdHRvbSBsaW5lIGlzIHRoYXQgaWYgeW91IHVzZSBjZmRpc2sgb3IgZmRpc2sgdG8gY2hhbmdlIHRoZSBzaXplIG9mIGEKK0RPUyBwYXJ0aXRpb24gdGFibGUgZW50cnksIHRoZW4geW91IG11c3QgYWxzbyB1c2UKKy5CIGRkCit0byB6ZXJvIHRoZSBmaXJzdCA1MTIgYnl0ZXMgb2YgdGhhdCBwYXJ0aXRpb24gYmVmb3JlIHVzaW5nIERPUyBGT1JNQVQgdG8KK2Zvcm1hdCB0aGUgcGFydGl0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIHlvdSB3ZXJlIHVzaW5nIGNmZGlzayB0byBtYWtlIGEgRE9TCitwYXJ0aXRpb24gdGFibGUgZW50cnkgZm9yIC9kZXYvc2RhMSwgdGhlbiAoYWZ0ZXIgZXhpdGluZyBmZGlzayBvciBjZmRpc2sKK2FuZCByZWJvb3RpbmcgTGludXggc28gdGhhdCB0aGUgcGFydGl0aW9uIHRhYmxlIGluZm9ybWF0aW9uIGlzIHZhbGlkKSB5b3UKK3dvdWxkIHVzZSB0aGUgY29tbWFuZCAiZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvc2RhMSBicz01MTIgY291bnQ9MSIgdG8gemVybwordGhlIGZpcnN0IDUxMiBieXRlcyBvZiB0aGUgcGFydGl0aW9uLgorCisuQiBCRSBFWFRSRU1FTFkgQ0FSRUZVTAoraWYgeW91IHVzZSB0aGUKKy5CIGRkCitjb21tYW5kLCBzaW5jZSBhIHNtYWxsIHR5cG8gY2FuIG1ha2UgYWxsIG9mIHRoZSBkYXRhIG9uIHlvdXIgZGlzayB1c2VsZXNzLgorCitGb3IgYmVzdCByZXN1bHRzLCB5b3Ugc2hvdWxkIGFsd2F5cyB1c2UgYW4gT1Mtc3BlY2lmaWMgcGFydGl0aW9uIHRhYmxlCitwcm9ncmFtLiAgRm9yIGV4YW1wbGUsIHlvdSBzaG91bGQgbWFrZSBET1MgcGFydGl0aW9ucyB3aXRoIHRoZSBET1MgRkRJU0sKK3Byb2dyYW0gYW5kIExpbnV4IHBhcnRpdGlvbnMgd2l0aCB0aGUgTGludXggZmRpc2sgb3IgTGludXggY2ZkaXNrIHByb2dyYW0uCisKKy5TSCBPUFRJT05TCisuVFAKKy5CSSAiXC1iICIgc2VjdG9yc2l6ZQorU3BlY2lmeSB0aGUgc2VjdG9yIHNpemUgb2YgdGhlIGRpc2suIFZhbGlkIHZhbHVlcyBhcmUgNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYuCisoUmVjZW50IGtlcm5lbHMga25vdyB0aGUgc2VjdG9yIHNpemUuIFVzZSB0aGlzIG9ubHkgb24gb2xkIGtlcm5lbHMgb3IKK3RvIG92ZXJyaWRlIHRoZSBrZXJuZWwncyBpZGVhcy4pIFNpbmNlIHV0aWwtbGludXgtbmcgMi4xNyBmZGlzayBkaWZmZXJlbnRpYXRlcworYmV0d2VlbiBsb2dpY2FsIGFuZCBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gVGhpcyBvcHRpb24gY2hhbmdlcyBib3RoIHNlY3RvciBzaXplcyB0bworLklCIHNlY3RvcnNpemUgLgorLlRQCisuQkkgXC1oCitQcmludCBoZWxwIGFuZCB0aGVuIGV4aXQuCisuVFAKKy5CSSBcLWMKK1N3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZS4gKFJlY29tbWVuZGVkKQorLlRQCisuQkkgIlwtQyAiIGN5bHMKK1NwZWNpZnkgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgb2YgdGhlIGRpc2suCitJIGhhdmUgbm8gaWRlYSB3aHkgYW55Ym9keSB3b3VsZCB3YW50IHRvIGRvIHNvLgorLlRQCisuQkkgIlwtSCAiIGhlYWRzCitTcGVjaWZ5IHRoZSBudW1iZXIgb2YgaGVhZHMgb2YgdGhlIGRpc2suIChOb3QgdGhlIHBoeXNpY2FsIG51bWJlciwKK29mIGNvdXJzZSwgYnV0IHRoZSBudW1iZXIgdXNlZCBmb3IgcGFydGl0aW9uIHRhYmxlcy4pCitSZWFzb25hYmxlIHZhbHVlcyBhcmUgMjU1IGFuZCAxNi4KKy5UUAorLkJJICJcLVMgIiBzZWN0cworU3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrIG9mIHRoZSBkaXNrLgorKE5vdCB0aGUgcGh5c2ljYWwgbnVtYmVyLCBvZiBjb3Vyc2UsIGJ1dCB0aGUgbnVtYmVyIHVzZWQgZm9yCitwYXJ0aXRpb24gdGFibGVzLikKK0EgcmVhc29uYWJsZSB2YWx1ZSBpcyA2My4KKy5UUAorLkIgXC1sCitMaXN0IHRoZSBwYXJ0aXRpb24gdGFibGVzIGZvciB0aGUgc3BlY2lmaWVkIGRldmljZXMgYW5kIHRoZW4gZXhpdC4KK0lmIG5vIGRldmljZXMgYXJlIGdpdmVuLCB0aG9zZSBtZW50aW9uZWQgaW4KKy5JIC9wcm9jL3BhcnRpdGlvbnMKKyhpZiB0aGF0IGV4aXN0cykgYXJlIHVzZWQuCisuVFAKKy5CIFwtdQorV2hlbiBsaXN0aW5nIHBhcnRpdGlvbiB0YWJsZXMsIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkCitvZiBjeWxpbmRlcnMuCisuVFAKKy5CSSAiXC1zICIgcGFydGl0aW9uCitUaGUKKy5JIHNpemUKK29mIHRoZSBwYXJ0aXRpb24gKGluIGJsb2NrcykgaXMgcHJpbnRlZCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0LgorLlRQCisuQiBcLXYKK1ByaW50IHZlcnNpb24gbnVtYmVyIG9mCisuQiBmZGlzaworcHJvZ3JhbSBhbmQgZXhpdC4KKy5TSCBCVUdTCitUaGVyZSBhcmUgc2V2ZXJhbCAqZmRpc2sgcHJvZ3JhbXMgYXJvdW5kLgorRWFjaCBoYXMgaXRzIHByb2JsZW1zIGFuZCBzdHJlbmd0aHMuCitUcnkgdGhlbSBpbiB0aGUgb3JkZXIKKy5CUiBjZmRpc2sgLAorLkJSIGZkaXNrICwKKy5CUiBzZmRpc2sgLgorKEluZGVlZCwKKy5CIGNmZGlzaworaXMgYSBiZWF1dGlmdWwgcHJvZ3JhbSB0aGF0IGhhcyBzdHJpY3QgcmVxdWlyZW1lbnRzIG9uCit0aGUgcGFydGl0aW9uIHRhYmxlcyBpdCBhY2NlcHRzLCBhbmQgcHJvZHVjZXMgaGlnaCBxdWFsaXR5IHBhcnRpdGlvbgordGFibGVzLiBVc2UgaXQgaWYgeW91IGNhbi4KKy5CIGZkaXNrCitpcyBhIGJ1Z2d5IHByb2dyYW0gdGhhdCBkb2VzIGZ1enp5IHRoaW5ncyAtIHVzdWFsbHkgaXQgaGFwcGVucyB0bworcHJvZHVjZSByZWFzb25hYmxlIHJlc3VsdHMuIEl0cyBzaW5nbGUgYWR2YW50YWdlIGlzIHRoYXQgaXQgaGFzCitzb21lIHN1cHBvcnQgZm9yIEJTRCBkaXNrIGxhYmVscyBhbmQgb3RoZXIgbm9uLURPUyBwYXJ0aXRpb24gdGFibGVzLgorQXZvaWQgaXQgaWYgeW91IGNhbi4KKy5CIHNmZGlzaworaXMgZm9yIGhhY2tlcnMgb25seSAtIHRoZSB1c2VyIGludGVyZmFjZSBpcyB0ZXJyaWJsZSwgYnV0IGl0IGlzCittb3JlIGNvcnJlY3QgdGhhbiBmZGlzayBhbmQgbW9yZSBwb3dlcmZ1bCB0aGFuIGJvdGggZmRpc2sgYW5kIGNmZGlzay4KK01vcmVvdmVyLCBpdCBjYW4gYmUgdXNlZCBub25pbnRlcmFjdGl2ZWx5LikKKy5QUAorVGhlc2UgZGF5cyB0aGVyZSBhbHNvIGlzCisuQlIgcGFydGVkIC4KK1RoZSBjZmRpc2sgaW50ZXJmYWNlIGlzIG5pY2VyLCBidXQgcGFydGVkIGRvZXMgbXVjaCBtb3JlOiBpdCBub3Qgb25seQorcmVzaXplcyBwYXJ0aXRpb25zLCBidXQgYWxzbyB0aGUgZmlsZXN5c3RlbXMgdGhhdCBsaXZlIGluIHRoZW0uCisuUFAKK1RoZSBJUklYL1NHSSB0eXBlIGRpc2tsYWJlbCBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBieSB0aGUga2VybmVsLgorTW9yZW92ZXIsIElSSVgvU0dJIGhlYWRlciBkaXJlY3RvcmllcyBhcmUgbm90IGZ1bGx5IHN1cHBvcnRlZCB5ZXQuCisuUFAKK1RoZSBvcHRpb24gYGR1bXAgcGFydGl0aW9uIHRhYmxlIHRvIGZpbGUnIGlzIG1pc3NpbmcuCisuXCIgLlNIIEFVVEhPUlMKKy5cIiBBLiBWLiBMZSBCbGFuYyAoTGVCbGFuY0BtY2MuYWMudWspCisuXCIgQmVybmhhcmQgRmFzdGVucmF0aCAoZmFzdGVuQGluZm9ybWF0aWsudW5pLWJvbm4uZGUpCisuXCIgSmFrdWIgSmVsaW5layAoampAc3Vuc2l0ZS5tZmYuY3VuaS5jeikKKy5cIiBBbmRyZWFzIE5ldXBlciAoQU5ldXBlckBHVVVHLmRlKQorLlwiIGFuZCBtYW55IG90aGVycy4KKy5TSCAiU0VFIEFMU08iCisuQlIgY2ZkaXNrICg4KSwKKy5CUiBzZmRpc2sgKDgpLAorLkJSIG1rZnMgKDgpLAorLkJSIHBhcnRlZCAoOCksCisuQlIgcGFydHByb2JlICg4KSwKKy5CUiBrcGFydHggKDgpCisuU0ggQVZBSUxBQklMSVRZCitUaGUgZmRpc2sgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlzay5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDcxOTZlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2suYwpAQCAtMCwwICsxLDMxMTQgQEAKKy8qIGZkaXNrLmMgLS0gUGFydGl0aW9uIHRhYmxlIG1hbmlwdWxhdG9yIGZvciBMaW51eC4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTIgIEEuIFYuIExlIEJsYW5jIChMZUJsYW5jQG1jYy5hYy51aykKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZS4gIFlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOiBlaXRoZXIgdmVyc2lvbiAxIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzZXRqbXAuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisKKyNpbmNsdWRlICJubHMuaCIKKyNpbmNsdWRlICJibGtkZXYuaCIKKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJmZGlzay5oIgorI2luY2x1ZGUgIndob2xlZGlzay5oIgorCisjaW5jbHVkZSAiZmRpc2tzdW5sYWJlbC5oIgorI2luY2x1ZGUgImZkaXNrc2dpbGFiZWwuaCIKKyNpbmNsdWRlICJmZGlza2FpeGxhYmVsLmgiCisjaW5jbHVkZSAiZmRpc2ttYWNsYWJlbC5oIgorCisjaWZkZWYgSEFWRV9MSU5VWF9DT01QSUxFUl9ICisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfTElOVVhfQkxLUEdfSAorI2luY2x1ZGUgPGxpbnV4L2Jsa3BnLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0xJQkJMS0lEX0lOVEVSTkFMCisjaW5jbHVkZSA8YmxraWQuaD4KKyNlbmRpZgorCisjaW5jbHVkZSAiZ3B0LmgiCisKK3N0YXRpYyB2b2lkIGRlbGV0ZV9wYXJ0aXRpb24oaW50IGkpOworCisjZGVmaW5lIGhleF92YWwoYykJKHsgXAorCQkJCWNoYXIgX2MgPSAoYyk7IFwKKwkJCQlpc2RpZ2l0KF9jKSA/IF9jIC0gJzAnIDogXAorCQkJCXRvbG93ZXIoX2MpICsgMTAgLSAnYSc7IFwKKwkJCX0pCisKKworI2RlZmluZSBMSU5FX0xFTkdUSAk4MDAKKyNkZWZpbmUgcHRfb2Zmc2V0KGIsIG4pCSgoc3RydWN0IHBhcnRpdGlvbiAqKSgoYikgKyAweDFiZSArIFwKKwkJCQkobikgKiBzaXplb2Yoc3RydWN0IHBhcnRpdGlvbikpKQorI2RlZmluZSBzZWN0b3IocykJKChzKSAmIDB4M2YpCisjZGVmaW5lIGN5bGluZGVyKHMsIGMpCSgoYykgfCAoKChzKSAmIDB4YzApIDw8IDIpKQorCisjZGVmaW5lIGhzYzJzZWN0b3IoaCxzLGMpIChzZWN0b3IocykgLSAxICsgc2VjdG9ycyAqIFwKKwkJCQkoKGgpICsgaGVhZHMgKiBjeWxpbmRlcihzLGMpKSkKKyNkZWZpbmUgc2V0X2hzYyhoLHMsYyxzZWN0b3IpIHsgXAorCQkJCXMgPSBzZWN0b3IgJSBzZWN0b3JzICsgMTsJXAorCQkJCXNlY3RvciAvPSBzZWN0b3JzOwlcCisJCQkJaCA9IHNlY3RvciAlIGhlYWRzOwlcCisJCQkJc2VjdG9yIC89IGhlYWRzOwlcCisJCQkJYyA9IHNlY3RvciAmIDB4ZmY7CVwKKwkJCQlzIHw9IChzZWN0b3IgPj4gMikgJiAweGMwOwlcCisJCQl9CisKKy8qIEEgdmFsaWQgcGFydGl0aW9uIHRhYmxlIHNlY3RvciBlbmRzIGluIDB4NTUgMHhhYSAqLworc3RhdGljIHVuc2lnbmVkIGludAorcGFydF90YWJsZV9mbGFnKHVuc2lnbmVkIGNoYXIgKmIpIHsKKwlyZXR1cm4gKCh1bnNpZ25lZCBpbnQpIGJbNTEwXSkgKyAoKCh1bnNpZ25lZCBpbnQpIGJbNTExXSkgPDwgOCk7Cit9CisKK2ludAordmFsaWRfcGFydF90YWJsZV9mbGFnKHVuc2lnbmVkIGNoYXIgKmIpIHsKKwlyZXR1cm4gKGJbNTEwXSA9PSAweDU1ICYmIGJbNTExXSA9PSAweGFhKTsKK30KKworc3RhdGljIHZvaWQKK3dyaXRlX3BhcnRfdGFibGVfZmxhZyh1bnNpZ25lZCBjaGFyICpiKSB7CisJYls1MTBdID0gMHg1NTsKKwliWzUxMV0gPSAweGFhOworfQorCisvKiBzdGFydF9zZWN0IGFuZCBucl9zZWN0cyBhcmUgc3RvcmVkIGxpdHRsZSBlbmRpYW4gb24gYWxsIG1hY2hpbmVzICovCisvKiBtb3Jlb3ZlciwgdGhleSBhcmUgbm90IGFsaWduZWQgY29ycmVjdGx5ICovCitzdGF0aWMgdm9pZAorc3RvcmU0X2xpdHRsZV9lbmRpYW4odW5zaWduZWQgY2hhciAqY3AsIHVuc2lnbmVkIGludCB2YWwpIHsKKwljcFswXSA9ICh2YWwgJiAweGZmKTsKKwljcFsxXSA9ICgodmFsID4+IDgpICYgMHhmZik7CisJY3BbMl0gPSAoKHZhbCA+PiAxNikgJiAweGZmKTsKKwljcFszXSA9ICgodmFsID4+IDI0KSAmIDB4ZmYpOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50CityZWFkNF9saXR0bGVfZW5kaWFuKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNwKSB7CisJcmV0dXJuICh1bnNpZ25lZCBpbnQpKGNwWzBdKSArICgodW5zaWduZWQgaW50KShjcFsxXSkgPDwgOCkKKwkJKyAoKHVuc2lnbmVkIGludCkoY3BbMl0pIDw8IDE2KQorCQkrICgodW5zaWduZWQgaW50KShjcFszXSkgPDwgMjQpOworfQorCitzdGF0aWMgdm9pZAorc2V0X3N0YXJ0X3NlY3Qoc3RydWN0IHBhcnRpdGlvbiAqcCwgdW5zaWduZWQgaW50IHN0YXJ0X3NlY3QpIHsKKwlzdG9yZTRfbGl0dGxlX2VuZGlhbihwLT5zdGFydDQsIHN0YXJ0X3NlY3QpOworfQorCit1bnNpZ25lZCBsb25nIGxvbmcKK2dldF9zdGFydF9zZWN0KHN0cnVjdCBwYXJ0aXRpb24gKnApIHsKKwlyZXR1cm4gcmVhZDRfbGl0dGxlX2VuZGlhbihwLT5zdGFydDQpOworfQorCitzdGF0aWMgdm9pZAorc2V0X25yX3NlY3RzKHN0cnVjdCBwYXJ0aXRpb24gKnAsIHVuc2lnbmVkIGxvbmcgbG9uZyBucl9zZWN0cykgeworCXN0b3JlNF9saXR0bGVfZW5kaWFuKHAtPnNpemU0LCBucl9zZWN0cyk7Cit9CisKK3Vuc2lnbmVkIGxvbmcgbG9uZworZ2V0X25yX3NlY3RzKHN0cnVjdCBwYXJ0aXRpb24gKnApIHsKKwlyZXR1cm4gcmVhZDRfbGl0dGxlX2VuZGlhbihwLT5zaXplNCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit4cmVhZChpbnQgZmQsIHZvaWQgKmJ1Ziwgc2l6ZV90IGNvdW50KSB7CisgICAgICAgIGNoYXIgKnAgPSBidWY7CisgICAgICAgIHNzaXplX3Qgb3V0ID0gMDsKKyAgICAgICAgc3NpemVfdCBydjsKKworICAgICAgICB3aGlsZSAoY291bnQpIHsKKyAgICAgICAgICAgICAgICBydiA9IHJlYWQoZmQsIHAsIGNvdW50KTsKKyAgICAgICAgICAgICAgICBpZiAocnYgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJubyA9PSBFSU5UUiB8fCBlcnJubyA9PSBFQUdBSU4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG91dCA/IG91dCA6IC0xOyAvKiBFcnJvciAqLworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnYgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG91dDsgLyogRU9GICovCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcCArPSBydjsKKyAgICAgICAgICAgICAgICBvdXQgKz0gcnY7CisgICAgICAgICAgICAgICAgY291bnQgLT0gcnY7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gb3V0OworfQorCitzdGF0aWMgdW5zaWduZWQgaW50CitnZXRfcmFuZG9tX2lkKHZvaWQpIHsKKwlpbnQgZmQ7CisJdW5zaWduZWQgaW50IHY7CisJc3NpemVfdCBydiA9IC0xOworCXN0cnVjdCB0aW1ldmFsIHR2OworCisJZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSk7CisJaWYgKGZkID49IDApIHsKKwkgICAgICAgIHJ2ID0geHJlYWQoZmQsICZ2LCBzaXplb2Ygdik7CisJCWNsb3NlKGZkKTsKKwl9CisKKwlpZiAocnYgPT0gc2l6ZW9mIHYpCisJCXJldHVybiB2OworCisJLyogRmFsbGJhY2s6IHN1Y2tzLCBidXQgYmV0dGVyIHRoYW4gbm90aGluZyAqLworCWdldHRpbWVvZmRheSgmdHYsIE5VTEwpOworCXJldHVybiAodW5zaWduZWQgaW50KSh0di50dl9zZWMgKyAodHYudHZfdXNlYyA8PCAxMikgKyBnZXRwaWQoKSk7Cit9CisKKy8qIG5vcm1hbGx5IE9fUkRXUiwgLWwgb3B0aW9uIGdpdmVzIE9fUkRPTkxZICovCitzdGF0aWMgaW50IHR5cGVfb3BlbiA9IE9fUkRXUjsKKworLyoKKyAqIFJhdyBkaXNrIGxhYmVsLiBGb3IgRE9TLXR5cGUgcGFydGl0aW9uIHRhYmxlcyB0aGUgTUJSLAorICogd2l0aCBkZXNjcmlwdGlvbnMgb2YgdGhlIHByaW1hcnkgcGFydGl0aW9ucy4KKyAqLwordW5zaWduZWQgY2hhciAqTUJSYnVmZmVyOworCisvKgorICogcGVyIHBhcnRpdGlvbiB0YWJsZSBlbnRyeSBkYXRhCisgKgorICogVGhlIGZvdXIgcHJpbWFyeSBwYXJ0aXRpb25zIGhhdmUgdGhlIHNhbWUgc2VjdG9yYnVmZmVyIChNQlJidWZmZXIpCisgKiBhbmQgaGF2ZSBOVUxMIGV4dF9wb2ludGVyLgorICogRWFjaCBsb2dpY2FsIHBhcnRpdGlvbiB0YWJsZSBlbnRyeSBoYXMgdHdvIHBvaW50ZXJzLCBvbmUgZm9yIHRoZQorICogcGFydGl0aW9uIGFuZCBvbmUgbGluayB0byB0aGUgbmV4dCBvbmUuCisgKi8KK3N0cnVjdCBwdGUgeworCXN0cnVjdCBwYXJ0aXRpb24gKnBhcnRfdGFibGU7CS8qIHBvaW50cyBpbnRvIHNlY3RvcmJ1ZmZlciAqLworCXN0cnVjdCBwYXJ0aXRpb24gKmV4dF9wb2ludGVyOwkvKiBwb2ludHMgaW50byBzZWN0b3JidWZmZXIgKi8KKwljaGFyIGNoYW5nZWQ7CQkJLyogYm9vbGVhbiAqLworCXVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQ7CS8qIGRpc2sgc2VjdG9yIG51bWJlciAqLworCXVuc2lnbmVkIGNoYXIgKnNlY3RvcmJ1ZmZlcjsJLyogZGlzayBzZWN0b3IgY29udGVudHMgKi8KK30gcHRlc1tNQVhJTVVNX1BBUlRTXTsKKworY2hhcgkqZGlza19kZXZpY2UsCQkJLyogbXVzdCBiZSBzcGVjaWZpZWQgKi8KKwkqbGluZV9wdHIsCQkJLyogaW50ZXJhY3RpdmUgaW5wdXQgKi8KKwlsaW5lX2J1ZmZlcltMSU5FX0xFTkdUSF07CisKK2ludAlmZCwJCQkJLyogdGhlIGRpc2sgKi8KKwlleHRfaW5kZXgsCQkJLyogdGhlIHByaW1lIGV4dGVuZGVkIHBhcnRpdGlvbiAqLworCWxpc3RpbmcgPSAwLAkJCS8qIG5vIGFib3J0cyBmb3IgZmRpc2sgLWwgKi8KKwlub3dhcm4gPSAwLAkJCS8qIG5vIHdhcm5pbmdzIGZvciBmZGlzayAtbC8tcyAqLworCWRvc19jb21wYXRpYmxlX2ZsYWcgPSB+MCwKKwlkb3NfY2hhbmdlZCA9IDAsCisJcGFydGl0aW9ucyA9IDQ7CQkJLyogbWF4aW11bSBwYXJ0aXRpb24gKyAxICovCisKK3Vuc2lnbmVkIGludAl1c2VyX2N5bGluZGVycywgdXNlcl9oZWFkcywgdXNlcl9zZWN0b3JzOwordW5zaWduZWQgaW50CXB0X2hlYWRzLCBwdF9zZWN0b3JzOwordW5zaWduZWQgaW50CWtlcm5faGVhZHMsIGtlcm5fc2VjdG9yczsKKwordW5zaWduZWQgbG9uZyBsb25nIHNlY3Rvcl9vZmZzZXQgPSAxLCBleHRlbmRlZF9vZmZzZXQgPSAwLCBzZWN0b3JzOworCit1bnNpZ25lZCBpbnQJaGVhZHMsCisJY3lsaW5kZXJzLAorCXNlY3Rvcl9zaXplID0gREVGQVVMVF9TRUNUT1JfU0laRSwKKwlzZWN0b3JfZmFjdG9yID0gMSwKKwl1c2VyX3NldF9zZWN0b3Jfc2l6ZSA9IDAsCisJdW5pdHNfcGVyX3NlY3RvciA9IDEsCisJZGlzcGxheV9pbl9jeWxfdW5pdHMgPSAxOworCit1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxfbnVtYmVyX29mX3NlY3RvcnM7CS8qICghKSA1MTItYnl0ZSBzZWN0b3JzICovCit1bnNpZ25lZCBsb25nIGdyYWluID0gREVGQVVMVF9TRUNUT1JfU0laRSwKKwkgICAgICBpb19zaXplID0gREVGQVVMVF9TRUNUT1JfU0laRSwKKwkgICAgICBtaW5faW9fc2l6ZSA9IERFRkFVTFRfU0VDVE9SX1NJWkUsCisJICAgICAgcGh5X3NlY3Rvcl9zaXplID0gREVGQVVMVF9TRUNUT1JfU0laRSwKKwkgICAgICBhbGlnbm1lbnRfb2Zmc2V0OworaW50IGhhc190b3BvbG9neTsKKworI2RlZmluZSBkb3NfbGFiZWwgKCFzdW5fbGFiZWwgJiYgIXNnaV9sYWJlbCAmJiAhYWl4X2xhYmVsICYmICFtYWNfbGFiZWwgJiYgIW9zZl9sYWJlbCkKK2ludAlzdW5fbGFiZWwgPSAwOwkJCS8qIGxvb2tpbmcgYXQgc3VuIGRpc2tsYWJlbCAqLworaW50CXNnaV9sYWJlbCA9IDA7CQkJLyogbG9va2luZyBhdCBzZ2kgZGlza2xhYmVsICovCitpbnQJYWl4X2xhYmVsID0gMDsJCQkvKiBsb29raW5nIGF0IGFpeCBkaXNrbGFiZWwgKi8KK2ludAlvc2ZfbGFiZWwgPSAwOwkJCS8qIGxvb2tpbmcgYXQgT1NGLzEgZGlza2xhYmVsICovCitpbnQJbWFjX2xhYmVsID0gMDsJCQkvKiBsb29raW5nIGF0IG1hYyBkaXNrbGFiZWwgKi8KK2ludAlwb3NzaWJseV9vc2ZfbGFiZWwgPSAwOworCitqbXBfYnVmIGxpc3RpbmdidWY7CisKK3ZvaWQgZmF0YWwoZW51bSBmYWlsdXJlIHdoeSkgeworCWNoYXIJZXJyb3JbTElORV9MRU5HVEhdLAorCQkqbWVzc2FnZSA9IGVycm9yOworCWludAlyYyA9IEVYSVRfRkFJTFVSRTsKKworCWlmIChsaXN0aW5nKSB7CisJCWNsb3NlKGZkKTsKKwkJbG9uZ2ptcChsaXN0aW5nYnVmLCAxKTsKKwl9CisKKwlzd2l0Y2ggKHdoeSkgeworCQljYXNlIGhlbHA6CisJCQlyYyA9IEVYSVRfU1VDQ0VTUzsKKwkJY2FzZSB1c2FnZTogbWVzc2FnZSA9IF8oCisiVXNhZ2U6XG4iCisiIGZkaXNrIFtvcHRpb25zXSA8ZGlzaz4gICAgY2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorIiBmZGlzayBbb3B0aW9uc10gLWwgPGRpc2s+IGxpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisiIGZkaXNrIC1zIDxwYXJ0aXRpb24+ICAgICAgZ2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyJcbk9wdGlvbnM6XG4iCisiIC1iIDxzaXplPiAgICAgICAgICAgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGhlbHBcbiIKKyIgLXUgPHNpemU+ICAgICAgICAgICAgICAgICBnaXZlIHNpemVzIGluIHNlY3RvcnMgaW5zdGVhZCBvZiBjeWxpbmRlcnNcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB2ZXJzaW9uXG4iCisiIC1DIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVyc1xuIgorIiAtSCA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBoZWFkc1xuIgorIiAtUyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFja1xuIgorIlxuIik7CisJCQlicmVhazsKKwkJY2FzZSB1bmFibGVfdG9fb3BlbjoKKwkJCXNucHJpbnRmKGVycm9yLCBzaXplb2YoZXJyb3IpLAorCQkJCSBfKCJVbmFibGUgdG8gb3BlbiAlc1xuIiksIGRpc2tfZGV2aWNlKTsKKwkJCWJyZWFrOworCQljYXNlIHVuYWJsZV90b19yZWFkOgorCQkJc25wcmludGYoZXJyb3IsIHNpemVvZihlcnJvciksCisJCQkJIF8oIlVuYWJsZSB0byByZWFkICVzXG4iKSwgZGlza19kZXZpY2UpOworCQkJYnJlYWs7CisJCWNhc2UgdW5hYmxlX3RvX3NlZWs6CisJCQlzbnByaW50ZihlcnJvciwgc2l6ZW9mKGVycm9yKSwKKwkJCQlfKCJVbmFibGUgdG8gc2VlayBvbiAlc1xuIiksZGlza19kZXZpY2UpOworCQkJYnJlYWs7CisJCWNhc2UgdW5hYmxlX3RvX3dyaXRlOgorCQkJc25wcmludGYoZXJyb3IsIHNpemVvZihlcnJvciksCisJCQkJXygiVW5hYmxlIHRvIHdyaXRlICVzXG4iKSwgZGlza19kZXZpY2UpOworCQkJYnJlYWs7CisJCWNhc2UgaW9jdGxfZXJyb3I6CisJCQlzbnByaW50ZihlcnJvciwgc2l6ZW9mKGVycm9yKSwKKwkJCQkgXygiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXNcbiIpLAorCQkJCWRpc2tfZGV2aWNlKTsKKwkJCWJyZWFrOworCQljYXNlIG91dF9vZl9tZW1vcnk6CisJCQltZXNzYWdlID0gXygiVW5hYmxlIHRvIGFsbG9jYXRlIGFueSBtb3JlIG1lbW9yeVxuIik7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCW1lc3NhZ2UgPSBfKCJGYXRhbCBlcnJvclxuIik7CisJfQorCisJZnB1dGMoJ1xuJywgc3RkZXJyKTsKKwlmcHV0cyhtZXNzYWdlLCBzdGRlcnIpOworCWV4aXQocmMpOworfQorCitzdGF0aWMgdm9pZAorc2Vla19zZWN0b3IoaW50IGZkLCB1bnNpZ25lZCBsb25nIGxvbmcgc2Vjbm8pIHsKKwlvZmZfdCBvZmZzZXQgPSAob2ZmX3QpIHNlY25vICogc2VjdG9yX3NpemU7CisJaWYgKGxzZWVrKGZkLCBvZmZzZXQsIFNFRUtfU0VUKSA9PSAob2ZmX3QpIC0xKQorCQlmYXRhbCh1bmFibGVfdG9fc2Vlayk7Cit9CisKK3N0YXRpYyB2b2lkCityZWFkX3NlY3RvcihpbnQgZmQsIHVuc2lnbmVkIGxvbmcgbG9uZyBzZWNubywgdW5zaWduZWQgY2hhciAqYnVmKSB7CisJc2Vla19zZWN0b3IoZmQsIHNlY25vKTsKKwlpZiAocmVhZChmZCwgYnVmLCBzZWN0b3Jfc2l6ZSkgIT0gc2VjdG9yX3NpemUpCisJCWZhdGFsKHVuYWJsZV90b19yZWFkKTsKK30KKworc3RhdGljIHZvaWQKK3dyaXRlX3NlY3RvcihpbnQgZmQsIHVuc2lnbmVkIGxvbmcgbG9uZyBzZWNubywgdW5zaWduZWQgY2hhciAqYnVmKSB7CisJc2Vla19zZWN0b3IoZmQsIHNlY25vKTsKKwlpZiAod3JpdGUoZmQsIGJ1Ziwgc2VjdG9yX3NpemUpICE9IHNlY3Rvcl9zaXplKQorCQlmYXRhbCh1bmFibGVfdG9fd3JpdGUpOworfQorCisvKiBBbGxvY2F0ZSBhIGJ1ZmZlciBhbmQgcmVhZCBhIHBhcnRpdGlvbiB0YWJsZSBzZWN0b3IgKi8KK3N0YXRpYyB2b2lkCityZWFkX3B0ZShpbnQgZmQsIGludCBwbm8sIHVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQpIHsKKwlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzW3Bub107CisKKwlwZS0+b2Zmc2V0ID0gb2Zmc2V0OworCXBlLT5zZWN0b3JidWZmZXIgPSBtYWxsb2Moc2VjdG9yX3NpemUpOworCWlmICghcGUtPnNlY3RvcmJ1ZmZlcikKKwkJZmF0YWwob3V0X29mX21lbW9yeSk7CisJcmVhZF9zZWN0b3IoZmQsIG9mZnNldCwgcGUtPnNlY3RvcmJ1ZmZlcik7CisJcGUtPmNoYW5nZWQgPSAwOworCXBlLT5wYXJ0X3RhYmxlID0gcGUtPmV4dF9wb2ludGVyID0gTlVMTDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZworZ2V0X3BhcnRpdGlvbl9zdGFydChzdHJ1Y3QgcHRlICpwZSkgeworCXJldHVybiBwZS0+b2Zmc2V0ICsgZ2V0X3N0YXJ0X3NlY3QocGUtPnBhcnRfdGFibGUpOworfQorCitzdHJ1Y3QgcGFydGl0aW9uICoKK2dldF9wYXJ0X3RhYmxlKGludCBpKSB7CisJcmV0dXJuIHB0ZXNbaV0ucGFydF90YWJsZTsKK30KKwordm9pZAorc2V0X2FsbF91bmNoYW5nZWQodm9pZCkgeworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IE1BWElNVU1fUEFSVFM7IGkrKykKKwkJcHRlc1tpXS5jaGFuZ2VkID0gMDsKK30KKwordm9pZAorc2V0X2NoYW5nZWQoaW50IGkpIHsKKwlwdGVzW2ldLmNoYW5nZWQgPSAxOworfQorCitzdGF0aWMgaW50Citpc19nYXJiYWdlX3RhYmxlKHZvaWQpIHsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKwkJc3RydWN0IHB0ZSAqcGUgPSAmcHRlc1tpXTsKKwkJc3RydWN0IHBhcnRpdGlvbiAqcCA9IHBlLT5wYXJ0X3RhYmxlOworCisJCWlmIChwLT5ib290X2luZCAhPSAwICYmIHAtPmJvb3RfaW5kICE9IDB4ODApCisJCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBBdm9pZCB3YXJuaW5nIGFib3V0IERPUyBwYXJ0aXRpb25zIHdoZW4gbm8gRE9TIHBhcnRpdGlvbiB3YXMgY2hhbmdlZC4KKyAqIEhlcmUgYSBoZXVyaXN0aWMgImlzIHByb2JhYmx5IGRvcyBwYXJ0aXRpb24iLgorICogV2UgbWlnaHQgYWxzbyBkbyB0aGUgb3Bwb3NpdGUgYW5kIHdhcm4gaW4gYWxsIGNhc2VzIGV4Y2VwdAorICogZm9yICJpcyBwcm9iYWJseSBub25kb3MgcGFydGl0aW9uIi4KKyAqLworc3RhdGljIGludAoraXNfZG9zX3BhcnRpdGlvbihpbnQgdCkgeworCXJldHVybiAodCA9PSAxIHx8IHQgPT0gNCB8fCB0ID09IDYgfHwKKwkJdCA9PSAweDBiIHx8IHQgPT0gMHgwYyB8fCB0ID09IDB4MGUgfHwKKwkJdCA9PSAweDExIHx8IHQgPT0gMHgxMiB8fCB0ID09IDB4MTQgfHwgdCA9PSAweDE2IHx8CisJCXQgPT0gMHgxYiB8fCB0ID09IDB4MWMgfHwgdCA9PSAweDFlIHx8IHQgPT0gMHgyNCB8fAorCQl0ID09IDB4YzEgfHwgdCA9PSAweGM0IHx8IHQgPT0gMHhjNik7Cit9CisKK3N0YXRpYyB2b2lkCittZW51KHZvaWQpIHsKKwlpZiAoc3VuX2xhYmVsKSB7CisJICAgcHV0cyhfKCJDb21tYW5kIGFjdGlvbiIpKTsKKwkgICBwdXRzKF8oIiAgIGEgICB0b2dnbGUgYSByZWFkIG9ubHkgZmxhZyIpKTsJCS8qIHN1biAqLworCSAgIHB1dHMoXygiICAgYiAgIGVkaXQgYnNkIGRpc2tsYWJlbCIpKTsKKwkgICBwdXRzKF8oIiAgIGMgICB0b2dnbGUgdGhlIG1vdW50YWJsZSBmbGFnIikpOwkJLyogc3VuICovCisJICAgcHV0cyhfKCIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIikpOworCSAgIHB1dHMoXygiICAgbCAgIGxpc3Qga25vd24gcGFydGl0aW9uIHR5cGVzIikpOworCSAgIHB1dHMoXygiICAgbSAgIHByaW50IHRoaXMgbWVudSIpKTsKKwkgICBwdXRzKF8oIiAgIG4gICBhZGQgYSBuZXcgcGFydGl0aW9uIikpOworCSAgIHB1dHMoXygiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIikpOworCSAgIHB1dHMoXygiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIikpOworCSAgIHB1dHMoXygiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIikpOwkvKiBzdW4gKi8KKwkgICBwdXRzKF8oIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBzeXN0ZW0gaWQiKSk7CisJICAgcHV0cyhfKCIgICB1ICAgY2hhbmdlIGRpc3BsYXkvZW50cnkgdW5pdHMiKSk7CisJICAgcHV0cyhfKCIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICB3ICAgd3JpdGUgdGFibGUgdG8gZGlzayBhbmQgZXhpdCIpKTsKKwkgICBwdXRzKF8oIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIikpOworCX0KKwllbHNlIGlmIChzZ2lfbGFiZWwpIHsKKwkgICBwdXRzKF8oIkNvbW1hbmQgYWN0aW9uIikpOworCSAgIHB1dHMoXygiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iKSk7ICAgIC8qIHNnaSBmbGF2b3VyICovCisJICAgcHV0cyhfKCIgICBiICAgZWRpdCBib290ZmlsZSBlbnRyeSIpKTsgICAgICAgICAgLyogc2dpICovCisJICAgcHV0cyhfKCIgICBjICAgc2VsZWN0IHNnaSBzd2FwIHBhcnRpdGlvbiIpKTsgICAgLyogc2dpIGZsYXZvdXIgKi8KKwkgICBwdXRzKF8oIiAgIGQgICBkZWxldGUgYSBwYXJ0aXRpb24iKSk7CisJICAgcHV0cyhfKCIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiKSk7CisJICAgcHV0cyhfKCIgICBtICAgcHJpbnQgdGhpcyBtZW51IikpOworCSAgIHB1dHMoXygiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iKSk7CisJICAgcHV0cyhfKCIgICBvICAgY3JlYXRlIGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIpKTsKKwkgICBwdXRzKF8oIiAgIHEgICBxdWl0IHdpdGhvdXQgc2F2aW5nIGNoYW5nZXMiKSk7CisJICAgcHV0cyhfKCIgICBzICAgY3JlYXRlIGEgbmV3IGVtcHR5IFN1biBkaXNrbGFiZWwiKSk7CS8qIHN1biAqLworCSAgIHB1dHMoXygiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIHN5c3RlbSBpZCIpKTsKKwkgICBwdXRzKF8oIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIpKTsKKwkgICBwdXRzKF8oIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIpKTsKKwkgICBwdXRzKF8oIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IikpOworCX0KKwllbHNlIGlmIChhaXhfbGFiZWwgfHwgbWFjX2xhYmVsKSB7CisJICAgcHV0cyhfKCJDb21tYW5kIGFjdGlvbiIpKTsKKwkgICBwdXRzKF8oIiAgIG0gICBwcmludCB0aGlzIG1lbnUiKSk7CisJICAgcHV0cyhfKCIgICBvICAgY3JlYXRlIGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIikpOworCSAgIHB1dHMoXygiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIikpOwkvKiBzdW4gKi8KKwl9CisJZWxzZSB7CisJICAgcHV0cyhfKCJDb21tYW5kIGFjdGlvbiIpKTsKKwkgICBwdXRzKF8oIiAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnIikpOworCSAgIHB1dHMoXygiICAgYiAgIGVkaXQgYnNkIGRpc2tsYWJlbCIpKTsKKwkgICBwdXRzKF8oIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciKSk7CisJICAgcHV0cyhfKCIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIikpOworCSAgIHB1dHMoXygiICAgbCAgIGxpc3Qga25vd24gcGFydGl0aW9uIHR5cGVzIikpOworCSAgIHB1dHMoXygiICAgbSAgIHByaW50IHRoaXMgbWVudSIpKTsKKwkgICBwdXRzKF8oIiAgIG4gICBhZGQgYSBuZXcgcGFydGl0aW9uIikpOworCSAgIHB1dHMoXygiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIikpOworCSAgIHB1dHMoXygiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIikpOworCSAgIHB1dHMoXygiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIikpOwkvKiBzdW4gKi8KKwkgICBwdXRzKF8oIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBzeXN0ZW0gaWQiKSk7CisJICAgcHV0cyhfKCIgICB1ICAgY2hhbmdlIGRpc3BsYXkvZW50cnkgdW5pdHMiKSk7CisJICAgcHV0cyhfKCIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICB3ICAgd3JpdGUgdGFibGUgdG8gZGlzayBhbmQgZXhpdCIpKTsKKwkgICBwdXRzKF8oIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIikpOworCX0KK30KKworc3RhdGljIHZvaWQKK3htZW51KHZvaWQpIHsKKwlpZiAoc3VuX2xhYmVsKSB7CisJICAgcHV0cyhfKCJDb21tYW5kIGFjdGlvbiIpKTsKKwkgICBwdXRzKF8oIiAgIGEgICBjaGFuZ2UgbnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiKSk7ICAgICAgLypzdW4qLworCSAgIHB1dHMoXygiICAgYyAgIGNoYW5nZSBudW1iZXIgb2YgY3lsaW5kZXJzIikpOworCSAgIHB1dHMoXygiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIikpOworCSAgIHB1dHMoXygiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiKSk7LypzdW4qLworCSAgIHB1dHMoXygiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiKSk7CisJICAgcHV0cyhfKCIgICBpICAgY2hhbmdlIGludGVybGVhdmUgZmFjdG9yIikpOwkJCS8qc3VuKi8KKwkgICBwdXRzKF8oIiAgIG8gICBjaGFuZ2Ugcm90YXRpb24gc3BlZWQgKHJwbSkiKSk7CQkvKnN1biovCisJICAgcHV0cyhfKCIgICBtICAgcHJpbnQgdGhpcyBtZW51IikpOworCSAgIHB1dHMoXygiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIikpOworCSAgIHB1dHMoXygiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiKSk7CisJICAgcHV0cyhfKCIgICBzICAgY2hhbmdlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrIikpOworCSAgIHB1dHMoXygiICAgdiAgIHZlcmlmeSB0aGUgcGFydGl0aW9uIHRhYmxlIikpOworCSAgIHB1dHMoXygiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiKSk7CisJICAgcHV0cyhfKCIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiKSk7CS8qc3VuKi8KKwl9CisJZWxzZSBpZiAoc2dpX2xhYmVsKSB7CisJICAgcHV0cyhfKCJDb21tYW5kIGFjdGlvbiIpKTsKKwkgICBwdXRzKF8oIiAgIGIgICBtb3ZlIGJlZ2lubmluZyBvZiBkYXRhIGluIGEgcGFydGl0aW9uIikpOyAvKiAhc3VuICovCisJICAgcHV0cyhfKCIgICBjICAgY2hhbmdlIG51bWJlciBvZiBjeWxpbmRlcnMiKSk7CisJICAgcHV0cyhfKCIgICBkICAgcHJpbnQgdGhlIHJhdyBkYXRhIGluIHRoZSBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIikpOwkJLyogIXN1biAqLworCSAgIHB1dHMoXygiICAgZyAgIGNyZWF0ZSBhbiBJUklYIChTR0kpIHBhcnRpdGlvbiB0YWJsZSIpKTsvKiBzZ2kgKi8KKwkgICBwdXRzKF8oIiAgIGggICBjaGFuZ2UgbnVtYmVyIG9mIGhlYWRzIikpOworCSAgIHB1dHMoXygiICAgbSAgIHByaW50IHRoaXMgbWVudSIpKTsKKwkgICBwdXRzKF8oIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIikpOworCSAgIHB1dHMoXygiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIpKTsKKwkgICBwdXRzKF8oIiAgIHIgICByZXR1cm4gdG8gbWFpbiBtZW51IikpOworCSAgIHB1dHMoXygiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIpKTsKKwkgICBwdXRzKF8oIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIpKTsKKwkgICBwdXRzKF8oIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IikpOworCX0KKwllbHNlIGlmIChhaXhfbGFiZWwgfHwgbWFjX2xhYmVsKSB7CisJICAgcHV0cyhfKCJDb21tYW5kIGFjdGlvbiIpKTsKKwkgICBwdXRzKF8oIiAgIGIgICBtb3ZlIGJlZ2lubmluZyBvZiBkYXRhIGluIGEgcGFydGl0aW9uIikpOyAvKiAhc3VuICovCisJICAgcHV0cyhfKCIgICBjICAgY2hhbmdlIG51bWJlciBvZiBjeWxpbmRlcnMiKSk7CisJICAgcHV0cyhfKCIgICBkICAgcHJpbnQgdGhlIHJhdyBkYXRhIGluIHRoZSBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIikpOwkJLyogIXN1biAqLworCSAgIHB1dHMoXygiICAgZyAgIGNyZWF0ZSBhbiBJUklYIChTR0kpIHBhcnRpdGlvbiB0YWJsZSIpKTsvKiBzZ2kgKi8KKwkgICBwdXRzKF8oIiAgIGggICBjaGFuZ2UgbnVtYmVyIG9mIGhlYWRzIikpOworCSAgIHB1dHMoXygiICAgbSAgIHByaW50IHRoaXMgbWVudSIpKTsKKwkgICBwdXRzKF8oIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIikpOworCSAgIHB1dHMoXygiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIpKTsKKwkgICBwdXRzKF8oIiAgIHIgICByZXR1cm4gdG8gbWFpbiBtZW51IikpOworCSAgIHB1dHMoXygiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIpKTsKKwkgICBwdXRzKF8oIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIpKTsKKwkgICBwdXRzKF8oIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IikpOworCX0KKwllbHNlIHsKKwkgICBwdXRzKF8oIkNvbW1hbmQgYWN0aW9uIikpOworCSAgIHB1dHMoXygiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iKSk7IC8qICFzdW4gKi8KKwkgICBwdXRzKF8oIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIpKTsKKwkgICBwdXRzKF8oIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIpKTsKKwkgICBwdXRzKF8oIiAgIGUgICBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMiKSk7CQkvKiAhc3VuICovCisJICAgcHV0cyhfKCIgICBmICAgZml4IHBhcnRpdGlvbiBvcmRlciIpKTsJCS8qICFzdW4sICFhaXgsICFzZ2kgKi8KKwkgICBwdXRzKF8oIiAgIGcgICBjcmVhdGUgYW4gSVJJWCAoU0dJKSBwYXJ0aXRpb24gdGFibGUiKSk7Lyogc2dpICovCisJICAgcHV0cyhfKCIgICBoICAgY2hhbmdlIG51bWJlciBvZiBoZWFkcyIpKTsKKwkgICBwdXRzKF8oIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIpKTsgLyogZG9zIG9ubHkgKi8KKwkgICBwdXRzKF8oIiAgIG0gICBwcmludCB0aGlzIG1lbnUiKSk7CisJICAgcHV0cyhfKCIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIpKTsKKwkgICBwdXRzKF8oIiAgIHEgICBxdWl0IHdpdGhvdXQgc2F2aW5nIGNoYW5nZXMiKSk7CisJICAgcHV0cyhfKCIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIpKTsKKwkgICBwdXRzKF8oIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siKSk7CisJICAgcHV0cyhfKCIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiKSk7CisJICAgcHV0cyhfKCIgICB3ICAgd3JpdGUgdGFibGUgdG8gZGlzayBhbmQgZXhpdCIpKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQKK2dldF9zeXNpZChpbnQgaSkgeworCXJldHVybiAoCisJCXN1bl9sYWJlbCA/IHN1bl9nZXRfc3lzaWQoaSkgOgorCQlzZ2lfbGFiZWwgPyBzZ2lfZ2V0X3N5c2lkKGkpIDoKKwkJcHRlc1tpXS5wYXJ0X3RhYmxlLT5zeXNfaW5kKTsKK30KKworc3RhdGljIHN0cnVjdCBzeXN0eXBlcyAqCitnZXRfc3lzX3R5cGVzKHZvaWQpIHsKKwlyZXR1cm4gKAorCQlzdW5fbGFiZWwgPyBzdW5fc3lzX3R5cGVzIDoKKwkJc2dpX2xhYmVsID8gc2dpX3N5c190eXBlcyA6CisJCWkzODZfc3lzX3R5cGVzKTsKK30KKworY2hhciAqcGFydGl0aW9uX3R5cGUodW5zaWduZWQgY2hhciB0eXBlKQoreworCWludCBpOworCXN0cnVjdCBzeXN0eXBlcyAqdHlwZXMgPSBnZXRfc3lzX3R5cGVzKCk7CisKKwlmb3IgKGk9MDsgdHlwZXNbaV0ubmFtZTsgaSsrKQorCQlpZiAodHlwZXNbaV0udHlwZSA9PSB0eXBlKQorCQkJcmV0dXJuIF8odHlwZXNbaV0ubmFtZSk7CisKKwlyZXR1cm4gTlVMTDsKK30KKwordm9pZCBsaXN0X3R5cGVzKHN0cnVjdCBzeXN0eXBlcyAqc3lzKQoreworCXVuc2lnbmVkIGludCBsYXN0WzRdLCBkb25lID0gMCwgbmV4dCA9IDAsIHNpemU7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBzeXNbaV0ubmFtZTsgaSsrKTsKKwlzaXplID0gaTsKKworCWZvciAoaSA9IDM7IGkgPj0gMDsgaS0tKQorCQlsYXN0WzMgLSBpXSA9IGRvbmUgKz0gKHNpemUgKyBpIC0gZG9uZSkgLyAoaSArIDEpOworCWkgPSBkb25lID0gMDsKKworCWRvIHsKKwkJcHJpbnRmKCIlYyUyeCAgJS0xNS4xNXMiLCBpID8gJyAnIDogJ1xuJywKKwkJICAgICAgICBzeXNbbmV4dF0udHlwZSwgXyhzeXNbbmV4dF0ubmFtZSkpOworIAkJbmV4dCA9IGxhc3RbaSsrXSArIGRvbmU7CisJCWlmIChpID4gMyB8fCBuZXh0ID49IGxhc3RbaV0pIHsKKwkJCWkgPSAwOworCQkJbmV4dCA9ICsrZG9uZTsKKwkJfQorCX0gd2hpbGUgKGRvbmUgPCBsYXN0WzBdKTsKKwlwdXRjaGFyKCdcbicpOworfQorCitzdGF0aWMgaW50Citpc19jbGVhcmVkX3BhcnRpdGlvbihzdHJ1Y3QgcGFydGl0aW9uICpwKSB7CisJcmV0dXJuICEoIXAgfHwgcC0+Ym9vdF9pbmQgfHwgcC0+aGVhZCB8fCBwLT5zZWN0b3IgfHwgcC0+Y3lsIHx8CisJCSBwLT5zeXNfaW5kIHx8IHAtPmVuZF9oZWFkIHx8IHAtPmVuZF9zZWN0b3IgfHwgcC0+ZW5kX2N5bCB8fAorCQkgZ2V0X3N0YXJ0X3NlY3QocCkgfHwgZ2V0X25yX3NlY3RzKHApKTsKK30KKworc3RhdGljIHZvaWQKK2NsZWFyX3BhcnRpdGlvbihzdHJ1Y3QgcGFydGl0aW9uICpwKSB7CisJaWYgKCFwKQorCQlyZXR1cm47CisJcC0+Ym9vdF9pbmQgPSAwOworCXAtPmhlYWQgPSAwOworCXAtPnNlY3RvciA9IDA7CisJcC0+Y3lsID0gMDsKKwlwLT5zeXNfaW5kID0gMDsKKwlwLT5lbmRfaGVhZCA9IDA7CisJcC0+ZW5kX3NlY3RvciA9IDA7CisJcC0+ZW5kX2N5bCA9IDA7CisJc2V0X3N0YXJ0X3NlY3QocCwwKTsKKwlzZXRfbnJfc2VjdHMocCwwKTsKK30KKworc3RhdGljIHZvaWQKK3NldF9wYXJ0aXRpb24oaW50IGksIGludCBkb2V4dCwgdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LAorCSAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzdG9wLCBpbnQgc3lzaWQpIHsKKwlzdHJ1Y3QgcGFydGl0aW9uICpwOworCXVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQ7CisKKwlpZiAoZG9leHQpIHsKKwkJcCA9IHB0ZXNbaV0uZXh0X3BvaW50ZXI7CisJCW9mZnNldCA9IGV4dGVuZGVkX29mZnNldDsKKwl9IGVsc2UgeworCQlwID0gcHRlc1tpXS5wYXJ0X3RhYmxlOworCQlvZmZzZXQgPSBwdGVzW2ldLm9mZnNldDsKKwl9CisJcC0+Ym9vdF9pbmQgPSAwOworCXAtPnN5c19pbmQgPSBzeXNpZDsKKwlzZXRfc3RhcnRfc2VjdChwLCBzdGFydCAtIG9mZnNldCk7CisJc2V0X25yX3NlY3RzKHAsIHN0b3AgLSBzdGFydCArIDEpOworCWlmIChkb3NfY29tcGF0aWJsZV9mbGFnICYmIChzdGFydC8oc2VjdG9ycypoZWFkcykgPiAxMDIzKSkKKwkJc3RhcnQgPSBoZWFkcypzZWN0b3JzKjEwMjQgLSAxOworCXNldF9oc2MocC0+aGVhZCwgcC0+c2VjdG9yLCBwLT5jeWwsIHN0YXJ0KTsKKwlpZiAoZG9zX2NvbXBhdGlibGVfZmxhZyAmJiAoc3RvcC8oc2VjdG9ycypoZWFkcykgPiAxMDIzKSkKKwkJc3RvcCA9IGhlYWRzKnNlY3RvcnMqMTAyNCAtIDE7CisJc2V0X2hzYyhwLT5lbmRfaGVhZCwgcC0+ZW5kX3NlY3RvciwgcC0+ZW5kX2N5bCwgc3RvcCk7CisJcHRlc1tpXS5jaGFuZ2VkID0gMTsKK30KKworc3RhdGljIGludAordGVzdF9jKGNoYXIgKiptLCBjaGFyICptZXNnKSB7CisJaW50IHZhbCA9IDA7CisJaWYgKCEqbSkKKwkJZnByaW50ZihzdGRlcnIsIF8oIllvdSBtdXN0IHNldCIpKTsKKwllbHNlIHsKKwkJZnByaW50ZihzdGRlcnIsICIgJXMiLCAqbSk7CisJCXZhbCA9IDE7CisJfQorCSptID0gbWVzZzsKKwlyZXR1cm4gdmFsOworfQorCisjZGVmaW5lIGFsaWdubWVudF9yZXF1aXJlZAkoZ3JhaW4gIT0gc2VjdG9yX3NpemUpCisKK3N0YXRpYyBpbnQKK2xiYV9pc19hbGlnbmVkKHVuc2lnbmVkIGxvbmcgbG9uZyBsYmEpCit7CisJdW5zaWduZWQgaW50IGdyYW51bGFyaXR5ID0gbWF4KHBoeV9zZWN0b3Jfc2l6ZSwgbWluX2lvX3NpemUpOworCXVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQgPSAobGJhIDw8IDkpICYgKGdyYW51bGFyaXR5IC0gMSk7CisKKwlyZXR1cm4gISgoZ3JhbnVsYXJpdHkgKyBhbGlnbm1lbnRfb2Zmc2V0IC0gb2Zmc2V0KSAmIChncmFudWxhcml0eSAtIDEpKTsKK30KKworI2RlZmluZSBBTElHTl9VUAkxCisjZGVmaW5lIEFMSUdOX0RPV04JMgorI2RlZmluZSBBTElHTl9ORUFSRVNUCTMKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZworYWxpZ25fbGJhKHVuc2lnbmVkIGxvbmcgbG9uZyBsYmEsIGludCBkaXJlY3Rpb24pCit7CisJdW5zaWduZWQgbG9uZyBsb25nIHJlczsKKworCWlmIChsYmFfaXNfYWxpZ25lZChsYmEpKQorCQlyZXMgPSBsYmE7CisJZWxzZSB7CisJCXVuc2lnbmVkIGxvbmcgbG9uZyBzZWN0c19pbl9waHkgPSBncmFpbiAvIHNlY3Rvcl9zaXplOworCisJCWlmIChsYmEgPCBzZWN0b3Jfb2Zmc2V0KQorCQkJcmVzID0gc2VjdG9yX29mZnNldDsKKworCQllbHNlIGlmIChkaXJlY3Rpb24gPT0gQUxJR05fVVApCisJCQlyZXMgPSAoKGxiYSArIHNlY3RzX2luX3BoeSkgLyBzZWN0c19pbl9waHkpICogc2VjdHNfaW5fcGh5OworCisJCWVsc2UgaWYgKGRpcmVjdGlvbiA9PSBBTElHTl9ET1dOKQorCQkJcmVzID0gKGxiYSAvIHNlY3RzX2luX3BoeSkgKiBzZWN0c19pbl9waHk7CisKKwkJZWxzZSAvKiBBTElHTl9ORUFSRVNUICovCisJCQlyZXMgPSAoKGxiYSArIHNlY3RzX2luX3BoeSAvIDIpIC8gc2VjdHNfaW5fcGh5KSAqIHNlY3RzX2luX3BoeTsKKworCQlpZiAoYWxpZ25tZW50X29mZnNldCAmJiAhbGJhX2lzX2FsaWduZWQocmVzKSAmJgorCQkgICAgcmVzID4gYWxpZ25tZW50X29mZnNldCAvIHNlY3Rvcl9zaXplKSB7CisJCQkvKgorCQkJICogYXBwbHkgYWxpZ25tZW50X29mZnNldAorCQkJICoKKwkJCSAqIE9uIGRpc2sgd2l0aCBhbGlnbm1lbnQgY29tcGVuc2F0aW9uIHBoeXNpY2FsIGJsb2NrcyBzdGFydHMKKwkJCSAqIGF0IExCQSA8IDAgKHVzdWFsbHkgTEJBIC0xKS4gSXQgbWVhbnMgd2UgaGF2ZSB0byBtb3ZlIExCQQorCQkJICogYWNjb3JkaW5nIHRoZSBvZmZzZXQgdG8gYmUgb24gdGhlIHBoeXNpY2FsIGJvdW5kYXJ5LgorCQkJICovCisJCQkvKiBmcHJpbnRmKHN0ZGVyciwgIkxCQTogJWxsdSBhcHBseSBhbGlnbm1lbnRfb2Zmc2V0XG4iLCByZXMpOyAqLworCQkJcmVzIC09IChtYXgocGh5X3NlY3Rvcl9zaXplLCBtaW5faW9fc2l6ZSkgLQorCQkJCQlhbGlnbm1lbnRfb2Zmc2V0KSAvIHNlY3Rvcl9zaXplOworCisJCQlpZiAoZGlyZWN0aW9uID09IEFMSUdOX1VQICYmIHJlcyA8IGxiYSkKKwkJCQlyZXMgKz0gc2VjdHNfaW5fcGh5OworCQl9CisJfQorCisJLyoqKgorCSBmcHJpbnRmKHN0ZGVyciwgIkxCQSAlbGx1ICglcykgLS1hbGlnbi0oJXMpLS0+ICVsbHUgKCVzKVxuIiwKKwkJCQlsYmEsCisJCQkJbGJhX2lzX2FsaWduZWQobGJhKSA/ICJPSyIgOiAiRkFMU0UiLAorCQkJCWRpcmVjdGlvbiA9PSBBTElHTl9VUCA/ICAgIlVQICAgICAiIDoKKwkJCQlkaXJlY3Rpb24gPT0gQUxJR05fRE9XTiA/ICJET1dOICAgIiA6ICJORUFSRVNUIiwKKwkJCQlyZXMsCisJCQkJbGJhX2lzX2FsaWduZWQocmVzKSA/ICJPSyIgOiAiRkFMU0UiKTsKKwkqKiovCisJcmV0dXJuIHJlczsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZworYWxpZ25fbGJhX2luX3JhbmdlKAl1bnNpZ25lZCBsb25nIGxvbmcgbGJhLAorCQkJdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LAorCQkJdW5zaWduZWQgbG9uZyBsb25nIHN0b3ApCit7CisJc3RhcnQgPSBhbGlnbl9sYmEoc3RhcnQsIEFMSUdOX1VQKTsKKwlzdG9wID0gYWxpZ25fbGJhKHN0b3AsIEFMSUdOX0RPV04pOworCisJbGJhID0gYWxpZ25fbGJhKGxiYSwgQUxJR05fTkVBUkVTVCk7CisKKwlpZiAobGJhIDwgc3RhcnQpCisJCXJldHVybiBzdGFydDsKKwllbHNlIGlmIChsYmEgPiBzdG9wKQorCQlyZXR1cm4gc3RvcDsKKwlyZXR1cm4gbGJhOworfQorCitzdGF0aWMgaW50Cit3YXJuX2dlb21ldHJ5KHZvaWQpIHsKKwljaGFyICptID0gTlVMTDsKKwlpbnQgcHJldiA9IDA7CisKKwlpZiAoc2dpX2xhYmVsKQkvKiBjYW5ub3Qgc2V0IGN5bGluZGVycyBldGMgYW55d2F5ICovCisJCXJldHVybiAwOworCWlmICghaGVhZHMpCisJCXByZXYgPSB0ZXN0X2MoJm0sIF8oImhlYWRzIikpOworCWlmICghc2VjdG9ycykKKwkJcHJldiA9IHRlc3RfYygmbSwgXygic2VjdG9ycyIpKTsKKwlpZiAoIWN5bGluZGVycykKKwkJcHJldiA9IHRlc3RfYygmbSwgXygiY3lsaW5kZXJzIikpOworCWlmICghbSkKKwkJcmV0dXJuIDA7CisJZnByaW50ZihzdGRlcnIsCisJCV8oIiVzJXMuXG5Zb3UgY2FuIGRvIHRoaXMgZnJvbSB0aGUgZXh0cmEgZnVuY3Rpb25zIG1lbnUuXG4iKSwKKwkJcHJldiA/IF8oIiBhbmQgIikgOiAiICIsIG0pOworCXJldHVybiAxOworfQorCit2b2lkIHVwZGF0ZV91bml0cyh2b2lkKQoreworCWludCBjeWxfdW5pdHMgPSBoZWFkcyAqIHNlY3RvcnM7CisKKwlpZiAoZGlzcGxheV9pbl9jeWxfdW5pdHMgJiYgY3lsX3VuaXRzKQorCQl1bml0c19wZXJfc2VjdG9yID0gY3lsX3VuaXRzOworCWVsc2UKKwkJdW5pdHNfcGVyX3NlY3RvciA9IDE7IAkvKiBpbiBzZWN0b3JzICovCit9CisKK3N0YXRpYyB2b2lkCit3YXJuX2xpbWl0cyh2b2lkKSB7CisJaWYgKHRvdGFsX251bWJlcl9vZl9zZWN0b3JzID4gVUlOVF9NQVggJiYgIW5vd2FybikgeworCQlpbnQgZ2lnYSA9ICh0b3RhbF9udW1iZXJfb2Zfc2VjdG9ycyA8PCA5KSAvIDEwMDAwMDAwMDA7CisJCWludCBoZWN0b2dpZ2EgPSAoZ2lnYSArIDUwKSAvIDEwMDsKKworCQlmcHJpbnRmKHN0ZGVyciwgXygiXG4iCisiV0FSTklORzogVGhlIHNpemUgb2YgdGhpcyBkaXNrIGlzICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJET1MgcGFydGl0aW9uIHRhYmxlIGZvcm1hdCBjYW4gbm90IGJlIHVzZWQgb24gZHJpdmVzIGZvciB2b2x1bWVzXG4iCisibGFyZ2VyIHRoYW4gKCVsbHUgYnl0ZXMpIGZvciAlZC1ieXRlIHNlY3RvcnMuIFVzZSBwYXJ0ZWQoMSkgYW5kIEdVSUQgXG4iCisicGFydGl0aW9uIHRhYmxlIGZvcm1hdCAoR1BUKS5cblxuIiksCisJCQloZWN0b2dpZ2EgLyAxMCwgaGVjdG9naWdhICUgMTAsCisJCQl0b3RhbF9udW1iZXJfb2Zfc2VjdG9ycyA8PCA5LAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZyApIFVJTlRfTUFYICogc2VjdG9yX3NpemUsCisJCQlzZWN0b3Jfc2l6ZSk7CisJfQorfQorCitzdGF0aWMgdm9pZAord2Fybl9hbGlnbm1lbnQodm9pZCkgeworCWlmIChub3dhcm4pCisJCXJldHVybjsKKworCWlmIChzZWN0b3Jfc2l6ZSAhPSBwaHlfc2VjdG9yX3NpemUpCisJCWZwcmludGYoc3RkZXJyLCBfKCJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIpKTsKKworCWlmIChkb3NfY29tcGF0aWJsZV9mbGFnKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCJcbiIKKyJXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG9cbiIKKyIgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykiKSk7CisKKwkJaWYgKGRpc3BsYXlfaW5fY3lsX3VuaXRzKQorCQkJZnByaW50ZihzdGRlcnIsIF8oIiBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG9cbiIKKyIgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuXG4iKSk7CisJCWVsc2UKKwkJCWZwcmludGYoc3RkZXJyLCAiLlxuIik7CisKKwkgfSBlbHNlIGlmIChkaXNwbGF5X2luX2N5bF91bml0cykKKwkJZnByaW50ZihzdGRlcnIsIF8oIlxuIgorIldBUk5JTkc6IGN5bGluZGVycyBhcyBkaXNwbGF5IHVuaXRzIGFyZSBkZXByZWNhdGVkLiBVc2UgY29tbWFuZCAndScgdG9cbiIKKyIgICAgICAgICBjaGFuZ2UgdW5pdHMgdG8gc2VjdG9ycy5cbiIpKTsKKworfQorCitzdGF0aWMgdm9pZAorcmVhZF9leHRlbmRlZChpbnQgZXh0KSB7CisJaW50IGk7CisJc3RydWN0IHB0ZSAqcGV4OworCXN0cnVjdCBwYXJ0aXRpb24gKnAsICpxOworCisJZXh0X2luZGV4ID0gZXh0OworCXBleCA9ICZwdGVzW2V4dF07CisJcGV4LT5leHRfcG9pbnRlciA9IHBleC0+cGFydF90YWJsZTsKKworCXAgPSBwZXgtPnBhcnRfdGFibGU7CisJaWYgKCFnZXRfc3RhcnRfc2VjdChwKSkgeworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCV8oIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIpKTsKKwkJcmV0dXJuOworCX0KKworCXdoaWxlIChJU19FWFRFTkRFRCAocC0+c3lzX2luZCkpIHsKKwkJc3RydWN0IHB0ZSAqcGUgPSAmcHRlc1twYXJ0aXRpb25zXTsKKworCQlpZiAocGFydGl0aW9ucyA+PSBNQVhJTVVNX1BBUlRTKSB7CisJCQkvKiBUaGlzIGlzIG5vdCBhIExpbnV4IHJlc3RyaWN0aW9uLCBidXQKKwkJCSAgIHRoaXMgcHJvZ3JhbSB1c2VzIGFycmF5cyBvZiBzaXplIE1BWElNVU1fUEFSVFMuCisJCQkgICBEbyBub3QgdHJ5IHRvIGBpbXByb3ZlJyB0aGlzIHRlc3QuICovCisJCQlzdHJ1Y3QgcHRlICpwcmUgPSAmcHRlc1twYXJ0aXRpb25zLTFdOworCisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKwkJCQkgICJUaGV5IHdpbGwgYmUgZGVsZXRlZCAiCisJCQkJICAiaWYgeW91IHNhdmUgdGhpcyBwYXJ0aXRpb24gdGFibGUuXG4iKSwKKwkJCQlwYXJ0aXRpb25zKTsKKwkJCWNsZWFyX3BhcnRpdGlvbihwcmUtPmV4dF9wb2ludGVyKTsKKwkJCXByZS0+Y2hhbmdlZCA9IDE7CisJCQlyZXR1cm47CisJCX0KKworCQlyZWFkX3B0ZShmZCwgcGFydGl0aW9ucywgZXh0ZW5kZWRfb2Zmc2V0ICsgZ2V0X3N0YXJ0X3NlY3QocCkpOworCisJCWlmICghZXh0ZW5kZWRfb2Zmc2V0KQorCQkJZXh0ZW5kZWRfb2Zmc2V0ID0gZ2V0X3N0YXJ0X3NlY3QocCk7CisKKwkJcSA9IHAgPSBwdF9vZmZzZXQocGUtPnNlY3RvcmJ1ZmZlciwgMCk7CisJCWZvciAoaSA9IDA7IGkgPCA0OyBpKyssIHArKykgaWYgKGdldF9ucl9zZWN0cyhwKSkgeworCQkJaWYgKElTX0VYVEVOREVEIChwLT5zeXNfaW5kKSkgeworCQkJCWlmIChwZS0+ZXh0X3BvaW50ZXIpCisJCQkJCWZwcmludGYoc3RkZXJyLAorCQkJCQkJXygiV2FybmluZzogZXh0cmEgbGluayAiCisJCQkJCQkgICJwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSIKKwkJCQkJCSAgIiAlZFxuIiksIHBhcnRpdGlvbnMgKyAxKTsKKwkJCQllbHNlCisJCQkJCXBlLT5leHRfcG9pbnRlciA9IHA7CisJCQl9IGVsc2UgaWYgKHAtPnN5c19pbmQpIHsKKwkJCQlpZiAocGUtPnBhcnRfdGFibGUpCisJCQkJCWZwcmludGYoc3RkZXJyLAorCQkJCQkJXygiV2FybmluZzogaWdub3JpbmcgZXh0cmEgIgorCQkJCQkJICAiZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUiCisJCQkJCQkgICIgJWRcbiIpLCBwYXJ0aXRpb25zICsgMSk7CisJCQkJZWxzZQorCQkJCQlwZS0+cGFydF90YWJsZSA9IHA7CisJCQl9CisJCX0KKworCQkvKiB2ZXJ5IHN0cmFuZ2UgY29kZSBoZXJlLi4uICovCisJCWlmICghcGUtPnBhcnRfdGFibGUpIHsKKwkJCWlmIChxICE9IHBlLT5leHRfcG9pbnRlcikKKwkJCQlwZS0+cGFydF90YWJsZSA9IHE7CisJCQllbHNlCisJCQkJcGUtPnBhcnRfdGFibGUgPSBxICsgMTsKKwkJfQorCQlpZiAoIXBlLT5leHRfcG9pbnRlcikgeworCQkJaWYgKHEgIT0gcGUtPnBhcnRfdGFibGUpCisJCQkJcGUtPmV4dF9wb2ludGVyID0gcTsKKwkJCWVsc2UKKwkJCQlwZS0+ZXh0X3BvaW50ZXIgPSBxICsgMTsKKwkJfQorCisJCXAgPSBwZS0+ZXh0X3BvaW50ZXI7CisJCXBhcnRpdGlvbnMrKzsKKwl9CisKKwkvKiByZW1vdmUgZW1wdHkgbGlua3MgKi8KKyByZW1vdmU6CisJZm9yIChpID0gNDsgaSA8IHBhcnRpdGlvbnM7IGkrKykgeworCQlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzW2ldOworCisJCWlmICghZ2V0X25yX3NlY3RzKHBlLT5wYXJ0X3RhYmxlKSAmJgorCQkgICAgKHBhcnRpdGlvbnMgPiA1IHx8IHB0ZXNbNF0ucGFydF90YWJsZS0+c3lzX2luZCkpIHsKKwkJCXByaW50ZihfKCJvbWl0dGluZyBlbXB0eSBwYXJ0aXRpb24gKCVkKVxuIiksIGkrMSk7CisJCQlkZWxldGVfcGFydGl0aW9uKGkpOworCQkJZ290byByZW1vdmU7IAkvKiBudW1iZXJpbmcgY2hhbmdlZCAqLworCQl9CisJfQorfQorCitzdGF0aWMgdm9pZAorZG9zX3dyaXRlX21icl9pZCh1bnNpZ25lZCBjaGFyICpiLCB1bnNpZ25lZCBpbnQgaWQpIHsKKwlzdG9yZTRfbGl0dGxlX2VuZGlhbigmYls0NDBdLCBpZCk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK2Rvc19yZWFkX21icl9pZChjb25zdCB1bnNpZ25lZCBjaGFyICpiKSB7CisJcmV0dXJuIHJlYWQ0X2xpdHRsZV9lbmRpYW4oJmJbNDQwXSk7Cit9CisKK3N0YXRpYyB2b2lkCitkb3NfcHJpbnRfbWJyX2lkKHZvaWQpIHsKKwlwcmludGYoXygiRGlzayBpZGVudGlmaWVyOiAweCUwOHhcbiIpLCBkb3NfcmVhZF9tYnJfaWQoTUJSYnVmZmVyKSk7Cit9CisKK3N0YXRpYyB2b2lkCitkb3Nfc2V0X21icl9pZCh2b2lkKSB7CisJdW5zaWduZWQgbG9uZyBuZXdfaWQ7CisJY2hhciAqZXA7CisJY2hhciBwc1s2NF07CisKKwlzbnByaW50Zihwcywgc2l6ZW9mIHBzLCBfKCJOZXcgZGlzayBpZGVudGlmaWVyIChjdXJyZW50IDB4JTA4eCk6ICIpLAorCQkgZG9zX3JlYWRfbWJyX2lkKE1CUmJ1ZmZlcikpOworCisJaWYgKHJlYWRfY2hhcnMocHMpID09ICdcbicpCisJCXJldHVybjsKKworCW5ld19pZCA9IHN0cnRvdWwobGluZV9wdHIsICZlcCwgMCk7CisJaWYgKCplcCAhPSAnXG4nKQorCQlyZXR1cm47CisKKwlkb3Nfd3JpdGVfbWJyX2lkKE1CUmJ1ZmZlciwgbmV3X2lkKTsKKwlkb3NfcHJpbnRfbWJyX2lkKCk7Cit9CisKK3N0YXRpYyB2b2lkCitjcmVhdGVfZG9zbGFiZWwodm9pZCkgeworCXVuc2lnbmVkIGludCBpZCA9IGdldF9yYW5kb21faWQoKTsKKworCWZwcmludGYoc3RkZXJyLAorCV8oIkJ1aWxkaW5nIGEgbmV3IERPUyBkaXNrbGFiZWwgd2l0aCBkaXNrIGlkZW50aWZpZXIgMHglMDh4LlxuIgorCSAgIkNoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksIHVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS5cbiIKKwkgICJBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuXG4iKSwKKwkJaWQpOworCXN1bl9ub2xhYmVsKCk7ICAvKiBvdGhlcndpc2UgYWx3YXlzIHJlY29nbmlzZWQgYXMgc3VuICovCisJc2dpX25vbGFiZWwoKTsgIC8qIG90aGVyd2lzZSBhbHdheXMgcmVjb2duaXNlZCBhcyBzZ2kgKi8KKwltYWNfbGFiZWwgPSBhaXhfbGFiZWwgPSBvc2ZfbGFiZWwgPSBwb3NzaWJseV9vc2ZfbGFiZWwgPSAwOworCXBhcnRpdGlvbnMgPSA0OworCisJLyogWmVybyBvdXQgdGhlIE1CUiBidWZmZXIgKi8KKwlleHRlbmRlZF9vZmZzZXQgPSAwOworCXNldF9hbGxfdW5jaGFuZ2VkKCk7CisJc2V0X2NoYW5nZWQoMCk7CisJZ2V0X2Jvb3QoY3JlYXRlX2VtcHR5X2Rvcyk7CisKKwkvKiBHZW5lcmF0ZSBhbiBNQlIgSUQgZm9yIHRoaXMgZGlzayAqLworCWRvc193cml0ZV9tYnJfaWQoTUJSYnVmZmVyLCBpZCk7CisKKwkvKiBNYXJrIGl0IGJvb3RhYmxlICh1bmZvcnR1bmF0ZWx5IHJlcXVpcmVkKSAqLworCXdyaXRlX3BhcnRfdGFibGVfZmxhZyhNQlJidWZmZXIpOworfQorCitzdGF0aWMgdm9pZAorZ2V0X3RvcG9sb2d5KGludCBmZCkgeworCWludCBhcmc7CisjaWZkZWYgSEFWRV9MSUJCTEtJRF9JTlRFUk5BTAorCWJsa2lkX3Byb2JlIHByOworCisJcHIgPSBibGtpZF9uZXdfcHJvYmUoKTsKKwlpZiAocHIgJiYgYmxraWRfcHJvYmVfc2V0X2RldmljZShwciwgZmQsIDAsIDApID09IDApIHsKKwkJYmxraWRfdG9wb2xvZ3kgdHAgPSBibGtpZF9wcm9iZV9nZXRfdG9wb2xvZ3kocHIpOworCisJCWlmICh0cCkgeworCQkJbWluX2lvX3NpemUgPSBibGtpZF90b3BvbG9neV9nZXRfbWluaW11bV9pb19zaXplKHRwKTsKKwkJCWlvX3NpemUgPSBibGtpZF90b3BvbG9neV9nZXRfb3B0aW1hbF9pb19zaXplKHRwKTsKKwkJCXBoeV9zZWN0b3Jfc2l6ZSA9IGJsa2lkX3RvcG9sb2d5X2dldF9waHlzaWNhbF9zZWN0b3Jfc2l6ZSh0cCk7CisJCQlhbGlnbm1lbnRfb2Zmc2V0ID0gYmxraWRfdG9wb2xvZ3lfZ2V0X2FsaWdubWVudF9vZmZzZXQodHApOworCisJCQkvKiBXZSBhc3N1bWUgdGhhdCB0aGUgZGV2aWNlIHByb3ZpZGVzIHRvcG9sb2d5IGluZm8gaWYKKwkJCSAqIG9wdGltYWxfaW9fc2l6ZSBpcyBzZXQgb3IgYWxpZ25tZW50X29mZnNldCBpcyBzZXQgb3IKKwkJCSAqIG1pbmltdW1faW9fc2l6ZSBpcyBub3QgcG93ZXIgb2YgMi4KKwkJCSAqCisJCQkgKiBTZWUgYWxzbyB1cGRhdGVfc2VjdG9yX29mZnNldCgpLgorCQkJICovCisJCQlpZiAoaW9fc2l6ZSB8fCBhbGlnbm1lbnRfb2Zmc2V0IHx8CisJCQkgICAgKG1pbl9pb19zaXplICYgKG1pbl9pb19zaXplIC0gMSkpKQorCQkJCWhhc190b3BvbG9neSA9IDE7CisJCQlpZiAoIWlvX3NpemUpCisJCQkJLyogb3B0aW1hbCBJTyBpcyBvcHRpb25hbCwgZGVmYXVsdCB0byBtaW5pbXVtIElPICovCisJCQkJaW9fc2l6ZSA9IG1pbl9pb19zaXplOworCQl9CisJfQorCWJsa2lkX2ZyZWVfcHJvYmUocHIpOworI2VuZGlmCisKKwlpZiAodXNlcl9zZXRfc2VjdG9yX3NpemUpCisJCS8qIGZkaXNrIHNpbmNlIDIuMTcgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGxvZ2ljYWwgYW5kIHBoeXNpY2FsCisJCSAqIHNlY3RvcnMgc2l6ZS4gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgdGhlCisJCSAqICAgIGZkaXNrIC1iIDxzZWN0b3JzaXplPgorCQkgKiBjaGFuZ2VzIGJvdGgsIGxvZ2ljYWwgYW5kIHBoeXNpY2FsIHNlY3RvciBzaXplLgorCQkgKi8KKwkJcGh5X3NlY3Rvcl9zaXplID0gc2VjdG9yX3NpemU7CisKKwllbHNlIGlmIChibGtkZXZfZ2V0X3NlY3Rvcl9zaXplKGZkLCAmYXJnKSA9PSAwKSB7CisJCXNlY3Rvcl9zaXplID0gYXJnOworCisJCWlmICghcGh5X3NlY3Rvcl9zaXplKQorCQkJcGh5X3NlY3Rvcl9zaXplID0gc2VjdG9yX3NpemU7CisJfQorCisJaWYgKCFtaW5faW9fc2l6ZSkKKwkJbWluX2lvX3NpemUgPSBwaHlfc2VjdG9yX3NpemU7CisJaWYgKCFpb19zaXplKQorCQlpb19zaXplID0gbWluX2lvX3NpemU7CisKKwlpZiAoc2VjdG9yX3NpemUgIT0gREVGQVVMVF9TRUNUT1JfU0laRSkKKwkJcHJpbnRmKF8oIk5vdGU6IHNlY3RvciBzaXplIGlzICVkIChub3QgJWQpXG4iKSwKKwkJICAgICAgIHNlY3Rvcl9zaXplLCBERUZBVUxUX1NFQ1RPUl9TSVpFKTsKK30KKworc3RhdGljIHZvaWQKK2dldF9rZXJuZWxfZ2VvbWV0cnkoaW50IGZkKSB7CisjaWZkZWYgSERJT19HRVRHRU8KKwlzdHJ1Y3QgaGRfZ2VvbWV0cnkgZ2VvbWV0cnk7CisKKwlpZiAoIWlvY3RsKGZkLCBIRElPX0dFVEdFTywgJmdlb21ldHJ5KSkgeworCQlrZXJuX2hlYWRzID0gZ2VvbWV0cnkuaGVhZHM7CisJCWtlcm5fc2VjdG9ycyA9IGdlb21ldHJ5LnNlY3RvcnM7CisJCS8qIG5ldmVyIHVzZSBnZW9tZXRyeS5jeWxpbmRlcnMgLSBpdCBpcyB0cnVuY2F0ZWQgKi8KKwl9CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQKK2dldF9wYXJ0aXRpb25fdGFibGVfZ2VvbWV0cnkodm9pZCkgeworCXVuc2lnbmVkIGNoYXIgKmJ1ZnAgPSBNQlJidWZmZXI7CisJc3RydWN0IHBhcnRpdGlvbiAqcDsKKwlpbnQgaSwgaCwgcywgaGgsIHNzOworCWludCBmaXJzdCA9IDE7CisJaW50IGJhZCA9IDA7CisKKwlpZiAoISh2YWxpZF9wYXJ0X3RhYmxlX2ZsYWcoYnVmcCkpKQorCQlyZXR1cm47CisKKwloaCA9IHNzID0gMDsKKwlmb3IgKGk9MDsgaTw0OyBpKyspIHsKKwkJcCA9IHB0X29mZnNldChidWZwLCBpKTsKKwkJaWYgKHAtPnN5c19pbmQgIT0gMCkgeworCQkJaCA9IHAtPmVuZF9oZWFkICsgMTsKKwkJCXMgPSAocC0+ZW5kX3NlY3RvciAmIDA3Nyk7CisJCQlpZiAoZmlyc3QpIHsKKwkJCQloaCA9IGg7CisJCQkJc3MgPSBzOworCQkJCWZpcnN0ID0gMDsKKwkJCX0gZWxzZSBpZiAoaGggIT0gaCB8fCBzcyAhPSBzKQorCQkJCWJhZCA9IDE7CisJCX0KKwl9CisKKwlpZiAoIWZpcnN0ICYmICFiYWQpIHsKKwkJcHRfaGVhZHMgPSBoaDsKKwkJcHRfc2VjdG9ycyA9IHNzOworCX0KK30KKworLyoKKyAqIFNldHMgTEJBIG9mIHRoZSBmaXJzdCBwYXJ0aXRpb24KKyAqLwordm9pZAordXBkYXRlX3NlY3Rvcl9vZmZzZXQodm9pZCkKK3sKKwlncmFpbiA9IGlvX3NpemU7CisKKwlpZiAoZG9zX2NvbXBhdGlibGVfZmxhZykKKwkJc2VjdG9yX29mZnNldCA9IHNlY3RvcnM7CS8qIHVzdWFsbHkgNjMgc2VjdG9ycyAqLworCWVsc2UgeworCQkvKgorCQkgKiBBbGlnbiB0aGUgYmVnaW4gb2YgcGFydGl0aW9ucyB0bzoKKwkJICoKKwkJICogYSkgdG9wb2xvZ3kKKwkJICogIGEyKSBhbGlnbm1lbnQgb2Zmc2V0CisJCSAqICBhMSkgb3IgcGh5c2ljYWwgc2VjdG9yIChtaW5pbWFsX2lvX3NpemUsIGFrYSAiZ3JhaW4iKQorCQkgKgorCQkgKiBiKSBvciBkZWZhdWx0IHRvIDFNaUIgKDIwNDggc2VjdHJvcnMsIFdpbmRvd3MgVmlzdGEgZGVmYXVsdCkKKwkJICoKKwkJICogYykgb3IgZm9yIHZlcnkgc21hbGwgZGV2aWNlcyB1c2UgMSBwaHkuc2VjdG9yCisJCSAqLworCQl1bnNpZ25lZCBsb25nIGxvbmcgeCA9IDA7CisKKwkJaWYgKGhhc190b3BvbG9neSkgeworCQkJaWYgKGFsaWdubWVudF9vZmZzZXQpCisJCQkJeCA9IGFsaWdubWVudF9vZmZzZXQ7CisJCQllbHNlIGlmIChpb19zaXplID4gMjA0OCAqIDUxMikKKwkJCQl4ID0gaW9fc2l6ZTsKKwkJfQorCQkvKiBkZWZhdWx0IHRvIDFNaUIgKi8KKwkJaWYgKCF4KQorCQkJeCA9IDIwNDggKiA1MTI7CisKKwkJc2VjdG9yX29mZnNldCA9IHggLyBzZWN0b3Jfc2l6ZTsKKworCQkvKiBkb24ndCB1c2UgaHVnZSBvZmZzZXQgb24gc21hbGwgZGV2aWNlcyAqLworCQlpZiAodG90YWxfbnVtYmVyX29mX3NlY3RvcnMgPD0gc2VjdG9yX29mZnNldCAqIDQpCisJCQlzZWN0b3Jfb2Zmc2V0ID0gcGh5X3NlY3Rvcl9zaXplIC8gc2VjdG9yX3NpemU7CisKKwkJLyogdXNlIDFNaUIgZ3JhaW4gYWx3YXlzIHdoZW4gcG9zc2libGUgKi8KKwkJaWYgKGdyYWluIDwgMjA0OCAqIDUxMikKKwkJCWdyYWluID0gMjA0OCAqIDUxMjsKKworCQkvKiBkb24ndCB1c2UgaHVnZSBncmFpbiBvbiBzbWFsbCBkZXZpY2VzICovCisJCWlmICh0b3RhbF9udW1iZXJfb2Zfc2VjdG9ycyA8PSAoZ3JhaW4gKiA0IC8gc2VjdG9yX3NpemUpKQorCQkJZ3JhaW4gPSBwaHlfc2VjdG9yX3NpemU7CisJfQorfQorCit2b2lkCitnZXRfZ2VvbWV0cnkoaW50IGZkLCBzdHJ1Y3QgZ2VvbSAqZykgeworCXVuc2lnbmVkIGxvbmcgbG9uZyBsbGN5bHM7CisKKwlnZXRfdG9wb2xvZ3koZmQpOworCXNlY3Rvcl9mYWN0b3IgPSBzZWN0b3Jfc2l6ZSAvIDUxMjsKKwlndWVzc19kZXZpY2VfdHlwZShmZCk7CisJaGVhZHMgPSBjeWxpbmRlcnMgPSBzZWN0b3JzID0gMDsKKwlrZXJuX2hlYWRzID0ga2Vybl9zZWN0b3JzID0gMDsKKwlwdF9oZWFkcyA9IHB0X3NlY3RvcnMgPSAwOworCisJZ2V0X2tlcm5lbF9nZW9tZXRyeShmZCk7CisJZ2V0X3BhcnRpdGlvbl90YWJsZV9nZW9tZXRyeSgpOworCisJaGVhZHMgPSB1c2VyX2hlYWRzID8gdXNlcl9oZWFkcyA6CisJCXB0X2hlYWRzID8gcHRfaGVhZHMgOgorCQlrZXJuX2hlYWRzID8ga2Vybl9oZWFkcyA6IDI1NTsKKwlzZWN0b3JzID0gdXNlcl9zZWN0b3JzID8gdXNlcl9zZWN0b3JzIDoKKwkJcHRfc2VjdG9ycyA/IHB0X3NlY3RvcnMgOgorCQlrZXJuX3NlY3RvcnMgPyBrZXJuX3NlY3RvcnMgOiA2MzsKKworCWlmIChibGtkZXZfZ2V0X3NlY3RvcnMoZmQsICZ0b3RhbF9udW1iZXJfb2Zfc2VjdG9ycykgPT0gLTEpCisJCXRvdGFsX251bWJlcl9vZl9zZWN0b3JzID0gMDsKKworCXVwZGF0ZV9zZWN0b3Jfb2Zmc2V0KCk7CisKKwlsbGN5bHMgPSB0b3RhbF9udW1iZXJfb2Zfc2VjdG9ycyAvIChoZWFkcyAqIHNlY3RvcnMgKiBzZWN0b3JfZmFjdG9yKTsKKwljeWxpbmRlcnMgPSBsbGN5bHM7CisJaWYgKGN5bGluZGVycyAhPSBsbGN5bHMpCS8qIHRydW5jYXRlZD8gKi8KKwkJY3lsaW5kZXJzID0gfjA7CisJaWYgKCFjeWxpbmRlcnMpCisJCWN5bGluZGVycyA9IHVzZXJfY3lsaW5kZXJzOworCisJaWYgKGcpIHsKKwkJZy0+aGVhZHMgPSBoZWFkczsKKwkJZy0+c2VjdG9ycyA9IHNlY3RvcnM7CisJCWctPmN5bGluZGVycyA9IGN5bGluZGVyczsKKwl9Cit9CisKKy8qCisgKiBQbGVhc2UsIGFsd2F5cyB1c2UgYWxsb2NhdGVkIGJ1ZmZlciBpZiB5b3Ugd2FudCB0byBjYXN0IHRoZSBidWZmZXIgdG8KKyAqIGFueSBzdHJ1Y3QgLS0gY2FzdCBub24tYWxsb2NhdGVkIGJ1ZmZlciB0byBhbnkgc3RydWN0IGlzIGFnYWluc3QKKyAqIHN0cmljdC1hbGlhc2luZyBydWxlcy4gIC0ta3phayAxNi1PY3QtMjAwOQorICovCitzdGF0aWMgdm9pZCBpbml0X21icl9idWZmZXIodm9pZCkKK3sKKwlpZiAoTUJSYnVmZmVyKQorCQlyZXR1cm47CisKKwlNQlJidWZmZXIgPSBjYWxsb2MoMSwgTUFYX1NFQ1RPUl9TSVpFKTsKKwlpZiAoIU1CUmJ1ZmZlcikKKwkJZmF0YWwob3V0X29mX21lbW9yeSk7Cit9CisKK3ZvaWQgemVyb2l6ZV9tYnJfYnVmZmVyKHZvaWQpCit7CisJaWYgKE1CUmJ1ZmZlcikKKwkJbWVtc2V0KE1CUmJ1ZmZlciwgMCwgTUFYX1NFQ1RPUl9TSVpFKTsKK30KKworLyoKKyAqIFJlYWQgTUJSLiAgUmV0dXJuczoKKyAqICAgLTE6IG5vIDB4YWE1NSBmbGFnIHByZXNlbnQgKHBvc3NpYmx5IGVudGlyZSBkaXNrIEJTRCkKKyAqICAgIDA6IGZvdW5kIG9yIGNyZWF0ZWQgbGFiZWwKKyAqICAgIDE6IEkvTyBlcnJvcgorICovCitpbnQKK2dldF9ib290KGVudW0gYWN0aW9uIHdoYXQpIHsKKwlpbnQgaTsKKworCXBhcnRpdGlvbnMgPSA0OworCWV4dF9pbmRleCA9IDA7CisJZXh0ZW5kZWRfb2Zmc2V0ID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKwkJc3RydWN0IHB0ZSAqcGUgPSAmcHRlc1tpXTsKKworCQlwZS0+cGFydF90YWJsZSA9IHB0X29mZnNldChNQlJidWZmZXIsIGkpOworCQlwZS0+ZXh0X3BvaW50ZXIgPSBOVUxMOworCQlwZS0+b2Zmc2V0ID0gMDsKKwkJcGUtPnNlY3RvcmJ1ZmZlciA9IE1CUmJ1ZmZlcjsKKwkJcGUtPmNoYW5nZWQgPSAod2hhdCA9PSBjcmVhdGVfZW1wdHlfZG9zKTsKKwl9CisKKwlpZiAod2hhdCA9PSBjcmVhdGVfZW1wdHlfc3VuICYmIGNoZWNrX3N1bl9sYWJlbCgpKQorCQlyZXR1cm4gMDsKKworCW1lbXNldChNQlJidWZmZXIsIDAsIDUxMik7CisKKwlpZiAod2hhdCA9PSBjcmVhdGVfZW1wdHlfZG9zKQorCQlnb3RvIGdvdF9kb3NfdGFibGU7CQkvKiBza2lwIHJlYWRpbmcgZGlzayAqLworCisJaWYgKChmZCA9IG9wZW4oZGlza19kZXZpY2UsIHR5cGVfb3BlbikpIDwgMCkgeworCSAgICBpZiAoKGZkID0gb3BlbihkaXNrX2RldmljZSwgT19SRE9OTFkpKSA8IDApIHsKKwkJaWYgKHdoYXQgPT0gdHJ5X29ubHkpCisJCSAgICByZXR1cm4gMTsKKwkJZmF0YWwodW5hYmxlX3RvX29wZW4pOworCSAgICB9IGVsc2UKKwkJcHJpbnRmKF8oIllvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHdyaXRlICIKKwkJCSAidGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIpKTsKKwl9CisKKwlpZiAoNTEyICE9IHJlYWQoZmQsIE1CUmJ1ZmZlciwgNTEyKSkgeworCQlpZiAod2hhdCA9PSB0cnlfb25seSkKKwkJCXJldHVybiAxOworCQlmYXRhbCh1bmFibGVfdG9fcmVhZCk7CisJfQorCisJZ2V0X2dlb21ldHJ5KGZkLCBOVUxMKTsKKworCXVwZGF0ZV91bml0cygpOworCisJaWYgKGNoZWNrX3N1bl9sYWJlbCgpKQorCQlyZXR1cm4gMDsKKworCWlmIChjaGVja19zZ2lfbGFiZWwoKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoY2hlY2tfYWl4X2xhYmVsKCkpCisJCXJldHVybiAwOworCisJaWYgKGNoZWNrX21hY19sYWJlbCgpKQorCQlyZXR1cm4gMDsKKworCWlmIChjaGVja19vc2ZfbGFiZWwoKSkgeworCQlwb3NzaWJseV9vc2ZfbGFiZWwgPSAxOworCQlpZiAoIXZhbGlkX3BhcnRfdGFibGVfZmxhZyhNQlJidWZmZXIpKSB7CisJCQlvc2ZfbGFiZWwgPSAxOworCQkJcmV0dXJuIDA7CisJCX0KKwkJcHJpbnRmKF8oIlRoaXMgZGlzayBoYXMgYm90aCBET1MgYW5kIEJTRCBtYWdpYy5cbiIKKwkJCSAiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iKSk7CisJfQorCitnb3RfZG9zX3RhYmxlOgorCisJaWYgKCF2YWxpZF9wYXJ0X3RhYmxlX2ZsYWcoTUJSYnVmZmVyKSkgeworCQlzd2l0Y2god2hhdCkgeworCQljYXNlIGZkaXNrOgorCQkJZnByaW50ZihzdGRlcnIsCisJCQkJXygiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgIgorCQkJCSAgInBhcnRpdGlvbiB0YWJsZSwgbm9yIFN1biwgU0dJIG9yIE9TRiAiCisJCQkJICAiZGlza2xhYmVsXG4iKSk7CisjaWZkZWYgX19zcGFyY19fCisJCQljcmVhdGVfc3VubGFiZWwoKTsKKyNlbHNlCisJCQljcmVhdGVfZG9zbGFiZWwoKTsKKyNlbmRpZgorCQkJcmV0dXJuIDA7CisJCWNhc2UgcmVxdWlyZToKKwkJCXJldHVybiAtMTsKKwkJY2FzZSB0cnlfb25seToKKwkJICAgICAgICByZXR1cm4gLTE7CisJCWNhc2UgY3JlYXRlX2VtcHR5X2RvczoKKwkJY2FzZSBjcmVhdGVfZW1wdHlfc3VuOgorCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlmcHJpbnRmKHN0ZGVyciwgXygiSW50ZXJuYWwgZXJyb3JcbiIpKTsKKwkJCWV4aXQoMSk7CisJCX0KKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisJCXN0cnVjdCBwdGUgKnBlID0gJnB0ZXNbaV07CisKKwkJaWYgKElTX0VYVEVOREVEIChwZS0+cGFydF90YWJsZS0+c3lzX2luZCkpIHsKKwkJCWlmIChwYXJ0aXRpb25zICE9IDQpCisJCQkJZnByaW50ZihzdGRlcnIsIF8oIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkICIKKwkJCQkJInBhcnRpdGlvbiAlZFxuIiksIGkgKyAxKTsKKwkJCWVsc2UKKwkJCQlyZWFkX2V4dGVuZGVkKGkpOworCQl9CisJfQorCisJZm9yIChpID0gMzsgaSA8IHBhcnRpdGlvbnM7IGkrKykgeworCQlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzW2ldOworCisJCWlmICghdmFsaWRfcGFydF90YWJsZV9mbGFnKHBlLT5zZWN0b3JidWZmZXIpKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCJXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHglMDR4IG9mIHBhcnRpdGlvbiAiCisJCQkJInRhYmxlICVkIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSlcbiIpLAorCQkJCXBhcnRfdGFibGVfZmxhZyhwZS0+c2VjdG9yYnVmZmVyKSwgaSArIDEpOworCQkJcGUtPmNoYW5nZWQgPSAxOworCQl9CisJfQorCisJd2Fybl9nZW9tZXRyeSgpOworCXdhcm5fbGltaXRzKCk7CisJd2Fybl9hbGlnbm1lbnQoKTsKKworCXJldHVybiAwOworfQorCisvKiByZWFkIGxpbmU7IHJldHVybiAwIG9yIGZpcnN0IGNoYXIgKi8KK2ludAorcmVhZF9saW5lKHZvaWQpCit7CisJc3RhdGljIGludCBnb3RfZW9mID0gMDsKKworCWxpbmVfcHRyID0gbGluZV9idWZmZXI7CisJaWYgKCFmZ2V0cyhsaW5lX2J1ZmZlciwgTElORV9MRU5HVEgsIHN0ZGluKSkgeworCQlpZiAoZmVvZihzdGRpbikpCisJCQlnb3RfZW9mKys7IAkvKiB1c2VyIHR5cGVkIF5EID8gKi8KKwkJaWYgKGdvdF9lb2YgPj0gMykgeworCQkJZmZsdXNoKHN0ZG91dCk7CisJCQlmcHJpbnRmKHN0ZGVyciwgXygiXG5nb3QgRU9GIHRocmljZSAtIGV4aXRpbmcuLlxuIikpOworCQkJZXhpdCgxKTsKKwkJfQorCQlyZXR1cm4gMDsKKwl9CisJd2hpbGUgKCpsaW5lX3B0ciAmJiAhaXNncmFwaCgqbGluZV9wdHIpKQorCQlsaW5lX3B0cisrOworCXJldHVybiAqbGluZV9wdHI7Cit9CisKK2NoYXIKK3JlYWRfY2hhcihjaGFyICptZXNnKQoreworCWRvIHsKKwkJZnB1dHMobWVzZywgc3Rkb3V0KTsKKwkJZmZsdXNoIChzdGRvdXQpOwkgLyogcmVxdWVzdGVkIGJ5IG5pbGVzQHNjeWxkLmNvbSAqLworCX0gd2hpbGUgKCFyZWFkX2xpbmUoKSk7CisJcmV0dXJuICpsaW5lX3B0cjsKK30KKworY2hhcgorcmVhZF9jaGFycyhjaGFyICptZXNnKQoreworICAgICAgICBmcHV0cyhtZXNnLCBzdGRvdXQpOworCWZmbHVzaCAoc3Rkb3V0KTsJLyogbmlsZXNAc2N5bGQuY29tICovCisgICAgICAgIGlmICghcmVhZF9saW5lKCkpIHsKKwkJKmxpbmVfcHRyID0gJ1xuJzsKKwkJbGluZV9wdHJbMV0gPSAwOworCX0KKwlyZXR1cm4gKmxpbmVfcHRyOworfQorCitpbnQKK3JlYWRfaGV4KHN0cnVjdCBzeXN0eXBlcyAqc3lzKQoreworICAgICAgICBpbnQgaGV4OworCisgICAgICAgIHdoaWxlICgxKQorICAgICAgICB7CisgICAgICAgICAgIHJlYWRfY2hhcihfKCJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiKSk7CisgICAgICAgICAgIGlmICh0b2xvd2VyKCpsaW5lX3B0cikgPT0gJ2wnKQorICAgICAgICAgICAgICAgbGlzdF90eXBlcyhzeXMpOworCSAgIGVsc2UgaWYgKGlzeGRpZ2l0ICgqbGluZV9wdHIpKQorCSAgIHsKKwkgICAgICBoZXggPSAwOworCSAgICAgIGRvCisJCSBoZXggPSBoZXggPDwgNCB8IGhleF92YWwoKmxpbmVfcHRyKyspOworCSAgICAgIHdoaWxlIChpc3hkaWdpdCgqbGluZV9wdHIpKTsKKwkgICAgICByZXR1cm4gaGV4OworCSAgIH0KKyAgICAgICAgfQorfQorCitzdGF0aWMgdW5zaWduZWQgaW50CityZWFkX2ludF9zeCh1bnNpZ25lZCBpbnQgbG93LCB1bnNpZ25lZCBpbnQgZGZsdCwgdW5zaWduZWQgaW50IGhpZ2gsCisJIHVuc2lnbmVkIGludCBiYXNlLCBjaGFyICptZXNnLCBpbnQgKnN1ZmZpeCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgZGVmYXVsdF9vayA9IDE7CisJc3RhdGljIGNoYXIgKm1zID0gTlVMTDsKKwlzdGF0aWMgaW50IG1zbGVuID0gMDsKKworCWlmICghbXMgfHwgc3RybGVuKG1lc2cpKzEwMCA+IG1zbGVuKSB7CisJCW1zbGVuID0gc3RybGVuKG1lc2cpKzIwMDsKKwkJaWYgKCEobXMgPSByZWFsbG9jKG1zLG1zbGVuKSkpCisJCQlmYXRhbChvdXRfb2ZfbWVtb3J5KTsKKwl9CisKKwlpZiAoZGZsdCA8IGxvdyB8fCBkZmx0ID4gaGlnaCkKKwkJZGVmYXVsdF9vayA9IDA7CisKKwlpZiAoZGVmYXVsdF9vaykKKwkJc25wcmludGYobXMsIG1zbGVuLCBfKCIlcyAoJXUtJXUsIGRlZmF1bHQgJXUpOiAiKSwKKwkJCSBtZXNnLCBsb3csIGhpZ2gsIGRmbHQpOworCWVsc2UKKwkJc25wcmludGYobXMsIG1zbGVuLCAiJXMgKCV1LSV1KTogIiwKKwkJCSBtZXNnLCBsb3csIGhpZ2gpOworCisJd2hpbGUgKDEpIHsKKwkJaW50IHVzZV9kZWZhdWx0ID0gZGVmYXVsdF9vazsKKworCQkvKiBhc2sgcXVlc3Rpb24gYW5kIHJlYWQgYW5zd2VyICovCisJCXdoaWxlIChyZWFkX2NoYXJzKG1zKSAhPSAnXG4nICYmICFpc2RpZ2l0KCpsaW5lX3B0cikKKwkJICAgICAgICYmICpsaW5lX3B0ciAhPSAnLScgJiYgKmxpbmVfcHRyICE9ICcrJykKKwkJCWNvbnRpbnVlOworCisJCWlmICgqbGluZV9wdHIgPT0gJysnIHx8ICpsaW5lX3B0ciA9PSAnLScpIHsKKwkJCWludCBtaW51cyA9ICgqbGluZV9wdHIgPT0gJy0nKTsKKwkJCWludCBhYnNvbHV0ZSA9IDA7CisJCQlpbnQgc3VmbGVuOworCisJCQlpID0gYXRvaShsaW5lX3B0cisxKTsKKworCQkJd2hpbGUgKGlzZGlnaXQoKisrbGluZV9wdHIpKQorCQkJCXVzZV9kZWZhdWx0ID0gMDsKKworCQkJc3VmbGVuID0gc3RybGVuKGxpbmVfcHRyKSAtIDE7CisKKwkJCXdoaWxlKGlzc3BhY2UoKihsaW5lX3B0ciArIHN1ZmxlbikpKQorCQkJCSoobGluZV9wdHIgKyBzdWZsZW4tLSkgPSAnXDAnOworCisJCQlpZiAoKCpsaW5lX3B0ciA9PSAnQycgfHwgKmxpbmVfcHRyID09ICdjJykgJiYKKwkJCSAgICAqKGxpbmVfcHRyICsgMSkgPT0gJ1wwJykgeworCQkJCS8qCisJCQkJICogQ3lsaW5kZXJzCisJCQkJICovCisJCQkJaWYgKCFkaXNwbGF5X2luX2N5bF91bml0cykKKwkJCQkJaSAqPSBoZWFkcyAqIHNlY3RvcnM7CisJCQl9IGVsc2UgaWYgKCpsaW5lX3B0ciAmJgorCQkJCSAgICoobGluZV9wdHIgKyAxKSA9PSAnQicgJiYKKwkJCQkgICAqKGxpbmVfcHRyICsgMikgPT0gJ1wwJykgeworCQkJCS8qCisJCQkJICogMTBeTgorCQkJCSAqLworCQkJCWlmICgqbGluZV9wdHIgPT0gJ0snKQorCQkJCQlhYnNvbHV0ZSA9IDEwMDA7CisJCQkJZWxzZSBpZiAoKmxpbmVfcHRyID09ICdNJykKKwkJCQkJYWJzb2x1dGUgPSAxMDAwMDAwOworCQkJCWVsc2UgaWYgKCpsaW5lX3B0ciA9PSAnRycpCisJCQkJCWFic29sdXRlID0gMTAwMDAwMDAwMDsKKwkJCQllbHNlCisJCQkJCWFic29sdXRlID0gLTE7CisJCQl9IGVsc2UgaWYgKCpsaW5lX3B0ciAmJgorCQkJCSAgICoobGluZV9wdHIgKyAxKSA9PSAnXDAnKSB7CisJCQkJLyoKKwkJCQkgKiAyXk4KKwkJCQkgKi8KKwkJCQlpZiAoKmxpbmVfcHRyID09ICdLJykKKwkJCQkJYWJzb2x1dGUgPSAxIDw8IDEwOworCQkJCWVsc2UgaWYgKCpsaW5lX3B0ciA9PSAnTScpCisJCQkJCWFic29sdXRlID0gMSA8PCAyMDsKKwkJCQllbHNlIGlmICgqbGluZV9wdHIgPT0gJ0cnKQorCQkJCQlhYnNvbHV0ZSA9IDEgPDwgMzA7CisJCQkJZWxzZQorCQkJCQlhYnNvbHV0ZSA9IC0xOworCQkJfSBlbHNlIGlmICgqbGluZV9wdHIgIT0gJ1wwJykKKwkJCQlhYnNvbHV0ZSA9IC0xOworCisJCQlpZiAoYWJzb2x1dGUgPT0gLTEpICB7CisJCQkJcHJpbnRmKF8oIlVuc3VwcG9ydGVkIHN1ZmZpeDogJyVzJy5cbiIpLCBsaW5lX3B0cik7CisJCQkJcHJpbnRmKF8oIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorCQkJCQkgIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIikpOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQlpZiAoYWJzb2x1dGUgJiYgaSkgeworCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBieXRlczsKKwkJCQl1bnNpZ25lZCBsb25nIHVuaXQ7CisKKwkJCQlieXRlcyA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIGkgKiBhYnNvbHV0ZTsKKwkJCQl1bml0ID0gc2VjdG9yX3NpemUgKiB1bml0c19wZXJfc2VjdG9yOworCQkJCWJ5dGVzICs9IHVuaXQvMjsJLyogcm91bmQgKi8KKwkJCQlieXRlcyAvPSB1bml0OworCQkJCWkgPSBieXRlczsKKwkJCQlpZiAoc3VmZml4KQorCQkJCQkqc3VmZml4ID0gYWJzb2x1dGU7CisJCQl9CisJCQlpZiAobWludXMpCisJCQkJaSA9IC1pOworCQkJaSArPSBiYXNlOworCQl9IGVsc2UgeworCQkJaSA9IGF0b2kobGluZV9wdHIpOworCQkJd2hpbGUgKGlzZGlnaXQoKmxpbmVfcHRyKSkgeworCQkJCWxpbmVfcHRyKys7CisJCQkJdXNlX2RlZmF1bHQgPSAwOworCQkJfQorCQl9CisJCWlmICh1c2VfZGVmYXVsdCkKKwkJCXByaW50ZihfKCJVc2luZyBkZWZhdWx0IHZhbHVlICV1XG4iKSwgaSA9IGRmbHQpOworCQlpZiAoaSA+PSBsb3cgJiYgaSA8PSBoaWdoKQorCQkJYnJlYWs7CisJCWVsc2UKKwkJCXByaW50ZihfKCJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iKSk7CisJfQorCXJldHVybiBpOworfQorCisvKgorICogUHJpbnQgdGhlIG1lc3NhZ2UgTUVTRywgdGhlbiByZWFkIGFuIGludGVnZXIgaW4gTE9XLi5ISUdILgorICogSWYgdGhlIHVzZXIgaGl0cyBFbnRlciwgREZMVCBpcyByZXR1cm5lZCwgcHJvdmlkZWQgdGhhdCBpcyBpbiBMT1cuLkhJR0guCisgKiBBbnN3ZXJzIGxpa2UgKzEwIGFyZSBpbnRlcnByZXRlZCBhcyBvZmZzZXRzIGZyb20gQkFTRS4KKyAqCisgKiBUaGVyZSBpcyBubyBkZWZhdWx0IGlmIERGTFQgaXMgbm90IGJldHdlZW4gTE9XIGFuZCBISUdILgorICovCit1bnNpZ25lZCBpbnQKK3JlYWRfaW50KHVuc2lnbmVkIGludCBsb3csIHVuc2lnbmVkIGludCBkZmx0LCB1bnNpZ25lZCBpbnQgaGlnaCwKKwkgdW5zaWduZWQgaW50IGJhc2UsIGNoYXIgKm1lc2cpCit7CisJcmV0dXJuIHJlYWRfaW50X3N4KGxvdywgZGZsdCwgaGlnaCwgYmFzZSwgbWVzZywgTlVMTCk7Cit9CisKKworaW50CitnZXRfcGFydGl0aW9uKGludCB3YXJuLCBpbnQgbWF4KSB7CisJc3RydWN0IHB0ZSAqcGU7CisJaW50IGk7CisKKwlpID0gcmVhZF9pbnQoMSwgMCwgbWF4LCAwLCBfKCJQYXJ0aXRpb24gbnVtYmVyIikpIC0gMTsKKwlwZSA9ICZwdGVzW2ldOworCisJaWYgKHdhcm4pIHsKKwkJaWYgKCghc3VuX2xhYmVsICYmICFzZ2lfbGFiZWwgJiYgIXBlLT5wYXJ0X3RhYmxlLT5zeXNfaW5kKQorCQkgICAgfHwgKHN1bl9sYWJlbCAmJgorCQkJKCFzdW5sYWJlbC0+cGFydGl0aW9uc1tpXS5udW1fc2VjdG9ycyB8fAorCQkJICFzdW5sYWJlbC0+cGFydF90YWdzW2ldLnRhZykpCisJCSAgICB8fCAoc2dpX2xhYmVsICYmICghc2dpX2dldF9udW1fc2VjdG9ycyhpKSkpCisJCSAgICkKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXMgZW1wdHkgdHlwZVxuIiksCisJCQkJaSsxKTsKKwl9CisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyBpbnQKK2dldF9leGlzdGluZ19wYXJ0aXRpb24oaW50IHdhcm4sIGludCBtYXgpIHsKKwlpbnQgcG5vID0gLTE7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWF4OyBpKyspIHsKKwkJc3RydWN0IHB0ZSAqcGUgPSAmcHRlc1tpXTsKKwkJc3RydWN0IHBhcnRpdGlvbiAqcCA9IHBlLT5wYXJ0X3RhYmxlOworCisJCWlmIChwICYmICFpc19jbGVhcmVkX3BhcnRpdGlvbihwKSkgeworCQkJaWYgKHBubyA+PSAwKQorCQkJCWdvdG8gbm90X3VuaXF1ZTsKKwkJCXBubyA9IGk7CisJCX0KKwl9CisJaWYgKHBubyA+PSAwKSB7CisJCXByaW50ZihfKCJTZWxlY3RlZCBwYXJ0aXRpb24gJWRcbiIpLCBwbm8rMSk7CisJCXJldHVybiBwbm87CisJfQorCXByaW50ZihfKCJObyBwYXJ0aXRpb24gaXMgZGVmaW5lZCB5ZXQhXG4iKSk7CisJcmV0dXJuIC0xOworCisgbm90X3VuaXF1ZToKKwlyZXR1cm4gZ2V0X3BhcnRpdGlvbih3YXJuLCBtYXgpOworfQorCitzdGF0aWMgaW50CitnZXRfbm9uZXhpc3RpbmdfcGFydGl0aW9uKGludCB3YXJuLCBpbnQgbWF4KSB7CisJaW50IHBubyA9IC0xOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG1heDsgaSsrKSB7CisJCXN0cnVjdCBwdGUgKnBlID0gJnB0ZXNbaV07CisJCXN0cnVjdCBwYXJ0aXRpb24gKnAgPSBwZS0+cGFydF90YWJsZTsKKworCQlpZiAocCAmJiBpc19jbGVhcmVkX3BhcnRpdGlvbihwKSkgeworCQkJaWYgKHBubyA+PSAwKQorCQkJCWdvdG8gbm90X3VuaXF1ZTsKKwkJCXBubyA9IGk7CisJCX0KKwl9CisJaWYgKHBubyA+PSAwKSB7CisJCXByaW50ZihfKCJTZWxlY3RlZCBwYXJ0aXRpb24gJWRcbiIpLCBwbm8rMSk7CisJCXJldHVybiBwbm87CisJfQorCXByaW50ZihfKCJBbGwgcHJpbWFyeSBwYXJ0aXRpb25zIGhhdmUgYmVlbiBkZWZpbmVkIGFscmVhZHkhXG4iKSk7CisJcmV0dXJuIC0xOworCisgbm90X3VuaXF1ZToKKwlyZXR1cm4gZ2V0X3BhcnRpdGlvbih3YXJuLCBtYXgpOworfQorCitjb25zdCBjaGFyICoKK3N0cl91bml0cyhpbnQgbikgewkvKiBuPT0xOiB1c2Ugc2luZ3VsYXIgKi8KKwlpZiAobiA9PSAxKQorCQlyZXR1cm4gZGlzcGxheV9pbl9jeWxfdW5pdHMgPyBfKCJjeWxpbmRlciIpIDogXygic2VjdG9yIik7CisJZWxzZQorCQlyZXR1cm4gZGlzcGxheV9pbl9jeWxfdW5pdHMgPyBfKCJjeWxpbmRlcnMiKSA6IF8oInNlY3RvcnMiKTsKK30KKwordm9pZCBjaGFuZ2VfdW5pdHModm9pZCkKK3sKKwlkaXNwbGF5X2luX2N5bF91bml0cyA9ICFkaXNwbGF5X2luX2N5bF91bml0czsKKwl1cGRhdGVfdW5pdHMoKTsKKwlwcmludGYoXygiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIiksCisJCXN0cl91bml0cyhQTFVSQUwpKTsKK30KKworc3RhdGljIHZvaWQKK3RvZ2dsZV9hY3RpdmUoaW50IGkpIHsKKwlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzW2ldOworCXN0cnVjdCBwYXJ0aXRpb24gKnAgPSBwZS0+cGFydF90YWJsZTsKKworCWlmIChJU19FWFRFTkRFRCAocC0+c3lzX2luZCkgJiYgIXAtPmJvb3RfaW5kKQorCQlmcHJpbnRmKHN0ZGVyciwKKwkJCV8oIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIpLAorCQkJaSArIDEpOworCXAtPmJvb3RfaW5kID0gKHAtPmJvb3RfaW5kID8gMCA6IEFDVElWRV9GTEFHKTsKKwlwZS0+Y2hhbmdlZCA9IDE7Cit9CisKK3N0YXRpYyB2b2lkCit0b2dnbGVfZG9zX2NvbXBhdGliaWxpdHlfZmxhZyh2b2lkKSB7CisJZG9zX2NvbXBhdGlibGVfZmxhZyA9IH5kb3NfY29tcGF0aWJsZV9mbGFnOworCWlmIChkb3NfY29tcGF0aWJsZV9mbGFnKQorCQlwcmludGYoXygiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIpKTsKKwllbHNlCisJCXByaW50ZihfKCJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXRcbiIpKTsKKworCXVwZGF0ZV9zZWN0b3Jfb2Zmc2V0KCk7Cit9CisKK3N0YXRpYyB2b2lkCitkZWxldGVfcGFydGl0aW9uKGludCBpKSB7CisJc3RydWN0IHB0ZSAqcGUgPSAmcHRlc1tpXTsKKwlzdHJ1Y3QgcGFydGl0aW9uICpwID0gcGUtPnBhcnRfdGFibGU7CisJc3RydWN0IHBhcnRpdGlvbiAqcSA9IHBlLT5leHRfcG9pbnRlcjsKKworLyogTm90ZSB0aGF0IGZvciB0aGUgZmlmdGggcGFydGl0aW9uIChpID09IDQpIHdlIGRvbid0IGFjdHVhbGx5CisgKiBkZWNyZW1lbnQgcGFydGl0aW9ucy4KKyAqLworCisJaWYgKHdhcm5fZ2VvbWV0cnkoKSkKKwkJcmV0dXJuOwkJLyogQy9IL1Mgbm90IHNldCAqLworCXBlLT5jaGFuZ2VkID0gMTsKKworCWlmIChzdW5fbGFiZWwpIHsKKwkJc3VuX2RlbGV0ZV9wYXJ0aXRpb24oaSk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoc2dpX2xhYmVsKSB7CisJCXNnaV9kZWxldGVfcGFydGl0aW9uKGkpOworCQlyZXR1cm47CisJfQorCisJaWYgKGkgPCA0KSB7CisJCWlmIChJU19FWFRFTkRFRCAocC0+c3lzX2luZCkgJiYgaSA9PSBleHRfaW5kZXgpIHsKKwkJCXBhcnRpdGlvbnMgPSA0OworCQkJcHRlc1tleHRfaW5kZXhdLmV4dF9wb2ludGVyID0gTlVMTDsKKwkJCWV4dGVuZGVkX29mZnNldCA9IDA7CisJCX0KKwkJY2xlYXJfcGFydGl0aW9uKHApOworCQlyZXR1cm47CisJfQorCisJaWYgKCFxLT5zeXNfaW5kICYmIGkgPiA0KSB7CisJCS8qIHRoZSBsYXN0IG9uZSBpbiB0aGUgY2hhaW4gLSBqdXN0IGRlbGV0ZSAqLworCQktLXBhcnRpdGlvbnM7CisJCS0taTsKKwkJY2xlYXJfcGFydGl0aW9uKHB0ZXNbaV0uZXh0X3BvaW50ZXIpOworCQlwdGVzW2ldLmNoYW5nZWQgPSAxOworCX0gZWxzZSB7CisJCS8qIG5vdCB0aGUgbGFzdCBvbmUgLSBmdXJ0aGVyIG9uZXMgd2lsbCBiZSBtb3ZlZCBkb3duICovCisJCWlmIChpID4gNCkgeworCQkJLyogZGVsZXRlIHRoaXMgbGluayBpbiB0aGUgY2hhaW4gKi8KKwkJCXAgPSBwdGVzW2ktMV0uZXh0X3BvaW50ZXI7CisJCQkqcCA9ICpxOworCQkJc2V0X3N0YXJ0X3NlY3QocCwgZ2V0X3N0YXJ0X3NlY3QocSkpOworCQkJc2V0X25yX3NlY3RzKHAsIGdldF9ucl9zZWN0cyhxKSk7CisJCQlwdGVzW2ktMV0uY2hhbmdlZCA9IDE7CisJCX0gZWxzZSBpZiAocGFydGl0aW9ucyA+IDUpIHsgICAgLyogNSB3aWxsIGJlIG1vdmVkIHRvIDQgKi8KKwkJCS8qIHRoZSBmaXJzdCBsb2dpY2FsIGluIGEgbG9uZ2VyIGNoYWluICovCisJCQlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzWzVdOworCisJCQlpZiAocGUtPnBhcnRfdGFibGUpIC8qIHByZXZlbnQgU0VHRkFVTFQgKi8KKwkJCQlzZXRfc3RhcnRfc2VjdChwZS0+cGFydF90YWJsZSwKKwkJCQkJICAgICAgIGdldF9wYXJ0aXRpb25fc3RhcnQocGUpIC0KKwkJCQkJICAgICAgIGV4dGVuZGVkX29mZnNldCk7CisJCQlwZS0+b2Zmc2V0ID0gZXh0ZW5kZWRfb2Zmc2V0OworCQkJcGUtPmNoYW5nZWQgPSAxOworCQl9CisKKwkJaWYgKHBhcnRpdGlvbnMgPiA1KSB7CisJCQlwYXJ0aXRpb25zLS07CisJCQl3aGlsZSAoaSA8IHBhcnRpdGlvbnMpIHsKKwkJCQlwdGVzW2ldID0gcHRlc1tpKzFdOworCQkJCWkrKzsKKwkJCX0KKwkJfSBlbHNlCisJCQkvKiB0aGUgb25seSBsb2dpY2FsOiBjbGVhciBvbmx5ICovCisJCQljbGVhcl9wYXJ0aXRpb24ocHRlc1tpXS5wYXJ0X3RhYmxlKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCitjaGFuZ2Vfc3lzaWQodm9pZCkgeworCWNoYXIgKnRlbXA7CisJaW50IGksIHN5cywgb3JpZ3N5czsKKwlzdHJ1Y3QgcGFydGl0aW9uICpwOworCisJLyogSWYgc2dpX2xhYmVsIHRoZW4gZG9uJ3QgdXNlIGdldF9leGlzdGluZ19wYXJ0aXRpb24sCisJICAgbGV0IHRoZSB1c2VyIHNlbGVjdCBhIHBhcnRpdGlvbiwgc2luY2UgZ2V0X2V4aXN0aW5nX3BhcnRpdGlvbigpCisJICAgb25seSB3b3JrcyBmb3IgTGludXggbGlrZSBwYXJ0aXRpb24gdGFibGVzLiAqLworCWlmICghc2dpX2xhYmVsKSB7CisJCWkgPSBnZXRfZXhpc3RpbmdfcGFydGl0aW9uKDAsIHBhcnRpdGlvbnMpOworCX0gZWxzZSB7CisJCWkgPSBnZXRfcGFydGl0aW9uKDAsIHBhcnRpdGlvbnMpOworCX0KKworCWlmIChpID09IC0xKQorCQlyZXR1cm47CisJcCA9IHB0ZXNbaV0ucGFydF90YWJsZTsKKwlvcmlnc3lzID0gc3lzID0gZ2V0X3N5c2lkKGkpOworCisJLyogaWYgY2hhbmdpbmcgdHlwZXMgVCB0byAwIGlzIGFsbG93ZWQsIHRoZW4KKwkgICB0aGUgcmV2ZXJzZSBjaGFuZ2UgbXVzdCBiZSBhbGxvd2VkLCB0b28gKi8KKwlpZiAoIXN5cyAmJiAhc2dpX2xhYmVsICYmICFzdW5fbGFiZWwgJiYgIWdldF9ucl9zZWN0cyhwKSkKKyAgICAgICAgICAgICAgICBwcmludGYoXygiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIpLCBpICsgMSk7CisgICAgICAgIGVsc2Ugd2hpbGUgKDEpIHsKKwkJc3lzID0gcmVhZF9oZXggKGdldF9zeXNfdHlwZXMoKSk7CisKKwkJaWYgKCFzeXMgJiYgIXNnaV9sYWJlbCAmJiAhc3VuX2xhYmVsKSB7CisJCQlwcmludGYoXygiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisJCQkgICAgICAgIihidXQgbm90IHRvIExpbnV4KS4gSGF2aW5nIHBhcnRpdGlvbnMgb2ZcbiIKKwkJCSAgICAgICAidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKwkJCSAgICAgICAiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIikpOworCQkJLyogYnJlYWs7ICovCisJCX0KKworCQlpZiAoIXN1bl9sYWJlbCAmJiAhc2dpX2xhYmVsKSB7CisJCQlpZiAoSVNfRVhURU5ERUQgKHN5cykgIT0gSVNfRVhURU5ERUQgKHAtPnN5c19pbmQpKSB7CisJCQkJcHJpbnRmKF8oIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8iCisJCQkJICAgICAgICIgYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKwkJCQkgICAgICAgIkRlbGV0ZSBpdCBmaXJzdC5cbiIpKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisgICAgICAgICAgICAgICAgaWYgKHN5cyA8IDI1NikgeworCQkJaWYgKHN1bl9sYWJlbCAmJiBpID09IDIgJiYgc3lzICE9IFNVTl9UQUdfQkFDS1VQKQorCQkJCXByaW50ZihfKCJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiAzICIKKwkJCQkgICAgICAgImFzIFdob2xlIGRpc2sgKDUpLFxuIgorCQkJCSAgICAgICAiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCAiCisJCQkJICAgICAgICJldmVuIExpbnV4IGxpa2VzIGl0LlxuXG4iKSk7CisJCQlpZiAoc2dpX2xhYmVsICYmICgoaSA9PSAxMCAmJiBzeXMgIT0gRU5USVJFX0RJU0spCisJCQkJCSAgfHwgKGkgPT0gOCAmJiBzeXMgIT0gMCkpKQorCQkJCXByaW50ZihfKCJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5ICIKKwkJCQkgICAgICAgImFzIHZvbHVtZSBoZWFkZXIgKDApLFxuYW5kICIKKwkJCQkgICAgICAgInBhcnRpdGlvbiAxMSBhcyBlbnRpcmUgdm9sdW1lICg2KSwgIgorCQkJCSAgICAgICAiYXMgSVJJWCBleHBlY3RzIGl0LlxuXG4iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3lzID09IG9yaWdzeXMpCisJCQkJYnJlYWs7CisJCQlpZiAoc3VuX2xhYmVsKSB7CisJCQkJcHRlc1tpXS5jaGFuZ2VkID0gc3VuX2NoYW5nZV9zeXNpZChpLCBzeXMpOworCQkJfSBlbHNlCisJCQlpZiAoc2dpX2xhYmVsKSB7CisJCQkJcHRlc1tpXS5jaGFuZ2VkID0gc2dpX2NoYW5nZV9zeXNpZChpLCBzeXMpOworCQkJfSBlbHNlIHsKKwkJCQlwLT5zeXNfaW5kID0gc3lzOworCQkJCXB0ZXNbaV0uY2hhbmdlZCA9IDE7CisJCQl9CisJCQl0ZW1wID0gcGFydGl0aW9uX3R5cGUoc3lzKSA/IDogXygiVW5rbm93biIpOworCQkJaWYgKHB0ZXNbaV0uY2hhbmdlZCkKKwkJCQlwcmludGYgKF8oIkNoYW5nZWQgc3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkICIKKwkJCQkgICAgICAgICJ0byAleCAoJXMpXG4iKSwgaSArIDEsIHN5cywgdGVtcCk7CisJCQllbHNlCisJCQkJcHJpbnRmIChfKCJTeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgaXMgdW5jaGFuZ2VkOiAiCisJCQkJICAgICAgICAiJXggKCVzKVxuIiksIGkgKyAxLCBzeXMsIHRlbXApOworCQkJaWYgKGlzX2Rvc19wYXJ0aXRpb24ob3JpZ3N5cykgfHwKKwkJCSAgICBpc19kb3NfcGFydGl0aW9uKHN5cykpCisJCQkJZG9zX2NoYW5nZWQgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9Cit9CisKKy8qIGNoZWNrX2NvbnNpc3RlbmN5KCkgYW5kIGxvbmcyY2hzKCkgYWRkZWQgU2F0IE1hciA2IDEyOjI4OjE2IDE5OTMsCisgKiBmYWl0aEBjcy51bmMuZWR1LCBiYXNlZCBvbiBjb2RlIGZyYWdtZW50cyBmcm9tIHBmZGlzayBieSBHb3Jkb24gVy4gUm9zcywKKyAqIEphbi4gIDE5OTAgKHZlcnNpb24gMS4yLjEgYnkgR29yZG9uIFcuIFJvc3MgQXVnLiAxOTkwOyBNb2RpZmllZCBieSBTLgorICogTHVia2luIE9jdC4gIDE5OTEpLiAqLworCitzdGF0aWMgdm9pZAorbG9uZzJjaHModWxvbmcgbHMsIHVuc2lnbmVkIGludCAqYywgdW5zaWduZWQgaW50ICpoLCB1bnNpZ25lZCBpbnQgKnMpIHsKKwlpbnQgc3BjID0gaGVhZHMgKiBzZWN0b3JzOworCisJKmMgPSBscyAvIHNwYzsKKwlscyA9IGxzICUgc3BjOworCSpoID0gbHMgLyBzZWN0b3JzOworCSpzID0gbHMgJSBzZWN0b3JzICsgMTsJLyogc2VjdG9ycyBjb3VudCBmcm9tIDEgKi8KK30KKworc3RhdGljIHZvaWQgY2hlY2tfY29uc2lzdGVuY3koc3RydWN0IHBhcnRpdGlvbiAqcCwgaW50IHBhcnRpdGlvbikgeworCXVuc2lnbmVkIGludCBwYmMsIHBiaCwgcGJzOwkvKiBwaHlzaWNhbCBiZWdpbm5pbmcgYywgaCwgcyAqLworCXVuc2lnbmVkIGludCBwZWMsIHBlaCwgcGVzOwkvKiBwaHlzaWNhbCBlbmRpbmcgYywgaCwgcyAqLworCXVuc2lnbmVkIGludCBsYmMsIGxiaCwgbGJzOwkvKiBsb2dpY2FsIGJlZ2lubmluZyBjLCBoLCBzICovCisJdW5zaWduZWQgaW50IGxlYywgbGVoLCBsZXM7CS8qIGxvZ2ljYWwgZW5kaW5nIGMsIGgsIHMgKi8KKworCWlmICghZG9zX2NvbXBhdGlibGVfZmxhZykKKwkJcmV0dXJuOworCisJaWYgKCFoZWFkcyB8fCAhc2VjdG9ycyB8fCAocGFydGl0aW9uID49IDQpKQorCQlyZXR1cm47CQkvKiBkbyBub3QgY2hlY2sgZXh0ZW5kZWQgcGFydGl0aW9ucyAqLworCisvKiBwaHlzaWNhbCBiZWdpbm5pbmcgYywgaCwgcyAqLworCXBiYyA9IChwLT5jeWwgJiAweGZmKSB8ICgocC0+c2VjdG9yIDw8IDIpICYgMHgzMDApOworCXBiaCA9IHAtPmhlYWQ7CisJcGJzID0gcC0+c2VjdG9yICYgMHgzZjsKKworLyogcGh5c2ljYWwgZW5kaW5nIGMsIGgsIHMgKi8KKwlwZWMgPSAocC0+ZW5kX2N5bCAmIDB4ZmYpIHwgKChwLT5lbmRfc2VjdG9yIDw8IDIpICYgMHgzMDApOworCXBlaCA9IHAtPmVuZF9oZWFkOworCXBlcyA9IHAtPmVuZF9zZWN0b3IgJiAweDNmOworCisvKiBjb21wdXRlIGxvZ2ljYWwgYmVnaW5uaW5nIChjLCBoLCBzKSAqLworCWxvbmcyY2hzKGdldF9zdGFydF9zZWN0KHApLCAmbGJjLCAmbGJoLCAmbGJzKTsKKworLyogY29tcHV0ZSBsb2dpY2FsIGVuZGluZyAoYywgaCwgcykgKi8KKwlsb25nMmNocyhnZXRfc3RhcnRfc2VjdChwKSArIGdldF9ucl9zZWN0cyhwKSAtIDEsICZsZWMsICZsZWgsICZsZXMpOworCisvKiBTYW1lIHBoeXNpY2FsIC8gbG9naWNhbCBiZWdpbm5pbmc/ICovCisJaWYgKGN5bGluZGVycyA8PSAxMDI0ICYmIChwYmMgIT0gbGJjIHx8IHBiaCAhPSBsYmggfHwgcGJzICE9IGxicykpIHsKKwkJcHJpbnRmKF8oIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgIgorCQkJImJlZ2lubmluZ3MgKG5vbi1MaW51eD8pOlxuIiksIHBhcnRpdGlvbiArIDEpOworCQlwcmludGYoXygiICAgICBwaHlzPSglZCwgJWQsICVkKSAiKSwgcGJjLCBwYmgsIHBicyk7CisJCXByaW50ZihfKCJsb2dpY2FsPSglZCwgJWQsICVkKVxuIiksbGJjLCBsYmgsIGxicyk7CisJfQorCisvKiBTYW1lIHBoeXNpY2FsIC8gbG9naWNhbCBlbmRpbmc/ICovCisJaWYgKGN5bGluZGVycyA8PSAxMDI0ICYmIChwZWMgIT0gbGVjIHx8IHBlaCAhPSBsZWggfHwgcGVzICE9IGxlcykpIHsKKwkJcHJpbnRmKF8oIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgIgorCQkJImVuZGluZ3M6XG4iKSwgcGFydGl0aW9uICsgMSk7CisJCXByaW50ZihfKCIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIpLCBwZWMsIHBlaCwgcGVzKTsKKwkJcHJpbnRmKF8oImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iKSxsZWMsIGxlaCwgbGVzKTsKKwl9CisKKyNpZiAwCisvKiBCZWdpbm5pbmcgb24gY3lsaW5kZXIgYm91bmRhcnk/ICovCisJaWYgKHBiaCAhPSAhcGJjIHx8IHBicyAhPSAxKSB7CisJCXByaW50ZihfKCJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgIgorCQkJImJvdW5kYXJ5OlxuIiksIHBhcnRpdGlvbiArIDEpOworCQlwcmludGYoXygiICAgICBwaHlzPSglZCwgJWQsICVkKSAiKSwgcGJjLCBwYmgsIHBicyk7CisJCXByaW50ZihfKCJzaG91bGQgYmUgKCVkLCAlZCwgMSlcbiIpLCBwYmMsICFwYmMpOworCX0KKyNlbmRpZgorCisvKiBFbmRpbmcgb24gY3lsaW5kZXIgYm91bmRhcnk/ICovCisJaWYgKHBlaCAhPSAoaGVhZHMgLSAxKSB8fCBwZXMgIT0gc2VjdG9ycykgeworCQlwcmludGYoXygiUGFydGl0aW9uICVpIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIpLAorCQkJcGFydGl0aW9uICsgMSk7CisjaWYgMAorCQlwcmludGYoXygiICAgICBwaHlzPSglZCwgJWQsICVkKSAiKSwgcGVjLCBwZWgsIHBlcyk7CisJCXByaW50ZihfKCJzaG91bGQgYmUgKCVkLCAlZCwgJWQpXG4iKSwKKwkJcGVjLCBoZWFkcyAtIDEsIHNlY3RvcnMpOworI2VuZGlmCisJfQorfQorCitzdGF0aWMgdm9pZAorY2hlY2tfYWxpZ25tZW50KHVuc2lnbmVkIGxvbmcgbG9uZyBsYmEsIGludCBwYXJ0aXRpb24pCit7CisJaWYgKCFsYmFfaXNfYWxpZ25lZChsYmEpKQorCQlwcmludGYoXygiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIHBoeXNpY2FsIHNlY3RvciBib3VuZGFyeS5cbiIpLAorCQkJcGFydGl0aW9uICsgMSk7Cit9CisKK3N0YXRpYyB2b2lkCitsaXN0X2Rpc2tfZ2VvbWV0cnkodm9pZCkgeworCWxvbmcgbG9uZyBieXRlcyA9ICh0b3RhbF9udW1iZXJfb2Zfc2VjdG9ycyA8PCA5KTsKKwlsb25nIG1lZ2FieXRlcyA9IGJ5dGVzLzEwMDAwMDA7CisKKwlpZiAobWVnYWJ5dGVzIDwgMTAwMDApCisJCXByaW50ZihfKCJcbkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIiksCisJCSAgICAgICBkaXNrX2RldmljZSwgbWVnYWJ5dGVzLCBieXRlcyk7CisJZWxzZSB7CisJCWxvbmcgaGVjdG9tZWdhID0gKG1lZ2FieXRlcyArIDUwKSAvIDEwMDsKKwkJcHJpbnRmKF8oIlxuRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIiksCisJCSAgICAgICBkaXNrX2RldmljZSwgaGVjdG9tZWdhIC8gMTAsIGhlY3RvbWVnYSAlIDEwLCBieXRlcyk7CisJfQorCXByaW50ZihfKCIlZCBoZWFkcywgJWxsdSBzZWN0b3JzL3RyYWNrLCAlZCBjeWxpbmRlcnMiKSwKKwkgICAgICAgaGVhZHMsIHNlY3RvcnMsIGN5bGluZGVycyk7CisJaWYgKHVuaXRzX3Blcl9zZWN0b3IgPT0gMSkKKwkJcHJpbnRmKF8oIiwgdG90YWwgJWxsdSBzZWN0b3JzIiksCisJCSAgICAgICB0b3RhbF9udW1iZXJfb2Zfc2VjdG9ycyAvIHNlY3Rvcl9mYWN0b3IpOworCXByaW50ZigiXG4iKTsKKwlwcmludGYoXygiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIpLAorCSAgICAgICBzdHJfdW5pdHMoUExVUkFMKSwKKwkgICAgICAgdW5pdHNfcGVyX3NlY3Rvciwgc2VjdG9yX3NpemUsIHVuaXRzX3Blcl9zZWN0b3IgKiBzZWN0b3Jfc2l6ZSk7CisKKwlwcmludGYoXygiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIiksCisJCQkJc2VjdG9yX3NpemUsIHBoeV9zZWN0b3Jfc2l6ZSk7CisJcHJpbnRmKF8oIkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIpLAorCQkJCW1pbl9pb19zaXplLCBpb19zaXplKTsKKwlpZiAoYWxpZ25tZW50X29mZnNldCkKKwkJcHJpbnRmKF8oIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIiksIGFsaWdubWVudF9vZmZzZXQpOworCWlmIChkb3NfbGFiZWwpCisJCWRvc19wcmludF9tYnJfaWQoKTsKKwlwcmludGYoIlxuIik7Cit9CisKKy8qCisgKiBDaGVjayB3aGV0aGVyIHBhcnRpdGlvbiBlbnRyaWVzIGFyZSBvcmRlcmVkIGJ5IHRoZWlyIHN0YXJ0aW5nIHBvc2l0aW9ucy4KKyAqIFJldHVybiAwIGlmIE9LLiBSZXR1cm4gaSBpZiBwYXJ0aXRpb24gaSBzaG91bGQgaGF2ZSBiZWVuIGVhcmxpZXIuCisgKiBUd28gc2VwYXJhdGUgY2hlY2tzOiBwcmltYXJ5IGFuZCBsb2dpY2FsIHBhcnRpdGlvbnMuCisgKi8KK3N0YXRpYyBpbnQKK3dyb25nX3Bfb3JkZXIoaW50ICpwcmV2KSB7CisJc3RydWN0IHB0ZSAqcGU7CisJc3RydWN0IHBhcnRpdGlvbiAqcDsKKwl1bnNpZ25lZCBpbnQgbGFzdF9wX3N0YXJ0X3BvcyA9IDAsIHBfc3RhcnRfcG9zOworCWludCBpLCBsYXN0X2kgPSAwOworCisJZm9yIChpID0gMCA7IGkgPCBwYXJ0aXRpb25zOyBpKyspIHsKKwkJaWYgKGkgPT0gNCkgeworCQkJbGFzdF9pID0gNDsKKwkJCWxhc3RfcF9zdGFydF9wb3MgPSAwOworCQl9CisJCXBlID0gJnB0ZXNbaV07CisJCWlmICgocCA9IHBlLT5wYXJ0X3RhYmxlKS0+c3lzX2luZCkgeworCQkJcF9zdGFydF9wb3MgPSBnZXRfcGFydGl0aW9uX3N0YXJ0KHBlKTsKKworCQkJaWYgKGxhc3RfcF9zdGFydF9wb3MgPiBwX3N0YXJ0X3BvcykgeworCQkJCWlmIChwcmV2KQorCQkJCQkqcHJldiA9IGxhc3RfaTsKKwkJCQlyZXR1cm4gaTsKKwkJCX0KKworCQkJbGFzdF9wX3N0YXJ0X3BvcyA9IHBfc3RhcnRfcG9zOworCQkJbGFzdF9pID0gaTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEZpeCB0aGUgY2hhaW4gb2YgbG9naWNhbHMuCisgKiBleHRlbmRlZF9vZmZzZXQgaXMgdW5jaGFuZ2VkLCB0aGUgc2V0IG9mIHNlY3RvcnMgdXNlZCBpcyB1bmNoYW5nZWQKKyAqIFRoZSBjaGFpbiBpcyBzb3J0ZWQgc28gdGhhdCBzZWN0b3JzIGluY3JlYXNlLCBhbmQgc28gdGhhdAorICogc3RhcnRpbmcgc2VjdG9ycyBpbmNyZWFzZS4KKyAqCisgKiBBZnRlciB0aGlzIGl0IG1heSBzdGlsbCBiZSB0aGF0IGNmZGlzayBkb2VzbnQgbGlrZSB0aGUgdGFibGUuCisgKiAoVGhpcyBpcyBiZWNhdXNlIGNmZGlzayBjb25zaWRlcnMgZXhwYW5kZWQgcGFydHMsIGZyb20gbGluayB0bworICogZW5kIG9mIHBhcnRpdGlvbiwgYW5kIHRoZXNlIG1heSBzdGlsbCBvdmVybGFwLikKKyAqIE5vdworICogICBzZmRpc2sgL2Rldi9oZGEgPiBvaGRhOyBzZmRpc2sgL2Rldi9oZGEgPCBvaGRhCisgKiBtYXkgaGVscC4KKyAqLworc3RhdGljIHZvaWQKK2ZpeF9jaGFpbl9vZl9sb2dpY2Fscyh2b2lkKSB7CisJaW50IGosIG9qLCBvamosIHNqLCBzamo7CisJc3RydWN0IHBhcnRpdGlvbiAqcGosKnBqaix0bXA7CisKKwkvKiBTdGFnZSAxOiBzb3J0IHNlY3RvcnMgYnV0IGxlYXZlIHNlY3RvciBvZiBwYXJ0IDQgKi8KKwkvKiAoSXRzIHNlY3RvciBpcyB0aGUgZ2xvYmFsIGV4dGVuZGVkX29mZnNldC4pICovCisgc3RhZ2UxOgorCWZvciAoaiA9IDU7IGogPCBwYXJ0aXRpb25zLTE7IGorKykgeworCQlvaiA9IHB0ZXNbal0ub2Zmc2V0OworCQlvamogPSBwdGVzW2orMV0ub2Zmc2V0OworCQlpZiAob2ogPiBvamopIHsKKwkJCXB0ZXNbal0ub2Zmc2V0ID0gb2pqOworCQkJcHRlc1tqKzFdLm9mZnNldCA9IG9qOworCQkJcGogPSBwdGVzW2pdLnBhcnRfdGFibGU7CisJCQlzZXRfc3RhcnRfc2VjdChwaiwgZ2V0X3N0YXJ0X3NlY3QocGopK29qLW9qaik7CisJCQlwamogPSBwdGVzW2orMV0ucGFydF90YWJsZTsKKwkJCXNldF9zdGFydF9zZWN0KHBqaiwgZ2V0X3N0YXJ0X3NlY3QocGpqKStvamotb2opOworCQkJc2V0X3N0YXJ0X3NlY3QocHRlc1tqLTFdLmV4dF9wb2ludGVyLAorCQkJCSAgICAgICBvamotZXh0ZW5kZWRfb2Zmc2V0KTsKKwkJCXNldF9zdGFydF9zZWN0KHB0ZXNbal0uZXh0X3BvaW50ZXIsCisJCQkJICAgICAgIG9qLWV4dGVuZGVkX29mZnNldCk7CisJCQlnb3RvIHN0YWdlMTsKKwkJfQorCX0KKworCS8qIFN0YWdlIDI6IHNvcnQgc3RhcnRpbmcgc2VjdG9ycyAqLworIHN0YWdlMjoKKwlmb3IgKGogPSA0OyBqIDwgcGFydGl0aW9ucy0xOyBqKyspIHsKKwkJcGogPSBwdGVzW2pdLnBhcnRfdGFibGU7CisJCXBqaiA9IHB0ZXNbaisxXS5wYXJ0X3RhYmxlOworCQlzaiA9IGdldF9zdGFydF9zZWN0KHBqKTsKKwkJc2pqID0gZ2V0X3N0YXJ0X3NlY3QocGpqKTsKKwkJb2ogPSBwdGVzW2pdLm9mZnNldDsKKwkJb2pqID0gcHRlc1tqKzFdLm9mZnNldDsKKwkJaWYgKG9qK3NqID4gb2pqK3NqaikgeworCQkJdG1wID0gKnBqOworCQkJKnBqID0gKnBqajsKKwkJCSpwamogPSB0bXA7CisJCQlzZXRfc3RhcnRfc2VjdChwaiwgb2pqK3Nqai1vaik7CisJCQlzZXRfc3RhcnRfc2VjdChwamosIG9qK3NqLW9qaik7CisJCQlnb3RvIHN0YWdlMjsKKwkJfQorCX0KKworCS8qIFByb2JhYmx5IHNvbWV0aGluZyB3YXMgY2hhbmdlZCAqLworCWZvciAoaiA9IDQ7IGogPCBwYXJ0aXRpb25zOyBqKyspCisJCXB0ZXNbal0uY2hhbmdlZCA9IDE7Cit9CisKK3N0YXRpYyB2b2lkCitmaXhfcGFydGl0aW9uX3RhYmxlX29yZGVyKHZvaWQpIHsKKwlzdHJ1Y3QgcHRlICpwZWksICpwZWs7CisJaW50IGksazsKKworCWlmICghd3JvbmdfcF9vcmRlcihOVUxMKSkgeworCQlwcmludGYoXygiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuXG4iKSk7CisJCXJldHVybjsKKwl9CisKKwl3aGlsZSAoKGkgPSB3cm9uZ19wX29yZGVyKCZrKSkgIT0gMCAmJiBpIDwgNCkgeworCQkvKiBwYXJ0aXRpb24gaSBzaG91bGQgaGF2ZSBjb21lIGVhcmxpZXIsIG1vdmUgaXQgKi8KKwkJLyogV2UgaGF2ZSB0byBtb3ZlIGRhdGEgaW4gdGhlIE1CUiAqLworCQlzdHJ1Y3QgcGFydGl0aW9uICpwaSwgKnBrLCAqcGUsIHBidWY7CisJCXBlaSA9ICZwdGVzW2ldOworCQlwZWsgPSAmcHRlc1trXTsKKworCQlwZSA9IHBlaS0+ZXh0X3BvaW50ZXI7CisJCXBlaS0+ZXh0X3BvaW50ZXIgPSBwZWstPmV4dF9wb2ludGVyOworCQlwZWstPmV4dF9wb2ludGVyID0gcGU7CisKKwkJcGkgPSBwZWktPnBhcnRfdGFibGU7CisJCXBrID0gcGVrLT5wYXJ0X3RhYmxlOworCisJCW1lbW1vdmUoJnBidWYsIHBpLCBzaXplb2Yoc3RydWN0IHBhcnRpdGlvbikpOworCQltZW1tb3ZlKHBpLCBwaywgc2l6ZW9mKHN0cnVjdCBwYXJ0aXRpb24pKTsKKwkJbWVtbW92ZShwaywgJnBidWYsIHNpemVvZihzdHJ1Y3QgcGFydGl0aW9uKSk7CisKKwkJcGVpLT5jaGFuZ2VkID0gcGVrLT5jaGFuZ2VkID0gMTsKKwl9CisKKwlpZiAoaSkKKwkJZml4X2NoYWluX29mX2xvZ2ljYWxzKCk7CisKKwlwcmludGYoXygiRG9uZS5cbiIpKTsKKworfQorCitzdGF0aWMgdm9pZAorbGlzdF90YWJsZShpbnQgeHRyYSkgeworCXN0cnVjdCBwYXJ0aXRpb24gKnA7CisJY2hhciAqdHlwZTsKKwlpbnQgaSwgdzsKKworCWlmIChzdW5fbGFiZWwpIHsKKwkJc3VuX2xpc3RfdGFibGUoeHRyYSk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoc2dpX2xhYmVsKSB7CisJCXNnaV9saXN0X3RhYmxlKHh0cmEpOworCQlyZXR1cm47CisJfQorCisJbGlzdF9kaXNrX2dlb21ldHJ5KCk7CisKKwlpZiAob3NmX2xhYmVsKSB7CisJCXhic2RfcHJpbnRfZGlza2xhYmVsKHh0cmEpOworCQlyZXR1cm47CisJfQorCisJaWYgKGlzX2dhcmJhZ2VfdGFibGUoKSkgeworCQlwcmludGYoXygiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorCQkJICJQcm9iYWJseSB5b3Ugc2VsZWN0ZWQgdGhlIHdyb25nIGRldmljZS5cblxuIikpOworCX0KKworCS8qIEhldXJpc3RpYzogd2UgbGlzdCBwYXJ0aXRpb24gMyBvZiAvZGV2L2ZvbyBhcyAvZGV2L2ZvbzMsCisJICAgYnV0IGlmIHRoZSBkZXZpY2UgbmFtZSBlbmRzIGluIGEgZGlnaXQsIHNheSAvZGV2L2ZvbzEsCisJICAgdGhlbiB0aGUgcGFydGl0aW9uIGlzIGNhbGxlZCAvZGV2L2ZvbzFwMy4gKi8KKwl3ID0gc3RybGVuKGRpc2tfZGV2aWNlKTsKKwlpZiAodyAmJiBpc2RpZ2l0KGRpc2tfZGV2aWNlW3ctMV0pKQorCQl3Kys7CisJaWYgKHcgPCA1KQorCQl3ID0gNTsKKworCXByaW50ZihfKCIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIiksCisJICAgICAgIHcrMSwgXygiRGV2aWNlIikpOworCisJZm9yIChpID0gMDsgaSA8IHBhcnRpdGlvbnM7IGkrKykgeworCQlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzW2ldOworCisJCXAgPSBwZS0+cGFydF90YWJsZTsKKwkJaWYgKHAgJiYgIWlzX2NsZWFyZWRfcGFydGl0aW9uKHApKSB7CisJCQl1bnNpZ25lZCBpbnQgcHNlY3RzID0gZ2V0X25yX3NlY3RzKHApOworCQkJdW5zaWduZWQgaW50IHBibG9ja3MgPSBwc2VjdHM7CisJCQl1bnNpZ25lZCBpbnQgcG9kZCA9IDA7CisKKwkJCWlmIChzZWN0b3Jfc2l6ZSA8IDEwMjQpIHsKKwkJCQlwYmxvY2tzIC89ICgxMDI0IC8gc2VjdG9yX3NpemUpOworCQkJCXBvZGQgPSBwc2VjdHMgJSAoMTAyNCAvIHNlY3Rvcl9zaXplKTsKKwkJCX0KKwkJCWlmIChzZWN0b3Jfc2l6ZSA+IDEwMjQpCisJCQkJcGJsb2NrcyAqPSAoc2VjdG9yX3NpemUgLyAxMDI0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigKKwkJCSAgICAiJXMgICVjICUxMWx1ICUxMWx1ICUxMWx1JWMgICUyeCAgJXNcbiIsCisJCQlwYXJ0bmFtZShkaXNrX2RldmljZSwgaSsxLCB3KzIpLAorLyogYm9vdCBmbGFnICovCQkhcC0+Ym9vdF9pbmQgPyAnICcgOiBwLT5ib290X2luZCA9PSBBQ1RJVkVfRkxBRworCQkJPyAnKicgOiAnPycsCisvKiBzdGFydCAqLwkJKHVuc2lnbmVkIGxvbmcpIGNyb3VuZChnZXRfcGFydGl0aW9uX3N0YXJ0KHBlKSksCisvKiBlbmQgKi8JCSh1bnNpZ25lZCBsb25nKSBjcm91bmQoZ2V0X3BhcnRpdGlvbl9zdGFydChwZSkgKyBwc2VjdHMKKwkJCQktIChwc2VjdHMgPyAxIDogMCkpLAorLyogb2RkIGZsYWcgb24gZW5kICovCSh1bnNpZ25lZCBsb25nKSBwYmxvY2tzLCBwb2RkID8gJysnIDogJyAnLAorLyogdHlwZSBpZCAqLwkJcC0+c3lzX2luZCwKKy8qIHR5cGUgbmFtZSAqLwkJKHR5cGUgPSBwYXJ0aXRpb25fdHlwZShwLT5zeXNfaW5kKSkgPworCQkJdHlwZSA6IF8oIlVua25vd24iKSk7CisJCQljaGVja19jb25zaXN0ZW5jeShwLCBpKTsKKwkJCWNoZWNrX2FsaWdubWVudChnZXRfcGFydGl0aW9uX3N0YXJ0KHBlKSwgaSk7CisJCX0KKwl9CisKKwkvKiBJcyBwYXJ0aXRpb24gdGFibGUgaW4gZGlzayBvcmRlcj8gSXQgbmVlZCBub3QgYmUsIGJ1dC4uLiAqLworCS8qIHBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgY2hlY2tlZCBmb3IgY29ycmVjdCBvcmRlciBpZiB0aGlzCisJICAgaXMgYSBzZ2ksIHN1biBvciBhaXggbGFiZWxlZCBkaXNrLi4uICovCisJaWYgKGRvc19sYWJlbCAmJiB3cm9uZ19wX29yZGVyKE5VTEwpKSB7CisJCXByaW50ZihfKCJcblBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIikpOworCX0KK30KKworc3RhdGljIHZvaWQKK3hfbGlzdF90YWJsZShpbnQgZXh0ZW5kKSB7CisJc3RydWN0IHB0ZSAqcGU7CisJc3RydWN0IHBhcnRpdGlvbiAqcDsKKwlpbnQgaTsKKworCXByaW50ZihfKCJcbkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuXG4iKSwKKwkJZGlza19kZXZpY2UsIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMpOworICAgICAgICBwcmludGYoXygiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iKSk7CisJZm9yIChpID0gMCA7IGkgPCBwYXJ0aXRpb25zOyBpKyspIHsKKwkJcGUgPSAmcHRlc1tpXTsKKwkJcCA9IChleHRlbmQgPyBwZS0+ZXh0X3BvaW50ZXIgOiBwZS0+cGFydF90YWJsZSk7CisJCWlmIChwICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiJTJkICUwMnglNGQlNGQlNWQlNGQlNGQlNWQlMTFsdSUxMWx1ICUwMnhcbiIsCisJCQkJaSArIDEsIHAtPmJvb3RfaW5kLCBwLT5oZWFkLAorCQkJCXNlY3RvcihwLT5zZWN0b3IpLAorCQkJCWN5bGluZGVyKHAtPnNlY3RvciwgcC0+Y3lsKSwgcC0+ZW5kX2hlYWQsCisJCQkJc2VjdG9yKHAtPmVuZF9zZWN0b3IpLAorCQkJCWN5bGluZGVyKHAtPmVuZF9zZWN0b3IsIHAtPmVuZF9jeWwpLAorCQkJCSh1bnNpZ25lZCBsb25nKSBnZXRfc3RhcnRfc2VjdChwKSwKKwkJCQkodW5zaWduZWQgbG9uZykgZ2V0X25yX3NlY3RzKHApLCBwLT5zeXNfaW5kKTsKKwkJCWlmIChwLT5zeXNfaW5kKSB7CisJCQkJY2hlY2tfY29uc2lzdGVuY3kocCwgaSk7CisJCQkJY2hlY2tfYWxpZ25tZW50KGdldF9wYXJ0aXRpb25fc3RhcnQocGUpLCBpKTsKKwkJCX0KKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQKK2ZpbGxfYm91bmRzKHVuc2lnbmVkIGxvbmcgbG9uZyAqZmlyc3QsIHVuc2lnbmVkIGxvbmcgbG9uZyAqbGFzdCkgeworCWludCBpOworCXN0cnVjdCBwdGUgKnBlID0gJnB0ZXNbMF07CisJc3RydWN0IHBhcnRpdGlvbiAqcDsKKworCWZvciAoaSA9IDA7IGkgPCBwYXJ0aXRpb25zOyBwZSsrLGkrKykgeworCQlwID0gcGUtPnBhcnRfdGFibGU7CisJCWlmICghcC0+c3lzX2luZCB8fCBJU19FWFRFTkRFRCAocC0+c3lzX2luZCkpIHsKKwkJCWZpcnN0W2ldID0gMHhmZmZmZmZmZjsKKwkJCWxhc3RbaV0gPSAwOworCQl9IGVsc2UgeworCQkJZmlyc3RbaV0gPSBnZXRfcGFydGl0aW9uX3N0YXJ0KHBlKTsKKwkJCWxhc3RbaV0gPSBmaXJzdFtpXSArIGdldF9ucl9zZWN0cyhwKSAtIDE7CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkCitjaGVjayhpbnQgbiwgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCBzLCB1bnNpZ25lZCBpbnQgYywKKyAgICAgIHVuc2lnbmVkIGludCBzdGFydCkgeworCXVuc2lnbmVkIGludCB0b3RhbCwgcmVhbF9zLCByZWFsX2M7CisKKwlyZWFsX3MgPSBzZWN0b3IocykgLSAxOworCXJlYWxfYyA9IGN5bGluZGVyKHMsIGMpOworCXRvdGFsID0gKHJlYWxfYyAqIHNlY3RvcnMgKyByZWFsX3MpICogaGVhZHMgKyBoOworCWlmICghdG90YWwpCisJCWZwcmludGYoc3RkZXJyLCBfKCJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIpLCBuKTsKKwlpZiAoaCA+PSBoZWFkcykKKwkJZnByaW50ZihzdGRlcnIsCisJCQlfKCJQYXJ0aXRpb24gJWQ6IGhlYWQgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIpLAorCQkJbiwgaCArIDEsIGhlYWRzKTsKKwlpZiAocmVhbF9zID49IHNlY3RvcnMpCisJCWZwcmludGYoc3RkZXJyLCBfKCJQYXJ0aXRpb24gJWQ6IHNlY3RvciAlZCBncmVhdGVyIHRoYW4gIgorCQkJIm1heGltdW0gJWxsdVxuIiksIG4sIHMsIHNlY3RvcnMpOworCWlmIChyZWFsX2MgPj0gY3lsaW5kZXJzKQorCQlmcHJpbnRmKHN0ZGVyciwgXygiUGFydGl0aW9ucyAlZDogY3lsaW5kZXIgJWQgZ3JlYXRlciB0aGFuICIKKwkJCSJtYXhpbXVtICVkXG4iKSwgbiwgcmVhbF9jICsgMSwgY3lsaW5kZXJzKTsKKwlpZiAoY3lsaW5kZXJzIDw9IDEwMjQgJiYgc3RhcnQgIT0gdG90YWwpCisJCWZwcmludGYoc3RkZXJyLAorCQkJXygiUGFydGl0aW9uICVkOiBwcmV2aW91cyBzZWN0b3JzICVkIGRpc2FncmVlcyB3aXRoICIKKwkJCSJ0b3RhbCAlZFxuIiksIG4sIHN0YXJ0LCB0b3RhbCk7Cit9CisKK3N0YXRpYyB2b2lkCit2ZXJpZnkodm9pZCkgeworCWludCBpLCBqOworCXVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCA9IDE7CisJdW5zaWduZWQgbG9uZyBsb25nIG5fc2VjdG9ycyA9ICh0b3RhbF9udW1iZXJfb2Zfc2VjdG9ycyAvIHNlY3Rvcl9mYWN0b3IpOworCXVuc2lnbmVkIGxvbmcgbG9uZyBmaXJzdFtwYXJ0aXRpb25zXSwgbGFzdFtwYXJ0aXRpb25zXTsKKwlzdHJ1Y3QgcGFydGl0aW9uICpwOworCisJaWYgKHdhcm5fZ2VvbWV0cnkoKSkKKwkJcmV0dXJuOworCisJaWYgKHN1bl9sYWJlbCkgeworCQl2ZXJpZnlfc3VuKCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoc2dpX2xhYmVsKSB7CisJCXZlcmlmeV9zZ2koMSk7CisJCXJldHVybjsKKwl9CisKKwlmaWxsX2JvdW5kcyhmaXJzdCwgbGFzdCk7CisJZm9yIChpID0gMDsgaSA8IHBhcnRpdGlvbnM7IGkrKykgeworCQlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzW2ldOworCisJCXAgPSBwZS0+cGFydF90YWJsZTsKKwkJaWYgKHAtPnN5c19pbmQgJiYgIUlTX0VYVEVOREVEIChwLT5zeXNfaW5kKSkgeworCQkJY2hlY2tfY29uc2lzdGVuY3kocCwgaSk7CisJCQljaGVja19hbGlnbm1lbnQoZ2V0X3BhcnRpdGlvbl9zdGFydChwZSksIGkpOworCQkJaWYgKGdldF9wYXJ0aXRpb25fc3RhcnQocGUpIDwgZmlyc3RbaV0pCisJCQkJcHJpbnRmKF8oIldhcm5pbmc6IGJhZCBzdGFydC1vZi1kYXRhIGluICIKKwkJCQkJInBhcnRpdGlvbiAlZFxuIiksIGkgKyAxKTsKKwkJCWNoZWNrKGkgKyAxLCBwLT5lbmRfaGVhZCwgcC0+ZW5kX3NlY3RvciwgcC0+ZW5kX2N5bCwKKwkJCQlsYXN0W2ldKTsKKwkJCXRvdGFsICs9IGxhc3RbaV0gKyAxIC0gZmlyc3RbaV07CisJCQlmb3IgKGogPSAwOyBqIDwgaTsgaisrKQorCQkJaWYgKChmaXJzdFtpXSA+PSBmaXJzdFtqXSAmJiBmaXJzdFtpXSA8PSBsYXN0W2pdKQorCQkJIHx8ICgobGFzdFtpXSA8PSBsYXN0W2pdICYmIGxhc3RbaV0gPj0gZmlyc3Rbal0pKSkgeworCQkJCXByaW50ZihfKCJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgb3ZlcmxhcHMgIgorCQkJCQkicGFydGl0aW9uICVkLlxuIiksIGogKyAxLCBpICsgMSk7CisJCQkJdG90YWwgKz0gZmlyc3RbaV0gPj0gZmlyc3Rbal0gPworCQkJCQlmaXJzdFtpXSA6IGZpcnN0W2pdOworCQkJCXRvdGFsIC09IGxhc3RbaV0gPD0gbGFzdFtqXSA/CisJCQkJCWxhc3RbaV0gOiBsYXN0W2pdOworCQkJfQorCQl9CisJfQorCisJaWYgKGV4dGVuZGVkX29mZnNldCkgeworCQlzdHJ1Y3QgcHRlICpwZXggPSAmcHRlc1tleHRfaW5kZXhdOworCQl1bnNpZ25lZCBsb25nIGxvbmcgZV9sYXN0ID0gZ2V0X3N0YXJ0X3NlY3QocGV4LT5wYXJ0X3RhYmxlKSArCisJCQlnZXRfbnJfc2VjdHMocGV4LT5wYXJ0X3RhYmxlKSAtIDE7CisKKwkJZm9yIChpID0gNDsgaSA8IHBhcnRpdGlvbnM7IGkrKykgeworCQkJdG90YWwrKzsKKwkJCXAgPSBwdGVzW2ldLnBhcnRfdGFibGU7CisJCQlpZiAoIXAtPnN5c19pbmQpIHsKKwkJCQlpZiAoaSAhPSA0IHx8IGkgKyAxIDwgcGFydGl0aW9ucykKKwkJCQkJcHJpbnRmKF8oIldhcm5pbmc6IHBhcnRpdGlvbiAlZCAiCisJCQkJCQkiaXMgZW1wdHlcbiIpLCBpICsgMSk7CisJCQl9CisJCQllbHNlIGlmIChmaXJzdFtpXSA8IGV4dGVuZGVkX29mZnNldCB8fAorCQkJCQlsYXN0W2ldID4gZV9sYXN0KQorCQkJCXByaW50ZihfKCJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gIgorCQkJCQkicGFydGl0aW9uICVkXG4iKSwgaSArIDEsIGV4dF9pbmRleCArIDEpOworCQl9CisJfQorCisJaWYgKHRvdGFsID4gbl9zZWN0b3JzKQorCQlwcmludGYoXygiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0iCisJCQkiICVsbHVcbiIpLCB0b3RhbCwgbl9zZWN0b3JzKTsKKwllbHNlIGlmICh0b3RhbCA8IG5fc2VjdG9ycykKKwkJcHJpbnRmKF8oIlJlbWFpbmluZyAlbGxkIHVuYWxsb2NhdGVkICVkLWJ5dGUgc2VjdG9yc1xuIiksCisJCSAgICAgICBuX3NlY3RvcnMgLSB0b3RhbCwgc2VjdG9yX3NpemUpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nCitnZXRfdW51c2VkX3N0YXJ0KGludCBwYXJ0X24sCisJCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCwKKwkJdW5zaWduZWQgbG9uZyBsb25nIGZpcnN0W10sCisJCXVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0W10pCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgcGFydGl0aW9uczsgaSsrKSB7CisJCXVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0cGx1c29mZjsKKworCQlpZiAoc3RhcnQgPT0gcHRlc1tpXS5vZmZzZXQpCisJCQlzdGFydCArPSBzZWN0b3Jfb2Zmc2V0OworCQlsYXN0cGx1c29mZiA9IGxhc3RbaV0gKyAoKHBhcnRfbiA8IDQpID8gMCA6IHNlY3Rvcl9vZmZzZXQpOworCQlpZiAoc3RhcnQgPj0gZmlyc3RbaV0gJiYgc3RhcnQgPD0gbGFzdHBsdXNvZmYpCisJCQlzdGFydCA9IGxhc3RwbHVzb2ZmICsgMTsKKwl9CisKKwlyZXR1cm4gc3RhcnQ7Cit9CisKK3N0YXRpYyB2b2lkCithZGRfcGFydGl0aW9uKGludCBuLCBpbnQgc3lzKSB7CisJY2hhciBtZXNnWzI1Nl07CQkvKiA0OCBkb2VzIG5vdCBzdWZmaWNlIGluIEphcGFuZXNlICovCisJaW50IGksIHJlYWQgPSAwOworCXN0cnVjdCBwYXJ0aXRpb24gKnAgPSBwdGVzW25dLnBhcnRfdGFibGU7CisJc3RydWN0IHBhcnRpdGlvbiAqcSA9IHB0ZXNbZXh0X2luZGV4XS5wYXJ0X3RhYmxlOworCWxvbmcgbG9uZyBsbGltaXQ7CisJdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LCBzdG9wID0gMCwgbGltaXQsIHRlbXAsCisJCWZpcnN0W3BhcnRpdGlvbnNdLCBsYXN0W3BhcnRpdGlvbnNdOworCisJaWYgKHAgJiYgcC0+c3lzX2luZCkgeworCQlwcmludGYoXygiUGFydGl0aW9uICVkIGlzIGFscmVhZHkgZGVmaW5lZC4gIERlbGV0ZSAiCisJCQkgIml0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iKSwgbiArIDEpOworCQlyZXR1cm47CisJfQorCWZpbGxfYm91bmRzKGZpcnN0LCBsYXN0KTsKKwlpZiAobiA8IDQpIHsKKwkJc3RhcnQgPSBzZWN0b3Jfb2Zmc2V0OworCQlpZiAoZGlzcGxheV9pbl9jeWxfdW5pdHMgfHwgIXRvdGFsX251bWJlcl9vZl9zZWN0b3JzKQorCQkJbGxpbWl0ID0gaGVhZHMgKiBzZWN0b3JzICogY3lsaW5kZXJzIC0gMTsKKwkJZWxzZQorCQkJbGxpbWl0ID0gKHRvdGFsX251bWJlcl9vZl9zZWN0b3JzIC8gc2VjdG9yX2ZhY3RvcikgLSAxOworCQlsaW1pdCA9IGxsaW1pdDsKKwkJaWYgKGxpbWl0ICE9IGxsaW1pdCkKKwkJCWxpbWl0ID0gMHg3ZmZmZmZmZjsKKwkJaWYgKGV4dGVuZGVkX29mZnNldCkgeworCQkJZmlyc3RbZXh0X2luZGV4XSA9IGV4dGVuZGVkX29mZnNldDsKKwkJCWxhc3RbZXh0X2luZGV4XSA9IGdldF9zdGFydF9zZWN0KHEpICsKKwkJCQlnZXRfbnJfc2VjdHMocSkgLSAxOworCQl9CisJfSBlbHNlIHsKKwkJc3RhcnQgPSBleHRlbmRlZF9vZmZzZXQgKyBzZWN0b3Jfb2Zmc2V0OworCQlsaW1pdCA9IGdldF9zdGFydF9zZWN0KHEpICsgZ2V0X25yX3NlY3RzKHEpIC0gMTsKKwl9CisJaWYgKGRpc3BsYXlfaW5fY3lsX3VuaXRzKQorCQlmb3IgKGkgPSAwOyBpIDwgcGFydGl0aW9uczsgaSsrKQorCQkJZmlyc3RbaV0gPSAoY3JvdW5kKGZpcnN0W2ldKSAtIDEpICogdW5pdHNfcGVyX3NlY3RvcjsKKworCXNucHJpbnRmKG1lc2csIHNpemVvZihtZXNnKSwgXygiRmlyc3QgJXMiKSwgc3RyX3VuaXRzKFNJTkdVTEFSKSk7CisJZG8geworCQl1bnNpZ25lZCBsb25nIGxvbmcgZGZsdCwgYWxpZ25lZDsKKworCQl0ZW1wID0gc3RhcnQ7CisJCWRmbHQgPSBzdGFydCA9IGdldF91bnVzZWRfc3RhcnQobiwgc3RhcnQsIGZpcnN0LCBsYXN0KTsKKworCQkvKiB0aGUgZGVmYXVsdCBzZWN0b3Igc2hvdWxkIGJlIGFsaWduZWQgYW5kIHVudXNlZCAqLworCQlkbyB7CisJCQlhbGlnbmVkID0gYWxpZ25fbGJhX2luX3JhbmdlKGRmbHQsIGRmbHQsIGxpbWl0KTsKKwkJCWRmbHQgPSBnZXRfdW51c2VkX3N0YXJ0KG4sIGFsaWduZWQsIGZpcnN0LCBsYXN0KTsKKwkJfSB3aGlsZSAoZGZsdCAhPSBhbGlnbmVkICYmIGRmbHQgPiBhbGlnbmVkICYmIGRmbHQgPCBsaW1pdCk7CisKKwkJaWYgKGRmbHQgPj0gbGltaXQpCisJCQlkZmx0ID0gc3RhcnQ7CisJCWlmIChzdGFydCA+IGxpbWl0KQorCQkJYnJlYWs7CisJCWlmIChzdGFydCA+PSB0ZW1wK3VuaXRzX3Blcl9zZWN0b3IgJiYgcmVhZCkgeworCQkJcHJpbnRmKF8oIlNlY3RvciAlbGx1IGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iKSwgdGVtcCk7CisJCQl0ZW1wID0gc3RhcnQ7CisJCQlyZWFkID0gMDsKKwkJfQorCQlpZiAoIXJlYWQgJiYgc3RhcnQgPT0gdGVtcCkgeworCQkJdW5zaWduZWQgbG9uZyBsb25nIGkgPSBzdGFydDsKKworCQkJc3RhcnQgPSByZWFkX2ludChjcm91bmQoaSksIGNyb3VuZChkZmx0KSwgY3JvdW5kKGxpbWl0KSwKKwkJCQkJIDAsIG1lc2cpOworCQkJaWYgKGRpc3BsYXlfaW5fY3lsX3VuaXRzKSB7CisJCQkJc3RhcnQgPSAoc3RhcnQgLSAxKSAqIHVuaXRzX3Blcl9zZWN0b3I7CisJCQkJaWYgKHN0YXJ0IDwgaSkgc3RhcnQgPSBpOworCQkJfQorCQkJcmVhZCA9IDE7CisJCX0KKwl9IHdoaWxlIChzdGFydCAhPSB0ZW1wIHx8ICFyZWFkKTsKKwlpZiAobiA+IDQpIHsJCQkvKiBOT1QgZm9yIGZpZnRoIHBhcnRpdGlvbiAqLworCQlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzW25dOworCisJCXBlLT5vZmZzZXQgPSBzdGFydCAtIHNlY3Rvcl9vZmZzZXQ7CisJCWlmIChwZS0+b2Zmc2V0ID09IGV4dGVuZGVkX29mZnNldCkgeyAvKiBtdXN0IGJlIGNvcnJlY3RlZCAqLworCQkJcGUtPm9mZnNldCsrOworCQkJaWYgKHNlY3Rvcl9vZmZzZXQgPT0gMSkKKwkJCQlzdGFydCsrOworCQl9CisJfQorCisJZm9yIChpID0gMDsgaSA8IHBhcnRpdGlvbnM7IGkrKykgeworCQlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzW2ldOworCisJCWlmIChzdGFydCA8IHBlLT5vZmZzZXQgJiYgbGltaXQgPj0gcGUtPm9mZnNldCkKKwkJCWxpbWl0ID0gcGUtPm9mZnNldCAtIDE7CisJCWlmIChzdGFydCA8IGZpcnN0W2ldICYmIGxpbWl0ID49IGZpcnN0W2ldKQorCQkJbGltaXQgPSBmaXJzdFtpXSAtIDE7CisJfQorCWlmIChzdGFydCA+IGxpbWl0KSB7CisJCXByaW50ZihfKCJObyBmcmVlIHNlY3RvcnMgYXZhaWxhYmxlXG4iKSk7CisJCWlmIChuID4gNCkKKwkJCXBhcnRpdGlvbnMtLTsKKwkJcmV0dXJuOworCX0KKwlpZiAoY3JvdW5kKHN0YXJ0KSA9PSBjcm91bmQobGltaXQpKSB7CisJCXN0b3AgPSBsaW1pdDsKKwl9IGVsc2UgeworCQlpbnQgc3ggPSAwOworCisJCXNucHJpbnRmKG1lc2csIHNpemVvZihtZXNnKSwKKwkJCV8oIkxhc3QgJTEkcywgKyUyJHMgb3IgK3NpemV7SyxNLEd9IiksCisJCQkgc3RyX3VuaXRzKFNJTkdVTEFSKSwgc3RyX3VuaXRzKFBMVVJBTCkpOworCisJCXN0b3AgPSByZWFkX2ludF9zeChjcm91bmQoc3RhcnQpLCBjcm91bmQobGltaXQpLCBjcm91bmQobGltaXQpLAorCQkJCWNyb3VuZChzdGFydCksIG1lc2csICZzeCk7CisJCWlmIChkaXNwbGF5X2luX2N5bF91bml0cykgeworCQkJc3RvcCA9IHN0b3AgKiB1bml0c19wZXJfc2VjdG9yIC0gMTsKKwkJCWlmIChzdG9wID5saW1pdCkKKwkJCQlzdG9wID0gbGltaXQ7CisJCX0KKworCQlpZiAoc3ggJiYgYWxpZ25tZW50X3JlcXVpcmVkKSB7CisJCQkvKiB0aGUgbGFzdCBzZWN0b3IgaGFzIG5vdCBiZWVuIGV4YWN0bHkgcmVxdWVzdGVkIChidXQKKwkJCSAqIGRlZmluZWQgYnkgK3NpemV7SyxNLEd9IGNvbnZlbnRpb24pLCBzbyBiZSBzbWFydAorCQkJICogYW5kIGFsaWduIHRoZSBlbmQgb2YgdGhlIHBhcnRpdGlvbi4gVGhlIG5leHQKKwkJCSAqIHBhcnRpdGlvbiB3aWxsIHN0YXJ0IGF0IHBoeS5ibG9jayBib3VuZGFyeS4KKwkJCSAqLworCQkJc3RvcCA9IGFsaWduX2xiYV9pbl9yYW5nZShzdG9wLCBzdGFydCwgbGltaXQpIC0gMTsKKwkJCWlmIChzdG9wID4gbGltaXQpCisJCQkJc3RvcCA9IGxpbWl0OworCQl9CisJfQorCisJc2V0X3BhcnRpdGlvbihuLCAwLCBzdGFydCwgc3RvcCwgc3lzKTsKKwlpZiAobiA+IDQpCisJCXNldF9wYXJ0aXRpb24obiAtIDEsIDEsIHB0ZXNbbl0ub2Zmc2V0LCBzdG9wLCBFWFRFTkRFRCk7CisKKwlpZiAoSVNfRVhURU5ERUQgKHN5cykpIHsKKwkJc3RydWN0IHB0ZSAqcGU0ID0gJnB0ZXNbNF07CisJCXN0cnVjdCBwdGUgKnBlbiA9ICZwdGVzW25dOworCisJCWV4dF9pbmRleCA9IG47CisJCXBlbi0+ZXh0X3BvaW50ZXIgPSBwOworCQlwZTQtPm9mZnNldCA9IGV4dGVuZGVkX29mZnNldCA9IHN0YXJ0OworCQlpZiAoIShwZTQtPnNlY3RvcmJ1ZmZlciA9IGNhbGxvYygxLCBzZWN0b3Jfc2l6ZSkpKQorCQkJZmF0YWwob3V0X29mX21lbW9yeSk7CisJCXBlNC0+cGFydF90YWJsZSA9IHB0X29mZnNldChwZTQtPnNlY3RvcmJ1ZmZlciwgMCk7CisJCXBlNC0+ZXh0X3BvaW50ZXIgPSBwZTQtPnBhcnRfdGFibGUgKyAxOworCQlwZTQtPmNoYW5nZWQgPSAxOworCQlwYXJ0aXRpb25zID0gNTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCithZGRfbG9naWNhbCh2b2lkKSB7CisJaWYgKHBhcnRpdGlvbnMgPiA1IHx8IHB0ZXNbNF0ucGFydF90YWJsZS0+c3lzX2luZCkgeworCQlzdHJ1Y3QgcHRlICpwZSA9ICZwdGVzW3BhcnRpdGlvbnNdOworCisJCWlmICghKHBlLT5zZWN0b3JidWZmZXIgPSBjYWxsb2MoMSwgc2VjdG9yX3NpemUpKSkKKwkJCWZhdGFsKG91dF9vZl9tZW1vcnkpOworCQlwZS0+cGFydF90YWJsZSA9IHB0X29mZnNldChwZS0+c2VjdG9yYnVmZmVyLCAwKTsKKwkJcGUtPmV4dF9wb2ludGVyID0gcGUtPnBhcnRfdGFibGUgKyAxOworCQlwZS0+b2Zmc2V0ID0gMDsKKwkJcGUtPmNoYW5nZWQgPSAxOworCQlwYXJ0aXRpb25zKys7CisJfQorCWFkZF9wYXJ0aXRpb24ocGFydGl0aW9ucyAtIDEsIExJTlVYX05BVElWRSk7Cit9CisKK3N0YXRpYyB2b2lkCituZXdfcGFydGl0aW9uKHZvaWQpIHsKKwlpbnQgaSwgZnJlZV9wcmltYXJ5ID0gMDsKKworCWlmICh3YXJuX2dlb21ldHJ5KCkpCisJCXJldHVybjsKKworCWlmIChzdW5fbGFiZWwpIHsKKwkJYWRkX3N1bl9wYXJ0aXRpb24oZ2V0X3BhcnRpdGlvbigwLCBwYXJ0aXRpb25zKSwgTElOVVhfTkFUSVZFKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChzZ2lfbGFiZWwpIHsKKwkJc2dpX2FkZF9wYXJ0aXRpb24oZ2V0X3BhcnRpdGlvbigwLCBwYXJ0aXRpb25zKSwgTElOVVhfTkFUSVZFKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChhaXhfbGFiZWwpIHsKKwkJcHJpbnRmKF8oIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgQUlYIGRpc2sgbGFiZWxzLiIKKwkJCSAiXG5cdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGUiCisJCQkgIlxuXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKSIKKwkJCSAiXG5cdFdBUk5JTkc6ICIKKwkJCSAiVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIpKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChtYWNfbGFiZWwpIHsKKwkJcHJpbnRmKF8oIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgTWFjIGRpc2sgbGFiZWxzLiIKKwkJICAgICAgICAgIlxuXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlIgorCQkgICAgICAgICAiXG5cdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pIgorCQkgICAgICAgICAiXG5cdFdBUk5JTkc6ICIKKwkJICAgICAgICAgIlRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iKSk7CisJCSByZXR1cm47CisJfQorCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKKwkJZnJlZV9wcmltYXJ5ICs9ICFwdGVzW2ldLnBhcnRfdGFibGUtPnN5c19pbmQ7CisKKwlpZiAoIWZyZWVfcHJpbWFyeSAmJiBwYXJ0aXRpb25zID49IE1BWElNVU1fUEFSVFMpIHsKKwkJcHJpbnRmKF8oIlRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJ0aXRpb25zIGhhcyBiZWVuIGNyZWF0ZWRcbiIpKTsKKwkJcmV0dXJuOworCX0KKworCWlmICghZnJlZV9wcmltYXJ5KSB7CisJCWlmIChleHRlbmRlZF9vZmZzZXQpCisJCQlhZGRfbG9naWNhbCgpOworCQllbHNlCisJCQlwcmludGYoXygiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgIgorCQkJCSAiYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iKSk7CisJfSBlbHNlIGlmIChwYXJ0aXRpb25zID49IE1BWElNVU1fUEFSVFMpIHsKKwkJcHJpbnRmKF8oIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIikpOworCQlwcmludGYoXygiQWRkaW5nIGEgcHJpbWFyeSBwYXJ0aXRpb25cbiIpKTsKKwkJYWRkX3BhcnRpdGlvbihnZXRfcGFydGl0aW9uKDAsIDQpLCBMSU5VWF9OQVRJVkUpOworCX0gZWxzZSB7CisJCWNoYXIgYywgbGluZVtMSU5FX0xFTkdUSF07CisJCXNucHJpbnRmKGxpbmUsIHNpemVvZihsaW5lKSwKKwkJCSBfKCJDb21tYW5kIGFjdGlvblxuICAgJXNcbiAgIHAgICBwcmltYXJ5ICIKKwkJCSAgICJwYXJ0aXRpb24gKDEtNClcbiIpLCBleHRlbmRlZF9vZmZzZXQgPworCQkJIF8oImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIikgOiBfKCJlICAgZXh0ZW5kZWQiKSk7CisJCXdoaWxlICgxKSB7CisJCQlpZiAoKGMgPSB0b2xvd2VyKHJlYWRfY2hhcihsaW5lKSkpID09ICdwJykgeworCQkJCWludCBpID0gZ2V0X25vbmV4aXN0aW5nX3BhcnRpdGlvbigwLCA0KTsKKwkJCQlpZiAoaSA+PSAwKQorCQkJCQlhZGRfcGFydGl0aW9uKGksIExJTlVYX05BVElWRSk7CisJCQkJcmV0dXJuOworCQkJfQorCQkJZWxzZSBpZiAoYyA9PSAnbCcgJiYgZXh0ZW5kZWRfb2Zmc2V0KSB7CisJCQkJYWRkX2xvZ2ljYWwoKTsKKwkJCQlyZXR1cm47CisJCQl9CisJCQllbHNlIGlmIChjID09ICdlJyAmJiAhZXh0ZW5kZWRfb2Zmc2V0KSB7CisJCQkJaW50IGkgPSBnZXRfbm9uZXhpc3RpbmdfcGFydGl0aW9uKDAsIDQpOworCQkJCWlmIChpID49IDApCisJCQkJCWFkZF9wYXJ0aXRpb24oaSwgRVhURU5ERUQpOworCQkJCXJldHVybjsKKwkJCX0KKwkJCWVsc2UKKwkJCQlwcmludGYoXygiSW52YWxpZCBwYXJ0aXRpb24gbnVtYmVyICIKKwkJCQkJICJmb3IgdHlwZSBgJWMnXG4iKSwgYyk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkCit3cml0ZV90YWJsZSh2b2lkKSB7CisJaW50IGk7CisKKwlpZiAoZG9zX2xhYmVsKSB7CisJCWZvciAoaT0wOyBpPDM7IGkrKykKKwkJCWlmIChwdGVzW2ldLmNoYW5nZWQpCisJCQkJcHRlc1szXS5jaGFuZ2VkID0gMTsKKwkJZm9yIChpID0gMzsgaSA8IHBhcnRpdGlvbnM7IGkrKykgeworCQkJc3RydWN0IHB0ZSAqcGUgPSAmcHRlc1tpXTsKKworCQkJaWYgKHBlLT5jaGFuZ2VkKSB7CisJCQkJd3JpdGVfcGFydF90YWJsZV9mbGFnKHBlLT5zZWN0b3JidWZmZXIpOworCQkJCXdyaXRlX3NlY3RvcihmZCwgcGUtPm9mZnNldCwgcGUtPnNlY3RvcmJ1ZmZlcik7CisJCQl9CisJCX0KKwl9CisJZWxzZSBpZiAoc2dpX2xhYmVsKSB7CisJCS8qIG5vIHRlc3Qgb24gY2hhbmdlPyB0aGUgcHJpbnRmIGJlbG93IG1pZ2h0IGJlIG1pc3Rha2VuICovCisJCXNnaV93cml0ZV90YWJsZSgpOworCX0gZWxzZSBpZiAoc3VuX2xhYmVsKSB7CisJCWludCBuZWVkdyA9IDA7CisKKwkJZm9yIChpPTA7IGk8ODsgaSsrKQorCQkJaWYgKHB0ZXNbaV0uY2hhbmdlZCkKKwkJCQluZWVkdyA9IDE7CisJCWlmIChuZWVkdykKKwkJCXN1bl93cml0ZV90YWJsZSgpOworCX0KKworCXByaW50ZihfKCJUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhXG5cbiIpKTsKKwlyZXJlYWRfcGFydGl0aW9uX3RhYmxlKDEpOworfQorCit2b2lkCityZXJlYWRfcGFydGl0aW9uX3RhYmxlKGludCBsZWF2ZSkgeworCWludCBpOworCXN0cnVjdCBzdGF0IHN0YXRidWY7CisKKwlpID0gZnN0YXQoZmQsICZzdGF0YnVmKTsKKwlpZiAoaSA9PSAwICYmIFNfSVNCTEsoc3RhdGJ1Zi5zdF9tb2RlKSkgeworCQlzeW5jKCk7CisjaWZkZWYgQkxLUlJQQVJUCisJCXByaW50ZihfKCJDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuXG4iKSk7CisJCWkgPSBpb2N0bChmZCwgQkxLUlJQQVJUKTsKKyNlbHNlCisJCWVycm5vID0gRU5PU1lTOworCQlpID0gMTsKKyNlbmRpZgorICAgICAgICB9CisKKwlpZiAoaSkgeworCQlwcmludGYoXygiXG5XQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorCQkJICJUaGUga2VybmVsIHN0aWxsIHVzZXMgdGhlIG9sZCB0YWJsZS4gVGhlIG5ldyB0YWJsZSB3aWxsIGJlIHVzZWQgYXRcbiIKKwkJCSAidGhlIG5leHQgcmVib290IG9yIGFmdGVyIHlvdSBydW4gcGFydHByb2JlKDgpIG9yIGtwYXJ0eCg4KVxuIiksCisJCQllcnJubywgc3RyZXJyb3IoZXJybm8pKTsKKwl9CisKKwlpZiAoZG9zX2NoYW5nZWQpCisJICAgIHByaW50ZigKKwkJXygiXG5XQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueSBET1MgNi54XG4iCisJCSJwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBmZGlzayBtYW51YWwgcGFnZSBmb3IgYWRkaXRpb25hbFxuIgorCQkiaW5mb3JtYXRpb24uXG4iKSk7CisKKwlpZiAobGVhdmUpIHsKKwkJaWYgKGZzeW5jKGZkKSB8fCBjbG9zZShmZCkpIHsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJcbkVycm9yIGNsb3NpbmcgZmlsZVxuIikpOworCQkJZXhpdCgxKTsKKwkJfQorCisJCXByaW50ZihfKCJTeW5jaW5nIGRpc2tzLlxuIikpOworCQlzeW5jKCk7CisJCWV4aXQoISFpKTsKKwl9Cit9CisKKyNkZWZpbmUgTUFYX1BFUl9MSU5FCTE2CitzdGF0aWMgdm9pZAorcHJpbnRfYnVmZmVyKHVuc2lnbmVkIGNoYXIgcGJ1ZmZlcltdKSB7CisJaW50CWksCisJCWw7CisKKwlmb3IgKGkgPSAwLCBsID0gMDsgaSA8IHNlY3Rvcl9zaXplOyBpKyssIGwrKykgeworCQlpZiAobCA9PSAwKQorCQkJcHJpbnRmKCIweCUwM1g6IiwgaSk7CisJCXByaW50ZigiICUwMlgiLCBwYnVmZmVyW2ldKTsKKwkJaWYgKGwgPT0gTUFYX1BFUl9MSU5FIC0gMSkgeworCQkJcHJpbnRmKCJcbiIpOworCQkJbCA9IC0xOworCQl9CisJfQorCWlmIChsID4gMCkKKwkJcHJpbnRmKCJcbiIpOworCXByaW50ZigiXG4iKTsKK30KKworc3RhdGljIHZvaWQKK3ByaW50X3Jhdyh2b2lkKSB7CisJaW50IGk7CisKKwlwcmludGYoXygiRGV2aWNlOiAlc1xuIiksIGRpc2tfZGV2aWNlKTsKKwlpZiAoc3VuX2xhYmVsIHx8IHNnaV9sYWJlbCkKKwkJcHJpbnRfYnVmZmVyKE1CUmJ1ZmZlcik7CisJZWxzZSBmb3IgKGkgPSAzOyBpIDwgcGFydGl0aW9uczsgaSsrKQorCQlwcmludF9idWZmZXIocHRlc1tpXS5zZWN0b3JidWZmZXIpOworfQorCitzdGF0aWMgdm9pZAorbW92ZV9iZWdpbihpbnQgaSkgeworCXN0cnVjdCBwdGUgKnBlID0gJnB0ZXNbaV07CisJc3RydWN0IHBhcnRpdGlvbiAqcCA9IHBlLT5wYXJ0X3RhYmxlOworCXVuc2lnbmVkIGludCBuZXcsIGZpcnN0OworCisJaWYgKHdhcm5fZ2VvbWV0cnkoKSkKKwkJcmV0dXJuOworCWlmICghcC0+c3lzX2luZCB8fCAhZ2V0X25yX3NlY3RzKHApIHx8IElTX0VYVEVOREVEIChwLT5zeXNfaW5kKSkgeworCQlwcmludGYoXygiUGFydGl0aW9uICVkIGhhcyBubyBkYXRhIGFyZWFcbiIpLCBpICsgMSk7CisJCXJldHVybjsKKwl9CisJZmlyc3QgPSBnZXRfcGFydGl0aW9uX3N0YXJ0KHBlKTsKKwluZXcgPSByZWFkX2ludChmaXJzdCwgZmlyc3QsIGZpcnN0ICsgZ2V0X25yX3NlY3RzKHApIC0gMSwgZmlyc3QsCisJCSAgICAgICBfKCJOZXcgYmVnaW5uaW5nIG9mIGRhdGEiKSkgLSBwZS0+b2Zmc2V0OworCisJaWYgKG5ldyAhPSBnZXRfbnJfc2VjdHMocCkpIHsKKwkJZmlyc3QgPSBnZXRfbnJfc2VjdHMocCkgKyBnZXRfc3RhcnRfc2VjdChwKSAtIG5ldzsKKwkJc2V0X25yX3NlY3RzKHAsIGZpcnN0KTsKKwkJc2V0X3N0YXJ0X3NlY3QocCwgbmV3KTsKKwkJcGUtPmNoYW5nZWQgPSAxOworCX0KK30KKworc3RhdGljIHZvaWQKK3hzZWxlY3Qodm9pZCkgeworCWNoYXIgYzsKKworCXdoaWxlKDEpIHsKKwkJcHV0Y2hhcignXG4nKTsKKwkJYyA9IHRvbG93ZXIocmVhZF9jaGFyKF8oIkV4cGVydCBjb21tYW5kIChtIGZvciBoZWxwKTogIikpKTsKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ2EnOgorCQkJaWYgKHN1bl9sYWJlbCkKKwkJCQlzdW5fc2V0X2FsdF9jeWwoKTsKKwkJCWJyZWFrOworCQljYXNlICdiJzoKKwkJCWlmIChkb3NfbGFiZWwpCisJCQkJbW92ZV9iZWdpbihnZXRfcGFydGl0aW9uKDAsIHBhcnRpdGlvbnMpKTsKKwkJCWJyZWFrOworCQljYXNlICdjJzoKKwkJCXVzZXJfY3lsaW5kZXJzID0gY3lsaW5kZXJzID0KKwkJCQlyZWFkX2ludCgxLCBjeWxpbmRlcnMsIDEwNDg1NzYsIDAsCisJCQkJCSBfKCJOdW1iZXIgb2YgY3lsaW5kZXJzIikpOworCQkJaWYgKHN1bl9sYWJlbCkKKwkJCQlzdW5fc2V0X25jeWwoY3lsaW5kZXJzKTsKKwkJCWJyZWFrOworCQljYXNlICdkJzoKKwkJCXByaW50X3JhdygpOworCQkJYnJlYWs7CisJCWNhc2UgJ2UnOgorCQkJaWYgKHNnaV9sYWJlbCkKKwkJCQlzZ2lfc2V0X3hjeWwoKTsKKwkJCWVsc2UgaWYgKHN1bl9sYWJlbCkKKwkJCQlzdW5fc2V0X3hjeWwoKTsKKwkJCWVsc2UKKwkJCWlmIChkb3NfbGFiZWwpCisJCQkJeF9saXN0X3RhYmxlKDEpOworCQkJYnJlYWs7CisJCWNhc2UgJ2YnOgorCQkJaWYgKGRvc19sYWJlbCkKKwkJCQlmaXhfcGFydGl0aW9uX3RhYmxlX29yZGVyKCk7CisJCQlicmVhazsKKwkJY2FzZSAnZyc6CisJCQljcmVhdGVfc2dpbGFiZWwoKTsKKwkJCWJyZWFrOworCQljYXNlICdoJzoKKwkJCXVzZXJfaGVhZHMgPSBoZWFkcyA9IHJlYWRfaW50KDEsIGhlYWRzLCAyNTYsIDAsCisJCQkJCSBfKCJOdW1iZXIgb2YgaGVhZHMiKSk7CisJCQl1cGRhdGVfdW5pdHMoKTsKKwkJCWJyZWFrOworCQljYXNlICdpJzoKKwkJCWlmIChzdW5fbGFiZWwpCisJCQkJc3VuX3NldF9pbGZhY3QoKTsKKwkJCWlmIChkb3NfbGFiZWwpCisJCQkJZG9zX3NldF9tYnJfaWQoKTsKKwkJCWJyZWFrOworCQljYXNlICdvJzoKKwkJCWlmIChzdW5fbGFiZWwpCisJCQkJc3VuX3NldF9yc3BlZWQoKTsKKwkJCWJyZWFrOworCQljYXNlICdwJzoKKwkJCWlmIChzdW5fbGFiZWwpCisJCQkJbGlzdF90YWJsZSgxKTsKKwkJCWVsc2UKKwkJCQl4X2xpc3RfdGFibGUoMCk7CisJCQlicmVhazsKKwkJY2FzZSAncSc6CisJCQljbG9zZShmZCk7CisJCQlwcmludGYoIlxuIik7CisJCQlleGl0KDApOworCQljYXNlICdyJzoKKwkJCXJldHVybjsKKwkJY2FzZSAncyc6CisJCQl1c2VyX3NlY3RvcnMgPSBzZWN0b3JzID0gcmVhZF9pbnQoMSwgc2VjdG9ycywgNjMsIDAsCisJCQkJCSAgIF8oIk51bWJlciBvZiBzZWN0b3JzIikpOworCQkJaWYgKGRvc19jb21wYXRpYmxlX2ZsYWcpCisJCQkJZnByaW50ZihzdGRlcnIsIF8oIldhcm5pbmc6IHNldHRpbmcgIgorCQkJCQkic2VjdG9yIG9mZnNldCBmb3IgRE9TICIKKwkJCQkJImNvbXBhdGlibGl0eVxuIikpOworCQkJdXBkYXRlX3NlY3Rvcl9vZmZzZXQoKTsKKwkJCXVwZGF0ZV91bml0cygpOworCQkJYnJlYWs7CisJCWNhc2UgJ3YnOgorCQkJdmVyaWZ5KCk7CisJCQlicmVhazsKKwkJY2FzZSAndyc6CisJCQl3cml0ZV90YWJsZSgpOyAJLyogZG9lcyBub3QgcmV0dXJuICovCisJCQlicmVhazsKKwkJY2FzZSAneSc6CisJCQlpZiAoc3VuX2xhYmVsKQorCQkJCXN1bl9zZXRfcGN5bGNvdW50KCk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXhtZW51KCk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBpbnQKK2lzX2lkZV9jZHJvbV9vcl90YXBlKGNoYXIgKmRldmljZSkgeworCUZJTEUgKnByb2NmOworCWNoYXIgYnVmWzEwMF07CisJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKwlpbnQgaXNfaWRlID0gMDsKKworCS8qIE5vIGRldmljZSB3YXMgZ2l2ZW4gZXhwbGljaXRseSwgYW5kIHdlIGFyZSB0cnlpbmcgc29tZQorCSAgIGxpa2VseSB0aGluZ3MuICBCdXQgb3BlbmluZyAvZGV2L2hkYyBtYXkgcHJvZHVjZSBlcnJvcnMgbGlrZQorICAgICAgICAgICAiaGRjOiB0cmF5IG9wZW4gb3IgZHJpdmUgbm90IHJlYWR5IgorCSAgIGlmIGl0IGhhcHBlbnMgdG8gYmUgYSBDRC1ST00gZHJpdmUuIEl0IGV2ZW4gaGFwcGVucyB0aGF0CisJICAgdGhlIHByb2Nlc3MgaGFuZ3Mgb24gdGhlIGF0dGVtcHQgdG8gcmVhZCBhIG11c2ljIENELgorCSAgIFNvIHRyeSB0byBiZSBjYXJlZnVsLiBUaGlzIG9ubHkgd29ya3Mgc2luY2UgMi4xLjczLiAqLworCisJaWYgKHN0cm5jbXAoIi9kZXYvaGQiLCBkZXZpY2UsIDcpKQorCQlyZXR1cm4gMDsKKworCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIvcHJvYy9pZGUvJXMvbWVkaWEiLCBkZXZpY2UrNSk7CisJcHJvY2YgPSBmb3BlbihidWYsICJyIik7CisJaWYgKHByb2NmICE9IE5VTEwgJiYgZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgcHJvY2YpKQorCQlpc19pZGUgPSAoIXN0cm5jbXAoYnVmLCAiY2Ryb20iLCA1KSB8fAorCQkJICAhc3RybmNtcChidWYsICJ0YXBlIiwgNCkpOworCWVsc2UKKwkJLyogTm93IHdoZW4gdGhpcyBwcm9jIGZpbGUgZG9lcyBub3QgZXhpc3QsIHNraXAgdGhlCisJCSAgIGRldmljZSB3aGVuIGl0IGlzIHJlYWQtb25seS4gKi8KKwkJaWYgKHN0YXQoZGV2aWNlLCAmc3RhdGJ1ZikgPT0gMCkKKwkJCWlzX2lkZSA9ICgoc3RhdGJ1Zi5zdF9tb2RlICYgMDIyMikgPT0gMCk7CisKKwlpZiAocHJvY2YpCisJCWZjbG9zZShwcm9jZik7CisJcmV0dXJuIGlzX2lkZTsKK30KKworc3RhdGljIHZvaWQKK2dwdF93YXJuaW5nKGNoYXIgKmRldikKK3sKKwlpZiAoZGV2ICYmIGdwdF9wcm9iZV9zaWduYXR1cmVfZGV2bmFtZShkZXYpKQorCQlmcHJpbnRmKHN0ZGVyciwgXygiXG5XQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISAiCisJCQkiVGhlIHV0aWwgZmRpc2sgZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG5cbiIpLCBkZXYpOworfQorCitzdGF0aWMgdm9pZAordHJ5KGNoYXIgKmRldmljZSwgaW50IHVzZXJfc3BlY2lmaWVkKSB7CisJaW50IGdiOworCisJZGlza19kZXZpY2UgPSBkZXZpY2U7CisJaWYgKHNldGptcChsaXN0aW5nYnVmKSkKKwkJcmV0dXJuOworCWlmICghdXNlcl9zcGVjaWZpZWQpCisJCWlmIChpc19pZGVfY2Ryb21fb3JfdGFwZShkZXZpY2UpKQorCQkJcmV0dXJuOworCWdwdF93YXJuaW5nKGRldmljZSk7CisJaWYgKChmZCA9IG9wZW4oZGlza19kZXZpY2UsIHR5cGVfb3BlbikpID49IDApIHsKKwkJZ2IgPSBnZXRfYm9vdCh0cnlfb25seSk7CisJCWlmIChnYiA+IDApIHsgLyogSS9PIGVycm9yICovCisJCX0gZWxzZSBpZiAoZ2IgPCAwKSB7IC8qIG5vIERPUyBzaWduYXR1cmUgKi8KKwkJCWxpc3RfZGlza19nZW9tZXRyeSgpOworCQkJaWYgKCFhaXhfbGFiZWwgJiYgIW1hY19sYWJlbCAmJiBidHJ5ZGV2KGRldmljZSkgPCAwKQorCQkJCWZwcmludGYoc3RkZXJyLAorCQkJCQlfKCJEaXNrICVzIGRvZXNuJ3QgY29udGFpbiBhIHZhbGlkICIKKwkJCQkJICAicGFydGl0aW9uIHRhYmxlXG4iKSwgZGV2aWNlKTsKKwkJfSBlbHNlIHsKKwkJCWxpc3RfdGFibGUoMCk7CisJCX0KKwkJY2xvc2UoZmQpOworCX0gZWxzZSB7CisJCS8qIElnbm9yZSBvdGhlciBlcnJvcnMsIHNpbmNlIHdlIHRyeSBJREUKKwkJICAgYW5kIFNDU0kgaGFyZCBkaXNrcyB3aGljaCBtYXkgbm90IGJlCisJCSAgIGluc3RhbGxlZCBvbiB0aGUgc3lzdGVtLiAqLworCQlpZiAoZXJybm8gPT0gRUFDQ0VTKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgXygiQ2Fubm90IG9wZW4gJXNcbiIpLCBkZXZpY2UpOworCQkJcmV0dXJuOworCQl9CisJfQorfQorCisvKgorICogZm9yIGZkaXNrIC1sOgorICogdHJ5IGFsbCB0aGluZ3MgaW4gL3Byb2MvcGFydGl0aW9ucyB0aGF0IGxvb2sgbGlrZSBhIGZ1bGwgZGlzaworICovCitzdGF0aWMgdm9pZAordHJ5cHJvY3B0KHZvaWQpIHsKKwlGSUxFICpwcm9jcHQ7CisJY2hhciBsaW5lWzEyOF0sIHB0bmFtZVsxMjhdLCBkZXZuYW1lWzI1Nl07CisJaW50IG1hLCBtaTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgc3o7CisKKwlwcm9jcHQgPSBmb3BlbihQUk9DX1BBUlRJVElPTlMsICJyIik7CisJaWYgKHByb2NwdCA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCJjYW5ub3Qgb3BlbiAlc1xuIiksIFBST0NfUEFSVElUSU9OUyk7CisJCXJldHVybjsKKwl9CisKKwl3aGlsZSAoZmdldHMobGluZSwgc2l6ZW9mKGxpbmUpLCBwcm9jcHQpKSB7CisJCWlmIChzc2NhbmYgKGxpbmUsICIgJWQgJWQgJWxsdSAlMTI4W15cbiBdIiwKKwkJCSAgICAmbWEsICZtaSwgJnN6LCBwdG5hbWUpICE9IDQpCisJCQljb250aW51ZTsKKwkJc25wcmludGYoZGV2bmFtZSwgc2l6ZW9mKGRldm5hbWUpLCAiL2Rldi8lcyIsIHB0bmFtZSk7CisJCWlmIChpc193aG9sZV9kaXNrKGRldm5hbWUpKQorCQkJdHJ5KGRldm5hbWUsIDApOworCX0KKwlmY2xvc2UocHJvY3B0KTsKK30KKworc3RhdGljIHZvaWQKK2R1bW15KGludCAqa2spIHt9CisKK3N0YXRpYyB2b2lkCit1bmtub3duX2NvbW1hbmQoaW50IGMpIHsKKwlwcmludGYoXygiJWM6IHVua25vd24gY29tbWFuZFxuIiksIGMpOworfQorCisKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCWludCBqLCBjOworCWludCBvcHRsID0gMCwgb3B0cyA9IDA7CisKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisJd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJiOmNDOmhIOmxzUzp1dlYiKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ2InOgorCQkJLyogVWdseTogdGhpcyBzZWN0b3Igc2l6ZSBpcyByZWFsbHkgcGVyIGRldmljZSwKKwkJCSAgIHNvIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG11bHRpcGxlIGRpc2tzLAorCQkJICAgYW5kIHRlIHNhbWUgZ29lcyBmb3IgdGhlIEMvSC9TIG9wdGlvbnMuCisJCQkqLworCQkJc2VjdG9yX3NpemUgPSBhdG9pKG9wdGFyZyk7CisJCQlpZiAoc2VjdG9yX3NpemUgIT0gNTEyICYmIHNlY3Rvcl9zaXplICE9IDEwMjQgJiYKKwkJCSAgICBzZWN0b3Jfc2l6ZSAhPSAyMDQ4ICYmIHNlY3Rvcl9zaXplICE9IDQwOTYpCisJCQkJZmF0YWwodXNhZ2UpOworCQkJc2VjdG9yX29mZnNldCA9IDI7CisJCQl1c2VyX3NldF9zZWN0b3Jfc2l6ZSA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnQyc6CisJCQl1c2VyX2N5bGluZGVycyA9IGF0b2kob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICdjJzoKKwkJCWRvc19jb21wYXRpYmxlX2ZsYWcgPSAwOworCQkJYnJlYWs7CisJCWNhc2UgJ2gnOgorCQkJZmF0YWwoaGVscCk7CisJCQlicmVhazsKKwkJY2FzZSAnSCc6CisJCQl1c2VyX2hlYWRzID0gYXRvaShvcHRhcmcpOworCQkJaWYgKHVzZXJfaGVhZHMgPD0gMCB8fCB1c2VyX2hlYWRzID4gMjU2KQorCQkJCXVzZXJfaGVhZHMgPSAwOworCQkJYnJlYWs7CisJCWNhc2UgJ1MnOgorCQkJdXNlcl9zZWN0b3JzID0gYXRvaShvcHRhcmcpOworCQkJaWYgKHVzZXJfc2VjdG9ycyA8PSAwIHx8IHVzZXJfc2VjdG9ycyA+PSA2NCkKKwkJCQl1c2VyX3NlY3RvcnMgPSAwOworCQkJYnJlYWs7CisJCWNhc2UgJ2wnOgorCQkJb3B0bCA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAncyc6CisJCQlvcHRzID0gMTsKKwkJCWJyZWFrOworCQljYXNlICd1JzoKKwkJCWRpc3BsYXlfaW5fY3lsX3VuaXRzID0gMDsKKwkJCWJyZWFrOworCQljYXNlICdWJzoKKwkJY2FzZSAndic6CisJCQlwcmludGYoImZkaXNrICglcylcbiIsIFBBQ0tBR0VfU1RSSU5HKTsKKwkJCWV4aXQoMCk7CisJCWRlZmF1bHQ6CisJCQlmYXRhbCh1c2FnZSk7CisJCX0KKwl9CisKKyNpZiAwCisJcHJpbnRmKF8oIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAiCisJCSAiLWIgb3B0aW9uIGlnbm9yZWRcbiIpKTsKKyNlbHNlCisJaWYgKHVzZXJfc2V0X3NlY3Rvcl9zaXplICYmIGFyZ2Mtb3B0aW5kICE9IDEpCisJCXByaW50ZihfKCJXYXJuaW5nOiB0aGUgLWIgKHNldCBzZWN0b3Igc2l6ZSkgb3B0aW9uIHNob3VsZCIKKwkJCSAiIGJlIHVzZWQgd2l0aCBvbmUgc3BlY2lmaWVkIGRldmljZVxuIikpOworI2VuZGlmCisKKwlpbml0X21icl9idWZmZXIoKTsKKworCWlmIChvcHRsKSB7CisJCW5vd2FybiA9IDE7CisJCXR5cGVfb3BlbiA9IE9fUkRPTkxZOworCQlpZiAoYXJnYyA+IG9wdGluZCkgeworCQkJaW50IGs7CisJCQkvKiBhdm9pZCBnY2Mgd2FybmluZzoKKwkJCSAgIHZhcmlhYmxlIGBrJyBtaWdodCBiZSBjbG9iYmVyZWQgYnkgYGxvbmdqbXAnICovCisJCQlkdW1teSgmayk7CisJCQlsaXN0aW5nID0gMTsKKwkJCWZvciAoayA9IG9wdGluZDsgayA8IGFyZ2M7IGsrKykKKwkJCQl0cnkoYXJndltrXSwgMSk7CisJCX0gZWxzZSB7CisJCQkvKiB3ZSBubyBsb25nZXIgaGF2ZSBkZWZhdWx0IGRldmljZSBuYW1lcyAqLworCQkJLyogYnV0IHdlIGNhbiB1c2UgL3Byb2MvcGFydGl0aW9ucyBpbnN0ZWFkICovCisJCQl0cnlwcm9jcHQoKTsKKwkJfQorCQlleGl0KDApOworCX0KKworCWlmIChvcHRzKSB7CisJCXVuc2lnbmVkIGxvbmcgbG9uZyBzaXplOworCisJCW5vd2FybiA9IDE7CisJCXR5cGVfb3BlbiA9IE9fUkRPTkxZOworCisJCW9wdHMgPSBhcmdjIC0gb3B0aW5kOworCQlpZiAob3B0cyA8PSAwKQorCQkJZmF0YWwodXNhZ2UpOworCisJCWZvciAoaiA9IG9wdGluZDsgaiA8IGFyZ2M7IGorKykgeworCQkJZGlza19kZXZpY2UgPSBhcmd2W2pdOworCQkJaWYgKChmZCA9IG9wZW4oZGlza19kZXZpY2UsIHR5cGVfb3BlbikpIDwgMCkKKwkJCQlmYXRhbCh1bmFibGVfdG9fb3Blbik7CisJCQlpZiAoYmxrZGV2X2dldF9zZWN0b3JzKGZkLCAmc2l6ZSkgPT0gLTEpCisJCQkJZmF0YWwoaW9jdGxfZXJyb3IpOworCQkJY2xvc2UoZmQpOworCQkJaWYgKG9wdHMgPT0gMSkKKwkJCQlwcmludGYoIiVsbHVcbiIsIHNpemUvMik7CisJCQllbHNlCisJCQkJcHJpbnRmKCIlczogJWxsdVxuIiwgYXJndltqXSwgc2l6ZS8yKTsKKwkJfQorCQlleGl0KDApOworCX0KKworCWlmIChhcmdjLW9wdGluZCA9PSAxKQorCQlkaXNrX2RldmljZSA9IGFyZ3Zbb3B0aW5kXTsKKwllbHNlCisJCWZhdGFsKHVzYWdlKTsKKworCWdwdF93YXJuaW5nKGRpc2tfZGV2aWNlKTsKKwlnZXRfYm9vdChmZGlzayk7CisKKwlpZiAob3NmX2xhYmVsKSB7CisJCS8qIE9TRiBsYWJlbCwgYW5kIG5vIERPUyBsYWJlbCAqLworCQlwcmludGYoXygiRGV0ZWN0ZWQgYW4gT1NGLzEgZGlza2xhYmVsIG9uICVzLCBlbnRlcmluZyAiCisJCQkgImRpc2tsYWJlbCBtb2RlLlxuIiksCisJCSAgICAgICBkaXNrX2RldmljZSk7CisJCWJzZWxlY3QoKTsKKwkJb3NmX2xhYmVsID0gMDsKKwkJLyogSWYgd2UgcmV0dXJuIHdlIG1heSB3YW50IHRvIG1ha2UgYW4gZW1wdHkgRE9TIGxhYmVsPyAqLworCX0KKworCXdoaWxlICgxKSB7CisJCXB1dGNoYXIoJ1xuJyk7CisJCWMgPSB0b2xvd2VyKHJlYWRfY2hhcihfKCJDb21tYW5kIChtIGZvciBoZWxwKTogIikpKTsKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ2EnOgorCQkJaWYgKGRvc19sYWJlbCkKKwkJCQl0b2dnbGVfYWN0aXZlKGdldF9wYXJ0aXRpb24oMSwgcGFydGl0aW9ucykpOworCQkJZWxzZSBpZiAoc3VuX2xhYmVsKQorCQkJCXRvZ2dsZV9zdW5mbGFncyhnZXRfcGFydGl0aW9uKDEsIHBhcnRpdGlvbnMpLAorCQkJCQkJU1VOX0ZMQUdfVU5NTlQpOworCQkJZWxzZSBpZiAoc2dpX2xhYmVsKQorCQkJCXNnaV9zZXRfYm9vdHBhcnRpdGlvbigKKwkJCQkJZ2V0X3BhcnRpdGlvbigxLCBwYXJ0aXRpb25zKSk7CisJCQllbHNlCisJCQkJdW5rbm93bl9jb21tYW5kKGMpOworCQkJYnJlYWs7CisJCWNhc2UgJ2InOgorCQkJaWYgKHNnaV9sYWJlbCkgeworCQkJCXByaW50ZihfKCJcblRoZSBjdXJyZW50IGJvb3QgZmlsZSBpczogJXNcbiIpLAorCQkJCSAgICAgICBzZ2lfZ2V0X2Jvb3RmaWxlKCkpOworCQkJCWlmIChyZWFkX2NoYXJzKF8oIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgIgorCQkJCQkgICAgICAgIm5ldyBib290IGZpbGU6ICIpKSA9PSAnXG4nKQorCQkJCQlwcmludGYoXygiQm9vdCBmaWxlIHVuY2hhbmdlZFxuIikpOworCQkJCWVsc2UKKwkJCQkJc2dpX3NldF9ib290ZmlsZShsaW5lX3B0cik7CisJCQl9IGVsc2UKKwkJCQlic2VsZWN0KCk7CisJCQlicmVhazsKKwkJY2FzZSAnYyc6CisJCQlpZiAoZG9zX2xhYmVsKQorCQkJCXRvZ2dsZV9kb3NfY29tcGF0aWJpbGl0eV9mbGFnKCk7CisJCQllbHNlIGlmIChzdW5fbGFiZWwpCisJCQkJdG9nZ2xlX3N1bmZsYWdzKGdldF9wYXJ0aXRpb24oMSwgcGFydGl0aW9ucyksCisJCQkJCQlTVU5fRkxBR19ST05MWSk7CisJCQllbHNlIGlmIChzZ2lfbGFiZWwpCisJCQkJc2dpX3NldF9zd2FwcGFydGl0aW9uKAorCQkJCQkJZ2V0X3BhcnRpdGlvbigxLCBwYXJ0aXRpb25zKSk7CisJCQllbHNlCisJCQkJdW5rbm93bl9jb21tYW5kKGMpOworCQkJYnJlYWs7CisJCWNhc2UgJ2QnOgorICAgICAgICAJCS8qIElmIHNnaV9sYWJlbCB0aGVuIGRvbid0IHVzZSBnZXRfZXhpc3RpbmdfcGFydGl0aW9uLAorCQkJICAgbGV0IHRoZSB1c2VyIHNlbGVjdCBhIHBhcnRpdGlvbiwgc2luY2UKKwkJCSAgIGdldF9leGlzdGluZ19wYXJ0aXRpb24oKSBvbmx5IHdvcmtzIGZvciBMaW51eC1saWtlCisJCQkgICBwYXJ0aXRpb24gdGFibGVzICovCisgICAgICAgIAkJaWYgKCFzZ2lfbGFiZWwpIHsKKyAgICAgICAgICAgICAgICAJCWogPSBnZXRfZXhpc3RpbmdfcGFydGl0aW9uKDEsIHBhcnRpdGlvbnMpOworICAgICAgICAJCX0gZWxzZSB7CisgICAgICAgICAgICAgICAgCQlqID0gZ2V0X3BhcnRpdGlvbigxLCBwYXJ0aXRpb25zKTsKKyAgICAgICAgCQl9CisJCQlpZiAoaiA+PSAwKQorCQkJCWRlbGV0ZV9wYXJ0aXRpb24oaik7CisJCQlicmVhazsKKwkJY2FzZSAnaSc6CisJCQlpZiAoc2dpX2xhYmVsKQorCQkJCWNyZWF0ZV9zZ2lpbmZvKCk7CisJCQllbHNlCisJCQkJdW5rbm93bl9jb21tYW5kKGMpOworCQljYXNlICdsJzoKKwkJCWxpc3RfdHlwZXMoZ2V0X3N5c190eXBlcygpKTsKKwkJCWJyZWFrOworCQljYXNlICdtJzoKKwkJCW1lbnUoKTsKKwkJCWJyZWFrOworCQljYXNlICduJzoKKwkJCW5ld19wYXJ0aXRpb24oKTsKKwkJCWJyZWFrOworCQljYXNlICdvJzoKKwkJCWNyZWF0ZV9kb3NsYWJlbCgpOworCQkJYnJlYWs7CisJCWNhc2UgJ3AnOgorCQkJbGlzdF90YWJsZSgwKTsKKwkJCWJyZWFrOworCQljYXNlICdxJzoKKwkJCWNsb3NlKGZkKTsKKwkJCXByaW50ZigiXG4iKTsKKwkJCWV4aXQoMCk7CisJCWNhc2UgJ3MnOgorCQkJY3JlYXRlX3N1bmxhYmVsKCk7CisJCQlicmVhazsKKwkJY2FzZSAndCc6CisJCQljaGFuZ2Vfc3lzaWQoKTsKKwkJCWJyZWFrOworCQljYXNlICd1JzoKKwkJCWNoYW5nZV91bml0cygpOworCQkJYnJlYWs7CisJCWNhc2UgJ3YnOgorCQkJdmVyaWZ5KCk7CisJCQlicmVhazsKKwkJY2FzZSAndyc6CisJCQl3cml0ZV90YWJsZSgpOyAJCS8qIGRvZXMgbm90IHJldHVybiAqLworCQkJYnJlYWs7CisJCWNhc2UgJ3gnOgorCQkJaWYgKHNnaV9sYWJlbCkgeworCQkJCWZwcmludGYoc3RkZXJyLAorCQkJCQlfKCJcblx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJICIKKwkJCQkJInBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuXG4iKSk7CisJCQl9IGVsc2UKKwkJCQl4c2VsZWN0KCk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXVua25vd25fY29tbWFuZChjKTsKKwkJCW1lbnUoKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhODliZWIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlzay5oCkBAIC0wLDAgKzEsMTEyIEBACisvKgorICAgZmRpc2suaAorKi8KKworI2luY2x1ZGUgImMuaCIKKworI2RlZmluZSBERUZBVUxUX1NFQ1RPUl9TSVpFCTUxMgorI2RlZmluZSBNQVhfU0VDVE9SX1NJWkUJMjA0OAorI2RlZmluZSBTRUNUT1JfU0laRQk1MTIJLyogc3RpbGwgdXNlZCBpbiBCU0QgY29kZSAqLworI2RlZmluZSBNQVhJTVVNX1BBUlRTCTYwCisKKyNkZWZpbmUgQUNUSVZFX0ZMQUcgICAgIDB4ODAKKworI2RlZmluZSBFWFRFTkRFRCAgICAgICAgMHgwNQorI2RlZmluZSBXSU45OF9FWFRFTkRFRCAgMHgwZgorI2RlZmluZSBMSU5VWF9QQVJUSVRJT04gMHg4MQorI2RlZmluZSBMSU5VWF9TV0FQICAgICAgMHg4MgorI2RlZmluZSBMSU5VWF9OQVRJVkUgICAgMHg4MworI2RlZmluZSBMSU5VWF9FWFRFTkRFRCAgMHg4NQorI2RlZmluZSBMSU5VWF9MVk0gICAgICAgMHg4ZQorI2RlZmluZSBMSU5VWF9SQUlEICAgICAgMHhmZAorCisjZGVmaW5lIElTX0VYVEVOREVEKGkpIFwKKwkoKGkpID09IEVYVEVOREVEIHx8IChpKSA9PSBXSU45OF9FWFRFTkRFRCB8fCAoaSkgPT0gTElOVVhfRVhURU5ERUQpCisKKyNkZWZpbmUgY3JvdW5kKG4pCShkaXNwbGF5X2luX2N5bF91bml0cyA/ICgobikvdW5pdHNfcGVyX3NlY3RvcikrMSA6IChuKSkKKyNkZWZpbmUgc2Nyb3VuZCh4KQkoKCh4KSt1bml0c19wZXJfc2VjdG9yLTEpL3VuaXRzX3Blcl9zZWN0b3IpCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWxwaGFfXykpCisjIGRlZmluZSBQQUNLRUQgX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpCisjZWxzZQorIyBkZWZpbmUgUEFDS0VECisjZW5kaWYKKworc3RydWN0IHBhcnRpdGlvbiB7CisJdW5zaWduZWQgY2hhciBib290X2luZDsgICAgICAgICAvKiAweDgwIC0gYWN0aXZlICovCisJdW5zaWduZWQgY2hhciBoZWFkOyAgICAgICAgICAgICAvKiBzdGFydGluZyBoZWFkICovCisJdW5zaWduZWQgY2hhciBzZWN0b3I7ICAgICAgICAgICAvKiBzdGFydGluZyBzZWN0b3IgKi8KKwl1bnNpZ25lZCBjaGFyIGN5bDsgICAgICAgICAgICAgIC8qIHN0YXJ0aW5nIGN5bGluZGVyICovCisJdW5zaWduZWQgY2hhciBzeXNfaW5kOyAgICAgICAgICAvKiBXaGF0IHBhcnRpdGlvbiB0eXBlICovCisJdW5zaWduZWQgY2hhciBlbmRfaGVhZDsgICAgICAgICAvKiBlbmQgaGVhZCAqLworCXVuc2lnbmVkIGNoYXIgZW5kX3NlY3RvcjsgICAgICAgLyogZW5kIHNlY3RvciAqLworCXVuc2lnbmVkIGNoYXIgZW5kX2N5bDsgICAgICAgICAgLyogZW5kIGN5bGluZGVyICovCisJdW5zaWduZWQgY2hhciBzdGFydDRbNF07ICAgICAgICAvKiBzdGFydGluZyBzZWN0b3IgY291bnRpbmcgZnJvbSAwICovCisJdW5zaWduZWQgY2hhciBzaXplNFs0XTsgICAgICAgICAvKiBuciBvZiBzZWN0b3JzIGluIHBhcnRpdGlvbiAqLworfSBQQUNLRUQ7CisKK2VudW0gZmFpbHVyZSB7aGVscCwgdXNhZ2UsIGlvY3RsX2Vycm9yLAorCXVuYWJsZV90b19vcGVuLCB1bmFibGVfdG9fcmVhZCwgdW5hYmxlX3RvX3NlZWssCisJdW5hYmxlX3RvX3dyaXRlLCBvdXRfb2ZfbWVtb3J5fTsKKworZW51bSBhY3Rpb24ge2ZkaXNrLCByZXF1aXJlLCB0cnlfb25seSwgY3JlYXRlX2VtcHR5X2RvcywgY3JlYXRlX2VtcHR5X3N1bn07CisKK3N0cnVjdCBnZW9tIHsKKwl1bnNpZ25lZCBpbnQgaGVhZHM7CisJdW5zaWduZWQgaW50IHNlY3RvcnM7CisJdW5zaWduZWQgaW50IGN5bGluZGVyczsKK307CisKKy8qIHByb3RvdHlwZXMgZm9yIGZkaXNrLmMgKi8KK2V4dGVybiBjaGFyICpkaXNrX2RldmljZSwgKmxpbmVfcHRyOworZXh0ZXJuIGludCBmZCwgcGFydGl0aW9uczsKK2V4dGVybiB1bnNpZ25lZCBpbnQgZGlzcGxheV9pbl9jeWxfdW5pdHMsIHVuaXRzX3Blcl9zZWN0b3I7CitleHRlcm4gdm9pZCBjaGFuZ2VfdW5pdHModm9pZCk7CitleHRlcm4gdm9pZCBmYXRhbChlbnVtIGZhaWx1cmUgd2h5KTsKK2V4dGVybiB2b2lkIGdldF9nZW9tZXRyeShpbnQgZmQsIHN0cnVjdCBnZW9tICopOworZXh0ZXJuIGludCBnZXRfYm9vdChlbnVtIGFjdGlvbiB3aGF0KTsKK2V4dGVybiBpbnQgIGdldF9wYXJ0aXRpb24oaW50IHdhcm4sIGludCBtYXgpOworZXh0ZXJuIHZvaWQgbGlzdF90eXBlcyhzdHJ1Y3Qgc3lzdHlwZXMgKnN5cyk7CitleHRlcm4gaW50IHJlYWRfbGluZSAodm9pZCk7CitleHRlcm4gY2hhciByZWFkX2NoYXIoY2hhciAqbWVzZyk7CitleHRlcm4gaW50IHJlYWRfaGV4KHN0cnVjdCBzeXN0eXBlcyAqc3lzKTsKK2V4dGVybiB2b2lkIHJlcmVhZF9wYXJ0aXRpb25fdGFibGUoaW50IGxlYXZlKTsKK2V4dGVybiBzdHJ1Y3QgcGFydGl0aW9uICpnZXRfcGFydF90YWJsZShpbnQpOworZXh0ZXJuIGludCB2YWxpZF9wYXJ0X3RhYmxlX2ZsYWcodW5zaWduZWQgY2hhciAqYik7CitleHRlcm4gdW5zaWduZWQgaW50IHJlYWRfaW50KHVuc2lnbmVkIGludCBsb3csIHVuc2lnbmVkIGludCBkZmx0LAorCQkJICAgICB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGJhc2UsIGNoYXIgKm1lc2cpOworCitleHRlcm4gdW5zaWduZWQgY2hhciAqTUJSYnVmZmVyOworZXh0ZXJuIHZvaWQgemVyb2l6ZV9tYnJfYnVmZmVyKHZvaWQpOworCitleHRlcm4gdW5zaWduZWQgaW50IGhlYWRzLCBjeWxpbmRlcnMsIHNlY3Rvcl9zaXplOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBzZWN0b3JzOworZXh0ZXJuIGNoYXIgKnBhcnRpdGlvbl90eXBlKHVuc2lnbmVkIGNoYXIgdHlwZSk7CitleHRlcm4gdm9pZCB1cGRhdGVfdW5pdHModm9pZCk7CitleHRlcm4gY2hhciByZWFkX2NoYXJzKGNoYXIgKm1lc2cpOworZXh0ZXJuIHZvaWQgc2V0X2NoYW5nZWQoaW50KTsKK2V4dGVybiB2b2lkIHNldF9hbGxfdW5jaGFuZ2VkKHZvaWQpOworCisjZGVmaW5lIFBMVVJBTAkwCisjZGVmaW5lIFNJTkdVTEFSIDEKK2V4dGVybiBjb25zdCBjaGFyICogc3RyX3VuaXRzKGludCk7CisKK2V4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgZ2V0X3N0YXJ0X3NlY3Qoc3RydWN0IHBhcnRpdGlvbiAqcCk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGdldF9ucl9zZWN0cyhzdHJ1Y3QgcGFydGl0aW9uICpwKTsKKworZXh0ZXJuIGludCBvc2ZfbGFiZWw7CitleHRlcm4gaW50IHN1bl9sYWJlbDsKK2V4dGVybiBpbnQgc2dpX2xhYmVsOworZXh0ZXJuIGludCBhaXhfbGFiZWw7CitleHRlcm4gaW50IG1hY19sYWJlbDsKKworLyogcHJvdG90eXBlcyBmb3IgZmRpc2tic2RsYWJlbC5jICovCitleHRlcm4gdm9pZCBic2VsZWN0KHZvaWQpOworZXh0ZXJuIGludCBjaGVja19vc2ZfbGFiZWwodm9pZCk7CitleHRlcm4gaW50IGJ0cnlkZXYoY2hhciAqIGRldik7CitleHRlcm4gdm9pZCB4YnNkX3ByaW50X2Rpc2tsYWJlbChpbnQpOworCisvKiBwcm90b3R5cGVzIGZvciBmZGlza3NnaWxhYmVsLmMgKi8KK2V4dGVybiBpbnQgdmFsaWRfcGFydF90YWJsZV9mbGFnKHVuc2lnbmVkIGNoYXIgKmIpOworCisjZGVmaW5lIFBST0NfUEFSVElUSU9OUyAiL3Byb2MvcGFydGl0aW9ucyIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrYWl4bGFiZWwuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrYWl4bGFiZWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2VlOTVkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2thaXhsYWJlbC5jCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgIENoYW5nZXM6CisgIFNhdCBNYXIgMjAgMDk6NTE6MzggRVNUIDE5OTkgQXJuYWxkbyBDYXJ2YWxobyBkZSBNZWxvIDxhY21lQGNvbmVjdGl2YS5jb20uYnI+CisgIAlJbnRlcm5hdGlvbmFsaXphdGlvbgorKi8KKyNpbmNsdWRlIDxzdGRpby5oPiAgICAgICAgICAgICAgLyogc3RkZXJyICovCisjaW5jbHVkZSA8c3RyaW5nLmg+ICAgICAgICAgICAgIC8qIHN0cnN0ciAqLworI2luY2x1ZGUgPHVuaXN0ZC5oPiAgICAgICAgICAgICAvKiB3cml0ZSAqLworCisjaW5jbHVkZSA8ZW5kaWFuLmg+CisKKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJmZGlzay5oIgorI2luY2x1ZGUgImZkaXNrYWl4bGFiZWwuaCIKKyNpbmNsdWRlICJubHMuaCIKKworc3RhdGljCWludCAgICAgb3RoZXJfZW5kaWFuID0gMDsKK3N0YXRpYyAgc2hvcnQJdm9sdW1lcz0xOworCisvKgorICogb25seSBkZWFsaW5nIHdpdGggZnJlZSBibG9ja3MgaGVyZQorICovCisKK3N0YXRpYyB2b2lkCithaXhfaW5mbyggdm9pZCApIHsKKyAgICBwdXRzKAorCV8oIlxuXHRUaGVyZSBpcyBhIHZhbGlkIEFJWCBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisJIlx0VW5mb3J0dW5hdGVseSBMaW51eCBjYW5ub3QgaGFuZGxlIHRoZXNlXG4iCisJIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisJIlx0YWR2aWNlOlxuIgorCSJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisJIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorCSJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorCSJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKKwkiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorCSJcdCAgIHRvIHJlbW92ZSB0aGUgZGlzayBsb2dpY2FsbHkgZnJvbSB5b3VyIEFJWFxuIgorCSJcdCAgIG1hY2hpbmUuICAoT3RoZXJ3aXNlIHlvdSBiZWNvbWUgYW4gQUlYcGVydCkuIikKKyAgICApOworfQorCit2b2lkCithaXhfbm9sYWJlbCggdm9pZCApCit7CisgICAgYWl4bGFiZWwtPm1hZ2ljID0gMDsKKyAgICBhaXhfbGFiZWwgPSAwOworICAgIHBhcnRpdGlvbnMgPSA0OworICAgIHplcm9pemVfbWJyX2J1ZmZlcigpOworICAgIHJldHVybjsKK30KKworaW50CitjaGVja19haXhfbGFiZWwoIHZvaWQgKQoreworICAgIGlmIChhaXhsYWJlbC0+bWFnaWMgIT0gQUlYX0xBQkVMX01BR0lDICYmCisJYWl4bGFiZWwtPm1hZ2ljICE9IEFJWF9MQUJFTF9NQUdJQ19TV0FQUEVEKSB7CisJYWl4X2xhYmVsID0gMDsKKwlvdGhlcl9lbmRpYW4gPSAwOworCXJldHVybiAwOworICAgIH0KKyAgICBvdGhlcl9lbmRpYW4gPSAoYWl4bGFiZWwtPm1hZ2ljID09IEFJWF9MQUJFTF9NQUdJQ19TV0FQUEVEKTsKKyAgICB1cGRhdGVfdW5pdHMoKTsKKyAgICBhaXhfbGFiZWwgPSAxOworICAgIHBhcnRpdGlvbnM9IDEwMTY7CisgICAgdm9sdW1lcyA9IDE1OworICAgIGFpeF9pbmZvKCk7CisgICAgYWl4X25vbGFiZWwoKTsJCS8qICUlICovCisgICAgYWl4X2xhYmVsID0gMTsJCS8qICUlICovCisgICAgcmV0dXJuIDE7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza2FpeGxhYmVsLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza2FpeGxhYmVsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI0YjlhZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrYWl4bGFiZWwuaApAQCAtMCwwICsxLDMxIEBACisjaWZuZGVmIEZESVNLX0FJWF9MQUJFTF9ICisjZGVmaW5lIEZESVNLX0FJWF9MQUJFTF9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKy8qCisgKiBDb3B5cmlnaHQgKEMpIEFuZHJlYXMgTmV1cGVyLCBTZXAgMTk5OC4KKyAqCVRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlcgorICoJdGhlIHRlcm1zIG9mIHRoZSBHTlUgUHVibGljIExpY2Vuc2UuCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgeworCXVuc2lnbmVkIGludCAgIG1hZ2ljOyAgICAgICAgLyogZXhwZWN0IEFJWF9MQUJFTF9NQUdJQyAqLworCXVuc2lnbmVkIGludCAgIGZpbGxieXRlczFbMTI0XTsKKwl1bnNpZ25lZCBpbnQgICBwaHlzaWNhbF92b2x1bWVfaWQ7CisJdW5zaWduZWQgaW50ICAgZmlsbGJ5dGVzMlsxMjRdOworfSBhaXhfcGFydGl0aW9uOworCisjZGVmaW5lCUFJWF9MQUJFTF9NQUdJQwkJMHhjOWMyZDRjMQorI2RlZmluZQlBSVhfTEFCRUxfTUFHSUNfU1dBUFBFRAkweGMxZDRjMmM5CisjZGVmaW5lCUFJWF9JTkZPX01BR0lDCQkweDAwMDcyOTU5CisjZGVmaW5lCUFJWF9JTkZPX01BR0lDX1NXQVBQRUQJMHg1OTI5MDcwMAorCisvKiBmZGlzay5jICovCisjZGVmaW5lIGFpeGxhYmVsICgoYWl4X3BhcnRpdGlvbiAqKU1CUmJ1ZmZlcikKKworLyogZmRpc2thaXhsYWJlbC5jICovCitleHRlcm4gc3RydWN0CXN5c3R5cGVzIGFpeF9zeXNfdHlwZXNbXTsKK2V4dGVybiB2b2lkCWFpeF9ub2xhYmVsKCB2b2lkICk7CitleHRlcm4gaW50CWNoZWNrX2FpeF9sYWJlbCggdm9pZCApOworCisjZW5kaWYgLyogRkRJU0tfQUlYX0xBQkVMX0ggKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrYnNkbGFiZWwuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrYnNkbGFiZWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjQxNTYxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2tic2RsYWJlbC5jCkBAIC0wLDAgKzEsODY2IEBACisvKgorICAgTmV0QlNEIGRpc2tsYWJlbCBlZGl0b3IgZm9yIExpbnV4IGZkaXNrCisgICBXcml0dGVuIGJ5IEJlcm5oYXJkIEZhc3RlbnJhdGggKGZhc3RlbkBpbmZvcm1hdGlrLnVuaS1ib25uLmRlKQorICAgd2l0aCBjb2RlIGZyb20gdGhlIE5ldEJTRCBkaXNrbGFiZWwgY29tbWFuZDoKKyAgCisgICBDb3B5cmlnaHQgKGMpIDE5ODcsIDE5ODggUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgorICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgCisgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICAgYXJlIG1ldDoKKyAgIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgICAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAgIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICAgICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICAJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICAJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgICA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICAgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgICAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAgCisgICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICAgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgICBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICAgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgICBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICAgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAgIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAgIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAgIFNVQ0ggREFNQUdFLgorCisgICBDaGFuZ2VzOgorICAgMTk5OTAzMTkgLSBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8gPGFjbWVAY29uZWN0aXZhLmNvbS5icj4gLSBpMThuL25scworCisgICAyMDAwMDEwMSAtIERhdmlkIEh1Z2dpbnMtRGFpbmVzIDxkaHVnZ2luc0BsaW51eGNhcmUuY29tPiAtIEJldHRlcgorICAgc3VwcG9ydCBmb3IgT1NGLzEgZGlza2xhYmVscyBvbiBBbHBoYS4KKyAgIEFsc28gZml4ZWQgdW5hbGlnbmVkIGFjY2Vzc2VzIGluIGFscGhhX2Jvb3RibG9ja19jaGVja3N1bSgpCisqLworCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c2V0am1wLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlICJubHMuaCIKKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorCisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAiZmRpc2suaCIKKyNkZWZpbmUgRlJFRUJTRF9QQVJUSVRJT04JMHhhNQorI2RlZmluZSBORVRCU0RfUEFSVElUSU9OCTB4YTkKKyNkZWZpbmUgREtUWVBFTkFNRVMKKyNpbmNsdWRlICJmZGlza2JzZGxhYmVsLmgiCisKK3N0YXRpYyB2b2lkIHhic2RfZGVsZXRlX3BhcnQgKHZvaWQpOworc3RhdGljIHZvaWQgeGJzZF9uZXdfcGFydCAodm9pZCk7CitzdGF0aWMgdm9pZCB4YnNkX3dyaXRlX2Rpc2tsYWJlbCAodm9pZCk7CitzdGF0aWMgaW50IHhic2RfY3JlYXRlX2Rpc2tsYWJlbCAodm9pZCk7CitzdGF0aWMgdm9pZCB4YnNkX2VkaXRfZGlza2xhYmVsICh2b2lkKTsKK3N0YXRpYyB2b2lkIHhic2Rfd3JpdGVfYm9vdHN0cmFwICh2b2lkKTsKK3N0YXRpYyB2b2lkIHhic2RfY2hhbmdlX2ZzdHlwZSAodm9pZCk7CitzdGF0aWMgaW50IHhic2RfZ2V0X3BhcnRfaW5kZXggKGludCBtYXgpOworc3RhdGljIGludCB4YnNkX2NoZWNrX25ld19wYXJ0aXRpb24gKGludCAqaSk7CitzdGF0aWMgdm9pZCB4YnNkX2xpc3RfdHlwZXMgKHZvaWQpOworc3RhdGljIHVfc2hvcnQgeGJzZF9ka2Nrc3VtIChzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwgKmxwKTsKK3N0YXRpYyBpbnQgeGJzZF9pbml0bGFiZWwgIChzdHJ1Y3QgcGFydGl0aW9uICpwLCBzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwgKmQsCisJCQkgICAgaW50IHBpbmRleCk7CitzdGF0aWMgaW50IHhic2RfcmVhZGxhYmVsICAoc3RydWN0IHBhcnRpdGlvbiAqcCwgc3RydWN0IHhic2RfZGlza2xhYmVsICpkKTsKK3N0YXRpYyBpbnQgeGJzZF93cml0ZWxhYmVsIChzdHJ1Y3QgcGFydGl0aW9uICpwLCBzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwgKmQpOworc3RhdGljIHZvaWQgc3luY19kaXNrcyAodm9pZCk7CisKKyNpZiBkZWZpbmVkIChfX2FscGhhX18pCit2b2lkIGFscGhhX2Jvb3RibG9ja19jaGVja3N1bSAoY2hhciAqYm9vdCk7CisjZW5kaWYKKworI2lmICFkZWZpbmVkIChfX2FscGhhX18pCitzdGF0aWMgaW50IHhic2RfdHJhbnNsYXRlX2ZzdHlwZSAoaW50IGxpbnV4X3R5cGUpOworc3RhdGljIHZvaWQgeGJzZF9saW5rX3BhcnQgKHZvaWQpOworc3RhdGljIHN0cnVjdCBwYXJ0aXRpb24gKnhic2RfcGFydDsKK3N0YXRpYyBpbnQgeGJzZF9wYXJ0X2luZGV4OworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChfX2FscGhhX18pCisvKiBXZSBhY2Nlc3MgdGhpcyB0aHJvdWdoIGEgdV9pbnQ2NF90ICogd2hlbiBjaGVja3N1bW1pbmcgKi8KK3N0YXRpYyBjaGFyIGRpc2tsYWJlbGJ1ZmZlcltCU0RfQkJTSVpFXSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSk7CisjZWxzZQorc3RhdGljIGNoYXIgZGlza2xhYmVsYnVmZmVyW0JTRF9CQlNJWkVdOworI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwgeGJzZF9kbGFiZWw7CisKKyNkZWZpbmUgYnNkX2Nyb3VuZChuKSBcCisJKGRpc3BsYXlfaW5fY3lsX3VuaXRzID8gKChuKS94YnNkX2RsYWJlbC5kX3NlY3BlcmN5bCkgKyAxIDogKG4pKQorCisvKgorICogVGVzdCB3aGV0aGVyIHRoZSB3aG9sZSBkaXNrIGhhcyBCU0QgZGlzayBsYWJlbCBtYWdpYy4KKyAqCisgKiBOb3RlOiBvZnRlbiByZWZvcm1hdHRpbmcgd2l0aCBET1MtdHlwZSBsYWJlbCBsZWF2ZXMgdGhlIEJTRCBtYWdpYywKKyAqIHNvIHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IHRoZXJlIGlzIGEgQlNEIGRpc2sgbGFiZWwuCisgKi8KK2ludAorY2hlY2tfb3NmX2xhYmVsKHZvaWQpIHsKKwlpZiAoeGJzZF9yZWFkbGFiZWwgKE5VTEwsICZ4YnNkX2RsYWJlbCkgPT0gMCkKKwkJcmV0dXJuIDA7CisJcmV0dXJuIDE7Cit9CisKK2ludAorYnRyeWRldiAoY2hhciAqIGRldikgeworCWlmICh4YnNkX3JlYWRsYWJlbCAoTlVMTCwgJnhic2RfZGxhYmVsKSA9PSAwKQorCQlyZXR1cm4gLTE7CisJcHJpbnRmKF8oIlxuQlNEIGxhYmVsIGZvciBkZXZpY2U6ICVzXG4iKSwgZGV2KTsKKwl4YnNkX3ByaW50X2Rpc2tsYWJlbCAoMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitibWVudSAodm9pZCkgeworICBwdXRzIChfKCJDb21tYW5kIGFjdGlvbiIpKTsKKyAgcHV0cyAoXygiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iKSk7CisgIHB1dHMgKF8oIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiKSk7CisgIHB1dHMgKF8oIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIpKTsKKyAgcHV0cyAoXygiICAgbCAgIGxpc3Qga25vd24gZmlsZXN5c3RlbSB0eXBlcyIpKTsKKyAgcHV0cyAoXygiICAgbSAgIHByaW50IHRoaXMgbWVudSIpKTsKKyAgcHV0cyAoXygiICAgbiAgIGFkZCBhIG5ldyBCU0QgcGFydGl0aW9uIikpOworICBwdXRzIChfKCIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIpKTsKKyAgcHV0cyAoXygiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIpKTsKKyAgcHV0cyAoXygiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiKSk7CisgIHB1dHMgKF8oIiAgIHMgICBzaG93IGNvbXBsZXRlIGRpc2tsYWJlbCIpKTsKKyAgcHV0cyAoXygiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIGZpbGVzeXN0ZW0gaWQiKSk7CisgIHB1dHMgKF8oIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIpKTsKKyAgcHV0cyAoXygiICAgdyAgIHdyaXRlIGRpc2tsYWJlbCB0byBkaXNrIikpOworI2lmICFkZWZpbmVkIChfX2FscGhhX18pCisgIHB1dHMgKF8oIiAgIHggICBsaW5rIEJTRCBwYXJ0aXRpb24gdG8gbm9uLUJTRCBwYXJ0aXRpb24iKSk7CisjZW5kaWYKK30KKworI2lmICFkZWZpbmVkIChfX2FscGhhX18pCitzdGF0aWMgaW50CitoaWRkZW4oaW50IHR5cGUpIHsKKwlyZXR1cm4gdHlwZSBeIDB4MTA7Cit9CisKK3N0YXRpYyBpbnQKK2lzX2JzZF9wYXJ0aXRpb25fdHlwZShpbnQgdHlwZSkgeworCXJldHVybiAodHlwZSA9PSBGUkVFQlNEX1BBUlRJVElPTiB8fAorCQl0eXBlID09IGhpZGRlbihGUkVFQlNEX1BBUlRJVElPTikgfHwKKwkJdHlwZSA9PSBORVRCU0RfUEFSVElUSU9OIHx8CisJCXR5cGUgPT0gaGlkZGVuKE5FVEJTRF9QQVJUSVRJT04pKTsKK30KKyNlbmRpZgorCit2b2lkCitic2VsZWN0ICh2b2lkKSB7CisjaWYgIWRlZmluZWQgKF9fYWxwaGFfXykKKyAgaW50IHQsIHNzOworICBzdHJ1Y3QgcGFydGl0aW9uICpwOworCisgIGZvciAodD0wOyB0PDQ7IHQrKykgeworICAgIHAgPSBnZXRfcGFydF90YWJsZSh0KTsKKyAgICBpZiAocCAmJiBpc19ic2RfcGFydGl0aW9uX3R5cGUocC0+c3lzX2luZCkpIHsKKyAgICAgIHhic2RfcGFydCA9IHA7CisgICAgICB4YnNkX3BhcnRfaW5kZXggPSB0OworICAgICAgc3MgPSBnZXRfc3RhcnRfc2VjdCh4YnNkX3BhcnQpOworICAgICAgaWYgKHNzID09IDApIHsKKwlmcHJpbnRmIChzdGRlcnIsIF8oIlBhcnRpdGlvbiAlcyBoYXMgaW52YWxpZCBzdGFydGluZyBzZWN0b3IgMC5cbiIpLAorCQkgcGFydG5hbWUoZGlza19kZXZpY2UsIHQrMSwgMCkpOworCXJldHVybjsKKyAgICAgIH0KKyAgICAgIHByaW50ZiAoXygiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIiksCisJICAgICAgcGFydG5hbWUoZGlza19kZXZpY2UsIHQrMSwgMCksIHNzICsgQlNEX0xBQkVMU0VDVE9SKTsKKyAgICAgIGlmICh4YnNkX3JlYWRsYWJlbCAoeGJzZF9wYXJ0LCAmeGJzZF9kbGFiZWwpID09IDApCisJaWYgKHhic2RfY3JlYXRlX2Rpc2tsYWJlbCAoKSA9PSAwKQorCSAgcmV0dXJuOworICAgICAgYnJlYWs7CisgICAgfQorICB9CisKKyAgaWYgKHQgPT0gNCkgeworICAgIHByaW50ZiAoXygiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iKSwgZGlza19kZXZpY2UpOworICAgIHJldHVybjsKKyAgfQorCisjZWxpZiBkZWZpbmVkIChfX2FscGhhX18pCisKKyAgaWYgKHhic2RfcmVhZGxhYmVsIChOVUxMLCAmeGJzZF9kbGFiZWwpID09IDApCisgICAgaWYgKHhic2RfY3JlYXRlX2Rpc2tsYWJlbCAoKSA9PSAwKQorICAgICAgZXhpdCAoIEVYSVRfU1VDQ0VTUyApOworCisjZW5kaWYKKworICB3aGlsZSAoMSkgeworICAgIHB1dGNoYXIgKCdcbicpOworICAgIHN3aXRjaCAodG9sb3dlciAocmVhZF9jaGFyIChfKCJCU0QgZGlza2xhYmVsIGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiKSkpKSB7CisgICAgICBjYXNlICdkJzoKKwl4YnNkX2RlbGV0ZV9wYXJ0ICgpOworCWJyZWFrOworICAgICAgY2FzZSAnZSc6CisJeGJzZF9lZGl0X2Rpc2tsYWJlbCAoKTsKKwlicmVhazsKKyAgICAgIGNhc2UgJ2knOgorCXhic2Rfd3JpdGVfYm9vdHN0cmFwICgpOworCWJyZWFrOworICAgICAgY2FzZSAnbCc6CisJeGJzZF9saXN0X3R5cGVzICgpOworCWJyZWFrOworICAgICAgY2FzZSAnbic6CisJeGJzZF9uZXdfcGFydCAoKTsKKwlicmVhazsKKyAgICAgIGNhc2UgJ3AnOgorCXhic2RfcHJpbnRfZGlza2xhYmVsICgwKTsKKwlicmVhazsKKyAgICAgIGNhc2UgJ3EnOgorCWNsb3NlIChmZCk7CisJZXhpdCAoIEVYSVRfU1VDQ0VTUyApOworICAgICAgY2FzZSAncic6CisJcmV0dXJuOworICAgICAgY2FzZSAncyc6CisJeGJzZF9wcmludF9kaXNrbGFiZWwgKDEpOworCWJyZWFrOworICAgICAgY2FzZSAndCc6CisJeGJzZF9jaGFuZ2VfZnN0eXBlICgpOworCWJyZWFrOworICAgICAgY2FzZSAndSc6CisJY2hhbmdlX3VuaXRzKCk7CisJYnJlYWs7CisgICAgICBjYXNlICd3JzoKKwl4YnNkX3dyaXRlX2Rpc2tsYWJlbCAoKTsKKwlicmVhazsKKyNpZiAhZGVmaW5lZCAoX19hbHBoYV9fKQorICAgICAgY2FzZSAneCc6CisJeGJzZF9saW5rX3BhcnQgKCk7CisJYnJlYWs7CisjZW5kaWYKKyAgICAgIGRlZmF1bHQ6CisJYm1lbnUgKCk7CisJYnJlYWs7CisgICAgfQorICB9Cit9CisKK3N0YXRpYyB2b2lkCit4YnNkX2RlbGV0ZV9wYXJ0ICh2b2lkKQoreworICBpbnQgaTsKKworICBpID0geGJzZF9nZXRfcGFydF9pbmRleCAoeGJzZF9kbGFiZWwuZF9ucGFydGl0aW9ucyk7CisgIHhic2RfZGxhYmVsLmRfcGFydGl0aW9uc1tpXS5wX3NpemUgICA9IDA7CisgIHhic2RfZGxhYmVsLmRfcGFydGl0aW9uc1tpXS5wX29mZnNldCA9IDA7CisgIHhic2RfZGxhYmVsLmRfcGFydGl0aW9uc1tpXS5wX2ZzdHlwZSA9IEJTRF9GU19VTlVTRUQ7CisgIGlmICh4YnNkX2RsYWJlbC5kX25wYXJ0aXRpb25zID09IGkgKyAxKQorICAgIHdoaWxlICh4YnNkX2RsYWJlbC5kX3BhcnRpdGlvbnNbeGJzZF9kbGFiZWwuZF9ucGFydGl0aW9ucy0xXS5wX3NpemUgPT0gMCkKKyAgICAgIHhic2RfZGxhYmVsLmRfbnBhcnRpdGlvbnMtLTsKK30KKworc3RhdGljIHZvaWQKK3hic2RfbmV3X3BhcnQgKHZvaWQpCit7CisgIHVuc2lnbmVkIGludCBiZWdpbiwgZW5kOworICBjaGFyIG1lc2dbMjU2XTsKKyAgaW50IGk7CisKKyAgaWYgKCF4YnNkX2NoZWNrX25ld19wYXJ0aXRpb24gKCZpKSkKKyAgICByZXR1cm47CisKKyNpZiAhZGVmaW5lZCAoX19hbHBoYV9fKSAmJiAhZGVmaW5lZCAoX19wb3dlcnBjX18pICYmICFkZWZpbmVkIChfX2hwcGFfXykKKyAgYmVnaW4gPSBnZXRfc3RhcnRfc2VjdCh4YnNkX3BhcnQpOworICBlbmQgPSBiZWdpbiArIGdldF9ucl9zZWN0cyh4YnNkX3BhcnQpIC0gMTsKKyNlbHNlCisgIGJlZ2luID0gMDsKKyAgZW5kID0geGJzZF9kbGFiZWwuZF9zZWNwZXJ1bml0IC0gMTsKKyNlbmRpZgorCisgIHNucHJpbnRmIChtZXNnLCBzaXplb2YobWVzZyksIF8oIkZpcnN0ICVzIiksIHN0cl91bml0cyhTSU5HVUxBUikpOworICBiZWdpbiA9IHJlYWRfaW50IChic2RfY3JvdW5kIChiZWdpbiksIGJzZF9jcm91bmQgKGJlZ2luKSwgYnNkX2Nyb3VuZCAoZW5kKSwKKwkJICAgIDAsIG1lc2cpOworCisgIGlmIChkaXNwbGF5X2luX2N5bF91bml0cykKKyAgICBiZWdpbiA9IChiZWdpbiAtIDEpICogeGJzZF9kbGFiZWwuZF9zZWNwZXJjeWw7CisKKyAgc25wcmludGYgKG1lc2csIHNpemVvZihtZXNnKSwgXygiTGFzdCAlcyBvciArc2l6ZSBvciArc2l6ZU0gb3IgK3NpemVLIiksCisJICAgc3RyX3VuaXRzKFNJTkdVTEFSKSk7CisgIGVuZCA9IHJlYWRfaW50IChic2RfY3JvdW5kIChiZWdpbiksIGJzZF9jcm91bmQgKGVuZCksIGJzZF9jcm91bmQgKGVuZCksCisJCSAgYnNkX2Nyb3VuZCAoYmVnaW4pLCBtZXNnKTsKKworICBpZiAoZGlzcGxheV9pbl9jeWxfdW5pdHMpCisgICAgZW5kID0gZW5kICogeGJzZF9kbGFiZWwuZF9zZWNwZXJjeWwgLSAxOworCisgIHhic2RfZGxhYmVsLmRfcGFydGl0aW9uc1tpXS5wX3NpemUgICA9IGVuZCAtIGJlZ2luICsgMTsKKyAgeGJzZF9kbGFiZWwuZF9wYXJ0aXRpb25zW2ldLnBfb2Zmc2V0ID0gYmVnaW47CisgIHhic2RfZGxhYmVsLmRfcGFydGl0aW9uc1tpXS5wX2ZzdHlwZSA9IEJTRF9GU19VTlVTRUQ7Cit9CisKK3ZvaWQKK3hic2RfcHJpbnRfZGlza2xhYmVsIChpbnQgc2hvd19hbGwpIHsKKyAgc3RydWN0IHhic2RfZGlza2xhYmVsICpscCA9ICZ4YnNkX2RsYWJlbDsKKyAgc3RydWN0IHhic2RfcGFydGl0aW9uICpwcDsKKyAgRklMRSAqZiA9IHN0ZG91dDsKKyAgaW50IGksIGo7CisKKyAgaWYgKHNob3dfYWxsKSB7CisjaWYgZGVmaW5lZCAoX19hbHBoYV9fKQorICAgIGZwcmludGYoZiwgIiMgJXM6XG4iLCBkaXNrX2RldmljZSk7CisjZWxzZQorICAgIGZwcmludGYoZiwgIiMgJXM6XG4iLCBwYXJ0bmFtZShkaXNrX2RldmljZSwgeGJzZF9wYXJ0X2luZGV4KzEsIDApKTsKKyNlbmRpZgorICAgIGlmICgodW5zaWduZWQpIGxwLT5kX3R5cGUgPCBCU0RfREtNQVhUWVBFUykKKyAgICAgIGZwcmludGYoZiwgXygidHlwZTogJXNcbiIpLCB4YnNkX2RrdHlwZW5hbWVzW2xwLT5kX3R5cGVdKTsKKyAgICBlbHNlCisgICAgICBmcHJpbnRmKGYsIF8oInR5cGU6ICVkXG4iKSwgbHAtPmRfdHlwZSk7CisgICAgZnByaW50ZihmLCBfKCJkaXNrOiAlLipzXG4iKSwgKGludCkgc2l6ZW9mKGxwLT5kX3R5cGVuYW1lKSwgbHAtPmRfdHlwZW5hbWUpOworICAgIGZwcmludGYoZiwgXygibGFiZWw6ICUuKnNcbiIpLCAoaW50KSBzaXplb2YobHAtPmRfcGFja25hbWUpLCBscC0+ZF9wYWNrbmFtZSk7CisgICAgZnByaW50ZihmLCBfKCJmbGFnczoiKSk7CisgICAgaWYgKGxwLT5kX2ZsYWdzICYgQlNEX0RfUkVNT1ZBQkxFKQorICAgICAgZnByaW50ZihmLCBfKCIgcmVtb3ZhYmxlIikpOworICAgIGlmIChscC0+ZF9mbGFncyAmIEJTRF9EX0VDQykKKyAgICAgIGZwcmludGYoZiwgXygiIGVjYyIpKTsKKyAgICBpZiAobHAtPmRfZmxhZ3MgJiBCU0RfRF9CQURTRUNUKQorICAgICAgZnByaW50ZihmLCBfKCIgYmFkc2VjdCIpKTsKKyAgICBmcHJpbnRmKGYsICJcbiIpOworICAgIC8qIE9uIHZhcmlvdXMgbWFjaGluZXMgdGhlIGZpZWxkcyBvZiAqbHAgYXJlIHNob3J0L2ludC9sb25nICovCisgICAgLyogSW4gb3JkZXIgdG8gYXZvaWQgcHJvYmxlbXMsIHdlIGNhc3QgdGhlbSBhbGwgdG8gbG9uZy4gKi8KKyAgICBmcHJpbnRmKGYsIF8oImJ5dGVzL3NlY3RvcjogJWxkXG4iKSwgKGxvbmcpIGxwLT5kX3NlY3NpemUpOworICAgIGZwcmludGYoZiwgXygic2VjdG9ycy90cmFjazogJWxkXG4iKSwgKGxvbmcpIGxwLT5kX25zZWN0b3JzKTsKKyAgICBmcHJpbnRmKGYsIF8oInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iKSwgKGxvbmcpIGxwLT5kX250cmFja3MpOworICAgIGZwcmludGYoZiwgXygic2VjdG9ycy9jeWxpbmRlcjogJWxkXG4iKSwgKGxvbmcpIGxwLT5kX3NlY3BlcmN5bCk7CisgICAgZnByaW50ZihmLCBfKCJjeWxpbmRlcnM6ICVsZFxuIiksIChsb25nKSBscC0+ZF9uY3lsaW5kZXJzKTsKKyAgICBmcHJpbnRmKGYsIF8oInJwbTogJWRcbiIpLCBscC0+ZF9ycG0pOworICAgIGZwcmludGYoZiwgXygiaW50ZXJsZWF2ZTogJWRcbiIpLCBscC0+ZF9pbnRlcmxlYXZlKTsKKyAgICBmcHJpbnRmKGYsIF8oInRyYWNrc2tldzogJWRcbiIpLCBscC0+ZF90cmFja3NrZXcpOworICAgIGZwcmludGYoZiwgXygiY3lsaW5kZXJza2V3OiAlZFxuIiksIGxwLT5kX2N5bHNrZXcpOworICAgIGZwcmludGYoZiwgXygiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsbGlzZWNvbmRzXG4iKSwKKwkgICAgKGxvbmcpIGxwLT5kX2hlYWRzd2l0Y2gpOworICAgIGZwcmludGYoZiwgXygidHJhY2stdG8tdHJhY2sgc2VlazogJWxkXHQjIG1pbGxpc2Vjb25kc1xuIiksCisJICAgIChsb25nKSBscC0+ZF90cmtzZWVrKTsKKyAgICBmcHJpbnRmKGYsIF8oImRyaXZlZGF0YTogIikpOworICAgIGZvciAoaSA9IE5EREFUQSAtIDE7IGkgPj0gMDsgaS0tKQorICAgICAgaWYgKGxwLT5kX2RyaXZlZGF0YVtpXSkKKwlicmVhazsKKyAgICBpZiAoaSA8IDApCisgICAgICBpID0gMDsKKyAgICBmb3IgKGogPSAwOyBqIDw9IGk7IGorKykKKyAgICAgIGZwcmludGYoZiwgIiVsZCAiLCAobG9uZykgbHAtPmRfZHJpdmVkYXRhW2pdKTsKKyAgfQorICBmcHJpbnRmIChmLCBfKCJcbiVkIHBhcnRpdGlvbnM6XG4iKSwgbHAtPmRfbnBhcnRpdGlvbnMpOworICBmcHJpbnRmIChmLCBfKCIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIpKTsKKyAgcHAgPSBscC0+ZF9wYXJ0aXRpb25zOworICBmb3IgKGkgPSAwOyBpIDwgbHAtPmRfbnBhcnRpdGlvbnM7IGkrKywgcHArKykgeworICAgIGlmIChwcC0+cF9zaXplKSB7CisgICAgICBpZiAoZGlzcGxheV9pbl9jeWxfdW5pdHMgJiYgbHAtPmRfc2VjcGVyY3lsKSB7CisJZnByaW50ZihmLCAiICAlYzogJThsZCVjICU4bGQlYyAlOGxkJWMgICIsCisJCSdhJyArIGksCisJCShsb25nKSBwcC0+cF9vZmZzZXQgLyBscC0+ZF9zZWNwZXJjeWwgKyAxLAorCQkocHAtPnBfb2Zmc2V0ICUgbHAtPmRfc2VjcGVyY3lsKSA/ICcqJyA6ICcgJywKKwkJKGxvbmcpIChwcC0+cF9vZmZzZXQgKyBwcC0+cF9zaXplICsgbHAtPmRfc2VjcGVyY3lsIC0gMSkKKwkJCS8gbHAtPmRfc2VjcGVyY3lsLAorCQkoKHBwLT5wX29mZnNldCArIHBwLT5wX3NpemUpICUgbHAtPmRfc2VjcGVyY3lsKSA/ICcqJyA6ICcgJywKKwkJKGxvbmcpIHBwLT5wX3NpemUgLyBscC0+ZF9zZWNwZXJjeWwsCisJCShwcC0+cF9zaXplICUgbHAtPmRfc2VjcGVyY3lsKSA/ICcqJyA6ICcgJyk7CisgICAgICB9IGVsc2UgeworCWZwcmludGYoZiwgIiAgJWM6ICU4bGQgICU4bGQgICU4bGQgICAiLAorCQknYScgKyBpLAorCQkobG9uZykgcHAtPnBfb2Zmc2V0LAorCQkobG9uZykgcHAtPnBfb2Zmc2V0ICsgcHAtPnBfc2l6ZSAtIDEsCisJCShsb25nKSBwcC0+cF9zaXplKTsKKyAgICAgIH0KKyAgICAgIGlmICgodW5zaWduZWQpIHBwLT5wX2ZzdHlwZSA8IEJTRF9GU01BWFRZUEVTKQorCWZwcmludGYoZiwgIiU4LjhzIiwgeGJzZF9mc3R5cGVzW3BwLT5wX2ZzdHlwZV0ubmFtZSk7CisgICAgICBlbHNlCisJZnByaW50ZihmLCAiJTh4IiwgcHAtPnBfZnN0eXBlKTsKKyAgICAgIHN3aXRjaCAocHAtPnBfZnN0eXBlKSB7CisJY2FzZSBCU0RfRlNfVU5VU0VEOgorCSAgZnByaW50ZihmLCAiICAgICU1bGQgJTVsZCAlNS41cyAiLAorCQkgIChsb25nKSBwcC0+cF9mc2l6ZSwgKGxvbmcpIHBwLT5wX2ZzaXplICogcHAtPnBfZnJhZywgIiIpOworCSAgYnJlYWs7CisJICAKKwljYXNlIEJTRF9GU19CU0RGRlM6CisJICBmcHJpbnRmKGYsICIgICAgJTVsZCAlNWxkICU1ZCAiLAorCQkgIChsb25nKSBwcC0+cF9mc2l6ZSwgKGxvbmcpIHBwLT5wX2ZzaXplICogcHAtPnBfZnJhZywKKwkJICBwcC0+cF9jcGcpOworCSAgYnJlYWs7CisJICAKKwlkZWZhdWx0OgorCSAgZnByaW50ZihmLCAiJTIyLjIycyIsICIiKTsKKwkgIGJyZWFrOworICAgICAgfQorICAgICAgZnByaW50ZihmLCAiXG4iKTsKKyAgICB9CisgIH0KK30KKworc3RhdGljIHZvaWQKK3hic2Rfd3JpdGVfZGlza2xhYmVsICh2b2lkKSB7CisjaWYgZGVmaW5lZCAoX19hbHBoYV9fKQorCXByaW50ZiAoXygiV3JpdGluZyBkaXNrbGFiZWwgdG8gJXMuXG4iKSwgZGlza19kZXZpY2UpOworCXhic2Rfd3JpdGVsYWJlbCAoTlVMTCwgJnhic2RfZGxhYmVsKTsKKyNlbHNlCisJcHJpbnRmIChfKCJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIpLAorCQlwYXJ0bmFtZShkaXNrX2RldmljZSwgeGJzZF9wYXJ0X2luZGV4KzEsIDApKTsKKwl4YnNkX3dyaXRlbGFiZWwgKHhic2RfcGFydCwgJnhic2RfZGxhYmVsKTsKKyNlbmRpZgorCXJlcmVhZF9wYXJ0aXRpb25fdGFibGUoMCk7CS8qIG5vIGV4aXQgeWV0ICovCit9CisKK3N0YXRpYyBpbnQKK3hic2RfY3JlYXRlX2Rpc2tsYWJlbCAodm9pZCkgeworCWNoYXIgYzsKKworI2lmIGRlZmluZWQgKF9fYWxwaGFfXykKKwlmcHJpbnRmIChzdGRlcnIsIF8oIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIpLCBkaXNrX2RldmljZSk7CisjZWxzZQorCWZwcmludGYgKHN0ZGVyciwgXygiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIiksCisJCSBwYXJ0bmFtZShkaXNrX2RldmljZSwgeGJzZF9wYXJ0X2luZGV4KzEsIDApKTsKKyNlbmRpZgorCisJd2hpbGUgKDEpIHsKKwkJYyA9IHJlYWRfY2hhciAoXygiRG8geW91IHdhbnQgdG8gY3JlYXRlIGEgZGlza2xhYmVsPyAoeS9uKSAiKSk7CisJCWlmICh0b2xvd2VyKGMpID09ICd5JykgeworCQkJaWYgKHhic2RfaW5pdGxhYmVsICgKKyNpZiBkZWZpbmVkIChfX2FscGhhX18pIHx8IGRlZmluZWQgKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkIChfX2hwcGFfXykgfHwgXAorICAgIGRlZmluZWQgKF9fczM5MF9fKSB8fCBkZWZpbmVkIChfX3MzOTB4X18pCisJCQkJTlVMTCwgJnhic2RfZGxhYmVsLCAwCisjZWxzZQorCQkJCXhic2RfcGFydCwgJnhic2RfZGxhYmVsLCB4YnNkX3BhcnRfaW5kZXgKKyNlbmRpZgorCQkJCSkgPT0gMSkgeworCQkJCXhic2RfcHJpbnRfZGlza2xhYmVsICgxKTsKKwkJCQlyZXR1cm4gMTsKKwkJCX0gZWxzZQorCQkJCXJldHVybiAwOworCQl9IGVsc2UgaWYgKGMgPT0gJ24nKQorCQkJcmV0dXJuIDA7CisJfQorfQorCitzdGF0aWMgaW50CitlZGl0X2ludCAoaW50IGRlZiwgY2hhciAqbWVzZykKK3sKKyAgZG8geworICAgIGZwdXRzIChtZXNnLCBzdGRvdXQpOworICAgIHByaW50ZiAoIiAoJWQpOiAiLCBkZWYpOworICAgIGlmICghcmVhZF9saW5lICgpKQorICAgICAgcmV0dXJuIGRlZjsKKyAgfQorICB3aGlsZSAoIWlzZGlnaXQgKCpsaW5lX3B0cikpOworICByZXR1cm4gYXRvaSAobGluZV9wdHIpOworfSAKKworc3RhdGljIHZvaWQKK3hic2RfZWRpdF9kaXNrbGFiZWwgKHZvaWQpCit7CisgIHN0cnVjdCB4YnNkX2Rpc2tsYWJlbCAqZDsKKworICBkID0gJnhic2RfZGxhYmVsOworCisjaWYgZGVmaW5lZCAoX19hbHBoYV9fKSB8fCBkZWZpbmVkIChfX2lhNjRfXykKKyAgZCAtPiBkX3NlY3NpemUgICAgPSAodV9sb25nKSBlZGl0X2ludCAoKHVfbG9uZykgZCAtPiBkX3NlY3NpemUgICAgICxfKCJieXRlcy9zZWN0b3IiKSk7CisgIGQgLT4gZF9uc2VjdG9ycyAgID0gKHVfbG9uZykgZWRpdF9pbnQgKCh1X2xvbmcpIGQgLT4gZF9uc2VjdG9ycyAgICAsXygic2VjdG9ycy90cmFjayIpKTsKKyAgZCAtPiBkX250cmFja3MgICAgPSAodV9sb25nKSBlZGl0X2ludCAoKHVfbG9uZykgZCAtPiBkX250cmFja3MgICAgICxfKCJ0cmFja3MvY3lsaW5kZXIiKSk7CisgIGQgLT4gZF9uY3lsaW5kZXJzID0gKHVfbG9uZykgZWRpdF9pbnQgKCh1X2xvbmcpIGQgLT4gZF9uY3lsaW5kZXJzICAsXygiY3lsaW5kZXJzIikpOworI2VuZGlmCisKKyAgLyogZCAtPiBkX3NlY3BlcmN5bCBjYW4gYmUgIT0gZCAtPiBkX25zZWN0b3JzICogZCAtPiBkX250cmFja3MgKi8KKyAgd2hpbGUgKDEpCisgIHsKKyAgICBkIC0+IGRfc2VjcGVyY3lsID0gKHVfbG9uZykgZWRpdF9pbnQgKCh1X2xvbmcpIGQgLT4gZF9uc2VjdG9ycyAqIGQgLT4gZF9udHJhY2tzLAorCQkJCQkgIF8oInNlY3RvcnMvY3lsaW5kZXIiKSk7CisgICAgaWYgKGQgLT4gZF9zZWNwZXJjeWwgPD0gZCAtPiBkX25zZWN0b3JzICogZCAtPiBkX250cmFja3MpCisgICAgICBicmVhazsKKworICAgIHByaW50ZiAoXygiTXVzdCBiZSA8PSBzZWN0b3JzL3RyYWNrICogdHJhY2tzL2N5bGluZGVyIChkZWZhdWx0KS5cbiIpKTsKKyAgfQorICBkIC0+IGRfcnBtICAgICAgICA9ICh1X3Nob3J0KSBlZGl0X2ludCAoKHVfc2hvcnQpIGQgLT4gZF9ycG0gICAgICAgLF8oInJwbSIpKTsKKyAgZCAtPiBkX2ludGVybGVhdmUgPSAodV9zaG9ydCkgZWRpdF9pbnQgKCh1X3Nob3J0KSBkIC0+IGRfaW50ZXJsZWF2ZSxfKCJpbnRlcmxlYXZlIikpOworICBkIC0+IGRfdHJhY2tza2V3ICA9ICh1X3Nob3J0KSBlZGl0X2ludCAoKHVfc2hvcnQpIGQgLT4gZF90cmFja3NrZXcgLF8oInRyYWNrc2tldyIpKTsKKyAgZCAtPiBkX2N5bHNrZXcgICAgPSAodV9zaG9ydCkgZWRpdF9pbnQgKCh1X3Nob3J0KSBkIC0+IGRfY3lsc2tldyAgICxfKCJjeWxpbmRlcnNrZXciKSk7CisgIGQgLT4gZF9oZWFkc3dpdGNoID0gKHVfbG9uZykgZWRpdF9pbnQgKCh1X2xvbmcpIGQgLT4gZF9oZWFkc3dpdGNoICAsXygiaGVhZHN3aXRjaCIpKTsKKyAgZCAtPiBkX3Rya3NlZWsgICAgPSAodV9sb25nKSBlZGl0X2ludCAoKHVfbG9uZykgZCAtPiBkX3Rya3NlZWsgICAgICxfKCJ0cmFjay10by10cmFjayBzZWVrIikpOworCisgIGQgLT4gZF9zZWNwZXJ1bml0ID0gZCAtPiBkX3NlY3BlcmN5bCAqIGQgLT4gZF9uY3lsaW5kZXJzOworfQorCitzdGF0aWMgaW50Cit4YnNkX2dldF9ib290c3RyYXAgKGNoYXIgKnBhdGgsIHZvaWQgKnB0ciwgaW50IHNpemUpCit7CisgIGludCBmZDsKKworICBpZiAoKGZkID0gb3BlbiAocGF0aCwgT19SRE9OTFkpKSA8IDApCisgIHsKKyAgICBwZXJyb3IgKHBhdGgpOworICAgIHJldHVybiAwOworICB9CisgIGlmIChyZWFkIChmZCwgcHRyLCBzaXplKSA8IDApCisgIHsKKyAgICBwZXJyb3IgKHBhdGgpOworICAgIGNsb3NlIChmZCk7CisgICAgcmV0dXJuIDA7CisgIH0KKyAgcHJpbnRmICgiIC4uLiAlc1xuIiwgcGF0aCk7CisgIGNsb3NlIChmZCk7CisgIHJldHVybiAxOworfQorCitzdGF0aWMgdm9pZAoreGJzZF93cml0ZV9ib290c3RyYXAgKHZvaWQpCit7CisgIGNoYXIgKmJvb3RkaXIgPSBCU0RfTElOVVhfQk9PVERJUjsKKyAgY2hhciBwYXRoW3NpemVvZihCU0RfTElOVVhfQk9PVERJUikgKyAxICsgMiArIDRdOyAgLyogQlNEX0xJTlVYX0JPT1RESVIgKyAvICsge3NkLHdkfSArIGJvb3QgKi8KKyAgY2hhciAqZGtiYXNlbmFtZTsKKyAgc3RydWN0IHhic2RfZGlza2xhYmVsIGRsOworICBjaGFyICpkLCAqcCwgKmU7CisgIGludCBzZWN0b3I7CisKKyAgaWYgKHhic2RfZGxhYmVsLmRfdHlwZSA9PSBCU0RfRFRZUEVfU0NTSSkKKyAgICBka2Jhc2VuYW1lID0gInNkIjsKKyAgZWxzZQorICAgIGRrYmFzZW5hbWUgPSAid2QiOworCisgIHByaW50ZiAoXygiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIpLAorCSAgZGtiYXNlbmFtZSwgZGtiYXNlbmFtZSwgZGtiYXNlbmFtZSk7CisgIGlmIChyZWFkX2xpbmUgKCkpIHsKKyAgICBsaW5lX3B0cltzdHJsZW4gKGxpbmVfcHRyKS0xXSA9ICdcMCc7CisgICAgZGtiYXNlbmFtZSA9IGxpbmVfcHRyOworICB9CisgIHNucHJpbnRmIChwYXRoLCBzaXplb2YocGF0aCksICIlcy8lc2Jvb3QiLCBib290ZGlyLCBka2Jhc2VuYW1lKTsKKyAgaWYgKCF4YnNkX2dldF9ib290c3RyYXAgKHBhdGgsIGRpc2tsYWJlbGJ1ZmZlciwgKGludCkgeGJzZF9kbGFiZWwuZF9zZWNzaXplKSkKKyAgICByZXR1cm47CisKKyAgLyogV2UgbmVlZCBhIGJhY2t1cCBvZiB0aGUgZGlza2xhYmVsICh4YnNkX2RsYWJlbCBtaWdodCBoYXZlIGNoYW5nZWQpLiAqLworICBkID0gJmRpc2tsYWJlbGJ1ZmZlcltCU0RfTEFCRUxTRUNUT1IgKiBTRUNUT1JfU0laRV07CisgIG1lbW1vdmUgKCZkbCwgZCwgc2l6ZW9mIChzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwpKTsKKworICAvKiBUaGUgZGlza2xhYmVsIHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgMCdzIGZyb20gYm9vdHh4IGFueXdheSAqLworICBiemVybyAoZCwgc2l6ZW9mIChzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwpKTsKKworICBzbnByaW50ZiAocGF0aCwgc2l6ZW9mKHBhdGgpLCAiJXMvYm9vdCVzIiwgYm9vdGRpciwgZGtiYXNlbmFtZSk7CisgIGlmICgheGJzZF9nZXRfYm9vdHN0cmFwIChwYXRoLCAmZGlza2xhYmVsYnVmZmVyW3hic2RfZGxhYmVsLmRfc2Vjc2l6ZV0sCisJCQkgIChpbnQpIHhic2RfZGxhYmVsLmRfYmJzaXplIC0geGJzZF9kbGFiZWwuZF9zZWNzaXplKSkKKyAgICByZXR1cm47CisKKyAgZSA9IGQgKyBzaXplb2YgKHN0cnVjdCB4YnNkX2Rpc2tsYWJlbCk7CisgIGZvciAocD1kOyBwIDwgZTsgcCsrKQorICAgIGlmICgqcCkgeworICAgICAgZnByaW50ZiAoc3RkZXJyLCBfKCJCb290c3RyYXAgb3ZlcmxhcHMgd2l0aCBkaXNrIGxhYmVsIVxuIikpOworICAgICAgZXhpdCAoIEVYSVRfRkFJTFVSRSApOworICAgIH0KKworICBtZW1tb3ZlIChkLCAmZGwsIHNpemVvZiAoc3RydWN0IHhic2RfZGlza2xhYmVsKSk7CisKKyNpZiBkZWZpbmVkIChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZCAoX19ocHBhX18pCisgIHNlY3RvciA9IDA7CisjZWxpZiBkZWZpbmVkIChfX2FscGhhX18pCisgIHNlY3RvciA9IDA7CisgIGFscGhhX2Jvb3RibG9ja19jaGVja3N1bSAoZGlza2xhYmVsYnVmZmVyKTsKKyNlbHNlCisgIHNlY3RvciA9IGdldF9zdGFydF9zZWN0KHhic2RfcGFydCk7CisjZW5kaWYKKworICBpZiAobHNlZWsgKGZkLCAob2ZmX3QpIHNlY3RvciAqIFNFQ1RPUl9TSVpFLCBTRUVLX1NFVCkgPT0gLTEpCisgICAgZmF0YWwgKHVuYWJsZV90b19zZWVrKTsKKyAgaWYgKEJTRF9CQlNJWkUgIT0gd3JpdGUgKGZkLCBkaXNrbGFiZWxidWZmZXIsIEJTRF9CQlNJWkUpKQorICAgIGZhdGFsICh1bmFibGVfdG9fd3JpdGUpOworCisjaWYgZGVmaW5lZCAoX19hbHBoYV9fKQorICBwcmludGYgKF8oIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iKSwgZGlza19kZXZpY2UpOworI2Vsc2UKKyAgcHJpbnRmIChfKCJCb290c3RyYXAgaW5zdGFsbGVkIG9uICVzLlxuIiksCisgICAgcGFydG5hbWUgKGRpc2tfZGV2aWNlLCB4YnNkX3BhcnRfaW5kZXgrMSwgMCkpOworI2VuZGlmCisKKyAgc3luY19kaXNrcyAoKTsKK30KKworc3RhdGljIHZvaWQKK3hic2RfY2hhbmdlX2ZzdHlwZSAodm9pZCkKK3sKKyAgaW50IGk7CisKKyAgaSA9IHhic2RfZ2V0X3BhcnRfaW5kZXggKHhic2RfZGxhYmVsLmRfbnBhcnRpdGlvbnMpOworICB4YnNkX2RsYWJlbC5kX3BhcnRpdGlvbnNbaV0ucF9mc3R5cGUgPSByZWFkX2hleCAoeGJzZF9mc3R5cGVzKTsKK30KKworc3RhdGljIGludAoreGJzZF9nZXRfcGFydF9pbmRleCAoaW50IG1heCkKK3sKKyAgY2hhciBwcm9tcHRbMjU2XTsKKyAgY2hhciBsOworCisgIHNucHJpbnRmIChwcm9tcHQsIHNpemVvZihwcm9tcHQpLCBfKCJQYXJ0aXRpb24gKGEtJWMpOiAiKSwgJ2EnICsgbWF4IC0gMSk7CisgIGRvCisgICAgIGwgPSB0b2xvd2VyIChyZWFkX2NoYXIgKHByb21wdCkpOworICB3aGlsZSAobCA8ICdhJyB8fCBsID4gJ2EnICsgbWF4IC0gMSk7CisgIHJldHVybiBsIC0gJ2EnOworfQorCitzdGF0aWMgaW50Cit4YnNkX2NoZWNrX25ld19wYXJ0aXRpb24gKGludCAqaSkgeworCisJLyogcm9vbSBmb3IgbW9yZT8gdmFyaW91cyBCU0QgZmxhdm91cnMgaGF2ZSBkaWZmZXJlbnQgbWF4aW1hICovCisJaWYgKHhic2RfZGxhYmVsLmRfbnBhcnRpdGlvbnMgPT0gQlNEX01BWFBBUlRJVElPTlMpIHsKKwkJaW50IHQ7CisKKwkJZm9yICh0ID0gMDsgdCA8IEJTRF9NQVhQQVJUSVRJT05TOyB0KyspCisJCQlpZiAoeGJzZF9kbGFiZWwuZF9wYXJ0aXRpb25zW3RdLnBfc2l6ZSA9PSAwKQorCQkJCWJyZWFrOworCisJCWlmICh0ID09IEJTRF9NQVhQQVJUSVRJT05TKSB7CisJCQlmcHJpbnRmIChzdGRlcnIsIF8oIlRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJ0aXRpb25zICIKKwkJCQkJICAgImhhcyBiZWVuIGNyZWF0ZWRcbiIpKTsKKwkJCXJldHVybiAwOworCQl9CisJfQorCisJKmkgPSB4YnNkX2dldF9wYXJ0X2luZGV4IChCU0RfTUFYUEFSVElUSU9OUyk7CisKKwlpZiAoKmkgPj0geGJzZF9kbGFiZWwuZF9ucGFydGl0aW9ucykKKwkJeGJzZF9kbGFiZWwuZF9ucGFydGl0aW9ucyA9ICgqaSkgKyAxOworCisJaWYgKHhic2RfZGxhYmVsLmRfcGFydGl0aW9uc1sqaV0ucF9zaXplICE9IDApIHsKKwkJZnByaW50ZiAoc3RkZXJyLCBfKCJUaGlzIHBhcnRpdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiIpKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyB2b2lkCit4YnNkX2xpc3RfdHlwZXMgKHZvaWQpIHsKKwlsaXN0X3R5cGVzICh4YnNkX2ZzdHlwZXMpOworfQorCitzdGF0aWMgdV9zaG9ydAoreGJzZF9ka2Nrc3VtIChzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwgKmxwKSB7CisJdV9zaG9ydCAqc3RhcnQsICplbmQ7CisJdV9zaG9ydCBzdW0gPSAwOworICAKKwlzdGFydCA9ICh1X3Nob3J0ICopIGxwOworCWVuZCA9ICh1X3Nob3J0ICopICZscC0+ZF9wYXJ0aXRpb25zW2xwLT5kX25wYXJ0aXRpb25zXTsKKwl3aGlsZSAoc3RhcnQgPCBlbmQpCisJCXN1bSBePSAqc3RhcnQrKzsKKwlyZXR1cm4gc3VtOworfQorCitzdGF0aWMgaW50Cit4YnNkX2luaXRsYWJlbCAoc3RydWN0IHBhcnRpdGlvbiAqcCwgc3RydWN0IHhic2RfZGlza2xhYmVsICpkLCBpbnQgcGluZGV4KSB7CisJc3RydWN0IHhic2RfcGFydGl0aW9uICpwcDsKKwlzdHJ1Y3QgZ2VvbSBnOworCisJZ2V0X2dlb21ldHJ5IChmZCwgJmcpOworCWJ6ZXJvIChkLCBzaXplb2YgKHN0cnVjdCB4YnNkX2Rpc2tsYWJlbCkpOworCisJZCAtPiBkX21hZ2ljID0gQlNEX0RJU0tNQUdJQzsKKworCWlmIChzdHJuY21wIChkaXNrX2RldmljZSwgIi9kZXYvc2QiLCA3KSA9PSAwKQorCQlkIC0+IGRfdHlwZSA9IEJTRF9EVFlQRV9TQ1NJOworCWVsc2UKKwkJZCAtPiBkX3R5cGUgPSBCU0RfRFRZUEVfU1Q1MDY7CisKKyNpZiAwIC8qIG5vdCB1c2VkIChhdCBsZWFzdCBub3Qgd3JpdHRlbiB0byBkaXNrKSBieSBOZXRCU0QvaTM4NiAxLjAgKi8KKwlkIC0+IGRfc3VidHlwZSA9IEJTRF9EU1RZUEVfSU5ET1NQQVJUICYgcGluZGV4OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZCAoX19hbHBoYV9fKQorCWQgLT4gZF9mbGFncyA9IEJTRF9EX0RPU1BBUlQ7CisjZWxzZQorCWQgLT4gZF9mbGFncyA9IDA7CisjZW5kaWYKKwlkIC0+IGRfc2Vjc2l6ZSA9IFNFQ1RPUl9TSVpFOwkJLyogYnl0ZXMvc2VjdG9yICAqLworCWQgLT4gZF9uc2VjdG9ycyA9IGcuc2VjdG9yczsJCS8qIHNlY3RvcnMvdHJhY2sgKi8KKwlkIC0+IGRfbnRyYWNrcyA9IGcuaGVhZHM7CQkvKiB0cmFja3MvY3lsaW5kZXIgKGhlYWRzKSAqLworCWQgLT4gZF9uY3lsaW5kZXJzID0gZy5jeWxpbmRlcnM7CisJZCAtPiBkX3NlY3BlcmN5bCAgPSBnLnNlY3RvcnMgKiBnLmhlYWRzOy8qIHNlY3RvcnMvY3lsaW5kZXIgKi8KKwlpZiAoZCAtPiBkX3NlY3BlcmN5bCA9PSAwKQorCQlkIC0+IGRfc2VjcGVyY3lsID0gMTsJCS8qIGF2b2lkIHNlZ2ZhdWx0cyAqLworCWQgLT4gZF9zZWNwZXJ1bml0ID0gZCAtPiBkX3NlY3BlcmN5bCAqIGQgLT4gZF9uY3lsaW5kZXJzOworCisJZCAtPiBkX3JwbSA9IDM2MDA7CisJZCAtPiBkX2ludGVybGVhdmUgPSAxOworCWQgLT4gZF90cmFja3NrZXcgPSAwOworCWQgLT4gZF9jeWxza2V3ID0gMDsKKwlkIC0+IGRfaGVhZHN3aXRjaCA9IDA7CisJZCAtPiBkX3Rya3NlZWsgPSAwOworCisJZCAtPiBkX21hZ2ljMiA9IEJTRF9ESVNLTUFHSUM7CisJZCAtPiBkX2Jic2l6ZSA9IEJTRF9CQlNJWkU7CisJZCAtPiBkX3Nic2l6ZSA9IEJTRF9TQlNJWkU7CisKKyNpZiAhZGVmaW5lZCAoX19hbHBoYV9fKQorCWQgLT4gZF9ucGFydGl0aW9ucyA9IDQ7CisJcHAgPSAmZCAtPiBkX3BhcnRpdGlvbnNbMl07CQkvKiBQYXJ0aXRpb24gQyBzaG91bGQgYmUKKwkJCQkJCSAgIHRoZSBOZXRCU0QgcGFydGl0aW9uICovCisJcHAgLT4gcF9vZmZzZXQgPSBnZXRfc3RhcnRfc2VjdChwKTsKKwlwcCAtPiBwX3NpemUgICA9IGdldF9ucl9zZWN0cyhwKTsKKwlwcCAtPiBwX2ZzdHlwZSA9IEJTRF9GU19VTlVTRUQ7CisJcHAgPSAmZCAtPiBkX3BhcnRpdGlvbnNbM107CQkvKiBQYXJ0aXRpb24gRCBzaG91bGQgYmUKKwkJCQkJCSAgIHRoZSB3aG9sZSBkaXNrICovCisJcHAgLT4gcF9vZmZzZXQgPSAwOworCXBwIC0+IHBfc2l6ZSAgID0gZCAtPiBkX3NlY3BlcnVuaXQ7CisJcHAgLT4gcF9mc3R5cGUgPSBCU0RfRlNfVU5VU0VEOworI2VsaWYgZGVmaW5lZCAoX19hbHBoYV9fKQorCWQgLT4gZF9ucGFydGl0aW9ucyA9IDM7CisJcHAgPSAmZCAtPiBkX3BhcnRpdGlvbnNbMl07CQkvKiBQYXJ0aXRpb24gQyBzaG91bGQgYmUKKwkJCQkJCSAgIHRoZSB3aG9sZSBkaXNrICovCisJcHAgLT4gcF9vZmZzZXQgPSAwOworCXBwIC0+IHBfc2l6ZSAgID0gZCAtPiBkX3NlY3BlcnVuaXQ7CisJcHAgLT4gcF9mc3R5cGUgPSBCU0RfRlNfVU5VU0VEOyAgCisjZW5kaWYKKworCXJldHVybiAxOworfQorCisvKgorICogUmVhZCBhIHhic2RfZGlza2xhYmVsIGZyb20gc2VjdG9yIDAgb3IgZnJvbSB0aGUgc3RhcnRpbmcgc2VjdG9yIG9mIHAuCisgKiBJZiBpdCBoYXMgdGhlIHJpZ2h0IG1hZ2ljLCByZXR1cm4gMS4KKyAqLworc3RhdGljIGludAoreGJzZF9yZWFkbGFiZWwgKHN0cnVjdCBwYXJ0aXRpb24gKnAsIHN0cnVjdCB4YnNkX2Rpc2tsYWJlbCAqZCkKK3sKKwlpbnQgdCwgc2VjdG9yOworCisJLyogcCBpcyB1c2VkIG9ubHkgdG8gZ2V0IHRoZSBzdGFydGluZyBzZWN0b3IgKi8KKyNpZiAhZGVmaW5lZCAoX19hbHBoYV9fKQorCXNlY3RvciA9IChwID8gZ2V0X3N0YXJ0X3NlY3QocCkgOiAwKTsKKyNlbGlmIGRlZmluZWQgKF9fYWxwaGFfXykKKwlzZWN0b3IgPSAwOworI2VuZGlmCisKKwlpZiAobHNlZWsgKGZkLCAob2ZmX3QpIHNlY3RvciAqIFNFQ1RPUl9TSVpFLCBTRUVLX1NFVCkgPT0gLTEpCisJCWZhdGFsICh1bmFibGVfdG9fc2Vlayk7CisJaWYgKEJTRF9CQlNJWkUgIT0gcmVhZCAoZmQsIGRpc2tsYWJlbGJ1ZmZlciwgQlNEX0JCU0laRSkpCisJCWZhdGFsICh1bmFibGVfdG9fcmVhZCk7CisKKwltZW1tb3ZlIChkLAorCSAgICAgICAgICZkaXNrbGFiZWxidWZmZXJbQlNEX0xBQkVMU0VDVE9SICogU0VDVE9SX1NJWkUgKyBCU0RfTEFCRUxPRkZTRVRdLAorCSAgICAgICAgIHNpemVvZiAoc3RydWN0IHhic2RfZGlza2xhYmVsKSk7CisKKwlpZiAoZCAtPiBkX21hZ2ljICE9IEJTRF9ESVNLTUFHSUMgfHwgZCAtPiBkX21hZ2ljMiAhPSBCU0RfRElTS01BR0lDKQorCQlyZXR1cm4gMDsKKworCWZvciAodCA9IGQgLT4gZF9ucGFydGl0aW9uczsgdCA8IEJTRF9NQVhQQVJUSVRJT05TOyB0KyspIHsKKwkJZCAtPiBkX3BhcnRpdGlvbnNbdF0ucF9zaXplICAgPSAwOworCQlkIC0+IGRfcGFydGl0aW9uc1t0XS5wX29mZnNldCA9IDA7CisJCWQgLT4gZF9wYXJ0aXRpb25zW3RdLnBfZnN0eXBlID0gQlNEX0ZTX1VOVVNFRDsgIAorCX0KKworCWlmIChkIC0+IGRfbnBhcnRpdGlvbnMgPiBCU0RfTUFYUEFSVElUSU9OUykKKwkJZnByaW50ZiAoc3RkZXJyLCBfKCJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICIKKwkJCQkgICAiKCVkLCBtYXhpbXVtIGlzICVkKS5cbiIpLAorCQkJIGQgLT4gZF9ucGFydGl0aW9ucywgQlNEX01BWFBBUlRJVElPTlMpOworCXJldHVybiAxOworfQorCitzdGF0aWMgaW50Cit4YnNkX3dyaXRlbGFiZWwgKHN0cnVjdCBwYXJ0aXRpb24gKnAsIHN0cnVjdCB4YnNkX2Rpc2tsYWJlbCAqZCkKK3sKKyAgdW5zaWduZWQgaW50IHNlY3RvcjsKKworI2lmICFkZWZpbmVkIChfX2FscGhhX18pICYmICFkZWZpbmVkIChfX3Bvd2VycGNfXykgJiYgIWRlZmluZWQgKF9faHBwYV9fKQorICBzZWN0b3IgPSBnZXRfc3RhcnRfc2VjdChwKSArIEJTRF9MQUJFTFNFQ1RPUjsKKyNlbHNlCisgIHNlY3RvciA9IEJTRF9MQUJFTFNFQ1RPUjsKKyNlbmRpZgorCisgIGQgLT4gZF9jaGVja3N1bSA9IDA7CisgIGQgLT4gZF9jaGVja3N1bSA9IHhic2RfZGtja3N1bSAoZCk7CisKKyAgLyogVGhpcyBpcyBuZWNlc3NhcnkgaWYgd2Ugd2FudCB0byB3cml0ZSB0aGUgYm9vdHN0cmFwIGxhdGVyLAorICAgICBvdGhlcndpc2Ugd2UnZCB3cml0ZSB0aGUgb2xkIGRpc2tsYWJlbCB3aXRoIHRoZSBib290c3RyYXAuCisgICovCisgIG1lbW1vdmUgKCZkaXNrbGFiZWxidWZmZXJbQlNEX0xBQkVMU0VDVE9SICogU0VDVE9SX1NJWkUgKyBCU0RfTEFCRUxPRkZTRVRdLCBkLAorICAgICAgICAgICBzaXplb2YgKHN0cnVjdCB4YnNkX2Rpc2tsYWJlbCkpOworCisjaWYgZGVmaW5lZCAoX19hbHBoYV9fKSAmJiBCU0RfTEFCRUxTRUNUT1IgPT0gMAorICBhbHBoYV9ib290YmxvY2tfY2hlY2tzdW0gKGRpc2tsYWJlbGJ1ZmZlcik7CisgIGlmIChsc2VlayAoZmQsIChvZmZfdCkgMCwgU0VFS19TRVQpID09IC0xKQorICAgIGZhdGFsICh1bmFibGVfdG9fc2Vlayk7CisgIGlmIChCU0RfQkJTSVpFICE9IHdyaXRlIChmZCwgZGlza2xhYmVsYnVmZmVyLCBCU0RfQkJTSVpFKSkKKyAgICBmYXRhbCAodW5hYmxlX3RvX3dyaXRlKTsKKyNlbHNlCisgIGlmIChsc2VlayAoZmQsIChvZmZfdCkgc2VjdG9yICogU0VDVE9SX1NJWkUgKyBCU0RfTEFCRUxPRkZTRVQsCisJCSAgIFNFRUtfU0VUKSA9PSAtMSkKKyAgICBmYXRhbCAodW5hYmxlX3RvX3NlZWspOworICBpZiAoc2l6ZW9mIChzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwpICE9IHdyaXRlIChmZCwgZCwgc2l6ZW9mIChzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwpKSkKKyAgICBmYXRhbCAodW5hYmxlX3RvX3dyaXRlKTsKKyNlbmRpZgorCisgIHN5bmNfZGlza3MgKCk7CisKKyAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyB2b2lkCitzeW5jX2Rpc2tzICh2b2lkKQoreworICBwcmludGYgKF8oIlxuU3luY2luZyBkaXNrcy5cbiIpKTsKKyAgc3luYyAoKTsKKyAgc2xlZXAgKDQpOworfQorCisjaWYgIWRlZmluZWQgKF9fYWxwaGFfXykKK3N0YXRpYyBpbnQKK3hic2RfdHJhbnNsYXRlX2ZzdHlwZSAoaW50IGxpbnV4X3R5cGUpCit7CisgIHN3aXRjaCAobGludXhfdHlwZSkKKyAgeworICAgIGNhc2UgMHgwMTogLyogRE9TIDEyLWJpdCBGQVQgICAqLworICAgIGNhc2UgMHgwNDogLyogRE9TIDE2LWJpdCA8MzJNICAqLworICAgIGNhc2UgMHgwNjogLyogRE9TIDE2LWJpdCA+PTMyTSAqLworICAgIGNhc2UgMHhlMTogLyogRE9TIGFjY2VzcyAgICAgICAqLworICAgIGNhc2UgMHhlMzogLyogRE9TIFIvTyAgICAgICAgICAqLworICAgIGNhc2UgMHhmMjogLyogRE9TIHNlY29uZGFyeSAgICAqLworICAgICAgcmV0dXJuIEJTRF9GU19NU0RPUzsKKyAgICBjYXNlIDB4MDc6IC8qIE9TLzIgSFBGUyAgICAgICAgKi8KKyAgICAgIHJldHVybiBCU0RfRlNfSFBGUzsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIEJTRF9GU19PVEhFUjsKKyAgfQorfQorCitzdGF0aWMgdm9pZAoreGJzZF9saW5rX3BhcnQgKHZvaWQpCit7CisgIGludCBrLCBpOworICBzdHJ1Y3QgcGFydGl0aW9uICpwOworCisgIGsgPSBnZXRfcGFydGl0aW9uICgxLCBwYXJ0aXRpb25zKTsKKworICBpZiAoIXhic2RfY2hlY2tfbmV3X3BhcnRpdGlvbiAoJmkpKQorICAgIHJldHVybjsKKworICBwID0gZ2V0X3BhcnRfdGFibGUoayk7CisKKyAgeGJzZF9kbGFiZWwuZF9wYXJ0aXRpb25zW2ldLnBfc2l6ZSAgID0gZ2V0X25yX3NlY3RzKHApOworICB4YnNkX2RsYWJlbC5kX3BhcnRpdGlvbnNbaV0ucF9vZmZzZXQgPSBnZXRfc3RhcnRfc2VjdChwKTsKKyAgeGJzZF9kbGFiZWwuZF9wYXJ0aXRpb25zW2ldLnBfZnN0eXBlID0geGJzZF90cmFuc2xhdGVfZnN0eXBlKHAtPnN5c19pbmQpOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkIChfX2FscGhhX18pCisKKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1X2ludDY0X3Q7CisjZW5kaWYKKwordm9pZAorYWxwaGFfYm9vdGJsb2NrX2NoZWNrc3VtIChjaGFyICpib290KQoreworICB1X2ludDY0X3QgKmRwLCBzdW07CisgIGludCBpOworICAKKyAgZHAgPSAodV9pbnQ2NF90ICopYm9vdDsKKyAgc3VtID0gMDsKKyAgZm9yIChpID0gMDsgaSA8IDYzOyBpKyspCisgICAgc3VtICs9IGRwW2ldOworICBkcFs2M10gPSBzdW07Cit9CisjZW5kaWYgLyogX19hbHBoYV9fICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza2JzZGxhYmVsLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza2JzZGxhYmVsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY5ZTA5MQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrYnNkbGFiZWwuaApAQCAtMCwwICsxLDI0MSBAQAorI2lmbmRlZiBGRElTS19CU0RfTEFCRUxfSAorI2RlZmluZSBGRElTS19CU0RfTEFCRUxfSAorCisvKgorICogQ29weXJpZ2h0IChjKSAxOTg3LCAxOTg4IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKyAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKyAqCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpZm5kZWYgQlNEX0RJU0tNQUdJQworI2RlZmluZSBCU0RfRElTS01BR0lDICAgICAoKHVpbnQzMl90KSAweDgyNTY0NTU3KQorI2VuZGlmCisKKyNpZm5kZWYgQlNEX01BWFBBUlRJVElPTlMKKyNkZWZpbmUJQlNEX01BWFBBUlRJVElPTlMgMTYKKyNlbmRpZgorCisjZGVmaW5lIEJTRF9MSU5VWF9CT09URElSICIvdXNyL3VjYi9tZGVjIgorCisjaWYgZGVmaW5lZCAoaTM4NikgfHwgZGVmaW5lZCAoX19zcGFyY19fKSB8fCBkZWZpbmVkIChfX2FybV9fKSB8fCBcCisgICAgZGVmaW5lZCAoX19taXBzX18pIHx8IGRlZmluZWQgKF9fczM5MF9fKSB8fCBkZWZpbmVkIChfX3NoX18pIHx8IFwKKyAgICBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQgKF9fYXZyMzJfXykgfHwgZGVmaW5lZChfX2NyaXNfXykKKyNkZWZpbmUgQlNEX0xBQkVMU0VDVE9SICAgMQorI2RlZmluZSBCU0RfTEFCRUxPRkZTRVQgICAwCisjZWxpZiBkZWZpbmVkIChfX2FscGhhX18pIHx8IGRlZmluZWQgKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkIChfX2lhNjRfXykgfHwgZGVmaW5lZCAoX19ocHBhX18pCisjZGVmaW5lIEJTRF9MQUJFTFNFQ1RPUiAgIDAKKyNkZWZpbmUgQlNEX0xBQkVMT0ZGU0VUICAgNjQKKyNlbGlmIGRlZmluZWQgKF9fczM5MF9fKSB8fCBkZWZpbmVkIChfX3MzOTB4X18pCisjZGVmaW5lIEJTRF9MQUJFTFNFQ1RPUiAgIDEKKyNkZWZpbmUgQlNEX0xBQkVMT0ZGU0VUICAgMAorI2Vsc2UKKyNlcnJvciB1bmtub3duIGFyY2hpdGVjdHVyZQorI2VuZGlmCisKKyNkZWZpbmUJQlNEX0JCU0laRSAgICAgICAgODE5MgkJLyogc2l6ZSBvZiBib290IGFyZWEsIHdpdGggbGFiZWwgKi8KKyNkZWZpbmUJQlNEX1NCU0laRSAgICAgICAgODE5MgkJLyogbWF4IHNpemUgb2YgZnMgc3VwZXJibG9jayAqLworCitzdHJ1Y3QgeGJzZF9kaXNrbGFiZWwgeworCXVpbnQzMl90CWRfbWFnaWM7CQkvKiB0aGUgbWFnaWMgbnVtYmVyICovCisJaW50MTZfdAlkX3R5cGU7CQkJLyogZHJpdmUgdHlwZSAqLworCWludDE2X3QJZF9zdWJ0eXBlOwkJLyogY29udHJvbGxlci9kX3R5cGUgc3BlY2lmaWMgKi8KKwljaGFyCWRfdHlwZW5hbWVbMTZdOwkJLyogdHlwZSBuYW1lLCBlLmcuICJlYWdsZSIgKi8KKwljaGFyCWRfcGFja25hbWVbMTZdOwkJCS8qIHBhY2sgaWRlbnRpZmllciAqLyAKKwkJCS8qIGRpc2sgZ2VvbWV0cnk6ICovCisJdWludDMyX3QJZF9zZWNzaXplOwkJLyogIyBvZiBieXRlcyBwZXIgc2VjdG9yICovCisJdWludDMyX3QJZF9uc2VjdG9yczsJCS8qICMgb2YgZGF0YSBzZWN0b3JzIHBlciB0cmFjayAqLworCXVpbnQzMl90CWRfbnRyYWNrczsJCS8qICMgb2YgdHJhY2tzIHBlciBjeWxpbmRlciAqLworCXVpbnQzMl90CWRfbmN5bGluZGVyczsJCS8qICMgb2YgZGF0YSBjeWxpbmRlcnMgcGVyIHVuaXQgKi8KKwl1aW50MzJfdAlkX3NlY3BlcmN5bDsJCS8qICMgb2YgZGF0YSBzZWN0b3JzIHBlciBjeWxpbmRlciAqLworCXVpbnQzMl90CWRfc2VjcGVydW5pdDsJCS8qICMgb2YgZGF0YSBzZWN0b3JzIHBlciB1bml0ICovCisJLyoKKwkgKiBTcGFyZXMgKGJhZCBzZWN0b3IgcmVwbGFjZW1lbnRzKSBiZWxvdworCSAqIGFyZSBub3QgY291bnRlZCBpbiBkX25zZWN0b3JzIG9yIGRfc2VjcGVyY3lsLgorCSAqIFNwYXJlIHNlY3RvcnMgYXJlIGFzc3VtZWQgdG8gYmUgcGh5c2ljYWwgc2VjdG9ycworCSAqIHdoaWNoIG9jY3VweSBzcGFjZSBhdCB0aGUgZW5kIG9mIGVhY2ggdHJhY2sgYW5kL29yIGN5bGluZGVyLgorCSAqLworCXVpbnQxNl90CWRfc3BhcmVzcGVydHJhY2s7CS8qICMgb2Ygc3BhcmUgc2VjdG9ycyBwZXIgdHJhY2sgKi8KKwl1aW50MTZfdAlkX3NwYXJlc3BlcmN5bDsJCS8qICMgb2Ygc3BhcmUgc2VjdG9ycyBwZXIgY3lsaW5kZXIgKi8KKwkvKgorCSAqIEFsdGVybmF0ZSBjeWxpbmRlcnMgaW5jbHVkZSBtYWludGVuYW5jZSwgcmVwbGFjZW1lbnQsCisJICogY29uZmlndXJhdGlvbiBkZXNjcmlwdGlvbiBhcmVhcywgZXRjLgorCSAqLworCXVpbnQzMl90CWRfYWN5bGluZGVyczsJCS8qICMgb2YgYWx0LiBjeWxpbmRlcnMgcGVyIHVuaXQgKi8KKworCQkJLyogaGFyZHdhcmUgY2hhcmFjdGVyaXN0aWNzOiAqLworCS8qCisJICogZF9pbnRlcmxlYXZlLCBkX3RyYWNrc2tldyBhbmQgZF9jeWxza2V3IGRlc2NyaWJlIHBlcnR1cmJhdGlvbnMKKwkgKiBpbiB0aGUgbWVkaWEgZm9ybWF0IHVzZWQgdG8gY29tcGVuc2F0ZSBmb3IgYSBzbG93IGNvbnRyb2xsZXIuCisJICogSW50ZXJsZWF2ZSBpcyBwaHlzaWNhbCBzZWN0b3IgaW50ZXJsZWF2ZSwgc2V0IHVwIGJ5IHRoZSBmb3JtYXR0ZXIKKwkgKiBvciBjb250cm9sbGVyIHdoZW4gZm9ybWF0dGluZy4gIFdoZW4gaW50ZXJsZWF2aW5nIGlzIGluIHVzZSwKKwkgKiBsb2dpY2FsbHkgYWRqYWNlbnQgc2VjdG9ycyBhcmUgbm90IHBoeXNpY2FsbHkgY29udGlndW91cywKKwkgKiBidXQgaW5zdGVhZCBhcmUgc2VwYXJhdGVkIGJ5IHNvbWUgbnVtYmVyIG9mIHNlY3RvcnMuCisJICogSXQgaXMgc3BlY2lmaWVkIGFzIHRoZSByYXRpbyBvZiBwaHlzaWNhbCBzZWN0b3JzIHRyYXZlcnNlZAorCSAqIHBlciBsb2dpY2FsIHNlY3Rvci4gIFRodXMgYW4gaW50ZXJsZWF2ZSBvZiAxOjEgaW1wbGllcyBjb250aWd1b3VzCisJICogbGF5b3V0LCB3aGlsZSAyOjEgaW1wbGllcyB0aGF0IGxvZ2ljYWwgc2VjdG9yIDAgaXMgc2VwYXJhdGVkCisJICogYnkgb25lIHNlY3RvciBmcm9tIGxvZ2ljYWwgc2VjdG9yIDEuCisJICogZF90cmFja3NrZXcgaXMgdGhlIG9mZnNldCBvZiBzZWN0b3IgMCBvbiB0cmFjayBOCisJICogcmVsYXRpdmUgdG8gc2VjdG9yIDAgb24gdHJhY2sgTi0xIG9uIHRoZSBzYW1lIGN5bGluZGVyLgorCSAqIEZpbmFsbHksIGRfY3lsc2tldyBpcyB0aGUgb2Zmc2V0IG9mIHNlY3RvciAwIG9uIGN5bGluZGVyIE4KKwkgKiByZWxhdGl2ZSB0byBzZWN0b3IgMCBvbiBjeWxpbmRlciBOLTEuCisJICovCisJdWludDE2X3QJZF9ycG07CQkJLyogcm90YXRpb25hbCBzcGVlZCAqLworCXVpbnQxNl90CWRfaW50ZXJsZWF2ZTsJCS8qIGhhcmR3YXJlIHNlY3RvciBpbnRlcmxlYXZlICovCisJdWludDE2X3QJZF90cmFja3NrZXc7CQkvKiBzZWN0b3IgMCBza2V3LCBwZXIgdHJhY2sgKi8KKwl1aW50MTZfdAlkX2N5bHNrZXc7CQkvKiBzZWN0b3IgMCBza2V3LCBwZXIgY3lsaW5kZXIgKi8KKwl1aW50MzJfdAlkX2hlYWRzd2l0Y2g7CQkvKiBoZWFkIHN3aXRjaCB0aW1lLCB1c2VjICovCisJdWludDMyX3QJZF90cmtzZWVrOwkJLyogdHJhY2stdG8tdHJhY2sgc2VlaywgdXNlYyAqLworCXVpbnQzMl90CWRfZmxhZ3M7CQkvKiBnZW5lcmljIGZsYWdzICovCisjZGVmaW5lIE5EREFUQSA1CisJdWludDMyX3QJZF9kcml2ZWRhdGFbTkREQVRBXTsJLyogZHJpdmUtdHlwZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiAqLworI2RlZmluZSBOU1BBUkUgNQorCXVpbnQzMl90CWRfc3BhcmVbTlNQQVJFXTsJLyogcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KKwl1aW50MzJfdAlkX21hZ2ljMjsJCS8qIHRoZSBtYWdpYyBudW1iZXIgKGFnYWluKSAqLworCXVpbnQxNl90CWRfY2hlY2tzdW07CQkvKiB4b3Igb2YgZGF0YSBpbmNsLiBwYXJ0aXRpb25zICovCisJCQkvKiBmaWxlc3lzdGVtIGFuZCBwYXJ0aXRpb24gaW5mb3JtYXRpb246ICovCisJdWludDE2X3QJZF9ucGFydGl0aW9uczsJICAgICAgICAvKiBudW1iZXIgb2YgcGFydGl0aW9ucyBpbiBmb2xsb3dpbmcgKi8KKwl1aW50MzJfdAlkX2Jic2l6ZTsJICAgICAgICAvKiBzaXplIG9mIGJvb3QgYXJlYSBhdCBzbjAsIGJ5dGVzICovCisJdWludDMyX3QJZF9zYnNpemU7CSAgICAgICAgLyogbWF4IHNpemUgb2YgZnMgc3VwZXJibG9jaywgYnl0ZXMgKi8KKwlzdHJ1Y3QgeGJzZF9wYXJ0aXRpb24JIHsJLyogdGhlIHBhcnRpdGlvbiB0YWJsZSAqLworCQl1aW50MzJfdAlwX3NpemU7CSAgICAgICAgLyogbnVtYmVyIG9mIHNlY3RvcnMgaW4gcGFydGl0aW9uICovCisJCXVpbnQzMl90CXBfb2Zmc2V0OyAgICAgICAvKiBzdGFydGluZyBzZWN0b3IgKi8KKwkJdWludDMyX3QJcF9mc2l6ZTsgICAgICAgIC8qIGZpbGVzeXN0ZW0gYmFzaWMgZnJhZ21lbnQgc2l6ZSAqLworCQl1aW50OF90CXBfZnN0eXBlOyAgICAgICAvKiBmaWxlc3lzdGVtIHR5cGUsIHNlZSBiZWxvdyAqLworCQl1aW50OF90CXBfZnJhZzsJICAgICAgICAvKiBmaWxlc3lzdGVtIGZyYWdtZW50cyBwZXIgYmxvY2sgKi8KKwkJdWludDE2X3QJcF9jcGc7CSAgICAgICAgLyogZmlsZXN5c3RlbSBjeWxpbmRlcnMgcGVyIGdyb3VwICovCisJfSBkX3BhcnRpdGlvbnNbQlNEX01BWFBBUlRJVElPTlNdOyAvKiBhY3R1YWxseSBtYXkgYmUgbW9yZSAqLworfTsKKworLyogZF90eXBlIHZhbHVlczogKi8KKyNkZWZpbmUJQlNEX0RUWVBFX1NNRAkJMQkJLyogU01ELCBYU01EOyBWQVggaHAvdXAgKi8KKyNkZWZpbmUJQlNEX0RUWVBFX01TQ1AJCTIJCS8qIE1TQ1AgKi8KKyNkZWZpbmUJQlNEX0RUWVBFX0RFQwkJMwkJLyogb3RoZXIgREVDIChyaywgcmwpICovCisjZGVmaW5lCUJTRF9EVFlQRV9TQ1NJCQk0CQkvKiBTQ1NJICovCisjZGVmaW5lCUJTRF9EVFlQRV9FU0RJCQk1CQkvKiBFU0RJIGludGVyZmFjZSAqLworI2RlZmluZQlCU0RfRFRZUEVfU1Q1MDYJCTYJCS8qIFNUNTA2IGV0Yy4gKi8KKyNkZWZpbmUJQlNEX0RUWVBFX0hQSUIJCTcJCS8qIENTLzgwIG9uIEhQLUlCICovCisjZGVmaW5lIEJTRF9EVFlQRV9IUEZMCQk4CQkvKiBIUCBGaWJlci1saW5rICovCisjZGVmaW5lCUJTRF9EVFlQRV9GTE9QUFkJMTAJCS8qIGZsb3BweSAqLworCisvKiBkX3N1YnR5cGUgdmFsdWVzOiAqLworI2RlZmluZSBCU0RfRFNUWVBFX0lORE9TUEFSVAkweDgJCS8qIGlzIGluc2lkZSBkb3MgcGFydGl0aW9uICovCisjZGVmaW5lIEJTRF9EU1RZUEVfRE9TUEFSVChzKQkoKHMpICYgMykJLyogZG9zIHBhcnRpdGlvbiBudW1iZXIgKi8KKyNkZWZpbmUgQlNEX0RTVFlQRV9HRU9NRVRSWQkweDEwCQkvKiBkcml2ZSBwYXJhbXMgaW4gbGFiZWwgKi8KKworI2lmZGVmIERLVFlQRU5BTUVTCitzdGF0aWMgY2hhciAqeGJzZF9ka3R5cGVuYW1lc1tdID0geworCSJ1bmtub3duIiwKKwkiU01EIiwKKwkiTVNDUCIsCisJIm9sZCBERUMiLAorCSJTQ1NJIiwKKwkiRVNESSIsCisJIlNUNTA2IiwKKwkiSFAtSUIiLAorCSJIUC1GTCIsCisJInR5cGUgOSIsCisJImZsb3BweSIsCisJMAorfTsKKyNkZWZpbmUgQlNEX0RLTUFYVFlQRVMJKHNpemVvZih4YnNkX2RrdHlwZW5hbWVzKSAvIHNpemVvZih4YnNkX2RrdHlwZW5hbWVzWzBdKSAtIDEpCisjZW5kaWYKKworLyoKKyAqIEZpbGVzeXN0ZW0gdHlwZSBhbmQgdmVyc2lvbi4KKyAqIFVzZWQgdG8gaW50ZXJwcmV0IG90aGVyIGZpbGVzeXN0ZW0tc3BlY2lmaWMKKyAqIHBlci1wYXJ0aXRpb24gaW5mb3JtYXRpb24uCisgKi8KKyNkZWZpbmUJQlNEX0ZTX1VOVVNFRAkwCQkvKiB1bnVzZWQgKi8KKyNkZWZpbmUJQlNEX0ZTX1NXQVAgICAgCTEJCS8qIHN3YXAgKi8KKyNkZWZpbmUJQlNEX0ZTX1Y2ICAgICAgCTIJCS8qIFNpeHRoIEVkaXRpb24gKi8KKyNkZWZpbmUJQlNEX0ZTX1Y3ICAgICAgCTMJCS8qIFNldmVudGggRWRpdGlvbiAqLworI2RlZmluZQlCU0RfRlNfU1lTViAgICAJNAkJLyogU3lzdGVtIFYgKi8KKyNkZWZpbmUJQlNEX0ZTX1Y3MUsgICAgCTUJCS8qIFY3IHdpdGggMUsgYmxvY2tzICg0LjEsIDIuOSkgKi8KKyNkZWZpbmUJQlNEX0ZTX1Y4ICAgICAgCTYJCS8qIEVpZ2h0aCBFZGl0aW9uLCA0SyBibG9ja3MgKi8KKyNkZWZpbmUJQlNEX0ZTX0JTREZGUwk3CQkvKiA0LjJCU0QgZmFzdCBmaWxlIHN5c3RlbSAqLworI2RlZmluZQlCU0RfRlNfQlNETEZTCTkJCS8qIDQuNEJTRCBsb2ctc3RydWN0dXJlZCBmaWxlIHN5c3RlbSAqLworI2RlZmluZQlCU0RfRlNfT1RIRVIJMTAJCS8qIGluIHVzZSwgYnV0IHVua25vd24vdW5zdXBwb3J0ZWQgKi8KKyNkZWZpbmUJQlNEX0ZTX0hQRlMJMTEJCS8qIE9TLzIgaGlnaC1wZXJmb3JtYW5jZSBmaWxlIHN5c3RlbSAqLworI2RlZmluZQlCU0RfRlNfSVNPOTY2MAkxMgkJLyogSVNPLTk2NjAgZmlsZXN5c3RlbSAoY2Ryb20pICovCisjZGVmaW5lIEJTRF9GU19JU09GUwlCU0RfRlNfSVNPOTY2MAorI2RlZmluZQlCU0RfRlNfQk9PVAkxMwkJLyogcGFydGl0aW9uIGNvbnRhaW5zIGJvb3RzdHJhcCAqLworI2RlZmluZSBCU0RfRlNfQURPUwkxNAkJLyogQW1pZ2FET1MgZmFzdCBmaWxlIHN5c3RlbSAqLworI2RlZmluZSBCU0RfRlNfSEZTCTE1CQkvKiBNYWNpbnRvc2ggSEZTICovCisjZGVmaW5lIEJTRF9GU19BRFZGUwkxNgkJLyogRGlnaXRhbCBVbml4IEFkdkZTICovCisKKy8qIHRoaXMgaXMgYW5ub3lpbmcsIGJ1dCBpdCdzIGFsc28gdGhlIHdheSBpdCBpcyA6LSggKi8KKyNpZmRlZiBfX2FscGhhX18KKyNkZWZpbmUJQlNEX0ZTX0VYVDIJOAkJLyogZXh0MiBmaWxlIHN5c3RlbSAqLworI2Vsc2UKKyNkZWZpbmUJQlNEX0ZTX01TRE9TCTgJCS8qIE1TLURPUyBmaWxlIHN5c3RlbSAqLworI2VuZGlmCisKKyNpZmRlZglES1RZUEVOQU1FUworc3RhdGljIHN0cnVjdCBzeXN0eXBlcyB4YnNkX2ZzdHlwZXNbXSA9IHsKKyAgICAgICAge0JTRF9GU19VTlVTRUQsICJ1bnVzZWQifSwKKwl7QlNEX0ZTX1NXQVAsICAgInN3YXAifSwKKwl7QlNEX0ZTX1Y2LCAgICAgIlZlcnNpb24gNiJ9LAorCXtCU0RfRlNfVjcsICAgICAiVmVyc2lvbiA3In0sCisJe0JTRF9GU19TWVNWLCAgICJTeXN0ZW0gViJ9LAorCXtCU0RfRlNfVjcxSywgICAiNC4xQlNEIn0sCisJe0JTRF9GU19WOCwgICAgICJFaWdodGggRWRpdGlvbiJ9LAorCXtCU0RfRlNfQlNERkZTLCAiNC4yQlNEIn0sCisjaWZkZWYgX19hbHBoYV9fCisJe0JTRF9GU19FWFQyLCAgICJleHQyIn0sCisjZWxzZQorCXtCU0RfRlNfTVNET1MsICAiTVMtRE9TIn0sCisjZW5kaWYKKwl7QlNEX0ZTX0JTRExGUywgIjQuNExGUyJ9LAorCXtCU0RfRlNfT1RIRVIsICAidW5rbm93biJ9LAorCXtCU0RfRlNfSFBGUywgICAiSFBGUyJ9LAorCXtCU0RfRlNfSVNPOTY2MCwiSVNPLTk2NjAifSwKKwl7QlNEX0ZTX0JPT1QsICAgImJvb3QifSwKKwl7QlNEX0ZTX0FET1MsICAgIkFET1MifSwKKwl7QlNEX0ZTX0hGUywgICAgIkhGUyJ9LAorCXtCU0RfRlNfQURWRlMsCSJBZHZGUyJ9LAorCXsgMCwgTlVMTCB9Cit9OworI2RlZmluZSBCU0RfRlNNQVhUWVBFUyAoQVJSQVlfU0laRSh4YnNkX2ZzdHlwZXMpLTEpCisKKyNlbmRpZgorCisvKgorICogZmxhZ3Mgc2hhcmVkIGJ5IHZhcmlvdXMgZHJpdmVzOgorICovCisjZGVmaW5lCUJTRF9EX1JFTU9WQUJMRQkweDAxCQkvKiByZW1vdmFibGUgbWVkaWEgKi8KKyNkZWZpbmUJQlNEX0RfRUNDICAgICAgCTB4MDIJCS8qIHN1cHBvcnRzIEVDQyAqLworI2RlZmluZQlCU0RfRF9CQURTRUNUCTB4MDQJCS8qIHN1cHBvcnRzIGJhZCBzZWN0b3IgZm9ydy4gKi8KKyNkZWZpbmUJQlNEX0RfUkFNRElTSwkweDA4CQkvKiBkaXNrIGVtdWxhdG9yICovCisjZGVmaW5lCUJTRF9EX0NIQUlOICAgIAkweDEwCQkvKiBjYW4gZG8gYmFjay1iYWNrIHRyYW5zZmVycyAqLworI2RlZmluZQlCU0RfRF9ET1NQQVJUCTB4MjAJCS8qIHdpdGhpbiBNU0RPUyBwYXJ0aXRpb24gKi8KKworI2VuZGlmIC8qIEZESVNLX0JTRF9MQUJFTF9IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza21hY2xhYmVsLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza21hY2xhYmVsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUzZGIyMAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrbWFjbGFiZWwuYwpAQCAtMCwwICsxLDg2IEBACisvKgorICBDaGFuZ2VzOgorICBTYXQgTWFyIDIwIDA5OjUxOjM4IEVTVCAxOTk5IEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUBjb25lY3RpdmEuY29tLmJyPgorCUludGVybmF0aW9uYWxpemF0aW9uCisqLworI2luY2x1ZGUgPHN0ZGlvLmg+ICAgICAgICAgICAgICAvKiBzdGRlcnIgKi8KKyNpbmNsdWRlIDxzdHJpbmcuaD4gICAgICAgICAgICAgLyogc3Ryc3RyICovCisjaW5jbHVkZSA8dW5pc3RkLmg+ICAgICAgICAgICAgIC8qIHdyaXRlICovCisKKyNpbmNsdWRlIDxlbmRpYW4uaD4KKworI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgImZkaXNrLmgiCisjaW5jbHVkZSAiZmRpc2ttYWNsYWJlbC5oIgorI2luY2x1ZGUgIm5scy5oIgorCisjZGVmaW5lIE1BQ19CSVRNQVNLIDB4ZmZmZjAwMDAKKworCitzdGF0aWMJaW50ICAgICBvdGhlcl9lbmRpYW4gPSAwOworc3RhdGljICBzaG9ydAl2b2x1bWVzPTE7CisKKy8qCisgKiBvbmx5IGRlYWxpbmcgd2l0aCBmcmVlIGJsb2NrcyBoZXJlCisgKi8KKworc3RhdGljIHZvaWQKK21hY19pbmZvKCB2b2lkICkgeworICAgIHB1dHMoCisJXygiXG5cdFRoZXJlIGlzIGEgdmFsaWQgTWFjIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKwkiXHRVbmZvcnR1bmF0ZWx5IGZkaXNrKDEpIGNhbm5vdCBoYW5kbGUgdGhlc2UgZGlza3MuXG4iCisJIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisJIlx0TmV2ZXJ0aGVsZXNzIHNvbWUgYWR2aWNlOlxuIgorCSJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisJIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorCSJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorCSJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIpCisgICAgKTsKK30KKwordm9pZAorbWFjX25vbGFiZWwoIHZvaWQgKQoreworICAgIG1hY2xhYmVsLT5tYWdpYyA9IDA7CisgICAgbWFjX2xhYmVsID0gMDsKKyAgICBwYXJ0aXRpb25zID0gNDsKKyAgICB6ZXJvaXplX21icl9idWZmZXIoKTsKKyAgICByZXR1cm47Cit9CisKK2ludAorY2hlY2tfbWFjX2xhYmVsKCB2b2lkICkKK3sKKwkvKgorCUNvbnZlcnNpb246IG9ubHkgMTYgYml0IHNob3VsZCBjb21wYXJlZAorCWUuZy46IEhGUyBMYWJlbCBpcyBvbmx5IDE2Yml0IGxvbmcKKwkqLworCWludCBtYWdpY19tYXNrZWQgPSAwIDsKKwltYWdpY19tYXNrZWQgPSAgbWFjbGFiZWwtPm1hZ2ljICYgTUFDX0JJVE1BU0sgOworCisJc3dpdGNoIChtYWdpY19tYXNrZWQpIHsKKwkJY2FzZSBNQUNfTEFCRUxfTUFHSUMgOgorCQljYXNlIE1BQ19MQUJFTF9NQUdJQ18yOgorCQljYXNlIE1BQ19MQUJFTF9NQUdJQ18zOgorCQkJZ290byBJU19NQUM7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCW1hY19sYWJlbCA9IDA7CisJCQlvdGhlcl9lbmRpYW4gPSAwOworCQkJcmV0dXJuIDA7CisKKworCX0KKworSVNfTUFDOgorICAgIG90aGVyX2VuZGlhbiA9IChtYWNsYWJlbC0+bWFnaWMgPT0gTUFDX0xBQkVMX01BR0lDX1NXQVBQRUQpOyAvLyA9PworICAgIHVwZGF0ZV91bml0cygpOworICAgIG1hY19sYWJlbCA9IDE7CisgICAgcGFydGl0aW9ucz0gMTAxNjsgLy8gPT8KKyAgICB2b2x1bWVzID0gMTU7CS8vID0/CisgICAgbWFjX2luZm8oKTsKKyAgICBtYWNfbm9sYWJlbCgpOwkJLyogJSUgKi8KKyAgICBtYWNfbGFiZWwgPSAxOwkJLyogJSUgKi8KKyAgICByZXR1cm4gMTsKK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2ttYWNsYWJlbC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2ttYWNsYWJlbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NjRhMTUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza21hY2xhYmVsLmgKQEAgLTAsMCArMSwzOSBAQAorI2lmbmRlZiBGRElTS19NQUNfTEFCRUxfSAorI2RlZmluZSBGRElTS19NQUNfTEFCRUxfSAorCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisvKgorICogQ29weXJpZ2h0IChDKSBBbmRyZWFzIE5ldXBlciwgU2VwIDE5OTguCisgKglUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIKKyAqCXRoZSB0ZXJtcyBvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLgorICovCisKK3R5cGVkZWYgc3RydWN0IHsKKwl1bnNpZ25lZCBpbnQgIG1hZ2ljOyAgICAgICAgLyogZXhwZWN0IE1BQ19MQUJFTF9NQUdJQyAqLworCXVuc2lnbmVkIGludCAgZmlsbGJ5dGVzMVsxMjRdOworCXVuc2lnbmVkIGludCAgcGh5c2ljYWxfdm9sdW1lX2lkOworCXVuc2lnbmVkIGludCAgZmlsbGJ5dGVzMlsxMjRdOworfSBtYWNfcGFydGl0aW9uOworCisvKiBNQUMgbWFnaWMgbnVtYmVyIG9ubHkgMTZiaXRzLCBkbyBJIGFsd2F5cyBrbm93IHRoYXQgdGhlcmUgYXJlIDAyMDAKKyAqIGZvbGxvd2luZz8gUHJvYmxlbSwgYWZ0ZXIgbWFnaWMgdGhlIHVpbnQxNl90IHJlczE7IGZvbGxvd3MsIEkgZG9ubm5vIGtub3cKKyAqIGFib3V0IHRoZSAyMDBrICovCisjZGVmaW5lCU1BQ19MQUJFTF9NQUdJQwkJMHg0NTUyMDAwMAorI2RlZmluZQlNQUNfTEFCRUxfTUFHSUNfMgkweDUwNTMwMDAwCisjZGVmaW5lCU1BQ19MQUJFTF9NQUdJQ18zCTB4NTA0ZDAwMDAKKworI2RlZmluZQlNQUNfTEFCRUxfTUFHSUNfU1dBUFBFRAkJMHgwMDAwMjU1NAorCisjZGVmaW5lCU1BQ19MQUJFTF9NQUdJQ18yX1NXQVBQRUQJMHgwMDAwMzUwNQorI2RlZmluZQlNQUNfTEFCRUxfTUFHSUNfM19TV0FQUEVECTB4MDAwMGQ0MDUKKworLyogZmRpc2suYyAqLworI2RlZmluZSBtYWNsYWJlbCAoKG1hY19wYXJ0aXRpb24gKilNQlJidWZmZXIpCisKKy8qIGZkaXNrbWFjbGFiZWwuYyAqLworZXh0ZXJuIHN0cnVjdAlzeXN0eXBlcyBtYWNfc3lzX3R5cGVzW107CitleHRlcm4gdm9pZAltYWNfbm9sYWJlbCggdm9pZCApOworZXh0ZXJuIGludAljaGVja19tYWNfbGFiZWwoIHZvaWQgKTsKKworI2VuZGlmIC8qIEZESVNLX01BQ19MQUJFTF9IICovCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrc2dpbGFiZWwuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrc2dpbGFiZWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzA3YTRjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2tzZ2lsYWJlbC5jCkBAIC0wLDAgKzEsODM2IEBACisvKgorICoKKyAqIGZkaXNrc2dpbGFiZWwuYworICoKKyAqIENvcHlyaWdodCAoQykgQW5kcmVhcyBOZXVwZXIsIFNlcCAxOTk4LgorICoJVGhpcyBmaWxlIG1heSBiZSBtb2RpZmllZCBhbmQgcmVkaXN0cmlidXRlZCB1bmRlcgorICoJdGhlIHRlcm1zIG9mIHRoZSBHTlUgUHVibGljIExpY2Vuc2UuCisgKgorICogMTk5OS0wMy0yMCBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8gPGFjbWVAY29uZWN0aXZhLmNvbS5icj4KKyAqCUludGVybmF0aW9uYWxpemF0aW9uCisgKgorICogMjAwMy0wMy0yMCBQaGlsbGlwIEtlc2xpbmcgPHBrZXNsaW5nQHNnaS5jb20+CisgKiAgICAgIFNvbWUgZml4ZXMKKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+ICAgICAgICAgICAgICAvKiBzdGRlcnIgKi8KKyNpbmNsdWRlIDxzdGRsaWIuaD4JCS8qIGV4aXQgKi8KKyNpbmNsdWRlIDxzdHJpbmcuaD4gICAgICAgICAgICAgLyogc3Ryc3RyICovCisjaW5jbHVkZSA8dW5pc3RkLmg+ICAgICAgICAgICAgIC8qIHdyaXRlICovCisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+ICAgICAgICAgIC8qIGlvY3RsICovCisjaW5jbHVkZSA8c3lzL3N0YXQuaD4gICAgICAgICAgIC8qIHN0YXQgKi8KKyNpbmNsdWRlIDxhc3NlcnQuaD4gICAgICAgICAgICAgLyogYXNzZXJ0ICovCisKKyNpbmNsdWRlIDxlbmRpYW4uaD4KKyNpbmNsdWRlICJubHMuaCIKKworI2luY2x1ZGUgImJsa2Rldi5oIgorCisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAiZmRpc2suaCIKKyNpbmNsdWRlICJmZGlza3NnaWxhYmVsLmgiCisKK3N0YXRpYwlpbnQgICAgIG90aGVyX2VuZGlhbiA9IDA7CitzdGF0aWMJaW50ICAgICBkZWJ1ZyA9IDA7CitzdGF0aWMgIHNob3J0IHZvbHVtZXM9MTsKKworLyoKKyAqIG9ubHkgZGVhbGluZyB3aXRoIGZyZWUgYmxvY2tzIGhlcmUKKyAqLworCit0eXBlZGVmIHN0cnVjdCB7IHVuc2lnbmVkIGludCBmaXJzdDsgdW5zaWduZWQgaW50IGxhc3Q7IH0gZnJlZWJsb2NrczsKK3N0YXRpYyBmcmVlYmxvY2tzIGZyZWVsaXN0WzE3XTsgLyogMTYgcGFydGl0aW9ucyBjYW4gcHJvZHVjZSAxNyB2YWNhbnQgc2xvdHMgKi8KKworc3RhdGljIHZvaWQKK3NldGZyZWVsaXN0KGludCBpLCB1bnNpZ25lZCBpbnQgZiwgdW5zaWduZWQgaW50IGwpIHsKKwlmcmVlbGlzdFtpXS5maXJzdCA9IGY7CisJZnJlZWxpc3RbaV0ubGFzdCA9IGw7Cit9CisKK3N0YXRpYyB2b2lkCithZGQyZnJlZWxpc3QodW5zaWduZWQgaW50IGYsIHVuc2lnbmVkIGludCBsKSB7CisJaW50IGkgPSAwOworCWZvciAoIDsgaSA8IDE3IDsgaSsrKQorCQlpZiAoZnJlZWxpc3RbaV0ubGFzdCA9PSAwKQorCQkJYnJlYWs7CisJc2V0ZnJlZWxpc3QoaSwgZiwgbCk7Cit9CisKK3N0YXRpYyB2b2lkCitjbGVhcmZyZWVsaXN0KHZvaWQpIHsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCAxNyA7IGkrKykKKwkJc2V0ZnJlZWxpc3QoaSwgMCwgMCk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK2lzaW5mcmVlbGlzdCh1bnNpZ25lZCBpbnQgYikgeworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IDE3IDsgaSsrKQorCQlpZiAoZnJlZWxpc3RbaV0uZmlyc3QgPD0gYiAmJiBmcmVlbGlzdFtpXS5sYXN0ID49IGIpCisJCQlyZXR1cm4gZnJlZWxpc3RbaV0ubGFzdDsKKwlyZXR1cm4gMDsKK30KKwkvKiByZXR1cm4gbGFzdCB2YWNhbnQgYmxvY2sgb2YgdGhpcyBzdHJpZGUgKG5ldmVyIDApLiAqLworCS8qIHRoZSAnPj0nIGlzIG5vdCBxdWl0ZSBjb3JyZWN0LCBidXQgc2ltcGxpZmllcyB0aGUgY29kZSAqLworLyoKKyAqIGVuZCBvZiBmcmVlIGJsb2NrcyBzZWN0aW9uCisgKi8KK3N0cnVjdCBzeXN0eXBlcyBzZ2lfc3lzX3R5cGVzW10gPSB7CisJe1NHSV9WT0xIRFIsCU5fKCJTR0kgdm9saGRyIil9LAorCXsweDAxLAkJTl8oIlNHSSB0cmtyZXBsIil9LAorCXsweDAyLAkJTl8oIlNHSSBzZWNyZXBsIil9LAorCXtTR0lfU1dBUCwJTl8oIlNHSSByYXciKX0sCisJezB4MDQsCQlOXygiU0dJIGJzZCIpfSwKKwl7MHgwNSwJCU5fKCJTR0kgc3lzdiIpfSwKKwl7RU5USVJFX0RJU0ssCU5fKCJTR0kgdm9sdW1lIil9LAorCXtTR0lfRUZTLAlOXygiU0dJIGVmcyIpfSwKKwl7MHgwOCwJCU5fKCJTR0kgbHZvbCIpfSwKKwl7MHgwOSwJCU5fKCJTR0kgcmx2b2wiKX0sCisJe1NHSV9YRlMsCU5fKCJTR0kgeGZzIil9LAorCXtTR0lfWEZTTE9HLAlOXygiU0dJIHhmc2xvZyIpfSwKKwl7U0dJX1hMViwJTl8oIlNHSSB4bHYiKX0sCisJe1NHSV9YVk0sCU5fKCJTR0kgeHZtIil9LAorCXtMSU5VWF9TV0FQLAlOXygiTGludXggc3dhcCIpfSwKKwl7TElOVVhfTkFUSVZFLAlOXygiTGludXggbmF0aXZlIil9LAorCXtMSU5VWF9MVk0sCU5fKCJMaW51eCBMVk0iKX0sCisJe0xJTlVYX1JBSUQsCU5fKCJMaW51eCBSQUlEIil9LAorCXswLCBOVUxMIH0KK307CisKK3N0YXRpYyBpbnQKK3NnaV9nZXRfbnNlY3Qodm9pZCkgeworCXJldHVybiBTU1dBUDE2KHNnaWxhYmVsLT5kZXZwYXJhbS5uc2VjdCk7Cit9CisKK3N0YXRpYyBpbnQKK3NnaV9nZXRfbnRya3Modm9pZCkgeworCXJldHVybiBTU1dBUDE2KHNnaWxhYmVsLT5kZXZwYXJhbS5udHJrcyk7Cit9CisKKyNpZiAwCitzdGF0aWMgaW50CitzZ2lfZ2V0X2hlYWRfdm9sMCh2b2lkKSB7CisJcmV0dXJuIFNTV0FQMTYoc2dpbGFiZWwtPmRldnBhcmFtLmhlYWRfdm9sMCk7Cit9CisKK3N0YXRpYyBpbnQKK3NnaV9nZXRfYnl0ZXModm9pZCkgeworCXJldHVybiBTU1dBUDE2KHNnaWxhYmVsLT5kZXZwYXJhbS5ieXRlcyk7Cit9CisKK3N0YXRpYyBpbnQKK3NnaV9nZXRfcGN5bGNvdW50KHZvaWQpIHsKKwlyZXR1cm4gU1NXQVAxNihzZ2lsYWJlbC0+ZGV2cGFyYW0ucGN5bGNvdW50KTsKK30KKyNlbmRpZgorCit2b2lkCitzZ2lfbm9sYWJlbCgpIHsKKwlzZ2lsYWJlbC0+bWFnaWMgPSAwOworCXNnaV9sYWJlbCA9IDA7CisJcGFydGl0aW9ucyA9IDQ7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK3R3b19zX2NvbXBsZW1lbnRfMzJiaXRfc3VtKHVuc2lnbmVkIGludCAqYmFzZSwgaW50IHNpemUgLyogaW4gYnl0ZXMgKi8pIHsKKwlpbnQgaSA9IDA7CisJdW5zaWduZWQgaW50IHN1bSA9IDA7CisKKwlzaXplIC89IHNpemVvZih1bnNpZ25lZCBpbnQpOworCWZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspCisJCXN1bSAtPSBTU1dBUDMyKGJhc2VbaV0pOworCXJldHVybiBzdW07Cit9CisKK2ludAorY2hlY2tfc2dpX2xhYmVsKCkgeworCWlmIChzaXplb2Yoc2dpbGFiZWwpID4gNTEyKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkJXygiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSAiCisJCQkgICJMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiA1MTIgYnl0ZXNcbiIpKTsKKwkJZXhpdCgxKTsKKwl9CisKKwlpZiAoc2dpbGFiZWwtPm1hZ2ljICE9IFNHSV9MQUJFTF9NQUdJQyAmJgorCSAgICBzZ2lsYWJlbC0+bWFnaWMgIT0gU0dJX0xBQkVMX01BR0lDX1NXQVBQRUQpIHsKKwkJc2dpX2xhYmVsID0gMDsKKwkJb3RoZXJfZW5kaWFuID0gMDsKKwkJcmV0dXJuIDA7CisJfQorCisJb3RoZXJfZW5kaWFuID0gKHNnaWxhYmVsLT5tYWdpYyA9PSBTR0lfTEFCRUxfTUFHSUNfU1dBUFBFRCk7CisJLyoKKwkgKiB0ZXN0IGZvciBjb3JyZWN0IGNoZWNrc3VtCisJICovCisJaWYgKHR3b19zX2NvbXBsZW1lbnRfMzJiaXRfc3VtKCh1bnNpZ25lZCBpbnQqKXNnaWxhYmVsLAorCQkJCSAgICAgICBzaXplb2YoKnNnaWxhYmVsKSkpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJCQlfKCJEZXRlY3RlZCBzZ2kgZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iKSk7CisJfQorCXVwZGF0ZV91bml0cygpOworCXNnaV9sYWJlbCA9IDE7CisJcGFydGl0aW9ucz0gMTY7CisJdm9sdW1lcyA9IDE1OworCXJldHVybiAxOworfQorCit2b2lkCitzZ2lfbGlzdF90YWJsZShpbnQgeHRyYSkgeworCWludCBpLCB3OworCWludCBrcGkgPSAwOwkJLyoga2VybmVsIHBhcnRpdGlvbiBJRCAqLworCWNoYXIgKnR5cGU7CisKKwl3ID0gc3RybGVuKGRpc2tfZGV2aWNlKTsKKworCWlmICh4dHJhKSB7CisJCXByaW50ZihfKCJcbkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorCQkJICIlZCBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorCQkJICIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorCQkJICIlc1xuIgorCQkJICJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcblxuIiksCisJCSAgICAgICBkaXNrX2RldmljZSwgaGVhZHMsIHNlY3RvcnMsIGN5bGluZGVycywKKwkJICAgICAgIFNTV0FQMTYoc2dpcGFyYW0ucGN5bGNvdW50KSwKKwkJICAgICAgIFNTV0FQMTYoc2dpcGFyYW0uc3BhcmVjeWwpLAorCQkgICAgICAgU1NXQVAxNihzZ2lwYXJhbS5pbGZhY3QpLAorCQkgICAgICAgKGNoYXIgKilzZ2lsYWJlbCwKKwkJICAgICAgIHN0cl91bml0cyhQTFVSQUwpLCB1bml0c19wZXJfc2VjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICBzZWN0b3Jfc2l6ZSk7CisJfSBlbHNlIHsKKwkJcHJpbnRmKF8oIlxuRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAiCisJCQkgIiVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorCQkJICJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcblxuIiksCisJCSAgICAgICBkaXNrX2RldmljZSwgaGVhZHMsIHNlY3RvcnMsIGN5bGluZGVycywKKwkJICAgICAgIHN0cl91bml0cyhQTFVSQUwpLCB1bml0c19wZXJfc2VjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICBzZWN0b3Jfc2l6ZSk7CisJfQorCXByaW50ZihfKCItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisJCSAiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIiksCisJICAgICAgIHcgKyAxLCBfKCJEZXZpY2UiKSk7CisJZm9yIChpID0gMCA7IGkgPCBwYXJ0aXRpb25zOyBpKyspIHsKKwkJaWYgKHNnaV9nZXRfbnVtX3NlY3RvcnMoaSkgfHwgZGVidWcpIHsKKwkJCXVpbnQzMl90IHN0YXJ0ID0gc2dpX2dldF9zdGFydF9zZWN0b3IoaSk7CisJCQl1aW50MzJfdCBsZW4gPSBzZ2lfZ2V0X251bV9zZWN0b3JzKGkpOworCQkJa3BpKys7CQkvKiBvbmx5IGNvdW50IG5vbmVtcHR5IHBhcnRpdGlvbnMgKi8KKwkJCXByaW50ZigKKwkJCQkiJTJkOiAlcyAlNHMgJTlsZCAlOWxkICU5bGQgICUyeCAgJXNcbiIsCisvKiBmZGlzayBwYXJ0IG51bWJlciAqLyAgIGkrMSwKKy8qIGRldmljZSAqLyAgICAgICAgICAgICAgcGFydG5hbWUoZGlza19kZXZpY2UsIGtwaSwgdysyKSwKKy8qIGZsYWdzICovICAgICAgICAgICAgICAgKHNnaV9nZXRfc3dhcHBhcnRpdGlvbigpID09IGkpID8gInN3YXAiIDoKKy8qIGZsYWdzICovICAgICAgICAgICAgICAgKHNnaV9nZXRfYm9vdHBhcnRpdGlvbigpID09IGkpID8gImJvb3QiIDogIiAgICAiLCAKKy8qIHN0YXJ0ICovICAgICAgICAgICAgICAgKGxvbmcpIHNjcm91bmQoc3RhcnQpLAorLyogZW5kICovICAgICAgICAgICAgICAgICAobG9uZykgc2Nyb3VuZChzdGFydCtsZW4pLTEsCisvKiBubyBvZGQgZmxhZyBvbiBlbmQgKi8gIChsb25nKSBsZW4sIAorLyogdHlwZSBpZCAqLyAgICAgICAgICAgICBzZ2lfZ2V0X3N5c2lkKGkpLAorLyogdHlwZSBuYW1lICovICAgICAgICAgICAodHlwZSA9IHBhcnRpdGlvbl90eXBlKHNnaV9nZXRfc3lzaWQoaSkpKQorCQkJCT8gdHlwZSA6IF8oIlVua25vd24iKSk7CisJCX0KKwl9CisJcHJpbnRmKF8oIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG5Cb290ZmlsZTogJXNcbiIKKwkJICItLS0tLSBEaXJlY3RvcnkgRW50cmllcyAtLS0tLVxuIiksCisJICAgICAgIHNnaWxhYmVsLT5ib290X2ZpbGUpOworCWZvciAoaSA9IDAgOyBpIDwgdm9sdW1lczsgaSsrKSB7CisJCWlmIChzZ2lsYWJlbC0+ZGlyZWN0b3J5W2ldLnZvbF9maWxlX3NpemUpIHsKKwkJCXVpbnQzMl90IHN0YXJ0ID0gU1NXQVAzMihzZ2lsYWJlbC0+ZGlyZWN0b3J5W2ldLnZvbF9maWxlX3N0YXJ0KTsKKwkJCXVpbnQzMl90IGxlbiA9IFNTV0FQMzIoc2dpbGFiZWwtPmRpcmVjdG9yeVtpXS52b2xfZmlsZV9zaXplKTsKKwkJCXVuc2lnbmVkIGNoYXIgKm5hbWUgPSBzZ2lsYWJlbC0+ZGlyZWN0b3J5W2ldLnZvbF9maWxlX25hbWU7CisJCQlwcmludGYoXygiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIiksCisJCQkgICAgICAgaSwgbmFtZSwgKHVuc2lnbmVkIGludCkgc3RhcnQsCisJCQkgICAgICAgKHVuc2lnbmVkIGludCkgbGVuKTsKKwkJfQorCX0KK30KKwordW5zaWduZWQgaW50CitzZ2lfZ2V0X3N0YXJ0X3NlY3RvcihpbnQgaSkgeworCXJldHVybiBTU1dBUDMyKHNnaWxhYmVsLT5wYXJ0aXRpb25zW2ldLnN0YXJ0X3NlY3Rvcik7Cit9CisKK3Vuc2lnbmVkIGludAorc2dpX2dldF9udW1fc2VjdG9ycyhpbnQgaSkgeworCXJldHVybiBTU1dBUDMyKHNnaWxhYmVsLT5wYXJ0aXRpb25zW2ldLm51bV9zZWN0b3JzKTsKK30KKworaW50CitzZ2lfZ2V0X3N5c2lkKGludCBpKQoreworCXJldHVybiBTU1dBUDMyKHNnaWxhYmVsLT5wYXJ0aXRpb25zW2ldLmlkKTsKK30KKworaW50CitzZ2lfZ2V0X2Jvb3RwYXJ0aXRpb24odm9pZCkKK3sKKwlyZXR1cm4gU1NXQVAxNihzZ2lsYWJlbC0+Ym9vdF9wYXJ0KTsKK30KKworaW50CitzZ2lfZ2V0X3N3YXBwYXJ0aXRpb24odm9pZCkKK3sKKwlyZXR1cm4gU1NXQVAxNihzZ2lsYWJlbC0+c3dhcF9wYXJ0KTsKK30KKwordm9pZAorc2dpX3NldF9ib290cGFydGl0aW9uKGludCBpKQoreworCXNnaWxhYmVsLT5ib290X3BhcnQgPSBTU1dBUDE2KCgoc2hvcnQpaSkpOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50CitzZ2lfZ2V0X2xhc3RibG9jayh2b2lkKSB7CisJcmV0dXJuIGhlYWRzICogc2VjdG9ycyAqIGN5bGluZGVyczsKK30KKwordm9pZAorc2dpX3NldF9zd2FwcGFydGl0aW9uKGludCBpKSB7CisJc2dpbGFiZWwtPnN3YXBfcGFydCA9IFNTV0FQMTYoKChzaG9ydClpKSk7Cit9CisKK3N0YXRpYyBpbnQKK3NnaV9jaGVja19ib290ZmlsZShjb25zdCBjaGFyKiBhRmlsZSkgeworCWlmIChzdHJsZW4oYUZpbGUpIDwgMykgLyogIi9hXG4iIGlzIG1pbmltdW0gKi8geworCQlwcmludGYoXygiXG5JbnZhbGlkIEJvb3RmaWxlIVxuIgorCQkJICJcdFRoZSBib290ZmlsZSBtdXN0IGJlIGFuIGFic29sdXRlIG5vbi16ZXJvIHBhdGhuYW1lLFxuIgorCQkJICJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIikpOworCQlyZXR1cm4gMDsKKwl9IGVsc2UgeworCQlpZiAoc3RybGVuKGFGaWxlKSA+IDE2KSB7CisJCQlwcmludGYoXygiXG5cdE5hbWUgb2YgQm9vdGZpbGUgdG9vIGxvbmc6ICAiCisJCQkJICIxNiBieXRlcyBtYXhpbXVtLlxuIikpOworCQkJcmV0dXJuIDA7CisJCX0gZWxzZSB7CisJCQlpZiAoYUZpbGVbMF0gIT0gJy8nKSB7CisJCQkJcHJpbnRmKF8oIlxuXHRCb290ZmlsZSBtdXN0IGhhdmUgYSAiCisJCQkJCSAiZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIikpOworCQkJCXJldHVybiAwOworCQkJfQorCQl9CisJfQorCWlmIChzdHJuY21wKGFGaWxlLCAoY2hhciAqKSBzZ2lsYWJlbC0+Ym9vdF9maWxlLCAxNikpIHsKKwkJcHJpbnRmKF8oIlxuXHRCZSBhd2FyZSwgdGhhdCB0aGUgYm9vdGZpbGUgaXMgbm90IGNoZWNrZWQgZm9yIGV4aXN0ZW5jZS5cblx0IgorCQkJICJTR0kncyBkZWZhdWx0IGlzIFwiL3VuaXhcIiBhbmQgZm9yIGJhY2t1cCBcIi91bml4LnNhdmVcIi5cbiIpKTsKKwkJLyogZmlsZW5hbWUgaXMgY29ycmVjdCBhbmQgZGlkIGNoYW5nZSAqLworCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7CS8qIGZpbGVuYW1lIGRpZCBub3QgY2hhbmdlICovCit9CisKK2NvbnN0IGNoYXIgKgorc2dpX2dldF9ib290ZmlsZSh2b2lkKSB7CisJcmV0dXJuIChjaGFyICopIHNnaWxhYmVsLT5ib290X2ZpbGU7Cit9CisKK3ZvaWQKK3NnaV9zZXRfYm9vdGZpbGUoY29uc3QgY2hhciogYUZpbGUpIHsKKwlpbnQgaSA9IDA7CisKKwlpZiAoc2dpX2NoZWNrX2Jvb3RmaWxlKGFGaWxlKSkgeworCQl3aGlsZSAoaSA8IDE2KSB7CisJCQlpZiAoKGFGaWxlW2ldICE9ICdcbicpCS8qIGluIHByaW5jaXBsZSBjYXVnaHQgYWdhaW4gYnkgbmV4dCBsaW5lICovCisJCQkgICAgJiYgIChzdHJsZW4oYUZpbGUpID4gaSkpCisJCQkJc2dpbGFiZWwtPmJvb3RfZmlsZVtpXSA9IGFGaWxlW2ldOworCQkJZWxzZQorCQkJCXNnaWxhYmVsLT5ib290X2ZpbGVbaV0gPSAwOworCQkJaSsrOworCQl9CisJCXByaW50ZihfKCJcblx0Qm9vdGZpbGUgaXMgY2hhbmdlZCB0byBcIiVzXCIuXG4iKSwKKwkJICAgICAgIHNnaWxhYmVsLT5ib290X2ZpbGUpOworCX0KK30KKwordm9pZAorY3JlYXRlX3NnaWluZm8odm9pZCkgeworCS8qIEkga2VlcCBTR0kncyBoYWJpdCB0byB3cml0ZSB0aGUgc2dpbGFiZWwgdG8gdGhlIHNlY29uZCBibG9jayAqLworCXNnaWxhYmVsLT5kaXJlY3RvcnlbMF0udm9sX2ZpbGVfc3RhcnQgPSBTU1dBUDMyKDIpOworCXNnaWxhYmVsLT5kaXJlY3RvcnlbMF0udm9sX2ZpbGVfc2l6ZSA9IFNTV0FQMzIoc2l6ZW9mKHNnaWluZm8pKTsKKwlzdHJuY3B5KChjaGFyICopIHNnaWxhYmVsLT5kaXJlY3RvcnlbMF0udm9sX2ZpbGVfbmFtZSwgInNnaWxhYmVsIiwgOCk7Cit9CisKK3NnaWluZm8gKmZpbGxfc2dpaW5mbyh2b2lkKTsKKwordm9pZAorc2dpX3dyaXRlX3RhYmxlKHZvaWQpIHsKKwlzZ2lsYWJlbC0+Y3N1bSA9IDA7CisJc2dpbGFiZWwtPmNzdW0gPSBTU1dBUDMyKHR3b19zX2NvbXBsZW1lbnRfMzJiaXRfc3VtKAorCQkodW5zaWduZWQgaW50KilzZ2lsYWJlbCwgCisJCXNpemVvZigqc2dpbGFiZWwpKSk7CisJYXNzZXJ0KHR3b19zX2NvbXBsZW1lbnRfMzJiaXRfc3VtKAorCQkodW5zaWduZWQgaW50KilzZ2lsYWJlbCwgc2l6ZW9mKCpzZ2lsYWJlbCkpID09IDApOworCWlmIChsc2VlayhmZCwgMCwgU0VFS19TRVQpIDwgMCkKKwkJZmF0YWwodW5hYmxlX3RvX3NlZWspOworCWlmICh3cml0ZShmZCwgc2dpbGFiZWwsIFNFQ1RPUl9TSVpFKSAhPSBTRUNUT1JfU0laRSkKKwkJZmF0YWwodW5hYmxlX3RvX3dyaXRlKTsKKwlpZiAoISBzdHJuY21wKChjaGFyICopIHNnaWxhYmVsLT5kaXJlY3RvcnlbMF0udm9sX2ZpbGVfbmFtZSwgInNnaWxhYmVsIiwgOCkpIHsKKwkJLyoKKwkJICoga2VlcCB0aGlzIGhhYml0IG9mIGZpcnN0IHdyaXRpbmcgdGhlICJzZ2lsYWJlbCIuCisJCSAqIEkgbmV2ZXIgdGVzdGVkIHdoZXRoZXIgaXQgd29ya3Mgd2l0aG91dCAoQU4gOTgxMDAyKS4KKwkJICovCisJCXNnaWluZm8gKmluZm8gPSBmaWxsX3NnaWluZm8oKTsKKwkJaW50IGluZm9zdGFydGJsb2NrID0gU1NXQVAzMihzZ2lsYWJlbC0+ZGlyZWN0b3J5WzBdLnZvbF9maWxlX3N0YXJ0KTsKKwkJaWYgKGxzZWVrKGZkLCAob2ZmX3QpIGluZm9zdGFydGJsb2NrKgorCQkJCVNFQ1RPUl9TSVpFLCBTRUVLX1NFVCkgPCAwKQorCQkJZmF0YWwodW5hYmxlX3RvX3NlZWspOworCQlpZiAod3JpdGUoZmQsIGluZm8sIFNFQ1RPUl9TSVpFKSAhPSBTRUNUT1JfU0laRSkKKwkJCWZhdGFsKHVuYWJsZV90b193cml0ZSk7CisJCWZyZWUoaW5mbyk7CisJfQorfQorCitzdGF0aWMgaW50Citjb21wYXJlX3N0YXJ0KGludCAqeCwgaW50ICp5KSB7CisJLyoKKwkgKiBzb3J0IGFjY29yZGluZyB0byBzdGFydCBzZWN0b3JzCisJICogYW5kIHByZWZlcnMgbGFyZ2VzdCBwYXJ0aXRpb246CisJICogZW50cnkgemVybyBpcyBlbnRpcmUgZGlzayBlbnRyeQorCSAqLworCXVuc2lnbmVkIGludCBpID0gKng7CisJdW5zaWduZWQgaW50IGogPSAqeTsKKwl1bnNpZ25lZCBpbnQgYSA9IHNnaV9nZXRfc3RhcnRfc2VjdG9yKGkpOworCXVuc2lnbmVkIGludCBiID0gc2dpX2dldF9zdGFydF9zZWN0b3Ioaik7CisJdW5zaWduZWQgaW50IGMgPSBzZ2lfZ2V0X251bV9zZWN0b3JzKGkpOworCXVuc2lnbmVkIGludCBkID0gc2dpX2dldF9udW1fc2VjdG9ycyhqKTsKKworCWlmIChhID09IGIpCisJCXJldHVybiAoZCA+IGMpID8gMSA6IChkID09IGMpID8gMCA6IC0xOworCXJldHVybiAoYSA+IGIpID8gMSA6IC0xOworfQorCitzdGF0aWMgaW50CitzZ2lfZ2Fwcyh2b2lkKSB7CisJLyoKKwkgKiByZXR1cm5lZCB2YWx1ZSBpczoKKwkgKiAgPSAwIDogZGlzayBpcyBwcm9wZXJseSBmaWxsZWQgdG8gdGhlIHJpbQorCSAqICA8IDAgOiB0aGVyZSBpcyBhbiBvdmVybGFwCisJICogID4gMCA6IHRoZXJlIGlzIHN0aWxsIHNvbWUgdmFjYW50IHNwYWNlCisJICovCisJcmV0dXJuIHZlcmlmeV9zZ2koMCk7Cit9CisKK2ludAordmVyaWZ5X3NnaShpbnQgdmVyYm9zZSkKK3sKKwlpbnQgSW5kZXhbMTZdOwkJLyogbGlzdCBvZiB2YWxpZCBwYXJ0aXRpb25zICovCisJaW50IHNvcnRjb3VudCA9IDA7CS8qIG51bWJlciBvZiB1c2VkIHBhcnRpdGlvbnMsIGkuZS4gbm9uLXplcm8gbGVuZ3RocyAqLworCWludCBlbnRpcmUgPSAwLCBpID0gMDsKKwl1bnNpZ25lZCBpbnQgc3RhcnQgPSAwOworCWxvbmcgbG9uZyBnYXAgPSAwOwkvKiBjb3VudCB1bnVzZWQgYmxvY2tzICovCisJdW5zaWduZWQgaW50IGxhc3RibG9jayA9IHNnaV9nZXRfbGFzdGJsb2NrKCk7CisKKwljbGVhcmZyZWVsaXN0KCk7CisJZm9yIChpPTA7IGk8MTY7IGkrKykgeworCQlpZiAoc2dpX2dldF9udW1fc2VjdG9ycyhpKSAhPSAwKSB7CisJCQlJbmRleFtzb3J0Y291bnQrK109aTsKKwkJCWlmIChzZ2lfZ2V0X3N5c2lkKGkpID09IEVOVElSRV9ESVNLKSB7CisJCQkJaWYgKGVudGlyZSsrID09IDEpIHsKKwkJCQkJaWYgKHZlcmJvc2UpCisJCQkJCQlwcmludGYoXygiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIikpOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKwlpZiAoc29ydGNvdW50ID09IDApIHsKKwkJaWYgKHZlcmJvc2UpCisJCQlwcmludGYoXygiTm8gcGFydGl0aW9ucyBkZWZpbmVkXG4iKSk7CisJCXJldHVybiAobGFzdGJsb2NrID4gMCkgPyAxIDogKGxhc3RibG9jayA9PSAwKSA/IDAgOiAtMTsKKwl9CisJcXNvcnQoSW5kZXgsIHNvcnRjb3VudCwgc2l6ZW9mKEluZGV4WzBdKSwgKHZvaWQqKWNvbXBhcmVfc3RhcnQpOworCWlmIChzZ2lfZ2V0X3N5c2lkKEluZGV4WzBdKSA9PSBFTlRJUkVfRElTSykgeworCQlpZiAoKEluZGV4WzBdICE9IDEwKSAmJiB2ZXJib3NlKQorCQkJcHJpbnRmKF8oIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIpKTsKKwkJaWYgKChzZ2lfZ2V0X3N0YXJ0X3NlY3RvcihJbmRleFswXSkgIT0gMCkgJiYgdmVyYm9zZSkKKwkJCXByaW50ZihfKCJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIHNob3VsZCBzdGFydCAiCisJCQkJICJhdCBibG9jayAwLFxuIgorCQkJCSAibm90IGF0IGRpc2tibG9jayAlZC5cbiIpLAorCQkJICAgICAgIHNnaV9nZXRfc3RhcnRfc2VjdG9yKEluZGV4WzBdKSk7CisJCWlmIChkZWJ1ZykJLyogSSBkbyBub3QgdW5kZXJzdGFuZCBob3cgc29tZSBkaXNrcyBmdWxmaWwgaXQgKi8KKwkJCWlmICgoc2dpX2dldF9udW1fc2VjdG9ycyhJbmRleFswXSkgIT0gbGFzdGJsb2NrKSAmJiB2ZXJib3NlKQorCQkJCXByaW50ZihfKCJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorCQkJCQkgImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iKSwKKwkJCQkgICAgICAgc2dpX2dldF9udW1fc2VjdG9ycyhJbmRleFswXSksIGxhc3RibG9jayk7CisJCWxhc3RibG9jayA9IHNnaV9nZXRfbnVtX3NlY3RvcnMoSW5kZXhbMF0pOworCX0gZWxzZSB7CisJCWlmICh2ZXJib3NlKQorCQkJcHJpbnRmKF8oIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIpKTsKKwkJaWYgKGRlYnVnPjIpCisJCQlwcmludGYoInN5c2lkPSVkXHRwYXJ0aXRpb249JWRcbiIsCisJCQkgICAgICAgc2dpX2dldF9zeXNpZChJbmRleFswXSksIEluZGV4WzBdKzEpOworCX0KKwlmb3IgKGk9MSwgc3RhcnQ9MDsgaTxzb3J0Y291bnQ7IGkrKykgeworCQlpbnQgY3lsc2l6ZSA9IHNnaV9nZXRfbnNlY3QoKSAqIHNnaV9nZXRfbnRya3MoKTsKKwkJaWYgKChzZ2lfZ2V0X3N0YXJ0X3NlY3RvcihJbmRleFtpXSkgJSBjeWxzaXplKSAhPSAwKSB7CisJCQlpZiAoZGVidWcpCS8qIEkgZG8gbm90IHVuZGVyc3RhbmQgaG93IHNvbWUgZGlza3MgZnVsZmlsIGl0ICovCisJCQkJaWYgKHZlcmJvc2UpCisJCQkJCXByaW50ZihfKCJQYXJ0aXRpb24gJWQgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iKSwKKwkJCQkJICAgICAgIEluZGV4W2ldKzEpOworCQl9CisJCWlmIChzZ2lfZ2V0X251bV9zZWN0b3JzKEluZGV4W2ldKSAlIGN5bHNpemUgIT0gMCkgeworCQkJaWYgKGRlYnVnKQkvKiBJIGRvIG5vdCB1bmRlcnN0YW5kIGhvdyBzb21lIGRpc2tzIGZ1bGZpbCBpdCAqLworCQkJCWlmICh2ZXJib3NlKQorCQkJCQlwcmludGYoXygiUGFydGl0aW9uICVkIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIpLAorCQkJCQkgICAgICAgSW5kZXhbaV0rMSk7CisJCX0KKwkJLyogV2UgY2Fubm90IGhhbmRsZSBzZXZlcmFsICJlbnRpcmUgZGlzayIgZW50cmllcy4gKi8KKwkJaWYgKHNnaV9nZXRfc3lzaWQoSW5kZXhbaV0pID09IEVOVElSRV9ESVNLKSBjb250aW51ZTsKKwkJaWYgKHN0YXJ0ID4gc2dpX2dldF9zdGFydF9zZWN0b3IoSW5kZXhbaV0pKSB7CisJCQlpZiAodmVyYm9zZSkKKwkJCQlwcmludGYoXygiVGhlIFBhcnRpdGlvbiAlZCBhbmQgJWQgb3ZlcmxhcCBieSAlZCBzZWN0b3JzLlxuIiksCisJCQkJICAgICAgIEluZGV4W2ktMV0rMSwgSW5kZXhbaV0rMSwKKwkJCQkgICAgICAgc3RhcnQgLSBzZ2lfZ2V0X3N0YXJ0X3NlY3RvcihJbmRleFtpXSkpOworCQkJaWYgKGdhcCA+ICAwKSBnYXAgPSAtZ2FwOworCQkJaWYgKGdhcCA9PSAwKSBnYXAgPSAtMTsKKwkJfQorCQlpZiAoc3RhcnQgPCBzZ2lfZ2V0X3N0YXJ0X3NlY3RvcihJbmRleFtpXSkpIHsKKwkJCWlmICh2ZXJib3NlKQorCQkJCXByaW50ZihfKCJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIpLAorCQkJCSAgICAgICBzZ2lfZ2V0X3N0YXJ0X3NlY3RvcihJbmRleFtpXSkgLSBzdGFydCwKKwkJCQkgICAgICAgc3RhcnQsIHNnaV9nZXRfc3RhcnRfc2VjdG9yKEluZGV4W2ldKS0xKTsKKwkJCWdhcCArPSBzZ2lfZ2V0X3N0YXJ0X3NlY3RvcihJbmRleFtpXSkgLSBzdGFydDsKKwkJCWFkZDJmcmVlbGlzdChzdGFydCwgc2dpX2dldF9zdGFydF9zZWN0b3IoSW5kZXhbaV0pKTsKKwkJfQorCQlzdGFydCA9IHNnaV9nZXRfc3RhcnRfc2VjdG9yKEluZGV4W2ldKQorCQkJKyBzZ2lfZ2V0X251bV9zZWN0b3JzKEluZGV4W2ldKTsKKwkJaWYgKGRlYnVnID4gMSkgeworCQkJaWYgKHZlcmJvc2UpCisJCQkJcHJpbnRmKCIlMmQ6JTEyZFx0JTEyZFx0JTEyZFxuIiwgSW5kZXhbaV0sCisJCQkJICAgICAgIHNnaV9nZXRfc3RhcnRfc2VjdG9yKEluZGV4W2ldKSwKKwkJCQkgICAgICAgc2dpX2dldF9udW1fc2VjdG9ycyhJbmRleFtpXSksCisJCQkJICAgICAgIHNnaV9nZXRfc3lzaWQoSW5kZXhbaV0pKTsKKwkJfQorCX0KKwlpZiAoc3RhcnQgPCBsYXN0YmxvY2spIHsKKwkJaWYgKHZlcmJvc2UpCisJCQlwcmludGYoXygiVW51c2VkIGdhcCBvZiAlOHUgc2VjdG9ycyAtIHNlY3RvcnMgJTh1LSV1XG4iKSwKKwkJCSAgICAgICBsYXN0YmxvY2sgLSBzdGFydCwgc3RhcnQsIGxhc3RibG9jay0xKTsKKwkJZ2FwICs9IGxhc3RibG9jayAtIHN0YXJ0OworCQlhZGQyZnJlZWxpc3Qoc3RhcnQsIGxhc3RibG9jayk7CisJfQorCS8qCisJICogRG9uZSB3aXRoIGFyaXRobWV0aWNzCisJICogR28gZm9yIGRldGFpbHMgbm93CisJICovCisJaWYgKHZlcmJvc2UpIHsKKwkJaWYgKCFzZ2lfZ2V0X251bV9zZWN0b3JzKHNnaV9nZXRfYm9vdHBhcnRpdGlvbigpKSkgeworCQkJcHJpbnRmKF8oIlxuVGhlIGJvb3QgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIikpOworCQl9CisJCWlmICghc2dpX2dldF9udW1fc2VjdG9ycyhzZ2lfZ2V0X3N3YXBwYXJ0aXRpb24oKSkpIHsKKwkJCXByaW50ZihfKCJcblRoZSBzd2FwIHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIpKTsKKwkJfSBlbHNlIHsKKwkJCWlmICgoc2dpX2dldF9zeXNpZChzZ2lfZ2V0X3N3YXBwYXJ0aXRpb24oKSkgIT0gU0dJX1NXQVApCisJCQkgICAgJiYgIChzZ2lfZ2V0X3N5c2lkKHNnaV9nZXRfc3dhcHBhcnRpdGlvbigpKSAhPSBMSU5VWF9TV0FQKSkKKwkJCQlwcmludGYoXygiXG5UaGUgc3dhcCBwYXJ0aXRpb24gaGFzIG5vIHN3YXAgdHlwZS5cbiIpKTsKKwkJfQorCQlpZiAoc2dpX2NoZWNrX2Jvb3RmaWxlKCIvdW5peCIpKQorCQkJcHJpbnRmKF8oIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iKSk7CisJfQorCXJldHVybiAoZ2FwID4gMCkgPyAxIDogKGdhcCA9PSAwKSA/IDAgOiAtMTsKK30KKworaW50CitzZ2lfY2hhbmdlX3N5c2lkKGludCBpLCBpbnQgc3lzKQoreworCWlmIChzZ2lfZ2V0X251bV9zZWN0b3JzKGkpID09IDApIC8qIGNhdWdodCBhbHJlYWR5IGJlZm9yZSwgLi4uICovIHsKKwkJcHJpbnRmKF8oIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iKSk7CisJCXJldHVybiAwOworCX0KKwlpZiAoKChzeXMgIT0gRU5USVJFX0RJU0spICYmIChzeXMgIT0gU0dJX1ZPTEhEUikpCisJICAgICYmIChzZ2lfZ2V0X3N0YXJ0X3NlY3RvcihpKTwxKSkgeworCQlyZWFkX2NoYXJzKAorCQkJXygiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorCQkJICAiaXMgb2YgdHlwZSBcIlNHSSB2b2xoZHJcIiwgdGhlIElSSVggc3lzdGVtIHdpbGwgcmVseSBvbiBpdCB0b1xuIgorCQkJICAicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKwkJCSAgIk9ubHkgdGhlIFwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrIHNlY3Rpb24gbWF5IHZpb2xhdGUgdGhpcy5cbiIKKwkJCSAgIlR5cGUgWUVTIGlmIHlvdSBhcmUgc3VyZSBhYm91dCB0YWdnaW5nIHRoaXMgcGFydGl0aW9uIGRpZmZlcmVudGx5LlxuIikpOworCQlpZiAoc3RyY21wIChsaW5lX3B0ciwgXygiWUVTXG4iKSkpCisJCQlyZXR1cm4gMDsKKwl9CisJc2dpbGFiZWwtPnBhcnRpdGlvbnNbaV0uaWQgPSBTU1dBUDMyKHN5cyk7CisJcmV0dXJuIDE7Cit9CisKKy8qIHJldHVybnMgcGFydGl0aW9uIGluZGV4IG9mIGZpcnN0IGVudHJ5IG1hcmtlZCBhcyBlbnRpcmUgZGlzayAqLworc3RhdGljIGludAorc2dpX2VudGlyZSh2b2lkKSB7CisJaW50IGk7CisKKwlmb3IgKGk9MDsgaTwxNjsgaSsrKQorCQlpZiAoc2dpX2dldF9zeXNpZChpKSA9PSBTR0lfVk9MVU1FKQorCQkJcmV0dXJuIGk7CisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgdm9pZAorc2dpX3NldF9wYXJ0aXRpb24oaW50IGksIHVuc2lnbmVkIGludCBzdGFydCwgdW5zaWduZWQgaW50IGxlbmd0aCwgaW50IHN5cykgeworCXNnaWxhYmVsLT5wYXJ0aXRpb25zW2ldLmlkID0gU1NXQVAzMihzeXMpOworCXNnaWxhYmVsLT5wYXJ0aXRpb25zW2ldLm51bV9zZWN0b3JzID0gU1NXQVAzMihsZW5ndGgpOworCXNnaWxhYmVsLT5wYXJ0aXRpb25zW2ldLnN0YXJ0X3NlY3RvciA9IFNTV0FQMzIoc3RhcnQpOworCXNldF9jaGFuZ2VkKGkpOworCWlmIChzZ2lfZ2FwcygpIDwgMCkJLyogcmVidWlsZCBmcmVlbGlzdCAqLworCQlwcmludGYoXygiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIpKTsKK30KKworc3RhdGljIHZvaWQKK3NnaV9zZXRfZW50aXJlKHZvaWQpIHsKKwlpbnQgbjsKKworCWZvciAobj0xMDsgbjxwYXJ0aXRpb25zOyBuKyspIHsKKwkJaWYgKCFzZ2lfZ2V0X251bV9zZWN0b3JzKG4pKSB7CisJCQlzZ2lfc2V0X3BhcnRpdGlvbihuLCAwLCBzZ2lfZ2V0X2xhc3RibG9jaygpLCBTR0lfVk9MVU1FKTsKKwkJCWJyZWFrOworCQl9CisJfQorfQorCitzdGF0aWMKK3ZvaWQKK3NnaV9zZXRfdm9saGRyKHZvaWQpCit7CisJaW50IG47CisKKwlmb3IgKG49ODsgbjxwYXJ0aXRpb25zOyBuKyspIHsKKwkJaWYgKCFzZ2lfZ2V0X251bV9zZWN0b3JzKG4pKSB7CisJCQkvKgorCQkJICogQ2hvb3NlIHNhbWUgZGVmYXVsdCB2b2x1bWUgaGVhZGVyIHNpemUKKwkJCSAqIGFzIElSSVggZnggdXNlcy4KKwkJCSAqLworCQkJaWYgKDQwOTYgPCBzZ2lfZ2V0X2xhc3RibG9jaygpKQorCQkJCXNnaV9zZXRfcGFydGl0aW9uKG4sIDAsIDQwOTYsIFNHSV9WT0xIRFIpOworCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKK3ZvaWQKK3NnaV9kZWxldGVfcGFydGl0aW9uKGludCBpKQoreworCXNnaV9zZXRfcGFydGl0aW9uKGksIDAsIDAsIDApOworfQorCit2b2lkCitzZ2lfYWRkX3BhcnRpdGlvbihpbnQgbiwgaW50IHN5cykKK3sKKwljaGFyIG1lc2dbMjU2XTsKKwl1bnNpZ25lZCBpbnQgZmlyc3Q9MCwgbGFzdD0wOworCisJaWYgKG4gPT0gMTApIHsKKwkJc3lzID0gU0dJX1ZPTFVNRTsKKwl9IGVsc2UgaWYgKG4gPT0gOCkgeworCQlzeXMgPSAwOworCX0KKwlpZiAoc2dpX2dldF9udW1fc2VjdG9ycyhuKSkgeworCQlwcmludGYoXygiUGFydGl0aW9uICVkIGlzIGFscmVhZHkgZGVmaW5lZC4gIERlbGV0ZSAiCisJCQkgIml0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iKSwgbiArIDEpOworCQlyZXR1cm47CisJfQorCWlmICgoc2dpX2VudGlyZSgpID09IC0xKQorCSAgICAmJiAgKHN5cyAhPSBTR0lfVk9MVU1FKSkgeworCQlwcmludGYoXygiQXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBlbnRpcmUgZGlzayBlbnRyeSBhdXRvbWF0aWNhbGx5LlxuIikpOworCQlzZ2lfc2V0X2VudGlyZSgpOworCQlzZ2lfc2V0X3ZvbGhkcigpOworCX0KKwlpZiAoKHNnaV9nYXBzKCkgPT0gMCkgJiYgIChzeXMgIT0gU0dJX1ZPTFVNRSkpIHsKKwkJcHJpbnRmKF8oIlRoZSBlbnRpcmUgZGlzayBpcyBhbHJlYWR5IGNvdmVyZWQgd2l0aCBwYXJ0aXRpb25zLlxuIikpOworCQlyZXR1cm47CisJfQorCWlmIChzZ2lfZ2FwcygpIDwgMCkgeworCQlwcmludGYoXygiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iKSk7CisJCXJldHVybjsKKwl9CisJc25wcmludGYobWVzZywgc2l6ZW9mKG1lc2cpLCBfKCJGaXJzdCAlcyIpLCBzdHJfdW5pdHMoU0lOR1VMQVIpKTsKKwlmb3IgKDs7KSB7CisJCWlmIChzeXMgPT0gU0dJX1ZPTFVNRSkgeworCQkJbGFzdCA9IHNnaV9nZXRfbGFzdGJsb2NrKCk7CisJCQlmaXJzdCA9IHJlYWRfaW50KDAsIDAsIGxhc3QtMSwgMCwgbWVzZyk7CisJCQlpZiAoZmlyc3QgIT0gMCkgeworCQkJCXByaW50ZihfKCJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCBlbGV2ZW50aCBwYXJ0aXRpb25cbiIKKwkJCQkJICJjb3ZlcnMgdGhlIGVudGlyZSBkaXNrIGFuZCBpcyBvZiB0eXBlIGBTR0kgdm9sdW1lJ1xuIikpOworCQkJfQorCQl9IGVsc2UgeworCQkJZmlyc3QgPSBmcmVlbGlzdFswXS5maXJzdDsKKwkJCWxhc3QgID0gZnJlZWxpc3RbMF0ubGFzdDsKKwkJCWZpcnN0ID0gcmVhZF9pbnQoc2Nyb3VuZChmaXJzdCksIHNjcm91bmQoZmlyc3QpLCBzY3JvdW5kKGxhc3QpLTEsCisJCQkJCSAwLCBtZXNnKTsKKwkJfQorCQlpZiAoZGlzcGxheV9pbl9jeWxfdW5pdHMpCisJCQlmaXJzdCAqPSB1bml0c19wZXJfc2VjdG9yOworCQllbHNlCisJCQlmaXJzdCA9IGZpcnN0OyAvKiBhbGlnbiB0byBjeWxpbmRlciBpZiB5b3Uga25vdyBob3cgLi4uICovCisJCWlmICghbGFzdCkKKwkJCWxhc3QgPSBpc2luZnJlZWxpc3QoZmlyc3QpOworCQlpZiAobGFzdCA9PSAwKSB7CisJCQlwcmludGYoXygiWW91IHdpbGwgZ2V0IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suICIKKwkJCQkgIkZpeCBpdCBmaXJzdCFcbiIpKTsKKwkJfSBlbHNlCisJCQlicmVhazsKKwl9CisJc25wcmludGYobWVzZywgc2l6ZW9mKG1lc2cpLCBfKCIgTGFzdCAlcyIpLCBzdHJfdW5pdHMoU0lOR1VMQVIpKTsKKwlsYXN0ID0gcmVhZF9pbnQoc2Nyb3VuZChmaXJzdCksIHNjcm91bmQobGFzdCktMSwgc2Nyb3VuZChsYXN0KS0xLAorCQkJc2Nyb3VuZChmaXJzdCksIG1lc2cpKzE7CisJaWYgKGRpc3BsYXlfaW5fY3lsX3VuaXRzKQorCQlsYXN0ICo9IHVuaXRzX3Blcl9zZWN0b3I7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCWVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJCWxhc3QgPSBsYXN0OyAvKiBhbGlnbiB0byBjeWxpbmRlciBpZiBZb3Uga25vdyBob3cgLi4uICovCisJaWYgKChzeXMgPT0gU0dJX1ZPTFVNRSkgJiYgKGZpcnN0ICE9IDAgfHwgbGFzdCAhPSBzZ2lfZ2V0X2xhc3RibG9jaygpKSkKKwkJcHJpbnRmKF8oIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IGVsZXZlbnRoIHBhcnRpdGlvblxuIgorCQkJICJjb3ZlcnMgdGhlIGVudGlyZSBkaXNrIGFuZCBpcyBvZiB0eXBlIGBTR0kgdm9sdW1lJ1xuIikpOworCXNnaV9zZXRfcGFydGl0aW9uKG4sIGZpcnN0LCBsYXN0LWZpcnN0LCBzeXMpOworfQorCit2b2lkCitjcmVhdGVfc2dpbGFiZWwodm9pZCkKK3sKKwlzdHJ1Y3QgaGRfZ2VvbWV0cnkgZ2VvbWV0cnk7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgaW50IHN0YXJ0OworCQl1bnNpZ25lZCBpbnQgbnNlY3Q7CisJCWludCBzeXNpZDsKKwl9IG9sZFs0XTsKKwlpbnQgaT0wOworCXVuc2lnbmVkIGxvbmcgbG9uZyBsbHNlY3RvcnM7CisJaW50IHJlczsgCQkvKiB0aGUgcmVzdWx0IGZyb20gdGhlIGlvY3RsICovCisJaW50IHNlY19mYWM7IAkJLyogdGhlIHNlY3RvciBmYWN0b3IgKi8KKworCXNlY19mYWMgPSBzZWN0b3Jfc2l6ZSAvIDUxMjsJLyogZGV0ZXJtaW5lIHRoZSBzZWN0b3IgZmFjdG9yICovCisKKwlmcHJpbnRmKHN0ZGVyciwKKwkJXygiQnVpbGRpbmcgYSBuZXcgU0dJIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKwkJICAidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorCQkgICJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuXG4iKSk7CisKKwlvdGhlcl9lbmRpYW4gPSAoQllURV9PUkRFUiA9PSBMSVRUTEVfRU5ESUFOKTsKKworCXJlcyA9IGJsa2Rldl9nZXRfc2VjdG9ycyhmZCwgJmxsc2VjdG9ycyk7CisKKyNpZmRlZiBIRElPX0dFVEdFTworCWlmICghaW9jdGwoZmQsIEhESU9fR0VUR0VPLCAmZ2VvbWV0cnkpKSB7CisJCWhlYWRzID0gZ2VvbWV0cnkuaGVhZHM7CisJCXNlY3RvcnMgPSBnZW9tZXRyeS5zZWN0b3JzOworCQlpZiAocmVzID09IDApIHsKKwkJCS8qIHRoZSBnZXQgZGV2aWNlIHNpemUgaW9jdGwgd2FzIHN1Y2Nlc3NmdWwgKi8KKwkJCXVuc2lnbmVkIGxvbmcgbG9uZyBsbGN5bHM7CisJCQlsbGN5bHMgPSBsbHNlY3RvcnMgLyAoaGVhZHMgKiBzZWN0b3JzICogc2VjX2ZhYyk7CisJCQljeWxpbmRlcnMgPSBsbGN5bHM7CisJCQlpZiAoY3lsaW5kZXJzICE9IGxsY3lscykJLyogdHJ1bmNhdGVkPyAqLworCQkJCWN5bGluZGVycyA9IH4wOworCQl9IGVsc2UgeworCQkJLyogb3RoZXJ3aXNlIHByaW50IGVycm9yIGFuZCB1c2UgdHJ1bmNhdGVkIHZlcnNpb24gKi8KKwkJCWN5bGluZGVycyA9IGdlb21ldHJ5LmN5bGluZGVyczsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oIldhcm5pbmc6ICBCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlcy4gICIKKwkJCQkgICJVc2luZyBnZW9tZXRyeSBjeWxpbmRlciB2YWx1ZSBvZiAlZC5cbiIKKwkJCQkgICJUaGlzIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgZm9yIGRldmljZXMiCisJCQkJICAiID4gMzMuOCBHQi5cbiIpLCBkaXNrX2RldmljZSwgY3lsaW5kZXJzKTsKKwkJfQorCX0KKyNlbmRpZgorCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKwkJb2xkW2ldLnN5c2lkID0gMDsKKwkJaWYgKHZhbGlkX3BhcnRfdGFibGVfZmxhZyhNQlJidWZmZXIpKSB7CisJCQlpZiAoZ2V0X3BhcnRfdGFibGUoaSktPnN5c19pbmQpIHsKKwkJCQlvbGRbaV0uc3lzaWQgPSBnZXRfcGFydF90YWJsZShpKS0+c3lzX2luZDsKKwkJCQlvbGRbaV0uc3RhcnQgPSBnZXRfc3RhcnRfc2VjdChnZXRfcGFydF90YWJsZShpKSk7CisJCQkJb2xkW2ldLm5zZWN0ID0gZ2V0X25yX3NlY3RzKGdldF9wYXJ0X3RhYmxlKGkpKTsKKwkJCQlwcmludGYoXygiVHJ5aW5nIHRvIGtlZXAgcGFyYW1ldGVycyBvZiBwYXJ0aXRpb24gJWQuXG4iKSwgaSk7CisJCQkJaWYgKGRlYnVnKQorCQkJCQlwcmludGYoXygiSUQ9JTAyeFx0U1RBUlQ9JWRcdExFTkdUSD0lZFxuIiksCisJCQkJCSAgICAgICBvbGRbaV0uc3lzaWQsIG9sZFtpXS5zdGFydCwgb2xkW2ldLm5zZWN0KTsKKwkJCX0KKwkJfQorCX0KKworCXplcm9pemVfbWJyX2J1ZmZlcigpOworCXNnaWxhYmVsLT5tYWdpYyA9IFNTV0FQMzIoU0dJX0xBQkVMX01BR0lDKTsKKwlzZ2lsYWJlbC0+Ym9vdF9wYXJ0ID0gU1NXQVAxNigwKTsKKwlzZ2lsYWJlbC0+c3dhcF9wYXJ0ID0gU1NXQVAxNigxKTsKKworCS8qIHNpemVvZihzZ2lsYWJlbC0+Ym9vdF9maWxlKSA9IDE2ID4gNiAqLworCW1lbXNldChzZ2lsYWJlbC0+Ym9vdF9maWxlLCAwLCAxNik7CisJc3RyY3B5KChjaGFyICopIHNnaWxhYmVsLT5ib290X2ZpbGUsICIvdW5peCIpOworCisJc2dpbGFiZWwtPmRldnBhcmFtLnNrZXcJCQk9ICgwKTsKKwlzZ2lsYWJlbC0+ZGV2cGFyYW0uZ2FwMQkJCT0gKDApOworCXNnaWxhYmVsLT5kZXZwYXJhbS5nYXAyCQkJPSAoMCk7CisJc2dpbGFiZWwtPmRldnBhcmFtLnNwYXJlY3lsCQkJPSAoMCk7CisJc2dpbGFiZWwtPmRldnBhcmFtLnBjeWxjb3VudAkJPSBTU1dBUDE2KGdlb21ldHJ5LmN5bGluZGVycyk7CisJc2dpbGFiZWwtPmRldnBhcmFtLmhlYWRfdm9sMAkJPSBTU1dBUDE2KDApOworCXNnaWxhYmVsLT5kZXZwYXJhbS5udHJrcwkJCT0gU1NXQVAxNihnZW9tZXRyeS5oZWFkcyk7CisJLyogdHJhY2tzL2N5bGluZGVyIChoZWFkcykgKi8KKwlzZ2lsYWJlbC0+ZGV2cGFyYW0uY21kX3RhZ19xdWV1ZV9kZXB0aAk9ICgwKTsKKwlzZ2lsYWJlbC0+ZGV2cGFyYW0udW51c2VkMAkJCT0gKDApOworCXNnaWxhYmVsLT5kZXZwYXJhbS51bnVzZWQxCQkJPSBTU1dBUDE2KDApOworCXNnaWxhYmVsLT5kZXZwYXJhbS5uc2VjdAkJCT0gU1NXQVAxNihnZW9tZXRyeS5zZWN0b3JzKTsKKwkvKiBzZWN0b3JzL3RyYWNrICovCisJc2dpbGFiZWwtPmRldnBhcmFtLmJ5dGVzCQkJPSBTU1dBUDE2KHNlY3Rvcl9zaXplKTsKKwlzZ2lsYWJlbC0+ZGV2cGFyYW0uaWxmYWN0CQkJPSBTU1dBUDE2KDEpOworCXNnaWxhYmVsLT5kZXZwYXJhbS5mbGFncwkJCT0gU1NXQVAzMihUUkFDS19GV0R8XAorCQkJCQkJCQkgIElHTk9SRV9FUlJPUlN8UkVTRUVLKTsKKwlzZ2lsYWJlbC0+ZGV2cGFyYW0uZGF0YXJhdGUJCQk9IFNTV0FQMzIoMCk7CisJc2dpbGFiZWwtPmRldnBhcmFtLnJldHJpZXNfb25fZXJyb3IJCT0gU1NXQVAzMigxKTsKKwlzZ2lsYWJlbC0+ZGV2cGFyYW0ubXNfcGVyX3dvcmQJCT0gU1NXQVAzMigwKTsKKwlzZ2lsYWJlbC0+ZGV2cGFyYW0ueHlsb2dpY3NfZ2FwMQkJPSBTU1dBUDE2KDApOworCXNnaWxhYmVsLT5kZXZwYXJhbS54eWxvZ2ljc19zeW5jZGVsYXkJPSBTU1dBUDE2KDApOworCXNnaWxhYmVsLT5kZXZwYXJhbS54eWxvZ2ljc19yZWFkZGVsYXkJPSBTU1dBUDE2KDApOworCXNnaWxhYmVsLT5kZXZwYXJhbS54eWxvZ2ljc19nYXAyCQk9IFNTV0FQMTYoMCk7CisJc2dpbGFiZWwtPmRldnBhcmFtLnh5bG9naWNzX3JlYWRnYXRlCT0gU1NXQVAxNigwKTsKKwlzZ2lsYWJlbC0+ZGV2cGFyYW0ueHlsb2dpY3Nfd3JpdGVjb250CT0gU1NXQVAxNigwKTsKKwltZW1zZXQoJihzZ2lsYWJlbC0+ZGlyZWN0b3J5KSwgMCwgc2l6ZW9mKHN0cnVjdCB2b2x1bWVfZGlyZWN0b3J5KSoxNSk7CisJbWVtc2V0KCYoc2dpbGFiZWwtPnBhcnRpdGlvbnMpLCAwLCBzaXplb2Yoc3RydWN0IHNnaV9wYXJ0aXRpb24pKjE2KTsKKwlzZ2lfbGFiZWwgID0gIDE7CisJcGFydGl0aW9ucyA9IDE2OworCXZvbHVtZXMgICAgPSAxNTsKKwlzZ2lfc2V0X2VudGlyZSgpOworCXNnaV9zZXRfdm9saGRyKCk7CisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQlpZiAob2xkW2ldLnN5c2lkKSB7CisJCQlzZ2lfc2V0X3BhcnRpdGlvbihpLCBvbGRbaV0uc3RhcnQsIG9sZFtpXS5uc2VjdCwgb2xkW2ldLnN5c2lkKTsKKwkJfQorCX0KK30KKwordm9pZAorc2dpX3NldF9pbGZhY3Qodm9pZCkKK3sKKwkvKiBkbyBub3RoaW5nIGluIHRoZSBiZWdpbm5pbmcgKi8KK30KKwordm9pZAorc2dpX3NldF9yc3BlZWQodm9pZCkKK3sKKwkvKiBkbyBub3RoaW5nIGluIHRoZSBiZWdpbm5pbmcgKi8KK30KKwordm9pZAorc2dpX3NldF9wY3lsY291bnQodm9pZCkKK3sKKwkvKiBkbyBub3RoaW5nIGluIHRoZSBiZWdpbm5pbmcgKi8KK30KKwordm9pZAorc2dpX3NldF94Y3lsKHZvaWQpCit7CisJLyogZG8gbm90aGluZyBpbiB0aGUgYmVnaW5uaW5nICovCit9CisKK3ZvaWQKK3NnaV9zZXRfbmN5bCh2b2lkKQoreworCS8qIGRvIG5vdGhpbmcgaW4gdGhlIGJlZ2lubmluZyAqLworfQorCisvKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgKi8KKworc2dpaW5mbyAqCitmaWxsX3NnaWluZm8odm9pZCkKK3sKKwlzZ2lpbmZvKmluZm89Y2FsbG9jKDEsIHNpemVvZihzZ2lpbmZvKSk7CisJaW5mby0+bWFnaWM9U1NXQVAzMihTR0lfSU5GT19NQUdJQyk7CisJaW5mby0+YjE9U1NXQVAzMigtMSk7CisJaW5mby0+YjI9U1NXQVAxNigtMSk7CisJaW5mby0+YjM9U1NXQVAxNigxKTsKKwkvKiBZb3UgbWF5IHdhbnQgdG8gcmVwbGFjZSB0aGlzIHN0cmluZyAhISEhISEhICovCisJc3RyY3B5KChjaGFyICopIGluZm8tPnNjc2lfc3RyaW5nLCAiSUJNIE9FTSAwNjYyUzEyICAgICAgICAgMyAzMCIpOworCXN0cmNweSgoY2hhciAqKSBpbmZvLT5zZXJpYWwsICIwMDAwIik7CisJaW5mby0+Y2hlY2sxODE2ID0gU1NXQVAxNigxOCoyNTYgKzE2KTsKKwlzdHJjcHkoKGNoYXIgKikgaW5mby0+aW5zdGFsbGVyLCAiU2Z4IHZlcnNpb24gNS4zLCBPY3QgMTgsIDE5OTQiKTsKKwlyZXR1cm4gaW5mbzsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrc2dpbGFiZWwuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrc2dpbGFiZWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDQ1ZmE5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2tzZ2lsYWJlbC5oCkBAIC0wLDAgKzEsMTM5IEBACisjaWZuZGVmIEZESVNLX1NHSV9MQUJFTF9ICisjZGVmaW5lIEZESVNLX1NHSV9MQUJFTF9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgImJpdG9wcy5oIgorCisvKgorICogQ29weXJpZ2h0IChDKSBBbmRyZWFzIE5ldXBlciwgU2VwIDE5OTguCisgKglUaGlzIGZpbGUgbWF5IGJlIG1vZGlmaWVkIGFuZCByZWRpc3RyaWJ1dGVkIHVuZGVyCisgKgl0aGUgdGVybXMgb2YgdGhlIEdOVSBQdWJsaWMgTGljZW5zZS4KKyAqLworCitzdHJ1Y3QgZGV2aWNlX3BhcmFtZXRlciB7IC8qIDQ4IGJ5dGVzICovCisJdW5zaWduZWQgY2hhciAgc2tldzsKKwl1bnNpZ25lZCBjaGFyICBnYXAxOworCXVuc2lnbmVkIGNoYXIgIGdhcDI7CisJdW5zaWduZWQgY2hhciAgc3BhcmVjeWw7CisJdW5zaWduZWQgc2hvcnQgcGN5bGNvdW50OworCXVuc2lnbmVkIHNob3J0IGhlYWRfdm9sMDsKKwl1bnNpZ25lZCBzaG9ydCBudHJrczsJLyogdHJhY2tzIGluIGN5bCAwIG9yIHZvbCAwICovCisJdW5zaWduZWQgY2hhciAgY21kX3RhZ19xdWV1ZV9kZXB0aDsKKwl1bnNpZ25lZCBjaGFyICB1bnVzZWQwOworCXVuc2lnbmVkIHNob3J0IHVudXNlZDE7CisJdW5zaWduZWQgc2hvcnQgbnNlY3Q7CS8qIHNlY3RvcnMvdHJhY2tzIGluIGN5bCAwIG9yIHZvbCAwICovCisJdW5zaWduZWQgc2hvcnQgYnl0ZXM7CisJdW5zaWduZWQgc2hvcnQgaWxmYWN0OworCXVuc2lnbmVkIGludCAgIGZsYWdzOwkJLyogY29udHJvbGxlciBmbGFncyAqLworCXVuc2lnbmVkIGludCAgIGRhdGFyYXRlOworCXVuc2lnbmVkIGludCAgIHJldHJpZXNfb25fZXJyb3I7CisJdW5zaWduZWQgaW50ICAgbXNfcGVyX3dvcmQ7CisJdW5zaWduZWQgc2hvcnQgeHlsb2dpY3NfZ2FwMTsKKwl1bnNpZ25lZCBzaG9ydCB4eWxvZ2ljc19zeW5jZGVsYXk7CisJdW5zaWduZWQgc2hvcnQgeHlsb2dpY3NfcmVhZGRlbGF5OworCXVuc2lnbmVkIHNob3J0IHh5bG9naWNzX2dhcDI7CisJdW5zaWduZWQgc2hvcnQgeHlsb2dpY3NfcmVhZGdhdGU7CisJdW5zaWduZWQgc2hvcnQgeHlsb2dpY3Nfd3JpdGVjb250OworfTsKKworI2RlZmluZQlTR0lfVk9MSERSCTB4MDAKKy8qIDEgYW5kIDIgd2VyZSB1c2VkIGZvciBkcml2ZSB0eXBlcyBubyBsb25nZXIgc3VwcG9ydGVkIGJ5IFNHSSAqLworI2RlZmluZQlTR0lfU1dBUAkweDAzCisvKiA0IGFuZCA1IHdlcmUgZm9yIGZpbGVzeXN0ZW0gdHlwZXMgU0dJIGhhdmVuJ3QgZXZlciBzdXBwb3J0ZWQgb24gTUlQUyBDUFVzICovCisjZGVmaW5lCVNHSV9WT0xVTUUJMHgwNgorI2RlZmluZQlTR0lfRUZTCQkweDA3CisjZGVmaW5lCVNHSV9MVk9MCTB4MDgKKyNkZWZpbmUJU0dJX1JMVk9MCTB4MDkKKyNkZWZpbmUJU0dJX1hGUwkJMHgwYQorI2RlZmluZQlTR0lfWEZTTE9HCTB4MGIKKyNkZWZpbmUJU0dJX1hMVgkJMHgwYworI2RlZmluZQlTR0lfWFZNCQkweDBkCisjZGVmaW5lCUVOVElSRV9ESVNLCVNHSV9WT0xVTUUKKy8qCisgKiBjb250cm9sbGVyIGZsYWdzCisgKi8KKyNkZWZpbmUJU0VDVE9SX1NMSVAJMHgwMQorI2RlZmluZQlTRUNUT1JfRldECTB4MDIKKyNkZWZpbmUJVFJBQ0tfRldECTB4MDQKKyNkZWZpbmUJVFJBQ0tfTVVMVElWT0wJMHgwOAorI2RlZmluZQlJR05PUkVfRVJST1JTCTB4MTAKKyNkZWZpbmUJUkVTRUVLCQkweDIwCisjZGVmaW5lCUNNRFRBR1FfRU5BQkxFCTB4NDAKKwordHlwZWRlZiBzdHJ1Y3QgeworCXVuc2lnbmVkIGludCAgIG1hZ2ljOwkJIC8qIGV4cGVjdCBTR0lfTEFCRUxfTUFHSUMgKi8KKwl1bnNpZ25lZCBzaG9ydCBib290X3BhcnQ7ICAgICAgICAvKiBhY3RpdmUgYm9vdCBwYXJ0aXRpb24gKi8KKwl1bnNpZ25lZCBzaG9ydCBzd2FwX3BhcnQ7ICAgICAgICAvKiBhY3RpdmUgc3dhcCBwYXJ0aXRpb24gKi8KKwl1bnNpZ25lZCBjaGFyICBib290X2ZpbGVbMTZdOyAgICAvKiBuYW1lIG9mIHRoZSBib290ZmlsZSAqLworCXN0cnVjdCBkZXZpY2VfcGFyYW1ldGVyIGRldnBhcmFtOwkvKiAgMSAqIDQ4IGJ5dGVzICovCisJc3RydWN0IHZvbHVtZV9kaXJlY3RvcnkgewkJLyogMTUgKiAxNiBieXRlcyAqLworCQl1bnNpZ25lZCBjaGFyIHZvbF9maWxlX25hbWVbOF07CS8qIGEgY2hhcmFjdGVyIGFycmF5ICovCisJCXVuc2lnbmVkIGludCAgdm9sX2ZpbGVfc3RhcnQ7CS8qIG51bWJlciBvZiBsb2dpY2FsIGJsb2NrICovCisJCXVuc2lnbmVkIGludCAgdm9sX2ZpbGVfc2l6ZTsJLyogbnVtYmVyIG9mIGJ5dGVzICovCisJfSBkaXJlY3RvcnlbMTVdOworCXN0cnVjdCBzZ2lfcGFydGl0aW9uIHsJCQkvKiAxNiAqIDEyIGJ5dGVzICovCisJCXVuc2lnbmVkIGludCBudW1fc2VjdG9yczsJLyogbnVtYmVyIG9mIGJsb2NrcyAqLworCQl1bnNpZ25lZCBpbnQgc3RhcnRfc2VjdG9yOwkvKiBtdXN0IGJlIGN5bGluZGVyIGFsaWduZWQgKi8KKwkJdW5zaWduZWQgaW50IGlkOworCX0gcGFydGl0aW9uc1sxNl07CisJdW5zaWduZWQgaW50ICAgY3N1bTsKKwl1bnNpZ25lZCBpbnQgICBmaWxsYnl0ZXM7Cit9IHNnaV9wYXJ0aXRpb247CisKK3R5cGVkZWYgc3RydWN0IHsKKwl1bnNpZ25lZCBpbnQgICBtYWdpYzsJCS8qIGxvb2tzIGxpa2UgYSBtYWdpYyBudW1iZXIgKi8KKwl1bnNpZ25lZCBpbnQgICBhMjsKKwl1bnNpZ25lZCBpbnQgICBhMzsKKwl1bnNpZ25lZCBpbnQgICBhNDsKKwl1bnNpZ25lZCBpbnQgICBiMTsKKwl1bnNpZ25lZCBzaG9ydCBiMjsKKwl1bnNpZ25lZCBzaG9ydCBiMzsKKwl1bnNpZ25lZCBpbnQgICBjWzE2XTsKKwl1bnNpZ25lZCBzaG9ydCBkWzNdOworCXVuc2lnbmVkIGNoYXIgIHNjc2lfc3RyaW5nWzUwXTsKKwl1bnNpZ25lZCBjaGFyICBzZXJpYWxbMTM3XTsKKwl1bnNpZ25lZCBzaG9ydCBjaGVjazE4MTY7CisJdW5zaWduZWQgY2hhciAgaW5zdGFsbGVyWzIyNV07Cit9IHNnaWluZm87CisKKyNkZWZpbmUJU0dJX0xBQkVMX01BR0lDCQkweDBiZTVhOTQxCisjZGVmaW5lCVNHSV9MQUJFTF9NQUdJQ19TV0FQUEVECTB4NDFhOWU1MGIKKyNkZWZpbmUJU0dJX0lORk9fTUFHSUMJCTB4MDAwNzI5NTkKKyNkZWZpbmUJU0dJX0lORk9fTUFHSUNfU1dBUFBFRAkweDU5MjkwNzAwCisKKyNkZWZpbmUgU1NXQVAxNih4KSAob3RoZXJfZW5kaWFuID8gc3dhYjE2KHgpIDogKHVpbnQxNl90KSh4KSkKKyNkZWZpbmUgU1NXQVAzMih4KSAob3RoZXJfZW5kaWFuID8gc3dhYjMyKHgpIDogKHVpbnQzMl90KSh4KSkKKworLyogZmRpc2suYyAqLworI2RlZmluZSBzZ2lsYWJlbCAoKHNnaV9wYXJ0aXRpb24gKilNQlJidWZmZXIpCisjZGVmaW5lIHNnaXBhcmFtIChzZ2lsYWJlbC0+ZGV2cGFyYW0pCisKKy8qIGZkaXNrc2dpbGFiZWwuYyAqLworZXh0ZXJuIHN0cnVjdAlzeXN0eXBlcyBzZ2lfc3lzX3R5cGVzW107CitleHRlcm4gdm9pZAlzZ2lfbm9sYWJlbCggdm9pZCApOworZXh0ZXJuIGludAljaGVja19zZ2lfbGFiZWwoIHZvaWQgKTsKK2V4dGVybiB2b2lkCXNnaV9saXN0X3RhYmxlKCBpbnQgeHRyYSApOworZXh0ZXJuIGludCAgc2dpX2NoYW5nZV9zeXNpZCggaW50IGksIGludCBzeXMgKTsKK2V4dGVybiB1bnNpZ25lZCBpbnQJc2dpX2dldF9zdGFydF9zZWN0b3IoIGludCBpICk7CitleHRlcm4gdW5zaWduZWQgaW50CXNnaV9nZXRfbnVtX3NlY3RvcnMoIGludCBpICk7CitleHRlcm4gaW50CXNnaV9nZXRfc3lzaWQoIGludCBpICk7CitleHRlcm4gdm9pZAlzZ2lfZGVsZXRlX3BhcnRpdGlvbiggaW50IGkgKTsKK2V4dGVybiB2b2lkCXNnaV9hZGRfcGFydGl0aW9uKCBpbnQgbiwgaW50IHN5cyApOworZXh0ZXJuIHZvaWQJY3JlYXRlX3NnaWxhYmVsKCB2b2lkICk7CitleHRlcm4gdm9pZAljcmVhdGVfc2dpaW5mbyggdm9pZCApOworZXh0ZXJuIGludAl2ZXJpZnlfc2dpKCBpbnQgdmVyYm9zZSApOworZXh0ZXJuIHZvaWQJc2dpX3dyaXRlX3RhYmxlKCB2b2lkICk7CitleHRlcm4gdm9pZAlzZ2lfc2V0X2lsZmFjdCggdm9pZCApOworZXh0ZXJuIHZvaWQJc2dpX3NldF9yc3BlZWQoIHZvaWQgKTsKK2V4dGVybiB2b2lkCXNnaV9zZXRfcGN5bGNvdW50KCB2b2lkICk7CitleHRlcm4gdm9pZAlzZ2lfc2V0X3hjeWwoIHZvaWQgKTsKK2V4dGVybiB2b2lkCXNnaV9zZXRfbmN5bCggdm9pZCApOworZXh0ZXJuIHZvaWQJc2dpX3NldF9ib290cGFydGl0aW9uKCBpbnQgaSApOworZXh0ZXJuIHZvaWQJc2dpX3NldF9zd2FwcGFydGl0aW9uKCBpbnQgaSApOworZXh0ZXJuIGludAlzZ2lfZ2V0X2Jvb3RwYXJ0aXRpb24oIHZvaWQgKTsKK2V4dGVybiBpbnQJc2dpX2dldF9zd2FwcGFydGl0aW9uKCB2b2lkICk7CitleHRlcm4gdm9pZAlzZ2lfc2V0X2Jvb3RmaWxlKCBjb25zdCBjaGFyKiBhRmlsZSApOworZXh0ZXJuIGNvbnN0IGNoYXIgKnNnaV9nZXRfYm9vdGZpbGUoIHZvaWQgKTsKKworI2VuZGlmIC8qIEZESVNLX1NHSV9MQUJFTF9IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza3N1bmxhYmVsLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza3N1bmxhYmVsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFkOWQ0ZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2ZkaXNrc3VubGFiZWwuYwpAQCAtMCwwICsxLDY3OCBAQAorLyoKKyAqIGZkaXNrc3VubGFiZWwuYworICoKKyAqIEkgdGhpbmsgdGhpcyBpcyBtb3N0bHksIG9yIGVudGlyZWx5LCBkdWUgdG8KKyAqIAlKYWt1YiBKZWxpbmVrIChqakBzdW5zaXRlLm1mZi5jdW5pLmN6KSwgSnVseSAxOTk2CisgKgorICogTWVyZ2VkIHdpdGggZmRpc2sgZm9yIG90aGVyIGFyY2hpdGVjdHVyZXMsIGFlYiwgSnVuZSAxOTk4LgorICoKKyAqIFNhdCBNYXIgMjAgRVNUIDE5OTkgQXJuYWxkbyBDYXJ2YWxobyBkZSBNZWxvIDxhY21lQGNvbmVjdGl2YS5jb20uYnI+CisgKiAgICAgIEludGVybmF0aW9uYWxpemF0aW9uCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CQkvKiBzdGRlcnIgKi8KKyNpbmNsdWRlIDxzdGRsaWIuaD4JCS8qIHFzb3J0ICovCisjaW5jbHVkZSA8c3RyaW5nLmg+CQkvKiBzdHJzdHIgKi8KKyNpbmNsdWRlIDx1bmlzdGQuaD4JCS8qIHdyaXRlICovCisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CQkvKiBpb2N0bCAqLworI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CQkvKiBzdGF0ICovCisjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgkvKiBtYWpvciAqLworCisjaW5jbHVkZSAibmxzLmgiCisjaW5jbHVkZSAiYmxrZGV2LmgiCisKKyNpbmNsdWRlIDxlbmRpYW4uaD4KKyNpZmRlZiBIQVZFX0xJTlVYX01BSk9SX0gKKyNpbmNsdWRlIDxsaW51eC9tYWpvci5oPgkvKiBGTE9QUFlfTUFKT1IgKi8KKyNlbmRpZgorCisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAiZmRpc2suaCIKKyNpbmNsdWRlICJmZGlza3N1bmxhYmVsLmgiCisKK3N0YXRpYyBpbnQgICAgIG90aGVyX2VuZGlhbiA9IDA7CitzdGF0aWMgaW50ICAgICBzY3NpX2Rpc2sgPSAwOworc3RhdGljIGludCAgICAgZmxvcHB5ID0gMDsKKworc3RydWN0IHN5c3R5cGVzIHN1bl9zeXNfdHlwZXNbXSA9IHsKKwl7U1VOX1RBR19VTkFTU0lHTkVELCBOXygiVW5hc3NpZ25lZCIpfSwKKwl7U1VOX1RBR19CT09ULCBOXygiQm9vdCIpfSwKKwl7U1VOX1RBR19ST09ULCBOXygiU3VuT1Mgcm9vdCIpfSwKKwl7U1VOX1RBR19TV0FQLCBOXygiU3VuT1Mgc3dhcCIpfSwKKwl7U1VOX1RBR19VU1IsIE5fKCJTdW5PUyB1c3IiKX0sCisJe1NVTl9UQUdfQkFDS1VQLCBOXygiV2hvbGUgZGlzayIpfSwKKwl7U1VOX1RBR19TVEFORCwgTl8oIlN1bk9TIHN0YW5kIil9LAorCXtTVU5fVEFHX1ZBUiwgTl8oIlN1bk9TIHZhciIpfSwKKwl7U1VOX1RBR19IT01FLCBOXygiU3VuT1MgaG9tZSIpfSwKKwl7U1VOX1RBR19BTFRTQ1RSLCBOXygiU3VuT1MgYWx0IHNlY3RvcnMiKX0sCisJe1NVTl9UQUdfQ0FDSEUsIE5fKCJTdW5PUyBjYWNoZWZzIil9LAorCXtTVU5fVEFHX1JFU0VSVkVELCBOXygiU3VuT1MgcmVzZXJ2ZWQiKX0sCisJe1NVTl9UQUdfTElOVVhfU1dBUCwgTl8oIkxpbnV4IHN3YXAiKX0sCisJe1NVTl9UQUdfTElOVVhfTkFUSVZFLCBOXygiTGludXggbmF0aXZlIil9LAorCXtTVU5fVEFHX0xJTlVYX0xWTSwgTl8oIkxpbnV4IExWTSIpfSwKKwl7U1VOX1RBR19MSU5VWF9SQUlELCBOXygiTGludXggcmFpZCBhdXRvZGV0ZWN0Iil9LAorCXsgMCwgTlVMTCB9Cit9OworCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHNob3J0IF9fc3dhcDE2KHVuc2lnbmVkIHNob3J0IHgpIHsKKyAgICAgICAgcmV0dXJuICgoKHVpbnQxNl90KSh4KSAmIDB4RkYpIDw8IDgpIHwgKCgodWludDE2X3QpKHgpICYgMHhGRjAwKSA+PiA4KTsKK30KK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgX19zd2FwMzIodWludDMyX3QgeCkgeworICAgICAgICByZXR1cm4gKCgodWludDMyX3QpKHgpICYgMHhGRikgPDwgMjQpIHwgKCgodWludDMyX3QpKHgpICYgMHhGRjAwKSA8PCA4KSB8ICgoKHVpbnQzMl90KSh4KSAmIDB4RkYwMDAwKSA+PiA4KSB8ICgoKHVpbnQzMl90KSh4KSAmIDB4RkYwMDAwMDApID4+IDI0KTsKK30KKworI2RlZmluZSBTU1dBUDE2KHgpIChvdGhlcl9lbmRpYW4gPyBfX3N3YXAxNih4KSBcCisJCQkJIDogKHVpbnQxNl90KSh4KSkKKyNkZWZpbmUgU1NXQVAzMih4KSAob3RoZXJfZW5kaWFuID8gX19zd2FwMzIoeCkgXAorCQkJCSA6ICh1aW50MzJfdCkoeCkpCisKKyNpZm5kZWYgRkxPUFBZX01BSk9SCisjZGVmaW5lIEZMT1BQWV9NQUpPUiAyCisjZW5kaWYKKyNpZm5kZWYgSURFMF9NQUpPUgorI2RlZmluZSBJREUwX01BSk9SIDMKKyNlbmRpZgorI2lmbmRlZiBJREUxX01BSk9SCisjZGVmaW5lIElERTFfTUFKT1IgMjIKKyNlbmRpZgordm9pZCBndWVzc19kZXZpY2VfdHlwZShpbnQgZmQpCit7CisJc3RydWN0IHN0YXQgYm9vdHN0YXQ7CisKKwlpZiAoZnN0YXQgKGZkLCAmYm9vdHN0YXQpIDwgMCkgeworICAgICAgICAgICAgICAgIHNjc2lfZGlzayA9IDA7CisgICAgICAgICAgICAgICAgZmxvcHB5ID0gMDsKKwl9IGVsc2UgaWYgKFNfSVNCTEsoYm9vdHN0YXQuc3RfbW9kZSkKKwkJICAgJiYgKG1ham9yKGJvb3RzdGF0LnN0X3JkZXYpID09IElERTBfTUFKT1IgfHwKKwkJICAgICAgIG1ham9yKGJvb3RzdGF0LnN0X3JkZXYpID09IElERTFfTUFKT1IpKSB7CisgICAgICAgICAgICAgICAgc2NzaV9kaXNrID0gMDsKKyAgICAgICAgICAgICAgICBmbG9wcHkgPSAwOworCX0gZWxzZSBpZiAoU19JU0JMSyhib290c3RhdC5zdF9tb2RlKQorCQkgICAmJiBtYWpvcihib290c3RhdC5zdF9yZGV2KSA9PSBGTE9QUFlfTUFKT1IpIHsKKyAgICAgICAgICAgICAgICBzY3NpX2Rpc2sgPSAwOworICAgICAgICAgICAgICAgIGZsb3BweSA9IDE7CisJfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzY3NpX2Rpc2sgPSAxOworICAgICAgICAgICAgICAgIGZsb3BweSA9IDA7CisJfQorfQorCitzdGF0aWMgdm9pZCBzZXRfc3VuX3BhcnRpdGlvbihpbnQgaSwgdWludDMyX3Qgc3RhcnQsIHVpbnQzMl90IHN0b3AsIHVpbnQxNl90IHN5c2lkKQoreworCXN1bmxhYmVsLT5wYXJ0X3RhZ3NbaV0udGFnID0gU1NXQVAxNihzeXNpZCk7CisJc3VubGFiZWwtPnBhcnRfdGFnc1tpXS5mbGFnID0gU1NXQVAxNigwKTsKKwlzdW5sYWJlbC0+cGFydGl0aW9uc1tpXS5zdGFydF9jeWxpbmRlciA9CisJCVNTV0FQMzIoc3RhcnQgLyAoaGVhZHMgKiBzZWN0b3JzKSk7CisJc3VubGFiZWwtPnBhcnRpdGlvbnNbaV0ubnVtX3NlY3RvcnMgPQorCQlTU1dBUDMyKHN0b3AgLSBzdGFydCk7CisJc2V0X2NoYW5nZWQoaSk7Cit9CisKK3ZvaWQgc3VuX25vbGFiZWwodm9pZCkKK3sKKwlzdW5fbGFiZWwgPSAwOworCXN1bmxhYmVsLT5tYWdpYyA9IDA7CisJcGFydGl0aW9ucyA9IDQ7Cit9CisKK2ludCBjaGVja19zdW5fbGFiZWwodm9pZCkKK3sKKwl1bnNpZ25lZCBzaG9ydCAqdXNoOworCWludCBjc3VtOworCisJaWYgKHN1bmxhYmVsLT5tYWdpYyAhPSBTVU5fTEFCRUxfTUFHSUMgJiYKKwkgICAgc3VubGFiZWwtPm1hZ2ljICE9IFNVTl9MQUJFTF9NQUdJQ19TV0FQUEVEKSB7CisJCXN1bl9sYWJlbCA9IDA7CisJCW90aGVyX2VuZGlhbiA9IDA7CisJCXJldHVybiAwOworCX0KKwlvdGhlcl9lbmRpYW4gPSAoc3VubGFiZWwtPm1hZ2ljID09IFNVTl9MQUJFTF9NQUdJQ19TV0FQUEVEKTsKKworCXVzaCA9ICgodW5zaWduZWQgc2hvcnQgKikgKHN1bmxhYmVsICsgMSkpIC0gMTsKKwlmb3IgKGNzdW0gPSAwOyB1c2ggPj0gKHVuc2lnbmVkIHNob3J0ICopc3VubGFiZWw7KQorCQljc3VtIF49ICp1c2gtLTsKKworCWlmIChjc3VtKSB7CisJCWZwcmludGYoc3RkZXJyLF8oIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKwkJCQkiUHJvYmFibHkgeW91J2xsIGhhdmUgdG8gc2V0IGFsbCB0aGUgdmFsdWVzLFxuIgorCQkJCSJlLmcuIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMgYW5kIHBhcnRpdGlvbnNcbiIKKwkJCQkib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIpKTsKKwl9IGVsc2UgeworCQlpbnQgbmVlZF9maXhpbmcgPSAwOworCisJCWhlYWRzID0gU1NXQVAxNihzdW5sYWJlbC0+bmhlYWQpOworCQljeWxpbmRlcnMgPSBTU1dBUDE2KHN1bmxhYmVsLT5uY3lsKTsKKwkJc2VjdG9ycyA9IFNTV0FQMTYoc3VubGFiZWwtPm5zZWN0KTsKKworCQlpZiAoc3VubGFiZWwtPnZlcnNpb24gIT0gU1NXQVAzMihTVU5fTEFCRUxfVkVSU0lPTikpIHsKKwkJCWZwcmludGYoc3RkZXJyLF8oIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIiksCisJCQkJU1NXQVAzMihzdW5sYWJlbC0+dmVyc2lvbikpOworCQkJbmVlZF9maXhpbmcgPSAxOworCQl9CisJCWlmIChzdW5sYWJlbC0+c2FuaXR5ICE9IFNTV0FQMzIoU1VOX0xBQkVMX1NBTkUpKSB7CisJCQlmcHJpbnRmKHN0ZGVycixfKCJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3Jvbmcgc2FuaXR5IFsweCUwOHhdLlxuIiksCisJCQkJU1NXQVAzMihzdW5sYWJlbC0+c2FuaXR5KSk7CisJCQluZWVkX2ZpeGluZyA9IDE7CisJCX0KKwkJaWYgKHN1bmxhYmVsLT5udW1fcGFydGl0aW9ucyAhPSBTU1dBUDE2KFNVTl9OVU1fUEFSVElUSU9OUykpIHsKKwkJCWZwcmludGYoc3RkZXJyLF8oIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIiksCisJCQkJU1NXQVAxNihzdW5sYWJlbC0+bnVtX3BhcnRpdGlvbnMpKTsKKwkJCW5lZWRfZml4aW5nID0gMTsKKwkJfQorCQlpZiAobmVlZF9maXhpbmcpIHsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJXYXJuaW5nOiBXcm9uZyB2YWx1ZXMgbmVlZCB0byBiZSAiCisJCQkJCSAgImZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCAiCisJCQkJCSAgImJ5IHcocml0ZSlcbiIpKTsKKwkJCXN1bmxhYmVsLT52ZXJzaW9uID0gU1NXQVAzMihTVU5fTEFCRUxfVkVSU0lPTik7CisJCQlzdW5sYWJlbC0+c2FuaXR5ID0gU1NXQVAzMihTVU5fTEFCRUxfU0FORSk7CisJCQlzdW5sYWJlbC0+bnVtX3BhcnRpdGlvbnMgPSBTU1dBUDE2KFNVTl9OVU1fUEFSVElUSU9OUyk7CisKKwkJCXVzaCA9ICh1bnNpZ25lZCBzaG9ydCAqKXN1bmxhYmVsOworCQkJY3N1bSA9IDA7CisJCQl3aGlsZSh1c2ggPCAodW5zaWduZWQgc2hvcnQgKikoJnN1bmxhYmVsLT5ja3N1bSkpCisJCQkJY3N1bSBePSAqdXNoKys7CisJCQlzdW5sYWJlbC0+Y2tzdW0gPSBjc3VtOworCisJCQlzZXRfY2hhbmdlZCgwKTsKKwkJfQorCX0KKwl1cGRhdGVfdW5pdHMoKTsKKwlzdW5fbGFiZWwgPSAxOworCXBhcnRpdGlvbnMgPSBTVU5fTlVNX1BBUlRJVElPTlM7CisJcmV0dXJuIDE7Cit9CisKK3ZvaWQgY3JlYXRlX3N1bmxhYmVsKHZvaWQpCit7CisJc3RydWN0IGhkX2dlb21ldHJ5IGdlb21ldHJ5OworCXVuc2lnbmVkIGxvbmcgbG9uZyBsbHNlY3RvcnMsIGxsY3lsczsKKwl1bnNpZ25lZCBpbnQgbmRpdjsKKwlpbnQgcmVzLCBzZWNfZmFjOworCisJZnByaW50ZihzdGRlcnIsCisJXygiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyAgICAgICAJInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKwkiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cblxuIikpOworI2lmIEJZVEVfT1JERVIgPT0gTElUVExFX0VORElBTgorCW90aGVyX2VuZGlhbiA9IDE7CisjZWxzZQorCW90aGVyX2VuZGlhbiA9IDA7CisjZW5kaWYKKwl6ZXJvaXplX21icl9idWZmZXIoKTsKKwlzdW5sYWJlbC0+bWFnaWMgPSBTU1dBUDE2KFNVTl9MQUJFTF9NQUdJQyk7CisJc3VubGFiZWwtPnNhbml0eSA9IFNTV0FQMzIoU1VOX0xBQkVMX1NBTkUpOworCXN1bmxhYmVsLT52ZXJzaW9uID0gU1NXQVAzMihTVU5fTEFCRUxfVkVSU0lPTik7CisJc3VubGFiZWwtPm51bV9wYXJ0aXRpb25zID0gU1NXQVAxNihTVU5fTlVNX1BBUlRJVElPTlMpOworCisJcmVzID0gYmxrZGV2X2dldF9zZWN0b3JzKGZkLCAmbGxzZWN0b3JzKTsKKwlzZWNfZmFjID0gc2VjdG9yX3NpemUgLyA1MTI7CisKKyNpZmRlZiBIRElPX0dFVEdFTworCWlmICghaW9jdGwoZmQsIEhESU9fR0VUR0VPLCAmZ2VvbWV0cnkpKSB7CisJICAgICAgICBoZWFkcyA9IGdlb21ldHJ5LmhlYWRzOworCSAgICAgICAgc2VjdG9ycyA9IGdlb21ldHJ5LnNlY3RvcnM7CisJCWlmIChyZXMgPT0gMCkgeworCQkJbGxjeWxzID0gbGxzZWN0b3JzIC8gKGhlYWRzICogc2VjdG9ycyAqIHNlY19mYWMpOworCQkJY3lsaW5kZXJzID0gbGxjeWxzOworCQkJaWYgKGN5bGluZGVycyAhPSBsbGN5bHMpCisJCQkJY3lsaW5kZXJzID0gfjA7CisJCX0gZWxzZSB7CisJCQljeWxpbmRlcnMgPSBnZW9tZXRyeS5jeWxpbmRlcnM7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCJXYXJuaW5nOiAgQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXMuICAiCisJCQkJICAiVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJWQuXG4iCisJCQkJICAiVGhpcyB2YWx1ZSBtYXkgYmUgdHJ1bmNhdGVkIGZvciBkZXZpY2VzIgorCQkJCSAgIiA+IDMzLjggR0IuXG4iKSwgZGlza19kZXZpY2UsIGN5bGluZGVycyk7CisJCX0KKwl9IGVsc2UKKyNlbmRpZgorCXsKKwkgICAgICAgIGhlYWRzID0gcmVhZF9pbnQoMSwxLDEwMjQsMCxfKCJIZWFkcyIpKTsKKwkJc2VjdG9ycyA9IHJlYWRfaW50KDEsMSwxMDI0LDAsXygiU2VjdG9ycy90cmFjayIpKTsKKwkJY3lsaW5kZXJzID0gcmVhZF9pbnQoMSwxLDY1NTM1LDAsXygiQ3lsaW5kZXJzIikpOworCX0KKworCXN1bmxhYmVsLT5hY3lsICAgPSBTU1dBUDE2KDIpOworCXN1bmxhYmVsLT5wY3lsICAgPSBTU1dBUDE2KGN5bGluZGVycyk7CisJc3VubGFiZWwtPm5jeWwgICA9IFNTV0FQMTYoY3lsaW5kZXJzIC0gMik7CisJc3VubGFiZWwtPnJwbSAgICA9IFNTV0FQMTYoNTQwMCk7CisJc3VubGFiZWwtPmludHJsdiA9IFNTV0FQMTYoMSk7CisJc3VubGFiZWwtPmFwYyAgICA9IFNTV0FQMTYoMCk7CisKKwlzdW5sYWJlbC0+bmhlYWQgPSBTU1dBUDE2KGhlYWRzKTsKKwlzdW5sYWJlbC0+bnNlY3QgPSBTU1dBUDE2KHNlY3RvcnMpOworCXN1bmxhYmVsLT5uY3lsID0gU1NXQVAxNihjeWxpbmRlcnMpOworCisJc25wcmludGYoc3VubGFiZWwtPmxhYmVsX2lkLCBzaXplb2Yoc3VubGFiZWwtPmxhYmVsX2lkKSwKKwkJICJMaW51eCBjeWwgJWQgYWx0ICVkIGhkICVkIHNlYyAlbGx1IiwKKwkJIGN5bGluZGVycywgU1NXQVAxNihzdW5sYWJlbC0+YWN5bCksIGhlYWRzLCBzZWN0b3JzKTsKKworCWlmIChjeWxpbmRlcnMgKiBoZWFkcyAqIHNlY3RvcnMgPj0gMTUwICogMjA0OCkgeworCSAgICAgICAgbmRpdiA9IGN5bGluZGVycyAtICg1MCAqIDIwNDggLyAoaGVhZHMgKiBzZWN0b3JzKSk7IC8qIDUwTSBzd2FwICovCisJfSBlbHNlCisJICAgICAgICBuZGl2ID0gY3lsaW5kZXJzICogMiAvIDM7CisKKwlzZXRfc3VuX3BhcnRpdGlvbigwLCAwLCBuZGl2ICogaGVhZHMgKiBzZWN0b3JzLAorCQkJICBTVU5fVEFHX0xJTlVYX05BVElWRSk7CisJc2V0X3N1bl9wYXJ0aXRpb24oMSwgbmRpdiAqIGhlYWRzICogc2VjdG9ycywKKwkJCSAgY3lsaW5kZXJzICogaGVhZHMgKiBzZWN0b3JzLAorCQkJICBTVU5fVEFHX0xJTlVYX1NXQVApOworCXN1bmxhYmVsLT5wYXJ0X3RhZ3NbMV0uZmxhZyB8PSBTU1dBUDE2KFNVTl9GTEFHX1VOTU5UKTsKKworCXNldF9zdW5fcGFydGl0aW9uKDIsIDAsIGN5bGluZGVycyAqIGhlYWRzICogc2VjdG9ycywgU1VOX1RBR19CQUNLVVApOworCisJeworCQl1bnNpZ25lZCBzaG9ydCAqdXNoID0gKHVuc2lnbmVkIHNob3J0ICopc3VubGFiZWw7CisJCXVuc2lnbmVkIHNob3J0IGNzdW0gPSAwOworCQl3aGlsZSh1c2ggPCAodW5zaWduZWQgc2hvcnQgKikoJnN1bmxhYmVsLT5ja3N1bSkpCisJCQljc3VtIF49ICp1c2grKzsKKwkJc3VubGFiZWwtPmNrc3VtID0gY3N1bTsKKwl9CisKKwlzZXRfYWxsX3VuY2hhbmdlZCgpOworCWdldF9ib290KGNyZWF0ZV9lbXB0eV9zdW4pOworCXNldF9jaGFuZ2VkKDApOworfQorCit2b2lkIHRvZ2dsZV9zdW5mbGFncyhpbnQgaSwgdWludDE2X3QgbWFzaykKK3sKKwlzdHJ1Y3Qgc3VuX3RhZ19mbGFnICpwID0gJnN1bmxhYmVsLT5wYXJ0X3RhZ3NbaV07CisKKwlwLT5mbGFnIF49IFNTV0FQMTYobWFzayk7CisKKwlzZXRfY2hhbmdlZChpKTsKK30KKworc3RhdGljIHZvaWQgZmV0Y2hfc3VuKHVpbnQzMl90ICpzdGFydHMsIHVpbnQzMl90ICpsZW5zLCB1aW50MzJfdCAqc3RhcnQsIHVpbnQzMl90ICpzdG9wKQoreworCWludCBpLCBjb250aW51b3VzID0gMTsKKworCSpzdGFydCA9IDA7CisJKnN0b3AgPSBjeWxpbmRlcnMgKiBoZWFkcyAqIHNlY3RvcnM7CisKKwlmb3IgKGkgPSAwOyBpIDwgcGFydGl0aW9uczsgaSsrKSB7CisJCXN0cnVjdCBzdW5fcGFydGl0aW9uICpwYXJ0ID0gJnN1bmxhYmVsLT5wYXJ0aXRpb25zW2ldOworCQlzdHJ1Y3Qgc3VuX3RhZ19mbGFnICp0YWcgPSAmc3VubGFiZWwtPnBhcnRfdGFnc1tpXTsKKworCQlpZiAocGFydC0+bnVtX3NlY3RvcnMgJiYKKwkJICAgIHRhZy0+dGFnICE9IFNTV0FQMTYoU1VOX1RBR19VTkFTU0lHTkVEKSAmJgorCQkgICAgdGFnLT50YWcgIT0gU1NXQVAxNihTVU5fVEFHX0JBQ0tVUCkpIHsKKwkJCXN0YXJ0c1tpXSA9IChTU1dBUDMyKHBhcnQtPnN0YXJ0X2N5bGluZGVyKSAqCisJCQkJICAgICBoZWFkcyAqIHNlY3RvcnMpOworCQkJbGVuc1tpXSA9IFNTV0FQMzIocGFydC0+bnVtX3NlY3RvcnMpOworCQkJaWYgKGNvbnRpbnVvdXMpIHsKKwkJCQlpZiAoc3RhcnRzW2ldID09ICpzdGFydCkKKwkJCQkJKnN0YXJ0ICs9IGxlbnNbaV07CisJCQkJZWxzZSBpZiAoc3RhcnRzW2ldICsgbGVuc1tpXSA+PSAqc3RvcCkKKwkJCQkJKnN0b3AgPSBzdGFydHNbaV07CisJCQkJZWxzZQorCQkJCQljb250aW51b3VzID0gMDsKKwkJCQkgICAgICAgIC8qIFRoZXJlIHdpbGwgYmUgcHJvYmFibHkgbW9yZSBnYXBzCisJCQkJCSAgdGhhbiBvbmUsIHNvIGxldHMgY2hlY2sgYWZ0ZXJ3YXJkcyAqLworCQkJfQorCQl9IGVsc2UgeworCQkJc3RhcnRzW2ldID0gMDsKKwkJCWxlbnNbaV0gPSAwOworCQl9CisJfQorfQorCitzdGF0aWMgdW5zaWduZWQgaW50ICp2ZXJpZnlfc3VuX3N0YXJ0czsKKworc3RhdGljIGludCB2ZXJpZnlfc3VuX2NtcChpbnQgKmEsIGludCAqYikKK3sKKyAgICBpZiAoKmEgPT0gLTEpCisJICAgIHJldHVybiAxOworICAgIGlmICgqYiA9PSAtMSkKKwkgICAgcmV0dXJuIC0xOworICAgIGlmICh2ZXJpZnlfc3VuX3N0YXJ0c1sqYV0gPiB2ZXJpZnlfc3VuX3N0YXJ0c1sqYl0pCisJICAgIHJldHVybiAxOworICAgIHJldHVybiAtMTsKK30KKwordm9pZCB2ZXJpZnlfc3VuKHZvaWQpCit7CisgICAgdWludDMyX3Qgc3RhcnRzW1NVTl9OVU1fUEFSVElUSU9OU10sIGxlbnNbU1VOX05VTV9QQVJUSVRJT05TXSwgc3RhcnQsIHN0b3A7CisgICAgaW50IGksaixrLHN0YXJ0byxlbmRvOworICAgIGludCBhcnJheVtTVU5fTlVNX1BBUlRJVElPTlNdOworCisgICAgdmVyaWZ5X3N1bl9zdGFydHMgPSBzdGFydHM7CisKKyAgICBmZXRjaF9zdW4oc3RhcnRzLCBsZW5zLCAmc3RhcnQsICZzdG9wKTsKKworICAgIGZvciAoayA9IDA7IGsgPCA3OyBrKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgU1VOX05VTV9QQVJUSVRJT05TOyBpKyspIHsKKwkgICAgaWYgKGsgJiYgKGxlbnNbaV0gJSAoaGVhZHMgKiBzZWN0b3JzKSkpIHsKKwkgICAgICAgIHByaW50ZihfKCJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIpLCBpKzEpOworCSAgICB9CisJICAgIGlmIChsZW5zW2ldKSB7CisJICAgICAgICBmb3IgKGogPSAwOyBqIDwgaTsgaisrKQorCSAgICAgICAgICAgIGlmIChsZW5zW2pdKSB7CisJICAgICAgICAgICAgICAgIGlmIChzdGFydHNbal0gPT0gc3RhcnRzW2ldK2xlbnNbaV0pIHsKKwkgICAgICAgICAgICAgICAgICAgIHN0YXJ0c1tqXSA9IHN0YXJ0c1tpXTsgbGVuc1tqXSArPSBsZW5zW2ldOworCSAgICAgICAgICAgICAgICAgICAgbGVuc1tpXSA9IDA7CisJICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRzW2ldID09IHN0YXJ0c1tqXStsZW5zW2pdKXsKKwkgICAgICAgICAgICAgICAgICAgIGxlbnNbal0gKz0gbGVuc1tpXTsKKwkgICAgICAgICAgICAgICAgICAgIGxlbnNbaV0gPSAwOworCSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFrKSB7CisJICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRzW2ldIDwgc3RhcnRzW2pdK2xlbnNbal0gJiYKKwkJCQlzdGFydHNbal0gPCBzdGFydHNbaV0rbGVuc1tpXSkgeworCSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0byA9IHN0YXJ0c1tpXTsKKwkgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRzW2pdID4gc3RhcnRvKQorCQkJCQlzdGFydG8gPSBzdGFydHNbal07CisJICAgICAgICAgICAgICAgICAgICAgICAgZW5kbyA9IHN0YXJ0c1tpXStsZW5zW2ldOworCSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydHNbal0rbGVuc1tqXSA8IGVuZG8pCisJCQkJCWVuZG8gPSBzdGFydHNbal0rbGVuc1tqXTsKKwkgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoXygiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluICIKKwkJCQkgICAgICAgInNlY3RvcnMgJWQtJWRcbiIpLCBpKzEsIHN0YXJ0bywgZW5kbyk7CisJICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9CisJICAgIH0KKwl9CisgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCBTVU5fTlVNX1BBUlRJVElPTlM7IGkrKykgeworICAgICAgICBpZiAobGVuc1tpXSkKKyAgICAgICAgICAgIGFycmF5W2ldID0gaTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXJyYXlbaV0gPSAtMTsKKyAgICB9CisgICAgcXNvcnQoYXJyYXksQVJSQVlfU0laRShhcnJheSksc2l6ZW9mKGFycmF5WzBdKSwKKwkgIChpbnQgKCopKGNvbnN0IHZvaWQgKixjb25zdCB2b2lkICopKSB2ZXJpZnlfc3VuX2NtcCk7CisgICAgaWYgKGFycmF5WzBdID09IC0xKSB7CisgICAgCXByaW50ZihfKCJObyBwYXJ0aXRpb25zIGRlZmluZWRcbiIpKTsKKyAgICAJcmV0dXJuOworICAgIH0KKyAgICBzdG9wID0gY3lsaW5kZXJzICogaGVhZHMgKiBzZWN0b3JzOworICAgIGlmIChzdGFydHNbYXJyYXlbMF1dKQorICAgICAgICBwcmludGYoXygiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIiksIHN0YXJ0c1thcnJheVswXV0pOworICAgIGZvciAoaSA9IDA7IGkgPCA3ICYmIGFycmF5W2krMV0gIT0gLTE7IGkrKykgeworICAgICAgICBwcmludGYoXygiVW51c2VkIGdhcCAtIHNlY3RvcnMgJWQtJWRcbiIpLAorCSAgICAgICAoc3RhcnRzW2FycmF5W2ldXSArIGxlbnNbYXJyYXlbaV1dKSwKKwkgICAgICAgc3RhcnRzW2FycmF5W2krMV1dKTsKKyAgICB9CisgICAgc3RhcnQgPSAoc3RhcnRzW2FycmF5W2ldXSArIGxlbnNbYXJyYXlbaV1dKTsKKyAgICBpZiAoc3RhcnQgPCBzdG9wKQorICAgICAgICBwcmludGYoXygiVW51c2VkIGdhcCAtIHNlY3RvcnMgJWQtJWRcbiIpLCBzdGFydCwgc3RvcCk7Cit9CisKK3ZvaWQgYWRkX3N1bl9wYXJ0aXRpb24oaW50IG4sIGludCBzeXMpCit7CisJdWludDMyX3Qgc3RhcnRzW1NVTl9OVU1fUEFSVElUSU9OU10sIGxlbnNbU1VOX05VTV9QQVJUSVRJT05TXTsKKwlzdHJ1Y3Qgc3VuX3BhcnRpdGlvbiAqcGFydCA9ICZzdW5sYWJlbC0+cGFydGl0aW9uc1tuXTsKKwlzdHJ1Y3Qgc3VuX3RhZ19mbGFnICp0YWcgPSAmc3VubGFiZWwtPnBhcnRfdGFnc1tuXTsKKwl1aW50MzJfdCBzdGFydCwgc3RvcCwgc3RvcDI7CisJaW50IHdob2xlX2Rpc2sgPSAwOworCQkKKwljaGFyIG1lc2dbMjU2XTsKKwlpbnQgaSwgZmlyc3QsIGxhc3Q7CisKKwlpZiAocGFydC0+bnVtX3NlY3RvcnMgJiYgdGFnLT50YWcgIT0gU1NXQVAxNihTVU5fVEFHX1VOQVNTSUdORUQpKSB7CisJCXByaW50ZihfKCJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlICIKKwkJCSJpdCBiZWZvcmUgcmUtYWRkaW5nIGl0LlxuIiksIG4gKyAxKTsKKwkJcmV0dXJuOworCX0KKwkKKwlmZXRjaF9zdW4oc3RhcnRzLCBsZW5zLCAmc3RhcnQsICZzdG9wKTsKKwlpZiAoc3RvcCA8PSBzdGFydCkgeworCQlpZiAobiA9PSAyKQorCQkJd2hvbGVfZGlzayA9IDE7CisJCWVsc2UgeworCQkJcHJpbnRmKF8oIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbkRlbGV0ZSAiCisJCQkgICAgICAgInNvbWUvc2hyaW5rIHRoZW0gYmVmb3JlIHJldHJ5LlxuIikpOworCQkJcmV0dXJuOworCQl9CisJfQorCXNucHJpbnRmKG1lc2csIHNpemVvZihtZXNnKSwgXygiRmlyc3QgJXMiKSwgc3RyX3VuaXRzKFNJTkdVTEFSKSk7CisJZm9yICg7OykgeworCQlpZiAod2hvbGVfZGlzaykKKwkJCWZpcnN0ID0gcmVhZF9pbnQoMCwgMCwgMCwgMCwgbWVzZyk7CisJCWVsc2UKKwkJCWZpcnN0ID0gcmVhZF9pbnQoc2Nyb3VuZChzdGFydCksIHNjcm91bmQoc3RvcCkrMSwKKwkJCQkJIHNjcm91bmQoc3RvcCksIDAsIG1lc2cpOworCQlpZiAoZGlzcGxheV9pbl9jeWxfdW5pdHMpCisJCQlmaXJzdCAqPSB1bml0c19wZXJfc2VjdG9yOworCQllbHNlIHsKKwkJCS8qIFN0YXJ0aW5nIHNlY3RvciBoYXMgdG8gYmUgcHJvcGVybHkgYWxpZ25lZCAqLworCQkJaW50IGNzID0gaGVhZHMgKiBzZWN0b3JzOworCQkJaW50IHggPSBmaXJzdCAlIGNzOworCisJCQlpZiAoeCkKKwkJCQlmaXJzdCArPSBjcyAtIHg7CisJCX0KKwkJaWYgKG4gPT0gMiAmJiBmaXJzdCAhPSAwKQorCQkJcHJpbnRmIChfKCJcCitJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuXAorYW5kIGlzIG9mIHR5cGUgYFdob2xlIGRpc2snXG4iKSk7CisJCS8qIGV3dCBhc2tzIHRvIGFkZDogImRvbid0IHN0YXJ0IGEgcGFydGl0aW9uIGF0IGN5bCAwIgorCQkgICBIb3dldmVyLCBlZG11bmRvQHJhbm8uZGVtb24uY28udWsgd3JpdGVzOgorCQkgICAiSW4gYWRkaXRpb24gdG8gaGF2aW5nIGEgU3VuIHBhcnRpdGlvbiB0YWJsZSwgdG8gYmUgYWJsZSB0bworCQkgICBib290IGZyb20gdGhlIGRpc2MsIHRoZSBmaXJzdCBwYXJ0aXRpb24sIC9kZXYvc2RYMSwgbXVzdAorCQkgICBzdGFydCBhdCBjeWxpbmRlciAwLiBUaGlzIG1lYW5zIHRoYXQgL2Rldi9zZFgxIGNvbnRhaW5zCisJCSAgIHRoZSBwYXJ0aXRpb24gdGFibGUgYW5kIHRoZSBib290IGJsb2NrLCBhcyB0aGVzZSBhcmUgdGhlCisJCSAgIGZpcnN0IHR3byBzZWN0b3JzIG9mIHRoZSBkaXNjLiBUaGVyZWZvcmUgeW91IG11c3QgYmUKKwkJICAgY2FyZWZ1bCB3aGF0IHlvdSB1c2UgL2Rldi9zZFgxIGZvci4gSW4gcGFydGljdWxhciwgeW91IG11c3QKKwkJICAgbm90IHVzZSBhIHBhcnRpdGlvbiBzdGFydGluZyBhdCBjeWxpbmRlciAwIGZvciBMaW51eCBzd2FwLAorCQkgICBhcyB0aGF0IHdvdWxkIG92ZXJ3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIGFuZCB0aGUgYm9vdAorCQkgICBibG9jay4gWW91IG1heSwgaG93ZXZlciwgdXNlIHN1Y2ggYSBwYXJ0aXRpb24gZm9yIGEgVUZTCisJCSAgIG9yIEVYVDIgZmlsZSBzeXN0ZW0sIGFzIHRoZXNlIGZpbGUgc3lzdGVtcyBsZWF2ZSB0aGUgZmlyc3QKKwkJICAgMTAyNCBieXRlcyB1bmRpc3R1cmJlZC4gKi8KKwkJLyogT24gdGhlIG90aGVyIGhhbmQsIG9uZSBzaG91bGQgbm90IHVzZSBwYXJ0aXRpb25zCisJCSAgIHN0YXJ0aW5nIGF0IGJsb2NrIDAgaW4gYW4gbWQsIG9yIHRoZSBsYWJlbCB3aWxsCisJCSAgIGJlIHRyYXNoZWQuICovCisJCWZvciAoaSA9IDA7IGkgPCBwYXJ0aXRpb25zOyBpKyspCisJCQlpZiAobGVuc1tpXSAmJiBzdGFydHNbaV0gPD0gZmlyc3QKKwkJCSAgICAgICAgICAgICYmIHN0YXJ0c1tpXSArIGxlbnNbaV0gPiBmaXJzdCkKKwkJCQlicmVhazsKKwkJaWYgKGkgPCBwYXJ0aXRpb25zICYmICF3aG9sZV9kaXNrKSB7CisJCQlpZiAobiA9PSAyICYmICFmaXJzdCkgeworCQkJICAgIHdob2xlX2Rpc2sgPSAxOworCQkJICAgIGJyZWFrOworCQkJfQorCQkJcHJpbnRmKF8oIlNlY3RvciAlZCBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIiksIGZpcnN0KTsKKwkJfSBlbHNlCisJCQlicmVhazsKKwl9CisJc3RvcCA9IGN5bGluZGVycyAqIGhlYWRzICogc2VjdG9yczsJLyogYW5jaWVudCAqLworCXN0b3AyID0gc3RvcDsKKwlmb3IgKGkgPSAwOyBpIDwgcGFydGl0aW9uczsgaSsrKSB7CisJCWlmIChzdGFydHNbaV0gPiBmaXJzdCAmJiBzdGFydHNbaV0gPCBzdG9wKQorCQkJc3RvcCA9IHN0YXJ0c1tpXTsKKwl9CisJc25wcmludGYobWVzZywgc2l6ZW9mKG1lc2cpLAorCQkgXygiTGFzdCAlcyBvciArc2l6ZSBvciArc2l6ZU0gb3IgK3NpemVLIiksCisJCSBzdHJfdW5pdHMoU0lOR1VMQVIpKTsKKwlpZiAod2hvbGVfZGlzaykKKwkJbGFzdCA9IHJlYWRfaW50KHNjcm91bmQoc3RvcDIpLCBzY3JvdW5kKHN0b3AyKSwgc2Nyb3VuZChzdG9wMiksCisJCQkJMCwgbWVzZyk7CisJZWxzZSBpZiAobiA9PSAyICYmICFmaXJzdCkKKwkJbGFzdCA9IHJlYWRfaW50KHNjcm91bmQoZmlyc3QpLCBzY3JvdW5kKHN0b3AyKSwgc2Nyb3VuZChzdG9wMiksCisJCQkJc2Nyb3VuZChmaXJzdCksIG1lc2cpOworCWVsc2UKKwkJbGFzdCA9IHJlYWRfaW50KHNjcm91bmQoZmlyc3QpLCBzY3JvdW5kKHN0b3ApLCBzY3JvdW5kKHN0b3ApLAorCQkJCXNjcm91bmQoZmlyc3QpLCBtZXNnKTsKKwlpZiAoZGlzcGxheV9pbl9jeWxfdW5pdHMpCisJCWxhc3QgKj0gdW5pdHNfcGVyX3NlY3RvcjsKKwlpZiAobiA9PSAyICYmICFmaXJzdCkgeworCQlpZiAobGFzdCA+PSBzdG9wMikgeworCQkgICAgd2hvbGVfZGlzayA9IDE7CisJCSAgICBsYXN0ID0gc3RvcDI7CisJCX0gZWxzZSBpZiAobGFzdCA+IHN0b3ApIHsKKwkJICAgIHByaW50ZiAoCisgICBfKCJZb3UgaGF2ZW4ndCBjb3ZlcmVkIHRoZSB3aG9sZSBkaXNrIHdpdGggdGhlIDNyZCBwYXJ0aXRpb24sIGJ1dCB5b3VyIHZhbHVlXG4iCisgICAgICIlZCAlcyBjb3ZlcnMgc29tZSBvdGhlciBwYXJ0aXRpb24uIFlvdXIgZW50cnkgaGFzIGJlZW4gY2hhbmdlZFxuIgorICAgICAidG8gJWQgJXNcbiIpLAorCQkJc2Nyb3VuZChsYXN0KSwgc3RyX3VuaXRzKFNJTkdVTEFSKSwKKwkJCXNjcm91bmQoc3RvcCksIHN0cl91bml0cyhTSU5HVUxBUikpOworCQkgICAgbGFzdCA9IHN0b3A7CisJCX0KKwl9IGVsc2UgaWYgKCF3aG9sZV9kaXNrICYmIGxhc3QgPiBzdG9wKQorCQlsYXN0ID0gc3RvcDsKKworCWlmICh3aG9sZV9kaXNrKQorCQlzeXMgPSBTVU5fVEFHX0JBQ0tVUDsKKworCXNldF9zdW5fcGFydGl0aW9uKG4sIGZpcnN0LCBsYXN0LCBzeXMpOworfQorCit2b2lkIHN1bl9kZWxldGVfcGFydGl0aW9uKGludCBpKQoreworCXN0cnVjdCBzdW5fcGFydGl0aW9uICpwYXJ0ID0gJnN1bmxhYmVsLT5wYXJ0aXRpb25zW2ldOworCXN0cnVjdCBzdW5fdGFnX2ZsYWcgKnRhZyA9ICZzdW5sYWJlbC0+cGFydF90YWdzW2ldOworCXVuc2lnbmVkIGludCBuc2VjOworCisJaWYgKGkgPT0gMiAmJgorCSAgICB0YWctPnRhZyA9PSBTU1dBUDE2KFNVTl9UQUdfQkFDS1VQKSAmJgorCSAgICAhcGFydC0+c3RhcnRfY3lsaW5kZXIgJiYKKwkgICAgKG5zZWMgPSBTU1dBUDMyKHBhcnQtPm51bV9zZWN0b3JzKSkKKwkgICAgICA9PSBoZWFkcyAqIHNlY3RvcnMgKiBjeWxpbmRlcnMpCisJCXByaW50ZihfKCJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksICIKKwkJICAgICAgICJjb25zaWRlciBsZWF2aW5nIHRoaXNcbiIKKwkJICAgICAgICJwYXJ0aXRpb24gYXMgV2hvbGUgZGlzayAoNSksIHN0YXJ0aW5nIGF0IDAsIHdpdGggJXUgIgorCQkgICAgICAgInNlY3RvcnNcbiIpLCBuc2VjKTsKKwl0YWctPnRhZyA9IFNTV0FQMTYoU1VOX1RBR19VTkFTU0lHTkVEKTsKKwlwYXJ0LT5udW1fc2VjdG9ycyA9IDA7Cit9CisKK2ludCBzdW5fY2hhbmdlX3N5c2lkKGludCBpLCB1aW50MTZfdCBzeXMpCit7CisJc3RydWN0IHN1bl9wYXJ0aXRpb24gKnBhcnQgPSAmc3VubGFiZWwtPnBhcnRpdGlvbnNbaV07CisJc3RydWN0IHN1bl90YWdfZmxhZyAqdGFnID0gJnN1bmxhYmVsLT5wYXJ0X3RhZ3NbaV07CisKKwlpZiAoc3lzID09IFNVTl9UQUdfTElOVVhfU1dBUCAmJiAhcGFydC0+c3RhcnRfY3lsaW5kZXIpIHsKKwkgICAgcmVhZF9jaGFycygKKwkgICAgICBfKCJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisJICAgICAgImlzIFVGUywgRVhUMkZTIGZpbGVzeXN0ZW0gb3IgU3VuT1Mgc3dhcC4gUHV0dGluZyBMaW51eCBzd2FwXG4iCisJICAgICAgInRoZXJlIG1heSBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlIGFuZCBib290YmxvY2suXG4iCisJICAgICAgIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKwkgICAgICAidGFnZ2VkIHdpdGggODIgKExpbnV4IHN3YXApOiAiKSk7CisJICAgIGlmIChzdHJjbXAgKGxpbmVfcHRyLCBfKCJZRVNcbiIpKSkKKwkJICAgIHJldHVybiAwOworCX0KKwlzd2l0Y2ggKHN5cykgeworCWNhc2UgU1VOX1RBR19TV0FQOgorCWNhc2UgU1VOX1RBR19MSU5VWF9TV0FQOgorCQkvKiBzd2FwcyBhcmUgbm90IG1vdW50YWJsZSBieSBkZWZhdWx0ICovCisJCXRhZy0+ZmxhZyB8PSBTU1dBUDE2KFNVTl9GTEFHX1VOTU5UKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJLyogYXNzdW1lIG90aGVyIHR5cGVzIGFyZSBtb3VudGFibGU7CisJCSAgIHVzZXIgY2FuIGNoYW5nZSBpdCBhbnl3YXkgKi8KKwkJdGFnLT5mbGFnICY9IH5TU1dBUDE2KFNVTl9GTEFHX1VOTU5UKTsKKwkJYnJlYWs7CisJfQorCXRhZy0+dGFnID0gU1NXQVAxNihzeXMpOworCXJldHVybiAxOworfQorCit2b2lkIHN1bl9saXN0X3RhYmxlKGludCB4dHJhKQoreworCWludCBpLCB3OworCWNoYXIgKnR5cGU7CisKKwl3ID0gc3RybGVuKGRpc2tfZGV2aWNlKTsKKwlpZiAoeHRyYSkKKwkJcHJpbnRmKAorCQlfKCJcbkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisJCSIlZCBjeWxpbmRlcnMsICVkIGFsdGVybmF0ZSBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorCQkiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKwkJIkxhYmVsIElEOiAlc1xuIgorCQkiVm9sdW1lIElEOiAlc1xuIgorCQkiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuXG4iKSwKKwkJICAgICAgIGRpc2tfZGV2aWNlLCBoZWFkcywgc2VjdG9ycywgU1NXQVAxNihzdW5sYWJlbC0+cnBtKSwKKwkJICAgICAgIGN5bGluZGVycywgU1NXQVAxNihzdW5sYWJlbC0+YWN5bCksCisJCSAgICAgICBTU1dBUDE2KHN1bmxhYmVsLT5wY3lsKSwKKwkJICAgICAgIFNTV0FQMTYoc3VubGFiZWwtPmFwYyksCisJCSAgICAgICBTU1dBUDE2KHN1bmxhYmVsLT5pbnRybHYpLAorCQkgICAgICAgc3VubGFiZWwtPmxhYmVsX2lkLAorCQkgICAgICAgc3VubGFiZWwtPnZvbHVtZV9pZCwKKwkJICAgICAgIHN0cl91bml0cyhQTFVSQUwpLCB1bml0c19wZXJfc2VjdG9yKTsKKwllbHNlCisJCXByaW50ZigKKwlfKCJcbkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisJIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcblxuIiksCisJCSAgICAgICBkaXNrX2RldmljZSwgaGVhZHMsIHNlY3RvcnMsIGN5bGluZGVycywKKwkJICAgICAgIHN0cl91bml0cyhQTFVSQUwpLCB1bml0c19wZXJfc2VjdG9yKTsKKworCXByaW50ZihfKCIlKnMgRmxhZyAgICBTdGFydCAgICAgICBFbmQgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIiksCisJICAgICAgIHcgKyAxLCBfKCJEZXZpY2UiKSk7CisJZm9yIChpID0gMCA7IGkgPCBwYXJ0aXRpb25zOyBpKyspIHsKKwkJc3RydWN0IHN1bl9wYXJ0aXRpb24gKnBhcnQgPSAmc3VubGFiZWwtPnBhcnRpdGlvbnNbaV07CisJCXN0cnVjdCBzdW5fdGFnX2ZsYWcgKnRhZyA9ICZzdW5sYWJlbC0+cGFydF90YWdzW2ldOworCisJCWlmIChwYXJ0LT5udW1fc2VjdG9ycykgeworCQkJdWludDMyX3Qgc3RhcnQgPSBTU1dBUDMyKHBhcnQtPnN0YXJ0X2N5bGluZGVyKSAqIGhlYWRzICogc2VjdG9yczsKKwkJCXVpbnQzMl90IGxlbiA9IFNTV0FQMzIocGFydC0+bnVtX3NlY3RvcnMpOworCQkJcHJpbnRmKAorCQkJICAgICIlcyAlYyVjICU5bGQgJTlsZCAlOWxkJWMgICUyeCAgJXNcbiIsCisvKiBkZXZpY2UgKi8JCSAgcGFydG5hbWUoZGlza19kZXZpY2UsIGkrMSwgdyksCisvKiBmbGFncyAqLwkJICAodGFnLT5mbGFnICYgU1NXQVAxNihTVU5fRkxBR19VTk1OVCkpID8gJ3UnIDogJyAnLAorCQkJICAodGFnLT5mbGFnICYgU1NXQVAxNihTVU5fRkxBR19ST05MWSkpID8gJ3InIDogJyAnLAorLyogc3RhcnQgKi8JCSAgKGxvbmcpIHNjcm91bmQoc3RhcnQpLAorLyogZW5kICovCQkgIChsb25nKSBzY3JvdW5kKHN0YXJ0K2xlbiksCisvKiBvZGQgZmxhZyBvbiBlbmQgKi8JICAobG9uZykgbGVuIC8gMiwgbGVuICYgMSA/ICcrJyA6ICcgJywKKy8qIHR5cGUgaWQgKi8JCSAgU1NXQVAxNih0YWctPnRhZyksCisvKiB0eXBlIG5hbWUgKi8JCSAgKHR5cGUgPSBwYXJ0aXRpb25fdHlwZShTU1dBUDE2KHRhZy0+dGFnKSkpCisJCQkgICAgICAgID8gdHlwZSA6IF8oIlVua25vd24iKSk7CisJCX0KKwl9Cit9CisKK3ZvaWQgc3VuX3NldF9hbHRfY3lsKHZvaWQpCit7CisJc3VubGFiZWwtPmFjeWwgPQorCQlTU1dBUDE2KHJlYWRfaW50KDAsU1NXQVAxNihzdW5sYWJlbC0+YWN5bCksIDY1NTM1LCAwLAorCQkJCSBfKCJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIpKSk7Cit9CisKK3ZvaWQgc3VuX3NldF9uY3lsKGludCBjeWwpCit7CisJc3VubGFiZWwtPm5jeWwgPSBTU1dBUDE2KGN5bCk7Cit9CisKK3ZvaWQgc3VuX3NldF94Y3lsKHZvaWQpCit7CisJc3VubGFiZWwtPmFwYyA9CisJCVNTV0FQMTYocmVhZF9pbnQoMCwgU1NXQVAxNihzdW5sYWJlbC0+YXBjKSwgc2VjdG9ycywgMCwKKwkJCQkgXygiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiKSkpOworfQorCit2b2lkIHN1bl9zZXRfaWxmYWN0KHZvaWQpCit7CisJc3VubGFiZWwtPmludHJsdiA9CisJCVNTV0FQMTYocmVhZF9pbnQoMSwgU1NXQVAxNihzdW5sYWJlbC0+aW50cmx2KSwgMzIsIDAsCisJCQkJIF8oIkludGVybGVhdmUgZmFjdG9yIikpKTsKK30KKwordm9pZCBzdW5fc2V0X3JzcGVlZCh2b2lkKQoreworCXN1bmxhYmVsLT5ycG0gPQorCQlTU1dBUDE2KHJlYWRfaW50KDEsIFNTV0FQMTYoc3VubGFiZWwtPnJwbSksIDEwMDAwMCwgMCwKKwkJCQkgXygiUm90YXRpb24gc3BlZWQgKHJwbSkiKSkpOworfQorCit2b2lkIHN1bl9zZXRfcGN5bGNvdW50KHZvaWQpCit7CisJc3VubGFiZWwtPnBjeWwgPQorCQlTU1dBUDE2KHJlYWRfaW50KDAsIFNTV0FQMTYoc3VubGFiZWwtPnBjeWwpLCA2NTUzNSwgMCwKKwkJCQkgXygiTnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIpKSk7Cit9CisKK3ZvaWQgc3VuX3dyaXRlX3RhYmxlKHZvaWQpCit7CisJdW5zaWduZWQgc2hvcnQgKnVzaCA9ICh1bnNpZ25lZCBzaG9ydCAqKXN1bmxhYmVsOworCXVuc2lnbmVkIHNob3J0IGNzdW0gPSAwOworCisJd2hpbGUodXNoIDwgKHVuc2lnbmVkIHNob3J0ICopKCZzdW5sYWJlbC0+Y2tzdW0pKQorCQljc3VtIF49ICp1c2grKzsKKwlzdW5sYWJlbC0+Y2tzdW0gPSBjc3VtOworCWlmIChsc2VlayhmZCwgMCwgU0VFS19TRVQpIDwgMCkKKwkJZmF0YWwodW5hYmxlX3RvX3NlZWspOworCWlmICh3cml0ZShmZCwgc3VubGFiZWwsIFNFQ1RPUl9TSVpFKSAhPSBTRUNUT1JfU0laRSkKKwkJZmF0YWwodW5hYmxlX3RvX3dyaXRlKTsKK30KKworaW50IHN1bl9nZXRfc3lzaWQoaW50IGkpCit7CisJcmV0dXJuIFNTV0FQMTYoc3VubGFiZWwtPnBhcnRfdGFnc1tpXS50YWcpOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2tzdW5sYWJlbC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZmRpc2tzdW5sYWJlbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3NDE5Y2IKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9mZGlza3N1bmxhYmVsLmgKQEAgLTAsMCArMSw5OSBAQAorI2lmbmRlZiBGRElTS19TVU5fTEFCRUxfSAorI2RlZmluZSBGRElTS19TVU5fTEFCRUxfSAorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK3N0cnVjdCBzdW5fcGFydGl0aW9uIHsKKwl1aW50MzJfdAlzdGFydF9jeWxpbmRlcjsKKwl1aW50MzJfdAludW1fc2VjdG9yczsKK307CisKK3N0cnVjdCBzdW5fdGFnX2ZsYWcgeworCXVpbnQxNl90CXRhZzsKKyNkZWZpbmUgU1VOX1RBR19VTkFTU0lHTkVECTB4MDAJLyogVW5hc3NpZ25lZCBwYXJ0aXRpb24gKi8KKyNkZWZpbmUgU1VOX1RBR19CT09UCQkweDAxCS8qIEJvb3QgcGFydGl0aW9uCSovCisjZGVmaW5lIFNVTl9UQUdfUk9PVAkJMHgwMgkvKiBSb290IGZpbGVzeXN0ZW0JKi8KKyNkZWZpbmUgU1VOX1RBR19TV0FQCQkweDAzCS8qIFN3YXAgcGFydGl0aW9uCSovCisjZGVmaW5lIFNVTl9UQUdfVVNSCQkweDA0CS8qIC91c3IgZmlsZXN5c3RlbQkqLworI2RlZmluZSBTVU5fVEFHX0JBQ0tVUAkJMHgwNQkvKiBGdWxsLWRpc2sgc2xpY2UJKi8KKyNkZWZpbmUgU1VOX1RBR19TVEFORAkJMHgwNgkvKiBTdGFuZCBwYXJ0aXRpb24JKi8KKyNkZWZpbmUgU1VOX1RBR19WQVIJCTB4MDcJLyogL3ZhciBmaWxlc3lzdGVtCSovCisjZGVmaW5lIFNVTl9UQUdfSE9NRQkJMHgwOAkvKiAvaG9tZSBmaWxlc3lzdGVtCSovCisjZGVmaW5lIFNVTl9UQUdfQUxUU0NUUgkJMHgwOQkvKiBBbHQgc2VjdG9yIHBhcnRpdGlvbgkqLworI2RlZmluZSBTVU5fVEFHX0NBQ0hFCQkweDBhCS8qIENhY2hlZnMgcGFydGl0aW9uCSovCisjZGVmaW5lIFNVTl9UQUdfUkVTRVJWRUQJMHgwYgkvKiBTTUkgcmVzZXJ2ZWQgZGF0YQkqLworI2RlZmluZSBTVU5fVEFHX0xJTlVYX1NXQVAJMHg4MgkvKiBMaW51eCBTV0FQCQkqLworI2RlZmluZSBTVU5fVEFHX0xJTlVYX05BVElWRQkweDgzCS8qIExpbnV4IGZpbGVzeXN0ZW0JKi8KKyNkZWZpbmUgU1VOX1RBR19MSU5VWF9MVk0JMHg4ZQkvKiBMaW51eCBMVk0JCSovCisjZGVmaW5lIFNVTl9UQUdfTElOVVhfUkFJRAkweGZkCS8qIExJbnV4IFJBSUQJCSovCisKKwl1aW50MTZfdAlmbGFnOworI2RlZmluZSBTVU5fRkxBR19VTk1OVAkJMHgwMQkvKiBVbm1vdW50YWJsZSBwYXJ0aXRpb24qLworI2RlZmluZSBTVU5fRkxBR19ST05MWQkJMHgxMAkvKiBSZWFkIG9ubHkJCSovCit9OworCisjZGVmaW5lIFNVTl9MQUJFTF9TSVpFCQk1MTIKKworI2RlZmluZSBTVU5fTEFCRUxfSURfU0laRQkxMjgKKyNkZWZpbmUgU1VOX1ZPTFVNRV9JRF9TSVpFCTgKKworI2RlZmluZSBTVU5fTEFCRUxfVkVSU0lPTgkweDAwMDAwMDAxCisjZGVmaW5lIFNVTl9MQUJFTF9TQU5FCQkweDYwMGRkZWVlCisjZGVmaW5lIFNVTl9OVU1fUEFSVElUSU9OUwk4CisKK3N0cnVjdCBzdW5fZGlza19sYWJlbCB7CisJY2hhcgkJCWxhYmVsX2lkW1NVTl9MQUJFTF9JRF9TSVpFXTsKKwl1aW50MzJfdAkJCXZlcnNpb247CisJY2hhcgkJCXZvbHVtZV9pZFtTVU5fVk9MVU1FX0lEX1NJWkVdOworCXVpbnQxNl90CQkJbnVtX3BhcnRpdGlvbnM7CisJc3RydWN0IHN1bl90YWdfZmxhZwlwYXJ0X3RhZ3NbU1VOX05VTV9QQVJUSVRJT05TXTsKKwl1aW50MzJfdAkJCWJvb3RpbmZvWzNdOworCXVpbnQzMl90CQkJc2FuaXR5OworCXVpbnQzMl90CQkJcmVzdlsxMF07CisJdWludDMyX3QJCQlwYXJ0X3RpbWVzdGFtcHNbU1VOX05VTV9QQVJUSVRJT05TXTsKKwl1aW50MzJfdAkJCXdyaXRlX3JlaW5zdHJ1Y3Q7CisJdWludDMyX3QJCQlyZWFkX3JlaW5zdHJ1Y3Q7CisJdWludDhfdAkJCXBhZFsxNDhdOworCXVpbnQxNl90CQkJcnBtOworCXVpbnQxNl90CQkJcGN5bDsKKwl1aW50MTZfdAkJCWFwYzsKKwl1aW50MTZfdAkJCXJlc3YxOworCXVpbnQxNl90CQkJcmVzdjI7CisJdWludDE2X3QJCQlpbnRybHY7CisJdWludDE2X3QJCQluY3lsOworCXVpbnQxNl90CQkJYWN5bDsKKwl1aW50MTZfdAkJCW5oZWFkOworCXVpbnQxNl90CQkJbnNlY3Q7CisJdWludDE2X3QJCQlyZXN2MzsKKwl1aW50MTZfdAkJCXJlc3Y0OworCXN0cnVjdCBzdW5fcGFydGl0aW9uCXBhcnRpdGlvbnNbU1VOX05VTV9QQVJUSVRJT05TXTsKKwl1aW50MTZfdAkJCW1hZ2ljOworCXVpbnQxNl90CQkJY2tzdW07Cit9OworCisjZGVmaW5lIFNVTl9MQUJFTF9NQUdJQwkJMHhEQUJFCisjZGVmaW5lIFNVTl9MQUJFTF9NQUdJQ19TV0FQUEVECTB4QkVEQQorI2RlZmluZSBzdW5sYWJlbCAoKHN0cnVjdCBzdW5fZGlza19sYWJlbCAqKU1CUmJ1ZmZlcikKKworLyogZmRpc2tzdW5sYWJlbC5jICovCitleHRlcm4gc3RydWN0IHN5c3R5cGVzIHN1bl9zeXNfdHlwZXNbXTsKK2V4dGVybiB2b2lkIGd1ZXNzX2RldmljZV90eXBlKGludCBmZCk7CitleHRlcm4gaW50IGNoZWNrX3N1bl9sYWJlbCh2b2lkKTsKK2V4dGVybiB2b2lkIHN1bl9ub2xhYmVsKHZvaWQpOworZXh0ZXJuIHZvaWQgY3JlYXRlX3N1bmxhYmVsKHZvaWQpOworZXh0ZXJuIHZvaWQgc3VuX2RlbGV0ZV9wYXJ0aXRpb24oaW50IGkpOworZXh0ZXJuIGludCBzdW5fY2hhbmdlX3N5c2lkKGludCBpLCB1aW50MTZfdCBzeXMpOworZXh0ZXJuIHZvaWQgc3VuX2xpc3RfdGFibGUoaW50IHh0cmEpOworZXh0ZXJuIHZvaWQgdmVyaWZ5X3N1bih2b2lkKTsKK2V4dGVybiB2b2lkIGFkZF9zdW5fcGFydGl0aW9uKGludCBuLCBpbnQgc3lzKTsKK2V4dGVybiB2b2lkIHN1bl93cml0ZV90YWJsZSh2b2lkKTsKK2V4dGVybiB2b2lkIHN1bl9zZXRfYWx0X2N5bCh2b2lkKTsKK2V4dGVybiB2b2lkIHN1bl9zZXRfbmN5bChpbnQgY3lsKTsKK2V4dGVybiB2b2lkIHN1bl9zZXRfeGN5bCh2b2lkKTsKK2V4dGVybiB2b2lkIHN1bl9zZXRfaWxmYWN0KHZvaWQpOworZXh0ZXJuIHZvaWQgc3VuX3NldF9yc3BlZWQodm9pZCk7CitleHRlcm4gdm9pZCBzdW5fc2V0X3BjeWxjb3VudCh2b2lkKTsKK2V4dGVybiB2b2lkIHRvZ2dsZV9zdW5mbGFncyhpbnQgaSwgdWludDE2X3QgbWFzayk7CitleHRlcm4gaW50IHN1bl9nZXRfc3lzaWQoaW50IGkpOworCisjZW5kaWYgLyogRkRJU0tfU1VOX0xBQkVMX0ggKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2dwdC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZ3B0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY2NTlmZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2dwdC5jCkBAIC0wLDAgKzEsMjE1IEBACisvKgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKKyAqCisgKgorICogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgc2lnbmF0dXJlIGRldGVjdGlvbi4gQmFzZWQgb24gbGlicGFydGVkIGFuZAorICogdXRpbC1saW51eC9wYXJ0eC4KKyAqCisgKiBXYXJuaW5nOiB0aGlzIGNvZGUgZG9lc24ndCBkbyBhbGwgR1BUIGNoZWNrcyAoQ1JDMzIsIFByb3RlY3RpdmUgTUJSLCAuLikuCisgKiAgICAgICAgICBJdCdzIHJlYWxseSBHUFQgc2lnbmF0dXJlIGRldGVjdGlvbiBvbmx5LgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSAiZ3B0LmgiCisjaW5jbHVkZSAiYmxrZGV2LmgiCisjaW5jbHVkZSAiYml0b3BzLmgiCisKKyNkZWZpbmUgR1BUX0hFQURFUl9TSUdOQVRVUkUgMHg1NDUyNDE1MDIwNDk0NjQ1TEwKKyNkZWZpbmUgR1BUX1BSSU1BUllfUEFSVElUSU9OX1RBQkxFX0xCQSAxCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICAgICAgdWludDMyX3QgdGltZV9sb3c7CisgICAgICAgIHVpbnQxNl90IHRpbWVfbWlkOworICAgICAgICB1aW50MTZfdCB0aW1lX2hpX2FuZF92ZXJzaW9uOworICAgICAgICB1aW50OF90ICBjbG9ja19zZXFfaGlfYW5kX3Jlc2VydmVkOworICAgICAgICB1aW50OF90ICBjbG9ja19zZXFfbG93OworICAgICAgICB1aW50OF90ICBub2RlWzZdOworfSAvKiBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKi8gZWZpX2d1aWRfdDsKKy8qIGNvbW1lbnRlZCBvdXQgIl9fYXR0cmlidXRlX18gKChwYWNrZWQpKSIgdG8gd29yayBhcm91bmQgZ2NjIGJ1ZyAoZml4ZWQKKyAqIGluIGdjYzMuMSk6IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBicmVha3MgYWRkcmVzc2luZyBvbiBpbml0aWFsaXplZAorICogZGF0YS4gIEl0IHR1cm5zIG91dCB3ZSBkb24ndCBuZWVkIGl0IGluIHRoaXMgY2FzZSwgc28gaXQgZG9lc24ndCBicmVhaworICogYW55dGhpbmcgOikKKyAqLworCit0eXBlZGVmIHN0cnVjdCBfR3VpZFBhcnRpdGlvblRhYmxlSGVhZGVyX3QgeworCXVpbnQ2NF90IFNpZ25hdHVyZTsKKwl1aW50MzJfdCBSZXZpc2lvbjsKKwl1aW50MzJfdCBIZWFkZXJTaXplOworCXVpbnQzMl90IEhlYWRlckNSQzMyOworCXVpbnQzMl90IFJlc2VydmVkMTsKKwl1aW50NjRfdCBNeUxCQTsKKwl1aW50NjRfdCBBbHRlcm5hdGVMQkE7CisJdWludDY0X3QgRmlyc3RVc2FibGVMQkE7CisJdWludDY0X3QgTGFzdFVzYWJsZUxCQTsKKwllZmlfZ3VpZF90IERpc2tHVUlEOworCXVpbnQ2NF90IFBhcnRpdGlvbkVudHJ5TEJBOworCXVpbnQzMl90IE51bWJlck9mUGFydGl0aW9uRW50cmllczsKKwl1aW50MzJfdCBTaXplT2ZQYXJ0aXRpb25FbnRyeTsKKwl1aW50MzJfdCBQYXJ0aXRpb25FbnRyeUFycmF5Q1JDMzI7CisJdWludDhfdCBSZXNlcnZlZDJbNTEyIC0gOTJdOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgR3VpZFBhcnRpdGlvblRhYmxlSGVhZGVyX3Q7CisKK3N0YXRpYyBpbnQKK19nZXRfc2VjdG9yX3NpemUgKGludCBmZCkKK3sKKwlpbnQgc2VjdG9yX3NpemU7CisKKwlpZiAoYmxrZGV2X2dldF9zZWN0b3Jfc2l6ZShmZCwgJnNlY3Rvcl9zaXplKSA9PSAtMSkKKwkJcmV0dXJuIERFRkFVTFRfU0VDVE9SX1NJWkU7CisJcmV0dXJuIHNlY3Rvcl9zaXplOworfQorCitzdGF0aWMgdWludDY0X3QKK19nZXRfbnVtX3NlY3RvcnMoaW50IGZkKQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBieXRlcz0wOworCisJaWYgKGJsa2Rldl9nZXRfc2l6ZShmZCwgJmJ5dGVzKSA9PSAtMSkKKwkJcmV0dXJuIDA7CisJcmV0dXJuIGJ5dGVzIC8gX2dldF9zZWN0b3Jfc2l6ZShmZCk7Cit9CisKK3N0YXRpYyB1aW50NjRfdAorbGFzdF9sYmEoaW50IGZkKQoreworCWludCByYzsKKwl1aW50NjRfdCBzZWN0b3JzID0gMDsKKwlzdHJ1Y3Qgc3RhdCBzOworCisJbWVtc2V0KCZzLCAwLCBzaXplb2YgKHMpKTsKKwlyYyA9IGZzdGF0KGZkLCAmcyk7CisJaWYgKHJjID09IC0xKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJsYXN0X2xiYSgpIGNvdWxkIG5vdCBzdGF0OiAlc1xuIiwKKwkJCXN0cmVycm9yKGVycm5vKSk7CisJCXJldHVybiAwOworCX0KKwlpZiAoU19JU0JMSyhzLnN0X21vZGUpKQorCQlzZWN0b3JzID0gX2dldF9udW1fc2VjdG9ycyhmZCk7CisJZWxzZSBpZiAoU19JU1JFRyhzLnN0X21vZGUpKQorCQlzZWN0b3JzID0gcy5zdF9zaXplID4+IF9nZXRfc2VjdG9yX3NpemUoZmQpOworCWVsc2UKKwl7CisJCWZwcmludGYoc3RkZXJyLAorCQkJImxhc3RfbGJhKCk6IEkgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGZpbGVzIHdpdGggbW9kZSAlb1xuIiwKKwkJCXMuc3RfbW9kZSk7CisJCXNlY3RvcnMgPSAxOworCX0KKwlyZXR1cm4gc2VjdG9ycyAtIDE7Cit9CisKK3N0YXRpYyBzc2l6ZV90CityZWFkX2xiYShpbnQgZmQsIHVpbnQ2NF90IGxiYSwgdm9pZCAqYnVmZmVyLCBzaXplX3QgYnl0ZXMpCit7CisJaW50IHNlY3Rvcl9zaXplID0gX2dldF9zZWN0b3Jfc2l6ZShmZCk7CisJb2ZmX3Qgb2Zmc2V0ID0gbGJhICogc2VjdG9yX3NpemU7CisKKwlsc2VlayhmZCwgb2Zmc2V0LCBTRUVLX1NFVCk7CisJcmV0dXJuIHJlYWQoZmQsIGJ1ZmZlciwgYnl0ZXMpOworfQorCitzdGF0aWMgR3VpZFBhcnRpdGlvblRhYmxlSGVhZGVyX3QgKgorYWxsb2NfcmVhZF9ncHRfaGVhZGVyKGludCBmZCwgdWludDY0X3QgbGJhKQoreworCUd1aWRQYXJ0aXRpb25UYWJsZUhlYWRlcl90ICpncHQgPQorCQkoR3VpZFBhcnRpdGlvblRhYmxlSGVhZGVyX3QgKikgbWFsbG9jKHNpemVvZiAoR3VpZFBhcnRpdGlvblRhYmxlSGVhZGVyX3QpKTsKKwlpZiAoIWdwdCkKKwkJcmV0dXJuIE5VTEw7CisJbWVtc2V0KGdwdCwgMCwgc2l6ZW9mICgqZ3B0KSk7CisJaWYgKCFyZWFkX2xiYShmZCwgbGJhLCBncHQsIHNpemVvZiAoR3VpZFBhcnRpdGlvblRhYmxlSGVhZGVyX3QpKSkKKwl7CisJCWZyZWUoZ3B0KTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCXJldHVybiBncHQ7Cit9CisKK3N0YXRpYyBpbnQKK2dwdF9jaGVja19zaWduYXR1cmUoaW50IGZkLCB1aW50NjRfdCBsYmEpCit7CisJR3VpZFBhcnRpdGlvblRhYmxlSGVhZGVyX3QgKmdwdDsKKwlpbnQgcmVzPTA7CisKKwlpZiAoKGdwdCA9IGFsbG9jX3JlYWRfZ3B0X2hlYWRlcihmZCwgbGJhKSkpCisJeworCQlpZiAoZ3B0LT5TaWduYXR1cmUgPT0gY3B1X3RvX2xlNjQoR1BUX0hFQURFUl9TSUdOQVRVUkUpKQorCQkJcmVzID0gMTsKKwkJZnJlZShncHQpOworCX0KKwlyZXR1cm4gcmVzOworfQorCisvKiByZXR1cm5zOgorICoJMCBub3QgZm91bmQgR1BUCisgKgkxIGZvciB2YWxpZCBwcmltYXJ5IEdQVCBoZWFkZXIKKyAqCTIgZm9yIHZhbGlkIGFsdGVybmF0aXZlIEdQVCBoZWFkZXIKKyAqLworaW50CitncHRfcHJvYmVfc2lnbmF0dXJlX2ZkKGludCBmZCkKK3sKKwlpbnQgcmVzID0gMDsKKworCS8qIGNoZWNrIHByaW1hcnkgR1BUIGhlYWRlciAqLworCWlmIChncHRfY2hlY2tfc2lnbmF0dXJlKGZkLCBHUFRfUFJJTUFSWV9QQVJUSVRJT05fVEFCTEVfTEJBKSkKKwkJcmVzID0gMTsKKwllbHNlCisJeworCQkvKiBjaGVjayBhbHRlcm5hdGl2ZSBHUFQgaGVhZGVyICovCisJCXVpbnQ2NF90IGxhc3RsYmEgPSBsYXN0X2xiYShmZCk7CisJCWlmIChncHRfY2hlY2tfc2lnbmF0dXJlKGZkLCBsYXN0bGJhKSkKKwkJCXJlcyA9IDI7CisJfQorCXJldHVybiByZXM7Cit9CisKK2ludAorZ3B0X3Byb2JlX3NpZ25hdHVyZV9kZXZuYW1lKGNoYXIgKmRldm5hbWUpCit7CisJaW50IHJlcywgZmQ7CisJaWYgKChmZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkpKSA8IDApCisJCXJldHVybiAwOworCXJlcyA9IGdwdF9wcm9iZV9zaWduYXR1cmVfZmQoZmQpOworCWNsb3NlKGZkKTsKKwlyZXR1cm4gcmVzOworfQorCisjaWZkZWYgR1BUX1RFU1RfTUFJTgoraW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlpZiAoYXJnYyE9MikKKwl7CisJCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDxkZXY+XG4iLCBhcmd2WzBdKTsKKwkJZXhpdChFWElUX0ZBSUxVUkUpOworCX0KKwlpZiAoZ3B0X3Byb2JlX3NpZ25hdHVyZV9kZXZuYW1lKGFyZ3ZbMV0pKQorCQlwcmludGYoIkdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICVzXG4iLCBhcmd2WzFdKTsKKwlleGl0KEVYSVRfU1VDQ0VTUyk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2dwdC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svZ3B0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU3YzI0YQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2dwdC5oCkBAIC0wLDAgKzEsOCBAQAorI2lmbmRlZiBGRElTS19HUFRfSAorI2RlZmluZSBGRElTS19HUFRfSAorCitleHRlcm4gaW50IGdwdF9wcm9iZV9zaWduYXR1cmVfZmQoaW50IGZkKTsKK2V4dGVybiBpbnQgZ3B0X3Byb2JlX3NpZ25hdHVyZV9kZXZuYW1lKGNoYXIgKmRldm5hbWUpOworCisjZW5kaWYgLyogRkRJU0tfR1BUX0ggKi8KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svaTM4Nl9zeXNfdHlwZXMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2kzODZfc3lzX3R5cGVzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM3ZWM1MQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL2kzODZfc3lzX3R5cGVzLmMKQEAgLTAsMCArMSwxMDkgQEAKKy8qIERPUyBwYXJ0aXRpb24gdHlwZXMgKi8KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJubHMuaCIKKworc3RydWN0IHN5c3R5cGVzIGkzODZfc3lzX3R5cGVzW10gPSB7CisJezB4MDAsIE5fKCJFbXB0eSIpfSwKKwl7MHgwMSwgTl8oIkZBVDEyIil9LAorCXsweDAyLCBOXygiWEVOSVggcm9vdCIpfSwKKwl7MHgwMywgTl8oIlhFTklYIHVzciIpfSwKKwl7MHgwNCwgTl8oIkZBVDE2IDwzMk0iKX0sCisJezB4MDUsIE5fKCJFeHRlbmRlZCIpfSwJCS8qIERPUyAzLjMrIGV4dGVuZGVkIHBhcnRpdGlvbiAqLworCXsweDA2LCBOXygiRkFUMTYiKX0sCQkvKiBET1MgMTYtYml0ID49MzJNICovCisJezB4MDcsIE5fKCJIUEZTL05URlMiKX0sCS8qIE9TLzIgSUZTLCBlZywgSFBGUyBvciBOVEZTIG9yIFFOWCAqLworCXsweDA4LCBOXygiQUlYIil9LAkJLyogQUlYIGJvb3QgKEFJWCAtLSBQUy8yIHBvcnQpIG9yIFNwbGl0RHJpdmUgKi8KKwl7MHgwOSwgTl8oIkFJWCBib290YWJsZSIpfSwJLyogQUlYIGRhdGEgb3IgQ29oZXJlbnQgKi8KKwl7MHgwYSwgTl8oIk9TLzIgQm9vdCBNYW5hZ2VyIil9LC8qIE9TLzIgQm9vdCBNYW5hZ2VyICovCisJezB4MGIsIE5fKCJXOTUgRkFUMzIiKX0sCisJezB4MGMsIE5fKCJXOTUgRkFUMzIgKExCQSkiKX0sLyogTEJBIHJlYWxseSBpcyBgRXh0ZW5kZWQgSW50IDEzaCcgKi8KKwl7MHgwZSwgTl8oIlc5NSBGQVQxNiAoTEJBKSIpfSwKKwl7MHgwZiwgTl8oIlc5NSBFeHQnZCAoTEJBKSIpfSwKKwl7MHgxMCwgTl8oIk9QVVMiKX0sCisJezB4MTEsIE5fKCJIaWRkZW4gRkFUMTIiKX0sCisJezB4MTIsIE5fKCJDb21wYXEgZGlhZ25vc3RpY3MiKX0sCisJezB4MTQsIE5fKCJIaWRkZW4gRkFUMTYgPDMyTSIpfSwKKwl7MHgxNiwgTl8oIkhpZGRlbiBGQVQxNiIpfSwKKwl7MHgxNywgTl8oIkhpZGRlbiBIUEZTL05URlMiKX0sCisJezB4MTgsIE5fKCJBU1QgU21hcnRTbGVlcCIpfSwKKwl7MHgxYiwgTl8oIkhpZGRlbiBXOTUgRkFUMzIiKX0sCisJezB4MWMsIE5fKCJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIil9LAorCXsweDFlLCBOXygiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIpfSwKKwl7MHgyNCwgTl8oIk5FQyBET1MiKX0sCisJezB4MzksIE5fKCJQbGFuIDkiKX0sCisJezB4M2MsIE5fKCJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIpfSwKKwl7MHg0MCwgTl8oIlZlbml4IDgwMjg2Iil9LAorCXsweDQxLCBOXygiUFBDIFBSZVAgQm9vdCIpfSwKKwl7MHg0MiwgTl8oIlNGUyIpfSwKKwl7MHg0ZCwgTl8oIlFOWDQueCIpfSwKKwl7MHg0ZSwgTl8oIlFOWDQueCAybmQgcGFydCIpfSwKKwl7MHg0ZiwgTl8oIlFOWDQueCAzcmQgcGFydCIpfSwKKwl7MHg1MCwgTl8oIk9uVHJhY2sgRE0iKX0sCisJezB4NTEsIE5fKCJPblRyYWNrIERNNiBBdXgxIil9LAkvKiAob3IgTm92ZWxsKSAqLworCXsweDUyLCBOXygiQ1AvTSIpfSwJCS8qIENQL00gb3IgTWljcm9wb3J0IFN5c1YvQVQgKi8KKwl7MHg1MywgTl8oIk9uVHJhY2sgRE02IEF1eDMiKX0sCisJezB4NTQsIE5fKCJPblRyYWNrRE02Iil9LAorCXsweDU1LCBOXygiRVotRHJpdmUiKX0sCisJezB4NTYsIE5fKCJHb2xkZW4gQm93Iil9LAorCXsweDVjLCBOXygiUHJpYW0gRWRpc2siKX0sCisJezB4NjEsIE5fKCJTcGVlZFN0b3IiKX0sCisJezB4NjMsIE5fKCJHTlUgSFVSRCBvciBTeXNWIil9LAkvKiBHTlUgSFVSRCBvciBNYWNoIG9yIFN5cyBWLzM4NiAoc3VjaCBhcyBJU0MgVU5JWCkgKi8KKwl7MHg2NCwgTl8oIk5vdmVsbCBOZXR3YXJlIDI4NiIpfSwKKwl7MHg2NSwgTl8oIk5vdmVsbCBOZXR3YXJlIDM4NiIpfSwKKwl7MHg3MCwgTl8oIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIpfSwKKwl7MHg3NSwgTl8oIlBDL0lYIil9LAorCXsweDgwLCBOXygiT2xkIE1pbml4Iil9LAkvKiBNaW5peCAxLjRhIGFuZCBlYXJsaWVyICovCisJezB4ODEsIE5fKCJNaW5peCAvIG9sZCBMaW51eCIpfSwvKiBNaW5peCAxLjRiIGFuZCBsYXRlciAqLworCXsweDgyLCBOXygiTGludXggc3dhcCAvIFNvbGFyaXMiKX0sCisJezB4ODMsIE5fKCJMaW51eCIpfSwKKwl7MHg4NCwgTl8oIk9TLzIgaGlkZGVuIEM6IGRyaXZlIil9LAorCXsweDg1LCBOXygiTGludXggZXh0ZW5kZWQiKX0sCisJezB4ODYsIE5fKCJOVEZTIHZvbHVtZSBzZXQiKX0sCisJezB4ODcsIE5fKCJOVEZTIHZvbHVtZSBzZXQiKX0sCisJezB4ODgsIE5fKCJMaW51eCBwbGFpbnRleHQiKX0sCisJezB4OGUsIE5fKCJMaW51eCBMVk0iKX0sCisJezB4OTMsIE5fKCJBbW9lYmEiKX0sCisJezB4OTQsIE5fKCJBbW9lYmEgQkJUIil9LAkvKiAoYmFkIGJsb2NrIHRhYmxlKSAqLworCXsweDlmLCBOXygiQlNEL09TIil9LAkJLyogQlNESSAqLworCXsweGEwLCBOXygiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIil9LAorCXsweGE1LCBOXygiRnJlZUJTRCIpfSwJCS8qIHZhcmlvdXMgQlNEIGZsYXZvdXJzICovCisJezB4YTYsIE5fKCJPcGVuQlNEIil9LAorCXsweGE3LCBOXygiTmVYVFNURVAiKX0sCisJezB4YTgsIE5fKCJEYXJ3aW4gVUZTIil9LAorCXsweGE5LCBOXygiTmV0QlNEIil9LAorCXsweGFiLCBOXygiRGFyd2luIGJvb3QiKX0sCisJezB4YWYsIE5fKCJIRlMgLyBIRlMrIil9LAorCXsweGI3LCBOXygiQlNESSBmcyIpfSwKKwl7MHhiOCwgTl8oIkJTREkgc3dhcCIpfSwKKwl7MHhiYiwgTl8oIkJvb3QgV2l6YXJkIGhpZGRlbiIpfSwKKwl7MHhiZSwgTl8oIlNvbGFyaXMgYm9vdCIpfSwKKwl7MHhiZiwgTl8oIlNvbGFyaXMiKX0sCisJezB4YzEsIE5fKCJEUkRPUy9zZWMgKEZBVC0xMikiKX0sCisJezB4YzQsIE5fKCJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiKX0sCisJezB4YzYsIE5fKCJEUkRPUy9zZWMgKEZBVC0xNikiKX0sCisJezB4YzcsIE5fKCJTeXJpbngiKX0sCisJezB4ZGEsIE5fKCJOb24tRlMgZGF0YSIpfSwKKwl7MHhkYiwgTl8oIkNQL00gLyBDVE9TIC8gLi4uIil9LC8qIENQL00gb3IgQ29uY3VycmVudCBDUC9NIG9yCisJCQkJCSAgIENvbmN1cnJlbnQgRE9TIG9yIENUT1MgKi8KKwl7MHhkZSwgTl8oIkRlbGwgVXRpbGl0eSIpfSwJLyogRGVsbCBQb3dlckVkZ2UgU2VydmVyIHV0aWxpdGllcyAqLworCXsweGRmLCBOXygiQm9vdEl0Iil9LAkJLyogQm9vdEl0IEVNQlJNICovCisJezB4ZTEsIE5fKCJET1MgYWNjZXNzIil9LAkvKiBET1MgYWNjZXNzIG9yIFNwZWVkU3RvciAxMi1iaXQgRkFUCisJCQkJCSAgIGV4dGVuZGVkIHBhcnRpdGlvbiAqLworCXsweGUzLCBOXygiRE9TIFIvTyIpfSwJCS8qIERPUyBSL08gb3IgU3BlZWRTdG9yICovCisJezB4ZTQsIE5fKCJTcGVlZFN0b3IiKX0sCS8qIFNwZWVkU3RvciAxNi1iaXQgRkFUIGV4dGVuZGVkCisJCQkJCSAgIHBhcnRpdGlvbiA8IDEwMjQgY3lsLiAqLworCXsweGViLCBOXygiQmVPUyBmcyIpfSwKKwl7MHhlZSwgTl8oIkdQVCIpfSwJCS8qIEludGVsIEVGSSBHVUlEIFBhcnRpdGlvbiBUYWJsZSAqLworCXsweGVmLCBOXygiRUZJIChGQVQtMTIvMTYvMzIpIil9LC8qIEludGVsIEVGSSBTeXN0ZW0gUGFydGl0aW9uICovCisJezB4ZjAsIE5fKCJMaW51eC9QQS1SSVNDIGJvb3QiKX0sLyogTGludXgvUEEtUklTQyBib290IGxvYWRlciAqLworCXsweGYxLCBOXygiU3BlZWRTdG9yIil9LAorCXsweGY0LCBOXygiU3BlZWRTdG9yIil9LAkvKiBTcGVlZFN0b3IgbGFyZ2UgcGFydGl0aW9uICovCisJezB4ZjIsIE5fKCJET1Mgc2Vjb25kYXJ5Iil9LAkvKiBET1MgMy4zKyBzZWNvbmRhcnkgKi8KKwl7MHhmYiwgTl8oIlZNd2FyZSBWTUZTIil9LAorCXsweGZjLCBOXygiVk13YXJlIFZNS0NPUkUiKX0sCS8qIFZNd2FyZSBrZXJuZWwgZHVtcCBwYXJ0aXRpb24gKi8KKwl7MHhmZCwgTl8oIkxpbnV4IHJhaWQgYXV0b2RldGVjdCIpfSwvKiBOZXcgKDIuMi54KSByYWlkIHBhcnRpdGlvbiB3aXRoCisJCQkJCSAgICAgICBhdXRvZGV0ZWN0IHVzaW5nIHBlcnNpc3RlbnQKKwkJCQkJICAgICAgIHN1cGVyYmxvY2sgKi8KKwl7MHhmZSwgTl8oIkxBTnN0ZXAiKX0sCQkvKiBTcGVlZFN0b3IgPjEwMjQgY3lsLiBvciBMQU5zdGVwICovCisJezB4ZmYsIE5fKCJCQlQiKX0sCQkvKiBYZW5peCBCYWQgQmxvY2sgVGFibGUgKi8KKwl7IDAsIDAgfQorfTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL3BhcnRpdGlvbnR5cGUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL3BhcnRpdGlvbnR5cGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWU0NGEwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svcGFydGl0aW9udHlwZS5jCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogcGFydGl0aW9udHlwZS5jLCBhZWIsIDIwMDEtMDktMTAKKyAqCisgKiBjYWxsOiBwYXJ0aXRpb250eXBlIGRldmljZQorICoKKyAqIGVpdGhlciBleGl0KDEpLCBvciBleGl0KDApIHdpdGggYSBzaW5nbGUgbGluZSBvZiBvdXRwdXQKKyAqIERPUzogc2VjdG9yIDAgaGFzIGEgRE9TIHNpZ25hdHVyZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworc3RydWN0IGFpeF9sYWJlbCB7CisJdW5zaWduZWQgaW50ICAgbWFnaWM7CisJLyogbW9yZSAuLi4gKi8KK307CisKKyNkZWZpbmUJQUlYX0xBQkVMX01BR0lDCQkweGM5YzJkNGMxCisjZGVmaW5lCUFJWF9MQUJFTF9NQUdJQ19TV0FQUEVECTB4YzFkNGMyYzkKKworc3RydWN0IGJzZF9sYWJlbCB7CisJdW5zaWduZWQgaW50ICAgbWFnaWM7CisJdW5zaWduZWQgY2hhciAgc3R1ZmZbMTI4XTsKKwl1bnNpZ25lZCBpbnQgICBtYWdpYzI7CisJLyogbW9yZSAuLi4gKi8KK307CisKKyNkZWZpbmUgQlNEX0xBQkVMX01BR0lDICAgICAgICAgMHg4MjU2NDU1NworCitzdHJ1Y3Qgc2dpX2xhYmVsIHsKKwl1bnNpZ25lZCBpbnQgICBtYWdpYzsKKwkvKiBtb3JlIC4uLiAqLworfTsKKworI2RlZmluZQlTR0lfTEFCRUxfTUFHSUMJCTB4MGJlNWE5NDEKKyNkZWZpbmUJU0dJX0xBQkVMX01BR0lDX1NXQVBQRUQJMHg0MWE5ZTUwYgorCitzdHJ1Y3Qgc3VuX2xhYmVsIHsKKwl1bnNpZ25lZCBjaGFyIHN0dWZmWzUwOF07CisJdW5zaWduZWQgc2hvcnQgbWFnaWM7ICAgICAgLyogTWFnaWMgbnVtYmVyICovCisJdW5zaWduZWQgc2hvcnQgY3N1bTsgICAgICAgLyogTGFiZWwgeG9yJ2QgY2hlY2tzdW0gKi8KK307CisKKyNkZWZpbmUgU1VOX0xBQkVMX01BR0lDICAgICAgICAgIDB4REFCRQorI2RlZmluZSBTVU5fTEFCRUxfTUFHSUNfU1dBUFBFRCAgMHhCRURBCisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKwlpbnQgZmQsIG47CisJdW5zaWduZWQgY2hhciBidWZbMTAyNF07CisJc3RydWN0IGFpeF9sYWJlbCAqcGFpeDsKKwlzdHJ1Y3QgYnNkX2xhYmVsICpwYnNkOworCXN0cnVjdCBzZ2lfbGFiZWwgKnBzZ2k7CisJc3RydWN0IHN1bl9sYWJlbCAqcHN1bjsKKworCWlmIChhcmdjICE9IDIpIHsKKwkJZnByaW50ZihzdGRlcnIsICJjYWxsOiAlcyBkZXZpY2VcbiIsIGFyZ3ZbMF0pOworCQlleGl0KDEpOworCX0KKwlmZCA9IG9wZW4oYXJndlsxXSwgT19SRE9OTFkpOworCWlmIChmZCA9PSAtMSkgeworCQlwZXJyb3IoYXJndlsxXSk7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IGNhbm5vdCBvcGVuIGRldmljZSAlc1xuIiwKKwkJCWFyZ3ZbMF0sIGFyZ3ZbMV0pOworCQlleGl0KDEpOworCX0KKwluID0gcmVhZChmZCwgYnVmLCBzaXplb2YoYnVmKSk7CisJaWYgKG4gIT0gc2l6ZW9mKGJ1ZikpIHsKKwkJaWYgKG4gPT0gLTEpCisJCQlwZXJyb3IoYXJndlsxXSk7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IGNhbm5vdCByZWFkIGRldmljZSAlc1xuIiwKKwkJCWFyZ3ZbMF0sIGFyZ3ZbMV0pOworCQlleGl0KDEpOworCX0KKworCXBzdW4gPSAoc3RydWN0IHN1bl9sYWJlbCAqKSgmYnVmKTsKKwlpZiAocHN1bi0+bWFnaWMgPT0gU1VOX0xBQkVMX01BR0lDIHx8CisJICAgIHBzdW4tPm1hZ2ljID09IFNVTl9MQUJFTF9NQUdJQ19TV0FQUEVEKSB7CisJCXVuc2lnbmVkIHNob3J0IGNzdW0gPSAwLCAqcDsKKwkJaW50IGk7CisKKwkJZm9yIChwID0gKHVuc2lnbmVkIHNob3J0ICopKCZidWYpOworCQkgICAgIHAgPCAodW5zaWduZWQgc2hvcnQgKikoJmJ1Zls1MTJdKTsgcCsrKQorCQkJY3N1bSBePSAqcDsKKworCQlpZiAoY3N1bSA9PSAwKSB7CisJCQlwcmludGYoIlNVTlxuIik7CisJCQlleGl0KDApOworCQl9CisJfQorCisJcGJzZCA9IChzdHJ1Y3QgYnNkX2xhYmVsICopKCZidWZbNTEyXSk7CisJaWYgKHBic2QtPm1hZ2ljID09IEJTRF9MQUJFTF9NQUdJQyAmJgorCSAgICBwYnNkLT5tYWdpYzIgPT0gQlNEX0xBQkVMX01BR0lDKSB7CisJCXByaW50ZigiQlNEXG4iKTsKKwkJZXhpdCgwKTsKKwl9CisKKwlwYnNkID0gKHN0cnVjdCBic2RfbGFiZWwgKikoJmJ1Zls2NF0pOworCWlmIChwYnNkLT5tYWdpYyA9PSBCU0RfTEFCRUxfTUFHSUMgJiYKKwkgICAgcGJzZC0+bWFnaWMyID09IEJTRF9MQUJFTF9NQUdJQykgeworCQlwcmludGYoIkJTRFxuIik7CisJCWV4aXQoMCk7CisJfQorCisJcGFpeCA9IChzdHJ1Y3QgYWl4X2xhYmVsICopKCZidWYpOworCWlmIChwYWl4LT5tYWdpYyA9PSBBSVhfTEFCRUxfTUFHSUMgfHwKKwkgICAgcGFpeC0+bWFnaWMgPT0gQUlYX0xBQkVMX01BR0lDX1NXQVBQRUQpIHsKKwkJcHJpbnRmKCJBSVhcbiIpOworCQlleGl0KDApOworCX0KKworCXBzZ2kgPSAoc3RydWN0IHNnaV9sYWJlbCAqKSgmYnVmKTsKKwlpZiAocHNnaS0+bWFnaWMgPT0gU0dJX0xBQkVMX01BR0lDIHx8CisJICAgIHBzZ2ktPm1hZ2ljID09IFNHSV9MQUJFTF9NQUdJQ19TV0FQUEVEKSB7CisJCXByaW50ZigiU0dJXG4iKTsKKwkJZXhpdCgwKTsKKwl9CisKKwlpZiAoYnVmWzUxMF0gPT0gMHg1NSAmJiBidWZbNTExXSA9PSAweGFhKSB7CisJCXByaW50ZigiRE9TXG4iKTsKKwkJZXhpdCgwKTsKKwl9CisjaWYgMAorCWZwcmludGYoc3RkZXJyLCAiJXM6IGRvIG5vdCByZWNvZ25pemUgYW55IGxhYmVsIG9uICVzXG4iLAorCQlhcmd2WzBdLCBhcmd2WzFdKTsKKyNlbmRpZgorCWV4aXQoMSk7CQkvKiB1bmtub3duICovCit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL3BhcnRuYW1lLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9wYXJ0bmFtZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmZTMwODcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9wYXJ0bmFtZS5jCkBAIC0wLDAgKzEsNDggQEAKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJibGtkZXYuaCIKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJjb21tb24uaCIKKworLyoKKyAqIHJldHVybiBwYXJ0aXRpb24gbmFtZSAtIHVzZXMgc3RhdGljIHN0b3JhZ2UgdW5sZXNzIGJ1ZiBpcyBzdXBwbGllZAorICovCitjaGFyICoKK3BhcnRuYW1lKGNoYXIgKmRldiwgaW50IHBubywgaW50IGx0aCkgeworCXN0YXRpYyBjaGFyIGJ1ZnBbODBdOworCWNoYXIgKnA7CisJaW50IHcsIHdwOworCisJdyA9IHN0cmxlbihkZXYpOworCXAgPSAiIjsKKworCWlmIChpc2RpZ2l0KGRldlt3LTFdKSkKKwkJcCA9ICJwIjsKKworCS8qIGRldmZzIGtsdWRnZSAtIG5vdGU6IGZkaXNrIHBhcnRpdGlvbiBuYW1lcyBhcmUgbm90IHN1cHBvc2VkCisJICAgdG8gZXF1YWwga2VybmVsIG5hbWVzLCBzbyB0aGVyZSBpcyBubyByZWFzb24gdG8gZG8gdGhpcyAqLworCWlmIChzdHJjbXAgKGRldiArIHcgLSA0LCAiZGlzYyIpID09IDApIHsKKwkJdyAtPSA0OworCQlwID0gInBhcnQiOworCX0KKworCS8qIHVkZXYgbmFtZXMgcGFydGl0aW9ucyBieSBhcHBlbmRpbmcgLXBhcnROCisJICAgZS5nLiBhdGEtU0FNU1VOR19TVjgwMDRIXzAzNTdKMUZUNzEyNDQ4LXBhcnQxICovCisJaWYgKChzdHJuY21wKGRldiwgX1BBVEhfREVWX0JZSUQsIHN0cmxlbihfUEFUSF9ERVZfQllJRCkpID09IDApIHx8CisJICAgICBzdHJuY21wKGRldiwgX1BBVEhfREVWX0JZUEFUSCwgc3RybGVuKF9QQVRIX0RFVl9CWVBBVEgpKSA9PSAwKSB7CisJICAgICAgIHAgPSAiLXBhcnQiOworCX0KKworCXdwID0gc3RybGVuKHApOworCisJaWYgKGx0aCkgeworCQlzbnByaW50ZihidWZwLCBzaXplb2YoYnVmcCksICIlKi4qcyVzJS0ydSIsCisJCQkgbHRoLXdwLTIsIHcsIGRldiwgcCwgcG5vKTsKKwl9IGVsc2UgeworCQlzbnByaW50ZihidWZwLCBzaXplb2YoYnVmcCksICIlLipzJXMlLTJ1IiwgdywgZGV2LCBwLCBwbm8pOworCX0KKwlyZXR1cm4gYnVmcDsKK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svc2ZkaXNrLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9zZmRpc2suOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTk4MjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svc2ZkaXNrLjgKQEAgLTAsMCArMSw1NjMgQEAKKy5cIiBDb3B5cmlnaHQgMTk5NSBBbmRyaWVzIEUuIEJyb3V3ZXIgKGFlYkBjd2kubmwpCisuXCIgTWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLlwiIFRoZSBgRE9TIDYueCBXYXJuaW5nJyB3YXMgdGFrZW4gZnJvbSB0aGUgb2xkIGZkaXNrLjgsIHdoaWNoIHNheXMKKy5cIiAtLSBDb3B5cmlnaHQgMTk5MiwgMTk5MyBSaWNrYXJkIEUuIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlwiIC0tIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5cIiBUaGUgYERSRE9TIFdhcm5pbmcnIHdhcyB0YWtlbiBmcm9tIGEgbmV0IHBvc3QgYnkgU3RlcGhlbiBUd2VlZGllLgorLlwiCisuVEggU0ZESVNLIDggIjEgU2VwdGVtYmVyIDE5OTUiICJMaW51eCIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorc2ZkaXNrIFwtIFBhcnRpdGlvbiB0YWJsZSBtYW5pcHVsYXRvciBmb3IgTGludXgKKy5TSCBTWU5PUFNJUworLkIgc2ZkaXNrCisuUkkgWyBvcHRpb25zIF0KKy5JIGRldmljZQorLmJyCisuQiBzZmRpc2sgXC1zCisuUkkgWyBwYXJ0aXRpb24gXQorLlNIIERFU0NSSVBUSU9OCisuQiBzZmRpc2sKK2hhcyBmb3VyIChtYWluKSB1c2VzOiBsaXN0IHRoZSBzaXplIG9mIGEgcGFydGl0aW9uLCBsaXN0IHRoZSBwYXJ0aXRpb25zCitvbiBhIGRldmljZSwgY2hlY2sgdGhlIHBhcnRpdGlvbnMgb24gYSBkZXZpY2UsIGFuZCAtIHZlcnkgZGFuZ2Vyb3VzIC0KK3JlcGFydGl0aW9uIGEgZGV2aWNlLgorCisuQiBzZmRpc2sKK2RvZXNuJ3QgdW5kZXJzdGFuZCBHVUlEIFBhcnRpdGlvbiBUYWJsZSAoR1BUKSBhbmQKK2l0IGlzIG5vdCBkZXNpZ25lZCBmb3IgbGFyZ2UgcGFydGl0aW9ucy4gSW4gcGFydGljdWxhciBjYXNlIHVzZSBtb3JlIGFkdmFuY2VkIEdOVQorLkJSIHBhcnRlZCAoOCkuCisKKy5TUyAiTGlzdCBTaXplcyIKKy5CSSAic2ZkaXNrIFwtcyAiIHBhcnRpdGlvbgorZ2l2ZXMgdGhlIHNpemUgb2YKKy5JIHBhcnRpdGlvbgoraW4gYmxvY2tzLiBUaGlzIG1heSBiZSB1c2VmdWwgaW4gY29ubmVjdGlvbiB3aXRoIHByb2dyYW1zIGxpa2UKKy5CUiBta3N3YXAgKDgpCitvciBzby4gSGVyZQorLkkgcGFydGl0aW9uCitpcyB1c3VhbGx5IHNvbWV0aGluZyBsaWtlCisuSSAvZGV2L2hkYTEKK29yCisuSVIgL2Rldi9zZGIxMiAsCitidXQgbWF5IGFsc28gYmUgYW4gZW50aXJlIGRpc2ssIGxpa2UKKy5JUiAvZGV2L3hkYSAuCisuYnIKKy5SUworLm5mCisuaWYgdCAuZnQgQ1cKKyUgc2ZkaXNrIFwtcyAvZGV2L2hkYTkKKzgxNTk5CislCisuaWYgdCAuZnQgUgorLmZpCisuUkUKK0lmIHRoZSBwYXJ0aXRpb24gYXJndW1lbnQgaXMgb21pdHRlZCwKKy5CIHNmZGlzaword2lsbCBsaXN0IHRoZSBzaXplcyBvZiBhbGwgZGlza3MsIGFuZCB0aGUgdG90YWw6CisuYnIKKy5SUworLm5mCisuaWYgdCAuZnQgQ1cKKyUgc2ZkaXNrIFwtcworL2Rldi9oZGE6IDIwODg5NgorL2Rldi9oZGI6IDEwMjUxMzYKKy9kZXYvaGRjOiAxMDMxMDYzCisvZGV2L3NkYTogODg3Nzg5NQorL2Rldi9zZGI6IDE3NTg5MjcKK3RvdGFsOiAxMjkwMTkxNyBibG9ja3MKKyUKKy5pZiB0IC5mdCBSCisuZmkKKy5SRQorCisuU1MgIkxpc3QgUGFydGl0aW9ucyIKK1RoZSBzZWNvbmQgdHlwZSBvZiBpbnZvY2F0aW9uOgorLkIgc2ZkaXNrIFwtbAorLlJCIFsgb3B0aW9ucyBdCisuSSBkZXZpY2UKK3dpbGwgbGlzdCB0aGUgcGFydGl0aW9ucyBvbiB0aGlzIGRldmljZS4KK0lmIHRoZSBkZXZpY2UgYXJndW1lbnQgaXMgb21pdHRlZCwgdGhlIHBhcnRpdGlvbnMgb24gYWxsIGhhcmQgZGlza3MKK2FyZSBsaXN0ZWQuCisuYnIKKy5uZgorLmlmIHQgLmZ0IENXCislIHNmZGlzayBcLWwgL2Rldi9oZGMKKworRGlzayAvZGV2L2hkYzogMTYgaGVhZHMsIDYzIHNlY3RvcnMsIDIwNDUgY3lsaW5kZXJzCitVbml0cyA9IGN5bGluZGVycyBvZiA1MTYwOTYgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tIDAKKworICAgRGV2aWNlIEJvb3QgU3RhcnQgICAgIEVuZCAgICNjeWxzICAgI2Jsb2NrcyAgIElkICBTeXN0ZW0KKy9kZXYvaGRjMSAgICAgICAgICAwKyAgICA0MDYgICAgIDQwN1wtICAgMjA1MDk2KyAgODMgIExpbnV4IG5hdGl2ZQorL2Rldi9oZGMyICAgICAgICA0MDcgICAgIDgxMyAgICAgNDA3ICAgIDIwNTEyOCAgIDgzICBMaW51eCBuYXRpdmUKKy9kZXYvaGRjMyAgICAgICAgODE0ICAgIDIwNDQgICAgMTIzMSAgICA2MjA0MjQgICA4MyAgTGludXggbmF0aXZlCisvZGV2L2hkYzQgICAgICAgICAgMCAgICAgICBcLSAgICAgICAwICAgICAgICAgMCAgICAwICBFbXB0eQorJQorLmlmIHQgLmZ0IFIKKy5maQorVGhlIHRyYWlsaW5nIFwtIGFuZCArIHNpZ25zIGluZGljYXRlIHRoYXQgcm91bmRpbmcgaGFzIHRha2VuIHBsYWNlLAorYW5kIHRoYXQgdGhlIGFjdHVhbCB2YWx1ZSBpcyBzbGlnaHRseSBsZXNzIChtb3JlKS4KK1RvIHNlZSB0aGUgZXhhY3QgdmFsdWVzLCBhc2sgZm9yIGEgbGlzdGluZyB3aXRoIHNlY3RvcnMgYXMgdW5pdC4KKworLlNTICJDaGVjayBwYXJ0aXRpb25zIgorVGhlIHRoaXJkIHR5cGUgb2YgaW52b2NhdGlvbjoKKy5CSSAic2ZkaXNrIFwtViAiIGRldmljZQord2lsbCBhcHBseSB2YXJpb3VzIGNvbnNpc3RlbmN5IGNoZWNrcyB0byB0aGUgcGFydGl0aW9uIHRhYmxlcyBvbgorLklSIGRldmljZSAuCitJdCBwcmludHMgYE9LJyBvciBjb21wbGFpbnMuIFRoZSBcLVYgb3B0aW9uIGNhbiBiZSB1c2VkIHRvZ2V0aGVyCit3aXRoIFwtbC4gSW4gYSBzaGVsbCBzY3JpcHQgb25lIG1pZ2h0IHVzZQorLkJJICJzZmRpc2sgXC1WIFwtcSAiIGRldmljZQord2hpY2ggb25seSByZXR1cm5zIGEgc3RhdHVzLgorCisuU1MgIkNyZWF0ZSBwYXJ0aXRpb25zIgorVGhlIGZvdXJ0aCB0eXBlIG9mIGludm9jYXRpb246CisuQkkgInNmZGlzayAiIGRldmljZQord2lsbCBjYXVzZQorLkIgc2ZkaXNrCit0byByZWFkIHRoZSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgZGVzaXJlZCBwYXJ0aXRpb25pbmcgb2YKKy5JIGRldmljZQorZnJvbSBpdHMgc3RhbmRhcmQgaW5wdXQsIGFuZCB0aGVuIHRvIGNoYW5nZSB0aGUgcGFydGl0aW9uIHRhYmxlcworb24gdGhhdCBkaXNrLiBUaHVzLCBpdCBpcyBwb3NzaWJsZSB0byB1c2UKKy5CIHNmZGlzaworZnJvbSBhIHNoZWxsIHNjcmlwdC4gV2hlbgorLkIgc2ZkaXNrCitkZXRlcm1pbmVzIHRoYXQgaXRzIHN0YW5kYXJkIGlucHV0IGlzIGEgdGVybWluYWwsIGl0IHdpbGwgYmUKK2NvbnZlcnNhdGlvbmFsOyBvdGhlcndpc2UgaXQgd2lsbCBhYm9ydCBvbiBhbnkgZXJyb3IuCisuTFAKK0JFIEVYVFJFTUVMWSBDQVJFRlVMIC0gT05FIFRZUElORyBNSVNUQUtFIEFORCBBTEwgWU9VUiBEQVRBIElTIExPU1QKKy5MUAorQXMgYSBwcmVjYXV0aW9uLCBvbmUgY2FuIHNhdmUgdGhlIHNlY3RvcnMgY2hhbmdlZCBieQorLkJSIHNmZGlzayA6CisuUlMKKy5uZgorLmlmIHQgLmZ0IENXCislIHNmZGlzayAvZGV2L2hkZCBcLU8gaGRkLXBhcnRpdGlvbi1zZWN0b3JzLnNhdmUKK1wmLi4uCislCisuaWYgdCAuZnQgUgorLmZpCisuUkUKKy5MUAorVGhlbiwgaWYgeW91IGRpc2NvdmVyIHRoYXQgeW91IGRpZCBzb21ldGhpbmcgc3R1cGlkIGJlZm9yZSBhbnl0aGluZworZWxzZSBoYXMgYmVlbiB3cml0dGVuIHRvIGRpc2ssIGl0IG1heSBiZSBwb3NzaWJsZSB0byByZWNvdmVyCit0aGUgb2xkIHNpdHVhdGlvbiB3aXRoCisuUlMKKy5uZgorLmlmIHQgLmZ0IENXCislIHNmZGlzayAvZGV2L2hkZCBcLUkgaGRkLXBhcnRpdGlvbi1zZWN0b3JzLnNhdmUKKyUKKy5pZiB0IC5mdCBSCisuZmkKKy5SRQorLkxQCisoVGhpcyBpcyBub3QgdGhlIHNhbWUgYXMgc2F2aW5nIHRoZSBvbGQgcGFydGl0aW9uIHRhYmxlOgorYSByZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBvbGQgcGFydGl0aW9uIHRhYmxlIGNhbiBiZSBzYXZlZAordXNpbmcgdGhlIFwtZCBvcHRpb24uIEhvd2V2ZXIsIGlmIHlvdSBjcmVhdGUgbG9naWNhbCBwYXJ0aXRpb25zLAordGhlIHNlY3RvcnMgZGVzY3JpYmluZyB0aGVtIGFyZSBsb2NhdGVkIHNvbWV3aGVyZSBvbiBkaXNrLAorcG9zc2libHkgb24gc2VjdG9ycyB0aGF0IHdlcmUgbm90IHBhcnQgb2YgdGhlIHBhcnRpdGlvbiB0YWJsZQorYmVmb3JlLiBUaHVzLCB0aGUgaW5mb3JtYXRpb24gdGhlIFwtTyBvcHRpb24gc2F2ZXMgaXMgbm90IGEgYmluYXJ5Cit2ZXJzaW9uIG9mIHRoZSBvdXRwdXQgb2YgXC1kLikKKworVGhlcmUgYXJlIG1hbnkgb3B0aW9ucy4KKworLlNIIE9QVElPTlMKKy5UUAorLkJSIFwtdiAiIG9yICIgXC1cLXZlcnNpb24KK1ByaW50IHZlcnNpb24gbnVtYmVyIG9mCisuQiBzZmRpc2sKK2FuZCBleGl0IGltbWVkaWF0ZWx5LgorLlRQCisuQlIgXC0/ICIgb3IgIiBcLVwtaGVscAorUHJpbnQgYSB1c2FnZSBtZXNzYWdlIGFuZCBleGl0IGltbWVkaWF0ZWx5LgorLlRQCisuQlIgXC1UICIgb3IgIiBcLVwtbGlzdFwtdHlwZXMKK1ByaW50IHRoZSByZWNvZ25pemVkIHR5cGVzIChzeXN0ZW0gSWQncykuCisuVFAKKy5CUiBcLXMgIiBvciAiIFwtXC1zaG93XC1zaXplCitMaXN0IHRoZSBzaXplIG9mIGEgcGFydGl0aW9uLgorLlRQCisuQlIgXC1nICIgb3IgIiBcLVwtc2hvd1wtZ2VvbWV0cnkKK0xpc3QgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IG9mIHRoZSBpbmRpY2F0ZWQgZGlzayhzKS4KKy5UUAorLkJSIFwtRyAiIG9yICIgXC1cLXNob3dcLXB0XC1nZW9tZXRyeQorTGlzdCB0aGUgZ2VvbWV0cnkgb2YgdGhlIGluZGljYXRlZCBkaXNrcyBndWVzc2VkIGJ5IGxvb2tpbmcgYXQKK3RoZSBwYXJ0aXRpb24gdGFibGUuCisuVFAKKy5CUiBcLWwgIiBvciAiIFwtXC1saXN0CitMaXN0IHRoZSBwYXJ0aXRpb25zIG9mIGEgZGV2aWNlLgorLlRQCisuQlIgXC1kCitEdW1wIHRoZSBwYXJ0aXRpb25zIG9mIGEgZGV2aWNlIGluIGEgZm9ybWF0IHVzZWZ1bCBhcyBpbnB1dAordG8gc2ZkaXNrLiBGb3IgZXhhbXBsZSwKKy5icgorLm5mCisuaWYgdCAuZnQgQ1cKKyAgICAlIHNmZGlzayAtZCAvZGV2L2hkYSA+IGhkYS5vdXQKKyAgICAlIHNmZGlzayAvZGV2L2hkYSA8IGhkYS5vdXQKKy5pZiB0IC5mdCBSCisuZmkKK3dpbGwgY29ycmVjdCB0aGUgYmFkIGxhc3QgZXh0ZW5kZWQgcGFydGl0aW9uIHRoYXQgdGhlIE9TLzIKK2ZkaXNrIGNyZWF0ZXMuCisuVFAKKy5CUiBcLVYgIiBvciAiIFwtXC12ZXJpZnkKK1Rlc3Qgd2hldGhlciBwYXJ0aXRpb25zIHNlZW0gY29ycmVjdC4gKFNlZSBhYm92ZS4pCisuVFAKKy5CUiBcLWkgIiBvciAiIFwtXC1pbmNyZW1lbnQKK051bWJlciBjeWxpbmRlcnMgZXRjLiBzdGFydGluZyBmcm9tIDEgaW5zdGVhZCBvZiAwLgorLlRQCisuQkkgXC1OICIgbnVtYmVyIgorQ2hhbmdlIG9ubHkgdGhlIHNpbmdsZSBwYXJ0aXRpb24gaW5kaWNhdGVkLiBGb3IgZXhhbXBsZToKKy5icgorLm5mCisuaWYgdCAuZnQgQ1cKKyAgICAlIHNmZGlzayAvZGV2L2hkYiBcLU41CisgICAgLCwsKgorICAgICUKKy5pZiB0IC5mdCBSCisuZmkKK3dpbGwgbWFrZSB0aGUgZmlmdGggcGFydGl0aW9uIG9uIC9kZXYvaGRiIGJvb3RhYmxlIChgYWN0aXZlJykKK2FuZCBjaGFuZ2Ugbm90aGluZyBlbHNlLiAoUHJvYmFibHkgdGhpcyBmaWZ0aCBwYXJ0aXRpb24KK2lzIGNhbGxlZCAvZGV2L2hkYjUsIGJ1dCB5b3UgYXJlIGZyZWUgdG8gY2FsbCBpdCBzb21ldGhpbmcgZWxzZSwKK2xpa2UgYC9teV9lcXVpcG1lbnQvZGlza3MvMi81JyBvciBzbykuCisuVFAKKy5CSSBcLUEgIiBudW1iZXIiCitNYWtlIHRoZSBpbmRpY2F0ZWQgcGFydGl0aW9uKHMpIGFjdGl2ZSwgYW5kIGFsbCBvdGhlcnMgaW5hY3RpdmUuCisuVFAKKy5CSSBcLWMgIlxmUiBvciAiIFwtXC1pZCAiIG51bWJlciBbSWRdIgorSWYgbm8gSWQgYXJndW1lbnQgZ2l2ZW46IHByaW50IHRoZSBwYXJ0aXRpb24gSWQgb2YgdGhlIGluZGljYXRlZAorcGFydGl0aW9uLiBJZiBhbiBJZCBhcmd1bWVudCBpcyBwcmVzZW50OiBjaGFuZ2UgdGhlIHR5cGUgKElkKSBvZgordGhlIGluZGljYXRlZCBwYXJ0aXRpb24gdG8gdGhlIGdpdmVuIHZhbHVlLgorVGhpcyBvcHRpb24gaGFzIHRoZSB0d28gdmVyeSBsb25nIGZvcm1zIFwtXC1wcmludFwtaWQgYW5kIFwtXC1jaGFuZ2VcLWlkLgorRm9yIGV4YW1wbGU6CisuYnIKKy5uZgorLmlmIHQgLmZ0IENXCisgICAgJSBzZmRpc2sgLS1wcmludC1pZCAvZGV2L2hkYiA1CisgICAgNgorICAgICUgc2ZkaXNrIC0tY2hhbmdlLWlkIC9kZXYvaGRiIDUgODMKKyAgICBPSworLmlmIHQgLmZ0IFIKKy5maQorZmlyc3QgcmVwb3J0cyB0aGF0IC9kZXYvaGRiNSBoYXMgSWQgNiwgYW5kIHRoZW4gY2hhbmdlcyB0aGF0IGludG8gODMuCisuVFAKKy5CUiBcLXVTICIgb3IgIiBcLXVCICIgb3IgIiBcLXVDICIgb3IgIiBcLXVNCitBY2NlcHQgb3IgcmVwb3J0IGluIHVuaXRzIG9mIHNlY3RvcnMgKGJsb2NrcywgY3lsaW5kZXJzLCBtZWdhYnl0ZXMsCityZXNwZWN0aXZlbHkpLiBUaGUgZGVmYXVsdCBpcyBjeWxpbmRlcnMsIGF0IGxlYXN0IHdoZW4gdGhlIGdlb21ldHJ5CitpcyBrbm93bi4KKy5UUAorLkJSIFwteCAiIG9yICIgXC1cLXNob3dcLWV4dGVuZGVkCitBbHNvIGxpc3Qgbm9uLXByaW1hcnkgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXQsCithbmQgZXhwZWN0IGRlc2NyaXB0b3JzIGZvciB0aGVtIG9uIGlucHV0LgorLlRQCisuQkkgXC1DICIgY3lsaW5kZXJzIgorU3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVycywgcG9zc2libHkgb3ZlcnJpZGluZyB3aGF0IHRoZSBrZXJuZWwgdGhpbmtzLgorLlRQCisuQkkgXC1IICIgaGVhZHMiCitTcGVjaWZ5IHRoZSBudW1iZXIgb2YgaGVhZHMsIHBvc3NpYmx5IG92ZXJyaWRpbmcgd2hhdCB0aGUga2VybmVsIHRoaW5rcy4KKy5UUAorLkJJIFwtUyAiIHNlY3RvcnMiCitTcGVjaWZ5IHRoZSBudW1iZXIgb2Ygc2VjdG9ycywgcG9zc2libHkgb3ZlcnJpZGluZyB3aGF0IHRoZSBrZXJuZWwgdGhpbmtzLgorLlRQCisuQlIgXC1mICIgb3IgIiBcLVwtZm9yY2UKK0RvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkLgorLlRQCisuQlIgXC1xICIgb3IgIiBcLVwtcXVpZXQKK1N1cHByZXNzIHdhcm5pbmcgbWVzc2FnZXMuCisuVFAKKy5CUiBcLUwgIiBvciAiIFwtXC1MaW51eAorRG8gbm90IGNvbXBsYWluIGFib3V0IHRoaW5ncyBpcnJlbGV2YW50IGZvciBMaW51eC4KKy5UUAorLkJSIFwtRCAiIG9yICIgXC1cLURPUworRm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZS4KKyhNb3JlIHByZWNpc2VseTogaWYgYSBwYXJ0aXRpb24gY2Fubm90IGNvbnRhaW4gc2VjdG9yIDAsCitlLmcuIGJlY2F1c2UgdGhhdCBpcyB0aGUgTUJSIG9mIHRoZSBkZXZpY2UsIG9yIGNvbnRhaW5zCit0aGUgcGFydGl0aW9uIHRhYmxlIG9mIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiwgdGhlbgorLkIgc2ZkaXNrCit3b3VsZCBtYWtlIGl0IHN0YXJ0IHRoZSBuZXh0IHNlY3Rvci4gSG93ZXZlciwgd2hlbiB0aGlzCitvcHRpb24gaXMgZ2l2ZW4gaXQgc2tpcHMgdG8gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IHRyYWNrLAord2FzdGluZyBmb3IgZXhhbXBsZSAzMyBzZWN0b3JzIChpbiBjYXNlIG9mIDM0IHNlY3RvcnMvdHJhY2spLAoranVzdCBsaWtlIGNlcnRhaW4gdmVyc2lvbnMgb2YgRE9TIGRvLikKK0NlcnRhaW4gRGlzayBNYW5hZ2VycyBhbmQgYm9vdCBsb2FkZXJzIChzdWNoIGFzIE9TQlMsIGJ1dCBub3QKK0xJTE8gb3IgdGhlIE9TLzIgQm9vdCBNYW5hZ2VyKSBhbHNvIGxpdmUgaW4gdGhpcyBlbXB0eSBzcGFjZSwKK3NvIG1heWJlIHlvdSB3YW50IHRoaXMgb3B0aW9uIGlmIHlvdSB1c2Ugb25lLgorLlRQCisuQlIgXC1FICIgb3IgIiBcLVwtRE9TXC1leHRlbmRlZAorVGFrZSB0aGUgc3RhcnRpbmcgc2VjdG9yIG51bWJlcnMgb2YgImlubmVyIiBleHRlbmRlZCBwYXJ0aXRpb25zCit0byBiZSByZWxhdGl2ZSB0byB0aGUgc3RhcnRpbmcgY3lsaW5kZXIgYm91bmRhcnkgb2YgdGhlIG91dGVyIG9uZSwKKyhsaWtlIHNvbWUgdmVyc2lvbnMgb2YgRE9TIGRvKSByYXRoZXIgdGhhbiB0byB0aGUgc3RhcnRpbmcgc2VjdG9yCisobGlrZSBMaW51eCBkb2VzKS4KKyhUaGUgZmFjdCB0aGF0IHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBoZXJlIG1lYW5zIHRoYXQgb25lIHNob3VsZAorYWx3YXlzIGxldCBleHRlbmRlZCBwYXJ0aXRpb25zIHN0YXJ0IGF0IGN5bGluZGVyIGJvdW5kYXJpZXMgaWYKK0RPUyBhbmQgTGludXggc2hvdWxkIGludGVycHJldCB0aGUgcGFydGl0aW9uIHRhYmxlIGluIHRoZSBzYW1lIHdheS4KK09mIGNvdXJzZSBvbmUgY2FuIG9ubHkga25vdyB3aGVyZSBjeWxpbmRlciBib3VuZGFyaWVzIGFyZSB3aGVuCitvbmUga25vd3Mgd2hhdCBnZW9tZXRyeSBET1Mgd2lsbCB1c2UgZm9yIHRoaXMgZGlzay4pCisuVFAKKy5CUiBcLVwtSUJNICIgb3IgIiBcLVwtbGVhdmVcLWxhc3QKK0NlcnRhaW4gSUJNIGRpYWdub3N0aWMgcHJvZ3JhbXMgYXNzdW1lIHRoYXQgdGhleSBjYW4gdXNlIHRoZQorbGFzdCBjeWxpbmRlciBvbiBhIGRpc2sgZm9yIGRpc2stdGVzdGluZyBwdXJwb3Nlcy4gSWYgeW91IHRoaW5rCit5b3UgbWlnaHQgZXZlciBydW4gc3VjaCBwcm9ncmFtcywgdXNlIHRoaXMgb3B0aW9uIHRvIHRlbGwKKy5CIHNmZGlzawordGhhdCBpdCBzaG91bGQgbm90IGFsbG9jYXRlIHRoZSBsYXN0IGN5bGluZGVyLgorU29tZXRpbWVzIHRoZSBsYXN0IGN5bGluZGVyIGNvbnRhaW5zIGEgYmFkIHNlY3RvciB0YWJsZS4KKy5UUAorLkIgXC1uCitHbyB0aHJvdWdoIGFsbCB0aGUgbW90aW9ucywgYnV0IGRvIG5vdCBhY3R1YWxseSB3cml0ZSB0byBkaXNrLgorLlRQCisuQiBcLVIKK09ubHkgZXhlY3V0ZSB0aGUgQkxLUlJQQVJUIGlvY3RsICh0byBtYWtlIHRoZSBrZXJuZWwgcmUtcmVhZAordGhlIHBhcnRpdGlvbiB0YWJsZSkuIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgY2hlY2tpbmcgaW4gYWR2YW5jZQordGhhdCB0aGUgZmluYWwgQkxLUlJQQVJUIHdpbGwgYmUgc3VjY2Vzc2Z1bCwgYW5kIGFsc28gd2hlbiB5b3UKK2NoYW5nZWQgdGhlIHBhcnRpdGlvbiB0YWJsZSBgYnkgaGFuZCcgKGUuZy4sIHVzaW5nIGRkIGZyb20gYSBiYWNrdXApLgorSWYgdGhlIGtlcm5lbCBjb21wbGFpbnMgKGBkZXZpY2UgYnVzeSBmb3IgcmV2YWxpZGF0aW9uICh1c2FnZSA9IDIpJykKK3RoZW4gc29tZXRoaW5nIHN0aWxsIHVzZXMgdGhlIGRldmljZSwgYW5kIHlvdSBzdGlsbCBoYXZlIHRvIHVubW91bnQKK3NvbWUgZmlsZSBzeXN0ZW0sIG9yIHNheSBzd2Fwb2ZmIHRvIHNvbWUgc3dhcCBwYXJ0aXRpb24uCisuVFAKKy5CIFwtXC1ub1wtcmVyZWFkCitXaGVuIHN0YXJ0aW5nIGEgcmVwYXJ0aXRpb25pbmcgb2YgYSBkaXNrLCBzZmRpc2sgY2hlY2tzIHRoYXQgdGhpcyBkaXNrCitpcyBub3QgbW91bnRlZCwgb3IgaW4gdXNlIGFzIGEgc3dhcCBkZXZpY2UsIGFuZCByZWZ1c2VzIHRvIGNvbnRpbnVlCitpZiBpdCBpcy4gVGhpcyBvcHRpb24gc3VwcHJlc3NlcyB0aGUgdGVzdC4gKE9uIHRoZSBvdGhlciBoYW5kLCB0aGUgXC1mCitvcHRpb24gd291bGQgZm9yY2Ugc2ZkaXNrIHRvIGNvbnRpbnVlIGV2ZW4gd2hlbiB0aGlzIHRlc3QgZmFpbHMuKQorLlRQCisuQkkgXC1PICIgZmlsZSIKK0p1c3QgYmVmb3JlIHdyaXRpbmcgdGhlIG5ldyBwYXJ0aXRpb24sIG91dHB1dCB0aGUgc2VjdG9ycwordGhhdCBhcmUgZ29pbmcgdG8gYmUgb3ZlcndyaXR0ZW4gdG8KKy5JIGZpbGUKKyh3aGVyZSBob3BlZnVsbHkKKy5JIGZpbGUKK3Jlc2lkZXMgb24gYW5vdGhlciBkaXNrLCBvciBvbiBhIGZsb3BweSkuCisuVFAKKy5CSSBcLUkgIiBmaWxlIgorQWZ0ZXIgZGVzdHJveWluZyB5b3VyIGZpbGVzeXN0ZW1zIHdpdGggYW4gdW5mb3J0dW5hdGUKKy5CIHNmZGlzaworY29tbWFuZCwgeW91IHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIHJlc3RvcmUgdGhlIG9sZCBzaXR1YXRpb24KK2lmIG9ubHkgeW91IGhhZCBwcmVzZXJ2ZWQgaXQgdXNpbmcgdGhlIFwtTyBmbGFnLgorCisuU0ggVEhFT1JZCitCbG9jayAwIG9mIGEgZGlzayAodGhlIE1hc3RlciBCb290IFJlY29yZCkgY29udGFpbnMgYW1vbmcKK290aGVyIHRoaW5ncyBmb3VyIHBhcnRpdGlvbiBkZXNjcmlwdG9ycy4gVGhlIHBhcnRpdGlvbnMKK2Rlc2NyaWJlZCBoZXJlIGFyZSBjYWxsZWQKKy5JIHByaW1hcnkKK3BhcnRpdGlvbnMuCisuTFAKK0EgcGFydGl0aW9uIGRlc2NyaXB0b3IgaGFzIDYgZmllbGRzOgorLmJyCisubmYKKy5SUworc3RydWN0IHBhcnRpdGlvbiB7CisgICAgdW5zaWduZWQgY2hhciBib290YWJsZTsJCS8qIDAgb3IgMHg4MCAqLworICAgIGhzYyBiZWdpbl9oc2M7CisgICAgdW5zaWduZWQgY2hhciBpZDsKKyAgICBoc2MgZW5kX2hzYzsKKyAgICB1bnNpZ25lZCBpbnQgc3RhcnRpbmdfc2VjdG9yOworICAgIHVuc2lnbmVkIGludCBucl9vZl9zZWN0b3JzOworfQorLlJFCisuZmkKKy5MUAorVGhlIHR3byBoc2MgZmllbGRzIGluZGljYXRlIGhlYWQsIHNlY3RvciBhbmQgY3lsaW5kZXIgb2YgdGhlCitiZWdpbiBhbmQgdGhlIGVuZCBvZiB0aGUgcGFydGl0aW9uLiBTaW5jZSBlYWNoIGhzYyBmaWVsZCBvbmx5Cit0YWtlcyAzIGJ5dGVzLCBvbmx5IDI0IGJpdHMgYXJlIGF2YWlsYWJsZSwgd2hpY2ggZG9lcyBub3QKK3N1ZmZpY2UgZm9yIGJpZyBkaXNrcyAoc2F5ID4gOEdCKS4gSW4gZmFjdCwgZHVlIHRvIHRoZSB3YXN0ZWZ1bAorcmVwcmVzZW50YXRpb24gKHRoYXQgdXNlcyBhIGJ5dGUgZm9yIHRoZSBudW1iZXIgb2YgaGVhZHMsIHdoaWNoCitpcyB0eXBpY2FsbHkgMTYpLCBwcm9ibGVtcyBhbHJlYWR5IHN0YXJ0IHdpdGggMC41R0IuCitIb3dldmVyIExpbnV4IGRvZXMgbm90IHVzZSB0aGVzZSBmaWVsZHMsIGFuZCBwcm9ibGVtcyBjYW4gYXJpc2UKK29ubHkgYXQgYm9vdCB0aW1lLCBiZWZvcmUgTGludXggaGFzIGJlZW4gc3RhcnRlZC4gRm9yIG1vcmUKK2RldGFpbHMsIHNlZSB0aGUKKy5CIGxpbG8KK2RvY3VtZW50YXRpb24uCisuTFAKK0VhY2ggcGFydGl0aW9uIGhhcyBhIHR5cGUsIGl0cyBgSWQnLCBhbmQgaWYgdGhpcyB0eXBlIGlzIDUgb3IgZgorLklSICIiICIoYCIgImV4dGVuZGVkIHBhcnRpdGlvbiIgIicpIgordGhlIHN0YXJ0aW5nIHNlY3RvciBvZiB0aGUgcGFydGl0aW9uCithZ2FpbiBjb250YWlucyA0IHBhcnRpdGlvbiBkZXNjcmlwdG9ycy4gTVNET1Mgb25seSB1c2VzIHRoZQorZmlyc3QgdHdvIG9mIHRoZXNlOiB0aGUgZmlyc3Qgb25lIGFuIGFjdHVhbCBkYXRhIHBhcnRpdGlvbiwKK2FuZCB0aGUgc2Vjb25kIG9uZSBhZ2FpbiBhbiBleHRlbmRlZCBwYXJ0aXRpb24gKG9yIGVtcHR5KS4KK0luIHRoaXMgd2F5IG9uZSBnZXRzIGEgY2hhaW4gb2YgZXh0ZW5kZWQgcGFydGl0aW9ucy4KK090aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGhhdmUgc2xpZ2h0bHkgZGlmZmVyZW50IGNvbnZlbnRpb25zLgorTGludXggYWxzbyBhY2NlcHRzIHR5cGUgODUgYXMgZXF1aXZhbGVudCB0byA1IGFuZCBmIC0gdGhpcyBjYW4gYmUKK3VzZWZ1bCBpZiBvbmUgd2FudHMgdG8gaGF2ZSBleHRlbmRlZCBwYXJ0aXRpb25zIHVuZGVyIExpbnV4IHBhc3QKK3RoZSAxMDI0IGN5bGluZGVyIGJvdW5kYXJ5LCB3aXRob3V0IERPUyBGRElTSyBoYW5naW5nLgorKElmIHRoZXJlIGlzIG5vIGdvb2QgcmVhc29uLCB5b3Ugc2hvdWxkIGp1c3QgdXNlIDUsIHdoaWNoIGlzCit1bmRlcnN0b29kIGJ5IG90aGVyIHN5c3RlbXMuKQorLkxQCitQYXJ0aXRpb25zIHRoYXQgYXJlIG5vdCBwcmltYXJ5IG9yIGV4dGVuZGVkIGFyZSBjYWxsZWQKKy5JUiBsb2dpY2FsIC4KK09mdGVuLCBvbmUgY2Fubm90IGJvb3QgZnJvbSBsb2dpY2FsIHBhcnRpdGlvbnMgKGJlY2F1c2UgdGhlCitwcm9jZXNzIG9mIGZpbmRpbmcgdGhlbSBpcyBtb3JlIGludm9sdmVkIHRoYW4ganVzdCBsb29raW5nCithdCB0aGUgTUJSKS4KK05vdGUgdGhhdCBvZiBhbiBleHRlbmRlZCBwYXJ0aXRpb24gb25seSB0aGUgSWQgYW5kIHRoZSBzdGFydAorYXJlIHVzZWQuIFRoZXJlIGFyZSB2YXJpb3VzIGNvbnZlbnRpb25zIGFib3V0IHdoYXQgdG8gd3JpdGUKK2luIHRoZSBvdGhlciBmaWVsZHMuIE9uZSBzaG91bGQgbm90IHRyeSB0byB1c2UgZXh0ZW5kZWQgcGFydGl0aW9ucworZm9yIGRhdGEgc3RvcmFnZSBvciBzd2FwLgorCisuU0ggIklOUFVUIEZPUk1BVCIKKy5CIHNmZGlzaworcmVhZHMgbGluZXMgb2YgdGhlIGZvcm0KKy5icgorLlJTCis8c3RhcnQ+IDxzaXplPiA8aWQ+IDxib290YWJsZT4gPGMsaCxzPiA8YyxoLHM+CisuUkUKK3doZXJlIGVhY2ggbGluZSBmaWxscyBvbmUgcGFydGl0aW9uIGRlc2NyaXB0b3IuCisuTFAKK0ZpZWxkcyBhcmUgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UsIG9yIGNvbW1hIG9yIHNlbWljb2xvbiBwb3NzaWJseQorZm9sbG93ZWQgYnkgd2hpdGVzcGFjZTsgaW5pdGlhbCBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyBpZ25vcmVkLgorTnVtYmVycyBjYW4gYmUgb2N0YWwsIGRlY2ltYWwgb3IgaGV4YWRlY2ltYWwsIGRlY2ltYWwgaXMgZGVmYXVsdC4KK1doZW4gYSBmaWVsZCBpcyBhYnNlbnQgb3IgZW1wdHksIGEgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkLgorLkxQCitUaGUgPGMsaCxzPiBwYXJ0cyBjYW4gKGFuZCBwcm9iYWJseSBzaG91bGQpIGJlIG9taXR0ZWQgLQorLkIgc2ZkaXNrCitjb21wdXRlcyB0aGVtIGZyb20gPHN0YXJ0PiBhbmQgPHNpemU+IGFuZCB0aGUgZGlzayBnZW9tZXRyeQorYXMgZ2l2ZW4gYnkgdGhlIGtlcm5lbCBvciBzcGVjaWZpZWQgdXNpbmcgdGhlIFwtSCwgXC1TLCBcLUMgZmxhZ3MuCisuTFAKK0Jvb3RhYmxlIGlzIHNwZWNpZmllZCBhcyBbKnxcLV0sIHdpdGggYXMgZGVmYXVsdCBub3QtYm9vdGFibGUuCisoVGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgaXMgaXJyZWxldmFudCBmb3IgTGludXggLSB3aGVuIExpbnV4CitydW5zIGl0IGhhcyBiZWVuIGJvb3RlZCBhbHJlYWR5IC0gYnV0IG1pZ2h0IHBsYXkgYSByb2xlIGZvcgorY2VydGFpbiBib290IGxvYWRlcnMgYW5kIGZvciBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcy4KK0ZvciBleGFtcGxlLCB3aGVuIHRoZXJlIGFyZSBzZXZlcmFsIHByaW1hcnkgRE9TIHBhcnRpdGlvbnMsCitET1MgYXNzaWducyBDOiB0byB0aGUgZmlyc3QgYW1vbmcgdGhlc2UgdGhhdCBpcyBib290YWJsZS4pCisuTFAKK0lkIGlzIGdpdmVuIGluIGhleCwgd2l0aG91dCB0aGUgMHggcHJlZml4LCBvciBpcyBbRXxTfEx8WF0sIHdoZXJlCitMIChMSU5VWF9OQVRJVkUgKDgzKSkgaXMgdGhlIGRlZmF1bHQsIFMgaXMgTElOVVhfU1dBUCAoODIpLCBFCitpcyBFWFRFTkRFRF9QQVJUSVRJT04gKDUpLCBhbmQgWCBpcyBMSU5VWF9FWFRFTkRFRCAoODUpLgorLkxQCitUaGUgZGVmYXVsdCB2YWx1ZSBvZiBzdGFydCBpcyB0aGUgZmlyc3Qgbm9uYXNzaWduZWQgc2VjdG9yL2N5bGluZGVyLy4uLgorLkxQCitUaGUgZGVmYXVsdCB2YWx1ZSBvZiBzaXplIGlzIGFzIG11Y2ggYXMgcG9zc2libGUgKHVudGlsIG5leHQKK3BhcnRpdGlvbiBvciBlbmQtb2YtZGlzaykuCisuTFAKK0hvd2V2ZXIsIGZvciB0aGUgZm91ciBwYXJ0aXRpb25zIGluc2lkZSBhbiBleHRlbmRlZCBwYXJ0aXRpb24sCit0aGUgZGVmYXVsdHMgYXJlOiBMaW51eCBwYXJ0aXRpb24sIEV4dGVuZGVkIHBhcnRpdGlvbiwgRW1wdHksIEVtcHR5LgorLkxQCitCdXQgd2hlbiB0aGUgXC1OIG9wdGlvbiAoY2hhbmdlIGEgc2luZ2xlIHBhcnRpdGlvbiBvbmx5KSBpcyBnaXZlbiwKK3RoZSBkZWZhdWx0IGZvciBlYWNoIGZpZWxkIGlzIGl0cyBwcmV2aW91cyB2YWx1ZS4KKworLlNIIEVYQU1QTEUKK1RoZSBjb21tYW5kCisuUlMKKy5uZgorLmlmIHQgLmZ0IENXCitzZmRpc2sgL2Rldi9oZGMgPDwgRU9GCiswLDQwNworLDQwNworOworOworRU9GCisuaWYgdCAuZnQgUgorLmZpCisuUkUKK3dpbGwgcGFydGl0aW9uIC9kZXYvaGRjIGp1c3QgYXMgaW5kaWNhdGVkIGFib3ZlLgorCitUaGUgY29tbWFuZAorLlJTCisubmYKKy5pZiB0IC5mdCBDVworc2ZkaXNrIC9kZXYvaGRiIDw8IEVPRgorLDMsTAorLDYwLEwKKywxOSxTCissLEUKKywxMzAsTAorLDEzMCxMCissMTMwLEwKKywsTAorRU9GCisuaWYgdCAuZnQgUgorLmZpCisuUkUKK3dpbGwgcGFydGl0aW9uIC9kZXYvaGRiIGludG8gdHdvIExpbnV4IHBhcnRpdGlvbnMgb2YgMyBhbmQgNjAKK2N5bGluZGVycywgYSBzd2FwIHNwYWNlIG9mIDE5IGN5bGluZGVycywgYW5kIGFuIGV4dGVuZGVkIHBhcnRpdGlvbgorY292ZXJpbmcgdGhlIHJlc3QuIEluc2lkZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIHRoZXJlIGFyZSBmb3VyCitMaW51eCBsb2dpY2FsIHBhcnRpdGlvbnMsIHRocmVlIG9mIDEzMCBjeWxpbmRlcnMgYW5kIG9uZQorY292ZXJpbmcgdGhlIHJlc3QuCisKK1dpdGggdGhlIFwteCBvcHRpb24sIHRoZSBudW1iZXIgb2YgaW5wdXQgbGluZXMgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQ6Cit5b3UgaGF2ZSB0byBsaXN0IHRoZSB0d28gZW1wdHkgcGFydGl0aW9ucyB0aGF0IHlvdSBuZXZlciB3YW50Cit1c2luZyB0d28gYmxhbmsgbGluZXMuIFdpdGhvdXQgdGhlIFwteCBvcHRpb24sIHlvdSBnaXZlIG9uZSBsaW5lCitmb3IgdGhlIHBhcnRpdGlvbnMgaW5zaWRlIGEgZXh0ZW5kZWQgcGFydGl0aW9uLCBpbnN0ZWFkIG9mIGZvdXIsCithbmQgdGVybWluYXRlIHdpdGggZW5kLW9mLWZpbGUgKF5EKS4KKyhBbmQKKy5CIHNmZGlzaword2lsbCBhc3N1bWUgdGhhdCB5b3VyIGlucHV0IGxpbmUgcmVwcmVzZW50cyB0aGUgZmlyc3Qgb2YgZm91ciwKK3RoYXQgdGhlIHNlY29uZCBvbmUgaXMgZXh0ZW5kZWQsIGFuZCB0aGUgM3JkIGFuZCA0dGggYXJlIGVtcHR5LikKKworLlNIICJET1MgNi54IFdBUk5JTkciCisKK1RoZSBET1MgNi54IEZPUk1BVCBjb21tYW5kIGxvb2tzIGZvciBzb21lIGluZm9ybWF0aW9uIGluIHRoZSBmaXJzdAorc2VjdG9yIG9mIHRoZSBkYXRhIGFyZWEgb2YgdGhlIHBhcnRpdGlvbiwgYW5kIHRyZWF0cyB0aGlzIGluZm9ybWF0aW9uCithcyBtb3JlIHJlbGlhYmxlIHRoYW4gdGhlIGluZm9ybWF0aW9uIGluIHRoZSBwYXJ0aXRpb24gdGFibGUuICBET1MKK0ZPUk1BVCBleHBlY3RzIERPUyBGRElTSyB0byBjbGVhciB0aGUgZmlyc3QgNTEyIGJ5dGVzIG9mIHRoZSBkYXRhIGFyZWEKK29mIGEgcGFydGl0aW9uIHdoZW5ldmVyIGEgc2l6ZSBjaGFuZ2Ugb2NjdXJzLiAgRE9TIEZPUk1BVCB3aWxsIGxvb2sgYXQKK3RoaXMgZXh0cmEgaW5mb3JtYXRpb24gZXZlbiBpZiB0aGUgL1UgZmxhZyBpcyBnaXZlbiAtLSB3ZSBjb25zaWRlcgordGhpcyBhIGJ1ZyBpbiBET1MgRk9STUFUIGFuZCBET1MgRkRJU0suCisuTFAKK1RoZSBib3R0b20gbGluZSBpcyB0aGF0IGlmIHlvdSB1c2Ugc2ZkaXNrIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiBhCitET1MgcGFydGl0aW9uIHRhYmxlIGVudHJ5LCB0aGVuIHlvdSBtdXN0IGFsc28gdXNlCisuQiBkZAordG8gemVybyB0aGUgZmlyc3QgNTEyIGJ5dGVzIG9mIHRoYXQgcGFydGl0aW9uIGJlZm9yZSB1c2luZyBET1MgRk9STUFUIHRvCitmb3JtYXQgdGhlIHBhcnRpdGlvbi4gIEZvciBleGFtcGxlLCBpZiB5b3Ugd2VyZSB1c2luZyBzZmRpc2sgdG8gbWFrZSBhIERPUworcGFydGl0aW9uIHRhYmxlIGVudHJ5IGZvciAvZGV2L2hkYTEsIHRoZW4gKGFmdGVyIGV4aXRpbmcgc2ZkaXNrIGFuZAorcmVib290aW5nIExpbnV4IHNvIHRoYXQgdGhlIHBhcnRpdGlvbiB0YWJsZSBpbmZvcm1hdGlvbiBpcyB2YWxpZCkgeW91Cit3b3VsZCB1c2UgdGhlIGNvbW1hbmQgImRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2hkYTEgYnM9NTEyIGNvdW50PTEiIHRvIHplcm8KK3RoZSBmaXJzdCA1MTIgYnl0ZXMgb2YgdGhlIHBhcnRpdGlvbi4KKy5CIEJFIEVYVFJFTUVMWSBDQVJFRlVMCitpZiB5b3UgdXNlIHRoZQorLkIgZGQKK2NvbW1hbmQsIHNpbmNlIGEgc21hbGwgdHlwbyBjYW4gbWFrZSBhbGwgb2YgdGhlIGRhdGEgb24geW91ciBkaXNrIHVzZWxlc3MuCisKK0ZvciBiZXN0IHJlc3VsdHMsIHlvdSBzaG91bGQgYWx3YXlzIHVzZSBhbiBPUy1zcGVjaWZpYyBwYXJ0aXRpb24gdGFibGUKK3Byb2dyYW0uICBGb3IgZXhhbXBsZSwgeW91IHNob3VsZCBtYWtlIERPUyBwYXJ0aXRpb25zIHdpdGggdGhlIERPUyBGRElTSworcHJvZ3JhbSBhbmQgTGludXggcGFydGl0aW9ucyB3aXRoIHRoZSBMaW51eCBzZmRpc2sgcHJvZ3JhbS4KKworLlNIICJEUkRPUyBXQVJOSU5HUyIKKworU3RlcGhlbiBUd2VlZGllIHJlcG9ydGVkICg5MzA1MTUpOiBgTW9zdCByZXBvcnRzIG9mIHN1cGVyYmxvY2sKK2NvcnJ1cHRpb24gdHVybiBvdXQgdG8gYmUgZHVlIHRvIGJhZCBwYXJ0aXRpb25pbmcsIHdpdGggb25lIGZpbGVzeXN0ZW0KK292ZXJydW5uaW5nIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBhbmQgY29ycnVwdGluZyBpdHMgc3VwZXJibG9jay4KK0kgaGF2ZSBldmVuIGhhZCB0aGlzIHByb2JsZW0gd2l0aCB0aGUgc3VwcG9zZWRseS1yZWxpYWJsZSBEUkRPUy4gIFRoaXMKK3dhcyBxdWl0ZSBwb3NzaWJseSBkdWUgdG8gRFJET1MtNi4wJ3MgRkRJU0sgY29tbWFuZC4gIFVubGVzcyBJIGNyZWF0ZWQKK2EgYmxhbmsgdHJhY2sgb3IgY3lsaW5kZXIgYmV0d2VlbiB0aGUgRFJET1MgcGFydGl0aW9uIGFuZCB0aGUKK2ltbWVkaWF0ZWx5IGZvbGxvd2luZyBvbmUsIERSRE9TIHdvdWxkIGhhcHBpbHkgc3RhbXAgYWxsIG92ZXIgdGhlCitzdGFydCBvZiB0aGUgbmV4dCBwYXJ0aXRpb24uICBNaW5kIHlvdSwgYXMgbG9uZyBhcyBJIGtlZXAgYSBsaXR0bGUKK2ZyZWUgZGlzayBzcGFjZSBhZnRlciBhbnkgRFJET1MgcGFydGl0aW9uLCBJIGRvbid0IGhhdmUgYW55IG90aGVyCitwcm9ibGVtcyB3aXRoIHRoZSB0d28gY29leGlzdGluZyBvbiB0aGUgb25lIGRyaXZlLicKKworQS4gVi4gTGUgQmxhbmMgd3JpdGVzIGluIFJFQURNRS5lZmRpc2s6IGBEci4gRE9TIDUuMCBhbmQgNi4wIGhhcyBiZWVuCityZXBvcnRlZCB0byBoYXZlIHByb2JsZW1zIGNvb3BlcmF0aW5nIHdpdGggTGludXgsIGFuZCB3aXRoIHRoaXMgdmVyc2lvbgorb2YgZWZkaXNrIGluIHBhcnRpY3VsYXIuICBUaGlzIGVmZGlzayBzZXRzIHRoZSBzeXN0ZW0gdHlwZQordG8gaGV4YWRlY2ltYWwgODEuICBEci4gRE9TIHNlZW1zIHRvIGNvbmZ1c2UKK3RoaXMgd2l0aCBoZXhhZGVjaW1hbCAxLCBhIERPUyBjb2RlLiAgSWYgeW91IHVzZSBEci4gRE9TLCB1c2UgdGhlCitlZmRpc2sgY29tbWFuZCAndCcgdG8gY2hhbmdlIHRoZSBzeXN0ZW0gY29kZSBvZiBhbnkgTGludXggcGFydGl0aW9ucwordG8gc29tZSBudW1iZXIgbGVzcyB0aGFuIGhleGFkZWNpbWFsIDgwOyBJIHN1Z2dlc3QgNDEgYW5kIDQyIGZvcgordGhlIG1vbWVudC4nCisKK0EuIFYuIExlIEJsYW5jIHdyaXRlcyBpbiBoaXMgUkVBRE1FLmZkaXNrOiBgRFItRE9TIDUuMCBhbmQgNi4wCithcmUgcmVwb3J0ZWQgdG8gaGF2ZSBkaWZmaWN1bHRpZXMgd2l0aCBwYXJ0aXRpb24gSUQgY29kZXMgb2YgODAgb3IgbW9yZS4KK1RoZSBMaW51eCBgZmRpc2snIHVzZWQgdG8gc2V0IHRoZSBzeXN0ZW0gdHlwZQorb2YgbmV3IHBhcnRpdGlvbnMgdG8gaGV4YWRlY2ltYWwgODEuICBEUi1ET1Mgc2VlbXMgdG8gY29uZnVzZSB0aGlzIHdpdGgKK2hleGFkZWNpbWFsIDEsIGEgRE9TIGNvZGUuICBUaGUgdmFsdWVzIDgyIGZvciBzd2FwIGFuZCA4MyBmb3IgZmlsZQorc3lzdGVtcyBzaG91bGQgbm90IGNhdXNlIHByb2JsZW1zIHdpdGggRFItRE9TLiAgSWYgdGhleSBkbywgeW91IG1heSB1c2UKK3RoZSBgZmRpc2snIGNvbW1hbmQgYHQnIHRvIGNoYW5nZSB0aGUgc3lzdGVtIGNvZGUgb2YgYW55IExpbnV4CitwYXJ0aXRpb25zIHRvIHNvbWUgbnVtYmVyIGxlc3MgdGhhbiBoZXhhZGVjaW1hbCA4MDsgSSBzdWdnZXN0IDQyIGFuZCA0MworZm9yIHRoZSBtb21lbnQuJworCitJbiBmYWN0LCBpdCBzZWVtcyB0aGF0IG9ubHkgNCBiaXRzIGFyZSBzaWduaWZpY2FudCBmb3IgdGhlIERSRE9TIEZESVNLLAorc28gdGhhdCBmb3IgZXhhbXBsZSAxMSBhbmQgMjEgYXJlIGxpc3RlZCBhcyBET1MgMi4wLiBIb3dldmVyLCBEUkRPUworaXRzZWxmIHNlZW1zIHRvIHVzZSB0aGUgZnVsbCBieXRlLiBJIGhhdmUgbm90IGJlZW4gYWJsZSB0byByZXByb2R1Y2UKK2FueSBjb3JydXB0aW9uIHdpdGggRFJET1Mgb3IgaXRzIGZkaXNrLgorCisuU0ggQlVHUworVGhlcmUgYXJlIHRvbyBtYW55IG9wdGlvbnMuCisuTFAKK1RoZXJlIGlzIG5vIHN1cHBvcnQgZm9yIG5vbi1ET1MgcGFydGl0aW9uIHR5cGVzLgorCisuXCIgLlNIIEFVVEhPUgorLlwiIEEuIEUuIEJyb3V3ZXIgKGFlYkBjd2kubmwpCisuXCIKKy5TSCAiU0VFIEFMU08iCisuQlIgY2ZkaXNrICg4KSwKKy5CUiBmZGlzayAoOCksCisuQlIgbWtmcyAoOCksCisuQlIgcGFydGVkICg4KSwKKy5CUiBwYXJ0cHJvYmUgKDgpLAorLkJSIGtwYXJ0eCAoOCkKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBzZmRpc2sgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9zZmRpc2suYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZkaXNrL3NmZGlzay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0MzJiMjUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9zZmRpc2suYwpAQCAtMCwwICsxLDMxMTEgQEAKKy8qCisgKiBzZmRpc2sgdmVyc2lvbiAzLjAgLSBhZWIgLSA5NTA4MTMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTUgIEFuZHJpZXMgRS4gQnJvdXdlciAoYWViQGN3aS5ubCkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZS4gWW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb246IGVpdGhlciBWZXJzaW9uIDEKKyAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogQS5WLiBMZSBCbGFuYyAoTGVCbGFuY0BtY2MuYWMudWspIHdyb3RlIExpbnV4IGZkaXNrIDE5OTItMTk5NCwKKyAqIHBhdGNoZWQgYnkgdmFyaW91cyBwZW9wbGUgKGZhaXRoQGNzLnVuYy5lZHUsIG1hcnRpbkBjcy51bmMuZWR1LAorICogbGVpc25lckBzZHNwLm1jLnhlcm94LmNvbSwgZXNyQHNuYXJrLnRoeXJzdXMuY29tLCBhZWJAY3dpLm5sKQorICogMTk5My0xOTk1LCB3aXRoIHZlcnNpb24gbnVtYmVycyAoYXMgZmFyIGFzIEkgaGF2ZSBzZWVuKSAwLjkzIC0gMi4wZS4KKyAqIFRoaXMgcHJvZ3JhbSBoYWQgKGhlYWQsc2VjdG9yLGN5bGluZGVyKSBhcyBiYXNpYyB1bml0LCBhbmQgd2FzCisgKiAodGhlcmVmb3JlKSBicm9rZW4gaW4gc2V2ZXJhbCB3YXlzIGZvciB0aGUgdXNlIG9uIGxhcmdlciBkaXNrcyAtCisgKiBmb3IgZXhhbXBsZSwgbXkgbGFzdCBwYXRjaCAoZnJvbSAyLjBkIHRvIDIuMGUpIHdhcyByZXF1aXJlZAorICogdG8gYWxsb3cgYSBwYXJ0aXRpb24gdG8gY3Jvc3MgY3lsaW5kZXIgODA2NCwgYW5kIHRvIHdyaXRlIGFuCisgKiBleHRlbmRlZCBwYXJ0aXRpb24gcGFzdCB0aGUgNEdCIG1hcmsuCisgKgorICogVGhlIGN1cnJlbnQgcHJvZ3JhbSBpcyBhIHJld3JpdGUgZnJvbSBzY3JhdGNoLCBhbmQgSSBzdGFydGVkIGEKKyAqIHZlcnNpb24gbnVtYmVyaW5nIGF0IDMuMC4KKyAqIAlBbmRyaWVzIEJyb3V3ZXIsIGFlYkBjd2kubmwsIDk1MDgxMworICoKKyAqIFdlbGwsIGEgZ29vZCB1c2VyIGludGVyZmFjZSBpcyBzdGlsbCBsYWNraW5nLiBPbiB0aGUgb3RoZXIgaGFuZCwKKyAqIG1hbnkgY29uZmlndXJhdGlvbnMgY2Fubm90IGJlIGhhbmRsZWQgYnkgYW55IG90aGVyIGZkaXNrLgorICogSSBjaGFuZ2VkIHRoZSBuYW1lIHRvIHNmZGlzayB0byBwcmV2ZW50IGNvbmZ1c2lvbi4gLSBhZWIsIDk3MDUwMQorICoKKyAqIENoYW5nZXM6CisgKiAxOTk5MDMxOSAtIEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUBjb25lY3RpdmEuY29tLmJyPiAtIGkxOG4KKyAqIDIwMDQwNDI4IC0gSmVyb2VuIERvYmJlbGFlcmUgPGplcm9lbi5kb2JiZWxhZXJlQGFjdW5pYS5jb20+IC0gYWRkZWQgUEFDS0VECisgKiAyMDA0MDgyNCAtIERhdmlkIEEuIFdoZWVsZXIgPGR3aGVlbGVyQGR3aGVlbGVyLmNvbT4gLSB3YXJuaW5ncyB0byBzdGRlcnIKKyAqLworCisjZGVmaW5lIFBST0dOQU1FICJzZmRpc2siCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgkJLyogYXRvaSwgZnJlZSAqLworI2luY2x1ZGUgPHN0ZGFyZy5oPgkJLyogdmFyYXJncyAqLworI2luY2x1ZGUgPHVuaXN0ZC5oPgkJLyogcmVhZCwgd3JpdGUgKi8KKyNpbmNsdWRlIDxmY250bC5oPgkJLyogT19SRFdSICovCisjaW5jbHVkZSA8ZXJybm8uaD4JCS8qIEVSQU5HRSAqLworI2luY2x1ZGUgPHN0cmluZy5oPgkJLyogc3RyY2hyKCksIHN0cnJjaHIoKSAqLworI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorCisjaW5jbHVkZSAiYy5oIgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgImJsa2Rldi5oIgorI2luY2x1ZGUgImxpbnV4X3ZlcnNpb24uaCIKKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJ3aG9sZWRpc2suaCIKKyNpbmNsdWRlICJncHQuaCIKKworLyoKKyAqIFRhYmxlIG9mIGNvbnRlbnRzOgorICogIEEuIEFib3V0IHNlZWtpbmcKKyAqICBCLiBBYm91dCBzZWN0b3JzCisgKiAgQy4gQWJvdXQgaGVhZHMsIHNlY3RvcnMgYW5kIGN5bGluZGVycworICogIEQuIEFib3V0IHN5c3RlbSBJZHMKKyAqICBFLiBBYm91dCBwYXJ0aXRpb25zCisgKiAgRi4gVGhlIHN0YW5kYXJkIGlucHV0CisgKiAgRy4gVGhlIGNvbW1hbmQgbGluZQorICogIEguIExpc3RpbmcgdGhlIGN1cnJlbnQgc2l0dWF0aW9uCisgKiAgSS4gV3JpdGluZyB0aGUgbmV3IHNpdHVhdGlvbgorICovCitpbnQgZXhpdF9zdGF0dXMgPSAwOworCitpbnQgZm9yY2UgPSAwOwkJLyogMTogZG8gd2hhdCBJIHNheSwgZXZlbiBpZiBpdCBpcyBzdHVwaWQgLi4uICovCitpbnQgcXVpZXQgPSAwOwkJLyogMTogc3VwcHJlc3MgYWxsIHdhcm5pbmdzICovCisvKiBJQS02NCBnY2Mgc3BlYyBmaWxlIGN1cnJlbnRseSBkb2VzIC1ETGludXguLi4gKi8KKyN1bmRlZiBMaW51eAoraW50IExpbnV4ID0gMDsJCS8qIDE6IHN1cHByZXNzIHdhcm5pbmdzIGlycmVsZXZhbnQgZm9yIExpbnV4ICovCitpbnQgRE9TID0gMDsJCS8qIDE6IHNoaWZ0IGV4dGVuZGVkIHBhcnRpdGlvbnMgYnkgI3NlY3RvcnMsIG5vdCAxICovCitpbnQgRE9TX2V4dGVuZGVkID0gMDsJLyogMTogdXNlIHN0YXJ0aW5nIGN5bGluZGVyIGJvdW5kYXJ5IG9mIGV4dGQgcGFydG4gKi8KK2ludCBkdW1wID0gMDsgICAgICAgICAgIC8qIDE6IGxpc3QgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGxhdGVyIGlucHV0ICovCitpbnQgdmVyaWZ5ID0gMDsgICAgICAgICAvKiAxOiBjaGVjayB0aGF0IGxpc3RlZCBwYXJ0aXRpb24gaXMgcmVhc29uYWJsZSAqLworaW50IG5vX3dyaXRlID0gMDsJLyogMTogZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2sgKi8KK2ludCBub19yZXJlYWQgPSAwOwkvKiAxOiBza2lwIHRoZSBCTEtSUlBBUlQgaW9jdGwgdGVzdCBhdCBzdGFydHVwICovCitpbnQgbGVhdmVfbGFzdCA9IDA7CS8qIDE6IGRvbid0IGFsbG9jYXRlIHRoZSBsYXN0IGN5bGluZGVyICovCitpbnQgb3B0X2xpc3QgPSAwOworY2hhciAqc2F2ZV9zZWN0b3JfZmlsZSA9IE5VTEw7CitjaGFyICpyZXN0b3JlX3NlY3Rvcl9maWxlID0gTlVMTDsKKworc3RhdGljIHZvaWQKK2RvX3dhcm4oY2hhciAqcywgLi4uKSB7CisgICAgdmFfbGlzdCBwOworCisgICAgdmFfc3RhcnQocCwgcyk7CisgICAgZmZsdXNoKHN0ZG91dCk7CisgICAgdmZwcmludGYoc3RkZXJyLCBzLCBwKTsKKyAgICBmZmx1c2goc3RkZXJyKTsKKyAgICB2YV9lbmQocCk7Cit9CisKK3N0YXRpYyB2b2lkCit3YXJuKGNoYXIgKnMsIC4uLikgeworICAgIHZhX2xpc3QgcDsKKworICAgIHZhX3N0YXJ0KHAsIHMpOworICAgIGlmICghcXVpZXQpIHsKKwlmZmx1c2goc3Rkb3V0KTsKKwl2ZnByaW50ZihzdGRlcnIsIHMsIHApOworCWZmbHVzaChzdGRlcnIpOworICAgIH0KKyAgICB2YV9lbmQocCk7Cit9CisKK3N0YXRpYyB2b2lkCitlcnJvcihjaGFyICpzLCAuLi4pIHsKKyAgICB2YV9saXN0IHA7CisKKyAgICB2YV9zdGFydChwLCBzKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIiBQUk9HTkFNRSAiOiAiKTsKKyAgICB2ZnByaW50ZihzdGRlcnIsIHMsIHApOworICAgIGZmbHVzaChzdGRlcnIpOworICAgIHZhX2VuZChwKTsKK30KKworc3RhdGljIHZvaWQKK2ZhdGFsKGNoYXIgKnMsIC4uLikgeworICAgIHZhX2xpc3QgcDsKKworICAgIHZhX3N0YXJ0KHAsIHMpOworICAgIGZmbHVzaChzdGRvdXQpOworICAgIGZwcmludGYoc3RkZXJyLCAiXG4iIFBST0dOQU1FICI6ICIpOworICAgIHZmcHJpbnRmKHN0ZGVyciwgcywgcCk7CisgICAgZmZsdXNoKHN0ZGVycik7CisgICAgdmFfZW5kKHApOworICAgIGV4aXQoMSk7Cit9CisKKy8qCisgKiBhcm0gbmVlZHMgUEFDS0VEIC0gdXNlIGl0IGV2ZXJ5d2hlcmU/CisgKi8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWxwaGFfXykpCisjIGRlZmluZSBQQUNLRUQgX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpCisjZWxzZQorIyBkZWZpbmUgUEFDS0VECisjZW5kaWYKKworLyoKKyAqICBBLiBBYm91dCBzZWVraW5nCisgKi8KKworLyoKKyAqIHNzZWVrOiBzZWVrIHRvIHNwZWNpZmllZCBzZWN0b3IgLSByZXR1cm4gMCBvbiBmYWlsdXJlCisgKgorICogTm90ZTogd2UgdXNlIDUxMi1ieXRlIHNlY3RvcnMgaGVyZSwgaXJyZXNwZWN0aXZlIG9mIHRoZSBoYXJkd2FyZSBzcy4KKyAqLworCitzdGF0aWMgaW50Citzc2VlayhjaGFyICpkZXYsIHVuc2lnbmVkIGludCBmZCwgdW5zaWduZWQgbG9uZyBzKSB7CisgICAgb2ZmX3QgaW4sIG91dDsKKyAgICBpbiA9ICgob2ZmX3QpIHMgPDwgOSk7CisgICAgb3V0ID0gMTsKKworICAgIGlmICgob3V0ID0gbHNlZWsoZmQsIGluLCBTRUVLX1NFVCkpICE9IGluKSB7CisJcGVycm9yKCJsc2VlayIpOworCWVycm9yKF8oInNlZWsgZXJyb3Igb24gJXMgLSBjYW5ub3Qgc2VlayB0byAlbHVcbiIpLCBkZXYsIHMpOworCXJldHVybiAwOworICAgIH0KKworICAgIGlmIChpbiAhPSBvdXQpIHsKKwllcnJvcihfKCJzZWVrIGVycm9yOiB3YW50ZWQgMHglMDh4JTA4eCwgZ290IDB4JTA4eCUwOHhcbiIpLAorCSAgICAgICAodW5zaWduZWQgaW50KShpbj4+MzIpLCAodW5zaWduZWQgaW50KShpbiAmIDB4ZmZmZmZmZmYpLAorCSAgICAgICAodW5zaWduZWQgaW50KShvdXQ+PjMyKSwgKHVuc2lnbmVkIGludCkob3V0ICYgMHhmZmZmZmZmZikpOworCXJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gMTsKK30KKworLyoKKyAqICBCLiBBYm91dCBzZWN0b3JzCisgKi8KKworLyoKKyAqIFdlIHByZXNlcnZlIGFsbCBzZWN0b3JzIHJlYWQgaW4gYSBjaGFpbiAtIHNvbWUgb2YgdGhlc2Ugd2lsbAorICogaGF2ZSB0byBiZSBtb2RpZmllZCBhbmQgd3JpdHRlbiBiYWNrLgorICovCitzdHJ1Y3Qgc2VjdG9yIHsKKyAgICBzdHJ1Y3Qgc2VjdG9yICpuZXh0OworICAgIHVuc2lnbmVkIGxvbmcgc2VjdG9ybnVtYmVyOworICAgIGludCB0b19iZV93cml0dGVuOworICAgIGNoYXIgZGF0YVs1MTJdOworfSAqc2VjdG9yaGVhZDsKKworc3RhdGljIHZvaWQKK2ZyZWVfc2VjdG9ycyh2b2lkKSB7CisgICAgc3RydWN0IHNlY3RvciAqczsKKworICAgIHdoaWxlIChzZWN0b3JoZWFkKSB7CisJcyA9IHNlY3RvcmhlYWQ7CisJc2VjdG9yaGVhZCA9IHMtPm5leHQ7CisJZnJlZShzKTsKKyAgICB9Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2VjdG9yICoKK2dldF9zZWN0b3IoY2hhciAqZGV2LCBpbnQgZmQsIHVuc2lnbmVkIGxvbmcgc25vKSB7CisgICAgc3RydWN0IHNlY3RvciAqczsKKworICAgIGZvcihzID0gc2VjdG9yaGVhZDsgczsgcyA9IHMtPm5leHQpCisJaWYgKHMtPnNlY3Rvcm51bWJlciA9PSBzbm8pCisJICAgIHJldHVybiBzOworCisgICAgaWYgKCFzc2VlayhkZXYsIGZkLCBzbm8pKQorCXJldHVybiAwOworCisgICAgaWYgKCEocyA9IChzdHJ1Y3Qgc2VjdG9yICopIG1hbGxvYyhzaXplb2Yoc3RydWN0IHNlY3RvcikpKSkKKwlmYXRhbChfKCJvdXQgb2YgbWVtb3J5IC0gZ2l2aW5nIHVwXG4iKSk7CisKKyAgICBpZiAocmVhZChmZCwgcy0+ZGF0YSwgc2l6ZW9mKHMtPmRhdGEpKSAhPSBzaXplb2Yocy0+ZGF0YSkpIHsKKwlpZiAoZXJybm8pCQkvKiAwIGluIGNhc2Ugd2UgcmVhZCBwYXN0IGVuZC1vZi1kaXNrICovCisJICAgIHBlcnJvcigicmVhZCIpOworCWVycm9yKF8oInJlYWQgZXJyb3Igb24gJXMgLSBjYW5ub3QgcmVhZCBzZWN0b3IgJWx1XG4iKSwgZGV2LCBzbm8pOworCWZyZWUocyk7CisJcmV0dXJuIDA7CisgICAgfQorCisgICAgcy0+bmV4dCA9IHNlY3RvcmhlYWQ7CisgICAgc2VjdG9yaGVhZCA9IHM7CisgICAgcy0+c2VjdG9ybnVtYmVyID0gc25vOworICAgIHMtPnRvX2JlX3dyaXR0ZW4gPSAwOworCisgICAgcmV0dXJuIHM7Cit9CisKK3N0YXRpYyBpbnQKK21zZG9zX3NpZ25hdHVyZSAoc3RydWN0IHNlY3RvciAqcykgeworICAgIHVuc2lnbmVkIGNoYXIgKmRhdGEgPSAodW5zaWduZWQgY2hhciAqKXMtPmRhdGE7CisgICAgaWYgKGRhdGFbNTEwXSA9PSAweDU1ICYmIGRhdGFbNTExXSA9PSAweGFhKQorCSAgICByZXR1cm4gMTsKKyAgICBlcnJvcihfKCJFUlJPUjogc2VjdG9yICVsdSBkb2VzIG5vdCBoYXZlIGFuIG1zZG9zIHNpZ25hdHVyZVxuIiksCisJICBzLT5zZWN0b3JudW1iZXIpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit3cml0ZV9zZWN0b3JzKGNoYXIgKmRldiwgaW50IGZkKSB7CisgICAgc3RydWN0IHNlY3RvciAqczsKKworICAgIGZvciAocyA9IHNlY3RvcmhlYWQ7IHM7IHMgPSBzLT5uZXh0KQorCWlmIChzLT50b19iZV93cml0dGVuKSB7CisJICAgIGlmICghc3NlZWsoZGV2LCBmZCwgcy0+c2VjdG9ybnVtYmVyKSkKKwkJcmV0dXJuIDA7CisJICAgIGlmICh3cml0ZShmZCwgcy0+ZGF0YSwgc2l6ZW9mKHMtPmRhdGEpKSAhPSBzaXplb2Yocy0+ZGF0YSkpIHsKKwkJcGVycm9yKCJ3cml0ZSIpOworCQllcnJvcihfKCJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iKSwKKwkJICAgICAgIGRldiwgcy0+c2VjdG9ybnVtYmVyKTsKKwkJcmV0dXJuIDA7CisJICAgIH0KKwkgICAgcy0+dG9fYmVfd3JpdHRlbiA9IDA7CisJfQorICAgIHJldHVybiAxOworfQorCitzdGF0aWMgdm9pZAordWxvbmdfdG9fY2hhcnModW5zaWduZWQgbG9uZyB1LCBjaGFyICp1dSkgeworICAgIGludCBpOworCisgICAgZm9yKGk9MDsgaTw0OyBpKyspIHsKKwl1dVtpXSA9ICh1ICYgMHhmZik7CisJdSA+Pj0gODsKKyAgICB9Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nCitjaGFyc190b191bG9uZyh1bnNpZ25lZCBjaGFyICp1dSkgeworICAgIGludCBpOworICAgIHVuc2lnbmVkIGxvbmcgdSA9IDA7CisKKyAgICBmb3IoaT0zOyBpPj0wOyBpLS0pCisJdSA9ICh1IDw8IDgpIHwgdXVbaV07CisgICAgcmV0dXJuIHU7Cit9CisKK3N0YXRpYyBpbnQKK3NhdmVfc2VjdG9ycyhjaGFyICpkZXYsIGludCBmZGluKSB7CisgICAgc3RydWN0IHNlY3RvciAqczsKKyAgICBjaGFyIHNzWzUxNl07CisgICAgaW50IGZkb3V0ID0gLTE7CisKKyAgICBmZG91dCA9IG9wZW4oc2F2ZV9zZWN0b3JfZmlsZSwgT19XUk9OTFkgfCBPX0NSRUFULCAwNDQ0KTsKKyAgICBpZiAoZmRvdXQgPCAwKSB7CisJcGVycm9yKHNhdmVfc2VjdG9yX2ZpbGUpOworCWVycm9yKF8oImNhbm5vdCBvcGVuIHBhcnRpdGlvbiBzZWN0b3Igc2F2ZSBmaWxlICglcylcbiIpLAorCSAgICAgICBzYXZlX3NlY3Rvcl9maWxlKTsKKwlnb3RvIGVycjsKKyAgICB9CisKKyAgICBmb3IgKHMgPSBzZWN0b3JoZWFkOyBzOyBzID0gcy0+bmV4dCkKKwlpZiAocy0+dG9fYmVfd3JpdHRlbikgeworCSAgICB1bG9uZ190b19jaGFycyhzLT5zZWN0b3JudW1iZXIsIHNzKTsKKwkgICAgaWYgKCFzc2VlayhkZXYsIGZkaW4sIHMtPnNlY3Rvcm51bWJlcikpCisJCWdvdG8gZXJyOworCSAgICBpZiAocmVhZChmZGluLCBzcys0LCA1MTIpICE9IDUxMikgeworCQlwZXJyb3IoInJlYWQiKTsKKwkJZXJyb3IoXygicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIpLAorCQkgICAgICAgZGV2LCBzLT5zZWN0b3JudW1iZXIpOworCQlnb3RvIGVycjsKKwkgICAgfQorCSAgICBpZiAod3JpdGUoZmRvdXQsIHNzLCBzaXplb2Yoc3MpKSAhPSBzaXplb2Yoc3MpKSB7CisJCXBlcnJvcigid3JpdGUiKTsKKwkJZXJyb3IoXygid3JpdGUgZXJyb3Igb24gJXNcbiIpLCBzYXZlX3NlY3Rvcl9maWxlKTsKKwkJZ290byBlcnI7CisJICAgIH0KKwl9CisKKyAgICBjbG9zZShmZG91dCk7CisgICAgcmV0dXJuIDE7CisKK2VycjoKKyAgICBpZiAoZmRvdXQgPj0gMCkKKwljbG9zZShmZG91dCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHJlcmVhZF9kaXNrX3BhcnRpdGlvbihjaGFyICpkZXYsIGludCBmZCk7CisKK3N0YXRpYyBpbnQKK3Jlc3RvcmVfc2VjdG9ycyhjaGFyICpkZXYpIHsKKyAgICBpbnQgZmRpbiA9IC0xLCBmZG91dCA9IC0xOworICAgIGludCBjdDsKKyAgICBzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworICAgIGNoYXIgKnNzMCwgKnNzOworICAgIHVuc2lnbmVkIGxvbmcgc25vOworCisgICAgaWYgKHN0YXQocmVzdG9yZV9zZWN0b3JfZmlsZSwgJnN0YXRidWYpIDwgMCkgeworCXBlcnJvcihyZXN0b3JlX3NlY3Rvcl9maWxlKTsKKwllcnJvcihfKCJjYW5ub3Qgc3RhdCBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIpLAorCSAgICAgICByZXN0b3JlX3NlY3Rvcl9maWxlKTsKKwlnb3RvIGVycjsKKyAgICB9CisgICAgaWYgKHN0YXRidWYuc3Rfc2l6ZSAlIDUxNikgeworCWVycm9yKF8oInBhcnRpdGlvbiByZXN0b3JlIGZpbGUgaGFzIHdyb25nIHNpemUgLSBub3QgcmVzdG9yaW5nXG4iKSk7CisJZ290byBlcnI7CisgICAgfQorICAgIGlmICghKHNzID0gKGNoYXIgKikgbWFsbG9jKHN0YXRidWYuc3Rfc2l6ZSkpKSB7CisJZXJyb3IoXygib3V0IG9mIG1lbW9yeT9cbiIpKTsKKwlnb3RvIGVycjsKKyAgICB9CisgICAgZmRpbiA9IG9wZW4ocmVzdG9yZV9zZWN0b3JfZmlsZSwgT19SRE9OTFkpOworICAgIGlmIChmZGluIDwgMCkgeworCXBlcnJvcihyZXN0b3JlX3NlY3Rvcl9maWxlKTsKKwllcnJvcihfKCJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIpLAorCSAgICAgICByZXN0b3JlX3NlY3Rvcl9maWxlKTsKKwlnb3RvIGVycjsKKyAgICB9CisgICAgaWYgKHJlYWQoZmRpbiwgc3MsIHN0YXRidWYuc3Rfc2l6ZSkgIT0gc3RhdGJ1Zi5zdF9zaXplKSB7CisJcGVycm9yKCJyZWFkIik7CisJZXJyb3IoXygiZXJyb3IgcmVhZGluZyAlc1xuIiksIHJlc3RvcmVfc2VjdG9yX2ZpbGUpOworCWdvdG8gZXJyOworICAgIH0KKworICAgIGZkb3V0ID0gb3BlbihkZXYsIE9fV1JPTkxZKTsKKyAgICBpZiAoZmRvdXQgPCAwKSB7CisJcGVycm9yKGRldik7CisJZXJyb3IoXygiY2Fubm90IG9wZW4gZGV2aWNlICVzIGZvciB3cml0aW5nXG4iKSwgZGV2KTsKKwlnb3RvIGVycjsKKyAgICB9CisKKyAgICBzczAgPSBzczsKKyAgICBjdCA9IHN0YXRidWYuc3Rfc2l6ZS81MTY7CisgICAgd2hpbGUoY3QtLSkgeworCXNubyA9IGNoYXJzX3RvX3Vsb25nKCh1bnNpZ25lZCBjaGFyICopIHNzKTsKKwlpZiAoIXNzZWVrKGRldiwgZmRvdXQsIHNubykpCisJICBnb3RvIGVycjsKKwlpZiAod3JpdGUoZmRvdXQsIHNzKzQsIDUxMikgIT0gNTEyKSB7CisJICAgIHBlcnJvcihkZXYpOworCSAgICBlcnJvcihfKCJlcnJvciB3cml0aW5nIHNlY3RvciAlbHUgb24gJXNcbiIpLCBzbm8sIGRldik7CisJICAgIGdvdG8gZXJyOworCX0KKwlzcyArPSA1MTY7CisgICAgfQorICAgIGZyZWUoc3MwKTsKKworICAgIHJlcmVhZF9kaXNrX3BhcnRpdGlvbihkZXYsIGZkb3V0KTsKKyAgICBjbG9zZShmZGluKTsKKworICAgIHJldHVybiAxOworCitlcnI6CisgICAgaWYgKGZkaW4gPj0gMCkKKwljbG9zZShmZGluKTsKKyAgICBpZiAoZmRvdXQgPj0gMCkKKwljbG9zZShmZG91dCk7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqICBDLiBBYm91dCBoZWFkcywgc2VjdG9ycyBhbmQgY3lsaW5kZXJzCisgKi8KKworLyoKKyAqIDxsaW51eC9oZHJlZy5oPiBkZWZpbmVzIEhESU9fR0VUR0VPIGFuZAorICogc3RydWN0IGhkX2dlb21ldHJ5IHsKKyAqICAgICAgdW5zaWduZWQgY2hhciBoZWFkczsKKyAqICAgICAgdW5zaWduZWQgY2hhciBzZWN0b3JzOworICogICAgICB1bnNpZ25lZCBzaG9ydCBjeWxpbmRlcnM7CisgKiAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQ7CisgKiB9OworICoKKyAqIEZvciBsYXJnZSBkaXNrcyBnLmN5bGluZGVycyBpcyB0cnVuY2F0ZWQsIHNvIHdlIHVzZSBCTEtHRVRTSVpFLgorICovCisKKy8qCisgKiBXZSBjb25zaWRlciBzZXZlcmFsIGdlb21ldHJpZXMgZm9yIGEgZGlzazoKKyAqIEIgLSB0aGUgQklPUyBnZW9tZXRyeSwgZ290dGVuIGZyb20gdGhlIGtlcm5lbCB2aWEgSERJT19HRVRHRU8KKyAqIEYgLSB0aGUgZmRpc2sgZ2VvbWV0cnkKKyAqIFUgLSB0aGUgdXNlci1zcGVjaWZpZWQgZ2VvbWV0cnkKKyAqCisgKiAwIG1lYW5zIHVuc3BlY2lmaWVkIC8gdW5rbm93bgorICovCitzdHJ1Y3QgZ2VvbWV0cnkgeworCXVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbF9zaXplOwkJLyogaW4gc2VjdG9ycyAqLworCXVuc2lnbmVkIGxvbmcgY3lsaW5kZXJzaXplOwkJLyogaW4gc2VjdG9ycyAqLworCXVuc2lnbmVkIGxvbmcgaGVhZHMsIHNlY3RvcnMsIGN5bGluZGVyczsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0OworfSBCLCBGLCBVOworCitzdGF0aWMgc3RydWN0IGdlb21ldHJ5CitnZXRfZ2VvbWV0cnkoY2hhciAqZGV2LCBpbnQgZmQsIGludCBzaWxlbnQpIHsKKyAgICBzdHJ1Y3QgaGRfZ2VvbWV0cnkgZzsKKyAgICB1bnNpZ25lZCBsb25nIGN5bHM7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHNlY3RvcnM7CisgICAgc3RydWN0IGdlb21ldHJ5IFI7CisKKyNpZmRlZiBIRElPX0dFVEdFTworICAgIGlmIChpb2N0bChmZCwgSERJT19HRVRHRU8sICZnKSkKKyNlbmRpZgorICAgIHsKKwlnLmhlYWRzID0gZy5zZWN0b3JzID0gZy5jeWxpbmRlcnMgPSBnLnN0YXJ0ID0gMDsKKwlpZiAoIXNpbGVudCkKKwkgICAgZG9fd2FybihfKCJEaXNrICVzOiBjYW5ub3QgZ2V0IGdlb21ldHJ5XG4iKSwgZGV2KTsKKyAgICB9CisKKyAgICBSLnN0YXJ0ID0gZy5zdGFydDsKKyAgICBSLmhlYWRzID0gZy5oZWFkczsKKyAgICBSLnNlY3RvcnMgPSBnLnNlY3RvcnM7CisgICAgUi5jeWxpbmRlcnNpemUgPSBSLmhlYWRzICogUi5zZWN0b3JzOworICAgIFIuY3lsaW5kZXJzID0gMDsKKyAgICBSLnRvdGFsX3NpemUgPSAwOworCisgICAgaWYgKGJsa2Rldl9nZXRfc2VjdG9ycyhmZCwgJnNlY3RvcnMpID09IC0xKSB7CisJLyogbWF5YmUgYW4gb3JkaW5hcnkgZmlsZSAqLworCXN0cnVjdCBzdGF0IHM7CisKKwlpZiAoZnN0YXQoZmQsICZzKSA9PSAwICYmIFNfSVNSRUcocy5zdF9tb2RlKSkKKwkgICAgUi50b3RhbF9zaXplID0gKHMuc3Rfc2l6ZSA+PiA5KTsKKwllbHNlIGlmICghc2lsZW50KQorCSAgICBkb193YXJuKF8oIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIiksIGRldik7CisgICAgfSBlbHNlCisJICAgIFIudG90YWxfc2l6ZSA9IHNlY3RvcnM7CisKKyAgICBpZiAoUi5jeWxpbmRlcnNpemUgJiYgUi50b3RhbF9zaXplKSB7CisJICAgIHNlY3RvcnMgLz0gUi5jeWxpbmRlcnNpemU7CisJICAgIGN5bHMgPSBzZWN0b3JzOworCSAgICBpZiAoY3lscyAhPSBzZWN0b3JzKQorCQkgICAgY3lscyA9IH4wOworCSAgICBSLmN5bGluZGVycyA9IGN5bHM7CisgICAgfQorCisgICAgcmV0dXJuIFI7Cit9CisKK3N0YXRpYyB2b2lkCitnZXRfY3lsaW5kZXJzaXplKGNoYXIgKmRldiwgaW50IGZkLCBpbnQgc2lsZW50KSB7CisgICAgc3RydWN0IGdlb21ldHJ5IFI7CisKKyAgICBSID0gZ2V0X2dlb21ldHJ5KGRldiwgZmQsIHNpbGVudCk7CisKKyAgICBCLmhlYWRzID0gKFUuaGVhZHMgPyBVLmhlYWRzIDogUi5oZWFkcyA/IFIuaGVhZHMgOiAyNTUpOworICAgIEIuc2VjdG9ycyA9IChVLnNlY3RvcnMgPyBVLnNlY3RvcnMgOiBSLnNlY3RvcnMgPyBSLnNlY3RvcnMgOiA2Myk7CisgICAgQi5jeWxpbmRlcnMgPSAoVS5jeWxpbmRlcnMgPyBVLmN5bGluZGVycyA6IFIuY3lsaW5kZXJzKTsKKworICAgIEIuY3lsaW5kZXJzaXplID0gQi5oZWFkcyAqIEIuc2VjdG9yczsKKyAgICBCLnRvdGFsX3NpemUgPSBSLnRvdGFsX3NpemU7CisKKyAgICBpZiAoQi5jeWxpbmRlcnMgPT0gMCAmJiBCLmN5bGluZGVyc2l6ZSAhPSAwKQorCSAgICBCLmN5bGluZGVycyA9IEIudG90YWxfc2l6ZSAvIEIuY3lsaW5kZXJzaXplOworCisgICAgaWYgKFIuc3RhcnQgJiYgIWZvcmNlKSB7CisJd2FybigKKwkgICAgXygiV2FybmluZzogc3RhcnQ9JWx1IC0gdGhpcyBsb29rcyBsaWtlIGEgcGFydGl0aW9uIHJhdGhlciB0aGFuXG4iCisJICAgICAgInRoZSBlbnRpcmUgZGlzay4gVXNpbmcgZmRpc2sgb24gaXQgaXMgcHJvYmFibHkgbWVhbmluZ2xlc3MuXG4iCisJICAgICAgIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIiksIFIuc3RhcnQpOworCWV4aXQoMSk7CisgICAgfQorI2lmIDAKKyAgICBpZiAoUi5oZWFkcyAmJiBCLmhlYWRzICE9IFIuaGVhZHMpCisJd2FybihfKCJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBoZWFkc1xuIiksCisJICAgICBSLmhlYWRzKTsKKyAgICBpZiAoUi5zZWN0b3JzICYmIEIuc2VjdG9ycyAhPSBSLnNlY3RvcnMpCisJd2FybihfKCJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iKSwKKwkgICAgIFIuc2VjdG9ycyk7CisgICAgaWYgKFIuY3lsaW5kZXJzICYmIEIuY3lsaW5kZXJzICE9IFIuY3lsaW5kZXJzCisJICAgICYmIEIuY3lsaW5kZXJzIDwgNjU1MzYgJiYgUi5jeWxpbmRlcnMgPCA2NTUzNikKKwl3YXJuKF8oIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iKSwKKwkgICAgIFIuY3lsaW5kZXJzKTsKKyNlbmRpZgorCisgICAgaWYgKEIuc2VjdG9ycyA+IDYzKQorICAgICAgd2FybihfKCJXYXJuaW5nOiB1bmxpa2VseSBudW1iZXIgb2Ygc2VjdG9ycyAoJWx1KSAtIHVzdWFsbHkgYXQgbW9zdCA2M1xuIgorCSAgICJUaGlzIHdpbGwgZ2l2ZSBwcm9ibGVtcyB3aXRoIGFsbCBzb2Z0d2FyZSB0aGF0IHVzZXMgQy9IL1MgYWRkcmVzc2luZy5cbiIpLAorCSAgIEIuc2VjdG9ycyk7CisgICAgaWYgKCFzaWxlbnQpCisgICAgICBwcmludGYoXygiXG5EaXNrICVzOiAlbHUgY3lsaW5kZXJzLCAlbHUgaGVhZHMsICVsdSBzZWN0b3JzL3RyYWNrXG4iKSwKKwkgICAgIGRldiwgQi5jeWxpbmRlcnMsIEIuaGVhZHMsIEIuc2VjdG9ycyk7Cit9CisKK3R5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgY2hhciBoLHMsYzsgfSBQQUNLRUQgY2hzOyAvKiBoYXMgc29tZSBjIGJpdHMgaW4gcyAqLworY2hzIHplcm9fY2hzID0geyAwLDAsMCB9OworCit0eXBlZGVmIHN0cnVjdCB7IHVuc2lnbmVkIGxvbmcgaCxzLGM7IH0gbG9uZ2NoczsKK2xvbmdjaHMgemVyb19sb25nY2hzOworCitzdGF0aWMgY2hzCitsb25nY2hzX3RvX2NocyAobG9uZ2NocyBhYSwgc3RydWN0IGdlb21ldHJ5IEcpIHsKKyAgICBjaHMgYTsKKworICAgIGlmIChhYS5oIDwgMjU2ICYmIGFhLnMgPCA2NCAmJiBhYS5jIDwgMTAyNCkgeworCWEuaCA9IGFhLmg7CisJYS5zID0gYWEucyB8ICgoYWEuYyA+PiAyKSAmIDB4YzApOworCWEuYyA9IChhYS5jICYgMHhmZik7CisgICAgfSBlbHNlIGlmIChHLmhlYWRzICYmIEcuc2VjdG9ycykgeworCWEuaCA9IEcuaGVhZHMgLSAxOworCWEucyA9IEcuc2VjdG9ycyB8IDB4YzA7CisJYS5jID0gMHhmZjsKKyAgICB9IGVsc2UKKyAgICAgICAgYSA9IHplcm9fY2hzOworICAgIHJldHVybiBhOworfQorCitzdGF0aWMgbG9uZ2NocworY2hzX3RvX2xvbmdjaHMgKGNocyBhKSB7CisgICAgbG9uZ2NocyBhYTsKKworICAgIGFhLmggPSBhLmg7CisgICAgYWEucyA9IChhLnMgJiAweDNmKTsKKyAgICBhYS5jID0gKGEucyAmIDB4YzApOworICAgIGFhLmMgPSAoYWEuYyA8PCAyKSArIGEuYzsKKyAgICByZXR1cm4gYWE7Cit9CisKK3N0YXRpYyBsb25nY2hzCit1bG9uZ190b19sb25nY2hzICh1bnNpZ25lZCBsb25nIHNubywgc3RydWN0IGdlb21ldHJ5IEcpIHsKKyAgICBsb25nY2hzIGFhOworCisgICAgaWYgKEcuaGVhZHMgJiYgRy5zZWN0b3JzICYmIEcuY3lsaW5kZXJzaXplKSB7CisJYWEucyA9IDEgKyBzbm8gJSBHLnNlY3RvcnM7CisJYWEuaCA9IChzbm8gLyBHLnNlY3RvcnMpICUgRy5oZWFkczsKKwlhYS5jID0gc25vIC8gRy5jeWxpbmRlcnNpemU7CisJcmV0dXJuIGFhOworICAgIH0gZWxzZSB7CisJcmV0dXJuIHplcm9fbG9uZ2NoczsKKyAgICB9Cit9CisKK3N0YXRpYyBjaHMKK3Vsb25nX3RvX2NocyAodW5zaWduZWQgbG9uZyBzbm8sIHN0cnVjdCBnZW9tZXRyeSBHKSB7CisgICAgcmV0dXJuIGxvbmdjaHNfdG9fY2hzKHVsb25nX3RvX2xvbmdjaHMoc25vLCBHKSwgRyk7Cit9CisKKyNpZiAwCitzdGF0aWMgdW5zaWduZWQgbG9uZworbG9uZ2Noc190b191bG9uZyAobG9uZ2NocyBhYSwgc3RydWN0IGdlb21ldHJ5IEcpIHsKKyAgICByZXR1cm4gKGFhLmMqRy5jeWxpbmRlcnNpemUgKyBhYS5oKkcuc2VjdG9ycyArIGFhLnMgLSAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcKK2Noc190b191bG9uZyAoY2hzIGEsIHN0cnVjdCBnZW9tZXRyeSBHKSB7CisgICAgcmV0dXJuIGxvbmdjaHNfdG9fdWxvbmcoY2hzX3RvX2xvbmdjaHMoYSksIEcpOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK2lzX2VxdWFsX2NocyAoY2hzIGEsIGNocyBiKSB7CisgICAgcmV0dXJuIChhLmggPT0gYi5oICYmIGEucyA9PSBiLnMgJiYgYS5jID09IGIuYyk7Cit9CisKK3N0YXRpYyBpbnQKK2Noc19vayAoY2hzIGEsIGNoYXIgKnYsIGNoYXIgKncpIHsKKyAgICBsb25nY2hzIGFhID0gY2hzX3RvX2xvbmdjaHMoYSk7CisgICAgaW50IHJldCA9IDE7CisKKyAgICBpZiAoaXNfZXF1YWxfY2hzKGEsIHplcm9fY2hzKSkKKyAgICAgIHJldHVybiAxOworICAgIGlmIChCLmhlYWRzICYmIGFhLmggPj0gQi5oZWFkcykgeworCXdhcm4oXygiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAiCisJICAgICAiJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iKSwgdywgdiwgYWEuaCwgQi5oZWFkcy0xKTsKKwlyZXQgPSAwOworICAgIH0KKyAgICBpZiAoQi5zZWN0b3JzICYmIChhYS5zID09IDAgfHwgYWEucyA+IEIuc2VjdG9ycykpIHsKKwl3YXJuKF8oIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3Igc2VjdG9yOiAiCisJICAgICAiJWx1IChzaG91bGQgYmUgaW4gMS0lbHUpXG4iKSwgdywgdiwgYWEucywgQi5zZWN0b3JzKTsKKwlyZXQgPSAwOworICAgIH0KKyAgICBpZiAoQi5jeWxpbmRlcnMgJiYgYWEuYyA+PSBCLmN5bGluZGVycykgeworCXdhcm4oXygiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICIKKwkgICAgICIlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIpLCB3LCB2LCBhYS5jLCBCLmN5bGluZGVycy0xKTsKKwlyZXQgPSAwOworICAgIH0KKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogIEQuIEFib3V0IHN5c3RlbSBJZHMKKyAqLworCisjZGVmaW5lIEVNUFRZX1BBUlRJVElPTgkJMAorI2RlZmluZSBFWFRFTkRFRF9QQVJUSVRJT04JNQorI2RlZmluZSBXSU45OF9FWFRFTkRFRAkJMHgwZgorI2RlZmluZSBETTZfQVVYMVBBUlRJVElPTgkweDUxCisjZGVmaW5lIERNNl9BVVgzUEFSVElUSU9OCTB4NTMKKyNkZWZpbmUgRE02X1BBUlRJVElPTgkJMHg1NAorI2RlZmluZSBFWkRfUEFSVElUSU9OCQkweDU1CisjZGVmaW5lIExJTlVYX1NXQVAgICAgICAgICAgICAgIDB4ODIKKyNkZWZpbmUgTElOVVhfTkFUSVZFCSAgICAgICAgMHg4MworI2RlZmluZSBMSU5VWF9FWFRFTkRFRAkJMHg4NQorI2RlZmluZSBCU0RfUEFSVElUSU9OCQkweGE1CisjZGVmaW5lIE5FVEJTRF9QQVJUSVRJT04JMHhhOQorCisvKiBMaXN0IG9mIHBhcnRpdGlvbiB0eXBlcyBub3cgaW4gaTM4Nl9zeXNfdHlwZXMuYyAqLworCitzdGF0aWMgY29uc3QgY2hhciAqCitzeXNuYW1lKHVuc2lnbmVkIGNoYXIgdHlwZSkgeworICAgIHN0cnVjdCBzeXN0eXBlcyAqczsKKworICAgIGZvciAocyA9IGkzODZfc3lzX3R5cGVzOyBzLT5uYW1lOyBzKyspCisgICAgICBpZiAocy0+dHlwZSA9PSB0eXBlKQorCXJldHVybiBfKHMtPm5hbWUpOworICAgIHJldHVybiBfKCJVbmtub3duIik7Cit9CisKK3N0YXRpYyB2b2lkCitsaXN0X3R5cGVzKHZvaWQpIHsKKyAgICBzdHJ1Y3Qgc3lzdHlwZXMgKnM7CisKKyAgICBwcmludGYoXygiSWQgIE5hbWVcblxuIikpOworICAgIGZvciAocyA9IGkzODZfc3lzX3R5cGVzOyBzLT5uYW1lOyBzKyspCisgICAgICBwcmludGYoIiUyeCAgJXNcbiIsIHMtPnR5cGUsIF8ocy0+bmFtZSkpOworfQorCitzdGF0aWMgaW50Citpc19leHRlbmRlZCh1bnNpZ25lZCBjaGFyIHR5cGUpIHsKKwlyZXR1cm4gKHR5cGUgPT0gRVhURU5ERURfUEFSVElUSU9OCisJCXx8IHR5cGUgPT0gTElOVVhfRVhURU5ERUQKKwkJfHwgdHlwZSA9PSBXSU45OF9FWFRFTkRFRCk7Cit9CisKK3N0YXRpYyBpbnQKK2lzX2JzZCh1bnNpZ25lZCBjaGFyIHR5cGUpIHsKKwlyZXR1cm4gKHR5cGUgPT0gQlNEX1BBUlRJVElPTiB8fCB0eXBlID09IE5FVEJTRF9QQVJUSVRJT04pOworfQorCisvKgorICogIEUuIEFib3V0IHBhcnRpdGlvbnMKKyAqLworCisvKiBNUy9ET1MgcGFydGl0aW9uICovCisKK3N0cnVjdCBwYXJ0aXRpb24geworICAgIHVuc2lnbmVkIGNoYXIgYm9vdGFibGU7CQkvKiAwIG9yIDB4ODAgKi8KKyAgICBjaHMgYmVnaW5fY2hzOworICAgIHVuc2lnbmVkIGNoYXIgc3lzX3R5cGU7CisgICAgY2hzIGVuZF9jaHM7CisgICAgdW5zaWduZWQgaW50IHN0YXJ0X3NlY3Q7CS8qIHN0YXJ0aW5nIHNlY3RvciBjb3VudGluZyBmcm9tIDAgKi8KKyAgICB1bnNpZ25lZCBpbnQgbnJfc2VjdHM7CS8qIG5yIG9mIHNlY3RvcnMgaW4gcGFydGl0aW9uICovCit9IFBBQ0tFRDsKKworLyogVW5mb3J0dW5hdGVseSwgcGFydGl0aW9ucyBhcmUgbm90IGFsaWduZWQsIGFuZCBub24tSW50ZWwgbWFjaGluZXMKKyAgIGFyZSB1bmhhcHB5IHdpdGggbm9uLWFsaWduZWQgaW50ZWdlcnMuIFNvLCB3ZSBuZWVkIGEgY29weSBieSBoYW5kLiAqLworc3RhdGljIGludAorY29weV90b19pbnQodW5zaWduZWQgY2hhciAqY3ApIHsKKyAgICB1bnNpZ25lZCBpbnQgbTsKKworICAgIG0gPSAqY3ArKzsKKyAgICBtICs9ICgqY3ArKyA8PCA4KTsKKyAgICBtICs9ICgqY3ArKyA8PCAxNik7CisgICAgbSArPSAoKmNwKysgPDwgMjQpOworICAgIHJldHVybiBtOworfQorCitzdGF0aWMgdm9pZAorY29weV9mcm9tX2ludChpbnQgbSwgY2hhciAqY3ApIHsKKyAgICAqY3ArKyA9IChtICYgMHhmZik7IG0gPj49IDg7CisgICAgKmNwKysgPSAobSAmIDB4ZmYpOyBtID4+PSA4OworICAgICpjcCsrID0gKG0gJiAweGZmKTsgbSA+Pj0gODsKKyAgICAqY3ArKyA9IChtICYgMHhmZik7Cit9CisKK3N0YXRpYyB2b2lkCitjb3B5X3RvX3BhcnQoY2hhciAqY3AsIHN0cnVjdCBwYXJ0aXRpb24gKnApIHsKKyAgICBwLT5ib290YWJsZSA9ICpjcCsrOworICAgIHAtPmJlZ2luX2Nocy5oID0gKmNwKys7CisgICAgcC0+YmVnaW5fY2hzLnMgPSAqY3ArKzsKKyAgICBwLT5iZWdpbl9jaHMuYyA9ICpjcCsrOworICAgIHAtPnN5c190eXBlID0gKmNwKys7CisgICAgcC0+ZW5kX2Nocy5oID0gKmNwKys7CisgICAgcC0+ZW5kX2Nocy5zID0gKmNwKys7CisgICAgcC0+ZW5kX2Nocy5jID0gKmNwKys7CisgICAgcC0+c3RhcnRfc2VjdCA9IGNvcHlfdG9faW50KCh1bnNpZ25lZCBjaGFyICopIGNwKTsKKyAgICBwLT5ucl9zZWN0cyA9IGNvcHlfdG9faW50KCh1bnNpZ25lZCBjaGFyICopIGNwKzQpOworfQorCitzdGF0aWMgdm9pZAorY29weV9mcm9tX3BhcnQoc3RydWN0IHBhcnRpdGlvbiAqcCwgY2hhciAqY3ApIHsKKyAgICAqY3ArKyA9IHAtPmJvb3RhYmxlOworICAgICpjcCsrID0gcC0+YmVnaW5fY2hzLmg7CisgICAgKmNwKysgPSBwLT5iZWdpbl9jaHMuczsKKyAgICAqY3ArKyA9IHAtPmJlZ2luX2Nocy5jOworICAgICpjcCsrID0gcC0+c3lzX3R5cGU7CisgICAgKmNwKysgPSBwLT5lbmRfY2hzLmg7CisgICAgKmNwKysgPSBwLT5lbmRfY2hzLnM7CisgICAgKmNwKysgPSBwLT5lbmRfY2hzLmM7CisgICAgY29weV9mcm9tX2ludChwLT5zdGFydF9zZWN0LCBjcCk7CisgICAgY29weV9mcm9tX2ludChwLT5ucl9zZWN0cywgY3ArNCk7Cit9CisKKy8qIFJvdWdobHkgc3BlYWtpbmcsIExpbnV4IGRvZXNuJ3QgdXNlIGFueSBvZiB0aGUgYWJvdmUgZmllbGRzIGV4Y2VwdAorICAgZm9yIHBhcnRpdGlvbiB0eXBlLCBzdGFydCBzZWN0b3IgYW5kIG51bWJlciBvZiBzZWN0b3JzLiAoSG93ZXZlciwKKyAgIHNlZSBhbHNvIGxpbnV4L2RyaXZlcnMvc2NzaS9mZG9tYWluLmMuKQorICAgVGhlIG9ubHkgd2F5IHBhcnRpdGlvbiB0eXBlIGlzIHVzZWQgKGluIHRoZSBrZXJuZWwpIGlzIHRoZSBjb21wYXJpc29uCisgICBmb3IgZXF1YWxpdHkgd2l0aCBFWFRFTkRFRF9QQVJUSVRJT04gKGFuZCB0aGVzZSBEaXNrIE1hbmFnZXIgdHlwZXMpLiAqLworCitzdHJ1Y3QgcGFydF9kZXNjIHsKKyAgICB1bnNpZ25lZCBsb25nIHN0YXJ0OworICAgIHVuc2lnbmVkIGxvbmcgc2l6ZTsKKyAgICB1bnNpZ25lZCBsb25nIHNlY3Rvciwgb2Zmc2V0OyAvKiBkaXNrIGxvY2F0aW9uIG9mIHRoaXMgaW5mbyAqLworICAgIHN0cnVjdCBwYXJ0aXRpb24gcDsKKyAgICBzdHJ1Y3QgcGFydF9kZXNjICplcDsJICAvKiBleHRlbmRlZCBwYXJ0aXRpb24gY29udGFpbmluZyB0aGlzIG9uZSAqLworICAgIGludCBwdHlwZTsKKyNkZWZpbmUgRE9TX1RZUEUJMAorI2RlZmluZSBCU0RfVFlQRQkxCit9IHplcm9fcGFydF9kZXNjOworCitzdGF0aWMgc3RydWN0IHBhcnRfZGVzYyAqCitvdXRlcl9leHRlbmRlZF9wYXJ0aXRpb24oc3RydWN0IHBhcnRfZGVzYyAqcCkgeworICAgIHdoaWxlIChwLT5lcCkKKyAgICAgIHAgPSBwLT5lcDsKKyAgICByZXR1cm4gcDsKK30KKworc3RhdGljIGludAoraXNfcGFyZW50KHN0cnVjdCBwYXJ0X2Rlc2MgKnBwLCBzdHJ1Y3QgcGFydF9kZXNjICpwKSB7CisgICAgd2hpbGUgKHApIHsKKwlpZiAocHAgPT0gcCkKKwkgIHJldHVybiAxOworCXAgPSBwLT5lcDsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBkaXNrX2Rlc2MgeworICAgIHN0cnVjdCBwYXJ0X2Rlc2MgcGFydGl0aW9uc1s1MTJdOworICAgIGludCBwYXJ0bm87Cit9IG9sZHAsIG5ld3A7CisKKy8qIGRldGVybWluZSB3aGVyZSBvbiB0aGUgZGlzayB0aGlzIGluZm9ybWF0aW9uIGdvZXMgKi8KK3N0YXRpYyB2b2lkCithZGRfc2VjdG9yX2FuZF9vZmZzZXQoc3RydWN0IGRpc2tfZGVzYyAqeikgeworICAgIGludCBwbm87CisgICAgc3RydWN0IHBhcnRfZGVzYyAqcDsKKworICAgIGZvciAocG5vID0gMDsgcG5vIDwgei0+cGFydG5vOyBwbm8rKykgeworCXAgPSAmKHotPnBhcnRpdGlvbnNbcG5vXSk7CisJcC0+b2Zmc2V0ID0gMHgxYmUgKyAocG5vJTQpKnNpemVvZihzdHJ1Y3QgcGFydGl0aW9uKTsKKwlwLT5zZWN0b3IgPSAocC0+ZXAgPyBwLT5lcC0+c3RhcnQgOiAwKTsKKyAgICB9Cit9CisKKy8qIHRlbGwgdGhlIGtlcm5lbCB0byByZXJlYWQgdGhlIHBhcnRpdGlvbiB0YWJsZXMgKi8KK3N0YXRpYyBpbnQKK3JlcmVhZF9pb2N0bChpbnQgZmQpIHsKKyNpZmRlZiBCTEtSUlBBUlQKKyAgICBpZiAoaW9jdGwoZmQsIEJMS1JSUEFSVCkpCisjZWxzZQorICAgIGVycm5vID0gRU5PU1lTOworI2VuZGlmCisgICAgeworCXBlcnJvcigiQkxLUlJQQVJUIik7CisKKwkvKiAyLjYuOCByZXR1cm5zIEVJTyBmb3IgYSB6ZXJvIHRhYmxlICovCisJaWYgKGVycm5vID09IEVCVVNZKQorCQlyZXR1cm4gLTE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Citpc19ibG9ja2RldihpbnQgZmQpIHsKKyAgICBzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCisgICAgcmV0dXJuKGZzdGF0KGZkLCAmc3RhdGJ1ZikgPT0gMCAmJiBTX0lTQkxLKHN0YXRidWYuc3RfbW9kZSkpOworfQorCisvKiByZXJlYWQgYWZ0ZXIgd3JpdGluZyAqLworc3RhdGljIHZvaWQKK3JlcmVhZF9kaXNrX3BhcnRpdGlvbihjaGFyICpkZXYsIGludCBmZCkgeworICAgIHByaW50ZihfKCJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iKSk7CisgICAgZmZsdXNoKHN0ZG91dCk7CisgICAgc3luYygpOworCisgICAgaWYgKHJlcmVhZF9pb2N0bChmZCkgJiYgaXNfYmxvY2tkZXYoZmQpKQorICAgICAgZG9fd2FybihfKCJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorCSAgICAgICAgIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorCSAgICAgICAgImJlZm9yZSB1c2luZyBta2ZzXG4iKSk7CisKKyAgICBpZiAoZnN5bmMoZmQpIHx8IGNsb3NlKGZkKSkgeworCXBlcnJvcihkZXYpOworCWRvX3dhcm4oXygiRXJyb3IgY2xvc2luZyAlc1xuIiksIGRldik7CisgICAgfQorICAgIHByaW50ZigiXG4iKTsKK30KKworLyogZmluZCBMaW51eCBuYW1lIG9mIHRoaXMgcGFydGl0aW9uLCBhc3N1bWluZyB0aGF0IGl0IHdpbGwgaGF2ZSBhIG5hbWUgKi8KK3N0YXRpYyBpbnQKK2luZGV4X3RvX2xpbnV4KGludCBwbm8sIHN0cnVjdCBkaXNrX2Rlc2MgKnopIHsKKyAgICBpbnQgaSwgY3QgPSAxOworICAgIHN0cnVjdCBwYXJ0X2Rlc2MgKnAgPSAmKHotPnBhcnRpdGlvbnNbMF0pOworICAgIGZvciAoaT0wOyBpPHBubzsgaSsrLHArKykKKwlpZiAoaSA8IDQgfHwgKHAtPnNpemUgPiAwICYmICFpc19leHRlbmRlZChwLT5wLnN5c190eXBlKSkpCisJICBjdCsrOworICAgIHJldHVybiBjdDsKK30KKworc3RhdGljIGludAorbGludXhfdG9faW5kZXgoaW50IGxwbm8sIHN0cnVjdCBkaXNrX2Rlc2MgKnopIHsKKyAgICBpbnQgaSwgY3QgPSAwOworICAgIHN0cnVjdCBwYXJ0X2Rlc2MgKnAgPSAmKHotPnBhcnRpdGlvbnNbMF0pOworICAgIGZvciAoaT0wOyBpPHotPnBhcnRubyAmJiBjdCA8IGxwbm87IGkrKyxwKyspCisgICAgICBpZiAoKGkgPCA0IHx8IChwLT5zaXplID4gMCAmJiAhaXNfZXh0ZW5kZWQocC0+cC5zeXNfdHlwZSkpKQorCSAmJiArK2N0ID09IGxwbm8pCisJcmV0dXJuIGk7CisgICAgcmV0dXJuIC0xOworfQorCitzdGF0aWMgaW50Cithc2NfdG9faW5kZXgoY2hhciAqcG5hbSwgc3RydWN0IGRpc2tfZGVzYyAqeikgeworICAgIGludCBwbnVtLCBwbm87CisKKyAgICBpZiAoKnBuYW0gPT0gJyMnKSB7CisJcG5vID0gYXRvaShwbmFtKzEpOworICAgIH0gZWxzZSB7CisJcG51bSA9IGF0b2kocG5hbSk7CisJcG5vID0gbGludXhfdG9faW5kZXgocG51bSwgeik7CisgICAgfQorICAgIGlmICghKHBubyA+PSAwICYmIHBubyA8IHotPnBhcnRubykpCisgICAgICBmYXRhbChfKCIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIpLCBwbmFtKTsKKyAgICByZXR1cm4gcG5vOworfQorCisvKgorICogTGlzdCBwYXJ0aXRpb25zIC0gaW4gdGVybXMgb2Ygc2VjdG9ycywgYmxvY2tzIG9yIGN5bGluZGVycworICovCisjZGVmaW5lIEZfU0VDVE9SICAgMQorI2RlZmluZSBGX0JMT0NLICAgIDIKKyNkZWZpbmUgRl9DWUxJTkRFUiAzCisjZGVmaW5lIEZfTUVHQUJZVEUgNAorCitpbnQgZGVmYXVsdF9mb3JtYXQgPSBGX01FR0FCWVRFOworaW50IHNwZWNpZmllZF9mb3JtYXQgPSAwOworaW50IHNob3dfZXh0ZW5kZWQgPSAwOworaW50IG9uZV9vbmx5ID0gMDsKK2ludCBvbmVfb25seV9wbm87CitpbnQgaW5jcmVtZW50ID0gMDsKKworc3RhdGljIHZvaWQKK3NldF9mb3JtYXQoY2hhciBjKSB7CisgICAgc3dpdGNoKGMpIHsKKyAgICAgIGRlZmF1bHQ6CisJZG9fd2FybihfKCJ1bnJlY29nbml6ZWQgZm9ybWF0IC0gdXNpbmcgc2VjdG9yc1xuIikpOworICAgICAgY2FzZSAnUyc6IHNwZWNpZmllZF9mb3JtYXQgPSBGX1NFQ1RPUjsgYnJlYWs7CisgICAgICBjYXNlICdCJzogc3BlY2lmaWVkX2Zvcm1hdCA9IEZfQkxPQ0s7IGJyZWFrOworICAgICAgY2FzZSAnQyc6IHNwZWNpZmllZF9mb3JtYXQgPSBGX0NZTElOREVSOyBicmVhazsKKyAgICAgIGNhc2UgJ00nOiBzcGVjaWZpZWRfZm9ybWF0ID0gRl9NRUdBQllURTsgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZwordW5pdHNpemUoaW50IGZvcm1hdCkgeworICAgIGRlZmF1bHRfZm9ybWF0ID0gKEIuY3lsaW5kZXJzaXplID8gRl9DWUxJTkRFUiA6IEZfTUVHQUJZVEUpOworICAgIGlmICghZm9ybWF0ICYmICEoZm9ybWF0ID0gc3BlY2lmaWVkX2Zvcm1hdCkpCisgICAgICBmb3JtYXQgPSBkZWZhdWx0X2Zvcm1hdDsKKworICAgIHN3aXRjaChmb3JtYXQpIHsKKyAgICAgIGRlZmF1bHQ6CisgICAgICBjYXNlIEZfQ1lMSU5ERVI6CisJaWYgKEIuY3lsaW5kZXJzaXplKQorCSAgcmV0dXJuIEIuY3lsaW5kZXJzaXplOworICAgICAgY2FzZSBGX1NFQ1RPUjoKKwlyZXR1cm4gMTsKKyAgICAgIGNhc2UgRl9CTE9DSzoKKwlyZXR1cm4gMjsKKyAgICAgIGNhc2UgRl9NRUdBQllURToKKwlyZXR1cm4gMjA0ODsKKyAgICB9Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nCitnZXRfZGlza3NpemUoaW50IGZvcm1hdCkgeworICAgIGlmIChCLnRvdGFsX3NpemUgJiYgbGVhdmVfbGFzdCkKKwkgICAgLyogZG9uJ3QgdXNlIGxhc3QgY3lsaW5kZXIgKC0tbGVhdmUtbGFzdCBvcHRpb24pICovCisJICAgIHJldHVybiAoQi50b3RhbF9zaXplIC0gQi5jeWxpbmRlcnNpemUpIC8gdW5pdHNpemUoZm9ybWF0KTsKKworICAgIHJldHVybiBCLnRvdGFsX3NpemUgLyB1bml0c2l6ZShmb3JtYXQpOworfQorCitzdGF0aWMgdm9pZAorb3V0X3BhcnRpdGlvbl9oZWFkZXIoY2hhciAqZGV2LCBpbnQgZm9ybWF0LCBzdHJ1Y3QgZ2VvbWV0cnkgRykgeworICAgIGlmIChkdW1wKSB7CisJcHJpbnRmKCIjIHBhcnRpdGlvbiB0YWJsZSBvZiAlc1xuIiwgZGV2KTsKKwlwcmludGYoInVuaXQ6IHNlY3RvcnNcblxuIik7CisJcmV0dXJuOworICAgIH0KKworICAgIGRlZmF1bHRfZm9ybWF0ID0gKEcuY3lsaW5kZXJzaXplID8gRl9DWUxJTkRFUiA6IEZfTUVHQUJZVEUpOworICAgIGlmICghZm9ybWF0ICYmICEoZm9ybWF0ID0gc3BlY2lmaWVkX2Zvcm1hdCkpCisgICAgICBmb3JtYXQgPSBkZWZhdWx0X2Zvcm1hdDsKKworICAgIHN3aXRjaChmb3JtYXQpIHsKKyAgICAgIGRlZmF1bHQ6CisJZG9fd2FybihfKCJ1bmltcGxlbWVudGVkIGZvcm1hdCAtIHVzaW5nICVzXG4iKSwKKwkgICAgICAgRy5jeWxpbmRlcnNpemUgPyBfKCJjeWxpbmRlcnMiKSA6IF8oInNlY3RvcnMiKSk7CisgICAgICBjYXNlIEZfQ1lMSU5ERVI6CisJaWYgKEcuY3lsaW5kZXJzaXplKSB7CisJICBwcmludGYoXygiVW5pdHMgPSBjeWxpbmRlcnMgb2YgJWx1IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcyIKKwkJICIsIGNvdW50aW5nIGZyb20gJWRcblxuIiksCisJCSBHLmN5bGluZGVyc2l6ZTw8OSwgaW5jcmVtZW50KTsKKwkgICAgcHJpbnRmKF8oIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIikpOworCSAgICBicmVhazsKKwl9CisJLyogZmFsbCB0aHJvdWdoICovCisgICAgICBjYXNlIEZfU0VDVE9SOgorCXByaW50ZihfKCJVbml0cyA9IHNlY3RvcnMgb2YgNTEyIGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG5cbiIpLAorCSAgICAgICBpbmNyZW1lbnQpOworCXByaW50ZihfKCIgICBEZXZpY2UgQm9vdCAgICBTdGFydCAgICAgICBFbmQgICAjc2VjdG9ycyAgSWQgIFN5c3RlbVxuIikpOworCWJyZWFrOworICAgICAgY2FzZSBGX0JMT0NLOgorCXByaW50ZihfKCJVbml0cyA9IGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG5cbiIpLAorCSAgICAgICBpbmNyZW1lbnQpOworCXByaW50ZihfKCIgICBEZXZpY2UgQm9vdCAgIFN0YXJ0ICAgICAgIEVuZCAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIikpOworCWJyZWFrOworICAgICAgY2FzZSBGX01FR0FCWVRFOgorCXByaW50ZihfKCJVbml0cyA9IG1lYmlieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcyIKKwkgICAgICAgIiwgY291bnRpbmcgZnJvbSAlZFxuXG4iKSwgaW5jcmVtZW50KTsKKwlwcmludGYoXygiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iKSk7CisJYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorb3V0X3JvdW5kZG93bihpbnQgd2lkdGgsIHVuc2lnbmVkIGxvbmcgbiwgdW5zaWduZWQgbG9uZyB1bml0LCBpbnQgaW5jKSB7CisgICAgcHJpbnRmKCIlKmx1Iiwgd2lkdGgsIGluYyArIG4vdW5pdCk7CisgICAgaWYgKHVuaXQgIT0gMSkKKyAgICAgIHB1dGNoYXIoKG4gJSB1bml0KSA/ICcrJyA6ICcgJyk7CisgICAgcHV0Y2hhcignICcpOworfQorCitzdGF0aWMgdm9pZAorb3V0X3JvdW5kdXAoaW50IHdpZHRoLCB1bnNpZ25lZCBsb25nIG4sIHVuc2lnbmVkIGxvbmcgdW5pdCwgaW50IGluYykgeworICAgIGlmIChuID09ICh1bnNpZ25lZCBsb25nKSgtMSkpCisgICAgICBwcmludGYoIiUqcyIsIHdpZHRoLCAiLSIpOworICAgIGVsc2UKKyAgICAgIHByaW50ZigiJSpsdSIsIHdpZHRoLCBpbmMgKyBuL3VuaXQpOworICAgIGlmICh1bml0ICE9IDEpCisgICAgICBwdXRjaGFyKCgobisxKSAlIHVuaXQpID8gJy0nIDogJyAnKTsKKyAgICBwdXRjaGFyKCcgJyk7Cit9CisKK3N0YXRpYyB2b2lkCitvdXRfcm91bmR1cF9zaXplKGludCB3aWR0aCwgdW5zaWduZWQgbG9uZyBuLCB1bnNpZ25lZCBsb25nIHVuaXQpIHsKKyAgICBwcmludGYoIiUqbHUiLCB3aWR0aCwgKG4rdW5pdC0xKS91bml0KTsKKyAgICBpZiAodW5pdCAhPSAxKQorICAgICAgcHV0Y2hhcigobiAlIHVuaXQpID8gJy0nIDogJyAnKTsKKyAgICBwdXRjaGFyKCcgJyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZ2VvbWV0cnkKK2dldF9mZGlza19nZW9tZXRyeV9vbmUoc3RydWN0IHBhcnRfZGVzYyAqcCkgeworICAgIHN0cnVjdCBnZW9tZXRyeSBHOworCisgICAgbWVtc2V0KCZHLCAwLCBzaXplb2Yoc3RydWN0IGdlb21ldHJ5KSk7CisgICAgY2hzIGIgPSBwLT5wLmVuZF9jaHM7CisgICAgbG9uZ2NocyBiYiA9IGNoc190b19sb25nY2hzKGIpOworICAgIEcuaGVhZHMgPSBiYi5oKzE7CisgICAgRy5zZWN0b3JzID0gYmIuczsKKyAgICBHLmN5bGluZGVyc2l6ZSA9IEcuaGVhZHMqRy5zZWN0b3JzOworICAgIHJldHVybiBHOworfQorCitzdGF0aWMgaW50CitnZXRfZmRpc2tfZ2VvbWV0cnkoc3RydWN0IGRpc2tfZGVzYyAqeikgeworICAgIHN0cnVjdCBwYXJ0X2Rlc2MgKnA7CisgICAgaW50IHBubywgYWdyZWU7CisgICAgc3RydWN0IGdlb21ldHJ5IEcwLCBHOworCisgICAgbWVtc2V0KCZHMCwgMCwgc2l6ZW9mKHN0cnVjdCBnZW9tZXRyeSkpOworICAgIGFncmVlID0gMDsKKyAgICBmb3IgKHBubz0wOyBwbm8gPCB6LT5wYXJ0bm87IHBubysrKSB7CisJcCA9ICYoei0+cGFydGl0aW9uc1twbm9dKTsKKwlpZiAocC0+c2l6ZSAhPSAwICYmIHAtPnAuc3lzX3R5cGUgIT0gMCkgeworCSAgICBHID0gZ2V0X2ZkaXNrX2dlb21ldHJ5X29uZShwKTsKKwkgICAgaWYgKCFHMC5oZWFkcykgeworCQlHMCA9IEc7CisJCWFncmVlID0gMTsKKwkgICAgfSBlbHNlIGlmIChHLmhlYWRzICE9IEcwLmhlYWRzIHx8IEcuc2VjdG9ycyAhPSBHMC5zZWN0b3JzKSB7CisJCWFncmVlID0gMDsKKwkJYnJlYWs7CisJICAgIH0KKwl9CisgICAgfQorICAgIEYgPSAoYWdyZWUgPyBHMCA6IEIpOworICAgIHJldHVybiAoRi5zZWN0b3JzICE9IEIuc2VjdG9ycyB8fCBGLmhlYWRzICE9IEIuaGVhZHMpOworfQorCitzdGF0aWMgdm9pZAorb3V0X3BhcnRpdGlvbihjaGFyICpkZXYsIGludCBmb3JtYXQsIHN0cnVjdCBwYXJ0X2Rlc2MgKnAsCisJICAgICAgc3RydWN0IGRpc2tfZGVzYyAqeiwgc3RydWN0IGdlb21ldHJ5IEcpIHsKKyAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCBlbmQsIHNpemU7CisgICAgaW50IHBubywgbHBubzsKKworICAgIGlmICghZm9ybWF0ICYmICEoZm9ybWF0ID0gc3BlY2lmaWVkX2Zvcm1hdCkpCisgICAgICBmb3JtYXQgPSBkZWZhdWx0X2Zvcm1hdDsKKworICAgIHBubyA9IHAgLSAmKHotPnBhcnRpdGlvbnNbMF0pOyAJLyogb3VyIGluZGV4ICovCisgICAgbHBubyA9IGluZGV4X3RvX2xpbnV4KHBubywgeik7IAkvKiBuYW1lIG9mIG5leHQgb25lIHRoYXQgaGFzIGEgbmFtZSAqLworICAgIGlmIChwbm8gPT0gbGludXhfdG9faW5kZXgobHBubywgeikpICAvKiB3YXMgdGhhdCB1cz8gKi8KKyAgICAgIHByaW50ZigiJXMiLCBwYXJ0bmFtZShkZXYsIGxwbm8sIDEwKSk7ICAvKiB5ZXMgKi8KKyAgICBlbHNlIGlmIChzaG93X2V4dGVuZGVkKQorICAgICAgcHJpbnRmKCIgICAgLSAgICAgIik7CisgICAgZWxzZQorICAgICAgcmV0dXJuOworICAgIHB1dGNoYXIoZHVtcCA/ICc6JyA6ICcgJyk7CisKKyAgICBzdGFydCA9IHAtPnN0YXJ0OworICAgIGVuZCA9IHAtPnN0YXJ0ICsgcC0+c2l6ZSAtIDE7CisgICAgc2l6ZSA9IHAtPnNpemU7CisKKyAgICBpZiAoZHVtcCkgeworCXByaW50ZigiIHN0YXJ0PSU5bHUiLCBzdGFydCk7CisJcHJpbnRmKCIsIHNpemU9JTlsdSIsIHNpemUpOworCWlmIChwLT5wdHlwZSA9PSBET1NfVFlQRSkgeworCSAgICBwcmludGYoIiwgSWQ9JTJ4IiwgcC0+cC5zeXNfdHlwZSk7CisJICAgIGlmIChwLT5wLmJvb3RhYmxlID09IDB4ODApCisJCXByaW50ZigiLCBib290YWJsZSIpOworCX0KKwlwcmludGYoIlxuIik7CisJcmV0dXJuOworICAgIH0KKworICAgIGlmIChwLT5wdHlwZSAhPSBET1NfVFlQRSB8fCBwLT5wLmJvb3RhYmxlID09IDApCisgICAgICBwcmludGYoIiAgICIpOworICAgIGVsc2UgaWYgKHAtPnAuYm9vdGFibGUgPT0gMHg4MCkKKyAgICAgIHByaW50ZigiICogIik7CisgICAgZWxzZQorICAgICAgcHJpbnRmKCIgPyAiKTsJCS8qIGdhcmJhZ2UgKi8KKworICAgIHN3aXRjaChmb3JtYXQpIHsKKyAgICAgIGNhc2UgRl9DWUxJTkRFUjoKKwlpZiAoRy5jeWxpbmRlcnNpemUpIHsKKwkgICAgb3V0X3JvdW5kZG93big2LCBzdGFydCwgRy5jeWxpbmRlcnNpemUsIGluY3JlbWVudCk7CisJICAgIG91dF9yb3VuZHVwKDYsIGVuZCwgRy5jeWxpbmRlcnNpemUsIGluY3JlbWVudCk7CisJICAgIG91dF9yb3VuZHVwX3NpemUoNiwgc2l6ZSwgRy5jeWxpbmRlcnNpemUpOworCSAgICBvdXRfcm91bmRkb3duKDksIHNpemUsIDIsIDApOworCSAgICBicmVhazsKKwl9CisJLyogZmFsbCB0aHJvdWdoICovCisgICAgICBkZWZhdWx0OgorICAgICAgY2FzZSBGX1NFQ1RPUjoKKwlvdXRfcm91bmRkb3duKDksIHN0YXJ0LCAxLCBpbmNyZW1lbnQpOworCW91dF9yb3VuZHVwKDksIGVuZCwgMSwgaW5jcmVtZW50KTsKKwlvdXRfcm91bmRkb3duKDEwLCBzaXplLCAxLCAwKTsKKwlicmVhazsKKyAgICAgIGNhc2UgRl9CTE9DSzoKKyNpZiAwCisJcHJpbnRmKCIlOGx1LCUzbHUgIiwKKwkgICAgICAgcC0+c2VjdG9yLzIsICgocC0+c2VjdG9yICYgMSkgPyA1MTIgOiAwKSArIHAtPm9mZnNldCk7CisjZW5kaWYKKwlvdXRfcm91bmRkb3duKDgsIHN0YXJ0LCAyLCBpbmNyZW1lbnQpOworCW91dF9yb3VuZHVwKDgsIGVuZCwgMiwgaW5jcmVtZW50KTsKKwlvdXRfcm91bmRkb3duKDksIHNpemUsIDIsIDApOworCWJyZWFrOworICAgICAgY2FzZSBGX01FR0FCWVRFOgorCW91dF9yb3VuZGRvd24oNSwgc3RhcnQsIDIwNDgsIGluY3JlbWVudCk7CisJb3V0X3JvdW5kdXAoNSwgZW5kLCAyMDQ4LCBpbmNyZW1lbnQpOworCW91dF9yb3VuZHVwX3NpemUoNSwgc2l6ZSwgMjA0OCk7CisJb3V0X3JvdW5kZG93big5LCBzaXplLCAyLCAwKTsKKwlicmVhazsKKyAgICB9CisgICAgaWYgKHAtPnB0eXBlID09IERPU19UWVBFKSB7CisJcHJpbnRmKCIgJTJ4ICAlc1xuIiwKKwkgICBwLT5wLnN5c190eXBlLCBzeXNuYW1lKHAtPnAuc3lzX3R5cGUpKTsKKyAgICB9IGVsc2UgeworCXByaW50ZigiXG4iKTsKKyAgICB9CisKKyAgICAvKiBJcyBjaHMgYXMgd2UgZXhwZWN0PyAqLworICAgIGlmICghcXVpZXQgJiYgcC0+cHR5cGUgPT0gRE9TX1RZUEUpIHsKKwljaHMgYSwgYjsKKwlsb25nY2hzIGFhLCBiYjsKKwlhID0gKHNpemUgPyB1bG9uZ190b19jaHMoc3RhcnQsRykgOiB6ZXJvX2Nocyk7CisJYiA9IHAtPnAuYmVnaW5fY2hzOworCWFhID0gY2hzX3RvX2xvbmdjaHMoYSk7CisJYmIgPSBjaHNfdG9fbG9uZ2NocyhiKTsKKwlpZiAoYS5zICYmICFpc19lcXVhbF9jaHMoYSwgYikpCisJICBkb193YXJuKF8oIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIpLAorCQkgYWEuYywgYWEuaCwgYWEucywgYmIuYywgYmIuaCwgYmIucyk7CisJYSA9IChzaXplID8gdWxvbmdfdG9fY2hzKGVuZCxHKSA6IHplcm9fY2hzKTsKKwliID0gcC0+cC5lbmRfY2hzOworCWFhID0gY2hzX3RvX2xvbmdjaHMoYSk7CisJYmIgPSBjaHNfdG9fbG9uZ2NocyhiKTsKKwlpZiAoYS5zICYmICFpc19lcXVhbF9jaHMoYSwgYikpCisJICBkb193YXJuKF8oIlx0XHRlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iKSwKKwkJIGFhLmMsIGFhLmgsIGFhLnMsIGJiLmMsIGJiLmgsIGJiLnMpOworCWlmIChHLmN5bGluZGVycyAmJiBHLmN5bGluZGVycyA8IDEwMjQgJiYgYmIuYyA+IEcuY3lsaW5kZXJzKQorCSAgZG9fd2FybihfKCJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iKSwKKwkgICAgICAgYmIuYyk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorb3V0X3BhcnRpdGlvbnMoY2hhciAqZGV2LCBzdHJ1Y3QgZGlza19kZXNjICp6KSB7CisgICAgaW50IHBubywgZm9ybWF0ID0gMDsKKworICAgIGlmICh6LT5wYXJ0bm8gPT0gMCkKKwlkb193YXJuKF8oIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIpKTsKKyAgICBlbHNlIHsKKwlpZiAoZ2V0X2ZkaXNrX2dlb21ldHJ5KHopICYmICFkdW1wKSB7CisJICAgIGRvX3dhcm4oCisJICAgXygiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisJICAgICAiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKwkgICAgICJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iKSwKKwkgICBGLmhlYWRzLCBGLnNlY3RvcnMsIEIuY3lsaW5kZXJzLCBCLmhlYWRzLCBCLnNlY3RvcnMpOworCX0KKworCW91dF9wYXJ0aXRpb25faGVhZGVyKGRldiwgZm9ybWF0LCBGKTsKKwlmb3IocG5vPTA7IHBubyA8IHotPnBhcnRubzsgcG5vKyspIHsKKwkgICAgb3V0X3BhcnRpdGlvbihkZXYsIGZvcm1hdCwgJih6LT5wYXJ0aXRpb25zW3Bub10pLCB6LCBGKTsKKwkgICAgaWYgKHNob3dfZXh0ZW5kZWQgJiYgcG5vJTQ9PTMpCisJICAgICAgcHJpbnRmKCJcbiIpOworCX0KKyAgICB9Cit9CisKK3N0YXRpYyBpbnQKK2Rpc2ooc3RydWN0IHBhcnRfZGVzYyAqcCwgc3RydWN0IHBhcnRfZGVzYyAqcSkgeworICAgIHJldHVybgorICAgICAgKChwLT5zdGFydCArIHAtPnNpemUgPD0gcS0+c3RhcnQpCisJfHwgKGlzX2V4dGVuZGVkKHAtPnAuc3lzX3R5cGUpCisJICAgICYmIHEtPnN0YXJ0ICsgcS0+c2l6ZSA8PSBwLT5zdGFydCArIHAtPnNpemUpKTsKK30KKworc3RhdGljIGNoYXIgKgorcG51bWJlcihzdHJ1Y3QgcGFydF9kZXNjICpwLCBzdHJ1Y3QgZGlza19kZXNjICp6KSB7CisgICAgc3RhdGljIGNoYXIgYnVmWzIwXTsKKyAgICBpbnQgdGhpcywgbmV4dDsKKyAgICBzdHJ1Y3QgcGFydF9kZXNjICpwMCA9ICYoei0+cGFydGl0aW9uc1swXSk7CisKKyAgICB0aGlzID0gaW5kZXhfdG9fbGludXgocC1wMCwgeik7CisgICAgbmV4dCA9IGluZGV4X3RvX2xpbnV4KHAtcDArMSwgeik7CisKKyAgICBpZiAobmV4dCA+IHRoaXMpCisgICAgICBzcHJpbnRmKGJ1ZiwgIiVkIiwgdGhpcyk7CisgICAgZWxzZQorICAgICAgc3ByaW50ZihidWYsICJbJWRdIiwgdGhpcyk7CisgICAgcmV0dXJuIGJ1ZjsKK30KKworc3RhdGljIGludAorcGFydGl0aW9uc19vayhzdHJ1Y3QgZGlza19kZXNjICp6KSB7CisgICAgc3RydWN0IHBhcnRfZGVzYyAqcGFydGl0aW9ucyA9ICYoei0+cGFydGl0aW9uc1swXSksICpwLCAqcTsKKyAgICBpbnQgcGFydG5vID0gei0+cGFydG5vOworCisjZGVmaW5lIFBOTyhwKSBwbnVtYmVyKHAsIHopCisKKyAgICAvKiBIYXZlIGF0IGxlYXN0IDQgcGFydGl0aW9ucyBiZWVuIGRlZmluZWQ/ICovCisgICAgaWYgKHBhcnRubyA8IDQpIHsKKwkgaWYgKCFwYXJ0bm8pCisJICAgICAgZmF0YWwoXygibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iKSk7CisJIGVsc2UKKwkgICAgICBmYXRhbChfKCJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIpLCBwYXJ0bm8pOworCSByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKiBBcmUgdGhlIHBhcnRpdGlvbnMgb2Ygc2l6ZSAwIG1hcmtlZCBlbXB0eT8KKyAgICAgICBBbmQgZG8gdGhleSBoYXZlIHN0YXJ0ID0gMD8gQW5kIGJvb3RhYmxlID0gMD8gKi8KKyAgICBmb3IgKHAgPSBwYXJ0aXRpb25zOyBwIC0gcGFydGl0aW9ucyA8IHBhcnRubzsgcCsrKQorICAgICAgaWYgKHAtPnNpemUgPT0gMCkgeworCSAgaWYgKHAtPnAuc3lzX3R5cGUgIT0gRU1QVFlfUEFSVElUSU9OKQorCSAgICB3YXJuKF8oIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iKSwKKwkJIFBOTyhwKSk7CisJICBlbHNlIGlmIChwLT5wLmJvb3RhYmxlICE9IDApCisJICAgIHdhcm4oXygiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIGlzIGJvb3RhYmxlXG4iKSwKKwkJIFBOTyhwKSk7CisJICBlbHNlIGlmIChwLT5wLnN0YXJ0X3NlY3QgIT0gMCkKKwkgICAgd2FybihfKCJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgbm9uemVybyBzdGFydFxuIiksCisJCSBQTk8ocCkpOworCSAgLyogYWxsIHRoaXMgaXMgcHJvYmFibHkgaGFybWxlc3MsIG5vIGVycm9yIHJldHVybiAqLworICAgICAgfQorCisgICAgLyogQXJlIHRoZSBsb2dpY2FsIHBhcnRpdGlvbnMgY29udGFpbmVkIGluIHRoZWlyIGV4dGVuZGVkIHBhcnRpdGlvbnM/ICovCisgICAgZm9yIChwID0gcGFydGl0aW9ucys0OyBwIDwgcGFydGl0aW9ucytwYXJ0bm87IHArKykKKyAgICAgIGlmIChwLT5wdHlwZSA9PSBET1NfVFlQRSkKKyAgICAgIGlmIChwLT5zaXplICYmICFpc19leHRlbmRlZChwLT5wLnN5c190eXBlKSkgeworCSAgcSA9IHAtPmVwOworCSAgaWYgKHAtPnN0YXJ0IDwgcS0+c3RhcnQgfHwgcC0+c3RhcnQgKyBwLT5zaXplID4gcS0+c3RhcnQgKyBxLT5zaXplKSB7CisJICAgICAgd2FybihfKCJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIiksIFBOTyhwKSk7CisJICAgICAgd2FybihfKCJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIiksIFBOTyhxKSk7CisJICAgICAgcmV0dXJuIDA7CisJICB9CisgICAgICB9CisKKyAgICAvKiBBcmUgdGhlIGRhdGEgcGFydGl0aW9ucyBtdXR1YWxseSBkaXNqb2ludD8gKi8KKyAgICBmb3IgKHAgPSBwYXJ0aXRpb25zOyBwIDwgcGFydGl0aW9ucytwYXJ0bm87IHArKykKKyAgICAgIGlmIChwLT5zaXplICYmICFpc19leHRlbmRlZChwLT5wLnN5c190eXBlKSkKKwlmb3IgKHEgPSBwKzE7IHEgPCBwYXJ0aXRpb25zK3BhcnRubzsgcSsrKQorCSAgaWYgKHEtPnNpemUgJiYgIWlzX2V4dGVuZGVkKHEtPnAuc3lzX3R5cGUpKQorCSAgICBpZiAoISgocC0+c3RhcnQgPiBxLT4gc3RhcnQpID8gZGlzaihxLHApIDogZGlzaihwLHEpKSkgeworCQl3YXJuKF8oIldhcm5pbmc6IHBhcnRpdGlvbnMgJXMgIiksIFBOTyhwKSk7CisJCXdhcm4oXygiYW5kICVzIG92ZXJsYXBcbiIpLCBQTk8ocSkpOworCQlyZXR1cm4gMDsKKwkgICAgfQorCisgICAgLyogQXJlIHRoZSBkYXRhIHBhcnRpdGlvbnMgYW5kIHRoZSBleHRlbmRlZCBwYXJ0aXRpb24KKyAgICAgICB0YWJsZSBzZWN0b3JzIGRpc2pvaW50PyAqLworICAgIGZvciAocCA9IHBhcnRpdGlvbnM7IHAgPCBwYXJ0aXRpb25zK3BhcnRubzsgcCsrKQorICAgICAgaWYgKHAtPnNpemUgJiYgIWlzX2V4dGVuZGVkKHAtPnAuc3lzX3R5cGUpKQorCWZvciAocSA9IHBhcnRpdGlvbnM7IHEgPCBwYXJ0aXRpb25zK3BhcnRubzsgcSsrKQorCSAgaWYgKGlzX2V4dGVuZGVkKHEtPnAuc3lzX3R5cGUpKQorCSAgICBpZiAocC0+c3RhcnQgPD0gcS0+c3RhcnQgJiYgcC0+c3RhcnQgKyBwLT5zaXplID4gcS0+c3RhcnQpIHsKKwkJd2FybihfKCJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgY29udGFpbnMgcGFydCBvZiAiCisJCSAgICAgICAidGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisJCSAgICAgICAiYW5kIHdpbGwgZGVzdHJveSBpdCB3aGVuIGZpbGxlZFxuIiksCisJCSAgICAgUE5PKHApLCBxLT5zdGFydCk7CisJCXJldHVybiAwOworCSAgICB9CisKKyAgICAvKiBEbyB0aGV5IHN0YXJ0IHBhc3QgemVybyBhbmQgZW5kIGJlZm9yZSBlbmQtb2YtZGlzaz8gKi8KKyAgICB7IHVuc2lnbmVkIGxvbmcgZHMgPSBnZXRfZGlza3NpemUoRl9TRUNUT1IpOworICAgIGZvciAocCA9IHBhcnRpdGlvbnM7IHAgPCBwYXJ0aXRpb25zK3BhcnRubzsgcCsrKQorICAgICAgaWYgKHAtPnNpemUpIHsKKwkgIGlmIChwLT5zdGFydCA9PSAwKSB7CisJICAgICAgd2FybihfKCJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgc3RhcnRzIGF0IHNlY3RvciAwXG4iKSwgUE5PKHApKTsKKwkgICAgICByZXR1cm4gMDsKKwkgIH0KKwkgIGlmIChwLT5zaXplICYmIHAtPnN0YXJ0ICsgcC0+c2l6ZSA+IGRzKSB7CisJICAgICAgd2FybihfKCJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iKSwKKwkJICAgUE5PKHApKTsKKwkgICAgICByZXR1cm4gMDsKKwkgIH0KKyAgICAgIH0KKyAgICB9CisKKyAgICAvKiBBdCBtb3N0IG9uZSBjaGFpbiBvZiBET1MgZXh0ZW5kZWQgcGFydGl0aW9ucyA/ICovCisgICAgLyogSXQgc2VlbXMgdGhhdCB0aGUgT1MvMiBmZGlzayBoYXMgdGhlIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQKKyAgICAgICB0aGF0IHRoZSBleHRlbmRlZCBwYXJ0aXRpb24gbXVzdCBiZSB0aGUgZm91cnRoIG9uZSAqLworICAgIHsgaW50IGVjdCA9IDA7CisgICAgICBmb3IgKHAgPSBwYXJ0aXRpb25zOyBwIDwgcGFydGl0aW9ucys0OyBwKyspCisJaWYgKHAtPnAuc3lzX3R5cGUgPT0gRVhURU5ERURfUEFSVElUSU9OKQorCSAgZWN0Kys7CisgICAgICBpZiAoZWN0ID4gMSAmJiAhTGludXgpIHsKKwkgIHdhcm4oXygiQW1vbmcgdGhlIHByaW1hcnkgcGFydGl0aW9ucywgYXQgbW9zdCBvbmUgY2FuIGJlIGV4dGVuZGVkXG4iCisJCSAiIChhbHRob3VnaCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gdW5kZXIgTGludXgpXG4iKSk7CisJICByZXR1cm4gMDsKKyAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIERvIGFsbCBwYXJ0aXRpb25zIHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnkgPworICAgICAqICh0aGlzIGlzIG5vdCByZXF1aXJlZCBmb3IgTGludXgpCisgICAgICogVGhlIGZpcnN0IHBhcnRpdGlvbiBzdGFydHMgYWZ0ZXIgTUJSLgorICAgICAqIExvZ2ljYWwgcGFydGl0aW9ucyBzdGFydCBzbGlnaHRseSBhZnRlciB0aGUgY29udGFpbmluZyBleHRlbmRlZCBwYXJ0bi4KKyAgICAgKi8KKyAgICBpZiAoQi5jeWxpbmRlcnNpemUpIHsKKwlmb3IocCA9IHBhcnRpdGlvbnM7IHAgPCBwYXJ0aXRpb25zK3BhcnRubzsgcCsrKQorCSAgaWYgKHAtPnNpemUpIHsKKwkgICAgICBpZiAocC0+c3RhcnQgJSBCLmN5bGluZGVyc2l6ZSAhPSAwCisJCSAmJiAoIXAtPmVwIHx8IHAtPnN0YXJ0IC8gQi5jeWxpbmRlcnNpemUgIT0gcC0+ZXAtPnN0YXJ0IC8gQi5jeWxpbmRlcnNpemUpCisJCSAmJiAocC0+cC5zdGFydF9zZWN0ID49IEIuY3lsaW5kZXJzaXplKSkgeworCQkgIHdhcm4oXygiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IHN0YXJ0ICIKKwkJICAgICAgICJhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iKSwgUE5PKHApKTsKKwkJICBpZiAoIUxpbnV4KQorCQkgICAgcmV0dXJuIDA7CisJICAgICAgfQorCSAgICAgIGlmICgocC0+c3RhcnQgKyBwLT5zaXplKSAlIEIuY3lsaW5kZXJzaXplKSB7CisJCSAgd2FybihfKCJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3QgZW5kICIKKwkJICAgICAgICJhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iKSwgUE5PKHApKTsKKwkJICBpZiAoIUxpbnV4KQorCQkgICAgcmV0dXJuIDA7CisJICAgICAgfQorCSAgfQorICAgIH0KKworICAgIC8qIFVzdWFsbHksIG9uZSBjYW4gYm9vdCBvbmx5IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zLiAqLworICAgIC8qIEluIGZhY3QsIGZyb20gYSB1bmlxdWUgb25lIG9ubHkuICovCisgICAgLyogZG8gbm90IHdhcm4gYWJvdXQgYm9vdGFibGUgZXh0ZW5kZWQgcGFydGl0aW9ucyAtCisgICAgICAgb2Z0ZW4gTElMTyBpcyB0aGVyZSAqLworICAgIHsgaW50IHBubyA9IC0xOworICAgIGZvcihwID0gcGFydGl0aW9uczsgcCA8IHBhcnRpdGlvbnMrcGFydG5vOyBwKyspCisgICAgICBpZiAocC0+cC5ib290YWJsZSkgeworCSAgaWYgKHBubyA9PSAtMSkKKwkgICAgcG5vID0gcCAtIHBhcnRpdGlvbnM7CisJICBlbHNlIGlmIChwIC0gcGFydGl0aW9ucyA8IDQpIHsKKwkgICAgICB3YXJuKF8oIldhcm5pbmc6IG1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkICIKKwkJICAgImJvb3RhYmxlIChhY3RpdmUpXG4iCisJCSAgICJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgIgorCQkgICAibm90IGJvb3QgdGhpcyBkaXNrLlxuIikpOworCSAgICAgIGJyZWFrOworCSAgfQorCSAgaWYgKHAgLSBwYXJ0aXRpb25zID49IDQpIHsKKwkgICAgICB3YXJuKF8oIldhcm5pbmc6IHVzdWFsbHkgb25lIGNhbiBib290IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zICIKKwkJICAgIm9ubHlcbkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIikpOworCSAgICAgIGJyZWFrOworCSAgfQorICAgICAgfQorICAgICAgaWYgKHBubyA9PSAtMSB8fCBwbm8gPj0gNCkKKwl3YXJuKF8oIldhcm5pbmc6IG5vIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorCSAgICAgIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCAiCisJICAgICAibm90IGJvb3QgdGhpcyBkaXNrLlxuIikpOworICAgIH0KKworICAgIC8qIElzIGNocyBhcyB3ZSBleHBlY3Q/ICovCisgICAgZm9yKHAgPSBwYXJ0aXRpb25zOyBwIDwgcGFydGl0aW9ucytwYXJ0bm87IHArKykKKyAgICAgIGlmIChwLT5wdHlwZSA9PSBET1NfVFlQRSkgeworCWNocyBhLCBiOworCWxvbmdjaHMgYWEsIGJiOworCWEgPSBwLT5zaXplID8gdWxvbmdfdG9fY2hzKHAtPnN0YXJ0LEIpIDogemVyb19jaHM7CisJYiA9IHAtPnAuYmVnaW5fY2hzOworCWFhID0gY2hzX3RvX2xvbmdjaHMoYSk7CisJYmIgPSBjaHNfdG9fbG9uZ2NocyhiKTsKKwlpZiAoIWNoc19vayhiLCBQTk8ocCksIF8oInN0YXJ0IikpKQorCSAgcmV0dXJuIDA7CisJaWYgKGEucyAmJiAhaXNfZXF1YWxfY2hzKGEsIGIpKQorCSAgd2FybihfKCJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIiksCisJICAgICAgIFBOTyhwKSwgYWEuYywgYWEuaCwgYWEucywgYmIuYywgYmIuaCwgYmIucyk7CisJYSA9IHAtPnNpemUgPyB1bG9uZ190b19jaHMocC0+c3RhcnQgKyBwLT5zaXplIC0gMSwgQikgOiB6ZXJvX2NoczsKKwliID0gcC0+cC5lbmRfY2hzOworCWFhID0gY2hzX3RvX2xvbmdjaHMoYSk7CisJYmIgPSBjaHNfdG9fbG9uZ2NocyhiKTsKKwlpZiAoIWNoc19vayhiLCBQTk8ocCksIF8oImVuZCIpKSkKKwkgIHJldHVybiAwOworCWlmIChhLnMgJiYgIWlzX2VxdWFsX2NocyhhLCBiKSkKKwkgIHdhcm4oXygicGFydGl0aW9uICVzOiBlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iKSwKKwkgICAgICAgUE5PKHApLCBhYS5jLCBhYS5oLCBhYS5zLCBiYi5jLCBiYi5oLCBiYi5zKTsKKwlpZiAoQi5jeWxpbmRlcnMgJiYgQi5jeWxpbmRlcnMgPCAxMDI0ICYmIGJiLmMgPiBCLmN5bGluZGVycykKKwkgIHdhcm4oXygicGFydGl0aW9uICVzIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIiksCisJICAgICAgIFBOTyhwKSwgYmIuYyk7CisgICAgfQorCisgICAgcmV0dXJuIDE7CisKKyN1bmRlZiBQTk8KK30KKworc3RhdGljIHZvaWQKK2V4dGVuZGVkX3BhcnRpdGlvbihjaGFyICpkZXYsIGludCBmZCwgc3RydWN0IHBhcnRfZGVzYyAqZXAsIHN0cnVjdCBkaXNrX2Rlc2MgKnopIHsKKyAgICBjaGFyICpjcDsKKyAgICBzdHJ1Y3Qgc2VjdG9yICpzOworICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIGhlcmUsIG5leHQ7CisgICAgaW50IGksIG1vcmV0b2RvID0gMTsKKyAgICBzdHJ1Y3QgcGFydGl0aW9uIHA7CisgICAgc3RydWN0IHBhcnRfZGVzYyAqcGFydGl0aW9ucyA9ICYoei0+cGFydGl0aW9uc1swXSk7CisgICAgaW50IHBubyA9IHotPnBhcnRubzsKKworICAgIGhlcmUgPSBzdGFydCA9IGVwLT5zdGFydDsKKworICAgIGlmIChCLmN5bGluZGVyc2l6ZSAmJiBzdGFydCAlIEIuY3lsaW5kZXJzaXplKSB7CisJLyogVGhpcyBpcyBCQUQgKi8KKwlpZiAoRE9TX2V4dGVuZGVkKSB7CisJICAgIGhlcmUgPSBzdGFydCAtPSAoc3RhcnQgJSBCLmN5bGluZGVyc2l6ZSk7CisJICAgIGRvX3dhcm4oXygiV2FybmluZzogc2hpZnRlZCBzdGFydCBvZiB0aGUgZXh0ZCBwYXJ0aXRpb24gIgorCQkgICAgICJmcm9tICVsZCB0byAlbGRcbiIKKwkJICAgICAiKEZvciBsaXN0aW5nIHB1cnBvc2VzIG9ubHkuICIKKwkJICAgICAiRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIiksCisJCSAgIGVwLT5zdGFydCwgc3RhcnQpOworCX0gZWxzZSB7CisJICAgIGRvX3dhcm4oXygiV2FybmluZzogZXh0ZW5kZWQgcGFydGl0aW9uIGRvZXMgbm90IHN0YXJ0IGF0IGEgIgorCQkgICAgICJjeWxpbmRlciBib3VuZGFyeS5cbiIKKwkJICAgICAiRE9TIGFuZCBMaW51eCB3aWxsIGludGVycHJldCB0aGUgY29udGVudHMgZGlmZmVyZW50bHkuXG4iKSk7CisJfQorICAgIH0KKworICAgIHdoaWxlIChtb3JldG9kbykgeworCW1vcmV0b2RvID0gMDsKKworCWlmICghKHMgPSBnZXRfc2VjdG9yKGRldiwgZmQsIGhlcmUpKSkKKwkgICAgYnJlYWs7CisKKwlpZiAoIW1zZG9zX3NpZ25hdHVyZShzKSkKKwkgICAgYnJlYWs7CisKKwljcCA9IHMtPmRhdGEgKyAweDFiZTsKKworCWlmIChwbm8rNCA+PSBBUlJBWV9TSVpFKHotPnBhcnRpdGlvbnMpKSB7CisJICAgIGRvX3dhcm4oXygidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIiksCisJCSAgIHBuby0xKTsKKwkgICAgYnJlYWs7CisJfQorCisJbmV4dCA9IDA7CisKKwlmb3IgKGk9MDsgaTw0OyBpKyssY3AgKz0gc2l6ZW9mKHN0cnVjdCBwYXJ0aXRpb24pKSB7CisJICAgIHBhcnRpdGlvbnNbcG5vXS5zZWN0b3IgPSBoZXJlOworCSAgICBwYXJ0aXRpb25zW3Bub10ub2Zmc2V0ID0gY3AgLSBzLT5kYXRhOworCSAgICBwYXJ0aXRpb25zW3Bub10uZXAgPSBlcDsKKwkgICAgY29weV90b19wYXJ0KGNwLCZwKTsKKwkgICAgaWYgKGlzX2V4dGVuZGVkKHAuc3lzX3R5cGUpKSB7CisJCXBhcnRpdGlvbnNbcG5vXS5zdGFydCA9IHN0YXJ0ICsgcC5zdGFydF9zZWN0OworCQlpZiAobmV4dCkKKwkJICBkb193YXJuKF8oInRyZWUgb2YgcGFydGl0aW9ucz9cbiIpKTsKKwkJZWxzZQorCQkgIG5leHQgPSBwYXJ0aXRpb25zW3Bub10uc3RhcnQ7CQkvKiBmb2xsb3cgYHVwcGVyJyBicmFuY2ggKi8KKwkJbW9yZXRvZG8gPSAxOworCSAgICB9IGVsc2UgeworCQlwYXJ0aXRpb25zW3Bub10uc3RhcnQgPSBoZXJlICsgcC5zdGFydF9zZWN0OworCSAgICB9CisJICAgIHBhcnRpdGlvbnNbcG5vXS5zaXplID0gcC5ucl9zZWN0czsKKwkgICAgcGFydGl0aW9uc1twbm9dLnB0eXBlID0gRE9TX1RZUEU7CisJICAgIHBhcnRpdGlvbnNbcG5vXS5wID0gcDsKKwkgICAgcG5vKys7CisJfQorCWhlcmUgPSBuZXh0OworICAgIH0KKworICAgIHotPnBhcnRubyA9IHBubzsKK30KKworI2RlZmluZSBCU0RfRElTS01BR0lDICAgKDB4ODI1NjQ1NTdVTCkKKyNkZWZpbmUgQlNEX01BWFBBUlRJVElPTlMgICAgICAgMTYKKyNkZWZpbmUgQlNEX0ZTX1VOVVNFRAkgICAwCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdTg7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHUxNjsKK3R5cGVkZWYgdW5zaWduZWQgaW50IHUzMjsKK3N0cnVjdCBic2RfZGlza2xhYmVsIHsKKwl1MzIJZF9tYWdpYzsKKwljaGFyCWRfanVuazFbNF07CisJY2hhciAgICBkX3R5cGVuYW1lWzE2XTsKKwljaGFyICAgIGRfcGFja25hbWVbMTZdOworCWNoYXIJZF9qdW5rMls5Ml07CisJdTMyCWRfbWFnaWMyOworCWNoYXIJZF9qdW5rM1syXTsKKwl1MTYJZF9ucGFydGl0aW9uczsgICAgICAgICAgLyogbnVtYmVyIG9mIHBhcnRpdGlvbnMgaW4gZm9sbG93aW5nICovCisJY2hhcglkX2p1bms0WzhdOworICAgICBzdHJ1Y3QgIGJzZF9wYXJ0aXRpb24geyAgICAgICAgIC8qIHRoZSBwYXJ0aXRpb24gdGFibGUgKi8KKyAgICAgICAgICAgICAgICB1MzIgICBwX3NpemU7ICAgICAgICAgLyogbnVtYmVyIG9mIHNlY3RvcnMgaW4gcGFydGl0aW9uICovCisgICAgICAgICAgICAgICAgdTMyICAgcF9vZmZzZXQ7ICAgICAgIC8qIHN0YXJ0aW5nIHNlY3RvciAqLworICAgICAgICAgICAgICAgIHUzMiAgIHBfZnNpemU7ICAgICAgICAvKiBmaWxlc3lzdGVtIGJhc2ljIGZyYWdtZW50IHNpemUgKi8KKyAgICAgICAgICAgICAgICB1OCAgICBwX2ZzdHlwZTsgICAgICAgLyogZmlsZXN5c3RlbSB0eXBlLCBzZWUgYmVsb3cgKi8KKyAgICAgICAgICAgICAgICB1OCAgICBwX2ZyYWc7ICAgICAgICAgLyogZmlsZXN5c3RlbSBmcmFnbWVudHMgcGVyIGJsb2NrICovCisgICAgICAgICAgICAgICAgdTE2ICAgcF9jcGc7ICAgICAgICAgIC8qIGZpbGVzeXN0ZW0gY3lsaW5kZXJzIHBlciBncm91cCAqLworICAgICB9IGRfcGFydGl0aW9uc1tCU0RfTUFYUEFSVElUSU9OU107ICAgICAgLyogYWN0dWFsbHkgbWF5IGJlIG1vcmUgKi8KK307CisKK3N0YXRpYyB2b2lkCitic2RfcGFydGl0aW9uKGNoYXIgKmRldiwgaW50IGZkLCBzdHJ1Y3QgcGFydF9kZXNjICplcCwgc3RydWN0IGRpc2tfZGVzYyAqeikgeworCXN0cnVjdCBic2RfZGlza2xhYmVsICpsOworCXN0cnVjdCBic2RfcGFydGl0aW9uICpicCwgKmJwMDsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gZXAtPnN0YXJ0OworCXN0cnVjdCBzZWN0b3IgKnM7CisJc3RydWN0IHBhcnRfZGVzYyAqcGFydGl0aW9ucyA9ICYoei0+cGFydGl0aW9uc1swXSk7CisJaW50IHBubyA9IHotPnBhcnRubzsKKworCWlmICghKHMgPSBnZXRfc2VjdG9yKGRldixmZCxzdGFydCsxKSkpCisJCXJldHVybjsKKwlsID0gKHN0cnVjdCBic2RfZGlza2xhYmVsICopIChzLT5kYXRhKTsKKwlpZiAobC0+ZF9tYWdpYyAhPSBCU0RfRElTS01BR0lDIHx8IGwtPmRfbWFnaWMyICE9IEJTRF9ESVNLTUFHSUMpCisJCXJldHVybjsKKworCWJwID0gYnAwID0gJmwtPmRfcGFydGl0aW9uc1swXTsKKwl3aGlsZSAoYnAgLSBicDAgPCBCU0RfTUFYUEFSVElUSU9OUyAmJiBicCAtIGJwMCA8IGwtPmRfbnBhcnRpdGlvbnMpIHsKKwkJaWYgKHBubysxID49IEFSUkFZX1NJWkUoei0+cGFydGl0aW9ucykpIHsKKwkJCWRvX3dhcm4oXygidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlICIKKwkJCSAgICAgICAicGFzdCBuciAoJWQpXG4iKSwgcG5vLTEpOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKGJwLT5wX2ZzdHlwZSAhPSBCU0RfRlNfVU5VU0VEKSB7CisJCQlwYXJ0aXRpb25zW3Bub10uc3RhcnQgPSBicC0+cF9vZmZzZXQ7CisJCQlwYXJ0aXRpb25zW3Bub10uc2l6ZSA9IGJwLT5wX3NpemU7CisJCQlwYXJ0aXRpb25zW3Bub10uc2VjdG9yID0gc3RhcnQrMTsKKwkJCXBhcnRpdGlvbnNbcG5vXS5vZmZzZXQgPSAoY2hhciAqKWJwIC0gKGNoYXIgKilicDA7CisJCQlwYXJ0aXRpb25zW3Bub10uZXAgPSAwOworCQkJcGFydGl0aW9uc1twbm9dLnB0eXBlID0gQlNEX1RZUEU7CisJCQlwbm8rKzsKKwkJfQorCQlicCsrOworCX0KKwl6LT5wYXJ0bm8gPSBwbm87Cit9CisKK3N0YXRpYyBpbnQKK21zZG9zX3BhcnRpdGlvbihjaGFyICpkZXYsIGludCBmZCwgdW5zaWduZWQgbG9uZyBzdGFydCwgc3RydWN0IGRpc2tfZGVzYyAqeikgeworICAgIGludCBpOworICAgIGNoYXIgKmNwOworICAgIHN0cnVjdCBwYXJ0aXRpb24gcHQ7CisgICAgc3RydWN0IHNlY3RvciAqczsKKyAgICBzdHJ1Y3QgcGFydF9kZXNjICpwYXJ0aXRpb25zID0gJih6LT5wYXJ0aXRpb25zWzBdKTsKKyAgICBpbnQgcG5vID0gei0+cGFydG5vOworICAgIGludCBic2RfbGF0ZXIgPSAxOworI2lmZGVmIF9fbGludXhfXworICAgIGJzZF9sYXRlciA9IChnZXRfbGludXhfdmVyc2lvbigpID49IEtFUk5FTF9WRVJTSU9OKDIsMyw0MCkpOworI2VuZGlmCisKKyAgICBpZiAoIShzID0gZ2V0X3NlY3RvcihkZXYsIGZkLCBzdGFydCkpKQorCXJldHVybiAwOworCisgICAgaWYgKCFtc2Rvc19zaWduYXR1cmUocykpCisJcmV0dXJuIDA7CisKKyAgICBjcCA9IHMtPmRhdGEgKyAweDFiZTsKKyAgICBjb3B5X3RvX3BhcnQoY3AsJnB0KTsKKworICAgIC8qIElmIEkgYW0gbm90IG1pc3Rha2VuLCByZWNlbnQga2VybmVscyB3aWxsIGhpZGUgdGhpcyBmcm9tIHVzLAorCSAgIHNvIHdlIHdpbGwgbmV2ZXIgYWN0dWFsbHkgc2VlIHRyYWNlcyBvZiBhIERpc2sgTWFuYWdlciAqLworICAgIGlmIChwdC5zeXNfdHlwZSA9PSBETTZfUEFSVElUSU9OCisJfHwgcHQuc3lzX3R5cGUgPT0gRVpEX1BBUlRJVElPTgorCXx8IHB0LnN5c190eXBlID09IERNNl9BVVgxUEFSVElUSU9OCisJfHwgcHQuc3lzX3R5cGUgPT0gRE02X0FVWDNQQVJUSVRJT04pIHsKKwlkb193YXJuKF8oImRldGVjdGVkIERpc2sgTWFuYWdlciAtIHVuYWJsZSB0byBoYW5kbGUgdGhhdFxuIikpOworCXJldHVybiAwOworICAgIH0KKyAgICB7IHVuc2lnbmVkIGludCBzaWcgPSAqKHVuc2lnbmVkIHNob3J0ICopKHMtPmRhdGEgKyAyKTsKKyAgICAgIGlmIChzaWcgPD0gMHgxYWUKKwkgICYmICoodW5zaWduZWQgc2hvcnQgKikocy0+ZGF0YSArIHNpZykgPT0gMHg1NWFhCisJICAmJiAoMSAmICoodW5zaWduZWQgY2hhciAqKShzLT5kYXRhICsgc2lnICsgMikpKSB7CisJICBkb193YXJuKF8oIkRNNiBzaWduYXR1cmUgZm91bmQgLSBnaXZpbmcgdXBcbiIpKTsKKwkgIHJldHVybiAwOworICAgICAgfQorICAgIH0KKworICAgIGZvciAocG5vPTA7IHBubzw0OyBwbm8rKyxjcCArPSBzaXplb2Yoc3RydWN0IHBhcnRpdGlvbikpIHsKKwlwYXJ0aXRpb25zW3Bub10uc2VjdG9yID0gc3RhcnQ7CisJcGFydGl0aW9uc1twbm9dLm9mZnNldCA9IGNwIC0gcy0+ZGF0YTsKKwljb3B5X3RvX3BhcnQoY3AsJnB0KTsKKwlwYXJ0aXRpb25zW3Bub10uc3RhcnQgPSBzdGFydCArIHB0LnN0YXJ0X3NlY3Q7CisJcGFydGl0aW9uc1twbm9dLnNpemUgPSBwdC5ucl9zZWN0czsKKwlwYXJ0aXRpb25zW3Bub10uZXAgPSAwOworCXBhcnRpdGlvbnNbcG5vXS5wID0gcHQ7CisgICAgfQorCisgICAgei0+cGFydG5vID0gcG5vOworCisgICAgZm9yIChpPTA7IGk8NDsgaSsrKSB7CisJaWYgKGlzX2V4dGVuZGVkKHBhcnRpdGlvbnNbaV0ucC5zeXNfdHlwZSkpIHsKKwkgICAgaWYgKCFwYXJ0aXRpb25zW2ldLnNpemUpIHsKKwkJZG9fd2FybihfKCJzdHJhbmdlLi4uLCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIikpOworCQljb250aW51ZTsKKwkgICAgfQorCSAgICBleHRlbmRlZF9wYXJ0aXRpb24oZGV2LCBmZCwgJnBhcnRpdGlvbnNbaV0sIHopOworCX0KKwlpZiAoIWJzZF9sYXRlciAmJiBpc19ic2QocGFydGl0aW9uc1tpXS5wLnN5c190eXBlKSkgeworCSAgICBpZiAoIXBhcnRpdGlvbnNbaV0uc2l6ZSkgeworCQlkb193YXJuKF8oInN0cmFuZ2UuLi4sIGEgQlNEIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iKSk7CisJCWNvbnRpbnVlOworCSAgICB9CisJICAgIGJzZF9wYXJ0aXRpb24oZGV2LCBmZCwgJnBhcnRpdGlvbnNbaV0sIHopOworCX0KKyAgICB9CisKKyAgICBpZiAoYnNkX2xhdGVyKSB7CisJZm9yIChpPTA7IGk8NDsgaSsrKSB7CisJICAgIGlmIChpc19ic2QocGFydGl0aW9uc1tpXS5wLnN5c190eXBlKSkgeworCQlpZiAoIXBhcnRpdGlvbnNbaV0uc2l6ZSkgeworCQkgICAgZG9fd2FybihfKCJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIikpOworCQkgICAgY29udGludWU7CisJCX0KKwkJYnNkX3BhcnRpdGlvbihkZXYsIGZkLCAmcGFydGl0aW9uc1tpXSwgeik7CisJICAgIH0KKwl9CisgICAgfQorCisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK29zZl9wYXJ0aXRpb24oY2hhciAqZGV2LCBpbnQgZmQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHN0cnVjdCBkaXNrX2Rlc2MgKnopIHsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorc3VuX3BhcnRpdGlvbihjaGFyICpkZXYsIGludCBmZCwgdW5zaWduZWQgbG9uZyBzdGFydCwgc3RydWN0IGRpc2tfZGVzYyAqeikgeworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CithbWlnYV9wYXJ0aXRpb24oY2hhciAqZGV2LCBpbnQgZmQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHN0cnVjdCBkaXNrX2Rlc2MgKnopIHsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2dldF9wYXJ0aXRpb25zKGNoYXIgKmRldiwgaW50IGZkLCBzdHJ1Y3QgZGlza19kZXNjICp6KSB7CisgICAgei0+cGFydG5vID0gMDsKKworICAgIGlmICghbXNkb3NfcGFydGl0aW9uKGRldiwgZmQsIDAsIHopCisJJiYgIW9zZl9wYXJ0aXRpb24oZGV2LCBmZCwgMCwgeikKKwkmJiAhc3VuX3BhcnRpdGlvbihkZXYsIGZkLCAwLCB6KQorCSYmICFhbWlnYV9wYXJ0aXRpb24oZGV2LCBmZCwgMCwgeikpIHsKKwlkb193YXJuKF8oIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iKSwgZGV2KTsKKwlyZXR1cm47CisgICAgfQorfQorCitzdGF0aWMgaW50Cit3cml0ZV9wYXJ0aXRpb25zKGNoYXIgKmRldiwgaW50IGZkLCBzdHJ1Y3QgZGlza19kZXNjICp6KSB7CisgICAgc3RydWN0IHNlY3RvciAqczsKKyAgICBzdHJ1Y3QgcGFydF9kZXNjICpwYXJ0aXRpb25zID0gJih6LT5wYXJ0aXRpb25zWzBdKSwgKnA7CisgICAgaW50IHBubyA9IHotPnBhcnRubzsKKworICAgIGlmIChub193cml0ZSkgeworCWRvX3dhcm4oXygiLW4gZmxhZyB3YXMgZ2l2ZW46IE5vdGhpbmcgY2hhbmdlZFxuIikpOworCWV4aXQoMCk7CisgICAgfQorCisgICAgZm9yIChwID0gcGFydGl0aW9uczsgcCA8IHBhcnRpdGlvbnMrcG5vOyBwKyspIHsKKwlzID0gZ2V0X3NlY3RvcihkZXYsIGZkLCBwLT5zZWN0b3IpOworCWlmICghcykgcmV0dXJuIDA7CisJcy0+dG9fYmVfd3JpdHRlbiA9IDE7CisJaWYgKHAtPnB0eXBlID09IERPU19UWVBFKSB7CisJICAgIGNvcHlfZnJvbV9wYXJ0KCYocC0+cCksIHMtPmRhdGEgKyBwLT5vZmZzZXQpOworCSAgICBzLT5kYXRhWzUxMF0gPSAweDU1OworCSAgICBzLT5kYXRhWzUxMV0gPSAweGFhOworCX0KKyAgICB9CisgICAgaWYgKHNhdmVfc2VjdG9yX2ZpbGUpIHsKKwlpZiAoIXNhdmVfc2VjdG9ycyhkZXYsIGZkKSkgeworCSAgICBmYXRhbChfKCJGYWlsZWQgc2F2aW5nIHRoZSBvbGQgc2VjdG9ycyAtIGFib3J0aW5nXG4iKSk7CisJICAgIHJldHVybiAwOworCX0KKyAgICB9CisgICAgaWYgKCF3cml0ZV9zZWN0b3JzKGRldiwgZmQpKSB7CisJZXJyb3IoXygiRmFpbGVkIHdyaXRpbmcgdGhlIHBhcnRpdGlvbiBvbiAlc1xuIiksIGRldik7CisJcmV0dXJuIDA7CisgICAgfQorICAgIGlmIChmc3luYyhmZCkpIHsKKwlwZXJyb3IoZGV2KTsKKwllcnJvcihfKCJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iKSwgZGV2KTsKKwlyZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisKKy8qCisgKiAgRi4gVGhlIHN0YW5kYXJkIGlucHV0CisgKi8KKworLyoKKyAqIElucHV0IGZvcm1hdDoKKyAqIDxzdGFydD4gPHNpemU+IDx0eXBlPiA8Ym9vdGFibGU+IDxjLGgscz4gPGMsaCxzPgorICogRmllbGRzIGFyZSBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZSBvciBjb21tYSBvciBzZW1pY29sb24gcG9zc2libHkKKyAqIGZvbGxvd2VkIGJ5IHdoaXRlc3BhY2U7IGluaXRpYWwgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgaXMgaWdub3JlZC4KKyAqIE51bWJlcnMgY2FuIGJlIG9jdGFsLCBkZWNpbWFsIG9yIGhleGFkZWNpbWFsLCBkZWNpbWFsIGlzIGRlZmF1bHQKKyAqIFRoZSA8YyxoLHM+IHBhcnRzIGNhbiAoYW5kIHByb2JhYmx5IHNob3VsZCkgYmUgb21pdHRlZC4KKyAqIEJvb3RhYmxlIGlzIHNwZWNpZmllZCBhcyBbKnwtXSwgd2l0aCBhcyBkZWZhdWx0IG5vdC1ib290YWJsZS4KKyAqIFR5cGUgaXMgZ2l2ZW4gaW4gaGV4LCB3aXRob3V0IHRoZSAweCBwcmVmaXgsIG9yIGlzIFtFfFN8THxYXSwgd2hlcmUKKyAqIEwgKExJTlVYX05BVElWRSAoODMpKSBpcyB0aGUgZGVmYXVsdCwgUyBpcyBMSU5VWF9TV0FQICg4MiksIGFuZCBFCisgKiBpcyBFWFRFTkRFRF9QQVJUSVRJT04gKDUpLCBYIGlzIExJTlVYX0VYVEVOREVEICg4NSkuCisgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiBzdGFydCBpcyB0aGUgZmlyc3Qgbm9uYXNzaWduZWQgc2VjdG9yL2N5bGluZGVyLy4uLgorICogVGhlIGRlZmF1bHQgdmFsdWUgb2Ygc2l6ZSBpcyBhcyBtdWNoIGFzIHBvc3NpYmxlICh1bnRpbCBuZXh0CisgKiBwYXJ0aXRpb24gb3IgZW5kLW9mLWRpc2spLgorICogLjogZW5kIG9mIGNoYWluIG9mIGV4dGVuZGVkIHBhcnRpdGlvbnMuCisgKgorICogT24gaW50ZXJhY3RpdmUgaW5wdXQgYW4gZW1wdHkgbGluZSBtZWFuczogYWxsIGRlZmF1bHRzLgorICogT3RoZXJ3aXNlIGVtcHR5IGxpbmVzIGFyZSBpZ25vcmVkLgorICovCisKK2ludCBlb2YsIGVvYjsKKworc3RydWN0IGR1bXBmbGQgeworICAgIGludCBmbGRubzsKKyAgICBjaGFyICpmbGRuYW1lOworICAgIGludCBpc19ib29sOworfSBkdW1wZmxkc1tdID0geworICAgIHsgMCwgInN0YXJ0IiwgMCB9LAorICAgIHsgMSwgInNpemUiLCAwIH0sCisgICAgeyAyLCAiSWQiLCAwIH0sCisgICAgeyAzLCAiYm9vdGFibGUiLCAxIH0sCisgICAgeyA0LCAiYmgiLCAwIH0sCisgICAgeyA1LCAiYnMiLCAwIH0sCisgICAgeyA2LCAiYmMiLCAwIH0sCisgICAgeyA3LCAiZWgiLCAwIH0sCisgICAgeyA4LCAiZXMiLCAwIH0sCisgICAgeyA5LCAiZWMiLCAwIH0KK307CisKKy8qCisgKiBSZWFkIGEgbGluZSwgc3BsaXQgaXQgaW50byBmaWVsZHMKKyAqCisgKiAoc29tZSBwcmltaXRpdmUgaGFuZHdvcmssIGJ1dCBhIG1vcmUgZWxhYm9yYXRlIHBhcnNlciBzZWVtcworICogIHVubmVjZXNzYXJ5KQorICovCisjZGVmaW5lIFJEX0VPRiAoLTEpCisjZGVmaW5lIFJEX0NNRCAoLTIpCisKK3N0YXRpYyBpbnQKK3JlYWRfc3RkaW4oY2hhciAqKmZpZWxkcywgY2hhciAqbGluZSwgaW50IGZpZWxkc3NpemUsIGludCBsaW5lc2l6ZSkgeworICAgIGNoYXIgKmxwLCAqaXA7CisgICAgaW50IGMsIGZubzsKKworICAgIC8qIGJvb2xlYW4gdHJ1ZSBhbmQgZW1wdHkgc3RyaW5nIGF0IHN0YXJ0ICovCisgICAgbGluZVswXSA9ICcqJzsKKyAgICBsaW5lWzFdID0gMDsKKyAgICBmb3IgKGZubz0wOyBmbm8gPCBmaWVsZHNzaXplOyBmbm8rKykKKyAgICAgIGZpZWxkc1tmbm9dID0gbGluZSArIDE7CisgICAgZm5vID0gMDsKKworICAgIC8qIHJlYWQgYSBsaW5lIGZyb20gc3RkaW4gKi8KKyAgICBscCA9IGZnZXRzKGxpbmUrMiwgbGluZXNpemUtMiwgc3RkaW4pOworICAgIGlmIChscCA9PSBOVUxMKSB7CisJZW9mID0gMTsKKwlyZXR1cm4gUkRfRU9GOworICAgIH0KKyAgICBpZiAoIShscCA9IHN0cmNocihscCwgJ1xuJykpKQorICAgICAgZmF0YWwoXygibG9uZyBvciBpbmNvbXBsZXRlIGlucHV0IGxpbmUgLSBxdWl0dGluZ1xuIikpOworICAgICpscCA9IDA7CisKKyAgICAvKiByZW1vdmUgY29tbWVudHMsIGlmIGFueSAqLworICAgIGlmICgobHAgPSBzdHJjaHIobGluZSsyLCAnIycpKSAhPSAwKQorICAgICAgKmxwID0gMDsKKworICAgIC8qIHJlY29nbml6ZSBhIGZldyBjb21tYW5kcyAtIHRvIGJlIGV4cGFuZGVkICovCisgICAgaWYgKCFzdHJjbXAobGluZSsyLCAidW5pdDogc2VjdG9ycyIpKSB7CisJc3BlY2lmaWVkX2Zvcm1hdCA9IEZfU0VDVE9SOworCXJldHVybiBSRF9DTUQ7CisgICAgfQorCisgICAgLyogZHVtcCBzdHlsZT8gLSB0aGVuIGJhZCBpbnB1dCBpcyBmYXRhbCAqLworICAgIGlmICgoaXAgPSBzdHJjaHIobGluZSsyLCAnOicpKSAhPSAwKSB7CisJc3RydWN0IGR1bXBmbGQgKmQ7CisKKyAgICAgIG54dGZsZDoKKwkgICAgaXArKzsKKwkgICAgd2hpbGUoaXNzcGFjZSgqaXApKQorCSAgICAgIGlwKys7CisJICAgIGlmICgqaXAgPT0gMCkKKwkgICAgICByZXR1cm4gZm5vOworCSAgICBmb3IoZCA9IGR1bXBmbGRzOyBkLWR1bXBmbGRzIDwgQVJSQVlfU0laRShkdW1wZmxkcyk7IGQrKykgeworCQlpZiAoIXN0cm5jbXAoaXAsIGQtPmZsZG5hbWUsIHN0cmxlbihkLT5mbGRuYW1lKSkpIHsKKwkJICAgIGlwICs9IHN0cmxlbihkLT5mbGRuYW1lKTsKKwkJICAgIHdoaWxlKGlzc3BhY2UoKmlwKSkKKwkJICAgICAgaXArKzsKKwkJICAgIGlmIChkLT5pc19ib29sKQorCQkJZmllbGRzW2QtPmZsZG5vXSA9IGxpbmU7CisJCSAgICBlbHNlIGlmICgqaXAgPT0gJz0nKSB7CisJCQl3aGlsZShpc3NwYWNlKCorK2lwKSkgOworCQkJZmllbGRzW2QtPmZsZG5vXSA9IGlwOworCQkJd2hpbGUoaXNhbG51bSgqaXApKSAJLyogMHgwN0ZGICovCisJCQkgIGlwKys7CisJCSAgICB9IGVsc2UKKwkJICAgICAgZmF0YWwoXygiaW5wdXQgZXJyb3I6IGA9JyBleHBlY3RlZCBhZnRlciAlcyBmaWVsZFxuIiksCisJCQkgICAgZC0+ZmxkbmFtZSk7CisJCSAgICBpZiAoZm5vIDw9IGQtPmZsZG5vKQorCQkgICAgICBmbm8gPSBkLT5mbGRubyArIDE7CisJCSAgICBpZiAoKmlwID09IDApCisJCSAgICAgIHJldHVybiBmbm87CisJCSAgICBpZiAoKmlwICE9ICcsJyAmJiAqaXAgIT0gJzsnKQorCQkgICAgICBmYXRhbChfKCJpbnB1dCBlcnJvcjogdW5leHBlY3RlZCBjaGFyYWN0ZXIgJWMgYWZ0ZXIgJXMgZmllbGRcbiIpLAorCQkJICAgICppcCwgZC0+ZmxkbmFtZSk7CisJCSAgICAqaXAgPSAwOworCQkgICAgZ290byBueHRmbGQ7CisJCX0KKwkgICAgfQorCSAgICBmYXRhbChfKCJ1bnJlY29nbml6ZWQgaW5wdXQ6ICVzXG4iKSwgaXApOworICAgIH0KKworICAgIC8qIHNwbGl0IGxpbmUgaW50byBmaWVsZHMgKi8KKyAgICBscCA9IGlwID0gbGluZSsyOworICAgIGZpZWxkc1tmbm8rK10gPSBscDsKKyAgICB3aGlsZSgoYyA9ICppcCsrKSAhPSAwKSB7CisJaWYgKCFscFstMV0gJiYgKGMgPT0gJ1x0JyB8fCBjID09ICcgJykpCisJICA7CisJZWxzZSBpZiAoYyA9PSAnXHQnIHx8IGMgPT0gJyAnIHx8IGMgPT0gJywnIHx8IGMgPT0gJzsnKSB7CisJICAgICpscCsrID0gMDsKKwkgICAgaWYgKGZubyA8IGZpZWxkc3NpemUpCisJCWZpZWxkc1tmbm8rK10gPSBscDsKKwkgICAgY29udGludWU7CisJfSBlbHNlCisJICAqbHArKyA9IGM7CisgICAgfQorCisgICAgaWYgKGxwID09IGZpZWxkc1tmbm8tMV0pCisgICAgICBmbm8tLTsKKyAgICByZXR1cm4gZm5vOworfQorCisvKiByZWFkIGEgbnVtYmVyLCB1c2UgZGVmYXVsdCBpZiBhYnNlbnQgKi8KKy8qIGEgc2lnbiBnaXZlcyBhbiBvZmZzZXQgZnJvbSB0aGUgZGVmYXVsdCAqLworc3RhdGljIGludAorZ2V0X3VsKGNoYXIgKnUsIHVuc2lnbmVkIGxvbmcgKnVwLCB1bnNpZ25lZCBsb25nIGRlZiwgaW50IGJhc2UpIHsKKyAgICBjaGFyICpudTsKKyAgICBpbnQgc2lnbiA9IDA7CisgICAgdW5zaWduZWQgbG9uZyB2YWw7CisKKyAgICBpZiAoKnUgPT0gJysnKSB7CisJc2lnbiA9IDE7CisJdSsrOworICAgIH0gZWxzZSBpZiAoKnUgPT0gJy0nKSB7CisJc2lnbiA9IC0xOworCXUrKzsKKyAgICB9CisgICAgaWYgKCp1KSB7CisJZXJybm8gPSAwOworCXZhbCA9IHN0cnRvdWwodSwgJm51LCBiYXNlKTsKKwlpZiAoZXJybm8gPT0gRVJBTkdFKSB7CisJICAgIGRvX3dhcm4oXygibnVtYmVyIHRvbyBiaWdcbiIpKTsKKwkgICAgcmV0dXJuIC0xOworCX0KKwlpZiAoKm51KSB7CisJICAgIGRvX3dhcm4oXygidHJhaWxpbmcganVuayBhZnRlciBudW1iZXJcbiIpKTsKKwkgICAgcmV0dXJuIC0xOworCX0KKwlpZiAoc2lnbiA9PSAxKQorCQl2YWwgPSBkZWYgKyB2YWw7CisJZWxzZSBpZiAoc2lnbiA9PSAtMSkKKwkJdmFsID0gZGVmIC0gdmFsOworCSp1cCA9IHZhbDsKKyAgICB9IGVsc2UKKyAgICAgICp1cCA9IGRlZjsKKyAgICByZXR1cm4gMDsKK30KKworLyogVGhlcmUgYXJlIHR3byBjb21tb24gd2F5cyB0byBzdHJ1Y3R1cmUgZXh0ZW5kZWQgcGFydGl0aW9uczoKKyAgIGFzIG5lc3RlZCBib3hlcywgYW5kIGFzIGEgY2hhaW4uIFNvbWV0aW1lcyB0aGUgcGFydGl0aW9ucworICAgbXVzdCBiZSBnaXZlbiBpbiBvcmRlci4gU29tZXRpbWVzIGFsbCBsb2dpY2FsIHBhcnRpdGlvbnMKKyAgIG11c3QgbGllIGluc2lkZSB0aGUgb3V0ZXJtb3N0IGV4dGVuZGVkIHBhcnRpdGlvbi4KK05FU1RFRDogZXZlcnkgcGFydGl0aW9uIGlzIGNvbnRhaW5lZCBpbiB0aGUgc3Vycm91bmRpbmcgcGFydGl0aW9ucworICAgYW5kIGlzIGRpc2pvaW50IGZyb20gYWxsIG90aGVycy4KK0NIQUlORUQ6IGV2ZXJ5IGRhdGEgcGFydGl0aW9uIGlzIGNvbnRhaW5lZCBpbiB0aGUgc3Vycm91bmRpbmcgcGFydGl0aW9ucworICAgYW5kIGRpc2pvaW50IGZyb20gYWxsIG90aGVycywgYnV0IGV4dGVuZGVkIHBhcnRpdGlvbnMgbWF5IGxpZSBvdXRzaWRlCisgICAoaW5zb2ZhciBhcyBhbGxvd2VkIGJ5IGFsbF9sb2dpY2Fsc19pbnNpZGVfb3V0ZXJtb3N0X2V4dGVuZGVkKS4KK09ORVNFQ1RPUjogYWxsIGRhdGEgcGFydGl0aW9ucyBhcmUgbXV0dWFsbHkgZGlzam9pbnQ7IGV4dGVuZGVkIHBhcnRpdGlvbnMKKyAgIGVhY2ggdXNlIG9uZSBzZWN0b3Igb25seSAoZXhjZXB0IHBlcmhhcHMgZm9yIHRoZSBvdXRlcm1vc3Qgb25lKS4KKyovCitpbnQgcGFydGl0aW9uc19pbl9vcmRlciA9IDA7CitpbnQgYWxsX2xvZ2ljYWxzX2luc2lkZV9vdXRlcm1vc3RfZXh0ZW5kZWQgPSAxOworZW51bSB7IE5FU1RFRCwgQ0hBSU5FRCwgT05FU0VDVE9SIH0gYm94ZXMgPSBORVNURUQ7CisKKy8qIGZpbmQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIDxzdGFydD4gLSBhc3N1bWluZyBlbnRpcmUgdW5pdHMgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nCitmaXJzdF9mcmVlKGludCBwbm8sIGludCBpc19leHRlbmRlZCwgc3RydWN0IHBhcnRfZGVzYyAqZXAsIGludCBmb3JtYXQsCisJICAgdW5zaWduZWQgbG9uZyBtaWQsIHN0cnVjdCBkaXNrX2Rlc2MgKnopIHsKKyAgICB1bnNpZ25lZCBsb25nIGZmLCBmZmY7CisgICAgdW5zaWduZWQgbG9uZyB1bml0ID0gdW5pdHNpemUoZm9ybWF0KTsKKyAgICBzdHJ1Y3QgcGFydF9kZXNjICpwYXJ0aXRpb25zID0gJih6LT5wYXJ0aXRpb25zWzBdKSwgKnBwID0gMDsKKworICAgIC8qIGlmIGNvbnRhaW5pbmcgZXAgdW5kZWZpbmVkLCBsb29rIGF0IGl0cyBjb250YWluZXIgKi8KKyAgICBpZiAoZXAgJiYgZXAtPnAuc3lzX3R5cGUgPT0gRU1QVFlfUEFSVElUSU9OKQorICAgICAgZXAgPSBlcC0+ZXA7CisKKyAgICBpZiAoZXApIHsKKwlpZiAoYm94ZXMgPT0gTkVTVEVEIHx8IChib3hlcyA9PSBDSEFJTkVEICYmICFpc19leHRlbmRlZCkpCisJICBwcCA9IGVwOworCWVsc2UgaWYgKGFsbF9sb2dpY2Fsc19pbnNpZGVfb3V0ZXJtb3N0X2V4dGVuZGVkKQorCSAgcHAgPSBvdXRlcl9leHRlbmRlZF9wYXJ0aXRpb24oZXApOworICAgIH0KKyNpZiAwCisgICAgZmYgPSBwcCA/IChwcC0+c3RhcnQgKyB1bml0IC0gMSkgLyB1bml0IDogMDsKKyNlbHNlCisgICAgLyogcm91bmRpbmcgdXAgd2FzdGVzIGFsbW9zdCBhbiBlbnRpcmUgY3lsaW5kZXIgLSByb3VuZCBkb3duCisgICAgICAgYW5kIGxlYXZlIGl0IHRvIGNvbXB1dGVfc3RhcnRfc2VjdCgpIHRvIGZpeCB0aGUgZGlmZmVyZW5jZSAqLworICAgIGZmID0gcHAgPyBwcC0+c3RhcnQgLyB1bml0IDogMDsKKyNlbmRpZgorICAgIC8qIE1CUiBhbmQgMXN0IHNlY3RvciBvZiBhbiBleHRlbmRlZCBwYXJ0aXRpb24gYXJlIG5ldmVyIGZyZWUgKi8KKyAgICBpZiAodW5pdCA9PSAxKQorICAgICAgZmYrKzsKKworICBhZ2FpbjoKKyAgICBmb3IocHAgPSBwYXJ0aXRpb25zOyBwcCA8IHBhcnRpdGlvbnMrcG5vOyBwcCsrKSB7CisJaWYgKCFpc19wYXJlbnQocHAsIGVwKSAmJiBwcC0+c2l6ZSA+IDApIHsKKwkgICAgaWYgKChwYXJ0aXRpb25zX2luX29yZGVyIHx8IHBwLT5zdGFydCAvIHVuaXQgPD0gZmYKKwkJICAgICAgICAgICAgICAgICAgICAgfHwgKG1pZCAmJiBwcC0+c3RhcnQgLyB1bml0IDw9IG1pZCkpCisJCSYmIChmZmYgPSAocHAtPnN0YXJ0ICsgcHAtPnNpemUgKyB1bml0IC0gMSkgLyB1bml0KSA+IGZmKSB7CisJCWZmID0gZmZmOworCQlnb3RvIGFnYWluOworCSAgICB9CisJfQorICAgIH0KKworICAgIHJldHVybiBmZjsKK30KKworLyogZmluZCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgPHNpemU+IC0gYXNzdW1pbmcgZW50aXJlIHVuaXRzICovCitzdGF0aWMgdW5zaWduZWQgbG9uZworbWF4X2xlbmd0aChpbnQgcG5vLCBpbnQgaXNfZXh0ZW5kZWQsIHN0cnVjdCBwYXJ0X2Rlc2MgKmVwLCBpbnQgZm9ybWF0LAorCSAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHN0cnVjdCBkaXNrX2Rlc2MgKnopIHsKKyAgICB1bnNpZ25lZCBsb25nIGZ1OworICAgIHVuc2lnbmVkIGxvbmcgdW5pdCA9IHVuaXRzaXplKGZvcm1hdCk7CisgICAgc3RydWN0IHBhcnRfZGVzYyAqcGFydGl0aW9ucyA9ICYoei0+cGFydGl0aW9uc1swXSksICpwcCA9IDA7CisKKyAgICAvKiBpZiBjb250YWluaW5nIGVwIHVuZGVmaW5lZCwgbG9vayBhdCBpdHMgY29udGFpbmVyICovCisgICAgaWYgKGVwICYmIGVwLT5wLnN5c190eXBlID09IEVNUFRZX1BBUlRJVElPTikKKyAgICAgIGVwID0gZXAtPmVwOworCisgICAgaWYgKGVwKSB7CisJaWYgKGJveGVzID09IE5FU1RFRCB8fCAoYm94ZXMgPT0gQ0hBSU5FRCAmJiAhaXNfZXh0ZW5kZWQpKQorCSAgcHAgPSBlcDsKKwllbHNlIGlmIChhbGxfbG9naWNhbHNfaW5zaWRlX291dGVybW9zdF9leHRlbmRlZCkKKwkgIHBwID0gb3V0ZXJfZXh0ZW5kZWRfcGFydGl0aW9uKGVwKTsKKyAgICB9CisgICAgZnUgPSBwcCA/IChwcC0+c3RhcnQgKyBwcC0+c2l6ZSkgLyB1bml0IDogZ2V0X2Rpc2tzaXplKGZvcm1hdCk7CisKKyAgICBmb3IocHAgPSBwYXJ0aXRpb25zOyBwcCA8IHBhcnRpdGlvbnMrcG5vOyBwcCsrKQorICAgICAgaWYgKCFpc19wYXJlbnQocHAsIGVwKSAmJiBwcC0+c2l6ZSA+IDAKKwkgICYmIHBwLT5zdGFydCAvIHVuaXQgPj0gc3RhcnQgJiYgcHAtPnN0YXJ0IC8gdW5pdCA8IGZ1KQorCWZ1ID0gcHAtPnN0YXJ0IC8gdW5pdDsKKworICAgIHJldHVybiAoZnUgPiBzdGFydCkgPyBmdSAtIHN0YXJ0IDogMDsKK30KKworLyogY29tcHV0ZSBzdGFydGluZyBzZWN0b3Igb2YgYSBwYXJ0aXRpb24gaW5zaWRlIGFuIGV4dGVuZGVkIG9uZSAqLworLyogcmV0dXJuIDAgb24gZmFpbHVyZSAqLworLyogZXAgaXMgMCBvciBwb2ludHMgdG8gc3Vycm91bmRpbmcgZXh0ZW5kZWQgcGFydGl0aW9uICovCitzdGF0aWMgaW50Citjb21wdXRlX3N0YXJ0X3NlY3Qoc3RydWN0IHBhcnRfZGVzYyAqcCwgc3RydWN0IHBhcnRfZGVzYyAqZXApIHsKKyAgICB1bnNpZ25lZCBsb25nIGJhc2U7CisgICAgaW50IGluYyA9IChET1MgJiYgQi5zZWN0b3JzKSA/IEIuc2VjdG9ycyA6IDE7CisgICAgaW50IGRlbHRhOworCisgICAgaWYgKGVwICYmIHAtPnN0YXJ0ICsgcC0+c2l6ZSA+PSBlcC0+c3RhcnQgKyAxKQorICAgICAgZGVsdGEgPSBwLT5zdGFydCAtIGVwLT5zdGFydCAtIGluYzsKKyAgICBlbHNlIGlmIChwLT5zdGFydCA9PSAwICYmIHAtPnNpemUgPiAwKQorICAgICAgZGVsdGEgPSAtaW5jOworICAgIGVsc2UKKyAgICAgIGRlbHRhID0gMDsKKworICAgIGlmIChkZWx0YSA8IDApIHsKKwl1bnNpZ25lZCBsb25nIG9sZF9zaXplID0gcC0+c2l6ZTsKKwlwLT5zdGFydCAtPSBkZWx0YTsKKwlwLT5zaXplICs9IGRlbHRhOworCWlmIChpc19leHRlbmRlZChwLT5wLnN5c190eXBlKSAmJiBib3hlcyA9PSBPTkVTRUNUT1IpCisJICBwLT5zaXplID0gaW5jOworCWVsc2UgaWYgKG9sZF9zaXplIDw9IC1kZWx0YSkgeworCSAgICB3YXJuKF8oIm5vIHJvb20gZm9yIHBhcnRpdGlvbiBkZXNjcmlwdG9yXG4iKSk7CisJICAgIHJldHVybiAwOworCX0KKyAgICB9CisgICAgYmFzZSA9ICghZXAgPyAwCisJICAgICAgICA6IChpc19leHRlbmRlZChwLT5wLnN5c190eXBlKSA/CisJCSAgIG91dGVyX2V4dGVuZGVkX3BhcnRpdGlvbihlcCkgOiBlcCktPnN0YXJ0KTsKKyAgICBwLT5lcCA9IGVwOworICAgIGlmIChwLT5wLnN5c190eXBlID09IEVNUFRZX1BBUlRJVElPTiAmJiBwLT5zaXplID09IDApIHsKKyAgICAgICAgcC0+cC5zdGFydF9zZWN0ID0gMDsKKwlwLT5wLmJlZ2luX2NocyA9IHplcm9fY2hzOworCXAtPnAuZW5kX2NocyA9IHplcm9fY2hzOworICAgIH0gZWxzZSB7CisgICAgICAgIHAtPnAuc3RhcnRfc2VjdCA9IHAtPnN0YXJ0IC0gYmFzZTsKKwlwLT5wLmJlZ2luX2NocyA9IHVsb25nX3RvX2NocyhwLT5zdGFydCxCKTsKKwlwLT5wLmVuZF9jaHMgPSB1bG9uZ190b19jaHMocC0+c3RhcnQgKyBwLT5zaXplIC0gMSxCKTsKKyAgICB9CisgICAgcC0+cC5ucl9zZWN0cyA9IHAtPnNpemU7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qIGJ1aWxkIHRoZSBleHRlbmRlZCBwYXJ0aXRpb24gc3Vycm91bmRpbmcgYSBnaXZlbiBsb2dpY2FsIHBhcnRpdGlvbiAqLworc3RhdGljIGludAorYnVpbGRfc3Vycm91bmRpbmdfZXh0ZW5kZWQoc3RydWN0IHBhcnRfZGVzYyAqcCwgc3RydWN0IHBhcnRfZGVzYyAqZXAsCisJCQkgICBzdHJ1Y3QgZGlza19kZXNjICp6KSB7CisgICAgaW50IGluYyA9IChET1MgJiYgQi5zZWN0b3JzKSA/IEIuc2VjdG9ycyA6IDE7CisgICAgaW50IGZvcm1hdCA9IEZfU0VDVE9SOworICAgIHN0cnVjdCBwYXJ0X2Rlc2MgKnAwID0gJih6LT5wYXJ0aXRpb25zWzBdKSwgKmVlcCA9IGVwLT5lcDsKKworICAgIGlmIChib3hlcyA9PSBORVNURUQpIHsKKwllcC0+c3RhcnQgPSBmaXJzdF9mcmVlKGVwLXAwLCAxLCBlZXAsIGZvcm1hdCwgcC0+c3RhcnQsIHopOworCWVwLT5zaXplID0gbWF4X2xlbmd0aChlcC1wMCwgMSwgZWVwLCBmb3JtYXQsIGVwLT5zdGFydCwgeik7CisJaWYgKGVwLT5zdGFydCA+IHAtPnN0YXJ0IHx8IGVwLT5zdGFydCArIGVwLT5zaXplIDwgcC0+c3RhcnQgKyBwLT5zaXplKSB7CisJICAgIHdhcm4oXygiY2Fubm90IGJ1aWxkIHN1cnJvdW5kaW5nIGV4dGVuZGVkIHBhcnRpdGlvblxuIikpOworCSAgICByZXR1cm4gMDsKKwl9CisgICAgfSBlbHNlIHsKKwllcC0+c3RhcnQgPSBwLT5zdGFydDsKKwlpZiAoYm94ZXMgPT0gQ0hBSU5FRCkKKwkgIGVwLT5zaXplID0gcC0+c2l6ZTsKKwllbHNlCisJICBlcC0+c2l6ZSA9IGluYzsKKyAgICB9CisKKyAgICBlcC0+cC5ucl9zZWN0cyA9IGVwLT5zaXplOworICAgIGVwLT5wLmJvb3RhYmxlID0gMDsKKyAgICBlcC0+cC5zeXNfdHlwZSA9IEVYVEVOREVEX1BBUlRJVElPTjsKKyAgICBpZiAoIWNvbXB1dGVfc3RhcnRfc2VjdChlcCwgZWVwKSB8fCAhY29tcHV0ZV9zdGFydF9zZWN0KHAsIGVwKSkgeworCWVwLT5wLnN5c190eXBlID0gRU1QVFlfUEFSVElUSU9OOworCWVwLT5zaXplID0gMDsKKwlyZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGludAorcmVhZF9saW5lKGludCBwbm8sIHN0cnVjdCBwYXJ0X2Rlc2MgKmVwLCBjaGFyICpkZXYsIGludCBpbnRlcmFjdGl2ZSwKKwkgIHN0cnVjdCBkaXNrX2Rlc2MgKnopIHsKKyAgICBjaGFyIGxpbmVbMTAwMF07CisgICAgY2hhciAqZmllbGRzWzExXTsKKyAgICBpbnQgZm5vLCBwY3QgPSBwbm8lNDsKKyAgICBzdHJ1Y3QgcGFydF9kZXNjIHAsICpvcmlnOworICAgIHVuc2lnbmVkIGxvbmcgZmYsIGZmMSwgdWwsIG1sLCBtbDEsIGRlZjsKKyAgICBpbnQgZm9ybWF0LCBscG5vLCBpc19leHRkOworCisgICAgaWYgKGVvZiB8fCBlb2IpCisgICAgICByZXR1cm4gLTE7CisKKyAgICBscG5vID0gaW5kZXhfdG9fbGludXgocG5vLCB6KTsKKworICAgIGlmIChpbnRlcmFjdGl2ZSkgeworCWlmIChwY3QgPT0gMCAmJiAoc2hvd19leHRlbmRlZCB8fCBwbm8gPT0gMCkpCisJICB3YXJuKCJcbiIpOworCXdhcm4oIiVzOiIsIHBhcnRuYW1lKGRldiwgbHBubywgMTApKTsKKyAgICB9CisKKyAgICAvKiByZWFkIGlucHV0IGxpbmUgLSBza2lwIGJsYW5rIGxpbmVzIHdoZW4gcmVhZGluZyBmcm9tIGEgZmlsZSAqLworICAgIGRvIHsKKwlmbm8gPSByZWFkX3N0ZGluKGZpZWxkcywgbGluZSwgQVJSQVlfU0laRShmaWVsZHMpLCBBUlJBWV9TSVpFKGxpbmUpKTsKKyAgICB9IHdoaWxlKGZubyA9PSBSRF9DTUQgfHwgKGZubyA9PSAwICYmICFpbnRlcmFjdGl2ZSkpOworICAgIGlmIChmbm8gPT0gUkRfRU9GKSB7CisJcmV0dXJuIC0xOworICAgIH0gZWxzZSBpZiAoZm5vID4gMTAgJiYgKihmaWVsZHNbMTBdKSAhPSAwKSB7CisJZG9fd2FybihfKCJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIpKTsKKwlyZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAoZm5vID09IDEgJiYgIXN0cmNtcChmaWVsZHNbMF0sICIuIikpIHsKKwllb2IgPSAxOworCXJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKiB1c2Ugc3BlY2lmaWVkIGZvcm1hdCwgYnV0IHJvdW5kIHRvIGN5bGluZGVycyBpZiBGX01FR0FCWVRFIHNwZWNpZmllZCAqLworICAgIGZvcm1hdCA9IDA7CisgICAgaWYgKEIuY3lsaW5kZXJzaXplICYmIHNwZWNpZmllZF9mb3JtYXQgPT0gRl9NRUdBQllURSkKKyAgICAgIGZvcm1hdCA9IEZfQ1lMSU5ERVI7CisKKyAgICBvcmlnID0gKG9uZV9vbmx5ID8gJihvbGRwLnBhcnRpdGlvbnNbcG5vXSkgOiAwKTsKKworICAgIHAgPSB6ZXJvX3BhcnRfZGVzYzsKKyAgICBwLmVwID0gZXA7CisKKyAgICAvKiBmaXJzdCByZWFkIHRoZSB0eXBlIC0gd2UgbmVlZCB0byBrbm93IHdoZXRoZXIgaXQgaXMgZXh0ZW5kZWQgKi8KKyAgICAvKiBzdG9wIHJlYWRpbmcgd2hlbiBpbnB1dCBibGFuayAoZGVmYXVsdHMpIGFuZCBhbGwgaXMgZnVsbCAqLworICAgIGlzX2V4dGQgPSAwOworICAgIGlmIChmbm8gPT0gMCkgewkJLyogZW1wdHkgbGluZSAqLworCWlmIChvcmlnICYmIGlzX2V4dGVuZGVkKG9yaWctPnAuc3lzX3R5cGUpKQorCSAgaXNfZXh0ZCA9IDE7CisJZmYgPSBmaXJzdF9mcmVlKHBubywgaXNfZXh0ZCwgZXAsIGZvcm1hdCwgMCwgeik7CisJbWwgPSBtYXhfbGVuZ3RoKHBubywgaXNfZXh0ZCwgZXAsIGZvcm1hdCwgZmYsIHopOworCWlmIChtbCA9PSAwICYmIGlzX2V4dGQgPT0gMCkgeworCSAgICBpc19leHRkID0gMTsKKwkgICAgZmYgPSBmaXJzdF9mcmVlKHBubywgaXNfZXh0ZCwgZXAsIGZvcm1hdCwgMCwgeik7CisJICAgIG1sID0gbWF4X2xlbmd0aChwbm8sIGlzX2V4dGQsIGVwLCBmb3JtYXQsIGZmLCB6KTsKKwl9CisJaWYgKG1sID09IDAgJiYgcG5vID49IDQpIHsKKwkgICAgLyogbm8gZnJlZSBibG9ja3MgbGVmdCAtIGRvbid0IHJlYWQgYW55IGZ1cnRoZXIgKi8KKwkgICAgd2FybihfKCJObyByb29tIGZvciBtb3JlXG4iKSk7CisJICAgIHJldHVybiAtMTsKKwl9CisgICAgfQorICAgIGlmIChmbm8gPCAzIHx8ICEqKGZpZWxkc1syXSkpCisgICAgICB1bCA9IG9yaWcgPyBvcmlnLT5wLnN5c190eXBlIDoKKwkgICAoaXNfZXh0ZCB8fCAocG5vID4gMyAmJiBwY3QgPT0gMSAmJiBzaG93X2V4dGVuZGVkKSkKKwkgICAgID8gRVhURU5ERURfUEFSVElUSU9OIDogTElOVVhfTkFUSVZFOworICAgIGVsc2UgaWYgKCFzdHJjbXAoZmllbGRzWzJdLCAiTCIpKQorICAgICAgdWwgPSBMSU5VWF9OQVRJVkU7CisgICAgZWxzZSBpZiAoIXN0cmNtcChmaWVsZHNbMl0sICJTIikpCisgICAgICB1bCA9IExJTlVYX1NXQVA7CisgICAgZWxzZSBpZiAoIXN0cmNtcChmaWVsZHNbMl0sICJFIikpCisgICAgICB1bCA9IEVYVEVOREVEX1BBUlRJVElPTjsKKyAgICBlbHNlIGlmICghc3RyY21wKGZpZWxkc1syXSwgIlgiKSkKKyAgICAgIHVsID0gTElOVVhfRVhURU5ERUQ7CisgICAgZWxzZSBpZiAoZ2V0X3VsKGZpZWxkc1syXSwgJnVsLCBMSU5VWF9OQVRJVkUsIDE2KSkKKyAgICAgIHJldHVybiAwOworICAgIGlmICh1bCA+IDI1NSkgeworCXdhcm4oXygiSWxsZWdhbCB0eXBlXG4iKSk7CisJcmV0dXJuIDA7CisgICAgfQorICAgIHAucC5zeXNfdHlwZSA9IHVsOworICAgIGlzX2V4dGQgPSBpc19leHRlbmRlZCh1bCk7CisKKyAgICAvKiBmaW5kIHN0YXJ0ICovCisgICAgZmYgPSBmaXJzdF9mcmVlKHBubywgaXNfZXh0ZCwgZXAsIGZvcm1hdCwgMCwgeik7CisgICAgZmYxID0gZmYgKiB1bml0c2l6ZShmb3JtYXQpOworICAgIGRlZiA9IG9yaWcgPyBvcmlnLT5zdGFydCA6IChwbm8gPiA0ICYmIHBjdCA+IDEpID8gMCA6IGZmMTsKKyAgICBpZiAoZm5vIDwgMSB8fCAhKihmaWVsZHNbMF0pKQorICAgICAgcC5zdGFydCA9IGRlZjsKKyAgICBlbHNlIHsKKwlpZiAoZ2V0X3VsKGZpZWxkc1swXSwgJnVsLCBkZWYgLyB1bml0c2l6ZSgwKSwgMCkpCisJICByZXR1cm4gMDsKKwlwLnN0YXJ0ID0gdWwgKiB1bml0c2l6ZSgwKTsKKwlwLnN0YXJ0IC09IChwLnN0YXJ0ICUgdW5pdHNpemUoZm9ybWF0KSk7CisgICAgfQorCisgICAgLyogZmluZCBsZW5ndGggKi8KKyAgICBtbCA9IG1heF9sZW5ndGgocG5vLCBpc19leHRkLCBlcCwgZm9ybWF0LCBwLnN0YXJ0IC8gdW5pdHNpemUoZm9ybWF0KSwgeik7CisgICAgbWwxID0gbWwgKiB1bml0c2l6ZShmb3JtYXQpOworICAgIGRlZiA9IG9yaWcgPyBvcmlnLT5zaXplIDogKHBubyA+IDQgJiYgcGN0ID4gMSkgPyAwIDogbWwxOworICAgIGlmIChmbm8gPCAyIHx8ICEqKGZpZWxkc1sxXSkpCisgICAgICBwLnNpemUgPSBkZWY7CisgICAgZWxzZSB7CisJaWYgKGdldF91bChmaWVsZHNbMV0sICZ1bCwgZGVmIC8gdW5pdHNpemUoMCksIDApKQorCSAgcmV0dXJuIDA7CisJcC5zaXplID0gdWwgKiB1bml0c2l6ZSgwKSArIHVuaXRzaXplKGZvcm1hdCkgLSAxOworCXAuc2l6ZSAtPSAocC5zaXplICUgdW5pdHNpemUoZm9ybWF0KSk7CisgICAgfQorICAgIGlmIChwLnNpemUgPiBtbDEpIHsKKwl3YXJuKF8oIldhcm5pbmc6IGdpdmVuIHNpemUgKCVsdSkgZXhjZWVkcyBtYXggYWxsb3dhYmxlIHNpemUgKCVsdSlcbiIpLAorCSAgICAgKHAuc2l6ZSArIHVuaXRzaXplKDApIC0gMSkgLyB1bml0c2l6ZSgwKSwgbWwxIC8gdW5pdHNpemUoMCkpOworCWlmICghZm9yY2UpCisJICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKHAuc2l6ZSA9PSAwICYmIHBubyA+PSA0ICYmIChmbm8gPCAyIHx8ICEqKGZpZWxkc1sxXSkpKSB7CisJd2FybihfKCJXYXJuaW5nOiBlbXB0eSBwYXJ0aXRpb25cbiIpKTsKKwlpZiAoIWZvcmNlKQorCSAgcmV0dXJuIDA7CisgICAgfQorICAgIHAucC5ucl9zZWN0cyA9IHAuc2l6ZTsKKworICAgIGlmIChwLnNpemUgPT0gMCAmJiAhb3JpZykgeworCWlmIChmbm8gPCAxIHx8ICEqKGZpZWxkc1swXSkpCisJICBwLnN0YXJ0ID0gMDsKKwlpZiAoZm5vIDwgMyB8fCAhKihmaWVsZHNbMl0pKQorCSAgcC5wLnN5c190eXBlID0gRU1QVFlfUEFSVElUSU9OOworICAgIH0KKworICAgIGlmIChwLnN0YXJ0IDwgZmYxICYmIHAuc2l6ZSA+IDApIHsKKwl3YXJuKF8oIldhcm5pbmc6IGJhZCBwYXJ0aXRpb24gc3RhcnQgKGVhcmxpZXN0ICVsdSlcbiIpLAorCSAgICAgKGZmMSArIHVuaXRzaXplKDApIC0gMSkgLyB1bml0c2l6ZSgwKSk7CisJaWYgKCFmb3JjZSkKKwkgIHJldHVybiAwOworICAgIH0KKworICAgIGlmIChmbm8gPCA0IHx8ICEqKGZpZWxkc1szXSkpCisgICAgICB1bCA9IChvcmlnID8gb3JpZy0+cC5ib290YWJsZSA6IDApOworICAgIGVsc2UgaWYgKCFzdHJjbXAoZmllbGRzWzNdLCAiLSIpKQorICAgICAgdWwgPSAwOworICAgIGVsc2UgaWYgKCFzdHJjbXAoZmllbGRzWzNdLCAiKiIpIHx8ICFzdHJjbXAoZmllbGRzWzNdLCAiKyIpKQorICAgICAgdWwgPSAweDgwOworICAgIGVsc2UgeworICAgIAl3YXJuKF8oInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIikpOworICAgIAlyZXR1cm4gMDsKKyAgICB9CisgICAgcC5wLmJvb3RhYmxlID0gdWw7CisKKyAgICBpZiAoZXAgJiYgZXAtPnAuc3lzX3R5cGUgPT0gRU1QVFlfUEFSVElUSU9OKSB7CisgICAgICBpZiAoIWJ1aWxkX3N1cnJvdW5kaW5nX2V4dGVuZGVkKCZwLCBlcCwgeikpCisJcmV0dXJuIDA7CisgICAgfSBlbHNlCisgICAgICBpZiAoIWNvbXB1dGVfc3RhcnRfc2VjdCgmcCwgZXApKQorCXJldHVybiAwOworCisgICAgeyBsb25nY2hzIGFhID0gY2hzX3RvX2xvbmdjaHMocC5wLmJlZ2luX2NocyksIGJiOworCisgICAgICBpZiAoZm5vIDwgNSkgeworCSAgYmIgPSBhYTsKKyAgICAgIH0gZWxzZSBpZiAoZm5vIDwgNykgeworCSAgd2FybihfKCJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iKSk7CisJICByZXR1cm4gMDsKKyAgICAgIH0gZWxzZSBpZiAoZ2V0X3VsKGZpZWxkc1s0XSwgJmJiLmMsIGFhLmMsIDApIHx8CisJCWdldF91bChmaWVsZHNbNV0sICZiYi5oLCBhYS5oLCAwKSB8fAorCQlnZXRfdWwoZmllbGRzWzZdLCAmYmIucywgYWEucywgMCkpCisJcmV0dXJuIDA7CisgICAgICBwLnAuYmVnaW5fY2hzID0gbG9uZ2Noc190b19jaHMoYmIsQik7CisgICAgfQorICAgIHsgbG9uZ2NocyBhYSA9IGNoc190b19sb25nY2hzKHAucC5lbmRfY2hzKSwgYmI7CisKKyAgICAgIGlmIChmbm8gPCA4KSB7CisJICBiYiA9IGFhOworICAgICAgfSBlbHNlIGlmIChmbm8gPCAxMCkgeworCSAgd2FybihfKCJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iKSk7CisJICByZXR1cm4gMDsKKyAgICAgIH0gZWxzZSBpZiAoZ2V0X3VsKGZpZWxkc1s3XSwgJmJiLmMsIGFhLmMsIDApIHx8CisJCWdldF91bChmaWVsZHNbOF0sICZiYi5oLCBhYS5oLCAwKSB8fAorCQlnZXRfdWwoZmllbGRzWzldLCAmYmIucywgYWEucywgMCkpCisJcmV0dXJuIDA7CisgICAgICBwLnAuZW5kX2NocyA9IGxvbmdjaHNfdG9fY2hzKGJiLCBCKTsKKyAgICB9CisKKyAgICBpZiAocG5vID4gMyAmJiBwLnNpemUgJiYgc2hvd19leHRlbmRlZCAmJiBwLnAuc3lzX3R5cGUgIT0gRU1QVFlfUEFSVElUSU9OCisJICAgICAgICAmJiAoaXNfZXh0ZW5kZWQocC5wLnN5c190eXBlKSAhPSAocGN0ID09IDEpKSkgeworCXdhcm4oXygiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIikpOworCWlmICghZm9yY2UpCisJICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB6LT5wYXJ0aXRpb25zW3Bub10gPSBwOworICAgIGlmIChwbm8gPj0gei0+cGFydG5vKQorICAgICAgei0+cGFydG5vICs9IDQ7CQkvKiByZXFkIGZvciBvdXRfcGFydGl0aW9uKCkgKi8KKworICAgIGlmIChpbnRlcmFjdGl2ZSkKKyAgICAgIG91dF9wYXJ0aXRpb24oZGV2LCAwLCAmKHotPnBhcnRpdGlvbnNbcG5vXSksIHosIEIpOworCisgICAgcmV0dXJuIDE7Cit9CisKKy8qIGVwIGVpdGhlciBwb2ludHMgdG8gdGhlIGV4dGVuZGVkIHBhcnRpdGlvbiB0byBjb250YWluIHRoaXMgb25lLAorICAgb3IgdG8gdGhlIGVtcHR5IHBhcnRpdGlvbiB0aGF0IG1heSBiZWNvbWUgZXh0ZW5kZWQgb3IgaXMgMCAqLworc3RhdGljIGludAorcmVhZF9wYXJ0aXRpb24oY2hhciAqZGV2LCBpbnQgaW50ZXJhY3RpdmUsIGludCBwbm8sIHN0cnVjdCBwYXJ0X2Rlc2MgKmVwLAorCSAgICAgICBzdHJ1Y3QgZGlza19kZXNjICp6KSB7CisgICAgc3RydWN0IHBhcnRfZGVzYyAqcCA9ICYoei0+cGFydGl0aW9uc1twbm9dKTsKKyAgICBpbnQgaTsKKworICAgIGlmIChvbmVfb25seSkgeworCSpwID0gb2xkcC5wYXJ0aXRpb25zW3Bub107CisJaWYgKG9uZV9vbmx5X3BubyAhPSBwbm8pCisJICBnb3RvIHJldDsKKyAgICB9IGVsc2UgaWYgKCFzaG93X2V4dGVuZGVkICYmIHBubyA+IDQgJiYgcG5vJTQpCisJICBnb3RvIHJldDsKKworICAgIHdoaWxlICghKGkgPSByZWFkX2xpbmUocG5vLCBlcCwgZGV2LCBpbnRlcmFjdGl2ZSwgeikpKQorICAgICAgaWYgKCFpbnRlcmFjdGl2ZSkKKwlmYXRhbChfKCJiYWQgaW5wdXRcbiIpKTsKKyAgICBpZiAoaSA8IDApIHsKKwlwLT5lcCA9IGVwOworCXJldHVybiAwOworICAgIH0KKworICByZXQ6CisgICAgcC0+ZXAgPSBlcDsKKyAgICBpZiAocG5vID49IHotPnBhcnRubykKKyAgICAgIHotPnBhcnRubyArPSA0OworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgdm9pZAorcmVhZF9wYXJ0aXRpb25fY2hhaW4oY2hhciAqZGV2LCBpbnQgaW50ZXJhY3RpdmUsIHN0cnVjdCBwYXJ0X2Rlc2MgKmVwLAorCQkgICAgIHN0cnVjdCBkaXNrX2Rlc2MgKnopIHsKKyAgICBpbnQgaSwgYmFzZTsKKworICAgIGVvYiA9IDA7CisgICAgd2hpbGUgKDEpIHsKKwliYXNlID0gei0+cGFydG5vOworCWlmIChiYXNlKzQgPiBBUlJBWV9TSVpFKHotPnBhcnRpdGlvbnMpKSB7CisJICAgIGRvX3dhcm4oXygidG9vIG1hbnkgcGFydGl0aW9uc1xuIikpOworCSAgICBicmVhazsKKwl9CisJZm9yIChpPTA7IGk8NDsgaSsrKQorCSAgaWYgKCFyZWFkX3BhcnRpdGlvbihkZXYsIGludGVyYWN0aXZlLCBiYXNlK2ksIGVwLCB6KSkKKwkgICAgcmV0dXJuOworCWZvciAoaT0wOyBpPDQ7IGkrKykgeworCSAgICBlcCA9ICYoei0+cGFydGl0aW9uc1tiYXNlK2ldKTsKKwkgICAgaWYgKGlzX2V4dGVuZGVkKGVwLT5wLnN5c190eXBlKSAmJiBlcC0+c2l6ZSkKKwkgICAgICBicmVhazsKKwl9CisJaWYgKGkgPT0gNCkgeworCSAgICAvKiBub3RoaW5nIGZvdW5kIC0gbWF5YmUgYW4gZW1wdHkgcGFydGl0aW9uIGlzIGdvaW5nCisJICAgICAgIHRvIGJlIGV4dGVuZGVkICovCisJICAgIGlmIChvbmVfb25seSB8fCBzaG93X2V4dGVuZGVkKQorCSAgICAgIGJyZWFrOworCSAgICBlcCA9ICYoei0+cGFydGl0aW9uc1tiYXNlKzFdKTsKKwkgICAgaWYgKGVwLT5zaXplIHx8IGVwLT5wLnN5c190eXBlICE9IEVNUFRZX1BBUlRJVElPTikKKwkgICAgICBicmVhazsKKwl9CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorcmVhZF9pbnB1dChjaGFyICpkZXYsIGludCBpbnRlcmFjdGl2ZSwgc3RydWN0IGRpc2tfZGVzYyAqeikgeworICAgIGludCBpOworICAgIHN0cnVjdCBwYXJ0X2Rlc2MgKnBhcnRpdGlvbnMgPSAmKHotPnBhcnRpdGlvbnNbMF0pLCAqZXA7CisKKyAgICBmb3IgKGk9MDsgaSA8IEFSUkFZX1NJWkUoei0+cGFydGl0aW9ucyk7IGkrKykKKyAgICAgIHBhcnRpdGlvbnNbaV0gPSB6ZXJvX3BhcnRfZGVzYzsKKyAgICB6LT5wYXJ0bm8gPSAwOworCisgICAgaWYgKGludGVyYWN0aXZlKQorICAgICAgd2FybihfKCJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorICAgICAgICAgICAgICI8c3RhcnQ+IDxzaXplPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorICAgICAgICAgICAgICJVc3VhbGx5IHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSA8c3RhcnQ+IGFuZCA8c2l6ZT4gKGFuZCBwZXJoYXBzIDx0eXBlPikuXG4iKSk7CisgICAgZW9mID0gMDsKKworICAgIGZvciAoaT0wOyBpPDQ7IGkrKykKKyAgICAgIHJlYWRfcGFydGl0aW9uKGRldiwgaW50ZXJhY3RpdmUsIGksIDAsIHopOworICAgIGZvciAoaT0wOyBpPDQ7IGkrKykgeworCWVwID0gcGFydGl0aW9ucytpOworCWlmIChpc19leHRlbmRlZChlcC0+cC5zeXNfdHlwZSkgJiYgZXAtPnNpemUpCisJICByZWFkX3BhcnRpdGlvbl9jaGFpbihkZXYsIGludGVyYWN0aXZlLCBlcCwgeik7CisgICAgfQorICAgIGFkZF9zZWN0b3JfYW5kX29mZnNldCh6KTsKK30KKworLyoKKyAqICBHLiBUaGUgY29tbWFuZCBsaW5lCisgKi8KKworc3RhdGljIHZvaWQgdmVyc2lvbih2b2lkKSB7CisgICAgcHJpbnRmKCJzZmRpc2sgKCVzKVxuIiwgUEFDS0FHRV9TVFJJTkcpOworfQorCitzdGF0aWMgdm9pZAordXNhZ2Uodm9pZCkgeworICAgIHZlcnNpb24oKTsKKyAgICBwcmludGYoXygiVXNhZ2U6ICVzIFtvcHRpb25zXSBkZXZpY2UgLi4uXG4iKSwgUFJPR05BTUUpOworICAgIHB1dHMgKF8oImRldmljZTogc29tZXRoaW5nIGxpa2UgL2Rldi9oZGEgb3IgL2Rldi9zZGEiKSk7CisgICAgcHV0cyAoXygidXNlZnVsIG9wdGlvbnM6IikpOworICAgIHB1dHMgKF8oIiAgICAtcyBbb3IgLS1zaG93LXNpemVdOiBsaXN0IHNpemUgb2YgYSBwYXJ0aXRpb24iKSk7CisgICAgcHV0cyAoXygiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiKSk7CisgICAgcHV0cyAoXygiICAgIC1sIFtvciAtLWxpc3RdOiAgICAgIGxpc3QgcGFydGl0aW9ucyBvZiBlYWNoIGRldmljZSIpKTsKKyAgICBwdXRzIChfKCIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIpKTsKKyAgICBwdXRzIChfKCIgICAgLWkgW29yIC0taW5jcmVtZW50XTogbnVtYmVyIGN5bGluZGVycyBldGMuIGZyb20gMSBpbnN0ZWFkIG9mIGZyb20gMCIpKTsKKyAgICBwdXRzIChfKCIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0L3JlcG9ydCBpbiB1bml0cyBvZiBzZWN0b3JzL2Jsb2Nrcy9jeWxpbmRlcnMvTUIiKSk7CisgICAgcHV0cyAoXygiICAgIC1UIFtvciAtLWxpc3QtdHlwZXNdOmxpc3QgdGhlIGtub3duIHBhcnRpdGlvbiB0eXBlcyIpKTsKKyAgICBwdXRzIChfKCIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIpKTsKKyAgICBwdXRzIChfKCIgICAgLVIgW29yIC0tcmUtcmVhZF06ICAgbWFrZSBrZXJuZWwgcmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIpKTsKKyAgICBwdXRzIChfKCIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIikpOworICAgIHB1dHMgKF8oIiAgICAtbiA6ICAgICAgICAgICAgICAgICBkbyBub3QgYWN0dWFsbHkgd3JpdGUgdG8gZGlzayIpKTsKKyAgICBwdXRzIChfKCIgICAgLU8gZmlsZSA6ICAgICAgICAgICAgc2F2ZSB0aGUgc2VjdG9ycyB0aGF0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gdG8gZmlsZSIpKTsKKyAgICBwdXRzIChfKCIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIikpOworICAgIHB1dHMgKF8oIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIikpOworICAgIHB1dHMgKF8oIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiKSk7CisgICAgcHV0cyAoXygiZGFuZ2Vyb3VzIG9wdGlvbnM6IikpOworICAgIHB1dHMgKF8oIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IikpOworICAgIHB1dHMgKF8oIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gdGFibGUiKSk7CisgICAgcHV0cyAoXygiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBleHBlY3QgZGVzY3JpcHRvcnMgZm9yIHRoZW0gb24gaW5wdXQiKSk7CisgICAgcHV0cyAoXygiICAgIC1MICBbb3IgLS1MaW51eF06ICAgICAgZG8gbm90IGNvbXBsYWluIGFib3V0IHRoaW5ncyBpcnJlbGV2YW50IGZvciBMaW51eCIpKTsKKyAgICBwdXRzIChfKCIgICAgLXEgIFtvciAtLXF1aWV0XTogICAgICBzdXBwcmVzcyB3YXJuaW5nIG1lc3NhZ2VzIikpOworICAgIHB1dHMgKF8oIiAgICBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZXRlY3RlZCBnZW9tZXRyeSB1c2luZzoiKSk7CisgICAgcHV0cyAoXygiICAgIC1DIyBbb3IgLS1jeWxpbmRlcnMgI106c2V0IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIHRvIHVzZSIpKTsKKyAgICBwdXRzIChfKCIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICBzZXQgdGhlIG51bWJlciBvZiBoZWFkcyB0byB1c2UiKSk7CisgICAgcHV0cyAoXygiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiKSk7CisgICAgcHV0cyAoXygiWW91IGNhbiBkaXNhYmxlIGFsbCBjb25zaXN0ZW5jeSBjaGVja2luZyB3aXRoOiIpKTsKKyAgICBwdXRzIChfKCIgICAgLWYgIFtvciAtLWZvcmNlXTogICAgICBkbyB3aGF0IEkgc2F5LCBldmVuIGlmIGl0IGlzIHN0dXBpZCIpKTsKKyAgICBleGl0KDEpOworfQorCitzdGF0aWMgdm9pZAorYWN0aXZhdGVfdXNhZ2UoY2hhciAqcHJvZ24pIHsKKyAgICBwdXRzIChfKCJVc2FnZToiKSk7CisgICAgcHJpbnRmKF8oIiVzIGRldmljZQkJIGxpc3QgYWN0aXZlIHBhcnRpdGlvbnMgb24gZGV2aWNlXG4iKSwgcHJvZ24pOworICAgIHByaW50ZihfKCIlcyBkZXZpY2UgbjEgbjIgLi4uIGFjdGl2YXRlIHBhcnRpdGlvbnMgbjEgLi4uLCBpbmFjdGl2YXRlIHRoZSByZXN0XG4iKSwgcHJvZ24pOworICAgIHByaW50ZihfKCIlcyAtQW4gZGV2aWNlCSBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIiksIFBST0dOQU1FKTsKKyAgICBleGl0KDEpOworfQorCitzdGF0aWMgdm9pZAordW5oaWRlX3VzYWdlKGNoYXIgKnByb2duKSB7CisgICAgZXhpdCgxKTsKK30KKworc3RhdGljIGNoYXIgc2hvcnRfb3B0c1tdID0gImNkZmdpbG5xc3U6dng/MUE6OkM6REdIOkk6TE46TzpSUzpUVTo6ViI7CisKKyNkZWZpbmUgUFJJTlRfSUQgMDQwMAorI2RlZmluZSBDSEFOR0VfSUQgMDEwMDAKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24gbG9uZ19vcHRzW10gPSB7CisgICAgeyAiY2hhbmdlLWlkIiwJICBub19hcmd1bWVudCwgTlVMTCwgJ2MnICsgQ0hBTkdFX0lEIH0sCisgICAgeyAicHJpbnQtaWQiLAkgIG5vX2FyZ3VtZW50LCBOVUxMLCAnYycgKyBQUklOVF9JRCB9LAorICAgIHsgImlkIiwJCSAgbm9fYXJndW1lbnQsIE5VTEwsICdjJyB9LAorICAgIHsgImR1bXAiLCAgICAgICAgICAgICBub19hcmd1bWVudCwgTlVMTCwgJ2QnIH0sCisgICAgeyAiZm9yY2UiLCAgICAgICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAnZicgfSwKKyAgICB7ICJzaG93LWdlb21ldHJ5IiwJICBub19hcmd1bWVudCwgTlVMTCwgJ2cnIH0sCisgICAgeyAiaW5jcmVtZW50IiwgICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAnaScgfSwKKyAgICB7ICJsaXN0IiwgICAgICAgICAgICAgbm9fYXJndW1lbnQsIE5VTEwsICdsJyB9LAorICAgIHsgInF1aWV0IiwgICAgICAgICAgICBub19hcmd1bWVudCwgTlVMTCwgJ3EnIH0sCisgICAgeyAic2hvdy1zaXplIiwgICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAncycgfSwKKyAgICB7ICJ1bml0IiwgICAgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICd1JyB9LAorICAgIHsgInZlcnNpb24iLCAgICAgICAgICBub19hcmd1bWVudCwgTlVMTCwgJ3YnIH0sCisgICAgeyAic2hvdy1leHRlbmRlZCIsICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAneCcgfSwKKyAgICB7ICJoZWxwIiwJICAgICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAnPycgfSwKKyAgICB7ICJvbmUtb25seSIsICAgICAgICAgbm9fYXJndW1lbnQsIE5VTEwsICcxJyB9LAorICAgIHsgImN5bGluZGVycyIsICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ0MnIH0sCisgICAgeyAiaGVhZHMiLCAgICAgIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnSCcgfSwKKyAgICB7ICJzZWN0b3JzIiwgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdTJyB9LAorICAgIHsgInNob3ctcHQtZ2VvbWV0cnkiLCBub19hcmd1bWVudCwgTlVMTCwgJ0cnIH0sCisgICAgeyAiYWN0aXZhdGUiLCAgIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCAnQScgfSwKKyAgICB7ICJET1MiLCAgICAgICAgICAgICAgbm9fYXJndW1lbnQsIE5VTEwsICdEJyB9LAorICAgIHsgIkRPUy1leHRlbmRlZCIsCSAgbm9fYXJndW1lbnQsIE5VTEwsICdFJyB9LAorICAgIHsgIkxpbnV4IiwgICAgICAgICAgICBub19hcmd1bWVudCwgTlVMTCwgJ0wnIH0sCisgICAgeyAicmUtcmVhZCIsICAgICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAnUicgfSwKKyAgICB7ICJsaXN0LXR5cGVzIiwgICAgICAgbm9fYXJndW1lbnQsIE5VTEwsICdUJyB9LAorICAgIHsgInVuaGlkZSIsICAgICBvcHRpb25hbF9hcmd1bWVudCwgTlVMTCwgJ1UnIH0sCisgICAgeyAibm8tcmVyZWFkIiwgICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAxNjAgfSwKKyAgICB7ICJJQk0iLCAgICAgICAgICAgICAgbm9fYXJndW1lbnQsIE5VTEwsIDE2MSB9LAorICAgIHsgImxlYXZlLWxhc3QiLCAgICAgICBub19hcmd1bWVudCwgTlVMTCwgMTYxIH0sCisvKiB1bmRvY3VtZW50ZWQgZmxhZ3MgLSBub3QgYWxsIGNvbXBsZXRlbHkgaW1wbGVtZW50ZWQgKi8KKyAgICB7ICJpbi1vcmRlciIsICAgICAgICAgbm9fYXJndW1lbnQsIE5VTEwsIDEyOCB9LAorICAgIHsgIm5vdC1pbi1vcmRlciIsICAgICBub19hcmd1bWVudCwgTlVMTCwgMTI5IH0sCisgICAgeyAiaW5zaWRlLW91dGVyIiwgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAxMzAgfSwKKyAgICB7ICJub3QtaW5zaWRlLW91dGVyIiwgbm9fYXJndW1lbnQsIE5VTEwsIDEzMSB9LAorICAgIHsgIm5lc3RlZCIsICAgICAgICAgICBub19hcmd1bWVudCwgTlVMTCwgMTMyIH0sCisgICAgeyAiY2hhaW5lZCIsICAgICAgICAgIG5vX2FyZ3VtZW50LCBOVUxMLCAxMzMgfSwKKyAgICB7ICJvbmVzZWN0b3IiLCAgICAgICAgbm9fYXJndW1lbnQsIE5VTEwsIDEzNCB9LAorICAgIHsgTlVMTCwgMCwgTlVMTCwgMCB9Cit9OworCitzdGF0aWMgaW50Citpc19pZGVfY2Ryb21fb3JfdGFwZShjaGFyICpkZXZpY2UpIHsKKwlGSUxFICpwcm9jZjsKKwljaGFyIGJ1ZlsxMDBdOworCXN0cnVjdCBzdGF0IHN0YXRidWY7CisJaW50IGlzX2lkZSA9IDA7CisKKwkvKiBObyBkZXZpY2Ugd2FzIGdpdmVuIGV4cGxpY2l0bHksIGFuZCB3ZSBhcmUgdHJ5aW5nIHNvbWUKKwkgICBsaWtlbHkgdGhpbmdzLiAgQnV0IG9wZW5pbmcgL2Rldi9oZGMgbWF5IHByb2R1Y2UgZXJyb3JzIGxpa2UKKyAgICAgICAgICAgImhkYzogdHJheSBvcGVuIG9yIGRyaXZlIG5vdCByZWFkeSIKKwkgICBpZiBpdCBoYXBwZW5zIHRvIGJlIGEgQ0QtUk9NIGRyaXZlLiBJdCBldmVuIGhhcHBlbnMgdGhhdAorCSAgIHRoZSBwcm9jZXNzIGhhbmdzIG9uIHRoZSBhdHRlbXB0IHRvIHJlYWQgYSBtdXNpYyBDRC4KKwkgICBTbyB0cnkgdG8gYmUgY2FyZWZ1bC4gVGhpcyBvbmx5IHdvcmtzIHNpbmNlIDIuMS43My4gKi8KKworCWlmIChzdHJuY21wKCIvZGV2L2hkIiwgZGV2aWNlLCA3KSkKKwkJcmV0dXJuIDA7CisKKwlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiL3Byb2MvaWRlLyVzL21lZGlhIiwgZGV2aWNlKzUpOworCXByb2NmID0gZm9wZW4oYnVmLCAiciIpOworCWlmIChwcm9jZiAhPSBOVUxMICYmIGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIHByb2NmKSkKKwkJaXNfaWRlID0gKCFzdHJuY21wKGJ1ZiwgImNkcm9tIiwgNSkgfHwKKwkJCSAgIXN0cm5jbXAoYnVmLCAidGFwZSIsIDQpKTsKKwllbHNlCisJCS8qIE5vdyB3aGVuIHRoaXMgcHJvYyBmaWxlIGRvZXMgbm90IGV4aXN0LCBza2lwIHRoZQorCQkgICBkZXZpY2Ugd2hlbiBpdCBpcyByZWFkLW9ubHkuICovCisJCWlmIChzdGF0KGRldmljZSwgJnN0YXRidWYpID09IDApCisJCQlpc19pZGUgPSAoKHN0YXRidWYuc3RfbW9kZSAmIDAyMjIpID09IDApOworCisJaWYgKHByb2NmKQorCQlmY2xvc2UocHJvY2YpOworCXJldHVybiBpc19pZGU7Cit9CisKKyNkZWZpbmUgUFJPQ19QQVJUSVRJT05TCSIvcHJvYy9wYXJ0aXRpb25zIgorCitzdGF0aWMgY2hhciAqCituZXh0cHJvYyhGSUxFICpwcm9jZikgeworCXN0YXRpYyBjaGFyIGRldm5hbWVbMjU2XTsKKwljaGFyIGxpbmVbMTAyNF0sIHB0bmFtZVsxMjhdOworCWludCBtYSwgbWk7CisJdW5zaWduZWQgbG9uZyBsb25nIHN6OworCisJaWYgKHByb2NmID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCXdoaWxlIChmZ2V0cyhsaW5lLCBzaXplb2YobGluZSksIHByb2NmKSAhPSBOVUxMKSB7CisJCWlmIChzc2NhbmYgKGxpbmUsICIgJWQgJWQgJWxsdSAlMTI4W15cbiBdIiwKKwkJCSAgICAmbWEsICZtaSwgJnN6LCBwdG5hbWUpICE9IDQpCisJCQljb250aW51ZTsKKwkJc25wcmludGYoZGV2bmFtZSwgc2l6ZW9mKGRldm5hbWUpLCAiL2Rldi8lcyIsIHB0bmFtZSk7CisJCWlmICghaXNfd2hvbGVfZGlzayhkZXZuYW1lKSkKKwkJCWNvbnRpbnVlOworCQlyZXR1cm4gZGV2bmFtZTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQKK2dwdF93YXJuaW5nKGNoYXIgKmRldiwgaW50IHdhcm5fb25seSkKK3sKKwlpZiAoZm9yY2UpCisJCXdhcm5fb25seSA9IDE7CisKKwlpZiAoZGV2ICYmIGdwdF9wcm9iZV9zaWduYXR1cmVfZGV2bmFtZShkZXYpKSB7CisJCWZmbHVzaChzdGRvdXQpOworCQlmcHJpbnRmKHN0ZGVyciwgXygiXG5XQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISAiCisJCQkiVGhlIHV0aWwgc2ZkaXNrIGRvZXNuJ3Qgc3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuXG4iKSwgZGV2KTsKKwkJaWYgKCF3YXJuX29ubHkpIHsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIikpOworCQkJZXhpdCgxKTsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgZG9fbGlzdChjaGFyICpkZXYsIGludCBzaWxlbnQpOworc3RhdGljIHZvaWQgZG9fc2l6ZShjaGFyICpkZXYsIGludCBzaWxlbnQpOworc3RhdGljIHZvaWQgZG9fZ2VvbShjaGFyICpkZXYsIGludCBzaWxlbnQpOworc3RhdGljIHZvaWQgZG9fcHRfZ2VvbShjaGFyICpkZXYsIGludCBzaWxlbnQpOworc3RhdGljIHZvaWQgZG9fZmRpc2soY2hhciAqZGV2KTsKK3N0YXRpYyB2b2lkIGRvX3JlcmVhZChjaGFyICpkZXYpOworc3RhdGljIHZvaWQgZG9fY2hhbmdlX2lkKGNoYXIgKmRldiwgY2hhciAqcGFydCwgY2hhciAqaWQpOworc3RhdGljIHZvaWQgZG9fdW5oaWRlKGNoYXIgKiphdiwgaW50IGFjLCBjaGFyICphcmcpOworc3RhdGljIHZvaWQgZG9fYWN0aXZhdGUoY2hhciAqKmF2LCBpbnQgYWMsIGNoYXIgKmFyZyk7CisKK3Vuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbF9zaXplOworCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgY2hhciAqcHJvZ247CisgICAgaW50IGM7CisgICAgY2hhciAqZGV2OworICAgIGludCBvcHRfc2l6ZSA9IDA7CisgICAgaW50IG9wdF9vdXRfZ2VvbSA9IDA7CisgICAgaW50IG9wdF9vdXRfcHRfZ2VvbSA9IDA7CisgICAgaW50IG9wdF9yZXJlYWQgPSAwOworICAgIGludCBhY3RpdmF0ZSA9IDA7CisgICAgaW50IGRvX2lkID0gMDsKKyAgICBpbnQgdW5oaWRlID0gMDsKKyAgICBpbnQgZmRpc2sgPSAwOworICAgIGNoYXIgKmFjdGl2YXRlYXJnID0gMDsKKyAgICBjaGFyICp1bmhpZGVhcmcgPSAwOworCisgICAgc2V0bG9jYWxlKExDX0FMTCwgIiIpOworICAgIGJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisgICAgdGV4dGRvbWFpbihQQUNLQUdFKTsKKworICAgIGlmIChhcmdjIDwgMSkKKyAgICAgIGZhdGFsKF8oIm5vIGNvbW1hbmQ/XG4iKSk7CisgICAgaWYgKChwcm9nbiA9IHN0cnJjaHIoYXJndlswXSwgJy8nKSkgPT0gTlVMTCkKKyAgICAgIHByb2duID0gYXJndlswXTsKKyAgICBlbHNlCisgICAgICBwcm9nbisrOworICAgIGlmICghc3RyY21wKHByb2duLCAiYWN0aXZhdGUiKSkKKyAgICAgIGFjdGl2YXRlID0gMTsJCS8qIGVxdWl2YWxlbnQgdG8gYHNmZGlzayAtQScgKi8KKyNpZiAwCQkJCS8qIG5vdCBpbXBvcnRhbnQgZW5vdWdoIHRvIGRlc2VydmUgYSBuYW1lICovCisgICAgZWxzZSBpZiAoIXN0cmNtcChwcm9nbiwgInVuaGlkZSIpKQorICAgICAgdW5oaWRlID0gMTsJCS8qIGVxdWl2YWxlbnQgdG8gYHNmZGlzayAtVScgKi8KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgIGZkaXNrID0gMTsKKworICAgIHdoaWxlICgoYyA9IGdldG9wdF9sb25nIChhcmdjLCBhcmd2LCBzaG9ydF9vcHRzLCBsb25nX29wdHMsIE5VTEwpKSAhPSAtMSkgeworCXN3aXRjaCAoYykgeworCSAgY2FzZSAnZic6CisJICAgIGZvcmNlID0gMTsgYnJlYWs7CS8qIGRvZXMgbm90IGltcGx5IHF1aWV0ICovCisJICBjYXNlICdnJzoKKwkgICAgb3B0X291dF9nZW9tID0gMTsgYnJlYWs7CisJICBjYXNlICdHJzoKKwkgICAgb3B0X291dF9wdF9nZW9tID0gMTsgYnJlYWs7CisJICBjYXNlICdpJzoKKwkgICAgaW5jcmVtZW50ID0gMTsgYnJlYWs7CisJICBjYXNlICdjJzoKKwkgIGNhc2UgJ2MnICsgUFJJTlRfSUQ6CisJICBjYXNlICdjJyArIENIQU5HRV9JRDoKKwkgICAgZG9faWQgPSBjOyBicmVhazsKKwkgIGNhc2UgJ2QnOgorCSAgICBkdW1wID0gMTsgLyogZmFsbCB0aHJvdWdoICovCisJICBjYXNlICdsJzoKKwkgICAgb3B0X2xpc3QgPSAxOyBicmVhazsKKwkgIGNhc2UgJ24nOgorCSAgICBub193cml0ZSA9IDE7IGJyZWFrOworCSAgY2FzZSAncSc6CisJICAgIHF1aWV0ID0gMTsgYnJlYWs7CisJICBjYXNlICdzJzoKKwkgICAgb3B0X3NpemUgPSAxOyBicmVhazsKKwkgIGNhc2UgJ3UnOgorCSAgICBzZXRfZm9ybWF0KCpvcHRhcmcpOyBicmVhazsKKwkgIGNhc2UgJ3YnOgorCSAgICB2ZXJzaW9uKCk7CisJICAgIGV4aXQoMCk7CisJICBjYXNlICd4JzoKKwkgICAgc2hvd19leHRlbmRlZCA9IDE7IGJyZWFrOworCSAgY2FzZSAnQSc6CisJICAgIGFjdGl2YXRlYXJnID0gb3B0YXJnOworCSAgICBhY3RpdmF0ZSA9IDE7IGJyZWFrOworCSAgY2FzZSAnQyc6CisJICAgIFUuY3lsaW5kZXJzID0gYXRvaShvcHRhcmcpOyBicmVhazsKKwkgIGNhc2UgJ0QnOgorCSAgICBET1MgPSAxOyBicmVhazsKKwkgIGNhc2UgJ0UnOgorCSAgICBET1NfZXh0ZW5kZWQgPSAxOyBicmVhazsKKwkgIGNhc2UgJ0gnOgorCSAgICBVLmhlYWRzID0gYXRvaShvcHRhcmcpOyBicmVhazsKKwkgIGNhc2UgJ0wnOgorCSAgICBMaW51eCA9IDE7IGJyZWFrOworCSAgY2FzZSAnTic6CisJICAgIG9uZV9vbmx5ID0gYXRvaShvcHRhcmcpOyBicmVhazsKKwkgIGNhc2UgJ0knOgorCSAgICByZXN0b3JlX3NlY3Rvcl9maWxlID0gb3B0YXJnOyBicmVhazsKKwkgIGNhc2UgJ08nOgorCSAgICBzYXZlX3NlY3Rvcl9maWxlID0gb3B0YXJnOyBicmVhazsKKwkgIGNhc2UgJ1InOgorCSAgICBvcHRfcmVyZWFkID0gMTsgYnJlYWs7CisJICBjYXNlICdTJzoKKwkgICAgVS5zZWN0b3JzID0gYXRvaShvcHRhcmcpOyBicmVhazsKKwkgIGNhc2UgJ1QnOgorCSAgICBsaXN0X3R5cGVzKCk7CisJICAgIGV4aXQoMCk7CisJICBjYXNlICdVJzoKKwkgICAgdW5oaWRlYXJnID0gb3B0YXJnOworCSAgICB1bmhpZGUgPSAxOyBicmVhazsKKwkgIGNhc2UgJ1YnOgorCSAgICB2ZXJpZnkgPSAxOyBicmVhazsKKwkgIGNhc2UgJz8nOgorCSAgZGVmYXVsdDoKKwkgICAgdXNhZ2UoKTsgYnJlYWs7CisKKwkgIC8qIHVuZG9jdW1lbnRlZCBmbGFncyAqLworCSAgY2FzZSAxMjg6CisJICAgIHBhcnRpdGlvbnNfaW5fb3JkZXIgPSAxOyBicmVhazsKKwkgIGNhc2UgMTI5OgorCSAgICBwYXJ0aXRpb25zX2luX29yZGVyID0gMDsgYnJlYWs7CisJICBjYXNlIDEzMDoKKwkgICAgYWxsX2xvZ2ljYWxzX2luc2lkZV9vdXRlcm1vc3RfZXh0ZW5kZWQgPSAxOyBicmVhazsKKwkgIGNhc2UgMTMxOgorCSAgICBhbGxfbG9naWNhbHNfaW5zaWRlX291dGVybW9zdF9leHRlbmRlZCA9IDA7IGJyZWFrOworCSAgY2FzZSAxMzI6CisJICAgIGJveGVzID0gTkVTVEVEOyBicmVhazsKKwkgIGNhc2UgMTMzOgorCSAgICBib3hlcyA9IENIQUlORUQ7IGJyZWFrOworCSAgY2FzZSAxMzQ6CisJICAgIGJveGVzID0gT05FU0VDVE9SOyBicmVhazsKKworCSAgLyogbW9yZSBmbGFncyAqLworCSAgY2FzZSAxNjA6CisJICAgIG5vX3JlcmVhZCA9IDE7IGJyZWFrOworCSAgY2FzZSAxNjE6CisJICAgIGxlYXZlX2xhc3QgPSAxOyBicmVhazsKKwl9CisgICAgfQorCisgICAgaWYgKG9wdGluZCA9PSBhcmdjICYmCisJKG9wdF9saXN0IHx8IG9wdF9vdXRfZ2VvbSB8fCBvcHRfb3V0X3B0X2dlb20gfHwgb3B0X3NpemUgfHwgdmVyaWZ5KSkgeworCUZJTEUgKnByb2NmOworCisJLyogdHJ5IGFsbCBrbm93biBkZXZpY2VzICovCisJdG90YWxfc2l6ZSA9IDA7CisKKwlwcm9jZiA9IGZvcGVuKFBST0NfUEFSVElUSU9OUywgInIiKTsKKwlpZiAoIXByb2NmKQorCSAgICBmcHJpbnRmKHN0ZGVyciwgXygiY2Fubm90IG9wZW4gJXNcbiIpLCBQUk9DX1BBUlRJVElPTlMpOworCWVsc2UgeworCSAgICB3aGlsZSAoKGRldiA9IG5leHRwcm9jKHByb2NmKSkgIT0gTlVMTCkgeworCSAgICAgICAgaWYgKGlzX2lkZV9jZHJvbV9vcl90YXBlKGRldikpCisJCSAgIGNvbnRpbnVlOworCSAgICAgICAgZ3B0X3dhcm5pbmcoZGV2LCAxKTsKKwkgICAgICAgIGlmIChvcHRfb3V0X2dlb20pCisJCSAgIGRvX2dlb20oZGV2LCAxKTsKKwkgICAgICAgIGlmIChvcHRfb3V0X3B0X2dlb20pCisJCSAgIGRvX3B0X2dlb20oZGV2LCAxKTsKKwkgICAgICAgIGlmIChvcHRfc2l6ZSkKKwkJICAgZG9fc2l6ZShkZXYsIDEpOworCSAgICAgICAgaWYgKG9wdF9saXN0IHx8IHZlcmlmeSkKKwkJICAgZG9fbGlzdChkZXYsIDEpOworCSAgICB9CisJICAgIGZjbG9zZShwcm9jZik7CisJfQorCisJaWYgKG9wdF9zaXplKQorCSAgcHJpbnRmKF8oInRvdGFsOiAlbGx1IGJsb2Nrc1xuIiksIHRvdGFsX3NpemUpOworCisJZXhpdChleGl0X3N0YXR1cyk7CisgICAgfQorCisgICAgaWYgKG9wdGluZCA9PSBhcmdjKSB7CisJaWYgKGFjdGl2YXRlKQorCSAgYWN0aXZhdGVfdXNhZ2UoZmRpc2sgPyAic2ZkaXNrIC1BIiA6IHByb2duKTsKKwllbHNlIGlmICh1bmhpZGUpCisJICB1bmhpZGVfdXNhZ2UoZmRpc2sgPyAic2ZkaXNrIC1VIiA6IHByb2duKTsKKwllbHNlCisJICB1c2FnZSgpOworICAgIH0KKworICAgIGlmIChvcHRfbGlzdCB8fCBvcHRfb3V0X2dlb20gfHwgb3B0X291dF9wdF9nZW9tIHx8IG9wdF9zaXplIHx8IHZlcmlmeSkgeworCXdoaWxlIChvcHRpbmQgPCBhcmdjKSB7CisJICAgIGdwdF93YXJuaW5nKGFyZ3Zbb3B0aW5kXSwgMSk7CisJICAgIGlmIChvcHRfb3V0X2dlb20pCisJICAgICAgZG9fZ2VvbShhcmd2W29wdGluZF0sIDApOworCSAgICBpZiAob3B0X291dF9wdF9nZW9tKQorCSAgICAgIGRvX3B0X2dlb20oYXJndltvcHRpbmRdLCAwKTsKKwkgICAgaWYgKG9wdF9zaXplKQorCSAgICAgIGRvX3NpemUoYXJndltvcHRpbmRdLCAwKTsKKwkgICAgaWYgKG9wdF9saXN0IHx8IHZlcmlmeSkKKwkgICAgICBkb19saXN0KGFyZ3Zbb3B0aW5kXSwgMCk7CisJICAgIG9wdGluZCsrOworCX0KKwlleGl0KGV4aXRfc3RhdHVzKTsKKyAgICB9CisKKyAgICBpZiAob3B0aW5kICE9IGFyZ2MtMSkKKwlncHRfd2FybmluZyhhcmd2W29wdGluZF0sIDApOworCisgICAgaWYgKGFjdGl2YXRlKSB7CisJZG9fYWN0aXZhdGUoYXJnditvcHRpbmQsIGFyZ2Mtb3B0aW5kLCBhY3RpdmF0ZWFyZyk7CisJZXhpdChleGl0X3N0YXR1cyk7CisgICAgfQorICAgIGlmICh1bmhpZGUpIHsKKwlkb191bmhpZGUoYXJnditvcHRpbmQsIGFyZ2Mtb3B0aW5kLCB1bmhpZGVhcmcpOworCWV4aXQoZXhpdF9zdGF0dXMpOworICAgIH0KKyAgICBpZiAoZG9faWQpIHsKKyAgICAgICAgaWYgKChkb19pZCAmIFBSSU5UX0lEKSAhPSAwICYmIG9wdGluZCAhPSBhcmdjLTIpCisJICBmYXRhbChfKCJ1c2FnZTogc2ZkaXNrIC0tcHJpbnQtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXJcbiIpKTsKKwllbHNlIGlmICgoZG9faWQgJiBDSEFOR0VfSUQpICE9IDAgJiYgb3B0aW5kICE9IGFyZ2MtMykKKwkgIGZhdGFsKF8oInVzYWdlOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgSWRcbiIpKTsKKwllbHNlIGlmIChvcHRpbmQgIT0gYXJnYy0zICYmIG9wdGluZCAhPSBhcmdjLTIpCisJICBmYXRhbChfKCJ1c2FnZTogc2ZkaXNrIC0taWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgW0lkXVxuIikpOworCWRvX2NoYW5nZV9pZChhcmd2W29wdGluZF0sIGFyZ3Zbb3B0aW5kKzFdLAorCQkgICAgIChvcHRpbmQgPT0gYXJnYy0yKSA/IDAgOiBhcmd2W29wdGluZCsyXSk7CisJZXhpdChleGl0X3N0YXR1cyk7CisgICAgfQorCisgICAgaWYgKG9wdGluZCAhPSBhcmdjLTEpCisgICAgICBmYXRhbChfKCJjYW4gc3BlY2lmeSBvbmx5IG9uZSBkZXZpY2UgKGV4Y2VwdCB3aXRoIC1sIG9yIC1zKVxuIikpOworICAgIGRldiA9IGFyZ3Zbb3B0aW5kXTsKKworICAgIGlmIChvcHRfcmVyZWFkKQorICAgICAgZG9fcmVyZWFkKGRldik7CisgICAgZWxzZSBpZiAocmVzdG9yZV9zZWN0b3JfZmlsZSkKKyAgICAgIHJlc3RvcmVfc2VjdG9ycyhkZXYpOworICAgIGVsc2UKKyAgICAgIGRvX2ZkaXNrKGRldik7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqICBILiBMaXN0aW5nIHRoZSBjdXJyZW50IHNpdHVhdGlvbgorICovCisKK3N0YXRpYyBpbnQKK215X29wZW4gKGNoYXIgKmRldiwgaW50IHJ3LCBpbnQgc2lsZW50KSB7CisgICAgaW50IGZkLCBtb2RlOworCisgICAgbW9kZSA9IChydyA/IE9fUkRXUiA6IE9fUkRPTkxZKTsKKyAgICBmZCA9IG9wZW4oZGV2LCBtb2RlKTsKKyAgICBpZiAoZmQgPCAwICYmICFzaWxlbnQpIHsKKwlwZXJyb3IoZGV2KTsKKwlpZiAocncpCisJCWZhdGFsKF8oImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIpLCBkZXYpOworCWVsc2UKKwkJZmF0YWwoXygiY2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIpLCBkZXYpOworICAgIH0KKyAgICByZXR1cm4gZmQ7Cit9CisKK3N0YXRpYyB2b2lkCitkb19saXN0IChjaGFyICpkZXYsIGludCBzaWxlbnQpIHsKKyAgICBpbnQgZmQ7CisgICAgc3RydWN0IGRpc2tfZGVzYyAqejsKKworICAgIGZkID0gbXlfb3BlbihkZXYsIDAsIHNpbGVudCk7CisgICAgaWYgKGZkIDwgMCkKKwlyZXR1cm47CisKKyAgICB6ID0gJm9sZHA7CisKKyAgICBmcmVlX3NlY3RvcnMoKTsKKyAgICBnZXRfY3lsaW5kZXJzaXplKGRldiwgZmQsIGR1bXAgPyAxIDogb3B0X2xpc3QgPyAwIDogMSk7CisgICAgZ2V0X3BhcnRpdGlvbnMoZGV2LCBmZCwgeik7CisKKyAgICBpZiAob3B0X2xpc3QpCisgICAgICBvdXRfcGFydGl0aW9ucyhkZXYsIHopOworCisgICAgaWYgKHZlcmlmeSkgeworCWlmIChwYXJ0aXRpb25zX29rKHopKQorCSAgd2FybihfKCIlczogT0tcbiIpLCBkZXYpOworCWVsc2UKKwkgIGV4aXRfc3RhdHVzID0gMTsKKyAgICB9CisKKyAgICBjbG9zZShmZCk7Cit9CisKK3N0YXRpYyB2b2lkCitkb19nZW9tIChjaGFyICpkZXYsIGludCBzaWxlbnQpIHsKKyAgICBpbnQgZmQ7CisgICAgc3RydWN0IGdlb21ldHJ5IFI7CisKKyAgICBmZCA9IG15X29wZW4oZGV2LCAwLCBzaWxlbnQpOworICAgIGlmIChmZCA8IDApCisJcmV0dXJuOworCisgICAgUiA9IGdldF9nZW9tZXRyeShkZXYsIGZkLCBzaWxlbnQpOworICAgIGlmIChSLmN5bGluZGVycykKKwlwcmludGYoXygiJXM6ICVsZCBjeWxpbmRlcnMsICVsZCBoZWFkcywgJWxkIHNlY3RvcnMvdHJhY2tcbiIpLAorCSAgICAgICBkZXYsIFIuY3lsaW5kZXJzLCBSLmhlYWRzLCBSLnNlY3RvcnMpOworCisgICAgY2xvc2UoZmQpOworfQorCitzdGF0aWMgdm9pZAorZG9fcHRfZ2VvbSAoY2hhciAqZGV2LCBpbnQgc2lsZW50KSB7CisgICAgaW50IGZkOworICAgIHN0cnVjdCBkaXNrX2Rlc2MgKno7CisgICAgc3RydWN0IGdlb21ldHJ5IFI7CisKKyAgICBmZCA9IG15X29wZW4oZGV2LCAwLCBzaWxlbnQpOworICAgIGlmIChmZCA8IDApCisJcmV0dXJuOworCisgICAgeiA9ICZvbGRwOworCisgICAgZnJlZV9zZWN0b3JzKCk7CisgICAgZ2V0X2N5bGluZGVyc2l6ZShkZXYsIGZkLCAxKTsKKyAgICBnZXRfcGFydGl0aW9ucyhkZXYsIGZkLCB6KTsKKworICAgIFIgPSBCOworCisgICAgaWYgKHotPnBhcnRubyAhPSAwICYmIGdldF9mZGlza19nZW9tZXRyeSh6KSkgeworCSAgICBSLmhlYWRzID0gRi5oZWFkczsKKwkgICAgUi5zZWN0b3JzID0gRi5zZWN0b3JzOworCSAgICBSLmN5bGluZGVyc2l6ZSA9IFIuaGVhZHMgKiBSLnNlY3RvcnM7CisJICAgIFIuY3lsaW5kZXJzID0gKFIuY3lsaW5kZXJzaXplID09IDApID8gMCA6CisJCSAgICBSLnRvdGFsX3NpemUgLyBSLmN5bGluZGVyc2l6ZTsKKyAgICB9CisKKyAgICBpZiAoUi5jeWxpbmRlcnMpCisJcHJpbnRmKF8oIiVzOiAlbGQgY3lsaW5kZXJzLCAlbGQgaGVhZHMsICVsZCBzZWN0b3JzL3RyYWNrXG4iKSwKKwkgICAgICAgZGV2LCBSLmN5bGluZGVycywgUi5oZWFkcywgUi5zZWN0b3JzKTsKKworICAgIGNsb3NlKGZkKTsKK30KKworLyogZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBlYXJsaWVyIGZkaXNrOiBwcm92aWRlIG9wdGlvbiAtcyAqLworc3RhdGljIHZvaWQKK2RvX3NpemUgKGNoYXIgKmRldiwgaW50IHNpbGVudCkgeworICAgIGludCBmZDsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZTsKKworICAgIGZkID0gbXlfb3BlbihkZXYsIDAsIHNpbGVudCk7CisgICAgaWYgKGZkIDwgMCkKKwlyZXR1cm47CisKKyAgICBpZiAoYmxrZGV2X2dldF9zZWN0b3JzKGZkLCAmc2l6ZSkgPT0gLTEpIHsKKwlpZiAoIXNpbGVudCkgeworCSAgICBwZXJyb3IoZGV2KTsKKwkgICAgZmF0YWwoXygiQ2Fubm90IGdldCBzaXplIG9mICVzXG4iKSwgZGV2KTsKKwl9CisJcmV0dXJuOworICAgIH0KKworICAgIHNpemUgLz0gMjsJCQkvKiBjb252ZXJ0IHNlY3RvcnMgdG8gYmxvY2tzICovCisKKyAgICAvKiBhIENEUk9NIGRyaXZlIHdpdGhvdXQgbW91bnRlZCBDRCB5aWVsZHMgTUFYSU5UICovCisgICAgaWYgKHNpbGVudCAmJiBzaXplID09ICgoMTw8MzApLTEpKQorICAgICAgcmV0dXJuOworCisgICAgaWYgKHNpbGVudCkKKyAgICAgIHByaW50ZigiJXM6ICU5bGx1XG4iLCBkZXYsIHNpemUpOworICAgIGVsc2UKKyAgICAgIHByaW50ZigiJWxsdVxuIiwgc2l6ZSk7CisKKyAgICB0b3RhbF9zaXplICs9IHNpemU7CisKKyAgICBjbG9zZShmZCk7Cit9CisKKy8qCisgKiBBY3RpdmF0ZTogdXN1YWxseSBvbmUgd2FudHMgdG8gaGF2ZSBhIHNpbmdsZSBwcmltYXJ5IHBhcnRpdGlvbgorICogdG8gYmUgYWN0aXZlLiBPUy8yIGZkaXNrIG1ha2VzIG5vbi1ib290YWJsZSBsb2dpY2FsIHBhcnRpdGlvbnMKKyAqIGFjdGl2ZSAtIEkgZG9uJ3Qga25vdyB3aGF0IHRoYXQgbWVhbnMgdG8gT1MvMiBCb290IE1hbmFnZXIuCisgKgorICogQ2FsbDogYWN0aXZhdGUgL2Rldi9oZGEgMiA1IDcJbWFrZSB0aGVzZSBwYXJ0aXRpb25zIGFjdGl2ZQorICoJCQkJCWFuZCB0aGUgcmVtYWluaW5nIG9uZXMgaW5hY3RpdmUKKyAqIE9yOiAgIHNmZGlzayAtQSAvZGV2L2hkYSAyIDUgNworICoKKyAqIElmIG9ubHkgYSBzaW5nbGUgcGFydGl0aW9uIG11c3QgYmUgYWN0aXZlLCBvbmUgbWF5IGFsc28gdXNlIHRoZSBmb3JtCisgKiAgICAgICBzZmRpc2sgLUEyIC9kZXYvaGRhCisgKgorICogV2l0aCAiYWN0aXZhdGUgL2Rldi9oZGEiIG9yICJzZmRpc2sgLUEgL2Rldi9oZGEiIHRoZSBhY3RpdmUgcGFydGl0aW9ucworICogYXJlIGxpc3RlZCBidXQgbm90IGNoYW5nZWQuIFRvIGdldCB6ZXJvIGFjdGl2ZSBwYXJ0aXRpb25zLCB1c2UKKyAqICJhY3RpdmF0ZSAvZGV2L2hkYSBub25lIiBvciAic2ZkaXNrIC1BIC9kZXYvaGRhIG5vbmUiLgorICogVXNlIHNvbWV0aGluZyBsaWtlIGBlY2hvICIsLCwqIiB8IHNmZGlzayAtTjIgL2Rldi9oZGEnIHRvIG9ubHkgbWFrZQorICogL2Rldi9oZGEyIGFjdGl2ZSwgd2l0aG91dCBjaGFuZ2luZyBvdGhlciBwYXJ0aXRpb25zLgorICoKKyAqIEEgd2FybmluZyB3aWxsIGJlIGdpdmVuIGlmIGFmdGVyIHRoZSBjaGFuZ2Ugbm90IHByZWNpc2VseSBvbmUgcHJpbWFyeQorICogcGFydGl0aW9uIGlzIGFjdGl2ZS4KKyAqCisgKiBUaGUgcHJlc2VudCBzeW50YXggd2FzIGNob3NlbiB0byBiZSAoc29tZXdoYXQpIGNvbXBhdGlibGUgd2l0aCB0aGUKKyAqIGFjdGl2YXRlIGZyb20gdGhlIExJTE8gcGFja2FnZS4KKyAqLworc3RhdGljIHZvaWQKK3NldF9hY3RpdmUgKHN0cnVjdCBkaXNrX2Rlc2MgKnosIGNoYXIgKnBuYW0pIHsKKyAgICBpbnQgcG5vOworCisgICAgcG5vID0gYXNjX3RvX2luZGV4KHBuYW0sIHopOworICAgIGlmICh6LT5wYXJ0aXRpb25zW3Bub10ucHR5cGUgPT0gRE9TX1RZUEUpCisJICAgIHotPnBhcnRpdGlvbnNbcG5vXS5wLmJvb3RhYmxlID0gMHg4MDsKK30KKworc3RhdGljIHZvaWQKK2RvX2FjdGl2YXRlIChjaGFyICoqYXYsIGludCBhYywgY2hhciAqYXJnKSB7CisgICAgY2hhciAqZGV2ID0gYXZbMF07CisgICAgaW50IGZkOworICAgIGludCBydywgaSwgcG5vLCBscG5vOworICAgIHN0cnVjdCBkaXNrX2Rlc2MgKno7CisKKyAgICB6ID0gJm9sZHA7CisKKyAgICBydyA9ICghbm9fd3JpdGUgJiYgKGFyZyB8fCBhYyA+IDEpKTsKKyAgICBmZCA9IG15X29wZW4oZGV2LCBydywgMCk7CisKKyAgICBmcmVlX3NlY3RvcnMoKTsKKyAgICBnZXRfY3lsaW5kZXJzaXplKGRldiwgZmQsIDEpOworICAgIGdldF9wYXJ0aXRpb25zKGRldiwgZmQsIHopOworCisgICAgaWYgKCFhcmcgJiYgYWMgPT0gMSkgeworCS8qIGxpc3QgYWN0aXZlIHBhcnRpdGlvbnMgKi8KKwlmb3IgKHBubz0wOyBwbm8gPCB6LT5wYXJ0bm87IHBubysrKSB7CisJICAgIGlmICh6LT5wYXJ0aXRpb25zW3Bub10ucC5ib290YWJsZSkgeworCQlscG5vID0gaW5kZXhfdG9fbGludXgocG5vLCB6KTsKKwkJaWYgKHBubyA9PSBsaW51eF90b19pbmRleChscG5vLCB6KSkKKwkJICBwcmludGYoIiVzXG4iLCBwYXJ0bmFtZShkZXYsIGxwbm8sIDApKTsKKwkJZWxzZQorCQkgIHByaW50ZigiJXMjJWRcbiIsIGRldiwgcG5vKTsKKwkJaWYgKHotPnBhcnRpdGlvbnNbcG5vXS5wLmJvb3RhYmxlICE9IDB4ODApCisJCSAgd2FybihfKCJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iKSwKKwkJICAgICAgIHotPnBhcnRpdGlvbnNbcG5vXS5wLmJvb3RhYmxlKTsKKwkgICAgfQorCX0KKyAgICB9IGVsc2UgeworCS8qIGNsZWFyIGBhY3RpdmUgYnl0ZScgZXZlcnl3aGVyZSAqLworCWZvciAocG5vPTA7IHBubyA8IHotPnBhcnRubzsgcG5vKyspCisJICAgIGlmICh6LT5wYXJ0aXRpb25zW3Bub10ucHR5cGUgPT0gRE9TX1RZUEUpCisJCXotPnBhcnRpdGlvbnNbcG5vXS5wLmJvb3RhYmxlID0gMDsKKworCS8qIHRoZW4gc2V0IHdoZXJlIGRlc2lyZWQgKi8KKwlpZiAoYWMgPT0gMSkKKwkgIHNldF9hY3RpdmUoeiwgYXJnKTsKKwllbHNlIGZvcihpPTE7IGk8YWM7IGkrKykKKwkgIHNldF9hY3RpdmUoeiwgYXZbaV0pOworCisJLyogdGhlbiB3cml0ZSB0byBkaXNrICovCisJaWYgKHdyaXRlX3BhcnRpdGlvbnMoZGV2LCBmZCwgeikpCisJICB3YXJuKF8oIkRvbmVcblxuIikpOworCWVsc2UKKwkgIGV4aXRfc3RhdHVzID0gMTsKKyAgICB9CisgICAgaSA9IDA7CisgICAgZm9yIChwbm89MDsgcG5vIDwgei0+cGFydG5vICYmIHBubyA8IDQ7IHBubysrKQorICAgICAgaWYgKHotPnBhcnRpdGlvbnNbcG5vXS5wLmJvb3RhYmxlKQorCWkrKzsKKyAgICBpZiAoaSAhPSAxKQorICAgICAgd2FybihfKCJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKwkgICAiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIpLCBpKTsKKworICAgIGNsb3NlKGZkKTsKK30KKworc3RhdGljIHZvaWQKK3NldF91bmhpZGRlbiAoc3RydWN0IGRpc2tfZGVzYyAqeiwgY2hhciAqcG5hbSkgeworICAgIGludCBwbm87CisgICAgdW5zaWduZWQgY2hhciBpZDsKKworICAgIHBubyA9IGFzY190b19pbmRleChwbmFtLCB6KTsKKyAgICBpZCA9IHotPnBhcnRpdGlvbnNbcG5vXS5wLnN5c190eXBlOworICAgIGlmIChpZCA9PSAweDExIHx8IGlkID09IDB4MTQgfHwgaWQgPT0gMHgxNiB8fCBpZCA9PSAweDE3KQorICAgICAgaWQgLT0gMHgxMDsKKyAgICBlbHNlCisgICAgICBmYXRhbChfKCJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iKSwgcG5hbSwgaWQpOworICAgIHotPnBhcnRpdGlvbnNbcG5vXS5wLnN5c190eXBlID0gaWQ7Cit9CisKKy8qCisgKiBtYXliZSByZW1vdmUgYW5kIG1ha2UgcGFydCBvZiAtLWNoYW5nZS1pZAorICovCitzdGF0aWMgdm9pZAorZG9fdW5oaWRlIChjaGFyICoqYXYsIGludCBhYywgY2hhciAqYXJnKSB7CisgICAgY2hhciAqZGV2ID0gYXZbMF07CisgICAgaW50IGZkLCBydywgaTsKKyAgICBzdHJ1Y3QgZGlza19kZXNjICp6OworCisgICAgeiA9ICZvbGRwOworCisgICAgcncgPSAhbm9fd3JpdGU7CisgICAgZmQgPSBteV9vcGVuKGRldiwgcncsIDApOworCisgICAgZnJlZV9zZWN0b3JzKCk7CisgICAgZ2V0X2N5bGluZGVyc2l6ZShkZXYsIGZkLCAxKTsKKyAgICBnZXRfcGFydGl0aW9ucyhkZXYsIGZkLCB6KTsKKworICAgIC8qIHVuaGlkZSB3aGVyZSBkZXNpcmVkICovCisgICAgaWYgKGFjID09IDEpCisgICAgICBzZXRfdW5oaWRkZW4oeiwgYXJnKTsKKyAgICBlbHNlIGZvcihpPTE7IGk8YWM7IGkrKykKKyAgICAgIHNldF91bmhpZGRlbih6LCBhdltpXSk7CisKKyAgICAvKiB0aGVuIHdyaXRlIHRvIGRpc2sgKi8KKyAgICBpZiAod3JpdGVfcGFydGl0aW9ucyhkZXYsIGZkLCB6KSkKKyAgICAgIHdhcm4oXygiRG9uZVxuXG4iKSk7CisgICAgZWxzZQorICAgICAgZXhpdF9zdGF0dXMgPSAxOworCisgICAgY2xvc2UoZmQpOworfQorCitzdGF0aWMgdm9pZAorZG9fY2hhbmdlX2lkKGNoYXIgKmRldiwgY2hhciAqcG5hbSwgY2hhciAqaWQpIHsKKyAgICBpbnQgZmQsIHJ3LCBwbm87CisgICAgc3RydWN0IGRpc2tfZGVzYyAqejsKKyAgICB1bnNpZ25lZCBsb25nIGk7CisKKyAgICB6ID0gJm9sZHA7CisKKyAgICBydyA9ICFub193cml0ZTsKKyAgICBmZCA9IG15X29wZW4oZGV2LCBydywgMCk7CisKKyAgICBmcmVlX3NlY3RvcnMoKTsKKyAgICBnZXRfY3lsaW5kZXJzaXplKGRldiwgZmQsIDEpOworICAgIGdldF9wYXJ0aXRpb25zKGRldiwgZmQsIHopOworCisgICAgcG5vID0gYXNjX3RvX2luZGV4KHBuYW0sIHopOworICAgIGlmIChpZCA9PSAwKSB7CisgICAgICBwcmludGYoIiV4XG4iLCB6LT5wYXJ0aXRpb25zW3Bub10ucC5zeXNfdHlwZSk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIGkgPSBzdHJ0b3VsKGlkLCBOVUxMLCAxNik7CisgICAgaWYgKGkgPiAyNTUpCisgICAgICBmYXRhbChfKCJCYWQgSWQgJWx4XG4iKSwgaSk7CisgICAgei0+cGFydGl0aW9uc1twbm9dLnAuc3lzX3R5cGUgPSBpOworCisgICAgaWYgKHdyaXRlX3BhcnRpdGlvbnMoZGV2LCBmZCwgeikpCisgICAgICB3YXJuKF8oIkRvbmVcblxuIikpOworICAgIGVsc2UKKyAgICAgIGV4aXRfc3RhdHVzID0gMTsKKworICAgIGNsb3NlKGZkKTsKK30KKworc3RhdGljIHZvaWQKK2RvX3JlcmVhZChjaGFyICpkZXYpIHsKKyAgICBpbnQgZmQ7CisKKyAgICBmZCA9IG15X29wZW4oZGV2LCAwLCAwKTsKKyAgICBpZiAocmVyZWFkX2lvY3RsKGZkKSkKKyAgICAgIGRvX3dhcm4oXygiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UuXG4iKSk7CisKKyAgICBjbG9zZShmZCk7Cit9CisKKy8qCisgKiAgSS4gV3JpdGluZyB0aGUgbmV3IHNpdHVhdGlvbgorICovCisKK3N0YXRpYyB2b2lkCitkb19mZGlzayhjaGFyICpkZXYpeworICAgIGludCBmZDsKKyAgICBpbnQgYywgYW5zd2VyOworICAgIHN0cnVjdCBzdGF0IHN0YXRidWY7CisgICAgaW50IGludGVyYWN0aXZlID0gaXNhdHR5KDApOworICAgIHN0cnVjdCBkaXNrX2Rlc2MgKno7CisKKyAgICBpZiAoc3RhdChkZXYsICZzdGF0YnVmKSA8IDApIHsKKwlwZXJyb3IoZGV2KTsKKwlmYXRhbChfKCJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIpLCBkZXYpOworICAgIH0KKyAgICBpZiAoIVNfSVNCTEsoc3RhdGJ1Zi5zdF9tb2RlKSkgeworCWRvX3dhcm4oXygiV2FybmluZzogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlXG4iKSwgZGV2KTsKKwlub19yZXJlYWQgPSAxOworICAgIH0KKyAgICBmZCA9IG15X29wZW4oZGV2LCAhbm9fd3JpdGUsIDApOworCisgICAgaWYgKCFub193cml0ZSAmJiAhbm9fcmVyZWFkKSB7CisJd2FybihfKCJDaGVja2luZyB0aGF0IG5vLW9uZSBpcyB1c2luZyB0aGlzIGRpc2sgcmlnaHQgbm93IC4uLlxuIikpOworCWlmIChyZXJlYWRfaW9jdGwoZmQpKSB7CisJICAgIGRvX3dhcm4oXygiXG5UaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisJCSAgICJVbW91bnQgYWxsIGZpbGUgc3lzdGVtcywgYW5kIHN3YXBvZmYgYWxsIHN3YXAgcGFydGl0aW9ucyBvbiB0aGlzIGRpc2suXG4iCisJCSAgICJVc2UgdGhlIC0tbm8tcmVyZWFkIGZsYWcgdG8gc3VwcHJlc3MgdGhpcyBjaGVjay5cbiIpKTsKKwkgICAgaWYgKCFmb3JjZSkgeworCQlkb193YXJuKF8oIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIGFsbCBjaGVja3MuXG4iKSk7CisJCWV4aXQoMSk7CisJICAgIH0KKwl9IGVsc2UKKwkgIHdhcm4oXygiT0tcbiIpKTsKKyAgICB9CisKKyAgICB6ID0gJm9sZHA7CisKKyAgICBmcmVlX3NlY3RvcnMoKTsKKyAgICBnZXRfY3lsaW5kZXJzaXplKGRldiwgZmQsIDApOworICAgIGdldF9wYXJ0aXRpb25zKGRldiwgZmQsIHopOworCisgICAgcHJpbnRmKF8oIk9sZCBzaXR1YXRpb246XG4iKSk7CisgICAgb3V0X3BhcnRpdGlvbnMoZGV2LCB6KTsKKworICAgIGlmIChvbmVfb25seSAmJiAob25lX29ubHlfcG5vID0gbGludXhfdG9faW5kZXgob25lX29ubHksIHopKSA8IDApCisgICAgICBmYXRhbChfKCJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCBjaGFuZ2UgaXRcbiIpLCBvbmVfb25seSk7CisKKyAgICB6ID0gJm5ld3A7CisKKyAgICB3aGlsZSgxKSB7CisKKwlyZWFkX2lucHV0KGRldiwgaW50ZXJhY3RpdmUsIHopOworCisJcHJpbnRmKF8oIk5ldyBzaXR1YXRpb246XG4iKSk7CisJb3V0X3BhcnRpdGlvbnMoZGV2LCB6KTsKKworCWlmICghcGFydGl0aW9uc19vayh6KSAmJiAhZm9yY2UpIHsKKwkgICAgaWYgKCFpbnRlcmFjdGl2ZSkKKwkgICAgICBmYXRhbChfKCJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKwkJICAgICAgIihJZiB5b3UgcmVhbGx5IHdhbnQgdGhpcywgdXNlIHRoZSAtLWZvcmNlIG9wdGlvbi4pXG4iKSk7CisJICAgIGVsc2UKKwkgICAgICBkb193YXJuKF8oIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIpKTsKKwl9CisgICAgICBhc2s6CisJaWYgKGludGVyYWN0aXZlKSB7CisJICAgIGlmIChub193cml0ZSkKKwkgICAgICBwcmludGYoXygiQXJlIHlvdSBzYXRpc2ZpZWQgd2l0aCB0aGlzPyBbeW5xXSAiKSk7CisJICAgIGVsc2UKKwkgICAgICBwcmludGYoXygiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiKSk7CisJICAgIGFuc3dlciA9IGMgPSBnZXRjaGFyKCk7CisJICAgIHdoaWxlIChjICE9ICdcbicgJiYgYyAhPSBFT0YpCisJICAgICAgYyA9IGdldGNoYXIoKTsKKwkgICAgaWYgKGMgPT0gRU9GKQorCQlwcmludGYoXygiXG5zZmRpc2s6IHByZW1hdHVyZSBlbmQgb2YgaW5wdXRcbiIpKTsKKwkgICAgaWYgKGMgPT0gRU9GIHx8IGFuc3dlciA9PSAncScgfHwgYW5zd2VyID09ICdRJykgeworCQlmYXRhbChfKCJRdWl0dGluZyAtIG5vdGhpbmcgY2hhbmdlZFxuIikpOworCSAgICB9IGVsc2UgaWYgKGFuc3dlciA9PSAnbicgfHwgYW5zd2VyID09ICdOJykgeworCQljb250aW51ZTsKKwkgICAgfSBlbHNlIGlmIChhbnN3ZXIgPT0gJ3knIHx8IGFuc3dlciA9PSAnWScpIHsKKwkJYnJlYWs7CisJICAgIH0gZWxzZSB7CisJCXByaW50ZihfKCJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIikpOworCQlnb3RvIGFzazsKKwkgICAgfQorCX0gZWxzZQorCSAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHdyaXRlX3BhcnRpdGlvbnMoZGV2LCBmZCwgeikpCisgICAgICBwcmludGYoXygiU3VjY2Vzc2Z1bGx5IHdyb3RlIHRoZSBuZXcgcGFydGl0aW9uIHRhYmxlXG5cbiIpKTsKKyAgICBlbHNlCisgICAgICBleGl0X3N0YXR1cyA9IDE7CisKKyAgICByZXJlYWRfZGlza19wYXJ0aXRpb24oZGV2LCBmZCk7CisKKyAgICB3YXJuKF8oIklmIHlvdSBjcmVhdGVkIG9yIGNoYW5nZWQgYSBET1MgcGFydGl0aW9uLCAvZGV2L2ZvbzcsIHNheSwgdGhlbiB1c2UgZGQoMSlcbiIKKwkgInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKwkgIihTZWUgZmRpc2soOCkuKVxuIikpOworCisgICAgc3luYygpOwkJCS8qIHN1cGVyc3RpdGlvbiAqLworICAgIGV4aXQoZXhpdF9zdGF0dXMpOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svc2ZkaXNrLmV4YW1wbGVzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZmRpc2svc2ZkaXNrLmV4YW1wbGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZTY3MWQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9mZGlzay9zZmRpc2suZXhhbXBsZXMKQEAgLTAsMCArMSwyNjQgQEAKK0V4YW1wbGVzIG9mIHRoZSB1c2Ugb2Ygc2ZkaXNrIDMuMCAodG8gcGFydGl0aW9uIGEgZGlzaykKK0lucHV0IGxpbmVzIGhhdmUgZmllbGRzIDxzdGFydD4sPHNpemU+LDx0eXBlPi4uLiAtIHNlZSBzZmRpc2suOC4KK1VzdWFsbHkgbm8gPHN0YXJ0PiBpcyBnaXZlbiwgYW5kIGlucHV0IGxpbmVzIHN0YXJ0IHdpdGggYSBjb21tYS4KKworQmVmb3JlIGRvaW5nIGFueXRoaW5nIHdpdGggYSBkaXNrLCBtYWtlIHN1cmUgaXQgaXMgbm90IGluIHVzZTsKK3VubW91bnQgYWxsIGl0cyBmaWxlIHN5c3RlbXMsIGFuZCBzYXkgc3dhcG9mZiB0byBpdHMgc3dhcCBwYXJ0aXRpb25zLgorKFRoZSBmaW5hbCBCTEtSUlBBUlQgaW9jdGwgd2lsbCBmYWlsIGlmIGFueXRoaW5nIGVsc2Ugc3RpbGwgdXNlcwordGhlIGRpc2ssIGFuZCB5b3Ugd2lsbCBoYXZlIHRvIHJlYm9vdC4gSXQgaXMgZWFzaWVyIHRvIGZpcnN0IG1ha2UKK3N1cmUgdGhhdCBub3RoaW5nIHVzZXMgdGhlIGRpc2ssIGUuZy4sIGJ5IHRlc3Rpbmc6CisJJSB1bW91bnQgL2Rldi9zZGIxCisJJSBzZmRpc2sgLVIgL2Rldi9zZGIKKwlCTEtSUlBBUlQ6IERldmljZSBvciByZXNvdXJjZSBidXN5CisgICAgICAqIERldmljZSBidXN5IGZvciByZXZhbGlkYXRpb24gKHVzYWdlPTIpCisJJSBzd2Fwb2ZmIC9kZXYvc2RiMworCSUgc2ZkaXNrIC1SIC9kZXYvc2RiCisgICAgICAqIHNkYjogc2RiMSA8IHNkYjUgc2RiNiA+IHNkYjMKKwklCitOb3RlIHRoYXQgdGhlIHN0YXJyZWQgbWVzc2FnZXMgYXJlIGtlcm5lbCBtZXNzYWdlcywgdGhhdCBtYXkgYmUKK2xvZ2dlZCBzb21ld2hlcmUsIG9yIHdyaXR0ZW4gdG8gc29tZSBvdGhlciBjb25zb2xlLgorSW4gc2ZkaXNrIDMuMDEgc2ZkaXNrIGF1dG9tYXRpY2FsbHkgZG9lcyB0aGlzIGNoZWNrLCB1bmxlc3MgdG9sZCBub3QgdG8uKQorCisxLiBPbmUgYmlnIHBhcnRpdGlvbjoKKwlzZmRpc2sgL2Rldi9oZGEgPDwgRU9GCisJOworCUVPRgorCisoSWYgdGhlcmUgd2FzIGdhcmJhZ2Ugb24gdGhlIGRpc2sgYmVmb3JlLCB5b3UgbWF5IGdldCBlcnJvciBtZXNzYWdlcworbGlrZTogYEVSUk9SOiBzZWN0b3IgMCBkb2VzIG5vdCBoYXZlIGFuIG1zZG9zIHNpZ25hdHVyZScKK2FuZCBgL2Rldi9oZGE6IHVucmVjb2duaXplZCBwYXJ0aXRpb24nLiBUaGlzIGRvZXMgbm90IG1hdHRlcgoraWYgeW91IHdyaXRlIGFuIGVudGlyZWx5IGZyZXNoIHBhcnRpdGlvbiB0YWJsZSBhbnl3YXkuKQorCitUaGUgb3V0cHV0IHdpbGwgYmU6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorT2xkIHNpdHVhdGlvbjoKKy4uLgorTmV3IHNpdHVhdGlvbjoKK1VuaXRzID0gY3lsaW5kZXJzIG9mIDIwODg5NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gMAorCisgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAjYmxvY2tzICAgSWQgIFN5c3RlbQorL2Rldi9oZGExICAgICAgICAgIDArICAgMTAyMyAgICAxMDI0LSAgIDIwODg5NSsgIDgzICBMaW51eCBuYXRpdmUKK1N1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZQorICBoZGE6IGhkYTEKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitXcml0aW5nIGFuZCByZXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSB0YWtlcyBhIGZldyBzZWNvbmRzIC0KK2Rvbid0IGJlIGFsYXJtZWQgaWYgbm90aGluZyBoYXBwZW5zIGZvciBzaXggc2Vjb25kcyBvciBzby4KKworCisyLiBUaHJlZSBwcmltYXJ5IHBhcnRpdGlvbnM6IHR3byBvZiBzaXplIDUwTUIgYW5kIHRoZSByZXN0OgorCXNmZGlzayAvZGV2L2hkYSAtdU0gPDwgRU9GCisJLDUwCisJLDUwCisJOworCUVPRgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK05ldyBzaXR1YXRpb246CitVbml0cyA9IG1lZ2FieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAwCisKKyAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgICBNQiAgICNibG9ja3MgICBJZCAgU3lzdGVtCisvZGV2L2hkYTEgICAgICAgICAwKyAgICA1MC0gICAgNTEtICAgIDUxMjAzKyAgODMgIExpbnV4IG5hdGl2ZQorL2Rldi9oZGEyICAgICAgICA1MCsgICAxMDAtICAgIDUxLSAgICA1MTIwNCAgIDgzICBMaW51eCBuYXRpdmUKKy9kZXYvaGRhMyAgICAgICAxMDArICAgMjAzICAgIDEwNC0gICAxMDY0ODggICA4MyAgTGludXggbmF0aXZlCitTdWNjZXNzZnVsbHkgd3JvdGUgdGhlIG5ldyBwYXJ0aXRpb24gdGFibGUKKyAgaGRhOiBoZGExIGhkYTIgaGRhMworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy9kZXYvaGRhMSBpcyBvbmUgYmxvY2sgKGluIGZhY3Qgb25seSBoYWxmIGEgYmxvY2spIHNob3J0ZXIgdGhhbgorL2Rldi9oZGEyIGJlY2F1c2UgaXRzIHN0YXJ0IGhhZCB0byBiZSBzaGlmdGVkIGF3YXkgZnJvbSB6ZXJvIGluCitvcmRlciB0byBsZWF2ZSByb29tIGZvciB0aGUgTWFzdGVyIEJvb3QgUmVjb3JkIChNQlIpLgorCisKKzMuIEEgMU1CIE9TMiBCb290IE1hbmFnZXIgcGFydGl0aW9uLCBhIDUwTUIgRE9TIHBhcnRpdGlvbiwKKyAgIGFuZCB0aHJlZSBleHRlbmRlZCBwYXJ0aXRpb25zIChET1MgRDosIExpbnV4IHN3YXAsIExpbnV4KToKKwlzZmRpc2sgL2Rldi9oZGEgLXVNIDw8IEVPRgorCSwxLGEKKwksNTAsNgorCSwsRQorCTsKKwksMjAsNAorCSwxNixTCisJOworCUVPRgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgICBNQiAgICNibG9ja3MgICBJZCAgU3lzdGVtCisvZGV2L2hkYTEgICAgICAgICAwKyAgICAgMS0gICAgIDItICAgICAxMjIzKyAgIGEgIE9TLzIgQm9vdCBNYW5hZ2VyCisvZGV2L2hkYTIgICAgICAgICAxKyAgICA1MS0gICAgNTEtICAgIDUxMjA0ICAgIDYgIERPUyAxNi1iaXQgRkFUID49MzJNCisvZGV2L2hkYTMgICAgICAgIDUxKyAgIDIwMyAgICAxNTMtICAgMTU2NDY4ICAgIDUgIEV4dGVuZGVkCisvZGV2L2hkYTQgICAgICAgICAwICAgICAgLSAgICAgIDAgICAgICAgICAwICAgIDAgIEVtcHR5CisvZGV2L2hkYTUgICAgICAgIDUxKyAgICA3MS0gICAgMjEtICAgIDIwNjAzKyAgIDQgIERPUyAxNi1iaXQgRkFUIDwzMk0KKy9kZXYvaGRhNiAgICAgICAgNzErICAgIDg3LSAgICAxNy0gICAgMTY1MjMrICA4MiAgTGludXggc3dhcAorL2Rldi9oZGE3ICAgICAgICA4NysgICAyMDMgICAgMTE3LSAgIDExOTMzOSsgIDgzICBMaW51eCBuYXRpdmUKK1N1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZQorICBoZGE6IGhkYTEgaGRhMiBoZGEzIDwgaGRhNSBoZGE2IGhkYTcgPgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0FsbCB0aGVzZSByb3VuZGVkIG51bWJlcnMgbG9vayBiZXR0ZXIgaW4gY3lsaW5kZXIgdW5pdHM6CisJJSBzZmRpc2sgLWwgL2Rldi9oZGEKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAjYmxvY2tzICAgSWQgIFN5c3RlbQorL2Rldi9oZGExICAgICAgICAgIDArICAgICAgNSAgICAgICA2LSAgICAgMTIyMysgICBhICBPUy8yIEJvb3QgTWFuYWdlcgorL2Rldi9oZGEyICAgICAgICAgIDYgICAgIDI1NiAgICAgMjUxICAgICA1MTIwNCAgICA2ICBET1MgMTYtYml0IEZBVCA+PTMyTQorL2Rldi9oZGEzICAgICAgICAyNTcgICAgMTAyMyAgICAgNzY3ICAgIDE1NjQ2OCAgICA1ICBFeHRlbmRlZAorL2Rldi9oZGE0ICAgICAgICAgIDAgICAgICAgLSAgICAgICAwICAgICAgICAgMCAgICAwICBFbXB0eQorL2Rldi9oZGE1ICAgICAgICAyNTcrICAgIDM1NyAgICAgMTAxLSAgICAyMDYwMysgICA0ICBET1MgMTYtYml0IEZBVCA8MzJNCisvZGV2L2hkYTYgICAgICAgIDM1OCsgICAgNDM4ICAgICAgODEtICAgIDE2NTIzKyAgODIgIExpbnV4IHN3YXAKKy9kZXYvaGRhNyAgICAgICAgNDM5KyAgIDEwMjMgICAgIDU4NS0gICAxMTkzMzkrICA4MyAgTGludXggbmF0aXZlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQnV0IHN0aWxsIC0gd2h5IGRvZXMgL2Rldi9oZGE1IG5vdCBzdGFydCBvbiBhIGN5bGluZGVyIGJvdW5kYXJ5PworQmVjYXVzZSBpdCBpcyBjb250YWluZWQgaW4gYW4gZXh0ZW5kZWQgcGFydGl0aW9uIHRoYXQgZG9lcy4KK09mIHRoZSBjaGFpbiBvZiBleHRlbmRlZCBwYXJ0aXRpb25zLCB1c3VhbGx5IG9ubHkgdGhlIGZpcnN0IGlzCitzaG93bi4gKFRoZSBvdGhlcnMgaGF2ZSBubyBuYW1lIHVuZGVyIExpbnV4IGFueXdheS4pIEJ1dAordGhlc2UgYWRkaXRpb25hbCBleHRlbmRlZCBwYXJ0aXRpb25zIGNhbiBiZSBtYWRlIHZpc2libGU6CisJJSBzZmRpc2sgLWwgLXggL2Rldi9oZGEKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAjYmxvY2tzICAgSWQgIFN5c3RlbQorL2Rldi9oZGExICAgICAgICAgIDArICAgICAgNSAgICAgICA2LSAgICAgMTIyMysgICBhICBPUy8yIEJvb3QgTWFuYWdlcgorL2Rldi9oZGEyICAgICAgICAgIDYgICAgIDI1NiAgICAgMjUxICAgICA1MTIwNCAgICA2ICBET1MgMTYtYml0IEZBVCA+PTMyTQorL2Rldi9oZGEzICAgICAgICAyNTcgICAgMTAyMyAgICAgNzY3ICAgIDE1NjQ2OCAgICA1ICBFeHRlbmRlZAorL2Rldi9oZGE0ICAgICAgICAgIDAgICAgICAgLSAgICAgICAwICAgICAgICAgMCAgICAwICBFbXB0eQorCisvZGV2L2hkYTUgICAgICAgIDI1NysgICAgMzU3ICAgICAxMDEtICAgIDIwNjAzKyAgIDQgIERPUyAxNi1iaXQgRkFUIDwzMk0KKyAgICAtICAgICAgICAgICAgMzU4ICAgIDEwMjMgICAgIDY2NiAgICAxMzU4NjQgICAgNSAgRXh0ZW5kZWQKKyAgICAtICAgICAgICAgICAgMjU3ICAgICAyNTYgICAgICAgMCAgICAgICAgIDAgICAgMCAgRW1wdHkKKyAgICAtICAgICAgICAgICAgMjU3ICAgICAyNTYgICAgICAgMCAgICAgICAgIDAgICAgMCAgRW1wdHkKKworL2Rldi9oZGE2ICAgICAgICAzNTgrICAgIDQzOCAgICAgIDgxLSAgICAxNjUyMysgIDgyICBMaW51eCBzd2FwCisgICAgLSAgICAgICAgICAgIDQzOSAgICAxMDIzICAgICA1ODUgICAgMTE5MzQwICAgIDUgIEV4dGVuZGVkCisgICAgLSAgICAgICAgICAgIDM1OCAgICAgMzU3ICAgICAgIDAgICAgICAgICAwICAgIDAgIEVtcHR5CisgICAgLSAgICAgICAgICAgIDM1OCAgICAgMzU3ICAgICAgIDAgICAgICAgICAwICAgIDAgIEVtcHR5CisKKy9kZXYvaGRhNyAgICAgICAgNDM5KyAgIDEwMjMgICAgIDU4NS0gICAxMTkzMzkrICA4MyAgTGludXggbmF0aXZlCisgICAgLSAgICAgICAgICAgIDQzOSAgICAgNDM4ICAgICAgIDAgICAgICAgICAwICAgIDAgIEVtcHR5CisgICAgLSAgICAgICAgICAgIDQzOSAgICAgNDM4ICAgICAgIDAgICAgICAgICAwICAgIDAgIEVtcHR5CisgICAgLSAgICAgICAgICAgIDQzOSAgICAgNDM4ICAgICAgIDAgICAgICAgICAwICAgIDAgIEVtcHR5CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaHkgdGhlIGVtcHR5IDR0aCBpbnB1dCBsaW5lPyBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGV4dGVuZGVkIHBhcnRpdGlvbnMKK3N0YXJ0cyBhZnRlciB0aGF0IG9mIHRoZSBmb3VyIHByaW1hcnkgcGFydGl0aW9ucy4KK1lvdSBmb3JjZSBhbiBlbXB0eSBwYXJ0aXRpb24gd2l0aCBhICIsMCIgaW5wdXQgbGluZSwgYnV0IGhlcmUgYWxsCitzcGFjZSB3YXMgZGl2aWRlZCBhbHJlYWR5LCBzbyB0aGUgZm91cnRoIHBhcnRpdGlvbiBiZWNhbWUgZW1wdHkKK2F1dG9tYXRpY2FsbHkuCisKK0hvdyBkaWQgSSBrbm93IGFib3V0IDQsNixhLEUsUz8gV2VsbCwgRSxTLEwgc3RhbmQgZm9yIEV4dGVuZGVkLAorU3dhcCBhbmQgTGludXguIFRoZSBvdGhlciB2YWx1ZXMgYXJlIGhleGFkZWNpbWFsIGFuZCBjb21lIGZyb20KK3RoZSB0YWJsZToKKwklIHNmZGlzayAtVAorCUlkICBOYW1lCisJCisJIDAgIEVtcHR5CisJIDEgIERPUyAxMi1iaXQgRkFUCisJIDIgIFhFTklYIHJvb3QKKwkgMyAgWEVOSVggdXNyCisJIDQgIERPUyAxNi1iaXQgRkFUIDwzMk0KKwkgNSAgRXh0ZW5kZWQKKwkgNiAgRE9TIDE2LWJpdCBGQVQgPj0zMk0KKwkgNyAgT1MvMiBIUEZTIG9yIFFOWCBvciBBZHZhbmNlZCBVTklYCisJIDggIEFJWCBkYXRhCisJIDkgIEFJWCBib290IG9yIENvaGVyZW50CisJIGEgIE9TLzIgQm9vdCBNYW5hZ2VyCisJLi4uCisKKworNC4gUHJlc2VydmluZyB0aGUgc2VjdG9ycyBjaGFuZ2VkIGJ5IHNmZGlzay4KKwklIHNmZGlzayAtTyBzYXZlLWhkZC1wYXJ0aXRpb24tc2VjdG9ycyAvZGV2L2hkYQorICAgICAgICAuLi4KKyAgIHdpbGwgd3JpdGUgdGhlIHNlY3RvcnMgb3ZlcndyaXR0ZW4gYnkgc2ZkaXNrIHRvIGZpbGUuCisgICBJZiB5b3Ugbm90aWNlIHRoYXQgeW91IHRyYXNoZWQgc29tZSBwYXJ0aXRpb24sIHlvdSBtYXkKKyAgIGJlIGFibGUgdG8gcmVzdG9yZSB0aGluZ3MgYnkKKwklIHNmZGlzayAtSSBzYXZlLWhkZC1wYXJ0aXRpb24tc2VjdG9ycyAvZGV2L2hkYQorCSUKKworNS4gUHJlc2VydmluZyBzb21lIG9sZCBwYXJ0aXRpb25zLgorCSUgc2ZkaXNrIC1OMiAvZGV2L2hkYQorCS4uLgorICAgd2lsbCBvbmx5IGNoYW5nZSB0aGUgcGFydGl0aW9uIC9kZXYvaGRhMiwgYW5kIGxlYXZlIHRoZSByZXN0CisgICB1bmNoYW5nZWQuIFRoZSBtb3N0IG9idmlvdXMgYXBwbGljYXRpb24gaXMgdG8gY2hhbmdlIGFuIElkOgorCSUgc2ZkaXNrIC1ONyAvZGV2L2hkYQorCSwsNjMKKwklCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorT2xkIHNpdHVhdGlvbjoKKworICAgRGV2aWNlIEJvb3QgU3RhcnQgICAgIEVuZCAgICNjeWxzICAgI2Jsb2NrcyAgIElkICBTeXN0ZW0KKy9kZXYvaGRhMSAgICAgICAgICAwKyAgICAgIDUgICAgICAgNi0gICAgIDEyMjMrICAgYSAgT1MvMiBCb290IE1hbmFnZXIKKy4uLgorL2Rldi9oZGE2ICAgICAgICAzNTgrICAgIDQzOCAgICAgIDgxLSAgICAxNjUyMysgIDgyICBMaW51eCBzd2FwCisvZGV2L2hkYTcgICAgICAgIDQzOSsgICAxMDIzICAgICA1ODUtICAgMTE5MzM5KyAgODMgIExpbnV4IG5hdGl2ZQorCitOZXcgc2l0dWF0aW9uOgorCisgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAjYmxvY2tzICAgSWQgIFN5c3RlbQorL2Rldi9oZGExICAgICAgICAgIDArICAgICAgNSAgICAgICA2LSAgICAgMTIyMysgICBhICBPUy8yIEJvb3QgTWFuYWdlcgorLi4uCisvZGV2L2hkYTYgICAgICAgIDM1OCsgICAgNDM4ICAgICAgODEtICAgIDE2NTIzKyAgODIgIExpbnV4IHN3YXAKKy9kZXYvaGRhNyAgICAgICAgNDM5KyAgIDEwMjMgICAgIDU4NS0gICAxMTkzMzkrICA2MyAgR05VIEhVUkQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBOb3RlIHRoYXQgY2hhbmdpbmcgYSBsb2dpY2FsIHBhcnRpdGlvbiBpbnRvIGFuIGVtcHR5IHBhcnRpdGlvbgorICAgd2lsbCBkZWNyZWFzZSB0aGUgbnVtYmVyIG9mIGFsbCBzdWJzZXF1ZW50IGxvZ2ljYWwgcGFydGl0aW9ucy4gICAKKworNi4gRGVsZXRpbmcgYSBwYXJ0aXRpb24uCitBdCBmaXJzdCBJIHRob3VnaHQgb2YgaGF2aW5nIGFuIG9wdGlvbiAtWCMgZm9yIGRlbGV0aW5nIHBhcnRpdGlvbnMsCitidXQgdGhlcmUgYXJlIHNldmVyYWwgd2F5cyBpbiB3aGljaCBhIHBhcnRpdGlvbiBjYW4gYmUgZGVsZXRlZCwgYW5kCitpdCBpcyBwcm9iYWJseSBiZXR0ZXIgdG8gaGFuZGxlIHRoaXMganVzdCBhcyBhIGdlbmVyYWwgY2hhbmdlLgorCSUgc2ZkaXNrIC1kIC9kZXYvaGRhID4gb2hkYQord2lsbCB3cml0ZSB0aGUgY3VycmVudCB0YWJsZXMgb24gdGhlIGZpbGUgYG9oZGEnLgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyUgY2F0IG9oZGEKKyMgcGFydGl0aW9uIHRhYmxlIG9mIC9kZXYvaGRhCit1bml0OiBzZWN0b3JzCisKKy9kZXYvaGRhMSA6IHN0YXJ0PSAgICAgICAgMSwgc2l6ZT0gICA0MDc5OSwgSWQ9IDUKKy9kZXYvaGRhMiA6IHN0YXJ0PSAgICA0MDgwMCwgc2l6ZT0gICA0MDgwMCwgSWQ9ODMKKy9kZXYvaGRhMyA6IHN0YXJ0PSAgICA4MTYwMCwgc2l6ZT0gIDMzNjE5MiwgSWQ9ODMKKy9kZXYvaGRhNCA6IHN0YXJ0PSAgICAgICAgMCwgc2l6ZT0gICAgICAgMCwgSWQ9IDAKKy9kZXYvaGRhNSA6IHN0YXJ0PSAgICAgICAgMiwgc2l6ZT0gICA0MDc5OCwgSWQ9ODMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitJbiBvcmRlciB0byBkZWxldGUgdGhlIHBhcnRpdGlvbiBvbiAvZGV2L2hkYTMsIGVkaXQgdGhpcyBmaWxlCithbmQgZmVlZCB0aGUgcmVzdWx0IHRvIHNmZGlzayBhZ2Fpbi4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCislIGVtYWNzIG9oZGEKKyUgY2F0IG9oZGEKKyMgcGFydGl0aW9uIHRhYmxlIG9mIC9kZXYvaGRhCit1bml0OiBzZWN0b3JzCisKKy9kZXYvaGRhMSA6IHN0YXJ0PSAgICAgICAgMSwgc2l6ZT0gICA0MDc5OSwgSWQ9IDUKKy9kZXYvaGRhMiA6IHN0YXJ0PSAgICA0MDgwMCwgc2l6ZT0gICA0MDgwMCwgSWQ9ODMKKy9kZXYvaGRhMyA6IHN0YXJ0PSAgICAgICAgMCwgc2l6ZT0gICAgICAgMCwgSWQ9IDAKKy9kZXYvaGRhNCA6IHN0YXJ0PSAgICAgICAgMCwgc2l6ZT0gICAgICAgMCwgSWQ9IDAKKy9kZXYvaGRhNSA6IHN0YXJ0PSAgICAgICAgMiwgc2l6ZT0gICA0MDc5OCwgSWQ9ODMKKyUgc2ZkaXNrIC9kZXYvaGRhIDwgb2hkYQorT2xkIHNpdHVhdGlvbjoKK1VuaXRzID0gY3lsaW5kZXJzIG9mIDIwODg5NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gMAorCisgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAjYmxvY2tzICAgSWQgIFN5c3RlbQorL2Rldi9oZGExICAgICAgICAgIDArICAgICA5OSAgICAgMTAwLSAgICAyMDM5OSsgICA1ICBFeHRlbmRlZAorL2Rldi9oZGEyICAgICAgICAxMDAgICAgIDE5OSAgICAgMTAwICAgICAyMDQwMCAgIDgzICBMaW51eCBuYXRpdmUKKy9kZXYvaGRhMyAgICAgICAgMjAwICAgIDEwMjMgICAgIDgyNCAgICAxNjgwOTYgICA4MyAgTGludXggbmF0aXZlCisvZGV2L2hkYTQgICAgICAgICAgMCAgICAgICAtICAgICAgIDAgICAgICAgICAwICAgIDAgIEVtcHR5CisvZGV2L2hkYTUgICAgICAgICAgMCsgICAgIDk5ICAgICAxMDAtICAgIDIwMzk5ICAgODMgIExpbnV4IG5hdGl2ZQorTmV3IHNpdHVhdGlvbjoKK1VuaXRzID0gc2VjdG9ycyBvZiA1MTIgYnl0ZXMsIGNvdW50aW5nIGZyb20gMAorCisgICBEZXZpY2UgQm9vdCAgICBTdGFydCAgICAgICBFbmQgICNzZWN0b3JzICBJZCAgU3lzdGVtCisvZGV2L2hkYTEgICAgICAgICAgICAgMSAgICAgNDA3OTkgICAgIDQwNzk5ICAgNSAgRXh0ZW5kZWQKKy9kZXYvaGRhMiAgICAgICAgIDQwODAwICAgICA4MTU5OSAgICAgNDA4MDAgIDgzICBMaW51eCBuYXRpdmUKKy9kZXYvaGRhMyAgICAgICAgICAgICAwICAgICAgICAgLSAgICAgICAgIDAgICAwICBFbXB0eQorL2Rldi9oZGE0ICAgICAgICAgICAgIDAgICAgICAgICAtICAgICAgICAgMCAgIDAgIEVtcHR5CisvZGV2L2hkYTUgICAgICAgICAgICAgMiAgICAgNDA3OTkgICAgIDQwNzk4ICA4MyAgTGludXggbmF0aXZlCitTdWNjZXNzZnVsbHkgd3JvdGUgdGhlIG5ldyBwYXJ0aXRpb24gdGFibGUKKyUgc2ZkaXNrIC1sIC1WIC9kZXYvaGRhCisKK0Rpc2sgL2Rldi9oZGE6IDEyIGhlYWRzLCAzNCBzZWN0b3JzLCAxMDI0IGN5bGluZGVycworVW5pdHMgPSBjeWxpbmRlcnMgb2YgMjA4ODk2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAwCisKKyAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICNibG9ja3MgICBJZCAgU3lzdGVtCisvZGV2L2hkYTEgICAgICAgICAgMCsgICAgIDk5ICAgICAxMDAtICAgIDIwMzk5KyAgIDUgIEV4dGVuZGVkCisvZGV2L2hkYTIgICAgICAgIDEwMCAgICAgMTk5ICAgICAxMDAgICAgIDIwNDAwICAgODMgIExpbnV4IG5hdGl2ZQorL2Rldi9oZGEzICAgICAgICAgIDAgICAgICAgLSAgICAgICAwICAgICAgICAgMCAgICAwICBFbXB0eQorL2Rldi9oZGE0ICAgICAgICAgIDAgICAgICAgLSAgICAgICAwICAgICAgICAgMCAgICAwICBFbXB0eQorL2Rldi9oZGE1ICAgICAgICAgIDArICAgICA5OSAgICAgMTAwLSAgICAyMDM5OSAgIDgzICBMaW51eCBuYXRpdmUKKy9kZXYvaGRhOiBPSworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RoaXMgaXMgYSBnb29kIHdheSBvZiBtYWtpbmcgY2hhbmdlczogZHVtcCB0aGUgY3VycmVudCBzdGF0dXMKK3RvIGZpbGUsIGVkaXQgdGhlIGZpbGUsIGFuZCBmZWVkIGl0IHRvIHNmZGlzay4KK1ByZXNlcnZpbmcgdGhlIGZpbGUgb24gc29tZSBvdGhlciBkaXNrIGNvdWxkIGJlIHVzZWZ1bDoKK2lmIGV2ZXIgdGhlIE1CUiBnZXRzIHRocmFzaGVkIGl0IGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUKK3RoZSBvbGQgc2l0dWF0aW9uLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZnNjay9NYWtlZmlsZS5hbSBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAzZDM2YgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwxNyBAQAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCisKK3NiaW5fUFJPR1JBTVMgPSBmc2NrCitkaXN0X21hbl9NQU5TID0gZnNjay44CisKK2ZzY2tfU09VUkNFUyA9IGJhc2VfZGV2aWNlLmMgZnNjay5jIGZzY2suaCAuLi9saWIvaXNtb3VudGVkLmMgXAorCSAgICAgICAuLi9saWIvZnNwcm9iZS5jIC4uL2xpYi9jYW5vbmljYWxpemUuYworZnNja19MREFERCA9Citmc2NrX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKQorCitpZiBCVUlMRF9MSUJCTEtJRAorZnNja19MREFERCArPSAkKHVsX2xpYmJsa2lkX2xhKQorZnNja19DRkxBR1MgKz0gLUkkKHVsX2xpYmJsa2lkX2luY2RpcikKK2Vsc2UKK2ZzY2tfTERBREQgKz0gJChCTEtJRF9MSUJTKQorZnNja19DRkxBR1MgKz0gJChCTEtJRF9DRkxBR1MpCitlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZnNjay9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU5YjU2OAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw3ODAgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKKworVlBBVEggPSBAc3JjZGlyQAorcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACitwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorRElTVF9DT01NT04gPSAkKGRpc3RfbWFuX01BTlMpICQoZGlzdF9ub2luc3RfREFUQSkgXAorCSQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorCSQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK3NiaW5fUFJPR1JBTVMgPSBmc2NrJChFWEVFWFQpCitAQlVJTERfTElCQkxLSURfVFJVRUBhbV9fYXBwZW5kXzEgPSAkKHVsX2xpYmJsa2lkX2xhKQorQEJVSUxEX0xJQkJMS0lEX1RSVUVAYW1fX2FwcGVuZF8yID0gLUkkKHVsX2xpYmJsa2lkX2luY2RpcikKK0BCVUlMRF9MSUJCTEtJRF9GQUxTRUBhbV9fYXBwZW5kXzMgPSAkKEJMS0lEX0xJQlMpCitAQlVJTERfTElCQkxLSURfRkFMU0VAYW1fX2FwcGVuZF80ID0gJChCTEtJRF9DRkxBR1MpCitzdWJkaXIgPSBmc2NrCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9nZXR0ZXh0Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2d0ay1kb2MubTQgJCh0b3Bfc3JjZGlyKS9tNC9pY29udi5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItbGQubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWItbGluay5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItcHJlZml4Lm00ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L25scy5tNCAkKHRvcF9zcmNkaXIpL200L3BvLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L3Byb2d0ZXN0Lm00ICQodG9wX3NyY2RpcikvbTQvdGxzLm00IFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvbWtpbnN0YWxsZGlycworQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9jb25maWcuaAorQ09ORklHX0NMRUFOX0ZJTEVTID0KK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoc2JpbmRpcikiICIkKERFU1RESVIpJChtYW44ZGlyKSIKK1BST0dSQU1TID0gJChzYmluX1BST0dSQU1TKQorYW1fZnNja19PQkpFQ1RTID0gZnNjay1iYXNlX2RldmljZS4kKE9CSkVYVCkgZnNjay1mc2NrLiQoT0JKRVhUKSBcCisJZnNjay1pc21vdW50ZWQuJChPQkpFWFQpIGZzY2stZnNwcm9iZS4kKE9CSkVYVCkgXAorCWZzY2stY2Fub25pY2FsaXplLiQoT0JKRVhUKQorZnNja19PQkpFQ1RTID0gJChhbV9mc2NrX09CSkVDVFMpCithbV9fREVQRU5ERU5DSUVTXzEgPQorQEJVSUxEX0xJQkJMS0lEX0ZBTFNFQGFtX19ERVBFTkRFTkNJRVNfMiA9ICQoYW1fX0RFUEVOREVOQ0lFU18xKQorZnNja19ERVBFTkRFTkNJRVMgPSAkKGFtX19hcHBlbmRfMSkgJChhbV9fREVQRU5ERU5DSUVTXzIpCitBTV9WX2x0ID0gJChhbV9fdl9sdF8kKFYpKQorYW1fX3ZfbHRfID0gJChhbV9fdl9sdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2x0XzAgPSAtLXNpbGVudAorZnNja19MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKEFNX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpCitkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKK2FtX19tdiA9IG12IC1mCitDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitMVENPTVBJTEUgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSBcCisJJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSBcCisJJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorQU1fVl9DQyA9ICQoYW1fX3ZfQ0NfJChWKSkKK2FtX192X0NDXyA9ICQoYW1fX3ZfQ0NfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ18wID0gQGVjaG8gIiAgQ0MgICAgIiAkQDsKK0FNX1ZfYXQgPSAkKGFtX192X2F0XyQoVikpCithbV9fdl9hdF8gPSAkKGFtX192X2F0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfYXRfMCA9IEAKK0NDTEQgPSAkKENDKQorTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorQU1fVl9DQ0xEID0gJChhbV9fdl9DQ0xEXyQoVikpCithbV9fdl9DQ0xEXyA9ICQoYW1fX3ZfQ0NMRF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDTERfMCA9IEBlY2hvICIgIENDTEQgICIgJEA7CitBTV9WX0dFTiA9ICQoYW1fX3ZfR0VOXyQoVikpCithbV9fdl9HRU5fID0gJChhbV9fdl9HRU5fJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9HRU5fMCA9IEBlY2hvICIgIEdFTiAgICIgJEA7CitTT1VSQ0VTID0gJChmc2NrX1NPVVJDRVMpCitESVNUX1NPVVJDRVMgPSAkKGZzY2tfU09VUkNFUykKK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorICAgICopIGY9JCRwOzsgXAorICBlc2FjOworYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworYW1fX2luc3RhbGxfbWF4ID0gNDAKK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgorYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAorICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKK2FtX19iYXNlX2xpc3QgPSBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKK21hbjhkaXIgPSAkKG1hbmRpcikvbWFuOAorTlJPRkYgPSBucm9mZgorTUFOUyA9ICQoZGlzdF9tYW5fTUFOUykKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSBcCisJLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIgorCitBTV9DRkxBR1MgPSAtZnNpZ25lZC1jaGFyCitBTV9MREZMQUdTID0gCisKKyMgQXV0b21ha2UgKGF0IGxlYXN0IHVwIHRvIDEuMTApIG1pc2hhbmRsZXMgZGlzdF9tYW5fTUFOUyBpbnNpZGUgY29uZGl0aW9uYWxzLgorIyBVbmxpa2Ugd2l0aCBvdGhlciBkaXN0IHByaW1hcmllcywgdGhlIGZpbGVzIGFyZSBub3QgZGlzdHJpYnV0ZWQgaWYgdGhlCisjIGNvbmRpdGlvbmFsIGlzIGZhbHNlLgorIyBXb3JrIHRoZSBidWcgYXJvdW5kIHVudGlsIGl0IGlzIGZpeGVkOgorZGlzdF9ub2luc3RfREFUQSA9ICQoZGlzdF9tYW5fTUFOUykKKworIyBQYXRocyB0byBpbi10cmVlIGxpYnJhcmllcyAodXNlIHVsXyBwcmVmaXggdG8gYXZvaWQgcG9zc2libGUgY29sbGlzaW9ucykKKyMKKyMgYmxraWQKK3VsX2xpYmJsa2lkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYy9saWJibGtpZC5sYQorCisjIGJsa2lkLmggaXMgZ2VuZXJhdGVkIGJ5IC4vY29uZmlndXJlIHNjcmlwdCBhbmQgc3RvcmVkIGluIGJ1aWxkIGRpcmVjdG9yeQordWxfbGliYmxraWRfaW5jZGlyID0gJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworIyB1dWlkCit1bF9saWJ1dWlkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMvbGlidXVpZC5sYQorZGlzdF9tYW5fTUFOUyA9IGZzY2suOAorZnNja19TT1VSQ0VTID0gYmFzZV9kZXZpY2UuYyBmc2NrLmMgZnNjay5oIC4uL2xpYi9pc21vdW50ZWQuYyBcCisJICAgICAgIC4uL2xpYi9mc3Byb2JlLmMgLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCisKK2ZzY2tfTERBREQgPSAkKGFtX19hcHBlbmRfMSkgJChhbV9fYXBwZW5kXzMpCitmc2NrX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAkKGFtX19hcHBlbmRfMikgJChhbV9fYXBwZW5kXzQpCithbGw6IGFsbC1hbQorCisuU1VGRklYRVM6CisuU1VGRklYRVM6IC5jIC5sbyAubyAub2JqCiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gZnNjay9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gZnNjay9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CitpbnN0YWxsLXNiaW5QUk9HUkFNUzogJChzYmluX1BST0dSQU1TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQoc2JpbmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHNiaW5kaXIpIgorCUBsaXN0PSckKHNiaW5fUFJPR1JBTVMpJzsgdGVzdCAtbiAiJChzYmluZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorCXNlZCAncy8kKEVYRUVYVCkkJC8vJyB8IFwKKwl3aGlsZSByZWFkIHAgcDE7IGRvIGlmIHRlc3QgLWYgJCRwIHx8IHRlc3QgLWYgJCRwMTsgXAorCSAgdGhlbiBlY2hvICIkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ3A7cywuKi8sLDtuO2gnIC1lICdzfC4qfC58JyBcCisJICAgIC1lICdwO3g7cywuKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pO3MvJCQvJChFWEVFWFQpLycgfCBcCisJc2VkICdOO047TjtzLFxuLCAsZycgfCBcCisJJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIjsgZGlyc1siLiJdID0gMSB9IFwKKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKwkgICAgaWYgKCQkMiA9PSAkJDQpIGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAorCSAgICBlbHNlIHsgcHJpbnQgImYiLCAkJDMgIi8iICQkNCwgJCQxOyB9IH0gXAorCSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAorCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKwkgICAgaWYgdGVzdCAiJCRkaXIiID0gLjsgdGhlbiBkaXI9OyBlbHNlIGRpcj0vJCRkaXI7IGZpOyBcCisJICAgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgJyQoREVTVERJUikkKHNiaW5kaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQoc2JpbmRpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgfSBcCisJOyBkb25lCisKK3VuaW5zdGFsbC1zYmluUFJPR1JBTVM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoc2JpbmRpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKwkgIHNlZCAtZSAnaDtzLF4uKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pJyBcCisJICAgICAgLWUgJ3MvJCQvJChFWEVFWFQpLycgYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHNiaW5kaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQoc2JpbmRpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tc2JpblBST0dSQU1TOgorCUBsaXN0PSckKHNiaW5fUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0Citmc2NrJChFWEVFWFQpOiAkKGZzY2tfT0JKRUNUUykgJChmc2NrX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGZzY2skKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKGZzY2tfTElOSykgJChmc2NrX09CSkVDVFMpICQoZnNja19MREFERCkgJChMSUJTKQorCittb3N0bHljbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLiQoT0JKRVhUKQorCitkaXN0Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi50YWIuYworCitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZnNjay1iYXNlX2RldmljZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZnNjay1jYW5vbmljYWxpemUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2ZzY2stZnNjay5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZnNjay1mc3Byb2JlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mc2NrLWlzbW91bnRlZC5Qb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoTFRDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCitmc2NrLWJhc2VfZGV2aWNlLm86IGJhc2VfZGV2aWNlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmc2NrLWJhc2VfZGV2aWNlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2ZzY2stYmFzZV9kZXZpY2UuVHBvIC1jIC1vIGZzY2stYmFzZV9kZXZpY2UubyBgdGVzdCAtZiAnYmFzZV9kZXZpY2UuYycgfHwgZWNobyAnJChzcmNkaXIpLydgYmFzZV9kZXZpY2UuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZnNjay1iYXNlX2RldmljZS5UcG8gJChERVBESVIpL2ZzY2stYmFzZV9kZXZpY2UuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdiYXNlX2RldmljZS5jJyBvYmplY3Q9J2ZzY2stYmFzZV9kZXZpY2UubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZnNja19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBmc2NrLWJhc2VfZGV2aWNlLm8gYHRlc3QgLWYgJ2Jhc2VfZGV2aWNlLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGJhc2VfZGV2aWNlLmMKKworZnNjay1iYXNlX2RldmljZS5vYmo6IGJhc2VfZGV2aWNlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmc2NrLWJhc2VfZGV2aWNlLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZnNjay1iYXNlX2RldmljZS5UcG8gLWMgLW8gZnNjay1iYXNlX2RldmljZS5vYmogYGlmIHRlc3QgLWYgJ2Jhc2VfZGV2aWNlLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnYmFzZV9kZXZpY2UuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvYmFzZV9kZXZpY2UuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZnNjay1iYXNlX2RldmljZS5UcG8gJChERVBESVIpL2ZzY2stYmFzZV9kZXZpY2UuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdiYXNlX2RldmljZS5jJyBvYmplY3Q9J2ZzY2stYmFzZV9kZXZpY2Uub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZzY2stYmFzZV9kZXZpY2Uub2JqIGBpZiB0ZXN0IC1mICdiYXNlX2RldmljZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2Jhc2VfZGV2aWNlLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Jhc2VfZGV2aWNlLmMnOyBmaWAKKworZnNjay1mc2NrLm86IGZzY2suYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZzY2tfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZzY2stZnNjay5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9mc2NrLWZzY2suVHBvIC1jIC1vIGZzY2stZnNjay5vIGB0ZXN0IC1mICdmc2NrLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGZzY2suYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZnNjay1mc2NrLlRwbyAkKERFUERJUikvZnNjay1mc2NrLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZnNjay5jJyBvYmplY3Q9J2ZzY2stZnNjay5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZzY2stZnNjay5vIGB0ZXN0IC1mICdmc2NrLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGZzY2suYworCitmc2NrLWZzY2sub2JqOiBmc2NrLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmc2NrLWZzY2sub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mc2NrLWZzY2suVHBvIC1jIC1vIGZzY2stZnNjay5vYmogYGlmIHRlc3QgLWYgJ2ZzY2suYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmc2NrLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZzY2suYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZnNjay1mc2NrLlRwbyAkKERFUERJUikvZnNjay1mc2NrLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZnNjay5jJyBvYmplY3Q9J2ZzY2stZnNjay5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZzY2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZnNjay1mc2NrLm9iaiBgaWYgdGVzdCAtZiAnZnNjay5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZzY2suYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZnNjay5jJzsgZmlgCisKK2ZzY2staXNtb3VudGVkLm86IC4uL2xpYi9pc21vdW50ZWQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZzY2tfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZzY2staXNtb3VudGVkLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2ZzY2staXNtb3VudGVkLlRwbyAtYyAtbyBmc2NrLWlzbW91bnRlZC5vIGB0ZXN0IC1mICcuLi9saWIvaXNtb3VudGVkLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9pc21vdW50ZWQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZnNjay1pc21vdW50ZWQuVHBvICQoREVQRElSKS9mc2NrLWlzbW91bnRlZC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9pc21vdW50ZWQuYycgb2JqZWN0PSdmc2NrLWlzbW91bnRlZC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZzY2staXNtb3VudGVkLm8gYHRlc3QgLWYgJy4uL2xpYi9pc21vdW50ZWQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2lzbW91bnRlZC5jCisKK2ZzY2staXNtb3VudGVkLm9iajogLi4vbGliL2lzbW91bnRlZC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZnNja19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZnNjay1pc21vdW50ZWQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mc2NrLWlzbW91bnRlZC5UcG8gLWMgLW8gZnNjay1pc21vdW50ZWQub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvaXNtb3VudGVkLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2lzbW91bnRlZC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvaXNtb3VudGVkLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZzY2staXNtb3VudGVkLlRwbyAkKERFUERJUikvZnNjay1pc21vdW50ZWQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvaXNtb3VudGVkLmMnIG9iamVjdD0nZnNjay1pc21vdW50ZWQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZzY2staXNtb3VudGVkLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2lzbW91bnRlZC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9pc21vdW50ZWQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2lzbW91bnRlZC5jJzsgZmlgCisKK2ZzY2stZnNwcm9iZS5vOiAuLi9saWIvZnNwcm9iZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZnNja19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZnNjay1mc3Byb2JlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2ZzY2stZnNwcm9iZS5UcG8gLWMgLW8gZnNjay1mc3Byb2JlLm8gYHRlc3QgLWYgJy4uL2xpYi9mc3Byb2JlLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9mc3Byb2JlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZzY2stZnNwcm9iZS5UcG8gJChERVBESVIpL2ZzY2stZnNwcm9iZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9mc3Byb2JlLmMnIG9iamVjdD0nZnNjay1mc3Byb2JlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZzY2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZnNjay1mc3Byb2JlLm8gYHRlc3QgLWYgJy4uL2xpYi9mc3Byb2JlLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9mc3Byb2JlLmMKKworZnNjay1mc3Byb2JlLm9iajogLi4vbGliL2ZzcHJvYmUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZzY2tfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZzY2stZnNwcm9iZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2ZzY2stZnNwcm9iZS5UcG8gLWMgLW8gZnNjay1mc3Byb2JlLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZnNwcm9iZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZnNwcm9iZS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9mc2NrLWZzcHJvYmUuVHBvICQoREVQRElSKS9mc2NrLWZzcHJvYmUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvZnNwcm9iZS5jJyBvYmplY3Q9J2ZzY2stZnNwcm9iZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZzY2tfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZnNjay1mc3Byb2JlLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZnNwcm9iZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZnNwcm9iZS5jJzsgZmlgCisKK2ZzY2stY2Fub25pY2FsaXplLm86IC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGZzY2tfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZzY2stY2Fub25pY2FsaXplLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2ZzY2stY2Fub25pY2FsaXplLlRwbyAtYyAtbyBmc2NrLWNhbm9uaWNhbGl6ZS5vIGB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZnNjay1jYW5vbmljYWxpemUuVHBvICQoREVQRElSKS9mc2NrLWNhbm9uaWNhbGl6ZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9jYW5vbmljYWxpemUuYycgb2JqZWN0PSdmc2NrLWNhbm9uaWNhbGl6ZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZzY2stY2Fub25pY2FsaXplLm8gYHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCisKK2ZzY2stY2Fub25pY2FsaXplLm9iajogLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZnNja19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgZnNjay1jYW5vbmljYWxpemUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9mc2NrLWNhbm9uaWNhbGl6ZS5UcG8gLWMgLW8gZnNjay1jYW5vbmljYWxpemUub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvY2Fub25pY2FsaXplLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZzY2stY2Fub25pY2FsaXplLlRwbyAkKERFUERJUikvZnNjay1jYW5vbmljYWxpemUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvY2Fub25pY2FsaXplLmMnIG9iamVjdD0nZnNjay1jYW5vbmljYWxpemUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmc2NrX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZzY2stY2Fub25pY2FsaXplLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZmlgCisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCitpbnN0YWxsLW1hbjg6ICQoZGlzdF9tYW5fTUFOUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKG1hbjhkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW44ZGlyKSIKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW44ZGlyKSIgfHwgZXhpdCAwOyBcCisJeyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjhbYS16XSokJC9wJzsgXAorCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgXAorCWRvbmUgfCBcCisJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteOF1bMC05YS16XSokJCw4LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnIHwgXAorCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAorCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJGJhc2UiID0gIiQkaW5zdCI7IHRoZW4gbGlzdD0iJCRsaXN0ICQkZmlsZSI7IGVsc2UgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW44ZGlyKS8kJGluc3QnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjhkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuOGRpciknIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobWFuOGRpcikiIHx8IGV4aXQgJCQ/OyB9OyBcCisJZG9uZTsgfQorCit1bmluc3RhbGwtbWFuODoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjhkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1geyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjhbYS16XSokJC9wJzsgXAorCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjhdWzAtOWEtel0qJCQsOCw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKwl0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW44ZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJICBjZCAiJChERVNURElSKSQobWFuOGRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxpc3QiOyB0aGVuIFwKKwkgIGxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgICAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsgXAorCSAgaWYgdGVzdCAtbiAiJCRsaXN0IiAmJiBcCisJICAgIGdyZXAgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0ID4vZGV2L251bGw7IHRoZW4gXAorCSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxgbWlzc2luZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAorCSAgICBncmVwIC1sICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCB8IHNlZCAncy9eLyAgICAgICAgIC8nID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdG8gZml4IHRoZW0sIGluc3RhbGwgaGVscDJtYW4sIHJlbW92ZSBhbmQgcmVnZW5lcmF0ZSB0aGUgbWFuIHBhZ2VzOyIgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWluZXItY2xlYW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAorCSAgICBleGl0IDE7IFwKKwkgIGVsc2UgOjsgZmk7IFwKKwllbHNlIDo7IGZpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykgJChNQU5TKSAkKERBVEEpCitpbnN0YWxsZGlyczoKKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChzYmluZGlyKSIgIiQoREVTVERJUikkKG1hbjhkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1zYmluUFJPR1JBTVMgXAorCW1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktYW0KKworZHZpLWFtOgorCitodG1sOiBodG1sLWFtCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tYW0KKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1zYmluUFJPR1JBTVMKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjgKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtYW0KKworcGRmLWFtOgorCitwczogcHMtYW0KKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtc2JpblBST0dSQU1TCisKK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW44CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorCWNsZWFuLWxpYnRvb2wgY2xlYW4tc2JpblBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAorCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKwlpbnN0YWxsLW1hbjggaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBcCisJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXNiaW5QUk9HUkFNUyBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1tYW4gdW5pbnN0YWxsLW1hbjggXAorCXVuaW5zdGFsbC1zYmluUFJPR1JBTVMKKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svYmFzZV9kZXZpY2UuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svYmFzZV9kZXZpY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWQyYmEwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZnNjay9iYXNlX2RldmljZS5jCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogYmFzZV9kZXZpY2UuYworICoKKyAqIFJldHVybiB0aGUgImJhc2UgZGV2aWNlIiBnaXZlbiBhIHBhcnRpY3VsYXIgZGV2aWNlOyB0aGlzIGlzIHVzZWQgdG8KKyAqIGFzc3VyZSB0aGF0IHdlIG9ubHkgZnNjayBvbmUgcGFydGl0aW9uIG9uIGEgcGFydGljdWxhciBkcml2ZSBhdCBhbnkKKyAqIG9uZSB0aW1lLiAgT3RoZXJ3aXNlLCB0aGUgZGlzayBoZWFkcyB3aWxsIGJlIHNlZWtpbmcgYWxsIG92ZXIgdGhlCisgKiBwbGFjZS4gIElmIHRoZSBiYXNlIGRldmljZSBjYW4gbm90IGJlIGRldGVybWluZWQsIHJldHVybiBOVUxMLgorICoKKyAqIFRoZSBiYXNlX2RldmljZSgpIGZ1bmN0aW9uIHJldHVybnMgYW4gYWxsb2NhdGVkIHN0cmluZyB3aGljaCBtdXN0CisgKiBiZSBmcmVlZC4KKyAqCisgKiBXcml0dGVuIGJ5IFRoZW9kb3JlIFRzJ28sIDx0eXRzb0BtaXQuZWR1PgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMCBUaGVvZG9yZSBUcydvLgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgUHVibGljCisgKiBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2lmIEhBVkVfVU5JU1REX0gKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2lmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJmc2NrLmgiCisKKy8qCisgKiBSZXF1aXJlZCBmb3IgdGhlIHViZXItc2lsbHkgZGV2ZnMgL2Rldi9pZGUvaG9zdDEvYnVzMi90YXJnZXQzL2x1bjMKKyAqIHBhdGhhbWVzLgorICovCitzdGF0aWMgY29uc3QgY2hhciAqZGV2ZnNfaGllcltdID0geworCSJob3N0IiwgImJ1cyIsICJ0YXJnZXQiLCAibHVuIiwgMAorfTsKKworY2hhciAqYmFzZV9kZXZpY2UoY29uc3QgY2hhciAqZGV2aWNlKQoreworCWNoYXIgKnN0ciwgKmNwOworCWNvbnN0IGNoYXIgKipoaWVyLCAqZGlzazsKKwlpbnQgbGVuOworCisJc3RyID0gbWFsbG9jKHN0cmxlbihkZXZpY2UpKzEpOworCWlmICghc3RyKQorCQlyZXR1cm4gTlVMTDsKKwlzdHJjcHkoc3RyLCBkZXZpY2UpOworCWNwID0gc3RyOworCisJLyogU2tpcCBvdmVyIC9kZXYvOyBpZiBpdCdzIG5vdCBwcmVzZW50LCBnaXZlIHVwLiAqLworCWlmIChzdHJuY21wKGNwLCAiL2Rldi8iLCA1KSAhPSAwKQorCQlnb3RvIGVycm91dDsKKwljcCArPSA1OworCisJLyogU2tpcCBvdmVyIC9kZXYvZHNrLy4uLiAqLworCWlmIChzdHJuY21wKGNwLCAiZHNrLyIsIDQpID09IDApCisJCWNwICs9IDQ7CisKKwkvKgorCSAqIEZvciBtZCBkZXZpY2VzLCB3ZSB0cmVhdCB0aGVtIGFsbCBhcyBpZiB0aGV5IHdlcmUgYWxsCisJICogb24gb25lIGRpc2ssIHNpbmNlIHdlIGRvbid0IGtub3cgaG93IHRvIHBhcmFsbGVsaXplIHRoZW0uCisJICovCisJaWYgKGNwWzBdID09ICdtJyAmJiBjcFsxXSA9PSAnZCcpIHsKKwkJKihjcCsyKSA9IDA7CisJCXJldHVybiBzdHI7CisJfQorCisJLyogSGFuZGxlIERBQyA5NjAgZGV2aWNlcyAqLworCWlmIChzdHJuY21wKGNwLCAicmQvIiwgMykgPT0gMCkgeworCQljcCArPSAzOworCQlpZiAoY3BbMF0gIT0gJ2MnIHx8IGNwWzJdICE9ICdkJyB8fAorCQkgICAgIWlzZGlnaXQoY3BbMV0pIHx8ICFpc2RpZ2l0KGNwWzNdKSkKKwkJCWdvdG8gZXJyb3V0OworCQkqKGNwKzQpID0gMDsKKwkJcmV0dXJuIHN0cjsKKwl9CisKKwkvKiBOb3cgbGV0J3MgaGFuZGxlIC9kZXYvaGQqIGFuZCAvZGV2L3NkKiBkZXZpY2VzLi4uLiAqLworCWlmICgoY3BbMF0gPT0gJ2gnIHx8IGNwWzBdID09ICdzJykgJiYgKGNwWzFdID09ICdkJykpIHsKKwkJY3AgKz0gMjsKKwkJLyogSWYgdGhlcmUncyBhIHNpbmdsZSBudW1iZXIgYWZ0ZXIgL2Rldi9oZCwgc2tpcCBpdCAqLworCQlpZiAoaXNkaWdpdCgqY3ApKQorCQkJY3ArKzsKKwkJLyogV2hhdCBmb2xsb3dzIG11c3QgYmUgYW4gYWxwaGEgY2hhciwgb3IgZ2l2ZSB1cCAqLworCQlpZiAoIWlzYWxwaGEoKmNwKSkKKwkJCWdvdG8gZXJyb3V0OworCQkqKGNwICsgMSkgPSAwOworCQlyZXR1cm4gc3RyOworCX0KKworCS8qIE5vdyBsZXQncyBoYW5kbGUgZGV2ZnMgKHVnaCkgbmFtZXMgKi8KKwlsZW4gPSAwOworCWlmIChzdHJuY21wKGNwLCAiaWRlLyIsIDQpID09IDApCisJCWxlbiA9IDQ7CisJaWYgKHN0cm5jbXAoY3AsICJzY3NpLyIsIDUpID09IDApCisJCWxlbiA9IDU7CisJaWYgKGxlbikgeworCQljcCArPSBsZW47CisJCS8qCisJCSAqIE5vdyB3ZSBwcm9jZWVkIGRvd24gdGhlIGV4cGVjdGVkIGRldmZzIGhpZXJhcmNoeS4KKwkJICogaS5lLiwgLi4uL2hvc3QxL2J1czIvdGFyZ2V0My9sdW40Ly4uLgorCQkgKiBJZiB3ZSBkb24ndCBmaW5kIHRoZSBleHBlY3RlZCB0b2tlbiwgZm9sbG93ZWQgYnkKKwkJICogc29tZSBudW1iZXIgb2YgZGlnaXRzIGF0IGVhY2ggbGV2ZWwsIGFib3J0LgorCQkgKi8KKwkJZm9yIChoaWVyID0gZGV2ZnNfaGllcjsgKmhpZXI7IGhpZXIrKykgeworCQkJbGVuID0gc3RybGVuKCpoaWVyKTsKKwkJCWlmIChzdHJuY21wKGNwLCAqaGllciwgbGVuKSAhPSAwKQorCQkJCWdvdG8gZXJyb3V0OworCQkJY3AgKz0gbGVuOworCQkJd2hpbGUgKCpjcCAhPSAnLycgJiYgKmNwICE9IDApIHsKKwkJCQlpZiAoIWlzZGlnaXQoKmNwKSkKKwkJCQkJZ290byBlcnJvdXQ7CisJCQkJY3ArKzsKKwkJCX0KKwkJCWNwKys7CisJCX0KKwkJKihjcCAtIDEpID0gMDsKKwkJcmV0dXJuIHN0cjsKKwl9CisKKwkvKiBOb3cgaGFuZGxlIGRldmZzIC9kZXYvZGlzYyBvciAvZGV2L2Rpc2sgbmFtZXMgKi8KKwlkaXNrID0gMDsKKwlpZiAoc3RybmNtcChjcCwgImRpc2NzLyIsIDYpID09IDApCisJCWRpc2sgPSAiZGlzYyI7CisJZWxzZSBpZiAoc3RybmNtcChjcCwgImRpc2tzLyIsIDYpID09IDApCisJCWRpc2sgPSAiZGlzayI7CisJaWYgKGRpc2spIHsKKwkJY3AgKz0gNjsKKwkJaWYgKHN0cm5jbXAoY3AsIGRpc2ssIDQpICE9IDApCisJCQlnb3RvIGVycm91dDsKKwkJY3AgKz0gNDsKKwkJd2hpbGUgKCpjcCAhPSAnLycgJiYgKmNwICE9IDApIHsKKwkJCWlmICghaXNkaWdpdCgqY3ApKQorCQkJCWdvdG8gZXJyb3V0OworCQkJY3ArKzsKKwkJfQorCQkqY3AgPSAwOworCQlyZXR1cm4gc3RyOworCX0KKworZXJyb3V0OgorCWZyZWUoc3RyKTsKKwlyZXR1cm4gTlVMTDsKK30KKworI2lmZGVmIERFQlVHCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisJY29uc3QgY2hhciAqYmFzZTsKKwljaGFyICBidWZbMjU2XSwgKmNwOworCisJd2hpbGUgKDEpIHsKKwkJaWYgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIHN0ZGluKSA9PSBOVUxMKQorCQkJYnJlYWs7CisJCWNwID0gc3RyY2hyKGJ1ZiwgJ1xuJyk7CisJCWlmIChjcCkKKwkJCSpjcCA9IDA7CisJCWNwID0gc3RyY2hyKGJ1ZiwgJ1x0Jyk7CisJCWlmIChjcCkKKwkJCSpjcCA9IDA7CisJCWJhc2UgPSBiYXNlX2RldmljZShidWYpOworCQlwcmludGYoIiVzXHQlc1xuIiwgYnVmLCBiYXNlID8gYmFzZSA6ICJOT05FIik7CisJfQorCWV4aXQoMCk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svZnNjay44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZnNjay9mc2NrLjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQxZTdlMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svZnNjay44CkBAIC0wLDAgKzEsNDI0IEBACisuXCIgLSotIG5yb2ZmIC0qLQorLlwiIENvcHlyaWdodCAxOTkzLCAxOTk0LCAxOTk1IGJ5IFRoZW9kb3JlIFRzJ28uICBBbGwgUmlnaHRzIFJlc2VydmVkLgorLlwiIFRoaXMgZmlsZSBtYXkgYmUgY29waWVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLgorLlwiCisuVEggRlNDSyA4ICJGZWJydWFyeSAyMDA5IiAiTGludXgiICJNQUlOVEVOQU5DRSBDT01NQU5EUyIKKy5TSCBOQU1FCitmc2NrIFwtIGNoZWNrIGFuZCByZXBhaXIgYSBMaW51eCBmaWxlIHN5c3RlbQorLlNIIFNZTk9QU0lTCisuQiBmc2NrCisuUkIgWyBcLXNBVlJUTU5QIF0KKy5SQiBbIFwtQworLlJJIFsgZmQgXV0KKy5SQiBbIFwtdAorLklSIGZzdHlwZSBdCisuUkkgWyBmaWxlc3lzIC4uLl0KKy5SQiBbIFwtXC0gXQorLlJJIFsgZnMtc3BlY2lmaWMtb3B0aW9ucyBdCisuU0ggREVTQ1JJUFRJT04KKy5CIGZzY2sKK2lzIHVzZWQgdG8gY2hlY2sgYW5kIG9wdGlvbmFsbHkgcmVwYWlyIG9uZSBvciBtb3JlIExpbnV4IGZpbGUgc3lzdGVtcy4KKy5JIGZpbGVzeXMKK2NhbiBiZSBhIGRldmljZSBuYW1lIChlLmcuCisuSVIgL2Rldi9oZGMxICIsICIgL2Rldi9zZGIyICksCithIG1vdW50IHBvaW50IChlLmcuCisuSVIgLyAiLCAiIC91c3IgIiwgIiAvaG9tZSApLAorb3IgYW4gZXh0MiBsYWJlbCBvciBVVUlEIHNwZWNpZmllciAoZS5nLgorVVVJRD04ODY4YWJmNi04OGM1LTRhODMtOThiOC1iZmMyNDA1N2Y3YmQgb3IgTEFCRUw9cm9vdCkuCitOb3JtYWxseSwgdGhlCisuQiBmc2NrCitwcm9ncmFtIHdpbGwgdHJ5IHRvIGhhbmRsZSBmaWxlc3lzdGVtcyBvbiBkaWZmZXJlbnQgcGh5c2ljYWwgZGlzayBkcml2ZXMKK2luIHBhcmFsbGVsIHRvIHJlZHVjZSB0aGUgdG90YWwgYW1vdW50IG9mIHRpbWUgbmVlZGVkIHRvIGNoZWNrIGFsbCBvZiB0aGUKK2ZpbGVzeXN0ZW1zLgorLlBQCitJZiBubyBmaWxlc3lzdGVtcyBhcmUgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUsIGFuZCB0aGUKKy5CIFwtQQorb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQsCisuQiBmc2NrCit3aWxsIGRlZmF1bHQgdG8gY2hlY2tpbmcgZmlsZXN5c3RlbXMgaW4KKy5CIC9ldGMvZnN0YWIKK3NlcmlhbGx5LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZQorLkIgXC1Bcworb3B0aW9ucy4KKy5QUAorVGhlIGV4aXQgY29kZSByZXR1cm5lZCBieQorLkIgZnNjaworaXMgdGhlIHN1bSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisuYnIKK1wJMFwJXC1cIE5vIGVycm9ycworLmJyCitcCTFcCVwtXCBGaWxlIHN5c3RlbSBlcnJvcnMgY29ycmVjdGVkCisuYnIKK1wJMlwJXC1cIFN5c3RlbSBzaG91bGQgYmUgcmVib290ZWQKKy5icgorXAk0XAlcLVwgRmlsZSBzeXN0ZW0gZXJyb3JzIGxlZnQgdW5jb3JyZWN0ZWQKKy5icgorXAk4XAlcLVwgT3BlcmF0aW9uYWwgZXJyb3IKKy5icgorXAkxNlwJXC1cIFVzYWdlIG9yIHN5bnRheCBlcnJvcgorLmJyCitcCTMyXAlcLVwgRnNjayBjYW5jZWxlZCBieSB1c2VyIHJlcXVlc3QKKy5icgorXAkxMjhcCVwtXCBTaGFyZWQgbGlicmFyeSBlcnJvcgorLmJyCitUaGUgZXhpdCBjb2RlIHJldHVybmVkIHdoZW4gbXVsdGlwbGUgZmlsZSBzeXN0ZW1zIGFyZSBjaGVja2VkCitpcyB0aGUgYml0LXdpc2UgT1Igb2YgdGhlIGV4aXQgY29kZXMgZm9yIGVhY2gKK2ZpbGUgc3lzdGVtIHRoYXQgaXMgY2hlY2tlZC4KKy5QUAorSW4gYWN0dWFsaXR5LAorLkIgZnNjaworaXMgc2ltcGx5IGEgZnJvbnQtZW5kIGZvciB0aGUgdmFyaW91cyBmaWxlIHN5c3RlbSBjaGVja2VycworKFxmQmZzY2tcZlIuXGZJZnN0eXBlXGZSKSBhdmFpbGFibGUgdW5kZXIgTGludXguICBUaGUgZmlsZQorc3lzdGVtLXNwZWNpZmljIGNoZWNrZXIgaXMgc2VhcmNoZWQgZm9yIGluCisuSSAvc2JpbgorZmlyc3QsIHRoZW4gaW4KKy5JIC9ldGMvZnMKK2FuZAorLklSIC9ldGMgLAorYW5kIGZpbmFsbHkgaW4gdGhlIGRpcmVjdG9yaWVzIGxpc3RlZCBpbiB0aGUgUEFUSCBlbnZpcm9ubWVudAordmFyaWFibGUuICBQbGVhc2Ugc2VlIHRoZSBmaWxlIHN5c3RlbS1zcGVjaWZpYyBjaGVja2VyIG1hbnVhbCBwYWdlcyBmb3IKK2Z1cnRoZXIgZGV0YWlscy4KKy5TSCBPUFRJT05TCisuVFAKKy5CIFwtcworU2VyaWFsaXplCisuQiBmc2NrCitvcGVyYXRpb25zLiAgVGhpcyBpcyBhIGdvb2QgaWRlYSBpZiB5b3UgYXJlIGNoZWNraW5nIG11bHRpcGxlCitmaWxlc3lzdGVtcyBhbmQgdGhlIGNoZWNrZXJzIGFyZSBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlLiAgKE5vdGU6CisuQlIgZTJmc2NrICg4KQorcnVucyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlIGJ5IGRlZmF1bHQuICBUbyBtYWtlCisuQlIgZTJmc2NrICg4KQorcnVuIGluIGEgbm9uLWludGVyYWN0aXZlIG1vZGUsIHlvdSBtdXN0IGVpdGhlciBzcGVjaWZ5IHRoZQorLkIgXC1wCitvcgorLkIgXC1hCitvcHRpb24sIGlmIHlvdSB3aXNoIGZvciBlcnJvcnMgdG8gYmUgY29ycmVjdGVkIGF1dG9tYXRpY2FsbHksIG9yIHRoZQorLkIgXC1uCitvcHRpb24gaWYgeW91IGRvIG5vdC4pCisuVFAKKy5CSSBcLXQgIiBmc2xpc3QiCitTcGVjaWZpZXMgdGhlIHR5cGUocykgb2YgZmlsZSBzeXN0ZW0gdG8gYmUgY2hlY2tlZC4gIFdoZW4gdGhlCisuQiBcLUEKK2ZsYWcgaXMgc3BlY2lmaWVkLCBvbmx5IGZpbGVzeXN0ZW1zIHRoYXQgbWF0Y2gKKy5JIGZzbGlzdAorYXJlIGNoZWNrZWQuICBUaGUKKy5JIGZzbGlzdAorcGFyYW1ldGVyIGlzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZXN5c3RlbXMgYW5kIG9wdGlvbnMKK3NwZWNpZmllcnMuICBBbGwgb2YgdGhlIGZpbGVzeXN0ZW1zIGluIHRoaXMgY29tbWEtc2VwYXJhdGVkIGxpc3QgbWF5IGJlCitwcmVmaXhlZCBieSBhIG5lZ2F0aW9uIG9wZXJhdG9yCisuUkIgJyBubyAnCitvcgorLlJCICcgISAnLAord2hpY2ggcmVxdWVzdHMgdGhhdCBvbmx5IHRob3NlIGZpbGVzeXN0ZW1zIG5vdCBsaXN0ZWQgaW4KKy5JIGZzbGlzdAord2lsbCBiZSBjaGVja2VkLiAgSWYgYWxsIG9mIHRoZSBmaWxlc3lzdGVtcyBpbgorLkkgZnNsaXN0CithcmUgbm90IHByZWZpeGVkIGJ5IGEgbmVnYXRpb24gb3BlcmF0b3IsIHRoZW4gb25seSB0aG9zZSBmaWxlc3lzdGVtcworbGlzdGVkCitpbgorLkkgZnNsaXN0Cit3aWxsIGJlIGNoZWNrZWQuCisuc3AKK09wdGlvbnMgc3BlY2lmaWVycyBtYXkgYmUgaW5jbHVkZWQgaW4gdGhlIGNvbW1hLXNlcGFyYXRlZAorLklSIGZzbGlzdCAuCitUaGV5IG11c3QgaGF2ZSB0aGUgZm9ybWF0CisuQkkgb3B0cz0gZnMtb3B0aW9uXGZSLgorSWYgYW4gb3B0aW9ucyBzcGVjaWZpZXIgaXMgcHJlc2VudCwgdGhlbiBvbmx5IGZpbGVzeXN0ZW1zIHdoaWNoIGNvbnRhaW4KKy5JIGZzLW9wdGlvbgoraW4gdGhlaXIgbW91bnQgb3B0aW9ucyBmaWVsZCBvZgorLkIgL2V0Yy9mc3RhYgord2lsbCBiZSBjaGVja2VkLiAgSWYgdGhlIG9wdGlvbnMgc3BlY2lmaWVyIGlzIHByZWZpeGVkIGJ5IGEgbmVnYXRpb24KK29wZXJhdG9yLCB0aGVuIG9ubHkKK3Rob3NlIGZpbGVzeXN0ZW1zIHRoYXQgZG8gbm90IGhhdmUKKy5JIGZzLW9wdGlvbgoraW4gdGhlaXIgbW91bnQgb3B0aW9ucyBmaWVsZCBvZgorLkIgL2V0Yy9mc3RhYgord2lsbCBiZSBjaGVja2VkLgorLnNwCitGb3IgZXhhbXBsZSwgaWYKKy5CIG9wdHM9cm8KK2FwcGVhcnMgaW4KKy5JUiBmc2xpc3QgLAordGhlbiBvbmx5IGZpbGVzeXN0ZW1zIGxpc3RlZCBpbgorLkIgL2V0Yy9mc3RhYgord2l0aCB0aGUKKy5CIHJvCitvcHRpb24gd2lsbCBiZSBjaGVja2VkLgorLnNwCitGb3IgY29tcGF0aWJpbGl0eSB3aXRoIE1hbmRyYWtlIGRpc3RyaWJ1dGlvbnMgd2hvc2UgYm9vdCBzY3JpcHRzCitkZXBlbmQgdXBvbiBhbiB1bmF1dGhvcml6ZWQgVUkgY2hhbmdlIHRvIHRoZQorLkIgZnNjaworcHJvZ3JhbSwgaWYgYSBmaWxlc3lzdGVtIHR5cGUgb2YKKy5CIGxvb3AKK2lzIGZvdW5kIGluCisuSVIgZnNsaXN0ICwKK2l0IGlzIHRyZWF0ZWQgYXMgaWYKKy5CIG9wdHM9bG9vcAord2VyZSBzcGVjaWZpZWQgYXMgYW4gYXJndW1lbnQgdG8gdGhlCisuQiBcLXQKK29wdGlvbi4KKy5zcAorTm9ybWFsbHksIHRoZSBmaWxlc3lzdGVtIHR5cGUgaXMgZGVkdWNlZCBieSBzZWFyY2hpbmcgZm9yCisuSSBmaWxlc3lzCitpbiB0aGUKKy5JIC9ldGMvZnN0YWIKK2ZpbGUgYW5kIHVzaW5nIHRoZSBjb3JyZXNwb25kaW5nIGVudHJ5LgorSWYgdGhlIHR5cGUgY2FuIG5vdCBiZSBkZWR1Y2VkLCBhbmQgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBmaWxlc3lzdGVtCitnaXZlbiBhcyBhbiBhcmd1bWVudCB0byB0aGUKKy5CIFwtdAorb3B0aW9uLAorLkIgZnNjaword2lsbCB1c2UgdGhlIHNwZWNpZmllZCBmaWxlc3lzdGVtIHR5cGUuICBJZiB0aGlzIHR5cGUgaXMgbm90CithdmFpbGFibGUsIHRoZW4gdGhlIGRlZmF1bHQgZmlsZSBzeXN0ZW0gdHlwZSAoY3VycmVudGx5IGV4dDIpIGlzIHVzZWQuCisuVFAKKy5CIFwtQQorV2FsayB0aHJvdWdoIHRoZQorLkkgL2V0Yy9mc3RhYgorZmlsZSBhbmQgdHJ5IHRvIGNoZWNrIGFsbCBmaWxlIHN5c3RlbXMgaW4gb25lIHJ1bi4gIFRoaXMgb3B0aW9uIGlzCit0eXBpY2FsbHkgdXNlZCBmcm9tIHRoZQorLkkgL2V0Yy9yYworc3lzdGVtIGluaXRpYWxpemF0aW9uIGZpbGUsIGluc3RlYWQgb2YgbXVsdGlwbGUgY29tbWFuZHMgZm9yIGNoZWNraW5nCithIHNpbmdsZSBmaWxlIHN5c3RlbS4KKy5zcAorVGhlIHJvb3QgZmlsZXN5c3RlbSB3aWxsIGJlIGNoZWNrZWQgZmlyc3QgdW5sZXNzIHRoZQorLkIgXC1QCitvcHRpb24gaXMgc3BlY2lmaWVkIChzZWUgYmVsb3cpLiAgQWZ0ZXIgdGhhdCwKK2ZpbGVzeXN0ZW1zIHdpbGwgYmUgY2hlY2tlZCBpbiB0aGUgb3JkZXIgc3BlY2lmaWVkIGJ5IHRoZQorLkkgZnNfcGFzc25vCisodGhlIHNpeHRoKSBmaWVsZCBpbiB0aGUKKy5JIC9ldGMvZnN0YWIKK2ZpbGUuCitGaWxlc3lzdGVtcyB3aXRoIGEKKy5JIGZzX3Bhc3NubwordmFsdWUgb2YgMCBhcmUgc2tpcHBlZCBhbmQgYXJlIG5vdCBjaGVja2VkIGF0IGFsbC4gIEZpbGVzeXN0ZW1zIHdpdGggYQorLkkgZnNfcGFzc25vCit2YWx1ZSBvZiBncmVhdGVyIHRoYW4gemVybyB3aWxsIGJlIGNoZWNrZWQgaW4gb3JkZXIsCit3aXRoIGZpbGVzeXN0ZW1zIHdpdGggdGhlIGxvd2VzdAorLkkgZnNfcGFzc25vCitudW1iZXIgYmVpbmcgY2hlY2tlZCBmaXJzdC4KK0lmIHRoZXJlIGFyZSBtdWx0aXBsZSBmaWxlc3lzdGVtcyB3aXRoIHRoZSBzYW1lIHBhc3MgbnVtYmVyLAorZnNjayB3aWxsIGF0dGVtcHQgdG8gY2hlY2sgdGhlbSBpbiBwYXJhbGxlbCwgYWx0aG91Z2ggaXQgd2lsbCBhdm9pZCBydW5uaW5nCittdWx0aXBsZSBmaWxlc3lzdGVtIGNoZWNrcyBvbiB0aGUgc2FtZSBwaHlzaWNhbCBkaXNrLgorLnNwCitIZW5jZSwgYSB2ZXJ5IGNvbW1vbiBjb25maWd1cmF0aW9uIGluCisuSSAvZXRjL2ZzdGFiCitmaWxlcyBpcyB0byBzZXQgdGhlIHJvb3QgZmlsZXN5c3RlbSB0byBoYXZlIGEKKy5JIGZzX3Bhc3NubwordmFsdWUgb2YgMQorYW5kIHRvIHNldCBhbGwgb3RoZXIgZmlsZXN5c3RlbXMgdG8gaGF2ZSBhCisuSSBmc19wYXNzbm8KK3ZhbHVlIG9mIDIuICBUaGlzIHdpbGwgYWxsb3cKKy5CIGZzY2sKK3RvIGF1dG9tYXRpY2FsbHkgcnVuIGZpbGVzeXN0ZW0gY2hlY2tlcnMgaW4gcGFyYWxsZWwgaWYgaXQgaXMgYWR2YW50YWdlb3VzCit0byBkbyBzby4gIFN5c3RlbSBhZG1pbmlzdHJhdG9ycyBtaWdodCBjaG9vc2UKK25vdCB0byB1c2UgdGhpcyBjb25maWd1cmF0aW9uIGlmIHRoZXkgbmVlZCB0byBhdm9pZCBtdWx0aXBsZSBmaWxlc3lzdGVtCitjaGVja3MgcnVubmluZyBpbiBwYXJhbGxlbCBmb3Igc29tZSByZWFzb24gLS0tIGZvciBleGFtcGxlLCBpZiB0aGUKK21hY2hpbmUgaW4gcXVlc3Rpb24gaXMgc2hvcnQgb24gbWVtb3J5IHNvIHRoYXQKK2V4Y2Vzc2l2ZSBwYWdpbmcgaXMgYSBjb25jZXJuLgorLnNwCisuQiBmc2NrCitub3JtYWxseSBkb2VzIG5vdCBjaGVjayB3aGV0aGVyIHRoZSBkZXZpY2UgYWN0dWFsbHkgZXhpc3RzIGJlZm9yZQorY2FsbGluZyBhIGZpbGUgc3lzdGVtIHNwZWNpZmljIGNoZWNrZXIuIFRoZXJlZm9yZSBub24tZXhpc3RpbmcKK2RldmljZXMgbWF5IGNhdXNlIHRoZSBzeXN0ZW0gdG8gZW50ZXIgZmlsZSBzeXN0ZW0gcmVwYWlyIG1vZGUgZHVyaW5nCitib290IGlmIHRoZSBmaWxlc3lzdGVtIHNwZWNpZmljIGNoZWNrZXIgcmV0dXJucyBhIGZhdGFsIGVycm9yLiBUaGUKKy5CIC9ldGMvZnN0YWIKK21vdW50IG9wdGlvbgorLkIgbm9mYWlsCittYXkgYmUgdXNlZCB0byBoYXZlCisuQiBmc2NrCitza2lwIG5vbi1leGlzdGluZyBkZXZpY2VzLgorLkIgZnNjaworYWxzbyBza2lwcyBub24tZXhpc3RpbmcgZGV2aWNlcyB0aGF0IGhhdmUgdGhlIHNwZWNpYWwgZmlsZSBzeXN0ZW0gdHlwZQorLkIgYXV0bworLgorLlRQCisuQiBcLUNcZlIgWyBcZkkgImZkIiBcZlIgXQorRGlzcGxheSBjb21wbGV0aW9uL3Byb2dyZXNzIGJhcnMgZm9yIHRob3NlIGZpbGVzeXN0ZW0gY2hlY2tlcnMgKGN1cnJlbnRseQorb25seSBmb3IgZXh0MiBhbmQgZXh0Mykgd2hpY2ggc3VwcG9ydCB0aGVtLiAgIEZzY2sgd2lsbCBtYW5hZ2UgdGhlCitmaWxlc3lzdGVtIGNoZWNrZXJzIHNvIHRoYXQgb25seSBvbmUgb2YgdGhlbSB3aWxsIGRpc3BsYXkKK2EgcHJvZ3Jlc3MgYmFyIGF0IGEgdGltZS4gIEdVSSBmcm9udC1lbmRzIG1heSBzcGVjaWZ5IGEgZmlsZSBkZXNjcmlwdG9yCisuSVIgZmQgLAoraW4gd2hpY2ggY2FzZSB0aGUgcHJvZ3Jlc3MgYmFyIGluZm9ybWF0aW9uIHdpbGwgYmUgc2VudCB0byB0aGF0IGZpbGUgZGVzY3JpcHRvci4KKy5UUAorLkIgXC1NCitEbyBub3QgY2hlY2sgbW91bnRlZCBmaWxlc3lzdGVtcyBhbmQgcmV0dXJuIGFuIGV4aXQgY29kZSBvZiAwCitmb3IgbW91bnRlZCBmaWxlc3lzdGVtcy4KKy5UUAorLkIgXC1OCitEb24ndCBleGVjdXRlLCBqdXN0IHNob3cgd2hhdCB3b3VsZCBiZSBkb25lLgorLlRQCisuQiBcLVAKK1doZW4gdGhlCisuQiBcLUEKK2ZsYWcgaXMgc2V0LCBjaGVjayB0aGUgcm9vdCBmaWxlc3lzdGVtIGluIHBhcmFsbGVsIHdpdGggdGhlIG90aGVyIGZpbGVzeXN0ZW1zLgorVGhpcyBpcyBub3QgdGhlIHNhZmVzdCB0aGluZyBpbiB0aGUgd29ybGQgdG8gZG8sCitzaW5jZSBpZiB0aGUgcm9vdCBmaWxlc3lzdGVtIGlzIGluIGRvdWJ0IHRoaW5ncyBsaWtlIHRoZQorLkJSIGUyZnNjayAoOCkKK2V4ZWN1dGFibGUgbWlnaHQgYmUgY29ycnVwdGVkISAgVGhpcyBvcHRpb24gaXMgbWFpbmx5IHByb3ZpZGVkCitmb3IgdGhvc2Ugc3lzYWRtaW5zIHdobyBkb24ndCB3YW50IHRvIHJlcGFydGl0aW9uIHRoZSByb290CitmaWxlc3lzdGVtIHRvIGJlIHNtYWxsIGFuZCBjb21wYWN0ICh3aGljaCBpcyByZWFsbHkgdGhlIHJpZ2h0IHNvbHV0aW9uKS4KKy5UUAorLkIgXC1SCitXaGVuIGNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMgd2l0aCB0aGUKKy5CIFwtQQorZmxhZywgc2tpcCB0aGUgcm9vdCBmaWxlIHN5c3RlbSAoaW4gY2FzZSBpdCdzIGFscmVhZHkgbW91bnRlZCByZWFkLXdyaXRlKS4KKy5UUAorLkIgXC1UCitEb24ndCBzaG93IHRoZSB0aXRsZSBvbiBzdGFydHVwLgorLlRQCisuQiBcLVYKK1Byb2R1Y2UgdmVyYm9zZSBvdXRwdXQsIGluY2x1ZGluZyBhbGwgZmlsZSBzeXN0ZW0tc3BlY2lmaWMgY29tbWFuZHMKK3RoYXQgYXJlIGV4ZWN1dGVkLgorLlRQCisuQiBmcy1zcGVjaWZpYy1vcHRpb25zCitPcHRpb25zIHdoaWNoIGFyZSBub3QgdW5kZXJzdG9vZCBieQorLkIgZnNjaworYXJlIHBhc3NlZCB0byB0aGUgZmlsZXN5c3RlbS1zcGVjaWZpYyBjaGVja2VyLiAgVGhlc2UgYXJndW1lbnRzCisuQiBtdXN0Citub3QgdGFrZSBhcmd1bWVudHMsIGFzIHRoZXJlIGlzIG5vCit3YXkgZm9yCisuQiBmc2NrCit0byBiZSBhYmxlIHRvIHByb3Blcmx5IGd1ZXNzIHdoaWNoIGFyZ3VtZW50cyB0YWtlIG9wdGlvbnMgYW5kIHdoaWNoCitkb24ndC4KKy5JUAorT3B0aW9ucyBhbmQgYXJndW1lbnRzIHdoaWNoIGZvbGxvdyB0aGUKKy5CIFwtXC0KK2FyZSB0cmVhdGVkIGFzIGZpbGUgc3lzdGVtLXNwZWNpZmljIG9wdGlvbnMgdG8gYmUgcGFzc2VkIHRvIHRoZQorZmlsZSBzeXN0ZW0tc3BlY2lmaWMgY2hlY2tlci4KKy5JUAorUGxlYXNlIG5vdGUgdGhhdCBmc2NrIGlzIG5vdAorZGVzaWduZWQgdG8gcGFzcyBhcmJpdHJhcmlseSBjb21wbGljYXRlZCBvcHRpb25zIHRvIGZpbGVzeXN0ZW0tc3BlY2lmaWMKK2NoZWNrZXJzLiAgSWYgeW91J3JlIGRvaW5nIHNvbWV0aGluZyBjb21wbGljYXRlZCwgcGxlYXNlIGp1c3QKK2V4ZWN1dGUgdGhlIGZpbGVzeXN0ZW0tc3BlY2lmaWMgY2hlY2tlciBkaXJlY3RseS4gIElmIHlvdSBwYXNzCisuQiBmc2NrCitzb21lIGhvcnJpYmx5IGNvbXBsaWNhdGVkIG9wdGlvbiBhbmQgYXJndW1lbnRzLCBhbmQgaXQgZG9lc24ndCBkbword2hhdCB5b3UgZXhwZWN0LAorLkIgZG9uJ3QgYm90aGVyIHJlcG9ydGluZyBpdCBhcyBhIGJ1Zy4KK1lvdSdyZSBhbG1vc3QgY2VydGFpbmx5IGRvaW5nIHNvbWV0aGluZyB0aGF0IHlvdSBzaG91bGRuJ3QgYmUgZG9pbmcKK3dpdGgKKy5CUiBmc2NrLgorLlBQCitPcHRpb25zIHRvIGRpZmZlcmVudCBmaWxlc3lzdGVtLXNwZWNpZmljIGZzY2sncyBhcmUgbm90IHN0YW5kYXJkaXplZC4KK0lmIGluIGRvdWJ0LCBwbGVhc2UgY29uc3VsdCB0aGUgbWFuIHBhZ2VzIG9mIHRoZSBmaWxlc3lzdGVtLXNwZWNpZmljCitjaGVja2VyLiAgQWx0aG91Z2ggbm90IGd1YXJhbnRlZWQsIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgc3VwcG9ydGVkCitieSBtb3N0IGZpbGUgc3lzdGVtIGNoZWNrZXJzOgorLlRQCisuQiBcLWEKK0F1dG9tYXRpY2FsbHkgcmVwYWlyIHRoZSBmaWxlIHN5c3RlbSB3aXRob3V0IGFueSBxdWVzdGlvbnMgKHVzZQordGhpcyBvcHRpb24gd2l0aCBjYXV0aW9uKS4gIE5vdGUgdGhhdAorLkJSIGUyZnNjayAoOCkKK3N1cHBvcnRzCisuQiBcLWEKK2ZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBvbmx5LiAgVGhpcyBvcHRpb24gaXMgbWFwcGVkIHRvCisuQlIgZTJmc2NrICdzCisuQiBcLXAKK29wdGlvbiB3aGljaCBpcyBzYWZlIHRvIHVzZSwgdW5saWtlIHRoZQorLkIgXC1hCitvcHRpb24gdGhhdCBzb21lIGZpbGUgc3lzdGVtIGNoZWNrZXJzIHN1cHBvcnQuCisuVFAKKy5CIFwtbgorRm9yIHNvbWUgZmlsZXN5c3RlbS1zcGVjaWZpYyBjaGVja2VycywgdGhlCisuQiBcLW4KK29wdGlvbiB3aWxsIGNhdXNlIHRoZSBmcy1zcGVjaWZpYyBmc2NrIHRvIGF2b2lkIGF0dGVtcHRpbmcgdG8gcmVwYWlyIGFueQorcHJvYmxlbXMsIGJ1dCBzaW1wbHkgcmVwb3J0IHN1Y2ggcHJvYmxlbXMgdG8gc3Rkb3V0LiAgVGhpcyBpcyBob3dldmVyCitub3QgdHJ1ZSBmb3IgYWxsIGZpbGVzeXN0ZW0tc3BlY2lmaWMgY2hlY2tlcnMuICBJbiBwYXJ0aWN1bGFyLAorLkJSIGZzY2sucmVpc2VyZnMgKDgpCit3aWxsIG5vdCByZXBvcnQgYW55IGNvcnJ1cHRpb24gaWYgZ2l2ZW4gdGhpcyBvcHRpb24uCisuQlIgZnNjay5taW5peCAoOCkKK2RvZXMgbm90IHN1cHBvcnQgdGhlCisuQiBcLW4KK29wdGlvbiBhdCBhbGwuCisuVFAKKy5CIFwtcgorSW50ZXJhY3RpdmVseSByZXBhaXIgdGhlIGZpbGVzeXN0ZW0gKGFzayBmb3IgY29uZmlybWF0aW9ucykuICBOb3RlOiBJdAoraXMgZ2VuZXJhbGx5IGEgYmFkIGlkZWEgdG8gdXNlIHRoaXMgb3B0aW9uIGlmIG11bHRpcGxlIGZzY2sncyBhcmUgYmVpbmcKK3J1biBpbiBwYXJhbGxlbC4gIEFsc28gbm90ZSB0aGF0IHRoaXMgaXMKKy5CUiBlMmZzY2sgJ3MKK2RlZmF1bHQgYmVoYXZpb3I7IGl0IHN1cHBvcnRzIHRoaXMgb3B0aW9uIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQorcmVhc29ucyBvbmx5LgorLlRQCisuQiBcLXkKK0ZvciBzb21lIGZpbGVzeXN0ZW0tc3BlY2lmaWMgY2hlY2tlcnMsIHRoZQorLkIgXC15CitvcHRpb24gd2lsbCBjYXVzZSB0aGUgZnMtc3BlY2lmaWMgZnNjayB0byBhbHdheXMgYXR0ZW1wdCB0byBmaXggYW55CitkZXRlY3RlZCBmaWxlc3lzdGVtIGNvcnJ1cHRpb24gYXV0b21hdGljYWxseS4gIFNvbWV0aW1lcyBhbiBleHBlcnQgbWF5CitiZSBhYmxlIHRvIGRvIGJldHRlciBkcml2aW5nIHRoZSBmc2NrIG1hbnVhbGx5LiAgTm90ZSB0aGF0CisuQiBub3QKK2FsbCBmaWxlc3lzdGVtLXNwZWNpZmljIGNoZWNrZXJzIGltcGxlbWVudCB0aGlzIG9wdGlvbi4gIEluIHBhcnRpY3VsYXIKKy5CUiBmc2NrLm1pbml4ICg4KQorYW5kCisuQlIgZnNjay5jcmFtZnMgKDgpCitkb2VzIG5vdCBzdXBwb3J0IHRoZQorLkIgLXkKK29wdGlvbiBhcyBvZiB0aGlzIHdyaXRpbmcuCisuU0ggQVVUSE9SCitUaGVvZG9yZSBUcydvICh0eXRzb0BtaXQuZWR1KQorLlNIIEFWQUlMQUJJTElUWQorVGhlIGJsa2lkIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgorLlNIIEZJTEVTCisuSVIgL2V0Yy9mc3RhYiAuCisuU0ggRU5WSVJPTk1FTlQgVkFSSUFCTEVTCitUaGUKKy5CIGZzY2sKK3Byb2dyYW0ncyBiZWhhdmlvciBpcyBhZmZlY3RlZCBieSB0aGUgZm9sbG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlczoKKy5UUAorLkIgRlNDS19GT1JDRV9BTExfUEFSQUxMRUwKK0lmIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LAorLkIgZnNjaword2lsbCBhdHRlbXB0IHRvIHJ1biBhbGwgb2YgdGhlIHNwZWNpZmllZCBmaWxlc3lzdGVtcyBpbiBwYXJhbGxlbCwKK3JlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZmlsZXN5c3RlbXMgYXBwZWFyIHRvIGJlIG9uIHRoZSBzYW1lCitkZXZpY2UuICAoVGhpcyBpcyB1c2VmdWwgZm9yIFJBSUQgc3lzdGVtcyBvciBoaWdoLWVuZCBzdG9yYWdlIHN5c3RlbXMKK3N1Y2ggYXMgdGhvc2Ugc29sZCBieSBjb21wYW5pZXMgc3VjaCBhcyBJQk0gb3IgRU1DLikKKy5UUAorLkIgRlNDS19NQVhfSU5TVAorVGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aWxsIGxpbWl0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBmaWxlIHN5c3RlbQorY2hlY2tlcnMgdGhhdCBjYW4gYmUgcnVubmluZyBhdCBvbmUgdGltZS4gIFRoaXMgYWxsb3dzIGNvbmZpZ3VyYXRpb25zCit3aGljaCBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIGRpc2tzIHRvIGF2b2lkCisuQiBmc2NrCitzdGFydGluZyB0b28gbWFueSBmaWxlIHN5c3RlbSBjaGVja2VycyBhdCBvbmNlLCB3aGljaCBtaWdodCBvdmVybG9hZAorQ1BVIGFuZCBtZW1vcnkgcmVzb3VyY2VzIGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtLiAgSWYgdGhpcyB2YWx1ZSBpcworemVybywgdGhlbiBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIHByb2Nlc3NlcyBjYW4gYmUgc3Bhd25lZC4gIFRoaXMgaXMKK2N1cnJlbnRseSB0aGUgZGVmYXVsdCwgYnV0IGZ1dHVyZSB2ZXJzaW9ucyBvZgorLkIgZnNjaworbWF5IGF0dGVtcHQgdG8gYXV0b21hdGljYWxseSBkZXRlcm1pbmUgaG93IG1hbnkgZmlsZSBzeXN0ZW0gY2hlY2tzIGNhbgorYmUgcnVuIGJhc2VkIG9uIGdhdGhlcmluZyBhY2NvdW50aW5nIGRhdGEgZnJvbSB0aGUgb3BlcmF0aW5nIHN5c3RlbS4KKy5UUAorLkIgUEFUSAorVGhlCisuQiBQQVRICitlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyB1c2VkIHRvIGZpbmQgZmlsZSBzeXN0ZW0gY2hlY2tlcnMuICBBIHNldCBvZgorc3lzdGVtIGRpcmVjdG9yaWVzIGFyZSBzZWFyY2hlZCBmaXJzdDoKKy5CUiAvc2JpbiAsCisuQlIgL3NiaW4vZnMuZCAsCisuQlIgIC9zYmluL2ZzICwKKy5CUiAvZXRjL2ZzICwKK2FuZAorLkJSIC9ldGMgLgorVGhlbiB0aGUgc2V0IG9mIGRpcmVjdG9yaWVzIGZvdW5kIGluIHRoZQorLkIgUEFUSAorZW52aXJvbm1lbnQgYXJlIHNlYXJjaGVkLgorLlRQCisuQiBGU1RBQl9GSUxFCitUaGlzIGVudmlyb25tZW50IHZhcmlhYmxlIGFsbG93cyB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IKK3RvIG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBsb2NhdGlvbiBvZiB0aGUKKy5CIC9ldGMvZnN0YWIKK2ZpbGUuICBJdCBpcyBhbHNvIHVzZWZ1bCBmb3IgZGV2ZWxvcGVycyB3aG8gYXJlIHRlc3RpbmcKKy5CUiBmc2NrIC4KKy5TSCBTRUUgQUxTTworLkJSIGZzdGFiICg1KSwKKy5CUiBta2ZzICg4KSwKKy5CUiBmc2NrLmV4dDIgKDgpCitvcgorLkJSIGZzY2suZXh0MyAoOCkKK29yCisuQlIgZTJmc2NrICg4KSwKKy5CUiBjcmFtZnNjayAoOCksCisuQlIgZnNjay5taW5peCAoOCksCisuQlIgZnNjay5tc2RvcyAoOCksCisuQlIgZnNjay5qZnMgKDgpLAorLkJSIGZzY2submZzICg4KSwKKy5CUiBmc2NrLnZmYXQgKDgpLAorLkJSIGZzY2sueGZzICg4KSwKKy5CUiBmc2NrLnhpYWZzICg4KSwKKy5CUiByZWlzZXJmc2NrICg4KS4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svZnNjay5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZnNjay9mc2NrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTllNjQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svZnNjay5jCkBAIC0wLDAgKzEsMTM0NiBAQAorLyoKKyAqIHBmc2NrIC0tLSBBIGdlbmVyaWMsIHBhcmFsbGVsaXppbmcgZnJvbnQtZW5kIGZvciB0aGUgZnNjayBwcm9ncmFtLgorICogSXQgd2lsbCBhdXRvbWF0aWNhbGx5IHRyeSB0byBydW4gZnNjayBwcm9ncmFtcyBpbiBwYXJhbGxlbCBpZiB0aGUKKyAqIGRldmljZXMgYXJlIG9uIHNlcGFyYXRlIHNwaW5kbGVzLiAgSXQgaXMgYmFzZWQgb24gdGhlIHNhbWUgaWRlYXMgYXMKKyAqIHRoZSBnZW5lcmljIGZyb250IGVuZCBmb3IgZnNjayBieSBEYXZpZCBFbmdlbCBhbmQgRnJlZCB2YW4gS2VtcGVuLAorICogYnV0IGl0IGhhcyBiZWVuIGNvbXBsZXRlbHkgcmV3cml0dGVuIGZyb20gc2NyYXRjaCB0byBzdXBwb3J0CisgKiBwYXJhbGxlbCBleGVjdXRpb24uCisgKgorICogV3JpdHRlbiBieSBUaGVvZG9yZSBUcydvLCA8dHl0c29AbWl0LmVkdT4KKyAqCisgKiBNaXF1ZWwgdmFuIFNtb29yZW5idXJnIChtaXF1ZWxzQGRyaW5rZWwub3cub3JnKSAyMC1PY3QtMTk5NDoKKyAqICAgbyBDaGFuZ2VkIC10IGZzdHlwZSB0byBiZWhhdmUgbGlrZSB3aXRoIG1vdW50IHdoZW4gLUEgKGFsbCBmaWxlCisgKiAgICAgc3lzdGVtcykgb3IgLU0gKGxpa2UgbW91bnQpIGlzIHNwZWNpZmllZC4KKyAqICAgbyBmc2NrIGxvb2tzIGlmIGl0IGNhbiBmaW5kIHRoZSBmc2NrLnR5cGUgcHJvZ3JhbSB0byBkZWNpZGUKKyAqICAgICBpZiBpdCBzaG91bGQgaWdub3JlIHRoZSBmcyB0eXBlLiBUaGlzIHdheSBtb3JlIGZzY2sgcHJvZ3JhbXMKKyAqICAgICBjYW4gYmUgYWRkZWQgd2l0aG91dCBjaGFuZ2luZyB0aGlzIGZyb250LWVuZC4KKyAqICAgbyAtUiBmbGFnIHNraXAgcm9vdCBmaWxlIHN5c3RlbS4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsCisgKgkgICAgICAgICAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1IGJ5ICBUaGVvZG9yZSBUcydvLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgUHVibGljCisgKiBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgX1hPUEVOX1NPVVJDRSA2MDAgLyogZm9yIGluY2x1c2lvbiBvZiBzYV9oYW5kbGVyIGluIFNvbGFyaXMgKi8KKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSA8c3lzL3NpZ25hbC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxwYXRocy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8bWFsbG9jLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisKKyNpbmNsdWRlICJmc3Byb2JlLmgiCisKKyNpbmNsdWRlICJubHMuaCIKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJpc21vdW50ZWQuaCIKKworI2luY2x1ZGUgImZzY2suaCIKKworc3RhdGljIGNvbnN0IGNoYXIgKmlnbm9yZWRfdHlwZXNbXSA9IHsKKwkiaWdub3JlIiwKKwkiaXNvOTY2MCIsCisJIm5mcyIsCisJInByb2MiLAorCSJzdyIsCisJInN3YXAiLAorCSJ0bXBmcyIsCisJImRldnB0cyIsCisJTlVMTAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKnJlYWxseV93YW50ZWRbXSA9IHsKKwkibWluaXgiLAorCSJleHQyIiwKKwkiZXh0MyIsCisJImV4dDQiLAorCSJleHQ0ZGV2IiwKKwkiamZzIiwKKwkicmVpc2VyZnMiLAorCSJ4aWFmcyIsCisJInhmcyIsCisJTlVMTAorfTsKKworI2RlZmluZSBCQVNFX01EICIvZGV2L21kIgorCisvKgorICogR2xvYmFsIHZhcmlhYmxlcyBmb3Igb3B0aW9ucworICovCitjaGFyICpkZXZpY2VzW01BWF9ERVZJQ0VTXTsKK2NoYXIgKmFyZ3NbTUFYX0FSR1NdOworaW50IG51bV9kZXZpY2VzLCBudW1fYXJnczsKKworaW50IHZlcmJvc2UgPSAwOworaW50IGRvYWxsID0gMDsKK2ludCBub2V4ZWN1dGUgPSAwOworaW50IHNlcmlhbGl6ZSA9IDA7CitpbnQgc2tpcF9yb290ID0gMDsKK2ludCBpZ25vcmVfbW91bnRlZCA9IDA7CitpbnQgbm90aXRsZSA9IDA7CitpbnQgcGFyYWxsZWxfcm9vdCA9IDA7CitpbnQgcHJvZ3Jlc3MgPSAwOworaW50IHByb2dyZXNzX2ZkID0gMDsKK2ludCBmb3JjZV9hbGxfcGFyYWxsZWwgPSAwOworaW50IG51bV9ydW5uaW5nID0gMDsKK2ludCBtYXhfcnVubmluZyA9IDA7Cit2b2xhdGlsZSBpbnQgY2FuY2VsX3JlcXVlc3RlZCA9IDA7CitpbnQga2lsbF9zZW50ID0gMDsKK2NoYXIgKnByb2duYW1lOworY2hhciAqZnN0eXBlID0gTlVMTDsKK3N0cnVjdCBmc19pbmZvICpmaWxlc3lzX2luZm8gPSBOVUxMLCAqZmlsZXN5c19sYXN0ID0gTlVMTDsKK3N0cnVjdCBmc2NrX2luc3RhbmNlICppbnN0YW5jZV9saXN0OworY29uc3QgY2hhciAqZnNja19wcmVmaXhfcGF0aCA9ICIvc2Jpbjovc2Jpbi9mcy5kOi9zYmluL2ZzOi9ldGMvZnM6L2V0YyI7CitjaGFyICpmc2NrX3BhdGggPSAwOworCitzdGF0aWMgY2hhciAqc3RyaW5nX2NvcHkoY29uc3QgY2hhciAqcykKK3sKKwljaGFyCSpyZXQ7CisKKwlpZiAoIXMpCisJCXJldHVybiAwOworCXJldCA9IG1hbGxvYyhzdHJsZW4ocykrMSk7CisJaWYgKHJldCkKKwkJc3RyY3B5KHJldCwgcyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBzdHJpbmdfdG9faW50KGNvbnN0IGNoYXIgKnMpCit7CisJbG9uZyBsOworCWNoYXIgKnA7CisKKwlsID0gc3RydG9sKHMsICZwLCAwKTsKKwlpZiAoKnAgfHwgbCA9PSBMT05HX01JTiB8fCBsID09IExPTkdfTUFYIHx8IGwgPCAwIHx8IGwgPiBJTlRfTUFYKQorCQlyZXR1cm4gLTE7CisJZWxzZQorCQlyZXR1cm4gKGludCkgbDsKK30KKworc3RhdGljIGludCBpZ25vcmUoc3RydWN0IGZzX2luZm8gKik7CisKK3N0YXRpYyBjaGFyICpza2lwX292ZXJfYmxhbmsoY2hhciAqY3ApCit7CisJd2hpbGUgKCpjcCAmJiBpc3NwYWNlKCpjcCkpCisJCWNwKys7CisJcmV0dXJuIGNwOworfQorCitzdGF0aWMgY2hhciAqc2tpcF9vdmVyX3dvcmQoY2hhciAqY3ApCit7CisJd2hpbGUgKCpjcCAmJiAhaXNzcGFjZSgqY3ApKQorCQljcCsrOworCXJldHVybiBjcDsKK30KKworc3RhdGljIHZvaWQgc3RyaXBfbGluZShjaGFyICpsaW5lKQoreworCWNoYXIJKnA7CisKKwl3aGlsZSAoKmxpbmUpIHsKKwkJcCA9IGxpbmUgKyBzdHJsZW4obGluZSkgLSAxOworCQlpZiAoKCpwID09ICdcbicpIHx8ICgqcCA9PSAnXHInKSkKKwkJCSpwID0gMDsKKwkJZWxzZQorCQkJYnJlYWs7CisJfQorfQorCitzdGF0aWMgY2hhciAqcGFyc2Vfd29yZChjaGFyICoqYnVmKQoreworCWNoYXIgKndvcmQsICpuZXh0OworCisJd29yZCA9ICpidWY7CisJaWYgKCp3b3JkID09IDApCisJCXJldHVybiAwOworCisJd29yZCA9IHNraXBfb3Zlcl9ibGFuayh3b3JkKTsKKwluZXh0ID0gc2tpcF9vdmVyX3dvcmQod29yZCk7CisJaWYgKCpuZXh0KQorCQkqbmV4dCsrID0gMDsKKwkqYnVmID0gbmV4dDsKKwlyZXR1cm4gd29yZDsKK30KKworc3RhdGljIHZvaWQgcGFyc2VfZXNjYXBlKGNoYXIgKndvcmQpCit7CisJY2hhcgkqcCwgKnE7CisJaW50CWFjLCBpOworCisJaWYgKCF3b3JkKQorCQlyZXR1cm47CisKKwlmb3IgKHAgPSB3b3JkLCBxID0gd29yZDsgKnA7IHArKywgcSsrKSB7CisJCSpxID0gKnA7CisJCWlmICgqcCAhPSAnXFwnKQorCQkJY29udGludWU7CisJCWlmICgqKytwID09IDApCisJCQlicmVhazsKKwkJaWYgKCpwID09ICd0JykgeworCQkJKnEgPSAnXHQnOworCQkJY29udGludWU7CisJCX0KKwkJaWYgKCpwID09ICduJykgeworCQkJKnEgPSAnXG4nOworCQkJY29udGludWU7CisJCX0KKwkJaWYgKCFpc2RpZ2l0KCpwKSkgeworCQkJKnEgPSAqcDsKKwkJCWNvbnRpbnVlOworCQl9CisJCWFjID0gMDsKKwkJZm9yIChpID0gMDsgaSA8IDM7IGkrKywgcCsrKSB7CisJCQlpZiAoIWlzZGlnaXQoKnApKQorCQkJCWJyZWFrOworCQkJYWMgPSAoYWMgKiA4KSArICgqcCAtICcwJyk7CisJCX0KKwkJKnEgPSBhYzsKKwkJcC0tOworCX0KKwkqcSA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfaW5zdGFuY2Uoc3RydWN0IGZzY2tfaW5zdGFuY2UgKmkpCit7CisJZnJlZShpLT5wcm9nKTsKKwlmcmVlKGktPmRldmljZSk7CisJZnJlZShpLT5iYXNlX2RldmljZSk7CisJZnJlZShpKTsKKwlyZXR1cm47Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZnNfaW5mbyAqY3JlYXRlX2ZzX2RldmljZShjb25zdCBjaGFyICpkZXZpY2UsIGNvbnN0IGNoYXIgKm1udHBudCwKKwkJCQkJY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqb3B0cywKKwkJCQkJaW50IGZyZXEsIGludCBwYXNzbm8pCit7CisJc3RydWN0IGZzX2luZm8gKmZzOworCisJaWYgKCEoZnMgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBmc19pbmZvKSkpKQorCQlyZXR1cm4gTlVMTDsKKworCWZzLT5kZXZpY2UgPSBzdHJpbmdfY29weShkZXZpY2UpOworCWZzLT5tb3VudHB0ID0gc3RyaW5nX2NvcHkobW50cG50KTsKKwlmcy0+dHlwZSA9IHN0cmluZ19jb3B5KHR5cGUpOworCWZzLT5vcHRzID0gc3RyaW5nX2NvcHkob3B0cyA/IG9wdHMgOiAiIik7CisJZnMtPmZyZXEgPSBmcmVxOworCWZzLT5wYXNzbm8gPSBwYXNzbm87CisJZnMtPmZsYWdzID0gMDsKKwlmcy0+bmV4dCA9IE5VTEw7CisKKwlpZiAoIWZpbGVzeXNfaW5mbykKKwkJZmlsZXN5c19pbmZvID0gZnM7CisJZWxzZQorCQlmaWxlc3lzX2xhc3QtPm5leHQgPSBmczsKKwlmaWxlc3lzX2xhc3QgPSBmczsKKworCXJldHVybiBmczsKK30KKworCisKK3N0YXRpYyBpbnQgcGFyc2VfZnN0YWJfbGluZShjaGFyICpsaW5lLCBzdHJ1Y3QgZnNfaW5mbyAqKnJldF9mcykKK3sKKwljaGFyCSpkZXYsICpkZXZpY2UsICptbnRwbnQsICp0eXBlLCAqb3B0cywgKmZyZXEsICpwYXNzbm8sICpjcDsKKwlzdHJ1Y3QgZnNfaW5mbyAqZnM7CisKKwkqcmV0X2ZzID0gMDsKKwlzdHJpcF9saW5lKGxpbmUpOworCWNwID0gbGluZTsKKworCWRldmljZSA9IHBhcnNlX3dvcmQoJmNwKTsKKwlpZiAoIWRldmljZSB8fCAqZGV2aWNlID09ICcjJykKKwkJcmV0dXJuIDA7CS8qIElnbm9yZSBibGFuayBsaW5lcyBhbmQgY29tbWVudHMgKi8KKwltbnRwbnQgPSBwYXJzZV93b3JkKCZjcCk7CisJdHlwZSA9IHBhcnNlX3dvcmQoJmNwKTsKKwlvcHRzID0gcGFyc2Vfd29yZCgmY3ApOworCWZyZXEgPSBwYXJzZV93b3JkKCZjcCk7CisJcGFzc25vID0gcGFyc2Vfd29yZCgmY3ApOworCisJaWYgKCFtbnRwbnQgfHwgIXR5cGUpCisJCXJldHVybiAtMTsKKworCXBhcnNlX2VzY2FwZShkZXZpY2UpOworCXBhcnNlX2VzY2FwZShtbnRwbnQpOworCXBhcnNlX2VzY2FwZSh0eXBlKTsKKwlwYXJzZV9lc2NhcGUob3B0cyk7CisJcGFyc2VfZXNjYXBlKGZyZXEpOworCXBhcnNlX2VzY2FwZShwYXNzbm8pOworCisJZGV2ID0gZnNwcm9iZV9nZXRfZGV2bmFtZV9ieV9zcGVjKGRldmljZSk7CisJaWYgKGRldikKKwkJZGV2aWNlID0gZGV2OworCisJaWYgKHN0cmNocih0eXBlLCAnLCcpKQorCQl0eXBlID0gMDsKKworCWZzID0gY3JlYXRlX2ZzX2RldmljZShkZXZpY2UsIG1udHBudCwgdHlwZSA/IHR5cGUgOiAiYXV0byIsIG9wdHMsCisJCQkgICAgICBmcmVxID8gYXRvaShmcmVxKSA6IC0xLAorCQkJICAgICAgcGFzc25vID8gYXRvaShwYXNzbm8pIDogLTEpOworCWZyZWUoZGV2KTsKKworCWlmICghZnMpCisJCXJldHVybiAtMTsKKwkqcmV0X2ZzID0gZnM7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGludGVycHJldF90eXBlKHN0cnVjdCBmc19pbmZvICpmcykKK3sKKwljaGFyCSp0OworCisJaWYgKHN0cmNtcChmcy0+dHlwZSwgImF1dG8iKSAhPSAwKQorCQlyZXR1cm47CisJdCA9IGZzcHJvYmVfZ2V0X2ZzdHlwZV9ieV9kZXZuYW1lKGZzLT5kZXZpY2UpOworCWlmICh0KSB7CisJCWZyZWUoZnMtPnR5cGUpOworCQlmcy0+dHlwZSA9IHQ7CisJfQorfQorCisvKgorICogTG9hZCB0aGUgZmlsZXN5c3RlbSBkYXRhYmFzZSBmcm9tIC9ldGMvZnN0YWIKKyAqLworc3RhdGljIHZvaWQgbG9hZF9mc19pbmZvKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQoreworCUZJTEUJKmY7CisJY2hhcglidWZbMTAyNF07CisJaW50CWxpbmVubyA9IDA7CisJaW50CW9sZF9mc3RhYiA9IDE7CisJc3RydWN0IGZzX2luZm8gKmZzOworCisJaWYgKChmID0gZm9wZW4oZmlsZW5hbWUsICJyIikpID09IE5VTEwpIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iKSwKKwkJCWZpbGVuYW1lLCBzdHJlcnJvcihlcnJubykpOworCQlyZXR1cm47CisJfQorCXdoaWxlICghZmVvZihmKSkgeworCQlsaW5lbm8rKzsKKwkJaWYgKCFmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmKSkKKwkJCWJyZWFrOworCQlidWZbc2l6ZW9mKGJ1ZiktMV0gPSAwOworCQlpZiAocGFyc2VfZnN0YWJfbGluZShidWYsICZmcykgPCAwKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgXygiV0FSTklORzogYmFkIGZvcm1hdCAiCisJCQkJIm9uIGxpbmUgJWQgb2YgJXNcbiIpLCBsaW5lbm8sIGZpbGVuYW1lKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICghZnMpCisJCQljb250aW51ZTsKKwkJaWYgKGZzLT5wYXNzbm8gPCAwKQorCQkJZnMtPnBhc3NubyA9IDA7CisJCWVsc2UKKwkJCW9sZF9mc3RhYiA9IDA7CisJfQorCisJZmNsb3NlKGYpOworCisJaWYgKG9sZF9mc3RhYiAmJiBmaWxlc3lzX2luZm8pIHsKKwkJZnB1dHMoXygKKwkJIldBUk5JTkc6IFlvdXIgL2V0Yy9mc3RhYiBkb2VzIG5vdCBjb250YWluIHRoZSBmc2NrIHBhc3Nub1xuIgorCQkiCWZpZWxkLiAgSSB3aWxsIGtsdWRnZSBhcm91bmQgdGhpbmdzIGZvciB5b3UsIGJ1dCB5b3VcbiIKKwkJIglzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cblxuIiksIHN0ZGVycik7CisKKwkJZm9yIChmcyA9IGZpbGVzeXNfaW5mbzsgZnM7IGZzID0gZnMtPm5leHQpIHsKKwkJCWZzLT5wYXNzbm8gPSAxOworCQl9CisJfQorfQorCisvKiBMb29rdXAgZmlsZXN5cyBpbiAvZXRjL2ZzdGFiIGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgZW50cnkuICovCitzdGF0aWMgc3RydWN0IGZzX2luZm8gKmxvb2t1cChjaGFyICpmaWxlc3lzKQoreworCXN0cnVjdCBmc19pbmZvICpmczsKKworCS8qIE5vIGZpbGVzeXMgbmFtZSBnaXZlbi4gKi8KKwlpZiAoZmlsZXN5cyA9PSBOVUxMKQorCQlyZXR1cm4gTlVMTDsKKworCWZvciAoZnMgPSBmaWxlc3lzX2luZm87IGZzOyBmcyA9IGZzLT5uZXh0KSB7CisJCWlmICghc3RyY21wKGZpbGVzeXMsIGZzLT5kZXZpY2UpIHx8CisJCSAgICAoZnMtPm1vdW50cHQgJiYgIXN0cmNtcChmaWxlc3lzLCBmcy0+bW91bnRwdCkpKQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIGZzOworfQorCisvKiBGaW5kIGZzY2sgcHJvZ3JhbSBmb3IgYSBnaXZlbiBmcyB0eXBlLiAqLworc3RhdGljIGNoYXIgKmZpbmRfZnNjayhjaGFyICp0eXBlKQoreworICBjaGFyICpzOworICBjb25zdCBjaGFyICp0cGw7CisgIHN0YXRpYyBjaGFyIHByb2dbMjU2XTsKKyAgY2hhciAqcCA9IHN0cmluZ19jb3B5KGZzY2tfcGF0aCk7CisgIHN0cnVjdCBzdGF0IHN0OworCisgIC8qIEFyZSB3ZSBsb29raW5nIGZvciBhIHByb2dyYW0gb3IganVzdCBhIHR5cGU/ICovCisgIHRwbCA9IChzdHJuY21wKHR5cGUsICJmc2NrLiIsIDUpID8gIiVzL2ZzY2suJXMiIDogIiVzLyVzIik7CisKKyAgZm9yKHMgPSBzdHJ0b2socCwgIjoiKTsgczsgcyA9IHN0cnRvayhOVUxMLCAiOiIpKSB7CisJc3ByaW50Zihwcm9nLCB0cGwsIHMsIHR5cGUpOworCWlmIChzdGF0KHByb2csICZzdCkgPT0gMCkgYnJlYWs7CisgIH0KKyAgZnJlZShwKTsKKyAgcmV0dXJuKHMgPyBwcm9nIDogTlVMTCk7Cit9CisKK3N0YXRpYyBpbnQgcHJvZ3Jlc3NfYWN0aXZlKE5PQVJHUykKK3sKKwlzdHJ1Y3QgZnNja19pbnN0YW5jZSAqaW5zdDsKKworCWZvciAoaW5zdCA9IGluc3RhbmNlX2xpc3Q7IGluc3Q7IGluc3QgPSBpbnN0LT5uZXh0KSB7CisJCWlmIChpbnN0LT5mbGFncyAmIEZMQUdfRE9ORSkKKwkJCWNvbnRpbnVlOworCQlpZiAoaW5zdC0+ZmxhZ3MgJiBGTEFHX1BST0dSRVNTKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogRXhlY3V0ZSBhIHBhcnRpY3VsYXIgZnNjayBwcm9ncmFtLCBhbmQgbGluayBpdCBpbnRvIHRoZSBsaXN0IG9mCisgKiBjaGlsZCBwcm9jZXNzZXMgd2UgYXJlIHdhaXRpbmcgZm9yLgorICovCitzdGF0aWMgaW50IGV4ZWN1dGUoY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqZGV2aWNlLCBjb25zdCBjaGFyICptbnRwdCwKKwkJICAgaW50IGludGVyYWN0aXZlKQoreworCWNoYXIgKnMsICphcmd2WzgwXSwgcHJvZ1s4MF07CisJaW50ICBhcmdjLCBpOworCXN0cnVjdCBmc2NrX2luc3RhbmNlICppbnN0LCAqcDsKKwlwaWRfdAlwaWQ7CisKKwlpbnN0ID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgZnNja19pbnN0YW5jZSkpOworCWlmICghaW5zdCkKKwkJcmV0dXJuIEVOT01FTTsKKwltZW1zZXQoaW5zdCwgMCwgc2l6ZW9mKHN0cnVjdCBmc2NrX2luc3RhbmNlKSk7CisKKwlzcHJpbnRmKHByb2csICJmc2NrLiVzIiwgdHlwZSk7CisJYXJndlswXSA9IHN0cmluZ19jb3B5KHByb2cpOworCWFyZ2MgPSAxOworCisJZm9yIChpPTA7IGkgPG51bV9hcmdzOyBpKyspCisJCWFyZ3ZbYXJnYysrXSA9IHN0cmluZ19jb3B5KGFyZ3NbaV0pOworCisJaWYgKHByb2dyZXNzKSB7CisJCWlmICgoc3RyY21wKHR5cGUsICJleHQyIikgPT0gMCkgfHwKKwkJICAgIChzdHJjbXAodHlwZSwgImV4dDMiKSA9PSAwKSB8fAorCQkgICAgKHN0cmNtcCh0eXBlLCAiZXh0NCIpID09IDApIHx8CisJCSAgICAoc3RyY21wKHR5cGUsICJleHQ0ZGV2IikgPT0gMCkpIHsKKwkJCWNoYXIgdG1wWzgwXTsKKworCQkJdG1wWzBdID0gMDsKKwkJCWlmICghcHJvZ3Jlc3NfYWN0aXZlKCkpIHsKKwkJCQlzbnByaW50Zih0bXAsIDgwLCAiLUMlZCIsIHByb2dyZXNzX2ZkKTsKKwkJCQlpbnN0LT5mbGFncyB8PSBGTEFHX1BST0dSRVNTOworCQkJfSBlbHNlIGlmIChwcm9ncmVzc19mZCkKKwkJCQlzbnByaW50Zih0bXAsIDgwLCAiLUMlZCIsIHByb2dyZXNzX2ZkICogLTEpOworCQkJaWYgKHRtcFswXSkKKwkJCQlhcmd2W2FyZ2MrK10gPSBzdHJpbmdfY29weSh0bXApOworCQl9CisJfQorCisJYXJndlthcmdjKytdID0gc3RyaW5nX2NvcHkoZGV2aWNlKTsKKwlhcmd2W2FyZ2NdID0gMDsKKworCXMgPSBmaW5kX2ZzY2socHJvZyk7CisJaWYgKHMgPT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZGVyciwgXygiZnNjazogJXM6IG5vdCBmb3VuZFxuIiksIHByb2cpOworCQlmcmVlKGluc3QpOworCQlyZXR1cm4gRU5PRU5UOworCX0KKworCWlmICh2ZXJib3NlIHx8IG5vZXhlY3V0ZSkgeworCQlwcmludGYoIlslcyAoJWQpIC0tICVzXSAiLCBzLCBudW1fcnVubmluZywKKwkJICAgICAgIG1udHB0ID8gbW50cHQgOiBkZXZpY2UpOworCQlmb3IgKGk9MDsgaSA8IGFyZ2M7IGkrKykKKwkJCXByaW50ZigiJXMgIiwgYXJndltpXSk7CisJCXByaW50ZigiXG4iKTsKKwl9CisKKwkvKiBGb3JrIGFuZCBleGVjdXRlIHRoZSBjb3JyZWN0IHByb2dyYW0uICovCisJaWYgKG5vZXhlY3V0ZSkKKwkJcGlkID0gLTE7CisJZWxzZSBpZiAoKHBpZCA9IGZvcmsoKSkgPCAwKSB7CisJCXBlcnJvcigiZm9yayIpOworCQlmcmVlKGluc3QpOworCQlyZXR1cm4gZXJybm87CisJfSBlbHNlIGlmIChwaWQgPT0gMCkgeworCQlpZiAoIWludGVyYWN0aXZlKQorCQkJY2xvc2UoMCk7CisJCSh2b2lkKSBleGVjdihzLCBhcmd2KTsKKwkJcGVycm9yKGFyZ3ZbMF0pOworCQlmcmVlKGluc3QpOworCQlleGl0KEVYSVRfRVJST1IpOworCX0KKworCWZvciAoaT0wOyBpIDwgYXJnYzsgaSsrKQorCQlmcmVlKGFyZ3ZbaV0pOworCisJaW5zdC0+cGlkID0gcGlkOworCWluc3QtPnByb2cgPSBzdHJpbmdfY29weShwcm9nKTsKKwlpbnN0LT50eXBlID0gc3RyaW5nX2NvcHkodHlwZSk7CisJaW5zdC0+ZGV2aWNlID0gc3RyaW5nX2NvcHkoZGV2aWNlKTsKKwlpbnN0LT5iYXNlX2RldmljZSA9IGJhc2VfZGV2aWNlKGRldmljZSk7CisJaW5zdC0+c3RhcnRfdGltZSA9IHRpbWUoMCk7CisJaW5zdC0+bmV4dCA9IE5VTEw7CisKKwkvKgorCSAqIEZpbmQgdGhlIGVuZCBvZiB0aGUgbGlzdCwgc28gd2UgYWRkIHRoZSBpbnN0YW5jZSBvbiBhdCB0aGUgZW5kLgorCSAqLworCWZvciAocCA9IGluc3RhbmNlX2xpc3Q7IHAgJiYgcC0+bmV4dDsgcCA9IHAtPm5leHQpOworCisJaWYgKHApCisJCXAtPm5leHQgPSBpbnN0OworCWVsc2UKKwkJaW5zdGFuY2VfbGlzdCA9IGluc3Q7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNlbmQgYSBzaWduYWwgdG8gYWxsIG91dHN0YW5kaW5nIGZzY2sgY2hpbGQgcHJvY2Vzc2VzCisgKi8KK3N0YXRpYyBpbnQga2lsbF9hbGwoaW50IHNpZ251bSkKK3sKKwlzdHJ1Y3QgZnNja19pbnN0YW5jZSAqaW5zdDsKKwlpbnQJbiA9IDA7CisKKwlmb3IgKGluc3QgPSBpbnN0YW5jZV9saXN0OyBpbnN0OyBpbnN0ID0gaW5zdC0+bmV4dCkgeworCQlpZiAoaW5zdC0+ZmxhZ3MgJiBGTEFHX0RPTkUpCisJCQljb250aW51ZTsKKwkJa2lsbChpbnN0LT5waWQsIHNpZ251bSk7CisJCW4rKzsKKwl9CisJcmV0dXJuIG47Cit9CisKKy8qCisgKiBXYWl0IGZvciBvbmUgY2hpbGQgcHJvY2VzcyB0byBleGl0OyB3aGVuIGl0IGRvZXMsIHVubGluayBpdCBmcm9tCisgKiB0aGUgbGlzdCBvZiBleGVjdXRpbmcgY2hpbGQgcHJvY2Vzc2VzLCBhbmQgcmV0dXJuIGl0LgorICovCitzdGF0aWMgc3RydWN0IGZzY2tfaW5zdGFuY2UgKndhaXRfb25lKGludCBmbGFncykKK3sKKwlpbnQJc3RhdHVzOworCWludAlzaWc7CisJc3RydWN0IGZzY2tfaW5zdGFuY2UgKmluc3QsICppbnN0MiwgKnByZXY7CisJcGlkX3QJcGlkOworCisJaWYgKCFpbnN0YW5jZV9saXN0KQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChub2V4ZWN1dGUpIHsKKwkJaW5zdCA9IGluc3RhbmNlX2xpc3Q7CisJCXByZXYgPSAwOworI2lmZGVmIFJBTkRPTV9ERUJVRworCQl3aGlsZSAoaW5zdC0+bmV4dCAmJiAocmFuZG9tKCkgJiAxKSkgeworCQkJcHJldiA9IGluc3Q7CisJCQlpbnN0ID0gaW5zdC0+bmV4dDsKKwkJfQorI2VuZGlmCisJCWluc3QtPmV4aXRfc3RhdHVzID0gMDsKKwkJZ290byByZXRfaW5zdDsKKwl9CisKKwkvKgorCSAqIGdjYyAtV2FsbCBmYWlscyBzYXZpbmcgdGhyb3cgYWdhaW5zdCBzdHVwaWRpdHkKKwkgKiAoaW5zdCBhbmQgcHJldiBhcmUgdGhvdWdodCB0byBiZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcykKKwkgKi8KKwlpbnN0ID0gcHJldiA9IE5VTEw7CisKKwlkbyB7CisJCXBpZCA9IHdhaXRwaWQoLTEsICZzdGF0dXMsIGZsYWdzKTsKKwkJaWYgKGNhbmNlbF9yZXF1ZXN0ZWQgJiYgIWtpbGxfc2VudCkgeworCQkJa2lsbF9hbGwoU0lHVEVSTSk7CisJCQlraWxsX3NlbnQrKzsKKwkJfQorCQlpZiAoKHBpZCA9PSAwKSAmJiAoZmxhZ3MgJiBXTk9IQU5HKSkKKwkJCXJldHVybiBOVUxMOworCQlpZiAocGlkIDwgMCkgeworCQkJaWYgKChlcnJubyA9PSBFSU5UUikgfHwgKGVycm5vID09IEVBR0FJTikpCisJCQkJY29udGludWU7CisJCQlpZiAoZXJybm8gPT0gRUNISUxEKSB7CisJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJCV8oIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIpLAorCQkJCQlwcm9nbmFtZSk7CisJCQkJcmV0dXJuIE5VTEw7CisJCQl9CisJCQlwZXJyb3IoIndhaXQiKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWZvciAocHJldiA9IDAsIGluc3QgPSBpbnN0YW5jZV9saXN0OworCQkgICAgIGluc3Q7CisJCSAgICAgcHJldiA9IGluc3QsIGluc3QgPSBpbnN0LT5uZXh0KSB7CisJCQlpZiAoaW5zdC0+cGlkID09IHBpZCkKKwkJCQlicmVhazsKKwkJfQorCX0gd2hpbGUgKCFpbnN0KTsKKworCWlmIChXSUZFWElURUQoc3RhdHVzKSkKKwkJc3RhdHVzID0gV0VYSVRTVEFUVVMoc3RhdHVzKTsKKwllbHNlIGlmIChXSUZTSUdOQUxFRChzdGF0dXMpKSB7CisJCXNpZyA9IFdURVJNU0lHKHN0YXR1cyk7CisJCWlmIChzaWcgPT0gU0lHSU5UKSB7CisJCQlzdGF0dXMgPSBFWElUX1VOQ09SUkVDVEVEOworCQl9IGVsc2UgeworCQkJcHJpbnRmKF8oIldhcm5pbmcuLi4gJXMgZm9yIGRldmljZSAlcyBleGl0ZWQgIgorCQkJICAgICAgICJ3aXRoIHNpZ25hbCAlZC5cbiIpLAorCQkJICAgICAgIGluc3QtPnByb2csIGluc3QtPmRldmljZSwgc2lnKTsKKwkJCXN0YXR1cyA9IEVYSVRfRVJST1I7CisJCX0KKwl9IGVsc2UgeworCQlwcmludGYoXygiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIpLAorCQkgICAgICAgaW5zdC0+cHJvZywgaW5zdC0+ZGV2aWNlLCBzdGF0dXMpOworCQlzdGF0dXMgPSBFWElUX0VSUk9SOworCX0KKwlpbnN0LT5leGl0X3N0YXR1cyA9IHN0YXR1czsKKwlpbnN0LT5mbGFncyB8PSBGTEFHX0RPTkU7CisJaWYgKHByb2dyZXNzICYmIChpbnN0LT5mbGFncyAmIEZMQUdfUFJPR1JFU1MpICYmCisJICAgICFwcm9ncmVzc19hY3RpdmUoKSkgeworCQlmb3IgKGluc3QyID0gaW5zdGFuY2VfbGlzdDsgaW5zdDI7IGluc3QyID0gaW5zdDItPm5leHQpIHsKKwkJCWlmIChpbnN0Mi0+ZmxhZ3MgJiBGTEFHX0RPTkUpCisJCQkJY29udGludWU7CisJCQlpZiAoc3RyY21wKGluc3QyLT50eXBlLCAiZXh0MiIpICYmCisJCQkgICAgc3RyY21wKGluc3QyLT50eXBlLCAiZXh0MyIpICYmCisJCQkgICAgc3RyY21wKGluc3QyLT50eXBlLCAiZXh0NCIpICYmCisJCQkgICAgc3RyY21wKGluc3QyLT50eXBlLCAiZXh0NGRldiIpKQorCQkJCWNvbnRpbnVlOworCQkJLyoKKwkJCSAqIElmIHdlJ3ZlIGp1c3Qgc3RhcnRlZCB0aGUgZnNjaywgd2FpdCBhIHRpbnkKKwkJCSAqIGJpdCBiZWZvcmUgc2VuZGluZyB0aGUga2lsbCwgdG8gZ2l2ZSBpdAorCQkJICogdGltZSB0byBzZXQgdXAgdGhlIHNpZ25hbCBoYW5kbGVyCisJCQkgKi8KKwkJCWlmIChpbnN0Mi0+c3RhcnRfdGltZSA8IHRpbWUoMCkrMikgeworCQkJCWlmIChmb3JrKCkgPT0gMCkgeworCQkJCQlzbGVlcCgxKTsKKwkJCQkJa2lsbChpbnN0Mi0+cGlkLCBTSUdVU1IxKTsKKwkJCQkJZXhpdCgwKTsKKwkJCQl9CisJCQl9IGVsc2UKKwkJCQlraWxsKGluc3QyLT5waWQsIFNJR1VTUjEpOworCQkJaW5zdDItPmZsYWdzIHw9IEZMQUdfUFJPR1JFU1M7CisJCQlicmVhazsKKwkJfQorCX0KK3JldF9pbnN0OgorCWlmIChwcmV2KQorCQlwcmV2LT5uZXh0ID0gaW5zdC0+bmV4dDsKKwllbHNlCisJCWluc3RhbmNlX2xpc3QgPSBpbnN0LT5uZXh0OworCWlmICh2ZXJib3NlID4gMSkKKwkJcHJpbnRmKF8oIkZpbmlzaGVkIHdpdGggJXMgKGV4aXQgc3RhdHVzICVkKVxuIiksCisJCSAgICAgICBpbnN0LT5kZXZpY2UsIGluc3QtPmV4aXRfc3RhdHVzKTsKKwludW1fcnVubmluZy0tOworCXJldHVybiBpbnN0OworfQorCisjZGVmaW5lIEZMQUdfV0FJVF9BTEwJCTAKKyNkZWZpbmUgRkxBR19XQUlUX0FUTEVBU1RfT05FCTEKKy8qCisgKiBXYWl0IHVudGlsIGFsbCBleGVjdXRpbmcgY2hpbGQgcHJvY2Vzc2VzIGhhdmUgZXhpdGVkOyByZXR1cm4gdGhlCisgKiBsb2dpY2FsIE9SIG9mIGFsbCBvZiB0aGVpciBleGl0IGNvZGUgdmFsdWVzLgorICovCitzdGF0aWMgaW50IHdhaXRfbWFueShpbnQgZmxhZ3MpCit7CisJc3RydWN0IGZzY2tfaW5zdGFuY2UgKmluc3Q7CisJaW50CWdsb2JhbF9zdGF0dXMgPSAwOworCWludAl3YWl0X2ZsYWdzID0gMDsKKworCXdoaWxlICgoaW5zdCA9IHdhaXRfb25lKHdhaXRfZmxhZ3MpKSkgeworCQlnbG9iYWxfc3RhdHVzIHw9IGluc3QtPmV4aXRfc3RhdHVzOworCQlmcmVlX2luc3RhbmNlKGluc3QpOworI2lmZGVmIFJBTkRPTV9ERUJVRworCQlpZiAobm9leGVjdXRlICYmIChmbGFncyAmIFdOT0hBTkcpICYmICEocmFuZG9tKCkgJSAzKSkKKwkJCWJyZWFrOworI2VuZGlmCisJCWlmIChmbGFncyAmIEZMQUdfV0FJVF9BVExFQVNUX09ORSkKKwkJCXdhaXRfZmxhZ3MgPSBXTk9IQU5HOworCX0KKwlyZXR1cm4gZ2xvYmFsX3N0YXR1czsKK30KKworLyoKKyAqIFJ1biB0aGUgZnNjayBwcm9ncmFtIG9uIGEgcGFydGljdWxhciBkZXZpY2UKKyAqCisgKiBJZiB0aGUgdHlwZSBpcyBzcGVjaWZpZWQgdXNpbmcgLXQsIGFuZCBpdCBpc24ndCBwcmVmaXhlZCB3aXRoICJubyIKKyAqIChhcyBpbiAibm9leHQyIikgYW5kIG9ubHkgb25lIGZpbGVzeXN0ZW0gdHlwZSBpcyBzcGVjaWZpZWQsIHRoZW4KKyAqIHVzZSB0aGF0IHR5cGUgcmVnYXJkbGVzcyBvZiB3aGF0IGlzIHNwZWNpZmllZCBpbiAvZXRjL2ZzdGFiLgorICoKKyAqIElmIHRoZSB0eXBlIGlzbid0IHNwZWNpZmllZCBieSB0aGUgdXNlciwgdGhlbiB1c2UgZWl0aGVyIHRoZSB0eXBlCisgKiBzcGVjaWZpZWQgaW4gL2V0Yy9mc3RhYiwgb3IgREVGQVVMVF9GU1RZUEUuCisgKi8KK3N0YXRpYyB2b2lkIGZzY2tfZGV2aWNlKHN0cnVjdCBmc19pbmZvICpmcywgaW50IGludGVyYWN0aXZlKQoreworCWNvbnN0IGNoYXIgKnR5cGU7CisJaW50IHJldHZhbDsKKworCWludGVycHJldF90eXBlKGZzKTsKKworCWlmIChzdHJjbXAoZnMtPnR5cGUsICJhdXRvIikgIT0gMCkKKwkJdHlwZSA9IGZzLT50eXBlOworCWVsc2UgaWYgKGZzdHlwZSAmJiBzdHJuY21wKGZzdHlwZSwgIm5vIiwgMikgJiYKKwkgICAgc3RybmNtcChmc3R5cGUsICJvcHRzPSIsIDUpICYmIHN0cm5jbXAoZnN0eXBlLCAibG9vcCIsIDQpICYmCisJICAgICFzdHJjaHIoZnN0eXBlLCAnLCcpKQorCQl0eXBlID0gZnN0eXBlOworCWVsc2UKKwkJdHlwZSA9IERFRkFVTFRfRlNUWVBFOworCisJbnVtX3J1bm5pbmcrKzsKKwlyZXR2YWwgPSBleGVjdXRlKHR5cGUsIGZzLT5kZXZpY2UsIGZzLT5tb3VudHB0LCBpbnRlcmFjdGl2ZSk7CisJaWYgKHJldHZhbCkgeworCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzICIKKwkJCSJmb3IgJXNcbiIpLCBwcm9nbmFtZSwgcmV0dmFsLCB0eXBlLCBmcy0+ZGV2aWNlKTsKKwkJbnVtX3J1bm5pbmctLTsKKwl9Cit9CisKKworLyoKKyAqIERlYWwgd2l0aCB0aGUgZnNjayAtdCBhcmd1bWVudC4KKyAqLworc3RydWN0IGZzX3R5cGVfY29tcGlsZSB7CisJY2hhciAqKmxpc3Q7CisJaW50ICp0eXBlOworCWludCAgbmVnYXRlOworfSBmc190eXBlX2NvbXBpbGVkOworCisjZGVmaW5lIEZTX1RZUEVfTk9STUFMCTAKKyNkZWZpbmUgRlNfVFlQRV9PUFQJMQorI2RlZmluZSBGU19UWVBFX05FR09QVAkyCisKK3N0YXRpYyBjb25zdCBjaGFyICpmc190eXBlX3N5bnRheF9lcnJvciA9CitOXygiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisgICAid2l0aCAnbm8nIG9yICchJy5cbiIpOworCitzdGF0aWMgdm9pZCBjb21waWxlX2ZzX3R5cGUoY2hhciAqZnNfdHlwZSwgc3RydWN0IGZzX3R5cGVfY29tcGlsZSAqY21wKQoreworCWNoYXIgCSpjcCwgKmxpc3QsICpzOworCWludAludW0gPSAyOworCWludAluZWdhdGUsIGZpcnN0X25lZ2F0ZSA9IDE7CisKKwlpZiAoZnNfdHlwZSkgeworCQlmb3IgKGNwPWZzX3R5cGU7ICpjcDsgY3ArKykgeworCQkJaWYgKCpjcCA9PSAnLCcpCisJCQkJbnVtKys7CisJCX0KKwl9CisKKwljbXAtPmxpc3QgPSBtYWxsb2MobnVtICogc2l6ZW9mKGNoYXIgKikpOworCWNtcC0+dHlwZSA9IG1hbGxvYyhudW0gKiBzaXplb2YoaW50KSk7CisJaWYgKCFjbXAtPmxpc3QgfHwgIWNtcC0+dHlwZSkgeworCQlmcHV0cyhfKCJDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpbGVzeXN0ZW0gdHlwZXNcbiIpLAorCQkgICAgICBzdGRlcnIpOworCQlleGl0KEVYSVRfRVJST1IpOworCX0KKwltZW1zZXQoY21wLT5saXN0LCAwLCBudW0gKiBzaXplb2YoY2hhciAqKSk7CisJbWVtc2V0KGNtcC0+dHlwZSwgMCwgbnVtICogc2l6ZW9mKGludCkpOworCWNtcC0+bmVnYXRlID0gMDsKKworCWlmICghZnNfdHlwZSkKKwkJcmV0dXJuOworCisJbGlzdCA9IHN0cmluZ19jb3B5KGZzX3R5cGUpOworCW51bSA9IDA7CisJcyA9IHN0cnRvayhsaXN0LCAiLCIpOworCXdoaWxlKHMpIHsKKwkJbmVnYXRlID0gMDsKKwkJaWYgKHN0cm5jbXAocywgIm5vIiwgMikgPT0gMCkgeworCQkJcyArPSAyOworCQkJbmVnYXRlID0gMTsKKwkJfSBlbHNlIGlmICgqcyA9PSAnIScpIHsKKwkJCXMrKzsKKwkJCW5lZ2F0ZSA9IDE7CisJCX0KKwkJaWYgKHN0cmNtcChzLCAibG9vcCIpID09IDApCisJCQkvKiBsb29wIGlzIHJlYWxseSBzaG9ydC1oYW5kIGZvciBvcHRzPWxvb3AgKi8KKwkJCWdvdG8gbG9vcF9zcGVjaWFsX2Nhc2U7CisJCWVsc2UgaWYgKHN0cm5jbXAocywgIm9wdHM9IiwgNSkgPT0gMCkgeworCQkJcyArPSA1OworCQlsb29wX3NwZWNpYWxfY2FzZToKKwkJCWNtcC0+dHlwZVtudW1dID0gbmVnYXRlID8gRlNfVFlQRV9ORUdPUFQgOiBGU19UWVBFX09QVDsKKwkJfSBlbHNlIHsKKwkJCWlmIChmaXJzdF9uZWdhdGUpIHsKKwkJCQljbXAtPm5lZ2F0ZSA9IG5lZ2F0ZTsKKwkJCQlmaXJzdF9uZWdhdGUgPSAwOworCQkJfQorCQkJaWYgKChuZWdhdGUgJiYgIWNtcC0+bmVnYXRlKSB8fAorCQkJICAgICghbmVnYXRlICYmIGNtcC0+bmVnYXRlKSkgeworCQkJCWZwdXRzKF8oZnNfdHlwZV9zeW50YXhfZXJyb3IpLCBzdGRlcnIpOworCQkJCWV4aXQoRVhJVF9VU0FHRSk7CisJCQl9CisJCX0KKyNpZiAwCisJCXByaW50ZigiQWRkaW5nICVzIHRvIGxpc3QgKHR5cGUgJWQpLlxuIiwgcywgY21wLT50eXBlW251bV0pOworI2VuZGlmCisJICAgICAgICBjbXAtPmxpc3RbbnVtKytdID0gc3RyaW5nX2NvcHkocyk7CisJCXMgPSBzdHJ0b2soTlVMTCwgIiwiKTsKKwl9CisJZnJlZShsaXN0KTsKK30KKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIGEgcGFydGljdWxhciBvcHRpb24gYXBwZWFycyBpbiBhCisgKiBjb21tYS1kZWxpbWl0ZWQgb3B0aW9ucyBsaXN0CisgKi8KK3N0YXRpYyBpbnQgb3B0X2luX2xpc3QoY29uc3QgY2hhciAqb3B0LCBjaGFyICpvcHRsaXN0KQoreworCWNoYXIJKmxpc3QsICpzOworCisJaWYgKCFvcHRsaXN0KQorCQlyZXR1cm4gMDsKKwlsaXN0ID0gc3RyaW5nX2NvcHkob3B0bGlzdCk7CisKKwlzID0gc3RydG9rKGxpc3QsICIsIik7CisJd2hpbGUocykgeworCQlpZiAoc3RyY21wKHMsIG9wdCkgPT0gMCkgeworCQkJZnJlZShsaXN0KTsKKwkJCXJldHVybiAxOworCQl9CisJCXMgPSBzdHJ0b2soTlVMTCwgIiwiKTsKKwl9CisgICAgICAgIGZyZWUobGlzdCk7CisJcmV0dXJuIDA7Cit9CisKKy8qIFNlZSBpZiB0aGUgZmlsZXN5c3RlbSBtYXRjaGVzIHRoZSBjcml0ZXJpYSBnaXZlbiBieSB0aGUgLXQgb3B0aW9uICovCitzdGF0aWMgaW50IGZzX21hdGNoKHN0cnVjdCBmc19pbmZvICpmcywgc3RydWN0IGZzX3R5cGVfY29tcGlsZSAqY21wKQoreworCWludCBuLCByZXQgPSAwLCBjaGVja2VkX3R5cGUgPSAwOworCWNoYXIgKmNwOworCisJaWYgKGNtcC0+bGlzdCA9PSAwIHx8IGNtcC0+bGlzdFswXSA9PSAwKQorCQlyZXR1cm4gMTsKKworCWZvciAobj0wOyAoY3AgPSBjbXAtPmxpc3Rbbl0pOyBuKyspIHsKKwkJc3dpdGNoIChjbXAtPnR5cGVbbl0pIHsKKwkJY2FzZSBGU19UWVBFX05PUk1BTDoKKwkJCWNoZWNrZWRfdHlwZSsrOworCQkJaWYgKHN0cmNtcChjcCwgZnMtPnR5cGUpID09IDApIHsKKwkJCQlyZXQgPSAxOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgRlNfVFlQRV9ORUdPUFQ6CisJCQlpZiAob3B0X2luX2xpc3QoY3AsIGZzLT5vcHRzKSkKKwkJCQlyZXR1cm4gMDsKKwkJCWJyZWFrOworCQljYXNlIEZTX1RZUEVfT1BUOgorCQkJaWYgKCFvcHRfaW5fbGlzdChjcCwgZnMtPm9wdHMpKQorCQkJCXJldHVybiAwOworCQkJYnJlYWs7CisJCX0KKwl9CisJaWYgKGNoZWNrZWRfdHlwZSA9PSAwKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gKGNtcC0+bmVnYXRlID8gIXJldCA6IHJldCk7Cit9CisKKy8qCisgKiBDaGVjayBpZiBhIGRldmljZSBleGlzdHMKKyAqLworc3RhdGljIGludCBkZXZpY2VfZXhpc3RzKGNvbnN0IGNoYXIgKmRldmljZSkKK3sKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCWlmIChzdGF0KGRldmljZSwgJnN0KSA9PSAtMSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIVNfSVNCTEsoc3Quc3RfbW9kZSkpCisJCXJldHVybiAwOworCisJcmV0dXJuIDE7Cit9CisKKy8qIENoZWNrIGlmIHdlIHNob3VsZCBpZ25vcmUgdGhpcyBmaWxlc3lzdGVtLiAqLworc3RhdGljIGludCBpZ25vcmUoc3RydWN0IGZzX2luZm8gKmZzKQoreworCWNvbnN0IGNoYXIgKippcDsKKwlpbnQgd2FudGVkID0gMDsKKworCS8qCisJICogSWYgdGhlIHBhc3MgbnVtYmVyIGlzIDAsIGlnbm9yZSBpdC4KKwkgKi8KKwlpZiAoZnMtPnBhc3NubyA9PSAwKQorCQlyZXR1cm4gMTsKKworCS8qCisJICogSWYgdGhpcyBpcyBhIGJpbmQgbW91bnQsIGlnbm9yZSBpdC4KKwkgKi8KKwlpZiAob3B0X2luX2xpc3QoImJpbmQiLCBmcy0+b3B0cykpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJCQlfKCIlczogc2tpcHBpbmcgYmFkIGxpbmUgaW4gL2V0Yy9mc3RhYjogYmluZCBtb3VudCB3aXRoIG5vbnplcm8gZnNjayBwYXNzIG51bWJlclxuIiksCisJCQlmcy0+bW91bnRwdCk7CisJCXJldHVybiAxOworCX0KKworCS8qCisJICogaWdub3JlIGRldmljZXMgdGhhdCBkb24ndCBleGlzdCBhbmQgaGF2ZSB0aGUgIm5vZmFpbCIgbW91bnQgb3B0aW9uCisJICovCisJaWYgKCFkZXZpY2VfZXhpc3RzKGZzLT5kZXZpY2UpICYmIG9wdF9pbl9saXN0KCJub2ZhaWwiLCBmcy0+b3B0cykpIHsKKwkJaWYgKHZlcmJvc2UpCisJCQlwcmludGYoXygiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIiksIGZzLT5kZXZpY2UpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpbnRlcnByZXRfdHlwZShmcyk7CisKKwkvKgorCSAqIElmIGEgc3BlY2lmaWMgZnN0eXBlIGlzIHNwZWNpZmllZCwgYW5kIGl0IGRvZXNuJ3QgbWF0Y2gsCisJICogaWdub3JlIGl0LgorCSAqLworCWlmICghZnNfbWF0Y2goZnMsICZmc190eXBlX2NvbXBpbGVkKSkgcmV0dXJuIDE7CisKKwkvKiBBcmUgd2UgaWdub3JpbmcgdGhpcyB0eXBlPyAqLworCWZvcihpcCA9IGlnbm9yZWRfdHlwZXM7ICppcDsgaXArKykKKwkJaWYgKHN0cmNtcChmcy0+dHlwZSwgKmlwKSA9PSAwKSByZXR1cm4gMTsKKworCS8qIERvIHdlIHJlYWxseSByZWFsbHkgd2FudCB0byBjaGVjayB0aGlzIGZzPyAqLworCWZvcihpcCA9IHJlYWxseV93YW50ZWQ7ICppcDsgaXArKykKKwkJaWYgKHN0cmNtcChmcy0+dHlwZSwgKmlwKSA9PSAwKSB7CisJCQl3YW50ZWQgPSAxOworCQkJYnJlYWs7CisJCX0KKworCS8qIFNlZSBpZiB0aGUgPGZzY2suZnM+IHByb2dyYW0gaXMgYXZhaWxhYmxlLiAqLworCWlmIChmaW5kX2ZzY2soZnMtPnR5cGUpID09IE5VTEwpIHsKKwkJaWYgKHdhbnRlZCkKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJmc2NrOiBjYW5ub3QgY2hlY2sgJXM6IGZzY2suJXMgbm90IGZvdW5kXG4iKSwKKwkJCQlmcy0+ZGV2aWNlLCBmcy0+dHlwZSk7CisJCXJldHVybiAxOworCX0KKworCS8qIFdlIGNhbiBhbmQgd2FudCB0byBjaGVjayB0aGlzIGZpbGUgc3lzdGVtIHR5cGUuICovCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBSZXR1cm5zIFRSVUUgaWYgYSBwYXJ0aXRpb24gb24gdGhlIHNhbWUgZGlzayBpcyBhbHJlYWR5IGJlaW5nCisgKiBjaGVja2VkLgorICovCitzdGF0aWMgaW50IGRldmljZV9hbHJlYWR5X2FjdGl2ZShjaGFyICpkZXZpY2UpCit7CisJc3RydWN0IGZzY2tfaW5zdGFuY2UgKmluc3Q7CisJY2hhciAqYmFzZTsKKworCWlmIChmb3JjZV9hbGxfcGFyYWxsZWwpCisJCXJldHVybiAwOworCisjaWZkZWYgQkFTRV9NRAorCS8qIERvbid0IGNoZWNrIGEgc29mdCByYWlkIGRpc2sgd2l0aCBhbnkgb3RoZXIgZGlzayAqLworCWlmIChpbnN0YW5jZV9saXN0ICYmCisJICAgICghc3RybmNtcChpbnN0YW5jZV9saXN0LT5kZXZpY2UsIEJBU0VfTUQsIHNpemVvZihCQVNFX01EKS0xKSB8fAorCSAgICAgIXN0cm5jbXAoZGV2aWNlLCBCQVNFX01ELCBzaXplb2YoQkFTRV9NRCktMSkpKQorCQlyZXR1cm4gMTsKKyNlbmRpZgorCisJYmFzZSA9IGJhc2VfZGV2aWNlKGRldmljZSk7CisJLyoKKwkgKiBJZiB3ZSBkb24ndCBrbm93IHRoZSBiYXNlIGRldmljZSwgYXNzdW1lIHRoYXQgdGhlIGRldmljZSBpcworCSAqIGFscmVhZHkgYWN0aXZlIGlmIHRoZXJlIGFyZSBhbnkgZnNjayBpbnN0YW5jZXMgcnVubmluZy4KKwkgKi8KKwlpZiAoIWJhc2UpCisJCXJldHVybiAoaW5zdGFuY2VfbGlzdCAhPSAwKTsKKwlmb3IgKGluc3QgPSBpbnN0YW5jZV9saXN0OyBpbnN0OyBpbnN0ID0gaW5zdC0+bmV4dCkgeworCQlpZiAoIWluc3QtPmJhc2VfZGV2aWNlIHx8ICFzdHJjbXAoYmFzZSwgaW5zdC0+YmFzZV9kZXZpY2UpKSB7CisJCQlmcmVlKGJhc2UpOworCQkJcmV0dXJuIDE7CisJCX0KKwl9CisJZnJlZShiYXNlKTsKKwlyZXR1cm4gMDsKK30KKworLyogQ2hlY2sgYWxsIGZpbGUgc3lzdGVtcywgdXNpbmcgdGhlIC9ldGMvZnN0YWIgdGFibGUuICovCitzdGF0aWMgaW50IGNoZWNrX2FsbChOT0FSR1MpCit7CisJc3RydWN0IGZzX2luZm8gKmZzID0gTlVMTDsKKwlpbnQgc3RhdHVzID0gRVhJVF9PSzsKKwlpbnQgbm90X2RvbmVfeWV0ID0gMTsKKwlpbnQgcGFzc25vID0gMTsKKwlpbnQgcGFzc19kb25lOworCisJaWYgKHZlcmJvc2UpCisJCWZwdXRzKF8oIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iKSwgc3Rkb3V0KTsKKworCS8qCisJICogRG8gYW4gaW5pdGlhbCBzY2FuIG92ZXIgdGhlIGZpbGVzeXN0ZW07IG1hcmsgZmlsZXN5c3RlbXMKKwkgKiB3aGljaCBzaG91bGQgYmUgaWdub3JlZCBhcyBkb25lLCBhbmQgcmVzb2x2ZSBhbnkgImF1dG8iCisJICogZmlsZXN5c3RlbSB0eXBlcyAoZG9uZSBhcyBhIHNpZGUtZWZmZWN0IG9mIGNhbGxpbmcgaWdub3JlKCkpLgorCSAqLworCWZvciAoZnMgPSBmaWxlc3lzX2luZm87IGZzOyBmcyA9IGZzLT5uZXh0KSB7CisJCWlmIChpZ25vcmUoZnMpKQorCQkJZnMtPmZsYWdzIHw9IEZMQUdfRE9ORTsKKwl9CisKKwkvKgorCSAqIEZpbmQgYW5kIGNoZWNrIHRoZSByb290IGZpbGVzeXN0ZW0uCisJICovCisJaWYgKCFwYXJhbGxlbF9yb290KSB7CisJCWZvciAoZnMgPSBmaWxlc3lzX2luZm87IGZzOyBmcyA9IGZzLT5uZXh0KSB7CisJCQlpZiAoIXN0cmNtcChmcy0+bW91bnRwdCwgIi8iKSkKKwkJCQlicmVhazsKKwkJfQorCQlpZiAoZnMpIHsKKwkJCWlmICghc2tpcF9yb290ICYmICFpZ25vcmUoZnMpICYmCisJCQkgICAgIShpZ25vcmVfbW91bnRlZCAmJiBpc19tb3VudGVkKGZzLT5kZXZpY2UpKSkgeworCQkJCWZzY2tfZGV2aWNlKGZzLCAxKTsKKwkJCQlzdGF0dXMgfD0gd2FpdF9tYW55KEZMQUdfV0FJVF9BTEwpOworCQkJCWlmIChzdGF0dXMgPiBFWElUX05PTkRFU1RSVUNUKQorCQkJCQlyZXR1cm4gc3RhdHVzOworCQkJfQorCQkJZnMtPmZsYWdzIHw9IEZMQUdfRE9ORTsKKwkJfQorCX0KKwkvKgorCSAqIFRoaXMgaXMgZm9yIHRoZSBib25lLWhlYWRlZCB1c2VyIHdobyBlbnRlcnMgdGhlIHJvb3QKKwkgKiBmaWxlc3lzdGVtIHR3aWNlLiAgU2tpcCByb290IHdpbGwgc2tlcCBhbGwgcm9vdCBlbnRyaWVzLgorCSAqLworCWlmIChza2lwX3Jvb3QpCisJCWZvciAoZnMgPSBmaWxlc3lzX2luZm87IGZzOyBmcyA9IGZzLT5uZXh0KQorCQkJaWYgKCFzdHJjbXAoZnMtPm1vdW50cHQsICIvIikpCisJCQkJZnMtPmZsYWdzIHw9IEZMQUdfRE9ORTsKKworCXdoaWxlIChub3RfZG9uZV95ZXQpIHsKKwkJbm90X2RvbmVfeWV0ID0gMDsKKwkJcGFzc19kb25lID0gMTsKKworCQlmb3IgKGZzID0gZmlsZXN5c19pbmZvOyBmczsgZnMgPSBmcy0+bmV4dCkgeworCQkJaWYgKGNhbmNlbF9yZXF1ZXN0ZWQpCisJCQkJYnJlYWs7CisJCQlpZiAoZnMtPmZsYWdzICYgRkxBR19ET05FKQorCQkJCWNvbnRpbnVlOworCQkJLyoKKwkJCSAqIElmIHRoZSBmaWxlc3lzdGVtJ3MgcGFzcyBudW1iZXIgaXMgaGlnaGVyCisJCQkgKiB0aGFuIHRoZSBjdXJyZW50IHBhc3MgbnVtYmVyLCB0aGVuIHdlIGRvbid0CisJCQkgKiBkbyBpdCB5ZXQuCisJCQkgKi8KKwkJCWlmIChmcy0+cGFzc25vID4gcGFzc25vKSB7CisJCQkJbm90X2RvbmVfeWV0Kys7CisJCQkJY29udGludWU7CisJCQl9CisJCQlpZiAoaWdub3JlX21vdW50ZWQgJiYgaXNfbW91bnRlZChmcy0+ZGV2aWNlKSkgeworCQkJCWZzLT5mbGFncyB8PSBGTEFHX0RPTkU7CisJCQkJY29udGludWU7CisJCQl9CisJCQkvKgorCQkJICogSWYgYSBmaWxlc3lzdGVtIG9uIGEgcGFydGljdWxhciBkZXZpY2UgaGFzCisJCQkgKiBhbHJlYWR5IGJlZW4gc3Bhd25lZCwgdGhlbiB3ZSBuZWVkIHRvIGRlZmVyCisJCQkgKiB0aGlzIHRvIGFub3RoZXIgcGFzcy4KKwkJCSAqLworCQkJaWYgKGRldmljZV9hbHJlYWR5X2FjdGl2ZShmcy0+ZGV2aWNlKSkgeworCQkJCXBhc3NfZG9uZSA9IDA7CisJCQkJY29udGludWU7CisJCQl9CisJCQkvKgorCQkJICogU3Bhd24gb2ZmIHRoZSBmc2NrIHByb2Nlc3MKKwkJCSAqLworCQkJZnNja19kZXZpY2UoZnMsIHNlcmlhbGl6ZSk7CisJCQlmcy0+ZmxhZ3MgfD0gRkxBR19ET05FOworCisJCQkvKgorCQkJICogT25seSBkbyBvbmUgZmlsZXN5c3RlbSBhdCBhIHRpbWUsIG9yIGlmIHdlCisJCQkgKiBoYXZlIGEgbGltaXQgb24gdGhlIG51bWJlciBvZiBmc2NrJ3MgZXh0YW50CisJCQkgKiBhdCBvbmUgdGltZSwgYXBwbHkgdGhhdCBsaW1pdC4KKwkJCSAqLworCQkJaWYgKHNlcmlhbGl6ZSB8fAorCQkJICAgIChtYXhfcnVubmluZyAmJiAobnVtX3J1bm5pbmcgPj0gbWF4X3J1bm5pbmcpKSkgeworCQkJCXBhc3NfZG9uZSA9IDA7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKGNhbmNlbF9yZXF1ZXN0ZWQpCisJCQlicmVhazsKKwkJaWYgKHZlcmJvc2UgPiAxKQorCQkJcHJpbnRmKF8oIi0td2FpdGluZy0tIChwYXNzICVkKVxuIiksIHBhc3Nubyk7CisJCXN0YXR1cyB8PSB3YWl0X21hbnkocGFzc19kb25lID8gRkxBR19XQUlUX0FMTCA6CisJCQkJICAgIEZMQUdfV0FJVF9BVExFQVNUX09ORSk7CisJCWlmIChwYXNzX2RvbmUpIHsKKwkJCWlmICh2ZXJib3NlID4gMSkKKwkJCQlwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworCQkJcGFzc25vKys7CisJCX0gZWxzZQorCQkJbm90X2RvbmVfeWV0Kys7CisJfQorCWlmIChjYW5jZWxfcmVxdWVzdGVkICYmICFraWxsX3NlbnQpIHsKKwkJa2lsbF9hbGwoU0lHVEVSTSk7CisJCWtpbGxfc2VudCsrOworCX0KKwlzdGF0dXMgfD0gd2FpdF9tYW55KEZMQUdfV0FJVF9BVExFQVNUX09ORSk7CisJcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIHZvaWQgdXNhZ2UoTk9BUkdTKQoreworCWZwdXRzKF8oIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIiksIHN0ZGVycik7CisJZXhpdChFWElUX1VTQUdFKTsKK30KKworc3RhdGljIHZvaWQgc2lnbmFsX2NhbmNlbChpbnQgc2lnIEZTQ0tfQVRUUigodW51c2VkKSkpCit7CisJY2FuY2VsX3JlcXVlc3RlZCsrOworfQorCitzdGF0aWMgdm9pZCBQUlMoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlpbnQJaSwgajsKKwljaGFyCSphcmcsICpkZXYsICp0bXAgPSAwOworCWNoYXIJb3B0aW9uc1sxMjhdOworCWludAlvcHQgPSAwOworCWludCAgICAgb3B0c19mb3JfZnNjayA9IDA7CisJc3RydWN0IHNpZ2FjdGlvbglzYTsKKworCS8qCisJICogU2V0IHVwIHNpZ25hbCBhY3Rpb24KKwkgKi8KKwltZW1zZXQoJnNhLCAwLCBzaXplb2Yoc3RydWN0IHNpZ2FjdGlvbikpOworCXNhLnNhX2hhbmRsZXIgPSBzaWduYWxfY2FuY2VsOworCXNpZ2FjdGlvbihTSUdJTlQsICZzYSwgMCk7CisJc2lnYWN0aW9uKFNJR1RFUk0sICZzYSwgMCk7CisKKwludW1fZGV2aWNlcyA9IDA7CisJbnVtX2FyZ3MgPSAwOworCWluc3RhbmNlX2xpc3QgPSAwOworCisJcHJvZ25hbWUgPSBhcmd2WzBdOworCisJZm9yIChpPTE7IGkgPCBhcmdjOyBpKyspIHsKKwkJYXJnID0gYXJndltpXTsKKwkJaWYgKCFhcmcpCisJCQljb250aW51ZTsKKwkJaWYgKChhcmdbMF0gPT0gJy8nICYmICFvcHRzX2Zvcl9mc2NrKSB8fCBzdHJjaHIoYXJnLCAnPScpKSB7CisJCQlpZiAobnVtX2RldmljZXMgPj0gTUFYX0RFVklDRVMpIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IHRvbyBtYW55IGRldmljZXNcbiIpLAorCQkJCQlwcm9nbmFtZSk7CisJCQkJZXhpdChFWElUX0VSUk9SKTsKKwkJCX0KKwkJCWRldiA9IGZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfc3BlYyhhcmcpOworCQkJaWYgKCFkZXYgJiYgc3RyY2hyKGFyZywgJz0nKSkgeworCQkJCS8qCisJCQkJICogQ2hlY2sgdG8gc2VlIGlmIHdlIGZhaWxlZCBiZWNhdXNlCisJCQkJICogL3Byb2MvcGFydGl0aW9ucyBpc24ndCBmb3VuZC4KKwkJCQkgKi8KKwkJCQlpZiAoYWNjZXNzKF9QQVRIX1BST0NfUEFSVElUSU9OUywgUl9PSykgPCAwKSB7CisJCQkJCWZwcmludGYoc3RkZXJyLCBfKCJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIiksCisJCQkJCQlfUEFUSF9QUk9DX1BBUlRJVElPTlMsIHN0cmVycm9yKGVycm5vKSk7CisJCQkJCWZwcmludGYoc3RkZXJyLCBfKCJJcyAvcHJvYyBtb3VudGVkP1xuIikpOworCQkJCQlleGl0KEVYSVRfRVJST1IpOworCQkJCX0KKwkJCQkvKgorCQkJCSAqIENoZWNrIHRvIHNlZSBpZiB0aGlzIGlzIGJlY2F1c2UKKwkJCQkgKiB3ZSdyZSBub3QgcnVubmluZyBhcyByb290CisJCQkJICovCisJCQkJaWYgKGdldGV1aWQoKSkKKwkJCQkJZnByaW50ZihzdGRlcnIsCisJCV8oIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIpLCBhcmcpOworCQkJCWVsc2UKKwkJCQkJZnByaW50ZihzdGRlcnIsCisJCV8oIkNvdWxkbid0IGZpbmQgbWF0Y2hpbmcgZmlsZXN5c3RlbTogJXNcbiIpLCBhcmcpOworCQkJCWV4aXQoRVhJVF9FUlJPUik7CisJCQl9CisJCQlkZXZpY2VzW251bV9kZXZpY2VzKytdID0gZGV2ID8gZGV2IDogc3RyaW5nX2NvcHkoYXJnKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmIChhcmdbMF0gIT0gJy0nIHx8IG9wdHNfZm9yX2ZzY2spIHsKKwkJCWlmIChudW1fYXJncyA+PSBNQVhfQVJHUykgeworCQkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iKSwKKwkJCQkJcHJvZ25hbWUpOworCQkJCWV4aXQoRVhJVF9FUlJPUik7CisJCQl9CisJCQlhcmdzW251bV9hcmdzKytdID0gc3RyaW5nX2NvcHkoYXJnKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWZvciAoaj0xOyBhcmdbal07IGorKykgeworCQkJaWYgKG9wdHNfZm9yX2ZzY2spIHsKKwkJCQlvcHRpb25zWysrb3B0XSA9IGFyZ1tqXTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCXN3aXRjaCAoYXJnW2pdKSB7CisJCQljYXNlICdBJzoKKwkJCQlkb2FsbCsrOworCQkJCWJyZWFrOworCQkJY2FzZSAnQyc6CisJCQkJcHJvZ3Jlc3MrKzsKKwkJCQlpZiAoYXJnW2orMV0pIHsKKwkJCQkJcHJvZ3Jlc3NfZmQgPSBzdHJpbmdfdG9faW50KGFyZytqKzEpOworCQkJCQlpZiAocHJvZ3Jlc3NfZmQgPCAwKQorCQkJCQkJcHJvZ3Jlc3NfZmQgPSAwOworCQkJCQllbHNlCisJCQkJCQlnb3RvIG5leHRfYXJnOworCQkJCX0gZWxzZSBpZiAoKGkrMSkgPCBhcmdjICYmCisJCQkJCSAgICFzdHJuY21wKGFyZ3ZbaSsxXSwgIi0iLCAxKSA9PSAwKSB7CisJCQkJCXByb2dyZXNzX2ZkID0gc3RyaW5nX3RvX2ludChhcmd2W2ldKTsKKwkJCQkJaWYgKHByb2dyZXNzX2ZkIDwgMCkKKwkJCQkJCXByb2dyZXNzX2ZkID0gMDsKKwkJCQkJZWxzZSB7CisJCQkJCQlnb3RvIG5leHRfYXJnOworCQkJCQkJaSsrOworCQkJCQl9CisJCQkJfQorCQkJCWJyZWFrOworCQkJY2FzZSAnVic6CisJCQkJdmVyYm9zZSsrOworCQkJCWJyZWFrOworCQkJY2FzZSAnTic6CisJCQkJbm9leGVjdXRlKys7CisJCQkJYnJlYWs7CisJCQljYXNlICdSJzoKKwkJCQlza2lwX3Jvb3QrKzsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ1QnOgorCQkJCW5vdGl0bGUrKzsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ00nOgorCQkJCWlnbm9yZV9tb3VudGVkKys7CisJCQkJYnJlYWs7CisJCQljYXNlICdQJzoKKwkJCQlwYXJhbGxlbF9yb290Kys7CisJCQkJYnJlYWs7CisJCQljYXNlICdzJzoKKwkJCQlzZXJpYWxpemUrKzsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ3QnOgorCQkJCXRtcCA9IDA7CisJCQkJaWYgKGZzdHlwZSkKKwkJCQkJdXNhZ2UoKTsKKwkJCQlpZiAoYXJnW2orMV0pCisJCQkJCXRtcCA9IGFyZytqKzE7CisJCQkJZWxzZSBpZiAoKGkrMSkgPCBhcmdjKQorCQkJCQl0bXAgPSBhcmd2WysraV07CisJCQkJZWxzZQorCQkJCQl1c2FnZSgpOworCQkJCWZzdHlwZSA9IHN0cmluZ19jb3B5KHRtcCk7CisJCQkJY29tcGlsZV9mc190eXBlKGZzdHlwZSwgJmZzX3R5cGVfY29tcGlsZWQpOworCQkJCWdvdG8gbmV4dF9hcmc7CisJCQljYXNlICctJzoKKwkJCQlvcHRzX2Zvcl9mc2NrKys7CisJCQkJYnJlYWs7CisJCQljYXNlICc/JzoKKwkJCQl1c2FnZSgpOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQlvcHRpb25zWysrb3B0XSA9IGFyZ1tqXTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCW5leHRfYXJnOgorCQlpZiAob3B0KSB7CisJCQlvcHRpb25zWzBdID0gJy0nOworCQkJb3B0aW9uc1srK29wdF0gPSAnXDAnOworCQkJaWYgKG51bV9hcmdzID49IE1BWF9BUkdTKSB7CisJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJCV8oIiVzOiB0b28gbWFueSBhcmd1bWVudHNcbiIpLAorCQkJCQlwcm9nbmFtZSk7CisJCQkJZXhpdChFWElUX0VSUk9SKTsKKwkJCX0KKwkJCWFyZ3NbbnVtX2FyZ3MrK10gPSBzdHJpbmdfY29weShvcHRpb25zKTsKKwkJCW9wdCA9IDA7CisJCX0KKwl9CisJaWYgKGdldGVudigiRlNDS19GT1JDRV9BTExfUEFSQUxMRUwiKSkKKwkJZm9yY2VfYWxsX3BhcmFsbGVsKys7CisJaWYgKCh0bXAgPSBnZXRlbnYoIkZTQ0tfTUFYX0lOU1QiKSkpCisJICAgIG1heF9ydW5uaW5nID0gYXRvaSh0bXApOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWludCBpLCBzdGF0dXMgPSAwOworCWludCBpbnRlcmFjdGl2ZSA9IDA7CisJY2hhciAqb2xkcGF0aCA9IGdldGVudigiUEFUSCIpOworCWNvbnN0IGNoYXIgKmZzdGFiOworCXN0cnVjdCBmc19pbmZvICpmczsKKworCXNldHZidWYoc3Rkb3V0LCBOVUxMLCBfSU9OQkYsIEJVRlNJWik7CisJc2V0dmJ1ZihzdGRlcnIsIE5VTEwsIF9JT05CRiwgQlVGU0laKTsKKworCXNldGxvY2FsZShMQ19NRVNTQUdFUywgIiIpOworCXNldGxvY2FsZShMQ19DVFlQRSwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWZzcHJvYmVfaW5pdCgpOworCVBSUyhhcmdjLCBhcmd2KTsKKworCWlmICghbm90aXRsZSkKKwkJcHJpbnRmKF8oImZzY2sgZnJvbSAlc1xuIiksIFBBQ0tBR0VfU1RSSU5HKTsKKworCWZzdGFiID0gZ2V0ZW52KCJGU1RBQl9GSUxFIik7CisJaWYgKCFmc3RhYikKKwkJZnN0YWIgPSBfUEFUSF9NTlRUQUI7CisJbG9hZF9mc19pbmZvKGZzdGFiKTsKKworCS8qIFVwZGF0ZSBvdXIgc2VhcmNoIHBhdGggdG8gaW5jbHVkZSB1bmNvbW1vbiBkaXJlY3Rvcmllcy4gKi8KKwlpZiAob2xkcGF0aCkgeworCQlmc2NrX3BhdGggPSBtYWxsb2MgKHN0cmxlbiAoZnNja19wcmVmaXhfcGF0aCkgKyAxICsKKwkJCQkgICAgc3RybGVuIChvbGRwYXRoKSArIDEpOworCQlpZiAoIWZzY2tfcGF0aCkgeworCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIpLCBwcm9nbmFtZSk7CisJCQlleGl0KEVYSVRfRVJST1IpOworCQl9CisJCXN0cmNweSAoZnNja19wYXRoLCBmc2NrX3ByZWZpeF9wYXRoKTsKKwkJc3RyY2F0IChmc2NrX3BhdGgsICI6Iik7CisJCXN0cmNhdCAoZnNja19wYXRoLCBvbGRwYXRoKTsKKwl9IGVsc2UgeworCQlmc2NrX3BhdGggPSBzdHJpbmdfY29weShmc2NrX3ByZWZpeF9wYXRoKTsKKwl9CisKKwlpZiAoKG51bV9kZXZpY2VzID09IDEpIHx8IChzZXJpYWxpemUpKQorCQlpbnRlcmFjdGl2ZSA9IDE7CisKKwkvKiBJZiAtQSB3YXMgc3BlY2lmaWVkICgiY2hlY2sgYWxsIiksIGRvIHRoYXQhICovCisJaWYgKGRvYWxsKQorCQlyZXR1cm4gY2hlY2tfYWxsKCk7CisKKwlpZiAobnVtX2RldmljZXMgPT0gMCkgeworCQlzZXJpYWxpemUrKzsKKwkJaW50ZXJhY3RpdmUrKzsKKwkJcmV0dXJuIGNoZWNrX2FsbCgpOworCX0KKwlmb3IgKGkgPSAwIDsgaSA8IG51bV9kZXZpY2VzOyBpKyspIHsKKwkJaWYgKGNhbmNlbF9yZXF1ZXN0ZWQpIHsKKwkJCWlmICgha2lsbF9zZW50KSB7CisJCQkJa2lsbF9hbGwoU0lHVEVSTSk7CisJCQkJa2lsbF9zZW50Kys7CisJCQl9CisJCQlicmVhazsKKwkJfQorCQlmcyA9IGxvb2t1cChkZXZpY2VzW2ldKTsKKwkJaWYgKCFmcykgeworCQkJZnMgPSBjcmVhdGVfZnNfZGV2aWNlKGRldmljZXNbaV0sIDAsICJhdXRvIiwKKwkJCQkJICAgICAgMCwgLTEsIC0xKTsKKwkJCWlmICghZnMpCisJCQkJY29udGludWU7CisJCX0KKwkJaWYgKGlnbm9yZV9tb3VudGVkICYmIGlzX21vdW50ZWQoZnMtPmRldmljZSkpCisJCQljb250aW51ZTsKKwkJZnNja19kZXZpY2UoZnMsIGludGVyYWN0aXZlKTsKKwkJaWYgKHNlcmlhbGl6ZSB8fAorCQkgICAgKG1heF9ydW5uaW5nICYmIChudW1fcnVubmluZyA+PSBtYXhfcnVubmluZykpKSB7CisJCQlzdHJ1Y3QgZnNja19pbnN0YW5jZSAqaW5zdDsKKworCQkJaW5zdCA9IHdhaXRfb25lKDApOworCQkJaWYgKGluc3QpIHsKKwkJCQlzdGF0dXMgfD0gaW5zdC0+ZXhpdF9zdGF0dXM7CisJCQkJZnJlZV9pbnN0YW5jZShpbnN0KTsKKwkJCX0KKwkJCWlmICh2ZXJib3NlID4gMSkKKwkJCQlwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworCQl9CisJfQorCXN0YXR1cyB8PSB3YWl0X21hbnkoRkxBR19XQUlUX0FMTCk7CisJZnJlZShmc2NrX3BhdGgpOworCWZzcHJvYmVfZXhpdCgpOworCXJldHVybiBzdGF0dXM7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svZnNjay5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZnNjay9mc2NrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDViNzg0NAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2ZzY2svZnNjay5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBmc2NrLmgKKyAqLworCisjaW5jbHVkZSA8dGltZS5oPgorCisjaWZkZWYgX19TVERDX18KKyNkZWZpbmUgTk9BUkdTIHZvaWQKKyNlbHNlCisjZGVmaW5lIE5PQVJHUworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2RlZmluZSBGU0NLX0FUVFIoeCkgX19hdHRyaWJ1dGVfXyh4KQorI2Vsc2UKKyNkZWZpbmUgRlNDS19BVFRSKHgpCisjZW5kaWYKKworCisjaWZuZGVmIERFRkFVTFRfRlNUWVBFCisjZGVmaW5lIERFRkFVTFRfRlNUWVBFCSJleHQyIgorI2VuZGlmCisKKyNkZWZpbmUgTUFYX0RFVklDRVMgMzIKKyNkZWZpbmUgTUFYX0FSR1MgMzIKKworI2RlZmluZSBFWElUX09LICAgICAgICAgIDAKKyNkZWZpbmUgRVhJVF9OT05ERVNUUlVDVCAxCisjZGVmaW5lIEVYSVRfREVTVFJVQ1QgICAgMgorI2RlZmluZSBFWElUX1VOQ09SUkVDVEVEIDQKKyNkZWZpbmUgRVhJVF9FUlJPUiAgICAgICA4CisjZGVmaW5lIEVYSVRfVVNBR0UgICAgICAgMTYKKyNkZWZpbmUgRVhJVF9MSUJSQVJZICAgICAxMjgKKworLyoKKyAqIEludGVybmFsIHN0cnVjdHVyZSBmb3IgbW91bnQgdGFiZWwgZW50cmllcy4KKyAqLworCitzdHJ1Y3QgZnNfaW5mbyB7CisJY2hhciAgKmRldmljZTsKKwljaGFyICAqbW91bnRwdDsKKwljaGFyICAqdHlwZTsKKwljaGFyICAqb3B0czsKKwlpbnQgICBmcmVxOworCWludCAgIHBhc3NubzsKKwlpbnQgICBmbGFnczsKKwlzdHJ1Y3QgZnNfaW5mbyAqbmV4dDsKK307CisKKyNkZWZpbmUgRkxBR19ET05FIDEKKyNkZWZpbmUgRkxBR19QUk9HUkVTUyAyCisKKy8qCisgKiBTdHJ1Y3R1cmUgdG8gYWxsb3cgZXhpdCBjb2RlcyB0byBiZSBzdG9yZWQKKyAqLworc3RydWN0IGZzY2tfaW5zdGFuY2UgeworCWludAlwaWQ7CisJaW50CWZsYWdzOworCWludAlleGl0X3N0YXR1czsKKwl0aW1lX3QJc3RhcnRfdGltZTsKKwljaGFyICoJcHJvZzsKKwljaGFyICoJdHlwZTsKKwljaGFyICoJZGV2aWNlOworCWNoYXIgKgliYXNlX2RldmljZTsKKwlzdHJ1Y3QgZnNja19pbnN0YW5jZSAqbmV4dDsKK307CisKK2V4dGVybiBjaGFyICpiYXNlX2RldmljZShjb25zdCBjaGFyICpkZXZpY2UpOworZXh0ZXJuIGNvbnN0IGNoYXIgKmlkZW50aWZ5X2ZzKGNvbnN0IGNoYXIgKmZzX25hbWUsIGNvbnN0IGNoYXIgKmZzX3R5cGVzKTsKKworLyogaXNtb3VudGVkLmggKi8KK2V4dGVybiBpbnQgaXNfbW91bnRlZChjb25zdCBjaGFyICpmaWxlKTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2dldG9wdC9DT1BZSU5HIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L0NPUFlJTkcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQzZWEyMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2dldG9wdC9DT1BZSU5HCkBAIC0wLDAgKzEsMzM5IEBACisJCSAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorCQkgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKKworIENvcHlyaWdodCAoQykgMTk4OSwgMTk5MSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EKKyBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMKKyBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KKworCQkJICAgIFByZWFtYmxlCisKKyAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgorZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGl0LiAgQnkgY29udHJhc3QsIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKK0xpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGZyZWUKK3NvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFwcGxpZXMgdG8gbW9zdCBvZiB0aGUgRnJlZSBTb2Z0d2FyZQorRm91bmRhdGlvbidzIHNvZnR3YXJlIGFuZCB0byBhbnkgb3RoZXIgcHJvZ3JhbSB3aG9zZSBhdXRob3JzIGNvbW1pdCB0bwordXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQordGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW5zdGVhZC4pICBZb3UgY2FuIGFwcGx5IGl0IHRvCit5b3VyIHByb2dyYW1zLCB0b28uCisKKyAgV2hlbiB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20sIG5vdAorcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQoraGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgordGhpcyBzZXJ2aWNlIGlmIHlvdSB3aXNoKSwgdGhhdCB5b3UgcmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0CitpZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAoraW4gbmV3IGZyZWUgcHJvZ3JhbXM7IGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgorCisgIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKK2FueW9uZSB0byBkZW55IHlvdSB0aGVzZSByaWdodHMgb3IgdG8gYXNrIHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4KK1RoZXNlIHJlc3RyaWN0aW9ucyB0cmFuc2xhdGUgdG8gY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIGZvciB5b3UgaWYgeW91CitkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCisKKyAgRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiBzdWNoIGEgcHJvZ3JhbSwgd2hldGhlcgorZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0Cit5b3UgaGF2ZS4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZQorc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkga25vdyB0aGVpcgorcmlnaHRzLgorCisgIFdlIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCB0d28gc3RlcHM6ICgxKSBjb3B5cmlnaHQgdGhlIHNvZnR3YXJlLCBhbmQKKygyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCitkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhlIHNvZnR3YXJlLgorCisgIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCit0aGF0IGV2ZXJ5b25lIHVuZGVyc3RhbmRzIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZQorc29mdHdhcmUuICBJZiB0aGUgc29mdHdhcmUgaXMgbW9kaWZpZWQgYnkgc29tZW9uZSBlbHNlIGFuZCBwYXNzZWQgb24sIHdlCit3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwordGhhdCBhbnkgcHJvYmxlbXMgaW50cm9kdWNlZCBieSBvdGhlcnMgd2lsbCBub3QgcmVmbGVjdCBvbiB0aGUgb3JpZ2luYWwKK2F1dGhvcnMnIHJlcHV0YXRpb25zLgorCisgIEZpbmFsbHksIGFueSBmcmVlIHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlCitwYXRlbnRzLiAgV2Ugd2lzaCB0byBhdm9pZCB0aGUgZGFuZ2VyIHRoYXQgcmVkaXN0cmlidXRvcnMgb2YgYSBmcmVlCitwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCitwcm9ncmFtIHByb3ByaWV0YXJ5LiAgVG8gcHJldmVudCB0aGlzLCB3ZSBoYXZlIG1hZGUgaXQgY2xlYXIgdGhhdCBhbnkKK3BhdGVudCBtdXN0IGJlIGxpY2Vuc2VkIGZvciBldmVyeW9uZSdzIGZyZWUgdXNlIG9yIG5vdCBsaWNlbnNlZCBhdCBhbGwuCisKKyAgVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKK21vZGlmaWNhdGlvbiBmb2xsb3cuCisMCisJCSAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIENPUFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9OCisKKyAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucworYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIHNheWluZyBpdCBtYXkgYmUgZGlzdHJpYnV0ZWQKK3VuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGUgIlByb2dyYW0iLCBiZWxvdywKK3JlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgorbWVhbnMgZWl0aGVyIHRoZSBQcm9ncmFtIG9yIGFueSBkZXJpdmF0aXZlIHdvcmsgdW5kZXIgY29weXJpZ2h0IGxhdzoKK3RoYXQgaXMgdG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgUHJvZ3JhbSBvciBhIHBvcnRpb24gb2YgaXQsCitlaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgorbGFuZ3VhZ2UuICAoSGVyZWluYWZ0ZXIsIHRyYW5zbGF0aW9uIGlzIGluY2x1ZGVkIHdpdGhvdXQgbGltaXRhdGlvbiBpbgordGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKSAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuCisKK0FjdGl2aXRpZXMgb3RoZXIgdGhhbiBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlvbiBhcmUgbm90Citjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mCitydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCitpcyBjb3ZlcmVkIG9ubHkgaWYgaXRzIGNvbnRlbnRzIGNvbnN0aXR1dGUgYSB3b3JrIGJhc2VkIG9uIHRoZQorUHJvZ3JhbSAoaW5kZXBlbmRlbnQgb2YgaGF2aW5nIGJlZW4gbWFkZSBieSBydW5uaW5nIHRoZSBQcm9ncmFtKS4KK1doZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgorCisgIDEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncworc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91Citjb25zcGljdW91c2x5IGFuZCBhcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlCitjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdCBhbGwgdGhlCitub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CithbmQgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgUHJvZ3JhbSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlCithbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgorCitZb3UgbWF5IGNoYXJnZSBhIGZlZSBmb3IgdGhlIHBoeXNpY2FsIGFjdCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LCBhbmQKK3lvdSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5nZSBmb3IgYSBmZWUuCisKKyAgMi4gWW91IG1heSBtb2RpZnkgeW91ciBjb3B5IG9yIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbgorb2YgaXQsIHRodXMgZm9ybWluZyBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0sIGFuZCBjb3B5IGFuZAorZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCithYm92ZSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgorCisgICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisgICAgc3RhdGluZyB0aGF0IHlvdSBjaGFuZ2VkIHRoZSBmaWxlcyBhbmQgdGhlIGRhdGUgb2YgYW55IGNoYW5nZS4KKworICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgorICAgIHdob2xlIG9yIGluIHBhcnQgY29udGFpbnMgb3IgaXMgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtIG9yIGFueQorICAgIHBhcnQgdGhlcmVvZiwgdG8gYmUgbGljZW5zZWQgYXMgYSB3aG9sZSBhdCBubyBjaGFyZ2UgdG8gYWxsIHRoaXJkCisgICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgorCisgICAgYykgSWYgdGhlIG1vZGlmaWVkIHByb2dyYW0gbm9ybWFsbHkgcmVhZHMgY29tbWFuZHMgaW50ZXJhY3RpdmVseQorICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKKyAgICBpbnRlcmFjdGl2ZSB1c2UgaW4gdGhlIG1vc3Qgb3JkaW5hcnkgd2F5LCB0byBwcmludCBvciBkaXNwbGF5IGFuCisgICAgYW5ub3VuY2VtZW50IGluY2x1ZGluZyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBhCisgICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCisgICAgYSB3YXJyYW50eSkgYW5kIHRoYXQgdXNlcnMgbWF5IHJlZGlzdHJpYnV0ZSB0aGUgcHJvZ3JhbSB1bmRlcgorICAgIHRoZXNlIGNvbmRpdGlvbnMsIGFuZCB0ZWxsaW5nIHRoZSB1c2VyIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzCisgICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKKyAgICBkb2VzIG5vdCBub3JtYWxseSBwcmludCBzdWNoIGFuIGFubm91bmNlbWVudCwgeW91ciB3b3JrIGJhc2VkIG9uCisgICAgdGhlIFByb2dyYW0gaXMgbm90IHJlcXVpcmVkIHRvIHByaW50IGFuIGFubm91bmNlbWVudC4pCisMCitUaGVzZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3aG9sZS4gIElmCitpZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAorYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluCit0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5zZSwgYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlCitzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKK2Rpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZAorb24gdGhlIFByb2dyYW0sIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUgb24gdGhlIHRlcm1zIG9mCit0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQorZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlIGl0LgorCitUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKK3lvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7IHJhdGhlciwgdGhlIGludGVudCBpcyB0bworZXhlcmNpc2UgdGhlIHJpZ2h0IHRvIGNvbnRyb2wgdGhlIGRpc3RyaWJ1dGlvbiBvZiBkZXJpdmF0aXZlIG9yCitjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgorCitJbiBhZGRpdGlvbiwgbWVyZSBhZ2dyZWdhdGlvbiBvZiBhbm90aGVyIHdvcmsgbm90IGJhc2VkIG9uIHRoZSBQcm9ncmFtCit3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKK2Egc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtIGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCit0aGUgc2NvcGUgb2YgdGhpcyBMaWNlbnNlLgorCisgIDMuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYSB3b3JrIGJhc2VkIG9uIGl0LAordW5kZXIgU2VjdGlvbiAyKSBpbiBvYmplY3QgY29kZSBvciBleGVjdXRhYmxlIGZvcm0gdW5kZXIgdGhlIHRlcm1zIG9mCitTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CisKKyAgICBhKSBBY2NvbXBhbnkgaXQgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZyBtYWNoaW5lLXJlYWRhYmxlCisgICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCisgICAgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCisKKyAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQorICAgIHllYXJzLCB0byBnaXZlIGFueSB0aGlyZCBwYXJ0eSwgZm9yIGEgY2hhcmdlIG5vIG1vcmUgdGhhbiB5b3VyCisgICAgY29zdCBvZiBwaHlzaWNhbGx5IHBlcmZvcm1pbmcgc291cmNlIGRpc3RyaWJ1dGlvbiwgYSBjb21wbGV0ZQorICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKKyAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bQorICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKKworICAgIGMpIEFjY29tcGFueSBpdCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVjZWl2ZWQgYXMgdG8gdGhlIG9mZmVyCisgICAgdG8gZGlzdHJpYnV0ZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBjb2RlLiAgKFRoaXMgYWx0ZXJuYXRpdmUgaXMKKyAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQorICAgIHJlY2VpdmVkIHRoZSBwcm9ncmFtIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB3aXRoIHN1Y2gKKyAgICBhbiBvZmZlciwgaW4gYWNjb3JkIHdpdGggU3Vic2VjdGlvbiBiIGFib3ZlLikKKworVGhlIHNvdXJjZSBjb2RlIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvcgorbWFraW5nIG1vZGlmaWNhdGlvbnMgdG8gaXQuICBGb3IgYW4gZXhlY3V0YWJsZSB3b3JrLCBjb21wbGV0ZSBzb3VyY2UKK2NvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55Cithc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8KK2NvbnRyb2wgY29tcGlsYXRpb24gYW5kIGluc3RhbGxhdGlvbiBvZiB0aGUgZXhlY3V0YWJsZS4gIEhvd2V2ZXIsIGFzIGEKK3NwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQorYW55dGhpbmcgdGhhdCBpcyBub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkKK2Zvcm0pIHdpdGggdGhlIG1ham9yIGNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFuZCBzbyBvbikgb2YgdGhlCitvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAoraXRzZWxmIGFjY29tcGFuaWVzIHRoZSBleGVjdXRhYmxlLgorCitJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCithY2Nlc3MgdG8gY29weSBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50CithY2Nlc3MgdG8gY29weSB0aGUgc291cmNlIGNvZGUgZnJvbSB0aGUgc2FtZSBwbGFjZSBjb3VudHMgYXMKK2Rpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdAorY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KKwwKKyAgNC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCitleGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0CitvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKK3ZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4KK0hvd2V2ZXIsIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91IHVuZGVyCit0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaAorcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgorCisgIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdAorc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IKK2Rpc3RyaWJ1dGUgdGhlIFByb2dyYW0gb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuICBUaGVzZSBhY3Rpb25zIGFyZQorcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQorbW9kaWZ5aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCitQcm9ncmFtKSwgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28sIGFuZAorYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwordGhlIFByb2dyYW0gb3Igd29ya3MgYmFzZWQgb24gaXQuCisKKyAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQorUHJvZ3JhbSksIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUKK29yaWdpbmFsIGxpY2Vuc29yIHRvIGNvcHksIGRpc3RyaWJ1dGUgb3IgbW9kaWZ5IHRoZSBQcm9ncmFtIHN1YmplY3QgdG8KK3RoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCityZXN0cmljdGlvbnMgb24gdGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uCitZb3UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB0bwordGhpcyBMaWNlbnNlLgorCisgIDcuIElmLCBhcyBhIGNvbnNlcXVlbmNlIG9mIGEgY291cnQganVkZ21lbnQgb3IgYWxsZWdhdGlvbiBvZiBwYXRlbnQKK2luZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCitjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hldGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50IG9yCitvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CitleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdAorZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcworTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdQorbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudAorbGljZW5zZSB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieQorYWxsIHRob3NlIHdobyByZWNlaXZlIGNvcGllcyBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHRocm91Z2ggeW91LCB0aGVuCit0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCityZWZyYWluIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtLgorCitJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKK2FueSBwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8KK2FwcGx5IGFuZCB0aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyCitjaXJjdW1zdGFuY2VzLgorCitJdCBpcyBub3QgdGhlIHB1cnBvc2Ugb2YgdGhpcyBzZWN0aW9uIHRvIGluZHVjZSB5b3UgdG8gaW5mcmluZ2UgYW55CitwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQorc3VjaCBjbGFpbXM7IHRoaXMgc2VjdGlvbiBoYXMgdGhlIHNvbGUgcHVycG9zZSBvZiBwcm90ZWN0aW5nIHRoZQoraW50ZWdyaXR5IG9mIHRoZSBmcmVlIHNvZnR3YXJlIGRpc3RyaWJ1dGlvbiBzeXN0ZW0sIHdoaWNoIGlzCitpbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKK2dlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKK3Rocm91Z2ggdGhhdCBzeXN0ZW0gaW4gcmVsaWFuY2Ugb24gY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0CitzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCit0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QKK2ltcG9zZSB0aGF0IGNob2ljZS4KKworVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCitiZSBhIGNvbnNlcXVlbmNlIG9mIHRoZSByZXN0IG9mIHRoaXMgTGljZW5zZS4KKwwKKyAgOC4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBQcm9ncmFtIGlzIHJlc3RyaWN0ZWQgaW4KK2NlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQorb3JpZ2luYWwgY29weXJpZ2h0IGhvbGRlciB3aG8gcGxhY2VzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgTGljZW5zZQorbWF5IGFkZCBhbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nCit0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCitjb3VudHJpZXMgbm90IHRodXMgZXhjbHVkZWQuICBJbiBzdWNoIGNhc2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMKK3RoZSBsaW1pdGF0aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLgorCisgIDkuIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zCitvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4gIFN1Y2ggbmV3IHZlcnNpb25zIHdpbGwKK2JlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bworYWRkcmVzcyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCisKK0VhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0KK3NwZWNpZmllcyBhIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMgTGljZW5zZSB3aGljaCBhcHBsaWVzIHRvIGl0IGFuZCAiYW55CitsYXRlciB2ZXJzaW9uIiwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zCitlaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorU29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZgordGhpcyBMaWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorRm91bmRhdGlvbi4KKworICAxMC4gSWYgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUgcGFydHMgb2YgdGhlIFByb2dyYW0gaW50byBvdGhlciBmcmVlCitwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCit0byBhc2sgZm9yIHBlcm1pc3Npb24uICBGb3Igc29mdHdhcmUgd2hpY2ggaXMgY29weXJpZ2h0ZWQgYnkgdGhlIEZyZWUKK1NvZnR3YXJlIEZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHdlIHNvbWV0aW1lcworbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKK29mIHByZXNlcnZpbmcgdGhlIGZyZWUgc3RhdHVzIG9mIGFsbCBkZXJpdmF0aXZlcyBvZiBvdXIgZnJlZSBzb2Z0d2FyZSBhbmQKK29mIHByb21vdGluZyB0aGUgc2hhcmluZyBhbmQgcmV1c2Ugb2Ygc29mdHdhcmUgZ2VuZXJhbGx5LgorCisJCQkgICAgTk8gV0FSUkFOVFkKKworICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKK0ZPUiBUSEUgUFJPR1JBTSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcuICBFWENFUFQgV0hFTgorT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUworUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKK09SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCitNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTCitUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFCitQUk9HUkFNIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRSBUSEUgQ09TVCBPRiBBTEwgTkVDRVNTQVJZIFNFUlZJQ0lORywKK1JFUEFJUiBPUiBDT1JSRUNUSU9OLgorCisgIDEyLiBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcKK1dJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTUFZIE1PRElGWSBBTkQvT1IKK1JFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCitJTkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUwsIElOQ0lERU5UQUwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEFSSVNJTkcKK09VVCBPRiBUSEUgVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKK1RPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQorWU9VIE9SIFRISVJEIFBBUlRJRVMgT1IgQSBGQUlMVVJFIE9GIFRIRSBQUk9HUkFNIFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVIKK1BST0dSQU1TKSwgRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRQorUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorCisJCSAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisMCisJQXBwZW5kaXg6IEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcworCisgIElmIHlvdSBkZXZlbG9wIGEgbmV3IHByb2dyYW0sIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRlc3QKK3Bvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKK2ZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgorCisgIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0Cit0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5Citjb252ZXkgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAordGhlICJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuCisKKyAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgorICAgIENvcHlyaWdodCAoQykgMTl5eSAgPG5hbWUgb2YgYXV0aG9yPgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisKK0Fsc28gYWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJvbmljIGFuZCBwYXBlciBtYWlsLgorCitJZiB0aGUgcHJvZ3JhbSBpcyBpbnRlcmFjdGl2ZSwgbWFrZSBpdCBvdXRwdXQgYSBzaG9ydCBub3RpY2UgbGlrZSB0aGlzCit3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgorCisgICAgR25vbW92aXNpb24gdmVyc2lvbiA2OSwgQ29weXJpZ2h0IChDKSAxOXl5IG5hbWUgb2YgYXV0aG9yCisgICAgR25vbW92aXNpb24gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZOyBmb3IgZGV0YWlscyB0eXBlIGBzaG93IHcnLgorICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKKyAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCisKK1RoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQorcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHRoZSBjb21tYW5kcyB5b3UgdXNlIG1heQorYmUgY2FsbGVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGBzaG93IHcnIGFuZCBgc2hvdyBjJzsgdGhleSBjb3VsZCBldmVuIGJlCittb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgorCitZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3IgeW91cgorc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKK25lY2Vzc2FyeS4gIEhlcmUgaXMgYSBzYW1wbGU7IGFsdGVyIHRoZSBuYW1lczoKKworICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCisgIGBHbm9tb3Zpc2lvbicgKHdoaWNoIG1ha2VzIHBhc3NlcyBhdCBjb21waWxlcnMpIHdyaXR0ZW4gYnkgSmFtZXMgSGFja2VyLgorCisgIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQorICBUeSBDb29uLCBQcmVzaWRlbnQgb2YgVmljZQorCitUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KK3Byb3ByaWV0YXJ5IHByb2dyYW1zLiAgSWYgeW91ciBwcm9ncmFtIGlzIGEgc3Vicm91dGluZSBsaWJyYXJ5LCB5b3UgbWF5Citjb25zaWRlciBpdCBtb3JlIHVzZWZ1bCB0byBwZXJtaXQgbGlua2luZyBwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnMgd2l0aCB0aGUKK2xpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbAorUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvQ2hhbmdlbG9nIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L0NoYW5nZWxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTI3OTY1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L0NoYW5nZWxvZwpAQCAtMCwwICsxLDM4IEBACisyMDA1MTEwNzogQnVtcGVkIHVwIHZlcnNpb24gbnVtYmVyIHRvIDEuMS40CisyMDA1MTEwNzogTWFrZWZpbGU6IHBhY2thZ2UgdGFyZ2V0CisyMDA1MTEwNzogQ2hhbmdlZCBlbWFpbCBhbmQgd2Vic2l0ZSB0byBjdXJyZW50IG9uZXMKKzIwMDUxMTA3OiBGaXhlZCBhIGZldyB0eXBvcyBpbiB0aGUgbWFucGFnZSAoc3luYyB3aXRoIHV0aWwtbGludXggKDIuMTJyKQorMjAwMzAxMjM6IEJ1bXBlZCB1cCB2ZXJzaW9uIG51bWJlciB0byAxLjEuMworMjAwMzAxMjM6IENoYW5nZWQgV0lUSF9HRVRURVhUIG9wdGlvbiB0byBXSVRIT1VUX0dFVFRFWFQKKzIwMDMwMTIzOiBSZW5hbWVkIGV4YW1wbGUgcHJvZ3JhbXMgdG8gaGF2ZSB0aGUgc3RyaW5nIGdldG9wdC0gcHJlcGVuZGVkCisyMDAzMDEyMzogTWFucGFnZTogYWxsIG1pbnVzIHNpZ25zIGFyZSBub3cgZXNjYXBlZAorMjAwMzAxMjM6IFN5bmMgd2l0aCB1dGlsLWxpbnV4ICgyLjExeSkKKzIwMDEwMzI5OiBCdW1wZWQgdXAgdmVyc2lvbiBudW1iZXIgdG8gMS4xLjIKKzIwMDEwMzI5OiBTeW5jIHdpdGggdXRpbC1saW51eAorMjAwMTAzMTE6IEJ1bXBlZCB1cCB2ZXJzaW9uIG51bWJlciB0byAxLjEuMQorMjAwMTAzMTE6IEZpeGVkIHN0dXBpZCBjb21waWxhdGlvbiBlcnJvciBpZiBOTFMgbm90IHNlbGVjdGVkCisyMDAwMDYzMDogQnVtcGVkIHVwIHZlcnNpb24gbnVtYmVyIHRvIDEuMS4wCisyMDAwMDYzMDogUG9ydGVkIHRoZSBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydCBwYXRjaGVzIGZyb20gdXRpbC1saW51eAorICAgICAgICAgIFRoZXkgYXJlIHdyaXR0ZW4gYnkgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQub3JnLnBsPgorMjAwMDA2Mjc6IEJ1bXBlZCB1cCB2ZXJzaW9uIG51bWJlciB0byAxLjAuNgorMjAwMDA2Mjc6IEEgZmV3IG1hbnBhZ2UgdHdlYWtzCisyMDAwMDYxNjogSW50cm9kdWNlZCBERVNURElSIGFuZCBkaXJlY3RvcnkgY3JlYXRpb24gaW4gdGhlIE1ha2VmaWxlLgorMTk5OTA3MTY6IEJ1bXBlZCB1cCB2ZXJzaW9uIG51bWJlciB0byAxLjAuNQorMTk5OTA2MjI6IE1hZGUgLXUgd29yaworMTk5OTAxMDE6IEJ1bXBlZCB1cCB2ZXJzaW9uIG51bWJlciB0byAxLjAuNCAoYWthLiAxLjAuM2EgaW4gdXRpbC1saW51eCkKKzE5OTkwMTAxOiBWZXJ5IHNtYWxsIGZpeCBpbiBtYWluKCkKKzE5OTkwMTAxOiBVcGRhdGVkIHV0aWwtbGludXggTWFrZWZpbGUKKzE5OTgwNjI4OiBCdW1wZWQgdXAgdmVyc2lvbiBudW1iZXIgdG8gMS4wLjMKKzE5OTgwNjI4OiBSZW1vdmVkIHJlbWFpbmluZyBpbmNvbXBhdGliaWxpdHkgd2l0aCB0Y3NoLTYuMDIgZnJvbSBwYXJzZS50Y3NoCis5ODA2MjY6IEFkZGVkIHNlcGFyYXRlIE1ha2VmaWxlIGZvciB1dGlsLWxpbnV4CisxOTk4MDYyNTogUmVtb3ZlZCBzZXZlcmFsIGJ1Z3MgZnJvbSBwYXJzZS50Y3NoLCBwYXJ0bHkgdGhhbmtzIHRvIFZvbGtlciBLdWhsbWFubgorICAgICAgICAgICh2Lmt1aGxtYW5uQGVsZWMuY2FudGVyYnVyeS5hYy5ueikuCisxOTk4MDYxMjogUmVtb3ZlZCByZWZlcmVuY2UgdG8gZ2V0b3B0IGluIHV0aWwtbGludXgKKzE5OTgwNjExOiBCdW1wZWQgdXAgdmVyc2lvbiBudW1iZXIgdG8gMS4wLjIKKzE5OTgwNjExOiBGaXhlZCAtLXZlcnNpb24gYnVnICh3YXMgbm90IGF2YWlsYWJsZSwgdGhvdWdoIGRvY3VtZW50ZWQhKQorMTk5ODA2MTE6IFJlbW92ZWQgY29tcGlsZXIgd2FybmluZ3MuCisxOTk4MDYwMzogQnVtcGVkIHVwIHZlcnNpb24gbnVtYmVyIHRvIDEuMC4xCisxOTk4MDYwMzogRml4ZWQgc2l6ZW9mKCkgYnVnIChzaG91bGQgYmUgc3RybGVuKSBpbiBnZXRvcHQuYywgdGhhbmtzIHRvIAorICAgICAgICAgIEJvYiBQcm91bHggKHJ3cEBocHJ3cC5mYy5ocC5jb20pLgorMTk5ODA1MDU6IENoYW5nZWQgZGF0ZSBmaWVsZCBpbiBMU00gdG8gcHJvcGVyIHN5bnRheAorMTk5ODA1MDU6IFJlbGVhc2VkIHZlcnNpb24gMS4wCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvTWFrZWZpbGUuYW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQzZTc5NAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2dldG9wdC9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDExIEBACitpbmNsdWRlICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KKwordXNyYmluX2V4ZWNfUFJPR1JBTVMgPSBnZXRvcHQKK2Rpc3RfbWFuX01BTlMgPSBnZXRvcHQuMQorCitleGFtcGxlZGlyID0gJChkYXRhZGlyKS9nZXRvcHQvCitkaXN0X2V4YW1wbGVfU0NSSVBUUyA9IGdldG9wdC1wYXJzZS5iYXNoIGdldG9wdC1wYXJzZS50Y3NoIFwKKwlnZXRvcHQtdGVzdC5iYXNoIGdldG9wdC10ZXN0LnRjc2gKKworRVhUUkFfRElTVCA9IFJFQURNRSBDaGFuZ2Vsb2cgQ09QWUlORworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvTWFrZWZpbGUuaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWIwZDAwYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2dldG9wdC9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDcyNSBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK0RJU1RfQ09NTU9OID0gUkVBRE1FICQoZGlzdF9leGFtcGxlX1NDUklQVFMpICQoZGlzdF9tYW5fTUFOUykgXAorCSQoZGlzdF9ub2luc3RfREFUQSkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSBcCisJQ09QWUlORwordXNyYmluX2V4ZWNfUFJPR1JBTVMgPSBnZXRvcHQkKEVYRUVYVCkKK3N1YmRpciA9IGdldG9wdAorQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgXAorCSIkKERFU1RESVIpJChleGFtcGxlZGlyKSIgIiQoREVTVERJUikkKG1hbjFkaXIpIgorUFJPR1JBTVMgPSAkKHVzcmJpbl9leGVjX1BST0dSQU1TKQorZ2V0b3B0X1NPVVJDRVMgPSBnZXRvcHQuYworZ2V0b3B0X09CSkVDVFMgPSBnZXRvcHQuJChPQkpFWFQpCitnZXRvcHRfTERBREQgPSAkKExEQUREKQorQU1fVl9sdCA9ICQoYW1fX3ZfbHRfJChWKSkKK2FtX192X2x0XyA9ICQoYW1fX3ZfbHRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9sdF8wID0gLS1zaWxlbnQKK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorICAgICopIGY9JCRwOzsgXAorICBlc2FjOworYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworYW1fX2luc3RhbGxfbWF4ID0gNDAKK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgorYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAorICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKK2FtX19iYXNlX2xpc3QgPSBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKK1NDUklQVFMgPSAkKGRpc3RfZXhhbXBsZV9TQ1JJUFRTKQorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSBnZXRvcHQuYworRElTVF9TT1VSQ0VTID0gZ2V0b3B0LmMKK21hbjFkaXIgPSAkKG1hbmRpcikvbWFuMQorTlJPRkYgPSBucm9mZgorTUFOUyA9ICQoZGlzdF9tYW5fTUFOUykKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSBcCisJLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIgorCitBTV9DRkxBR1MgPSAtZnNpZ25lZC1jaGFyCitBTV9MREZMQUdTID0gCisKKyMgQXV0b21ha2UgKGF0IGxlYXN0IHVwIHRvIDEuMTApIG1pc2hhbmRsZXMgZGlzdF9tYW5fTUFOUyBpbnNpZGUgY29uZGl0aW9uYWxzLgorIyBVbmxpa2Ugd2l0aCBvdGhlciBkaXN0IHByaW1hcmllcywgdGhlIGZpbGVzIGFyZSBub3QgZGlzdHJpYnV0ZWQgaWYgdGhlCisjIGNvbmRpdGlvbmFsIGlzIGZhbHNlLgorIyBXb3JrIHRoZSBidWcgYXJvdW5kIHVudGlsIGl0IGlzIGZpeGVkOgorZGlzdF9ub2luc3RfREFUQSA9ICQoZGlzdF9tYW5fTUFOUykKKworIyBQYXRocyB0byBpbi10cmVlIGxpYnJhcmllcyAodXNlIHVsXyBwcmVmaXggdG8gYXZvaWQgcG9zc2libGUgY29sbGlzaW9ucykKKyMKKyMgYmxraWQKK3VsX2xpYmJsa2lkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYy9saWJibGtpZC5sYQorCisjIGJsa2lkLmggaXMgZ2VuZXJhdGVkIGJ5IC4vY29uZmlndXJlIHNjcmlwdCBhbmQgc3RvcmVkIGluIGJ1aWxkIGRpcmVjdG9yeQordWxfbGliYmxraWRfaW5jZGlyID0gJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworIyB1dWlkCit1bF9saWJ1dWlkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMvbGlidXVpZC5sYQorZGlzdF9tYW5fTUFOUyA9IGdldG9wdC4xCitleGFtcGxlZGlyID0gJChkYXRhZGlyKS9nZXRvcHQvCitkaXN0X2V4YW1wbGVfU0NSSVBUUyA9IGdldG9wdC1wYXJzZS5iYXNoIGdldG9wdC1wYXJzZS50Y3NoIFwKKwlnZXRvcHQtdGVzdC5iYXNoIGdldG9wdC10ZXN0LnRjc2gKKworRVhUUkFfRElTVCA9IFJFQURNRSBDaGFuZ2Vsb2cgQ09QWUlORworYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIGdldG9wdC9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gZ2V0b3B0L01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKK2luc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUzogJCh1c3JiaW5fZXhlY19QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHVzcmJpbl9leGVjZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpIgorCUBsaXN0PSckKHVzcmJpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisJc2VkICdzLyQoRVhFRVhUKSQkLy8nIHwgXAorCXdoaWxlIHJlYWQgcCBwMTsgZG8gaWYgdGVzdCAtZiAkJHAgfHwgdGVzdCAtZiAkJHAxOyBcCisJICB0aGVuIGVjaG8gIiQkcCI7IGVjaG8gIiQkcCI7IGVsc2UgOjsgZmk7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAncDtzLC4qLywsO247aCcgLWUgJ3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJyB8IFwKKwlzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxIH0gXAorCSAgeyBkPSQkMzsgaWYgKGRpcnNbZF0gIT0gMSkgeyBwcmludCAiZCIsIGQ7IGRpcnNbZF0gPSAxIH0gXAorCSAgICBpZiAoJCQyID09ICQkNCkgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgIGVsc2UgeyBwcmludCAiZiIsICQkMyAiLyIgJCQ0LCAkJDE7IH0gfSBcCisJICBFTkQgeyBmb3IgKGQgaW4gZmlsZXMpIHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCisJd2hpbGUgcmVhZCB0eXBlIGRpciBmaWxlczsgZG8gXAorCSAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKKwkgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAnJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKHVzcmJpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tdXNyYmluX2V4ZWNQUk9HUkFNUzoKKwlAbGlzdD0nJCh1c3JiaW5fZXhlY19QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QKK2dldG9wdCQoRVhFRVhUKTogJChnZXRvcHRfT0JKRUNUUykgJChnZXRvcHRfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgZ2V0b3B0JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGdldG9wdF9PQkpFQ1RTKSAkKGdldG9wdF9MREFERCkgJChMSUJTKQoraW5zdGFsbC1kaXN0X2V4YW1wbGVTQ1JJUFRTOiAkKGRpc3RfZXhhbXBsZV9TQ1JJUFRTKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQoZXhhbXBsZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGV4YW1wbGVkaXIpIgorCUBsaXN0PSckKGRpc3RfZXhhbXBsZV9TQ1JJUFRTKSc7IHRlc3QgLW4gIiQoZXhhbXBsZWRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ3A7cywuKi8sLDtuJyBcCisJICAgIC1lICdoO3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsOyQodHJhbnNmb3JtKScgfCBzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxOyB9IFwKKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKwkgICAgaWYgKCQkMiA9PSAkJDQpIHsgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgICAgaWYgKCsrbltkXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIHsgXAorCQlwcmludCAiZiIsIGQsIGZpbGVzW2RdOyBuW2RdID0gMDsgZmlsZXNbZF0gPSAiIiB9IH0gXAorCSAgICBlbHNlIHsgcHJpbnQgImYiLCBkICIvIiAkJDQsICQkMSB9IH0gXAorCSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAorCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKwkgICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgICAgIGVjaG8gIiAkKElOU1RBTExfU0NSSVBUKSAkJGZpbGVzICckKERFU1RESVIpJChleGFtcGxlZGlyKSQkZGlyJyI7IFwKKwkgICAgICAgJChJTlNUQUxMX1NDUklQVCkgJCRmaWxlcyAiJChERVNURElSKSQoZXhhbXBsZWRpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtZGlzdF9leGFtcGxlU0NSSVBUUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKGRpc3RfZXhhbXBsZV9TQ1JJUFRTKSc7IHRlc3QgLW4gIiQoZXhhbXBsZWRpcikiIHx8IGV4aXQgMDsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICAgICAgIHNlZCAtZSAncywuKi8sLDskKHRyYW5zZm9ybSknYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKGV4YW1wbGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQoZXhhbXBsZWRpcikiICYmIHJtIC1mICQkZmlsZXMKKworbW9zdGx5Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi4kKE9CSkVYVCkKKworZGlzdGNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICoudGFiLmMKKworQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2dldG9wdC5Qb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoTFRDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworaW5zdGFsbC1tYW4xOiAkKGRpc3RfbWFuX01BTlMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChtYW4xZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobWFuMWRpcikiCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuMWRpcikiIHx8IGV4aXQgMDsgXAorCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKwl9IHwgd2hpbGUgcmVhZCBwOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAnbjtzLC4qLywsO3A7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJyB8IFwKKwlzZWQgJ047TjtzLFxuLCAsZycgfCB7IFwKKwlsaXN0PTsgd2hpbGUgcmVhZCBmaWxlIGJhc2UgaW5zdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVuIGxpc3Q9IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0JyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICIkJGZpbGUiICIkKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QiIHx8IGV4aXQgJCQ/OyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKG1hbjFkaXIpJyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBleGl0ICQkPzsgfTsgXAorCWRvbmU7IH0KKwordW5pbnN0YWxsLW1hbjE6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCisJZmlsZXM9YHsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKwl9IHwgc2VkIC1lICdzLC4qLywsO2g7cywuKlwuLCw7cyxeW14xXVswLTlhLXpdKiQkLDEsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCdgOyBcCisJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICBlY2hvICIgKCBjZCAnJChERVNURElSKSQobWFuMWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCSAgY2QgIiQoREVTVERJUikkKG1hbjFkaXIpIiAmJiBybSAtZiAkJGZpbGVzOyB9CisKK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJbWtpZCAtZklEICQkdW5pcXVlCit0YWdzOiBUQUdTCisKK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXNoaWZ0OyBcCisJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisJICBlbHNlIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICQkdW5pcXVlOyBcCisJICBmaTsgXAorCWZpCitjdGFnczogQ1RBR1MKK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKwkgICAgICQkdW5pcXVlCisKK0dUQUdTOgorCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisKK2Rpc3RjbGVhbi10YWdzOgorCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBsaXN0PSckKE1BTlMpJzsgaWYgdGVzdCAtbiAiJCRsaXN0IjsgdGhlbiBcCisJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICAgIGlmIHRlc3QgLWYgIiQkZCQkcCI7IHRoZW4gZWNobyAiJCRkJCRwIjsgZWxzZSA6OyBmaTsgZG9uZWA7IFwKKwkgIGlmIHRlc3QgLW4gIiQkbGlzdCIgJiYgXAorCSAgICBncmVwICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCA+L2Rldi9udWxsOyB0aGVuIFwKKwkgICAgZWNobyAiZXJyb3I6IGZvdW5kIG1hbiBwYWdlcyBjb250YWluaW5nIHRoZSBcYG1pc3NpbmcgaGVscDJtYW4nIHJlcGxhY2VtZW50IHRleHQ6IiA+JjI7IFwKKwkgICAgZ3JlcCAtbCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgfCBzZWQgJ3MvXi8gICAgICAgICAvJyA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHRvIGZpeCB0aGVtLCBpbnN0YWxsIGhlbHAybWFuLCByZW1vdmUgYW5kIHJlZ2VuZXJhdGUgdGhlIG1hbiBwYWdlczsiID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdHlwaWNhbGx5IFxgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB3aWxsIHJlbW92ZSB0aGVtIiA+JjI7IFwKKwkgICAgZXhpdCAxOyBcCisJICBlbHNlIDo7IGZpOyBcCisJZWxzZSA6OyBmaQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLWFtCithbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpICQoU0NSSVBUUykgJChNQU5TKSAkKERBVEEpCitpbnN0YWxsZGlyczoKKwlmb3IgZGlyIGluICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJChleGFtcGxlZGlyKSIgIiQoREVTVERJUikkKG1hbjFkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi11c3JiaW5fZXhlY1BST0dSQU1TIFwKKwltb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLWFtCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1hbQorCitodG1sLWFtOgorCitpbmZvOiBpbmZvLWFtCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1kaXN0X2V4YW1wbGVTQ1JJUFRTIGluc3RhbGwtbWFuCisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLXVzcmJpbl9leGVjUFJPR1JBTVMKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjEKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtYW0KKworcGRmLWFtOgorCitwczogcHMtYW0KKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWRpc3RfZXhhbXBsZVNDUklQVFMgdW5pbnN0YWxsLW1hbiBcCisJdW5pbnN0YWxsLXVzcmJpbl9leGVjUFJPR1JBTVMKKwordW5pbnN0YWxsLW1hbjogdW5pbnN0YWxsLW1hbjEKKworLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisJY2xlYW4tbGlidG9vbCBjbGVhbi11c3JiaW5fZXhlY1BST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBcCisJaW5zdGFsbC1kaXN0X2V4YW1wbGVTQ1JJUFRTIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAorCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIFwKKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorCWluc3RhbGwtc3RyaXAgaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TIGluc3RhbGxjaGVjayBcCisJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1kaXN0X2V4YW1wbGVTQ1JJUFRTIFwKKwl1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xIHVuaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TCisKKworJCh1bF9saWJibGtpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCiskKHVsX2xpYnV1aWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJ1dWlkX2J1aWxkZGlyKQorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvUkVBRE1FIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmY3YmIwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L1JFQURNRQpAQCAtMCwwICsxLDgxIEBACitUaGlzIHBhY2thZ2UgY29udGFpbnMgYSByZWltcGxlbWVudGF0aW9uIG9mIGdldG9wdCgxKS4KKworUFJFRkFDRQorCitHZXRvcHQoMSkgaXMgYSBwcm9ncmFtIHRvIGhlbHAgc2hlbGwgc2NyaXB0cyBwYXJzZSBjb21tYW5kLWxpbmUgcGFyYW1ldGVycy4KK0l0IGlzIGZvciBleGFtcGxlIGluY2x1ZGVkIGluIHRoZSB1dGlsLWxpbnV4IGRpc3RyaWJ1dGlvbiAodXB0byB2ZXJzaW9uCisyLjcuMSkuIEJ1dCwgdGhlcmUgYXJlIHNvbWUgcHJvYmxlbXMgd2l0aCB0aGF0IGdldG9wdCgxKSBpbXBsZW1lbnRhdGlvbiwgCithcyBsaXN0ZWQgaW4gdGhlICdCVUdTJyBzZWN0aW9uIG9mIGl0cyBtYW4tcGFnZToKKworPkJVR1MKKz4gICAgIFdoYXRldmVyIGdldG9wdCgzKSBoYXMuCis+Cis+ICAgICBBcmd1bWVudHMgY29udGFpbmluZyB3aGl0ZSBzcGFjZSBvciBpbWJlZGRlZCBzaGVsbCBtZXRhY2hhcmFjdGVycyBnZW5lci0KKz4gICAgIGFsbHkgd2lsbCBub3Qgc3Vydml2ZSBpbnRhY3Q7ICB0aGlzIGxvb2tzIGVhc3kgdG8gZml4IGJ1dCBpc24ndC4KKz4KKz4gICAgIFRoZSBlcnJvciBtZXNzYWdlIGZvciBhbiBpbnZhbGlkIG9wdGlvbiBpcyBpZGVudGlmaWVkIGFzIGNvbWluZyBmcm9tCis+ICAgICBnZXRvcHQgcmF0aGVyIHRoYW4gZnJvbSB0aGUgc2hlbGwgcHJvY2VkdXJlIGNvbnRhaW5pbmcgdGhlIGludm9jYXRpb24gb2YKKz4gICAgIGdldG9wdDsgdGhpcyBhZ2FpbiBpcyBoYXJkIHRvIGZpeC4KKz4KKz4gICAgIFRoZSBwcmVjaXNlIGJlc3Qgd2F5IHRvIHVzZSB0aGUgc2V0IGNvbW1hbmQgdG8gc2V0IHRoZSBhcmd1bWVudHMgd2l0aG91dAorPiAgICAgZGlzcnVwdGluZyB0aGUgdmFsdWUocykgb2Ygc2hlbGwgb3B0aW9ucyB2YXJpZXMgZnJvbSBvbmUgc2hlbGwgdmVyc2lvbiB0bworPiAgICAgYW5vdGhlci4KKworVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBnZXRvcHQoMSkgaXMgd3JpdHRlbiB0byBzb2x2ZSBzb21lIG9mIHRoZXNlIHByb2JsZW1zLAord2hpbGUgc3RpbGwgc3RheWluZyAoZm9yIGFsbCBwcmFjdGljYWwgcHVycG9zZXMpIGNvbXBsZXRlbHkgY29tcGF0aWJsZSB3aXRoCitvdGhlciBnZXRvcHQoMSkgaW1wbGVtZW50YXRpb25zLgorCisKK0lOU1RBTExBVElPTgorCitJbnN0YWxsYXRpb24gc2hvdWxkIGJlIHZlcnkgZWFzeS4gSnVzdCB0eXBlICdtYWtlJyB0byBjb21waWxlIHRoZSBzb3VyY2VzLgorSXQgc2hvdWxkIGNvbXBpbGUgY2xlYW5seSwgd2l0aG91dCBhbnkgd2FybmluZ3MsIGJ1dCBldmVuIGlmIGl0IGRvZXMgbm90Cit5b3UgcHJvYmFibHkgZG9uJ3QgaGF2ZSB0byB3b3JyeS4gWW91IG11c3QgdXNlIEdOVSBNYWtlIGFuZCBnY2MsIG9yIHlvdQord2lsbCBoYXZlIHRvIGVkaXQgdGhlIE1ha2VmaWxlLiAKKworVHlwZSAnbWFrZSBpbnN0YWxsJyB0byBpbnN0YWxsIHRoZSBiaW5hcnkgYW5kIHRoZSBtYW51YWwgcGFnZS4gSXQgaW5zdGFsbHMgCitieSBkZWZhdWx0IGluIC91c3IvbG9jYWwvYmluIGFuZCAvdXNyL2xvY2FsL21hbi9tYW4xLCB0byBpbnN0YWxsIGluIC91c3IvYmluIAorYW5kIC91c3IvbWFuL21hbjEgdHJ5ICdtYWtlIGluc3RhbGwgcHJlZml4PS91c3InLgorCitUaGUgZXhhbXBsZSBmaWxlcyBjYW4gYmUgaW5zdGFsbGVkIGluIC91c3IvbG9jYWwvbGliL2dldG9wdCBieSBjYWxsaW5nCisnbWFrZSBpbnN0YWxsX2RvYycuCisKK0lmIHlvdSBkbyBub3QgdHJ1c3QgdGhlIGdldG9wdCgzKSBpbiB5b3VyIGxpYmMsIG9yIGlmIHlvdSBkbyBub3QgdXNlIGEgbGliYword2l0aCB0aGUgR05VIGdldG9wdCgzKSByb3V0aW5lcywgeW91IGNhbiB1c2UgdGhlIGdudSBzb3VyY2VzIGFzIHByb3ZpZGVkIAoraW4gdGhlIGdudSBkaXJlY3RvcnkuIFRyeSAnbWFrZSBMSUJDR0VUT1BUPTAnLiBJZ25vcmUgYW55IGNvbXBpbGUgd2FybmluZ3MuCisKK1lvdSBjYW4gY2hlY2sgd2hldGhlciB0aGUgbmV3IGltcGxlbWVudGF0aW9uIG9mIGdldG9wdCBpcyBmb3VuZCBmaXJzdAoraW4geW91ciBwYXRoIGJ5IGNhbGxpbmcgJ2Jhc2ggdGVzdC5iYXNoJy4KKworCitISUdITElHSFRTCisKK0l0IGNhbiBkbyBhbnl0aGluZyB0aGF0IHRoZSBHTlUgZ2V0b3B0KDMpIHJvdXRpbmVzIGNhbiBkby4KKworSXQgY2FuIGNvcGUgd2l0aCBzcGFjZXMgYW5kIHNoZWxsIG1ldGFjaGFyYWN0ZXJzIHdpdGhpbiBhcmd1bWVudHMuCisKK0l0IGNhbiBwYXJzZSBsb25nIHBhcmFtZXRlcnMuCisKK0l0IGNhbiBzaHVmZmxlIHBhcmFtZXRlcnMsIHNvIHlvdSBjYW4gbWl4IG9wdGlvbnMgYW5kIG90aGVyIHBhcmFtZXRlcnMgb24KK3RoZSBjb21tYW5kLWxpbmUuCisKK0l0IGNhbiBiZSBlYXNpbHkgaWRlbnRpZmllZCBhcyBhbiBlbmhhbmNlZCBnZXRvcHQoMSkgZnJvbSB3aXRoaW4gc2hlbGwgc2NyaXB0cy4KKworSXQgY2FuIHJlcG9ydCBwYXJzZSBlcnJvcnMgYXMgY29taW5nIGZyb20gdGhlIHNoZWxsIHNjcmlwdC4KKworSXQgaXMgZnVsbHkgY29tcGF0aWJsZSB3aXRoIG90aGVyIGdldG9wdCgxKSBpbXBsZW1lbnRhdGlvbnMuCisKK0NPUFlJTkcKKworVGhpcyBwcm9ncmFtIGNvbWVzIHVuZGVyIHRoZSBHTlUgZ2VuZXJhbCBwdWJsaWMgbGljZW5jZSB2ZXJzaW9uIDIuIFNlZSB0aGUgCitmaWxlIENPUFlJTkcgaW5jbHVkZWQgaW4gdGhpcyBwYWNrYWdlLiBOb3RlIHRoYXQgdGhvdWdoIHlvdSBtYXkgZnJlZWx5Citjb3B5IGl0LCBpdCBpcyBjb3B5cmlnaHQgKGMpIDE5OTctMjAwNSBieSBGcm9kbyBMb29pamFhcmQgCis8ZnJvZG9AZnJvZG8ubG9vaWphYXJkLm5hbWU+LgorRmlsZXMgaW4gdGhlIGdudSBkaXJlY3RvcnkgYXJlIGZyb20gZ2xpYmMtMi4wLjQ6IGNvcHlyaWdodCAoQykgMTk4NywgODgsIAorODksIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTUsIDk2LCA5NyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworCitET1dOTE9BRElORworCitZb3UgY2FuIGZpbmQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgcHJvZ3JhbSBhdDoKKyAgaHR0cDovL3NvZnR3YXJlLmZyb2RvLmxvb2lqYWFyZC5uYW1lL2dldG9wdC8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2dldG9wdC9nZXRvcHQtcGFyc2UuYmFzaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2dldG9wdC9nZXRvcHQtcGFyc2UuYmFzaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NjRmYzBhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L2dldG9wdC1wYXJzZS5iYXNoCkBAIC0wLDAgKzEsNDcgQEAKKyMhL2Jpbi9iYXNoCisKKyMgQSBzbWFsbCBleGFtcGxlIHByb2dyYW0gZm9yIHVzaW5nIHRoZSBuZXcgZ2V0b3B0KDEpIHByb2dyYW0uCisjIFRoaXMgcHJvZ3JhbSB3aWxsIG9ubHkgd29yayB3aXRoIGJhc2goMSkKKyMgQW4gc2ltaWxhciBwcm9ncmFtIHVzaW5nIHRoZSB0Y3NoKDEpIHNjcmlwdCBsYW5ndWFnZSBjYW4gYmUgZm91bmQKKyMgYXMgcGFyc2UudGNzaAorCisjIEV4YW1wbGUgaW5wdXQgYW5kIG91dHB1dCAoZnJvbSB0aGUgYmFzaCBwcm9tcHQpOgorIyAuL3BhcnNlLmJhc2ggLWEgcGFyMSAnYW5vdGhlciBhcmcnIC0tYy1sb25nICd3b3chKlw/JyAtY21vcmUgLWIgIiB2ZXJ5IGxvbmcgIgorIyBPcHRpb24gYQorIyBPcHRpb24gYywgbm8gYXJndW1lbnQKKyMgT3B0aW9uIGMsIGFyZ3VtZW50IGBtb3JlJworIyBPcHRpb24gYiwgYXJndW1lbnQgYCB2ZXJ5IGxvbmcgJworIyBSZW1haW5pbmcgYXJndW1lbnRzOgorIyAtLT4gYHBhcjEnCisjIC0tPiBgYW5vdGhlciBhcmcnCisjIC0tPiBgd293ISpcPycKKworIyBOb3RlIHRoYXQgd2UgdXNlIGAiJEAiJyB0byBsZXQgZWFjaCBjb21tYW5kLWxpbmUgcGFyYW1ldGVyIGV4cGFuZCB0byBhIAorIyBzZXBhcmF0ZSB3b3JkLiBUaGUgcXVvdGVzIGFyb3VuZCBgJEAnIGFyZSBlc3NlbnRpYWwhCisjIFdlIG5lZWQgVEVNUCBhcyB0aGUgYGV2YWwgc2V0IC0tJyB3b3VsZCBudWtlIHRoZSByZXR1cm4gdmFsdWUgb2YgZ2V0b3B0LgorVEVNUD1gZ2V0b3B0IC1vIGFiOmM6OiAtLWxvbmcgYS1sb25nLGItbG9uZzosYy1sb25nOjogXAorICAgICAtbiAnZXhhbXBsZS5iYXNoJyAtLSAiJEAiYAorCitpZiBbICQ/ICE9IDAgXSA7IHRoZW4gZWNobyAiVGVybWluYXRpbmcuLi4iID4mMiA7IGV4aXQgMSA7IGZpCisKKyMgTm90ZSB0aGUgcXVvdGVzIGFyb3VuZCBgJFRFTVAnOiB0aGV5IGFyZSBlc3NlbnRpYWwhCitldmFsIHNldCAtLSAiJFRFTVAiCisKK3doaWxlIHRydWUgOyBkbworCWNhc2UgIiQxIiBpbgorCQktYXwtLWEtbG9uZykgZWNobyAiT3B0aW9uIGEiIDsgc2hpZnQgOzsKKwkJLWJ8LS1iLWxvbmcpIGVjaG8gIk9wdGlvbiBiLCBhcmd1bWVudCBcYCQyJyIgOyBzaGlmdCAyIDs7CisJCS1jfC0tYy1sb25nKSAKKwkJCSMgYyBoYXMgYW4gb3B0aW9uYWwgYXJndW1lbnQuIEFzIHdlIGFyZSBpbiBxdW90ZWQgbW9kZSwKKwkJCSMgYW4gZW1wdHkgcGFyYW1ldGVyIHdpbGwgYmUgZ2VuZXJhdGVkIGlmIGl0cyBvcHRpb25hbAorCQkJIyBhcmd1bWVudCBpcyBub3QgZm91bmQuCisJCQljYXNlICIkMiIgaW4KKwkJCQkiIikgZWNobyAiT3B0aW9uIGMsIG5vIGFyZ3VtZW50Ijsgc2hpZnQgMiA7OworCQkJCSopICBlY2hvICJPcHRpb24gYywgYXJndW1lbnQgXGAkMiciIDsgc2hpZnQgMiA7OworCQkJZXNhYyA7OworCQktLSkgc2hpZnQgOyBicmVhayA7OworCQkqKSBlY2hvICJJbnRlcm5hbCBlcnJvciEiIDsgZXhpdCAxIDs7CisJZXNhYworZG9uZQorZWNobyAiUmVtYWluaW5nIGFyZ3VtZW50czoiCitmb3IgYXJnIGRvIGVjaG8gJy0tPiAnIlxgJGFyZyciIDsgZG9uZQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L2dldG9wdC1wYXJzZS50Y3NoIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L2dldG9wdC1wYXJzZS50Y3NoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyNjZkMGUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvZ2V0b3B0LXBhcnNlLnRjc2gKQEAgLTAsMCArMSw3NyBAQAorIyEvYmluL3Rjc2gKKworIyBBIHNtYWxsIGV4YW1wbGUgcHJvZ3JhbSBmb3IgdXNpbmcgdGhlIG5ldyBnZXRvcHQoMSkgcHJvZ3JhbS4KKyMgVGhpcyBwcm9ncmFtIHdpbGwgb25seSB3b3JrIHdpdGggdGNzaCgxKQorIyBBbiBzaW1pbGFyIHByb2dyYW0gdXNpbmcgdGhlIGJhc2goMSkgc2NyaXB0IGxhbmd1YWdlIGNhbiBiZSBmb3VuZAorIyBhcyBwYXJzZS5iYXNoCisKKyMgRXhhbXBsZSBpbnB1dCBhbmQgb3V0cHV0IChmcm9tIHRoZSB0Y3NoIHByb21wdCk6CisjIC4vcGFyc2UudGNzaCAtYSBwYXIxICdhbm90aGVyIGFyZycgLS1jLWxvbmcgJ3dvd1whKlw/JyAtY21vcmUgLWIgIiB2ZXJ5IGxvbmcgIgorIyBPcHRpb24gYQorIyBPcHRpb24gYywgbm8gYXJndW1lbnQKKyMgT3B0aW9uIGMsIGFyZ3VtZW50IGBtb3JlJworIyBPcHRpb24gYiwgYXJndW1lbnQgYCB2ZXJ5IGxvbmcgJworIyBSZW1haW5pbmcgYXJndW1lbnRzOgorIyAtLT4gYHBhcjEnCisjIC0tPiBgYW5vdGhlciBhcmcnCisjIC0tPiBgd293ISpcPycKKworIyBOb3RlIHRoYXQgd2UgaGFkIHRvIGVzY2FwZSB0aGUgZXhjbGFtYXRpb24gbWFyayBpbiB0aGUgd293LWFyZ3VtZW50LiBUaGlzCisjIGlzIF9ub3RfIGEgcHJvYmxlbSB3aXRoIGdldG9wdCwgYnV0IHdpdGggdGhlIHRjc2ggY29tbWFuZCBwYXJzaW5nLiBJZiB5b3UKKyMgd291bGQgZ2l2ZSB0aGUgc2FtZSBsaW5lIGZyb20gdGhlIGJhc2ggcHJvbXB0IChpZS4gY2FsbCAuL3BhcnNlLnRjc2gpLAorIyB5b3UgY291bGQgcmVtb3ZlIHRoZSBleGNsYW1hdGlvbiBtYXJrLgorCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LiBXZSB1c2UgYSB0ZW1wIHZhcmlhYmxlLCB0byBiZSBhYmxlIHRvIGNoZWNrIHRoZQorIyByZXR1cm4gdmFsdWUgb2YgZ2V0b3B0IChldmFsIG51a2VzIGl0KS4gYXJndiBjb250YWlucyB0aGUgY29tbWFuZCBhcmd1bWVudHMKKyMgYXMgYSBsaXN0LiBUaGUgJzpxYCAgY29waWVzIHRoYXQgbGlzdCB3aXRob3V0IGRvaW5nIGFueSBzdWJzdGl0dXRpb25zOgorIyBlYWNoIGVsZW1lbnQgb2YgYXJndiBiZWNvbWVzIGEgc2VwYXJhdGUgYXJndW1lbnQgZm9yIGdldG9wdC4gVGhlIGJyYWNlcworIyBhcmUgbmVlZGVkIGJlY2F1c2UgdGhlIHJlc3VsdCBpcyBhbHNvIGEgbGlzdC4KK3NldCB0ZW1wPShgZ2V0b3B0IC1zIHRjc2ggLW8gYWI6Yzo6IC0tbG9uZyBhLWxvbmcsYi1sb25nOixjLWxvbmc6OiAtLSAkYXJndjpxYCkKK2lmICgkPyAhPSAwKSB0aGVuIAorICBlY2hvICJUZXJtaW5hdGluZy4uLiIgPi9kZXYvc3RkZXJyCisgIGV4aXQgMQorZW5kaWYKKworIyBOb3cgd2UgZG8gdGhlIGV2YWwgcGFydC4gQXMgdGhlIHJlc3VsdCBpcyBhIGxpc3QsIHdlIG5lZWQgYnJhY2VzLiBCdXQgdGhleQorIyBtdXN0IGJlIHF1b3RlZCwgYmVjYXVzZSB0aGV5IG11c3QgYmUgZXZhbHVhdGVkIHdoZW4gdGhlIGV2YWwgaXMgY2FsbGVkLgorIyBUaGUgJ3FgIHN0b3BzIGRvaW5nIGFueSBzaWxseSBzdWJzdGl0dXRpb25zLgorZXZhbCBzZXQgYXJndj1cKCR0ZW1wOnFcKQorCit3aGlsZSAoMSkKKwlzd2l0Y2goJDE6cSkKKwljYXNlIC1hOgorCWNhc2UgLS1hLWxvbmc6CisJCWVjaG8gIk9wdGlvbiBhIiA7IHNoaWZ0IAorCQlicmVha3N3OworCWNhc2UgLWI6CisJY2FzZSAtLWItbG9uZzoKKwkJZWNobyAiT3B0aW9uIGIsIGFyZ3VtZW50ICJcYCQyOnFcJyA7IHNoaWZ0IDsgc2hpZnQKKwkJYnJlYWtzdworCWNhc2UgLWM6CisJY2FzZSAtLWMtbG9uZzoKKwkJIyBjIGhhcyBhbiBvcHRpb25hbCBhcmd1bWVudC4gQXMgd2UgYXJlIGluIHF1b3RlZCBtb2RlLAorCQkjIGFuIGVtcHR5IHBhcmFtZXRlciB3aWxsIGJlIGdlbmVyYXRlZCBpZiBpdHMgb3B0aW9uYWwKKwkJIyBhcmd1bWVudCBpcyBub3QgZm91bmQuCisKKwkJaWYgKCQyOnEgPT0gIiIpIHRoZW4KKwkJCWVjaG8gIk9wdGlvbiBjLCBubyBhcmd1bWVudCIKKwkJZWxzZQorCQkJZWNobyAiT3B0aW9uIGMsIGFyZ3VtZW50ICJcYCQyOnFcJworCQllbmRpZgorCQlzaGlmdDsgc2hpZnQKKwkJYnJlYWtzdworCWNhc2UgLS06CisJCXNoaWZ0CisJCWJyZWFrCisJZGVmYXVsdDoKKwkJZWNobyAiSW50ZXJuYWwgZXJyb3IhIiA7IGV4aXQgMQorCWVuZHN3CitlbmQKKworZWNobyAiUmVtYWluaW5nIGFyZ3VtZW50czoiCisjIGZvcmVhY2ggZWwgKCRhcmd2OnEpIGNyZWF0ZWQgcHJvYmxlbXMgZm9yIHNvbWUgdGNzaC12ZXJzaW9ucyAoYXQgbGVhc3QKKyMgNi4wMikuIFNvIHdlIHVzZSBhbm90aGVyIHNoaWZ0LWxvb3AgaGVyZToKK3doaWxlICgkI2FyZ3YgPiAwKQorCWVjaG8gJy0tPiAnXGAkMTpxXCcKKwlzaGlmdAorZW5kCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvZ2V0b3B0LXRlc3QuYmFzaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2dldG9wdC9nZXRvcHQtdGVzdC5iYXNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0OWUxZjkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvZ2V0b3B0LXRlc3QuYmFzaApAQCAtMCwwICsxLDYgQEAKKyMhL2Jpbi9iYXNoCitpZiBgZ2V0b3B0IC1UID4vZGV2L251bGwgMj4mMWAgOyBbICQ/ID0gNCBdIDsgdGhlbgorICBlY2hvICJFbmhhbmNlZCBnZXRvcHQoMSkiCitlbHNlCisgIGVjaG8gIk9sZCBnZXRvcHQoMSkiCitmaQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L2dldG9wdC10ZXN0LnRjc2ggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvZ2V0b3B0LXRlc3QudGNzaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNjYxZTc2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L2dldG9wdC10ZXN0LnRjc2gKQEAgLTAsMCArMSw3IEBACisjIS9iaW4vdGNzaAorZ2V0b3B0IC1UID4mL2Rldi9udWxsCitpZiAoICRzdGF0dXMgPT0gNCkgdGhlbgorICBlY2hvICJFbmhhbmNlZCBnZXRvcHQoMSkiCitlbHNlCisgIGVjaG8gIk9sZCBnZXRvcHQoMSkiCitlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L2dldG9wdC4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvZ2V0b3B0L2dldG9wdC4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NWRjOTcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvZ2V0b3B0LjEKQEAgLTAsMCArMSw0NjQgQEAKKy5USCBHRVRPUFQgMSAiTWF5IDMxLCAxOTk3IiBMaW51eCAiIgorLlNIIE5BTUUKK2dldG9wdCBcLSBwYXJzZSBjb21tYW5kIG9wdGlvbnMgKGVuaGFuY2VkKQorLlNIIFNZTk9QU0lTCisuQiBnZXRvcHQKKy5JIG9wdHN0cmluZyBwYXJhbWV0ZXJzCisuYnIKKy5CIGdldG9wdAorLlJJIFsgb3B0aW9ucyBdCisuUkIgWyBcLVwtIF0KKy5JIG9wdHN0cmluZyBwYXJhbWV0ZXJzCisuYnIKKy5CIGdldG9wdAorLlJJIFsgb3B0aW9ucyBdCisuQlIgXC1vIHwgXC1cLW9wdGlvbnMKKy5JIG9wdHN0cmluZworLlJJIFsgb3B0aW9ucyBdCisuUkIgWyBcLVwtIF0KKy5JIHBhcmFtZXRlcnMKKy5TSCBERVNDUklQVElPTgorLkIgZ2V0b3B0CitpcyB1c2VkIHRvIGJyZWFrIHVwCisuUkkgKCBwYXJzZSApCitvcHRpb25zIGluIGNvbW1hbmQgbGluZXMgZm9yIGVhc3kgcGFyc2luZyBieQorc2hlbGwgcHJvY2VkdXJlcywgYW5kIHRvIGNoZWNrIGZvciBsZWdhbCBvcHRpb25zLgorSXQgdXNlcyB0aGUKKy5TTSBHTlUKKy5CUiBnZXRvcHQgKDMpCityb3V0aW5lcyB0byBkbyB0aGlzLgorCitUaGUgcGFyYW1ldGVycworLkIgZ2V0b3B0CitpcyBjYWxsZWQgd2l0aCBjYW4gYmUgZGl2aWRlZCBpbnRvIHR3byBwYXJ0czogb3B0aW9ucword2hpY2ggbW9kaWZ5IHRoZSB3YXkgZ2V0b3B0IHdpbGwgcGFyc2UKKy5SSSAoIG9wdGlvbnMKK2FuZAorLkJSIFwtbyB8IFwtXC1vcHRpb25zCisuSSBvcHRzdHJpbmcKK2luIHRoZQorLkJSIFNZTk9QU0lTICksCithbmQgdGhlIHBhcmFtZXRlcnMgd2hpY2ggYXJlIHRvIGJlCitwYXJzZWQKKy5SSSAoIHBhcmFtZXRlcnMKK2luIHRoZQorLkJSIFNZTk9QU0lTICkuCitUaGUgc2Vjb25kIHBhcnQgd2lsbCBzdGFydCBhdCB0aGUgZmlyc3Qgbm9uXC1vcHRpb24gcGFyYW1ldGVyCit0aGF0IGlzIG5vdCBhbiBvcHRpb24gYXJndW1lbnQsIG9yIGFmdGVyIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mCisuUkIgYCBcLVwtICcuCitJZiBubworLlJCIGAgXC1vICcKK29yCisuUkIgYCBcLVwtb3B0aW9ucyAnCitvcHRpb24gaXMgZm91bmQgaW4gdGhlIGZpcnN0IHBhcnQsIHRoZSBmaXJzdAorcGFyYW1ldGVyIG9mIHRoZSBzZWNvbmQgcGFydCBpcyB1c2VkIGFzIHRoZSBzaG9ydCBvcHRpb25zIHN0cmluZy4KKworSWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCisuQiBHRVRPUFRfQ09NUEFUSUJMRQoraXMgc2V0LCBvciBpZiBpdHMgZmlyc3QgcGFyYW1ldGVyCitpcyBub3QgYW4gb3B0aW9uIChkb2VzIG5vdCBzdGFydCB3aXRoIGEKKy5SQiBgIFwtICcsCit0aGlzIGlzIHRoZSBmaXJzdCBmb3JtYXQgaW4gdGhlCisuQlIgU1lOT1BTSVMpLAorLkIgZ2V0b3B0Cit3aWxsIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGF0IG9mIG90aGVyIHZlcnNpb25zIG9mCisuQlIgZ2V0b3B0ICgxKS4KK0l0IHdpbGwgc3RpbGwgZG8gcGFyYW1ldGVyIHNodWZmbGluZyBhbmQgcmVjb2duaXplIG9wdGlvbmFsCithcmd1bWVudHMgKHNlZSBzZWN0aW9uCisuQiBDT01QQVRJQklMSVRZCitmb3IgbW9yZSBpbmZvcm1hdGlvbikuCisKK1RyYWRpdGlvbmFsIGltcGxlbWVudGF0aW9ucyBvZgorLkJSIGdldG9wdCAoMSkKK2FyZSB1bmFibGUgdG8gY29wZSB3aXRoIHdoaXRlc3BhY2UgYW5kIG90aGVyIChzaGVsbFwtc3BlY2lmaWMpIHNwZWNpYWwgY2hhcmFjdGVycworaW4gYXJndW1lbnRzIGFuZCBub25cLW9wdGlvbiBwYXJhbWV0ZXJzLiBUbyBzb2x2ZSB0aGlzIHByb2JsZW0sIHRoaXMKK2ltcGxlbWVudGF0aW9uIGNhbiBnZW5lcmF0ZQorcXVvdGVkIG91dHB1dCB3aGljaCBtdXN0IG9uY2UgYWdhaW4gYmUgaW50ZXJwcmV0ZWQgYnkgdGhlIHNoZWxsICh1c3VhbGx5CitieSB1c2luZyB0aGUKKy5CIGV2YWwKK2NvbW1hbmQpLiBUaGlzIGhhcyB0aGUgZWZmZWN0IG9mIHByZXNlcnZpbmcgdGhvc2UgY2hhcmFjdGVycywgYnV0Cit5b3UgbXVzdCBjYWxsCisuQiBnZXRvcHQKK2luIGEgd2F5IHRoYXQgaXMgbm8gbG9uZ2VyIGNvbXBhdGlibGUgd2l0aCBvdGhlciB2ZXJzaW9ucyAodGhlIHNlY29uZAorb3IgdGhpcmQgZm9ybWF0IGluIHRoZQorLkJSIFNZTk9QU0lTICkuCitUbyBkZXRlcm1pbmUgd2hldGhlciB0aGlzIGVuaGFuY2VkIHZlcnNpb24gb2YKKy5CUiBnZXRvcHQgKDEpCitpcyBpbnN0YWxsZWQsIGEgc3BlY2lhbCB0ZXN0IG9wdGlvbgorLlJCICggXC1UICkKK2NhbiBiZSB1c2VkLgorLlNIIE9QVElPTlMKKy5UUAorLkJSIFwtYSAsICIgXC1cLWFsdGVybmF0aXZlIgorQWxsb3cgbG9uZyBvcHRpb25zIHRvIHN0YXJ0IHdpdGggYSBzaW5nbGUKKy5SQiBgIFwtICcuCisuVFAKKy5CUiBcLWggLCAiIFwtXC1oZWxwIgorT3V0cHV0IGEgc21hbGwgdXNhZ2UgZ3VpZGUgYW5kIGV4aXQgc3VjY2Vzc2Z1bGx5LiBObyBvdGhlciBvdXRwdXQgaXMgZ2VuZXJhdGVkLgorLlRQCisuQlIgXC1sICwgIiBcLVwtbG9uZ29wdGlvbnMgXGZJbG9uZ29wdHNcZlAiCitUaGUgbG9uZyAobXVsdGlcLWNoYXJhY3Rlcikgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkLgorTW9yZSB0aGFuIG9uZSBvcHRpb24gbmFtZQorbWF5IGJlIHNwZWNpZmllZCBhdCBvbmNlLCBieSBzZXBhcmF0aW5nIHRoZSBuYW1lcyB3aXRoIGNvbW1hcy4gVGhpcyBvcHRpb24KK21heSBiZSBnaXZlbiBtb3JlIHRoYW4gb25jZSwgdGhlCisuSSBsb25nb3B0cworYXJlIGN1bXVsYXRpdmUuCitFYWNoIGxvbmcgb3B0aW9uIG5hbWUKK2luCisuSSBsb25nb3B0cworbWF5IGJlIGZvbGxvd2VkIGJ5IG9uZSBjb2xvbiB0byBpbmRpY2F0ZSBpdCBoYXMgYSByZXF1aXJlZCBhcmd1bWVudCwgYW5kIGJ5IHR3byBjb2xvbnMgdG8gaW5kaWNhdGUgaXQgaGFzIGFuIG9wdGlvbmFsIGFyZ3VtZW50LgorLlRQCisuQlIgXC1uICwgIiBcLVwtbmFtZSBcZklwcm9nbmFtZVxmUCIKK1RoZSBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZQorLkJSIGdldG9wdCAoMykKK3JvdXRpbmVzIHdoZW4gaXQgcmVwb3J0cyBlcnJvcnMuIE5vdGUgdGhhdCBlcnJvcnMgb2YKKy5CUiBnZXRvcHQgKDEpCithcmUgc3RpbGwgcmVwb3J0ZWQgYXMgY29taW5nIGZyb20gZ2V0b3B0LgorLlRQCisuQlIgXC1vICwgIiBcLVwtb3B0aW9ucyBcZklzaG9ydG9wdHNcZlAiCitUaGUgc2hvcnQgKG9uZVwtY2hhcmFjdGVyKSBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWQuIElmIHRoaXMgb3B0aW9uIGlzIG5vdAorZm91bmQsIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2YKKy5CIGdldG9wdAordGhhdCBkb2VzIG5vdCBzdGFydCB3aXRoCithCisuUkIgYCBcLSAnCisoYW5kIGlzIG5vdCBhbiBvcHRpb24gYXJndW1lbnQpIGlzIHVzZWQgYXMgdGhlIHNob3J0IG9wdGlvbnMgc3RyaW5nLgorRWFjaCBzaG9ydCBvcHRpb24gY2hhcmFjdGVyCitpbgorLkkgc2hvcnRvcHRzCittYXkgYmUgZm9sbG93ZWQgYnkgb25lIGNvbG9uIHRvIGluZGljYXRlIGl0IGhhcyBhIHJlcXVpcmVkIGFyZ3VtZW50LAorYW5kIGJ5IHR3byBjb2xvbnMgdG8gaW5kaWNhdGUgaXQgaGFzIGFuIG9wdGlvbmFsIGFyZ3VtZW50LgorVGhlIGZpcnN0IGNoYXJhY3RlciBvZiBzaG9ydG9wdHMgbWF5IGJlCisuUkIgYCArICcKK29yCisuUkIgYCBcLSAnCit0byBpbmZsdWVuY2UgdGhlIHdheQorb3B0aW9ucyBhcmUgcGFyc2VkIGFuZCBvdXRwdXQgaXMgZ2VuZXJhdGVkIChzZWUgc2VjdGlvbgorLkIgU0NBTk5JTkcgTU9ERVMKK2ZvciBkZXRhaWxzKS4KKy5UUAorLkJSIFwtcSAsICIgXC1cLXF1aWV0IgorRGlzYWJsZSBlcnJvciByZXBvcnRpbmcgYnkgZ2V0b3B0KDMpLgorLlRQCisuQlIgIFwtUSAsICIgXC1cLXF1aWV0XC1vdXRwdXQiCitEbyBub3QgZ2VuZXJhdGUgbm9ybWFsIG91dHB1dC4gRXJyb3JzIGFyZSBzdGlsbCByZXBvcnRlZCBieQorLkJSIGdldG9wdCAoMyksCit1bmxlc3MgeW91IGFsc28gdXNlCisuSVIgXC1xIC4KKy5UUAorLkJSIFwtcyAsICIgXC1cLXNoZWxsIFxmSXNoZWxsXGZQIgorU2V0IHF1b3RpbmcgY29udmVudGlvbnMgdG8gdGhvc2Ugb2Ygc2hlbGwuIElmIG5vIFwtcyBhcmd1bWVudCBpcyBmb3VuZCwKK3RoZQorLlNNIEJBU0gKK2NvbnZlbnRpb25zIGFyZSB1c2VkLiBWYWxpZCBhcmd1bWVudHMgYXJlIGN1cnJlbnRseQorLlJCIGAgc2ggJworLlJCIGAgYmFzaCAnLAorLlJCIGAgY3NoICcsCithbmQKKy5SQiBgIHRjc2ggJy4KKy5UUAorLkJSIFwtdSAsICIgXC1cLXVucXVvdGVkIgorRG8gbm90IHF1b3RlIHRoZSBvdXRwdXQuIE5vdGUgdGhhdCB3aGl0ZXNwYWNlIGFuZCBzcGVjaWFsIChzaGVsbFwtZGVwZW5kZW50KQorY2hhcmFjdGVycyBjYW4gY2F1c2UgaGF2b2MgaW4gdGhpcyBtb2RlIChsaWtlIHRoZXkgZG8gd2l0aCBvdGhlcgorLkJSIGdldG9wdCAoMSkKK2ltcGxlbWVudGF0aW9ucykuCisuVFAKKy5CUiBcLVQgLCAiIFwtXC10ZXN0IgorVGVzdCBpZiB5b3VyCisuQlIgZ2V0b3B0ICgxKQoraXMgdGhpcyBlbmhhbmNlZCB2ZXJzaW9uIG9yIGFuIG9sZCB2ZXJzaW9uLiBUaGlzIGdlbmVyYXRlcyBubyBvdXRwdXQsCithbmQgc2V0cyB0aGUgZXJyb3Igc3RhdHVzIHRvIDQuIE90aGVyIGltcGxlbWVudGF0aW9ucyBvZgorLkJSIGdldG9wdCAoMSksCithbmQgdGhpcyB2ZXJzaW9uIGlmIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQorLkIgR0VUT1BUX0NPTVBBVElCTEUKK2lzIHNldCwKK3dpbGwgcmV0dXJuCisuUkIgYCBcLVwtICcKK2FuZCBlcnJvciBzdGF0dXMgMC4KKy5UUAorLkJSIFwtViAsICIgXC1cLXZlcnNpb24iCitPdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdCBzdWNjZXNzZnVsbHkuIE5vIG90aGVyIG91dHB1dCBpcyBnZW5lcmF0ZWQuCisuU0ggUEFSU0lORworVGhpcyBzZWN0aW9uIHNwZWNpZmllcyB0aGUgZm9ybWF0IG9mIHRoZSBzZWNvbmQgcGFydCBvZiB0aGUgcGFyYW1ldGVycyBvZgorLkIgZ2V0b3B0CisodGhlCisuSSBwYXJhbWV0ZXJzCitpbiB0aGUKKy5CUiBTWU5PUFNJUyApLgorVGhlIG5leHQgc2VjdGlvbgorLlJCICggT1VUUFVUICkKK2Rlc2NyaWJlcyB0aGUgb3V0cHV0IHRoYXQgaXMKK2dlbmVyYXRlZC4gVGhlc2UgcGFyYW1ldGVycyB3ZXJlIHR5cGljYWxseSB0aGUgcGFyYW1ldGVycyBhIHNoZWxsIGZ1bmN0aW9uCit3YXMgY2FsbGVkIHdpdGguCitDYXJlIG11c3QgYmUgdGFrZW4gdGhhdCBlYWNoIHBhcmFtZXRlciB0aGUgc2hlbGwgZnVuY3Rpb24gd2FzCitjYWxsZWQgd2l0aCBjb3JyZXNwb25kcyB0byBleGFjdGx5IG9uZSBwYXJhbWV0ZXIgaW4gdGhlIHBhcmFtZXRlciBsaXN0IG9mCisuQiBnZXRvcHQKKyhzZWUgdGhlCisuQlIgRVhBTVBMRVMgKS4KK0FsbCBwYXJzaW5nIGlzIGRvbmUgYnkgdGhlIEdOVQorLkJSIGdldG9wdCAoMykKK3JvdXRpbmVzLgorCitUaGUgcGFyYW1ldGVycyBhcmUgcGFyc2VkIGZyb20gbGVmdCB0byByaWdodC4gRWFjaCBwYXJhbWV0ZXIgaXMgY2xhc3NpZmllZCBhcyBhCitzaG9ydCBvcHRpb24sIGEgbG9uZyBvcHRpb24sIGFuIGFyZ3VtZW50IHRvIGFuIG9wdGlvbiwKK29yIGEgbm9uXC1vcHRpb24gcGFyYW1ldGVyLgorCitBIHNpbXBsZSBzaG9ydCBvcHRpb24gaXMgYQorLlJCIGAgXC0gJworZm9sbG93ZWQgYnkgYSBzaG9ydCBvcHRpb24gY2hhcmFjdGVyLiBJZgordGhlIG9wdGlvbiBoYXMgYSByZXF1aXJlZCBhcmd1bWVudCwgaXQgbWF5IGJlIHdyaXR0ZW4gZGlyZWN0bHkgYWZ0ZXIgdGhlIG9wdGlvbgorY2hhcmFjdGVyIG9yIGFzIHRoZSBuZXh0IHBhcmFtZXRlciAoaWUuIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlIG9uIHRoZQorY29tbWFuZCBsaW5lKS4gSWYgdGhlCitvcHRpb24gaGFzIGFuIG9wdGlvbmFsIGFyZ3VtZW50LCBpdCBtdXN0IGJlIHdyaXR0ZW4gZGlyZWN0bHkgYWZ0ZXIgdGhlCitvcHRpb24gY2hhcmFjdGVyIGlmIHByZXNlbnQuCisKK0l0IGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkgc2V2ZXJhbCBzaG9ydCBvcHRpb25zIGFmdGVyIG9uZQorLlJCIGAgXC0gJywKK2FzIGxvbmcgYXMgYWxsIChleGNlcHQgcG9zc2libHkgdGhlIGxhc3QpIGRvIG5vdCBoYXZlIHJlcXVpcmVkIG9yIG9wdGlvbmFsCithcmd1bWVudHMuCisKK0EgbG9uZyBvcHRpb24gbm9ybWFsbHkgYmVnaW5zIHdpdGgKKy5SQiBgIFwtXC0gJworZm9sbG93ZWQgYnkgdGhlIGxvbmcgb3B0aW9uIG5hbWUuCitJZiB0aGUgb3B0aW9uIGhhcyBhIHJlcXVpcmVkIGFyZ3VtZW50LCBpdCBtYXkgYmUgd3JpdHRlbiBkaXJlY3RseSBhZnRlcgordGhlIGxvbmcgb3B0aW9uIG5hbWUsIHNlcGFyYXRlZCBieQorLlJCIGAgPSAnLAorb3IgYXMgdGhlIG5leHQgYXJndW1lbnQgKGllLiBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZSBvbiB0aGUgY29tbWFuZCBsaW5lKS4KK0lmIHRoZSBvcHRpb24gaGFzIGFuIG9wdGlvbmFsIGFyZ3VtZW50LCBpdCBtdXN0CitiZSB3cml0dGVuIGRpcmVjdGx5IGFmdGVyIHRoZSBsb25nIG9wdGlvbiBuYW1lLCBzZXBhcmF0ZWQgYnkKKy5SQiBgID0gJywKK2lmIHByZXNlbnQgKGlmIHlvdSBhZGQgdGhlCisuUkIgYCA9ICcKK2J1dCBub3RoaW5nIGJlaGluZCBpdCwgaXQgaXMgaW50ZXJwcmV0ZWQKK2FzIGlmIG5vIGFyZ3VtZW50IHdhcyBwcmVzZW50OyB0aGlzIGlzIGEgc2xpZ2h0IGJ1Zywgc2VlIHRoZQorLkJSIEJVR1MgKS4KK0xvbmcgb3B0aW9ucyBtYXkgYmUgYWJicmV2aWF0ZWQsIGFzIGxvbmcgYXMgdGhlIGFiYnJldmlhdGlvbiBpcyBub3QKK2FtYmlndW91cy4KKworRWFjaCBwYXJhbWV0ZXIgbm90IHN0YXJ0aW5nIHdpdGggYQorLlJCIGAgXC0gJywKK2FuZCBub3QgYSByZXF1aXJlZCBhcmd1bWVudCBvZgorYSBwcmV2aW91cyBvcHRpb24sIGlzIGEgbm9uXC1vcHRpb24gcGFyYW1ldGVyLiBFYWNoIHBhcmFtZXRlciBhZnRlcgorYQorLlJCIGAgXC1cLSAnCitwYXJhbWV0ZXIgaXMgYWx3YXlzIGludGVycHJldGVkIGFzIGEgbm9uXC1vcHRpb24gcGFyYW1ldGVyLgorSWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCisuQiBQT1NJWExZX0NPUlJFQ1QKK2lzIHNldCwgb3IgaWYgdGhlIHNob3J0CitvcHRpb24gc3RyaW5nIHN0YXJ0ZWQgd2l0aCBhCisuUkIgYCArICcsCithbGwgcmVtYWluaW5nIHBhcmFtZXRlcnMgYXJlIGludGVycHJldGVkCithcyBub25cLW9wdGlvbiBwYXJhbWV0ZXJzIGFzIHNvb24gYXMgdGhlIGZpcnN0IG5vblwtb3B0aW9uIHBhcmFtZXRlciBpcworZm91bmQuCisuU0ggT1VUUFVUCitPdXRwdXQgaXMgZ2VuZXJhdGVkIGZvciBlYWNoIGVsZW1lbnQgZGVzY3JpYmVkIGluIHRoZSBwcmV2aW91cyBzZWN0aW9uLgorT3V0cHV0IGlzIGRvbmUKK2luIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBlbGVtZW50cyBhcmUgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCwgZXhjZXB0Citmb3Igbm9uXC1vcHRpb24gcGFyYW1ldGVycy4gT3V0cHV0IGNhbiBiZSBkb25lIGluCisuSSBjb21wYXRpYmxlCisuUkkgKCB1bnF1b3RlZCApCittb2RlLCBvciBpbiBzdWNoIHdheSB0aGF0IHdoaXRlc3BhY2UgYW5kIG90aGVyIHNwZWNpYWwgY2hhcmFjdGVycyB3aXRoaW4KK2FyZ3VtZW50cyBhbmQgbm9uXC1vcHRpb24gcGFyYW1ldGVycyBhcmUgcHJlc2VydmVkIChzZWUKKy5CUiBRVU9USU5HICkuCitXaGVuIHRoZSBvdXRwdXQgaXMgcHJvY2Vzc2VkIGluIHRoZSBzaGVsbCBzY3JpcHQsIGl0IHdpbGwgc2VlbSB0byBiZQorY29tcG9zZWQgb2YgZGlzdGluY3QgZWxlbWVudHMgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIG9uZSBieSBvbmUgKGJ5IHVzaW5nIHRoZQorc2hpZnQgY29tbWFuZCBpbiBtb3N0IHNoZWxsIGxhbmd1YWdlcykuIFRoaXMgaXMgaW1wZXJmZWN0IGluIHVucXVvdGVkIG1vZGUsCithcyBlbGVtZW50cyBjYW4gYmUgc3BsaXQgYXQgdW5leHBlY3RlZCBwbGFjZXMgaWYgdGhleSBjb250YWluIHdoaXRlc3BhY2UKK29yIHNwZWNpYWwgY2hhcmFjdGVycy4KKworSWYgdGhlcmUgYXJlIHByb2JsZW1zIHBhcnNpbmcgdGhlIHBhcmFtZXRlcnMsIGZvciBleGFtcGxlIGJlY2F1c2UgYQorcmVxdWlyZWQgYXJndW1lbnQgaXMgbm90IGZvdW5kIG9yIGFuIG9wdGlvbiBpcyBub3QgcmVjb2duaXplZCwgYW4gZXJyb3IKK3dpbGwgYmUgcmVwb3J0ZWQgb24gc3RkZXJyLCB0aGVyZSB3aWxsIGJlIG5vIG91dHB1dCBmb3IgdGhlIG9mZmVuZGluZworZWxlbWVudCwgYW5kIGEgbm9uXC16ZXJvIGVycm9yIHN0YXR1cyBpcyByZXR1cm5lZC4KKworRm9yIGEgc2hvcnQgb3B0aW9uLCBhIHNpbmdsZQorLlJCIGAgXC0gJworYW5kIHRoZSBvcHRpb24gY2hhcmFjdGVyIGFyZSBnZW5lcmF0ZWQKK2FzIG9uZSBwYXJhbWV0ZXIuIElmIHRoZSBvcHRpb24gaGFzIGFuIGFyZ3VtZW50LCB0aGUgbmV4dAorcGFyYW1ldGVyIHdpbGwgYmUgdGhlIGFyZ3VtZW50LiBJZiB0aGUgb3B0aW9uIHRha2VzIGFuIG9wdGlvbmFsIGFyZ3VtZW50LAorYnV0IG5vbmUgd2FzIGZvdW5kLCB0aGUgbmV4dCBwYXJhbWV0ZXIgd2lsbCBiZSBnZW5lcmF0ZWQgYnV0IGJlIGVtcHR5IGluCitxdW90aW5nIG1vZGUsCitidXQgbm8gc2Vjb25kIHBhcmFtZXRlciB3aWxsIGJlIGdlbmVyYXRlZCBpbiB1bnF1b3RlZCAoY29tcGF0aWJsZSkgbW9kZS4KK05vdGUgdGhhdCBtYW55IG90aGVyCisuQlIgZ2V0b3B0ICgxKQoraW1wbGVtZW50YXRpb25zIGRvIG5vdCBzdXBwb3J0IG9wdGlvbmFsIGFyZ3VtZW50cy4KKworSWYgc2V2ZXJhbCBzaG9ydCBvcHRpb25zIHdlcmUgc3BlY2lmaWVkIGFmdGVyIGEgc2luZ2xlCisuUkIgYCBcLSAnLAorZWFjaCB3aWxsIGJlIHByZXNlbnQgaW4gdGhlIG91dHB1dCBhcyBhIHNlcGFyYXRlIHBhcmFtZXRlci4KKworRm9yIGEgbG9uZyBvcHRpb24sCisuUkIgYCBcLVwtICcKK2FuZCB0aGUgZnVsbCBvcHRpb24gbmFtZSBhcmUgZ2VuZXJhdGVkIGFzIG9uZQorcGFyYW1ldGVyLiBUaGlzIGlzIGRvbmUgcmVnYXJkbGVzcyB3aGV0aGVyIHRoZSBvcHRpb24gd2FzIGFiYnJldmlhdGVkIG9yCitzcGVjaWZpZWQgd2l0aCBhIHNpbmdsZQorLlJCIGAgXC0gJworaW4gdGhlIGlucHV0LiBBcmd1bWVudHMgYXJlIGhhbmRsZWQgYXMgd2l0aCBzaG9ydCBvcHRpb25zLgorCitOb3JtYWxseSwgbm8gbm9uXC1vcHRpb24gcGFyYW1ldGVycyBvdXRwdXQgaXMgZ2VuZXJhdGVkIHVudGlsIGFsbCBvcHRpb25zCithbmQgdGhlaXIgYXJndW1lbnRzIGhhdmUgYmVlbiBnZW5lcmF0ZWQuIFRoZW4KKy5SQiBgIFwtXC0gJworaXMgZ2VuZXJhdGVkIGFzIGEKK3NpbmdsZSBwYXJhbWV0ZXIsIGFuZCBhZnRlciBpdCB0aGUgbm9uXC1vcHRpb24gcGFyYW1ldGVycyBpbiB0aGUgb3JkZXIKK3RoZXkgd2VyZSBmb3VuZCwgZWFjaCBhcyBhIHNlcGFyYXRlIHBhcmFtZXRlci4KK09ubHkgaWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgc2hvcnQgb3B0aW9ucyBzdHJpbmcgd2FzIGEKKy5SQiBgIFwtICcsCitub25cLW9wdGlvbiBwYXJhbWV0ZXIgb3V0cHV0IGlzIGdlbmVyYXRlZCBhdCB0aGUgcGxhY2UgdGhleSBhcmUgZm91bmQgaW4gdGhlCitpbnB1dCAodGhpcyBpcyBub3Qgc3VwcG9ydGVkIGlmIHRoZSBmaXJzdCBmb3JtYXQgb2YgdGhlCisuQiBTWU5PUFNJUworaXMgdXNlZDsgaW4gdGhhdCBjYXNlIGFsbCBwcmVjZWRpbmcgb2NjdXJyZW5jZXMgb2YKKy5SQiBgIFwtICcKK2FuZAorLlJCIGAgKyAnCithcmUgaWdub3JlZCkuCisuU0ggUVVPVElORworSW4gY29tcGF0aWJsZSBtb2RlLCB3aGl0ZXNwYWNlIG9yICdzcGVjaWFsJyBjaGFyYWN0ZXJzIGluIGFyZ3VtZW50cyBvcgorbm9uXC1vcHRpb24gcGFyYW1ldGVycyBhcmUgbm90IGhhbmRsZWQgY29ycmVjdGx5LiBBcyB0aGUgb3V0cHV0IGlzCitmZWQgdG8gdGhlIHNoZWxsIHNjcmlwdCwgdGhlIHNjcmlwdCBkb2VzIG5vdCBrbm93IGhvdyBpdCBpcyBzdXBwb3NlZCB0byBicmVhawordGhlIG91dHB1dCBpbnRvIHNlcGFyYXRlIHBhcmFtZXRlcnMuICBUbyBjaXJjdW12ZW50IHRoaXMKK3Byb2JsZW0sIHRoaXMgaW1wbGVtZW50YXRpb24gb2ZmZXJzIHF1b3RpbmcuIFRoZSBpZGVhIGlzIHRoYXQgb3V0cHV0CitpcyBnZW5lcmF0ZWQgd2l0aCBxdW90ZXMgYXJvdW5kIGVhY2ggcGFyYW1ldGVyLiBXaGVuIHRoaXMgb3V0cHV0IGlzIG9uY2UKK2FnYWluIGZlZCB0byB0aGUgc2hlbGwgKHVzdWFsbHkgYnkgYSBzaGVsbAorLkIgZXZhbAorY29tbWFuZCksIGl0IGlzIHNwbGl0IGNvcnJlY3RseSBpbnRvIHNlcGFyYXRlIHBhcmFtZXRlcnMuCisKK1F1b3RpbmcgaXMgbm90IGVuYWJsZWQgaWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCisuQiBHRVRPUFRfQ09NUEFUSUJMRQoraXMgc2V0LCBpZiB0aGUgZmlyc3QgZm9ybSBvZiB0aGUKKy5CIFNZTk9QU0lTCitpcyB1c2VkLCBvciBpZiB0aGUgb3B0aW9uCisuUkIgYCBcLXUgJworaXMgZm91bmQuCisKK0RpZmZlcmVudCBzaGVsbHMgdXNlIGRpZmZlcmVudCBxdW90aW5nIGNvbnZlbnRpb25zLiBZb3UgY2FuIHVzZSB0aGUKKy5SQiBgIFwtcyAnCitvcHRpb24gdG8gc2VsZWN0IHRoZSBzaGVsbCB5b3UgYXJlIHVzaW5nLiBUaGUgZm9sbG93aW5nIHNoZWxscyBhcmUKK2N1cnJlbnRseSBzdXBwb3J0ZWQ6CisuUkIgYCBzaCAnLAorLlJCIGAgYmFzaCAnLAorLlJCIGAgY3NoICcKK2FuZAorLlJCIGAgdGNzaCAnLgorQWN0dWFsbHksIG9ubHkgdHdvIGBmbGF2b3JzJyBhcmUgZGlzdGluZ3Vpc2hlZDogc2hcLWxpa2UgcXVvdGluZyBjb252ZW50aW9ucworYW5kIGNzaFwtbGlrZSBxdW90aW5nIGNvbnZlbnRpb25zLiBDaGFuY2VzIGFyZSB0aGF0IGlmIHlvdSB1c2UgYW5vdGhlciBzaGVsbAorc2NyaXB0IGxhbmd1YWdlLCBvbmUgb2YgdGhlc2UgZmxhdm9ycyBjYW4gc3RpbGwgYmUgdXNlZC4KKworLlNIICJTQ0FOTklORyBNT0RFUyIKK1RoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHNob3J0IG9wdGlvbnMgc3RyaW5nIG1heSBiZSBhCisuUkIgYCBcLSAnCitvciBhCisuUkIgYCArICcKK3RvIGluZGljYXRlIGEgc3BlY2lhbCBzY2FubmluZyBtb2RlLiBJZiB0aGUgZmlyc3QgY2FsbGluZyBmb3JtCitpbiB0aGUKKy5CIFNZTk9QU0lTCitpcyB1c2VkIHRoZXkgYXJlIGlnbm9yZWQ7IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQorLkIgUE9TSVhMWV9DT1JSRUNUCitpcyBzdGlsbCBleGFtaW5lZCwgdGhvdWdoLgorCitJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzCisuUkIgYCArICcsCitvciBpZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKy5CIFBPU0lYTFlfQ09SUkVDVAoraXMgc2V0LCBwYXJzaW5nIHN0b3BzIGFzIHNvb24gYXMgdGhlIGZpcnN0IG5vblwtb3B0aW9uIHBhcmFtZXRlcgorKGllLiBhIHBhcmFtZXRlciB0aGF0IGRvZXMgbm90IHN0YXJ0IHdpdGggYQorLlJCIGAgXC0gJykKK2lzIGZvdW5kIHRoYXQKK2lzIG5vdCBhbiBvcHRpb24gYXJndW1lbnQuIFRoZSByZW1haW5pbmcgcGFyYW1ldGVycyBhcmUgYWxsIGludGVycHJldGVkIGFzCitub25cLW9wdGlvbiBwYXJhbWV0ZXJzLgorCitJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIGEKKy5SQiBgIFwtICcsCitub25cLW9wdGlvbiBwYXJhbWV0ZXJzIGFyZSBvdXRwdXR0ZWQgYXQgdGhlIHBsYWNlIHdoZXJlIHRoZXkgYXJlIGZvdW5kOyBpbiBub3JtYWwKK29wZXJhdGlvbiwgdGhleSBhcmUgYWxsIGNvbGxlY3RlZCBhdCB0aGUgZW5kIG9mIG91dHB1dCBhZnRlciBhCisuUkIgYCBcLVwtICcKK3BhcmFtZXRlciBoYXMgYmVlbiBnZW5lcmF0ZWQuIE5vdGUgdGhhdCB0aGlzCisuUkIgYCBcLVwtICcKK3BhcmFtZXRlciBpcyBzdGlsbCBnZW5lcmF0ZWQsIGJ1dCBpdCB3aWxsIGFsd2F5cyBiZSB0aGUgbGFzdCBwYXJhbWV0ZXIgaW4KK3RoaXMgbW9kZS4KKy5TSCBDT01QQVRJQklMSVRZCitUaGlzIHZlcnNpb24gb2YKKy5CUiBnZXRvcHQgKDEpCitpcyB3cml0dGVuIHRvIGJlIGFzIGNvbXBhdGlibGUgYXMgcG9zc2libGUgdG8KK290aGVyIHZlcnNpb25zLiBVc3VhbGx5IHlvdSBjYW4ganVzdCByZXBsYWNlIHRoZW0gd2l0aCB0aGlzIHZlcnNpb24KK3dpdGhvdXQgYW55IG1vZGlmaWNhdGlvbnMsIGFuZCB3aXRoIHNvbWUgYWR2YW50YWdlcy4KKworSWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyIG9mIGdldG9wdCBpcyBub3QgYQorLlJCIGAgXC0gJywKK2dldG9wdCBnb2VzIGludG8gY29tcGF0aWJpbGl0eSBtb2RlLiBJdCB3aWxsIGludGVycHJldCBpdHMgZmlyc3QgcGFyYW1ldGVyIGFzCit0aGUgc3RyaW5nIG9mIHNob3J0IG9wdGlvbnMsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRzIHdpbGwgYmUgcGFyc2VkLiBJdAord2lsbCBzdGlsbCBkbyBwYXJhbWV0ZXIgc2h1ZmZsaW5nIChpZS4gYWxsIG5vblwtb3B0aW9uIHBhcmFtZXRlcnMgYXJlIG91dHB1dHRlZAorYXQgdGhlIGVuZCksIHVubGVzcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKy5CIFBPU0lYTFlfQ09SUkVDVAoraXMgc2V0LgorCitUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKy5CIEdFVE9QVF9DT01QQVRJQkxFCitmb3JjZXMKKy5CIGdldG9wdAoraW50byBjb21wYXRpYmlsaXR5IG1vZGUuIFNldHRpbmcgYm90aCB0aGlzIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZAorLkIgUE9TSVhMWV9DT1JSRUNUCitvZmZlcnMgMTAwJSBjb21wYXRpYmlsaXR5IGZvciBgZGlmZmljdWx0JyBwcm9ncmFtcy4gVXN1YWxseSwgdGhvdWdoLAorbmVpdGhlciBpcyBuZWVkZWQuCisKK0luIGNvbXBhdGliaWxpdHkgbW9kZSwgbGVhZGluZworLlJCIGAgXC0gJworYW5kCisuUkIgYCArICcKK2NoYXJhY3RlcnMgaW4gdGhlIHNob3J0IG9wdGlvbnMgc3RyaW5nIGFyZSBpZ25vcmVkLgorLlNIIFJFVFVSTiBDT0RFUworLkIgZ2V0b3B0CityZXR1cm5zIGVycm9yIGNvZGUKKy5CIDAKK2ZvciBzdWNjZXNzZnVsIHBhcnNpbmcsCisuQiAxCitpZgorLkJSIGdldG9wdCAoMykKK3JldHVybnMgZXJyb3JzLAorLkIgMgoraWYgaXQgZG9lcyBub3QgdW5kZXJzdGFuZCBpdHMgb3duIHBhcmFtZXRlcnMsCisuQiAzCitpZiBhbiBpbnRlcm5hbCBlcnJvciBvY2N1cnMgbGlrZSBvdXRcLW9mXC1tZW1vcnksIGFuZAorLkIgNAoraWYgaXQgaXMgY2FsbGVkIHdpdGgKKy5CUiBcLVQgLgorLlNIIEVYQU1QTEVTCitFeGFtcGxlIHNjcmlwdHMgZm9yIChiYSlzaCBhbmQgKHQpY3NoIGFyZSBwcm92aWRlZCB3aXRoIHRoZQorLkJSIGdldG9wdCAoMSkKK2Rpc3RyaWJ1dGlvbiwgYW5kIGFyZSBvcHRpb25hbGx5IGluc3RhbGxlZCBpbgorLkJSIC91c3Ivc2hhcmUvZ2V0b3B0IC4KKworLlNIIEVOVklST05NRU5UCisuSVAgUE9TSVhMWV9DT1JSRUNUCitUaGlzIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIGV4YW1pbmVkIGJ5IHRoZQorLkJSIGdldG9wdCAoMykKK3JvdXRpbmVzLgorSWYgaXQgaXMgc2V0LCBwYXJzaW5nIHN0b3BzIGFzIHNvb24gYXMgYSBwYXJhbWV0ZXIKK2lzIGZvdW5kIHRoYXQgaXMgbm90IGFuIG9wdGlvbiBvciBhbiBvcHRpb24gYXJndW1lbnQuIEFsbCByZW1haW5pbmcKK3BhcmFtZXRlcnMgYXJlIGFsc28gaW50ZXJwcmV0ZWQgYXMgbm9uXC1vcHRpb24gcGFyYW1ldGVycywgcmVnYXJkbGVzcword2hldGhlciB0aGV5IHN0YXJ0IHdpdGggYQorLlJCIGAgXC0gJy4KKy5JUCBHRVRPUFRfQ09NUEFUSUJMRQorRm9yY2VzCisuQiBnZXRvcHQKK3RvIHVzZSB0aGUgZmlyc3QgY2FsbGluZyBmb3JtYXQgYXMgc3BlY2lmaWVkIGluIHRoZQorLkJSIFNZTk9QU0lTIC4KKy5TSCBCVUdTCisuQlIgZ2V0b3B0ICgzKQorY2FuIHBhcnNlIGxvbmcgb3B0aW9ucyB3aXRoIG9wdGlvbmFsIGFyZ3VtZW50cyB0aGF0IGFyZSBnaXZlbiBhbiBlbXB0eSBvcHRpb25hbAorYXJndW1lbnQgKGJ1dCBjYW4gbm90IGRvIHRoaXMgZm9yIHNob3J0IG9wdGlvbnMpLiBUaGlzCisuQlIgZ2V0b3B0ICgxKQordHJlYXRzIG9wdGlvbmFsIGFyZ3VtZW50cyB0aGF0IGFyZSBlbXB0eSBhcyBpZiB0aGV5IHdlcmUgbm90IHByZXNlbnQuCisKK1RoZSBzeW50YXggaWYgeW91IGRvIG5vdCB3YW50IGFueSBzaG9ydCBvcHRpb24gdmFyaWFibGVzIGF0IGFsbCBpcworbm90IHZlcnkgaW50dWl0aXZlICh5b3UgaGF2ZSB0byBzZXQgdGhlbSBleHBsaWNpdGx5IHRvIHRoZSBlbXB0eQorc3RyaW5nKS4KKworLlNIIEFVVEhPUgorRnJvZG8gTG9vaWphYXJkIDxmcm9kb0Bmcm9kby5sb29pamFhcmQubmFtZT4KKy5TSCAiU0VFIEFMU08iCisuQlIgZ2V0b3B0ICgzKSwKKy5CUiBiYXNoICgxKSwKKy5CUiB0Y3NoICgxKS4KKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBnZXRvcHQgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvZ2V0b3B0LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9nZXRvcHQvZ2V0b3B0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmJjZmIwNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2dldG9wdC9nZXRvcHQuYwpAQCAtMCwwICsxLDQ1OSBAQAorLyoKKyAgICBnZXRvcHQuYyAtIEVuaGFuY2VkIGltcGxlbWVudGF0aW9uIG9mIEJTRCBnZXRvcHQoMSkKKyAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNSBGcm9kbyBMb29pamFhcmQgPGZyb2RvQGZyb2RvLmxvb2lqYWFyZC5uYW1lPgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisqLworCisvKiAKKyAqIFZlcnNpb24gMS4wLWI0OiBUdWUgU2VwIDIzIDE5OTcuIEZpcnN0IHB1YmxpYyByZWxlYXNlLgorICogVmVyc2lvbiAxLjA6IFdlZCBOb3YgMTkgMTk5Ny4gCisgKiAgIEJ1bXBlZCB1cCB0aGUgdmVyc2lvbiBudW1iZXIgdG8gMS4wCisgKiAgIEZpeGVkIG1pbm9yIHR5cG8gKENTSCBpbnN0ZWFkIG9mIFRDU0gpCisgKiBWZXJzaW9uIDEuMC4xOiBUdWUgSnVuIDMgMTk5OAorICogICBGaXhlZCBzaXplb2YgaW5zdGVhZCBvZiBzdHJsZW4gYnVnCisgKiAgIEJ1bXBlZCB1cCB0aGUgdmVyc2lvbiBudW1iZXIgdG8gMS4wLjEKKyAqIFZlcnNpb24gMS4wLjI6IFRodSBKdW4gMTEgMTk5OCAobm90IHByZXNlbnQpCisgKiAgIEZpeGVkIGdjYy0yLjguMSB3YXJuaW5ncworICogICBGaXhlZCAtLXZlcnNpb24vLVYgb3B0aW9uIChub3QgcHJlc2VudCkKKyAqIFZlcnNpb24gMS4wLjU6IFR1ZSBKdW4gMjIgMTk5OQorICogICBNYWtlIC11IG9wdGlvbiB3b3JrIChub3QgcHJlc2VudCkKKyAqIFZlcnNpb24gMS4wLjY6IFR1ZSBKdW4gMjcgMjAwMAorICogICBObyBpbXBvcnRhbnQgY2hhbmdlcworICogVmVyc2lvbiAxLjEuMDogVHVlIEp1biAzMCAyMDAwCisgKiAgIEFkZGVkIE5MUyBzdXBwb3J0IChwYXJ0bHkgd3JpdHRlbiBieSBBcmthZGl1c3ogTWk8QjY+a2lld2ljeiAKKyAqICAgICA8bWlzaWVrQHBsZC5vcmcucGw+KQorICogVmVyc2lvbiAxLjEuNDogTW9uIE5vdiA3IDIwMDUKKyAqICAgRml4ZWQgYSBmZXcgdHlwZSdzIGluIHRoZSBtYW5wYWdlCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKworI2luY2x1ZGUgIm5scy5oIgorCisvKiBOT05fT1BUIGlzIHRoZSBjb2RlIHRoYXQgaXMgcmV0dXJuZWQgd2hlbiBhIG5vbi1vcHRpb24gaXMgZm91bmQgaW4gJysnIAorICAgbW9kZSAqLworI2RlZmluZSBOT05fT1BUIDEKKy8qIExPTkdfT1BUIGlzIHRoZSBjb2RlIHRoYXQgaXMgcmV0dXJuZWQgd2hlbiBhIGxvbmcgb3B0aW9uIGlzIGZvdW5kLiAqLworI2RlZmluZSBMT05HX09QVCAyCisKKy8qIFRoZSBzaGVsbHMgcmVjb2duaXplZC4gKi8KK3R5cGVkZWYgZW51bSB7QkFTSCxUQ1NIfSBzaGVsbF90OworCisKKy8qIFNvbWUgZ2xvYmFsIHZhcmlhYmxlcyB0aGF0IHRlbGxzIHVzIGhvdyB0byBwYXJzZS4gKi8KK3NoZWxsX3Qgc2hlbGw9QkFTSDsgLyogVGhlIHNoZWxsIHdlIGdlbmVyYXRlIG91dHB1dCBmb3IuICovCitpbnQgcXVpZXRfZXJyb3JzPTA7IC8qIDAgaXMgbm90IHF1aWV0LiAqLworaW50IHF1aWV0X291dHB1dD0wOyAvKiAwIGlzIG5vdCBxdWlldC4gKi8KK2ludCBxdW90ZT0xOyAvKiAxIGlzIGRvIHF1b3RlLiAqLworaW50IGFsdGVybmF0aXZlPTA7IC8qIDAgaXMgZ2V0b3B0X2xvbmcsIDEgaXMgZ2V0b3B0X2xvbmdfb25seSAqLworCisvKiBGdW5jdGlvbiBwcm90b3R5cGVzICovCit2b2lkICpvdXJfbWFsbG9jKHNpemVfdCBzaXplKTsKK3ZvaWQgKm91cl9yZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpOworY29uc3QgY2hhciAqbm9ybWFsaXplKGNvbnN0IGNoYXIgKmFyZyk7CitpbnQgZ2VuZXJhdGVfb3V0cHV0KGNoYXIgKiBhcmd2W10saW50IGFyZ2MsY29uc3QgY2hhciAqb3B0c3RyLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpsb25nb3B0cyk7CitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKTsKK3ZvaWQgcGFyc2VfZXJyb3IoY29uc3QgY2hhciAqbWVzc2FnZSk7Cit2b2lkIGFkZF9sb25nX29wdGlvbnMoY2hhciAqb3B0aW9ucyk7Cit2b2lkIGFkZF9sb25nb3B0KGNvbnN0IGNoYXIgKm5hbWUsaW50IGhhc19hcmcpOwordm9pZCBwcmludF9oZWxwKHZvaWQpOwordm9pZCBzZXRfc2hlbGwoY29uc3QgY2hhciAqbmV3X3NoZWxsKTsKK3ZvaWQgc2V0X2luaXRpYWxfc2hlbGwodm9pZCk7CisKK3ZvaWQgKm91cl9tYWxsb2Moc2l6ZV90IHNpemUpCit7CisJdm9pZCAqcmV0PW1hbGxvYyhzaXplKTsKKwlpZiAoISByZXQpIHsKKwkJZnByaW50ZihzdGRlcnIsXygiJXM6IE91dCBvZiBtZW1vcnkhXG4iKSwiZ2V0b3B0Iik7CisJCWV4aXQoMyk7CisJfQorCXJldHVybihyZXQpOworfQorCit2b2lkICpvdXJfcmVhbGxvYyh2b2lkICpwdHIsIHNpemVfdCBzaXplKQoreworCXZvaWQgKnJldD1yZWFsbG9jKHB0cixzaXplKTsKKwlpZiAoISByZXQgJiYgc2l6ZSkgeworCQlmcHJpbnRmKHN0ZGVycixfKCIlczogT3V0IG9mIG1lbW9yeSFcbiIpLCJnZXRvcHQiKTsKKwkJZXhpdCgzKTsKKwl9CisJcmV0dXJuKHJldCk7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uICdub3JtYWxpemVzJyBhIHNpbmdsZSBhcmd1bWVudDogaXQgcHV0cyBzaW5nbGUgcXVvdGVzIGFyb3VuZAorICogaXQgYW5kIGVzY2FwZXMgb3RoZXIgc3BlY2lhbCBjaGFyYWN0ZXJzLiBJZiBxdW90ZSBpcyBmYWxzZSwgaXQganVzdAorICogcmV0dXJucyBpdHMgYXJndW1lbnQuCisgKiBCYXNoIG9ubHkgbmVlZHMgc3BlY2lhbCB0cmVhdG1lbnQgZm9yIHNpbmdsZSBxdW90ZXM7IHRjc2ggYWxzbyByZWNvZ25pemVzCisgKiBleGNsYW1hdGlvbiBtYXJrcyB3aXRoaW4gc2luZ2xlIHF1b3RlcywgYW5kIG51a2VzIHdoaXRlc3BhY2UuCisgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBwb2ludGVyIHRvIGEgYnVmZmVyIHRoYXQgaXMgb3ZlcndyaXR0ZW4gYnkgCisgKiBlYWNoIGNhbGwuCisgKi8KK2NvbnN0IGNoYXIgKm5vcm1hbGl6ZShjb25zdCBjaGFyICphcmcpCit7CisJc3RhdGljIGNoYXIgKkJVRkZFUj1OVUxMOworCWNvbnN0IGNoYXIgKmFyZ3B0cj1hcmc7CisJY2hhciAqYnVmcHRyOworCisJZnJlZShCVUZGRVIpOworCisJaWYgKCFxdW90ZSkgeyAvKiBKdXN0IGNvcHkgYXJnICovCisJCUJVRkZFUj1vdXJfbWFsbG9jKHN0cmxlbihhcmcpKzEpOworCQkJCisJCXN0cmNweShCVUZGRVIsYXJnKTsKKwkJcmV0dXJuIEJVRkZFUjsKKwl9CisKKwkvKiBFYWNoIGNoYXJhY3RlciBpbiBhcmcgbWF5IHRha2UgdXB0byBmb3VyIGNoYXJhY3RlcnMgaW4gdGhlIHJlc3VsdDoKKwkgICBGb3IgYSBxdW90ZSB3ZSBuZWVkIGEgY2xvc2luZyBxdW90ZSwgYSBiYWNrc2xhc2gsIGEgcXVvdGUgYW5kIGFuCisJICAgb3BlbmluZyBxdW90ZSEgV2UgbmVlZCBhbHNvIHRoZSBnbG9iYWwgb3BlbmluZyBhbmQgY2xvc2luZyBxdW90ZSwKKwkgICBhbmQgb25lIGV4dHJhIGNoYXJhY3RlciBmb3IgJ1wwJy4gKi8KKwlCVUZGRVI9b3VyX21hbGxvYyhzdHJsZW4oYXJnKSo0KzMpOworCisJYnVmcHRyPUJVRkZFUjsKKwkqYnVmcHRyKys9J1wnJzsKKworCXdoaWxlICgqYXJncHRyKSB7CisJCWlmICgqYXJncHRyID09ICdcJycpIHsKKwkJCS8qIFF1b3RlOiByZXBsYWNlIGl0IHdpdGg6ICdcJycgKi8KKwkJCSpidWZwdHIrKz0nXCcnOworCQkJKmJ1ZnB0cisrPSdcXCc7CisJCQkqYnVmcHRyKys9J1wnJzsKKwkJCSpidWZwdHIrKz0nXCcnOworCQl9IGVsc2UgaWYgKHNoZWxsPT1UQ1NIICYmICphcmdwdHI9PSchJykgeworCQkJLyogRXhjbGFtYXRpb24gbWFyazogcmVwbGFjZSBpdCB3aXRoOiBcISAqLworCQkJKmJ1ZnB0cisrPSdcJyc7CisJCQkqYnVmcHRyKys9J1xcJzsKKwkJCSpidWZwdHIrKz0nISc7CisJCQkqYnVmcHRyKys9J1wnJzsKKwkJfSBlbHNlIGlmIChzaGVsbD09VENTSCAmJiAqYXJncHRyPT0nXG4nKSB7CisJCQkvKiBOZXdsaW5lOiByZXBsYWNlIGl0IHdpdGg6IFxuICovCisJCQkqYnVmcHRyKys9J1xcJzsKKwkJCSpidWZwdHIrKz0nbic7CisJCX0gZWxzZSBpZiAoc2hlbGw9PVRDU0ggJiYgaXNzcGFjZSgqYXJncHRyKSkgeworCQkJLyogTm9uLW5ld2xpbmUgd2hpdGVzcGFjZTogcmVwbGFjZSBpdCB3aXRoIFw8d3M+ICovCisJCQkqYnVmcHRyKys9J1wnJzsKKwkJCSpidWZwdHIrKz0nXFwnOworCQkJKmJ1ZnB0cisrPSphcmdwdHI7CisJCQkqYnVmcHRyKys9J1wnJzsKKwkJfSBlbHNlCisJCQkvKiBKdXN0IGNvcHkgKi8KKwkJCSpidWZwdHIrKz0qYXJncHRyOworCQlhcmdwdHIrKzsKKwl9CisJKmJ1ZnB0cisrPSdcJyc7CisJKmJ1ZnB0cisrPSdcMCc7CisJcmV0dXJuIEJVRkZFUjsKK30KKworLyogCisgKiBHZW5lcmF0ZSB0aGUgb3V0cHV0LiBhcmd2WzBdIGlzIHRoZSBwcm9ncmFtIG5hbWUgKHVzZWQgZm9yIHJlcG9ydGluZyBlcnJvcnMpLgorICogYXJndlsxLi5dIGNvbnRhaW5zIHRoZSBvcHRpb25zIHRvIGJlIHBhcnNlZC4gYXJnYyBtdXN0IGJlIHRoZSBudW1iZXIgb2YKKyAqIGVsZW1lbnRzIGluIGFyZ3YgKGllLiAxIGlmIHRoZXJlIGFyZSBubyBvcHRpb25zLCBvbmx5IHRoZSBwcm9ncmFtIG5hbWUpLAorICogb3B0c3RyIG11c3QgY29udGFpbiB0aGUgc2hvcnQgb3B0aW9ucywgYW5kIGxvbmdvcHRzIHRoZSBsb25nIG9wdGlvbnMuCisgKiBPdGhlciBzZXR0aW5ncyBhcmUgZm91bmQgaW4gZ2xvYmFsIHZhcmlhYmxlcy4KKyAqLworaW50IGdlbmVyYXRlX291dHB1dChjaGFyICogYXJndltdLGludCBhcmdjLGNvbnN0IGNoYXIgKm9wdHN0ciwKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IG9wdGlvbiAqbG9uZ29wdHMpCit7CisJaW50IGV4aXRfY29kZSA9IDA7IC8qIFdlIGFzc3VtZSBldmVyeXRoaW5nIHdpbGwgYmUgT0sgKi8KKwlpbnQgb3B0OworCWludCBsb25naW5kZXg7CisJY29uc3QgY2hhciAqY2hhcnB0cjsKKworCWlmIChxdWlldF9lcnJvcnMpIC8qIE5vIGVycm9yIHJlcG9ydGluZyBmcm9tIGdldG9wdCgzKSAqLworCQlvcHRlcnI9MDsKKwlvcHRpbmQ9MDsgLyogUmVzZXQgZ2V0b3B0KDMpICovCisKKwl3aGlsZSAoKG9wdCA9IChhbHRlcm5hdGl2ZT8KKwkgICAgICAgICAgICAgIGdldG9wdF9sb25nX29ubHkoYXJnYyxhcmd2LG9wdHN0cixsb25nb3B0cywmbG9uZ2luZGV4KToKKwkgICAgICAgICAgICAgIGdldG9wdF9sb25nKGFyZ2MsYXJndixvcHRzdHIsbG9uZ29wdHMsJmxvbmdpbmRleCkpKSAKKyAgICAgICAgICAgICAgICE9IEVPRikgCisJCWlmIChvcHQgPT0gJz8nIHx8IG9wdCA9PSAnOicgKQorCQkJZXhpdF9jb2RlID0gMTsKKwkJZWxzZSBpZiAoIXF1aWV0X291dHB1dCkgCisJCXsKKwkJCWlmIChvcHQgPT0gTE9OR19PUFQpIHsKKwkJCQlwcmludGYoIiAtLSVzIixsb25nb3B0c1tsb25naW5kZXhdLm5hbWUpOworCQkJCWlmIChsb25nb3B0c1tsb25naW5kZXhdLmhhc19hcmcpIAorCQkJCQlwcmludGYoIiAlcyIsCisJCQkJCSAgICAgICBub3JtYWxpemUob3B0YXJnP29wdGFyZzoiIikpOworCQkJfSBlbHNlIGlmIChvcHQgPT0gTk9OX09QVCkgCisJCQkJcHJpbnRmKCIgJXMiLG5vcm1hbGl6ZShvcHRhcmcpKTsgCisJCQllbHNlIHsKKwkJCQlwcmludGYoIiAtJWMiLG9wdCk7CisJCQkJY2hhcnB0ciA9IHN0cmNocihvcHRzdHIsb3B0KTsKKwkJCQlpZiAoY2hhcnB0ciAhPSBOVUxMICYmICorK2NoYXJwdHIgPT0gJzonKQorCQkJCQlwcmludGYoIiAlcyIsCisJCQkJCSAgICAgICBub3JtYWxpemUob3B0YXJnP29wdGFyZzoiIikpOworCQkJfQorCQl9CisJCisJaWYgKCEgcXVpZXRfb3V0cHV0KSB7CisJCXByaW50ZigiIC0tIik7CisJCXdoaWxlIChvcHRpbmQgPCBhcmdjKSAKKwkJCXByaW50ZigiICVzIixub3JtYWxpemUoYXJndltvcHRpbmQrK10pKTsKKwkJcHJpbnRmKCJcbiIpOworCX0KKwlyZXR1cm4gZXhpdF9jb2RlOworfQorCisvKgorICogUmVwb3J0IGFuIGVycm9yIHdoZW4gcGFyc2luZyBnZXRvcHQncyBvd24gYXJndW1lbnRzLgorICogSWYgbWVzc2FnZSBpcyBOVUxMLCB3ZSBhbHJlYWR5IHNlbnQgYSBtZXNzYWdlLCB3ZSBqdXN0IGV4aXQgd2l0aCBhIGhlbHBmdWwKKyAqIGhpbnQuCisgKi8KK3ZvaWQgcGFyc2VfZXJyb3IoY29uc3QgY2hhciAqbWVzc2FnZSkKK3sKKwlpZiAobWVzc2FnZSkKKwkJZnByaW50ZihzdGRlcnIsImdldG9wdDogJXNcbiIsbWVzc2FnZSk7CisJZnB1dHMoXygiVHJ5IGBnZXRvcHQgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIpLHN0ZGVycik7CisJZXhpdCgyKTsKK30KKworc3RhdGljIHN0cnVjdCBvcHRpb24gKmxvbmdfb3B0aW9ucz1OVUxMOworc3RhdGljIGludCBsb25nX29wdGlvbnNfbGVuZ3RoPTA7IC8qIExlbmd0aCBvZiBhcnJheSAqLworc3RhdGljIGludCBsb25nX29wdGlvbnNfbnI9MDsgLyogTnIgb2YgdXNlZCBlbGVtZW50cyBpbiBhcnJheSAqLworI2RlZmluZSBMT05HX09QVElPTlNfSU5DUiAxMAorI2RlZmluZSBpbml0X2xvbmdvcHQoKSBhZGRfbG9uZ29wdChOVUxMLDApCisKKy8qIFJlZ2lzdGVyIGEgbG9uZyBvcHRpb24uIFRoZSBjb250ZW50cyBvZiBuYW1lIGlzIGNvcGllZC4gKi8KK3ZvaWQgYWRkX2xvbmdvcHQoY29uc3QgY2hhciAqbmFtZSxpbnQgaGFzX2FyZykKK3sKKwljaGFyICp0bXA7CisJaWYgKCFuYW1lKSB7IC8qIGluaXQgKi8KKwkJZnJlZShsb25nX29wdGlvbnMpOworCQlsb25nX29wdGlvbnM9TlVMTDsKKwkJbG9uZ19vcHRpb25zX2xlbmd0aD0wOworCQlsb25nX29wdGlvbnNfbnI9MDsKKwl9CisKKwlpZiAobG9uZ19vcHRpb25zX25yID09IGxvbmdfb3B0aW9uc19sZW5ndGgpIHsKKwkJbG9uZ19vcHRpb25zX2xlbmd0aCArPSBMT05HX09QVElPTlNfSU5DUjsKKwkJbG9uZ19vcHRpb25zPW91cl9yZWFsbG9jKGxvbmdfb3B0aW9ucywKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3Qgb3B0aW9uKSAqIAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nX29wdGlvbnNfbGVuZ3RoKTsKKwl9CisKKwlsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25yXS5uYW1lPU5VTEw7CisJbG9uZ19vcHRpb25zW2xvbmdfb3B0aW9uc19ucl0uaGFzX2FyZz0wOworCWxvbmdfb3B0aW9uc1tsb25nX29wdGlvbnNfbnJdLmZsYWc9TlVMTDsKKwlsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25yXS52YWw9MDsKKworCWlmIChsb25nX29wdGlvbnNfbnIpIHsgLyogTm90IGZvciBpbml0ISAqLworCQlsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25yLTFdLmhhc19hcmc9aGFzX2FyZzsKKwkJbG9uZ19vcHRpb25zW2xvbmdfb3B0aW9uc19uci0xXS5mbGFnPU5VTEw7CisJCWxvbmdfb3B0aW9uc1tsb25nX29wdGlvbnNfbnItMV0udmFsPUxPTkdfT1BUOworCQl0bXAgPSBvdXJfbWFsbG9jKHN0cmxlbihuYW1lKSsxKTsKKwkJc3RyY3B5KHRtcCxuYW1lKTsKKwkJbG9uZ19vcHRpb25zW2xvbmdfb3B0aW9uc19uci0xXS5uYW1lPXRtcDsKKwl9CisJbG9uZ19vcHRpb25zX25yKys7Cit9CisJCisKKy8qIAorICogUmVnaXN0ZXIgc2V2ZXJhbCBsb25nIG9wdGlvbnMuIG9wdGlvbnMgaXMgYSBzdHJpbmcgb2YgbG9uZyBvcHRpb25zLCAKKyAqIHNlcGFyYXRlZCBieSBjb21tYXMgb3Igd2hpdGVzcGFjZS4gCisgKiBUaGlzIG51a2VzIG9wdGlvbnMhIAorICovCit2b2lkIGFkZF9sb25nX29wdGlvbnMoY2hhciAqb3B0aW9ucykKK3sKKwlpbnQgYXJnX29wdDsKKwljaGFyICp0b2twdHI9c3RydG9rKG9wdGlvbnMsIiwgXHRcbiIpOworCXdoaWxlICh0b2twdHIpIHsKKwkJYXJnX29wdD1ub19hcmd1bWVudDsKKwkJaWYgKHN0cmxlbih0b2twdHIpID4gMCkgeworCQkJaWYgKHRva3B0cltzdHJsZW4odG9rcHRyKS0xXSA9PSAnOicpIHsKKwkJCQlpZiAodG9rcHRyW3N0cmxlbih0b2twdHIpLTJdID09ICc6JykgeworCQkJCQl0b2twdHJbc3RybGVuKHRva3B0ciktMl09J1wwJzsKKwkJCQkJYXJnX29wdD1vcHRpb25hbF9hcmd1bWVudDsKKwkJCQl9IGVsc2UgeworCQkJCQl0b2twdHJbc3RybGVuKHRva3B0ciktMV09J1wwJzsKKwkJCQkJYXJnX29wdD1yZXF1aXJlZF9hcmd1bWVudDsKKwkJCQl9CisJCQkJaWYgKHN0cmxlbih0b2twdHIpID09IDApCisJCQkJCXBhcnNlX2Vycm9yKF8oImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyICIKKwkJCQkJICAgICAgICAgICAgICAiLWwgb3IgLS1sb25nIGFyZ3VtZW50IikpOworCQkJfQorCQkJYWRkX2xvbmdvcHQodG9rcHRyLGFyZ19vcHQpOworCQl9CisJCXRva3B0cj1zdHJ0b2soTlVMTCwiLCBcdFxuIik7CisJfQorfQorCit2b2lkIHNldF9zaGVsbChjb25zdCBjaGFyICpuZXdfc2hlbGwpCit7CisJaWYgKCFzdHJjbXAobmV3X3NoZWxsLCJiYXNoIikpCisJCXNoZWxsPUJBU0g7CisJZWxzZSBpZiAoIXN0cmNtcChuZXdfc2hlbGwsInRjc2giKSkKKwkJc2hlbGw9VENTSDsKKwllbHNlIGlmICghc3RyY21wKG5ld19zaGVsbCwic2giKSkKKwkJc2hlbGw9QkFTSDsKKwllbHNlIGlmICghc3RyY21wKG5ld19zaGVsbCwiY3NoIikpCisJCXNoZWxsPVRDU0g7CisJZWxzZQorCQlwYXJzZV9lcnJvcihfKCJ1bmtub3duIHNoZWxsIGFmdGVyIC1zIG9yIC0tc2hlbGwgYXJndW1lbnQiKSk7Cit9CisKK3ZvaWQgcHJpbnRfaGVscCh2b2lkKQoreworCWZwdXRzKF8oIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIpLHN0ZGVycik7CisJZnB1dHMoXygiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIiksc3RkZXJyKTsKKwlmcHV0cyhfKCIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSAtb3wtLW9wdGlvbnMgb3B0c3RyaW5nIFtvcHRpb25zXSBbLS1dXG4iKSxzdGRlcnIpOworCWZwdXRzKF8oIiAgICAgICAgICAgICAgcGFyYW1ldGVyc1xuIiksc3RkZXJyKTsKKwlmcHV0cyhfKCIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggc2luZ2xlIC1cbiIpLHN0ZGVycik7CisJZnB1dHMoXygiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRoaXMgc21hbGwgdXNhZ2UgZ3VpZGVcbiIpLHN0ZGVycik7CisJZnB1dHMoXygiICAtbCwgLS1sb25nb3B0aW9ucz1sb25nb3B0cyAgIExvbmcgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iKSxzdGRlcnIpOworCWZwdXRzKF8oIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iKSxzdGRlcnIpOworCWZwdXRzKF8oIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBTaG9ydCBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIpLHN0ZGVycik7CisJZnB1dHMoXygiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIiksc3RkZXJyKTsKKwlmcHV0cyhfKCIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIiksc3RkZXJyKTsKKwlmcHV0cyhfKCIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIpLHN0ZGVycik7CQorCWZwdXRzKF8oIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUZXN0IGZvciBnZXRvcHQoMSkgdmVyc2lvblxuIiksc3RkZXJyKTsKKwlmcHV0cyhfKCIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgRG8gbm90IHF1b3RlIHRoZSBvdXRwdXRcbiIpLHN0ZGVycik7CisJZnB1dHMoXygiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iKSxzdGRlcnIpOworCWV4aXQoMik7Cit9CisJCisvKiBFeGl0IGNvZGVzOgorICogICAwKSBObyBlcnJvcnMsIHN1Y2Nlc2Z1bCBvcGVyYXRpb24uCisgKiAgIDEpIGdldG9wdCgzKSByZXR1cm5lZCBhbiBlcnJvci4KKyAqICAgMikgQSBwcm9ibGVtIHdpdGggcGFyYW1ldGVyIHBhcnNpbmcgZm9yIGdldG9wdCgxKS4KKyAqICAgMykgSW50ZXJuYWwgZXJyb3IsIG91dCBvZiBtZW1vcnkKKyAqICAgNCkgUmV0dXJuZWQgZm9yIC1UCisgKi8KKworc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXT17IHsib3B0aW9ucyIscmVxdWlyZWRfYXJndW1lbnQsTlVMTCwnbyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibG9uZ29wdGlvbnMiLHJlcXVpcmVkX2FyZ3VtZW50LE5VTEwsJ2wnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InF1aWV0Iixub19hcmd1bWVudCxOVUxMLCdxJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJxdWlldC1vdXRwdXQiLG5vX2FyZ3VtZW50LE5VTEwsJ1EnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InNoZWxsIixyZXF1aXJlZF9hcmd1bWVudCxOVUxMLCdzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJ0ZXN0Iixub19hcmd1bWVudCxOVUxMLCdUJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJ1bnF1b3RlZCIsbm9fYXJndW1lbnQsTlVMTCwndSd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaGVscCIsbm9fYXJndW1lbnQsTlVMTCwnaCd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiYWx0ZXJuYXRpdmUiLG5vX2FyZ3VtZW50LE5VTEwsJ2EnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiLHJlcXVpcmVkX2FyZ3VtZW50LE5VTEwsJ24nfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InZlcnNpb24iLG5vX2FyZ3VtZW50LE5VTEwsJ1YnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7TlVMTCwwLE5VTEwsMH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKworLyogU3RvcCBzY2FubmluZyBhcyBzb29uIGFzIGEgbm9uLW9wdGlvbiBhcmd1bWVudCBpcyBmb3VuZCEgKi8KK3N0YXRpYyBjb25zdCBjaGFyICpzaG9ydG9wdHM9IithbzpsOm46cVFzOlR1aFYiOworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWNoYXIgKm9wdHN0cj1OVUxMOworCWNoYXIgKm5hbWU9TlVMTDsKKwlpbnQgb3B0OworCWludCBjb21wYXRpYmxlPTA7CisKKwlzZXRsb2NhbGUoTENfQUxMLCIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlpbml0X2xvbmdvcHQoKTsKKworCWlmIChnZXRlbnYoIkdFVE9QVF9DT01QQVRJQkxFIikpIAorCQljb21wYXRpYmxlPTE7CisKKwlpZiAoYXJnYyA9PSAxKSAKKwl7CisJCWlmIChjb21wYXRpYmxlKSB7CisJCQkvKiBGb3Igc29tZSByZWFzb24sIHRoZSBvcmlnaW5hbCBnZXRvcHQgZ2F2ZSBubyBlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiB0aGVyZSB3ZXJlIG5vIGFyZ3VtZW50cy4gKi8KKwkJCXByaW50ZigiIC0tXG4iKTsKKwkJCWV4aXQoMCk7CisJCX0KKwkJZWxzZQorCQkJcGFyc2VfZXJyb3IoXygibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiKSk7CisJfQorCQorCWlmIChhcmd2WzFdWzBdICE9ICctJyB8fCBjb21wYXRpYmxlKSB7CisJCXF1b3RlPTA7CisJCW9wdHN0cj1vdXJfbWFsbG9jKHN0cmxlbihhcmd2WzFdKSsxKTsKKwkJc3RyY3B5KG9wdHN0cixhcmd2WzFdK3N0cnNwbihhcmd2WzFdLCItKyIpKTsKKwkJYXJndlsxXT1hcmd2WzBdOworCQlleGl0KGdlbmVyYXRlX291dHB1dChhcmd2KzEsYXJnYy0xLG9wdHN0cixsb25nX29wdGlvbnMpKTsKKwl9CisJCisJd2hpbGUgKChvcHQ9Z2V0b3B0X2xvbmcoYXJnYyxhcmd2LHNob3J0b3B0cyxsb25nb3B0cyxOVUxMKSkgIT0gRU9GKSAKKwkJc3dpdGNoIChvcHQpIHsKKwkJY2FzZSAnYSc6CisJCQlhbHRlcm5hdGl2ZT0xOworCQkJYnJlYWs7CisJCWNhc2UgJ2gnOgorCQkJcHJpbnRfaGVscCgpOworCQkJZXhpdCgwKTsKKwkJY2FzZSAnbyc6CisJCQlmcmVlKG9wdHN0cik7CisJCQlvcHRzdHI9b3VyX21hbGxvYyhzdHJsZW4ob3B0YXJnKSsxKTsKKwkJCXN0cmNweShvcHRzdHIsb3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICdsJzoKKwkJCWFkZF9sb25nX29wdGlvbnMob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICduJzoKKwkJCWZyZWUobmFtZSk7CisJCQluYW1lPW91cl9tYWxsb2Moc3RybGVuKG9wdGFyZykrMSk7CisJCQlzdHJjcHkobmFtZSxvcHRhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgJ3EnOgorCQkJcXVpZXRfZXJyb3JzPTE7CisJCQlicmVhazsKKwkJY2FzZSAnUSc6CisJCQlxdWlldF9vdXRwdXQ9MTsKKwkJCWJyZWFrOworCQljYXNlICdzJzoKKwkJCXNldF9zaGVsbChvcHRhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgJ1QnOgorCQkJZXhpdCg0KTsKKwkJY2FzZSAndSc6CisJCQlxdW90ZT0wOworCQkJYnJlYWs7CisJCWNhc2UgJ1YnOgorCQkJcHJpbnRmKF8oImdldG9wdCAoZW5oYW5jZWQpIDEuMS40XG4iKSk7CisJCQlleGl0KDApOworCQljYXNlICc/JzoKKwkJY2FzZSAnOic6CisJCQlwYXJzZV9lcnJvcihOVUxMKTsKKwkJZGVmYXVsdDoKKwkJCXBhcnNlX2Vycm9yKF8oImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIikpOworCQl9CisJCisJaWYgKCFvcHRzdHIpIAorCXsKKwkJaWYgKG9wdGluZCA+PSBhcmdjKQorCQkJcGFyc2VfZXJyb3IoXygibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiKSk7CisJCWVsc2UgeworCQkJb3B0c3RyPW91cl9tYWxsb2Moc3RybGVuKGFyZ3Zbb3B0aW5kXSkrMSk7CisJCQlzdHJjcHkob3B0c3RyLGFyZ3Zbb3B0aW5kXSk7CisJCQlvcHRpbmQrKzsKKwkJfQorCX0KKwlpZiAobmFtZSkKKwkJYXJndltvcHRpbmQtMV09bmFtZTsKKwllbHNlCisJCWFyZ3Zbb3B0aW5kLTFdPWFyZ3ZbMF07CisJZXhpdChnZW5lcmF0ZV9vdXRwdXQoYXJnditvcHRpbmQtMSxhcmdjLW9wdGluZCsxLG9wdHN0cixsb25nX29wdGlvbnMpKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2h3Y2xvY2svTWFrZWZpbGUuYW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0MjUyMWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMTQgQEAKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorCitkaXN0X21hbl9NQU5TID0gaHdjbG9jay44CisKK3NiaW5fUFJPR1JBTVMgPSBod2Nsb2NrCisKK2h3Y2xvY2tfU09VUkNFUyA9IGh3Y2xvY2suYyBjbW9zLmMgcnRjLmMga2QuYyBjbG9jay5oCitod2Nsb2NrX0xEQUREID0KKworaWYgSEFWRV9BVURJVAoraHdjbG9ja19MREFERCArPSAtbGF1ZGl0CitlbmRpZgorCitFWFRSQV9ESVNUID0gUkVBRE1FLmh3Y2xvY2sgY2xvY2stcHBjLmMKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2h3Y2xvY2svTWFrZWZpbGUuaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyN2NmMzAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsNjg5IEBACisjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKworIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgorIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworQFNFVF9NQUtFQAorCisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK0RJU1RfQ09NTU9OID0gJChkaXN0X21hbl9NQU5TKSAkKGRpc3Rfbm9pbnN0X0RBVEEpIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCitzYmluX1BST0dSQU1TID0gaHdjbG9jayQoRVhFRVhUKQorQEhBVkVfQVVESVRfVFJVRUBhbV9fYXBwZW5kXzEgPSAtbGF1ZGl0CitzdWJkaXIgPSBod2Nsb2NrCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9nZXR0ZXh0Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2d0ay1kb2MubTQgJCh0b3Bfc3JjZGlyKS9tNC9pY29udi5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItbGQubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWItbGluay5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItcHJlZml4Lm00ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L25scy5tNCAkKHRvcF9zcmNkaXIpL200L3BvLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L3Byb2d0ZXN0Lm00ICQodG9wX3NyY2RpcikvbTQvdGxzLm00IFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvbWtpbnN0YWxsZGlycworQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9jb25maWcuaAorQ09ORklHX0NMRUFOX0ZJTEVTID0KK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoc2JpbmRpcikiICIkKERFU1RESVIpJChtYW44ZGlyKSIKK1BST0dSQU1TID0gJChzYmluX1BST0dSQU1TKQorYW1faHdjbG9ja19PQkpFQ1RTID0gaHdjbG9jay4kKE9CSkVYVCkgY21vcy4kKE9CSkVYVCkgcnRjLiQoT0JKRVhUKSBcCisJa2QuJChPQkpFWFQpCitod2Nsb2NrX09CSkVDVFMgPSAkKGFtX2h3Y2xvY2tfT0JKRUNUUykKK2FtX19ERVBFTkRFTkNJRVNfMSA9Citod2Nsb2NrX0RFUEVOREVOQ0lFUyA9ICQoYW1fX0RFUEVOREVOQ0lFU18xKQorQU1fVl9sdCA9ICQoYW1fX3ZfbHRfJChWKSkKK2FtX192X2x0XyA9ICQoYW1fX3ZfbHRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9sdF8wID0gLS1zaWxlbnQKK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpCitkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKK2FtX19tdiA9IG12IC1mCitDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitMVENPTVBJTEUgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSBcCisJJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSBcCisJJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorQU1fVl9DQyA9ICQoYW1fX3ZfQ0NfJChWKSkKK2FtX192X0NDXyA9ICQoYW1fX3ZfQ0NfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ18wID0gQGVjaG8gIiAgQ0MgICAgIiAkQDsKK0FNX1ZfYXQgPSAkKGFtX192X2F0XyQoVikpCithbV9fdl9hdF8gPSAkKGFtX192X2F0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfYXRfMCA9IEAKK0NDTEQgPSAkKENDKQorTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorQU1fVl9DQ0xEID0gJChhbV9fdl9DQ0xEXyQoVikpCithbV9fdl9DQ0xEXyA9ICQoYW1fX3ZfQ0NMRF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDTERfMCA9IEBlY2hvICIgIENDTEQgICIgJEA7CitBTV9WX0dFTiA9ICQoYW1fX3ZfR0VOXyQoVikpCithbV9fdl9HRU5fID0gJChhbV9fdl9HRU5fJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9HRU5fMCA9IEBlY2hvICIgIEdFTiAgICIgJEA7CitTT1VSQ0VTID0gJChod2Nsb2NrX1NPVVJDRVMpCitESVNUX1NPVVJDRVMgPSAkKGh3Y2xvY2tfU09VUkNFUykKK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorICAgICopIGY9JCRwOzsgXAorICBlc2FjOworYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworYW1fX2luc3RhbGxfbWF4ID0gNDAKK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgorYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAorICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKK2FtX19iYXNlX2xpc3QgPSBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKK21hbjhkaXIgPSAkKG1hbmRpcikvbWFuOAorTlJPRkYgPSBucm9mZgorTUFOUyA9ICQoZGlzdF9tYW5fTUFOUykKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSBcCisJLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIgorCitBTV9DRkxBR1MgPSAtZnNpZ25lZC1jaGFyCitBTV9MREZMQUdTID0gCisKKyMgQXV0b21ha2UgKGF0IGxlYXN0IHVwIHRvIDEuMTApIG1pc2hhbmRsZXMgZGlzdF9tYW5fTUFOUyBpbnNpZGUgY29uZGl0aW9uYWxzLgorIyBVbmxpa2Ugd2l0aCBvdGhlciBkaXN0IHByaW1hcmllcywgdGhlIGZpbGVzIGFyZSBub3QgZGlzdHJpYnV0ZWQgaWYgdGhlCisjIGNvbmRpdGlvbmFsIGlzIGZhbHNlLgorIyBXb3JrIHRoZSBidWcgYXJvdW5kIHVudGlsIGl0IGlzIGZpeGVkOgorZGlzdF9ub2luc3RfREFUQSA9ICQoZGlzdF9tYW5fTUFOUykKKworIyBQYXRocyB0byBpbi10cmVlIGxpYnJhcmllcyAodXNlIHVsXyBwcmVmaXggdG8gYXZvaWQgcG9zc2libGUgY29sbGlzaW9ucykKKyMKKyMgYmxraWQKK3VsX2xpYmJsa2lkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYy9saWJibGtpZC5sYQorCisjIGJsa2lkLmggaXMgZ2VuZXJhdGVkIGJ5IC4vY29uZmlndXJlIHNjcmlwdCBhbmQgc3RvcmVkIGluIGJ1aWxkIGRpcmVjdG9yeQordWxfbGliYmxraWRfaW5jZGlyID0gJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworIyB1dWlkCit1bF9saWJ1dWlkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMvbGlidXVpZC5sYQorZGlzdF9tYW5fTUFOUyA9IGh3Y2xvY2suOAoraHdjbG9ja19TT1VSQ0VTID0gaHdjbG9jay5jIGNtb3MuYyBydGMuYyBrZC5jIGNsb2NrLmgKK2h3Y2xvY2tfTERBREQgPSAkKGFtX19hcHBlbmRfMSkKK0VYVFJBX0RJU1QgPSBSRUFETUUuaHdjbG9jayBjbG9jay1wcGMuYworYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIGh3Y2xvY2svTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduIGh3Y2xvY2svTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgoraW5zdGFsbC1zYmluUFJPR1JBTVM6ICQoc2Jpbl9QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHNiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChzYmluZGlyKSIKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoc2JpbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJChzYmluZGlyKSQkZGlyJyI7IFwKKwkgICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgIiQoREVTVERJUikkKHNiaW5kaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtc2JpblBST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoc2Jpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHNiaW5kaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChzYmluZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHNiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK2NsZWFuLXNiaW5QUk9HUkFNUzoKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAoraHdjbG9jayQoRVhFRVhUKTogJChod2Nsb2NrX09CSkVDVFMpICQoaHdjbG9ja19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBod2Nsb2NrJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGh3Y2xvY2tfT0JKRUNUUykgJChod2Nsb2NrX0xEQUREKSAkKExJQlMpCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jbW9zLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9od2Nsb2NrLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9rZC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcnRjLlBvQGFtX19xdW90ZUAKKworLmMubzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgJDwKKworLmMub2JqOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jIGAkKENZR1BBVEhfVykgJyQ8J2AKKworLmMubG86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChMVENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMVENPTVBJTEUpIC1jIC1vICRAICQ8CisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCitpbnN0YWxsLW1hbjg6ICQoZGlzdF9tYW5fTUFOUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKG1hbjhkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW44ZGlyKSIKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW44ZGlyKSIgfHwgZXhpdCAwOyBcCisJeyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjhbYS16XSokJC9wJzsgXAorCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgXAorCWRvbmUgfCBcCisJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteOF1bMC05YS16XSokJCw4LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnIHwgXAorCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAorCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJGJhc2UiID0gIiQkaW5zdCI7IHRoZW4gbGlzdD0iJCRsaXN0ICQkZmlsZSI7IGVsc2UgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW44ZGlyKS8kJGluc3QnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjhkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuOGRpciknIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobWFuOGRpcikiIHx8IGV4aXQgJCQ/OyB9OyBcCisJZG9uZTsgfQorCit1bmluc3RhbGwtbWFuODoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjhkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1geyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjhbYS16XSokJC9wJzsgXAorCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjhdWzAtOWEtel0qJCQsOCw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKwl0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW44ZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJICBjZCAiJChERVNURElSKSQobWFuOGRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxpc3QiOyB0aGVuIFwKKwkgIGxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgICAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsgXAorCSAgaWYgdGVzdCAtbiAiJCRsaXN0IiAmJiBcCisJICAgIGdyZXAgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0ID4vZGV2L251bGw7IHRoZW4gXAorCSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxgbWlzc2luZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAorCSAgICBncmVwIC1sICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCB8IHNlZCAncy9eLyAgICAgICAgIC8nID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdG8gZml4IHRoZW0sIGluc3RhbGwgaGVscDJtYW4sIHJlbW92ZSBhbmQgcmVnZW5lcmF0ZSB0aGUgbWFuIHBhZ2VzOyIgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWluZXItY2xlYW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAorCSAgICBleGl0IDE7IFwKKwkgIGVsc2UgOjsgZmk7IFwKKwllbHNlIDo7IGZpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykgJChNQU5TKSAkKERBVEEpCitpbnN0YWxsZGlyczoKKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChzYmluZGlyKSIgIiQoREVTVERJUikkKG1hbjhkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1zYmluUFJPR1JBTVMgXAorCW1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktYW0KKworZHZpLWFtOgorCitodG1sOiBodG1sLWFtCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tYW0KKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1zYmluUFJPR1JBTVMKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjgKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtYW0KKworcGRmLWFtOgorCitwczogcHMtYW0KKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtc2JpblBST0dSQU1TCisKK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW44CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorCWNsZWFuLWxpYnRvb2wgY2xlYW4tc2JpblBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAorCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKwlpbnN0YWxsLW1hbjggaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBcCisJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXNiaW5QUk9HUkFNUyBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1tYW4gdW5pbnN0YWxsLW1hbjggXAorCXVuaW5zdGFsbC1zYmluUFJPR1JBTVMKKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2h3Y2xvY2svUkVBRE1FLmh3Y2xvY2sgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL1JFQURNRS5od2Nsb2NrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhOGJjNDQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL1JFQURNRS5od2Nsb2NrCkBAIC0wLDAgKzEsMjcgQEAKK0h3Y2xvY2sgaXMgYSBwcm9ncmFtIHRoYXQgcnVucyB1bmRlciBMaW51eCBhbmQgc2V0cyBhbmQgcXVlcmllcyB0aGUgCitIYXJkd2FyZSBDbG9jaywgd2hpY2ggaXMgb2Z0ZW4gY2FsbGVkIHRoZSBSZWFsIFRpbWUgQ2xvY2ssIFJUQywgb3IKK0NNT1MgY2xvY2suCisKK1NvbWV0aW1lcywgeW91IG5lZWQgdG8gaW5zdGFsbCBod2Nsb2NrIHNldHVpZCByb290LiAgSWYgeW91IHdhbnQgdXNlcnMKK290aGVyIHRoYW4gdGhlIHN1cGVydXNlciB0byBiZSBhYmxlIHRvIGRpc3BsYXkgdGhlIGNsb2NrIHZhbHVlIHVzaW5nIHRoZQorZGlyZWN0IElTQSBJL08gbWV0aG9kLCBpbnN0YWxsIGl0IHNldHVpZCByb290LiAgSWYgeW91IGhhdmUgdGhlIC9kZXYvcnRjCitpbnRlcmZhY2Ugb24geW91ciBzeXN0ZW0gb3IgYXJlIG9uIGEgbm9uLUlTQSBzeXN0ZW0sIHRoZXJlJ3MgcHJvYmFibHkKK25vIG5lZWQgZm9yIHVzZXJzIHRvIHVzZSB0aGUgZGlyZWN0IElTQSBJL08gbWV0aG9kLCBzbyBkb24ndCBib3RoZXIuCisKK1RvIGluc3RhbGwgc2V0dWlkIHJvb3QsIGRvIHNvbWV0aGluZyBsaWtlIHRoaXM6CisKKyAgY2htb2QgYT1yeCx1PXMgL3NiaW4vaHdjbG9jaworCitJbiBhbnkgY2FzZSwgaHdjbG9jayB3aWxsIG5vdCBhbGxvdyB5b3UgdG8gc2V0IGFueXRoaW5nIHVubGVzcyB5b3UgaGF2ZQordGhlIHN1cGVydXNlciBfcmVhbF8gdWlkLiAgKFRoaXMgaXMgcmVzdHJpY3Rpb24gaXMgbm90IG5lY2Vzc2FyeSBpZiB5b3UKK2hhdmVuJ3QgaW5zdGFsbGVkIHNldHVpZCByb290LCBidXQgaXQncyB0aGVyZSBmb3Igbm93KS4KKworWW91IG1heSB3YW50IHRvIHByZWZvcm1hdCBhbmQvb3IgY29tcHJlc3MgdGhlIG1hbiBwYWdlIGJlZm9yZSBpbnN0YWxsaW5nLgorCitJZiB5b3Ugd2FudCB0byBidWlsZCBod2Nsb2NrLCBqdXN0IGNkIHRvIHRoZSBzb3VyY2UgZGlyZWN0b3J5IGFuZCBpbnZva2UKK21ha2Ugd2l0aCBubyBwYXJhbWV0ZXJzLgorCitod2Nsb2NrIGNhbGxzIG9wdGlvbiBwcm9jZXNzaW5nIHJvdXRpbmVzIGluIHRoZSBsaWJzc2hvcHQgbGlicmFyeSwKK3doaWNoIGlzIHBhcnQgb2YgU3ZlcnJlIEguIEh1c2VieSdzICJzaGhvcHQiIHBhY2thZ2UuIFlvdQorY2FuIGZpbmQgYSBtb3JlIGF1dGhvcml0YXRpdmUgY29weSBvZiB0aGlzIHBhY2thZ2Ugb24gbWV0YWxhYgorKGZ0cDovL21ldGFsYWIudW5jLmVkdS9wdWIvTGludXgvbGlicy9zaGhvcHQtWC5ZKS4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2h3Y2xvY2svY2xvY2stcHBjLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL2Nsb2NrLXBwYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3M2QwYWQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL2Nsb2NrLXBwYy5jCkBAIC0wLDAgKzEsNDU5IEBACisvKgorRnJvbSB0LW1hdHN1dUBwcm90ZWluLm9zYWthLXUuYWMuanAgU2F0IEphbiAyMiAxMzo0MzoyMCAyMDAwCitEYXRlOiBTYXQsIDIyIEphbiAyMDAwIDIxOjQyOjU0ICswOTAwIChKU1QpCitUbzogQW5kcmllcy5Ccm91d2VyQGN3aS5ubAorU3ViamVjdDogUGxlYXNlIG1lcmdlIHRoZSBzb3VyY2UgZm9yIFBQQworRnJvbTogTUFUU1VVUkEgVGFrYW5vcmkgPHQtbWF0c3V1QHByb3RlaW4ub3Nha2EtdS5hYy5qcD4KKworRXZlbiBub3csIGl0IGlzIHVzZWQgY2xvY2stMS4xIGJhc2VkIHNvdXJjZSBvbiBMaW51eCBmb3IgUG93ZXJQQworYXJjaGl0ZWN0dXJlLCBhdHRhY2hlZCBvbiB0aGlzIG1haWwuCisKK1BsZWFzZSBtZXJnZSB0aGlzIHNvdXJjZSBpbiBtYWluIHV0aWwtbGludXggc291cmNlLgorCitCdXQgSSdtIG5vdCBhbiBhdXRob3Igb2YgdGhpcyBzb3VyY2UsIGJ1dCBQYXVsIE1hY2tlcnJhcy4KK2h0dHA6Ly9saW51eGNhcmUuY29tLmF1L3BhdWx1cy8KK3Nob3dzIGRldGFpbHMgb2YgaGltLgorCitNQVRTVVVSQSBUYWthbm9yaSBAIERpdmlzaW9uIG9mIFByb3RlaW4gQ2hlbWlzdHJ5LCAKKyAgICAgICAgICAgICAgICAgICAgIEluc3RpdHV0ZSBmb3IgUHJvdGVpbiBSZXNlYXJjaCwgT3Nha2EgVW5pdmVyc2l0eSwgSmFwYW4KK0UtTWFpbDogdC1tYXRzdXVAcHJvdGVpbi5vc2FrYS11LmFjLmpwCitXZWIgUGFnZTogaHR0cDovL3d3dy5wcm90ZWluLm9zYWthLXUuYWMuanAvY2hlbWlzdHJ5L21hdHN1dXJhLworKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisKKyNpbmNsdWRlIDxhc20vY3VkYS5oPgorCisvKgorICogQWRhcHRlZCBmb3IgUG93ZXIgTWFjaW50b3NoIGJ5IFBhdWwgTWFja2VycmFzLgorICovCisKKy8qIFYxLjAKKyAqIENNT1MgY2xvY2sgbWFuaXB1bGF0aW9uIC0gQ2hhcmxlcyBIZWRyaWNrLCBoZWRyaWNrQGNzLnJ1dGdlcnMuZWR1LCBBcHIgMTk5MgorICogCisgKiBjbG9jayBbLXVdIC1yICAtIHJlYWQgY21vcyBjbG9jaworICogY2xvY2sgWy11XSAtdyAgLSB3cml0ZSBjbW9zIGNsb2NrIGZyb20gc3lzdGVtIHRpbWUKKyAqIGNsb2NrIFstdV0gLXMgIC0gc2V0IHN5c3RlbSB0aW1lIGZyb20gY21vcyBjbG9jaworICogY2xvY2sgWy11XSAtYSAgLSBzZXQgc3lzdGVtIHRpbWUgZnJvbSBjbW9zIGNsb2NrLCBhZGp1c3QgdGhlIHRpbWUgdG8KKyAqICAgICAgICAgICAgICAgICAgY29ycmVjdCBmb3Igc3lzdGVtYXRpYyBlcnJvciwgYW5kIHB1dCBpdCBiYWNrIHRvIHRoZSBjbW9zLgorICogIC11IGluZGljYXRlcyBjbW9zIGNsb2NrIGlzIGtlcHQgaW4gdW5pdmVyc2FsIHRpbWUKKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBkZXNpZ25lZCB0byBydW4gc2V0dWlkLCBzaW5jZSB3ZSBuZWVkIHRvIGJlIGFibGUgdG8KKyAqIHdyaXRlIHRvIHRoZSBDVURBLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioKKyAqIFYxLjEKKyAqIE1vZGlmaWVkIGZvciBjbG9jayBhZGp1c3RtZW50cyAtIFJvYiBIb29mdCwgaG9vZnRAY2hlbS5ydXUubmwsIE5vdiAxOTkyCisgKiBBbHNvIG1vdmVkIGVycm9yIG1lc3NhZ2VzIHRvIHN0ZGVyci4gVGhlIHByb2dyYW0gbm93IHVzZXMgZ2V0b3B0LgorICogQ2hhbmdlZCBzb21lIGV4aXQgY29kZXMuIE1hZGUgJ2djYyAyLjMgLVdhbGwnIGhhcHB5LgorICoKKyAqIEkgdGhpbmsgYSBzbWFsbCBleHBsYW5hdGlvbiBvZiB0aGUgYWRqdXN0bWVudCByb3V0aW5lIHNob3VsZCBiZSBnaXZlbgorICogaGVyZS4gVGhlIHByb2JsZW0gd2l0aCBteSBtYWNoaW5lIGlzIHRoYXQgaXRzIENNT1MgY2xvY2sgaXMgMTAgc2Vjb25kcyAKKyAqIHBlciBkYXkgc2xvdy4gV2l0aCB0aGlzIHZlcnNpb24gb2YgY2xvY2suYywgYW5kIG15ICcvZXRjL3JjLmxvY2FsJyAKKyAqIHJlYWRpbmcgJy9ldGMvY2xvY2sgLWF1JyBpbnN0ZWFkIG9mICcvZXRjL2Nsb2NrIC11IC1zJywgdGhpcyBlcnJvciAKKyAqIGlzIGF1dG9tYXRpY2FsbHkgY29ycmVjdGVkIGF0IGV2ZXJ5IGJvb3QuIAorICoKKyAqIFRvIGRvIHRoaXMgam9iLCB0aGUgcHJvZ3JhbSByZWFkcyBhbmQgd3JpdGVzIHRoZSBmaWxlICcvZXRjL2FkanRpbWUnIAorICogdG8gZGV0ZXJtaW5lIHRoZSBjb3JyZWN0aW9uLCBhbmQgdG8gc2F2ZSBpdHMgZGF0YS4gSW4gdGhpcyBmaWxlIGFyZSAKKyAqIHRocmVlIG51bWJlcnM6IAorICoKKyAqIDEpIHRoZSBjb3JyZWN0aW9uIGluIHNlY29uZHMgcGVyIGRheSAoU28gaWYgeW91ciBjbG9jayBydW5zIDUgCisgKiAgICBzZWNvbmRzIHBlciBkYXkgZmFzdCwgdGhlIGZpcnN0IG51bWJlciBzaG91bGQgcmVhZCAtNS4wKQorICogMikgdGhlIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIDEvMS8xOTcwIHRoZSBsYXN0IHRpbWUgdGhlIHByb2dyYW0gd2FzCisgKiAgICB1c2VkLgorICogMykgdGhlIHJlbWFpbmluZyBwYXJ0IG9mIGEgc2Vjb25kIHdoaWNoIHdhcyBsZWZ0b3ZlciBhZnRlciB0aGUgbGFzdCAKKyAqICAgIGFkanVzdG1lbnQKKyAqCisgKiBJbnN0YWxsYXRpb24gYW5kIHVzZSBvZiB0aGlzIHByb2dyYW06CisgKgorICogYSkgY3JlYXRlIGEgZmlsZSAnL2V0Yy9hZGp0aW1lJyBjb250YWluaW5nIGFzIHRoZSBmaXJzdCBhbmQgb25seSBsaW5lOgorICogICAgJzAuMCAwIDAuMCcKKyAqIGIpIHJ1biAnY2xvY2sgLWF1JyBvciAnY2xvY2sgLWEnLCBkZXBlbmRpbmcgb24gd2hldGhlciB5b3VyIGNtb3MgaXMgaW4KKyAqICAgIHVuaXZlcnNhbCBvciBsb2NhbCB0aW1lLiBUaGlzIHVwZGF0ZXMgdGhlIHNlY29uZCBudW1iZXIuCisgKiBjKSBzZXQgeW91ciBzeXN0ZW0gdGltZSB1c2luZyB0aGUgJ2RhdGUnIGNvbW1hbmQuCisgKiBkKSB1cGRhdGUgeW91ciBjbW9zIHRpbWUgdXNpbmcgJ2Nsb2NrIC13dScgb3IgJ2Nsb2NrIC13JworICogZSkgcmVwbGFjZSB0aGUgZmlyc3QgbnVtYmVyIGluIC9ldGMvYWRqdGltZSBieSB5b3VyIGNvcnJlY3Rpb24uCisgKiBmKSBwdXQgdGhlIGNvbW1hbmQgJ2Nsb2NrIC1hdScgb3IgJ2Nsb2NrIC1hJyBpbiB5b3VyICcvZXRjL3JjLmxvY2FsJworICoKKyAqIElmIHRoZSBhZGp1c3RtZW50IGRvZXNuJ3Qgd29yayBmb3IgeW91LCB0cnkgY29udGFjdGluZyBtZSBieSBFLW1haWwuCisgKgorICoqKioqKgorICogVjEuMgorICoKKyAqIEFwcGxpZWQgcGF0Y2hlcyBieSBIYXJhbGQgS29lbmlnIChrb2VuaWdAbm92YS50YXQucGh5c2lrLnVuaS10dWViaW5nZW4uZGUpCisgKiBQYXRjaGVkIGFuZCBpbmRlbnRlZCBieSBSb2IgSG9vZnQgKGhvb2Z0QEVNQkwtSGVpZGVsYmVyZy5ERSkKKyAqIAorICogQSBmcmVlIHF1b3RlIGZyb20gYSBNQUlMLW1lc3NhZ2UgKHdpdGggc3BlbGxpbmcgY29ycmVjdGlvbnMpOgorICoKKyAqICJJIGZvdW5kIHRoZSBleHBsYW5hdGlvbiBhbmQgc29sdXRpb24gZm9yIHRoZSBDTU9TIHJlYWRpbmcgMHhmZiBwcm9ibGVtCisgKiAgaW4gdGhlIDAuOTlwbDEzYyAoQUxQSEEpIGtlcm5lbDogdGhlIFJUQyBnb2VzIG9mZmxpbmUgZm9yIGEgc21hbGwgYW1vdW50CisgKiAgb2YgdGltZSBmb3IgdXBkYXRpbmcuIFNvbHV0aW9uIGlzIGluY2x1ZGVkIGluIHRoZSBrZXJuZWwgc291cmNlIAorICogIChsaW51eC9rZXJuZWwvdGltZS5jKS4iCisgKgorICogIkkgbW9kaWZpZWQgY2xvY2suYyB0byBmaXggdGhpcyBwcm9ibGVtIGFuZCBhZGRlZCBhbiBvcHRpb24gKG5vdyBkZWZhdWx0LAorICogIGxvb2sgZm9yIFVTRV9JTkxJTkVfQVNNX0lPKSB0aGF0IEkvTyBpbnN0cnVjdGlvbnMgYXJlIHVzZWQgYXMgaW5saW5lCisgKiAgY29kZSBhbmQgbm90IHZpYSAvZGV2L3BvcnQgKHN0aWxsIHBvc3NpYmxlIHZpYSAjdW5kZWYgLi4uKS4iCisgKgorICogV2l0aCB0aGUgbmV3IGNvZGUsIHdoaWNoIGlzIHBhcnRpYWxseSB0YWtlbiBmcm9tIHRoZSBrZXJuZWwgc291cmNlcywgCisgKiB0aGUgQ01PUyBjbG9jayBoYW5kbGluZyBsb29rcyBtdWNoIG1vcmUgIm9mZmljaWFsIi4KKyAqIFRoYW5rcyBIYXJhbGQgKGFuZCBUb3JzdGVuIGZvciB0aGUga2VybmVsIGNvZGUpIQorICoKKyAqKioqKioKKyAqIFYxLjMKKyAqIENhbmdlcyBmcm9tIGFsYW5Ac3ByaS5sZXZlbHMudW5pc2EuZWR1LmF1IChBbGFuIE1vZHJhKToKKyAqIGEpIEZpeCBhIGZldyB0eXBvcyBpbiBjb21tZW50cyBhbmQgcmVtb3ZlIHJlZmVyZW5jZSB0byBtYWtpbmcKKyAqICAgIGNsb2NrIC11IGEgY3JvbiBqb2IuICBUaGUga2VybmVsIGFkanVzdHMgY21vcyB0aW1lIGV2ZXJ5IDExCisgKiAgICBtaW51dGVzIC0gc2VlIGtlcm5lbC9zY2hlZC5jIGFuZCBrZXJuZWwvdGltZS5jIHNldF9ydGNfbW1zcygpLgorICogICAgVGhpcyBtZWFucyB3ZSBzaG91bGQgcmVhbGx5IGhhdmUgYSBjcm9uIGpvYiB1cGRhdGluZworICogICAgL2V0Yy9hZGp0aW1lIGV2ZXJ5IDExIG1pbnMgKHNldCBsYXN0X3RpbWUgdG8gdGhlIGN1cnJlbnQgdGltZQorICogICAgYW5kIG5vdF9hZGp1c3RlZCB0byA/Pz8pLgorICogYikgU3dhcHBlZCBhcmd1bWVudHMgb2Ygb3V0YigpIHRvIGFncmVlIHdpdGggYXNtL2lvLmggbWFjcm8gb2YgdGhlCisgKiAgICBzYW1lIG5hbWUuICBVc2Ugb3V0YigpIGZyb20gYXNtL2lvLmggYXMgaXQncyBzbGlnaHRseSBiZXR0ZXIuCisgKiBjKSBDaGFuZ2VkIENNT1NfUkVBRCBhbmQgQ01PU19XUklURSB0byBpbmxpbmUgZnVuY3Rpb25zLiAgSW5zZXJ0ZWQKKyAqICAgIGNsaSgpLi5zdGkoKSBwYWlycyBpbiBhcHByb3ByaWF0ZSBwbGFjZXMgdG8gcHJldmVudCBwb3NzaWJsZQorICogICAgZXJyb3JzLCBhbmQgY2hhbmdlZCBpb3Blcm0oKSBjYWxsIHRvIGlvcGwoKSB0byBhbGxvdyBjbGkuCisgKiBkKSBNb3ZlZCBzb21lIHZhcmlhYmxlcyBhcm91bmQgdG8gbG9jYWxpc2UgdGhlbSBhIGJpdC4KKyAqIGUpIEZpeGVkIGJ1ZyB3aXRoIGNsb2NrIC11YSBvciBjbG9jayAtdXMgdGhhdCBjbGVhcmVkIGVudmlyb25tZW50CisgKiAgICB2YXJpYWJsZSBUWi4gIFRoaXMgZml4IGFsc28gY3VyZWQgdGhlIGFubm95aW5nIGRpc3BsYXkgb2YgYm9ndXMKKyAqICAgIGRheSBvZiB3ZWVrIG9uIGEgbnVtYmVyIG9mIG1hY2hpbmVzLiAoVXNlIG1rdGltZSgpLCBjdGltZSgpCisgKiAgICByYXRoZXIgdGhhbiBhc2N0aW1lKCkgKQorICogZikgVXNlIHNldHRpbWVvZmRheSgpIHJhdGhlciB0aGFuIHN0aW1lKCkuICBUaGlzIG9uZSBpcyBpbXBvcnRhbnQKKyAqICAgIGFzIGl0IHNldHMgdGhlIGtlcm5lbCdzIHRpbWV6b25lIG9mZnNldCwgd2hpY2ggaXMgcmV0dXJuZWQgYnkKKyAqICAgIGdldHRpbWVvZmRheSgpLCBhbmQgdXNlZCBmb3IgZGlzcGxheSBvZiBNU0RPUyBhbmQgT1MyIGZpbGUKKyAqICAgIHRpbWVzLgorICogZykgZmFpdGhAY3MudW5jLmVkdSBhZGRlZCAtRCBmbGFnIGZvciBkZWJ1Z2dpbmcKKyAqCisgKiBWMS40OiBhbGFuQFNQUkkuTGV2ZWxzLlVuaVNBLkVkdS5BdSAoQWxhbiBNb2RyYSkKKyAqICAgICAgIFdlZCBGZWIgIDggMTI6Mjk6MDggMTk5NSwgZml4IGZvciB5ZWFycyA+IDIwMDAuCisgKiAgICAgICBmYWl0aEBjcy51bmMuZWR1IGFkZGVkIC12IG9wdGlvbiB0byBwcmludCB2ZXJzaW9uLgorICoKKyAqIEF1Z3VzdCAxOTk2IFRvbSBEeWFzICh0ZHlhc0BlZGVuLnJ1dGdlcnMuZWR1KQorICogICAgICAgQ29udmVydGVkIHRvIGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgU1BBUkMgL2Rldi9ydGMgZHJpdmVyLgorICoKKyAqLworCisjZGVmaW5lIFZFUlNJT04gIjEuNCIKKworLyogSGVyZSB0aGUgaW5mb3JtYXRpb24gZm9yIHRpbWUgYWRqdXN0bWVudHMgaXMga2VwdC4gKi8KKyNkZWZpbmUgQURKUEFUSCAiL2V0Yy9hZGp0aW1lIgorCisvKiBBcHBhcmVudGx5IHRoZSBSVEMgb24gUG93ZXJNYWNzIHN0b3JlcyBzZWNvbmRzIHNpbmNlIDEgSmFuIDE5MDQgKi8KKyNkZWZpbmUgUlRDX09GRlNFVAkyMDgyODQ0ODAwCisKKy8qIHVzZWQgZm9yIGRlYnVnZ2luZyB0aGUgY29kZS4gKi8KKy8qI2RlZmluZSBLRUVQX09GRiAqLworCisvKiBHbG9iYWxzICovCitpbnQgcmVhZGl0ID0gMDsKK2ludCBhZGp1c3RpdCA9IDA7CitpbnQgd3JpdGVpdCA9IDA7CitpbnQgc2V0aXQgPSAwOworaW50IHVuaXZlcnNhbCA9IDA7CitpbnQgZGVidWcgPSAwOworCit0aW1lX3QgbWtnbXRpbWUoc3RydWN0IHRtICopOworCit2b2xhdGlsZSB2b2lkIAordXNhZ2UgKCB2b2lkICkKK3sKKyAgKHZvaWQpIGZwcmludGYgKHN0ZGVyciwgCisgICAgImNsb2NrIFstdV0gLXJ8d3xzfGF8dlxuIgorICAgICIgIHI6IHJlYWQgYW5kIHByaW50IENNT1MgY2xvY2tcbiIKKyAgICAiICB3OiB3cml0ZSBDTU9TIGNsb2NrIGZyb20gc3lzdGVtIHRpbWVcbiIKKyAgICAiICBzOiBzZXQgc3lzdGVtIHRpbWUgZnJvbSBDTU9TIGNsb2NrXG4iCisgICAgIiAgYTogZ2V0IHN5c3RlbSB0aW1lIGFuZCBhZGp1c3QgQ01PUyBjbG9ja1xuIgorICAgICIgIHU6IENNT1MgY2xvY2sgaXMgaW4gdW5pdmVyc2FsIHRpbWVcbiIKKyAgICAiICB2OiBwcmludCB2ZXJzaW9uICgiIFZFUlNJT04gIikgYW5kIGV4aXRcbiIKKyAgKTsKKyAgZXhpdChFWElUX0ZBSUxVUkUpOworfQorCitpbnQgYWRiX2ZkOworCit2b2lkCithZGJfaW5pdCAoIHZvaWQgKQoreworICBhZGJfZmQgPSBvcGVuICgiL2Rldi9hZGIiLCAyKTsKKyAgaWYgKGFkYl9mZCA8IDApCisgICAgeworICAgICAgcGVycm9yICgidW5hYmxlIHRvIG9wZW4gL2Rldi9hZGIgcmVhZC93cml0ZSA6ICIpOworICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOworICAgIH0KK30KKwordW5zaWduZWQgY2hhciBnZXRfcGFja2V0WzJdID0geyAodW5zaWduZWQgY2hhcikgQ1VEQV9QQUNLRVQsIAorCQkJCSh1bnNpZ25lZCBjaGFyKSBDVURBX0dFVF9USU1FIH07Cit1bnNpZ25lZCBjaGFyIHNldF9wYWNrZXRbNl0gPSB7ICh1bnNpZ25lZCBjaGFyKSBDVURBX1BBQ0tFVCwgCisJCQkJKHVuc2lnbmVkIGNoYXIpIENVREFfU0VUX1RJTUUgfTsKKworaW50IAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2ICkKK3sKKyAgc3RydWN0IHRtIHRtLCAqdG1wOworICB0aW1lX3Qgc3lzdGltZTsKKyAgdGltZV90IGxhc3RfdGltZTsKKyAgdGltZV90IGNsb2NrX3RpbWU7CisgIGludCBpLCBhcmc7CisgIGRvdWJsZSBmYWN0b3I7CisgIGRvdWJsZSBub3RfYWRqdXN0ZWQ7CisgIGludCBhZGp1c3RtZW50ID0gMDsKKyAgLyogICB1bnNpZ25lZCBjaGFyIHNhdmVfY29udHJvbCwgc2F2ZV9mcmVxX3NlbGVjdDsgKi8KKyAgdW5zaWduZWQgY2hhciByZXBseVsxNl07CisKKyAgd2hpbGUgKChhcmcgPSBnZXRvcHQgKGFyZ2MsIGFyZ3YsICJyd3N1YUR2IikpICE9IC0xKQorICAgIHsKKyAgICAgIHN3aXRjaCAoYXJnKQorCXsKKwljYXNlICdyJzoKKwkgIHJlYWRpdCA9IDE7CisJICBicmVhazsKKwljYXNlICd3JzoKKwkgIHdyaXRlaXQgPSAxOworCSAgYnJlYWs7CisJY2FzZSAncyc6CisJICBzZXRpdCA9IDE7CisJICBicmVhazsKKwljYXNlICd1JzoKKwkgIHVuaXZlcnNhbCA9IDE7CisJICBicmVhazsKKwljYXNlICdhJzoKKwkgIGFkanVzdGl0ID0gMTsKKwkgIGJyZWFrOworICAgICAgICBjYXNlICdEJzoKKwkgIGRlYnVnID0gMTsKKwkgIGJyZWFrOworCWNhc2UgJ3YnOgorCSAgKHZvaWQpIGZwcmludGYoIHN0ZGVyciwgImNsb2NrICIgVkVSU0lPTiAiXG4iICk7CisJICBleGl0KEVYSVRfU1VDQ0VTUyk7CisJZGVmYXVsdDoKKwkgIHVzYWdlICgpOworCX0KKyAgICB9CisKKyAgICAvKiBJZiB3ZSBhcmUgaW4gTWtMaW51eCBkbyBub3QgZXZlbiBib3RoZXIgdHJ5aW5nIHRvIHNldCB0aGUgY2xvY2sgKi8KKyAgICBpZighYWNjZXNzKCIvcHJvYy9vc2ZtYWNoMy92ZXJzaW9uIiwgUl9PSykpCisgICAgeyAgICAgICAgICAgLyogV2UncmUgcnVubmluZyBNa0xpbnV4ICovCisgICAgIGlmICggcmVhZGl0IHwgd3JpdGVpdCB8IHNldGl0IHwgYWRqdXN0aXQgKQorCXByaW50ZigiWW91IG11c3QgY2hhbmdlIHRoZSBjbG9jayBzZXR0aW5nIGluIE1hY09TLlxuIik7CisgICAgIGV4aXQoMCk7CisgICAgfQorCisgIGlmIChyZWFkaXQgKyB3cml0ZWl0ICsgc2V0aXQgKyBhZGp1c3RpdCA+IDEpCisgICAgdXNhZ2UgKCk7CQkJLyogb25seSBhbGxvdyBvbmUgb2YgdGhlc2UgKi8KKworICBpZiAoIShyZWFkaXQgfCB3cml0ZWl0IHwgc2V0aXQgfCBhZGp1c3RpdCkpCS8qIGRlZmF1bHQgdG8gcmVhZCAqLworICAgIHJlYWRpdCA9IDE7CisKKyAgYWRiX2luaXQgKCk7CisKKyAgaWYgKGFkanVzdGl0KQorICAgIHsJCQkJLyogUmVhZCBhZGp1c3RtZW50IHBhcmFtZXRlcnMgZmlyc3QgKi8KKyAgICAgIEZJTEUgKmFkajsKKyAgICAgIGlmICgoYWRqID0gZm9wZW4gKEFESlBBVEgsICJyIikpID09IE5VTEwpCisJeworCSAgcGVycm9yIChBREpQQVRIKTsKKwkgIGV4aXQoRVhJVF9GQUlMVVJFKTsKKwl9CisgICAgICBpZiAoZnNjYW5mIChhZGosICIlbGYgJWQgJWxmIiwgJmZhY3RvciwgKGludCAqKSAoJmxhc3RfdGltZSksIAorCQkgICZub3RfYWRqdXN0ZWQpIDwgMCkKKwl7CisJICBwZXJyb3IgKEFESlBBVEgpOworCSAgZXhpdChFWElUX0ZBSUxVUkUpOworCX0KKyAgICAgICh2b2lkKSBmY2xvc2UgKGFkaik7CisgICAgICBpZiAoZGVidWcpICh2b2lkKSBwcmludGYoCisJCQkiTGFzdCBhZGp1c3RtZW50IGRvbmUgYXQgJWQgc2Vjb25kcyBhZnRlciAxLzEvMTk3MFxuIiwKKwkJCShpbnQpIGxhc3RfdGltZSk7CisgICAgfQorCisgIGlmIChyZWFkaXQgfHwgc2V0aXQgfHwgYWRqdXN0aXQpCisgICAgeworICAgICAgaW50IGlpOworCisgICAgICBpZiAod3JpdGUoYWRiX2ZkLCBnZXRfcGFja2V0LCBzaXplb2YoZ2V0X3BhY2tldCkpIDwgMCkgeworCXBlcnJvcigid3JpdGUgYWRiIik7CisJZXhpdChFWElUX0ZBSUxVUkUpOworICAgICAgfQorICAgICAgaWkgPSAoaW50KSByZWFkKGFkYl9mZCwgcmVwbHksIHNpemVvZihyZXBseSkpOworICAgICAgaWYgKGlpIDwgMCkgeworCXBlcnJvcigicmVhZCBhZGIiKTsKKwlleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgICB9CisgICAgICBpZiAoaWkgIT0gNykKKwkodm9pZCkgZnByaW50ZihzdGRlcnIsIAorCQkgICAgICAgIldhcm5pbmc6IGJhZCByZXBseSBsZW5ndGggZnJvbSBDVURBICglZClcbiIsIGlpKTsKKyAgICAgIGNsb2NrX3RpbWUgPSAodGltZV90KSAoKHJlcGx5WzNdIDw8IDI0KSArIChyZXBseVs0XSA8PCAxNikKKwkgICAgICAgICAgICAgICAgICAgICArIChyZXBseVs1XSA8PCA4KSkgKyAodGltZV90KSByZXBseVs2XTsKKyAgICAgIGNsb2NrX3RpbWUgLT0gUlRDX09GRlNFVDsKKworICAgICAgaWYgKHVuaXZlcnNhbCkgeworCXN5c3RpbWUgPSBjbG9ja190aW1lOworICAgICAgfSBlbHNlIHsKKwl0bSA9ICpnbXRpbWUoJmNsb2NrX3RpbWUpOworCSh2b2lkKSBwcmludGYoInRpbWUgaW4gcnRjIGlzICVzIiwgYXNjdGltZSgmdG0pKTsKKwl0bS50bV9pc2RzdCA9IC0xOwkJLyogZG9uJ3Qga25vdyB3aGV0aGVyIGl0J3MgRFNUICovCisJc3lzdGltZSA9IG1rdGltZSgmdG0pOworICAgICAgfQorICAgIH0KKworICBpZiAocmVhZGl0KQorICAgIHsKKyAgICAgICh2b2lkKSBwcmludGYgKCIlcyIsIGN0aW1lICgmc3lzdGltZSApKTsKKyAgICB9CisKKyAgaWYgKHNldGl0IHx8IGFkanVzdGl0KQorICAgIHsKKyAgICAgIHN0cnVjdCB0aW1ldmFsIHR2OworICAgICAgc3RydWN0IHRpbWV6b25lIHR6OworCisvKiBwcm9ncmFtIGlzIGRlc2lnbmVkIHRvIHJ1biBzZXR1aWQsIGJlIHNlY3VyZSEgKi8KKworICAgICAgaWYgKGdldHVpZCAoKSAhPSAwKQorCXsJCQkKKwkgICh2b2lkKSBmcHJpbnRmIChzdGRlcnIsIAorCQkJICAiU29ycnksIG11c3QgYmUgcm9vdCB0byBzZXQgb3IgYWRqdXN0IHRpbWVcbiIpOworCSAgZXhpdChFWElUX0ZBSUxVUkUpOworCX0KKworICAgICAgaWYgKGFkanVzdGl0KQorCXsJCQkvKiB0aGUgYWN0dWFsIGFkanVzdG1lbnQgKi8KKwkgIGRvdWJsZSBleGFjdF9hZGp1c3RtZW50OworCisJICBleGFjdF9hZGp1c3RtZW50ID0gKChkb3VibGUpIChzeXN0aW1lIC0gbGFzdF90aW1lKSkKKwkgICAgKiBmYWN0b3IgLyAoMjQgKiA2MCAqIDYwKQorCSAgICArIG5vdF9hZGp1c3RlZDsKKwkgIGlmIChleGFjdF9hZGp1c3RtZW50ID4gMC4pCisJICAgIGFkanVzdG1lbnQgPSAoaW50KSAoZXhhY3RfYWRqdXN0bWVudCArIDAuNSk7CisJICBlbHNlCisJICAgIGFkanVzdG1lbnQgPSAoaW50KSAoZXhhY3RfYWRqdXN0bWVudCAtIDAuNSk7CisJICBub3RfYWRqdXN0ZWQgPSBleGFjdF9hZGp1c3RtZW50IC0gKGRvdWJsZSkgYWRqdXN0bWVudDsKKwkgIHN5c3RpbWUgKz0gYWRqdXN0bWVudDsKKwkgIGlmIChkZWJ1ZykgeworCSAgICAgKHZvaWQpIHByaW50ZiAoIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIsCisJCSAgICAgKGludCkgKHN5c3RpbWUgLSBsYXN0X3RpbWUpKTsKKwkgICAgICh2b2lkKSBwcmludGYgKCJBZGp1c3RpbmcgdGltZSBieSAlZCBzZWNvbmRzXG4iLAorCQkgICAgIGFkanVzdG1lbnQpOworCSAgICAgKHZvaWQpIHByaW50ZiAoInJlbWFpbmluZyBhZGp1c3RtZW50IGlzICUuM2Ygc2Vjb25kc1xuIiwKKwkJICAgICBub3RfYWRqdXN0ZWQpOworCSAgfQorCX0KKyNpZm5kZWYgS0VFUF9PRkYKKyAgICAgIHR2LnR2X3NlYyA9IHN5c3RpbWU7CisgICAgICB0di50dl91c2VjID0gMDsKKyAgICAgIHR6LnR6X21pbnV0ZXN3ZXN0ID0gdGltZXpvbmUgLyA2MDsKKyAgICAgIHR6LnR6X2RzdHRpbWUgPSBkYXlsaWdodDsKKworICAgICAgaWYgKHNldHRpbWVvZmRheSAoJnR2LCAmdHopICE9IDApCisgICAgICAgIHsKKwkgICh2b2lkKSBmcHJpbnRmIChzdGRlcnIsCisJCSAgICJVbmFibGUgdG8gc2V0IHRpbWUgLS0gcHJvYmFibHkgeW91IGFyZSBub3Qgcm9vdFxuIik7CisJICBleGl0KEVYSVRfRkFJTFVSRSk7CisJfQorICAgICAgCisgICAgICBpZiAoZGVidWcpIHsKKwkgKHZvaWQpIHByaW50ZiggIkNhbGxlZCBzZXR0aW1lb2ZkYXk6XG4iICk7CisJICh2b2lkKSBwcmludGYoICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIiwKKwkJIHR2LnR2X3NlYywgdHYudHZfdXNlYyApOworCSAodm9pZCkgcHJpbnRmKCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkLCB0ei50el9kc3R0aW1lID0gJWRcbiIsCisJCSB0ei50el9taW51dGVzd2VzdCwgdHoudHpfZHN0dGltZSApOworICAgICAgfQorI2VuZGlmCisgICAgfQorICAKKyAgaWYgKHdyaXRlaXQgfHwgKGFkanVzdGl0ICYmIGFkanVzdG1lbnQgIT0gMCkpCisgICAgeworICAgICAgc3lzdGltZSA9IHRpbWUgKE5VTEwpOworCisgICAgICBpZiAodW5pdmVyc2FsKSB7CisJY2xvY2tfdGltZSA9IHN5c3RpbWU7CisKKyAgICAgIH0gZWxzZSB7CisJdG1wID0gbG9jYWx0aW1lKCZzeXN0aW1lKTsKKwljbG9ja190aW1lID0gbWtnbXRpbWUodG1wKTsKKyAgICAgIH0KKworICAgICAgY2xvY2tfdGltZSArPSBSVENfT0ZGU0VUOworICAgICAgc2V0X3BhY2tldFsyXSA9IGNsb2NrX3RpbWUgPj4gMjQ7CisgICAgICBzZXRfcGFja2V0WzNdID0gY2xvY2tfdGltZSA+PiAxNjsKKyAgICAgIHNldF9wYWNrZXRbNF0gPSBjbG9ja190aW1lID4+IDg7CisgICAgICBzZXRfcGFja2V0WzVdID0gKHVuc2lnbmVkIGNoYXIpIGNsb2NrX3RpbWU7CisKKyAgICAgIGlmICh3cml0ZShhZGJfZmQsIHNldF9wYWNrZXQsIHNpemVvZihzZXRfcGFja2V0KSkgPCAwKSB7CisJcGVycm9yKCJ3cml0ZSBhZGIgKHNldCkiKTsKKwlleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgICB9CisgICAgICBpID0gKGludCkgcmVhZChhZGJfZmQsIHJlcGx5LCBzaXplb2YocmVwbHkpKTsKKyAgICAgIGlmIChkZWJ1ZykgeworCWludCBqOworCSh2b2lkKSBwcmludGYoInNldCByZXBseSAlZCBieXRlczoiLCBpKTsKKwlmb3IgKGogPSAwOyBqIDwgaTsgKytqKSAKKwkgICAgKHZvaWQpIHByaW50ZigiICUuMngiLCAodW5zaWduZWQgaW50KSByZXBseVtqXSk7CisJKHZvaWQpIHByaW50ZigiXG4iKTsKKyAgICAgIH0KKyAgICAgIGlmIChpICE9IDMgfHwgcmVwbHlbMV0gIT0gKHVuc2lnbmVkIGNoYXIpIDApCisJKHZvaWQpIGZwcmludGYoc3RkZXJyLCAiV2FybmluZzogZXJyb3IgJWQgc2V0dGluZyBSVENcbiIsIAorCQkgICAgICAgKGludCkgcmVwbHlbMV0pOworCisgICAgICBpZiAoZGVidWcpIHsKKwljbG9ja190aW1lIC09IFJUQ19PRkZTRVQ7CisJKHZvaWQpIHByaW50Zigic2V0IFJUQyB0byAlcyIsIGFzY3RpbWUoZ210aW1lKCZjbG9ja190aW1lKSkpOworICAgICAgfQorICAgIH0KKyAgZWxzZQorICAgIGlmIChkZWJ1ZykgKHZvaWQpIHByaW50ZiAoIkNNT1MgY2xvY2sgdW5jaGFuZ2VkLlxuIik7CisgIC8qIFNhdmUgZGF0YSBmb3IgbmV4dCAnYWRqdXN0aXQnIGNhbGwgKi8KKyAgaWYgKGFkanVzdGl0KQorICAgIHsKKyAgICAgIEZJTEUgKmFkajsKKyAgICAgIGlmICgoYWRqID0gZm9wZW4gKEFESlBBVEgsICJ3IikpID09IE5VTEwpCisJeworCSAgcGVycm9yIChBREpQQVRIKTsKKwkgIGV4aXQoRVhJVF9GQUlMVVJFKTsKKwl9CisgICAgICAodm9pZCkgZnByaW50ZiAoYWRqLCAiJWYgJWQgJWZcbiIsIGZhY3RvciwgKGludCkgc3lzdGltZSwgbm90X2FkanVzdGVkKTsKKyAgICAgICh2b2lkKSBmY2xvc2UgKGFkaik7CisgICAgfQorICBleGl0KEVYSVRfU1VDQ0VTUyk7Cit9CisKKy8qIFN0b2xlbiBmcm9tIGxpbnV4L2FyY2gvaTM4Ni9rZXJuZWwvdGltZS5jLiAqLworLyogQ29udmVydHMgR3JlZ29yaWFuIGRhdGUgdG8gc2Vjb25kcyBzaW5jZSAxOTcwLTAxLTAxIDAwOjAwOjAwLgorICogQXNzdW1lcyBpbnB1dCBpbiBub3JtYWwgZGF0ZSBmb3JtYXQsIGkuZS4gMTk4MC0xMi0zMSAyMzo1OTo1OQorICogPT4geWVhcj0xOTgwLCBtb249MTIsIGRheT0zMSwgaG91cj0yMywgbWluPTU5LCBzZWM9NTkuCisgKgorICogW0ZvciB0aGUgSnVsaWFuIGNhbGVuZGFyICh3aGljaCB3YXMgdXNlZCBpbiBSdXNzaWEgYmVmb3JlIDE5MTcsCisgKiBCcml0YWluICYgY29sb25pZXMgYmVmb3JlIDE3NTIsIGFueXdoZXJlIGVsc2UgYmVmb3JlIDE1ODIsCisgKiBhbmQgaXMgc3RpbGwgaW4gdXNlIGJ5IHNvbWUgY29tbXVuaXRpZXMpIGxlYXZlIG91dCB0aGUKKyAqIC15ZWFyLzEwMCt5ZWFyLzQwMCB0ZXJtcywgYW5kIGFkZCAxMC5dCisgKgorICogVGhpcyBhbGdvcml0aG0gd2FzIGZpcnN0IHB1Ymxpc2hlZCBieSBHYXVzcyAoSSB0aGluaykuCisgKgorICogV0FSTklORzogdGhpcyBmdW5jdGlvbiB3aWxsIG92ZXJmbG93IG9uIDIxMDYtMDItMDcgMDY6Mjg6MTYgb24KKyAqIG1hY2hpbmVzIHdlcmUgbG9uZyBpcyAzMi1iaXQhIChIb3dldmVyLCBhcyB0aW1lX3QgaXMgc2lnbmVkLCB3ZQorICogd2lsbCBhbHJlYWR5IGdldCBwcm9ibGVtcyBhdCBvdGhlciBwbGFjZXMgb24gMjAzOC0wMS0xOSAwMzoxNDowOCkKKyAqLwordGltZV90IG1rZ210aW1lKHN0cnVjdCB0bSAqdG0pCit7CisgIGludCBtb24gPSB0bS0+dG1fbW9uICsgMTsKKyAgaW50IHllYXIgPSB0bS0+dG1feWVhciArIDE5MDA7CisKKyAgaWYgKDAgPj0gKGludCkgKG1vbiAtPSAyKSkgewkvKiAxLi4xMiAtPiAxMSwxMiwxLi4xMCAqLworICAgIG1vbiArPSAxMjsJLyogUHV0cyBGZWIgbGFzdCBzaW5jZSBpdCBoYXMgbGVhcCBkYXkgKi8KKyAgICB5ZWFyIC09IDE7CisgIH0KKyAgcmV0dXJuICgoKAorCSAgICAodW5zaWduZWQgbG9uZykoeWVhci80IC0geWVhci8xMDAgKyB5ZWFyLzQwMCArIDM2Nyptb24vMTIpICsKKwkgICAgICB0bS0+dG1fbWRheSArIHllYXIqMzY1IC0gNzE5NDk5CisJICAgICkqMjQgKyB0bS0+dG1faG91ciAvKiBub3cgaGF2ZSBob3VycyAqLworCSAgICkqNjAgKyB0bS0+dG1fbWluIC8qIG5vdyBoYXZlIG1pbnV0ZXMgKi8KKwkgICkqNjAgKyB0bS0+dG1fc2VjOyAvKiBmaW5hbGx5IHNlY29uZHMgKi8KK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2h3Y2xvY2svY2xvY2suaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2h3Y2xvY2svY2xvY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGViN2ViCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaHdjbG9jay9jbG9jay5oCkBAIC0wLDAgKzEsNTMgQEAKKyNpZm5kZWYgSFdDTE9DS19DTE9DS19ICisjZGVmaW5lIEhXQ0xPQ0tfQ0xPQ0tfSAorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgkJLyogZm9yIGVycm5vLCBFUEVSTSwgRUlOVkFMLCBFTk9FTlQgKi8KKyNpbmNsdWRlIDx0aW1lLmg+CisKKyNpbmNsdWRlICJjLmgiCisKK3N0cnVjdCBjbG9ja19vcHMgeworCWNoYXIgKmludGVyZmFjZV9uYW1lOworICAgICAgICBpbnQgKCpnZXRfcGVybWlzc2lvbnMpKHZvaWQpOworICAgICAgICBpbnQgKCpyZWFkX2hhcmR3YXJlX2Nsb2NrKShzdHJ1Y3QgdG0gKnRtKTsKKyAgICAgICAgaW50ICgqc2V0X2hhcmR3YXJlX2Nsb2NrKShjb25zdCBzdHJ1Y3QgdG0gKnRtKTsKKwlpbnQgKCpzeW5jaHJvbml6ZV90b19jbG9ja190aWNrKSh2b2lkKTsKK307CisKK2V4dGVybiBzdHJ1Y3QgY2xvY2tfb3BzICpwcm9iZV9mb3JfY21vc19jbG9jayh2b2lkKTsKK2V4dGVybiBzdHJ1Y3QgY2xvY2tfb3BzICpwcm9iZV9mb3JfcnRjX2Nsb2NrKHZvaWQpOworZXh0ZXJuIHN0cnVjdCBjbG9ja19vcHMgKnByb2JlX2Zvcl9rZF9jbG9jayh2b2lkKTsKKwordHlwZWRlZiBpbnQgYm9vbDsKKworLyogaHdjbG9jay5jICovCitleHRlcm4gY2hhciAqcHJvZ25hbWU7CitleHRlcm4gaW50IGRlYnVnOworZXh0ZXJuIGludCBlcG9jaF9vcHRpb247CitleHRlcm4gdm9pZCBvdXRzeXNlcnIoY2hhciAqbXNnLCAuLi4pCisjaWZkZWYgX19HTlVDX18KKyAgICAgICAgX19hdHRyaWJ1dGVfXyAoKGZvcm1hdCAocHJpbnRmLCAxLCAyKSkpOworI2Vsc2UKKyAgICAgICAgOworI2VuZGlmCitleHRlcm4gZG91YmxlIHRpbWVfZGlmZihzdHJ1Y3QgdGltZXZhbCBzdWJ0cmFoZW5kLCBzdHJ1Y3QgdGltZXZhbCBzdWJ0cmFjdG9yKTsKKy8qIGNtb3MuYyAqLworZXh0ZXJuIHZvaWQgc2V0X2Ntb3NfZXBvY2goaW50IEFSQ2NvbnNvbGUsIGludCBTUk0pOworZXh0ZXJuIHZvaWQgc2V0X2Ntb3NfYWNjZXNzKGludCBKZW5zZW4sIGludCBmdW5reV90b3kpOworCisvKiBydGMuYyAqLworZXh0ZXJuIGludCBnZXRfZXBvY2hfcnRjKHVuc2lnbmVkIGxvbmcgKmVwb2NoLCBpbnQgc2lsZW50KTsKK2V4dGVybiBpbnQgc2V0X2Vwb2NoX3J0Yyh1bnNpZ25lZCBsb25nIGVwb2NoKTsKK2V4dGVybiBjaGFyICpydGNfZGV2X25hbWU7CisKKyNpZmRlZiBIQVZFX0xJQkFVRElUCitleHRlcm4gdm9pZCBod2F1ZGl0X2V4aXQoaW50IHN0YXR1cyk7CisjIGRlZmluZSBod2Nsb2NrX2V4aXQoX3N0YXR1cykJaHdhdWRpdF9leGl0KF9zdGF0dXMpCisjZWxzZQorIyBkZWZpbmUgaHdjbG9ja19leGl0KF9zdGF0dXMpCWV4aXQoX3N0YXR1cykKKyNlbmRpZgorCisjZW5kaWYgLyogSFdDTE9DS19DTE9DS19IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL2Ntb3MuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2h3Y2xvY2svY21vcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMzQ5NWIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL2Ntb3MuYwpAQCAtMCwwICsxLDYxNCBAQAorLyoKKyAqIGkzODYgQ01PUyBzdGFydHMgb3V0IHdpdGggMTQgYnl0ZXMgY2xvY2sgZGF0YQorICogYWxwaGEgaGFzIHNvbWV0aGluZyBzaW1pbGFyLCBidXQgd2l0aCBkZXRhaWxzCisgKiBkZXBlbmRpbmcgb24gdGhlIG1hY2hpbmUgdHlwZS4KKyAqCisgKiBieXRlIDA6IHNlY29uZHMgKDAtNTkpCisgKiBieXRlIDI6IG1pbnV0ZXMgKDAtNTkpCisgKiBieXRlIDQ6IGhvdXJzICgwLTIzIGluIDI0aHIgbW9kZSwKKyAqICAgICAgICAgICAgICAgIDEtMTIgaW4gMTJociBtb2RlLCB3aXRoIGhpZ2ggYml0IHVuc2V0L3NldCBpZiBhbS9wbSkKKyAqIGJ5dGUgNjogd2Vla2RheSAoMS03LCBTdW5kYXk9MSkKKyAqIGJ5dGUgNzogZGF5IG9mIHRoZSBtb250aCAoMS0zMSkKKyAqIGJ5dGUgODogbW9udGggKDEtMTIpCisgKiBieXRlIDk6IHllYXIgKDAtOTkpCisgKiBOdW1iZXJzIGFyZSBzdG9yZWQgaW4gQkNEL2JpbmFyeSBpZiBiaXQgMiBvZiBieXRlIDExIGlzIHVuc2V0L3NldAorICogVGhlIGNsb2NrIGlzIGluIDEyaHIvMjRociBtb2RlIGlmIGJpdCAxIG9mIGJ5dGUgMTEgaXMgdW5zZXQvc2V0CisgKiBUaGUgY2xvY2sgaXMgdW5kZWZpbmVkIChiZWluZyB1cGRhdGVkKSBpZiBiaXQgNyBvZiBieXRlIDEwIGlzIHNldC4KKyAqIFRoZSBjbG9jayBpcyBmcm96ZW4gKHRvIGJlIHVwZGF0ZWQpIGJ5IHNldHRpbmcgYml0IDcgb2YgYnl0ZSAxMQorICogQml0IDcgb2YgYnl0ZSAxNCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgQ01PUyBjbG9jayBpcyByZWxpYWJsZToKKyAqIGl0IGlzIDEgaWYgUlRDIHBvd2VyIGhhcyBiZWVuIGdvb2Qgc2luY2UgdGhpcyBiaXQgd2FzIGxhc3QgcmVhZDsKKyAqIGl0IGlzIDAgd2hlbiB0aGUgYmF0dGVyeSBpcyBkZWFkIGFuZCBzeXN0ZW0gcG93ZXIgaGFzIGJlZW4gb2ZmLgorICoKKyAqIEF2b2lkIHNldHRpbmcgdGhlIFJUQyBjbG9jayB3aXRoaW4gMiBzZWNvbmRzIG9mIHRoZSBkYXkgcm9sbG92ZXIKKyAqIHRoYXQgc3RhcnRzIGEgbmV3IG1vbnRoIG9yIGVudGVycyBkYXlsaWdodCBzYXZpbmcgdGltZS4KKyAqCisgKiBUaGUgY2VudHVyeSBzaXR1YXRpb24gaXMgbWVzc3k6CisgKiBVc3VhbGx5IGJ5dGUgNTAgKDB4MzIpIGdpdmVzIHRoZSBjZW50dXJ5IChpbiBCQ0QsIHNvIDE5IG9yIDIwIGhleCksCisgKiBidXQgSUJNIFBTLzIgaGFzIChwYXJ0IG9mKSBhIGNoZWNrc3VtIHRoZXJlIGFuZCB1c2VzIGJ5dGUgNTUgKDB4MzcpLgorICogU29tZXRpbWVzIGJ5dGUgMTI3ICgweDdmKSBvciBCYW5rIDEsIGJ5dGUgMHg0OCBnaXZlcyB0aGUgY2VudHVyeS4KKyAqIFRoZSBvcmlnaW5hbCBSVEMgd2lsbCBub3QgYWNjZXNzIGFueSBjZW50dXJ5IGJ5dGU7IHNvbWUgbW9kZXJuCisgKiB2ZXJzaW9ucyB3aWxsLiBJZiBhIG1vZGVybiBSVEMgb3IgQklPUyBpbmNyZW1lbnRzIHRoZSBjZW50dXJ5IGJ5dGUKKyAqIGl0IG1heSBnbyBmcm9tIDB4MTkgdG8gMHgyMCwgYnV0IGluIHNvbWUgYnVnZ3kgY2FzZXMgMHgxYSBpcyBwcm9kdWNlZC4KKyAqLworCisvKgorICogQSBzdHJ1Y3QgdG0gaGFzIGludCBmaWVsZHMKKyAqICAgdG1fc2VjICgwLTU5LCA2MCBvciA2MSBvbmx5IGZvciBsZWFwIHNlY29uZHMpCisgKiAgIHRtX21pbiAoMC01OSkKKyAqICAgdG1faG91ciAoMC0yMykKKyAqICAgdG1fbWRheSAoMS0zMSkKKyAqICAgdG1fbW9uICgwLTExKQorICogICB0bV95ZWFyIChudW1iZXIgb2YgeWVhcnMgc2luY2UgMTkwMCkKKyAqICAgdG1fd2RheSAoMC02LCAwPVN1bmRheSkKKyAqICAgdG1feWRheSAoMC0zNjUpCisgKiAgIHRtX2lzZHN0ICg+MDogeWVzLCAwOiBubywgPDA6IHVua25vd24pCisgKi8KKworI2luY2x1ZGUgPHVuaXN0ZC5oPgkJLyogZm9yIGdldGV1aWQoKSAqLworI2luY2x1ZGUgPGZjbnRsLmg+CQkvKiBmb3IgT19SRFdSICovCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlICJubHMuaCIKKworI2lmIGRlZmluZWQoX19pMzg2X18pCisjaWZkZWYgSEFWRV9TWVNfSU9fSAorI2luY2x1ZGUgPHN5cy9pby5oPgorI2Vsc2UKKyNpbmNsdWRlIDxhc20vaW8uaD4JCS8qIGZvciBpbmIsIG91dGIgKi8KKyNlbmRpZgorI2VsaWYgZGVmaW5lZChfX2FscGhhX18pCisvKiA8YXNtL2lvLmg+IGZhaWxzIHRvIGNvbXBpbGUsIHByb2JhYmx5IGJlY2F1c2Ugb2YgdTggZXRjICovCitleHRlcm4gdW5zaWduZWQgaW50ICAgICBpbmIodW5zaWduZWQgbG9uZyBwb3J0KTsKK2V4dGVybiB2b2lkICAgICAgICAgICAgIG91dGIodW5zaWduZWQgY2hhciBiLHVuc2lnbmVkIGxvbmcgcG9ydCk7CisjZWxzZQordm9pZCBvdXRiKGludCBhLCBpbnQgYil7fQoraW50IGluYihpbnQgYyl7IHJldHVybiAwOyB9CisjZW5kaWYKKworI2luY2x1ZGUgImNsb2NrLmgiCisKKyNkZWZpbmUgQkNEX1RPX0JJTih2YWwpICgodmFsKT0oKHZhbCkmMTUpICsgKCh2YWwpPj40KSoxMCkKKyNkZWZpbmUgQklOX1RPX0JDRCh2YWwpICgodmFsKT0oKCh2YWwpLzEwKTw8NCkgKyAodmFsKSUxMCkKKworLyoKKyAqIFRoZSBlcG9jaC4KKyAqCisgKiBVbml4IHVzZXMgMTkwMCBhcyBlcG9jaCBmb3IgYSBzdHJ1Y3QgdG0sIGFuZCAxOTcwIGZvciBhIHRpbWVfdC4KKyAqIEJ1dCB3aGF0IHdhcyB3cml0dGVuIHRvIENNT1M/CisgKiBEaWdpdGFsIERFQ3N0YXRpb25zIHVzZSAxOTI4IC0gdGhpcyBpcyBvbiBhIG1pcHMgb3IgYWxwaGEKKyAqIERpZ2l0YWwgVW5peCB1c2VzIDE5NTIsIGUuZy4gb24gQVhQcHhpMzMKKyAqIFdpbmRvd3MgTlQgdXNlcyAxOTgwLgorICogVGhlIEFSQyBjb25zb2xlIGV4cGVjdHMgdG8gYm9vdCBXaW5kb3dzIE5UIGFuZCB1c2VzIDE5ODAuCisgKiAoQnV0IGEgUnVmZmlhbiB1c2VzIDE5MDAsIGp1c3QgbGlrZSBTUk0uKQorICogSXQgaXMgcmVwb3J0ZWQgdGhhdCBBTFBIQV9QUkVfVjFfMl9TUk1fQ09OU09MRSB1c2VzIDE5NTguCisgKi8KKyNkZWZpbmUgVE1fRVBPQ0ggMTkwMAoraW50IGNtb3NfZXBvY2ggPSAxOTAwOworCisvKiBNYXJ0aW4gT3N0ZXJtYW5uIHdyaXRlczoKK1RoZSBwcm9ibGVtIHdpdGggdGhlIEplbnNlbiBpcyB0d29mb2xkOiBGaXJzdCwgaXQgaGFzIHRoZSBjbG9jayBhdCBhCitkaWZmZXJlbnQgYWRkcmVzcy4gU2Vjb25kbHksIGl0IGhhcyBhIGRpc3RpbmN0aW9uIGJld2VlbiAibG9jYWwiIGFuZAorbm9ybWFsIGJ1cyBhZGRyZXNzZXMuIFRoZSBsb2NhbCBvbmVzIHBlcnRhaW4gdG8gdGhlIGhhcmR3YXJlIGludGVncmF0ZWQKK2ludG8gdGhlIGNoaXBzZXQsIGxpa2Ugc2VyaWFsL3BhcmFsbGVsIHBvcnRzIGFuZCBvZiBjb3Vyc2UsIHRoZSBSVEMuCitUaG9zZSBuZWVkIHRvIGJlIGFkZHJlc3NlZCBkaWZmZXJlbnRseS4gVGhpcyBpcyBoYW5kbGVkIGZpbmUgaW4gdGhlIGtlcm5lbCwKK2FuZCBpdCdzIG5vdCBhIHByb2JsZW0sIHNpbmNlIHRoaXMgdXN1YWxseSBnZXRzIHRvdGFsbHkgb3B0aW1pemVkIGJ5IHRoZQorY29tcGlsZS4gQnV0IHRoZSBpL28gcm91dGluZXMgb2YgKGcpbGliYyBsYWNrIHRoaXMgc3VwcG9ydCBzbyBmYXIuCitUaGUgcmVzdWx0IG9mIHRoaXMgaXMsIHRoYXQgdGhlIG9sZCBjbG9jayBwcm9ncmFtIHdvcmtlZCBvbmx5IG9uIHRoZQorSmVuc2VuIHdoZW4gVVNFX0RFVl9QT1JUIHdhcyBkZWZpbmVkLCBidXQgbm90IHdpdGggdGhlIG5vcm1hbCBpbmIvb3V0YgorZnVuY3Rpb25zLgorICovCitpbnQgdXNlX2Rldl9wb3J0ID0gMDsJCS8qIDEgZm9yIEplbnNlbiAqLworaW50IGRldl9wb3J0X2ZkOwordW5zaWduZWQgc2hvcnQgY2xvY2tfY3RsX2FkZHIgPSAweDcwOwkvKiAweDE3MCBmb3IgSmVuc2VuICovCit1bnNpZ25lZCBzaG9ydCBjbG9ja19kYXRhX2FkZHIgPSAweDcxOyAJLyogMHgxNzEgZm9yIEplbnNlbiAqLworCisKK2ludCBjZW50dXJ5X2J5dGUgPSAwOwkJLyogMDogZG9uJ3QgYWNjZXNzIGEgY2VudHVyeSBieXRlCisJCQkJICA1MCAoMHgzMik6IHVzdWFsIFBDIHZhbHVlCisJCQkJICA1NSAoMHgzNyk6IFBTLzIgKi8KKworI2lmZGVmIF9fYWxwaGFfXworaW50IGZ1bmt5VE9ZID0gMDsJCS8qIDEgZm9yIFBDMTY0L0xYMTY0L1NYMTY0IHR5cGUgYWxwaGEgKi8KKyNlbmRpZgorCisjaWZkZWYgX19hbHBoYQorCitzdGF0aWMgaW50Citpc19pbl9jcHVpbmZvKGNoYXIgKmZtdCwgY2hhciAqc3RyKQoreworICAgIEZJTEUgKmNwdWluZm87CisgICAgY2hhciBmaWVsZFsyNTZdOworICAgIGNoYXIgZm9ybWF0WzI1Nl07CisgICAgaW50IGZvdW5kID0gMDsKKworICAgIHNwcmludGYoZm9ybWF0LCAiJXMgOiAlcyIsIGZtdCwgIiUyNTVzIik7CisKKyAgICBpZiAoKGNwdWluZm8gPSBmb3BlbiAoIi9wcm9jL2NwdWluZm8iLCAiciIpKSAhPSBOVUxMKSB7CisJd2hpbGUgKCFmZW9mKGNwdWluZm8pKSB7CisJICAgIGlmIChmc2NhbmYgKGNwdWluZm8sIGZvcm1hdCwgZmllbGQpID09IDEpIHsKKwkJaWYgKHN0cm5jbXAoZmllbGQsIHN0ciwgc3RybGVuKHN0cikpID09IDApCisJCSAgICBmb3VuZCA9IDE7CisJCWJyZWFrOworCSAgICB9CisJICAgIGZnZXRzIChmaWVsZCwgMjU2LCBjcHVpbmZvKTsKKwl9CisJZmNsb3NlKGNwdWluZm8pOworICAgIH0KKyAgICByZXR1cm4gZm91bmQ7Cit9CisKKy8qIFNldCBjbW9zX2Vwb2NoLCBlaXRoZXIgZnJvbSB1c2VyIG9wdGlvbnMsIG9yIGJ5IGFza2luZyB0aGUga2VybmVsLAorICAgb3IgYnkgbG9va2luZyBhdCAvcHJvYy9jcHVfaW5mbyAqLwordm9pZAorc2V0X2Ntb3NfZXBvY2goaW50IEFSQ2NvbnNvbGUsIGludCBTUk0pIHsKKyAgdW5zaWduZWQgbG9uZyBlcG9jaDsKKworICAvKiBCZWxpZXZlIHRoZSB1c2VyICovCisgIGlmIChlcG9jaF9vcHRpb24gIT0gLTEpIHsKKyAgICBjbW9zX2Vwb2NoID0gZXBvY2hfb3B0aW9uOworICAgIHJldHVybjsKKyAgfQorCisgIGlmIChBUkNjb25zb2xlKQorICAgIGNtb3NfZXBvY2ggPSAxOTgwOworCisgIGlmIChBUkNjb25zb2xlIHx8IFNSTSkKKyAgICByZXR1cm47CisKKworICAvKiBJZiB3ZSBjYW4gYXNrIHRoZSBrZXJuZWwsIHdlIGRvbid0IG5lZWQgZ3Vlc3NpbmcgZnJvbSAvcHJvYy9jcHVpbmZvICovCisgIGlmIChnZXRfZXBvY2hfcnRjKCZlcG9jaCwgMSkgPT0gMCkgeworICAgICBjbW9zX2Vwb2NoID0gZXBvY2g7CisgICAgIHJldHVybjsKKyAgfQorCisgIC8qIFRoZSBrZXJuZWwgc291cmNlIHRvZGF5IHNheXM6IHJlYWQgdGhlIHllYXIuCisgICAgIElmIGl0IGlzIGluIDAtMTkgdGhlbiB0aGUgZXBvY2ggaXMgMjAwMC4KKyAgICAgSWYgaXQgaXMgaW4gMjAtNDcgdGhlbiB0aGUgZXBvY2ggaXMgMTk4MC4KKyAgICAgSWYgaXQgaXMgaW4gNDgtNjkgdGhlbiB0aGUgZXBvY2ggaXMgMTk1Mi4KKyAgICAgSWYgaXQgaXMgaW4gNzAtOTkgdGhlbiB0aGUgZXBvY2ggaXMgMTkyOC4KKyAgICAgT3RoZXJ3aXNlIHRoZSBlcG9jaCBpcyAxOTAwLgorICAgICBDbGVhcmx5LCB0aGlzIG11c3QgYmUgY2hhbmdlZCBiZWZvcmUgMjAxOS4gKi8KKworICAvKiBTZWUgd2hldGhlciB3ZSBhcmUgZGVhbGluZyB3aXRoIFNSTSBvciBNSUxPLCBhcyB0aGV5IGhhdmUKKyAgICAgZGlmZmVyZW50ICJlcG9jaCIgaWRlYXMuICovCisgIGlmIChpc19pbl9jcHVpbmZvKCJzeXN0ZW0gc2VyaWFsIG51bWJlciIsICJNSUxPIikpIHsKKyAgICAgIEFSQ2NvbnNvbGUgPSAxOworICAgICAgaWYgKGRlYnVnKSBwcmludGYgKF8oImJvb3RlZCBmcm9tIE1JTE9cbiIpKTsKKyAgfQorCisgIC8qIFNlZSB3aGV0aGVyIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBSVUZGSUFOIGFrYSBBbHBoYSBQQy0xNjQgVVggKG9yIEJYKSwKKyAgICAgYXMgdGhleSBoYXZlIFJFQUxMWSBkaWZmZXJlbnQgVE9ZIChUaW1lT2ZZZWFyKSBmb3JtYXQ6IEJDRCwgYW5kIG5vdAorICAgICBhbiBBUkMtc3R5bGUgZXBvY2guCisgICAgIEJDRCBpcyBkZXRlY3RlZCBkeW5hbWljYWxseSwgYnV0IHdlIG11c3QgTk9UIGFkanVzdCBsaWtlIEFSQy4gKi8KKyAgaWYgKEFSQ2NvbnNvbGUgJiYgaXNfaW5fY3B1aW5mbygic3lzdGVtIHR5cGUiLCAiUnVmZmlhbiIpKSB7CisgICAgQVJDY29uc29sZSA9IDA7CisgICAgaWYgKGRlYnVnKSBwcmludGYgKF8oIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iKSk7CisgIH0KKworICBpZiAoQVJDY29uc29sZSkKKyAgICBjbW9zX2Vwb2NoID0gMTk4MDsKK30KKwordm9pZAorc2V0X2Ntb3NfYWNjZXNzKGludCBKZW5zZW4sIGludCBmdW5reV90b3kpIHsKKworICAvKiBTZWUgd2hldGhlciB3ZSdyZSBkZWFsaW5nIHdpdGggYSBKZW5zZW4tLS1pdCBoYXMgYSB3ZWlyZCBJL08KKyAgICAgc3lzdGVtLiAgREVDIHdhcyBqdXN0IGxlYXJuaW5nIGhvdyB0byBidWlsZCBBbHBoYSBQQ3MuICAqLworICBpZiAoSmVuc2VuIHx8IGlzX2luX2NwdWluZm8oInN5c3RlbSB0eXBlIiwgIkplbnNlbiIpKSB7CisgICAgdXNlX2Rldl9wb3J0ID0gMTsKKyAgICBjbG9ja19jdGxfYWRkciA9IDB4MTcwOworICAgIGNsb2NrX2RhdGFfYWRkciA9IDB4MTcxOworICAgIGlmIChkZWJ1ZykgcHJpbnRmIChfKCJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIiksIGNsb2NrX2N0bF9hZGRyKTsKKyAgfQorCisgIC8qIHNlZSB3aGV0aGVyIHdlIGFyZSBkZWFsaW5nIHdpdGggUEMxNjQvTFgxNjQvU1gxNjQsIGFzIHRoZXkgaGF2ZSBhIFRPWQorICAgICB0aGF0IG11c3QgYmUgYWNjZXNzZWQgZGlmZmVyZW50bHkgdG8gd29yayBjb3JyZWN0bHkuICovCisgIC8qIE5hdXRpbHVzIHN0dWZmIHJlcG9ydGVkIGJ5IE5lb2tsaXMgS3lyaWF6aXMgKi8KKyAgaWYgKGZ1bmt5X3RveSB8fAorICAgICAgaXNfaW5fY3B1aW5mbygic3lzdGVtIHZhcmlhdGlvbiIsICJQQzE2NCIpIHx8CisgICAgICBpc19pbl9jcHVpbmZvKCJzeXN0ZW0gdmFyaWF0aW9uIiwgIkxYMTY0IikgfHwKKyAgICAgIGlzX2luX2NwdWluZm8oInN5c3RlbSB2YXJpYXRpb24iLCAiU1gxNjQiKSB8fAorICAgICAgaXNfaW5fY3B1aW5mbygic3lzdGVtIHR5cGUiLCAiTmF1dGlsdXMiKSkgeworICAgICAgZnVua3lUT1kgPSAxOworICAgICAgaWYgKGRlYnVnKSBwcmludGYgKF8oImZ1bmt5IFRPWSFcbiIpKTsKKyAgfQorfQorI2VuZGlmCisKKworI2lmIF9fYWxwaGFfXworLyoKKyAqIFRoZSBBbHBoYSBkb2Vzbid0IGFsbG93IHVzZXItbGV2ZWwgY29kZSB0byBkaXNhYmxlIGludGVycnVwdHMgKGZvcgorICogZ29vZCByZWFzb25zKS4gIEluc3RlYWQsIHdlIGVuc3VyZSBhdG9taWMgb3BlcmF0aW9uIGJ5IHBlcmZvcm1pbmcKKyAqIHRoZSBvcGVyYXRpb24gYW5kIGNoZWNraW5nIHdoZXRoZXIgdGhlIGhpZ2ggMzIgYml0cyBvZiB0aGUgY3ljbGUKKyAqIGNvdW50ZXIgY2hhbmdlZC4gIElmIHRoZXkgZGlkLCBhIGNvbnRleHQgc3dpdGNoIG11c3QgaGF2ZSBvY2N1cnJlZAorICogYW5kIHdlIHJlZG8gdGhlIG9wZXJhdGlvbi4gIEFzIGxvbmcgYXMgdGhlIG9wZXJhdGlvbiBpcyByZWFzb25hYmx5CisgKiBzaG9ydCwgaXQgd2lsbCBjb21wbGV0ZSBhdG9taWNhbGx5LCBldmVudHVhbGx5LgorICovCisKK3N0YXRpYyB1bnNpZ25lZCBsb25nCithdG9taWMoY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyAoKm9wKSh1bnNpZ25lZCBsb25nKSwKKyAgICAgICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKyAgdW5zaWduZWQgbG9uZyB0czEsIHRzMiwgbiwgdjsKKworICBmb3IgKG4gPSAwOyBuIDwgMTAwMDsgKytuKSB7CisgICAgYXNtIHZvbGF0aWxlICgicnBjYyAlMCIgOiAicj0iKHRzMSkpOworICAgIHYgPSAoKm9wKShhcmcpOworICAgIGFzbSB2b2xhdGlsZSAoInJwY2MgJTAiIDogInI9Iih0czIpKTsKKworICAgIGlmICgodHMxIF4gdHMyKSA+PiAzMiA9PSAwKSB7CisgICAgICByZXR1cm4gdjsKKyAgICB9CisgIH0KKyAgZnByaW50ZihzdGRlcnIsIF8oIiVzOiBhdG9taWMgJXMgZmFpbGVkIGZvciAxMDAwIGl0ZXJhdGlvbnMhIiksIHByb2duYW1lLCBuYW1lKTsKKyAgZXhpdCgxKTsKK30KKyNlbHNlCisKKy8qCisgKiBIbW1oLCB0aGlzIGlzbid0IHZlcnkgYXRvbWljLiAgTWF5YmUgd2Ugc2hvdWxkIGZvcmNlIGFuIGVycm9yCisgKiBpbnN0ZWFkPworICoKKyAqIFRPRE86IG9wdGltaXplIHRoZSBhY2Nlc3MgdG8gQ01PUyBieSBtbG9ja2FsbChNQ0xfQ1VSUkVOVCkKKyAqICAgICAgIGFuZCBTQ0hFRF9GSUZPCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nCithdG9taWMoY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyAoKm9wKSh1bnNpZ25lZCBsb25nKSwKKyAgICAgICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKyAgICByZXR1cm4gKCpvcCkoYXJnKTsKK30KKworI2VuZGlmCisKKworc3RhdGljIGlubGluZQordW5zaWduZWQgbG9uZyBjbW9zX3JlYWQodW5zaWduZWQgbG9uZyByZWcpCit7CisgIGlmICh1c2VfZGV2X3BvcnQpIHsKKyAgICB1bnNpZ25lZCBjaGFyIHYgPSByZWcgfCAweDgwOworICAgIGxzZWVrKGRldl9wb3J0X2ZkLCBjbG9ja19jdGxfYWRkciwgMCk7CisgICAgaWYgKHdyaXRlKGRldl9wb3J0X2ZkLCAmdiwgMSkgPT0gLTEgJiYgZGVidWcpCisgICAgICBwcmludGYoXygiY21vc19yZWFkKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iKSwgY2xvY2tfY3RsX2FkZHIsIHN0cmVycm9yKGVycm5vKSk7CisgICAgbHNlZWsoZGV2X3BvcnRfZmQsIGNsb2NrX2RhdGFfYWRkciwgMCk7CisgICAgaWYgKHJlYWQoZGV2X3BvcnRfZmQsICZ2LCAxKSA9PSAtMSAmJiBkZWJ1ZykKKyAgICAgIHByaW50ZihfKCJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIiksIGNsb2NrX2RhdGFfYWRkciwgc3RyZXJyb3IoZXJybm8pKTsKKyAgICByZXR1cm4gdjsKKyAgfSBlbHNlIHsKKyAgICAvKiBXZSBvbmx5IHdhbnQgdG8gcmVhZCBDTU9TIGRhdGEsIGJ1dCB1bmZvcnR1bmF0ZWx5CisgICAgICAgd3JpdGluZyB0byBiaXQgNyBkaXNhYmxlcyAoMSkgb3IgZW5hYmxlcyAoMCkgTk1JOworICAgICAgIHNpbmNlIHRoaXMgYml0IGlzIHJlYWQtb25seSB3ZSBoYXZlIHRvIGd1ZXNzIHRoZSBvbGQgc3RhdHVzLgorICAgICAgIFZhcmlvdXMgZG9jcyBzdWdnZXN0IHRoYXQgb25lIHNob3VsZCBkaXNhYmxlIE5NSSB3aGlsZQorICAgICAgIHJlYWRpbmcvd3JpdGluZyBDTU9TIGRhdGEsIGFuZCBlbmFibGUgaXQgYWdhaW4gYWZ0ZXJ3YXJkcy4KKyAgICAgICBUaGlzIHdvdWxkIHlpZWxkIHRoZSBzZXF1ZW5jZQorCSAgb3V0YiAocmVnIHwgMHg4MCwgMHg3MCk7CisJICB2YWwgPSBpbmIoMHg3MSk7CisJICBvdXRiICgweDBkLCAweDcwKTsJLy8gMHgwZDogcmFuZG9tIHJlYWQtb25seSBsb2NhdGlvbgorICAgICAgIE90aGVyIGRvY3Mgc3RhdGUgdGhhdCAiYW55IHdyaXRlIHRvIDB4NzAgc2hvdWxkIGJlIGZvbGxvd2VkCisgICAgICAgYnkgYW4gYWN0aW9uIHRvIDB4NzEgb3IgdGhlIFJUQyB3aWwgYmUgbGVmdCBpbiBhbiB1bmtub3duIHN0YXRlIi4KKyAgICAgICBNb3N0IGRvY3Mgc2F5IHRoYXQgaXQgZG9lc250IG1hdHRlciBhdCBhbGwgd2hhdCBvbmUgZG9lcy4KKyAgICAgKi8KKyAgICAvKiBiaXQgMHg4MDogZGlzYWJsZSBOTUkgd2hpbGUgcmVhZGluZyAtIHNob3VsZCB3ZT8KKyAgICAgICBMZXQgdXMgZm9sbG93IHRoZSBrZXJuZWwgYW5kIG5vdCBkaXNhYmxlLgorICAgICAgIENhbGxlZCBvbmx5IHdpdGggMCA8PSByZWcgPCAxMjggKi8KKyAgICBvdXRiIChyZWcsIGNsb2NrX2N0bF9hZGRyKTsKKyAgICByZXR1cm4gaW5iIChjbG9ja19kYXRhX2FkZHIpOworICB9Cit9CisKK3N0YXRpYyBpbmxpbmUKK3Vuc2lnbmVkIGxvbmcgY21vc193cml0ZSh1bnNpZ25lZCBsb25nIHJlZywgdW5zaWduZWQgbG9uZyB2YWwpCit7CisgIGlmICh1c2VfZGV2X3BvcnQpIHsKKyAgICB1bnNpZ25lZCBjaGFyIHYgPSByZWcgfCAweDgwOworICAgIGxzZWVrKGRldl9wb3J0X2ZkLCBjbG9ja19jdGxfYWRkciwgMCk7CisgICAgaWYgKHdyaXRlKGRldl9wb3J0X2ZkLCAmdiwgMSkgPT0gLTEgJiYgZGVidWcpCisgICAgICBwcmludGYoXygiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIiksIGNsb2NrX2N0bF9hZGRyLCBzdHJlcnJvcihlcnJubykpOworICAgIHYgPSAodmFsICYgMHhmZik7CisgICAgbHNlZWsoZGV2X3BvcnRfZmQsIGNsb2NrX2RhdGFfYWRkciwgMCk7CisgICAgaWYgKHdyaXRlKGRldl9wb3J0X2ZkLCAmdiwgMSkgPT0gLTEgJiYgZGVidWcpCisgICAgICBwcmludGYoXygiY21vc193cml0ZSgpOiB3cml0ZSB0byBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIiksIGNsb2NrX2RhdGFfYWRkciwgc3RyZXJyb3IoZXJybm8pKTsKKyAgfSBlbHNlIHsKKyAgICBvdXRiIChyZWcsIGNsb2NrX2N0bF9hZGRyKTsKKyAgICBvdXRiICh2YWwsIGNsb2NrX2RhdGFfYWRkcik7CisgIH0KKyAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGNtb3Nfc2V0X3RpbWUodW5zaWduZWQgbG9uZyBhcmcpCit7CisgIHVuc2lnbmVkIGNoYXIgc2F2ZV9jb250cm9sLCBzYXZlX2ZyZXFfc2VsZWN0LCBwbWJpdCA9IDA7CisgIHN0cnVjdCB0bSB0bSA9ICooc3RydWN0IHRtICopIGFyZzsKKyAgdW5zaWduZWQgaW50IGNlbnR1cnk7CisKKy8qCisgKiBDTU9TIGJ5dGUgMTAgKGNsb2NrIHN0YXR1cyByZWdpc3RlciBBKSBoYXMgMyBiaXRmaWVsZHM6CisgKiBiaXQgNzogMSBpZiBkYXRhIGludmFsaWQsIHVwZGF0ZSBpbiBwcm9ncmVzcyAocmVhZC1vbmx5IGJpdCkKKyAqICAgICAgICAgKHRoaXMgaXMgcmFpc2VkIDIyNCB1cyBiZWZvcmUgdGhlIGFjdHVhbCB1cGRhdGUgc3RhcnRzKQorICogIDYtNCAgICBzZWxlY3QgYmFzZSBmcmVxdWVuY3kKKyAqICAgICAgICAgMDEwOiAzMjc2OCBIeiB0aW1lIGJhc2UgKGRlZmF1bHQpCisgKiAgICAgICAgIDExMTogcmVzZXQKKyAqICAgICAgICAgYWxsIG90aGVyIGNvbWJpbmF0aW9ucyBhcmUgbWFudWZhY3R1cmVyLWRlcGVuZGVudAorICogICAgICAgICAoZS5nLjogRFMxMjg3OiAwMTAgPSBzdGFydCBvc2NpbGxhdG9yLCBhbnl0aGluZyBlbHNlID0gc3RvcCkKKyAqICAzLTAgICAgcmF0ZSBzZWxlY3Rpb24gYml0cyBmb3IgaW50ZXJydXB0CisgKiAgICAgICAgIDAwMDAgbm9uZSAobWF5IHN0b3AgUlRDKQorICogICAgICAgICAwMDAxLCAwMDEwIGdpdmUgc2FtZSBmcmVxdWVuY3kgYXMgMTAwMCwgMTAwMQorICogICAgICAgICAwMDExIDEyMiBtaWNyb3NlY29uZHMgKG1pbmltdW0sIDgxOTIgSHopCisgKiAgICAgICAgIC4uLi4gZWFjaCBpbmNyZWFzZSBieSAxIGhhbHZlcyB0aGUgZnJlcXVlbmN5LCBkb3VibGVzIHRoZSBwZXJpb2QKKyAqICAgICAgICAgMTExMSA1MDAgbWlsbGlzZWNvbmRzIChtYXhpbXVtLCAyIEh6KQorICogICAgICAgICAwMTEwIDk3Ni41NjIgbWljcm9zZWNvbmRzIChkZWZhdWx0IDEwMjQgSHopCisgKi8KKworICBzYXZlX2NvbnRyb2wgPSBjbW9zX3JlYWQgKDExKTsgICAvKiB0ZWxsIHRoZSBjbG9jayBpdCdzIGJlaW5nIHNldCAqLworICBjbW9zX3dyaXRlICgxMSwgKHNhdmVfY29udHJvbCB8IDB4ODApKTsKKyAgc2F2ZV9mcmVxX3NlbGVjdCA9IGNtb3NfcmVhZCAoMTApOyAgICAgICAvKiBzdG9wIGFuZCByZXNldCBwcmVzY2FsZXIgKi8KKyAgY21vc193cml0ZSAoMTAsIChzYXZlX2ZyZXFfc2VsZWN0IHwgMHg3MCkpOworCisgIHRtLnRtX3llYXIgKz0gVE1fRVBPQ0g7CisgIGNlbnR1cnkgPSB0bS50bV95ZWFyLzEwMDsKKyAgdG0udG1feWVhciAtPSBjbW9zX2Vwb2NoOworICB0bS50bV95ZWFyICU9IDEwMDsKKyAgdG0udG1fbW9uICs9IDE7CisgIHRtLnRtX3dkYXkgKz0gMTsKKworICBpZiAoIShzYXZlX2NvbnRyb2wgJiAweDAyKSkgewkvKiAxMmhyIG1vZGU7IHRoZSBkZWZhdWx0IGlzIDI0aHIgbW9kZSAqLworICAgICAgaWYgKHRtLnRtX2hvdXIgPT0gMCkKKyAgICAgICAgICB0bS50bV9ob3VyID0gMjQ7CisgICAgICBpZiAodG0udG1faG91ciA+IDEyKSB7CisJICB0bS50bV9ob3VyIC09IDEyOworCSAgcG1iaXQgPSAweDgwOworICAgICAgfQorICB9CisKKyAgaWYgKCEoc2F2ZV9jb250cm9sICYgMHgwNCkpIHsgLyogQkNEIG1vZGUgLSB0aGUgZGVmYXVsdCAqLworICAgICAgQklOX1RPX0JDRCh0bS50bV9zZWMpOworICAgICAgQklOX1RPX0JDRCh0bS50bV9taW4pOworICAgICAgQklOX1RPX0JDRCh0bS50bV9ob3VyKTsKKyAgICAgIEJJTl9UT19CQ0QodG0udG1fd2RheSk7CisgICAgICBCSU5fVE9fQkNEKHRtLnRtX21kYXkpOworICAgICAgQklOX1RPX0JDRCh0bS50bV9tb24pOworICAgICAgQklOX1RPX0JDRCh0bS50bV95ZWFyKTsKKyAgICAgIEJJTl9UT19CQ0QoY2VudHVyeSk7CisgIH0KKworICBjbW9zX3dyaXRlICgwLCB0bS50bV9zZWMpOworICBjbW9zX3dyaXRlICgyLCB0bS50bV9taW4pOworICBjbW9zX3dyaXRlICg0LCB0bS50bV9ob3VyIHwgcG1iaXQpOworICBjbW9zX3dyaXRlICg2LCB0bS50bV93ZGF5KTsKKyAgY21vc193cml0ZSAoNywgdG0udG1fbWRheSk7CisgIGNtb3Nfd3JpdGUgKDgsIHRtLnRtX21vbik7CisgIGNtb3Nfd3JpdGUgKDksIHRtLnRtX3llYXIpOworICBpZiAoY2VudHVyeV9ieXRlKQorCSAgY21vc193cml0ZSAoY2VudHVyeV9ieXRlLCBjZW50dXJ5KTsKKworCisgICAgLyogVGhlIGtlcm5lbCBzb3VyY2VzLCBsaW51eC9hcmNoL2kzODYva2VybmVsL3RpbWUuYywgaGF2ZSB0aGUKKyAgICAgICBmb2xsb3dpbmcgY29tbWVudDoKKworICAgICAgIFRoZSBmb2xsb3dpbmcgZmxhZ3MgaGF2ZSB0byBiZSByZWxlYXNlZCBleGFjdGx5IGluIHRoaXMgb3JkZXIsCisgICAgICAgb3RoZXJ3aXNlIHRoZSBEUzEyODg3IChwb3B1bGFyIE1DMTQ2ODE4QSBjbG9uZSB3aXRoIGludGVncmF0ZWQKKyAgICAgICBiYXR0ZXJ5IGFuZCBxdWFydHopIHdpbGwgbm90IHJlc2V0IHRoZSBvc2NpbGxhdG9yIGFuZCB3aWxsIG5vdAorICAgICAgIHVwZGF0ZSBwcmVjaXNlbHkgNTAwIG1zIGxhdGVyLiAgWW91IHdvbid0IGZpbmQgdGhpcyBtZW50aW9uZWQKKyAgICAgICBpbiB0aGUgRGFsbGFzIFNlbWljb25kdWN0b3IgZGF0YSBzaGVldHMsIGJ1dCB3aG8gYmVsaWV2ZXMgZGF0YQorICAgICAgIHNoZWV0cyBhbnl3YXkgLi4uICAtLSBNYXJrdXMgS3VobgorICAgICovCisKKyAgY21vc193cml0ZSAoMTEsIHNhdmVfY29udHJvbCk7CisgIGNtb3Nfd3JpdGUgKDEwLCBzYXZlX2ZyZXFfc2VsZWN0KTsKKyAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2hjbG9ja19yZWFkKHVuc2lnbmVkIGxvbmcgcmVnKSB7CisJcmV0dXJuIGF0b21pYygiY2xvY2sgcmVhZCIsIGNtb3NfcmVhZCwgKHJlZykpOworfQorCitzdGF0aWMgdm9pZAoraGNsb2NrX3NldF90aW1lKGNvbnN0IHN0cnVjdCB0bSAqdG0pIHsKKwlhdG9taWMoInNldCB0aW1lIiwgY21vc19zZXRfdGltZSwgKHVuc2lnbmVkIGxvbmcpKHRtKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitjbW9zX2Nsb2NrX2J1c3kodm9pZCkgeworCXJldHVybgorI2lmZGVmIF9fYWxwaGFfXworCSAgICAgICAgICAgICAgICAvKiBwb2xsIGJpdCA0IChVRikgb2YgQ29udHJvbCBSZWdpc3RlciBDICovCisJICAgIGZ1bmt5VE9ZID8gKGhjbG9ja19yZWFkKDEyKSAmIDB4MTApIDoKKyNlbmRpZgorCQkgICAgICAgIC8qIHBvbGwgYml0IDcgKFVJUCkgb2YgQ29udHJvbCBSZWdpc3RlciBBICovCisJICAgIChoY2xvY2tfcmVhZCgxMCkgJiAweDgwKTsKK30KKworCitzdGF0aWMgaW50CitzeW5jaHJvbml6ZV90b19jbG9ja190aWNrX2Ntb3Modm9pZCkgeworICBpbnQgaTsKKworICAvKiBXYWl0IGZvciByaXNlLiAgU2hvdWxkIGJlIHdpdGhpbiBhIHNlY29uZCwgYnV0IGluIGNhc2Ugc29tZXRoaW5nCisgICAgIHdlaXJkIGhhcHBlbnMsIHdlIGhhdmUgYSBsaW1pdCBvbiB0aGlzIGxvb3AgdG8gcmVkdWNlIHRoZSBpbXBhY3QKKyAgICAgb2YgdGhpcyBmYWlsdXJlLgorICAgICAqLworICBmb3IgKGkgPSAwOyAhY21vc19jbG9ja19idXN5KCk7IGkrKykKKwkgIGlmIChpID49IDEwMDAwMDAwKQorCQkgIHJldHVybiAxOworCisgIC8qIFdhaXQgZm9yIGZhbGwuICBTaG91bGQgYmUgd2l0aGluIDIuMjI4IG1zLiAqLworICBmb3IgKGkgPSAwOyBjbW9zX2Nsb2NrX2J1c3koKTsgaSsrKQorCSAgaWYgKGkgPj0gMTAwMDAwMCkKKwkJICByZXR1cm4gMTsKKyAgcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgaW50CityZWFkX2hhcmR3YXJlX2Nsb2NrX2Ntb3Moc3RydWN0IHRtICp0bSkgeworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFJlYWQgdGhlIGhhcmR3YXJlIGNsb2NrIGFuZCByZXR1cm4gdGhlIGN1cnJlbnQgdGltZSB2aWEgPHRtPiBhcmd1bWVudC4KKyAgQXNzdW1lIHdlIGhhdmUgYW4gSVNBIG1hY2hpbmUgYW5kIHJlYWQgdGhlIGNsb2NrIGRpcmVjdGx5IHdpdGggQ1BVIEkvTworICBpbnN0cnVjdGlvbnMuCisKKyAgVGhpcyBmdW5jdGlvbiBpcyBub3QgdG90YWxseSByZWxpYWJsZS4gIEl0IHRha2VzIGEgZmluaXRlIGFuZAorICB1bnByZWRpY3RhYmxlIGFtb3VudCBvZiB0aW1lIHRvIGV4ZWN1dGUgdGhlIGNvZGUgYmVsb3cuICBEdXJpbmcgdGhhdAorICB0aW1lLCB0aGUgY2xvY2sgbWF5IGNoYW5nZSBhbmQgd2UgbWF5IGV2ZW4gcmVhZCBhbiBpbnZhbGlkIHZhbHVlIGluCisgIHRoZSBtaWRkbGUgb2YgYW4gdXBkYXRlLiAgV2UgZG8gYSBmZXcgY2hlY2tzIHRvIG1pbmltaXplIHRoaXMKKyAgcG9zc2liaWxpdHksIGJ1dCBvbmx5IHRoZSBrZXJuZWwgY2FuIGFjdHVhbGx5IHJlYWQgdGhlIGNsb2NrCisgIHByb3Blcmx5LCBzaW5jZSBpdCBjYW4gZXhlY3V0ZSBjb2RlIGluIGEgc2hvcnQgYW5kIHByZWRpY3RhYmxlCisgIGFtb3VudCBvZiB0aW1lIChieSB0dXJuaW5nIG9mIGludGVycnVwdHMpLgorCisgIEluIHByYWN0aWNlLCB0aGUgY2hhbmNlIG9mIHRoaXMgZnVuY3Rpb24gcmV0dXJuaW5nIHRoZSB3cm9uZyB0aW1lIGlzCisgIGV4dHJlbWVseSByZW1vdGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgYm9vbCBnb3RfdGltZSA9IEZBTFNFOworICB1bnNpZ25lZCBjaGFyIHN0YXR1cywgcG1iaXQ7CisKKyAgc3RhdHVzID0gcG1iaXQgPSAwOwkJLyoganVzdCBmb3IgZ2NjICovCisKKyAgd2hpbGUgKCFnb3RfdGltZSkgeworICAgIC8qIEJpdCA3IG9mIEJ5dGUgMTAgb2YgdGhlIEhhcmR3YXJlIENsb2NrIHZhbHVlIGlzIHRoZSBVcGRhdGUgSW4gUHJvZ3Jlc3MKKyAgICAgICAoVUlQKSBiaXQsIHdoaWNoIGlzIG9uIHdoaWxlIGFuZCAyNDQgdVMgYmVmb3JlIHRoZSBIYXJkd2FyZSBDbG9jaworICAgICAgIHVwZGF0ZXMgaXRzZWxmLiAgSXQgdXBkYXRlcyB0aGUgY291bnRlcnMgaW5kaXZpZHVhbGx5LCBzbyByZWFkaW5nCisgICAgICAgdGhlbSBkdXJpbmcgYW4gdXBkYXRlIHdvdWxkIHByb2R1Y2UgZ2FyYmFnZS4gIFRoZSB1cGRhdGUgdGFrZXMgMm1TLAorICAgICAgIHNvIHdlIGNvdWxkIGJlIHNwaW5uaW5nIGhlcmUgdGhhdCBsb25nIHdhaXRpbmcgZm9yIHRoaXMgYml0IHRvIHR1cm4KKyAgICAgICBvZmYuCisKKyAgICAgICBGdXJ0aGVybW9yZSwgaXQgaXMgcGF0aG9sb2dpY2FsbHkgcG9zc2libGUgZm9yIHVzIHRvIGJlIGluIHRoaXMKKyAgICAgICBjb2RlIHNvIGxvbmcgdGhhdCBldmVuIGlmIHRoZSBVSVAgYml0IGlzIG5vdCBvbiBhdCBmaXJzdCwgdGhlCisgICAgICAgY2xvY2sgaGFzIGNoYW5nZWQgd2hpbGUgd2Ugd2VyZSBydW5uaW5nLiAgV2UgY2hlY2sgZm9yIHRoYXQgdG9vLAorICAgICAgIGFuZCBpZiBpdCBoYXBwZW5zLCB3ZSBzdGFydCBvdmVyLgorICAgICAgICovCisKKyAgICBpZiAoIWNtb3NfY2xvY2tfYnVzeSgpKSB7CisgICAgICAvKiBObyBjbG9jayB1cGRhdGUgaW4gcHJvZ3Jlc3MsIGdvIGFoZWFkIGFuZCByZWFkICovCisgICAgICB0bS0+dG1fc2VjID0gaGNsb2NrX3JlYWQoMCk7CisgICAgICB0bS0+dG1fbWluID0gaGNsb2NrX3JlYWQoMik7CisgICAgICB0bS0+dG1faG91ciA9IGhjbG9ja19yZWFkKDQpOworICAgICAgdG0tPnRtX3dkYXkgPSBoY2xvY2tfcmVhZCg2KTsKKyAgICAgIHRtLT50bV9tZGF5ID0gaGNsb2NrX3JlYWQoNyk7CisgICAgICB0bS0+dG1fbW9uID0gaGNsb2NrX3JlYWQoOCk7CisgICAgICB0bS0+dG1feWVhciA9IGhjbG9ja19yZWFkKDkpOworICAgICAgc3RhdHVzID0gaGNsb2NrX3JlYWQoMTEpOworI2lmIDAKKyAgICAgIGlmIChjZW50dXJ5X2J5dGUpCisJICBjZW50dXJ5ID0gaGNsb2NrX3JlYWQoY2VudHVyeV9ieXRlKTsKKyNlbmRpZgorCisgICAgICAvKiBVbmxlc3MgdGhlIGNsb2NrIGNoYW5nZWQgd2hpbGUgd2Ugd2VyZSByZWFkaW5nLCBjb25zaWRlciB0aGlzCisgICAgICAgICBhIGdvb2QgY2xvY2sgcmVhZCAuCisgICAgICAgKi8KKyAgICAgIGlmICh0bS0+dG1fc2VjID09IGhjbG9ja19yZWFkICgwKSkKKwlnb3RfdGltZSA9IFRSVUU7CisgICAgfQorICAgIC8qIFllcywgaW4gdGhlb3J5IHdlIGNvdWxkIGhhdmUgYmVlbiBydW5uaW5nIGZvciA2MCBzZWNvbmRzIGFuZAorICAgICAgIHRoZSBhYm92ZSB0ZXN0IHdvdWxkbid0IHdvcmshCisgICAgICAgKi8KKyAgfQorCisgIGlmICghKHN0YXR1cyAmIDB4MDQpKSB7IC8qIEJDRCBtb2RlIC0gdGhlIGRlZmF1bHQgKi8KKyAgICAgIEJDRF9UT19CSU4odG0tPnRtX3NlYyk7CisgICAgICBCQ0RfVE9fQklOKHRtLT50bV9taW4pOworICAgICAgcG1iaXQgPSAodG0tPnRtX2hvdXIgJiAweDgwKTsKKyAgICAgIHRtLT50bV9ob3VyICY9IDB4N2Y7CisgICAgICBCQ0RfVE9fQklOKHRtLT50bV9ob3VyKTsKKyAgICAgIEJDRF9UT19CSU4odG0tPnRtX3dkYXkpOworICAgICAgQkNEX1RPX0JJTih0bS0+dG1fbWRheSk7CisgICAgICBCQ0RfVE9fQklOKHRtLT50bV9tb24pOworICAgICAgQkNEX1RPX0JJTih0bS0+dG1feWVhcik7CisjaWYgMAorICAgICAgQkNEX1RPX0JJTihjZW50dXJ5KTsKKyNlbmRpZgorICB9CisKKyAgLyogV2UgZG9uJ3QgdXNlIHRoZSBjZW50dXJ5IGJ5dGUgb2YgdGhlIEhhcmR3YXJlIENsb2NrCisgICAgIHNpbmNlIHdlIGRvbid0IGtub3cgaXRzIGFkZHJlc3MgKHVzdWFsbHkgNTAgb3IgNTUpLgorICAgICBIZXJlLCB3ZSBmb2xsb3cgdGhlIGFkdmljZSBvZiB0aGUgWC9PcGVuIEJhc2UgV29ya2luZyBHcm91cDoKKyAgICAgImlmIGNlbnR1cnkgaXMgbm90IHNwZWNpZmllZCwgdGhlbiB2YWx1ZXMgaW4gdGhlIHJhbmdlIFs2OS05OV0KKyAgICAgIHJlZmVyIHRvIHllYXJzIGluIHRoZSB0d2VudGlldGggY2VudHVyeSAoMTk2OSB0byAxOTk5IGluY2x1c2l2ZSksCisgICAgICBhbmQgdmFsdWVzIGluIHRoZSByYW5nZSBbMDAtNjhdIHJlZmVyIHRvIHllYXJzIGluIHRoZSB0d2VudHktZmlyc3QKKyAgICAgIGNlbnR1cnkgKDIwMDAgdG8gMjA2OCBpbmNsdXNpdmUpLiIKKyAgICovCisKKyAgdG0tPnRtX3dkYXkgLT0gMTsKKyAgdG0tPnRtX21vbiAtPSAxOworICB0bS0+dG1feWVhciArPSAoY21vc19lcG9jaCAtIFRNX0VQT0NIKTsKKyAgaWYgKHRtLT50bV95ZWFyIDwgNjkpCisJICB0bS0+dG1feWVhciArPSAxMDA7CisgIGlmIChwbWJpdCkgeworCSAgdG0tPnRtX2hvdXIgKz0gMTI7CisJICBpZiAodG0tPnRtX2hvdXIgPT0gMjQpCisJCSAgdG0tPnRtX2hvdXIgPSAwOworICB9CisKKyAgdG0tPnRtX2lzZHN0ID0gLTE7ICAgICAgICAvKiBkb24ndCBrbm93IHdoZXRoZXIgaXQncyBkYXlsaWdodCAqLworICByZXR1cm4gMDsKK30KKworCisKK3N0YXRpYyBpbnQKK3NldF9oYXJkd2FyZV9jbG9ja19jbW9zKGNvbnN0IHN0cnVjdCB0bSAqbmV3X2Jyb2tlbl90aW1lKSB7CisKKyAgICBoY2xvY2tfc2V0X3RpbWUobmV3X2Jyb2tlbl90aW1lKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAoraTM4Nl9pb3BsKGNvbnN0IGludCBsZXZlbCkgeworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hbHBoYV9fKQorICBleHRlcm4gaW50IGlvcGwoY29uc3QgaW50IGx2bCk7CisgIHJldHVybiBpb3BsKGxldmVsKTsKKyNlbHNlCisgIHJldHVybiAtMjsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50CitnZXRfcGVybWlzc2lvbnNfY21vcyh2b2lkKSB7CisgIGludCByYzsKKworICBpZiAodXNlX2Rldl9wb3J0KSB7CisgICAgaWYgKChkZXZfcG9ydF9mZCA9IG9wZW4oIi9kZXYvcG9ydCIsIE9fUkRXUikpIDwgMCkgeworICAgICAgaW50IGVycnN2ID0gZXJybm87CisgICAgICBmcHJpbnRmKHN0ZGVyciwgXygiQ2Fubm90IG9wZW4gL2Rldi9wb3J0OiAlcyIpLCBzdHJlcnJvcihlcnJzdikpOworICAgICAgcmMgPSAxOworICAgIH0gZWxzZQorICAgICAgcmMgPSAwOworICB9IGVsc2UgeworICAgIHJjID0gaTM4Nl9pb3BsKDMpOworICAgIGlmIChyYyA9PSAtMikgeworICAgICAgZnByaW50ZihzdGRlcnIsIF8oIkkgZmFpbGVkIHRvIGdldCBwZXJtaXNzaW9uIGJlY2F1c2UgSSBkaWRuJ3QgdHJ5LlxuIikpOworICAgIH0gZWxzZSBpZiAocmMgIT0gMCkgeworICAgICAgcmMgPSBlcnJubzsKKyAgICAgIGZwcmludGYoc3RkZXJyLCBfKCIlcyBpcyB1bmFibGUgdG8gZ2V0IEkvTyBwb3J0IGFjY2VzczogICIKKyAgICAgICAgICAgICAgInRoZSBpb3BsKDMpIGNhbGwgZmFpbGVkLlxuIiksIHByb2duYW1lKTsKKyAgICAgIGlmKHJjID09IEVQRVJNICYmIGdldGV1aWQoKSkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIF8oIlByb2JhYmx5IHlvdSBuZWVkIHJvb3QgcHJpdmlsZWdlcy5cbiIpKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHJjID8gMSA6IDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xvY2tfb3BzIGNtb3MgPSB7CisJImRpcmVjdCBJL08gaW5zdHJ1Y3Rpb25zIHRvIElTQSBjbG9jayIsCisJZ2V0X3Blcm1pc3Npb25zX2Ntb3MsCisJcmVhZF9oYXJkd2FyZV9jbG9ja19jbW9zLAorCXNldF9oYXJkd2FyZV9jbG9ja19jbW9zLAorCXN5bmNocm9uaXplX3RvX2Nsb2NrX3RpY2tfY21vcywKK307CisKKworLyogcmV0dXJuICZjbW9zIGlmIGNtb3MgY2xvY2sgcHJlc2VudCwgTlVMTCBvdGhlcndpc2UgKi8KKy8qIGNob29zZSB0aGlzIGNvbnN0cnVjdGlvbiB0byBhdm9pZCBnY2MgbWVzc2FnZXMgYWJvdXQgdW51c2VkIHZhcmlhYmxlcyAqLworCitzdHJ1Y3QgY2xvY2tfb3BzICoKK3Byb2JlX2Zvcl9jbW9zX2Nsb2NrKHZvaWQpeworICAgIGludCBoYXZlX2Ntb3MgPQorI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hbHBoYV9fKQorCSAgICBUUlVFOworI2Vsc2UKKwkgICAgRkFMU0U7CisjZW5kaWYKKyAgICByZXR1cm4gaGF2ZV9jbW9zID8gJmNtb3MgOiBOVUxMOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaHdjbG9jay9od2Nsb2NrLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL2h3Y2xvY2suOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTY2M2ZlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaHdjbG9jay9od2Nsb2NrLjgKQEAgLTAsMCArMSw2MjggQEAKKy5USCBIV0NMT0NLIDggIjA2IEF1Z3VzdCAyMDA4IgorLlNIIE5BTUUKK2h3Y2xvY2sgXC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQykKKy5TSCBTWU5PUFNJUworLkIgaHdjbG9jaworLlJJIFsgZnVuY3Rpb25zIF0KKy5SSSBbIG9wdGlvbnMgXQorCisuU0ggREVTQ1JJUFRJT04KKy5CIGh3Y2xvY2sKK2lzIGEgdG9vbCBmb3IgYWNjZXNzaW5nIHRoZSBIYXJkd2FyZSBDbG9jay4gIFlvdSBjYW4gZGlzcGxheSB0aGUKK2N1cnJlbnQgdGltZSwgc2V0IHRoZSBIYXJkd2FyZSBDbG9jayB0byBhIHNwZWNpZmllZCB0aW1lLCBzZXQgdGhlCitIYXJkd2FyZSBDbG9jayB0byB0aGUgU3lzdGVtIFRpbWUsIGFuZCBzZXQgdGhlIFN5c3RlbSBUaW1lIGZyb20gdGhlCitIYXJkd2FyZSBDbG9jay4KKy5QUAorWW91IGNhbiBhbHNvIHJ1bgorLkIgaHdjbG9jaworcGVyaW9kaWNhbGx5IHRvIGluc2VydCBvciByZW1vdmUgdGltZSBmcm9tIHRoZSBIYXJkd2FyZSBDbG9jayB0bworY29tcGVuc2F0ZSBmb3Igc3lzdGVtYXRpYyBkcmlmdCAod2hlcmUgdGhlIGNsb2NrIGNvbnNpc3RlbnRseSBnYWlucyBvcgorbG9zZXMgdGltZSBhdCBhIGNlcnRhaW4gcmF0ZSBpZiBsZWZ0IHRvIHJ1bikuCisKKy5TSCBGVU5DVElPTlMKK1lvdSBuZWVkIGV4YWN0bHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byB0ZWxsCisuQiBod2Nsb2NrCit3aGF0IGZ1bmN0aW9uIHRvIHBlcmZvcm06CisuUFAKKy5UUAorLkJSIFwtciAsIFwgXC1cLXNob3cKK1JlYWQgdGhlIEhhcmR3YXJlIENsb2NrIGFuZCBwcmludCB0aGUgdGltZSBvbiBTdGFuZGFyZCBPdXRwdXQuCitUaGUgdGltZSBzaG93biBpcyBhbHdheXMgaW4gbG9jYWwgdGltZSwgZXZlbiBpZiB5b3Uga2VlcCB5b3VyIEhhcmR3YXJlIENsb2NrCitpbiBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZS4gIFNlZSB0aGUKKy5CIFwtXC11dGMKK29wdGlvbi4KKworLlRQCisuQiBcLVwtc2V0CitTZXQgdGhlIEhhcmR3YXJlIENsb2NrIHRvIHRoZSB0aW1lIGdpdmVuIGJ5IHRoZQorLkIgXC1cLWRhdGUKK29wdGlvbi4KKy5UUAorLkJSIFwtcyAsIFwgXC1cLWhjdG9zeXMKK1NldCB0aGUgU3lzdGVtIFRpbWUgZnJvbSB0aGUgSGFyZHdhcmUgQ2xvY2suCisKK0Fsc28gc2V0IHRoZSBrZXJuZWwncyB0aW1lem9uZSB2YWx1ZSB0byB0aGUgbG9jYWwgdGltZXpvbmUKK2FzIGluZGljYXRlZCBieSB0aGUgVFogZW52aXJvbm1lbnQgdmFyaWFibGUgYW5kL29yCisuSVIgL3Vzci9zaGFyZS96b25laW5mbyAsCithcworLkJSIHR6c2V0ICgzKQord291bGQgaW50ZXJwcmV0IHRoZW0uCitUaGUgb2Jzb2xldGUgdHpfZHN0dGltZSBmaWVsZCBvZiB0aGUga2VybmVsJ3MgdGltZXpvbmUgdmFsdWUgaXMgc2V0Cit0byBEU1RfTk9ORS4gKEZvciBkZXRhaWxzIG9uIHdoYXQgdGhpcyBmaWVsZCB1c2VkIHRvIG1lYW4sIHNlZQorLkJSIHNldHRpbWVvZmRheSAoMikuKQorCitUaGlzIGlzIGEgZ29vZCBvcHRpb24gdG8gdXNlIGluIG9uZSBvZiB0aGUgc3lzdGVtIHN0YXJ0dXAgc2NyaXB0cy4KKy5UUAorLkJSIFwtdyAsIFwgXC1cLXN5c3RvaGMKK1NldCB0aGUgSGFyZHdhcmUgQ2xvY2sgdG8gdGhlIGN1cnJlbnQgU3lzdGVtIFRpbWUuCisuVFAKKy5CIFwtXC1zeXN0egorUmVzZXQgdGhlIFN5c3RlbSBUaW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lLgorCitBbHNvIHNldCB0aGUga2VybmVsJ3MgdGltZXpvbmUgdmFsdWUgdG8gdGhlIGxvY2FsIHRpbWV6b25lCithcyBpbmRpY2F0ZWQgYnkgdGhlIFRaIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZC9vcgorLklSIC91c3Ivc2hhcmUvem9uZWluZm8gLAorYXMKKy5CUiB0enNldCAoMykKK3dvdWxkIGludGVycHJldCB0aGVtLgorVGhlIG9ic29sZXRlIHR6X2RzdHRpbWUgZmllbGQgb2YgdGhlIGtlcm5lbCdzIHRpbWV6b25lIHZhbHVlIGlzIHNldAordG8gRFNUX05PTkUuIChGb3IgZGV0YWlscyBvbiB3aGF0IHRoaXMgZmllbGQgdXNlZCB0byBtZWFuLCBzZWUKKy5CUiBzZXR0aW1lb2ZkYXkgKDIpLikKKworVGhpcyBpcyBhbiBhbHRlcm5hdGUgb3B0aW9uIHRvCisuQiBcLVwtaGN0b3N5cwordGhhdCBkb2VzIG5vdCByZWFkIHRoZSBoYXJkd2FyZSBjbG9jaywgYW5kIG1heSBiZSB1c2VkIGluIHN5c3RlbSBzdGFydHVwCitzY3JpcHRzIGZvciByZWNlbnQgMi42IGtlcm5lbHMgd2hlcmUgeW91IGtub3cgdGhlIFN5c3RlbSBUaW1lIGNvbnRhaW5zCit0aGUgSGFyZHdhcmUgQ2xvY2sgdGltZS4KKy5UUAorLkIgXC1cLWFkanVzdAorQWRkIG9yIHN1YnRyYWN0IHRpbWUgZnJvbSB0aGUgSGFyZHdhcmUgQ2xvY2sgdG8gYWNjb3VudCBmb3Igc3lzdGVtYXRpYworZHJpZnQgc2luY2UgdGhlIGxhc3QgdGltZSB0aGUgY2xvY2sgd2FzIHNldCBvciBhZGp1c3RlZC4gIFNlZSBkaXNjdXNzaW9uCitiZWxvdy4KKy5UUAorLkIgXC1cLWdldGVwb2NoCitQcmludCB0aGUga2VybmVsJ3MgSGFyZHdhcmUgQ2xvY2sgZXBvY2ggdmFsdWUgdG8gc3RhbmRhcmQgb3V0cHV0LgorVGhpcyBpcyB0aGUgbnVtYmVyIG9mIHllYXJzIGludG8gQUQgdG8gd2hpY2ggYSB6ZXJvIHllYXIgdmFsdWUgaW4gdGhlCitIYXJkd2FyZSBDbG9jayByZWZlcnMuICBGb3IgZXhhbXBsZSwgaWYgeW91IGFyZSB1c2luZyB0aGUgY29udmVudGlvbgordGhhdCB0aGUgeWVhciBjb3VudGVyIGluIHlvdXIgSGFyZHdhcmUgQ2xvY2sgY29udGFpbnMgdGhlIG51bWJlciBvZgorZnVsbCB5ZWFycyBzaW5jZSAxOTUyLCB0aGVuIHRoZSBrZXJuZWwncyBIYXJkd2FyZSBDb3VudGVyIGVwb2NoIHZhbHVlCittdXN0IGJlIDE5NTIuCisKK1RoaXMgZXBvY2ggdmFsdWUgaXMgdXNlZCB3aGVuZXZlciBod2Nsb2NrIHJlYWRzIG9yIHNldHMgdGhlIEhhcmR3YXJlIENsb2NrLgorLlRQCisuQiBcLVwtc2V0ZXBvY2gKK1NldCB0aGUga2VybmVsJ3MgSGFyZHdhcmUgQ2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIHZhbHVlIHNwZWNpZmllZCBieSB0aGUKKy5CIFwtXC1lcG9jaAorb3B0aW9uLiAgU2VlIHRoZQorLkIgXC1cLWdldGVwb2NoCitvcHRpb24gZm9yIGRldGFpbHMuCisuVFAKKy5CUiBcLXYgLCBcIFwtXC12ZXJzaW9uCitQcmludCB0aGUgdmVyc2lvbiBvZgorLkIgaHdjbG9jaworb24gU3RhbmRhcmQgT3V0cHV0LgorLlRQCisuQkkgXC1cLWRhdGU9IGRhdGVfc3RyaW5nCitZb3UgbmVlZCB0aGlzIG9wdGlvbiBpZiB5b3Ugc3BlY2lmeSB0aGUKKy5CIFwtXC1zZXQKK29wdGlvbi4gIE90aGVyd2lzZSwgaXQgaXMgaWdub3JlZC4KK1RoaXMgc3BlY2lmaWVzIHRoZSB0aW1lIHRvIHdoaWNoIHRvIHNldCB0aGUgSGFyZHdhcmUgQ2xvY2suCitUaGUgdmFsdWUgb2YgdGhpcyBvcHRpb24gaXMgYW4gYXJndW1lbnQgdG8gdGhlCisuQlIgZGF0ZSAoMSkKK3Byb2dyYW0uCitGb3IgZXhhbXBsZSwKKy5zcAorLkkgaHdjbG9jayAtLXNldCAtLWRhdGU9IjkvMjIvOTYgMTY6NDU6MDUiCisuc3AKK1RoZSBhcmd1bWVudCBpcyBpbiBsb2NhbCB0aW1lLCBldmVuIGlmIHlvdSBrZWVwIHlvdXIgSGFyZHdhcmUgQ2xvY2sgaW4KK0Nvb3JkaW5hdGVkIFVuaXZlcnNhbCB0aW1lLiAgU2VlIHRoZQorLkIgXC1cLXV0Yworb3B0aW9uLgorCisuVFAKKy5CSSBcLVwtZXBvY2g9IHllYXIKK1NwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBIYXJkd2FyZSBDbG9jaydzCitlcG9jaC4gIEkuZS4gdGhlIG51bWJlciBvZiB5ZWFycyBpbnRvIEFEIHRvIHdoaWNoIGEgemVybyB2YWx1ZSBpbiB0aGUKK0hhcmR3YXJlIENsb2NrJ3MgeWVhciBjb3VudGVyIHJlZmVycy4gSXQgaXMgdXNlZCB0b2dldGhlciB3aXRoCit0aGUgXC1cLXNldGVwb2NoIG9wdGlvbiB0byBzZXQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGVwb2NoIG9mIHRoZQorSGFyZHdhcmUgQ2xvY2ssIG9yIG90aGVyd2lzZSB0byBzcGVjaWZ5IHRoZSBlcG9jaCBmb3IgdXNlIHdpdGgKK2RpcmVjdCBJU0EgYWNjZXNzLgorCitGb3IgZXhhbXBsZSwgb24gYSBEaWdpdGFsIFVuaXggbWFjaGluZToKKy5zcAorLkkgaHdjbG9jayAtLXNldGVwb2NoIC0tZXBvY2g9MTk1MgorCisKKy5TSCBPUFRJT05TCisuUFAKK1RoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcHBseSB0byBtb3N0IGZ1bmN0aW9ucy4KKy5UUAorLkJSIFwtdSAsIFwgXC1cLXV0YworLlRQCisuQiBcLVwtbG9jYWx0aW1lCitJbmRpY2F0ZXMgdGhhdCB0aGUgSGFyZHdhcmUgQ2xvY2sgaXMga2VwdCBpbiBDb29yZGluYXRlZCBVbml2ZXJzYWwKK1RpbWUgb3IgbG9jYWwgdGltZSwgcmVzcGVjdGl2ZWx5LiAgSXQgaXMgeW91ciBjaG9pY2Ugd2hldGhlciB0byBrZWVwCit5b3VyIGNsb2NrIGluIFVUQyBvciBsb2NhbCB0aW1lLCBidXQgbm90aGluZyBpbiB0aGUgY2xvY2sgdGVsbHMgd2hpY2gKK3lvdSd2ZSBjaG9zZW4uICBTbyB0aGlzIG9wdGlvbiBpcyBob3cgeW91IGdpdmUgdGhhdCBpbmZvcm1hdGlvbiB0bworLkJSIGh3Y2xvY2sgLgorCitJZiB5b3Ugc3BlY2lmeSB0aGUgd3Jvbmcgb25lIG9mIHRoZXNlIG9wdGlvbnMgKG9yIHNwZWNpZnkgbmVpdGhlciBhbmQKK3Rha2UgYSB3cm9uZyBkZWZhdWx0KSwgYm90aCBzZXR0aW5nIGFuZCBxdWVyeWluZyBvZiB0aGUgSGFyZHdhcmUgQ2xvY2sKK3dpbGwgYmUgbWVzc2VkIHVwLgorCitJZiB5b3Ugc3BlY2lmeSBuZWl0aGVyCisuQiBcLVwtdXRjCitub3IKKy5CIFwtXC1sb2NhbHRpbWUKKywgdGhlIGRlZmF1bHQgaXMgd2hpY2hldmVyIHdhcyBzcGVjaWZpZWQgdGhlIGxhc3QgdGltZQorLkIgaHdjbG9jaword2FzIHVzZWQgdG8gc2V0IHRoZSBjbG9jayAoaS5lLiBod2Nsb2NrIHdhcyBzdWNjZXNzZnVsbHkgcnVuIHdpdGggdGhlCisuQlIgXC1cLXNldCAsCisuQlIgXC1cLXN5c3RvaGMgLAorb3IKKy5CIFwtXC1hZGp1c3QKK29wdGlvbnMpLCBhcyByZWNvcmRlZCBpbiB0aGUgYWRqdGltZSBmaWxlLiAgSWYgdGhlIGFkanRpbWUgZmlsZSBkb2Vzbid0CitleGlzdCwgdGhlIGRlZmF1bHQgaXMgbG9jYWwgdGltZS4KKworLlRQCisuQiBcLVwtbm9hZGpmaWxlCitkaXNhYmxlcyB0aGUgZmFjaWxpdGllcyBwcm92aWRlZCBieQorLklSIC9ldGMvYWRqdGltZSAuCisuQiBod2Nsb2NrCit3aWxsIG5vdCByZWFkIG5vciB3cml0ZSB0byB0aGF0IGZpbGUgd2l0aCB0aGlzIG9wdGlvbi4gRWl0aGVyCisuQiBcLVwtdXRjCitvcgorLkIgXC1cLWxvY2FsdGltZQorbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiB1c2luZyB0aGlzIG9wdGlvbi4KKworLlRQCisuQkkgXC1cLWFkamZpbGU9IGZpbGVuYW1lCitvdmVycmlkZXMgdGhlIGRlZmF1bHQgL2V0Yy9hZGp0aW1lLgorCisuVFAKKy5CUiBcLWYgLCBcIFwtXC1ydGM9XGZJZmlsZW5hbWVcZkIKK292ZXJyaWRlcyB0aGUgZGVmYXVsdCAvZGV2IGZpbGUgbmFtZSwgd2hpY2ggaXMKKy5JUiAvZGV2L3J0Yworb24gbWFueSBwbGF0Zm9ybXMgYnV0IG1heSBiZQorLklSIC9kZXYvcnRjMCAsCisuSVIgL2Rldi9ydGMxICwKK2FuZCBzbyBvbi4KKworLlRQCisuQiBcLVwtZGlyZWN0aXNhCitpcyBtZWFuaW5nZnVsIG9ubHkgb24gYW4gSVNBIG1hY2hpbmUgb3IgYW4gQWxwaGEgKHdoaWNoIGltcGxlbWVudHMgZW5vdWdoCitvZiBJU0EgdG8gYmUsIHJvdWdobHkgc3BlYWtpbmcsIGFuIElTQSBtYWNoaW5lIGZvcgorLkJSIGh3Y2xvY2sgJ3MKK3B1cnBvc2VzKS4gIEZvciBvdGhlciBtYWNoaW5lcywgaXQgaGFzIG5vIGVmZmVjdC4gIFRoaXMgb3B0aW9uIHRlbGxzCisuQiBod2Nsb2NrCit0byB1c2UgZXhwbGljaXQgSS9PIGluc3RydWN0aW9ucyB0byBhY2Nlc3MgdGhlIEhhcmR3YXJlIENsb2NrLgorV2l0aG91dCB0aGlzIG9wdGlvbiwKKy5CIGh3Y2xvY2sKK3dpbGwgdHJ5IHRvIHVzZSB0aGUgL2Rldi9ydGMgZGV2aWNlICh3aGljaCBpdCBhc3N1bWVzIHRvIGJlIGRyaXZlbiBieSB0aGUKK3J0YyBkZXZpY2UgZHJpdmVyKS4gIElmIGl0IGlzIHVuYWJsZSB0byBvcGVuIHRoZSBkZXZpY2UgKGZvciByZWFkKSwgaXQgd2lsbAordXNlIHRoZSBleHBsaWNpdCBJL08gaW5zdHJ1Y3Rpb25zIGFueXdheS4KKworVGhlIHJ0YyBkZXZpY2UgZHJpdmVyIHdhcyBuZXcgaW4gTGludXggUmVsZWFzZSAyLgorLlRQCisuQiBcLVwtYmFkeWVhcgorSW5kaWNhdGVzIHRoYXQgdGhlIEhhcmR3YXJlIENsb2NrIGlzIGluY2FwYWJsZSBvZiBzdG9yaW5nIHllYXJzIG91dHNpZGUKK3RoZSByYW5nZSAxOTk0LTE5OTkuICBUaGVyZSBpcyBhIHByb2JsZW0gaW4gc29tZSBCSU9TZXMgKGFsbW9zdCBhbGwKK0F3YXJkIEJJT1NlcyBtYWRlIGJldHdlZW4gNC8yNi85NCBhbmQgNS8zMS85NSkgd2hlcmVpbiB0aGV5IGFyZSB1bmFibGUKK3RvIGRlYWwgd2l0aCB5ZWFycyBhZnRlciAxOTk5LiAgSWYgb25lIGF0dGVtcHRzIHRvIHNldCB0aGUgeWVhci1vZi1jZW50dXJ5Cit2YWx1ZSB0byBzb21ldGhpbmcgbGVzcyB0aGFuIDk0IChvciA5NSBpbiBzb21lIGNhc2VzKSwgdGhlIHZhbHVlIHRoYXQKK2FjdHVhbGx5IGdldHMgc2V0IGlzIDk0IChvciA5NSkuICBUaHVzLCBpZiB5b3UgaGF2ZSBvbmUgb2YgdGhlc2UgbWFjaGluZXMsCisuQiBod2Nsb2NrCitjYW5ub3Qgc2V0IHRoZSB5ZWFyIGFmdGVyIDE5OTkgYW5kIGNhbm5vdCB1c2UgdGhlIHZhbHVlIG9mIHRoZSBjbG9jayBhcwordGhlIHRydWUgdGltZSBpbiB0aGUgbm9ybWFsIHdheS4KKworVG8gY29tcGVuc2F0ZSBmb3IgdGhpcyAod2l0aG91dCB5b3VyIGdldHRpbmcgYSBCSU9TIHVwZGF0ZSwgd2hpY2ggd291bGQKK2RlZmluaXRlbHkgYmUgcHJlZmVyYWJsZSksIGFsd2F5cyB1c2UKKy5CIFwtXC1iYWR5ZWFyCitpZiB5b3UgaGF2ZSBvbmUgb2YgdGhlc2UgbWFjaGluZXMuICBXaGVuCisuQiBod2Nsb2NrCitrbm93cyBpdCdzIHdvcmtpbmcgd2l0aCBhIGJyYWluLWRhbWFnZWQgY2xvY2ssIGl0IGlnbm9yZXMgdGhlIHllYXIgcGFydCBvZgordGhlIEhhcmR3YXJlIENsb2NrIHZhbHVlIGFuZCBpbnN0ZWFkIHRyaWVzIHRvIGd1ZXNzIHRoZSB5ZWFyIGJhc2VkIG9uIHRoZQorbGFzdCBjYWxpYnJhdGVkIGRhdGUgaW4gdGhlIGFkanRpbWUgZmlsZSwgYnkgYXNzdW1pbmcgdGhhdCB0aGF0IGRhdGUgaXMKK3dpdGhpbiB0aGUgcGFzdCB5ZWFyLiAgRm9yIHRoaXMgdG8gd29yaywgeW91IGhhZCBiZXR0ZXIgZG8gYQorLkkgaHdjbG9jayBcLVwtc2V0CitvcgorLkkgaHdjbG9jayBcLVwtc3lzdG9oYworYXQgbGVhc3Qgb25jZSBhIHllYXIhCisKK1Rob3VnaAorLkIgaHdjbG9jaworaWdub3JlcyB0aGUgeWVhciB2YWx1ZSB3aGVuIGl0IHJlYWRzIHRoZSBIYXJkd2FyZSBDbG9jaywgaXQgc2V0cyB0aGUKK3llYXIgdmFsdWUgd2hlbiBpdCBzZXRzIHRoZSBjbG9jay4gIEl0IHNldHMgaXQgdG8gMTk5NSwgMTk5NiwgMTk5Nywgb3IKKzE5OTgsIHdoaWNoZXZlciBvbmUgaGFzIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBsZWFwIHllYXIgY3ljbGUgYXMKK3RoZSB0cnVlIHllYXIuICBUaGF0IHdheSwgdGhlIEhhcmR3YXJlIENsb2NrIGluc2VydHMgbGVhcCBkYXlzIHdoZXJlCit0aGV5IGJlbG9uZy4gIEFnYWluLCBpZiB5b3UgbGV0IHRoZSBIYXJkd2FyZSBDbG9jayBydW4gZm9yIG1vcmUgdGhhbiBhCit5ZWFyIHdpdGhvdXQgc2V0dGluZyBpdCwgdGhpcyBzY2hlbWUgY291bGQgYmUgZGVmZWF0ZWQgYW5kIHlvdSBjb3VsZAorZW5kIHVwIGxvc2luZyBhIGRheS4KKworLkIgaHdjbG9jaword2FybnMgeW91IHRoYXQgeW91IHByb2JhYmx5IG5lZWQKKy5CIFwtXC1iYWR5ZWFyCit3aGVuZXZlciBpdCBmaW5kcyB5b3VyIEhhcmR3YXJlIENsb2NrIHNldCB0byAxOTk0IG9yIDE5OTUuCisKKy5UUAorLkIgXC1cLXNybQorVGhpcyBvcHRpb24gaXMgZXF1aXZhbGVudCB0bworLkIgXC1cLWVwb2NoPTE5MDAKK2FuZCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIG1vc3QgY29tbW9uIGVwb2NoIG9uIEFscGhhcword2l0aCBTUk0gY29uc29sZS4KKy5UUAorLkIgXC1cLWFyYworVGhpcyBvcHRpb24gaXMgZXF1aXZhbGVudCB0bworLkIgXC1cLWVwb2NoPTE5ODAKK2FuZCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIG1vc3QgY29tbW9uIGVwb2NoIG9uIEFscGhhcword2l0aCBBUkMgY29uc29sZSAoYnV0IFJ1ZmZpYW5zIGhhdmUgZXBvY2ggMTkwMCkuCisuVFAKKy5CIFwtXC1qZW5zZW4KKy5UUAorLkIgXC1cLWZ1bmt5XC10b3kKK1RoZXNlIHR3byBvcHRpb25zIHNwZWNpZnkgd2hhdCBraW5kIG9mIEFscGhhIG1hY2hpbmUgeW91IGhhdmUuICBUaGV5CithcmUgaW52YWxpZCBpZiB5b3UgZG9uJ3QgaGF2ZSBhbiBBbHBoYSBhbmQgYXJlIHVzdWFsbHkgdW5uZWNlc3NhcnkKK2lmIHlvdSBkbywgYmVjYXVzZQorLkIgaHdjbG9jaworc2hvdWxkIGJlIGFibGUgdG8gZGV0ZXJtaW5lIGJ5IGl0c2VsZiB3aGF0IGl0J3MKK3J1bm5pbmcgb24sIGF0IGxlYXN0IHdoZW4KKy5JIC9wcm9jCitpcyBtb3VudGVkLgorKElmIHlvdSBmaW5kIHlvdSBuZWVkIG9uZSBvZiB0aGVzZSBvcHRpb25zIHRvIG1ha2UKKy5CIGh3Y2xvY2sKK3dvcmssIGNvbnRhY3QgdGhlIG1haW50YWluZXIgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGNhbiBiZSBpbXByb3ZlZAordG8gZGV0ZWN0IHlvdXIgc3lzdGVtIGF1dG9tYXRpY2FsbHkuIE91dHB1dCBvZiBgaHdjbG9jayAtLWRlYnVnJworYW5kIGBjYXQgL3Byb2MvY3B1aW5mbycgbWF5IGJlIG9mIGludGVyZXN0LikKKworLkIgXC1cLWplbnNlbgorbWVhbnMgeW91IGFyZSBydW5uaW5nIG9uIGEgSmVuc2VuIG1vZGVsLgorCisuQiBcLVwtZnVua3lcLXRveQorbWVhbnMgdGhhdCBvbiB5b3VyIG1hY2hpbmUsIG9uZSBoYXMgdG8gdXNlIHRoZSBVRiBiaXQgaW5zdGVhZAorb2YgdGhlIFVJUCBiaXQgaW4gdGhlIEhhcmR3YXJlIENsb2NrIHRvIGRldGVjdCBhIHRpbWUgdHJhbnNpdGlvbi4gICJUb3kiCitpbiB0aGUgb3B0aW9uIG5hbWUgcmVmZXJzIHRvIHRoZSBUaW1lIE9mIFllYXIgZmFjaWxpdHkgb2YgdGhlIG1hY2hpbmUuCisKKworLlRQCisuQiBcLVwtdGVzdAorRG8gZXZlcnl0aGluZyBleGNlcHQgYWN0dWFsbHkgdXBkYXRpbmcgdGhlIEhhcmR3YXJlIENsb2NrIG9yIGFueXRoaW5nCitlbHNlLiAgVGhpcyBpcyB1c2VmdWwsIGVzcGVjaWFsbHkgaW4gY29uanVuY3Rpb24gd2l0aAorLkJSIFwtXC1kZWJ1ZyAsCitpbiBsZWFybmluZyBhYm91dAorLkJSIGh3Y2xvY2sgLgorLlRQCisuQiBcLVwtZGVidWcKK0Rpc3BsYXkgYSBsb3Qgb2YgaW5mb3JtYXRpb24gYWJvdXQgd2hhdAorLkIgaHdjbG9jaworaXMgZG9pbmcgaW50ZXJuYWxseS4gIFNvbWUgb2YgaXRzIGZ1bmN0aW9uIGlzIGNvbXBsZXggYW5kIHRoaXMgb3V0cHV0CitjYW4gaGVscCB5b3UgdW5kZXJzdGFuZCBob3cgdGhlIHByb2dyYW0gd29ya3MuCisKKworLlNIIE5PVEVTCisKKworLlNIIENsb2NrcyBpbiBhIExpbnV4IFN5c3RlbQorLlBQCitUaGVyZSBhcmUgdHdvIG1haW4gY2xvY2tzIGluIGEgTGludXggc3lzdGVtOgorLlBQCisuQiBUaGUgSGFyZHdhcmUgQ2xvY2s6CitUaGlzIGlzIGEgY2xvY2sgdGhhdCBydW5zIGluZGVwZW5kZW50bHkgb2YgYW55IGNvbnRyb2wgcHJvZ3JhbSBydW5uaW5nCitpbiB0aGUgQ1BVIGFuZCBldmVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcG93ZXJlZCBvZmYuCisKK09uIGFuIElTQSBzeXN0ZW0sIHRoaXMgY2xvY2sgaXMgc3BlY2lmaWVkIGFzIHBhcnQgb2YgdGhlIElTQSBzdGFuZGFyZC4KK1RoZSBjb250cm9sIHByb2dyYW0gY2FuIHJlYWQgb3Igc2V0IHRoaXMgY2xvY2sgdG8gYSB3aG9sZSBzZWNvbmQsIGJ1dAordGhlIGNvbnRyb2wgcHJvZ3JhbSBjYW4gYWxzbyBkZXRlY3QgdGhlIGVkZ2VzIG9mIHRoZSAxIHNlY29uZCBjbG9jawordGlja3MsIHNvIHRoZSBjbG9jayBhY3R1YWxseSBoYXMgdmlydHVhbGx5IGluZmluaXRlIHByZWNpc2lvbi4KKy5QUAorVGhpcyBjbG9jayBpcyBjb21tb25seSBjYWxsZWQgdGhlIGhhcmR3YXJlIGNsb2NrLCB0aGUgcmVhbCB0aW1lIGNsb2NrLAordGhlIFJUQywgdGhlIEJJT1MgY2xvY2ssIGFuZCB0aGUgQ01PUyBjbG9jay4gIEhhcmR3YXJlIENsb2NrLCBpbiBpdHMKK2NhcGl0YWxpemVkIGZvcm0sIHdhcyBjb2luZWQgZm9yIHVzZSBieQorLkIgaHdjbG9jaworYmVjYXVzZSBhbGwgb2YgdGhlIG90aGVyIG5hbWVzIGFyZSBpbmFwcHJvcHJpYXRlIHRvIHRoZSBwb2ludCBvZiBiZWluZworbWlzbGVhZGluZy4KKy5QUAorU28gZm9yIGV4YW1wbGUsIHNvbWUgbm9uLUlTQSBzeXN0ZW1zIGhhdmUgYSBmZXcgcmVhbCB0aW1lIGNsb2NrcyB3aXRoCitvbmx5IG9uZSBvZiB0aGVtIGhhdmluZyBpdHMgb3duIHBvd2VyIGRvbWFpbi4KK0EgdmVyeSBsb3cgcG93ZXIgZXh0ZXJuYWwgSTJDIG9yIFNQSSBjbG9jayBjaGlwIG1pZ2h0IGJlIHVzZWQgd2l0aCBhCitiYWNrdXAgYmF0dGVyeSBhcyB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gaW5pdGlhbGl6ZSBhIG1vcmUgZnVuY3Rpb25hbAoraW50ZWdyYXRlZCByZWFsLXRpbWUgY2xvY2sgd2hpY2ggaXMgdXNlZCBmb3IgbW9zdCBvdGhlciBwdXJwb3Nlcy4KKy5QUAorLkIgVGhlIFN5c3RlbSBUaW1lOgorVGhpcyBpcyB0aGUgdGltZSBrZXB0IGJ5IGEgY2xvY2sgaW5zaWRlIHRoZSBMaW51eCBrZXJuZWwgYW5kIGRyaXZlbiBieQorYSB0aW1lciBpbnRlcnJ1cHQuICAoT24gYW4gSVNBIG1hY2hpbmUsIHRoZSB0aW1lciBpbnRlcnJ1cHQgaXMgcGFydCBvZgordGhlIElTQSBzdGFuZGFyZCkuICBJdCBoYXMgbWVhbmluZyBvbmx5IHdoaWxlIExpbnV4IGlzIHJ1bm5pbmcgb24gdGhlCittYWNoaW5lLiAgVGhlIFN5c3RlbSBUaW1lIGlzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAwMDowMDowMAorSmFudWFyeSAxLCAxOTcwIFVUQyAob3IgbW9yZSBzdWNjaW5jdGx5LCB0aGUgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UKKzE5NjkpLiAgVGhlIFN5c3RlbSBUaW1lIGlzIG5vdCBhbiBpbnRlZ2VyLCB0aG91Z2guICBJdCBoYXMgdmlydHVhbGx5CitpbmZpbml0ZSBwcmVjaXNpb24uCisuUFAKK1RoZSBTeXN0ZW0gVGltZSBpcyB0aGUgdGltZSB0aGF0IG1hdHRlcnMuICBUaGUgSGFyZHdhcmUgQ2xvY2sncyBiYXNpYworcHVycG9zZSBpbiBhIExpbnV4IHN5c3RlbSBpcyB0byBrZWVwIHRpbWUgd2hlbiBMaW51eCBpcyBub3QgcnVubmluZy4gIFlvdQoraW5pdGlhbGl6ZSB0aGUgU3lzdGVtIFRpbWUgdG8gdGhlIHRpbWUgZnJvbSB0aGUgSGFyZHdhcmUgQ2xvY2sgd2hlbiBMaW51eAorc3RhcnRzIHVwLCBhbmQgdGhlbiBuZXZlciB1c2UgdGhlIEhhcmR3YXJlIENsb2NrIGFnYWluLiAgTm90ZSB0aGF0IGluIERPUywKK2ZvciB3aGljaCBJU0Egd2FzIGRlc2lnbmVkLCB0aGUgSGFyZHdhcmUgQ2xvY2sgaXMgdGhlIG9ubHkgcmVhbCB0aW1lIGNsb2NrLgorLlBQCitJdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgU3lzdGVtIFRpbWUgbm90IGhhdmUgYW55IGRpc2NvbnRpbnVpdGllcyBzdWNoIGFzCit3b3VsZCBoYXBwZW4gaWYgeW91IHVzZWQgdGhlCisuQlIgZGF0ZSAoMUwpCitwcm9ncmFtIHRvIHNldCBpdCB3aGlsZSB0aGUgc3lzdGVtIGlzIHJ1bm5pbmcuICBZb3UgY2FuLCBob3dldmVyLCBkbyB3aGF0ZXZlcgoreW91IHdhbnQgdG8gdGhlIEhhcmR3YXJlIENsb2NrIHdoaWxlIHRoZSBzeXN0ZW0gaXMgcnVubmluZywgYW5kIHRoZSBuZXh0Cit0aW1lIExpbnV4IHN0YXJ0cyB1cCwgaXQgd2lsbCBkbyBzbyB3aXRoIHRoZSBhZGp1c3RlZCB0aW1lIGZyb20gdGhlIEhhcmR3YXJlCitDbG9jay4gIFlvdSBjYW4gYWxzbyB1c2UgdGhlIHByb2dyYW0KKy5CUiBhZGp0aW1leCAoOCkKK3RvIHNtb290aGx5IGFkanVzdCB0aGUgU3lzdGVtIFRpbWUgd2hpbGUgdGhlIHN5c3RlbSBydW5zLgorLlBQCitBIExpbnV4IGtlcm5lbCBtYWludGFpbnMgYSBjb25jZXB0IG9mIGEgbG9jYWwgdGltZXpvbmUgZm9yIHRoZSBzeXN0ZW0uCitCdXQgZG9uJ3QgYmUgbWlzbGVkIC0tIGFsbW9zdCBub2JvZHkgY2FyZXMgd2hhdCB0aW1lem9uZSB0aGUga2VybmVsCit0aGlua3MgaXQgaXMgaW4uICBJbnN0ZWFkLCBwcm9ncmFtcyB0aGF0IGNhcmUgYWJvdXQgdGhlIHRpbWV6b25lCisocGVyaGFwcyBiZWNhdXNlIHRoZXkgd2FudCB0byBkaXNwbGF5IGEgbG9jYWwgdGltZSBmb3IgeW91KSBhbG1vc3QKK2Fsd2F5cyB1c2UgYSBtb3JlIHRyYWRpdGlvbmFsIG1ldGhvZCBvZiBkZXRlcm1pbmluZyB0aGUgdGltZXpvbmU6IFRoZXkKK3VzZSB0aGUgVFogZW52aXJvbm1lbnQgdmFyaWFibGUgYW5kL29yIHRoZQorLkkgL3Vzci9zaGFyZS96b25laW5mbworZGlyZWN0b3J5LCBhcyBleHBsYWluZWQgaW4gdGhlIG1hbiBwYWdlIGZvcgorLkJSIHR6c2V0ICgzKS4KK0hvd2V2ZXIsIHNvbWUKK3Byb2dyYW1zIGFuZCBmcmluZ2UgcGFydHMgb2YgdGhlIExpbnV4IGtlcm5lbCBzdWNoIGFzIGZpbGVzeXN0ZW1zIHVzZQordGhlIGtlcm5lbCB0aW1lem9uZSB2YWx1ZS4gIEFuIGV4YW1wbGUgaXMgdGhlIHZmYXQgZmlsZXN5c3RlbS4gIElmIHRoZQora2VybmVsIHRpbWV6b25lIHZhbHVlIGlzIHdyb25nLCB0aGUgdmZhdCBmaWxlc3lzdGVtIHdpbGwgcmVwb3J0IGFuZAorc2V0IHRoZSB3cm9uZyB0aW1lc3RhbXBzIG9uIGZpbGVzLgorLlBQCisuQiBod2Nsb2NrCitzZXRzIHRoZSBrZXJuZWwgdGltZXpvbmUgdG8gdGhlIHZhbHVlIGluZGljYXRlZCBieSBUWiBhbmQvb3IKKy5JIC91c3Ivc2hhcmUvem9uZWluZm8KK3doZW4geW91IHNldCB0aGUgU3lzdGVtIFRpbWUgdXNpbmcgdGhlCisuQiBcLVwtaGN0b3N5cworb3B0aW9uLgorLlBQCitUaGUgdGltZXpvbmUgdmFsdWUgYWN0dWFsbHkgY29uc2lzdHMgb2YgdHdvIHBhcnRzOiAxKSBhIGZpZWxkCit0el9taW51dGVzd2VzdCBpbmRpY2F0aW5nIGhvdyBtYW55IG1pbnV0ZXMgbG9jYWwgdGltZSAobm90IGFkanVzdGVkCitmb3IgRFNUKSBsYWdzIGJlaGluZCBVVEMsIGFuZCAyKSBhIGZpZWxkIHR6X2RzdHRpbWUgaW5kaWNhdGluZwordGhlIHR5cGUgb2YgRGF5bGlnaHQgU2F2aW5ncyBUaW1lIChEU1QpIGNvbnZlbnRpb24gdGhhdCBpcyBpbiBlZmZlY3QKK2luIHRoZSBsb2NhbGl0eSBhdCB0aGUgcHJlc2VudCB0aW1lLgorVGhpcyBzZWNvbmQgZmllbGQgaXMgbm90IHVzZWQgdW5kZXIgTGludXggYW5kIGlzIGFsd2F5cyB6ZXJvLgorKFNlZSBhbHNvCisuQlIgc2V0dGltZW9mZGF5ICgyKS4pCisKKy5TSCBIb3cgaHdjbG9jayBBY2Nlc3NlcyB0aGUgSGFyZHdhcmUgQ2xvY2sKKy5QUAorLkIgaHdjbG9jawordXNlcyBtYW55IGRpZmZlcmVudCB3YXlzIHRvIGdldCBhbmQgc2V0IEhhcmR3YXJlIENsb2NrIHZhbHVlcy4KK1RoZSBtb3N0IG5vcm1hbCB3YXkgaXMgdG8gZG8gSS9PIHRvIHRoZSBkZXZpY2Ugc3BlY2lhbCBmaWxlIC9kZXYvcnRjLAord2hpY2ggaXMgcHJlc3VtZWQgdG8gYmUgZHJpdmVuIGJ5IHRoZSBydGMgZGV2aWNlIGRyaXZlci4gIEhvd2V2ZXIsCit0aGlzIG1ldGhvZCBpcyBub3QgYWx3YXlzIGF2YWlsYWJsZS4gIEZvciBvbmUgdGhpbmcsIHRoZSBydGMgZHJpdmVyIGlzCithIHJlbGF0aXZlbHkgcmVjZW50IGFkZGl0aW9uIHRvIExpbnV4LiAgT2xkZXIgc3lzdGVtcyBkb24ndCBoYXZlIGl0LgorQWxzbywgdGhvdWdoIHRoZXJlIGFyZSB2ZXJzaW9ucyBvZiB0aGUgcnRjIGRyaXZlciB0aGF0IHdvcmsgb24gREVDCitBbHBoYXMsIHRoZXJlIGFwcGVhciB0byBiZSBwbGVudHkgb2YgQWxwaGFzIG9uIHdoaWNoIHRoZSBydGMgZHJpdmVyCitkb2VzIG5vdCB3b3JrIChhIGNvbW1vbiBzeW1wdG9tIGlzIGh3Y2xvY2sgaGFuZ2luZykuCitNb3Jlb3ZlciwgcmVjZW50IExpbnV4IHN5c3RlbXMgaGF2ZSBtb3JlIGdlbmVyaWMgc3VwcG9ydCBmb3IgUlRDcywKK2V2ZW4gc3lzdGVtcyB0aGF0IGhhdmUgbW9yZSB0aGFuIG9uZSwgc28geW91IG1pZ2h0IG5lZWQgdG8gb3ZlcnJpZGUKK3RoZSBkZWZhdWx0IGJ5IHNwZWNpZnlpbmcKKy5JIC9kZXYvcnRjMAorb3IKKy5JIC9kZXYvcnRjMQoraW5zdGVhZC4KKy5QUAorT24gb2xkZXIgc3lzdGVtcywgdGhlIG1ldGhvZCBvZiBhY2Nlc3NpbmcgdGhlIEhhcmR3YXJlIENsb2NrIGRlcGVuZHMgb24KK3RoZSBzeXN0ZW0gaGFyZHdhcmUuCisuUFAKK09uIGFuIElTQSBzeXN0ZW0sCisuQiBod2Nsb2NrCitjYW4gZGlyZWN0bHkgYWNjZXNzIHRoZSAiQ01PUyBtZW1vcnkiIHJlZ2lzdGVycyB0aGF0Citjb25zdGl0dXRlIHRoZSBjbG9jaywgYnkgZG9pbmcgSS9PIHRvIFBvcnRzIDB4NzAgYW5kIDB4NzEuICBJdCBkb2VzCit0aGlzIHdpdGggYWN0dWFsIEkvTyBpbnN0cnVjdGlvbnMgYW5kIGNvbnNlcXVlbnRseSBjYW4gb25seSBkbyBpdCBpZgorcnVubmluZyB3aXRoIHN1cGVydXNlciBlZmZlY3RpdmUgdXNlcmlkLiAgKEluIHRoZSBjYXNlIG9mIGEgSmVuc2VuCitBbHBoYSwgdGhlcmUgaXMgbm8gd2F5IGZvcgorLkIgaHdjbG9jawordG8gZXhlY3V0ZSB0aG9zZSBJL08gaW5zdHJ1Y3Rpb25zLCBhbmQgc28gaXQgdXNlcyBpbnN0ZWFkIHRoZQorL2Rldi9wb3J0IGRldmljZSBzcGVjaWFsIGZpbGUsIHdoaWNoIHByb3ZpZGVzIGFsbW9zdCBhcyBsb3ctbGV2ZWwgYW4KK2ludGVyZmFjZSB0byB0aGUgSS9PIHN1YnN5c3RlbSkuCisKK1RoaXMgaXMgYSByZWFsbHkgcG9vciBtZXRob2Qgb2YgYWNjZXNzaW5nIHRoZSBjbG9jaywgZm9yIGFsbCB0aGUKK3JlYXNvbnMgdGhhdCB1c2VyIHNwYWNlIHByb2dyYW1zIGFyZSBnZW5lcmFsbHkgbm90IHN1cHBvc2VkIHRvIGRvCitkaXJlY3QgSS9PIGFuZCBkaXNhYmxlIGludGVycnVwdHMuICBId2Nsb2NrIHByb3ZpZGVzIGl0IGJlY2F1c2UgaXQgaXMKK3RoZSBvbmx5IG1ldGhvZCBhdmFpbGFibGUgb24gSVNBIGFuZCBBbHBoYSBzeXN0ZW1zIHdoaWNoIGRvbid0IGhhdmUKK3dvcmtpbmcgcnRjIGRldmljZSBkcml2ZXJzIGF2YWlsYWJsZS4KKworLlBQCitPbiBhbiBtNjhrIHN5c3RlbSwKKy5CIGh3Y2xvY2sKK2NhbiBhY2Nlc3MgdGhlIGNsb2NrIHZpYSB0aGUgY29uc29sZSBkcml2ZXIsIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwKK2ZpbGUgL2Rldi90dHkxLgorLlBQCisuQiBod2Nsb2NrCit0cmllcyB0byB1c2UgL2Rldi9ydGMuICBJZiBpdCBpcyBjb21waWxlZCBmb3IgYSBrZXJuZWwgdGhhdCBkb2Vzbid0IGhhdmUKK3RoYXQgZnVuY3Rpb24gb3IgaXQgaXMgdW5hYmxlIHRvIG9wZW4gL2Rldi9ydGMKKyhvciB0aGUgYWx0ZXJuYXRpdmUgc3BlY2lhbCBmaWxlIHlvdSd2ZSBkZWZpbmVkIG9uIHRoZSBjb21tYW5kIGxpbmUpCisuQiBod2Nsb2NrCit3aWxsIGZhbGwgYmFjayB0byBhbm90aGVyIG1ldGhvZCwgaWYgYXZhaWxhYmxlLiAgT24gYW4gSVNBIG9yIEFscGhhCittYWNoaW5lLCB5b3UgY2FuIGZvcmNlCisuQiBod2Nsb2NrCit0byB1c2UgdGhlIGRpcmVjdCBtYW5pcHVsYXRpb24gb2YgdGhlIENNT1MgcmVnaXN0ZXJzIHdpdGhvdXQgZXZlbiB0cnlpbmcKKy5JIC9kZXYvcnRjCitieSBzcGVjaWZ5aW5nIHRoZQorLkIgXC1cLWRpcmVjdGlzYQorb3B0aW9uLgorCisKKy5TSCBUaGUgQWRqdXN0IEZ1bmN0aW9uCisuUFAKK1RoZSBIYXJkd2FyZSBDbG9jayBpcyB1c3VhbGx5IG5vdCB2ZXJ5IGFjY3VyYXRlLiAgSG93ZXZlciwgbXVjaCBvZiBpdHMKK2luYWNjdXJhY3kgaXMgY29tcGxldGVseSBwcmVkaWN0YWJsZSAtIGl0IGdhaW5zIG9yIGxvc2VzIHRoZSBzYW1lIGFtb3VudAorb2YgdGltZSBldmVyeSBkYXkuICBUaGlzIGlzIGNhbGxlZCBzeXN0ZW1hdGljIGRyaWZ0LgorLkJSIGh3Y2xvY2sgJ3MKKyJhZGp1c3QiIGZ1bmN0aW9uIGxldHMgeW91IG1ha2Ugc3lzdGVtYXRpYyBjb3JyZWN0aW9ucyB0byBjb3JyZWN0IHRoZQorc3lzdGVtYXRpYyBkcmlmdC4KKy5QUAorSXQgd29ya3MgbGlrZSB0aGlzOgorLkIgaHdjbG9jawora2VlcHMgYSBmaWxlLAorLklSIC9ldGMvYWRqdGltZSAsCit0aGF0IGtlZXBzIHNvbWUgaGlzdG9yaWNhbCBpbmZvcm1hdGlvbi4gIFRoaXMgaXMgY2FsbGVkIHRoZSBhZGp0aW1lIGZpbGUuCisuUFAKK1N1cHBvc2UgeW91IHN0YXJ0IHdpdGggbm8gYWRqdGltZSBmaWxlLiAgWW91IGlzc3VlIGEKKy5JIGh3Y2xvY2sgXC1cLXNldAorY29tbWFuZCB0byBzZXQgdGhlIEhhcmR3YXJlIENsb2NrIHRvIHRoZSB0cnVlIGN1cnJlbnQgdGltZS4KKy5CIEh3Y2xvY2sKK2NyZWF0ZXMgdGhlIGFkanRpbWUgZmlsZSBhbmQgcmVjb3JkcyBpbiBpdCB0aGUgY3VycmVudCB0aW1lIGFzIHRoZQorbGFzdCB0aW1lIHRoZSBjbG9jayB3YXMgY2FsaWJyYXRlZC4KKzUgZGF5cyBsYXRlciwgdGhlIGNsb2NrIGhhcyBnYWluZWQgMTAgc2Vjb25kcywgc28geW91IGlzc3VlIGFub3RoZXIKKy5JIGh3Y2xvY2sgXC1cLXNldAorY29tbWFuZCB0byBzZXQgaXQgYmFjayAxMCBzZWNvbmRzLgorLkIgSHdjbG9jawordXBkYXRlcyB0aGUgYWRqdGltZSBmaWxlIHRvIHNob3cgdGhlIGN1cnJlbnQgdGltZSBhcyB0aGUgbGFzdCB0aW1lIHRoZQorY2xvY2sgd2FzIGNhbGlicmF0ZWQsIGFuZCByZWNvcmRzIDIgc2Vjb25kcyBwZXIgZGF5IGFzIHRoZSBzeXN0ZW1hdGljCitkcmlmdCByYXRlLiAgMjQgaG91cnMgZ28gYnksIGFuZCB0aGVuIHlvdSBpc3N1ZSBhCisuSSBod2Nsb2NrIFwtXC1hZGp1c3QKK2NvbW1hbmQuCisuQiBId2Nsb2NrCitjb25zdWx0cyB0aGUgYWRqdGltZSBmaWxlIGFuZCBzZWVzIHRoYXQgdGhlIGNsb2NrIGdhaW5zIDIgc2Vjb25kcyBwZXIKK2RheSB3aGVuIGxlZnQgYWxvbmUgYW5kIHRoYXQgaXQgaGFzIGJlZW4gbGVmdCBhbG9uZSBmb3IgZXhhY3RseSBvbmUKK2RheS4gIFNvIGl0IHN1YnRyYWN0cyAyIHNlY29uZHMgZnJvbSB0aGUgSGFyZHdhcmUgQ2xvY2suICBJdCB0aGVuCityZWNvcmRzIHRoZSBjdXJyZW50IHRpbWUgYXMgdGhlIGxhc3QgdGltZSB0aGUgY2xvY2sgd2FzIGFkanVzdGVkLgorQW5vdGhlciAyNCBob3VycyBnb2VzIGJ5IGFuZCB5b3UgaXNzdWUgYW5vdGhlcgorLklSICJod2Nsb2NrIFwtXC1hZGp1c3QiIC4KKy5CIEh3Y2xvY2sKK2RvZXMgdGhlIHNhbWUgdGhpbmc6IHN1YnRyYWN0cyAyIHNlY29uZHMgYW5kIHVwZGF0ZXMgdGhlIGFkanRpbWUgZmlsZQord2l0aCB0aGUgY3VycmVudCB0aW1lIGFzIHRoZSBsYXN0IHRpbWUgdGhlIGNsb2NrIHdhcyBhZGp1c3RlZC4KKy5QUAorRXZlcnkgdGltZSB5b3UgY2FsaWJyYXRlIChzZXQpIHRoZSBjbG9jayAodXNpbmcKKy5JIFwtXC1zZXQKK29yCisuSVIgXC1cLXN5c3RvaGMgKSwKKy5CIGh3Y2xvY2sKK3JlY2FsY3VsYXRlcyB0aGUgc3lzdGVtYXRpYyBkcmlmdCByYXRlIGJhc2VkIG9uIGhvdyBsb25nIGl0IGhhcyBiZWVuCitzaW5jZSB0aGUgbGFzdCBjYWxpYnJhdGlvbiwgaG93IGxvbmcgaXQgaGFzIGJlZW4gc2luY2UgdGhlIGxhc3QKK2FkanVzdG1lbnQsIHdoYXQgZHJpZnQgcmF0ZSB3YXMgYXNzdW1lZCBpbiBhbnkgaW50ZXJ2ZW5pbmcKK2FkanVzdG1lbnRzLCBhbmQgdGhlIGFtb3VudCBieSB3aGljaCB0aGUgY2xvY2sgaXMgcHJlc2VudGx5IG9mZi4KKy5QUAorQSBzbWFsbCBhbW91bnQgb2YgZXJyb3IgY3JlZXBzIGluIGFueSB0aW1lCisuQiBod2Nsb2NrCitzZXRzIHRoZSBjbG9jaywgc28gaXQgcmVmcmFpbnMgZnJvbSBtYWtpbmcgYW4gYWRqdXN0bWVudCB0aGF0IHdvdWxkIGJlCitsZXNzIHRoYW4gMSBzZWNvbmQuICBMYXRlciBvbiwgd2hlbiB5b3UgcmVxdWVzdCBhbiBhZGp1c3RtZW50IGFnYWluLAordGhlIGFjY3VtdWxhdGVkIGRyaWZ0IHdpbGwgYmUgbW9yZSB0aGFuIGEgc2Vjb25kIGFuZAorLkIgaHdjbG9jaword2lsbCBkbyB0aGUgYWRqdXN0bWVudCB0aGVuLgorLlBQCitJdCBpcyBnb29kIHRvIGRvIGEKKy5JIGh3Y2xvY2sgXC1cLWFkanVzdAoranVzdCBiZWZvcmUgdGhlCisuSSBod2Nsb2NrIFwtXC1oY3Rvc3lzCithdCBzeXN0ZW0gc3RhcnR1cCB0aW1lLCBhbmQgbWF5YmUgcGVyaW9kaWNhbGx5IHdoaWxlIHRoZSBzeXN0ZW0gaXMKK3J1bm5pbmcgdmlhIGNyb24uCisuUFAKK1RoZSBhZGp0aW1lIGZpbGUsIHdoaWxlIG5hbWVkIGZvciBpdHMgaGlzdG9yaWNhbCBwdXJwb3NlIG9mIGNvbnRyb2xsaW5nCithZGp1c3RtZW50cyBvbmx5LCBhY3R1YWxseSBjb250YWlucyBvdGhlciBpbmZvcm1hdGlvbiBmb3IgdXNlIGJ5IGh3Y2xvY2sKK2luIHJlbWVtYmVyaW5nIGluZm9ybWF0aW9uIGZyb20gb25lIGludm9jYXRpb24gdG8gdGhlIG5leHQuCisuUFAKK1RoZSBmb3JtYXQgb2YgdGhlIGFkanRpbWUgZmlsZSBpcywgaW4gQVNDSUk6CisuUFAKK0xpbmUgMTogMyBudW1iZXJzLCBzZXBhcmF0ZWQgYnkgYmxhbmtzOiAxKSBzeXN0ZW1hdGljIGRyaWZ0IHJhdGUgaW4KK3NlY29uZHMgcGVyIGRheSwgZmxvYXRpbmcgcG9pbnQgZGVjaW1hbDsgMikgUmVzdWx0aW5nIG51bWJlciBvZgorc2Vjb25kcyBzaW5jZSAxOTY5IFVUQyBvZiBtb3N0IHJlY2VudCBhZGp1c3RtZW50IG9yIGNhbGlicmF0aW9uLAorZGVjaW1hbCBpbnRlZ2VyOyAzKSB6ZXJvIChmb3IgY29tcGF0aWJpbGl0eSB3aXRoCisuQlIgY2xvY2sgKDgpKQorYXMgYSBkZWNpbWFsIGludGVnZXIuCisuUFAKK0xpbmUgMjogMSBudW1iZXI6IFJlc3VsdGluZyBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAxOTY5IFVUQyBvZiBtb3N0CityZWNlbnQgY2FsaWJyYXRpb24uICBaZXJvIGlmIHRoZXJlIGhhcyBiZWVuIG5vIGNhbGlicmF0aW9uIHlldCBvciBpdAoraXMga25vd24gdGhhdCBhbnkgcHJldmlvdXMgY2FsaWJyYXRpb24gaXMgbW9vdCAoZm9yIGV4YW1wbGUsIGJlY2F1c2UKK3RoZSBIYXJkd2FyZSBDbG9jayBoYXMgYmVlbiBmb3VuZCwgc2luY2UgdGhhdCBjYWxpYnJhdGlvbiwgbm90IHRvCitjb250YWluIGEgdmFsaWQgdGltZSkuICBUaGlzIGlzIGEgZGVjaW1hbCBpbnRlZ2VyLgorLlBQCitMaW5lIDM6ICJVVEMiIG9yICJMT0NBTCIuICBUZWxscyB3aGV0aGVyIHRoZSBIYXJkd2FyZSBDbG9jayBpcyBzZXQgdG8KK0Nvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lIG9yIGxvY2FsIHRpbWUuICBZb3UgY2FuIGFsd2F5cyBvdmVycmlkZSB0aGlzCit2YWx1ZSB3aXRoIG9wdGlvbnMgb24gdGhlCisuQiBod2Nsb2NrCitjb21tYW5kIGxpbmUuCisuUFAKK1lvdSBjYW4gdXNlIGFuIGFkanRpbWUgZmlsZSB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgd2l0aCB0aGUKKy5CUiBjbG9jayAoOCkKK3Byb2dyYW0gd2l0aAorLkJSIGh3Y2xvY2sgLgorCisKKy5TSCAiQXV0b21hdGljIEhhcmR3YXJlIENsb2NrIFN5bmNocm9uaXphdGlvbiBCeSB0aGUgS2VybmVsIgorCitZb3Ugc2hvdWxkIGJlIGF3YXJlIG9mIGFub3RoZXIgd2F5IHRoYXQgdGhlIEhhcmR3YXJlIENsb2NrIGlzIGtlcHQKK3N5bmNocm9uaXplZCBpbiBzb21lIHN5c3RlbXMuICBUaGUgTGludXgga2VybmVsIGhhcyBhIG1vZGUgd2hlcmVpbiBpdAorY29waWVzIHRoZSBTeXN0ZW0gVGltZSB0byB0aGUgSGFyZHdhcmUgQ2xvY2sgZXZlcnkgMTEgbWludXRlcy4KK1RoaXMgaXMgYSBnb29kIG1vZGUgdG8gdXNlIHdoZW4geW91IGFyZSB1c2luZyBzb21ldGhpbmcgc29waGlzdGljYXRlZAorbGlrZSBudHAgdG8ga2VlcCB5b3VyIFN5c3RlbSBUaW1lIHN5bmNocm9uaXplZC4gKG50cCBpcyBhIHdheSB0byBrZWVwCit5b3VyIFN5c3RlbSBUaW1lIHN5bmNocm9uaXplZCBlaXRoZXIgdG8gYSB0aW1lIHNlcnZlciBzb21ld2hlcmUgb24gdGhlCituZXR3b3JrIG9yIHRvIGEgcmFkaW8gY2xvY2sgaG9va2VkIHVwIHRvIHlvdXIgc3lzdGVtLiAgU2VlIFJGQyAxMzA1KS4KKworVGhpcyBtb2RlICh3ZSdsbCBjYWxsIGl0ICIxMSBtaW51dGUgbW9kZSIpIGlzIG9mZiB1bnRpbCBzb21ldGhpbmcKK3R1cm5zIGl0IG9uLiAgVGhlIG50cCBkYWVtb24geG50cGQgaXMgb25lIHRoaW5nIHRoYXQgdHVybnMgaXQgb24uICBZb3UKK2NhbiB0dXJuIGl0IG9mZiBieSBydW5uaW5nIGFueXRoaW5nLCBpbmNsdWRpbmcKKy5JUiAiaHdjbG9jayBcLVwtaGN0b3N5cyIgLAordGhhdCBzZXRzIHRoZSBTeXN0ZW0gVGltZSB0aGUgb2xkIGZhc2hpb25lZCB3YXkuCisKK1RvIHNlZSBpZiBpdCBpcyBvbiBvcgorb2ZmLCB1c2UgdGhlIGNvbW1hbmQKKy5JIGFkanRpbWV4IFwtXC1wcmludAorYW5kIGxvb2sgYXQgdGhlIHZhbHVlIG9mICJzdGF0dXMiLiAgSWYgdGhlICI2NCIgYml0IG9mIHRoaXMgbnVtYmVyCisoZXhwcmVzc2VkIGluIGJpbmFyeSkgZXF1YWwgdG8gMCwgMTEgbWludXRlIG1vZGUgaXMgb24uICBPdGhlcndpc2UsIGl0CitpcyBvZmYuCisKK0lmIHlvdXIgc3lzdGVtIHJ1bnMgd2l0aCAxMSBtaW51dGUgbW9kZSBvbiwgZG9uJ3QgdXNlCisuSSBod2Nsb2NrIFwtXC1hZGp1c3QKK29yCisuSVIgImh3Y2xvY2sgXC1cLWhjdG9zeXMiIC4KK1lvdSdsbCBqdXN0IG1ha2UgYSBtZXNzLiAgSXQgaXMgYWNjZXB0YWJsZSB0byB1c2UgYQorLkkgaHdjbG9jayBcLVwtaGN0b3N5cworYXQgc3RhcnR1cCB0aW1lIHRvIGdldCBhIHJlYXNvbmFibGUgU3lzdGVtIFRpbWUgdW50aWwgeW91ciBzeXN0ZW0gaXMKK2FibGUgdG8gc2V0IHRoZSBTeXN0ZW0gVGltZSBmcm9tIHRoZSBleHRlcm5hbCBzb3VyY2UgYW5kIHN0YXJ0IDExCittaW51dGUgbW9kZS4KKworCisuU0ggSVNBIEhhcmR3YXJlIENsb2NrIENlbnR1cnkgdmFsdWUKKworVGhlcmUgaXMgc29tZSBzb3J0IG9mIHN0YW5kYXJkIHRoYXQgZGVmaW5lcyBDTU9TIG1lbW9yeSBCeXRlIDUwIG9uIGFuIElTQQorbWFjaGluZSBhcyBhbiBpbmRpY2F0b3Igb2Ygd2hhdCBjZW50dXJ5IGl0IGlzLgorLkIgaHdjbG9jaworZG9lcyBub3QgdXNlIG9yIHNldCB0aGF0IGJ5dGUgYmVjYXVzZSB0aGVyZSBhcmUgc29tZSBtYWNoaW5lcyB0aGF0Citkb24ndCBkZWZpbmUgdGhlIGJ5dGUgdGhhdCB3YXksIGFuZCBpdCByZWFsbHkgaXNuJ3QgbmVjZXNzYXJ5IGFueXdheSwKK3NpbmNlIHRoZSB5ZWFyLW9mLWNlbnR1cnkgZG9lcyBhIGdvb2Qgam9iIG9mIGltcGx5aW5nIHdoaWNoIGNlbnR1cnkgaXQKK2lzLgorCitJZiB5b3UgaGF2ZSBhIGJvbmEgZmlkZSB1c2UgZm9yIGEgQ01PUyBjZW50dXJ5IGJ5dGUsIGNvbnRhY3QgdGhlCisuQiBod2Nsb2NrCittYWludGFpbmVyOyBhbiBvcHRpb24gbWF5IGJlIGFwcHJvcHJpYXRlLgorCitOb3RlIHRoYXQgdGhpcyBzZWN0aW9uIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiB5b3UgYXJlIHVzaW5nIHRoZSAiZGlyZWN0CitJU0EiIG1ldGhvZCBvZiBhY2Nlc3NpbmcgdGhlIEhhcmR3YXJlIENsb2NrLgorQUNQSSBwcm92aWRlcyBhIHN0YW5kYXJkIHdheSB0byBhY2Nlc3MgY2VudHVyeSB2YWx1ZXMsIHdoZW4gdGhleQorYXJlIHN1cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUuCisKKy5TSCAiRU5WSVJPTk1FTlQgVkFSSUFCTEVTIgorLkkgVFoKKworLlNIIEZJTEVTCisuSSAvZXRjL2FkanRpbWUKKy5JIC91c3Ivc2hhcmUvem9uZWluZm8vCisuUkkgKCAvdXNyL2xpYi96b25laW5mbworb24gb2xkIHN5c3RlbXMpCisuSSAvZGV2L3J0YworLkkgL2Rldi9ydGMwCisuSSAvZGV2L3BvcnQKKy5JIC9kZXYvdHR5MQorLkkgL3Byb2MvY3B1aW5mbworCisuU0ggIlNFRSBBTFNPIgorLkJSIGFkanRpbWV4ICg4KSwKKy5CUiBkYXRlICgxKSwKKy5CUiBnZXR0aW1lb2ZkYXkgKDIpLAorLkJSIHNldHRpbWVvZmRheSAoMiksCisuQlIgY3JvbnRhYiAoMSksCisuQlIgdHpzZXQgKDMpCisKKy5TSCBBVVRIT1JTCitXcml0dGVuIGJ5IEJyeWFuIEhlbmRlcnNvbiwgU2VwdGVtYmVyIDE5OTYgKGJyeWFuaEBnaXJhZmZlLWRhdGEuY29tKSwKK2Jhc2VkIG9uIHdvcmsgZG9uZSBvbiB0aGUKKy5JIGNsb2NrCitwcm9ncmFtIGJ5IENoYXJsZXMgSGVkcmljaywgUm9iIEhvb2Z0LCBhbmQgSGFyYWxkIEtvZW5pZy4KK1NlZSB0aGUgc291cmNlIGNvZGUgZm9yIGNvbXBsZXRlIGhpc3RvcnkgYW5kIGNyZWRpdHMuCisKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBod2Nsb2NrIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaHdjbG9jay9od2Nsb2NrLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL2h3Y2xvY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDdmNzU3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaHdjbG9jay9od2Nsb2NrLmMKQEAgLTAsMCArMSwxODE4IEBACisvKgorICogaHdjbG9jay5jCisgKgorICogY2xvY2suYyB3YXMgd3JpdHRlbiBieSBDaGFybGVzIEhlZHJpY2ssIGhlZHJpY2tAY3MucnV0Z2Vycy5lZHUsIEFwciAxOTkyCisgKiBNb2RpZmllZCBmb3IgY2xvY2sgYWRqdXN0bWVudHMgLSBSb2IgSG9vZnQgPGhvb2Z0QGNoZW0ucnV1Lm5sPiwgTm92IDE5OTIKKyAqIEltcHJvdmVtZW50cyBieSBIYXJhbGQgS29lbmlnIDxrb2VuaWdAbm92YS50YXQucGh5c2lrLnVuaS10dWViaW5nZW4uZGU+CisgKiBhbmQgQWxhbiBNb2RyYSA8YWxhbkBzcHJpLmxldmVscy51bmlzYS5lZHUuYXU+LgorICoKKyAqIE1ham9yIHJld3JpdGUgYnkgQnJ5YW4gSGVuZGVyc29uIDxicnlhbmhAZ2lyYWZmZS1kYXRhLmNvbT4sIDk2LjA5LjE5LgorICogVGhlIG5ldyBwcm9ncmFtIGlzIGNhbGxlZCBod2Nsb2NrLiBOZXcgZmVhdHVyZXM6CisgKiAtIFlvdSBjYW4gc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB3aXRob3V0IGFsc28gbW9kaWZ5aW5nIHRoZSBzeXN0ZW0gY2xvY2suCisgKiAtIFlvdSBjYW4gcmVhZCBhbmQgc2V0IHRoZSBjbG9jayB3aXRoIGZpbmVyIHRoYW4gMSBzZWNvbmQgcHJlY2lzaW9uLgorICogLSBXaGVuIHlvdSBzZXQgdGhlIGNsb2NrLCBod2Nsb2NrIGF1dG9tYXRpY2FsbHkgcmVmaWd1cmVzIHRoZSBkcmlmdAorICogICByYXRlLCBiYXNlZCBvbiBob3cgZmFyIG9mZiB0aGUgY2xvY2sgd2FzIGJlZm9yZSB5b3Ugc2V0IGl0LgorICoKKyAqIFJlc2h1ZmZsZWQgdGhpbmdzLCBhZGRlZCBzcGFyYyBjb2RlLCBhbmQgcmUtYWRkZWQgYWxwaGEgc3R1ZmYKKyAqIGJ5IERhdmlkIE1vc2JlcmdlciA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CisgKiBhbmQgSmF5IEVzdGFicm9vayA8amVzdGFicm9AYW10LnRheTEuZGVjLmNvbT4KKyAqIGFuZCBNYXJ0aW4gT3N0ZXJtYW5uIDxvc3RAY29tZW50cy5yd3RoLWFhY2hlbi5kZT4sIGFlYkBjd2kubmwsIDk5MDIxMi4KKyAqCisgKiBGaXggZm9yIEF3YXJkIDIwOTQgYnVnLCBEYXZlIENvZmZpbiAgKGRjb2ZmaW5Ac2hvcmUubmV0KSAgMTEvMTIvOTgKKyAqIENoYW5nZSBvZiBsb2NhbCB0aW1lIGhhbmRsaW5nLCBTdGVmYW4gUmluZyA8ZTk3MjU0NDZAc3R1ZDMudHV3aWVuLmFjLmF0PgorICogQ2hhbmdlIG9mIGFkanRpbWUgaGFuZGxpbmcsIEphbWVzIFAuIFJ1dGxlZGdlIDxhbzExMkByZ2ZuLmVwY2MuZWR1Pi4KKyAqCisgKiBEaXN0cmlidXRlZCB1bmRlciBHUEwKKyAqLworCisvKgorICogY2xvY2sgWy11XSAtciAgLSByZWFkIGhhcmR3YXJlIGNsb2NrCisgKiBjbG9jayBbLXVdIC13ICAtIHdyaXRlIGhhcmR3YXJlIGNsb2NrIGZyb20gc3lzdGVtIHRpbWUKKyAqIGNsb2NrIFstdV0gLXMgIC0gc2V0IHN5c3RlbSB0aW1lIGZyb20gaGFyZHdhcmUgY2xvY2sKKyAqIGNsb2NrIFstdV0gLWEgIC0gc2V0IHN5c3RlbSB0aW1lIGZyb20gaGFyZHdhcmUgY2xvY2ssIGFkanVzdCB0aGUgdGltZQorICogICAgICAgICAgICAgICAgICB0byBjb3JyZWN0IGZvciBzeXN0ZW1hdGljIGVycm9yLCBhbmQgd3JpdGUgaXQgYmFjayB0bworICogICAgICAgICAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sKKyAqIC11IGluZGljYXRlcyBjbW9zIGNsb2NrIGlzIGtlcHQgaW4gdW5pdmVyc2FsIHRpbWUKKyAqIC1BIGluZGljYXRlcyBjbW9zIGNsb2NrIGlzIGtlcHQgaW4gQWxwaGEgQVJDIGNvbnNvbGUgdGltZSAoMCA9PSAxOTgwKQorICogLUogaW5kaWNhdGVzIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIEplbnNlbiAoZWFybHkgREVDIEFscGhhIFBDKQorICovCisKKy8qCisgKiBFeHBsYW5hdGlvbiBvZiBgYWRqdXN0aW5nJyAoUm9iIEhvb2Z0KToKKyAqCisgKiBUaGUgcHJvYmxlbSB3aXRoIG15IG1hY2hpbmUgaXMgdGhhdCBpdHMgQ01PUyBjbG9jayBpcyAxMCBzZWNvbmRzCisgKiBwZXIgZGF5IHNsb3cuIFdpdGggdGhpcyB2ZXJzaW9uIG9mIGNsb2NrLmMsIGFuZCBteSAnL2V0Yy9yYy5sb2NhbCcKKyAqIHJlYWRpbmcgJy9ldGMvY2xvY2sgLWF1JyBpbnN0ZWFkIG9mICcvZXRjL2Nsb2NrIC11IC1zJywgdGhpcyBlcnJvcgorICogaXMgYXV0b21hdGljYWxseSBjb3JyZWN0ZWQgYXQgZXZlcnkgYm9vdC4KKyAqCisgKiBUbyBkbyB0aGlzIGpvYiwgdGhlIHByb2dyYW0gcmVhZHMgYW5kIHdyaXRlcyB0aGUgZmlsZSAnL2V0Yy9hZGp0aW1lJworICogdG8gZGV0ZXJtaW5lIHRoZSBjb3JyZWN0aW9uLCBhbmQgdG8gc2F2ZSBpdHMgZGF0YS4gSW4gdGhpcyBmaWxlIGFyZQorICogdGhyZWUgbnVtYmVyczoKKyAqCisgKiAxKSB0aGUgY29ycmVjdGlvbiBpbiBzZWNvbmRzIHBlciBkYXkuIChTbyBpZiB5b3VyIGNsb2NrIHJ1bnMgNQorICogICAgc2Vjb25kcyBwZXIgZGF5IGZhc3QsIHRoZSBmaXJzdCBudW1iZXIgc2hvdWxkIHJlYWQgLTUuMCkKKyAqIDIpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAxLzEvMTk3MCB0aGUgbGFzdCB0aW1lIHRoZSBwcm9ncmFtCisgKiAgICB3YXMgdXNlZAorICogMykgdGhlIHJlbWFpbmluZyBwYXJ0IG9mIGEgc2Vjb25kIHdoaWNoIHdhcyBsZWZ0b3ZlciBhZnRlciB0aGUgbGFzdAorICogICAgYWRqdXN0bWVudAorICoKKyAqIEluc3RhbGxhdGlvbiBhbmQgdXNlIG9mIHRoaXMgcHJvZ3JhbToKKyAqCisgKiBhKSBjcmVhdGUgYSBmaWxlICcvZXRjL2FkanRpbWUnIGNvbnRhaW5pbmcgYXMgdGhlIGZpcnN0IGFuZCBvbmx5IGxpbmU6CisgKiAgICAnMC4wIDAgMC4wJworICogYikgcnVuICdjbG9jayAtYXUnIG9yICdjbG9jayAtYScsIGRlcGVuZGluZyBvbiB3aGV0aGVyIHlvdXIgY21vcyBpcyBpbgorICogICAgdW5pdmVyc2FsIG9yIGxvY2FsIHRpbWUuIFRoaXMgdXBkYXRlcyB0aGUgc2Vjb25kIG51bWJlci4KKyAqIGMpIHNldCB5b3VyIHN5c3RlbSB0aW1lIHVzaW5nIHRoZSAnZGF0ZScgY29tbWFuZC4KKyAqIGQpIHVwZGF0ZSB5b3VyIGNtb3MgdGltZSB1c2luZyAnY2xvY2sgLXd1JyBvciAnY2xvY2sgLXcnCisgKiBlKSByZXBsYWNlIHRoZSBmaXJzdCBudW1iZXIgaW4gL2V0Yy9hZGp0aW1lIGJ5IHlvdXIgY29ycmVjdGlvbi4KKyAqIGYpIHB1dCB0aGUgY29tbWFuZCAnY2xvY2sgLWF1JyBvciAnY2xvY2sgLWEnIGluIHlvdXIgJy9ldGMvcmMubG9jYWwnCisgKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c3lzZXhpdHMuaD4KKworI2luY2x1ZGUgImNsb2NrLmgiCisjaW5jbHVkZSAibmxzLmgiCisKKyNpZmRlZiBIQVZFX0xJQkFVRElUCisjaW5jbHVkZSA8bGliYXVkaXQuaD4KK3N0YXRpYyBpbnQgaHdhdWRpdF9mZCA9IC0xOworc3RhdGljIGludCBod2F1ZGl0X29uOworI2VuZGlmCisKKyNkZWZpbmUgTVlOQU1FICJod2Nsb2NrIgorCitjaGFyICpwcm9nbmFtZSA9IE1ZTkFNRTsKKworLyogVGhlIHN0cnVjdCB0aGF0IGhvbGRzIG91ciBoYXJkd2FyZSBhY2Nlc3Mgcm91dGluZXMgKi8KK3N0cnVjdCBjbG9ja19vcHMgKnVyOworCisjZGVmaW5lIEZMT09SKGFyZykgKChhcmcgPj0gMCA/IChpbnQpIGFyZyA6ICgoaW50KSBhcmcpIC0gMSkpOworCisvKiBIZXJlIHRoZSBpbmZvcm1hdGlvbiBmb3IgdGltZSBhZGp1c3RtZW50cyBpcyBrZXB0LiAqLworI2RlZmluZSBBREpQQVRIICIvZXRjL2FkanRpbWUiCisKK2NvbnN0IGNoYXIgKmFkal9maWxlX25hbWUgPSBOVUxMOworCisvKiBTdG9yZSB0aGUgZGF0ZSBoZXJlIHdoZW4gImJhZHllYXIiIGZsYWcgaXMgc2V0LiAqLworI2RlZmluZSBMQVNUREFURSAiL3Zhci9saWIvbGFzdGRhdGUiCisKK3N0cnVjdCBhZGp0aW1lIHsKKyAgLyogVGhpcyBpcyBpbmZvcm1hdGlvbiB3ZSBrZWVwIGluIHRoZSBhZGp0aW1lIGZpbGUgdGhhdCB0ZWxscyB1cyBob3cKKyAgICAgdG8gZG8gZHJpZnQgY29ycmVjdGlvbnMuICBFbGVtZW50cyBhcmUgYWxsIHN0cmFpZ2h0IGZyb20gdGhlCisgICAgIGFkanRpbWUgZmlsZSwgc28gc2VlIGRvY3VtZW50YXRpb24gb2YgdGhhdCBmaWxlIGZvciBkZXRhaWxzLgorICAgICBFeGNlcHRpb24gaXMgPGRpcnR5Piwgd2hpY2ggaXMgYW4gaW5kaWNhdGlvbiB0aGF0IHdoYXQncyBpbiB0aGlzCisgICAgIHN0cnVjdHVyZSBpcyBub3Qgd2hhdCdzIGluIHRoZSBkaXNrIGZpbGUgKGJlY2F1c2UgaXQgaGFzIGJlZW4KKyAgICAgdXBkYXRlZCBzaW5jZSByZWFkIGZyb20gdGhlIGRpc2sgZmlsZSkuCisgICAgICovCisgIGJvb2wgZGlydHk7CisKKyAgLyogbGluZSAxICovCisgIGRvdWJsZSBkcmlmdF9mYWN0b3I7CisgIHRpbWVfdCBsYXN0X2Fkal90aW1lOworICBkb3VibGUgbm90X2FkanVzdGVkOworCisgIC8qIGxpbmUgMiAqLworICB0aW1lX3QgbGFzdF9jYWxpYl90aW1lOworICAgICAgLyogVGhlIG1vc3QgcmVjZW50IHRpbWUgdGhhdCB3ZSBzZXQgdGhlIGNsb2NrIGZyb20gYW4gZXh0ZXJuYWwKKwkgYXV0aG9yaXR5IChhcyBvcHBvc2VkIHRvIGp1c3QgZG9pbmcgYSBkcmlmdCBhZGp1c3RtZW50KSAqLworCisgIC8qIGxpbmUgMyAqLworICBlbnVtIGFfbG9jYWxfdXRjIHtMT0NBTCwgVVRDLCBVTktOT1dOfSBsb2NhbF91dGM7CisgICAgICAvKiBUbyB3aGljaCB0aW1lIHpvbmUsIGxvY2FsIG9yIFVUQywgd2UgbW9zdCByZWNlbnRseSBzZXQgdGhlCisJIGhhcmR3YXJlIGNsb2NrLiAqLworfTsKKworYm9vbCBkZWJ1ZzsKKyAgLyogV2UgYXJlIHJ1bm5pbmcgaW4gZGVidWcgbW9kZSwgd2hlcmVpbiB3ZSBwdXQgYSBsb3Qgb2YgaW5mb3JtYXRpb24gYWJvdXQKKyAgICAgd2hhdCB3ZSdyZSBkb2luZyB0byBzdGFuZGFyZCBvdXRwdXQuICovCisKK2Jvb2wgYmFkeWVhcjsKKyAgLyogV29ya2Fyb3VuZCBmb3IgQXdhcmQgNC41MGcgQklPUyBidWc6IGtlZXAgdGhlIHllYXIgaW4gYSBmaWxlLiAqLworCitpbnQgZXBvY2hfb3B0aW9uID0gLTE7CisgIC8qIFVzZXItc3BlY2lmaWVkIGVwb2NoLCB1c2VkIHdoZW4gcnRjIGZhaWxzIHRvIHJldHVybiBlcG9jaC4gKi8KKworLyoKKyAqIEFsbW9zdCBhbGwgQXdhcmQgQklPUydzIG1hZGUgYmV0d2VlbiAwNC8yNi85NCBhbmQgMDUvMzEvOTUKKyAqIGhhdmUgYSBuYXN0eSBidWcgbGltaXRpbmcgdGhlIFJUQyB5ZWFyIGJ5dGUgdG8gdGhlIHJhbmdlIDk0LTk5LgorICogQW55IHllYXIgYmV0d2VlbiAyMDAwIGFuZCAyMDkzIGdldHMgY2hhbmdlZCB0byAyMDk0LCBldmVyeSB0aW1lCisgKiB5b3Ugc3RhcnQgdGhlIHN5c3RlbS4KKyAqIFdpdGggdGhlIC0tYmFkeWVhciBvcHRpb24sIHdlIHdyaXRlIHRoZSBkYXRlIHRvIGZpbGUgYW5kIGhvcGUKKyAqIHRoYXQgdGhlIGZpbGUgaXMgdXBkYXRlZCBhdCBsZWFzdCBvbmNlIGEgeWVhci4KKyAqIEkgcmVjb21tZW5kIHB1dHRpbmcgdGhpcyBjb21tYW5kICJod2Nsb2NrIC0tYmFkeWVhciIgaW4gdGhlIG1vbnRobHkKKyAqIGNyb250YWIsIGp1c3QgdG8gYmUgc2FmZS4gLS0gIERhdmUgQ29mZmluICAxMS8xMi85OAorICovCitzdGF0aWMgdm9pZAord3JpdGVfZGF0ZV90b19maWxlIChzdHJ1Y3QgdG0gKnRtKSB7CisgIEZJTEUgKmZwOworCisgIGlmICgoZnAgPSBmb3BlbihMQVNUREFURSwidyIpKSkgeworICAgIGZwcmludGYoZnAsIiUwMmQuJTAyZC4lMDRkXG4iLCB0bS0+dG1fbWRheSwgdG0tPnRtX21vbisxLAorCSAgICB0bS0+dG1feWVhcisxOTAwKTsKKyAgICBmY2xvc2UoZnApOworICB9IGVsc2UKKyAgICBwZXJyb3IoTEFTVERBVEUpOworfQorCitzdGF0aWMgdm9pZAorcmVhZF9kYXRlX2Zyb21fZmlsZSAoc3RydWN0IHRtICp0bSkgeworICBpbnQgbGFzdF9tZGF5LCBsYXN0X21vbiwgbGFzdF95ZWFyOworICBGSUxFICpmcDsKKworICBpZiAoKGZwID0gZm9wZW4oTEFTVERBVEUsInIiKSkpIHsKKyAgICBpZiAoZnNjYW5mIChmcCwiJWQuJWQuJWRcbiIsICZsYXN0X21kYXksICZsYXN0X21vbiwgJmxhc3RfeWVhcikgPT0gMykgeworICAgICAgdG0tPnRtX3llYXIgPSBsYXN0X3llYXItMTkwMDsKKyAgICAgIGlmICgodG0tPnRtX21vbiA8PCA1KSArIHRtLT50bV9tZGF5IDwgKChsYXN0X21vbi0xKSA8PCA1KSArIGxhc3RfbWRheSkKKwl0bS0+dG1feWVhciArKzsKKyAgICB9CisgICAgZmNsb3NlKGZwKTsKKyAgfQorICB3cml0ZV9kYXRlX3RvX2ZpbGUgKHRtKTsKK30KKworZG91YmxlCit0aW1lX2RpZmYoc3RydWN0IHRpbWV2YWwgc3VidHJhaGVuZCwgc3RydWN0IHRpbWV2YWwgc3VidHJhY3RvcikgeworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgVGhlIGRpZmZlcmVuY2UgaW4gc2Vjb25kcyBiZXR3ZWVuIHR3byB0aW1lcyBpbiAidGltZXZhbCIgZm9ybWF0LgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgIHJldHVybiAoc3VidHJhaGVuZC50dl9zZWMgLSBzdWJ0cmFjdG9yLnR2X3NlYykKKyAgICAgICAgICAgKyAoc3VidHJhaGVuZC50dl91c2VjIC0gc3VidHJhY3Rvci50dl91c2VjKSAvIDFFNjsKK30KKworCitzdGF0aWMgc3RydWN0IHRpbWV2YWwKK3RpbWVfaW5jKHN0cnVjdCB0aW1ldmFsIGFkZGVuZCwgZG91YmxlIGluY3JlbWVudCkgeworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFRoZSB0aW1lLCBpbiAidGltZXZhbCIgZm9ybWF0LCB3aGljaCBpcyA8aW5jcmVtZW50PiBzZWNvbmRzIGFmdGVyCisgIHRoZSB0aW1lIDxhZGRlbmQ+LiAgT2YgY291cnNlLCA8aW5jcmVtZW50PiBtYXkgYmUgbmVnYXRpdmUuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgIHN0cnVjdCB0aW1ldmFsIG5ld3RpbWU7CisKKyAgbmV3dGltZS50dl9zZWMgPSBhZGRlbmQudHZfc2VjICsgKGludCkgaW5jcmVtZW50OworICBuZXd0aW1lLnR2X3VzZWMgPSBhZGRlbmQudHZfdXNlYyArIChpbmNyZW1lbnQgLSAoaW50KSBpbmNyZW1lbnQpICogMUU2OworCisgIC8qIE5vdyBhZGp1c3QgaXQgc28gdGhhdCB0aGUgbWljcm9zZWNvbmQgdmFsdWUgaXMgYmV0d2VlbiAwIGFuZCAxIG1pbGxpb24gKi8KKyAgaWYgKG5ld3RpbWUudHZfdXNlYyA8IDApIHsKKyAgICBuZXd0aW1lLnR2X3VzZWMgKz0gMUU2OworICAgIG5ld3RpbWUudHZfc2VjIC09IDE7CisgIH0gZWxzZSBpZiAobmV3dGltZS50dl91c2VjID49IDFFNikgeworICAgIG5ld3RpbWUudHZfdXNlYyAtPSAxRTY7CisgICAgbmV3dGltZS50dl9zZWMgKz0gMTsKKyAgfQorICByZXR1cm4gbmV3dGltZTsKK30KKworCitzdGF0aWMgYm9vbAoraHdfY2xvY2tfaXNfdXRjKGNvbnN0IGJvb2wgdXRjLCBjb25zdCBib29sIGxvY2FsX29wdCwKKwkJY29uc3Qgc3RydWN0IGFkanRpbWUgYWRqdGltZSkgeworCWJvb2wgcmV0OworCisJaWYgKHV0YykKKwkJcmV0ID0gVFJVRTsJLyogLS11dGMgZXhwbGljaXRseSBnaXZlbiBvbiBjb21tYW5kIGxpbmUgKi8KKwllbHNlIGlmIChsb2NhbF9vcHQpCisJCXJldCA9IEZBTFNFOwkvKiAtLWxvY2FsdGltZSBleHBsaWNpdGx5IGdpdmVuICovCisJZWxzZQorCQkJCS8qIGdldCBpbmZvIGZyb20gYWRqdGltZSBmaWxlIC0gZGVmYXVsdCBpcyBsb2NhbCAqLworCQlyZXQgPSAoYWRqdGltZS5sb2NhbF91dGMgPT0gVVRDKTsKKwlpZiAoZGVidWcpCisJCXByaW50ZihfKCJBc3N1bWluZyBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluICVzIHRpbWUuXG4iKSwKKwkJICAgICAgIHJldCA/IF8oIlVUQyIpIDogXygibG9jYWwiKSk7CisJcmV0dXJuIHJldDsKK30KKworCisKK3N0YXRpYyBpbnQKK3JlYWRfYWRqdGltZShzdHJ1Y3QgYWRqdGltZSAqYWRqdGltZV9wKSB7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgUmVhZCB0aGUgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG91dCBvZiB0aGUgL2V0Yy9hZGp0aW1lIGZpbGUuCisKKyAgUmV0dXJuIHRoZW0gYXMgdGhlIGFkanRpbWUgc3RydWN0dXJlIDwqYWRqdGltZV9wPi4KKyAgSWYgdGhlcmUgaXMgbm8gL2V0Yy9hZGp0aW1lIGZpbGUsIHJldHVybiBkZWZhdWx0cy4KKyAgSWYgdmFsdWVzIGFyZSBtaXNzaW5nIGZyb20gdGhlIGZpbGUsIHJldHVybiBkZWZhdWx0cyBmb3IgdGhlbS4KKworICByZXR1cm4gdmFsdWUgMCBpZiBhbGwgT0ssICE9MCBvdGhlcndpc2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgRklMRSAqYWRqZmlsZTsKKyAgaW50IHJjOyAgLyogbG9jYWwgcmV0dXJuIGNvZGUgKi8KKyAgc3RydWN0IHN0YXQgc3RhdGJ1ZjsgIC8qIFdlIGRvbid0IGV2ZW4gdXNlIHRoZSBjb250ZW50cyBvZiB0aGlzLiAqLworCisgICAgcmMgPSBzdGF0KGFkal9maWxlX25hbWUsICZzdGF0YnVmKTsKKyAgICBpZiAocmMgPCAwICYmIGVycm5vID09IEVOT0VOVCkgeworICAgICAgLyogSGUgZG9lc24ndCBoYXZlIGEgYWRqdGltZSBmaWxlLCBzbyB3ZSdsbCB1c2UgZGVmYXVsdHMuICovCisgICAgICBhZGp0aW1lX3AtPmRyaWZ0X2ZhY3RvciA9IDA7CisgICAgICBhZGp0aW1lX3AtPmxhc3RfYWRqX3RpbWUgPSAwOworICAgICAgYWRqdGltZV9wLT5ub3RfYWRqdXN0ZWQgPSAwOworICAgICAgYWRqdGltZV9wLT5sYXN0X2NhbGliX3RpbWUgPSAwOworICAgICAgYWRqdGltZV9wLT5sb2NhbF91dGMgPSBVTktOT1dOOworICAgICAgYWRqdGltZV9wLT5kaXJ0eSA9IEZBTFNFOyAgICAgICAgLyogZG9uJ3QgY3JlYXRlIGEgemVybyBhZGpmaWxlICovCisKKyAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGFkamZpbGUgPSBmb3BlbihhZGpfZmlsZV9uYW1lLCAiciIpOyAgIC8qIG9wZW4gZmlsZSBmb3IgcmVhZGluZyAqLworICAgIGlmIChhZGpmaWxlID09IE5VTEwpIHsKKyAgICAgIG91dHN5c2VycigiY2Fubm90IG9wZW4gZmlsZSAlcyIsIGFkal9maWxlX25hbWUpOworICAgICAgcmV0dXJuIEVYX09TRklMRTsKKyAgICB9CisKKyAgICB7CisgICAgICBjaGFyIGxpbmUxWzgxXTsgICAgICAgICAgIC8qIFN0cmluZzogZmlyc3QgbGluZSBvZiBhZGp0aW1lIGZpbGUgKi8KKyAgICAgIGNoYXIgbGluZTJbODFdOyAgICAgICAgICAgLyogU3RyaW5nOiBzZWNvbmQgbGluZSBvZiBhZGp0aW1lIGZpbGUgKi8KKyAgICAgIGNoYXIgbGluZTNbODFdOyAgICAgICAgICAgLyogU3RyaW5nOiB0aGlyZCBsaW5lIG9mIGFkanRpbWUgZmlsZSAqLworICAgICAgbG9uZyB0aW1ldmFsOworCisgICAgICBpZiAoIWZnZXRzKGxpbmUxLCBzaXplb2YobGluZTEpLCBhZGpmaWxlKSkKKyAgICAgICAgbGluZTFbMF0gPSAnXDAnOyAgICAgICAgICAvKiBJbiBjYXNlIGZnZXRzIGZhaWxzICovCisgICAgICBpZiAoIWZnZXRzKGxpbmUyLCBzaXplb2YobGluZTIpLCBhZGpmaWxlKSkKKyAgICAgICAgbGluZTJbMF0gPSAnXDAnOyAgICAgICAgICAvKiBJbiBjYXNlIGZnZXRzIGZhaWxzICovCisgICAgICBpZiAoIWZnZXRzKGxpbmUzLCBzaXplb2YobGluZTMpLCBhZGpmaWxlKSkKKyAgICAgICAgbGluZTNbMF0gPSAnXDAnOyAgICAgICAgICAvKiBJbiBjYXNlIGZnZXRzIGZhaWxzICovCisKKyAgICAgIGZjbG9zZShhZGpmaWxlKTsKKworICAgICAgLyogU2V0IGRlZmF1bHRzIGluIGNhc2UgdmFsdWVzIGFyZSBtaXNzaW5nIGZyb20gZmlsZSAqLworICAgICAgYWRqdGltZV9wLT5kcmlmdF9mYWN0b3IgPSAwOworICAgICAgYWRqdGltZV9wLT5sYXN0X2Fkal90aW1lID0gMDsKKyAgICAgIGFkanRpbWVfcC0+bm90X2FkanVzdGVkID0gMDsKKyAgICAgIGFkanRpbWVfcC0+bGFzdF9jYWxpYl90aW1lID0gMDsKKyAgICAgIHRpbWV2YWwgPSAwOworCisgICAgICBzc2NhbmYobGluZTEsICIlbGYgJWxkICVsZiIsCisgICAgICAgICAgICAgJmFkanRpbWVfcC0+ZHJpZnRfZmFjdG9yLAorICAgICAgICAgICAgICZ0aW1ldmFsLAorICAgICAgICAgICAgICZhZGp0aW1lX3AtPm5vdF9hZGp1c3RlZCk7CisgICAgICBhZGp0aW1lX3AtPmxhc3RfYWRqX3RpbWUgPSB0aW1ldmFsOworCisgICAgICBzc2NhbmYobGluZTIsICIlbGQiLCAmdGltZXZhbCk7CisgICAgICBhZGp0aW1lX3AtPmxhc3RfY2FsaWJfdGltZSA9IHRpbWV2YWw7CisKKyAgICAgIGlmICghc3RyY21wKGxpbmUzLCAiVVRDXG4iKSkKKwlhZGp0aW1lX3AtPmxvY2FsX3V0YyA9IFVUQzsKKyAgICAgIGVsc2UgaWYgKCFzdHJjbXAobGluZTMsICJMT0NBTFxuIikpCisJYWRqdGltZV9wLT5sb2NhbF91dGMgPSBMT0NBTDsKKyAgICAgIGVsc2UgeworCWFkanRpbWVfcC0+bG9jYWxfdXRjID0gVU5LTk9XTjsKKwlpZiAobGluZTNbMF0pIHsKKwkgIGZwcmludGYoc3RkZXJyLAorCQkgIF8oIiVzOiBXYXJuaW5nOiB1bnJlY29nbml6ZWQgdGhpcmQgbGluZSBpbiBhZGp0aW1lIGZpbGVcbiIpLAorCQkgIE1ZTkFNRSk7CisJICBmcHJpbnRmKHN0ZGVyciwgXygiKEV4cGVjdGVkOiBgVVRDJyBvciBgTE9DQUwnIG9yIG5vdGhpbmcuKVxuIikpOworCX0KKyAgICAgIH0KKyAgICB9CisgICAgYWRqdGltZV9wLT5kaXJ0eSA9IEZBTFNFOworCisgICAgaWYgKGRlYnVnKSB7CisgICAgICBwcmludGYoXygiTGFzdCBkcmlmdCBhZGp1c3RtZW50IGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIiksCisgICAgICAgICAgICAgKGxvbmcpIGFkanRpbWVfcC0+bGFzdF9hZGpfdGltZSk7CisgICAgICBwcmludGYoXygiTGFzdCBjYWxpYnJhdGlvbiBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIpLAorICAgICAgICAgICAgIChsb25nKSBhZGp0aW1lX3AtPmxhc3RfY2FsaWJfdGltZSk7CisgICAgICBwcmludGYoXygiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIiksCisJICAgICAoYWRqdGltZV9wLT5sb2NhbF91dGMgPT0gTE9DQUwpID8gXygibG9jYWwiKSA6CisJICAgICAoYWRqdGltZV9wLT5sb2NhbF91dGMgPT0gVVRDKSA/IF8oIlVUQyIpIDogXygidW5rbm93biIpKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworCitzdGF0aWMgaW50CitzeW5jaHJvbml6ZV90b19jbG9ja190aWNrKHZvaWQpIHsKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgV2FpdCB1bnRpbCB0aGUgZmFsbGluZyBlZGdlIG9mIHRoZSBIYXJkd2FyZSBDbG9jaydzIHVwZGF0ZSBmbGFnIHNvCisgIHRoYXQgYW55IHRpbWUgdGhhdCBpcyByZWFkIGZyb20gdGhlIGNsb2NrIGltbWVkaWF0ZWx5IGFmdGVyIHdlCisgIHJldHVybiB3aWxsIGJlIGV4YWN0LgorCisgIFRoZSBjbG9jayBvbmx5IGhhcyAxIHNlY29uZCBwcmVjaXNpb24sIHNvIGl0IGdpdmVzIHRoZSBleGFjdCB0aW1lIG9ubHkKKyAgb25jZSBwZXIgc2Vjb25kLCByaWdodCBvbiB0aGUgZmFsbGluZyBlZGdlIG9mIHRoZSB1cGRhdGUgZmxhZy4KKworICBXZSB3YWl0ICh1cCB0byBvbmUgc2Vjb25kKSBlaXRoZXIgYmxvY2tlZCB3YWl0aW5nIGZvciBhbiBydGMgZGV2aWNlCisgIG9yIGluIGEgQ1BVIHNwaW4gbG9vcC4gIFRoZSBmb3JtZXIgaXMgcHJvYmFibHkgbm90IHZlcnkgYWNjdXJhdGUuCisKKyAgUmV0dXJuIDAgaWYgaXQgd29ya2VkLCBub256ZXJvIGlmIGl0IGRpZG4ndC4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKwlpbnQgcmM7CisKKwlpZiAoZGVidWcpIHByaW50ZihfKCJXYWl0aW5nIGZvciBjbG9jayB0aWNrLi4uXG4iKSk7CisKKwlyYyA9IHVyLT5zeW5jaHJvbml6ZV90b19jbG9ja190aWNrKCk7CisKKwlpZiAoZGVidWcpIHsKKwkJaWYgKHJjKQorCQkJcHJpbnRmKF8oIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIpKTsKKwkJZWxzZQorCQkJcHJpbnRmKF8oIi4uLmdvdCBjbG9jayB0aWNrXG4iKSk7CisJfQorCisJcmV0dXJuIHJjOworfQorCisKKworc3RhdGljIHZvaWQKK21rdGltZV90eihzdHJ1Y3QgdG0gdG0sIGNvbnN0IGJvb2wgdW5pdmVyc2FsLAorICAgICAgICAgIGJvb2wgKnZhbGlkX3AsIHRpbWVfdCAqc3lzdGltZV9wKSB7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIENvbnZlcnQgYSB0aW1lIGluIGJyb2tlbiBkb3duIGZvcm1hdCAoaG91cnMsIG1pbnV0ZXMsIGV0Yy4pIGludG8gc3RhbmRhcmQKKyAgdW5peCB0aW1lIChzZWNvbmRzIGludG8gZXBvY2gpLiAgUmV0dXJuIGl0IGFzICpzeXN0aW1lX3AuCisKKyAgVGhlIGJyb2tlbiBkb3duIHRpbWUgaXMgYXJndW1lbnQgPHRtPi4gIFRoaXMgYnJva2VuIGRvd24gdGltZSBpcyBlaXRoZXIgaW4KKyAgbG9jYWwgdGltZSB6b25lIG9yIFVUQywgZGVwZW5kaW5nIG9uIHZhbHVlIG9mIGxvZ2ljYWwgYXJndW1lbnQgInVuaXZlcnNhbCIuCisgIFRydWUgbWVhbnMgaXQgaXMgaW4gVVRDLgorCisgIElmIHRoZSBhcmd1bWVudCBjb250YWlucyB2YWx1ZXMgdGhhdCBkbyBub3QgY29uc3RpdHV0ZSBhIHZhbGlkIHRpbWUsCisgIGFuZCBta3RpbWUoKSByZWNvZ25pemVzIHRoaXMsIHJldHVybiAqdmFsaWRfcCA9PSBmYWxzZSBhbmQKKyAgKnN5c3RpbWVfcCB1bmRlZmluZWQuICBIb3dldmVyLCBta3RpbWUoKSBzb21ldGltZXMgZ29lcyBhaGVhZCBhbmQKKyAgY29tcHV0ZXMgYSBmaWN0aW9uYWwgdGltZSAiYXMgaWYiIHRoZSBpbnB1dCB2YWx1ZXMgd2VyZSB2YWxpZCwKKyAgZS5nLiBpZiB0aGV5IGluZGljYXRlIHRoZSAzMXN0IGRheSBvZiBBcHJpbCwgbWt0aW1lKCkgbWF5IGNvbXB1dGUKKyAgdGhlIHRpbWUgb2YgTWF5IDEuICBJbiBzdWNoIGEgY2FzZSwgd2UgcmV0dXJuIHRoZSBzYW1lIGZpY3Rpb25hbAorICB2YWx1ZSBta3RpbWUoKSBkb2VzIGFzICpzeXN0aW1lX3AgYW5kIHJldHVybiAqdmFsaWRfcCA9PSB0cnVlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgIHRpbWVfdCBta3RpbWVfcmVzdWx0OyAgLyogVGhlIHZhbHVlIHJldHVybmVkIGJ5IG91ciBta3RpbWUoKSBjYWxsICovCisgIGNoYXIgKnpvbmU7ICAgICAgIC8qIExvY2FsIHRpbWUgem9uZSBuYW1lICovCisKKyAgLyogV2UgdXNlIHRoZSBDIGxpYnJhcnkgZnVuY3Rpb24gbWt0aW1lKCksIGJ1dCBzaW5jZSBpdCBvbmx5IHdvcmtzIG9uCisgICAgIGxvY2FsIHRpbWUgem9uZSBpbnB1dCwgd2UgbWF5IGhhdmUgdG8gZmFrZSBpdCBvdXQgYnkgdGVtcG9yYXJpbHkKKyAgICAgY2hhbmdpbmcgdGhlIGxvY2FsIHRpbWUgem9uZSB0byBVVEMuCisgICAgICovCisgIHpvbmUgPSBnZXRlbnYoIlRaIik7CS8qIHJlbWVtYmVyIG9yaWdpbmFsIHRpbWUgem9uZSAqLworICBpZiAodW5pdmVyc2FsKSB7CisgICAgLyogU2V0IHRpbWV6b25lIHRvIFVUQyAqLworICAgIHNldGVudigiVFoiLCAiIiwgVFJVRSk7CisgICAgLyogTm90ZTogdHpzZXQoKSBnZXRzIGNhbGxlZCBpbXBsaWNpdGx5IGJ5IHRoZSB0aW1lIGNvZGUsIGJ1dCBvbmx5IHRoZQorICAgICAgIGZpcnN0IHRpbWUuICBXaGVuIGNoYW5naW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYmV0dGVyIGNhbGwKKyAgICAgICB0enNldCgpIGV4cGxpY2l0bHkuCisgICAgICAgKi8KKyAgICB0enNldCgpOworICB9CisgIG1rdGltZV9yZXN1bHQgPSBta3RpbWUoJnRtKTsKKyAgaWYgKG1rdGltZV9yZXN1bHQgPT0gLTEpIHsKKyAgICAvKiBUaGlzIGFwcGFyZW50bHkgKG5vdCBzcGVjaWZpZWQgaW4gbWt0aW1lKCkgZG9jdW1lbnRhdGlvbikgbWVhbnMKKyAgICAgICB0aGUgJ3RtJyBzdHJ1Y3R1cmUgZG9lcyBub3QgY29udGFpbiB2YWxpZCB2YWx1ZXMgKGhvd2V2ZXIsIG5vdAorICAgICAgIGNvbnRhaW5pbmcgdmFsaWQgdmFsdWVzIGRvZXMgX25vdF8gaW1wbHkgbWt0aW1lKCkgcmV0dXJucyAtMSkuCisgICAgICAgKi8KKyAgICAqdmFsaWRfcCA9IEZBTFNFOworICAgICpzeXN0aW1lX3AgPSAwOworICAgIGlmIChkZWJ1ZykKKyAgICAgIHByaW50ZihfKCJJbnZhbGlkIHZhbHVlcyBpbiBoYXJkd2FyZSBjbG9jazogIgorICAgICAgICAgICAgICIlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iKSwKKyAgICAgICAgICAgICB0bS50bV95ZWFyKzE5MDAsIHRtLnRtX21vbisxLCB0bS50bV9tZGF5LAorICAgICAgICAgICAgIHRtLnRtX2hvdXIsIHRtLnRtX21pbiwgdG0udG1fc2VjKTsKKyAgfSBlbHNlIHsKKyAgICAqdmFsaWRfcCA9IFRSVUU7CisgICAgKnN5c3RpbWVfcCA9IG1rdGltZV9yZXN1bHQ7CisgICAgaWYgKGRlYnVnKQorICAgICAgcHJpbnRmKF8oIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gIgorCSAgICAgICAiJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIiksCisJICAgICB0bS50bV95ZWFyKzE5MDAsIHRtLnRtX21vbisxLCB0bS50bV9tZGF5LAorICAgICAgICAgICAgIHRtLnRtX2hvdXIsIHRtLnRtX21pbiwgdG0udG1fc2VjLCAobG9uZykgKnN5c3RpbWVfcCk7CisgIH0KKyAgLyogbm93IHB1dCBiYWNrIHRoZSBvcmlnaW5hbCB6b25lLiAgKi8KKyAgaWYgKHpvbmUpIHNldGVudigiVFoiLCB6b25lLCBUUlVFKTsKKyAgZWxzZSB1bnNldGVudigiVFoiKTsKKyAgdHpzZXQoKTsKK30KKworCitzdGF0aWMgaW50CityZWFkX2hhcmR3YXJlX2Nsb2NrKGNvbnN0IGJvb2wgdW5pdmVyc2FsLCBib29sICp2YWxpZF9wLCB0aW1lX3QgKnN5c3RpbWVfcCl7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgUmVhZCB0aGUgaGFyZHdhcmUgY2xvY2sgYW5kIHJldHVybiB0aGUgY3VycmVudCB0aW1lIHZpYSA8dG0+IGFyZ3VtZW50LgorCisgIFVzZSB0aGUgbWV0aG9kIGluZGljYXRlZCBieSA8bWV0aG9kPiBhcmd1bWVudCB0byBhY2Nlc3MgdGhlIGhhcmR3YXJlIGNsb2NrLgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICBzdHJ1Y3QgdG0gdG07CisgIGludCBlcnI7CisKKyAgZXJyID0gdXItPnJlYWRfaGFyZHdhcmVfY2xvY2soJnRtKTsKKyAgaWYgKGVycikKKwkgIHJldHVybiBlcnI7CisKKyAgaWYgKGJhZHllYXIpCisgICAgcmVhZF9kYXRlX2Zyb21fZmlsZSgmdG0pOworCisgIGlmIChkZWJ1ZykKKyAgICBwcmludGYgKF8oIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iKSwKKwkgICAgdG0udG1feWVhcisxOTAwLCB0bS50bV9tb24rMSwgdG0udG1fbWRheSwKKyAgICAgICAgICAgIHRtLnRtX2hvdXIsIHRtLnRtX21pbiwgdG0udG1fc2VjKTsKKyAgbWt0aW1lX3R6KHRtLCB1bml2ZXJzYWwsIHZhbGlkX3AsIHN5c3RpbWVfcCk7CisKKyAgcmV0dXJuIDA7Cit9CisKKworc3RhdGljIHZvaWQKK3NldF9oYXJkd2FyZV9jbG9jayhjb25zdCB0aW1lX3QgbmV3dGltZSwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBib29sIHVuaXZlcnNhbCwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBib29sIHRlc3RpbmcpIHsKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTZXQgdGhlIEhhcmR3YXJlIENsb2NrIHRvIHRoZSB0aW1lIDxuZXd0aW1lPiwgaW4gbG9jYWwgdGltZSB6b25lIG9yIFVUQywKKyAgYWNjb3JkaW5nIHRvIDx1bml2ZXJzYWw+LgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgIGludCBlcnI7CisgIHN0cnVjdCB0bSBuZXdfYnJva2VuX3RpbWU7CisgICAgLyogVGltZSB0byB3aGljaCB3ZSB3aWxsIHNldCBIYXJkd2FyZSBDbG9jaywgaW4gYnJva2VuIGRvd24gZm9ybWF0LCBpbgorICAgICAgIHRoZSB0aW1lIHpvbmUgb2YgY2FsbGVyJ3MgY2hvaWNlCisgICAgICAgKi8KKworICBpZiAodW5pdmVyc2FsKQorCSAgbmV3X2Jyb2tlbl90aW1lID0gKmdtdGltZSgmbmV3dGltZSk7CisgIGVsc2UKKwkgIG5ld19icm9rZW5fdGltZSA9ICpsb2NhbHRpbWUoJm5ld3RpbWUpOworCisgIGlmIChkZWJ1ZykKKyAgICBwcmludGYoXygiU2V0dGluZyBIYXJkd2FyZSBDbG9jayB0byAlLjJkOiUuMmQ6JS4yZCAiCisgICAgICAgICAgICI9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIpLAorICAgICAgICAgICBuZXdfYnJva2VuX3RpbWUudG1faG91ciwgbmV3X2Jyb2tlbl90aW1lLnRtX21pbiwKKyAgICAgICAgICAgbmV3X2Jyb2tlbl90aW1lLnRtX3NlYywgKGxvbmcpIG5ld3RpbWUpOworCisgIGlmICh0ZXN0aW5nKQorICAgIHByaW50ZihfKCJDbG9jayBub3QgY2hhbmdlZCAtIHRlc3Rpbmcgb25seS5cbiIpKTsKKyAgZWxzZSB7CisgICAgaWYgKGJhZHllYXIpIHsKKyAgICAgIC8qCisgICAgICAgKiBXcml0ZSB0aGUgcmVhbCB5ZWFyIHRvIGEgZmlsZSwgdGhlbiB3cml0ZSBhIGZha2UgeWVhcgorICAgICAgICogYmV0d2VlbiAxOTk1IGFuZCAxOTk4IHRvIHRoZSBSVEMuICBUaGlzIHdheSwgQXdhcmQgQklPUyBib290cworICAgICAgICogb24gMjkgRmViIDIwMDAgdGhpbmtpbmcgdGhhdCBpdCdzIDI5IEZlYiAxOTk2LgorICAgICAgICovCisgICAgICB3cml0ZV9kYXRlX3RvX2ZpbGUgKCZuZXdfYnJva2VuX3RpbWUpOworICAgICAgbmV3X2Jyb2tlbl90aW1lLnRtX3llYXIgPSA5NSArICgobmV3X2Jyb2tlbl90aW1lLnRtX3llYXIrMSkgJiAzKTsKKyAgICB9CisgICAgZXJyID0gdXItPnNldF9oYXJkd2FyZV9jbG9jaygmbmV3X2Jyb2tlbl90aW1lKTsKKyAgfQorfQorCisKKworc3RhdGljIHZvaWQKK3NldF9oYXJkd2FyZV9jbG9ja19leGFjdChjb25zdCB0aW1lX3Qgc2V0aHd0aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1ldmFsIHJlZnN5c3RpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCB1bml2ZXJzYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCB0ZXN0aW5nKSB7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU2V0IHRoZSBIYXJkd2FyZSBDbG9jayB0byB0aGUgdGltZSAic2V0aHd0aW1lIiwgaW4gbG9jYWwgdGltZSB6b25lIG9yIFVUQywKKyAgYWNjb3JkaW5nIHRvICJ1bml2ZXJzYWwiLgorCisgIFdhaXQgZm9yIGEgZnJhY3Rpb24gb2YgYSBzZWNvbmQgc28gdGhhdCAic2V0aHd0aW1lIiBpcyB0aGUgdmFsdWUgb2YKKyAgdGhlIEhhcmR3YXJlIENsb2NrIGFzIG9mIHN5c3RlbSB0aW1lICJyZWZzeXN0aW1lIiwgd2hpY2ggaXMgaW4gdGhlIHBhc3QuCisgIEZvciBleGFtcGxlLCBpZiAic2V0aHd0aW1lIiBpcyAxNDowMzowNSBhbmQgInJlZnN5c3RpbWUiIGlzIDEyOjEwOjA0LjUKKyAgYW5kIHRoZSBjdXJyZW50IHN5c3RlbSB0aW1lIGlzIDEyOjEwOjA2LjA6IFdhaXQgLjUgc2Vjb25kcyAodG8gbWFrZQorICBleGFjdGx5IDIgc2Vjb25kcyBzaW5jZSAicmVmc3lzdGltZSIpIGFuZCB0aGVuIHNldCB0aGUgSGFyZHdhcmUgQ2xvY2sKKyAgdG8gMTQ6MDM6MDcsIHRodXMgZ2V0dGluZyBhIHByZWNpc2UgYW5kIHJldHJvYWN0aXZlIHNldHRpbmcgb2YgdGhlIGNsb2NrLgorCisgIChEb24ndCBiZSBjb25mdXNlZCBieSB0aGUgZmFjdCB0aGF0IHRoZSBzeXN0ZW0gY2xvY2sgYW5kIHRoZSBIYXJkd2FyZQorICBDbG9jayBkaWZmZXIgYnkgdHdvIGhvdXJzIGluIHRoZSBhYm92ZSBleGFtcGxlLiAgVGhhdCdzIGp1c3QgdG8gcmVtaW5kCisgIHlvdSB0aGF0IHRoZXJlIGFyZSB0d28gaW5kZXBlbmRlbnQgdGltZSBzY2FsZXMgaGVyZSkuCisKKyAgVGhpcyBmdW5jdGlvbiBvdWdodCB0byBiZSBhYmxlIHRvIGFjY2VwdCBzZXQgdGltZXMgYXMgZnJhY3Rpb25hbCB0aW1lcy4KKyAgSWRlYSBmb3IgZnV0dXJlIGVuaGFuY2VtZW50LgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgIHRpbWVfdCBuZXdod3RpbWU7CisgIHN0cnVjdCB0aW1ldmFsIGJlZ2luc3lzdGltZSwgbm93c3lzdGltZTsKKyAgZG91YmxlIHRkaWZmOworCisgdGltZV9yZXN5bmM6CisgIGdldHRpbWVvZmRheSgmYmVnaW5zeXN0aW1lLCBOVUxMKTsKKyAgdGRpZmYgPSB0aW1lX2RpZmYoYmVnaW5zeXN0aW1lLCByZWZzeXN0aW1lKTsKKyAgbmV3aHd0aW1lID0gc2V0aHd0aW1lICsgKGludCkgKHRkaWZmICsgMC41KTsKKyAgaWYgKGRlYnVnKQorICAgIHByaW50ZihfKCJUaW1lIGVsYXBzZWQgc2luY2UgcmVmZXJlbmNlIHRpbWUgaGFzIGJlZW4gJS42ZiBzZWNvbmRzLlxuIgorICAgICAgICAgICAiRGVsYXlpbmcgZnVydGhlciB0byByZWFjaCB0aGUgbmV3IHRpbWUuXG4iKSwgdGRpZmYpOworCisgIC8qCisgICAqIE5vdyBkZWxheSBzb21lIG1vcmUgdW50aWwgSGFyZHdhcmUgQ2xvY2sgdGltZSBuZXdod3RpbWUgYXJyaXZlcy4gIFRoZSAwLjUgcworICAgKiBpcyBiZWNhdXNlIHRoZSBIYXJkd2FyZSBDbG9jayBhbHdheXMgc2V0cyB0byB5b3VyIHNldCB0aW1lIHBsdXMgNTAwIG1zCisgICAqIChiZWNhdXNlIGl0IGlzIGRlc2lnbmVkIHRvIHVwZGF0ZSB0byB0aGUgbmV4dCBzZWNvbmQgcHJlY2lzZWx5IDUwMCBtcworICAgKiBhZnRlciB5b3UgZmluaXNoIHRoZSBzZXR0aW5nKS4KKyAgICovCisgIGRvIHsKKwkgIGdldHRpbWVvZmRheSgmbm93c3lzdGltZSwgTlVMTCk7CisJICB0ZGlmZiA9IHRpbWVfZGlmZihub3dzeXN0aW1lLCBiZWdpbnN5c3RpbWUpOworCSAgaWYgKHRkaWZmIDwgMCkKKwkJICBnb3RvIHRpbWVfcmVzeW5jOwkvKiBwcm9iYWJseSBiYWNrd2FyZCB0aW1lIHJlc2V0ICovCisJICBpZiAodGRpZmYgPiAwLjEpCisJCSAgZ290byB0aW1lX3Jlc3luYzsJLyogcHJvYmFibHkgZm9yd2FyZCB0aW1lIHJlc2V0ICovCisJICBiZWdpbnN5c3RpbWUgPSBub3dzeXN0aW1lOworCSAgdGRpZmYgPSB0aW1lX2RpZmYobm93c3lzdGltZSwgcmVmc3lzdGltZSk7CisgIH0gd2hpbGUgKG5ld2h3dGltZSA9PSBzZXRod3RpbWUgKyAoaW50KSAodGRpZmYgKyAwLjUpKTsKKworICBzZXRfaGFyZHdhcmVfY2xvY2sobmV3aHd0aW1lLCB1bml2ZXJzYWwsIHRlc3RpbmcpOworfQorCisKKworc3RhdGljIHZvaWQKK2Rpc3BsYXlfdGltZShjb25zdCBib29sIGhjbG9ja192YWxpZCwgY29uc3QgdGltZV90IHN5c3RpbWUsCisgICAgICAgICAgICAgY29uc3QgZG91YmxlIHN5bmNfZHVyYXRpb24pIHsKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBQdXQgdGhlIHRpbWUgInN5c3RpbWUiIG9uIHN0YW5kYXJkIG91dHB1dCBpbiBkaXNwbGF5IGZvcm1hdC4KKyAgRXhjZXB0IGlmIGhjbG9ja192YWxpZCA9PSBmYWxzZSwganVzdCB0ZWxsIHN0YW5kYXJkIG91dHB1dCB0aGF0IHdlIGRvbid0CisgIGtub3cgd2hhdCB0aW1lIGl0IGlzLgorCisgIEluY2x1ZGUgaW4gdGhlIG91dHB1dCB0aGUgYWRqdXN0bWVudCAic3luY19kdXJhdGlvbiIuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgIGlmICghaGNsb2NrX3ZhbGlkKQorICAgIGZwcmludGYoc3RkZXJyLCBfKCJUaGUgSGFyZHdhcmUgQ2xvY2sgcmVnaXN0ZXJzIGNvbnRhaW4gdmFsdWVzIHRoYXQgYXJlICIKKyAgICAgICAgICAgICJlaXRoZXIgaW52YWxpZCAoZS5nLiA1MHRoIGRheSBvZiBtb250aCkgb3IgYmV5b25kIHRoZSByYW5nZSAiCisgICAgICAgICAgICAid2UgY2FuIGhhbmRsZSAoZS5nLiBZZWFyIDIwOTUpLlxuIikpOworICBlbHNlIHsKKyAgICBzdHJ1Y3QgdG0gKmx0OworICAgIGNoYXIgKmZvcm1hdCA9ICIlYyI7CisgICAgY2hhciBjdGltZV9ub3dbMjAwXTsKKworICAgIGx0ID0gbG9jYWx0aW1lKCZzeXN0aW1lKTsKKyAgICBzdHJmdGltZShjdGltZV9ub3csIHNpemVvZihjdGltZV9ub3cpLCBmb3JtYXQsIGx0KTsKKyAgICBwcmludGYoXygiJXMgICUuNmYgc2Vjb25kc1xuIiksIGN0aW1lX25vdywgLShzeW5jX2R1cmF0aW9uKSk7CisgIH0KK30KKworCisKK3N0YXRpYyBpbnQKK2ludGVycHJldF9kYXRlX3N0cmluZyhjb25zdCBjaGFyICpkYXRlX29wdCwgdGltZV90ICogY29uc3QgdGltZV9wKSB7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgSW50ZXJwcmV0IHRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiwgd2hpY2ggaXMgc29tZXRoaW5nIGxpa2UKKyAgIjEzOjA1OjAxIi4gIEluIGZhY3QsIGl0IGNhbiBiZSBhbnkgb2YgdGhlIG15cmlhZCBBU0NJSSBzdHJpbmdzIHRoYXQgc3BlY2lmeQorICBhIHRpbWUgd2hpY2ggdGhlICJkYXRlIiBwcm9ncmFtIGNhbiB1bmRlcnN0YW5kLiAgVGhlIGRhdGUgb3B0aW9uIHZhbHVlIGluCisgIHF1ZXN0aW9uIGlzIG91ciAiZGF0ZW9wdCIgYXJndW1lbnQuCisKKyAgVGhlIHNwZWNpZmllZCB0aW1lIGlzIGluIHRoZSBsb2NhbCB0aW1lIHpvbmUuCisKKyAgT3VyIG91dHB1dCwgIip0aW1lX3AiLCBpcyBhIHNlY29uZHMtaW50by1lcG9jaCB0aW1lLgorCisgIFdlIHVzZSB0aGUgImRhdGUiIHByb2dyYW0gdG8gaW50ZXJwcmV0IHRoZSBkYXRlIHN0cmluZy4gICJkYXRlIiBtdXN0IGJlCisgIHJ1bm5hYmxlIGJ5IGlzc3VpbmcgdGhlIGNvbW1hbmQgImRhdGUiIHRvIHRoZSAvYmluL3NoIHNoZWxsLiAgVGhhdCBtZWFucworICBpbiBtdXN0IGJlIGluIHRoZSBjdXJyZW50IFBBVEguCisKKyAgSWYgYW55dGhpbmcgZ29lcyB3cm9uZyAoYW5kIG1hbnkgdGhpbmdzIGNhbiksIHdlIHJldHVybiByZXR1cm4gY29kZQorICAxMCBhbmQgYXJiaXRyYXJ5ICp0aW1lX3AuICBPdGhlcndpc2UsIHJldHVybiBjb2RlIGlzIDAgYW5kICp0aW1lX3AKKyAgaXMgdmFsaWQuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKwlGSUxFICpkYXRlX2NoaWxkX2ZwOworCWNoYXIgZGF0ZV9yZXNwWzEwMF07CisJY29uc3QgY2hhciBtYWdpY1tdPSJzZWNvbmRzLWludG8tZXBvY2g9IjsKKwljaGFyIGRhdGVfY29tbWFuZFsxMDBdOworCWludCByZXRjb2RlOyAgLyogb3VyIGV2ZW50dWFsIHJldHVybiBjb2RlICovCisJaW50IHJjOyAgLyogbG9jYWwgcmV0dXJuIGNvZGUgKi8KKworCWlmIChkYXRlX29wdCA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIpKTsKKwkJcmV0dXJuIDE0OworCX0KKworCS8qIHByZXZlbnQgb3ZlcmZsb3cgLSBhIHNlY3VyaXR5IHJpc2sgKi8KKwlpZiAoc3RybGVuKGRhdGVfb3B0KSA+IHNpemVvZihkYXRlX2NvbW1hbmQpIC0gNTApIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIikpOworCQlyZXR1cm4gMTM7CisJfQorCisJLyogUXVvdGVzIGluIGRhdGVfb3B0IHdvdWxkIHJ1aW4gdGhlIGRhdGUgY29tbWFuZCB3ZSBjb25zdHJ1Y3QuICovCisJaWYgKHN0cmNocihkYXRlX29wdCwgJyInKSAhPSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkJXygiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisJCQkgICJJbiBwYXJ0aWN1bGFyLCBpdCBjb250YWlucyBxdW90YXRpb24gbWFya3MuXG4iKSk7CisJCXJldHVybiAxMjsKKwl9CisKKwlzcHJpbnRmKGRhdGVfY29tbWFuZCwgImRhdGUgLS1kYXRlPVwiJXNcIiArc2Vjb25kcy1pbnRvLWVwb2NoPSUlcyIsCisJCWRhdGVfb3B0KTsKKwlpZiAoZGVidWcpCisJCXByaW50ZihfKCJJc3N1aW5nIGRhdGUgY29tbWFuZDogJXNcbiIpLCBkYXRlX2NvbW1hbmQpOworCisJZGF0ZV9jaGlsZF9mcCA9IHBvcGVuKGRhdGVfY29tbWFuZCwgInIiKTsKKwlpZiAoZGF0ZV9jaGlsZF9mcCA9PSBOVUxMKSB7CisJCW91dHN5c2VycihfKCJVbmFibGUgdG8gcnVuICdkYXRlJyBwcm9ncmFtIGluIC9iaW4vc2ggc2hlbGwuICIKKwkJCSAgICAicG9wZW4oKSBmYWlsZWQiKSk7CisJCXJldHVybiAxMDsKKwl9CisKKwlpZiAoIWZnZXRzKGRhdGVfcmVzcCwgc2l6ZW9mKGRhdGVfcmVzcCksIGRhdGVfY2hpbGRfZnApKQorCQlkYXRlX3Jlc3BbMF0gPSAnXDAnOyAgLyogaW4gY2FzZSBmZ2V0cyBmYWlscyAqLworCWlmIChkZWJ1ZykKKwkJcHJpbnRmKF8oInJlc3BvbnNlIGZyb20gZGF0ZSBjb21tYW5kID0gJXNcbiIpLCBkYXRlX3Jlc3ApOworCWlmIChzdHJuY21wKGRhdGVfcmVzcCwgbWFnaWMsIHNpemVvZihtYWdpYyktMSkgIT0gMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgXygiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgIgorCQkJCSAgInVuZXhwZWN0ZWQgcmVzdWx0cy5cbiIKKwkJCQkgICJUaGUgY29tbWFuZCB3YXM6XG4gICVzXG4iCisJCQkJICAiVGhlIHJlc3BvbnNlIHdhczpcbiAgJXNcbiIpLAorCQkJTVlOQU1FLCBkYXRlX2NvbW1hbmQsIGRhdGVfcmVzcCk7CisJCXJldGNvZGUgPSA4OworCX0gZWxzZSB7CisJCWxvbmcgc2Vjb25kc19zaW5jZV9lcG9jaDsKKwkJcmMgPSBzc2NhbmYoZGF0ZV9yZXNwICsgc2l6ZW9mKG1hZ2ljKS0xLCAiJWxkIiwKKwkJCSAgICAmc2Vjb25kc19zaW5jZV9lcG9jaCk7CisJCWlmIChyYyA8IDEpIHsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkICIKKwkJCQkgICJzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlIHRoZSAiCisJCQkJICAiY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorCQkJCSAgIlRoZSBjb21tYW5kIHdhczpcbiAgJXNcbiIKKwkJCQkgICJUaGUgcmVzcG9uc2Ugd2FzOlxuICVzXG4iKSwKKwkJCQlNWU5BTUUsIGRhdGVfY29tbWFuZCwgZGF0ZV9yZXNwKTsKKwkJCXJldGNvZGUgPSA2OworCQl9IGVsc2UgeworCQkJcmV0Y29kZSA9IDA7CisJCQkqdGltZV9wID0gc2Vjb25kc19zaW5jZV9lcG9jaDsKKwkJCWlmIChkZWJ1ZykKKwkJCQlwcmludGYoXygiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAiCisJCQkJCSAiJWxkIHNlY29uZHMgc2luY2UgMTk2OS5cbiIpLAorCQkJCSAgICAgICBkYXRlX29wdCwgKGxvbmcpICp0aW1lX3ApOworCQl9CisJfQorCXBjbG9zZShkYXRlX2NoaWxkX2ZwKTsKKworCXJldHVybiByZXRjb2RlOworfQorCisKKworc3RhdGljIGludAorc2V0X3N5c3RlbV9jbG9jayhjb25zdCBib29sIGhjbG9ja192YWxpZCwgY29uc3QgdGltZV90IG5ld3RpbWUsCisgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgdGVzdGluZykgeworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBTZXQgdGhlIFN5c3RlbSBDbG9jayB0byB0aW1lICduZXd0aW1lJy4KKworICAgQWxzbyBzZXQgdGhlIGtlcm5lbCB0aW1lIHpvbmUgdmFsdWUgdG8gdGhlIHZhbHVlIGluZGljYXRlZCBieSB0aGUKKyAgIFRaIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZC9vciAvdXNyL2xpYi96b25laW5mby8sIGludGVycHJldGVkIGFzCisgICB0enNldCgpIHdvdWxkIGludGVycHJldCB0aGVtLgorCisgICBFWENFUFQ6IGlmIGhjbG9ja192YWxpZCBpcyBmYWxzZSwganVzdCBpc3N1ZSBhbiBlcnJvciBtZXNzYWdlCisgICBzYXlpbmcgdGhlcmUgaXMgbm8gdmFsaWQgdGltZSBpbiB0aGUgSGFyZHdhcmUgQ2xvY2sgdG8gd2hpY2ggdG8gc2V0CisgICB0aGUgc3lzdGVtIHRpbWUuCisKKyAgIElmICd0ZXN0aW5nJyBpcyB0cnVlLCBkb24ndCBhY3R1YWxseSB1cGRhdGUgYW55dGhpbmcgLS0ganVzdCBzYXkgd2UKKyAgIHdvdWxkIGhhdmUuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgIGludCByZXRjb2RlOworCisgIGlmICghaGNsb2NrX3ZhbGlkKSB7CisgICAgZnByaW50ZihzdGRlcnIsIF8oIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gIgorICAgICAgICAgICAgIndlIGNhbm5vdCBzZXQgdGhlIFN5c3RlbSBUaW1lIGZyb20gaXQuXG4iKSk7CisgICAgcmV0Y29kZSA9IDE7CisgIH0gZWxzZSB7CisgICAgc3RydWN0IHRpbWV2YWwgdHY7CisgICAgc3RydWN0IHRtICpicm9rZW47CisgICAgaW50IG1pbnV0ZXN3ZXN0OworICAgIGludCByYzsKKworICAgIHR2LnR2X3NlYyA9IG5ld3RpbWU7CisgICAgdHYudHZfdXNlYyA9IDA7CisKKyAgICBicm9rZW4gPSBsb2NhbHRpbWUoJm5ld3RpbWUpOworI2lmZGVmIEhBVkVfVE1fR01UT0ZGCisgICAgbWludXRlc3dlc3QgPSAtYnJva2VuLT50bV9nbXRvZmYvNjA7CQkvKiBHTlUgZXh0ZW5zaW9uICovCisjZWxzZQorICAgIG1pbnV0ZXN3ZXN0ID0gdGltZXpvbmUvNjA7CisgICAgaWYgKGJyb2tlbi0+dG1faXNkc3QpCisJICAgIG1pbnV0ZXN3ZXN0IC09IDYwOworI2VuZGlmCisKKyAgICBpZiAoZGVidWcpIHsKKyAgICAgIHByaW50ZihfKCJDYWxsaW5nIHNldHRpbWVvZmRheTpcbiIpKTsKKyAgICAgIHByaW50ZihfKCJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIiksCisgICAgICAgICAgICAgKGxvbmcpIHR2LnR2X3NlYywgKGxvbmcpIHR2LnR2X3VzZWMpOworICAgICAgcHJpbnRmKF8oIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIiksIG1pbnV0ZXN3ZXN0KTsKKyAgICB9CisgICAgaWYgKHRlc3RpbmcpIHsKKyAgICAgIHByaW50ZihfKCJOb3Qgc2V0dGluZyBzeXN0ZW0gY2xvY2sgYmVjYXVzZSBydW5uaW5nIGluIHRlc3QgbW9kZS5cbiIpKTsKKyAgICAgIHJldGNvZGUgPSAwOworICAgIH0gZWxzZSB7CisgICAgICBjb25zdCBzdHJ1Y3QgdGltZXpvbmUgdHogPSB7IG1pbnV0ZXN3ZXN0LCAwIH07CisKKyAgICAgIHJjID0gc2V0dGltZW9mZGF5KCZ0diwgJnR6KTsKKyAgICAgIGlmIChyYykgeworCSAgICAgIGlmIChlcnJubyA9PSBFUEVSTSkgeworCQkgICAgICBmcHJpbnRmKHN0ZGVyciwKKwkJCSAgICAgIF8oIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iKSk7CisJCSAgICAgIHJldGNvZGUgPSBFWF9OT1BFUk07CisJICAgICAgfSBlbHNlIHsKKwkJICAgICAgb3V0c3lzZXJyKF8oInNldHRpbWVvZmRheSgpIGZhaWxlZCIpKTsKKwkJICAgICAgcmV0Y29kZSA9IDE7CisJICAgICAgfQorICAgICAgfSBlbHNlIHJldGNvZGUgPSAwOworICAgIH0KKyAgfQorICByZXR1cm4gcmV0Y29kZTsKK30KKworCitzdGF0aWMgaW50CitzZXRfc3lzdGVtX2Nsb2NrX3RpbWV6b25lKGNvbnN0IGJvb2wgdW5pdmVyc2FsLCBjb25zdCBib29sIHRlc3RpbmcpIHsKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUmVzZXQgdGhlIFN5c3RlbSBDbG9jayBmcm9tIGxvY2FsIHRpbWUgdG8gVVRDLCBiYXNlZCBvbiBpdHMgY3VycmVudAorICAgdmFsdWUgYW5kIHRoZSB0aW1lem9uZSB1bmxlc3MgdW5pdmVyc2FsIGlzIFRSVUUuCisKKyAgIEFsc28gc2V0IHRoZSBrZXJuZWwgdGltZSB6b25lIHZhbHVlIHRvIHRoZSB2YWx1ZSBpbmRpY2F0ZWQgYnkgdGhlCisgICBUWiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbmQvb3IgL3Vzci9saWIvem9uZWluZm8vLCBpbnRlcnByZXRlZCBhcworICAgdHpzZXQoKSB3b3VsZCBpbnRlcnByZXQgdGhlbS4KKworICAgSWYgJ3Rlc3RpbmcnIGlzIHRydWUsIGRvbid0IGFjdHVhbGx5IHVwZGF0ZSBhbnl0aGluZyAtLSBqdXN0IHNheSB3ZQorICAgd291bGQgaGF2ZS4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgaW50IHJldGNvZGU7CisgIHN0cnVjdCB0aW1ldmFsIHR2OworICBzdHJ1Y3QgdG0gKmJyb2tlbjsKKyAgaW50IG1pbnV0ZXN3ZXN0OworICBpbnQgcmM7CisKKyAgZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CisgIGlmIChkZWJ1ZykgeworICAgIHN0cnVjdCB0bSBicm9rZW5fdGltZTsKKyAgICBjaGFyIGN0aW1lX25vd1syMDBdOworCisgICAgYnJva2VuX3RpbWUgPSAqZ210aW1lKCZ0di50dl9zZWMpOworICAgIHN0cmZ0aW1lKGN0aW1lX25vdywgc2l6ZW9mKGN0aW1lX25vdyksICIlWS8lbS8lZCAlSDolTTolUyIsICZicm9rZW5fdGltZSk7CisgICAgcHJpbnRmKF8oIkN1cnJlbnQgc3lzdGVtIHRpbWU6ICVsZCA9ICVzXG4iKSwgKGxvbmcpIHR2LnR2X3NlYywgY3RpbWVfbm93KTsKKyAgfQorCisgIGJyb2tlbiA9IGxvY2FsdGltZSgmdHYudHZfc2VjKTsKKyNpZmRlZiBIQVZFX1RNX0dNVE9GRgorICBtaW51dGVzd2VzdCA9IC1icm9rZW4tPnRtX2dtdG9mZi82MDsJCS8qIEdOVSBleHRlbnNpb24gKi8KKyNlbHNlCisgIG1pbnV0ZXN3ZXN0ID0gdGltZXpvbmUvNjA7CisgIGlmIChicm9rZW4tPnRtX2lzZHN0KQorCSAgbWludXRlc3dlc3QgLT0gNjA7CisjZW5kaWYKKworICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKKyAgaWYgKCF1bml2ZXJzYWwpCisgICAgdHYudHZfc2VjICs9IG1pbnV0ZXN3ZXN0ICogNjA7CisKKyAgaWYgKGRlYnVnKSB7CisgICAgc3RydWN0IHRtIGJyb2tlbl90aW1lOworICAgIGNoYXIgY3RpbWVfbm93WzIwMF07CisKKyAgICBicm9rZW5fdGltZSA9ICpnbXRpbWUoJnR2LnR2X3NlYyk7CisgICAgc3RyZnRpbWUoY3RpbWVfbm93LCBzaXplb2YoY3RpbWVfbm93KSwgIiVZLyVtLyVkICVIOiVNOiVTIiwgJmJyb2tlbl90aW1lKTsKKworICAgIHByaW50ZihfKCJDYWxsaW5nIHNldHRpbWVvZmRheTpcbiIpKTsKKyAgICBwcmludGYoXygiXHRVVEM6ICVzXG4iKSwgY3RpbWVfbm93KTsKKyAgICBwcmludGYoXygiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIpLAorICAgICAgICAgICAobG9uZykgdHYudHZfc2VjLCAobG9uZykgdHYudHZfdXNlYyk7CisgICAgcHJpbnRmKF8oIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIiksIG1pbnV0ZXN3ZXN0KTsKKyAgfQorICBpZiAodGVzdGluZykgeworICAgIHByaW50ZihfKCJOb3Qgc2V0dGluZyBzeXN0ZW0gY2xvY2sgYmVjYXVzZSBydW5uaW5nIGluIHRlc3QgbW9kZS5cbiIpKTsKKyAgICByZXRjb2RlID0gMDsKKyAgfSBlbHNlIHsKKyAgICBjb25zdCBzdHJ1Y3QgdGltZXpvbmUgdHogPSB7IG1pbnV0ZXN3ZXN0LCAwIH07CisKKyAgICByYyA9IHNldHRpbWVvZmRheSgmdHYsICZ0eik7CisgICAgaWYgKHJjKSB7CisJICAgIGlmIChlcnJubyA9PSBFUEVSTSkgeworCQkgICAgZnByaW50ZihzdGRlcnIsCisJCQkgICAgXygiTXVzdCBiZSBzdXBlcnVzZXIgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIpKTsKKwkJICAgIHJldGNvZGUgPSBFWF9OT1BFUk07CisJICAgIH0gZWxzZSB7CisJCSAgICBvdXRzeXNlcnIoXygic2V0dGltZW9mZGF5KCkgZmFpbGVkIikpOworCQkgICAgcmV0Y29kZSA9IDE7CisJICAgIH0KKyAgICB9IGVsc2UgcmV0Y29kZSA9IDA7CisgIH0KKyAgcmV0dXJuIHJldGNvZGU7Cit9CisKKworc3RhdGljIHZvaWQKK2FkanVzdF9kcmlmdF9mYWN0b3Ioc3RydWN0IGFkanRpbWUgKmFkanRpbWVfcCwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZV90IG5vd3RpbWUsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgaGNsb2NrX3ZhbGlkLAorCQkgICAgY29uc3QgdGltZV90IGhjbG9ja3RpbWUsCisJCSAgICBjb25zdCBkb3VibGUgc3luY19kZWxheSkgeworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgVXBkYXRlIHRoZSBkcmlmdCBmYWN0b3IgaW4gPCphZGp0aW1lX3A+IHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhhdCB0aGUKKyAgSGFyZHdhcmUgQ2xvY2sgd2FzIGNhbGlicmF0ZWQgdG8gPG5vd3RpbWU+IGFuZCBiZWZvcmUgdGhhdCB3YXMgc2V0CisgIHRvIDxoY2xvY2t0aW1lPi4KKworICBXZSByZWNvcmQgaW4gdGhlIGFkanRpbWUgZmlsZSB0aGUgdGltZSBhdCB3aGljaCB3ZSBsYXN0IGNhbGlicmF0ZWQKKyAgdGhlIGNsb2NrIHNvIHdlIGNhbiBjb21wdXRlIHRoZSBkcmlmdCByYXRlIGVhY2ggdGltZSB3ZSBjYWxpYnJhdGUuCisKKyAgRVhDRVBUOiBpZiA8aGNsb2NrX3ZhbGlkPiBpcyBmYWxzZSwgYXNzdW1lIEhhcmR3YXJlIENsb2NrIHdhcyBub3Qgc2V0CisgIGJlZm9yZSB0byBhbnl0aGluZyBtZWFuaW5nZnVsIGFuZCByZWd1bGFyIGFkanVzdG1lbnRzIGhhdmUgbm90IGJlZW4KKyAgZG9uZSwgc28gZG9uJ3QgYWRqdXN0IHRoZSBkcmlmdCBmYWN0b3IuCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisJaWYgKCFoY2xvY2tfdmFsaWQpIHsKKwkJaWYgKGRlYnVnKQorCQkJcHJpbnRmKF8oIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlICIKKwkJCQkgIkhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKwkJCQkgImdhcmJhZ2UuXG4iKSk7CisJfSBlbHNlIGlmIChhZGp0aW1lX3AtPmxhc3RfY2FsaWJfdGltZSA9PSAwKSB7CisJCWlmIChkZWJ1ZykKKwkJCXByaW50ZihfKCJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGxhc3QgIgorCQkJCSAiY2FsaWJyYXRpb24gdGltZSBpcyB6ZXJvLFxuIgorCQkJCSAic28gaGlzdG9yeSBpcyBiYWQgYW5kIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciAiCisJCQkJICJpcyBuZWNlc3NhcnkuXG4iKSk7CisJfSBlbHNlIGlmICgoaGNsb2NrdGltZSAtIGFkanRpbWVfcC0+bGFzdF9jYWxpYl90aW1lKSA8IDIzICogNjAgKiA2MCkgeworCQlpZiAoZGVidWcpCisJCQlwcmludGYoXygiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBpdCBoYXMgIgorCQkJCSAiYmVlbiBsZXNzIHRoYW4gYSBkYXkgc2luY2UgdGhlIGxhc3QgIgorCQkJCSAiY2FsaWJyYXRpb24uXG4iKSk7CisJfSBlbHNlIGlmIChhZGp0aW1lX3AtPmxhc3RfY2FsaWJfdGltZSAhPSAwKSB7CisJCS8qCisJCSAqIEF0IGFkanVzdG1lbnQgdGltZSB3ZSBhZGp1c3QgdGhlIGhhcmR3YXJlIGNsb2NrIGFjY29yZGluZworCQkgKiB0byB0aGUgY29udGVudHMgb2YgL2V0Yy9hZGp0aW1lLgorCQkgKgorCQkgKiBBdCBjYWxpYnJhdGlvbiB0aW1lIHdlIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgYW5kCisJCSAqIHVwZGF0ZSAvZXRjL2FkanRpbWUsIHRoYXQgaXMsIGZvciBlYWNoIGNhbGlicmF0aW9uCisJCSAqIChleGNlcHQgdGhlIGZpcnN0KSB3ZSBhbHNvIGRvIGFuIGFkanVzdG1lbnQuCisJCSAqCisJCSAqIFdlIGFyZSBub3cgYXQgY2FsaWJyYXRpb24gdGltZS4KKwkJICoKKwkJICogTGV0IHVzIGRvIGNvbXB1dGF0aW9uIGluIGRvdWJsZXMuIChGbG9hdHMgYWxtb3N0IHN1ZmZpY2UsCisJCSAqIGJ1dCAxOTUgZGF5cyArIDEgc2Vjb25kIGVxdWFscyAxOTUgZGF5cyBpbiBmbG9hdHMuKQorCQkgKi8KKwkJY29uc3QgZG91YmxlIHNlY19wZXJfZGF5ID0gMjQuMCAqIDYwLjAgKiA2MC4wOworCQlkb3VibGUgYXRpbWVfcGVyX2h0aW1lOworCQlkb3VibGUgYWRqX2RheXMsIGNhbF9kYXlzOworCQlkb3VibGUgZXhwX2RyaWZ0LCB1bmNfZHJpZnQ7CisJCWRvdWJsZSBmYWN0b3JfYWRqdXN0OworCisJCS8qIEFkanVzdGVkIHRpbWUgdW5pdHMgcGVyIGhhcmR3YXJlIHRpbWUgdW5pdCAqLworCQlhdGltZV9wZXJfaHRpbWUgPSAxLjAgKyBhZGp0aW1lX3AtPmRyaWZ0X2ZhY3RvciAvIHNlY19wZXJfZGF5OworCisJCS8qIERheXMgc2luY2UgbGFzdCBhZGp1c3RtZW50IChpbiBoYXJkd2FyZSBjbG9jayB0aW1lKSAqLworCQlhZGpfZGF5cyA9IChkb3VibGUpKGhjbG9ja3RpbWUgLSBhZGp0aW1lX3AtPmxhc3RfYWRqX3RpbWUpCisJCQkvIHNlY19wZXJfZGF5OworCisJCS8qIEV4cGVjdGVkIGRyaWZ0IChzZWMpIHNpbmNlIGxhc3QgYWRqdXN0bWVudCAqLworCQlleHBfZHJpZnQgPSBhZGpfZGF5cyAqIGFkanRpbWVfcC0+ZHJpZnRfZmFjdG9yCisJCQkrIGFkanRpbWVfcC0+bm90X2FkanVzdGVkOworCisJCS8qIFVuY29ycmVjdGVkIGRyaWZ0IChzZWMpIHNpbmNlIGxhc3QgY2FsaWJyYXRpb24gKi8KKwkJdW5jX2RyaWZ0ID0gKGRvdWJsZSkobm93dGltZSAtIGhjbG9ja3RpbWUpCisJCQkrIHN5bmNfZGVsYXkgLSBleHBfZHJpZnQ7CisKKwkJLyogRGF5cyBzaW5jZSBsYXN0IGNhbGlicmF0aW9uIChpbiBoYXJkd2FyZSBjbG9jayB0aW1lKSAqLworCQljYWxfZGF5cyA9ICgoZG91YmxlKShhZGp0aW1lX3AtPmxhc3RfYWRqX3RpbWUKKwkJCQkgICAgLSBhZGp0aW1lX3AtPmxhc3RfY2FsaWJfdGltZSkKKwkJCSAgICArIGFkanRpbWVfcC0+bm90X2FkanVzdGVkKQorCQkJLyAoc2VjX3Blcl9kYXkgKiBhdGltZV9wZXJfaHRpbWUpICsgYWRqX2RheXM7CisKKwkJLyogQW1vdW50IHRvIGFkZCB0byBwcmV2aW91cyBkcmlmdCBmYWN0b3IgKi8KKwkJZmFjdG9yX2FkanVzdCA9IHVuY19kcmlmdCAvIGNhbF9kYXlzOworCisJCWlmIChkZWJ1ZykKKwkJCXByaW50ZihfKCJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAiCisJCQkJICIlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yIG9mICIKKwkJCQkgIiVmIHNlY29uZHMvZGF5LlxuIgorCQkJCSAiQWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBieSAlZiBzZWNvbmRzL2RheVxuIiksCisJCQkgICAgICAgdW5jX2RyaWZ0LAorCQkJICAgICAgIChpbnQpIChub3d0aW1lIC0gYWRqdGltZV9wLT5sYXN0X2NhbGliX3RpbWUpLAorCQkJICAgICAgIGFkanRpbWVfcC0+ZHJpZnRfZmFjdG9yLAorCQkJICAgICAgIGZhY3Rvcl9hZGp1c3QpOworCisJCWFkanRpbWVfcC0+ZHJpZnRfZmFjdG9yICs9IGZhY3Rvcl9hZGp1c3Q7CisJfQorCWFkanRpbWVfcC0+bGFzdF9jYWxpYl90aW1lID0gbm93dGltZTsKKworCWFkanRpbWVfcC0+bGFzdF9hZGpfdGltZSA9IG5vd3RpbWU7CisKKwlhZGp0aW1lX3AtPm5vdF9hZGp1c3RlZCA9IDA7CisKKwlhZGp0aW1lX3AtPmRpcnR5ID0gVFJVRTsKK30KKworCisKK3N0YXRpYyB2b2lkCitjYWxjdWxhdGVfYWRqdXN0bWVudChjb25zdCBkb3VibGUgZmFjdG9yLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZV90IGxhc3RfdGltZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvdWJsZSBub3RfYWRqdXN0ZWQsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lX3Qgc3lzdGltZSwKKyAgICAgICAgICAgICAgICAgICAgIGludCAqYWRqdXN0bWVudF9wLAorICAgICAgICAgICAgICAgICAgICAgZG91YmxlICpyZXRyb19wKSB7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgRG8gdGhlIGRyaWZ0IGFkanVzdG1lbnQgY2FsY3VsYXRpb24uCisKKyAgVGhlIHdheSB3ZSBoYXZlIHRvIHNldCB0aGUgY2xvY2ssIHdlIG5lZWQgdGhlIGFkanVzdG1lbnQgaW4gdHdvIHBhcnRzOgorCisgICAgMSkgYW4gaW50ZWdlciBudW1iZXIgb2Ygc2Vjb25kcyAocmV0dXJuIGFzICphZGp1c3RtZW50X3ApCisKKyAgICAyKSBhIHBvc2l0aXZlIGZyYWN0aW9uIG9mIGEgc2Vjb25kIChsZXNzIHRoYW4gMSkgKHJldHVybiBhcyAqcmV0cm9fcCkKKworICBUaGUgc3VtIG9mIHRoZXNlIHR3byB2YWx1ZXMgaXMgdGhlIGFkanVzdG1lbnQgbmVlZGVkLiAgUG9zaXRpdmUgbWVhbnMgdG8KKyAgYWR2YW5jZSB0aGUgY2xvY2sgb3IgaW5zZXJ0IHNlY29uZHMuICBOZWdhdGl2ZSBtZWFucyB0byByZXRhcmQgdGhlIGNsb2NrCisgIG9yIHJlbW92ZSBzZWNvbmRzLgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgIGRvdWJsZSBleGFjdF9hZGp1c3RtZW50OworCisgIGV4YWN0X2FkanVzdG1lbnQgPSAoKGRvdWJsZSkgKHN5c3RpbWUgLSBsYXN0X3RpbWUpKSAqIGZhY3RvciAvICgyNCAqIDYwICogNjApCisgICAgICAgICAgICAgICAgICAgICArIG5vdF9hZGp1c3RlZDsKKyAgKmFkanVzdG1lbnRfcCA9IEZMT09SKGV4YWN0X2FkanVzdG1lbnQpOworCisgICpyZXRyb19wID0gZXhhY3RfYWRqdXN0bWVudCAtIChkb3VibGUpICphZGp1c3RtZW50X3A7CisgIGlmIChkZWJ1ZykgeworICAgIHByaW50ZiAoXygiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIiksCisgICAgICAgICAgICAoaW50KSAoc3lzdGltZSAtIGxhc3RfdGltZSkpOworICAgIHByaW50ZiAoXygiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICIKKyAgICAgICAgICAgICIlLjZmIHNlY29uZHMgYWdvXG4iKSwKKyAgICAgICAgICAgICphZGp1c3RtZW50X3AsICpyZXRyb19wKTsKKyAgfQorfQorCisKKworc3RhdGljIHZvaWQKK3NhdmVfYWRqdGltZShjb25zdCBzdHJ1Y3QgYWRqdGltZSBhZGp0aW1lLCBjb25zdCBib29sIHRlc3RpbmcpIHsKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgV3JpdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSA8YWRqdGltZT4gc3RydWN0dXJlIHRvIGl0cyBkaXNrIGZpbGUuCisKKyAgQnV0IGlmIHRoZSBjb250ZW50cyBhcmUgY2xlYW4gKHVuY2hhbmdlZCBzaW5jZSByZWFkIGZyb20gZGlzayksIGRvbid0CisgIGJvdGhlci4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgY2hhciBuZXdmaWxlWzQxMl07ICAgLyogU3R1ZmYgdG8gd3JpdGUgdG8gZGlzayBmaWxlICovCisKKyAgaWYgKGFkanRpbWUuZGlydHkpIHsKKyAgICAvKiBzbnByaW50ZiBpcyBub3QgYWx3YXlzIGF2YWlsYWJsZSwgYnV0IHRoaXMgaXMgc2FmZQorICAgICAgIGFzIGxvbmcgYXMgbGliYyBkb2VzIG5vdCB1c2UgbW9yZSB0aGFuIDEwMCBwb3NpdGlvbnMgZm9yICVsZCBvciAlZiAqLworICAgIHNwcmludGYobmV3ZmlsZSwgIiVmICVsZCAlZlxuJWxkXG4lc1xuIiwKKyAgICAgICAgICAgICBhZGp0aW1lLmRyaWZ0X2ZhY3RvciwKKyAgICAgICAgICAgICAobG9uZykgYWRqdGltZS5sYXN0X2Fkal90aW1lLAorICAgICAgICAgICAgIGFkanRpbWUubm90X2FkanVzdGVkLAorICAgICAgICAgICAgIChsb25nKSBhZGp0aW1lLmxhc3RfY2FsaWJfdGltZSwKKwkgICAgIChhZGp0aW1lLmxvY2FsX3V0YyA9PSBVVEMpID8gIlVUQyIgOiAiTE9DQUwiKTsKKworICAgIGlmICh0ZXN0aW5nKSB7CisgICAgICBwcmludGYoXygiTm90IHVwZGF0aW5nIGFkanRpbWUgZmlsZSBiZWNhdXNlIG9mIHRlc3RpbmcgbW9kZS5cbiIpKTsKKyAgICAgIHByaW50ZihfKCJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiVzIiksCisgICAgICAgICAgICAgYWRqX2ZpbGVfbmFtZSwgbmV3ZmlsZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEZJTEUgKmFkamZpbGU7CisgICAgICBpbnQgZXJyID0gMDsKKworICAgICAgYWRqZmlsZSA9IGZvcGVuKGFkal9maWxlX25hbWUsICJ3Iik7CisgICAgICBpZiAoYWRqZmlsZSA9PSBOVUxMKSB7CisgICAgICAgIG91dHN5c2VycihfKCJDb3VsZCBub3Qgb3BlbiBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyAiCisgICAgICAgICAgICAgICAiaW4gaXQgKCVzKSBmb3Igd3JpdGluZyIpLCBhZGpfZmlsZV9uYW1lKTsKKwllcnIgPSAxOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZwdXRzKG5ld2ZpbGUsIGFkamZpbGUpIDwgMCkgeworCSAgb3V0c3lzZXJyKF8oIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50ICIKKwkJICAgICJwYXJhbWV0ZXJzICglcykgaW4gaXQiKSwgYWRqX2ZpbGVfbmFtZSk7CisJICBlcnIgPSAxOworICAgICAgICB9CisgICAgICAgIGlmIChmY2xvc2UoYWRqZmlsZSkgPCAwKSB7CisgICAgICAgICAgb3V0c3lzZXJyKF8oIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50ICIKKwkJICAgICJwYXJhbWV0ZXJzICglcykgaW4gaXQiKSwgYWRqX2ZpbGVfbmFtZSk7CisJICBlcnIgPSAxOworICAgICAgICB9CisgICAgICB9CisgICAgICBpZiAoZXJyKQorCWZwcmludGYoc3RkZXJyLCBfKCJEcmlmdCBhZGp1c3RtZW50IHBhcmFtZXRlcnMgbm90IHVwZGF0ZWQuXG4iKSk7CisgICAgfQorICB9Cit9CisKKworCitzdGF0aWMgdm9pZAorZG9fYWRqdXN0bWVudChzdHJ1Y3QgYWRqdGltZSAqYWRqdGltZV9wLAorICAgICAgICAgICAgICBjb25zdCBib29sIGhjbG9ja192YWxpZCwgY29uc3QgdGltZV90IGhjbG9ja3RpbWUsCisgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1ldmFsIHJlYWRfdGltZSwKKyAgICAgICAgICAgICAgY29uc3QgYm9vbCB1bml2ZXJzYWwsIGNvbnN0IGJvb2wgdGVzdGluZykgeworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgRG8gdGhlIGFkanVzdG1lbnQgcmVxdWVzdGVkLCBieSAxKSBzZXR0aW5nIHRoZSBIYXJkd2FyZSBDbG9jayAoaWYKKyAgbmVjZXNzYXJ5KSwgYW5kIDIpIHVwZGF0aW5nIHRoZSBsYXN0LWFkanVzdGVkIHRpbWUgaW4gdGhlIGFkanRpbWUKKyAgc3RydWN0dXJlLgorCisgIERvIG5vdCB1cGRhdGUgYW55dGhpbmcgaWYgdGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGN1cnJlbnRseSBwcmVzZW50CisgIGEgdmFsaWQgdGltZS4KKworICBhcmd1bWVudHMgPGZhY3Rvcj4gYW5kIDxsYXN0X3RpbWU+IGFyZSBjdXJyZW50IHZhbHVlcyBmcm9tIHRoZSBhZGp0aW1lCisgIGZpbGUuCisKKyAgPGhjbG9ja192YWxpZD4gbWVhbnMgdGhlIEhhcmR3YXJlIENsb2NrIGNvbnRhaW5zIGEgdmFsaWQgdGltZSwgYW5kIHRoYXQKKyAgdGltZSBpcyA8aGNsb2NrdGltZT4uCisKKyAgPHJlYWRfdGltZT4gaXMgdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWUgKHRvIGJlIHByZWNpc2UsIGl0IGlzIHRoZSBzeXN0ZW0KKyAgdGltZSBhdCB0aGUgdGltZSA8aGNsb2NrdGltZT4gd2FzIHJlYWQsIHdoaWNoIGR1ZSB0byBjb21wdXRhdGlvbmFsIGRlbGF5CisgIGNvdWxkIGJlIGEgc2hvcnQgdGltZSBhZ28pLgorCisgIDx1bml2ZXJzYWw+OiB0aGUgSGFyZHdhcmUgQ2xvY2sgaXMga2VwdCBpbiBVVEMuCisKKyAgPHRlc3Rpbmc+OiAgV2UgYXJlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlIChubyB1cGRhdGluZyBvZiBjbG9jaykuCisKKyAgV2UgZG8gbm90IGJvdGhlciB0byB1cGRhdGUgdGhlIGNsb2NrIGlmIHRoZSBhZGp1c3RtZW50IHdvdWxkIGJlIGxlc3MgdGhhbgorICBvbmUgc2Vjb25kLiAgVGhpcyBpcyB0byBhdm9pZCBjdW11bGF0aXZlIGVycm9yIGFuZCBuZWVkbGVzcyBDUFUgaG9nZ2luZworICAocmVtZW1iZXIgd2UgdXNlIGFuIGluZmluaXRlIGxvb3AgZm9yIHNvbWUgdGltaW5nKSBpZiB0aGUgdXNlciBydW5zIHVzCisgIGZyZXF1ZW50bHkuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICBpZiAoIWhjbG9ja192YWxpZCkgeworICAgIGZwcmludGYoc3RkZXJyLCBfKCJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsICIKKyAgICAgICAgICAgICJzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIikpOworICAgIGFkanRpbWVfcC0+bGFzdF9jYWxpYl90aW1lID0gMDsgIC8qIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciBpcyByZXF1aXJlZCAqLworICAgIGFkanRpbWVfcC0+bGFzdF9hZGpfdGltZSA9IDA7CisgICAgYWRqdGltZV9wLT5ub3RfYWRqdXN0ZWQgPSAwOworICAgIGFkanRpbWVfcC0+ZGlydHkgPSBUUlVFOworICB9IGVsc2UgaWYgKGFkanRpbWVfcC0+bGFzdF9hZGpfdGltZSA9PSAwKSB7CisgICAgaWYgKGRlYnVnKQorICAgICAgcHJpbnRmKF8oIk5vdCBzZXR0aW5nIGNsb2NrIGJlY2F1c2UgbGFzdCBhZGp1c3RtZW50IHRpbWUgaXMgemVybywgIgorCSAgICAgInNvIGhpc3RvcnkgaXMgYmFkLiIpKTsKKyAgfSBlbHNlIHsKKyAgICBpbnQgYWRqdXN0bWVudDsKKyAgICAvKiBOdW1iZXIgb2Ygc2Vjb25kcyB3ZSBtdXN0IGluc2VydCBpbiB0aGUgSGFyZHdhcmUgQ2xvY2sgKi8KKyAgICBkb3VibGUgcmV0cm87CisgICAgLyogRnJhY3Rpb24gb2Ygc2Vjb25kIHdlIGhhdmUgdG8gcmVtb3ZlIGZyb20gY2xvY2sgYWZ0ZXIgaW5zZXJ0aW5nCisgICAgICAgPGFkanVzdG1lbnQ+IHdob2xlIHNlY29uZHMuCisgICAgICAgKi8KKyAgICBjYWxjdWxhdGVfYWRqdXN0bWVudChhZGp0aW1lX3AtPmRyaWZ0X2ZhY3RvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhZGp0aW1lX3AtPmxhc3RfYWRqX3RpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgYWRqdGltZV9wLT5ub3RfYWRqdXN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgaGNsb2NrdGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmYWRqdXN0bWVudCwgJnJldHJvKTsKKyAgICBpZiAoYWRqdXN0bWVudCA+IDAgfHwgYWRqdXN0bWVudCA8IC0xKSB7CisgICAgICBzZXRfaGFyZHdhcmVfY2xvY2tfZXhhY3QoaGNsb2NrdGltZSArIGFkanVzdG1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZV9pbmMocmVhZF90aW1lLCAtcmV0cm8pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXZlcnNhbCwgdGVzdGluZyk7CisgICAgICBhZGp0aW1lX3AtPmxhc3RfYWRqX3RpbWUgPSBoY2xvY2t0aW1lICsgYWRqdXN0bWVudDsKKyAgICAgIGFkanRpbWVfcC0+bm90X2FkanVzdGVkID0gMDsKKyAgICAgIGFkanRpbWVfcC0+ZGlydHkgPSBUUlVFOworICAgIH0gZWxzZQorICAgICAgaWYgKGRlYnVnKQorICAgICAgICBwcmludGYoXygiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsICIKKyAgICAgICAgICAgICAgICJzbyBub3Qgc2V0dGluZyBjbG9jay5cbiIpKTsKKyAgfQorfQorCisKKworc3RhdGljIHZvaWQKK2RldGVybWluZV9jbG9ja19hY2Nlc3NfbWV0aG9kKGNvbnN0IGJvb2wgdXNlcl9yZXF1ZXN0c19JU0EpIHsKKworICB1ciA9IE5VTEw7CisKKyAgaWYgKHVzZXJfcmVxdWVzdHNfSVNBKQorCSAgdXIgPSBwcm9iZV9mb3JfY21vc19jbG9jaygpOworCisgIGlmICghdXIpCisJICB1ciA9IHByb2JlX2Zvcl9ydGNfY2xvY2soKTsKKworICBpZiAoIXVyKQorCSAgdXIgPSBwcm9iZV9mb3Jfa2RfY2xvY2soKTsKKworICBpZiAoIXVyICYmICF1c2VyX3JlcXVlc3RzX0lTQSkKKwkgIHVyID0gcHJvYmVfZm9yX2Ntb3NfY2xvY2soKTsKKworICBpZiAoZGVidWcpIHsKKwkgIGlmICh1cikKKwkJICBwcmludGYoXygiVXNpbmcgJXMuXG4iKSwgdXItPmludGVyZmFjZV9uYW1lKTsKKwkgIGVsc2UKKwkJICBwcmludGYoXygiTm8gdXNhYmxlIGNsb2NrIGludGVyZmFjZSBmb3VuZC5cbiIpKTsKKyAgfQorfQorCitzdGF0aWMgaW50CittYW5pcHVsYXRlX2Nsb2NrKGNvbnN0IGJvb2wgc2hvdywgY29uc3QgYm9vbCBhZGp1c3QsIGNvbnN0IGJvb2wgbm9hZGpmaWxlLAorICAgICAgICAgICAgICAgICBjb25zdCBib29sIHNldCwgY29uc3QgdGltZV90IHNldF90aW1lLAorICAgICAgICAgICAgICAgICBjb25zdCBib29sIGhjdG9zeXMsIGNvbnN0IGJvb2wgc3lzdG9oYywgY29uc3QgYm9vbCBzeXN0eiwKKyAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHRpbWV2YWwgc3RhcnR1cF90aW1lLAorICAgICAgICAgICAgICAgICBjb25zdCBib29sIHV0YywgY29uc3QgYm9vbCBsb2NhbF9vcHQsCisJCSBjb25zdCBib29sIHRlc3RpbmcpIHsKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIERvIGFsbCB0aGUgbm9ybWFsIHdvcmsgb2YgaHdjbG9jayAtIHJlYWQsIHNldCBjbG9jaywgZXRjLgorCisgIElzc3VlIG91dHB1dCB0byBzdGRvdXQgYW5kIGVycm9yIG1lc3NhZ2UgdG8gc3RkZXJyIHdoZXJlIGFwcHJvcHJpYXRlLgorCisgIFJldHVybiByYyA9PSAwIGlmIGV2ZXJ5dGhpbmcgd2VudCBPSywgcmMgIT0gMCBpZiBub3QuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBzdHJ1Y3QgYWRqdGltZSBhZGp0aW1lOworICAgICAgLyogQ29udGVudHMgb2YgdGhlIGFkanRpbWUgZmlsZSwgb3Igd2hhdCB0aGV5IHNob3VsZCBiZS4gKi8KKyAgICBpbnQgcmM7ICAvKiBsb2NhbCByZXR1cm4gY29kZSAqLworICAgIGJvb2wgbm9fYXV0aDsgIC8qIFVzZXIgbGFja3MgbmVjZXNzYXJ5IGF1dGhvcml6YXRpb24gdG8gYWNjZXNzIHRoZSBjbG9jayAqLworCisgICAgaWYgKCFzeXN0eikgeworICAgICAgbm9fYXV0aCA9IHVyLT5nZXRfcGVybWlzc2lvbnMoKTsKKyAgICAgIGlmIChub19hdXRoKQorICAgICAgICAgICAgICByZXR1cm4gRVhfTk9QRVJNOworICAgIH0KKworICAgIGlmICghbm9hZGpmaWxlICYmIChhZGp1c3QgfHwgc2V0IHx8IHN5c3RvaGMgfHwgKCF1dGMgJiYgIWxvY2FsX29wdCkpKSB7CisgICAgICByYyA9IHJlYWRfYWRqdGltZSgmYWRqdGltZSk7CisgICAgICBpZiAocmMpCisJICAgICAgcmV0dXJuIHJjOworICAgIH0gZWxzZSB7CisgICAgICAvKiBBIGxpdHRsZSB0cmljayB0byBhdm9pZCByZWFkaW5nIHRoZSBmaWxlIGlmIHdlIGRvbid0IGhhdmUgdG8gKi8KKyAgICAgIGFkanRpbWUuZGlydHkgPSBGQUxTRTsKKyAgICAgIHJjID0gMDsKKyAgICB9CisKKyAgICB7CisgICAgICBjb25zdCBib29sIHVuaXZlcnNhbCA9IGh3X2Nsb2NrX2lzX3V0Yyh1dGMsIGxvY2FsX29wdCwgYWRqdGltZSk7CisKKyAgICAgIGlmICgoc2V0IHx8IHN5c3RvaGMgfHwgYWRqdXN0KSAmJgorCSAgKGFkanRpbWUubG9jYWxfdXRjID09IFVUQykgIT0gdW5pdmVyc2FsKSB7CisJYWRqdGltZS5sb2NhbF91dGMgPSB1bml2ZXJzYWwgPyBVVEMgOiBMT0NBTDsKKwlhZGp0aW1lLmRpcnR5ID0gVFJVRTsKKyAgICAgIH0KKworICAgICAgeworICAgICAgICBzdHJ1Y3QgdGltZXZhbCByZWFkX3RpbWU7CisgICAgICAgICAgLyogVGhlIHRpbWUgYXQgd2hpY2ggd2UgcmVhZCB0aGUgSGFyZHdhcmUgQ2xvY2sgKi8KKworICAgICAgICBib29sIGhjbG9ja192YWxpZCA9IEZBTFNFOworICAgICAgICAgIC8qIFRoZSBIYXJkd2FyZSBDbG9jayBnaXZlcyB1cyBhIHZhbGlkIHRpbWUsIG9yIGF0IGxlYXN0IHNvbWV0aGluZworICAgICAgICAgICAgIGNsb3NlIGVub3VnaCB0byBmb29sIG1rdGltZSgpLgorICAgICAgICAgICAgICovCisKKyAgICAgICAgdGltZV90IGhjbG9ja3RpbWUgPSAwOworICAgICAgICAgIC8qIFRoZSB0aW1lIHRoZSBoYXJkd2FyZSBjbG9jayBoYWQganVzdCBhZnRlciB3ZQorICAgICAgICAgICAgIHN5bmNocm9uaXplZCB0byBpdHMgbmV4dCBjbG9jayB0aWNrIHdoZW4gd2Ugc3RhcnRlZCB1cC4KKyAgICAgICAgICAgICBEZWZpbmVkIG9ubHkgaWYgaGNsb2NrX3ZhbGlkIGlzIHRydWUuCisgICAgICAgICAgICAgKi8KKworCWlmIChzaG93IHx8IGFkanVzdCB8fCBoY3Rvc3lzIHx8ICghbm9hZGpmaWxlICYmICFzeXN0eikpIHsKKyAgICAgICAgICAvKiBkYXRhIGZyb20gSFctY2xvY2sgYXJlIHJlcXVpcmVkICovCisgICAgICAgICAgcmMgPSBzeW5jaHJvbml6ZV90b19jbG9ja190aWNrKCk7CisgICAgICAgICAgaWYgKHJjICYmIHJjICE9IDIpCQkvKiAyPSBzeW5jaHJvbml6YXRpb24gdGltZW91dCAqLworICAgICAgICAgICAgcmV0dXJuIEVYX0lPRVJSOworICAgICAgICAgIGdldHRpbWVvZmRheSgmcmVhZF90aW1lLCBOVUxMKTsKKyAgICAgICAgICByYyA9IHJlYWRfaGFyZHdhcmVfY2xvY2sodW5pdmVyc2FsLCAmaGNsb2NrX3ZhbGlkLCAmaGNsb2NrdGltZSk7CisgICAgICAgICAgaWYgKHJjKQorICAgICAgICAgICAgIHJldHVybiBFWF9JT0VSUjsKKwl9CisKKyAgICAgICAgaWYgKHNob3cpIHsKKyAgICAgICAgICBkaXNwbGF5X3RpbWUoaGNsb2NrX3ZhbGlkLCBoY2xvY2t0aW1lLAorICAgICAgICAgICAgICAgICAgICAgICB0aW1lX2RpZmYocmVhZF90aW1lLCBzdGFydHVwX3RpbWUpKTsKKyAgICAgICAgfSBlbHNlIGlmIChzZXQpIHsKKyAgICAgICAgICBzZXRfaGFyZHdhcmVfY2xvY2tfZXhhY3Qoc2V0X3RpbWUsIHN0YXJ0dXBfdGltZSwKKwkJCQkgICAgICB1bml2ZXJzYWwsIHRlc3RpbmcpOworCSAgaWYgKCFub2FkamZpbGUpCisgICAgICAgICAgICBhZGp1c3RfZHJpZnRfZmFjdG9yKCZhZGp0aW1lLCBzZXRfdGltZSwgaGNsb2NrX3ZhbGlkLCBoY2xvY2t0aW1lLAorCQkJICAgICAgICB0aW1lX2RpZmYocmVhZF90aW1lLCBzdGFydHVwX3RpbWUpKTsKKyAgICAgICAgfSBlbHNlIGlmIChhZGp1c3QpIHsKKyAgICAgICAgICBkb19hZGp1c3RtZW50KCZhZGp0aW1lLCBoY2xvY2tfdmFsaWQsIGhjbG9ja3RpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3RpbWUsIHVuaXZlcnNhbCwgdGVzdGluZyk7CisgICAgICAgIH0gZWxzZSBpZiAoc3lzdG9oYykgeworICAgICAgICAgIHN0cnVjdCB0aW1ldmFsIG5vd3RpbWUsIHJlZnRpbWU7CisgICAgICAgICAgLyogV2UgY2FuIG9ubHkgc2V0X2hhcmR3YXJlX2Nsb2NrX2V4YWN0IHRvIGEgd2hvbGUgc2Vjb25kcworICAgICAgICAgICAgIHRpbWUsIHNvIHdlIHNldCBpdCB3aXRoIHJlZmVyZW5jZSB0byB0aGUgbW9zdCByZWNlbnQKKyAgICAgICAgICAgICB3aG9sZSBzZWNvbmRzIHRpbWUuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICBnZXR0aW1lb2ZkYXkoJm5vd3RpbWUsIE5VTEwpOworICAgICAgICAgIHJlZnRpbWUudHZfc2VjID0gbm93dGltZS50dl9zZWM7CisgICAgICAgICAgcmVmdGltZS50dl91c2VjID0gMDsKKworICAgICAgICAgIHNldF9oYXJkd2FyZV9jbG9ja19leGFjdCgodGltZV90KSByZWZ0aW1lLnR2X3NlYywgcmVmdGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdmVyc2FsLCB0ZXN0aW5nKTsKKwkgIGlmICghbm9hZGpmaWxlKQorICAgICAgICAgICAgYWRqdXN0X2RyaWZ0X2ZhY3RvcigmYWRqdGltZSwgKHRpbWVfdCkgcmVmdGltZS50dl9zZWMsIGhjbG9ja192YWxpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGNsb2NrdGltZSwgKGRvdWJsZSkgcmVhZF90aW1lLnR2X3VzZWMgLyAxRTYpOworICAgICAgICB9IGVsc2UgaWYgKGhjdG9zeXMpIHsKKyAgICAgICAgICByYyA9IHNldF9zeXN0ZW1fY2xvY2soaGNsb2NrX3ZhbGlkLCBoY2xvY2t0aW1lLCB0ZXN0aW5nKTsKKyAgICAgICAgICBpZiAocmMpIHsKKyAgICAgICAgICAgIHByaW50ZihfKCJVbmFibGUgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIpKTsKKwkgICAgcmV0dXJuIHJjOworICAgICAgICAgIH0KKwl9IGVsc2UgaWYgKHN5c3R6KSB7CisJICByYyA9IHNldF9zeXN0ZW1fY2xvY2tfdGltZXpvbmUodW5pdmVyc2FsLCB0ZXN0aW5nKTsKKwkgIGlmIChyYykgeworCSAgICBwcmludGYoXygiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iKSk7CisJICAgIHJldHVybiByYzsKKwkgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIW5vYWRqZmlsZSkKKyAgICAgICAgIHNhdmVfYWRqdGltZShhZGp0aW1lLCB0ZXN0aW5nKTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKworc3RhdGljIHZvaWQKK21hbmlwdWxhdGVfZXBvY2goY29uc3QgYm9vbCBnZXRlcG9jaCwgY29uc3QgYm9vbCBzZXRlcG9jaCwKKyAgICAgICAgICAgICAgICAgY29uc3QgaW50IGVwb2NoX29wdCwgY29uc3QgYm9vbCB0ZXN0aW5nKSB7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIEdldCBvciBzZXQgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIGFzIGFwcHJvcHJpYXRlLgorICAgPGdldGVwb2NoPiwgPHNldGVwb2NoPiwgYW5kIDxlcG9jaD4gYXJlIGh3Y2xvY2sgaW52b2NhdGlvbiBvcHRpb25zLgorCisgICA8ZXBvY2g+ID09IC0xIGlmIHRoZSB1c2VyIGRpZCBub3Qgc3BlY2lmeSBhbiAiZXBvY2giIG9wdGlvbi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAvKgorICAgTWFpbnRlbmFuY2Ugbm90ZTogIFRoaXMgc2hvdWxkIHdvcmsgb24gbm9uLUFscGhhIG1hY2hpbmVzLCBidXQgdGhlCisgICBldmlkZW5jZSB0b2RheSAoOTguMDMuMDQpIGluZGljYXRlcyB0aGF0IHRoZSBrZXJuZWwgb25seSBrZWVwcyB0aGUKKyAgIGVwb2NoIHZhbHVlIG9uIEFscGhhcy4gIElmIHRoYXQgaXMgZXZlciBmaXhlZCwgdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUKKyAgIGNoYW5nZWQuCisgICAqLworCisjaWZuZGVmIF9fYWxwaGFfXworICAgIGZwcmludGYoc3RkZXJyLCBfKCJUaGUga2VybmVsIGtlZXBzIGFuIGVwb2NoIHZhbHVlIGZvciB0aGUgSGFyZHdhcmUgQ2xvY2sgIgorICAgICAgICAgICAgIm9ubHkgb24gYW4gQWxwaGEgbWFjaGluZS5cblRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgIgorICAgICAgICAgICAgImEgbWFjaGluZSBvdGhlciB0aGFuIEFscGhhXG4oYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyAiCisgICAgICAgICAgICAib24gYW4gQWxwaGEgbm93KS4gIE5vIGFjdGlvbiB0YWtlbi5cbiIpKTsKKyNlbHNlCisgICAgaWYgKGdldGVwb2NoKSB7CisgICAgICB1bnNpZ25lZCBsb25nIGVwb2NoOworCisgICAgICBpZiAoZ2V0X2Vwb2NoX3J0YygmZXBvY2gsIDApKQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgXygiVW5hYmxlIHRvIGdldCB0aGUgZXBvY2ggdmFsdWUgZnJvbSB0aGUga2VybmVsLlxuIikpOworICAgICAgZWxzZQorICAgICAgICBwcmludGYoXygiS2VybmVsIGlzIGFzc3VtaW5nIGFuIGVwb2NoIHZhbHVlIG9mICVsdVxuIiksIGVwb2NoKTsKKyAgICB9IGVsc2UgaWYgKHNldGVwb2NoKSB7CisgICAgICBpZiAoZXBvY2hfb3B0ID09IC0xKQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgXygiVG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSAnZXBvY2gnICIKKyAgICAgICAgICAgICAgICAib3B0aW9uIHRvIHRlbGwgdG8gd2hhdCB2YWx1ZSB0byBzZXQgaXQuXG4iKSk7CisgICAgICBlbHNlIGlmICh0ZXN0aW5nKQorICAgICAgICBwcmludGYoXygiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIiksCisJICAgICAgIGVwb2NoX29wdCk7CisgICAgICBlbHNlIGlmIChzZXRfZXBvY2hfcnRjKGVwb2NoX29wdCkpCisgICAgICAgIHByaW50ZihfKCJVbmFibGUgdG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLlxuIikpOworICAgIH0KKyNlbmRpZgorfQorCisjaWZkZWYgX19pYTY0X18KKyNkZWZpbmUgUlRDX0RFViAiL2Rldi9lZmlydGMiCisjZWxzZQorI2RlZmluZSBSVENfREVWICIvZGV2L3J0YyIKKyNlbmRpZgorCitzdGF0aWMgdm9pZAorb3V0X3ZlcnNpb24odm9pZCkgeworCXByaW50ZihfKCIlcyBmcm9tICVzXG4iKSwgTVlOQU1FLCBQQUNLQUdFX1NUUklORyk7Cit9CisKKy8qCisgICAgdXNhZ2UgLSBPdXRwdXQgKGVycm9yIGFuZCkgdXNhZ2UgaW5mb3JtYXRpb24KKworICAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJvdGggZGlyZWN0bHkgZnJvbSBtYWluIHRvIHNob3cgdXNhZ2UKKyAgICBpbmZvcm1hdGlvbiBhbmQgYXMgZmF0YWwgZnVuY3Rpb24gZnJvbSBzaGhvcHQgaWYgc29tZSBhcmd1bWVudCBpcworICAgIG5vdCB1bmRlcnN0b29kLiBJbiBjYXNlIG9mIG5vcm1hbCB1c2FnZSBpbmZvIEZNVCBzaG91bGQgYmUgTlVMTC4KKyAgICBJbiB0aGF0IGNhc2UgdGhlIGluZm8gaXMgcHJpbnRlZCB0byBzdGRvdXQuIElmIEZNVCBpcyBnaXZlbgorICAgIHVzYWdlIHdpbGwgYWN0IGxpa2UgZnByaW50Ziggc3RkZXJyLCBmbXQsIC4uLiApLCBzaG93IGEgdXNhZ2UKKyAgICBpbmZvcm1hdGlvbiBhbmQgdGVybWluYXRlIHRoZSBwcm9ncmFtIGFmdGVyd2FyZHMuCisqLworc3RhdGljIHZvaWQKK3VzYWdlKCBjb25zdCBjaGFyICpmbXQsIC4uLiApIHsKKyAgRklMRSAgICAqdXNhZ2V0bzsKKyAgdmFfbGlzdCBhcDsKKworICB1c2FnZXRvID0gZm10ID8gc3RkZXJyIDogc3Rkb3V0OworCisgIGZwcmludGYoIHVzYWdldG8sIF8oCisgICAgImh3Y2xvY2sgLSBxdWVyeSBhbmQgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayAoUlRDKVxuXG4iCisgICAgIlVzYWdlOiBod2Nsb2NrIFtmdW5jdGlvbl0gW29wdGlvbnMuLi5dXG5cbiIKKyAgICAiRnVuY3Rpb25zOlxuIgorCSIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKwkiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorCSIgICAgICAgLS1zZXQgICAgICAgICAgc2V0IHRoZSBydGMgdG8gdGhlIHRpbWUgZ2l2ZW4gd2l0aCAtLWRhdGVcbiIKKwkiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKwkiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKwkiICAgICAgIC0tc3lzdHogICAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZXpvbmVcbiIKKwkiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKwkiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKwkiICAgICAgIC0tZ2V0ZXBvY2ggICAgIHByaW50IG91dCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWVcbiIKKwkiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorCSIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisJIiAgLXYgfCAtLXZlcnNpb24gICAgICBwcmludCBvdXQgdGhlIHZlcnNpb24gb2YgaHdjbG9jayB0byBzdGRvdXRcbiIKKwkiXG5PcHRpb25zOiBcbiIKKwkiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorCSIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorCSIgIC1mIHwgLS1ydGM9cGF0aCAgICAgc3BlY2lhbCAvZGV2Ly4uLiBmaWxlIHRvIHVzZSBpbnN0ZWFkIG9mIGRlZmF1bHRcbiIKKwkiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisJIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorCSIgICAgICAgLS1kYXRlICAgICAgICAgc3BlY2lmaWVzIHRoZSB0aW1lIHRvIHdoaWNoIHRvIHNldCB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKwkiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKwkiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKwkiICAgICAgIC0tbm9hZGpmaWxlICAgIGRvIG5vdCBhY2Nlc3MgL2V0Yy9hZGp0aW1lLiBSZXF1aXJlcyB0aGUgdXNlIG9mXG4iCisJIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKwkiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKwkiICAgICAgICAgICAgICAgICAgICAgIC9ldGMvYWRqdGltZSlcbiIKKwkiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorCSIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorCSIgIC1EIHwgLS1kZWJ1ZyAgICAgICAgZGVidWcgbW9kZVxuIgorCSJcbiIKKyAgICApLFJUQ19ERVYpOworI2lmZGVmIF9fYWxwaGFfXworICBmcHJpbnRmKHVzYWdldG8sIF8oCisJIiAgLUp8LS1qZW5zZW4sIC1BfC0tYXJjLCAtU3wtLXNybSwgLUZ8LS1mdW5reS10b3lcbiIKKwkiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisJIlxuIgorICAgICkgKTsKKyNlbmRpZgorCisgIGZmbHVzaChzdGRvdXQpOworICBpZiAoZm10KSB7CisgICAgdXNhZ2V0byA9IHN0ZGVycjsKKyAgICB2YV9zdGFydChhcCwgZm10KTsKKyAgICB2ZnByaW50ZihzdGRlcnIsIGZtdCwgYXApOworICAgIHZhX2VuZChhcCk7CisgIH0KKworICBod2Nsb2NrX2V4aXQoZm10ID8gRVhfVVNBR0UgOiAwKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHsKKwl7ICJhZGp1c3QiLCAwLCAwLCAnYScgfSwKKwl7ICJoZWxwIiwgMCwgMCwgJ2gnIH0sCisJeyAic2hvdyIsIDAsIDAsICdyJyB9LAorCXsgImhjdG9zeXMiLCAwLCAwLCAncycgfSwKKwl7ICJ1dGMiLCAwLCAwLCAndScgfSwKKwl7ICJ2ZXJzaW9uIiwgMCwgMCwgJ3YnIH0sCisJeyAic3lzdG9oYyIsIDAsIDAsICd3JyB9LAorCXsgImRlYnVnIiwgMCwgMCwgJ0QnIH0sCisjaWZkZWYgX19hbHBoYV9fCisJeyAiQVJDIiwgMCwgMCwgJ0EnIH0sCisJeyAiYXJjIiwgMCwgMCwgJ0EnIH0sCisJeyAiSmVuc2VuIiwgMCwgMCwgJ0onIH0sCisJeyAiamVuc2VuIiwgMCwgMCwgJ0onIH0sCisJeyAiU1JNIiwgMCwgMCwgJ1MnIH0sCisJeyAic3JtIiwgMCwgMCwgJ1MnIH0sCisJeyAiZnVua3ktdG95IiwgMCwgMCwgJ0YnfSwKKyNlbmRpZgorCXsgInNldCIsIDAsIDAsIDEyOCB9LAorCXsgImdldGVwb2NoIiwgMCwgMCwgMTI5IH0sCisJeyAic2V0ZXBvY2giLCAwLCAwLCAxMzAgfSwKKwl7ICJub2FkamZpbGUiLCAwLCAwLCAxMzEgfSwKKwl7ICJsb2NhbHRpbWUiLCAwLCAwLCAxMzIgfSwKKwl7ICJiYWR5ZWFyIiwgMCwgMCwgMTMzIH0sCisJeyAiZGlyZWN0aXNhIiwgMCwgMCwgMTM0IH0sCisJeyAidGVzdCIsIDAsIDAsIDEzNSB9LAorCXsgImRhdGUiLCAxLCAwLCAxMzYgfSwKKwl7ICJlcG9jaCIsIDEsIDAsIDEzNyB9LAorCXsgInJ0YyIsIDEsIDAsICdmJyB9LAorCXsgImFkamZpbGUiLCAxLCAwLCAxMzggfSwKKwl7ICJzeXN0eiIsIDAsIDAsIDEzOSB9LAorCXsgTlVMTCwgMCwgMCwgMCB9Cit9OworCisvKgorICogUmV0dXJuczoKKyAqICBFWF9VU0FHRTogYmFkIGludm9jYXRpb24KKyAqICBFWF9OT1BFUk06IG5vIHBlcm1pc3Npb24KKyAqICBFWF9PU0ZJTEU6IGNhbm5vdCBvcGVuIC9kZXYvcnRjIG9yIC9ldGMvYWRqdGltZQorICogIEVYX0lPRVJSOiBpb2N0bCBlcnJvciBnZXR0aW5nIG9yIHNldHRpbmcgdGhlIHRpbWUKKyAqICAwOiBPSyAob3Igbm90KQorICogIDE6IGZhaWx1cmUKKyAqLworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCisJc3RydWN0IHRpbWV2YWwgc3RhcnR1cF90aW1lOworCS8qIFRoZSB0aW1lIHdlIHN0YXJ0ZWQgdXAsIGluIHNlY29uZHMgaW50byB0aGUgZXBvY2gsIGluY2x1ZGluZworCSAgIGZyYWN0aW9ucy4gKi8KKwl0aW1lX3Qgc2V0X3RpbWUgPSAwOyAgLyogVGltZSB0byB3aGljaCB1c2VyIHNhaWQgdG8gc2V0IEhhcmR3YXJlIENsb2NrICovCisKKwlib29sIHBlcm1pdHRlZDsgIC8qIFVzZXIgaXMgcGVybWl0dGVkIHRvIGRvIHRoZSBmdW5jdGlvbiAqLworCWludCByYywgYzsKKworCS8qIFZhcmlhYmxlcyBzZXQgYnkgdmFyaW91cyBvcHRpb25zOyBzaG93IG1heSBhbHNvIGJlIHNldCBsYXRlciAqLworCS8qIFRoZSBvcHRpb25zIGRlYnVnLCBiYWR5ZWFyIGFuZCBlcG9jaF9vcHRpb24gYXJlIGdsb2JhbCAqLworCWJvb2wgc2hvdywgc2V0LCBzeXN0b2hjLCBoY3Rvc3lzLCBzeXN0eiwgYWRqdXN0LCBnZXRlcG9jaCwgc2V0ZXBvY2g7CisJYm9vbCB1dGMsIHRlc3RpbmcsIGxvY2FsX29wdCwgbm9hZGpmaWxlLCBkaXJlY3Rpc2E7CisJYm9vbCBBUkNjb25zb2xlLCBKZW5zZW4sIFNSTSwgZnVua3lfdG95OworCWNoYXIgKmRhdGVfb3B0OworCisJLyogUmVtZW1iZXIgd2hhdCB0aW1lIHdlIHdlcmUgaW52b2tlZCAqLworCWdldHRpbWVvZmRheSgmc3RhcnR1cF90aW1lLCBOVUxMKTsKKworI2lmZGVmIEhBVkVfTElCQVVESVQKKwlod2F1ZGl0X2ZkID0gYXVkaXRfb3BlbigpOworCWlmIChod2F1ZGl0X2ZkIDwgMCAmJiAhKGVycm5vID09IEVJTlZBTCB8fCBlcnJubyA9PSBFUFJPVE9OT1NVUFBPUlQgfHwKKwkJCQllcnJubyA9PSBFQUZOT1NVUFBPUlQpKSB7CisJCS8qIFlvdSBnZXQgdGhlc2UgZXJyb3IgY29kZXMgb25seSB3aGVuIHRoZSBrZXJuZWwgZG9lc24ndCBoYXZlCisJCSAqIGF1ZGl0IGNvbXBpbGVkIGluLiAqLworCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIiksCisJCQkJTVlOQU1FKTsKKwkJcmV0dXJuIEVYX05PUEVSTTsKKwl9CisjZW5kaWYKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisjaWZkZWYgTENfTlVNRVJJQworCS8qIFdlIG5lZWQgTENfQ1RZUEUgYW5kIExDX1RJTUUgYW5kIExDX01FU1NBR0VTLCBidXQgbXVzdCBhdm9pZAorCSAgIExDX05VTUVSSUMgc2luY2UgaXQgZ2l2ZXMgcHJvYmxlbXMgd2hlbiB3ZSB3cml0ZSB0byAvZXRjL2FkanRpbWUuCisJICAgLSBncXVlcmlAbWFpbC5kb3Rjb20uZnIgKi8KKwlzZXRsb2NhbGUoTENfTlVNRVJJQywgIkMiKTsKKyNlbmRpZgorCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCS8qIFNldCBvcHRpb24gZGVmYXVsdHMgKi8KKwlzaG93ID0gc2V0ID0gc3lzdG9oYyA9IGhjdG9zeXMgPSBzeXN0eiA9IGFkanVzdCA9IG5vYWRqZmlsZSA9IEZBTFNFOworCWdldGVwb2NoID0gc2V0ZXBvY2ggPSB1dGMgPSBsb2NhbF9vcHQgPSB0ZXN0aW5nID0gZGVidWcgPSBGQUxTRTsKKwlBUkNjb25zb2xlID0gSmVuc2VuID0gU1JNID0gZnVua3lfdG95ID0gZGlyZWN0aXNhID0gYmFkeWVhciA9IEZBTFNFOworCWRhdGVfb3B0ID0gTlVMTDsKKworCXdoaWxlICgoYyA9IGdldG9wdF9sb25nIChhcmdjLCBhcmd2LCAiP2h2VkRhcnN1d0FKU0ZmOiIsIGxvbmdvcHRzLCBOVUxMKSkKKwkgICAgICAgIT0gLTEpIHsKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ0QnOgorCQkJZGVidWcgPSBUUlVFOworCQkJYnJlYWs7CisJCWNhc2UgJ2EnOgorCQkJYWRqdXN0ID0gVFJVRTsKKwkJCWJyZWFrOworCQljYXNlICdyJzoKKwkJCXNob3cgPSBUUlVFOworCQkJYnJlYWs7CisJCWNhc2UgJ3MnOgorCQkJaGN0b3N5cyA9IFRSVUU7CisJCQlicmVhazsKKwkJY2FzZSAndSc6CisJCQl1dGMgPSBUUlVFOworCQkJYnJlYWs7CisJCWNhc2UgJ3cnOgorCQkJc3lzdG9oYyA9IFRSVUU7CisJCQlicmVhazsKKyNpZmRlZiBfX2FscGhhX18KKwkJY2FzZSAnQSc6CisJCQlBUkNjb25zb2xlID0gVFJVRTsKKwkJCWJyZWFrOworCQljYXNlICdKJzoKKwkJCUplbnNlbiA9IFRSVUU7CisJCQlicmVhazsKKwkJY2FzZSAnUyc6CisJCQlTUk0gPSBUUlVFOworCQkJYnJlYWs7CisJCWNhc2UgJ0YnOgorCQkJZnVua3lfdG95ID0gVFJVRTsKKwkJCWJyZWFrOworI2VuZGlmCisJCWNhc2UgMTI4OgorCQkJc2V0ID0gVFJVRTsKKwkJCWJyZWFrOworCQljYXNlIDEyOToKKwkJCWdldGVwb2NoID0gVFJVRTsKKwkJCWJyZWFrOworCQljYXNlIDEzMDoKKwkJCXNldGVwb2NoID0gVFJVRTsKKwkJCWJyZWFrOworCQljYXNlIDEzMToKKwkJCW5vYWRqZmlsZSA9IFRSVUU7CisJCQlicmVhazsKKwkJY2FzZSAxMzI6CisJCQlsb2NhbF9vcHQgPSBUUlVFOwkJLyogLS1sb2NhbHRpbWUgKi8KKwkJCWJyZWFrOworCQljYXNlIDEzMzoKKwkJCWJhZHllYXIgPSBUUlVFOworCQkJYnJlYWs7CisJCWNhc2UgMTM0OgorCQkJZGlyZWN0aXNhID0gVFJVRTsKKwkJCWJyZWFrOworCQljYXNlIDEzNToKKwkJCXRlc3RpbmcgPSBUUlVFOwkJCS8qIC0tdGVzdCAqLworCQkJYnJlYWs7CisJCWNhc2UgMTM2OgorCQkJZGF0ZV9vcHQgPSBvcHRhcmc7CQkvKiAtLWRhdGUgKi8KKwkJCWJyZWFrOworCQljYXNlIDEzNzoKKwkJCWVwb2NoX29wdGlvbiA9IGF0b2kob3B0YXJnKTsJLyogLS1lcG9jaCAqLworCQkJYnJlYWs7CisJCWNhc2UgMTM4OgorCQkJYWRqX2ZpbGVfbmFtZSA9IG9wdGFyZzsJCS8qIC0tYWRqZmlsZSAqLworCQkJYnJlYWs7CisJCWNhc2UgMTM5OgorCQkJc3lzdHogPSBUUlVFOwkJCS8qIC0tc3lzdHogKi8KKwkJCWJyZWFrOworCQljYXNlICdmJzoKKwkJCXJ0Y19kZXZfbmFtZSA9IG9wdGFyZzsJCS8qIC0tcnRjICovCisJCQlicmVhazsKKwkJY2FzZSAndic6CQkJCS8qIC0tdmVyc2lvbiAqLworCQljYXNlICdWJzoKKwkJCW91dF92ZXJzaW9uKCk7CisJCQlyZXR1cm4gMDsKKwkJY2FzZSAnaCc6CQkJCS8qIC0taGVscCAqLworCQljYXNlICc/JzoKKwkJZGVmYXVsdDoKKwkJCXVzYWdlKE5VTEwpOworCQl9CisJfQorCisJYXJnYyAtPSBvcHRpbmQ7CisJYXJndiArPSBvcHRpbmQ7CisKKyNpZmRlZiBIQVZFX0xJQkFVRElUCisJaWYgKHRlc3RpbmcgIT0gVFJVRSkgeworCQlpZiAoYWRqdXN0ID09IFRSVUUgfHwgaGN0b3N5cyA9PSBUUlVFIHx8IHN5c3RvaGMgPT0gVFJVRSB8fAorCQkJCQlzZXQgPT0gVFJVRSB8fCBzZXRlcG9jaCA9PSBUUlVFKSB7CisJCQlod2F1ZGl0X29uID0gVFJVRTsKKwkJfQorCX0KKyNlbmRpZgorCWlmIChhcmdjID4gMCkgeworCQl1c2FnZShfKCIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gICIKKwkJCSJZb3Ugc3VwcGxpZWQgJWQuXG4iKSwKKwkJICAgICAgTVlOQU1FLCBhcmdjKTsKKwl9CisKKwlpZiAoc2hvdyArIHNldCArIHN5c3RvaGMgKyBoY3Rvc3lzICsgc3lzdHogKyBhZGp1c3QgKyBnZXRlcG9jaAorCSAgICArIHNldGVwb2NoID4gMSl7CisJCWZwcmludGYoc3RkZXJyLCBfKCJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorCQkJCSAgIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiAiCisJCQkJICAiYXQgYSB0aW1lLlxuIikpOworCQlod2Nsb2NrX2V4aXQoRVhfVVNBR0UpOworCX0KKworCWlmICh1dGMgJiYgbG9jYWxfb3B0KSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCIlczogVGhlIC0tdXRjIGFuZCAtLWxvY2FsdGltZSBvcHRpb25zICIKKwkJCQkgICJhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisJCQkJICAiYm90aC5cbiIpLCBNWU5BTUUpOworCQlod2Nsb2NrX2V4aXQoRVhfVVNBR0UpOworCX0KKworCWlmIChhZGp1c3QgJiYgbm9hZGpmaWxlKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zICIKKwkJCQkgICJhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisJCQkJICAiYm90aC5cbiIpLCBNWU5BTUUpOworCQlod2Nsb2NrX2V4aXQoRVhfVVNBR0UpOworCX0KKworCWlmIChhZGpfZmlsZV9uYW1lICYmIG5vYWRqZmlsZSkgeworCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgIgorCQkJCSAgImFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3Ugc3BlY2lmaWVkICIKKwkJCQkgICJib3RoLlxuIiksIE1ZTkFNRSk7CisJCWh3Y2xvY2tfZXhpdChFWF9VU0FHRSk7CisJfQorCWlmICghYWRqX2ZpbGVfbmFtZSkKKwkJYWRqX2ZpbGVfbmFtZSA9IEFESlBBVEg7CisKKwlpZiAobm9hZGpmaWxlICYmICEodXRjIHx8IGxvY2FsX29wdCkpIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5ICIKKwkJCQkgICJlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIpLCBNWU5BTUUpOworCQlod2Nsb2NrX2V4aXQoRVhfVVNBR0UpOworCX0KKworI2lmZGVmIF9fYWxwaGFfXworCXNldF9jbW9zX2Vwb2NoKEFSQ2NvbnNvbGUsIFNSTSk7CisJc2V0X2Ntb3NfYWNjZXNzKEplbnNlbiwgZnVua3lfdG95KTsKKyNlbmRpZgorCisJaWYgKHNldCkgeworCQlyYyA9IGludGVycHJldF9kYXRlX3N0cmluZyhkYXRlX29wdCwgJnNldF90aW1lKTsKKwkJLyogKHRpbWUtY29uc3VtaW5nKSAqLworCQlpZiAocmMgIT0gMCkgeworCQkJZnByaW50ZihzdGRlcnIsIF8oIk5vIHVzYWJsZSBzZXQtdG8gdGltZS4gICIKKwkJCQkJICAiQ2Fubm90IHNldCBjbG9jay5cbiIpKTsKKwkJCWh3Y2xvY2tfZXhpdChFWF9VU0FHRSk7CisJCX0KKwl9CisKKwlpZiAoIShzaG93IHwgc2V0IHwgc3lzdG9oYyB8IGhjdG9zeXMgfCBzeXN0eiB8IGFkanVzdCB8IGdldGVwb2NoCisJICAgICAgfCBzZXRlcG9jaCkpCisJCXNob3cgPSAxOyAvKiBkZWZhdWx0IHRvIHNob3cgKi8KKworCisJaWYgKGdldHVpZCgpID09IDApCisJCXBlcm1pdHRlZCA9IFRSVUU7CisJZWxzZSB7CisJCS8qIHByb2dyYW0gaXMgZGVzaWduZWQgdG8gcnVuIHNldHVpZCAoaW4gc29tZSBzaXR1YXRpb25zKSAqLworCQlpZiAoc2V0IHx8IHN5c3RvaGMgfHwgYWRqdXN0KSB7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgIgorCQkJCSAgInRoZSBIYXJkd2FyZSBDbG9jay5cbiIpKTsKKwkJCXBlcm1pdHRlZCA9IEZBTFNFOworCQl9IGVsc2UgaWYgKHN5c3R6IHx8IGhjdG9zeXMpIHsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSAiCisJCQkJICAidGhlIFN5c3RlbSBDbG9jay5cbiIpKTsKKwkJCXBlcm1pdHRlZCA9IEZBTFNFOworCQl9IGVsc2UgaWYgKHNldGVwb2NoKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlICIKKwkJCQkgICJIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUga2VybmVsLlxuIikpOworCQkJcGVybWl0dGVkID0gRkFMU0U7CisJCX0gZWxzZQorCQkJcGVybWl0dGVkID0gVFJVRTsKKwl9CisKKwlpZiAoIXBlcm1pdHRlZCkKKwkJaHdjbG9ja19leGl0KEVYX05PUEVSTSk7CisKKwlpZiAoZ2V0ZXBvY2ggfHwgc2V0ZXBvY2gpIHsKKwkJbWFuaXB1bGF0ZV9lcG9jaChnZXRlcG9jaCwgc2V0ZXBvY2gsIGVwb2NoX29wdGlvbiwgdGVzdGluZyk7CisJCWh3Y2xvY2tfZXhpdCgwKTsKKwl9CisKKwlpZiAoZGVidWcpCisJCW91dF92ZXJzaW9uKCk7CisJaWYgKCFzeXN0eikgeworCQlkZXRlcm1pbmVfY2xvY2tfYWNjZXNzX21ldGhvZChkaXJlY3Rpc2EpOworCQlpZiAoIXVyKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgIgorCQkJCSAgImFueSBrbm93biBtZXRob2QuXG4iKSk7CisJCQlpZiAoIWRlYnVnKQorCQkJCWZwcmludGYoc3RkZXJyLAorCQkJCQlfKCJVc2UgdGhlIC0tZGVidWcgb3B0aW9uIHRvIHNlZSB0aGUgIgorCQkJCQkgICJkZXRhaWxzIG9mIG91ciBzZWFyY2ggZm9yIGFuIGFjY2VzcyAiCisJCQkJCSAgIm1ldGhvZC5cbiIpKTsKKwkJCWh3Y2xvY2tfZXhpdCgxKTsKKwkJfQorCX0KKworCXJjID0gbWFuaXB1bGF0ZV9jbG9jayhzaG93LCBhZGp1c3QsIG5vYWRqZmlsZSwgc2V0LCBzZXRfdGltZSwKKwkJCQloY3Rvc3lzLCBzeXN0b2hjLCBzeXN0eiwgc3RhcnR1cF90aW1lLCB1dGMsCisJCQkJbG9jYWxfb3B0LCB0ZXN0aW5nKTsKKwlod2Nsb2NrX2V4aXQocmMpOworCXJldHVybiByYzsJLyogTm90IHJlYWNoZWQgKi8KK30KKworLyogQSBzaW5nbGUgcm91dGluZSBmb3IgZ3JlYXRlciB1bmlmb3JtaXR5ICovCit2b2lkCitvdXRzeXNlcnIoY2hhciAqbXNnLCAuLi4pIHsKKwl2YV9saXN0IGFyZ3M7CisJaW50IGVycnN2ID0gZXJybm87CisKKwlmcHJpbnRmKHN0ZGVyciwgIiVzOiAiLCBwcm9nbmFtZSk7CisJdmFfc3RhcnQoYXJncywgbXNnKTsKKwl2ZnByaW50ZihzdGRlcnIsIG1zZywgYXJncyk7CisJdmFfZW5kKGFyZ3MpOworCWZwcmludGYoc3RkZXJyLCAiLCBlcnJubz0lZDogJXMuXG4iLAorCQllcnJzdiwgc3RyZXJyb3IoZXJyc3YpKTsKK30KKworCisjaWZkZWYgSEFWRV9MSUJBVURJVAordm9pZAoraHdhdWRpdF9leGl0KGludCBzdGF0dXMpCit7CisJaWYgKGh3YXVkaXRfb24pIHsKKwkJYXVkaXRfbG9nX3VzZXJfbWVzc2FnZShod2F1ZGl0X2ZkLCBBVURJVF9VU1lTX0NPTkZJRywKKwkJCSJjaGFuZ2luZyBzeXN0ZW0gdGltZSIsIE5VTEwsIE5VTEwsIE5VTEwsIHN0YXR1cyA/IDAgOiAxKTsKKwkJY2xvc2UoaHdhdWRpdF9mZCk7CisJfQorCWV4aXQoc3RhdHVzKTsKK30KKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgIEhpc3Rvcnkgb2YgdGhpcyBwcm9ncmFtOgorCisgIDk4LjA4LjEyIEJKSCAgIFZlcnNpb24gMi40CisKKyAgRG9uJ3QgdXNlIGNlbnR1cnkgYnl0ZSBmcm9tIEhhcmR3YXJlIENsb2NrLiAgQWRkIGNvbW1lbnRzIHRlbGxpbmcgd2h5LgorCisKKyAgOTguMDYuMjAgQkpIICAgVmVyc2lvbiAyLjMuCisKKyAgTWFrZSAtLWhjdG9zeXMgc2V0IHRoZSBrZXJuZWwgdGltZXpvbmUgZnJvbSBUWiBlbnZpcm9ubWVudCB2YXJpYWJsZQorICBhbmQvb3IgL3Vzci9saWIvem9uZWluZm8uICBGcm9tIEtsYXVzIFJpcGtlIChrbGF1c0ByaXBrZS5jb20pLgorCisgIDk4LjAzLjA1IEJKSC4gIFZlcnNpb24gMi4yLgorCisgIEFkZCAtLWdldGVwb2NoIGFuZCAtLXNldGVwb2NoLgorCisgIEZpeCBzb21lIHdvcmQgbGVuZ3RoIHRoaW5ncyBzbyBpdCB3b3JrcyBvbiBBbHBoYS4KKworICBNYWtlIGl0IHdvcmsgd2hlbiAvZGV2L3J0YyBkb2Vzbid0IGhhdmUgdGhlIGludGVycnVwdCBmdW5jdGlvbnMuCisgIEluIHRoaXMgY2FzZSwgYnVzeXdhaXQgZm9yIHRoZSB0b3Agb2YgYSBzZWNvbmQgaW5zdGVhZCBvZiBibG9ja2luZyBhbmQKKyAgd2FpdGluZyBmb3IgdGhlIHVwZGF0ZSBjb21wbGV0ZSBpbnRlcnJ1cHQuCisKKyAgRml4IGEgYnVuY2ggb2YgYnVncyB0b28gbnVtZXJvdXMgdG8gbWVudGlvbi4KKworICA5Ny4wNi4wMTogQkpILiAgVmVyc2lvbiAyLjEuICBSZWFkIGFuZCB3cml0ZSB0aGUgY2VudHVyeSBieXRlIChCeXRlCisgIDUwKSBvZiB0aGUgSVNBIEhhcmR3YXJlIENsb2NrIHdoZW4gdXNpbmcgZGlyZWN0IElTQSBJL08uICBQcm9ibGVtCisgIGRpc2NvdmVyZWQgYnkgam9iIChqZWlAaWNsbmwuaWNsLm5sKS4KKworICBVc2UgdGhlIHJ0YyBjbG9jayBhY2Nlc3MgbWV0aG9kIGluIHByZWZlcmVuY2UgdG8gdGhlIEtER0hXQ0xLIG1ldGhvZC4KKyAgUHJvYmxlbSBkaXNjb3ZlcmVkIGJ5IEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJATFM1LmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPi4KKworICBOb3ZlbWJlciAxOTk2OiBWZXJzaW9uIDIuMC4xLiAgTW9kaWZpY2F0aW9ucyBieSBOaWNvbGFpIExhbmdmZWxkdAorICAoamFubEBtYXRoLnVpby5ubykgdG8gbWFrZSBpdCBjb21waWxlIG9uIGxpbnV4IDEuMiBtYWNoaW5lcyBhcyB3ZWxsCisgIGFzIG1vcmUgcmVjZW50IHZlcnNpb25zIG9mIHRoZSBrZXJuZWwuIEludHJvZHVjZWQgdGhlIE5PX0NMT0NLCisgIGFjY2VzcyBtZXRob2QgYW5kIHdyb3RlIGZlYXR1cmUgdGVzdCBjb2RlIHRvIGRldGVjdCBhYnNlbnNlIG9mIHJ0YworICBoZWFkZXJzLgorCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgIE1haW50ZW5hbmNlIG5vdGVzCisKKyAgVG8gY29tcGlsZSB0aGlzLCB5b3UgbXVzdCB1c2UgR05VIGNvbXBpbGVyIG9wdGltaXphdGlvbiAoLU8gb3B0aW9uKQorICBpbiBvcmRlciB0byBtYWtlIHRoZSAiZXh0ZXJuIGlubGluZSIgZnVuY3Rpb25zIGZyb20gYXNtL2lvLmggKGluYigpLAorICBldGMuKSAgY29tcGlsZS4gIElmIHlvdSBkb24ndCBvcHRpbWl6ZSwgd2hpY2ggbWVhbnMgdGhlIGNvbXBpbGVyCisgIHdpbGwgZ2VuZXJhdGUgbm8gaW5saW5lIGZ1bmN0aW9ucywgdGhlIHJlZmVyZW5jZXMgdG8gdGhlc2UgZnVuY3Rpb25zCisgIGluIHRoaXMgcHJvZ3JhbSB3aWxsIGJlIGNvbXBpbGVkIGFzIGV4dGVybmFsIHJlZmVyZW5jZXMuICBTaW5jZSB5b3UKKyAgcHJvYmFibHkgd29uJ3QgYmUgbGlua2luZyB3aXRoIGFueSBmdW5jdGlvbnMgYnkgdGhlc2UgbmFtZXMsIHlvdSB3aWxsCisgIGhhdmUgdW5yZXNvbHZlZCBleHRlcm5hbCByZWZlcmVuY2VzIHdoZW4geW91IGxpbmsuCisKKyAgVGhlIHByb2dyYW0gaXMgZGVzaWduZWQgdG8gcnVuIHNldHVpZCBzdXBlcnVzZXIsIHNpbmNlIHdlIG5lZWQgdG8gYmUKKyAgYWJsZSB0byBkbyBkaXJlY3QgSS9PLiAgKE1vcmUgdG8gdGhlIHBvaW50OiB3ZSBuZWVkIHBlcm1pc3Npb24gdG8KKyAgZXhlY3V0ZSB0aGUgaW9wbCgpIHN5c3RlbSBjYWxsKS4gIChIb3dldmVyLCBpZiB5b3UgdXNlIG9uZSBvZiB0aGUKKyAgbWV0aG9kcyBvdGhlciB0aGFuIGRpcmVjdCBJU0EgSS9PIHRvIGFjY2VzcyB0aGUgY2xvY2ssIG5vIHNldHVpZCBpcworICByZXF1aXJlZCkuCisKKyAgSGVyZSdzIHNvbWUgaW5mbyBvbiBob3cgd2UgbXVzdCBkZWFsIHdpdGggdGhlIHRpbWUgdGhhdCBlbGFwc2VzIHdoaWxlCisgIHRoaXMgcHJvZ3JhbSBydW5zOiBUaGVyZSBhcmUgdHdvIG1ham9yIGRlbGF5cyBhcyB3ZSBydW46CisKKyAgICAxKSBXYWl0aW5nIHVwIHRvIDEgc2Vjb25kIGZvciBhIHRyYW5zaXRpb24gb2YgdGhlIEhhcmR3YXJlIENsb2NrIHNvCisgICAgICAgd2UgYXJlIHN5bmNocm9uaXplZCB0byB0aGUgSGFyZHdhcmUgQ2xvY2suCisKKyAgICAyKSBSdW5uaW5nIHRoZSAiZGF0ZSIgcHJvZ3JhbSB0byBpbnRlcnByZXQgdGhlIHZhbHVlIG9mIG91ciAtLWRhdGUKKyAgICAgICBvcHRpb24uCisKKyAgUmVhZGluZyB0aGUgL2V0Yy9hZGp0aW1lIGZpbGUgaXMgdGhlIG5leHQgYmlnZ2VzdCBzb3VyY2Ugb2YgZGVsYXkgYW5kCisgIHVuY2VydGFpbnR5LgorCisgIFRoZSB1c2VyIHdhbnRzIHRvIGtub3cgd2hhdCB0aW1lIGl0IHdhcyBhdCB0aGUgbW9tZW50IGhlIGludm9rZWQgdXMsCisgIG5vdCBzb21lIGFyYml0cmFyeSB0aW1lIGxhdGVyLiAgQW5kIGluIHNldHRpbmcgdGhlIGNsb2NrLCBoZSBpcworICBnaXZpbmcgdXMgdGhlIHRpbWUgYXQgdGhlIG1vbWVudCB3ZSBhcmUgaW52b2tlZCwgc28gaWYgd2Ugc2V0IHRoZQorICBjbG9jayBzb21lIHRpbWUgbGF0ZXIsIHdlIGhhdmUgdG8gYWRkIHNvbWUgdGltZSB0byB0aGF0LgorCisgIFNvIHdlIGNoZWNrIHRoZSBzeXN0ZW0gdGltZSBhcyBzb29uIGFzIHdlIHN0YXJ0IHVwLCB0aGVuIHJ1biAiZGF0ZSIKKyAgYW5kIGRvIGZpbGUgSS9PIGlmIG5lY2Vzc2FyeSwgdGhlbiB3YWl0IHRvIHN5bmNocm9uaXplIHdpdGggYQorICBIYXJkd2FyZSBDbG9jayBlZGdlLCB0aGVuIGNoZWNrIHRoZSBzeXN0ZW0gdGltZSBhZ2FpbiB0byBzZWUgaG93CisgIG11Y2ggdGltZSB3ZSBzcGVudC4gIFdlIGltbWVkaWF0ZWx5IHJlYWQgdGhlIGNsb2NrIHRoZW4gYW5kIChpZgorICBhcHByb3ByaWF0ZSkgcmVwb3J0IHRoYXQgdGltZSwgYW5kIGFkZGl0aW9uYWxseSwgdGhlIGRlbGF5IHdlIG1lYXN1cmVkLgorCisgIElmIHdlJ3JlIHNldHRpbmcgdGhlIGNsb2NrIHRvIGEgdGltZSBnaXZlbiBieSB0aGUgdXNlciwgd2Ugd2FpdCBzb21lCisgIG1vcmUgc28gdGhhdCB0aGUgdG90YWwgZGVsYXkgaXMgYW4gaW50ZWdyYWwgbnVtYmVyIG9mIHNlY29uZHMsIHRoZW4KKyAgc2V0IHRoZSBIYXJkd2FyZSBDbG9jayB0byB0aGUgdGltZSB0aGUgdXNlciByZXF1ZXN0ZWQgcGx1cyB0aGF0CisgIGludGVncmFsIG51bWJlciBvZiBzZWNvbmRzLiAgTi5CLiBUaGUgSGFyZHdhcmUgQ2xvY2sgY2FuIG9ubHkgYmUgc2V0CisgIGluIGludGVncmFsIHNlY29uZHMuCisKKyAgSWYgd2UncmUgc2V0dGluZyB0aGUgY2xvY2sgdG8gdGhlIHN5c3RlbSBjbG9jayB2YWx1ZSwgd2Ugd2FpdCBmb3IKKyAgdGhlIHN5c3RlbSBjbG9jayB0byByZWFjaCB0aGUgdG9wIG9mIGEgc2Vjb25kLCBhbmQgdGhlbiBzZXQgdGhlCisgIEhhcmR3YXJlIENsb2NrIHRvIHRoZSBzeXN0ZW0gY2xvY2sncyB2YWx1ZS4KKworICBIZXJlJ3MgYW4gaW50ZXJlc3RpbmcgcG9pbnQgYWJvdXQgc2V0dGluZyB0aGUgSGFyZHdhcmUgQ2xvY2s6ICBPbiBteQorICBtYWNoaW5lLCB3aGVuIHlvdSBzZXQgaXQsIGl0IHNldHMgdG8gdGhhdCBwcmVjaXNlIHRpbWUuICBCdXQgb25lIGNhbgorICBpbWFnaW5lIGFub3RoZXIgY2xvY2sgd2hvc2UgdXBkYXRlIG9zY2lsbGF0b3IgbWFyY2hlcyBvbiBhIHN0ZWFkeSBvbmUKKyAgc2Vjb25kIHBlcmlvZCwgc28gdXBkYXRpbmcgdGhlIGNsb2NrIGJldHdlZW4gYW55IHR3byBvc2NpbGxhdG9yIHRpY2tzCisgIGlzIHRoZSBzYW1lIGFzIHVwZGF0aW5nIGl0IHJpZ2h0IGF0IHRoZSBlYXJsaWVyIHRpY2suICBUbyBhdm9pZCBhbnkKKyAgY29tcGxpY2F0aW9ucyB0aGF0IG1pZ2h0IGNhdXNlLCB3ZSBzZXQgdGhlIGNsb2NrIGFzIHNvb24gYXMgcG9zc2libGUKKyAgYWZ0ZXIgYW4gb3NjaWxsYXRvciB0aWNrLgorCisKKyAgQWJvdXQgc3luY2hyb25pemluZyB0byB0aGUgSGFyZHdhcmUgQ2xvY2sgd2hlbiByZWFkaW5nIHRoZSB0aW1lOiBUaGUKKyAgcHJlY2lzaW9uIG9mIHRoZSBIYXJkd2FyZSBDbG9jayBjb3VudGVycyB0aGVtc2VsdmVzIGlzIG9uZSBzZWNvbmQuCisgIFlvdSBjYW4ndCByZWFkIHRoZSBjb3VudGVycyBhbmQgZmluZCBvdXQgdGhhdCBpcyAxMjowMTowMi41LiAgQnV0IGlmCisgIHlvdSBjb25zaWRlciB0aGUgbG9jYXRpb24gaW4gdGltZSBvZiB0aGUgY291bnRlcidzIHRpY2tzIGFzIHBhcnQgb2YKKyAgaXRzIHZhbHVlLCB0aGVuIGl0cyBwcmVjaXNpb24gaXMgYXMgaW5maW5pdGUgYXMgdGltZSBpcyBjb250aW51b3VzIQorICBXaGF0IEknbSBzYXlpbmcgaXMgdGhpczogVG8gZmluZCBvdXQgdGhlIF9leGFjdF8gdGltZSBpbiB0aGUKKyAgaGFyZHdhcmUgY2xvY2ssIHdlIHdhaXQgdW50aWwgdGhlIG5leHQgY2xvY2sgdGljayAodGhlIG5leHQgdGltZSB0aGUKKyAgc2Vjb25kIGNvdW50ZXIgY2hhbmdlcykgYW5kIG1lYXN1cmUgaG93IGxvbmcgd2UgaGFkIHRvIHdhaXQuICBXZQorICB0aGVuIHJlYWQgdGhlIHZhbHVlIG9mIHRoZSBjbG9jayBjb3VudGVycyBhbmQgc3VidHJhY3QgdGhlIHdhaXQgdGltZQorICBhbmQgd2Uga25vdyBwcmVjaXNlbHkgd2hhdCB0aW1lIGl0IHdhcyB3aGVuIHdlIHNldCBvdXQgdG8gcXVlcnkgdGhlCisgIHRpbWUuCisKKyAgaHdjbG9jayB1c2VzIHRoaXMgbWV0aG9kLCBhbmQgY29uc2lkZXJzIHRoZSBIYXJkd2FyZSBDbG9jayB0byBoYXZlCisgIGluZmluaXRlIHByZWNpc2lvbi4KKworCisgIEVuaGFuY2VtZW50cyBuZWVkZWQ6CisKKyAgIC0gV2hlbiB3YWl0aW5nIGZvciB3aG9sZSBzZWNvbmQgYm91bmRhcnkgaW4gc2V0X2hhcmR3YXJlX2Nsb2NrX2V4YWN0LAorICAgICBmYWlsIGlmIHdlIG1pc3MgdGhlIGdvYWwgYnkgbW9yZSB0aGFuIC4xIHNlY29uZCwgYXMgY291bGQgaGFwcGVuIGlmCisgICAgIHdlIGdldCBwcmUtZW1wdGVkIChieSB0aGUga2VybmVsIGRpc3BhdGNoZXIpLgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL2tkLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL2tkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhODdjYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2h3Y2xvY2sva2QuYwpAQCAtMCwwICsxLDE4NiBAQAorLyoga2QuYyAtIEtER0hXQ0xLIHN0dWZmLCBwb3NzaWJseSBtNjhrIG9ubHkgLSBkZXByZWNhdGVkICovCisKKyNpbmNsdWRlICJjbG9jay5oIgorCisjaWZuZGVmIF9fbTY4a19fCisKK3N0cnVjdCBjbG9ja19vcHMgKgorcHJvYmVfZm9yX2tkX2Nsb2NrKCkgeworCXJldHVybiBOVUxMOworfQorCisjZWxzZSAvKiBfX202OGtfXyAqLworCisjaW5jbHVkZSA8dW5pc3RkLmg+CQkvKiBmb3IgY2xvc2UoKSAqLworI2luY2x1ZGUgPGZjbnRsLmg+CQkvKiBmb3IgT19SRE9OTFkgKi8KKyNpbmNsdWRlIDxzeXNleGl0cy5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorCisjaW5jbHVkZSAibmxzLmgiCisjaW5jbHVkZSAidXNsZWVwLmgiCisKK3N0YXRpYyBpbnQgY29uX2ZkID0gLTE7CQkvKiBvcGVuZWQgYnkgcHJvYmVfZm9yX2tkX2Nsb2NrKCkgKi8KKwkJCQkvKiBuZXZlciBjbG9zZWQgKi8KK3N0YXRpYyBjaGFyICpjb25fZmRfZmlsZW5hbWU7CS8qIHVzdWFsbHkgIi9kZXYvdHR5MSIgKi8KKworLyogR2V0IGRlZmluZXMgZm9yIEtER0hXQ0xLIGFuZCBLRFNIV0NMSyAobTY4aykgKi8KKyNpbmNsdWRlIDxsaW51eC9rZC5oPgorI2lmbmRlZiBLREdIV0NMSworI2RlZmluZSBLREdIV0NMSyAgICAgICAgMHg0QjUwICAgICAvKiBnZXQgaGFyZHdhcmUgY2xvY2sgKi8KKyNkZWZpbmUgS0RTSFdDTEsgICAgICAgIDB4NEI1MSAgICAgLyogc2V0IGhhcmR3YXJlIGNsb2NrICovCitzdHJ1Y3QgaHdjbGtfdGltZSB7CisgICAgICAgIHVuc2lnbmVkICAgICAgICBzZWM7ICAgIC8qIDAuLjU5ICovCisgICAgICAgIHVuc2lnbmVkICAgICAgICBtaW47ICAgIC8qIDAuLjU5ICovCisgICAgICAgIHVuc2lnbmVkICAgICAgICBob3VyOyAgIC8qIDAuLjIzICovCisgICAgICAgIHVuc2lnbmVkICAgICAgICBkYXk7ICAgIC8qIDEuLjMxICovCisgICAgICAgIHVuc2lnbmVkICAgICAgICBtb247ICAgIC8qIDAuLjExICovCisgICAgICAgIHVuc2lnbmVkICAgICAgICB5ZWFyOyAgIC8qIDcwLi4uICovCisgICAgICAgIGludCAgICAgICAgICAgICB3ZGF5OyAgIC8qIDAuLjYsIDAgaXMgU3VuZGF5LCAtMSBtZWFucyB1bmtub3duL2Rvbid0IHNldCAqLworfTsKKyNlbmRpZgorCitzdGF0aWMgaW50CitzeW5jaHJvbml6ZV90b19jbG9ja190aWNrX2tkKHZvaWQpIHsKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgV2FpdCBmb3IgdGhlIHRvcCBvZiBhIGNsb2NrIHRpY2sgYnkgY2FsbGluZyBLREdIV0NMSyBpbiBhIGJ1c3kgbG9vcCB1bnRpbAorICAgd2Ugc2VlIGl0LgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgIC8qIFRoZSB0aW1lIHdoZW4gd2Ugd2VyZSBjYWxsZWQgKGFuZCBzdGFydGVkIHdhaXRpbmcpICovCisgIHN0cnVjdCBod2Nsa190aW1lIHN0YXJ0X3RpbWUsIG5vd3RpbWU7CisgIHN0cnVjdCB0aW1ldmFsIGJlZ2luLCBub3c7CisKKyAgaWYgKGRlYnVnKQorICAgIHByaW50ZihfKCJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSBLREdIV0NMSyB0byBjaGFuZ2VcbiIpKTsKKworICBpZiAoaW9jdGwoY29uX2ZkLCBLREdIV0NMSywgJnN0YXJ0X3RpbWUpID09IC0xKSB7CisgICAgb3V0c3lzZXJyKF8oIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQiKSk7CisgICAgcmV0dXJuIDM7CisgIH0KKworICAvKiBXYWl0IGZvciBjaGFuZ2UuICBTaG91bGQgYmUgd2l0aGluIGEgc2Vjb25kLCBidXQgaW4gY2FzZSBzb21ldGhpbmcKKyAgICogd2VpcmQgaGFwcGVucywgd2UgaGF2ZSBhIHRpbWUgbGltaXQgKDEuNXMpIG9uIHRoaXMgbG9vcCB0byByZWR1Y2UgdGhlCisgICAqIGltcGFjdCBvZiB0aGlzIGZhaWx1cmUuCisgICAqLworICBnZXR0aW1lb2ZkYXkoJmJlZ2luLCBOVUxMKTsKKyAgZG8geworICAgIC8qIEFkZGVkIGJ5IFJvbWFuIEhvZGVrIDxSb21hbi5Ib2Rla0BpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKyAgICAgKiAiVGhlIGN1bHByaXQgaXMgdGhlIGZhc3QgbG9vcCB3aXRoIEtER0hXQ0xLIGlvY3Rscy4gSXQgc2VlbXMKKyAgICAgKiAgdGhlIGtlcm5lbCBnZXRzIGNvbmZ1c2VkIGJ5IHRob3NlIG9uIEFtaWdhcyB3aXRoIEEyMDAwIFJUQ3MKKyAgICAgKiAgYW5kIHNpbXBseSBoYW5ncyBhZnRlciBzb21lIHRpbWUuIEluc2VydGluZyBhIHNsZWVwIGhlbHBzLiIKKyAgICAgKi8KKyAgICB1c2xlZXAoMSk7CisKKyAgICBpZiAoaW9jdGwoY29uX2ZkLCBLREdIV0NMSywgJm5vd3RpbWUpID09IC0xKSB7CisgICAgICBvdXRzeXNlcnIoXygiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIikpOworICAgICAgcmV0dXJuIDM7CisgICAgfQorICAgIGlmIChzdGFydF90aW1lLnRtX3NlYyAhPSBub3d0aW1lLnRtX3NlYykKKyAgICAgIGJyZWFrOworICAgIGdldHRpbWVvZmRheSgmbm93LCBOVUxMKTsKKyAgICBpZiAodGltZV9kaWZmKG5vdywgYmVnaW4pID4gMS41KSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgXygiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRpbWUgY2hhbmdlLlxuIikpOworICAgICAgcmV0dXJuIDI7CisgICAgfQorICB9IHdoaWxlKDEpOworCisgIHJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQKK3JlYWRfaGFyZHdhcmVfY2xvY2tfa2Qoc3RydWN0IHRtICp0bSkgeworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFJlYWQgdGhlIGhhcmR3YXJlIGNsb2NrIGFuZCByZXR1cm4gdGhlIGN1cnJlbnQgdGltZSB2aWEgPHRtPgorICBhcmd1bWVudC4gIFVzZSBpb2N0bHMgdG8gL2Rldi90dHkxIG9uIHdoYXQgd2UgYXNzdW1lIGlzIGFuIG02OGsKKyAgbWFjaGluZS4KKworICBOb3RlIHRoYXQgd2UgZG9uJ3QgdXNlIC9kZXYvY29uc29sZSBoZXJlLiAgVGhhdCBtaWdodCBiZSBhIHNlcmlhbAorICBjb25zb2xlLgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICBzdHJ1Y3QgaHdjbGtfdGltZSB0OworCisgIGlmIChpb2N0bChjb25fZmQsIEtER0hXQ0xLLCAmdCkgPT0gLTEpIHsKKyAgICBvdXRzeXNlcnIoXygiaW9jdGwoKSBmYWlsZWQgdG8gcmVhZCB0aW1lIGZyb20gJXMiKSwgY29uX2ZkX2ZpbGVuYW1lKTsKKyAgICBod2Nsb2NrX2V4aXQoRVhfSU9FUlIpOworICB9CisKKyAgdG0tPnRtX3NlYyAgPSB0LnNlYzsKKyAgdG0tPnRtX21pbiAgPSB0Lm1pbjsKKyAgdG0tPnRtX2hvdXIgPSB0LmhvdXI7CisgIHRtLT50bV9tZGF5ID0gdC5kYXk7CisgIHRtLT50bV9tb24gID0gdC5tb247CisgIHRtLT50bV95ZWFyID0gdC55ZWFyOworICB0bS0+dG1fd2RheSA9IHQud2RheTsKKyAgdG0tPnRtX2lzZHN0ID0gLTE7ICAgICAvKiBEb24ndCBrbm93IGlmIGl0J3MgRGF5bGlnaHQgU2F2aW5ncyBUaW1lICovCisKKyAgcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGludAorc2V0X2hhcmR3YXJlX2Nsb2NrX2tkKGNvbnN0IHN0cnVjdCB0bSAqbmV3X2Jyb2tlbl90aW1lKSB7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU2V0IHRoZSBIYXJkd2FyZSBDbG9jayB0byB0aGUgdGltZSA8bmV3X2Jyb2tlbl90aW1lPi4gIFVzZSBpb2N0bHMgdG8KKyAgL2Rldi90dHkxIG9uIHdoYXQgd2UgYXNzdW1lIGlzIGFuIG02OGsgbWFjaGluZS4KKworICBOb3RlIHRoYXQgd2UgZG9uJ3QgdXNlIC9kZXYvY29uc29sZSBoZXJlLiAgVGhhdCBtaWdodCBiZSBhIHNlcmlhbCBjb25zb2xlLgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgIHN0cnVjdCBod2Nsa190aW1lIHQ7CisKKyAgdC5zZWMgID0gbmV3X2Jyb2tlbl90aW1lLT50bV9zZWM7CisgIHQubWluICA9IG5ld19icm9rZW5fdGltZS0+dG1fbWluOworICB0LmhvdXIgPSBuZXdfYnJva2VuX3RpbWUtPnRtX2hvdXI7CisgIHQuZGF5ICA9IG5ld19icm9rZW5fdGltZS0+dG1fbWRheTsKKyAgdC5tb24gID0gbmV3X2Jyb2tlbl90aW1lLT50bV9tb247CisgIHQueWVhciA9IG5ld19icm9rZW5fdGltZS0+dG1feWVhcjsKKyAgdC53ZGF5ID0gbmV3X2Jyb2tlbl90aW1lLT50bV93ZGF5OworCisgIGlmIChpb2N0bChjb25fZmQsIEtEU0hXQ0xLLCAmdCApID09IC0xKSB7CisgICAgb3V0c3lzZXJyKF8oImlvY3RsIEtEU0hXQ0xLIGZhaWxlZCIpKTsKKyAgICBod2Nsb2NrX2V4aXQoMSk7CisgIH0KKyAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2dldF9wZXJtaXNzaW9uc19rZCh2b2lkKSB7CisgIHJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGNsb2NrX29wcyBrZCA9IHsKKwkiS0RHSFdDTEsgaW50ZXJmYWNlIHRvIG02OGsgY2xvY2siLAorCWdldF9wZXJtaXNzaW9uc19rZCwKKwlyZWFkX2hhcmR3YXJlX2Nsb2NrX2tkLAorCXNldF9oYXJkd2FyZV9jbG9ja19rZCwKKwlzeW5jaHJvbml6ZV90b19jbG9ja190aWNrX2tkLAorfTsKKworLyogcmV0dXJuICZrZCBpZiBLREdIV0NMSyB3b3JrcywgTlVMTCBvdGhlcndpc2UgKi8KK3N0cnVjdCBjbG9ja19vcHMgKgorcHJvYmVfZm9yX2tkX2Nsb2NrKCkgeworCXN0cnVjdCBjbG9ja19vcHMgKnJldCA9IE5VTEw7CisJc3RydWN0IGh3Y2xrX3RpbWUgdDsKKworCWlmIChjb25fZmQgPCAwKSB7CS8qIGZpcnN0IHRpbWUgaGVyZSAqLworCQljb25fZmRfZmlsZW5hbWUgPSAiL2Rldi90dHkxIjsKKwkJY29uX2ZkID0gb3Blbihjb25fZmRfZmlsZW5hbWUsIE9fUkRPTkxZKTsKKwl9CisJaWYgKGNvbl9mZCA8IDApIHsKKwkJLyogcGVyaGFwcyB0aGV5IGFyZSB1c2luZyBkZXZmcz8gKi8KKwkJY29uX2ZkX2ZpbGVuYW1lID0gIi9kZXYvdmMvMSI7CisJCWNvbl9mZCA9IG9wZW4oY29uX2ZkX2ZpbGVuYW1lLCBPX1JET05MWSk7CisJfQorCWlmIChjb25fZmQgPCAwKSB7CisJCS8qIHByb2JhYmx5IEtER0hXQ0xLIGV4aXN0cyBvbiBtNjhrIG9ubHkgKi8KKwkJb3V0c3lzZXJyKF8oIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIpKTsKKwl9IGVsc2UgeworCQlpZiAoaW9jdGwoY29uX2ZkLCBLREdIV0NMSywgJnQpID09IC0xKSB7CisJCQlpZiAoZXJybm8gIT0gRUlOVkFMKQorCQkJCW91dHN5c2VycihfKCJLREdIV0NMSyBpb2N0bCBmYWlsZWQiKSk7CisJCX0gZWxzZQorCQkJcmV0ID0gJmtkOworCX0KKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIF9fbTY4a19fICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9od2Nsb2NrL3J0Yy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaHdjbG9jay9ydGMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTA1Mzg1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaHdjbG9jay9ydGMuYwpAQCAtMCwwICsxLDQ3NyBAQAorLyogcnRjLmMgLSBVc2UgL2Rldi9ydGMgZm9yIGNsb2NrIGFjY2VzcyAqLworI2luY2x1ZGUgPHVuaXN0ZC5oPgkJLyogZm9yIGNsb3NlKCkgKi8KKyNpbmNsdWRlIDxmY250bC5oPgkJLyogZm9yIE9fUkRPTkxZICovCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzeXNleGl0cy5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CQkvKiBmb3Igc3RydWN0IHRpbWV2YWwgKi8KKworI2luY2x1ZGUgImNsb2NrLmgiCisjaW5jbHVkZSAibmxzLmgiCisKKy8qCisgKiBHZXQgZGVmaW5lcyBmb3IgcnRjIHN0dWZmLgorICoKKyAqIEdldHRpbmcgdGhlIHJ0YyBkZWZpbmVzIGlzIG5vbnRyaXZpYWwuCisgKiBUaGUgb2J2aW91cyB3YXkgaXMgYnkgaW5jbHVkaW5nIDxsaW51eC9tYzE0NjgxOHJ0Yy5oPgorICogYnV0IHRoYXQgYWdhaW4gaW5jbHVkZXMgPGFzbS9pby5oPiB3aGljaCBhZ2FpbiBpbmNsdWRlcyAuLi4KKyAqIGFuZCBvbiBzcGFyYyBhbmQgYWxwaGEgdGhpcyBnaXZlcyBjb21waWxhdGlvbiBlcnJvcnMgZm9yCisgKiBtYW55IGtlcm5lbCB2ZXJzaW9ucy4gU28sIHdlIGdpdmUgdGhlIGRlZmluZXMgb3Vyc2VsdmVzIGhlcmUuCisgKiBNb3Jlb3Zlciwgc29tZSBTcGFyYyBwZXJzb24gZGVjaWRlZCB0byBiZSBpbmNvbXBhdGlibGUsIGFuZAorICogdXNlZCBhIHN0cnVjdCBydGNfdGltZSBkaWZmZXJlbnQgZnJvbSB0aGF0IHVzZWQgaW4gbWMxNDY4MThydGMuaC4KKyAqLworCisvKiBPbiBTcGFyY3MsIHRoZXJlIGlzIGEgPGFzbS9ydGMuaD4gdGhhdCBkZWZpbmVzIGRpZmZlcmVudCBpb2N0bHMKKyAgICh0aGF0IGFyZSByZXF1aXJlZCBvbiBteSBtYWNoaW5lKS4gSG93ZXZlciwgdGhpcyBpbmNsdWRlIGZpbGUKKyAgIGRvZXMgbm90IGV4aXN0IG9uIG90aGVyIGFyY2hpdGVjdHVyZXMuICovCisvKiBPbmUgbWlnaHQgZG86CisjaWZkZWYgX19zcGFyY19fCisjaW5jbHVkZSA8YXNtL3J0Yy5oPgorI2VuZGlmCisgKi8KKy8qIFRoZSBmb2xsb3dpbmcgaXMgcm91Z2hseSBlcXVpdmFsZW50ICovCitzdHJ1Y3Qgc3BhcmNfcnRjX3RpbWUKK3sKKyAgICAgICAgaW50ICAgICBzZWM7ICAgIC8qIFNlY29uZHMgKDAtNTkpICovCisgICAgICAgIGludCAgICAgbWluOyAgICAvKiBNaW51dGVzICgwLTU5KSAqLworICAgICAgICBpbnQgICAgIGhvdXI7ICAgLyogSG91ciAoMC0yMykgKi8KKyAgICAgICAgaW50ICAgICBkb3c7ICAgIC8qIERheSBvZiB0aGUgd2VlayAoMS03KSAqLworICAgICAgICBpbnQgICAgIGRvbTsgICAgLyogRGF5IG9mIHRoZSBtb250aCAoMS0zMSkgKi8KKyAgICAgICAgaW50ICAgICBtb250aDsgIC8qIE1vbnRoIG9mIHllYXIgKDEtMTIpICovCisgICAgICAgIGludCAgICAgeWVhcjsgICAvKiBZZWFyICgwLTk5KSAqLworfTsKKworI2RlZmluZSBSVENHRVQgX0lPUigncCcsIDIwLCBzdHJ1Y3Qgc3BhcmNfcnRjX3RpbWUpCisjZGVmaW5lIFJUQ1NFVCBfSU9XKCdwJywgMjEsIHN0cnVjdCBzcGFyY19ydGNfdGltZSkKKworCisvKiBub24tc3BhcmMgc3R1ZmYgKi8KKyNpZiAwCisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorLyogQ2hlY2sgaWYgdGhlIC9kZXYvcnRjIGludGVyZmFjZSBpcyBhdmFpbGFibGUgaW4gdGhpcyB2ZXJzaW9uIG9mCisgICB0aGUgc3lzdGVtIGhlYWRlcnMuICAxMzEwNzIgaXMgbGludXggMi4wLjAuICovCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IDEzMTA3MgorI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CisjZW5kaWYKKyNlbmRpZgorCisvKiBzdHJ1Y3QgcnRjX3RpbWUgaXMgcHJlc2VudCBzaW5jZSAxLjMuOTkgKi8KKy8qIEVhcmxpZXIgKHNpbmNlIDEuMy44OSksIGEgc3RydWN0IHRtIHdhcyB1c2VkLiAqLworc3RydWN0IGxpbnV4X3J0Y190aW1lIHsKKyAgICAgICAgaW50IHRtX3NlYzsKKyAgICAgICAgaW50IHRtX21pbjsKKyAgICAgICAgaW50IHRtX2hvdXI7CisgICAgICAgIGludCB0bV9tZGF5OworICAgICAgICBpbnQgdG1fbW9uOworICAgICAgICBpbnQgdG1feWVhcjsKKyAgICAgICAgaW50IHRtX3dkYXk7CisgICAgICAgIGludCB0bV95ZGF5OworICAgICAgICBpbnQgdG1faXNkc3Q7Cit9OworCisvKiBSVENfUkRfVElNRSBldGMgaGF2ZSB0aGlzIGRlZmluaXRpb24gc2luY2UgMS45OS45IChwcmUyLjAtOSkgKi8KKyNpZm5kZWYgUlRDX1JEX1RJTUUKKyNkZWZpbmUgUlRDX1JEX1RJTUUgICAgICAgX0lPUigncCcsIDB4MDksIHN0cnVjdCBsaW51eF9ydGNfdGltZSkKKyNkZWZpbmUgUlRDX1NFVF9USU1FICAgICAgX0lPVygncCcsIDB4MGEsIHN0cnVjdCBsaW51eF9ydGNfdGltZSkKKyNkZWZpbmUgUlRDX1VJRV9PTiAgICAgICAgX0lPKCdwJywgMHgwMykJLyogVXBkYXRlIGludC4gZW5hYmxlIG9uICovCisjZGVmaW5lIFJUQ19VSUVfT0ZGICAgICAgIF9JTygncCcsIDB4MDQpCS8qIFVwZGF0ZSBpbnQuIGVuYWJsZSBvZmYgKi8KKyNlbmRpZgorLyogUlRDX0VQT0NIX1JFQUQgYW5kIFJUQ19FUE9DSF9TRVQgYXJlIHByZXNlbnQgc2luY2UgMi4wLjM0IGFuZCAyLjEuODkgKi8KKyNpZm5kZWYgUlRDX0VQT0NIX1JFQUQKKyNkZWZpbmUgUlRDX0VQT0NIX1JFQUQJX0lPUigncCcsIDB4MGQsIHVuc2lnbmVkIGxvbmcpCSAvKiBSZWFkIGVwb2NoICovCisjZGVmaW5lIFJUQ19FUE9DSF9TRVQJX0lPVygncCcsIDB4MGUsIHVuc2lnbmVkIGxvbmcpCSAvKiBTZXQgZXBvY2ggKi8KKyNlbmRpZgorCisvKiAvZGV2L3J0YyBpcyBjb252ZW50aW9uYWxseSBjaGFyZGV2IDEwLzEzNQorICogaWE2NCB1c2VzIC9kZXYvZWZpcnRjLCBjaGFyZGV2IDEwLzEzNgorICogZGV2ZnMgKG9ic29sZXRlKSB1c2VkIC9kZXYvbWlzYy8uLi4gZm9yIG1pc2NkZXYKKyAqIG5ldyBSVEMgZnJhbWV3b3JrICsgdWRldiB1c2VzIGR5bmFtaWMgbWFqb3IgYW5kIC9kZXYvcnRjMC4uLi9kZXYvcnRjTgorICogLi4uIHNvIHdlIG5lZWQgYW4gb3ZlcnJpZGFibGUgZGVmYXVsdAorICovCisKKy8qIGRlZmF1bHQgb3IgdXNlciBkZWZpbmVkIGRldiAoYnkgaHdjbG9jayAtLXJ0Yz08cGF0aD4pICovCitjaGFyICpydGNfZGV2X25hbWU7CisKK3N0YXRpYyBpbnQgcnRjX2Rldl9mZCA9IC0xOworCitzdGF0aWMgdm9pZAorY2xvc2VfcnRjKHZvaWQpIHsKKwlpZiAocnRjX2Rldl9mZCAhPSAtMSkKKwkJY2xvc2UocnRjX2Rldl9mZCk7CisJcnRjX2Rldl9mZCA9IC0xOworfQorCitzdGF0aWMgaW50CitvcGVuX3J0Yyh2b2lkKSB7CisJY2hhciAqZmxzW10gPSB7CisjaWZkZWYgX19pYTY0X18KKwkJIi9kZXYvZWZpcnRjIiwKKwkJIi9kZXYvbWlzYy9lZmlydGMiLAorI2VuZGlmCisJCSIvZGV2L3J0YyIsCisJCSIvZGV2L3J0YzAiLAorCQkiL2Rldi9taXNjL3J0YyIsCisJCU5VTEwKKwl9OworCWNoYXIgKipwOworCisJaWYgKHJ0Y19kZXZfZmQgIT0gLTEpCisJCXJldHVybiBydGNfZGV2X2ZkOworCisJLyogLS1ydGMgb3B0aW9uIGhhcyBiZWVuIGdpdmVuICovCisJaWYgKHJ0Y19kZXZfbmFtZSkKKwkJcnRjX2Rldl9mZCA9IG9wZW4ocnRjX2Rldl9uYW1lLCBPX1JET05MWSk7CisJZWxzZSB7CisJCWZvciAocD1mbHM7ICpwOyArK3ApIHsKKwkJCXJ0Y19kZXZfZmQgPSBvcGVuKCpwLCBPX1JET05MWSk7CisKKwkJCWlmIChydGNfZGV2X2ZkIDwgMCAmJiAoZXJybm8gPT0gRU5PRU5UIHx8IGVycm5vID09IEVOT0RFVikpCisJCQkJY29udGludWU7CisJCQlydGNfZGV2X25hbWUgPSAqcDsKKwkJCWJyZWFrOworCQl9CisJCWlmIChydGNfZGV2X2ZkIDwgMCkKKwkJCXJ0Y19kZXZfbmFtZSA9ICpmbHM7CS8qIGRlZmF1bHQgZm9yIGVycm9yIG1lc3NhZ2VzICovCisJfQorCisJaWYgKHJ0Y19kZXZfZmQgIT0gMSkKKwkJYXRleGl0KGNsb3NlX3J0Yyk7CisJcmV0dXJuIHJ0Y19kZXZfZmQ7Cit9CisKK3N0YXRpYyBpbnQKK29wZW5fcnRjX29yX2V4aXQodm9pZCkgeworCWludCBydGNfZmQgPSBvcGVuX3J0YygpOworCisJaWYgKHJ0Y19mZCA8IDApIHsKKwkJb3V0c3lzZXJyKF8oIm9wZW4oKSBvZiAlcyBmYWlsZWQiKSwgcnRjX2Rldl9uYW1lKTsKKwkJaHdjbG9ja19leGl0KEVYX09TRklMRSk7CisJfQorCXJldHVybiBydGNfZmQ7Cit9CisKK3N0YXRpYyBpbnQKK2RvX3J0Y19yZWFkX2lvY3RsKGludCBydGNfZmQsIHN0cnVjdCB0bSAqdG0pIHsKKwlpbnQgcmMgPSAtMTsKKwljaGFyICppb2N0bG5hbWU7CisKKyNpZmRlZiBfX3NwYXJjX18KKwkvKiBzb21lIGJ1dCBub3QgYWxsIHNwYXJjcyB1c2UgYSBkaWZmZXJlbnQgaW9jdGwgYW5kIHN0cnVjdCAqLworCXN0cnVjdCBzcGFyY19ydGNfdGltZSBzdG07CisKKwlpb2N0bG5hbWUgPSAiUlRDR0VUIjsKKwlyYyA9IGlvY3RsKHJ0Y19mZCwgUlRDR0VULCAmc3RtKTsKKwlpZiAocmMgPT0gMCkgeworCQl0bS0+dG1fc2VjID0gc3RtLnNlYzsKKwkJdG0tPnRtX21pbiA9IHN0bS5taW47CisJCXRtLT50bV9ob3VyID0gc3RtLmhvdXI7CisJCXRtLT50bV9tZGF5ID0gc3RtLmRvbTsKKwkJdG0tPnRtX21vbiA9IHN0bS5tb250aCAtIDE7CisJCXRtLT50bV95ZWFyID0gc3RtLnllYXIgLSAxOTAwOworCQl0bS0+dG1fd2RheSA9IHN0bS5kb3cgLSAxOworCQl0bS0+dG1feWRheSA9IC0xOwkJLyogZGF5IGluIHRoZSB5ZWFyICovCisJfQorI2VuZGlmCisJaWYgKHJjID09IC0xKSB7CQkvKiBubyBzcGFyYywgb3IgUlRDR0VUIGZhaWxlZCAqLworCQlpb2N0bG5hbWUgPSAiUlRDX1JEX1RJTUUiOworCQlyYyA9IGlvY3RsKHJ0Y19mZCwgUlRDX1JEX1RJTUUsIHRtKTsKKwl9CisJaWYgKHJjID09IC0xKSB7CisJCXBlcnJvcihpb2N0bG5hbWUpOworCQlmcHJpbnRmKHN0ZGVyciwgXygiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIpLAorCQkJcnRjX2Rldl9uYW1lKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXRtLT50bV9pc2RzdCA9IC0xOyAgICAgICAgICAvKiBkb24ndCBrbm93IHdoZXRoZXIgaXQncyBkc3QgKi8KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorYnVzeXdhaXRfZm9yX3J0Y19jbG9ja190aWNrKGNvbnN0IGludCBydGNfZmQpIHsKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgV2FpdCBmb3IgdGhlIHRvcCBvZiBhIGNsb2NrIHRpY2sgYnkgcmVhZGluZyAvZGV2L3J0YyBpbiBhIGJ1c3kgbG9vcCB1bnRpbAorICAgd2Ugc2VlIGl0LgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICBzdHJ1Y3QgdG0gc3RhcnRfdGltZTsKKyAgICAvKiBUaGUgdGltZSB3aGVuIHdlIHdlcmUgY2FsbGVkIChhbmQgc3RhcnRlZCB3YWl0aW5nKSAqLworICBzdHJ1Y3QgdG0gbm93dGltZTsKKyAgaW50IHJjOworICBzdHJ1Y3QgdGltZXZhbCBiZWdpbiwgbm93OworCisgIGlmIChkZWJ1ZykKKyAgICBwcmludGYoXygiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gJXMgdG8gY2hhbmdlXG4iKSwKKwkgICBydGNfZGV2X25hbWUpOworCisgIHJjID0gZG9fcnRjX3JlYWRfaW9jdGwocnRjX2ZkLCAmc3RhcnRfdGltZSk7CisgIGlmIChyYykKKyAgICByZXR1cm4gMTsKKworICAvKiBXYWl0IGZvciBjaGFuZ2UuICBTaG91bGQgYmUgd2l0aGluIGEgc2Vjb25kLCBidXQgaW4gY2FzZSBzb21ldGhpbmcKKyAgICogd2VpcmQgaGFwcGVucywgd2UgaGF2ZSBhIHRpbWUgbGltaXQgKDEuNXMpIG9uIHRoaXMgbG9vcCB0byByZWR1Y2UgdGhlCisgICAqIGltcGFjdCBvZiB0aGlzIGZhaWx1cmUuCisgICAqLworICBnZXR0aW1lb2ZkYXkoJmJlZ2luLCBOVUxMKTsKKyAgZG8geworICAgIHJjID0gZG9fcnRjX3JlYWRfaW9jdGwocnRjX2ZkLCAmbm93dGltZSk7CisgICAgaWYgKHJjIHx8IHN0YXJ0X3RpbWUudG1fc2VjICE9IG5vd3RpbWUudG1fc2VjKQorICAgICAgYnJlYWs7CisgICAgZ2V0dGltZW9mZGF5KCZub3csIE5VTEwpOworICAgIGlmICh0aW1lX2RpZmYobm93LCBiZWdpbikgPiAxLjUpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCBfKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iKSk7CisgICAgICByZXR1cm4gMjsKKyAgICB9CisgIH0gd2hpbGUoMSk7CisKKyAgaWYgKHJjKQorICAgIHJldHVybiAzOworICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorc3luY2hyb25pemVfdG9fY2xvY2tfdGlja19ydGModm9pZCkgeworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNhbWUgYXMgc3luY2hyb25pemVfdG9fY2xvY2tfdGljaygpLCBidXQganVzdCBmb3IgL2Rldi9ydGMuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitpbnQgcnRjX2ZkOyAgLyogRmlsZSBkZXNjcmlwdG9yIG9mIC9kZXYvcnRjICovCitpbnQgcmV0OworCisgIHJ0Y19mZCA9IG9wZW5fcnRjKCk7CisgIGlmIChydGNfZmQgPT0gLTEpIHsKKyAgICBvdXRzeXNlcnIoXygib3BlbigpIG9mICVzIGZhaWxlZCIpLCBydGNfZGV2X25hbWUpOworICAgIHJldCA9IDE7CisgIH0gZWxzZSB7CisgICAgaW50IHJjOyAgLyogUmV0dXJuIGNvZGUgZnJvbSBpb2N0bCAqLworICAgIC8qIFR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgKG9uZSBwZXIgc2Vjb25kKSAqLworI2lmIGRlZmluZWQoX19hbHBoYV9fKSB8fCBkZWZpbmVkKF9fc3BhcmNfXykKKyAgICAvKiBOb3QgYWxsIGFscGhhIGtlcm5lbHMgcmVqZWN0IFJUQ19VSUVfT04sIGJ1dCBwcm9iYWJseSB0aGV5IHNob3VsZC4gKi8KKyAgICByYyA9IC0xOworICAgIGVycm5vID0gRUlOVkFMOworI2Vsc2UKKyAgICByYyA9IGlvY3RsKHJ0Y19mZCwgUlRDX1VJRV9PTiwgMCk7CisjZW5kaWYKKyAgICBpZiAocmMgPT0gLTEgJiYgKGVycm5vID09IEVOT1RUWSB8fCBlcnJubyA9PSBFSU5WQUwpKSB7CisgICAgICAvKiBUaGlzIHJ0YyBkZXZpY2UgZG9lc24ndCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICBUaGlzIGlzIHR5cGljYWwKKyAgICAgICAgIG9uIGFuIEFscGhhLCB3aGVyZSB0aGUgSGFyZHdhcmUgQ2xvY2sgaW50ZXJydXB0cyBhcmUgdXNlZCBieSB0aGUKKyAgICAgICAgIGtlcm5lbCBmb3IgdGhlIHN5c3RlbSBjbG9jaywgc28gYXJlbid0IGF0IHRoZSB1c2VyJ3MgZGlzcG9zYWwuCisgICAgICAgICAqLworICAgICAgaWYgKGRlYnVnKQorCSAgICAgIHByaW50ZihfKCIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIpLAorCQkgICAgIHJ0Y19kZXZfbmFtZSk7CisgICAgICByZXQgPSBidXN5d2FpdF9mb3JfcnRjX2Nsb2NrX3RpY2socnRjX2ZkKTsKKyAgICB9IGVsc2UgaWYgKHJjID09IDApIHsKKyNpZmRlZiBXYWl0X3VudGlsX3VwZGF0ZV9pbnRlcnJ1cHQKKyAgICAgIHVuc2lnbmVkIGxvbmcgZHVtbXk7CisKKyAgICAgIC8qIHRoaXMgYmxvY2tzIHVudGlsIHRoZSBuZXh0IHVwZGF0ZSBpbnRlcnJ1cHQgKi8KKyAgICAgIHJjID0gcmVhZChydGNfZmQsICZkdW1teSwgc2l6ZW9mKGR1bW15KSk7CisgICAgICByZXQgPSAxOworICAgICAgaWYgKHJjID09IC0xKQorICAgICAgICBvdXRzeXNlcnIoXygicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIiksCisJCSAgcnRjX2Rldl9uYW1lKTsKKyAgICAgIGVsc2UKKyAgICAgICAgcmV0ID0gMDsKKyNlbHNlCisgICAgICAvKiBKdXN0IHJlYWRpbmcgcnRjX2ZkIGZhaWxzIG9uIGJyb2tlbiBoYXJkd2FyZTogbm8gdXBkYXRlCisJIGludGVycnVwdCBjb21lcyBhbmQgYSBib290c2NyaXB0IHdpdGggYSBod2Nsb2NrIGNhbGwgaGFuZ3MgKi8KKyAgICAgIGZkX3NldCByZmRzOworICAgICAgc3RydWN0IHRpbWV2YWwgdHY7CisKKyAgICAgIC8qIFdhaXQgdXAgdG8gZml2ZSBzZWNvbmRzIGZvciB0aGUgbmV4dCB1cGRhdGUgaW50ZXJydXB0ICovCisgICAgICBGRF9aRVJPKCZyZmRzKTsKKyAgICAgIEZEX1NFVChydGNfZmQsICZyZmRzKTsKKyAgICAgIHR2LnR2X3NlYyA9IDU7CisgICAgICB0di50dl91c2VjID0gMDsKKyAgICAgIHJjID0gc2VsZWN0KHJ0Y19mZCArIDEsICZyZmRzLCBOVUxMLCBOVUxMLCAmdHYpOworICAgICAgcmV0ID0gMTsKKyAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAgICAgb3V0c3lzZXJyKF8oInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIiksCisJCSAgcnRjX2Rldl9uYW1lKTsKKyAgICAgIGVsc2UgaWYgKHJjID09IDApCisJZnByaW50ZihzdGRlcnIsIF8oInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgdGltZWQgb3V0XG4iKSwKKwkJCSAgcnRjX2Rldl9uYW1lKTsKKyAgICAgIGVsc2UKKyAgICAgICAgcmV0ID0gMDsKKyNlbmRpZgorCisgICAgICAvKiBUdXJuIG9mZiB1cGRhdGUgaW50ZXJydXB0cyAqLworICAgICAgcmMgPSBpb2N0bChydGNfZmQsIFJUQ19VSUVfT0ZGLCAwKTsKKyAgICAgIGlmIChyYyA9PSAtMSkKKyAgICAgICAgb3V0c3lzZXJyKF8oImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIiksCisJCSAgcnRjX2Rldl9uYW1lKTsKKyAgICB9IGVsc2UgeworICAgICAgb3V0c3lzZXJyKF8oImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvbiB1cGRhdGUgaW50ZXJydXB0cyAiCisJCSJmYWlsZWQgdW5leHBlY3RlZGx5IiksIHJ0Y19kZXZfbmFtZSk7CisgICAgICByZXQgPSAxOworICAgIH0KKyAgfQorICByZXR1cm4gcmV0OworfQorCisKK3N0YXRpYyBpbnQKK3JlYWRfaGFyZHdhcmVfY2xvY2tfcnRjKHN0cnVjdCB0bSAqdG0pIHsKKwlpbnQgcnRjX2ZkLCByYzsKKworCXJ0Y19mZCA9IG9wZW5fcnRjX29yX2V4aXQoKTsKKworCS8qIFJlYWQgdGhlIFJUQyB0aW1lL2RhdGUsIHJldHVybiBhbnN3ZXIgdmlhIHRtICovCisJcmMgPSBkb19ydGNfcmVhZF9pb2N0bChydGNfZmQsIHRtKTsKKworCXJldHVybiByYzsKK30KKworCitzdGF0aWMgaW50CitzZXRfaGFyZHdhcmVfY2xvY2tfcnRjKGNvbnN0IHN0cnVjdCB0bSAqbmV3X2Jyb2tlbl90aW1lKSB7CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU2V0IHRoZSBIYXJkd2FyZSBDbG9jayB0byB0aGUgYnJva2VuIGRvd24gdGltZSA8bmV3X2Jyb2tlbl90aW1lPi4KKyAgVXNlIGlvY3RscyB0byAicnRjIiBkZXZpY2UgL2Rldi9ydGMuCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCWludCByYyA9IC0xOworCWludCBydGNfZmQ7CisJY2hhciAqaW9jdGxuYW1lOworCisJcnRjX2ZkID0gb3Blbl9ydGNfb3JfZXhpdCgpOworCisjaWZkZWYgX19zcGFyY19fCisJeworCQlzdHJ1Y3Qgc3BhcmNfcnRjX3RpbWUgc3RtOworCisJCXN0bS5zZWMgPSBuZXdfYnJva2VuX3RpbWUtPnRtX3NlYzsKKwkJc3RtLm1pbiA9IG5ld19icm9rZW5fdGltZS0+dG1fbWluOworCQlzdG0uaG91ciA9IG5ld19icm9rZW5fdGltZS0+dG1faG91cjsKKwkJc3RtLmRvbSA9IG5ld19icm9rZW5fdGltZS0+dG1fbWRheTsKKwkJc3RtLm1vbnRoID0gbmV3X2Jyb2tlbl90aW1lLT50bV9tb24gKyAxOworCQlzdG0ueWVhciA9IG5ld19icm9rZW5fdGltZS0+dG1feWVhciArIDE5MDA7CisJCXN0bS5kb3cgPSBuZXdfYnJva2VuX3RpbWUtPnRtX3dkYXkgKyAxOworCisJCWlvY3RsbmFtZSA9ICJSVENTRVQiOworCQlyYyA9IGlvY3RsKHJ0Y19mZCwgUlRDU0VULCAmc3RtKTsKKwl9CisjZW5kaWYKKwlpZiAocmMgPT0gLTEpIHsJCS8qIG5vIHNwYXJjLCBvciBSVENTRVQgZmFpbGVkICovCisJCWlvY3RsbmFtZSA9ICJSVENfU0VUX1RJTUUiOworCQlyYyA9IGlvY3RsKHJ0Y19mZCwgUlRDX1NFVF9USU1FLCBuZXdfYnJva2VuX3RpbWUpOworCX0KKworCWlmIChyYyA9PSAtMSkgeworCQlwZXJyb3IoaW9jdGxuYW1lKTsKKwkJZnByaW50ZihzdGRlcnIsIF8oImlvY3RsKCkgdG8gJXMgdG8gc2V0IHRoZSB0aW1lIGZhaWxlZC5cbiIpLAorCQkJcnRjX2Rldl9uYW1lKTsKKwkJaHdjbG9ja19leGl0KEVYX0lPRVJSKTsKKwl9CisKKwlpZiAoZGVidWcpCisJCXByaW50ZihfKCJpb2N0bCglcykgd2FzIHN1Y2Nlc3NmdWwuXG4iKSwgaW9jdGxuYW1lKTsKKworCXJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQKK2dldF9wZXJtaXNzaW9uc19ydGModm9pZCkgeworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGNsb2NrX29wcyBydGMgPSB7CisJIi9kZXYgaW50ZXJmYWNlIHRvIGNsb2NrIiwKKwlnZXRfcGVybWlzc2lvbnNfcnRjLAorCXJlYWRfaGFyZHdhcmVfY2xvY2tfcnRjLAorCXNldF9oYXJkd2FyZV9jbG9ja19ydGMsCisJc3luY2hyb25pemVfdG9fY2xvY2tfdGlja19ydGMsCit9OworCisvKiByZXR1cm4gJnJ0YyBpZiAvZGV2L3J0YyBjYW4gYmUgb3BlbmVkLCBOVUxMIG90aGVyd2lzZSAqLworc3RydWN0IGNsb2NrX29wcyAqCitwcm9iZV9mb3JfcnRjX2Nsb2NrKCl7CisJaW50IHJ0Y19mZCA9IG9wZW5fcnRjKCk7CisJaWYgKHJ0Y19mZCA+PSAwKQorCQlyZXR1cm4gJnJ0YzsKKwlpZiAoZGVidWcpCisJCW91dHN5c2VycihfKCJPcGVuIG9mICVzIGZhaWxlZCIpLCBydGNfZGV2X25hbWUpOworCXJldHVybiBOVUxMOworfQorCisKKworaW50CitnZXRfZXBvY2hfcnRjKHVuc2lnbmVkIGxvbmcgKmVwb2NoX3AsIGludCBzaWxlbnQpIHsKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBHZXQgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIHNldHRpbmcgZnJvbSB0aGUga2VybmVsLgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgIGludCBydGNfZmQ7CisKKyAgcnRjX2ZkID0gb3Blbl9ydGMoKTsKKyAgaWYgKHJ0Y19mZCA8IDApIHsKKyAgICBpZiAoIXNpbGVudCkgeworICAgICAgaWYgKGVycm5vID09IEVOT0VOVCkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIF8oCisJCSJUbyBtYW5pcHVsYXRlIHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLCB3ZSBtdXN0ICIKKyAgICAgICAgICAgICAgICAiYWNjZXNzIHRoZSBMaW51eCAncnRjJyBkZXZpY2UgZHJpdmVyIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwgIgorICAgICAgICAgICAgICAgICJmaWxlICVzLiAgVGhpcyBmaWxlIGRvZXMgbm90IGV4aXN0IG9uIHRoaXMgc3lzdGVtLlxuIiksCisJCXJ0Y19kZXZfbmFtZSk7CisgICAgICBlbHNlCisgICAgICAgIG91dHN5c2VycihfKCJVbmFibGUgdG8gb3BlbiAlcyIpLCBydGNfZGV2X25hbWUpOworICAgIH0KKyAgICByZXR1cm4gMTsKKyAgfQorCisgIGlmIChpb2N0bChydGNfZmQsIFJUQ19FUE9DSF9SRUFELCBlcG9jaF9wKSA9PSAtMSkgeworICAgIGlmICghc2lsZW50KQorICAgICAgb3V0c3lzZXJyKF8oImlvY3RsKFJUQ19FUE9DSF9SRUFEKSB0byAlcyBmYWlsZWQiKSwgcnRjX2Rldl9uYW1lKTsKKyAgICByZXR1cm4gMTsKKyAgfQorCisgIGlmIChkZWJ1ZykKKwkgIHByaW50ZihfKCJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgIgorCQkgIndpdGggUlRDX0VQT0NIX1JFQUQgaW9jdGwuXG4iKSwgKmVwb2NoX3AsIHJ0Y19kZXZfbmFtZSk7CisKKyAgcmV0dXJuIDA7Cit9CisKKworCitpbnQKK3NldF9lcG9jaF9ydGModW5zaWduZWQgbG9uZyBlcG9jaCkgeworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNldCB0aGUgSGFyZHdhcmUgQ2xvY2sgZXBvY2ggaW4gdGhlIGtlcm5lbC4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICBpbnQgcnRjX2ZkOworCisgIGlmIChlcG9jaCA8IDE5MDApIHsKKyAgICAvKiBrZXJuZWwgd291bGQgbm90IGFjY2VwdCB0aGlzIGVwb2NoIHZhbHVlICovCisgICAgLyogSG1tIC0gYmFkIGhhYml0LCBkZWNpZGluZyBub3QgdG8gZG8gd2hhdCB0aGUgdXNlciBhc2tzCisgICAgICAganVzdCBiZWNhdXNlIG9uZSBiZWxpZXZlcyB0aGF0IHRoZSBrZXJuZWwgbWlnaHQgbm90IGxpa2UgaXQuICovCisgICAgZnByaW50ZihzdGRlcnIsIF8oIlRoZSBlcG9jaCB2YWx1ZSBtYXkgbm90IGJlIGxlc3MgdGhhbiAxOTAwLiAgIgorICAgICAgICAgICAgIllvdSByZXF1ZXN0ZWQgJWxkXG4iKSwgZXBvY2gpOworICAgIHJldHVybiAxOworICB9CisKKyAgcnRjX2ZkID0gb3Blbl9ydGMoKTsKKyAgaWYgKHJ0Y19mZCA8IDApIHsKKyAgICBpZiAoZXJybm8gPT0gRU5PRU5UKQorICAgICAgZnByaW50ZihzdGRlcnIsIF8oIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgIgorICAgICAgICAgICAgICAiYWNjZXNzIHRoZSBMaW51eCAncnRjJyBkZXZpY2UgZHJpdmVyIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwgIgorICAgICAgICAgICAgICAiZmlsZSAlcy4gIFRoaXMgZmlsZSBkb2VzIG5vdCBleGlzdCBvbiB0aGlzIHN5c3RlbS5cbiIpLAorCSAgICAgIHJ0Y19kZXZfbmFtZSk7CisgICAgZWxzZQorICAgICAgb3V0c3lzZXJyKF8oIlVuYWJsZSB0byBvcGVuICVzIiksIHJ0Y19kZXZfbmFtZSk7CisgICAgcmV0dXJuIDE7CisgIH0KKworICBpZiAoZGVidWcpCisgICAgcHJpbnRmKF8oInNldHRpbmcgZXBvY2ggdG8gJWxkICIKKwkgICAid2l0aCBSVENfRVBPQ0hfU0VUIGlvY3RsIHRvICVzLlxuIiksIGVwb2NoLCBydGNfZGV2X25hbWUpOworCisgIGlmIChpb2N0bChydGNfZmQsIFJUQ19FUE9DSF9TRVQsIGVwb2NoKSA9PSAtMSkgeworICAgIGlmIChlcnJubyA9PSBFSU5WQUwpCisgICAgICBmcHJpbnRmKHN0ZGVyciwgXygiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyAiCisJICAgICAgImRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iKSwgcnRjX2Rldl9uYW1lKTsKKyAgICBlbHNlCisgICAgICBvdXRzeXNlcnIoXygiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIiksIHJ0Y19kZXZfbmFtZSk7CisgICAgcmV0dXJuIDE7CisgIH0KKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvTWFrZWZpbGUuYW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyNWUzZDIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMjMgQEAKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorCitkaXN0X25vaW5zdF9IRUFERVJTID0gXAorCWMuaCBcCisJYml0b3BzLmggXAorCWJsa2Rldi5oIFwKKwljYW5vbmljYWxpemUuaCBcCisJY2FyZWZ1bHB1dGMuaCBcCisJZW52LmggXAorCWZzcHJvYmUuaCBcCisJaXNtb3VudGVkLmggXAorCWxpbnV4X3JlYm9vdC5oIFwKKwlsaW51eF92ZXJzaW9uLmggXAorCW1kNS5oIFwKKwlubHMuaCBcCisJcGF0aG5hbWVzLmggXAorCXNldHByb2N0aXRsZS5oIFwKKwlzd2FwaGVhZGVyLmggXAorCXVzbGVlcC5oIFwKKwl3aG9sZWRpc2suaCBcCisJd2lkZWNoYXIuaCBcCisJY3JjMzIuaCBcCisJeHN0cm5jcHkuaApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY2YzVmMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw1MDcgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKKworVlBBVEggPSBAc3JjZGlyQAorcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACitwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorRElTVF9DT01NT04gPSAkKGRpc3Rfbm9pbnN0X0RBVEEpICQoZGlzdF9ub2luc3RfSEVBREVSUykgXAorCSQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorCSQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK3N1YmRpciA9IGluY2x1ZGUKK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL200L2dldHRleHQubTQgXAorCSQodG9wX3NyY2RpcikvbTQvZ3RrLWRvYy5tNCAkKHRvcF9zcmNkaXIpL200L2ljb252Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1sZC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYi1saW5rLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1wcmVmaXgubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbmxzLm00ICQodG9wX3NyY2RpcikvbTQvcG8ubTQgXAorCSQodG9wX3NyY2RpcikvbTQvcHJvZ3Rlc3QubTQgJCh0b3Bfc3JjZGlyKS9tNC90bHMubTQgXAorCSQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oCitDT05GSUdfQ0xFQU5fRklMRVMgPQorQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK0FNX1ZfYXQgPSAkKGFtX192X2F0XyQoVikpCithbV9fdl9hdF8gPSAkKGFtX192X2F0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfYXRfMCA9IEAKK1NPVVJDRVMgPQorRElTVF9TT1VSQ0VTID0KK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitIRUFERVJTID0gJChkaXN0X25vaW5zdF9IRUFERVJTKQorRVRBR1MgPSBldGFncworQ1RBR1MgPSBjdGFncworRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKK0FDTE9DQUwgPSBAQUNMT0NBTEAKK0FNVEFSID0gQEFNVEFSQAorQU1fREVGQVVMVF9WRVJCT1NJVFkgPSBAQU1fREVGQVVMVF9WRVJCT1NJVFlACitBUiA9IEBBUkAKK0FVVE9DT05GID0gQEFVVE9DT05GQAorQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorQVVUT01BS0UgPSBAQVVUT01BS0VACitBV0sgPSBAQVdLQAorQkxLSURfQ0ZMQUdTID0gQEJMS0lEX0NGTEFHU0AKK0JMS0lEX0xJQlMgPSBAQkxLSURfTElCU0AKK0JMS0lEX0xJQlNfU1RBVElDID0gQEJMS0lEX0xJQlNfU1RBVElDQAorQ0MgPSBAQ0NACitDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorQ0ZMQUdTID0gQENGTEFHU0AKK0NQUCA9IEBDUFBACitDUFBGTEFHUyA9IEBDUFBGTEFHU0AKK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACitERUZTID0gQERFRlNACitERVBESVIgPSBAREVQRElSQAorRFNZTVVUSUwgPSBARFNZTVVUSUxACitEVU1QQklOID0gQERVTVBCSU5ACitFQ0hPX0MgPSBARUNIT19DQAorRUNIT19OID0gQEVDSE9fTkAKK0VDSE9fVCA9IEBFQ0hPX1RACitFR1JFUCA9IEBFR1JFUEAKK0VYRUVYVCA9IEBFWEVFWFRACitGR1JFUCA9IEBGR1JFUEAKK0dNU0dGTVQgPSBAR01TR0ZNVEAKK0dSRVAgPSBAR1JFUEAKK0dUS0RPQ19DSEVDSyA9IEBHVEtET0NfQ0hFQ0tACitIVE1MX0RJUiA9IEBIVE1MX0RJUkAKK0lOU1RBTEwgPSBASU5TVEFMTEAKK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACitJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACitJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorSU5UTExJQlMgPSBASU5UTExJQlNACitMRCA9IEBMREAKK0xERkxBR1MgPSBATERGTEFHU0AKK0xJQkJMS0lEX0RBVEUgPSBATElCQkxLSURfREFURUAKK0xJQkJMS0lEX1ZFUlNJT04gPSBATElCQkxLSURfVkVSU0lPTkAKK0xJQkJMS0lEX1ZFUlNJT05fSU5GTyA9IEBMSUJCTEtJRF9WRVJTSU9OX0lORk9ACitMSUJJQ09OViA9IEBMSUJJQ09OVkAKK0xJQklOVEwgPSBATElCSU5UTEAKK0xJQk9CSlMgPSBATElCT0JKU0AKK0xJQlMgPSBATElCU0AKK0xJQlRPT0wgPSBATElCVE9PTEAKK0xJQlVVSURfVkVSU0lPTiA9IEBMSUJVVUlEX1ZFUlNJT05ACitMSUJVVUlEX1ZFUlNJT05fSU5GTyA9IEBMSUJVVUlEX1ZFUlNJT05fSU5GT0AKK0xJUE8gPSBATElQT0AKK0xOX1MgPSBATE5fU0AKK0xUTElCSUNPTlYgPSBATFRMSUJJQ09OVkAKK0xUTElCSU5UTCA9IEBMVExJQklOVExACitMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorTUFLRUlORk8gPSBATUFLRUlORk9ACitNS0RJUl9QID0gQE1LRElSX1BACitNS0lOU1RBTExESVJTID0gQE1LSU5TVEFMTERJUlNACitNU0dGTVQgPSBATVNHRk1UQAorTVNHTUVSR0UgPSBATVNHTUVSR0VACitOQ1VSU0VTX0xJQlMgPSBATkNVUlNFU19MSUJTQAorTk0gPSBATk1ACitOTUVESVQgPSBATk1FRElUQAorT0JKRFVNUCA9IEBPQkpEVU1QQAorT0JKRVhUID0gQE9CSkVYVEAKK09UT09MID0gQE9UT09MQAorT1RPT0w2NCA9IEBPVE9PTDY0QAorUEFDS0FHRSA9IEBQQUNLQUdFQAorUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACitQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACitQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorUEVSTCA9IEBQRVJMQAorUEtHX0NPTkZJRyA9IEBQS0dfQ09ORklHQAorUE9TVUIgPSBAUE9TVUJACitSQU5MSUIgPSBAUkFOTElCQAorU0VEID0gQFNFREAKK1NFTElOVVhfTElCUyA9IEBTRUxJTlVYX0xJQlNACitTRUxJTlVYX0xJQlNfU1RBVElDID0gQFNFTElOVVhfTElCU19TVEFUSUNACitTRVRfTUFLRSA9IEBTRVRfTUFLRUAKK1NIRUxMID0gQFNIRUxMQAorU1RSSVAgPSBAU1RSSVBACitTVUlEX0NGTEFHUyA9IEBTVUlEX0NGTEFHU0AKK1NVSURfTERGTEFHUyA9IEBTVUlEX0xERkxBR1NACitVU0VfTkxTID0gQFVTRV9OTFNACitVVUlEX0NGTEFHUyA9IEBVVUlEX0NGTEFHU0AKK1VVSURfTElCUyA9IEBVVUlEX0xJQlNACitWRVJTSU9OID0gQFZFUlNJT05ACitYR0VUVEVYVCA9IEBYR0VUVEVYVEAKK1hTTFRQUk9DID0gQFhTTFRQUk9DQAorYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACithY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACithbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACithbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorYW1fX3RhciA9IEBhbV9fdGFyQAorYW1fX3VudGFyID0gQGFtX191bnRhckAKK2JpbmRpciA9IEBiaW5kaXJACitidWlsZCA9IEBidWlsZEAKK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKK2J1aWxkX29zID0gQGJ1aWxkX29zQAorYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorZGF0YWRpciA9IEBkYXRhZGlyQAorZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACitkb2NkaXIgPSBAZG9jZGlyQAorZHZpZGlyID0gQGR2aWRpckAKK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAoraG9zdCA9IEBob3N0QAoraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAoraG9zdF9jcHUgPSBAaG9zdF9jcHVACitob3N0X29zID0gQGhvc3Rfb3NACitob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKK2h0bWxkaXIgPSBAaHRtbGRpckAKK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKK2luZm9kaXIgPSBAaW5mb2RpckAKK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKK2xpYmRpciA9IEBsaWJkaXJACitsaWJkaXJuYW1lID0gQGxpYmRpcm5hbWVACitsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACitsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorbHRfRUNITyA9IEBsdF9FQ0hPQAorbWFuZGlyID0gQG1hbmRpckAKK21rZGlyX3AgPSBAbWtkaXJfcEAKK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKK3BkZmRpciA9IEBwZGZkaXJACitwcmVmaXggPSBAcHJlZml4QAorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorcHNkaXIgPSBAcHNkaXJACitzYmluZGlyID0gQHNiaW5kaXJACitzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKK3NyY2RpciA9IEBzcmNkaXJACitzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACit0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAordG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAordG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKK3VzcmJpbl9leGVjZGlyID0gQHVzcmJpbl9leGVjZGlyQAordXNybGliX2V4ZWNkaXIgPSBAdXNybGliX2V4ZWNkaXJACit1c3JzYmluX2V4ZWNkaXIgPSBAdXNyc2Jpbl9leGVjZGlyQAorQU1fQ1BQRkxBR1MgPSAtaW5jbHVkZSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmggLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgXAorCS1ETE9DQUxFRElSPVwiJChsb2NhbGVkaXIpXCIKKworQU1fQ0ZMQUdTID0gLWZzaWduZWQtY2hhcgorQU1fTERGTEFHUyA9IAorCisjIEF1dG9tYWtlIChhdCBsZWFzdCB1cCB0byAxLjEwKSBtaXNoYW5kbGVzIGRpc3RfbWFuX01BTlMgaW5zaWRlIGNvbmRpdGlvbmFscy4KKyMgVW5saWtlIHdpdGggb3RoZXIgZGlzdCBwcmltYXJpZXMsIHRoZSBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVkIGlmIHRoZQorIyBjb25kaXRpb25hbCBpcyBmYWxzZS4KKyMgV29yayB0aGUgYnVnIGFyb3VuZCB1bnRpbCBpdCBpcyBmaXhlZDoKK2Rpc3Rfbm9pbnN0X0RBVEEgPSAkKGRpc3RfbWFuX01BTlMpCisKKyMgUGF0aHMgdG8gaW4tdHJlZSBsaWJyYXJpZXMgKHVzZSB1bF8gcHJlZml4IHRvIGF2b2lkIHBvc3NpYmxlIGNvbGxpc2lvbnMpCisjCisjIGJsa2lkCit1bF9saWJibGtpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMvbGliYmxraWQubGEKKworIyBibGtpZC5oIGlzIGdlbmVyYXRlZCBieSAuL2NvbmZpZ3VyZSBzY3JpcHQgYW5kIHN0b3JlZCBpbiBidWlsZCBkaXJlY3RvcnkKK3VsX2xpYmJsa2lkX2luY2RpciA9ICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyMgdXVpZAordWxfbGlidXVpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjL2xpYnV1aWQubGEKK2Rpc3Rfbm9pbnN0X0hFQURFUlMgPSBcCisJYy5oIFwKKwliaXRvcHMuaCBcCisJYmxrZGV2LmggXAorCWNhbm9uaWNhbGl6ZS5oIFwKKwljYXJlZnVscHV0Yy5oIFwKKwllbnYuaCBcCisJZnNwcm9iZS5oIFwKKwlpc21vdW50ZWQuaCBcCisJbGludXhfcmVib290LmggXAorCWxpbnV4X3ZlcnNpb24uaCBcCisJbWQ1LmggXAorCW5scy5oIFwKKwlwYXRobmFtZXMuaCBcCisJc2V0cHJvY3RpdGxlLmggXAorCXN3YXBoZWFkZXIuaCBcCisJdXNsZWVwLmggXAorCXdob2xlZGlzay5oIFwKKwl3aWRlY2hhci5oIFwKKwljcmMzMi5oIFwKKwl4c3RybmNweS5oCisKK2FsbDogYWxsLWFtCisKKy5TVUZGSVhFUzoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiBpbmNsdWRlL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZm9yZWlnbiBpbmNsdWRlL01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKworbW9zdGx5Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgKi5sbworCitjbGVhbi1saWJ0b29sOgorCS1ybSAtcmYgLmxpYnMgX2xpYnMKKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChEQVRBKSAkKEhFQURFUlMpCitpbnN0YWxsZGlyczoKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06CisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisKK2luc3RhbGwtaW5mby1hbToKKworaW5zdGFsbC1tYW46CisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtYW0KKworcGRmLWFtOgorCitwczogcHMtYW0KKworcHMtYW06CisKK3VuaW5zdGFsbC1hbToKKworLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisJY2xlYW4tbGlidG9vbCBjdGFncyBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCisJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCBcCisJdW5pbnN0YWxsLWFtCisKKworJCh1bF9saWJibGtpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCiskKHVsX2xpYnV1aWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJ1dWlkX2J1aWxkZGlyKQorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2JpdG9wcy5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9iaXRvcHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjgzYjgzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9iaXRvcHMuaApAQCAtMCwwICsxLDg5IEBACisjaWZuZGVmIEJJVE9QU19ICisjZGVmaW5lIEJJVE9QU19ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxlbmRpYW4uaD4KKworLyoKKyAqIEJpdCBtYXAgcmVsYXRlZCBtYWNyb3MuIFVzdWFsbHkgcHJvdmlkZWQgYnkgbGliYy4KKyAqLworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorCisjaWZuZGVmIE5CQlkKKyMgZGVmaW5lIE5CQlkgICAgICAgICAgICBDSEFSX0JJVAorI2VuZGlmCisKKyNpZm5kZWYgc2V0Yml0CisjIGRlZmluZSBzZXRiaXQoYSxpKQkoKGEpWyhpKS9OQkJZXSB8PSAxPDwoKGkpJU5CQlkpKQorIyBkZWZpbmUgY2xyYml0KGEsaSkJKChhKVsoaSkvTkJCWV0gJj0gfigxPDwoKGkpJU5CQlkpKSkKKyMgZGVmaW5lIGlzc2V0KGEsaSkJKChhKVsoaSkvTkJCWV0gJiAoMTw8KChpKSVOQkJZKSkpCisjIGRlZmluZSBpc2NscihhLGkpCSgoKGEpWyhpKS9OQkJZXSAmICgxPDwoKGkpJU5CQlkpKSkgPT0gMCkKKyNlbmRpZgorCisjaWYgIWRlZmluZWQgX19CWVRFX09SREVSIHx8ICEoX19CWVRFX09SREVSID09IF9fTElUVExFX0VORElBTikgJiYgIShfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOKQorI2Vycm9yIG1pc3NpbmcgX19CWVRFX09SREVSCisjZW5kaWYKKworLyoKKyAqIEJ5dGUgc3dhYiBtYWNyb3MgKGJhc2VkIG9uIGxpbnV4L2J5dGVvcmRlci9zd2FiLmgpCisgKi8KKyNkZWZpbmUgc3dhYjE2KHgpIFwKKwkoKHVpbnQxNl90KSggXAorCQkoKCh1aW50MTZfdCkoeCkgJiAodWludDE2X3QpMHgwMGZmVSkgPDwgOCkgfCBcCisJCSgoKHVpbnQxNl90KSh4KSAmICh1aW50MTZfdCkweGZmMDBVKSA+PiA4KSApKQorCisjZGVmaW5lIHN3YWIzMih4KSBcCisJKCh1aW50MzJfdCkoIFwKKwkJKCgodWludDMyX3QpKHgpICYgKHVpbnQzMl90KTB4MDAwMDAwZmZVTCkgPDwgMjQpIHwgXAorCQkoKCh1aW50MzJfdCkoeCkgJiAodWludDMyX3QpMHgwMDAwZmYwMFVMKSA8PCAgOCkgfCBcCisJCSgoKHVpbnQzMl90KSh4KSAmICh1aW50MzJfdCkweDAwZmYwMDAwVUwpID4+ICA4KSB8IFwKKwkJKCgodWludDMyX3QpKHgpICYgKHVpbnQzMl90KTB4ZmYwMDAwMDBVTCkgPj4gMjQpICkpCisKKyNkZWZpbmUgc3dhYjY0KHgpIFwKKwkoKHVpbnQ2NF90KSggXAorCQkodWludDY0X3QpKCgodWludDY0X3QpKHgpICYgKHVpbnQ2NF90KTB4MDAwMDAwMDAwMDAwMDBmZlVMTCkgPDwgNTYpIHwgXAorCQkodWludDY0X3QpKCgodWludDY0X3QpKHgpICYgKHVpbnQ2NF90KTB4MDAwMDAwMDAwMDAwZmYwMFVMTCkgPDwgNDApIHwgXAorCQkodWludDY0X3QpKCgodWludDY0X3QpKHgpICYgKHVpbnQ2NF90KTB4MDAwMDAwMDAwMGZmMDAwMFVMTCkgPDwgMjQpIHwgXAorCQkodWludDY0X3QpKCgodWludDY0X3QpKHgpICYgKHVpbnQ2NF90KTB4MDAwMDAwMDBmZjAwMDAwMFVMTCkgPDwgIDgpIHwgXAorCSAgICAgICAgKHVpbnQ2NF90KSgoKHVpbnQ2NF90KSh4KSAmICh1aW50NjRfdCkweDAwMDAwMGZmMDAwMDAwMDBVTEwpID4+ICA4KSB8IFwKKwkJKHVpbnQ2NF90KSgoKHVpbnQ2NF90KSh4KSAmICh1aW50NjRfdCkweDAwMDBmZjAwMDAwMDAwMDBVTEwpID4+IDI0KSB8IFwKKwkJKHVpbnQ2NF90KSgoKHVpbnQ2NF90KSh4KSAmICh1aW50NjRfdCkweDAwZmYwMDAwMDAwMDAwMDBVTEwpID4+IDQwKSB8IFwKKwkJKHVpbnQ2NF90KSgoKHVpbnQ2NF90KSh4KSAmICh1aW50NjRfdCkweGZmMDAwMDAwMDAwMDAwMDBVTEwpID4+IDU2KSApKQorCisKKyNpZiAoX19CWVRFX09SREVSID09IF9fQklHX0VORElBTikKKworI2RlZmluZSBjcHVfdG9fbGUxNih4KSBzd2FiMTYoeCkKKyNkZWZpbmUgY3B1X3RvX2xlMzIoeCkgc3dhYjMyKHgpCisjZGVmaW5lIGNwdV90b19sZTY0KHgpIHN3YWI2NCh4KQorI2RlZmluZSBjcHVfdG9fYmUxNih4KSAoeCkKKyNkZWZpbmUgY3B1X3RvX2JlMzIoeCkgKHgpCisjZGVmaW5lIGNwdV90b19iZTY0KHgpICh4KQorCisjZGVmaW5lIGxlMTZfdG9fY3B1KHgpIHN3YWIxNih4KQorI2RlZmluZSBsZTMyX3RvX2NwdSh4KSBzd2FiMzIoeCkKKyNkZWZpbmUgbGU2NF90b19jcHUoeCkgc3dhYjY0KHgpCisjZGVmaW5lIGJlMTZfdG9fY3B1KHgpICh4KQorI2RlZmluZSBiZTMyX3RvX2NwdSh4KSAoeCkKKyNkZWZpbmUgYmU2NF90b19jcHUoeCkgKHgpCisKKyNlbHNlIC8qIF9fQllURV9PUkRFUiAhPSBfX0JJR19FTkRJQU4gKi8KKworI2RlZmluZSBjcHVfdG9fbGUxNih4KSAoeCkKKyNkZWZpbmUgY3B1X3RvX2xlMzIoeCkgKHgpCisjZGVmaW5lIGNwdV90b19sZTY0KHgpICh4KQorI2RlZmluZSBjcHVfdG9fYmUxNih4KSBzd2FiMTYoeCkKKyNkZWZpbmUgY3B1X3RvX2JlMzIoeCkgc3dhYjMyKHgpCisjZGVmaW5lIGNwdV90b19iZTY0KHgpIHN3YWI2NCh4KQorCisjZGVmaW5lIGxlMTZfdG9fY3B1KHgpICh4KQorI2RlZmluZSBsZTMyX3RvX2NwdSh4KSAoeCkKKyNkZWZpbmUgbGU2NF90b19jcHUoeCkgKHgpCisjZGVmaW5lIGJlMTZfdG9fY3B1KHgpIHN3YWIxNih4KQorI2RlZmluZSBiZTMyX3RvX2NwdSh4KSBzd2FiMzIoeCkKKyNkZWZpbmUgYmU2NF90b19jcHUoeCkgc3dhYjY0KHgpCisKKyNlbmRpZiAvKiBfX0JZVEVfT1JERVIgKi8KKworI2VuZGlmIC8qIEJJVE9QU19IICovCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvYmxrZGV2LmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2Jsa2Rldi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YTljMWYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2Jsa2Rldi5oCkBAIC0wLDAgKzEsNzEgQEAKKyNpZm5kZWYgQkxLREVWX0gKKyNkZWZpbmUgQkxLREVWX0gKKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNkZWZpbmUgREVGQVVMVF9TRUNUT1JfU0laRSAgICAgICA1MTIKKworLyogb3BlbigpIHJldHJpZXMgd2hlbiBlcnJubyBpcyBFTk9NRURJVU0gKi8KKyNkZWZpbmUgQ1JET01fTk9NRURJVU1fUkVUUklFUyAgICA1CisKKyNpZiAhZGVmaW5lZChCTEtST1NFVCkgJiYgZGVmaW5lZChfX2xpbnV4X18pCisKKyNkZWZpbmUgQkxLUk9TRVQgICBfSU8oMHgxMiw5MykJLyogc2V0IGRldmljZSByZWFkLW9ubHkgKDAgPSByZWFkLXdyaXRlKSAqLworI2RlZmluZSBCTEtST0dFVCAgIF9JTygweDEyLDk0KQkvKiBnZXQgcmVhZC1vbmx5IHN0YXR1cyAoMCA9IHJlYWRfd3JpdGUpICovCisjZGVmaW5lIEJMS1JSUEFSVCAgX0lPKDB4MTIsOTUpCS8qIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlICovCisjZGVmaW5lIEJMS0dFVFNJWkUgX0lPKDB4MTIsOTYpCS8qIHJldHVybiBkZXZpY2Ugc2l6ZSAvNTEyIChsb25nICphcmcpICovCisjZGVmaW5lIEJMS0ZMU0JVRiAgX0lPKDB4MTIsOTcpCS8qIGZsdXNoIGJ1ZmZlciBjYWNoZSAqLworI2RlZmluZSBCTEtSQVNFVCAgIF9JTygweDEyLDk4KQkvKiBzZXQgcmVhZCBhaGVhZCBmb3IgYmxvY2sgZGV2aWNlICovCisjZGVmaW5lIEJMS1JBR0VUICAgX0lPKDB4MTIsOTkpCS8qIGdldCBjdXJyZW50IHJlYWQgYWhlYWQgc2V0dGluZyAqLworI2RlZmluZSBCTEtGUkFTRVQgIF9JTygweDEyLDEwMCkvKiBzZXQgZmlsZXN5c3RlbSAobW0vZmlsZW1hcC5jKSByZWFkLWFoZWFkICovCisjZGVmaW5lIEJMS0ZSQUdFVCAgX0lPKDB4MTIsMTAxKS8qIGdldCBmaWxlc3lzdGVtIChtbS9maWxlbWFwLmMpIHJlYWQtYWhlYWQgKi8KKyNkZWZpbmUgQkxLU0VDVFNFVCBfSU8oMHgxMiwxMDIpLyogc2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IChsbF9yd19ibGsuYykgKi8KKyNkZWZpbmUgQkxLU0VDVEdFVCBfSU8oMHgxMiwxMDMpLyogZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IChsbF9yd19ibGsuYykgKi8KKyNkZWZpbmUgQkxLU1NaR0VUICBfSU8oMHgxMiwxMDQpLyogZ2V0IGJsb2NrIGRldmljZSBzZWN0b3Igc2l6ZSAqLworCisvKiBpb2N0bHMgaW50cm9kdWNlZCBpbiAyLjIuMTYsIHJlbW92ZWQgaW4gMi41LjU4ICovCisjZGVmaW5lIEJMS0VMVkdFVCAgX0lPUigweDEyLDEwNixzaXplX3QpIC8qIGVsZXZhdG9yIGdldCAqLworI2RlZmluZSBCTEtFTFZTRVQgIF9JT1coMHgxMiwxMDcsc2l6ZV90KSAvKiBlbGV2YXRvciBzZXQgKi8KKworI2RlZmluZSBCTEtCU1pHRVQgIF9JT1IoMHgxMiwxMTIsc2l6ZV90KQorI2RlZmluZSBCTEtCU1pTRVQgIF9JT1coMHgxMiwxMTMsc2l6ZV90KQorI2RlZmluZSBCTEtHRVRTSVpFNjQgX0lPUigweDEyLDExNCxzaXplX3QpIC8qIHJldHVybiBkZXZpY2Ugc2l6ZSBpbiBieXRlcyAodTY0ICphcmcpICovCisKKyNlbmRpZiAvKiBCTEtST1NFVCAqLworCisvKiBibG9jayBkZXZpY2UgdG9wb2xvZ3kgaW9jdGxzLCBpbnRyb2R1Y2VkIGluIDIuNi4zMiAqLworI2lmbmRlZiBCTEtJT01JTgorI2RlZmluZSBCTEtJT01JTiAgIF9JTygweDEyLDEyMCkKKyNkZWZpbmUgQkxLSU9PUFQgICBfSU8oMHgxMiwxMjEpCisjZGVmaW5lIEJMS0FMSUdOT0ZGIF9JTygweDEyLDEyMikKKyNkZWZpbmUgQkxLUEJTWkdFVCBfSU8oMHgxMiwxMjMpCisjZW5kaWYKKworI2lmbmRlZiBIRElPX0dFVEdFTworIyBpZmRlZiBfX2xpbnV4X18KKyMgIGRlZmluZSBIRElPX0dFVEdFTyAweDAzMDEKKyMgZW5kaWYKK3N0cnVjdCBoZF9nZW9tZXRyeSB7CisJdW5zaWduZWQgY2hhciBoZWFkczsKKwl1bnNpZ25lZCBjaGFyIHNlY3RvcnM7CisJdW5zaWduZWQgc2hvcnQgY3lsaW5kZXJzOwkvKiB0cnVuY2F0ZWQgKi8KKwl1bnNpZ25lZCBsb25nIHN0YXJ0OworfTsKKyNlbmRpZgorCisvKiBEZXRlcm1pbmUgc2l6ZSBpbiBieXRlcyAqLworb2ZmX3QgYmxrZGV2X2ZpbmRfc2l6ZSAoaW50IGZkKTsKKworLyogZ2V0IHNpemUgaW4gYnl0ZXMgKi8KK2ludCBibGtkZXZfZ2V0X3NpemUoaW50IGZkLCB1bnNpZ25lZCBsb25nIGxvbmcgKmJ5dGVzKTsKKworLyogZ2V0IDUxMi1ieXRlIHNlY3RvciBjb3VudCAqLworaW50IGJsa2Rldl9nZXRfc2VjdG9ycyhpbnQgZmQsIHVuc2lnbmVkIGxvbmcgbG9uZyAqc2VjdG9ycyk7CisKKy8qIGdldCBoYXJkd2FyZSBzZWN0b3Igc2l6ZSAqLworaW50IGJsa2Rldl9nZXRfc2VjdG9yX3NpemUoaW50IGZkLCBpbnQgKnNlY3Rvcl9zaXplKTsKKworI2VuZGlmIC8qIEJMS0RFVl9IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2MuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3N2I4YTgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2MuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogRnVuZGFtZW50YWwgQyBkZWZpbml0aW9ucy4KKyAqLworCisjaWZuZGVmIFVUSUxfTElOVVhfQ19ICisjZGVmaW5lIFVUSUxfTElOVVhfQ19ICisKKyNpbmNsdWRlIDxsaW1pdHMuaD4KKworLyoKKyAqIENvbXBpbGVyIHNwZWNpZmljIHN0dWZmCisgKi8KKyNpZmRlZiBfX0dOVUNfXworCisvKiAmYVswXSBkZWdyYWRlcyB0byBhIHBvaW50ZXI6IGEgZGlmZmVyZW50IHR5cGUgZnJvbSBhbiBhcnJheSAqLworIyBkZWZpbmUgX19tdXN0X2JlX2FycmF5KGEpIFwKKwlCVUlMRF9CVUdfT05fWkVSTyhfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZihhKSwgdHlwZW9mKCZhWzBdKSkpCisKKyNlbHNlIC8qICFfX0dOVUNfXyAqLworIyBkZWZpbmUgX19tdXN0X2JlX2FycmF5KGEpCTAKKyMgZGVmaW5lIF9fYXR0cmlidXRlX18oX2FyZ18pCisjZW5kaWYgLyogIV9fR05VQ19fICovCisKKworLyogRm9yY2UgYSBjb21waWxhdGlvbiBlcnJvciBpZiBjb25kaXRpb24gaXMgdHJ1ZSwgYnV0IGFsc28gcHJvZHVjZSBhCisgKiByZXN1bHQgKG9mIHZhbHVlIDAgYW5kIHR5cGUgc2l6ZV90KSwgc28gdGhlIGV4cHJlc3Npb24gY2FuIGJlIHVzZWQKKyAqIGUuZy4gaW4gYSBzdHJ1Y3R1cmUgaW5pdGlhbGl6ZXIgKG9yIHdoZXJlLWV2ZXIgZWxzZSBjb21tYSBleHByZXNzaW9ucworICogYXJlbid0IHBlcm1pdHRlZCkuCisgKi8KKyNkZWZpbmUgQlVJTERfQlVHX09OX1pFUk8oZSkgKHNpemVvZihzdHJ1Y3QgeyBpbnQ6LSEhKGUpOyB9KSkKKyNkZWZpbmUgQlVJTERfQlVHX09OX05VTEwoZSkgKCh2b2lkICopc2l6ZW9mKHN0cnVjdCB7IGludDotISEoZSk7IH0pKQorCisjaWZuZGVmIEFSUkFZX1NJWkUKKyMgZGVmaW5lIEFSUkFZX1NJWkUoYXJyKSAoc2l6ZW9mKGFycikgLyBzaXplb2YoKGFycilbMF0pICsgX19tdXN0X2JlX2FycmF5KGFycikpCisjZW5kaWYKKworI2lmbmRlZiBQQVRIX01BWAorIyBkZWZpbmUgUEFUSF9NQVggNDA5NgorI2VuZGlmCisKKyNpZm5kZWYgVFJVRQorIyBkZWZpbmUgVFJVRSAxCisjZW5kaWYKKworI2lmbmRlZiBGQUxTRQorIyBkZWZpbmUgRkFMU0UgMAorI2VuZGlmCisKKyNpZm5kZWYgbWluCisjIGRlZmluZSBtaW4oeCwgeSkgKHsJCQkJXAorCXR5cGVvZih4KSBfbWluMSA9ICh4KTsJCQlcCisJdHlwZW9mKHkpIF9taW4yID0gKHkpOwkJCVwKKwkodm9pZCkgKCZfbWluMSA9PSAmX21pbjIpOwkJXAorCV9taW4xIDwgX21pbjIgPyBfbWluMSA6IF9taW4yOyB9KQorI2VuZGlmCisKKyNpZm5kZWYgbWF4CisjIGRlZmluZSBtYXgoeCwgeSkgKHsJCQkJXAorCXR5cGVvZih4KSBfbWF4MSA9ICh4KTsJCQlcCisJdHlwZW9mKHkpIF9tYXgyID0gKHkpOwkJCVwKKwkodm9pZCkgKCZfbWF4MSA9PSAmX21heDIpOwkJXAorCV9tYXgxID4gX21heDIgPyBfbWF4MSA6IF9tYXgyOyB9KQorI2VuZGlmCisKKyNlbmRpZiAvKiBVVElMX0xJTlVYX0NfSCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9jYW5vbmljYWxpemUuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvY2Fub25pY2FsaXplLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI2ZGYxOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvY2Fub25pY2FsaXplLmgKQEAgLTAsMCArMSw5IEBACisjaWZuZGVmIENBTk9OSUNBTElaRV9ICisjZGVmaW5lIENBTk9OSUNBTElaRV9ICisKKyNpbmNsdWRlICJjLmgiCS8qIGZvciBQQVRIX01BWCAqLworCitleHRlcm4gY2hhciAqY2Fub25pY2FsaXplX3BhdGgoY29uc3QgY2hhciAqcGF0aCk7CitleHRlcm4gY2hhciAqY2Fub25pY2FsaXplX2RtX25hbWUoY29uc3QgY2hhciAqcHRuYW1lKTsKKworI2VuZGlmIC8qIENBTk9OSUNBTElaRV9IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2NhcmVmdWxwdXRjLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2NhcmVmdWxwdXRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ4NTdlYgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvY2FyZWZ1bHB1dGMuaApAQCAtMCwwICsxLDI5IEBACisjaWZuZGVmIF9DQVJFRlVVTFBVVENfSAorI2RlZmluZSBfQ0FSRUZVVUxQVVRDX0gKKworLyogcHV0YygpIGZvciB1c2UgaW4gd3JpdGUgYW5kIHdhbGwgKHRoYXQgc29tZXRpbWVzIGFyZSBzZ2lkIHR0eSkgKi8KKy8qIEF2b2lkIGNvbnRyb2wgY2hhcmFjdGVycyBpbiBvdXIgbG9jYWxlLCBhbmQgYWxzbyBBU0NJSSBjb250cm9sIGNoYXJhY3RlcnMuCisgICBOb3RlIHRoYXQgdGhlIGxvY2FsZSBvZiB0aGUgcmVjaXBpZW50IGlzIHVua25vd24uICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorCisjZGVmaW5lIGlzbzg4NTl4X2lzY250cmwoYykgXAorCSgoKGMpICYgMHg3ZikgPCAweDIwIHx8IChjKSA9PSAweDdmKQorCitzdGF0aWMgaW5saW5lIGludCBjYXJlZnVscHV0YyhpbnQgYywgRklMRSAqZnApIHsKKwlpbnQgcmV0OworCisJaWYgKGMgPT0gJ1wwMDcnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdccicgfHwgYyA9PSAnXG4nIHx8CisJICAgICghaXNvODg1OXhfaXNjbnRybChjKSAmJiAoaXNwcmludChjKSB8fCBpc3NwYWNlKGMpKSkpCisJCXJldCA9IHB1dGMoYywgZnApOworCWVsc2UgaWYgKChjICYgMHg4MCkgfHwgIWlzcHJpbnQoY14weDQwKSkKKwkJcmV0ID0gZnByaW50ZihmcCwgIlxcJTNvIiwgKHVuc2lnbmVkIGNoYXIpIGMpOworCWVsc2UgeworCQlyZXQgPSBwdXRjKCdeJywgZnApOworCQlpZiAocmV0ICE9IEVPRikKKwkJCXJldCA9IHB1dGMoY14weDQwLCBmcCk7CisJfQorCXJldHVybiAocmV0IDwgMCkgPyBFT0YgOiAwOworfQorCisjZW5kaWYgIC8qICBfQ0FSRUZVVUxQVVRDX0ggICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2NyYzMyLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2NyYzMyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ1NGJlOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvY3JjMzIuaApAQCAtMCwwICsxLDkgQEAKKyNpZm5kZWYgVUxfTkdfQ1JDMzJfSAorI2RlZmluZSBVTF9OR19DUkMzMl9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworZXh0ZXJuIHVpbnQzMl90IGNyYzMyKHVpbnQzMl90IHNlZWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbik7CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2Vudi5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9lbnYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjliNGYyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9lbnYuaApAQCAtMCwwICsxLDIgQEAKK2V4dGVybiB2b2lkIHNhbml0aXplX2VudiAodm9pZCk7CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvZnNwcm9iZS5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9mc3Byb2JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA3ZWI2NAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvZnNwcm9iZS5oCkBAIC0wLDAgKzEsMjQgQEAKKyNpZm5kZWYgRlNQUk9CRV9ICisjZGVmaW5lIEZTUFJPQkVfSAorLyoKKyAqIFRoaXMgaXMgdGhlIGdlbmVyaWMgaW50ZXJmYWNlIGZvciBmaWxlc3lzdGVtIGd1ZXNzaW5nIGxpYnJhcmllcy4KKyAqIEltcGxlbWVudGF0aW9ucyBhcmUgcHJvdmlkZWQgYnkKKyAqLworZXh0ZXJuIHZvaWQgZnNwcm9iZV9pbml0KHZvaWQpOworZXh0ZXJuIHZvaWQgZnNwcm9iZV9leGl0KHZvaWQpOworCitleHRlcm4gaW50IGZzcHJvYmVfcGFyc2Vfc3BlYyhjb25zdCBjaGFyICpzcGVjLCBjaGFyICoqbmFtZSwgY2hhciAqKnZhbHVlKTsKKworLyogYWxsIHJvdXRpbmVzIHJldHVybiBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nICovCitleHRlcm4gY2hhciAqZnNwcm9iZV9nZXRfZGV2bmFtZV9ieV91dWlkKGNvbnN0IGNoYXIgKnV1aWQpOworZXh0ZXJuIGNoYXIgKmZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfbGFiZWwoY29uc3QgY2hhciAqbGFiZWwpOworZXh0ZXJuIGNoYXIgKmZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfc3BlYyhjb25zdCBjaGFyICpzcGVjKTsKKworZXh0ZXJuIGNoYXIgKmZzcHJvYmVfZ2V0X2xhYmVsX2J5X2Rldm5hbWUoY29uc3QgY2hhciAqZGV2bmFtZSk7CitleHRlcm4gY2hhciAqZnNwcm9iZV9nZXRfdXVpZF9ieV9kZXZuYW1lKGNvbnN0IGNoYXIgKmRldm5hbWUpOworZXh0ZXJuIGNoYXIgKmZzcHJvYmVfZ2V0X2ZzdHlwZV9ieV9kZXZuYW1lKGNvbnN0IGNoYXIgKmRldm5hbWUpOworCisKK2V4dGVybiBpbnQgZnNwcm9iZV9rbm93bl9mc3R5cGUoY29uc3QgY2hhciAqZnN0eXBlKTsKKworI2VuZGlmIC8qIEZTUFJPQkVfSCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9pc21vdW50ZWQuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvaXNtb3VudGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc5MThjYgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvaXNtb3VudGVkLmgKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBJU19NT1VOVEVEX0gKKyNkZWZpbmUgSVNfTU9VTlRFRF9ICisKKyNkZWZpbmUgTUZfTU9VTlRFRAkxCisjZGVmaW5lIE1GX0lTUk9PVAkyCisjZGVmaW5lIE1GX1JFQURPTkxZCTQKKyNkZWZpbmUgTUZfU1dBUAkJOAorI2RlZmluZSBNRl9CVVNZCQkxNgorCitleHRlcm4gaW50IGlzX21vdW50ZWQoY29uc3QgY2hhciAqZmlsZSk7CitleHRlcm4gaW50IGNoZWNrX21vdW50X3BvaW50KGNvbnN0IGNoYXIgKmRldmljZSwgaW50ICptb3VudF9mbGFncywKKwkJCQkgY2hhciAqbXRwdCwgaW50IG10bGVuKTsKKworI2VuZGlmIC8qIElTX01PVU5URURfSCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9saW51eF9yZWJvb3QuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvbGludXhfcmVib290LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNlYmM2NwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvbGludXhfcmVib290LmgKQEAgLTAsMCArMSw3MiBAQAorI2lmbmRlZiBfTElOVVhfUkVCT09UX0gKKyNkZWZpbmUgX0xJTlVYX1JFQk9PVF9ICisKKy8qCisgKiBNYWdpYyB2YWx1ZXMgcmVxdWlyZWQgdG8gdXNlIF9yZWJvb3QoKSBzeXN0ZW0gY2FsbC4KKyAqLworCisjZGVmaW5lCUxJTlVYX1JFQk9PVF9NQUdJQzEJMHhmZWUxZGVhZAorI2RlZmluZQlMSU5VWF9SRUJPT1RfTUFHSUMyCTY3MjI3NDc5MworI2RlZmluZQlMSU5VWF9SRUJPT1RfTUFHSUMyQQk4NTA3MjI3OAorI2RlZmluZQlMSU5VWF9SRUJPT1RfTUFHSUMyQgkzNjkzNjc0NDgKKworCisvKgorICogQ29tbWFuZHMgYWNjZXB0ZWQgYnkgdGhlIF9yZWJvb3QoKSBzeXN0ZW0gY2FsbC4KKyAqCisgKiBSRVNUQVJUICAgICBSZXN0YXJ0IHN5c3RlbSB1c2luZyBkZWZhdWx0IGNvbW1hbmQgYW5kIG1vZGUuCisgKiBIQUxUICAgICAgICBTdG9wIE9TIGFuZCBnaXZlIHN5c3RlbSBjb250cm9sIHRvIFJPTSBtb25pdG9yLCBpZiBhbnkuCisgKiBDQURfT04gICAgICBDdHJsLUFsdC1EZWwgc2VxdWVuY2UgY2F1c2VzIFJFU1RBUlQgY29tbWFuZC4KKyAqIENBRF9PRkYgICAgIEN0cmwtQWx0LURlbCBzZXF1ZW5jZSBzZW5kcyBTSUdJTlQgdG8gaW5pdCB0YXNrLgorICogUE9XRVJfT0ZGICAgU3RvcCBPUyBhbmQgcmVtb3ZlIGFsbCBwb3dlciBmcm9tIHN5c3RlbSwgaWYgcG9zc2libGUuCisgKiBSRVNUQVJUMiAgICBSZXN0YXJ0IHN5c3RlbSB1c2luZyBnaXZlbiBjb21tYW5kIHN0cmluZy4KKyAqLworCisjZGVmaW5lCUxJTlVYX1JFQk9PVF9DTURfUkVTVEFSVAkweDAxMjM0NTY3CisjZGVmaW5lCUxJTlVYX1JFQk9PVF9DTURfSEFMVAkJMHhDREVGMDEyMworI2RlZmluZQlMSU5VWF9SRUJPT1RfQ01EX0NBRF9PTgkJMHg4OUFCQ0RFRgorI2RlZmluZQlMSU5VWF9SRUJPT1RfQ01EX0NBRF9PRkYJMHgwMDAwMDAwMAorI2RlZmluZQlMSU5VWF9SRUJPT1RfQ01EX1BPV0VSX09GRgkweDQzMjFGRURDCisjZGVmaW5lCUxJTlVYX1JFQk9PVF9DTURfUkVTVEFSVDIJMHhBMUIyQzNENAorCisvKiBJbmNsdWRpbmcgPHVuaXN0ZC5oPiBtYWtlcyBzdXJlIHRoYXQgb24gYSBnbGliYyBzeXN0ZW0KKyAgIDxmZWF0dXJlcy5oPiBpcyBpbmNsdWRlZCwgd2hpY2ggYWdhaW4gZGVmaW5lcyBfX0dMSUJDX18gKi8KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlICJsaW51eF9yZWJvb3QuaCIKKworI2RlZmluZSBVU0VfTElCQworCisjaWZkZWYgVVNFX0xJQkMKKworLyogbGliYyB2ZXJzaW9uICovCisjaWYgZGVmaW5lZCBfX0dMSUJDX18gJiYgX19HTElCQ19fID49IDIKKyMgIGluY2x1ZGUgPHN5cy9yZWJvb3QuaD4KKyMgIGRlZmluZSBSRUJPT1QoY21kKSByZWJvb3QoY21kKQorI2Vsc2UKK2V4dGVybiBpbnQgcmVib290KGludCwgaW50LCBpbnQpOworIyAgZGVmaW5lIFJFQk9PVChjbWQpIHJlYm9vdChMSU5VWF9SRUJPT1RfTUFHSUMxLExJTlVYX1JFQk9PVF9NQUdJQzIsKGNtZCkpCisjZW5kaWYKK3N0YXRpYyBpbmxpbmUgaW50IG15X3JlYm9vdChpbnQgY21kKSB7CisJcmV0dXJuIFJFQk9PVChjbWQpOworfQorCisjZWxzZSAvKiBubyBVU0VfTElCQyAqLworCisvKiBkaXJlY3Qgc3lzY2FsbCB2ZXJzaW9uICovCisjaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+CisKKyNpZmRlZiBfc3lzY2FsbDMKK19zeXNjYWxsMyhpbnQsICByZWJvb3QsICBpbnQsICBtYWdpYywgaW50LCBtYWdpY190b28sIGludCwgY21kKTsKKyNlbHNlCisvKiBMZXQgdXMgaG9wZSB3ZSBoYXZlIGEgMy1hcmd1bWVudCByZWJvb3QgaGVyZSAqLworZXh0ZXJuIGludCByZWJvb3QoaW50LCBpbnQsIGludCk7CisjZW5kaWYKKworc3RhdGljIGlubGluZSBpbnQgbXlfcmVib290KGludCBjbWQpIHsKKwlyZXR1cm4gcmVib290KExJTlVYX1JFQk9PVF9NQUdJQzEsIExJTlVYX1JFQk9PVF9NQUdJQzIsIGNtZCk7Cit9CisKKyNlbmRpZgorCisKKyNlbmRpZiAvKiAgX0xJTlVYX1JFQk9PVF9IICAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9saW51eF92ZXJzaW9uLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL2xpbnV4X3ZlcnNpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmExZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9saW51eF92ZXJzaW9uLmgKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBMSU5VWF9WRVJTSU9OX0gKKyNkZWZpbmUgTElOVVhfVkVSU0lPTl9ICisKKyNpZmRlZiBIQVZFX0xJTlVYX1ZFUlNJT05fSAorIyBpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjZW5kaWYKKworI2lmbmRlZiBLRVJORUxfVkVSU0lPTgorIyBkZWZpbmUgS0VSTkVMX1ZFUlNJT04oYSxiLGMpICgoKGEpIDw8IDE2KSArICgoYikgPDwgOCkgKyAoYykpCisjZW5kaWYKKworaW50IGdldF9saW51eF92ZXJzaW9uKHZvaWQpOworCisjZW5kaWYgLyogTElOVVhfVkVSU0lPTl9IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL21kNS5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9tZDUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTk4ZTgxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9tZDUuaApAQCAtMCwwICsxLDI3IEBACisjaWZuZGVmIE1ENV9ICisjZGVmaW5lIE1ENV9ICisKKyNpZiBIQVZFX1NURElOVF9ICisjaW5jbHVkZSA8c3RkaW50Lmg+CisjZWxzZQordHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDMyX3Q7CisjZW5kaWYKKworc3RydWN0IE1ENUNvbnRleHQgeworCXVpbnQzMl90IGJ1Zls0XTsKKwl1aW50MzJfdCBiaXRzWzJdOworCXVuc2lnbmVkIGNoYXIgaW5bNjRdOworfTsKKwordm9pZCBNRDVJbml0KHN0cnVjdCBNRDVDb250ZXh0ICpjb250ZXh0KTsKK3ZvaWQgTUQ1VXBkYXRlKHN0cnVjdCBNRDVDb250ZXh0ICpjb250ZXh0LCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpidWYsCisJICAgICAgIHVuc2lnbmVkIGxlbik7Cit2b2lkIE1ENUZpbmFsKHVuc2lnbmVkIGNoYXIgZGlnZXN0WzE2XSwgc3RydWN0IE1ENUNvbnRleHQgKmNvbnRleHQpOwordm9pZCBNRDVUcmFuc2Zvcm0odWludDMyX3QgYnVmWzRdLCB1aW50MzJfdCBjb25zdCBpblsxNl0pOworCisvKgorICogVGhpcyBpcyBuZWVkZWQgdG8gbWFrZSBSU0FSRUYgaGFwcHkgb24gc29tZSBNUy1ET1MgY29tcGlsZXJzLgorICovCit0eXBlZGVmIHN0cnVjdCBNRDVDb250ZXh0IE1ENV9DVFg7CisKKyNlbmRpZiAvKiAhTUQ1X0ggKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvbmxzLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL25scy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMDQ0MGMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL25scy5oCkBAIC0wLDAgKzEsMzQgQEAKKyNpZm5kZWYgVVRJTF9MSU5VWF9OTFNfSAorI2RlZmluZSBVVElMX0xJTlVYX05MU19ICisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pOworCisjaWZuZGVmIExPQ0FMRURJUgorI2RlZmluZSBMT0NBTEVESVIgIi91c3Ivc2hhcmUvbG9jYWxlIgorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0xPQ0FMRV9ICisjIGluY2x1ZGUgPGxvY2FsZS5oPgorI2Vsc2UKKyMgdW5kZWYgc2V0bG9jYWxlCisjIGRlZmluZSBzZXRsb2NhbGUoQ2F0ZWdvcnksIExvY2FsZSkgLyogZW1wdHkgKi8KKyNlbmRpZgorCisjaWZkZWYgRU5BQkxFX05MUworIyBpbmNsdWRlIDxsaWJpbnRsLmg+CisjIGRlZmluZSBfKFRleHQpIGdldHRleHQgKFRleHQpCisjIGlmZGVmIGdldHRleHRfbm9vcAorIyAgZGVmaW5lIE5fKFN0cmluZykgZ2V0dGV4dF9ub29wIChTdHJpbmcpCisjIGVsc2UKKyMgIGRlZmluZSBOXyhTdHJpbmcpIChTdHJpbmcpCisjIGVuZGlmCisjZWxzZQorIyB1bmRlZiBiaW5kdGV4dGRvbWFpbgorIyBkZWZpbmUgYmluZHRleHRkb21haW4oRG9tYWluLCBEaXJlY3RvcnkpIC8qIGVtcHR5ICovCisjIHVuZGVmIHRleHRkb21haW4KKyMgZGVmaW5lIHRleHRkb21haW4oRG9tYWluKSAvKiBlbXB0eSAqLworIyBkZWZpbmUgXyhUZXh0KSAoVGV4dCkKKyMgZGVmaW5lIE5fKFRleHQpIChUZXh0KQorI2VuZGlmCisKKyNlbmRpZiAvKiBVVElMX0xJTlVYX05MU19IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL3BhdGhuYW1lcy5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9wYXRobmFtZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmU1YzNiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9wYXRobmFtZXMuaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIFZhZ3VlbHkgYmFzZWQgb24KKyAqCUAoIylwYXRobmFtZXMuaAk1LjMgKEJlcmtlbGV5KSA1LzkvODkKKyAqIFRoaXMgY29kZSBpcyBpbiB0aGUgcHVibGljIGRvbWFpbi4KKyAqLworI2lmbmRlZiBQQVRITkFNRVNfSAorI2RlZmluZSBQQVRITkFNRVNfSAorCisjaW5jbHVkZSA8cGF0aHMuaD4KKworI2lmbmRlZiBfX1NURENfXworIyBlcnJvciAid2UgbmVlZCBhbiBBTlNJIGNvbXBpbGVyIgorI2VuZGlmCisKKy8qIERFRlBBVEhzIGZyb20gPHBhdGhzLmg+IGRvbid0IGluY2x1ZGUgL3Vzci9sb2NhbCAqLworI3VuZGVmIF9QQVRIX0RFRlBBVEgKKyNkZWZpbmUJX1BBVEhfREVGUEFUSAkgICAgICAgICIvdXNyL2xvY2FsL2JpbjovYmluOi91c3IvYmluIgorCisjdW5kZWYgX1BBVEhfREVGUEFUSF9ST09UCisjZGVmaW5lCV9QQVRIX0RFRlBBVEhfUk9PVAkiL3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi9zYmluOi9iaW46L3Vzci9zYmluOi91c3IvYmluIgorCisjZGVmaW5lIF9QQVRIX1NFQ1VSRVRUWQkJIi9ldGMvc2VjdXJldHR5IgorI2RlZmluZSBfUEFUSF9XVE1QTE9DSwkJIi9ldGMvd3RtcGxvY2siCisKKyNkZWZpbmUJX1BBVEhfSFVTSExPR0lOCQkiLmh1c2hsb2dpbiIKKworI2lmbmRlZiBfUEFUSF9NQUlMRElSCisjZGVmaW5lCV9QQVRIX01BSUxESVIJCSIvdmFyL3Nwb29sL21haWwiCisjZW5kaWYKKyNkZWZpbmUJX1BBVEhfTU9UREZJTEUJCSIvZXRjL21vdGQiCisjZGVmaW5lCV9QQVRIX05PTE9HSU4JCSIvZXRjL25vbG9naW4iCisKKyNkZWZpbmUgX1BBVEhfTE9HSU4JCSIvYmluL2xvZ2luIgorI2RlZmluZSBfUEFUSF9JTklUVEFCCQkiL2V0Yy9pbml0dGFiIgorI2RlZmluZSBfUEFUSF9SQwkJIi9ldGMvcmMiCisjZGVmaW5lIF9QQVRIX1JFQk9PVAkJIi9zYmluL3JlYm9vdCIKKyNkZWZpbmUgX1BBVEhfU0hVVERPV04JCSIvc2Jpbi9zaHV0ZG93biIKKyNkZWZpbmUgX1BBVEhfU0lOR0xFCQkiL2V0Yy9zaW5nbGVib290IgorI2RlZmluZSBfUEFUSF9TSFVURE9XTl9DT05GCSIvZXRjL3NodXRkb3duLmNvbmYiCisKKyNkZWZpbmUgX1BBVEhfU0VDVVJFCQkiL2V0Yy9zZWN1cmVzaW5nbGUiCisjZGVmaW5lIF9QQVRIX1VTRVJUVFkgICAgICAgICAgICIvZXRjL3VzZXJ0dHkiCisKKy8qIHVzZWQgaW4gbG9naW4tdXRpbHMvc2h1dGRvd24uYyAqLworCisvKiB1c2VkIGluIGxvZ2luLXV0aWxzL3NldHB3bmFtLmggYW5kIGxvZ2luLXV0aWxzL2lzbG9jYWwuYyAqLworI2RlZmluZSBfUEFUSF9QQVNTV0QgICAgICAgICAgICAiL2V0Yy9wYXNzd2QiCisKKy8qIHVzZWQgaW4gbG9naW4tdXRpbHMvbmV3Z3JwICovCisjZGVmaW5lIF9QQVRIX0dTSEFET1cJCSIvZXRjL2dzaGFkb3ciCisKKy8qIHVzZWQgaW4gbG9naW4tdXRpbHMvc2V0cHduYW0uaCAqLworI2RlZmluZSBfUEFUSF9QVE1QICAgICAgICAgICAgICAiL2V0Yy9wdG1wIgorI2RlZmluZSBfUEFUSF9QVE1QVE1QICAgICAgICAgICAiL2V0Yy9wdG1wdG1wIgorI2RlZmluZSBfUEFUSF9HUk9VUCAgICAgICAgICAgICAiL2V0Yy9ncm91cCIKKyNkZWZpbmUgX1BBVEhfR1RNUCAgICAgICAgICAgICAgIi9ldGMvZ3RtcCIKKyNkZWZpbmUgX1BBVEhfR1RNUFRNUCAgICAgICAgICAgIi9ldGMvZ3RtcHRtcCIKKyNkZWZpbmUgX1BBVEhfU0hBRE9XX1BBU1NXRCAgICAgIi9ldGMvc2hhZG93IgorI2RlZmluZSBfUEFUSF9TSEFET1dfUFRNUCAgICAgICAiL2V0Yy9zcHRtcCIKKyNkZWZpbmUgX1BBVEhfU0hBRE9XX1BUTVBUTVAgICAgIi9ldGMvc3B0bXB0bXAiCisjZGVmaW5lIF9QQVRIX1NIQURPV19HUk9VUCAgICAgICIvZXRjL2dzaGFkb3ciCisjZGVmaW5lIF9QQVRIX1NIQURPV19HVE1QICAgICAgICIvZXRjL3NndG1wIgorI2RlZmluZSBfUEFUSF9TSEFET1dfR1RNUFRNUCAgICAiL2V0Yy9zZ3RtcHRtcCIKKworLyogdXNlZCBpbiBtaXNjLXV0aWxzL2xvb2suYyAqLworI2RlZmluZSBfUEFUSF9XT1JEUyAgICAgICAgICAgICAiL3Vzci9zaGFyZS9kaWN0L3dvcmRzIgorI2RlZmluZSBfUEFUSF9XT1JEU19BTFQgICAgICAgICAiL3Vzci9zaGFyZS9kaWN0L3dlYjIiCisKKy8qIG1vdW50IHBhdGhzICovCisjZGVmaW5lIF9QQVRIX1VNT1VOVAkJIi9iaW4vdW1vdW50IgorCisjZGVmaW5lIF9QQVRIX0ZJTEVTWVNURU1TCSIvZXRjL2ZpbGVzeXN0ZW1zIgorI2RlZmluZSBfUEFUSF9QUk9DX1NXQVBTCSIvcHJvYy9zd2FwcyIKKyNkZWZpbmUgX1BBVEhfUFJPQ19GSUxFU1lTVEVNUwkiL3Byb2MvZmlsZXN5c3RlbXMiCisjZGVmaW5lIF9QQVRIX1BST0NfTU9VTlRTCSIvcHJvYy9tb3VudHMiCisjZGVmaW5lIF9QQVRIX1BST0NfUEFSVElUSU9OUwkiL3Byb2MvcGFydGl0aW9ucyIKKyNkZWZpbmUgX1BBVEhfUFJPQ19ERVZJQ0VTCSIvcHJvYy9kZXZpY2VzIgorCisjaWZuZGVmIF9QQVRIX01PVU5URUQKKyMgaWZkZWYgTU9VTlRFRAkJCQkJLyogZGVwcmVjYXRlZCAqLworIyAgZGVmaW5lIF9QQVRIX01PVU5URUQJCU1PVU5URUQKKyMgZWxzZQorIyAgZGVmaW5lIF9QQVRIX01PVU5URUQJCSIvZXRjL210YWIiCisjIGVuZGlmCisjZW5kaWYKKworI2lmbmRlZiBfUEFUSF9NTlRUQUIKKyMgaWZkZWYgTU5UVEFCCQkJCQkvKiBkZXByZWNhdGVkICovCisjICBkZWZpbmUgX1BBVEhfTU5UVEFCCQlNTlRUQUIKKyMgZWxzZQorIyAgZGVmaW5lIF9QQVRIX01OVFRBQgkJIi9ldGMvZnN0YWIiCisjIGVuZGlmCisjZW5kaWYKKworI2RlZmluZSBfUEFUSF9NT1VOVEVEX0xPQ0sJX1BBVEhfTU9VTlRFRCAifiIKKyNkZWZpbmUgX1BBVEhfTU9VTlRFRF9UTVAJX1BBVEhfTU9VTlRFRCAiLnRtcCIKKworI2lmbmRlZiBfUEFUSF9ERVYKKyMgZGVmaW5lIF9QQVRIX0RFVgkJIi9kZXYvIgorI2VuZGlmCisKKyNkZWZpbmUgX1BBVEhfREVWX0xPT1AJCSIvZGV2L2xvb3AiCisjZGVmaW5lIF9QQVRIX0RFVl9UVFkJCSIvZGV2L3R0eSIKKworLyogdWRldiBwYXRocyAqLworI2RlZmluZSBfUEFUSF9ERVZfQllMQUJFTAkiL2Rldi9kaXNrL2J5LWxhYmVsIgorI2RlZmluZSBfUEFUSF9ERVZfQllVVUlECSIvZGV2L2Rpc2svYnktdXVpZCIKKyNkZWZpbmUgX1BBVEhfREVWX0JZSUQJCSIvZGV2L2Rpc2svYnktaWQiCisjZGVmaW5lIF9QQVRIX0RFVl9CWVBBVEgJIi9kZXYvZGlzay9ieS1wYXRoIgorCisjZW5kaWYgLyogUEFUSE5BTUVTX0ggKi8KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS9zZXRwcm9jdGl0bGUuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvc2V0cHJvY3RpdGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU3YWJkYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvc2V0cHJvY3RpdGxlLmgKQEAgLTAsMCArMSw3IEBACisKK3ZvaWQgaW5pdHByb2N0aXRsZSAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKKyNpZiAwCit2b2lkIHNldHByb2N0aXRsZSAoY29uc3QgY2hhciAqZm10LCAuLi4pOworI2Vsc2UKK3ZvaWQgc2V0cHJvY3RpdGxlIChjb25zdCBjaGFyICpwcm9nLCBjb25zdCBjaGFyICp0eHQpOworI2VuZGlmCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL3N3YXBoZWFkZXIuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvc3dhcGhlYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZjUzOTAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL3N3YXBoZWFkZXIuaApAQCAtMCwwICsxLDI0IEBACisjaWZuZGVmIF9TV0FQSEVBREVSX0gKKyNkZWZpbmUgX1NXQVBIRUFERVJfSAorCitzdHJ1Y3Qgc3dhcF9oZWFkZXJfdjEgeworICAgICAgICBjaGFyICAgICAgICAgYm9vdGJpdHNbMTAyNF07ICAgIC8qIFNwYWNlIGZvciBkaXNrbGFiZWwgZXRjLiAqLworCXVuc2lnbmVkIGludCB2ZXJzaW9uOworCXVuc2lnbmVkIGludCBsYXN0X3BhZ2U7CisJdW5zaWduZWQgaW50IG5yX2JhZHBhZ2VzOworCXVuc2lnbmVkIGludCBwYWRkaW5nWzEyNV07CisJdW5zaWduZWQgaW50IGJhZHBhZ2VzWzFdOworfTsKKworc3RydWN0IHN3YXBfaGVhZGVyX3YxXzIgeworCWNoYXIJICAgICAgYm9vdGJpdHNbMTAyNF07ICAgIC8qIFNwYWNlIGZvciBkaXNrbGFiZWwgZXRjLiAqLworCXVuc2lnbmVkIGludCAgdmVyc2lvbjsKKwl1bnNpZ25lZCBpbnQgIGxhc3RfcGFnZTsKKwl1bnNpZ25lZCBpbnQgIG5yX2JhZHBhZ2VzOworCXVuc2lnbmVkIGNoYXIgdXVpZFsxNl07CisJY2hhcgkgICAgICB2b2x1bWVfbmFtZVsxNl07CisJdW5zaWduZWQgaW50ICBwYWRkaW5nWzExN107CisJdW5zaWduZWQgaW50ICBiYWRwYWdlc1sxXTsKK307CisKKyNlbmRpZiAvKiBfU1dBUEhFQURFUl9IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL3VzbGVlcC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS91c2xlZXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjQ0NzdjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS91c2xlZXAuaApAQCAtMCwwICsxLDE4IEBACisjaWZuZGVmIFVUSUxfTElOVVhfVVNMRUVQX0gKKyNkZWZpbmUgVVRJTF9MSU5VWF9VU0xFRVBfSAorCisjaWZuZGVmIEhBVkVfVVNMRUVQCisvKgorICogVGhpcyBmdW5jdGlvbiBpcyBtYXJrZWQgb2Jzb2xldGUgaW4gUE9TSVguMS0yMDAxIGFuZCByZW1vdmVkIGluCisgKiBQT1NJWC4xLTIwMDguIEl0IGlzIHJlcGxhY2VkIHdpdGggbmFub3NsZWVwKCkuCisgKi8KKyMgZGVmaW5lIHVzbGVlcCh4KSBcCisJZG8geyBcCisJCXN0cnVjdCB0aW1lc3BlYyB4c2xlZXA7IFwKKwkJeHNsZWVwLnR2X3NlYyA9IHggLyAxMDAwIC8gMTAwMDsgXAorCQl4c2xlZXAudHZfbnNlYyA9ICh4IC0geHNsZWVwLnR2X3NlYyAqIDEwMDAgKiAxMDAwKSAqIDEwMDA7IFwKKwkJbmFub3NsZWVwKCZ4c2xlZXAsIE5VTEwpOyBcCisJfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjZW5kaWYgLyogVVRJTF9MSU5VWF9VU0xFRVBfSCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS93aG9sZWRpc2suaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvd2hvbGVkaXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUxNDc5ZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2luY2x1ZGUvd2hvbGVkaXNrLmgKQEAgLTAsMCArMSw4IEBACisjaWZuZGVmIFdIT0xFRElTS19ICisjZGVmaW5lIFdIT0xFRElTS19ICisKK2V4dGVybiBpbnQgaXNfd2hvbGVfZGlzayhjb25zdCBjaGFyICpuYW1lKTsKK2V4dGVybiBpbnQgaXNfd2hvbGVfZGlza19mZChpbnQgZmQsIGNvbnN0IGNoYXIgKm5hbWUpOworCisjZW5kaWYgLyogV0hPTEVESVNLX0ggKi8KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS93aWRlY2hhci5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS93aWRlY2hhci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwMjNiNWYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL3dpZGVjaGFyLmgKQEAgLTAsMCArMSwzOCBAQAorLyogRGVjbGFyYXRpb25zIGZvciB3aWRlIGNoYXJhY3RlcnMgKi8KKy8qIFRoaXMgZmlsZSBtdXN0IGJlIGluY2x1ZGVkIGxhc3QgYmVjYXVzZSB0aGUgcmVkZWZpbml0aW9uIG9mIHdjaGFyX3QgbWF5CisgICBjYXVzZSBjb25mbGljdHMgd2hlbiBzeXN0ZW0gaW5jbHVkZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGFmdGVyIGl0LiAqLworCisjaWZkZWYgSEFWRV9XSURFQ0hBUgorCisjIGluY2x1ZGUgPHdjaGFyLmg+CisjIGluY2x1ZGUgPHdjdHlwZS5oPgorCisjZWxzZSAvKiAhSEFWRV9XSURFQ0hBUiAqLworCisjIGluY2x1ZGUgPGN0eXBlLmg+CisgIC8qIEZhbGxiYWNrIGZvciB0eXBlcyAqLworIyBkZWZpbmUgd2NoYXJfdCBjaGFyCisjIGRlZmluZSB3aW50X3QgaW50CisjIGRlZmluZSBXRU9GIEVPRgorICAvKiBGYWxsYmFjayBmb3IgaW5wdXQgb3BlcmF0aW9ucyAqLworIyBkZWZpbmUgZmdldHdjIGZnZXRjCisjIGRlZmluZSBnZXR3YyBnZXRjCisjIGRlZmluZSBnZXR3Y2hhciBnZXRjaGFyCisjIGRlZmluZSBmZ2V0d3MgZmdldHMKKyAgLyogRmFsbGJhY2sgZm9yIG91dHB1dCBvcGVyYXRpb25zICovCisjIGRlZmluZSBmcHV0d2MgZnB1dGMKKyMgZGVmaW5lIHB1dHdjIHB1dGMKKyMgZGVmaW5lIHB1dHdjaGFyIHB1dGNoYXIKKyMgZGVmaW5lIGZwdXR3cyBmcHV0cworICAvKiBGYWxsYmFjayBmb3IgY2hhcmFjdGVyIGNsYXNzaWZpY2F0aW9uICovCisjIGRlZmluZSBpc3dncmFwaCBpc2dyYXBoCisjIGRlZmluZSBpc3dwcmludCBpc3ByaW50CisjIGRlZmluZSBpc3dzcGFjZSBpc3NwYWNlCisgIC8qIEZhbGxiYWNrIGZvciBzdHJpbmcgZnVuY3Rpb25zICovCisjIGRlZmluZSB3Y3NjaHIgc3RyY2hyCisjIGRlZmluZSB3Y3NkdXAgc3RyZHVwCisjIGRlZmluZSB3Y3NsZW4gc3RybGVuCisKKyMgZGVmaW5lIHdjd2lkdGgoYykgMQorCisjZW5kaWYgLyogSEFWRV9XSURFQ0hBUiAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS94c3RybmNweS5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvaW5jbHVkZS94c3RybmNweS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZDQxMDkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9pbmNsdWRlL3hzdHJuY3B5LmgKQEAgLTAsMCArMSw4IEBACisvKiBOVUwtdGVybWluYXRlZCB2ZXJzaW9uIG9mIHN0cm5jcHkoKSAqLworI2luY2x1ZGUgPHN0cmluZy5oPgorCisvKiBjYWxsZXIgZ3VhcmFudGVlcyBuID4gMCAqLworc3RhdGljIGlubGluZSB2b2lkIHhzdHJuY3B5KGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IG4pIHsKKwlzdHJuY3B5KGRlc3QsIHNyYywgbi0xKTsKKwlkZXN0W24tMV0gPSAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2MDBkMTgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwxNCBAQAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCisKK0FNX0NQUEZMQUdTICs9IC1EVEVTVF9QUk9HUkFNCisKK25vaW5zdF9QUk9HUkFNUyA9IHRlc3RfYmxrZGV2IHRlc3RfaXNtb3VudGVkIHRlc3Rfd2hvbGVkaXNrCisKK3Rlc3RfYmxrZGV2X1NPVVJDRVMgPSBibGtkZXYuYwordGVzdF9pc21vdW50ZWRfU09VUkNFUyA9IGlzbW91bnRlZC5jCit0ZXN0X3dob2xlZGlza19TT1VSQ0VTID0gd2hvbGVkaXNrLmMKKworaWYgTElOVVgKK3Rlc3RfYmxrZGV2X1NPVVJDRVMgKz0gbGludXhfdmVyc2lvbi5jCitlbmRpZgorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvTWFrZWZpbGUuaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI5NzRiNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDU4NSBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoZGlzdF9ub2luc3RfREFUQSkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorbm9pbnN0X1BST0dSQU1TID0gdGVzdF9ibGtkZXYkKEVYRUVYVCkgdGVzdF9pc21vdW50ZWQkKEVYRUVYVCkgXAorCXRlc3Rfd2hvbGVkaXNrJChFWEVFWFQpCitATElOVVhfVFJVRUBhbV9fYXBwZW5kXzEgPSBsaW51eF92ZXJzaW9uLmMKK3N1YmRpciA9IGxpYgorQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorUFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKK2FtX190ZXN0X2Jsa2Rldl9TT1VSQ0VTX0RJU1QgPSBibGtkZXYuYyBsaW51eF92ZXJzaW9uLmMKK0BMSU5VWF9UUlVFQGFtX19vYmplY3RzXzEgPSBsaW51eF92ZXJzaW9uLiQoT0JKRVhUKQorYW1fdGVzdF9ibGtkZXZfT0JKRUNUUyA9IGJsa2Rldi4kKE9CSkVYVCkgJChhbV9fb2JqZWN0c18xKQordGVzdF9ibGtkZXZfT0JKRUNUUyA9ICQoYW1fdGVzdF9ibGtkZXZfT0JKRUNUUykKK3Rlc3RfYmxrZGV2X0xEQUREID0gJChMREFERCkKK0FNX1ZfbHQgPSAkKGFtX192X2x0XyQoVikpCithbV9fdl9sdF8gPSAkKGFtX192X2x0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfbHRfMCA9IC0tc2lsZW50CithbV90ZXN0X2lzbW91bnRlZF9PQkpFQ1RTID0gaXNtb3VudGVkLiQoT0JKRVhUKQordGVzdF9pc21vdW50ZWRfT0JKRUNUUyA9ICQoYW1fdGVzdF9pc21vdW50ZWRfT0JKRUNUUykKK3Rlc3RfaXNtb3VudGVkX0xEQUREID0gJChMREFERCkKK2FtX3Rlc3Rfd2hvbGVkaXNrX09CSkVDVFMgPSB3aG9sZWRpc2suJChPQkpFWFQpCit0ZXN0X3dob2xlZGlza19PQkpFQ1RTID0gJChhbV90ZXN0X3dob2xlZGlza19PQkpFQ1RTKQordGVzdF93aG9sZWRpc2tfTERBREQgPSAkKExEQUREKQorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSAkKHRlc3RfYmxrZGV2X1NPVVJDRVMpICQodGVzdF9pc21vdW50ZWRfU09VUkNFUykgXAorCSQodGVzdF93aG9sZWRpc2tfU09VUkNFUykKK0RJU1RfU09VUkNFUyA9ICQoYW1fX3Rlc3RfYmxrZGV2X1NPVVJDRVNfRElTVCkgXAorCSQodGVzdF9pc21vdW50ZWRfU09VUkNFUykgJCh0ZXN0X3dob2xlZGlza19TT1VSQ0VTKQorREFUQSA9ICQoZGlzdF9ub2luc3RfREFUQSkKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIFwKKwktSSQodG9wX3NyY2RpcikvaW5jbHVkZSAtRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiIFwKKwktRFRFU1RfUFJPR1JBTQorQU1fQ0ZMQUdTID0gLWZzaWduZWQtY2hhcgorQU1fTERGTEFHUyA9IAorCisjIEF1dG9tYWtlIChhdCBsZWFzdCB1cCB0byAxLjEwKSBtaXNoYW5kbGVzIGRpc3RfbWFuX01BTlMgaW5zaWRlIGNvbmRpdGlvbmFscy4KKyMgVW5saWtlIHdpdGggb3RoZXIgZGlzdCBwcmltYXJpZXMsIHRoZSBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVkIGlmIHRoZQorIyBjb25kaXRpb25hbCBpcyBmYWxzZS4KKyMgV29yayB0aGUgYnVnIGFyb3VuZCB1bnRpbCBpdCBpcyBmaXhlZDoKK2Rpc3Rfbm9pbnN0X0RBVEEgPSAkKGRpc3RfbWFuX01BTlMpCisKKyMgUGF0aHMgdG8gaW4tdHJlZSBsaWJyYXJpZXMgKHVzZSB1bF8gcHJlZml4IHRvIGF2b2lkIHBvc3NpYmxlIGNvbGxpc2lvbnMpCisjCisjIGJsa2lkCit1bF9saWJibGtpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMvbGliYmxraWQubGEKKworIyBibGtpZC5oIGlzIGdlbmVyYXRlZCBieSAuL2NvbmZpZ3VyZSBzY3JpcHQgYW5kIHN0b3JlZCBpbiBidWlsZCBkaXJlY3RvcnkKK3VsX2xpYmJsa2lkX2luY2RpciA9ICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyMgdXVpZAordWxfbGlidXVpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjL2xpYnV1aWQubGEKK3Rlc3RfYmxrZGV2X1NPVVJDRVMgPSBibGtkZXYuYyAkKGFtX19hcHBlbmRfMSkKK3Rlc3RfaXNtb3VudGVkX1NPVVJDRVMgPSBpc21vdW50ZWQuYwordGVzdF93aG9sZWRpc2tfU09VUkNFUyA9IHdob2xlZGlzay5jCithbGw6IGFsbC1hbQorCisuU1VGRklYRVM6CisuU1VGRklYRVM6IC5jIC5sbyAubyAub2JqCiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gbGliL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZm9yZWlnbiBsaWIvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgorCitjbGVhbi1ub2luc3RQUk9HUkFNUzoKKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0Cit0ZXN0X2Jsa2RldiQoRVhFRVhUKTogJCh0ZXN0X2Jsa2Rldl9PQkpFQ1RTKSAkKHRlc3RfYmxrZGV2X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRlc3RfYmxrZGV2JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHRlc3RfYmxrZGV2X09CSkVDVFMpICQodGVzdF9ibGtkZXZfTERBREQpICQoTElCUykKK3Rlc3RfaXNtb3VudGVkJChFWEVFWFQpOiAkKHRlc3RfaXNtb3VudGVkX09CSkVDVFMpICQodGVzdF9pc21vdW50ZWRfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdGVzdF9pc21vdW50ZWQkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQodGVzdF9pc21vdW50ZWRfT0JKRUNUUykgJCh0ZXN0X2lzbW91bnRlZF9MREFERCkgJChMSUJTKQordGVzdF93aG9sZWRpc2skKEVYRUVYVCk6ICQodGVzdF93aG9sZWRpc2tfT0JKRUNUUykgJCh0ZXN0X3dob2xlZGlza19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB0ZXN0X3dob2xlZGlzayQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJCh0ZXN0X3dob2xlZGlza19PQkpFQ1RTKSAkKHRlc3Rfd2hvbGVkaXNrX0xEQUREKSAkKExJQlMpCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ibGtkZXYuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2lzbW91bnRlZC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGludXhfdmVyc2lvbi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvd2hvbGVkaXNrLlBvQGFtX19xdW90ZUAKKworLmMubzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgJDwKKworLmMub2JqOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jIGAkKENZR1BBVEhfVykgJyQ8J2AKKworLmMubG86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChMVENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMVENPTVBJTEUpIC1jIC1vICRAICQ8CisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCisKK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJbWtpZCAtZklEICQkdW5pcXVlCit0YWdzOiBUQUdTCisKK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXNoaWZ0OyBcCisJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisJICBlbHNlIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICQkdW5pcXVlOyBcCisJICBmaTsgXAorCWZpCitjdGFnczogQ1RBR1MKK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKwkgICAgICQkdW5pcXVlCisKK0dUQUdTOgorCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisKK2Rpc3RjbGVhbi10YWdzOgorCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLWFtCithbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpICQoREFUQSkKK2luc3RhbGxkaXJzOgoraW5zdGFsbDogaW5zdGFsbC1hbQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCit1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1hbQorCitjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKKwltb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLWFtCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1hbQorCitodG1sLWFtOgorCitpbmZvOiBpbmZvLWFtCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbToKKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06CisKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisKK2luc3RhbGwtaHRtbC1hbToKKworaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjoKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtYW0KKworcGRmLWFtOgorCitwczogcHMtYW0KKworcHMtYW06CisKK3VuaW5zdGFsbC1hbToKKworLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAorCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCisJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCisJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAorCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKKwltb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCisJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9ibGtkZXYuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9ibGtkZXYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2E0NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL2Jsa2Rldi5jCkBAIC0wLDAgKzEsMTQ4IEBACisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgImJsa2Rldi5oIgorI2luY2x1ZGUgImxpbnV4X3ZlcnNpb24uaCIKKworc3RhdGljIGxvbmcKK2Jsa2Rldl92YWxpZF9vZmZzZXQgKGludCBmZCwgb2ZmX3Qgb2Zmc2V0KSB7CisJY2hhciBjaDsKKworCWlmIChsc2VlayAoZmQsIG9mZnNldCwgMCkgPCAwKQorCQlyZXR1cm4gMDsKKwlpZiAocmVhZCAoZmQsICZjaCwgMSkgPCAxKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKworb2ZmX3QKK2Jsa2Rldl9maW5kX3NpemUgKGludCBmZCkgeworCW9mZl90IGhpZ2gsIGxvdzsKKworCWxvdyA9IDA7CisJZm9yIChoaWdoID0gMTsgaGlnaCA+IDAgJiYgYmxrZGV2X3ZhbGlkX29mZnNldCAoZmQsIGhpZ2gpOyBoaWdoICo9IDIpCisJCWxvdyA9IGhpZ2g7CisJd2hpbGUgKGxvdyA8IGhpZ2ggLSAxKQorCXsKKwkJY29uc3Qgb2ZmX3QgbWlkID0gKGxvdyArIGhpZ2gpIC8gMjsKKworCQlpZiAoYmxrZGV2X3ZhbGlkX29mZnNldCAoZmQsIG1pZCkpCisJCQlsb3cgPSBtaWQ7CisJCWVsc2UKKwkJCWhpZ2ggPSBtaWQ7CisJfQorCWJsa2Rldl92YWxpZF9vZmZzZXQgKGZkLCAwKTsKKwlyZXR1cm4gKGxvdyArIDEpOworfQorCisvKiBnZXQgc2l6ZSBpbiBieXRlcyAqLworaW50CitibGtkZXZfZ2V0X3NpemUoaW50IGZkLCB1bnNpZ25lZCBsb25nIGxvbmcgKmJ5dGVzKQoreworCS8qIFRPRE86IHVzZSBzdGF0IGFzIHdlbGwgKi8KKworI2lmZGVmIEJMS0dFVFNJWkU2NAorI2lmZGVmIF9fbGludXhfXworCWludCB2ZXIgPSBnZXRfbGludXhfdmVyc2lvbigpOworCS8qIGtlcm5lbHMgMi40LjE1LTIuNC4xNywgaGFkIGEgYnJva2VuIEJMS0dFVFNJWkU2NCAqLworCWlmICh2ZXIgPj0gS0VSTkVMX1ZFUlNJT04gKDIsNiwwKSB8fAorCSAgICh2ZXIgPj0gS0VSTkVMX1ZFUlNJT04gKDIsNCwxOCkgJiYgdmVyIDwgS0VSTkVMX1ZFUlNJT04gKDIsNSwwKSkpCisjZW5kaWYKKwkJaWYgKGlvY3RsKGZkLCBCTEtHRVRTSVpFNjQsIGJ5dGVzKSA+PSAwKQorCQkJcmV0dXJuIDA7CisjZW5kaWYgLyogQkxLR0VUU0laRTY0ICovCisKKyNpZmRlZiBCTEtHRVRTSVpFCisJeworCQl1bnNpZ25lZCBsb25nIHNpemU7CisKKwkJaWYgKGlvY3RsKGZkLCBCTEtHRVRTSVpFLCAmc2l6ZSkgPj0gMCkgeworCQkJKmJ5dGVzID0gKCh1bnNpZ25lZCBsb25nIGxvbmcpc2l6ZSA8PCA5KTsKKwkJCXJldHVybiAwOworCQl9CisJfQorCisJcmV0dXJuIC0xOworI2VuZGlmIC8qIEJMS0dFVFNJWkUgKi8KKworCSpieXRlcyA9IGJsa2Rldl9maW5kX3NpemUoZmQpOworCXJldHVybiAwOworfQorCisvKiBnZXQgNTEyLWJ5dGUgc2VjdG9yIGNvdW50ICovCitpbnQKK2Jsa2Rldl9nZXRfc2VjdG9ycyhpbnQgZmQsIHVuc2lnbmVkIGxvbmcgbG9uZyAqc2VjdG9ycykKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXM7CisKKwlpZiAoYmxrZGV2X2dldF9zaXplKGZkLCAmYnl0ZXMpID09IDApIHsKKwkJKnNlY3RvcnMgPSAoYnl0ZXMgPj4gOSk7CisJCXJldHVybiAwOworCX0KKworCXJldHVybiAtMTsKK30KKworLyogZ2V0IGxvZ2ljYWwgc2VjdG9yIHNpemUgKGRlZmF1bHQgaXMgNTEyKQorICoKKyAqIFRoaXMgaXMgdGhlIHNtYWxsZXN0IHVuaXQgdGhlIHN0b3JhZ2UgZGV2aWNlIGNhbgorICogYWRkcmVzcy4gSXQgaXMgdHlwaWNhbGx5IDUxMiBieXRlcy4KKyAqLworaW50CitibGtkZXZfZ2V0X3NlY3Rvcl9zaXplKGludCBmZCwgaW50ICpzZWN0b3Jfc2l6ZSkKK3sKKyNpZmRlZiBCTEtTU1pHRVQKKyNpZmRlZiBfX2xpbnV4X18KKwlpZiAoZ2V0X2xpbnV4X3ZlcnNpb24oKSA8IEtFUk5FTF9WRVJTSU9OKDIsMywzKSkgeworCQkqc2VjdG9yX3NpemUgPSBERUZBVUxUX1NFQ1RPUl9TSVpFOworCQlyZXR1cm4gMDsKKwl9CisjZW5kaWYKKwlpZiAoaW9jdGwoZmQsIEJMS1NTWkdFVCwgc2VjdG9yX3NpemUpID49IDApCisJCXJldHVybiAwOworCisJcmV0dXJuIC0xOworI2Vsc2UKKwkqc2VjdG9yX3NpemUgPSBERUZBVUxUX1NFQ1RPUl9TSVpFOworCXJldHVybiAwOworI2VuZGlmCit9CisKKworI2lmZGVmIFRFU1RfUFJPR1JBTQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxlcnIuaD4KK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzOworCXVuc2lnbmVkIGxvbmcgbG9uZyBzZWN0b3JzOworCWludCBzZWN0b3Jfc2l6ZTsKKwlpbnQgZmQ7CisKKwlpZiAoYXJnYyAhPSAyKSB7CisJCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIGRldmljZVxuIiwgYXJndlswXSk7CisJCWV4aXQoRVhJVF9GQUlMVVJFKTsKKwl9CisKKwlpZiAoKGZkID0gb3Blbihhcmd2WzFdLCBPX1JET05MWSkpIDwgMCkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgIm9wZW4gJXMgZmFpbGVkIiwgYXJndlsxXSk7CisKKwlpZiAoYmxrZGV2X2dldF9zaXplKGZkLCAmYnl0ZXMpIDwgMCkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgImJsa2Rldl9nZXRfc2l6ZSgpIGZhaWxlZCIpOworCWlmIChibGtkZXZfZ2V0X3NlY3RvcnMoZmQsICZzZWN0b3JzKSA8IDApCisJCWVycihFWElUX0ZBSUxVUkUsICJibGtkZXZfZ2V0X3NlY3RvcnMoKSBmYWlsZWQiKTsKKwlpZiAoYmxrZGV2X2dldF9zZWN0b3Jfc2l6ZShmZCwgJnNlY3Rvcl9zaXplKSA8IDApCisJCWVycihFWElUX0ZBSUxVUkUsICJibGtkZXZfZ2V0X3NlY3Rvcl9zaXplKCkgZmFpbGVkIik7CisKKwlwcmludGYoImJ5dGVzICVsbHVcbiIsIGJ5dGVzKTsKKwlwcmludGYoInNlY3RvcnMgJWxsdVxuIiwgc2VjdG9ycyk7CisJcHJpbnRmKCJzZWN0b3JzaXplICVkXG4iLCBzZWN0b3Jfc2l6ZSk7CisKKwlyZXR1cm4gRVhJVF9TVUNDRVNTOworfQorI2VuZGlmIC8qIFRFU1RfUFJPR1JBTSAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL2Nhbm9uaWNhbGl6ZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL2Nhbm9uaWNhbGl6ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5YjNmMjUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvY2Fub25pY2FsaXplLmMKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBjYW5vbmljYWxpemUuYyAtLSBjYW5vbmljYWxpemUgcGF0aG5hbWUgYnkgcmVtb3Zpbmcgc3ltbGlua3MKKyAqIENvcHlyaWdodCAoQykgMTk5MyBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIExpYnJhcnkgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKi8KKworLyoKKyAqIFRoaXMgcm91dGluZSBpcyBwYXJ0IG9mIGxpYmMuICBXZSBpbmNsdWRlIGl0IG5ldmVydGhlbGVzcywKKyAqIHNpbmNlIHRoZSBsaWJjIHZlcnNpb24gaGFzIHNvbWUgc2VjdXJpdHkgZmxhd3MuCisgKgorICogVE9ETzogdXNlIGNhbm9uaWNhbGl6ZV9maWxlX25hbWUoKSB3aGVuIGV4aXN0IGluIGdsaWJjCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2luY2x1ZGUgImNhbm9uaWNhbGl6ZS5oIgorCisjaWZuZGVmIE1BWFNZTUxJTktTCisjIGRlZmluZSBNQVhTWU1MSU5LUyAyNTYKKyNlbmRpZgorCitzdGF0aWMgY2hhciAqCitteXJlYWxwYXRoKGNvbnN0IGNoYXIgKnBhdGgsIGNoYXIgKnJlc29sdmVkX3BhdGgsIGludCBtYXhyZXNsdGgpIHsKKwlpbnQgcmVhZGxpbmtzID0gMDsKKwljaGFyICpucGF0aDsKKwljaGFyIGxpbmtfcGF0aFtQQVRIX01BWCsxXTsKKwlpbnQgbjsKKwljaGFyICpidWYgPSBOVUxMOworCisJbnBhdGggPSByZXNvbHZlZF9wYXRoOworCisJLyogSWYgaXQncyBhIHJlbGF0aXZlIHBhdGhuYW1lIHVzZSBnZXRjd2QgZm9yIHN0YXJ0ZXJzLiAqLworCWlmICgqcGF0aCAhPSAnLycpIHsKKwkJaWYgKCFnZXRjd2QobnBhdGgsIG1heHJlc2x0aC0yKSkKKwkJCXJldHVybiBOVUxMOworCQlucGF0aCArPSBzdHJsZW4obnBhdGgpOworCQlpZiAobnBhdGhbLTFdICE9ICcvJykKKwkJCSpucGF0aCsrID0gJy8nOworCX0gZWxzZSB7CisJCSpucGF0aCsrID0gJy8nOworCQlwYXRoKys7CisJfQorCisJLyogRXhwYW5kIGVhY2ggc2xhc2gtc2VwYXJhdGVkIHBhdGhuYW1lIGNvbXBvbmVudC4gKi8KKwl3aGlsZSAoKnBhdGggIT0gJ1wwJykgeworCQkvKiBJZ25vcmUgc3RyYXkgIi8iICovCisJCWlmICgqcGF0aCA9PSAnLycpIHsKKwkJCXBhdGgrKzsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICgqcGF0aCA9PSAnLicgJiYgKHBhdGhbMV0gPT0gJ1wwJyB8fCBwYXRoWzFdID09ICcvJykpIHsKKwkJCS8qIElnbm9yZSAiLiIgKi8KKwkJCXBhdGgrKzsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICgqcGF0aCA9PSAnLicgJiYgcGF0aFsxXSA9PSAnLicgJiYKKwkJICAgIChwYXRoWzJdID09ICdcMCcgfHwgcGF0aFsyXSA9PSAnLycpKSB7CisJCQkvKiBCYWNrdXAgZm9yICIuLiIgKi8KKwkJCXBhdGggKz0gMjsKKwkJCXdoaWxlIChucGF0aCA+IHJlc29sdmVkX3BhdGgrMSAmJgorCQkJICAgICAgICgtLW5wYXRoKVstMV0gIT0gJy8nKQorCQkJCTsKKwkJCWNvbnRpbnVlOworCQl9CisJCS8qIFNhZmVseSBjb3B5IHRoZSBuZXh0IHBhdGhuYW1lIGNvbXBvbmVudC4gKi8KKwkJd2hpbGUgKCpwYXRoICE9ICdcMCcgJiYgKnBhdGggIT0gJy8nKSB7CisJCQlpZiAobnBhdGgtcmVzb2x2ZWRfcGF0aCA+IG1heHJlc2x0aC0yKSB7CisJCQkJZXJybm8gPSBFTkFNRVRPT0xPTkc7CisJCQkJZ290byBlcnI7CisJCQl9CisJCQkqbnBhdGgrKyA9ICpwYXRoKys7CisJCX0KKworCQkvKiBQcm90ZWN0IGFnYWluc3QgaW5maW5pdGUgbG9vcHMuICovCisJCWlmIChyZWFkbGlua3MrKyA+IE1BWFNZTUxJTktTKSB7CisJCQllcnJubyA9IEVMT09QOworCQkJZ290byBlcnI7CisJCX0KKworCQkvKiBTZWUgaWYgbGFzdCBwYXRobmFtZSBjb21wb25lbnQgaXMgYSBzeW1saW5rLiAqLworCQkqbnBhdGggPSAnXDAnOworCQluID0gcmVhZGxpbmsocmVzb2x2ZWRfcGF0aCwgbGlua19wYXRoLCBQQVRIX01BWCk7CisJCWlmIChuIDwgMCkgeworCQkJLyogRUlOVkFMIG1lYW5zIHRoZSBmaWxlIGV4aXN0cyBidXQgaXNuJ3QgYSBzeW1saW5rLiAqLworCQkJaWYgKGVycm5vICE9IEVJTlZBTCkKKwkJCQlnb3RvIGVycjsKKwkJfSBlbHNlIHsKKwkJCWludCBtOworCQkJY2hhciAqbmV3YnVmOworCisJCQkvKiBOb3RlOiByZWFkbGluayBkb2Vzbid0IGFkZCB0aGUgbnVsbCBieXRlLiAqLworCQkJbGlua19wYXRoW25dID0gJ1wwJzsKKwkJCWlmICgqbGlua19wYXRoID09ICcvJykKKwkJCQkvKiBTdGFydCBvdmVyIGZvciBhbiBhYnNvbHV0ZSBzeW1saW5rLiAqLworCQkJCW5wYXRoID0gcmVzb2x2ZWRfcGF0aDsKKwkJCWVsc2UKKwkJCQkvKiBPdGhlcndpc2UgYmFjayB1cCBvdmVyIHRoaXMgY29tcG9uZW50LiAqLworCQkJCXdoaWxlICgqKC0tbnBhdGgpICE9ICcvJykKKwkJCQkJOworCisJCQkvKiBJbnNlcnQgc3ltbGluayBjb250ZW50cyBpbnRvIHBhdGguICovCisJCQltID0gc3RybGVuKHBhdGgpOworCQkJbmV3YnVmID0gbWFsbG9jKG0gKyBuICsgMSk7CisJCQlpZiAoIW5ld2J1ZikKKwkJCQlnb3RvIGVycjsKKwkJCW1lbWNweShuZXdidWYsIGxpbmtfcGF0aCwgbik7CisJCQltZW1jcHkobmV3YnVmICsgbiwgcGF0aCwgbSArIDEpOworCQkJZnJlZShidWYpOworCQkJcGF0aCA9IGJ1ZiA9IG5ld2J1ZjsKKwkJfQorCQkqbnBhdGgrKyA9ICcvJzsKKwl9CisJLyogRGVsZXRlIHRyYWlsaW5nIHNsYXNoIGJ1dCBkb24ndCB3aG9tcCBhIGxvbmUgc2xhc2guICovCisJaWYgKG5wYXRoICE9IHJlc29sdmVkX3BhdGgrMSAmJiBucGF0aFstMV0gPT0gJy8nKQorCQlucGF0aC0tOworCS8qIE1ha2Ugc3VyZSBpdCdzIG51bGwgdGVybWluYXRlZC4gKi8KKwkqbnBhdGggPSAnXDAnOworCisJZnJlZShidWYpOworCXJldHVybiByZXNvbHZlZF9wYXRoOworCisgZXJyOgorCWZyZWUoYnVmKTsKKwlyZXR1cm4gTlVMTDsKK30KKworLyoKKyAqIENvbnZlcnRzIHByaXZhdGUgImRtLU4iIG5hbWVzIHRvICIvZGV2L21hcHBlci88bmFtZT4iCisgKgorICogU2luY2UgMi42LjI5IChwYXRjaCA3ODRhYWU3MzVkOWIwYmJhM2Y4YjlmYWVmNGM4YjMwZGYzYmYwMTI4KSBrZXJuZWwgc3lzZnMKKyAqIHByb3ZpZGVzIHRoZSByZWFsIERNIGRldmljZSBuYW1lcyBpbiAvc3lzL2Jsb2NrLzxwdG5hbWU+L2RtL25hbWUKKyAqLworY2hhciAqCitjYW5vbmljYWxpemVfZG1fbmFtZShjb25zdCBjaGFyICpwdG5hbWUpCit7CisJRklMRQkqZjsKKwlzaXplX3QJc3o7CisJY2hhcglwYXRoWzI1Nl0sIG5hbWVbMjU2XSwgKnJlcyA9IE5VTEw7CisKKwlzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIvc3lzL2Jsb2NrLyVzL2RtL25hbWUiLCBwdG5hbWUpOworCWlmICghKGYgPSBmb3BlbihwYXRoLCAiciIpKSkKKwkJcmV0dXJuIE5VTEw7CisKKwkvKiByZWFkICI8bmFtZT5cbiIgZnJvbSBzeXNmcyAqLworCWlmIChmZ2V0cyhuYW1lLCBzaXplb2YobmFtZSksIGYpICYmIChzeiA9IHN0cmxlbihuYW1lKSkgPiAxKSB7CisJCW5hbWVbc3ogLSAxXSA9ICdcMCc7CisJCXNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIi9kZXYvbWFwcGVyLyVzIiwgbmFtZSk7CisJCXJlcyA9IHN0cmR1cChwYXRoKTsKKwl9CisJZmNsb3NlKGYpOworCXJldHVybiByZXM7Cit9CisKK2NoYXIgKgorY2Fub25pY2FsaXplX3BhdGgoY29uc3QgY2hhciAqcGF0aCkKK3sKKwljaGFyIGNhbm9uaWNhbFtQQVRIX01BWCsyXTsKKwljaGFyICpwOworCisJaWYgKHBhdGggPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoIW15cmVhbHBhdGgocGF0aCwgY2Fub25pY2FsLCBQQVRIX01BWCsxKSkKKwkJcmV0dXJuIHN0cmR1cChwYXRoKTsKKworCisJcCA9IHN0cnJjaHIoY2Fub25pY2FsLCAnLycpOworCWlmIChwICYmIHN0cm5jbXAocCwgIi9kbS0iLCA0KSA9PSAwICYmIGlzZGlnaXQoKihwICsgNCkpKSB7CisJCXAgPSBjYW5vbmljYWxpemVfZG1fbmFtZShwKzEpOworCQlpZiAocCkKKwkJCXJldHVybiBwOworCX0KKworCXJldHVybiBzdHJkdXAoY2Fub25pY2FsKTsKK30KKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvY3JjMzIuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9jcmMzMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhYWEwNmEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvY3JjMzIuYwpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqICBDT1BZUklHSFQgKEMpIDE5ODYgR2FyeSBTLiBCcm93bi4gIFlvdSBtYXkgdXNlIHRoaXMgcHJvZ3JhbSwgb3IKKyAqICBjb2RlIG9yIHRhYmxlcyBleHRyYWN0ZWQgZnJvbSBpdCwgYXMgZGVzaXJlZCB3aXRob3V0IHJlc3RyaWN0aW9uLgorICoKKyAqICBGaXJzdCwgdGhlIHBvbHlub21pYWwgaXRzZWxmIGFuZCBpdHMgdGFibGUgb2YgZmVlZGJhY2sgdGVybXMuICBUaGUKKyAqICBwb2x5bm9taWFsIGlzCisgKiAgWF4zMitYXjI2K1heMjMrWF4yMitYXjE2K1heMTIrWF4xMStYXjEwK1heOCtYXjcrWF41K1heNCtYXjIrWF4xK1heMAorICoKKyAqICBOb3RlIHRoYXQgd2UgdGFrZSBpdCAiYmFja3dhcmRzIiBhbmQgcHV0IHRoZSBoaWdoZXN0LW9yZGVyIHRlcm0gaW4KKyAqICB0aGUgbG93ZXN0LW9yZGVyIGJpdC4gIFRoZSBYXjMyIHRlcm0gaXMgImltcGxpZWQiOyB0aGUgTFNCIGlzIHRoZQorICogIFheMzEgdGVybSwgZXRjLiAgVGhlIFheMCB0ZXJtICh1c3VhbGx5IHNob3duIGFzICIrMSIpIHJlc3VsdHMgaW4KKyAqICB0aGUgTVNCIGJlaW5nIDEuCisgKgorICogIE5vdGUgdGhhdCB0aGUgdXN1YWwgaGFyZHdhcmUgc2hpZnQgcmVnaXN0ZXIgaW1wbGVtZW50YXRpb24sIHdoaWNoCisgKiAgaXMgd2hhdCB3ZSdyZSB1c2luZyAod2UncmUgbWVyZWx5IG9wdGltaXppbmcgaXQgYnkgZG9pbmcgZWlnaHQtYml0CisgKiAgY2h1bmtzIGF0IGEgdGltZSkgc2hpZnRzIGJpdHMgaW50byB0aGUgbG93ZXN0LW9yZGVyIHRlcm0uICBJbiBvdXIKKyAqICBpbXBsZW1lbnRhdGlvbiwgdGhhdCBtZWFucyBzaGlmdGluZyB0b3dhcmRzIHRoZSByaWdodC4gIFdoeSBkbyB3ZQorICogIGRvIGl0IHRoaXMgd2F5PyAgQmVjYXVzZSB0aGUgY2FsY3VsYXRlZCBDUkMgbXVzdCBiZSB0cmFuc21pdHRlZCBpbgorICogIG9yZGVyIGZyb20gaGlnaGVzdC1vcmRlciB0ZXJtIHRvIGxvd2VzdC1vcmRlciB0ZXJtLiAgVUFSVHMgdHJhbnNtaXQKKyAqICBjaGFyYWN0ZXJzIGluIG9yZGVyIGZyb20gTFNCIHRvIE1TQi4gIEJ5IHN0b3JpbmcgdGhlIENSQyB0aGlzIHdheSwKKyAqICB3ZSBoYW5kIGl0IHRvIHRoZSBVQVJUIGluIHRoZSBvcmRlciBsb3ctYnl0ZSB0byBoaWdoLWJ5dGU7IHRoZSBVQVJUCisgKiAgc2VuZHMgZWFjaCBsb3ctYml0IHRvIGhpZ2h0LWJpdDsgYW5kIHRoZSByZXN1bHQgaXMgdHJhbnNtaXNzaW9uIGJpdAorICogIGJ5IGJpdCBmcm9tIGhpZ2hlc3QtIHRvIGxvd2VzdC1vcmRlciB0ZXJtIHdpdGhvdXQgcmVxdWlyaW5nIGFueSBiaXQKKyAqICBzaHVmZmxpbmcgb24gb3VyIHBhcnQuICBSZWNlcHRpb24gd29ya3Mgc2ltaWxhcmx5LgorICoKKyAqICBUaGUgZmVlZGJhY2sgdGVybXMgdGFibGUgY29uc2lzdHMgb2YgMjU2LCAzMi1iaXQgZW50cmllcy4gIE5vdGVzCisgKgorICogICAgICBUaGUgdGFibGUgY2FuIGJlIGdlbmVyYXRlZCBhdCBydW50aW1lIGlmIGRlc2lyZWQ7IGNvZGUgdG8gZG8gc28KKyAqICAgICAgaXMgc2hvd24gbGF0ZXIuICBJdCBtaWdodCBub3QgYmUgb2J2aW91cywgYnV0IHRoZSBmZWVkYmFjaworICogICAgICB0ZXJtcyBzaW1wbHkgcmVwcmVzZW50IHRoZSByZXN1bHRzIG9mIGVpZ2h0IHNoaWZ0L3hvciBvcGVyYS0KKyAqICAgICAgdGlvbnMgZm9yIGFsbCBjb21iaW5hdGlvbnMgb2YgZGF0YSBhbmQgQ1JDIHJlZ2lzdGVyIHZhbHVlcy4KKyAqCisgKiAgICAgIFRoZSB2YWx1ZXMgbXVzdCBiZSByaWdodC1zaGlmdGVkIGJ5IGVpZ2h0IGJpdHMgYnkgdGhlICJ1cGRjcmMiCisgKiAgICAgIGxvZ2ljOyB0aGUgc2hpZnQgbXVzdCBiZSB1bnNpZ25lZCAoYnJpbmcgaW4gemVyb2VzKS4gIE9uIHNvbWUKKyAqICAgICAgaGFyZHdhcmUgeW91IGNvdWxkIHByb2JhYmx5IG9wdGltaXplIHRoZSBzaGlmdCBpbiBhc3NlbWJsZXIgYnkKKyAqICAgICAgdXNpbmcgYnl0ZS1zd2FwIGluc3RydWN0aW9ucy4KKyAqICAgICAgcG9seW5vbWlhbCAkZWRiODgzMjAKKyAqCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlICJjcmMzMi5oIgorCisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBjcmMzMl90YWJbXSA9IHsKKwkweDAwMDAwMDAwTCwgMHg3NzA3MzA5NkwsIDB4ZWUwZTYxMmNMLCAweDk5MDk1MWJhTCwgMHgwNzZkYzQxOUwsCisJMHg3MDZhZjQ4ZkwsIDB4ZTk2M2E1MzVMLCAweDllNjQ5NWEzTCwgMHgwZWRiODgzMkwsIDB4NzlkY2I4YTRMLAorCTB4ZTBkNWU5MWVMLCAweDk3ZDJkOTg4TCwgMHgwOWI2NGMyYkwsIDB4N2ViMTdjYmRMLCAweGU3YjgyZDA3TCwKKwkweDkwYmYxZDkxTCwgMHgxZGI3MTA2NEwsIDB4NmFiMDIwZjJMLCAweGYzYjk3MTQ4TCwgMHg4NGJlNDFkZUwsCisJMHgxYWRhZDQ3ZEwsIDB4NmRkZGU0ZWJMLCAweGY0ZDRiNTUxTCwgMHg4M2QzODVjN0wsIDB4MTM2Yzk4NTZMLAorCTB4NjQ2YmE4YzBMLCAweGZkNjJmOTdhTCwgMHg4YTY1YzllY0wsIDB4MTQwMTVjNGZMLCAweDYzMDY2Y2Q5TCwKKwkweGZhMGYzZDYzTCwgMHg4ZDA4MGRmNUwsIDB4M2I2ZTIwYzhMLCAweDRjNjkxMDVlTCwgMHhkNTYwNDFlNEwsCisJMHhhMjY3NzE3MkwsIDB4M2MwM2U0ZDFMLCAweDRiMDRkNDQ3TCwgMHhkMjBkODVmZEwsIDB4YTUwYWI1NmJMLAorCTB4MzViNWE4ZmFMLCAweDQyYjI5ODZjTCwgMHhkYmJiYzlkNkwsIDB4YWNiY2Y5NDBMLCAweDMyZDg2Y2UzTCwKKwkweDQ1ZGY1Yzc1TCwgMHhkY2Q2MGRjZkwsIDB4YWJkMTNkNTlMLCAweDI2ZDkzMGFjTCwgMHg1MWRlMDAzYUwsCisJMHhjOGQ3NTE4MEwsIDB4YmZkMDYxMTZMLCAweDIxYjRmNGI1TCwgMHg1NmIzYzQyM0wsIDB4Y2ZiYTk1OTlMLAorCTB4YjhiZGE1MGZMLCAweDI4MDJiODllTCwgMHg1ZjA1ODgwOEwsIDB4YzYwY2Q5YjJMLCAweGIxMGJlOTI0TCwKKwkweDJmNmY3Yzg3TCwgMHg1ODY4NGMxMUwsIDB4YzE2MTFkYWJMLCAweGI2NjYyZDNkTCwgMHg3NmRjNDE5MEwsCisJMHgwMWRiNzEwNkwsIDB4OThkMjIwYmNMLCAweGVmZDUxMDJhTCwgMHg3MWIxODU4OUwsIDB4MDZiNmI1MWZMLAorCTB4OWZiZmU0YTVMLCAweGU4YjhkNDMzTCwgMHg3ODA3YzlhMkwsIDB4MGYwMGY5MzRMLCAweDk2MDlhODhlTCwKKwkweGUxMGU5ODE4TCwgMHg3ZjZhMGRiYkwsIDB4MDg2ZDNkMmRMLCAweDkxNjQ2Yzk3TCwgMHhlNjYzNWMwMUwsCisJMHg2YjZiNTFmNEwsIDB4MWM2YzYxNjJMLCAweDg1NjUzMGQ4TCwgMHhmMjYyMDA0ZUwsIDB4NmMwNjk1ZWRMLAorCTB4MWIwMWE1N2JMLCAweDgyMDhmNGMxTCwgMHhmNTBmYzQ1N0wsIDB4NjViMGQ5YzZMLCAweDEyYjdlOTUwTCwKKwkweDhiYmViOGVhTCwgMHhmY2I5ODg3Y0wsIDB4NjJkZDFkZGZMLCAweDE1ZGEyZDQ5TCwgMHg4Y2QzN2NmM0wsCisJMHhmYmQ0NGM2NUwsIDB4NGRiMjYxNThMLCAweDNhYjU1MWNlTCwgMHhhM2JjMDA3NEwsIDB4ZDRiYjMwZTJMLAorCTB4NGFkZmE1NDFMLCAweDNkZDg5NWQ3TCwgMHhhNGQxYzQ2ZEwsIDB4ZDNkNmY0ZmJMLCAweDQzNjllOTZhTCwKKwkweDM0NmVkOWZjTCwgMHhhZDY3ODg0NkwsIDB4ZGE2MGI4ZDBMLCAweDQ0MDQyZDczTCwgMHgzMzAzMWRlNUwsCisJMHhhYTBhNGM1ZkwsIDB4ZGQwZDdjYzlMLCAweDUwMDU3MTNjTCwgMHgyNzAyNDFhYUwsIDB4YmUwYjEwMTBMLAorCTB4YzkwYzIwODZMLCAweDU3NjhiNTI1TCwgMHgyMDZmODViM0wsIDB4Yjk2NmQ0MDlMLCAweGNlNjFlNDlmTCwKKwkweDVlZGVmOTBlTCwgMHgyOWQ5Yzk5OEwsIDB4YjBkMDk4MjJMLCAweGM3ZDdhOGI0TCwgMHg1OWIzM2QxN0wsCisJMHgyZWI0MGQ4MUwsIDB4YjdiZDVjM2JMLCAweGMwYmE2Y2FkTCwgMHhlZGI4ODMyMEwsIDB4OWFiZmIzYjZMLAorCTB4MDNiNmUyMGNMLCAweDc0YjFkMjlhTCwgMHhlYWQ1NDczOUwsIDB4OWRkMjc3YWZMLCAweDA0ZGIyNjE1TCwKKwkweDczZGMxNjgzTCwgMHhlMzYzMGIxMkwsIDB4OTQ2NDNiODRMLCAweDBkNmQ2YTNlTCwgMHg3YTZhNWFhOEwsCisJMHhlNDBlY2YwYkwsIDB4OTMwOWZmOWRMLCAweDBhMDBhZTI3TCwgMHg3ZDA3OWViMUwsIDB4ZjAwZjkzNDRMLAorCTB4ODcwOGEzZDJMLCAweDFlMDFmMjY4TCwgMHg2OTA2YzJmZUwsIDB4Zjc2MjU3NWRMLCAweDgwNjU2N2NiTCwKKwkweDE5NmMzNjcxTCwgMHg2ZTZiMDZlN0wsIDB4ZmVkNDFiNzZMLCAweDg5ZDMyYmUwTCwgMHgxMGRhN2E1YUwsCisJMHg2N2RkNGFjY0wsIDB4ZjliOWRmNmZMLCAweDhlYmVlZmY5TCwgMHgxN2I3YmU0M0wsIDB4NjBiMDhlZDVMLAorCTB4ZDZkNmEzZThMLCAweGExZDE5MzdlTCwgMHgzOGQ4YzJjNEwsIDB4NGZkZmYyNTJMLCAweGQxYmI2N2YxTCwKKwkweGE2YmM1NzY3TCwgMHgzZmI1MDZkZEwsIDB4NDhiMjM2NGJMLCAweGQ4MGQyYmRhTCwgMHhhZjBhMWI0Y0wsCisJMHgzNjAzNGFmNkwsIDB4NDEwNDdhNjBMLCAweGRmNjBlZmMzTCwgMHhhODY3ZGY1NUwsIDB4MzE2ZThlZWZMLAorCTB4NDY2OWJlNzlMLCAweGNiNjFiMzhjTCwgMHhiYzY2ODMxYUwsIDB4MjU2ZmQyYTBMLCAweDUyNjhlMjM2TCwKKwkweGNjMGM3Nzk1TCwgMHhiYjBiNDcwM0wsIDB4MjIwMjE2YjlMLCAweDU1MDUyNjJmTCwgMHhjNWJhM2JiZUwsCisJMHhiMmJkMGIyOEwsIDB4MmJiNDVhOTJMLCAweDVjYjM2YTA0TCwgMHhjMmQ3ZmZhN0wsIDB4YjVkMGNmMzFMLAorCTB4MmNkOTllOGJMLCAweDViZGVhZTFkTCwgMHg5YjY0YzJiMEwsIDB4ZWM2M2YyMjZMLCAweDc1NmFhMzljTCwKKwkweDAyNmQ5MzBhTCwgMHg5YzA5MDZhOUwsIDB4ZWIwZTM2M2ZMLCAweDcyMDc2Nzg1TCwgMHgwNTAwNTcxM0wsCisJMHg5NWJmNGE4MkwsIDB4ZTJiODdhMTRMLCAweDdiYjEyYmFlTCwgMHgwY2I2MWIzOEwsIDB4OTJkMjhlOWJMLAorCTB4ZTVkNWJlMGRMLCAweDdjZGNlZmI3TCwgMHgwYmRiZGYyMUwsIDB4ODZkM2QyZDRMLCAweGYxZDRlMjQyTCwKKwkweDY4ZGRiM2Y4TCwgMHgxZmRhODM2ZUwsIDB4ODFiZTE2Y2RMLCAweGY2YjkyNjViTCwgMHg2ZmIwNzdlMUwsCisJMHgxOGI3NDc3N0wsIDB4ODgwODVhZTZMLCAweGZmMGY2YTcwTCwgMHg2NjA2M2JjYUwsIDB4MTEwMTBiNWNMLAorCTB4OGY2NTllZmZMLCAweGY4NjJhZTY5TCwgMHg2MTZiZmZkM0wsIDB4MTY2Y2NmNDVMLCAweGEwMGFlMjc4TCwKKwkweGQ3MGRkMmVlTCwgMHg0ZTA0ODM1NEwsIDB4MzkwM2IzYzJMLCAweGE3NjcyNjYxTCwgMHhkMDYwMTZmN0wsCisJMHg0OTY5NDc0ZEwsIDB4M2U2ZTc3ZGJMLCAweGFlZDE2YTRhTCwgMHhkOWQ2NWFkY0wsIDB4NDBkZjBiNjZMLAorCTB4MzdkODNiZjBMLCAweGE5YmNhZTUzTCwgMHhkZWJiOWVjNUwsIDB4NDdiMmNmN2ZMLCAweDMwYjVmZmU5TCwKKwkweGJkYmRmMjFjTCwgMHhjYWJhYzI4YUwsIDB4NTNiMzkzMzBMLCAweDI0YjRhM2E2TCwgMHhiYWQwMzYwNUwsCisJMHhjZGQ3MDY5M0wsIDB4NTRkZTU3MjlMLCAweDIzZDk2N2JmTCwgMHhiMzY2N2EyZUwsIDB4YzQ2MTRhYjhMLAorCTB4NWQ2ODFiMDJMLCAweDJhNmYyYjk0TCwgMHhiNDBiYmUzN0wsIDB4YzMwYzhlYTFMLCAweDVhMDVkZjFiTCwKKwkweDJkMDJlZjhkTAorfTsKKworLyoKKyAqIFRoaXMgYSBnZW5lcmljIGNyYzMyKCkgZnVuY3Rpb24sIGl0IHRha2VzIHNlZWQgYXMgYW4gYXJndW1lbnQsCisgKiBhbmQgZG9lcyBfX25vdF9fIHhvciBhdCB0aGUgZW5kLiBUaGVuIGluZGl2aWR1YWwgdXNlcnMgY2FuIGRvCisgKiB3aGF0ZXZlciB0aGV5IG5lZWQuCisgKi8KK3VpbnQzMl90IGNyYzMyKHVpbnQzMl90IHNlZWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwl1aW50MzJfdCBjcmMgPSBzZWVkOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnAgPSBidWY7CisKKwl3aGlsZShsZW4tLSA+IDApCisJCWNyYyA9IGNyYzMyX3RhYlsoY3JjIF4gKnArKykgJiAweGZmXSBeIChjcmMgPj4gOCk7CisKKwlyZXR1cm4gY3JjOworfQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvZW52LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvZW52LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJmYWRmNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9lbnYuYwpAQCAtMCwwICsxLDczIEBACisvKgorICogU2VjdXJpdHkgY2hlY2tzIG9mIGVudmlyb25tZW50CisgKiBBZGRlZCBmcm9tIHNoYWRvdy11dGlscyBwYWNrYWdlCisgKiBieSBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgKgorICovIAorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlICJlbnYuaCIKKworZXh0ZXJuIGNoYXIgKiplbnZpcm9uOworCitzdGF0aWMgY2hhciAqIGNvbnN0IGZvcmJpZFtdID0geworICAgICAgICAiX1JMRF89IiwKKyAgICAgICAgIkJBU0hfRU5WPSIsICAgIC8qIEdOVSBjcmVlcGluZyBmZWF0dXJpc20gc3RyaWtlcyBhZ2Fpbi4uLiAqLworICAgICAgICAiRU5WPSIsCisgICAgICAgICJIT01FPSIsCisgICAgICAgICJJRlM9IiwKKyAgICAgICAgIktSQl9DT05GPSIsCisgICAgICAgICJMRF8iLCAgICAgICAgICAvKiBhbnl0aGluZyB3aXRoIHRoZSBMRF8gcHJlZml4ICovCisgICAgICAgICJMSUJQQVRIPSIsCisgICAgICAgICJNQUlMPSIsCisgICAgICAgICJOTFNQQVRIPSIsCisgICAgICAgICJQQVRIPSIsCisgICAgICAgICJTSEVMTD0iLAorICAgICAgICAiU0hMSUJfUEFUSD0iLAorICAgICAgICAoY2hhciAqKSAwCit9OworCisvKiB0aGVzZSBhcmUgYWxsb3dlZCwgYnV0IHdpdGggbm8gc2xhc2hlcyBpbnNpZGUKKyAgICh0byB3b3JrIGFyb3VuZCBzZWN1cml0eSBwcm9ibGVtcyBpbiBHTlUgZ2V0dGV4dCkgKi8KK3N0YXRpYyBjaGFyICogY29uc3Qgbm9zbGFzaFtdID0geworICAgICAgICAiTEFORz0iLAorICAgICAgICAiTEFOR1VBR0U9IiwKKyAgICAgICAgIkxDXyIsICAgICAgICAgIC8qIGFueXRoaW5nIHdpdGggdGhlIExDXyBwcmVmaXggKi8KKyAgICAgICAgKGNoYXIgKikgMAorfTsKKwordm9pZAorc2FuaXRpemVfZW52KHZvaWQpCit7CisgICAgICAgIGNoYXIgKiplbnZwID0gZW52aXJvbjsKKyAgICAgICAgY2hhciAqIGNvbnN0ICpiYWQ7CisgICAgICAgIGNoYXIgKipjdXI7CisgICAgICAgIGNoYXIgKiptb3ZlOworCisgICAgICAgIGZvciAoY3VyID0gZW52cDsgKmN1cjsgY3VyKyspIHsKKyAgICAgICAgICAgICAgICBmb3IgKGJhZCA9IGZvcmJpZDsgKmJhZDsgYmFkKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJuY21wKCpjdXIsICpiYWQsIHN0cmxlbigqYmFkKSkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKG1vdmUgPSBjdXI7ICptb3ZlOyBtb3ZlKyspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm1vdmUgPSAqKG1vdmUgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLS07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoY3VyID0gZW52cDsgKmN1cjsgY3VyKyspIHsKKyAgICAgICAgICAgICAgICBmb3IgKGJhZCA9IG5vc2xhc2g7ICpiYWQ7IGJhZCsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RybmNtcCgqY3VyLCAqYmFkLCBzdHJsZW4oKmJhZCkpICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJjaHIoKmN1ciwgJy8nKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7ICAvKiBPSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChtb3ZlID0gY3VyOyAqbW92ZTsgbW92ZSsrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbW92ZSA9ICoobW92ZSArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgY3VyLS07CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL2ZzcHJvYmUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9mc3Byb2JlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcyMTE4MAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9mc3Byb2JlLmMKQEAgLTAsMCArMSwyNTIgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaWZkZWYgSEFWRV9CTEtJRF9CTEtJRF9ICisjaW5jbHVkZSA8YmxraWQvYmxraWQuaD4KKyNlbHNlCisjaW5jbHVkZSA8YmxraWQuaD4KKyNlbmRpZgorCisjaW5jbHVkZSAiYmxrZGV2LmgiCisjaW5jbHVkZSAiY2Fub25pY2FsaXplLmgiCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAiZnNwcm9iZS5oIgorCitzdGF0aWMgYmxraWRfY2FjaGUgYmxjYWNoZTsKKworI2lmZGVmIEhBVkVfTElCQkxLSURfSU5URVJOQUwKKy8qIGFzayBrZXJuZWwgZGV2ZWxvcGVycyB3aHkgd2UgbmVlZCBzdWNoIHVnbHkgb3BlbigpIG1ldGhvZC4uLiAqLworc3RhdGljIGludAorb3Blbl9kZXZpY2UoY29uc3QgY2hhciAqZGV2bmFtZSkKK3sKKwlpbnQgcmV0cmllcyA9IDA7CisKKwlkbyB7CisJCWludCBmZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkpOworCQlpZiAoZmQgPj0gMCkKKwkJCXJldHVybiBmZDsKKwkJaWYgKGVycm5vICE9IEVOT01FRElVTSkKKwkJCWJyZWFrOworCQlpZiAocmV0cmllcyA+PSBDUkRPTV9OT01FRElVTV9SRVRSSUVTKQorCQkJYnJlYWs7CisJCSsrcmV0cmllczsKKwkJc2xlZXAoMyk7CisJfSB3aGlsZSgxKTsKKworCXJldHVybiAtMTsKK30KKyNlbmRpZgorCisvKgorICogUGFyc2VzIE5BTUU9dmFsdWUsIHJldHVybnMgLTEgb24gcGFyc2UgZXJyb3IsIDAgc3VjY2Vzcy4gVGhlIHN1Y2Nlc3MgaXMgYWxzbworICogd2hlbiB0aGUgJ3NwZWMnIGRvZXNuJ3QgY29udGFpbiBuYW1lPXZhbHVlIHBhaXIgKGJlY2F1c2UgdGhlIHNwZWMgY291bGQgYmUKKyAqIGEgZGV2bmFtZSB0b28pLiBJbiBwYXJ0aWN1bGFyIGNhc2UgdGhlIHBvaW50ZXIgJ25hbWUnIGlzIHNldCB0byBOVUxMLgorICovCitpbnQKK2ZzcHJvYmVfcGFyc2Vfc3BlYyhjb25zdCBjaGFyICpzcGVjLCBjaGFyICoqbmFtZSwgY2hhciAqKnZhbHVlKQoreworCSpuYW1lID0gTlVMTDsKKwkqdmFsdWUgPSBOVUxMOworCisJaWYgKHN0cmNocihzcGVjLCAnPScpKQorCQlyZXR1cm4gYmxraWRfcGFyc2VfdGFnX3N0cmluZyhzcGVjLCBuYW1lLCB2YWx1ZSk7CisKKwlyZXR1cm4gMDsKK30KKworY2hhciAqCitmc3Byb2JlX2dldF9kZXZuYW1lX2J5X3NwZWMoY29uc3QgY2hhciAqc3BlYykKK3sKKwljaGFyICpuYW1lLCAqdmFsdWU7CisKKwlpZiAoIXNwZWMpCisJCXJldHVybiBOVUxMOworCWlmIChmc3Byb2JlX3BhcnNlX3NwZWMoc3BlYywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKKwkJcmV0dXJuIE5VTEw7CQkJCS8qIHBhcnNlIGVycm9yICovCisJaWYgKG5hbWUpIHsKKwkJY2hhciAqbnNwZWMgPSBOVUxMOworCisJCWlmICghc3RyY21wKG5hbWUsIkxBQkVMIikpCisJCQluc3BlYyA9IGZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfbGFiZWwodmFsdWUpOworCQllbHNlIGlmICghc3RyY21wKG5hbWUsIlVVSUQiKSkKKwkJCW5zcGVjID0gZnNwcm9iZV9nZXRfZGV2bmFtZV9ieV91dWlkKHZhbHVlKTsKKworCQlmcmVlKG5hbWUpOworCQlmcmVlKHZhbHVlKTsKKwkJcmV0dXJuIG5zcGVjOworCX0KKworCXJldHVybiBjYW5vbmljYWxpemVfcGF0aChzcGVjKTsKK30KKwordm9pZAorZnNwcm9iZV9pbml0KHZvaWQpCit7CisJYmxjYWNoZSA9IE5VTEw7Cit9CisKK2ludAorZnNwcm9iZV9rbm93bl9mc3R5cGUoY29uc3QgY2hhciAqZnN0eXBlKQoreworCXJldHVybiBibGtpZF9rbm93bl9mc3R5cGUoZnN0eXBlKTsKK30KKworI2lmZGVmIEhBVkVfTElCQkxLSURfSU5URVJOQUwKKy8qCisgKiBsaWJibGtpZCBmcm9tIHV0aWwtbGludXgtbmcKKyAqIC0tIHJlY29tbWVuZGVkCisgKi8KK3N0YXRpYyBibGtpZF9wcm9iZSBibHByb2JlOworCit2b2lkCitmc3Byb2JlX2V4aXQodm9pZCkKK3sKKwlpZiAoYmxwcm9iZSkKKwkJYmxraWRfZnJlZV9wcm9iZShibHByb2JlKTsKKwlpZiAoYmxjYWNoZSkKKwkJYmxraWRfcHV0X2NhY2hlKGJsY2FjaGUpOworfQorCisvKiByZXR1cm5zIGRldmljZSBMQUJFTCwgVVVJRCwgRlNUWVBFLCAuLi4gYnkgbG93LWxldmVsCisgKiBwcm9iaW5nIGludGVyZmFjZQorICovCitzdGF0aWMgY2hhciAqCitmc3Byb2JlX2dldF92YWx1ZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpkZXZuYW1lKQoreworCWludCBmZDsKKwljb25zdCBjaGFyICpkYXRhID0gTlVMTDsKKworCWlmICghZGV2bmFtZSB8fCAhbmFtZSkKKwkJcmV0dXJuIE5VTEw7CisJZmQgPSBvcGVuX2RldmljZShkZXZuYW1lKTsKKwlpZiAoZmQgPCAwKQorCQlyZXR1cm4gTlVMTDsKKwlpZiAoIWJscHJvYmUpCisJCWJscHJvYmUgPSBibGtpZF9uZXdfcHJvYmUoKTsKKwlpZiAoIWJscHJvYmUpCisJCWdvdG8gZG9uZTsKKwlpZiAoYmxraWRfcHJvYmVfc2V0X2RldmljZShibHByb2JlLCBmZCwgMCwgMCkpCisJCWdvdG8gZG9uZTsKKworCWJsa2lkX3Byb2JlX2VuYWJsZV9zdXBlcmJsb2NrcyhibHByb2JlLCAxKTsKKworCWJsa2lkX3Byb2JlX3NldF9zdXBlcmJsb2Nrc19mbGFncyhibHByb2JlLAorCQlCTEtJRF9TVUJMS1NfTEFCRUwgfCBCTEtJRF9TVUJMS1NfVVVJRCB8IEJMS0lEX1NVQkxLU19UWVBFKTsKKworCWlmIChibGtpZF9kb19zYWZlcHJvYmUoYmxwcm9iZSkpCisJCWdvdG8gZG9uZTsKKwlpZiAoYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKGJscHJvYmUsIG5hbWUsICZkYXRhLCBOVUxMKSkKKwkJZ290byBkb25lOworZG9uZToKKwljbG9zZShmZCk7CisJcmV0dXJuIGRhdGEgPyBzdHJkdXAoKGNoYXIgKikgZGF0YSkgOiBOVUxMOworfQorCitjaGFyICoKK2ZzcHJvYmVfZ2V0X2xhYmVsX2J5X2Rldm5hbWUoY29uc3QgY2hhciAqZGV2bmFtZSkKK3sKKwlyZXR1cm4gZnNwcm9iZV9nZXRfdmFsdWUoIkxBQkVMIiwgZGV2bmFtZSk7Cit9CisKK2NoYXIgKgorZnNwcm9iZV9nZXRfdXVpZF9ieV9kZXZuYW1lKGNvbnN0IGNoYXIgKmRldm5hbWUpCit7CisJcmV0dXJuIGZzcHJvYmVfZ2V0X3ZhbHVlKCJVVUlEIiwgZGV2bmFtZSk7Cit9CisKK2NoYXIgKgorZnNwcm9iZV9nZXRfZnN0eXBlX2J5X2Rldm5hbWUoY29uc3QgY2hhciAqZGV2bmFtZSkKK3sKKwlyZXR1cm4gZnNwcm9iZV9nZXRfdmFsdWUoIlRZUEUiLCBkZXZuYW1lKTsKK30KKworY2hhciAqCitmc3Byb2JlX2dldF9kZXZuYW1lX2J5X3V1aWQoY29uc3QgY2hhciAqdXVpZCkKK3sKKwlyZXR1cm4gYmxraWRfZXZhbHVhdGVfdGFnKCJVVUlEIiwgdXVpZCwgJmJsY2FjaGUpOworfQorCitjaGFyICoKK2ZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfbGFiZWwoY29uc3QgY2hhciAqbGFiZWwpCit7CisJcmV0dXJuIGJsa2lkX2V2YWx1YXRlX3RhZygiTEFCRUwiLCBsYWJlbCwgJmJsY2FjaGUpOworfQorCisjZWxzZSAvKiAhSEFWRV9MSUJCTEtJRF9JTlRFUk5BTCAqLworCisvKgorICogQ2xhc3NpYyBsaWJibGtpZCAoZnJvbSBlMmZzcHJvZ3MpIHdpdGhvdXQgYmxraWRfZXZhbHVhdGVfdGFnKCkKKyAqIC0tIGRlcHJlY2F0ZWQKKyAqLworI2RlZmluZSBCTEtJRF9FTVBUWV9DQUNIRQkiL2Rldi9udWxsIgorCit2b2lkCitmc3Byb2JlX2V4aXQodm9pZCkKK3sKKwlpZiAoYmxjYWNoZSkKKwkJYmxraWRfcHV0X2NhY2hlKGJsY2FjaGUpOworfQorCitjaGFyICoKK2ZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfdXVpZChjb25zdCBjaGFyICp1dWlkKQoreworCWlmICghYmxjYWNoZSkKKwkJYmxraWRfZ2V0X2NhY2hlKCZibGNhY2hlLCBOVUxMKTsKKworCXJldHVybiBibGtpZF9nZXRfZGV2bmFtZShibGNhY2hlLCAiVVVJRCIsIHV1aWQpOworfQorCitjaGFyICoKK2ZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfbGFiZWwoY29uc3QgY2hhciAqbGFiZWwpCit7CisJaWYgKCFibGNhY2hlKQorCQlibGtpZF9nZXRfY2FjaGUoJmJsY2FjaGUsIE5VTEwpOworCisJcmV0dXJuIGJsa2lkX2dldF9kZXZuYW1lKGJsY2FjaGUsICJMQUJFTCIsIGxhYmVsKTsKK30KKworY2hhciAqCitmc3Byb2JlX2dldF9mc3R5cGVfYnlfZGV2bmFtZShjb25zdCBjaGFyICpkZXZuYW1lKQoreworCWJsa2lkX2NhY2hlIGM7CisJY2hhciAqdHA7CisKKwlpZiAoYmxjYWNoZSkKKwkJcmV0dXJuIGJsa2lkX2dldF90YWdfdmFsdWUoYmxjYWNoZSwgIlRZUEUiLCBkZXZuYW1lKTsKKworCS8qIFRoZSBjYWNoZSBpcyBub3QgaW5pdGlhbGl6ZWQgeWV0LiBVc2UgZW1wdHkgY2FjaGUgcmF0aGVyIHRoYW4gd2FzdGUKKwkgKiB0aW1lIHdpdGggL2V0Yy9ibGtpZC50YWIuIEl0IHNlZW1zIHRoYXQgcHJvYmUgRlMgaXMgZmFzdGVyIHRoYW4KKwkgKiBwYXJzZSB0aGUgY2FjaGUgZmlsZS4gIC0tIGt6YWsgKDE3LU1heS0yMDA3KQorCSAqLworCWJsa2lkX2dldF9jYWNoZSgmYywgQkxLSURfRU1QVFlfQ0FDSEUpOworCXRwID0gYmxraWRfZ2V0X3RhZ192YWx1ZShjLCAiVFlQRSIsIGRldm5hbWUpOworCWJsa2lkX3B1dF9jYWNoZShjKTsKKworCXJldHVybiB0cDsKK30KKworY2hhciAqCitmc3Byb2JlX2dldF9sYWJlbF9ieV9kZXZuYW1lKGNvbnN0IGNoYXIgKmRldm5hbWUpCit7CisJaWYgKCFibGNhY2hlKQorCQlibGtpZF9nZXRfY2FjaGUoJmJsY2FjaGUsIE5VTEwpOworCisJcmV0dXJuIGJsa2lkX2dldF90YWdfdmFsdWUoYmxjYWNoZSwgIkxBQkVMIiwgZGV2bmFtZSk7Cit9CisKK2NoYXIgKgorZnNwcm9iZV9nZXRfdXVpZF9ieV9kZXZuYW1lKGNvbnN0IGNoYXIgKmRldm5hbWUpCit7CisJaWYgKCFibGNhY2hlKQorCQlibGtpZF9nZXRfY2FjaGUoJmJsY2FjaGUsIE5VTEwpOworCisJcmV0dXJuIGJsa2lkX2dldF90YWdfdmFsdWUoYmxjYWNoZSwgIlVVSUQiLCBkZXZuYW1lKTsKK30KKworI2VuZGlmIC8qICFIQVZFX0xJQkJMS0lEX0lOVEVSTkFMICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvaXNtb3VudGVkLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvaXNtb3VudGVkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRmZTQyNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9pc21vdW50ZWQuYwpAQCAtMCwwICsxLDM2MSBAQAorLyoKKyAqIGlzbW91bnRlZC5jIC0tLSBDaGVjayB0byBzZWUgaWYgdGhlIGZpbGVzeXN0ZW0gd2FzIG1vdW50ZWQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTUsMTk5NiwxOTk3LDE5OTgsMTk5OSwyMDAwLDIwMDggVGhlb2RvcmUgVHMnby4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgUHVibGljCisgKiBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8bW50ZW50Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAiaXNtb3VudGVkLmgiCisKKyNpZmRlZiBIQVZFX01OVEVOVF9ICisvKgorICogSGVscGVyIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBhIGZpbGUgaW4gL2V0Yy9tdGFiIGZvcm1hdCB0byBzZWUgaWYgYQorICogZmlsZXN5c3RlbSBpcyBtb3VudGVkLiAgUmV0dXJucyBhbiBlcnJvciBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0CisgKiBvciBjYW4ndCBiZSBvcGVuZWQuCisgKi8KK3N0YXRpYyBpbnQgY2hlY2tfbW50ZW50X2ZpbGUoY29uc3QgY2hhciAqbXRhYl9maWxlLCBjb25zdCBjaGFyICpmaWxlLAorCQkJCSAgIGludCAqbW91bnRfZmxhZ3MsIGNoYXIgKm10cHQsIGludCBtdGxlbikKK3sKKwlzdHJ1Y3QgbW50ZW50CSptbnQ7CisJc3RydWN0IHN0YXQJc3RfYnVmOworCWludAkJcmV0dmFsID0gMDsKKwlkZXZfdAkJZmlsZV9kZXY9MCwgZmlsZV9yZGV2PTA7CisJaW5vX3QJCWZpbGVfaW5vPTA7CisJRklMRQkJKmY7CisJaW50CQlmZDsKKworCSptb3VudF9mbGFncyA9IDA7CisJaWYgKChmID0gc2V0bW50ZW50IChtdGFiX2ZpbGUsICJyIikpID09IE5VTEwpCisJCXJldHVybiBlcnJubzsKKwlpZiAoc3RhdChmaWxlLCAmc3RfYnVmKSA9PSAwKSB7CisJCWlmIChTX0lTQkxLKHN0X2J1Zi5zdF9tb2RlKSkgeworI2lmbmRlZiBfX0dOVV9fIC8qIFRoZSBHTlUgaHVyZCBpcyBicm9rZW4gd2l0aCByZXNwZWN0IHRvIHN0YXQgZGV2aWNlcyAqLworCQkJZmlsZV9yZGV2ID0gc3RfYnVmLnN0X3JkZXY7CisjZW5kaWYJLyogX19HTlVfXyAqLworCQl9IGVsc2UgeworCQkJZmlsZV9kZXYgPSBzdF9idWYuc3RfZGV2OworCQkJZmlsZV9pbm8gPSBzdF9idWYuc3RfaW5vOworCQl9CisJfQorCXdoaWxlICgobW50ID0gZ2V0bW50ZW50IChmKSkgIT0gTlVMTCkgeworCQlpZiAobW50LT5tbnRfZnNuYW1lWzBdICE9ICcvJykKKwkJCWNvbnRpbnVlOworCQlpZiAoc3RyY21wKGZpbGUsIG1udC0+bW50X2ZzbmFtZSkgPT0gMCkKKwkJCWJyZWFrOworCQlpZiAoc3RhdChtbnQtPm1udF9mc25hbWUsICZzdF9idWYpID09IDApIHsKKwkJCWlmIChTX0lTQkxLKHN0X2J1Zi5zdF9tb2RlKSkgeworI2lmbmRlZiBfX0dOVV9fCisJCQkJaWYgKGZpbGVfcmRldiAmJiAoZmlsZV9yZGV2ID09IHN0X2J1Zi5zdF9yZGV2KSkKKwkJCQkJYnJlYWs7CisjZW5kaWYJLyogX19HTlVfXyAqLworCQkJfSBlbHNlIHsKKwkJCQlpZiAoZmlsZV9kZXYgJiYgKChmaWxlX2RldiA9PSBzdF9idWYuc3RfZGV2KSAmJgorCQkJCQkJIChmaWxlX2lubyA9PSBzdF9idWYuc3RfaW5vKSkpCisJCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJaWYgKG1udCA9PSAwKSB7CisjaWZuZGVmIF9fR05VX18gLyogVGhlIEdOVSBodXJkIGlzIGJyb2tlbiB3aXRoIHJlc3BlY3QgdG8gc3RhdCBkZXZpY2VzICovCisJCS8qCisJCSAqIERvIGFuIGV4dHJhIGNoZWNrIHRvIHNlZSBpZiB0aGlzIGlzIHRoZSByb290IGRldmljZS4gIFdlCisJCSAqIGNhbid0IHRydXN0IC9ldGMvbXRhYiwgYW5kIC9wcm9jL21vdW50cyB3aWxsIG9ubHkgbGlzdAorCQkgKiAvZGV2L3Jvb3QgZm9yIHRoZSByb290IGZpbGVzeXN0ZW0uICBBcmdoLiAgSW5zdGVhZCB3ZQorCQkgKiBjaGVjayBpZiB0aGUgZ2l2ZW4gZGV2aWNlIGhhcyB0aGUgc2FtZSBtYWpvci9taW5vciBudW1iZXIKKwkJICogYXMgdGhlIGRldmljZSB0aGF0IHRoZSByb290IGRpcmVjdG9yeSBpcyBvbi4KKwkJICovCisJCWlmIChmaWxlX3JkZXYgJiYgc3RhdCgiLyIsICZzdF9idWYpID09IDAgJiYKKwkJICAgIHN0X2J1Zi5zdF9kZXYgPT0gZmlsZV9yZGV2KSB7CisJCQkqbW91bnRfZmxhZ3MgPSBNRl9NT1VOVEVEOworCQkJaWYgKG10cHQpCisJCQkJc3RybmNweShtdHB0LCAiLyIsIG10bGVuKTsKKwkJCWdvdG8gaXNfcm9vdDsKKwkJfQorI2VuZGlmCS8qIF9fR05VX18gKi8KKwkJZ290byBlcnJvdXQ7CisJfQorI2lmbmRlZiBfX0dOVV9fIC8qIFRoZSBHTlUgaHVyZCBpcyBkZWZpY2llbnQ7IHdoYXQgZWxzZSBpcyBuZXc/ICovCisJLyogVmFsaWRhdGUgdGhlIGVudHJ5IGluIGNhc2UgL2V0Yy9tdGFiIGlzIG91dCBvZiBkYXRlICovCisJLyoKKwkgKiBXZSBuZWVkIHRvIGJlIHBhcmFub2lkLCBiZWNhdXNlIHNvbWUgYnJva2VuIGRpc3RyaWJ1dGlvbnMKKwkgKiAocmVhZDogU2xhY2t3YXJlKSBkb24ndCBpbml0aWFsaXplIC9ldGMvbXRhYiBiZWZvcmUgY2hlY2tpbmcKKwkgKiBhbGwgb2YgdGhlIG5vbi1yb290IGZpbGVzeXN0ZW1zIG9uIHRoZSBkaXNrLgorCSAqLworCWlmIChzdGF0KG1udC0+bW50X2RpciwgJnN0X2J1ZikgPCAwKSB7CisJCXJldHZhbCA9IGVycm5vOworCQlpZiAocmV0dmFsID09IEVOT0VOVCkgeworI2lmZGVmIERFQlVHCisJCQlwcmludGYoIkJvZ3VzIGVudHJ5IGluICVzISAgKCVzIGRvZXMgbm90IGV4aXN0KVxuIiwKKwkJCSAgICAgICBtdGFiX2ZpbGUsIG1udC0+bW50X2Rpcik7CisjZW5kaWYgLyogREVCVUcgKi8KKwkJCXJldHZhbCA9IDA7CisJCX0KKwkJZ290byBlcnJvdXQ7CisJfQorCWlmIChmaWxlX3JkZXYgJiYgKHN0X2J1Zi5zdF9kZXYgIT0gZmlsZV9yZGV2KSkgeworI2lmZGVmIERFQlVHCisJCXByaW50ZigiQm9ndXMgZW50cnkgaW4gJXMhICAoJXMgbm90IG1vdW50ZWQgb24gJXMpXG4iLAorCQkgICAgICAgbXRhYl9maWxlLCBmaWxlLCBtbnQtPm1udF9kaXIpOworI2VuZGlmIC8qIERFQlVHICovCisJCWdvdG8gZXJyb3V0OworCX0KKyNlbmRpZiAvKiBfX0dOVV9fICovCisJKm1vdW50X2ZsYWdzID0gTUZfTU9VTlRFRDsKKworI2lmZGVmIE1OVE9QVF9STworCS8qIENoZWNrIHRvIHNlZSBpZiB0aGUgcm8gb3B0aW9uIGlzIHNldCAqLworCWlmIChoYXNtbnRvcHQobW50LCBNTlRPUFRfUk8pKQorCQkqbW91bnRfZmxhZ3MgfD0gTUZfUkVBRE9OTFk7CisjZW5kaWYKKworCWlmIChtdHB0KQorCQlzdHJuY3B5KG10cHQsIG1udC0+bW50X2RpciwgbXRsZW4pOworCS8qCisJICogQ2hlY2sgdG8gc2VlIGlmIHdlJ3JlIHJlZmVycmluZyB0byB0aGUgcm9vdCBmaWxlc3lzdGVtLgorCSAqIElmIHNvLCBkbyBhIG1hbnVhbCBjaGVjayB0byBzZWUgaWYgd2UgY2FuIG9wZW4gL2V0Yy9tdGFiCisJICogcmVhZC93cml0ZSwgc2luY2UgaWYgdGhlIHJvb3QgaXMgbW91bnRlZCByZWFkL29ubHksIHRoZQorCSAqIGNvbnRlbnRzIG9mIC9ldGMvbXRhYiBtYXkgbm90IGJlIGFjY3VyYXRlLgorCSAqLworCWlmICghc3RyY21wKG1udC0+bW50X2RpciwgIi8iKSkgeworaXNfcm9vdDoKKyNkZWZpbmUgVEVTVF9GSUxFICIvLmlzbW91bnQtdGVzdC1maWxlIgorCQkqbW91bnRfZmxhZ3MgfD0gTUZfSVNST09UOworCQlmZCA9IG9wZW4oVEVTVF9GSUxFLCBPX1JEV1J8T19DUkVBVCwgMDYwMCk7CisJCWlmIChmZCA8IDApIHsKKwkJCWlmIChlcnJubyA9PSBFUk9GUykKKwkJCQkqbW91bnRfZmxhZ3MgfD0gTUZfUkVBRE9OTFk7CisJCX0gZWxzZQorCQkJY2xvc2UoZmQpOworCQkodm9pZCkgdW5saW5rKFRFU1RfRklMRSk7CisJfQorCXJldHZhbCA9IDA7CitlcnJvdXQ6CisJZW5kbW50ZW50IChmKTsKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgaW50IGNoZWNrX21udGVudChjb25zdCBjaGFyICpmaWxlLCBpbnQgKm1vdW50X2ZsYWdzLAorCQkJICAgICAgY2hhciAqbXRwdCwgaW50IG10bGVuKQoreworCWludAlyZXR2YWw7CisKKyNpZmRlZiBERUJVRworCXJldHZhbCA9IGNoZWNrX21udGVudF9maWxlKCIvdG1wL210YWIiLCBmaWxlLCBtb3VudF9mbGFncywKKwkJCQkgICBtdHB0LCBtdGxlbik7CisJaWYgKHJldHZhbCA9PSAwKQorCQlyZXR1cm4gMDsKKyNlbmRpZiAvKiBERUJVRyAqLworI2lmZGVmIF9fbGludXhfXworCXJldHZhbCA9IGNoZWNrX21udGVudF9maWxlKCIvcHJvYy9tb3VudHMiLCBmaWxlLCBtb3VudF9mbGFncywKKwkJCQkgICBtdHB0LCBtdGxlbik7CisJaWYgKHJldHZhbCA9PSAwICYmICgqbW91bnRfZmxhZ3MgIT0gMCkpCisJCXJldHVybiAwOworI2VuZGlmIC8qIF9fbGludXhfXyAqLworI2lmIGRlZmluZWQoTU9VTlRFRCkgfHwgZGVmaW5lZChfUEFUSF9NT1VOVEVEKQorI2lmbmRlZiBNT1VOVEVECisjZGVmaW5lIE1PVU5URUQgX1BBVEhfTU9VTlRFRAorI2VuZGlmIC8qIE1PVU5URUQgKi8KKwlyZXR2YWwgPSBjaGVja19tbnRlbnRfZmlsZShNT1VOVEVELCBmaWxlLCBtb3VudF9mbGFncywgbXRwdCwgbXRsZW4pOworCXJldHVybiByZXR2YWw7CisjZWxzZQorCSptb3VudF9mbGFncyA9IDA7CisJcmV0dXJuIDA7CisjZW5kaWYgLyogZGVmaW5lZChNT1VOVEVEKSB8fCBkZWZpbmVkKF9QQVRIX01PVU5URUQpICovCit9CisKKyNlbHNlCisjaWYgZGVmaW5lZChIQVZFX0dFVE1OVElORk8pCisKK3N0YXRpYyBpbnQgY2hlY2tfZ2V0bW50aW5mbyhjb25zdCBjaGFyICpmaWxlLCBpbnQgKm1vdW50X2ZsYWdzLAorCQkJCSAgY2hhciAqbXRwdCwgaW50IG10bGVuKQoreworCXN0cnVjdCBzdGF0ZnMgKm1wOworICAgICAgICBpbnQgICAgbGVuLCBuOworICAgICAgICBjb25zdCAgY2hhciAgICpzMTsKKwljaGFyCSpzMjsKKworICAgICAgICBuID0gZ2V0bW50aW5mbygmbXAsIE1OVF9OT1dBSVQpOworICAgICAgICBpZiAobiA9PSAwKQorCQlyZXR1cm4gZXJybm87CisKKyAgICAgICAgbGVuID0gc2l6ZW9mKF9QQVRIX0RFVikgLSAxOworICAgICAgICBzMSA9IGZpbGU7CisgICAgICAgIGlmIChzdHJuY21wKF9QQVRIX0RFViwgczEsIGxlbikgPT0gMCkKKyAgICAgICAgICAgICAgICBzMSArPSBsZW47CisKKwkqbW91bnRfZmxhZ3MgPSAwOworICAgICAgICB3aGlsZSAoLS1uID49IDApIHsKKyAgICAgICAgICAgICAgICBzMiA9IG1wLT5mX21udGZyb21uYW1lOworICAgICAgICAgICAgICAgIGlmIChzdHJuY21wKF9QQVRIX0RFViwgczIsIGxlbikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgczIgKz0gbGVuIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICpzMiA9ICdyJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0cmNtcChzMSwgczIpID09IDAgfHwgc3RyY21wKHMxLCAmczJbMV0pID09IDApIHsKKwkJCSptb3VudF9mbGFncyA9IE1GX01PVU5URUQ7CisJCQlicmVhazsKKwkJfQorICAgICAgICAgICAgICAgICsrbXA7CisJfQorCWlmIChtdHB0KQorCQlzdHJuY3B5KG10cHQsIG1wLT5mX21udG9ubmFtZSwgbXRsZW4pOworCXJldHVybiAwOworfQorI2VuZGlmIC8qIEhBVkVfR0VUTU5USU5GTyAqLworI2VuZGlmIC8qIEhBVkVfTU5URU5UX0ggKi8KKworLyoKKyAqIENoZWNrIHRvIHNlZSBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIHN3YXAgZGV2aWNlLgorICovCitzdGF0aWMgaW50IGlzX3N3YXBfZGV2aWNlKGNvbnN0IGNoYXIgKmZpbGUpCit7CisJRklMRQkJKmY7CisJY2hhcgkJYnVmWzEwMjRdLCAqY3A7CisJZGV2X3QJCWZpbGVfZGV2OworCXN0cnVjdCBzdGF0CXN0X2J1ZjsKKwlpbnQJCXJldCA9IDA7CisKKwlmaWxlX2RldiA9IDA7CisjaWZuZGVmIF9fR05VX18gLyogVGhlIEdOVSBodXJkIGlzIGJyb2tlbiB3aXRoIHJlc3BlY3QgdG8gc3RhdCBkZXZpY2VzICovCisJaWYgKChzdGF0KGZpbGUsICZzdF9idWYpID09IDApICYmCisJICAgIFNfSVNCTEsoc3RfYnVmLnN0X21vZGUpKQorCQlmaWxlX2RldiA9IHN0X2J1Zi5zdF9yZGV2OworI2VuZGlmCS8qIF9fR05VX18gKi8KKworCWlmICghKGYgPSBmb3BlbigiL3Byb2Mvc3dhcHMiLCAiciIpKSkKKwkJcmV0dXJuIDA7CisJLyogU2tpcCB0aGUgZmlyc3QgbGluZSAqLworCWlmICghZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZikpCisJCWdvdG8gbGVhdmU7CisJaWYgKCpidWYgJiYgc3RybmNtcChidWYsICJGaWxlbmFtZVx0IiwgOSkpCisJCS8qIExpbnV4IDw9Mi42LjE5IGNvbnRhaW5lZCBhIGJ1ZyBpbiB0aGUgL3Byb2Mvc3dhcHMKKwkJICogY29kZSB3aGVyZSB0aGUgaGVhZGVyIHdvdWxkIG5vdCBiZSBkaXNwbGF5ZWQKKwkJICovCisJCWdvdG8gdmFsaWRfZmlyc3RfbGluZTsKKworCXdoaWxlIChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmKSkgewordmFsaWRfZmlyc3RfbGluZToKKwkJaWYgKChjcCA9IHN0cmNocihidWYsICcgJykpICE9IE5VTEwpCisJCQkqY3AgPSAwOworCQlpZiAoKGNwID0gc3RyY2hyKGJ1ZiwgJ1x0JykpICE9IE5VTEwpCisJCQkqY3AgPSAwOworCQlpZiAoc3RyY21wKGJ1ZiwgZmlsZSkgPT0gMCkgeworCQkJcmV0Kys7CisJCQlicmVhazsKKwkJfQorI2lmbmRlZiBfX0dOVV9fCisJCWlmIChmaWxlX2RldiAmJiAoc3RhdChidWYsICZzdF9idWYpID09IDApICYmCisJCSAgICBTX0lTQkxLKHN0X2J1Zi5zdF9tb2RlKSAmJgorCQkgICAgZmlsZV9kZXYgPT0gc3RfYnVmLnN0X3JkZXYpIHsKKwkJCXJldCsrOworCQkJYnJlYWs7CisJCX0KKyNlbmRpZgkvKiBfX0dOVV9fICovCisJfQorCitsZWF2ZToKKwlmY2xvc2UoZik7CisJcmV0dXJuIHJldDsKK30KKworCisvKgorICogY2hlY2tfbW91bnRfcG9pbnQoKSBmaWxscyBkZXRlcm1pbmVzIGlmIHRoZSBkZXZpY2UgaXMgbW91bnRlZCBvciBvdGhlcndpc2UKKyAqIGJ1c3ksIGFuZCBmaWxscyBpbiBtb3VudF9mbGFncyB3aXRoIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgZmxhZ3M6CisgKiBNRl9NT1VOVEVELCBNRl9JU1JPT1QsIE1GX1JFQURPTkxZLCBNRl9TV0FQLCBhbmQgTUZfQlVTWS4gIElmIG10cHQgaXMKKyAqIG5vbi1OVUxMLCB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBkZXZpY2UgaXMgbW91bnRlZCBpcyBjb3BpZWQgdG8gd2hlcmUgbXRwdAorICogaXMgcG9pbnRpbmcsIHVwIHRvIG10bGVuIGNoYXJhY3RlcnMuCisgKi8KKyNpZmRlZiBfX1RVUkJPQ19fCisgI3ByYWdtYSBhcmdzdXNlZAorI2VuZGlmCitpbnQgY2hlY2tfbW91bnRfcG9pbnQoY29uc3QgY2hhciAqZGV2aWNlLCBpbnQgKm1vdW50X2ZsYWdzLAorCQkJCSAgY2hhciAqbXRwdCwgaW50IG10bGVuKQoreworCXN0cnVjdCBzdGF0CXN0X2J1ZjsKKwlpbnQJcmV0dmFsID0gMDsKKwlpbnQJCWZkOworCisJaWYgKGlzX3N3YXBfZGV2aWNlKGRldmljZSkpIHsKKwkJKm1vdW50X2ZsYWdzID0gTUZfTU9VTlRFRCB8IE1GX1NXQVA7CisJCXN0cm5jcHkobXRwdCwgIjxzd2FwPiIsIG10bGVuKTsKKwl9IGVsc2UgeworI2lmZGVmIEhBVkVfTU5URU5UX0gKKwkJcmV0dmFsID0gY2hlY2tfbW50ZW50KGRldmljZSwgbW91bnRfZmxhZ3MsIG10cHQsIG10bGVuKTsKKyNlbHNlCisjaWZkZWYgSEFWRV9HRVRNTlRJTkZPCisJCXJldHZhbCA9IGNoZWNrX2dldG1udGluZm8oZGV2aWNlLCBtb3VudF9mbGFncywgbXRwdCwgbXRsZW4pOworI2Vsc2UKKyNpZmRlZiBfX0dOVUNfXworICN3YXJuaW5nICJDYW4ndCB1c2UgZ2V0bW50ZW50IG9yIGdldG1udGluZm8gdG8gY2hlY2sgZm9yIG1vdW50ZWQgZmlsZXN5c3RlbXMhIgorI2VuZGlmCisJCSptb3VudF9mbGFncyA9IDA7CisjZW5kaWYgLyogSEFWRV9HRVRNTlRJTkZPICovCisjZW5kaWYgLyogSEFWRV9NTlRFTlRfSCAqLworCX0KKwlpZiAocmV0dmFsKQorCQlyZXR1cm4gcmV0dmFsOworCisjaWZkZWYgX19saW51eF9fIC8qIFRoaXMgb25seSB3b3JrcyBvbiBMaW51eCAyLjYrIHN5c3RlbXMgKi8KKwlpZiAoKHN0YXQoZGV2aWNlLCAmc3RfYnVmKSAhPSAwKSB8fAorCSAgICAhU19JU0JMSyhzdF9idWYuc3RfbW9kZSkpCisJCXJldHVybiAwOworCWZkID0gb3BlbihkZXZpY2UsIE9fUkRPTkxZIHwgT19FWENMKTsKKwlpZiAoZmQgPCAwKSB7CisJCWlmIChlcnJubyA9PSBFQlVTWSkKKwkJCSptb3VudF9mbGFncyB8PSBNRl9CVVNZOworCX0gZWxzZQorCQljbG9zZShmZCk7CisjZW5kaWYKKworCXJldHVybiAwOworfQorCitpbnQgaXNfbW91bnRlZChjb25zdCBjaGFyICpmaWxlKQoreworCWludAlyZXR2YWw7CisJaW50CW1vdW50X2ZsYWdzID0gMDsKKworCXJldHZhbCA9IGNoZWNrX21vdW50X3BvaW50KGZpbGUsICZtb3VudF9mbGFncywgTlVMTCwgMCk7CisJaWYgKHJldHZhbCkKKwkJcmV0dXJuIDA7CisJcmV0dXJuIG1vdW50X2ZsYWdzICYgTUZfTU9VTlRFRDsKK30KKworI2lmZGVmIFRFU1RfUFJPR1JBTQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWludCBmbGFncyA9IDA7CisJY2hhciBkZXZuYW1lW1BBVEhfTUFYXTsKKworCWlmIChhcmdjIDwgMikgeworCQlmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiAlcyBkZXZpY2VcbiIsIGFyZ3ZbMF0pOworCQlyZXR1cm4gRVhJVF9GQUlMVVJFOworCX0KKworCWlmIChjaGVja19tb3VudF9wb2ludChhcmd2WzFdLCAmZmxhZ3MsIGRldm5hbWUsIHNpemVvZihkZXZuYW1lKSkgPT0gMCAmJgorCSAgICAoZmxhZ3MgJiBNRl9NT1VOVEVEKSkgeworCQlpZiAoZmxhZ3MgJiBNRl9TV0FQKQorCQkJcHJpbnRmKCJ1c2VkIHN3YXAgZGV2aWNlXG4iKTsKKwkJZWxzZQorCQkJcHJpbnRmKCJtb3VudGVkIG9uICVzXG4iLCBkZXZuYW1lKTsKKwkJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKKwl9CisKKwlwcmludGYoIm5vdCBtb3VudGVkXG4iKTsKKwlyZXR1cm4gRVhJVF9GQUlMVVJFOworfQorI2VuZGlmIC8qIERFQlVHICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvbGludXhfdmVyc2lvbi5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL2xpbnV4X3ZlcnNpb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWZiZDhkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL2xpbnV4X3ZlcnNpb24uYwpAQCAtMCwwICsxLDI1IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorCisjaW5jbHVkZSAibGludXhfdmVyc2lvbi5oIgorCitpbnQKK2dldF9saW51eF92ZXJzaW9uICh2b2lkKQoreworCXN0YXRpYyBpbnQga3ZlciA9IC0xOworCXN0cnVjdCB1dHNuYW1lIHV0czsKKwlpbnQgbWFqb3I7CisJaW50IG1pbm9yOworCWludCB0ZWVueTsKKworCWlmIChrdmVyICE9IC0xKQorCQlyZXR1cm4ga3ZlcjsKKwlpZiAodW5hbWUgKCZ1dHMpKQorCQlrdmVyID0gMDsKKwllbHNlIGlmIChzc2NhbmYgKHV0cy5yZWxlYXNlLCAiJWQuJWQuJWQiLCAmbWFqb3IsICZtaW5vciwgJnRlZW55KSAhPSAzKQorCQlrdmVyID0gMDsKKwllbHNlCisJCWt2ZXIgPSBLRVJORUxfVkVSU0lPTiAobWFqb3IsIG1pbm9yLCB0ZWVueSk7CisKKwlyZXR1cm4ga3ZlcjsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9tZDUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9tZDUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWQ0YjY4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL21kNS5jCkBAIC0wLDAgKzEsMjU5IEBACisvKgorICogVGhpcyBjb2RlIGltcGxlbWVudHMgdGhlIE1ENSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0uCisgKiBUaGUgYWxnb3JpdGhtIGlzIGR1ZSB0byBSb24gUml2ZXN0LiAgVGhpcyBjb2RlIHdhcworICogd3JpdHRlbiBieSBDb2xpbiBQbHVtYiBpbiAxOTkzLCBubyBjb3B5cmlnaHQgaXMgY2xhaW1lZC4KKyAqIFRoaXMgY29kZSBpcyBpbiB0aGUgcHVibGljIGRvbWFpbjsgZG8gd2l0aCBpdCB3aGF0IHlvdSB3aXNoLgorICoKKyAqIEVxdWl2YWxlbnQgY29kZSBpcyBhdmFpbGFibGUgZnJvbSBSU0EgRGF0YSBTZWN1cml0eSwgSW5jLgorICogVGhpcyBjb2RlIGhhcyBiZWVuIHRlc3RlZCBhZ2FpbnN0IHRoYXQsIGFuZCBpcyBlcXVpdmFsZW50LAorICogZXhjZXB0IHRoYXQgeW91IGRvbid0IG5lZWQgdG8gaW5jbHVkZSB0d28gcGFnZXMgb2YgbGVnYWxlc2UKKyAqIHdpdGggZXZlcnkgY29weS4KKyAqCisgKiBUbyBjb21wdXRlIHRoZSBtZXNzYWdlIGRpZ2VzdCBvZiBhIGNodW5rIG9mIGJ5dGVzLCBkZWNsYXJlIGFuCisgKiBNRDVDb250ZXh0IHN0cnVjdHVyZSwgcGFzcyBpdCB0byBNRDVJbml0LCBjYWxsIE1ENVVwZGF0ZSBhcworICogbmVlZGVkIG9uIGJ1ZmZlcnMgZnVsbCBvZiBieXRlcywgYW5kIHRoZW4gY2FsbCBNRDVGaW5hbCwgd2hpY2gKKyAqIHdpbGwgZmlsbCBhIHN1cHBsaWVkIDE2LWJ5dGUgYXJyYXkgd2l0aCB0aGUgZGlnZXN0LgorICovCisjaW5jbHVkZSA8ZW5kaWFuLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CQkvKiBmb3IgbWVtY3B5KCkgKi8KKworI2luY2x1ZGUgIm1kNS5oIgorCisjaWYgIWRlZmluZWQgX19CWVRFX09SREVSIHx8ICEoX19CWVRFX09SREVSID09IF9fTElUVExFX0VORElBTikgJiYgIShfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOKQorI2Vycm9yIG1pc3NpbmcgX19CWVRFX09SREVSCisjZW5kaWYKKworI2lmIChfX0JZVEVfT1JERVIgPT0gX19MSVRUTEVfRU5ESUFOKQorI2RlZmluZSBieXRlUmV2ZXJzZShidWYsIGxlbikJLyogTm90aGluZyAqLworI2Vsc2UKK3ZvaWQgYnl0ZVJldmVyc2UodW5zaWduZWQgY2hhciAqYnVmLCB1bnNpZ25lZCBsb25ncyk7CisKKyNpZm5kZWYgQVNNX01ENQorLyoKKyAqIE5vdGU6IHRoaXMgY29kZSBpcyBoYXJtbGVzcyBvbiBsaXR0bGUtZW5kaWFuIG1hY2hpbmVzLgorICovCit2b2lkIGJ5dGVSZXZlcnNlKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgdW5zaWduZWQgbG9uZ3MpCit7CisgICAgdWludDMyX3QgdDsKKyAgICBkbyB7CisJdCA9ICh1aW50MzJfdCkgKCh1bnNpZ25lZCkgYnVmWzNdIDw8IDggfCBidWZbMl0pIDw8IDE2IHwKKwkgICAgKCh1bnNpZ25lZCkgYnVmWzFdIDw8IDggfCBidWZbMF0pOworCSoodWludDMyX3QgKikgYnVmID0gdDsKKwlidWYgKz0gNDsKKyAgICB9IHdoaWxlICgtLWxvbmdzKTsKK30KKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiBTdGFydCBNRDUgYWNjdW11bGF0aW9uLiAgU2V0IGJpdCBjb3VudCB0byAwIGFuZCBidWZmZXIgdG8gbXlzdGVyaW91cworICogaW5pdGlhbGl6YXRpb24gY29uc3RhbnRzLgorICovCit2b2lkIE1ENUluaXQoc3RydWN0IE1ENUNvbnRleHQgKmN0eCkKK3sKKyAgICBjdHgtPmJ1ZlswXSA9IDB4Njc0NTIzMDE7CisgICAgY3R4LT5idWZbMV0gPSAweGVmY2RhYjg5OworICAgIGN0eC0+YnVmWzJdID0gMHg5OGJhZGNmZTsKKyAgICBjdHgtPmJ1ZlszXSA9IDB4MTAzMjU0NzY7CisKKyAgICBjdHgtPmJpdHNbMF0gPSAwOworICAgIGN0eC0+Yml0c1sxXSA9IDA7Cit9CisKKy8qCisgKiBVcGRhdGUgY29udGV4dCB0byByZWZsZWN0IHRoZSBjb25jYXRlbmF0aW9uIG9mIGFub3RoZXIgYnVmZmVyIGZ1bGwKKyAqIG9mIGJ5dGVzLgorICovCit2b2lkIE1ENVVwZGF0ZShzdHJ1Y3QgTUQ1Q29udGV4dCAqY3R4LCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpidWYsIHVuc2lnbmVkIGxlbikKK3sKKyAgICB1aW50MzJfdCB0OworCisgICAgLyogVXBkYXRlIGJpdGNvdW50ICovCisKKyAgICB0ID0gY3R4LT5iaXRzWzBdOworICAgIGlmICgoY3R4LT5iaXRzWzBdID0gdCArICgodWludDMyX3QpIGxlbiA8PCAzKSkgPCB0KQorCWN0eC0+Yml0c1sxXSsrOwkJLyogQ2FycnkgZnJvbSBsb3cgdG8gaGlnaCAqLworICAgIGN0eC0+Yml0c1sxXSArPSBsZW4gPj4gMjk7CisKKyAgICB0ID0gKHQgPj4gMykgJiAweDNmOwkvKiBCeXRlcyBhbHJlYWR5IGluIHNoc0luZm8tPmRhdGEgKi8KKworICAgIC8qIEhhbmRsZSBhbnkgbGVhZGluZyBvZGQtc2l6ZWQgY2h1bmtzICovCisKKyAgICBpZiAodCkgeworCXVuc2lnbmVkIGNoYXIgKnAgPSAodW5zaWduZWQgY2hhciAqKSBjdHgtPmluICsgdDsKKworCXQgPSA2NCAtIHQ7CisJaWYgKGxlbiA8IHQpIHsKKwkgICAgbWVtY3B5KHAsIGJ1ZiwgbGVuKTsKKwkgICAgcmV0dXJuOworCX0KKwltZW1jcHkocCwgYnVmLCB0KTsKKwlieXRlUmV2ZXJzZShjdHgtPmluLCAxNik7CisJTUQ1VHJhbnNmb3JtKGN0eC0+YnVmLCAodWludDMyX3QgKikgY3R4LT5pbik7CisJYnVmICs9IHQ7CisJbGVuIC09IHQ7CisgICAgfQorICAgIC8qIFByb2Nlc3MgZGF0YSBpbiA2NC1ieXRlIGNodW5rcyAqLworCisgICAgd2hpbGUgKGxlbiA+PSA2NCkgeworCW1lbWNweShjdHgtPmluLCBidWYsIDY0KTsKKwlieXRlUmV2ZXJzZShjdHgtPmluLCAxNik7CisJTUQ1VHJhbnNmb3JtKGN0eC0+YnVmLCAodWludDMyX3QgKikgY3R4LT5pbik7CisJYnVmICs9IDY0OworCWxlbiAtPSA2NDsKKyAgICB9CisKKyAgICAvKiBIYW5kbGUgYW55IHJlbWFpbmluZyBieXRlcyBvZiBkYXRhLiAqLworCisgICAgbWVtY3B5KGN0eC0+aW4sIGJ1ZiwgbGVuKTsKK30KKworLyoKKyAqIEZpbmFsIHdyYXB1cCAtIHBhZCB0byA2NC1ieXRlIGJvdW5kYXJ5IHdpdGggdGhlIGJpdCBwYXR0ZXJuIAorICogMSAwKiAoNjQtYml0IGNvdW50IG9mIGJpdHMgcHJvY2Vzc2VkLCBNU0ItZmlyc3QpCisgKi8KK3ZvaWQgTUQ1RmluYWwodW5zaWduZWQgY2hhciBkaWdlc3RbMTZdLCBzdHJ1Y3QgTUQ1Q29udGV4dCAqY3R4KQoreworICAgIHVuc2lnbmVkIGNvdW50OworICAgIHVuc2lnbmVkIGNoYXIgKnA7CisKKyAgICAvKiBDb21wdXRlIG51bWJlciBvZiBieXRlcyBtb2QgNjQgKi8KKyAgICBjb3VudCA9IChjdHgtPmJpdHNbMF0gPj4gMykgJiAweDNGOworCisgICAgLyogU2V0IHRoZSBmaXJzdCBjaGFyIG9mIHBhZGRpbmcgdG8gMHg4MC4gIFRoaXMgaXMgc2FmZSBzaW5jZSB0aGVyZSBpcworICAgICAgIGFsd2F5cyBhdCBsZWFzdCBvbmUgYnl0ZSBmcmVlICovCisgICAgcCA9IGN0eC0+aW4gKyBjb3VudDsKKyAgICAqcCsrID0gMHg4MDsKKworICAgIC8qIEJ5dGVzIG9mIHBhZGRpbmcgbmVlZGVkIHRvIG1ha2UgNjQgYnl0ZXMgKi8KKyAgICBjb3VudCA9IDY0IC0gMSAtIGNvdW50OworCisgICAgLyogUGFkIG91dCB0byA1NiBtb2QgNjQgKi8KKyAgICBpZiAoY291bnQgPCA4KSB7CisJLyogVHdvIGxvdHMgb2YgcGFkZGluZzogIFBhZCB0aGUgZmlyc3QgYmxvY2sgdG8gNjQgYnl0ZXMgKi8KKwltZW1zZXQocCwgMCwgY291bnQpOworCWJ5dGVSZXZlcnNlKGN0eC0+aW4sIDE2KTsKKwlNRDVUcmFuc2Zvcm0oY3R4LT5idWYsICh1aW50MzJfdCAqKSBjdHgtPmluKTsKKworCS8qIE5vdyBmaWxsIHRoZSBuZXh0IGJsb2NrIHdpdGggNTYgYnl0ZXMgKi8KKwltZW1zZXQoY3R4LT5pbiwgMCwgNTYpOworICAgIH0gZWxzZSB7CisJLyogUGFkIGJsb2NrIHRvIDU2IGJ5dGVzICovCisJbWVtc2V0KHAsIDAsIGNvdW50IC0gOCk7CisgICAgfQorICAgIGJ5dGVSZXZlcnNlKGN0eC0+aW4sIDE0KTsKKworICAgIC8qIEFwcGVuZCBsZW5ndGggaW4gYml0cyBhbmQgdHJhbnNmb3JtICovCisgICAgKCh1aW50MzJfdCAqKSBjdHgtPmluKVsxNF0gPSBjdHgtPmJpdHNbMF07CisgICAgKCh1aW50MzJfdCAqKSBjdHgtPmluKVsxNV0gPSBjdHgtPmJpdHNbMV07CisKKyAgICBNRDVUcmFuc2Zvcm0oY3R4LT5idWYsICh1aW50MzJfdCAqKSBjdHgtPmluKTsKKyAgICBieXRlUmV2ZXJzZSgodW5zaWduZWQgY2hhciAqKSBjdHgtPmJ1ZiwgNCk7CisgICAgbWVtY3B5KGRpZ2VzdCwgY3R4LT5idWYsIDE2KTsKKyAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YoKmN0eCkpOwkvKiBJbiBjYXNlIGl0J3Mgc2Vuc2l0aXZlICovCit9CisKKyNpZm5kZWYgQVNNX01ENQorCisvKiBUaGUgZm91ciBjb3JlIGZ1bmN0aW9ucyAtIEYxIGlzIG9wdGltaXplZCBzb21ld2hhdCAqLworCisvKiAjZGVmaW5lIEYxKHgsIHksIHopICh4ICYgeSB8IH54ICYgeikgKi8KKyNkZWZpbmUgRjEoeCwgeSwgeikgKHogXiAoeCAmICh5IF4geikpKQorI2RlZmluZSBGMih4LCB5LCB6KSBGMSh6LCB4LCB5KQorI2RlZmluZSBGMyh4LCB5LCB6KSAoeCBeIHkgXiB6KQorI2RlZmluZSBGNCh4LCB5LCB6KSAoeSBeICh4IHwgfnopKQorCisvKiBUaGlzIGlzIHRoZSBjZW50cmFsIHN0ZXAgaW4gdGhlIE1ENSBhbGdvcml0aG0uICovCisjZGVmaW5lIE1ENVNURVAoZiwgdywgeCwgeSwgeiwgZGF0YSwgcykgXAorCSggdyArPSBmKHgsIHksIHopICsgZGF0YSwgIHcgPSB3PDxzIHwgdz4+KDMyLXMpLCAgdyArPSB4ICkKKworLyoKKyAqIFRoZSBjb3JlIG9mIHRoZSBNRDUgYWxnb3JpdGhtLCB0aGlzIGFsdGVycyBhbiBleGlzdGluZyBNRDUgaGFzaCB0bworICogcmVmbGVjdCB0aGUgYWRkaXRpb24gb2YgMTYgbG9uZ3dvcmRzIG9mIG5ldyBkYXRhLiAgTUQ1VXBkYXRlIGJsb2NrcworICogdGhlIGRhdGEgYW5kIGNvbnZlcnRzIGJ5dGVzIGludG8gbG9uZ3dvcmRzIGZvciB0aGlzIHJvdXRpbmUuCisgKi8KK3ZvaWQgTUQ1VHJhbnNmb3JtKHVpbnQzMl90IGJ1Zls0XSwgdWludDMyX3QgY29uc3QgaW5bMTZdKQoreworICAgIHJlZ2lzdGVyIHVpbnQzMl90IGEsIGIsIGMsIGQ7CisKKyAgICBhID0gYnVmWzBdOworICAgIGIgPSBidWZbMV07CisgICAgYyA9IGJ1ZlsyXTsKKyAgICBkID0gYnVmWzNdOworCisgICAgTUQ1U1RFUChGMSwgYSwgYiwgYywgZCwgaW5bMF0gKyAweGQ3NmFhNDc4LCA3KTsKKyAgICBNRDVTVEVQKEYxLCBkLCBhLCBiLCBjLCBpblsxXSArIDB4ZThjN2I3NTYsIDEyKTsKKyAgICBNRDVTVEVQKEYxLCBjLCBkLCBhLCBiLCBpblsyXSArIDB4MjQyMDcwZGIsIDE3KTsKKyAgICBNRDVTVEVQKEYxLCBiLCBjLCBkLCBhLCBpblszXSArIDB4YzFiZGNlZWUsIDIyKTsKKyAgICBNRDVTVEVQKEYxLCBhLCBiLCBjLCBkLCBpbls0XSArIDB4ZjU3YzBmYWYsIDcpOworICAgIE1ENVNURVAoRjEsIGQsIGEsIGIsIGMsIGluWzVdICsgMHg0Nzg3YzYyYSwgMTIpOworICAgIE1ENVNURVAoRjEsIGMsIGQsIGEsIGIsIGluWzZdICsgMHhhODMwNDYxMywgMTcpOworICAgIE1ENVNURVAoRjEsIGIsIGMsIGQsIGEsIGluWzddICsgMHhmZDQ2OTUwMSwgMjIpOworICAgIE1ENVNURVAoRjEsIGEsIGIsIGMsIGQsIGluWzhdICsgMHg2OTgwOThkOCwgNyk7CisgICAgTUQ1U1RFUChGMSwgZCwgYSwgYiwgYywgaW5bOV0gKyAweDhiNDRmN2FmLCAxMik7CisgICAgTUQ1U1RFUChGMSwgYywgZCwgYSwgYiwgaW5bMTBdICsgMHhmZmZmNWJiMSwgMTcpOworICAgIE1ENVNURVAoRjEsIGIsIGMsIGQsIGEsIGluWzExXSArIDB4ODk1Y2Q3YmUsIDIyKTsKKyAgICBNRDVTVEVQKEYxLCBhLCBiLCBjLCBkLCBpblsxMl0gKyAweDZiOTAxMTIyLCA3KTsKKyAgICBNRDVTVEVQKEYxLCBkLCBhLCBiLCBjLCBpblsxM10gKyAweGZkOTg3MTkzLCAxMik7CisgICAgTUQ1U1RFUChGMSwgYywgZCwgYSwgYiwgaW5bMTRdICsgMHhhNjc5NDM4ZSwgMTcpOworICAgIE1ENVNURVAoRjEsIGIsIGMsIGQsIGEsIGluWzE1XSArIDB4NDliNDA4MjEsIDIyKTsKKworICAgIE1ENVNURVAoRjIsIGEsIGIsIGMsIGQsIGluWzFdICsgMHhmNjFlMjU2MiwgNSk7CisgICAgTUQ1U1RFUChGMiwgZCwgYSwgYiwgYywgaW5bNl0gKyAweGMwNDBiMzQwLCA5KTsKKyAgICBNRDVTVEVQKEYyLCBjLCBkLCBhLCBiLCBpblsxMV0gKyAweDI2NWU1YTUxLCAxNCk7CisgICAgTUQ1U1RFUChGMiwgYiwgYywgZCwgYSwgaW5bMF0gKyAweGU5YjZjN2FhLCAyMCk7CisgICAgTUQ1U1RFUChGMiwgYSwgYiwgYywgZCwgaW5bNV0gKyAweGQ2MmYxMDVkLCA1KTsKKyAgICBNRDVTVEVQKEYyLCBkLCBhLCBiLCBjLCBpblsxMF0gKyAweDAyNDQxNDUzLCA5KTsKKyAgICBNRDVTVEVQKEYyLCBjLCBkLCBhLCBiLCBpblsxNV0gKyAweGQ4YTFlNjgxLCAxNCk7CisgICAgTUQ1U1RFUChGMiwgYiwgYywgZCwgYSwgaW5bNF0gKyAweGU3ZDNmYmM4LCAyMCk7CisgICAgTUQ1U1RFUChGMiwgYSwgYiwgYywgZCwgaW5bOV0gKyAweDIxZTFjZGU2LCA1KTsKKyAgICBNRDVTVEVQKEYyLCBkLCBhLCBiLCBjLCBpblsxNF0gKyAweGMzMzcwN2Q2LCA5KTsKKyAgICBNRDVTVEVQKEYyLCBjLCBkLCBhLCBiLCBpblszXSArIDB4ZjRkNTBkODcsIDE0KTsKKyAgICBNRDVTVEVQKEYyLCBiLCBjLCBkLCBhLCBpbls4XSArIDB4NDU1YTE0ZWQsIDIwKTsKKyAgICBNRDVTVEVQKEYyLCBhLCBiLCBjLCBkLCBpblsxM10gKyAweGE5ZTNlOTA1LCA1KTsKKyAgICBNRDVTVEVQKEYyLCBkLCBhLCBiLCBjLCBpblsyXSArIDB4ZmNlZmEzZjgsIDkpOworICAgIE1ENVNURVAoRjIsIGMsIGQsIGEsIGIsIGluWzddICsgMHg2NzZmMDJkOSwgMTQpOworICAgIE1ENVNURVAoRjIsIGIsIGMsIGQsIGEsIGluWzEyXSArIDB4OGQyYTRjOGEsIDIwKTsKKworICAgIE1ENVNURVAoRjMsIGEsIGIsIGMsIGQsIGluWzVdICsgMHhmZmZhMzk0MiwgNCk7CisgICAgTUQ1U1RFUChGMywgZCwgYSwgYiwgYywgaW5bOF0gKyAweDg3NzFmNjgxLCAxMSk7CisgICAgTUQ1U1RFUChGMywgYywgZCwgYSwgYiwgaW5bMTFdICsgMHg2ZDlkNjEyMiwgMTYpOworICAgIE1ENVNURVAoRjMsIGIsIGMsIGQsIGEsIGluWzE0XSArIDB4ZmRlNTM4MGMsIDIzKTsKKyAgICBNRDVTVEVQKEYzLCBhLCBiLCBjLCBkLCBpblsxXSArIDB4YTRiZWVhNDQsIDQpOworICAgIE1ENVNURVAoRjMsIGQsIGEsIGIsIGMsIGluWzRdICsgMHg0YmRlY2ZhOSwgMTEpOworICAgIE1ENVNURVAoRjMsIGMsIGQsIGEsIGIsIGluWzddICsgMHhmNmJiNGI2MCwgMTYpOworICAgIE1ENVNURVAoRjMsIGIsIGMsIGQsIGEsIGluWzEwXSArIDB4YmViZmJjNzAsIDIzKTsKKyAgICBNRDVTVEVQKEYzLCBhLCBiLCBjLCBkLCBpblsxM10gKyAweDI4OWI3ZWM2LCA0KTsKKyAgICBNRDVTVEVQKEYzLCBkLCBhLCBiLCBjLCBpblswXSArIDB4ZWFhMTI3ZmEsIDExKTsKKyAgICBNRDVTVEVQKEYzLCBjLCBkLCBhLCBiLCBpblszXSArIDB4ZDRlZjMwODUsIDE2KTsKKyAgICBNRDVTVEVQKEYzLCBiLCBjLCBkLCBhLCBpbls2XSArIDB4MDQ4ODFkMDUsIDIzKTsKKyAgICBNRDVTVEVQKEYzLCBhLCBiLCBjLCBkLCBpbls5XSArIDB4ZDlkNGQwMzksIDQpOworICAgIE1ENVNURVAoRjMsIGQsIGEsIGIsIGMsIGluWzEyXSArIDB4ZTZkYjk5ZTUsIDExKTsKKyAgICBNRDVTVEVQKEYzLCBjLCBkLCBhLCBiLCBpblsxNV0gKyAweDFmYTI3Y2Y4LCAxNik7CisgICAgTUQ1U1RFUChGMywgYiwgYywgZCwgYSwgaW5bMl0gKyAweGM0YWM1NjY1LCAyMyk7CisKKyAgICBNRDVTVEVQKEY0LCBhLCBiLCBjLCBkLCBpblswXSArIDB4ZjQyOTIyNDQsIDYpOworICAgIE1ENVNURVAoRjQsIGQsIGEsIGIsIGMsIGluWzddICsgMHg0MzJhZmY5NywgMTApOworICAgIE1ENVNURVAoRjQsIGMsIGQsIGEsIGIsIGluWzE0XSArIDB4YWI5NDIzYTcsIDE1KTsKKyAgICBNRDVTVEVQKEY0LCBiLCBjLCBkLCBhLCBpbls1XSArIDB4ZmM5M2EwMzksIDIxKTsKKyAgICBNRDVTVEVQKEY0LCBhLCBiLCBjLCBkLCBpblsxMl0gKyAweDY1NWI1OWMzLCA2KTsKKyAgICBNRDVTVEVQKEY0LCBkLCBhLCBiLCBjLCBpblszXSArIDB4OGYwY2NjOTIsIDEwKTsKKyAgICBNRDVTVEVQKEY0LCBjLCBkLCBhLCBiLCBpblsxMF0gKyAweGZmZWZmNDdkLCAxNSk7CisgICAgTUQ1U1RFUChGNCwgYiwgYywgZCwgYSwgaW5bMV0gKyAweDg1ODQ1ZGQxLCAyMSk7CisgICAgTUQ1U1RFUChGNCwgYSwgYiwgYywgZCwgaW5bOF0gKyAweDZmYTg3ZTRmLCA2KTsKKyAgICBNRDVTVEVQKEY0LCBkLCBhLCBiLCBjLCBpblsxNV0gKyAweGZlMmNlNmUwLCAxMCk7CisgICAgTUQ1U1RFUChGNCwgYywgZCwgYSwgYiwgaW5bNl0gKyAweGEzMDE0MzE0LCAxNSk7CisgICAgTUQ1U1RFUChGNCwgYiwgYywgZCwgYSwgaW5bMTNdICsgMHg0ZTA4MTFhMSwgMjEpOworICAgIE1ENVNURVAoRjQsIGEsIGIsIGMsIGQsIGluWzRdICsgMHhmNzUzN2U4MiwgNik7CisgICAgTUQ1U1RFUChGNCwgZCwgYSwgYiwgYywgaW5bMTFdICsgMHhiZDNhZjIzNSwgMTApOworICAgIE1ENVNURVAoRjQsIGMsIGQsIGEsIGIsIGluWzJdICsgMHgyYWQ3ZDJiYiwgMTUpOworICAgIE1ENVNURVAoRjQsIGIsIGMsIGQsIGEsIGluWzldICsgMHhlYjg2ZDM5MSwgMjEpOworCisgICAgYnVmWzBdICs9IGE7CisgICAgYnVmWzFdICs9IGI7CisgICAgYnVmWzJdICs9IGM7CisgICAgYnVmWzNdICs9IGQ7Cit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvc2V0cHJvY3RpdGxlLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvc2V0cHJvY3RpdGxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE5YmM2YQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpYi9zZXRwcm9jdGl0bGUuYwpAQCAtMCwwICsxLDEwOSBAQAorLyogcHJvY3RpdGxlIGNvZGUgLSB3ZSBrbm93IHRoaXMgdG8gd29yayBvbmx5IG9uIGxpbnV4Li4uICovCisKKy8qCisqKiAgU0VUUFJPQ1RJVExFIC0tIHNldCBwcm9jZXNzIHRpdGxlIGZvciBwcyAoZnJvbSBzZW5kbWFpbCkKKyoqCisqKiAgICAgIFBhcmFtZXRlcnM6CisqKiAgICAgICAgICAgICAgZm10IC0tIGEgcHJpbnRmIHN0eWxlIGZvcm1hdCBzdHJpbmcuCisqKgorKiogICAgICBSZXR1cm5zOgorKiogICAgICAgICAgICAgIG5vbmUuCisqKgorKiogICAgICBTaWRlIEVmZmVjdHM6CisqKiAgICAgICAgICAgICAgQ2xvYmJlcnMgYXJndiBvZiBvdXIgbWFpbiBwcm9jZWR1cmUgc28gcHMoMSkgd2lsbAorKiogICAgICAgICAgICAgIGRpc3BsYXkgdGhlIHRpdGxlLgorKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSAic2V0cHJvY3RpdGxlLmgiCisKKyNpZm5kZWYgU1BUX0JVRlNJWkUKKyNkZWZpbmUgU1BUX0JVRlNJWkUgICAgIDIwNDgKKyNlbmRpZgorCitleHRlcm4gY2hhcioqIGVudmlyb247CisKK3N0YXRpYyBjaGFyKiogYXJndjA7CitzdGF0aWMgaW50IGFyZ3ZfbHRoOworCit2b2lkCitpbml0cHJvY3RpdGxlIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKwlpbnQgaTsKKwljaGFyICoqZW52cCA9IGVudmlyb247CisKKwkvKgorCSAqIE1vdmUgdGhlIGVudmlyb25tZW50IHNvIHdlIGNhbiByZXVzZSB0aGUgbWVtb3J5LgorCSAqIChDb2RlIGJvcnJvd2VkIGZyb20gc2VuZG1haWwuKQorCSAqIFdBUk5JTkc6IHVnbHkgYXNzdW1wdGlvbnMgb24gbWVtb3J5IGxheW91dCBoZXJlOworCSAqICAgICAgICAgIGlmIHRoaXMgZXZlciBjYXVzZXMgcHJvYmxlbXMsICN1bmRlZiBET19QU19GSURETElORworCSAqLworCWZvciAoaSA9IDA7IGVudnBbaV0gIT0gTlVMTDsgaSsrKQorCQljb250aW51ZTsKKwllbnZpcm9uID0gKGNoYXIgKiopIG1hbGxvYyhzaXplb2YoY2hhciAqKSAqIChpICsgMSkpOworCWlmIChlbnZpcm9uID09IE5VTEwpCisJCXJldHVybjsKKwlmb3IgKGkgPSAwOyBlbnZwW2ldICE9IE5VTEw7IGkrKykKKwkJaWYgKChlbnZpcm9uW2ldID0gc3RyZHVwKGVudnBbaV0pKSA9PSBOVUxMKQorCQkJcmV0dXJuOworCWVudmlyb25baV0gPSBOVUxMOworCisJYXJndjAgPSBhcmd2OworCWlmIChpID4gMCkKKwkJYXJndl9sdGggPSBlbnZwW2ktMV0gKyBzdHJsZW4oZW52cFtpLTFdKSAtIGFyZ3YwWzBdOworCWVsc2UKKwkJYXJndl9sdGggPSBhcmd2MFthcmdjLTFdICsgc3RybGVuKGFyZ3YwW2FyZ2MtMV0pIC0gYXJndjBbMF07Cit9CQorCisjaWYgMAorLyogTmljZSBjb2RlLCBidXQgbWFueSBwbGFjZXMgZG8gbm90IGtub3cgYWJvdXQgdnNucHJpbnRmIC4uLiAqLwordm9pZAorc2V0cHJvY3RpdGxlIChjb25zdCBjaGFyICpmbXQsLi4uKSB7CisJaW50ICAgICAgICBpOworCWNoYXIgICAgICAgYnVmW1NQVF9CVUZTSVpFXTsKKwl2YV9saXN0ICAgIGFwOworCisJaWYgKCFhcmd2MCkKKwkJcmV0dXJuOworCisJdmFfc3RhcnQoYXAsIGZtdCk7CisJKHZvaWQpIHZzbnByaW50ZihidWYsIFNQVF9CVUZTSVpFLCBmbXQsIGFwKTsKKwl2YV9lbmQoYXApOworCisJaSA9IHN0cmxlbiAoYnVmKTsKKwlpZiAoaSA+IGFyZ3ZfbHRoIC0gMikgeworCQlpID0gYXJndl9sdGggLSAyOworCQlidWZbaV0gPSAnXDAnOworCX0KKwltZW1zZXQoYXJndjBbMF0sICdcMCcsIGFyZ3ZfbHRoKTsgICAgICAgLyogY2xlYXIgdGhlIG1lbW9yeSBhcmVhICovCisJKHZvaWQpIHN0cmNweSAoYXJndjBbMF0sIGJ1Zik7CisKKwlhcmd2MFsxXSA9IE5VTEw7Cit9CisjZWxzZQordm9pZAorc2V0cHJvY3RpdGxlIChjb25zdCBjaGFyICpwcm9nLCBjb25zdCBjaGFyICp0eHQpIHsKKyAgICAgICAgaW50ICAgICAgICBpOworICAgICAgICBjaGFyICAgICAgIGJ1ZltTUFRfQlVGU0laRV07CisKKyAgICAgICAgaWYgKCFhcmd2MCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKwlpZiAoc3RybGVuKHByb2cpICsgc3RybGVuKHR4dCkgKyA1ID4gU1BUX0JVRlNJWkUpCisJCXJldHVybjsKKworICAgICAgICAodm9pZCkgc3ByaW50ZihidWYsICIlcyAtLSAlcyIsIHByb2csIHR4dCk7CisKKyAgICAgICAgaSA9IHN0cmxlbiAoYnVmKTsKKyAgICAgICAgaWYgKGkgPiBhcmd2X2x0aCAtIDIpIHsKKyAgICAgICAgICAgICAgICBpID0gYXJndl9sdGggLSAyOworICAgICAgICAgICAgICAgIGJ1ZltpXSA9ICdcMCc7CisgICAgICAgIH0KKwltZW1zZXQoYXJndjBbMF0sICdcMCcsIGFyZ3ZfbHRoKTsgICAgICAgLyogY2xlYXIgdGhlIG1lbW9yeSBhcmVhICovCisgICAgICAgICh2b2lkKSBzdHJjcHkgKGFyZ3YwWzBdLCBidWYpOworCisgICAgICAgIGFyZ3YwWzFdID0gTlVMTDsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL3dob2xlZGlzay5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbGliL3dob2xlZGlzay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ZjE0M2QKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWIvd2hvbGVkaXNrLmMKQEAgLTAsMCArMSw1OCBAQAorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorCisjaW5jbHVkZSAiYmxrZGV2LmgiCisjaW5jbHVkZSAid2hvbGVkaXNrLmgiCisKK2ludCBpc193aG9sZV9kaXNrX2ZkKGludCBmZCwgY29uc3QgY2hhciAqbmFtZSkKK3sKKyNpZmRlZiBIRElPX0dFVEdFTworCXN0cnVjdCBoZF9nZW9tZXRyeSBnZW9tZXRyeTsKKwlpbnQgaSA9IDA7CisKKwlpZiAoZmQgIT0gLTEpCisJCWkgPSBpb2N0bChmZCwgSERJT19HRVRHRU8sICZnZW9tZXRyeSk7CisJaWYgKGkgPT0gMCkKKwkJcmV0dXJuIGdlb21ldHJ5LnN0YXJ0ID09IDA7CisjZW5kaWYKKwkvKgorCSAqIFRoZSAic2lsbHkgaGV1cmlzdGljIiBpcyBzdGlsbCBzZXh5IGZvciB1cywgYmVjYXVzZQorCSAqIGZvciBleGFtcGxlIFhlbiBkb2Vzbid0IGltcGxlbWVudCBIRElPX0dFVEdFTyBmb3IgdmlydHVhbAorCSAqIGJsb2NrIGRldmljZXMgKC9kZXYveHZkYSkuCisJICoKKwkgKiAtLSBremFrQHJlZGhhdC5jb20gKDIzLUZlYi0yMDA2KQorCSAqLworCXdoaWxlICgqbmFtZSkKKwkJbmFtZSsrOworCXJldHVybiAhaXNkaWdpdChuYW1lWy0xXSk7Cit9CisKK2ludCBpc193aG9sZV9kaXNrKGNvbnN0IGNoYXIgKm5hbWUpCit7CisJaW50IGZkID0gLTEsIHJlcyA9IDA7CisjaWZkZWYgSERJT19HRVRHRU8KKwlmZCA9IG9wZW4obmFtZSwgT19SRE9OTFkpOworCWlmIChmZCAhPSAtMSkKKyNlbmRpZgorCQlyZXMgPSBpc193aG9sZV9kaXNrX2ZkKGZkLCBuYW1lKTsKKworCWlmIChmZCAhPSAtMSkKKwkJY2xvc2UoZmQpOworCXJldHVybiByZXM7Cit9CisKKyNpZmRlZiBURVNUX1BST0dSQU0KK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlpZiAoYXJnYyA8IDIpIHsKKwkJZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgPGRldmljZT5cbiIsIGFyZ3ZbMF0pOworCQlleGl0KEVYSVRfRkFJTFVSRSk7CisJfQorCisJcHJpbnRmKCIlczogaXMlcyB3aG9sZSBkaXNrXG4iLCBhcmd2WzFdLAorCQkJaXNfd2hvbGVfZGlzayhhcmd2WzFdKSA/ICIiIDogIiBOT1QiKTsKKwlleGl0KEVYSVRfU1VDQ0VTUyk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xpY2Vuc2VzL0NPUFlJTkcuR1BMIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbGljZW5zZXMvQ09QWUlORy5HUEwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQzZWEyMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpY2Vuc2VzL0NPUFlJTkcuR1BMCkBAIC0wLDAgKzEsMzM5IEBACisJCSAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorCQkgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKKworIENvcHlyaWdodCAoQykgMTk4OSwgMTk5MSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EKKyBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMKKyBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KKworCQkJICAgIFByZWFtYmxlCisKKyAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgorZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGl0LiAgQnkgY29udHJhc3QsIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKK0xpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGZyZWUKK3NvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFwcGxpZXMgdG8gbW9zdCBvZiB0aGUgRnJlZSBTb2Z0d2FyZQorRm91bmRhdGlvbidzIHNvZnR3YXJlIGFuZCB0byBhbnkgb3RoZXIgcHJvZ3JhbSB3aG9zZSBhdXRob3JzIGNvbW1pdCB0bwordXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQordGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW5zdGVhZC4pICBZb3UgY2FuIGFwcGx5IGl0IHRvCit5b3VyIHByb2dyYW1zLCB0b28uCisKKyAgV2hlbiB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20sIG5vdAorcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQoraGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgordGhpcyBzZXJ2aWNlIGlmIHlvdSB3aXNoKSwgdGhhdCB5b3UgcmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0CitpZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAoraW4gbmV3IGZyZWUgcHJvZ3JhbXM7IGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgorCisgIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKK2FueW9uZSB0byBkZW55IHlvdSB0aGVzZSByaWdodHMgb3IgdG8gYXNrIHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4KK1RoZXNlIHJlc3RyaWN0aW9ucyB0cmFuc2xhdGUgdG8gY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIGZvciB5b3UgaWYgeW91CitkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCisKKyAgRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiBzdWNoIGEgcHJvZ3JhbSwgd2hldGhlcgorZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0Cit5b3UgaGF2ZS4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZQorc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkga25vdyB0aGVpcgorcmlnaHRzLgorCisgIFdlIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCB0d28gc3RlcHM6ICgxKSBjb3B5cmlnaHQgdGhlIHNvZnR3YXJlLCBhbmQKKygyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCitkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhlIHNvZnR3YXJlLgorCisgIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCit0aGF0IGV2ZXJ5b25lIHVuZGVyc3RhbmRzIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZQorc29mdHdhcmUuICBJZiB0aGUgc29mdHdhcmUgaXMgbW9kaWZpZWQgYnkgc29tZW9uZSBlbHNlIGFuZCBwYXNzZWQgb24sIHdlCit3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwordGhhdCBhbnkgcHJvYmxlbXMgaW50cm9kdWNlZCBieSBvdGhlcnMgd2lsbCBub3QgcmVmbGVjdCBvbiB0aGUgb3JpZ2luYWwKK2F1dGhvcnMnIHJlcHV0YXRpb25zLgorCisgIEZpbmFsbHksIGFueSBmcmVlIHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlCitwYXRlbnRzLiAgV2Ugd2lzaCB0byBhdm9pZCB0aGUgZGFuZ2VyIHRoYXQgcmVkaXN0cmlidXRvcnMgb2YgYSBmcmVlCitwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCitwcm9ncmFtIHByb3ByaWV0YXJ5LiAgVG8gcHJldmVudCB0aGlzLCB3ZSBoYXZlIG1hZGUgaXQgY2xlYXIgdGhhdCBhbnkKK3BhdGVudCBtdXN0IGJlIGxpY2Vuc2VkIGZvciBldmVyeW9uZSdzIGZyZWUgdXNlIG9yIG5vdCBsaWNlbnNlZCBhdCBhbGwuCisKKyAgVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKK21vZGlmaWNhdGlvbiBmb2xsb3cuCisMCisJCSAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIENPUFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9OCisKKyAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucworYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIHNheWluZyBpdCBtYXkgYmUgZGlzdHJpYnV0ZWQKK3VuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGUgIlByb2dyYW0iLCBiZWxvdywKK3JlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgorbWVhbnMgZWl0aGVyIHRoZSBQcm9ncmFtIG9yIGFueSBkZXJpdmF0aXZlIHdvcmsgdW5kZXIgY29weXJpZ2h0IGxhdzoKK3RoYXQgaXMgdG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgUHJvZ3JhbSBvciBhIHBvcnRpb24gb2YgaXQsCitlaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgorbGFuZ3VhZ2UuICAoSGVyZWluYWZ0ZXIsIHRyYW5zbGF0aW9uIGlzIGluY2x1ZGVkIHdpdGhvdXQgbGltaXRhdGlvbiBpbgordGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKSAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuCisKK0FjdGl2aXRpZXMgb3RoZXIgdGhhbiBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlvbiBhcmUgbm90Citjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mCitydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCitpcyBjb3ZlcmVkIG9ubHkgaWYgaXRzIGNvbnRlbnRzIGNvbnN0aXR1dGUgYSB3b3JrIGJhc2VkIG9uIHRoZQorUHJvZ3JhbSAoaW5kZXBlbmRlbnQgb2YgaGF2aW5nIGJlZW4gbWFkZSBieSBydW5uaW5nIHRoZSBQcm9ncmFtKS4KK1doZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgorCisgIDEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncworc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91Citjb25zcGljdW91c2x5IGFuZCBhcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlCitjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdCBhbGwgdGhlCitub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CithbmQgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgUHJvZ3JhbSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlCithbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgorCitZb3UgbWF5IGNoYXJnZSBhIGZlZSBmb3IgdGhlIHBoeXNpY2FsIGFjdCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LCBhbmQKK3lvdSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5nZSBmb3IgYSBmZWUuCisKKyAgMi4gWW91IG1heSBtb2RpZnkgeW91ciBjb3B5IG9yIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbgorb2YgaXQsIHRodXMgZm9ybWluZyBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0sIGFuZCBjb3B5IGFuZAorZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCithYm92ZSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgorCisgICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisgICAgc3RhdGluZyB0aGF0IHlvdSBjaGFuZ2VkIHRoZSBmaWxlcyBhbmQgdGhlIGRhdGUgb2YgYW55IGNoYW5nZS4KKworICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgorICAgIHdob2xlIG9yIGluIHBhcnQgY29udGFpbnMgb3IgaXMgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtIG9yIGFueQorICAgIHBhcnQgdGhlcmVvZiwgdG8gYmUgbGljZW5zZWQgYXMgYSB3aG9sZSBhdCBubyBjaGFyZ2UgdG8gYWxsIHRoaXJkCisgICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgorCisgICAgYykgSWYgdGhlIG1vZGlmaWVkIHByb2dyYW0gbm9ybWFsbHkgcmVhZHMgY29tbWFuZHMgaW50ZXJhY3RpdmVseQorICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKKyAgICBpbnRlcmFjdGl2ZSB1c2UgaW4gdGhlIG1vc3Qgb3JkaW5hcnkgd2F5LCB0byBwcmludCBvciBkaXNwbGF5IGFuCisgICAgYW5ub3VuY2VtZW50IGluY2x1ZGluZyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBhCisgICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCisgICAgYSB3YXJyYW50eSkgYW5kIHRoYXQgdXNlcnMgbWF5IHJlZGlzdHJpYnV0ZSB0aGUgcHJvZ3JhbSB1bmRlcgorICAgIHRoZXNlIGNvbmRpdGlvbnMsIGFuZCB0ZWxsaW5nIHRoZSB1c2VyIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzCisgICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKKyAgICBkb2VzIG5vdCBub3JtYWxseSBwcmludCBzdWNoIGFuIGFubm91bmNlbWVudCwgeW91ciB3b3JrIGJhc2VkIG9uCisgICAgdGhlIFByb2dyYW0gaXMgbm90IHJlcXVpcmVkIHRvIHByaW50IGFuIGFubm91bmNlbWVudC4pCisMCitUaGVzZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3aG9sZS4gIElmCitpZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAorYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluCit0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5zZSwgYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlCitzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKK2Rpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZAorb24gdGhlIFByb2dyYW0sIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUgb24gdGhlIHRlcm1zIG9mCit0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQorZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlIGl0LgorCitUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKK3lvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7IHJhdGhlciwgdGhlIGludGVudCBpcyB0bworZXhlcmNpc2UgdGhlIHJpZ2h0IHRvIGNvbnRyb2wgdGhlIGRpc3RyaWJ1dGlvbiBvZiBkZXJpdmF0aXZlIG9yCitjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgorCitJbiBhZGRpdGlvbiwgbWVyZSBhZ2dyZWdhdGlvbiBvZiBhbm90aGVyIHdvcmsgbm90IGJhc2VkIG9uIHRoZSBQcm9ncmFtCit3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKK2Egc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtIGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCit0aGUgc2NvcGUgb2YgdGhpcyBMaWNlbnNlLgorCisgIDMuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYSB3b3JrIGJhc2VkIG9uIGl0LAordW5kZXIgU2VjdGlvbiAyKSBpbiBvYmplY3QgY29kZSBvciBleGVjdXRhYmxlIGZvcm0gdW5kZXIgdGhlIHRlcm1zIG9mCitTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CisKKyAgICBhKSBBY2NvbXBhbnkgaXQgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZyBtYWNoaW5lLXJlYWRhYmxlCisgICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCisgICAgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCisKKyAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQorICAgIHllYXJzLCB0byBnaXZlIGFueSB0aGlyZCBwYXJ0eSwgZm9yIGEgY2hhcmdlIG5vIG1vcmUgdGhhbiB5b3VyCisgICAgY29zdCBvZiBwaHlzaWNhbGx5IHBlcmZvcm1pbmcgc291cmNlIGRpc3RyaWJ1dGlvbiwgYSBjb21wbGV0ZQorICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKKyAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bQorICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKKworICAgIGMpIEFjY29tcGFueSBpdCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVjZWl2ZWQgYXMgdG8gdGhlIG9mZmVyCisgICAgdG8gZGlzdHJpYnV0ZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBjb2RlLiAgKFRoaXMgYWx0ZXJuYXRpdmUgaXMKKyAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQorICAgIHJlY2VpdmVkIHRoZSBwcm9ncmFtIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB3aXRoIHN1Y2gKKyAgICBhbiBvZmZlciwgaW4gYWNjb3JkIHdpdGggU3Vic2VjdGlvbiBiIGFib3ZlLikKKworVGhlIHNvdXJjZSBjb2RlIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvcgorbWFraW5nIG1vZGlmaWNhdGlvbnMgdG8gaXQuICBGb3IgYW4gZXhlY3V0YWJsZSB3b3JrLCBjb21wbGV0ZSBzb3VyY2UKK2NvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55Cithc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8KK2NvbnRyb2wgY29tcGlsYXRpb24gYW5kIGluc3RhbGxhdGlvbiBvZiB0aGUgZXhlY3V0YWJsZS4gIEhvd2V2ZXIsIGFzIGEKK3NwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQorYW55dGhpbmcgdGhhdCBpcyBub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkKK2Zvcm0pIHdpdGggdGhlIG1ham9yIGNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFuZCBzbyBvbikgb2YgdGhlCitvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAoraXRzZWxmIGFjY29tcGFuaWVzIHRoZSBleGVjdXRhYmxlLgorCitJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCithY2Nlc3MgdG8gY29weSBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50CithY2Nlc3MgdG8gY29weSB0aGUgc291cmNlIGNvZGUgZnJvbSB0aGUgc2FtZSBwbGFjZSBjb3VudHMgYXMKK2Rpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdAorY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KKwwKKyAgNC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCitleGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0CitvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKK3ZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4KK0hvd2V2ZXIsIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91IHVuZGVyCit0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaAorcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgorCisgIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdAorc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IKK2Rpc3RyaWJ1dGUgdGhlIFByb2dyYW0gb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuICBUaGVzZSBhY3Rpb25zIGFyZQorcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQorbW9kaWZ5aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCitQcm9ncmFtKSwgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28sIGFuZAorYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwordGhlIFByb2dyYW0gb3Igd29ya3MgYmFzZWQgb24gaXQuCisKKyAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQorUHJvZ3JhbSksIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUKK29yaWdpbmFsIGxpY2Vuc29yIHRvIGNvcHksIGRpc3RyaWJ1dGUgb3IgbW9kaWZ5IHRoZSBQcm9ncmFtIHN1YmplY3QgdG8KK3RoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCityZXN0cmljdGlvbnMgb24gdGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uCitZb3UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB0bwordGhpcyBMaWNlbnNlLgorCisgIDcuIElmLCBhcyBhIGNvbnNlcXVlbmNlIG9mIGEgY291cnQganVkZ21lbnQgb3IgYWxsZWdhdGlvbiBvZiBwYXRlbnQKK2luZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCitjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hldGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50IG9yCitvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CitleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdAorZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcworTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdQorbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudAorbGljZW5zZSB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieQorYWxsIHRob3NlIHdobyByZWNlaXZlIGNvcGllcyBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHRocm91Z2ggeW91LCB0aGVuCit0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCityZWZyYWluIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtLgorCitJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKK2FueSBwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8KK2FwcGx5IGFuZCB0aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyCitjaXJjdW1zdGFuY2VzLgorCitJdCBpcyBub3QgdGhlIHB1cnBvc2Ugb2YgdGhpcyBzZWN0aW9uIHRvIGluZHVjZSB5b3UgdG8gaW5mcmluZ2UgYW55CitwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQorc3VjaCBjbGFpbXM7IHRoaXMgc2VjdGlvbiBoYXMgdGhlIHNvbGUgcHVycG9zZSBvZiBwcm90ZWN0aW5nIHRoZQoraW50ZWdyaXR5IG9mIHRoZSBmcmVlIHNvZnR3YXJlIGRpc3RyaWJ1dGlvbiBzeXN0ZW0sIHdoaWNoIGlzCitpbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKK2dlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKK3Rocm91Z2ggdGhhdCBzeXN0ZW0gaW4gcmVsaWFuY2Ugb24gY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0CitzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCit0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QKK2ltcG9zZSB0aGF0IGNob2ljZS4KKworVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCitiZSBhIGNvbnNlcXVlbmNlIG9mIHRoZSByZXN0IG9mIHRoaXMgTGljZW5zZS4KKwwKKyAgOC4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBQcm9ncmFtIGlzIHJlc3RyaWN0ZWQgaW4KK2NlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQorb3JpZ2luYWwgY29weXJpZ2h0IGhvbGRlciB3aG8gcGxhY2VzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgTGljZW5zZQorbWF5IGFkZCBhbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nCit0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCitjb3VudHJpZXMgbm90IHRodXMgZXhjbHVkZWQuICBJbiBzdWNoIGNhc2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMKK3RoZSBsaW1pdGF0aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLgorCisgIDkuIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zCitvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4gIFN1Y2ggbmV3IHZlcnNpb25zIHdpbGwKK2JlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bworYWRkcmVzcyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCisKK0VhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0KK3NwZWNpZmllcyBhIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMgTGljZW5zZSB3aGljaCBhcHBsaWVzIHRvIGl0IGFuZCAiYW55CitsYXRlciB2ZXJzaW9uIiwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zCitlaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorU29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZgordGhpcyBMaWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorRm91bmRhdGlvbi4KKworICAxMC4gSWYgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUgcGFydHMgb2YgdGhlIFByb2dyYW0gaW50byBvdGhlciBmcmVlCitwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCit0byBhc2sgZm9yIHBlcm1pc3Npb24uICBGb3Igc29mdHdhcmUgd2hpY2ggaXMgY29weXJpZ2h0ZWQgYnkgdGhlIEZyZWUKK1NvZnR3YXJlIEZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHdlIHNvbWV0aW1lcworbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKK29mIHByZXNlcnZpbmcgdGhlIGZyZWUgc3RhdHVzIG9mIGFsbCBkZXJpdmF0aXZlcyBvZiBvdXIgZnJlZSBzb2Z0d2FyZSBhbmQKK29mIHByb21vdGluZyB0aGUgc2hhcmluZyBhbmQgcmV1c2Ugb2Ygc29mdHdhcmUgZ2VuZXJhbGx5LgorCisJCQkgICAgTk8gV0FSUkFOVFkKKworICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKK0ZPUiBUSEUgUFJPR1JBTSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcuICBFWENFUFQgV0hFTgorT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUworUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKK09SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCitNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTCitUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFCitQUk9HUkFNIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRSBUSEUgQ09TVCBPRiBBTEwgTkVDRVNTQVJZIFNFUlZJQ0lORywKK1JFUEFJUiBPUiBDT1JSRUNUSU9OLgorCisgIDEyLiBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcKK1dJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTUFZIE1PRElGWSBBTkQvT1IKK1JFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCitJTkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUwsIElOQ0lERU5UQUwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEFSSVNJTkcKK09VVCBPRiBUSEUgVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKK1RPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQorWU9VIE9SIFRISVJEIFBBUlRJRVMgT1IgQSBGQUlMVVJFIE9GIFRIRSBQUk9HUkFNIFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVIKK1BST0dSQU1TKSwgRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRQorUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorCisJCSAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisMCisJQXBwZW5kaXg6IEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcworCisgIElmIHlvdSBkZXZlbG9wIGEgbmV3IHByb2dyYW0sIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRlc3QKK3Bvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKK2ZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgorCisgIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0Cit0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5Citjb252ZXkgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAordGhlICJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuCisKKyAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgorICAgIENvcHlyaWdodCAoQykgMTl5eSAgPG5hbWUgb2YgYXV0aG9yPgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisKK0Fsc28gYWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJvbmljIGFuZCBwYXBlciBtYWlsLgorCitJZiB0aGUgcHJvZ3JhbSBpcyBpbnRlcmFjdGl2ZSwgbWFrZSBpdCBvdXRwdXQgYSBzaG9ydCBub3RpY2UgbGlrZSB0aGlzCit3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgorCisgICAgR25vbW92aXNpb24gdmVyc2lvbiA2OSwgQ29weXJpZ2h0IChDKSAxOXl5IG5hbWUgb2YgYXV0aG9yCisgICAgR25vbW92aXNpb24gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZOyBmb3IgZGV0YWlscyB0eXBlIGBzaG93IHcnLgorICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKKyAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCisKK1RoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQorcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHRoZSBjb21tYW5kcyB5b3UgdXNlIG1heQorYmUgY2FsbGVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGBzaG93IHcnIGFuZCBgc2hvdyBjJzsgdGhleSBjb3VsZCBldmVuIGJlCittb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgorCitZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3IgeW91cgorc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKK25lY2Vzc2FyeS4gIEhlcmUgaXMgYSBzYW1wbGU7IGFsdGVyIHRoZSBuYW1lczoKKworICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCisgIGBHbm9tb3Zpc2lvbicgKHdoaWNoIG1ha2VzIHBhc3NlcyBhdCBjb21waWxlcnMpIHdyaXR0ZW4gYnkgSmFtZXMgSGFja2VyLgorCisgIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQorICBUeSBDb29uLCBQcmVzaWRlbnQgb2YgVmljZQorCitUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KK3Byb3ByaWV0YXJ5IHByb2dyYW1zLiAgSWYgeW91ciBwcm9ncmFtIGlzIGEgc3Vicm91dGluZSBsaWJyYXJ5LCB5b3UgbWF5Citjb25zaWRlciBpdCBtb3JlIHVzZWZ1bCB0byBwZXJtaXQgbGlua2luZyBwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnMgd2l0aCB0aGUKK2xpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbAorUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWNlbnNlcy9DT1BZSU5HLlVDQiBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xpY2Vuc2VzL0NPUFlJTkcuVUNCCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhYmJmMjQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9saWNlbnNlcy9DT1BZSU5HLlVDQgpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTg5IFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIwYTZlNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMTQwIEBACitpbmNsdWRlICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KKworYmluX1BST0dSQU1TID0KK3VzcmJpbl9leGVjX1BST0dSQU1TID0KK3NiaW5fUFJPR1JBTVMgPQordXNyc2Jpbl9leGVjX1BST0dSQU1TID0KK2Rpc3RfbWFuX01BTlMgPQorCitFWFRSQV9ESVNUID0gUkVBRE1FLmdldHR5ICBSRUFETUUubW9kZW1zLXdpdGgtYWdldHR5ICBSRUFETUUucG9laWdsCisKK2lmIEJVSUxEX0FHRVRUWQorc2Jpbl9QUk9HUkFNUyArPSBhZ2V0dHkKK2Rpc3RfbWFuX01BTlMgKz0gYWdldHR5LjgKK2VuZGlmCisKK2lmIEJVSUxEX0lOSVQKKworc2Jpbl9QUk9HUkFNUyArPSBzaW1wbGVpbml0IHNodXRkb3duIGluaXRjdGwKK2Rpc3RfbWFuX01BTlMgKz0gZmFzdGJvb3QuOCBmYXN0aGFsdC44IGhhbHQuOCByZWJvb3QuOCBzaW1wbGVpbml0Ljggc2h1dGRvd24uOCBcCisJaW5pdGN0bC44CisKK3NpbXBsZWluaXRfU09VUkNFUyA9IHNpbXBsZWluaXQuYyBteV9jcnlwdC5oIHNpbXBsZWluaXQuaAoraW5pdGN0bF9TT1VSQ0VTID0gaW5pdGN0bC5jIHNpbXBsZWluaXQuaAorCitpZiBORUVEX0xJQkNSWVBUCitzaW1wbGVpbml0X0xEQUREID0gLWxjcnlwdAorZW5kaWYKKworZW5kaWYgIyBCVUlMRF9JTklUCisKK2lmIEJVSUxEX0xBU1QKK3VzcmJpbl9leGVjX1BST0dSQU1TICs9IGxhc3QKK2Rpc3RfbWFuX01BTlMgKz0gbGFzdC4xCitlbmRpZgorCitpZiBCVUlMRF9MT0dJTl9VVElMUworCitiaW5fUFJPR1JBTVMgKz0gbG9naW4KK3VzcmJpbl9leGVjX1BST0dSQU1TICs9IGNoZm4gY2hzaCBuZXdncnAKK3VzcnNiaW5fZXhlY19QUk9HUkFNUyArPSB2aXB3CitkaXN0X21hbl9NQU5TICs9IGNoZm4uMSBjaHNoLjEgbG9naW4uMSBuZXdncnAuMSB2aXB3Ljggdmlnci44CisKKyMgbG9naW4sIGNoZm4gYW5kIGNoc2ggbGlicworbG9naW5fbGRhZGRfY29tbW9uID0KKworY2hmbl9TT1VSQ0VTID0gY2hmbi5jICQoY2hmbl9jaHNoX2NvbW1vbikKK2Noc2hfU09VUkNFUyA9IGNoc2guYyAkKGNoZm5fY2hzaF9jb21tb24pCitjaGZuX2Noc2hfY29tbW9uID0gaXNsb2NhbC5jIHNldHB3bmFtLmMgaXNsb2NhbC5oIG15X2NyeXB0Lmggc2V0cHduYW0uaCBcCisJLi4vbGliL2Vudi5jCitsb2dpbl9TT1VSQ0VTID0gbG9naW4uYyBsb2dpbi5oIG15X2NyeXB0LmggLi4vbGliL3NldHByb2N0aXRsZS5jCituZXdncnBfU09VUkNFUyA9IG5ld2dycC5jIG15X2NyeXB0LmgKK3ZpcHdfU09VUkNFUyA9IHZpcHcuYyBzZXRwd25hbS5oCisKK2NoZm5fTERBREQgPSAkKGxvZ2luX2xkYWRkX2NvbW1vbikKK2Noc2hfTERBREQgPSAkKGxvZ2luX2xkYWRkX2NvbW1vbikKK2xvZ2luX0xEQUREID0gJChsb2dpbl9sZGFkZF9jb21tb24pCituZXdncnBfTERBREQgPQordmlwd19MREFERCA9CisKK2NoZm5fQ0ZMQUdTID0gJChTVUlEX0NGTEFHUykgJChBTV9DRkxBR1MpCitjaHNoX0NGTEFHUyA9ICQoU1VJRF9DRkxBR1MpICQoQU1fQ0ZMQUdTKQorbmV3Z3JwX0NGTEFHUyA9ICQoU1VJRF9DRkxBR1MpICQoQU1fQ0ZMQUdTKQorCitjaGZuX0xERkxBR1MgPSAkKFNVSURfTERGTEFHUykgJChBTV9MREZMQUdTKQorY2hzaF9MREZMQUdTID0gJChTVUlEX0xERkxBR1MpICQoQU1fTERGTEFHUykKK25ld2dycF9MREZMQUdTID0gJChTVUlEX0xERkxBR1MpICQoQU1fTERGTEFHUykKKworaWYgSEFWRV9QQU0KK2xvZ2luX2xkYWRkX2NvbW1vbiArPSAtbHBhbSAtbHBhbV9taXNjCitlbHNlCitpZiBORUVEX0xJQkNSWVBUCitsb2dpbl9sZGFkZF9jb21tb24gKz0gLWxjcnlwdAorZW5kaWYKK2xvZ2luX1NPVVJDRVMgKz0gY2hlY2t0dHkuYworZW5kaWYgIyEgSEFWRV9QQU0KKworaWYgTkVFRF9MSUJDUllQVAorbmV3Z3JwX0xEQUREICs9IC1sY3J5cHQKK2VuZGlmCisKK2lmIEhBVkVfQVVESVQKK2xvZ2luX0xEQUREICs9IC1sYXVkaXQKK2VuZGlmCisKK2lmIEhBVkVfU0VMSU5VWAorY2hmbl9TT1VSQ0VTICs9IHNlbGludXhfdXRpbHMuYyBzZWxpbnV4X3V0aWxzLmgKK2Noc2hfU09VUkNFUyArPSBzZWxpbnV4X3V0aWxzLmMgc2VsaW51eF91dGlscy5oCit2aXB3X0xEQUREICs9IC1sc2VsaW51eAorbG9naW5fbGRhZGRfY29tbW9uICs9IC1sc2VsaW51eAorZW5kaWYKKworCitpbnN0YWxsLWV4ZWMtaG9vazo6CisJY2QgJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKSAmJiBsbiAtc2YgdmlwdyB2aWdyCisKK2VuZGlmCisKK2lmIEJVSUxEX01FU0cKK3VzcmJpbl9leGVjX1BST0dSQU1TICs9IG1lc2cKK2Rpc3RfbWFuX01BTlMgKz0gbWVzZy4xCitlbmRpZgorCitpZiBCVUlMRF9XQUxMCit1c3JiaW5fZXhlY19QUk9HUkFNUyArPSB3YWxsCit3YWxsX1NPVVJDRVMgPSB3YWxsLmMgdHR5bXNnLmMgdHR5bXNnLmgKK2Rpc3RfbWFuX01BTlMgKz0gd2FsbC4xCisKK2lmIFVTRV9UVFlfR1JPVVAKK2lmIE1BS0VJTlNUQUxMX0RPX0NIT1dOCitpbnN0YWxsLWV4ZWMtaG9vazo6CisJY2hncnAgdHR5ICQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKS93YWxsCisJY2htb2QgZytzICQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKS93YWxsCitlbmRpZgorZW5kaWYKK2VuZGlmCisKK2lmIEJVSUxEX0lOSVQKKworaW5zdGFsbC1leGVjLWhvb2s6OgorCWNkICQoREVTVERJUikkKHNiaW5kaXIpICYmIGxuIC1zZiBzaHV0ZG93biByZWJvb3QKKwljZCAkKERFU1RESVIpJChzYmluZGlyKSAmJiBsbiAtc2Ygc2h1dGRvd24gZmFzdGJvb3QKKwljZCAkKERFU1RESVIpJChzYmluZGlyKSAmJiBsbiAtc2Ygc2h1dGRvd24gaGFsdAorCWNkICQoREVTVERJUikkKHNiaW5kaXIpICYmIGxuIC1zZiBzaHV0ZG93biBmYXN0aGFsdAorCWNkICQoREVTVERJUikkKHNiaW5kaXIpICYmIGxuIC1zZiBpbml0Y3RsIG5lZWQKKwljZCAkKERFU1RESVIpJChzYmluZGlyKSAmJiBsbiAtc2YgaW5pdGN0bCBkaXNwbGF5LXNlcnZpY2VzCisJY2QgJChERVNURElSKSQoc2JpbmRpcikgJiYgbG4gLXNmIGluaXRjdGwgcHJvdmlkZQorCitpbnN0YWxsLWRhdGEtaG9vazoKKwljZCAkKERFU1RESVIpJChtYW5kaXIpL21hbjggJiYgbG4gLXNmIGluaXRjdGwuOCBuZWVkLjgKKwljZCAkKERFU1RESVIpJChtYW5kaXIpL21hbjggJiYgbG4gLXNmIGluaXRjdGwuOCBkaXNwbGF5LXNlcnZpY2VzLjgKKwljZCAkKERFU1RESVIpJChtYW5kaXIpL21hbjggJiYgbG4gLXNmIGluaXRjdGwuOCBwcm92aWRlLjgKKworZW5kaWYKKworbm9pbnN0X1BST0dSQU1TID0gY2hlY2t0dHlfdGVzdCBpc2xvY2FsX3Rlc3QKK2NoZWNrdHR5X3Rlc3RfU09VUkNFUyA9IGNoZWNrdHR5LmMgbG9naW4uaAorY2hlY2t0dHlfdGVzdF9DUFBGTEFHUyA9IC1ETUFJTl9URVNUX0NIRUNLVFRZICQoQU1fQ1BQRkxBR1MpCitpc2xvY2FsX3Rlc3RfU09VUkNFUyA9IGlzbG9jYWwuYworaXNsb2NhbF90ZXN0X0NQUEZMQUdTID0gLURNQUlOX1RFU1RfSVNMT0NBTCAkKEFNX0NQUEZMQUdTKQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmNWI1NWIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDEzNTMgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKKworVlBBVEggPSBAc3JjZGlyQAorcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACitwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorRElTVF9DT01NT04gPSAkKGFtX19kaXN0X25vaW5zdF9EQVRBX0RJU1QpICQoZGlzdF9tYW5fTUFOUykgXAorCSQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorCSQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK2Jpbl9QUk9HUkFNUyA9ICQoYW1fX0VYRUVYVF8xKQordXNyYmluX2V4ZWNfUFJPR1JBTVMgPSAkKGFtX19FWEVFWFRfNCkgJChhbV9fRVhFRVhUXzUpICQoYW1fX0VYRUVYVF82KSBcCisJJChhbV9fRVhFRVhUXzcpCitzYmluX1BST0dSQU1TID0gJChhbV9fRVhFRVhUXzIpICQoYW1fX0VYRUVYVF8zKQordXNyc2Jpbl9leGVjX1BST0dSQU1TID0gJChhbV9fRVhFRVhUXzgpCitAQlVJTERfQUdFVFRZX1RSVUVAYW1fX2FwcGVuZF8xID0gYWdldHR5CitAQlVJTERfQUdFVFRZX1RSVUVAYW1fX2FwcGVuZF8yID0gYWdldHR5LjgKK0BCVUlMRF9JTklUX1RSVUVAYW1fX2FwcGVuZF8zID0gc2ltcGxlaW5pdCBzaHV0ZG93biBpbml0Y3RsCitAQlVJTERfSU5JVF9UUlVFQGFtX19hcHBlbmRfNCA9IGZhc3Rib290LjggZmFzdGhhbHQuOCBoYWx0LjggcmVib290Ljggc2ltcGxlaW5pdC44IHNodXRkb3duLjggXAorQEJVSUxEX0lOSVRfVFJVRUAJaW5pdGN0bC44CisKK0BCVUlMRF9MQVNUX1RSVUVAYW1fX2FwcGVuZF81ID0gbGFzdAorQEJVSUxEX0xBU1RfVFJVRUBhbV9fYXBwZW5kXzYgPSBsYXN0LjEKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGFtX19hcHBlbmRfNyA9IGxvZ2luCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBhbV9fYXBwZW5kXzggPSBjaGZuIGNoc2ggbmV3Z3JwCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBhbV9fYXBwZW5kXzkgPSB2aXB3CitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBhbV9fYXBwZW5kXzEwID0gY2hmbi4xIGNoc2guMSBsb2dpbi4xIG5ld2dycC4xIHZpcHcuOCB2aWdyLjgKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQEBIQVZFX1BBTV9UUlVFQGFtX19hcHBlbmRfMTEgPSAtbHBhbSAtbHBhbV9taXNjCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBASEFWRV9QQU1fRkFMU0VAQE5FRURfTElCQ1JZUFRfVFJVRUBhbV9fYXBwZW5kXzEyID0gLWxjcnlwdAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAQEhBVkVfUEFNX0ZBTFNFQGFtX19hcHBlbmRfMTMgPSBjaGVja3R0eS5jCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBATkVFRF9MSUJDUllQVF9UUlVFQGFtX19hcHBlbmRfMTQgPSAtbGNyeXB0CitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBASEFWRV9BVURJVF9UUlVFQGFtX19hcHBlbmRfMTUgPSAtbGF1ZGl0CitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBASEFWRV9TRUxJTlVYX1RSVUVAYW1fX2FwcGVuZF8xNiA9IHNlbGludXhfdXRpbHMuYyBzZWxpbnV4X3V0aWxzLmgKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQEBIQVZFX1NFTElOVVhfVFJVRUBhbV9fYXBwZW5kXzE3ID0gc2VsaW51eF91dGlscy5jIHNlbGludXhfdXRpbHMuaAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAQEhBVkVfU0VMSU5VWF9UUlVFQGFtX19hcHBlbmRfMTggPSAtbHNlbGludXgKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQEBIQVZFX1NFTElOVVhfVFJVRUBhbV9fYXBwZW5kXzE5ID0gLWxzZWxpbnV4CitAQlVJTERfTUVTR19UUlVFQGFtX19hcHBlbmRfMjAgPSBtZXNnCitAQlVJTERfTUVTR19UUlVFQGFtX19hcHBlbmRfMjEgPSBtZXNnLjEKK0BCVUlMRF9XQUxMX1RSVUVAYW1fX2FwcGVuZF8yMiA9IHdhbGwKK0BCVUlMRF9XQUxMX1RSVUVAYW1fX2FwcGVuZF8yMyA9IHdhbGwuMQorbm9pbnN0X1BST0dSQU1TID0gY2hlY2t0dHlfdGVzdCQoRVhFRVhUKSBpc2xvY2FsX3Rlc3QkKEVYRUVYVCkKK3N1YmRpciA9IGxvZ2luLXV0aWxzCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9nZXR0ZXh0Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2d0ay1kb2MubTQgJCh0b3Bfc3JjZGlyKS9tNC9pY29udi5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItbGQubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWItbGluay5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItcHJlZml4Lm00ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L25scy5tNCAkKHRvcF9zcmNkaXIpL200L3BvLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L3Byb2d0ZXN0Lm00ICQodG9wX3NyY2RpcikvbTQvdGxzLm00IFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvbWtpbnN0YWxsZGlycworQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9jb25maWcuaAorQ09ORklHX0NMRUFOX0ZJTEVTID0KK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBhbV9fRVhFRVhUXzEgPSBsb2dpbiQoRVhFRVhUKQorYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChzYmluZGlyKSIgXAorCSIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpIiBcCisJIiQoREVTVERJUikkKG1hbjFkaXIpIiAiJChERVNURElSKSQobWFuOGRpcikiCitAQlVJTERfQUdFVFRZX1RSVUVAYW1fX0VYRUVYVF8yID0gYWdldHR5JChFWEVFWFQpCitAQlVJTERfSU5JVF9UUlVFQGFtX19FWEVFWFRfMyA9IHNpbXBsZWluaXQkKEVYRUVYVCkgc2h1dGRvd24kKEVYRUVYVCkgXAorQEJVSUxEX0lOSVRfVFJVRUAJaW5pdGN0bCQoRVhFRVhUKQorQEJVSUxEX0xBU1RfVFJVRUBhbV9fRVhFRVhUXzQgPSBsYXN0JChFWEVFWFQpCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBhbV9fRVhFRVhUXzUgPSBjaGZuJChFWEVFWFQpIGNoc2gkKEVYRUVYVCkgXAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVACW5ld2dycCQoRVhFRVhUKQorQEJVSUxEX01FU0dfVFJVRUBhbV9fRVhFRVhUXzYgPSBtZXNnJChFWEVFWFQpCitAQlVJTERfV0FMTF9UUlVFQGFtX19FWEVFWFRfNyA9IHdhbGwkKEVYRUVYVCkKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGFtX19FWEVFWFRfOCA9IHZpcHckKEVYRUVYVCkKK1BST0dSQU1TID0gJChiaW5fUFJPR1JBTVMpICQobm9pbnN0X1BST0dSQU1TKSAkKHNiaW5fUFJPR1JBTVMpIFwKKwkkKHVzcmJpbl9leGVjX1BST0dSQU1TKSAkKHVzcnNiaW5fZXhlY19QUk9HUkFNUykKK2FnZXR0eV9TT1VSQ0VTID0gYWdldHR5LmMKK2FnZXR0eV9PQkpFQ1RTID0gYWdldHR5LiQoT0JKRVhUKQorYWdldHR5X0xEQUREID0gJChMREFERCkKK0FNX1ZfbHQgPSAkKGFtX192X2x0XyQoVikpCithbV9fdl9sdF8gPSAkKGFtX192X2x0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfbHRfMCA9IC0tc2lsZW50CithbV9jaGVja3R0eV90ZXN0X09CSkVDVFMgPSBjaGVja3R0eV90ZXN0LWNoZWNrdHR5LiQoT0JKRVhUKQorY2hlY2t0dHlfdGVzdF9PQkpFQ1RTID0gJChhbV9jaGVja3R0eV90ZXN0X09CSkVDVFMpCitjaGVja3R0eV90ZXN0X0xEQUREID0gJChMREFERCkKK2FtX19jaGZuX1NPVVJDRVNfRElTVCA9IGNoZm4uYyBpc2xvY2FsLmMgc2V0cHduYW0uYyBpc2xvY2FsLmggXAorCW15X2NyeXB0Lmggc2V0cHduYW0uaCAuLi9saWIvZW52LmMgc2VsaW51eF91dGlscy5jIFwKKwlzZWxpbnV4X3V0aWxzLmgKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGFtX19vYmplY3RzXzEgPSBjaGZuLWlzbG9jYWwuJChPQkpFWFQpIFwKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQAljaGZuLXNldHB3bmFtLiQoT0JKRVhUKSBcCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUAJY2hmbi1lbnYuJChPQkpFWFQpCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBASEFWRV9TRUxJTlVYX1RSVUVAYW1fX29iamVjdHNfMiA9IGNoZm4tc2VsaW51eF91dGlscy4kKE9CSkVYVCkKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGFtX2NoZm5fT0JKRUNUUyA9IGNoZm4tY2hmbi4kKE9CSkVYVCkgXAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVACSQoYW1fX29iamVjdHNfMSkgJChhbV9fb2JqZWN0c18yKQorY2hmbl9PQkpFQ1RTID0gJChhbV9jaGZuX09CSkVDVFMpCithbV9fREVQRU5ERU5DSUVTXzEgPQorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAYW1fX0RFUEVOREVOQ0lFU18yID0gJChhbV9fREVQRU5ERU5DSUVTXzEpIFwKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQAkkKGFtX19ERVBFTkRFTkNJRVNfMSkgXAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVACSQoYW1fX0RFUEVOREVOQ0lFU18xKQorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAY2hmbl9ERVBFTkRFTkNJRVMgPSAkKGFtX19ERVBFTkRFTkNJRVNfMikKK2NoZm5fTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoY2hmbl9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChjaGZuX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK2FtX19jaHNoX1NPVVJDRVNfRElTVCA9IGNoc2guYyBpc2xvY2FsLmMgc2V0cHduYW0uYyBpc2xvY2FsLmggXAorCW15X2NyeXB0Lmggc2V0cHduYW0uaCAuLi9saWIvZW52LmMgc2VsaW51eF91dGlscy5jIFwKKwlzZWxpbnV4X3V0aWxzLmgKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGFtX19vYmplY3RzXzMgPSBjaHNoLWlzbG9jYWwuJChPQkpFWFQpIFwKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQAljaHNoLXNldHB3bmFtLiQoT0JKRVhUKSBcCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUAJY2hzaC1lbnYuJChPQkpFWFQpCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBASEFWRV9TRUxJTlVYX1RSVUVAYW1fX29iamVjdHNfNCA9IGNoc2gtc2VsaW51eF91dGlscy4kKE9CSkVYVCkKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGFtX2Noc2hfT0JKRUNUUyA9IGNoc2gtY2hzaC4kKE9CSkVYVCkgXAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVACSQoYW1fX29iamVjdHNfMykgJChhbV9fb2JqZWN0c180KQorY2hzaF9PQkpFQ1RTID0gJChhbV9jaHNoX09CSkVDVFMpCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBjaHNoX0RFUEVOREVOQ0lFUyA9ICQoYW1fX0RFUEVOREVOQ0lFU18yKQorY2hzaF9MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKGNoc2hfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorYW1fX2luaXRjdGxfU09VUkNFU19ESVNUID0gaW5pdGN0bC5jIHNpbXBsZWluaXQuaAorQEJVSUxEX0lOSVRfVFJVRUBhbV9pbml0Y3RsX09CSkVDVFMgPSBpbml0Y3RsLiQoT0JKRVhUKQoraW5pdGN0bF9PQkpFQ1RTID0gJChhbV9pbml0Y3RsX09CSkVDVFMpCitpbml0Y3RsX0xEQUREID0gJChMREFERCkKK2FtX2lzbG9jYWxfdGVzdF9PQkpFQ1RTID0gaXNsb2NhbF90ZXN0LWlzbG9jYWwuJChPQkpFWFQpCitpc2xvY2FsX3Rlc3RfT0JKRUNUUyA9ICQoYW1faXNsb2NhbF90ZXN0X09CSkVDVFMpCitpc2xvY2FsX3Rlc3RfTERBREQgPSAkKExEQUREKQorbGFzdF9TT1VSQ0VTID0gbGFzdC5jCitsYXN0X09CSkVDVFMgPSBsYXN0LiQoT0JKRVhUKQorbGFzdF9MREFERCA9ICQoTERBREQpCithbV9fbG9naW5fU09VUkNFU19ESVNUID0gbG9naW4uYyBsb2dpbi5oIG15X2NyeXB0LmggXAorCS4uL2xpYi9zZXRwcm9jdGl0bGUuYyBjaGVja3R0eS5jCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBASEFWRV9QQU1fRkFMU0VAYW1fX29iamVjdHNfNSA9ICBcCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBASEFWRV9QQU1fRkFMU0VACWNoZWNrdHR5LiQoT0JKRVhUKQorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAYW1fbG9naW5fT0JKRUNUUyA9IGxvZ2luLiQoT0JKRVhUKSBcCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUAJc2V0cHJvY3RpdGxlLiQoT0JKRVhUKSBcCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUAJJChhbV9fb2JqZWN0c181KQorbG9naW5fT0JKRUNUUyA9ICQoYW1fbG9naW5fT0JKRUNUUykKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGxvZ2luX0RFUEVOREVOQ0lFUyA9ICQoYW1fX0RFUEVOREVOQ0lFU18yKSBcCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUAJJChhbV9fREVQRU5ERU5DSUVTXzEpCittZXNnX1NPVVJDRVMgPSBtZXNnLmMKK21lc2dfT0JKRUNUUyA9IG1lc2cuJChPQkpFWFQpCittZXNnX0xEQUREID0gJChMREFERCkKK2FtX19uZXdncnBfU09VUkNFU19ESVNUID0gbmV3Z3JwLmMgbXlfY3J5cHQuaAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAYW1fbmV3Z3JwX09CSkVDVFMgPSBuZXdncnAtbmV3Z3JwLiQoT0JKRVhUKQorbmV3Z3JwX09CSkVDVFMgPSAkKGFtX25ld2dycF9PQkpFQ1RTKQorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAbmV3Z3JwX0RFUEVOREVOQ0lFUyA9ICQoYW1fX0RFUEVOREVOQ0lFU18xKQorbmV3Z3JwX0xJTksgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKG5ld2dycF9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChuZXdncnBfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorc2h1dGRvd25fU09VUkNFUyA9IHNodXRkb3duLmMKK3NodXRkb3duX09CSkVDVFMgPSBzaHV0ZG93bi4kKE9CSkVYVCkKK3NodXRkb3duX0xEQUREID0gJChMREFERCkKK2FtX19zaW1wbGVpbml0X1NPVVJDRVNfRElTVCA9IHNpbXBsZWluaXQuYyBteV9jcnlwdC5oIHNpbXBsZWluaXQuaAorQEJVSUxEX0lOSVRfVFJVRUBhbV9zaW1wbGVpbml0X09CSkVDVFMgPSBzaW1wbGVpbml0LiQoT0JKRVhUKQorc2ltcGxlaW5pdF9PQkpFQ1RTID0gJChhbV9zaW1wbGVpbml0X09CSkVDVFMpCitzaW1wbGVpbml0X0RFUEVOREVOQ0lFUyA9CithbV9fdmlwd19TT1VSQ0VTX0RJU1QgPSB2aXB3LmMgc2V0cHduYW0uaAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAYW1fdmlwd19PQkpFQ1RTID0gdmlwdy4kKE9CSkVYVCkKK3ZpcHdfT0JKRUNUUyA9ICQoYW1fdmlwd19PQkpFQ1RTKQorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAdmlwd19ERVBFTkRFTkNJRVMgPSAkKGFtX19ERVBFTkRFTkNJRVNfMSkKK2FtX193YWxsX1NPVVJDRVNfRElTVCA9IHdhbGwuYyB0dHltc2cuYyB0dHltc2cuaAorQEJVSUxEX1dBTExfVFJVRUBhbV93YWxsX09CSkVDVFMgPSB3YWxsLiQoT0JKRVhUKSB0dHltc2cuJChPQkpFWFQpCit3YWxsX09CSkVDVFMgPSAkKGFtX3dhbGxfT0JKRUNUUykKK3dhbGxfTERBREQgPSAkKExEQUREKQorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSBhZ2V0dHkuYyAkKGNoZWNrdHR5X3Rlc3RfU09VUkNFUykgJChjaGZuX1NPVVJDRVMpIFwKKwkkKGNoc2hfU09VUkNFUykgJChpbml0Y3RsX1NPVVJDRVMpICQoaXNsb2NhbF90ZXN0X1NPVVJDRVMpIFwKKwlsYXN0LmMgJChsb2dpbl9TT1VSQ0VTKSBtZXNnLmMgJChuZXdncnBfU09VUkNFUykgc2h1dGRvd24uYyBcCisJJChzaW1wbGVpbml0X1NPVVJDRVMpICQodmlwd19TT1VSQ0VTKSAkKHdhbGxfU09VUkNFUykKK0RJU1RfU09VUkNFUyA9IGFnZXR0eS5jICQoY2hlY2t0dHlfdGVzdF9TT1VSQ0VTKSBcCisJJChhbV9fY2hmbl9TT1VSQ0VTX0RJU1QpICQoYW1fX2Noc2hfU09VUkNFU19ESVNUKSBcCisJJChhbV9faW5pdGN0bF9TT1VSQ0VTX0RJU1QpICQoaXNsb2NhbF90ZXN0X1NPVVJDRVMpIGxhc3QuYyBcCisJJChhbV9fbG9naW5fU09VUkNFU19ESVNUKSBtZXNnLmMgJChhbV9fbmV3Z3JwX1NPVVJDRVNfRElTVCkgXAorCXNodXRkb3duLmMgJChhbV9fc2ltcGxlaW5pdF9TT1VSQ0VTX0RJU1QpIFwKKwkkKGFtX192aXB3X1NPVVJDRVNfRElTVCkgJChhbV9fd2FsbF9TT1VSQ0VTX0RJU1QpCithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCittYW4xZGlyID0gJChtYW5kaXIpL21hbjEKK21hbjhkaXIgPSAkKG1hbmRpcikvbWFuOAorTlJPRkYgPSBucm9mZgorTUFOUyA9ICQoZGlzdF9tYW5fTUFOUykKK2FtX19kaXN0X25vaW5zdF9EQVRBX0RJU1QgPSBhZ2V0dHkuOCBmYXN0Ym9vdC44IGZhc3RoYWx0LjggaGFsdC44IFwKKwlyZWJvb3QuOCBzaW1wbGVpbml0Ljggc2h1dGRvd24uOCBpbml0Y3RsLjggbGFzdC4xIGNoZm4uMSBcCisJY2hzaC4xIGxvZ2luLjEgbmV3Z3JwLjEgdmlwdy44IHZpZ3IuOCBtZXNnLjEgd2FsbC4xCitEQVRBID0gJChkaXN0X25vaW5zdF9EQVRBKQorRVRBR1MgPSBldGFncworQ1RBR1MgPSBjdGFncworRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKK0FDTE9DQUwgPSBAQUNMT0NBTEAKK0FNVEFSID0gQEFNVEFSQAorQU1fREVGQVVMVF9WRVJCT1NJVFkgPSBAQU1fREVGQVVMVF9WRVJCT1NJVFlACitBUiA9IEBBUkAKK0FVVE9DT05GID0gQEFVVE9DT05GQAorQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorQVVUT01BS0UgPSBAQVVUT01BS0VACitBV0sgPSBAQVdLQAorQkxLSURfQ0ZMQUdTID0gQEJMS0lEX0NGTEFHU0AKK0JMS0lEX0xJQlMgPSBAQkxLSURfTElCU0AKK0JMS0lEX0xJQlNfU1RBVElDID0gQEJMS0lEX0xJQlNfU1RBVElDQAorQ0MgPSBAQ0NACitDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorQ0ZMQUdTID0gQENGTEFHU0AKK0NQUCA9IEBDUFBACitDUFBGTEFHUyA9IEBDUFBGTEFHU0AKK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACitERUZTID0gQERFRlNACitERVBESVIgPSBAREVQRElSQAorRFNZTVVUSUwgPSBARFNZTVVUSUxACitEVU1QQklOID0gQERVTVBCSU5ACitFQ0hPX0MgPSBARUNIT19DQAorRUNIT19OID0gQEVDSE9fTkAKK0VDSE9fVCA9IEBFQ0hPX1RACitFR1JFUCA9IEBFR1JFUEAKK0VYRUVYVCA9IEBFWEVFWFRACitGR1JFUCA9IEBGR1JFUEAKK0dNU0dGTVQgPSBAR01TR0ZNVEAKK0dSRVAgPSBAR1JFUEAKK0dUS0RPQ19DSEVDSyA9IEBHVEtET0NfQ0hFQ0tACitIVE1MX0RJUiA9IEBIVE1MX0RJUkAKK0lOU1RBTEwgPSBASU5TVEFMTEAKK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACitJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACitJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorSU5UTExJQlMgPSBASU5UTExJQlNACitMRCA9IEBMREAKK0xERkxBR1MgPSBATERGTEFHU0AKK0xJQkJMS0lEX0RBVEUgPSBATElCQkxLSURfREFURUAKK0xJQkJMS0lEX1ZFUlNJT04gPSBATElCQkxLSURfVkVSU0lPTkAKK0xJQkJMS0lEX1ZFUlNJT05fSU5GTyA9IEBMSUJCTEtJRF9WRVJTSU9OX0lORk9ACitMSUJJQ09OViA9IEBMSUJJQ09OVkAKK0xJQklOVEwgPSBATElCSU5UTEAKK0xJQk9CSlMgPSBATElCT0JKU0AKK0xJQlMgPSBATElCU0AKK0xJQlRPT0wgPSBATElCVE9PTEAKK0xJQlVVSURfVkVSU0lPTiA9IEBMSUJVVUlEX1ZFUlNJT05ACitMSUJVVUlEX1ZFUlNJT05fSU5GTyA9IEBMSUJVVUlEX1ZFUlNJT05fSU5GT0AKK0xJUE8gPSBATElQT0AKK0xOX1MgPSBATE5fU0AKK0xUTElCSUNPTlYgPSBATFRMSUJJQ09OVkAKK0xUTElCSU5UTCA9IEBMVExJQklOVExACitMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorTUFLRUlORk8gPSBATUFLRUlORk9ACitNS0RJUl9QID0gQE1LRElSX1BACitNS0lOU1RBTExESVJTID0gQE1LSU5TVEFMTERJUlNACitNU0dGTVQgPSBATVNHRk1UQAorTVNHTUVSR0UgPSBATVNHTUVSR0VACitOQ1VSU0VTX0xJQlMgPSBATkNVUlNFU19MSUJTQAorTk0gPSBATk1ACitOTUVESVQgPSBATk1FRElUQAorT0JKRFVNUCA9IEBPQkpEVU1QQAorT0JKRVhUID0gQE9CSkVYVEAKK09UT09MID0gQE9UT09MQAorT1RPT0w2NCA9IEBPVE9PTDY0QAorUEFDS0FHRSA9IEBQQUNLQUdFQAorUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACitQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACitQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorUEVSTCA9IEBQRVJMQAorUEtHX0NPTkZJRyA9IEBQS0dfQ09ORklHQAorUE9TVUIgPSBAUE9TVUJACitSQU5MSUIgPSBAUkFOTElCQAorU0VEID0gQFNFREAKK1NFTElOVVhfTElCUyA9IEBTRUxJTlVYX0xJQlNACitTRUxJTlVYX0xJQlNfU1RBVElDID0gQFNFTElOVVhfTElCU19TVEFUSUNACitTRVRfTUFLRSA9IEBTRVRfTUFLRUAKK1NIRUxMID0gQFNIRUxMQAorU1RSSVAgPSBAU1RSSVBACitTVUlEX0NGTEFHUyA9IEBTVUlEX0NGTEFHU0AKK1NVSURfTERGTEFHUyA9IEBTVUlEX0xERkxBR1NACitVU0VfTkxTID0gQFVTRV9OTFNACitVVUlEX0NGTEFHUyA9IEBVVUlEX0NGTEFHU0AKK1VVSURfTElCUyA9IEBVVUlEX0xJQlNACitWRVJTSU9OID0gQFZFUlNJT05ACitYR0VUVEVYVCA9IEBYR0VUVEVYVEAKK1hTTFRQUk9DID0gQFhTTFRQUk9DQAorYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACithY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACithbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACithbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorYW1fX3RhciA9IEBhbV9fdGFyQAorYW1fX3VudGFyID0gQGFtX191bnRhckAKK2JpbmRpciA9IEBiaW5kaXJACitidWlsZCA9IEBidWlsZEAKK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKK2J1aWxkX29zID0gQGJ1aWxkX29zQAorYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorZGF0YWRpciA9IEBkYXRhZGlyQAorZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACitkb2NkaXIgPSBAZG9jZGlyQAorZHZpZGlyID0gQGR2aWRpckAKK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAoraG9zdCA9IEBob3N0QAoraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAoraG9zdF9jcHUgPSBAaG9zdF9jcHVACitob3N0X29zID0gQGhvc3Rfb3NACitob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKK2h0bWxkaXIgPSBAaHRtbGRpckAKK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKK2luZm9kaXIgPSBAaW5mb2RpckAKK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKK2xpYmRpciA9IEBsaWJkaXJACitsaWJkaXJuYW1lID0gQGxpYmRpcm5hbWVACitsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACitsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorbHRfRUNITyA9IEBsdF9FQ0hPQAorbWFuZGlyID0gQG1hbmRpckAKK21rZGlyX3AgPSBAbWtkaXJfcEAKK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKK3BkZmRpciA9IEBwZGZkaXJACitwcmVmaXggPSBAcHJlZml4QAorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorcHNkaXIgPSBAcHNkaXJACitzYmluZGlyID0gQHNiaW5kaXJACitzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKK3NyY2RpciA9IEBzcmNkaXJACitzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACit0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAordG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAordG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKK3VzcmJpbl9leGVjZGlyID0gQHVzcmJpbl9leGVjZGlyQAordXNybGliX2V4ZWNkaXIgPSBAdXNybGliX2V4ZWNkaXJACit1c3JzYmluX2V4ZWNkaXIgPSBAdXNyc2Jpbl9leGVjZGlyQAorQU1fQ1BQRkxBR1MgPSAtaW5jbHVkZSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmggLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgXAorCS1ETE9DQUxFRElSPVwiJChsb2NhbGVkaXIpXCIKKworQU1fQ0ZMQUdTID0gLWZzaWduZWQtY2hhcgorQU1fTERGTEFHUyA9IAorCisjIEF1dG9tYWtlIChhdCBsZWFzdCB1cCB0byAxLjEwKSBtaXNoYW5kbGVzIGRpc3RfbWFuX01BTlMgaW5zaWRlIGNvbmRpdGlvbmFscy4KKyMgVW5saWtlIHdpdGggb3RoZXIgZGlzdCBwcmltYXJpZXMsIHRoZSBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVkIGlmIHRoZQorIyBjb25kaXRpb25hbCBpcyBmYWxzZS4KKyMgV29yayB0aGUgYnVnIGFyb3VuZCB1bnRpbCBpdCBpcyBmaXhlZDoKK2Rpc3Rfbm9pbnN0X0RBVEEgPSAkKGRpc3RfbWFuX01BTlMpCisKKyMgUGF0aHMgdG8gaW4tdHJlZSBsaWJyYXJpZXMgKHVzZSB1bF8gcHJlZml4IHRvIGF2b2lkIHBvc3NpYmxlIGNvbGxpc2lvbnMpCisjCisjIGJsa2lkCit1bF9saWJibGtpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMvbGliYmxraWQubGEKKworIyBibGtpZC5oIGlzIGdlbmVyYXRlZCBieSAuL2NvbmZpZ3VyZSBzY3JpcHQgYW5kIHN0b3JlZCBpbiBidWlsZCBkaXJlY3RvcnkKK3VsX2xpYmJsa2lkX2luY2RpciA9ICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyMgdXVpZAordWxfbGlidXVpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjL2xpYnV1aWQubGEKK2Rpc3RfbWFuX01BTlMgPSAkKGFtX19hcHBlbmRfMikgJChhbV9fYXBwZW5kXzQpICQoYW1fX2FwcGVuZF82KSBcCisJJChhbV9fYXBwZW5kXzEwKSAkKGFtX19hcHBlbmRfMjEpICQoYW1fX2FwcGVuZF8yMykKK0VYVFJBX0RJU1QgPSBSRUFETUUuZ2V0dHkgIFJFQURNRS5tb2RlbXMtd2l0aC1hZ2V0dHkgIFJFQURNRS5wb2VpZ2wKK0BCVUlMRF9JTklUX1RSVUVAc2ltcGxlaW5pdF9TT1VSQ0VTID0gc2ltcGxlaW5pdC5jIG15X2NyeXB0Lmggc2ltcGxlaW5pdC5oCitAQlVJTERfSU5JVF9UUlVFQGluaXRjdGxfU09VUkNFUyA9IGluaXRjdGwuYyBzaW1wbGVpbml0LmgKK0BCVUlMRF9JTklUX1RSVUVAQE5FRURfTElCQ1JZUFRfVFJVRUBzaW1wbGVpbml0X0xEQUREID0gLWxjcnlwdAorCisjIGxvZ2luLCBjaGZuIGFuZCBjaHNoIGxpYnMKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGxvZ2luX2xkYWRkX2NvbW1vbiA9ICQoYW1fX2FwcGVuZF8xMSkgXAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVACSQoYW1fX2FwcGVuZF8xMikgJChhbV9fYXBwZW5kXzE5KQorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAY2hmbl9TT1VSQ0VTID0gY2hmbi5jICQoY2hmbl9jaHNoX2NvbW1vbikgXAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVACSQoYW1fX2FwcGVuZF8xNikKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGNoc2hfU09VUkNFUyA9IGNoc2guYyAkKGNoZm5fY2hzaF9jb21tb24pIFwKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQAkkKGFtX19hcHBlbmRfMTcpCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBjaGZuX2Noc2hfY29tbW9uID0gaXNsb2NhbC5jIHNldHB3bmFtLmMgaXNsb2NhbC5oIG15X2NyeXB0Lmggc2V0cHduYW0uaCBcCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUAJLi4vbGliL2Vudi5jCisKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGxvZ2luX1NPVVJDRVMgPSBsb2dpbi5jIGxvZ2luLmggbXlfY3J5cHQuaCBcCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUAJLi4vbGliL3NldHByb2N0aXRsZS5jICQoYW1fX2FwcGVuZF8xMykKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQG5ld2dycF9TT1VSQ0VTID0gbmV3Z3JwLmMgbXlfY3J5cHQuaAorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAdmlwd19TT1VSQ0VTID0gdmlwdy5jIHNldHB3bmFtLmgKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGNoZm5fTERBREQgPSAkKGxvZ2luX2xkYWRkX2NvbW1vbikKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGNoc2hfTERBREQgPSAkKGxvZ2luX2xkYWRkX2NvbW1vbikKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGxvZ2luX0xEQUREID0gJChsb2dpbl9sZGFkZF9jb21tb24pIFwKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQAkkKGFtX19hcHBlbmRfMTUpCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBuZXdncnBfTERBREQgPSAkKGFtX19hcHBlbmRfMTQpCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUB2aXB3X0xEQUREID0gJChhbV9fYXBwZW5kXzE4KQorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAY2hmbl9DRkxBR1MgPSAkKFNVSURfQ0ZMQUdTKSAkKEFNX0NGTEFHUykKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGNoc2hfQ0ZMQUdTID0gJChTVUlEX0NGTEFHUykgJChBTV9DRkxBR1MpCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBuZXdncnBfQ0ZMQUdTID0gJChTVUlEX0NGTEFHUykgJChBTV9DRkxBR1MpCitAQlVJTERfTE9HSU5fVVRJTFNfVFJVRUBjaGZuX0xERkxBR1MgPSAkKFNVSURfTERGTEFHUykgJChBTV9MREZMQUdTKQorQEJVSUxEX0xPR0lOX1VUSUxTX1RSVUVAY2hzaF9MREZMQUdTID0gJChTVUlEX0xERkxBR1MpICQoQU1fTERGTEFHUykKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQG5ld2dycF9MREZMQUdTID0gJChTVUlEX0xERkxBR1MpICQoQU1fTERGTEFHUykKK0BCVUlMRF9XQUxMX1RSVUVAd2FsbF9TT1VSQ0VTID0gd2FsbC5jIHR0eW1zZy5jIHR0eW1zZy5oCitjaGVja3R0eV90ZXN0X1NPVVJDRVMgPSBjaGVja3R0eS5jIGxvZ2luLmgKK2NoZWNrdHR5X3Rlc3RfQ1BQRkxBR1MgPSAtRE1BSU5fVEVTVF9DSEVDS1RUWSAkKEFNX0NQUEZMQUdTKQoraXNsb2NhbF90ZXN0X1NPVVJDRVMgPSBpc2xvY2FsLmMKK2lzbG9jYWxfdGVzdF9DUFBGTEFHUyA9IC1ETUFJTl9URVNUX0lTTE9DQUwgJChBTV9DUFBGTEFHUykKK2FsbDogYWxsLWFtCisKKy5TVUZGSVhFUzoKKy5TVUZGSVhFUzogLmMgLmxvIC5vIC5vYmoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiBsb2dpbi11dGlscy9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gbG9naW4tdXRpbHMvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgoraW5zdGFsbC1iaW5QUk9HUkFNUzogJChiaW5fUFJPR1JBTVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChiaW5kaXIpIgorCUBsaXN0PSckKGJpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJChiaW5kaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQoYmluZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAorCSAgICB9IFwKKwk7IGRvbmUKKwordW5pbnN0YWxsLWJpblBST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoYmluZGlyKSIgfHwgbGlzdD07IFwKKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgXAorCSAgc2VkIC1lICdoO3MsXi4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSknIFwKKwkgICAgICAtZSAncy8kJC8kKEVYRUVYVCkvJyBgOyBcCisJdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQoYmluZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKGJpbmRpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tYmluUFJPR1JBTVM6CisJQGxpc3Q9JyQoYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAorCitjbGVhbi1ub2luc3RQUk9HUkFNUzoKKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0CitpbnN0YWxsLXNiaW5QUk9HUkFNUzogJChzYmluX1BST0dSQU1TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQoc2JpbmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHNiaW5kaXIpIgorCUBsaXN0PSckKHNiaW5fUFJPR1JBTVMpJzsgdGVzdCAtbiAiJChzYmluZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorCXNlZCAncy8kKEVYRUVYVCkkJC8vJyB8IFwKKwl3aGlsZSByZWFkIHAgcDE7IGRvIGlmIHRlc3QgLWYgJCRwIHx8IHRlc3QgLWYgJCRwMTsgXAorCSAgdGhlbiBlY2hvICIkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ3A7cywuKi8sLDtuO2gnIC1lICdzfC4qfC58JyBcCisJICAgIC1lICdwO3g7cywuKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pO3MvJCQvJChFWEVFWFQpLycgfCBcCisJc2VkICdOO047TjtzLFxuLCAsZycgfCBcCisJJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIjsgZGlyc1siLiJdID0gMSB9IFwKKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKwkgICAgaWYgKCQkMiA9PSAkJDQpIGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAorCSAgICBlbHNlIHsgcHJpbnQgImYiLCAkJDMgIi8iICQkNCwgJCQxOyB9IH0gXAorCSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAorCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKwkgICAgaWYgdGVzdCAiJCRkaXIiID0gLjsgdGhlbiBkaXI9OyBlbHNlIGRpcj0vJCRkaXI7IGZpOyBcCisJICAgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgJyQoREVTVERJUikkKHNiaW5kaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQoc2JpbmRpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgfSBcCisJOyBkb25lCisKK3VuaW5zdGFsbC1zYmluUFJPR1JBTVM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoc2JpbmRpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKwkgIHNlZCAtZSAnaDtzLF4uKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pJyBcCisJICAgICAgLWUgJ3MvJCQvJChFWEVFWFQpLycgYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHNiaW5kaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQoc2JpbmRpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tc2JpblBST0dSQU1TOgorCUBsaXN0PSckKHNiaW5fUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0CitpbnN0YWxsLXVzcmJpbl9leGVjUFJPR1JBTVM6ICQodXNyYmluX2V4ZWNfUFJPR1JBTVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJCh1c3JiaW5fZXhlY2RpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIKKwlAbGlzdD0nJCh1c3JiaW5fZXhlY19QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHVzcmJpbl9leGVjZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorCXNlZCAncy8kKEVYRUVYVCkkJC8vJyB8IFwKKwl3aGlsZSByZWFkIHAgcDE7IGRvIGlmIHRlc3QgLWYgJCRwIHx8IHRlc3QgLWYgJCRwMTsgXAorCSAgdGhlbiBlY2hvICIkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ3A7cywuKi8sLDtuO2gnIC1lICdzfC4qfC58JyBcCisJICAgIC1lICdwO3g7cywuKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pO3MvJCQvJChFWEVFWFQpLycgfCBcCisJc2VkICdOO047TjtzLFxuLCAsZycgfCBcCisJJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIjsgZGlyc1siLiJdID0gMSB9IFwKKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKwkgICAgaWYgKCQkMiA9PSAkJDQpIGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAorCSAgICBlbHNlIHsgcHJpbnQgImYiLCAkJDMgIi8iICQkNCwgJCQxOyB9IH0gXAorCSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAorCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKwkgICAgaWYgdGVzdCAiJCRkaXIiID0gLjsgdGhlbiBkaXI9OyBlbHNlIGRpcj0vJCRkaXI7IGZpOyBcCisJICAgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgJyQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSQkZGlyJyI7IFwKKwkgICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAorCSAgICB9IFwKKwk7IGRvbmUKKwordW5pbnN0YWxsLXVzcmJpbl9leGVjUFJPR1JBTVM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJCh1c3JiaW5fZXhlY19QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHVzcmJpbl9leGVjZGlyKSIgfHwgbGlzdD07IFwKKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgXAorCSAgc2VkIC1lICdoO3MsXi4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSknIFwKKwkgICAgICAtZSAncy8kJC8kKEVYRUVYVCkvJyBgOyBcCisJdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK2NsZWFuLXVzcmJpbl9leGVjUFJPR1JBTVM6CisJQGxpc3Q9JyQodXNyYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0CitpbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TOiAkKHVzcnNiaW5fZXhlY19QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHVzcnNiaW5fZXhlY2RpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikiCisJQGxpc3Q9JyQodXNyc2Jpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyc2Jpbl9leGVjZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorCXNlZCAncy8kKEVYRUVYVCkkJC8vJyB8IFwKKwl3aGlsZSByZWFkIHAgcDE7IGRvIGlmIHRlc3QgLWYgJCRwIHx8IHRlc3QgLWYgJCRwMTsgXAorCSAgdGhlbiBlY2hvICIkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ3A7cywuKi8sLDtuO2gnIC1lICdzfC4qfC58JyBcCisJICAgIC1lICdwO3g7cywuKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pO3MvJCQvJChFWEVFWFQpLycgfCBcCisJc2VkICdOO047TjtzLFxuLCAsZycgfCBcCisJJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIjsgZGlyc1siLiJdID0gMSB9IFwKKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKwkgICAgaWYgKCQkMiA9PSAkJDQpIGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAorCSAgICBlbHNlIHsgcHJpbnQgImYiLCAkJDMgIi8iICQkNCwgJCQxOyB9IH0gXAorCSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAorCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKwkgICAgaWYgdGVzdCAiJCRkaXIiID0gLjsgdGhlbiBkaXI9OyBlbHNlIGRpcj0vJCRkaXI7IGZpOyBcCisJICAgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgJyQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikkJGRpciciOyBcCisJICAgICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtdXNyc2Jpbl9leGVjUFJPR1JBTVM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJCh1c3JzYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCh1c3JzYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworCitjbGVhbi11c3JzYmluX2V4ZWNQUk9HUkFNUzoKKwlAbGlzdD0nJCh1c3JzYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0CithZ2V0dHkkKEVYRUVYVCk6ICQoYWdldHR5X09CSkVDVFMpICQoYWdldHR5X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGFnZXR0eSQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChhZ2V0dHlfT0JKRUNUUykgJChhZ2V0dHlfTERBREQpICQoTElCUykKK2NoZWNrdHR5X3Rlc3QkKEVYRUVYVCk6ICQoY2hlY2t0dHlfdGVzdF9PQkpFQ1RTKSAkKGNoZWNrdHR5X3Rlc3RfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgY2hlY2t0dHlfdGVzdCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChjaGVja3R0eV90ZXN0X09CSkVDVFMpICQoY2hlY2t0dHlfdGVzdF9MREFERCkgJChMSUJTKQorY2hmbiQoRVhFRVhUKTogJChjaGZuX09CSkVDVFMpICQoY2hmbl9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBjaGZuJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChjaGZuX0xJTkspICQoY2hmbl9PQkpFQ1RTKSAkKGNoZm5fTERBREQpICQoTElCUykKK2Noc2gkKEVYRUVYVCk6ICQoY2hzaF9PQkpFQ1RTKSAkKGNoc2hfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgY2hzaCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoY2hzaF9MSU5LKSAkKGNoc2hfT0JKRUNUUykgJChjaHNoX0xEQUREKSAkKExJQlMpCitpbml0Y3RsJChFWEVFWFQpOiAkKGluaXRjdGxfT0JKRUNUUykgJChpbml0Y3RsX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGluaXRjdGwkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoaW5pdGN0bF9PQkpFQ1RTKSAkKGluaXRjdGxfTERBREQpICQoTElCUykKK2lzbG9jYWxfdGVzdCQoRVhFRVhUKTogJChpc2xvY2FsX3Rlc3RfT0JKRUNUUykgJChpc2xvY2FsX3Rlc3RfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgaXNsb2NhbF90ZXN0JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGlzbG9jYWxfdGVzdF9PQkpFQ1RTKSAkKGlzbG9jYWxfdGVzdF9MREFERCkgJChMSUJTKQorbGFzdCQoRVhFRVhUKTogJChsYXN0X09CSkVDVFMpICQobGFzdF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBsYXN0JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGxhc3RfT0JKRUNUUykgJChsYXN0X0xEQUREKSAkKExJQlMpCitsb2dpbiQoRVhFRVhUKTogJChsb2dpbl9PQkpFQ1RTKSAkKGxvZ2luX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGxvZ2luJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGxvZ2luX09CSkVDVFMpICQobG9naW5fTERBREQpICQoTElCUykKK21lc2ckKEVYRUVYVCk6ICQobWVzZ19PQkpFQ1RTKSAkKG1lc2dfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgbWVzZyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChtZXNnX09CSkVDVFMpICQobWVzZ19MREFERCkgJChMSUJTKQorbmV3Z3JwJChFWEVFWFQpOiAkKG5ld2dycF9PQkpFQ1RTKSAkKG5ld2dycF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBuZXdncnAkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKG5ld2dycF9MSU5LKSAkKG5ld2dycF9PQkpFQ1RTKSAkKG5ld2dycF9MREFERCkgJChMSUJTKQorc2h1dGRvd24kKEVYRUVYVCk6ICQoc2h1dGRvd25fT0JKRUNUUykgJChzaHV0ZG93bl9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBzaHV0ZG93biQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChzaHV0ZG93bl9PQkpFQ1RTKSAkKHNodXRkb3duX0xEQUREKSAkKExJQlMpCitzaW1wbGVpbml0JChFWEVFWFQpOiAkKHNpbXBsZWluaXRfT0JKRUNUUykgJChzaW1wbGVpbml0X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHNpbXBsZWluaXQkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoc2ltcGxlaW5pdF9PQkpFQ1RTKSAkKHNpbXBsZWluaXRfTERBREQpICQoTElCUykKK3ZpcHckKEVYRUVYVCk6ICQodmlwd19PQkpFQ1RTKSAkKHZpcHdfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdmlwdyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJCh2aXB3X09CSkVDVFMpICQodmlwd19MREFERCkgJChMSUJTKQord2FsbCQoRVhFRVhUKTogJCh3YWxsX09CSkVDVFMpICQod2FsbF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB3YWxsJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHdhbGxfT0JKRUNUUykgJCh3YWxsX0xEQUREKSAkKExJQlMpCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9hZ2V0dHkuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2NoZWNrdHR5LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jaGVja3R0eV90ZXN0LWNoZWNrdHR5LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jaGZuLWNoZm4uUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2NoZm4tZW52LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jaGZuLWlzbG9jYWwuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2NoZm4tc2VsaW51eF91dGlscy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY2hmbi1zZXRwd25hbS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY2hzaC1jaHNoLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jaHNoLWVudi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY2hzaC1pc2xvY2FsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jaHNoLXNlbGludXhfdXRpbHMuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2Noc2gtc2V0cHduYW0uUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2luaXRjdGwuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2lzbG9jYWxfdGVzdC1pc2xvY2FsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9sYXN0LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9sb2dpbi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWVzZy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbmV3Z3JwLW5ld2dycC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc2V0cHJvY3RpdGxlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zaHV0ZG93bi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc2ltcGxlaW5pdC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdHR5bXNnLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS92aXB3LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS93YWxsLlBvQGFtX19xdW90ZUAKKworLmMubzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgJDwKKworLmMub2JqOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jIGAkKENZR1BBVEhfVykgJyQ8J2AKKworLmMubG86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChMVENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMVENPTVBJTEUpIC1jIC1vICRAICQ8CisKK2NoZWNrdHR5X3Rlc3QtY2hlY2t0dHkubzogY2hlY2t0dHkuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGNoZWNrdHR5X3Rlc3RfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoZWNrdHR5X3Rlc3QtY2hlY2t0dHkubyAtTUQgLU1QIC1NRiAkKERFUERJUikvY2hlY2t0dHlfdGVzdC1jaGVja3R0eS5UcG8gLWMgLW8gY2hlY2t0dHlfdGVzdC1jaGVja3R0eS5vIGB0ZXN0IC1mICdjaGVja3R0eS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BjaGVja3R0eS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaGVja3R0eV90ZXN0LWNoZWNrdHR5LlRwbyAkKERFUERJUikvY2hlY2t0dHlfdGVzdC1jaGVja3R0eS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2NoZWNrdHR5LmMnIG9iamVjdD0nY2hlY2t0dHlfdGVzdC1jaGVja3R0eS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChjaGVja3R0eV90ZXN0X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGNoZWNrdHR5X3Rlc3QtY2hlY2t0dHkubyBgdGVzdCAtZiAnY2hlY2t0dHkuYycgfHwgZWNobyAnJChzcmNkaXIpLydgY2hlY2t0dHkuYworCitjaGVja3R0eV90ZXN0LWNoZWNrdHR5Lm9iajogY2hlY2t0dHkuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGNoZWNrdHR5X3Rlc3RfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoZWNrdHR5X3Rlc3QtY2hlY2t0dHkub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9jaGVja3R0eV90ZXN0LWNoZWNrdHR5LlRwbyAtYyAtbyBjaGVja3R0eV90ZXN0LWNoZWNrdHR5Lm9iaiBgaWYgdGVzdCAtZiAnY2hlY2t0dHkuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdjaGVja3R0eS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9jaGVja3R0eS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaGVja3R0eV90ZXN0LWNoZWNrdHR5LlRwbyAkKERFUERJUikvY2hlY2t0dHlfdGVzdC1jaGVja3R0eS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2NoZWNrdHR5LmMnIG9iamVjdD0nY2hlY2t0dHlfdGVzdC1jaGVja3R0eS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGNoZWNrdHR5X3Rlc3RfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY2hlY2t0dHlfdGVzdC1jaGVja3R0eS5vYmogYGlmIHRlc3QgLWYgJ2NoZWNrdHR5LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnY2hlY2t0dHkuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvY2hlY2t0dHkuYyc7IGZpYAorCitjaGZuLWNoZm4ubzogY2hmbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hmbl9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgY2hmbi1jaGZuLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2NoZm4tY2hmbi5UcG8gLWMgLW8gY2hmbi1jaGZuLm8gYHRlc3QgLWYgJ2NoZm4uYycgfHwgZWNobyAnJChzcmNkaXIpLydgY2hmbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaGZuLWNoZm4uVHBvICQoREVQRElSKS9jaGZuLWNoZm4uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdjaGZuLmMnIG9iamVjdD0nY2hmbi1jaGZuLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY2hmbi1jaGZuLm8gYHRlc3QgLWYgJ2NoZm4uYycgfHwgZWNobyAnJChzcmNkaXIpLydgY2hmbi5jCisKK2NoZm4tY2hmbi5vYmo6IGNoZm4uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoZm4tY2hmbi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2NoZm4tY2hmbi5UcG8gLWMgLW8gY2hmbi1jaGZuLm9iaiBgaWYgdGVzdCAtZiAnY2hmbi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2NoZm4uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvY2hmbi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaGZuLWNoZm4uVHBvICQoREVQRElSKS9jaGZuLWNoZm4uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdjaGZuLmMnIG9iamVjdD0nY2hmbi1jaGZuLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hmbl9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBjaGZuLWNoZm4ub2JqIGBpZiB0ZXN0IC1mICdjaGZuLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnY2hmbi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9jaGZuLmMnOyBmaWAKKworY2hmbi1pc2xvY2FsLm86IGlzbG9jYWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoZm4taXNsb2NhbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9jaGZuLWlzbG9jYWwuVHBvIC1jIC1vIGNoZm4taXNsb2NhbC5vIGB0ZXN0IC1mICdpc2xvY2FsLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGlzbG9jYWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2hmbi1pc2xvY2FsLlRwbyAkKERFUERJUikvY2hmbi1pc2xvY2FsLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0naXNsb2NhbC5jJyBvYmplY3Q9J2NoZm4taXNsb2NhbC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaGZuX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGNoZm4taXNsb2NhbC5vIGB0ZXN0IC1mICdpc2xvY2FsLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGlzbG9jYWwuYworCitjaGZuLWlzbG9jYWwub2JqOiBpc2xvY2FsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaGZuX0NGTEFHUykgJChDRkxBR1MpIC1NVCBjaGZuLWlzbG9jYWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9jaGZuLWlzbG9jYWwuVHBvIC1jIC1vIGNoZm4taXNsb2NhbC5vYmogYGlmIHRlc3QgLWYgJ2lzbG9jYWwuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdpc2xvY2FsLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2lzbG9jYWwuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2hmbi1pc2xvY2FsLlRwbyAkKERFUERJUikvY2hmbi1pc2xvY2FsLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0naXNsb2NhbC5jJyBvYmplY3Q9J2NoZm4taXNsb2NhbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY2hmbi1pc2xvY2FsLm9iaiBgaWYgdGVzdCAtZiAnaXNsb2NhbC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2lzbG9jYWwuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvaXNsb2NhbC5jJzsgZmlgCisKK2NoZm4tc2V0cHduYW0ubzogc2V0cHduYW0uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoZm4tc2V0cHduYW0ubyAtTUQgLU1QIC1NRiAkKERFUERJUikvY2hmbi1zZXRwd25hbS5UcG8gLWMgLW8gY2hmbi1zZXRwd25hbS5vIGB0ZXN0IC1mICdzZXRwd25hbS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BzZXRwd25hbS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaGZuLXNldHB3bmFtLlRwbyAkKERFUERJUikvY2hmbi1zZXRwd25hbS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3NldHB3bmFtLmMnIG9iamVjdD0nY2hmbi1zZXRwd25hbS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaGZuX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGNoZm4tc2V0cHduYW0ubyBgdGVzdCAtZiAnc2V0cHduYW0uYycgfHwgZWNobyAnJChzcmNkaXIpLydgc2V0cHduYW0uYworCitjaGZuLXNldHB3bmFtLm9iajogc2V0cHduYW0uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoZm4tc2V0cHduYW0ub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9jaGZuLXNldHB3bmFtLlRwbyAtYyAtbyBjaGZuLXNldHB3bmFtLm9iaiBgaWYgdGVzdCAtZiAnc2V0cHduYW0uYyc7IHRoZW4gJChDWUdQQVRIX1cpICdzZXRwd25hbS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9zZXRwd25hbS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaGZuLXNldHB3bmFtLlRwbyAkKERFUERJUikvY2hmbi1zZXRwd25hbS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3NldHB3bmFtLmMnIG9iamVjdD0nY2hmbi1zZXRwd25hbS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY2hmbi1zZXRwd25hbS5vYmogYGlmIHRlc3QgLWYgJ3NldHB3bmFtLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc2V0cHduYW0uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc2V0cHduYW0uYyc7IGZpYAorCitjaGZuLWVudi5vOiAuLi9saWIvZW52LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaGZuX0NGTEFHUykgJChDRkxBR1MpIC1NVCBjaGZuLWVudi5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9jaGZuLWVudi5UcG8gLWMgLW8gY2hmbi1lbnYubyBgdGVzdCAtZiAnLi4vbGliL2Vudi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZW52LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2NoZm4tZW52LlRwbyAkKERFUERJUikvY2hmbi1lbnYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvZW52LmMnIG9iamVjdD0nY2hmbi1lbnYubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hmbl9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBjaGZuLWVudi5vIGB0ZXN0IC1mICcuLi9saWIvZW52LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9lbnYuYworCitjaGZuLWVudi5vYmo6IC4uL2xpYi9lbnYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoZm4tZW52Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvY2hmbi1lbnYuVHBvIC1jIC1vIGNoZm4tZW52Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Vudi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9lbnYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Vudi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaGZuLWVudi5UcG8gJChERVBESVIpL2NoZm4tZW52LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Vudi5jJyBvYmplY3Q9J2NoZm4tZW52Lm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hmbl9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBjaGZuLWVudi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9lbnYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZW52LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9lbnYuYyc7IGZpYAorCitjaGZuLXNlbGludXhfdXRpbHMubzogc2VsaW51eF91dGlscy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hmbl9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgY2hmbi1zZWxpbnV4X3V0aWxzLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2NoZm4tc2VsaW51eF91dGlscy5UcG8gLWMgLW8gY2hmbi1zZWxpbnV4X3V0aWxzLm8gYHRlc3QgLWYgJ3NlbGludXhfdXRpbHMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc2VsaW51eF91dGlscy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaGZuLXNlbGludXhfdXRpbHMuVHBvICQoREVQRElSKS9jaGZuLXNlbGludXhfdXRpbHMuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdzZWxpbnV4X3V0aWxzLmMnIG9iamVjdD0nY2hmbi1zZWxpbnV4X3V0aWxzLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY2hmbi1zZWxpbnV4X3V0aWxzLm8gYHRlc3QgLWYgJ3NlbGludXhfdXRpbHMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc2VsaW51eF91dGlscy5jCisKK2NoZm4tc2VsaW51eF91dGlscy5vYmo6IHNlbGludXhfdXRpbHMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoZm5fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoZm4tc2VsaW51eF91dGlscy5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2NoZm4tc2VsaW51eF91dGlscy5UcG8gLWMgLW8gY2hmbi1zZWxpbnV4X3V0aWxzLm9iaiBgaWYgdGVzdCAtZiAnc2VsaW51eF91dGlscy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3NlbGludXhfdXRpbHMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc2VsaW51eF91dGlscy5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaGZuLXNlbGludXhfdXRpbHMuVHBvICQoREVQRElSKS9jaGZuLXNlbGludXhfdXRpbHMuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdzZWxpbnV4X3V0aWxzLmMnIG9iamVjdD0nY2hmbi1zZWxpbnV4X3V0aWxzLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hmbl9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBjaGZuLXNlbGludXhfdXRpbHMub2JqIGBpZiB0ZXN0IC1mICdzZWxpbnV4X3V0aWxzLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc2VsaW51eF91dGlscy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9zZWxpbnV4X3V0aWxzLmMnOyBmaWAKKworY2hzaC1jaHNoLm86IGNoc2guYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoc2hfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoc2gtY2hzaC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9jaHNoLWNoc2guVHBvIC1jIC1vIGNoc2gtY2hzaC5vIGB0ZXN0IC1mICdjaHNoLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGNoc2guYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2hzaC1jaHNoLlRwbyAkKERFUERJUikvY2hzaC1jaHNoLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nY2hzaC5jJyBvYmplY3Q9J2Noc2gtY2hzaC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGNoc2gtY2hzaC5vIGB0ZXN0IC1mICdjaHNoLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGNoc2guYworCitjaHNoLWNoc2gub2JqOiBjaHNoLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1NVCBjaHNoLWNoc2gub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9jaHNoLWNoc2guVHBvIC1jIC1vIGNoc2gtY2hzaC5vYmogYGlmIHRlc3QgLWYgJ2Noc2guYyc7IHRoZW4gJChDWUdQQVRIX1cpICdjaHNoLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Noc2guYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2hzaC1jaHNoLlRwbyAkKERFUERJUikvY2hzaC1jaHNoLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nY2hzaC5jJyBvYmplY3Q9J2Noc2gtY2hzaC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoc2hfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY2hzaC1jaHNoLm9iaiBgaWYgdGVzdCAtZiAnY2hzaC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2Noc2guYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvY2hzaC5jJzsgZmlgCisKK2Noc2gtaXNsb2NhbC5vOiBpc2xvY2FsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1NVCBjaHNoLWlzbG9jYWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvY2hzaC1pc2xvY2FsLlRwbyAtYyAtbyBjaHNoLWlzbG9jYWwubyBgdGVzdCAtZiAnaXNsb2NhbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Bpc2xvY2FsLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2Noc2gtaXNsb2NhbC5UcG8gJChERVBESVIpL2Noc2gtaXNsb2NhbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2lzbG9jYWwuYycgb2JqZWN0PSdjaHNoLWlzbG9jYWwubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hzaF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBjaHNoLWlzbG9jYWwubyBgdGVzdCAtZiAnaXNsb2NhbC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Bpc2xvY2FsLmMKKworY2hzaC1pc2xvY2FsLm9iajogaXNsb2NhbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hzaF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgY2hzaC1pc2xvY2FsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvY2hzaC1pc2xvY2FsLlRwbyAtYyAtbyBjaHNoLWlzbG9jYWwub2JqIGBpZiB0ZXN0IC1mICdpc2xvY2FsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnaXNsb2NhbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9pc2xvY2FsLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2Noc2gtaXNsb2NhbC5UcG8gJChERVBESVIpL2Noc2gtaXNsb2NhbC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2lzbG9jYWwuYycgb2JqZWN0PSdjaHNoLWlzbG9jYWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGNoc2gtaXNsb2NhbC5vYmogYGlmIHRlc3QgLWYgJ2lzbG9jYWwuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdpc2xvY2FsLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2lzbG9jYWwuYyc7IGZpYAorCitjaHNoLXNldHB3bmFtLm86IHNldHB3bmFtLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1NVCBjaHNoLXNldHB3bmFtLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2Noc2gtc2V0cHduYW0uVHBvIC1jIC1vIGNoc2gtc2V0cHduYW0ubyBgdGVzdCAtZiAnc2V0cHduYW0uYycgfHwgZWNobyAnJChzcmNkaXIpLydgc2V0cHduYW0uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2hzaC1zZXRwd25hbS5UcG8gJChERVBESVIpL2Noc2gtc2V0cHduYW0uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdzZXRwd25hbS5jJyBvYmplY3Q9J2Noc2gtc2V0cHduYW0ubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hzaF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBjaHNoLXNldHB3bmFtLm8gYHRlc3QgLWYgJ3NldHB3bmFtLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHNldHB3bmFtLmMKKworY2hzaC1zZXRwd25hbS5vYmo6IHNldHB3bmFtLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1NVCBjaHNoLXNldHB3bmFtLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvY2hzaC1zZXRwd25hbS5UcG8gLWMgLW8gY2hzaC1zZXRwd25hbS5vYmogYGlmIHRlc3QgLWYgJ3NldHB3bmFtLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc2V0cHduYW0uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc2V0cHduYW0uYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2hzaC1zZXRwd25hbS5UcG8gJChERVBESVIpL2Noc2gtc2V0cHduYW0uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdzZXRwd25hbS5jJyBvYmplY3Q9J2Noc2gtc2V0cHduYW0ub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGNoc2gtc2V0cHduYW0ub2JqIGBpZiB0ZXN0IC1mICdzZXRwd25hbS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3NldHB3bmFtLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3NldHB3bmFtLmMnOyBmaWAKKworY2hzaC1lbnYubzogLi4vbGliL2Vudi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoY2hzaF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgY2hzaC1lbnYubyAtTUQgLU1QIC1NRiAkKERFUERJUikvY2hzaC1lbnYuVHBvIC1jIC1vIGNoc2gtZW52Lm8gYHRlc3QgLWYgJy4uL2xpYi9lbnYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Vudi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9jaHNoLWVudi5UcG8gJChERVBESVIpL2Noc2gtZW52LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Vudi5jJyBvYmplY3Q9J2Noc2gtZW52Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoc2hfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY2hzaC1lbnYubyBgdGVzdCAtZiAnLi4vbGliL2Vudi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZW52LmMKKworY2hzaC1lbnYub2JqOiAuLi9saWIvZW52LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1NVCBjaHNoLWVudi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2Noc2gtZW52LlRwbyAtYyAtbyBjaHNoLWVudi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9lbnYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZW52LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9lbnYuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2hzaC1lbnYuVHBvICQoREVQRElSKS9jaHNoLWVudi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9lbnYuYycgb2JqZWN0PSdjaHNoLWVudi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoc2hfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY2hzaC1lbnYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvZW52LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Vudi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZW52LmMnOyBmaWAKKworY2hzaC1zZWxpbnV4X3V0aWxzLm86IHNlbGludXhfdXRpbHMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoc2hfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNoc2gtc2VsaW51eF91dGlscy5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9jaHNoLXNlbGludXhfdXRpbHMuVHBvIC1jIC1vIGNoc2gtc2VsaW51eF91dGlscy5vIGB0ZXN0IC1mICdzZWxpbnV4X3V0aWxzLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHNlbGludXhfdXRpbHMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2hzaC1zZWxpbnV4X3V0aWxzLlRwbyAkKERFUERJUikvY2hzaC1zZWxpbnV4X3V0aWxzLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nc2VsaW51eF91dGlscy5jJyBvYmplY3Q9J2Noc2gtc2VsaW51eF91dGlscy5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGNoc2gtc2VsaW51eF91dGlscy5vIGB0ZXN0IC1mICdzZWxpbnV4X3V0aWxzLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHNlbGludXhfdXRpbHMuYworCitjaHNoLXNlbGludXhfdXRpbHMub2JqOiBzZWxpbnV4X3V0aWxzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChjaHNoX0NGTEFHUykgJChDRkxBR1MpIC1NVCBjaHNoLXNlbGludXhfdXRpbHMub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9jaHNoLXNlbGludXhfdXRpbHMuVHBvIC1jIC1vIGNoc2gtc2VsaW51eF91dGlscy5vYmogYGlmIHRlc3QgLWYgJ3NlbGludXhfdXRpbHMuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdzZWxpbnV4X3V0aWxzLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3NlbGludXhfdXRpbHMuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2hzaC1zZWxpbnV4X3V0aWxzLlRwbyAkKERFUERJUikvY2hzaC1zZWxpbnV4X3V0aWxzLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nc2VsaW51eF91dGlscy5jJyBvYmplY3Q9J2Noc2gtc2VsaW51eF91dGlscy5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGNoc2hfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY2hzaC1zZWxpbnV4X3V0aWxzLm9iaiBgaWYgdGVzdCAtZiAnc2VsaW51eF91dGlscy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3NlbGludXhfdXRpbHMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc2VsaW51eF91dGlscy5jJzsgZmlgCisKK2lzbG9jYWxfdGVzdC1pc2xvY2FsLm86IGlzbG9jYWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGlzbG9jYWxfdGVzdF9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgaXNsb2NhbF90ZXN0LWlzbG9jYWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvaXNsb2NhbF90ZXN0LWlzbG9jYWwuVHBvIC1jIC1vIGlzbG9jYWxfdGVzdC1pc2xvY2FsLm8gYHRlc3QgLWYgJ2lzbG9jYWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgaXNsb2NhbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9pc2xvY2FsX3Rlc3QtaXNsb2NhbC5UcG8gJChERVBESVIpL2lzbG9jYWxfdGVzdC1pc2xvY2FsLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0naXNsb2NhbC5jJyBvYmplY3Q9J2lzbG9jYWxfdGVzdC1pc2xvY2FsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGlzbG9jYWxfdGVzdF9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBpc2xvY2FsX3Rlc3QtaXNsb2NhbC5vIGB0ZXN0IC1mICdpc2xvY2FsLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGlzbG9jYWwuYworCitpc2xvY2FsX3Rlc3QtaXNsb2NhbC5vYmo6IGlzbG9jYWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGlzbG9jYWxfdGVzdF9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgaXNsb2NhbF90ZXN0LWlzbG9jYWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9pc2xvY2FsX3Rlc3QtaXNsb2NhbC5UcG8gLWMgLW8gaXNsb2NhbF90ZXN0LWlzbG9jYWwub2JqIGBpZiB0ZXN0IC1mICdpc2xvY2FsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnaXNsb2NhbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9pc2xvY2FsLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2lzbG9jYWxfdGVzdC1pc2xvY2FsLlRwbyAkKERFUERJUikvaXNsb2NhbF90ZXN0LWlzbG9jYWwuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdpc2xvY2FsLmMnIG9iamVjdD0naXNsb2NhbF90ZXN0LWlzbG9jYWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChpc2xvY2FsX3Rlc3RfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gaXNsb2NhbF90ZXN0LWlzbG9jYWwub2JqIGBpZiB0ZXN0IC1mICdpc2xvY2FsLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnaXNsb2NhbC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9pc2xvY2FsLmMnOyBmaWAKKworc2V0cHJvY3RpdGxlLm86IC4uL2xpYi9zZXRwcm9jdGl0bGUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBzZXRwcm9jdGl0bGUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvc2V0cHJvY3RpdGxlLlRwbyAtYyAtbyBzZXRwcm9jdGl0bGUubyBgdGVzdCAtZiAnLi4vbGliL3NldHByb2N0aXRsZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvc2V0cHJvY3RpdGxlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3NldHByb2N0aXRsZS5UcG8gJChERVBESVIpL3NldHByb2N0aXRsZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9zZXRwcm9jdGl0bGUuYycgb2JqZWN0PSdzZXRwcm9jdGl0bGUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gc2V0cHJvY3RpdGxlLm8gYHRlc3QgLWYgJy4uL2xpYi9zZXRwcm9jdGl0bGUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL3NldHByb2N0aXRsZS5jCisKK3NldHByb2N0aXRsZS5vYmo6IC4uL2xpYi9zZXRwcm9jdGl0bGUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBzZXRwcm9jdGl0bGUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9zZXRwcm9jdGl0bGUuVHBvIC1jIC1vIHNldHByb2N0aXRsZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9zZXRwcm9jdGl0bGUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvc2V0cHJvY3RpdGxlLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9zZXRwcm9jdGl0bGUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvc2V0cHJvY3RpdGxlLlRwbyAkKERFUERJUikvc2V0cHJvY3RpdGxlLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL3NldHByb2N0aXRsZS5jJyBvYmplY3Q9J3NldHByb2N0aXRsZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHNldHByb2N0aXRsZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9zZXRwcm9jdGl0bGUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvc2V0cHJvY3RpdGxlLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9zZXRwcm9jdGl0bGUuYyc7IGZpYAorCituZXdncnAtbmV3Z3JwLm86IG5ld2dycC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobmV3Z3JwX0NGTEFHUykgJChDRkxBR1MpIC1NVCBuZXdncnAtbmV3Z3JwLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL25ld2dycC1uZXdncnAuVHBvIC1jIC1vIG5ld2dycC1uZXdncnAubyBgdGVzdCAtZiAnbmV3Z3JwLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYG5ld2dycC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9uZXdncnAtbmV3Z3JwLlRwbyAkKERFUERJUikvbmV3Z3JwLW5ld2dycC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J25ld2dycC5jJyBvYmplY3Q9J25ld2dycC1uZXdncnAubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobmV3Z3JwX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG5ld2dycC1uZXdncnAubyBgdGVzdCAtZiAnbmV3Z3JwLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYG5ld2dycC5jCisKK25ld2dycC1uZXdncnAub2JqOiBuZXdncnAuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG5ld2dycF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbmV3Z3JwLW5ld2dycC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL25ld2dycC1uZXdncnAuVHBvIC1jIC1vIG5ld2dycC1uZXdncnAub2JqIGBpZiB0ZXN0IC1mICduZXdncnAuYyc7IHRoZW4gJChDWUdQQVRIX1cpICduZXdncnAuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvbmV3Z3JwLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL25ld2dycC1uZXdncnAuVHBvICQoREVQRElSKS9uZXdncnAtbmV3Z3JwLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbmV3Z3JwLmMnIG9iamVjdD0nbmV3Z3JwLW5ld2dycC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG5ld2dycF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBuZXdncnAtbmV3Z3JwLm9iaiBgaWYgdGVzdCAtZiAnbmV3Z3JwLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbmV3Z3JwLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL25ld2dycC5jJzsgZmlgCisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCitpbnN0YWxsLW1hbjE6ICQoZGlzdF9tYW5fTUFOUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKG1hbjFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW4xZGlyKSIKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCisJeyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjFbYS16XSokJC9wJzsgXAorCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgXAorCWRvbmUgfCBcCisJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnIHwgXAorCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAorCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJGJhc2UiID0gIiQkaW5zdCI7IHRoZW4gbGlzdD0iJCRsaXN0ICQkZmlsZSI7IGVsc2UgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuMWRpciknIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobWFuMWRpcikiIHx8IGV4aXQgJCQ/OyB9OyBcCisJZG9uZTsgfQorCit1bmluc3RhbGwtbWFuMToKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjFkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1geyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjFbYS16XSokJC9wJzsgXAorCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKwl0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW4xZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJICBjZCAiJChERVNURElSKSQobWFuMWRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KK2luc3RhbGwtbWFuODogJChkaXN0X21hbl9NQU5TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQobWFuOGRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjhkaXIpIgorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjhkaXIpIiB8fCBleGl0IDA7IFwKKwl7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHdoaWxlIHJlYWQgcDsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ247cywuKi8sLDtwO2g7cywuKlwuLCw7cyxeW144XVswLTlhLXpdKiQkLDgsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCcgfCBcCisJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCisJbGlzdD07IHdoaWxlIHJlYWQgZmlsZSBiYXNlIGluc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkYmFzZSIgPSAiJCRpbnN0IjsgdGhlbiBsaXN0PSIkJGxpc3QgJCRmaWxlIjsgZWxzZSBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjhkaXIpLyQkaW5zdCciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAiJCRmaWxlIiAiJChERVNURElSKSQobWFuOGRpcikvJCRpbnN0IiB8fCBleGl0ICQkPzsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChtYW44ZGlyKSciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChtYW44ZGlyKSIgfHwgZXhpdCAkJD87IH07IFwKKwlkb25lOyB9CisKK3VuaW5zdGFsbC1tYW44OgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuOGRpcikiIHx8IGV4aXQgMDsgXAorCWZpbGVzPWB7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteOF1bMC05YS16XSokJCw4LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnYDsgXAorCXRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjhkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwkgIGNkICIkKERFU1RESVIpJChtYW44ZGlyKSIgJiYgcm0gLWYgJCRmaWxlczsgfQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAbGlzdD0nJChNQU5TKSc7IGlmIHRlc3QgLW4gIiQkbGlzdCI7IHRoZW4gXAorCSAgbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgICBpZiB0ZXN0IC1mICIkJGQkJHAiOyB0aGVuIGVjaG8gIiQkZCQkcCI7IGVsc2UgOjsgZmk7IGRvbmVgOyBcCisJICBpZiB0ZXN0IC1uICIkJGxpc3QiICYmIFwKKwkgICAgZ3JlcCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVsbDsgdGhlbiBcCisJICAgIGVjaG8gImVycm9yOiBmb3VuZCBtYW4gcGFnZXMgY29udGFpbmluZyB0aGUgXGBtaXNzaW5nIGhlbHAybWFuJyByZXBsYWNlbWVudCB0ZXh0OiIgPiYyOyBcCisJICAgIGdyZXAgLWwgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0IHwgc2VkICdzL14vICAgICAgICAgLycgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0byBmaXggdGhlbSwgaW5zdGFsbCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBtYW4gcGFnZXM7IiA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHR5cGljYWxseSBcYG1ha2UgbWFpbnRhaW5lci1jbGVhbicgd2lsbCByZW1vdmUgdGhlbSIgPiYyOyBcCisJICAgIGV4aXQgMTsgXAorCSAgZWxzZSA6OyBmaTsgXAorCWVsc2UgOjsgZmkKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1hbQorYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKSAkKE1BTlMpICQoREFUQSkKK2luc3RhbGxkaXJzOgorCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChzYmluZGlyKSIgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgIiQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJChtYW4xZGlyKSIgIiQoREVTVERJUikkKG1hbjhkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitAQlVJTERfSU5JVF9GQUxTRUBAQlVJTERfTE9HSU5fVVRJTFNfRkFMU0VAQEJVSUxEX1dBTExfRkFMU0VAaW5zdGFsbC1leGVjLWhvb2s6CitAQlVJTERfSU5JVF9GQUxTRUBAQlVJTERfTE9HSU5fVVRJTFNfRkFMU0VAQE1BS0VJTlNUQUxMX0RPX0NIT1dOX0ZBTFNFQGluc3RhbGwtZXhlYy1ob29rOgorQEJVSUxEX0lOSVRfRkFMU0VAQEJVSUxEX0xPR0lOX1VUSUxTX0ZBTFNFQEBVU0VfVFRZX0dST1VQX0ZBTFNFQGluc3RhbGwtZXhlYy1ob29rOgorQEJVSUxEX0lOSVRfRkFMU0VAaW5zdGFsbC1kYXRhLWhvb2s6CitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWJpblBST0dSQU1TIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisJY2xlYW4tbm9pbnN0UFJPR1JBTVMgY2xlYW4tc2JpblBST0dSQU1TIFwKKwljbGVhbi11c3JiaW5fZXhlY1BST0dSQU1TIGNsZWFuLXVzcnNiaW5fZXhlY1BST0dSQU1TIFwKKwltb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLWFtCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1hbQorCitodG1sLWFtOgorCitpbmZvOiBpbmZvLWFtCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1tYW4KKwlAJChOT1JNQUxfSU5TVEFMTCkKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWRhdGEtaG9vaworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtYmluUFJPR1JBTVMgaW5zdGFsbC1zYmluUFJPR1JBTVMgXAorCWluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUyBpbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TCisJQCQoTk9STUFMX0lOU1RBTEwpCisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWhvb2sKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisKK2luc3RhbGwtaHRtbC1hbToKKworaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjogaW5zdGFsbC1tYW4xIGluc3RhbGwtbWFuOAorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1hbQorCitwZGYtYW06CisKK3BzOiBwcy1hbQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtYmluUFJPR1JBTVMgdW5pbnN0YWxsLW1hbiBcCisJdW5pbnN0YWxsLXNiaW5QUk9HUkFNUyB1bmluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUyBcCisJdW5pbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TCisKK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW4xIHVuaW5zdGFsbC1tYW44CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1zdHJpcAorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tYmluUFJPR1JBTVMgXAorCWNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCisJY2xlYW4tc2JpblBST0dSQU1TIGNsZWFuLXVzcmJpbl9leGVjUFJPR1JBTVMgXAorCWNsZWFuLXVzcnNiaW5fZXhlY1BST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBcCisJZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgXAorCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCisJaW5zdGFsbC1iaW5QUk9HUkFNUyBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIFwKKwlpbnN0YWxsLWRhdGEtaG9vayBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWV4ZWMtaG9vayBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtbWFuMSBcCisJaW5zdGFsbC1tYW44IGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgXAorCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zYmluUFJPR1JBTVMgaW5zdGFsbC1zdHJpcCBcCisJaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TIGluc3RhbGwtdXNyc2Jpbl9leGVjUFJPR1JBTVMgXAorCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCisJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAorCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKwl0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLWJpblBST0dSQU1TIFwKKwl1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xIHVuaW5zdGFsbC1tYW44IFwKKwl1bmluc3RhbGwtc2JpblBST0dSQU1TIHVuaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TIFwKKwl1bmluc3RhbGwtdXNyc2Jpbl9leGVjUFJPR1JBTVMKKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQGluc3RhbGwtZXhlYy1ob29rOjoKK0BCVUlMRF9MT0dJTl9VVElMU19UUlVFQAljZCAkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpICYmIGxuIC1zZiB2aXB3IHZpZ3IKKworQEJVSUxEX1dBTExfVFJVRUBATUFLRUlOU1RBTExfRE9fQ0hPV05fVFJVRUBAVVNFX1RUWV9HUk9VUF9UUlVFQGluc3RhbGwtZXhlYy1ob29rOjoKK0BCVUlMRF9XQUxMX1RSVUVAQE1BS0VJTlNUQUxMX0RPX0NIT1dOX1RSVUVAQFVTRV9UVFlfR1JPVVBfVFJVRUAJY2hncnAgdHR5ICQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKS93YWxsCitAQlVJTERfV0FMTF9UUlVFQEBNQUtFSU5TVEFMTF9ET19DSE9XTl9UUlVFQEBVU0VfVFRZX0dST1VQX1RSVUVACWNobW9kIGcrcyAkKERFU1RESVIpJCh1c3JiaW5fZXhlY2Rpcikvd2FsbAorCitAQlVJTERfSU5JVF9UUlVFQGluc3RhbGwtZXhlYy1ob29rOjoKK0BCVUlMRF9JTklUX1RSVUVACWNkICQoREVTVERJUikkKHNiaW5kaXIpICYmIGxuIC1zZiBzaHV0ZG93biByZWJvb3QKK0BCVUlMRF9JTklUX1RSVUVACWNkICQoREVTVERJUikkKHNiaW5kaXIpICYmIGxuIC1zZiBzaHV0ZG93biBmYXN0Ym9vdAorQEJVSUxEX0lOSVRfVFJVRUAJY2QgJChERVNURElSKSQoc2JpbmRpcikgJiYgbG4gLXNmIHNodXRkb3duIGhhbHQKK0BCVUlMRF9JTklUX1RSVUVACWNkICQoREVTVERJUikkKHNiaW5kaXIpICYmIGxuIC1zZiBzaHV0ZG93biBmYXN0aGFsdAorQEJVSUxEX0lOSVRfVFJVRUAJY2QgJChERVNURElSKSQoc2JpbmRpcikgJiYgbG4gLXNmIGluaXRjdGwgbmVlZAorQEJVSUxEX0lOSVRfVFJVRUAJY2QgJChERVNURElSKSQoc2JpbmRpcikgJiYgbG4gLXNmIGluaXRjdGwgZGlzcGxheS1zZXJ2aWNlcworQEJVSUxEX0lOSVRfVFJVRUAJY2QgJChERVNURElSKSQoc2JpbmRpcikgJiYgbG4gLXNmIGluaXRjdGwgcHJvdmlkZQorCitAQlVJTERfSU5JVF9UUlVFQGluc3RhbGwtZGF0YS1ob29rOgorQEJVSUxEX0lOSVRfVFJVRUAJY2QgJChERVNURElSKSQobWFuZGlyKS9tYW44ICYmIGxuIC1zZiBpbml0Y3RsLjggbmVlZC44CitAQlVJTERfSU5JVF9UUlVFQAljZCAkKERFU1RESVIpJChtYW5kaXIpL21hbjggJiYgbG4gLXNmIGluaXRjdGwuOCBkaXNwbGF5LXNlcnZpY2VzLjgKK0BCVUlMRF9JTklUX1RSVUVACWNkICQoREVTVERJUikkKG1hbmRpcikvbWFuOCAmJiBsbiAtc2YgaW5pdGN0bC44IHByb3ZpZGUuOAorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9SRUFETUUuZ2V0dHkgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9SRUFETUUuZ2V0dHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUzMmZhYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL1JFQURNRS5nZXR0eQpAQCAtMCwwICsxLDI2IEBACitAKCMpIFJFQURNRSAxLjggOS8xLzkxIDIzOjMyOjM3CisKK1RoaXMgaXMgYSBTWVNWL1N1bk9TNCBnZXR0eSBwcm9ncmFtIHdpdGggdXNlZnVsIGZlYXR1cmVzIGZvciBoYXJkd2lyZWQKK2FuZCBkaWFsLWluIHR0eSBsaW5lcy4KKworLSBUaGUgcHJvZ3JhbSBhZGFwdHMgdGhlIHR0eSBtb2RlcyB0byBwYXJpdHkgYml0cyBhbmQgdG8gZXJhc2UsIGtpbGwKK2VuZC1vZi1saW5lIGFuZCB1cHBlci1jYXNlIGNoYXJhY3RlcnMgd2hlbiBpdCByZWFkcyBhIGxvZ2luIG5hbWUuCisKKy0gVGhlIGJhdWQgcmF0ZSBjYW4gYmUgZXN0YWJsaXNoZWQgYnkgQlJFQUsgY2hhcmFjdGVyIHByb2Nlc3NpbmcgYW5kIGJ5CitwYXJzaW5nIHRoZSBDT05ORUNUIHN0YXR1cyBtZXNzYWdlcyBmcm9tIEhheWVzLWNvbXBhdGlibGUgbW9kZW1zLgorCitPdGhlciBmZWF0dXJlczogUlRTL0NUUyBmbG93IGNvbnRyb2wgKFN1bk9TNCwgc3VnZ2VzdGVkIGJ5IEpvaG4gSGFya2luLAorPGpoQG1vb24ubmJuLmNvbT4pLCBhbHRlcm5hdGUgbG9naW4gcHJvZ3JhbSwgZG9lcyBub3QgdXNlIC9ldGMvZ2V0dHl0YWIKK29yIC9ldGMvZ2V0dHlkZWZzLgorCitUaGUgcHJvZ3JhbSB3b3JrcyB3aXRob3V0IG1vZGlmaWNhdGlvbiB1bmRlciBTeXN0ZW0gViByZWxlYXNlIDIgYW5kCitTdW5PUyA0LjEvNC4xLjEuIEl0IHByb2JhYmx5IGFsc28gd29ya3Mgd2l0aCBsYXRlciBTeXN0ZW0gViByZWxlYXNlcy4KKworSW4gdGhlIE1ha2VmaWxlIHlvdSB3aWxsIGhhdmUgdG8gc3BlY2lmeSB3aGV0aGVyIGRpYWdub3N0aWNzIHNob3VsZCBiZQorcmVwb3J0ZWQgdGhyb3VnaCB0aGUgc3lzbG9nIGRhZW1vbjsgdGhlIGFsdGVybmF0aXZlIGlzIHRoYXQgYWxsIGVycm9yCityZXBvcnRzIGdvIGRpcmVjdGx5IHRvIC9kZXYvY29uc29sZS4KKworVGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2Ugd2FzIGNsZWFuZWQgdXAgYSBiaXQ7IGl0IGlzIHNsaWdodGx5CitpbmNvbXBhdGlibGUgd2l0aCBlYXJsaWVyIGFnZXR0eSB2ZXJzaW9ucy4KKworCQlXaWV0c2UgVmVuZW1hICh3aWV0c2VAd3p2Lndpbi50dWUubmwpCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9SRUFETUUubW9kZW1zLXdpdGgtYWdldHR5IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvUkVBRE1FLm1vZGVtcy13aXRoLWFnZXR0eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGE2MTFlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvUkVBRE1FLm1vZGVtcy13aXRoLWFnZXR0eQpAQCAtMCwwICsxLDc2IEBACisyNS8xMC85NSBQZXRlciBPcmJhZWsgPHBvZUBkYWltaS5hYXUuZGs+CisKK1NvbWUgbm90ZXMgZm9yIHVzaW5nIGFnZXR0eSB3aXRoIG1vZGVtcworCitVc2luZyBhIGNvbW1zIHByb2dyYW0gdG8gaW5pdGlhbGl6ZSB0aGUgbW9kZW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqIFVzZSBrZXJtaXQgb3IgbWluaWNvbSB0byBpbml0aWFsaXplIHRoZSBtb2RlbSB0bworCisJLSBiZSBlbnRpcmVseSBxdWlldC4KKwktIGRvbid0IGRvIGxvY2FsIGVjaG8gaW4gY29tbWFuZCBtb2RlLgorCS0gdHVybiBvbiBEQ0QgKGNhcnJpZXIgZGV0ZWN0KSBvbmx5IHdoZW4gdGhlcmUgaXMgYSBjb25uZWN0aW9uIGdvaW5nLgorCS0gZW5hYmxlIGF1dG8tYW5zd2VyLgorCS0ga2VlcCBhIGNvbnN0YW50IGNvbXB1dGVyL21vZGVtIGJpdHJhdGUgYXQgYWxsIHRpbWVzLgorCS0gb3B0aW9uYWxseSBzYXZlIHRoaXMgc2V0dXAgYXMgdGhlIG1vZGVtIHN0YXJ0dXAgY29uZmlndXJhdGlvbi4KKworKiBSdW4gYWdldHR5IG9uIHRoZSBhcHByb3ByaWF0ZSB0dHlTbiBwb3J0IHdpdGggdGhlIGFyZ3VtZW50czoKKwkqIC13IHRvIHdhaXQgZm9yIGEgQ1Igb3IgTEYgYmVmb3JlIHdyaXRpbmcgdGhlIC9ldGMvaXNzdWUgbWVzc2FnZQorCSogY29tcHV0ZXIvbW9kZW0gYml0cmF0ZQorCSogdGhlIHR0eSBuYW1lLgorCitFeGFtcGxlIGZyb20gbXkgbW9kZW0gc2V0dXAsIGFuIG9sZCAyNDAwIGJwcyBTdXByYU1vZGVtIHVzaW5nIEhheWVzIHN0YW5kYXJkCitBVCBjb21tYW5kcy4KKworSW5pdGlhbGl6ZSBtb2RlbSB1c2luZyBrZXJtaXQgd2l0aCB0aGUgY29tbWFuZHMKKworCUFUIEUwIFExICZEMiAmQzEgUzA9MSAmVzAKKwordG8KKwktIHR1cm4gb2ZmIGxvY2FsIGVjaG8gZnJvbSBtb2RlbSB3aGVuIGluIGNvbW1hbmQgbW9kZSAoRTApLgorCS0gZGlzYWJsZSBhbGwgcmVzdWx0IGNvZGVzIGZyb20gbW9kZW0gKFExKS4KKwktIG1ha2UgYW4gb24vb2ZmIHRyYW5zaXRpb24gb24gdGhlIERUUiBsaW5lIG1ha2UgdGhlIG1vZGVtCisJICBkaXNjb25uZWN0IGFuZCBnbyBpbnRvIGNvbW1hbmQgbW9kZSAoJkQyKS4KKwktIG1ha2UgdGhlIGNvbXB1dGVyL21vZGVtIERDRCBsaW5lIHRyYWNrIHRoZSBtb2RlbS9tb2RlbQorCSAgY2FycmllciBkZXRlY3Qgc2lnbmFsLCBpLmUuIG5vIGNvbm5lY3Rpb24gbWVhbnMgbm8KKwkgIGNhcnJpZXIgZGV0ZWN0IHNpZ25hbCB0byB0aGUgY29tcHV0ZXIgKCZDMSkuCisJLSBlbmFibGUgYXV0by1hbnN3ZXIgYWZ0ZXIgdGhlIGZpcnN0IHJpbmcgKFMwPTEpLgorCS0gc3RvcmUgdGhlIGNvbmZpZ3VyYXRpb24gYXMgdGhlIHN0YXJ0IGNvbmZpZ3VyYXRpb24gKCZXMCkuCisKK1RoZSBjb21tYW5kcyBvbiB5b3VyIG1vZGVtIHRvIGFjaGlldmUgdGhlIHNhbWUgc2V0dXAgbWF5IHZhcnksIGVzcGVjaWFsbHkKK3RoZSAmRDIgYW5kICZDMSBjb21tYW5kcyBtYXkgbm90IGJlIGVudGlyZWx5IHN0YW5kYXJkLgorCitFeGl0IGtlcm1pdC9taW5pY29tLgorCitQdXQgdGhlIGNvbW1hbmQgCisKKwkvc2Jpbi9hZ2V0dHkgLXcgMjQwMCB0dHlTMQorCitpbiB0aGUgY29tbWFuZCBmaWVsZCBvZiB0aGUgYXBwcm9wcmlhdGUgbGluZSBpbiAvZXRjL2luaXR0YWIgdG8gc3RhcnQKK2FnZXR0eSBvbiAvZGV2L3R0eVMxIHdpdGggYSAyNDAwIGJwcyBzcGVlZCBiZXR3ZWVuIG1vZGVtIGFuZCBjb21wdXRlci4KKworSW5pdGlhbGl6aW5nIHRoZSBtb2RlbSB3aXRoIGFnZXR0eQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitVc2UgdGhlIGFnZXR0eSAtSSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIHNwZWNpZnkgYSBtb2RlbSBpbml0IHN0cmluZywgbGlrZQorZm9yIHRoZSBzYW1lIHNldHVwIGFzIGFib3ZlLCB1c2UgdGhlIGZvbGxvd2luZyBhZ2V0dHkgY29tbWFuZCBpbiB5b3VyCisvZXRjL2luaXR0YWIuCisKKwkvc2Jpbi9hZ2V0dHkgLXcgLUkgJ0FURTBRMSZEMiZDMVMwPTFcMDE1JyAyNDAwIHR0eVMxCisKK1RoZSBmaW5hbCBcMDE1IGlzIGFuIG9jdGFsIGNvZGluZyBvZiB0aGUgY2FycmlhZ2UgcmV0dXJuIGNoYXJhY3RlcgorZW5kaW5nIHRoZSBjb21tYW5kIHN0cmluZy4KKworSWYgeW91J3JlIHVzaW5nIHNpbXBsZWluaXQgKHBhcnQgb2YgdGhpcyBwYWNrYWdlKSBpbnN0ZWFkIG9mIHRoZSBTWVNWIAorY29tcGF0aWJsZSBpbml0ICh5b3UncmUgbW9zdCBsaWtlbHkgdXNpbmcgdGhlIFNZU1Ygb25lISkgdGhlbiB5b3UgbXVzdAorcmVtb3ZlIHRoZSBzaW5nbGUgcXVvdGVzIGZyb20gdGhlIGNvbW1hbmQgbGluZSBhYm92ZS4KKworTm90ZSB0aGF0IHRoZSAmVzAgY29tbWFuZCB3YXMgbm90IHVzZWQgaGVyZSBzaW5jZSB0aGUgbW9kZW0gd2lsbCBiZSAKK2luaXRpYWxpemVkIGVhY2ggdGltZSBhZ2V0dHkgc3RhcnRzLgorCitXaXRoIGEgVi4zNCAoMjguOCBrYnBzKSBtb2RlbSB0cnkgc3RhcnRpbmcgd2l0aCBhIGNvbW1hbmQgbGlrZToKKworCS9zYmluL2FnZXR0eSAtdyAtSSAnQVRFMFExJkQyJkMxUzA9MVwwMTUnIDExNTIwMCB0dHlTMQorCitOb3RlIHRoYXQgYWdldHR5IHN1cHBvcnRzIHRoZSBoaWdoZXIgKD45NjAwIGJwcykgc2VyaWFsIHNwZWVkcworZGlyZWN0bHksIHRoZXJlJ3Mgbm8gbmVlZCB0byB1c2Ugc2V0c2VyaWFsIHRvIHVzZSB0aGUgaGlnaGVyIHNwZWVkcy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL1JFQURNRS5wb2VpZ2wgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9SRUFETUUucG9laWdsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMzBlYzUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9SRUFETUUucG9laWdsCkBAIC0wLDAgKzEsNTgzIEBACitSRUFETUUgZm9yIGluaXQvZ2V0dHkvbG9naW4sIGJ5IHBvZUBkYWltaS5hYXUuZGsKKworVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHNpbXBsZWluaXQsIGFnZXR0eSwgYW5kIGxvZ2luIHByb2dyYW1zIGZvciBMaW51eC4KK0FkZGl0aW9uYWwgdXRpbGl0aWVzIGluY2x1ZGVkIGFyZTogaG9zdG5hbWUsIHdobywgd3JpdGUsIHdhbGwsIHVzZXJzCitkb21haW5uYW1lLCBob3N0aWQsIGNhZ2UgYW5kIG1lc2cuCisKK01vc3Qgb2YgdGhpcyBzb2Z0d2FyZSBoYXMgYmVlbiBjb250cmlidXRlZCBieSBvdGhlcnMsIEkgYmFzaWNhbGx5IGp1c3QKK3BvcnRlZCB0aGUgdGhpbmdzIHRvIExpbnV4LgorCitBYm91dCBpbnN0YWxsYXRpb246IFNlZSB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZS4gQ2hlY2sgdGhlIE1ha2VmaWxlIQorQmUgc3VyZSB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchIFlvdSBtYXkgd2VsbCBiZSBhYmxlIHRvIGxvY2sKK3lvdXJzZWxmIG91dCBmcm9tIHlvdXIgbWFjaGluZS4gRXNwZWNpYWxseTogVGhlIGluaXQgcHJvdmlkZWQgaGVyZQorKHNpbXBsZWluaXQpIGlzIE5PVCBhIFNZU1YgY29tcGF0aWJsZSBpbml0IGFuZCB0aGUgaW5pdHRhYiBmb3JtYXQKK2lzIGRpZmZlcmVudC4KKworSWYgeW91IGFyZSB1bmNlcnRhaW4gd2hldGhlciB5b3UgZ290IHRoZSBsYXRlc3QgdmVyc2lvbiwgY2hlY2sgb3V0CisKKwlmdHA6Ly9mdHAuZGFpbWkuYWF1LmRrL3B1Yi9saW51eC9wb2UvCisKK1ZlcnNpb24gMS40OSAoMjAtSnVuLTk3KQorCVNtYWxsIHBhdGNoZXMgZm9yIG5ldyB1dGlsLWxpbnV4IGRpc3RyaWJ1dGlvbiBhbmQgZ2xpYmMgY29tcGF0LgorCVBBTSBzdXBwb3J0IGluIGxvZ2luLmMgYnkgRXJpayBUcm9hbi4KKworVmVyc2lvbiAxLjQ4ICg2LUp1bi05NykKKwlOb3cgY2hhbmdlcyBtb2RlIGFuZCBvd25lciBvZiAvZGV2L3ZjcyBkZXZpY2VzIGZvciBjb25zb2xlIGxvZ2lucy4KKwlBZnRlciBpZGVhIGJ5IEFuZHJpZXMgQnJvdXdlci4KKworVmVyc2lvbiAxLjQ3ICgyLUFwci05NykKKwlHb3QgbmV3IHZlcnNpb24gb2YgaG9zdGlkLmMgYW5kIGhvc3RpZC4xIGZyb20gCisJU2FuZGVyIHZhbiBNYWxzc2VuIDxzdm1Aa296bWl4Lm93Lm5sPi4KKwlSZW1vdmVkIHByZW1hdHVyZSBlbmR1dGVudCgpIGNhbGwgaW4gbG9naW4uYywgc2ltcGxlaW5pdC5jIGFuZCAKKwlhZ2V0dHkuYyB0byBiZSBjb21wYXRpYmxlIHdpdGggdGhlIGNoYW5nZWQgc2VtYW50aWNzIG9mIGdudSBsaWJjMi4gCisJRml4IGJ5IEplc3NlIFRoaWxvIDxKZXNzZS5UaGlsb0Bwb2JveC5jb20+LgorCitWZXJzaW9uIDEuNDYgKDI4LUphbi05NykKKwlTZXZlcmFsIHNlY3VyaXR5IGZpeGVzIGZvciBsb2dpbiBieSBEYXZpZCBIb2xsYW5kIChidWZmZXIgb3ZlcnJ1bnMpCisJPGRob2xsYW5kQGhjcy5oYXJ2YXJkLmVkdT4KKwlGaXhlZCB3cml0ZS5jLCB0byBoYW5kbGUgYSB0ZXJtaW5hdGluZyBwZXJpb2QgY29ycmVjdGx5LgorCVJlLWluZGVudGVkIGxvZ2luLmMsIGl0IHdhcyBnZXR0aW5nIHRvbyBtZXNzeS4KKworVmVyc2lvbiAxLjQ1YSAoMTYtRGVjLTk2KQorCUJldHRlciBzdXBwb3J0IGluIGxvZ2luIGZvciBzaGFkb3cgcGFzc3dvcmRzLiBDb21waWxlIHdpdGgKKwktRFNIQURPV19QV0QgaWYgeW91IGhhdmUgPHNoYWRvdy5oPi4gVGhpcyBpcyBvbiBieSBkZWZhdWx0LgorCUJ5IE1hcmVrIE1pY2hhbGtpZXdpY3ogPG1hcmVrbUBpMTdsaW51eGIuaXN0cy5wd3Iud3JvYy5wbD4uCisJQ2hhbmdlZCB0aGUgd3RtcCBsb2NraW5nIHNjaGVtZSBpbiBsb2dpbi5jLGFnZXR0eS5jLHNpbXBsZWluaXQuYworCXRvIGZsb2NrKCkgL2V0Yy93dG1wbG9jayBpbnN0ZWFkIG9mIHRoZSB3dG1wIGZpbGUgZGlyZWN0bHkuCisJVGhpcyBhdm9pZHMgYSBkZW5pYWwgb2Ygc2VydmljZSBhdHRhY2suCisJU29tZSBzdXBwb3J0IGZvciB0aGUgUkItMSBDcnlwdG9jYXJkIHRva2VuIGZvciBjaGFsbGVuZ2UvcmVzcG9uc2UKKwlhdXRoZW50aWNhdGlvbi4gVGhpcyBuZWVkcyBhIERFUyBsaWJyYXJ5LCBlaXRoZXIgRXJpYyBZb3VuZydzCisJbGliZGVzLCBvciB0aGUgS29vbnR6IGltcGxlbWVudGF0aW9uLCBzZWUgY3J5cHRvY2FyZC5jLgorCUluaXRpYWwgc3VwcG9ydCBwYXRjaCBieSBSYW5kb2xwaCBCZW50c29uLCAKKwk8YmVudHNvbkBncmllZy5zZWFzbHVnLm9yZz4KKwlDaGFuZ2VkIGdldHBhc3MoKSB0byB1c2UgZnB1dHMoKSBpbnN0ZWFkIG9mIGZwcmludGYoKS4KKworVmVyc2lvbiAxLjQ0ICgxMy1Ob3YtOTYpOgorCU1hZGUgaXNhcHR5KCkgaW4gY2hlY2t0dHkuYyBtb3JlIHJlc2lsaWVudCB0byAyLjAgc3lzdGVtcworCXRoYXQgaGF2ZW4ndCByZS1NQUtFREVWJ2VkIHRoZWlyIHB0eSBkZXZpY2VzLgorCitWZXJzaW9uIDEuNDMgKDgtTm92LTk2KToKKwlGaXggdG8gY2hlY2t0dHkuYzogUFRZJ3MgYXJlIG51bWJlcmVkIGRpZmZlcmVudGx5IGFmdGVyIDEuMywKKwlibHVzaCEgRml4IGJ5IEdlcmhhcmQgU2NobmVpZGVyIDxnc0BpbGZiLnR1d2llbi5hYy5hdD4KKworVmVyc2lvbiAxLjQyYyAoNi1Ob3YtOTYpOgorCVNtYWxsIGZpeCBieSBHYWJyaWVsIE0uIFNjaHV5bGVyIDxzY2h1eWxlckBlYXNpZXN0LmNvbT4sIHRvIGdldAorCWJldHRlciBzeXNsb2cgbWVzc2FnZXMgKDEgTE9HSU4gRkFJTFVSRSBpbnN0ZWFkIG9mIDIgTE9HSU4gRkFJTFVSRVMpLgorCVBhdGNoIGJ1dGNoZXJlZCBieSBtZS4KKworVmVyc2lvbiAxLjQyYiAoMzAtU2VwLTk2KToKKwlHb3QgcGF0Y2ggZm9yIGNoZWNrdHR5LmMgZnJvbSBDaHJpc3RvcGggTGFtZXRlcgorCTxjbGFtZXRlckBtaXJpYW0uZnVsbGVyLmVkdT4gc28gaXQgZG9lc24ndCB0cmF2ZXJzZSB0aGUgZ3JvdXBmaWxlCisJIm1hbnVhbGx5IiBidXQgdXNlcyB0aGUgZ2V0Z3JvdXBzKCkgY2FsbCwgdGhpcyBpcyBtb3JlIGVmZmljaWVudAorCXdpdGggbGFyZ2UgZ3JvdXBmaWxlcyBhbmQgTklTL1lQLgorCitWZXJzaW9uIDEuNDJhICgyNC1TZXAtOTYpOgorCUFkZGVkIGV4dHJhIHN5c2xvZygpIGNhbGwgdG8gbG9naW4uYyB0byBsb2cgYWxsIGdvb2QgbG9naW5zLgorCVBhdGNoIGZyb20gU3RldmUgUGhpbHAuCisKK1ZlcnNpb24gMS40MSAoMjAtSnVsLTk2KToKKwlBZGRlZCBzZWN1cml0eSBmaXggdG8gY2hlY2t0dHkuYyBieSBKRFMgdG8gY2xlYXIgY2VydGFpbiBsaXN0cy4KKwlQYXRjaGVzIGJ1dGNoZXJlZCBhbmQgQU5TSSdmaWVkIGJ5IG1lLgorCUFkZGVkIC1uIG9wdGlvbiB0byBhZ2V0dHkgdG8gYXZvaWQgdGhlIGxvZ2luIHByb21wdC4KKworVmVyc2lvbiAxLjQwYSAoMjktRGVjLTk1KToKKwlBZGRlZCAtZiA8aXNzdWVfZmlsZT4gb3B0aW9uIHRvIGFnZXR0eS4gUGF0Y2hlcyBmcm9tIEVyaWMgUmFzbXVzc2VuCisJPGVhckB1c2ZpcnN0Lm9yZz4sIGJ1dCBzb21ld2hhdCBidXRjaGVyZWQgYnkgbWUuCisKK1ZlcnNpb24gMS4zOSAoMjUtT2N0LTk1KToKKwlMb3RzIG9mIHRlc3RpbmcgYW5kIGJ1Z2ZpeGVzIGluIGFnZXR0eS4gTm93IHRoZSBtb2RlbSBpbml0IHN0dWZmIAorCXNob3VsZCBmaW5hbGx5IHdvcmsgKGZvciBtZSkuIEFsc28gd3JvdGUgbW9kZW0uYWdldHR5IGFzIGFuIGV4YW1wbGUKKwlvbiBob3cgdG8gdXNlIGFnZXR0eSB3aXRoIGEgbW9kZW0uCisJQWdldHR5IG5vdyBhbHNvIHN1cHBvcnRzIGJhdWQgcmF0ZXMgb2YgMzg0MDAsIDU3NjAwLCAxMTUyMDAgYW5kCisJMjMwNDAwIGJwcy4KKworVmVyc2lvbiAxLjM3ICgxNS1TZXAtOTUpOgorCUFkZGVkIC1JIDxpbml0c3RyaW5nPiBhbmQgLXcgb3B0aW9ucyB0byBhZ2V0dHkuYyBmb3IgdGhvc2UgdGhhdAorCXVzZSBhZ2V0dHkgd2l0aCBtb2RlbXMuCisKK1ZlcnNpb24gMS4zNiAoMjUtQXVnLTk1KTogCisJRW5oYW5jZWQgL2V0Yy91c2VydHR5IGZlYXR1cmVzIHdpdGggZ3JvdXAgc3VwcG9ydC4gTW92ZWQgdGhpcyBwYXJ0CisJb2YgbG9naW4uYyB0byBjaGVja3R0eS5jLiBPbmUgY2FuIG5vdyBkZWZpbmUgY2xhc3NlcyBvZiBob3N0cyBhbmQKKwl0dHlzIGFuZCBkbyBhY2Nlc3MgY2hlY2tpbmcgYmFzZWQgb24gdW5peC1ncm91cCBtZW1iZXJzaGlwLiBTZWUKKwlsb2dpbi4xLiBBbHNvIHRpbWUgcmFuZ2VzIGZvciBsb2dpbnMgY2FuIGJlIHNwZWNpZmllZCwgZm9yIGV4YW1wbGUKKwl3cml0aW5nIHRoZSBsaW5lCisKKwlqb2UJW21vbjp0dWU6d2VkOnRodTpmcmk6OC0xNl1AYmFycmFjdWRhIFttb246dHVlOndlZDp0aHU6ZnJpOjAtNzoxNy0yM11Aam9lcy5wYy5hdC5ob21lIFtzYXQ6c3VuOjAtMjNdQGpvZXMucGMuYXQuaG9tZQorCisJc2F5cyB0aGF0IGR1cmluZyB3b3JraW5nIGhvdXJzLCBKb2UgbWF5IHJsb2dpbiBmcm9tIHRoZSBob3N0CisJYmFycmFjdWRhLCB3aGVyZWFzIG91dHNpZGUgd29ya2luZyBob3VycyBhbmQgaW4gd2Vla2VuZHMgSm9lIG1heQorCXJsb2dpbiBmcm9tIGhpcyBuZXR3b3JrZWQgUEMgYXQgaG9tZS4KKworCWxvZ2luLmM6IGZhaWx1cmVzIHdhcyBub3QgcHJvcGVybHkgaW5pdGlhbGl6ZWQsIGl0IG5vdyBpcy4gQWxzbworCW1hZGUgc3VyZSBBTEwgZmFpbHVyZXMgYXJlIHJlYWxseSBsb2dnZWQgdG8gc3lzbG9nLgorCitWZXJzaW9uIDEuMzUgKDctQXVnLTk1KToKKwlsb2dpbi5jOiBNdWNoIGltcHJvdmVkIGZlYXR1cmVzIGZvciB0aGUgdXNlcnR0eSBmaWxlLCBhbGxvd3MKKwlhY2Nlc3MgY29udHJvbCBiYXNlZCBvbiBib3RoIGhvc3RuYW1lcy9hZGRyZXNzZXMgYW5kIGxpbmUuIFNlZSB0aGUgCisJYWJvdXQudXNlcnR0eSBmaWxlIGFuZCB0aGUgbWFuLXBhZ2UuCisKKwlGaXhlZCBhZ2V0dHkgc28gaXQgZG9lc24ndCBmaWRkbGUgd2l0aCB0aGUgdXRfaWQgZmllbGQgaW4gdGhlCisJdXRtcCByZWNvcmQsIHRoaXMgc2hvdWxkIHByZXZlbnQgZ3Jvd2luZyB1dG1wcyBvbiBzeXN0ZW1zIHdpdGgKKwltb3JlIHRoYW4gMTAgbG9naW4gbGluZXMuIEZpeCBzdWdnZXN0ZWQgYW5kIGNoZWNrZWQgYnkgQWxhbiBXZW5kdCAKKwk8YWxhbkBlemxpbmsuY29tPiBpbiBoaXMgYWdldHR5LjEuOS4xYS4KKworCUFnZXR0eSBub3cgaW5zdGFsbHMgYXMgYWdldHR5IGFnYWluLCBub3QgYXMgZ2V0dHkuCisJVXBkYXRlZCBtYW4tcGFnZSBmb3IgbG9naW4oMSkgdG8gZG9jdW1lbnQgL2V0Yy91c2VydHR5IGNoYW5nZXMuCisKKwlUaGlzIGhhcyBiZWVuIHRlc3RlZCBvbiBMaW51eCAxLjIuNSB3aXRoIEdDQyAyLjUuOCBhbmQgbGliYyA0LjUuMjYuCisKK1ZlcnNpb24gMS4zM2EgKDIwLUp1bi05NSk6CisJcmNoYXRmaWVAY2F2ZXJuLm5tc3UuZWR1ICgicmMuIikgc3VnZ2VzdGVkIHRoYXQgSSBzaG91bGQgcmVtb3ZlCisJdGhlICNpZm5kZWYgbGludXggYXJvdW5kIHRoZSBzcGVjaWFsIGxvZ2dpbmcgb2YgZGlhbC11cCAKKwlsb2dpbnMuIFRoaXMgaXMgbm93IGRvbmUsIHNvIGVhY2ggbG9naW4gdmlhIGEgc2VyaWFsIHBvcnQgCisJZ2VuZXJhdGVzIGEgc2VwYXJhdGUgRElBTFVQIHN5c2xvZyBlbnRyeS4KKworVmVyc2lvbiAxLjMzICg1LUp1bi05NSk6CisJUGF0Y2ggYnkgUm9uIFNvbW1lbGluZyA8c29tbWVsQHNjaS5rdW4ubmw+IGFuZAorCWpsYWlob0BpY2hhb3MubnVsbG5ldC5maSAoSnVoYSBMYWlobykgZm9yIGFnZXR0eS5jLCB1c2VkCisJdG8gcmV0dXJuIGEgcG9pbnRlciB0byBhbiBhdXRvbWF0aWMgdmFyaWFibGUgaW4gZ2V0X2xvZ25hbWUoKS4KKwlNYW55IHBhdGNoZXMgZnJvbSBvciB2aWEgUmlja2FyZCBGYWl0aCA8ZmFpdGhAY3MudW5jLmVkdT4sIGZpeGluZworCW1hbi1wYWdlcyBldGMsIG5vdyBkZWZhdWx0cyB0byB1c2luZyAvdmFyL2xvZy93dG1wIGFuZCAvdmFyL3J1bi91dG1wCisJYWNjb3JkaW5nIHRvIHRoZSBuZXcgRlNTVE5ELgorCisJRml4IGluIGxvZ2luLmMgZm9yIENQVSBlYXRpbmcgYnVnIHdoZW4gYSByZW1vdGUgdGVsbmV0IGNsaWVudCBkaWVzCisJd2hpbGUgbG9nZ2luZyBpbi4KKworCVRoaXMgaXMgZm9yIExpbnV4IDEuMiwgR0NDIDIuNi4yIG9yIGxhdGVyLgorCitWZXJzaW9uIDEuMzJiICgxMi1NYXItOTUpOgorCUxvZ2luIG5vdyBzZXRzIHRoZSB0dHkgZ3JvdXAgdG8gInR0eSIgaW5zdGVhZCBvZiAib3RoZXIiLiBEZXBlbmRpbmcKKwlvbiBjb21waWxlLXRpbWUgZGVmaW5lIFVTRV9UVFlfR1JPVVAgdGhlIHR0eSBtb2RlIGlzIHNldCB0byAwNjIwIG9yCisJMDYwMCBpbnN0ZWFkIG9mIDA2MjIuIEFsbCBhcyBwZXIgc3VnZ2VzdGlvbiBieSBSaWsgRmFpdGggYW5kIHRoZQorCWxpbnV4LXNlY3VyaXR5IGxpc3QuCisJV3JpdGUvd2FsbCBub3cgc3RyaXBzIGNvbnRyb2wgY2hhcnMgZXhjZXB0IEJFTCAoXDAwNykuIEFnYWluIGFmdGVyCisJc3VnZ2VzdGlvbiBieSBSaWsgRmFpdGguCisKK1ZlcnNpb24gMS4zMmEKKwlVcmdlbnQgc2VjdXJpdHkgcGF0Y2ggZnJvbSBBbHZhcm8gTS4gRWNoZXZhcnJpYSBpbmNvcnBvcmF0ZWQgaW50bworCWxvZ2luLmMuIFRoaXMgaXMgcmVhbGx5IG5lZWRlZCBvbiBtYWNoaW5lcyBydW5uaW5nIFlQIHVudGlsCisJdGhlIGxpYnJhcmllcyBhcmUgZml4ZWQuCisKK1ZlcnNpb24gMS4zMgorCUxvZ2luIG5vdyBsb2dzIHRoZSBpcC1hZGRyZXNzIG9mIHRoZSBjb25uZWN0aW5nIGhvc3QgdG8gdXRtcCBhcyBpdAorCXNob3VsZC4KKworVmVyc2lvbiAxLjMxYiAoMi1GZWItOTUpOgorCURhbmllbCBRdWlubGFuIDxxdWlubGFuQHlnZ2RyYXNpbC5jb20+IGFuZCBSb3NzIEJpcm8gCisJPGJpcm9AeWdnZHJhc2lsLmNvbT4gc3VnZ2VzdGVkIGEgcGF0Y2ggdG8gbG9naW4uYyB0aGF0IGFsbG93cyBmb3IgCisJc2hlbGwgc2NyaXB0cyBpbiB0aGUgc2hlbGwgZmllbGQgb2YgL2V0Yy9wYXNzd2QsIHNvIG9uZSBjYW4gbm93CisJaGF2ZSAoYXMgYSBsaW5lIGluIC9ldGMvcGFzc3dkKToKKwkJYnllOjoxMDAwOjEwMDA6T3V0bG9nZ2VyOi9iaW46ZWNobyBCeWUKKwlMb2dnaW5nIGluIGFzICJieWUiIHdpdGggbm8gcGFzc3dvcmQgc2ltcGx5IGVjaG9lcyBCeWUgb24gdGhlIHNjcmVlbi4KKwlUaGlzIGhhcyBhcHBsaWNhdGlvbnMgZm9yIHBwcGQvc2xpcC4KKworVmVyc2lvbiAxLjMxYSAoMjgtT2N0LTk0KToKKwlTY290dCBUZWxmb3JkIHByb3ZpZGVkIGEgcGF0Y2ggZm9yIHNpbXBsZWluaXQsIHNvIGV4ZWN1dGluZyByZWJvb3QKKwlmcm9tIHNpbmdsZXVzZXIgbW9kZSB3b24ndCBwYXJ0aWFsbHkgZXhlY3V0ZSAvZXRjL3JjIGJlZm9yZQorCXRoZSByZWJvb3QuCisKK1ZlcnNpb24gMS4zMCAoMTctU2VwLTk0KToKKwl0b2JpYXNAc2VydmVyLmV0LWluZi5maG8tZW1kZW4uZGUgKFBldGVyIFRvYmlhcykgaGFzIG1hZGUgYSBtb3JlIAorCWFkdmFuY2VkIGhvc3RuYW1lIGNvbW1hbmQgdGhhdCB1bmRlcnN0YW5kcyBzb21lIG9wdGlvbnMgc3VjaCBhcworCS1mIGZvciBGUUROIGV0Yy4gSSdsbCBub3QgZHVwbGljYXRlIGhpcyB3b3JrLiBVc2UgaGlzIGhvc3RuYW1lCisJcGFja2FnZSBpZiB5b3Ugd2lzaC4KKworCXN2bUBrb3ptaXgueHM0YWxsLm5sIChTYW5kZXIgdmFuIE1hbHNzZW4pIHByb3ZpZGVkIG1vcmUgZmVhdHVyZXMKKwlmb3IgdGhlIC9ldGMvaXNzdWUgZmlsZSBpbiBhZ2V0dHkuIFxVIGFuZCBcdSBub3cgZXhwYW5kIHRvIHRoZSAKKwludW1iZXIgb2YgY3VycmVudCB1c2Vycy4KKworCUl0IGlzIG5vdyBwb3NzaWJsZSB0byBzdGF0ZSB0aGUgdmFsdWUgb2YgVEVSTSBvbiB0aGUgYWdldHR5IGNvbW1hbmQKKwlsaW5lLiBUaGlzIHdhcyBhbHNvIHByb3ZpZGVkIGJ5IFNhbmRlci4KKworCVRoaXMgaGFzIGJlZW4gYnVpbHQgdW5kZXIgTGludXggMS4xLjQyIHdpdGggZ2NjIDIuNS44IGFuZCBsaWJjIDQuNS4yNi4KKworVmVyc2lvbiAxLjI5ICgxOC1BdWctOTQpOgorCUZpbmFsbHkgZ290IGFyb3VuZCB0byBtYWtpbmcgYSByZWFsIHZlcnNpb24gYWZ0ZXIgdGhlIG51bWVyb3VzCisJYWxwaGEgdmVyc2lvbnMgb2YgMS4yOC4gU2NvdHQgVGVsZm9yZCA8c3RAZXBjYy5lZC5hYy51az4gcHJvdmlkZWQKKwlhIHBhdGNoIGZvciB3cml0ZSgxKSB0byBtYWtlIGl0IGxvb2sgbW9yZSBsaWtlIEJTRCB3cml0ZS4KKworCUZpeGVkIGxvZ2luIHNvIHRoYXQgdGhlIC5odXNobG9naW4gZmVhdHVyZSB3b3JrcyBldmVuIHdpdGggcmVhbAorCXByb3RlY3RpdmUgdXNlcnMgbW91bnRlZCB2aWEgTkZTIChpZS4gd2hlcmUgcm9vdCBjYW4ndCBhY2Nlc3MKKwl0aGUgdXNlcidzIC5odXNobG9naW4gZmlsZSkuCisKKwlDbGVhbmVkIHVwIHRoZSBjb2RlIHRvIG1ha2UgLVdhbGwgYmVhcmFibGUuCisKK1ZlcnNpb24gMS4yOGMgKDIxLUp1bC05NCk6CisJUmlrIEZhaXRoIHJlbWluZGVkIG1lIHRoYXQgYWdldHR5IHNob3VsZCB1c2UgdGhlIHN5c2xvZworCWZhY2lsaXR5LiBJdCBub3cgZG9lcy4KKworVmVyc2lvbiAxLjI4YiAoMzAtTWF5LTk0KToKKwlPbiBzdWdnZXN0aW9uIGZyb20gSmVyZW15IEZpdHpoYXJkaW5nZSA8amVyZW15QHN1aXRlLnN3Lm96LmF1PgorCUkgYWRkZWQgLS0gYXMgb3B0aW9uIGRlbGltaXRlciBvbiBhcmdzIHBhc3NlZCBmcm9tIGFnZXR0eSB0bworCWxvZ2luLiBGaXhlcyAtZnJvb3QgaG9sZSBmb3Igb3RoZXIgbG9naW4gcHJvZ3JhbXMuIFRoZSBsb2dpbgorCXByb2dyYW0gaW4gdGhpcyBwYWNrYWdlIG5ldmVyIGhhZCB0aGF0IGhvbGUuCisKK1ZlcnNpb24gMS4yOGEgKDE2LU1heS05NCk6CisJYmlsbEBnb3NoYXdrLmxhbmwuZ292IHByb3ZpZGVkIGEgY291cGxlIG9mIHBhdGNoZXMsIG9uZSBmaXhpbmcKKwl0ZXJtaW5hbCBzZXR1cCBpbiBhZ2V0dHksIGFuZCByZWJvb3QgaXMgbm93IHN1cHBvc2VkIHRvIGJlCisJaW4gL3NiaW4gYWNjb3JkaW5nIHRvIEZTU1RORC4KKworVmVyc2lvbiAxLjI3ICgxMC1NYXktOTQpOgorCUNoYW5nZWQgbG9naW4uYywgc28gYWxsIGJhZCBsb2dpbiBhdHRlbXB0cyBhcmUgbG9nZ2VkLCBhbmQgYWRkZWQKKwl1c2VydHR5IHNlY3VyaXR5IGZlYXR1cmUuIFNlZSBhYm91dC51c2VydHR5IGZvciBhbiBleHBsYW5hdGlvbi4KKwlUaGVyZSdzIG5vIGxvbmdlciBhIGxpbWl0IG9mIDIwIGNoYXJzIGluIHRoZSBURVJNIGVudmlyb25tZW50IAorCXZhcmlhYmxlLiBTdWdnZXN0ZWQgYnkgTmljb2xhaSBMYW5nZmVsZHQgPGphbmxAbWF0aC51aW8ubm8+CisKKwlBZGRlZCAjaWZkZWYgSEFWRV9RVU9UQSBhcm91bmQgcXVvdGEgY2hlY2tzLiBFbmFibGUgdGhlbSBpZgorCXlvdSBoYXZlIHF1b3RhIHN0dWZmIGluIHlvdXIgbGlicmFyaWVzIGFuZCBrZXJuZWwuCisJQWxzbyByZS1lbmFibGVkIHNldC9nZXRwcmlvcml0eSgpIGNhbGxzIGFzIHdlIG5vdyBoYXZlIHRoZW0sCisJYW5kIGhhdmUgaGFkIGZvciBhIGxvbmcgdGltZS4uLgorCisJTm93IHd0bXAgaXMgbG9ja2VkIGFuZCB1bmxvY2tlZCBhcm91bmQgd3JpdGVzIHRvIGF2b2lkIG1hbmdsaW5nLgorCUR1ZSB0byBKYWFra28gSHl2e3R0aSA8SFlWQVRUSUBjYy5oZWxzaW5raS5maT4uCisKKwlXcnQuIGFnZXR0eTogQSBcbyBpbiAvZXRjL2lzc3VlIG5vdyBpbnNlcnRzIHRoZSBkb21haW5uYW1lLCBhcyAKKwlzZXQgYnkgZG9tYWlubmFtZSgxKS4gU2FuZGVyIHZhbiBNYWxzc2VuIHByb3ZpZGVkIHRoaXMuCisJVGhpcyBpcyBiZWluZyB1c2VkIHVuZGVyIExpbnV4IDEuMS45CisKKwlCZWVmZWQgdXAgdGhlIGFnZXR0eS44IG1hbi1wYWdlIHRvIGRlc2NyaWJlIHRoZSAvZXRjL2lzc3VlCisJb3B0aW9ucy4gQWRkZWQgbWFuLXBhZ2VzIGZvciB3YWxsLCBjYWdlLCB3aG8uCisKK1ZlcnNpb24gMS4yNiBhbHBoYSAoMjUtQXByLTk0KToKKwlBZGRlZCBwYXRjaCBmcm9tIEJpbGwgUmV5bm9sZHMgPGJpbGxAZ29zaGF3ay5sYW5sLmdvdj4gdG8gCisJc2ltcGxlaW5pdCwgc28gaXQgd2lsbCBkcm9wIGludG8gc2luZ2xlIHVzZXIgaWYgL2V0Yy9yYworCWZhaWxzLCBlZy4gZnJvbSBmc2NrLgorCitWZXJzaW9uIDEuMjUgKDktRmViLTk0KToKKwlBZ2V0dHkgc2hvdWxkIG5vdyB3b3JrIHdpdGggdGhlIExpbnV4IDAuOTlwbDE1YSBrZXJuZWwuCisJRUNIT0NUTCBhbmQgRUNIT1BSVCBhcmUgbm8gbG9uZ2VyIHNldCBpbiB0aGUgdGVybWlvcyBzdHJ1Y3QuCisJQWxzbyBtYWRlIGFnZXR0eSBhY2NlcHQgYm90aCAidHR5IGJhdWRyYXRlIiBhbmQgImJhdWRyYXRlIHR0eSIKKwlhcmd1bWVudHMuCisKK1ZlcnNpb24gMS4yNCAoMjMtSmFuLTk0KTogY2hhbmdlcyBzaW5jZSAxLjIyCisJQ2hyaXN0aWFuIHZvbiBSb3F1ZXMgPHJvcXVlc0BqdWxpZXQua2Euc3ViLm9yZz4gcHJvdmlkZWQgYSBwYXRjaAorCXRoYXQgY2xlYW5zIHVwIHRoZSBoYW5kbGluZyBvZiB0aGUgLUwgb3B0aW9uIG9uIGFnZXR0eS4gCisJUmlrIEZhaXRoIDxmYWl0aEBjcy51bmMuZWR1PiBlbmhhbmNlZCBzZXZlcmFsIG1hbi1wYWdlcy4uLgorCitWZXJzaW9uIDEuMjMgKDExLURlYy05Myk6IGNoYW5nZXMgc2luY2UgMS4yMQorCU1pdGNodW0gRFNvdXphIHByb3ZpZGVkIHRoZSBob3N0aWQoMSkgY29kZS4gSXQgbmVlZHMgbGliYyA0LjQuNCBvcgorCWxhdGVyIGFuZCBhIExpbnV4IDAuOTkuMTQga2VybmVsIG9yIGxhdGVyLiBJdCBjYW4gc2V0IGFuZCBwcmludAorCXRoZSB3b3JsZCB1bmlxdWUgaG9zdGlkIG9mIHRoZSBtYWNoaW5lLiBUaGlzIG1heSBiZSB1c2VkIGluIAorCWNvbm5lY3Rpb24gd2l0aCBjb21tZXJjaWFsIHNvZnR3YXJlIGxpY2Vuc2VzLiBHb2QgZm9yYmlkIQorCUkgYWRkZWQgdGhlIC12IG9wdGlvbiwgYW5kIG11bmdlZCB0aGUgY29kZSBhIGJpdCwgc28gZG9uJ3QgYmxhbWUKKwlNaXRjaCBpZiB5b3UgZG9uJ3QgbGlrZSBpdC4KKworCUkgbWFkZSB0aGUgImNhZ2UiIHByb2dyYW0uIFVzaW5nIHRoaXMgYXMgYSBzaGVsbCBpbiB0aGUgcGFzc3dkCisJZmlsZSwgZW5hYmxlcyBvbmUgdG8gbGV0IHVzZXJzIGxvZyBpbnRvIGEgY2hyb290J2VkIGVudmlyb25tZW50LgorCUZvciB0aG9zZSB0aGF0IGhhdmUgbW9kZW0gbG9naW5zIGFuZCBhcmUgY29uY2VybmVkIGFib3V0IHNlY3VyaXR5LgorCVJlYWQgdGhlIHNvdXJjZSBmb3IgZnVydGhlciBpbmZvLgorCisJIndobyBhbSBpIiBub3cgd29ya3MuCisKKwlUaGUgbG9naW4gcHJvZ3JhbSB3b3JrcyB3aXRoIFllbGxvdyBQYWdlcyAoYWthIE5JUykgc2ltcGx5IGJ5CisJbGlua2luZyB3aXRoIGFuIGFwcHJvcHJpYXRlIGxpYnJhcnkgY29udGFpbmluZyBhIHByb3BlciB2ZXJzaW9uCisJb2YgZ2V0cHduYW0oKSBhbmQgZnJpZW5kcy4KKworVmVyc2lvbiAxLjIxICgzMC1PY3QtOTMpOiBjaGFuZ2VzIHNpbmNlIDEuMjAKKwlJbiBzaW1wbGVpbml0LmM6IFRoZSBib290dGltZSB3dG1wIHJlY29yZCBpcyBub3cgd3JpdHRlbiAqYWZ0ZXIqCisJL2V0Yy9yYyBpcyBydW4sIHRvIHB1dCBhIGNvcnJlY3QgdGltZXN0YW1wIG9uIGl0LgorCURhbmllbCBUaHVtaW0gPGR0aHVtaW1AbWl0LmVkdT4gc3VnZ2VzdGVkIHRoaXMgZml4LgorCisJVGhlIHNvdXJjZSBhbmQgTWFrZWZpbGUgaXMgcHJlcGFyZWQgZm9yIG9wdGlvbmFsIGluc3RhbGxhdGlvbiBvZiAKKwliaW5hcmllcyBpbiAvc2JpbiBpbnN0ZWFkIG9mIC9ldGMsIGFuZCBsb2dmaWxlcyBpbiAvdXNyL2FkbSBpbnN0ZWFkCisJb2YgL2V0Yy4gU2VlIGFuZCBjaGFuZ2UgdGhlIE1ha2VmaWxlIHRvIHN1aXQgeW91ciBwcmVmZXJlbmNlcy4KKwlSaWsgRmFpdGggYW5kIFN0ZXBoZW4gVHdlZWRpZSBpbnNwaXJlZCB0aGlzIGNoYW5nZS4KKworVmVyc2lvbiAxLjIwICgzMC1KdWwtOTMpOiBjaGFuZ2VzIHNpbmNlIDEuMTc6CisJVmVyc2lvbnMgMS4xOCBhbmQgMS4xOSB3ZXJlIG5ldmVyIG1hZGUgcHVibGljYWxseSBhdmFpbGFibGUuCisJQWdldHR5IG5vdyBzdXBwb3J0cyBhIC1MIHN3aXRjaCB0aGF0IG1ha2VzIGl0IGZvcmNlIHRoZSBDTE9DQUwgZmxhZy4KKwlUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSBhIGxvY2FsIHRlcm1pbmFsIGF0dGFjaGVkIHdpdGggYSBwYXJ0bHkKKwl3aXJlZCBzZXJpYWwgY2FibGUgdGhhdCBkb2VzIG5vdCBwYXNzIG9uIHRoZSBDYXJyaWVyIERldGVjdCBzaWduYWwuCisKKwlUaGVyZSdzIGEgZG9tYWlubmFtZSBwcm9ncmFtIGxpa2UgdGhlIGhvc3RuYW1lIHByb2dyYW07IGNvbnRyaWJ1dGVkCisJYnkgTGFycyBXaXJ6ZW5pdXMuCisKKwlTaW1wbGVpbml0IHdpbGwgbm93IHdyaXRlIGEgUkVCT09UIHJlY29yZCB0byB3dG1wIG9uIGJvb3QgdXAuIFRpbWUtCisJem9uZSBzdXBwb3J0IGlzIG5vdyBvcHRpb25hbCBpbiBzaW1wbGVpbml0LiBCb3RoIG9mIHRoZXNlIHBhdGNoZXMKKwl3ZXJlIG1hZGUgYnkgU2NvdHQgVGVsZm9yZCA8c3RAZXBjYy5lZC5hYy51az4uCisKKwlUaGlzIGlzIGZvciBMaW51eCAwLjk5LjExIG9yIGxhdGVyLgorCitWZXJzaW9uIDEuMTcgKDE5LU1heS05Myk6IGNoYW5nZXMgc2luY2UgMS4xNjoKKwlMb2dpbiwgc2ltcGxlaW5pdCBhbmQgd3JpdGUgc2hvdWxkIG5vdyB3b3JrIHdpdGggc2hhZG93IHBhc3N3b3JkcworCXRvby4gU2VlIHRoZSBNYWtlZmlsZS4gVGhhbmtzIHRvIEFuZGVycyBCdWNoIHdobyBsZXQgbWUgaGF2ZSBhbgorCWFjY291bnQgb24gaGlzIFNMUyBiYXNlZCBMaW51eCBib3ggb24gdGhlIEludGVybmV0LCBzbyBJIGNvdWxkIHRlc3QKKwl0aGlzLiBJIHNob3VsZCBhbHNvIHRoYW5rIGptb3JyaXNvQHJmbGFiLmVlLnViYy5jYSAoSm9obiBQYXVsIE1vcnJpc29uKQorCXdobyBzZW50IG1lIHRoZSBzaGFkb3cgcGF0Y2ggdG8gbG9naW4uYworCitWZXJzaW9uIDEuMTYgKDI0LUFwci05Myk6IGNoYW5nZXMgc2luY2UgMS4xNWE6CisJU2ltcGxlaW5pdCBub3cgY2xlYXJzIHRoZSB1dG1wIGVudHJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlkJ3MgdGhhdAorCWl0IHJlYXBzIGlmIHRoZXJlIGlzIG9uZS4gQSBmZXcgYXJlIHN0aWxsIHVzaW5nIHNpbXBsZWluaXQgYW5kIHRoaXMKKwl3YXMgYSBwb3B1bGFyIGRlbWFuZC4gSXQgYWxzbyBhcHBlbmRzIGFuIGVudHJ5IHRvIHd0bXAKKworVmVyc2lvbiAxLjE1YSAoMTUtTWFyLTkzKTogY2hhbmdlcyBzaW5jZSAxLjEzYToKKwlqdW5pb0BzaGFkb3cudHdpbnN1bi5jb20gKEp1biBIYW1hbm8pIHNlbnQgbWUgYSBvbmUtbGluZSBmaXgKKwlmb3Igb2NjYXNpb25hbCBtYW5nbGVkIGlzc3VlLW91dHB1dCBmcm9tIGFnZXR0eS4KKworVmVyc2lvbiAxLjEzYSAoMi1NYXItOTMpOiBjaGFuZ2VzIHNpbmNlIDEuMTJhOgorCVdpdGggdGhlIG5ldyBMSUxPICgwLjkpLCB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBwb3NzaWJsZSBhcmcKKwl0byBpbml0LCBzbyBXZXJuZXIgQWxtZXNiZXJnZXIgPGFsbWVzYmVyQGJlcm5pbmEuZXRoei5jaD4KKwlzdWdnZXN0ZWQgdGhhdCBhIGxvb3Agb3ZlciBhcmd2W10gd2FzIG1hZGUgaW4gYm9vdF9zaW5nbGUoKSBpbgorCXNpbXBsZWluaXQuYworCitWZXJzaW9uIDEuMTJhICgyNC1GZWItOTMpOiBjaGFuZ2VzIHNpbmNlIDEuMTE6CisJVGhpcyBpcyBmb3IgTGludXggMC45OS42IG9yIGxhdGVyLiBCdWlsdCB3aXRoIGdjYyAyLjMuMyBhbmQgbGliYzQuMgorCWpyc0B3b3JsZC5zdGQuY29tIChSaWNrIFNsYWRrZXkpIHRvbGQgbWUgdGhhdCB0aGUgc2V0ZW52KCJUWiIsLi4pCisJaW4gbG9naW4uYyBkaWQgbW9yZSBoYXJtIHRoYW4gZ29vZCwgc28gSSBjb21tZW50ZWQgaXQgb3V0LgorCitWZXJzaW9uIDEuMTFhICgxNi1GZWItOTMpOiBjaGFuZ2VzIHNpbmNlIDEuOWE6CisJVGhpcyBpcyBmb3IgTGludXggMC45OS41IG9yIGxhdGVyLgorCUFudGhvbnkgUnVtYmxlIDxhcnVtYmxlQGV4dHJvLnVjYy5zdS5PWi5BVT4gbWFkZSBtZSBhdmFyZSB0aGF0CisJdGhlIHBhdGNoZXMgZm9yIHZoYW5ndXAoKSBmcm9tIFN0ZXZlbiBTLiBEaWNrIGRpZG4ndCBxdWl0ZSB3b3JrLAorCXNvIEkgY2hhbmdlZCBpdC4KKworCUxpbnVzIFRvcnZhbGRzIHByb3ZpZGVkIGFub3RoZXIgcGF0Y2ggcmVsYXRpbmcgdG8gdmhhbmd1cCwgc2luY2UKKwlpbiBuZXdlciBMaW51eGVuIHZoYW5ndXAoKSBkb2Vzbid0IHJlYWxseSBjbG9zZSBhbGwgZmlsZXMsIHNvIHdlCisJY2FuJ3QganVzdCBvcGVuIHRoZSB0dHkncyBhZ2Fpbi4KKworVmVyc2lvbiAxLjlhICgxOC1KYW4tOTMpOiBjaGFuZ2VzIHNpbmNlIDEuOGE6CisJUmljayBGYWl0aCBzZW50IG1lIG1hbi1wYWdlcyBmb3IgbW9zdCBvZiB0aGUgdW50aWxpdGllcyBpbiB0aGlzCisJcGFja2FnZS4gVGhleSBhcmUgbm93IGluY2x1ZGVkLgorCisJU3RldmVuIFMuIERpY2sgPHNzZEBuZXZldHMub2F1Lm9yZz4gc2VudCBtZSBhIHBhdGNoIGZvciBsb2dpbi5jCisJc28gRFRSIHdvbid0IGRyb3AgZHVyaW5nIHZoYW5ndXAoKSBvbiBhIG1vZGVtbGluZS4KKworCVRoaXMgaXMgY29tcGxldGVseSB1bnRlc3RlZCEhIEkgaGF2ZW4ndCBldmVuIGhhZCB0aGUgdGltZSB0bworCWNvbXBpbGUgaXQgeWV0LgorCitWZXJzaW9uIDEuOGEgKDEzLURlYy05Mik6IGNoYW5nZXMgc2luY2UgMS43OgorCVRoaXMgaXMgZm9yIExpbnV4IDAuOTguNiBvciBsYXRlci4gQ29tcGlsZXMgd2l0aCBnY2MyLjIuMmQ3IGFuZCBsaWJjNC4xCisKKwlCZXR0ZXJlZCB3cml0ZS93YWxsIGFmdGVyIGZpeCBmcm9tIEkgZm9yZ2V0IHdoby4gTm93IHdhbGwgY2FuIGhhdmUKKwljb21tYW5kbGluZSBhcmdzLgorCisJRml4ZWQgYnVnIGluIHdoby5jCisKKwlQYXRjaGVkIHNpbXBsZWluaXQuYyB3aXRoIHBhdGNoIGZyb20gRWQgQ2FycCwgc28gaXQgc2V0cyB0aGUgdGltZXpvbmUKKwlmcm9tIC9ldGMvVFouIFNob3VsZCBwcm9iYWJseSBieSBiZSAvZXRjL3RpbWV6b25lLgorCisJU2FuZGVyIFZhbiBNYWxzc2VuIDxzYW5kZXJAa296bWl4LmhhY2t0aWMubmw+IHByb3ZpZGVkIGEgcGF0Y2gKKwlmb3IgZ2V0dHksIHNvIGl0IGNhbiB1bmRlcnN0YW5kIGNlcnRhaW4gZXNjYXBlY29kZXMgaW4gL2V0Yy9pc3N1ZS4KKworCUkgaGFja2VkIHVwIGEgdmVyeSBzaW1wbGUgc3Vic3RpdHV0ZSBmb3IgYSBzeXNsb2coKSBjYWxsLCB0byB0cnkgb3V0CisJdGhlIGxvZ2dpbmcuIElmIHlvdSBoYXZlIGEgcmVhbCBzeXNsb2coKSBhbmQgc3lzbG9nZCB0aGVuIHVzZSB0aGF0IQorCisJVGhlIHNwZWNpYWwgdmhhbmd1cC5jIGZpbGUgaXMgb3V0LCBpdCdzIGluIHRoZSBvZmZpY2lhbCBsaWJjIGJ5IG5vdy4KKwkoYW5kIGV2ZW4gaW4gdGhlIGxpYmMgdGhhdCBJIGhhdmUgOi0pCisKKwl3aG8sIGFuZCB3cml0ZSBhcmUgbm93IGRlcHJlY2F0ZWQsIGdldCB0aGUgYmV0dGVyIG9uZXMgZnJvbSBvbmUgb2YKKwl0aGUgR05VIHBhY2thZ2VzLCBzaGVsbHV0aWxzIEkgdGhpbmsuCisKKwlTb21lIHBlb3BsZSB0aGluayB0aGF0IHRoZSBzaW1wbGUgaW5pdCBwcm92aWRlZCBpbiB0aGlzIHBhY2thZ2UgaXMgdG9vCisJc3BhcnRhbiwgaWYgeW91IHRoaW5rIHRoZSBzYW1lLCB0aGVuIGdldCB0aGUgU1lTViBjb21wYXRpYmxlIGluaXQKKwlmcm9tIE1pcXVlbCB2YW4gU21vb3JlbmJ1cmcgPG1pcXVlbHNAbWFlc3Ryby5odHNhLmFoYS5ubD4KKwlTaW1wbGVpbml0IHdpbGwgcHJvYmFibHkgYmUgZGVwcmVjYXRlZCBpbiB0aGUgZnV0dXJlLgorCitWZXJzaW9uIDEuNzogMjYtT2N0LTkyIGNoYW5nZXMgc2luY2UgMS42OgorCVRoaXMgaXMgZm9yIExpbnV4IDAuOTdQTDQgb3IgbGF0ZXIuCisKKwlUaGFua3MgdG8gV2VybmVyIEFsbWVzYmVyZ2VyLCBpbml0IG5vdyBoYXMgc3VwcG9ydCBmb3IgYSAKKwlzaW5nbGV1c2VyIG1vZGUuIAorCisJTG9naW4gbm93IHN1cHBvcnRzIHRoZSAtaCA8aG9zdG5hbWU+IG9wdGlvbiwgdXNlZCBpbiBjb25uZWN0aW9uCisJd2l0aCBUQ1AvSVAuIChybG9naW4vdGVsbmV0KQorCisJR2V0dHkgd3JpdGVzIGFuIGVudHJ5IHRvIC9ldGMvd3RtcCB3aGVuIHN0YXJ0ZWQsIHNvIGxhc3Qgd29uJ3QgcmVwb3J0CisJInN0aWxsIGxvZ2dlZCBpbiIgZm9yIHR0eSdzIHRoYXQgaGF2ZSBub3QgYmVlbiBsb2dnZWQgaW50byBzaW5jZQorCXRoZSBsYXN0IHVzZXIgb2YgdGhhdCB0dHkgbG9nZ2VkIG91dC4gVGhpcyBwYXRjaCB3YXMgaW5zcGlyZWQgYnkKKwlNaXRjaHVtIERTb3V6YS4gVG8gZ2FpbiB0aGUgZnVsbCBiZW5lZml0IG9mIHRoaXMsIGdldCB0aGUgbmV3ZXN0CisJbGFzdCBmcm9tIHRoZSBhZG11dGlscy0xLjQudGFyLlogcGFja2FnZSBvciBsYXRlci4KKworVmVyc2lvbiAxLjYgKDI5LUF1Zy05Mik6IGNoYW5nZXMgc2luY2UgMS41OgorCVRoaXMgaXMgZm9yIExpbnV4IDAuOTdQMSsgb3IgbGF0ZXIuCisJCisJTG9naW4gbm93IHVzZXMgdGhlIG5ld2x5IGltcGxlbWVudGVkIHZoYW5ndXAoKSBzeXMtY2FsbCwgdG8gcHJldmVudAorCXNub29waW5nIG9uIHRoZSB0dHkuCisJQW4gYWx0ZXJuYXRpdmUgZ2V0cGFzcygpIGZ1bmN0aW9uIGlzIG5vdyBwcm92aWRlZCB3aXRoIGxvZ2luLCBiZWNhdXNlCisJSSB3YXMgdG9sZCB0aGF0IHRoZSBvbGQgb25lIGluIGxpYmMgZGlkbid0IHdvcmsgd2l0aCB0ZWxuZXQgYW5kCisJb3IgcmxvZ2luLiBJIGRvbid0IGhhdmUgYSBuZXR3b3JrIG9yIGEga2VybmVsIHdpdGggVENQL0lQIHNvIEkgaGF2ZW4ndAorCXRlc3RlZCB0aGUgbmV3IG9uZSB3aXRoIHRlbG5ldCwgYnV0IGl0IGlzIGRlcml2ZWQgZnJvbSBCU0Qgc291cmNlcworCXRoYXQgYXJlIHN1cHBvc2VkIHRvIHdvcmsgd2l0aCBuZXR3b3JraW5nLgorCitWZXJzaW9uIDEuNSAoMTItQXVnLTkyKTogY2hhbmdlcyBzaW5jZSAxLjQKKwlUaGlzIGlzIGZvciBMaW51eCAwLjk3IG9yIGxhdGVyLCBhbmQgaGFzIGJlZW4gYnVpbHQgd2l0aCBnY2MyLjIuMgorCisJVGhpcyByZWxlYXNlIGp1c3QgcHV0cyBpbiBhIGZldyBidWdmaXhlcyBpbiBsb2dpbi5jIGFuZCBzaW1wbGVpbml0LmMKKworVmVyc2lvbiAxLjQgKDQtSnVsLTkyKTogY2hhbmdlcyBzaW5jZSAxLjM6CisJVGhpcyBpcyBmb3IgTGludXggMC45NmIsIGFuZCBoYXMgYmVlbiBidWlsdCBhbmQgdGVzdGVkIHdpdGggZ2NjIDIuMi4yLgorCisJSW5pdCBub3cgaGFuZGxlcyB0aGUgU0lHSU5UIHNpZ25hbC4gV2hlbiBpbml0IGdldHMgYSBTSUdJTlQgaXQgd2lsbAorCWNhbGwgL3Vzci9iaW4vcmVib290IGFuZCB0aGVyZWJ5IGdlbnRseSByZWJvb3QgdGhlIG1hY2hpbmUuIFRoaXMKKwltYWtlcyBzZW5zZSBiZWNhdXNlIGFmdGVyIExpbnV4IDAuOTZCLVBMMSB0aGUga2V5LWNvbWJpbmF0aW9uCisJQ3RybC1BbHQtRGVsIG1heSBzZW5kIGEgU0lHSU5UIHRvIGluaXQgaW5zdGVhZCBvZiBib290aW5nIHRoZSAKKwltYWNoaW5lIHRoZSBoYXJkIHdheSB3aXRob3V0IHN5bmNpbmcgb3IgYW55dGhpbmcuCisKKwlZb3UgbWF5IHdhbnQgdG8gZ2V0IHRoZSBhZG11dGlscy0xLjEgcGFja2FnZSB3aGljaCBpbmNsdWRlcyBhIHByb2dyYW0KKwl0aGF0IHdpbGwgaW5zdHJ1Y3QgdGhlIGtlcm5lbCB0byB1c2UgdGhlICJnZW50bGUtcmVib290IiBwcm9jZWR1cmUuCisKK1ZlcnNpb24gMS4zICgxNC1KdW4tOTIpOiBjaGFuZ2VzIHNpbmNlIDEuMjoKKwlUaGlzIGlzIGZvciBMaW51eCAwLjk2QS4KKworCVRoZSBpb2N0bChUSU9DU1dJTlNaKSBoYXMgYmVlbiByZW1vdmVkIGZyb20gbG9naW4uYyBiZWNhdXNlIGl0IG5vdworCXdvcmtzIDotKS4KKwkKKwlsb2dpbi5jIG5vdyBzdXBwb3J0cyBhIGxhc3Rsb2cgZGF0YWJhc2UuCisKKwlTZXZlcmFsIHByb2dyYW1zIGFuZCBwaWVjZXMgb2Ygc291cmNlIHRoYXQgd2VyZSBpbmNsdWRlZCBpbiB0aGUgMS4yCisJcGFja2FnZSBoYXMgYmVlbiAqcmVtb3ZlZCogYXMgdGhleSBhcmUgaW5jb3Jwb3JhdGVkIGludG8gdGhlIG5ldworCWxpYmMuIE90aGVyIG9taXR0ZWQgcGFydHMgc3VjaCBhcyBsYXN0KDEpIGhhcyBiZWVuIHJlcGxhY2VkIGJ5CisJYmV0dGVyIHZlcnNpb25zLCBhbmQgY2FuIGJlIGZvdW5kIGluIHRoZSBhZG11dGlscyBwYWNrYWdlLgorCisJQWdldHR5IGlzIG5vdyBjYWxsZWQgZ2V0dHkgYW5kIHdpbGwgYmUgcGxhY2VkIGluIC9ldGMuCisKKwlBIGZldyBjaGFuZ2VzIGhhcyBiZWVuIG1hZGUgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBjb21waWxlIHRoZQorCXN0dWZmIHdpdGggR0NDIDIueC4KKworVmVyc2lvbiAxLjIgKDI4LUZlYi05Mik6IGNoYW5nZXMgc2luY2UgMS4xOgorCVRoaXMgaXMgZm9yIExpbnV4IDAuMTIuCisKKwlBIGNvdXBsZSBvZiBwcm9ibGVtcyB3aXRoIHNpbXBsZWluaXQuYyBoYXMgYmVlbiBzb2x2ZWQsIHRoYW5rcyB0bworCUh1bWJlcnRvIFp1YXphZ2EuIFNvIG5vdyBpbml0IGdyb2tzIGNvbW1lbnRzIGluIC9ldGMvaW5pdHRhYiwgYW5kCisJaGFuZGxlcyB0aGUgSFVQIGFuZCBUU1RQIHNpZ25hbHMgcHJvcGVybHkuCisKKwlJIGFkZGVkIHR3byBzbWFsbCBzY3JpcHRzIHRvIHRoZSBkaXN0cmlidXRpb246IHVzZXJzIGFuZCBtZXNnLgorCisJVEVSTSBpcyBub3cgY2FycmllZCB0aHJvdWdoIGZyb20gL2V0Yy9pbml0dGFiIGFsbCB0aGUgd2F5IHRvIHRoZQorCXNoZWxsLiBDb25zb2xlIHR0eSdzIGFyZSBzcGVjaWFsLWNhc2VkLCBzbyB0aGUgdGVybWNhcCBlbnRyeSBpbgorCS9ldGMvaW5pdHRhYiBpcyBvdmVycmlkZGVuIGJ5IHRoZSBzZXR0aW5nIGdpdmVuIGF0IGJvb3QtdGltZS4KKwlUaGlzIHJlcXVpcmVzIGEgZGlmZmVyZW50IHBhdGNoIHRvIHRoZSBrZXJuZWwgdGhhbiB0aGF0IGRpc3RyaWJ1dGVkCisJd2l0aCB2ZXJzaW9uIDEuMQorCisJTG9naW4gbm8gbW9yZSBzZW5kcyBzdXBlcmZsdW91cyBjaGFycyBmcm9tIGEgcGFzc3dvcmQgdG8gdGhlIAorCXNoZWxsLiBJdCBhbHNvIHByb3Blcmx5IHByaW50cyBhIE5MIGFmdGVyIHRoZSBwYXNzd29yZC4KKworCUFnZXR0eSBkaWRuJ3Qgc2V0IHRoZSBlcmFzZSBjaGFyYWN0ZXIgcHJvcGVybHksIGl0IGRvZXMgbm93LgorCisJQSBmZXcgZXh0cmEgZGVmaW5lcyBoYXMgYmVlbiBhZGRlZCB0byB1dG1wLmgKKworCVNldmVyYWwgbmV0dGVycyBoZWxwZWQgZGlzY292ZXIgdGhlIGJ1Z3MgaW4gMS4xLiBUaGFua3MgdG8gdGhlbQorCWFsbC4KKworVmVyc2lvbiAxLjEgKHJlbGVhc2VkIDE5LUZlYi05Mik6IENoYW5nZXMgc2luY2UgMS4wOgorCUEgYnVnIGluIHNpbXBsZWluaXQuYyBoYXMgYmVlbiBmaXhlZCwgdGhhbmtzIHRvIFBpZXRybyBDYXN0ZWxsaS4KKwlUaGUgZGVmaW5pdGlvbiBvZiB0aGUgdXRfbGluZSBmaWVsZCBoYXMgYmVlbiBjaGFuZ2VkIHRvIHRyYWNrIHRoZQorCVVTRyBzdGFuZGFyZCBtb3JlIGNsb3NlbHksIHdlIG5vdyBzdHJpcCAiL2Rldi8iIG9mZiB0aGUgZnJvbnQuCisJVGhhbmtzIHRvOiBEb3VnbGFzIEUuIFF1YWxlIGFuZCBTdGVwaGVuIEdhbGxpbW9yZS4KKworCUkgaGF2ZSBhZGRlZCBhIGdldGxvZ2luLmMgbGlicmFyeSByb3V0aW5lLCBhbmQgYSB3cml0ZSgxKSBjb21tYW5kLgorCUkgcmVtb3ZlZCB0aGUgcXBsLWluaXQgc3R1ZmYuIElmIHBlb3BsZSB3YW50IHRvIHVzZSBpdCwgdGhleSBzaG91bGQKKwlnZXQgaXQgZnJvbSB0aGUgc291cmNlLiBJIGRvbid0IHdhbnQgdG8gaGFjayBvbiBpdCBhbnltb3JlLgorCisJQSBjb3VwbGUgb2YgcGVvcGxlIHJlcG9ydGVkIHByb2JsZW1zIHdpdGggZ2V0dHkgaGF2aW5nIHByb2JsZW1zIAorCXdpdGggc2VyaWFsIHRlcm1pbmFscy4gVGhhdCB3YXMgY29ycmVjdC4gSSBib3Jyb3dlZCBhIG51bGwtbW9kZW0KKwlmcm9tIFRvbW15IFRob3JuLCBhbmQgbm93IHRoZSBwcm9ibGVtcyBzaG91bGQgYmUgZml4ZWQuIEl0IHNlZW1zCisJdGhhdCB0aGVyZSBpcyBrZXB0IGEgbG90IG9mIGdhcmJhZ2UgaW4gdGhlIHNlcmlhbCBidWZmZXJzLCBmbHVzaAorCXRoZW0gYW5kIGl0IHdvcmtzIGxpa2UgYSBjaGFybS4gR2V0dHkgZG9lcyBhbiBpb2N0bCgwLCBUQ0ZMU0gsIDIpCisJZm9yIHRoaXMuCisKKwlUaGUgd3JpdGUuYyBjb2RlIG5vdyBkb3VibGVzIGFzIGNvZGUgZm9yIGEgd2FsbCgxKSBwcm9ncmFtLgorCitEZXNjcmlwdGlvbiBvZiB0aGUgdmFyaW91cyBmaWxlczoKKworbG9naW4uYwkJVGhlIGxvZ2luIHByb2dyYW0uIFRoaXMgaXMgYSBwb3J0YXRpb24gb2YgQlNEIGxvZ2luLCBmaXJzdAorCQl0byBIUC1VWCA4LjAgYnkgTWljaGFlbCBHbGFkIChnbGFkQGRhaW1pLmFhdS5kayksIGFuZAorCQl0byBMaW51eCAoaW5pdGlhbGx5IHRvIDAuMTIpIGJ5IG1lLgorCit3aG8uYwkJQSBzaW1wbGUgd2hvKDEpIHV0aWwuIHRvIGxpc3QgdXRtcC4gRG9uZSBieSBtZS4KKwkJWW91IG1heSBwcmVmZXIgdGhlIEdOVSB3aG8gdXRpbC4gd2l0aCBtb3JlIG9wdGlvbnMKKwkJYW5kIGZlYXR1cmVzLgorCitob3N0bmFtZS5jCUEgaG9zdG5hbWUoMSkgY29tbWFuZCB0byBnZXQgYW5kIHNldCB0aGUgaG9zdG5hbWUuIEkgZGlkCisJCXRoaXMgdG9vLgorCitkb21haW5uYW1lLmMJTGlrZSBob3N0bmFtZSwgb25seSByZWFkcyBvdXQgb3Igc2V0cyB0aGUgZG9tYWlubmFtZS4KKworYWdldHR5LmMJVGhlIGdldHR5IHByb2dyYW0uIEZyb20gY29tcC5zb3VyY2VzLm1pc2MsIGJ5IFcuWi4gVmVuZW1hLgorCQlIYWNrZWQgYSBiaXQgYnkgbWUuCisKK3NpbXBsZWluaXQuYwlBIHNpbXBsZSBpbml0IHByb2dyYW0sIHdyaXR0ZW4gYnkgbWUuIFVzZXMgL2V0Yy9pbml0dGFiCisKKwkJQSAia2lsbCAtSFVQIiB0byBpbml0IG1ha2VzIGl0IHJlLXJlYWQgL2V0Yy9pbml0dGFiLgorCQlBICJraWxsIC1UU1RQIiB0byBpbml0IG1ha2VzIGl0IHN0b3Agc3Bhd25pbmcgZ2V0dHlzIG9uIHRoZQorCQl0dHlzLiBBIHNlY29uZCAia2lsbCAtVFNUUCIgc3RhcnRzIGl0IGFnYWluLgorCQlBIGtpbGwgLUlOVCB0byBpbml0IG1ha2VzIGl0IGF0dGVtcHQgYSByZWJvb3Qgb2YgdGhlIG1hY2hpbmUuCisJCXRoaXMgd29ya3MgaW4gY29ubmVjdGlvbiB3aXRoIGtlcm5lbCBzdXBwb3J0IGZvciBzb2Z0Ym9vdAorCQl3aGVuIEN0cmwtQWx0LURlbCBpcyBwcmVzc2VkLgorCisJCUluaXQgd2lsbCBzdGFydCB1cCBpbiBzaW5nbGV1c2VyIG1vZGUgaWYgL2V0Yy9zaW5nbGVib290CisJCWV4aXN0cyBhdCBib290dGltZSwgb3IgaWYgaXQgaXMgZ2l2ZW4gYW4gYXJndW1lbnQgb2YgInNpbmdsZSIKKwkJdmlhIGVnLiBMSUxPLiBJZiAvZXRjL3NlY3VyZXNpbmdsZSBleGlzdHMgaXQgd2lsbCBhc2sgZm9yIHRoZQorCQlyb290IHBhc3N3b3JkIGJlZm9yZSBzdGFydGluZyBzaW5nbGUgdXNlci4KKword3JpdGUuYwkJQSB3cml0ZSgxKSBjb21tYW5kLCB1c2VkIHRvIHBhc3MgbWVzc2FnZXMgYmV0d2VlbiB1c2VycworCQlhdCBkaWZmZXJlbnQgdGVybWluYWxzLiBUaGlzIGNvZGUgZG91YmxlcyBhcyBjb2RlIGZvciAKKwkJYSB3YWxsKDEpIGNvbW1hbmQuIE1ha2UgYSBzeW1saW5rOiAvdXNyL2Jpbi93YWxsIC0+CisJCS91c3IvYmluL3dyaXRlIGZvciB0aGlzLgorCittZXNnCQlBIHRpbnkgc2hlbGxzY3JpcHQsIHNvIHlvdSBjYW4gYXZvaWQgdGhhdCBvdGhlciBwZW9wbGUgd3JpdGUKKwkJdG8geW91ciBzaGVsbC4KKwordXNlcnMJCUFub3RoZXIgc2NyaXB0IHRoYXQgdXNlcyBhd2soMSkgYW5kIHRyKDEpIHRvIHByb2Nlc3MgdGhlCisJCW91dHB1dCBmcm9tIHdobygxKSBpbnRvIGEgb25lLWxpbmVyLgorCQlJZiB5b3UgZG9uJ3QgaGF2ZSBhd2ssIGJ1dCBoYXZlIFBlcmwsIHRoaXMgZG9lcyB0aGUgc2FtZToKKworCQl3aG8gfCBwZXJsIC1hbmUgJ3ByaW50ICIkRlswXSAiJzsgZWNobyAiIgorCitwYXRobmFtZXMuaDoKKwkJSGVhZGVyLgorCitwYXJhbS5oCisJCUhlYWRlciwgZXh0ZW5kZWQgd2l0aCBnZXRkdGFibGVzaXplKCkgbWFjcm8sIHNob3VsZCBnbworCQlpbiAvdXNyL2luY2x1ZGUvc3lzCisKK0J1aWxkaW5nLgorLS0tLS0tLS0tCitBICJtYWtlIGFsbCIgc2hvdWxkIGRvLiBBdCBsZWFzdCBpdCBkb2VzIGZvciBtZS4KKworSW5zdGFsbGF0aW9uOgorLS0tLS0tLS0tLS0tLQorCitsb2dpbgkJc2hvdWxkIGdvIGluIC9iaW4sIGlmIHlvdSBkb24ndCBsaWtlIHRoaXMgY2hhbmdlCisJCXBhdGhuYW1lcy5oIGFuZCByZWNvbXBpbGUgYXQgbGVhc3QgYWdldHR5LgorCitnZXR0eSwgaW5pdAlQdXQgdGhlbSBpbiBTQklORElSCisKK3dobywgaG9zdG5hbWUsIHdyaXRlLCB3YWxsLCBtZXNnLCB1c2VyczoKKwkJL3Vzci9iaW4KKworc2VjdXJldHR5CWxvZ2luIG5lZWRzIHRoaXMgaW4gL2V0YywgZGVmaW5lcyB3aGljaCB0dHlzIHRoYXQgcm9vdAorCQljYW4gbG9naW4gb24uIFRoaXMgc2hvdWxkICpuZXZlciogaW5jbHVkZSB0dHlzezEsMn0KKworaW5pdHRhYgkJdGhlIHNpbXBsZWluaXQgY29kZSBuZWVkcyB0aGlzIGluIC9ldGMuIE5vdGUgdGhhdCB0aGUgc3ludGF4CisJCW9mIC9ldGMvaW5pdHRhYiBoYXMgbGl0dGxlIHRvIGRvIHdpdGggdGhlIHN5bnRheCBvZiBhIHJlYWwKKwkJU3lzViBpbml0dGFiLiBFZGl0IHRoaXMgb25lIGZvciB5b3VyIGxvY2FsIHNldHVwLgorCitzaGVsbHMJCVRoZSBjaHNoIHByb2dyYW0gd2lsbCB1c2UgdGhpcyBpZiBpdCdzIHBsYWNlZCBpbiAvZXRjLiBJdAorCQlkZWZpbmVzIHRoZSB2YWxpZCBzaGVsbC1wcm9ncmFtcy4gSGF2ZSBvbmUgYWJzLiBwYXRoIG9uCisJCWVhY2ggbGluZS4KKworWW91IGNhbiBhbHNvIGRvIGEgIm1ha2UgaW5zdGFsbCIgYXMgcm9vdCwgYnV0IGRvbid0IGp1c3QgZG8gaXQgYmVjYXVzZSBJCitzYXkgc28sIGNoZWNrIHRoZSBNYWtlZmlsZSBmaXJzdC4KKworIk1ha2UgaW5zdGFsbCIgd2lsbCBpbnN0YWxsIG9ubHkgdGhlIG5ldyBiaW5hcmllcywgYW5kIG5vdCBtb3RkLCBpbml0dGFiLAorc2VjdXJldHR5IGFuZCBpc3N1ZS4gVG8gaW5zdGFsbCB0aGVzZSBjb25maWd1cmF0aW9uIGZpbGVzLCBkbyBhIAorIm1ha2UgSW5zdGFsbCIuCisKK0dldHR5IHJlcXVpcmVzIGEgL2Rldi9jb25zb2xlIHRvIHdyaXRlIGVycm9ycyB0by4gSSBqdXN0IG1hZGUgaXQgYSBzeW1saW5rCit0byAvZGV2L3R0eTEuIEJlY2F1c2Ugb2YgYSBidWcgaW4gdGhlIHR0eSBkcml2ZXIgdGhpcyBlcnJvcmxvZ2dpbmcgbWF5CitjYXVzZSB0aGUgc2hlbGwgb24gdHR5MSB0byBsb2dvdXQuCisKK0dldHR5IHdpbGwgcHJpbnQgdGhlIGNvbnRlbnRzIG9mIC9ldGMvaXNzdWUgaWYgaXQncyBwcmVzZW50IGJlZm9yZSBhc2tpbmcKK2ZvciB1c2VybmFtZS4gTG9naW4gd2lsbCBwcmludCB0aGUgY29udGVudHMgb2YgL2V0Yy9tb3RkIGFmdGVyIHN1Y2Nlc3NmdWwKK2xvZ2luLiBMb2dpbiBkb2Vzbid0IHByaW50IC9ldGMvbW90ZCwgYW5kIGRvZXNuJ3QgY2hlY2sgZm9yIG1haWwgaWYKK34vLmh1c2hsb2dpbiBpcyBwcmVzZW50IGFuZCB3b3JsZCByZWFkYWJsZS4KKworSWYgL2V0Yy9ub2xvZ2luIGlzIHByZXNlbnQgdGhlbiBsb2dpbiB3aWxsIHByaW50IGl0cyBjb250ZW50cyBhbmQgZGlzYWxsb3cKK2FueSBsb2dpbnMgZXhjZXB0IHJvb3QuCitJdCBtaWdodCBiZSBhIGdvb2QgaWRlYSB0byBoYXZlIGEgInJtIC1mIC9ldGMvbm9sb2dpbiIgbGluZSBpbiBvbmUncyAKKy9ldGMvcmMgZmlsZS4KKworSWYgL2V0Yy9zZWN1cmV0dHkgaXMgcHJlc2VudCBpdCBkZWZpbmVzIHdoaWNoIHR0eSdzIHRoYXQgcm9vdCBjYW4gbG9naW4gb24uCisKKyAgIC0gUGV0ZXIgKHBvZUBkYWltaS5hYXUuZGspCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9hZ2V0dHkuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2FnZXR0eS44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NjEzNzQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9hZ2V0dHkuOApAQCAtMCwwICsxLDMwOSBAQAorLlRIIEFHRVRUWSA4IAorLlNIIE5BTUUKK2FnZXR0eSBcLSBhbHRlcm5hdGl2ZSBMaW51eCBnZXR0eQorCisuU0ggU1lOT1BTSVMKKy5CUiAiYWdldHR5ICIgW1wtOGloTG1uVXddCisuUkkgIlstZiAiIGlzc3VlX2ZpbGUgXQorLlJJICJbLWwgIiBsb2dpbl9wcm9ncmFtIF0KKy5SSSAiWy1JICIgaW5pdCBdCisuUkkgIlstdCAiIHRpbWVvdXQgXQorLlJJICJbLUggIiBsb2dpbl9ob3N0IF0KKy5JIHBvcnQKKy5JIGJhdWRfcmF0ZSwuLi4KKy5SSSBbIHRlcm0gXQorLmJyCisuQlIgImFnZXR0eSAiIFtcLThpaExtbnddCisuUkkgIlstZiAiIGlzc3VlX2ZpbGUgXQorLlJJICJbLWwgIiBsb2dpbl9wcm9ncmFtIF0KKy5SSSAiWy1JICIgaW5pdCBdCisuUkkgIlstdCAiIHRpbWVvdXQgXQorLlJJICJbLUggIiBsb2dpbl9ob3N0IF0KKy5JIGJhdWRfcmF0ZSwuLi4KKy5JIHBvcnQKKy5SSSBbIHRlcm0gXQorCisuU0ggREVTQ1JJUFRJT04KKy5hZAorLmZpCitcZkJhZ2V0dHlcZlAgb3BlbnMgYSB0dHkgcG9ydCwgcHJvbXB0cyBmb3IgYSBsb2dpbiBuYW1lIGFuZCBpbnZva2VzCit0aGUgL2Jpbi9sb2dpbiBjb21tYW5kLiBJdCBpcyBub3JtYWxseSBpbnZva2VkIGJ5IFxmSWluaXQoOClcZlAuCisKK1xmQmFnZXR0eVxmUCBoYXMgc2V2ZXJhbCBcZklub24tc3RhbmRhcmRcZlAgZmVhdHVyZXMgdGhhdCBhcmUgdXNlZnVsCitmb3IgaGFyZC13aXJlZCBhbmQgZm9yIGRpYWwtaW4gbGluZXM6CisuSVAgbworQWRhcHRzIHRoZSB0dHkgc2V0dGluZ3MgdG8gcGFyaXR5IGJpdHMgYW5kIHRvIGVyYXNlLCBraWxsLAorZW5kLW9mLWxpbmUgYW5kIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIHdoZW4gaXQgcmVhZHMgYSBsb2dpbiBuYW1lLgorVGhlIHByb2dyYW0gY2FuIGhhbmRsZSA3LWJpdCBjaGFyYWN0ZXJzIHdpdGggZXZlbiwgb2RkLCBub25lIG9yIHNwYWNlCitwYXJpdHksIGFuZCA4LWJpdCBjaGFyYWN0ZXJzIHdpdGggbm8gcGFyaXR5LiBUaGUgZm9sbG93aW5nIHNwZWNpYWwKK2NoYXJhY3RlcnMgYXJlIHJlY29nbml6ZWQ6IEAgYW5kIENvbnRyb2wtVSAoa2lsbCk7ICMsIERFTCBhbmQKK2JhY2sgc3BhY2UgKGVyYXNlKTsgY2FycmlhZ2UgcmV0dXJuIGFuZCBsaW5lIGZlZWQgKGVuZCBvZiBsaW5lKS4KKy5JUCBvCitPcHRpb25hbGx5IGRlZHVjZXMgdGhlIGJhdWQgcmF0ZSBmcm9tIHRoZSBDT05ORUNUIG1lc3NhZ2VzIHByb2R1Y2VkIGJ5CitIYXllcyh0bSktY29tcGF0aWJsZSBtb2RlbXMuCisuSVAgbworT3B0aW9uYWxseSBkb2VzIG5vdCBoYW5nIHVwIHdoZW4gaXQgaXMgZ2l2ZW4gYW4gYWxyZWFkeSBvcGVuZWQgbGluZQorKHVzZWZ1bCBmb3IgY2FsbC1iYWNrIGFwcGxpY2F0aW9ucykuCisuSVAgbworT3B0aW9uYWxseSBkb2VzIG5vdCBkaXNwbGF5IHRoZSBjb250ZW50cyBvZiB0aGUgXGZJL2V0Yy9pc3N1ZVxmUCBmaWxlLgorLklQIG8KK09wdGlvbmFsbHkgZGlzcGxheXMgYW4gYWx0ZXJuYXRpdmUgaXNzdWUgZmlsZSBpbnN0ZWFkIG9mIFxmSS9ldGMvaXNzdWVcZlAuCisuSVAgbworT3B0aW9uYWxseSBkb2VzIG5vdCBhc2sgZm9yIGEgbG9naW4gbmFtZS4KKy5JUCBvCitPcHRpb25hbGx5IGludm9rZXMgYSBub24tc3RhbmRhcmQgbG9naW4gcHJvZ3JhbSBpbnN0ZWFkIG9mCitcZkkvYmluL2xvZ2luXGZQLgorLklQIG8KK09wdGlvbmFsbHkgdHVybnMgb24gaGFyZC13YXJlIGZsb3cgY29udHJvbAorLklQIG8KK09wdGlvbmFsbHkgZm9yY2VzIHRoZSBsaW5lIHRvIGJlIGxvY2FsIHdpdGggbm8gbmVlZCBmb3IgY2FycmllciBkZXRlY3QuCisuUFAKK1RoaXMgcHJvZ3JhbSBkb2VzIG5vdCB1c2UgdGhlIFxmSS9ldGMvZ2V0dHlkZWZzXGZQIChTeXN0ZW0gVikgb3IKK1xmSS9ldGMvZ2V0dHl0YWJcZlAgKFN1bk9TIDQpIGZpbGVzLgorLlNIIEFSR1VNRU5UUworLm5hCisubmYKKy5maQorLmFkCisuVFAKK3BvcnQKK0EgcGF0aCBuYW1lIHJlbGF0aXZlIHRvIHRoZSBcZkkvZGV2XGZQIGRpcmVjdG9yeS4gSWYgYSAiLSIgaXMKK3NwZWNpZmllZCwgXGZCYWdldHR5XGZQIGFzc3VtZXMgdGhhdCBpdHMgc3RhbmRhcmQgaW5wdXQgaXMKK2FscmVhZHkgY29ubmVjdGVkIHRvIGEgdHR5IHBvcnQgYW5kIHRoYXQgYSBjb25uZWN0aW9uIHRvIGEKK3JlbW90ZSB1c2VyIGhhcyBhbHJlYWR5IGJlZW4gZXN0YWJsaXNoZWQuCisuc3AKK1VuZGVyIFN5c3RlbSBWLCBhICItIiBcZklwb3J0XGZQIGFyZ3VtZW50IHNob3VsZCBiZSBwcmVjZWRlZAorYnkgYSAiLS0iLgorLlRQCitiYXVkX3JhdGUsLi4uCitBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG9uZSBvciBtb3JlIGJhdWQgcmF0ZXMuIEVhY2ggdGltZQorXGZCYWdldHR5XGZQIHJlY2VpdmVzIGEgQlJFQUsgY2hhcmFjdGVyIGl0IGFkdmFuY2VzIHRocm91Z2gKK3RoZSBsaXN0LCB3aGljaCBpcyB0cmVhdGVkIGFzIGlmIGl0IHdlcmUgY2lyY3VsYXIuCisuc3AKK0JhdWQgcmF0ZXMgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiBkZXNjZW5kaW5nIG9yZGVyLCBzbyB0aGF0IHRoZQorbnVsbCBjaGFyYWN0ZXIgKEN0cmwtQCkgY2FuIGFsc28gYmUgdXNlZCBmb3IgYmF1ZCByYXRlIHN3aXRjaGluZy4KKy5UUAordGVybQorVGhlIHZhbHVlIHRvIGJlIHVzZWQgZm9yIHRoZSBURVJNIGVudmlyb25tZW50IHZhcmlhYmxlLiBUaGlzIG92ZXJyaWRlcword2hhdGV2ZXIgaW5pdCg4KSBtYXkgaGF2ZSBzZXQsIGFuZCBpcyBpbmhlcml0ZWQgYnkgbG9naW4gYW5kIHRoZSBzaGVsbC4KKy5TSCBPUFRJT05TCisubmEKKy5uZgorLmZpCisuYWQKKy5UUAorXC04CitBc3N1bWUgdGhhdCB0aGUgdHR5IGlzIDgtYml0IGNsZWFuLCBoZW5jZSBkaXNhYmxlIHBhcml0eSBkZXRlY3Rpb24uCisuVFAKK1wtaAorRW5hYmxlIGhhcmR3YXJlIChSVFMvQ1RTKSBmbG93IGNvbnRyb2wuIEl0IGlzIGxlZnQgdXAgdG8gdGhlCithcHBsaWNhdGlvbiB0byBkaXNhYmxlIHNvZnR3YXJlIChYT04vWE9GRikgZmxvdyBwcm90b2NvbCB3aGVyZQorYXBwcm9wcmlhdGUuCisuVFAKK1wtaQorRG8gbm90IGRpc3BsYXkgdGhlIGNvbnRlbnRzIG9mIFxmSS9ldGMvaXNzdWVcZlAgKG9yIG90aGVyKSBiZWZvcmUgd3JpdGluZyB0aGUKK2xvZ2luIHByb21wdC4gVGVybWluYWxzIG9yIGNvbW11bmljYXRpb25zIGhhcmR3YXJlIG1heSBiZWNvbWUgY29uZnVzZWQKK3doZW4gcmVjZWl2aW5nIGxvdHMgb2YgdGV4dCBhdCB0aGUgd3JvbmcgYmF1ZCByYXRlOyBkaWFsLXVwIHNjcmlwdHMKK21heSBmYWlsIGlmIHRoZSBsb2dpbiBwcm9tcHQgaXMgcHJlY2VkZWQgYnkgdG9vIG11Y2ggdGV4dC4KKy5UUAorXC1mIFxmSWlzc3VlX2ZpbGVcZlAKK0Rpc3BsYXkgdGhlIGNvbnRlbnRzIG9mIFxmSWlzc3VlX2ZpbGVcZlAgaW5zdGVhZCBvZiBcZkkvZXRjL2lzc3VlXGZQLgorVGhpcyBhbGxvd3MgY3VzdG9tIG1lc3NhZ2VzIHRvIGJlIGRpc3BsYXllZCBvbiBkaWZmZXJlbnQgdGVybWluYWxzLgorVGhlIFwtaSBvcHRpb24gd2lsbCBvdmVycmlkZSB0aGlzIG9wdGlvbi4KKy5UUAorXC1JIFxmSWluaXRzdHJpbmdcZlAKK1NldCBhbiBpbml0aWFsIHN0cmluZyB0byBiZSBzZW50IHRvIHRoZSB0dHkgb3IgbW9kZW0gYmVmb3JlIHNlbmRpbmcKK2FueXRoaW5nIGVsc2UuIFRoaXMgbWF5IGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSBhIG1vZGVtLiAgTm9uIHByaW50YWJsZQorY2hhcmFjdGVycyBtYXkgYmUgc2VudCBieSB3cml0aW5nIHRoZWlyIG9jdGFsIGNvZGUgcHJlY2VkZWQgYnkgYQorYmFja3NsYXNoIChcXCkuIEZvciBleGFtcGxlIHRvIHNlbmQgYSBsaW5lZmVlZCBjaGFyYWN0ZXIgKEFTQ0lJIDEwLAorb2N0YWwgMDEyKSB3cml0ZSBcXDAxMi4KKy5QUAorLlRQCitcLWwgXGZJbG9naW5fcHJvZ3JhbVxmUAorSW52b2tlIHRoZSBzcGVjaWZpZWQgXGZJbG9naW5fcHJvZ3JhbVxmUCBpbnN0ZWFkIG9mIC9iaW4vbG9naW4uCitUaGlzIGFsbG93cyB0aGUgdXNlIG9mIGEgbm9uLXN0YW5kYXJkIGxvZ2luIHByb2dyYW0gKGZvciBleGFtcGxlLAorb25lIHRoYXQgYXNrcyBmb3IgYSBkaWFsLXVwIHBhc3N3b3JkIG9yIHRoYXQgdXNlcyBhIGRpZmZlcmVudAorcGFzc3dvcmQgZmlsZSkuCisuVFAKK1wtSCBcZklsb2dpbl9ob3N0XGZQCitXcml0ZSB0aGUgc3BlY2lmaWVkIFxmSWxvZ2luX2hvc3RcZlAgaW50byB0aGUgdXRtcCBmaWxlLiAoTm9ybWFsbHksCitubyBsb2dpbiBob3N0IGlzIGdpdmVuLCBzaW5jZSBcZkJhZ2V0dHlcZlAgaXMgdXNlZCBmb3IgbG9jYWwgaGFyZHdpcmVkCitjb25uZWN0aW9ucyBhbmQgY29uc29sZXMuIEhvd2V2ZXIsIHRoaXMgb3B0aW9uIGNhbiBiZSB1c2VmdWwgZm9yIAoraWRlbnRpZnlpbmcgdGVybWluYWwgY29uY2VudHJhdG9ycyBhbmQgdGhlIGxpa2UuCisuVFAKK1wtbQorVHJ5IHRvIGV4dHJhY3QgdGhlIGJhdWQgcmF0ZSB0aGUgQ09OTkVDVCBzdGF0dXMgbWVzc2FnZQorcHJvZHVjZWQgYnkgSGF5ZXModG0pXC1jb21wYXRpYmxlIG1vZGVtcy4gVGhlc2Ugc3RhdHVzCittZXNzYWdlcyBhcmUgb2YgdGhlIGZvcm06ICI8anVuaz48c3BlZWQ+PGp1bms+Ii4KK1xmQmFnZXR0eVxmUCBhc3N1bWVzIHRoYXQgdGhlIG1vZGVtIGVtaXRzIGl0cyBzdGF0dXMgbWVzc2FnZSBhdAordGhlIHNhbWUgc3BlZWQgYXMgc3BlY2lmaWVkIHdpdGggKHRoZSBmaXJzdCkgXGZJYmF1ZF9yYXRlXGZQIHZhbHVlCitvbiB0aGUgY29tbWFuZCBsaW5lLgorLnNwCitTaW5jZSB0aGUgXGZJXC1tXGZQIGZlYXR1cmUgbWF5IGZhaWwgb24gaGVhdmlseS1sb2FkZWQgc3lzdGVtcywKK3lvdSBzdGlsbCBzaG91bGQgZW5hYmxlIEJSRUFLIHByb2Nlc3NpbmcgYnkgZW51bWVyYXRpbmcgYWxsCitleHBlY3RlZCBiYXVkIHJhdGVzIG9uIHRoZSBjb21tYW5kIGxpbmUuCisuVFAgCitcLW4gCitEbyBub3QgcHJvbXB0IHRoZSB1c2VyIGZvciBhIGxvZ2luIG5hbWUuIFRoaXMgY2FuIGJlIHVzZWQgaW4KK2Nvbm5lY3Rpb24gd2l0aCBcLWwgb3B0aW9uIHRvIGludm9rZSBhIG5vbi1zdGFuZGFyZCBsb2dpbiBwcm9jZXNzIHN1Y2gKK2FzIGEgQkJTIHN5c3RlbS4gTm90ZSB0aGF0IHdpdGggdGhlIFwtbiBvcHRpb24sIFxmQmFnZXR0eVxmUiBnZXRzIG5vIGlucHV0IGZyb20KK3VzZXIgd2hvIGxvZ3MgaW4gYW5kIHRoZXJlZm9yZSB3b24ndCBiZSBhYmxlIHRvIGZpZ3VyZSBvdXQgcGFyaXR5LAorY2hhcmFjdGVyIHNpemUsIGFuZCBuZXdsaW5lIHByb2Nlc3Npbmcgb2YgdGhlIGNvbm5lY3Rpb24uIEl0IGRlZmF1bHRzIHRvIAorc3BhY2UgcGFyaXR5LCA3IGJpdCBjaGFyYWN0ZXJzLCBhbmQgQVNDSUkgQ1IgKDEzKSBlbmQtb2YtbGluZSBjaGFyYWN0ZXIuCitCZXdhcmUgdGhhdCB0aGUgcHJvZ3JhbSB0aGF0IFxmQmFnZXR0eVxmUiBzdGFydHMgKHVzdWFsbHkgL2Jpbi9sb2dpbikKK2lzIHJ1biBhcyByb290LgorLlRQCitcLXQgXGZJdGltZW91dFxmUAorVGVybWluYXRlIGlmIG5vIHVzZXIgbmFtZSBjb3VsZCBiZSByZWFkIHdpdGhpbiBcZkl0aW1lb3V0XGZQCitzZWNvbmRzLiBUaGlzIG9wdGlvbiBzaG91bGQgcHJvYmFibHkgbm90IGJlIHVzZWQgd2l0aCBoYXJkLXdpcmVkCitsaW5lcy4KKy5UUAorXC1MCitGb3JjZSB0aGUgbGluZSB0byBiZSBhIGxvY2FsIGxpbmUgd2l0aCBubyBuZWVkIGZvciBjYXJyaWVyIGRldGVjdC4gVGhpcyBjYW4KK2JlIHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgbG9jYWxseSBhdHRhY2hlZCB0ZXJtaW5hbCB3aGVyZSB0aGUgc2VyaWFsIGxpbmUKK2RvZXMgbm90IHNldCB0aGUgY2FycmllciBkZXRlY3Qgc2lnbmFsLgorLlRQCitcLVUKK1R1cm4gb24gc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIGFuIHVwcGVyY2FzZSBvbmx5IHRlcm1pbmFsLiAgVGhpcyBzZXR0aW5nIHdpbGwKK2RldGVjdCBhIGxvZ2luIG5hbWUgY29udGFpbmluZyBvbmx5IGNhcGl0YWxzIGFzIGluZGljYXRpbmcgYW4gdXBwZXJjYXNlCitvbmx5IHRlcm1pbmFsIGFuZCB0dXJuIG9uIHNvbWUgdXBwZXIgdG8gbG93ZXIgY2FzZSBjb252ZXJzaW9ucy4gIE5vdGUgdGhhdAordGhpcyBoYXMgbm8gc3VwcG9ydCBmb3IgYW55IHVuaWNvZGUgY2hhcmFjdGVycy4KKy5UUAorXC13IAorV2FpdCBmb3IgdGhlIHVzZXIgb3IgdGhlIG1vZGVtIHRvIHNlbmQgYSBjYXJyaWFnZS1yZXR1cm4gb3IgYQorbGluZWZlZWQgY2hhcmFjdGVyIGJlZm9yZSBzZW5kaW5nIHRoZSBcZkkvZXRjL2lzc3VlXGZQIChvciBvdGhlcikgZmlsZQorYW5kIHRoZSBsb2dpbiBwcm9tcHQuIFZlcnkgdXNlZnVsIGluIGNvbm5lY3Rpb24gd2l0aCB0aGUgXC1JIG9wdGlvbi4KKy5QUAorLlNIIEVYQU1QTEVTCitUaGlzIHNlY3Rpb24gc2hvd3MgZXhhbXBsZXMgZm9yIHRoZSBwcm9jZXNzIGZpZWxkIG9mIGFuIGVudHJ5IGluIHRoZQorXGZJL2V0Yy9pbml0dGFiXGZQIGZpbGUuICBZb3UnbGwgaGF2ZSB0byBwcmVwZW5kIGFwcHJvcHJpYXRlIHZhbHVlcworZm9yIHRoZSBvdGhlciBmaWVsZHMuICBTZWUgXGZJaW5pdHRhYig1KVxmUCBmb3IgbW9yZSBkZXRhaWxzLgorCitGb3IgYSBoYXJkLXdpcmVkIGxpbmUgb3IgYSBjb25zb2xlIHR0eToKKy50aSArNQorL3NiaW4vYWdldHR5IDk2MDAgdHR5UzEKKworRm9yIGEgZGlyZWN0bHkgY29ubmVjdGVkIHRlcm1pbmFsIHdpdGhvdXQgcHJvcGVyIGNhcnJpYWdlIGRldGVjdCB3aXJpbmc6CisodHJ5IHRoaXMgaWYgeW91ciB0ZXJtaW5hbCBqdXN0IHNsZWVwcyBpbnN0ZWFkIG9mIGdpdmluZyB5b3UgYSBwYXNzd29yZDoKK3Byb21wdC4pCisudGkgKzUKKy9zYmluL2FnZXR0eSBcLUwgOTYwMCB0dHlTMSB2dDEwMAorCitGb3IgYSBvbGQgc3R5bGUgZGlhbC1pbiBsaW5lIHdpdGggYSA5NjAwLzI0MDAvMTIwMCBiYXVkIG1vZGVtOgorLnRpICs1Cisvc2Jpbi9hZ2V0dHkgXC1tdDYwIHR0eVMxIDk2MDAsMjQwMCwxMjAwCisKK0ZvciBhIEhheWVzIG1vZGVtIHdpdGggYSBmaXhlZCAxMTUyMDAgYnBzIGludGVyZmFjZSB0byB0aGUgbWFjaGluZToKKyh0aGUgZXhhbXBsZSBpbml0IHN0cmluZyB0dXJucyBvZmYgbW9kZW0gZWNobyBhbmQgcmVzdWx0IGNvZGVzLCBtYWtlcworbW9kZW0vY29tcHV0ZXIgRENEIHRyYWNrIG1vZGVtL21vZGVtIERDRCwgbWFrZXMgYSBEVFIgZHJvcCBjYXVzZSBhIAorZGlzLWNvbm5lY3Rpb24gYW5kIHR1cm4gb24gYXV0by1hbnN3ZXIgYWZ0ZXIgMSByaW5nLikKKy50aSArNQorL3NiaW4vYWdldHR5IFwtdyBcLUkgJ0FURTBRMSZEMiZDMVMwPTFcXDAxNScgMTE1MjAwIHR0eVMxCisKKy5TSCBJU1NVRSBFU0NBUEVTCitUaGUgaXNzdWUtZmlsZSAoXGZJL2V0Yy9pc3N1ZVxmUCBvciB0aGUgZmlsZSBzZXQgd2l0aCB0aGUgXC1mIG9wdGlvbikKK21heSBjb250YWluIGNlcnRhaW4gZXNjYXBlIGNvZGVzIHRvIGRpc3BsYXkgdGhlIHN5c3RlbSBuYW1lLCBkYXRlIGFuZAordGltZSBldGMuIEFsbCBlc2NhcGUgY29kZXMgY29uc2lzdCBvZiBhIGJhY2tzbGFzaCAoXFwpIGltbWVkaWF0ZWx5Citmb2xsb3dlZCBieSBvbmUgb2YgdGhlIGxldHRlcnMgZXhwbGFpbmVkIGJlbG93LgorCisuVFAKK2IKK0luc2VydCB0aGUgYmF1ZHJhdGUgb2YgdGhlIGN1cnJlbnQgbGluZS4KKy5UUAorZAorSW5zZXJ0IHRoZSBjdXJyZW50IGRhdGUuCisuVFAKK3MKK0luc2VydCB0aGUgc3lzdGVtIG5hbWUsIHRoZSBuYW1lIG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtLgorLlRQCitsCitJbnNlcnQgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgdHR5IGxpbmUuCisuVFAKK20KK0luc2VydCB0aGUgYXJjaGl0ZWN0dXJlIGlkZW50aWZpZXIgb2YgdGhlIG1hY2hpbmUsIGVnLiBpNDg2CisuVFAKK24KK0luc2VydCB0aGUgbm9kZW5hbWUgb2YgdGhlIG1hY2hpbmUsIGFsc28ga25vd24gYXMgdGhlIGhvc3RuYW1lLgorLlRQCitvCitJbnNlcnQgdGhlIE5JUyBkb21haW5uYW1lIG9mIHRoZSBtYWNoaW5lLgorLlRQCitPCitJbnNlcnQgdGhlIEROUyBkb21haW5uYW1lIG9mIHRoZSBtYWNoaW5lLgorLlRQCityCitJbnNlcnQgdGhlIHJlbGVhc2UgbnVtYmVyIG9mIHRoZSBPUywgZWcuIDEuMS45LgorLlRQCit0CitJbnNlcnQgdGhlIGN1cnJlbnQgdGltZS4KKy5UUAordQorSW5zZXJ0IHRoZSBudW1iZXIgb2YgY3VycmVudCB1c2VycyBsb2dnZWQgaW4uCisuVFAKK1UKK0luc2VydCB0aGUgc3RyaW5nICIxIHVzZXIiIG9yICI8bj4gdXNlcnMiIHdoZXJlIDxuPiBpcyB0aGUgbnVtYmVyIG9mIGN1cnJlbnQKK3VzZXJzIGxvZ2dlZCBpbi4KKy5UUAordgorSW5zZXJ0IHRoZSB2ZXJzaW9uIG9mIHRoZSBPUywgZWcuIHRoZSBidWlsZC1kYXRlIGV0Yy4KKy5UUAorRXhhbXBsZTogT24gbXkgc3lzdGVtLCB0aGUgZm9sbG93aW5nIFxmSS9ldGMvaXNzdWVcZlAgZmlsZToKKworLm5hCisubmYKKy50aSArLjUKK1RoaXMgaXMgXFxuLlxcbyAoXFxzIFxcbSBcXHIpIFxcdAorLlRQCitkaXNwbGF5cyBhcworCisudGkgKy41CitUaGlzIGlzIHRoaW5nb2wub3JjYW4uZGsgKExpbnV4IGkzODYgMS4xLjkpIDE4OjI5OjMwCisKKy5maQorCisuU0ggRklMRVMKKy5uYQorLm5mCisvdmFyL3J1bi91dG1wLCB0aGUgc3lzdGVtIHN0YXR1cyBmaWxlLgorL2V0Yy9pc3N1ZSwgcHJpbnRlZCBiZWZvcmUgdGhlIGxvZ2luIHByb21wdC4KKy9kZXYvY29uc29sZSwgcHJvYmxlbSByZXBvcnRzIChpZiBzeXNsb2coMykgaXMgbm90IHVzZWQpLgorL2V0Yy9pbml0dGFiLCBcZklpbml0XGZQKDgpIGNvbmZpZ3VyYXRpb24gZmlsZS4KKy5TSCBCVUdTCisuYWQKKy5maQorVGhlIGJhdWQtcmF0ZSBkZXRlY3Rpb24gZmVhdHVyZSAodGhlIFxmSS1tXGZQIG9wdGlvbikgcmVxdWlyZXMgdGhhdAorXGZCYWdldHR5XGZQIGJlIHNjaGVkdWxlZCBzb29uIGVub3VnaCBhZnRlciBjb21wbGV0aW9uIG9mIGEgZGlhbC1pbgorY2FsbCAod2l0aGluIDMwIG1zIHdpdGggbW9kZW1zIHRoYXQgdGFsayBhdCAyNDAwIGJhdWQpLiBGb3Igcm9idXN0bmVzcywKK2Fsd2F5cyB1c2UgdGhlIFxmSVwtbVxmUCBvcHRpb24gaW4gY29tYmluYXRpb24gd2l0aCBhIG11bHRpcGxlIGJhdWQKK3JhdGUgY29tbWFuZC1saW5lIGFyZ3VtZW50LCBzbyB0aGF0IEJSRUFLIHByb2Nlc3NpbmcgaXMgZW5hYmxlZC4KKworVGhlIHRleHQgaW4gdGhlIFxmSS9ldGMvaXNzdWVcZlAgZmlsZSAob3Igb3RoZXIpIGFuZCB0aGUgbG9naW4gcHJvbXB0CithcmUgYWx3YXlzIG91dHB1dCB3aXRoIDctYml0IGNoYXJhY3RlcnMgYW5kIHNwYWNlIHBhcml0eS4KKworVGhlIGJhdWQtcmF0ZSBkZXRlY3Rpb24gZmVhdHVyZSAodGhlIFxmSS1tXGZQIG9wdGlvbikgcmVxdWlyZXMgdGhhdAordGhlIG1vZGVtIGVtaXRzIGl0cyBzdGF0dXMgbWVzc2FnZSBcZklhZnRlclxmUCByYWlzaW5nIHRoZSBEQ0QgbGluZS4KKy5TSCBESUFHTk9TVElDUworLmFkCisuZmkKK0RlcGVuZGluZyBvbiBob3cgdGhlIHByb2dyYW0gd2FzIGNvbmZpZ3VyZWQsIGFsbCBkaWFnbm9zdGljcyBhcmUKK3dyaXR0ZW4gdG8gdGhlIGNvbnNvbGUgZGV2aWNlIG9yIHJlcG9ydGVkIHZpYSB0aGUgc3lzbG9nKDMpIGZhY2lsaXR5LgorRXJyb3IgbWVzc2FnZXMgYXJlIHByb2R1Y2VkIGlmIHRoZSBcZklwb3J0XGZQIGFyZ3VtZW50IGRvZXMgbm90CitzcGVjaWZ5IGEgdGVybWluYWwgZGV2aWNlOyBpZiB0aGVyZSBpcyBubyB1dG1wIGVudHJ5IGZvciB0aGUKK2N1cnJlbnQgcHJvY2VzcyAoU3lzdGVtIFYgb25seSk7IGFuZCBzbyBvbi4KKy5TSCBBVVRIT1IoUykKKy5uYQorLm5mCitXLlouIFZlbmVtYSA8d2lldHNlQHd6di53aW4udHVlLm5sPgorRWluZGhvdmVuIFVuaXZlcnNpdHkgb2YgVGVjaG5vbG9neQorRGVwYXJ0bWVudCBvZiBNYXRoZW1hdGljcyBhbmQgQ29tcHV0ZXIgU2NpZW5jZQorRGVuIERvbGVjaCAyLCBQLk8uIEJveCA1MTMsIDU2MDAgTUIgRWluZGhvdmVuLCBUaGUgTmV0aGVybGFuZHMKKworUGV0ZXIgT3JiYWVrIDxwb2VAZGFpbWkuYWF1LmRrPgorTGludXggcG9ydCBhbmQgbW9yZSBvcHRpb25zLiBTdGlsbCBtYWludGFpbnMgdGhlIGNvZGUuCisKK0VyaWMgUmFzbXVzc2VuIDxlYXJAdXNmaXJzdC5vcmc+CitBZGRlZCBcLWYgb3B0aW9uIHRvIGRpc3BsYXkgY3VzdG9tIGxvZ2luIG1lc3NhZ2VzIG9uIGRpZmZlcmVudCB0ZXJtaW5hbHMuCisKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBhZ2V0dHkgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9hZ2V0dHkuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2FnZXR0eS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5YTFmZDMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9hZ2V0dHkuYwpAQCAtMCwwICsxLDEyODIgQEAKKy8qIGFnZXR0eS5jIC0gYW5vdGhlciBnZXR0eSBwcm9ncmFtIGZvciBMaW51eC4gQnkgVy4gWi4gVmVuZW1hIDE5ODkKKyAgIFBvcnRlZCB0byBMaW51eCBieSBQZXRlciBPcmJhZWsgPHBvZUBkYWltaS5hYXUuZGs+CisgICBUaGlzIHByb2dyYW0gaXMgZnJlZWx5IGRpc3RyaWJ1dGFibGUuIFRoZSBlbnRpcmUgbWFuLXBhZ2UgdXNlZCB0bworICAgYmUgaGVyZS4gTm93IHJlYWQgdGhlIHJlYWwgbWFuLXBhZ2UgYWdldHR5LjggaW5zdGVhZC4KKworICAgLWYgb3B0aW9uIGFkZGVkIGJ5IEVyaWMgUmFzbXVzc2VuIDxlYXJAdXNmaXJzdC5vcmc+IC0gMTIvMjgvOTUKKyAgIAorICAgMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgICAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisKKyAgIDE5OTktMDUtMDUgVGhvcnN0ZW4gS3Jhbnprb3dza2kgPGRsOGJjdUBnbXgubmV0PgorICAgLSBlbmFibGUgaGFyZHdhcmUgZmxvdyBjb250cm9sIGJlZm9yZSBkaXNwbGF5aW5nIC9ldGMvaXNzdWUKKyAgIAorKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGVybWlvcy5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8dXRtcC5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxzeXMvZmlsZS5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxuZXRkYi5oPgorCisjaW5jbHVkZSAieHN0cm5jcHkuaCIKKyNpbmNsdWRlICJubHMuaCIKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKworI2lmZGVmIF9fbGludXhfXworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2RlZmluZSBVU0VfU1lTTE9HCisjZW5kaWYKKworIC8qIElmIFVTRV9TWVNMT0cgaXMgdW5kZWZpbmVkIGFsbCBkaWFnbm9zdGljcyBnbyBkaXJlY3RseSB0byAvZGV2L2NvbnNvbGUuICovCisKKyNpZmRlZglVU0VfU1lTTE9HCisjaW5jbHVkZSA8c3lzbG9nLmg+CisjZW5kaWYKKworIC8qCisgICogU29tZSBoZXVyaXN0aWNzIHRvIGZpbmQgb3V0IHdoYXQgZW52aXJvbm1lbnQgd2UgYXJlIGluOiBpZiBpdCBpcyBub3QKKyAgKiBTeXN0ZW0gViwgYXNzdW1lIGl0IGlzIFN1bk9TIDQuCisgICovCisKKyNpZmRlZiBMT0dJTl9QUk9DRVNTCQkJLyogZGVmaW5lZCBpbiBTeXN0ZW0gViB1dG1wLmggKi8KKyNkZWZpbmUJU1lTVl9TVFlMRQkJCS8qIHNlbGVjdCBTeXN0ZW0gViBzdHlsZSBnZXR0eSAqLworI2VuZGlmCisKKyAvKgorICAqIFRoaW5ncyB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5LgorICAqIAorICAqIElmIElTU1VFIGlzIG5vdCBkZWZpbmVkLCBhZ2V0dHkgd2lsbCBuZXZlciBkaXNwbGF5IHRoZSBjb250ZW50cyBvZiB0aGUKKyAgKiAvZXRjL2lzc3VlIGZpbGUuIFlvdSB3aWxsIG5vdCB3YW50IHRvIHNwaXQgb3V0IGxhcmdlICJpc3N1ZSIgZmlsZXMgYXQgdGhlCisgICogd3JvbmcgYmF1ZCByYXRlLiBSZWxldmFudCBmb3IgU3lzdGVtIFYgb25seS4KKyAgKiAKKyAgKiBZb3UgbWF5IGRpc2FncmVlIHdpdGggdGhlIGRlZmF1bHQgbGluZS1lZGl0aW5nIGV0Yy4gY2hhcmFjdGVycyBkZWZpbmVkCisgICogYmVsb3cuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgREVMIGNhbm5vdCBiZSB1c2VkIGZvciBpbnRlcnJ1cHQgZ2VuZXJhdGlvbgorICAqIGFuZCBmb3IgbGluZSBlZGl0aW5nIGF0IHRoZSBzYW1lIHRpbWUuCisgICovCisKKyNpZmRlZglTWVNWX1NUWUxFCisjZGVmaW5lCUlTU1VFICIvZXRjL2lzc3VlIgkJLyogZGlzcGxheWVkIGJlZm9yZSB0aGUgbG9naW4gcHJvbXB0ICovCisjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKyNlbmRpZgorCisjZGVmaW5lIExPR0lOICIgbG9naW46ICIJCS8qIGxvZ2luIHByb21wdCAqLworCisvKiBTb21lIHNob3J0aGFuZHMgZm9yIGNvbnRyb2wgY2hhcmFjdGVycy4gKi8KKworI2RlZmluZSBDVEwoeCkJCSh4IF4gMDEwMCkJLyogQXNzdW1lcyBBU0NJSSBkaWFsZWN0ICovCisjZGVmaW5lCUNSCQlDVEwoJ00nKQkvKiBjYXJyaWFnZSByZXR1cm4gKi8KKyNkZWZpbmUJTkwJCUNUTCgnSicpCS8qIGxpbmUgZmVlZCAqLworI2RlZmluZQlCUwkJQ1RMKCdIJykJLyogYmFjayBzcGFjZSAqLworI2RlZmluZQlERUwJCUNUTCgnPycpCS8qIGRlbGV0ZSAqLworCisvKiBEZWZhdWx0cyBmb3IgbGluZS1lZGl0aW5nIGV0Yy4gY2hhcmFjdGVyczsgeW91IG1heSB3YW50IHRvIGNoYW5nZSB0aGlzLiAqLworCisjZGVmaW5lIERFRl9FUkFTRQlERUwJCS8qIGRlZmF1bHQgZXJhc2UgY2hhcmFjdGVyICovCisjZGVmaW5lIERFRl9JTlRSCUNUTCgnQycpCS8qIGRlZmF1bHQgaW50ZXJydXB0IGNoYXJhY3RlciAqLworI2RlZmluZSBERUZfUVVJVAlDVEwoJ1xcJykJLyogZGVmYXVsdCBxdWl0IGNoYXIgKi8KKyNkZWZpbmUgREVGX0tJTEwJQ1RMKCdVJykJLyogZGVmYXVsdCBraWxsIGNoYXIgKi8KKyNkZWZpbmUgREVGX0VPRgkJQ1RMKCdEJykJLyogZGVmYXVsdCBFT0YgY2hhciAqLworI2RlZmluZSBERUZfRU9MCQkwCisjZGVmaW5lIERFRl9TV0lUQ0gJMAkJLyogZGVmYXVsdCBzd2l0Y2ggY2hhciAqLworCisjaWZuZGVmIE1BWEhPU1ROQU1FTEVOCisjIGlmZGVmIEhPU1RfTkFNRV9NQVgKKyMgIGRlZmluZSBNQVhIT1NUTkFNRUxFTiBIT1NUX05BTUVfTUFYCisjIGVsc2UKKyMgIGRlZmluZSBNQVhIT1NUTkFNRUxFTiA2NAorIyBlbmRpZgorI2VuZGlmCisKKyAvKgorICAqIFdoZW4gbXVsdGlwbGUgYmF1ZCByYXRlcyBhcmUgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUsIHRoZSBmaXJzdCBvbmUKKyAgKiB3ZSB3aWxsIHRyeSBpcyB0aGUgZmlyc3Qgb25lIHNwZWNpZmllZC4KKyAgKi8KKworI2RlZmluZQlGSVJTVF9TUEVFRAkwCisKKy8qIFN0b3JhZ2UgZm9yIGNvbW1hbmQtbGluZSBvcHRpb25zLiAqLworCisjZGVmaW5lCU1BWF9TUEVFRAkxMAkJLyogbWF4LiBuci4gb2YgYmF1ZCByYXRlcyAqLworCitzdHJ1Y3Qgb3B0aW9ucyB7CisgICAgaW50ICAgICBmbGFnczsJCQkvKiB0b2dnbGUgc3dpdGNoZXMsIHNlZSBiZWxvdyAqLworICAgIGludCAgICAgdGltZW91dDsJCQkvKiB0aW1lLW91dCBwZXJpb2QgKi8KKyAgICBjaGFyICAgKmxvZ2luOwkJCS8qIGxvZ2luIHByb2dyYW0gKi8KKyAgICBjaGFyICAgKnR0eTsJCQkvKiBuYW1lIG9mIHR0eSAqLworICAgIGNoYXIgICAqaW5pdHN0cmluZzsJCQkvKiBtb2RlbSBpbml0IHN0cmluZyAqLworICAgIGNoYXIgICAqaXNzdWU7CQkJLyogYWx0ZXJuYXRpdmUgaXNzdWUgZmlsZSAqLworICAgIGludCAgICAgbnVtc3BlZWQ7CQkJLyogbnVtYmVyIG9mIGJhdWQgcmF0ZXMgdG8gdHJ5ICovCisgICAgaW50ICAgICBzcGVlZHNbTUFYX1NQRUVEXTsJCS8qIGJhdWQgcmF0ZXMgdG8gYmUgdHJpZWQgKi8KKyAgICBpbnQgICAgIGVpZ2h0Yml0czsJCQkvKiBhc3N1bWUgOGJpdC1jbGVhbiB0dHkgKi8KK307CisKKyNkZWZpbmUJRl9QQVJTRQkJKDE8PDApCQkvKiBwcm9jZXNzIG1vZGVtIHN0YXR1cyBtZXNzYWdlcyAqLworI2RlZmluZQlGX0lTU1VFCQkoMTw8MSkJCS8qIGRpc3BsYXkgL2V0Yy9pc3N1ZSAqLworI2RlZmluZQlGX1JUU0NUUwkoMTw8MikJCS8qIGVuYWJsZSBSVFMvQ1RTIGZsb3cgY29udHJvbCAqLworI2RlZmluZSBGX0xPQ0FMCQkoMTw8MykJCS8qIGZvcmNlIGxvY2FsICovCisjZGVmaW5lIEZfSU5JVFNUUklORyAgICAoMTw8NCkJCS8qIGluaXRzdHJpbmcgaXMgc2V0ICovCisjZGVmaW5lIEZfV0FJVENSTEYJKDE8PDUpCQkvKiB3YWl0IGZvciBDUiBvciBMRiAqLworI2RlZmluZSBGX0NVU1RJU1NVRQkoMTw8NikJCS8qIGdpdmUgYWx0ZXJuYXRpdmUgaXNzdWUgZmlsZSAqLworI2RlZmluZSBGX05PUFJPTVBUCSgxPDw3KQkJLyogZG9uJ3QgYXNrIGZvciBsb2dpbiBuYW1lISAqLworI2RlZmluZSBGX0xDVUMJCSgxPDw4KQkJLyogU3VwcG9ydCBmb3IgKkxDVUMgc3R0eSBtb2RlcyAqLworCisvKiBTdG9yYWdlIGZvciB0aGluZ3MgZGV0ZWN0ZWQgd2hpbGUgdGhlIGxvZ2luIG5hbWUgd2FzIHJlYWQuICovCisKK3N0cnVjdCBjaGFyZGF0YSB7CisgICAgaW50ICAgICBlcmFzZTsJCQkvKiBlcmFzZSBjaGFyYWN0ZXIgKi8KKyAgICBpbnQgICAgIGtpbGw7CQkJLyoga2lsbCBjaGFyYWN0ZXIgKi8KKyAgICBpbnQgICAgIGVvbDsJCQkvKiBlbmQtb2YtbGluZSBjaGFyYWN0ZXIgKi8KKyAgICBpbnQgICAgIHBhcml0eTsJCQkvKiB3aGF0IHBhcml0eSBkaWQgd2Ugc2VlICovCisgICAgaW50ICAgICBjYXBzbG9jazsJCQkvKiB1cHBlciBjYXNlIHdpdGhvdXQgbG93ZXIgY2FzZSAqLworfTsKKworLyogSW5pdGlhbCB2YWx1ZXMgZm9yIHRoZSBhYm92ZS4gKi8KKworc3RydWN0IGNoYXJkYXRhIGluaXRfY2hhcmRhdGEgPSB7CisgICAgREVGX0VSQVNFLAkJCQkvKiBkZWZhdWx0IGVyYXNlIGNoYXJhY3RlciAqLworICAgIERFRl9LSUxMLAkJCQkvKiBkZWZhdWx0IGtpbGwgY2hhcmFjdGVyICovCisgICAgMTMsCQkJCQkvKiBkZWZhdWx0IGVvbCBjaGFyICovCisgICAgMCwJCQkJCS8qIHNwYWNlIHBhcml0eSAqLworICAgIDAsCQkJCQkvKiBubyBjYXBzbG9jayAqLworfTsKKworc3RydWN0IFNwZWVkdGFiIHsKKyAgICBsb25nICAgIHNwZWVkOworICAgIGludCAgICAgY29kZTsKK307CisKK3N0YXRpYyBzdHJ1Y3QgU3BlZWR0YWIgc3BlZWR0YWJbXSA9IHsKKyAgICB7IDUwLCBCNTAgfSwKKyAgICB7IDc1LCBCNzUgfSwKKyAgICB7IDExMCwgQjExMCB9LAorICAgIHsgMTM0LCBCMTM0IH0sCisgICAgeyAxNTAsIEIxNTAgfSwKKyAgICB7IDIwMCwgQjIwMCB9LAorICAgIHsgMzAwLCBCMzAwIH0sCisgICAgeyA2MDAsIEI2MDAgfSwKKyAgICB7IDEyMDAsIEIxMjAwIH0sCisgICAgeyAxODAwLCBCMTgwMCB9LAorICAgIHsgMjQwMCwgQjI0MDAgfSwKKyAgICB7IDQ4MDAsIEI0ODAwIH0sCisgICAgeyA5NjAwLCBCOTYwMCB9LAorI2lmZGVmCUIxOTIwMAorICAgIHsgMTkyMDAsIEIxOTIwMCB9LAorI2VuZGlmCisjaWZkZWYJQjM4NDAwCisgICAgeyAzODQwMCwgQjM4NDAwIH0sCisjZW5kaWYKKyNpZmRlZglFWFRBCisgICAgeyAxOTIwMCwgRVhUQSB9LAorI2VuZGlmCisjaWZkZWYJRVhUQgorICAgIHsgMzg0MDAsIEVYVEIgfSwKKyNlbmRpZgorI2lmZGVmIEI1NzYwMAorICAgIHsgNTc2MDAsIEI1NzYwMCB9LAorI2VuZGlmCisjaWZkZWYgQjExNTIwMAorICAgIHsgMTE1MjAwLCBCMTE1MjAwIH0sCisjZW5kaWYKKyNpZmRlZiBCMjMwNDAwCisgICAgeyAyMzA0MDAsIEIyMzA0MDAgfSwKKyNlbmRpZgorICAgIHsgMCwgMCB9LAorfTsKKworI2RlZmluZSBQXyhzKSBzCitpbnQgbWFpbiBQXygoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSk7Cit2b2lkIHBhcnNlX2FyZ3MgUF8oKGludCBhcmdjLCBjaGFyICoqYXJndiwgc3RydWN0IG9wdGlvbnMgKm9wKSk7Cit2b2lkIHBhcnNlX3NwZWVkcyBQXygoc3RydWN0IG9wdGlvbnMgKm9wLCBjaGFyICphcmcpKTsKK3ZvaWQgdXBkYXRlX3V0bXAgUF8oKGNoYXIgKmxpbmUpKTsKK3ZvaWQgb3Blbl90dHkgUF8oKGNoYXIgKnR0eSwgc3RydWN0IHRlcm1pb3MgKnRwLCBpbnQgbG9jYWwpKTsKK3ZvaWQgdGVybWlvX2luaXQgUF8oKHN0cnVjdCB0ZXJtaW9zICp0cCwgaW50IHNwZWVkLCBzdHJ1Y3Qgb3B0aW9ucyAqb3ApKTsKK3ZvaWQgYXV0b19iYXVkIFBfKChzdHJ1Y3QgdGVybWlvcyAqdHApKTsKK3ZvaWQgZG9fcHJvbXB0IFBfKChzdHJ1Y3Qgb3B0aW9ucyAqb3AsIHN0cnVjdCB0ZXJtaW9zICp0cCkpOwordm9pZCBuZXh0X3NwZWVkIFBfKChzdHJ1Y3QgdGVybWlvcyAqdHAsIHN0cnVjdCBvcHRpb25zICpvcCkpOworY2hhciAqZ2V0X2xvZ25hbWUgUF8oKHN0cnVjdCBvcHRpb25zICpvcCwgc3RydWN0IGNoYXJkYXRhICpjcCwgc3RydWN0IHRlcm1pb3MgKnRwKSk7Cit2b2lkIHRlcm1pb19maW5hbCBQXygoc3RydWN0IG9wdGlvbnMgKm9wLCBzdHJ1Y3QgdGVybWlvcyAqdHAsIHN0cnVjdCBjaGFyZGF0YSAqY3ApKTsKK2ludCBjYXBzX2xvY2sgUF8oKGNoYXIgKnMpKTsKK2ludCBiY29kZSBQXygoY2hhciAqcykpOwordm9pZCB1c2FnZSBQXygodm9pZCkpOwordm9pZCBlcnJvciBQXygoY29uc3QgY2hhciAqLCAuLi4pKTsKKyN1bmRlZiBQXworCisvKiBUaGUgZm9sbG93aW5nIGlzIHVzZWQgZm9yIHVuZGVyc3RhbmRhYmxlIGRpYWdub3N0aWNzLiAqLworCitjaGFyICpwcm9nbmFtZTsKKworLyogRmFrZSBob3N0bmFtZSBmb3IgdXRfaG9zdCBzcGVjaWZpZWQgb24gY29tbWFuZCBsaW5lLiAqLworY2hhciAqZmFrZWhvc3QgPSBOVUxMOworCisvKiAuLi4gKi8KKyNpZmRlZiBERUJVR0dJTkcKKyNkZWZpbmUgZGVidWcocykgZnByaW50ZihkYmYscyk7IGZmbHVzaChkYmYpCitGSUxFICpkYmY7CisjZWxzZQorI2RlZmluZSBkZWJ1ZyhzKSAvKiBub3RoaW5nICovCisjZW5kaWYKKworaW50CittYWluKGFyZ2MsIGFyZ3YpCisgICAgIGludCAgICAgYXJnYzsKKyAgICAgY2hhciAgKiphcmd2OworeworICAgIGNoYXIgICAqbG9nbmFtZSA9IE5VTEw7CQkvKiBsb2dpbiBuYW1lLCBnaXZlbiB0byAvYmluL2xvZ2luICovCisgICAgc3RydWN0IGNoYXJkYXRhIGNoYXJkYXRhOwkJLyogc2V0IGJ5IGdldF9sb2duYW1lKCkgKi8KKyAgICBzdHJ1Y3QgdGVybWlvcyB0ZXJtaW9zOwkJLyogdGVybWluYWwgbW9kZSBiaXRzICovCisgICAgc3RhdGljIHN0cnVjdCBvcHRpb25zIG9wdGlvbnMgPSB7CisJRl9JU1NVRSwJCQkvKiBzaG93IC9ldGMvaXNzdWUgKFNZU1ZfU1RZTEUpICovCisJMCwJCQkJLyogbm8gdGltZW91dCAqLworCV9QQVRIX0xPR0lOLAkJCS8qIGRlZmF1bHQgbG9naW4gcHJvZ3JhbSAqLworCSJ0dHkxIiwJCQkJLyogZGVmYXVsdCB0dHkgbGluZSAqLworCSIiLAkJCQkvKiBtb2RlbSBpbml0IHN0cmluZyAqLworCUlTU1VFLAkJCQkvKiBkZWZhdWx0IGlzc3VlIGZpbGUgKi8KKwkwLAkJCQkvKiBubyBiYXVkIHJhdGVzIGtub3duIHlldCAqLworICAgIH07CisKKyAgICAgICBzZXRsb2NhbGUoTENfQUxMLCAiIik7CisgICAgICAgYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKyAgICAgICB0ZXh0ZG9tYWluKFBBQ0tBR0UpOworICAgIAorICAgIC8qIFRoZSBCU0Qtc3R5bGUgaW5pdCBjb21tYW5kIHBhc3NlcyB1cyBhIHVzZWxlc3MgcHJvY2VzcyBuYW1lLiAqLworCisjaWZkZWYJU1lTVl9TVFlMRQorICAgICAgIHsKKwkgICAgICAgY2hhciAqcHRyOworCSAgICAgICBwcm9nbmFtZSA9IGFyZ3ZbMF07CisJICAgICAgIGlmICgocHRyID0gc3RycmNocihhcmd2WzBdLCAnLycpKSkKKwkJICAgICAgIHByb2duYW1lID0gKytwdHI7CisgICAgICAgfQorI2Vsc2UKKyAgICAgICBwcm9nbmFtZSA9ICJhZ2V0dHkiOworI2VuZGlmCisKKyNpZmRlZiBERUJVR0dJTkcKKwlkYmYgPSBmb3BlbigiL2Rldi90dHlwMCIsICJ3Iik7CisKKwl7CWludCBpOworCQorCQlmb3IoaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKKwkJCWRlYnVnKGFyZ3ZbaV0pOworCQl9CisJfQorI2VuZGlmCisKKyAgICAvKiBQYXJzZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzLiAqLworCisgICAgcGFyc2VfYXJncyhhcmdjLCBhcmd2LCAmb3B0aW9ucyk7CisKKyNpZmRlZiBfX2xpbnV4X18KKwlzZXRzaWQoKTsKKyNlbmRpZgorCQorICAgIC8qIFVwZGF0ZSB0aGUgdXRtcCBmaWxlLiAqLworCisjaWZkZWYJU1lTVl9TVFlMRQorICAgIHVwZGF0ZV91dG1wKG9wdGlvbnMudHR5KTsKKyNlbmRpZgorCisgICAgZGVidWcoImNhbGxpbmcgb3Blbl90dHlcbiIpOworICAgIC8qIE9wZW4gdGhlIHR0eSBhcyBzdGFuZGFyZCB7IGlucHV0LCBvdXRwdXQsIGVycm9yIH0uICovCisgICAgb3Blbl90dHkob3B0aW9ucy50dHksICZ0ZXJtaW9zLCBvcHRpb25zLmZsYWdzICYgRl9MT0NBTCk7CisKKyAgICB0Y3NldHBncnAoMCwgZ2V0cGlkKCkpOworICAgIC8qIEluaXRpYWxpemUgdGhlIHRlcm1pb3Mgc2V0dGluZ3MgKHJhdyBtb2RlLCBlaWdodC1iaXQsIGJsb2NraW5nIGkvbykuICovCisgICAgZGVidWcoImNhbGxpbmcgdGVybWlvX2luaXRcbiIpOworICAgIHRlcm1pb19pbml0KCZ0ZXJtaW9zLCBvcHRpb25zLnNwZWVkc1tGSVJTVF9TUEVFRF0sICZvcHRpb25zKTsKKworICAgIC8qIHdyaXRlIHRoZSBtb2RlbSBpbml0IHN0cmluZyBhbmQgRE9OJ1QgZmx1c2ggdGhlIGJ1ZmZlcnMgKi8KKyAgICBpZiAob3B0aW9ucy5mbGFncyAmIEZfSU5JVFNUUklORykgeworCWRlYnVnKCJ3cml0aW5nIGluaXQgc3RyaW5nXG4iKTsKKwl3cml0ZSgxLCBvcHRpb25zLmluaXRzdHJpbmcsIHN0cmxlbihvcHRpb25zLmluaXRzdHJpbmcpKTsKKyAgICB9CisKKyAgICBpZiAoIShvcHRpb25zLmZsYWdzICYgRl9MT0NBTCkpIHsKKwkvKiBnbyB0byBibG9ja2luZyB3cml0ZSBtb2RlIHVubGVzcyAtTCBpcyBzcGVjaWZpZWQgKi8KKwlmY250bCgxLCBGX1NFVEZMLCBmY250bCgxLCBGX0dFVEZMLCAwKSAmIH5PX05PTkJMT0NLKTsKKyAgICB9CisKKyAgICAvKiBPcHRpb25hbGx5IGRldGVjdCB0aGUgYmF1ZCByYXRlIGZyb20gdGhlIG1vZGVtIHN0YXR1cyBtZXNzYWdlLiAqLworICAgIGRlYnVnKCJiZWZvcmUgYXV0b2JhdWRcbiIpOworICAgIGlmIChvcHRpb25zLmZsYWdzICYgRl9QQVJTRSkKKwlhdXRvX2JhdWQoJnRlcm1pb3MpOworCisgICAgLyogU2V0IHRoZSBvcHRpb25hbCB0aW1lci4gKi8KKyAgICBpZiAob3B0aW9ucy50aW1lb3V0KQorCSh2b2lkKSBhbGFybSgodW5zaWduZWQpIG9wdGlvbnMudGltZW91dCk7CisKKyAgICAvKiBvcHRpb25hbGx5IHdhaXQgZm9yIENSIG9yIExGIGJlZm9yZSB3cml0aW5nIC9ldGMvaXNzdWUgKi8KKyAgICBpZiAob3B0aW9ucy5mbGFncyAmIEZfV0FJVENSTEYpIHsKKwljaGFyIGNoOworCisJZGVidWcoIndhaXRpbmcgZm9yIGNyLWxmXG4iKTsKKwl3aGlsZShyZWFkKDAsICZjaCwgMSkgPT0gMSkgeworCSAgICBjaCAmPSAweDdmOyAgIC8qIHN0cmlwICJwYXJpdHkgYml0IiAqLworI2lmZGVmIERFQlVHR0lORworCSAgICBmcHJpbnRmKGRiZiwgInJlYWQgJWNcbiIsIGNoKTsKKyNlbmRpZgorCSAgICBpZiAoY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHInKSBicmVhazsKKwl9CisgICAgfQorCisgICAgY2hhcmRhdGEgPSBpbml0X2NoYXJkYXRhOworICAgIGlmICghKG9wdGlvbnMuZmxhZ3MgJiBGX05PUFJPTVBUKSkgeworCS8qIFJlYWQgdGhlIGxvZ2luIG5hbWUuICovCisJZGVidWcoInJlYWRpbmcgbG9naW4gbmFtZVxuIik7CisJd2hpbGUgKChsb2duYW1lID0gZ2V0X2xvZ25hbWUoJm9wdGlvbnMsICZjaGFyZGF0YSwgJnRlcm1pb3MpKSA9PSAwKQorCSAgbmV4dF9zcGVlZCgmdGVybWlvcywgJm9wdGlvbnMpOworICAgIH0KKworICAgIC8qIERpc2FibGUgdGltZXIuICovCisKKyAgICBpZiAob3B0aW9ucy50aW1lb3V0KQorCSh2b2lkKSBhbGFybSgwKTsKKworICAgIC8qIEZpbmFsaXplIHRoZSB0ZXJtaW9zIHNldHRpbmdzLiAqLworCisgICAgdGVybWlvX2ZpbmFsKCZvcHRpb25zLCAmdGVybWlvcywgJmNoYXJkYXRhKTsKKworICAgIC8qIE5vdyB0aGUgbmV3bGluZSBjaGFyYWN0ZXIgc2hvdWxkIGJlIHByb3Blcmx5IHdyaXR0ZW4uICovCisKKyAgICAodm9pZCkgd3JpdGUoMSwgIlxuIiwgMSk7CisKKyAgICAvKiBMZXQgdGhlIGxvZ2luIHByb2dyYW0gdGFrZSBjYXJlIG9mIHBhc3N3b3JkIHZhbGlkYXRpb24uICovCisKKyAgICAodm9pZCkgZXhlY2wob3B0aW9ucy5sb2dpbiwgb3B0aW9ucy5sb2dpbiwgIi0tIiwgbG9nbmFtZSwgTlVMTCk7CisgICAgZXJyb3IoXygiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIiksIG9wdGlvbnMudHR5LCBvcHRpb25zLmxvZ2luKTsKKyAgICBleGl0KDApOyAgLyogcXVpZXQgR0NDICovCit9CisKKy8qIHBhcnNlLWFyZ3MgLSBwYXJzZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzICovCisKK3ZvaWQKK3BhcnNlX2FyZ3MoYXJnYywgYXJndiwgb3ApCisgICAgIGludCAgICAgYXJnYzsKKyAgICAgY2hhciAgKiphcmd2OworICAgICBzdHJ1Y3Qgb3B0aW9ucyAqb3A7Cit7CisgICAgZXh0ZXJuIGNoYXIgKm9wdGFyZzsJCS8qIGdldG9wdCAqLworICAgIGV4dGVybiBpbnQgb3B0aW5kOwkJCS8qIGdldG9wdCAqLworICAgIGludCAgICAgYzsKKworICAgIHdoaWxlIChpc2FzY2lpKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgIjhJOkxIOmY6aGlsOm10OndVbiIpKSkgeworCXN3aXRjaCAoYykgeworCWNhc2UgJzgnOgorCSAgICBvcC0+ZWlnaHRiaXRzID0gMTsKKwkgICAgYnJlYWs7CisJY2FzZSAnSSc6CisJICAgIGlmICghKG9wLT5pbml0c3RyaW5nID0gbWFsbG9jKHN0cmxlbihvcHRhcmcpKzEpKSkgeworCQllcnJvcihfKCJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIpKTsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgeworCQljaGFyIGNoLCAqcCwgKnE7CisJCWludCBpOworCisJCS8qIGNvcHkgb3B0YXJnIGludG8gb3AtPmluaXRzdHJpbmcgZGVjb2RpbmcgXGRkZAorCQkgICBvY3RhbCBjb2RlcyBpbnRvIGNoYXJzICovCisJCXEgPSBvcC0+aW5pdHN0cmluZzsKKwkJcCA9IG9wdGFyZzsKKwkJd2hpbGUgKCpwKSB7CisJCSAgICBpZiAoKnAgPT0gJ1xcJykgewkJLyoga25vdyBcXCBtZWFucyBcICovCisJCQlwKys7CisJCQlpZiAoKnAgPT0gJ1xcJykgeworCQkJICAgIGNoID0gJ1xcJzsKKwkJCSAgICBwKys7CisJCQl9IGVsc2UgewkJLyogaGFuZGxlIFwwMDAgLSBcMTc3ICovCisJCQkgICAgY2ggPSAwOworCQkJICAgIGZvciAoaSA9IDE7IGkgPD0gMzsgaSsrKSB7CisJCQkJaWYgKCpwID49ICcwJyAmJiAqcCA8PSAnNycpIHsKKwkJCQkgICAgY2ggPDw9IDM7CisJCQkJICAgIGNoICs9ICpwIC0gJzAnOworCQkJCSAgICBwKys7CisJCQkJfSBlbHNlIAorCQkJCSAgYnJlYWs7CisJCQkgICAgfQorCQkJfQorCQkJKnErKyA9IGNoOworCQkgICAgfSBlbHNlIHsKKwkJCSpxKysgPSAqcCsrOworCQkgICAgfQorCQl9CisJCSpxID0gJ1wwJzsKKwkgICAgfQorCSAgICBvcC0+ZmxhZ3MgfD0gRl9JTklUU1RSSU5HOworCSAgICBicmVhazsKKworCWNhc2UgJ0wnOgkJCQkvKiBmb3JjZSBsb2NhbCAqLworIAkgICAgb3AtPmZsYWdzIHw9IEZfTE9DQUw7CisgCSAgICBicmVhazsKKwljYXNlICdIJzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZmFrZSBsb2dpbiBob3N0ICovCisJICAgIGZha2Vob3N0ID0gb3B0YXJnOworCSAgICBicmVhazsKKwljYXNlICdmJzoJCQkJLyogY3VzdG9tIGlzc3VlIGZpbGUgKi8KKwkgICAgb3AtPmZsYWdzIHw9IEZfQ1VTVElTU1VFOworCSAgICBvcC0+aXNzdWUgPSBvcHRhcmc7CisJICAgIGJyZWFrOworCWNhc2UgJ2gnOgkJCQkvKiBlbmFibGUgaC93IGZsb3cgY29udHJvbCAqLworCSAgICBvcC0+ZmxhZ3MgfD0gRl9SVFNDVFM7CisJICAgIGJyZWFrOworCWNhc2UgJ2knOgkJCQkvKiBkbyBub3Qgc2hvdyAvZXRjL2lzc3VlICovCisJICAgIG9wLT5mbGFncyAmPSB+Rl9JU1NVRTsKKwkgICAgYnJlYWs7CisJY2FzZSAnbCc6CisJICAgIG9wLT5sb2dpbiA9IG9wdGFyZzsJCQkvKiBub24tZGVmYXVsdCBsb2dpbiBwcm9ncmFtICovCisJICAgIGJyZWFrOworCWNhc2UgJ20nOgkJCQkvKiBwYXJzZSBtb2RlbSBzdGF0dXMgbWVzc2FnZSAqLworCSAgICBvcC0+ZmxhZ3MgfD0gRl9QQVJTRTsKKwkgICAgYnJlYWs7CisJY2FzZSAnbic6CisJICAgIG9wLT5mbGFncyB8PSBGX05PUFJPTVBUOworCSAgICBicmVhazsKKwljYXNlICd0JzoJCQkJLyogdGltZSBvdXQgKi8KKwkgICAgaWYgKChvcC0+dGltZW91dCA9IGF0b2kob3B0YXJnKSkgPD0gMCkKKwkJZXJyb3IoXygiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIiksIG9wdGFyZyk7CisJICAgIGJyZWFrOworCWNhc2UgJ3cnOgorCSAgICBvcC0+ZmxhZ3MgfD0gRl9XQUlUQ1JMRjsKKwkgICAgYnJlYWs7CisJY2FzZSAnVSc6CisJICAgIG9wLT5mbGFncyB8PSBGX0xDVUM7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHVzYWdlKCk7CisJfQorICAgIH0KKwlkZWJ1ZygiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIpOworICAgIGlmIChhcmdjIDwgb3B0aW5kICsgMikJCQkvKiBjaGVjayBwYXJhbWV0ZXIgY291bnQgKi8KKwl1c2FnZSgpOworCisgICAgLyogd2UgbG9vc2VuIHVwIGEgYml0IGFuZCBhY2NlcHQgYm90aCAiYmF1ZHJhdGUgdHR5IiBhbmQgInR0eSBiYXVkcmF0ZSIgKi8KKyAgICBpZignMCcgPD0gYXJndltvcHRpbmRdWzBdICYmIGFyZ3Zbb3B0aW5kXVswXSA8PSAnOScpIHsKKwkvKiBhIG51bWJlciBmaXJzdCwgYXNzdW1lIGl0J3MgYSBzcGVlZCAoQlNEIHN0eWxlKSAqLworCXBhcnNlX3NwZWVkcyhvcCwgYXJndltvcHRpbmQrK10pOwkvKiBiYXVkIHJhdGUocykgKi8KKwlvcC0+dHR5ID0gYXJndltvcHRpbmRdOwkJCS8qIHR0eSBuYW1lICovCisgICAgfSBlbHNlIHsKKwlvcC0+dHR5ID0gYXJndltvcHRpbmQrK107CQkvKiB0dHkgbmFtZSAqLworCXBhcnNlX3NwZWVkcyhvcCwgYXJndltvcHRpbmRdKTsJCS8qIGJhdWQgcmF0ZShzKSAqLworICAgIH0KKworICAgIG9wdGluZCsrOworICAgIGlmIChhcmdjID4gb3B0aW5kICYmIGFyZ3Zbb3B0aW5kXSkKKwlzZXRlbnYgKCJURVJNIiwgYXJndltvcHRpbmRdLCAxKTsKKworI2lmZGVmIERPX0RFVkZTX0ZJRERMSU5HCisgICAgLyoKKyAgICAgKiBzb21lIGRldmZzIGp1bmssIGZvbGxvd2luZyBHb3N3aW4gQnJlZGVybG93OgorICAgICAqICAgdHVybiB0dHlTPG4+IGludG8gdHRzLzxuPgorICAgICAqICAgdHVybiB0dHk8bj4gaW50byB2Yy88bj4KKyAgICAgKi8KKyAgICBpZiAob3AtPnR0eSAmJiBzdHJsZW4ob3AtPnR0eSkgPCA5MCkgeworCSAgICBjaGFyIGRldl9uYW1lWzEwMF07CisJICAgIHN0cnVjdCBzdGF0IHN0OworCisJICAgIGlmIChzdHJuY21wKG9wLT50dHksICJ0dHlTIiwgNCkgPT0gMCkgeworCQkgICAgc3RyY3B5KGRldl9uYW1lLCAiL2Rldi8iKTsKKwkJICAgIHN0cmNhdChkZXZfbmFtZSwgb3AtPnR0eSk7CisJCSAgICBpZiAoc3RhdChkZXZfbmFtZSwgJnN0KSA8IDApIHsKKwkJCSAgICBzdHJjcHkoZGV2X25hbWUsICIvZGV2L3R0cy8iKTsKKwkJCSAgICBzdHJjYXQoZGV2X25hbWUsIG9wLT50dHkgKyA0KTsKKwkJCSAgICBpZiAoc3RhdChkZXZfbmFtZSwgJnN0KSA9PSAwKQorCQkJCSAgICBvcC0+dHR5ID0gc3RyZHVwKGRldl9uYW1lICsgNSk7CisJCSAgICB9CisJICAgIH0gZWxzZSBpZiAoc3RybmNtcChvcC0+dHR5LCAidHR5IiwgMykgPT0gMCkgeworCQkgICAgc3RyY3B5KGRldl9uYW1lLCAiL2Rldi8iKTsKKwkJICAgIHN0cm5jYXQoZGV2X25hbWUsIG9wLT50dHksIDkwKTsKKwkJICAgIGlmIChzdGF0KGRldl9uYW1lLCAmc3QpIDwgMCkgeworCQkJICAgIHN0cmNweShkZXZfbmFtZSwgIi9kZXYvdmMvIik7CisJCQkgICAgc3RyY2F0KGRldl9uYW1lLCBvcC0+dHR5ICsgMyk7CisJCQkgICAgaWYgKHN0YXQoZGV2X25hbWUsICZzdCkgPT0gMCkKKwkJCQkgICAgb3AtPnR0eSA9IHN0cmR1cChkZXZfbmFtZSArIDUpOworCQkgICAgfQorCSAgICB9CisgICAgfQorI2VuZGlmCisKKyAgICBkZWJ1ZygiZXhpdGluZyBwYXJzZWFyZ3NcbiIpOworfQorCisvKiBwYXJzZV9zcGVlZHMgLSBwYXJzZSBhbHRlcm5hdGUgYmF1ZCByYXRlcyAqLworCit2b2lkCitwYXJzZV9zcGVlZHMob3AsIGFyZykKKyAgICAgc3RydWN0IG9wdGlvbnMgKm9wOworICAgICBjaGFyICAgKmFyZzsKK3sKKyAgICBjaGFyICAgKmNwOworCisJZGVidWcoImVudGVyZWQgcGFyc2Vfc3BlZWRzXG4iKTsKKyAgICBmb3IgKGNwID0gc3RydG9rKGFyZywgIiwiKTsgY3AgIT0gMDsgY3AgPSBzdHJ0b2soKGNoYXIgKikgMCwgIiwiKSkgeworCWlmICgob3AtPnNwZWVkc1tvcC0+bnVtc3BlZWQrK10gPSBiY29kZShjcCkpIDw9IDApCisJICAgIGVycm9yKF8oImJhZCBzcGVlZDogJXMiKSwgY3ApOworCWlmIChvcC0+bnVtc3BlZWQgPj0gTUFYX1NQRUVEKQorCSAgICBlcnJvcihfKCJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIikpOworICAgIH0KKyAgICBkZWJ1ZygiZXhpdGluZyBwYXJzZXNwZWVkc1xuIik7Cit9CisKKyNpZmRlZglTWVNWX1NUWUxFCisKKy8qIHVwZGF0ZV91dG1wIC0gdXBkYXRlIG91ciB1dG1wIGVudHJ5ICovCit2b2lkCit1cGRhdGVfdXRtcChsaW5lKQorICAgICBjaGFyICAgKmxpbmU7Cit7CisgICAgc3RydWN0ICB1dG1wIHV0OworICAgIHRpbWVfdCAgdDsKKyAgICBpbnQgICAgIG15cGlkID0gZ2V0cGlkKCk7CisgICAgc3RydWN0ICB1dG1wICp1dHA7CisKKyAgICAvKgorICAgICAqIFRoZSB1dG1wIGZpbGUgaG9sZHMgbWlzY2VsbGFuZW91cyBpbmZvcm1hdGlvbiBhYm91dCB0aGluZ3Mgc3RhcnRlZCBieQorICAgICAqIC9zYmluL2luaXQgYW5kIG90aGVyIHN5c3RlbS1yZWxhdGVkIGV2ZW50cy4gT3VyIHB1cnBvc2UgaXMgdG8gdXBkYXRlCisgICAgICogdGhlIHV0bXAgZW50cnkgZm9yIHRoZSBjdXJyZW50IHByb2Nlc3MsIGluIHBhcnRpY3VsYXIgdGhlIHByb2Nlc3MgdHlwZQorICAgICAqIGFuZCB0aGUgdHR5IGxpbmUgd2UgYXJlIGxpc3RlbmluZyB0by4gUmV0dXJuIHN1Y2Nlc3NmdWxseSBvbmx5IGlmIHRoZQorICAgICAqIHV0bXAgZmlsZSBjYW4gYmUgb3BlbmVkIGZvciB1cGRhdGUsIGFuZCBpZiB3ZSBhcmUgYWJsZSB0byBmaW5kIG91cgorICAgICAqIGVudHJ5IGluIHRoZSB1dG1wIGZpbGUuCisgICAgICovCisKKyAgICB1dG1wbmFtZShfUEFUSF9VVE1QKTsKKyAgICBzZXR1dGVudCgpOworCisgICAgLyogRmluZCBteXBpZCBpbiB1dG1wLiBFYXJsaWVyIGNvZGUgaGVyZSB0ZXN0ZWQgb25seQorICAgICAgIHV0cC0+dXRfdHlwZSAhPSBJTklUX1BST0NFU1MsIHNvIG1heWJlIHRoZSA+PSBoZXJlIHNob3VsZCBiZSA+LgorICAgICAgIFRoZSBwcmVzZW50IGNvZGUgaXMgdGFrZW4gZnJvbSBsb2dpbi5jLCBzbyBpZiB0aGlzIGlzIGNoYW5nZWQsCisgICAgICAgbWF5YmUgbG9naW4gaGFzIHRvIGJlIGNoYW5nZWQgYXMgd2VsbC4gKi8KKyAgICB3aGlsZSAoKHV0cCA9IGdldHV0ZW50KCkpKQorCSAgICBpZiAodXRwLT51dF9waWQgPT0gbXlwaWQKKwkJJiYgdXRwLT51dF90eXBlID49IElOSVRfUFJPQ0VTUworCQkmJiB1dHAtPnV0X3R5cGUgPD0gREVBRF9QUk9DRVNTKQorCQkgICAgYnJlYWs7CisKKyAgICBpZiAodXRwKSB7CisJbWVtY3B5KCZ1dCwgdXRwLCBzaXplb2YodXQpKTsKKyAgICB9IGVsc2UgeworCS8qIHNvbWUgaW5pdHMgZG9uJ3QgaW5pdGlhbGl6ZSB1dG1wLi4uICovCisJbWVtc2V0KCZ1dCwgMCwgc2l6ZW9mKHV0KSk7CisJc3RybmNweSh1dC51dF9pZCwgbGluZSArIDMsIHNpemVvZih1dC51dF9pZCkpOworICAgIH0KKwkKKyAgICBzdHJuY3B5KHV0LnV0X3VzZXIsICJMT0dJTiIsIHNpemVvZih1dC51dF91c2VyKSk7CisgICAgc3RybmNweSh1dC51dF9saW5lLCBsaW5lLCBzaXplb2YodXQudXRfbGluZSkpOworICAgIGlmIChmYWtlaG9zdCkKKwlzdHJuY3B5KHV0LnV0X2hvc3QsIGZha2Vob3N0LCBzaXplb2YodXQudXRfaG9zdCkpOworICAgIHRpbWUoJnQpOworICAgIHV0LnV0X3RpbWUgPSB0OworICAgIHV0LnV0X3R5cGUgPSBMT0dJTl9QUk9DRVNTOworICAgIHV0LnV0X3BpZCA9IG15cGlkOworCisgICAgcHV0dXRsaW5lKCZ1dCk7CisgICAgZW5kdXRlbnQoKTsKKworICAgIHsKKyNpZmRlZiBIQVZFX1VQRFdUTVAKKwl1cGR3dG1wKF9QQVRIX1dUTVAsICZ1dCk7CisjZWxzZQorCWludCB1dF9mZDsKKwlpbnQgbGY7CisKKwlpZiAoKGxmID0gb3BlbihfUEFUSF9XVE1QTE9DSywgT19DUkVBVHxPX1dST05MWSwgMDY2MCkpID49IDApIHsKKwkgICAgZmxvY2sobGYsIExPQ0tfRVgpOworCSAgICBpZiAoKHV0X2ZkID0gb3BlbihfUEFUSF9XVE1QLCBPX0FQUEVORHxPX1dST05MWSkpID49IDApIHsKKwkJd3JpdGUodXRfZmQsICZ1dCwgc2l6ZW9mKHV0KSk7CisJCWNsb3NlKHV0X2ZkKTsKKwkgICAgfQorCSAgICBmbG9jayhsZiwgTE9DS19VTik7CisJICAgIGNsb3NlKGxmKTsKKwl9CisjZW5kaWYKKyAgICB9Cit9CisKKyNlbmRpZgorCisvKiBvcGVuX3R0eSAtIHNldCB1cCB0dHkgYXMgc3RhbmRhcmQgeyBpbnB1dCwgb3V0cHV0LCBlcnJvciB9ICovCit2b2lkCitvcGVuX3R0eSh0dHksIHRwLCBsb2NhbCkKKyAgICAgY2hhciAgICp0dHk7CisgICAgIHN0cnVjdCB0ZXJtaW9zICp0cDsKKyAgICAgaW50ICAgIGxvY2FsOworeworICAgIC8qIEdldCByaWQgb2YgdGhlIHByZXNlbnQgc3RhbmRhcmQgeyBvdXRwdXQsIGVycm9yfSBpZiBhbnkuICovCisKKyAgICAodm9pZCkgY2xvc2UoMSk7CisgICAgKHZvaWQpIGNsb3NlKDIpOworICAgIGVycm5vID0gMDsJCQkJCS8qIGlnbm9yZSBhYm92ZSBlcnJvcnMgKi8KKworICAgIC8qIFNldCB1cCBuZXcgc3RhbmRhcmQgaW5wdXQsIHVubGVzcyB3ZSBhcmUgZ2l2ZW4gYW4gYWxyZWFkeSBvcGVuZWQgcG9ydC4gKi8KKworICAgIGlmIChzdHJjbXAodHR5LCAiLSIpKSB7CisJc3RydWN0IHN0YXQgc3Q7CisKKwkvKiBTYW5pdHkgY2hlY2tzLi4uICovCisKKwlpZiAoY2hkaXIoIi9kZXYiKSkKKwkgICAgZXJyb3IoXygiL2RldjogY2hkaXIoKSBmYWlsZWQ6ICVtIikpOworCWlmIChzdGF0KHR0eSwgJnN0KSA8IDApCisJICAgIGVycm9yKCIvZGV2LyVzOiAlbSIsIHR0eSk7CisJaWYgKChzdC5zdF9tb2RlICYgU19JRk1UKSAhPSBTX0lGQ0hSKQorCSAgICBlcnJvcihfKCIvZGV2LyVzOiBub3QgYSBjaGFyYWN0ZXIgZGV2aWNlIiksIHR0eSk7CisKKwkvKiBPcGVuIHRoZSB0dHkgYXMgc3RhbmRhcmQgaW5wdXQuICovCisKKwkodm9pZCkgY2xvc2UoMCk7CisJZXJybm8gPSAwOwkJCQkvKiBpZ25vcmUgY2xvc2UoMikgZXJyb3JzICovCisKKwlkZWJ1Zygib3BlbigyKVxuIik7CisJaWYgKG9wZW4odHR5LCBPX1JEV1J8T19OT05CTE9DSywgMCkgIT0gMCkKKwkgICAgZXJyb3IoXygiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIiksIHR0eSk7CisKKyAgICB9IGVsc2UgeworCisJLyoKKwkgKiBTdGFuZGFyZCBpbnB1dCBzaG91bGQgYWxyZWFkeSBiZSBjb25uZWN0ZWQgdG8gYW4gb3BlbiBwb3J0LiBNYWtlCisJICogc3VyZSBpdCBpcyBvcGVuIGZvciByZWFkL3dyaXRlLgorCSAqLworCisJaWYgKChmY250bCgwLCBGX0dFVEZMLCAwKSAmIE9fUkRXUikgIT0gT19SRFdSKQorCSAgICBlcnJvcihfKCIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiKSwgdHR5KTsKKyAgICB9CisKKyAgICAvKiBTZXQgdXAgc3RhbmRhcmQgb3V0cHV0IGFuZCBzdGFuZGFyZCBlcnJvciBmaWxlIGRlc2NyaXB0b3JzLiAqLworICAgIGRlYnVnKCJkdXBpbmdcbiIpOworICAgIGlmIChkdXAoMCkgIT0gMSB8fCBkdXAoMCkgIT0gMikJCS8qIHNldCB1cCBzdGRvdXQgYW5kIHN0ZGVyciAqLworCWVycm9yKF8oIiVzOiBkdXAgcHJvYmxlbTogJW0iKSwgdHR5KTsJLyogd2UgaGF2ZSBhIHByb2JsZW0gKi8KKworICAgIC8qCisgICAgICogVGhlIGZvbGxvd2luZyBpb2N0bCB3aWxsIGZhaWwgaWYgc3RkaW4gaXMgbm90IGEgdHR5LCBidXQgYWxzbyB3aGVuCisgICAgICogdGhlcmUgaXMgbm9pc2Ugb24gdGhlIG1vZGVtIGNvbnRyb2wgbGluZXMuIEluIHRoZSBsYXR0ZXIgY2FzZSwgdGhlCisgICAgICogY29tbW9uIGNvdXJzZSBvZiBhY3Rpb24gaXMgKDEpIGZpeCB5b3VyIGNhYmxlcyAoMikgZ2l2ZSB0aGUgbW9kZW0gbW9yZQorICAgICAqIHRpbWUgdG8gcHJvcGVybHkgcmVzZXQgYWZ0ZXIgaGFuZ2luZyB1cC4gU3VuT1MgdXNlcnMgY2FuIGFjaGlldmUgKDIpCisgICAgICogYnkgcGF0Y2hpbmcgdGhlIFN1bk9TIGtlcm5lbCB2YXJpYWJsZSAienNhZHRybG93IiB0byBhIGxhcmdlciB2YWx1ZTsKKyAgICAgKiA1IHNlY29uZHMgc2VlbXMgdG8gYmUgYSBnb29kIHZhbHVlLgorICAgICAqLworCisgICAgaWYgKHRjZ2V0YXR0cigwLCB0cCkgPCAwKQorCWVycm9yKCIlczogdGNnZXRhdHRyOiAlbSIsIHR0eSk7CisKKyAgICAvKgorICAgICAqIEl0IHNlZW1zIHRvIGJlIGEgdGVybWluYWwuIFNldCBwcm9wZXIgcHJvdGVjdGlvbnMgYW5kIG93bmVyc2hpcC4gTW9kZQorICAgICAqIDA2MjIgaXMgc3VpdGFibGUgZm9yIFNZU1YgPDQgYmVjYXVzZSAvYmluL2xvZ2luIGRvZXMgbm90IGNoYW5nZQorICAgICAqIHByb3RlY3Rpb25zLiBTdW5PUyA0IGxvZ2luIHdpbGwgY2hhbmdlIHRoZSBwcm90ZWN0aW9ucyB0byAwNjIwICh3cml0ZQorICAgICAqIGFjY2VzcyBmb3IgZ3JvdXAgdHR5KSBhZnRlciB0aGUgbG9naW4gaGFzIHN1Y2NlZWRlZC4KKyAgICAgKi8KKworICAgIC8qCisgICAgICogTGV0IHVzIHVzZSAwNjAwIGZvciBMaW51eCBmb3IgdGhlIHBlcmlvZCBiZXR3ZWVuIGdldHR5IGFuZCBsb2dpbgorICAgICAqLworCisgICAgKHZvaWQpIGNob3duKHR0eSwgMCwgMCk7CQkJLyogcm9vdCwgc3lzICovCisgICAgKHZvaWQpIGNobW9kKHR0eSwgMDYwMCk7CQkJLyogMDYyMjogY3J3LS13LS13LSAqLworICAgIGVycm5vID0gMDsJCQkJCS8qIGlnbm9yZSBhYm92ZSBlcnJvcnMgKi8KK30KKworLyogdGVybWlvX2luaXQgLSBpbml0aWFsaXplIHRlcm1pb3Mgc2V0dGluZ3MgKi8KKworY2hhciBnYnVmWzEwMjRdOworY2hhciBhcmVhWzEwMjRdOworCit2b2lkCit0ZXJtaW9faW5pdCh0cCwgc3BlZWQsIG9wKQorICAgICBzdHJ1Y3QgdGVybWlvcyAqdHA7CisgICAgIGludCAgICAgc3BlZWQ7CisgICAgIHN0cnVjdCBvcHRpb25zICpvcDsKK3sKKworICAgIC8qCisgICAgICogSW5pdGlhbCB0ZXJtaW9zIHNldHRpbmdzOiA4LWJpdCBjaGFyYWN0ZXJzLCByYXctbW9kZSwgYmxvY2tpbmcgaS9vLgorICAgICAqIFNwZWNpYWwgY2hhcmFjdGVycyBhcmUgc2V0IGFmdGVyIHdlIGhhdmUgcmVhZCB0aGUgbG9naW4gbmFtZTsgYWxsCisgICAgICogcmVhZHMgd2lsbCBiZSBkb25lIGluIHJhdyBtb2RlIGFueXdheS4gRXJyb3JzIHdpbGwgYmUgZGVhbHQgd2l0aAorICAgICAqIGxhdGVyb24uCisgICAgICovCisgICAgLyogZmx1c2ggaW5wdXQgYW5kIG91dHB1dCBxdWV1ZXMsIGltcG9ydGFudCBmb3IgbW9kZW1zISAqLworICAgICh2b2lkKSB0Y2ZsdXNoKDAsIFRDSU9GTFVTSCk7CisKKyAgICB0cC0+Y19jZmxhZyA9IENTOCB8IEhVUENMIHwgQ1JFQUQ7CisgICAgY2ZzZXRpc3BlZWQodHAsIHNwZWVkKTsKKyAgICBjZnNldG9zcGVlZCh0cCwgc3BlZWQpOworICAgIGlmIChvcC0+ZmxhZ3MgJiBGX0xPQ0FMKSB7CisJdHAtPmNfY2ZsYWcgfD0gQ0xPQ0FMOworICAgIH0KKworICAgIHRwLT5jX2lmbGFnID0gdHAtPmNfbGZsYWcgPSB0cC0+Y19vZmxhZyA9IDA7CisjaWZkZWYgSEFWRV9TVFJVQ1RfVEVSTUlPU19DX0xJTkUKKyAgICB0cC0+Y19saW5lID0gMDsKKyNlbmRpZgorICAgIHRwLT5jX2NjW1ZNSU5dID0gMTsKKyAgICB0cC0+Y19jY1tWVElNRV0gPSAwOworCisgICAgLyogT3B0aW9uYWxseSBlbmFibGUgaGFyZHdhcmUgZmxvdyBjb250cm9sICovCisKKyNpZmRlZglDUlRTQ1RTCisgICAgaWYgKG9wLT5mbGFncyAmIEZfUlRTQ1RTKQorCXRwLT5jX2NmbGFnIHw9IENSVFNDVFM7CisjZW5kaWYKKworICAgICh2b2lkKSB0Y3NldGF0dHIoMCwgVENTQU5PVywgdHApOworCisgICAgLyogZ28gdG8gYmxvY2tpbmcgaW5wdXQgZXZlbiBpbiBsb2NhbCBtb2RlICovCisgICAgZmNudGwoMCwgRl9TRVRGTCwgZmNudGwoMCwgRl9HRVRGTCwgMCkgJiB+T19OT05CTE9DSyk7CisKKyAgICBkZWJ1ZygidGVybV9pbyAyXG4iKTsKK30KKworLyogYXV0b19iYXVkIC0gZXh0cmFjdCBiYXVkIHJhdGUgZnJvbSBtb2RlbSBzdGF0dXMgbWVzc2FnZSAqLwordm9pZAorYXV0b19iYXVkKHRwKQorICAgICBzdHJ1Y3QgdGVybWlvcyAqdHA7Cit7CisgICAgaW50ICAgICBzcGVlZDsKKyAgICBpbnQgICAgIHZtaW47CisgICAgdW5zaWduZWQgaWZsYWc7CisgICAgY2hhciAgICBidWZbQlVGU0laXTsKKyAgICBjaGFyICAgKmJwOworICAgIGludCAgICAgbnJlYWQ7CisKKyAgICAvKgorICAgICAqIFRoaXMgd29ya3Mgb25seSBpZiB0aGUgbW9kZW0gcHJvZHVjZXMgaXRzIHN0YXR1cyBjb2RlIEFGVEVSIHJhaXNpbmcKKyAgICAgKiB0aGUgRENEIGxpbmUsIGFuZCBpZiB0aGUgY29tcHV0ZXIgaXMgZmFzdCBlbm91Z2ggdG8gc2V0IHRoZSBwcm9wZXIKKyAgICAgKiBiYXVkIHJhdGUgYmVmb3JlIHRoZSBtZXNzYWdlIGhhcyBnb25lIGJ5LiBXZSBleHBlY3QgYSBtZXNzYWdlIG9mIHRoZQorICAgICAqIGZvbGxvd2luZyBmb3JtYXQ6CisgICAgICogCisgICAgICogPGp1bms+PG51bWJlcj48anVuaz4KKyAgICAgKiAKKyAgICAgKiBUaGUgbnVtYmVyIGlzIGludGVycHJldGVkIGFzIHRoZSBiYXVkIHJhdGUgb2YgdGhlIGluY29taW5nIGNhbGwuIElmIHRoZQorICAgICAqIG1vZGVtIGRvZXMgbm90IHRlbGwgdXMgdGhlIGJhdWQgcmF0ZSB3aXRoaW4gb25lIHNlY29uZCwgd2Ugd2lsbCBrZWVwCisgICAgICogdXNpbmcgdGhlIGN1cnJlbnQgYmF1ZCByYXRlLiBJdCBpcyBhZHZpc2FibGUgdG8gZW5hYmxlIEJSRUFLCisgICAgICogcHJvY2Vzc2luZyAoY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYmF1ZCByYXRlcykgaWYgdGhlIHByb2Nlc3Npbmcgb2YKKyAgICAgKiBtb2RlbSBzdGF0dXMgbWVzc2FnZXMgaXMgZW5hYmxlZC4KKyAgICAgKi8KKworICAgIC8qCisgICAgICogVXNlIDctYml0IGNoYXJhY3RlcnMsIGRvbid0IGJsb2NrIGlmIGlucHV0IHF1ZXVlIGlzIGVtcHR5LiBFcnJvcnMgd2lsbAorICAgICAqIGJlIGRlYWx0IHdpdGggbGF0ZXJvbi4KKyAgICAgKi8KKworICAgIGlmbGFnID0gdHAtPmNfaWZsYWc7CisgICAgdHAtPmNfaWZsYWcgfD0gSVNUUklQOwkJCS8qIGVuYWJsZSA4dGgtYml0IHN0cmlwcGluZyAqLworICAgIHZtaW4gPSB0cC0+Y19jY1tWTUlOXTsKKyAgICB0cC0+Y19jY1tWTUlOXSA9IDA7CQkJCS8qIGRvbid0IGJsb2NrIGlmIHF1ZXVlIGVtcHR5ICovCisgICAgdGNzZXRhdHRyKDAsIFRDU0FOT1csIHRwKTsKKworICAgIC8qCisgICAgICogV2FpdCBmb3IgYSB3aGlsZSwgdGhlbiByZWFkIGV2ZXJ5dGhpbmcgdGhlIG1vZGVtIGhhcyBzYWlkIHNvIGZhciBhbmQKKyAgICAgKiB0cnkgdG8gZXh0cmFjdCB0aGUgc3BlZWQgb2YgdGhlIGRpYWwtaW4gY2FsbC4KKyAgICAgKi8KKworICAgICh2b2lkKSBzbGVlcCgxKTsKKyAgICBpZiAoKG5yZWFkID0gcmVhZCgwLCBidWYsIHNpemVvZihidWYpIC0gMSkpID4gMCkgeworCWJ1ZltucmVhZF0gPSAnXDAnOworCWZvciAoYnAgPSBidWY7IGJwIDwgYnVmICsgbnJlYWQ7IGJwKyspIHsKKwkgICAgaWYgKGlzYXNjaWkoKmJwKSAmJiBpc2RpZ2l0KCpicCkpIHsKKwkJaWYgKChzcGVlZCA9IGJjb2RlKGJwKSkpIHsKKwkJICAgIGNmc2V0aXNwZWVkKHRwLCBzcGVlZCk7CisJCSAgICBjZnNldG9zcGVlZCh0cCwgc3BlZWQpOworCQl9CisJCWJyZWFrOworCSAgICB9CisJfQorICAgIH0KKyAgICAvKiBSZXN0b3JlIHRlcm1pbmFsIHNldHRpbmdzLiBFcnJvcnMgd2lsbCBiZSBkZWFsdCB3aXRoIGxhdGVyb24uICovCisKKyAgICB0cC0+Y19pZmxhZyA9IGlmbGFnOworICAgIHRwLT5jX2NjW1ZNSU5dID0gdm1pbjsKKyAgICAodm9pZCkgdGNzZXRhdHRyKDAsIFRDU0FOT1csIHRwKTsKK30KKworLyogZG9fcHJvbXB0IC0gc2hvdyBsb2dpbiBwcm9tcHQsIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgL2V0Yy9pc3N1ZSBjb250ZW50cyAqLwordm9pZAorZG9fcHJvbXB0KG9wLCB0cCkKKyAgICAgc3RydWN0IG9wdGlvbnMgKm9wOworICAgICBzdHJ1Y3QgdGVybWlvcyAqdHA7Cit7CisjaWZkZWYJSVNTVUUKKyAgICBGSUxFICAgICpmZDsKKyAgICBpbnQgICAgIG9mbGFnOworICAgIGludCAgICAgYzsKKyAgICBzdHJ1Y3QgdXRzbmFtZSB1dHM7CisKKyAgICAodm9pZCkgdW5hbWUoJnV0cyk7CisjZW5kaWYKKworICAgICh2b2lkKSB3cml0ZSgxLCAiXHJcbiIsIDIpOwkJCS8qIHN0YXJ0IGEgbmV3IGxpbmUgKi8KKyNpZmRlZglJU1NVRQkJCQkJLyogb3B0aW9uYWw6IHNob3cgL2V0Yy9pc3N1ZSAqLworICAgIGlmICgob3AtPmZsYWdzICYgRl9JU1NVRSkgJiYgKGZkID0gZm9wZW4ob3AtPmlzc3VlLCAiciIpKSkgeworCW9mbGFnID0gdHAtPmNfb2ZsYWc7CQkJLyogc2F2ZSBjdXJyZW50IHNldHRpbmcgKi8KKwl0cC0+Y19vZmxhZyB8PSAoT05MQ1IgfCBPUE9TVCk7CQkvKiBtYXAgTkwgaW4gb3V0cHV0IHRvIENSLU5MICovCisJKHZvaWQpIHRjc2V0YXR0cigwLCBUQ1NBRFJBSU4sIHRwKTsKKworCisJd2hpbGUgKChjID0gZ2V0YyhmZCkpICE9IEVPRikKKwl7CisJICAgIGlmIChjID09ICdcXCcpCisJICAgICAgeworCQljID0gZ2V0YyhmZCk7CisJCQorCQlzd2l0Y2ggKGMpCisJCSAgeworCQkgIGNhc2UgJ3MnOgorCQkgICAgKHZvaWQpIHByaW50ZiAoIiVzIiwgdXRzLnN5c25hbWUpOworCQkgICAgYnJlYWs7CisJCSAgICAKKwkJICBjYXNlICduJzoKKwkJICAgICh2b2lkKSBwcmludGYgKCIlcyIsIHV0cy5ub2RlbmFtZSk7CisJCSAgICBicmVhazsKKwkJICAgIAorCQkgIGNhc2UgJ3InOgorCQkgICAgKHZvaWQpIHByaW50ZiAoIiVzIiwgdXRzLnJlbGVhc2UpOworCQkgICAgYnJlYWs7CisJCSAgICAKKwkJICBjYXNlICd2JzoKKwkJICAgICh2b2lkKSBwcmludGYgKCIlcyIsIHV0cy52ZXJzaW9uKTsKKwkJICAgIGJyZWFrOworCQkgICAgCisJCSAgY2FzZSAnbSc6CisJCSAgICAodm9pZCkgcHJpbnRmICgiJXMiLCB1dHMubWFjaGluZSk7CisJCSAgICBicmVhazsKKworCQkgIGNhc2UgJ28nOgorCQkgICB7CisJCSAgICAgY2hhciBkb21haW5uYW1lW01BWEhPU1ROQU1FTEVOKzFdOworI2lmZGVmIEhBVkVfR0VURE9NQUlOTkFNRQorCQkgICAgIGlmIChnZXRkb21haW5uYW1lKGRvbWFpbm5hbWUsIHNpemVvZihkb21haW5uYW1lKSkpCisjZW5kaWYKKwkJCSBzdHJjcHkoZG9tYWlubmFtZSwgInVua25vd25fZG9tYWluIik7CisJCSAgICAgZG9tYWlubmFtZVtzaXplb2YoZG9tYWlubmFtZSktMV0gPSAnXDAnOworCQkgICAgIHByaW50ZiAoIiVzIiwgZG9tYWlubmFtZSk7CisJCSAgIH0KKwkJICBicmVhazsKKworCQkgIGNhc2UgJ08nOgorCQkgICB7CisJCQljaGFyICpkb20gPSAidW5rbm93bl9kb21haW4iOworCQkJY2hhciBob3N0W01BWEhPU1ROQU1FTEVOKzFdOworCQkJc3RydWN0IGFkZHJpbmZvIGhpbnRzLCAqaW5mbyA9IE5VTEw7CisKKwkJCW1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50cykpOworCQkJaGludHMuYWlfZmxhZ3MgPSBBSV9DQU5PTk5BTUU7CisKKwkJCWlmIChnZXRob3N0bmFtZShob3N0LCBzaXplb2YoaG9zdCkpIHx8CisJCQkgICAgZ2V0YWRkcmluZm8oaG9zdCwgTlVMTCwgJmhpbnRzLCAmaW5mbykgfHwKKwkJCSAgICBpbmZvID09IE5VTEwpCisJCQkJZnB1dHMoZG9tLCBzdGRvdXQpOworCQkJZWxzZSB7CisJCQkJY2hhciAqY2Fub247CisKKwkJCQlpZiAoaW5mby0+YWlfY2Fub25uYW1lICYmCisJCQkJICAgIChjYW5vbiA9IHN0cmNocihpbmZvLT5haV9jYW5vbm5hbWUsICcuJykpKQorCQkJCQlkb20gPSBjYW5vbiArIDE7CisJCQkJZnB1dHMoZG9tLCBzdGRvdXQpOworCQkJCWZyZWVhZGRyaW5mbyhpbmZvKTsKKwkJCX0KKwkJICAgfQorCQkgIGJyZWFrOworCisJCSAgY2FzZSAnZCc6CisJCSAgY2FzZSAndCc6CisJCSAgICB7CisJCSAgICAgIC8qIFRPRE86IHVzZSBubF9sYW5naW5mbygpICovCisJCSAgICAgIGNoYXIgKndlZWtkYXlbXSA9IHsgIlN1biIsICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLAorCQkJCQkgICJGcmkiLCAiU2F0IiB9OworCQkgICAgICBjaGFyICptb250aFtdID0geyAiSmFuIiwgIkZlYiIsICJNYXIiLCAiQXByIiwgIk1heSIsCisJCQkJCSJKdW4iLCAiSnVsIiwgIkF1ZyIsICJTZXAiLCAiT2N0IiwKKwkJCQkJIk5vdiIsICJEZWMiIH07CisJCSAgICAgIHRpbWVfdCBub3c7CisJCSAgICAgIHN0cnVjdCB0bSAqdG07CisKKwkJICAgICAgKHZvaWQpIHRpbWUgKCZub3cpOworCQkgICAgICB0bSA9IGxvY2FsdGltZSgmbm93KTsKKworCQkgICAgICBpZiAoYyA9PSAnZCcpCisJCQkodm9pZCkgcHJpbnRmICgiJXMgJXMgJWQgICVkIiwKKwkJCQl3ZWVrZGF5W3RtLT50bV93ZGF5XSwgbW9udGhbdG0tPnRtX21vbl0sCisJCQkJdG0tPnRtX21kYXksIAorCQkJCXRtLT50bV95ZWFyIDwgNzAgPyB0bS0+dG1feWVhciArIDIwMDAgOgorCQkJCXRtLT50bV95ZWFyICsgMTkwMCk7CisJCSAgICAgIGVsc2UKKwkJCSh2b2lkKSBwcmludGYgKCIlMDJkOiUwMmQ6JTAyZCIsCisJCQkJdG0tPnRtX2hvdXIsIHRtLT50bV9taW4sIHRtLT50bV9zZWMpOworCQkgICAgICAKKwkJICAgICAgYnJlYWs7CisJCSAgICB9CisKKwkJICBjYXNlICdsJzoKKwkJICAgICAgKHZvaWQpIHByaW50ZiAoIiVzIiwgb3AtPnR0eSk7CisJCSAgICAgIGJyZWFrOworCisJCSAgY2FzZSAnYic6CisJCSAgICB7CisJCQlpbnQgaTsKKworCQkJZm9yIChpID0gMDsgc3BlZWR0YWJbaV0uc3BlZWQ7IGkrKykgeworCQkJICAgIGlmIChzcGVlZHRhYltpXS5jb2RlID09IGNmZ2V0aXNwZWVkKHRwKSkgeworCQkJCXByaW50ZigiJWxkIiwgc3BlZWR0YWJbaV0uc3BlZWQpOworCQkJCWJyZWFrOworCQkJICAgIH0KKwkJCX0KKwkJCWJyZWFrOworCQkgICAgfQorCQkgIGNhc2UgJ3UnOgorCQkgIGNhc2UgJ1UnOgorCQkgICAgeworCQkgICAgICBpbnQgdXNlcnMgPSAwOworCQkgICAgICBzdHJ1Y3QgdXRtcCAqdXQ7CisJCSAgICAgIHNldHV0ZW50KCk7CisJCSAgICAgIHdoaWxlICgodXQgPSBnZXR1dGVudCgpKSkKKwkJICAgICAgICBpZiAodXQtPnV0X3R5cGUgPT0gVVNFUl9QUk9DRVNTKQorCQkJICB1c2VycysrOworCQkgICAgICBlbmR1dGVudCgpOworCQkgICAgICBwcmludGYgKCIlZCAiLCB1c2Vycyk7CisJCSAgICAgIGlmIChjID09ICdVJykKKwkJICAgICAgICBwcmludGYgKCh1c2VycyA9PSAxKSA/IF8oInVzZXIiKSA6IF8oInVzZXJzIikpOworCQkgICAgICBicmVhazsKKwkJICAgIH0KKwkJICBkZWZhdWx0OgorCQkgICAgKHZvaWQpIHB1dGNoYXIoYyk7CisJCSAgfQorCSAgICAgIH0KKwkgICAgZWxzZQorCSAgICAgICh2b2lkKSBwdXRjaGFyKGMpOworCX0KKwlmZmx1c2goc3Rkb3V0KTsKKworCXRwLT5jX29mbGFnID0gb2ZsYWc7CQkJLyogcmVzdG9yZSBzZXR0aW5ncyAqLworCSh2b2lkKSB0Y3NldGF0dHIoMCwgVENTQURSQUlOLCB0cCk7CS8qIHdhaXQgdGlsbCBvdXRwdXQgaXMgZ29uZSAqLworCSh2b2lkKSBmY2xvc2UoZmQpOworICAgIH0KKyNlbmRpZgorICAgIHsKKwljaGFyIGhuW01BWEhPU1ROQU1FTEVOKzFdOworCWlmIChnZXRob3N0bmFtZShobiwgc2l6ZW9mKGhuKSkgPT0gMCkKKwkgICAgd3JpdGUoMSwgaG4sIHN0cmxlbihobikpOworICAgIH0KKyAgICAodm9pZCkgd3JpdGUoMSwgTE9HSU4sIHNpemVvZihMT0dJTikgLSAxKTsJLyogYWx3YXlzIHNob3cgbG9naW4gcHJvbXB0ICovCit9CisKKy8qIG5leHRfc3BlZWQgLSBzZWxlY3QgbmV4dCBiYXVkIHJhdGUgKi8KK3ZvaWQKK25leHRfc3BlZWQodHAsIG9wKQorICAgICBzdHJ1Y3QgdGVybWlvcyAqdHA7CisgICAgIHN0cnVjdCBvcHRpb25zICpvcDsKK3sKKyAgICBzdGF0aWMgaW50IGJhdWRfaW5kZXggPSBGSVJTVF9TUEVFRDsvKiBjdXJyZW50IHNwZWVkIGluZGV4ICovCisKKyAgICBiYXVkX2luZGV4ID0gKGJhdWRfaW5kZXggKyAxKSAlIG9wLT5udW1zcGVlZDsKKyAgICBjZnNldGlzcGVlZCh0cCwgb3AtPnNwZWVkc1tiYXVkX2luZGV4XSk7CisgICAgY2ZzZXRvc3BlZWQodHAsIG9wLT5zcGVlZHNbYmF1ZF9pbmRleF0pOworICAgICh2b2lkKSB0Y3NldGF0dHIoMCwgVENTQU5PVywgdHApOworfQorCisvKiBnZXRfbG9nbmFtZSAtIGdldCB1c2VyIG5hbWUsIGVzdGFibGlzaCBwYXJpdHksIHNwZWVkLCBlcmFzZSwga2lsbCwgZW9sICovCisKK2NoYXIgICAqZ2V0X2xvZ25hbWUob3AsIGNwLCB0cCkKKyAgICAgc3RydWN0IG9wdGlvbnMgKm9wOworICAgICBzdHJ1Y3QgY2hhcmRhdGEgKmNwOworICAgICBzdHJ1Y3QgdGVybWlvcyAqdHA7Cit7CisgICAgc3RhdGljIGNoYXIgbG9nbmFtZVtCVUZTSVpdOworICAgIGNoYXIgICAqYnA7CisgICAgY2hhciAgICBjOwkJCQkvKiBpbnB1dCBjaGFyYWN0ZXIsIGZ1bGwgZWlnaHQgYml0cyAqLworICAgIGNoYXIgICAgYXNjdmFsOwkJCS8qIGxvdyA3IGJpdHMgb2YgaW5wdXQgY2hhcmFjdGVyICovCisgICAgaW50ICAgICBiaXRzOwkJCS8qICMgb2YgIjEiIGJpdHMgcGVyIGNoYXJhY3RlciAqLworICAgIGludCAgICAgbWFzazsJCQkvKiBtYXNrIHdpdGggMSBiaXQgdXAgKi8KKyAgICBzdGF0aWMgY2hhciAqZXJhc2VbXSA9IHsJCS8qIGJhY2tzcGFjZS1zcGFjZS1iYWNrc3BhY2UgKi8KKwkiXDAxMFwwNDBcMDEwIiwJCQkvKiBzcGFjZSBwYXJpdHkgKi8KKwkiXDAxMFwwNDBcMDEwIiwJCQkvKiBvZGQgcGFyaXR5ICovCisJIlwyMTBcMjQwXDIxMCIsCQkJLyogZXZlbiBwYXJpdHkgKi8KKwkiXDIxMFwyNDBcMjEwIiwJCQkvKiBubyBwYXJpdHkgKi8KKyAgICB9OworCisgICAgLyogSW5pdGlhbGl6ZSBraWxsLCBlcmFzZSwgcGFyaXR5IGV0Yy4gKGFsc28gYWZ0ZXIgc3dpdGNoaW5nIHNwZWVkcykuICovCisKKyAgICAqY3AgPSBpbml0X2NoYXJkYXRhOworCisgICAgLyogRmx1c2ggcGVuZGluZyBpbnB1dCAoZXNwLiBhZnRlciBwYXJzaW5nIG9yIHN3aXRjaGluZyB0aGUgYmF1ZCByYXRlKS4gKi8KKworICAgICh2b2lkKSBzbGVlcCgxKTsKKyAgICAodm9pZCkgdGNmbHVzaCgwLCBUQ0lGTFVTSCk7CisKKyAgICAvKiBQcm9tcHQgZm9yIGFuZCByZWFkIGEgbG9naW4gbmFtZS4gKi8KKworICAgIGZvciAoKmxvZ25hbWUgPSAwOyAqbG9nbmFtZSA9PSAwOyAvKiB2b2lkICovICkgeworCisJLyogV3JpdGUgaXNzdWUgZmlsZSBhbmQgcHJvbXB0LCB3aXRoICJwYXJpdHkiIGJpdCA9PSAwLiAqLworCisJZG9fcHJvbXB0KG9wLCB0cCk7CisKKwkvKiBSZWFkIG5hbWUsIHdhdGNoIGZvciBicmVhaywgcGFyaXR5LCBlcmFzZSwga2lsbCwgZW5kLW9mLWxpbmUuICovCisKKwlmb3IgKGJwID0gbG9nbmFtZSwgY3AtPmVvbCA9IDA7IGNwLT5lb2wgPT0gMDsgLyogdm9pZCAqLyApIHsKKworCSAgICAvKiBEbyBub3QgcmVwb3J0IHRyaXZpYWwgRUlOVFIvRUlPIGVycm9ycy4gKi8KKworCSAgICBpZiAocmVhZCgwLCAmYywgMSkgPCAxKSB7CisJCWlmIChlcnJubyA9PSBFSU5UUiB8fCBlcnJubyA9PSBFSU8pCisJCSAgICBleGl0KDApOworCQllcnJvcihfKCIlczogcmVhZDogJW0iKSwgb3AtPnR0eSk7CisJICAgIH0KKwkgICAgLyogRG8gQlJFQUsgaGFuZGxpbmcgZWxzZXdoZXJlLiAqLworCisJICAgIGlmICgoYyA9PSAwKSAmJiBvcC0+bnVtc3BlZWQgPiAxKQorCQlyZXR1cm4gKDApOworCSAgICAvKiBEbyBwYXJpdHkgYml0IGhhbmRsaW5nLiAqLworCisJICAgIGlmIChvcC0+ZWlnaHRiaXRzKSB7CisJCWFzY3ZhbCA9IGM7CisJICAgIH0gZWxzZSBpZiAoYyAhPSAoYXNjdmFsID0gKGMgJiAwMTc3KSkpIHsJLyogInBhcml0eSIgYml0IG9uICovCisJCWZvciAoYml0cyA9IDEsIG1hc2sgPSAxOyBtYXNrICYgMDE3NzsgbWFzayA8PD0gMSkKKwkJICAgIGlmIChtYXNrICYgYXNjdmFsKQorCQkJYml0cysrOwkJCS8qIGNvdW50ICIxIiBiaXRzICovCisJCWNwLT5wYXJpdHkgfD0gKChiaXRzICYgMSkgPyAxIDogMik7CisJICAgIH0KKwkgICAgLyogRG8gZXJhc2UsIGtpbGwgYW5kIGVuZC1vZi1saW5lIHByb2Nlc3NpbmcuICovCisKKwkgICAgc3dpdGNoIChhc2N2YWwpIHsKKwkgICAgY2FzZSBDUjoKKwkgICAgY2FzZSBOTDoKKwkJKmJwID0gMDsJCQkvKiB0ZXJtaW5hdGUgbG9nbmFtZSAqLworCQljcC0+ZW9sID0gYXNjdmFsOwkJLyogc2V0IGVuZC1vZi1saW5lIGNoYXIgKi8KKwkJYnJlYWs7CisJICAgIGNhc2UgQlM6CisJICAgIGNhc2UgREVMOgorCSAgICBjYXNlICcjJzoKKwkJY3AtPmVyYXNlID0gYXNjdmFsOwkJLyogc2V0IGVyYXNlIGNoYXJhY3RlciAqLworCQlpZiAoYnAgPiBsb2duYW1lKSB7CisJCSAgICAodm9pZCkgd3JpdGUoMSwgZXJhc2VbY3AtPnBhcml0eV0sIDMpOworCQkgICAgYnAtLTsKKwkJfQorCQlicmVhazsKKwkgICAgY2FzZSBDVEwoJ1UnKToKKwkgICAgY2FzZSAnQCc6CisJCWNwLT5raWxsID0gYXNjdmFsOwkJLyogc2V0IGtpbGwgY2hhcmFjdGVyICovCisJCXdoaWxlIChicCA+IGxvZ25hbWUpIHsKKwkJICAgICh2b2lkKSB3cml0ZSgxLCBlcmFzZVtjcC0+cGFyaXR5XSwgMyk7CisJCSAgICBicC0tOworCQl9CisJCWJyZWFrOworCSAgICBjYXNlIENUTCgnRCcpOgorCQlleGl0KDApOworCSAgICBkZWZhdWx0OgorCQlpZiAoIWlzYXNjaWkoYXNjdmFsKSB8fCAhaXNwcmludChhc2N2YWwpKSB7CisJCSAgICAgLyogaWdub3JlIGdhcmJhZ2UgY2hhcmFjdGVycyAqLyA7CisJCX0gZWxzZSBpZiAoYnAgLSBsb2duYW1lID49IHNpemVvZihsb2duYW1lKSAtIDEpIHsKKwkJICAgIGVycm9yKF8oIiVzOiBpbnB1dCBvdmVycnVuIiksIG9wLT50dHkpOworCQl9IGVsc2UgeworCQkgICAgKHZvaWQpIHdyaXRlKDEsICZjLCAxKTsJLyogZWNobyB0aGUgY2hhcmFjdGVyICovCisJCSAgICAqYnArKyA9IGFzY3ZhbDsJCS8qIGFuZCBzdG9yZSBpdCAqLworCQl9CisJCWJyZWFrOworCSAgICB9CisJfQorICAgIH0KKyAgICAvKiBIYW5kbGUgbmFtZXMgd2l0aCB1cHBlciBjYXNlIGFuZCBubyBsb3dlciBjYXNlLiAqLworICAgIGlmICgob3AtPmZsYWdzICYgRl9MQ1VDKSAmJiAoY3AtPmNhcHNsb2NrID0gY2Fwc19sb2NrKGxvZ25hbWUpKSkgeworCWZvciAoYnAgPSBsb2duYW1lOyAqYnA7IGJwKyspCisJICAgIGlmIChpc3VwcGVyKCpicCkpCisJCSpicCA9IHRvbG93ZXIoKmJwKTsJCS8qIG1hcCBuYW1lIHRvIGxvd2VyIGNhc2UgKi8KKyAgICB9CisgICAgcmV0dXJuIChsb2duYW1lKTsKK30KKworLyogdGVybWlvX2ZpbmFsIC0gc2V0IHRoZSBmaW5hbCB0dHkgbW9kZSBiaXRzICovCit2b2lkCit0ZXJtaW9fZmluYWwob3AsIHRwLCBjcCkKKyAgICAgc3RydWN0IG9wdGlvbnMgKm9wOworICAgICBzdHJ1Y3QgdGVybWlvcyAqdHA7CisgICAgIHN0cnVjdCBjaGFyZGF0YSAqY3A7Cit7CisgICAgLyogR2VuZXJhbCB0ZXJtaW5hbC1pbmRlcGVuZGVudCBzdHVmZi4gKi8KKworICAgIHRwLT5jX2lmbGFnIHw9IElYT04gfCBJWE9GRjsJCS8qIDItd2F5IGZsb3cgY29udHJvbCAqLworICAgIHRwLT5jX2xmbGFnIHw9IElDQU5PTiB8IElTSUcgfCBFQ0hPIHwgRUNIT0UgfCBFQ0hPS3wgRUNIT0tFOworICAgICAgLyogbm8gbG9uZ2VyfCBFQ0hPQ1RMIHwgRUNIT1BSVCovCisgICAgdHAtPmNfb2ZsYWcgfD0gT1BPU1Q7CisgICAgLyogdHAtPmNfY2ZsYWcgPSAwOyAqLworICAgIHRwLT5jX2NjW1ZJTlRSXSA9IERFRl9JTlRSOwkJCS8qIGRlZmF1bHQgaW50ZXJydXB0ICovCisgICAgdHAtPmNfY2NbVlFVSVRdID0gREVGX1FVSVQ7CQkJLyogZGVmYXVsdCBxdWl0ICovCisgICAgdHAtPmNfY2NbVkVPRl0gPSBERUZfRU9GOwkJCS8qIGRlZmF1bHQgRU9GIGNoYXJhY3RlciAqLworICAgIHRwLT5jX2NjW1ZFT0xdID0gREVGX0VPTDsKKyNpZmRlZiBfX2xpbnV4X18KKyAgICB0cC0+Y19jY1tWU1dUQ10gPSBERUZfU1dJVENIOwkJLyogZGVmYXVsdCBzd2l0Y2ggY2hhcmFjdGVyICovCisjZWxpZiBkZWZpbmVkKFZTV1RDSCkKKyAgICB0cC0+Y19jY1tWU1dUQ0hdID0gREVGX1NXSVRDSDsJCS8qIGRlZmF1bHQgc3dpdGNoIGNoYXJhY3RlciAqLworI2VuZGlmCisKKyAgICAvKiBBY2NvdW50IGZvciBzcGVjaWFsIGNoYXJhY3RlcnMgc2VlbiBpbiBpbnB1dC4gKi8KKworICAgIGlmIChjcC0+ZW9sID09IENSKSB7CisJdHAtPmNfaWZsYWcgfD0gSUNSTkw7CQkJLyogbWFwIENSIGluIGlucHV0IHRvIE5MICovCisJdHAtPmNfb2ZsYWcgfD0gT05MQ1I7CQkJLyogbWFwIE5MIGluIG91dHB1dCB0byBDUi1OTCAqLworICAgIH0KKyAgICB0cC0+Y19jY1tWRVJBU0VdID0gY3AtPmVyYXNlOwkJLyogc2V0IGVyYXNlIGNoYXJhY3RlciAqLworICAgIHRwLT5jX2NjW1ZLSUxMXSA9IGNwLT5raWxsOwkJCS8qIHNldCBraWxsIGNoYXJhY3RlciAqLworCisgICAgLyogQWNjb3VudCBmb3IgdGhlIHByZXNlbmNlIG9yIGFic2VuY2Ugb2YgcGFyaXR5IGJpdHMgaW4gaW5wdXQuICovCisKKyAgICBzd2l0Y2ggKGNwLT5wYXJpdHkpIHsKKyAgICBjYXNlIDA6CQkJCQkvKiBzcGFjZSAoYWx3YXlzIDApIHBhcml0eSAqLworCWJyZWFrOworICAgIGNhc2UgMToJCQkJCS8qIG9kZCBwYXJpdHkgKi8KKwl0cC0+Y19jZmxhZyB8PSBQQVJPREQ7CisJLyogRkFMTFRIUk9VR0ggKi8KKyAgICBjYXNlIDI6CQkJCQkvKiBldmVuIHBhcml0eSAqLworCXRwLT5jX2NmbGFnIHw9IFBBUkVOQjsKKwl0cC0+Y19pZmxhZyB8PSBJTlBDSyB8IElTVFJJUDsKKwkvKiBGQUxMVEhST1VHSCAqLworICAgIGNhc2UgKDEgfCAyKToJCQkJLyogbm8gcGFyaXR5IGJpdCAqLworCXRwLT5jX2NmbGFnICY9IH5DU0laRTsKKwl0cC0+Y19jZmxhZyB8PSBDUzc7CisJYnJlYWs7CisgICAgfQorICAgIC8qIEFjY291bnQgZm9yIHVwcGVyIGNhc2Ugd2l0aG91dCBsb3dlciBjYXNlLiAqLworCisgICAgaWYgKGNwLT5jYXBzbG9jaykgeworI2lmZGVmIElVQ0xDCisJdHAtPmNfaWZsYWcgfD0gSVVDTEM7CisjZW5kaWYKKyNpZmRlZiBYQ0FTRQkKKwl0cC0+Y19sZmxhZyB8PSBYQ0FTRTsKKyNlbmRpZgorI2lmZGVmIE9MQ1VDCisJdHAtPmNfb2ZsYWcgfD0gT0xDVUM7CisjZW5kaWYKKyAgICB9CisgICAgLyogT3B0aW9uYWxseSBlbmFibGUgaGFyZHdhcmUgZmxvdyBjb250cm9sICovCisKKyNpZmRlZglDUlRTQ1RTCisgICAgaWYgKG9wLT5mbGFncyAmIEZfUlRTQ1RTKQorCXRwLT5jX2NmbGFnIHw9IENSVFNDVFM7CisjZW5kaWYKKworICAgIC8qIEZpbmFsbHksIG1ha2UgdGhlIG5ldyBzZXR0aW5ncyBlZmZlY3RpdmUgKi8KKworICAgIGlmICh0Y3NldGF0dHIoMCwgVENTQU5PVywgdHApIDwgMCkKKwllcnJvcigiJXM6IHRjc2V0YXR0cjogVENTQU5PVzogJW0iLCBvcC0+dHR5KTsKK30KKworLyogY2Fwc19sb2NrIC0gc3RyaW5nIGNvbnRhaW5zIHVwcGVyIGNhc2Ugd2l0aG91dCBsb3dlciBjYXNlICovCitpbnQKK2NhcHNfbG9jayhzKQorICAgICBjaGFyICAgKnM7Cit7CisgICAgaW50ICAgICBjYXBzbG9jazsKKworICAgIGZvciAoY2Fwc2xvY2sgPSAwOyAqczsgcysrKSB7CisJaWYgKGlzbG93ZXIoKnMpKQorCSAgICByZXR1cm4gKDApOworCWlmIChjYXBzbG9jayA9PSAwKQorCSAgICBjYXBzbG9jayA9IGlzdXBwZXIoKnMpOworICAgIH0KKyAgICByZXR1cm4gKGNhcHNsb2NrKTsKK30KKworLyogYmNvZGUgLSBjb252ZXJ0IHNwZWVkIHN0cmluZyB0byBzcGVlZCBjb2RlOyByZXR1cm4gMCBvbiBmYWlsdXJlICovCitpbnQKK2Jjb2RlKHMpCisgICAgIGNoYXIgICAqczsKK3sKKyAgICBzdHJ1Y3QgU3BlZWR0YWIgKnNwOworICAgIGxvbmcgICAgc3BlZWQgPSBhdG9sKHMpOworCisgICAgZm9yIChzcCA9IHNwZWVkdGFiOyBzcC0+c3BlZWQ7IHNwKyspCisJaWYgKHNwLT5zcGVlZCA9PSBzcGVlZCkKKwkgICAgcmV0dXJuIChzcC0+Y29kZSk7CisgICAgcmV0dXJuICgwKTsKK30KKworLyogdXNhZ2UgLSBleHBsYWluICovCisKK3ZvaWQKK3VzYWdlKCkKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwgXygiVXNhZ2U6ICVzIFstOGhpTG1Vd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdIGJhdWRfcmF0ZSwuLi4gbGluZSBbdGVybXR5cGVdXG5vclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdIGxpbmUgYmF1ZF9yYXRlLC4uLiBbdGVybXR5cGVdXG4iKSwgcHJvZ25hbWUpOworICAgIGV4aXQoMSk7Cit9CisKKy8qIGVycm9yIC0gcmVwb3J0IGVycm9ycyB0byBjb25zb2xlIG9yIHN5c2xvZzsgb25seSB1bmRlcnN0YW5kcyAlcyBhbmQgJW0gKi8KKworI2RlZmluZQlzdHIyY3B5KGIsczEsczIpCXN0cmNhdChzdHJjcHkoYixzMSksczIpCisKK3ZvaWQKK2Vycm9yKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSB7CisgICAgdmFfbGlzdCBhcDsKKyNpZm5kZWYJVVNFX1NZU0xPRworICAgIGludCAgICAgZmQ7CisjZW5kaWYKKyAgICBjaGFyICAgIGJ1ZltCVUZTSVpdOworICAgIGNoYXIgICAqYnA7CisKKyAgICAvKgorICAgICAqIElmIHRoZSBkaWFnbm9zdGljIGlzIHJlcG9ydGVkIHZpYSBzeXNsb2coMyksIHRoZSBwcm9jZXNzIG5hbWUgaXMKKyAgICAgKiBhdXRvbWF0aWNhbGx5IHByZXBlbmRlZCB0byB0aGUgbWVzc2FnZS4gSWYgd2Ugd3JpdGUgZGlyZWN0bHkgdG8KKyAgICAgKiAvZGV2L2NvbnNvbGUsIHdlIG11c3QgcHJlcGVuZCB0aGUgcHJvY2VzcyBuYW1lIG91cnNlbHZlcy4KKyAgICAgKi8KKworI2lmZGVmIFVTRV9TWVNMT0cKKyAgICBidWZbMF0gPSAnXDAnOworICAgIGJwID0gYnVmOworI2Vsc2UKKyAgICAodm9pZCkgc3RyMmNweShidWYsIHByb2duYW1lLCAiOiAiKTsKKyAgICBicCA9IGJ1ZiArIHN0cmxlbihidWYpOworI2VuZGlmCisKKyAgICAvKgorICAgICAqICVzIGV4cGFuc2lvbiBpcyBkb25lIGJ5IGhhbmQuIE9uIGEgU3lzdGVtIFYgUmVsZWFzZSAyIHN5c3RlbSB3aXRob3V0CisgICAgICogc2hhcmVkIGxpYnJhcmllcyBhbmQgd2l0aG91dCBzeXNsb2coMyksIGxpbmtpbmcgd2l0aCB0aGUgdGhlIHN0ZGlvCisgICAgICogbGlicmFyeSB3b3VsZCBtYWtlIHRoZSBwcm9ncmFtIHRocmVlIHRpbWVzIGFzIGJpZy4uLgorICAgICAqCisgICAgICogJW0gZXhwYW5zaW9uIGlzIGRvbmUgaGVyZSBhcyB3ZWxsLiBUb28gYmFkIHN5c2xvZygzKSBkb2VzIG5vdCBoYXZlIGEKKyAgICAgKiB2c3ByaW50ZigpIGxpa2UgaW50ZXJmYWNlLgorICAgICAqLworCisgICAgdmFfc3RhcnQoYXAsIGZtdCk7CisgICAgd2hpbGUgKCpmbXQgJiYgYnAgPCAmYnVmW0JVRlNJWi0xXSkgeworCWlmIChzdHJuY21wKGZtdCwgIiVzIiwgMikgPT0gMCkgeworCSAgICB4c3RybmNweShicCwgdmFfYXJnKGFwLCBjaGFyICopLCAmYnVmW0JVRlNJWi0xXSAtIGJwKTsKKwkgICAgYnAgKz0gc3RybGVuKGJwKTsKKwkgICAgZm10ICs9IDI7CisJfSBlbHNlIGlmIChzdHJuY21wKGZtdCwgIiVtIiwgMikgPT0gMCkgeworCSAgICB4c3RybmNweShicCwgc3RyZXJyb3IoZXJybm8pLCAmYnVmW0JVRlNJWi0xXSAtIGJwKTsKKwkgICAgYnAgKz0gc3RybGVuKGJwKTsKKwkgICAgZm10ICs9IDI7CisJfSBlbHNlIHsKKwkgICAgKmJwKysgPSAqZm10Kys7CisJfQorICAgIH0KKyAgICAqYnAgPSAwOworICAgIHZhX2VuZChhcCk7CisKKyAgICAvKgorICAgICAqIFdyaXRlIHRoZSBkaWFnbm9zdGljIGRpcmVjdGx5IHRvIC9kZXYvY29uc29sZSBpZiB3ZSBkbyBub3QgdXNlIHRoZQorICAgICAqIHN5c2xvZygzKSBmYWNpbGl0eS4KKyAgICAgKi8KKworI2lmZGVmCVVTRV9TWVNMT0cKKyAgICAodm9pZCkgb3BlbmxvZyhwcm9nbmFtZSwgTE9HX1BJRCwgTE9HX0FVVEhQUklWKTsKKyAgICAodm9pZCkgc3lzbG9nKExPR19FUlIsICIlcyIsIGJ1Zik7CisgICAgY2xvc2Vsb2coKTsKKyNlbHNlCisgICAgLyogVGVybWluYXRlIHdpdGggQ1ItTEYgc2luY2UgdGhlIGNvbnNvbGUgbW9kZSBpcyB1bmtub3duLiAqLworICAgICh2b2lkKSBzdHJjYXQoYnAsICJcclxuIik7CisgICAgaWYgKChmZCA9IG9wZW4oIi9kZXYvY29uc29sZSIsIDEpKSA+PSAwKSB7CisJKHZvaWQpIHdyaXRlKGZkLCBidWYsIHN0cmxlbihidWYpKTsKKwkodm9pZCkgY2xvc2UoZmQpOworICAgIH0KKyNlbmRpZgorICAgICh2b2lkKSBzbGVlcCgodW5zaWduZWQpIDEwKTsJCS8qIGJlIGtpbmQgdG8gaW5pdCg4KSAqLworICAgIGV4aXQoMSk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9jaGVja3R0eS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvY2hlY2t0dHkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjhlZTgzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvY2hlY2t0dHkuYwpAQCAtMCwwICsxLDU3MyBAQAorLyogY2hlY2t0dHkuYyAtIGxpbmtlZCBpbnRvIGxvZ2luLCBjaGVja3MgdXNlciBhZ2FpbnN0IC9ldGMvdXNlcnR0eQorICAgQ3JlYXRlZCAyNS1BdWctOTUgYnkgUGV0ZXIgT3JiYWVrIDxwb2VAZGFpbWkuYWF1LmRrPgorICAgRml4ZWQgYnkgSkRTIEp1bmUgMTk5NiB0byBjbGVhciBsaXN0cyBhbmQgY2xvc2UgZmlsZXMKKworICAgMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgICAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisKKyovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKworI2luY2x1ZGUgPHB3ZC5oPgorI2luY2x1ZGUgPGdycC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8bWFsbG9jLmg+CisjaW5jbHVkZSA8bmV0ZGIuaD4KKyNpbmNsdWRlIDxzeXMvc3lzbG9nLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlICJubHMuaCIKKworI2luY2x1ZGUgPHN5cy9zeXNtYWNyb3MuaD4KKyNpZmRlZiBIQVZFX0xJTlVYX01BSk9SX0gKKyNpbmNsdWRlIDxsaW51eC9tYWpvci5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJsb2dpbi5oIgorI2luY2x1ZGUgInhzdHJuY3B5LmgiCisKKyNpZm5kZWYgVFRZX01BSk9SCisjZGVmaW5lIFRUWV9NQUpPUiA0CisjZW5kaWYKKworc3RhdGljIGdpZF90IG15Z3JvdXBzW05HUk9VUFNdOworc3RhdGljIGludCAgIG51bV9ncm91cHM7CisKKyNkZWZpbmUgTkFNRUxFTiAxMjgKKworLyogbGlua2VkIGxpc3Qgb2YgbmFtZXMgKi8KK3N0cnVjdCBncnBsaXN0IHsKKyAgICBzdHJ1Y3QgZ3JwbGlzdCAqbmV4dDsKKyAgICBjaGFyIG5hbWVbTkFNRUxFTl07Cit9OworICAgICAgICAKK2VudW0gU3RhdGUgeyBTdGF0ZVVzZXJzLCBTdGF0ZUdyb3VwcywgU3RhdGVDbGFzc2VzIH07CisKKyNkZWZpbmUgQ0xBU1NOQU1FTEVOIDMyCisKK3N0cnVjdCB0dHljbGFzcyB7CisgICAgc3RydWN0IGdycGxpc3QgKmZpcnN0OworICAgIHN0cnVjdCB0dHljbGFzcyAqbmV4dDsKKyAgICBjaGFyIGNsYXNzbmFtZVtDTEFTU05BTUVMRU5dOworfTsKKworc3RydWN0IHR0eWNsYXNzICp0dHljbGFzc2VzID0gTlVMTDsKKworc3RhdGljIGludAorYW1faW5fZ3JvdXAoY2hhciAqZ3JvdXApCit7CisJc3RydWN0IGdyb3VwICpnOworCWdpZF90ICpnZTsKKwkKKwlnID0gZ2V0Z3JuYW0oZ3JvdXApOworCWlmIChnKSB7CisJCWZvciAoZ2UgPSBteWdyb3VwczsgZ2UgPCBteWdyb3VwcyArIG51bV9ncm91cHM7IGdlKyspIHsKKwkJCWlmIChnLT5ncl9naWQ9PSAqZ2UpIHJldHVybiAxOworCQl9CisJfQorICAgIAlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2ZpbmRfZ3JvdXBzKGdpZF90IGRlZmdycCwgY29uc3QgY2hhciAqdXNlcikKK3sKKwludW1fZ3JvdXBzID0gZ2V0Z3JvdXBzKE5HUk9VUFMsIG15Z3JvdXBzKTsKK30KKworc3RhdGljIHN0cnVjdCB0dHljbGFzcyAqCituZXdfY2xhc3MoY2hhciAqY2xhc3MpCit7CisgICAgc3RydWN0IHR0eWNsYXNzICp0YzsKKworICAgIHRjID0gKHN0cnVjdCB0dHljbGFzcyAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IHR0eWNsYXNzKSk7CisgICAgaWYgKHRjID09IE5VTEwpIHsKKwlwcmludGYoXygibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iKSk7CisJc3lzbG9nKExPR19XQVJOSU5HLCBfKCJjYW4ndCBtYWxsb2MgZm9yIHR0eWNsYXNzIikpOworCXJldHVybiBOVUxMOworICAgIH0KKworICAgIHRjLT5uZXh0ID0gdHR5Y2xhc3NlczsKKyAgICB0Yy0+Zmlyc3QgPSBOVUxMOworICAgIHhzdHJuY3B5KHRjLT5jbGFzc25hbWUsIGNsYXNzLCBDTEFTU05BTUVMRU4pOworICAgIHR0eWNsYXNzZXMgPSB0YzsKKyAgICByZXR1cm4gdGM7Cit9CisKK3N0YXRpYyB2b2lkCithZGRfdG9fY2xhc3Moc3RydWN0IHR0eWNsYXNzICp0YywgY2hhciAqdHR5KQoreworICAgIHN0cnVjdCBncnBsaXN0ICpnZTsKKworICAgIGlmICh0YyA9PSBOVUxMKSByZXR1cm47CisKKyAgICBnZSA9IChzdHJ1Y3QgZ3JwbGlzdCAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IGdycGxpc3QpKTsKKyAgICBpZiAoZ2UgPT0gTlVMTCkgeworCXByaW50ZihfKCJsb2dpbjogbWVtb3J5IGxvdywgbG9naW4gbWF5IGZhaWxcbiIpKTsKKwlzeXNsb2coTE9HX1dBUk5JTkcsIF8oImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIpKTsKKwlyZXR1cm47CisgICAgfQorCisgICAgZ2UtPm5leHQgPSB0Yy0+Zmlyc3Q7CisgICAgeHN0cm5jcHkoZ2UtPm5hbWUsIHR0eSwgTkFNRUxFTik7CisgICAgdGMtPmZpcnN0ID0gZ2U7Cit9CisKKworLyogcmV0dXJuIHRydWUgaWYgdHR5IGlzIGEgcHR5LiBWZXJ5IGxpbnV4IGRlcGVuZGVudCAqLworc3RhdGljIGludAoraXNhcHR5KGNvbnN0IGNoYXIgKnR0eSkKK3sKKyNpZmRlZiBfX2xpbnV4X18KKyAgICBjaGFyIGRldm5hbWVbMTAwXTsKKyAgICBzdHJ1Y3Qgc3RhdCBzdGI7CisKKyAgICAvKiBhdm9pZCBzbnByaW50ZiAtIG9sZCBzeXN0ZW1zIGRvIG5vdCBoYXZlIGl0ICovCisgICAgaWYgKHN0cmxlbih0dHkpICsgNiA+IHNpemVvZihkZXZuYW1lKSkKKwkgICAgcmV0dXJuIDA7CisgICAgc3ByaW50ZihkZXZuYW1lLCAiL2Rldi8lcyIsIHR0eSk7CisKKyAgICBpZigoc3RhdChkZXZuYW1lLCAmc3RiKSA+PSAwKSAmJiBTX0lTQ0hSKHN0Yi5zdF9tb2RlKSkgeworCSAgICBpbnQgbWFqb3JkZXYgPSBtYWpvcihzdGIuc3RfcmRldik7CisKKwkgICAgLyogdGhpcyBpcyBmb3IgbGludXggdmVyc2lvbnMgYmVmb3JlIDEuMzogdXNlIG1ham9yIDQgKi8KKwkgICAgaWYobWFqb3JkZXYgPT0gVFRZX01BSk9SICYmIG1pbm9yKHN0Yi5zdF9yZGV2KSA+PSAxOTIpCisJCSAgICByZXR1cm4gMTsKKworI2lmIGRlZmluZWQoUFRZX1NMQVZFX01BSk9SKQorCSAgICAvKiB0aGlzIGlzIGZvciBsaW51eCAxLjMgYW5kIG5ld2VyOiB1c2UgbWFqb3IgMyAqLworCSAgICBpZihtYWpvcmRldiA9PSBQVFlfU0xBVkVfTUFKT1IpCisJCSAgICByZXR1cm4gMTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChVTklYOThfUFRZX1NMQVZFX01BSk9SKSAmJiBkZWZpbmVkKFVOSVg5OF9QVFlfTUFKT1JfQ09VTlQpCisJICAgIC8qIHRoaXMgaXMgZm9yIGxpbnV4IDIuMS4xMTYgYW5kIG5ld2VyOiB1c2UgbWFqb3JzIDEzNi0xNDMgKi8KKwkgICAgaWYobWFqb3JkZXYgPj0gVU5JWDk4X1BUWV9TTEFWRV9NQUpPUiAmJgorCSAgICAgICBtYWpvcmRldiA8IFVOSVg5OF9QVFlfU0xBVkVfTUFKT1IgKyBVTklYOThfUFRZX01BSk9SX0NPVU5UKQorCQkgICAgcmV0dXJuIDE7CisjZW5kaWYKKworICAgIH0KKyNlbmRpZgkvKiBfX2xpbnV4X18gKi8KKyAgICByZXR1cm4gMDsKK30KKworCisvKiBJUHY0IC0tIHBhdHRlcm4gaXMgeC54LngueC95LnkueS55IChuZXQvbWFzaykqLworc3RhdGljIGludAoraG5tYXRjaF9pcDQoY29uc3QgY2hhciAqcGF0KQoreworCWludCB4MSwgeDIsIHgzLCB4NCwgeTEsIHkyLCB5MywgeTQ7CisJdW5zaWduZWQgbG9uZyBwLCBtYXNrLCBhOworCXVuc2lnbmVkIGNoYXIgKmhhOworCisJLyogcGF0dGVybiBpcyBhbiBJUCBRVUFEIGFkZHJlc3MgYW5kIGEgbWFzayB4LngueC54L3kueS55LnkgKi8KKwlpZiAoc3NjYW5mKHBhdCwgIiVkLiVkLiVkLiVkLyVkLiVkLiVkLiVkIiwKKwkJCSZ4MSwgJngyLCAmeDMsICZ4NCwgJnkxLCAmeTIsICZ5MywgJnk0KSA8IDgpCisJCXJldHVybiAwOworCisJcCA9ICgoKHVuc2lnbmVkIGxvbmcpeDE8PDI0KSsoKHVuc2lnbmVkIGxvbmcpeDI8PDE2KQorCSAgICAgKygodW5zaWduZWQgbG9uZyl4Mzw8OCkrKCh1bnNpZ25lZCBsb25nKXg0KSk7CisJbWFzayA9ICgoKHVuc2lnbmVkIGxvbmcpeTE8PDI0KSsoKHVuc2lnbmVkIGxvbmcpeTI8PDE2KQorCQkrKCh1bnNpZ25lZCBsb25nKXkzPDw4KSsoKHVuc2lnbmVkIGxvbmcpeTQpKTsKKworCWlmIChob3N0YWRkcmVzc1swXSA9PSAwKQorCQlyZXR1cm4gMDsKKworCWhhID0gKHVuc2lnbmVkIGNoYXIgKilob3N0YWRkcmVzczsKKwlhID0gKCgodW5zaWduZWQgbG9uZyloYVswXTw8MjQpKygodW5zaWduZWQgbG9uZyloYVsxXTw8MTYpCisJICAgICArKCh1bnNpZ25lZCBsb25nKWhhWzJdPDw4KSsoKHVuc2lnbmVkIGxvbmcpaGFbM10pKTsKKwlyZXR1cm4gKChwICYgbWFzaykgPT0gKGEgJiBtYXNrKSk7Cit9CisKKy8qIElQdjYgLS0gcGF0dGVybiBpcyBbaGV4OmhleDouLi4uXS9udW1iZXIgKFtuZXRdL21hc2spICovCitzdGF0aWMgaW50Citobm1hdGNoX2lwNihjb25zdCBjaGFyICpwYXQpCit7CisJY2hhciAqcGF0bmV0OworCWNoYXIgKnBhdG1hc2s7CisJc3RydWN0IGluNl9hZGRyIGFkZHI7CisJc3RydWN0IGFkZHJpbmZvIGhpbnRzLCAqcmVzOworCXN0cnVjdCBzb2NrYWRkcl9pbjYgbmV0OworCWludCBtYXNrX2xlbiwgaSA9IDA7CisJY2hhciAqcDsKKworCWlmIChwYXQgPT0gTlVMTCB8fCAqcGF0ICE9ICdbJykKKwkJcmV0dXJuIDA7CisKKwltZW1jcHkoJmFkZHIsIGhvc3RhZGRyZXNzLCBzaXplb2YoYWRkcikpOworCisJbWVtc2V0KCZoaW50cywgMCwgc2l6ZW9mKGhpbnRzKSk7CisJaGludHMuYWlfZmFtaWx5ID0gQUZfSU5FVDY7CisJaGludHMuYWlfc29ja3R5cGUgPSBTT0NLX1NUUkVBTTsKKwloaW50cy5haV9mbGFncyA9IEFJX1BBU1NJVkUgfCBBSV9OVU1FUklDSE9TVDsKKworCXBhdG5ldCA9IHN0cmR1cChwYXQpOworCisJLyogbWF0Y2ggSVB2NiBhZGRyZXNzIGFnYWluc3QgW25ldG51bWJlcl0vcHJlZml4bGVuICovCisJaWYgKCEocCA9IHN0cmNocihwYXRuZXQsICddJykpKQorCQlnb3RvIG1pc21hdGNoOworCisJKnArKyA9ICdcMCc7CisKKwlpZiAoISAoKnAgPT0gJy8nICYmIGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpICoocCArIDEpKSkpCisJCWdvdG8gbWlzbWF0Y2g7CisKKwlwYXRtYXNrID0gcCArIDE7CisKKwkvKiBwcmVwYXJlIG5ldCBhZGRyZXNzICovCisJaWYgKGdldGFkZHJpbmZvKHBhdG5ldCArIDEsIE5VTEwsICZoaW50cywgJnJlcykgIT0gMCkKKwkJZ290byBtaXNtYXRjaDsKKworCW1lbWNweSgmbmV0LCByZXMtPmFpX2FkZHIsIHNpemVvZihuZXQpKTsKKwlmcmVlYWRkcmluZm8ocmVzKTsKKworCS8qIGNvbnZlcnQgbWFzayB0byBudW1iZXIgKi8KKwlpZiAoKG1hc2tfbGVuID0gYXRvaShwYXRtYXNrKSkgPCAwIHx8IG1hc2tfbGVuID4gMTI4KQorCQlnb3RvIG1pc21hdGNoOworCisJLyogY29tcGFyZSAqLworCXdoaWxlIChtYXNrX2xlbiA+IDApIHsKKwkJaWYgKG1hc2tfbGVuIDwgMzIpIHsKKwkJCXVfaW50MzJfdCBtYXNrID0gaHRvbmwofigweGZmZmZmZmZmID4+IG1hc2tfbGVuKSk7CisKKwkJCWlmICgoKih1X2ludDMyX3QgKikmYWRkci5zNl9hZGRyW2ldICYgbWFzaykgIT0KKwkJCSAgICAoKih1X2ludDMyX3QgKikmbmV0LnNpbjZfYWRkci5zNl9hZGRyW2ldICYgbWFzaykpCisJCQkJZ290byBtaXNtYXRjaDsKKwkJCWJyZWFrOworCQl9CisJCWlmICgqKHVfaW50MzJfdCAqKSZhZGRyLnM2X2FkZHJbaV0gIT0KKwkJICAgICoodV9pbnQzMl90ICopJm5ldC5zaW42X2FkZHIuczZfYWRkcltpXSkKKwkJCWdvdG8gbWlzbWF0Y2g7CisJCWkgKz0gNDsKKwkJbWFza19sZW4gLT0gMzI7CisJfQorCisJZnJlZShwYXRuZXQpOworCXJldHVybiAxOworCittaXNtYXRjaDoKKwlmcmVlKHBhdG5ldCk7CisJcmV0dXJuIDA7Cit9CisKKy8qIG1hdGNoIHRoZSBob3N0bmFtZSBobiBhZ2FpbnN0IHRoZSBwYXR0ZXJuIHBhdCAqLworc3RhdGljIGludAoraG5tYXRjaChjb25zdCBjaGFyICpobiwgY29uc3QgY2hhciAqcGF0KQoreworCisJaWYgKChobiA9PSBOVUxMKSAmJiAoc3RyY21wKHBhdCwgImxvY2FsaG9zdCIpID09IDApKQorCQlyZXR1cm4gMTsKKwlpZiAoKGhuID09IE5VTEwpIHx8ICpobiA9PSAnXDAnKQorCQlyZXR1cm4gMDsKKworCWlmICgqcGF0ID49ICcwJyAmJiAqcGF0IDw9ICc5JykKKwkJcmV0dXJuIGhvc3RmYW1pbHkgPT0gQUZfSU5FVCA/IGhubWF0Y2hfaXA0KHBhdCkgOiAwOworCWVsc2UgaWYgKCpwYXQgPT0gJ1snKQorCQlyZXR1cm4gaG9zdGZhbWlseSA9PSBBRl9JTkVUNiA/IGhubWF0Y2hfaXA2KHBhdCkgOiAwOworCWVsc2UgeworCQkvKiBwYXR0ZXJuIGlzIGEgc3VmZml4IG9mIGEgRlFETiAqLworCQlpbnQgCW4gPSBzdHJsZW4ocGF0KSwKKwkJCW0gPSBzdHJsZW4oaG4pOworCisJCWlmIChuID4gbSkKKwkJCXJldHVybiAwOworCQlyZXR1cm4gKHN0cmNhc2VjbXAocGF0LCBobiArIG0gLSBuKSA9PSAwKTsKKwl9Cit9CisKKyNpZmRlZiBNQUlOX1RFU1RfQ0hFQ0tUVFkKKworY2hhcglob3N0YWRkcmVzc1sxNl07CitzYV9mYW1pbHlfdCBob3N0ZmFtaWx5OworY2hhcgkqaG9zdG5hbWU7Cit2b2lkCXNsZWVwZXhpdChpbnQgZXZhbCkge30JCS8qIGR1bW15IGZvciB0aGlzIHRlc3QgKi8KK3ZvaWQJYmFkbG9naW4oY29uc3QgY2hhciAqcykge30JLyogZHVtbXkgZm9yIHRoaXMgdGVzdCAqLworCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCXN0cnVjdCBhZGRyaW5mbyBoaW50cywgKmluZm8gPSBOVUxMOworCXN0cnVjdCBhZGRyZXhwIHsKKwkJY29uc3QgY2hhciAqcmFuZ2U7CisJCWNvbnN0IGNoYXIgKmlwOworCX0gYWxpc3RbXSA9IHsKKwkJeyAiMTMwLjIyNS4xNi4wLzI1NS4yNTUuMjU0LjAiLAkiMTMwLjIyNS4xNi4xIiB9LAorCQl7ICIxMzAuMjI1LjE2LjAvMjU1LjI1NS4yNTQuMCIsCSIxMC4yMC4zMC4xIiB9LAorCQl7ICIxMzAuMjI1LjAuMC8yNTUuMjU0LjAuMCIsCSIxMzAuMjI1LjE2LjEiIH0sCisJCXsgIjEzMC4yMjUuMC4wLzI1NS4yNTQuMC4wIiwJIjEzMC4yMjUuMTcuMSIgfSwKKwkJeyAiMTMwLjIyNS4wLjAvMjU1LjI1NC4wLjAiLAkiMTUwLjE2MC4xNzAuMTgwIiB9LAorCQl7ICJbM2ZmZTo1MDU6MjoxOjpdLzY0IiwJIjNmZmU6NTA1OjI6MTo6IiB9LAorCQl7ICJbM2ZmZTo1MDU6MjoxOjpdLzY0IiwJIjNmZmU6NTA1OjI6Mjo6IiB9LAorCQl7ICJbM2ZmZTo1MDU6MjoxOjpdLzY0IiwJIjNmZmU6NTA1OjI6MTpmZmZmOmZmZmY6OiIgfSwKKwkJeyBOVUxMLCBOVUxMIH0KKwl9LCAqaXRlbTsKKworCW1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50cykpOworCWhpbnRzLmFpX2ZhbWlseSA9IEFGX1VOU1BFQzsKKwloaW50cy5haV9mbGFncyA9IEFJX05VTUVSSUNIT1NUIHwgIEFJX1BBU1NJVkUgfCBBSV9BRERSQ09ORklHOworCWhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07CisKKwlmb3IgKGl0ZW0gPSBhbGlzdDsgaXRlbS0+cmFuZ2U7IGl0ZW0rKykgeworCisJCXByaW50ZigiaG5tYXRjaCgpIG9uICUtMzBzIDwtLSAlLTE1czogIiwgaXRlbS0+cmFuZ2UsIGl0ZW0tPmlwKTsKKworCQlpZiAoZ2V0YWRkcmluZm8oaXRlbS0+aXAsIE5VTEwsICZoaW50cywgJmluZm8pPT0wICYmIGluZm8pIHsKKwkJCWlmIChpbmZvLT5haV9mYW1pbHkgPT0gQUZfSU5FVCkJeworCQkJICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqc2EgPQorCQkJCSAgICAJKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSBpbmZvLT5haV9hZGRyOworCQkJICAgIG1lbWNweShob3N0YWRkcmVzcywgJihzYS0+c2luX2FkZHIpLAorCQkJCQlzaXplb2Yoc2EtPnNpbl9hZGRyKSk7CisJCQl9CisJCQllbHNlIGlmIChpbmZvLT5haV9mYW1pbHkgPT0gQUZfSU5FVDYpIHsKKwkJCSAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42ICpzYSA9CisJCQkJICAgIAkoc3RydWN0IHNvY2thZGRyX2luNiAqKSBpbmZvLT5haV9hZGRyOworCQkJICAgIG1lbWNweShob3N0YWRkcmVzcywgJihzYS0+c2luNl9hZGRyKSwKKwkJCQkJc2l6ZW9mKHNhLT5zaW42X2FkZHIpKTsKKwkJCX0KKwkJCWhvc3RmYW1pbHkgPSBpbmZvLT5haV9mYW1pbHk7CisJCQlmcmVlYWRkcmluZm8oaW5mbyk7CisJCQlwcmludGYoIiVzXG4iLCBobm1hdGNoKCJkdW1teSIsIGl0ZW0tPnJhbmdlKSA/CisJCQkJCQkibWF0Y2giIDogIm1pc21hdGNoIik7CisJCX0KKwkJZWxzZQorCQkJcHJpbnRmKCJnZXRhZGRyaW5mbygpIGZhaWxlZFxuIik7CisKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTUFJTl9URVNUX0NIRUNLVFRZICovCisKK3N0YXRpYyBjaGFyICp3ZGF5c1tdID0geyAic3VuIiwgIm1vbiIsICJ0dWUiLCAid2VkIiwgInRodSIsICJmcmkiLCAic2F0IiB9OworCisvKiBleGFtcGxlIHRpbWVzcGVjczoKKworICAgbW9uOnR1ZTp3ZWQ6OC0xNworCisgICBtZWFuaW5nIG1vbmRheSwgdHVlc2RheSBvciB3ZWRuZXNkYXkgYmV0d2VlbiA4OjAwIGFuZCAxNzo1OQorCisgICA0OjU6MTM6ZnJpCisKKyAgIG1lYW5pbmcgZnJpZGF5cyBmcm9tIDQ6MDAgdG8gNTo1OSBhbmQgZnJvbSAxMzowMCB0byAxMzo1OQorKi8KK3N0YXRpYyBpbnQKK3RpbWVvayhzdHJ1Y3QgdG0gKnQsIGNoYXIgKnNwZWMpCit7CisgICAgY2hhciAqcCwgKnE7CisgICAgaW50IGRheW9rID0gMDsKKyAgICBpbnQgaG91cm9rID0gMDsKKyAgICBpbnQgaCwgaDI7CisgICAgY2hhciAqc3A7CisKKyAgICBzcCA9IHNwZWM7CisgICAgd2hpbGUgKChwID0gc3Ryc2VwKCZzcCwgIjoiKSkpIHsKKwlpZiAoKnAgPj0gJzAnICYmICpwIDw9ICc5JykgeworCSAgICBoID0gYXRvaShwKTsKKwkgICAgaWYgKGggPT0gdC0+dG1faG91cikgaG91cm9rID0gMTsKKwkgICAgaWYgKChxID0gc3RyY2hyKHAsICctJykpICYmIChxWzFdID49ICcwJyAmJiBxWzFdIDw9ICc5JykpIHsKKwkJaDIgPSBhdG9pKHErMSk7CisJCWlmIChoIDw9IHQtPnRtX2hvdXIgJiYgdC0+dG1faG91ciA8PSBoMikgaG91cm9rID0gMTsKKwkgICAgfQorCX0gZWxzZSBpZiAoc3RyY2FzZWNtcCh3ZGF5c1t0LT50bV93ZGF5XSwgcCkgPT0gMCkgeworCSAgICBkYXlvayA9IDE7CisJfQorICAgIH0KKworICAgIHJldHVybiAoZGF5b2sgJiYgaG91cm9rKTsKK30KKworLyogcmV0dXJuIHRydWUgaWYgdHR5IGVxdWFscyBjbGFzcyBvciBpcyBpbiB0aGUgY2xhc3MgZGVmaW5lZCBieSBjbGFzcy4KKyAgIEFsc28gcmV0dXJuIHRydWUgaWYgaG9zdG5hbWUgbWF0Y2hlcyB0aGUgaG9zdG5hbWUgcGF0dGVybiwgY2xhc3MKKyAgIG9yIGEgcGF0dGVybiBpbiB0aGUgY2xhc3MgbmFtZWQgYnkgY2xhc3MuICovCitzdGF0aWMgaW50Citpbl9jbGFzcyhjb25zdCBjaGFyICp0dHksIGNoYXIgKmNsYXNzKQoreworICAgIHN0cnVjdCB0dHljbGFzcyAqdGM7CisgICAgc3RydWN0IGdycGxpc3QgKmdlOworICAgIHRpbWVfdCB0OworICAgIGNoYXIgKnA7CisgICAgY2hhciB0aW1lc3BlY1syNTZdOworICAgIHN0cnVjdCB0bSAqdG07CisgICAgY2hhciAqbjsKKworICAgIHRpbWUoJnQpOworICAgIHRtID0gbG9jYWx0aW1lKCZ0KTsKKworICAgIGlmIChjbGFzc1swXSA9PSAnWycpIHsKKwlpZiAoKHAgPSBzdHJjaHIoY2xhc3MsICddJykpKSB7CisJICAgICpwID0gMDsKKwkgICAgeHN0cm5jcHkodGltZXNwZWMsIGNsYXNzKzEsIHNpemVvZih0aW1lc3BlYykpOworCSAgICAqcCA9ICddJzsKKwkgICAgaWYoIXRpbWVvayh0bSwgdGltZXNwZWMpKSByZXR1cm4gMDsKKwkgICAgY2xhc3MgPSBwKzE7CisJfQorCS8qIHJlYWxseSBvdWdodCB0byB3YXJuIGFib3V0IHN5bnRheCBlcnJvciAqLworICAgIH0KKworICAgIGlmIChzdHJjbXAodHR5LCBjbGFzcykgPT0gMCkgcmV0dXJuIDE7CisKKyAgICBpZiAoKGNsYXNzWzBdID09ICdAJykgJiYgaXNhcHR5KHR0eSkKKwkmJiBobm1hdGNoKGhvc3RuYW1lLCBjbGFzcysxKSkgcmV0dXJuIDE7CisKKyAgICBmb3IgKHRjID0gdHR5Y2xhc3NlczsgdGM7IHRjID0gdGMtPm5leHQpIHsKKwlpZiAoc3RyY21wKHRjLT5jbGFzc25hbWUsIGNsYXNzKSA9PSAwKSB7CisJICAgIGZvciAoZ2UgPSB0Yy0+Zmlyc3Q7IGdlOyBnZSA9IGdlLT5uZXh0KSB7CisKKwkJbiA9IGdlLT5uYW1lOworCQlpZiAoblswXSA9PSAnWycpIHsKKwkJICAgIGlmICgocCA9IHN0cmNocihuLCAnXScpKSkgeworCQkJKnAgPSAwOworCQkJeHN0cm5jcHkodGltZXNwZWMsIG4rMSwgc2l6ZW9mKHRpbWVzcGVjKSk7CisJCQkqcCA9ICddJzsKKwkJCWlmKCF0aW1lb2sodG0sIHRpbWVzcGVjKSkgY29udGludWU7CisJCQluID0gcCsxOworCQkgICAgfQorCQkgICAgLyogcmVhbGx5IG91Z2h0IHRvIHdhcm4gYWJvdXQgc3ludGF4IGVycm9yICovCisJCX0KKworCQlpZiAoc3RyY21wKG4sIHR0eSkgPT0gMCkgcmV0dXJuIDE7CisKKwkJaWYgKChuWzBdID09ICdAJykgJiYgaXNhcHR5KHR0eSkKKwkJICAgICYmIGhubWF0Y2goaG9zdG5hbWUsIG4rMSkpIHJldHVybiAxOworCSAgICB9CisJICAgIHJldHVybiAwOworCX0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKy8qIHN0YXJ0IEpEUyAtIFNCQSAqLworc3RhdGljIHZvaWQgCitmcmVlX2dyb3VwKHN0cnVjdCBncnBsaXN0ICpnZSkKK3sKKyAgICBpZiAoZ2UpIHsKKwltZW1zZXQoZ2UtPm5hbWUsIDAsIE5BTUVMRU4pOworCWZyZWVfZ3JvdXAoZ2UtPm5leHQpOworCWZyZWUoZ2UtPm5leHQpOworCWdlLT5uZXh0ID0gTlVMTDsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIAorZnJlZV9jbGFzcyhzdHJ1Y3QgdHR5Y2xhc3MgKnRjKQoreworICAgIGlmICh0YykgeworCW1lbXNldCh0Yy0+Y2xhc3NuYW1lLCAwLCBDTEFTU05BTUVMRU4pOworCWZyZWVfZ3JvdXAodGMtPmZpcnN0KTsKKwl0Yy0+Zmlyc3QgPSBOVUxMOworCWZyZWVfY2xhc3ModGMtPm5leHQpOworCWZyZWUodGMtPm5leHQpOworCXRjLT5uZXh0ID0gTlVMTDsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIAorZnJlZV9hbGwodm9pZCkKK3sKKyAgICBmcmVlX2NsYXNzKHR0eWNsYXNzZXMpOworICAgIHR0eWNsYXNzZXMgPSBOVUxMOworfQorLyogZW5kIEpEUyAtIFNCQSAqLworCit2b2lkCitjaGVja3R0eShjb25zdCBjaGFyICp1c2VyLCBjb25zdCBjaGFyICp0dHksIHN0cnVjdCBwYXNzd2QgKnB3ZCkKK3sKKyAgICBGSUxFICpmOworICAgIGNoYXIgYnVmWzI1Nl0sIGRlZmF1bHRidWZbMjU2XTsKKyAgICBjaGFyICpwdHI7CisgICAgZW51bSBTdGF0ZSBzdGF0ZSA9IFN0YXRlVXNlcnM7CisgICAgaW50IGZvdW5kX21hdGNoID0gMDsKKworICAgIC8qIG5vIC9ldGMvdXNlcnR0eSwgZGVmYXVsdCB0byBhbGxvdyBhY2Nlc3MgKi8KKyAgICBpZiAoIShmID0gZm9wZW4oX1BBVEhfVVNFUlRUWSwgInIiKSkpIHJldHVybjsKKworICAgIGlmIChwd2QgPT0gTlVMTCkgeworCWZjbG9zZShmKTsKKwlyZXR1cm47ICAvKiBtaXNzcGVsbGVkIHVzZXJuYW1lIGhhbmRsZWQgZWxzZXdoZXJlICovCisgICAgfQorCisgICAgZmluZF9ncm91cHMocHdkLT5wd19naWQsIHVzZXIpOworCisgICAgZGVmYXVsdGJ1ZlswXSA9IDA7CisgICAgd2hpbGUoZmdldHMoYnVmLCAyNTUsIGYpKSB7CisKKwkvKiBzdHJpcCBjb21tZW50cyAqLworCWZvcihwdHIgPSBidWY7IHB0ciA8IGJ1ZiArIDI1NjsgcHRyKyspIAorCSAgaWYoKnB0ciA9PSAnIycpICpwdHIgPSAwOworCisJaWYgKGJ1ZlswXSA9PSAnKicpIHsKKwkgICAgeHN0cm5jcHkoZGVmYXVsdGJ1ZiwgYnVmLCAyNTYpOworCSAgICBjb250aW51ZTsKKwl9CisKKwlpZiAoc3RybmNtcCgiR1JPVVBTIiwgYnVmLCA2KSA9PSAwKSB7CisJICAgIHN0YXRlID0gU3RhdGVHcm91cHM7CisJICAgIGNvbnRpbnVlOworCX0gZWxzZSBpZiAoc3RybmNtcCgiVVNFUlMiLCBidWYsIDUpID09IDApIHsKKwkgICAgc3RhdGUgPSBTdGF0ZVVzZXJzOworCSAgICBjb250aW51ZTsKKwl9IGVsc2UgaWYgKHN0cm5jbXAoIkNMQVNTRVMiLCBidWYsIDcpID09IDApIHsKKwkgICAgc3RhdGUgPSBTdGF0ZUNsYXNzZXM7CisJICAgIGNvbnRpbnVlOworCX0KKworCXN0cnRvayhidWYsICIgXHQiKTsKKwlpZigoc3RhdGUgPT0gU3RhdGVVc2VycyAmJiAoc3RybmNtcCh1c2VyLCBidWYsIDgpID09IDApKQorCSAgIHx8IChzdGF0ZSA9PSBTdGF0ZUdyb3VwcyAmJiBhbV9pbl9ncm91cChidWYpKSkgeworCSAgICBmb3VuZF9tYXRjaCA9IDE7ICAvKiB3ZSBmb3VuZCBhIGxpbmUgbWF0Y2hpbmcgdGhlIHVzZXIgKi8KKwkgICAgd2hpbGUoKHB0ciA9IHN0cnRvayhOVUxMLCAiXHRcbiAiKSkpIHsKKwkJaWYgKGluX2NsYXNzKHR0eSwgcHRyKSkgeworCQkgICAgZmNsb3NlKGYpOworCQkgICAgZnJlZV9hbGwoKTsgLyogSkRTICovCisJCSAgICByZXR1cm47CisJCX0KKwkgICAgfQorCX0gZWxzZSBpZiAoc3RhdGUgPT0gU3RhdGVDbGFzc2VzKSB7CisJICAgIC8qIGRlZmluZSBhIG5ldyB0dHkvaG9zdCBjbGFzcyAqLworCSAgICBzdHJ1Y3QgdHR5Y2xhc3MgKnRjID0gbmV3X2NsYXNzKGJ1Zik7CisKKwkgICAgd2hpbGUgKChwdHIgPSBzdHJ0b2soTlVMTCwgIlx0XG4gIikpKSB7CisJCWFkZF90b19jbGFzcyh0YywgcHRyKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgZmNsb3NlKGYpOworCisgICAgLyogdXNlciBpcyBub3QgZXhwbGljaXRseSBtZW50aW9uZWQgaW4gL2V0Yy91c2VydHR5LCBpZiB0aGVyZSB3YXMKKyAgICAgICBhIGRlZmF1bHQgcnVsZSwgdXNlIHRoYXQgKi8KKyAgICBpZiAoZGVmYXVsdGJ1ZlswXSkgeworCXN0cnRvayhkZWZhdWx0YnVmLCAiIFx0Iik7CisJd2hpbGUoKHB0ciA9IHN0cnRvayhOVUxMLCAiXHRcbiAiKSkpIHsKKwkgICAgaWYgKGluX2NsYXNzKHR0eSwgcHRyKSkgeworCQlmcmVlX2FsbCgpOyAvKiBKRFMgKi8KKwkJcmV0dXJuOworCSAgICB9CisJfQorCisJLyogdGhlcmUgd2FzIGEgZGVmYXVsdCBydWxlLCBidXQgdXNlciBkaWRuJ3QgbWF0Y2gsIHJlamVjdCEgKi8KKwlwcmludGYoXygiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIpLCB0dHksIGhvc3RuYW1lKTsKKwliYWRsb2dpbih1c2VyKTsKKwlzbGVlcGV4aXQoMSk7CisgICAgfQorCisgICAgaWYgKGZvdW5kX21hdGNoKSB7CisJLyogaWYgd2UgZ2V0IGhlcmUsIC9ldGMvdXNlcnR0eSBleGlzdHMsIHRoZXJlJ3MgYSBsaW5lCisJICAgbWF0Y2hpbmcgb3VyIHVzZXJuYW1lLCBidXQgaXQgZG9lc24ndCBjb250YWluIHRoZQorCSAgIG5hbWUgb2YgdGhlIHR0eSB3aGVyZSB0aGUgdXNlciBpcyB0cnlpbmcgdG8gbG9nIGluLgorCSAgIFNvIGRlbnkgYWNjZXNzISAqLworCisJcHJpbnRmKF8oIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIiksIHR0eSwgaG9zdG5hbWUpOworCWJhZGxvZ2luKHVzZXIpOworCXNsZWVwZXhpdCgxKTsKKyAgICB9CisKKyAgICAvKiB1c2VycyBub3QgbWF0Y2hlZCBpbiAvZXRjL3VzZXJ0dHkgYXJlIGJ5IGRlZmF1bHQgYWxsb3dlZCBhY2Nlc3MKKyAgICAgICBvbiBhbGwgdHR5J3MgKi8KKyAgICBmcmVlX2FsbCgpOyAvKiBKRFMgKi8KK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2NoZm4uMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2NoZm4uMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzI4Y2M4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvY2hmbi4xCkBAIC0wLDAgKzEsNzggQEAKKy5cIgorLlwiICBjaGZuLjEgLS0gY2hhbmdlIHlvdXIgZmluZ2VyIGluZm9ybWF0aW9uCisuXCIgIChjKSAxOTk0IGJ5IHNhbHZhdG9yZSB2YWxlbnRlIDxzdmFsZW50ZUBhdGhlbmEubWl0LmVkdT4KKy5cIgorLlwiICB0aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZS4gIHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZAorLlwiICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBnbnUgZ2VuZXJhbCBwdWJsaWMgbGljZW5zZS4KKy5cIiAgdGhlcmUgaXMgbm8gd2FycmFudHkuCisuXCIKKy5cIiAgJEF1dGhvcjogZmFpdGggJAorLlwiICAkUmV2aXNpb246IDEuMSAkCisuXCIgICREYXRlOiAxOTk1LzAzLzEyIDAxOjI5OjE2ICQKKy5cIgorLlRIIENIRk4gMSAiT2N0b2JlciAxMyAxOTk0IiAiY2hmbiIgIkxpbnV4IFJlZmVyZW5jZSBNYW51YWwiCisuU0ggTkFNRQorY2hmbiBcLSBjaGFuZ2UgeW91ciBmaW5nZXIgaW5mb3JtYXRpb24KKy5TSCBTWU5PUFNJUworLkIgY2hmbgorLlJCIFsgXC1mCisuSVIgZnVsbC1uYW1lIF0KKy5SQiBbIFwtbworLklSIG9mZmljZSBdCissUkIgWyBcLXAKKy5JUiBvZmZpY2UtcGhvbmUgXQorLlJCIFsgXC1oCisuSVIgaG9tZS1waG9uZSBdCisuQlIgXC11IF0KKy5SQiBbIFwtdiBdCisuUkkgWyB1c2VybmFtZSBdCisuU0ggREVTQ1JJUFRJT04KKy5CIGNoZm4KK2lzIHVzZWQgdG8gY2hhbmdlIHlvdXIgZmluZ2VyIGluZm9ybWF0aW9uLiAgVGhpcyBpbmZvcm1hdGlvbiBpcworc3RvcmVkIGluIHRoZQorLkkgL2V0Yy9wYXNzd2QKK2ZpbGUsIGFuZCBpcyBkaXNwbGF5ZWQgYnkgdGhlCisuQiBmaW5nZXIKK3Byb2dyYW0uICBUaGUgTGludXgKKy5CIGZpbmdlcgorY29tbWFuZCB3aWxsIGRpc3BsYXkgZm91ciBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgY2hhbmdlZCBieQorLkJSIGNoZm4gOgoreW91ciByZWFsIG5hbWUsIHlvdXIgd29yayByb29tIGFuZCBwaG9uZSwgYW5kIHlvdXIgaG9tZSBwaG9uZS4KKy5TUyBDT01NQU5EIExJTkUKK0FueSBvZiB0aGUgZm91ciBwaWVjZXMgb2YgaW5mb3JtYXRpb24gY2FuIGJlIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZAorbGluZS4gIElmIG5vIGluZm9ybWF0aW9uIGlzIGdpdmVuIG9uIHRoZSBjb21tYW5kIGxpbmUsCisuQiBjaGZuCitlbnRlcnMgaW50ZXJhY3RpdmUgbW9kZS4KKy5TUyBJTlRFUkFDVElWRSBNT0RFCitJbiBpbnRlcmFjdGl2ZSBtb2RlLAorLkIgY2hmbgord2lsbCBwcm9tcHQgZm9yIGVhY2ggZmllbGQuICBBdCBhIHByb21wdCwgeW91IGNhbiBlbnRlciB0aGUgbmV3IGluZm9ybWF0aW9uLAorb3IganVzdCBwcmVzcyByZXR1cm4gdG8gbGVhdmUgdGhlIGZpZWxkIHVuY2hhbmdlZC4gIEVudGVyIHRoZSBrZXl3b3JkCisibm9uZSIgdG8gbWFrZSB0aGUgZmllbGQgYmxhbmsuCisuU0ggT1BUSU9OUworLlRQCisuQkkgIlwtZiwgXC1cLWZ1bGwtbmFtZSAiIGZ1bGwtbmFtZQorU3BlY2lmeSB5b3VyIHJlYWwgbmFtZS4KKy5UUAorLkJJICJcLW8sIFwtXC1vZmZpY2UgIiBvZmZpY2UKK1NwZWNpZnkgeW91ciBvZmZpY2Ugcm9vbSBudW1iZXIuCisuVFAKKy5CSSAiXC1wLCBcLVwtb2ZmaWNlLXBob25lICIgb2ZmaWNlLXBob25lCitTcGVjaWZ5IHlvdXIgb2ZmaWNlIHBob25lIG51bWJlci4KKy5UUAorLkJJICJcLWgsIFwtXC1ob21lLXBob25lICIgaG9tZS1waG9uZQorU3BlY2lmeSB5b3VyIGhvbWUgcGhvbmUgbnVtYmVyLgorLlRQCisuQiAiXC11LCBcLVwtaGVscCIKK1ByaW50IGEgdXNhZ2UgbWVzc2FnZSBhbmQgZXhpdC4KKy5UUAorLkIgIi12LCBcLVwtdmVyc2lvbiIKK1ByaW50IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQuCisuU0ggIlNFRSBBTFNPIgorLkJSIGZpbmdlciAoMSksCisuQlIgcGFzc3dkICg1KQorLlNIIEFVVEhPUgorU2FsdmF0b3JlIFZhbGVudGUgPHN2YWxlbnRlQG1pdC5lZHU+CisuU0ggQVZBSUxBQklMSVRZCitUaGUgY2hmbiBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2NoZm4uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2NoZm4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjhjYmVhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvY2hmbi5jCkBAIC0wLDAgKzEsNTMzIEBACisvKgorICogICBjaGZuLmMgLS0gY2hhbmdlIHlvdXIgZmluZ2VyIGluZm9ybWF0aW9uCisgKiAgIChjKSAxOTk0IGJ5IHNhbHZhdG9yZSB2YWxlbnRlIDxzdmFsZW50ZUBhdGhlbmEubWl0LmVkdT4KKyAqCisgKiAgIHRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlLiAgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kCisgKiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIGdudSBnZW5lcmFsIHB1YmxpYyBsaWNlbnNlLgorICogICB0aGVyZSBpcyBubyB3YXJyYW50eS4KKyAqCisgKiAgICRBdXRob3I6IGFlYnIgJAorICogICAkUmV2aXNpb246IDEuMTggJAorICogICAkRGF0ZTogMTk5OC8wNi8xMSAyMjozMDoxMSAkCisgKgorICogVXBkYXRlZCBUaHUgT2N0IDEyIDA5OjE5OjI2IDE5OTUgYnkgZmFpdGhAY3MudW5jLmVkdSB3aXRoIHNlY3VyaXR5CisgKiBwYXRjaGVzIGZyb20gWmVmcmFtIDxBLk1haW5AZGNzLndhcndpY2suYWMudWs+CisgKgorICogSGFja2VkIGJ5IFBldGVyIEJyZWl0ZW5sb2huZXIsIHBlYkBtcHBtdS5tcGcuZGUsCisgKiB0byByZW1vdmUgdHJhaWxpbmcgZW1wdHkgZmllbGRzLiAgT2N0IDUsIDk2LgorICoKKyAqICAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqICAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisgKiAgICAKKyAqCisgKi8KKworI2RlZmluZSBfQlNEX1NPVVJDRSAgICAgICAgICAgLyogZm9yIHN0cmNhc2VjbXAoKSAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxwd2QuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSAibXlfY3J5cHQuaCIKKyNpbmNsdWRlICJpc2xvY2FsLmgiCisjaW5jbHVkZSAic2V0cHduYW0uaCIKKyNpbmNsdWRlICJ4c3RybmNweS5oIgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgImVudi5oIgorCisjaWZkZWYgSEFWRV9MSUJTRUxJTlVYCisjaW5jbHVkZSA8c2VsaW51eC9zZWxpbnV4Lmg+CisjaW5jbHVkZSA8c2VsaW51eC9hdl9wZXJtaXNzaW9ucy5oPgorI2luY2x1ZGUgInNlbGludXhfdXRpbHMuaCIKKyNlbmRpZgorCisjaWYgZGVmaW5lZChSRVFVSVJFX1BBU1NXT1JEKSAmJiBkZWZpbmVkKEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSCkKKyNpbmNsdWRlIDxzZWN1cml0eS9wYW1fYXBwbC5oPgorI2luY2x1ZGUgPHNlY3VyaXR5L3BhbV9taXNjLmg+CisKKyNkZWZpbmUgUEFNX0ZBSUxfQ0hFQ0soX3BoLCBfcmMpIFwKKyAgICBkbyB7IFwKKwlpZiAoKF9yYykgIT0gUEFNX1NVQ0NFU1MpIHsgXAorCSAgICBmcHJpbnRmKHN0ZGVyciwgIlxuJXNcbiIsIHBhbV9zdHJlcnJvcigoX3BoKSwgKF9yYykpKTsgXAorCSAgICBwYW1fZW5kKChfcGgpLCAoX3JjKSk7IFwKKwkgICAgZXhpdCgxKTsgXAorCX0gXAorICAgIH0gd2hpbGUoMCkKKworI2VuZGlmCisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBib29sZWFuOworI2RlZmluZSBmYWxzZSAwCisjZGVmaW5lIHRydWUgMQorCitzdGF0aWMgY2hhciAqd2hvYW1pOworCitzdGF0aWMgY2hhciBidWZbMTAyNF07CisKK3N0cnVjdCBmaW5mbyB7CisgICAgc3RydWN0IHBhc3N3ZCAqcHc7CisgICAgY2hhciAqdXNlcm5hbWU7CisgICAgY2hhciAqZnVsbF9uYW1lOworICAgIGNoYXIgKm9mZmljZTsKKyAgICBjaGFyICpvZmZpY2VfcGhvbmU7CisgICAgY2hhciAqaG9tZV9waG9uZTsKKyAgICBjaGFyICpvdGhlcjsKK307CisKK3N0YXRpYyBib29sZWFuIHBhcnNlX2FyZ3YgKGludCBhcmdjLCBjaGFyICphcmd2W10sIHN0cnVjdCBmaW5mbyAqcGluZm8pOworc3RhdGljIHZvaWQgdXNhZ2UgKEZJTEUgKmZwKTsKK3N0YXRpYyB2b2lkIHBhcnNlX3Bhc3N3ZCAoc3RydWN0IHBhc3N3ZCAqcHcsIHN0cnVjdCBmaW5mbyAqcGluZm8pOworc3RhdGljIHZvaWQgYXNrX2luZm8gKHN0cnVjdCBmaW5mbyAqb2xkZnAsIHN0cnVjdCBmaW5mbyAqbmV3ZnApOworc3RhdGljIGNoYXIgKnByb21wdCAoY2hhciAqcXVlc3Rpb24sIGNoYXIgKmRlZl92YWwpOworc3RhdGljIGludCBjaGVja19nZWNvc19zdHJpbmcgKGNoYXIgKm1zZywgY2hhciAqZ2Vjb3MpOworc3RhdGljIGJvb2xlYW4gc2V0X2NoYW5nZWRfZGF0YSAoc3RydWN0IGZpbmZvICpvbGRmcCwgc3RydWN0IGZpbmZvICpuZXdmcCk7CitzdGF0aWMgaW50IHNhdmVfbmV3X2RhdGEgKHN0cnVjdCBmaW5mbyAqcGluZm8pOworc3RhdGljIHZvaWQgKnhtYWxsb2MgKGludCBieXRlcyk7CisKKyNkZWZpbmUgbWVtemVybyhwdHIsIHNpemUpIG1lbXNldCgoY2hhciAqKSBwdHIsIDAsIHNpemUpCisKKy8qIHdlIGRvIG5vdCBhY2NlcHQgZ2Vjb3MgZmllbGQgc2l6ZXMgbG9uZ2VyIHRoYW4gTUFYX0ZJRUxEX1NJWkUgKi8KKyNkZWZpbmUgTUFYX0ZJRUxEX1NJWkUJCTI1NgorCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgY2hhciAqY3A7CisgICAgdWlkX3QgdWlkOworICAgIHN0cnVjdCBmaW5mbyBvbGRmLCBuZXdmOworICAgIGJvb2xlYW4gaW50ZXJhY3RpdmU7CisgICAgaW50IHN0YXR1czsKKworICAgIHNhbml0aXplX2VudigpOworICAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsJLyogYm90aCBmb3IgbWVzc2FnZXMgYW5kIGZvciBpc2NudHJsKCkgYmVsb3cgKi8KKyAgICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICAgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgICAvKiB3aG9hbWkgaXMgdGhlIHByb2dyYW0gbmFtZSBmb3IgZXJyb3IgbWVzc2FnZXMgKi8KKyAgICB3aG9hbWkgPSBhcmd2WzBdOworICAgIGlmICghIHdob2FtaSkgd2hvYW1pID0gImNoZm4iOworICAgIGZvciAoY3AgPSB3aG9hbWk7ICpjcDsgY3ArKykKKwlpZiAoKmNwID09ICcvJykgd2hvYW1pID0gY3AgKyAxOworCisgICAgLyoKKyAgICAgKgkib2xkZiIgY29udGFpbnMgdGhlIHVzZXJzIG9yaWdpbmFsIGZpbmdlciBpbmZvcm1hdGlvbi4KKyAgICAgKgkibmV3ZiIgY29udGFpbnMgdGhlIGNoYW5nZWQgZmluZ2VyIGluZm9ybWF0aW9uLCBhbmQgY29udGFpbnMgTlVMTAorICAgICAqCSAgICAgICBpbiBmaWVsZHMgdGhhdCBoYXZlbid0IGJlZW4gY2hhbmdlZC4KKyAgICAgKglpbiB0aGUgZW5kLCAibmV3ZiIgaXMgZm9sZGVkIGludG8gIm9sZGYiLgorICAgICAqCXRoZSByZWFzb24gdGhlIG5ldyBmaW5nZXIgaW5mb3JtYXRpb24gaXMgbm90IHB1dCBfaW1tZWRpYXRlbHlfIGludG8KKyAgICAgKgkib2xkZiIgaXMgdGhhdCBvbiB0aGUgY29tbWFuZCBsaW5lLCBuZXcgZmluZ2VyIGluZm9ybWF0aW9uIGNhbgorICAgICAqCWJlIHNwZWNpZmllZCBiZWZvcmUgd2Uga25vdyB3aGF0IHVzZXIgdGhlIGluZm9ybWF0aW9uIGlzIGJlaW5nCisgICAgICoJc3BlY2lmaWVkIGZvci4KKyAgICAgKi8KKyAgICB1aWQgPSBnZXR1aWQgKCk7CisgICAgbWVtemVybyAoJm9sZGYsIHNpemVvZiAob2xkZikpOworICAgIG1lbXplcm8gKCZuZXdmLCBzaXplb2YgKG5ld2YpKTsKKworICAgIGludGVyYWN0aXZlID0gcGFyc2VfYXJndiAoYXJnYywgYXJndiwgJm5ld2YpOworICAgIGlmICghIG5ld2YudXNlcm5hbWUpIHsKKwlwYXJzZV9wYXNzd2QgKGdldHB3dWlkICh1aWQpLCAmb2xkZik7CisJaWYgKCEgb2xkZi51c2VybmFtZSkgeworCSAgICBmcHJpbnRmIChzdGRlcnIsIF8oIiVzOiB5b3UgKHVzZXIgJWQpIGRvbid0IGV4aXN0LlxuIiksIHdob2FtaSwgdWlkKTsKKwkgICAgcmV0dXJuICgtMSk7IH0KKyAgICB9CisgICAgZWxzZSB7CisJcGFyc2VfcGFzc3dkIChnZXRwd25hbSAobmV3Zi51c2VybmFtZSksICZvbGRmKTsKKwlpZiAoISBvbGRmLnVzZXJuYW1lKSB7CisJICAgIGNwID0gbmV3Zi51c2VybmFtZTsKKwkgICAgZnByaW50ZiAoc3RkZXJyLCBfKCIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iKSwgd2hvYW1pLCBjcCk7CisJICAgIHJldHVybiAoLTEpOyB9CisgICAgfQorCisgICAgaWYgKCEoaXNfbG9jYWwob2xkZi51c2VybmFtZSkpKSB7CisgICAgICAgZnByaW50ZiAoc3RkZXJyLCBfKCIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iKSwKKyAgICAgICAgICAgd2hvYW1pLCB3aG9hbWkpOworICAgICAgIGV4aXQoMSk7CisgICAgfQorCisjaWZkZWYgSEFWRV9MSUJTRUxJTlVYCisgICAgaWYgKGlzX3NlbGludXhfZW5hYmxlZCgpID4gMCkgeworICAgICAgaWYodWlkID09IDApIHsKKwlpZiAoY2hlY2tBY2Nlc3Mob2xkZi51c2VybmFtZSxQQVNTV0RfX0NIRk4pIT0wKSB7CisJICBzZWN1cml0eV9jb250ZXh0X3QgdXNlcl9jb250ZXh0OworCSAgaWYgKGdldHByZXZjb24oJnVzZXJfY29udGV4dCkgPCAwKQorCSAgICB1c2VyX2NvbnRleHQ9KHNlY3VyaXR5X2NvbnRleHRfdCkgc3RyZHVwKF8oIlVua25vd24gdXNlciBjb250ZXh0IikpOworCSAgZnByaW50ZihzdGRlcnIsIF8oIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIGZpbmdlciBpbmZvIG9mICVzXG4iKSwKKwkJICB3aG9hbWksIHVzZXJfY29udGV4dCwgb2xkZi51c2VybmFtZSk7CisJICBmcmVlY29uKHVzZXJfY29udGV4dCk7CisJICBleGl0KDEpOworCX0KKyAgICAgIH0KKyAgICAgIGlmIChzZXR1cERlZmF1bHRDb250ZXh0KCIvZXRjL3Bhc3N3ZCIpICE9IDApIHsKKwlmcHJpbnRmKHN0ZGVycixfKCIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiKSwKKwkJd2hvYW1pKTsKKwlleGl0KDEpOworICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgLyogUmVhbGl0eSBjaGVjayAqLworICAgIGlmICh1aWQgIT0gMCAmJiB1aWQgIT0gb2xkZi5wdy0+cHdfdWlkKSB7CisJZXJybm8gPSBFQUNDRVM7CisJcGVycm9yICh3aG9hbWkpOworCXJldHVybiAoLTEpOworICAgIH0KKworICAgIHByaW50ZiAoXygiQ2hhbmdpbmcgZmluZ2VyIGluZm9ybWF0aW9uIGZvciAlcy5cbiIpLCBvbGRmLnVzZXJuYW1lKTsKKworI2lmZGVmIFJFUVVJUkVfUEFTU1dPUkQKKyNpZmRlZiBIQVZFX1NFQ1VSSVRZX1BBTV9NSVNDX0gKKyAgICBpZih1aWQgIT0gMCkgeworCXBhbV9oYW5kbGVfdCAqcGFtaCA9IE5VTEw7CisJc3RydWN0IHBhbV9jb252IGNvbnYgPSB7IG1pc2NfY29udiwgTlVMTCB9OworCWludCByZXRjb2RlOworCisJcmV0Y29kZSA9IHBhbV9zdGFydCgiY2hmbiIsIG9sZGYudXNlcm5hbWUsICZjb252LCAmcGFtaCk7CisJaWYocmV0Y29kZSAhPSBQQU1fU1VDQ0VTUykgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgXygiJXM6IFBBTSBmYWlsdXJlLCBhYm9ydGluZzogJXNcbiIpLAorCQkgICAgd2hvYW1pLCBwYW1fc3RyZXJyb3IocGFtaCwgcmV0Y29kZSkpOworCSAgICBleGl0KDEpOworCX0KKworCXJldGNvZGUgPSBwYW1fYXV0aGVudGljYXRlKHBhbWgsIDApOworCVBBTV9GQUlMX0NIRUNLKHBhbWgsIHJldGNvZGUpOworCisJcmV0Y29kZSA9IHBhbV9hY2N0X21nbXQocGFtaCwgMCk7CisJaWYgKHJldGNvZGUgPT0gUEFNX05FV19BVVRIVE9LX1JFUUQpCisJICAgIHJldGNvZGUgPSBwYW1fY2hhdXRodG9rKHBhbWgsIFBBTV9DSEFOR0VfRVhQSVJFRF9BVVRIVE9LKTsKKwlQQU1fRkFJTF9DSEVDSyhwYW1oLCByZXRjb2RlKTsKKworCXJldGNvZGUgPSBwYW1fc2V0Y3JlZChwYW1oLCAwKTsKKwlQQU1fRkFJTF9DSEVDSyhwYW1oLCByZXRjb2RlKTsKKworCXBhbV9lbmQocGFtaCwgMCk7CisJLyogbm8gbmVlZCB0byBlc3RhYmxpc2ggYSBzZXNzaW9uOyB0aGlzIGlzbid0IGEgc2Vzc2lvbi1vcmllbnRlZAorCSAqIGFjdGl2aXR5Li4uICovCisgICAgfQorIyBlbHNlIC8qIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSCAqLworICAgIC8qIHJlcXVpcmUgcGFzc3dvcmQsIHVubGVzcyByb290ICovCisgICAgaWYodWlkICE9IDAgJiYgb2xkZi5wdy0+cHdfcGFzc3dkICYmIG9sZGYucHctPnB3X3Bhc3N3ZFswXSkgeworCWNoYXIgKnB3ZHN0ciA9IGdldHBhc3MoXygiUGFzc3dvcmQ6ICIpKTsKKwlpZihzdHJuY21wKG9sZGYucHctPnB3X3Bhc3N3ZCwKKwkJICAgY3J5cHQocHdkc3RyLCBvbGRmLnB3LT5wd19wYXNzd2QpLCAxMykpIHsKKwkgICAgcHV0cyhfKCJJbmNvcnJlY3QgcGFzc3dvcmQuIikpOworCSAgICBleGl0KDEpOworCX0KKyAgICB9CisjIGVuZGlmIC8qIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSCAqLworI2VuZGlmIC8qIFJFUVVJUkVfUEFTU1dPUkQgKi8KKworCisgICAgaWYgKGludGVyYWN0aXZlKSBhc2tfaW5mbyAoJm9sZGYsICZuZXdmKTsKKworICAgIGlmICghIHNldF9jaGFuZ2VkX2RhdGEgKCZvbGRmLCAmbmV3ZikpIHsKKwlwcmludGYgKF8oIkZpbmdlciBpbmZvcm1hdGlvbiBub3QgY2hhbmdlZC5cbiIpKTsKKwlyZXR1cm4gMDsKKyAgICB9CisgICAgc3RhdHVzID0gc2F2ZV9uZXdfZGF0YSAoJm9sZGYpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qCisgKiAgcGFyc2VfYXJndiAoKSAtLQorICoJcGFyc2UgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisgKglyZXR1cm5zIHRydWUgaWYgbm8gaW5mb3JtYXRpb24gYmV5b25kIHRoZSB1c2VybmFtZSB3YXMgZ2l2ZW4uCisgKi8KK3N0YXRpYyBib29sZWFuIHBhcnNlX2FyZ3YgKGFyZ2MsIGFyZ3YsIHBpbmZvKQorICAgIGludCBhcmdjOworICAgIGNoYXIgKmFyZ3ZbXTsKKyAgICBzdHJ1Y3QgZmluZm8gKnBpbmZvOworeworICAgIGludCBpbmRleCwgYywgc3RhdHVzOworICAgIGJvb2xlYW4gaW5mb19naXZlbjsKKworICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0aW9uc1tdID0geworCXsgImZ1bGwtbmFtZSIsCSAgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdmJyB9LAorCXsgIm9mZmljZSIsCSAgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdvJyB9LAorCXsgIm9mZmljZS1waG9uZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAncCcgfSwKKwl7ICJob21lLXBob25lIiwgICByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ2gnIH0sCisJeyAiaGVscCIsCSAgbm9fYXJndW1lbnQsICAgICAgIDAsICd1JyB9LAorCXsgInZlcnNpb24iLAkgIG5vX2FyZ3VtZW50LAkgICAgIDAsICd2JyB9LAorCXsgTlVMTCwJCSAgbm9fYXJndW1lbnQsCSAgICAgMCwgJzAnIH0sCisgICAgfTsKKworICAgIG9wdGluZCA9IDA7CisgICAgaW5mb19naXZlbiA9IGZhbHNlOworICAgIHdoaWxlICh0cnVlKSB7CisJYyA9IGdldG9wdF9sb25nIChhcmdjLCBhcmd2LCAiZjpyOnA6aDpvOnV2IiwgbG9uZ19vcHRpb25zLCAmaW5kZXgpOworCWlmIChjID09IC0xKSBicmVhazsKKwkvKiB2ZXJzaW9uPyAgb3V0cHV0IHZlcnNpb24gYW5kIGV4aXQuICovCisJaWYgKGMgPT0gJ3YnKSB7CisJICAgIHByaW50ZiAoIiVzXG4iLCBQQUNLQUdFX1NUUklORyk7CisJICAgIGV4aXQgKDApOworCX0KKwlpZiAoYyA9PSAndScpIHsKKwkgICAgdXNhZ2UgKHN0ZG91dCk7CisJICAgIGV4aXQgKDApOworCX0KKwkvKiBhbGwgb3RoZXIgb3B0aW9ucyBtdXN0IGhhdmUgYW4gYXJndW1lbnQuICovCisJaWYgKCEgb3B0YXJnKSB7CisJICAgIHVzYWdlIChzdGRlcnIpOworCSAgICBleGl0ICgtMSk7CisJfQorCS8qIG9rLCB3ZSB3ZXJlIGdpdmVuIGFuIGFyZ3VtZW50ICovCisJaW5mb19naXZlbiA9IHRydWU7CisJc3RhdHVzID0gMDsKKworCXhzdHJuY3B5IChidWYsIHdob2FtaSwgc2l6ZW9mKGJ1ZiktMTI4KTsgCisJc3RyY2F0IChidWYsICI6ICIpOworCisJLyogbm93IHN0b3JlIHRoZSBhcmd1bWVudCAqLworCXN3aXRjaCAoYykgeworCWNhc2UgJ2YnOgorCSAgICBwaW5mby0+ZnVsbF9uYW1lID0gb3B0YXJnOworCSAgICBzdHJjYXQgKGJ1ZiwgImZ1bGwgbmFtZSIpOworCSAgICBzdGF0dXMgPSBjaGVja19nZWNvc19zdHJpbmcgKGJ1Ziwgb3B0YXJnKTsKKwkgICAgYnJlYWs7CisJY2FzZSAnbyc6CisJICAgIHBpbmZvLT5vZmZpY2UgPSBvcHRhcmc7CisJICAgIHN0cmNhdCAoYnVmLCAib2ZmaWNlIik7CisJICAgIHN0YXR1cyA9IGNoZWNrX2dlY29zX3N0cmluZyAoYnVmLCBvcHRhcmcpOworCSAgICBicmVhazsKKwljYXNlICdwJzoKKwkgICAgcGluZm8tPm9mZmljZV9waG9uZSA9IG9wdGFyZzsKKwkgICAgc3RyY2F0IChidWYsICJvZmZpY2UgcGhvbmUiKTsKKwkgICAgc3RhdHVzID0gY2hlY2tfZ2Vjb3Nfc3RyaW5nIChidWYsIG9wdGFyZyk7CisJICAgIGJyZWFrOworCWNhc2UgJ2gnOgorCSAgICBwaW5mby0+aG9tZV9waG9uZSA9IG9wdGFyZzsKKwkgICAgc3RyY2F0IChidWYsICJob21lIHBob25lIik7CisJICAgIHN0YXR1cyA9IGNoZWNrX2dlY29zX3N0cmluZyAoYnVmLCBvcHRhcmcpOworCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICB1c2FnZSAoc3RkZXJyKTsKKwkgICAgc3RhdHVzID0gKC0xKTsKKwl9CisJaWYgKHN0YXR1cyA8IDApIGV4aXQgKHN0YXR1cyk7CisgICAgfQorICAgIC8qIGRvbmUgcGFyc2luZyBhcmd1bWVudHMuCWNoZWNrIGZvciBhIHVzZXJuYW1lLiAqLworICAgIGlmIChvcHRpbmQgPCBhcmdjKSB7CisJaWYgKG9wdGluZCArIDEgPCBhcmdjKSB7CisJICAgIHVzYWdlIChzdGRlcnIpOworCSAgICBleGl0ICgtMSk7CisJfQorCXBpbmZvLT51c2VybmFtZSA9IGFyZ3Zbb3B0aW5kXTsKKyAgICB9CisgICAgcmV0dXJuICghIGluZm9fZ2l2ZW4pOworfQorCisvKgorICogIHVzYWdlICgpIC0tCisgKglwcmludCBvdXQgYSB1c2FnZSBtZXNzYWdlLgorICovCitzdGF0aWMgdm9pZCB1c2FnZSAoZnApCisgICAgRklMRSAqZnA7Cit7CisgICAgZnByaW50ZiAoZnAsIF8oIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIiksIHdob2FtaSk7CisgICAgZnByaW50ZiAoZnAsIF8oIlsgLXAgb2ZmaWNlLXBob25lIF1cbglbIC1oIGhvbWUtcGhvbmUgXSAiKSk7CisgICAgZnByaW50ZiAoZnAsIF8oIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIikpOworfQorCisvKgorICogIHBhcnNlX3Bhc3N3ZCAoKSAtLQorICoJdGFrZSBhIHN0cnVjdCBwYXNzd29yZCBhbmQgZmlsbCBpbiB0aGUgZmllbGRzIG9mIHRoZQorICoJc3RydWN0IGZpbmZvLgorICovCitzdGF0aWMgdm9pZCBwYXJzZV9wYXNzd2QgKHB3LCBwaW5mbykKKyAgICBzdHJ1Y3QgcGFzc3dkICpwdzsKKyAgICBzdHJ1Y3QgZmluZm8gKnBpbmZvOworeworICAgIGNoYXIgKmdlY29zOworICAgIGNoYXIgKmNwOworCisgICAgaWYgKHB3KSB7CisJcGluZm8tPnB3ID0gcHc7CisJcGluZm8tPnVzZXJuYW1lID0gcHctPnB3X25hbWU7CisJLyogdXNlIHB3X2dlY29zIC0gd2UgdGFrZSBhIGNvcHkgc2luY2UgUEFNIGRlc3Ryb3lzIHRoZSBvcmlnaW5hbCAqLworCWdlY29zID0gc3RyZHVwKHB3LT5wd19nZWNvcyk7CisJY3AgPSAoZ2Vjb3MgPyBnZWNvcyA6ICIiKTsKKwlwaW5mby0+ZnVsbF9uYW1lID0gY3A7CisJY3AgPSBzdHJjaHIgKGNwLCAnLCcpOworCWlmIChjcCkgeyAqY3AgPSAwLCBjcCsrOyB9IGVsc2UgcmV0dXJuOworCXBpbmZvLT5vZmZpY2UgPSBjcDsKKwljcCA9IHN0cmNociAoY3AsICcsJyk7CisJaWYgKGNwKSB7ICpjcCA9IDAsIGNwKys7IH0gZWxzZSByZXR1cm47CisJcGluZm8tPm9mZmljZV9waG9uZSA9IGNwOworCWNwID0gc3RyY2hyIChjcCwgJywnKTsKKwlpZiAoY3ApIHsgKmNwID0gMCwgY3ArKzsgfSBlbHNlIHJldHVybjsKKwlwaW5mby0+aG9tZV9waG9uZSA9IGNwOworCS8qICBleHRyYSBmaWVsZHMgY29udGFpbiBzaXRlLXNwZWNpZmljIGluZm9ybWF0aW9uLCBhbmQKKwkgKiAgY2FuIG5vdCBiZSBjaGFuZ2VkIGJ5IHRoaXMgdmVyc2lvbiBvZiBjaGZuLgkgKi8KKwljcCA9IHN0cmNociAoY3AsICcsJyk7CisJaWYgKGNwKSB7ICpjcCA9IDAsIGNwKys7IH0gZWxzZSByZXR1cm47CisJcGluZm8tPm90aGVyID0gY3A7CisgICAgfQorfQorCisvKgorICogIGFza19pbmZvICgpIC0tCisgKglwcm9tcHQgdGhlIHVzZXIgZm9yIHRoZSBmaW5nZXIgaW5mb3JtYXRpb24gYW5kIHN0b3JlIGl0LgorICovCitzdGF0aWMgdm9pZCBhc2tfaW5mbyAob2xkZnAsIG5ld2ZwKQorICAgIHN0cnVjdCBmaW5mbyAqb2xkZnA7CisgICAgc3RydWN0IGZpbmZvICpuZXdmcDsKK3sKKyAgICBuZXdmcC0+ZnVsbF9uYW1lID0gcHJvbXB0IChfKCJOYW1lIiksIG9sZGZwLT5mdWxsX25hbWUpOworICAgIG5ld2ZwLT5vZmZpY2UgPSBwcm9tcHQgKF8oIk9mZmljZSIpLCBvbGRmcC0+b2ZmaWNlKTsKKyAgICBuZXdmcC0+b2ZmaWNlX3Bob25lID0gcHJvbXB0IChfKCJPZmZpY2UgUGhvbmUiKSwgb2xkZnAtPm9mZmljZV9waG9uZSk7CisgICAgbmV3ZnAtPmhvbWVfcGhvbmUgPSBwcm9tcHQgKF8oIkhvbWUgUGhvbmUiKSwgb2xkZnAtPmhvbWVfcGhvbmUpOworICAgIHByaW50ZiAoIlxuIik7Cit9CisKKy8qCisgKiAgcHJvbXB0ICgpIC0tCisgKglhc2sgdGhlIHVzZXIgZm9yIGEgZ2l2ZW4gZmllbGQgYW5kIGNoZWNrIHRoYXQgdGhlIHN0cmluZyBpcyBsZWdhbC4KKyAqLworc3RhdGljIGNoYXIgKnByb21wdCAocXVlc3Rpb24sIGRlZl92YWwpCisgICAgY2hhciAqcXVlc3Rpb247CisgICAgY2hhciAqZGVmX3ZhbDsKK3sKKyAgICBzdGF0aWMgY2hhciAqYmxhbmsgPSAibm9uZSI7CisgICAgaW50IGxlbjsKKyAgICBjaGFyICphbnMsICpjcDsKKyAgCisgICAgd2hpbGUgKHRydWUpIHsKKwlpZiAoISBkZWZfdmFsKSBkZWZfdmFsID0gIiI7CisJcHJpbnRmKCIlcyBbJXNdOiAiLCBxdWVzdGlvbiwgZGVmX3ZhbCk7CisJKmJ1ZiA9IDA7CisJaWYgKGZnZXRzIChidWYsIHNpemVvZiAoYnVmKSwgc3RkaW4pID09IE5VTEwpIHsKKwkgICAgcHJpbnRmIChfKCJcbkFib3J0ZWQuXG4iKSk7CisJICAgIGV4aXQgKC0xKTsKKwl9CisJLyogcmVtb3ZlIHRoZSBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgYnVmLiAqLworCWFucyA9IGJ1ZjsKKwl3aGlsZSAoaXNzcGFjZSAoKmFucykpIGFucysrOworCWxlbiA9IHN0cmxlbiAoYW5zKTsKKwl3aGlsZSAobGVuID4gMCAmJiBpc3NwYWNlIChhbnNbbGVuLTFdKSkgbGVuLS07CisJaWYgKGxlbiA8PSAwKSByZXR1cm4gTlVMTDsKKwlhbnNbbGVuXSA9IDA7CisJaWYgKCEgc3RyY2FzZWNtcCAoYW5zLCBibGFuaykpIHJldHVybiAiIjsKKwlpZiAoY2hlY2tfZ2Vjb3Nfc3RyaW5nIChOVUxMLCBhbnMpID49IDApIGJyZWFrOworICAgIH0KKyAgICBjcCA9IChjaGFyICopIHhtYWxsb2MgKGxlbiArIDEpOworICAgIHN0cmNweSAoY3AsIGFucyk7CisgICAgcmV0dXJuIGNwOworfQorCisvKgorICogIGNoZWNrX2dlY29zX3N0cmluZyAoKSAtLQorICoJY2hlY2sgdGhhdCB0aGUgZ2l2ZW4gZ2Vjb3Mgc3RyaW5nIGlzIGxlZ2FsLiAgaWYgaXQncyBub3QgbGVnYWwsCisgKglvdXRwdXQgIm1zZyIgZm9sbG93ZWQgYnkgYSBkZXNjcmlwdGlvbiBvZiB0aGUgcHJvYmxlbSwgYW5kCisgKglyZXR1cm4gKC0xKS4KKyAqLworc3RhdGljIGludCBjaGVja19nZWNvc19zdHJpbmcgKG1zZywgZ2Vjb3MpCisgICAgY2hhciAqbXNnOworICAgIGNoYXIgKmdlY29zOworeworICAgIGludCBpLCBjOworCisgICAgaWYgKHN0cmxlbihnZWNvcykgPiBNQVhfRklFTERfU0laRSkgeworCWlmIChtc2cgIT0gTlVMTCkKKwkgICAgcHJpbnRmKCIlczogIiwgbXNnKTsKKwlwcmludGYoXygiZmllbGQgaXMgdG9vIGxvbmcuXG4iKSk7CisJcmV0dXJuIC0xOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBzdHJsZW4gKGdlY29zKTsgaSsrKSB7CisJYyA9IGdlY29zW2ldOworCWlmIChjID09ICcsJyB8fCBjID09ICc6JyB8fCBjID09ICc9JyB8fCBjID09ICciJyB8fCBjID09ICdcbicpIHsKKwkgICAgaWYgKG1zZykgcHJpbnRmICgiJXM6ICIsIG1zZyk7CisJICAgIHByaW50ZiAoXygiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIpLCBjKTsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorCWlmIChpc2NudHJsIChjKSkgeworCSAgICBpZiAobXNnKSBwcmludGYgKCIlczogIiwgbXNnKTsKKwkgICAgcHJpbnRmIChfKCJDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIikpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qCisgKiAgc2V0X2NoYW5nZWRfZGF0YSAoKSAtLQorICoJaW5jb3Jwb3JhdGUgdGhlIG5ldyBkYXRhIGludG8gdGhlIG9sZCBmaW5nZXIgaW5mby4KKyAqLworc3RhdGljIGJvb2xlYW4gc2V0X2NoYW5nZWRfZGF0YSAob2xkZnAsIG5ld2ZwKQorICAgIHN0cnVjdCBmaW5mbyAqb2xkZnA7CisgICAgc3RydWN0IGZpbmZvICpuZXdmcDsKK3sKKyAgICBib29sZWFuIGNoYW5nZWQgPSBmYWxzZTsKKworICAgIGlmIChuZXdmcC0+ZnVsbF9uYW1lKSB7CisJb2xkZnAtPmZ1bGxfbmFtZSA9IG5ld2ZwLT5mdWxsX25hbWU7IGNoYW5nZWQgPSB0cnVlOyB9CisgICAgaWYgKG5ld2ZwLT5vZmZpY2UpIHsKKwlvbGRmcC0+b2ZmaWNlID0gbmV3ZnAtPm9mZmljZTsgY2hhbmdlZCA9IHRydWU7IH0KKyAgICBpZiAobmV3ZnAtPm9mZmljZV9waG9uZSkgeworCW9sZGZwLT5vZmZpY2VfcGhvbmUgPSBuZXdmcC0+b2ZmaWNlX3Bob25lOyBjaGFuZ2VkID0gdHJ1ZTsgfQorICAgIGlmIChuZXdmcC0+aG9tZV9waG9uZSkgeworCW9sZGZwLT5ob21lX3Bob25lID0gbmV3ZnAtPmhvbWVfcGhvbmU7IGNoYW5nZWQgPSB0cnVlOyB9CisKKyAgICByZXR1cm4gY2hhbmdlZDsKK30KKworLyoKKyAqICBzYXZlX25ld19kYXRhICgpIC0tCisgKglzYXZlIHRoZSBnaXZlbiBmaW5nZXIgaW5mbyBpbiAvZXRjL3Bhc3N3ZC4KKyAqCXJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MuCisgKi8KK3N0YXRpYyBpbnQgc2F2ZV9uZXdfZGF0YSAocGluZm8pCisgICAgIHN0cnVjdCBmaW5mbyAqcGluZm87Cit7CisgICAgY2hhciAqZ2Vjb3M7CisgICAgaW50IGxlbjsKKworICAgIC8qIG51bGwgZmllbGRzIHdpbGwgY29uZnVzZSBwcmludGYoKS4gKi8KKyAgICBpZiAoISBwaW5mby0+ZnVsbF9uYW1lKSBwaW5mby0+ZnVsbF9uYW1lID0gIiI7CisgICAgaWYgKCEgcGluZm8tPm9mZmljZSkgcGluZm8tPm9mZmljZSA9ICIiOworICAgIGlmICghIHBpbmZvLT5vZmZpY2VfcGhvbmUpIHBpbmZvLT5vZmZpY2VfcGhvbmUgPSAiIjsKKyAgICBpZiAoISBwaW5mby0+aG9tZV9waG9uZSkgcGluZm8tPmhvbWVfcGhvbmUgPSAiIjsKKyAgICBpZiAoISBwaW5mby0+b3RoZXIpIHBpbmZvLT5vdGhlciA9ICIiOworCisgICAgLyogY3JlYXRlIHRoZSBuZXcgZ2Vjb3Mgc3RyaW5nICovCisgICAgbGVuID0gKHN0cmxlbiAocGluZm8tPmZ1bGxfbmFtZSkgKyBzdHJsZW4gKHBpbmZvLT5vZmZpY2UpICsKKwkgICBzdHJsZW4gKHBpbmZvLT5vZmZpY2VfcGhvbmUpICsgc3RybGVuIChwaW5mby0+aG9tZV9waG9uZSkgKworCSAgIHN0cmxlbiAocGluZm8tPm90aGVyKSArIDQpOworICAgIGdlY29zID0gKGNoYXIgKikgeG1hbGxvYyAobGVuICsgMSk7CisgICAgc3ByaW50ZiAoZ2Vjb3MsICIlcywlcywlcywlcywlcyIsIHBpbmZvLT5mdWxsX25hbWUsIHBpbmZvLT5vZmZpY2UsCisJICAgICBwaW5mby0+b2ZmaWNlX3Bob25lLCBwaW5mby0+aG9tZV9waG9uZSwgcGluZm8tPm90aGVyKTsKKworICAgIC8qIHJlbW92ZSB0cmFpbGluZyBlbXB0eSBmaWVsZHMgKGJ1dCBub3Qgc3ViZmllbGRzIG9mIHBpbmZvLT5vdGhlcikgKi8KKyAgICBpZiAoISBwaW5mby0+b3RoZXJbMF0gKSB7CisgICAgICAgd2hpbGUgKGxlbiA+IDAgJiYgZ2Vjb3NbbGVuLTFdID09ICcsJykgbGVuLS07CisgICAgICAgZ2Vjb3NbbGVuXSA9IDA7CisgICAgfQorCisgICAgLyogd3JpdGUgdGhlIG5ldyBzdHJ1Y3QgcGFzc3dkIHRvIHRoZSBwYXNzd2QgZmlsZS4gKi8KKyAgICBwaW5mby0+cHctPnB3X2dlY29zID0gZ2Vjb3M7CisgICAgaWYgKHNldHB3bmFtIChwaW5mby0+cHcpIDwgMCkgeworCXBlcnJvciAoInNldHB3bmFtIik7CisJcHJpbnRmKCBfKCJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIgKSk7CisJcmV0dXJuICgtMSk7CisgICAgfQorICAgIHByaW50ZiAoXygiRmluZ2VyIGluZm9ybWF0aW9uIGNoYW5nZWQuXG4iKSk7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiAgeG1hbGxvYyAoKSAtLSBtYWxsb2MgdGhhdCBuZXZlciBmYWlscy4KKyAqLworc3RhdGljIHZvaWQgKnhtYWxsb2MgKGJ5dGVzKQorICAgIGludCBieXRlczsKK3sKKyAgICB2b2lkICp2cDsKKworICAgIHZwID0gbWFsbG9jIChieXRlcyk7CisgICAgaWYgKCEgdnAgJiYgYnl0ZXMgPiAwKSB7CisJcGVycm9yIChfKCJtYWxsb2MgZmFpbGVkIikpOworCWV4aXQgKC0xKTsKKyAgICB9CisgICAgcmV0dXJuIHZwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvY2hzaC4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvY2hzaC4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMDBkZjMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9jaHNoLjEKQEAgLTAsMCArMSw2MSBAQAorLlwiCisuXCIgIGNoc2guMSAtLSBjaGFuZ2UgeW91ciBsb2dpbiBzaGVsbAorLlwiICAoYykgMTk5NCBieSBzYWx2YXRvcmUgdmFsZW50ZSA8c3ZhbGVudGVAYXRoZW5hLm1pdC5lZHU+CisuXCIKKy5cIiAgdGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmUuICB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQKKy5cIiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgZ251IGdlbmVyYWwgcHVibGljIGxpY2Vuc2UuCisuXCIgIHRoZXJlIGlzIG5vIHdhcnJhbnR5LgorLlwiCisuXCIgICRBdXRob3I6IGZhaXRoICQKKy5cIiAgJFJldmlzaW9uOiAxLjEgJAorLlwiICAkRGF0ZTogMTk5NS8wMy8xMiAwMToyODo1OCAkCisuXCIKKy5USCBDSFNIIDEgIjcgT2N0b2JlciAxOTk4IiAiY2hzaCIgIkxpbnV4IFJlZmVyZW5jZSBNYW51YWwiCisuU0ggTkFNRQorY2hzaCBcLSBjaGFuZ2UgeW91ciBsb2dpbiBzaGVsbAorLlNIIFNZTk9QU0lTCisuQiBjaHNoCisuUkIgWyBcLXMKKy5JUiBzaGVsbCBdCisuUkIgWyBcLWwgXQorLlJCIFsgXC11IF0KKy5SQiBbIFwtdiBdCisuUkkgWyB1c2VybmFtZSBdCisuU0ggREVTQ1JJUFRJT04KKy5CIGNoc2gKK2lzIHVzZWQgdG8gY2hhbmdlIHlvdXIgbG9naW4gc2hlbGwuCitJZiBhIHNoZWxsIGlzIG5vdCBnaXZlbiBvbiB0aGUgY29tbWFuZCBsaW5lLAorLkIgY2hzaAorcHJvbXB0cyBmb3Igb25lLgorLlNTIFZBTElEIFNIRUxMUworLkIgY2hzaAord2lsbCBhY2NlcHQgdGhlIGZ1bGwgcGF0aG5hbWUgb2YgYW55IGV4ZWN1dGFibGUgZmlsZSBvbiB0aGUgc3lzdGVtLgorSG93ZXZlciwgaXQgd2lsbCBpc3N1ZSBhIHdhcm5pbmcgaWYgdGhlIHNoZWxsIGlzIG5vdCBsaXN0ZWQgaW4gdGhlCisuSSAvZXRjL3NoZWxscworZmlsZS4KK09uIHRoZSBvdGhlciBoYW5kLCBpdCBjYW4gYWxzbyBiZSBjb25maWd1cmVkIHN1Y2ggdGhhdCBpdCB3aWxsCitvbmx5IGFjY2VwdCBzaGVsbHMgbGlzdGVkIGluIHRoaXMgZmlsZSwgdW5sZXNzIHlvdSBhcmUgcm9vdC4KKy5TSCBPUFRJT05TCisuVFAKKy5CSSAiXC1zLCBcLVwtc2hlbGwgIiBzaGVsbAorU3BlY2lmeSB5b3VyIGxvZ2luIHNoZWxsLgorLlRQCisuQiAiXC1sLCBcLVwtbGlzdC1zaGVsbHMiCitQcmludCB0aGUgbGlzdCBvZiBzaGVsbHMgbGlzdGVkIGluCisuSSAvZXRjL3NoZWxscworYW5kIGV4aXQuCisuVFAKKy5CICJcLXUsIFwtXC1oZWxwIgorUHJpbnQgYSB1c2FnZSBtZXNzYWdlIGFuZCBleGl0LgorLlRQCisuQiAiLXYsIFwtXC12ZXJzaW9uIgorUHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdC4KKy5TSCAiU0VFIEFMU08iCisuQlIgbG9naW4gKDEpLAorLkJSIHBhc3N3ZCAoNSksCisuQlIgc2hlbGxzICg1KQorLlNIIEFVVEhPUgorU2FsdmF0b3JlIFZhbGVudGUgPHN2YWxlbnRlQG1pdC5lZHU+CisuU0ggQVZBSUxBQklMSVRZCitUaGUgY2hzaCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2Noc2guYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2Noc2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGIxZTBkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvY2hzaC5jCkBAIC0wLDAgKzEsNDQzIEBACisvKgorICogICBjaHNoLmMgLS0gY2hhbmdlIHlvdXIgbG9naW4gc2hlbGwKKyAqICAgKGMpIDE5OTQgYnkgc2FsdmF0b3JlIHZhbGVudGUgPHN2YWxlbnRlQGF0aGVuYS5taXQuZWR1PgorICoKKyAqICAgdGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmUuICB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQKKyAqICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgZ251IGdlbmVyYWwgcHVibGljIGxpY2Vuc2UuCisgKiAgIHRoZXJlIGlzIG5vIHdhcnJhbnR5LgorICoKKyAqICAgJEF1dGhvcjogYWViciAkCisgKiAgICRSZXZpc2lvbjogMS4xOSAkCisgKiAgICREYXRlOiAxOTk4LzA2LzExIDIyOjMwOjE0ICQKKyAqCisgKiBVcGRhdGVkIFRodSBPY3QgMTIgMDk6MzM6MTUgMTk5NSBieSBmYWl0aEBjcy51bmMuZWR1IHdpdGggc2VjdXJpdHkKKyAqICAgcGF0Y2hlcyBmcm9tIFplZnJhbSA8QS5NYWluQGRjcy53YXJ3aWNrLmFjLnVrPgorICoKKyAqIFVwZGF0ZWQgTW9uIEp1bCAgMSAxODo0NjoyMiAxOTk2IGJ5IGphbmxAbWF0aC51aW8ubm8gd2l0aCBzZWN1cml0eQorICogICBzdWdnZXN0aW9uIGZyb20gWmVmcmFtLiAgRGlzYWxsb3dpbmcgdXNlcnMgd2l0aCBzaGVsbHMgbm90IGluIC9ldGMvc2hlbGxzCisgKiAgIGZyb20gY2hhbmdpbmcgdGhlaXIgc2hlbGwuCisgKgorICogICAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqICAgLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqCisgKi8KKworI2lmIDAKKyNkZWZpbmUgX1BPU0lYX1NPVVJDRSAxCisjZW5kaWYKKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8cHdkLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgIm15X2NyeXB0LmgiCisjaW5jbHVkZSAiaXNsb2NhbC5oIgorI2luY2x1ZGUgInNldHB3bmFtLmgiCisjaW5jbHVkZSAibmxzLmgiCisjaW5jbHVkZSAiZW52LmgiCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisKKyNpZiBkZWZpbmVkKFJFUVVJUkVfUEFTU1dPUkQpICYmIGRlZmluZWQoSEFWRV9TRUNVUklUWV9QQU1fTUlTQ19IKQorI2luY2x1ZGUgPHNlY3VyaXR5L3BhbV9hcHBsLmg+CisjaW5jbHVkZSA8c2VjdXJpdHkvcGFtX21pc2MuaD4KKworI2RlZmluZSBQQU1fRkFJTF9DSEVDSyhfcGgsIF9yYykgXAorICAgIGRvIHsgXAorCWlmICgoX3JjKSAhPSBQQU1fU1VDQ0VTUykgeyBcCisJICAgIGZwcmludGYoc3RkZXJyLCAiXG4lc1xuIiwgcGFtX3N0cmVycm9yKChfcGgpLCAoX3JjKSkpOyBcCisJICAgIHBhbV9lbmQoKF9waCksIChfcmMpKTsgXAorCSAgICBleGl0KDEpOyBcCisJfSBcCisgICAgfSB3aGlsZSgwKQorCisjZW5kaWYgLyogUEFNICovCisKKyNpZmRlZiBIQVZFX0xJQlNFTElOVVgKKyNpbmNsdWRlIDxzZWxpbnV4L3NlbGludXguaD4KKyNpbmNsdWRlIDxzZWxpbnV4L2F2X3Blcm1pc3Npb25zLmg+CisjaW5jbHVkZSAic2VsaW51eF91dGlscy5oIgorI2VuZGlmCisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBib29sZWFuOworI2RlZmluZSBmYWxzZSAwCisjZGVmaW5lIHRydWUgMQorCisvKiBPbmx5IHJvb3QgaXMgYWxsb3dlZCB0byBhc3NpZ24gYSBsdXNlciBhIG5vbi1saXN0ZWQgc2hlbGwsIGJ5IGRlZmF1bHQgKi8KKyNkZWZpbmUgT05MWV9MSVNURURfU0hFTExTIDEKKworCitzdGF0aWMgY2hhciAqd2hvYW1pOworCitzdGF0aWMgY2hhciBidWZbRklMRU5BTUVfTUFYXTsKKworc3RydWN0IHNpbmZvIHsKKyAgICBjaGFyICp1c2VybmFtZTsKKyAgICBjaGFyICpzaGVsbDsKK307CisKK3N0YXRpYyB2b2lkIHBhcnNlX2FyZ3YgKGludCBhcmdjLCBjaGFyICphcmd2W10sIHN0cnVjdCBzaW5mbyAqcGluZm8pOworc3RhdGljIHZvaWQgdXNhZ2UgKEZJTEUgKmZwKTsKK3N0YXRpYyBjaGFyICpwcm9tcHQgKGNoYXIgKnF1ZXN0aW9uLCBjaGFyICpkZWZfdmFsKTsKK3N0YXRpYyBpbnQgY2hlY2tfc2hlbGwgKGNoYXIgKnNoZWxsKTsKK3N0YXRpYyBib29sZWFuIGdldF9zaGVsbF9saXN0IChjaGFyICpzaGVsbCk7CitzdGF0aWMgdm9pZCAqeG1hbGxvYyAoaW50IGJ5dGVzKTsKKworI2RlZmluZSBtZW16ZXJvKHB0ciwgc2l6ZSkgbWVtc2V0KChjaGFyICopIHB0ciwgMCwgc2l6ZSkKKworaW50CittYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CisgICAgY2hhciAqY3AsICpzaGVsbCwgKm9sZHNoZWxsOworICAgIHVpZF90IHVpZDsKKyAgICBzdHJ1Y3Qgc2luZm8gaW5mbzsKKyAgICBzdHJ1Y3QgcGFzc3dkICpwdzsKKworICAgIHNhbml0aXplX2VudigpOworICAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyAgICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICAgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgICAvKiB3aG9hbWkgaXMgdGhlIHByb2dyYW0gbmFtZSBmb3IgZXJyb3IgbWVzc2FnZXMgKi8KKyAgICB3aG9hbWkgPSBhcmd2WzBdOworICAgIGlmICghIHdob2FtaSkgd2hvYW1pID0gImNoc2giOworICAgIGZvciAoY3AgPSB3aG9hbWk7ICpjcDsgY3ArKykKKwlpZiAoKmNwID09ICcvJykgd2hvYW1pID0gY3AgKyAxOworCisgICAgdWlkID0gZ2V0dWlkICgpOworICAgIG1lbXplcm8gKCZpbmZvLCBzaXplb2YgKGluZm8pKTsKKworICAgIHBhcnNlX2FyZ3YgKGFyZ2MsIGFyZ3YsICZpbmZvKTsKKyAgICBwdyA9IE5VTEw7CisgICAgaWYgKCEgaW5mby51c2VybmFtZSkgeworCXB3ID0gZ2V0cHd1aWQgKHVpZCk7CisJaWYgKCEgcHcpIHsKKwkgICAgZnByaW50ZiAoc3RkZXJyLCBfKCIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIpLCB3aG9hbWksIHVpZCk7CisJICAgIHJldHVybiAoLTEpOyB9CisgICAgfQorICAgIGVsc2UgeworCXB3ID0gZ2V0cHduYW0gKGluZm8udXNlcm5hbWUpOworCWlmICghIHB3KSB7CisJICAgIGNwID0gaW5mby51c2VybmFtZTsKKwkgICAgZnByaW50ZiAoc3RkZXJyLCBfKCIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iKSwgd2hvYW1pLCBjcCk7CisJICAgIHJldHVybiAoLTEpOyB9CisgICAgfQorCisgICAgaWYgKCEoaXNfbG9jYWwocHctPnB3X25hbWUpKSkgeworICAgICAgIGZwcmludGYgKHN0ZGVyciwgXygiJXM6IGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBlbnRyaWVzOyB1c2UgeXAlcyBpbnN0ZWFkLlxuIiksCisgICAgICAgICAgIHdob2FtaSwgd2hvYW1pKTsKKyAgICAgICBleGl0KDEpOworICAgIH0KKworI2lmZGVmIEhBVkVfTElCU0VMSU5VWAorICAgIGlmIChpc19zZWxpbnV4X2VuYWJsZWQoKSA+IDApIHsKKyAgICAgIGlmKHVpZCA9PSAwKSB7CisJaWYgKGNoZWNrQWNjZXNzKHB3LT5wd19uYW1lLFBBU1NXRF9fQ0hTSCkhPTApIHsKKwkgIHNlY3VyaXR5X2NvbnRleHRfdCB1c2VyX2NvbnRleHQ7CisJICBpZiAoZ2V0cHJldmNvbigmdXNlcl9jb250ZXh0KSA8IDApCisJICAgIHVzZXJfY29udGV4dD0oc2VjdXJpdHlfY29udGV4dF90KSBzdHJkdXAoXygiVW5rbm93biB1c2VyIGNvbnRleHQiKSk7CisJICBmcHJpbnRmKHN0ZGVyciwgXygiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgc2hlbGwgb2YgJXNcbiIpLAorCQkgIHdob2FtaSwgdXNlcl9jb250ZXh0LCBwdy0+cHdfbmFtZSk7CisJICBmcmVlY29uKHVzZXJfY29udGV4dCk7CisJICBleGl0KDEpOworCX0KKyAgICAgIH0KKyAgICAgIGlmIChzZXR1cERlZmF1bHRDb250ZXh0KCIvZXRjL3Bhc3N3ZCIpICE9IDApIHsKKwlmcHJpbnRmKHN0ZGVycixfKCIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiKSwKKwkJd2hvYW1pKTsKKwlleGl0KDEpOworICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgb2xkc2hlbGwgPSBwdy0+cHdfc2hlbGw7CisgICAgaWYgKG9sZHNoZWxsID09IE5VTEwgfHwgKm9sZHNoZWxsID09ICdcMCcpCisJICAgIG9sZHNoZWxsID0gX1BBVEhfQlNIRUxMOwkJCS8qIGRlZmF1bHQgKi8KKworICAgIC8qIHJlYWxpdHkgY2hlY2sgKi8KKyAgICBpZiAodWlkICE9IDAgJiYgdWlkICE9IHB3LT5wd191aWQpIHsKKwllcnJubyA9IEVBQ0NFUzsKKwlmcHJpbnRmKHN0ZGVycixfKCIlczogUnVubmluZyBVSUQgZG9lc24ndCBtYXRjaCBVSUQgb2YgdXNlciB3ZSdyZSAiCisJCQkgImFsdGVyaW5nLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iKSwgd2hvYW1pKTsKKwlyZXR1cm4gKC0xKTsKKyAgICB9CisgICAgaWYgKHVpZCAhPSAwICYmICFnZXRfc2hlbGxfbGlzdChvbGRzaGVsbCkpIHsKKwllcnJubyA9IEVBQ0NFUzsKKwlmcHJpbnRmKHN0ZGVycixfKCIlczogWW91ciBzaGVsbCBpcyBub3QgaW4gL2V0Yy9zaGVsbHMsIHNoZWxsIGNoYW5nZSIKKwkJIiBkZW5pZWRcbiIpLHdob2FtaSk7CisJcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgc2hlbGwgPSBpbmZvLnNoZWxsOworCisgICAgcHJpbnRmKCBfKCJDaGFuZ2luZyBzaGVsbCBmb3IgJXMuXG4iKSwgcHctPnB3X25hbWUgKTsKKworI2lmZGVmIFJFUVVJUkVfUEFTU1dPUkQKKyNpZmRlZiBIQVZFX1NFQ1VSSVRZX1BBTV9NSVNDX0gKKyAgICBpZih1aWQgIT0gMCkgeworCXBhbV9oYW5kbGVfdCAqcGFtaCA9IE5VTEw7CisJc3RydWN0IHBhbV9jb252IGNvbnYgPSB7IG1pc2NfY29udiwgTlVMTCB9OworCWludCByZXRjb2RlOworCisJcmV0Y29kZSA9IHBhbV9zdGFydCgiY2hzaCIsIHB3LT5wd19uYW1lLCAmY29udiwgJnBhbWgpOworCWlmKHJldGNvZGUgIT0gUEFNX1NVQ0NFU1MpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsIF8oIiVzOiBQQU0gZmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iKSwKKwkJICAgIHdob2FtaSwgcGFtX3N0cmVycm9yKHBhbWgsIHJldGNvZGUpKTsKKwkgICAgZXhpdCgxKTsKKwl9CisKKwlyZXRjb2RlID0gcGFtX2F1dGhlbnRpY2F0ZShwYW1oLCAwKTsKKwlQQU1fRkFJTF9DSEVDSyhwYW1oLCByZXRjb2RlKTsKKworCXJldGNvZGUgPSBwYW1fYWNjdF9tZ210KHBhbWgsIDApOworCWlmIChyZXRjb2RlID09IFBBTV9ORVdfQVVUSFRPS19SRVFEKQorCSAgICByZXRjb2RlID0gcGFtX2NoYXV0aHRvayhwYW1oLCBQQU1fQ0hBTkdFX0VYUElSRURfQVVUSFRPSyk7CisJUEFNX0ZBSUxfQ0hFQ0socGFtaCwgcmV0Y29kZSk7CisKKwlyZXRjb2RlID0gcGFtX3NldGNyZWQocGFtaCwgMCk7CisJUEFNX0ZBSUxfQ0hFQ0socGFtaCwgcmV0Y29kZSk7CisKKwlwYW1fZW5kKHBhbWgsIDApOworCS8qIG5vIG5lZWQgdG8gZXN0YWJsaXNoIGEgc2Vzc2lvbjsgdGhpcyBpc24ndCBhIHNlc3Npb24tb3JpZW50ZWQKKwkgKiBhY3Rpdml0eS4uLiAqLworICAgIH0KKyNlbHNlIC8qIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSCAqLworICAgIC8qIHJlcXVpcmUgcGFzc3dvcmQsIHVubGVzcyByb290ICovCisgICAgaWYodWlkICE9IDAgJiYgcHctPnB3X3Bhc3N3ZCAmJiBwdy0+cHdfcGFzc3dkWzBdKSB7CisJY2hhciAqcHdkc3RyID0gZ2V0cGFzcyhfKCJQYXNzd29yZDogIikpOworCWlmKHN0cm5jbXAocHctPnB3X3Bhc3N3ZCwKKwkJICAgY3J5cHQocHdkc3RyLCBwdy0+cHdfcGFzc3dkKSwgMTMpKSB7CisJICAgIHB1dHMoXygiSW5jb3JyZWN0IHBhc3N3b3JkLiIpKTsKKwkgICAgZXhpdCgxKTsKKwl9CisgICAgfQorI2VuZGlmIC8qIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSCAqLworI2VuZGlmIC8qIFJFUVVJUkVfUEFTU1dPUkQgKi8KKworICAgIGlmICghIHNoZWxsKSB7CisJc2hlbGwgPSBwcm9tcHQgKF8oIk5ldyBzaGVsbCIpLCBvbGRzaGVsbCk7CisJaWYgKCEgc2hlbGwpIHJldHVybiAwOworICAgIH0KKworICAgIGlmIChjaGVja19zaGVsbCAoc2hlbGwpIDwgMCkgcmV0dXJuICgtMSk7CisKKyAgICBpZiAoISBzdHJjbXAgKHB3LT5wd19zaGVsbCwgc2hlbGwpKSB7CisJcHJpbnRmIChfKCJTaGVsbCBub3QgY2hhbmdlZC5cbiIpKTsKKwlyZXR1cm4gMDsKKyAgICB9CisgICAgcHctPnB3X3NoZWxsID0gc2hlbGw7CisgICAgaWYgKHNldHB3bmFtIChwdykgPCAwKSB7CisJcGVycm9yICgic2V0cHduYW0iKTsKKwlwcmludGYoIF8oIlNoZWxsICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iKSApOworCXJldHVybiAoLTEpOworICAgIH0KKyAgICBwcmludGYgKF8oIlNoZWxsIGNoYW5nZWQuXG4iKSk7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiAgcGFyc2VfYXJndiAoKSAtLQorICoJcGFyc2UgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMsIGFuZCBmaWxsIGluICJwaW5mbyIgd2l0aCBhbnkKKyAqCWluZm9ybWF0aW9uIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KKyAqLworc3RhdGljIHZvaWQKK3BhcnNlX2FyZ3YgKGludCBhcmdjLCBjaGFyICphcmd2W10sIHN0cnVjdCBzaW5mbyAqcGluZm8pIHsKKyAgICBpbnQgaW5kZXgsIGM7CisKKyAgICBzdGF0aWMgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9IHsKKwl7ICJzaGVsbCIsCSByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ3MnIH0sCisJeyAibGlzdC1zaGVsbHMiLCBub19hcmd1bWVudCwJICAgIDAsICdsJyB9LAorCXsgImhlbHAiLAkgbm9fYXJndW1lbnQsCSAgICAwLCAndScgfSwKKwl7ICJ2ZXJzaW9uIiwJIG5vX2FyZ3VtZW50LAkgICAgMCwgJ3YnIH0sCisJeyBOVUxMLAkJIG5vX2FyZ3VtZW50LAkgICAgMCwgJzAnIH0sCisgICAgfTsKKworICAgIG9wdGluZCA9IGMgPSAwOworICAgIHdoaWxlIChjICE9IEVPRikgeworCWMgPSBnZXRvcHRfbG9uZyAoYXJnYywgYXJndiwgInM6bHV2IiwgbG9uZ19vcHRpb25zLCAmaW5kZXgpOworCXN3aXRjaCAoYykgeworCWNhc2UgLTE6CisJICAgIGJyZWFrOworCWNhc2UgJ3YnOgorCSAgICBwcmludGYgKCIlc1xuIiwgUEFDS0FHRV9TVFJJTkcpOworCSAgICBleGl0ICgwKTsKKwljYXNlICd1JzoKKwkgICAgdXNhZ2UgKHN0ZG91dCk7CisJICAgIGV4aXQgKDApOworCWNhc2UgJ2wnOgorCSAgICBnZXRfc2hlbGxfbGlzdCAoTlVMTCk7CisJICAgIGV4aXQgKDApOworCWNhc2UgJ3MnOgorCSAgICBpZiAoISBvcHRhcmcpIHsKKwkJdXNhZ2UgKHN0ZGVycik7CisJCWV4aXQgKC0xKTsKKwkgICAgfQorCSAgICBwaW5mby0+c2hlbGwgPSBvcHRhcmc7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHVzYWdlIChzdGRlcnIpOworCSAgICBleGl0ICgtMSk7CisJfQorICAgIH0KKyAgICAvKiBkb25lIHBhcnNpbmcgYXJndW1lbnRzLgljaGVjayBmb3IgYSB1c2VybmFtZS4gKi8KKyAgICBpZiAob3B0aW5kIDwgYXJnYykgeworCWlmIChvcHRpbmQgKyAxIDwgYXJnYykgeworCSAgICB1c2FnZSAoc3RkZXJyKTsKKwkgICAgZXhpdCAoLTEpOworCX0KKwlwaW5mby0+dXNlcm5hbWUgPSBhcmd2W29wdGluZF07CisgICAgfQorfQorCisvKgorICogIHVzYWdlICgpIC0tCisgKglwcmludCBvdXQgYSB1c2FnZSBtZXNzYWdlLgorICovCitzdGF0aWMgdm9pZAordXNhZ2UgKEZJTEUgKmZwKSB7CisgICAgZnByaW50ZiAoZnAsCisJICAgICBfKCJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdICIKKwkgICAgICAgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCSAgICAgICAiICAgICAgIFsgdXNlcm5hbWUgXVxuIiksIHdob2FtaSk7Cit9CisKKy8qCisgKiAgcHJvbXB0ICgpIC0tCisgKglhc2sgdGhlIHVzZXIgZm9yIGEgZ2l2ZW4gZmllbGQgYW5kIHJldHVybiBpdC4KKyAqLworc3RhdGljIGNoYXIgKgorcHJvbXB0IChjaGFyICpxdWVzdGlvbiwgY2hhciAqZGVmX3ZhbCkgeworICAgIGludCBsZW47CisgICAgY2hhciAqYW5zLCAqY3A7CisKKyAgICBpZiAoISBkZWZfdmFsKSBkZWZfdmFsID0gIiI7CisgICAgcHJpbnRmKCIlcyBbJXNdOiAiLCBxdWVzdGlvbiwgZGVmX3ZhbCk7CisgICAgKmJ1ZiA9IDA7CisgICAgaWYgKGZnZXRzIChidWYsIHNpemVvZiAoYnVmKSwgc3RkaW4pID09IE5VTEwpIHsKKwlwcmludGYgKF8oIlxuQWJvcnRlZC5cbiIpKTsKKwlleGl0ICgtMSk7CisgICAgfQorICAgIC8qIHJlbW92ZSB0aGUgbmV3bGluZSBhdCB0aGUgZW5kIG9mIGJ1Zi4gKi8KKyAgICBhbnMgPSBidWY7CisgICAgd2hpbGUgKGlzc3BhY2UgKCphbnMpKSBhbnMrKzsKKyAgICBsZW4gPSBzdHJsZW4gKGFucyk7CisgICAgd2hpbGUgKGxlbiA+IDAgJiYgaXNzcGFjZSAoYW5zW2xlbi0xXSkpIGxlbi0tOworICAgIGlmIChsZW4gPD0gMCkgcmV0dXJuIE5VTEw7CisgICAgYW5zW2xlbl0gPSAwOworICAgIGNwID0gKGNoYXIgKikgeG1hbGxvYyAobGVuICsgMSk7CisgICAgc3RyY3B5IChjcCwgYW5zKTsKKyAgICByZXR1cm4gY3A7Cit9CisKKy8qCisgKiAgY2hlY2tfc2hlbGwgKCkgLS0gaWYgdGhlIHNoZWxsIGlzIGNvbXBsZXRlbHkgaW52YWxpZCwgcHJpbnQKKyAqCWFuIGVycm9yIGFuZCByZXR1cm4gKC0xKS4KKyAqCWlmIHRoZSBzaGVsbCBpcyBhIGJhZCBpZGVhLCBwcmludCBhIHdhcm5pbmcuCisgKi8KK3N0YXRpYyBpbnQKK2NoZWNrX3NoZWxsIChjaGFyICpzaGVsbCkgeworICAgIGludCBpLCBjOworCisgICAgaWYgKCFzaGVsbCkKKwlyZXR1cm4gKC0xKTsKKworICAgIGlmICgqc2hlbGwgIT0gJy8nKSB7CisJcHJpbnRmIChfKCIlczogc2hlbGwgbXVzdCBiZSBhIGZ1bGwgcGF0aCBuYW1lLlxuIiksIHdob2FtaSk7CisJcmV0dXJuICgtMSk7CisgICAgfQorICAgIGlmIChhY2Nlc3MgKHNoZWxsLCBGX09LKSA8IDApIHsKKwlwcmludGYgKF8oIiVzOiBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iKSwgd2hvYW1pLCBzaGVsbCk7CisJcmV0dXJuICgtMSk7CisgICAgfQorICAgIGlmIChhY2Nlc3MgKHNoZWxsLCBYX09LKSA8IDApIHsKKwlwcmludGYgKF8oIiVzOiBcIiVzXCIgaXMgbm90IGV4ZWN1dGFibGUuXG4iKSwgd2hvYW1pLCBzaGVsbCk7CisJcmV0dXJuICgtMSk7CisgICAgfQorICAgIC8qIGtlZXAgL2V0Yy9wYXNzd2QgY2xlYW4uICovCisgICAgZm9yIChpID0gMDsgaSA8IHN0cmxlbiAoc2hlbGwpOyBpKyspIHsKKwljID0gc2hlbGxbaV07CisJaWYgKGMgPT0gJywnIHx8IGMgPT0gJzonIHx8IGMgPT0gJz0nIHx8IGMgPT0gJyInIHx8IGMgPT0gJ1xuJykgeworCSAgICBwcmludGYgKF8oIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIiksIHdob2FtaSwgYyk7CisJICAgIHJldHVybiAoLTEpOworCX0KKwlpZiAoaXNjbnRybCAoYykpIHsKKwkgICAgcHJpbnRmIChfKCIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIpLCB3aG9hbWkpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisgICAgfQorI2lmZGVmIE9OTFlfTElTVEVEX1NIRUxMUworICAgIGlmICghIGdldF9zaGVsbF9saXN0IChzaGVsbCkpIHsKKyAgICAgICBpZiAoIWdldHVpZCgpKQorCSAgcHJpbnRmIChfKCJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIpLCBzaGVsbCk7CisgICAgICAgZWxzZSB7CisJICBwcmludGYgKF8oIiVzOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIpLAorCQkgIHdob2FtaSwgc2hlbGwpOworCSAgcHJpbnRmKCBfKCIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIpLCB3aG9hbWkgKTsKKwkgIGV4aXQoMSk7CisgICAgICAgfQorICAgIH0KKyNlbHNlCisgICAgaWYgKCEgZ2V0X3NoZWxsX2xpc3QgKHNoZWxsKSkgeworICAgICAgIHByaW50ZiAoXygiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iKSwgc2hlbGwpOworICAgICAgIHByaW50ZiggXygiVXNlICVzIC1sIHRvIHNlZSBsaXN0LlxuIiksIHdob2FtaSApOworICAgIH0KKyNlbmRpZgorICAgIHJldHVybiAwOworfQorCisvKgorICogIGdldF9zaGVsbF9saXN0ICgpIC0tIGlmIHRoZSBnaXZlbiBzaGVsbCBhcHBlYXJzIGluIC9ldGMvc2hlbGxzLAorICoJcmV0dXJuIHRydWUuICBpZiBub3QsIHJldHVybiBmYWxzZS4KKyAqCWlmIHRoZSBnaXZlbiBzaGVsbCBpcyBOVUxMLCAvZXRjL3NoZWxscyBpcyBvdXRwdXR0ZWQgdG8gc3Rkb3V0LgorICovCitzdGF0aWMgYm9vbGVhbgorZ2V0X3NoZWxsX2xpc3QgKGNoYXIgKnNoZWxsX25hbWUpIHsKKyAgICBGSUxFICpmcDsKKyAgICBib29sZWFuIGZvdW5kOworICAgIGludCBsZW47CisKKyAgICBmb3VuZCA9IGZhbHNlOworICAgIGZwID0gZm9wZW4gKCIvZXRjL3NoZWxscyIsICJyIik7CisgICAgaWYgKCEgZnApIHsKKwlpZiAoISBzaGVsbF9uYW1lKSBwcmludGYgKF8oIk5vIGtub3duIHNoZWxscy5cbiIpKTsKKwlyZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgd2hpbGUgKGZnZXRzIChidWYsIHNpemVvZiAoYnVmKSwgZnApICE9IE5VTEwpIHsKKwkvKiBpZ25vcmUgY29tbWVudHMgKi8KKwlpZiAoKmJ1ZiA9PSAnIycpIGNvbnRpbnVlOworCWxlbiA9IHN0cmxlbiAoYnVmKTsKKwkvKiBzdHJpcCB0aGUgZW5kaW5nIG5ld2xpbmUgKi8KKwlpZiAoYnVmW2xlbiAtIDFdID09ICdcbicpIGJ1ZltsZW4gLSAxXSA9IDA7CisJLyogaWdub3JlIGxpbmVzIHRoYXQgYXJlIHRvbyBkYW1uIGxvbmcgKi8KKwllbHNlIGNvbnRpbnVlOworCS8qIGNoZWNrIG9yIG91dHB1dCB0aGUgc2hlbGwgKi8KKwlpZiAoc2hlbGxfbmFtZSkgeworCSAgICBpZiAoISBzdHJjbXAgKHNoZWxsX25hbWUsIGJ1ZikpIHsKKwkJZm91bmQgPSB0cnVlOworCQlicmVhazsKKwkgICAgfQorCX0KKwllbHNlIHByaW50ZiAoIiVzXG4iLCBidWYpOworICAgIH0KKyAgICBmY2xvc2UgKGZwKTsKKyAgICByZXR1cm4gZm91bmQ7Cit9CisKKy8qCisgKiAgeG1hbGxvYyAoKSAtLSBtYWxsb2MgdGhhdCBuZXZlciBmYWlscy4KKyAqLworc3RhdGljIHZvaWQgKgoreG1hbGxvYyAoaW50IGJ5dGVzKSB7CisgICAgdm9pZCAqdnA7CisKKyAgICB2cCA9IG1hbGxvYyAoYnl0ZXMpOworICAgIGlmICghIHZwICYmIGJ5dGVzID4gMCkgeworCXBlcnJvciAoXygibWFsbG9jIGZhaWxlZCIpKTsKKwlleGl0ICgtMSk7CisgICAgfQorICAgIHJldHVybiB2cDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2Zhc3Rib290LjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9mYXN0Ym9vdC44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NmQ5NzEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9mYXN0Ym9vdC44CkBAIC0wLDAgKzEgQEAKKy5zbyBtYW44L3NodXRkb3duLjgKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2Zhc3RoYWx0LjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9mYXN0aGFsdC44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NmQ5NzEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9mYXN0aGFsdC44CkBAIC0wLDAgKzEgQEAKKy5zbyBtYW44L3NodXRkb3duLjgKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2hhbHQuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2hhbHQuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODZkOTcxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvaGFsdC44CkBAIC0wLDAgKzEgQEAKKy5zbyBtYW44L3NodXRkb3duLjgKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2luaXRjdGwuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2luaXRjdGwuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGQyNmUzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvaW5pdGN0bC44CkBAIC0wLDAgKzEsMTEwIEBACisuXCIgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgIFJpY2hhcmQgR29vY2gKKy5cIgorLlwiIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisuXCIgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy5cIiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorLlwiIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisuXCIKKy5cIiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy5cIiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLlwiIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy5cIiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLlwiCisuXCIgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5cIiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorLlwiIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorLlwiCisuXCIgUmljaGFyZCBHb29jaCBtYXkgYmUgcmVhY2hlZCBieSBlbWFpbCBhdCAgcmdvb2NoQGF0bmYuY3Npcm8uYXUKKy5cIiBUaGUgcG9zdGFsIGFkZHJlc3MgaXM6CisuXCIgICBSaWNoYXJkIEdvb2NoLCBjL28gQVRORiwgUC4gTy4gQm94IDc2LCBFcHBpbmcsIE4uUy5XLiwgMjEyMSwgQXVzdHJhbGlhLgorLlwiCisuXCIJaW5pdGN0bC44CQlSaWNoYXJkIEdvb2NoCTIxLUZFQi0yMDAxCisuXCIKKy5USCBJTklUQ1RMIDggIjIxIEZlYiAyMDAxIiAiVXRpbC1MaW51eCBQYWNrYWdlIgorLlNIIE5BTUUKK2luaXRjdGwgXC0gdXRpbGl0eSB0byBjb250cm9sIHNpbXBsZWluaXQoOCkKKy5TSCBTWU5PUFNJUworLkIgbmVlZAorLlJCIFsgXC1yIF0KKy5JIHNlcnZpY2UKKy5icgorLkIgZGlzcGxheS1zZXJ2aWNlcworLmJyCisuQiBwcm92aWRlCisuSSBzZXJ2aWNlCisuU0ggT1ZFUlZJRVcKK1RoZSBcZkJpbml0Y3RsXGZQIHByb2dyYW1tZSBpcyBkZXNpZ25lZCB0byBoZWxwIGltcHJvdmUgdGhlCityb2J1c3RuZXNzLCBzY2FsYWJpbGl0eSBhbmQgcmVhZGFiaWxpdHkgb2Ygc3lzdGVtIGJvb3Qgc2NyaXB0cy4gSXQgaXMKK25vdyBwb3NzaWJsZSB0byB3cml0ZSBhIG1vZHVsYXJpc2VkIHNldCBvZiBib290IHNjcmlwdHMgd2l0aG91dCB0aGUKK2NvbXBsZXggYW5kIGZyYWdpbGUgbnVtYmVyZWQgc3ltbGluayBzY2hlbWUgdXNlZCBpbiBTeXNWLXN0eWxlIGJvb3QKK3NjcmlwdHMuIEVhY2ggc2NyaXB0IGNhbiBzaW1wbHkgZGVjbGFyZSwgdXNpbmcgXGZCbmVlZFxmUCg4KSwgd2hhdAorbXVzdCBydW4gYmVmb3JlIHRoZW0uCisuU0ggREVTQ1JJUFRJT04gZm9yIG5lZWQKK1RoZSBcZkJuZWVkXGZQIHByb2dyYW1tZSBpcyBhIHV0aWxpdHkgdGhhdCB0ZWxscyBcZkJzaW1wbGVpbml0XGZQKDgpCit0byBzdGFydCBhIFxmSXNlcnZpY2VcZlAgKHVzdWFsbHkgYSBzY3JpcHQgaW4gXGZJL3NiaW4vaW5pdC5kXGZQKSBhbmQKK3dpbGwgd2FpdCBmb3IgdGhlIHNlcnZpY2UgdG8gYmVjb21lIGF2YWlsYWJsZS4gSWYgdGhlIHNlcnZpY2UgaXMKK2FscmVhZHkgYXZhaWxhYmxlLCBpdCB3aWxsIG5vdCBiZSBzdGFydGVkIGFnYWluLgorCitUaGUgXGZCLXJcZlAgb3B0aW9uIGlzIHVzZWQgdG8gdGVsbCBcZkJzaW1wbGVpbml0XGZQKDgpIHRvICJyb2xsIGJhY2siCisoc3RvcCkgc2VydmljZXMgdXAgdG8gKGJ1dCBub3QgaW5jbHVkaW5nKSBcZklzZXJ2aWNlXGZQLiBJZgorXGZJc2VydmljZVxmUCBpcyBub3Qgc3BlY2lmaWVkLCBhbGwgc2VydmljZXMgYXJlIHN0b3BwZWQuIFRoZSBcZkItclxmUAorb3B0aW9uIHRodXMgYWxsb3dzIHRoZSBzeXN0ZW0gdG8gYmUgcGFydGlhbGx5IG9yIHdob2xseSBzaHV0IGRvd24gaW4KK2FuIG9yZGVybHkgZmFzaGlvbi4gVGhlIFxmQnNodXRkb3duXGZQKDgpIHByb2dyYW1tZSBzdGlsbCBuZWVkcyB0byBiZQorcnVuLgorCisuU0ggREVTQ1JJUFRJT04gZm9yIGRpc3BsYXktc2VydmljZXMKK1doZW4gaW52b2tlZCBhcyBcZkJkaXNwbGF5LXNlcnZpY2VzXGZQIGl0IHdpbGwgd3JpdGUgdGhlIGxpc3Qgb2YKK2N1cnJlbnRseSBhdmFpbGFibGUgc2VydmljZXMgYW5kIHRoZSBsaXN0IG9mIGZhaWxlZCBzZXJ2aWNlcyB0byB0aGUKK3N0YW5kYXJkIG91dHB1dC4KKworLlNIIERFU0NSSVBUSU9OIGZvciBwcm92aWRlCitXaGVuIGludm9rZWQgYXMgXGZCcHJvdmlkZVxmUCBpdCB0ZWxscyBcZkJzaW1wbGVpbml0XGZQKDgpIHRoYXQgdGhlCitwYXJlbnQgKGNhbGxpbmcpIHByb2Nlc3Mgd2lsbCBiZSBwcm92aWRpbmcgYSBzZXJ2aWNlIHdpdGggbmFtZQorXGZJc2VydmljZVxmUC4gSWYgdGhlIGNhbGxpbmcgcHJvY2VzcyBleGl0cyBzdWNjZXNzZnVsbHkgKHN0YXR1cyAwKQordGhlIHNlcnZpY2UgaXMgZGVlbWVkIHRvIGJlIGF2YWlsYWJsZS4gT25seSBvbmUgaW5zdGFuY2Ugb2YKK1xmSXNlcnZpY2VcZlAgbWF5IGJlIHN0YXJ0ZWQsIHNvIGFsdGVybmF0ZSBwcm92aWRlcnMgd2lsbCBibG9jayBhbmQKK21heSBmYWlsLgorCitVc2luZyBcZkJwcm92aWRlXGZQIGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgbXVsdGlwbGUgcG90ZW50aWFsCitwcm92aWRlcnMgZm9yIHRoZSBzYW1lIChnZW5lcmljKSBzZXJ2aWNlIChlLmcuIFxmQnNlbmRtYWlsXGZQIGFuZAorXGZCcW1haWxcZlAgYm90aCBwcm92aWRlIGEgXGZCbXRhXGZQIHNlcnZpY2UpLCB3aGVyZSBvbmx5IG9uZSBhY3R1YWxseQorcHJvdmlkZXMgdGhlIHNlcnZpY2UuIFRoaXMgbWF5IGJlIHVzZWQgYnkgc2VydmljZSBzdGFydHVwIHNjcmlwdHMKK3doaWNoIGNoZWNrIGZvciBjb25maWd1cmF0aW9uIGZpbGVzLgorLlNIIEVYSVQgQ09ERQorVGhlIGV4aXQgY29kZSBmcm9tIFxmQm5lZWRcZlAgaXMgMCBpZiB0aGUgc2VydmljZSB3YXMgc3VjY2Vzc2Z1bGx5CitzdGFydGVkLCAxIGlmIHRoZSBzZXJ2aWNlIGZhaWxlZCBiYWRseSwgYW5kIDIgaWYgdGhlIHNlcnZpY2UgaXMKK3VuYXZhaWxhYmxlIChpLmUuIGRpc2FibGVkIGluIGNvbmZpZ3VyYXRpb24gZmlsZXMpLiBUaGVzZSBleGl0IGNvZGVzCityZWZsZWN0IHRoZSBleGl0IGNvZGVzIGZyb20gdGhlIHNlcnZpY2Ugc3RhcnR1cCBzY3JpcHRzLgorCitUaGUgZXhpdCBjb2RlIGZyb20gXGZCbmVlZCAtclxmUCBpcyAwIGlmIHRoZSBzZXJ2aWNlIHdhcyBzdWNjZXNzZnVsbHkKK3N0b3BwZWQsIDEgaWYgdGhlIHNlcnZpY2UgY291bGQgbm90IGJlIHN0b3BwZWQsIGFuZCAyIGlmIHRoZSBzZXJ2aWNlCit3YXMgbm90IGF2YWlsYWJsZSB0byBzdGFydCB3aXRoLiBUaGUgc2VydmljZSBzaHV0ZG93biBzY3JpcHRzIG1heSBvbmx5CityZXR1cm4gMCAoZm9yIHN1Y2Nlc3MpIG9yIDEgKGZvciBmYWlsdXJlKS4KKworVGhlIGV4aXQgY29kZSBmcm9tIFxmQnByb3ZpZGVcZlAgaXMgMCBpZiB0aGUgc2VydmljZSBtYXkgYmUgcHJvdmlkZWQsCisxIGlmIGl0IG1heSBub3QsIGFuZCAyIGlmIHRoZSBwYXJlbnQgcHJvY2VzcyBpcyBub3QgYSBjaGlsZCBvZgoraW5pdC4gSXQgbWF5IGJsb2NrIHdhaXRpbmcgZm9yIGFub3RoZXIgcHJvdmlkZXIgd2hpY2ggaXMgaW5pdGlhbGlzaW5nCit0aGUgc2VydmljZS4KKy5TSCBTSUdOQUxTCitcZkJpbml0Y3RsXGZQKDgpIHVzZXMgXGZCU0lHVVNSMVxmUCwgXGZCU0lHVVNSMlxmUCBhbmQgXGZCU0lHUE9MTFxmUAorZm9yIGNvbW11bmljYXRpb24gd2l0aCBcZkJzaW1wbGVpbml0XGZQKDgpLiBEb24ndCBzZW5kIHRoZXNlIHNpZ25hbHMKK3RvIGl0LgorLlNIIEZJTEVTCisuUEQgMAorLlRQIDIwCisuQkkgL2Rldi9pbml0Y3RsCitUaGlzIGlzIHRoZSBjb250cm9sIEZJRk8sIGNyZWF0ZWQgYnkgXGZCc2ltcGxlaW5pdFxmUCg4KSwgd2hpY2gKK1xmQmluaXRjdGxcZlAoOCkgd3JpdGVzIGNvbW1hbmRzIHRvLgorLlNIIFNFRSBBTFNPCisuQlIgc2ltcGxlaW5pdCAoOCksCisuQlIgaW5pdCAoOCkKKy5QUAorQSBtb3JlIGNvbXBsZXRlIGRpc2N1c3Npb24gb2YgdGhlIG5ldyBib290IHNjcmlwdCBzeXN0ZW0sIGJhc2VkIG9uCitcZkJuZWVkXGZQKDgpLCBpcyBhdmFpbGFibGUgZnJvbToKK2h0dHA6Ly93d3cuYXRuZi5jc2lyby5hdS9+cmdvb2NoL2xpbnV4L2Jvb3Qtc2NyaXB0cy8KKy5TSCBBVVRIT1IKK1JpY2hhcmQgR29vY2ggKHJnb29jaEBhdG5mLmNzaXJvLmF1KQorCisuU0ggQVZBSUxBQklMSVRZCitUaGUgaW5pdGN0bCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2luaXRjdGwuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2luaXRjdGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjM4YjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvaW5pdGN0bC5jCkBAIC0wLDAgKzEsMjE3IEBACisvKiAgaW5pdGN0bC5jCisKKyAgICBTb3VyY2UgZmlsZSBmb3IgIGluaXRjdGwgIChpbml0KDgpIGNvbnRyb2wgdG9vbCkuCisKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDAgIFJpY2hhcmQgR29vY2gKKworICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorCisgICAgUmljaGFyZCBHb29jaCBtYXkgYmUgcmVhY2hlZCBieSBlbWFpbCBhdCAgcmdvb2NoQGF0bmYuY3Npcm8uYXUKKyAgICBUaGUgcG9zdGFsIGFkZHJlc3MgaXM6CisgICAgICBSaWNoYXJkIEdvb2NoLCBjL28gQVRORiwgUC4gTy4gQm94IDc2LCBFcHBpbmcsIE4uUy5XLiwgMjEyMSwgQXVzdHJhbGlhLgorKi8KKworLyoKKyAgICBUaGlzIHRvb2wgd2lsbCBzZW5kIGNvbnRyb2wgbWVzc2FnZXMgdG8gaW5pdCg4KS4gRm9yIGV4YW1wbGUsIGl0IG1heQorICAgIHJlcXVlc3QgaW5pdCg4KSB0byBzdGFydCBhIHNlcnZpY2UgYW5kIHdpbGwgd2FpdCBmb3IgdGhhdCBzZXJ2aWNlIHRvIGJlCisgICAgYXZhaWxhYmxlLiBJZiB0aGUgc2VydmljZSBpcyBhbHJlYWR5IGF2YWlsYWJsZSwgaW5pdCg4KSB3aWxsIG5vdCBzdGFydCBpdAorICAgIGFnYWluLgorICAgIFRoaXMgdG9vbCBtYXkgYWxzbyBiZSB1c2VkIHRvIGluc3BlY3QgdGhlIGxpc3Qgb2YgY3VycmVudGx5IGF2YWlsYWJsZQorICAgIHNlcnZpY2VzLgorCisKKyAgICBXcml0dGVuIGJ5ICAgICAgUmljaGFyZCBHb29jaCAgIDI4LUZFQi0yMDAwCisKKyAgICBVcGRhdGVkIGJ5ICAgICAgUmljaGFyZCBHb29jaCAgIDExLU9DVC0yMDAwOiBBZGRlZCBwcm92aWRlIHN1cHBvcnQuCisKKyAgICBMYXN0IHVwZGF0ZWQgYnkgUmljaGFyZCBHb29jaCAgIDYtTk9WLTIwMDA6IFJlbmFtZWQgdG8gaW5pdGN0bC5jCisKKworKi8KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlICJzaW1wbGVpbml0LmgiCisKKworc3RhdGljIHZvaWQgc2lnbmFsX2hhbmRsZXIgKGludCBzaWcpOworCisKK3N0YXRpYyBpbnQgY2F1Z2h0X3NpZ25hbCA9IDA7CisKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgICBpbnQgZmQsIG5ieXRlczsKKyAgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworICAgIHNpZ3NldF90IHNzOworICAgIGNoYXIgKnB0cjsKKyAgICBsb25nICpidWZmZXI7CisgICAgc3RydWN0IGNvbW1hbmRfc3RydWN0ICpjb21tYW5kOworCisgICAgYnVmZmVyID0gY2FsbG9jKENPTU1BTkRfU0laRSAvIHNpemVvZiAobG9uZykgKyAxLCBzaXplb2YobG9uZykpOworICAgIGlmICghYnVmZmVyKSB7CisJICAgIGZwcmludGYgKHN0ZGVyciwgIlVuYWJsZSBhbGxvY2F0ZSBidWZmZXIgZm9yIGNvbW1hbmRcbiIpOworCSAgICBleGl0KDEpOworICAgIH0KKyAgICBjb21tYW5kID0gKHN0cnVjdCBjb21tYW5kX3N0cnVjdCAqKSBidWZmZXI7CisKKyAgICBzaWdlbXB0eXNldCAoJnNzKTsKKyAgICBzaWdhZGRzZXQgKCZzcywgU0lHX1BSRVNFTlQpOworICAgIHNpZ2FkZHNldCAoJnNzLCBTSUdfTk9UX1BSRVNFTlQpOworICAgIHNpZ2FkZHNldCAoJnNzLCBTSUdfRkFJTEVEKTsKKyAgICBzaWdwcm9jbWFzayAoU0lHX0JMT0NLLCAmc3MsIE5VTEwpOworICAgIHNpZ2VtcHR5c2V0ICgmc2Euc2FfbWFzayk7CisgICAgc2Euc2FfZmxhZ3MgPSAwOworICAgIHNhLnNhX2hhbmRsZXIgPSBzaWduYWxfaGFuZGxlcjsKKyAgICBzaWdhY3Rpb24gKFNJR19QUkVTRU5ULCAmc2EsIE5VTEwpOworICAgIHNpZ2FjdGlvbiAoU0lHX05PVF9QUkVTRU5ULCAmc2EsIE5VTEwpOworICAgIHNpZ2FjdGlvbiAoU0lHX0ZBSUxFRCwgJnNhLCBOVUxMKTsKKyAgICBjb21tYW5kLT5waWQgPSBnZXRwaWQgKCk7CisgICAgY29tbWFuZC0+cHBpZCA9IGdldHBwaWQgKCk7CisgICAgaWYgKCAoIHB0ciA9IHN0cnJjaHIgKGFyZ3ZbMF0sICcvJykgKSA9PSBOVUxMICkgcHRyID0gYXJndlswXTsKKyAgICBlbHNlICsrcHRyOworICAgIC8qICBGaXJzdCBnZW5lcmF0ZSBjb21tYW5kIG51bWJlciBieSBsb29raW5nIGF0IGludm9jYXRpb24gbmFtZSAgKi8KKyAgICBpZiAoc3RyY21wIChwdHIsICJkaXNwbGF5LXNlcnZpY2VzIikgPT0gMCkKKwljb21tYW5kLT5jb21tYW5kID0gQ09NTUFORF9EVU1QX0xJU1Q7CisgICAgZWxzZSBpZiAoc3RyY21wIChwdHIsICJuZWVkIikgPT0gMCkgY29tbWFuZC0+Y29tbWFuZCA9IENPTU1BTkRfTkVFRDsKKyAgICBlbHNlIGlmIChzdHJjbXAgKHB0ciwgInByb3ZpZGUiKSA9PSAwKSBjb21tYW5kLT5jb21tYW5kID0gQ09NTUFORF9QUk9WSURFOworICAgIGVsc2UgY29tbWFuZC0+Y29tbWFuZCA9IENPTU1BTkRfVEVTVDsKKyAgICAvKiAgTm93IGNoZWNrIGZvciBzd2l0Y2hlcyAgKi8KKyAgICBpZiAoIChhcmdjID4gMSkgJiYgKGFyZ3ZbMV1bMF0gPT0gJy0nKSApCisgICAgeworCXN3aXRjaCAoYXJndlsxXVsxXSkKKwl7CisJICBjYXNlICduJzoKKwkgICAgY29tbWFuZC0+Y29tbWFuZCA9IENPTU1BTkRfTkVFRDsKKwkgICAgYnJlYWs7CisJICBjYXNlICdyJzoKKwkgICAgY29tbWFuZC0+Y29tbWFuZCA9IENPTU1BTkRfUk9MTEJBQ0s7CisJICAgIGJyZWFrOworCSAgY2FzZSAnZCc6CisJICAgIGNvbW1hbmQtPmNvbW1hbmQgPSBDT01NQU5EX0RVTVBfTElTVDsKKwkgICAgYnJlYWs7CisJICBjYXNlICdwJzoKKwkgICAgY29tbWFuZC0+Y29tbWFuZCA9IENPTU1BTkRfUFJPVklERTsKKwkgICAgYnJlYWs7CisJICBkZWZhdWx0OgorCSAgICBmcHJpbnRmIChzdGRlcnIsICJJbGxlZ2FsIHN3aXRjaDogXCIlc1wiXG4iLCBhcmd2WzFdKTsKKwkgICAgZXhpdCAoMSk7CisJICAgIC8qYnJlYWs7Ki8KKwl9CisJLS1hcmdjOworCSsrYXJndjsKKyAgICB9CisgICAgc3dpdGNoIChjb21tYW5kLT5jb21tYW5kKQorICAgIHsKKyAgICAgIGNhc2UgQ09NTUFORF9ORUVEOgorICAgICAgY2FzZSBDT01NQU5EX1BST1ZJREU6CisJaWYgKGFyZ2MgPCAyKQorCXsKKwkgICAgZnByaW50ZiAoc3RkZXJyLCAiVXNhZ2U6XHRuZWVkfHByb3ZpZGUgcHJvZ3JhbW1lXG4iKTsKKwkgICAgZXhpdCAoMSk7CisJfQorCS8qICBGYWxsIHRocm91Z2ggICovCisgICAgICBjYXNlIENPTU1BTkRfUk9MTEJBQ0s6CisJaWYgKGFyZ2MgPiAxKSBzdHJjcHkgKGNvbW1hbmQtPm5hbWUsIGFyZ3ZbMV0pOworCWVsc2UgY29tbWFuZC0+bmFtZVswXSA9ICdcMCc7CisJYnJlYWs7CisgICAgICBjYXNlIENPTU1BTkRfRFVNUF9MSVNUOgorCWlmICh0bXBuYW0gKGNvbW1hbmQtPm5hbWUpID09IE5VTEwpCisJeworCSAgICBmcHJpbnRmIChzdGRlcnIsICJVbmFibGUgdG8gY3JlYXRlIGEgdW5pcXVlIGZpbGVuYW1lXHQlc1xuIiwKKwkJICAgICBFUlJTVFJJTkcpOworCSAgICBleGl0ICgxKTsKKwl9CisJaWYgKG1rZmlmbyAoY29tbWFuZC0+bmFtZSwgU19JUlVTUikgIT0gMCkKKwl7CisJICAgIGZwcmludGYgKHN0ZGVyciwgIlVuYWJsZSB0byBjcmVhdGUgRklGTzogXCIlc1wiXHQlc1xuIiwKKwkJICAgICBjb21tYW5kLT5uYW1lLCBFUlJTVFJJTkcpOworCSAgICBleGl0ICgxKTsKKwl9CisJYnJlYWs7CisgICAgfQorICAgIGlmICggKCBmZCA9IG9wZW4gKCIvZGV2L2luaXRjdGwiLCBPX1dST05MWSwgMCkgKSA8IDAgKQorICAgIHsKKwlmcHJpbnRmIChzdGRlcnIsICJFcnJvciBvcGVuaW5nXHQlc1xuIiwgRVJSU1RSSU5HKTsKKwlleGl0ICgxKTsKKyAgICB9CisgICAgaWYgKHdyaXRlIChmZCwgYnVmZmVyLCBDT01NQU5EX1NJWkUpIDwgQ09NTUFORF9TSVpFKQorICAgIHsKKwlmcHJpbnRmIChzdGRlcnIsICJFcnJvciB3cml0aW5nXHQlc1xuIiwgRVJSU1RSSU5HKTsKKwlleGl0ICgxKTsKKyAgICB9CisgICAgY2xvc2UgKGZkKTsKKyAgICBpZiAoY29tbWFuZC0+Y29tbWFuZCAhPSBDT01NQU5EX0RVTVBfTElTVCkKKyAgICB7CisJc2lnZW1wdHlzZXQgKCZzcyk7CisJd2hpbGUgKGNhdWdodF9zaWduYWwgPT0gMCkgc2lnc3VzcGVuZCAoJnNzKTsKKwlzd2l0Y2ggKGNvbW1hbmQtPmNvbW1hbmQpCisJeworCSAgY2FzZSBDT01NQU5EX1BST1ZJREU6CisJICAgIHN3aXRjaCAoY2F1Z2h0X3NpZ25hbCkKKwkgICAgeworCSAgICAgIGNhc2UgU0lHX1BSRVNFTlQ6CisJCXJldHVybiAxOworCSAgICAgIGNhc2UgU0lHX05PVF9QUkVTRU5UOgorCQlyZXR1cm4gMDsKKwkgICAgICBjYXNlIFNJR19OT1RfQ0hJTEQ6CisJCWZwcmludGYgKHN0ZGVyciwgIkVycm9yXG4iKTsKKwkJcmV0dXJuIDI7CisJICAgICAgZGVmYXVsdDoKKwkJcmV0dXJuIDM7CisJICAgIH0KKwkgICAgYnJlYWs7CisJICBkZWZhdWx0OgorCSAgICBzd2l0Y2ggKGNhdWdodF9zaWduYWwpCisJICAgIHsKKwkgICAgICBjYXNlIFNJR19QUkVTRU5UOgorCQlyZXR1cm4gMDsKKwkgICAgICBjYXNlIFNJR19OT1RfUFJFU0VOVDoKKwkJcmV0dXJuIDI7CisJICAgICAgY2FzZSBTSUdfRkFJTEVEOgorCQlyZXR1cm4gMTsKKwkgICAgICBkZWZhdWx0OgorCQlyZXR1cm4gMzsKKwkgICAgfQorCSAgICBicmVhazsKKwl9CisJcmV0dXJuIDM7CisgICAgfQorICAgIC8qICBSZWFkIGJhY2sgdGhlIGRhdGEgYW5kIGRpc3BsYXkgaXQgICovCisgICAgaWYgKCAoIGZkID0gb3BlbiAoY29tbWFuZC0+bmFtZSwgT19SRE9OTFksIDApICkgPCAwICkKKyAgICB7CisJZnByaW50ZiAoc3RkZXJyLCAiRXJyb3Igb3BlbmluZzpcIiVzXCJcdCVzXG4iLAorCQkgY29tbWFuZC0+bmFtZSwgRVJSU1RSSU5HKTsKKwlleGl0ICgxKTsKKyAgICB9CisgICAgdW5saW5rIChjb21tYW5kLT5uYW1lKTsKKyAgICBmZmx1c2ggKHN0ZG91dCk7CisgICAgd2hpbGUgKCAoIG5ieXRlcyA9IHJlYWQgKGZkLCBidWZmZXIsIENPTU1BTkRfU0laRSkgKSA+IDAgKQorCXdyaXRlICgxLCBidWZmZXIsIG5ieXRlcyk7CisgICAgY2xvc2UgKGZkKTsKKyAgICByZXR1cm4gKDApOworfSAgIC8qICBFbmQgRnVuY3Rpb24gbWFpbiAgKi8KKworc3RhdGljIHZvaWQgc2lnbmFsX2hhbmRsZXIgKGludCBzaWcpCit7CisgICAgY2F1Z2h0X3NpZ25hbCA9IHNpZzsKK30gICAvKiAgRW5kIEZ1bmN0aW9uIHNpZ25hbF9oYW5kbGVyICAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvaXNsb2NhbC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvaXNsb2NhbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MmE0ZTkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9pc2xvY2FsLmMKQEAgLTAsMCArMSwxMTUgQEAKKy8qIAorICAgaXNsb2NhbC5jIC0gcmV0dXJucyB0cnVlIGlmIHVzZXIgaXMgcmVnaXN0ZXJlZCBpbiB0aGUgbG9jYWwKKyAgIC9ldGMvcGFzc3dkIGZpbGUuIFdyaXR0ZW4gYnkgQWx2YXJvIE1hcnRpbmV6IEVjaGV2YXJyaWEsIAorICAgYWx2YXJvQGVuYW5vLmV0c2l0LnVwbS5lcywgdG8gYWxsb3cgcGVhY2VmdWwgY29leGlzdGVuY2Ugd2l0aCB5cC4gTm92IDk0LgorCisgICBIYWNrZWQgYSBiaXQgYnkgcG9lQGRhaW1pLmFhdS5kaworICAgU2VlIGFsc28gZnRwOi8vZnRwLmRhaW1pLmFhdS5kay9wdWIvbGludXgvcG9lL2FkbXV0aWwqCisKKyAgIEhhY2tlZCBieSBQZXRlciBCcmVpdGVubG9obmVyLCBwZWJAbXBwbXUubXBnLmRlLAorICAgICB0byBkaXN0aW5ndWlzaCB1c2VyIG5hbWVzIHdoZXJlIG9uZSBpcyBhIHByZWZpeCBvZiB0aGUgb3RoZXIsCisgICAgIGFuZCB0byB1c2UgInBhdGhuYW1lcy5oIi4gT2N0IDUsIDk2LiAgIAorCisgICAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAgIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKworICAgMjAwOC0wNC0wNiBKYW1lcyBZb3VuZ21hbiwgamF5QGdudS5vcmcKKyAgIC0gQ29tcGxldGVseSByZXdyaXR0ZW4gdG8gcmVtb3ZlIGFzc3VtcHRpb24gdGhhdCAvZXRjL3Bhc3N3ZAorICAgICBsaW5lcyBhcmUgPCAxMDI0IGNoYXJhY3RlcnMgbG9uZy4gIEFsc28gYWRkZWQgdW5pdCB0ZXN0cy4KKworKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJubHMuaCIKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJpc2xvY2FsLmgiCisKK3N0YXRpYyBpbnQKK2lzX2xvY2FsX2luX2ZpbGUoY29uc3QgY2hhciAqdXNlciwgY29uc3QgY2hhciAqZmlsZW5hbWUpCit7CisJaW50IGxvY2FsID0gMDsKKwlzaXplX3QgbWF0Y2g7CisJaW50IGNoaW4sIHNraXA7CisJRklMRSAqZjsKKworICAgICAgICBpZiAoTlVMTCA9PSAoZj1mb3BlbihmaWxlbmFtZSwgInIiKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworCisJbWF0Y2ggPSAwdTsKKwlza2lwID0gMDsKKwl3aGlsZSAoKGNoaW4gPSBnZXRjKGYpKSAhPSBFT0YpIHsKKwkJaWYgKHNraXApIHsKKwkJCS8qIExvb2tpbmcgZm9yIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBsaW5lLiAqLworCQkJaWYgKCdcbicgPT0gY2hpbikgeworCQkJCS8qIFN0YXJ0IG1hdGNoaW5nIHVzZXJuYW1lIGF0IHRoZSBuZXh0IGNoYXIuICovCisJCQkJc2tpcCA9IDA7CisJCQkJbWF0Y2ggPSAwdTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWlmICgnOicgPT0gY2hpbikgeworCQkJCWlmICgwID09IHVzZXJbbWF0Y2hdKSB7CisJCQkJCWxvY2FsID0gMTsgLyogU3VjY2Vzcy4gKi8KKwkJCQkJLyogbmV4dCBsaW5lIGhhcyBubyB0ZXN0IGNvdmVyYWdlLCBidXQgaXQgaXMKKwkJCQkJICoganVzdCBhbiBvcHRpbWlzYXRpb24gYW55d2F5LiAqLworCQkJCQlicmVhazsKKwkJCQl9IGVsc2UgeworCQkJCQkvKiB3ZSByZWFkIGEgd2hvbGUgdXNlcm5hbWUsIGJ1dCBpdCBpcworCQkJCQkgKiB0aGUgd3JvbmcgdXNlci4gIFNraXAgdG8gdGhlIG5leHQKKwkJCQkJICogbGluZS4gKi8KKwkJCQkJc2tpcCA9IDE7CisJCQkJfQorCQkJfSBlbHNlIGlmICgnXG4nID09IGNoaW4pIHsKKwkJCQkvKiBUaGlzIGxpbmUgY29udGFpbnMgbm8gY29sb247IGl0J3MgbWFsZm9ybWVkLgorCQkJCSAqIE5vIHNraXAgc2luY2Ugd2UgYXJlIGFscmVhZHkgYXQgdGhlIHN0YXJ0IG9mCisJCQkJICogdGhlIG5leHQgbGluZS4gKi8KKwkJCQltYXRjaCA9IDB1OworCQkJfSBlbHNlIGlmIChjaGluICE9IHVzZXJbbWF0Y2hdKSB7CisJCQkJLyogdXNlcm5hbWUgZG9lcyBub3QgbWF0Y2guICovCisJCQkJc2tpcCA9IDE7CisJCQl9IGVsc2UgeworCQkJCSsrbWF0Y2g7CisJCQl9CisJCX0KKwl9CisJZmNsb3NlKGYpOworCXJldHVybiBsb2NhbDsKK30KKworaW50Citpc19sb2NhbChjb25zdCBjaGFyICp1c2VyKQoreworCWludCBydjsKKwlpZiAoKHJ2ID0gaXNfbG9jYWxfaW5fZmlsZSh1c2VyLCBfUEFUSF9QQVNTV0QpKSA8IDApIHsKKwkJcGVycm9yKF9QQVRIX1BBU1NXRCk7CisJCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZywgZXhpdGluZy4iKSwKKwkJCV9QQVRIX1BBU1NXRCk7CisJCWV4aXQoMSk7CisJfSBlbHNlIHsKKwkJcmV0dXJuIHJ2OworCX0KK30KKworI2lmIE1BSU5fVEVTVF9JU0xPQ0FMCitpbnQKK21haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJaWYgKGFyZ2MgPCAyKSB7CisJCWZwcmludGYoc3RkZXJyLCAiTm8gdGVzdCBwYXNzd2QgZmlsZSB3YXMgc3BlY2lmaWVkLlxuIik7CisJCXJldHVybiAxOworCX0gZWxzZSB7CisJCWludCBpOworCQlmb3IgKGkgPSAyOyBpIDwgYXJnYzsgaSsrKSB7CisJCQljb25zdCBpbnQgcnYgPSBpc19sb2NhbF9pbl9maWxlKGFyZ3ZbaV0sIGFyZ3ZbMV0pOworCQkJaWYgKHJ2IDwgMCkgeworCQkJCXBlcnJvcihhcmd2WzFdKTsKKwkJCQlyZXR1cm4gMjsKKwkJCX0KKwkJCXByaW50ZigiJWQ6JXNcbiIsIHJ2LCBhcmd2W2ldKTsKKwkJfQorCQlyZXR1cm4gMDsKKwl9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2lzbG9jYWwuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2lzbG9jYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzU4Nzk5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvaXNsb2NhbC5oCkBAIC0wLDAgKzEgQEAKK2V4dGVybiBpbnQgaXNfbG9jYWwoY29uc3QgY2hhciAqdXNlcik7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9sYXN0LjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9sYXN0LjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE0ZTVkOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2xhc3QuMQpAQCAtMCwwICsxLDYyIEBACisuVEggTEFTVCAxICIyMCBNYXJjaCAxOTkyIgorLlNIIE5BTUUKK2xhc3QgXChlbSBpbmRpY2F0ZSBsYXN0IGxvZ2lucyBieSB1c2VyIG9yIHRlcm1pbmFsCisuU0ggU1lOT1BTSVMKKy5hZCBsCisuQiBsYXN0CisuUkIgWyBcLVxmUFxmSW51bWJlclxmUCBdCisuUkIgWyBcLWYKKy5JUiBmaWxlbmFtZSBdCisuUkIgWyBcLXQKKy5JUiB0dHkgXQorLlJCIFsgXC1oCisuSVIgaG9zdG5hbWUgXQorLlJCIFsgXC1pCisuSVIgYWRkcmVzcyBdCisuUkIgWyBcLWwgXQorLlJCIFsgXC15IF0KKy5SSSBbIG5hbWUgLi4uXQorLmFkIGIKKy5TSCBERVNDUklQVElPTgorXGZCTGFzdFxmUCBsb29rcyBiYWNrIGluIHRoZSBcZkJ3dG1wXGZQIGZpbGUgd2hpY2ggcmVjb3JkcyBhbGwgbG9naW5zCithbmQgbG9nb3V0cyBmb3IgaW5mb3JtYXRpb24gYWJvdXQgYSB1c2VyLCBhIHRlbGV0eXBlIG9yIGFueSBncm91cCBvZgordXNlcnMgYW5kIHRlbGV0eXBlcy4gIEFyZ3VtZW50cyBzcGVjaWZ5IG5hbWVzIG9mIHVzZXJzIG9yIHRlbGV0eXBlcyBvZgoraW50ZXJlc3QuICBJZiBtdWx0aXBsZSBhcmd1bWVudHMgYXJlIGdpdmVuLCB0aGUgaW5mb3JtYXRpb24gd2hpY2gKK2FwcGxpZXMgdG8gYW55IG9mIHRoZSBhcmd1bWVudHMgaXMgcHJpbnRlZC4gIEZvciBleGFtcGxlIGBgXGZCbGFzdCByb290Citjb25zb2xlXGZQJycgd291bGQgbGlzdCBhbGwgb2Ygcm9vdCdzIHNlc3Npb25zIGFzIHdlbGwgYXMgYWxsIHNlc3Npb25zCitvbiB0aGUgY29uc29sZSB0ZXJtaW5hbC4gIFxmQkxhc3RcZlAgZGlzcGxheXMgdGhlIHNlc3Npb25zIG9mIHRoZQorc3BlY2lmaWVkIHVzZXJzIGFuZCB0ZWxldHlwZXMsIG1vc3QgcmVjZW50IGZpcnN0LCBpbmRpY2F0aW5nIHRoZSB0aW1lcworYXQgd2hpY2ggdGhlIHNlc3Npb24gYmVnYW4sIHRoZSBkdXJhdGlvbiBvZiB0aGUgc2Vzc2lvbiwgYW5kIHRoZQordGVsZXR5cGUgd2hpY2ggdGhlIHNlc3Npb24gdG9vayBwbGFjZSBvbi4gIElmIHRoZSBzZXNzaW9uIGlzIHN0aWxsCitjb250aW51aW5nIG9yIHdhcyBjdXQgc2hvcnQgYnkgYSByZWJvb3QsIFxmQmxhc3RcZlAgc28gaW5kaWNhdGVzLgorLkxQCitUaGUgcHNldWRvLXVzZXIgXGZCcmVib290XGZQIGxvZ3MgaW4gYXQgcmVib290cyBvZiB0aGUgc3lzdGVtLgorLkxQCitcZkJMYXN0XGZQIHdpdGggbm8gYXJndW1lbnRzIGRpc3BsYXlzIGEgcmVjb3JkIG9mIGFsbCBsb2dpbnMgYW5kCitsb2dvdXRzLCBpbiByZXZlcnNlIG9yZGVyLgorLkxQCitJZiBcZkJsYXN0XGZQIGlzIGludGVycnVwdGVkLCBpdCBpbmRpY2F0ZXMgaG93IGZhciB0aGUgc2VhcmNoIGhhcworcHJvZ3Jlc3NlZCBpbiBcZkJ3dG1wXGZQLiAgSWYgaW50ZXJydXB0ZWQgd2l0aCBhIHF1aXQgc2lnbmFsIFxmQmxhc3RcZlAKK2luZGljYXRlcyBob3cgZmFyIHRoZSBzZWFyY2ggaGFzIHByb2dyZXNzZWQgc28gZmFyLCBhbmQgdGhlIHNlYXJjaAorY29udGludWVzLgorLlNIIE9QVElPTlMKKy5JUCBcZkJcLVxmUFxmSW51bWJlclxmUAorbGltaXQgdGhlIG51bWJlciBvZiBlbnRyaWVzIGRpc3BsYXllZCB0byB0aGF0IHNwZWNpZmllZCBieSBcZkludW1iZXJcZlAuCisuSVAgIlxmQlwtZlxmUCBcZklmaWxlbmFtZVxmUCIKK1VzZSBcZklmaWxlbmFtZVxmUCBhcyB0aGUgbmFtZSBvZiB0aGUgYWNjb3VudGluZyBmaWxlIGluc3RlYWQgb2YKKy5CUiAvdmFyL2xvZy93dG1wIC4KKy5JUCAiXGZCXC1oXGZQIFxmSWhvc3RuYW1lXGZQIgorTGlzdCBvbmx5IGxvZ2lucyBmcm9tIFxmSWhvc3RuYW1lXGZQLgorLklQICJcZkJcLWlcZlAgXGZJSVAgYWRkcmVzc1xmUCIKK0xpc3Qgb25seSBsb2dpbnMgZnJvbSBcZklJUCBhZGRyZXNzXGZQLgorLklQICJcZkJcLWxcZlAiCitMaXN0IElQIGFkZHJlc3NlcyBvZiByZW1vdGUgaG9zdHMgaW5zdGVhZCBvZiB0cnVuY2F0ZWQgaG9zdCBuYW1lcy4KKy5JUCAiXGZCXC10XGZQIFxmSXR0eVxmUCIKK0xpc3Qgb25seSBsb2dpbnMgb24gXGZJdHR5XGZQLgorLklQICJcZkJcLXlcZlAiCitBbHNvIHJlcG9ydCB5ZWFyIG9mIGRhdGVzLgorLlNIIEZJTEVTCisvdmFyL2xvZy93dG1wIFwoZW0gbG9naW4gZGF0YSBiYXNlCisuU0ggQVZBSUxBQklMSVRZCitUaGUgbGFzdCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2xhc3QuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2xhc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzRjMGExCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbGFzdC5jCkBAIC0wLDAgKzEsNDc4IEBACisvKgorICogQmVya2VsZXkgbGFzdCBmb3IgTGludXguIEN1cnJlbnRseSBtYWludGFpbmVkIGJ5IHBvZUBkYWltaS5hYXUuZGsgYXQKKyAqIGZ0cDovL2Z0cC5kYWltaS5hYXUuZGsvcHViL2xpbnV4L3BvZS9hZG11dGlsKgorICoKKyAqIENvcHlyaWdodCAoYykgMTk4NyBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMgYXJlIHBlcm1pdHRlZAorICogcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwYXJhZ3JhcGggYXJlCisgKiBkdXBsaWNhdGVkIGluIGFsbCBzdWNoIGZvcm1zIGFuZCB0aGF0IGFueSBkb2N1bWVudGF0aW9uLAorICogYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzLCBhbmQgb3RoZXIgbWF0ZXJpYWxzIHJlbGF0ZWQgdG8gc3VjaAorICogZGlzdHJpYnV0aW9uIGFuZCB1c2UgYWNrbm93bGVkZ2UgdGhhdCB0aGUgc29mdHdhcmUgd2FzIGRldmVsb3BlZAorICogYnkgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgQmVya2VsZXkuICBUaGUgbmFtZSBvZiB0aGUKKyAqIFVuaXZlcnNpdHkgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRJQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKyAqLworCisgLyogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICAqLworCisgLyogMjAwMS0wMi0xNCBNYXJlayBaZWxlbSA8bWFyZWtAZm9ybmF4LnNrPgorICAqIC0gdXNpbmcgbW1hcCgpIG9uIExpbnV4IC0gZ3JlYXQgc3BlZWQgaW1wcm92ZW1lbnQKKyAgKi8KKworLyoKKyAqIGxhc3QKKyAqLworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL2ZpbGUuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx1dG1wLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CisKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJubHMuaCIKKworI2RlZmluZQlTRUNEQVkJKDI0KjYwKjYwKQkJCS8qIHNlY29uZHMgaW4gYSBkYXkgKi8KKyNkZWZpbmUJTk8JMAkJCQkvKiBmYWxzZS9ubyAqLworI2RlZmluZQlZRVMJMQkJCQkvKiB0cnVlL3llcyAqLworCitzdGF0aWMgc3RydWN0IHV0bXAJdXRtcGJ1ZjsKKworI2RlZmluZQlITUFYCShpbnQpc2l6ZW9mKHV0bXBidWYudXRfaG9zdCkJLyogc2l6ZSBvZiB1dG1wIGhvc3QgZmllbGQgKi8KKyNkZWZpbmUJTE1BWAkoaW50KXNpemVvZih1dG1wYnVmLnV0X2xpbmUpCS8qIHNpemUgb2YgdXRtcCB0dHkgZmllbGQgKi8KKyNkZWZpbmUJTk1BWAkoaW50KXNpemVvZih1dG1wYnVmLnV0X25hbWUpCS8qIHNpemUgb2YgdXRtcCBuYW1lIGZpZWxkICovCisKKyNpZm5kZWYgTUlOCisjZGVmaW5lIE1JTihhLGIpCSgoKGEpIDwgKGIpKSA/IChhKSA6IChiKSkKKyNlbmRpZgorCisvKiBtYXhpbXVtIHNpemVzIHVzZWQgZm9yIHByaW50aW5nICovCisvKiBwcm9iYWJseSB3ZSB3YW50IGEgdHdvLXBhc3MgdmVyc2lvbiB0aGF0IGNvbXB1dGVzIHRoZSByaWdodCBsZW5ndGggKi8KK2ludCBobWF4ID0gTUlOKEhNQVgsIDE2KTsKK2ludCBsbWF4ID0gTUlOKExNQVgsIDgpOworaW50IG5tYXggPSBNSU4oTk1BWCwgMTYpOworCit0eXBlZGVmIHN0cnVjdCBhcmcgeworCWNoYXIJKm5hbWU7CQkJCS8qIGFyZ3VtZW50ICovCisjZGVmaW5lCUhPU1RfVFlQRQktMgorI2RlZmluZQlUVFlfVFlQRQktMworI2RlZmluZQlVU0VSX1RZUEUJLTQKKyNkZWZpbmUgSU5FVF9UWVBFCS01CisJaW50CXR5cGU7CQkJCS8qIHR5cGUgb2YgYXJnICovCisJc3RydWN0IGFyZwkqbmV4dDsJCQkvKiBsaW5rZWQgbGlzdCBwb2ludGVyICovCit9IEFSRzsKK0FSRwkqYXJnbGlzdDsJCQkJLyogaGVhZCBvZiBsaW5rZWQgbGlzdCAqLworCit0eXBlZGVmIHN0cnVjdCB0dHl0YWIgeworCWxvbmcJbG9nb3V0OwkJCQkvKiBsb2cgb3V0IHRpbWUgKi8KKwljaGFyCXR0eVtMTUFYICsgMV07CQkJLyogdGVybWluYWwgbmFtZSAqLworCXN0cnVjdCB0dHl0YWIJKm5leHQ7CQkJLyogbGlua2VkIGxpc3QgcG9pbnRlciAqLworfSBUVFk7CitUVFkJKnR0eWxpc3Q7CQkJCS8qIGhlYWQgb2YgbGlua2VkIGxpc3QgKi8KKworc3RhdGljIGxvbmcJY3VycmVudG91dCwJCQkvKiBjdXJyZW50IGxvZ291dCB2YWx1ZSAqLworCQltYXhyZWM7CQkJCS8qIHJlY29yZHMgdG8gZGlzcGxheSAqLworc3RhdGljIGNoYXIJKmZpbGUgPSBfUEFUSF9XVE1QOwkJLyogd3RtcCBmaWxlICovCisKK3N0YXRpYyBpbnQJZG95ZWFyID0gMDsJCQkvKiBvdXRwdXQgeWVhciBpbiBkYXRlcyAqLworc3RhdGljIGludAlkb2xvbmcgPSAwOwkJCS8qIHByaW50IGFsc28gaXAtYWRkciAqLworCitzdGF0aWMgdm9pZCB3dG1wKHZvaWQpOworc3RhdGljIHZvaWQgYWRkYXJnKGludCwgY2hhciAqKTsKK3N0YXRpYyB2b2lkIGhvc3Rjb252KGNoYXIgKik7CitzdGF0aWMgdm9pZCBvbmludHIoaW50KTsKK3N0YXRpYyBpbnQgd2FudChzdHJ1Y3QgdXRtcCAqLCBpbnQpOworVFRZICphZGR0dHkoY2hhciAqKTsKK3N0YXRpYyBjaGFyICp0dHljb252KGNoYXIgKik7CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKwlleHRlcm4gaW50CW9wdGluZDsKKwlleHRlcm4gY2hhcgkqb3B0YXJnOworCWludAljaDsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICIwMTIzNDU2Nzg5eWxpOmY6aDp0OiIpKSAhPSAtMSkKKwkJc3dpdGNoKChjaGFyKWNoKSB7CisJCWNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzoKKwkJY2FzZSAnNSc6IGNhc2UgJzYnOiBjYXNlICc3JzogY2FzZSAnOCc6IGNhc2UgJzknOgorCQkJLyoKKwkJCSAqIGtsdWRnZTogbGFzdCB3YXMgb3JpZ2luYWxseSBkZXNpZ25lZCB0byB0YWtlCisJCQkgKiBhIG51bWJlciBhZnRlciBhIGRhc2guCisJCQkgKi8KKwkJCWlmICghbWF4cmVjKQorCQkJCW1heHJlYyA9IGF0b2woYXJndltvcHRpbmQgLSAxXSArIDEpOworCQkJYnJlYWs7CisJCWNhc2UgJ2YnOgorCQkJZmlsZSA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQljYXNlICdoJzoKKwkJCWhvc3Rjb252KG9wdGFyZyk7CisJCQlhZGRhcmcoSE9TVF9UWVBFLCBvcHRhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgJ3QnOgorCQkJYWRkYXJnKFRUWV9UWVBFLCB0dHljb252KG9wdGFyZykpOworCQkJYnJlYWs7CisJCWNhc2UgJ3knOgorCQkJZG95ZWFyID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdsJzoKKwkJCWRvbG9uZyA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnaSc6CisJCQlhZGRhcmcoSU5FVF9UWVBFLCBvcHRhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgJz8nOgorCQlkZWZhdWx0OgorCQkJZnB1dHMoXygidXNhZ2U6IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXNlciAuLi5dXG4iKSwgc3RkZXJyKTsKKwkJCWV4aXQoMSk7CisJCX0KKwlmb3IgKGFyZ3YgKz0gb3B0aW5kOyAqYXJndjsgKythcmd2KSB7CisjZGVmaW5lCUNPTVBBVElCSUxJVFkKKyNpZmRlZglDT01QQVRJQklMSVRZCisJCS8qIGNvZGUgdG8gYWxsb3cgImxhc3QgcDUiIHRvIHdvcmsgKi8KKwkJYWRkYXJnKFRUWV9UWVBFLCB0dHljb252KCphcmd2KSk7CisjZW5kaWYKKwkJYWRkYXJnKFVTRVJfVFlQRSwgKmFyZ3YpOworCX0KKwl3dG1wKCk7CisJZXhpdCgwKTsKK30KKworc3RhdGljIGNoYXIgKnV0bXBfY3RpbWUoc3RydWN0IHV0bXAgKnUpCit7CisJdGltZV90IHQgPSAodGltZV90KSB1LT51dF90aW1lOworCXJldHVybiBjdGltZSgmdCk7Cit9CisKKy8qCisgKiBwcmludF9wYXJ0aWFsX2xpbmUgLS0KKyAqCXByaW50IHRoZSBmaXJzdCBwYXJ0IG9mIGVhY2ggb3V0cHV0IGxpbmUgYWNjb3JkaW5nIHRvIHNwZWNpZmllZCBmb3JtYXQKKyAqLworc3RhdGljIHZvaWQKK3ByaW50X3BhcnRpYWxfbGluZShzdHJ1Y3QgdXRtcCAqYnApIHsKKyAgICBjaGFyICpjdDsKKworICAgIGN0ID0gdXRtcF9jdGltZShicCk7CisgICAgcHJpbnRmKCIlLSouKnMgICUtKi4qcyAiLCBubWF4LCBubWF4LCBicC0+dXRfbmFtZSwgCisJICAgbG1heCwgbG1heCwgYnAtPnV0X2xpbmUpOworCisgICAgaWYgKGRvbG9uZykgeworCWlmIChicC0+dXRfYWRkcikgeworCSAgICBzdHJ1Y3QgaW5fYWRkciBmb287CisJICAgIGZvby5zX2FkZHIgPSBicC0+dXRfYWRkcjsKKwkgICAgcHJpbnRmKCIlLSouKnMgIiwgaG1heCwgaG1heCwgaW5ldF9udG9hKGZvbykpOworCX0gZWxzZSB7CisJICAgIHByaW50ZigiJS0qLipzICIsIGhtYXgsIGhtYXgsICIiKTsKKwl9CisgICAgfSBlbHNlIHsKKwlwcmludGYoIiUtKi4qcyAiLCBobWF4LCBobWF4LCBicC0+dXRfaG9zdCk7CisgICAgfQorCisgICAgaWYgKGRveWVhcikgeworCXByaW50ZigiJTEwLjEwcyAlNC40cyAlNS41cyAiLCBjdCwgY3QgKyAyMCwgY3QgKyAxMSk7CisgICAgfSBlbHNlIHsKKwlwcmludGYoIiUxMC4xMHMgJTUuNXMgIiwgY3QsIGN0ICsgMTEpOworICAgIH0KK30KKworLyoKKyAqIHd0bXAgLS0KKyAqCXJlYWQgdGhyb3VnaCB0aGUgd3RtcCBmaWxlCisgKi8KK3N0YXRpYyB2b2lkCit3dG1wKHZvaWQpIHsKKwlyZWdpc3RlciBzdHJ1Y3QgdXRtcAkqYnA7CQkvKiBjdXJyZW50IHN0cnVjdHVyZSAqLworCXJlZ2lzdGVyIFRUWQkqVDsJCQkvKiB0dHkgbGlzdCBlbnRyeSAqLworCWxvbmcJZGVsdGE7CQkJCS8qIHRpbWUgZGlmZmVyZW5jZSAqLworCWNoYXIgKmNybXNnID0gTlVMTDsKKwljaGFyICpjdCA9IE5VTEw7CisJaW50IGZkOworCXN0cnVjdCB1dG1wICp1dGw7CisJc3RydWN0IHN0YXQgc3Q7CisJaW50IHV0bF9sZW47CisJaW50IGxpc3RuciA9IDA7CisJaW50IGk7CisKKwl1dG1wbmFtZShmaWxlKTsKKworCXsKKyNpZiBkZWZpbmVkKF9IQVZFX1VUX1RWKQorCQlzdHJ1Y3QgdGltZXZhbCB0djsKKwkJZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CisJCXV0bXBidWYudXRfdHYudHZfc2VjID0gdHYudHZfc2VjOworCQl1dG1wYnVmLnV0X3R2LnR2X3VzZWMgPSB0di50dl91c2VjOworI2Vsc2UKKwkJdGltZV90IHQ7CisJCXRpbWUoJnQpOworCQl1dG1wYnVmLnV0X3RpbWUgPSB0OworI2VuZGlmCisJfQorCisJKHZvaWQpc2lnbmFsKFNJR0lOVCwgb25pbnRyKTsKKwkodm9pZClzaWduYWwoU0lHUVVJVCwgb25pbnRyKTsKKworCWlmICgoZmQgPSBvcGVuKGZpbGUsT19SRE9OTFkpKSA8IDApCisJCWV4aXQoMSk7CisJZnN0YXQoZmQsICZzdCk7CisJdXRsX2xlbiA9IHN0LnN0X3NpemU7CisJdXRsID0gbW1hcChOVUxMLCB1dGxfbGVuLCBQUk9UX1JFQUR8UFJPVF9XUklURSwKKwkJICAgTUFQX1BSSVZBVEV8TUFQX0ZJTEUsIGZkLCAwKTsKKwlpZiAodXRsID09IE5VTEwpCisJCWV4aXQoMSk7CisJbGlzdG5yID0gdXRsX2xlbi9zaXplb2Yoc3RydWN0IHV0bXApOworCisJaWYobGlzdG5yKSAKKwkJY3QgPSB1dG1wX2N0aW1lKCZ1dGxbMF0pOworCisJZm9yKGkgPSBsaXN0bnIgLSAxOyBpID49IDA7IGktLSkgeworCQlicCA9IHV0bCtpOworCQkvKgorCQkgKiBpZiB0aGUgdGVybWluYWwgbGluZSBpcyAnficsIHRoZSBtYWNoaW5lIHN0b3BwZWQuCisJCSAqIHNlZSB1dG1wKDUpIGZvciBtb3JlIGluZm8uCisJCSAqLworCQlpZiAoIXN0cm5jbXAoYnAtPnV0X2xpbmUsICJ+IiwgTE1BWCkpIHsKKwkJICAgIC8qIAorCQkgICAgICogdXRtcCg1KSBhbHNvIG1lbnRpb25zIHRoYXQgdGhlIHVzZXIgCisJCSAgICAgKiBuYW1lIHNob3VsZCBiZSAnc2h1dGRvd24nIG9yICdyZWJvb3QnLgorCQkgICAgICogTm90IGNoZWNraW5nIHRoZSBuYW1lIGNhdXNlcyBlLmcuIHJ1bmxldmVsCisJCSAgICAgKiBjaGFuZ2VzIHRvIGJlIGRpc3BsYXllZCBhcyAnY3Jhc2gnLiAtdGhhZWxlCisJCSAgICAgKi8KKwkJICAgIGlmICghc3RybmNtcChicC0+dXRfdXNlciwgInJlYm9vdCIsIE5NQVgpIHx8CisJCQkhc3RybmNtcChicC0+dXRfdXNlciwgInNodXRkb3duIiwgTk1BWCkpIHsJCisJCQkvKiBldmVyeWJvZHkganVzdCBsb2dnZWQgb3V0ICovCisJCQlmb3IgKFQgPSB0dHlsaXN0OyBUOyBUID0gVC0+bmV4dCkKKwkJCSAgICBULT5sb2dvdXQgPSAtYnAtPnV0X3RpbWU7CisJCSAgICB9CisKKwkJICAgIGN1cnJlbnRvdXQgPSAtYnAtPnV0X3RpbWU7CisJCSAgICBjcm1zZyA9IChzdHJuY21wKGJwLT51dF9uYW1lLCAic2h1dGRvd24iLCBOTUFYKQorCQkJICAgID8gImNyYXNoIiA6ICJkb3duICIpOworCQkgICAgaWYgKCFicC0+dXRfbmFtZVswXSkKKwkJCSh2b2lkKXN0cmNweShicC0+dXRfbmFtZSwgInJlYm9vdCIpOworCQkgICAgaWYgKHdhbnQoYnAsIE5PKSkgeworCQkJY3QgPSB1dG1wX2N0aW1lKGJwKTsKKwkJCWlmKGJwLT51dF90eXBlICE9IExPR0lOX1BST0NFU1MpIHsKKwkJCSAgICBwcmludF9wYXJ0aWFsX2xpbmUoYnApOworCQkJICAgIHB1dGNoYXIoJ1xuJyk7CisJCQl9CisJCQlpZiAobWF4cmVjICYmICEtLW1heHJlYykKKwkJCSAgICByZXR1cm47CisJCSAgICB9CisJCSAgICBjb250aW51ZTsKKwkJfQorCQkvKiBmaW5kIGFzc29jaWF0ZWQgdHR5ICovCisJCWZvciAoVCA9IHR0eWxpc3Q7OyBUID0gVC0+bmV4dCkgeworCQkgICAgaWYgKCFUKSB7CisJCQkvKiBhZGQgbmV3IG9uZSAqLworCQkJVCA9IGFkZHR0eShicC0+dXRfbGluZSk7CisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIGlmICghc3RybmNtcChULT50dHksIGJwLT51dF9saW5lLCBMTUFYKSkKKwkJCWJyZWFrOworCQl9CisJCWlmIChicC0+dXRfbmFtZVswXSAmJiBicC0+dXRfdHlwZSAhPSBMT0dJTl9QUk9DRVNTCisJCSAgICAmJiBicC0+dXRfdHlwZSAhPSBERUFEX1BST0NFU1MKKwkJICAgICYmIHdhbnQoYnAsIFlFUykpIHsKKworCQkgICAgcHJpbnRfcGFydGlhbF9saW5lKGJwKTsKKworCQkgICAgaWYgKCFULT5sb2dvdXQpCisJCQlwdXRzKF8oIiAgc3RpbGwgbG9nZ2VkIGluIikpOworCQkgICAgZWxzZSB7CisJCQlpZiAoVC0+bG9nb3V0IDwgMCkgeworCQkJICAgIFQtPmxvZ291dCA9IC1ULT5sb2dvdXQ7CisJCQkgICAgcHJpbnRmKCItICVzIiwgY3Jtc2cpOworCQkJfQorCQkJZWxzZQorCQkJICAgIHByaW50ZigiLSAlNS41cyIsIGN0aW1lKCZULT5sb2dvdXQpKzExKTsKKwkJCWRlbHRhID0gVC0+bG9nb3V0IC0gYnAtPnV0X3RpbWU7CisJCQlpZiAoZGVsdGEgPCBTRUNEQVkpCisJCQkgICAgcHJpbnRmKCIgICglNS41cylcbiIsIGFzY3RpbWUoZ210aW1lKCZkZWx0YSkpKzExKTsKKwkJCWVsc2UKKwkJCSAgICBwcmludGYoIiAoJWxkKyU1LjVzKVxuIiwgZGVsdGEgLyBTRUNEQVksIGFzY3RpbWUoZ210aW1lKCZkZWx0YSkpKzExKTsKKwkJICAgIH0KKwkJICAgIGlmIChtYXhyZWMgIT0gLTEgJiYgIS0tbWF4cmVjKQorCQkJcmV0dXJuOworCQl9CisJCVQtPmxvZ291dCA9IGJwLT51dF90aW1lOworCQl1dG1wYnVmLnV0X3RpbWUgPSBicC0+dXRfdGltZTsKKwl9CisJbXVubWFwKHV0bCx1dGxfbGVuKTsKKwljbG9zZShmZCk7CisJaWYoY3QpIHByaW50ZihfKCJcbnd0bXAgYmVnaW5zICVzIiksIGN0KTsgCS8qIGN0IGFscmVhZHkgZW5kcyBpbiBcbiAqLworfQorCisvKgorICogd2FudCAtLQorICoJc2VlIGlmIHdhbnQgdGhpcyBlbnRyeQorICovCitzdGF0aWMgaW50Cit3YW50KHN0cnVjdCB1dG1wICpicCwgaW50IGNoZWNrKSB7CisJcmVnaXN0ZXIgQVJHCSpzdGVwOworCisJaWYgKGNoZWNrKSB7CisJCS8qCisJCSAqIHdoZW4gdXVjcCBhbmQgZnRwIGxvZyBpbiBvdmVyIGEgbmV0d29yaywgdGhlIGVudHJ5IGluCisJCSAqIHRoZSB1dG1wIGZpbGUgaXMgdGhlIG5hbWUgcGx1cyB0aGVpciBwcm9jZXNzIGlkLiAgU2VlCisJCSAqIGV0Yy9mdHBkLmMgYW5kIHVzci5iaW4vdXVjcC91dWNwZC5jIGZvciBtb3JlIGluZm9ybWF0aW9uLgorCQkgKi8KKwkJaWYgKCFzdHJuY21wKGJwLT51dF9saW5lLCAiZnRwIiwgc2l6ZW9mKCJmdHAiKSAtIDEpKQorCQkJYnAtPnV0X2xpbmVbM10gPSAnXDAnOworCQllbHNlIGlmICghc3RybmNtcChicC0+dXRfbGluZSwgInV1Y3AiLCBzaXplb2YoInV1Y3AiKSAtIDEpKQorCQkJYnAtPnV0X2xpbmVbNF0gPSAnXDAnOworCX0KKwlpZiAoIWFyZ2xpc3QpCisJCXJldHVybihZRVMpOworCisJZm9yIChzdGVwID0gYXJnbGlzdDsgc3RlcDsgc3RlcCA9IHN0ZXAtPm5leHQpCisJCXN3aXRjaChzdGVwLT50eXBlKSB7CisJCWNhc2UgSE9TVF9UWVBFOgorCQkJaWYgKCFzdHJuY21wKHN0ZXAtPm5hbWUsIGJwLT51dF9ob3N0LCBITUFYKSkKKwkJCQlyZXR1cm4oWUVTKTsKKwkJCWJyZWFrOworCQljYXNlIFRUWV9UWVBFOgorCQkJaWYgKCFzdHJuY21wKHN0ZXAtPm5hbWUsIGJwLT51dF9saW5lLCBMTUFYKSkKKwkJCQlyZXR1cm4oWUVTKTsKKwkJCWJyZWFrOworCQljYXNlIFVTRVJfVFlQRToKKwkJCWlmICghc3RybmNtcChzdGVwLT5uYW1lLCBicC0+dXRfbmFtZSwgTk1BWCkpCisJCQkJcmV0dXJuKFlFUyk7CisJCQlicmVhazsKKwkJY2FzZSBJTkVUX1RZUEU6CisJCQlpZiAoYnAtPnV0X2FkZHIgPT0gaW5ldF9hZGRyKHN0ZXAtPm5hbWUpKQorCQkJICByZXR1cm4oWUVTKTsKKwkJCWJyZWFrOworCX0KKwlyZXR1cm4oTk8pOworfQorCisvKgorICogYWRkYXJnIC0tCisgKglhZGQgYW4gZW50cnkgdG8gYSBsaW5rZWQgbGlzdCBvZiBhcmd1bWVudHMKKyAqLworc3RhdGljIHZvaWQKK2FkZGFyZyhpbnQgdHlwZSwgY2hhciAqYXJnKSB7CisJcmVnaXN0ZXIgQVJHCSpjdXI7CisKKwlpZiAoIShjdXIgPSAoQVJHICopbWFsbG9jKCh1bnNpZ25lZCBpbnQpc2l6ZW9mKEFSRykpKSkgeworCQlmcHV0cyhfKCJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIpLCBzdGRlcnIpOworCQlleGl0KDEpOworCX0KKwljdXItPm5leHQgPSBhcmdsaXN0OworCWN1ci0+dHlwZSA9IHR5cGU7CisJY3VyLT5uYW1lID0gYXJnOworCWFyZ2xpc3QgPSBjdXI7Cit9CisKKy8qCisgKiBhZGR0dHkgLS0KKyAqCWFkZCBhbiBlbnRyeSB0byBhIGxpbmtlZCBsaXN0IG9mIHR0eXMKKyAqLworVFRZICoKK2FkZHR0eShjaGFyICp0dHluYW1lKSB7CisJcmVnaXN0ZXIgVFRZCSpjdXI7CisKKwlpZiAoIShjdXIgPSAoVFRZICopbWFsbG9jKCh1bnNpZ25lZCBpbnQpc2l6ZW9mKFRUWSkpKSkgeworCQlmcHV0cyhfKCJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIpLCBzdGRlcnIpOworCQlleGl0KDEpOworCX0KKwljdXItPm5leHQgPSB0dHlsaXN0OworCWN1ci0+bG9nb3V0ID0gY3VycmVudG91dDsKKwltZW1jcHkoY3VyLT50dHksIHR0eW5hbWUsIExNQVgpOworCXJldHVybih0dHlsaXN0ID0gY3VyKTsKK30KKworLyoKKyAqIGhvc3Rjb252IC0tCisgKgljb252ZXJ0IHRoZSBob3N0bmFtZSB0byBzZWFyY2ggcGF0dGVybjsgaWYgdGhlIHN1cHBsaWVkIGhvc3QgbmFtZQorICoJaGFzIGEgZG9tYWluIGF0dGFjaGVkIHRoYXQgaXMgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgZG9tYWluLCByaXAKKyAqCW9mZiB0aGUgZG9tYWluIHN1ZmZpeCBzaW5jZSB0aGF0J3Mgd2hhdCBsb2dpbigxKSBkb2VzLgorICovCitzdGF0aWMgdm9pZAoraG9zdGNvbnYoY2hhciAqYXJnKSB7CisJc3RhdGljIGludAlmaXJzdCA9IDE7CisJc3RhdGljIGNoYXIJKmhvc3Rkb3QsCisJCQluYW1lW01BWEhPU1ROQU1FTEVOXTsKKwljaGFyCSphcmdkb3Q7CisKKwlpZiAoIShhcmdkb3QgPSBzdHJjaHIoYXJnLCAnLicpKSkKKwkJcmV0dXJuOworCWlmIChmaXJzdCkgeworCQlmaXJzdCA9IDA7CisJCWlmIChnZXRob3N0bmFtZShuYW1lLCBzaXplb2YobmFtZSkpKSB7CisJCQlwZXJyb3IoXygibGFzdDogZ2V0aG9zdG5hbWUiKSk7CisJCQlleGl0KDEpOworCQl9CisJCWhvc3Rkb3QgPSBzdHJjaHIobmFtZSwgJy4nKTsKKwl9CisJaWYgKGhvc3Rkb3QgJiYgIXN0cmNtcChob3N0ZG90LCBhcmdkb3QpKQorCQkqYXJnZG90ID0gJ1wwJzsKK30KKworLyoKKyAqIHR0eWNvbnYgLS0KKyAqCWNvbnZlcnQgdHR5IHRvIGNvcnJlY3QgbmFtZS4KKyAqLworc3RhdGljIGNoYXIgKgordHR5Y29udihjaGFyICphcmcpIHsKKwljaGFyCSptdmFsOworCisJLyoKKwkgKiBrbHVkZ2UgLS0gd2UgYXNzdW1lIHRoYXQgYWxsIHR0eSdzIGVuZCB3aXRoCisJICogYSB0d28gY2hhcmFjdGVyIHN1ZmZpeC4KKwkgKi8KKwlpZiAoc3RybGVuKGFyZykgPT0gMikgeworCQkvKiBlaXRoZXIgNiBmb3IgInR0eXh4IiBvciA4IGZvciAiY29uc29sZSIgKi8KKwkJaWYgKCEobXZhbCA9IG1hbGxvYygodW5zaWduZWQgaW50KTgpKSkgeworCQkJZnB1dHMoXygibGFzdDogbWFsbG9jIGZhaWx1cmUuXG4iKSwgc3RkZXJyKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJaWYgKCFzdHJjbXAoYXJnLCAiY28iKSkKKwkJCSh2b2lkKXN0cmNweShtdmFsLCAiY29uc29sZSIpOworCQllbHNlIHsKKwkJCSh2b2lkKXN0cmNweShtdmFsLCAidHR5Iik7CisJCQkodm9pZClzdHJjcHkobXZhbCArIDMsIGFyZyk7CisJCX0KKwkJcmV0dXJuKG12YWwpOworCX0KKwlpZiAoIXN0cm5jbXAoYXJnLCAiL2Rldi8iLCBzaXplb2YoIi9kZXYvIikgLSAxKSkKKwkJcmV0dXJuKGFyZyArIDUpOworCXJldHVybihhcmcpOworfQorCisvKgorICogb25pbnRyIC0tCisgKglvbiBpbnRlcnJ1cHQsIHdlIGluZm9ybSB0aGUgdXNlciBob3cgZmFyIHdlJ3ZlIGdvdHRlbgorICovCitzdGF0aWMgdm9pZAorb25pbnRyKGludCBzaWdubykgeworCWNoYXIJKmN0OworCisJY3QgPSB1dG1wX2N0aW1lKCZ1dG1wYnVmKTsKKwlwcmludGYoXygiXG5pbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIiksIGN0LCBjdCArIDExKTsKKwlpZiAoc2lnbm8gPT0gU0lHSU5UKQorCQlleGl0KDEpOworCSh2b2lkKWZmbHVzaChzdGRvdXQpOwkJCS8qIGZpeCByZXF1aXJlZCBmb3IgcnNoICovCit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9sb2dpbi4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbG9naW4uMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjI3MzgxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbG9naW4uMQpAQCAtMCwwICsxLDM0NCBAQAorLlwiIENvcHlyaWdodCAxOTkzIFJpY2thcmQgRS4gRmFpdGggKGZhaXRoQGNzLnVuYy5lZHUpCisuXCIgTWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLlRIIExPR0lOIDEgIjQgTm92ZW1iZXIgMTk5NiIgIlV0aWwtbGludXggMS42IiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCBOQU1FCitsb2dpbiBcLSBzaWduIG9uCisuU0ggU1lOT1BTSVMKKy5CUiAibG9naW4gWyAiIG5hbWUgIiBdIgorLmJyCisuQiAibG9naW4gXC1wIgorLmJyCisuQlIgImxvZ2luIFwtaCAiIGhvc3RuYW1lCisuYnIKKy5CUiAibG9naW4gXC1mICIgbmFtZQorLlNIIERFU0NSSVBUSU9OCisuQiBsb2dpbgoraXMgdXNlZCB3aGVuIHNpZ25pbmcgb250byBhIHN5c3RlbS4KKworSWYgYW4gYXJndW1lbnQgaXMgbm90IGdpdmVuLAorLkIgbG9naW4KK3Byb21wdHMgZm9yIHRoZSB1c2VybmFtZS4KKworSWYgdGhlIHVzZXIgaXMKKy5JIG5vdAorcm9vdCwgYW5kIGlmCisuSSAvZXRjL25vbG9naW4KK2V4aXN0cywgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBhcmUgcHJpbnRlZCB0byB0aGUgc2NyZWVuLCBhbmQgdGhlCitsb2dpbiBpcyB0ZXJtaW5hdGVkLiAgVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBwcmV2ZW50IGxvZ2lucyB3aGVuIHRoZQorc3lzdGVtIGlzIGJlaW5nIHRha2VuIGRvd24uCisKK0lmIHNwZWNpYWwgYWNjZXNzIHJlc3RyaWN0aW9ucyBhcmUgc3BlY2lmaWVkIGZvciB0aGUgdXNlciBpbgorLklSIC9ldGMvdXNlcnR0eSAsCit0aGVzZSBtdXN0IGJlIG1ldCwgb3IgdGhlIGxvZyBpbiBhdHRlbXB0IHdpbGwgYmUgZGVuaWVkIGFuZCBhIAorLkIgc3lzbG9nCittZXNzYWdlIHdpbGwgYmUgZ2VuZXJhdGVkLiBTZWUgdGhlIHNlY3Rpb24gb24gIlNwZWNpYWwgQWNjZXNzIFJlc3RyaWN0aW9ucyIuCisKK0lmIHRoZSB1c2VyIGlzIHJvb3QsIHRoZW4gdGhlIGxvZ2luIG11c3QgYmUgb2NjdXJyaW5nIG9uIGEgdHR5IGxpc3RlZCBpbgorLklSIC9ldGMvc2VjdXJldHR5IC4KK0ZhaWx1cmVzIHdpbGwgYmUgbG9nZ2VkIHdpdGggdGhlCisuQiBzeXNsb2cKK2ZhY2lsaXR5LgorCitBZnRlciB0aGVzZSBjb25kaXRpb25zIGhhdmUgYmVlbiBjaGVja2VkLCB0aGUgcGFzc3dvcmQgd2lsbCBiZSByZXF1ZXN0ZWQgYW5kCitjaGVja2VkIChpZiBhIHBhc3N3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGlzIHVzZXJuYW1lKS4gIFRlbiBhdHRlbXB0cworYXJlIGFsbG93ZWQgYmVmb3JlCisuQiBsb2dpbgorZGllcywgYnV0IGFmdGVyIHRoZSBmaXJzdCB0aHJlZSwgdGhlIHJlc3BvbnNlIHN0YXJ0cyB0byBnZXQgdmVyeSBzbG93LgorTG9naW4gZmFpbHVyZXMgYXJlIHJlcG9ydGVkIHZpYSB0aGUKKy5CIHN5c2xvZworZmFjaWxpdHkuICBUaGlzIGZhY2lsaXR5IGlzIGFsc28gdXNlZCB0byByZXBvcnQgYW55IHN1Y2Nlc3NmdWwgcm9vdCBsb2dpbnMuCisKK0lmIHRoZSBmaWxlCisuSSAuaHVzaGxvZ2luCitleGlzdHMsIHRoZW4gYSAicXVpZXQiIGxvZ2luIGlzIHBlcmZvcm1lZCAodGhpcyBkaXNhYmxlcyB0aGUgY2hlY2tpbmcKK29mIG1haWwgYW5kIHRoZSBwcmludGluZyBvZiB0aGUgbGFzdCBsb2dpbiB0aW1lIGFuZCBtZXNzYWdlIG9mIHRoZSBkYXkpLgorT3RoZXJ3aXNlLCBpZgorLkkgL3Zhci9sb2cvbGFzdGxvZworZXhpc3RzLCB0aGUgbGFzdCBsb2dpbiB0aW1lIGlzIHByaW50ZWQgKGFuZCB0aGUgY3VycmVudCBsb2dpbiBpcworcmVjb3JkZWQpLgorCitSYW5kb20gYWRtaW5pc3RyYXRpdmUgdGhpbmdzLCBzdWNoIGFzIHNldHRpbmcgdGhlIFVJRCBhbmQgR0lEIG9mIHRoZQordHR5IGFyZSBwZXJmb3JtZWQuICBUaGUgVEVSTSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBwcmVzZXJ2ZWQsIGlmIGl0CitleGlzdHMgKG90aGVyIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgcHJlc2VydmVkIGlmIHRoZQorLkIgXC1wCitvcHRpb24gaXMgdXNlZCkuICBUaGVuIHRoZSBIT01FLCBQQVRILCBTSEVMTCwgVEVSTSwgTUFJTCwgYW5kIExPR05BTUUKK2Vudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgc2V0LiAgUEFUSCBkZWZhdWx0cyB0bworLkkgL3Vzci9sb2NhbC9iaW46L2JpbjovdXNyL2JpbgorZm9yIG5vcm1hbCB1c2VycywgYW5kIHRvCisuSSAvdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3NiaW46L2JpbjovdXNyL3NiaW46L3Vzci9iaW4KK2ZvciByb290LiAgTGFzdCwgaWYgdGhpcyBpcyBub3QgYSAicXVpZXQiIGxvZ2luLCB0aGUgbWVzc2FnZSBvZiB0aGUKK2RheSBpcyBwcmludGVkIGFuZCB0aGUgZmlsZSB3aXRoIHRoZSB1c2VyJ3MgbmFtZSBpbgorLkkgL3Zhci9zcG9vbC9tYWlsCit3aWxsIGJlIGNoZWNrZWQsIGFuZCBhIG1lc3NhZ2UgcHJpbnRlZCBpZiBpdCBoYXMgbm9uLXplcm8gbGVuZ3RoLgorCitUaGUgdXNlcidzIHNoZWxsIGlzIHRoZW4gc3RhcnRlZC4gIElmIG5vIHNoZWxsIGlzIHNwZWNpZmllZCBmb3IgdGhlCit1c2VyIGluCisuQlIgL2V0Yy9wYXNzd2QgLAordGhlbgorLkIgL2Jpbi9zaAoraXMgdXNlZC4gIElmIHRoZXJlIGlzIG5vIGRpcmVjdG9yeSBzcGVjaWZpZWQgaW4KKy5JUiAvZXRjL3Bhc3N3ZCAsCit0aGVuCisuSSAvCitpcyB1c2VkICh0aGUgaG9tZSBkaXJlY3RvcnkgaXMgY2hlY2tlZCBmb3IgdGhlCisuSSAuaHVzaGxvZ2luCitmaWxlIGRlc2NyaWJlZCBhYm92ZSkuCisuU0ggT1BUSU9OUworLlRQCisuQiBcLXAKK1VzZWQgYnkKKy5CUiBnZXR0eSAoOCkKK3RvIHRlbGwKKy5CIGxvZ2luCitub3QgdG8gZGVzdHJveSB0aGUgZW52aXJvbm1lbnQKKy5UUAorLkIgXC1mCitVc2VkIHRvIHNraXAgYSBzZWNvbmQgbG9naW4gYXV0aGVudGljYXRpb24uICBUaGlzIHNwZWNpZmljYWxseSBkb2VzCisuQiBub3QKK3dvcmsgZm9yIHJvb3QsIGFuZCBkb2VzIG5vdCBhcHBlYXIgdG8gd29yayB3ZWxsIHVuZGVyIExpbnV4LgorLlRQCisuQiBcLWgKK1VzZWQgYnkgb3RoZXIgc2VydmVycyAoaS5lLiwKKy5CUiB0ZWxuZXRkICg4KSkKK3RvIHBhc3MgdGhlIG5hbWUgb2YgdGhlIHJlbW90ZSBob3N0IHRvCisuQiBsb2dpbgorc28gdGhhdCBpdCBtYXkgYmUgcGxhY2VkIGluIHV0bXAgYW5kIHd0bXAuICBPbmx5IHRoZSBzdXBlcnVzZXIgbWF5IHVzZQordGhpcyBvcHRpb24uCisKK05vdGUgdGhhdCB0aGUgXGZCLWhcZlAgb3B0aW9uIGhhcyBpbXBhY3Qgb24gdGhlIFxmQlBBTSBzZXJ2aWNlIG5hbWVcZlAuIFRoZSBzdGFuZGFyZAorc2VydmljZSBuYW1lIGlzICJsb2dpbiIsIHdpdGggdGhlIFxmQi1oXGZQIG9wdGlvbiB0aGUgbmFtZSBpcyAicmVtb3RlIi4gSXQncworbmVjZXNzYXJ5IHRvIGNyZWF0ZSBhIHByb3BlciBQQU0gY29uZmlnIGZpbGVzIChlLmcuCisuSSAvZXRjL3BhbS5kL2xvZ2luCithbmQgCisuSSAvZXRjL3BhbS5kL3JlbW90ZQorKS4KKworLlNIICJTUEVDSUFMIEFDQ0VTUyBSRVNUUklDVElPTlMiCitUaGUgZmlsZQorLkkgL2V0Yy9zZWN1cmV0dHkKK2xpc3RzIHRoZSBuYW1lcyBvZiB0aGUgdHR5cyB3aGVyZSByb290IGlzIGFsbG93ZWQgdG8gbG9nIGluLiBPbmUgbmFtZQorb2YgYSB0dHkgZGV2aWNlIHdpdGhvdXQgdGhlIC9kZXYvIHByZWZpeCBtdXN0IGJlIHNwZWNpZmllZCBvbiBlYWNoCitsaW5lLiAgSWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QsIHJvb3QgaXMgYWxsb3dlZCB0byBsb2cgaW4gb24gYW55Cit0dHkuCisuUFAKK09uIG1vc3QgbW9kZXJuIExpbnV4IHN5c3RlbXMgUEFNIChQbHVnZ2FibGUgQXV0aGVudGljYXRpb24gTW9kdWxlcykKK2lzIHVzZWQuIE9uIHN5c3RlbXMgdGhhdCBkbyBub3QgdXNlIFBBTSwgdGhlIGZpbGUKKy5JIC9ldGMvdXNlcnR0eQorc3BlY2lmaWVzIGFkZGl0aW9uYWwgYWNjZXNzIHJlc3RyaWN0aW9ucyBmb3Igc3BlY2lmaWMgdXNlcnMuCitJZiB0aGlzIGZpbGUgZG9lcyBub3QgZXhpc3QsIG5vIGFkZGl0aW9uYWwgYWNjZXNzIHJlc3RyaWN0aW9ucyBhcmUKK2ltcG9zZWQuIFRoZSBmaWxlIGNvbnNpc3RzIG9mIGEgc2VxdWVuY2Ugb2Ygc2VjdGlvbnMuIFRoZXJlIGFyZSB0aHJlZQorcG9zc2libGUgc2VjdGlvbiB0eXBlczogQ0xBU1NFUywgR1JPVVBTIGFuZCBVU0VSUy4gQSBDTEFTU0VTIHNlY3Rpb24KK2RlZmluZXMgY2xhc3NlcyBvZiB0dHlzIGFuZCBob3N0bmFtZSBwYXR0ZXJucywgQSBHUk9VUFMgc2VjdGlvbgorZGVmaW5lcyBhbGxvd2VkIHR0eXMgYW5kIGhvc3RzIG9uIGEgcGVyIGdyb3VwIGJhc2lzLCBhbmQgYSBVU0VSUworc2VjdGlvbiBkZWZpbmVzIGFsbG93ZWQgdHR5cyBhbmQgaG9zdHMgb24gYSBwZXIgdXNlciBiYXNpcy4KKy5QUAorRWFjaCBsaW5lIGluIHRoaXMgZmlsZSBpbiBtYXkgYmUgbm8gbG9uZ2VyIHRoYW4gMjU1CitjaGFyYWN0ZXJzLiBDb21tZW50cyBzdGFydCB3aXRoICMgY2hhcmFjdGVyIGFuZCBleHRlbmQgdG8gdGhlIGVuZCBvZgordGhlIGxpbmUuCisuUFAKKy5TUyAiVGhlIENMQVNTRVMgU2VjdGlvbiIKK0EgQ0xBU1NFUyBzZWN0aW9uIGJlZ2lucyB3aXRoIHRoZSB3b3JkIENMQVNTRVMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoraW4gYWxsIHVwcGVyIGNhc2UuIEVhY2ggZm9sbG93aW5nIGxpbmUgdW50aWwgdGhlIHN0YXJ0IG9mIGEgbmV3CitzZWN0aW9uIG9yIHRoZSBlbmQgb2YgdGhlIGZpbGUgY29uc2lzdHMgb2YgYSBzZXF1ZW5jZSBvZiB3b3Jkcworc2VwYXJhdGVkIGJ5IHRhYnMgb3Igc3BhY2VzLiBFYWNoIGxpbmUgZGVmaW5lcyBhIGNsYXNzIG9mIHR0eXMgYW5kCitob3N0IHBhdHRlcm5zLgorLlBQCitUaGUgd29yZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZSBiZWNvbWVzIGRlZmluZWQgYXMgYSBjb2xsZWN0aXZlCituYW1lIGZvciB0aGUgdHR5cyBhbmQgaG9zdCBwYXR0ZXJucyBzcGVjaWZpZWQgYXQgdGhlIHJlc3Qgb2YgdGhlCitsaW5lLiBUaGlzIGNvbGxlY3RpdmUgbmFtZSBjYW4gYmUgdXNlZCBpbiBhbnkgc3Vic2VxdWVudCBHUk9VUFMgb3IKK1VTRVJTIHNlY3Rpb24uIE5vIHN1Y2ggY2xhc3MgbmFtZSBtdXN0IG9jY3VyIGFzIHBhcnQgb2YgdGhlIGRlZmluaXRpb24KK29mIGEgY2xhc3MgaW4gb3JkZXIgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCByZWN1cnNpdmUgY2xhc3Nlcy4KKy5QUAorQW4gZXhhbXBsZSBDTEFTU0VTIHNlY3Rpb246CisuUFAKKy5uZgorLmluICsuNQorQ0xBU1NFUworbXljbGFzczEJCXR0eTEgdHR5MgorbXljbGFzczIJCXR0eTMgQC5mb28uY29tCisuaW4gLS41CisuZmkKKy5QUAorVGhpcyBkZWZpbmVzIHRoZSBjbGFzc2VzIAorLkkgbXljbGFzczEKK2FuZAorLkkgbXljbGFzczIKK2FzIHRoZSBjb3JyZXNwb25kaW5nIHJpZ2h0IGhhbmQgc2lkZXMuCisuUFAKKworLlNTICJUaGUgR1JPVVBTIFNlY3Rpb24iCitBIEdST1VQUyBzZWN0aW9uIGRlZmluZXMgYWxsb3dlZCB0dHlzIGFuZCBob3N0cyBvbiBhIHBlciBVbml4IGdyb3VwIGJhc2lzLiBJZgorYSB1c2VyIGlzIGEgbWVtYmVyIG9mIGEgVW5peCBncm91cCBhY2NvcmRpbmcgdG8gCisuSSAvZXRjL3Bhc3N3ZAorYW5kCisuSSAvZXRjL2dyb3VwCithbmQgc3VjaCBhIGdyb3VwIGlzIG1lbnRpb25lZCBpbiBhIEdST1VQUyBzZWN0aW9uIGluIAorLkkgL2V0Yy91c2VydHR5Cit0aGVuIHRoZSB1c2VyIGlzIGdyYW50ZWQgYWNjZXNzIGlmIHRoZSBncm91cCBpcy4KKy5QUAorQSBHUk9VUFMgc2VjdGlvbiBzdGFydHMgd2l0aCB0aGUgd29yZCBHUk9VUFMgaW4gYWxsIHVwcGVyIGNhc2UgYXQgdGhlIHN0YXJ0IG9mCithIGxpbmUsIGFuZCBlYWNoIGZvbGxvd2luZyBsaW5lIGlzIGEgc2VxdWVuY2Ugb2Ygd29yZHMgc2VwYXJhdGVkIGJ5IHNwYWNlcworb3IgdGFicy4gVGhlIGZpcnN0IHdvcmQgb24gYSBsaW5lIGlzIHRoZSBuYW1lIG9mIHRoZSBncm91cCBhbmQgdGhlIHJlc3QKK29mIHRoZSB3b3JkcyBvbiB0aGUgbGluZSBzcGVjaWZpZXMgdGhlIHR0eXMgYW5kIGhvc3RzIHdoZXJlIG1lbWJlcnMgb2YgdGhhdAorZ3JvdXAgYXJlIGFsbG93ZWQgYWNjZXNzLiBUaGVzZSBzcGVjaWZpY2F0aW9ucyBtYXkgaW52b2x2ZSB0aGUgdXNlIG9mCitjbGFzc2VzIGRlZmluZWQgaW4gcHJldmlvdXMgQ0xBU1NFUyBzZWN0aW9ucy4KKy5QUAorQW4gZXhhbXBsZSBHUk9VUFMgc2VjdGlvbi4KKy5QUAorLm5mCisuaW4gKzAuNQorR1JPVVBTCitzeXMJCXR0eTEgQC5iYXIuZWR1CitzdHVkCQlteWNsYXNzMSB0dHk0CisuaW4gLTAuNQorLmZpCisuUFAKK1RoaXMgZXhhbXBsZSBzcGVjaWZpZXMgdGhhdCBtZW1iZXJzIG9mIGdyb3VwIAorLkkgc3lzCittYXkgbG9nIGluIG9uIHR0eTEgYW5kIGZyb20gaG9zdHMgaW4gdGhlIGJhci5lZHUgZG9tYWluLiBVc2VycyBpbgorZ3JvdXAKKy5JIHN0dWQKK21heSBsb2cgaW4gZnJvbSBob3N0cy90dHlzIHNwZWNpZmllZCBpbiB0aGUgY2xhc3MgbXljbGFzczEgb3IgZnJvbQordHR5NC4KKy5QUAorCisuU1MgIlRoZSBVU0VSUyBTZWN0aW9uIgorQSBVU0VSUyBzZWN0aW9uIHN0YXJ0cyB3aXRoIHRoZSB3b3JkIFVTRVJTIGluIGFsbCB1cHBlciBjYXNlIGF0IHRoZQorc3RhcnQgb2YgYSBsaW5lLCBhbmQgZWFjaCBmb2xsb3dpbmcgbGluZSBpcyBhIHNlcXVlbmNlIG9mIHdvcmRzCitzZXBhcmF0ZWQgYnkgc3BhY2VzIG9yIHRhYnMuIFRoZSBmaXJzdCB3b3JkIG9uIGEgbGluZSBpcyBhIHVzZXJuYW1lCithbmQgdGhhdCB1c2VyIGlzIGFsbG93ZWQgdG8gbG9nIGluIG9uIHRoZSB0dHlzIGFuZCBmcm9tIHRoZSBob3N0cworbWVudGlvbmVkIG9uIHRoZSByZXN0IG9mIHRoZSBsaW5lLiBUaGVzZSBzcGVjaWZpY2F0aW9ucyBtYXkgaW52b2x2ZQorY2xhc3NlcyBkZWZpbmVkIGluIHByZXZpb3VzIENMQVNTRVMgc2VjdGlvbnMuICBJZiBubyBzZWN0aW9uIGhlYWRlciBpcworc3BlY2lmaWVkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsIHRoZSBmaXJzdCBzZWN0aW9uIGRlZmF1bHRzIHRvIGJlIGEKK1VTRVJTIHNlY3Rpb24uCisuUFAKK0FuIGV4YW1wbGUgVVNFUlMgc2VjdGlvbjoKKy5QUAorLm5mCisuaW4gKzAuNQorVVNFUlMKK3phY2hvCQl0dHkxIEAxMzAuMjI1LjE2LjAvMjU1LjI1NS4yNTUuMAorYmx1ZQkJdHR5MyBteWNsYXNzMgorLmluIC0wLjUKKy5maQorLlBQCitUaGlzIGxldHMgdGhlIHVzZXIgemFjaG8gbG9naW4gb25seSBvbiB0dHkxIGFuZCBmcm9tIGhvc3RzIHdpdGggSVAKK2FkZHJlc2VzIGluIHRoZSByYW5nZSAxMzAuMjI1LjE2LjAgXC0gMTMwLjIyNS4xNi4yNTUsIGFuZCB1c2VyIGJsdWUgaXMKK2FsbG93ZWQgdG8gbG9nIGluIGZyb20gdHR5MyBhbmQgd2hhdGV2ZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBjbGFzcworbXljbGFzczIuCisuUFAKK1RoZXJlIG1heSBiZSBhIGxpbmUgaW4gYSBVU0VSUyBzZWN0aW9uIHN0YXJ0aW5nIHdpdGggYSB1c2VybmFtZSBvZgorKi4gVGhpcyBpcyBhIGRlZmF1bHQgcnVsZSBhbmQgaXQgd2lsbCBiZSBhcHBsaWVkIHRvIGFueSB1c2VyIG5vdAorbWF0Y2hpbmcgYW55IG90aGVyIGxpbmUuCisuUFAKK0lmIGJvdGggYSBVU0VSUyBsaW5lIGFuZCBHUk9VUFMgbGluZSBtYXRjaCBhIHVzZXIgdGhlbiB0aGUgdXNlciBpcworYWxsb3dlZCBhY2Nlc3MgZnJvbSB0aGUgdW5pb24gb2YgYWxsIHRoZSB0dHlzL2hvc3RzIG1lbnRpb25lZCBpbiB0aGVzZQorc3BlY2lmaWNhdGlvbnMuCisKKy5TUyBPcmlnaW5zCitUaGUgdHR5IGFuZCBob3N0IHBhdHRlcm4gc3BlY2lmaWNhdGlvbnMgdXNlZCBpbiB0aGUgc3BlY2lmaWNhdGlvbiBvZgorY2xhc3NlcywgZ3JvdXAgYW5kIHVzZXIgYWNjZXNzIGFyZSBjYWxsZWQgb3JpZ2lucy4gQW4gb3JpZ2luIHN0cmluZworbWF5IGhhdmUgb25lIG9mIHRoZXNlIGZvcm1hdHM6CisuSVAgbyAKK1RoZSBuYW1lIG9mIGEgdHR5IGRldmljZSB3aXRob3V0IHRoZSAvZGV2LyBwcmVmaXgsIGZvciBleGFtcGxlIHR0eTEgb3IKK3R0eVMwLgorLlBQCisuSVAgbworVGhlIHN0cmluZyBAbG9jYWxob3N0LCBtZWFuaW5nIHRoYXQgdGhlIHVzZXIgaXMgYWxsb3dlZCB0bwordGVsbmV0L3Jsb2dpbiBmcm9tIHRoZSBsb2NhbCBob3N0IHRvIHRoZSBzYW1lIGhvc3QuIFRoaXMgYWxzbyBhbGxvd3MKK3RoZSB1c2VyIHRvIGZvciBleGFtcGxlIHJ1biB0aGUgY29tbWFuZDogeHRlcm0gLWUgL2Jpbi9sb2dpbi4KKy5QUAorLklQIG8KK0EgZG9tYWluIG5hbWUgc3VmZml4IHN1Y2ggYXMgQC5zb21lLmRvbSwgbWVhbmluZyB0aGF0IHRoZSB1c2VyIG1heQorcmxvZ2luL3RlbG5ldCBmcm9tIGFueSBob3N0IHdob3NlIGRvbWFpbiBuYW1lIGhhcyB0aGUgc3VmZml4CitcJi5zb21lLmRvbS4KKy5QUAorLklQIG8KK0EgcmFuZ2Ugb2YgSVB2NCBhZGRyZXNzZXMsIHdyaXR0ZW4gQHgueC54LngveS55LnkueSB3aGVyZSB4LngueC54IGlzCit0aGUgSVAgYWRkcmVzcyBpbiB0aGUgdXN1YWwgZG90dGVkIHF1YWQgZGVjaW1hbCBub3RhdGlvbiwgYW5kIHkueS55LnkKK2lzIGEgYml0bWFzayBpbiB0aGUgc2FtZSBub3RhdGlvbiBzcGVjaWZ5aW5nIHdoaWNoIGJpdHMgaW4gdGhlIGFkZHJlc3MKK3RvIGNvbXBhcmUgd2l0aCB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgcmVtb3RlIGhvc3QuIEZvciBleGFtcGxlCitAMTMwLjIyNS4xNi4wLzI1NS4yNTUuMjU0LjAgbWVhbnMgdGhhdCB0aGUgdXNlciBtYXkgcmxvZ2luL3RlbG5ldCBmcm9tCithbnkgaG9zdCB3aG9zZSBJUCBhZGRyZXNzIGlzIGluIHRoZSByYW5nZSAxMzAuMjI1LjE2LjAgXC0KKzEzMC4yMjUuMTcuMjU1LgorLlBQCisuSVAgbworQW4gcmFuZ2Ugb2YgSVB2NiBhZGRyZXNzZXMsIHdyaXR0ZW4gQFtuOm46bjpuOm46bjpuOm5dL20gaXMgaW50ZXJwcmV0ZWQgYXMgYQorW25ldF0vcHJlZml4bGVuIHBhaXIuIEFuIElQdjYgaG9zdCBhZGRyZXNzIGlzIG1hdGNoZWQgaWYgcHJlZml4bGVuIGJpdHMgb2YKK25ldCBpcyBlcXVhbCB0byB0aGUgcHJlZml4bGVuIGJpdHMgb2YgdGhlIGFkZHJlc3MuICBGb3IgIGV4YW1wbGUsIHRoZQorW25ldF0vcHJlZml4bGVuIHBhdHRlcm4gWzNmZmU6NTA1OjI6MTo6XS82NCBtYXRjaGVzIGV2ZXJ5IGFkZHJlc3MgaW4gdGhlCityYW5nZSAzZmZlOjUwNToyOjE6OiB0aHJvdWdoIDNmZmU6NTA1OjI6MTpmZmZmOmZmZmY6ZmZmZjpmZmZmLgorLlBQCitBbnkgb2YgdGhlIGFib3ZlIG9yaWdpbnMgbWF5IGJlIHByZWZpeGVkIGJ5IGEgdGltZSBzcGVjaWZpY2F0aW9uCithY2NvcmRpbmcgdG8gdGhlIHN5bnRheDoKKy5QUAorLm5mCit0aW1lc3BlYyAgICA6Oj0gJ1snIDxkYXktb3ItaG91cj4gWyc6JyA8ZGF5LW9yLWhvdXI+XSogJ10nCitkYXkgICAgICAgICA6Oj0gJ21vbicgfCAndHVlJyB8ICd3ZWQnIHwgJ3RodScgfCAnZnJpJyB8ICdzYXQnIHwgJ3N1bicKK2hvdXIgICAgICAgIDo6PSAnMCcgfCAnMScgfCAuLi4gfCAnMjMnCitob3Vyc3BlYyAgICA6Oj0gPGhvdXI+IHwgPGhvdXI+ICdcLScgPGhvdXI+CitkYXktb3ItaG91ciA6Oj0gPGRheT4gfCA8aG91cnNwZWM+CisuZmkKKy5QUAorRm9yIGV4YW1wbGUsIHRoZSBvcmlnaW4gW21vbjp0dWU6d2VkOnRodTpmcmk6OFwtMTdddHR5MyBtZWFucyB0aGF0IGxvZworaW4gaXMgYWxsb3dlZCBvbiBtb25kYXlzIHRocm91Z2ggZnJpZGF5cyBiZXR3ZWVuIDg6MDAgYW5kIDE3OjU5ICg1OjU5CitwbSkgb24gdHR5My4gIFRoaXMgYWxzbyBzaG93cyB0aGF0IGFuIGhvdXIgcmFuZ2UgYVwtYiBpbmNsdWRlcyBhbGwKK21vbWVudHMgYmV0d2VlbiBhOjAwIGFuZCBiOjU5LiBBIHNpbmdsZSBob3VyIHNwZWNpZmljYXRpb24gKHN1Y2ggYXMKKzEwKSBtZWFucyB0aGUgdGltZSBzcGFuIGJldHdlZW4gMTA6MDAgYW5kIDEwOjU5LgorLlBQCitOb3Qgc3BlY2lmeWluZyBhbnkgdGltZSBwcmVmaXggZm9yIGEgdHR5IG9yIGhvc3QgbWVhbnMgbG9nIGluIGZyb20KK3RoYXQgb3JpZ2luIGlzIGFsbG93ZWQgYW55IHRpbWUuIElmIHlvdSBnaXZlIGEgdGltZSBwcmVmaXggYmUgc3VyZSB0bworc3BlY2lmeSBib3RoIGEgc2V0IG9mIGRheXMgYW5kIG9uZSBvciBtb3JlIGhvdXJzIG9yIGhvdXIgcmFuZ2VzLiBBCit0aW1lIHNwZWNpZmljYXRpb24gbWF5IG5vdCBpbmNsdWRlIGFueSB3aGl0ZSBzcGFjZS4KKy5QUAorSWYgbm8gZGVmYXVsdCBydWxlIGlzIGdpdmVuIHRoZW4gdXNlcnMgbm90IG1hdGNoaW5nIGFueSBsaW5lCisuSSAvZXRjL3VzZXJ0dHkKK2FyZSBhbGxvd2VkIHRvIGxvZyBpbiBmcm9tIGFueXdoZXJlIGFzIGlzIHN0YW5kYXJkIGJlaGF2aW9yLgorLlBQCisuU0ggRklMRVMKKy5uZgorLkkgL3Zhci9ydW4vdXRtcAorLkkgL3Zhci9sb2cvd3RtcAorLkkgL3Zhci9sb2cvbGFzdGxvZworLkkgL3Zhci9zcG9vbC9tYWlsLyoKKy5JIC9ldGMvbW90ZAorLkkgL2V0Yy9wYXNzd2QKKy5JIC9ldGMvbm9sb2dpbgorLkkgL2V0Yy91c2VydHR5CisuSSAvZXRjL3BhbS5kL2xvZ2luCisuSSAvZXRjL3BhbS5kL3JlbW90ZQorLkkgLmh1c2hsb2dpbgorLmZpCisuU0ggIlNFRSBBTFNPIgorLkJSIGluaXQgKDgpLAorLkJSIGdldHR5ICg4KSwKKy5CUiBtYWlsICgxKSwKKy5CUiBwYXNzd2QgKDEpLAorLkJSIHBhc3N3ZCAoNSksCisuQlIgZW52aXJvbiAoNyksCisuQlIgc2h1dGRvd24gKDgpCisuU0ggQlVHUworCitUaGUgdW5kb2N1bWVudGVkIEJTRAorLkIgXC1yCitvcHRpb24gaXMgbm90IHN1cHBvcnRlZC4gIFRoaXMgbWF5IGJlIHJlcXVpcmVkIGJ5IHNvbWUKKy5CUiBybG9naW5kICg4KQorcHJvZ3JhbXMuCisKK0EgcmVjdXJzaXZlIGxvZ2luLCBhcyB1c2VkIHRvIGJlIHBvc3NpYmxlIGluIHRoZSBnb29kIG9sZCBkYXlzLAorbm8gbG9uZ2VyIHdvcmtzOyBmb3IgbW9zdCBwdXJwb3NlcworLkJSIHN1ICgxKQoraXMgYSBzYXRpc2ZhY3Rvcnkgc3Vic3RpdHV0ZS4gSW5kZWVkLCBmb3Igc2VjdXJpdHkgcmVhc29ucywKK2xvZ2luIGRvZXMgYSB2aGFuZ3VwKCkgc3lzdGVtIGNhbGwgdG8gcmVtb3ZlIGFueSBwb3NzaWJsZQorbGlzdGVuaW5nIHByb2Nlc3NlcyBvbiB0aGUgdHR5LiBUaGlzIGlzIHRvIGF2b2lkIHBhc3N3b3JkCitzbmlmZmluZy4gSWYgb25lIHVzZXMgdGhlIGNvbW1hbmQgImxvZ2luIiwgdGhlbiB0aGUgc3Vycm91bmRpbmcgc2hlbGwKK2dldHMga2lsbGVkIGJ5IHZoYW5ndXAoKSBiZWNhdXNlIGl0J3Mgbm8gbG9uZ2VyIHRoZSB0cnVlIG93bmVyIG9mIHRoZSB0dHkuCitUaGlzIGNhbiBiZSBhdm9pZGVkIGJ5IHVzaW5nICJleGVjIGxvZ2luIiBpbiBhIHRvcC1sZXZlbCBzaGVsbCBvciB4dGVybS4KKy5TSCBBVVRIT1IKK0Rlcml2ZWQgZnJvbSBCU0QgbG9naW4gNS40MCAoNS85Lzg5KSBieSBNaWNoYWVsIEdsYWQgKGdsYWRAZGFpbWkuZGspCitmb3IgSFAtVVgKKy5icgorUG9ydGVkIHRvIExpbnV4IDAuMTI6IFBldGVyIE9yYmFlayAocG9lQGRhaW1pLmFhdS5kaykKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBsb2dpbiBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL2xvZ2luLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9sb2dpbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1NTAzODgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9sb2dpbi5jCkBAIC0wLDAgKzEsMTQ5NCBAQAorLyogVGhpcyBwcm9ncmFtIGlzIGRlcml2ZWQgZnJvbSA0LjMgQlNEIHNvZnR3YXJlIGFuZCBpcworICAgc3ViamVjdCB0byB0aGUgY29weXJpZ2h0IG5vdGljZSBiZWxvdy4KKworICAgVGhlIHBvcnQgdG8gSFAtVVggaGFzIGJlZW4gbW90aXZhdGVkIGJ5IHRoZSBpbmNhcGFiaWxpdHkKKyAgIG9mICdybG9naW4nLydybG9naW5kJyBhcyBwZXIgSFAtVVggNi41IChhbmQgNy4wKSB0byB0cmFuc2ZlciB3aW5kb3cgc2l6ZXMuCisKKyAgIENoYW5nZXM6CisKKyAgIC0gR2VuZXJhbCBIUC1VWCBwb3J0YXRpb24uIFVzZSBvZiBmYWNpbGl0aWVzIG5vdCBhdmFpbGFibGUKKyAgICAgaW4gSFAtVVggKGUuZy4gc2V0cHJpb3JpdHkpIGhhcyBiZWVuIGVsaW1pbmF0ZWQuCisgICAgIFV0bXAvd3RtcCBoYW5kbGluZyBoYXMgYmVlbiBwb3J0ZWQuCisKKyAgIC0gVGhlIHByb2dyYW0gdXNlcyBCU0QgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gYmUgdXNlZAorICAgICBpbiBjb25uZWN0aW9uIHdpdGggZS5nLiAncmxvZ2luZCcgaS5lLiAnbmV3IGxvZ2luJy4KKworICAgLSBIUCBmZWF0dXJlcyBsZWZ0IG91dDoJICAgIHBhc3N3b3JkIGV4cGlyeQorCQkJCSAgICAnKicgYXMgbG9naW4gc2hlbGwsIGFkZCBpdCBpZiB5b3UgbmVlZCBpdAorCisgICAtIEJTRCBmZWF0dXJlcyBsZWZ0IG91dDogICAgICAgICBxdW90YSBjaGVja3MKKyAgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQgZXhwaXJ5CisJCQkJICAgIGFuYWx5c2lzIG9mIHRlcm1pbmFsIHR5cGUgKHRzZXQgZmVhdHVyZSkKKworICAgLSBCU0QgZmVhdHVyZXMgdGhyb3duIGluOiAgICAgICAgU2VjdXJpdHkgbG9nZ2luZyB0byBzeXNsb2dkLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyByZXF1aXJlcyB5b3UgdG8gaGF2ZSBhIChwb3J0ZWQpIHN5c2xvZworCQkJCSAgICBzeXN0ZW0gLS0gNy4wIGNvbWVzIHdpdGggc3lzbG9nCisKKwkJCQkgICAgJ0xhc3Rsb2cnIGZlYXR1cmUuCisKKyAgIC0gQSBsb3Qgb2Ygbml0dHkgZ3JpdHR5IGRldGFpbHMgaGF2ZSBiZWVuIGFkanVzdGVkIGluIGZhdm91ciBvZgorICAgICBIUC1VWCwgZS5nLiAvZXRjL3NlY3VyZXR0eSwgZGVmYXVsdCBwYXRocyBhbmQgdGhlIGVudmlyb25tZW50CisgICAgIHZhcmlhYmxlcyBhc3NpZ25lZCBieSAnbG9naW4nLgorCisgICAtIFdlIGRvICpub3RoaW5nKiB0byBzZXR1cC9hbHRlciB0dHkgc3RhdGUsIHVuZGVyIEhQLVVYIHRoaXMgaXMKKyAgICAgdG8gYmUgZG9uZSBieSBnZXR0eS9ybG9naW5kL3RlbG5ldGQvc29tZSBvbmUgZWxzZS4KKworICAgTWljaGFlbCBHbGFkIChnbGFkQGRhaW1pLmRrKQorICAgQ29tcHV0ZXIgU2NpZW5jZSBEZXBhcnRtZW50CisgICBBYXJodXMgVW5pdmVyc2l0eQorICAgRGVubWFyaworCisgICAxOTkwLTA3LTA0CisKKyAgIDE5OTEtMDktMjQgZ2xhZEBkYWltaS5hYXUuZGs6IEhQLVVYIDguMCBwb3J0OgorICAgLSBub3cgZXhwbGljdGx5IHNldHMgbm9uLWJsb2NraW5nIG1vZGUgb24gZGVzY3JpcHRvcnMKKyAgIC0gc3RyY2FzZWNtcCBpcyBub3cgcGFydCBvZiBIUC1VWAorCisgICAxOTkyLTAyLTA1IHBvZUBkYWltaS5hYXUuZGs6IFBvcnRlZCB0aGUgc3R1ZmYgdG8gTGludXggMC4xMgorICAgRnJvbSAxOTkyIHRpbGwgbm93ICgxOTk3KSB0aGlzIGNvZGUgZm9yIExpbnV4IGhhcyBiZWVuIG1haW50YWluZWQgYXQKKyAgIGZ0cC5kYWltaS5hYXUuZGs6L3B1Yi9saW51eC9wb2UvCisKKyAgIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICAgIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAgIFN1biBNYXIgMjEgMTk5OSAtIEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUBjb25lY3RpdmEuY29tLmJyPgorICAgIC0gZml4ZWQgc3RyZXJyKGVycm5vKSBpbiBnZXR0ZXh0IGNhbGxzCisgKi8KKworLyoKKyAqIENvcHlyaWdodCAoYykgMTk4MCwgMTk4NywgMTk4OCBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zIGFyZSBwZXJtaXR0ZWQKKyAqIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGFyYWdyYXBoIGFyZQorICogZHVwbGljYXRlZCBpbiBhbGwgc3VjaCBmb3JtcyBhbmQgdGhhdCBhbnkgZG9jdW1lbnRhdGlvbiwKKyAqIGFkdmVydGlzaW5nIG1hdGVyaWFscywgYW5kIG90aGVyIG1hdGVyaWFscyByZWxhdGVkIHRvIHN1Y2gKKyAqIGRpc3RyaWJ1dGlvbiBhbmQgdXNlIGFja25vd2xlZGdlIHRoYXQgdGhlIHNvZnR3YXJlIHdhcyBkZXZlbG9wZWQKKyAqIGJ5IHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIEJlcmtlbGV5LiAgVGhlIG5hbWUgb2YgdGhlCisgKiBVbml2ZXJzaXR5IG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIFdJVEhPVVQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5USUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisgKi8KKworLyoKKyAqIGxvZ2luIFsgbmFtZSBdCisgKiBsb2dpbiAtaCBob3N0bmFtZQkoZm9yIHRlbG5ldGQsIGV0Yy4pCisgKiBsb2dpbiAtZiBuYW1lCShmb3IgcHJlLWF1dGhlbnRpY2F0ZWQgbG9naW46IGRhdGFraXQsIHh0ZXJtLCBldGMuKQorICovCisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxtZW1vcnkuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2luY2x1ZGUgPHN5cy9maWxlLmg+CisjaW5jbHVkZSA8dGVybWlvcy5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2RlZmluZSBpbmRleCBzdHJjaHIKKyNkZWZpbmUgcmluZGV4IHN0cnJjaHIKKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Z3JwLmg+CisjaW5jbHVkZSA8cHdkLmg+CisjaW5jbHVkZSA8dXRtcC5oPgorI2luY2x1ZGUgPHNldGptcC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy9zeXNsb2cuaD4KKyNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+CisjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KKyNpbmNsdWRlIDxuZXRkYi5oPgorI2lmZGVmIEhBVkVfTElCQVVESVQKKyMgaW5jbHVkZSA8bGliYXVkaXQuaD4KKyNlbmRpZgorCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAibXlfY3J5cHQuaCIKKyNpbmNsdWRlICJsb2dpbi5oIgorI2luY2x1ZGUgInhzdHJuY3B5LmgiCisjaW5jbHVkZSAibmxzLmgiCisKKworI2lmZGVmIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSAorIyAgaW5jbHVkZSA8c2VjdXJpdHkvcGFtX2FwcGwuaD4KKyMgIGluY2x1ZGUgPHNlY3VyaXR5L3BhbV9taXNjLmg+CisjICBkZWZpbmUgUEFNX01BWF9MT0dJTl9UUklFUwkzCisjICBkZWZpbmUgUEFNX0ZBSUxfQ0hFQ0sgaWYgKHJldGNvZGUgIT0gUEFNX1NVQ0NFU1MpIHsgXAorICAgICAgIGZwcmludGYoc3RkZXJyLCJcbiVzXG4iLHBhbV9zdHJlcnJvcihwYW1oLCByZXRjb2RlKSk7IFwKKyAgICAgICBzeXNsb2coTE9HX0VSUiwiJXMiLHBhbV9zdHJlcnJvcihwYW1oLCByZXRjb2RlKSk7IFwKKyAgICAgICBwYW1fZW5kKHBhbWgsIHJldGNvZGUpOyBleGl0KDEpOyBcCisgICB9CisjICBkZWZpbmUgUEFNX0VORCB7IFwKKwlwYW1fc2V0Y3JlZChwYW1oLCBQQU1fREVMRVRFX0NSRUQpOyBcCisJcmV0Y29kZSA9IHBhbV9jbG9zZV9zZXNzaW9uKHBhbWgsMCk7IFwKKwlwYW1fZW5kKHBhbWgscmV0Y29kZSk7IFwKK30KKyNlbmRpZgorCisjaW5jbHVkZSA8bGFzdGxvZy5oPgorCisjZGVmaW5lIFNMRUVQX0VYSVRfVElNRU9VVCA1CisKKyNpbmNsdWRlICJzZXRwcm9jdGl0bGUuaCIKKworI2lmbmRlZiBIQVZFX1NFQ1VSSVRZX1BBTV9NSVNDX0gKK3N0YXRpYyB2b2lkIGdldGxvZ2lubmFtZSAodm9pZCk7CitzdGF0aWMgdm9pZCBjaGVja25vbG9naW4gKHZvaWQpOworc3RhdGljIGludCByb290dGVybSAoY2hhciAqdHR5bik7CisjZW5kaWYKK3N0YXRpYyB2b2lkIHRpbWVkb3V0IChpbnQpOworc3RhdGljIHZvaWQgc2lnaW50IChpbnQpOworc3RhdGljIHZvaWQgbW90ZCAodm9pZCk7CitzdGF0aWMgdm9pZCBkb2xhc3Rsb2cgKGludCBxdWlldCk7CisKKyNpZmRlZiBVU0VfVFRZX0dST1VQCisjICBkZWZpbmUgVFRZX01PREUgMDYyMAorI2Vsc2UKKyMgIGRlZmluZSBUVFlfTU9ERSAwNjAwCisjZW5kaWYKKworI2RlZmluZQlUVFlHUlBOQU1FCSJ0dHkiCQkvKiBuYW1lIG9mIGdyb3VwIHRvIG93biB0dHlzICovCisKKyNpZm5kZWYgTUFYUEFUSExFTgorIyAgZGVmaW5lIE1BWFBBVEhMRU4gMTAyNAorI2VuZGlmCisKKy8qCisgKiBUaGlzIGJvdW5kcyB0aGUgdGltZSBnaXZlbiB0byBsb2dpbi4gIE5vdCBhIGRlZmluZSBzbyBpdCBjYW4KKyAqIGJlIHBhdGNoZWQgb24gbWFjaGluZXMgd2hlcmUgaXQncyB0b28gc21hbGwuCisgKi8KK2ludCAgICAgdGltZW91dCA9IDYwOworCitzdHJ1Y3QgcGFzc3dkICpwd2Q7CisKKyNpZmRlZiBIQVZFX1NFQ1VSSVRZX1BBTV9NSVNDX0gKK3N0YXRpYyBzdHJ1Y3QgcGFzc3dkIHB3ZGNvcHk7CisjZW5kaWYKK2NoYXIgICAgaG9zdGFkZHJlc3NbMTZdOwkvKiB1c2VkIGluIGNoZWNrdHR5LmMgKi8KK3NhX2ZhbWlseV90IGhvc3RmYW1pbHk7CQkvKiB1c2VkIGluIGNoZWNrdHR5LmMgKi8KK2NoYXIJKmhvc3RuYW1lOwkJLyogaWRlbSAqLworc3RhdGljIGNoYXIJKnVzZXJuYW1lLCAqdHR5X25hbWUsICp0dHlfbnVtYmVyOworc3RhdGljIGNoYXIJdGhpc2hvc3RbMTAwXTsKK3N0YXRpYyBpbnQJZmFpbHVyZXMgPSAxOworc3RhdGljIHBpZF90CXBpZDsKKworLyogTmljZSBhbmQgc2ltcGxlIGNvZGUgcHJvdmlkZWQgYnkgTGludXMgVG9ydmFsZHMgMTYtRmViLTkzICovCisvKiBOb25ibG9ja2luZyBzdHVmZiBieSBNYWNpZWogVy4gUm96eWNraSwgbWFjcm9AZHMyLnBnLmdkYS5wbCwgMTk5OS4KKyAgIEhlIHdyaXRlczogIkxvZ2luIHBlcmZvcm1zIG9wZW4oKSBvbiBhIHR0eSBpbiBhIGJsb2NraW5nIG1vZGUuCisgICBJbiBzb21lIGNhc2VzIGl0IG1heSBtYWtlIGxvZ2luIHdhaXQgaW4gb3BlbigpIGZvciBjYXJyaWVyIGluZmluaXRlbHksCisgICBmb3IgZXhhbXBsZSBpZiB0aGUgbGluZSBpcyBhIHNpbXBsaXN0aWMgY2FzZSBvZiBhIHRocmVlLXdpcmUgc2VyaWFsCisgICBjb25uZWN0aW9uLiBJIGJlbGlldmUgbG9naW4gc2hvdWxkIG9wZW4gdGhlIGxpbmUgaW4gdGhlIG5vbi1ibG9ja2luZyBtb2RlCisgICBsZWF2aW5nIHRoZSBkZWNpc2lvbiB0byBtYWtlIGEgY29ubmVjdGlvbiB0byBnZXR0eSAod2hlcmUgaXQgYWN0dWFsbHkKKyAgIGJlbG9uZ3MpLiAqLworc3RhdGljIHZvaWQKK29wZW50dHkoY29uc3QgY2hhciAqIHR0eSkgeworCWludCBpLCBmZCwgZmxhZ3M7CisKKwlmZCA9IG9wZW4odHR5LCBPX1JEV1IgfCBPX05PTkJMT0NLKTsKKwlpZiAoZmQgPT0gLTEpIHsKKwkJc3lzbG9nKExPR19FUlIsIF8oIkZBVEFMOiBjYW4ndCByZW9wZW4gdHR5OiAlcyIpLAorCQkgICAgICAgc3RyZXJyb3IoZXJybm8pKTsKKwkJc2xlZXAoMSk7CisJCWV4aXQoMSk7CisJfQorCisJaWYgKCFpc2F0dHkoZmQpKSB7CisJCWNsb3NlKGZkKTsKKwkJc3lzbG9nKExPR19FUlIsIF8oIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIpLCB0dHkpOworCQlzbGVlcCgxKTsKKwkJZXhpdCgxKTsKKwl9CisKKwlmbGFncyA9IGZjbnRsKGZkLCBGX0dFVEZMKTsKKwlmbGFncyAmPSB+T19OT05CTE9DSzsKKwlmY250bChmZCwgRl9TRVRGTCwgZmxhZ3MpOworCisJZm9yIChpID0gMDsgaSA8IGZkOyBpKyspCisJCWNsb3NlKGkpOworCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspCisJCWlmIChmZCAhPSBpKQorCQkJZHVwMihmZCwgaSk7CisJaWYgKGZkID49IDMpCisJCWNsb3NlKGZkKTsKK30KKworLyogSW4gY2FzZSBsb2dpbiBpcyBzdWlkIGl0IHdhcyBwb3NzaWJsZSB0byB1c2UgYSBoYXJkbGluayBhcyBzdGRpbgorICAgYW5kIGV4cGxvaXQgcmFjZXMgZm9yIGEgbG9jYWwgcm9vdCBleHBsb2l0LiAoV29qY2llY2ggUHVyY3p5bnNraSkuICovCisvKiBNb3JlIHByZWNpc2VseSwgdGhlIHByb2JsZW0gaXMgIHR0eW4gOj0gdHR5bmFtZSgwKTsgLi4uOyBjaG93bih0dHluKTsKKyAgIGhlcmUgdHR5bmFtZSgpIG1pZ2h0IHJldHVybiAiL3RtcC94IiwgYSBoYXJkbGluayB0byBhIHBzZXVkb3R0eS4gKi8KKy8qIEFsbCBvZiB0aGlzIGlzIGEgcHJvYmxlbSBvbmx5IHdoZW4gbG9naW4gaXMgc3VpZCwgd2hpY2ggaXQgaXNudC4gKi8KK3N0YXRpYyB2b2lkCitjaGVja190dHluYW1lKGNoYXIgKnR0eW4pIHsKKwlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCisJaWYgKHR0eW4gPT0gTlVMTAorCSAgICB8fCAqdHR5biA9PSAnXDAnCisJICAgIHx8IGxzdGF0KHR0eW4sICZzdGF0YnVmKQorCSAgICB8fCAhU19JU0NIUihzdGF0YnVmLnN0X21vZGUpCisJICAgIHx8IChzdGF0YnVmLnN0X25saW5rID4gMSAmJiBzdHJuY21wKHR0eW4sICIvZGV2LyIsIDUpKQorCSAgICB8fCAoYWNjZXNzKHR0eW4sIFJfT0sgfCBXX09LKSAhPSAwKSkgeworCQlzeXNsb2coTE9HX0VSUiwgXygiRkFUQUw6IGJhZCB0dHkiKSk7CisJCXNsZWVwKDEpOworCQlleGl0KDEpOworCX0KK30KKworI2lmZGVmIExPR0lOX0NIT1dOX1ZDUworLyogdHJ1ZSBpZiB0aGUgZmlsZWRlc2NyaXB0b3IgZmQgaXMgYSBjb25zb2xlIHR0eSwgdmVyeSBMaW51eCBzcGVjaWZpYyAqLworc3RhdGljIGludAorY29uc29sZXR0eShpbnQgZmQpIHsKKyAgICBzdHJ1Y3Qgc3RhdCBzdGI7CisKKyAgICBpZiAoKGZzdGF0KGZkLCAmc3RiKSA+PSAwKQorCSYmIChtYWpvcihzdGIuc3RfcmRldikgPT0gVFRZX01BSk9SKQorCSYmIChtaW5vcihzdGIuc3RfcmRldikgPCA2NCkpIHsKKwlyZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKworI2lmZGVmIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSAorLyoKKyAqIExvZyBmYWlsZWQgbG9naW4gYXR0ZW1wdHMgaW4gX1BBVEhfQlRNUCBpZiB0aGF0IGV4aXN0cy4KKyAqIE11c3QgYmUgY2FsbGVkIG9ubHkgd2l0aCB1c2VybmFtZSB0aGUgbmFtZSBvZiBhbiBhY3R1YWwgdXNlci4KKyAqIFRoZSBtb3N0IGNvbW1vbiBsb2dpbiBmYWlsdXJlIGlzIHRvIGdpdmUgcGFzc3dvcmQgaW5zdGVhZCBvZiB1c2VybmFtZS4KKyAqLworI2RlZmluZQlfUEFUSF9CVE1QCSIvdmFyL2xvZy9idG1wIgorc3RhdGljIHZvaWQKK2xvZ2J0bXAoY29uc3QgY2hhciAqbGluZSwgY29uc3QgY2hhciAqdXNlcm5hbWUsIGNvbnN0IGNoYXIgKmhvc3RuYW1lKSB7CisJc3RydWN0IHV0bXAgdXQ7CisJc3RydWN0IHRpbWV2YWwgdHY7CisKKwltZW1zZXQoJnV0LCAwLCBzaXplb2YodXQpKTsKKworCXN0cm5jcHkodXQudXRfdXNlciwgdXNlcm5hbWUgPyB1c2VybmFtZSA6ICIodW5rbm93bikiLAorCQlzaXplb2YodXQudXRfdXNlcikpOworCisJc3RybmNweSh1dC51dF9pZCwgbGluZSArIDMsIHNpemVvZih1dC51dF9pZCkpOworCXhzdHJuY3B5KHV0LnV0X2xpbmUsIGxpbmUsIHNpemVvZih1dC51dF9saW5lKSk7CisKKyNpZiBkZWZpbmVkKF9IQVZFX1VUX1RWKQkgICAgLyogaW4gPHV0bXBiaXRzLmg+IGluY2x1ZGVkIGJ5IDx1dG1wLmg+ICovCisJZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CisJdXQudXRfdHYudHZfc2VjID0gdHYudHZfc2VjOworCXV0LnV0X3R2LnR2X3VzZWMgPSB0di50dl91c2VjOworI2Vsc2UKKwl7CisJCXRpbWVfdCB0OworCQl0aW1lKCZ0KTsKKwkJdXQudXRfdGltZSA9IHQ7CSAgICAvKiB1dF90aW1lIGlzIG5vdCBhbHdheXMgYSB0aW1lX3QgKi8KKwl9CisjZW5kaWYKKworCXV0LnV0X3R5cGUgPSBMT0dJTl9QUk9DRVNTOyAvKiBYWFggZG9lc24ndCBtYXR0ZXIgKi8KKwl1dC51dF9waWQgPSBwaWQ7CisJaWYgKGhvc3RuYW1lKSB7CisJCXhzdHJuY3B5KHV0LnV0X2hvc3QsIGhvc3RuYW1lLCBzaXplb2YodXQudXRfaG9zdCkpOworCQlpZiAoaG9zdGFkZHJlc3NbMF0pCisJCQltZW1jcHkoJnV0LnV0X2FkZHJfdjYsIGhvc3RhZGRyZXNzLCBzaXplb2YodXQudXRfYWRkcl92NikpOworCX0KKyNpZiBIQVZFX1VQRFdUTVAJCS8qIGJhZCBsdWNrIGZvciBhbmNpZW50IHN5c3RlbXMgKi8KKwl1cGR3dG1wKF9QQVRIX0JUTVAsICZ1dCk7CisjZW5kaWYKK30KKworCitzdGF0aWMgaW50IGNoaWxkX3BpZCA9IDA7CitzdGF0aWMgdm9sYXRpbGUgaW50IGdvdF9zaWcgPSAwOworCisvKgorICogVGhpcyBoYW5kbGVyIGFsbG93cyB0byBpbmZvcm0gYSBzaGVsbCBhYm91dCBzaWduYWxzIHRvIGxvZ2luLiBJZiB5b3UgaGF2ZQorICogKHJvb3QpIHBlcm1pc3Npb25zIHlvdSBjYW4ga2lsbCBhbGwgbG9naW4gY2hpbGRyZW50IGJ5IG9uZSBzaWduYWwgdG8gbG9naW4KKyAqIHByb2Nlc3MuCisgKgorICogQWxzbywgcGFyZW50IHdobyBpcyBzZXNzaW9uIGxlYWRlciBpcyBhYmxlIChiZWZvcmUgc2V0c2lkKCkgaW4gY2hpbGQpIHRvCisgKiBpbmZvcm0gY2hpbGQgd2hlbiBjb250cm9sbGluZyB0dHkgZ29lcyBhd2F5IChlLmcuIG1vZGVtIGhhbmd1cCwgU0lHSFVQKS4KKyAqLworc3RhdGljIHZvaWQKK3NpZ19oYW5kbGVyKGludCBzaWduYWwpCit7CisJaWYoY2hpbGRfcGlkKQorCQlraWxsKC1jaGlsZF9waWQsIHNpZ25hbCk7CisJZWxzZQorCQlnb3Rfc2lnID0gMTsKKwlpZihzaWduYWwgPT0gU0lHVEVSTSkKKwkJa2lsbCgtY2hpbGRfcGlkLCBTSUdIVVApOyAvKiBiZWNhdXNlIHRoZSBzaGVsbCBvZnRlbiBpZ25vcmVzIFNJR1RFUk0gKi8KK30KKworI2VuZGlmCS8qIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSCAqLworCisjaWZkZWYgSEFWRV9MSUJBVURJVAorc3RhdGljIHZvaWQKK2xvZ2F1ZGl0KGNvbnN0IGNoYXIgKnR0eSwgY29uc3QgY2hhciAqdXNlcm5hbWUsIGNvbnN0IGNoYXIgKmhvc3RuYW1lLAorCQkJCQlzdHJ1Y3QgcGFzc3dkICpwd2QsIGludCBzdGF0dXMpCit7CisJaW50IGF1ZGl0X2ZkOworCisJYXVkaXRfZmQgPSBhdWRpdF9vcGVuKCk7CisJaWYgKGF1ZGl0X2ZkID09IC0xKQorCQlyZXR1cm47CisJaWYgKCFwd2QgJiYgdXNlcm5hbWUpCisJCXB3ZCA9IGdldHB3bmFtKHVzZXJuYW1lKTsKKworCWF1ZGl0X2xvZ19hY2N0X21lc3NhZ2UoYXVkaXRfZmQsIEFVRElUX1VTRVJfTE9HSU4sCisJCU5VTEwsICJsb2dpbiIsIHVzZXJuYW1lID8gdXNlcm5hbWUgOiAiKHVua25vd24pIiwKKwkJcHdkID8gcHdkLT5wd191aWQgOiAtMSwgaG9zdG5hbWUsIE5VTEwsIHR0eSwgc3RhdHVzKTsKKworCWNsb3NlKGF1ZGl0X2ZkKTsKK30KKyNlbHNlIC8qICEgSEFWRV9MSUJBVURJVCAqLworIyBkZWZpbmUgbG9nYXVkaXQodHR5LCB1c2VybmFtZSwgaG9zdG5hbWUsIHB3ZCwgc3RhdHVzKQorI2VuZGlmIC8qIEhBVkVfTElCQVVESVQgKi8KKworI2lmZGVmIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSAorLyogZW5jYXBzdWxhdGUgc3R1cGlkICJ2b2lkICoqIiBwYW1fZ2V0X2l0ZW0oKSBBUEkgKi8KK2ludAorZ2V0X3BhbV91c2VybmFtZShwYW1faGFuZGxlX3QgKnBhbWgsIGNoYXIgKipuYW1lKQoreworCWNvbnN0IHZvaWQgKml0ZW0gPSAodm9pZCAqKSAqbmFtZTsKKwlpbnQgcmM7CisJcmMgPSBwYW1fZ2V0X2l0ZW0ocGFtaCwgUEFNX1VTRVIsICZpdGVtKTsKKwkqbmFtZSA9IChjaGFyICopIGl0ZW07CisJcmV0dXJuIHJjOworfQorI2VuZGlmCisKKy8qCisgKiBXZSBuZWVkIHRvIGNoZWNrIGVmZmVjdGl2ZSBVSUQvR0lELiBGb3IgZXhhbXBsZSAkSE9NRSBjb3VsZCBiZSBvbiByb290CisgKiBzcXVhc2hlZCBORlMgb3Igb24gTkZTIHdpdGggVUlEIG1hcHBpbmcgYW5kIGFjY2VzcygyKSB1c2VzIHJlYWwgVUlEL0dJRC4KKyAqIFRoZSBvcGVuKDIpIHNlZW1zIGFzIHRoZSBzdXJlc3Qgc29sdXRpb24uCisgKiAtLSBremFrQHJlZGhhdC5jb20gKDEwLUFwci0yMDA5KQorICovCitpbnQKK2VmZmVjdGl2ZV9hY2Nlc3MoY29uc3QgY2hhciAqcGF0aCwgaW50IG1vZGUpCit7CisJaW50IGZkID0gb3BlbihwYXRoLCBtb2RlKTsKKwlpZiAoZmQgIT0gLTEpCisJCWNsb3NlKGZkKTsKKwlyZXR1cm4gZmQgPT0gLTEgPyAtMSA6IDA7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgICAgZXh0ZXJuIGludCBvcHRpbmQ7CisgICAgZXh0ZXJuIGNoYXIgKm9wdGFyZywgKiplbnZpcm9uOworICAgIHN0cnVjdCBncm91cCAqZ3I7CisgICAgcmVnaXN0ZXIgaW50IGNoOworICAgIHJlZ2lzdGVyIGNoYXIgKnA7CisgICAgaW50IGFzaywgZmZsYWcsIGhmbGFnLCBwZmxhZywgY250LCBlcnJzdjsKKyAgICBpbnQgcXVpZXRsb2csIHBhc3N3ZF9yZXE7CisgICAgY2hhciAqZG9tYWluLCAqdHR5bjsKKyAgICBjaGFyIHRidWZbTUFYUEFUSExFTiArIDJdOworICAgIGNoYXIgKnRlcm1lbnY7CisgICAgY2hhciAqY2hpbGRBcmd2WzEwXTsKKyAgICBjaGFyICpidWZmOworICAgIGludCBjaGlsZEFyZ2MgPSAwOworI2lmZGVmIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSAorICAgIGludCByZXRjb2RlOworICAgIHBhbV9oYW5kbGVfdCAqcGFtaCA9IE5VTEw7CisgICAgc3RydWN0IHBhbV9jb252IGNvbnYgPSB7IG1pc2NfY29udiwgTlVMTCB9OworICAgIHN0cnVjdCBzaWdhY3Rpb24gc2EsIG9sZHNhX2h1cCwgb2xkc2FfdGVybTsKKyNlbHNlCisgICAgY2hhciAqc2FsdCwgKnBwOworI2VuZGlmCisjaWZkZWYgTE9HSU5fQ0hPV05fVkNTCisgICAgY2hhciB2Y3NuWzIwXSwgdmNzYW5bMjBdOworI2VuZGlmCisKKyAgICBwaWQgPSBnZXRwaWQoKTsKKworICAgIHNpZ25hbChTSUdBTFJNLCB0aW1lZG91dCk7CisgICAgc2lnaW50ZXJydXB0KFNJR0FMUk0sMSk7ICAgICAgICAgICAvKiB3ZSBoYXZlIHRvIGludGVycnVwdCBzeXNjYWxscyBsaWtlIGlvY2x0KCkgKi8KKyAgICBhbGFybSgodW5zaWduZWQgaW50KXRpbWVvdXQpOworICAgIHNpZ25hbChTSUdRVUlULCBTSUdfSUdOKTsKKyAgICBzaWduYWwoU0lHSU5ULCBTSUdfSUdOKTsKKworICAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyAgICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICAgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgICBzZXRwcmlvcml0eShQUklPX1BST0NFU1MsIDAsIDApOworICAgIGluaXRwcm9jdGl0bGUoYXJnYywgYXJndik7CisKKyAgICAvKgorICAgICAqIC1wIGlzIHVzZWQgYnkgZ2V0dHkgdG8gdGVsbCBsb2dpbiBub3QgdG8gZGVzdHJveSB0aGUgZW52aXJvbm1lbnQKKyAgICAgKiAtZiBpcyB1c2VkIHRvIHNraXAgYSBzZWNvbmQgbG9naW4gYXV0aGVudGljYXRpb24KKyAgICAgKiAtaCBpcyB1c2VkIGJ5IG90aGVyIHNlcnZlcnMgdG8gcGFzcyB0aGUgbmFtZSBvZiB0aGUgcmVtb3RlCisgICAgICogICAgaG9zdCB0byBsb2dpbiBzbyB0aGF0IGl0IG1heSBiZSBwbGFjZWQgaW4gdXRtcCBhbmQgd3RtcAorICAgICAqLworICAgIGdldGhvc3RuYW1lKHRidWYsIHNpemVvZih0YnVmKSk7CisgICAgeHN0cm5jcHkodGhpc2hvc3QsIHRidWYsIHNpemVvZih0aGlzaG9zdCkpOworICAgIGRvbWFpbiA9IHN0cmNocih0YnVmLCAnLicpOworCisgICAgdXNlcm5hbWUgPSB0dHlfbmFtZSA9IGhvc3RuYW1lID0gTlVMTDsKKyAgICBmZmxhZyA9IGhmbGFnID0gcGZsYWcgPSAwOworICAgIHBhc3N3ZF9yZXEgPSAxOworCisgICAgd2hpbGUgKChjaCA9IGdldG9wdChhcmdjLCBhcmd2LCAiZmg6cCIpKSAhPSAtMSkKKyAgICAgIHN3aXRjaCAoY2gpIHsKKwljYXNlICdmJzoKKwkgIGZmbGFnID0gMTsKKwkgIGJyZWFrOworCisJY2FzZSAnaCc6CisJICBpZiAoZ2V0dWlkKCkpIHsKKwkgICAgICBmcHJpbnRmKHN0ZGVyciwKKwkJICAgICAgXygibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iKSk7CisJICAgICAgZXhpdCgxKTsKKwkgIH0KKwkgIGhmbGFnID0gMTsKKwkgIGlmIChkb21haW4gJiYgKHAgPSBzdHJjaHIob3B0YXJnLCAnLicpKSAmJgorCSAgICAgIHN0cmNhc2VjbXAocCwgZG9tYWluKSA9PSAwKQorCSAgICAqcCA9IDA7CisKKwkgIGhvc3RuYW1lID0gc3RyZHVwKG9wdGFyZyk7IAkvKiBzdHJkdXA6IEFtYnJvc2UgQy4gTGkgKi8KKwkgIHsKKwkJc3RydWN0IGFkZHJpbmZvIGhpbnRzLCAqaW5mbyA9IE5VTEw7CisKKwkJbWVtc2V0KCZoaW50cywgMCwgc2l6ZW9mKGhpbnRzKSk7CisJCWhpbnRzLmFpX2ZsYWdzID0gQUlfQUREUkNPTkZJRzsKKworCQlob3N0YWRkcmVzc1swXSA9IDA7CisKKwkJaWYgKGdldGFkZHJpbmZvKGhvc3RuYW1lLCBOVUxMLCAmaGludHMsICZpbmZvKT09MCAmJiBpbmZvKSB7CisJCQlpZiAoaW5mby0+YWlfZmFtaWx5ID09IEFGX0lORVQpIHsKKwkJCSAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gKnNhID0KKwkJCQkJKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSBpbmZvLT5haV9hZGRyOworCQkJICAgIG1lbWNweShob3N0YWRkcmVzcywgJihzYS0+c2luX2FkZHIpLAorCQkJCQlzaXplb2Yoc2EtPnNpbl9hZGRyKSk7CisJCQl9CisJCQllbHNlIGlmIChpbmZvLT5haV9mYW1pbHkgPT0gQUZfSU5FVDYpIHsKKwkJCSAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42ICpzYSA9CisJCQkJCShzdHJ1Y3Qgc29ja2FkZHJfaW42ICopIGluZm8tPmFpX2FkZHI7CisJCQkgICAgbWVtY3B5KGhvc3RhZGRyZXNzLCAmKHNhLT5zaW42X2FkZHIpLAorCQkJCQlzaXplb2Yoc2EtPnNpbjZfYWRkcikpOworCQkJfQorCQkJaG9zdGZhbWlseSA9IGluZm8tPmFpX2ZhbWlseTsKKwkJCWZyZWVhZGRyaW5mbyhpbmZvKTsKKwkJfQorCSAgfQorCSAgYnJlYWs7CisKKwljYXNlICdwJzoKKwkgIHBmbGFnID0gMTsKKwkgIGJyZWFrOworCisJY2FzZSAnPyc6CisJZGVmYXVsdDoKKwkgIGZwcmludGYoc3RkZXJyLAorCQkgIF8oInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iKSk7CisJICBleGl0KDEpOworICAgICAgfQorICAgIGFyZ2MgLT0gb3B0aW5kOworICAgIGFyZ3YgKz0gb3B0aW5kOworICAgIGlmICgqYXJndikgeworCWNoYXIgKnAgPSAqYXJndjsKKwl1c2VybmFtZSA9IHN0cmR1cChwKTsKKwlhc2sgPSAwOworCS8qIHdpcGUgbmFtZSAtIHNvbWUgcGVvcGxlIG1pc3R5cGUgdGhlaXIgcGFzc3dvcmQgaGVyZSAqLworCS8qIChvZiBjb3Vyc2Ugd2UgYXJlIHRvbyBsYXRlLCBidXQgcGVyaGFwcyB0aGlzIGhlbHBzIGEgbGl0dGxlIC4uKSAqLworCXdoaWxlKCpwKQorCSAgICAqcCsrID0gJyAnOworICAgIH0gZWxzZQorICAgICAgICBhc2sgPSAxOworCisgICAgZm9yIChjbnQgPSBnZXRkdGFibGVzaXplKCk7IGNudCA+IDI7IGNudC0tKQorICAgICAgY2xvc2UoY250KTsKKworICAgIC8qIG5vdGUgdGhhdCBsaWJjIGNoZWNrcyB0aGF0IHRoZSBmaWxlIGRlc2NyaXB0b3IgaXMgYSB0ZXJtaW5hbCwgc28gd2UgZG9uJ3QKKyAgICAgKiBoYXZlIHRvIGNhbGwgaXNhdHR5KCkgaGVyZSAqLworICAgIHR0eW4gPSB0dHluYW1lKDApOworICAgIGNoZWNrX3R0eW5hbWUodHR5bik7CisKKyAgICBpZiAoc3RybmNtcCh0dHluLCAiL2Rldi8iLCA1KSA9PSAwKQorCXR0eV9uYW1lID0gdHR5bis1OworICAgIGVsc2UKKwl0dHlfbmFtZSA9IHR0eW47CisKKyAgICBpZiAoc3RybmNtcCh0dHluLCAiL2Rldi90dHkiLCA4KSA9PSAwKQorCXR0eV9udW1iZXIgPSB0dHluKzg7CisgICAgZWxzZSB7CisJY2hhciAqcCA9IHR0eW47CisJd2hpbGUgKCpwICYmICFpc2RpZ2l0KCpwKSkgcCsrOworCXR0eV9udW1iZXIgPSBwOworICAgIH0KKworI2lmZGVmIExPR0lOX0NIT1dOX1ZDUworICAgIC8qIGZpbmQgbmFtZXMgb2YgVmlydHVhbCBDb25zb2xlIGRldmljZXMsIGZvciBsYXRlciBtb2RlIGNoYW5nZSAqLworICAgIHNucHJpbnRmKHZjc24sIHNpemVvZih2Y3NuKSwgIi9kZXYvdmNzJXMiLCB0dHlfbnVtYmVyKTsKKyAgICBzbnByaW50Zih2Y3Nhbiwgc2l6ZW9mKHZjc2FuKSwgIi9kZXYvdmNzYSVzIiwgdHR5X251bWJlcik7CisjZW5kaWYKKworICAgIC8qIHNldCBwZ2lkIHRvIHBpZCAqLworICAgIHNldHBncnAoKTsKKyAgICAvKiB0aGlzIG1lYW5zIHRoYXQgc2V0c2lkKCkgd2lsbCBmYWlsICovCisKKyAgICB7CisJc3RydWN0IHRlcm1pb3MgdHQsIHR0dDsKKworCXRjZ2V0YXR0cigwLCAmdHQpOworCXR0dCA9IHR0OworCXR0dC5jX2NmbGFnICY9IH5IVVBDTDsKKworCS8qIFRoZXNlIGNhbiBmYWlsLCBlLmcuIHdpdGggdHR5biBvbiBhIHJlYWQtb25seSBmaWxlc3lzdGVtICovCisJZmNob3duKDAsIDAsIDApOworCWZjaG1vZCgwLCBUVFlfTU9ERSk7CisKKwkvKiBLaWxsIHByb2Nlc3NlcyBsZWZ0IG9uIHRoaXMgdHR5ICovCisJdGNzZXRhdHRyKDAsVENTQUZMVVNILCZ0dHQpOworCXNpZ25hbChTSUdIVVAsIFNJR19JR04pOyAvKiBzbyB2aGFuZ3VwKCkgd29udCBraWxsIHVzICovCisJdmhhbmd1cCgpOworCXNpZ25hbChTSUdIVVAsIFNJR19ERkwpOworCisJLyogb3BlbiBzdGRpbixzdGRvdXQsc3RkZXJyIHRvIHRoZSB0dHkgKi8KKwlvcGVudHR5KHR0eW4pOworCisJLyogcmVzdG9yZSB0dHkgbW9kZXMgKi8KKwl0Y3NldGF0dHIoMCxUQ1NBRkxVU0gsJnR0KTsKKyAgICB9CisKKyAgICBvcGVubG9nKCJsb2dpbiIsIExPR19PREVMQVksIExPR19BVVRIUFJJVik7CisKKyNpZiAwCisgICAgLyogb3RoZXIgdGhhbiBpc28tODg1OS0xICovCisgICAgcHJpbnRmKCJcMDMzKEsiKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwiXDAzMyhLIik7CisjZW5kaWYKKworI2lmZGVmIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSAorICAgIC8qCisgICAgICogdXNlcm5hbWUgaXMgaW5pdGlhbGl6ZWQgdG8gTlVMTAorICAgICAqIGFuZCBpZiBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZSBpdCBpcyBzZXQuCisgICAgICogVGhlcmVmb3JlLCB3ZSBhcmUgc2FmZSBub3Qgc2V0dGluZyBpdCB0byBhbnl0aGluZworICAgICAqLworCisgICAgcmV0Y29kZSA9IHBhbV9zdGFydChoZmxhZz8icmVtb3RlIjoibG9naW4iLHVzZXJuYW1lLCAmY29udiwgJnBhbWgpOworICAgIGlmKHJldGNvZGUgIT0gUEFNX1NVQ0NFU1MpIHsKKwlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IFBBTSBmYWlsdXJlLCBhYm9ydGluZzogJXNcbiIpLAorCQkibG9naW4iLCBwYW1fc3RyZXJyb3IocGFtaCwgcmV0Y29kZSkpOworCXN5c2xvZyhMT0dfRVJSLCBfKCJDb3VsZG4ndCBpbml0aWFsaXplIFBBTTogJXMiKSwKKwkgICAgICAgcGFtX3N0cmVycm9yKHBhbWgsIHJldGNvZGUpKTsKKwlleGl0KDk5KTsKKyAgICB9CisgICAgLyogaG9zdG5hbWUgJiB0dHkgYXJlIGVpdGhlciBzZXQgdG8gTlVMTCBvciB0aGVpciBjb3JyZWN0IHZhbHVlcywKKyAgICAgICBkZXBlbmRpbmcgb24gaG93IG11Y2ggd2Uga25vdyAqLworICAgIHJldGNvZGUgPSBwYW1fc2V0X2l0ZW0ocGFtaCwgUEFNX1JIT1NULCBob3N0bmFtZSk7CisgICAgUEFNX0ZBSUxfQ0hFQ0s7CisgICAgcmV0Y29kZSA9IHBhbV9zZXRfaXRlbShwYW1oLCBQQU1fVFRZLCB0dHlfbmFtZSk7CisgICAgUEFNX0ZBSUxfQ0hFQ0s7CisKKyAgICAvKgorICAgICAqIEFuZHJldy5UYXlsb3JAY2FsLm1vbnRhZ2UuY2E6IFByb3ZpZGUgYSB1c2VyIHByb21wdCB0byBQQU0KKyAgICAgKiBzbyB0aGF0IHRoZSAibG9naW46ICIgcHJvbXB0IGdldHMgbG9jYWxpemVkLiBVbmZvcnR1bmF0ZWx5LAorICAgICAqIFBBTSBkb2Vzbid0IGhhdmUgYW4gaW50ZXJmYWNlIHRvIHNwZWNpZnkgdGhlICJQYXNzd29yZDogIiBzdHJpbmcKKyAgICAgKiAoeWV0KS4KKyAgICAgKi8KKyAgICByZXRjb2RlID0gcGFtX3NldF9pdGVtKHBhbWgsIFBBTV9VU0VSX1BST01QVCwgXygibG9naW46ICIpKTsKKyAgICBQQU1fRkFJTF9DSEVDSzsKKworI2lmIDAKKyAgICAvKgorICAgICAqIG90aGVyIHRoYW4gaXNvLTg4NTktMQorICAgICAqIG9uZSBtb3JlIHRpbWUgZHVlIHRvIHJlc2V0IHR0eSBieSBQQU0KKyAgICAgKi8KKyAgICBwcmludGYoIlwwMzMoSyIpOworICAgIGZwcmludGYoc3RkZXJyLCJcMDMzKEsiKTsKKyNlbmRpZgorCisgICAgaWYgKHVzZXJuYW1lKSB7CisJLyogd2UgbmVlZCd0IHRoZSBvcmlnaW5hbCB1c2VybmFtZS4gV2UgaGF2ZSB0byBmb2xsb3cgUEFNLiAqLworCWZyZWUodXNlcm5hbWUpOworCXVzZXJuYW1lID0gTlVMTDsKKyAgICB9CisKKyAgICAvKiBpZiBmZmxhZyA9PSAxLCB0aGVuIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGJlZW4gYXV0aGVudGljYXRlZCAqLworICAgIGlmIChmZmxhZyAmJiAoZ2V0dWlkKCkgPT0gMCkpCisJcGFzc3dkX3JlcSA9IDA7CisgICAgZWxzZQorCXBhc3N3ZF9yZXEgPSAxOworCisgICAgaWYocGFzc3dkX3JlcSA9PSAxKSB7CisJaW50IGZhaWxjb3VudD0wOworCisJLyogaWYgd2UgZGlkbid0IGdldCBhIHVzZXIgb24gdGhlIGNvbW1hbmQgbGluZSwgc2V0IGl0IHRvIE5VTEwgKi8KKwlnZXRfcGFtX3VzZXJuYW1lKHBhbWgsICZ1c2VybmFtZSk7CisKKwkvKiB0aGVyZSBtYXkgYmUgYmV0dGVyIHdheXMgdG8gZGVhbCB3aXRoIHNvbWUgb2YgdGhlc2UKKwkgICBjb25kaXRpb25zLCBidXQgYXQgbGVhc3QgdGhpcyB3YXkgSSBkb24ndCB0aGluayB3ZSdsbAorCSAgIGJlIGdpdmluZyBhd2F5IGluZm9ybWF0aW9uLi4uICovCisJLyogUGVyaGFwcyBzb21lZGF5IHdlIGNhbiB0cnVzdCB0aGF0IGFsbCBQQU0gbW9kdWxlcyB3aWxsCisJICAgcGF5IGF0dGVudGlvbiB0byBmYWlsdXJlIGNvdW50IGFuZCBnZXQgcmlkIG9mIE1BWF9MT0dJTl9UUklFUz8gKi8KKworCXJldGNvZGUgPSBwYW1fYXV0aGVudGljYXRlKHBhbWgsIDApOworCXdoaWxlKChmYWlsY291bnQrKyA8IFBBTV9NQVhfTE9HSU5fVFJJRVMpICYmCisJICAgICAgKChyZXRjb2RlID09IFBBTV9BVVRIX0VSUikgfHwKKwkgICAgICAgKHJldGNvZGUgPT0gUEFNX1VTRVJfVU5LTk9XTikgfHwKKwkgICAgICAgKHJldGNvZGUgPT0gUEFNX0NSRURfSU5TVUZGSUNJRU5UKSB8fAorCSAgICAgICAocmV0Y29kZSA9PSBQQU1fQVVUSElORk9fVU5BVkFJTCkpKSB7CisJICAgIGdldF9wYW1fdXNlcm5hbWUocGFtaCwgJnVzZXJuYW1lKTsKKworCSAgICBzeXNsb2coTE9HX05PVElDRSxfKCJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIiksCisJCSAgIGZhaWxjb3VudCwgaG9zdG5hbWUsIHVzZXJuYW1lLCBwYW1fc3RyZXJyb3IocGFtaCwgcmV0Y29kZSkpOworCSAgICBsb2didG1wKHR0eV9uYW1lLCB1c2VybmFtZSwgaG9zdG5hbWUpOworCSAgICBsb2dhdWRpdCh0dHlfbmFtZSwgdXNlcm5hbWUsIGhvc3RuYW1lLCBOVUxMLCAwKTsKKworCSAgICBmcHJpbnRmKHN0ZGVycixfKCJMb2dpbiBpbmNvcnJlY3RcblxuIikpOworCSAgICBwYW1fc2V0X2l0ZW0ocGFtaCxQQU1fVVNFUixOVUxMKTsKKwkgICAgcmV0Y29kZSA9IHBhbV9hdXRoZW50aWNhdGUocGFtaCwgMCk7CisJfQorCisJaWYgKHJldGNvZGUgIT0gUEFNX1NVQ0NFU1MpIHsKKwkgICAgZ2V0X3BhbV91c2VybmFtZShwYW1oLCAmdXNlcm5hbWUpOworCisJICAgIGlmIChyZXRjb2RlID09IFBBTV9NQVhUUklFUykKKwkJc3lzbG9nKExPR19OT1RJQ0UsXygiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAiCisJCQkiJXMsICVzIiksIGZhaWxjb3VudCwgaG9zdG5hbWUsIHVzZXJuYW1lLAorCQkJIHBhbV9zdHJlcnJvcihwYW1oLCByZXRjb2RlKSk7CisJICAgIGVsc2UKKwkJc3lzbG9nKExPR19OT1RJQ0UsXygiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIiksCisJCQlob3N0bmFtZSwgdXNlcm5hbWUsIHBhbV9zdHJlcnJvcihwYW1oLCByZXRjb2RlKSk7CisJICAgIGxvZ2J0bXAodHR5X25hbWUsIHVzZXJuYW1lLCBob3N0bmFtZSk7CisJICAgIGxvZ2F1ZGl0KHR0eV9uYW1lLCB1c2VybmFtZSwgaG9zdG5hbWUsIE5VTEwsIDApOworCisJICAgIGZwcmludGYoc3RkZXJyLF8oIlxuTG9naW4gaW5jb3JyZWN0XG4iKSk7CisJICAgIHBhbV9lbmQocGFtaCwgcmV0Y29kZSk7CisJICAgIGV4aXQoMCk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogQXV0aGVudGljYXRpb24gbWF5IGJlIHNraXBwZWQgKGZvciBleGFtcGxlLCBkdXJpbmcga3Jsb2dpbiwgcmxvZ2luLCBldGMuLi4pLAorICAgICAqIGJ1dCBpdCBkb2Vzbid0IG1lYW4gdGhhdCB3ZSBjYW4gc2tpcCBvdGhlciBhY2NvdW50IGNoZWNrcy4gVGhlIGFjY291bnQKKyAgICAgKiBjb3VsZCBiZSBkaXNhYmxlZCBvciBwYXNzd29yZCBleHBpcmVkIChhbHRob3VnaHQga2VyYmVyb3MgdGlja2V0IGlzIHZhbGlkKS4KKyAgICAgKiAtLSBremFrQHJlZGhhdC5jb20gKDIyLUZlYi0yMDA2KQorICAgICAqLworICAgIHJldGNvZGUgPSBwYW1fYWNjdF9tZ210KHBhbWgsIDApOworCisgICAgaWYocmV0Y29kZSA9PSBQQU1fTkVXX0FVVEhUT0tfUkVRRCkgeworICAgICAgICByZXRjb2RlID0gcGFtX2NoYXV0aHRvayhwYW1oLCBQQU1fQ0hBTkdFX0VYUElSRURfQVVUSFRPSyk7CisgICAgfQorCisgICAgUEFNX0ZBSUxfQ0hFQ0s7CisKKyAgICAvKgorICAgICAqIEdyYWIgdGhlIHVzZXIgaW5mb3JtYXRpb24gb3V0IG9mIHRoZSBwYXNzd29yZCBmaWxlIGZvciBmdXR1cmUgdXNhZ2UKKyAgICAgKiBGaXJzdCBnZXQgdGhlIHVzZXJuYW1lIHRoYXQgd2UgYXJlIGFjdHVhbGx5IHVzaW5nLCB0aG91Z2guCisgICAgICovCisgICAgcmV0Y29kZSA9IGdldF9wYW1fdXNlcm5hbWUocGFtaCwgJnVzZXJuYW1lKTsKKyAgICBQQU1fRkFJTF9DSEVDSzsKKworICAgIGlmICghdXNlcm5hbWUgfHwgISp1c2VybmFtZSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgXygiXG5TZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIikpOworCSAgICBzeXNsb2coTE9HX0VSUiwgXygiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIpLAorCQkgICBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKKwkgICAgcGFtX2VuZChwYW1oLCBQQU1fU1lTVEVNX0VSUik7CisJICAgIGV4aXQoMSk7CisgICAgfQorICAgIGlmICghKHB3ZCA9IGdldHB3bmFtKHVzZXJuYW1lKSkpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsIF8oIlxuU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIpKTsKKwkgICAgc3lzbG9nKExPR19FUlIsIF8oIkludmFsaWQgdXNlciBuYW1lIFwiJXNcIiBpbiAlczolZC4gQWJvcnQuIiksCisJCSAgIHVzZXJuYW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKKwkgICAgcGFtX2VuZChwYW1oLCBQQU1fU1lTVEVNX0VSUik7CisJICAgIGV4aXQoMSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDcmVhdGUgYSBjb3B5IG9mIHRoZSBwd2Qgc3RydWN0IC0gb3RoZXJ3aXNlIGl0IG1heSBnZXQKKyAgICAgKiBjbG9iYmVyZWQgYnkgUEFNCisgICAgICovCisgICAgbWVtY3B5KCZwd2Rjb3B5LCBwd2QsIHNpemVvZigqcHdkKSk7CisgICAgcHdkID0gJnB3ZGNvcHk7CisgICAgcHdkLT5wd19uYW1lICAgPSBzdHJkdXAocHdkLT5wd19uYW1lKTsKKyAgICBwd2QtPnB3X3Bhc3N3ZCA9IHN0cmR1cChwd2QtPnB3X3Bhc3N3ZCk7CisgICAgcHdkLT5wd19nZWNvcyAgPSBzdHJkdXAocHdkLT5wd19nZWNvcyk7CisgICAgcHdkLT5wd19kaXIgICAgPSBzdHJkdXAocHdkLT5wd19kaXIpOworICAgIHB3ZC0+cHdfc2hlbGwgID0gc3RyZHVwKHB3ZC0+cHdfc2hlbGwpOworICAgIGlmICghcHdkLT5wd19uYW1lIHx8ICFwd2QtPnB3X3Bhc3N3ZCB8fCAhcHdkLT5wd19nZWNvcyB8fAorCSFwd2QtPnB3X2RpciB8fCAhcHdkLT5wd19zaGVsbCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgXygibG9naW46IE91dCBvZiBtZW1vcnlcbiIpKTsKKwkgICAgc3lzbG9nKExPR19FUlIsICJPdXQgb2YgbWVtb3J5Iik7CisJICAgIHBhbV9lbmQocGFtaCwgUEFNX1NZU1RFTV9FUlIpOworCSAgICBleGl0KDEpOworICAgIH0KKyAgICB1c2VybmFtZSA9IHB3ZC0+cHdfbmFtZTsKKworICAgIC8qCisgICAgICogSW5pdGlhbGl6ZSB0aGUgc3VwcGxlbWVudGFyeSBncm91cCBsaXN0LgorICAgICAqIFRoaXMgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIHBhbV9zZXRjcmVkIGJlY2F1c2UKKyAgICAgKiB0aGUgUEFNIG1vZHVsZXMgbWlnaHQgYWRkIGdyb3VwcyBkdXJpbmcgcGFtX3NldGNyZWQuCisgICAgICovCisgICAgaWYgKGluaXRncm91cHModXNlcm5hbWUsIHB3ZC0+cHdfZ2lkKSA8IDApIHsKKwkgICAgc3lzbG9nKExPR19FUlIsICJpbml0Z3JvdXBzOiAlbSIpOworCSAgICBmcHJpbnRmKHN0ZGVyciwgXygiXG5TZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIikpOworCSAgICBwYW1fZW5kKHBhbWgsIFBBTV9TWVNURU1fRVJSKTsKKwkgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICByZXRjb2RlID0gcGFtX29wZW5fc2Vzc2lvbihwYW1oLCAwKTsKKyAgICBQQU1fRkFJTF9DSEVDSzsKKworICAgIHJldGNvZGUgPSBwYW1fc2V0Y3JlZChwYW1oLCBQQU1fRVNUQUJMSVNIX0NSRUQpOworICAgIGlmIChyZXRjb2RlICE9IFBBTV9TVUNDRVNTKQorCSAgICBwYW1fY2xvc2Vfc2Vzc2lvbihwYW1oLCAwKTsKKyAgICBQQU1fRkFJTF9DSEVDSzsKKworI2Vsc2UgLyogISBIQVZFX1NFQ1VSSVRZX1BBTV9NSVNDX0ggKi8KKworICAgIGZvciAoY250ID0gMDs7IGFzayA9IDEpIHsKKworCWlmIChhc2spIHsKKwkgICAgZmZsYWcgPSAwOworCSAgICBnZXRsb2dpbm5hbWUoKTsKKwl9CisKKwkvKiBEaXJ0eSBwYXRjaCB0byBmaXggYSBnaWdhbnRpYyBzZWN1cml0eSBob2xlIHdoZW4gdXNpbmcKKwkgICB5ZWxsb3cgcGFnZXMuIFRoaXMgcHJvYmxlbSBzaG91bGQgYmUgc29sdmVkIGJ5IHRoZQorCSAgIGxpYnJhcmllcywgYW5kIG5vdCBieSBwcm9ncmFtcywgYnV0IHRoaXMgbXVzdCBiZSBmaXhlZAorCSAgIHVyZ2VudGx5ISBJZiB0aGUgZmlyc3QgY2hhciBvZiB0aGUgdXNlcm5hbWUgaXMgJysnLCB3ZQorCSAgIGF2b2lkIGxvZ2luIHN1Y2Nlc3MuCisJICAgRmViIDk1IDxhbHZhcm9AZXRzaXQudXBtLmVzPiAqLworCisJaWYgKHVzZXJuYW1lWzBdID09ICcrJykgeworCSAgICBwdXRzKF8oIklsbGVnYWwgdXNlcm5hbWUiKSk7CisJICAgIGJhZGxvZ2luKHVzZXJuYW1lKTsKKwkgICAgc2xlZXBleGl0KDEpOworCX0KKworCS8qICh2b2lkKXN0cmNweSh0YnVmLCB1c2VybmFtZSk7IHdoeSB3YXMgdGhpcyBoZXJlPyAqLworCWlmICgocHdkID0gZ2V0cHduYW0odXNlcm5hbWUpKSkgeworIyAgaWZkZWYgU0hBRE9XX1BXRAorCSAgICBzdHJ1Y3Qgc3B3ZCAqc3A7CisKKwkgICAgaWYgKChzcCA9IGdldHNwbmFtKHVzZXJuYW1lKSkpCisJICAgICAgcHdkLT5wd19wYXNzd2QgPSBzcC0+c3BfcHdkcDsKKyMgIGVuZGlmCisJICAgIHNhbHQgPSBwd2QtPnB3X3Bhc3N3ZDsKKwl9IGVsc2UKKwkgIHNhbHQgPSAieHgiOworCisJaWYgKHB3ZCkgeworCSAgICBpbml0Z3JvdXBzKHVzZXJuYW1lLCBwd2QtPnB3X2dpZCk7CisJICAgIGNoZWNrdHR5KHVzZXJuYW1lLCB0dHlfbmFtZSwgcHdkKTsgLyogaW4gY2hlY2t0dHkuYyAqLworCX0KKworCS8qIGlmIHVzZXIgbm90IHN1cGVyLXVzZXIsIGNoZWNrIGZvciBkaXNhYmxlZCBsb2dpbnMgKi8KKwlpZiAocHdkID09IE5VTEwgfHwgcHdkLT5wd191aWQpCisJICBjaGVja25vbG9naW4oKTsKKworCS8qCisJICogRGlzYWxsb3cgYXV0b21hdGljIGxvZ2luIHRvIHJvb3Q7IGlmIG5vdCBpbnZva2VkIGJ5CisJICogcm9vdCwgZGlzYWxsb3cgaWYgdGhlIHVpZCdzIGRpZmZlci4KKwkgKi8KKwlpZiAoZmZsYWcgJiYgcHdkKSB7CisJICAgIGludCB1aWQgPSBnZXR1aWQoKTsKKworCSAgICBwYXNzd2RfcmVxID0gcHdkLT5wd191aWQgPT0gMCB8fAorCSAgICAgICh1aWQgJiYgdWlkICE9IHB3ZC0+cHdfdWlkKTsKKwl9CisKKwkvKgorCSAqIElmIHRyeWluZyB0byBsb2cgaW4gYXMgcm9vdCwgYnV0IHdpdGggaW5zZWN1cmUgdGVybWluYWwsCisJICogcmVmdXNlIHRoZSBsb2dpbiBhdHRlbXB0LgorCSAqLworCWlmIChwd2QgJiYgcHdkLT5wd191aWQgPT0gMCAmJiAhcm9vdHRlcm0odHR5X25hbWUpKSB7CisJICAgIGZwcmludGYoc3RkZXJyLAorCQkgICAgXygiJXMgbG9naW4gcmVmdXNlZCBvbiB0aGlzIHRlcm1pbmFsLlxuIiksCisJCSAgICBwd2QtPnB3X25hbWUpOworCisJICAgIGlmIChob3N0bmFtZSkKKwkgICAgICBzeXNsb2coTE9HX05PVElDRSwKKwkJICAgICBfKCJMT0dJTiAlcyBSRUZVU0VEIEZST00gJXMgT04gVFRZICVzIiksCisJCSAgICAgcHdkLT5wd19uYW1lLCBob3N0bmFtZSwgdHR5X25hbWUpOworCSAgICBlbHNlCisJICAgICAgc3lzbG9nKExPR19OT1RJQ0UsCisJCSAgICAgXygiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiKSwKKwkJICAgICBwd2QtPnB3X25hbWUsIHR0eV9uYW1lKTsKKwkgICAgbG9nYXVkaXQodHR5X25hbWUsIHB3ZC0+cHdfbmFtZSwgaG9zdG5hbWUsIHB3ZCwgMCk7CisJICAgIGNvbnRpbnVlOworCX0KKworCS8qCisJICogSWYgbm8gcHJlLWF1dGhlbnRpY2F0aW9uIGFuZCBhIHBhc3N3b3JkIGV4aXN0cworCSAqIGZvciB0aGlzIHVzZXIsIHByb21wdCBmb3Igb25lIGFuZCB2ZXJpZnkgaXQuCisJICovCisJaWYgKCFwYXNzd2RfcmVxIHx8IChwd2QgJiYgISpwd2QtPnB3X3Bhc3N3ZCkpCisJICBicmVhazsKKworCXNldHByaW9yaXR5KFBSSU9fUFJPQ0VTUywgMCwgLTQpOworCXBwID0gZ2V0cGFzcyhfKCJQYXNzd29yZDogIikpOworCisjICBpZmRlZiBDUllQVE9DQVJECisJaWYgKHN0cm5jbXAocHAsICJDUllQVE8iLCA2KSA9PSAwKSB7CisJICAgIGlmIChwd2QgJiYgY3J5cHRvY2FyZCgpKSBicmVhazsKKwl9CisjICBlbmRpZiAvKiBDUllQVE9DQVJEICovCisKKwlwID0gY3J5cHQocHAsIHNhbHQpOworCXNldHByaW9yaXR5KFBSSU9fUFJPQ0VTUywgMCwgMCk7CisKKyMgIGlmZGVmIEtFUkJFUk9TCisJLyoKKwkgKiBJZiBub3QgcHJlc2VudCBpbiBwdyBmaWxlLCBhY3QgYXMgd2Ugbm9ybWFsbHkgd291bGQuCisJICogSWYgd2UgYXJlbid0IEtlcmJlcm9zLWF1dGhlbnRpY2F0ZWQsIHRyeSB0aGUgbm9ybWFsCisJICogcHcgZmlsZSBmb3IgYSBwYXNzd29yZC4gIElmIHRoYXQncyBvaywgbG9nIHRoZSB1c2VyCisJICogaW4gd2l0aG91dCBpc3N1ZWluZyBhbnkgdGlja2V0cy4KKwkgKi8KKworCWlmIChwd2QgJiYgIWtyYl9nZXRfbHJlYWxtKHJlYWxtLDEpKSB7CisJICAgIC8qCisJICAgICAqIGdldCBUR1QgZm9yIGxvY2FsIHJlYWxtOyBiZSBjYXJlZnVsIGFib3V0IHVpZCdzCisJICAgICAqIGhlcmUgZm9yIHRpY2tldCBmaWxlIG93bmVyc2hpcAorCSAgICAgKi8KKwkgICAgc2V0cmV1aWQoZ2V0ZXVpZCgpLHB3ZC0+cHdfdWlkKTsKKwkgICAga2Vycm9yID0ga3JiX2dldF9wd19pbl90a3QocHdkLT5wd19uYW1lLCAiIiwgcmVhbG0sCisJCQkJICAgICAgICJrcmJ0Z3QiLCByZWFsbSwgREVGQVVMVF9US1RfTElGRSwgcHApOworCSAgICBzZXR1aWQoMCk7CisJICAgIGlmIChrZXJyb3IgPT0gSU5US19PSykgeworCQltZW1zZXQocHAsIDAsIHN0cmxlbihwcCkpOworCQlub3RpY2tldHMgPSAwOwkvKiB1c2VyIGdvdCB0aWNrZXQgKi8KKwkJYnJlYWs7CisJICAgIH0KKwl9CisjICBlbmRpZiAvKiBLRVJCRVJPUyAqLworCW1lbXNldChwcCwgMCwgc3RybGVuKHBwKSk7CisKKwlpZiAocHdkICYmICFzdHJjbXAocCwgcHdkLT5wd19wYXNzd2QpKQorCSAgYnJlYWs7CisKKwlwcmludGYoXygiTG9naW4gaW5jb3JyZWN0XG4iKSk7CisJYmFkbG9naW4odXNlcm5hbWUpOyAvKiBsb2cgQUxMIGJhZCBsb2dpbnMgKi8KKwlmYWlsdXJlcysrOworCisJLyogd2UgYWxsb3cgMTAgdHJpZXMsIGJ1dCBhZnRlciAzIHdlIHN0YXJ0IGJhY2tpbmcgb2ZmICovCisJaWYgKCsrY250ID4gMykgeworCSAgICBpZiAoY250ID49IDEwKSB7CisJCXNsZWVwZXhpdCgxKTsKKwkgICAgfQorCSAgICBzbGVlcCgodW5zaWduZWQgaW50KSgoY250IC0gMykgKiA1KSk7CisJfQorICAgIH0KKyNlbmRpZiAvKiAhSEFWRV9TRUNVUklUWV9QQU1fTUlTQ19IICovCisKKyAgICAvKiBjb21taXR0ZWQgdG8gbG9naW4gLS0gdHVybiBvZmYgdGltZW91dCAqLworICAgIGFsYXJtKCh1bnNpZ25lZCBpbnQpMCk7CisKKyAgICBlbmRwd2VudCgpOworCisgICAgLyogVGhpcyByZXF1aXJlcyBzb21lIGV4cGxhbmF0aW9uOiBBcyByb290IHdlIG1heSBub3QgYmUgYWJsZSB0bworICAgICAgIHJlYWQgdGhlIGRpcmVjdG9yeSBvZiB0aGUgdXNlciBpZiBpdCBpcyBvbiBhbiBORlMgbW91bnRlZAorICAgICAgIGZpbGVzeXN0ZW0uIFdlIHRlbXBvcmFyaWx5IHNldCBvdXIgZWZmZWN0aXZlIHVpZCB0byB0aGUgdXNlci11aWQKKyAgICAgICBtYWtpbmcgc3VyZSB0aGF0IHdlIGtlZXAgcm9vdCBwcml2cy4gaW4gdGhlIHJlYWwgdWlkLgorCisgICAgICAgQSBwb3J0YWJsZSBzb2x1dGlvbiB3b3VsZCByZXF1aXJlIGEgZm9yaygpLCBidXQgd2UgcmVseSBvbiBMaW51eAorICAgICAgIGhhdmluZyB0aGUgQlNEIHNldHJldWlkKCkgKi8KKworICAgIHsKKwljaGFyIHRtcHN0cltNQVhQQVRITEVOXTsKKwl1aWRfdCBydWlkID0gZ2V0dWlkKCk7CisJZ2lkX3QgZWdpZCA9IGdldGVnaWQoKTsKKworCS8qIGF2b2lkIHNucHJpbnRmIC0gb2xkIHN5c3RlbXMgZG8gbm90IGhhdmUgaXQsIG9yIHdvcnNlLAorCSAgIGhhdmUgYSBsaWJjIGluIHdoaWNoIHNucHJpbnRmIGlzIHRoZSBzYW1lIGFzIHNwcmludGYgKi8KKwlpZiAoc3RybGVuKHB3ZC0+cHdfZGlyKSArIHNpemVvZihfUEFUSF9IVVNITE9HSU4pICsgMiA+IE1BWFBBVEhMRU4pCisJCXF1aWV0bG9nID0gMDsKKwllbHNlIHsKKwkJc3ByaW50Zih0bXBzdHIsICIlcy8lcyIsIHB3ZC0+cHdfZGlyLCBfUEFUSF9IVVNITE9HSU4pOworCQlzZXRyZWdpZCgtMSwgcHdkLT5wd19naWQpOworCQlzZXRyZXVpZCgwLCBwd2QtPnB3X3VpZCk7CisJCXF1aWV0bG9nID0gKGVmZmVjdGl2ZV9hY2Nlc3ModG1wc3RyLCBPX1JET05MWSkgPT0gMCk7CisJCXNldHVpZCgwKTsgLyogc2V0cmV1aWQgZG9lc24ndCBkbyBpdCBhbG9uZSEgKi8KKwkJc2V0cmV1aWQocnVpZCwgMCk7CisJCXNldHJlZ2lkKC0xLCBlZ2lkKTsKKwl9CisgICAgfQorCisgICAgLyogZm9yIGxpbnV4LCB3cml0ZSBlbnRyaWVzIGluIHV0bXAgYW5kIHd0bXAgKi8KKyAgICB7CisJc3RydWN0IHV0bXAgdXQ7CisJc3RydWN0IHV0bXAgKnV0cDsKKwlzdHJ1Y3QgdGltZXZhbCB0djsKKworCXV0bXBuYW1lKF9QQVRIX1VUTVApOworCXNldHV0ZW50KCk7CisKKwkvKiBGaW5kIHBpZCBpbiB1dG1wLgorbG9naW4gc29tZXRpbWVzIG92ZXJ3cml0ZXMgdGhlIHJ1bmxldmVsIGVudHJ5IGluIC92YXIvcnVuL3V0bXAsCitjb25mdXNpbmcgc3lzdmluaXQuIEkgYWRkZWQgYSB0ZXN0IGZvciB0aGUgZW50cnkgdHlwZSwgYW5kIHRoZSBwcm9ibGVtCit3YXMgZ29uZS4gKEluIGEgcnVubGV2ZWwgZW50cnksIHN0X3BpZCBpcyBub3QgcmVhbGx5IGEgcGlkIGJ1dCBzb21lIG51bWJlcgorY2FsY3VsYXRlZCBmcm9tIHRoZSBwcmV2aW91cyBhbmQgY3VycmVudCBydW5sZXZlbCkuCitNaWNoYWVsIFJpZXBlIDxtaWNoYWVsQHN0dWQudW5pLWhhbm5vdmVyLmRlPgorCSovCisJd2hpbGUgKCh1dHAgPSBnZXR1dGVudCgpKSkKKwkJaWYgKHV0cC0+dXRfcGlkID09IHBpZAorCQkgICAgJiYgdXRwLT51dF90eXBlID49IElOSVRfUFJPQ0VTUworCQkgICAgJiYgdXRwLT51dF90eXBlIDw9IERFQURfUFJPQ0VTUykKKwkJCWJyZWFrOworCisJLyogSWYgd2UgY2FuJ3QgZmluZCBhIHByZS1leGlzdGluZyBlbnRyeSBieSBwaWQsIHRyeSBieSBsaW5lLgorCSAgIEJTRCBuZXR3b3JrIGRhZW1vbnMgbWF5IHJlbHkgb24gdGhpcy4gKGFub255bW91cykgKi8KKwlpZiAodXRwID09IE5VTEwpIHsKKwkgICAgIHNldHV0ZW50KCk7CisJICAgICB1dC51dF90eXBlID0gTE9HSU5fUFJPQ0VTUzsKKwkgICAgIHN0cm5jcHkodXQudXRfbGluZSwgdHR5X25hbWUsIHNpemVvZih1dC51dF9saW5lKSk7CisJICAgICB1dHAgPSBnZXR1dGxpbmUoJnV0KTsKKwl9CisKKwlpZiAodXRwKSB7CisJICAgIG1lbWNweSgmdXQsIHV0cCwgc2l6ZW9mKHV0KSk7CisJfSBlbHNlIHsKKwkgICAgLyogc29tZSBnZXR0eXMvdGVsbmV0ZHMgZG9uJ3QgaW5pdGlhbGl6ZSB1dG1wLi4uICovCisJICAgIG1lbXNldCgmdXQsIDAsIHNpemVvZih1dCkpOworCX0KKworCWlmICh1dC51dF9pZFswXSA9PSAwKQorCSAgc3RybmNweSh1dC51dF9pZCwgdHR5X251bWJlciwgc2l6ZW9mKHV0LnV0X2lkKSk7CisKKwlzdHJuY3B5KHV0LnV0X3VzZXIsIHVzZXJuYW1lLCBzaXplb2YodXQudXRfdXNlcikpOworCXhzdHJuY3B5KHV0LnV0X2xpbmUsIHR0eV9uYW1lLCBzaXplb2YodXQudXRfbGluZSkpOworI2lmZGVmIF9IQVZFX1VUX1RWCQkvKiBpbiA8dXRtcGJpdHMuaD4gaW5jbHVkZWQgYnkgPHV0bXAuaD4gKi8KKwlnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKKwl1dC51dF90di50dl9zZWMgPSB0di50dl9zZWM7CisJdXQudXRfdHYudHZfdXNlYyA9IHR2LnR2X3VzZWM7CisjZWxzZQorCXsKKwkgICAgdGltZV90IHQ7CisJICAgIHRpbWUoJnQpOworCSAgICB1dC51dF90aW1lID0gdDsJLyogdXRfdGltZSBpcyBub3QgYWx3YXlzIGEgdGltZV90ICovCisJCQkJLyogZ2xpYmMyICNkZWZpbmVzIGl0IGFzIHV0X3R2LnR2X3NlYyAqLworCX0KKyNlbmRpZgorCXV0LnV0X3R5cGUgPSBVU0VSX1BST0NFU1M7CisJdXQudXRfcGlkID0gcGlkOworCWlmIChob3N0bmFtZSkgeworCQl4c3RybmNweSh1dC51dF9ob3N0LCBob3N0bmFtZSwgc2l6ZW9mKHV0LnV0X2hvc3QpKTsKKwkJaWYgKGhvc3RhZGRyZXNzWzBdKQorCQkJbWVtY3B5KCZ1dC51dF9hZGRyX3Y2LCBob3N0YWRkcmVzcywgc2l6ZW9mKHV0LnV0X2FkZHJfdjYpKTsKKwl9CisKKwlwdXR1dGxpbmUoJnV0KTsKKwllbmR1dGVudCgpOworCisjaWYgSEFWRV9VUERXVE1QCisJdXBkd3RtcChfUEFUSF9XVE1QLCAmdXQpOworI2Vsc2UKKyNpZiAwCisJLyogVGhlIE9fQVBQRU5EIG9wZW4oKSBmbGFnIHNob3VsZCBiZSBlbm91Z2ggdG8gZ3VhcmFudGVlCisJICAgYXRvbWljIHdyaXRlcyBhdCBlbmQgb2YgZmlsZS4gKi8KKwl7CisJICAgIGludCB3dG1wOworCisJICAgIGlmKCh3dG1wID0gb3BlbihfUEFUSF9XVE1QLCBPX0FQUEVORHxPX1dST05MWSkpID49IDApIHsKKwkJd3JpdGUod3RtcCwgKGNoYXIgKikmdXQsIHNpemVvZih1dCkpOworCQljbG9zZSh3dG1wKTsKKwkgICAgfQorCX0KKyNlbHNlCisJLyogUHJvYmFibHkgYWxsIHRoaXMgbG9ja2luZyBiZWxvdyBpcyBqdXN0IG5vbnNlbnNlLAorCSAgIGFuZCB0aGUgc2hvcnQgdmVyc2lvbiBpcyBPSyBhcyB3ZWxsLiAqLworCXsKKwkgICAgaW50IGxmLCB3dG1wOworCSAgICBpZiAoKGxmID0gb3BlbihfUEFUSF9XVE1QTE9DSywgT19DUkVBVHxPX1dST05MWSwgMDY2MCkpID49IDApIHsKKwkJZmxvY2sobGYsIExPQ0tfRVgpOworCQlpZiAoKHd0bXAgPSBvcGVuKF9QQVRIX1dUTVAsIE9fQVBQRU5EfE9fV1JPTkxZKSkgPj0gMCkgeworCQkgICAgd3JpdGUod3RtcCwgKGNoYXIgKikmdXQsIHNpemVvZih1dCkpOworCQkgICAgY2xvc2Uod3RtcCk7CisJCX0KKwkJZmxvY2sobGYsIExPQ0tfVU4pOworCQljbG9zZShsZik7CisJICAgIH0KKwl9CisjZW5kaWYKKyNlbmRpZgorICAgIH0KKworICAgIGxvZ2F1ZGl0KHR0eV9uYW1lLCB1c2VybmFtZSwgaG9zdG5hbWUsIHB3ZCwgMSk7CisgICAgZG9sYXN0bG9nKHF1aWV0bG9nKTsKKworICAgIGZjaG93bigwLCBwd2QtPnB3X3VpZCwKKwkgIChnciA9IGdldGdybmFtKFRUWUdSUE5BTUUpKSA/IGdyLT5ncl9naWQgOiBwd2QtPnB3X2dpZCk7CisgICAgZmNobW9kKDAsIFRUWV9NT0RFKTsKKworI2lmZGVmIExPR0lOX0NIT1dOX1ZDUworICAgIC8qIGlmIHR0eSBpcyBvbmUgb2YgdGhlIFZDJ3MgdGhlbiBjaGFuZ2Ugb3duZXIgYW5kIG1vZGUgb2YgdGhlCisgICAgICAgc3BlY2lhbCAvZGV2L3ZjcyBkZXZpY2VzIGFzIHdlbGwgKi8KKyAgICBpZiAoY29uc29sZXR0eSgwKSkgeworCWNob3duKHZjc24sIHB3ZC0+cHdfdWlkLCAoZ3IgPyBnci0+Z3JfZ2lkIDogcHdkLT5wd19naWQpKTsKKwljaG93bih2Y3NhbiwgcHdkLT5wd191aWQsIChnciA/IGdyLT5ncl9naWQgOiBwd2QtPnB3X2dpZCkpOworCWNobW9kKHZjc24sIFRUWV9NT0RFKTsKKwljaG1vZCh2Y3NhbiwgVFRZX01PREUpOworICAgIH0KKyNlbmRpZgorCisgICAgc2V0Z2lkKHB3ZC0+cHdfZ2lkKTsKKworICAgIGlmICgqcHdkLT5wd19zaGVsbCA9PSAnXDAnKQorICAgICAgcHdkLT5wd19zaGVsbCA9IF9QQVRIX0JTSEVMTDsKKworICAgIC8qIHByZXNlcnZlIFRFUk0gZXZlbiB3aXRob3V0IC1wIGZsYWcgKi8KKyAgICB7CisJY2hhciAqZXA7CisKKwlpZighKChlcCA9IGdldGVudigiVEVSTSIpKSAmJiAodGVybWVudiA9IHN0cmR1cChlcCkpKSkKKwkgIHRlcm1lbnYgPSAiZHVtYiI7CisgICAgfQorCisgICAgLyogZGVzdHJveSBlbnZpcm9ubWVudCB1bmxlc3MgdXNlciBoYXMgcmVxdWVzdGVkIHByZXNlcnZhdGlvbiAqLworICAgIGlmICghcGZsYWcpCisgICAgICB7CisgICAgICAgICAgZW52aXJvbiA9IChjaGFyKiopbWFsbG9jKHNpemVvZihjaGFyKikpOworCSAgbWVtc2V0KGVudmlyb24sIDAsIHNpemVvZihjaGFyKikpOworICAgICAgfQorCisgICAgc2V0ZW52KCJIT01FIiwgcHdkLT5wd19kaXIsIDApOyAgICAgIC8qIGxlZ2FsIHRvIG92ZXJyaWRlICovCisgICAgaWYocHdkLT5wd191aWQpCisgICAgICBzZXRlbnYoIlBBVEgiLCBfUEFUSF9ERUZQQVRILCAxKTsKKyAgICBlbHNlCisgICAgICBzZXRlbnYoIlBBVEgiLCBfUEFUSF9ERUZQQVRIX1JPT1QsIDEpOworCisgICAgc2V0ZW52KCJTSEVMTCIsIHB3ZC0+cHdfc2hlbGwsIDEpOworICAgIHNldGVudigiVEVSTSIsIHRlcm1lbnYsIDEpOworCisgICAgLyogbWFpbHggd2lsbCBnaXZlIGEgZnVubnkgZXJyb3IgbXNnIGlmIHlvdSBmb3JnZXQgdGhpcyBvbmUgKi8KKyAgICB7CisgICAgICBjaGFyIHRtcFtNQVhQQVRITEVOXTsKKyAgICAgIC8qIGF2b2lkIHNucHJpbnRmICovCisgICAgICBpZiAoc2l6ZW9mKF9QQVRIX01BSUxESVIpICsgc3RybGVuKHB3ZC0+cHdfbmFtZSkgKyAxIDwgTUFYUEFUSExFTikgeworCSAgICAgIHNwcmludGYodG1wLCAiJXMvJXMiLCBfUEFUSF9NQUlMRElSLCBwd2QtPnB3X25hbWUpOworCSAgICAgIHNldGVudigiTUFJTCIsdG1wLDApOworICAgICAgfQorICAgIH0KKworICAgIC8qIExPR05BTUUgaXMgbm90IGRvY3VtZW50ZWQgaW4gbG9naW4oMSkgYnV0CisgICAgICAgSFAtVVggNi41IGRvZXMgaXQuIFdlJ2xsIG5vdCBhbGxvdyBtb2RpZnlpbmcgaXQuCisgICAgICAgKi8KKyAgICBzZXRlbnYoIkxPR05BTUUiLCBwd2QtPnB3X25hbWUsIDEpOworCisjaWZkZWYgSEFWRV9TRUNVUklUWV9QQU1fTUlTQ19ICisgICAgeworCWludCBpOworCWNoYXIgKiogZW52ID0gcGFtX2dldGVudmxpc3QocGFtaCk7CisKKwlpZiAoZW52ICE9IE5VTEwpIHsKKwkgICAgZm9yIChpPTA7IGVudltpXTsgaSsrKSB7CisJCXB1dGVudihlbnZbaV0pOworCQkvKiBEKCgiZW52WyVkXSA9ICVzIiwgaSxlbnZbaV0pKTsgKi8KKwkgICAgfQorCX0KKyAgICB9CisjZW5kaWYKKworICAgIHNldHByb2N0aXRsZSgibG9naW4iLCB1c2VybmFtZSk7CisKKyAgICBpZiAoIXN0cm5jbXAodHR5X25hbWUsICJ0dHlTIiwgNCkpCisgICAgICBzeXNsb2coTE9HX0lORk8sIF8oIkRJQUxVUCBBVCAlcyBCWSAlcyIpLCB0dHlfbmFtZSwgcHdkLT5wd19uYW1lKTsKKworICAgIC8qIGFsbG93IHRyYWNraW5nIG9mIGdvb2QgbG9naW5zLgorICAgICAgIC1zdGV2ZSBwaGlscCAoc3BoaWxwQG1haWwuYWxsaWFuY2UubmV0KSAqLworCisgICAgaWYgKHB3ZC0+cHdfdWlkID09IDApIHsKKwlpZiAoaG9zdG5hbWUpCisJICBzeXNsb2coTE9HX05PVElDRSwgXygiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIiksCisJCSB0dHlfbmFtZSwgaG9zdG5hbWUpOworCWVsc2UKKwkgIHN5c2xvZyhMT0dfTk9USUNFLCBfKCJST09UIExPR0lOIE9OICVzIiksIHR0eV9uYW1lKTsKKyAgICB9IGVsc2UgeworCWlmIChob3N0bmFtZSkKKwkgIHN5c2xvZyhMT0dfSU5GTywgXygiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIpLCB0dHlfbmFtZSwKKwkJIHB3ZC0+cHdfbmFtZSwgaG9zdG5hbWUpOworCWVsc2UKKwkgIHN5c2xvZyhMT0dfSU5GTywgXygiTE9HSU4gT04gJXMgQlkgJXMiKSwgdHR5X25hbWUsCisJCSBwd2QtPnB3X25hbWUpOworICAgIH0KKworICAgIGlmICghcXVpZXRsb2cpIHsKKwltb3RkKCk7CisKKyNpZmRlZiBMT0dJTl9TVEFUX01BSUwKKwkvKgorCSAqIFRoaXMgdHVybnMgb3V0IHRvIGJlIGEgYmFkIGlkZWE6IHdoZW4gdGhlIG1haWwgc3Bvb2wKKwkgKiBpcyBORlMgbW91bnRlZCwgYW5kIHRoZSBORlMgY29ubmVjdGlvbiBoYW5ncywgdGhlCisJICogbG9naW4gaGFuZ3MsIGV2ZW4gcm9vdCBjYW5ub3QgbG9naW4uCisJICogQ2hlY2tpbmcgZm9yIG1haWwgc2hvdWxkIGJlIGRvbmUgZnJvbSB0aGUgc2hlbGwuCisJICovCisJeworCSAgICBzdHJ1Y3Qgc3RhdCBzdDsKKwkgICAgY2hhciAqbWFpbDsKKworCSAgICBtYWlsID0gZ2V0ZW52KCJNQUlMIik7CisJICAgIGlmIChtYWlsICYmIHN0YXQobWFpbCwgJnN0KSA9PSAwICYmIHN0LnN0X3NpemUgIT0gMCkgeworCQlpZiAoc3Quc3RfbXRpbWUgPiBzdC5zdF9hdGltZSkKKwkJCXByaW50ZihfKCJZb3UgaGF2ZSBuZXcgbWFpbC5cbiIpKTsKKwkJZWxzZQorCQkJcHJpbnRmKF8oIllvdSBoYXZlIG1haWwuXG4iKSk7CisJICAgIH0KKwl9CisjZW5kaWYKKyAgICB9CisKKyAgICBzaWduYWwoU0lHQUxSTSwgU0lHX0RGTCk7CisgICAgc2lnbmFsKFNJR1FVSVQsIFNJR19ERkwpOworICAgIHNpZ25hbChTSUdUU1RQLCBTSUdfSUdOKTsKKworI2lmZGVmIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSAorCisgICAgbWVtc2V0KCZzYSwgMCwgc2l6ZW9mKHNhKSk7CisgICAgc2Euc2FfaGFuZGxlciA9IFNJR19JR047CisgICAgc2lnYWN0aW9uKFNJR0lOVCwgJnNhLCBOVUxMKTsKKworICAgIHNpZ2FjdGlvbihTSUdIVVAsICZzYSwgJm9sZHNhX2h1cCk7IC8qIGlnbm9yZSB3aGVuIFRJT0NOT1RUWSAqLworCisgICAgLyoKKyAgICAgKiBkZXRhY2ggdGhlIGNvbnRyb2xsaW5nIHR0eQorICAgICAqIC0tIHdlIG5lZWRuJ3QgdGhlIHR0eSBpbiBwYXJlbnQgd2hvIHdhaXRzIGZvciBjaGlsZCBvbmx5LgorICAgICAqICAgIFRoZSBjaGlsZCBjYWxscyBzZXRzaWQoKSB0aGF0IGRldGFjaCBmcm9tIHRoZSB0dHkgYXMgd2VsbC4KKyAgICAgKi8KKyAgICBpb2N0bCgwLCBUSU9DTk9UVFksIE5VTEwpOworCisgICAgLyoKKyAgICAgKiBXZSBoYXZlIGNhcmUgYWJvdXQgU0lHVEVSTSwgYmVjYXVzZSBsZWF2ZSBQQU0gc2Vzc2lvbiB3aXRob3V0CisgICAgICogcGFtX2Nsb3NlX3Nlc3Npb24oKSBpcyBwcmV0dHkgYmFkIHRoaW5nLgorICAgICAqLworICAgIHNhLnNhX2hhbmRsZXIgPSBzaWdfaGFuZGxlcjsKKyAgICBzaWdhY3Rpb24oU0lHSFVQLCAmc2EsIE5VTEwpOworICAgIHNpZ2FjdGlvbihTSUdURVJNLCAmc2EsICZvbGRzYV90ZXJtKTsKKworICAgIGNsb3NlbG9nKCk7CisKKyAgICAvKgorICAgICAqIFdlIG11c3QgZm9yayBiZWZvcmUgc2V0dWlkKCkgYmVjYXVzZSB3ZSBuZWVkIHRvIGNhbGwKKyAgICAgKiBwYW1fY2xvc2Vfc2Vzc2lvbigpIGFzIHJvb3QuCisgICAgICovCisKKyAgICBjaGlsZF9waWQgPSBmb3JrKCk7CisgICAgaWYgKGNoaWxkX3BpZCA8IDApIHsKKyAgICAgICBpbnQgZXJyc3YgPSBlcnJubzsKKyAgICAgICAvKiBlcnJvciBpbiBmb3JrKCkgKi8KKyAgICAgICBmcHJpbnRmKHN0ZGVyciwgXygibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiKSwgc3RyZXJyb3IoZXJyc3YpKTsKKyAgICAgICBQQU1fRU5EOworICAgICAgIGV4aXQoMCk7CisgICAgfQorCisgICAgaWYgKGNoaWxkX3BpZCkgeworICAgICAgIC8qIHBhcmVudCAtIHdhaXQgZm9yIGNoaWxkIHRvIGZpbmlzaCwgdGhlbiBjbGVhbnVwIHNlc3Npb24gKi8KKyAgICAgICBjbG9zZSgwKTsKKyAgICAgICBjbG9zZSgxKTsKKyAgICAgICBjbG9zZSgyKTsKKyAgICAgICBzYS5zYV9oYW5kbGVyID0gU0lHX0lHTjsKKyAgICAgICBzaWdhY3Rpb24oU0lHUVVJVCwgJnNhLCBOVUxMKTsKKyAgICAgICBzaWdhY3Rpb24oU0lHSU5ULCAmc2EsIE5VTEwpOworCisgICAgICAgLyogd2FpdCBhcyBsb25nIGFzIGFueSBjaGlsZCBpcyB0aGVyZSAqLworICAgICAgIHdoaWxlKHdhaXQoTlVMTCkgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpCisJICAgICAgIDsKKyAgICAgICBvcGVubG9nKCJsb2dpbiIsIExPR19PREVMQVksIExPR19BVVRIUFJJVik7CisgICAgICAgUEFNX0VORDsKKyAgICAgICBleGl0KDApOworICAgIH0KKworICAgIC8qIGNoaWxkICovCisKKyAgICAvKiByZXN0b3JlIHRvIG9sZCBzdGF0ZSAqLworICAgIHNpZ2FjdGlvbihTSUdIVVAsICZvbGRzYV9odXAsIE5VTEwpOworICAgIHNpZ2FjdGlvbihTSUdURVJNLCAmb2xkc2FfdGVybSwgTlVMTCk7CisgICAgaWYoZ290X3NpZykKKwkgICAgZXhpdCgxKTsKKworICAgIC8qCisgICAgICogUHJvYmxlbTogaWYgdGhlIHVzZXIncyBzaGVsbCBpcyBhIHNoZWxsIGxpa2UgYXNoIHRoYXQgZG9lc250IGRvCisgICAgICogc2V0c2lkKCkgb3Igc2V0cGdycCgpLCB0aGVuIGEgY3RybC1cLCBzZW5kaW5nIFNJR1FVSVQgdG8gZXZlcnkKKyAgICAgKiBwcm9jZXNzIGluIHRoZSBwZ3JwLCB3aWxsIGtpbGwgdXMuCisgICAgICovCisKKyAgICAvKiBzdGFydCBuZXcgc2Vzc2lvbiAqLworICAgIHNldHNpZCgpOworCisgICAgLyogbWFrZSBzdXJlIHdlIGhhdmUgYSBjb250cm9sbGluZyB0dHkgKi8KKyAgICBvcGVudHR5KHR0eW4pOworICAgIG9wZW5sb2coImxvZ2luIiwgTE9HX09ERUxBWSwgTE9HX0FVVEhQUklWKTsJLyogcmVvcGVuICovCisKKyAgICAvKgorICAgICAqIFRJT0NTQ1RUWTogc3RlYWwgdHR5IGZyb20gb3RoZXIgcHJvY2VzcyBncm91cC4KKyAgICAgKi8KKyAgICBpZiAoaW9jdGwoMCwgVElPQ1NDVFRZLCAxKSkKKwkgICAgc3lzbG9nKExPR19FUlIsIF8oIlRJT0NTQ1RUWSBmYWlsZWQ6ICVtIikpOworI2VuZGlmCisgICAgc2lnbmFsKFNJR0lOVCwgU0lHX0RGTCk7CisKKyAgICAvKiBkaXNjYXJkIHBlcm1pc3Npb25zIGxhc3Qgc28gY2FuJ3QgZ2V0IGtpbGxlZCBhbmQgZHJvcCBjb3JlICovCisgICAgaWYoc2V0dWlkKHB3ZC0+cHdfdWlkKSA8IDAgJiYgcHdkLT5wd191aWQpIHsKKwlzeXNsb2coTE9HX0FMRVJULCBfKCJzZXR1aWQoKSBmYWlsZWQiKSk7CisJZXhpdCgxKTsKKyAgICB9CisKKyAgICAvKiB3YWl0IHVudGlsIGhlcmUgdG8gY2hhbmdlIGRpcmVjdG9yeSEgKi8KKyAgICBpZiAoY2hkaXIocHdkLT5wd19kaXIpIDwgMCkgeworCXByaW50ZihfKCJObyBkaXJlY3RvcnkgJXMhXG4iKSwgcHdkLT5wd19kaXIpOworCWlmIChjaGRpcigiLyIpKQorCSAgZXhpdCgwKTsKKwlwd2QtPnB3X2RpciA9ICIvIjsKKwlwcmludGYoXygiTG9nZ2luZyBpbiB3aXRoIGhvbWUgPSBcIi9cIi5cbiIpKTsKKyAgICB9CisKKyAgICAvKiBpZiB0aGUgc2hlbGwgZmllbGQgaGFzIGEgc3BhY2U6IHRyZWF0IGl0IGxpa2UgYSBzaGVsbCBzY3JpcHQgKi8KKyAgICBpZiAoc3RyY2hyKHB3ZC0+cHdfc2hlbGwsICcgJykpIHsKKwlidWZmID0gbWFsbG9jKHN0cmxlbihwd2QtPnB3X3NoZWxsKSArIDYpOworCisJaWYgKCFidWZmKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCBfKCJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iKSk7CisJICAgIGV4aXQoMCk7CisJfQorCisJc3RyY3B5KGJ1ZmYsICJleGVjICIpOworCXN0cmNhdChidWZmLCBwd2QtPnB3X3NoZWxsKTsKKwljaGlsZEFyZ3ZbY2hpbGRBcmdjKytdID0gIi9iaW4vc2giOworCWNoaWxkQXJndltjaGlsZEFyZ2MrK10gPSAiLXNoIjsKKwljaGlsZEFyZ3ZbY2hpbGRBcmdjKytdID0gIi1jIjsKKwljaGlsZEFyZ3ZbY2hpbGRBcmdjKytdID0gYnVmZjsKKyAgICB9IGVsc2UgeworCXRidWZbMF0gPSAnLSc7CisJeHN0cm5jcHkodGJ1ZiArIDEsICgocCA9IHN0cnJjaHIocHdkLT5wd19zaGVsbCwgJy8nKSkgPworCQkJICAgcCArIDEgOiBwd2QtPnB3X3NoZWxsKSwKKwkJc2l6ZW9mKHRidWYpLTEpOworCisJY2hpbGRBcmd2W2NoaWxkQXJnYysrXSA9IHB3ZC0+cHdfc2hlbGw7CisJY2hpbGRBcmd2W2NoaWxkQXJnYysrXSA9IHRidWY7CisgICAgfQorCisgICAgY2hpbGRBcmd2W2NoaWxkQXJnYysrXSA9IE5VTEw7CisKKyAgICBleGVjdnAoY2hpbGRBcmd2WzBdLCBjaGlsZEFyZ3YgKyAxKTsKKworICAgIGVycnN2ID0gZXJybm87CisKKyAgICBpZiAoIXN0cmNtcChjaGlsZEFyZ3ZbMF0sICIvYmluL3NoIikpCisJZnByaW50ZihzdGRlcnIsIF8oImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iKSwKKwkJc3RyZXJyb3IoZXJyc3YpKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRlcnIsIF8oImxvZ2luOiBubyBzaGVsbDogJXMuXG4iKSwgc3RyZXJyb3IoZXJyc3YpKTsKKworICAgIGV4aXQoMCk7Cit9CisKKyNpZm5kZWYgSEFWRV9TRUNVUklUWV9QQU1fTUlTQ19ICitzdGF0aWMgdm9pZAorZ2V0bG9naW5uYW1lKHZvaWQpIHsKKyAgICBpbnQgY2gsIGNudCwgY250MjsKKyAgICBjaGFyICpwOworICAgIHN0YXRpYyBjaGFyIG5idWZbVVRfTkFNRVNJWkUgKyAxXTsKKworICAgIGNudDIgPSAwOworICAgIGZvciAoOzspIHsKKwljbnQgPSAwOworCXByaW50ZihfKCJcbiVzIGxvZ2luOiAiKSwgdGhpc2hvc3QpOyBmZmx1c2goc3Rkb3V0KTsKKwlmb3IgKHAgPSBuYnVmOyAoY2ggPSBnZXRjaGFyKCkpICE9ICdcbic7ICkgeworCSAgICBpZiAoY2ggPT0gRU9GKSB7CisJCWJhZGxvZ2luKCJFT0YiKTsKKwkJZXhpdCgwKTsKKwkgICAgfQorCSAgICBpZiAocCA8IG5idWYgKyBVVF9OQU1FU0laRSkKKwkgICAgICAqcCsrID0gY2g7CisKKwkgICAgY250Kys7CisJICAgIGlmIChjbnQgPiBVVF9OQU1FU0laRSArIDIwKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCJsb2dpbiBuYW1lIG11Y2ggdG9vIGxvbmcuXG4iKSk7CisJCWJhZGxvZ2luKF8oIk5BTUUgdG9vIGxvbmciKSk7CisJCWV4aXQoMCk7CisJICAgIH0KKwl9CisJaWYgKHAgPiBuYnVmKSB7CisJICBpZiAobmJ1ZlswXSA9PSAnLScpCisJICAgIGZwcmludGYoc3RkZXJyLAorCQkgICAgXygibG9naW4gbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoICctJy5cbiIpKTsKKwkgIGVsc2UgeworCSAgICAgICpwID0gJ1wwJzsKKwkgICAgICB1c2VybmFtZSA9IG5idWY7CisJICAgICAgYnJlYWs7CisJICB9CisJfQorCisJY250MisrOworCWlmIChjbnQyID4gNTApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsIF8oInRvbyBtYW55IGJhcmUgbGluZWZlZWRzLlxuIikpOworCSAgICBiYWRsb2dpbihfKCJFWENFU1NJVkUgbGluZWZlZWRzIikpOworCSAgICBleGl0KDApOworCX0KKyAgICB9Cit9CisjZW5kaWYKKworLyoKKyAqIFJvYmVydCBBbWJyb3NlIHdyaXRlczoKKyAqIEEgY291cGxlIG9mIG15IHVzZXJzIGhhdmUgYSBwcm9ibGVtIHdpdGggbG9naW4gcHJvY2Vzc2VzIGhhbmdpbmcgYXJvdW5kCisgKiBzb2FraW5nIHVwIHB0cydzLiAgV2hhdCB0aGV5IHNlZW0gdG8gaHVuZyB1cCBvbiBpcyB0cnlpbmcgdG8gd3JpdGUgb3V0IHRoZQorICogbWVzc2FnZSAnTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHMnIHdoZW4gdGhlIGNvbm5lY3Rpb24gaGFzIGFscmVhZHkKKyAqIGJlZW4gZHJvcHBlZC4KKyAqIFdoYXQgSSBkaWQgd2FzIGFkZCBhIHNlY29uZCB0aW1lb3V0IHdoaWxlIHRyeWluZyB0byB3cml0ZSB0aGUgbWVzc2FnZSBzbworICogdGhlIHByb2Nlc3MganVzdCBleGl0cyBpZiB0aGUgc2Vjb25kIHRpbWVvdXQgZXhwaXJlcy4KKyAqLworCitzdGF0aWMgdm9pZAordGltZWRvdXQyKGludCBzaWcpIHsKKwlzdHJ1Y3QgdGVybWlvcyB0aTsKKworCS8qIHJlc2V0IGVjaG8gKi8KKwl0Y2dldGF0dHIoMCwgJnRpKTsKKwl0aS5jX2xmbGFnIHw9IEVDSE87CisJdGNzZXRhdHRyKDAsIFRDU0FOT1csICZ0aSk7CisJZXhpdCgwKTsJCQkvKiAlJSAqLworfQorCitzdGF0aWMgdm9pZAordGltZWRvdXQoaW50IHNpZykgeworCXNpZ25hbChTSUdBTFJNLCB0aW1lZG91dDIpOworCWFsYXJtKDEwKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIpLCB0aW1lb3V0KTsKKwlzaWduYWwoU0lHQUxSTSwgU0lHX0lHTik7CisJYWxhcm0oMCk7CisJdGltZWRvdXQyKDApOworfQorCisjaWZuZGVmIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSAoraW50Cityb290dGVybShjaGFyICogdHR5bikKK3sKKyAgICBpbnQgZmQ7CisgICAgY2hhciBidWZbMTAwXSwqcDsKKyAgICBpbnQgY250LCBtb3JlID0gMDsKKworICAgIGZkID0gb3BlbihfUEFUSF9TRUNVUkVUVFksIE9fUkRPTkxZKTsKKyAgICBpZihmZCA8IDApIHJldHVybiAxOworCisgICAgLyogcmVhZCBlYWNoIGxpbmUgaW4gL2V0Yy9zZWN1cmV0dHksIGlmIGEgbGluZSBtYXRjaGVzIG91ciB0dHlsaW5lCisgICAgICAgdGhlbiByb290IGlzIGFsbG93ZWQgdG8gbG9naW4gb24gdGhpcyB0dHksIGFuZCB3ZSBzaG91bGQgcmV0dXJuCisgICAgICAgdHJ1ZS4gKi8KKyAgICBmb3IoOzspIHsKKwlwID0gYnVmOyBjbnQgPSAxMDA7CisJd2hpbGUoLS1jbnQgPj0gMCAmJiAobW9yZSA9IHJlYWQoZmQsIHAsIDEpKSA9PSAxICYmICpwICE9ICdcbicpIHArKzsKKwlpZihtb3JlICYmICpwID09ICdcbicpIHsKKwkgICAgKnAgPSAnXDAnOworCSAgICBpZighc3RyY21wKGJ1ZiwgdHR5bikpIHsKKwkJY2xvc2UoZmQpOworCQlyZXR1cm4gMTsKKwkgICAgfSBlbHNlCisJICAgICAgY29udGludWU7CisgIAl9IGVsc2UgeworCSAgICBjbG9zZShmZCk7CisJICAgIHJldHVybiAwOworICAJfQorICAgIH0KK30KKyNlbmRpZiAvKiAhSEFWRV9TRUNVUklUWV9QQU1fTUlTQ19IICovCisKK2ptcF9idWYgbW90ZGludGVycnVwdDsKKwordm9pZAorbW90ZCh2b2lkKSB7CisgICAgaW50IGZkLCBuY2hhcnM7CisgICAgdm9pZCAoKm9sZGludCkoaW50KTsKKyAgICBjaGFyIHRidWZbODE5Ml07CisKKyAgICBpZiAoKGZkID0gb3BlbihfUEFUSF9NT1RERklMRSwgT19SRE9OTFksIDApKSA8IDApCisgICAgICByZXR1cm47CisgICAgb2xkaW50ID0gc2lnbmFsKFNJR0lOVCwgc2lnaW50KTsKKyAgICBpZiAoc2V0am1wKG1vdGRpbnRlcnJ1cHQpID09IDApCisgICAgICB3aGlsZSAoKG5jaGFycyA9IHJlYWQoZmQsIHRidWYsIHNpemVvZih0YnVmKSkpID4gMCkKKwl3cml0ZShmaWxlbm8oc3Rkb3V0KSwgdGJ1ZiwgbmNoYXJzKTsKKyAgICBzaWduYWwoU0lHSU5ULCBvbGRpbnQpOworICAgIGNsb3NlKGZkKTsKK30KKwordm9pZAorc2lnaW50KGludCBzaWcpIHsKKyAgICBsb25nam1wKG1vdGRpbnRlcnJ1cHQsIDEpOworfQorCisjaWZuZGVmIEhBVkVfU0VDVVJJVFlfUEFNX01JU0NfSAkJCS8qIFBBTSB0YWtlcyBjYXJlIG9mIHRoaXMgKi8KK3ZvaWQKK2NoZWNrbm9sb2dpbih2b2lkKSB7CisgICAgaW50IGZkLCBuY2hhcnM7CisgICAgY2hhciB0YnVmWzgxOTJdOworCisgICAgaWYgKChmZCA9IG9wZW4oX1BBVEhfTk9MT0dJTiwgT19SRE9OTFksIDApKSA+PSAwKSB7CisJd2hpbGUgKChuY2hhcnMgPSByZWFkKGZkLCB0YnVmLCBzaXplb2YodGJ1ZikpKSA+IDApCisJICB3cml0ZShmaWxlbm8oc3Rkb3V0KSwgdGJ1ZiwgbmNoYXJzKTsKKwljbG9zZShmZCk7CisJc2xlZXBleGl0KDApOworICAgIH0KK30KKyNlbmRpZgorCit2b2lkCitkb2xhc3Rsb2coaW50IHF1aWV0KSB7CisgICAgc3RydWN0IGxhc3Rsb2cgbGw7CisgICAgaW50IGZkOworCisgICAgaWYgKChmZCA9IG9wZW4oX1BBVEhfTEFTVExPRywgT19SRFdSLCAwKSkgPj0gMCkgeworCWxzZWVrKGZkLCAob2ZmX3QpcHdkLT5wd191aWQgKiBzaXplb2YobGwpLCBTRUVLX1NFVCk7CisJaWYgKCFxdWlldCkgeworCSAgICBpZiAocmVhZChmZCwgKGNoYXIgKikmbGwsIHNpemVvZihsbCkpID09IHNpemVvZihsbCkgJiYKKwkJbGwubGxfdGltZSAhPSAwKSB7CisJCSAgICB0aW1lX3QgbGxfdGltZSA9ICh0aW1lX3QpIGxsLmxsX3RpbWU7CisKKwkJICAgIHByaW50ZihfKCJMYXN0IGxvZ2luOiAlLipzICIpLAorCQkJICAgMjQtNSwgY3RpbWUoJmxsX3RpbWUpKTsKKworCQkgICAgaWYgKCpsbC5sbF9ob3N0ICE9ICdcMCcpCisJCQkgICAgcHJpbnRmKF8oImZyb20gJS4qc1xuIiksCisJCQkJICAgKGludClzaXplb2YobGwubGxfaG9zdCksIGxsLmxsX2hvc3QpOworCQkgICAgZWxzZQorCQkJICAgIHByaW50ZihfKCJvbiAlLipzXG4iKSwKKwkJCQkgICAoaW50KXNpemVvZihsbC5sbF9saW5lKSwgbGwubGxfbGluZSk7CisJICAgIH0KKwkgICAgbHNlZWsoZmQsIChvZmZfdClwd2QtPnB3X3VpZCAqIHNpemVvZihsbCksIFNFRUtfU0VUKTsKKwl9CisJbWVtc2V0KChjaGFyICopJmxsLCAwLCBzaXplb2YobGwpKTsKKworCXsKKwkJdGltZV90IHQ7CisJCXRpbWUoJnQpOworCQlsbC5sbF90aW1lID0gdDsgLyogbGxfdGltZSBpcyBhbHdheXMgMzJiaXQgKi8KKwl9CisKKwl4c3RybmNweShsbC5sbF9saW5lLCB0dHlfbmFtZSwgc2l6ZW9mKGxsLmxsX2xpbmUpKTsKKwlpZiAoaG9zdG5hbWUpCisJICAgIHhzdHJuY3B5KGxsLmxsX2hvc3QsIGhvc3RuYW1lLCBzaXplb2YobGwubGxfaG9zdCkpOworCisJd3JpdGUoZmQsIChjaGFyICopJmxsLCBzaXplb2YobGwpKTsKKwljbG9zZShmZCk7CisgICAgfQorfQorCit2b2lkCitiYWRsb2dpbihjb25zdCBjaGFyICpuYW1lKSB7CisgICAgaWYgKGZhaWx1cmVzID09IDEpIHsKKwlpZiAoaG9zdG5hbWUpCisJICBzeXNsb2coTE9HX05PVElDRSwgXygiTE9HSU4gRkFJTFVSRSBGUk9NICVzLCAlcyIpLAorCQkgaG9zdG5hbWUsIG5hbWUpOworCWVsc2UKKwkgIHN5c2xvZyhMT0dfTk9USUNFLCBfKCJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIpLAorCQkgdHR5X25hbWUsIG5hbWUpOworICAgIH0gZWxzZSB7CisJaWYgKGhvc3RuYW1lKQorCSAgc3lzbG9nKExPR19OT1RJQ0UsIF8oIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIiksCisJCSBmYWlsdXJlcywgaG9zdG5hbWUsIG5hbWUpOworCWVsc2UKKwkgIHN5c2xvZyhMT0dfTk9USUNFLCBfKCIlZCBMT0dJTiBGQUlMVVJFUyBPTiAlcywgJXMiKSwKKwkJIGZhaWx1cmVzLCB0dHlfbmFtZSwgbmFtZSk7CisgICAgfQorfQorCisvKiBTaG91bGQgbm90IGJlIGNhbGxlZCBmcm9tIFBBTSBjb2RlLi4uICovCit2b2lkCitzbGVlcGV4aXQoaW50IGV2YWwpIHsKKyAgICBzbGVlcChTTEVFUF9FWElUX1RJTUVPVVQpOworICAgIGV4aXQoZXZhbCk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9sb2dpbi5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbG9naW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmI5NGI5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbG9naW4uaApAQCAtMCwwICsxLDkgQEAKKy8qIGRlZmluZWQgaW4gbG9naW4uYyAqLworZXh0ZXJuIHZvaWQgYmFkbG9naW4oY29uc3QgY2hhciAqcyk7CitleHRlcm4gdm9pZCBzbGVlcGV4aXQoaW50KTsKK2V4dGVybiBjaGFyIGhvc3RhZGRyZXNzWzE2XTsKK2V4dGVybiBjaGFyICpob3N0bmFtZTsKK2V4dGVybiBzYV9mYW1pbHlfdCBob3N0ZmFtaWx5OworCisvKiBkZWZpbmVkIGluIGNoZWNrdHR5LmMgKi8KK2V4dGVybiB2b2lkIGNoZWNrdHR5KGNvbnN0IGNoYXIgKnVzZXIsIGNvbnN0IGNoYXIgKnR0eSwgc3RydWN0IHBhc3N3ZCAqcHdkKTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL21lc2cuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL21lc2cuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGI1NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbWVzZy4xCkBAIC0wLDAgKzEsMTAzIEBACisuXCIgQ29weXJpZ2h0IChjKSAxOTg3LCAxOTkwLCAxOTkzCisuXCIJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisuXCIKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisuXCIgICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorLlwiCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKy5cIglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKy5cIiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorLlwiICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKy5cIiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy5cIiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorLlwiIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorLlwiIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisuXCIgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKy5cIiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKy5cIiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLlwiIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKy5cIiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisuXCIgU1VDSCBEQU1BR0UuCisuXCIKKy5cIglAKCMpbWVzZy4xCTguMSAoQmVya2VsZXkpIDYvNi85MworLlwiCisuXCIgRnJpIE1hciAxMCAyMDozMTowMiAxOTk1LCBtb2RpZmllZCBmb3Igc3RhbmRhcmQgbWFuIG1hY3JvcywKKy5cIiBmYWl0aEBjcy51bmMuZWR1CisuXCIKKy5cIgorLlwiICIKKy5USCBNRVNHIDEgIjEwIE1hcmNoIDE5OTUiICJMaW51eCAxLjIiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK21lc2cgXC0gZGlzcGxheSAoZG8gbm90IGRpc3BsYXkpIG1lc3NhZ2VzIGZyb20gb3RoZXIgdXNlcnMKKy5TSCBTWU5PUFNJUworLkIgbWVzZworLlJCIFsgbiB8IHkgXQorLlNIIERFU0NSSVBUSU9OCitUaGUKKy5CIG1lc2cKK3V0aWxpdHkgaXMgaW52b2tlZCBieSBhIHVzZXJzIHRvIGNvbnRyb2wgd3JpdGUgYWNjZXNzIG90aGVycyBoYXZlIHRvIHRoZQordGVybWluYWwgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RhbmRhcmQgZXJyb3Igb3V0cHV0LiAgSWYgd3JpdGUgYWNjZXNzCitpcyBhbGxvd2VkLCB0aGVuIHByb2dyYW1zIHN1Y2ggYXMKKy5CUiB0YWxrICgxKQorYW5kCisuQlIgd3JpdGUgKDEpCittYXkgZGlzcGxheSBtZXNzYWdlcyBvbiB0aGUgdGVybWluYWwuCisuUFAKK1RyYWRpdGlvbmFsbHksIHdyaXRlIGFjY2VzcyBpcyBhbGxvd2VkIGJ5IGRlZmF1bHQuICBIb3dldmVyLCBhcyB1c2VycworYmVjb21lIG1vcmUgY29uc2Npb3VzIG9mIHZhcmlvdXMgc2VjdXJpdHkgcmlza3MsIHRoZXJlIGlzIGEgdHJlbmQgdG8gcmVtb3ZlCit3cml0ZSBhY2Nlc3MgYnkgZGVmYXVsdCwgYXQgbGVhc3QgZm9yIHRoZSBwcmltYXJ5IGxvZ2luIHNoZWxsLiAgVG8gbWFrZQorc3VyZSB5b3VyIHR0eXMgYXJlIHNldCB0aGUgd2F5IHlvdSB3YW50IHRoZW0gdG8gYmUgc2V0LAorLkIgbWVzZworc2hvdWxkIGJlIGV4ZWN1dGVkIGluIHlvdXIgbG9naW4gc2NyaXB0cy4KKy5QUAorT3B0aW9ucyBhdmFpbGFibGU6CisuVFAKKy5CIG4KK0Rpc2FsbG93cyBtZXNzYWdlcy4KKy5UUAorLkIgeQorUGVybWl0cyBtZXNzYWdlcyB0byBiZSBkaXNwbGF5ZWQuCisuUFAKK0lmIG5vIGFyZ3VtZW50cyBhcmUgZ2l2ZW4sCisuQiBtZXNnCitkaXNwbGF5cyB0aGUgcHJlc2VudCBtZXNzYWdlIHN0YXR1cyB0byB0aGUgc3RhbmRhcmQgZXJyb3Igb3V0cHV0LgorLlBQCitUaGUKKy5CIG1lc2cKK3V0aWxpdHkgZXhpdHMgd2l0aCBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisuVFAKKy5JICJcIDAiCitNZXNzYWdlcyBhcmUgYWxsb3dlZC4KKy5UUAorLkkgIlwgMSIKK01lc3NhZ2VzIGFyZSBub3QgYWxsb3dlZC4KKy5UUAorLkkgIlw+MSIKK0FuIGVycm9yIGhhcyBvY2N1cnJlZC4KKy5TSCBGSUxFUworLkkgL2Rldi9bcHRddHlbcHFdPworLlNIICJTRUUgQUxTTyIKKy5CUiBiaWZmICgxKSwKKy5CUiB0YWxrICgxKSwKKy5CUiB3cml0ZSAoMSksCisuQlIgd2FsbCAoMSksCisuQlIgbG9naW4gKDEpLAorLkJSIHh0ZXJtICgxKQorLlNIIEhJU1RPUlkKK0EKKy5CIG1lc2cKK2NvbW1hbmQgYXBwZWFyZWQgaW4gVmVyc2lvbiA2IEFUJlQgVU5JWC4KKworLlNIIEFWQUlMQUJJTElUWQorVGhlIG1lc2cgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9tZXNnLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9tZXNnLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAwMTViZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL21lc2cuYwpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk4NywgMTk5MworICoJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAoYykgVU5JWCBTeXN0ZW0gTGFib3JhdG9yaWVzLCBJbmMuCisgKiBBbGwgb3Igc29tZSBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlIGRlcml2ZWQgZnJvbSBtYXRlcmlhbCBsaWNlbnNlZAorICogdG8gdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSBieSBBbWVyaWNhbiBUZWxlcGhvbmUgYW5kIFRlbGVncmFwaAorICogQ28uIG9yIFVuaXggU3lzdGVtIExhYm9yYXRvcmllcywgSW5jLiBhbmQgYXJlIHJlcHJvZHVjZWQgaGVyZWluIHdpdGgKKyAqIHRoZSBwZXJtaXNzaW9uIG9mIFVOSVggU3lzdGVtIExhYm9yYXRvcmllcywgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogTW9kaWZpZWQgRnJpIE1hciAxMCAyMDoyNzoxOSAxOTk1LCBmYWl0aEBjcy51bmMuZWR1LCBmb3IgTGludXgKKyAqIE1vZGlmaWVkIE1vbiBKdWwgIDEgMTg6MTQ6MTAgMTk5NiwgamFubEBpZmkudWlvLm5vLCB3cml0aW5nIHRvIHN0ZG91dAorICoJYXMgc3VnZ2VzdGVkIGJ5IE1pY2hhZWwgTWVza2VzIDxtZXNrZXNASW5mb3JtYXRpay5SV1RILUFhY2hlbi5ERT4KKyAqCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqCisgKiAKKyAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxlcnIuaD4KKyNpbmNsdWRlICJubHMuaCIKKworaW50CittYWluKGFyZ2MsIGFyZ3YpCisJaW50IGFyZ2M7CisJY2hhciAqYXJndltdOworeworCXN0cnVjdCBzdGF0IHNiOworCWNoYXIgKnR0eTsKKwlpbnQgY2g7CisKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisKKwl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICIiKSkgIT0gLTEpCisJCXN3aXRjaCAoY2gpIHsKKwkJY2FzZSAnPyc6CisJCWRlZmF1bHQ6CisJCQlnb3RvIHVzYWdlOworCQl9CisJYXJnYyAtPSBvcHRpbmQ7CisJYXJndiArPSBvcHRpbmQ7CisKKwlpZiAoKHR0eSA9IHR0eW5hbWUoU1RERVJSX0ZJTEVOTykpID09IE5VTEwpCisJCWVycigxLCAidHR5bmFtZSIpOworCWlmIChzdGF0KHR0eSwgJnNiKSA8IDApCisJCWVycigxLCAiJXMiLCB0dHkpOworCisJaWYgKCphcmd2ID09IE5VTEwpIHsKKwkJaWYgKHNiLnN0X21vZGUgJiAoU19JV0dSUCB8IFNfSVdPVEgpKSB7CisJCQkodm9pZClmcHJpbnRmKHN0ZG91dCwgXygiaXMgeVxuIikpOworCQkJZXhpdCgwKTsKKwkJfQorCQkodm9pZClmcHJpbnRmKHN0ZG91dCwgXygiaXMgblxuIikpOworCQlleGl0KDEpOworCX0KKworCXN3aXRjaCAoKmFyZ3ZbMF0pIHsKKwljYXNlICd5JzoKKyNpZmRlZiBVU0VfVFRZX0dST1VQCisJCWlmIChjaG1vZCh0dHksIHNiLnN0X21vZGUgfCBTX0lXR1JQKSA8IDApCisJCQllcnIoMSwgIiVzIiwgdHR5KTsKKyNlbHNlCisJCWlmIChjaG1vZCh0dHksIHNiLnN0X21vZGUgfCBTX0lXR1JQIHwgU19JV09USCkgPCAwKQorCQkJZXJyKDEsICIlcyIsIHR0eSk7CisjZW5kaWYKKwkJZXhpdCgwKTsKKwljYXNlICduJzoKKwkJaWYgKGNobW9kKHR0eSwgc2Iuc3RfbW9kZSAmIH4oU19JV0dSUHxTX0lXT1RIKSkgPCAwKQorCQkJZXJyKDEsICIlcyIsIHR0eSk7CisJCWV4aXQoMSk7CisJfQorCit1c2FnZToJKHZvaWQpZnByaW50ZihzdGRlcnIsIF8oInVzYWdlOiBtZXNnIFt5IHwgbl1cbiIpKTsKKwlleGl0KDIpOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbXlfY3J5cHQuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL215X2NyeXB0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZiMWE2NgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL215X2NyeXB0LmgKQEAgLTAsMCArMSwzIEBACisjaWYgZGVmaW5lZCAoX19HTlVfTElCUkFSWV9fKSAmJiBfX0dOVV9MSUJSQVJZX18gPiAxCisjaW5jbHVkZSA8Y3J5cHQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbmV3Z3JwLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9uZXdncnAuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWRlMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbmV3Z3JwLjEKQEAgLTAsMCArMSwzNCBAQAorLlwiIE9yaWdpbmFsIGF1dGhvciB1bmtub3duLiAgVGhpcyBtYW4gcGFnZSBpcyBpbiB0aGUgcHVibGljIGRvbWFpbi4KKy5cIiBNb2RpZmllZCBTYXQgT2N0ICA5IDE3OjQ2OjQ4IDE5OTMgYnkgZmFpdGhAY3MudW5jLmVkdQorLlRIIE5FV0dSUCAxICI5IE9jdG9iZXIgMTk5MyIgIkxpbnV4IDEuMiIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorbmV3Z3JwIFwtIGxvZyBpbiB0byBhIG5ldyBncm91cAorLlNIIFNZTk9QU0lTCisuQiBuZXdncnAKKy5SSSBbIGdyb3VwIF0KKy5TSCBERVNDUklQVElPTgorLkIgTmV3Z3JwCitjaGFuZ2VzIHRoZSBncm91cCBpZGVudGlmaWNhdGlvbiBvZiBpdHMgY2FsbGVyLCBhbmFsb2dvdXNseSB0bworLkJSIGxvZ2luICgxKS4KK1RoZSBzYW1lIHBlcnNvbiByZW1haW5zIGxvZ2dlZCBpbiwgYW5kIHRoZSBjdXJyZW50IGRpcmVjdG9yeQoraXMgdW5jaGFuZ2VkLCBidXQgY2FsY3VsYXRpb25zIG9mIGFjY2VzcyBwZXJtaXNzaW9ucyB0byBmaWxlcyBhcmUgcGVyZm9ybWVkCit3aXRoIHJlc3BlY3QgdG8gdGhlIG5ldyBncm91cCBJRC4KKy5MUAorSWYgbm8gZ3JvdXAgaXMgc3BlY2lmaWVkLCB0aGUgR0lEIGlzIGNoYW5nZWQgdG8gdGhlIGxvZ2luIEdJRC4KKy5MUAorLlNIIEZJTEVTCisuSSAvZXRjL2dyb3VwCisuYnIKKy5JIC9ldGMvcGFzc3dkCisKKy5TSCAiU0VFIEFMU08iCisuQlIgbG9naW4gKDEpLAorLkJSIGdyb3VwICg1KQorCisuU0ggQVVUSE9SCitPcmlnaW5hbGx5IGJ5IE1pY2hhZWwgSGFhcmR0LiBDdXJyZW50bHkgbWFpbnRhaW5lZCBieQorUGV0ZXIgT3JiYWVrIChwb2VAZGFpbWkuYWF1LmRrKS4KKworLlNIIEFWQUlMQUJJTElUWQorVGhlIG5ld2dycCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL25ld2dycC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvbmV3Z3JwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc2YTA0OQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL25ld2dycC5jCkBAIC0wLDAgKzEsMTQxIEBACisvKiBzZXRncnAuYyAtIGJ5IE1pY2hhZWwgSGFhcmR0LiBTZXQgdGhlIGdpZCBpZiBwb3NzaWJsZSAqLworLyogQWRkZWQgYSBiaXQgbW9yZSBlcnJvciByZWNvdmVyeS9yZXBvcnRpbmcgLSBwb2UgKi8KKy8qIFZlc2EgUm91a29uZW4gYWRkZWQgY29kZSBmb3IgYXNraW5nIHBhc3N3b3JkICovCisvKiBDdXJyZW50bHkgbWFpbnRhaW5lZCBhdCBmdHA6Ly9mdHAuZGFpbWkuYWF1LmRrL3B1Yi9saW51eC9wb2UvICovCisKKy8qIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICovCisKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxwd2QuaD4KKyNpbmNsdWRlIDxncnAuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpbmNsdWRlICJjLmgiCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAibXlfY3J5cHQuaCIKKyNpbmNsdWRlICJubHMuaCIKKworLyogdHJ5IHRvIHJlYWQgcGFzc3dvcmQgZnJvbSBnc2hhZG93ICovCitzdGF0aWMgY2hhciAqCitnZXRfZ3NoYWRvd19wd2QoY2hhciAqZ3JvdXBuYW1lKQoreworCWNoYXIgYnVmW0JVRlNJWl07CisJY2hhciAqcHdkID0gTlVMTDsKKwlGSUxFICpmID0gZm9wZW4oX1BBVEhfR1NIQURPVywgInIiKTsKKworCWlmIChncm91cG5hbWUgPT0gTlVMTCB8fCAqZ3JvdXBuYW1lID09ICdcMCcgfHwgZiA9PSBOVUxMKQorCQlyZXR1cm4gTlVMTDsKKworCXdoaWxlKGZnZXRzKGJ1Ziwgc2l6ZW9mIGJ1ZiwgZikpCisJeworCQljaGFyICpjcCA9IHN0cmNociAoYnVmLCAnOicpOworCQlpZiAoIWNwKQorCQkJY29udGludWU7CQkJCS8qIGFueSBqdW5rIGluIGdzaGFkb3c/ICovCisJCSpjcCA9ICdcMCc7CisJCWlmIChzdHJjbXAoYnVmLCBncm91cG5hbWUpID09IDApCisJCXsKKwkJCWlmIChjcC1idWYgPj0gQlVGU0laKQorCQkJCWJyZWFrOwkJCQkvKiBvbmx5IGdyb3VwIG5hbWUgb24gbGluZSAqLworCQkJcHdkID0gY3ArMTsKKwkJCWlmICgoY3AgPSBzdHJjaHIocHdkLCAnOicpKSAmJiBwd2QgPT0gY3ArMSApCisJCQkJcHdkID0gTlVMTDsJCQkvKiBlbXB0eSBwYXNzd29yZCAqLworCQkJZWxzZSBpZiAoY3ApCisJCQkJKmNwID0gJ1wwJzsKKwkJCWJyZWFrOworCQl9CisJfQorCWZjbG9zZShmKTsKKwlyZXR1cm4gcHdkID8gc3RyZHVwKHB3ZCkgOiBOVUxMOworfQorCitzdGF0aWMgaW50CithbGxvd19zZXRnaWQoc3RydWN0IHBhc3N3ZCAqcGUsIHN0cnVjdCBncm91cCAqZ2UpIAoreworICAgIGNoYXIgKipsb29rOworICAgIGludCBub3Rmb3VuZCA9IDE7CisgICAgY2hhciAqcHdkLCAqeHB3ZDsKKworICAgIGlmIChnZXR1aWQoKSA9PSAwKSByZXR1cm4gVFJVRTsJLyogcm9vdCBtYXkgZG8gYW55dGhpbmcgKi8KKyAgICBpZiAoZ2UtPmdyX2dpZCA9PSBwZS0+cHdfZ2lkKSByZXR1cm4gVFJVRTsgLyogWW91IGNhbiBzd2l0Y2ggYmFjayB0byB5b3VyIGRlZmF1bHQgZ3JvdXAgKi8KKworICAgIGxvb2sgPSBnZS0+Z3JfbWVtOworICAgIHdoaWxlICgqbG9vayAmJiAobm90Zm91bmQgPSBzdHJjbXAoKmxvb2srKyxwZS0+cHdfbmFtZSkpKTsKKworICAgIGlmKCFub3Rmb3VuZCkgcmV0dXJuIFRSVUU7CQkvKiBtZW1iZXIgb2YgZ3JvdXAgPT4gT0sgKi8KKworICAgIC8qIEFzayBmb3IgcGFzc3dvcmQuIE9mdGVuIHRoZXJlIGlzIG5vIHBhc3N3b3JkIGluIC9ldGMvZ3JvdXAsIHNvCisgICAgICAgY29udHJhcnkgdG8gbG9naW4gZXQgYWwuIHdlIGxldCBhbiBlbXB0eSBwYXNzd29yZCBtZWFuIHRoZSBzYW1lCisgICAgICAgYXMgKiBpbiAvZXRjL3Bhc3N3ZCAqLworCisgICAgLyogY2hlY2sgL2V0Yy9nc2hhZG93ICovCisgICAgaWYgKCEocHdkID0gZ2V0X2dzaGFkb3dfcHdkKGdlLT5ncl9uYW1lKSkpCisgICAgICAgIHB3ZCA9IGdlLT5ncl9wYXNzd2Q7CisKKyAgICBpZihwd2QgJiYgKnB3ZCAmJiAoeHB3ZCA9IGdldHBhc3MoXygiUGFzc3dvcmQ6ICIpKSkpIHsKKyAgICAgICAgaWYoc3RyY21wKHB3ZCwgY3J5cHQoeHB3ZCwgcHdkKSkgPT0gMCkKKwkgICByZXR1cm4gVFJVRTsJCS8qIHBhc3N3b3JkIGFjY2VwdGVkICovCisgICAgIH0KKworICAgIHJldHVybiBGQUxTRTsJCQkvKiBkZWZhdWx0IHRvIGRlbmlhbCAqLworfQorCitpbnQgCittYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAgc3RydWN0IHBhc3N3ZCAqcHdfZW50cnk7CisgICAgc3RydWN0IGdyb3VwICpncl9lbnRyeTsKKyAgICBjaGFyICpzaGVsbDsKKworICAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyAgICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICAgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgICBpZiAoIShwd19lbnRyeSA9IGdldHB3dWlkKGdldHVpZCgpKSkpIHsKKwlwZXJyb3IoXygibmV3Z3JwOiBXaG8gYXJlIHlvdT8iKSk7CisJZXhpdCgxKTsKKyAgICB9CisKKyAgICBzaGVsbCA9IChwd19lbnRyeS0+cHdfc2hlbGxbMF0gPyBwd19lbnRyeS0+cHdfc2hlbGwgOiBfUEFUSF9CU0hFTEwpOworCisgICAgaWYgKGFyZ2MgPCAyKSB7CisJaWYoc2V0Z2lkKHB3X2VudHJ5LT5wd19naWQpIDwgMCkgeworCSAgICBwZXJyb3IoXygibmV3Z3JwOiBzZXRnaWQiKSk7CisJICAgIGV4aXQoMSk7CisJfQorICAgIH0gZWxzZSB7CisJZXJybm8gPSAwOworCWlmICghKGdyX2VudHJ5ID0gZ2V0Z3JuYW0oYXJndlsxXSkpKSB7CisJICAgIGlmIChlcnJubykKKwkJICAgIHBlcnJvcihfKCJuZXdncnA6IE5vIHN1Y2ggZ3JvdXAuIikpOwkJCS8qIGVycm9yICovCisJICAgIGVsc2UKKwkJICAgIGZwcmludGYoc3RkZXJyLCAiJXNcbiIsIF8oIm5ld2dycDogTm8gc3VjaCBncm91cC4iKSk7CS8qIG5vIGdyb3VwICovCisJICAgIGV4aXQoMSk7CisJfSBlbHNlIHsKKwkgICAgaWYoYWxsb3dfc2V0Z2lkKHB3X2VudHJ5LCBncl9lbnRyeSkpIHsKKwkJaWYoc2V0Z2lkKGdyX2VudHJ5LT5ncl9naWQpIDwgMCkgeworCQkgICAgcGVycm9yKF8oIm5ld2dycDogc2V0Z2lkIikpOworCQkgICAgZXhpdCgxKTsKKwkJfQorCSAgICB9IGVsc2UgeworCQlwdXRzKF8oIm5ld2dycDogUGVybWlzc2lvbiBkZW5pZWQiKSk7CisJCWV4aXQoMSk7CisJICAgIH0KKwl9CisgICAgfQorCisgICAgaWYoc2V0dWlkKGdldHVpZCgpKSA8IDApIHsKKwlwZXJyb3IoXygibmV3Z3JwOiBzZXR1aWQiKSk7CisJZXhpdCgxKTsKKyAgICB9CisKKyAgICBmZmx1c2goc3Rkb3V0KTsgZmZsdXNoKHN0ZGVycik7CisgICAgZXhlY2woc2hlbGwsc2hlbGwsKGNoYXIqKTApOworICAgIHBlcnJvcihfKCJObyBzaGVsbCIpKTsKKyAgICBmZmx1c2goc3RkZXJyKTsKKyAgICBleGl0KDEpOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvcmVib290LjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9yZWJvb3QuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODZkOTcxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvcmVib290LjgKQEAgLTAsMCArMSBAQAorLnNvIG1hbjgvc2h1dGRvd24uOApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2VsaW51eF91dGlscy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2VsaW51eF91dGlscy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkYjVkZDMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9zZWxpbnV4X3V0aWxzLmMKQEAgLTAsMCArMSw1NCBAQAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c2VsaW51eC9zZWxpbnV4Lmg+CisjaW5jbHVkZSA8c2VsaW51eC9mbGFzay5oPgorI2luY2x1ZGUgPHNlbGludXgvYXZfcGVybWlzc2lvbnMuaD4KKyNpbmNsdWRlIDxzZWxpbnV4L2NvbnRleHQuaD4KKyNpbmNsdWRlICJzZWxpbnV4X3V0aWxzLmgiCisKK2ludCBjaGVja0FjY2VzcyhjaGFyICpjaHVzZXIsIGludCBhY2Nlc3MpIHsKKyAgaW50IHN0YXR1cz0tMTsKKyAgc2VjdXJpdHlfY29udGV4dF90IHVzZXJfY29udGV4dDsKKyAgY29uc3QgY2hhciAqdXNlcj1OVUxMOworICBpZiggZ2V0cHJldmNvbigmdXNlcl9jb250ZXh0KT09MCApIHsKKyAgICBjb250ZXh0X3QgYz1jb250ZXh0X25ldyh1c2VyX2NvbnRleHQpOworICAgIHVzZXI9Y29udGV4dF91c2VyX2dldChjKTsKKyAgICBpZiAoc3RyY21wKGNodXNlciwgdXNlcikgPT0gMCkgeworICAgICAgc3RhdHVzPTA7CisgICAgfSBlbHNlIHsKKyAgICAgIHN0cnVjdCBhdl9kZWNpc2lvbiBhdmQ7CisgICAgICBpbnQgcmV0dmFsID0gc2VjdXJpdHlfY29tcHV0ZV9hdih1c2VyX2NvbnRleHQsCisJCQkJICAgICAgIHVzZXJfY29udGV4dCwKKwkJCQkgICAgICAgU0VDQ0xBU1NfUEFTU1dELAorCQkJCSAgICAgICBhY2Nlc3MsCisJCQkJICAgICAgICZhdmQpOworCSAgCisgICAgICBpZiAoKHJldHZhbCA9PSAwKSAmJiAKKwkgICgoYWNjZXNzICYgYXZkLmFsbG93ZWQpID09IGFjY2VzcykpIHsKKwlzdGF0dXM9MDsKKyAgICAgIH0KKyAgICB9CisgICAgY29udGV4dF9mcmVlKGMpOworICAgIGZyZWVjb24odXNlcl9jb250ZXh0KTsKKyAgfQorICByZXR1cm4gc3RhdHVzOworfQorCitpbnQgc2V0dXBEZWZhdWx0Q29udGV4dChjaGFyICpvcmlnX2ZpbGUpIHsKKyAgaWYgKGlzX3NlbGludXhfZW5hYmxlZCgpID4gMCkgeworICAgIHNlY3VyaXR5X2NvbnRleHRfdCBzY29udGV4dDsKKyAgICAKKyAgICBpZiAoZ2V0ZmlsZWNvbihvcmlnX2ZpbGUsJnNjb250ZXh0KTwwKSB7CisgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgCisgICAgaWYgKHNldGZzY3JlYXRlY29uKHNjb250ZXh0KSA8IDApIAorICAgICAgeworCWZyZWVjb24oc2NvbnRleHQpOworCXJldHVybiAxOworICAgICAgfQorICAgIGZyZWVjb24oc2NvbnRleHQpOworICB9CisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2VsaW51eF91dGlscy5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2VsaW51eF91dGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViZjM5M2MKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9zZWxpbnV4X3V0aWxzLmgKQEAgLTAsMCArMSwyIEBACitleHRlcm4gaW50IGNoZWNrQWNjZXNzKGNoYXIgKm5hbWUsaW50IGFjY2Vzcyk7CitleHRlcm4gaW50IHNldHVwRGVmYXVsdENvbnRleHQoY2hhciAqb3JpZ19maWxlKTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NldHB3bmFtLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9zZXRwd25hbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhYTdkZDUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9zZXRwd25hbS5jCkBAIC0wLDAgKzEsMjI3IEBACisvKgorICogIHNldHB3bmFtLmMgLS0KKyAqICBlZGl0IGFuIGVudHJ5IGluIGEgcGFzc3dvcmQgZGF0YWJhc2UuCisgKgorICogIChjKSAxOTk0IFNhbHZhdG9yZSBWYWxlbnRlIDxzdmFsZW50ZUBtaXQuZWR1PgorICogIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgKiAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgRWRpdGVkIDExLzEwLzk2IChERC9NTS9ZWSA7LSkgYnkgTmljb2xhaSBMYW5nZmVsZHQgKGphbmxAbWF0aC51aW8ubm8pCisgKiAgdG8gcmVhZCAvZXRjL3Bhc3N3ZCBkaXJlY3RseSBzbyB0aGF0IHBhc3N3ZCwgY2hzaCBhbmQgY2hmbiBjYW4gd29yaworICogIG9uIG1hY2hpbmVzIHRoYXQgcnVuIE5JUyAobukgWVApLiAgQ2hhbmdlcyB3aWxsIG5vdCBiZSBtYWRlIHRvCisgKiAgdXNlcm5hbWVzIHN0YXJ0aW5nIHdpdGggKy4KKyAqICAKKyAqICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgd2l0aCBubyB3YXJyYW50eS4KKyAqCisgKiAgVXNhZ2U6CisgKiAgMSkgZ2V0IGEgc3RydWN0IHBhc3N3ZCAqIGZyb20gZ2V0cHduYW0oKS4KKyAqICAgICBZb3Ugc2hvdWxkIGFzc3VtZSBhIHN0cnVjdCBwYXNzd2QgaGFzIGFuIGluZmluaXRlIG51bWJlciBvZiBmaWVsZHMsCisgKiAgICAgc28geW91IHNob3VsZCBub3QgdHJ5IHRvIGNyZWF0ZSBvbmUgZnJvbSBzY3JhdGNoLgorICogIDIpIGVkaXQgdGhlIGZpZWxkcyB5b3Ugd2FudCB0byBlZGl0LgorICogIDMpIGNhbGwgc2V0cHduYW0oKSB3aXRoIHRoZSBlZGl0ZWQgc3RydWN0IHBhc3N3ZC4KKyAqCisgKiAgQSBfbm9ybWFsIHVzZXJfIHByb2dyYW0gc2hvdWxkIG5ldmVyIGRpcmVjdGx5IG1hbmlwdWxhdGUKKyAqICAvZXRjL3Bhc3N3ZCBidXQgdXNlIGdldHB3bmFtKCkgYW5kIChmYW1pbHksIGFzIHdlbGwgYXMpCisgKiAgc2V0cHduYW0oKS4KKyAqCisgKiAgQnV0LCBzZXRwd25hbSB3YXMgbWFkZSB0byBfZWRpdF8gdGhlIHBhc3N3b3JkIGZpbGUuICBGb3IgdXNlIGJ5CisgKiAgY2hmbiwgY2hzaCBhbmQgcGFzc3dkLiAgX0lfIF9IQVZFXyB0byByZWFkIGFuZCB3cml0ZSAvZXRjL3Bhc3N3ZAorICogIGRpcmVjdGx5LiAgTGV0IHRob3NlIHdobyBzYXkgbmF5IGJlIGZvcmV2ZXIgc2lsZW50IGFuZCB0aGluayBhYm91dAorICogIGhvdyBnZXRwd25hbSAoYW5kIGZhbWlseSkgd29ya3Mgb24gYSBtYWNoaW5lIHJ1bm5pbmcgWVAuCisgKgorICogIEFkZGVkIGNoZWNrcyBmb3IgZmFpbHVyZSBvZiBtYWxsb2MoKSBhbmQgcmVtb3ZlZCBlcnJvciByZXBvcnRpbmcKKyAqICB0byBzdGRlcnIsIHRoaXMgaXMgYSBsaWJyYXJ5IGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IHByaW50IG9uIHRoZQorICogIHNjcmVlbiwgYnV0IHJldHVybiBhcHByb3ByaWF0ZSBlcnJvciBjb2Rlcy4KKyAqICAyNy1KYW4tOTcgIC0gcG9lQGRhaW1pLmFhdS5kaworICoKKyAqICBUaGFua3MgdG8gInR3byBndXlzIG5hbWVkIElhbiIuCisgKgorICogICAkQXV0aG9yOiBwb2VyICQKKyAqICAgJFJldmlzaW9uOiAxLjEzICQKKyAqICAgJERhdGU6IDE5OTcvMDYvMjMgMDg6MjY6MjkgJAorICoKKyAqLworCisjdW5kZWYgREVCVUcKKworLyogIGJlY2F1c2UgSSB1c2UgZ2V0cHdlbnQoKSwgcHV0cHdlbnQoKSwgZXRjLi4uICovCisjZGVmaW5lIF9TVklEX1NPVVJDRQorCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHB3ZC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxwYXRocy5oPgorCisjaW5jbHVkZSAic2V0cHduYW0uaCIKKworI2RlZmluZSBmYWxzZSAwCisjZGVmaW5lIHRydWUgMQorCit0eXBlZGVmIGludCBib29sZWFuOworCitzdGF0aWMgdm9pZCBwd19pbml0KHZvaWQpOworCisvKgorICogIHNldHB3bmFtICgpIC0tCisgKgl0YWtlcyBhIHN0cnVjdCBwYXNzd2QgaW4gd2hpY2ggZXZlcnkgZmllbGQgaXMgZmlsbGVkIGluIGFuZCB2YWxpZC4KKyAqCUlmIHRoZSBnaXZlbiB1c2VybmFtZSBleGlzdHMgaW4gdGhlIHBhc3N3ZCBmaWxlLCB0aGUgZW50cnkgaXMKKyAqCXJlcGxhY2VkIHdpdGggdGhlIGdpdmVuIGVudHJ5LgorICovCitpbnQgCitzZXRwd25hbSAoc3RydWN0IHBhc3N3ZCAqcHdkKQoreworICAgIEZJTEUgKmZwID0gTlVMTCwgKnB3ZiA9IE5VTEw7CisgICAgaW50IHgsIHNhdmVfZXJybm8sIGZkLCByZXQ7CisgICAgYm9vbGVhbiBmb3VuZDsKKyAgICBpbnQgb2xkdW1hc2s7CisgICAgaW50IG5hbWVsZW47CisgICAgaW50IGJ1ZmxlbiA9IDI1NjsKKyAgICBpbnQgY29udGxlbjsKKyAgICBjaGFyICpsaW5lYnVmID0gbWFsbG9jKGJ1Zmxlbik7CisKKyAgICBpZiAoIWxpbmVidWYpIHJldHVybiAtMTsKKworICAgIG9sZHVtYXNrID0gdW1hc2soMCk7ICAgLyogQ3JlYXRlIHdpdGggZXhhY3QgcGVybWlzc2lvbnMgKi8KKworICAgIHB3X2luaXQoKTsKKworICAgIC8qIHNhbml0eSBjaGVjayAqLworICAgIGZvciAoeCA9IDA7IHggPCAzOyB4KyspIHsKKwlpZiAoeCA+IDApIHNsZWVwKDEpOworCWZkID0gb3BlbihQVE1QVE1QX0ZJTEUsIE9fV1JPTkxZfE9fQ1JFQVR8T19FWENMLCAwNjQ0KTsKKwlpZiAoZmQgPT0gLTEpIHsKKwkgICAgdW1hc2sob2xkdW1hc2spOworCSAgICByZXR1cm4gLTE7CisJfQorCXJldCA9IGxpbmsoUFRNUFRNUF9GSUxFLCBQVE1QX0ZJTEUpOworCXVubGluayhQVE1QVE1QX0ZJTEUpOworCWlmIChyZXQgPT0gLTEpCisJICAgIGNsb3NlKGZkKTsKKwllbHNlCisJICAgIGJyZWFrOworICAgIH0KKyAgICB1bWFzayhvbGR1bWFzayk7CisgICAgaWYgKHJldCA9PSAtMSkgcmV0dXJuIC0xOworCisgICAgLyogcHRtcCBzaG91bGQgYmUgb3duZWQgYnkgcm9vdC5yb290IG9yIHJvb3Qud2hlZWwgKi8KKyAgICBpZiAoY2hvd24oUFRNUF9GSUxFLCAodWlkX3QpIDAsIChnaWRfdCkgMCkgPCAwKSByZXR1cm4gLTE7CisKKyAgICAvKiBvcGVuIHB0bXAgZm9yIHdyaXRpbmcgYW5kIHBhc3N3ZCBmb3IgcmVhZGluZyAqLworICAgIGZwID0gZmRvcGVuKGZkLCAidyIpOworICAgIGlmICghZnApIGdvdG8gZmFpbDsKKworICAgIHB3ZiA9IGZvcGVuKFBBU1NXRF9GSUxFLCAiciIpOworICAgIGlmICghcHdmKSBnb3RvIGZhaWw7CisKKyAgICBuYW1lbGVuID0gc3RybGVuKHB3ZC0+cHdfbmFtZSk7CisKKyAgICAvKiBwYXJzZSB0aGUgcGFzc3dkIGZpbGUgKi8KKyAgICBmb3VuZCA9IGZhbHNlOworICAgIC8qIERvIHlvdSB3b25kZXIgd2h5IEkgZG9uJ3QgdXNlIGdldHB3ZW50PyBSZWFkIGNvbW1lbnRzIGF0IHRvcCBvZiBmaWxlICovCisgICAgd2hpbGUgKGZnZXRzKGxpbmVidWYsIGJ1ZmxlbiwgcHdmKSAhPSBOVUxMKSB7CisJY29udGxlbiA9IHN0cmxlbihsaW5lYnVmKTsKKwl3aGlsZSAobGluZWJ1Zltjb250bGVuLTFdICE9ICdcbicgJiYgIWZlb2YocHdmKSkgeworCSAgICAvKiBFeHRlbmQgaW5wdXQgYnVmZmVyIGlmIGl0IGZhaWxlZCBnZXR0aW5nIHRoZSB3aG9sZSBsaW5lICovCisKKwkgICAgLyogU28gbm93IHdlIGRvdWJsZSB0aGUgYnVmZmVyIHNpemUgKi8KKwkgICAgYnVmbGVuICo9IDI7CisKKwkgICAgbGluZWJ1ZiA9IHJlYWxsb2MobGluZWJ1ZiwgYnVmbGVuKTsKKwkgICAgaWYgKGxpbmVidWYgPT0gTlVMTCkgZ290byBmYWlsOworCisJICAgIC8qIEFuZCBmaWxsIHRoZSByZXN0IG9mIHRoZSBidWZmZXIgKi8KKwkgICAgaWYgKGZnZXRzKCZsaW5lYnVmW2NvbnRsZW5dLCBidWZsZW4vMiwgcHdmKSA9PSBOVUxMKSBicmVhazsKKwkgICAgY29udGxlbiA9IHN0cmxlbihsaW5lYnVmKTsKKyAgICAgIAorCSAgICAvKiBUaGF0IHdhcyBhIGxvdCBvZiB3b3JrIGZvciBub3RoaW5nLiAgR2ltbWUgcGVybCEgKi8KKwl9CisKKwkvKiBJcyB0aGlzIHRoZSB1c2VybmFtZSB3ZSB3ZXJlIHNlbnQgdG8gY2hhbmdlPyAqLworCWlmICghZm91bmQgJiYgbGluZWJ1ZltuYW1lbGVuXSA9PSAnOicgJiYKKwkgICAgIXN0cm5jbXAobGluZWJ1ZiwgcHdkLT5wd19uYW1lLCBuYW1lbGVuKSkgeworCSAgICAvKiBZZXMhIFNvIGdvIGZvcnRoIGluIHRoZSBuYW1lIG9mIHRoZSBMb3JkIGFuZCBjaGFuZ2UgaXQhICovCisJICAgIGlmIChwdXRwd2VudChwd2QsIGZwKSA8IDApIGdvdG8gZmFpbDsKKwkgICAgZm91bmQgPSB0cnVlOworCSAgICBjb250aW51ZTsKKwl9CisJLyogTm90aGluZyBpbiBwYXJ0aWN1bGFyIGhhcHBlbmVkLCBjb3B5IGlucHV0IHRvIG91dHB1dCAqLworCWZwdXRzKGxpbmVidWYsIGZwKTsKKyAgICB9CisKKyAgICBpZiAoZmNsb3NlKGZwKSA8IDApIGdvdG8gZmFpbDsKKyAgICBmcCA9IE5VTEw7CisgICAgY2xvc2UgKGZkKTsKKyAgICBmZCA9IC0xOworICAgIGZjbG9zZSAocHdmKTsgLyogSSBkb24ndCB0aGluayBJIHdhbnQgdG8ga25vdyBpZiB0aGlzIGZhaWxlZCAqLworICAgIHB3ZiA9IE5VTEw7CisKKyAgICBpZiAoIWZvdW5kKSB7CisJZXJybm8gPSBFTk9FTlQ7IC8qIGdpdmUgbWUgc29tZXRoaW5nIGJldHRlciAqLworCWdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvKiB3ZSBkb24ndCBjYXJlIGlmIHdlIGNhbid0IHJlbW92ZSB0aGUgYmFja3VwIGZpbGUgKi8KKyAgICB1bmxpbmsoUEFTU1dEX0ZJTEUiLk9MRCIpOworICAgIC8qIHdlIGRvbid0IGNhcmUgaWYgd2UgY2FuJ3QgY3JlYXRlIHRoZSBiYWNrdXAgZmlsZSAqLworICAgIGxpbmsoUEFTU1dEX0ZJTEUsIFBBU1NXRF9GSUxFIi5PTEQiKTsKKyAgICAvKiB3ZSBETyBjYXJlIGlmIHdlIGNhbid0IHJlbmFtZSB0byB0aGUgcGFzc3dkIGZpbGUgKi8KKyAgICBpZihyZW5hbWUoUFRNUF9GSUxFLCBQQVNTV0RfRklMRSkgPCAwKQorCWdvdG8gZmFpbDsKKyAgICAvKiBmaW5hbGx5OiAgc3VjY2VzcyAqLworICAgIHJldHVybiAwOworCitmYWlsOgorICAgIHNhdmVfZXJybm8gPSBlcnJubzsKKyAgICBpZiAoZnAgIT0gTlVMTCkgZmNsb3NlIChmcCk7CisgICAgaWYgKHB3ZiAhPSBOVUxMKSBmY2xvc2UocHdmKTsKKyAgICBpZiAoZmQgPj0gMCkgY2xvc2UgKGZkKTsKKyAgICBmcmVlKGxpbmVidWYpOworICAgIHVubGluayhQVE1QX0ZJTEUpOworICAgIGVycm5vID0gc2F2ZV9lcnJubzsKKyAgICByZXR1cm4gLTE7Cit9CisKKy8qIFNldCB1cCB0aGUgbGltaXRzIHNvIHRoYXQgd2UncmUgbm90IGZvaWxlZCAqLworCitzdGF0aWMgdm9pZCAKK3B3X2luaXQoKQoreworICAgIHN0cnVjdCBybGltaXQgcmxpbTsKKworICAgIC8qIFVubGltaXRlZCByZXNvdXJjZSBsaW1pdHMuICovCisgICAgcmxpbS5ybGltX2N1ciA9IHJsaW0ucmxpbV9tYXggPSBSTElNX0lORklOSVRZOworICAgIHNldHJsaW1pdChSTElNSVRfQ1BVLCAmcmxpbSk7CisgICAgc2V0cmxpbWl0KFJMSU1JVF9GU0laRSwgJnJsaW0pOworICAgIHNldHJsaW1pdChSTElNSVRfU1RBQ0ssICZybGltKTsKKyAgICBzZXRybGltaXQoUkxJTUlUX0RBVEEsICZybGltKTsKKyAgICBzZXRybGltaXQoUkxJTUlUX1JTUywgJnJsaW0pOworCisjaWZuZGVmIERFQlVHCisgICAgLyogRG9uJ3QgZHJvcCBjb3JlIChub3QgcmVhbGx5IG5lY2Vzc2FyeSwgYnV0IEdQJ3MpLiAqLworICAgIHJsaW0ucmxpbV9jdXIgPSBybGltLnJsaW1fbWF4ID0gMDsKKyAgICBzZXRybGltaXQoUkxJTUlUX0NPUkUsICZybGltKTsKKyNlbmRpZgorCisgICAgLyogVHVybiBvZmYgc2lnbmFscy4gKi8KKyAgICBzaWduYWwoU0lHQUxSTSwgU0lHX0lHTik7CisgICAgc2lnbmFsKFNJR0hVUCwgU0lHX0lHTik7CisgICAgc2lnbmFsKFNJR0lOVCwgU0lHX0lHTik7CisgICAgc2lnbmFsKFNJR1BJUEUsIFNJR19JR04pOworICAgIHNpZ25hbChTSUdRVUlULCBTSUdfSUdOKTsKKyAgICBzaWduYWwoU0lHVEVSTSwgU0lHX0lHTik7CisgICAgc2lnbmFsKFNJR1RTVFAsIFNJR19JR04pOworICAgIHNpZ25hbChTSUdUVE9VLCBTSUdfSUdOKTsKKworICAgIC8qIENyZWF0ZSB3aXRoIGV4YWN0IHBlcm1pc3Npb25zLiAqLworICAgIHVtYXNrKDApOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2V0cHduYW0uaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NldHB3bmFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdmNDRhOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NldHB3bmFtLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqICBzZXRwd25hbS5oIC0tCisgKiAgZGVmaW5lIHNldmVyYWwgcGF0aHMKKyAqCisgKiAgKGMpIDE5OTQgTWFydGluIFNjaHVsemUgPGpvZXlAaW5mb2Ryb20ubm9ydGguZGU+CisgKiAgVGhpcyBmaWxlIGlzIGJhc2VkIG9uIHNldHB3bmFtLmMgd2hpY2ggaXMKKyAqICAoYykgMTk5NCBTYWx2YXRvcmUgVmFsZW50ZSA8c3ZhbGVudGVAbWl0LmVkdT4KKyAqCisgKiAgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAqICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKworI2lmbmRlZiBERUJVRworI2RlZmluZSBQQVNTV0RfRklMRSAgICBfUEFUSF9QQVNTV0QKKyNkZWZpbmUgUFRNUF9GSUxFICAgICAgX1BBVEhfUFRNUAorI2RlZmluZSBQVE1QVE1QX0ZJTEUgICBfUEFUSF9QVE1QVE1QCisKKyNkZWZpbmUgR1JPVVBfRklMRSAgICAgX1BBVEhfR1JPVVAKKyNkZWZpbmUgR1RNUF9GSUxFICAgICAgX1BBVEhfR1RNUAorI2RlZmluZSBHVE1QVE1QX0ZJTEUgICBfUEFUSF9HVE1QVE1QCisKKyNkZWZpbmUgU0hBRE9XX0ZJTEUJX1BBVEhfU0hBRE9XX1BBU1NXRAorI2RlZmluZSBTUFRNUF9GSUxFCV9QQVRIX1NIQURPV19QVE1QCisjZGVmaW5lIFNQVE1QVE1QX0ZJTEUJX1BBVEhfU0hBRE9XX1BUTVBUTVAKKworI2RlZmluZSBTR1JPVVBfRklMRQlfUEFUSF9TSEFET1dfR1JPVVAKKyNkZWZpbmUgU0dUTVBfRklMRQlfUEFUSF9TSEFET1dfR1RNUAorI2RlZmluZSBTR1RNUFRNUF9GSUxFCV9QQVRIX1NIQURPV19HVE1QVE1QCisKKyNlbHNlCisjZGVmaW5lIFBBU1NXRF9GSUxFICAgICIvdG1wL3Bhc3N3ZCIKKyNkZWZpbmUgUFRNUF9GSUxFICAgICAgIi90bXAvcHRtcCIKKyNkZWZpbmUgUFRNUFRNUF9GSUxFICAgIi90bXAvcHRtcHRtcCIKKworI2RlZmluZSBHUk9VUF9GSUxFICAgICAiL3RtcC9ncm91cCIKKyNkZWZpbmUgR1RNUF9GSUxFICAgICAgIi90bXAvZ3RtcCIKKyNkZWZpbmUgR1RNUFRNUF9GSUxFICAgIi90bXAvZ3RtcHRtcCIKKworI2RlZmluZSBTSEFET1dfRklMRQkiL3RtcC9zaGFkb3ciCisjZGVmaW5lIFNQVE1QX0ZJTEUJIi90bXAvc3B0bXAiCisjZGVmaW5lIFNQVE1QVE1QX0ZJTEUJIi90bXAvc3B0bXB0bXAiCisKKyNkZWZpbmUgU0dST1VQX0ZJTEUJIi90bXAvZ3NoYWRvdyIKKyNkZWZpbmUgU0dUTVBfRklMRQkiL3RtcC9zZ3RtcCIKKyNkZWZpbmUgU0dUTVBUTVBfRklMRQkiL3RtcC9zZ3RtcHRtcCIKKyNlbmRpZgorCitleHRlcm4gaW50IHNldHB3bmFtIChzdHJ1Y3QgcGFzc3dkICpwd2QpOwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2h1dGRvd24uOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NodXRkb3duLjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzcxMzEwYgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NodXRkb3duLjgKQEAgLTAsMCArMSwxNjkgQEAKKy5cIiBDb3B5cmlnaHQgMTk5MiBSaWNrYXJkIEUuIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlwiIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5cIgorLlwiCisuVEggU0hVVERPV04gOCAiMiBNYXJjaCAyMDAwIiAiTGludXggMi4wIiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCBOQU1FCitzaHV0ZG93biBcLSBjbG9zZSBkb3duIHRoZSBzeXN0ZW0KKy5TSCBTWU5PUFNJUworLkIgc2h1dGRvd24KKy5SQiBbIFwtaCB8IFwtciBdCisuUkIgWyBcLWZxcyBdCisuUkIgWyBub3cgfCBcZkloaFxmUDpcZklzc1xmUCB8ICtcZkltaW5zXGZQIF0KKy5SSSBbIG1lc3NhZ2UgXQorLmJyCisuQiByZWJvb3QKKy5SQiBbIFwtaCB8IFwtciBdCisuUkIgWyBcLWZxcyBdCisuUkIgWyBub3cgfCBcZkloaFxmUDpcZklzc1xmUCB8ICtcZkltaW5zXGZQIF0KKy5SSSBbIG1lc3NhZ2UgXQorLmJyCisuQiBmYXN0Ym9vdAorLlJCIFsgXC1oIHwgXC1yIF0KKy5SQiBbIFwtZnFzIF0KKy5SQiBbIG5vdyB8IFxmSWhoXGZQOlxmSXNzXGZQIHwgK1xmSW1pbnNcZlAgXQorLlJJIFsgbWVzc2FnZSBdCisuYnIKKy5CIGhhbHQKKy5SQiBbIFwtaCB8IFwtciBdCisuUkIgWyBcLWZxcyBdCisuUkIgWyBub3cgfCBcZkloaFxmUDpcZklzc1xmUCB8ICtcZkltaW5zXGZQIF0KKy5SSSBbIG1lc3NhZ2UgXQorLmJyCisuQiBmYXN0aGFsdAorLlJCIFsgXC1oIHwgXC1yIF0KKy5SQiBbIFwtZnFzIF0KKy5SQiBbIG5vdyB8IFxmSWhoXGZQOlxmSXNzXGZQIHwgK1xmSW1pbnNcZlAgXQorLlJJIFsgbWVzc2FnZSBdCisuU0ggREVTQ1JJUFRJT04KKy5cIiAiIGZvciBlbWFjcyBoaWxpdDE5CitJbiBnZW5lcmFsLAorLkIgc2h1dGRvd24KK3ByZXBhcmVzIHRoZSBzeXN0ZW0gZm9yIGEgcG93ZXIgZG93biBvciByZWJvb3QuICBBIGFic29sdXRlIG9yIGRlbHRhIHRpbWUKK2NhbiBiZSBnaXZlbiwgYW5kIHBlcmlvZGljIG1lc3NhZ2VzIHdpbGwgYmUgc2VudCB0byBhbGwgdXNlcnMgd2FybmluZyBvZgordGhlIHNodXRkb3duLiBJZiBubyBtZXNzYWdlIGlzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLAorLkIgc2h1dGRvd24KK3dpbGwgYXNrIGZvciBhIG1lc3NhZ2UgdG8gYmUgc2VudCwgdW5sZXNzIHRoZQorLkIgXC1xCitvcHRpb24gaXMgc2V0LgorCisuQiBoYWx0CitpcyB0aGUgc2FtZSBhcworLkIgInNodXRkb3duIC1oIC1xIG5vdyIKKworLkIgZmFzdGhhbHQKK2lzIHRoZSBzYW1lIGFzCisuQiAic2h1dGRvd24gLWggLXEgLWYgbm93IgorCisuQiByZWJvb3QKK2lzIHRoZSBzYW1lIGFzCisuQiAic2h1dGRvd24gLXIgLXEgbm93IgorCisuQiBmYXN0Ym9vdAoraXMgdGhlIHNhbWUgYXMKKy5CICJzaHV0ZG93biAtciAtcSAtZiBub3ciCisKK1RoZSBkZWZhdWx0IGRlbHRhIHRpbWUsIGlmIG5vbmUgaXMgc3BlY2lmaWVkLCBpcyAyIG1pbnV0ZXMuCisKK0ZpdmUgbWludXRlcyBiZWZvcmUgc2h1dGRvd24gKG9yIGltbWVkaWF0ZWx5LCBpZiBzaHV0ZG93biBpcyBsZXNzIHRoYW4gZml2ZQorbWludXRlcyBhd2F5KSwgdGhlCisuSSAvZXRjL25vbG9naW4KK2ZpbGUgaXMgY3JlYXRlZCB3aXRoIGEgbWVzc2FnZSBzdGF0aW5nIHRoYXQgdGhlIHN5c3RlbSBpcyBnb2luZyBkb3duIGFuZAordGhhdCBsb2dpbnMgYXJlIG5vIGxvbmdlciBwZXJtaXR0ZWQuICBUaGUKKy5CUiBsb2dpbiAoMSkKK3Byb2dyYW0gd2lsbCBub3QgYWxsb3cgbm9uLXN1cGVydXNlcnMgdG8gbG9naW4gZHVyaW5nIHRoaXMgcGVyaW9kLiAgQQorbWVzc2FnZSB3aWxsIGJlIHNlbnQgdG8gYWxsIHVzZXJzIGF0IHRoaXMgdGltZS4KKworV2hlbiB0aGUgc2h1dGRvd24gdGltZSBhcnJpdmVzLAorLkIgc2h1dGRvd24KK25vdGlmaWVzIGFsbCB1c2VycywgdGVsbHMKKy5CUiBpbml0ICg4KQorbm90IHRvIHNwYXduIG1vcmUKKy5CUiBnZXR0eSAoOCkncywKK3dyaXRlcyB0aGUgc2h1dGRvd24gdGltZSBpbnRvIHRoZQorLkkgL3Zhci9sb2cvd3RtcAorZmlsZSwga2lsbHMgYWxsIG90aGVyIHByb2Nlc3NlcyBvbiB0aGUgc3lzdGVtLAorLkJSIHN5bmMgKDIpJ3MsCit1bm1vdW50cyBhbGwgdGhlIGRpc2tzLAorLkJSIHN5bmMgKDIpJ3MKK2FnYWluLCB3YWl0cyBmb3IgYSBzZWNvbmQsIGFuZCB0aGVuIGVpdGhlciB0ZXJtaW5hdGVzIG9yIHJlYm9vdHMgdGhlCitzeXN0ZW0uCisKK1ByaW9yIHRvIHVubW91bnRpbmcgYWxsIGRpc2NzLCB0aGUgXGZCU0lHUVVJVFxmUCBzaWduYWwgaXMgc2VudCB0byB0aGUKK1xmQmluaXRcZlAgcHJvY2Vzcywgd2hpY2ggd2lsbCBpbiB0dXJuIGV4ZWMgXGZCc2h1dGRvd25cZlAoOCkuIFRoaXMKK2FsbG93cyBmb3IgY2xlYW4gdW5tb3VudGluZywgZXZlbiBpZiB0aGUgb2xkIGlub2RlIGZvciB0aGUgXGZCaW5pdFxmUAorcHJvY2VzcyB3YXMgdW5saW5rZWQuIElmIHRoZSBjdXJyZW50IHByb2Nlc3MgSUQgKFBJRCkgZXF1YWxzIDEsIHRoZW4KK1xmQnNodXRkb3duXGZQKDgpIHdpbGwgcGF1c2UgZm9yZXZlci4KKy5TSCBPUFRJT05TCisuVFAKKy5CIFwtaAorSGFsdCB0aGUgc3lzdGVtLiAgRG8gbm90IHJlYm9vdC4gIFRoaXMgb3B0aW9uIGlzIHVzZWQgd2hlbiBwb3dlcmluZyBkb3duCit0aGUgc3lzdGVtLgorLlRQCisuQiBcLXIKK1JlYm9vdCB0aGUgc3lzdGVtLgorLlRQCisuQiBcLWYKK0Zhc3QuICBXaGVuIHRoZSBzeXN0ZW0gaXMgcmVib290ZWQsIHRoZSBmaWxlIHN5c3RlbXMgd2lsbCBub3QgYmUgY2hlY2tlZC4KK1RoaXMgaXMgYXJyYW5nZWQgYnkgY3JlYXRpbmcKKy5JUiAvZmFzdGJvb3QgLAord2hpY2gKKy5JIC9ldGMvcmMKK211c3QgZGV0ZWN0IChhbmQgZGVsZXRlKS4KKy5UUAorLkIgXC1xCitRdWlldC4gIFRoaXMgdXNlcyBhIGRlZmF1bHQgYnJvYWRjYXN0IG1lc3NhZ2UsIGFuZCBkb2VzIG5vdCBwcm9tcHQgdGhlIHVzZXIKK2ZvciBvbmUuCisuVFAKKy5CIFwtcworUmVib290IGluIHNpbmdsZSB1c2VyIG1vZGUuICBUaGlzIGlzIGFycmFuZ2VkIGJ5IGNyZWF0aW5nCisuSVIgL2V0Yy9zaW5nbGVib290ICwKK3doaWNoCisuQlIgc2ltcGxlaW5pdCAoOCkKK2RldGVjdHMgKGFuZCBkZWxldGVzKS4KKy5TSCBGSUxFUworLm5mCisuSSAvZXRjL3JjCisuSSAvZmFzdGJvb3QKKy5JIC9ldGMvc2luZ2xlYm9vdAorLkkgL2V0Yy9ub2xvZ2luCisuSSAvdmFyL2xvZy93dG1wCisuSSAvZXRjL3NodXRkb3duLmNvbmYKKy5maQorLlNIIENPTkZJRworVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBcZkkvZXRjL3NodXRkb3duLmNvbmZcZlAgaXMgdXNlZCB0byBkZXRlcm1pbmUKK3RoZSBhY3Rpb24gdG8gdGFrZSB3aGVuIGhhbHRpbmcgdGhlIG1hY2hpbmUuIFRoZSBjdXJyZW50bHkgc3VwcG9ydGVkCitmaWxlIGZvcm1hdCBpcyBleHRyZW1lbHkgcHJpbWl0aXZlLiBUaGUgZmlyc3QgbGluZSBtdXN0IGNvbnRhaW4gdHdvCitzdHJpbmdzIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLiBUaGUgZmlyc3Qgc3RyaW5nIG11c3QgYmUKK1xmQkhBTFRfQUNUSU9OXGZQIGFuZCB0aGUgc2Vjb25kIHNwZWNpZmllcyB0aGUgYWN0aW9uIHlvdSB3aXNoIHRvIHRha2UKK29uIGhhbHQuIFRoZSBvcHRpb25zIGFsbG93ZWQgYXJlOgorLlRQCisuQiBoYWx0CitUaGlzIHdpbGwgc2ltcGx5IGhhbHQgdGhlIHN5c3RlbS4gVGhpcyBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIuCitOb3RlIGFsc28gdGhhdCB0aGlzIGlzIHRoZSBmYWxsYmFjayBpZiBhbm90aGVyIG9wdGlvbiBmYWlscy4KKy5UUAorLkIgcG93ZXJfb2ZmCitUaGlzIHdpbGwgdXNlIHRoZSBrZXJuZWwgcG93ZXIgc2h1dGRvd24gZmFjaWxpdHkuIFRoaXMgaXMgdXN1YWxseSBvbmx5CithdmFpbGFibGUgb24gbWFjaGluZXMgd2l0aCBBZHZhbmNlZCBQb3dlciBNYW5hZ2VtZW50IChBUE0pLgorLlRQCisuSSBwcm9ncmFtbmFtZQorVGhpcyBzcGVjaWZpZXMgYSBjb21tYW5kIHRvIHJ1biB0byBzaHV0IGRvd24gdGhlIHBvd2VyLiBUaGUgZmlyc3QKK2NoYXJhY3RlciBtdXN0IGJlIGEgIi8iLiBCZWFyIGluIG1pbmQgdGhhdCB0aGlzIGNvbW1hbmQgd2lsbCBiZSBydW4KK3dpdGggb25seSB0aGUgcm9vdCBmaWxlc3lzdGVtIG1vdW50ZWQgKGFuZCBpdCB3aWxsIGJlIHJlYWQtb25seSksIGFuZAorbm8gZGFlbW9ucyBydW5uaW5nLgorLlNIICJTRUUgQUxTTyIKKy5CUiB1bW91bnQgKDgpLAorLkJSIGxvZ2luICgxKSwKKy5CUiByZWJvb3QgKDIpLAorLkJSIHNpbXBsZWluaXQgKDgpLAorLkJSIGluaXQgKDgpCisuU0ggQlVHUworVW5saWtlIHRoZSBCU0QKKy5CUiBzaHV0ZG93biAsCit1c2VycyBhcmUgbm90aWZpZWQgb2Ygc2h1dGRvd24gb25seSBvbmNlIG9yIHR3aWNlLCBpbnN0ZWFkIG9mIG1hbnkgdGltZXMsCithbmQgYXQgc2hvcnRlciBhbmQgc2hvcnRlciBpbnRlcnZhbHMgYXMgImFwb2NhbHlwc2UgYXBwcm9hY2hlcy4iCitTb21lIHdvdWxkIGNvbnN0cnVlIHRoaXMgYXMgYSBmZWF0dXJlLgorLlNIIEFVVEhPUgorVGhpcyBwYWdlIGRvY3VtZW50cyB0aGUgdmVyc2lvbiBvZgorLkIgc2h1dGRvd24KK29yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXRlciBPcmJhZWsgKHBvZUBkYWltaS5hYXUuZGspLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2h1dGRvd24uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NodXRkb3duLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdiYzAwMAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NodXRkb3duLmMKQEAgLTAsMCArMSw3NTQgQEAKKy8qIHNodXRkb3duLmMgLSBzaHV0ZG93biBhIExpbnV4IHN5c3RlbQorICogSW5pdGlhbGx5IHdyaXR0ZW4gYnkgcG9lQGRhaW1pLmFhdS5kayAKKyAqIEN1cnJlbnRseSBtYWludGFpbmVkIGF0IGZ0cDovL2Z0cC5kYWltaS5hYXUuZGsvcHViL1NvZnR3YXJlL0xpbnV4LworICovCisKKy8qCisgKiBNb2RpZmllZCBieSBqcnNAd29ybGQuc3RkLmNvbSB0byB0cnkgdG8gZXhlYyAidW1vdW50IC1hIiBhbmQgaWYKKyAqIHRoYXQgZG9lc24ndCB3b3JrLCB0aGVuIHVtb3VudCBmaWxlc3lzdGVtcyBvdXJzZWx2ZXMgaW4gcmV2ZXJzZQorICogb3JkZXIuICBUaGUgb2xkLXdheSB3YXMgaW4gZm9yd2FyZCBvcmRlci4gIEFsc28gaWYgdGhlIGRldmljZQorICogZmllbGQgb2YgdGhlIG10YWIgZG9lcyBub3Qgc3RhcnQgd2l0aCBhICIvIiB0aGVuIGdpdmUgdW1vdW50CisgKiB0aGUgbW91bnQgcG9pbnQgaW5zdGVhZC4gIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgbmZzIGFuZCBwcm9jCisgKiBmaWxlc3lzdGVtcyBhbmQgeWV0IGlzIGNvbXBhdGlibGUgd2l0aCBvbGRlciBzeXN0ZW1zLgorICoKKyAqIFdlIGFsc28gdXNlIHRoZSBtbnRlbnQgbGlicmFyeSBpbnRlcmZhY2UgdG8gcmVhZCB0aGUgbXRhYiBmaWxlCisgKiBpbnN0ZWFkIG9mIHRyeWluZyB0byBwYXJzZSBpdCBkaXJlY3RseSBhbmQgbm8gbG9uZ2VyIGdpdmUgYQorICogd2FybmluZyBhYm91dCBub3QgYmVpbmcgYWJsZSB0byB1bW91bnQgdGhlIHJvb3QuCisgKgorICogVGhlIHJlYXNvbiAidW1vdW50IC1hIiBzaG91bGQgYmUgdHJpZWQgZmlyc3QgaXMgYmVjYXVzZSBpdCBtYXkgZG8KKyAqIHNwZWNpYWwgcHJvY2Vzc2luZyBmb3Igc29tZSBmaWxlc3lzdGVtcyAoc3VjaCBhcyBpbmZvcm1pbmcgYW4KKyAqIG5mcyBzZXJ2ZXIgYWJvdXQgbmZzIHVtb3VudHMpIHRoYXQgd2UgZG9uJ3Qgd2FudCB0byBjb3BlIHdpdGggaGVyZS4KKyAqLworCisvKgorICogVmFyaW91cyBjaGFuZ2VzIGFuZCBhZGRpdGlvbnMgdG8gcmVzZW1ibGUgU3VuT1MgNCBzaHV0ZG93bi9yZWJvb3QvaGFsdCg4KQorICogbW9yZSBjbG9zZWx5IGJ5IFNjb3R0IFRlbGZvcmQgKHMudGVsZm9yZEBlZC5hYy51aykgOTMvMDUvMTguCisgKiAoSSBidXRjaGVyZWQgU2NvdHRzIHBhdGNoZXMgc29tZXdoYXQuIC0gcG9lKQorICoKKyAqIENoYW5nZXMgYnkgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+IChidXRjaGVyZWQgYnkgYWViKQorICogaW50cm9kdWNpbmcgc2h1dGRvd24uY29uZi4KKyAqCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqCisgKiAyMDAwLTAzLTAyIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgorICogLSBwYXVzZSBmb3JldmVyIGlmIChwaWQgPT0gMSkgYW5kIHNlbmQgU0lHUVVJVCB0byBwaWQgPSAxCisgKgorICogMjAwMC0xMS0wNCBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KKyAqIC0gY29udGludWUgcmVhcGluZyBpZiAocGlkID09IDEpCisgKgorICogMjAwMC0xMS0wNiBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KKyAqIC0gc2h1dCBkb3duICJmaW5hbHByb2ciIGZyb20gL2V0Yy9pbml0dGFiCisgKiAtIGtpbGwgbm9ybWFsIHVzZXIgKG5vbi1yb290IGFuZCBub24tZGFlbW9uKSBwcm9jZXNzZXMgZmlyc3Qgd2l0aCBTSUdURVJNCisgKgorICogMjAwMC0xMS0wOCBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KKyAqIC0gcm9sbGJhY2sgc2VydmljZXMKKyAqIC0gZG8gbm90IHVubW91bnQgZGV2ZnMgKG90aGVyd2lzZSBnZXQgaGFybWxlc3MgYnV0IGFubm95aW5nIG1lc3NhZ2VzKQorICogLSBjcmVhdGVkIHN5bmN3YWl0KCkgZm9yIGZhc3RlciBzaHV0dGluZyBkb3duCisgKiAtIGtpbGwgZ2V0dHkgcHJvY2Vzc2VzCisgKiAyMDAxLTA1LTEyIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgorICogLSB1bmJsb2NrIGFsbCBzaWduYWxzIChzaWdtYXNrIGZyb20gc2ltcGxlaW5pdCg4KSBzdG9wcGVkIHNsZWVwKDMpKQorICogLSBjbG9zZSBhbGwgZmlsZXMKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHV0bXAuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKyNpbmNsdWRlIDxtbnRlbnQuaD4KKyNpbmNsdWRlIDxzeXMvbW91bnQuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPHN5c2xvZy5oPgorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGRpcmVudC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKyNpbmNsdWRlICJsaW51eF9yZWJvb3QuaCIKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJ4c3RybmNweS5oIgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgInVzbGVlcC5oIgorCitzdGF0aWMgdm9pZCB1c2FnZSh2b2lkKSwgaW50X2hhbmRsZXIoaW50KSwgd3JpdGVfdXNlcihzdHJ1Y3QgdXRtcCAqKTsKK3N0YXRpYyB2b2lkIHdhbGwodm9pZCksIHdyaXRlX3d0bXAodm9pZCksIHVubW91bnRfZGlza3Modm9pZCk7CitzdGF0aWMgdm9pZCB1bm1vdW50X2Rpc2tzX291cnNlbHZlcyh2b2lkKTsKK3N0YXRpYyB2b2lkIHN3YXBfb2ZmKHZvaWQpLCBkb19oYWx0KGNoYXIgKik7CitzdGF0aWMgdm9pZCBraWxsX21vcnRhbHMgKGludCBzaWcpOworc3RhdGljIHZvaWQgc3RvcF9maW5hbHByb2cgKHZvaWQpOworc3RhdGljIHZvaWQgc3luY3dhaXQgKGludCB0aW1ldmFsKTsKKworCitjaGFyCSpwcm9nOwkJLyogbmFtZSBvZiB0aGUgcHJvZ3JhbSAqLworaW50CW9wdF9yZWJvb3Q7CS8qIHRydWUgaWYgLXIgb3B0aW9uIG9yIHJlYm9vdCBjb21tYW5kICovCitpbnQJdGltZW91dDsJLyogbnVtYmVyIG9mIHNlY29uZHMgdG8gc2h1dGRvd24gKi8KK2ludAlvcHRfcXVpZXQ7CS8qIHRydWUgaWYgbm8gbWVzc2FnZSBpcyB3YW50ZWQgKi8KK2ludAlvcHRfZmFzdDsJLyogdHJ1ZSBpZiBmYXN0IGJvb3QgKi8KK2NoYXIJbWVzc2FnZVs5MF07CS8qIHJlYXNvbiBmb3Igc2h1dGRvd24gaWYgYW55Li4uICovCitpbnQJb3B0X3NpbmdsZSA9IDA7IC8qIHRydWUgaXMgd2Ugd2FudCB0byBib290IHNpbmdsZXVzZXIgKi8KK2NoYXIJKndob207CQkvKiB3aG8gaXMgc2h1dHRpbmcgdGhlIHN5c3RlbSBkb3duICovCitpbnQJb3B0X21zZ3NldCA9IDA7IC8qIG1lc3NhZ2Ugc2V0IG9uIGNvbW1hbmQgbGluZSAqLworCQkJLyogY2hhbmdlIDEgdG8gMCBpZiBubyBmaWxlIGlzIHRvIGJlIHVzZWQgYnkgZGVmYXVsdCAqLworaW50CW9wdF91c2VfY29uZmlnX2ZpbGUgPSAxOwkvKiByZWFkIF9QQVRIX1NIVVRET1dOX0NPTkYgKi8KK2NoYXIJaGFsdF9hY3Rpb25bMjU2XTsJCS8qIHRvIGZpbmQgb3V0IHdoYXQgdG8gZG8gdXBvbiBoYWx0ICovCisKKy8qICNkZWZpbmUgREVCVUdHSU5HICovCisKKyNkZWZpbmUgV1Iocykgd3JpdGUoZmQsIHMsIHN0cmxlbihzKSkKKyNkZWZpbmUgV1JDUkxGCXdyaXRlKGZkLCAiXHJcbiIsIDIpCisjZGVmaW5lIEVSUlNUUklORyBzdHJlcnJvcihlcnJubykKKworI2RlZmluZSBVTU9VTlRfQVJHUwkJInVtb3VudCIsICItYSIsICItdCIsICJub2RldmZzIgorI2RlZmluZSBTV0FQT0ZGX0FSR1MgICAgICAgICAgICAic3dhcG9mZiIsICItYSIKKwordm9pZAordXNhZ2Uodm9pZCkKK3sKKwlmcHJpbnRmKHN0ZGVyciwKKwkJXygiVXNhZ2U6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iKSk7CisJZXhpdCgxKTsKK30KKworc3RhdGljIHZvaWQKK215X3B1dHMoY2hhciAqcykKK3sKKwkvKiBVc2UgYSBmcmVzaCBzdGRvdXQgYWZ0ZXIgZm9ya2luZyAqLworCWZyZW9wZW4oX1BBVEhfQ09OU09MRSwgInciLCBzdGRvdXQpOworCXB1dHMocyk7CisJZmZsdXNoKHN0ZG91dCk7Cit9CisKK3ZvaWQgCitpbnRfaGFuZGxlcihpbnQgc2lnKQoreworCXVubGluayhfUEFUSF9OT0xPR0lOKTsKKwlzaWduYWwoU0lHSU5ULCBTSUdfREZMKTsKKwlteV9wdXRzKF8oIlNodXRkb3duIHByb2Nlc3MgYWJvcnRlZCIpKTsKKwlleGl0KDEpOworfQorCitzdGF0aWMgaW50Citpc3doaXRlc3BhY2UoaW50IGEpIHsKKwlyZXR1cm4gKGEgPT0gJyAnIHx8IGEgPT0gJ1x0Jyk7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWludCBjLCBpLCBmZDsKKwljaGFyICpwdHI7CisKKwlpID0gZ2V0ZHRhYmxlc2l6ZSAoKTsKKwlmb3IgKGZkID0gMzsgZmQgPCBpOyBmZCsrKSBjbG9zZSAoZmQpOworCWlmIChnZXRwaWQgKCkgPT0gMSkKKwl7CisJICAgIGZvciAoZmQgPSAwOyBmZCA8IDM7IGZkKyspIGNsb3NlIChmZCk7CisJICAgIHdoaWxlICgxKSB3YWl0IChOVUxMKTsgIC8qICBHcmltIHJlYXBlciBuZXZlciBzdG9wcyAgKi8KKwl9CisJc2lnc2V0bWFzayAoMCk7IC8qICBzaW1wbGVpbml0KDgpIGJsb2NrcyBhbGwgc2lnbmFsczogdW5kbyBmb3IgQUxSTSAgKi8KKwlmb3IgKGkgPSAxOyBpIDwgTlNJRzsgaSsrKSBzaWduYWwgKGksIFNJR19ERkwpOworCisgICAgICAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyAgICAgICAgYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKyAgICAgICAgdGV4dGRvbWFpbihQQUNLQUdFKTsKKworI2lmbmRlZiBERUJVR0dJTkcKKwlpZihzZXRyZXVpZCAoMCwgMCkpIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBPbmx5IHJvb3QgY2FuIHNodXQgYSBzeXN0ZW0gZG93bi5cbiIpLAorCQkJYXJndlswXSk7CisJCWV4aXQoMSk7CisJfQorI2VuZGlmCisKKwlpZigqYXJndlswXSA9PSAnLScpIGFyZ3ZbMF0rKzsJLyogYWxsb3cgc2h1dGRvd24gYXMgbG9naW4gc2hlbGwgKi8KKwlwcm9nID0gYXJndlswXTsKKwlpZigocHRyID0gc3RycmNocihhcmd2WzBdLCAnLycpKSkgcHJvZyA9ICsrcHRyOworCisJLyogQWxsIG5hbWVzIChoYWx0LCByZWJvb3QsIGZhc3RoYWx0LCBmYXN0Ym9vdCwgc2h1dGRvd24pCisJICAgcmVmZXIgdG8gdGhlIHNhbWUgcHJvZ3JhbSB3aXRoIHRoZSBzYW1lIG9wdGlvbnMsCisJICAgb25seSB0aGUgZGVmYXVsdHMgZGlmZmVyLiAqLworCWlmKCFzdHJjbXAoImhhbHQiLCBwcm9nKSkgeworCQlvcHRfcmVib290ID0gMDsKKwkJb3B0X3F1aWV0ID0gMTsKKwkJb3B0X2Zhc3QgPSAwOworCQl0aW1lb3V0ID0gMDsKKwl9IGVsc2UgaWYoIXN0cmNtcCgiZmFzdGhhbHQiLCBwcm9nKSkgeworCQlvcHRfcmVib290ID0gMDsKKwkJb3B0X3F1aWV0ID0gMTsKKwkJb3B0X2Zhc3QgPSAxOworCQl0aW1lb3V0ID0gMDsKKwl9IGVsc2UgaWYoIXN0cmNtcCgicmVib290IiwgcHJvZykpIHsKKwkJb3B0X3JlYm9vdCA9IDE7CisJCW9wdF9xdWlldCA9IDE7CisJCW9wdF9mYXN0ID0gMDsKKwkJdGltZW91dCA9IDA7CisJfSBlbHNlIGlmKCFzdHJjbXAoImZhc3Rib290IiwgcHJvZykpIHsKKwkJb3B0X3JlYm9vdCA9IDE7CisJCW9wdF9xdWlldCA9IDE7CisJCW9wdF9mYXN0ID0gMTsKKwkJdGltZW91dCA9IDA7CisJfSBlbHNlIHsKKwkJLyogZGVmYXVsdHMgKi8KKwkJb3B0X3JlYm9vdCA9IDA7CisJCW9wdF9xdWlldCA9IDA7CisJCW9wdF9mYXN0ID0gMDsKKwkJdGltZW91dCA9IDIqNjA7CisJfQorCQkKKwljID0gMDsKKwl3aGlsZSgrK2MgPCBhcmdjKSB7CisJCWlmKGFyZ3ZbY11bMF0gPT0gJy0nKSB7CisJCQlmb3IoaSA9IDE7IGFyZ3ZbY11baV07IGkrKykgeworCQkJCXN3aXRjaChhcmd2W2NdW2ldKSB7CisJCQkJY2FzZSAnQyc6CisJCQkJCW9wdF91c2VfY29uZmlnX2ZpbGUgPSAxOworCQkJCQlicmVhazsKKwkJCQljYXNlICdoJzogCisJCQkJCW9wdF9yZWJvb3QgPSAwOworCQkJCQlicmVhazsKKwkJCQljYXNlICdyJzoKKwkJCQkJb3B0X3JlYm9vdCA9IDE7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ2YnOgorCQkJCQlvcHRfZmFzdCA9IDE7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ3EnOgorCQkJCQlvcHRfcXVpZXQgPSAxOworCQkJCQlicmVhazsKKwkJCQljYXNlICdzJzoKKwkJCQkJb3B0X3NpbmdsZSA9IDE7CisJCQkJCWJyZWFrOworCQkJCSAgICAKKwkJCQlkZWZhdWx0OgorCQkJCQl1c2FnZSgpOworCQkJCX0KKwkJCX0KKwkJfSBlbHNlIGlmKCFzdHJjbXAoIm5vdyIsIGFyZ3ZbY10pKSB7CisJCQl0aW1lb3V0ID0gMDsKKwkJfSBlbHNlIGlmKGFyZ3ZbY11bMF0gPT0gJysnKSB7CisJCQl0aW1lb3V0ID0gNjAgKiBhdG9pKCZhcmd2W2NdWzFdKTsKKwkJfSBlbHNlIGlmIChpc2RpZ2l0KGFyZ3ZbY11bMF0pKSB7CisJCQljaGFyICpjb2xvbjsKKwkJCWludCBob3VyID0gMDsKKwkJCWludCBtaW51dGUgPSAwOworCQkJdGltZV90IHRpY3M7CisJCQlzdHJ1Y3QgdG0gKnR0OworCQkJaW50IG5vdywgdGhlbjsKKwkJCQkKKwkJCWlmKChjb2xvbiA9IHN0cmNocihhcmd2W2NdLCAnOicpKSkgeworCQkJCSpjb2xvbiA9ICdcMCc7CisJCQkJaG91ciA9IGF0b2koYXJndltjXSk7CisJCQkJbWludXRlID0gYXRvaSgrK2NvbG9uKTsKKwkJCX0gZWxzZSB1c2FnZSgpOworCQkJCQorCQkJKHZvaWQpIHRpbWUoJnRpY3MpOworCQkJdHQgPSBsb2NhbHRpbWUoJnRpY3MpOworCQkJCQorCQkJbm93ID0gMzYwMCAqIHR0LT50bV9ob3VyICsgNjAgKiB0dC0+dG1fbWluOworCQkJdGhlbiA9IDM2MDAgKiBob3VyICsgNjAgKiBtaW51dGU7CisJCQl0aW1lb3V0ID0gdGhlbiAtIG5vdzsKKwkJCWlmKHRpbWVvdXQgPCAwKSB7CisJCQkJZnByaW50ZihzdGRlcnIsIF8oIlRoYXQgbXVzdCBiZSB0b21vcnJvdywgIgorCQkJCQkgICAgICAgICAgImNhbid0IHlvdSB3YWl0IHRpbGwgdGhlbj9cbiIpKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQl9IGVsc2UgeworCQkJeHN0cm5jcHkobWVzc2FnZSwgYXJndltjXSwgc2l6ZW9mKG1lc3NhZ2UpKTsKKwkJCW9wdF9tc2dzZXQgPSAxOworCQl9CisJfQorCisJaGFsdF9hY3Rpb25bMF0gPSAwOworCisJLyogTm8gZG91YnQgd2Ugc2hhbGwgd2FudCB0byBleHRlbmQgdGhpcyBzb21lIGRheQorCSAgIGFuZCByZWdpc3RlciBhIHNlcmllcyBvZiBjb21tYW5kcyB0byBiZSBleGVjdXRlZAorCSAgIGF0IHZhcmlvdXMgcG9pbnRzIGR1cmluZyB0aGUgc2h1dGRvd24gc2VxdWVuY2UsCisJICAgYW5kIHRvIGRlZmluZSB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBzbGVlcCwgZXRjLiAqLworCWlmIChvcHRfdXNlX2NvbmZpZ19maWxlKSB7CisJCWNoYXIgbGluZVsyNTZdLCAqcDsKKwkJRklMRSAqZnA7CisKKwkJLyogIFJlYWQgYW5kIHBhcnNlIHRoZSBjb25maWcgZmlsZSAqLworCQloYWx0X2FjdGlvblswXSA9ICdcMCc7CisJCWlmICgoZnAgPSBmb3BlbiAoX1BBVEhfU0hVVERPV05fQ09ORiwgInIiKSkgIT0gTlVMTCkgeworCQkJaWYgKGZnZXRzIChsaW5lLCBzaXplb2YobGluZSksIGZwKSAhPSBOVUxMICYmCisJCQkgICAgc3RybmNhc2VjbXAgKGxpbmUsICJIQUxUX0FDVElPTiIsIDExKSA9PSAwICYmCisJCQkgICAgaXN3aGl0ZXNwYWNlKGxpbmVbMTFdKSkgeworCQkJCXAgPSBzdHJjaHIobGluZSwgJ1xuJyk7CisJCQkJaWYgKHApCisJCQkJCSpwID0gMDsJCS8qIHN0cmlwIGZpbmFsICdcbicgKi8KKwkJCQlwID0gbGluZSsxMTsKKwkJCQl3aGlsZShpc3doaXRlc3BhY2UoKnApKQorCQkJCQlwKys7CisJCQkJc3RyY3B5KGhhbHRfYWN0aW9uLCBwKTsKKwkJCX0KKwkJCWZjbG9zZSAoZnApOworCQl9CisJfQorCisJaWYoIW9wdF9xdWlldCAmJiAhb3B0X21zZ3NldCkgeworCQkvKiBub3cgYXNrIGZvciBtZXNzYWdlLCBnZXRzKCkgaXMgaW5zZWN1cmUgKi8KKwkJaW50IGNudCA9IHNpemVvZihtZXNzYWdlKS0xOworCQljaGFyICpwdHI7CisJCQorCQlwcmludGYoIldoeT8gIik7IGZmbHVzaChzdGRvdXQpOworCQkKKwkJcHRyID0gbWVzc2FnZTsKKwkJd2hpbGUoLS1jbnQgPj0gMCAmJiAoKnB0ciA9IGdldGNoYXIoKSkgJiYgKnB0ciAhPSAnXG4nKSB7IAorCQkJcHRyKys7CisJCX0KKwkJKnB0ciA9ICdcMCc7CisJfSBlbHNlIGlmICghb3B0X21zZ3NldCkgeworCQlzdHJjcHkobWVzc2FnZSwgXygiZm9yIG1haW50ZW5hbmNlOyBib3VuY2UsIGJvdW5jZSIpKTsKKwl9CisKKyNpZmRlZiBERUJVR0dJTkcKKwlwcmludGYoInRpbWVvdXQgPSAlZCwgcXVpZXQgPSAlZCwgcmVib290ID0gJWRcbiIsCisJCXRpbWVvdXQsIG9wdF9xdWlldCwgb3B0X3JlYm9vdCk7CisjZW5kaWYKKwkKKwkvKiBzbyBtdWNoIGZvciBvcHRpb24tcHJvY2Vzc2luZywgbm93IGJlZ2luIHRlcm1pbmF0aW9uLi4uICovCisJaWYoISh3aG9tID0gZ2V0bG9naW4oKSkgfHwgISp3aG9tKSB3aG9tID0gImdob3N0IjsKKwlpZihzdHJsZW4od2hvbSkgPiA0MCkgd2hvbVs0MF0gPSAwOyAvKiBzZWUgd3JpdGVfdXNlcigpICovCisKKwlzZXRwcmlvcml0eShQUklPX1BST0NFU1MsIDAsIFBSSU9fTUlOKTsKKwlzaWduYWwoU0lHSU5ULCAgaW50X2hhbmRsZXIpOworCXNpZ25hbChTSUdIVVAsICBpbnRfaGFuZGxlcik7CisJc2lnbmFsKFNJR1FVSVQsIGludF9oYW5kbGVyKTsKKwlzaWduYWwoU0lHVEVSTSwgaW50X2hhbmRsZXIpOworCisJY2hkaXIoIi8iKTsKKworCWlmKHRpbWVvdXQgPiA1KjYwKSB7CisJCXNsZWVwKHRpbWVvdXQgLSA1KjYwKTsKKwkJdGltZW91dCA9IDUqNjA7CisJfQorCisJCisJaWYoKGZkID0gb3BlbihfUEFUSF9OT0xPR0lOLCBPX1dST05MWXxPX0NSRUFULCAwNjQ0KSkgPj0gMCkgeworCQkvKiBrZWVwIHhnZXR0ZXh0IGhhcHB5IGFuZCBsZWF2ZSBcclxuIG91dHNpZGUgc3RyaW5ncyAqLworCQlXUkNSTEY7CisJCVdSKF8oIlRoZSBzeXN0ZW0gaXMgYmVpbmcgc2h1dCBkb3duIHdpdGhpbiA1IG1pbnV0ZXMiKSk7CisJCVdSQ1JMRjsKKwkJd3JpdGUoZmQsIG1lc3NhZ2UsIHN0cmxlbihtZXNzYWdlKSk7CisJCVdSQ1JMRjsKKwkJV1IoXygiTG9naW4gaXMgdGhlcmVmb3JlIHByb2hpYml0ZWQuIikpOworCQlXUkNSTEY7CisJCWNsb3NlKGZkKTsKKwl9CisJCisJc2lnbmFsKFNJR1BJUEUsIFNJR19JR04pOworCisJaWYodGltZW91dCA+IDApIHsKKwkJd2FsbCgpOworCQlzbGVlcCh0aW1lb3V0KTsKKwl9CisKKwl0aW1lb3V0ID0gMDsKKwl3YWxsKCk7CisJc2xlZXAoMyk7CisKKwkvKiBub3cgdGhlcmUncyBubyB0dXJuaW5nIGJhY2suLi4gKi8KKwlzaWduYWwoU0lHSU5ULCAgU0lHX0lHTik7CisKKwkvKiBkbyBzeXNsb2cgbWVzc2FnZS4uLiAqLworCW9wZW5sb2cocHJvZywgTE9HX0NPTlMsIExPR19BVVRIKTsKKwlpZiAob3B0X3JlYm9vdCkKKwkJc3lzbG9nKExPR19OT1RJQ0UsIF8oInJlYm9vdGVkIGJ5ICVzOiAlcyIpLCAKKwkJICAgICAgIHdob20sIG1lc3NhZ2UpOworCWVsc2UKKwkJc3lzbG9nKExPR19OT1RJQ0UsIF8oImhhbHRlZCBieSAlczogJXMiKSwgCisJCSAgICAgICB3aG9tLCBtZXNzYWdlKTsKKwljbG9zZWxvZygpOworCisJaWYob3B0X2Zhc3QpCisJCWlmKChmZCA9IG9wZW4oIi9mYXN0Ym9vdCIsIE9fV1JPTkxZfE9fQ1JFQVQsIDA2NDQpKSA+PSAwKQorCQkJY2xvc2UoZmQpOworCisJa2lsbCgxLCBTSUdUU1RQKTsJLyogdGVsbCBpbml0IG5vdCB0byBzcGF3biBtb3JlIGdldHR5J3MgKi8KKwl3cml0ZV93dG1wKCk7CisJaWYob3B0X3NpbmdsZSkKKwkJaWYoKGZkID0gb3BlbihfUEFUSF9TSU5HTEUsIE9fQ1JFQVR8T19XUk9OTFksIDA2NDQpKSA+PSAwKQorCQkJY2xvc2UoZmQpOworCQkKKwlzeW5jKCk7CisKKwlzaWduYWwoU0lHVEVSTSwgU0lHX0lHTik7CisJaWYoZm9yaygpID4gMCkgc2xlZXAoMTAwMCk7IC8qIHRoZSBwYXJlbnQgd2lsbCBkaWUgc29vbi4uLiAqLworCXNldHBncnAoKTsJCS8qIHNvIHRoZSBzaGVsbCB3b250IGtpbGwgdXMgaW4gdGhlIGZhbGwgKi8KKworI2lmbmRlZiBERUJVR0dJTkcKKwkvKiBhIGdlbnRsZSBraWxsIG9mIGFsbCBvdGhlciBwcm9jZXNzZXMgZXhjZXB0IGluaXQgKi8KKwlraWxsX21vcnRhbHMgKFNJR1RFUk0pOworCWZvciAoZmQgPSAwOyBmZCA8IDM7IGZkKyspIGNsb3NlIChmZCk7CisJc3RvcF9maW5hbHByb2cgKCk7CisJc2xlZXAgKDEpOyAgICAgICAgICAgICAgICAgICAgLyogIFRpbWUgZm9yIHNhdmVzIHRvIHN0YXJ0ICAgICAgICAgICAqLworCWtpbGwgKDEsIFNJR1RFUk0pOyAgICAgICAgICAgIC8qICBUZWxsIGluaXQgdG8ga2lsbCBzcGF3bmVkIGdldHR5cyAgKi8KKwl1c2xlZXAgKDEwMDAwMCk7ICAgICAgICAgICAgICAvKiAgV2FpdCBmb3IgZ2V0dHlzIHRvIGRpZSAgICAgICAgICAgICovCisJbXlfcHV0cyAoIiIpOyAgICAgICAgICAgICAgICAgLyogIEdldCBwYXN0IHRoZSBsb2dpbiBwcm9tcHQgICAgICAgICAqLworCXN5c3RlbSAoIi9zYmluL2luaXRjdGwgLXIiKTsgIC8qICBSb2xsIGJhY2sgc2VydmljZXMgICAgICAgICAgICAgICAgKi8KKwlzeW5jd2FpdCAoMSk7CisJbXlfcHV0cyAoIlNlbmRpbmcgU0lHVEVSTSB0byBhbGwgcmVtYWluaW5nIHByb2Nlc3Nlcy4uLiIpOworCWtpbGwgKC0xLCBTSUdURVJNKTsKKwlzbGVlcCAoMik7ICAgICAgICAgICAgICAgICAgICAvKiAgRGVmYXVsdCAyLCBzb21lIHBlb3BsZSBuZWVkIDUgICAgICovCisKKwlraWxsICgtMSwgU0lHS0lMTCk7ICAgICAgICAgICAvKiAgTm93IHVzZSBicnV0ZSBmb3JjZS4uLiAgICAgICAgICAgICovCisKKwkvKiB0dXJuIG9mZiBhY2NvdW50aW5nICovCisJYWNjdChOVUxMKTsKKyNlbmRpZgorCS8qIFJlZEhhdCBhbmQgU3VTRSBsaWtlIHRvIHJlbW92ZSAvZXRjL25vbG9naW4uCisJICAgUGVyaGFwcyB0aGUgdXN1YWwgc2VxdWVuY2UgaXMKKwkgICAgICB0b3VjaCBub2xvZ2luOyBzaHV0ZG93biAtaDsgZmlkZGxlIHdpdGggaGFyZHdhcmU7CisJICAgICAgYm9vdDsgZmlkZGxlIHdpdGggc29mdHdhcmU7IHJtIG5vbG9naW4KKwkgICBhbmQgcmVtb3ZpbmcgaXQgaGVyZSB3aWxsIGJlIGNvdW50ZXJwcm9kdWN0aXZlLgorCSAgIExldCB1cyBzZWUgd2hldGhlciBwZW9wbGUgY29tcGxhaW4uICovCisJdW5saW5rKF9QQVRIX05PTE9HSU4pOworCisJLyogIFRlbGwgaW5pdCg4KSB0byBleGVjIHNvIHRoYXQgdGhlIG9sZCBpbm9kZSBtYXkgYmUgZnJlZWQgY2xlYW5seSBpZgorCSAgICByZXF1aXJlZC4gTmVlZCB0byBzbGVlcCBiZWZvcmUgcmVtb3VudGluZyByb290IHJlYWQtb25seSAgKi8KKwlraWxsICgxLCBTSUdRVUlUKTsKKworCXNsZWVwICgxKTsJLyogVGltZSBmb3IgcHJvY2Vzc2VzIHRvIGRpZSBhbmQgY2xvc2UgZmlsZXMgKi8KKwlzeW5jd2FpdCAoMik7CisKKwkvKiByZW1vdmUgc3dhcCBmaWxlcyBhbmQgcGFydGl0aW9ucyB1c2luZyBzd2Fwb2ZmICovCisJc3dhcF9vZmYoKTsKKworCS8qIHVubW91bnQgZGlza3MuLi4gKi8KKwl1bm1vdW50X2Rpc2tzKCk7CisJc3luY3dhaXQgKDEpOworCisJaWYob3B0X3JlYm9vdCkgeworCQlteV9yZWJvb3QoTElOVVhfUkVCT09UX0NNRF9SRVNUQVJUKTsgLyogUkJfQVVUT0JPT1QgKi8KKwkJbXlfcHV0cyhfKCJcbldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iKSk7CisJfSBlbHNlIHsKKwkJbXlfcHV0cyhfKCJcbk5vdyB5b3UgY2FuIHR1cm4gb2ZmIHRoZSBwb3dlci4uLiIpKTsKKworCQkvKiBhbGxvdyBDLUEtRCBub3csIGZhaXRoQGNzLnVuYy5lZHUsIHJlLWZpeGVkIDgtSnVsLTk2ICovCisJCW15X3JlYm9vdChMSU5VWF9SRUJPT1RfQ01EX0NBRF9PTik7IC8qIFJCX0VOQUJMRV9DQUQgKi8KKwkJc2xlZXAgKDEpOyAgLyogIFdhaXQgZm9yIGRldmljZXMgdG8gZmluaXNoIHdyaXRpbmcgdG8gbWVkaWEgICovCisJCWRvX2hhbHQoaGFsdF9hY3Rpb24pOworCX0KKwkvKiBOT1RSRUFDSEVEICovCisJZXhpdCgwKTsgLyogdG8gcXVpZXQgZ2NjICovCit9CisKKy8qKiogZW5kIG9mIG1haW4oKSAqKiovCisKK3ZvaWQKK2RvX2hhbHQoY2hhciAqYWN0aW9uKSB7CisJaWYgKHN0cmNhc2VjbXAgKGFjdGlvbiwgInBvd2VyX29mZiIpID09IDApIHsKKwkJcHJpbnRmKF8oIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIikpOworCQlmZmx1c2goc3Rkb3V0KTsKKwkJbXlfcmVib290KExJTlVYX1JFQk9PVF9DTURfUE9XRVJfT0ZGKTsKKwkJcHJpbnRmKF8oIkVycm9yIHBvd2VyaW5nIG9mZlx0JXNcbiIpLCBFUlJTVFJJTkcpOworCQlmZmx1c2goc3Rkb3V0KTsKKwkJc2xlZXAgKDIpOworCX0gZWxzZQorCisJLyogVGhpcyBzaG91bGQgYmUgaW1wcm92ZWQ7IGUuZy4gTWlrZSBKYWdkaXMgd2FudHMgIi9zYmluL21kc3RvcCAtYSIgKi8KKwkvKiBNYXliZSB3ZSBzaG91bGQgYWxzbyBmb3JrIGFuZCB3YWl0ICovCisJaWYgKGFjdGlvblswXSA9PSAnLycpIHsKKwkJcHJpbnRmKF8oIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iKSwgYWN0aW9uKTsKKwkJZmZsdXNoKHN0ZG91dCk7CisJCWV4ZWNsKGFjdGlvbiwgYWN0aW9uLCBOVUxMKTsKKwkJcHJpbnRmKF8oIkVycm9yIGV4ZWN1dGluZ1x0JXNcbiIpLCBFUlJTVFJJTkcpOworCQlmZmx1c2goc3Rkb3V0KTsKKwkJc2xlZXAgKDIpOworCX0KKworCW15X3JlYm9vdChMSU5VWF9SRUJPT1RfQ01EX0hBTFQpOyAvKiBSQl9IQUxUX1NZU1RFTSAqLworfQorCit2b2lkCit3cml0ZV91c2VyKHN0cnVjdCB1dG1wICp1dCkKK3sKKwlpbnQgZmQ7CisJaW50IG1pbnV0ZXMsIGhvdXJzOworCWNoYXIgdGVybVs0MF0gPSB7Jy8nLCdkJywnZScsJ3YnLCcvJywwfTsKKwljaGFyIG1zZ1sxMDBdOworCisJbWludXRlcyA9IHRpbWVvdXQgLyA2MDsKKwlob3VycyA9IG1pbnV0ZXMgLyA2MDsKKwltaW51dGVzICU9IDYwOworCisJKHZvaWQpIHN0cm5jYXQodGVybSwgdXQtPnV0X2xpbmUsIHNpemVvZih1dC0+dXRfbGluZSkpOworCisJLyogdHJ5IG5vdCB0byBnZXQgc3R1Y2sgb24gYSBtYW5nbGVkIHV0X2xpbmUgZW50cnkuLi4gKi8KKwlpZigoZmQgPSBvcGVuKHRlcm0sIE9fV1JPTkxZfE9fTk9OQkxPQ0spKSA8IDApCisJICAgICAgICByZXR1cm47CisKKwltc2dbMF0gPSAnXDAwNyc7CS8qIGdldHRleHQgY3Jhc2hlcyBvbiBcYSAqLworCXNwcmludGYobXNnKzEsIF8oIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiKSwgd2hvbSk7CisJV1JDUkxGOworCVdSKG1zZyk7CisJV1JDUkxGOworCisJaWYgKGhvdXJzID4gMSkKKwkJc3ByaW50Zihtc2csIF8oIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiKSwKKwkJCWhvdXJzLCBtaW51dGVzKTsKKwllbHNlIGlmIChob3VycyA9PSAxKQorCQlzcHJpbnRmKG1zZywgXygiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBob3VyICVkIG1pbnV0ZXMiKSwKKwkJCW1pbnV0ZXMpOworCWVsc2UgaWYgKG1pbnV0ZXMgPiAxKQorCQlzcHJpbnRmKG1zZywgXygiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgbWludXRlc1xuIiksCisJCQltaW51dGVzKTsKKwllbHNlIGlmIChtaW51dGVzID09IDEpCisJCXNwcmludGYobXNnLCBfKCJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIG1pbnV0ZVxuIikpOworCWVsc2UKKwkJc3ByaW50Zihtc2csIF8oIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIikpOworCisJV1IobXNnKTsKKwlXUkNSTEY7CisKKwlzcHJpbnRmKG1zZywgXygiXHQuLi4gJXMgLi4uXG4iKSwgbWVzc2FnZSk7CisJV1IobXNnKTsKKwlXUkNSTEY7CisKKwljbG9zZShmZCk7Cit9CisKK3ZvaWQKK3dhbGwodm9pZCkKK3sKKwkvKiB3cml0ZSB0byBhbGwgdXNlcnMsIHRoYXQgdGhlIHN5c3RlbSBpcyBnb2luZyBkb3duLiAqLworCXN0cnVjdCB1dG1wICp1dDsKKwkJCisJdXRtcG5hbWUoX1BBVEhfVVRNUCk7CisJc2V0dXRlbnQoKTsKKwkKKwl3aGlsZSgodXQgPSBnZXR1dGVudCgpKSkgeworCQlpZih1dC0+dXRfdHlwZSA9PSBVU0VSX1BST0NFU1MpCisJCQl3cml0ZV91c2VyKHV0KTsKKwl9CisJZW5kdXRlbnQoKTsKK30KKwordm9pZAord3JpdGVfd3RtcCh2b2lkKQoreworCS8qIHdyaXRlIGluIHd0bXAgdGhhdCB3ZSBhcmUgZHlpbmcgKi8KKwlpbnQgZmQ7CisJc3RydWN0IHV0bXAgdXQ7CisJCisJbWVtc2V0KChjaGFyICopJnV0LCAwLCBzaXplb2YodXQpKTsKKwlzdHJjcHkodXQudXRfbGluZSwgIn4iKTsKKwltZW1jcHkodXQudXRfbmFtZSwgInNodXRkb3duIiwgc2l6ZW9mKHV0LnV0X25hbWUpKTsKKworCXRpbWUoJnV0LnV0X3RpbWUpOworCXV0LnV0X3R5cGUgPSBCT09UX1RJTUU7CisJCisJaWYoKGZkID0gb3BlbihfUEFUSF9XVE1QLCBPX1dST05MWXxPX0FQUEVORCwgMDY0NCkpID49IDApIHsKKwkJd3JpdGUoZmQsIChjaGFyICopJnV0LCBzaXplb2YodXQpKTsKKwkJY2xvc2UoZmQpOworCX0KK30KKwordm9pZAorc3dhcF9vZmYodm9pZCkKK3sKKwkvKiBzd2Fwb2ZmIGVzcC4gc3dhcCBGSUxFUyBzbyB0aGUgdW5kZXJseWluZyBwYXJ0aXRpb24gY2FuIGJlCisJICAgdW5tb3VudGVkLiBJdCB5b3UgZG9uJ3QgaGF2ZSBzd2Fwb2ZmKDEpIG9yIHVzZSBtb3VudCB0bworCSAgIGFkZCBzd2Fwc3BhY2UsIHRoaXMgbWF5IG5vdCBiZSBuZWNlc3NhcnksIGJ1dCBJIGd1ZXNzIGl0CisJICAgd29uJ3QgaHVydCAqLworCisJaW50IHBpZDsKKwlpbnQgcmVzdWx0OworCWludCBzdGF0dXM7CisKKwlzeW5jKCk7CisJaWYgKChwaWQgPSBmb3JrKCkpIDwgMCkgeworCQlteV9wdXRzKF8oIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiKSk7CisJCXJldHVybjsKKwl9CisJaWYgKCFwaWQpIHsKKwkJZXhlY2woIi9zYmluL3N3YXBvZmYiLCBTV0FQT0ZGX0FSR1MsIE5VTEwpOworCQlleGVjbCgiL2V0Yy9zd2Fwb2ZmIiwgU1dBUE9GRl9BUkdTLCBOVUxMKTsKKwkJZXhlY2woIi9iaW4vc3dhcG9mZiIsIFNXQVBPRkZfQVJHUywgTlVMTCk7CisJCWV4ZWNscCgic3dhcG9mZiIsIFNXQVBPRkZfQVJHUywgTlVMTCk7CisJCW15X3B1dHMoXygiQ2Fubm90IGV4ZWMgc3dhcG9mZiwgIgorCQkJICAiaG9waW5nIHVtb3VudCB3aWxsIGRvIHRoZSB0cmljay4iKSk7CisJCWV4aXQoMCk7CisJfQorCXdoaWxlICgocmVzdWx0ID0gd2FpdCgmc3RhdHVzKSkgIT0gLTEgJiYgcmVzdWx0ICE9IHBpZCkKKwkJOworfQorCit2b2lkCit1bm1vdW50X2Rpc2tzKHZvaWQpCit7CisJLyogYmV0dGVyIHRvIHVzZSB1bW91bnQgZGlyZWN0bHkgYmVjYXVzZSBpdCBtYXkgYmUgc21hcnRlciB0aGFuIHVzICovCisKKwlpbnQgcGlkOworCWludCByZXN1bHQ7CisJaW50IHN0YXR1czsKKworCXN5bmMoKTsKKwlpZiAoKHBpZCA9IGZvcmsoKSkgPCAwKSB7CisJCW15X3B1dHMoXygiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIpKTsKKwkJdW5tb3VudF9kaXNrc19vdXJzZWx2ZXMoKTsKKwkJcmV0dXJuOworCX0KKwlpZiAoIXBpZCkgeworCQlleGVjbChfUEFUSF9VTU9VTlQsIFVNT1VOVF9BUkdTLCBOVUxMKTsKKworCQkvKiBuZWVkIG15X3ByaW50ZiBpbnN0ZWFkIG9mIG15X3B1dHMgaGVyZSAqLworCQlmcmVvcGVuKF9QQVRIX0NPTlNPTEUsICJ3Iiwgc3Rkb3V0KTsKKwkJcHJpbnRmKF8oIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIiksIF9QQVRIX1VNT1VOVCk7CisJCWZmbHVzaChzdGRvdXQpOworCisJCWV4ZWNscCgidW1vdW50IiwgVU1PVU5UX0FSR1MsIE5VTEwpOworCQlteV9wdXRzKF8oIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iKSk7CisJCWV4aXQoMCk7CisJfQorCXdoaWxlICgocmVzdWx0ID0gd2FpdCgmc3RhdHVzKSkgIT0gLTEgJiYgcmVzdWx0ICE9IHBpZCkKKwkJOworCW15X3B1dHMoXygiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIikpOworCXVubW91bnRfZGlza3Nfb3Vyc2VsdmVzKCk7Cit9CisKK3ZvaWQKK3VubW91bnRfZGlza3Nfb3Vyc2VsdmVzKHZvaWQpCit7CisJLyogdW5tb3VudCBhbGwgZGlza3MgKi8KKworCUZJTEUgKm10YWI7CisJc3RydWN0IG1udGVudCAqbW50OworCWNoYXIgKm1udGxpc3RbMTI4XTsKKwlpbnQgaTsKKwlpbnQgbjsKKwljaGFyICpmaWxlc3lzOworCQorCXN5bmMoKTsKKwlpZiAoIShtdGFiID0gc2V0bW50ZW50KF9QQVRIX01PVU5URUQsICJyIikpKSB7CisJCW15X3B1dHMoInNodXRkb3duOiBDYW5ub3Qgb3BlbiAiIF9QQVRIX01PVU5URUQgIi4iKTsKKwkJcmV0dXJuOworCX0KKwluID0gMDsKKwl3aGlsZSAobiA8IDEwMCAmJiAobW50ID0gZ2V0bW50ZW50KG10YWIpKSkgeworCQkvKgorCQkgKiBOZWlsIFBoaWxsaXBzOiB0cnlpbmcgdG8gdW5tb3VudCB0ZW1wb3JhcnkgLyBrZXJuZWwKKwkJICogZmlsZXN5c3RlbXMgaXMgcG9pbnRsZXNzIGFuZCBtYXkgY2F1c2UgZXJyb3IgbWVzc2FnZXM7CisJCSAqIC9kZXYgY2FuIGJlIGEgcmFtZnMgbWFuYWdlZCBieSB1ZGV2LgorCQkgKi8KKwkJaWYgKHN0cmNtcChtbnQtPm1udF90eXBlLCAiZGV2ZnMiKSA9PSAwIHx8CisJCSAgICBzdHJjbXAobW50LT5tbnRfdHlwZSwgInByb2MiKSA9PSAwIHx8CisJCSAgICBzdHJjbXAobW50LT5tbnRfdHlwZSwgInN5c2ZzIikgPT0gMCB8fAorCQkgICAgc3RyY21wKG1udC0+bW50X3R5cGUsICJyYW1mcyIpID09IDAgfHwKKwkJICAgIHN0cmNtcChtbnQtPm1udF90eXBlLCAidG1wZnMiKSA9PSAwIHx8CisJCSAgICBzdHJjbXAobW50LT5tbnRfdHlwZSwgImRldnB0cyIpID09IDApCisJCQljb250aW51ZTsKKwkJbW50bGlzdFtuKytdID0gc3RyZHVwKG1udC0+bW50X2Rpcik7CisJfQorCWVuZG1udGVudChtdGFiKTsKKworCS8qIHdlIGFyZSBjYXJlZnVsIHRvIGRvIHRoaXMgaW4gcmV2ZXJzZSBvcmRlciBvZiB0aGUgbXRhYiBmaWxlICovCisKKwlmb3IgKGkgPSBuIC0gMTsgaSA+PSAwOyBpLS0pIHsKKwkJZmlsZXN5cyA9IG1udGxpc3RbaV07CisjaWZkZWYgREVCVUdHSU5HCisJCXByaW50ZigidW1vdW50ICVzXG4iLCBmaWxlc3lzKTsKKyNlbHNlCisJCWlmICh1bW91bnQobW50bGlzdFtpXSkgPCAwKQorCQkJcHJpbnRmKF8oInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iKSwKKwkJCSAgICAgICBmaWxlc3lzLCBFUlJTVFJJTkcpOworI2VuZGlmCisJfQorfQorCitzdGF0aWMgdm9pZCBraWxsX21vcnRhbHMgKGludCBzaWcpCit7CisgICAgaW50IG5waWRzID0gMDsKKyAgICBpbnQgaW5kZXggPSAwOworICAgIGludCBwaWQ7CisgICAgc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKyAgICBESVIgKmRwOworICAgIHN0cnVjdCBkaXJlbnQgKmRlOworICAgIHBpZF90ICpwaWRzID0gTlVMTDsKKyAgICBjaGFyIHBhdGhbMjU2XTsKKworICAgIGlmICggKCBkcCA9IG9wZW5kaXIgKCIvcHJvYyIpICkgPT0gTlVMTCApIHJldHVybjsKKyAgICB3aGlsZSAoICggZGUgPSByZWFkZGlyIChkcCkgKSAhPSBOVUxMICkKKyAgICB7CisJaWYgKCAhaXNkaWdpdCAoZGUtPmRfbmFtZVswXSkgKSBjb250aW51ZTsKKwlwaWQgPSBhdG9pIChkZS0+ZF9uYW1lKTsKKwlzcHJpbnRmIChwYXRoLCAiL3Byb2MvJWQiLCBwaWQpOworCWlmIChzdGF0IChwYXRoLCAmc3RhdGJ1ZikgIT0gMCkgY29udGludWU7CisJaWYgKHN0YXRidWYuc3RfdWlkIDwgMTAwKSBjb250aW51ZTsKKwlpZiAoaW5kZXggPD0gbnBpZHMpCisJeworCSAgICBwaWRzID0gcmVhbGxvYyAocGlkcywgbnBpZHMgKyAxNjM4NCk7CisJICAgIGlmIChwaWRzID09IE5VTEwpIHJldHVybjsKKwkgICAgbnBpZHMgKz0gMTYzODQ7CisJfQorCXBpZHNbaW5kZXgrK10gPSBwaWQ7CisgICAgfQorICAgIGZwdXRzICgiU2VuZGluZyBTSUdURVJNIHRvIG1vcnRhbHMuLi4iLCBzdGRlcnIpOworICAgIGZvciAoLS1pbmRleDsgaW5kZXggPj0gMDsgLS1pbmRleCkga2lsbCAocGlkc1tpbmRleF0sIHNpZyk7CisgICAgZnJlZSAocGlkcyk7CisgICAgY2xvc2VkaXIgKGRwKTsKK30gICAvKiAgRW5kIEZ1bmN0aW9uIGtpbGxfbW9ydGFscyAgKi8KKworc3RhdGljIHZvaWQgc3RvcF9maW5hbHByb2cgKHZvaWQpCit7CisgICAgY2hhciAqcDEsICpwMjsKKyAgICBGSUxFICpmcDsKKyAgICBjaGFyIGxpbmVbMjU2XTsKKworICAgIGlmICggKCBmcCA9IGZvcGVuIChfUEFUSF9JTklUVEFCLCAiciIpICkgPT0gTlVMTCApIHJldHVybjsKKyAgICB3aGlsZSAoZmdldHMgKGxpbmUsIDI1NiwgZnApICE9IE5VTEwpCisgICAgeworCXBpZF90IHBpZDsKKworCWxpbmVbc3RybGVuIChsaW5lKSAtIDFdID0gJ1wwJzsKKwlwMSA9IGxpbmU7CisJd2hpbGUgKCBpc3NwYWNlICgqcDEpICkgKytwMTsKKwlpZiAoc3RybmNtcCAocDEsICJmaW5hbHByb2ciLCA5KSAhPSAwKSBjb250aW51ZTsKKwlpZiAoICggcDEgPSBzdHJjaHIgKHAxICsgOSwgJz0nKSApID09IE5VTEwgKSBjb250aW51ZTsKKwlmb3IgKCsrcDE7IGlzc3BhY2UgKCpwMSk7ICsrcDEpOworCWlmICgqcDEgPT0gJ1wwJykgY29udGludWU7CisJZm9yIChwMiA9IHAxOyAhaXNzcGFjZSAoKnAyKTsgKytwMik7CisJKnAyID0gJ1wwJzsKKwlzd2l0Y2ggKCBwaWQgPSBmb3JrICgpICkKKwl7CisJICBjYXNlIDA6ICAgLyogIENoaWxkICAgKi8KKwkgICAgZXhlY2wgKHAxLCBwMSwgInN0b3AiLCBOVUxMKTsKKwkgICAgYnJlYWs7CisJICBjYXNlIC0xOiAgLyogIEVycm9yICAgKi8KKwkgICAgYnJlYWs7CisJICBkZWZhdWx0OiAgLyogIFBhcmVudCAgKi8KKwkgICAgd2FpdHBpZCAocGlkLCBOVUxMLCAwKTsKKwkgICAgYnJlYWs7CisJfQorCWZjbG9zZSAoZnApOworCXJldHVybjsKKyAgICB9CisgICAgZmNsb3NlIChmcCk7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBzdG9wX2ZpbmFscHJvZyAgKi8KKworc3RhdGljIHZvaWQgc3luY3dhaXQgKGludCB0aW1ldmFsKQoreworICAgIHN0YXRpYyBpbnQgZG9fd2FpdCA9IDA7CisgICAgc3RhdGljIGludCBmaXJzdF90aW1lID0gMTsKKworICAgIHN5bmMgKCk7CisgICAgLyogIEtlcm5lbCB2ZXJzaW9uIDEuMy4yMCBhbmQgYWZ0ZXIgYXJlIHN1cHBvc2VkIHRvIHdhaXQgYXV0b21hdGljYWxseSAgKi8KKyAgICBpZiAoZmlyc3RfdGltZSkKKyAgICB7CisJc3RydWN0IHV0c25hbWUgdXRzOworCisJZmlyc3RfdGltZSA9IDA7CisJdW5hbWUgKCZ1dHMpOworCWlmICh1dHMucmVsZWFzZVswXSA8ICcyJykgZG9fd2FpdCA9IDE7CisgICAgfQorICAgIGlmIChkb193YWl0KSBzbGVlcCAodGltZXZhbCk7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBzeW5jd2FpdCAgKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NpbXBsZWluaXQuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NpbXBsZWluaXQuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmFmMDkzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2ltcGxlaW5pdC44CkBAIC0wLDAgKzEsMTgwIEBACisuXCIgQ29weXJpZ2h0IDE5OTIsIDE5OTMgUmlja2FyZCBFLiBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSkKKy5cIiBNYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisuXCIgIiBmb3IgZW1hY3MncyBoaWxpdDE5IG1vZGUgOi0pCisuVEggU0lNUExFSU5JVCA4ICIyNSBGZWJydWFyeSAyMDAxIiAiTGludXggMC45OSIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorc2ltcGxlaW5pdCBcLSBwcm9jZXNzIGNvbnRyb2wgaW5pdGlhbGl6YXRpb24KKy5TSCBTWU5PUFNJUworLkIgaW5pdAorLlJCIFsgc2luZ2xlIF0KKy5SSSBbIHNjcmlwdCBdCisuU0ggREVTQ1JJUFRJT04KKy5CIGluaXQKK2lzIGludm9rZWQgYXMgdGhlIGxhc3Qgc3RlcCBpbiB0aGUgTGludXggYm9vdCBzZXF1ZW5jZS4gIElmIHRoZQorLkIgc2luZ2xlCitvcHRpb24gaXMgdXNlZCwgb3IgaWYgdGhlIGZpbGUKKy5JIC9ldGMvc2luZ2xlYm9vdAorZXhpc3RzLCB0aGVuIHNpbmdsZSB1c2VyIG1vZGUgd2lsbCBiZSBlbnRlcmVkLCBieSBzdGFydGluZworLklSIC9iaW4vc2ggLgorSWYgdGhlIGZpbGUKKy5JIC9ldGMvc2VjdXJlc2luZ2xlCitleGlzdHMsIHRoZW4gdGhlIHJvb3QgcGFzc3dvcmQgd2lsbCBiZSByZXF1aXJlZCB0byBzdGFydCBzaW5nbGUgdXNlciBtb2RlLgorSWYgdGhlIHJvb3QgcGFzc3dvcmQgZG9lcyBub3QgZXhpc3QsIG9yIGlmCisuSSAvZXRjL3Bhc3N3ZAorZG9lcyBub3QgZXhpc3QsIHRoZSBjaGVja2luZyBvZiB0aGUgcGFzc3dvcmQgd2lsbCBiZSBza2lwcGVkLgorCitJZiB0aGUgZmlsZQorLkkgL2V0Yy9UWgorZXhpc3RzLCB0aGVuIHRoZSBjb250ZW50cyBvZiB0aGF0IGZpbGUgd2lsbCBiZSByZWFkLCBhbmQgdXNlZCB0byBzZXQgdGhlIFRaCitlbnZpcm9ubWVudCB2YXJpYWJsZSBmb3IgZWFjaCBwcm9jZXNzIHN0YXJ0ZWQgYnkKKy5CUiBzaW1wbGVpbml0IC4KK1RoaXMgImZlYXR1cmUiIGlzIG9ubHkgYXZhaWxhYmxlIGlmIGl0J3MgY29uZmlndXJlZCBhdCBjb21waWxlLXRpbWUuIEl0J3MKK25vdCBub3JtYWxseSBuZWVkZWQuCisKK0FmdGVyIHNpbmdsZSB1c2VyIG1vZGUgaXMgdGVybWluYXRlZCwgdGhlCisuSSAvZXRjL3JjCitmaWxlIGlzIGV4ZWN1dGVkLCBhbmQgdGhlIGluZm9ybWF0aW9uIGluCisuSSAvZXRjL2luaXR0YWIKK3dpbGwgYmUgdXNlZCB0byBzdGFydCBwcm9jZXNzZXMuIEFsdGVybmF0aXZlbHksIHRoZSBcZkkvZXRjL2luaXR0YWJcZlAKK2ZpbGUgbWF5IGJlIGNvbmZpZ3VyZWQgdG8gcnVuIGEgZGlmZmVyZW50IGJvb3Qgc2NyaXB0LiBTZWUgYmVsb3cgZm9yCitkZXRhaWxzLgorCisuU0ggIlRIRSBJTklUVEFCIEZJTEUiCitCZWNhdXNlIG9mIHRoZSBudW1iZXIgb2YgaW5pdCBwcm9ncmFtcyB3aGljaCBhcmUgYXBwZWFyaW5nIGluIHRoZSBMaW51eAorY29tbXVuaXR5LCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCisuSSAvZXRjL2luaXR0YWIKK2ZpbGUsIHdoaWNoIGlzIHVzdWFsbHkgZm91bmQgd2l0aCB0aGUKKy5CUiBpbml0dGFiICg1KQorbWFuIHBhZ2UsIGlzIHByZXNlbnRlZCBoZXJlOgorCitUaGUgZm9ybWF0IGlzCisKKy5SUworLkIgYm9vdHByb2c9ZmlsZQorCisuQiBmaWxlcHJlZml4PXN0cmluZworCisuQiBQQVRIPXNlYXJjaCBwYXRoCisKKy5CIElOSVRfUEFUSD1zZWFyY2ggcGF0aAorCisuQiAidHR5bGluZTp0ZXJtY2FwLWVudHJ5OmdldHR5LWNvbW1hbmQiCisKKy5CIGZpbmFscHJvZz1wYXRoCisuUkUKKworQW4gZXhhbXBsZSBpcyBhcyBmb2xsb3dzOgorCisubmYKKy5SUworYm9vdHByb2cgICAgID0KK2ZpbGVwcmVmaXggICA9ICAvc2Jpbi9pbml0LmQvCitQQVRIICAgICAgICAgPSAgL3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4KK0lOSVRfUEFUSCAgICA9ICAvc2Jpbi9pbml0LmQKKwordHR5MTpsaW51eDovc2Jpbi9nZXR0eSA5NjAwIHR0eTEKK3R0eTI6bGludXg6L3NiaW4vZ2V0dHkgOTYwMCB0dHkyCit0dHkzOmxpbnV4Oi9zYmluL2dldHR5IDk2MDAgdHR5MwordHR5NDpsaW51eDovc2Jpbi9nZXR0eSA5NjAwIHR0eTQKKyMgdHR5NTpsaW51eDovc2Jpbi9nZXR0eSA5NjAwIHR0eTUKKyMgdHR5UzE6ZHVtYjovc2Jpbi9nZXR0eSA5NjAwIHR0eVMxCisjIHR0eVMyOmR1bWI6L3NiaW4vZ2V0dHkgLW0gLXQ2MCAyNDAwIHR0eVMyCisKK2ZpbmFscHJvZyAgID0gL3NiaW4vcmMueGRtCisuUkUKKy5maQorCitMaW5lcyBiZWdpbm5pbmcgd2l0aCB0aGUKKy5CICMKK2NoYXJhY3RlciBhcmUgdHJlYXRlZCBhcyBjb21tZW50cy4gIFBsZWFzZSBzZWUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCisuQlIgZ2V0dHkgKDgpCitjb21tYW5kIHRoYXQgeW91IGFyZSB1c2luZywgc2luY2UgdGhlcmUgYXJlIHNldmVyYWwgb2YgdGhlc2UgaW4gdGhlIExpbnV4Citjb21tdW5pdHkgYXQgdGhpcyB0aW1lLgorCitUaGUgXGZCYm9vdHByb2dcZlAgdmFsdWUgaXMgYXBwZW5kZWQgdG8gdGhlIFxmQmZpbGVwcmVmaXhcZlAgdmFsdWUsCithbmQgdGhlIHJlc3VsdCBzcGVjaWZpZXMgdGhlIGJvb3QgcHJvZ3JhbW1lIChzY3JpcHQpIHRvIHJ1bi4gSWYKK3Vuc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBpcyBcZkkvZXRjL3JjXGZQLiBJZiB0aGUgYm9vdCBwcm9ncmFtbWUgaXMgYQorZGlyZWN0b3J5LCB0aGVuIGFsbCBzY3JpcHRzIGluIHRoYXQgZGlyZWN0b3J5IHRyZWUgYXJlIGV4ZWN1dGVkLCBpbgorcGFyYWxsZWwuIFNlZSB0aGUgXGZCbmVlZFxmUCg4KSBwcm9ncmFtbWUgZm9yIGRldGFpbHMgb24gaG93IHRvCitlbGVnYW50bHkgY29udHJvbCBvcmRlciBvZiBleGVjdXRpb24gYW5kIG1hbmFnZSBkZXBlbmRlbmNpZXMuCisKK1RoZSBcZkJQQVRIXGZQIHZhbHVlIGlzIGFzc2lnbmVkIHRvIHRoZSBQQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIG9mCitjaGlsZCBwcm9jZXNzZXMgKGJvb3Qgc2NyaXB0cykuCisKK1RoZSBcZkJJTklUX1BBVEhcZlAgdmFsdWUgaXMgdXNlZCBieSBzaW1wbGVpbml0KDgpIGl0c2VsZiB0byBmaW5kIHRoZQorbG9jYXRpb24gb2Ygc2NyaXB0cyB0byBydW4gKGlmIGFuIGFic29sdXRlIHBhdGggaXMgbm90IGdpdmVuKS4gSWYKK3Vuc2V0IGFuZCB0aGUgYm9vdCBwcm9ncmFtbWUgaXMgYSBkaXJlY3RvcnksIHRoYXQgZGlyZWN0b3J5IGlzIHVzZWQuCitGaW5hbGx5LCBpZiB0aGUgc2NyaXB0IGNhbm5vdCBiZSBmb3VuZCBpbiB0aGlzIHBhdGgsIHRoZSBzdGFuZGFyZAorXGZCUEFUSFxmUCBpcyB1c2VkLiBUaGlzIHNlcGFyYXRpb24gYWxsb3dzIGJvb3Qgc2NyaXB0cyB0byBpbnZva2UKK3Byb2dyYW1tZXMgb2YgdGhlIHNhbWUgbmFtZSB3aXRob3V0IGNvbmZsaWN0IGFuZCB3aXRob3V0IG5lZWRpbmcgdG8KK3NwZWNpZnkgYWJzb2x1dGUgcGF0aHMuCisKK1RoZSBcZkJmaW5hbHByb2dcZlAgdmFsdWUgc3BlY2lmaWVzIHRoZSBwYXRoIG9mIHRoZSBwcm9ncmFtbWUgdG8gcnVuCithZnRlciBhbGwgXGZCZ2V0dHlcZlAoOCkgaW5zdGFuY2VzIGFyZSBzcGF3bmVkLiBBdCBib290dXAsIGl0IGlzCitwYXNzZWQgYSBzaW5nbGUgYXJndW1lbnQ6ICJzdGFydCIuIEF0IHNodXRkb3duLCBpdCBpcyBjYWxsZWQgYWdhaW4sCit0aGlzIHRpbWUgd2l0aCB0aGUgYXJndW1lbnQ6ICJzdG9wIi4KKy5TSCBTSUdOQUxTCitcZkJzaW1wbGVpbml0XGZQKDgpIHJlc3BvbmRzIHRvIHNpZ25hbHMgaW4gYSB2YXJpZXR5IG9mIHdheXM6CisuVFAKKy5CIFNJR0hVUAorVGhlIFxmSS9ldGMvaW5pdHRhYlxmUCBjb25maWd1cmF0aW9uIGZpbGUgd2lsbCBiZSByZWFkIGFnYWluLgorLlRQCisuQiBTSUdUU1RQCitUaGlzIGZsaXBzIGEgdG9nZ2xlLCB3aGljaCBjb250cm9scyB3aGV0aGVyIG1vcmUgcHJvY2Vzc2VzIHdpbGwgYmUKK3NwYXduZWQuCisuVFAKKy5CIFNJR0lOVAorXGZCc2ltcGxlaW5pdFxmUCg4KSB3aWxsIHN5bmMgYSBmZXcgdGltZXMsIGFuZCB0cnkgdG8gc3RhcnQKK1xmQnJlYm9vdFxmUCg4KS4gRmFpbGluZyB0aGlzLCBpdCB3aWxsIGV4ZWN1dGUgdGhlIHN5c3RlbQorXGZCcmVib290XGZQKDIpIGNhbGwuIFVuZGVyIExpbnV4LCBpdCBpcyBwb3NzaWJsZSB0byBjb25maWd1cmUgdGhlCitDdHJsLUFsdC1EZWwgc2VxdWVuY2UgdG8gc2VuZCBhIHNpZ25hbCB0byB0aGUgXGZCaW5pdFxmUCBwcm9jZXNzCitpbnN0ZWFkIG9mIHJlYm9vdGluZyB0aGUgc3lzdGVtIChcZkJzaW1wbGVpbml0XGZQKDgpIGRvZXMgdGhpcyBieQorZGVmYXVsdCkuCisuVFAKKy5CIFNJR1FVSVQKK1RoZSBcZkJyZWJvb3RcZlAoOCkgcHJvZ3JhbW1lIGlzIGV4ZWN1dGVkIGluIHBsYWNlIG9mIHRoZQorXGZCc2ltcGxlaW5pdFxmUCg4KSBwcm9ncmFtbWUuIFRoaXMgYWxsb3dzIFxmQnJlYm9vdFxmUCg4KSB0byBjbGVhbmx5CityZW1vdW50IChyZWFkLW9ubHkpIHRoZSByb290IGZpbGVzeXN0ZW0sIGV2ZW4gaWYgdGhlIG9sZCBpbm9kZSBmb3IgdGhlCitcZkJpbml0XGZQIHByb2Nlc3Mgd2FzIHVubGlua2VkLgorLlNIIEZJTEVTCisuSSAvZXRjL2luaXR0YWIKKy5icgorLkkgL2V0Yy9zaW5nbGVib290CisuYnIKKy5JIC9ldGMvc2VjdXJlc2luZ2xlCisuYnIKKy5JIC9ldGMvVFoKKy5icgorLkkgL2V0Yy9wYXNzd2QKKy5icgorLkkgL2V0Yy9yYworLlNIICJTRUUgQUxTTyIKKy5CUiBpbml0dGFiICg1KSwKKy5CUiBjdHJsYWx0ZGVsICg4KQorLkJSIHJlYm9vdCAoOCksCisuQlIgdGVybWNhcCAoNSksCisuQlIgZ2V0dHkgKDgpLAorLkJSIGFnZXR0eSAoOCksCisuQlIgc2h1dGRvd24gKDgpLAorLkJSIGluaXRjdGwgKDgpCisuU0ggQlVHUworVGhpcyBwcm9ncmFtIGlzIGNhbGxlZAorLkIgc2ltcGxlaW5pdAordG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSB0aGUgU3lzdGVtIFYgY29tcGF0aWJsZSB2ZXJzaW9ucyBvZiBpbml0IHdoaWNoIGFyZQorc3RhcnRpbmcgdG8gYXBwZWFyIGluIHRoZSBMaW51eCBjb21tdW5pdHkuCisuQiBzaW1wbGVpbml0CitzaG91bGQgYmUgbGlua2VkIHRvLCBvciBtYWRlIGlkZW50aWNhbCB3aXRoLAorLkkgaW5pdAorZm9yIGNvcnJlY3QgZnVuY3Rpb25hbGl0eS4KKy5TSCBBVVRIT1IKK1BldGVyIE9yYmFlayAocG9lQGRhaW1pLmFhdS5kaykKKy5icgorVmVyc2lvbiAxLjIwLCB3aXRoIHBhdGNoZXMgZm9yIHNpbmdsZXVzZXIgbW9kZSBieSBXZXJuZXIgQWxtZXNiZXJnZXIKKy5icgorUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CisuYnIKK0RlcGVuZGVuY3kgc3VwcG9ydAorCisuU0ggQVZBSUxBQklMSVRZCitUaGUgc2ltcGxlaW5pdCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NpbXBsZWluaXQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3NpbXBsZWluaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzg0NGM5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jCkBAIC0wLDAgKzEsMTI0NiBAQAorLyogc2ltcGxlaW5pdC5jIC0gcG9lQGRhaW1pLmFhdS5kayAqLworLyogVmVyc2lvbiAyLjAuMiAqLworCisvKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqIDIwMDEtMDEtMjUgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CisgKiAtIGZpeGVkIGJ1ZyB3aXRoIGZhaWxlZCBzZXJ2aWNlcyBzbyB0aGV5IG1heSBiZSBsYXRlciAicmVjbGFpbWVkIgorICogMjAwMS0wMi0wMiBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KKyAqIC0gZml4ZWQgcmFjZSB3aGVuIHJlYWRpbmcgZnJvbSBwaXBlIGFuZCByZWFwaW5nIGNoaWxkcmVuCisgKiAyMDAxLTAyLTE4IHNhbUBxdXV4LmRyb3BiZWFyLmlkLmF1CisgKiAtIGZpeGVkIGJ1ZyBpbiA8Z2V0X3BhdGg+OiBtdWx0aXBsZSBJTklUX1BBVEggY29tcG9uZW50cyBkaWQgbm90IHdvcmsKKyAqIDIwMDEtMDItMjEgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CisgKiAtIGJsb2NrIHNpZ25hbHMgaW4gaGFuZGxlcnMsIHNvIHRoYXQgbG9uZ2ptcCgpIGRvZXNuJ3Qga2lsbCBjb250ZXh0CisgKiAyMDAxLTAyLTI1IFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgorICogLSBtYWtlIGRlZmF1bHQgSU5JVF9QQVRIIHRoZSBib290X3Byb2cgKGlmIGl0IGlzIGEgZGlyZWN0b3J5KSAtIFlFQ0NICisgKiAyMDAyLTExLTIwIHBhdGNoIGZyb20gU3VTRQorICogLSByZWZ1c2UgaW5pdGN0bF9mZCBpZiBzZXR0aW5nIEZEX0NMT0VYRUMgZmFpbHMKKyAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8cHdkLmg+CisjaW5jbHVkZSA8c3lzL2ZpbGUuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CisjaW5jbHVkZSA8dGVybWlvcy5oPgorI2luY2x1ZGUgPHV0bXAuaD4KKyNpbmNsdWRlIDxzZXRqbXAuaD4KKyNpbmNsdWRlIDxzY2hlZC5oPgorI2lmZGVmIFNIQURPV19QV0QKKyMgIGluY2x1ZGUgPHNoYWRvdy5oPgorI2VuZGlmCisjaW5jbHVkZSAibXlfY3J5cHQuaCIKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJsaW51eF9yZWJvb3QuaCIKKyNpbmNsdWRlICJ4c3RybmNweS5oIgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgInNpbXBsZWluaXQuaCIKKworI2RlZmluZSBDTURTSVogICAgIDE1MAkvKiBtYXggc2l6ZSBvZiBhIGxpbmUgaW4gaW5pdHRhYiAqLworI2RlZmluZSBOVU1DTUQgICAgIDMwCS8qIG1heCBudW1iZXIgb2YgbGluZXMgaW4gaW5pdHRhYiAqLworI2RlZmluZSBOVU1UT0sgICAgIDIwCS8qIG1heCBudW1iZXIgb2YgdG9rZW5zIGluIGluaXR0YWIgY29tbWFuZCAqLworI2RlZmluZSBQQVRIX1NJWkUgIChDTURTSVorQ01EU0laKzEpCisKKyNkZWZpbmUgTUFYX1JFU1BBV05fUkFURSAgNSAgLyogIG51bWJlciBvZiByZXNwYXducyBwZXIgMTAwIHNlY29uZHMgICovCisKKyNkZWZpbmUgVFpGSUxFICIvZXRjL1RaIgorY2hhciB0em9uZVtDTURTSVpdOworLyogI2RlZmluZSBERUJVR0dJTkcgKi8KKworLyogRGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgaW5pdCB0byBpZ25vcmUgdGhlIHRlcm1jYXAgZmllbGQgaW4gaW5pdHRhYiBmb3IKKyAgIGNvbnNvbGUgdHR5cy4gKi8KKy8qICNkZWZpbmUgU1BFQ0lBTF9DT05TT0xFX1RFUk0gKi8KKworI2RlZmluZSBldmVyICg7OykKKworc3RydWN0IGluaXRsaW5lIHsKKwlwaWRfdAkJcGlkOworCWNoYXIJCXR0eVsxMF07CisJY2hhcgkJdGVybWNhcFszMF07CisJY2hhcgkJKnRva3NbTlVNVE9LXTsKKwljaGFyCQlsaW5lW0NNRFNJWl07CisJc3RydWN0IHRpbWV2YWwJbGFzdF9zdGFydDsKKwlzaWduZWQgbG9uZwlyYXRlOworfTsKKworc3RydWN0IGluaXRsaW5lIGluaXR0YWJbTlVNQ01EXTsKK2ludCBudW1jbWQ7CitpbnQgc3RvcHBlZCA9IDA7CS8qIGFyZSB3ZSBzdG9wcGVkICovCitzdGF0aWMgY2hhciBib290X3Byb2dbUEFUSF9TSVpFXSA9IF9QQVRIX1JDOworc3RhdGljIGNoYXIgc2NyaXB0X3ByZWZpeFtQQVRIX1NJWkVdID0gIlwwIjsKK3N0YXRpYyBjaGFyIGZpbmFsX3Byb2dbUEFUSF9TSVpFXSA9ICJcMCI7CitzdGF0aWMgY2hhciBpbml0X3BhdGhbUEFUSF9TSVpFXSA9ICJcMCI7CitzdGF0aWMgaW50IGNhdWdodF9zaWdpbnQgPSAwOworc3RhdGljIGludCBub19yZWJvb3QgPSAwOworc3RhdGljIHBpZF90IHJjX2NoaWxkID0gLTE7CitzdGF0aWMgY29uc3QgY2hhciAqaW5pdGN0bF9uYW1lID0gIi9kZXYvaW5pdGN0bCI7CitzdGF0aWMgaW50IGluaXRjdGxfZmQgPSAtMTsKK3N0YXRpYyB2b2xhdGlsZSBpbnQgZG9fbG9uZ2ptcCA9IDA7CitzdGF0aWMgc2lnam1wX2J1ZiBqbXBfZW52OworCisKK3N0YXRpYyB2b2lkIGRvX3NpbmdsZSAodm9pZCk7CitzdGF0aWMgaW50IGRvX3JjX3R0eSAoY29uc3QgY2hhciAqcGF0aCk7CitzdGF0aWMgaW50IHByb2Nlc3NfcGF0aCAoY29uc3QgY2hhciAqcGF0aCwgaW50ICgqZnVuYykgKGNvbnN0IGNoYXIgKnBhdGgpLAorCQkJIGludCBpZ25vcmVfZGFuZ2xpbmdfc3ltbGluayk7CitzdGF0aWMgaW50IHByZWxvYWRfZmlsZSAoY29uc3QgY2hhciAqcGF0aCk7CitzdGF0aWMgaW50IHJ1bl9maWxlIChjb25zdCBjaGFyICpwYXRoKTsKK3N0YXRpYyB2b2lkIHNwYXduIChpbnQgaSksIHJlYWRfaW5pdHRhYiAodm9pZCk7CitzdGF0aWMgdm9pZCBzaWdodXBfaGFuZGxlciAoaW50IHNpZyk7CitzdGF0aWMgdm9pZCBzaWd0c3RwX2hhbmRsZXIgKGludCBzaWcpOworc3RhdGljIHZvaWQgc2lnaW50X2hhbmRsZXIgKGludCBzaWcpOworc3RhdGljIHZvaWQgc2lnY2hpbGRfaGFuZGxlciAoaW50IHNpZyk7CitzdGF0aWMgdm9pZCBzaWdxdWl0X2hhbmRsZXIgKGludCBzaWcpOworc3RhdGljIHZvaWQgc2lndGVybV9oYW5kbGVyIChpbnQgc2lnKTsKKyNpZmRlZiBTRVRfVFoKK3N0YXRpYyB2b2lkIHNldF90eiAodm9pZCk7CisjZW5kaWYKK3N0YXRpYyB2b2lkIHdyaXRlX3d0bXAgKHZvaWQpOworc3RhdGljIHBpZF90IG15d2FpdCAoaW50ICpzdGF0dXMpOworc3RhdGljIGludCBydW5fY29tbWFuZCAoY29uc3QgY2hhciAqZmlsZSwgY29uc3QgY2hhciAqbmFtZSwgcGlkX3QgcGlkKTsKKworCitzdGF0aWMgdm9pZCBlcnIgKGNoYXIgKnMpCit7CisJaW50IGZkOworCQorCWlmKChmZCA9IG9wZW4oIi9kZXYvY29uc29sZSIsIE9fV1JPTkxZKSkgPCAwKSByZXR1cm47CisKKwl3cml0ZShmZCwgImluaXQ6ICIsIDYpOwkKKwl3cml0ZShmZCwgcywgc3RybGVuKHMpKTsKKwljbG9zZShmZCk7Cit9CisKK3N0YXRpYyB2b2lkIGVudGVyX3NpbmdsZSAodm9pZCkKK3sKKyAgICBwaWRfdCBwaWQ7CisgICAgaW50IGk7CisKKyAgICBlcnIoXygiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIikpOworICAgIGlmKChwaWQgPSBmb3JrKCkpID09IDApIHsKKwkvKiB0aGUgY2hpbGQgKi8KKwlleGVjbChfUEFUSF9CU0hFTEwsIF9QQVRIX0JTSEVMTCwgTlVMTCk7CisJZXJyKF8oImV4ZWMgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iKSk7CisgICAgfSBlbHNlIGlmKHBpZCA+IDApIHsKKwl3aGlsZSAod2FpdHBpZCAocGlkLCAmaSwgMCkgIT0gcGlkKSAgLyogIE5vdGhpbmcgICovOworICAgIH0gZWxzZSBpZihwaWQgPCAwKSB7CisJZXJyKF8oImZvcmsgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iKSk7CisgICAgfQorICAgIHVubGluayhfUEFUSF9TSU5HTEUpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWludAkJCXZlYywgaTsKKwlpbnQJCQl3YW50X3NpbmdsZSA9IDA7CisJcGlkX3QJCQlwaWQ7CisJc3RydWN0IHNpZ2FjdGlvbglzYTsKKworCisjaWZkZWYgU0VUX1RaCisJc2V0X3R6KCk7CisjZW5kaWYKKwlzaWdmaWxsc2V0ICgmc2Euc2FfbWFzayk7ICAvKiAgbG9uZ2ptcCBhbmQgbmVzdGVkIHNpZ25hbHMgZG9uJ3QgbWl4ICAqLworCXNhLnNhX2ZsYWdzID0gU0FfT05FU0hPVDsKKwlzYS5zYV9oYW5kbGVyID0gc2lnaW50X2hhbmRsZXI7CisJc2lnYWN0aW9uIChTSUdJTlQsICZzYSwgTlVMTCk7CisJc2Euc2FfZmxhZ3MgPSAwOworCXNhLnNhX2hhbmRsZXIgPSBzaWd0c3RwX2hhbmRsZXI7CisJc2lnYWN0aW9uIChTSUdUU1RQLCAmc2EsIE5VTEwpOworCXNhLnNhX2hhbmRsZXIgPSBzaWd0ZXJtX2hhbmRsZXI7CisJc2lnYWN0aW9uIChTSUdURVJNLCAmc2EsIE5VTEwpOworCXNhLnNhX2hhbmRsZXIgPSBzaWdjaGlsZF9oYW5kbGVyOworCXNpZ2FjdGlvbiAoU0lHQ0hMRCwgJnNhLCBOVUxMKTsKKwlzYS5zYV9oYW5kbGVyID0gc2lncXVpdF9oYW5kbGVyOworCXNpZ2FjdGlvbiAoU0lHUVVJVCwgJnNhLCBOVUxMKTsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlteV9yZWJvb3QgKExJTlVYX1JFQk9PVF9DTURfQ0FEX09GRik7CisJLyogIEZpbmQgc2NyaXB0IHRvIHJ1bi4gQ29tbWFuZC1saW5lIG92ZXJyaWRlcyBjb25maWcgZmlsZSBvdmVycmlkZXMKKwkgICAgYnVpbHQtaW4gZGVmYXVsdCAgKi8KKwlmb3IgKGkgPSAwOyBpIDwgTlVNQ01EOyBpKyspIGluaXR0YWJbaV0ucGlkID0gLTE7CisJcmVhZF9pbml0dGFiICgpOworCWZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKKwkJaWYgKHN0cmNtcCAoYXJndltpXSwgInNpbmdsZSIpID09IDApCisJCQl3YW50X3NpbmdsZSA9IDE7CisJCWVsc2UgaWYgKHN0cmNtcCAoYXJndltpXSwgIi1ub3JlYm9vdCIpID09IDApCisJCQlub19yZWJvb3QgPSAxOworCQllbHNlIGlmIChzdHJsZW4oc2NyaXB0X3ByZWZpeCkgKyBzdHJsZW4oYXJndltpXSkgPCBQQVRIX1NJWkUpIHsKKwkJCWNoYXIgcGF0aFtQQVRIX1NJWkVdOworCisJCQlzdHJjcHkgKHBhdGgsIHNjcmlwdF9wcmVmaXgpOworCQkJc3RyY2F0IChwYXRoLCBhcmd2W2ldKTsKKwkJCWlmIChhY2Nlc3MgKHBhdGgsIFJfT0sgfCBYX09LKSA9PSAwKQorCQkJCXN0cmNweSAoYm9vdF9wcm9nLCBwYXRoKTsKKwkJfQorCX0KKwlpZiAoaW5pdF9wYXRoWzBdID09ICdcMCcpCisJeworCSAgICBzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCisJICAgIGlmICggKHN0YXQgKGJvb3RfcHJvZywgJnN0YXRidWYpID09IDApICYmIFNfSVNESVIgKHN0YXRidWYuc3RfbW9kZSkgKQorCSAgICB7CisJCXN0cmNweSAoaW5pdF9wYXRoLCBib290X3Byb2cpOworCQlpID0gc3RybGVuIChpbml0X3BhdGgpOworCQlpZiAoaW5pdF9wYXRoW2kgLSAxXSA9PSAnLycpIGluaXRfcGF0aFtpIC0gMV0gPSAnXDAnOworCSAgICB9CisJfQorCisJaWYgKCAoIGluaXRjdGxfZmQgPSBvcGVuIChpbml0Y3RsX25hbWUsIE9fUkRXUiwgMCkgKSA8IDAgKSB7CisJCW1rZmlmbyAoaW5pdGN0bF9uYW1lLCBTX0lSVVNSIHwgU19JV1VTUik7CisJCWlmICggKCBpbml0Y3RsX2ZkID0gb3BlbiAoaW5pdGN0bF9uYW1lLCBPX1JEV1IsIDApICkgPCAwICkKKwkJCWVyciAoIF8oImVycm9yIG9wZW5pbmcgZmlmb1xuIikgKTsKKwl9CisKKwlpZiAoaW5pdGN0bF9mZCA+PSAwICYmIGZjbnRsKGluaXRjdGxfZmQsIEZfU0VURkQsIEZEX0NMT0VYRUMpICE9IDApIHsKKwkJZXJyICggXygiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIpICk7CisKKwkJLyogQ2FuIHRoZSBmY250bCBldmVyIGZhaWw/ICBJZiBpdCBkb2VzLCBhbmQgd2UgbGVhdmUKKwkJICAgdGhlIGRlc2NyaXB0b3Igb3BlbiBpbiBjaGlsZCBwcm9jZXNzZXMsIHRoZW4gYW55CisJCSAgIHByb2Nlc3Mgb24gdGhlIHN5c3RlbSB3aWxsIGJlIGFibGUgdG8gd3JpdGUgdG8KKwkJICAgL2Rldi9pbml0Y3RsIGFuZCBoYXZlIHVzIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvbW1hbmRzCisJCSAgIGFzIHJvb3QuIFNvIGxldCdzIHJlZnVzZSB0byB1c2UgdGhlIGZpZm8gaW4gdGhpcyBjYXNlLiAqLworCisJCWNsb3NlKGluaXRjdGxfZmQpOworCQlpbml0Y3RsX2ZkID0gLTE7CisJfQorCisJaWYgKCB3YW50X3NpbmdsZSB8fCAoYWNjZXNzIChfUEFUSF9TSU5HTEUsIFJfT0spID09IDApICkgZG9fc2luZ2xlICgpOworCisJLypJZiB3ZSBnZXQgYSBTSUdUU1RQIGJlZm9yZSBtdWx0aS11c2VyIG1vZGUsIGRvIG5vdGhpbmcqLworCXdoaWxlIChzdG9wcGVkKQorCQlwYXVzZSgpOworCisJaWYgKCBkb19yY190dHkgKGJvb3RfcHJvZykgKSBkb19zaW5nbGUgKCk7CisKKwl3aGlsZSAoc3RvcHBlZCkgIC8qICBBbHNvIGlmIC9ldGMvcmMgZmFpbHMgJiB3ZSBnZXQgU0lHVFNUUCAgKi8KKwkJcGF1c2UoKTsKKworCXdyaXRlX3d0bXAoKTsJLyogd3JpdGUgYm9vdHRpbWUgcmVjb3JkICovCisjaWZkZWYgREVCVUdHSU5HCisJZm9yKGkgPSAwOyBpIDwgbnVtY21kOyBpKyspIHsKKwkJY2hhciAqKnA7CisJCXAgPSBpbml0dGFiW2ldLnRva3M7CisJCXByaW50ZigidG9rcz0gJXMgJXMgJXMgJXNcbiIscFswXSwgcFsxXSwgcFsyXSwgcFszXSk7CisJCXByaW50ZigidHR5PSAlc1xuIiwgaW5pdHRhYltpXS50dHkpOworCQlwcmludGYoInRlcm1jYXA9ICVzXG4iLCBpbml0dGFiW2ldLnRlcm1jYXApOworCX0KKwlleGl0KDApOworI2VuZGlmCisJc2lnbmFsIChTSUdIVVAsIHNpZ2h1cF9oYW5kbGVyKTsgIC8qIEJldHRlciBzZW1hbnRpY3Mgd2l0aCBzaWduYWwoMikgKi8KKworCWZvciAoaSA9IDA7IGkgPCBnZXRkdGFibGVzaXplICgpOyBpKyspCisJCWlmIChpICE9IGluaXRjdGxfZmQpIGNsb3NlIChpKTsKKworCWZvcihpID0gMDsgaSA8IG51bWNtZDsgaSsrKQorCQlzcGF3bihpKTsKKworCWlmIChmaW5hbF9wcm9nWzBdICE9ICdcMCcpIHsKKwkJc3dpdGNoICggZm9yayAoKSApCisJCXsKKwkJICBjYXNlIDA6ICAgLyogIENoaWxkICAgKi8KKwkJICAgIGV4ZWNsIChmaW5hbF9wcm9nLCBmaW5hbF9wcm9nLCAic3RhcnQiLCBOVUxMKTsKKwkJICAgIGVyciAoIF8oImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iKSApOworCQkgICAgX2V4aXQgKDEpOworCQkgICAgYnJlYWs7CisJCSAgY2FzZSAtMTogIC8qICBFcnJvciAgICovCisJCSAgICBlcnIgKCBfKCJlcnJvciBmb3JraW5nIGZpbmFscHJvZ1xuIikgKTsKKwkJICAgIGJyZWFrOworCQkgIGRlZmF1bHQ6ICAvKiAgUGFyZW50ICAqLworCQkgICAgYnJlYWs7CisJCX0KKwl9CisKKwlmb3IgZXZlciB7CisJCXBpZCA9IG15d2FpdCAoJnZlYyk7CisJCWlmIChwaWQgPCAxKSBjb250aW51ZTsKKworCQkvKiBjbGVhciB1dG1wIGVudHJ5LCBhbmQgYXBwZW5kIHRvIHd0bXAgaWYgcG9zc2libGUgKi8KKwkJeworCQkgICAgc3RydWN0IHV0bXAgKnV0OworCQkgICAgaW50IHV0X2ZkLCBsZjsKKworCQkgICAgdXRtcG5hbWUoX1BBVEhfVVRNUCk7CisJCSAgICBzZXR1dGVudCgpOworCQkgICAgd2hpbGUoKHV0ID0gZ2V0dXRlbnQoKSkpIHsKKwkJCWlmKHV0LT51dF9waWQgPT0gcGlkKSB7CisJCQkgICAgdGltZSgmdXQtPnV0X3RpbWUpOworCQkJICAgIG1lbXNldCgmdXQtPnV0X3VzZXIsIDAsIFVUX05BTUVTSVpFKTsKKwkJCSAgICBtZW1zZXQoJnV0LT51dF9ob3N0LCAwLCBzaXplb2YodXQtPnV0X2hvc3QpKTsKKwkJCSAgICB1dC0+dXRfdHlwZSA9IERFQURfUFJPQ0VTUzsKKwkJCSAgICB1dC0+dXRfcGlkID0gMDsKKwkJCSAgICB1dC0+dXRfYWRkciA9IDA7CisJCQkgICAgLyplbmR1dGVudCgpOyovCisJCQkgICAgcHV0dXRsaW5lKHV0KTsKKworCQkJICAgIGlmICgobGYgPSBvcGVuKF9QQVRIX1dUTVBMT0NLLCBPX0NSRUFUfE9fV1JPTkxZLCAwNjYwKSkgPj0gMCkgeworCQkJCWZsb2NrKGxmLCBMT0NLX0VYfExPQ0tfTkIpOworCQkJCWlmKCh1dF9mZCA9IG9wZW4oX1BBVEhfV1RNUCwgT19BUFBFTkR8T19XUk9OTFkpKSA+PSAwKSB7CisJCQkJICAgIHdyaXRlKHV0X2ZkLCB1dCwgc2l6ZW9mKHN0cnVjdCB1dG1wKSk7CisJCQkJICAgIGNsb3NlKHV0X2ZkKTsKKwkJCQl9CisJCQkJZmxvY2sobGYsIExPQ0tfVU58TE9DS19OQik7CisJCQkJY2xvc2UobGYpOworCQkJICAgIH0KKwkJCSAgICBicmVhazsKKwkJCX0KKwkJICAgIH0KKwkJICAgIGVuZHV0ZW50KCk7CisJCX0KKworCQlmb3IoaSA9IDA7IGkgPCBudW1jbWQ7IGkrKykgeworCQkJaWYocGlkID09IGluaXR0YWJbaV0ucGlkIHx8IGluaXR0YWJbaV0ucGlkIDwgMCkgeworCQkJCWlmIChzdG9wcGVkKQorCQkJCQlpbml0dGFiW2ldLnBpZCA9IC0xOworCQkJCWVsc2UKKwkJCQkJc3Bhd24oaSk7CisJCQkJaWYgKHBpZCA9PSBpbml0dGFiW2ldLnBpZCkKKwkJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9Cit9CQorCisjZGVmaW5lIE1BWFRSSUVTIDMgLyogbnVtYmVyIG9mIHRyaWVzIGFsbG93ZWQgd2hlbiBnaXZpbmcgdGhlIHBhc3N3b3JkICovCisKKy8qCisgKiByZXR1cm4gdHJ1ZSBpZiBzaW5nbGV1c2VyIG1vZGUgaXMgYWxsb3dlZC4KKyAqIElmIC9ldGMvc2VjdXJlc2luZ2xlIGV4aXN0cyBhc2sgZm9yIHJvb3QgcGFzc3dvcmQsIG90aGVyd2lzZSBhbHdheXMgT0suCisgKi8KK3N0YXRpYyBpbnQgY2hlY2tfc2luZ2xlX29rICh2b2lkKQoreworICAgIGNoYXIgKnBhc3MsICpyb290cGFzcyA9IE5VTEw7CisgICAgc3RydWN0IHBhc3N3ZCAqcHdkOworICAgIGludCBpOworCisgICAgaWYgKGFjY2VzcyAoX1BBVEhfU0VDVVJFLCBSX09LKSAhPSAwKSByZXR1cm4gMTsKKyAgICBpZiAoICggcHdkID0gZ2V0cHduYW0gKCJyb290IikgKSB8fCAoIHB3ZCA9IGdldHB3dWlkICgwKSApICkKKwlyb290cGFzcyA9IHB3ZC0+cHdfcGFzc3dkOworICAgIGVsc2UKKwlyZXR1cm4gMTsgLyogYSBiYWQgL2V0Yy9wYXNzd2Qgc2hvdWxkIG5vdCBsb2NrIG91dCAqLworCisgICAgZm9yIChpID0gMDsgaSA8IE1BWFRSSUVTOyBpKyspCisgICAgeworCXBhc3MgPSBnZXRwYXNzIChfKCJQYXNzd29yZDogIikpOworCWlmIChwYXNzID09IE5VTEwpIGNvbnRpbnVlOworCisJaWYgKCAhc3RyY21wIChjcnlwdCAocGFzcywgcm9vdHBhc3MpLCByb290cGFzcykgKSByZXR1cm4gMTsKKworCXB1dHMgKF8oIlxuV3JvbmcgcGFzc3dvcmQuXG4iKSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBkb19zaW5nbGUgKHZvaWQpCit7CisgICAgY2hhciBwYXRoW1BBVEhfU0laRV07CisKKyAgICBpZiAoY2F1Z2h0X3NpZ2ludCkgcmV0dXJuOworICAgIHN0cmNweSAocGF0aCwgc2NyaXB0X3ByZWZpeCk7CisgICAgc3RyY2F0IChwYXRoLCAic2luZ2xlIik7CisgICAgaWYgKGFjY2VzcyAocGF0aCwgUl9PSyB8IFhfT0spID09IDApCisJaWYgKGRvX3JjX3R0eSAocGF0aCkgPT0gMCkgcmV0dXJuOworICAgIGlmICggY2hlY2tfc2luZ2xlX29rICgpICkgZW50ZXJfc2luZ2xlICgpOworfSAgIC8qICBFbmQgRnVuY3Rpb24gZG9fc2luZ2xlICAqLworCisvKgorICogcnVuIGJvb3Qgc2NyaXB0KHMpLiBUaGUgZW52aXJvbm1lbnQgaXMgcGFzc2VkIHRvIHRoZSBzY3JpcHQocyksIHNvIHRoZSBSQworICogZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gZGVjaWRlIHdoYXQgdG8gZG8uCisgKiBSQyBtYXkgYmUgc2V0IGZyb20gTElMTy4KKyAqIFtSRVRVUk5TXSAwIG9uIHN1Y2Nlc3MgKGV4aXQgc3RhdHVzIGNvbnZlbnRpb24pLCBvdGhlcndpc2UgZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQgZG9fcmNfdHR5IChjb25zdCBjaGFyICpwYXRoKQoreworICAgIGludCBzdGF0dXM7CisgICAgcGlkX3QgcGlkOworICAgIHNpZ3NldF90IHNzOworCisgICAgaWYgKGNhdWdodF9zaWdpbnQpIHJldHVybiAwOworICAgIHByb2Nlc3NfcGF0aCAocGF0aCwgcHJlbG9hZF9maWxlLCAwKTsKKyAgICAvKiAgTGF1bmNoIG9mZiBhIHN1YnByb2Nlc3MgdG8gc3RhcnQgYSBuZXcgc2Vzc2lvbiAocmVxdWlyZWQgZm9yIGZyb2JiaW5nCisJdGhlIFRUWSkgYW5kIGNhcHR1cmUgY29udHJvbC1DICAqLworICAgIHN3aXRjaCAoIHJjX2NoaWxkID0gZm9yayAoKSApCisgICAgeworICAgICAgY2FzZSAwOiAgIC8qICBDaGlsZCAgKi8KKwlmb3IgKHN0YXR1cyA9IDE7IHN0YXR1cyA8IE5TSUc7IHN0YXR1cysrKSBzaWduYWwgKHN0YXR1cywgU0lHX0RGTCk7CisJc2lnZmlsbHNldCAoJnNzKTsKKwlzaWdwcm9jbWFzayAoU0lHX1VOQkxPQ0ssICZzcywgTlVMTCk7CisJc2lnZGVsc2V0ICgmc3MsIFNJR0lOVCk7CisJc2lnZGVsc2V0ICgmc3MsIFNJR1FVSVQpOworCXNldHNpZCAoKTsKKwlpb2N0bCAoMCwgVElPQ1NDVFRZLCAwKTsgIC8qICBJIHdhbnQgbXkgY29udHJvbC1DICAqLworCXNpZ3N1c3BlbmQgKCZzcyk7ICAvKiAgU2hvdWxkIG5ldmVyIHJldHVybiwgc2hvdWxkIGp1c3QgYmUga2lsbGVkICAqLworCWJyZWFrOyAgICAgICAgICAgICAvKiAgTm8tb25lIGVsc2UgaXMgY29udHJvbGxlZCBieSB0aGlzIFRUWSBub3cgICAqLworICAgICAgY2FzZSAtMTogIC8qICBFcnJvciAgKi8KKwlyZXR1cm4gKDEpOworCS8qYnJlYWs7Ki8KKyAgICAgIGRlZmF1bHQ6ICAvKiAgUGFyZW50ICAqLworCWJyZWFrOworICAgIH0KKyAgICAvKiAgUGFyZW50ICAqLworICAgIHByb2Nlc3NfcGF0aCAocGF0aCwgcnVuX2ZpbGUsIDApOworICAgIHdoaWxlICgxKQorICAgIHsKKwlpZiAoICggcGlkID0gbXl3YWl0ICgmc3RhdHVzKSApID09IHJjX2NoaWxkICkKKwkgICAgcmV0dXJuIChXVEVSTVNJRyAoc3RhdHVzKSA9PSBTSUdJTlQpID8gMCA6IDE7CisJaWYgKHBpZCA8IDApIGJyZWFrOworICAgIH0KKyAgICBraWxsIChyY19jaGlsZCwgU0lHS0lMTCk7CisgICAgd2hpbGUgKHdhaXRwaWQgKHJjX2NoaWxkLCBOVUxMLCAwKSAhPSByY19jaGlsZCkgIC8qICBOb3RoaW5nICAqLzsKKyAgICByZXR1cm4gMDsKK30gICAvKiAgRW5kIEZ1bmN0aW9uIGRvX3JjX3R0eSAgKi8KKworc3RhdGljIGludCBwcm9jZXNzX3BhdGggKGNvbnN0IGNoYXIgKnBhdGgsIGludCAoKmZ1bmMpIChjb25zdCBjaGFyICpwYXRoKSwKKwkJCSBpbnQgaWdub3JlX2RhbmdsaW5nX3N5bWxpbmspCit7CisgICAgc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKyAgICBESVIgKmRwOworICAgIHN0cnVjdCBkaXJlbnQgKmRlOworCisgICAgaWYgKGxzdGF0IChwYXRoLCAmc3RhdGJ1ZikgIT0gMCkKKyAgICB7CisJZXJyIChfKCJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIikgKTsKKwlyZXR1cm4gMTsKKyAgICB9CisgICAgaWYgKCBTX0lTTE5LIChzdGF0YnVmLnN0X21vZGUpICkKKyAgICB7CisJaWYgKHN0YXQgKHBhdGgsICZzdGF0YnVmKSAhPSAwKQorCXsKKwkgICAgaWYgKCAoZXJybm8gPT0gRU5PRU5UKSAmJiBpZ25vcmVfZGFuZ2xpbmdfc3ltbGluayApIHJldHVybiAwOworCSAgICBlcnIgKF8oInN0YXQgb2YgcGF0aCBmYWlsZWRcbiIpICk7CisJICAgIHJldHVybiAxOworCX0KKyAgICB9CisgICAgaWYgKCAhKCBzdGF0YnVmLnN0X21vZGUgJiAoU19JWFVTUiB8IFNfSVhHUlAgfCBTX0lYT1RIKSApICkgcmV0dXJuIDA7CisgICAgaWYgKCAhU19JU0RJUiAoc3RhdGJ1Zi5zdF9tb2RlKSApIHJldHVybiAoKmZ1bmMpIChwYXRoKTsKKyAgICBpZiAoICggZHAgPSBvcGVuZGlyIChwYXRoKSApID09IE5VTEwgKQorICAgIHsKKwllcnIgKF8oIm9wZW4gb2YgZGlyZWN0b3J5IGZhaWxlZFxuIikgKTsKKwlyZXR1cm4gMTsKKyAgICB9CisgICAgd2hpbGUgKCAoIGRlID0gcmVhZGRpciAoZHApICkgIT0gTlVMTCApCisgICAgeworCWludCByZXR2YWw7CisJY2hhciBuZXdwYXRoW1BBVEhfU0laRV07CisKKwlpZiAoZGUtPmRfbmFtZVswXSA9PSAnLicpIGNvbnRpbnVlOworCXJldHZhbCA9IHNucHJpbnRmIChuZXdwYXRoLCBzaXplb2YobmV3cGF0aCksICIlcy8lcyIsIHBhdGgsIGRlLT5kX25hbWUpOworCWlmIChuZXdwYXRoW3JldHZhbCAtIDFdID09ICd+JykgY29udGludWU7ICAvKiAgQ29tbW9uIG1pc3Rha2UgICovCisJaWYgKCAoIHJldHZhbCA9IHByb2Nlc3NfcGF0aCAobmV3cGF0aCwgZnVuYywgMSkgKSApIHJldHVybiByZXR2YWw7CisgICAgfQorICAgIGNsb3NlZGlyIChkcCk7CisgICAgcmV0dXJuIDA7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBwcm9jZXNzX3BhdGggICovCisKK3N0YXRpYyBpbnQgcHJlbG9hZF9maWxlIChjb25zdCBjaGFyICpwYXRoKQoreworICAgIGludCBmZDsKKyAgICBjaGFyIGNoOworCisgICAgaWYgKCAoIGZkID0gb3BlbiAocGF0aCwgT19SRE9OTFksIDApICkgPCAwKSByZXR1cm4gMDsKKyAgICB3aGlsZSAocmVhZCAoZmQsICZjaCwgMSkgPT0gMSkgbHNlZWsgKGZkLCAxMDI0LCBTRUVLX0NVUik7CisgICAgY2xvc2UgKGZkKTsKKyAgICByZXR1cm4gMDsKK30gICAvKiAgRW5kIEZ1bmN0aW9uIHByZWxvYWRfZmlsZSAgKi8KKworc3RhdGljIGludCBydW5fZmlsZSAoY29uc3QgY2hhciAqcGF0aCkKK3sKKyAgICBjb25zdCBjaGFyICpwdHI7CisKKyAgICBpZiAoICggcHRyID0gc3RycmNociAoIChjaGFyICopIHBhdGgsICcvJyApICkgPT0gTlVMTCApIHB0ciA9IHBhdGg7CisgICAgZWxzZSArK3B0cjsKKyAgICByZXR1cm4gKHJ1bl9jb21tYW5kIChwYXRoLCBwdHIsIDApID09IFNJR19GQUlMRUQpID8gMSA6IDA7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBydW5fZmlsZSAgKi8KKworc3RhdGljIHZvaWQgc3Bhd24gKGludCBpKQoreworCXBpZF90IHBpZDsKKwlpbnQgajsKKwlzaWduZWQgbG9uZyBkc190YWtlbjsKKwlzdHJ1Y3QgdGltZXZhbCBjdDsKKworCWlmIChpbml0dGFiW2ldLnRva3NbMF0gPT0gTlVMTCkgcmV0dXJuOworCisJLyogIENoZWNrIGlmIHJlc3Bhd25pbmcgdG9vIGZhc3QgICovCisJZ2V0dGltZW9mZGF5ICgmY3QsIE5VTEwpOworCWRzX3Rha2VuID0gY3QudHZfc2VjIC0gaW5pdHRhYltpXS5sYXN0X3N0YXJ0LnR2X3NlYzsKKworCS8qIE9uIHRoZSBmaXJzdCBpdGVyYXRpb24gbGFzdF9zdGFydD09MCBhbmQgZHNfdGFrZW4KKwkgICBtYXkgYmUgdmVyeSBsYXJnZS4gQXZvaWQgb3ZlcmZsb3cuIC0tIERlbmlzIFZsYXNlbmtvICovCisJaWYgKGRzX3Rha2VuID4gMTAwMDApCisJCWRzX3Rha2VuID0gMTAwMDA7CisKKwlkc190YWtlbiAqPSAxMDsKKwlkc190YWtlbiArPSAoY3QudHZfdXNlYyAtIGluaXR0YWJbaV0ubGFzdF9zdGFydC50dl91c2VjKSAvIDEwMDAwMDsKKwlpZiAoZHNfdGFrZW4gPCAxKQorCQlkc190YWtlbiA9IDE7CisJaW5pdHRhYltpXS5yYXRlID0gKDkgKiBpbml0dGFiW2ldLnJhdGUgKyAxMDAwIC8gZHNfdGFrZW4pIC8gMTA7CisJaWYgKGluaXR0YWJbaV0ucmF0ZSA+IE1BWF9SRVNQQVdOX1JBVEUpIHsKKwkJY2hhciB0eHRbMjU2XTsKKworCQlpbml0dGFiW2ldLnRva3NbMF0gPSBOVUxMOworCQlpbml0dGFiW2ldLnBpZCA9IC0xOworCQlpbml0dGFiW2ldLnJhdGUgPSAwOworCQlzbnByaW50ZiAodHh0LCBzaXplb2YodHh0KSwKKwkJCV8oInJlc3Bhd25pbmc6IFwiJXNcIiB0b28gZmFzdDogcXVlbmNoaW5nIGVudHJ5XG4iKSwKKwkJCSBpbml0dGFiW2ldLnR0eSk7CisJCWVyciAodHh0KTsKKwkJcmV0dXJuOworCX0KKworCWlmKChwaWQgPSBmb3JrKCkpIDwgMCkgeworCQlpbml0dGFiW2ldLnBpZCA9IC0xOworCQllcnIoXygiZm9yayBmYWlsZWRcbiIpKTsKKwkJcmV0dXJuOworCX0KKwlpZihwaWQpIHsKKwkJLyogdGhpcyBpcyB0aGUgcGFyZW50ICovCisJCWluaXR0YWJbaV0ucGlkID0gcGlkOworCQlpbml0dGFiW2ldLmxhc3Rfc3RhcnQgPSBjdDsKKwkJc2NoZWRfeWllbGQgKCk7CisJCXJldHVybjsKKwl9IGVsc2UgeworCQkvKiB0aGlzIGlzIHRoZSBjaGlsZCAqLworCQljaGFyIHRlcm1bNDBdOworI2lmZGVmIFNFVF9UWgorCQljaGFyIHR6W0NNRFNJWl07CisjZW5kaWYKKwkJY2hhciAqZW52WzNdOworCQkKKwkJc2V0c2lkKCk7CisJCWZvcihqID0gMDsgaiA8IGdldGR0YWJsZXNpemUoKTsgaisrKQorCQkJKHZvaWQpIGNsb3NlKGopOworCisJCXNucHJpbnRmKHRlcm0sIHNpemVvZih0ZXJtKSwgIlRFUk09JXMiLCBpbml0dGFiW2ldLnRlcm1jYXApOworCQllbnZbMF0gPSB0ZXJtOworCQllbnZbMV0gPSAoY2hhciAqKTA7CisjaWZkZWYgU0VUX1RaCisJCXNucHJpbnRmKHR6LCBzaXplb2YodHopLCAiVFo9JXMiLCB0em9uZSk7CisJCWVudlsxXSA9IHR6OworI2VuZGlmCisJCWVudlsyXSA9IChjaGFyICopMDsKKworCQlleGVjdmUoaW5pdHRhYltpXS50b2tzWzBdLCBpbml0dGFiW2ldLnRva3MsIGVudik7CisJCWVycihfKCJleGVjIGZhaWxlZFxuIikpOworCQlzbGVlcCg1KTsKKwkJX2V4aXQoMSk7CisJfQorfQorCitzdGF0aWMgdm9pZCByZWFkX2luaXR0YWIgKHZvaWQpCit7CisJRklMRSAqZjsKKwljaGFyIGJ1ZltDTURTSVpdOworCWludCBpLGosazsKKwlpbnQgaGFzX3Byb2cgPSAwOworCWNoYXIgKnB0ciwgKmdldHR5OworCWNoYXIgcHJvZ1tQQVRIX1NJWkVdOworI2lmZGVmIFNQRUNJQUxfQ09OU09MRV9URVJNCisJY2hhciB0dHlbNTBdOworCXN0cnVjdCBzdGF0IHN0YjsKKyNlbmRpZgorCWNoYXIgKnRlcm1lbnY7CisJCisJdGVybWVudiA9IGdldGVudigiVEVSTSIpOwkvKiBzZXQgYnkga2VybmVsICovCisJLyogdGVybWVudiA9ICJ2dDEwMCI7ICovCisJCQkKKwlpZighKGYgPSBmb3BlbihfUEFUSF9JTklUVEFCLCAiciIpKSkgeworCQllcnIoXygiY2Fubm90IG9wZW4gaW5pdHRhYlxuIikpOworCQlyZXR1cm47CisJfQorCisJcHJvZ1swXSA9ICdcMCc7CisJaSA9IDA7CisJd2hpbGUoIWZlb2YoZikgJiYgaSA8IE5VTUNNRCAtIDIpIHsKKwkJaWYoZmdldHMoYnVmLCBDTURTSVogLSAxLCBmKSA9PSAwKSBicmVhazsKKwkJYnVmW0NNRFNJWi0xXSA9IDA7CisKKwkJZm9yKGsgPSAwOyBrIDwgQ01EU0laICYmIGJ1ZltrXTsgaysrKSB7CisJCQlpZiAoKGJ1ZltrXSA9PSAnIycpIHx8IChidWZba10gPT0gJ1xuJykpIHsgCisJCQkJYnVmW2tdID0gMDsgYnJlYWs7IAorCQkJfQorCQl9CisKKwkJaWYoYnVmWzBdID09IDAgfHwgYnVmWzBdID09ICdcbicpIGNvbnRpbnVlOworCQlwdHIgPSBzdHJjaHIgKGJ1ZiwgJz0nKTsKKwkJaWYgKHB0cikgeworCQkJcHRyKys7CisJCQlpZiAoICFzdHJuY21wIChidWYsICJib290cHJvZyIsIDgpICkgeworCQkJCXdoaWxlICggaXNzcGFjZSAoKnB0cikgKSArK3B0cjsKKwkJCQlzdHJjcHkgKHByb2csIHB0cik7CisJCQkJaGFzX3Byb2cgPSAxOworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJaWYgKCAhc3RybmNtcCAoYnVmLCAiZmlsZXByZWZpeCIsIDEwKSApIHsKKwkJCQl3aGlsZSAoIGlzc3BhY2UgKCpwdHIpICkgKytwdHI7CisJCQkJc3RyY3B5IChzY3JpcHRfcHJlZml4LCBwdHIpOworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJaWYgKCAhc3RybmNtcCAoYnVmLCAiUEFUSCIsIDQpICkgeworCQkJCXdoaWxlICggaXNzcGFjZSAoKnB0cikgKSArK3B0cjsKKwkJCQlzZXRlbnYgKCJQQVRIIiwgcHRyLCAxKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCWlmICggIXN0cm5jbXAgKGJ1ZiwgIklOSVRfUEFUSCIsIDkpICkgeworCQkJCXdoaWxlICggaXNzcGFjZSAoKnB0cikgKSArK3B0cjsKKwkJCQlzdHJjcHkgKGluaXRfcGF0aCwgcHRyKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCWlmICggIXN0cm5jbXAgKGJ1ZiwgImZpbmFscHJvZyIsIDgpICkgeworCQkJCXdoaWxlICggaXNzcGFjZSAoKnB0cikgKSArK3B0cjsKKwkJCQlzdHJjcHkgKGZpbmFsX3Byb2csIHB0cik7CisJCQkJY29udGludWU7CisJCQl9CisJCX0KKwkJCQorCisJCSh2b2lkKSBzdHJjcHkoaW5pdHRhYltpXS5saW5lLCBidWYpOworCisJCSh2b2lkKSBzdHJ0b2soaW5pdHRhYltpXS5saW5lLCAiOiIpOworCQl4c3RybmNweShpbml0dGFiW2ldLnR0eSwgaW5pdHRhYltpXS5saW5lLCAxMCk7CisJCXhzdHJuY3B5KGluaXR0YWJbaV0udGVybWNhcCwgc3RydG9rKChjaGFyICopMCwgIjoiKSwgMzApOworCisJCWdldHR5ID0gc3RydG9rKChjaGFyICopMCwgIjoiKTsKKwkJKHZvaWQpIHN0cnRvayhnZXR0eSwgIiBcdFxuIik7CisJCWluaXR0YWJbaV0udG9rc1swXSA9IGdldHR5OworCQlqID0gMTsKKwkJd2hpbGUoKHB0ciA9IHN0cnRvaygoY2hhciAqKTAsICIgXHRcbiIpKSkKKwkJCWluaXR0YWJbaV0udG9rc1tqKytdID0gcHRyOworCQlpbml0dGFiW2ldLnRva3Nbal0gPSAoY2hhciAqKTA7CisKKyNpZmRlZiBTUEVDSUFMX0NPTlNPTEVfVEVSTQorCQkvKiBzcGVjaWFsLWNhc2UgdGVybWNhcCBmb3IgdGhlIGNvbnNvbGUgdHR5cyAqLworCQlzbnByaW50Zih0dHksIHNpemVvZih0dHkpLCAiL2Rldi8lcyIsIGluaXR0YWJbaV0udHR5KTsKKwkJaWYoIXRlcm1lbnYgfHwgc3RhdCh0dHksICZzdGIpIDwgMCkgeworCQkJZXJyKF8oIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iKSk7CisJCX0gZWxzZSB7CisJCQkvKiBpcyBpdCBhIGNvbnNvbGUgdHR5PyAqLworCQkJaWYobWFqb3Ioc3RiLnN0X3JkZXYpID09IDQgJiYgbWlub3Ioc3RiLnN0X3JkZXYpIDwgNjQpCisJCQkJeHN0cm5jcHkoaW5pdHRhYltpXS50ZXJtY2FwLCB0ZXJtZW52LCAzMCk7CisJCX0KKyNlbmRpZgorCisJCWkrKzsKKwl9CisJZmNsb3NlKGYpOworCW51bWNtZCA9IGk7CisJaWYgKGhhc19wcm9nKSB7CisJCWludCBsZW47CisJCWNoYXIgcGF0aFtQQVRIX1NJWkVdOworCisJCXN0cmNweSAocGF0aCwgc2NyaXB0X3ByZWZpeCk7CisJCXN0cmNhdCAocGF0aCwgcHJvZyk7CisJCWxlbiA9IHN0cmxlbiAocGF0aCk7CisJCWlmIChwYXRoW2xlbiAtIDFdID09ICcvJykgcGF0aFtsZW4gLSAxXSA9ICdcMCc7CisJCWlmIChhY2Nlc3MgKHBhdGgsIFJfT0sgfCBYX09LKSA9PSAwKQorCQkJc3RyY3B5IChib290X3Byb2csIHBhdGgpOworCX0KK30gICAvKiAgRW5kIEZ1bmN0aW9uIHJlYWRfaW5pdHRhYiAgKi8KKworc3RhdGljIHZvaWQgc2lnaHVwX2hhbmRsZXIgKGludCBzaWcpCit7CisJaW50IGksajsKKwlpbnQgb2xkbnVtOworCXN0cnVjdCBpbml0bGluZQlzYXZldGFiW05VTUNNRF07CisJaW50IGhhZF9hbHJlYWR5OworCisJc2lnbmFsIChTSUdIVVAsIFNJR19JR04pOworCW1lbWNweShzYXZldGFiLCBpbml0dGFiLCBOVU1DTUQgKiBzaXplb2Yoc3RydWN0IGluaXRsaW5lKSk7CisJb2xkbnVtID0gbnVtY21kOwkJCisJcmVhZF9pbml0dGFiICgpOworCQorCWZvcihpID0gMDsgaSA8IG51bWNtZDsgaSsrKSB7CisJCWhhZF9hbHJlYWR5ID0gMDsKKwkJZm9yKGogPSAwOyBqIDwgb2xkbnVtOyBqKyspIHsKKwkJCWlmKCFzdHJjbXAoc2F2ZXRhYltqXS50dHksIGluaXR0YWJbaV0udHR5KSkgeworCQkJCWhhZF9hbHJlYWR5ID0gMTsKKwkJCQlpZigoaW5pdHRhYltpXS5waWQgPSBzYXZldGFiW2pdLnBpZCkgPCAwKQorCQkJCQlzcGF3bihpKTsKKwkJCX0KKwkJfQorCQlpZiAoIWhhZF9hbHJlYWR5KSBzcGF3biAoaSk7CisJfQorCXNpZ25hbCAoU0lHSFVQLCBzaWdodXBfaGFuZGxlcik7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBzaWdodXBfaGFuZGxlciAgKi8KKworc3RhdGljIHZvaWQgc2lndHN0cF9oYW5kbGVyIChpbnQgc2lnKQoreworICAgIHN0b3BwZWQgPSB+c3RvcHBlZDsKKyAgICBpZiAoIXN0b3BwZWQpIHNpZ2h1cF9oYW5kbGVyIChzaWcpOworfSAgIC8qICBFbmQgRnVuY3Rpb24gc2lndHN0cF9oYW5kbGVyICAqLworCitzdGF0aWMgdm9pZCBzaWd0ZXJtX2hhbmRsZXIgKGludCBzaWcpCit7CisgICAgaW50IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtY21kOyBpKyspCisJaWYgKGluaXR0YWJbaV0ucGlkID4gMCkga2lsbCAoaW5pdHRhYltpXS5waWQsIFNJR1RFUk0pOworfSAgIC8qICBFbmQgRnVuY3Rpb24gc2lndGVybV9oYW5kbGVyICAqLworCitzdGF0aWMgdm9pZCBzaWdpbnRfaGFuZGxlciAoaW50IHNpZykKK3sKKyAgICBwaWRfdCBwaWQ7CisKKyAgICBjYXVnaHRfc2lnaW50ID0gMTsKKyAgICBraWxsIChyY19jaGlsZCwgU0lHS0lMTCk7CisgICAgaWYgKG5vX3JlYm9vdCkgX2V4aXQgKDEpIC8qa2lsbCAoMCwgU0lHS0lMTCkqLzsKKyAgICBzeW5jICgpOworICAgIHN5bmMgKCk7CisgICAgcGlkID0gZm9yayAoKTsKKyAgICBpZiAocGlkID4gMCkgcmV0dXJuOyAgLyogIFBhcmVudCAgICAgICAgICAgICAgICAgICAgICovCisgICAgaWYgKHBpZCA9PSAwKSAJICAvKiAgQ2hpbGQ6IHJlYm9vdCBwcm9wZXJseS4uLiAgKi8KKwlleGVjbCAoX1BBVEhfUkVCT09ULCBfUEFUSF9SRUJPT1QsIChjaGFyICopIDApOworCisgICAgLyogZm9yayBvciBleGVjIGZhaWxlZCwgdHJ5IHRoZSBoYXJkIHdheS4uLiAqLworICAgIG15X3JlYm9vdCAoTElOVVhfUkVCT09UX0NNRF9SRVNUQVJUKTsKK30gICAvKiAgRW5kIEZ1bmN0aW9uIHNpZ2ludF9oYW5kbGVyICAqLworCitzdGF0aWMgdm9pZCBzaWdjaGlsZF9oYW5kbGVyIChpbnQgc2lnKQoreworICAgIGlmICghZG9fbG9uZ2ptcCkgcmV0dXJuOworICAgIHNpZ2xvbmdqbXAgKGptcF9lbnYsIDEpOworfQorCitzdGF0aWMgdm9pZCBzaWdxdWl0X2hhbmRsZXIgKGludCBzaWcpCit7CisgICAgZXhlY2wgKF9QQVRIX1JFQk9PVCwgX1BBVEhfUkVCT09ULCBOVUxMKTsgLyogIEl0IGtub3dzIHBpZD0xIG11c3Qgc2xlZXAgICovCit9CisKKyNpZmRlZiBTRVRfVFoKK3N0YXRpYyB2b2lkIHNldF90eiAodm9pZCkKK3sKKwlGSUxFICpmOworCWludCBsZW47CisKKwlpZigoZj1mb3BlbihUWkZJTEUsICJyIikpID09IChGSUxFICopTlVMTCkgcmV0dXJuOworCWZnZXRzKHR6b25lLCBDTURTSVotMiwgZik7CisJZmNsb3NlKGYpOworCWlmKChsZW49c3RybGVuKHR6b25lKSkgPCAyKSByZXR1cm47CisJdHpvbmVbbGVuLTFdID0gMDsgLyogZ2V0IHJpZCBvZiB0aGUgJ1xuJyAqLworCXNldGVudigiVFoiLCB0em9uZSwgMCk7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgd3JpdGVfd3RtcCAodm9pZCkKK3sKKyAgICBpbnQgZmQsIGxmOworICAgIHN0cnVjdCB1dG1wIHV0OworICAgIAorICAgIG1lbXNldCgoY2hhciAqKSZ1dCwgMCwgc2l6ZW9mKHV0KSk7CisgICAgc3RyY3B5KHV0LnV0X2xpbmUsICJ+Iik7CisgICAgbWVtc2V0KHV0LnV0X25hbWUsIDAsIHNpemVvZih1dC51dF9uYW1lKSk7CisgICAgdGltZSgmdXQudXRfdGltZSk7CisgICAgdXQudXRfdHlwZSA9IEJPT1RfVElNRTsKKworICAgIGlmICgobGYgPSBvcGVuKF9QQVRIX1dUTVBMT0NLLCBPX0NSRUFUfE9fV1JPTkxZLCAwNjYwKSkgPj0gMCkgeworCWZsb2NrKGxmLCBMT0NLX0VYfExPQ0tfTkIpOyAvKiBtYWtlIHN1cmUgaW5pdCB3b24ndCBoYW5nICovCisJaWYoKGZkID0gb3BlbihfUEFUSF9XVE1QLCBPX1dST05MWXxPX0FQUEVORCkpID49IDApIHsKKwkgICAgd3JpdGUoZmQsIChjaGFyICopJnV0LCBzaXplb2YodXQpKTsKKwkgICAgY2xvc2UoZmQpOworCX0KKwlmbG9jayhsZiwgTE9DS19VTnxMT0NLX05CKTsKKwljbG9zZShsZik7CisgICAgfQorfSAgIC8qICBFbmQgRnVuY3Rpb24gd3JpdGVfd3RtcCAgKi8KKworCitzdHJ1Y3QgbmVlZGVyX3N0cnVjdAoreworICAgIHN0cnVjdCBuZWVkZXJfc3RydWN0ICpuZXh0OworICAgIHBpZF90IHBpZDsKK307CisKK3N0cnVjdCBzZXJ2aWNlX3N0cnVjdAoreworICAgIHN0cnVjdCBzZXJ2aWNlX3N0cnVjdCAqcHJldiwgKm5leHQ7ICAgIC8qICBTY3JpcHQgc2VydmljZXMgY2hhaW4gICAgICAgICAqLworICAgIHN0cnVjdCBuZWVkZXJfc3RydWN0ICpuZWVkZXJzOyAgICAgICAgIC8qICBOZWVkZXJzIHdhaXRpbmcgZm9yIHNlcnZpY2UgICAqLworICAgIHN0cnVjdCBzY3JpcHRfc3RydWN0ICphdHRlbXB0aW5nX3Byb3ZpZGVyczsKKyAgICBpbnQgZmFpbGVkOyAgICAgICAgICAgICAgICAvKiAgVFJVRSBpZiBhdHRlbXB0aW5nIHByb3ZpZGVyIGZhaWxlZCBiYWRseSAgKi8KKyAgICBjaGFyIG5hbWVbMV07Cit9OworCitzdHJ1Y3Qgc2NyaXB0X3N0cnVjdAoreworICAgIHBpZF90IHBpZDsKKyAgICBzdHJ1Y3Qgc2NyaXB0X3N0cnVjdCAqcHJldiwgKm5leHQ7ICAgICAgICAgICAgICAvKiAgRm9yIHRoZSBsaXN0ICAgICAgICAgKi8KKyAgICBzdHJ1Y3Qgc2VydmljZV9zdHJ1Y3QgKmZpcnN0X3NlcnZpY2UsICpsYXN0X3NlcnZpY2U7IC8qRmlyc3QgaXMgdHJ1ZSBuYW1lKi8KKyAgICBzdHJ1Y3Qgc2NyaXB0X3N0cnVjdCAqbmV4dF9hdHRlbXB0aW5nX3Byb3ZpZGVyOyAvKiAgUHJvdmlkZXIgY2hhaW4gICAgICAgKi8KK307CisKK3N0cnVjdCBsaXN0X2hlYWQKK3sKKyAgICBzdHJ1Y3Qgc2NyaXB0X3N0cnVjdCAqZmlyc3QsICpsYXN0OworICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllczsKK307CisKKworc3RhdGljIHN0cnVjdCBsaXN0X2hlYWQgYXZhaWxhYmxlX2xpc3QgPSB7TlVMTCwgTlVMTCwgMH07CitzdGF0aWMgc3RydWN0IGxpc3RfaGVhZCBzdGFydGluZ19saXN0ID0ge05VTEwsIE5VTEwsIDB9Oworc3RhdGljIHN0cnVjdCBzZXJ2aWNlX3N0cnVjdCAqdW5hdmFpbGFibGVfc2VydmljZXMgPSBOVUxMOyAgLyogIEZvciBuZWVkZXJzICAqLworc3RhdGljIGludCBudW1fbmVlZGVycyA9IDA7CisKKworc3RhdGljIGludCBwcm9jZXNzX3BpZHN0YXQgKHBpZF90IHBpZCwgaW50IHN0YXR1cyk7CitzdGF0aWMgdm9pZCBwcm9jZXNzX2NvbW1hbmQgKGNvbnN0IHN0cnVjdCBjb21tYW5kX3N0cnVjdCAqY29tbWFuZCk7CitzdGF0aWMgc3RydWN0IHNlcnZpY2Vfc3RydWN0ICpmaW5kX3NlcnZpY2VfaW5fbGlzdCAoY29uc3QgY2hhciAqbmFtZSwKKwkJCQkJCSAgICBzdHJ1Y3Qgc2VydmljZV9zdHJ1Y3QgKnN2KTsKK3N0YXRpYyBzdHJ1Y3Qgc2NyaXB0X3N0cnVjdCAqZmluZF9zY3JpcHRfYnluYW1lCisgICAgKGNvbnN0IGNoYXIgKm5hbWUsc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgc3RydWN0IHNlcnZpY2Vfc3RydWN0ICoqc2VydmljZSk7CitzdGF0aWMgc3RydWN0IHNjcmlwdF9zdHJ1Y3QgKmZpbmRfc2NyaXB0X2J5cGlkIChwaWRfdCBwaWQsCisJCQkJCQlzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKTsKK3N0YXRpYyB2b2lkIGluc2VydF9lbnRyeSAoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgc3RydWN0IHNjcmlwdF9zdHJ1Y3QgKmVudHJ5KTsKK3N0YXRpYyB2b2lkIHJlbW92ZV9lbnRyeSAoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgc3RydWN0IHNjcmlwdF9zdHJ1Y3QgKmVudHJ5KTsKK3N0YXRpYyB2b2lkIHNpZ25hbF9uZWVkZXJzIChzdHJ1Y3Qgc2VydmljZV9zdHJ1Y3QgKnNlcnZpY2UsIGludCBzaWcpOworc3RhdGljIHZvaWQgaGFuZGxlX25vbndvcmtpbmcgKHN0cnVjdCBzY3JpcHRfc3RydWN0ICpzY3JpcHQpOworc3RhdGljIGludCBmb3JjZV9wcm9ncmVzcyAodm9pZCk7CitzdGF0aWMgdm9pZCBzaG93X3NjcmlwdHMgKEZJTEUgKmZwLCBjb25zdCBzdHJ1Y3Qgc2NyaXB0X3N0cnVjdCAqc2NyaXB0LAorCQkJICBjb25zdCBjaGFyICp0eXBlKTsKK3N0YXRpYyBjb25zdCBjaGFyICpnZXRfcGF0aCAoY29uc3QgY2hhciAqZmlsZSk7CisKKworc3RhdGljIHBpZF90IG15d2FpdCAoaW50ICpzdGF0dXMpCisvKiAgW1JFVFVSTlNdIFRoZSBwaWQgZm9yIGEgcHJvY2VzcyB0byBiZSByZWFwZWQsIDAgaWYgbm8gcHJvY2VzcyBpcyB0byBiZQorICAgIHJlYXBlZCwgYW5kIGxlc3MgdGhhbiAwIGlmIHRoZSBib290IHNjcmlwdHMgYXBwZWFyIHRvIGhhdmUgZmluaXNoZWQuCisqLworeworICAgIHBpZF90IHBpZDsKKyAgICBzaWdzZXRfdCBzczsKKyAgICBsb25nIGJ1ZmZlcltDT01NQU5EX1NJWkUgLyBzaXplb2YgKGxvbmcpXTsKKyAgICBzdHJ1Y3QgY29tbWFuZF9zdHJ1Y3QgKmNvbW1hbmQgPSAoc3RydWN0IGNvbW1hbmRfc3RydWN0ICopIGJ1ZmZlcjsKKworICAgIGlmIChpbml0Y3RsX2ZkIDwgMCkgcmV0dXJuIHdhaXQgKHN0YXR1cyk7CisgICAgLyogIFNvbWUgbWFnaWMgdG8gYXZvaWQgcmFjZXMgd2hpY2ggY2FuIHJlc3VsdCBpbiBsb3N0IHNpZ25hbHMgICAqLworICAgIGNvbW1hbmQtPmNvbW1hbmQgPSAtMTsKKyAgICBpZiAoIHNpZ3NldGptcCAoam1wX2VudiwgMSkgKQorICAgIHsgICAvKiAgSnVtcCBmcm9tIHNpZ25hbCBoYW5kbGVyICAqLworCWRvX2xvbmdqbXAgPSAwOworCXByb2Nlc3NfY29tbWFuZCAoY29tbWFuZCk7CisJcmV0dXJuIDA7CisgICAgfQorICAgIHNpZ2VtcHR5c2V0ICgmc3MpOyAgLyogIEJsb2NrIFNJR0NITEQgc28gd2FpdCBzdGF0dXMgY2Fubm90IGJlIGxvc3QgICovCisgICAgc2lnYWRkc2V0ICgmc3MsIFNJR0NITEQpOworICAgIHNpZ3Byb2NtYXNrIChTSUdfQkxPQ0ssICZzcywgTlVMTCk7CisgICAgaWYgKCAoIHBpZCA9IHdhaXRwaWQgKC0xLCBzdGF0dXMsIFdOT0hBTkcpICkgPiAwICkKKyAgICB7CisJc2lncHJvY21hc2sgKFNJR19VTkJMT0NLLCAmc3MsIE5VTEwpOworCXJldHVybiBwcm9jZXNzX3BpZHN0YXQgKHBpZCwgKnN0YXR1cyk7CisgICAgfQorICAgIGRvX2xvbmdqbXAgPSAxOyAgLyogIEFmdGVyIHRoaXMsIFNJR0NITEQgd2lsbCBjYXVzZSBhIGp1bXAgYmFja3dhcmRzICAqLworICAgIHNpZ3Byb2NtYXNrIChTSUdfVU5CTE9DSywgJnNzLCBOVUxMKTsKKyAgICByZWFkIChpbml0Y3RsX2ZkLCBidWZmZXIsIHNpemVvZihidWZmZXIpKTsKKyAgICBkb19sb25nam1wID0gMDsKKyAgICBwcm9jZXNzX2NvbW1hbmQgKGNvbW1hbmQpOworICAgIHJldHVybiAwOworfSAgIC8qICBFbmQgRnVuY3Rpb24gbXl3YWl0ICAqLworCitzdGF0aWMgcGlkX3QgcHJvY2Vzc19waWRzdGF0IChwaWRfdCBwaWQsIGludCBzdGF0dXMpCisvKiAgW1JFVFVSTlNdIFRoZSBwaWQgZm9yIGEgcHJvY2VzcyB0byBiZSByZWFwZWQsIDAgaWYgbm8gcHJvY2VzcyBpcyB0byBiZQorICAgIHJlYXBlZCwgYW5kIGxlc3MgdGhhbiAwIGlmIHRoZSBib290IHNjcmlwdHMgYXBwZWFyIHRvIGhhdmUgZmluaXNoZWQuCisqLworeworICAgIGludCBmYWlsZWQ7CisgICAgc3RydWN0IHNjcmlwdF9zdHJ1Y3QgKnNjcmlwdDsKKyAgICBzdHJ1Y3Qgc2VydmljZV9zdHJ1Y3QgKnNlcnZpY2U7CisKKyAgICBpZiAoICggc2NyaXB0ID0gZmluZF9zY3JpcHRfYnlwaWQgKHBpZCwgJnN0YXJ0aW5nX2xpc3QpICkgPT0gTlVMTCApCisJcmV0dXJuIHBpZDsKKyAgICByZW1vdmVfZW50cnkgKCZzdGFydGluZ19saXN0LCBzY3JpcHQpOworICAgIGlmICggV0lGRVhJVEVEIChzdGF0dXMpICYmIChXRVhJVFNUQVRVUyAoc3RhdHVzKSA9PSAwKSApCisgICAgeworCXN0cnVjdCBzY3JpcHRfc3RydWN0ICpwcm92aWRlcjsKKworCS8qICBOb3RpZnkgbmVlZGVycyBhbmQgb3RoZXIgcHJvdmlkZXJzICAqLworCWZvciAoc2VydmljZSA9IHNjcmlwdC0+Zmlyc3Rfc2VydmljZTsgc2VydmljZSAhPSBOVUxMOworCSAgICAgc2VydmljZSA9IHNlcnZpY2UtPm5leHQpCisJeworCSAgICBzaWduYWxfbmVlZGVycyAoc2VydmljZSwgU0lHX1BSRVNFTlQpOworCSAgICBmb3IgKHByb3ZpZGVyID0gc2VydmljZS0+YXR0ZW1wdGluZ19wcm92aWRlcnM7IHByb3ZpZGVyICE9IE5VTEw7CisJCSBwcm92aWRlciA9IHByb3ZpZGVyLT5uZXh0X2F0dGVtcHRpbmdfcHJvdmlkZXIpCisJCWtpbGwgKHByb3ZpZGVyLT5waWQsIFNJR19QUkVTRU5UKTsKKwkgICAgc2VydmljZS0+YXR0ZW1wdGluZ19wcm92aWRlcnMgPSBOVUxMOworCX0KKwlpbnNlcnRfZW50cnkgKCZhdmFpbGFibGVfbGlzdCwgc2NyaXB0KTsKKwlyZXR1cm4gZm9yY2VfcHJvZ3Jlc3MgKCk7CisgICAgfQorICAgIGZhaWxlZCA9ICggV0lGRVhJVEVEIChzdGF0dXMpICYmIChXRVhJVFNUQVRVUyAoc3RhdHVzKSA9PSAyKSApID8gMCA6IDE7CisgICAgZm9yIChzZXJ2aWNlID0gc2NyaXB0LT5maXJzdF9zZXJ2aWNlOyBzZXJ2aWNlICE9IE5VTEw7CisJIHNlcnZpY2UgPSBzZXJ2aWNlLT5uZXh0KQorCXNlcnZpY2UtPmZhaWxlZCA9IGZhaWxlZDsKKyAgICBoYW5kbGVfbm9ud29ya2luZyAoc2NyaXB0KTsKKyAgICByZXR1cm4gZm9yY2VfcHJvZ3Jlc3MgKCk7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBwcm9jZXNzX3BpZHN0YXQgICovCisKK3N0YXRpYyB2b2lkIHByb2Nlc3NfY29tbWFuZCAoY29uc3Qgc3RydWN0IGNvbW1hbmRfc3RydWN0ICpjb21tYW5kKQoreworICAgIGludCBpdmFsOworICAgIHN0cnVjdCBzY3JpcHRfc3RydWN0ICpzY3JpcHQ7CisgICAgc3RydWN0IHNlcnZpY2Vfc3RydWN0ICpzZXJ2aWNlOworCisgICAgc3dpdGNoIChjb21tYW5kLT5jb21tYW5kKQorICAgIHsKKyAgICAgIGNhc2UgQ09NTUFORF9URVNUOgorCWtpbGwgKGNvbW1hbmQtPnBpZCwKKwkgICAgICAoZmluZF9zY3JpcHRfYnluYW1lIChjb21tYW5kLT5uYW1lLCAmYXZhaWxhYmxlX2xpc3QsCisJCQkJICAgTlVMTCkgPT0gTlVMTCkgPworCSAgICAgIFNJR19OT1RfUFJFU0VOVCA6IFNJR19QUkVTRU5UKTsKKwlicmVhazsKKyAgICAgIGNhc2UgQ09NTUFORF9ORUVEOgorCWl2YWwgPSBydW5fY29tbWFuZCAoY29tbWFuZC0+bmFtZSwgY29tbWFuZC0+bmFtZSwgY29tbWFuZC0+cGlkKTsKKwlpZiAoaXZhbCA9PSAwKQorCXsKKwkgICAgKytudW1fbmVlZGVyczsKKwkgICAgZm9yY2VfcHJvZ3Jlc3MgKCk7CisJfQorCWVsc2Uga2lsbCAoY29tbWFuZC0+cGlkLCBpdmFsKTsKKwlicmVhazsKKyAgICAgIGNhc2UgQ09NTUFORF9ST0xMQkFDSzoKKwlpZiAoY29tbWFuZC0+bmFtZVswXSA9PSAnXDAnKSBzY3JpcHQgPSBOVUxMOworCWVsc2UKKwl7CisJICAgIGlmICggKCBzY3JpcHQgPSBmaW5kX3NjcmlwdF9ieW5hbWUgKGNvbW1hbmQtPm5hbWUsICZhdmFpbGFibGVfbGlzdCwKKwkJCQkJCU5VTEwpICkgPT0gTlVMTCApCisJICAgIHsKKwkJa2lsbCAoY29tbWFuZC0+cGlkLCBTSUdfTk9UX1BSRVNFTlQpOworCQlicmVhazsKKwkgICAgfQorCX0KKwl3aGlsZSAoc2NyaXB0ICE9IGF2YWlsYWJsZV9saXN0LmZpcnN0KQorCXsKKwkgICAgcGlkX3QgcGlkOworCSAgICBzdHJ1Y3Qgc2NyaXB0X3N0cnVjdCAqdmljdGltID0gYXZhaWxhYmxlX2xpc3QuZmlyc3Q7CisJICAgIGNoYXIgdHh0WzI1Nl07CisKKwkgICAgaWYgKCAoIHBpZCA9IGZvcmsgKCkgKSA9PSAwICkgICAvKiAgQ2hpbGQgICAqLworCSAgICB7CisJCWZvciAoaXZhbCA9IDE7IGl2YWwgPCBOU0lHOyBpdmFsKyspIHNpZ25hbCAoaXZhbCwgU0lHX0RGTCk7CisJCW9wZW4gKCIvZGV2L2NvbnNvbGUiLCBPX1JET05MWSwgMCk7CisJCW9wZW4gKCIvZGV2L2NvbnNvbGUiLCBPX1JEV1IsIDApOworCQlkdXAyICgxLCAyKTsKKwkJZXhlY2xwIChnZXRfcGF0aCAodmljdGltLT5maXJzdF9zZXJ2aWNlLT5uYW1lKSwKKwkJCXZpY3RpbS0+Zmlyc3Rfc2VydmljZS0+bmFtZSwgInN0b3AiLCBOVUxMKTsKKwkJc25wcmludGYgKHR4dCwgc2l6ZW9mKHR4dCksCisJCQlfKCJlcnJvciBzdG9wcGluZyBzZXJ2aWNlOiBcIiVzXCJcbiIpLAorCQkJIHZpY3RpbS0+Zmlyc3Rfc2VydmljZS0+bmFtZSk7CisJCWVyciAodHh0KTsKKwkJX2V4aXQgKFNJR19OT1RfU1RPUFBFRCk7CisJICAgIH0KKwkgICAgZWxzZSBpZiAocGlkID09IC0xKSBicmVhazsgICAgICAvKiAgRXJyb3IgICAqLworCSAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBQYXJlbnQgICovCisJICAgIHsKKwkJd2hpbGUgKHdhaXRwaWQgKHBpZCwgJml2YWwsIDApICE9IHBpZCkgLyogIE5vdGhpbmcgICovOworCQlpZiAoIFdJRkVYSVRFRCAoaXZhbCkgJiYgKFdFWElUU1RBVFVTIChpdmFsKSA9PSAwKSApCisJCXsKKwkJICAgIHNucHJpbnRmICh0eHQsIHNpemVvZih0eHQpLAorCQkJICAgICBfKCJTdG9wcGVkIHNlcnZpY2U6ICVzXG4iKSwKKwkJCSAgICAgdmljdGltLT5maXJzdF9zZXJ2aWNlLT5uYW1lKTsKKwkJICAgIHJlbW92ZV9lbnRyeSAoJmF2YWlsYWJsZV9saXN0LCB2aWN0aW0pOworCQkgICAgZnJlZSAodmljdGltKTsKKwkJICAgIGVyciAodHh0KTsKKwkJfQorCQllbHNlIGJyZWFrOworCSAgICB9CisJfQorCWtpbGwgKGNvbW1hbmQtPnBpZCwKKwkgICAgICAoc2NyaXB0ID09YXZhaWxhYmxlX2xpc3QuZmlyc3QpID8gU0lHX1NUT1BQRUQgOiBTSUdfTk9UX1NUT1BQRUQpOworCWJyZWFrOworICAgICAgY2FzZSBDT01NQU5EX0RVTVBfTElTVDoKKwlpZiAoZm9yayAoKSA9PSAwKSAvKiBEbyBpdCBpbiBhIGNoaWxkIHByb2Nlc3Mgc28gcGlkPTEgZG9lc24ndCBibG9jayAqLworCXsKKwkgICAgRklMRSAqZnA7CisKKwkgICAgaWYgKCAoIGZwID0gZm9wZW4gKGNvbW1hbmQtPm5hbWUsICJ3IikgKSA9PSBOVUxMICkgX2V4aXQgKDEpOworCSAgICBzaG93X3NjcmlwdHMgKGZwLCBhdmFpbGFibGVfbGlzdC5maXJzdCwgIkFWQUlMQUJMRSIpOworCSAgICBzaG93X3NjcmlwdHMgKGZwLCBzdGFydGluZ19saXN0LmZpcnN0LCAiU1RBUlRJTkciKTsKKwkgICAgZnB1dHMgKCJVTkFWQUlMQUJMRSBTRVJWSUNFUzpcbiIsIGZwKTsKKwkgICAgZm9yIChzZXJ2aWNlID0gdW5hdmFpbGFibGVfc2VydmljZXM7IHNlcnZpY2UgIT0gTlVMTDsKKwkJIHNlcnZpY2UgPSBzZXJ2aWNlLT5uZXh0KQorCQlmcHJpbnRmIChmcCwgIiVzICglcylcbiIsIHNlcnZpY2UtPm5hbWUsCisJCQkgc2VydmljZS0+ZmFpbGVkID8gIkZBSUxFRCIgOiAibm90IGNvbmZpZ3VyZWQiKTsKKwkgICAgZmNsb3NlIChmcCk7CisJICAgIF9leGl0ICgwKTsKKwl9CisJYnJlYWs7CisgICAgICBjYXNlIENPTU1BTkRfUFJPVklERToKKwkvKiAgU2FuaXR5IGNoZWNrICAqLworCWlmICggKCBzY3JpcHQgPSBmaW5kX3NjcmlwdF9ieXBpZCAoY29tbWFuZC0+cHBpZCwgJnN0YXJ0aW5nX2xpc3QpICkKKwkgICAgID09IE5VTEwgKQorCXsKKwkgICAga2lsbCAoY29tbWFuZC0+cGlkLCBTSUdfTk9UX0NISUxEKTsKKwkgICAgYnJlYWs7CisJfQorCWlmIChmaW5kX3NjcmlwdF9ieW5hbWUgKGNvbW1hbmQtPm5hbWUsICZhdmFpbGFibGVfbGlzdCwgTlVMTCkgIT0gTlVMTCkKKwl7CisJICAgIGtpbGwgKGNvbW1hbmQtPnBpZCwgU0lHX1BSRVNFTlQpOworCSAgICBicmVhazsKKwl9CisJaWYgKGZpbmRfc2NyaXB0X2J5bmFtZSAoY29tbWFuZC0+bmFtZSwgJnN0YXJ0aW5nX2xpc3QsICZzZXJ2aWNlKQorCSAgICAhPSBOVUxMKQorCXsgICAvKiAgU29tZW9uZSBlbHNlIGlzIHRyeWluZyB0byBwcm92aWRlICAqLworCSAgICBzY3JpcHQtPm5leHRfYXR0ZW1wdGluZ19wcm92aWRlciA9IHNlcnZpY2UtPmF0dGVtcHRpbmdfcHJvdmlkZXJzOworCSAgICBzZXJ2aWNlLT5hdHRlbXB0aW5nX3Byb3ZpZGVycyA9IHNjcmlwdDsKKwkgICAgYnJlYWs7CisJfQorCWlmICggKCBzZXJ2aWNlID0gZmluZF9zZXJ2aWNlX2luX2xpc3QgKGNvbW1hbmQtPm5hbWUsCisJCQkJCSAgICAgICB1bmF2YWlsYWJsZV9zZXJ2aWNlcykgKQorCSAgICAgPT0gTlVMTCApCisJeyAgIC8qICBXZSdyZSB0aGUgZmlyc3QgdG8gdHJ5IGFuZCBwcm92aWRlOiBjcmVhdGUgaXQgICovCisJICAgIGlmICggKCBzZXJ2aWNlID0KKwkJICAgY2FsbG9jICgxLCBzdHJsZW4gKGNvbW1hbmQtPm5hbWUpICsgc2l6ZW9mICpzZXJ2aWNlKSApCisJCSA9PSBOVUxMICkKKwkgICAgeworCQlraWxsIChjb21tYW5kLT5waWQsIFNJR19OT1RfQ0hJTEQpOworCQlicmVhazsKKwkgICAgfQorCSAgICBzdHJjcHkgKHNlcnZpY2UtPm5hbWUsIGNvbW1hbmQtPm5hbWUpOworCX0KKwllbHNlCisJeyAgIC8qICBPcnBoYW5lZCBzZXJ2aWNlOiB1bmhvb2sgYW5kIGdyYWIgaXQgICovCisJICAgIGlmIChzZXJ2aWNlLT5wcmV2ID09IE5VTEwpIHVuYXZhaWxhYmxlX3NlcnZpY2VzID0gc2VydmljZS0+bmV4dDsKKwkgICAgZWxzZSBzZXJ2aWNlLT5wcmV2LT5uZXh0ID0gc2VydmljZS0+bmV4dDsKKwkgICAgaWYgKHNlcnZpY2UtPm5leHQgIT0gTlVMTCkgc2VydmljZS0+bmV4dC0+cHJldiA9IHNlcnZpY2UtPnByZXY7CisJICAgIHNlcnZpY2UtPm5leHQgPSBOVUxMOworCX0KKwlzZXJ2aWNlLT5wcmV2ID0gc2NyaXB0LT5sYXN0X3NlcnZpY2U7CisJc2NyaXB0LT5sYXN0X3NlcnZpY2UtPm5leHQgPSBzZXJ2aWNlOworCXNjcmlwdC0+bGFzdF9zZXJ2aWNlID0gc2VydmljZTsKKwlraWxsIChjb21tYW5kLT5waWQsIFNJR19OT1RfUFJFU0VOVCk7CisJYnJlYWs7CisgICAgICBjYXNlIC0xOgorICAgICAgZGVmYXVsdDoKKwlicmVhazsKKyAgICB9Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBwcm9jZXNzX2NvbW1hbmQgICovCisKK3N0YXRpYyBpbnQgcnVuX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGNoYXIgKm5hbWUsIHBpZF90IHBpZCkKK3sKKyAgICBzdHJ1Y3Qgc2NyaXB0X3N0cnVjdCAqc2NyaXB0OworICAgIHN0cnVjdCBuZWVkZXJfc3RydWN0ICpuZWVkZXIgPSBOVUxMOworICAgIHN0cnVjdCBzZXJ2aWNlX3N0cnVjdCAqc2VydmljZTsKKworICAgIGlmIChmaW5kX3NjcmlwdF9ieW5hbWUgKG5hbWUsICZhdmFpbGFibGVfbGlzdCwgTlVMTCkgIT0gTlVMTCkKKwlyZXR1cm4gU0lHX1BSRVNFTlQ7CisgICAgaWYgKHBpZCAhPSAwKQorICAgIHsKKwluZWVkZXIgPSBjYWxsb2MgKDEsIHNpemVvZiAqbmVlZGVyKTsKKwlpZiAobmVlZGVyID09IE5VTEwpIHJldHVybiBTSUdfRkFJTEVEOworCW5lZWRlci0+cGlkID0gcGlkOworICAgIH0KKyAgICBzY3JpcHQgPSBmaW5kX3NjcmlwdF9ieW5hbWUgKG5hbWUsICZzdGFydGluZ19saXN0LCAmc2VydmljZSk7CisgICAgaWYgKHNjcmlwdCA9PSBOVUxMKQorCXNlcnZpY2UgPSBmaW5kX3NlcnZpY2VfaW5fbGlzdCAobmFtZSwgdW5hdmFpbGFibGVfc2VydmljZXMpOworICAgIGlmIChzZXJ2aWNlID09IE5VTEwpCisgICAgeworCWludCBpOworCWNoYXIgdHh0WzEwMjRdOworCisJaWYgKCAoIHNjcmlwdCA9IGNhbGxvYyAoMSwgc2l6ZW9mICpzY3JpcHQpICkgPT0gTlVMTCApCisJeworCSAgICBmcmVlIChuZWVkZXIpOworCSAgICByZXR1cm4gU0lHX0ZBSUxFRDsKKwl9CisJc2VydmljZSA9IGNhbGxvYyAoMSwgc3RybGVuIChuYW1lKSArIHNpemVvZiAqc2VydmljZSk7CisJaWYgKHNlcnZpY2UgPT0gTlVMTCkKKwl7CisJICAgIGZyZWUgKHNjcmlwdCk7CisJICAgIHJldHVybiBTSUdfRkFJTEVEOworCX0KKwlzdHJjcHkgKHNlcnZpY2UtPm5hbWUsIG5hbWUpOworCXN3aXRjaCAoIHNjcmlwdC0+cGlkID0gZm9yayAoKSApCisJeworCSAgY2FzZSAwOiAgIC8qICBDaGlsZCAgICovCisJICAgIGZvciAoaSA9IDE7IGkgPCBOU0lHOyBpKyspIHNpZ25hbCAoaSwgU0lHX0RGTCk7CisJICAgIGV4ZWNscCAoZ2V0X3BhdGggKGZpbGUpLCBzZXJ2aWNlLT5uYW1lLCAic3RhcnQiLCBOVUxMKTsKKwkgICAgc25wcmludGYgKHR4dCwgc2l6ZW9mKHR4dCksCisJCV8oImVycm9yIHJ1bm5pbmcgcHJvZ3JhbW1lOiBcIiVzXCJcbiIpLCBzZXJ2aWNlLT5uYW1lKTsKKwkgICAgZXJyICh0eHQpOworCSAgICBfZXhpdCAoU0lHX0ZBSUxFRCk7CisJICAgIGJyZWFrOworCSAgY2FzZSAtMTogIC8qICBFcnJvciAgICovCisJICAgIHNlcnZpY2UtPm5leHQgPSB1bmF2YWlsYWJsZV9zZXJ2aWNlczsKKwkgICAgaWYgKHVuYXZhaWxhYmxlX3NlcnZpY2VzICE9IE5VTEwpCisJCXVuYXZhaWxhYmxlX3NlcnZpY2VzLT5wcmV2ID0gc2VydmljZTsKKwkgICAgdW5hdmFpbGFibGVfc2VydmljZXMgPSBzZXJ2aWNlOworCSAgICBmcmVlIChzY3JpcHQpOworCSAgICBmcmVlIChuZWVkZXIpOworCSAgICByZXR1cm4gU0lHX0ZBSUxFRDsKKwkgICAgLypicmVhazsqLworCSAgZGVmYXVsdDogIC8qICBQYXJlbnQgICovCisJICAgIHNjcmlwdC0+Zmlyc3Rfc2VydmljZSA9IHNlcnZpY2U7CisJICAgIHNjcmlwdC0+bGFzdF9zZXJ2aWNlID0gc2VydmljZTsKKwkgICAgaW5zZXJ0X2VudHJ5ICgmc3RhcnRpbmdfbGlzdCwgc2NyaXB0KTsKKwkgICAgc2NoZWRfeWllbGQgKCk7CisJICAgIGJyZWFrOworCX0KKyAgICB9CisgICAgaWYgKG5lZWRlciA9PSBOVUxMKSByZXR1cm4gMDsKKyAgICBuZWVkZXItPm5leHQgPSBzZXJ2aWNlLT5uZWVkZXJzOworICAgIHNlcnZpY2UtPm5lZWRlcnMgPSBuZWVkZXI7CisgICAgcmV0dXJuIDA7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBydW5fY29tbWFuZCAgKi8KKworc3RhdGljIHN0cnVjdCBzZXJ2aWNlX3N0cnVjdCAqZmluZF9zZXJ2aWNlX2luX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJCQkgICAgc3RydWN0IHNlcnZpY2Vfc3RydWN0ICpzdikKK3sKKyAgICBmb3IgKDsgc3YgIT0gTlVMTDsgc3YgPSBzdi0+bmV4dCkKKwlpZiAoc3RyY21wIChzdi0+bmFtZSwgbmFtZSkgPT0gMCkgcmV0dXJuIChzdik7CisgICAgcmV0dXJuIE5VTEw7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBmaW5kX3NlcnZpY2VfaW5fbGlzdCAgKi8KKworc3RhdGljIHN0cnVjdCBzY3JpcHRfc3RydWN0ICpmaW5kX3NjcmlwdF9ieW5hbWUgKGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJCQkgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwKKwkJCQkJCSBzdHJ1Y3Qgc2VydmljZV9zdHJ1Y3QgKipzZXJ2aWNlKQoreworICAgIHN0cnVjdCBzY3JpcHRfc3RydWN0ICpzY3JpcHQ7CisKKyAgICBmb3IgKHNjcmlwdCA9IGhlYWQtPmZpcnN0OyBzY3JpcHQgIT0gTlVMTDsgc2NyaXB0ID0gc2NyaXB0LT5uZXh0KQorICAgIHsKKwlzdHJ1Y3Qgc2VydmljZV9zdHJ1Y3QgKnN2OworCisJaWYgKCAoIHN2ID0gZmluZF9zZXJ2aWNlX2luX2xpc3QgKG5hbWUsIHNjcmlwdC0+Zmlyc3Rfc2VydmljZSkgKQorCSAgICAgIT0gTlVMTCApCisJeworCSAgICBpZiAoc2VydmljZSAhPSBOVUxMKSAqc2VydmljZSA9IHN2OworCSAgICByZXR1cm4gKHNjcmlwdCk7CisJfQorICAgIH0KKyAgICBpZiAoc2VydmljZSAhPSBOVUxMKSAqc2VydmljZSA9IE5VTEw7CisgICAgcmV0dXJuIE5VTEw7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBmaW5kX3NjcmlwdF9ieW5hbWUgICovCisKK3N0YXRpYyBzdHJ1Y3Qgc2NyaXB0X3N0cnVjdCAqZmluZF9zY3JpcHRfYnlwaWQgKHBpZF90IHBpZCwKKwkJCQkJCXN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCit7CisgICAgc3RydWN0IHNjcmlwdF9zdHJ1Y3QgKnNjcmlwdDsKKworICAgIGZvciAoc2NyaXB0ID0gaGVhZC0+Zmlyc3Q7IHNjcmlwdCAhPSBOVUxMOyBzY3JpcHQgPSBzY3JpcHQtPm5leHQpCisJaWYgKHNjcmlwdC0+cGlkID09IHBpZCkgcmV0dXJuIChzY3JpcHQpOworICAgIHJldHVybiBOVUxMOworfSAgIC8qICBFbmQgRnVuY3Rpb24gZmluZF9zY3JpcHRfYnlwaWQgICovCisKK3N0YXRpYyB2b2lkIGluc2VydF9lbnRyeSAoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgc3RydWN0IHNjcmlwdF9zdHJ1Y3QgKmVudHJ5KQoreworICAgIGlmIChlbnRyeSA9PSBOVUxMKSByZXR1cm47CisgICAgZW50cnktPnByZXYgPSBOVUxMOworICAgIGVudHJ5LT5uZXh0ID0gaGVhZC0+Zmlyc3Q7CisgICAgaWYgKGhlYWQtPmZpcnN0ICE9IE5VTEwpIGhlYWQtPmZpcnN0LT5wcmV2ID0gZW50cnk7CisgICAgaGVhZC0+Zmlyc3QgPSBlbnRyeTsKKyAgICBpZiAoaGVhZC0+bGFzdCA9PSBOVUxMKSBoZWFkLT5sYXN0ID0gZW50cnk7CisgICAgKytoZWFkLT5udW1fZW50cmllczsKK30gICAvKiAgRW5kIEZ1bmN0aW9uIGluc2VydF9lbnRyeSAgKi8KKworc3RhdGljIHZvaWQgcmVtb3ZlX2VudHJ5IChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBzdHJ1Y3Qgc2NyaXB0X3N0cnVjdCAqZW50cnkpCit7CisgICAgaWYgKGVudHJ5LT5wcmV2ID09IE5VTEwpIGhlYWQtPmZpcnN0ID0gZW50cnktPm5leHQ7CisgICAgZWxzZSBlbnRyeS0+cHJldi0+bmV4dCA9IGVudHJ5LT5uZXh0OworICAgIGlmIChlbnRyeS0+bmV4dCA9PSBOVUxMKSBoZWFkLT5sYXN0ID0gZW50cnktPnByZXY7CisgICAgZWxzZSBlbnRyeS0+bmV4dC0+cHJldiA9IGVudHJ5LT5wcmV2OworICAgIC0taGVhZC0+bnVtX2VudHJpZXM7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiByZW1vdmVfZW50cnkgICovCisKK3N0YXRpYyB2b2lkIHNpZ25hbF9uZWVkZXJzIChzdHJ1Y3Qgc2VydmljZV9zdHJ1Y3QgKnNlcnZpY2UsIGludCBzaWcpCit7CisgICAgc3RydWN0IG5lZWRlcl9zdHJ1Y3QgKm5lZWRlciwgKm5leHRfbmVlZGVyOworCisgICAgZm9yIChuZWVkZXIgPSBzZXJ2aWNlLT5uZWVkZXJzOyBuZWVkZXIgIT0gTlVMTDsgbmVlZGVyID0gbmV4dF9uZWVkZXIpCisgICAgeworCWtpbGwgKG5lZWRlci0+cGlkLCBzaWcpOworCW5leHRfbmVlZGVyID0gbmVlZGVyLT5uZXh0OworCWZyZWUgKG5lZWRlcik7CisJLS1udW1fbmVlZGVyczsKKyAgICB9CisgICAgc2VydmljZS0+bmVlZGVycyA9IE5VTEw7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBzaWduYWxfbmVlZGVycyAgKi8KKworc3RhdGljIHZvaWQgaGFuZGxlX25vbndvcmtpbmcgKHN0cnVjdCBzY3JpcHRfc3RydWN0ICpzY3JpcHQpCit7CisgICAgc3RydWN0IHNlcnZpY2Vfc3RydWN0ICpzZXJ2aWNlLCAqbmV4dDsKKworICAgIGZvciAoc2VydmljZSA9IHNjcmlwdC0+Zmlyc3Rfc2VydmljZTsgc2VydmljZSAhPSBOVUxMOyBzZXJ2aWNlID0gbmV4dCkKKyAgICB7CisJc3RydWN0IHNjcmlwdF9zdHJ1Y3QgKnByb3ZpZGVyID0gc2VydmljZS0+YXR0ZW1wdGluZ19wcm92aWRlcnM7CisKKwluZXh0ID0gc2VydmljZS0+bmV4dDsKKwlpZiAocHJvdmlkZXIgPT0gTlVMTCkKKwl7CisJICAgIHNlcnZpY2UtPnByZXYgPSBOVUxMOworCSAgICBzZXJ2aWNlLT5uZXh0ID0gdW5hdmFpbGFibGVfc2VydmljZXM7CisJICAgIGlmICh1bmF2YWlsYWJsZV9zZXJ2aWNlcyAhPSBOVUxMKQorCQl1bmF2YWlsYWJsZV9zZXJ2aWNlcy0+cHJldiA9IHNlcnZpY2U7CisJICAgIHVuYXZhaWxhYmxlX3NlcnZpY2VzID0gc2VydmljZTsKKwkgICAgY29udGludWU7CisJfQorCXNlcnZpY2UtPmF0dGVtcHRpbmdfcHJvdmlkZXJzID0gcHJvdmlkZXItPm5leHRfYXR0ZW1wdGluZ19wcm92aWRlcjsKKwlwcm92aWRlci0+bGFzdF9zZXJ2aWNlLT5uZXh0ID0gc2VydmljZTsKKwlzZXJ2aWNlLT5wcmV2ID0gcHJvdmlkZXItPmxhc3Rfc2VydmljZTsKKwlwcm92aWRlci0+bGFzdF9zZXJ2aWNlID0gc2VydmljZTsKKwlzZXJ2aWNlLT5uZXh0ID0gTlVMTDsKKwlraWxsIChwcm92aWRlci0+cGlkLCBTSUdfTk9UX1BSRVNFTlQpOworICAgIH0KKyAgICBmcmVlIChzY3JpcHQpOworfSAgIC8qICBFbmQgRnVuY3Rpb24gaGFuZGxlX25vbndvcmtpbmcgICovCisKK3N0YXRpYyBpbnQgZm9yY2VfcHJvZ3Jlc3MgKHZvaWQpCisvKiAgW1JFVFVSTlNdIDAgaWYgYm9vdCBzY3JpcHRzIGFyZSBzdGlsbCBydW5uaW5nLCBlbHNlIC0xLgorKi8KK3sKKyAgICBzdHJ1Y3Qgc2VydmljZV9zdHJ1Y3QgKnNlcnZpY2U7CisKKyAgICBpZiAoc3RhcnRpbmdfbGlzdC5udW1fZW50cmllcyA+IG51bV9uZWVkZXJzKSByZXR1cm4gMDsKKyAgICAvKiAgTm8gcHJvZ3Jlc3MgY2FuIGJlIG1hZGU6IHNpZ25hbCBuZWVkZXJzICAqLworICAgIGZvciAoc2VydmljZSA9IHVuYXZhaWxhYmxlX3NlcnZpY2VzOyBzZXJ2aWNlICE9IE5VTEw7CisJIHNlcnZpY2UgPSBzZXJ2aWNlLT5uZXh0KQorCXNpZ25hbF9uZWVkZXJzIChzZXJ2aWNlLAorCQkJc2VydmljZS0+ZmFpbGVkID8gU0lHX0ZBSUxFRCA6IFNJR19OT1RfUFJFU0VOVCk7CisgICAgcmV0dXJuIChzdGFydGluZ19saXN0Lm51bV9lbnRyaWVzIDwgMSkgPyAtMSA6IDA7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBmb3JjZV9wcm9ncmVzcyAgKi8KKworc3RhdGljIHZvaWQgc2hvd19zY3JpcHRzIChGSUxFICpmcCwgY29uc3Qgc3RydWN0IHNjcmlwdF9zdHJ1Y3QgKnNjcmlwdCwKKwkJCSAgY29uc3QgY2hhciAqdHlwZSkKK3sKKyAgICBmcHJpbnRmIChmcCwgIiVzIFNFUlZJQ0VTOlxuIiwgdHlwZSk7CisgICAgZm9yICg7IHNjcmlwdCAhPSBOVUxMOyBzY3JpcHQgPSBzY3JpcHQtPm5leHQpCisgICAgeworCXN0cnVjdCBzZXJ2aWNlX3N0cnVjdCAqc2VydmljZSA9IHNjcmlwdC0+Zmlyc3Rfc2VydmljZTsKKworCWZwdXRzIChzZXJ2aWNlLT5uYW1lLCBmcCk7CisJZm9yIChzZXJ2aWNlID0gc2VydmljZS0+bmV4dDsgc2VydmljZSAhPSBOVUxMOyBzZXJ2aWNlID0gc2VydmljZS0+bmV4dCkKKwkgICAgZnByaW50ZiAoZnAsICIgICglcykiLCBzZXJ2aWNlLT5uYW1lKTsKKwlwdXRjICgnXG4nLCBmcCk7CisgICAgfQorfSAgIC8qICBFbmQgRnVuY3Rpb24gc2hvd19zY3JpcHRzICAqLworCitzdGF0aWMgY29uc3QgY2hhciAqZ2V0X3BhdGggKGNvbnN0IGNoYXIgKmZpbGUpCit7CisgICAgY2hhciAqcDEsICpwMjsKKyAgICBzdGF0aWMgY2hhciBwYXRoW1BBVEhfU0laRV07CisKKyAgICBpZiAoZmlsZVswXSA9PSAnLycpIHJldHVybiBmaWxlOworICAgIGlmIChpbml0X3BhdGhbMF0gPT0gJ1wwJykgcmV0dXJuIGZpbGU7CisgICAgZm9yIChwMSA9IGluaXRfcGF0aDsgKnAxICE9ICdcMCc7IHAxID0gcDIpCisgICAgeworCWlmICggKCBwMiA9IHN0cmNociAocDEsICc6JykgKSA9PSBOVUxMICkKKwkgICAgcDIgPSBwMSArIHN0cmxlbiAocDEpOworCXN0cm5jcHkgKHBhdGgsIHAxLCBwMiAtIHAxKTsKKwlwYXRoW3AyIC0gcDFdID0gJy8nOworCXN0cmNweSAocGF0aCArIChwMiAtIHAxKSArIDEsIGZpbGUpOworCWlmICgqcDIgPT0gJzonKSArK3AyOworCWlmIChhY2Nlc3MgKHBhdGgsIFhfT0spID09IDApIHJldHVybiBwYXRoOworICAgIH0KKyAgICByZXR1cm4gZmlsZTsKK30gICAvKiAgRW5kIEZ1bmN0aW9uIGdldF9wYXRoICAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkODc2MjkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy9zaW1wbGVpbml0LmgKQEAgLTAsMCArMSwyOCBAQAorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKworI2RlZmluZSBFUlJTVFJJTkcgc3RyZXJyb3IgKGVycm5vKQorI2RlZmluZSBDT01NQU5EX1NJWkUgIChQSVBFX0JVRiAtIDQpCisKKworI2RlZmluZSBDT01NQU5EX1RFU1QgICAgICAgMCAgLyogIE5vIHdhaXQsIHNpZ25hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT01NQU5EX05FRUQgICAgICAgMSAgLyogIFdhaXQsIHNpZ25hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT01NQU5EX1JPTExCQUNLICAgMiAgLyogIFdhaXQsIHNpZ25hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT01NQU5EX0RVTVBfTElTVCAgMyAgLyogIE5vIHdhaXQsIG5vIHNpZ25hbCAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT01NQU5EX1BST1ZJREUgICAgNCAgLyogIFdhaXQsIHNpZ25hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisjZGVmaW5lIFNJR19QUkVTRU5UICAgICAgICBTSUdVU1IxICAvKiAgU2VydmljZSBpcyBhdmFpbGFibGUgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIFNJR19TVE9QUEVEICAgICAgICBTSUdVU1IxICAvKiAgU2VydmljZSB3YXMgc3RvcHBlZCBPSyAgICAgICAgICAgICAgICovCisjZGVmaW5lIFNJR19OT1RfUFJFU0VOVCAgICBTSUdVU1IyICAvKiAgTm90IHByZXNlbnQsIGJ1dCB0aGF0J3MgT0sgICAgICAgICAgICovCisjZGVmaW5lIFNJR19GQUlMRUQgICAgICAgICBTSUdQT0xMICAvKiAgU3RhcnR1cCBmYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIFNJR19OT1RfU1RPUFBFRCAgICBTSUdQT0xMICAvKiAgRmFpbGVkIHRvIHN0b3AgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIFNJR19OT1RfQ0hJTEQgICAgICBTSUdQT0xMICAvKiAgTm90IGEgY2hpbGQgb2YgaW5pdCAgICAgICAgICAgICAgICAgICovCisKK3N0cnVjdCBjb21tYW5kX3N0cnVjdCAgLyogIE11c3QgYWx3YXlzIGJlIENPTU1BTkRfU0laRSAgKi8KK3sKKyAgICBzaWduZWQgaW50IGNvbW1hbmQ7CisgICAgcGlkX3QgcGlkOworICAgIHBpZF90IHBwaWQ7CisgICAgY2hhciBuYW1lWzFdOworfTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3R0eW1zZy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvdHR5bXNnLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIyODJjMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3R0eW1zZy5jCkBAIC0wLDAgKzEsMTg4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTg5LCAxOTkzCisgKglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqIE1vZGlmaWVkIFN1biBNYXIgMTIgMTA6Mzk6MjIgMTk5NSwgZmFpdGhAY3MudW5jLmVkdSBmb3IgTGludXgKKyAqCisgKi8KKworIC8qIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAgKiBTdW4gTWFyIDIxIDE5OTkgLSBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8gPGFjbWVAY29uZWN0aXZhLmNvbS5icj4KKyAgKiAtIGZpeGVkIHN0cmVycihlcnJubykgaW4gZ2V0dGV4dCBjYWxscworICAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3Vpby5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxwYXRocy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSAibmxzLmgiCisKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJ0dHltc2cuaCIKKworLyoKKyAqIERpc3BsYXkgdGhlIGNvbnRlbnRzIG9mIGEgdWlvIHN0cnVjdHVyZSBvbiBhIHRlcm1pbmFsLiAgVXNlZCBieSB3YWxsKDEpLAorICogc3lzbG9nZCg4KSwgYW5kIHRhbGtkKDgpLiAgRm9ya3MgYW5kIGZpbmlzaGVzIGluIGNoaWxkIGlmIHdyaXRlIHdvdWxkIGJsb2NrLAorICogd2FpdGluZyB1cCB0byB0bW91dCBzZWNvbmRzLiAgUmV0dXJucyBwb2ludGVyIHRvIGVycm9yIHN0cmluZyBvbiB1bmV4cGVjdGVkCisgKiBlcnJvcjsgc3RyaW5nIGlzIG5vdCBuZXdsaW5lLXRlcm1pbmF0ZWQuICBWYXJpb3VzICJub3JtYWwiIGVycm9ycyBhcmUKKyAqIGlnbm9yZWQgKGV4Y2x1c2l2ZS11c2UsIGxhY2sgb2YgcGVybWlzc2lvbiwgZXRjLikuCisgKi8KK2NoYXIgKgordHR5bXNnKHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgaW92Y250LCBjaGFyICpsaW5lLCBpbnQgdG1vdXQpIHsKKwlzdGF0aWMgY2hhciBkZXZpY2VbTUFYTkFNTEVOXTsKKwlzdGF0aWMgY2hhciBlcnJidWZbTUFYTkFNTEVOKzEwMjRdOworCXJlZ2lzdGVyIGludCBjbnQsIGZkLCBsZWZ0LCB3cmV0OworCXN0cnVjdCBpb3ZlYyBsb2NhbGlvdls2XTsKKwlpbnQgZm9ya2VkID0gMCwgZXJyc3Y7CisKKwlpZiAoaW92Y250ID4gc2l6ZW9mKGxvY2FsaW92KSAvIHNpemVvZihsb2NhbGlvdlswXSkpCisJCXJldHVybiAoXygidG9vIG1hbnkgaW92J3MgKGNoYW5nZSBjb2RlIGluIHdhbGwvdHR5bXNnLmMpIikpOworCisJLyogVGhlIG9sZCBjb2RlIGhlcmUgcmVqZWN0ZWQgdGhlIGxpbmUgYXJndW1lbnQgd2hlbiBpdCBjb250YWluZWQgYSAnLycsCisJICAgc2F5aW5nOiAiQSBzbGFzaCBtYXkgYmUgYW4gYXR0ZW1wdCB0byBicmVhayBzZWN1cml0eS4uLiIuCisJICAgSG93ZXZlciwgaWYgYSB1c2VyIGNhbiBjb250cm9sIHRoZSBsaW5lIGFyZ3VtZW50IGhlcmUKKwkgICB0aGVuIGhlIGNhbiBtYWtlIHRoaXMgcm91dGluZSB3cml0ZSB0byAvZGV2L2hkYSBvciAvZGV2L3NkYQorCSAgIGFscmVhZHkuIFNvLCB0aGlzIHRlc3Qgd2FzIHdvcnRobGVzcywgYW5kIHRoZXNlIGRheXMgaXQgaXMKKwkgICBhbHNvIHdyb25nIHNpbmNlIHBlb3BsZSB1c2UgL2Rldi9wdHMveHh4LiAqLworCisJaWYgKHN0cmxlbihsaW5lKSArIHNpemVvZihfUEFUSF9ERVYpICsgMSA+IHNpemVvZihkZXZpY2UpKSB7CisJCSh2b2lkKSBzcHJpbnRmKGVycmJ1ZiwgXygiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIpKTsKKwkJcmV0dXJuIChlcnJidWYpOworCX0KKwkodm9pZCkgc3ByaW50ZihkZXZpY2UsICIlcyVzIiwgX1BBVEhfREVWLCBsaW5lKTsKKworCS8qCisJICogb3BlbiB3aWxsIGZhaWwgb24gc2xpcCBsaW5lcyBvciBleGNsdXNpdmUtdXNlIGxpbmVzCisJICogaWYgbm90IHJ1bm5pbmcgYXMgcm9vdDsgbm90IGFuIGVycm9yLgorCSAqLworCWlmICgoZmQgPSBvcGVuKGRldmljZSwgT19XUk9OTFl8T19OT05CTE9DSywgMCkpIDwgMCkgeworCQlpZiAoZXJybm8gPT0gRUJVU1kgfHwgZXJybm8gPT0gRUFDQ0VTKQorCQkJcmV0dXJuIChOVUxMKTsKKwkJaWYgKHN0cmxlbihzdHJlcnJvcihlcnJubykpID4gMTAwMCkKKwkJCXJldHVybiAoTlVMTCk7CisJCSh2b2lkKSBzcHJpbnRmKGVycmJ1ZiwgIiVzOiAlcyIsIGRldmljZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJZXJyYnVmWzEwMjRdID0gMDsKKwkJcmV0dXJuIChlcnJidWYpOworCX0KKworCWZvciAoY250ID0gbGVmdCA9IDA7IGNudCA8IGlvdmNudDsgKytjbnQpCisJCWxlZnQgKz0gaW92W2NudF0uaW92X2xlbjsKKworCWZvciAoOzspIHsKKwkJd3JldCA9IHdyaXRldihmZCwgaW92LCBpb3ZjbnQpOworCQlpZiAod3JldCA+PSBsZWZ0KQorCQkJYnJlYWs7CisJCWlmICh3cmV0ID49IDApIHsKKwkJCWxlZnQgLT0gd3JldDsKKwkJCWlmIChpb3YgIT0gbG9jYWxpb3YpIHsKKwkJCQltZW1tb3ZlKGxvY2FsaW92LCBpb3YsCisJCQkJICAgIGlvdmNudCAqIHNpemVvZihzdHJ1Y3QgaW92ZWMpKTsKKwkJCQlpb3YgPSBsb2NhbGlvdjsKKwkJCX0KKwkJCWZvciAoY250ID0gMDsgd3JldCA+PSBpb3YtPmlvdl9sZW47ICsrY250KSB7CisJCQkJd3JldCAtPSBpb3YtPmlvdl9sZW47CisJCQkJKytpb3Y7CisJCQkJLS1pb3ZjbnQ7CisJCQl9CisJCQlpZiAod3JldCkgeworCQkJCWlvdi0+aW92X2Jhc2UgKz0gd3JldDsKKwkJCQlpb3YtPmlvdl9sZW4gLT0gd3JldDsKKwkJCX0KKwkJCWNvbnRpbnVlOworCQl9CisJCWlmIChlcnJubyA9PSBFV09VTERCTE9DSykgeworCQkJaW50IGNwaWQsIGZsYWdzOworCQkJc2lnc2V0X3Qgc2lnbWFzazsKKworCQkJaWYgKGZvcmtlZCkgeworCQkJCSh2b2lkKSBjbG9zZShmZCk7CisJCQkJX2V4aXQoMSk7CisJCQl9CisJCQljcGlkID0gZm9yaygpOworCQkJaWYgKGNwaWQgPCAwKSB7CisJCQkJaWYgKHN0cmxlbihzdHJlcnJvcihlcnJubykpID4gMTAwMCkKKwkJCQkJKHZvaWQpIHNwcmludGYoZXJyYnVmLCBfKCJjYW5ub3QgZm9yayIpKTsKKwkJCQllbHNlIHsKKwkJCQkJZXJyc3YgPSBlcnJubzsKKwkJCQkJKHZvaWQpIHNwcmludGYoZXJyYnVmLAorCQkJCQkJIF8oImZvcms6ICVzIiksIHN0cmVycm9yKGVycnN2KSk7CisJCQkJfQorCQkJCSh2b2lkKSBjbG9zZShmZCk7CisJCQkJcmV0dXJuIChlcnJidWYpOworCQkJfQorCQkJaWYgKGNwaWQpIHsJLyogcGFyZW50ICovCisJCQkJKHZvaWQpIGNsb3NlKGZkKTsKKwkJCQlyZXR1cm4gKE5VTEwpOworCQkJfQorCQkJZm9ya2VkKys7CisJCQkvKiB3YWl0IGF0IG1vc3QgdG1vdXQgc2Vjb25kcyAqLworCQkJKHZvaWQpIHNpZ25hbChTSUdBTFJNLCBTSUdfREZMKTsKKwkJCSh2b2lkKSBzaWduYWwoU0lHVEVSTSwgU0lHX0RGTCk7IC8qIFhYWCAqLworCQkJc2lnZW1wdHlzZXQoJnNpZ21hc2spOworCQkJc2lncHJvY21hc2sgKFNJR19TRVRNQVNLLCAmc2lnbWFzaywgTlVMTCk7CisJCQkodm9pZCkgYWxhcm0oKHVfaW50KXRtb3V0KTsKKwkJCWZsYWdzID0gZmNudGwoZmQsIEZfR0VURkwpOworCQkJZmNudGwoZmxhZ3MsIEZfU0VURkwsIChsb25nKSAoZmxhZ3MgJiB+T19OT05CTE9DSykpOworCQkJY29udGludWU7CisJCX0KKwkJLyoKKwkJICogV2UgZ2V0IEVOT0RFViBvbiBhIHNsaXAgbGluZSBpZiB3ZSdyZSBydW5uaW5nIGFzIHJvb3QsCisJCSAqIGFuZCBFSU8gaWYgdGhlIGxpbmUganVzdCB3ZW50IGF3YXkuCisJCSAqLworCQlpZiAoZXJybm8gPT0gRU5PREVWIHx8IGVycm5vID09IEVJTykKKwkJCWJyZWFrOworCQkodm9pZCkgY2xvc2UoZmQpOworCQlpZiAoZm9ya2VkKQorCQkJX2V4aXQoMSk7CisJCWlmIChzdHJsZW4oc3RyZXJyb3IoZXJybm8pKSA+IDEwMDApCisJCQkodm9pZCkgc3ByaW50ZihlcnJidWYsIF8oIiVzOiBCQUQgRVJST1IiKSwgZGV2aWNlKTsKKwkJZWxzZSB7CisJCQllcnJzdiA9IGVycm5vOworCQkJKHZvaWQpIHNwcmludGYoZXJyYnVmLCAiJXM6ICVzIiwgZGV2aWNlLAorCQkJCSAgICAgICBzdHJlcnJvcihlcnJzdikpOworCQl9CisJCWVycmJ1ZlsxMDI0XSA9IDA7CisJCXJldHVybiAoZXJyYnVmKTsKKwl9CisKKwkodm9pZCkgY2xvc2UoZmQpOworCWlmIChmb3JrZWQpCisJCV9leGl0KDApOworCXJldHVybiAoTlVMTCk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy90dHltc2cuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3R0eW1zZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMjc5NTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy90dHltc2cuaApAQCAtMCwwICsxLDIgQEAKK2NoYXIgKnR0eW1zZyhzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGlvdmNudCwgY2hhciAqbGluZSwgaW50IHRtb3V0KTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvdmlnci44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvdmlnci44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNzJkN2EKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy92aWdyLjgKQEAgLTAsMCArMSBAQAorLnNvIG1hbjgvdmlwdy44CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy92aXB3LjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy92aXB3LjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk4ODY4MwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3ZpcHcuOApAQCAtMCwwICsxLDg2IEBACisuXCIgQ29weXJpZ2h0IChjKSAxOTgzLCAxOTkxIFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisuXCIgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy5cIgorLlwiIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLlwiIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLlwiIGFyZSBtZXQ6CisuXCIgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKy5cIiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisuXCIJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorLlwiCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorLlwiIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisuXCIgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisuXCIgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisuXCIKKy5cIiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorLlwiIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLlwiIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisuXCIgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisuXCIgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKy5cIiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworLlwiIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorLlwiIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisuXCIgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorLlwiIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKy5cIiBTVUNIIERBTUFHRS4KKy5cIgorLlwiICAgICBmcm9tOiBAKCMpdmlwdy44CTYuNyAoQmVya2VsZXkpIDMvMTYvOTEKKy5cIgorLkRkIDcgSnVseSAxOTk2CisuRHQgVklQVyA4CisuT3MgVXRpbC1MaW51eCAyLjYKKy5TaCBOQU1FCisuTm0gdmlwdywgdmlncgorLk5kIGVkaXQgdGhlIHBhc3N3b3JkIG9yIGdyb3VwIGZpbGVzCisuU2ggU1lOT1BTSVMKKy5ObSB2aXB3CisuT3AgRmwgVgorLk9wIEZsIC12ZXJzaW9uCisuTm0gdmlncgorLk9wIEZsIFYKKy5PcCBGbCAtdmVyc2lvbgorLlNoIERFU0NSSVBUSU9OCisuTm0gVmlwdworZWRpdHMgdGhlIHBhc3N3b3JkIGZpbGUgYWZ0ZXIgc2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgbG9ja3MsCithbmQgZG9lcyBhbnkgbmVjZXNzYXJ5IHByb2Nlc3NpbmcgYWZ0ZXIgdGhlIHBhc3N3b3JkIGZpbGUgaXMgdW5sb2NrZWQuCitJZiB0aGUgcGFzc3dvcmQgZmlsZSBpcyBhbHJlYWR5IGxvY2tlZCBmb3IgZWRpdGluZyBieSBhbm90aGVyIHVzZXIsCisuTm0gdmlwdword2lsbCBhc2sgeW91Cit0byB0cnkgYWdhaW4gbGF0ZXIuIFRoZSBkZWZhdWx0IGVkaXRvciBmb3IKKy5ObSB2aXB3CitpcworLlhyIHZpIDEgLgorLmJyCisuTm0gVmlncgorZWRpdHMgdGhlIGdyb3VwIGZpbGUgaW4gdGhlIHNhbWUgbWFubmVyIGFzIHZpcHcuCisuU2ggRU5WSVJPTk1FTlQKK0lmIHRoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUgZXhpc3RzIGl0IHdpbGwgYmUgdXRpbGl6ZWQgYnkKKy5ObSB2aXB3IDoKKy5CbCAtdGFnIC13aWR0aCBFRElUT1IKKy5JdCBFdiBFRElUT1IKK1RoZSBlZGl0b3Igc3BlY2lmaWVkIGJ5IHRoZSBzdHJpbmcKKy5FdiBFRElUT1IKK3dpbGwgYmUgaW52b2tlZCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGVkaXRvcgorLlhyIHZpIDEgLgorLkVsCisuU2ggU0VFIEFMU08KKy5YciBwYXNzd2QgMSAsCisuWHIgdmkgMSAsCisuWHIgcGFzc3dkIDUKKy5TaCBISVNUT1JZCitUaGUKKy5ObSB2aXB3Citjb21tYW5kIGFwcGVhcmVkIGluCisuQnggNC4wIC4KKy5icgorVGhlCisuTm0gdmlncgorY29tbWFuZCBhcHBlYXJlZCBpbiBVdGlsLUxpbnV4IDIuNi4KKy5TaCBBVkFJTEFCSUxJVFkKK1RoZSB2aWdyIGFuZCB2aXB3IGNvbW1hbmRzIGFyZSBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGFyZSBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvdmlwdy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvdmlwdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzOTcyZjMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy92aXB3LmMKQEAgLTAsMCArMSwzNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5ODcgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqIFVwZGF0ZWQgVGh1IE9jdCAxMiAwOTo1Njo1NSAxOTk1IGJ5IGZhaXRoQGNzLnVuYy5lZHUgd2l0aCBzZWN1cml0eQorICogcGF0Y2hlcyBmcm9tIFplZnJhbSA8QS5NYWluQGRjcy53YXJ3aWNrLmFjLnVrPgorICoKKyAqIFVwZGF0ZWQgVGh1IE5vdiAgOSAyMTo1ODo1MyAxOTk1IGJ5IE1hcnRpbiBTY2h1bHplIAorICogPGpvZXlAZmlubGFuZGlhLmluZm9kcm9tLm5vcnRoLmRlPi4gIFN1cHBvcnQgZm9yIHZpZ3IuCisgKgorICogTWFydGluIFNjaHVsemUncyBwYXRjaGVzIGFkYXB0ZWQgdG8gVXRpbC1MaW51eCBieSBOaWNvbGFpIExhbmdmZWxkdC4KKyAqCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqIFN1biBNYXIgMjEgMTk5OSAtIEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUBjb25lY3RpdmEuY29tLmJyPgorICogLSBmaXhlZCBzdHJlcnIoZXJybm8pIGluIGdldHRleHQgY2FsbHMKKyAqLworCitzdGF0aWMgY2hhciB2ZXJzaW9uX3N0cmluZ1tdID0gInZpcHcgMS40IjsKKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8cHdkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CisjaW5jbHVkZSA8c3lzL2ZpbGUuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8cGF0aHMuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgInNldHB3bmFtLmgiCisjaW5jbHVkZSAieHN0cm5jcHkuaCIKKyNpbmNsdWRlICJubHMuaCIKKworI2lmZGVmIEhBVkVfTElCU0VMSU5VWAorI2luY2x1ZGUgPHNlbGludXgvc2VsaW51eC5oPgorI2VuZGlmCisKKyNkZWZpbmUgRklMRU5BTUVMRU4gNjcKKworY2hhciAqcHJvZ25hbWU7CitlbnVtIHsgVklQVywgVklHUiB9OworaW50IHByb2dyYW07CitjaGFyIG9yaWdfZmlsZVtGSUxFTkFNRUxFTl07ICAgLyogb3JpZ2luYWwgZmlsZSAvZXRjL3Bhc3N3ZCBvciAvZXRjL2dyb3VwICovCitjaGFyIHRtcF9maWxlW0ZJTEVOQU1FTEVOXTsgICAgLyogdG1wIGZpbGUgKi8KK2NoYXIgdG1wdG1wX2ZpbGVbRklMRU5BTUVMRU5dOyAvKiB2ZXJ5IHRtcCBmaWxlICovCisKK3ZvaWQgcHdfZXJyb3IgX19QKChjaGFyICosIGludCwgaW50KSk7CisKK3N0YXRpYyB2b2lkCitjb3B5ZmlsZShpbnQgZnJvbSwgaW50IHRvKSB7CisJaW50IG5yLCBudywgb2ZmOworCWNoYXIgYnVmWzgqMTAyNF07CisJCisJd2hpbGUgKChuciA9IHJlYWQoZnJvbSwgYnVmLCBzaXplb2YoYnVmKSkpID4gMCkKKwkJZm9yIChvZmYgPSAwOyBvZmYgPCBucjsgbnIgLT0gbncsIG9mZiArPSBudykKKwkJCWlmICgobncgPSB3cml0ZSh0bywgYnVmICsgb2ZmLCBucikpIDwgMCkKKwkJCSAgcHdfZXJyb3IodG1wX2ZpbGUsIDEsIDEpOworCisJaWYgKG5yIDwgMCkKKwkgIHB3X2Vycm9yKG9yaWdfZmlsZSwgMSwgMSk7Cit9CisKKworc3RhdGljIHZvaWQKK3B3X2luaXQodm9pZCkgeworCXN0cnVjdCBybGltaXQgcmxpbTsKKworCS8qIFVubGltaXRlZCByZXNvdXJjZSBsaW1pdHMuICovCisJcmxpbS5ybGltX2N1ciA9IHJsaW0ucmxpbV9tYXggPSBSTElNX0lORklOSVRZOworCSh2b2lkKXNldHJsaW1pdChSTElNSVRfQ1BVLCAmcmxpbSk7CisJKHZvaWQpc2V0cmxpbWl0KFJMSU1JVF9GU0laRSwgJnJsaW0pOworCSh2b2lkKXNldHJsaW1pdChSTElNSVRfU1RBQ0ssICZybGltKTsKKwkodm9pZClzZXRybGltaXQoUkxJTUlUX0RBVEEsICZybGltKTsKKwkodm9pZClzZXRybGltaXQoUkxJTUlUX1JTUywgJnJsaW0pOworCisJLyogRG9uJ3QgZHJvcCBjb3JlIChub3QgcmVhbGx5IG5lY2Vzc2FyeSwgYnV0IEdQJ3MpLiAqLworCXJsaW0ucmxpbV9jdXIgPSBybGltLnJsaW1fbWF4ID0gMDsKKwkodm9pZClzZXRybGltaXQoUkxJTUlUX0NPUkUsICZybGltKTsKKworCS8qIFR1cm4gb2ZmIHNpZ25hbHMuICovCisJKHZvaWQpc2lnbmFsKFNJR0FMUk0sIFNJR19JR04pOworCSh2b2lkKXNpZ25hbChTSUdIVVAsIFNJR19JR04pOworCSh2b2lkKXNpZ25hbChTSUdJTlQsIFNJR19JR04pOworCSh2b2lkKXNpZ25hbChTSUdQSVBFLCBTSUdfSUdOKTsKKwkodm9pZClzaWduYWwoU0lHUVVJVCwgU0lHX0lHTik7CisJKHZvaWQpc2lnbmFsKFNJR1RFUk0sIFNJR19JR04pOworCSh2b2lkKXNpZ25hbChTSUdUU1RQLCBTSUdfSUdOKTsKKwkodm9pZClzaWduYWwoU0lHVFRPVSwgU0lHX0lHTik7CisKKwkvKiBDcmVhdGUgd2l0aCBleGFjdCBwZXJtaXNzaW9ucy4gKi8KKwkodm9pZCl1bWFzaygwKTsKK30KKworc3RhdGljIGludAorcHdfbG9jayh2b2lkKSB7CisJaW50IGxvY2tmZCwgZmQsIHJldDsKKworCS8qIAorCSAqIElmIHRoZSBwYXNzd29yZCBmaWxlIGRvZXNuJ3QgZXhpc3QsIHRoZSBzeXN0ZW0gaXMgaG9zZWQuCisJICogTWlnaHQgYXMgd2VsbCB0cnkgdG8gYnVpbGQgb25lLiAgU2V0IHRoZSBjbG9zZS1vbi1leGVjIGJpdCBzbworCSAqIHRoYXQgdXNlcnMgY2FuJ3QgZ2V0IGF0IHRoZSBlbmNyeXB0ZWQgcGFzc3dvcmRzIHdoaWxlIGVkaXRpbmcuCisJICogT3BlbiBzaG91bGQgYWxsb3cgZmxvY2snaW5nIHRoZSBmaWxlOyBzZWUgNC40QlNELglYWFgKKwkgKi8KKyNpZiAwIC8qIGZsb2NrKClpbmcgaXMgc3VwZXJmbHVvdXMgaGVyZSwgd2l0aCB0aGUgcHRtcC9wdG1wdG1wIHN5c3RlbS4gKi8KKwlpZiAoZmxvY2sobG9ja2ZkLCBMT0NLX0VYfExPQ0tfTkIpKSB7CisJCWlmIChwcm9ncmFtID09IFZJUFcpCisJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iKSwKKwkJCQlwcm9nbmFtZSk7CisJCWVsc2UKKwkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogdGhlIGdyb3VwIGZpbGUgaXMgYnVzeS5cbiIpLAorCQkJCXByb2duYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisjZW5kaWYKKworCWlmICgoZmQgPSBvcGVuKHRtcHRtcF9maWxlLCBPX1dST05MWXxPX0NSRUFULCAwNjAwKSkgPT0gLTEpIHsKKwkgICh2b2lkKWZwcmludGYoc3RkZXJyLAorCQkgICAiJXM6ICVzOiAlc1xuIiwgcHJvZ25hbWUsIHRtcHRtcF9maWxlLCBzdHJlcnJvcihlcnJubykpOworCSAgZXhpdCgxKTsKKwl9CisJcmV0ID0gbGluayh0bXB0bXBfZmlsZSwgdG1wX2ZpbGUpOworCSh2b2lkKXVubGluayh0bXB0bXBfZmlsZSk7CisJaWYgKHJldCA9PSAtMSkgeworCSAgICBpZiAoZXJybm8gPT0gRUVYSVNUKQorCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgCisJCQkgICAgICBfKCIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIpLAorCQkJICAgICAgcHJvZ25hbWUsCisJCQkgICAgICBwcm9ncmFtID09IFZJUFcgPyAicGFzc3dvcmQiIDogImdyb3VwIiwKKwkJCSAgICAgIHRtcF9maWxlKTsKKwkgICAgZWxzZSB7CisJCWludCBlcnJzdiA9IGVycm5vOworCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iKSwgcHJvZ25hbWUsCisJCQkgICAgICB0bXBfZmlsZSwgc3RyZXJyb3IoZXJyc3YpKTsKKwkgICAgfQorCSAgICBleGl0KDEpOworCX0KKworCWxvY2tmZCA9IG9wZW4ob3JpZ19maWxlLCBPX1JET05MWSwgMCk7CisKKwlpZiAobG9ja2ZkIDwgMCkgeworCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgIiVzOiAlczogJXNcbiIsCisJCSAgICBwcm9nbmFtZSwgb3JpZ19maWxlLCBzdHJlcnJvcihlcnJubykpOworCQl1bmxpbmsodG1wX2ZpbGUpOworCQlleGl0KDEpOworCX0KKworCWNvcHlmaWxlKGxvY2tmZCwgZmQpOworCSh2b2lkKWNsb3NlKGxvY2tmZCk7CisJKHZvaWQpY2xvc2UoZmQpOworCXJldHVybigxKTsKK30KKworc3RhdGljIHZvaWQKK3B3X3VubG9jayh2b2lkKSB7CisJY2hhciB0bXBbRklMRU5BTUVMRU4rNF07CisgIAorCXNwcmludGYodG1wLCAiJXMlcyIsIG9yaWdfZmlsZSwgIi5PTEQiKTsKKwl1bmxpbmsodG1wKTsKKwlsaW5rKG9yaWdfZmlsZSwgdG1wKTsKKworI2lmZGVmIEhBVkVfTElCU0VMSU5VWAorCWlmIChpc19zZWxpbnV4X2VuYWJsZWQoKSA+IDApIHsKKwkgIHNlY3VyaXR5X2NvbnRleHRfdCBwYXNzd2RfY29udGV4dD1OVUxMOworCSAgaW50IHJldD0wOworCSAgaWYgKGdldGZpbGVjb24ob3JpZ19maWxlLCZwYXNzd2RfY29udGV4dCkgPCAwKSB7CisJICAgICh2b2lkKSBmcHJpbnRmKHN0ZGVycixfKCIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIikscHJvZ25hbWUsb3JpZ19maWxlKTsKKwkgICAgcHdfZXJyb3Iob3JpZ19maWxlLCAxLCAxKTsKKwkgIH0KKwkgIHJldD1zZXRmaWxlY29uKHRtcF9maWxlLHBhc3N3ZF9jb250ZXh0KTsKKwkgIGZyZWVjb24ocGFzc3dkX2NvbnRleHQpOworCSAgaWYgKHJldCE9MCkgeworCSAgICAodm9pZCkgZnByaW50ZihzdGRlcnIsXygiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIpLHByb2duYW1lLHRtcF9maWxlKTsKKwkgICAgcHdfZXJyb3IodG1wX2ZpbGUsIDEsIDEpOworCSAgfQorCX0KKyNlbmRpZgorCisJaWYgKHJlbmFtZSh0bXBfZmlsZSwgb3JpZ19maWxlKSA9PSAtMSkgeworCQlpbnQgZXJyc3YgPSBlcnJubzsKKwkJZnByaW50ZihzdGRlcnIsIAorCQkJXygiJXM6IGNhbid0IHVubG9jayAlczogJXMgKHlvdXIgY2hhbmdlcyBhcmUgc3RpbGwgaW4gJXMpXG4iKSwgCisJCQlwcm9nbmFtZSwgb3JpZ19maWxlLCBzdHJlcnJvcihlcnJzdiksIHRtcF9maWxlKTsKKwkJZXhpdCgxKTsKKwl9CisJdW5saW5rKHRtcF9maWxlKTsKK30KKworCitzdGF0aWMgdm9pZAorcHdfZWRpdChpbnQgbm90c2V0dWlkKSB7CisJaW50IHBzdGF0OworCXBpZF90IHBpZDsKKwljaGFyICpwLCAqZWRpdG9yOworCisJaWYgKCEoZWRpdG9yID0gZ2V0ZW52KCJFRElUT1IiKSkpCisJCWVkaXRvciA9IHN0cmR1cChfUEFUSF9WSSk7IC8qIGFkaWFAZWduYXRpYS5lZS5hdXRoLmdyICovCisJaWYgKChwID0gc3RycmNocihzdHJ0b2soZWRpdG9yLCIgXHQiKSwgJy8nKSkgIT0gTlVMTCkKKwkJKytwOworCWVsc2UgCisJCXAgPSBlZGl0b3I7CisKKwlwaWQgPSBmb3JrKCk7CisJaWYgKHBpZCA8IDApIHsKKwkJKHZvaWQpZnByaW50ZihzdGRlcnIsIF8oIiVzOiBDYW5ub3QgZm9ya1xuIiksIHByb2duYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisJaWYgKCFwaWQpIHsKKwkJaWYgKG5vdHNldHVpZCkgeworCQkJKHZvaWQpc2V0Z2lkKGdldGdpZCgpKTsKKwkJCSh2b2lkKXNldHVpZChnZXR1aWQoKSk7CisJCX0KKwkJZXhlY2xwKGVkaXRvciwgcCwgdG1wX2ZpbGUsIE5VTEwpOworCQlfZXhpdCgxKTsKKwl9CisJZm9yICg7OykgeworCSAgICBwaWQgPSB3YWl0cGlkKHBpZCwgJnBzdGF0LCBXVU5UUkFDRUQpOworCSAgICBpZiAoV0lGU1RPUFBFRChwc3RhdCkpIHsKKwkJLyogdGhlIGVkaXRvciBzdXNwZW5kZWQsIHNvIHN1c3BlbmQgdXMgYXMgd2VsbCAqLworCQlraWxsKGdldHBpZCgpLCBTSUdTVE9QKTsKKwkJa2lsbChwaWQsIFNJR0NPTlQpOworCSAgICB9IGVsc2UgeworCQlicmVhazsKKwkgICAgfQorCX0KKwlpZiAocGlkID09IC0xIHx8ICFXSUZFWElURUQocHN0YXQpIHx8IFdFWElUU1RBVFVTKHBzdGF0KSAhPSAwKQorCQlwd19lcnJvcihlZGl0b3IsIDEsIDEpOworfQorCit2b2lkCitwd19lcnJvcihjaGFyICpuYW1lLCBpbnQgZXJyLCBpbnQgZXZhbCkgeworCWlmIChlcnIpIHsKKwkJaW50IHN2ZXJybm8gPSBlcnJubzsKKworCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiAiLCBwcm9nbmFtZSk7CisJCWlmIChuYW1lKQorCQkJKHZvaWQpZnByaW50ZihzdGRlcnIsICIlczogIiwgbmFtZSk7CisJCWZwcmludGYoc3RkZXJyLCAiJXNcbiIsIHN0cmVycm9yKHN2ZXJybm8pKTsKKwl9CisJZnByaW50ZihzdGRlcnIsCisJICAgIF8oIiVzOiAlcyB1bmNoYW5nZWRcbiIpLCBwcm9nbmFtZSwgb3JpZ19maWxlKTsKKwl1bmxpbmsodG1wX2ZpbGUpOworCWV4aXQoZXZhbCk7Cit9CisKK3N0YXRpYyB2b2lkCitlZGl0X2ZpbGUoaW50IGlzX3NoYWRvdykKK3sKKwlzdHJ1Y3Qgc3RhdCBiZWdpbiwgZW5kOworCisJcHdfaW5pdCgpOworCXB3X2xvY2soKTsKKworCWlmIChzdGF0KHRtcF9maWxlLCAmYmVnaW4pKQorCQlwd19lcnJvcih0bXBfZmlsZSwgMSwgMSk7CisKKwlwd19lZGl0KDApOworCisJaWYgKHN0YXQodG1wX2ZpbGUsICZlbmQpKQorCQlwd19lcnJvcih0bXBfZmlsZSwgMSwgMSk7CisJaWYgKGJlZ2luLnN0X210aW1lID09IGVuZC5zdF9tdGltZSkgeworCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgXygiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIiksIHByb2duYW1lKTsKKwkJcHdfZXJyb3IoKGNoYXIgKilOVUxMLCAwLCAwKTsKKwl9CisJLyogc2VlIHB3X2xvY2soKSB3aGVyZSB3ZSBjcmVhdGUgdGhlIGZpbGUgd2l0aCBtb2RlIDYwMCAqLworCWlmICghaXNfc2hhZG93KQorCQljaG1vZCh0bXBfZmlsZSwgMDY0NCk7CisJZWxzZQorCQljaG1vZCh0bXBfZmlsZSwgMDQwMCk7CisJcHdfdW5sb2NrKCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwltZW1zZXQodG1wX2ZpbGUsICdcMCcsIEZJTEVOQU1FTEVOKTsKKwlwcm9nbmFtZSA9IChzdHJyY2hyKGFyZ3ZbMF0sICcvJykpID8gc3RycmNocihhcmd2WzBdLCAnLycpICsgMSA6IGFyZ3ZbMF07CisJaWYgKCFzdHJjbXAocHJvZ25hbWUsICJ2aWdyIikpIHsKKwkJcHJvZ3JhbSA9IFZJR1I7CisJCXhzdHJuY3B5KG9yaWdfZmlsZSwgR1JPVVBfRklMRSwgc2l6ZW9mKG9yaWdfZmlsZSkpOworCQl4c3RybmNweSh0bXBfZmlsZSwgR1RNUF9GSUxFLCBzaXplb2YodG1wX2ZpbGUpKTsKKwkJeHN0cm5jcHkodG1wdG1wX2ZpbGUsIEdUTVBUTVBfRklMRSwgc2l6ZW9mKHRtcHRtcF9maWxlKSk7CisJfSBlbHNlIHsKKwkJcHJvZ3JhbSA9IFZJUFc7CisJCXhzdHJuY3B5KG9yaWdfZmlsZSwgUEFTU1dEX0ZJTEUsIHNpemVvZihvcmlnX2ZpbGUpKTsKKwkJeHN0cm5jcHkodG1wX2ZpbGUsIFBUTVBfRklMRSwgc2l6ZW9mKHRtcF9maWxlKSk7CisJCXhzdHJuY3B5KHRtcHRtcF9maWxlLCBQVE1QVE1QX0ZJTEUsIHNpemVvZih0bXB0bXBfZmlsZSkpOworCX0KKworCWlmICgoYXJnYyA+IDEpICYmIAorCSAgICAoIXN0cmNtcChhcmd2WzFdLCAiLVYiKSB8fCAhc3RyY21wKGFyZ3ZbMV0sICItLXZlcnNpb24iKSkpIHsKKwkJcHJpbnRmKCIlc1xuIiwgdmVyc2lvbl9zdHJpbmcpOworCQlleGl0KDApOworCX0KKworCWVkaXRfZmlsZSgwKTsKKworCWlmIChwcm9ncmFtID09IFZJR1IpIHsKKwkJc3RybmNweShvcmlnX2ZpbGUsIFNHUk9VUF9GSUxFLCBGSUxFTkFNRUxFTi0xKTsKKwkJc3RybmNweSh0bXBfZmlsZSwgU0dUTVBfRklMRSwgRklMRU5BTUVMRU4tMSk7CisJCXN0cm5jcHkodG1wdG1wX2ZpbGUsIFNHVE1QVE1QX0ZJTEUsIEZJTEVOQU1FTEVOLTEpOworCX0gZWxzZSB7CisJCXN0cm5jcHkob3JpZ19maWxlLCBTSEFET1dfRklMRSwgRklMRU5BTUVMRU4tMSk7CisJCXN0cm5jcHkodG1wX2ZpbGUsIFNQVE1QX0ZJTEUsIEZJTEVOQU1FTEVOLTEpOworCQlzdHJuY3B5KHRtcHRtcF9maWxlLCBTUFRNUFRNUF9GSUxFLCBGSUxFTkFNRUxFTi0xKTsKKwl9CisKKwlpZiAoYWNjZXNzKG9yaWdfZmlsZSwgRl9PSykgPT0gMCkgeworCQljaGFyIHJlc3BvbnNlWzgwXTsKKworCQlwcmludGYoKHByb2dyYW0gPT0gVklHUikKKwkJICAgICAgID8gXygiWW91IGFyZSB1c2luZyBzaGFkb3cgZ3JvdXBzIG9uIHRoaXMgc3lzdGVtLlxuIikKKwkJICAgICAgIDogXygiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIikpOworCQlwcmludGYoXygiV291bGQgeW91IGxpa2UgdG8gZWRpdCAlcyBub3cgW3kvbl0/ICIpLCBvcmlnX2ZpbGUpOworCisJCS8qIEVPRiBtZWFucyBubyAqLworCQlpZiAoZmdldHMocmVzcG9uc2UsIHNpemVvZihyZXNwb25zZSksIHN0ZGluKSkgeworCQkJaWYgKHJlc3BvbnNlWzBdID09ICd5JyB8fCByZXNwb25zZVswXSA9PSAnWScpCisJCQkJZWRpdF9maWxlKDEpOworCQl9CisJfQorCisJZXhpdCgwKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3dhbGwuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL2xvZ2luLXV0aWxzL3dhbGwuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzY3YzdkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvd2FsbC4xCkBAIC0wLDAgKzEsNzEgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5ODksIDE5OTAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKy5cIiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLlwiCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLlwiIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorLlwiICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKy5cIglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisuXCIJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisuXCIgNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKy5cIiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKy5cIiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy5cIgorLlwiIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisuXCIgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisuXCIgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKy5cIiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKy5cIiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorLlwiIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisuXCIgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisuXCIgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKy5cIiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisuXCIgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorLlwiIFNVQ0ggREFNQUdFLgorLlwiCisuXCIgICAgIEAoIyl3YWxsLjEJNi41IChCZXJrZWxleSkgNC8yMy85MQorLlwiCisuXCIgTW9kaWZpZWQgZm9yIExpbnV4LCBNb24gTWFyICA4IDE4OjA3OjM4IDE5OTMsIGZhaXRoQGNzLnVuYy5lZHUKKy5cIgorLkRkIE1hcmNoIDgsIDE5OTMKKy5EdCBXQUxMIDEKKy5PcyAiTGludXggMC45OSIKKy5TaCBOQU1FCisuTm0gd2FsbAorLk5kIHdyaXRlIGEgbWVzc2FnZSB0byB1c2VycworLlNoIFNZTk9QU0lTCisuTm0gd2FsbAorLk9wIEFyIGZpbGUKKy5TaCBERVNDUklQVElPTgorLk5tIFdhbGwKK2Rpc3BsYXlzIHRoZSBjb250ZW50cyBvZgorLkFyIGZpbGUKK29yLCBieSBkZWZhdWx0LCBpdHMgc3RhbmRhcmQgaW5wdXQsIG9uIHRoZSB0ZXJtaW5hbHMgb2YgYWxsCitjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJzLgorLlBwCitPbmx5IHRoZSBzdXBlci11c2VyIGNhbiB3cml0ZSBvbiB0aGUKK3Rlcm1pbmFscyBvZiB1c2VycyB3aG8gaGF2ZSBjaG9zZW4KK3RvIGRlbnkgbWVzc2FnZXMgb3IgYXJlIHVzaW5nIGEgcHJvZ3JhbSB3aGljaAorYXV0b21hdGljYWxseSBkZW5pZXMgbWVzc2FnZXMuCisuUHAKK1JlYWRpbmcgZnJvbSBhIGZpbGUgaXMgcmVmdXNlZCB3aGVuIHRoZSBpbnZva2VyIGlzIG5vdCBzdXBlcnVzZXIKK2FuZCB0aGUgcHJvZ3JhbSBpcyBzdWlkIG9yIHNnaWQuCisuU2ggU0VFIEFMU08KKy5YciBtZXNnIDEgLAorLlhyIHRhbGsgMSAsCisuWHIgd3JpdGUgMSAsCisuWHIgc2h1dGRvd24gOAorLlNoIEhJU1RPUlkKK0EKKy5ObQorY29tbWFuZCBhcHBlYXJlZCBpbgorLkF0IHY3IC4KKy5TaCBBVkFJTEFCSUxJVFkKK1RoZSB3YWxsIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvd2FsbC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbG9naW4tdXRpbHMvd2FsbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiNWY2NzEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9sb2dpbi11dGlscy93YWxsLmMKQEAgLTAsMCArMSwyNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5ODgsIDE5OTAsIDE5OTMKKyAqCVRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogTW9kaWZpZWQgU3VuIE1hciAxMiAxMDozNDozNCAxOTk1LCBmYWl0aEBjcy51bmMuZWR1LCBmb3IgTGludXgKKyAqLworCisvKgorICogVGhpcyBwcm9ncmFtIGlzIG5vdCByZWxhdGVkIHRvIERhdmlkIFdhbGwsIHdob3NlIFN0YW5mb3JkIFBoLkQuIHRoZXNpcworICogaXMgZW50aXRsZWQgIk1lY2hhbmlzbXMgZm9yIEJyb2FkY2FzdCBhbmQgU2VsZWN0aXZlIEJyb2FkY2FzdCIuCisgKgorICogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgKiAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisgKgorICovCisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8c3lzL3Vpby5oPgorCisjaW5jbHVkZSA8cGF0aHMuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHB3ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHV0bXAuaD4KKworI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgInhzdHJuY3B5LmgiCisjaW5jbHVkZSAidHR5bXNnLmgiCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAiY2FyZWZ1bHB1dGMuaCIKKwordm9pZAltYWtlbXNnIF9fUCgoY2hhciAqKSk7CisKKyNkZWZpbmUJSUdOT1JFVVNFUgkic2xlZXBlciIKKworI2lmbmRlZiBNQVhIT1NUTkFNRUxFTgorIyBpZmRlZiBIT1NUX05BTUVfTUFYCisjICBkZWZpbmUgTUFYSE9TVE5BTUVMRU4gSE9TVF9OQU1FX01BWAorIyBlbHNlCisjICBkZWZpbmUgTUFYSE9TVE5BTUVMRU4gNjQKKyMgZW5kaWYKKyNlbmRpZgorCitpbnQgbm9iYW5uZXI7CitpbnQgbWJ1ZnNpemU7CitjaGFyICptYnVmOworCitjaGFyICpwcm9nbmFtZSA9ICJ3YWxsIjsKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCWV4dGVybiBpbnQgb3B0aW5kOworCWludCBjaDsKKwlzdHJ1Y3QgaW92ZWMgaW92OworCXN0cnVjdCB1dG1wICp1dG1wcHRyOworCWNoYXIgKnA7CisJY2hhciBsaW5lW3NpemVvZih1dG1wcHRyLT51dF9saW5lKSArIDFdOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworICAgICAgICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICAgICAgICB0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisJcHJvZ25hbWUgPSBhcmd2WzBdOworCXAgPSBzdHJyY2hyKHByb2duYW1lLCAnLycpOworCWlmIChwKQorCSAgICAgcHJvZ25hbWUgPSBwKzE7CisKKwl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJuIikpICE9IC0xKQorCQlzd2l0Y2ggKGNoKSB7CisJCWNhc2UgJ24nOgorCQkJLyogdW5kb2Mgb3B0aW9uIGZvciBzaHV0ZG93bjogc3VwcHJlc3MgYmFubmVyICovCisJCQlpZiAoZ2V0ZXVpZCgpID09IDApCisJCQkJbm9iYW5uZXIgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJz8nOgorCQlkZWZhdWx0OgordXNhZ2U6CisJCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgXygidXNhZ2U6ICVzIFtmaWxlXVxuIiksIHByb2duYW1lKTsKKwkJCWV4aXQoMSk7CisJCX0KKwlhcmdjIC09IG9wdGluZDsKKwlhcmd2ICs9IG9wdGluZDsKKwlpZiAoYXJnYyA+IDEpCisJCWdvdG8gdXNhZ2U7CisKKwltYWtlbXNnKCphcmd2KTsKKworCXNldHV0ZW50KCk7CisKKwlpb3YuaW92X2Jhc2UgPSBtYnVmOworCWlvdi5pb3ZfbGVuID0gbWJ1ZnNpemU7CisJd2hpbGUoKHV0bXBwdHIgPSBnZXR1dGVudCgpKSkgeworCQlpZiAoIXV0bXBwdHItPnV0X25hbWVbMF0gfHwKKwkJICAgICFzdHJuY21wKHV0bXBwdHItPnV0X25hbWUsIElHTk9SRVVTRVIsCisJCQkgICAgIHNpemVvZih1dG1wcHRyLT51dF9uYW1lKSkpCisJCQljb250aW51ZTsKKyNpZmRlZiBVU0VSX1BST0NFU1MKKwkJaWYgKHV0bXBwdHItPnV0X3R5cGUgIT0gVVNFUl9QUk9DRVNTKQorCQkJY29udGludWU7CisjZW5kaWYKKworCQkvKiBKb2V5IEhlc3MgcmVwb3J0cyB0aGF0IHVzZS1zZXNzcmVnIGluIC9ldGMvWDExL3dkbS8KKwkJICAgcHJvZHVjZXMgdXRfbGluZSBlbnRyaWVzIGxpa2UgOjAsIGFuZCBhIHdyaXRlCisJCSAgIHRvIC9kZXYvOjAgZmFpbHMuICovCisJCWlmICh1dG1wcHRyLT51dF9saW5lWzBdID09ICc6JykKKwkJCWNvbnRpbnVlOworCisJCXhzdHJuY3B5KGxpbmUsIHV0bXBwdHItPnV0X2xpbmUsIHNpemVvZih1dG1wcHRyLT51dF9saW5lKSk7CisJCWlmICgocCA9IHR0eW1zZygmaW92LCAxLCBsaW5lLCA2MCo1KSkgIT0gTlVMTCkKKwkJCSh2b2lkKWZwcmludGYoc3RkZXJyLCAiJXM6ICVzXG4iLCBwcm9nbmFtZSwgcCk7CisJfQorCWVuZHV0ZW50KCk7CisJZXhpdCgwKTsKK30KKwordm9pZAorbWFrZW1zZyhmbmFtZSkKKwljaGFyICpmbmFtZTsKK3sKKwlyZWdpc3RlciBpbnQgY2gsIGNudDsKKwlzdHJ1Y3QgdG0gKmx0OworCXN0cnVjdCBwYXNzd2QgKnB3OworCXN0cnVjdCBzdGF0IHNidWY7CisJdGltZV90IG5vdzsKKwlGSUxFICpmcDsKKwlpbnQgZmQ7CisJY2hhciAqcCwgKndob20sICp3aGVyZSwgaG9zdG5hbWVbTUFYSE9TVE5BTUVMRU5dLAorCQlsYnVmW01BWEhPU1ROQU1FTEVOICsgMzIwXSwKKwkJdG1wbmFtZVtzaXplb2YoX1BBVEhfVE1QKSArIDIwXTsKKworCSh2b2lkKXNwcmludGYodG1wbmFtZSwgIiVzL3dhbGwuWFhYWFhYIiwgX1BBVEhfVE1QKTsKKwlpZiAoIShmZCA9IG1rc3RlbXAodG1wbmFtZSkpIHx8ICEoZnAgPSBmZG9wZW4oZmQsICJyKyIpKSkgeworCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNhbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUuXG4iKSwgcHJvZ25hbWUpOworCQlleGl0KDEpOworCX0KKwkodm9pZCl1bmxpbmsodG1wbmFtZSk7CisKKwlpZiAoIW5vYmFubmVyKSB7CisJCWlmICghKHdob20gPSBnZXRsb2dpbigpKSB8fCAhKndob20pCisJCQl3aG9tID0gKHB3ID0gZ2V0cHd1aWQoZ2V0dWlkKCkpKSA/IHB3LT5wd19uYW1lIDogIj8/PyI7CisJCWlmICghd2hvbSB8fCBzdHJsZW4od2hvbSkgPiAxMDApCisJCQl3aG9tID0gInNvbWVvbmUiOworCQl3aGVyZSA9IHR0eW5hbWUoMik7CisJCWlmICghd2hlcmUgfHwgc3RybGVuKHdoZXJlKSA+IDEwMCkKKwkJCXdoZXJlID0gInNvbWV3aGVyZSI7CisJCSh2b2lkKWdldGhvc3RuYW1lKGhvc3RuYW1lLCBzaXplb2YoaG9zdG5hbWUpKTsKKwkJKHZvaWQpdGltZSgmbm93KTsKKwkJbHQgPSBsb2NhbHRpbWUoJm5vdyk7CisKKwkJLyoKKwkJICogYWxsIHRoaXMgc3R1ZmYgaXMgdG8gYmxhbmsgb3V0IGEgc3F1YXJlIGZvciB0aGUgbWVzc2FnZTsKKwkJICogd2Ugd3JhcCBtZXNzYWdlIGxpbmVzIGF0IGNvbHVtbiA3OSwgbm90IDgwLCBiZWNhdXNlIHNvbWUKKwkJICogdGVybWluYWxzIHdyYXAgYWZ0ZXIgNzksIHNvbWUgZG8gbm90LCBhbmQgd2UgY2FuJ3QgdGVsbC4KKwkJICogV2hpY2ggbWVhbnMgdGhhdCB3ZSBtYXkgbGVhdmUgYSBub24tYmxhbmsgY2hhcmFjdGVyCisJCSAqIGluIGNvbHVtbiA4MCwgYnV0IHRoYXQgY2FuJ3QgYmUgaGVscGVkLgorCQkgKi8KKwkJLyogc25wcmludGYgaXMgbm90IGFsd2F5cyBhdmFpbGFibGUsIGJ1dCB0aGUgc3ByaW50ZidzIGhlcmUKKwkJICAgd2lsbCBub3Qgb3ZlcmZsb3cgYXMgbG9uZyBhcyAlZCB0YWtlcyBhdCBtb3N0IDEwMCBjaGFycyAqLworCQkodm9pZClmcHJpbnRmKGZwLCAiXHIlNzlzXHJcbiIsICIgIik7CisJCSh2b2lkKXNwcmludGYobGJ1ZiwgXygiQnJvYWRjYXN0IE1lc3NhZ2UgZnJvbSAlc0AlcyIpLAorCQkJICAgICAgd2hvbSwgaG9zdG5hbWUpOworCQkodm9pZClmcHJpbnRmKGZwLCAiJS03OS43OXNcMDA3XDAwN1xyXG4iLCBsYnVmKTsKKwkJKHZvaWQpc3ByaW50ZihsYnVmLCAiICAgICAgICAoJXMpIGF0ICVkOiUwMmQgLi4uIiwKKwkJCSAgICAgIHdoZXJlLCBsdC0+dG1faG91ciwgbHQtPnRtX21pbik7CisJCSh2b2lkKWZwcmludGYoZnAsICIlLTc5Ljc5c1xyXG4iLCBsYnVmKTsKKwl9CisJKHZvaWQpZnByaW50ZihmcCwgIiU3OXNcclxuIiwgIiAiKTsKKworCWlmIChmbmFtZSkgeworCQkvKgorCQkgKiBXaGVuIHdlIGFyZSBub3Qgcm9vdCwgYnV0IHN1aWQgb3Igc2dpZCwgcmVmdXNlIHRvIHJlYWQgZmlsZXMKKwkJICogKGUuZy4gZGV2aWNlIGZpbGVzKSB0aGF0IHRoZSB1c2VyIG1heSBub3QgaGF2ZSBhY2Nlc3MgdG8uCisJCSAqIEFmdGVyIGFsbCwgb3VyIGludm9rZXIgY2FuIGVhc2lseSBkbyAid2FsbCA8IGZpbGUiCisJCSAqIGluc3RlYWQgb2YgIndhbGwgZmlsZSIuCisJCSAqLworCQlpbnQgdWlkID0gZ2V0dWlkKCk7CisJCWlmICh1aWQgJiYgKHVpZCAhPSBnZXRldWlkKCkgfHwgZ2V0Z2lkKCkgIT0gZ2V0ZWdpZCgpKSkgeworCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiB3aWxsIG5vdCByZWFkICVzIC0gdXNlIHN0ZGluLlxuIiksCisJCQkJcHJvZ25hbWUsIGZuYW1lKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJaWYgKCFmcmVvcGVuKGZuYW1lLCAiciIsIHN0ZGluKSkgeworCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjYW4ndCByZWFkICVzLlxuIiksCisJCQkJcHJvZ25hbWUsIGZuYW1lKTsKKwkJCWV4aXQoMSk7CisJCX0KKwl9CisKKwl3aGlsZSAoZmdldHMobGJ1Ziwgc2l6ZW9mKGxidWYpLCBzdGRpbikpIHsKKwkJZm9yIChjbnQgPSAwLCBwID0gbGJ1ZjsgKGNoID0gKnApICE9ICdcMCc7ICsrcCwgKytjbnQpIHsKKwkJCWlmIChjbnQgPT0gNzkgfHwgY2ggPT0gJ1xuJykgeworCQkJCWZvciAoOyBjbnQgPCA3OTsgKytjbnQpCisJCQkJCXB1dGMoJyAnLCBmcCk7CisJCQkJcHV0YygnXHInLCBmcCk7CisJCQkJcHV0YygnXG4nLCBmcCk7CisJCQkJY250ID0gMDsKKwkJCX0KKwkJCWlmIChjaCAhPSAnXG4nKQorCQkJCWNhcmVmdWxwdXRjKGNoLCBmcCk7CisJCX0KKwl9CisJZnByaW50ZihmcCwgIiU3OXNcclxuIiwgIiAiKTsKKwlyZXdpbmQoZnApOworCisJaWYgKGZzdGF0KGZkLCAmc2J1ZikpIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIiksCisJCQlwcm9nbmFtZSk7CisJCWV4aXQoMSk7CisJfQorCW1idWZzaXplID0gc2J1Zi5zdF9zaXplOworCWlmICghKG1idWYgPSBtYWxsb2MoKHVfaW50KW1idWZzaXplKSkpIHsKKwkJKHZvaWQpZnByaW50ZihzdGRlcnIsIF8oIiVzOiBPdXQgb2YgbWVtb3J5IVxuIiksIHByb2duYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisJaWYgKGZyZWFkKG1idWYsIHNpemVvZigqbWJ1ZiksIG1idWZzaXplLCBmcCkgIT0gbWJ1ZnNpemUpIHsKKwkJKHZvaWQpZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjYW4ndCByZWFkIHRlbXBvcmFyeSBmaWxlLlxuIiksIHByb2duYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisJKHZvaWQpY2xvc2UoZmQpOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvZ2V0dGV4dC5tNCBiL3V0aWwtbGludXgtbmctMi4xNy4yL200L2dldHRleHQubTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM3NGYwMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL200L2dldHRleHQubTQKQEAgLTAsMCArMSw0ODcgQEAKKyMgZ2V0dGV4dC5tNCBzZXJpYWwgMjggKGdldHRleHQtMC4xMykKK2RubCBDb3B5cmlnaHQgKEMpIDE5OTUtMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK2RubCBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKK2RubCBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwKK2RubCBQdWJsaWMgTGljZW5zZSwgdGhpcyBmaWxlIG1heSBiZSBkaXN0cmlidXRlZCBhcyBwYXJ0IG9mIGEgcHJvZ3JhbQorZG5sIHRoYXQgY29udGFpbnMgYSBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHVuZGVyCitkbmwgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIGFzIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KK2RubAorZG5sIFRoaXMgZmlsZSBjYW4gY2FuIGJlIHVzZWQgaW4gcHJvamVjdHMgd2hpY2ggYXJlIG5vdCBhdmFpbGFibGUgdW5kZXIKK2RubCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ugb3IgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCitkbmwgTGljZW5zZSBidXQgd2hpY2ggc3RpbGwgd2FudCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoZSBHTlUgZ2V0dGV4dAorZG5sIGZ1bmN0aW9uYWxpdHkuCitkbmwgUGxlYXNlIG5vdGUgdGhhdCB0aGUgYWN0dWFsIGNvZGUgb2YgdGhlIEdOVSBnZXR0ZXh0IGxpYnJhcnkgaXMgY292ZXJlZAorZG5sIGJ5IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhbmQgdGhlIHJlc3Qgb2YgdGhlIEdOVQorZG5sIGdldHRleHQgcGFja2FnZSBwYWNrYWdlIGlzIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorZG5sIFRoZXkgYXJlICpub3QqIGluIHRoZSBwdWJsaWMgZG9tYWluLgorCitkbmwgQXV0aG9yczoKK2RubCAgIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+LCAxOTk1LTIwMDAuCitkbmwgICBCcnVubyBIYWlibGUgPGhhaWJsZUBjbGlzcC5jb25zLm9yZz4sIDIwMDAtMjAwMy4KKworZG5sIE1hY3JvIHRvIGFkZCBmb3IgdXNpbmcgR05VIGdldHRleHQuCisKK2RubCBVc2FnZTogQU1fR05VX0dFVFRFWFQoW0lOVExTWU1CT0xdLCBbTkVFRFNZTUJPTF0sIFtJTlRMRElSXSkuCitkbmwgSU5UTFNZTUJPTCBjYW4gYmUgb25lIG9mICdleHRlcm5hbCcsICduby1saWJ0b29sJywgJ3VzZS1saWJ0b29sJy4gVGhlCitkbmwgICAgZGVmYXVsdCAoaWYgaXQgaXMgbm90IHNwZWNpZmllZCBvciBlbXB0eSkgaXMgJ25vLWxpYnRvb2wnLgorZG5sICAgIElOVExTWU1CT0wgc2hvdWxkIGJlICdleHRlcm5hbCcgZm9yIHBhY2thZ2VzIHdpdGggbm8gaW50bCBkaXJlY3RvcnksCitkbmwgICAgYW5kICduby1saWJ0b29sJyBvciAndXNlLWxpYnRvb2wnIGZvciBwYWNrYWdlcyB3aXRoIGFuIGludGwgZGlyZWN0b3J5LgorZG5sICAgIElmIElOVExTWU1CT0wgaXMgJ3VzZS1saWJ0b29sJywgdGhlbiBhIGxpYnRvb2wgbGlicmFyeQorZG5sICAgICQodG9wX2J1aWxkZGlyKS9pbnRsL2xpYmludGwubGEgd2lsbCBiZSBjcmVhdGVkIChzaGFyZWQgYW5kL29yIHN0YXRpYywKK2RubCAgICBkZXBlbmRpbmcgb24gLS17ZW5hYmxlLGRpc2FibGV9LXtzaGFyZWQsc3RhdGljfSBhbmQgb24gdGhlIHByZXNlbmNlIG9mCitkbmwgICAgQU0tRElTQUJMRS1TSEFSRUQpLiBJZiBJTlRMU1lNQk9MIGlzICduby1saWJ0b29sJywgYSBzdGF0aWMgbGlicmFyeQorZG5sICAgICQodG9wX2J1aWxkZGlyKS9pbnRsL2xpYmludGwuYSB3aWxsIGJlIGNyZWF0ZWQuCitkbmwgSWYgTkVFRFNZTUJPTCBpcyBzcGVjaWZpZWQgYW5kIGlzICduZWVkLW5nZXR0ZXh0JywgdGhlbiBHTlUgZ2V0dGV4dAorZG5sICAgIGltcGxlbWVudGF0aW9ucyAoaW4gbGliYyBvciBsaWJpbnRsKSB3aXRob3V0IHRoZSBuZ2V0dGV4dCgpIGZ1bmN0aW9uCitkbmwgICAgd2lsbCBiZSBpZ25vcmVkLiAgSWYgTkVFRFNZTUJPTCBpcyBzcGVjaWZpZWQgYW5kIGlzCitkbmwgICAgJ25lZWQtZm9ybWF0c3RyaW5nLW1hY3JvcycsIHRoZW4gR05VIGdldHRleHQgaW1wbGVtZW50YXRpb25zIHRoYXQgZG9uJ3QKK2RubCAgICBzdXBwb3J0IHRoZSBJU08gQyA5OSA8aW50dHlwZXMuaD4gZm9ybWF0c3RyaW5nIG1hY3JvcyB3aWxsIGJlIGlnbm9yZWQuCitkbmwgSU5UTERJUiBpcyB1c2VkIHRvIGZpbmQgdGhlIGludGwgbGlicmFyaWVzLiAgSWYgZW1wdHksCitkbmwgICAgdGhlIHZhbHVlIGAkKHRvcF9idWlsZGRpcikvaW50bC8nIGlzIHVzZWQuCitkbmwKK2RubCBUaGUgcmVzdWx0IG9mIHRoZSBjb25maWd1cmF0aW9uIGlzIG9uZSBvZiB0aHJlZSBjYXNlczoKK2RubCAxKSBHTlUgZ2V0dGV4dCwgYXMgaW5jbHVkZWQgaW4gdGhlIGludGwgc3ViZGlyZWN0b3J5LCB3aWxsIGJlIGNvbXBpbGVkCitkbmwgICAgYW5kIHVzZWQuCitkbmwgICAgQ2F0YWxvZyBmb3JtYXQ6IEdOVSAtLT4gaW5zdGFsbCBpbiAkKGRhdGFkaXIpCitkbmwgICAgQ2F0YWxvZyBleHRlbnNpb246IC5tbyBhZnRlciBpbnN0YWxsYXRpb24sIC5nbW8gaW4gc291cmNlIHRyZWUKK2RubCAyKSBHTlUgZ2V0dGV4dCBoYXMgYmVlbiBmb3VuZCBpbiB0aGUgc3lzdGVtJ3MgQyBsaWJyYXJ5LgorZG5sICAgIENhdGFsb2cgZm9ybWF0OiBHTlUgLS0+IGluc3RhbGwgaW4gJChkYXRhZGlyKQorZG5sICAgIENhdGFsb2cgZXh0ZW5zaW9uOiAubW8gYWZ0ZXIgaW5zdGFsbGF0aW9uLCAuZ21vIGluIHNvdXJjZSB0cmVlCitkbmwgMykgTm8gaW50ZXJuYXRpb25hbGl6YXRpb24sIGFsd2F5cyB1c2UgRW5nbGlzaCBtc2dpZC4KK2RubCAgICBDYXRhbG9nIGZvcm1hdDogbm9uZQorZG5sICAgIENhdGFsb2cgZXh0ZW5zaW9uOiBub25lCitkbmwgSWYgSU5UTFNZTUJPTCBpcyAnZXh0ZXJuYWwnLCBvbmx5IGNhc2VzIDIgYW5kIDMgY2FuIG9jY3VyLgorZG5sIFRoZSB1c2Ugb2YgLmdtbyBpcyBoaXN0b3JpY2FsIChpdCB3YXMgbmVlZGVkIHRvIGF2b2lkIG92ZXJ3cml0aW5nIHRoZQorZG5sIEdOVSBmb3JtYXQgY2F0YWxvZ3Mgd2hlbiBidWlsZGluZyBvbiBhIHBsYXRmb3JtIHdpdGggYW4gWC9PcGVuIGdldHRleHQpLAorZG5sIGJ1dCB3ZSBrZWVwIGl0IGluIG9yZGVyIG5vdCB0byBmb3JjZSBpcnJlbGV2YW50IGZpbGVuYW1lIGNoYW5nZXMgb24gdGhlCitkbmwgbWFpbnRhaW5lcnMuCitkbmwKK0FDX0RFRlVOKFtBTV9HTlVfR0VUVEVYVF0sCitbCisgIGRubCBBcmd1bWVudCBjaGVja2luZy4KKyAgaWZlbHNlKFskMV0sIFtdLCAsIFtpZmVsc2UoWyQxXSwgW2V4dGVybmFsXSwgLCBbaWZlbHNlKFskMV0sIFtuby1saWJ0b29sXSwgLCBbaWZlbHNlKFskMV0sIFt1c2UtbGlidG9vbF0sICwKKyAgICBbZXJycHJpbnQoW0VSUk9SOiBpbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIEFNX0dOVV9HRVRURVhUCitdKV0pXSldKV0pCisgIGlmZWxzZShbJDJdLCBbXSwgLCBbaWZlbHNlKFskMl0sIFtuZWVkLW5nZXR0ZXh0XSwgLCBbaWZlbHNlKFskMl0sIFtuZWVkLWZvcm1hdHN0cmluZy1tYWNyb3NdLCAsCisgICAgW2VycnByaW50KFtFUlJPUjogaW52YWxpZCBzZWNvbmQgYXJndW1lbnQgdG8gQU1fR05VX0dFVFRFWFQKK10pXSldKV0pCisgIGRlZmluZShndF9pbmNsdWRlZF9pbnRsLCBpZmVsc2UoWyQxXSwgW2V4dGVybmFsXSwgW25vXSwgW3llc10pKQorICBkZWZpbmUoZ3RfbGlidG9vbF9zdWZmaXhfcHJlZml4LCBpZmVsc2UoWyQxXSwgW3VzZS1saWJ0b29sXSwgW2xdLCBbXSkpCisKKyAgQUNfUkVRVUlSRShbQU1fUE9fU1VCRElSU10pZG5sCisgIGlmZWxzZShndF9pbmNsdWRlZF9pbnRsLCB5ZXMsIFsKKyAgICBBQ19SRVFVSVJFKFtBTV9JTlRMX1NVQkRJUl0pZG5sCisgIF0pCisKKyAgZG5sIFByZXJlcXVpc2l0ZXMgb2YgQUNfTElCX0xJTktGTEFHU19CT0RZLgorICBBQ19SRVFVSVJFKFtBQ19MSUJfUFJFUEFSRV9QUkVGSVhdKQorICBBQ19SRVFVSVJFKFtBQ19MSUJfUlBBVEhdKQorCisgIGRubCBTb21ldGltZXMgbGliaW50bCByZXF1aXJlcyBsaWJpY29udiwgc28gZmlyc3Qgc2VhcmNoIGZvciBsaWJpY29udi4KKyAgZG5sIElkZWFsbHkgd2Ugd291bGQgZG8gdGhpcyBzZWFyY2ggb25seSBhZnRlciB0aGUKKyAgZG5sICAgICAgaWYgdGVzdCAiJFVTRV9OTFMiID0gInllcyI7IHRoZW4KKyAgZG5sICAgICAgICBpZiB0ZXN0ICIkZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmMiICE9ICJ5ZXMiOyB0aGVuCisgIGRubCB0ZXN0cy4gQnV0IGlmIGNvbmZpZ3VyZS5pbiBpbnZva2VzIEFNX0lDT05WIGFmdGVyIEFNX0dOVV9HRVRURVhUCisgIGRubCB0aGUgY29uZmlndXJlIHNjcmlwdCB3b3VsZCBuZWVkIHRvIGNvbnRhaW4gdGhlIHNhbWUgc2hlbGwgY29kZQorICBkbmwgYWdhaW4sIG91dHNpZGUgYW55ICdpZicuIFRoZXJlIGFyZSB0d28gc29sdXRpb25zOgorICBkbmwgLSBJbnZva2UgQU1fSUNPTlZfTElOS0ZMQUdTX0JPRFkgaGVyZSwgb3V0c2lkZSBhbnkgJ2lmJy4KKyAgZG5sIC0gQ29udHJvbCB0aGUgZXhwYW5zaW9ucyBpbiBtb3JlIGRldGFpbCB1c2luZyBBQ19QUk9WSURFX0lGRUxTRS4KKyAgZG5sIFNpbmNlIEFDX1BST1ZJREVfSUZFTFNFIGlzIG9ubHkgaW4gYXV0b2NvbmYgPj0gMi41MiBhbmQgbm90CisgIGRubCBkb2N1bWVudGVkLCB3ZSBhdm9pZCBpdC4KKyAgaWZlbHNlKGd0X2luY2x1ZGVkX2ludGwsIHllcywgLCBbCisgICAgQUNfUkVRVUlSRShbQU1fSUNPTlZfTElOS0ZMQUdTX0JPRFldKQorICBdKQorCisgIGRubCBTZXQgVVNFX05MUy4KKyAgQU1fTkxTCisKKyAgaWZlbHNlKGd0X2luY2x1ZGVkX2ludGwsIHllcywgWworICAgIEJVSUxEX0lOQ0xVREVEX0xJQklOVEw9bm8KKyAgICBVU0VfSU5DTFVERURfTElCSU5UTD1ubworICBdKQorICBMSUJJTlRMPQorICBMVExJQklOVEw9CisgIFBPU1VCPQorCisgIGRubCBJZiB3ZSB1c2UgTkxTIGZpZ3VyZSBvdXQgd2hhdCBtZXRob2QKKyAgaWYgdGVzdCAiJFVTRV9OTFMiID0gInllcyI7IHRoZW4KKyAgICBndF91c2VfcHJlaW5zdGFsbGVkX2dudWdldHRleHQ9bm8KKyAgICBpZmVsc2UoZ3RfaW5jbHVkZWRfaW50bCwgeWVzLCBbCisgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgaW5jbHVkZWQgZ2V0dGV4dCBpcyByZXF1ZXN0ZWRdKQorICAgICAgQUNfQVJHX1dJVEgoaW5jbHVkZWQtZ2V0dGV4dCwKKyAgICAgICAgWyAgLS13aXRoLWluY2x1ZGVkLWdldHRleHQgdXNlIHRoZSBHTlUgZ2V0dGV4dCBsaWJyYXJ5IGluY2x1ZGVkIGhlcmVdLAorICAgICAgICBubHNfY3ZfZm9yY2VfdXNlX2dudV9nZXR0ZXh0PSR3aXRodmFsLAorICAgICAgICBubHNfY3ZfZm9yY2VfdXNlX2dudV9nZXR0ZXh0PW5vKQorICAgICAgQUNfTVNHX1JFU1VMVCgkbmxzX2N2X2ZvcmNlX3VzZV9nbnVfZ2V0dGV4dCkKKworICAgICAgbmxzX2N2X3VzZV9nbnVfZ2V0dGV4dD0iJG5sc19jdl9mb3JjZV91c2VfZ251X2dldHRleHQiCisgICAgICBpZiB0ZXN0ICIkbmxzX2N2X2ZvcmNlX3VzZV9nbnVfZ2V0dGV4dCIgIT0gInllcyI7IHRoZW4KKyAgICBdKQorICAgICAgICBkbmwgVXNlciBkb2VzIG5vdCBpbnNpc3Qgb24gdXNpbmcgR05VIE5MUyBsaWJyYXJ5LiAgRmlndXJlIG91dCB3aGF0CisgICAgICAgIGRubCB0byB1c2UuICBJZiBHTlUgZ2V0dGV4dCBpcyBhdmFpbGFibGUgd2UgdXNlIHRoaXMuICBFbHNlIHdlIGhhdmUKKyAgICAgICAgZG5sIHRvIGZhbGwgYmFjayB0byBHTlUgTkxTIGxpYnJhcnkuCisKKyAgICAgICAgZG5sIEFkZCBhIHZlcnNpb24gbnVtYmVyIHRvIHRoZSBjYWNoZSBtYWNyb3MuCisgICAgICAgIGRlZmluZShbZ3RfYXBpX3ZlcnNpb25dLCBpZmVsc2UoWyQyXSwgW25lZWQtZm9ybWF0c3RyaW5nLW1hY3Jvc10sIDMsIGlmZWxzZShbJDJdLCBbbmVlZC1uZ2V0dGV4dF0sIDIsIDEpKSkKKyAgICAgICAgZGVmaW5lKFtndF9jdl9mdW5jX2dudWdldHRleHRfbGliY10sIFtndF9jdl9mdW5jX2dudWdldHRleHRdZ3RfYXBpX3ZlcnNpb25bX2xpYmNdKQorICAgICAgICBkZWZpbmUoW2d0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJpbnRsXSwgW2d0X2N2X2Z1bmNfZ251Z2V0dGV4dF1ndF9hcGlfdmVyc2lvbltfbGliaW50bF0pCisKKyAgICAgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBHTlUgZ2V0dGV4dCBpbiBsaWJjXSwgZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmMsCisgICAgICAgICBbQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxsaWJpbnRsLmg+CitdaWZlbHNlKFskMl0sIFtuZWVkLWZvcm1hdHN0cmluZy1tYWNyb3NdLAorWyNpZm5kZWYgX19HTlVfR0VUVEVYVF9TVVBQT1JURURfUkVWSVNJT04KKyNkZWZpbmUgX19HTlVfR0VUVEVYVF9TVVBQT1JURURfUkVWSVNJT04obWFqb3IpICgobWFqb3IpID09IDAgPyAwIDogLTEpCisjZW5kaWYKK2NoYW5nZXF1b3RlKCwpZG5sCit0eXBlZGVmIGludCBhcnJheSBbMiAqIChfX0dOVV9HRVRURVhUX1NVUFBPUlRFRF9SRVZJU0lPTigwKSA+PSAxKSAtIDFdOworY2hhbmdlcXVvdGUoWyxdKWRubAorXSwgW10pW2V4dGVybiBpbnQgX25sX21zZ19jYXRfY250cjsKK2V4dGVybiBpbnQgKl9ubF9kb21haW5fYmluZGluZ3M7XSwKKyAgICAgICAgICAgIFtiaW5kdGV4dGRvbWFpbiAoIiIsICIiKTsKK3JldHVybiAoaW50KSBnZXR0ZXh0ICgiIildaWZlbHNlKFskMl0sIFtuZWVkLW5nZXR0ZXh0XSwgWyArIChpbnQpIG5nZXR0ZXh0ICgiIiwgIiIsIDApXSwgW10pWyArIF9ubF9tc2dfY2F0X2NudHIgKyAqX25sX2RvbWFpbl9iaW5kaW5nc10sCisgICAgICAgICAgICBndF9jdl9mdW5jX2dudWdldHRleHRfbGliYz15ZXMsCisgICAgICAgICAgICBndF9jdl9mdW5jX2dudWdldHRleHRfbGliYz1ubyldKQorCisgICAgICAgIGlmIHRlc3QgIiRndF9jdl9mdW5jX2dudWdldHRleHRfbGliYyIgIT0gInllcyI7IHRoZW4KKyAgICAgICAgICBkbmwgU29tZXRpbWVzIGxpYmludGwgcmVxdWlyZXMgbGliaWNvbnYsIHNvIGZpcnN0IHNlYXJjaCBmb3IgbGliaWNvbnYuCisgICAgICAgICAgaWZlbHNlKGd0X2luY2x1ZGVkX2ludGwsIHllcywgLCBbCisgICAgICAgICAgICBBTV9JQ09OVl9MSU5LCisgICAgICAgICAgXSkKKyAgICAgICAgICBkbmwgU2VhcmNoIGZvciBsaWJpbnRsIGFuZCBkZWZpbmUgTElCSU5UTCwgTFRMSUJJTlRMIGFuZCBJTkNJTlRMCisgICAgICAgICAgZG5sIGFjY29yZGluZ2x5LiBEb24ndCB1c2UgQUNfTElCX0xJTktGTEFHU19CT0RZKFtpbnRsXSxbaWNvbnZdKQorICAgICAgICAgIGRubCBiZWNhdXNlIHRoYXQgd291bGQgYWRkICItbGljb252IiB0byBMSUJJTlRMIGFuZCBMVExJQklOVEwKKyAgICAgICAgICBkbmwgZXZlbiBpZiBsaWJpY29udiBkb2Vzbid0IGV4aXN0LgorICAgICAgICAgIEFDX0xJQl9MSU5LRkxBR1NfQk9EWShbaW50bF0pCisgICAgICAgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBHTlUgZ2V0dGV4dCBpbiBsaWJpbnRsXSwKKyAgICAgICAgICAgIGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJpbnRsLAorICAgICAgICAgICBbZ3Rfc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorICAgICAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAkSU5DSU5UTCIKKyAgICAgICAgICAgIGd0X3NhdmVfTElCUz0iJExJQlMiCisgICAgICAgICAgICBMSUJTPSIkTElCUyAkTElCSU5UTCIKKyAgICAgICAgICAgIGRubCBOb3cgc2VlIHdoZXRoZXIgbGliaW50bCBleGlzdHMgYW5kIGRvZXMgbm90IGRlcGVuZCBvbiBsaWJpY29udi4KKyAgICAgICAgICAgIEFDX1RSWV9MSU5LKFsjaW5jbHVkZSA8bGliaW50bC5oPgorXWlmZWxzZShbJDJdLCBbbmVlZC1mb3JtYXRzdHJpbmctbWFjcm9zXSwKK1sjaWZuZGVmIF9fR05VX0dFVFRFWFRfU1VQUE9SVEVEX1JFVklTSU9OCisjZGVmaW5lIF9fR05VX0dFVFRFWFRfU1VQUE9SVEVEX1JFVklTSU9OKG1ham9yKSAoKG1ham9yKSA9PSAwID8gMCA6IC0xKQorI2VuZGlmCitjaGFuZ2VxdW90ZSgsKWRubAordHlwZWRlZiBpbnQgYXJyYXkgWzIgKiAoX19HTlVfR0VUVEVYVF9TVVBQT1JURURfUkVWSVNJT04oMCkgPj0gMSkgLSAxXTsKK2NoYW5nZXF1b3RlKFssXSlkbmwKK10sIFtdKVtleHRlcm4gaW50IF9ubF9tc2dfY2F0X2NudHI7CitleHRlcm4KKyNpZmRlZiBfX2NwbHVzcGx1cworIkMiCisjZW5kaWYKK2NvbnN0IGNoYXIgKl9ubF9leHBhbmRfYWxpYXMgKCk7XSwKKyAgICAgICAgICAgICAgW2JpbmR0ZXh0ZG9tYWluICgiIiwgIiIpOworcmV0dXJuIChpbnQpIGdldHRleHQgKCIiKV1pZmVsc2UoWyQyXSwgW25lZWQtbmdldHRleHRdLCBbICsgKGludCkgbmdldHRleHQgKCIiLCAiIiwgMCldLCBbXSlbICsgX25sX21zZ19jYXRfY250ciArICpfbmxfZXhwYW5kX2FsaWFzICgwKV0sCisgICAgICAgICAgICAgIGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJpbnRsPXllcywKKyAgICAgICAgICAgICAgZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmludGw9bm8pCisgICAgICAgICAgICBkbmwgTm93IHNlZSB3aGV0aGVyIGxpYmludGwgZXhpc3RzIGFuZCBkZXBlbmRzIG9uIGxpYmljb252LgorICAgICAgICAgICAgaWYgdGVzdCAiJGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJpbnRsIiAhPSB5ZXMgJiYgdGVzdCAtbiAiJExJQklDT05WIjsgdGhlbgorICAgICAgICAgICAgICBMSUJTPSIkTElCUyAkTElCSUNPTlYiCisgICAgICAgICAgICAgIEFDX1RSWV9MSU5LKFsjaW5jbHVkZSA8bGliaW50bC5oPgorXWlmZWxzZShbJDJdLCBbbmVlZC1mb3JtYXRzdHJpbmctbWFjcm9zXSwKK1sjaWZuZGVmIF9fR05VX0dFVFRFWFRfU1VQUE9SVEVEX1JFVklTSU9OCisjZGVmaW5lIF9fR05VX0dFVFRFWFRfU1VQUE9SVEVEX1JFVklTSU9OKG1ham9yKSAoKG1ham9yKSA9PSAwID8gMCA6IC0xKQorI2VuZGlmCitjaGFuZ2VxdW90ZSgsKWRubAordHlwZWRlZiBpbnQgYXJyYXkgWzIgKiAoX19HTlVfR0VUVEVYVF9TVVBQT1JURURfUkVWSVNJT04oMCkgPj0gMSkgLSAxXTsKK2NoYW5nZXF1b3RlKFssXSlkbmwKK10sIFtdKVtleHRlcm4gaW50IF9ubF9tc2dfY2F0X2NudHI7CitleHRlcm4KKyNpZmRlZiBfX2NwbHVzcGx1cworIkMiCisjZW5kaWYKK2NvbnN0IGNoYXIgKl9ubF9leHBhbmRfYWxpYXMgKCk7XSwKKyAgICAgICAgICAgICAgICBbYmluZHRleHRkb21haW4gKCIiLCAiIik7CityZXR1cm4gKGludCkgZ2V0dGV4dCAoIiIpXWlmZWxzZShbJDJdLCBbbmVlZC1uZ2V0dGV4dF0sIFsgKyAoaW50KSBuZ2V0dGV4dCAoIiIsICIiLCAwKV0sIFtdKVsgKyBfbmxfbXNnX2NhdF9jbnRyICsgKl9ubF9leHBhbmRfYWxpYXMgKDApXSwKKyAgICAgICAgICAgICAgIFtMSUJJTlRMPSIkTElCSU5UTCAkTElCSUNPTlYiCisgICAgICAgICAgICAgICAgTFRMSUJJTlRMPSIkTFRMSUJJTlRMICRMVExJQklDT05WIgorICAgICAgICAgICAgICAgIGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJpbnRsPXllcworICAgICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgICBDUFBGTEFHUz0iJGd0X3NhdmVfQ1BQRkxBR1MiCisgICAgICAgICAgICBMSUJTPSIkZ3Rfc2F2ZV9MSUJTIl0pCisgICAgICAgIGZpCisKKyAgICAgICAgZG5sIElmIGFuIGFscmVhZHkgcHJlc2VudCBvciBwcmVpbnN0YWxsZWQgR05VIGdldHRleHQoKSBpcyBmb3VuZCwKKyAgICAgICAgZG5sIHVzZSBpdC4gIEJ1dCBpZiB0aGlzIG1hY3JvIGlzIHVzZWQgaW4gR05VIGdldHRleHQsIGFuZCBHTlUKKyAgICAgICAgZG5sIGdldHRleHQgaXMgYWxyZWFkeSBwcmVpbnN0YWxsZWQgaW4gbGliaW50bCwgd2UgdXBkYXRlIHRoaXMKKyAgICAgICAgZG5sIGxpYmludGwuICAoQ2YuIHRoZSBpbnN0YWxsIHJ1bGUgaW4gaW50bC9NYWtlZmlsZS5pbi4pCisgICAgICAgIGlmIHRlc3QgIiRndF9jdl9mdW5jX2dudWdldHRleHRfbGliYyIgPSAieWVzIiBcCisgICAgICAgICAgIHx8IHsgdGVzdCAiJGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJpbnRsIiA9ICJ5ZXMiIFwKKyAgICAgICAgICAgICAgICAmJiB0ZXN0ICIkUEFDS0FHRSIgIT0gZ2V0dGV4dC1ydW50aW1lIFwKKyAgICAgICAgICAgICAgICAmJiB0ZXN0ICIkUEFDS0FHRSIgIT0gZ2V0dGV4dC10b29sczsgfTsgdGhlbgorICAgICAgICAgIGd0X3VzZV9wcmVpbnN0YWxsZWRfZ251Z2V0dGV4dD15ZXMKKyAgICAgICAgZWxzZQorICAgICAgICAgIGRubCBSZXNldCB0aGUgdmFsdWVzIHNldCBieSBzZWFyY2hpbmcgZm9yIGxpYmludGwuCisgICAgICAgICAgTElCSU5UTD0KKyAgICAgICAgICBMVExJQklOVEw9CisgICAgICAgICAgSU5DSU5UTD0KKyAgICAgICAgZmkKKworICAgIGlmZWxzZShndF9pbmNsdWRlZF9pbnRsLCB5ZXMsIFsKKyAgICAgICAgaWYgdGVzdCAiJGd0X3VzZV9wcmVpbnN0YWxsZWRfZ251Z2V0dGV4dCIgIT0gInllcyI7IHRoZW4KKyAgICAgICAgICBkbmwgR05VIGdldHRleHQgaXMgbm90IGZvdW5kIGluIHRoZSBDIGxpYnJhcnkuCisgICAgICAgICAgZG5sIEZhbGwgYmFjayBvbiBpbmNsdWRlZCBHTlUgZ2V0dGV4dCBsaWJyYXJ5LgorICAgICAgICAgIG5sc19jdl91c2VfZ251X2dldHRleHQ9eWVzCisgICAgICAgIGZpCisgICAgICBmaQorCisgICAgICBpZiB0ZXN0ICIkbmxzX2N2X3VzZV9nbnVfZ2V0dGV4dCIgPSAieWVzIjsgdGhlbgorICAgICAgICBkbmwgTWFyayBhY3Rpb25zIHVzZWQgdG8gZ2VuZXJhdGUgR05VIE5MUyBsaWJyYXJ5LgorICAgICAgICBCVUlMRF9JTkNMVURFRF9MSUJJTlRMPXllcworICAgICAgICBVU0VfSU5DTFVERURfTElCSU5UTD15ZXMKKyAgICAgICAgTElCSU5UTD0iaWZlbHNlKFskM10sW10sXCR7dG9wX2J1aWxkZGlyfS9pbnRsLFskM10pL2xpYmludGwuW11ndF9saWJ0b29sX3N1ZmZpeF9wcmVmaXhbXWEgJExJQklDT05WIgorICAgICAgICBMVExJQklOVEw9ImlmZWxzZShbJDNdLFtdLFwke3RvcF9idWlsZGRpcn0vaW50bCxbJDNdKS9saWJpbnRsLltdZ3RfbGlidG9vbF9zdWZmaXhfcHJlZml4W11hICRMVExJQklDT05WIgorICAgICAgICBMSUJTPWBlY2hvICIgJExJQlMgIiB8IHNlZCAtZSAncy8gLWxpbnRsIC8gLycgLWUgJ3MvXiAvLycgLWUgJ3MvICQvLydgCisgICAgICBmaQorCisgICAgICBpZiB0ZXN0ICIkZ3RfdXNlX3ByZWluc3RhbGxlZF9nbnVnZXR0ZXh0IiA9ICJ5ZXMiIFwKKyAgICAgICAgIHx8IHRlc3QgIiRubHNfY3ZfdXNlX2dudV9nZXR0ZXh0IiA9ICJ5ZXMiOyB0aGVuCisgICAgICAgIGRubCBNYXJrIGFjdGlvbnMgdG8gdXNlIEdOVSBnZXR0ZXh0IHRvb2xzLgorICAgICAgICBDQVRPQkpFWFQ9LmdtbworICAgICAgZmkKKyAgICBdKQorCisgICAgaWYgdGVzdCAiJGd0X3VzZV9wcmVpbnN0YWxsZWRfZ251Z2V0dGV4dCIgPSAieWVzIiBcCisgICAgICAgfHwgdGVzdCAiJG5sc19jdl91c2VfZ251X2dldHRleHQiID0gInllcyI7IHRoZW4KKyAgICAgIEFDX0RFRklORShFTkFCTEVfTkxTLCAxLAorICAgICAgICBbRGVmaW5lIHRvIDEgaWYgdHJhbnNsYXRpb24gb2YgcHJvZ3JhbSBtZXNzYWdlcyB0byB0aGUgdXNlcidzIG5hdGl2ZSBsYW5ndWFnZQorICAgaXMgcmVxdWVzdGVkLl0pCisgICAgZWxzZQorICAgICAgVVNFX05MUz1ubworICAgIGZpCisgIGZpCisKKyAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIHVzZSBOTFNdKQorICBBQ19NU0dfUkVTVUxUKFskVVNFX05MU10pCisgIGlmIHRlc3QgIiRVU0VfTkxTIiA9ICJ5ZXMiOyB0aGVuCisgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGVyZSB0aGUgZ2V0dGV4dCBmdW5jdGlvbiBjb21lcyBmcm9tXSkKKyAgICBpZiB0ZXN0ICIkZ3RfdXNlX3ByZWluc3RhbGxlZF9nbnVnZXR0ZXh0IiA9ICJ5ZXMiOyB0aGVuCisgICAgICBpZiB0ZXN0ICIkZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmludGwiID0gInllcyI7IHRoZW4KKyAgICAgICAgZ3Rfc291cmNlPSJleHRlcm5hbCBsaWJpbnRsIgorICAgICAgZWxzZQorICAgICAgICBndF9zb3VyY2U9ImxpYmMiCisgICAgICBmaQorICAgIGVsc2UKKyAgICAgIGd0X3NvdXJjZT0iaW5jbHVkZWQgaW50bCBkaXJlY3RvcnkiCisgICAgZmkKKyAgICBBQ19NU0dfUkVTVUxUKFskZ3Rfc291cmNlXSkKKyAgZmkKKworICBpZiB0ZXN0ICIkVVNFX05MUyIgPSAieWVzIjsgdGhlbgorCisgICAgaWYgdGVzdCAiJGd0X3VzZV9wcmVpbnN0YWxsZWRfZ251Z2V0dGV4dCIgPSAieWVzIjsgdGhlbgorICAgICAgaWYgdGVzdCAiJGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJpbnRsIiA9ICJ5ZXMiOyB0aGVuCisgICAgICAgIEFDX01TR19DSEVDS0lORyhbaG93IHRvIGxpbmsgd2l0aCBsaWJpbnRsXSkKKyAgICAgICAgQUNfTVNHX1JFU1VMVChbJExJQklOVExdKQorICAgICAgICBBQ19MSUJfQVBQRU5EVE9WQVIoW0NQUEZMQUdTXSwgWyRJTkNJTlRMXSkKKyAgICAgIGZpCisKKyAgICAgIGRubCBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gU29tZSBwYWNrYWdlcyBtYXkgYmUgdXNpbmcgdGhpcy4KKyAgICAgIEFDX0RFRklORShIQVZFX0dFVFRFWFQsIDEsCisgICAgICAgW0RlZmluZSBpZiB0aGUgR05VIGdldHRleHQoKSBmdW5jdGlvbiBpcyBhbHJlYWR5IHByZXNlbnQgb3IgcHJlaW5zdGFsbGVkLl0pCisgICAgICBBQ19ERUZJTkUoSEFWRV9EQ0dFVFRFWFQsIDEsCisgICAgICAgW0RlZmluZSBpZiB0aGUgR05VIGRjZ2V0dGV4dCgpIGZ1bmN0aW9uIGlzIGFscmVhZHkgcHJlc2VudCBvciBwcmVpbnN0YWxsZWQuXSkKKyAgICBmaQorCisgICAgZG5sIFdlIG5lZWQgdG8gcHJvY2VzcyB0aGUgcG8vIGRpcmVjdG9yeS4KKyAgICBQT1NVQj1wbworICBmaQorCisgIGlmZWxzZShndF9pbmNsdWRlZF9pbnRsLCB5ZXMsIFsKKyAgICBkbmwgSWYgdGhpcyBpcyB1c2VkIGluIEdOVSBnZXR0ZXh0IHdlIGhhdmUgdG8gc2V0IEJVSUxEX0lOQ0xVREVEX0xJQklOVEwKKyAgICBkbmwgdG8gJ3llcycgYmVjYXVzZSBzb21lIG9mIHRoZSB0ZXN0c3VpdGUgcmVxdWlyZXMgaXQuCisgICAgaWYgdGVzdCAiJFBBQ0tBR0UiID0gZ2V0dGV4dC1ydW50aW1lIHx8IHRlc3QgIiRQQUNLQUdFIiA9IGdldHRleHQtdG9vbHM7IHRoZW4KKyAgICAgIEJVSUxEX0lOQ0xVREVEX0xJQklOVEw9eWVzCisgICAgZmkKKworICAgIGRubCBNYWtlIGFsbCB2YXJpYWJsZXMgd2UgdXNlIGtub3duIHRvIGF1dG9jb25mLgorICAgIEFDX1NVQlNUKEJVSUxEX0lOQ0xVREVEX0xJQklOVEwpCisgICAgQUNfU1VCU1QoVVNFX0lOQ0xVREVEX0xJQklOVEwpCisgICAgQUNfU1VCU1QoQ0FUT0JKRVhUKQorCisgICAgZG5sIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTb21lIGNvbmZpZ3VyZS5pbnMgbWF5IGJlIHVzaW5nIHRoaXMuCisgICAgbmxzX2N2X2hlYWRlcl9pbnRsPQorICAgIG5sc19jdl9oZWFkZXJfbGliZ3Q9CisKKyAgICBkbmwgRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFNvbWUgTWFrZWZpbGVzIG1heSBiZSB1c2luZyB0aGlzLgorICAgIERBVEFESVJOQU1FPXNoYXJlCisgICAgQUNfU1VCU1QoREFUQURJUk5BTUUpCisKKyAgICBkbmwgRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFNvbWUgTWFrZWZpbGVzIG1heSBiZSB1c2luZyB0aGlzLgorICAgIElOU1RPQkpFWFQ9Lm1vCisgICAgQUNfU1VCU1QoSU5TVE9CSkVYVCkKKworICAgIGRubCBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gU29tZSBNYWtlZmlsZXMgbWF5IGJlIHVzaW5nIHRoaXMuCisgICAgR0VOQ0FUPWdlbmNhdAorICAgIEFDX1NVQlNUKEdFTkNBVCkKKworICAgIGRubCBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gU29tZSBNYWtlZmlsZXMgbWF5IGJlIHVzaW5nIHRoaXMuCisgICAgaWYgdGVzdCAiJFVTRV9JTkNMVURFRF9MSUJJTlRMIiA9IHllczsgdGhlbgorICAgICAgSU5UTE9CSlM9IlwkKEdFVFRPQkpTKSIKKyAgICBmaQorICAgIEFDX1NVQlNUKElOVExPQkpTKQorCisgICAgZG5sIEVuYWJsZSBsaWJ0b29sIHN1cHBvcnQgaWYgdGhlIHN1cnJvdW5kaW5nIHBhY2thZ2Ugd2lzaGVzIGl0LgorICAgIElOVExfTElCVE9PTF9TVUZGSVhfUFJFRklYPWd0X2xpYnRvb2xfc3VmZml4X3ByZWZpeAorICAgIEFDX1NVQlNUKElOVExfTElCVE9PTF9TVUZGSVhfUFJFRklYKQorICBdKQorCisgIGRubCBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gU29tZSBNYWtlZmlsZXMgbWF5IGJlIHVzaW5nIHRoaXMuCisgIElOVExMSUJTPSIkTElCSU5UTCIKKyAgQUNfU1VCU1QoSU5UTExJQlMpCisKKyAgZG5sIE1ha2UgYWxsIGRvY3VtZW50ZWQgdmFyaWFibGVzIGtub3duIHRvIGF1dG9jb25mLgorICBBQ19TVUJTVChMSUJJTlRMKQorICBBQ19TVUJTVChMVExJQklOVEwpCisgIEFDX1NVQlNUKFBPU1VCKQorXSkKKworCitkbmwgQ2hlY2tzIGZvciBhbGwgcHJlcmVxdWlzaXRlcyBvZiB0aGUgaW50bCBzdWJkaXJlY3RvcnksCitkbmwgZXhjZXB0IGZvciBJTlRMX0xJQlRPT0xfU1VGRklYX1BSRUZJWCAoYW5kIHBvc3NpYmx5IExJQlRPT0wpLCBJTlRMT0JKUywKK2RubCAgICAgICAgICAgIFVTRV9JTkNMVURFRF9MSUJJTlRMLCBCVUlMRF9JTkNMVURFRF9MSUJJTlRMLgorQUNfREVGVU4oW0FNX0lOVExfU1VCRElSXSwKK1sKKyAgQUNfUkVRVUlSRShbQUNfUFJPR19JTlNUQUxMXSlkbmwKKyAgQUNfUkVRVUlSRShbQU1fTUtJTlNUQUxMRElSU10pZG5sCisgIEFDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorICBBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisgIEFDX1JFUVVJUkUoW0FDX1BST0dfUkFOTElCXSlkbmwKKyAgQUNfUkVRVUlSRShbQUNfSVNDX1BPU0lYXSlkbmwKKyAgQUNfUkVRVUlSRShbQUNfSEVBREVSX1NURENdKWRubAorICBBQ19SRVFVSVJFKFtBQ19DX0NPTlNUXSlkbmwKKyAgQUNfUkVRVUlSRShbYmhfQ19TSUdORURdKWRubAorICBBQ19SRVFVSVJFKFtBQ19DX0lOTElORV0pZG5sCisgIEFDX1JFUVVJUkUoW0FDX1RZUEVfT0ZGX1RdKWRubAorICBBQ19SRVFVSVJFKFtBQ19UWVBFX1NJWkVfVF0pZG5sCisgIEFDX1JFUVVJUkUoW2ptX0FDX1RZUEVfTE9OR19MT05HXSlkbmwKKyAgQUNfUkVRVUlSRShbZ3RfVFlQRV9MT05HRE9VQkxFXSlkbmwKKyAgQUNfUkVRVUlSRShbZ3RfVFlQRV9XQ0hBUl9UXSlkbmwKKyAgQUNfUkVRVUlSRShbZ3RfVFlQRV9XSU5UX1RdKWRubAorICBBQ19SRVFVSVJFKFtqbV9BQ19IRUFERVJfSU5UVFlQRVNfSF0pCisgIEFDX1JFUVVJUkUoW2ptX0FDX0hFQURFUl9TVERJTlRfSF0pCisgIEFDX1JFUVVJUkUoW2d0X1RZUEVfSU5UTUFYX1RdKQorICBBQ19SRVFVSVJFKFtndF9QUklOVEZfUE9TSVhdKQorICBBQ19SRVFVSVJFKFtBQ19GVU5DX0FMTE9DQV0pZG5sCisgIEFDX1JFUVVJUkUoW0FDX0ZVTkNfTU1BUF0pZG5sCisgIEFDX1JFUVVJUkUoW2ptX0dMSUJDMjFdKWRubAorICBBQ19SRVFVSVJFKFtndF9JTlRESVYwXSlkbmwKKyAgQUNfUkVRVUlSRShbam1fQUNfVFlQRV9VSU5UTUFYX1RdKWRubAorICBBQ19SRVFVSVJFKFtndF9IRUFERVJfSU5UVFlQRVNfSF0pZG5sCisgIEFDX1JFUVVJUkUoW2d0X0lOVFRZUEVTX1BSSV0pZG5sCisgIEFDX1JFUVVJUkUoW2dsX1hTSVpFXSlkbmwKKworICBBQ19DSEVDS19UWVBFKFtwdHJkaWZmX3RdLCAsCisgICAgW0FDX0RFRklORShbcHRyZGlmZl90XSwgW2xvbmddLAorICAgICAgIFtEZWZpbmUgYXMgdGhlIHR5cGUgb2YgdGhlIHJlc3VsdCBvZiBzdWJ0cmFjdGluZyB0d28gcG9pbnRlcnMsIGlmIHRoZSBzeXN0ZW0gZG9lc24ndCBkZWZpbmUgaXQuXSkKKyAgICBdKQorICBBQ19DSEVDS19IRUFERVJTKFthcmd6LmggbGltaXRzLmggbG9jYWxlLmggbmxfdHlwZXMuaCBtYWxsb2MuaCBzdGRkZWYuaCBcCitzdGRsaWIuaCBzdHJpbmcuaCB1bmlzdGQuaCBzeXMvcGFyYW0uaF0pCisgIEFDX0NIRUNLX0ZVTkNTKFthc3ByaW50ZiBmd3ByaW50ZiBnZXRjd2QgZ2V0ZWdpZCBnZXRldWlkIGdldGdpZCBnZXR1aWQgXAorbWVtcGNweSBtdW5tYXAgcHV0ZW52IHNldGVudiBzZXRsb2NhbGUgc25wcmludGYgc3RwY3B5IHN0cmNhc2VjbXAgc3RyZHVwIFwKK3N0cnRvdWwgdHNlYXJjaCB3Y3NsZW4gX19hcmd6X2NvdW50IF9fYXJnel9zdHJpbmdpZnkgX19hcmd6X25leHQgXAorX19mc2V0bG9ja2luZ10pCisKKyAgZG5sIFVzZSB0aGUgX3NucHJpbnRmIGZ1bmN0aW9uIG9ubHkgaWYgaXQgaXMgZGVjbGFyZWQgKGJlY2F1c2Ugb24gTmV0QlNEIGl0CisgIGRubCBpcyBkZWZpbmVkIGFzIGEgd2VhayBhbGlhcyBvZiBzbnByaW50Zjsgd2UgcHJlZmVyIHRvIHVzZSB0aGUgbGF0dGVyKS4KKyAgZ3RfQ0hFQ0tfREVDTChfc25wcmludGYsIFsjaW5jbHVkZSA8c3RkaW8uaD5dKQorICBndF9DSEVDS19ERUNMKF9zbndwcmludGYsIFsjaW5jbHVkZSA8c3RkaW8uaD5dKQorCisgIGRubCBVc2UgdGhlICpfdW5sb2NrZWQgZnVuY3Rpb25zIG9ubHkgaWYgdGhleSBhcmUgZGVjbGFyZWQuCisgIGRubCAoYmVjYXVzZSBzb21lIG9mIHRoZW0gd2VyZSBkZWZpbmVkIHdpdGhvdXQgYmVpbmcgZGVjbGFyZWQgaW4gU29sYXJpcworICBkbmwgMi41LjEgYnV0IHdlcmUgcmVtb3ZlZCBpbiBTb2xhcmlzIDIuNiwgd2hlcmVhcyB3ZSB3YW50IGJpbmFyaWVzIGJ1aWx0CisgIGRubCBvbiBTb2xhcmlzIDIuNS4xIHRvIHJ1biBvbiBTb2xhcmlzIDIuNikuCisgIGRubCBEb24ndCB1c2UgQUNfQ0hFQ0tfREVDTFMgYmVjYXVzZSBpdCBpc24ndCBzdXBwb3J0ZWQgaW4gYXV0b2NvbmYtMi4xMy4KKyAgZ3RfQ0hFQ0tfREVDTChmZW9mX3VubG9ja2VkLCBbI2luY2x1ZGUgPHN0ZGlvLmg+XSkKKyAgZ3RfQ0hFQ0tfREVDTChmZ2V0c191bmxvY2tlZCwgWyNpbmNsdWRlIDxzdGRpby5oPl0pCisgIGd0X0NIRUNLX0RFQ0woZ2V0Y191bmxvY2tlZCwgWyNpbmNsdWRlIDxzdGRpby5oPl0pCisKKyAgY2FzZSAkZ3RfY3ZfZnVuY19wcmludGZfcG9zaXggaW4KKyAgICAqeWVzKSBIQVZFX1BPU0lYX1BSSU5URj0xIDs7CisgICAgKikgSEFWRV9QT1NJWF9QUklOVEY9MCA7OworICBlc2FjCisgIEFDX1NVQlNUKFtIQVZFX1BPU0lYX1BSSU5URl0pCisgIGlmIHRlc3QgIiRhY19jdl9mdW5jX2FzcHJpbnRmIiA9IHllczsgdGhlbgorICAgIEhBVkVfQVNQUklOVEY9MQorICBlbHNlCisgICAgSEFWRV9BU1BSSU5URj0wCisgIGZpCisgIEFDX1NVQlNUKFtIQVZFX0FTUFJJTlRGXSkKKyAgaWYgdGVzdCAiJGFjX2N2X2Z1bmNfc25wcmludGYiID0geWVzOyB0aGVuCisgICAgSEFWRV9TTlBSSU5URj0xCisgIGVsc2UKKyAgICBIQVZFX1NOUFJJTlRGPTAKKyAgZmkKKyAgQUNfU1VCU1QoW0hBVkVfU05QUklOVEZdKQorICBpZiB0ZXN0ICIkYWNfY3ZfZnVuY193cHJpbnRmIiA9IHllczsgdGhlbgorICAgIEhBVkVfV1BSSU5URj0xCisgIGVsc2UKKyAgICBIQVZFX1dQUklOVEY9MAorICBmaQorICBBQ19TVUJTVChbSEFWRV9XUFJJTlRGXSkKKworICBBTV9JQ09OVgorICBBTV9MQU5HSU5GT19DT0RFU0VUCisgIGlmIHRlc3QgJGFjX2N2X2hlYWRlcl9sb2NhbGVfaCA9IHllczsgdGhlbgorICAgIEFNX0xDX01FU1NBR0VTCisgIGZpCisKKyAgZG5sIGludGwvcGx1cmFsLmMgaXMgZ2VuZXJhdGVkIGZyb20gaW50bC9wbHVyYWwueS4gSXQgcmVxdWlyZXMgYmlzb24sCisgIGRubCBiZWNhdXNlIHBsdXJhbC55IHVzZXMgYmlzb24gc3BlY2lmaWMgZmVhdHVyZXMuIEl0IHJlcXVpcmVzIGF0IGxlYXN0CisgIGRubCBiaXNvbi0xLjI2IGJlY2F1c2UgZWFybGllciB2ZXJzaW9ucyBnZW5lcmF0ZSBhIHBsdXJhbC5jIHRoYXQgZG9lc24ndAorICBkbmwgY29tcGlsZS4KKyAgZG5sIGJpc29uIGlzIG9ubHkgbmVlZGVkIGZvciB0aGUgbWFpbnRhaW5lciAod2hvIHRvdWNoZXMgcGx1cmFsLnkpLiBCdXQgaW4KKyAgZG5sIG9yZGVyIHRvIGF2b2lkIHNlcGFyYXRlIE1ha2VmaWxlcyBvciAtLWVuYWJsZS1tYWludGFpbmVyLW1vZGUsIHdlIHB1dAorICBkbmwgdGhlIHJ1bGUgaW4gZ2VuZXJhbCBNYWtlZmlsZS4gTm93LCBzb21lIHBlb3BsZSBjYXJlbGVzc2x5IHRvdWNoIHRoZQorICBkbmwgZmlsZXMgb3IgaGF2ZSBhIGJyb2tlbiAibWFrZSIgcHJvZ3JhbSwgaGVuY2UgdGhlIHBsdXJhbC5jIHJ1bGUgd2lsbAorICBkbmwgc29tZXRpbWVzIGZpcmUuIFRvIGF2b2lkIGFuIGVycm9yLCBkZWZpbmVzIEJJU09OIHRvICI6IiBpZiBpdCBpcyBub3QKKyAgZG5sIHByZXNlbnQgb3IgdG9vIG9sZC4KKyAgQUNfQ0hFQ0tfUFJPR1MoW0lOVExCSVNPTl0sIFtiaXNvbl0pCisgIGlmIHRlc3QgLXogIiRJTlRMQklTT04iOyB0aGVuCisgICAgYWNfdmVyY19mYWlsPXllcworICBlbHNlCisgICAgZG5sIEZvdW5kIGl0LCBub3cgY2hlY2sgdGhlIHZlcnNpb24uCisgICAgQUNfTVNHX0NIRUNLSU5HKFt2ZXJzaW9uIG9mIGJpc29uXSkKK2NoYW5nZXF1b3RlKDw8LD4+KWRubAorICAgIGFjX3Byb2dfdmVyc2lvbj1gJElOVExCSVNPTiAtLXZlcnNpb24gMj4mMSB8IHNlZCAtbiAncy9eLipHTlUgQmlzb24uKiBcKFswLTldKlwuWzAtOS5dKlwpLiokL1wxL3AnYAorICAgIGNhc2UgJGFjX3Byb2dfdmVyc2lvbiBpbgorICAgICAgJycpIGFjX3Byb2dfdmVyc2lvbj0idi4gPy4/PywgYmFkIjsgYWNfdmVyY19mYWlsPXllczs7CisgICAgICAxLjJbNi05XSogfCAxLlszLTldWzAtOV0qIHwgWzItOV0uKikKK2NoYW5nZXF1b3RlKFssXSlkbmwKKyAgICAgICAgIGFjX3Byb2dfdmVyc2lvbj0iJGFjX3Byb2dfdmVyc2lvbiwgb2siOyBhY192ZXJjX2ZhaWw9bm87OworICAgICAgKikgYWNfcHJvZ192ZXJzaW9uPSIkYWNfcHJvZ192ZXJzaW9uLCBiYWQiOyBhY192ZXJjX2ZhaWw9eWVzOzsKKyAgICBlc2FjCisgICAgQUNfTVNHX1JFU1VMVChbJGFjX3Byb2dfdmVyc2lvbl0pCisgIGZpCisgIGlmIHRlc3QgJGFjX3ZlcmNfZmFpbCA9IHllczsgdGhlbgorICAgIElOVExCSVNPTj06CisgIGZpCitdKQorCisKK2RubCBndF9DSEVDS19ERUNMKEZVTkMsIElOQ0xVREVTKQorZG5sIENoZWNrIHdoZXRoZXIgYSBmdW5jdGlvbiBpcyBkZWNsYXJlZC4KK0FDX0RFRlVOKFtndF9DSEVDS19ERUNMXSwKK1sKKyAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgJDEgaXMgZGVjbGFyZWRdLCBhY19jdl9oYXZlX2RlY2xfJDEsCisgICAgW0FDX1RSWV9DT01QSUxFKFskMl0sIFsKKyNpZm5kZWYgJDEKKyAgY2hhciAqcCA9IChjaGFyICopICQxOworI2VuZGlmCitdLCBhY19jdl9oYXZlX2RlY2xfJDE9eWVzLCBhY19jdl9oYXZlX2RlY2xfJDE9bm8pXSkKKyAgaWYgdGVzdCAkYWNfY3ZfaGF2ZV9kZWNsXyQxID0geWVzOyB0aGVuCisgICAgZ3RfdmFsdWU9MQorICBlbHNlCisgICAgZ3RfdmFsdWU9MAorICBmaQorICBBQ19ERUZJTkVfVU5RVU9URUQoW0hBVkVfREVDTF9ddHJhbnNsaXQoJDEsIFthLXpdLCBbQS1aXSksIFskZ3RfdmFsdWVdLAorICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYCQxJywgYW5kIHRvIDAgaWYgeW91IGRvbid0Ll0pCitdKQorCisKK2RubCBVc2FnZTogQU1fR05VX0dFVFRFWFRfVkVSU0lPTihbZ2V0dGV4dC12ZXJzaW9uXSkKK0FDX0RFRlVOKFtBTV9HTlVfR0VUVEVYVF9WRVJTSU9OXSwgW10pCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9ndGstZG9jLm00IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvZ3RrLWRvYy5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmRmYTFkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvZ3RrLWRvYy5tNApAQCAtMCwwICsxLDM5IEBACitkbmwgLSotIG1vZGU6IGF1dG9jb25mIC0qLQorCisjIHNlcmlhbCAxCisKK2RubCBVc2FnZToKK2RubCAgIEdUS19ET0NfQ0hFQ0soW21pbmltdW0tZ3RrLWRvYy12ZXJzaW9uXSkKK0FDX0RFRlVOKFtHVEtfRE9DX0NIRUNLXSwKK1sKKyAgQUNfQkVGT1JFKFtBQ19QUk9HX0xJQlRPT0xdLFskMF0pZG5sIHNldHVwIGxpYnRvb2wgZmlyc3QKKyAgQUNfQkVGT1JFKFtBTV9QUk9HX0xJQlRPT0xdLFskMF0pZG5sIHNldHVwIGxpYnRvb2wgZmlyc3QKKyAgZG5sIGZvciBvdmVycmlkaW5nIHRoZSBkb2N1bWVudGF0aW9uIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKKyAgQUNfQVJHX1dJVEgoW2h0bWwtZGlyXSwKKyAgICBBU19IRUxQX1NUUklORyhbLS13aXRoLWh0bWwtZGlyPVBBVEhdLCBbcGF0aCB0byBpbnN0YWxsZWQgZG9jc10pLCwKKyAgICBbd2l0aF9odG1sX2Rpcj0nJHtkYXRhZGlyfS9ndGstZG9jL2h0bWwnXSkKKyAgSFRNTF9ESVI9IiR3aXRoX2h0bWxfZGlyIgorICBBQ19TVUJTVChbSFRNTF9ESVJdKQorCisgIGRubCBlbmFibGUvZGlzYWJsZSBkb2N1bWVudGF0aW9uIGJ1aWxkaW5nCisgIEFDX0FSR19FTkFCTEUoW2d0ay1kb2NdLAorICAgIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1ndGstZG9jXSwKKyAgICAgICAgICAgICAgICAgICBbdXNlIGd0ay1kb2MgdG8gYnVpbGQgZG9jdW1lbnRhdGlvbiBbW2RlZmF1bHQ9bm9dXV0pLCwKKyAgICBbZW5hYmxlX2d0a19kb2M9bm9dKQorCisgIGlmIHRlc3QgeCRlbmFibGVfZ3RrX2RvYyA9IHh5ZXM7IHRoZW4KKyAgICBpZmVsc2UoWyQxXSxbXSwKKyAgICAgIFtQS0dfQ0hFQ0tfRVhJU1RTKFtndGstZG9jXSwsCisgICAgICAgICAgICAgICAgICAgICAgICBBQ19NU0dfRVJST1IoW2d0ay1kb2Mgbm90IGluc3RhbGxlZCBhbmQgLS1lbmFibGUtZ3RrLWRvYyByZXF1ZXN0ZWRdKSldLAorICAgICAgW1BLR19DSEVDS19FWElTVFMoW2d0ay1kb2MgPj0gJDFdLCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihbWW91IG5lZWQgdG8gaGF2ZSBndGstZG9jID49ICQxIGluc3RhbGxlZCB0byBidWlsZCBndGstZG9jXSkpXSkKKyAgZmkKKworICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgZ3RrLWRvYyBkb2N1bWVudGF0aW9uXSkKKyAgQUNfTVNHX1JFU1VMVCgkZW5hYmxlX2d0a19kb2MpCisKKyAgQUNfUEFUSF9QUk9HUyhHVEtET0NfQ0hFQ0ssZ3RrZG9jLWNoZWNrLCkKKworICBBTV9DT05ESVRJT05BTChbRU5BQkxFX0dUS19ET0NdLCBbdGVzdCB4JGVuYWJsZV9ndGtfZG9jID0geHllc10pCisgIEFNX0NPTkRJVElPTkFMKFtHVEtfRE9DX1VTRV9MSUJUT09MXSwgW3Rlc3QgLW4gIiRMSUJUT09MIl0pCitdKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvaWNvbnYubTQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9pY29udi5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWYzNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvaWNvbnYubTQKQEAgLTAsMCArMSwxMDMgQEAKKyMgaWNvbnYubTQgc2VyaWFsIEFNNCAoZ2V0dGV4dC0wLjExLjMpCitkbmwgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKK2RubCBGcm9tIEJydW5vIEhhaWJsZS4KKworQUNfREVGVU4oW0FNX0lDT05WX0xJTktGTEFHU19CT0RZXSwKK1sKKyAgZG5sIFByZXJlcXVpc2l0ZXMgb2YgQUNfTElCX0xJTktGTEFHU19CT0RZLgorICBBQ19SRVFVSVJFKFtBQ19MSUJfUFJFUEFSRV9QUkVGSVhdKQorICBBQ19SRVFVSVJFKFtBQ19MSUJfUlBBVEhdKQorCisgIGRubCBTZWFyY2ggZm9yIGxpYmljb252IGFuZCBkZWZpbmUgTElCSUNPTlYsIExUTElCSUNPTlYgYW5kIElOQ0lDT05WCisgIGRubCBhY2NvcmRpbmdseS4KKyAgQUNfTElCX0xJTktGTEFHU19CT0RZKFtpY29udl0pCitdKQorCitBQ19ERUZVTihbQU1fSUNPTlZfTElOS10sCitbCisgIGRubCBTb21lIHN5c3RlbXMgaGF2ZSBpY29udiBpbiBsaWJjLCBzb21lIGhhdmUgaXQgaW4gbGliaWNvbnYgKE9TRi8xIGFuZAorICBkbmwgdGhvc2Ugd2l0aCB0aGUgc3RhbmRhbG9uZSBwb3J0YWJsZSBHTlUgbGliaWNvbnYgaW5zdGFsbGVkKS4KKworICBkbmwgU2VhcmNoIGZvciBsaWJpY29udiBhbmQgZGVmaW5lIExJQklDT05WLCBMVExJQklDT05WIGFuZCBJTkNJQ09OVgorICBkbmwgYWNjb3JkaW5nbHkuCisgIEFDX1JFUVVJUkUoW0FNX0lDT05WX0xJTktGTEFHU19CT0RZXSkKKworICBkbmwgQWRkICRJTkNJQ09OViB0byBDUFBGTEFHUyBiZWZvcmUgcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIGNoZWNrcywKKyAgZG5sIGJlY2F1c2UgaWYgdGhlIHVzZXIgaGFzIGluc3RhbGxlZCBsaWJpY29udiBhbmQgbm90IGRpc2FibGVkIGl0cyB1c2UKKyAgZG5sIHZpYSAtLXdpdGhvdXQtbGliaWNvbnYtcHJlZml4LCBoZSB3YW50cyB0byB1c2UgaXQuIFRoZSBmaXJzdAorICBkbmwgQUNfVFJZX0xJTksgd2lsbCB0aGVuIGZhaWwsIHRoZSBzZWNvbmQgQUNfVFJZX0xJTksgd2lsbCBzdWNjZWVkLgorICBhbV9zYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCisgIEFDX0xJQl9BUFBFTkRUT1ZBUihbQ1BQRkxBR1NdLCBbJElOQ0lDT05WXSkKKworICBBQ19DQUNIRV9DSEVDSyhmb3IgaWNvbnYsIGFtX2N2X2Z1bmNfaWNvbnYsIFsKKyAgICBhbV9jdl9mdW5jX2ljb252PSJubywgY29uc2lkZXIgaW5zdGFsbGluZyBHTlUgbGliaWNvbnYiCisgICAgYW1fY3ZfbGliX2ljb252PW5vCisgICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxpY29udi5oPl0sCisgICAgICBbaWNvbnZfdCBjZCA9IGljb252X29wZW4oIiIsIiIpOworICAgICAgIGljb252KGNkLE5VTEwsTlVMTCxOVUxMLE5VTEwpOworICAgICAgIGljb252X2Nsb3NlKGNkKTtdLAorICAgICAgYW1fY3ZfZnVuY19pY29udj15ZXMpCisgICAgaWYgdGVzdCAiJGFtX2N2X2Z1bmNfaWNvbnYiICE9IHllczsgdGhlbgorICAgICAgYW1fc2F2ZV9MSUJTPSIkTElCUyIKKyAgICAgIExJQlM9IiRMSUJTICRMSUJJQ09OViIKKyAgICAgIEFDX1RSWV9MSU5LKFsjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8aWNvbnYuaD5dLAorICAgICAgICBbaWNvbnZfdCBjZCA9IGljb252X29wZW4oIiIsIiIpOworICAgICAgICAgaWNvbnYoY2QsTlVMTCxOVUxMLE5VTEwsTlVMTCk7CisgICAgICAgICBpY29udl9jbG9zZShjZCk7XSwKKyAgICAgICAgYW1fY3ZfbGliX2ljb252PXllcworICAgICAgICBhbV9jdl9mdW5jX2ljb252PXllcykKKyAgICAgIExJQlM9IiRhbV9zYXZlX0xJQlMiCisgICAgZmkKKyAgXSkKKyAgaWYgdGVzdCAiJGFtX2N2X2Z1bmNfaWNvbnYiID0geWVzOyB0aGVuCisgICAgQUNfREVGSU5FKEhBVkVfSUNPTlYsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGljb252KCkgZnVuY3Rpb24uXSkKKyAgZmkKKyAgaWYgdGVzdCAiJGFtX2N2X2xpYl9pY29udiIgPSB5ZXM7IHRoZW4KKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBsaW5rIHdpdGggbGliaWNvbnZdKQorICAgIEFDX01TR19SRVNVTFQoWyRMSUJJQ09OVl0pCisgIGVsc2UKKyAgICBkbmwgSWYgJExJQklDT05WIGRpZG4ndCBsZWFkIHRvIGEgdXNhYmxlIGxpYnJhcnksIHdlIGRvbid0IG5lZWQgJElOQ0lDT05WCisgICAgZG5sIGVpdGhlci4KKyAgICBDUFBGTEFHUz0iJGFtX3NhdmVfQ1BQRkxBR1MiCisgICAgTElCSUNPTlY9CisgICAgTFRMSUJJQ09OVj0KKyAgZmkKKyAgQUNfU1VCU1QoTElCSUNPTlYpCisgIEFDX1NVQlNUKExUTElCSUNPTlYpCitdKQorCitBQ19ERUZVTihbQU1fSUNPTlZdLAorWworICBBTV9JQ09OVl9MSU5LCisgIGlmIHRlc3QgIiRhbV9jdl9mdW5jX2ljb252IiA9IHllczsgdGhlbgorICAgIEFDX01TR19DSEVDS0lORyhbZm9yIGljb252IGRlY2xhcmF0aW9uXSkKKyAgICBBQ19DQUNIRV9WQUwoYW1fY3ZfcHJvdG9faWNvbnYsIFsKKyAgICAgIEFDX1RSWV9DT01QSUxFKFsKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxpY29udi5oPgorZXh0ZXJuCisjaWZkZWYgX19jcGx1c3BsdXMKKyJDIgorI2VuZGlmCisjaWYgZGVmaW5lZChfX1NURENfXykgfHwgZGVmaW5lZChfX2NwbHVzcGx1cykKK3NpemVfdCBpY29udiAoaWNvbnZfdCBjZCwgY2hhciAqICppbmJ1Ziwgc2l6ZV90ICppbmJ5dGVzbGVmdCwgY2hhciAqICpvdXRidWYsIHNpemVfdCAqb3V0Ynl0ZXNsZWZ0KTsKKyNlbHNlCitzaXplX3QgaWNvbnYoKTsKKyNlbmRpZgorXSwgW10sIGFtX2N2X3Byb3RvX2ljb252X2FyZzE9IiIsIGFtX2N2X3Byb3RvX2ljb252X2FyZzE9ImNvbnN0IikKKyAgICAgIGFtX2N2X3Byb3RvX2ljb252PSJleHRlcm4gc2l6ZV90IGljb252IChpY29udl90IGNkLCAkYW1fY3ZfcHJvdG9faWNvbnZfYXJnMSBjaGFyICogKmluYnVmLCBzaXplX3QgKmluYnl0ZXNsZWZ0LCBjaGFyICogKm91dGJ1Ziwgc2l6ZV90ICpvdXRieXRlc2xlZnQpOyJdKQorICAgIGFtX2N2X3Byb3RvX2ljb252PWBlY2hvICJbJF1hbV9jdl9wcm90b19pY29udiIgfCB0ciAtcyAnICcgfCBzZWQgLWUgJ3MvKCAvKC8nYAorICAgIEFDX01TR19SRVNVTFQoWyRde2FjX3Q6LQorICAgICAgICAgfVskXWFtX2N2X3Byb3RvX2ljb252KQorICAgIEFDX0RFRklORV9VTlFVT1RFRChJQ09OVl9DT05TVCwgJGFtX2N2X3Byb3RvX2ljb252X2FyZzEsCisgICAgICBbRGVmaW5lIGFzIGNvbnN0IGlmIHRoZSBkZWNsYXJhdGlvbiBvZiBpY29udigpIG5lZWRzIGNvbnN0Ll0pCisgIGZpCitdKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbGliLWxkLm00IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbGliLWxkLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4YWVhZWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9saWItbGQubTQKQEAgLTAsMCArMSwxMTIgQEAKKyMgbGliLWxkLm00IHNlcmlhbCAzIChnZXR0ZXh0LTAuMTMpCitkbmwgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKK2RubCBTdWJyb3V0aW5lcyBvZiBsaWJ0b29sLm00LAorZG5sIHdpdGggcmVwbGFjZW1lbnRzIHMvQUNfL0FDX0xJQi8gYW5kIHMvbHRfY3YvYWNsX2N2LyB0byBhdm9pZCBjb2xsaXNpb24KK2RubCB3aXRoIGxpYnRvb2wubTQuCisKK2RubCBGcm9tIGxpYnRvb2wtMS40LiBTZXRzIHRoZSB2YXJpYWJsZSB3aXRoX2dudV9sZCB0byB5ZXMgb3Igbm8uCitBQ19ERUZVTihbQUNfTElCX1BST0dfTERfR05VXSwKK1tBQ19DQUNIRV9DSEVDSyhbaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGRdLCBhY2xfY3ZfcHJvZ19nbnVfbGQsCitbIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGQncyBvbmx5IGFjY2VwdCAtdi4KK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2L251bGxgIGluCisqR05VKiB8ICond2l0aCBCRkQnKikKKyAgYWNsX2N2X3Byb2dfZ251X2xkPXllcyA7OworKikKKyAgYWNsX2N2X3Byb2dfZ251X2xkPW5vIDs7Citlc2FjXSkKK3dpdGhfZ251X2xkPSRhY2xfY3ZfcHJvZ19nbnVfbGQKK10pCisKK2RubCBGcm9tIGxpYnRvb2wtMS40LiBTZXRzIHRoZSB2YXJpYWJsZSBMRC4KK0FDX0RFRlVOKFtBQ19MSUJfUFJPR19MRF0sCitbQUNfQVJHX1dJVEgoZ251LWxkLAorWyAgLS13aXRoLWdudS1sZCAgICAgICAgICAgYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIFtkZWZhdWx0PW5vXV0sCit0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXMsIHdpdGhfZ251X2xkPW5vKQorQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCitBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisjIFByZXBhcmUgUEFUSF9TRVBBUkFUT1IuCisjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KK2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCisgIGVjaG8gIiMhIC9iaW4vc2giID5jb25mJCQuc2gKKyAgZWNobyAgImV4aXQgMCIgICA+PmNvbmYkJC5zaAorICBjaG1vZCAreCBjb25mJCQuc2gKKyAgaWYgKFBBVEg9Ii9ub25leGlzdGVudDsuIjsgY29uZiQkLnNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICBQQVRIX1NFUEFSQVRPUj0nOycKKyAgZWxzZQorICAgIFBBVEhfU0VQQVJBVE9SPToKKyAgZmkKKyAgcm0gLWYgY29uZiQkLnNoCitmaQorYWNfcHJvZz1sZAoraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCisgIEFDX01TR19DSEVDS0lORyhbZm9yIGxkIHVzZWQgYnkgR0NDXSkKKyAgY2FzZSAkaG9zdCBpbgorICAqLSotbWluZ3cqKQorICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMgbWluZ3cKKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7CisgICopCisgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1YCA7OworICBlc2FjCisgIGNhc2UgJGFjX3Byb2cgaW4KKyAgICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KKyAgICBbW1xcL10qIHwgW0EtWmEtel06W1xcL10qKV0KKyAgICAgIFtyZV9kaXJlbHQ9Jy9bXi9dW14vXSovXC5cLi8nXQorICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBhdGggb2YgbGQKKyAgICAgIGFjX3Byb2c9YGVjaG8gJGFjX3Byb2d8IHNlZCAncyVcXFxcJS8lZydgCisgICAgICB3aGlsZSBlY2hvICRhY19wcm9nIHwgZ3JlcCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KKwlhY19wcm9nPWBlY2hvICRhY19wcm9nfCBzZWQgInMlJHJlX2RpcmVsdCUvJSJgCisgICAgICBkb25lCisgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKKyAgICAgIDs7CisgICIiKQorICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgorICAgIGFjX3Byb2c9bGQKKyAgICA7OworICAqKQorICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KKyAgICB3aXRoX2dudV9sZD11bmtub3duCisgICAgOzsKKyAgZXNhYworZWxpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisgIEFDX01TR19DSEVDS0lORyhbZm9yIEdOVSBsZF0pCitlbHNlCisgIEFDX01TR19DSEVDS0lORyhbZm9yIG5vbi1HTlUgbGRdKQorZmkKK0FDX0NBQ0hFX1ZBTChhY2xfY3ZfcGF0aF9MRCwKK1tpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisgIElGUz0iJHtJRlM9IAl9IjsgYWNfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSR7UEFUSF9TRVBBUkFUT1ItOn0iCisgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCisgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKyAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KKyAgICAgIGFjbF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19wcm9nIgorICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAorICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZCdzIG9ubHkgYWNjZXB0IC12LgorICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhhdCB3ZSBwcmVmZXIuCisgICAgICBjYXNlIGAiJGFjbF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwgL2Rldi9udWxsYCBpbgorICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCisJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhayA7OworICAgICAgKikKKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHllcyAmJiBicmVhayA7OworICAgICAgZXNhYworICAgIGZpCisgIGRvbmUKKyAgSUZTPSIkYWNfc2F2ZV9pZnMiCitlbHNlCisgIGFjbF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorZmldKQorTEQ9IiRhY2xfY3ZfcGF0aF9MRCIKK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4KKyAgQUNfTVNHX1JFU1VMVCgkTEQpCitlbHNlCisgIEFDX01TR19SRVNVTFQobm8pCitmaQordGVzdCAteiAiJExEIiAmJiBBQ19NU0dfRVJST1IoW25vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIXSkKK0FDX0xJQl9QUk9HX0xEX0dOVQorXSkKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL200L2xpYi1saW5rLm00IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbGliLWxpbmsubTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWViMjAwZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL200L2xpYi1saW5rLm00CkBAIC0wLDAgKzEsNTUxIEBACisjIGxpYi1saW5rLm00IHNlcmlhbCA0IChnZXR0ZXh0LTAuMTIpCitkbmwgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKK2RubCBGcm9tIEJydW5vIEhhaWJsZS4KKworZG5sIEFDX0xJQl9MSU5LRkxBR1MobmFtZSBbLCBkZXBlbmRlbmNpZXNdKSBzZWFyY2hlcyBmb3IgbGlibmFtZSBhbmQKK2RubCB0aGUgbGlicmFyaWVzIGNvcnJlc3BvbmRpbmcgdG8gZXhwbGljaXQgYW5kIGltcGxpY2l0IGRlcGVuZGVuY2llcy4KK2RubCBTZXRzIGFuZCBBQ19TVUJTVHMgdGhlIExJQiR7TkFNRX0gYW5kIExUTElCJHtOQU1FfSB2YXJpYWJsZXMgYW5kCitkbmwgYXVnbWVudHMgdGhlIENQUEZMQUdTIHZhcmlhYmxlLgorQUNfREVGVU4oW0FDX0xJQl9MSU5LRkxBR1NdLAorWworICBBQ19SRVFVSVJFKFtBQ19MSUJfUFJFUEFSRV9QUkVGSVhdKQorICBBQ19SRVFVSVJFKFtBQ19MSUJfUlBBVEhdKQorICBkZWZpbmUoW05hbWVdLFt0cmFuc2xpdChbJDFdLFsuLy1dLCBbX19fXSldKQorICBkZWZpbmUoW05BTUVdLFt0cmFuc2xpdChbJDFdLFthYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei4vLV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaX19fXSldKQorICBBQ19DQUNIRV9DSEVDSyhbaG93IHRvIGxpbmsgd2l0aCBsaWJbXSQxXSwgW2FjX2N2X2xpYltdTmFtZVtdX2xpYnNdLCBbCisgICAgQUNfTElCX0xJTktGTEFHU19CT0RZKFskMV0sIFskMl0pCisgICAgYWNfY3ZfbGliW11OYW1lW11fbGlicz0iJExJQltdTkFNRSIKKyAgICBhY19jdl9saWJbXU5hbWVbXV9sdGxpYnM9IiRMVExJQltdTkFNRSIKKyAgICBhY19jdl9saWJbXU5hbWVbXV9jcHBmbGFncz0iJElOQ1tdTkFNRSIKKyAgXSkKKyAgTElCW11OQU1FPSIkYWNfY3ZfbGliW11OYW1lW11fbGlicyIKKyAgTFRMSUJbXU5BTUU9IiRhY19jdl9saWJbXU5hbWVbXV9sdGxpYnMiCisgIElOQ1tdTkFNRT0iJGFjX2N2X2xpYltdTmFtZVtdX2NwcGZsYWdzIgorICBBQ19MSUJfQVBQRU5EVE9WQVIoW0NQUEZMQUdTXSwgWyRJTkNdTkFNRSkKKyAgQUNfU1VCU1QoW0xJQl1OQU1FKQorICBBQ19TVUJTVChbTFRMSUJdTkFNRSkKKyAgZG5sIEFsc28gc2V0IEhBVkVfTElCW11OQU1FIHNvIHRoYXQgQUNfTElCX0hBVkVfTElOS0ZMQUdTIGNhbiByZXVzZSB0aGUKKyAgZG5sIHJlc3VsdHMgb2YgdGhpcyBzZWFyY2ggd2hlbiB0aGlzIGxpYnJhcnkgYXBwZWFycyBhcyBhIGRlcGVuZGVuY3kuCisgIEhBVkVfTElCW11OQU1FPXllcworICB1bmRlZmluZShbTmFtZV0pCisgIHVuZGVmaW5lKFtOQU1FXSkKK10pCisKK2RubCBBQ19MSUJfSEFWRV9MSU5LRkxBR1MobmFtZSwgZGVwZW5kZW5jaWVzLCBpbmNsdWRlcywgdGVzdGNvZGUpCitkbmwgc2VhcmNoZXMgZm9yIGxpYm5hbWUgYW5kIHRoZSBsaWJyYXJpZXMgY29ycmVzcG9uZGluZyB0byBleHBsaWNpdCBhbmQKK2RubCBpbXBsaWNpdCBkZXBlbmRlbmNpZXMsIHRvZ2V0aGVyIHdpdGggdGhlIHNwZWNpZmllZCBpbmNsdWRlIGZpbGVzIGFuZAorZG5sIHRoZSBhYmlsaXR5IHRvIGNvbXBpbGUgYW5kIGxpbmsgdGhlIHNwZWNpZmllZCB0ZXN0Y29kZS4gSWYgZm91bmQsIGl0Citkbmwgc2V0cyBhbmQgQUNfU1VCU1RzIEhBVkVfTElCJHtOQU1FfT15ZXMgYW5kIHRoZSBMSUIke05BTUV9IGFuZAorZG5sIExUTElCJHtOQU1FfSB2YXJpYWJsZXMgYW5kIGF1Z21lbnRzIHRoZSBDUFBGTEFHUyB2YXJpYWJsZSwgYW5kCitkbmwgI2RlZmluZXMgSEFWRV9MSUIke05BTUV9IHRvIDEuIE90aGVyd2lzZSwgaXQgc2V0cyBhbmQgQUNfU1VCU1RzCitkbmwgSEFWRV9MSUIke05BTUV9PW5vIGFuZCBMSUIke05BTUV9IGFuZCBMVExJQiR7TkFNRX0gdG8gZW1wdHkuCitBQ19ERUZVTihbQUNfTElCX0hBVkVfTElOS0ZMQUdTXSwKK1sKKyAgQUNfUkVRVUlSRShbQUNfTElCX1BSRVBBUkVfUFJFRklYXSkKKyAgQUNfUkVRVUlSRShbQUNfTElCX1JQQVRIXSkKKyAgZGVmaW5lKFtOYW1lXSxbdHJhbnNsaXQoWyQxXSxbLi8tXSwgW19fX10pXSkKKyAgZGVmaW5lKFtOQU1FXSxbdHJhbnNsaXQoWyQxXSxbYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXouLy1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl9fX10pXSkKKworICBkbmwgU2VhcmNoIGZvciBsaWJbXU5hbWUgYW5kIGRlZmluZSBMSUJbXU5BTUUsIExUTElCW11OQU1FIGFuZCBJTkNbXU5BTUUKKyAgZG5sIGFjY29yZGluZ2x5LgorICBBQ19MSUJfTElOS0ZMQUdTX0JPRFkoWyQxXSwgWyQyXSkKKworICBkbmwgQWRkICRJTkNbXU5BTUUgdG8gQ1BQRkxBR1MgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGZvbGxvd2luZyBjaGVja3MsCisgIGRubCBiZWNhdXNlIGlmIHRoZSB1c2VyIGhhcyBpbnN0YWxsZWQgbGliW11OYW1lIGFuZCBub3QgZGlzYWJsZWQgaXRzIHVzZQorICBkbmwgdmlhIC0td2l0aG91dC1saWJbXU5hbWUtcHJlZml4LCBoZSB3YW50cyB0byB1c2UgaXQuCisgIGFjX3NhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKyAgQUNfTElCX0FQUEVORFRPVkFSKFtDUFBGTEFHU10sIFskSU5DXU5BTUUpCisKKyAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBsaWJbXSQxXSwgW2FjX2N2X2xpYltdTmFtZV0sIFsKKyAgICBhY19zYXZlX0xJQlM9IiRMSUJTIgorICAgIExJQlM9IiRMSUJTICRMSUJbXU5BTUUiCisgICAgQUNfVFJZX0xJTksoWyQzXSwgWyQ0XSwgW2FjX2N2X2xpYltdTmFtZT15ZXNdLCBbYWNfY3ZfbGliW11OYW1lPW5vXSkKKyAgICBMSUJTPSIkYWNfc2F2ZV9MSUJTIgorICBdKQorICBpZiB0ZXN0ICIkYWNfY3ZfbGliW11OYW1lIiA9IHllczsgdGhlbgorICAgIEhBVkVfTElCW11OQU1FPXllcworICAgIEFDX0RFRklORShbSEFWRV9MSUJdTkFNRSwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSB0aGUgJDEgbGlicmFyeS5dKQorICAgIEFDX01TR19DSEVDS0lORyhbaG93IHRvIGxpbmsgd2l0aCBsaWJbXSQxXSkKKyAgICBBQ19NU0dfUkVTVUxUKFskTElCW11OQU1FXSkKKyAgZWxzZQorICAgIEhBVkVfTElCW11OQU1FPW5vCisgICAgZG5sIElmICRMSUJbXU5BTUUgZGlkbid0IGxlYWQgdG8gYSB1c2FibGUgbGlicmFyeSwgd2UgZG9uJ3QgbmVlZAorICAgIGRubCAkSU5DW11OQU1FIGVpdGhlci4KKyAgICBDUFBGTEFHUz0iJGFjX3NhdmVfQ1BQRkxBR1MiCisgICAgTElCW11OQU1FPQorICAgIExUTElCW11OQU1FPQorICBmaQorICBBQ19TVUJTVChbSEFWRV9MSUJdTkFNRSkKKyAgQUNfU1VCU1QoW0xJQl1OQU1FKQorICBBQ19TVUJTVChbTFRMSUJdTkFNRSkKKyAgdW5kZWZpbmUoW05hbWVdKQorICB1bmRlZmluZShbTkFNRV0pCitdKQorCitkbmwgRGV0ZXJtaW5lIHRoZSBwbGF0Zm9ybSBkZXBlbmRlbnQgcGFyYW1ldGVycyBuZWVkZWQgdG8gdXNlIHJwYXRoOgorZG5sIGxpYmV4dCwgc2hsaWJleHQsIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsCitkbmwgaGFyZGNvZGVfZGlyZWN0LCBoYXJkY29kZV9taW51c19MLgorQUNfREVGVU4oW0FDX0xJQl9SUEFUSF0sCitbCisgIEFDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKSAgICAgICAgICAgICAgICBkbmwgd2UgdXNlICRDQywgJEdDQywgJExERkxBR1MKKyAgQUNfUkVRVUlSRShbQUNfTElCX1BST0dfTERdKSAgICAgICAgICAgIGRubCB3ZSB1c2UgJExELCAkd2l0aF9nbnVfbGQKKyAgQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKSAgICAgICAgIGRubCB3ZSB1c2UgJGhvc3QKKyAgQUNfUkVRVUlSRShbQUNfQ09ORklHX0FVWF9ESVJfREVGQVVMVF0pIGRubCB3ZSB1c2UgJGFjX2F1eF9kaXIKKyAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBzaGFyZWQgbGlicmFyeSBydW4gcGF0aCBvcmlnaW5dLCBhY2xfY3ZfcnBhdGgsIFsKKyAgICBDQz0iJENDIiBHQ0M9IiRHQ0MiIExERkxBR1M9IiRMREZMQUdTIiBMRD0iJExEIiB3aXRoX2dudV9sZD0iJHdpdGhfZ251X2xkIiBcCisgICAgJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0gIiRhY19hdXhfZGlyL2NvbmZpZy5ycGF0aCIgIiRob3N0IiA+IGNvbmZ0ZXN0LnNoCisgICAgLiAuL2NvbmZ0ZXN0LnNoCisgICAgcm0gLWYgLi9jb25mdGVzdC5zaAorICAgIGFjbF9jdl9ycGF0aD1kb25lCisgIF0pCisgIHdsPSIkYWNsX2N2X3dsIgorICBsaWJleHQ9IiRhY2xfY3ZfbGliZXh0IgorICBzaGxpYmV4dD0iJGFjbF9jdl9zaGxpYmV4dCIKKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0iJGFjbF9jdl9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIgorICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSIkYWNsX2N2X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiCisgIGhhcmRjb2RlX2RpcmVjdD0iJGFjbF9jdl9oYXJkY29kZV9kaXJlY3QiCisgIGhhcmRjb2RlX21pbnVzX0w9IiRhY2xfY3ZfaGFyZGNvZGVfbWludXNfTCIKKyAgZG5sIERldGVybWluZSB3aGV0aGVyIHRoZSB1c2VyIHdhbnRzIHJwYXRoIGhhbmRsaW5nIGF0IGFsbC4KKyAgQUNfQVJHX0VOQUJMRShycGF0aCwKKyAgICBbICAtLWRpc2FibGUtcnBhdGggICAgICAgICBkbyBub3QgaGFyZGNvZGUgcnVudGltZSBsaWJyYXJ5IHBhdGhzXSwKKyAgICA6LCBlbmFibGVfcnBhdGg9eWVzKQorXSkKKworZG5sIEFDX0xJQl9MSU5LRkxBR1NfQk9EWShuYW1lIFssIGRlcGVuZGVuY2llc10pIHNlYXJjaGVzIGZvciBsaWJuYW1lIGFuZAorZG5sIHRoZSBsaWJyYXJpZXMgY29ycmVzcG9uZGluZyB0byBleHBsaWNpdCBhbmQgaW1wbGljaXQgZGVwZW5kZW5jaWVzLgorZG5sIFNldHMgdGhlIExJQiR7TkFNRX0sIExUTElCJHtOQU1FfSBhbmQgSU5DJHtOQU1FfSB2YXJpYWJsZXMuCitBQ19ERUZVTihbQUNfTElCX0xJTktGTEFHU19CT0RZXSwKK1sKKyAgZGVmaW5lKFtOQU1FXSxbdHJhbnNsaXQoWyQxXSxbYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXouLy1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl9fX10pXSkKKyAgZG5sIEJ5IGRlZmF1bHQsIGxvb2sgaW4gJGluY2x1ZGVkaXIgYW5kICRsaWJkaXIuCisgIHVzZV9hZGRpdGlvbmFsPXllcworICBBQ19MSUJfV0lUSF9GSU5BTF9QUkVGSVgoWworICAgIGV2YWwgYWRkaXRpb25hbF9pbmNsdWRlZGlyPVwiJGluY2x1ZGVkaXJcIgorICAgIGV2YWwgYWRkaXRpb25hbF9saWJkaXI9XCIkbGliZGlyXCIKKyAgXSkKKyAgQUNfTElCX0FSR19XSVRIKFtsaWIkMS1wcmVmaXhdLAorWyAgLS13aXRoLWxpYiQxLXByZWZpeFs9RElSXSAgc2VhcmNoIGZvciBsaWIkMSBpbiBESVIvaW5jbHVkZSBhbmQgRElSL2xpYgorICAtLXdpdGhvdXQtbGliJDEtcHJlZml4ICAgICBkb24ndCBzZWFyY2ggZm9yIGxpYiQxIGluIGluY2x1ZGVkaXIgYW5kIGxpYmRpcl0sCitbCisgICAgaWYgdGVzdCAiWCR3aXRodmFsIiA9ICJYbm8iOyB0aGVuCisgICAgICB1c2VfYWRkaXRpb25hbD1ubworICAgIGVsc2UKKyAgICAgIGlmIHRlc3QgIlgkd2l0aHZhbCIgPSAiWCI7IHRoZW4KKyAgICAgICAgQUNfTElCX1dJVEhfRklOQUxfUFJFRklYKFsKKyAgICAgICAgICBldmFsIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj1cIiRpbmNsdWRlZGlyXCIKKyAgICAgICAgICBldmFsIGFkZGl0aW9uYWxfbGliZGlyPVwiJGxpYmRpclwiCisgICAgICAgIF0pCisgICAgICBlbHNlCisgICAgICAgIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj0iJHdpdGh2YWwvaW5jbHVkZSIKKyAgICAgICAgYWRkaXRpb25hbF9saWJkaXI9IiR3aXRodmFsL2xpYiIKKyAgICAgIGZpCisgICAgZmkKK10pCisgIGRubCBTZWFyY2ggdGhlIGxpYnJhcnkgYW5kIGl0cyBkZXBlbmRlbmNpZXMgaW4gJGFkZGl0aW9uYWxfbGliZGlyIGFuZAorICBkbmwgJExERkxBR1MuIFVzaW5nIGJyZWFkdGgtZmlyc3Qtc2VhY2guCisgIExJQltdTkFNRT0KKyAgTFRMSUJbXU5BTUU9CisgIElOQ1tdTkFNRT0KKyAgcnBhdGhkaXJzPQorICBsdHJwYXRoZGlycz0KKyAgbmFtZXNfYWxyZWFkeV9oYW5kbGVkPQorICBuYW1lc19uZXh0X3JvdW5kPSckMSAkMicKKyAgd2hpbGUgdGVzdCAtbiAiJG5hbWVzX25leHRfcm91bmQiOyBkbworICAgIG5hbWVzX3RoaXNfcm91bmQ9IiRuYW1lc19uZXh0X3JvdW5kIgorICAgIG5hbWVzX25leHRfcm91bmQ9CisgICAgZm9yIG5hbWUgaW4gJG5hbWVzX3RoaXNfcm91bmQ7IGRvCisgICAgICBhbHJlYWR5X2hhbmRsZWQ9CisgICAgICBmb3IgbiBpbiAkbmFtZXNfYWxyZWFkeV9oYW5kbGVkOyBkbworICAgICAgICBpZiB0ZXN0ICIkbiIgPSAiJG5hbWUiOyB0aGVuCisgICAgICAgICAgYWxyZWFkeV9oYW5kbGVkPXllcworICAgICAgICAgIGJyZWFrCisgICAgICAgIGZpCisgICAgICBkb25lCisgICAgICBpZiB0ZXN0IC16ICIkYWxyZWFkeV9oYW5kbGVkIjsgdGhlbgorICAgICAgICBuYW1lc19hbHJlYWR5X2hhbmRsZWQ9IiRuYW1lc19hbHJlYWR5X2hhbmRsZWQgJG5hbWUiCisgICAgICAgIGRubCBTZWUgaWYgaXQgd2FzIGFscmVhZHkgbG9jYXRlZCBieSBhbiBlYXJsaWVyIEFDX0xJQl9MSU5LRkxBR1MKKyAgICAgICAgZG5sIG9yIEFDX0xJQl9IQVZFX0xJTktGTEFHUyBjYWxsLgorICAgICAgICB1cHBlcm5hbWU9YGVjaG8gIiRuYW1lIiB8IHNlZCAtZSAneXxhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei4vLXxBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl9fX3wnYAorICAgICAgICBldmFsIHZhbHVlPVwiXCRIQVZFX0xJQiR1cHBlcm5hbWVcIgorICAgICAgICBpZiB0ZXN0IC1uICIkdmFsdWUiOyB0aGVuCisgICAgICAgICAgaWYgdGVzdCAiJHZhbHVlIiA9IHllczsgdGhlbgorICAgICAgICAgICAgZXZhbCB2YWx1ZT1cIlwkTElCJHVwcGVybmFtZVwiCisgICAgICAgICAgICB0ZXN0IC16ICIkdmFsdWUiIHx8IExJQltdTkFNRT0iJHtMSUJbXU5BTUV9JHtMSUJbXU5BTUU6KyB9JHZhbHVlIgorICAgICAgICAgICAgZXZhbCB2YWx1ZT1cIlwkTFRMSUIkdXBwZXJuYW1lXCIKKyAgICAgICAgICAgIHRlc3QgLXogIiR2YWx1ZSIgfHwgTFRMSUJbXU5BTUU9IiR7TFRMSUJbXU5BTUV9JHtMVExJQltdTkFNRTorIH0kdmFsdWUiCisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZG5sIEFuIGVhcmxpZXIgY2FsbCB0byBBQ19MSUJfSEFWRV9MSU5LRkxBR1MgaGFzIGRldGVybWluZWQKKyAgICAgICAgICAgIGRubCB0aGF0IHRoaXMgbGlicmFyeSBkb2Vzbid0IGV4aXN0LiBTbyBqdXN0IGRyb3AgaXQuCisgICAgICAgICAgICA6CisgICAgICAgICAgZmkKKyAgICAgICAgZWxzZQorICAgICAgICAgIGRubCBTZWFyY2ggdGhlIGxpYnJhcnkgbGliJG5hbWUgaW4gJGFkZGl0aW9uYWxfbGliZGlyIGFuZCAkTERGTEFHUworICAgICAgICAgIGRubCBhbmQgdGhlIGFscmVhZHkgY29uc3RydWN0ZWQgJExJQk5BTUUvJExUTElCTkFNRS4KKyAgICAgICAgICBmb3VuZF9kaXI9CisgICAgICAgICAgZm91bmRfbGE9CisgICAgICAgICAgZm91bmRfc289CisgICAgICAgICAgZm91bmRfYT0KKyAgICAgICAgICBpZiB0ZXN0ICR1c2VfYWRkaXRpb25hbCA9IHllczsgdGhlbgorICAgICAgICAgICAgaWYgdGVzdCAtbiAiJHNobGliZXh0IiAmJiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUuJHNobGliZXh0IjsgdGhlbgorICAgICAgICAgICAgICBmb3VuZF9kaXI9IiRhZGRpdGlvbmFsX2xpYmRpciIKKyAgICAgICAgICAgICAgZm91bmRfc289IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS4kc2hsaWJleHQiCisgICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS5sYSI7IHRoZW4KKyAgICAgICAgICAgICAgICBmb3VuZF9sYT0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIgorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUuJGxpYmV4dCI7IHRoZW4KKyAgICAgICAgICAgICAgICBmb3VuZF9kaXI9IiRhZGRpdGlvbmFsX2xpYmRpciIKKyAgICAgICAgICAgICAgICBmb3VuZF9hPSIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUuJGxpYmV4dCIKKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUubGEiOyB0aGVuCisgICAgICAgICAgICAgICAgICBmb3VuZF9sYT0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIgorICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBmaQorICAgICAgICAgIGZpCisgICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9kaXIiID0gIlgiOyB0aGVuCisgICAgICAgICAgICBmb3IgeCBpbiAkTERGTEFHUyAkTFRMSUJbXU5BTUU7IGRvCisgICAgICAgICAgICAgIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbZXZhbCB4PVwiJHhcIl0pCisgICAgICAgICAgICAgIGNhc2UgIiR4IiBpbgorICAgICAgICAgICAgICAgIC1MKikKKyAgICAgICAgICAgICAgICAgIGRpcj1gZWNobyAiWCR4IiB8IHNlZCAtZSAncy9eWC1MLy8nYAorICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJHNobGliZXh0IiAmJiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLiRzaGxpYmV4dCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkZGlyIgorICAgICAgICAgICAgICAgICAgICBmb3VuZF9zbz0iJGRpci9saWIkbmFtZS4kc2hsaWJleHQiCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRkaXIvbGliJG5hbWUubGEiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRkaXIvbGliJG5hbWUubGEiCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRkaXIvbGliJG5hbWUuJGxpYmV4dCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9kaXI9IiRkaXIiCisgICAgICAgICAgICAgICAgICAgICAgZm91bmRfYT0iJGRpci9saWIkbmFtZS4kbGliZXh0IgorICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRkaXIvbGliJG5hbWUubGEiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9sYT0iJGRpci9saWIkbmFtZS5sYSIKKyAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9kaXIiICE9ICJYIjsgdGhlbgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBkb25lCisgICAgICAgICAgZmkKKyAgICAgICAgICBpZiB0ZXN0ICJYJGZvdW5kX2RpciIgIT0gIlgiOyB0aGVuCisgICAgICAgICAgICBkbmwgRm91bmQgdGhlIGxpYnJhcnkuCisgICAgICAgICAgICBMVExJQltdTkFNRT0iJHtMVExJQltdTkFNRX0ke0xUTElCW11OQU1FOisgfS1MJGZvdW5kX2RpciAtbCRuYW1lIgorICAgICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9zbyIgIT0gIlgiOyB0aGVuCisgICAgICAgICAgICAgIGRubCBMaW5raW5nIHdpdGggYSBzaGFyZWQgbGlicmFyeS4gV2UgYXR0ZW1wdCB0byBoYXJkY29kZSBpdHMKKyAgICAgICAgICAgICAgZG5sIGRpcmVjdG9yeSBpbnRvIHRoZSBleGVjdXRhYmxlJ3MgcnVucGF0aCwgdW5sZXNzIGl0J3MgdGhlCisgICAgICAgICAgICAgIGRubCBzdGFuZGFyZCAvdXNyL2xpYi4KKyAgICAgICAgICAgICAgaWYgdGVzdCAiJGVuYWJsZV9ycGF0aCIgPSBubyB8fCB0ZXN0ICJYJGZvdW5kX2RpciIgPSAiWC91c3IvbGliIjsgdGhlbgorICAgICAgICAgICAgICAgIGRubCBObyBoYXJkY29kaW5nIGlzIG5lZWRlZC4KKyAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfSRmb3VuZF9zbyIKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGRubCBVc2UgYW4gZXhwbGljaXQgb3B0aW9uIHRvIGhhcmRjb2RlIERJUiBpbnRvIHRoZSByZXN1bHRpbmcKKyAgICAgICAgICAgICAgICBkbmwgYmluYXJ5LgorICAgICAgICAgICAgICAgIGRubCBQb3RlbnRpYWxseSBhZGQgRElSIHRvIGx0cnBhdGhkaXJzLgorICAgICAgICAgICAgICAgIGRubCBUaGUgbHRycGF0aGRpcnMgd2lsbCBiZSBhcHBlbmRlZCB0byAkTFRMSUJOQU1FIGF0IHRoZSBlbmQuCisgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgIGZvciB4IGluICRsdHJwYXRoZGlyczsgZG8KKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRmb3VuZF9kaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICBsdHJwYXRoZGlycz0iJGx0cnBhdGhkaXJzICRmb3VuZF9kaXIiCisgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBkbmwgVGhlIGhhcmRjb2RpbmcgaW50byAkTElCTkFNRSBpcyBzeXN0ZW0gZGVwZW5kZW50LgorICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVzOyB0aGVuCisgICAgICAgICAgICAgICAgICBkbmwgVXNpbmcgRElSL2xpYk5BTUUuc28gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvIHRoZQorICAgICAgICAgICAgICAgICAgZG5sIHJlc3VsdGluZyBiaW5hcnkuCisgICAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfSRmb3VuZF9zbyIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgJiYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgZG5sIFVzZSBhbiBleHBsaWNpdCBvcHRpb24gdG8gaGFyZGNvZGUgRElSIGludG8gdGhlIHJlc3VsdGluZworICAgICAgICAgICAgICAgICAgICBkbmwgYmluYXJ5LgorICAgICAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfSRmb3VuZF9zbyIKKyAgICAgICAgICAgICAgICAgICAgZG5sIFBvdGVudGlhbGx5IGFkZCBESVIgdG8gcnBhdGhkaXJzLgorICAgICAgICAgICAgICAgICAgICBkbmwgVGhlIHJwYXRoZGlycyB3aWxsIGJlIGFwcGVuZGVkIHRvICRMSUJOQU1FIGF0IHRoZSBlbmQuCisgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJHJwYXRoZGlyczsgZG8KKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZm91bmRfZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgcnBhdGhkaXJzPSIkcnBhdGhkaXJzICRmb3VuZF9kaXIiCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRubCBSZWx5IG9uICItTCRmb3VuZF9kaXIiLgorICAgICAgICAgICAgICAgICAgICBkbmwgQnV0IGRvbid0IGFkZCBpdCBpZiBpdCdzIGFscmVhZHkgY29udGFpbmVkIGluIHRoZSBMREZMQUdTCisgICAgICAgICAgICAgICAgICAgIGRubCBvciB0aGUgYWxyZWFkeSBjb25zdHJ1Y3RlZCAkTElCTkFNRQorICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9CisgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRMREZMQUdTICRMSUJbXU5BTUU7IGRvCisgICAgICAgICAgICAgICAgICAgICAgQUNfTElCX1dJVEhfRklOQUxfUFJFRklYKFtldmFsIHg9XCIkeFwiXSkKKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtTCRmb3VuZF9kaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfS1MJGZvdW5kX2RpciIKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiICE9IG5vOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgZG5sIEZJWE1FOiBOb3Qgc3VyZSB3aGV0aGVyIHdlIHNob3VsZCB1c2UKKyAgICAgICAgICAgICAgICAgICAgICBkbmwgIi1MJGZvdW5kX2RpciAtbCRuYW1lIiBvciAiLUwkZm91bmRfZGlyICRmb3VuZF9zbyIKKyAgICAgICAgICAgICAgICAgICAgICBkbmwgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfSRmb3VuZF9zbyIKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgIGRubCBXZSBjYW5ub3QgdXNlICRoYXJkY29kZV9ydW5wYXRoX3ZhciBhbmQgTERfUlVOX1BBVEgKKyAgICAgICAgICAgICAgICAgICAgICBkbmwgaGVyZSwgYmVjYXVzZSB0aGlzIGRvZXNuJ3QgZml0IGluIGZsYWdzIHBhc3NlZCB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICBkbmwgY29tcGlsZXIuIFNvIGdpdmUgdXAuIE5vIGhhcmRjb2RpbmcuIFRoaXMgYWZmZWN0cyBvbmx5CisgICAgICAgICAgICAgICAgICAgICAgZG5sIHZlcnkgb2xkIHN5c3RlbXMuCisgICAgICAgICAgICAgICAgICAgICAgZG5sIEZJWE1FOiBOb3Qgc3VyZSB3aGV0aGVyIHdlIHNob3VsZCB1c2UKKyAgICAgICAgICAgICAgICAgICAgICBkbmwgIi1MJGZvdW5kX2RpciAtbCRuYW1lIiBvciAiLUwkZm91bmRfZGlyICRmb3VuZF9zbyIKKyAgICAgICAgICAgICAgICAgICAgICBkbmwgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfS1sJG5hbWUiCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfYSIgIT0gIlgiOyB0aGVuCisgICAgICAgICAgICAgICAgZG5sIExpbmtpbmcgd2l0aCBhIHN0YXRpYyBsaWJyYXJ5LgorICAgICAgICAgICAgICAgIExJQltdTkFNRT0iJHtMSUJbXU5BTUV9JHtMSUJbXU5BTUU6KyB9JGZvdW5kX2EiCisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkbmwgV2Ugc2hvdWxkbid0IGNvbWUgaGVyZSwgYnV0IGFueXdheSBpdCdzIGdvb2QgdG8gaGF2ZSBhCisgICAgICAgICAgICAgICAgZG5sIGZhbGxiYWNrLgorICAgICAgICAgICAgICAgIExJQltdTkFNRT0iJHtMSUJbXU5BTUV9JHtMSUJbXU5BTUU6KyB9LUwkZm91bmRfZGlyIC1sJG5hbWUiCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBmaQorICAgICAgICAgICAgZG5sIEFzc3VtZSB0aGUgaW5jbHVkZSBmaWxlcyBhcmUgbmVhcmJ5LgorICAgICAgICAgICAgYWRkaXRpb25hbF9pbmNsdWRlZGlyPQorICAgICAgICAgICAgY2FzZSAiJGZvdW5kX2RpciIgaW4KKyAgICAgICAgICAgICAgKi9saWIgfCAqL2xpYi8pCisgICAgICAgICAgICAgICAgYmFzZWRpcj1gZWNobyAiWCRmb3VuZF9kaXIiIHwgc2VkIC1lICdzLF5YLCwnIC1lICdzLC9saWIvKiQsLCdgCisgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9pbmNsdWRlZGlyPSIkYmFzZWRpci9pbmNsdWRlIgorICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIgIT0gIlgiOyB0aGVuCisgICAgICAgICAgICAgIGRubCBQb3RlbnRpYWxseSBhZGQgJGFkZGl0aW9uYWxfaW5jbHVkZWRpciB0byAkSU5DTkFNRS4KKyAgICAgICAgICAgICAgZG5sIEJ1dCBkb24ndCBhZGQgaXQKKyAgICAgICAgICAgICAgZG5sICAgMS4gaWYgaXQncyB0aGUgc3RhbmRhcmQgL3Vzci9pbmNsdWRlLAorICAgICAgICAgICAgICBkbmwgICAyLiBpZiBpdCdzIC91c3IvbG9jYWwvaW5jbHVkZSBhbmQgd2UgYXJlIHVzaW5nIEdDQyBvbiBMaW51eCwKKyAgICAgICAgICAgICAgZG5sICAgMy4gaWYgaXQncyBhbHJlYWR5IHByZXNlbnQgaW4gJENQUEZMQUdTIG9yIHRoZSBhbHJlYWR5CisgICAgICAgICAgICAgIGRubCAgICAgIGNvbnN0cnVjdGVkICRJTkNOQU1FLAorICAgICAgICAgICAgICBkbmwgICA0LiBpZiBpdCBkb2Vzbid0IGV4aXN0IGFzIGEgZGlyZWN0b3J5LgorICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIgIT0gIlgvdXNyL2luY2x1ZGUiOyB0aGVuCisgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkYWRkaXRpb25hbF9pbmNsdWRlZGlyIiA9ICJYL3Vzci9sb2NhbC9pbmNsdWRlIjsgdGhlbgorICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJEdDQyI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgICAgICAgICAgICAgICAgIGxpbnV4KikgaGF2ZWl0PXllczs7CisgICAgICAgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJENQUEZMQUdTICRJTkNbXU5BTUU7IGRvCisgICAgICAgICAgICAgICAgICAgIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbZXZhbCB4PVwiJHhcIl0pCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWC1JJGFkZGl0aW9uYWxfaW5jbHVkZWRpciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgZG5sIFJlYWxseSBhZGQgJGFkZGl0aW9uYWxfaW5jbHVkZWRpciB0byAkSU5DTkFNRS4KKyAgICAgICAgICAgICAgICAgICAgICBJTkNbXU5BTUU9IiR7SU5DW11OQU1FfSR7SU5DW11OQU1FOisgfS1JJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgICBkbmwgTG9vayBmb3IgZGVwZW5kZW5jaWVzLgorICAgICAgICAgICAgaWYgdGVzdCAtbiAiJGZvdW5kX2xhIjsgdGhlbgorICAgICAgICAgICAgICBkbmwgUmVhZCB0aGUgLmxhIGZpbGUuIEl0IGRlZmluZXMgdGhlIHZhcmlhYmxlcworICAgICAgICAgICAgICBkbmwgZGxuYW1lLCBsaWJyYXJ5X25hbWVzLCBvbGRfbGlicmFyeSwgZGVwZW5kZW5jeV9saWJzLCBjdXJyZW50LAorICAgICAgICAgICAgICBkbmwgYWdlLCByZXZpc2lvbiwgaW5zdGFsbGVkLCBkbG9wZW4sIGRscHJlb3BlbiwgbGliZGlyLgorICAgICAgICAgICAgICBzYXZlX2xpYmRpcj0iJGxpYmRpciIKKyAgICAgICAgICAgICAgY2FzZSAiJGZvdW5kX2xhIiBpbgorICAgICAgICAgICAgICAgICovKiB8ICpcXCopIC4gIiRmb3VuZF9sYSIgOzsKKyAgICAgICAgICAgICAgICAqKSAuICIuLyRmb3VuZF9sYSIgOzsKKyAgICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgICBsaWJkaXI9IiRzYXZlX2xpYmRpciIKKyAgICAgICAgICAgICAgZG5sIFdlIHVzZSBvbmx5IGRlcGVuZGVuY3lfbGlicy4KKyAgICAgICAgICAgICAgZm9yIGRlcCBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworICAgICAgICAgICAgICAgIGNhc2UgIiRkZXAiIGluCisgICAgICAgICAgICAgICAgICAtTCopCisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfbGliZGlyPWBlY2hvICJYJGRlcCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AKKyAgICAgICAgICAgICAgICAgICAgZG5sIFBvdGVudGlhbGx5IGFkZCAkYWRkaXRpb25hbF9saWJkaXIgdG8gJExJQk5BTUUgYW5kICRMVExJQk5BTUUuCisgICAgICAgICAgICAgICAgICAgIGRubCBCdXQgZG9uJ3QgYWRkIGl0CisgICAgICAgICAgICAgICAgICAgIGRubCAgIDEuIGlmIGl0J3MgdGhlIHN0YW5kYXJkIC91c3IvbGliLAorICAgICAgICAgICAgICAgICAgICBkbmwgICAyLiBpZiBpdCdzIC91c3IvbG9jYWwvbGliIGFuZCB3ZSBhcmUgdXNpbmcgR0NDIG9uIExpbnV4LAorICAgICAgICAgICAgICAgICAgICBkbmwgICAzLiBpZiBpdCdzIGFscmVhZHkgcHJlc2VudCBpbiAkTERGTEFHUyBvciB0aGUgYWxyZWFkeQorICAgICAgICAgICAgICAgICAgICBkbmwgICAgICBjb25zdHJ1Y3RlZCAkTElCTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgZG5sICAgNC4gaWYgaXQgZG9lc24ndCBleGlzdCBhcyBhIGRpcmVjdG9yeS4KKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2xpYmRpciIgIT0gIlgvdXNyL2xpYiI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9CisgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2xpYmRpciIgPSAiWC91c3IvbG9jYWwvbGliIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJEdDQyI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbnV4KikgaGF2ZWl0PXllczs7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExJQltdTkFNRTsgZG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgQUNfTElCX1dJVEhfRklOQUxfUFJFRklYKFtldmFsIHg9XCIkeFwiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUwkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG5sIFJlYWxseSBhZGQgJGFkZGl0aW9uYWxfbGliZGlyIHRvICRMSUJOQU1FLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQltdTkFNRT0iJHtMSUJbXU5BTUV9JHtMSUJbXU5BTUU6KyB9LUwkYWRkaXRpb25hbF9saWJkaXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExUTElCW11OQU1FOyBkbworICAgICAgICAgICAgICAgICAgICAgICAgICBBQ19MSUJfV0lUSF9GSU5BTF9QUkVGSVgoW2V2YWwgeD1cIiR4XCJdKQorICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtTCRhZGRpdGlvbmFsX2xpYmRpciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRhZGRpdGlvbmFsX2xpYmRpciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbmwgUmVhbGx5IGFkZCAkYWRkaXRpb25hbF9saWJkaXIgdG8gJExUTElCTkFNRS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVExJQltdTkFNRT0iJHtMVExJQltdTkFNRX0ke0xUTElCW11OQU1FOisgfS1MJGFkZGl0aW9uYWxfbGliZGlyIgorICAgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgICAgICAgLVIqKQorICAgICAgICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgkZGVwIiB8IHNlZCAtZSAncy9eWC1SLy8nYAorICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkZW5hYmxlX3JwYXRoIiAhPSBubzsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgIGRubCBQb3RlbnRpYWxseSBhZGQgRElSIHRvIHJwYXRoZGlycy4KKyAgICAgICAgICAgICAgICAgICAgICBkbmwgVGhlIHJwYXRoZGlycyB3aWxsIGJlIGFwcGVuZGVkIHRvICRMSUJOQU1FIGF0IHRoZSBlbmQuCisgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRycGF0aGRpcnM7IGRvCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgcnBhdGhkaXJzPSIkcnBhdGhkaXJzICRkaXIiCisgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICBkbmwgUG90ZW50aWFsbHkgYWRkIERJUiB0byBsdHJwYXRoZGlycy4KKyAgICAgICAgICAgICAgICAgICAgICBkbmwgVGhlIGx0cnBhdGhkaXJzIHdpbGwgYmUgYXBwZW5kZWQgdG8gJExUTElCTkFNRSBhdCB0aGUgZW5kLgorICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkbHRycGF0aGRpcnM7IGRvCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgbHRycGF0aGRpcnM9IiRsdHJwYXRoZGlycyAkZGlyIgorICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAtbCopCisgICAgICAgICAgICAgICAgICAgIGRubCBIYW5kbGUgdGhpcyBpbiB0aGUgbmV4dCByb3VuZC4KKyAgICAgICAgICAgICAgICAgICAgbmFtZXNfbmV4dF9yb3VuZD0iJG5hbWVzX25leHRfcm91bmQgImBlY2hvICJYJGRlcCIgfCBzZWQgLWUgJ3MvXlgtbC8vJ2AKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAgICoubGEpCisgICAgICAgICAgICAgICAgICAgIGRubCBIYW5kbGUgdGhpcyBpbiB0aGUgbmV4dCByb3VuZC4gVGhyb3cgYXdheSB0aGUgLmxhJ3MKKyAgICAgICAgICAgICAgICAgICAgZG5sIGRpcmVjdG9yeTsgaXQgaXMgYWxyZWFkeSBjb250YWluZWQgaW4gYSBwcmVjZWRpbmcgLUwKKyAgICAgICAgICAgICAgICAgICAgZG5sIG9wdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgbmFtZXNfbmV4dF9yb3VuZD0iJG5hbWVzX25leHRfcm91bmQgImBlY2hvICJYJGRlcCIgfCBzZWQgLWUgJ3MsXlguKi8sLCcgLWUgJ3MsXmxpYiwsJyAtZSAncyxcLmxhJCwsJ2AKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAgICopCisgICAgICAgICAgICAgICAgICAgIGRubCBNb3N0IGxpa2VseSBhbiBpbW1lZGlhdGUgbGlicmFyeSBuYW1lLgorICAgICAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfSRkZXAiCisgICAgICAgICAgICAgICAgICAgIExUTElCW11OQU1FPSIke0xUTElCW11OQU1FfSR7TFRMSUJbXU5BTUU6KyB9JGRlcCIKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZG5sIERpZG4ndCBmaW5kIHRoZSBsaWJyYXJ5OyBhc3N1bWUgaXQgaXMgaW4gdGhlIHN5c3RlbSBkaXJlY3RvcmllcworICAgICAgICAgICAgZG5sIGtub3duIHRvIHRoZSBsaW5rZXIgYW5kIHJ1bnRpbWUgbG9hZGVyLiAoQWxsIHRoZSBzeXN0ZW0KKyAgICAgICAgICAgIGRubCBkaXJlY3RvcmllcyBrbm93biB0byB0aGUgbGlua2VyIHNob3VsZCBhbHNvIGJlIGtub3duIHRvIHRoZQorICAgICAgICAgICAgZG5sIHJ1bnRpbWUgbG9hZGVyLCBvdGhlcndpc2UgdGhlIHN5c3RlbSBpcyBzZXZlcmVseSBtaXNjb25maWd1cmVkLikKKyAgICAgICAgICAgIExJQltdTkFNRT0iJHtMSUJbXU5BTUV9JHtMSUJbXU5BTUU6KyB9LWwkbmFtZSIKKyAgICAgICAgICAgIExUTElCW11OQU1FPSIke0xUTElCW11OQU1FfSR7TFRMSUJbXU5BTUU6KyB9LWwkbmFtZSIKKyAgICAgICAgICBmaQorICAgICAgICBmaQorICAgICAgZmkKKyAgICBkb25lCisgIGRvbmUKKyAgaWYgdGVzdCAiWCRycGF0aGRpcnMiICE9ICJYIjsgdGhlbgorICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgorICAgICAgZG5sIFdlaXJkIHBsYXRmb3JtOiBvbmx5IHRoZSBsYXN0IC1ycGF0aCBvcHRpb24gY291bnRzLCB0aGUgdXNlciBtdXN0CisgICAgICBkbmwgcGFzcyBhbGwgcGF0aCBlbGVtZW50cyBpbiBvbmUgb3B0aW9uLiBXZSBjYW4gYXJyYW5nZSB0aGF0IGZvciBhCisgICAgICBkbmwgc2luZ2xlIGxpYnJhcnksIGJ1dCBub3Qgd2hlbiBtb3JlIHRoYW4gb25lICRMSUJOQU1FcyBhcmUgdXNlZC4KKyAgICAgIGFsbGRpcnM9CisgICAgICBmb3IgZm91bmRfZGlyIGluICRycGF0aGRpcnM7IGRvCisgICAgICAgIGFsbGRpcnM9IiR7YWxsZGlyc30ke2FsbGRpcnM6KyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yfSRmb3VuZF9kaXIiCisgICAgICBkb25lCisgICAgICBkbmwgTm90ZTogaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyB1c2VzICRsaWJkaXIgYW5kICR3bC4KKyAgICAgIGFjbF9zYXZlX2xpYmRpcj0iJGxpYmRpciIKKyAgICAgIGxpYmRpcj0iJGFsbGRpcnMiCisgICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisgICAgICBsaWJkaXI9IiRhY2xfc2F2ZV9saWJkaXIiCisgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfSRmbGFnIgorICAgIGVsc2UKKyAgICAgIGRubCBUaGUgLXJwYXRoIG9wdGlvbnMgYXJlIGN1bXVsYXRpdmUuCisgICAgICBmb3IgZm91bmRfZGlyIGluICRycGF0aGRpcnM7IGRvCisgICAgICAgIGFjbF9zYXZlX2xpYmRpcj0iJGxpYmRpciIKKyAgICAgICAgbGliZGlyPSIkZm91bmRfZGlyIgorICAgICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisgICAgICAgIGxpYmRpcj0iJGFjbF9zYXZlX2xpYmRpciIKKyAgICAgICAgTElCW11OQU1FPSIke0xJQltdTkFNRX0ke0xJQltdTkFNRTorIH0kZmxhZyIKKyAgICAgIGRvbmUKKyAgICBmaQorICBmaQorICBpZiB0ZXN0ICJYJGx0cnBhdGhkaXJzIiAhPSAiWCI7IHRoZW4KKyAgICBkbmwgV2hlbiB1c2luZyBsaWJ0b29sLCB0aGUgb3B0aW9uIHRoYXQgd29ya3MgZm9yIGJvdGggbGlicmFyaWVzIGFuZAorICAgIGRubCBleGVjdXRhYmxlcyBpcyAtUi4gVGhlIC1SIG9wdGlvbnMgYXJlIGN1bXVsYXRpdmUuCisgICAgZm9yIGZvdW5kX2RpciBpbiAkbHRycGF0aGRpcnM7IGRvCisgICAgICBMVExJQltdTkFNRT0iJHtMVExJQltdTkFNRX0ke0xUTElCW11OQU1FOisgfS1SJGZvdW5kX2RpciIKKyAgICBkb25lCisgIGZpCitdKQorCitkbmwgQUNfTElCX0FQUEVORFRPVkFSKFZBUiwgQ09OVEVOVFMpIGFwcGVuZHMgdGhlIGVsZW1lbnRzIG9mIENPTlRFTlRTIHRvIFZBUiwKK2RubCB1bmxlc3MgYWxyZWFkeSBwcmVzZW50IGluIFZBUi4KK2RubCBXb3JrcyBvbmx5IGZvciBDUFBGTEFHUywgbm90IGZvciBMSUIqIHZhcmlhYmxlcyBiZWNhdXNlIHRoYXQgc29tZXRpbWVzCitkbmwgY29udGFpbnMgdHdvIG9yIHRocmVlIGNvbnNlY3V0aXZlIGVsZW1lbnRzIHRoYXQgYmVsb25nIHRvZ2V0aGVyLgorQUNfREVGVU4oW0FDX0xJQl9BUFBFTkRUT1ZBUl0sCitbCisgIGZvciBlbGVtZW50IGluIFskMl07IGRvCisgICAgaGF2ZWl0PQorICAgIGZvciB4IGluICRbJDFdOyBkbworICAgICAgQUNfTElCX1dJVEhfRklOQUxfUFJFRklYKFtldmFsIHg9XCIkeFwiXSkKKyAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRlbGVtZW50IjsgdGhlbgorICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgIGJyZWFrCisgICAgICBmaQorICAgIGRvbmUKKyAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgWyQxXT0iJHtbJDFdfSR7WyQxXTorIH0kZWxlbWVudCIKKyAgICBmaQorICBkb25lCitdKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbGliLXByZWZpeC5tNCBiL3V0aWwtbGludXgtbmctMi4xNy4yL200L2xpYi1wcmVmaXgubTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFmZjVhOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL200L2xpYi1wcmVmaXgubTQKQEAgLTAsMCArMSwxNTUgQEAKKyMgbGliLXByZWZpeC5tNCBzZXJpYWwgMyAoZ2V0dGV4dC0wLjEzKQorZG5sIENvcHlyaWdodCAoQykgMjAwMS0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorCitkbmwgRnJvbSBCcnVubyBIYWlibGUuCisKK2RubCBBQ19MSUJfQVJHX1dJVEggaXMgc3lub255bW91cyB0byBBQ19BUkdfV0lUSCBpbiBhdXRvY29uZi0yLjEzLCBhbmQKK2RubCBzaW1pbGFyIHRvIEFDX0FSR19XSVRIIGluIGF1dG9jb25mIDIuNTIuLi4yLjU3IGV4Y2VwdCB0aGF0IGlzIGRvZXNuJ3QKK2RubCByZXF1aXJlIGV4Y2Vzc2l2ZSBicmFja2V0aW5nLgoraWZkZWYoW0FDX0hFTFBfU1RSSU5HXSwKK1tBQ19ERUZVTihbQUNfTElCX0FSR19XSVRIXSwgW0FDX0FSR19XSVRIKFskMV0sW1skMl1dLFskM10sWyQ0XSldKV0sCitbQUNfREVGVU4oW0FDX11bTElCX0FSR19XSVRIXSwgW0FDX0FSR19XSVRIKFskMV0sWyQyXSxbJDNdLFskNF0pXSldKQorCitkbmwgQUNfTElCX1BSRUZJWCBhZGRzIHRvIHRoZSBDUFBGTEFHUyBhbmQgTERGTEFHUyB0aGUgZmxhZ3MgdGhhdCBhcmUgbmVlZGVkCitkbmwgdG8gYWNjZXNzIHByZXZpb3VzbHkgaW5zdGFsbGVkIGxpYnJhcmllcy4gVGhlIGJhc2ljIGFzc3VtcHRpb24gaXMgdGhhdAorZG5sIGEgdXNlciB3aWxsIHdhbnQgcGFja2FnZXMgdG8gdXNlIG90aGVyIHBhY2thZ2VzIGhlIHByZXZpb3VzbHkgaW5zdGFsbGVkCitkbmwgd2l0aCB0aGUgc2FtZSAtLXByZWZpeCBvcHRpb24uCitkbmwgVGhpcyBtYWNybyBpcyBub3QgbmVlZGVkIGlmIG9ubHkgQUNfTElCX0xJTktGTEFHUyBpcyB1c2VkIHRvIGxvY2F0ZQorZG5sIGxpYnJhcmllcywgYnV0IGlzIG90aGVyd2lzZSB2ZXJ5IGNvbnZlbmllbnQuCitBQ19ERUZVTihbQUNfTElCX1BSRUZJWF0sCitbCisgIEFDX0JFRk9SRShbJDBdLCBbQUNfTElCX0xJTktGTEFHU10pCisgIEFDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKQorICBBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCisgIEFDX1JFUVVJUkUoW0FDX0xJQl9QUkVQQVJFX1BSRUZJWF0pCisgIGRubCBCeSBkZWZhdWx0LCBsb29rIGluICRpbmNsdWRlZGlyIGFuZCAkbGliZGlyLgorICB1c2VfYWRkaXRpb25hbD15ZXMKKyAgQUNfTElCX1dJVEhfRklOQUxfUFJFRklYKFsKKyAgICBldmFsIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj1cIiRpbmNsdWRlZGlyXCIKKyAgICBldmFsIGFkZGl0aW9uYWxfbGliZGlyPVwiJGxpYmRpclwiCisgIF0pCisgIEFDX0xJQl9BUkdfV0lUSChbbGliLXByZWZpeF0sCitbICAtLXdpdGgtbGliLXByZWZpeFs9RElSXSBzZWFyY2ggZm9yIGxpYnJhcmllcyBpbiBESVIvaW5jbHVkZSBhbmQgRElSL2xpYgorICAtLXdpdGhvdXQtbGliLXByZWZpeCAgICBkb24ndCBzZWFyY2ggZm9yIGxpYnJhcmllcyBpbiBpbmNsdWRlZGlyIGFuZCBsaWJkaXJdLAorWworICAgIGlmIHRlc3QgIlgkd2l0aHZhbCIgPSAiWG5vIjsgdGhlbgorICAgICAgdXNlX2FkZGl0aW9uYWw9bm8KKyAgICBlbHNlCisgICAgICBpZiB0ZXN0ICJYJHdpdGh2YWwiID0gIlgiOyB0aGVuCisgICAgICAgIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbCisgICAgICAgICAgZXZhbCBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9XCIkaW5jbHVkZWRpclwiCisgICAgICAgICAgZXZhbCBhZGRpdGlvbmFsX2xpYmRpcj1cIiRsaWJkaXJcIgorICAgICAgICBdKQorICAgICAgZWxzZQorICAgICAgICBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9IiR3aXRodmFsL2luY2x1ZGUiCisgICAgICAgIGFkZGl0aW9uYWxfbGliZGlyPSIkd2l0aHZhbC9saWIiCisgICAgICBmaQorICAgIGZpCitdKQorICBpZiB0ZXN0ICR1c2VfYWRkaXRpb25hbCA9IHllczsgdGhlbgorICAgIGRubCBQb3RlbnRpYWxseSBhZGQgJGFkZGl0aW9uYWxfaW5jbHVkZWRpciB0byAkQ1BQRkxBR1MuCisgICAgZG5sIEJ1dCBkb24ndCBhZGQgaXQKKyAgICBkbmwgICAxLiBpZiBpdCdzIHRoZSBzdGFuZGFyZCAvdXNyL2luY2x1ZGUsCisgICAgZG5sICAgMi4gaWYgaXQncyBhbHJlYWR5IHByZXNlbnQgaW4gJENQUEZMQUdTLAorICAgIGRubCAgIDMuIGlmIGl0J3MgL3Vzci9sb2NhbC9pbmNsdWRlIGFuZCB3ZSBhcmUgdXNpbmcgR0NDIG9uIExpbnV4LAorICAgIGRubCAgIDQuIGlmIGl0IGRvZXNuJ3QgZXhpc3QgYXMgYSBkaXJlY3RvcnkuCisgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiICE9ICJYL3Vzci9pbmNsdWRlIjsgdGhlbgorICAgICAgaGF2ZWl0PQorICAgICAgZm9yIHggaW4gJENQUEZMQUdTOyBkbworICAgICAgICBBQ19MSUJfV0lUSF9GSU5BTF9QUkVGSVgoW2V2YWwgeD1cIiR4XCJdKQorICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtSSRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiOyB0aGVuCisgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgIGJyZWFrCisgICAgICAgIGZpCisgICAgICBkb25lCisgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIgPSAiWC91c3IvbG9jYWwvaW5jbHVkZSI7IHRoZW4KKyAgICAgICAgICBpZiB0ZXN0IC1uICIkR0NDIjsgdGhlbgorICAgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgICAgICAgICBsaW51eCopIGhhdmVpdD15ZXM7OworICAgICAgICAgICAgZXNhYworICAgICAgICAgIGZpCisgICAgICAgIGZpCisgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgaWYgdGVzdCAtZCAiJGFkZGl0aW9uYWxfaW5jbHVkZWRpciI7IHRoZW4KKyAgICAgICAgICAgIGRubCBSZWFsbHkgYWRkICRhZGRpdGlvbmFsX2luY2x1ZGVkaXIgdG8gJENQUEZMQUdTLgorICAgICAgICAgICAgQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9JHtDUFBGTEFHUzorIH0tSSRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiCisgICAgICAgICAgZmkKKyAgICAgICAgZmkKKyAgICAgIGZpCisgICAgZmkKKyAgICBkbmwgUG90ZW50aWFsbHkgYWRkICRhZGRpdGlvbmFsX2xpYmRpciB0byAkTERGTEFHUy4KKyAgICBkbmwgQnV0IGRvbid0IGFkZCBpdAorICAgIGRubCAgIDEuIGlmIGl0J3MgdGhlIHN0YW5kYXJkIC91c3IvbGliLAorICAgIGRubCAgIDIuIGlmIGl0J3MgYWxyZWFkeSBwcmVzZW50IGluICRMREZMQUdTLAorICAgIGRubCAgIDMuIGlmIGl0J3MgL3Vzci9sb2NhbC9saWIgYW5kIHdlIGFyZSB1c2luZyBHQ0Mgb24gTGludXgsCisgICAgZG5sICAgNC4gaWYgaXQgZG9lc24ndCBleGlzdCBhcyBhIGRpcmVjdG9yeS4KKyAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfbGliZGlyIiAhPSAiWC91c3IvbGliIjsgdGhlbgorICAgICAgaGF2ZWl0PQorICAgICAgZm9yIHggaW4gJExERkxBR1M7IGRvCisgICAgICAgIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbZXZhbCB4PVwiJHhcIl0pCisgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWC1MJGFkZGl0aW9uYWxfbGliZGlyIjsgdGhlbgorICAgICAgICAgIGhhdmVpdD15ZXMKKyAgICAgICAgICBicmVhaworICAgICAgICBmaQorICAgICAgZG9uZQorICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2xpYmRpciIgPSAiWC91c3IvbG9jYWwvbGliIjsgdGhlbgorICAgICAgICAgIGlmIHRlc3QgLW4gIiRHQ0MiOyB0aGVuCisgICAgICAgICAgICBjYXNlICRob3N0X29zIGluCisgICAgICAgICAgICAgIGxpbnV4KikgaGF2ZWl0PXllczs7CisgICAgICAgICAgICBlc2FjCisgICAgICAgICAgZmkKKyAgICAgICAgZmkKKyAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAgICAgICAgICBkbmwgUmVhbGx5IGFkZCAkYWRkaXRpb25hbF9saWJkaXIgdG8gJExERkxBR1MuCisgICAgICAgICAgICBMREZMQUdTPSIke0xERkxBR1N9JHtMREZMQUdTOisgfS1MJGFkZGl0aW9uYWxfbGliZGlyIgorICAgICAgICAgIGZpCisgICAgICAgIGZpCisgICAgICBmaQorICAgIGZpCisgIGZpCitdKQorCitkbmwgQUNfTElCX1BSRVBBUkVfUFJFRklYIGNyZWF0ZXMgdmFyaWFibGVzIGFjbF9maW5hbF9wcmVmaXgsCitkbmwgYWNsX2ZpbmFsX2V4ZWNfcHJlZml4LCBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gd2hpY2ggJHByZWZpeCBhbmQKK2RubCAkZXhlY19wcmVmaXggd2lsbCBleHBhbmQgYXQgdGhlIGVuZCBvZiB0aGUgY29uZmlndXJlIHNjcmlwdC4KK0FDX0RFRlVOKFtBQ19MSUJfUFJFUEFSRV9QUkVGSVhdLAorWworICBkbmwgVW5mb3J0dW5hdGVseSwgcHJlZml4IGFuZCBleGVjX3ByZWZpeCBnZXQgb25seSBmaW5hbGx5IGRldGVybWluZWQKKyAgZG5sIGF0IHRoZSBlbmQgb2YgY29uZmlndXJlLgorICBpZiB0ZXN0ICJYJHByZWZpeCIgPSAiWE5PTkUiOyB0aGVuCisgICAgYWNsX2ZpbmFsX3ByZWZpeD0iJGFjX2RlZmF1bHRfcHJlZml4IgorICBlbHNlCisgICAgYWNsX2ZpbmFsX3ByZWZpeD0iJHByZWZpeCIKKyAgZmkKKyAgaWYgdGVzdCAiWCRleGVjX3ByZWZpeCIgPSAiWE5PTkUiOyB0aGVuCisgICAgYWNsX2ZpbmFsX2V4ZWNfcHJlZml4PScke3ByZWZpeH0nCisgIGVsc2UKKyAgICBhY2xfZmluYWxfZXhlY19wcmVmaXg9IiRleGVjX3ByZWZpeCIKKyAgZmkKKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4IgorICBldmFsIGFjbF9maW5hbF9leGVjX3ByZWZpeD1cIiRhY2xfZmluYWxfZXhlY19wcmVmaXhcIgorICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCitdKQorCitkbmwgQUNfTElCX1dJVEhfRklOQUxfUFJFRklYKFtzdGF0ZW1lbnRdKSBldmFsdWF0ZXMgc3RhdGVtZW50LCB3aXRoIHRoZQorZG5sIHZhcmlhYmxlcyBwcmVmaXggYW5kIGV4ZWNfcHJlZml4IGJvdW5kIHRvIHRoZSB2YWx1ZXMgdGhleSB3aWxsIGhhdmUKK2RubCBhdCB0aGUgZW5kIG9mIHRoZSBjb25maWd1cmUgc2NyaXB0LgorQUNfREVGVU4oW0FDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWF0sCitbCisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKyAgcHJlZml4PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKyAgYWNsX3NhdmVfZXhlY19wcmVmaXg9IiRleGVjX3ByZWZpeCIKKyAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisgICQxCisgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisgIHByZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKK10pCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9saWJ0b29sLm00IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbGlidG9vbC5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzFjZGUxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbGlidG9vbC5tNApAQCAtMCwwICsxLDczNjAgQEAKKyMgbGlidG9vbC5tNCAtIENvbmZpZ3VyZSBsaWJ0b29sIGZvciB0aGUgaG9zdCBzeXN0ZW0uIC0qLUF1dG9jb25mLSotCisjCisjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LAorIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2CisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworbTRfZGVmaW5lKFtfTFRfQ09QWUlOR10sIFtkbmwKKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCisjICAgICAgICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgIFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tlaXQsIDE5OTYKKyMKKyMgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbC4KKyMKKyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAorIyBpcyBidWlsdCB1c2luZyBHTlUgTGlidG9vbCwgeW91IG1heSBpbmNsdWRlIHRoaXMgZmlsZSB1bmRlciB0aGUKKyMgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisjCisjIEdOVSBMaWJ0b29sIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCBHTlUgTGlidG9vbDsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIGEgY29weQorIyBjYW4gYmUgZG93bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbCwgb3IKKyMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorIyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KK10pCisKKyMgc2VyaWFsIDU2IExUX0lOSVQKKworCisjIExUX1BSRVJFUShWRVJTSU9OKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29tcGxhaW4gYW5kIGV4aXQgaWYgdGhpcyBsaWJ0b29sIHZlcnNpb24gaXMgbGVzcyB0aGF0IFZFUlNJT04uCittNF9kZWZ1bihbTFRfUFJFUkVRXSwKK1ttNF9pZihtNF92ZXJzaW9uX2NvbXBhcmUobTRfZGVmbihbTFRfUEFDS0FHRV9WRVJTSU9OXSksIFskMV0pLCAtMSwKKyAgICAgICBbbTRfZGVmYXVsdChbJDNdLAorCQkgICBbbTRfZmF0YWwoW0xpYnRvb2wgdmVyc2lvbiAkMSBvciBoaWdoZXIgaXMgcmVxdWlyZWRdLAorCQkgICAgICAgICAgICAgNjMpXSldLAorICAgICAgIFskMl0pXSkKKworCisjIF9MVF9DSEVDS19CVUlMRERJUgorIyAtLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29tcGxhaW4gaWYgdGhlIGFic29sdXRlIGJ1aWxkIGRpcmVjdG9yeSBuYW1lIGNvbnRhaW5zIHVudXN1YWwgY2hhcmFjdGVycworbTRfZGVmdW4oW19MVF9DSEVDS19CVUlMRERJUl0sCitbY2FzZSBgcHdkYCBpbgorICAqXCAqIHwgKlwJKikKKyAgICBBQ19NU0dfV0FSTihbTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIGBwd2RgXSkgOzsKK2VzYWMKK10pCisKKworIyBMVF9JTklUKFtPUFRJT05TXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbTFRfSU5JVF0sCitbQUNfUFJFUkVRKFsyLjU4XSlkbmwgV2UgdXNlIEFDX0lOQ0xVREVTX0RFRkFVTFQKK0FDX0JFRk9SRShbJDBdLCBbTFRfTEFOR10pZG5sCitBQ19CRUZPUkUoWyQwXSwgW0xUX09VVFBVVF0pZG5sCitBQ19CRUZPUkUoWyQwXSwgW0xURExfSU5JVF0pZG5sCittNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfQlVJTERESVJdKWRubAorCitkbmwgQXV0b2NvbmYgZG9lc24ndCBjYXRjaCB1bmV4cGFuZGVkIExUXyBtYWNyb3MgYnkgZGVmYXVsdDoKK200X3BhdHRlcm5fZm9yYmlkKFteXz9MVF9bQS1aX10rJF0pZG5sCittNF9wYXR0ZXJuX2FsbG93KFteKF9MVF9FT0Z8TFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PV3xMVF9NVUxUSV9NT0RVTEUpJF0pZG5sCitkbmwgYWNsb2NhbCBkb2Vzbid0IHB1bGwgbHRvcHRpb25zLm00LCBsdHN1Z2FyLm00LCBvciBsdHZlcnNpb24ubTQKK2RubCB1bmxlc3Mgd2UgcmVxdWlyZSBhbiBBQ19ERUZVTmVkIG1hY3JvOgorQUNfUkVRVUlSRShbTFRPUFRJT05TX1ZFUlNJT05dKWRubAorQUNfUkVRVUlSRShbTFRTVUdBUl9WRVJTSU9OXSlkbmwKK0FDX1JFUVVJUkUoW0xUVkVSU0lPTl9WRVJTSU9OXSlkbmwKK0FDX1JFUVVJUkUoW0xUT0JTT0xFVEVfVkVSU0lPTl0pZG5sCittNF9yZXF1aXJlKFtfTFRfUFJPR19MVE1BSU5dKWRubAorCitkbmwgUGFyc2UgT1BUSU9OUworX0xUX1NFVF9PUFRJT05TKFskMF0sIFskMV0pCisKKyMgVGhpcyBjYW4gYmUgdXNlZCB0byByZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKK0xJQlRPT0xfREVQUz0iJGx0bWFpbiIKKworIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KK0xJQlRPT0w9JyQoU0hFTEwpICQodG9wX2J1aWxkZGlyKS9saWJ0b29sJworQUNfU1VCU1QoTElCVE9PTClkbmwKKworX0xUX1NFVFVQCisKKyMgT25seSBleHBhbmQgb25jZToKK200X2RlZmluZShbTFRfSU5JVF0pCitdKSMgTFRfSU5JVAorCisjIE9sZCBuYW1lczoKK0FVX0FMSUFTKFtBQ19QUk9HX0xJQlRPT0xdLCBbTFRfSU5JVF0pCitBVV9BTElBUyhbQU1fUFJPR19MSUJUT09MXSwgW0xUX0lOSVRdKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19QUk9HX0xJQlRPT0xdLCBbXSkKK2RubCBBQ19ERUZVTihbQU1fUFJPR19MSUJUT09MXSwgW10pCisKKworIyBfTFRfQ0NfQkFTRU5BTUUoQ0MpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2FsY3VsYXRlIGNjX2Jhc2VuYW1lLiAgU2tpcCBrbm93biBjb21waWxlciB3cmFwcGVycyBhbmQgY3Jvc3MtcHJlZml4LgorbTRfZGVmdW4oW19MVF9DQ19CQVNFTkFNRV0sCitbZm9yIGNjX3RlbXAgaW4gJDEiIjsgZG8KKyAgY2FzZSAkY2NfdGVtcCBpbgorICAgIGNvbXBpbGUgfCAqW1tcXC9dXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1tcXC9dXWNjYWNoZSApIDs7CisgICAgZGlzdGNjIHwgKltbXFwvXV1kaXN0Y2MgfCBwdXJpZnkgfCAqW1tcXC9dXXB1cmlmeSApIDs7CisgICAgXC0qKSA7OworICAgICopIGJyZWFrOzsKKyAgZXNhYworZG9uZQorY2NfYmFzZW5hbWU9YCRFQ0hPICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCitdKQorCisKKyMgX0xUX0ZJTEVVVElMU19ERUZBVUxUUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEl0IGlzIG9rYXkgdG8gdXNlIHRoZXNlIGZpbGUgY29tbWFuZHMgYW5kIGFzc3VtZSB0aGV5IGhhdmUgYmVlbiBzZXQKKyMgc2Vuc2libHkgYWZ0ZXIgYG00X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKScuCittNF9kZWZ1bihbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10sCitbOiAke0NQPSJjcCAtZiJ9Cis6ICR7TVY9Im12IC1mIn0KKzogJHtSTT0icm0gLWYifQorXSkjIF9MVF9GSUxFVVRJTFNfREVGQVVMVFMKKworCisjIF9MVF9TRVRVUAorIyAtLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfU0VUVVBdLAorW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9CVUlMRF0pZG5sCitfTFRfREVDTChbXSwgW2hvc3RfYWxpYXNdLCBbMF0sIFtUaGUgaG9zdCBzeXN0ZW1dKWRubAorX0xUX0RFQ0woW10sIFtob3N0XSwgWzBdKWRubAorX0xUX0RFQ0woW10sIFtob3N0X29zXSwgWzBdKWRubAorZG5sCitfTFRfREVDTChbXSwgW2J1aWxkX2FsaWFzXSwgWzBdLCBbVGhlIGJ1aWxkIHN5c3RlbV0pZG5sCitfTFRfREVDTChbXSwgW2J1aWxkXSwgWzBdKWRubAorX0xUX0RFQ0woW10sIFtidWlsZF9vc10sIFswXSlkbmwKK2RubAorQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCitBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKK0FDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAorZG5sCitBQ19SRVFVSVJFKFtBQ19QUk9HX0xOX1NdKWRubAordGVzdCAteiAiJExOX1MiICYmIExOX1M9ImxuIC1zIgorX0xUX0RFQ0woW10sIFtMTl9TXSwgWzFdLCBbV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBsaW5rc10pZG5sCitkbmwKK0FDX1JFUVVJUkUoW0xUX0NNRF9NQVhfTEVOXSlkbmwKK19MVF9ERUNMKFtvYmpleHRdLCBbYWNfb2JqZXh0XSwgWzBdLCBbT2JqZWN0IGZpbGUgc3VmZml4IChub3JtYWxseSAibyIpXSlkbmwKK19MVF9ERUNMKFtdLCBbZXhlZXh0XSwgWzBdLCBbRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIiIpXSlkbmwKK2RubAorbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCittNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdKWRubAorbTRfcmVxdWlyZShbX0xUX0NNRF9SRUxPQURdKWRubAorbTRfcmVxdWlyZShbX0xUX0NIRUNLX01BR0lDX01FVEhPRF0pZG5sCittNF9yZXF1aXJlKFtfTFRfQ01EX09MRF9BUkNISVZFXSlkbmwKK200X3JlcXVpcmUoW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdKWRubAorCitfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbCisjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyCisjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklULgoraWYgdGVzdCAtbiAiXCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorZmkKK10pCitpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgorICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKK2ZpCisKK19MVF9DSEVDS19PQkpESVIKKworbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCitfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorCitjYXNlICRob3N0X29zIGluCithaXgzKikKKyAgIyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBzb21lCisgICMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcworICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCisgIGlmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgorICAgIENPTExFQ1RfTkFNRVM9CisgICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKKyAgZmkKKyAgOzsKK2VzYWMKKworIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcworIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtbImAkXFxdXVwpL1xcXDEvZycKKworIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCitkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbWyJgXFxdXVwpL1xcXDEvZycKKworIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxsIHZhcmlhYmxlIGluIGEKKyMgZG91YmxlX3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cnCisKKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCitkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Q9J3MvJ1wnJy8nXCdcXFxcXFxcJ1wnJy9nJworCisjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKK25vX2dsb2Jfc3Vic3Q9J3MvXCovXFxcKi9nJworCisjIEdsb2JhbCB2YXJpYWJsZXM6CitvZmlsZT1saWJ0b29sCitjYW5fYnVpbGRfc2hhcmVkPXllcworCisjIEFsbCBrbm93biBsaW5rZXJzIHJlcXVpcmUgYSBgLmEnIGFyY2hpdmUgZm9yIHN0YXRpYyBsaW5raW5nIChleGNlcHQgTVNWQywKKyMgd2hpY2ggbmVlZHMgJy5saWInKS4KK2xpYmV4dD1hCisKK3dpdGhfZ251X2xkPSIkbHRfY3ZfcHJvZ19nbnVfbGQiCisKK29sZF9DQz0iJENDIgorb2xkX0NGTEFHUz0iJENGTEFHUyIKKworIyBTZXQgc2FuZSBkZWZhdWx0cyBmb3IgdmFyaW91cyB2YXJpYWJsZXMKK3Rlc3QgLXogIiRDQyIgJiYgQ0M9Y2MKK3Rlc3QgLXogIiRMVENDIiAmJiBMVENDPSRDQwordGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZMQUdTCit0ZXN0IC16ICIkTEQiICYmIExEPWxkCit0ZXN0IC16ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bworCitfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisKKyMgT25seSBwZXJmb3JtIHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJlcyBpdAordGVzdCAteiAiJE1BR0lDX0NNRCIgJiYgTUFHSUNfQ01EPWZpbGUKK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCitmaWxlX21hZ2ljKikKKyAgaWYgdGVzdCAiJGZpbGVfbWFnaWNfY21kIiA9ICckTUFHSUNfQ01EJzsgdGhlbgorICAgIF9MVF9QQVRIX01BR0lDCisgIGZpCisgIDs7Citlc2FjCisKKyMgVXNlIEMgZm9yIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gaW4gdGhlIGxpYnRvb2wgc2NyaXB0CitMVF9TVVBQT1JURURfVEFHKFtDQ10pCitfTFRfTEFOR19DX0NPTkZJRworX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKK19MVF9DT05GSUdfQ09NTUFORFMKK10pIyBfTFRfU0VUVVAKKworCisjIF9MVF9QUk9HX0xUTUFJTgorIyAtLS0tLS0tLS0tLS0tLS0KKyMgTm90ZSB0aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgYm90aCBmcm9tIGBjb25maWd1cmUnLCBhbmQgYGNvbmZpZy5zdGF0dXMnCisjIG5vdyB0aGF0IHdlIHVzZSBBQ19DT05GSUdfQ09NTUFORFMgdG8gZ2VuZXJhdGUgbGlidG9vbC4gIE5vdGFibHksCisjIGBjb25maWcuc3RhdHVzJyBoYXMgbm8gdmFsdWUgZm9yIGFjX2F1eF9kaXIgdW5sZXNzIHdlIGFyZSB1c2luZyBBdXRvbWFrZSwKKyMgc28gd2UgcGFzcyBhIGNvcHkgYWxvbmcgdG8gbWFrZSBzdXJlIGl0IGhhcyBhIHNlbnNpYmxlIHZhbHVlIGFueXdheS4KK200X2RlZnVuKFtfTFRfUFJPR19MVE1BSU5dLAorW200X2lmZGVmKFtBQ19SRVFVSVJFX0FVWF9GSUxFXSwgW0FDX1JFUVVJUkVfQVVYX0ZJTEUoW2x0bWFpbi5zaF0pXSlkbmwKK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFthY19hdXhfZGlyPSckYWNfYXV4X2RpciddKQorbHRtYWluPSIkYWNfYXV4X2Rpci9sdG1haW4uc2giCitdKSMgX0xUX1BST0dfTFRNQUlOCisKKworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgQWNjdW11bGF0ZSBjb2RlIGZvciBjcmVhdGluZyBsaWJ0b29sLiAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworCisjIFNvIHRoYXQgd2UgY2FuIHJlY3JlYXRlIGEgZnVsbCBsaWJ0b29sIHNjcmlwdCBpbmNsdWRpbmcgYWRkaXRpb25hbAorIyB0YWdzLCB3ZSBhY2N1bXVsYXRlIHRoZSBjaHVua3Mgb2YgY29kZSB0byBzZW5kIHRvIEFDX0NPTkZJR19DT01NQU5EUworIyBpbiBtYWNyb3MgYW5kIHRoZW4gbWFrZSBhIHNpbmdsZSBjYWxsIGF0IHRoZSBlbmQgdXNpbmcgdGhlIGBsaWJ0b29sJworIyBsYWJlbC4KKworCisjIF9MVF9DT05GSUdfTElCVE9PTF9JTklUKFtJTklULUNPTU1BTkRTXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBSZWdpc3RlciBJTklULUNPTU1BTkRTIHRvIGJlIHBhc3NlZCB0byBBQ19DT05GSUdfQ09NTUFORFMgbGF0ZXIuCittNF9kZWZpbmUoW19MVF9DT05GSUdfTElCVE9PTF9JTklUXSwKK1ttNF9pZnZhbChbJDFdLAorICAgICAgICAgIFttNF9hcHBlbmQoW19MVF9PVVRQVVRfTElCVE9PTF9JTklUXSwKKyAgICAgICAgICAgICAgICAgICAgIFskMQorXSldKV0pCisKKyMgSW5pdGlhbGl6ZS4KK200X2RlZmluZShbX0xUX09VVFBVVF9MSUJUT09MX0lOSVRdKQorCisKKyMgX0xUX0NPTkZJR19MSUJUT09MKFtDT01NQU5EU10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBSZWdpc3RlciBDT01NQU5EUyB0byBiZSBwYXNzZWQgdG8gQUNfQ09ORklHX0NPTU1BTkRTIGxhdGVyLgorbTRfZGVmaW5lKFtfTFRfQ09ORklHX0xJQlRPT0xdLAorW200X2lmdmFsKFskMV0sCisgICAgICAgICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSwKKyAgICAgICAgICAgICAgICAgICAgIFskMQorXSldKV0pCisKKyMgSW5pdGlhbGl6ZS4KK200X2RlZmluZShbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSkKKworCisjIF9MVF9DT05GSUdfU0FWRV9DT01NQU5EUyhbQ09NTUFORFNdLCBbSU5JVF9DT01NQU5EU10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTXSwKK1tfTFRfQ09ORklHX0xJQlRPT0woWyQxXSkKK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFskMl0pCitdKQorCisKKyMgX0xUX0ZPUk1BVF9DT01NRU5UKFtDT01NRU5UXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQWRkIGxlYWRpbmcgY29tbWVudCBtYXJrcyB0byB0aGUgc3RhcnQgb2YgZWFjaCBsaW5lLCBhbmQgYSB0cmFpbGluZworIyBmdWxsLXN0b3AgdG8gdGhlIHdob2xlIGNvbW1lbnQgaWYgb25lIGlzIG5vdCBwcmVzZW50IGFscmVhZHkuCittNF9kZWZpbmUoW19MVF9GT1JNQVRfQ09NTUVOVF0sCitbbTRfaWZ2YWwoWyQxXSwgWworbTRfYnBhdHN1YnN0KFttNF9icGF0c3Vic3QoWyQxXSwgW14gKl0sIFsjIF0pXSwKKyAgICAgICAgICAgICAgW1snYCRcXV0sIFtcXFwmXSldbTRfYm1hdGNoKFskMV0sIFtbIT8uXSRdLCBbXSwgWy5dKQorKV0pCisKKworCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKyMjIEZJWE1FOiBFbGltaW5hdGUgVkFSTkFNRSAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisKKworIyBfTFRfREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05dLCBbSVMtVEFHR0VEP10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ09ORklHTkFNRSBpcyB0aGUgbmFtZSBnaXZlbiB0byB0aGUgdmFsdWUgaW4gdGhlIGxpYnRvb2wgc2NyaXB0LgorIyBWQVJOQU1FIGlzIHRoZSAoYmFzZSkgbmFtZSB1c2VkIGluIHRoZSBjb25maWd1cmUgc2NyaXB0LgorIyBWQUxVRSBtYXkgYmUgMCwgMSBvciAyIGZvciBhIGNvbXB1dGVkIHF1b3RlIGVzY2FwZWQgdmFsdWUgYmFzZWQgb24KKyMgVkFSTkFNRS4gIEFueSBvdGhlciB2YWx1ZSB3aWxsIGJlIHVzZWQgZGlyZWN0bHkuCittNF9kZWZpbmUoW19MVF9ERUNMXSwKK1tsdF9pZl9hcHBlbmRfdW5pcShbbHRfZGVjbF92YXJuYW1lc10sIFskMl0sIFssIF0sCisgICAgW2x0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwgW2xpYnRvb2xfbmFtZV0sCisJW200X2lmdmFsKFskMV0sIFskMV0sIFskMl0pXSkKKyAgICBsdF9kaWN0X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sIFt2YWx1ZV0sIFskM10pCisgICAgbTRfaWZ2YWwoWyQ0XSwKKwlbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbZGVzY3JpcHRpb25dLCBbJDRdKV0pCisgICAgbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLAorCVt0YWdnZWQ/XSwgW200X2lmdmFsKFskNV0sIFt5ZXNdLCBbbm9dKV0pXSkKK10pCisKKworIyBfTFRfVEFHREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05dKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtfTFRfVEFHREVDTF0sIFtfTFRfREVDTChbJDFdLCBbJDJdLCBbJDNdLCBbJDRdLCBbeWVzXSldKQorCisKKyMgbHRfZGVjbF90YWdfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtsdF9kZWNsX3RhZ192YXJuYW1lc10sCitbX2x0X2RlY2xfZmlsdGVyKFt0YWdnZWQ/XSwgW3llc10sICRAKV0pCisKKworIyBfbHRfZGVjbF9maWx0ZXIoU1VCS0VZLCBWQUxVRSwgW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW19sdF9kZWNsX2ZpbHRlcl0sCitbbTRfY2FzZShbJCNdLAorICBbMF0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkI10pXSwKKyAgWzFdLCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCM6ICQxXSldLAorICBbMl0sIFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0XSwgWyQxXSwgWyQyXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpXSwKKyAgWzNdLCBbbHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sIFskMV0sIFskMl0sIFskM10sIGx0X2RlY2xfdmFybmFtZXMpXSwKKyAgW2x0X2RpY3RfZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCAkQCldKVtdZG5sCitdKQorCisKKyMgbHRfZGVjbF9xdW90ZV92YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbbHRfZGVjbF9xdW90ZV92YXJuYW1lc10sCitbX2x0X2RlY2xfZmlsdGVyKFt2YWx1ZV0sIFsxXSwgJEApXSkKKworCisjIGx0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbbHRfZGVjbF9kcXVvdGVfdmFybmFtZXNdLAorW19sdF9kZWNsX2ZpbHRlcihbdmFsdWVdLCBbMl0sICRAKV0pCisKKworIyBsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZChbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW2x0X2RlY2xfdmFybmFtZXNfdGFnZ2VkXSwKK1ttNF9hc3NlcnQoWyQjIDw9IDJdKWRubAorXyQwKG00X3F1b3RlKG00X2RlZmF1bHQoWyQxXSwgW1ssIF1dKSksCisgICAgbTRfaWZ2YWwoWyQyXSwgW1skMl1dLCBbbTRfZHF1b3RlKGx0X2RlY2xfdGFnX3Zhcm5hbWVzKV0pLAorICAgIG00X3NwbGl0KG00X25vcm1hbGl6ZShtNF9xdW90ZShfTFRfVEFHUykpLCBbIF0pKV0pCittNF9kZWZpbmUoW19sdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZF0sCitbbTRfaWZ2YWwoWyQzXSwgW2x0X2NvbWJpbmUoWyQxXSwgWyQyXSwgW19dLCAkMyldKV0pCisKKworIyBsdF9kZWNsX2FsbF92YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW2x0X2RlY2xfYWxsX3Zhcm5hbWVzXSwKK1tfJDAobTRfcXVvdGUobTRfZGVmYXVsdChbJDFdLCBbWywgXV0pKSwKKyAgICAgbTRfaWYoWyQyXSwgW10sCisJICAgbTRfcXVvdGUobHRfZGVjbF92YXJuYW1lcyksCisJbTRfcXVvdGUobTRfc2hpZnQoJEApKSkpW11kbmwKK10pCittNF9kZWZpbmUoW19sdF9kZWNsX2FsbF92YXJuYW1lc10sCitbbHRfam9pbigkQCwgbHRfZGVjbF92YXJuYW1lc190YWdnZWQoWyQxXSwKKwkJCWx0X2RlY2xfdGFnX3Zhcm5hbWVzKFtbLCBdXSwgbTRfc2hpZnQoJEApKSkpZG5sCitdKQorCisKKyMgX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRShbVkFSTkFNRV0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBRdW90ZSBhIHZhcmlhYmxlIHZhbHVlLCBhbmQgZm9yd2FyZCBpdCB0byBgY29uZmlnLnN0YXR1cycgc28gdGhhdCBpdHMKKyMgZGVjbGFyYXRpb24gdGhlcmUgd2lsbCBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIGluIGBjb25maWd1cmUnLiAgVkFSTkFNRQorIyBtdXN0IGhhdmUgYSBzaW5nbGUgcXVvdGUgZGVsaW1pdGVkIHZhbHVlIGZvciB0aGlzIHRvIHdvcmsuCittNF9kZWZpbmUoW19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkVdLAorWyQxPSdgJEVDSE8gIlgkXVskMSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJ10pCisKKworIyBfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFdlIGRlbGltaXQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzIHdpdGggc2luZ2xlIHF1b3Rlcywgc28gd2hlbgorIyB3ZSB3cml0ZSB0aGVtIHRvIGNvbmZpZy5zdGF0dXMsIHdlIGhhdmUgdG8gYmUgc3VyZSB0byBxdW90ZSBhbGwKKyMgZW1iZWRkZWQgc2luZ2xlIHF1b3RlcyBwcm9wZXJseS4gIEluIGNvbmZpZ3VyZSwgdGhpcyBtYWNybyBleHBhbmRzCisjIGVhY2ggdmFyaWFibGUgZGVjbGFyZWQgd2l0aCBfTFRfREVDTCAoYW5kIF9MVF9UQUdERUNMKSBpbnRvOgorIworIyAgICA8dmFyPj0nYCRFQ0hPICJYJDx2YXI+IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCittNF9kZWZ1bihbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSQVRJT05TXSwKK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVjbF9hbGxfdmFybmFtZXMpLAorICAgIFttNF9uKFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJFKF9sdF92YXIpXSldKV0pCisKKworIyBfTFRfTElCVE9PTF9UQUdTCisjIC0tLS0tLS0tLS0tLS0tLS0KKyMgT3V0cHV0IGNvbW1lbnQgYW5kIGxpc3Qgb2YgdGFncyBzdXBwb3J0ZWQgYnkgdGhlIHNjcmlwdAorbTRfZGVmdW4oW19MVF9MSUJUT09MX1RBR1NdLAorW19MVF9GT1JNQVRfQ09NTUVOVChbVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0XSlkbmwKK2F2YWlsYWJsZV90YWdzPSJfTFRfVEFHUyJkbmwKK10pCisKKworIyBfTFRfTElCVE9PTF9ERUNMQVJFKFZBUk5BTUUsIFtUQUddKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBFeHRyYWN0IHRoZSBkaWN0aW9uYXJ5IHZhbHVlcyBmb3IgVkFSTkFNRSAob3B0aW9uYWxseSB3aXRoIFRBRykgYW5kCisjIGV4cGFuZCB0byBhIGNvbW1lbnRlZCBzaGVsbCB2YXJpYWJsZSBzZXR0aW5nOgorIworIyAgICAjIFNvbWUgY29tbWVudCBhYm91dCB3aGF0IFZBUiBpcyBmb3IuCisjICAgIHZpc2libGVfbmFtZT0kbHRfaW50ZXJuYWxfbmFtZQorbTRfZGVmaW5lKFtfTFRfTElCVE9PTF9ERUNMQVJFXSwKK1tfTFRfRk9STUFUX0NPTU1FTlQobTRfcXVvdGUobHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwKKwkJCQkJICAgW2Rlc2NyaXB0aW9uXSkpKVtdZG5sCittNF9wdXNoZGVmKFtfbGlidG9vbF9uYW1lXSwKKyAgICBtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbbGlidG9vbF9uYW1lXSkpKVtdZG5sCittNF9jYXNlKG00X3F1b3RlKGx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0pKSwKKyAgICBbMF0sIFtfbGlidG9vbF9uYW1lPVskXSQxXSwKKyAgICBbMV0sIFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKKyAgICBbMl0sIFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKKyAgICBbX2xpYnRvb2xfbmFtZT1sdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbdmFsdWVdKV0pW11kbmwKK200X2lmdmFsKFskMl0sIFtfJDJdKVtdbTRfcG9wZGVmKFtfbGlidG9vbF9uYW1lXSlbXWRubAorXSkKKworCisjIF9MVF9MSUJUT09MX0NPTkZJR19WQVJTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFByb2R1Y2UgY29tbWVudGVkIGRlY2xhcmF0aW9ucyBvZiBub24tdGFnZ2VkIGxpYnRvb2wgY29uZmlnIHZhcmlhYmxlcworIyBzdWl0YWJsZSBmb3IgaW5zZXJ0aW9uIGluIHRoZSBMSUJUT09MIENPTkZJRyBzZWN0aW9uIG9mIHRoZSBgbGlidG9vbCcKKyMgc2NyaXB0LiAgVGFnZ2VkIGxpYnRvb2wgY29uZmlnIHZhcmlhYmxlcyAoZXZlbiBmb3IgdGhlIExJQlRPT0wgQ09ORklHCisjIHNlY3Rpb24pIGFyZSBwcm9kdWNlZCBieSBfTFRfTElCVE9PTF9UQUdfVkFSUy4KK200X2RlZnVuKFtfTFRfTElCVE9PTF9DT05GSUdfVkFSU10sCitbbTRfZm9yZWFjaChbX2x0X3Zhcl0sCisgICAgbTRfcXVvdGUoX2x0X2RlY2xfZmlsdGVyKFt0YWdnZWQ/XSwgW25vXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpKSwKKyAgICBbbTRfbihbX0xUX0xJQlRPT0xfREVDTEFSRShfbHRfdmFyKV0pXSldKQorCisKKyMgX0xUX0xJQlRPT0xfVEFHX1ZBUlMoVEFHKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW19MVF9MSUJUT09MX1RBR19WQVJTXSwKK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVjbF90YWdfdmFybmFtZXMpLAorICAgIFttNF9uKFtfTFRfTElCVE9PTF9ERUNMQVJFKF9sdF92YXIsIFskMV0pXSldKV0pCisKKworIyBfTFRfVEFHVkFSKFZBUk5BTUUsIFtUQUdOQU1FXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW19MVF9UQUdWQVJdLCBbbTRfaWZ2YWwoWyQyXSwgWyQxXyQyXSwgWyQxXSldKQorCisKKyMgX0xUX0NPTkZJR19DT01NQU5EUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tCisjIFNlbmQgYWNjdW11bGF0ZWQgb3V0cHV0IHRvICRDT05GSUdfU1RBVFVTLiAgVGhhbmtzIHRvIHRoZSBsaXN0cyBvZgorIyB2YXJpYWJsZXMgZm9yIHNpbmdsZSBhbmQgZG91YmxlIHF1b3RlIGVzY2FwaW5nIHdlIHNhdmVkIGZyb20gY2FsbHMKKyMgdG8gX0xUX0RFQ0wsIHdlIGNhbiBwdXQgcXVvdGUgZXNjYXBlZCB2YXJpYWJsZXMgZGVjbGFyYXRpb25zCisjIGludG8gYGNvbmZpZy5zdGF0dXMnLCBhbmQgdGhlbiB0aGUgc2hlbGwgY29kZSB0byBxdW90ZSBlc2NhcGUgdGhlbSBpbgorIyBmb3IgbG9vcHMgaW4gYGNvbmZpZy5zdGF0dXMnLiAgRmluYWxseSwgYW55IGFkZGl0aW9uYWwgY29kZSBhY2N1bXVsYXRlZAorIyBmcm9tIGNhbGxzIHRvIF9MVF9DT05GSUdfTElCVE9PTF9JTklUIGlzIGV4cGFuZGVkLgorbTRfZGVmdW4oW19MVF9DT05GSUdfQ09NTUFORFNdLAorW0FDX1BST1ZJREVfSUZFTFNFKFtMVF9PVVRQVVRdLAorCWRubCBJZiB0aGUgbGlidG9vbCBnZW5lcmF0aW9uIGNvZGUgaGFzIGJlZW4gcGxhY2VkIGluICRDT05GSUdfTFQsCisJZG5sIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQgYWxsIG92ZXIgYWdhaW4gaW50byBjb25maWcuc3RhdHVzLAorCWRubCB0aGVuIHdlIHdpbGwgaGF2ZSBjb25maWcuc3RhdHVzIHJ1biAkQ09ORklHX0xUIGxhdGVyLCBzbyBpdAorCWRubCBuZWVkcyB0byBrbm93IHdoYXQgbmFtZSBpcyBzdG9yZWQgdGhlcmU6CisgICAgICAgIFtBQ19DT05GSUdfQ09NTUFORFMoW2xpYnRvb2xdLAorICAgICAgICAgICAgWyRTSEVMTCAkQ09ORklHX0xUIHx8IEFTX0VYSVQoMSldLCBbQ09ORklHX0xUPSckQ09ORklHX0xUJ10pXSwKKyAgICBkbmwgSWYgdGhlIGxpYnRvb2wgZ2VuZXJhdGlvbiBjb2RlIGlzIGRlc3RpbmVkIGZvciBjb25maWcuc3RhdHVzLAorICAgIGRubCBleHBhbmQgdGhlIGFjY3VtdWxhdGVkIGNvbW1hbmRzIGFuZCBpbml0IGNvZGUgbm93OgorICAgIFtBQ19DT05GSUdfQ09NTUFORFMoW2xpYnRvb2xdLAorICAgICAgICBbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSwgW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUXSldKQorXSkjX0xUX0NPTkZJR19DT01NQU5EUworCisKKyMgSW5pdGlhbGl6ZS4KK200X2RlZmluZShbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lOSVRdLAorWworCisjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAorIyBpZiBDRFBBVEggaXMgc2V0LgorKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorCitzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCitkb3VibGVfcXVvdGVfc3Vic3Q9JyRkb3VibGVfcXVvdGVfc3Vic3QnCitkZWxheV92YXJpYWJsZV9zdWJzdD0nJGRlbGF5X3ZhcmlhYmxlX3N1YnN0JworX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSQVRJT05TCitMVENDPSckTFRDQycKK0xUQ0ZMQUdTPSckTFRDRkxBR1MnCitjb21waWxlcj0nJGNvbXBpbGVyX0RFRkFVTFQnCisKKyMgUXVvdGUgZXZhbGVkIHN0cmluZ3MuCitmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtbIFwKK11dLCBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKTsgZG8KKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KKyAgICAqW1tcXFxcXFxcYFxcIlxcXCRdXSopCisgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisgICAgICA7OworICAgICopCisgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKyAgICAgIDs7CisgICAgZXNhYworZG9uZQorCisjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCitmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtbIFwKK11dLCBsdF9kZWNsX2RxdW90ZV92YXJuYW1lcyk7IGRvCisgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyAiWFxcXFxcJFwkdmFyIlxgIGluCisgICAgKltbXFxcXFxcXGBcXCJcXFwkXV0qKQorICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwkRUNITyBcXCJYXFxcJFwkdmFyXFwiIHwgXFxcJFhzZWQgLWUgXFwiXFxcJGRvdWJsZV9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRkZWxheV92YXJpYWJsZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgorICAgICAgOzsKKyAgICAqKQorICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCisgICAgICA7OworICAgIGVzYWMKK2RvbmUKKworIyBGaXgtdXAgZmFsbGJhY2sgZWNobyBpZiBpdCB3YXMgbWFuZ2xlZCBieSB0aGUgYWJvdmUgcXVvdGluZyBydWxlcy4KK2Nhc2UgXCRsdF9FQ0hPIGluCisqJ1xcXFskXTAgLS1mYWxsYmFjay1lY2hvIicpZG5sICIKKyAgbHRfRUNITz1cYFwkRUNITyAiWFwkbHRfRUNITyIgfCBcJFhzZWQgLWUgJ3MvXFxcXFxcXFxcXFxcXFxcWyRdMCAtLWZhbGxiYWNrLWVjaG8iXFskXS9cWyRdMCAtLWZhbGxiYWNrLWVjaG8iLydcYAorICA7OworZXNhYworCitfTFRfT1VUUFVUX0xJQlRPT0xfSU5JVAorXSkKKworCisjIExUX09VVFBVVAorIyAtLS0tLS0tLS0KKyMgVGhpcyBtYWNybyBhbGxvd3MgZWFybHkgZ2VuZXJhdGlvbiBvZiB0aGUgbGlidG9vbCBzY3JpcHQgKGJlZm9yZQorIyBBQ19PVVRQVVQgaXMgY2FsbGVkKSwgaW5jYXNlIGl0IGlzIHVzZWQgaW4gY29uZmlndXJlIGZvciBjb21waWxhdGlvbgorIyB0ZXN0cy4KK0FDX0RFRlVOKFtMVF9PVVRQVVRdLAorWzogJHtDT05GSUdfTFQ9Li9jb25maWcubHR9CitBQ19NU0dfTk9USUNFKFtjcmVhdGluZyAkQ09ORklHX0xUXSkKK2NhdCA+IiRDT05GSUdfTFQiIDw8X0xURU9GCisjISAkU0hFTEwKKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KKyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSBhIGxpYnRvb2wgc3R1YiB3aXRoIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCisKK2x0X2NsX3NpbGVudD1mYWxzZQorU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KK19MVEVPRgorCitjYXQgPj4iJENPTkZJR19MVCIgPDxcX0xURU9GCitBU19TSEVMTF9TQU5JVElaRQorX0FTX1BSRVBBUkUKKworZXhlYyBBU19NRVNTQUdFX0ZEPiYxCitleGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCit7CisgIGVjaG8KKyAgQVNfQk9YKFtSdW5uaW5nICRhc19tZS5dKQorfSA+JkFTX01FU1NBR0VfTE9HX0ZECisKK2x0X2NsX2hlbHA9IlwKK1xgJGFzX21lJyBjcmVhdGVzIGEgbG9jYWwgbGlidG9vbCBzdHViIGZyb20gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiwKK2ZvciB1c2UgaW4gZnVydGhlciBjb25maWd1cmUgdGltZSB0ZXN0cyBiZWZvcmUgdGhlIHJlYWwgbGlidG9vbCBpcworZ2VuZXJhdGVkLgorCitVc2FnZTogJFswXSBbW09QVElPTlNdXQorCisgIC1oLCAtLWhlbHAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAorICAtViwgLS12ZXJzaW9uICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorICAtcSwgLS1xdWlldCAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1lc3NhZ2VzCisgIC1kLCAtLWRlYnVnICAgICBkb24ndCByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzCisKK1JlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4iCisKK2x0X2NsX3ZlcnNpb249IlwKK200X2lmc2V0KFtBQ19QQUNLQUdFX05BTUVdLCBbQUNfUEFDS0FHRV9OQU1FIF0pY29uZmlnLmx0W11kbmwKK200X2lmc2V0KFtBQ19QQUNLQUdFX1ZFUlNJT05dLCBbIEFDX1BBQ0tBR0VfVkVSU0lPTl0pCitjb25maWd1cmVkIGJ5ICRbMF0sIGdlbmVyYXRlZCBieSBtNF9QQUNLQUdFX1NUUklORy4KKworQ29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorVGhpcyBjb25maWcubHQgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KK2dpdmVzIHVubGltaXRlZCBwZXJtaXNpb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKKword2hpbGUgdGVzdCAkWyNdICE9IDAKK2RvCisgIGNhc2UgJFsxXSBpbgorICAgIC0tdmVyc2lvbiB8IC0tdiogfCAtViApCisgICAgICBlY2hvICIkbHRfY2xfdmVyc2lvbiI7IGV4aXQgMCA7OworICAgIC0taGVscCB8IC0taCogfCAtaCApCisgICAgICBlY2hvICIkbHRfY2xfaGVscCI7IGV4aXQgMCA7OworICAgIC0tZGVidWcgfCAtLWQqIHwgLWQgKQorICAgICAgZGVidWc9OiA7OworICAgIC0tcXVpZXQgfCAtLXEqIHwgLS1zaWxlbnQgfCAtLXMqIHwgLXEgKQorICAgICAgbHRfY2xfc2lsZW50PTogOzsKKworICAgIC0qKSBBQ19NU0dfRVJST1IoW3VucmVjb2duaXplZCBvcHRpb246ICRbMV0KK1RyeSBcYCRbMF0gLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5dKSA7OworCisgICAgKikgQUNfTVNHX0VSUk9SKFt1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICRbMV0KK1RyeSBcYCRbMF0gLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5dKSA7OworICBlc2FjCisgIHNoaWZ0Citkb25lCisKK2lmICRsdF9jbF9zaWxlbnQ7IHRoZW4KKyAgZXhlYyBBU19NRVNTQUdFX0ZEPi9kZXYvbnVsbAorZmkKK19MVEVPRgorCitjYXQgPj4iJENPTkZJR19MVCIgPDxfTFRFT0YKK19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUCitfTFRFT0YKKworY2F0ID4+IiRDT05GSUdfTFQiIDw8XF9MVEVPRgorQUNfTVNHX05PVElDRShbY3JlYXRpbmcgJG9maWxlXSkKK19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EUworQVNfRVhJVCgwKQorX0xURU9GCitjaG1vZCAreCAiJENPTkZJR19MVCIKKworIyBjb25maWd1cmUgaXMgd3JpdGluZyB0byBjb25maWcubG9nLCBidXQgY29uZmlnLmx0IGRvZXMgaXRzIG93biByZWRpcmVjdGlvbiwKKyMgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2csIHdoaWNoIGZhaWxzIG9uIERPUywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBrZXB0CisjIG9wZW4gYnkgY29uZmlndXJlLiAgSGVyZSB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsIGVmZmVjdGl2ZWx5IGNsb3NpbmcKKyMgY29uZmlnLmxvZywgc28gaXQgY2FuIGJlIHByb3Blcmx5IChyZSlvcGVuZWQgYW5kIGFwcGVuZGVkIHRvIGJ5IGNvbmZpZy5sdC4KK2lmIHRlc3QgIiRub19jcmVhdGUiICE9IHllczsgdGhlbgorICBsdF9jbF9zdWNjZXNzPToKKyAgdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYKKyAgICBsdF9jb25maWdfbHRfYXJncz0iJGx0X2NvbmZpZ19sdF9hcmdzIC0tcXVpZXQiCisgIGV4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+L2Rldi9udWxsCisgICRTSEVMTCAiJENPTkZJR19MVCIgJGx0X2NvbmZpZ19sdF9hcmdzIHx8IGx0X2NsX3N1Y2Nlc3M9ZmFsc2UKKyAgZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxvZworICAkbHRfY2xfc3VjY2VzcyB8fCBBU19FWElUKDEpCitmaQorXSkjIExUX09VVFBVVAorCisKKyMgX0xUX0NPTkZJRyhUQUcpCisjIC0tLS0tLS0tLS0tLS0tLQorIyBJZiBUQUcgaXMgdGhlIGJ1aWx0LWluIHRhZywgY3JlYXRlIGFuIGluaXRpYWwgbGlidG9vbCBzY3JpcHQgd2l0aCBhCisjIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmcm9tIHRoZSB1bnRhZ2dlZCBjb25maWcgdmFycy4gIE90aGVyd2lzZSBhZGQgY29kZQorIyB0byBjb25maWcuc3RhdHVzIGZvciBhcHBlbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gbmFtZWQgYnkgVEFHIGZyb20gdGhlCisjIG1hdGNoaW5nIHRhZ2dlZCBjb25maWcgdmFycy4KK200X2RlZnVuKFtfTFRfQ09ORklHXSwKK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKK19MVF9DT05GSUdfU0FWRV9DT01NQU5EUyhbCisgIG00X2RlZmluZShbX0xUX1RBR10sIG00X2lmKFskMV0sIFtdLCBbQ10sIFskMV0pKWRubAorICBtNF9pZihfTFRfVEFHLCBbQ10sIFsKKyAgICAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyCisgICAgIyBjb21tYW5kcyB0aHJvdWdoIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCisgICAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KKyAgICAgIHNldG9wdCBOT19HTE9CX1NVQlNUCisgICAgZmkKKworICAgIGNmZ2ZpbGU9IiR7b2ZpbGV9VCIKKyAgICB0cmFwICIkUk0gXCIkY2ZnZmlsZVwiOyBleGl0IDEiIDEgMiAxNQorICAgICRSTSAiJGNmZ2ZpbGUiCisKKyAgICBjYXQgPDxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKyMhICRTSEVMTAorCisjIGAkRUNITyAiJG9maWxlIiB8IHNlZCAncyVeLiovJSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgorIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKKyMgTk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxvb2sgYXQgbHRtYWluLnNoLgorIworX0xUX0NPUFlJTkcKK19MVF9MSUJUT09MX1RBR1MKKworIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKK19MVF9MSUJUT09MX0NPTkZJR19WQVJTCitfTFRfTElCVE9PTF9UQUdfVkFSUworIyAjIyMgRU5EIExJQlRPT0wgQ09ORklHCisKK19MVF9FT0YKKworICBjYXNlICRob3N0X29zIGluCisgIGFpeDMqKQorICAgIGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKyMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQorIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCisjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCitpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KKyAgQ09MTEVDVF9OQU1FUz0KKyAgZXhwb3J0IENPTExFQ1RfTkFNRVMKK2ZpCitfTFRfRU9GCisgICAgOzsKKyAgZXNhYworCisgIF9MVF9QUk9HX0xUTUFJTgorCisgICMgV2UgdXNlIHNlZCBpbnN0ZWFkIG9mIGNhdCBiZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBjb25mdXNlZCBpZgorICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCisgICMgdGV4dCBtb2RlLCBpdCBwcm9wZXJseSBjb252ZXJ0cyBsaW5lcyB0byBDUi9MRi4gIFRoaXMgYmFzaCBwcm9ibGVtCisgICMgaXMgcmVwb3J0ZWRseSBmaXhlZCwgYnV0IHdoeSBub3QgcnVuIG9uIG9sZCB2ZXJzaW9ucyB0b28/CisgIHNlZCAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS9xJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKKworICBfTFRfUFJPR19YU0lfU0hFTExGTlMKKworICBzZWQgLW4gJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvLCRwJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKKworICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8CisgICAgKHJtIC1mICIkb2ZpbGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKKyAgY2htb2QgK3ggIiRvZmlsZSIKK10sCitbY2F0IDw8X0xUX0VPRiA+PiAiJG9maWxlIgorCitkbmwgVW5mb3J0dW5hdGVseSB3ZSBoYXZlIHRvIHVzZSAkMSBoZXJlLCBzaW5jZSBfTFRfVEFHIGlzIG5vdCBleHBhbmRlZAorZG5sIGluIGEgY29tbWVudCAoaWUgYWZ0ZXIgYSAjKS4KKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJDEKK19MVF9MSUJUT09MX1RBR19WQVJTKF9MVF9UQUcpCisjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkMQorX0xUX0VPRgorXSlkbmwgL200X2lmCitdLAorW200X2lmKFskMV0sIFtdLCBbCisgICAgUEFDS0FHRT0nJFBBQ0tBR0UnCisgICAgVkVSU0lPTj0nJFZFUlNJT04nCisgICAgVElNRVNUQU1QPSckVElNRVNUQU1QJworICAgIFJNPSckUk0nCisgICAgb2ZpbGU9JyRvZmlsZSddLCBbXSkKK10pZG5sIC9fTFRfQ09ORklHX1NBVkVfQ09NTUFORFMKK10pIyBfTFRfQ09ORklHCisKKworIyBMVF9TVVBQT1JURURfVEFHKFRBRykKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRyYWNlIHRoaXMgbWFjcm8gdG8gZGlzY292ZXIgd2hhdCB0YWdzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIGxpYnRvb2wKKyMgLS10YWcgb3B0aW9uLCB1c2luZzoKKyMgICAgYXV0b2NvbmYgLS10cmFjZSAnTFRfU1VQUE9SVEVEX1RBRzokMScKK0FDX0RFRlVOKFtMVF9TVVBQT1JURURfVEFHXSwgW10pCisKKworIyBDIHN1cHBvcnQgaXMgYnVpbHQtaW4gZm9yIG5vdworbTRfZGVmaW5lKFtfTFRfTEFOR19DX2VuYWJsZWRdLCBbXSkKK200X2RlZmluZShbX0xUX1RBR1NdLCBbXSkKKworCisjIExUX0xBTkcoTEFORykKKyMgLS0tLS0tLS0tLS0tLQorIyBFbmFibGUgbGlidG9vbCBzdXBwb3J0IGZvciB0aGUgZ2l2ZW4gbGFuZ3VhZ2UgaWYgbm90IGFscmVhZHkgZW5hYmxlZC4KK0FDX0RFRlVOKFtMVF9MQU5HXSwKK1tBQ19CRUZPUkUoWyQwXSwgW0xUX09VVFBVVF0pZG5sCittNF9jYXNlKFskMV0sCisgIFtDXSwJCQlbX0xUX0xBTkcoQyldLAorICBbQysrXSwJCVtfTFRfTEFORyhDWFgpXSwKKyAgW0phdmFdLAkJW19MVF9MQU5HKEdDSildLAorICBbRm9ydHJhbiA3N10sCQlbX0xUX0xBTkcoRjc3KV0sCisgIFtGb3J0cmFuXSwJCVtfTFRfTEFORyhGQyldLAorICBbV2luZG93cyBSZXNvdXJjZV0sCVtfTFRfTEFORyhSQyldLAorICBbbTRfaWZkZWYoW19MVF9MQU5HX10kMVtfQ09ORklHXSwKKyAgICBbX0xUX0xBTkcoJDEpXSwKKyAgICBbbTRfZmF0YWwoWyQwOiB1bnN1cHBvcnRlZCBsYW5ndWFnZTogIiQxIl0pXSldKWRubAorXSkjIExUX0xBTkcKKworCisjIF9MVF9MQU5HKExBTkdOQU1FKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfTEFOR10sCitbbTRfaWZkZWYoW19MVF9MQU5HX10kMVtfZW5hYmxlZF0sIFtdLAorICBbTFRfU1VQUE9SVEVEX1RBRyhbJDFdKWRubAorICBtNF9hcHBlbmQoW19MVF9UQUdTXSwgWyQxIF0pZG5sCisgIG00X2RlZmluZShbX0xUX0xBTkdfXSQxW19lbmFibGVkXSwgW10pZG5sCisgIF9MVF9MQU5HXyQxX0NPTkZJRygkMSldKWRubAorXSkjIF9MVF9MQU5HCisKKworIyBfTFRfTEFOR19ERUZBVUxUX0NPTkZJRworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9MQU5HX0RFRkFVTFRfQ09ORklHXSwKK1tBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DWFhdLAorICBbTFRfTEFORyhDWFgpXSwKKyAgW200X2RlZmluZShbQUNfUFJPR19DWFhdLCBkZWZuKFtBQ19QUk9HX0NYWF0pW0xUX0xBTkcoQ1hYKV0pXSkKKworQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfRjc3XSwKKyAgW0xUX0xBTkcoRjc3KV0sCisgIFttNF9kZWZpbmUoW0FDX1BST0dfRjc3XSwgZGVmbihbQUNfUFJPR19GNzddKVtMVF9MQU5HKEY3NyldKV0pCisKK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0ZDXSwKKyAgW0xUX0xBTkcoRkMpXSwKKyAgW200X2RlZmluZShbQUNfUFJPR19GQ10sIGRlZm4oW0FDX1BST0dfRkNdKVtMVF9MQU5HKEZDKV0pXSkKKworZG5sIFRoZSBjYWxsIHRvIFtBXVtNX1BST0dfR0NKXSBpcyBxdW90ZWQgbGlrZSB0aGF0IHRvIHN0b3AgYWNsb2NhbAorZG5sIHB1bGxpbmcgdGhpbmdzIGluIG5lZWRsZXNzbHkuCitBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19HQ0pdLAorICBbTFRfTEFORyhHQ0opXSwKKyAgW0FDX1BST1ZJREVfSUZFTFNFKFtBXVtNX1BST0dfR0NKXSwKKyAgICBbTFRfTEFORyhHQ0opXSwKKyAgICBbQUNfUFJPVklERV9JRkVMU0UoW0xUX1BST0dfR0NKXSwKKyAgICAgIFtMVF9MQU5HKEdDSildLAorICAgICAgW200X2lmZGVmKFtBQ19QUk9HX0dDSl0sCisJW200X2RlZmluZShbQUNfUFJPR19HQ0pdLCBkZWZuKFtBQ19QUk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0pXSkKKyAgICAgICBtNF9pZmRlZihbQV1bTV9QUk9HX0dDSl0sCisJW200X2RlZmluZShbQV1bTV9QUk9HX0dDSl0sIGRlZm4oW0FdW01fUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0pCisgICAgICAgbTRfaWZkZWYoW0xUX1BST0dfR0NKXSwKKwlbbTRfZGVmaW5lKFtMVF9QUk9HX0dDSl0sIGRlZm4oW0xUX1BST0dfR0NKXSlbTFRfTEFORyhHQ0opXSldKV0pXSldKQorCitBQ19QUk9WSURFX0lGRUxTRShbTFRfUFJPR19SQ10sCisgIFtMVF9MQU5HKFJDKV0sCisgIFttNF9kZWZpbmUoW0xUX1BST0dfUkNdLCBkZWZuKFtMVF9QUk9HX1JDXSlbTFRfTEFORyhSQyldKV0pCitdKSMgX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKKworIyBPYnNvbGV0ZSBtYWNyb3M6CitBVV9ERUZVTihbQUNfTElCVE9PTF9DWFhdLCBbTFRfTEFORyhDKyspXSkKK0FVX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtMVF9MQU5HKEZvcnRyYW4gNzcpXSkKK0FVX0RFRlVOKFtBQ19MSUJUT09MX0ZDXSwgW0xUX0xBTkcoRm9ydHJhbildKQorQVVfREVGVU4oW0FDX0xJQlRPT0xfR0NKXSwgW0xUX0xBTkcoSmF2YSldKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sIFtdKQorZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtdKQorZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0ZDXSwgW10pCitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfR0NKXSwgW10pCisKKworIyBfTFRfVEFHX0NPTVBJTEVSCisjIC0tLS0tLS0tLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfVEFHX0NPTVBJTEVSXSwKK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKKworX0xUX0RFQ0woW0xUQ0NdLCBbQ0NdLCBbMV0sIFtBIEMgY29tcGlsZXJdKWRubAorX0xUX0RFQ0woW0xUQ0ZMQUdTXSwgW0NGTEFHU10sIFsxXSwgW0xUQ0MgY29tcGlsZXIgZmxhZ3NdKWRubAorX0xUX1RBR0RFQ0woW0NDXSwgW2NvbXBpbGVyXSwgWzFdLCBbQSBsYW5ndWFnZSBzcGVjaWZpYyBjb21waWxlcl0pZG5sCitfTFRfVEFHREVDTChbd2l0aF9nY2NdLCBbR0NDXSwgWzBdLCBbSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/XSlkbmwKKworIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KK0xUQ0M9JHtMVENDLSIkQ0MifQorCisjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCitMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KKworIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KK2NvbXBpbGVyPSRDQworXSkjIF9MVF9UQUdfQ09NUElMRVIKKworCisjIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2sgZm9yIGNvbXBpbGVyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRoCisjIHRoZSBzaW1wbGUgY29tcGlsZXIgdGVzdCBjb2RlLgorbTRfZGVmdW4oW19MVF9DT01QSUxFUl9CT0lMRVJQTEFURV0sCitbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorJFJNIGNvbmZ0ZXN0KgorXSkjIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorCisKKyMgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIGZvciBsaW5rZXIgYm9pbGVycGxhdGUgb3V0cHV0IG9yIHdhcm5pbmdzIHdpdGgKKyMgdGhlIHNpbXBsZSBsaW5rIHRlc3QgY29kZS4KK200X2RlZnVuKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSwKK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CitlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCitfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorJFJNIC1yIGNvbmZ0ZXN0KgorXSkjIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKKworIyBfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bl9vbmNlKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10sWworICBjYXNlICRob3N0X29zIGluCisgICAgcmhhcHNvZHkqIHwgZGFyd2luKikKKyAgICBBQ19DSEVDS19UT09MKFtEU1lNVVRJTF0sIFtkc3ltdXRpbF0sIFs6XSkKKyAgICBBQ19DSEVDS19UT09MKFtOTUVESVRdLCBbbm1lZGl0XSwgWzpdKQorICAgIEFDX0NIRUNLX1RPT0woW0xJUE9dLCBbbGlwb10sIFs6XSkKKyAgICBBQ19DSEVDS19UT09MKFtPVE9PTF0sIFtvdG9vbF0sIFs6XSkKKyAgICBBQ19DSEVDS19UT09MKFtPVE9PTDY0XSwgW290b29sNjRdLCBbOl0pCisgICAgX0xUX0RFQ0woW10sIFtEU1lNVVRJTF0sIFsxXSwKKyAgICAgIFtUb29sIHRvIG1hbmlwdWxhdGUgYXJjaGl2ZWQgRFdBUkYgZGVidWcgc3ltYm9sIGZpbGVzIG9uIE1hYyBPUyBYXSkKKyAgICBfTFRfREVDTChbXSwgW05NRURJVF0sIFsxXSwKKyAgICAgIFtUb29sIHRvIGNoYW5nZSBnbG9iYWwgdG8gbG9jYWwgc3ltYm9scyBvbiBNYWMgT1MgWF0pCisgICAgX0xUX0RFQ0woW10sIFtMSVBPXSwgWzFdLAorICAgICAgW1Rvb2wgdG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBhbmQgYXJjaGl2ZXMgb24gTWFjIE9TIFhdKQorICAgIF9MVF9ERUNMKFtdLCBbT1RPT0xdLCBbMV0sCisgICAgICBbbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFhdKQorICAgIF9MVF9ERUNMKFtdLCBbT1RPT0w2NF0sIFsxXSwKKyAgICAgIFtsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIDY0IGJpdCBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFggMTAuNF0pCisKKyAgICBBQ19DQUNIRV9DSEVDSyhbZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnXSxbbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZF0sCisgICAgICBbbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD1ubworICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgorCSMgQnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBvdmVycmlkZQorCSMgYnkgZWl0aGVyIHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExUX01VTFRJX01PRFVMRQorCSMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKKwkjIGxpbmsgZmxhZ3MuCisJcm0gLXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgorCWVjaG8gImludCBmb28odm9pZCl7cmV0dXJuIDE7fSIgPiBjb25mdGVzdC5jCisJZWNobyAiJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKKy1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIiA+JkFTX01FU1NBR0VfTE9HX0ZECisJJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKKwkgIC1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+Y29uZnRlc3QuZXJyCisgICAgICAgIF9sdF9yZXN1bHQ9JD8KKwlpZiB0ZXN0IC1mIGxpYmNvbmZ0ZXN0LmR5bGliICYmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDA7IHRoZW4KKwkgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCisJZWxzZQorCSAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisJZmkKKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisJcm0gLWYgY29uZnRlc3QuKgorICAgICAgZmldKQorICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZ10sCisgICAgICBbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0XSwKKyAgICAgIFtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KKyAgICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUworICAgICAgZWNobyAiX21haW4iID4gY29uZnRlc3Quc3ltCisgICAgICBMREZMQUdTPSIkTERGTEFHUyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0iCisgICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCisJW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD15ZXNdLAorCVtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm9dKQorCUxERkxBR1M9IiRzYXZlX0xERkxBR1MiCisgICAgXSkKKyAgICBjYXNlICRob3N0X29zIGluCisgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bWzAxMl1dKQorICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworICAgIGRhcndpbjEuKikKKyAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKyAgICBkYXJ3aW4qKSAjIGRhcndpbiA1Lnggb24KKyAgICAgICMgaWYgcnVubmluZyBvbiAxMC41IG9yIGxhdGVyLCB0aGUgZGVwbG95bWVudCB0YXJnZXQgZGVmYXVsdHMKKyAgICAgICMgdG8gdGhlIE9TIHZlcnNpb24sIGlmIG9uIHg4NiwgYW5kIDEwLjQsIHRoZSBkZXBsb3ltZW50CisgICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBpdD8KKyAgICAgIGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0sJGhvc3QgaW4KKwkxMC4wLCo4NiotZGFyd2luOCp8MTAuMCwqLWRhcndpbltbOTFdXSopCisJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7CisJMTAuW1swMTJdXSopCisJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7CisJMTAuKikKKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKKyAgICAgIGVzYWMKKyAgICA7OworICBlc2FjCisgICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID0gInllcyI7IHRoZW4KKyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA9ICJ5ZXMiOyB0aGVuCisgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisgICAgZWxzZQorICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nfiROTUVESVQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkRFNZTVVUSUwiICE9ICI6IjsgdGhlbgorICAgICAgX2x0X2RzeW11dGlsPSd+JERTWU1VVElMICRsaWIgfHwgOicKKyAgICBlbHNlCisgICAgICBfbHRfZHN5bXV0aWw9CisgICAgZmkKKyAgICA7OworICBlc2FjCitdKQorCisKKyMgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2tzIGZvciBsaW5rZXIgYW5kIGNvbXBpbGVyIGZlYXR1cmVzIG9uIGRhcndpbgorbTRfZGVmdW4oW19MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTXSwKK1sKKyAgbTRfcmVxdWlyZShbX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1NdKQorICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworICBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPXllcworICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAorICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JycKKyAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0iJF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkIgorICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICBpZm9ydCopIF9sdF9kYXJfY2FuX3NoYXJlZD15ZXMgOzsKKyAgICAgKikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKKyAgZXNhYworICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0aGVuCisgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisgICAgX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCisgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKyAgICBfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisgICAgbTRfaWYoWyQxXSwgW0NYWF0sCitbICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiICE9ICJ5ZXMiOyB0aGVuCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSJcJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZHN5bXV0aWx9IgorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisgICAgZmkKK10sW10pCisgIGVsc2UKKyAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICBmaQorXSkKKworIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBMaW5rcyBhIG1pbmltYWwgcHJvZ3JhbSBhbmQgY2hlY2tzIHRoZSBleGVjdXRhYmxlCisjIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgaGFyZGNvZGVkIGxpYnJhcnkgcGF0aC4gSW4gbW9zdCBjYXNlcywKKyMgdGhpcyBpcyAvdXNyL2xpYjovbGliLCBidXQgd2hlbiB0aGUgTVBJIGNvbXBpbGVycyBhcmUgdXNlZAorIyB0aGUgbG9jYXRpb24gb2YgdGhlIGNvbW11bmljYXRpb24gYW5kIE1QSSBsaWJzIGFyZSBpbmNsdWRlZCB0b28uCisjIElmIHdlIGRvbid0IGZpbmQgYW55dGhpbmcsIHVzZSB0aGUgZGVmYXVsdCBsaWJyYXJ5IHBhdGggYWNjb3JkaW5nCisjIHRvIHRoZSBhaXggbGQgbWFudWFsLgorbTRfZGVmdW4oW19MVF9TWVNfTU9EVUxFX1BBVEhfQUlYXSwKK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorQUNfTElOS19JRkVMU0UoQUNfTEFOR19QUk9HUkFNLFsKK2x0X2FpeF9saWJwYXRoX3NlZD0nCisgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworCS9eMC8geworCSAgICBzL14wICAqXCguKlwpJC9cMS8KKwkgICAgcAorCX0KKyAgICB9JworYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCitpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCisgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorZmldLFtdKQoraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCitdKSMgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKworCisjIF9MVF9TSEVMTF9JTklUKEFSRykKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtfTFRfU0hFTExfSU5JVF0sCitbaWZkZWYoW0FDX0RJVkVSU0lPTl9OT1RJQ0VdLAorCSAgICAgW0FDX0RJVkVSVF9QVVNIKEFDX0RJVkVSU0lPTl9OT1RJQ0UpXSwKKwkgW0FDX0RJVkVSVF9QVVNIKE5PVElDRSldKQorJDEKK0FDX0RJVkVSVF9QT1AKK10pIyBfTFRfU0hFTExfSU5JVAorCisKKyMgX0xUX1BST0dfRUNIT19CQUNLU0xBU0gKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQWRkIHNvbWUgY29kZSB0byB0aGUgc3RhcnQgb2YgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0IHdoaWNoCisjIHdpbGwgZmluZCBhbiBlY2hvIGNvbW1hbmQgd2hpY2ggZG9lc24ndCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCittNF9kZWZ1bihbX0xUX1BST0dfRUNIT19CQUNLU0xBU0hdLAorW19MVF9TSEVMTF9JTklUKFsKKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KK1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9CisKK2Nhc2UgWCRsdF9FQ0hPIGluCitYKi0tZmFsbGJhY2stZWNobykKKyAgIyBSZW1vdmUgb25lIGxldmVsIG9mIHF1b3RhdGlvbiAod2hpY2ggd2FzIHJlcXVpcmVkIGZvciBNYWtlKS4KKyAgRUNITz1gZWNobyAiJGx0X0VDSE8iIHwgc2VkICdzLFxcXFxcWyRdXFxbJF0wLCdbJF0wJywnYAorICA7OworZXNhYworCitFQ0hPPSR7bHRfRUNITy1lY2hvfQoraWYgdGVzdCAiWFskXTEiID0gWC0tbm8tcmVleGVjOyB0aGVuCisgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgorICBzaGlmdAorZWxpZiB0ZXN0ICJYWyRdMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCisgICMgQXZvaWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKKyAgOgorZWxpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgOyB0aGVuCisgICMgWWlwcGVlLCAkRUNITyB3b3JrcyEKKyAgOgorZWxzZQorICAjIFJlc3RhcnQgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwuCisgIGV4ZWMgJFNIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezErIlskXUAifQorZmkKKworaWYgdGVzdCAiWFskXTEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobworICBzaGlmdAorICBjYXQgPDxfTFRfRU9GCitbJF0qCitfTFRfRU9GCisgIGV4aXQgMAorZmkKKworIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKyMgaWYgQ0RQQVRIIGlzIHNldC4KKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKKworaWYgdGVzdCAteiAiJGx0X0VDSE8iOyB0aGVuCisgIGlmIHRlc3QgIlgke2VjaG9fdGVzdF9zdHJpbmcrc2V0fSIgIT0gWHNldDsgdGhlbgorICAgICMgZmluZCBhIHN0cmluZyBhcyBsYXJnZSBhcyBwb3NzaWJsZSwgYXMgbG9uZyBhcyB0aGUgc2hlbGwgY2FuIGNvcGUgd2l0aCBpdAorICAgIGZvciBjbWQgaW4gJ3NlZCA1MHEgIlskXTAiJyAnc2VkIDIwcSAiWyRdMCInICdzZWQgMTBxICJbJF0wIicgJ3NlZCAycSAiWyRdMCInICdlY2hvIHRlc3QnOyBkbworICAgICAgIyBleHBlY3RlZCBzaXplczogbGVzcyB0aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVzLCAuLi4KKyAgICAgIGlmIHsgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkY21kYDsgfSAyPi9kZXYvbnVsbCAmJgorCSB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbAorICAgICAgdGhlbgorICAgICAgICBicmVhaworICAgICAgZmkKKyAgICBkb25lCisgIGZpCisKKyAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKyAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisgICAgOgorICBlbHNlCisgICAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQgRGlnaXRhbCBVbml4IGRlZmF1bHQgZWNobyBwcm9ncmFtcyB1bnF1b3RlCisgICAgIyBiYWNrc2xhc2hlcy4gIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBxdW90ZSBiYWNrc2xhc2hlcyB1c2luZworICAgICMgICBlY2hvICIkc29tZXRoaW5nIiB8IHNlZCAncy9cXC9cXFxcL2cnCisgICAgIworICAgICMgU28sIGZpcnN0IHdlIGxvb2sgZm9yIGEgd29ya2luZyBlY2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4KKworICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorICAgIGZvciBkaXIgaW4gJFBBVEggL3Vzci91Y2I7IGRvCisgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKyAgICAgIGlmICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0IC1mICRkaXIvZWNobyRhY19leGVleHQpICYmCisgICAgICAgICB0ZXN0ICJYYCgkZGlyL2VjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisgICAgICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisgICAgICAgIEVDSE89IiRkaXIvZWNobyIKKyAgICAgICAgYnJlYWsKKyAgICAgIGZpCisgICAgZG9uZQorICAgIElGUz0iJGx0X3NhdmVfaWZzIgorCisgICAgaWYgdGVzdCAiWCRFQ0hPIiA9IFhlY2hvOyB0aGVuCisgICAgICAjIFdlIGRpZG4ndCBmaW5kIGEgYmV0dGVyIGVjaG8sIHNvIGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KKyAgICAgIGlmIHRlc3QgIlhgeyBwcmludCAtciAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgorICAgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyBwcmludCAtciAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgorICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisgICAgICAgICMgVGhpcyBzaGVsbCBoYXMgYSBidWlsdGluIHByaW50IC1yIHRoYXQgZG9lcyB0aGUgdHJpY2suCisgICAgICAgIEVDSE89J3ByaW50IC1yJworICAgICAgZWxpZiB7IHRlc3QgLWYgL2Jpbi9rc2ggfHwgdGVzdCAtZiAvYmluL2tzaCRhY19leGVleHQ7IH0gJiYKKwkgICB0ZXN0ICJYJENPTkZJR19TSEVMTCIgIT0gWC9iaW4va3NoOyB0aGVuCisgICAgICAgICMgSWYgd2UgaGF2ZSBrc2gsIHRyeSBydW5uaW5nIGNvbmZpZ3VyZSBhZ2FpbiB3aXRoIGl0LgorICAgICAgICBPUklHSU5BTF9DT05GSUdfU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KKyAgICAgICAgZXhwb3J0IE9SSUdJTkFMX0NPTkZJR19TSEVMTAorICAgICAgICBDT05GSUdfU0hFTEw9L2Jpbi9rc2gKKyAgICAgICAgZXhwb3J0IENPTkZJR19TSEVMTAorICAgICAgICBleGVjICRDT05GSUdfU0hFTEwgIlskXTAiIC0tbm8tcmVleGVjICR7MSsiWyRdQCJ9CisgICAgICBlbHNlCisgICAgICAgICMgVHJ5IHVzaW5nIHByaW50Zi4KKyAgICAgICAgRUNITz0ncHJpbnRmICVzXG4nCisgICAgICAgIGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgorCSAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKwkgICMgQ29vbCwgcHJpbnRmIHdvcmtzCisJICA6CisgICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgorCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorCSAgQ09ORklHX1NIRUxMPSRPUklHSU5BTF9DT05GSUdfU0hFTEwKKwkgIGV4cG9ydCBDT05GSUdfU0hFTEwKKwkgIFNIRUxMPSIkQ09ORklHX1NIRUxMIgorCSAgZXhwb3J0IFNIRUxMCisJICBFQ0hPPSIkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hvIgorICAgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYmCisJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKKwkgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCisJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKwkgIEVDSE89IiRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCisgICAgICAgIGVsc2UKKwkgICMgbWF5YmUgd2l0aCBhIHNtYWxsZXIgc3RyaW5nLi4uCisJICBwcmV2PToKKworCSAgZm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAnc2VkIDJxICJbJF0wIicgJ3NlZCAxMHEgIlskXTAiJyAnc2VkIDIwcSAiWyRdMCInICdzZWQgNTBxICJbJF0wIic7IGRvCisJICAgIGlmIHsgdGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYYGV2YWwgJGNtZGAiOyB9IDI+L2Rldi9udWxsCisJICAgIHRoZW4KKwkgICAgICBicmVhaworCSAgICBmaQorCSAgICBwcmV2PSIkY21kIgorCSAgZG9uZQorCisJICBpZiB0ZXN0ICIkcHJldiIgIT0gJ3NlZCA1MHEgIlskXTAiJzsgdGhlbgorCSAgICBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRwcmV2YAorCSAgICBleHBvcnQgZWNob190ZXN0X3N0cmluZworCSAgICBleGVjICR7T1JJR0lOQUxfQ09ORklHX1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiWyRdMCIgJHsxKyJbJF1AIn0KKwkgIGVsc2UKKwkgICAgIyBPb3BzLiAgV2UgbG9zdCBjb21wbGV0ZWx5LCBzbyBqdXN0IHN0aWNrIHdpdGggZWNoby4KKwkgICAgRUNITz1lY2hvCisJICBmaQorICAgICAgICBmaQorICAgICAgZmkKKyAgICBmaQorICBmaQorZmkKKworIyBDb3B5IGVjaG8gYW5kIHF1b3RlIHRoZSBjb3B5IHN1aXRhYmx5IGZvciBwYXNzaW5nIHRvIGxpYnRvb2wgZnJvbQorIyB0aGUgTWFrZWZpbGUsIGluc3RlYWQgb2YgcXVvdGluZyB0aGUgb3JpZ2luYWwsIHdoaWNoIGlzIHVzZWQgbGF0ZXIuCitsdF9FQ0hPPSRFQ0hPCitpZiB0ZXN0ICJYJGx0X0VDSE8iID0gIlgkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hvIjsgdGhlbgorICAgbHRfRUNITz0iJENPTkZJR19TSEVMTCBcXFwkXFskXTAgLS1mYWxsYmFjay1lY2hvIgorZmkKKworQUNfU1VCU1QobHRfRUNITykKK10pCitfTFRfREVDTChbXSwgW1NIRUxMXSwgWzFdLCBbU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0c10pCitfTFRfREVDTChbXSwgW0VDSE9dLCBbMV0sCisgICAgW0FuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xhc2hlc10pCitdKSMgX0xUX1BST0dfRUNIT19CQUNLU0xBU0gKKworCisjIF9MVF9FTkFCTEVfTE9DSworIyAtLS0tLS0tLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfRU5BQkxFX0xPQ0tdLAorW0FDX0FSR19FTkFCTEUoW2xpYnRvb2wtbG9ja10sCisgIFtBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWxpYnRvb2wtbG9ja10sCisgICAgW2F2b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcyldKV0pCit0ZXN0ICJ4JGVuYWJsZV9saWJ0b29sX2xvY2siICE9IHhubyAmJiBlbmFibGVfbGlidG9vbF9sb2NrPXllcworCisjIFNvbWUgZmxhZ3MgbmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBjb21waWxlciBvciBsaW5rZXIgZm9yIGdvb2QKKyMgbGlidG9vbCBzdXBwb3J0LgorY2FzZSAkaG9zdCBpbgoraWE2NC0qLWhwdXgqKQorICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgorICAgICAgKkVMRi0zMiopCisJSFBVWF9JQTY0X01PREU9IjMyIgorCTs7CisgICAgICAqRUxGLTY0KikKKwlIUFVYX0lBNjRfTU9ERT0iNjQiCisJOzsKKyAgICBlc2FjCisgIGZpCisgIHJtIC1yZiBjb25mdGVzdCoKKyAgOzsKKyotKi1pcml4NiopCisgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKyAgZWNobyAnWyNdbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAorICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorICAgIGlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKwkqMzItYml0KikKKwkgIExEPSIke0xELWxkfSAtbWVsZjMyYnNtaXAiCisJICA7OworCSpOMzIqKQorCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJibWlwbjMyIgorCSAgOzsKKwkqNjQtYml0KikKKwkgIExEPSIke0xELWxkfSAtbWVsZjY0Ym1pcCIKKwk7OworICAgICAgZXNhYworICAgIGVsc2UKKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKwkqMzItYml0KikKKwkgIExEPSIke0xELWxkfSAtMzIiCisJICA7OworCSpOMzIqKQorCSAgTEQ9IiR7TEQtbGR9IC1uMzIiCisJICA7OworCSo2NC1iaXQqKQorCSAgTEQ9IiR7TEQtbGR9IC02NCIKKwkgIDs7CisgICAgICBlc2FjCisgICAgZmkKKyAgZmkKKyAgcm0gLXJmIGNvbmZ0ZXN0KgorICA7OworCit4ODZfNjQtKmtmcmVlYnNkKi1nbnV8eDg2XzY0LSpsaW51eCp8cHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCp8IFwKK3MzOTAqLSpsaW51eCp8czM5MCotKnRwZip8c3BhcmMqLSpsaW51eCopCisgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisgICAgICAqMzItYml0KikKKwljYXNlICRob3N0IGluCisJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4Nl9mYnNkIgorCSAgICA7OworCSAgeDg2XzY0LSpsaW51eCopCisJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4NiIKKwkgICAgOzsKKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCisJICAgIExEPSIke0xELWxkfSAtbSBlbGYzMnBwY2xpbnV4IgorCSAgICA7OworCSAgczM5MHgtKmxpbnV4KikKKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9zMzkwIgorCSAgICA7OworCSAgc3BhcmM2NC0qbGludXgqKQorCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJfc3BhcmMiCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICAqNjQtYml0KikKKwljYXNlICRob3N0IGluCisJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisJICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0X2Zic2QiCisJICAgIDs7CisJICB4ODZfNjQtKmxpbnV4KikKKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjQiCisJICAgIDs7CisJICBwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KikKKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0cHBjIgorCSAgICA7OworCSAgczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKikKKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3MzOTAiCisJICAgIDs7CisJICBzcGFyYyotKmxpbnV4KikKKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIgorCSAgICA7OworCWVzYWMKKwk7OworICAgIGVzYWMKKyAgZmkKKyAgcm0gLXJmIGNvbmZ0ZXN0KgorICA7OworCisqLSotc2NvMy4ydjUqKQorICAjIE9uIFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMuCisgIFNBVkVfQ0ZMQUdTPSIkQ0ZMQUdTIgorICBDRkxBR1M9IiRDRkxBR1MgLWJlbGYiCisgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmXSwgbHRfY3ZfY2NfbmVlZHNfYmVsZiwKKyAgICBbQUNfTEFOR19QVVNIKEMpCisgICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSxbW11dKV0sW2x0X2N2X2NjX25lZWRzX2JlbGY9eWVzXSxbbHRfY3ZfY2NfbmVlZHNfYmVsZj1ub10pCisgICAgIEFDX0xBTkdfUE9QXSkKKyAgaWYgdGVzdCB4IiRsdF9jdl9jY19uZWVkc19iZWxmIiAhPSB4InllcyI7IHRoZW4KKyAgICAjIHRoaXMgaXMgcHJvYmFibHkgZ2NjIDIuOC4wLCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYKKyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKKyAgZmkKKyAgOzsKK3NwYXJjKi0qc29sYXJpcyopCisgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisgICAgKjY0LWJpdCopCisgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgorICAgICAgeWVzKikgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIiA7OworICAgICAgKikKKwlpZiAke0xELWxkfSAtNjQgLXIgLW8gY29uZnRlc3QyLm8gY29uZnRlc3QubyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKwkgIExEPSIke0xELWxkfSAtNjQiCisJZmkKKwk7OworICAgICAgZXNhYworICAgICAgOzsKKyAgICBlc2FjCisgIGZpCisgIHJtIC1yZiBjb25mdGVzdCoKKyAgOzsKK2VzYWMKKworbmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCitdKSMgX0xUX0VOQUJMRV9MT0NLCisKKworIyBfTFRfQ01EX09MRF9BUkNISVZFCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfQ01EX09MRF9BUkNISVZFXSwKK1tBQ19DSEVDS19UT09MKEFSLCBhciwgZmFsc2UpCit0ZXN0IC16ICIkQVIiICYmIEFSPWFyCit0ZXN0IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQorX0xUX0RFQ0woW10sIFtBUl0sIFsxXSwgW1RoZSBhcmNoaXZlcl0pCitfTFRfREVDTChbXSwgW0FSX0ZMQUdTXSwgWzFdKQorCitBQ19DSEVDS19UT09MKFNUUklQLCBzdHJpcCwgOikKK3Rlc3QgLXogIiRTVFJJUCIgJiYgU1RSSVA9OgorX0xUX0RFQ0woW10sIFtTVFJJUF0sIFsxXSwgW0Egc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtXSkKKworQUNfQ0hFQ0tfVE9PTChSQU5MSUIsIHJhbmxpYiwgOikKK3Rlc3QgLXogIiRSQU5MSUIiICYmIFJBTkxJQj06CitfTFRfREVDTChbXSwgW1JBTkxJQl0sIFsxXSwKKyAgICBbQ29tbWFuZHMgdXNlZCB0byBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlXSkKKworIyBEZXRlcm1pbmUgY29tbWFuZHMgdG8gY3JlYXRlIG9sZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMuCitvbGRfYXJjaGl2ZV9jbWRzPSckQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcycKK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA2NDQgJG9sZGxpYicKK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9CisKK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgb3BlbmJzZCopCisgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiAtdCBcJG9sZGxpYiIKKyAgICA7OworICAqKQorICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisgICAgOzsKKyAgZXNhYworICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKK2ZpCitfTFRfREVDTChbXSwgW29sZF9wb3N0aW5zdGFsbF9jbWRzXSwgWzJdKQorX0xUX0RFQ0woW10sIFtvbGRfcG9zdHVuaW5zdGFsbF9jbWRzXSwgWzJdKQorX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9jbWRzXSwgWzJdLAorICAgIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlXSkKK10pIyBfTFRfQ01EX09MRF9BUkNISVZFCisKKworIyBfTFRfQ09NUElMRVJfT1BUSU9OKE1FU1NBR0UsIFZBUklBQkxFLU5BTUUsIEZMQUdTLAorIwkJW09VVFBVVC1GSUxFXSwgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBjb21waWxlciBvcHRpb24gd29ya3MKK0FDX0RFRlVOKFtfTFRfQ09NUElMRVJfT1BUSU9OXSwKK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCitBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAorICBbJDI9bm8KKyAgIG00X2lmKFskNF0sICwgW2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dF0sIFthY19vdXRmaWxlPSQ0XSkKKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorICAgbHRfY29tcGlsZXJfZmxhZz0iJDMiCisgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgorICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisgICAtZSAnczogW1teIF1dKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkbHRfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQorICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKKyAgIGFjX3N0YXR1cz0kPworICAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisgICBlY2hvICIkYXNfbWU6X19vbGluZV9fOiBcJD8gPSAkYWNfc3RhdHVzIiA+JkFTX01FU1NBR0VfTE9HX0ZECisgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAorICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICQyPXllcworICAgICBmaQorICAgZmkKKyAgICRSTSBjb25mdGVzdCoKK10pCisKK2lmIHRlc3QgeCJbJF0kMiIgPSB4eWVzOyB0aGVuCisgICAgbTRfaWYoWyQ1XSwgLCA6LCBbJDVdKQorZWxzZQorICAgIG00X2lmKFskNl0sICwgOiwgWyQ2XSkKK2ZpCitdKSMgX0xUX0NPTVBJTEVSX09QVElPTgorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW19MVF9DT01QSUxFUl9PUFRJT05dKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0NPTVBJTEVSX09QVElPTl0sIFtdKQorCisKKyMgX0xUX0xJTktFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCisjICAgICAgICAgICAgICAgICAgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBsaW5rZXIgb3B0aW9uIHdvcmtzCitBQ19ERUZVTihbX0xUX0xJTktFUl9PUFRJT05dLAorW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKK0FDX0NBQ0hFX0NIRUNLKFskMV0sIFskMl0sCisgIFskMj1ubworICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKyAgIExERkxBR1M9IiRMREZMQUdTICQzIgorICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KKyAgICAgIyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCisgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiZBU19NRVNTQUdFX0xPR19GRAorICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisgICAgICAgICAkMj15ZXMKKyAgICAgICBmaQorICAgICBlbHNlCisgICAgICAgJDI9eWVzCisgICAgIGZpCisgICBmaQorICAgJFJNIC1yIGNvbmZ0ZXN0KgorICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKK10pCisKK2lmIHRlc3QgeCJbJF0kMiIgPSB4eWVzOyB0aGVuCisgICAgbTRfaWYoWyQ0XSwgLCA6LCBbJDRdKQorZWxzZQorICAgIG00X2lmKFskNV0sICwgOiwgWyQ1XSkKK2ZpCitdKSMgX0xUX0xJTktFUl9PUFRJT04KKworIyBPbGQgbmFtZToKK0FVX0FMSUFTKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dLCBbX0xUX0xJTktFUl9PUFRJT05dKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dLCBbXSkKKworCisjIExUX0NNRF9NQVhfTEVOCisjLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbTFRfQ01EX01BWF9MRU5dLAorW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKKyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworQUNfTVNHX0NIRUNLSU5HKFt0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50c10pCitBQ19DQUNIRV9WQUwoW2x0X2N2X3N5c19tYXhfY21kX2xlbl0sIFtkbmwKKyAgaT0wCisgIHRlc3RzdHJpbmc9IkFCQ0QiCisKKyAgY2FzZSAkYnVpbGRfb3MgaW4KKyAgbXNkb3NkamdwcCopCisgICAgIyBPbiBESkdQUCwgdGhpcyB0ZXN0IGNhbiBibG93IHVwIHByZXR0eSBiYWRseSBkdWUgdG8gcHJvYmxlbXMgaW4gbGliYworICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KKyAgICAjIGR1cmluZyBnbG9iIGV4cGFuc2lvbikuICBFdmVuIGlmIGl0IHdlcmUgZml4ZWQsIHRoZSByZXN1bHQgb2YgdGhpcworICAgICMgY2hlY2sgd291bGQgYmUgbGFyZ2VyIHRoYW4gaXQgc2hvdWxkIGJlLgorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKKyAgICA7OworCisgIGdudSopCisgICAgIyBVbmRlciBHTlUgSHVyZCwgdGhpcyB0ZXN0IGlzIG5vdCByZXF1aXJlZCBiZWNhdXNlIHRoZXJlIGlzCisgICAgIyBubyBsaW1pdCB0byB0aGUgbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2ZXIKKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTE7CisgICAgOzsKKworICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQorICAgICMgT24gV2luOXgvTUUsIHRoaXMgdGVzdCBibG93cyB1cCAtLSBpdCBzdWNjZWVkcywgYnV0IHRha2VzCisgICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KKyAgICAjIFdvcnNlLCBzaW5jZSA5eC9NRSBhcmUgbm90IHByZS1lbXB0aXZlbHkgbXVsdGl0YXNraW5nLAorICAgICMgeW91IGVuZCB1cCB3aXRoIGEgImZyb3plbiIgY29tcHV0ZXIsIGV2ZW4gdGhvdWdoIHdpdGggcGF0aWVuY2UKKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCisgICAgIyBJbnN0ZWFkLCBsZXQncyBqdXN0IHB1bnQ6IHVzZSB0aGUgbWluaW11bSBsaW5lbGVuZ3RoIHJlcG9ydGVkIGJ5CisgICAgIyBhbGwgb2YgdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXM6IDgxOTIgKG9uIE5ULzJLL1hQKS4KKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKyAgICA7OworCisgIGFtaWdhb3MqKQorICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVyYWxseS4KKyAgICAjIFNvIHdlIGp1c3QgcHVudCBhbmQgdXNlIGEgbWluaW11bSBsaW5lIGxlbmd0aCBvZiA4MTkyLgorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworICAgIDs7CisKKyAgbmV0YnNkKiB8IGZyZWVic2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikKKyAgICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJTRCwgYXQgbGVhc3QuICBMaWtlbHkgZnVydGhlci4KKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2N0bDsgdGhlbgorICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCisgICAgZWxpZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3Vzci9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKKyAgICBlbHNlCisgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1c2FibGUgZGVmYXVsdCBmb3IgYWxsIEJTRHMKKyAgICBmaQorICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCisgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorICAgIDs7CisKKyAgaW50ZXJpeCopCisgICAgIyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIxNDQgYW5kIGhhcmRjb2RlIGl0IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCisgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAorICAgIDs7CisKKyAgb3NmKikKKyAgICAjIERyLiBIYW5zIEVra2VoYXJkIFBsZXNzZXIgcmVwb3J0cyBzZWVpbmcgYSBrZXJuZWwgcGFuaWMgcnVubmluZyBjb25maWd1cmUKKyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2FibGVfYXJnX2xpbWl0IGlzIDEgb24gVHJ1NjQuIEl0IGlzIG5vdAorICAgICMgbmljZSB0byBjYXVzZSBrZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxvb3AgYmVsb3cuCisgICAgIyBGaXJzdCBzZXQgYSByZWFzb25hYmxlIGRlZmF1bHQuCisgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE2Mzg0CisgICAgIworICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY29uZmlnOyB0aGVuCisgICAgICBjYXNlIGAvc2Jpbi9zeXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0YCBpbgorICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMSA7OworICAgICAgZXNhYworICAgIGZpCisgICAgOzsKKyAgc2NvMy4ydjUqKQorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMDI0MDAKKyAgICA7OworICBzeXN2NSogfCBzY281djYqIHwgc3lzdjQuMnV3MiopCisgICAga2FyZ21heD1gZ3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rldi9udWxsYAorICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhlbgorICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBlY2hvICRrYXJnbWF4IHwgc2VkICdzLy4qW1sJIF1dLy8nYAorICAgIGVsc2UKKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0zMjc2OAorICAgIGZpCisgICAgOzsKKyAgKikKKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YChnZXRjb25mIEFSR19NQVgpIDI+IC9kZXYvbnVsbGAKKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgorICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCisgICAgZWxzZQorICAgICAgIyBNYWtlIHRlc3RzdHJpbmcgYSBsaXR0bGUgYmlnZ2VyIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyB3aXRoIGl0LgorICAgICAgIyBhIDFLIHN0cmluZyBzaG91bGQgYmUgYSByZWFzb25hYmxlIHN0YXJ0LgorICAgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDYgNyA4IDsgZG8KKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCisgICAgICBkb25lCisgICAgICBTSEVMTD0ke1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fQorICAgICAgIyBJZiB0ZXN0IGlzIG5vdCBhIHNoZWxsIGJ1aWx0LWluLCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5nIGEKKyAgICAgICMgbWF4aW11bSBsZW5ndGggdGhhdCBpcyBvbmx5IGhhbGYgb2YgdGhlIGFjdHVhbCBtYXhpbXVtIGxlbmd0aCwgYnV0CisgICAgICAjIHdlIGNhbid0IHRlbGwuCisgICAgICB3aGlsZSB7IHRlc3QgIlgiYCRTSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9udWxsYCBcCisJICAgICAgICAgPSAiWFgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9udWxsIDI+JjEgJiYKKwkgICAgICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1CIHNob3VsZCBiZSBlbm91Z2gKKyAgICAgIGRvCisgICAgICAgIGk9YGV4cHIgJGkgKyAxYAorICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKKyAgICAgIGRvbmUKKyAgICAgICMgT25seSBjaGVjayB0aGUgc3RyaW5nIGxlbmd0aCBvdXRzaWRlIHRoZSBsb29wLgorICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYAorICAgICAgdGVzdHN0cmluZz0KKyAgICAgICMgQWRkIGEgc2lnbmlmaWNhbnQgc2FmZXR5IGZhY3RvciBiZWNhdXNlIEMrKyBjb21waWxlcnMgY2FuIHRhY2sgb24KKyAgICAgICMgbWFzc2l2ZSBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlCisgICAgICAjIGxpbmtlci4gIEl0IGFwcGVhcnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDJgCisgICAgZmkKKyAgICA7OworICBlc2FjCitdKQoraWYgdGVzdCAtbiAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIDsgdGhlbgorICBBQ19NU0dfUkVTVUxUKCRsdF9jdl9zeXNfbWF4X2NtZF9sZW4pCitlbHNlCisgIEFDX01TR19SRVNVTFQobm9uZSkKK2ZpCittYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCitfTFRfREVDTChbXSwgW21heF9jbWRfbGVuXSwgWzBdLAorICAgIFtXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbW1hbmQ/XSkKK10pIyBMVF9DTURfTUFYX0xFTgorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0FDX0xJQlRPT0xfU1lTX01BWF9DTURfTEVOXSwgW0xUX0NNRF9NQVhfTEVOXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfTUFYX0NNRF9MRU5dLCBbXSkKKworCisjIF9MVF9IRUFERVJfRExGQ04KKyMgLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9IRUFERVJfRExGQ05dLAorW0FDX0NIRUNLX0hFQURFUlMoW2RsZmNuLmhdLCBbXSwgW10sIFtBQ19JTkNMVURFU19ERUZBVUxUXSlkbmwKK10pIyBfTFRfSEVBREVSX0RMRkNOCisKKworIyBfTFRfVFJZX0RMT1BFTl9TRUxGIChBQ1RJT04tSUYtVFJVRSwgQUNUSU9OLUlGLVRSVUUtVy1VU0NPUkUsCisjICAgICAgICAgICAgICAgICAgICAgIEFDVElPTi1JRi1GQUxTRSwgQUNUSU9OLUlGLUNST1NTLUNPTVBJTElORykKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9UUllfRExPUEVOX1NFTEZdLAorW200X3JlcXVpcmUoW19MVF9IRUFERVJfRExGQ05dKWRubAoraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgorICBbJDRdCitlbHNlCisgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIKKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKK1sjbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSIKKyNpbmNsdWRlICJjb25mZGVmcy5oIgorCisjaWYgSEFWRV9ETEZDTl9ICisjaW5jbHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2lmZGVmIFJUTERfR0xPQkFMCisjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERfR0xPQkFMCisjZWxzZQorIyAgaWZkZWYgRExfR0xPQkFMCisjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCisjICBlbHNlCisjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAorIyAgZW5kaWYKKyNlbmRpZgorCisvKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCisgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0uICovCisjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKKyMgIGlmZGVmIFJUTERfTEFaWQorIyAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZCisjICBlbHNlCisjICAgIGlmZGVmIERMX0xBWlkKKyMgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQorIyAgICBlbHNlCisjICAgICAgaWZkZWYgUlRMRF9OT1cKKyMgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9XCisjICAgICAgZWxzZQorIyAgICAgICAgaWZkZWYgRExfTk9XCisjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCURMX05PVworIyAgICAgICAgZWxzZQorIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkwCisjICAgICAgICBlbmRpZgorIyAgICAgIGVuZGlmCisjICAgIGVuZGlmCisjICBlbmRpZgorI2VuZGlmCisKK3ZvaWQgZm5vcmQoKSB7IGludCBpPTQyO30KK2ludCBtYWluICgpCit7CisgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cpOworICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93bjsKKworICBpZiAoc2VsZikKKyAgICB7CisgICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKKyAgICAgIGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KKyAgICB9CisgIGVsc2UKKyAgICBwdXRzIChkbGVycm9yICgpKTsKKworICByZXR1cm4gc3RhdHVzOworfV0KK19MVF9FT0YKKyAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhlbgorICAgICguL2NvbmZ0ZXN0OyBleGl0OyApID4mQVNfTUVTU0FHRV9MT0dfRkQgMj4vZGV2L251bGwKKyAgICBsdF9zdGF0dXM9JD8KKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCisgICAgICB4JGx0X2Rsbm9fdXNjb3JlKSAkMSA7OworICAgICAgeCRsdF9kbG5lZWRfdXNjb3JlKSAkMiA7OworICAgICAgeCRsdF9kbHVua25vd258eCopICQzIDs7CisgICAgZXNhYworICBlbHNlIDoKKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAorICAgICQzCisgIGZpCitmaQorcm0gLWZyIGNvbmZ0ZXN0KgorXSkjIF9MVF9UUllfRExPUEVOX1NFTEYKKworCisjIExUX1NZU19ETE9QRU5fU0VMRgorIyAtLS0tLS0tLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtMVF9TWVNfRExPUEVOX1NFTEZdLAorW200X3JlcXVpcmUoW19MVF9IRUFERVJfRExGQ05dKWRubAoraWYgdGVzdCAieCRlbmFibGVfZGxvcGVuIiAhPSB4eWVzOyB0aGVuCisgIGVuYWJsZV9kbG9wZW49dW5rbm93bgorICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgorICBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24KK2Vsc2UKKyAgbHRfY3ZfZGxvcGVuPW5vCisgIGx0X2N2X2Rsb3Blbl9saWJzPQorCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgYmVvcyopCisgICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2FkZF9vbiIKKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKKyAgICA7OworCisgIG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorICAgIGx0X2N2X2Rsb3Blbj0iTG9hZExpYnJhcnkiCisgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisgICAgOzsKKworICBjeWd3aW4qKQorICAgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgorICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorICAgIDs7CisKKyAgZGFyd2luKikKKyAgIyBpZiBsaWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWluc3QgaXQKKyAgICBBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCisJCVtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiXSxbCisgICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgorICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcworICAgIF0pCisgICAgOzsKKworICAqKQorICAgIEFDX0NIRUNLX0ZVTkMoW3NobF9sb2FkXSwKKwkgIFtsdF9jdl9kbG9wZW49InNobF9sb2FkIl0sCisgICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRdLCBbc2hsX2xvYWRdLAorCSAgICBbbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIl0sCisJW0FDX0NIRUNLX0ZVTkMoW2Rsb3Blbl0sCisJICAgICAgW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIl0sCisJICBbQUNfQ0hFQ0tfTElCKFtkbF0sIFtkbG9wZW5dLAorCQlbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0sCisJICAgIFtBQ19DSEVDS19MSUIoW3N2bGRdLCBbZGxvcGVuXSwKKwkJICBbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbHN2bGQiXSwKKwkgICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRdLCBbZGxkX2xpbmtdLAorCQkgICAgW2x0X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCJdKQorCSAgICAgIF0pCisJICAgIF0pCisJICBdKQorCV0pCisgICAgICBdKQorICAgIDs7CisgIGVzYWMKKworICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3BlbiIgIT0geG5vOyB0aGVuCisgICAgZW5hYmxlX2Rsb3Blbj15ZXMKKyAgZWxzZQorICAgIGVuYWJsZV9kbG9wZW49bm8KKyAgZmkKKworICBjYXNlICRsdF9jdl9kbG9wZW4gaW4KKyAgZGxvcGVuKQorICAgIHNhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKyAgICB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA9IHh5ZXMgJiYgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtREhBVkVfRExGQ05fSCIKKworICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNcIgorCisgICAgc2F2ZV9MSUJTPSIkTElCUyIKKyAgICBMSUJTPSIkbHRfY3ZfZGxvcGVuX2xpYnMgJExJQlMiCisKKyAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciBhIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGZdLAorCSAgbHRfY3ZfZGxvcGVuX3NlbGYsIFtkbmwKKwkgIF9MVF9UUllfRExPUEVOX1NFTEYoCisJICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcywgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzLAorCSAgICBsdF9jdl9kbG9wZW5fc2VsZj1ubywgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jvc3MpCisgICAgXSkKKworICAgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuX3NlbGYiID0geHllczsgdGhlbgorICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCisgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGZdLAorCSAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljLCBbZG5sCisJICBfTFRfVFJZX0RMT1BFTl9TRUxGKAorCSAgICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzLCBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzLAorCSAgICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8sICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MpCisgICAgICBdKQorICAgIGZpCisKKyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCisgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKyAgICBMSUJTPSIkc2F2ZV9MSUJTIgorICAgIDs7CisgIGVzYWMKKworICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZiBpbgorICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZj0kbHRfY3ZfZGxvcGVuX3NlbGYgOzsKKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsKKyAgZXNhYworCisgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgorICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyA7OworICAqKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24gOzsKKyAgZXNhYworZmkKK19MVF9ERUNMKFtkbG9wZW5fc3VwcG9ydF0sIFtlbmFibGVfZGxvcGVuXSwgWzBdLAorCSBbV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkXSkKK19MVF9ERUNMKFtkbG9wZW5fc2VsZl0sIFtlbmFibGVfZGxvcGVuX3NlbGZdLCBbMF0sCisJIFtXaGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFtcyBpcyBzdXBwb3J0ZWRdKQorX0xUX0RFQ0woW2Rsb3Blbl9zZWxmX3N0YXRpY10sIFtlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljXSwgWzBdLAorCSBbV2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkXSkKK10pIyBMVF9TWVNfRExPUEVOX1NFTEYKKworIyBPbGQgbmFtZToKK0FVX0FMSUFTKFtBQ19MSUJUT09MX0RMT1BFTl9TRUxGXSwgW0xUX1NZU19ETE9QRU5fU0VMRl0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOX1NFTEZdLCBbXSkKKworCisjIF9MVF9DT01QSUxFUl9DX08oW1RBR05BTUVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2sgdG8gc2VlIGlmIG9wdGlvbnMgLWMgYW5kIC1vIGFyZSBzaW11bHRhbmVvdXNseSBzdXBwb3J0ZWQgYnkgY29tcGlsZXIuCisjIFRoaXMgbWFjcm8gZG9lcyBub3QgaGFyZCBjb2RlIHRoZSBjb21waWxlciBsaWtlIEFDX1BST0dfQ0NfQ19PLgorbTRfZGVmdW4oW19MVF9DT01QSUxFUl9DX09dLAorW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCittNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorQUNfQ0FDSEVfQ0hFQ0soW2lmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHRdLAorICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpXSwKKyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT1ubworICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisgICBta2RpciBjb25mdGVzdAorICAgY2QgY29uZnRlc3QKKyAgIG1rZGlyIG91dAorICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisKKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgorICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorICAgLWUgJ3M6IFtbXiBdXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAorICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQorICAgYWNfc3RhdHVzPSQ/CisgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisgICBlY2hvICIkYXNfbWU6X19vbGluZV9fOiBcJD8gPSAkYWNfc3RhdHVzIiA+JkFTX01FU1NBR0VfTE9HX0ZECisgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAorICAgdGhlbgorICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCisgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKyAgICAgICBfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCisgICAgIGZpCisgICBmaQorICAgY2htb2QgdSt3IC4gMj4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgICRSTSBjb25mdGVzdCoKKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcworICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAorICAgY2QgLi4KKyAgICRSTSAtciBjb25mdGVzdAorICAgJFJNIGNvbmZ0ZXN0KgorXSkKK19MVF9UQUdERUNMKFtjb21waWxlcl9jX29dLCBbbHRfY3ZfcHJvZ19jb21waWxlcl9jX29dLCBbMV0sCisJW0RvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz9dKQorXSkjIF9MVF9DT01QSUxFUl9DX08KKworCisjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKFtUQUdOQU1FXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayB0byBzZWUgaWYgd2UgY2FuIGRvIGhhcmQgbGlua3MgdG8gbG9jayBzb21lIGZpbGVzIGlmIG5lZWRlZAorbTRfZGVmdW4oW19MVF9DT01QSUxFUl9GSUxFX0xPQ0tTXSwKK1ttNF9yZXF1aXJlKFtfTFRfRU5BQkxFX0xPQ0tdKWRubAorbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCitfTFRfQ09NUElMRVJfQ19PKFskMV0pCisKK2hhcmRfbGlua3M9Im5vdHRlc3RlZCIKK2lmIHRlc3QgIiRfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSkiID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCisgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgorICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rc10pCisgIGhhcmRfbGlua3M9eWVzCisgICRSTSBjb25mdGVzdCoKKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KKyAgdG91Y2ggY29uZnRlc3QuYQorICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCisgIEFDX01TR19SRVNVTFQoWyRoYXJkX2xpbmtzXSkKKyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KKyAgICBBQ19NU0dfV0FSTihbYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBgLWMgLW8nLCBzbyBgbWFrZSAtaicgbWF5IGJlIHVuc2FmZV0pCisgICAgbmVlZF9sb2Nrcz13YXJuCisgIGZpCitlbHNlCisgIG5lZWRfbG9ja3M9bm8KK2ZpCitfTFRfREVDTChbXSwgW25lZWRfbG9ja3NdLCBbMV0sIFtNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj9dKQorXSkjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTCisKKworIyBfTFRfQ0hFQ0tfT0JKRElSCisjIC0tLS0tLS0tLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfQ0hFQ0tfT0JKRElSXSwKK1tBQ19DQUNIRV9DSEVDSyhbZm9yIG9iamRpcl0sIFtsdF9jdl9vYmpkaXJdLAorW3JtIC1mIC5saWJzIDI+L2Rldi9udWxsCitta2RpciAubGlicyAyPi9kZXYvbnVsbAoraWYgdGVzdCAtZCAubGliczsgdGhlbgorICBsdF9jdl9vYmpkaXI9LmxpYnMKK2Vsc2UKKyAgIyBNUy1ET1MgZG9lcyBub3QgYWxsb3cgZmlsZW5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIGRvdC4KKyAgbHRfY3Zfb2JqZGlyPV9saWJzCitmaQorcm1kaXIgLmxpYnMgMj4vZGV2L251bGxdKQorb2JqZGlyPSRsdF9jdl9vYmpkaXIKK19MVF9ERUNMKFtdLCBbb2JqZGlyXSwgWzBdLAorICAgICAgICAgW1RoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlc10pZG5sCittNF9wYXR0ZXJuX2FsbG93KFtMVF9PQkpESVJdKWRubAorQUNfREVGSU5FX1VOUVVPVEVEKExUX09CSkRJUiwgIiRsdF9jdl9vYmpkaXIvIiwKKyAgW0RlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuXSkKK10pIyBfTFRfQ0hFQ0tfT0JKRElSCisKKworIyBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoW1RBR05BTUVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayBoYXJkY29kaW5nIGF0dHJpYnV0ZXMuCittNF9kZWZ1bihbX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIXSwKK1tBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXNdKQorX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT0KK2lmIHRlc3QgLW4gIiRfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSIgfHwKKyAgIHRlc3QgLW4gIiRfTFRfVEFHVkFSKHJ1bnBhdGhfdmFyLCAkMSkiIHx8CisgICB0ZXN0ICJYJF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSkiID0gIlh5ZXMiIDsgdGhlbgorCisgICMgV2UgY2FuIGhhcmRjb2RlIG5vbi1leGlzdGVudCBkaXJlY3Rvcmllcy4KKyAgaWYgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSkiICE9IG5vICYmCisgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKKyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQorICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCisgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKSIgIT0gbm8gJiYKKyAgICAgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpIiAhPSBubzsgdGhlbgorICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3RvcnkuCisgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT1yZWxpbmsKKyAgZWxzZQorICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCisgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT1pbW1lZGlhdGUKKyAgZmkKK2Vsc2UKKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcKKyAgIyBkaXJlY3Rvcmllcy4KKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT11bnN1cHBvcnRlZAorZmkKK0FDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpXSkKKworaWYgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSkiID0gcmVsaW5rIHx8CisgICB0ZXN0ICIkX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSkiID0geWVzOyB0aGVuCisgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCitlbGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzIHx8CisgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQorICBlbmFibGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCitmaQorX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9hY3Rpb25dLCBbMF0sCisgICAgW0hvdyB0byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlXSkKK10pIyBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgKKworCisjIF9MVF9DTURfU1RSSVBMSUIKKyMgLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9DTURfU1RSSVBMSUJdLAorW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKK3N0cmlwbGliPQorb2xkX3N0cmlwbGliPQorQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGVdKQoraWYgdGVzdCAtbiAiJFNUUklQIiAmJiAkU1RSSVAgLVYgMj4mMSB8ICRHUkVQICJHTlUgc3RyaXAiID4vZGV2L251bGw7IHRoZW4KKyAgdGVzdCAteiAiJG9sZF9zdHJpcGxpYiIgJiYgb2xkX3N0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC1kZWJ1ZyIKKyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCisgIEFDX01TR19SRVNVTFQoW3llc10pCitlbHNlCisjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91Z2gKKyAgY2FzZSAkaG9zdF9vcyBpbgorICBkYXJ3aW4qKQorICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCisgICAgICBzdHJpcGxpYj0iJFNUUklQIC14IgorICAgICAgb2xkX3N0cmlwbGliPSIkU1RSSVAgLVMiCisgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorICAgIGVsc2UKKyAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKKyAgICBmaQorICAgIDs7CisgICopCisgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorICAgIDs7CisgIGVzYWMKK2ZpCitfTFRfREVDTChbXSwgW29sZF9zdHJpcGxpYl0sIFsxXSwgW0NvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllc10pCitfTFRfREVDTChbXSwgW3N0cmlwbGliXSwgWzFdKQorXSkjIF9MVF9DTURfU1RSSVBMSUIKKworCisjIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoW1RBR10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFBPUlRNRSBGaWxsIGluIHlvdXIgbGQuc28gY2hhcmFjdGVyaXN0aWNzCittNF9kZWZ1bihbX0xUX1NZU19EWU5BTUlDX0xJTktFUl0sCitbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAorbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCittNF9yZXF1aXJlKFtfTFRfREVDTF9PQkpEVU1QXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCitBQ19NU0dfQ0hFQ0tJTkcoW2R5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljc10pCittNF9pZihbJDFdLAorCVtdLCBbCitpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICBjYXNlICRob3N0X29zIGluCisgICAgZGFyd2luKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LywvTFIvIiA7OworICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8iIDs7CisgIGVzYWMKKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKKyAgaWYgJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7JyA+L2Rldi9udWxsIDsgdGhlbgorICAgICMgaWYgdGhlIHBhdGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1lIGl0IHRvIGJlIHRoZSBzZXBhcmF0b3IKKyAgICAjIG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKKyAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKKyAgICAjIG9rYXkgaW4gdGhlIHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBhdGhzIGlzIGl0c2VsZiBwcm9ibGVtYXRpYy4KKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCisgIGVsc2UKKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisgIGZpCisgICMgT2ssIG5vdyB3ZSBoYXZlIHRoZSBwYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLCB3ZSBjYW4gc3RlcCB0aHJvdWdoIGl0CisgICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5LgorICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0KKyAgbHRfbXVsdGlfb3NfZGlyPWAkQ0MgJENQUEZMQUdTICRDRkxBR1MgJExERkxBR1MgLXByaW50LW11bHRpLW9zLWRpcmVjdG9yeSAyPi9kZXYvbnVsbGAKKyAgZm9yIGx0X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbworICAgIGlmIHRlc3QgLWQgIiRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIjsgdGhlbgorICAgICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciIKKyAgICBlbHNlCisgICAgICB0ZXN0IC1kICIkbHRfc3lzX3BhdGgiICYmIFwKKwlsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKKyAgICBmaQorICBkb25lCisgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyB8IGF3ayAnCitCRUdJTiB7UlM9IiAiOyBGUz0iL3xcbiI7fSB7CisgIGx0X2Zvbz0iIjsKKyAgbHRfY291bnQ9MDsKKyAgZm9yIChsdF9pID0gTkY7IGx0X2kgPiAwOyBsdF9pLS0pIHsKKyAgICBpZiAoJGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7CisgICAgICBpZiAoJGx0X2kgPT0gIi4uIikgeworICAgICAgICBsdF9jb3VudCsrOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsKKyAgICAgICAgICBsdF9mb289Ii8iICRsdF9pIGx0X2ZvbzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBsdF9jb3VudC0tOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9CisgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJlcVtbbHRfZm9vXV0rKzsgfQorICBpZiAobHRfZnJlcVtbbHRfZm9vXV0gPT0gMSkgeyBwcmludCBsdF9mb287IH0KK30nYAorICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF9zZWFyY2hfcGF0aF9zcGVjYAorZWxzZQorICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCitmaV0pCitsaWJyYXJ5X25hbWVzX3NwZWM9CitsaWJuYW1lX3NwZWM9J2xpYiRuYW1lJworc29uYW1lX3NwZWM9CitzaHJleHRfY21kcz0iLnNvIgorcG9zdGluc3RhbGxfY21kcz0KK3Bvc3R1bmluc3RhbGxfY21kcz0KK2ZpbmlzaF9jbWRzPQorZmluaXNoX2V2YWw9CitzaGxpYnBhdGhfdmFyPQorc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KK3ZlcnNpb25fdHlwZT1ub25lCitkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCitzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKK25lZWRfbGliX3ByZWZpeD11bmtub3duCitoYXJkY29kZV9pbnRvX2xpYnM9bm8KKworIyB3aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9uCisjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVudHMKK25lZWRfdmVyc2lvbj11bmtub3duCisKK2Nhc2UgJGhvc3Rfb3MgaW4KK2FpeDMqKQorICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCisgIHNobGlicGF0aF92YXI9TElCUEFUSAorCisgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgOzsKKworYWl4W1s0LTldXSopCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBlbHNlCisgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQorICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCisgICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgorICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgIGFpeDQgfCBhaXg0LltbMDFdXSB8IGFpeDQuW1swMV1dLiopCisgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJworCSAgIGVjaG8gJyB5ZXMgJworCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwgJEdSRVAgeWVzID4gL2Rldi9udWxsOyB0aGVuCisJOgorICAgICAgZWxzZQorCWNhbl9idWlsZF9zaGFyZWQ9bm8KKyAgICAgIGZpCisgICAgICA7OworICAgIGVzYWMKKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0CisgICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0bworICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCisgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KKyAgICAgICMgaW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUgbm90CisgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCisgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgICBlbHNlCisgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgorICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCisgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgICAgZmkKKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKyAgZmkKKyAgOzsKKworYW1pZ2FvcyopCisgIGNhc2UgJGhvc3RfY3B1IGluCisgIHBvd2VycGMpCisgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNpYWxseSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgorICAgICMgV2hlbiBjb21waWxpbmcgdGhlIGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21waWxlbGluZS4KKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgICA7OworICBtNjhrKQorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCisgICAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KKyAgICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbW14vXV0qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworICAgIDs7CisgIGVzYWMKKyAgOzsKKworYmVvcyopCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKKyAgOzsKKworYnNkaVtbNDVdXSopCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX3ZlcnNpb249bm8KKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCisgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9saWIgYW5kCisgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdworICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKKyAgOzsKKworY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorICB2ZXJzaW9uX3R5cGU9d2luZG93cworICBzaHJleHRfY21kcz0iLmRsbCIKKyAgbmVlZF92ZXJzaW9uPW5vCisgIG5lZWRfbGliX3ByZWZpeD1ubworCisgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgorICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiogfCB5ZXMsY2VnY2MqKQorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCisgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcworICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgorICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgorICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgorICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KKyAgICAgIGlmIHRlc3QgLW4gJ1wnJyRzdHJpcG1lJ1wnJyAmJiB0ZXN0IC1uICdcJyckc3RyaXBsaWInXCcnOyB0aGVuCisgICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRsZGlyLyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/OworICAgICAgZmknCisgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisgICAgICAgJFJNIFwkZGxwYXRoJworICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKworICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBjeWd3aW4qKQorICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIgL2xpYi93MzJhcGkgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKyAgICAgIDs7CisgICAgbWluZ3cqIHwgY2VnY2MqKQorICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgJEdSRVAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKKyAgICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IFskR1JFUCAnO1tjLXpDLVpdOi8nID4vZGV2L251bGxdOyB0aGVuCisgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBieQorICAgICAgICAjIG1pbmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2VhcmNoCisgICAgICAgICMgcGF0aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRsZSB0aGUKKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAorICAgICAgICAjIGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3IG9iamR1bXAsCisgICAgICAgICMgd2hpY2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKyAgICAgIGVsc2UKKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKyAgICAgIGZpCisgICAgICA7OworICAgIHB3MzIqKQorICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKyAgICAgIDs7CisgICAgZXNhYworICAgIDs7CisKKyAgKikKKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJworICAgIDs7CisgIGVzYWMKKyAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCisgIHNobGlicGF0aF92YXI9UEFUSAorICA7OworCitkYXJ3aW4qIHwgcmhhcHNvZHkqKQorICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZHlsZCIKKyAgdmVyc2lvbl90eXBlPWRhcndpbgorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICisgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJworbTRfaWYoWyQxXSwgW10sWworICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL3Vzci9sb2NhbC9saWIiXSkKKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisgIDs7CisKK2RndXgqKQorICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNoYXJlZF9leHQnCisgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIDs7CisKK2ZyZWVic2QxKikKKyAgZHluYW1pY19saW5rZXI9bm8KKyAgOzsKKworZnJlZWJzZCogfCBkcmFnb25mbHkqKQorICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3CisgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgorICBpZiB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgorICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAorICBlbHNlCisgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgIGZyZWVic2RbWzEyM11dKikgb2JqZm9ybWF0PWFvdXQgOzsKKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CisgICAgZXNhYworICBmaQorICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorICAgIGZyZWVic2QtZWxmKikKKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworICAgICAgbmVlZF92ZXJzaW9uPW5vCisgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgICAgIDs7CisgICAgZnJlZWJzZC0qKQorICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisgICAgICBuZWVkX3ZlcnNpb249eWVzCisgICAgICA7OworICBlc2FjCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgZnJlZWJzZDIqKQorICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKyAgICA7OworICBmcmVlYnNkMy5bWzAxXV0qIHwgZnJlZWJzZGVsZjMuW1swMV1dKikKKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworICAgIDs7CisgIGZyZWVic2QzLltbMi05XV0qIHwgZnJlZWJzZGVsZjMuW1syLTldXSogfCBcCisgIGZyZWVic2Q0LltbMC01XV0gfCBmcmVlYnNkZWxmNC5bWzAtNV1dIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQorICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgICA7OworICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5CisgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgICA7OworICBlc2FjCisgIDs7CisKK2dudSopCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworICA7OworCitocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bworICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KKyAgdmVyc2lvbl90eXBlPXN1bm9zCisgIG5lZWRfbGliX3ByZWZpeD1ubworICBuZWVkX3ZlcnNpb249bm8KKyAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgaWE2NCopCisgICAgc2hyZXh0X2NtZHM9Jy5zbycKKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIKKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCisgICAgZWxzZQorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgorICAgIGZpCisgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworICAgIDs7CisgIGhwcGEqNjQqKQorICAgIHNocmV4dF9jbWRzPScuc2wnCisgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICisgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0IgorICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKyAgICA7OworICAqKQorICAgIHNocmV4dF9jbWRzPScuc2wnCisgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgICAgOzsKKyAgZXNhYworICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCisgIDs7CisKK2ludGVyaXhbWzMtOV1dKikKKyAgdmVyc2lvbl90eXBlPWxpbnV4CisgIG5lZWRfbGliX3ByZWZpeD1ubworICBuZWVkX3ZlcnNpb249bm8KKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEgKFBFLCBsaWtlIEVMRiknCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgIDs7CisKK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7CisgICAgKikKKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCisJCXZlcnNpb25fdHlwZT1saW51eAorCWVsc2UKKwkJdmVyc2lvbl90eXBlPWlyaXgKKwlmaSA7OworICBlc2FjCisgIG5lZWRfbGliX3ByZWZpeD1ubworICBuZWVkX3ZlcnNpb249bm8KKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworICBjYXNlICRob3N0X29zIGluCisgIGlyaXg1KiB8IG5vbnN0b3B1eCopCisgICAgbGlic3VmZj0gc2hsaWJzdWZmPQorICAgIDs7CisgICopCisgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAorICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCisgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7CisgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OworICAgICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQorICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKyAgICBlc2FjCisgICAgOzsKKyAgZXNhYworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgorICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IgorICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgIDs7CisKKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCisgIGR5bmFtaWNfbGlua2VyPW5vCisgIDs7CisKKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KK2xpbnV4KiB8IGsqYnNkKi1nbnUpCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5QQVRICisgIHNhdmVfTERGTEFHUz0kTERGTEFHUworICBzYXZlX2xpYmRpcj0kbGliZGlyCisgIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKVwiOyBcCisgICAgICAgTERGTEFHUz1cIlwkTERGTEFHUyAkX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSlcIiIKKyAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbXSxbXSldLAorICAgIFtBU19JRihbICgkT0JKRFVNUCAtcCBjb25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxpYmRpciIgPi9kZXYvbnVsbF0sCisgICAgICAgW3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXNdKV0pCisgIExERkxBR1M9JHNhdmVfTERGTEFHUworICBsaWJkaXI9JHNhdmVfbGliZGlyCisKKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1bmFjY2VwdGFibGUuCisgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAorICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgorICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisKKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgorICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYjY0IC91c3IvbGliNjQgL2xpYiAvdXNyL2xpYiIKKworICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAorICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgorICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFxbJF0yKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcWyRdMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCisgIGZpCisKKyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCisgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKKyAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCisgICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQorICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KKyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKKyAgOzsKKworbmV0YnNkKikKKyAgdmVyc2lvbl90eXBlPXN1bm9zCisgIG5lZWRfbGliX3ByZWZpeD1ubworICBuZWVkX3ZlcnNpb249bm8KKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJworICBlbHNlCisgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJworICBmaQorICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgOzsKKworbmV3c29zNikKKyAgdmVyc2lvbl90eXBlPWxpbnV4CisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIDs7CisKKypudG8qIHwgKnFueCopCisgIHZlcnNpb25fdHlwZT1xbngKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgZHluYW1pY19saW5rZXI9J2xkcW54LnNvJworICA7OworCitvcGVuYnNkKikKKyAgdmVyc2lvbl90eXBlPXN1bm9zCisgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KKyAgY2FzZSAkaG9zdF9vcyBpbgorICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopCW5lZWRfdmVyc2lvbj15ZXMgOzsKKyAgICAqKQkJCQluZWVkX3ZlcnNpb249bm8gIDs7CisgIGVzYWMKKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgIG9wZW5ic2QyLltbODldXSB8IG9wZW5ic2QyLltbODldXS4qKQorCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworCTs7CisgICAgICAqKQorCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKwk7OworICAgICAgZXNhYworICBlbHNlCisgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworICBmaQorICA7OworCitvczIqKQorICBsaWJuYW1lX3NwZWM9JyRuYW1lJworICBzaHJleHRfY21kcz0iLmRsbCIKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisgIGR5bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisgIDs7CisKK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKyAgdmVyc2lvbl90eXBlPW9zZgorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgorICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKyAgOzsKKworcmRvcyopCisgIGR5bmFtaWNfbGlua2VyPW5vCisgIDs7CisKK3NvbGFyaXMqKQorICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCisgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCisgIDs7CisKK3N1bm9zNCopCisgIHZlcnNpb25fdHlwZT1zdW5vcworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgZmkKKyAgbmVlZF92ZXJzaW9uPXllcworICA7OworCitzeXN2NCB8IHN5c3Y0LjMqKQorICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisgICAgc25pKQorICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisgICAgICA7OworICAgIHNpZW1lbnMpCisgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgICAgIDs7CisgICAgbW90b3JvbGEpCisgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgICAgIG5lZWRfdmVyc2lvbj1ubworICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworICAgICAgOzsKKyAgZXNhYworICA7OworCitzeXN2NCpNUCopCisgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJworICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIGZpCisgIDs7CisKK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKKyAgZWxzZQorICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9jY3MvbGliIC91c3IvbGliJworICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgIHNjbzMuMnY1KikKKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIiCisJOzsKKyAgICBlc2FjCisgIGZpCisgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKKyAgOzsKKwordHBmKikKKyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1ob3N0ID0gR05VL0xpbnV4LgorICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgOzsKKwordXRzNCopCisgIHZlcnNpb25fdHlwZT1saW51eAorICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgOzsKKworKikKKyAgZHluYW1pY19saW5rZXI9bm8KKyAgOzsKK2VzYWMKK0FDX01TR19SRVNVTFQoWyRkeW5hbWljX2xpbmtlcl0pCit0ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworCit2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCitpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFUSCIKK2ZpCisKK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKK2ZpCitpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCitmaQorCitfTFRfREVDTChbXSwgW3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rXSwgWzFdLAorICAgIFtWYXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0cyBhbmQKKyAgICByZXN0b3JlZCBhdCBsaW5rIHRpbWVdKQorX0xUX0RFQ0woW10sIFtuZWVkX2xpYl9wcmVmaXhdLCBbMF0sCisgICAgW0RvIHdlIG5lZWQgdGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcz9dKQorX0xUX0RFQ0woW10sIFtuZWVkX3ZlcnNpb25dLCBbMF0sIFtEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzP10pCitfTFRfREVDTChbXSwgW3ZlcnNpb25fdHlwZV0sIFswXSwgW0xpYnJhcnkgdmVyc2lvbmluZyB0eXBlXSkKK19MVF9ERUNMKFtdLCBbcnVucGF0aF92YXJdLCBbMF0sICBbU2hhcmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxlXSkKK19MVF9ERUNMKFtdLCBbc2hsaWJwYXRoX3Zhcl0sIFswXSxbU2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZV0pCitfTFRfREVDTChbXSwgW3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aF0sIFswXSwKKyAgICBbSXMgc2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5IHNlYXJjaCBwYXRoP10pCitfTFRfREVDTChbXSwgW2xpYm5hbWVfc3BlY10sIFsxXSwgW0Zvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4XSkKK19MVF9ERUNMKFtdLCBbbGlicmFyeV9uYW1lc19zcGVjXSwgWzFdLAorICAgIFtbTGlzdCBvZiBhcmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0IGFyZSBsaW5rcy4KKyAgICBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FXV0pCitfTFRfREVDTChbXSwgW3NvbmFtZV9zcGVjXSwgWzFdLAorICAgIFtbVGhlIGNvZGVkIG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWVdXSkKK19MVF9ERUNMKFtdLCBbcG9zdGluc3RhbGxfY21kc10sIFsyXSwKKyAgICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQorX0xUX0RFQ0woW10sIFtwb3N0dW5pbnN0YWxsX2NtZHNdLCBbMl0sCisgICAgW0NvbW1hbmQgdG8gdXNlIGFmdGVyIHVuaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQorX0xUX0RFQ0woW10sIFtmaW5pc2hfY21kc10sIFsyXSwKKyAgICBbQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5XSkKK19MVF9ERUNMKFtdLCBbZmluaXNoX2V2YWxdLCBbMV0sCisgICAgW1tBcyAiZmluaXNoX2NtZHMiLCBleGNlcHQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQKKyAgICBub3Qgc2hvd25dXSkKK19MVF9ERUNMKFtdLCBbaGFyZGNvZGVfaW50b19saWJzXSwgWzBdLAorICAgIFtXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzXSkKK19MVF9ERUNMKFtdLCBbc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjXSwgWzJdLAorICAgIFtDb21waWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXNdKQorX0xUX0RFQ0woW10sIFtzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlY10sIFsyXSwKKyAgICBbUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXNdKQorXSkjIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIKKworCisjIF9MVF9QQVRIX1RPT0xfUFJFRklYKFRPT0wpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGZpbmQgYSBmaWxlIHByb2dyYW0gd2hpY2ggY2FuIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyeQorQUNfREVGVU4oW19MVF9QQVRIX1RPT0xfUFJFRklYXSwKK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkMV0pCitBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9NQUdJQ19DTUQsCitbY2FzZSAkTUFHSUNfQ01EIGluCitbW1xcLypdIHwgID86W1xcL10qXSkKKyAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorICA7OworKikKKyAgbHRfc2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCisgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZG5sICRhY19kdW1teSBmb3JjZXMgc3BsaXR0aW5nIG9uIGNvbnN0YW50IHVzZXItc3VwcGxpZWQgcGF0aHMuCitkbmwgUE9TSVguMiB3b3JkIHNwbGl0dGluZyBpcyBkb25lIG9ubHkgb24gdGhlIG91dHB1dCBvZiB3b3JkIGV4cGFuc2lvbnMsCitkbmwgbm90IGV2ZXJ5IHdvcmQuICBUaGlzIGNsb3NlcyBhIGxvbmdzdGFuZGluZyBzaCBzZWN1cml0eSBob2xlLgorICBhY19kdW1teT0ibTRfaWYoWyQyXSwgLCAkUEFUSCwgWyQyXSkiCisgIGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbworICAgIElGUz0iJGx0X3NhdmVfaWZzIgorICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyQxOyB0aGVuCisgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8kMSIKKyAgICAgIGlmIHRlc3QgLW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorCSJmaWxlX21hZ2ljICIqKQorCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwoLipcKSJgCisJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKKwkgICAgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKwkgICAgOgorCSAgZWxzZQorCSAgICBjYXQgPDxfTFRfRU9GIDE+JjIKKworKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKKyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4KKyoqKiBUaGUgcmVzdWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVkIGxpYnJhcmllcworKioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0CisqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKKyoqKiBsaWJyYXJpZXMgd2lsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UKKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KKyoqKiBidWctbGlidG9vbEBnbnUub3JnCisKK19MVF9FT0YKKwkgIGZpIDs7CisJZXNhYworICAgICAgZmkKKyAgICAgIGJyZWFrCisgICAgZmkKKyAgZG9uZQorICBJRlM9IiRsdF9zYXZlX2lmcyIKKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCisgIDs7Citlc2FjXSkKK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgoraWYgdGVzdCAtbiAiJE1BR0lDX0NNRCI7IHRoZW4KKyAgQUNfTVNHX1JFU1VMVCgkTUFHSUNfQ01EKQorZWxzZQorICBBQ19NU0dfUkVTVUxUKG5vKQorZmkKK19MVF9ERUNMKFtdLCBbTUFHSUNfQ01EXSwgWzBdLAorCSBbVXNlZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyB3aXRoICJmaWxlIl0pZG5sCitdKSMgX0xUX1BBVEhfVE9PTF9QUkVGSVgKKworIyBPbGQgbmFtZToKK0FVX0FMSUFTKFtBQ19QQVRIX1RPT0xfUFJFRklYXSwgW19MVF9QQVRIX1RPT0xfUFJFRklYXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfUEFUSF9UT09MX1BSRUZJWF0sIFtdKQorCisKKyMgX0xUX1BBVEhfTUFHSUMKKyMgLS0tLS0tLS0tLS0tLS0KKyMgZmluZCBhIGZpbGUgcHJvZ3JhbSB3aGljaCBjYW4gcmVjb2duaXplIGEgc2hhcmVkIGxpYnJhcnkKK200X2RlZnVuKFtfTFRfUEFUSF9NQUdJQ10sCitbX0xUX1BBVEhfVE9PTF9QUkVGSVgoJHthY190b29sX3ByZWZpeH1maWxlLCAvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIKQoraWYgdGVzdCAteiAiJGx0X2N2X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgorICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisgICAgX0xUX1BBVEhfVE9PTF9QUkVGSVgoZmlsZSwgL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCkKKyAgZWxzZQorICAgIE1BR0lDX0NNRD06CisgIGZpCitmaQorXSkjIF9MVF9QQVRIX01BR0lDCisKKworIyBMVF9QQVRIX0xECisjIC0tLS0tLS0tLS0KKyMgZmluZCB0aGUgcGF0aG5hbWUgdG8gdGhlIEdOVSBvciBub24tR05VIGxpbmtlcgorQUNfREVGVU4oW0xUX1BBVEhfTERdLAorW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCittNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisKK0FDX0FSR19XSVRIKFtnbnUtbGRdLAorICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLWdudS1sZF0sCisJW2Fzc3VtZSB0aGUgQyBjb21waWxlciB1c2VzIEdOVSBsZCBAPDpAZGVmYXVsdD1ub0A6PkBdKV0sCisgICAgW3Rlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXllc10sCisgICAgW3dpdGhfZ251X2xkPW5vXSlkbmwKKworYWNfcHJvZz1sZAoraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCisgIEFDX01TR19DSEVDS0lORyhbZm9yIGxkIHVzZWQgYnkgJENDXSkKKyAgY2FzZSAkaG9zdCBpbgorICAqLSotbWluZ3cqKQorICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMgbWluZ3cKKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7CisgICopCisgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1YCA7OworICBlc2FjCisgIGNhc2UgJGFjX3Byb2cgaW4KKyAgICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KKyAgICBbW1xcL11dKiB8ID86W1tcXC9dXSopCisgICAgICByZV9kaXJlbHQ9Jy9bW14vXV1bW14vXV0qL1wuXC4vJworICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBhdGhuYW1lIG9mIGxkCisgICAgICBhY19wcm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKKyAgICAgIHdoaWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KKwlhY19wcm9nPWAkRUNITyAkYWNfcHJvZ3wgJFNFRCAicyUkcmVfZGlyZWx0JS8lImAKKyAgICAgIGRvbmUKKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgorICAgICAgOzsKKyAgIiIpCisgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCisgICAgYWNfcHJvZz1sZAorICAgIDs7CisgICopCisgICAgIyBJZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFyY2ggZm9yIHRoZSBmaXJzdCBsZCBpbiBQQVRILgorICAgIHdpdGhfZ251X2xkPXVua25vd24KKyAgICA7OworICBlc2FjCitlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgR05VIGxkXSkKK2Vsc2UKKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igbm9uLUdOVSBsZF0pCitmaQorQUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfTEQsCitbaWYgdGVzdCAteiAiJExEIjsgdGhlbgorICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgorICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBhY2NlcHQgLXYuCisgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KKyAgICAgIGNhc2UgYCIkbHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCisJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhaworCTs7CisgICAgICAqKQorCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCisJOzsKKyAgICAgIGVzYWMKKyAgICBmaQorICBkb25lCisgIElGUz0iJGx0X3NhdmVfaWZzIgorZWxzZQorICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorZmldKQorTEQ9IiRsdF9jdl9wYXRoX0xEIgoraWYgdGVzdCAtbiAiJExEIjsgdGhlbgorICBBQ19NU0dfUkVTVUxUKCRMRCkKK2Vsc2UKKyAgQUNfTVNHX1JFU1VMVChubykKK2ZpCit0ZXN0IC16ICIkTEQiICYmIEFDX01TR19FUlJPUihbbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEhdKQorX0xUX1BBVEhfTERfR05VCitBQ19TVUJTVChbTERdKQorCitfTFRfVEFHREVDTChbXSwgW0xEXSwgWzFdLCBbVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllc10pCitdKSMgTFRfUEFUSF9MRAorCisjIE9sZCBuYW1lczoKK0FVX0FMSUFTKFtBTV9QUk9HX0xEXSwgW0xUX1BBVEhfTERdKQorQVVfQUxJQVMoW0FDX1BST0dfTERdLCBbTFRfUEFUSF9MRF0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FNX1BST0dfTERdLCBbXSkKK2RubCBBQ19ERUZVTihbQUNfUFJPR19MRF0sIFtdKQorCisKKyMgX0xUX1BBVEhfTERfR05VCisjLSAtLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9QQVRIX0xEX0dOVV0sCitbQUNfQ0FDSEVfQ0hFQ0soW2lmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkXSwgbHRfY3ZfcHJvZ19nbnVfbGQsCitbIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12LgorY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKypHTlUqIHwgKid3aXRoIEJGRCcqKQorICBsdF9jdl9wcm9nX2dudV9sZD15ZXMKKyAgOzsKKyopCisgIGx0X2N2X3Byb2dfZ251X2xkPW5vCisgIDs7Citlc2FjXSkKK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAorXSkjIF9MVF9QQVRIX0xEX0dOVQorCisKKyMgX0xUX0NNRF9SRUxPQUQKKyMgLS0tLS0tLS0tLS0tLS0KKyMgZmluZCByZWxvYWQgZmxhZyBmb3IgbGlua2VyCisjICAgLS0gUE9SVE1FIFNvbWUgbGlua2VycyBtYXkgbmVlZCBhIGRpZmZlcmVudCByZWxvYWQgZmxhZy4KK200X2RlZnVuKFtfTFRfQ01EX1JFTE9BRF0sCitbQUNfQ0FDSEVfQ0hFQ0soW2ZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXNdLAorICBsdF9jdl9sZF9yZWxvYWRfZmxhZywKKyAgW2x0X2N2X2xkX3JlbG9hZF9mbGFnPSctciddKQorcmVsb2FkX2ZsYWc9JGx0X2N2X2xkX3JlbG9hZF9mbGFnCitjYXNlICRyZWxvYWRfZmxhZyBpbgorIiIgfCAiICIqKSA7OworKikgcmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7Citlc2FjCityZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCitjYXNlICRob3N0X29zIGluCisgIGRhcndpbiopCisgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKyAgICBlbHNlCisgICAgICByZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisgICAgZmkKKyAgICA7OworZXNhYworX0xUX0RFQ0woW10sIFtyZWxvYWRfZmxhZ10sIFsxXSwgW0hvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXNdKWRubAorX0xUX0RFQ0woW10sIFtyZWxvYWRfY21kc10sIFsyXSlkbmwKK10pIyBfTFRfQ01EX1JFTE9BRAorCisKKyMgX0xUX0NIRUNLX01BR0lDX01FVEhPRAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGhvdyB0byBjaGVjayBmb3IgbGlicmFyeSBkZXBlbmRlbmNpZXMKKyMgIC0tIFBPUlRNRSBmaWxsIGluIHdpdGggdGhlIGR5bmFtaWMgbGlicmFyeSBjaGFyYWN0ZXJpc3RpY3MKK200X2RlZnVuKFtfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9EXSwKK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pCittNF9yZXF1aXJlKFtfTFRfREVDTF9PQkpEVU1QXSkKK0FDX0NBQ0hFX0NIRUNLKFtob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXNdLAorbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QsCitbbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCitsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0KK2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSd1bmtub3duJworIyBOZWVkIHRvIHNldCB0aGUgcHJlY2VkaW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0CisjIGludGVybGlicmFyeSBkZXBlbmRlbmNpZXMuCisjICdub25lJyAtLSBkZXBlbmRlbmNpZXMgbm90IHN1cHBvcnRlZC4KKyMgYHVua25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRvY3VtZW50cyB0aGF0IHdlIHJlYWxseSBkb24ndCBrbm93LgorIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNpZXMgcGFzc2VkIHdpdGggbm8gY2hlY2tzLgorIyAndGVzdF9jb21waWxlJyAtLSBjaGVjayBieSBtYWtpbmcgdGVzdCBwcm9ncmFtLgorIyAnZmlsZV9tYWdpYyBbW3JlZ2V4XV0nIC0tIGNoZWNrIGJ5IGxvb2tpbmcgZm9yIGZpbGVzIGluIGxpYnJhcnkgcGF0aAorIyB3aGljaCByZXNwb25kcyB0byB0aGUgJGZpbGVfbWFnaWNfY21kIHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KKyMgSWYgeW91IGhhdmUgYGZpbGUnIG9yIGVxdWl2YWxlbnQgb24geW91ciBzeXN0ZW0gYW5kIHlvdSdyZSBub3Qgc3VyZQorIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2lsbCAqYWx3YXlzKiB3b3JrLCB5b3UgcHJvYmFibHkgd2FudCB0aGlzIG9uZS4KKworY2FzZSAkaG9zdF9vcyBpbgorYWl4W1s0LTldXSopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKK2Jlb3MqKQorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorICA7OworCitic2RpW1s0NV1dKikKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpJworICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28KKyAgOzsKKworY3lnd2luKikKKyAgIyBmdW5jX3dpbjMyX2xpYmlkIGlzIGEgc2hlbGwgZnVuY3Rpb24gZGVmaW5lZCBpbiBsdG1haW4uc2gKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCisgIDs7CisKK21pbmd3KiB8IHB3MzIqKQorICAjIEJhc2UgTVNZUy9NaW5HVyBkbyBub3QgcHJvdmlkZSB0aGUgJ2ZpbGUnIGNvbW1hbmQgbmVlZGVkIGJ5CisgICMgZnVuY193aW4zMl9saWJpZCBzaGVsbCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLAorICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1wbGUgYmVjYXVzZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5nLgorICBpZiAoIGZpbGUgLyApID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCisgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCisgIGVsc2UKKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycKKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCisgIGZpCisgIDs7CisKK2NlZ2NjKQorICAjIHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLiBTZWUgbWluZ3cqLgorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZS1hcm0tLipsaXR0bGUoLiphcmNoaXRlY3R1cmU6IGFybSk/JworICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCisgIDs7CisKK2RhcndpbiogfCByaGFwc29keSopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCisgICAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgICBpKjg2ICkKKyAgICAgICMgTm90IHN1cmUgd2hldGhlciB0aGUgcHJlc2VuY2Ugb2YgT3BlbkJTRCBoZXJlIHdhcyBhIG1pc3Rha2UuCisgICAgICAjIExldCdzIGFjY2VwdCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVkIHVwLgorICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lbWzMtOV1dODYgKGNvbXBhY3QgKT9kZW1hbmQgcGFnZWQgc2hhcmVkIGxpYnJhcnknCisgICAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCisgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCisgICAgICA7OworICAgIGVzYWMKKyAgZWxzZQorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIGZpCisgIDs7CisKK2dudSopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKK2hwdXgxMC4yMCogfCBocHV4MTEqKQorICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCisgIGNhc2UgJGhvc3RfY3B1IGluCisgIGlhNjQqKQorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1dfEVMRi1bWzAtOV1dW1swLTldXSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9ocHV4MzIvbGliYy5zbworICAgIDs7CisgIGhwcGEqNjQqKQorICAgIFtsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gUEEtUklTQyBbMC05XS5bMC05XSddCisgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCisgICAgOzsKKyAgKikKKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxQQS1SSVNDW1swLTldXS5bWzAtOV1dKSBzaGFyZWQgbGlicmFyeScKKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJjLnNsCisgICAgOzsKKyAgZXNhYworICA7OworCitpbnRlcml4W1szLTldXSopCisgICMgUElDIGNvZGUgaXMgYnJva2VuIG9uIEludGVyaXggMy54LCB0aGF0J3Mgd2h5IHxcLmEgbm90IHxfcGljXC5hIGhlcmUKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb3xcLmEpJCcKKyAgOzsKKworaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKyAgY2FzZSAkTEQgaW4KKyAgKi0zMnwqIi0zMiAiKSBsaWJtYWdpYz0zMi1iaXQ7OworICAqLW4zMnwqIi1uMzIgIikgbGlibWFnaWM9TjMyOzsKKyAgKi02NHwqIi02NCAiKSBsaWJtYWdpYz02NC1iaXQ7OworICAqKSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisgIGVzYWMKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgOzsKKworIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgorbGludXgqIHwgaypic2QqLWdudSkKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgOzsKKworbmV0YnNkKikKKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKKyAgZWxzZQorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc298X3BpY1wuYSkkJworICBmaQorICA7OworCituZXdvczYqKQorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoZXhlY3V0YWJsZXxkeW5hbWljIGxpYiknCisgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCisgIDs7CisKKypudG8qIHwgKnFueCopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKK29wZW5ic2QqKQorICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfFwuc298X3BpY1wuYSkkJworICBlbHNlCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKKyAgZmkKKyAgOzsKKworb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorICA7OworCityZG9zKikKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgOzsKKworc29sYXJpcyopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorICA7OworCitzeXN2NCB8IHN5c3Y0LjMqKQorICBjYXNlICRob3N0X3ZlbmRvciBpbgorICBtb3Rvcm9sYSkKKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYikgTVtbMC05XV1bWzAtOV1dKiBWZXJzaW9uIFtbMC05XV0nCisgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5zbypgCisgICAgOzsKKyAgbmNyKQorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgICAgOzsKKyAgc2VxdWVudCkKKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJworICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCisgICAgOzsKKyAgc25pKQorICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9ImZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tMTV1dU0IgZHluYW1pYyBsaWIiCisgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L2xpYi9saWJjLnNvCisgICAgOzsKKyAgc2llbWVucykKKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorICAgIDs7CisgIHBjKQorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgICAgOzsKKyAgZXNhYworICA7OworCit0cGYqKQorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorICA7OworZXNhYworXSkKK2ZpbGVfbWFnaWNfY21kPSRsdF9jdl9maWxlX21hZ2ljX2NtZAorZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCit0ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxpYnNfY2hlY2tfbWV0aG9kPXVua25vd24KKworX0xUX0RFQ0woW10sIFtkZXBsaWJzX2NoZWNrX21ldGhvZF0sIFsxXSwKKyAgICBbTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUgc2hhcmVkIG9iamVjdHNdKQorX0xUX0RFQ0woW10sIFtmaWxlX21hZ2ljX2NtZF0sIFsxXSwKKyAgICBbQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSAiZmlsZV9tYWdpYyJdKQorXSkjIF9MVF9DSEVDS19NQUdJQ19NRVRIT0QKKworCisjIExUX1BBVEhfTk0KKyMgLS0tLS0tLS0tLQorIyBmaW5kIHRoZSBwYXRobmFtZSB0byBhIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlcgorQUNfREVGVU4oW0xUX1BBVEhfTk1dLAorW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorQUNfQ0FDSEVfQ0hFQ0soW2ZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKV0sIGx0X2N2X3BhdGhfTk0sCitbaWYgdGVzdCAtbiAiJE5NIjsgdGhlbgorICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKyAgbHRfY3ZfcGF0aF9OTT0iJE5NIgorZWxzZQorICBsdF9ubV90b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIKKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IiAmJiB0ZXN0ICIkYnVpbGQiID0gIiRob3N0IjsgdGhlbgorICAgIGx0X25tX3RvX2NoZWNrPSIkbHRfbm1fdG9fY2hlY2sgbm0iCisgIGZpCisgIGZvciBsdF90bXBfbm0gaW4gJGx0X25tX3RvX2NoZWNrOyBkbworICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorICAgIGZvciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluL2VsZiAvdXNyL2Njcy9iaW4gL3Vzci91Y2IgL2JpbjsgZG8KKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorICAgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKyAgICAgIHRtcF9ubT0iJGFjX2Rpci8kbHRfdG1wX25tIgorICAgICAgaWYgdGVzdCAtZiAiJHRtcF9ubSIgfHwgdGVzdCAtZiAiJHRtcF9ubSRhY19leGVleHQiIDsgdGhlbgorCSMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBubSBhY2NlcHRzIGEgQlNELWNvbXBhdCBmbGFnLgorCSMgQWRkaW5nIHRoZSBgc2VkIDFxJyBwcmV2ZW50cyBmYWxzZSBwb3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6CisJIyAgIG5tOiB1bmtub3duIG9wdGlvbiAiQiIgaWdub3JlZAorCSMgVHJ1NjQncyBubSBjb21wbGFpbnMgdGhhdCAvZGV2L251bGwgaXMgYW4gaW52YWxpZCBvYmplY3QgZmlsZQorCWNhc2UgYCIkdG1wX25tIiAtQiAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgorCSovZGV2L251bGwqIHwgKidJbnZhbGlkIGZpbGUgb3Igb2JqZWN0IHR5cGUnKikKKwkgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLUIiCisJICBicmVhaworCSAgOzsKKwkqKQorCSAgY2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCisJICAqL2Rldi9udWxsKikKKwkgICAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtcCIKKwkgICAgYnJlYWsKKwkgICAgOzsKKwkgICopCisJICAgIGx0X2N2X3BhdGhfTk09JHtsdF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVwIHRoZSBmaXJzdCBtYXRjaCwgYnV0CisJICAgIGNvbnRpbnVlICMgc28gdGhhdCB3ZSBjYW4gdHJ5IHRvIGZpbmQgb25lIHRoYXQgc3VwcG9ydHMgQlNEIGZsYWdzCisJICAgIDs7CisJICBlc2FjCisJICA7OworCWVzYWMKKyAgICAgIGZpCisgICAgZG9uZQorICAgIElGUz0iJGx0X3NhdmVfaWZzIgorICBkb25lCisgIDogJHtsdF9jdl9wYXRoX05NPW5vfQorZmldKQoraWYgdGVzdCAiJGx0X2N2X3BhdGhfTk0iICE9ICJubyI7IHRoZW4KKyAgTk09IiRsdF9jdl9wYXRoX05NIgorZWxzZQorICAjIERpZG4ndCBmaW5kIGFueSBCU0QgY29tcGF0aWJsZSBuYW1lIGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KKyAgQUNfQ0hFQ0tfVE9PTFMoRFVNUEJJTiwgWyJkdW1wYmluIC1zeW1ib2xzIiAibGluayAtZHVtcCAtc3ltYm9scyJdLCA6KQorICBBQ19TVUJTVChbRFVNUEJJTl0pCisgIGlmIHRlc3QgIiREVU1QQklOIiAhPSAiOiI7IHRoZW4KKyAgICBOTT0iJERVTVBCSU4iCisgIGZpCitmaQordGVzdCAteiAiJE5NIiAmJiBOTT1ubQorQUNfU1VCU1QoW05NXSkKK19MVF9ERUNMKFtdLCBbTk1dLCBbMV0sIFtBIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3Rlcl0pZG5sCisKK0FDX0NBQ0hFX0NIRUNLKFt0aGUgbmFtZSBsaXN0ZXIgKCROTSkgaW50ZXJmYWNlXSwgW2x0X2N2X25tX2ludGVyZmFjZV0sCisgIFtsdF9jdl9ubV9pbnRlcmZhY2U9IkJTRCBubSIKKyAgZWNobyAiaW50IHNvbWVfdmFyaWFibGUgPSAwOyIgPiBjb25mdGVzdC4kYWNfZXh0CisgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICRhY19jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisgIChldmFsICIkYWNfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCisgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkTk0gXFxcImNvbmZ0ZXN0LiRhY19vYmpleHRcXFwiXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisgIChldmFsICIkTk0gXCJjb25mdGVzdC4kYWNfb2JqZXh0XCIiIDI+Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0KQorICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogb3V0cHV0XCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisgIGNhdCBjb25mdGVzdC5vdXQgPiZBU19NRVNTQUdFX0xPR19GRAorICBpZiAkR1JFUCAnRXh0ZXJuYWwuKnNvbWVfdmFyaWFibGUnIGNvbmZ0ZXN0Lm91dCA+IC9kZXYvbnVsbDsgdGhlbgorICAgIGx0X2N2X25tX2ludGVyZmFjZT0iTVMgZHVtcGJpbiIKKyAgZmkKKyAgcm0gLWYgY29uZnRlc3QqXSkKK10pIyBMVF9QQVRIX05NCisKKyMgT2xkIG5hbWVzOgorQVVfQUxJQVMoW0FNX1BST0dfTk1dLCBbTFRfUEFUSF9OTV0pCitBVV9BTElBUyhbQUNfUFJPR19OTV0sIFtMVF9QQVRIX05NXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQU1fUFJPR19OTV0sIFtdKQorZG5sIEFDX0RFRlVOKFtBQ19QUk9HX05NXSwgW10pCisKKworIyBMVF9MSUJfTQorIyAtLS0tLS0tLQorIyBjaGVjayBmb3IgbWF0aCBsaWJyYXJ5CitBQ19ERUZVTihbTFRfTElCX01dLAorW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKK0xJQk09CitjYXNlICRob3N0IGluCisqLSotYmVvcyogfCAqLSotY3lnd2luKiB8ICotKi1wdzMyKiB8ICotKi1kYXJ3aW4qKQorICAjIFRoZXNlIHN5c3RlbSBkb24ndCBoYXZlIGxpYm0sIG9yIGRvbid0IG5lZWQgaXQKKyAgOzsKKyotbmNyLXN5c3Y0LjMqKQorICBBQ19DSEVDS19MSUIobXcsIF9td3ZhbGlkY2hlY2tsLCBMSUJNPSItbG13IikKKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0iJExJQk0gLWxtIikKKyAgOzsKKyopCisgIEFDX0NIRUNLX0xJQihtLCBjb3MsIExJQk09Ii1sbSIpCisgIDs7Citlc2FjCitBQ19TVUJTVChbTElCTV0pCitdKSMgTFRfTElCX00KKworIyBPbGQgbmFtZToKK0FVX0FMSUFTKFtBQ19DSEVDS19MSUJNXSwgW0xUX0xJQl9NXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfQ0hFQ0tfTElCTV0sIFtdKQorCisKKyMgX0xUX0NPTVBJTEVSX05PX1JUVEkoW1RBR05BTUVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX0NPTVBJTEVSX05PX1JUVEldLAorW200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorCitfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9CisKK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0nIC1mbm8tYnVpbHRpbicKKworICBfTFRfQ09NUElMRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9uc10sCisgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMsCisgICAgWy1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnNdLCBbXSwKKyAgICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPSIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiXSkKK2ZpCitfTFRfVEFHREVDTChbbm9fYnVpbHRpbl9mbGFnXSwgW2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnXSwgWzFdLAorCVtDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zXSkKK10pIyBfTFRfQ09NUElMRVJfTk9fUlRUSQorCisKKyMgX0xUX0NNRF9HTE9CQUxfU1lNQk9MUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10sCitbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCitBQ19SRVFVSVJFKFtMVF9QQVRIX05NXSlkbmwKK0FDX1JFUVVJUkUoW0xUX1BBVEhfTERdKWRubAorbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorCisjIENoZWNrIGZvciBjb21tYW5kIHRvIGdyYWIgdGhlIHJhdyBzeW1ib2wgbmFtZSBmb2xsb3dlZCBieSBDIHN5bWJvbCBmcm9tIG5tLgorQUNfTVNHX0NIRUNLSU5HKFtjb21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0XSkKK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sCitbCisjIFRoZXNlIGFyZSBzYW5lIGRlZmF1bHRzIHRoYXQgd29yayBvbiBhdCBsZWFzdCBhIGZldyBvbGQgc3lzdGVtcy4KKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCisKKyMgQ2hhcmFjdGVyIGNsYXNzIGRlc2NyaWJpbmcgTk0gZ2xvYmFsIHN5bWJvbCBjb2Rlcy4KK3N5bWNvZGU9J1tbQkNERUdSU1RdXScKKworIyBSZWdleHAgdG8gbWF0Y2ggc3ltYm9scyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJlY3RseSBmcm9tIEMuCitzeW1wYXQ9J1woW1tfQS1aYS16XV1bW19BLVphLXowLTldXSpcKScKKworIyBEZWZpbmUgc3lzdGVtLXNwZWNpZmljIHZhcmlhYmxlcy4KK2Nhc2UgJGhvc3Rfb3MgaW4KK2FpeCopCisgIHN5bWNvZGU9J1tbQkNEVF1dJworICA7OworY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorICBzeW1jb2RlPSdbW0FCQ0RHSVNUV11dJworICA7OworaHB1eCopCisgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisgICAgc3ltY29kZT0nW1tBQkNERUdSU1RdXScKKyAgZmkKKyAgOzsKK2lyaXgqIHwgbm9uc3RvcHV4KikKKyAgc3ltY29kZT0nW1tCQ0RFR1JTVF1dJworICA7Oworb3NmKikKKyAgc3ltY29kZT0nW1tCQ0RFR1FSU1RdXScKKyAgOzsKK3NvbGFyaXMqKQorICBzeW1jb2RlPSdbW0JEUlRdXScKKyAgOzsKK3NjbzMuMnY1KikKKyAgc3ltY29kZT0nW1tEVF1dJworICA7Oworc3lzdjQuMnV3MiopCisgIHN5bWNvZGU9J1tbRFRdXScKKyAgOzsKK3N5c3Y1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisgIHN5bWNvZGU9J1tbQUJEVF1dJworICA7Oworc3lzdjQpCisgIHN5bWNvZGU9J1tbREZOU1RVXV0nCisgIDs7Citlc2FjCisKKyMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHVzZSBpdHMgc3RhbmRhcmQgc3ltYm9sIGNvZGVzLgorY2FzZSBgJE5NIC1WIDI+JjFgIGluCisqR05VKiB8ICond2l0aCBCRkQnKikKKyAgc3ltY29kZT0nW1tBQkNER0lSU1RXXV0nIDs7Citlc2FjCisKKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIGEgcHJvcGVyIEMgZGVjbGFyYXRpb24uCisjIFNvbWUgc3lzdGVtcyAoZXNwLiBvbiBpYTY0KSBsaW5rIGRhdGEgYW5kIGNvZGUgc3ltYm9scyBkaWZmZXJlbnRseSwKKyMgc28gdXNlIHRoaXMgZ2VuZXJhbCBhcHByb2FjaC4KK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCisKKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcworbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKSAkLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKSAkLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwobGliW1teIF1dKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcImxpYlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKKworIyBIYW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCitvcHRfY3I9CitjYXNlICRidWlsZF9vcyBpbgorbWluZ3cqKQorICBvcHRfY3I9YCRFQ0hPICd4XHswLDFcfScgfCB0ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4gcmVnZXhwCisgIDs7Citlc2FjCisKKyMgVHJ5IHdpdGhvdXQgYSBwcmVmaXggdW5kZXJzY29yZSwgdGhlbiB3aXRoIGl0LgorZm9yIGFjX3N5bXByZnggaW4gIiIgIl8iOyBkbworCisgICMgVHJhbnNmb3JtIHN5bWNvZGUsIHN5bXBhdCwgYW5kIHN5bXByZnggaW50byBhIHJhdyBzeW1ib2wgYW5kIGEgQyBzeW1ib2wuCisgIHN5bXhmcm09IlxcMSAkYWNfc3ltcHJmeFxcMiBcXDIiCisKKyAgIyBXcml0ZSB0aGUgcmF3IGFuZCBDIGlkZW50aWZpZXJzLgorICBpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBkdW1wYmluIjsgdGhlbgorICAgICMgRmFrZSBpdCBmb3IgZHVtcGJpbiBhbmQgc2F5IFQgZm9yIGFueSBub24tc3RhdGljIGZ1bmN0aW9uCisgICAgIyBhbmQgRCBmb3IgYW55IGdsb2JhbCB2YXJpYWJsZS4KKyAgICAjIEFsc28gZmluZCBDKysgYW5kIF9fZmFzdGNhbGwgc3ltYm9scyBmcm9tIE1TVkMrKywKKyAgICAjIHdoaWNoIHN0YXJ0IHdpdGggQCBvciA/LgorICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9IiRBV0sgWyciXAorIiAgICAge2xhc3Rfc2VjdGlvbj1zZWN0aW9uOyBzZWN0aW9uPVwkIDN9OyJcCisiICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBhbnkpL3toaWRlW2xhc3Rfc2VjdGlvbl09MX07IlwKKyIgICAgIFwkIDAhfi9FeHRlcm5hbCAqXHwve25leHR9OyJcCisiICAgICAvIDArIFVOREVGIC97bmV4dH07IC8gVU5ERUYgXChbXnxdXCkqKCkve25leHR9OyJcCisiICAgICB7aWYoaGlkZVtzZWN0aW9uXSkgbmV4dH07IlwKKyIgICAgIHtmPTB9OyBcJCAwfi9cKFwpLipcfC97Zj0xfTsge3ByaW50ZiBmID8gXCJUIFwiIDogXCJEIFwifTsiXAorIiAgICAge3NwbGl0KFwkIDAsIGEsIC9cfHxcci8pOyBzcGxpdChhWzJdLCBzKX07IlwKKyIgICAgIHNbMV1+L15bQD9dL3twcmludCBzWzFdLCBzWzFdOyBuZXh0fTsiXAorIiAgICAgc1sxXX5wcmZ4IHtzcGxpdChzWzFdLHQsXCJAXCIpOyBwcmludCB0WzFdLCBzdWJzdHIodFsxXSxsZW5ndGgocHJmeCkpfSJcCisiICAgICAnIHByZng9XiRhY19zeW1wcmZ4XSIKKyAgZWxzZQorICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbWwkgXV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbWwkgXV1bWwkgXV0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCisgIGZpCisKKyAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCisgIHBpcGVfd29ya3M9bm8KKworICBybSAtZiBjb25mdGVzdCoKKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKK2NoYXIgbm1fdGVzdF92YXI7Cit2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpe30KKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCitpbnQgbWFpbigpe25tX3Rlc3RfdmFyPSdhJztubV90ZXN0X2Z1bmMoKTtyZXR1cm4oMCk7fQorX0xUX0VPRgorCisgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJvbHMuCisgICAgbmxpc3Q9Y29uZnRlc3Qubm0KKyAgICBpZiBBQ19UUllfRVZBTChOTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdCkgJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgorICAgICAgIyBUcnkgc29ydGluZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KKyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1bmlxID4gIiRubGlzdCJUOyB0aGVuCisJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCisgICAgICBlbHNlCisJcm0gLWYgIiRubGlzdCJUCisgICAgICBmaQorCisgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIHNuYWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCisgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorCWlmICRHUkVQICcgbm1fdGVzdF9mdW5jJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorCSAgY2F0IDw8X0xUX0VPRiA+IGNvbmZ0ZXN0LiRhY19leHQKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworX0xUX0VPRgorCSAgIyBOb3cgZ2VuZXJhdGUgdGhlIHN5bWJvbCBmaWxlLgorCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dCcKKworCSAgY2F0IDw8X0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0CisKKy8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8KK2NvbnN0IHN0cnVjdCB7CisgIGNvbnN0IGNoYXIgKm5hbWU7CisgIHZvaWQgICAgICAgKmFkZHJlc3M7Cit9CitsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW1tdXSA9Cit7CisgIHsgIkBQUk9HUkFNQCIsICh2b2lkICopIDAgfSwKK19MVF9FT0YKKwkgICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBcKC4qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sLyIgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dAorCSAgY2F0IDw8XF9MVF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAorICB7MCwgKHZvaWQgKikgMH0KK307CisKKy8qIFRoaXMgd29ya3MgYXJvdW5kIGEgcHJvYmxlbSBpbiBGcmVlQlNEIGxpbmtlciAqLworI2lmZGVmIEZSRUVCU0RfV09SS0FST1VORAorc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKKyAgcmV0dXJuIGx0X19QUk9HUkFNX19MVFhfcHJlbG9hZGVkX3N5bWJvbHM7Cit9CisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKK19MVF9FT0YKKwkgICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCisJICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKKwkgIGx0X3NhdmVfTElCUz0iJExJQlMiCisJICBsdF9zYXZlX0NGTEFHUz0iJENGTEFHUyIKKwkgIExJQlM9ImNvbmZ0c3RtLiRhY19vYmpleHQiCisJICBDRkxBR1M9IiRDRkxBR1MkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpIgorCSAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgorCSAgICBwaXBlX3dvcmtzPXllcworCSAgZmkKKwkgIExJQlM9IiRsdF9zYXZlX0xJQlMiCisJICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKKwllbHNlCisJICBlY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JkFTX01FU1NBR0VfTE9HX0ZECisJZmkKKyAgICAgIGVsc2UKKwllY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X3ZhciBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgICAgIGZpCisgICAgZWxzZQorICAgICAgZWNobyAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgIGZpCisgIGVsc2UKKyAgICBlY2hvICIkcHJvZ25hbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKKyAgZmkKKyAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mdHN0KgorCisgICMgRG8gbm90IHVzZSB0aGUgZ2xvYmFsX3N5bWJvbF9waXBlIHVubGVzcyBpdCB3b3Jrcy4KKyAgaWYgdGVzdCAiJHBpcGVfd29ya3MiID0geWVzOyB0aGVuCisgICAgYnJlYWsKKyAgZWxzZQorICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9CisgIGZpCitkb25lCitdKQoraWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPQorZmkKK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgorICBBQ19NU0dfUkVTVUxUKGZhaWxlZCkKK2Vsc2UKKyAgQUNfTVNHX1JFU1VMVChvaykKK2ZpCisKK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3BpcGVdLCBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sIFsxXSwKKyAgICBbVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiByYXcgc3ltYm9scyBhbmQgQyBuYW1lc10pCitfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jZGVjbF0sIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbF0sIFsxXSwKKyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbl0pCitfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc10sCisgICAgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzXSwgWzFdLAorICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXJdKQorX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeF0sCisgICAgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXhdLCBbMV0sCisgICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVlZGVkXSkKK10pICMgX0xUX0NNRF9HTE9CQUxfU1lNQk9MUworCisKKyMgX0xUX0NPTVBJTEVSX1BJQyhbVEFHTkFNRV0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9DT01QSUxFUl9QSUNdLAorW200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9CitfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CitfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9CisKK0FDX01TR19DSEVDS0lORyhbZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUNdKQorbTRfaWYoWyQxXSwgW0NYWF0sIFsKKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgorICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKworICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBhaXgqKQorICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICBmaQorICAgICAgOzsKKworICAgIGFtaWdhb3MqKQorICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgICAgIHBvd2VycGMpCisgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisgICAgICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworICAgICAgICA7OworICAgICAgbTY4aykKKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorICAgICAgICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JworICAgICAgICA7OworICAgICAgZXNhYworICAgICAgOzsKKworICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorICAgICAgOzsKKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgb3MyKiB8IHB3MzIqIHwgY2VnY2MqKQorICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10sCisJW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLURETExfRVhQT1JUJ10pCisgICAgICA7OworICAgIGRhcndpbiogfCByaGFwc29keSopCisgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mbm8tY29tbW9uJworICAgICAgOzsKKyAgICAqZGpncHAqKQorICAgICAgIyBESkdQUCBkb2VzIG5vdCBzdXBwb3J0IHNoYXJlZCBsaWJyYXJpZXMgYXQgYWxsCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisgICAgICA7OworICAgIGludGVyaXhbWzMtOV1dKikKKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCisgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KKyAgICAgIDs7CisgICAgc3lzdjQqTVAqKQorICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZvcm1fcGljCisgICAgICBmaQorICAgICAgOzsKKyAgICBocHV4KikKKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAorICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCisgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgorICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgICAgIGhwcGEqNjQqKQorCTs7CisgICAgICAqKQorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisJOzsKKyAgICAgIGVzYWMKKyAgICAgIDs7CisgICAgKnFueCogfCAqbnRvKikKKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCisgICAgICA7OworICAgICopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworICAgICAgOzsKKyAgICBlc2FjCisgIGVsc2UKKyAgICBjYXNlICRob3N0X29zIGluCisgICAgICBhaXhbWzQtOV1dKikKKwkjIEFsbCBBSVggY29kZSBpcyBQSUMuCisJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKwkgICMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworCWVsc2UKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJworCWZpCisJOzsKKyAgICAgIGNob3J1cyopCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwljeGNoNjgqKQorCSAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKwkgICMgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEiCisJICA7OworCWVzYWMKKwk7OworICAgICAgZGd1eCopCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwkgIGVjKysqKQorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworCSAgICA7OworCSAgZ2hjeCopCisJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKKwkgICAgOzsKKwkgICopCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCisJIyBGcmVlQlNEIHVzZXMgR05VIEMrKworCTs7CisgICAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKwljYXNlICRjY19iYXNlbmFtZSBpbgorCSAgQ0MqKQorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKwkgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCisJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicKKwkgICAgZmkKKwkgICAgOzsKKwkgIGFDQyopCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJworCSAgICBjYXNlICRob3N0X2NwdSBpbgorCSAgICBocHBhKjY0KnxpYTY0KikKKwkgICAgICAjICtaIHRoZSBkZWZhdWx0CisJICAgICAgOzsKKwkgICAgKikKKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJworCSAgICAgIDs7CisJICAgIGVzYWMKKwkgICAgOzsKKwkgICopCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICBpbnRlcml4KikKKwkjIFRoaXMgaXMgYzg5LCB3aGljaCBpcyBNUyBWaXN1YWwgQysrIChubyBzaGFyZWQgbGlicykKKwkjIEFueW9uZSB3YW50cyB0byBkbyBhIHBvcnQ/CisJOzsKKyAgICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwkgIENDKikKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCisJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1bHQuCisJICAgIDs7CisJICAqKQorCSAgICA7OworCWVzYWMKKwk7OworICAgICAgbGludXgqIHwgaypic2QqLWdudSkKKwljYXNlICRjY19iYXNlbmFtZSBpbgorCSAgS0NDKikKKwkgICAgIyBLQUkgQysrIENvbXBpbGVyCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctLWJhY2tlbmQgLVdsLCcKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKwkgICAgOzsKKwkgIGVjcGMqICkKKwkgICAgIyBvbGQgSW50ZWwgQysrIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJworCSAgICA7OworCSAgaWNwYyogKQorCSAgICAjIEludGVsIEMrKywgdXNlZCB0byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCisJICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJworCSAgICA7OworCSAgcGdDQyogfCBwZ2NwcCopCisJICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mcGljJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworCSAgICA7OworCSAgY3h4KikKKwkgICAgIyBDb21wYXEgQysrCisJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCisJICAgIDs7CisJICB4bGMqIHwgeGxDKikKKwkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcXBpYycKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctcXN0YXRpY2xpbmsnCisJICAgIDs7CisJICAqKQorCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKwkgICAgKlN1blwgQyopCisJICAgICAgIyBTdW4gQysrIDUuOQorCSAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJworCSAgICAgIDs7CisJICAgIGVzYWMKKwkgICAgOzsKKwllc2FjCisJOzsKKyAgICAgIGx5bnhvcyopCisJOzsKKyAgICAgIG04OGsqKQorCTs7CisgICAgICBtdnMqKQorCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisJICBjeHgqKQorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1XIGMsZXhwb3J0YWxsJworCSAgICA7OworCSAgKikKKwkgICAgOzsKKwllc2FjCisJOzsKKyAgICAgIG5ldGJzZCopCisJOzsKKyAgICAgICpxbngqIHwgKm50byopCisgICAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisgICAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJworICAgICAgICA7OworICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisJICBLQ0MqKQorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCisJICAgIDs7CisJICBSQ0MqKQorCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisJICAgIDs7CisJICBjeHgqKQorCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMrKworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQorCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKwkgICAgOzsKKwkgICopCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICBwc29zKikKKwk7OworICAgICAgc29sYXJpcyopCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwkgIENDKikKKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJworCSAgICA7OworCSAgZ2N4KikKKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctUElDJworCSAgICA7OworCSAgKikKKwkgICAgOzsKKwllc2FjCisJOzsKKyAgICAgIHN1bm9zNCopCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwkgIENDKikKKwkgICAgIyBTdW4gQysrIDQueAorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisJICAgIDs7CisJICBsY2MqKQorCSAgICAjIEx1Y2lkCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKKwkgICAgOzsKKwkgICopCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVOSVgqKQorCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisJICBDQyopCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworCSAgICA7OworCWVzYWMKKwk7OworICAgICAgdGFuZGVtKikKKwljYXNlICRjY19iYXNlbmFtZSBpbgorCSAgTkNDKikKKwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIwCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisJICAgIDs7CisJICAqKQorCSAgICA7OworCWVzYWMKKwk7OworICAgICAgdnh3b3JrcyopCisJOzsKKyAgICAgICopCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworCTs7CisgICAgZXNhYworICBmaQorXSwKK1sKKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCisKKyAgICBjYXNlICRob3N0X29zIGluCisgICAgICBhaXgqKQorICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICBmaQorICAgICAgOzsKKworICAgIGFtaWdhb3MqKQorICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgICAgIHBvd2VycGMpCisgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisgICAgICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworICAgICAgICA7OworICAgICAgbTY4aykKKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorICAgICAgICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JworICAgICAgICA7OworICAgICAgZXNhYworICAgICAgOzsKKworICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorICAgICAgOzsKKworICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCisgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQorICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKyAgICAgIG00X2lmKFskMV0sIFtHQ0pdLCBbXSwKKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKyAgICAgIDs7CisKKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcworICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicKKyAgICAgIDs7CisKKyAgICBocHV4KikKKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAorICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCisgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgorICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgICAgIGhwcGEqNjQqKQorCSMgK1ogdGhlIGRlZmF1bHQKKwk7OworICAgICAgKikKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworCTs7CisgICAgICBlc2FjCisgICAgICA7OworCisgICAgaW50ZXJpeFtbMy05XV0qKQorICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorICAgICAgOzsKKworICAgIG1zZG9zZGpncHAqKQorICAgICAgIyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKKyAgICAgICMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKyAgICAgIDs7CisKKyAgICAqbnRvKiB8ICpxbngqKQorICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKKyAgICAgIDs7CisKKyAgICBzeXN2NCpNUCopCisgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPS1LY29uZm9ybV9waWMKKyAgICAgIGZpCisgICAgICA7OworCisgICAgKikKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisgICAgICA7OworICAgIGVzYWMKKyAgZWxzZQorICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KKyAgICBjYXNlICRob3N0X29zIGluCisgICAgYWl4KikKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCisgICAgICBmaQorICAgICAgOzsKKworICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCisgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorCVtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQorICAgICAgOzsKKworICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4KKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisgICAgICBocHBhKjY0KnxpYTY0KikKKwkjICtaIHRoZSBkZWZhdWx0CisJOzsKKyAgICAgICopCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicKKwk7OworICAgICAgZXNhYworICAgICAgIyBJcyB0aGVyZSBhIGJldHRlciBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRsZWQgQ0M/CisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJworICAgICAgOzsKKworICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKyAgICAgICMgUElDICh3aXRoIC1LUElDKSBpcyB0aGUgZGVmYXVsdC4KKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCisgICAgICA7OworCisgICAgbGludXgqIHwgaypic2QqLWdudSkKKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICAjIG9sZCBJbnRlbCBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KKyAgICAgIGVjYyopCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCisgICAgICAgIDs7CisgICAgICAjIGljYyB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KKyAgICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgorICAgICAgaWNjKiB8IGlmb3J0KikKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKyAgICAgICAgOzsKKyAgICAgICMgTGFoZXkgRm9ydHJhbiA4LjEuCisgICAgICBsZjk1KikKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy0tc2hhcmVkJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLS1zdGF0aWMnCisJOzsKKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQorICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhlIFBlbnRpdW0gZ2NjIGNvbXBpbGVyLAorCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZnBpYycKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworICAgICAgICA7OworICAgICAgY2NjKikKKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgorICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworICAgICAgICA7OworICAgICAgeGwqKQorCSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAuMSBvbiBQUEMKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xcGljJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXFzdGF0aWNsaW5rJworCTs7CisgICAgICAqKQorCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorCSpTdW5cIEMqKQorCSAgIyBTdW4gQyA1LjkKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisJICA7OworCSpTdW5cIEYqKQorCSAgIyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29nbml6ZWQgZmxhZ3MgdG8gdGhlIGxpbmtlcgorCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nJworCSAgOzsKKwllc2FjCisJOzsKKyAgICAgIGVzYWMKKyAgICAgIDs7CisKKyAgICBuZXdzb3M2KQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICA7OworCisgICAgKm50byogfCAqcW54KikKKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCisgICAgICA7OworCisgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisgICAgICAjIEFsbCBPU0YvMSBjb2RlIGlzIFBJQy4KKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCisgICAgICA7OworCisgICAgcmRvcyopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworICAgICAgOzsKKworICAgIHNvbGFyaXMqKQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnOzsKKyAgICAgICopCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnOzsKKyAgICAgIGVzYWMKKyAgICAgIDs7CisKKyAgICBzdW5vczQqKQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLVBJQycKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICA7OworCisgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKyAgICAgIDs7CisKKyAgICBzeXN2NCpNUCopCisgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS2NvbmZvcm1fcGljJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICBmaQorICAgICAgOzsKKworICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworICAgICAgOzsKKworICAgIHVuaWNvcyopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KKyAgICAgIDs7CisKKyAgICB1dHM0KikKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICA7OworCisgICAgKikKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KKyAgICAgIDs7CisgICAgZXNhYworICBmaQorXSkKK2Nhc2UgJGhvc3Rfb3MgaW4KKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6CisgICpkamdwcCopCisgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorICAgIDs7CisgICopCisgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpQCZ0QG00X2lmKFskMV0sW10sWyAtRFBJQ10sW200X2lmKFskMV0sW0NYWF0sWyAtRFBJQ10sW10pXSkiCisgICAgOzsKK2VzYWMKK0FDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSldKQorX0xUX1RBR0RFQ0woW3dsXSwgW2x0X3Byb2dfY29tcGlsZXJfd2xdLCBbMV0sCisJW0hvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXJdKQorCisjCisjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisjCitpZiB0ZXN0IC1uICIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIjsgdGhlbgorICBfTFRfQ09NUElMRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgUElDIGZsYWcgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSB3b3Jrc10sCisgICAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MsICQxKV0sCisgICAgWyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSlAJnRAbTRfaWYoWyQxXSxbXSxbIC1EUElDXSxbbTRfaWYoWyQxXSxbQ1hYXSxbIC1EUElDXSxbXSldKV0sIFtdLAorICAgIFtjYXNlICRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkgaW4KKyAgICAgIiIgfCAiICIqKSA7OworICAgICAqKSBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9IiAkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIiA7OworICAgICBlc2FjXSwKKyAgICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vXSkKK2ZpCitfTFRfVEFHREVDTChbcGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9waWNdLCBbMV0sCisJW0FkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MgZm9yIGJ1aWxkaW5nIGxpYnJhcnkgb2JqZWN0c10pCisKKyMKKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KKyMKK3dsPSRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKSBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSlcIgorX0xUX0xJTktFUl9PUFRJT04oW2lmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzXSwKKyAgX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcywgJDEpLAorICAkbHRfdG1wX3N0YXRpY19mbGFnLAorICBbXSwKKyAgW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT1dKQorX0xUX1RBR0RFQ0woW2xpbmtfc3RhdGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9zdGF0aWNdLCBbMV0sCisJW0NvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmddKQorXSkjIF9MVF9DT01QSUxFUl9QSUMKKworCisjIF9MVF9MSU5LRVJfU0hMSUJTKFtUQUdOQU1FXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTZWUgaWYgdGhlIGxpbmtlciBzdXBwb3J0cyBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgorbTRfZGVmdW4oW19MVF9MSU5LRVJfU0hMSUJTXSwKK1tBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKK0FDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAorbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCittNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCittNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorbTRfcmVxdWlyZShbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10pZG5sCittNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKK200X2lmKFskMV0sIFtDWFhdLCBbCisgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgYWl4W1s0LTldXSopCisgICAgIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCisgICAgIyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQorICAgIGlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisgICAgZWxzZQorICAgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisgICAgZmkKKyAgICA7OworICBwdzMyKikKKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0iJGx0ZGxsX2NtZHMiCisgIDs7CisgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCisgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bW0JDREdSU11dW1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEgREFUQS87L14uKltbIF1dX19ubV9fL3MvXi4qW1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1teIF1dKi9cMSBEQVRBLzsvXklbWyBdXS9kOy9eW1tBSVRXXV1bWyBdXS9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworICA7OworICAqKQorICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisgIDs7CisgIGVzYWMKKyAgX0xUX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKT1bJ19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKiddCitdLCBbCisgIHJ1bnBhdGhfdmFyPQorICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CisgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0KKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CisgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9bm8KKyAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9bm8KKyAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KKyAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQorICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKKyAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8KKyAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorICBfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9CisgIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9CisgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPQorICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzLCAkMSk9CisgIF9MVF9UQUdWQVIodGhyZWFkX3NhZmVfZmxhZ19zcGVjLCAkMSk9CisgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKyAgIyBpbmNsdWRlX2V4cHN5bXMgc2hvdWxkIGJlIGEgbGlzdCBvZiBzcGFjZS1zZXBhcmF0ZWQgc3ltYm9scyB0byBiZSAqYWx3YXlzKgorICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAorICBfTFRfVEFHVkFSKGluY2x1ZGVfZXhwc3ltcywgJDEpPQorICAjIGV4Y2x1ZGVfZXhwc3ltcyBjYW4gYmUgYW4gZXh0ZW5kZWQgcmVnZXhwIG9mIHN5bWJvbHMgdG8gZXhjbHVkZQorICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCisgICMgZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJjJywKKyAgIyBhcyB3ZWxsIGFzIGFueSBzeW1ib2wgdGhhdCBjb250YWlucyBgZCcuCisgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQorICAjIEFsdGhvdWdoIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZhbGlkIHN5bWJvbCBDIG5hbWUsIG1vc3QgYS5vdXQKKyAgIyBwbGF0Zm9ybXMgKGFiKXVzZSBpdCBpbiBQSUMgY29kZSwgYnV0IHRoZWlyIGxpbmtlcnMgZ2V0IGNvbmZ1c2VkIGlmCisgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5vdAorICAjIHJlbHkgb24gdGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KKyAgIyBwcmVsb2FkZWQgc3ltYm9sIHRhYmxlcy4KKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xzLgorZG5sIE5vdGUgYWxzbyBhZGp1c3QgZXhjbHVkZV9leHBzeW1zIGZvciBDKysgYWJvdmUuCisgIGV4dHJhY3RfZXhwc3ltc19jbWRzPQorCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKKyAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCisgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCisgICAgICB3aXRoX2dudV9sZD1ubworICAgIGZpCisgICAgOzsKKyAgaW50ZXJpeCopCisgICAgIyB3ZSBqdXN0IGhvcGUvYXNzdW1lIHRoaXMgaXMgZ2NjIGFuZCBub3QgYzg5ICg9IE1TVkMrKykKKyAgICB3aXRoX2dudV9sZD15ZXMKKyAgICA7OworICBvcGVuYnNkKikKKyAgICB3aXRoX2dudV9sZD1ubworICAgIDs7CisgIGVzYWMKKworICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcworICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKKyAgICB3bGFyYz0nJHt3bH0nCisKKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQorICAgICMgaGVyZSBhbGxvd3MgdGhlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KKyAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKyAgICBlbHNlCisgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CisgICAgZmkKKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KKyAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKyAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCisgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgorICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgorICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKKyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKKyAgICBlc2FjCisKKyAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4KKyAgICBjYXNlICRob3N0X29zIGluCisgICAgYWl4W1szLTldXSopCisgICAgICAjIE9uIEFJWC9QUEMsIHRoZSBHTlUgbGlua2VyIGlzIHZlcnkgYnJva2VuCisgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJY2F0IDw8X0xUX0VPRiAxPiYyCisKKyoqKiBXYXJuaW5nOiB0aGUgR05VIGxpbmtlciwgYXQgbGVhc3QgdXAgdG8gcmVsZWFzZSAyLjkuMSwgaXMgcmVwb3J0ZWQKKyoqKiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gQUlYLgorKioqIFRoZXJlZm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgSWYgeW91CisqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0byBtb2RpZnkgeW91ciBQQVRICisqKiogc28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgorCitfTFRfRU9GCisgICAgICBmaQorICAgICAgOzsKKworICAgIGFtaWdhb3MqKQorICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgICAgIHBvd2VycGMpCisgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPScnCisgICAgICAgIDs7CisgICAgICBtNjhrKQorICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKyAgICAgICAgOzsKKyAgICAgIGVzYWMKKyAgICAgIDs7CisKKyAgICBiZW9zKikKKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKKwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCisJIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21lIGludmVzdGlnYXRpb24uICBGSVhNRQorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbm9zdGFydCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICBmaQorICAgICAgOzsKKworICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKyAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCisgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltbQUlUV11dW1sgXV0vcy8uKltbIF1dLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisKKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisJIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCisJICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisJZWxzZQorCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisJICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworCWZpfgorCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworICAgICAgZWxzZQorCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKyAgICAgIGZpCisgICAgICA7OworCisgICAgaW50ZXJpeFtbMy05XV0qKQorICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKyAgICAgICMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KKyAgICAgICMgSW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKKyAgICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKyAgICAgICMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKKyAgICAgICMgMjU2IEtpQi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKKyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworICAgICAgOzsKKworICAgIGdudSogfCBsaW51eCogfCB0cGYqIHwgaypic2QqLWdudSkKKyAgICAgIHRtcF9kaWV0PW5vCisgICAgICBpZiB0ZXN0ICIkaG9zdF9vcyIgPSBsaW51eC1kaWV0bGliYzsgdGhlbgorCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisJICBkaWV0XCAqKSB0bXBfZGlldD15ZXM7OwkjIGxpbnV4LWRpZXRsaWJjIHdpdGggc3RhdGljIGxpbmtpbmcgKCFkaWV0LWR5bikKKwllc2FjCisgICAgICBmaQorICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwgXAorCSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8KKyAgICAgIHRoZW4KKwl0bXBfYWRkZmxhZz0KKwl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcKKwljYXNlICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4KKyAgICAgICAgcGdjYyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgorCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKKwkgIDs7CisJcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycworCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFpbicgOzsKKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJIyBJbnRlbCBDIGNvbXBpbGVyIG9uIGlhNjQKKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYycgOzsKKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zvcl9tYWluJyA7OworCWlmYyogfCBpZm9ydCopCQkJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyCisJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OworCWxmOTUqKQkJCQkjIExhaGV5IEZvcnRyYW4gOC4xCisJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CisJICB0bXBfc2hhcmVkZmxhZz0nLS1zaGFyZWQnIDs7CisJeGxbW2NDXV0qKQkJCSMgSUJNIFhMIEMgOC4wIG9uIFBQQyAoZGVhbCB3aXRoIHhsZiBiZWxvdykKKwkgIHRtcF9zaGFyZWRmbGFnPSctcW1rc2hyb2JqJworCSAgdG1wX2FkZGZsYWc9IDs7CisJZXNhYworCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorCSpTdW5cIEMqKQkJCSMgU3VuIEMgNS45CisJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCSAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT15ZXMKKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMworCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworCWVzYWMKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworCisgICAgICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKwkgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorCSAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKwkgICAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKyAgICAgICAgZmkKKworCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisJeGxmKikKKwkgICMgSUJNIFhMIEZvcnRyYW4gMTAuMSBvbiBQUEMgY2Fubm90IGNyZWF0ZSBzaGFyZWQgbGlicyBpdHNlbGYKKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlIC0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Jy1ycGF0aCAkbGliZGlyJworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtbyAkbGliJworCSAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgorCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKwkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisJICAgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisJICBmaQorCSAgOzsKKwllc2FjCisgICAgICBlbHNlCisgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKyAgICAgIGZpCisgICAgICA7OworCisgICAgbmV0YnNkKikKKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW8gJGxpYicKKwl3bGFyYz0KKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisgICAgICBmaQorICAgICAgOzsKKworICAgIHNvbGFyaXMqKQorICAgICAgaWYgJExEIC12IDI+JjEgfCAkR1JFUCAnQkZEIDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCisJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCWNhdCA8PF9MVF9FT0YgMT4mMgorCisqKiogV2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUgbGlua2VyIGNhbm5vdCByZWxpYWJseQorKioqIGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNvbGFyaXMgc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAorKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQorKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KKworX0xUX0VPRgorICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworICAgICAgZWxzZQorCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKyAgICAgIGZpCisgICAgICA7OworCisgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKKyAgICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgorICAgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIuW1swLTldXS4qIHwgKlwgMi4xW1swLTVdXS4qKQorCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwljYXQgPDxfTFRfRU9GIDE+JjIKKworKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKKyoqKiByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTQ08gc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAorKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQorKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KKworX0xUX0VPRgorCTs7CisJKikKKwkgICMgRm9yIHNlY3VyaXR5IHJlYXNvbnMsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHlvdSBhbHdheXMKKwkgICMgdXNlIGFic29sdXRlIHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywgYW5kIGV4Y2x1ZGUgdGhlCisJICAjIERUX1JVTlBBVEggdGFnIGZyb20gZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gIEJ1dCBkb2luZyBzbworCSAgIyByZXF1aXJlcyB0aGF0IHlvdSBjb21waWxlIGV2ZXJ5dGhpbmcgdHdpY2UsIHdoaWNoIGlzIGEgcGFpbi4KKwkgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKwkgIGVsc2UKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgZmkKKwk7OworICAgICAgZXNhYworICAgICAgOzsKKworICAgIHN1bm9zNCopCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworICAgICAgd2xhcmM9CisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIDs7CisKKyAgICAqKQorICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICBmaQorICAgICAgOzsKKyAgICBlc2FjCisKKyAgICBpZiB0ZXN0ICIkX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubzsgdGhlbgorICAgICAgcnVucGF0aF92YXI9CisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CisgICAgZmkKKyAgZWxzZQorICAgICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIGxpbmtlciAobm90IEdOVSBsZCkKKyAgICBjYXNlICRob3N0X29zIGluCisgICAgYWl4MyopCisgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJExEIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEyIC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisgICAgICAjIE5vdGU6IHRoaXMgbGlua2VyIGhhcmRjb2RlcyB0aGUgZGlyZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQorICAgICAgIyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgorICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0IC16ICIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWMiOyB0aGVuCisJIyBOZWl0aGVyIGRpcmVjdCBoYXJkY29kaW5nIG5vciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCisJIyBicm9rZW4gY29sbGVjdDIuCisJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAorICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBhaXhbWzQtOV1dKikKKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisJIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorCSMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKwlleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JworCW5vX2VudHJ5X2ZsYWc9IiIKKyAgICAgIGVsc2UKKwkjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisJaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgorCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKwllbHNlCisJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKwlmaQorCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKworCSMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAorCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorCSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCisJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFpeFtbNS05XV0qKQorCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisJICBpZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgorCSAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworCSAgICBicmVhaworCSAgZmkKKwkgIGRvbmUKKwkgIDs7CisJZXNhYworCisJZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKKwlub19lbnRyeV9mbGFnPSctYm5vZW50cnknCisgICAgICBmaQorCisgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCisgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKKyAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAorICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCisKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JycKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoZmlsZV9saXN0X3NwZWMsICQxKT0nJHt3bH0tZiwnCisKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAxMl1dLiopCisJIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCisJIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCisJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgorCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCisJICB0aGVuCisJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKKwkgIDoKKwkgIGVsc2UKKwkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKKwkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCisJICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorCSAgZmkKKwkgIDs7CisJZXNhYworCXNoYXJlZF9mbGFnPSctc2hhcmVkJworCWlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorCSAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCisJZmkKKyAgICAgIGVsc2UKKwkjIG5vdCB1c2luZyBnY2MKKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorCSMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCisJIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKKwkgIHNoYXJlZF9mbGFnPSctRycKKwllbHNlCisJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCisJICBlbHNlCisJICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCisJICBmaQorCWZpCisgICAgICBmaQorCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1iZXhwYWxsJworICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgorICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKKyAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisgICAgICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KKyAgICAgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAkRUNITyAiWCR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKKyAgICAgIGVsc2UKKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIteiBub2RlZnMiCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKKwllbHNlCisJICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgorCSAjIGVtcHR5IGV4ZWN1dGFibGUuCisJIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisJIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgorCSAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKwkgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJworCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVyb2snCisJICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworCSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisJZmkKKyAgICAgIGZpCisgICAgICA7OworCisgICAgYW1pZ2FvcyopCisgICAgICBjYXNlICRob3N0X2NwdSBpbgorICAgICAgcG93ZXJwYykKKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKKyAgICAgICAgOzsKKyAgICAgIG02OGspCisgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworICAgICAgICA7OworICAgICAgZXNhYworICAgICAgOzsKKworICAgIGJzZGlbWzQ1XV0qKQorICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0tcmR5bmFtaWMKKyAgICAgIDs7CisKKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKyAgICAgICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywgYXMgdGhlcmUgaXMKKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nICcKKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KKyAgICAgIGxpYmV4dD1saWIKKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgorICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisgICAgICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgYCRFQ0hPICJYJGRlcGxpYnMiIHwgJFhzZWQgLWUgJ1wnJ3MvIC1sYyQvLydcJydgIC1saW5rIC1kbGx+bGlua25hbWVzPScKKyAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCisgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKKyAgICAgICMgRklYTUU6IFNob3VsZCBsZXQgdGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCisgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJworICAgICAgX0xUX1RBR1ZBUihmaXhfc3JjZmlsZV9wYXRoLCAkMSk9J2BjeWdwYXRoIC13ICIkc3JjZmlsZSJgJworICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisgICAgICA7OworCisgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKyAgICAgIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTKCQxKQorICAgICAgOzsKKworICAgIGRndXgqKQorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICA7OworCisgICAgZnJlZWJzZDEqKQorICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgOzsKKworICAgICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dzIHVzIHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgorICAgICMgc3VwcG9ydC4gIEZ1dHVyZSB2ZXJzaW9ucyBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCBhbiBleHBsaWNpdCBjKytydDAubworICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQorICAgICMgZXh0cmEgc3BhY2UpLgorICAgIGZyZWVic2QyLjIqKQorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIDs7CisKKyAgICAjIFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUuCisgICAgZnJlZWJzZDIqKQorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICA7OworCisgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgorICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgOzsKKworICAgIGhwdXg5KikKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kTEQgLWIgK2IgJGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKyAgICAgIGZpCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworCisgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisgICAgICA7OworCisgICAgaHB1eDEwKikKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworICAgICAgZWxzZQorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisgICAgICBmaQorICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPScrYiAkbGliZGlyJworCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorCSMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorCV9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBocHV4MTEqKQorICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorCWNhc2UgJGhvc3RfY3B1IGluCisJaHBwYSo2NCopCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgIDs7CisJaWE2NCopCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgIDs7CisJKikKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICA7OworCWVzYWMKKyAgICAgIGVsc2UKKwljYXNlICRob3N0X2NwdSBpbgorCWhwcGEqNjQqKQorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgOzsKKwlpYTY0KikKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgIDs7CisJKikKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgOzsKKwllc2FjCisgICAgICBmaQorICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKworCWNhc2UgJGhvc3RfY3B1IGluCisJaHBwYSo2NCp8aWE2NCopCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworCSAgOzsKKwkqKQorCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisJICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworCisJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKwkgIDs7CisJZXNhYworICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJIyBUcnkgdG8gdXNlIHRoZSAtZXhwb3J0ZWRfc3ltYm9sIGxkIG9wdGlvbiwgaWYgaXQgZG9lcyBub3QKKwkjIHdvcmssIGFzc3VtZSB0aGF0IC1leHBvcnRzX2ZpbGUgZG9lcyBub3Qgd29yayBlaXRoZXIgYW5kCisJIyBpbXBsaWNpdGx5IGV4cG9ydCBhbGwgc3ltYm9scy4KKyAgICAgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgLXNoYXJlZCAke3dsfS1leHBvcnRlZF9zeW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9L2Rldi9udWxsIgorICAgICAgICBBQ19MSU5LX0lGRUxTRShpbnQgZm9vKHZvaWQpIHt9LAorICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zICR7d2x9LWV4cG9ydHNfZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworICAgICAgICApCisgICAgICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1leHBvcnRzX2ZpbGUgJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisgICAgICBmaQorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisgICAgICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworICAgICAgOzsKKworICAgIG5ldGJzZCopCisgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0CisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisgICAgICBmaQorICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgOzsKKworICAgIG5ld3NvczYpCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICA7OworCisgICAgKm50byogfCAqcW54KikKKyAgICAgIDs7CisKKyAgICBvcGVuYnNkKikKKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCisJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisJaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scycKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworCSAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKwllbHNlCisJICBjYXNlICRob3N0X29zIGluCisJICAgb3BlbmJzZFtbMDFdXS4qIHwgb3BlbmJzZDIuW1swLTddXSB8IG9wZW5ic2QyLltbMC03XV0uKikKKwkgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisJICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworCSAgICAgOzsKKwkgICAqKQorCSAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisJICAgICA7OworCSAgZXNhYworCWZpCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBvczIqKQorICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckRUNITyAiTElCUkFSWSAkbGlibmFtZSBJTklUSU5TVEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICJERVNDUklQVElPTiBcIiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyBEQVRBID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiIFNJTkdMRSBOT05TSEFSRUQiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyBFWFBPUlRTID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCisgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0nZW14aW1wIC1vICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworICAgICAgOzsKKworICAgIG9zZjMqKQorICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworICAgICAgZWxzZQorCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKyAgICAgIGZpCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKyAgICAgIDs7CisKKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IHByaW50ZiAiJXNcXG4iICItaGlkZGVuIj4+ICRsaWIuZXhwfgorCSRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAkY29tcGlsZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JFJNICRsaWIuZXhwJworCisJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBwb3J0IC1ycGF0aCBkaXJlY3RseQorCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKKyAgICAgIGZpCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorICAgICAgOzsKKworICAgIHNvbGFyaXMqKQorICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXogZGVmcycKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisJd2xhcmM9JyR7d2x9JworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisJICAkQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworICAgICAgZWxzZQorCWNhc2UgYCRDQyAtViAyPiYxYCBpbgorCSoiQ29tcGlsZXJzIDUuMCIqKQorCSAgd2xhcmM9JycKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKwkgICRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKwkgIDs7CisJKikKKwkgIHdsYXJjPScke3dsfScKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorCSAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisJICA7OworCWVzYWMKKyAgICAgIGZpCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgIHNvbGFyaXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7CisgICAgICAqKQorCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCisJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRob3V0IGAkd2wnLAorCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgorCSMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCisJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JworCWVsc2UKKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKwlmaQorCTs7CisgICAgICBlc2FjCisgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKyAgICAgIDs7CisKKyAgICBzdW5vczQqKQorICAgICAgaWYgdGVzdCAieCRob3N0X3ZlbmRvciIgPSB4c2VxdWVudDsgdGhlbgorCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZpbmkgc2VjdGlvbnMgd29yay4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworICAgICAgZWxzZQorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisgICAgICBmaQorICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICA7OworCisgICAgc3lzdjQpCisgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgorCXNuaSkKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PworCTs7CisJc2llbWVucykKKwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExBTUxJQgorCSAgIyMgQ0MganVzdCBtYWtlcyBhIEdyb3NzTW9kdWxlLgorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKwkgIF9MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisgICAgICAgIDs7CisJbW90b3JvbGEpCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKKwk7OworICAgICAgZXNhYworICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIDs7CisKKyAgICBzeXN2NC4zKikKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSctQmV4cG9ydCcKKyAgICAgIDs7CisKKyAgICBzeXN2NCpNUCopCisgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisJcnVucGF0aF92YXI9TERfUlVOX1BBVEgKKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcworICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bWzAxXV0uW1sxMF1dKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLltbMDI0XV0qKQorICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKyAgICAgIGZpCisgICAgICA7OworCisgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90CisgICAgICAjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisgICAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKKyAgICAgICMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorICAgICAgIyBhcyAteiBkZWZzLgorICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCisgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosbm9kZWZzJworICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIsJGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JworICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0JworICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworICAgICAgZWxzZQorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBmaQorICAgICAgOzsKKworICAgIHV0czQqKQorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICA7OworCisgICAgKikKKyAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKyAgICAgIDs7CisgICAgZXNhYworCisgICAgaWYgdGVzdCB4JGhvc3RfdmVuZG9yID0geHNuaTsgdGhlbgorICAgICAgY2FzZSAkaG9zdCBpbgorICAgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqIHwgc3lzdjUqKQorCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUJsYXJnZWR5bnN5bScKKwk7OworICAgICAgZXNhYworICAgIGZpCisgIGZpCitdKQorQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSldKQordGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworCitfTFRfVEFHVkFSKHdpdGhfZ251X2xkLCAkMSk9JHdpdGhfZ251X2xkCisKK19MVF9ERUNMKFtdLCBbbGliZXh0XSwgWzBdLCBbT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpXSlkbmwKK19MVF9ERUNMKFtdLCBbc2hyZXh0X2NtZHNdLCBbMV0sIFtTaGFyZWQgbGlicmFyeSBzdWZmaXggKG5vcm1hbGx5ICIuc28iKV0pZG5sCitfTFRfREVDTChbXSwgW2V4dHJhY3RfZXhwc3ltc19jbWRzXSwgWzJdLAorICAgIFtUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlXSkKKworIworIyBEbyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgbGluayBsaWJjPworIworY2FzZSAieCRfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSkiIGluCit4fHh5ZXMpCisgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworCisgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICAgIGNhc2UgJF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgaW4KKyAgICAqJ34nKikKKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKyAgICAgIDs7CisgICAgJyRDQyAnKikKKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYworICAgICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1sYyBiZWZvcmUgLWxnY2MuCisgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbl0pCisgICAgICAkUk0gY29uZnRlc3QqCisgICAgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKworICAgICAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcnI7IHRoZW4KKyAgICAgICAgc29uYW1lPWNvbmZ0ZXN0CisgICAgICAgIGxpYj1jb25mdGVzdAorICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKKyAgICAgICAgZGVwbGlicz0KKyAgICAgICAgd2w9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpCisJcGljX2ZsYWc9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKQorICAgICAgICBjb21waWxlcl9mbGFncz0tdgorICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKKyAgICAgICAgdmVyc3RyaW5nPQorICAgICAgICBvdXRwdXRfb2JqZGlyPS4KKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAorICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSkKKyAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQorICAgICAgICBpZiBBQ19UUllfRVZBTChfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKQorICAgICAgICB0aGVuCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKyAgICAgICAgZWxzZQorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworICAgICAgICBmaQorICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKKyAgICAgIGVsc2UKKyAgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1CisgICAgICBmaQorICAgICAgJFJNIGNvbmZ0ZXN0KgorICAgICAgQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKV0pCisgICAgICA7OworICAgIGVzYWMKKyAgZmkKKyAgOzsKK2VzYWMKKworX0xUX1RBR0RFQ0woW2J1aWxkX2xpYnRvb2xfbmVlZF9sY10sIFthcmNoaXZlX2NtZHNfbmVlZF9sY10sIFswXSwKKyAgICBbV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllc10pCitfTFRfVEFHREVDTChbYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzXSwKKyAgICBbZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc10sIFswXSwKKyAgICBbV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpY10pCitfTFRfVEFHREVDTChbXSwgW2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY10sIFsxXSwKKyAgICBbQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVuc10pCitfTFRfVEFHREVDTChbXSwgW3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjXSwgWzFdLAorICAgIFtDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJjaGl2ZXNdKQorX0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9uZWVkc19vYmplY3RdLCBbMV0sCisgICAgW1doZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5XSkKK19MVF9UQUdERUNMKFtdLCBbb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc10sIFsyXSwKKyAgICBbQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZV0pCitfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzXSwgWzJdLAorICAgIFtDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQorX0xUX1RBR0RFQ0woW10sIFthcmNoaXZlX2NtZHNdLCBbMl0sIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmVdKQorX0xUX1RBR0RFQ0woW10sIFthcmNoaXZlX2V4cHN5bV9jbWRzXSwgWzJdKQorX0xUX1RBR0RFQ0woW10sIFttb2R1bGVfY21kc10sIFsyXSwKKyAgICBbQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZworICAgIGEgc2hhcmVkIGFyY2hpdmUuXSkKK19MVF9UQUdERUNMKFtdLCBbbW9kdWxlX2V4cHN5bV9jbWRzXSwgWzJdKQorX0xUX1RBR0RFQ0woW10sIFt3aXRoX2dudV9sZF0sIFsxXSwKKyAgICBbV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90XSkKK19MVF9UQUdERUNMKFtdLCBbYWxsb3dfdW5kZWZpbmVkX2ZsYWddLCBbMV0sCisgICAgW0ZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0XSkKK19MVF9UQUdERUNMKFtdLCBbbm9fdW5kZWZpbmVkX2ZsYWddLCBbMV0sCisgICAgW0ZsYWcgdGhhdCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9sc10pCitfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNdLCBbMV0sCisgICAgW0ZsYWcgdG8gaGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgorICAgIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2VzIG5vdCBleGlzdF0pCitfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRdLCBbMV0sCisgICAgW1tJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8gYSBiaW5hcnkKKyAgICBkdXJpbmcgbGlua2luZy4gIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2VzIG5vdCBleGlzdF1dKQorX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yXSwgWzFdLAorICAgIFtXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50XSkKK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfZGlyZWN0XSwgWzBdLAorICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcworICAgIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5XSkKK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlXSwgWzBdLAorICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcworICAgIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcworICAgICJhYnNvbHV0ZSIsIGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0aW5nICR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCisgICAgbGlicmFyeSBpcyByZWxvY2F0ZWRdKQorX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9taW51c19MXSwgWzBdLAorICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgorICAgIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnldKQorX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9zaGxpYnBhdGhfdmFyXSwgWzBdLAorICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgorICAgIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnldKQorX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9hdXRvbWF0aWNdLCBbMF0sCisgICAgW1NldCB0byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUgorICAgIGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkCisgICAgYWdhaW5zdCBpdF0pCitfTFRfVEFHREVDTChbXSwgW2luaGVyaXRfcnBhdGhdLCBbMF0sCisgICAgW1NldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCisgICAgdG8gcnVudGltZSBwYXRoIGxpc3RdKQorX0xUX1RBR0RFQ0woW10sIFtsaW5rX2FsbF9kZXBsaWJzXSwgWzBdLAorICAgIFtXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXNdKQorX0xUX1RBR0RFQ0woW10sIFtmaXhfc3JjZmlsZV9wYXRoXSwgWzFdLAorICAgIFtGaXggdGhlIHNoZWxsIHZhcmlhYmxlICRzcmNmaWxlIGZvciB0aGUgY29tcGlsZXJdKQorX0xUX1RBR0RFQ0woW10sIFthbHdheXNfZXhwb3J0X3N5bWJvbHNdLCBbMF0sCisgICAgW1NldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZF0pCitfTFRfVEFHREVDTChbXSwgW2V4cG9ydF9zeW1ib2xzX2NtZHNdLCBbMl0sCisgICAgW1RoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHNdKQorX0xUX1RBR0RFQ0woW10sIFtleGNsdWRlX2V4cHN5bXNdLCBbMV0sCisgICAgW1N5bWJvbHMgdGhhdCBzaG91bGQgbm90IGJlIGxpc3RlZCBpbiB0aGUgcHJlbG9hZGVkIHN5bWJvbHNdKQorX0xUX1RBR0RFQ0woW10sIFtpbmNsdWRlX2V4cHN5bXNdLCBbMV0sCisgICAgW1N5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZF0pCitfTFRfVEFHREVDTChbXSwgW3ByZWxpbmtfY21kc10sIFsyXSwKKyAgICBbQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXNdKQorX0xUX1RBR0RFQ0woW10sIFtmaWxlX2xpc3Rfc3BlY10sIFsxXSwKKyAgICBbU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzXSkKK2RubCBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorZG5sIF9MVF9UQUdERUNMKFtdLCBbdGhyZWFkX3NhZmVfZmxhZ19zcGVjXSwgWzFdLAorZG5sICAgIFtDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHRocmVhZCBzYWZlIG9iamVjdHNdKQorXSkjIF9MVF9MSU5LRVJfU0hMSUJTCisKKworIyBfTFRfTEFOR19DX0NPTkZJRyhbVEFHXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBDIGNvbXBpbGVyIGFyZSBzdWl0YWJseQorIyBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHIHRvIHdyaXRlCisjIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KK200X2RlZnVuKFtfTFRfTEFOR19DX0NPTkZJR10sCitbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAorbHRfc2F2ZV9DQz0iJENDIgorQUNfTEFOR19QVVNIKEMpCisKKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291cmNlcy4KK2FjX2V4dD1jCisKKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDIHRlc3Qgc291cmNlcy4KK29iamV4dD1vCitfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKworIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKworIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oKXtyZXR1cm4oMCk7fScKKworX0xUX1RBR19DT01QSUxFUgorIyBTYXZlIHRoZSBkZWZhdWx0IGNvbXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4gdGhlIG90aGVyCisjIHRhZ3MgYXJlIGJlaW5nIHRlc3RlZCwgYW5kIF9MVF9UQUdWQVIoY29tcGlsZXIsIFtdKSBpcyBhIE5PUC4KK2NvbXBpbGVyX0RFRkFVTFQ9JENDCisKKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCitfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKKworIyMgQ0FWRUFUIEVNUFRPUjoKKyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCitpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisgIF9MVF9DT01QSUxFUl9OT19SVFRJKCQxKQorICBfTFRfQ09NUElMRVJfUElDKCQxKQorICBfTFRfQ09NUElMRVJfQ19PKCQxKQorICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKyAgX0xUX0xJTktFUl9TSExJQlMoJDEpCisgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKyAgTFRfU1lTX0RMT1BFTl9TRUxGCisgIF9MVF9DTURfU1RSSVBMSUIKKworICAjIFJlcG9ydCB3aGljaCBsaWJyYXJ5IHR5cGVzIHdpbGwgYWN0dWFsbHkgYmUgYnVpbHQKKyAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCisKKyAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQorICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KKworICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKyAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorICBjYXNlICRob3N0X29zIGluCisgIGFpeDMqKQorICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKyAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKKyAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKKyAgICBmaQorICAgIDs7CisKKyAgYWl4W1s0LTldXSopCisgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorICAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKyAgICBmaQorICAgIDs7CisgIGVzYWMKKyAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zaGFyZWRdKQorCisgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkKKyAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCisgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcworICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N0YXRpY10pCisKKyAgX0xUX0NPTkZJRygkMSkKK2ZpCitBQ19MQU5HX1BPUAorQ0M9IiRsdF9zYXZlX0NDIgorXSkjIF9MVF9MQU5HX0NfQ09ORklHCisKKworIyBfTFRfUFJPR19DWFgKKyMgLS0tLS0tLS0tLS0tCisjIFNpbmNlIEFDX1BST0dfQ1hYIGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1cm5zIGcrKyBpZiB0aGVyZSBpcyBubyBjKysKKyMgY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCittNF9kZWZ1bihbX0xUX1BST0dfQ1hYXSwKK1sKK3B1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXNdKQorQUNfUFJPR19DWFgKK2lmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJYbm8iICYmCisgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8CisgICAgKHRlc3QgIlgkQ1hYIiAhPSAiWGcrKyIpKSkgOyB0aGVuCisgIEFDX1BST0dfQ1hYQ1BQCitlbHNlCisgIF9sdF9jYXVnaHRfQ1hYX2Vycm9yPXllcworZmkKK3BvcGRlZihbQUNfTVNHX0VSUk9SXSkKK10pIyBfTFRfUFJPR19DWFgKKworZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19DWFhdLCBbXSkKKworCisjIF9MVF9MQU5HX0NYWF9DT05GSUcoW1RBR10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBDKysgY29tcGlsZXIgYXJlIHN1aXRhYmx5CisjIGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcgdG8gd3JpdGUKKyMgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorbTRfZGVmdW4oW19MVF9MQU5HX0NYWF9DT05GSUddLAorW0FDX1JFUVVJUkUoW19MVF9QUk9HX0NYWF0pZG5sCittNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKworQUNfTEFOR19QVVNIKEMrKykKK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQorX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CitfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPW5vCitfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubworX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CitfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KK19MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCitfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCitfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubworX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQorX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KK19MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCitfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CitfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CitfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubworCisjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNlcy4KK2FjX2V4dD1jcHAKKworIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMrKyB0ZXN0IHNvdXJjZXMuCitvYmpleHQ9bworX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisKKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKyMgdGhlIENYWCBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgoraWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXM7IHRoZW4KKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKyAgbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorCisgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisgIGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oaW50LCBjaGFyICpbW11dKSB7IHJldHVybigwKTsgfScKKworICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisgIF9MVF9UQUdfQ09NUElMRVIKKworICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorICBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorCisgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisgIGx0X3NhdmVfQ0M9JENDCisgIGx0X3NhdmVfTEQ9JExECisgIGx0X3NhdmVfR0NDPSRHQ0MKKyAgR0NDPSRHWFgKKyAgbHRfc2F2ZV93aXRoX2dudV9sZD0kd2l0aF9nbnVfbGQKKyAgbHRfc2F2ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xECisgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcHJvZ19nbnVfbGRjeHgrc2V0fSI7IHRoZW4KKyAgICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGRjeHgKKyAgZWxzZQorICAgICRhc191bnNldCBsdF9jdl9wcm9nX2dudV9sZAorICBmaQorICBpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KKyAgICBsdF9jdl9wYXRoX0xEPSRsdF9jdl9wYXRoX0xEQ1hYCisgIGVsc2UKKyAgICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAorICBmaQorICB0ZXN0IC16ICIke0xEQ1hYK3NldH0iIHx8IExEPSRMRENYWAorICBDQz0ke0NYWC0iYysrIn0KKyAgY29tcGlsZXI9JENDCisgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKyAgX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorCisgIGlmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKyAgICAjIFdlIGRvbid0IHdhbnQgLWZuby1leGNlcHRpb24gd2hlbiBjb21waWxpbmcgQysrIGNvZGUsIHNvIHNldCB0aGUKKyAgICAjIG5vX2J1aWx0aW5fZmxhZyBzZXBhcmF0ZWx5CisgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0nIC1mbm8tYnVpbHRpbicKKyAgICBlbHNlCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9CisgICAgZmkKKworICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisgICAgICAjIFNldCB1cCBkZWZhdWx0IEdOVSBDKysgY29uZmlndXJhdGlvbgorCisgICAgICBMVF9QQVRIX0xECisKKyAgICAgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBsZCBhcyB0aGUgdW5kZXJseWluZyBsaW5rZXIsIHNpbmNlIHRoZQorICAgICAgIyBhcmNoaXZpbmcgY29tbWFuZHMgYmVsb3cgYXNzdW1lIHRoYXQgR05VIGxkIGlzIGJlaW5nIHVzZWQuCisgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKworICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisKKyAgICAgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKKyAgICAgICAgIyBYWFggSSB0aGluayB3bGFyYyBjYW4gYmUgZWxpbWluYXRlZCBpbiBsdGNmLWN4eCwgYnV0IEkgbmVlZCB0bworICAgICAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1NKQorICAgICAgICB3bGFyYz0nJHt3bH0nCisKKyAgICAgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorICAgICAgICBpZiBldmFsICJgJENDIC1wcmludC1wcm9nLW5hbWU9bGRgIC0taGVscCAyPiYxIiB8CisJICAkR1JFUCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisgICAgICAgIGVsc2UKKyAgICAgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CisgICAgICAgIGZpCisgICAgICBlbHNlCisgICAgICAgIHdpdGhfZ251X2xkPW5vCisgICAgICAgIHdsYXJjPQorCisgICAgICAgICMgQSBnZW5lcmljIGFuZCB2ZXJ5IHNpbXBsZSBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5IGNyZWF0aW9uCisgICAgICAgICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUgbmF0aXZlCisgICAgICAgICMgbGlua2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElmIHBvc3NpYmxlLCB0aGlzIHNldHRpbmcgc2hvdWxkCisgICAgICAgICMgb3ZlcnJpZGRlbiB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgbmF0aXZlIGxpbmtlciBmZWF0dXJlcyBvbgorICAgICAgICAjIHRoZSBwbGF0Zm9ybSBpdCBpcyBiZWluZyB1c2VkIG9uLgorICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisgICAgICBmaQorCisgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKyAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisKKyAgICBlbHNlCisgICAgICBHWFg9bm8KKyAgICAgIHdpdGhfZ251X2xkPW5vCisgICAgICB3bGFyYz0KKyAgICBmaQorCisgICAgIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGljcworICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKKyAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcworICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgIGFpeDMqKQorICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgICA7OworICAgICAgYWl4W1s0LTldXSopCisgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisgICAgICAgICAgIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorICAgICAgICAgICMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JworICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9IiIKKyAgICAgICAgZWxzZQorICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKworICAgICAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAorICAgICAgICAgICMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorICAgICAgICAgICMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCisgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFpeFtbNS05XV0qKQorCSAgICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KKwkgICAgICBjYXNlICRsZF9mbGFnIGluCisJICAgICAgKi1icnRsKikKKwkgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisJICAgICAgICBicmVhaworCSAgICAgICAgOzsKKwkgICAgICBlc2FjCisJICAgIGRvbmUKKwkgICAgOzsKKyAgICAgICAgICBlc2FjCisKKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JworICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKKyAgICAgICAgZmkKKworICAgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCisgICAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorICAgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bworICAgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAorICAgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKworICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPScnCisgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JworICAgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKyAgICAgICAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPScke3dsfS1mLCcKKworICAgICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzAxMl1dfGFpeDQuW1swMTJdXS4qKQorICAgICAgICAgICMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjaworICAgICAgICAgICMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKworCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAorCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKKwkgICAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCisJICB0aGVuCisJICAgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgorCSAgICA6CisJICBlbHNlCisJICAgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAorCSAgICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisJICAgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCisJICAgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZworCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CisJICBmaQorICAgICAgICAgIGVzYWMKKyAgICAgICAgICBzaGFyZWRfZmxhZz0nLXNoYXJlZCcKKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorCSAgICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKKwkgIGZpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAjIG5vdCB1c2luZyBnY2MKKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorCSAgIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKwkgICMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6CisJICBzaGFyZWRfZmxhZz0nLUcnCisgICAgICAgICAgZWxzZQorCSAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKKwkgICAgZWxzZQorCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCisJICAgIGZpCisgICAgICAgICAgZmkKKyAgICAgICAgZmkKKworICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1iZXhwYWxsJworICAgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKyAgICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvCisJIyBleHBvcnQuCisgICAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisgICAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorICAgICAgICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorICAgICAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKyAgICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKKyAgICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkKKyAgICAgICAgICAjIGV4ZWN1dGFibGUuCisgICAgICAgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKyAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKworICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAkRUNITyAiWCR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKKyAgICAgICAgZWxzZQorICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKKwkgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIteiBub2RlZnMiCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorICAgICAgICAgIGVsc2UKKwkgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisJICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KKwkgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisJICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCisJICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKwkgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVybm90b2snCisJICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJworCSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKKwkgICAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkCisJICAgICMgbGlicmFyaWVzLgorCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJworICAgICAgICAgIGZpCisgICAgICAgIGZpCisgICAgICAgIDs7CisKKyAgICAgIGJlb3MqKQorCWlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYworCSAgIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21lIGludmVzdGlnYXRpb24uICBGSVhNRQorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworCWVsc2UKKwkgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwlmaQorCTs7CisKKyAgICAgIGNob3J1cyopCisgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICAgICAgKikKKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgOzsKKyAgICAgICAgZXNhYworICAgICAgICA7OworCisgICAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisgICAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCisgICAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorICAgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisgICAgICAgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcworCisgICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisgICAgICAgICAgIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorICAgICAgICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCisgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCisJICAgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKyAgICAgICAgICBlbHNlCisJICAgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworICAgICAgICAgIGZpfgorICAgICAgICAgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKyAgICAgICAgZWxzZQorICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKyAgICAgICAgZmkKKyAgICAgICAgOzsKKyAgICAgIGRhcndpbiogfCByaGFwc29keSopCisgICAgICAgIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTKCQxKQorCTs7CisKKyAgICAgIGRndXgqKQorICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICAgIGVjKysqKQorCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICA7OworICAgICAgICAgIGdoY3gqKQorCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICA7OworICAgICAgICAgICopCisJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICAgIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgOzsKKworICAgICAgZnJlZWJzZFtbMTJdXSopCisgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgcmVwb3J0ZWQgdG8gYmUgZmFpcmx5IGJyb2tlbiBiZWZvcmUKKwkjIHN3aXRjaCB0byBFTEYKKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgICA7OworCisgICAgICBmcmVlYnNkLWVsZiopCisgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworICAgICAgICA7OworCisgICAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCisgICAgICAgICMgRnJlZUJTRCAzIGFuZCBsYXRlciB1c2UgR05VIEMrKyBhbmQgR05VIGxkIHdpdGggc3RhbmRhcmQgRUxGCisgICAgICAgICMgY29udmVudGlvbnMKKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKKyAgICAgICAgOzsKKworICAgICAgZ251KikKKyAgICAgICAgOzsKKworICAgICAgaHB1eDkqKQorICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKyAgICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKKwkJCQkgICAgICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQKKwkJCQkgICAgICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKworICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICAgIENDKikKKyAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorICAgICAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgICAgICAgOzsKKyAgICAgICAgICBhQ0MqKQorICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1iICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisgICAgICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisgICAgICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKyAgICAgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorICAgICAgICAgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKyAgICAgICAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKyAgICAgICAgICAgICMgZGVwZW5kZW5jaWVzLgorICAgICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRFR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworICAgICAgICAgICAgOzsKKyAgICAgICAgICAqKQorICAgICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKyAgICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorICAgICAgICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICAgICAgICBmaQorICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICA7OworCisgICAgICBocHV4MTAqfGhwdXgxMSopCisgICAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKworICAgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisgICAgICAgICAgICBocHBhKjY0KnxpYTY0KikKKyAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICopCisJICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKyAgICAgICAgICAgICAgOzsKKyAgICAgICAgICBlc2FjCisgICAgICAgIGZpCisgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCisgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgICAgICAgOzsKKyAgICAgICAgICAqKQorICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAorCQkJCQkgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAorCQkJCQkgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworCisgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICAgICAgQ0MqKQorCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICA7OworICAgICAgICAgIGFDQyopCisJICAgIGNhc2UgJGhvc3RfY3B1IGluCisJICAgICAgaHBwYSo2NCopCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICAgICA7OworCSAgICAgIGlhNjQqKQorCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworCSAgICAgICAgOzsKKwkgICAgICAqKQorCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICAgICA7OworCSAgICBlc2FjCisJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorCSAgICAjCisJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorCSAgICAjIGRlcGVuZGVuY2llcy4KKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisJICAgIDs7CisgICAgICAgICAgKikKKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKwkgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCisJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorCSAgICAgICAgICBocHBhKjY0KikKKwkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICAgICAgICAgOzsKKwkgICAgICAgICAgaWE2NCopCisJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworCSAgICAgICAgICAgIDs7CisJICAgICAgICAgICopCisJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICAgICAgICAgOzsKKwkgICAgICAgIGVzYWMKKwkgICAgICBmaQorCSAgICBlbHNlCisJICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICBmaQorCSAgICA7OworICAgICAgICBlc2FjCisgICAgICAgIDs7CisKKyAgICAgIGludGVyaXhbWzMtOV1dKikKKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisJX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworCSMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KKwkjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisJIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQorCSMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKKwkjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisJIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKwk7OworICAgICAgaXJpeDUqIHwgaXJpeDYqKQorICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICAgIENDKikKKwkgICAgIyBTR0kgQysrCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKworCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKwkgICAgIyAiQ0MgLWFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgSVJJWCBDKysgY29tcGlsZXIuICBUaGlzIGlzCisJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorCSAgICAjIGluIHRoZSBhcmNoaXZlLgorCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1hciAtV1IsLXUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKwkgICAgOzsKKyAgICAgICAgICAqKQorCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorCSAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwkgICAgICBlbHNlCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAtbyAkbGliJworCSAgICAgIGZpCisJICAgIGZpCisJICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworCSAgICA7OworICAgICAgICBlc2FjCisgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKyAgICAgICAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9eWVzCisgICAgICAgIDs7CisKKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICAgICAgS0NDKikKKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21waWxlcgorCisJICAgICMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKKwkgICAgIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQorCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCisJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorCSAgICAjCisJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorCSAgICAjIGRlcGVuZGVuY2llcy4KKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8ICRHUkVQICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKworCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworCisJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworCSAgICAjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCisJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycKKwkgICAgOzsKKwkgIGljcGMqIHwgZWNwYyogKQorCSAgICAjIEludGVsIEMrKworCSAgICB3aXRoX2dudV9sZD15ZXMKKwkgICAgIyB2ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKKwkgICAgIyBpZiB3ZSBhZGQgJHByZWRlcF9vYmplY3RzIGFuZCAkcG9zdGRlcF9vYmplY3RzLCBob3dldmVyIDcuMSBhbmQKKwkgICAgIyBlYXJsaWVyIGRvIG5vdCBhZGQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4KKwkgICAgY2FzZSBgJENDIC1WIDI+JjFgIGluCisJICAgICAgKiJWZXJzaW9uIDcuIiopCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwkJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworCQk7OworCSAgICAgICopICAjIFZlcnNpb24gOC4wIG9yIG5ld2VyCisJICAgICAgICB0bXBfaWR5bj0KKwkgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisJCSAgaWE2NCopIHRtcF9pZHluPScgLWlfZHluYW1pYyc7OworCQllc2FjCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJCTs7CisJICAgIGVzYWMKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICAgIDs7CisgICAgICAgICAgcGdDQyogfCBwZ2NwcCopCisgICAgICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgorCSAgICBjYXNlIGAkQ0MgLVZgIGluCisJICAgICpwZ0NDXCBbWzEtNV1dKiB8ICpwZ2NwcFwgW1sxLTVdXSopCisJICAgICAgX0xUX1RBR1ZBUihwcmVsaW5rX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKwkJcm0gLXJmICR0cGxkaXJ+CisJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9ianMgJGxpYm9ianMgJGNvbXBpbGVfZGVwbGlic34KKwkJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAiJworCSAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorCQlybSAtcmYgJHRwbGRpcn4KKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2xkb2JqcyRvbGRfZGVwbGlic34KKwkJJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYH4KKwkJJFJBTkxJQiAkb2xkbGliJworCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+CisJCXJtIC1yZiAkdHBsZGlyfgorCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KKwkJJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKwkJcm0gLXJmICR0cGxkaXJ+CisJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgorCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJICAgICAgOzsKKwkgICAgKikgIyBWZXJzaW9uIDYgd2lsbCB1c2Ugd2VhayBzeW1ib2xzCisJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWInCisJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJICAgICAgOzsKKwkgICAgZXNhYworCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJworCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworICAgICAgICAgICAgOzsKKwkgIGN4eCopCisJICAgICMgQ29tcGFxIEMrKworCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKKworCSAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKworCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKwkgICAgIworCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKwkgICAgIyBkZXBlbmRlbmNpZXMuCisJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgdGVtcGxpc3Q9YCRFQ0hPICJYJHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCggLipsZCAuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisJICAgIDs7CisJICB4bCopCisJICAgICMgSUJNIFhMIDguMCBvbiBQUEMsIHdpdGggR05VIGxkCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKwkJY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorCQllY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKwkJJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisJICAgIGZpCisJICAgIDs7CisJICAqKQorCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKwkgICAgKlN1blwgQyopCisJICAgICAgIyBTdW4gQysrIDUuOQorCSAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzJworCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisJICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgICAgICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllcworCisJICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgorCSAgICAgICMgJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEKKwkgICAgICAjIHdvdWxkIGJlIGJldHRlci4KKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKworCSAgICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworCSAgICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworCSAgICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorCSAgICAgICMgaW4gdGhlIGFyY2hpdmUuCisJICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgICA7OworCWVzYWMKKwk7OworCisgICAgICBseW54b3MqKQorICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJOzsKKworICAgICAgbTg4ayopCisgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJOzsKKworICAgICAgbXZzKikKKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICAgICBjeHgqKQorCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICA7OworCSAgKikKKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwkgICAgOzsKKwllc2FjCisJOzsKKworICAgICAgbmV0YnNkKikKKyAgICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkbGlua2VyX2ZsYWdzJworCSAgd2xhcmM9CisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisJZmkKKwkjIFdvcmthcm91bmQgc29tZSBicm9rZW4gcHJlLTEuNSB0b29sY2hhaW5zCisJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJworCTs7CisKKyAgICAgICpudG8qIHwgKnFueCopCisgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCisJOzsKKworICAgICAgb3BlbmJzZDIqKQorICAgICAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIGFyZSBmYWlybHkgYnJva2VuCisJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCTs7CisKKyAgICAgIG9wZW5ic2QqKQorCWlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKwkgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisJICBmaQorCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworCWVsc2UKKwkgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwlmaQorCTs7CisKKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICAgICBLQ0MqKQorCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisKKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisJICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAiJGxpYiIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJworCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisKKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisJICAgICMgdGhlIEtBSSBDKysgY29tcGlsZXIuCisJICAgIGNhc2UgJGhvc3QgaW4KKwkgICAgICBvc2YzKikgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJyA7OworCSAgICAgICopIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKKwkgICAgZXNhYworCSAgICA7OworICAgICAgICAgIFJDQyopCisJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICAgIDs7CisgICAgICAgICAgY3h4KikKKwkgICAgY2FzZSAkaG9zdCBpbgorCSAgICAgIG9zZjMqKQorCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwkgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisJCTs7CisJICAgICAgKikKKwkgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZX4KKwkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KKwkgICAgICAgICAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifgorCSAgICAgICAgICAkUk0gJGxpYi5leHAnCisJICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisJCTs7CisJICAgIGVzYWMKKworCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisKKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisJICAgICMKKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisJICAgICMgZGVwZW5kZW5jaWVzLgorCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkIiB8ICRHUkVQIC12ICJsZDoiYDsgdGVtcGxpc3Q9YCRFQ0hPICJYJHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCggLipsZC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKwkgICAgOzsKKwkgICopCisJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorCSAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisJICAgICAgY2FzZSAkaG9zdCBpbgorCSAgICAgICAgb3NmMyopCisJICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJCSAgOzsKKwkgICAgICAgICopCisJICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCQkgIDs7CisJICAgICAgZXNhYworCisJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisKKwkgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisJICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisJICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisJICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisKKwkgICAgZWxzZQorCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwkgICAgZmkKKwkgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICA7OworCisgICAgICBwc29zKikKKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKyAgICAgICAgOzsKKworICAgICAgc3Vub3M0KikKKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICAgICBDQyopCisJICAgICMgU3VuIEMrKyA0LngKKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwkgICAgOzsKKyAgICAgICAgICBsY2MqKQorCSAgICAjIEx1Y2lkCisJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICAgIDs7CisgICAgICAgICAgKikKKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwkgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICA7OworCisgICAgICBzb2xhcmlzKikKKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICAgICBDQyopCisJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsJDEpPXllcworCSAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRlZnMnCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisJICAgICAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0tTSAke3dsfSRsaWIuZXhwIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKwkgICAgY2FzZSAkaG9zdF9vcyBpbgorCSAgICAgIHNvbGFyaXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7CisJICAgICAgKikKKwkJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKKwkJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4KKwkgICAgICAgICMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCisJCV9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKwkgICAgICAgIDs7CisJICAgIGVzYWMKKwkgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisKKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCisKKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisJICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisJICAgIDs7CisgICAgICAgICAgZ2N4KikKKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworCisJICAgICMgVGhlIEMrKyBjb21waWxlciBtdXN0IGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBhcmNoaXZlLgorCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDICRMREZMQUdTIC1hcmNoaXZlIC1vICRvbGRsaWIgJG9sZG9ianMnCisJICAgIDs7CisgICAgICAgICAgKikKKwkgICAgIyBHTlUgQysrIGNvbXBpbGVyIHdpdGggU29sYXJpcyBsaW5rZXIKKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisJICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0teiAke3dsfWRlZnMnCisJICAgICAgaWYgJENDIC0tdmVyc2lvbiB8ICRHUkVQIC12ICdeMlwuNycgPiAvZGV2L251bGw7IHRoZW4KKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorCQkgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKworCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworCSAgICAgIGVsc2UKKwkgICAgICAgICMgZysrIDIuNyBhcHBlYXJzIHRvIHJlcXVpcmUgYC1HJyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMKKwkgICAgICAgICMgcGxhdGZvcm0uCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisJCSAgJENDIC1HIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKworCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKwkgICAgICBmaQorCisJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJHdsJGxpYmRpcicKKwkgICAgICBjYXNlICRob3N0X29zIGluCisJCXNvbGFyaXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7CisJCSopCisJCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCisJCSAgOzsKKwkgICAgICBlc2FjCisJICAgIGZpCisJICAgIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgOzsKKworICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1swMjRdXSopCisgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKworICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICAgQ0MqKQorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgOzsKKwkqKQorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgIDs7CisgICAgICBlc2FjCisgICAgICA7OworCisgICAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorCSMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90CisJIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bworCSMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAorCSMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKKwkjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKKwkjIGFzIC16IGRlZnMuCisJX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCisJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5vZGVmcycKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SLCRsaWJkaXInCisJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisJX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmV4cG9ydCcKKwlydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisKKwljYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICAgIENDKikKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICAgIDs7CisJICAqKQorCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICAgIDs7CisJZXNhYworICAgICAgOzsKKworICAgICAgdGFuZGVtKikKKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICAgICBOQ0MqKQorCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwkgICAgOzsKKyAgICAgICAgICAqKQorCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICA7OworICAgICAgICBlc2FjCisgICAgICAgIDs7CisKKyAgICAgIHZ4d29ya3MqKQorICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgICA7OworCisgICAgICAqKQorICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgICA7OworICAgIGVzYWMKKworICAgIEFDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpXSkKKyAgICB0ZXN0ICIkX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisKKyAgICBfTFRfVEFHVkFSKEdDQywgJDEpPSIkR1hYIgorICAgIF9MVF9UQUdWQVIoTEQsICQxKT0iJExEIgorCisgICAgIyMgQ0FWRUFUIEVNUFRPUjoKKyAgICAjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQorICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisgICAgX0xUX1NZU19ISURERU5fTElCREVQUygkMSkKKyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQorICAgIF9MVF9DT01QSUxFUl9DX08oJDEpCisgICAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCisgICAgX0xUX0xJTktFUl9TSExJQlMoJDEpCisgICAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkKKyAgICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCisKKyAgICBfTFRfQ09ORklHKCQxKQorICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIKKworICBDQz0kbHRfc2F2ZV9DQworICBMRENYWD0kTEQKKyAgTEQ9JGx0X3NhdmVfTEQKKyAgR0NDPSRsdF9zYXZlX0dDQworICB3aXRoX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAorICBsdF9jdl9wYXRoX0xEQ1hYPSRsdF9jdl9wYXRoX0xECisgIGx0X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAorICBsdF9jdl9wcm9nX2dudV9sZGN4eD0kbHRfY3ZfcHJvZ19nbnVfbGQKKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKK2ZpICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKKworQUNfTEFOR19QT1AKK10pIyBfTFRfTEFOR19DWFhfQ09ORklHCisKKworIyBfTFRfU1lTX0hJRERFTl9MSUJERVBTKFtUQUdOQU1FXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZpZ3VyZSBvdXQgImhpZGRlbiIgbGlicmFyeSBkZXBlbmRlbmNpZXMgZnJvbSB2ZXJib3NlCisjIGNvbXBpbGVyIG91dHB1dCB3aGVuIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKyMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5CisjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KK200X2RlZnVuKFtfTFRfU1lTX0hJRERFTl9MSUJERVBTXSwKK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWluZyBsaW5rZWQ6CitfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9CitfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPQorX0xUX1RBR1ZBUihwcmVkZXBzLCAkMSk9CitfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSk9CitfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPQorCitkbmwgd2UgY2FuJ3QgdXNlIHRoZSBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUgaGVyZSwKK2RubCBiZWNhdXNlIGl0IGNvbnRhaW5zIGNvZGUgaW50ZW5kZWQgZm9yIGFuIGV4ZWN1dGFibGUsCitkbmwgbm90IGEgbGlicmFyeS4gIEl0J3MgcG9zc2libGUgd2Ugc2hvdWxkIGxldCBlYWNoCitkbmwgdGFnIGRlZmluZSBhIG5ldyBsdF8/Pz8/X2xpbmtfdGVzdF9jb2RlIHZhcmlhYmxlLAorZG5sIGJ1dCBpdCdzIG9ubHkgdXNlZCBoZXJlLi4uCittNF9pZihbJDFdLCBbXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCitpbnQgYTsKK3ZvaWQgZm9vICh2b2lkKSB7IGEgPSAwOyB9CitfTFRfRU9GCitdLCBbJDFdLCBbQ1hYXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCitjbGFzcyBGb28KK3sKK3B1YmxpYzoKKyAgRm9vICh2b2lkKSB7IGEgPSAwOyB9Citwcml2YXRlOgorICBpbnQgYTsKK307CitfTFRfRU9GCitdLCBbJDFdLCBbRjc3XSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisgICAgICBzdWJyb3V0aW5lIGZvbworICAgICAgaW1wbGljaXQgbm9uZQorICAgICAgaW50ZWdlcio0IGEKKyAgICAgIGE9MAorICAgICAgcmV0dXJuCisgICAgICBlbmQKK19MVF9FT0YKK10sIFskMV0sIFtGQ10sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorICAgICAgc3Vicm91dGluZSBmb28KKyAgICAgIGltcGxpY2l0IG5vbmUKKyAgICAgIGludGVnZXIgYQorICAgICAgYT0wCisgICAgICByZXR1cm4KKyAgICAgIGVuZAorX0xUX0VPRgorXSwgWyQxXSwgW0dDSl0sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorcHVibGljIGNsYXNzIGZvbyB7CisgIHByaXZhdGUgaW50IGE7CisgIHB1YmxpYyB2b2lkIGJhciAodm9pZCkgeworICAgIGEgPSAwOworICB9Cit9OworX0xUX0VPRgorXSkKK2RubCBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKK2RubCBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCitpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQorICAjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KKworICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBhcmUgYmVmb3JlCisgICMgdGhlIGNvbmZ0ZXN0IG9iamVjdCBmaWxlLgorICBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPW5vCisKKyAgZm9yIHAgaW4gYGV2YWwgIiRvdXRwdXRfdmVyYm9zZV9saW5rX2NtZCJgOyBkbworICAgIGNhc2UgJHAgaW4KKworICAgIC1MKiB8IC1SKiB8IC1sKikKKyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRoLgorICAgICAgICMgUmVtb3ZlIHRoZSBzcGFjZS4KKyAgICAgICBpZiB0ZXN0ICRwID0gIi1MIiB8fAorICAgICAgICAgIHRlc3QgJHAgPSAiLVIiOyB0aGVuCisJIHByZXY9JHAKKwkgY29udGludWUKKyAgICAgICBlbHNlCisJIHByZXY9CisgICAgICAgZmkKKworICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCisJIGNhc2UgJHAgaW4KKwkgLUwqIHwgLVIqKQorCSAgICMgSW50ZXJuYWwgY29tcGlsZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQorCSAgICMgcHJvdmlkZWQgdGhlIHVzZXIuICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQorCSAgICMgdXNlciBzdXBwbGllZCBsaWJzIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyB0aGVtLgorCSAgIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpIjsgdGhlbgorCSAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0iJHtwcmV2fSR7cH0iCisJICAgZWxzZQorCSAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0iJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSAke3ByZXZ9JHtwfSIKKwkgICBmaQorCSAgIDs7CisJICMgVGhlICItbCIgY2FzZSB3b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCisJICMgbGlua2VkLCBzbyBkb24ndCBib3RoZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgorCSBlc2FjCisgICAgICAgZWxzZQorCSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpIjsgdGhlbgorCSAgIF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKT0iJHtwcmV2fSR7cH0iCisJIGVsc2UKKwkgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7X0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpfSAke3ByZXZ9JHtwfSIKKwkgZmkKKyAgICAgICBmaQorICAgICAgIDs7CisKKyAgICAqLiRvYmpleHQpCisgICAgICAgIyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBvYmplY3QgZmlsZSBvbmx5IHNob3dzIHVwCisgICAgICAgIyBvbmNlIGluIHRoZSBjb21waWxlciBvdXRwdXQuCisgICAgICAgaWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpleHQiOyB0aGVuCisJIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9eWVzCisJIGNvbnRpbnVlCisgICAgICAgZmkKKworICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCisJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSkiOyB0aGVuCisJICAgX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPSIkcCIKKwkgZWxzZQorCSAgIF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKT0iJF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSAkcCIKKwkgZmkKKyAgICAgICBlbHNlCisJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpIjsgdGhlbgorCSAgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9IiRwIgorCSBlbHNlCisJICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0iJF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkgJHAiCisJIGZpCisgICAgICAgZmkKKyAgICAgICA7OworCisgICAgKikgOzsgIyBJZ25vcmUgdGhlIHJlc3QuCisKKyAgICBlc2FjCisgIGRvbmUKKworICAjIENsZWFuIHVwLgorICBybSAtZiBhLm91dCBhLmV4ZQorZWxzZQorICBlY2hvICJsaWJ0b29sLm00OiBlcnJvcjogcHJvYmxlbSBjb21waWxpbmcgJDEgdGVzdCBwcm9ncmFtIgorZmkKKworJFJNIC1mIGNvbmZlc3QuJG9iamV4dAorCisjIFBPUlRNRTogb3ZlcnJpZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGJyb2tlbgorbTRfaWYoWyQxXSwgW0NYWF0sCitbY2FzZSAkaG9zdF9vcyBpbgoraW50ZXJpeFtbMy05XV0qKQorICAjIEludGVyaXggMy41IGluc3RhbGxzIGNvbXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJhdGhlciB0aGFuCisgICMgaGFjayBhbGwgYXJvdW5kIGl0LCBsZXQncyBqdXN0IHRydXN0ICJnKysiIHRvIERUUlQuCisgIF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsJDEpPQorICBfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywkMSk9CisgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPQorICA7OworCitsaW51eCopCisgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorICAqU3VuXCBDKikKKyAgICAjIFN1biBDKysgNS45CisKKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCisgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgorICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCisgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKKyAgICAgIDs7CisgICAgZXNhYworCisgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKyAgICAgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCisgICAgZmkKKyAgICA7OworICBlc2FjCisgIDs7CisKK3NvbGFyaXMqKQorICBjYXNlICRjY19iYXNlbmFtZSBpbgorICBDQyopCisgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCisgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCisgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcworICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgorICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQorICAgICAgc29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCisgICAgICA7OworICAgIGVzYWMKKworICAgICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCisgICAgIyBTdW4gY29tcGlsZXIgdmVyc2lvbnMgYmVmb3JlIDUuNiwgZWxzZSBQSUMgb2JqZWN0cyBmcm9tIGFuIG9sZAorICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxpbmtlZCBpbnRvIHRoZSBvdXRwdXQsIGxlYWRpbmcgdG8gc3VidGxlIGJ1Z3MuCisgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKyAgICAgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCisgICAgZmkKKyAgICA7OworICBlc2FjCisgIDs7Citlc2FjCitdKQorCitjYXNlICIgJF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSAiIGluCisqIiAtbGMgIiopIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubyA7OworZXNhYworIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9CitpZiB0ZXN0IC1uICIke19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9IjsgdGhlbgorIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9YGVjaG8gIiAke19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9IiB8ICR7U0VEfSAtZSAncyEgLUwhICFnJyAtZSAncyFeICEhJ2AKK2ZpCitfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc10sIFsxXSwKKyAgICBbVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5XSkKK19MVF9UQUdERUNMKFtdLCBbcHJlZGVwX29iamVjdHNdLCBbMV0sCisgICAgW0RlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0bworICAgIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5XSkKK19MVF9UQUdERUNMKFtdLCBbcG9zdGRlcF9vYmplY3RzXSwgWzFdKQorX0xUX1RBR0RFQ0woW10sIFtwcmVkZXBzXSwgWzFdKQorX0xUX1RBR0RFQ0woW10sIFtwb3N0ZGVwc10sIFsxXSkKK19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoXSwgWzFdLAorICAgIFtUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZworICAgIGEgc2hhcmVkIGxpYnJhcnldKQorXSkjIF9MVF9TWVNfSElEREVOX0xJQkRFUFMKKworCisjIF9MVF9QUk9HX0Y3NworIyAtLS0tLS0tLS0tLS0KKyMgU2luY2UgQUNfUFJPR19GNzcgaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVybnMgdGhlIGVtcHR5IHN0cmluZworIyBpZiB0aGVyZSBpcyBubyBmb3J0cmFuIGNvbXBpbGVyLCB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBoZXJlLgorbTRfZGVmdW4oW19MVF9QUk9HX0Y3N10sCitbCitwdXNoZGVmKFtBQ19NU0dfRVJST1JdLCBbX2x0X2Rpc2FibGVfRjc3PXllc10pCitBQ19QUk9HX0Y3NworaWYgdGVzdCAteiAiJEY3NyIgfHwgdGVzdCAiWCRGNzciID0gIlhubyI7IHRoZW4KKyAgX2x0X2Rpc2FibGVfRjc3PXllcworZmkKK3BvcGRlZihbQUNfTVNHX0VSUk9SXSkKK10pIyBfTFRfUFJPR19GNzcKKworZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19GNzddLCBbXSkKKworCisjIF9MVF9MQU5HX0Y3N19DT05GSUcoW1RBR10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBGb3J0cmFuIDc3IGNvbXBpbGVyIGFyZQorIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCisjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KK200X2RlZnVuKFtfTFRfTEFOR19GNzdfQ09ORklHXSwKK1tBQ19SRVFVSVJFKFtfTFRfUFJPR19GNzddKWRubAorQUNfTEFOR19QVVNIKEZvcnRyYW4gNzcpCisKK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQorX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CitfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubworX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CitfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KK19MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCitfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9CitfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQorX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKK19MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0KK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisKKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmNzcgdGVzdCBzb3VyY2VzLgorYWNfZXh0PWYKKworIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIGY3NyB0ZXN0IHNvdXJjZXMuCitvYmpleHQ9bworX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisKKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKyMgdGhlIEY3NyBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgoraWYgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3NyIgIT0geWVzOyB0aGVuCisgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAorICAgICAgc3Vicm91dGluZSB0CisgICAgICByZXR1cm4KKyAgICAgIGVuZAorIgorCisgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisgIGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAorICAgICAgcHJvZ3JhbSB0CisgICAgICBlbmQKKyIKKworICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisgIF9MVF9UQUdfQ09NUElMRVIKKworICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorICBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorCisgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisgIGx0X3NhdmVfQ0M9IiRDQyIKKyAgbHRfc2F2ZV9HQ0M9JEdDQworICBDQz0ke0Y3Ny0iZjc3In0KKyAgY29tcGlsZXI9JENDCisgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKyAgX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorICBHQ0M9JEc3NworICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorICAgIEFDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKKworICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkKKyAgICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KKworICAgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorICAgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KKyAgICBjYXNlICRob3N0X29zIGluCisgICAgICBhaXgzKikKKyAgICAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKyAgICAgICAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCisgICAgICAgICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJworICAgICAgICBmaQorICAgICAgICA7OworICAgICAgYWl4W1s0LTldXSopCisJaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorCSAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKwlmaQorICAgICAgICA7OworICAgIGVzYWMKKyAgICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJlZF0pCisKKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCisgICAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCisgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisgICAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQorCisgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJEc3NyIKKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKKworICAgICMjIENBVkVBVCBFTVBUT1I6CisgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisgICAgX0xUX0NPTVBJTEVSX0NfTygkMSkKKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKyAgICBfTFRfTElOS0VSX1NITElCUygkMSkKKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQorICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKworICAgIF9MVF9DT05GSUcoJDEpCisgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgorCisgIEdDQz0kbHRfc2F2ZV9HQ0MKKyAgQ0M9IiRsdF9zYXZlX0NDIgorZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRjc3IiAhPSB5ZXMKKworQUNfTEFOR19QT1AKK10pIyBfTFRfTEFOR19GNzdfQ09ORklHCisKKworIyBfTFRfUFJPR19GQworIyAtLS0tLS0tLS0tLQorIyBTaW5jZSBBQ19QUk9HX0ZDIGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcKKyMgaWYgdGhlcmUgaXMgbm8gZm9ydHJhbiBjb21waWxlciwgd2UgaGF2ZSBvdXIgb3duIHZlcnNpb24gaGVyZS4KK200X2RlZnVuKFtfTFRfUFJPR19GQ10sCitbCitwdXNoZGVmKFtBQ19NU0dfRVJST1JdLCBbX2x0X2Rpc2FibGVfRkM9eWVzXSkKK0FDX1BST0dfRkMKK2lmIHRlc3QgLXogIiRGQyIgfHwgdGVzdCAiWCRGQyIgPSAiWG5vIjsgdGhlbgorICBfbHRfZGlzYWJsZV9GQz15ZXMKK2ZpCitwb3BkZWYoW0FDX01TR19FUlJPUl0pCitdKSMgX0xUX1BST0dfRkMKKworZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19GQ10sIFtdKQorCisKKyMgX0xUX0xBTkdfRkNfQ09ORklHKFtUQUddKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBGb3J0cmFuIGNvbXBpbGVyIGFyZQorIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCisjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KK200X2RlZnVuKFtfTFRfTEFOR19GQ19DT05GSUddLAorW0FDX1JFUVVJUkUoW19MVF9QUk9HX0ZDXSlkbmwKK0FDX0xBTkdfUFVTSChGb3J0cmFuKQorCitfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KK19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KK19MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQorX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CitfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KK19MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCitfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCitfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubworX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQorX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KK19MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCitfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CitfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CitfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubworCisjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgZmMgdGVzdCBzb3VyY2VzLgorYWNfZXh0PSR7YWNfZmNfc3JjZXh0LWZ9CisKKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBmYyB0ZXN0IHNvdXJjZXMuCitvYmpleHQ9bworX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisKKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKyMgdGhlIEZDIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hhcmVkKQorIyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCitpZiB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHllczsgdGhlbgorICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9IlwKKyAgICAgIHN1YnJvdXRpbmUgdAorICAgICAgcmV0dXJuCisgICAgICBlbmQKKyIKKworICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IlwKKyAgICAgIHByb2dyYW0gdAorICAgICAgZW5kCisiCisKKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgorICBfTFRfVEFHX0NPTVBJTEVSCisKKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKyAgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisgIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKKworICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorICBsdF9zYXZlX0NDPSIkQ0MiCisgIGx0X3NhdmVfR0NDPSRHQ0MKKyAgQ0M9JHtGQy0iZjk1In0KKyAgY29tcGlsZXI9JENDCisgIEdDQz0kYWNfY3ZfZmNfY29tcGlsZXJfZ251CisKKyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQworICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisKKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgorICAgIEFDX01TR19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKKyAgICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCisKKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisgICAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisKKyAgICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKyAgICAjIGFyZSBhbGwgYnVpbHQgZnJvbSBQSUMuCisgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgYWl4MyopCisgICAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisgICAgICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisgICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgorICAgICAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKKyAgICAgICAgZmkKKyAgICAgICAgOzsKKyAgICAgIGFpeFtbNC05XV0qKQorCWlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KKwkgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisJZmkKKyAgICAgICAgOzsKKyAgICBlc2FjCisgICAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zaGFyZWRdKQorCisgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorICAgICMgTWFrZSBzdXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgorICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcworICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkKKworICAgIF9MVF9UQUdWQVIoR0NDLCAkMSk9IiRhY19jdl9mY19jb21waWxlcl9nbnUiCisgICAgX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisKKyAgICAjIyBDQVZFQVQgRU1QVE9SOgorICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKyAgICAjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KKyAgICBfTFRfU1lTX0hJRERFTl9MSUJERVBTKCQxKQorICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisgICAgX0xUX0NPTVBJTEVSX0NfTygkMSkKKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKyAgICBfTFRfTElOS0VSX1NITElCUygkMSkKKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQorICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKworICAgIF9MVF9DT05GSUcoJDEpCisgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgorCisgIEdDQz0kbHRfc2F2ZV9HQ0MKKyAgQ0M9IiRsdF9zYXZlX0NDIgorZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHllcworCitBQ19MQU5HX1BPUAorXSkjIF9MVF9MQU5HX0ZDX0NPTkZJRworCisKKyMgX0xUX0xBTkdfR0NKX0NPTkZJRyhbVEFHXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciB0aGUgR05VIEphdmEgQ29tcGlsZXIgY29tcGlsZXIKKyMgYXJlIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorbTRfZGVmdW4oW19MVF9MQU5HX0dDSl9DT05GSUddLAorW0FDX1JFUVVJUkUoW0xUX1BST0dfR0NKXSlkbmwKK0FDX0xBTkdfU0FWRQorCisjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgSmF2YSB0ZXN0IHNvdXJjZXMuCithY19leHQ9amF2YQorCisjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgSmF2YSB0ZXN0IHNvdXJjZXMuCitvYmpleHQ9bworX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisKKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCitsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImNsYXNzIGZvbyB7fSIKKworIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0ncHVibGljIGNsYXNzIGNvbmZ0ZXN0IHsgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW1tdXSBhcmd2KSB7fTsgfScKKworIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgorX0xUX1RBR19DT01QSUxFUgorCisjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCitfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisKKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCitsdF9zYXZlX0NDPSIkQ0MiCitsdF9zYXZlX0dDQz0kR0NDCitHQ0M9eWVzCitDQz0ke0dDSi0iZ2NqIn0KK2NvbXBpbGVyPSRDQworX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQworX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCitfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisKKyMgR0NKIGRpZCBub3QgZXhpc3QgYXQgdGhlIHRpbWUgR0NDIGRpZG4ndCBpbXBsaWNpdGx5IGxpbmsgbGliYyBpbi4KK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworCitfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcworCisjIyBDQVZFQVQgRU1QVE9SOgorIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKyMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKyAgX0xUX0NPTVBJTEVSX05PX1JUVEkoJDEpCisgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisgIF9MVF9DT01QSUxFUl9DX08oJDEpCisgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorICBfTFRfTElOS0VSX1NITElCUygkMSkKKyAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorCisgIF9MVF9DT05GSUcoJDEpCitmaQorCitBQ19MQU5HX1JFU1RPUkUKKworR0NDPSRsdF9zYXZlX0dDQworQ0M9IiRsdF9zYXZlX0NDIgorXSkjIF9MVF9MQU5HX0dDSl9DT05GSUcKKworCisjIF9MVF9MQU5HX1JDX0NPTkZJRyhbVEFHXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBXaW5kb3dzIHJlc291cmNlIGNvbXBpbGVyCisjIGFyZSBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCisjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KK200X2RlZnVuKFtfTFRfTEFOR19SQ19DT05GSUddLAorW0FDX1JFUVVJUkUoW0xUX1BST0dfUkNdKWRubAorQUNfTEFOR19TQVZFCisKKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBSQyB0ZXN0IHNvdXJjZXMuCithY19leHQ9cmMKKworIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIFJDIHRlc3Qgc291cmNlcy4KK29iamV4dD1vCitfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKworIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0nc2FtcGxlIE1FTlUgeyBNRU5VSVRFTSAiJlNvdXAiLCAxMDAsIENIRUNLRUQgfScKKworIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIKKworIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgorX0xUX1RBR19DT01QSUxFUgorCisjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCitfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisKKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCitsdF9zYXZlX0NDPSIkQ0MiCitsdF9zYXZlX0dDQz0kR0NDCitHQ0M9CitDQz0ke1JDLSJ3aW5kcmVzIn0KK2NvbXBpbGVyPSRDQworX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQworX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPXllcworCitpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisgIDoKKyAgX0xUX0NPTkZJRygkMSkKK2ZpCisKK0dDQz0kbHRfc2F2ZV9HQ0MKK0FDX0xBTkdfUkVTVE9SRQorQ0M9IiRsdF9zYXZlX0NDIgorXSkjIF9MVF9MQU5HX1JDX0NPTkZJRworCisKKyMgTFRfUFJPR19HQ0oKKyMgLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtMVF9QUk9HX0dDSl0sCitbbTRfaWZkZWYoW0FDX1BST0dfR0NKXSwgW0FDX1BST0dfR0NKXSwKKyAgW200X2lmZGVmKFtBXVtNX1BST0dfR0NKXSwgW0FdW01fUFJPR19HQ0pdLAorICAgIFtBQ19DSEVDS19UT09MKEdDSiwgZ2NqLCkKKyAgICAgIHRlc3QgIngke0dDSkZMQUdTK3NldH0iID0geHNldCB8fCBHQ0pGTEFHUz0iLWcgLU8yIgorICAgICAgQUNfU1VCU1QoR0NKRkxBR1MpXSldKVtdZG5sCitdKQorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0xUX0FDX1BST0dfR0NKXSwgW0xUX1BST0dfR0NKXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19HQ0pdLCBbXSkKKworCisjIExUX1BST0dfUkMKKyMgLS0tLS0tLS0tLQorQUNfREVGVU4oW0xUX1BST0dfUkNdLAorW0FDX0NIRUNLX1RPT0woUkMsIHdpbmRyZXMsKQorXSkKKworIyBPbGQgbmFtZToKK0FVX0FMSUFTKFtMVF9BQ19QUk9HX1JDXSwgW0xUX1BST0dfUkNdKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9HX1JDXSwgW10pCisKKworIyBfTFRfREVDTF9FR1JFUAorIyAtLS0tLS0tLS0tLS0tLQorIyBJZiB3ZSBkb24ndCBoYXZlIGEgbmV3IGVub3VnaCBBdXRvY29uZiB0byBjaG9vc2UgdGhlIGJlc3QgZ3JlcAorIyBhdmFpbGFibGUsIGNob29zZSB0aGUgb25lIGZpcnN0IGluIHRoZSB1c2VyJ3MgUEFUSC4KK200X2RlZnVuKFtfTFRfREVDTF9FR1JFUF0sCitbQUNfUkVRVUlSRShbQUNfUFJPR19FR1JFUF0pZG5sCitBQ19SRVFVSVJFKFtBQ19QUk9HX0ZHUkVQXSlkbmwKK3Rlc3QgLXogIiRHUkVQIiAmJiBHUkVQPWdyZXAKK19MVF9ERUNMKFtdLCBbR1JFUF0sIFsxXSwgW0EgZ3JlcCBwcm9ncmFtIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzXSkKK19MVF9ERUNMKFtdLCBbRUdSRVBdLCBbMV0sIFtBbiBFUkUgbWF0Y2hlcl0pCitfTFRfREVDTChbXSwgW0ZHUkVQXSwgWzFdLCBbQSBsaXRlcmFsIHN0cmluZyBtYXRjaGVyXSkKK2RubCBOb24tYmxlZWRpbmctZWRnZSBhdXRvY29uZiBkb2Vzbid0IHN1YnN0IEdSRVAsIHNvIGRvIGl0IGhlcmUgdG9vCitBQ19TVUJTVChbR1JFUF0pCitdKQorCisKKyMgX0xUX0RFQ0xfT0JKRFVNUAorIyAtLS0tLS0tLS0tLS0tLQorIyBJZiB3ZSBkb24ndCBoYXZlIGEgbmV3IGVub3VnaCBBdXRvY29uZiB0byBjaG9vc2UgdGhlIGJlc3Qgb2JqZHVtcAorIyBhdmFpbGFibGUsIGNob29zZSB0aGUgb25lIGZpcnN0IGluIHRoZSB1c2VyJ3MgUEFUSC4KK200X2RlZnVuKFtfTFRfREVDTF9PQkpEVU1QXSwKK1tBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1bXAsIGZhbHNlKQordGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVtcAorX0xUX0RFQ0woW10sIFtPQkpEVU1QXSwgWzFdLCBbQW4gb2JqZWN0IHN5bWJvbCBkdW1wZXJdKQorQUNfU1VCU1QoW09CSkRVTVBdKQorXSkKKworCisjIF9MVF9ERUNMX1NFRAorIyAtLS0tLS0tLS0tLS0KKyMgQ2hlY2sgZm9yIGEgZnVsbHktZnVuY3Rpb25hbCBzZWQgcHJvZ3JhbSwgdGhhdCB0cnVuY2F0ZXMKKyMgYXMgZmV3IGNoYXJhY3RlcnMgYXMgcG9zc2libGUuICBQcmVmZXIgR05VIHNlZCBpZiBmb3VuZC4KK200X2RlZnVuKFtfTFRfREVDTF9TRURdLAorW0FDX1BST0dfU0VECit0ZXN0IC16ICIkU0VEIiAmJiBTRUQ9c2VkCitYc2VkPSIkU0VEIC1lIDFzL15YLy8iCitfTFRfREVDTChbXSwgW1NFRF0sIFsxXSwgW0Egc2VkIHByb2dyYW0gdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXRdKQorX0xUX0RFQ0woW10sIFtYc2VkXSwgWyJcJFNFRCAtZSAxcy9eWC8vIl0sCisgICAgW1NlZCB0aGF0IGhlbHBzIHVzIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIGVjaG8oMSkgb3B0aW9ucyBsaWtlIC1uXSkKK10pIyBfTFRfREVDTF9TRUQKKworbTRfaWZuZGVmKFtBQ19QUk9HX1NFRF0sIFsKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBOT1RFOiBUaGlzIG1hY3JvIGhhcyBiZWVuIHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGludG8gICAjCisjICBHTlUgQXV0b2NvbmYgYXMgQUNfUFJPR19TRUQuICBXaGVuIGl0IGlzIGF2YWlsYWJsZSBpbiAgICMKKyMgIGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBBdXRvY29uZiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgICAgIworIyAgbWFjcm8gYW5kIHVzZSBpdCBpbnN0ZWFkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworbTRfZGVmdW4oW0FDX1BST0dfU0VEXSwKK1tBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCitBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9TRUQsCitbIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBzZWQgYW5kIGdzZWQuCisjIFRoZW4gdXNlIHRoYXQgbGlzdCBvZiBzZWQncyBhcyBvbmVzIHRvIHRlc3QgZm9yIHRydW5jYXRpb24uCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBsdF9hY19wcm9nIGluIHNlZCBnc2VkOyBkbworICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICAgICAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19leGVjX2V4dCI7IHRoZW4KKyAgICAgICAgbHRfYWNfc2VkX2xpc3Q9IiRsdF9hY19zZWRfbGlzdCAkYXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4ZWNfZXh0IgorICAgICAgZmkKKyAgICBkb25lCisgIGRvbmUKK2RvbmUKK0lGUz0kYXNfc2F2ZV9JRlMKK2x0X2FjX21heD0wCitsdF9hY19jb3VudD0wCisjIEFkZCAvdXNyL3hwZzQvYmluL3NlZCBhcyBpdCBpcyB0eXBpY2FsbHkgZm91bmQgb24gU29sYXJpcworIyBhbG9uZyB3aXRoIC9iaW4vc2VkIHRoYXQgdHJ1bmNhdGVzIG91dHB1dC4KK2ZvciBsdF9hY19zZWQgaW4gJGx0X2FjX3NlZF9saXN0IC91c3IveHBnNC9iaW4vc2VkOyBkbworICB0ZXN0ICEgLWYgJGx0X2FjX3NlZCAmJiBjb250aW51ZQorICBjYXQgL2Rldi9udWxsID4gY29uZnRlc3QuaW4KKyAgbHRfYWNfY291bnQ9MAorICBlY2hvICRFQ0hPX04gIjAxMjM0NTY3ODkkRUNIT19DIiA+Y29uZnRlc3QuaW4KKyAgIyBDaGVjayBmb3IgR05VIHNlZCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgorICBpZiAiJGx0X2FjX3NlZCIgLS12ZXJzaW9uIDI+JjEgPCAvZGV2L251bGwgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAorICAgIGJyZWFrCisgIGZpCisgIHdoaWxlIHRydWU7IGRvCisgICAgY2F0IGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LmluID5jb25mdGVzdC50bXAKKyAgICBtdiBjb25mdGVzdC50bXAgY29uZnRlc3QuaW4KKyAgICBjcCBjb25mdGVzdC5pbiBjb25mdGVzdC5ubAorICAgIGVjaG8gPj5jb25mdGVzdC5ubAorICAgICRsdF9hY19zZWQgLWUgJ3MvYSQvLycgPCBjb25mdGVzdC5ubCA+Y29uZnRlc3Qub3V0IHx8IGJyZWFrCisgICAgY21wIC1zIGNvbmZ0ZXN0Lm91dCBjb25mdGVzdC5ubCB8fCBicmVhaworICAgICMgMTAwMDAgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAorICAgIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAxMCAmJiBicmVhaworICAgIGx0X2FjX2NvdW50PWBleHByICRsdF9hY19jb3VudCArIDFgCisgICAgaWYgdGVzdCAkbHRfYWNfY291bnQgLWd0ICRsdF9hY19tYXg7IHRoZW4KKyAgICAgIGx0X2FjX21heD0kbHRfYWNfY291bnQKKyAgICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQKKyAgICBmaQorICBkb25lCitkb25lCitdKQorU0VEPSRsdF9jdl9wYXRoX1NFRAorQUNfU1VCU1QoW1NFRF0pCitBQ19NU0dfUkVTVUxUKFskU0VEXSkKK10pI0FDX1BST0dfU0VECitdKSNtNF9pZm5kZWYKKworIyBPbGQgbmFtZToKK0FVX0FMSUFTKFtMVF9BQ19QUk9HX1NFRF0sIFtBQ19QUk9HX1NFRF0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0xUX0FDX1BST0dfU0VEXSwgW10pCisKKworIyBfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZpbmQgb3V0IHdoZXRoZXIgdGhlIHNoZWxsIGlzIEJvdXJuZSBvciBYU0kgY29tcGF0aWJsZSwKKyMgb3IgaGFzIHNvbWUgb3RoZXIgdXNlZnVsIGZlYXR1cmVzLgorbTRfZGVmdW4oW19MVF9DSEVDS19TSEVMTF9GRUFUVVJFU10sCitbQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBzb21lIFhTSSBjb25zdHJ1Y3RzXSkKKyMgVHJ5IHNvbWUgWFNJIGZlYXR1cmVzCit4c2lfc2hlbGw9bm8KKyggX2x0X2R1bW15PSJhL2IvYyIKKyAgdGVzdCAiJHtfbHRfZHVtbXkjIyovfSwke19sdF9kdW1teSUvKn0sIiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0sIFwKKyAgICAgID0gYyxhL2IsLCBcCisgICAgJiYgZXZhbCAndGVzdCAkKCggMSArIDEgKSkgLWVxIDIgXAorICAgICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1lcSA1JyApID4vZGV2L251bGwgMj4mMSBcCisgICYmIHhzaV9zaGVsbD15ZXMKK0FDX01TR19SRVNVTFQoWyR4c2lfc2hlbGxdKQorX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW3hzaV9zaGVsbD0nJHhzaV9zaGVsbCddKQorCitBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICIrPSJdKQorbHRfc2hlbGxfYXBwZW5kPW5vCisoIGZvbz1iYXI7IHNldCBmb28gYmF6OyBldmFsICIkWzFdKz1cJFsyXSIgJiYgdGVzdCAiJGZvbyIgPSBiYXJiYXogKSBcCisgICAgPi9kZXYvbnVsbCAyPiYxIFwKKyAgJiYgbHRfc2hlbGxfYXBwZW5kPXllcworQUNfTVNHX1JFU1VMVChbJGx0X3NoZWxsX2FwcGVuZF0pCitfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbbHRfc2hlbGxfYXBwZW5kPSckbHRfc2hlbGxfYXBwZW5kJ10pCisKK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBsdF91bnNldD11bnNldAorZWxzZQorICBsdF91bnNldD1mYWxzZQorZmkKK19MVF9ERUNMKFtdLCBbbHRfdW5zZXRdLCBbMF0sIFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAidW5zZXQiXSlkbmwKKworIyB0ZXN0IEVCQ0RJQyBvciBBU0NJSQorY2FzZSBgZWNobyBYfHRyIFggJ1wxMDEnYCBpbgorIEEpICMgQVNDSUkgYmFzZWQgc3lzdGVtCisgICAgIyBcbiBpcyBub3QgaW50ZXJwcmV0ZWQgY29ycmVjdGx5IGJ5IFNvbGFyaXMgOCAvdXNyL3VjYi90cgorICBsdF9TUDJOTD0ndHIgXDA0MCBcMDEyJworICBsdF9OTDJTUD0ndHIgXDAxNVwwMTIgXDA0MFwwNDAnCisgIDs7CisgKikgIyBFQkNESUMgYmFzZWQgc3lzdGVtCisgIGx0X1NQMk5MPSd0ciBcMTAwIFxuJworICBsdF9OTDJTUD0ndHIgXHJcbiBcMTAwXDEwMCcKKyAgOzsKK2VzYWMKK19MVF9ERUNMKFtTUDJOTF0sIFtsdF9TUDJOTF0sIFsxXSwgW3R1cm4gc3BhY2VzIGludG8gbmV3bGluZXNdKWRubAorX0xUX0RFQ0woW05MMlNQXSwgW2x0X05MMlNQXSwgWzFdLCBbdHVybiBuZXdsaW5lcyBpbnRvIHNwYWNlc10pZG5sCitdKSMgX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTCisKKworIyBfTFRfUFJPR19YU0lfU0hFTExGTlMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEJvdXJuZSBhbmQgWFNJIGNvbXBhdGlibGUgdmFyaWFudHMgb2Ygc29tZSB1c2VmdWwgc2hlbGwgZnVuY3Rpb25zLgorbTRfZGVmdW4oW19MVF9QUk9HX1hTSV9TSEVMTEZOU10sCitbY2FzZSAkeHNpX3NoZWxsIGluCisgIHllcykKKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorCisjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKyMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgorZnVuY19kaXJuYW1lICgpCit7CisgIGNhc2UgJHsxfSBpbgorICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisgICAgKiAgKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IiA7OworICBlc2FjCit9CisKKyMgZnVuY19iYXNlbmFtZSBmaWxlCitmdW5jX2Jhc2VuYW1lICgpCit7CisgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKK30KKworIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAorIyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgorIyBjYWxsOgorIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwKKyMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAorIyAgICAgICAgICAgICB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKyMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgorIyAgICAgICAgICAgICB2YWx1ZSByZXR1bmVkIGluICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisjIEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5hbWUKKyMgYW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KKyMgdGhvc2UgZnVuY3Rpb25zIGJ1dCBpbnN0ZWFkIGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgorZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQoreworICBjYXNlICR7MX0gaW4KKyAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OworICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKyAgZXNhYworICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iCit9CisKKyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCisjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZworIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorZnVuY19zdHJpcG5hbWUgKCkKK3sKKyAgIyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQorICAjIHBvc2l0aW9uYWwgcGFyYW1ldGVycywgc28gYXNzaWduIG9uZSB0byBvcmRpbmFyeSBwYXJhbWV0ZXIgZmlyc3QuCisgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0kezN9CisgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9CisgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCUiJHsyfSJ9Cit9CisKKyMgZnVuY19vcHRfc3BsaXQKK2Z1bmNfb3B0X3NwbGl0ICgpCit7CisgIGZ1bmNfb3B0X3NwbGl0X29wdD0kezElJT0qfQorICBmdW5jX29wdF9zcGxpdF9hcmc9JHsxIyo9fQorfQorCisjIGZ1bmNfbG8ybyBvYmplY3QKK2Z1bmNfbG8ybyAoKQoreworICBjYXNlICR7MX0gaW4KKyAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7OworICAgICopICAgIGZ1bmNfbG8yb19yZXN1bHQ9JHsxfSA7OworICBlc2FjCit9CisKKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCitmdW5jX3hmb3JtICgpCit7CisgIGZ1bmNfeGZvcm1fcmVzdWx0PSR7MSUuKn0ubG8KK30KKworIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgorZnVuY19hcml0aCAoKQoreworICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCggJFsqXSApKQorfQorCisjIGZ1bmNfbGVuIHN0cmluZworIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorZnVuY19sZW4gKCkKK3sKKyAgZnVuY19sZW5fcmVzdWx0PSR7IzF9Cit9CisKK19MVF9FT0YKKyAgICA7OworICAqKSAjIEJvdXJuZSBjb21wYXRpYmxlIGZ1bmN0aW9ucy4KKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorCisjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKyMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgorZnVuY19kaXJuYW1lICgpCit7CisgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAorICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgorICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCisgIGVsc2UKKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCisgIGZpCit9CisKKyMgZnVuY19iYXNlbmFtZSBmaWxlCitmdW5jX2Jhc2VuYW1lICgpCit7CisgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCit9CisKK2RubCBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lCitkbmwgQSBwb3J0YWJsZSB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gaXMgYWxyZWFkeSBkZWZpbmVkIGluIGdlbmVyYWwubTRzaAorZG5sIHNvIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGl0IGhlcmUuCisKKyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCisjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZworIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorIyBmdW5jX3N0cmlwX3N1ZmZpeCBwcmVmaXggbmFtZQorZnVuY19zdHJpcG5hbWUgKCkKK3sKKyAgY2FzZSAkezJ9IGluCisgICAgLiopIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCisgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlXFxcXCR7Mn1cJCUlImA7OworICAgICopICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHszfSIgXAorICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4kezF9JSUiIC1lICJzJSR7Mn1cJCUlImA7OworICBlc2FjCit9CisKKyMgc2VkIHNjcmlwdHM6CitteV9zZWRfbG9uZ19vcHQ9JzFzL15cKC1bW149XV0qXCk9LiovXDEvO3EnCitteV9zZWRfbG9uZ19hcmc9JzFzL14tW1tePV1dKj0vLycKKworIyBmdW5jX29wdF9zcGxpdAorZnVuY19vcHRfc3BsaXQgKCkKK3sKKyAgZnVuY19vcHRfc3BsaXRfb3B0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19vcHQiYAorICBmdW5jX29wdF9zcGxpdF9hcmc9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJG15X3NlZF9sb25nX2FyZyJgCit9CisKKyMgZnVuY19sbzJvIG9iamVjdAorZnVuY19sbzJvICgpCit7CisgIGZ1bmNfbG8yb19yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGxvMm8iYAorfQorCisjIGZ1bmNfeGZvcm0gbGlib2JqLW9yLXNvdXJjZQorZnVuY194Zm9ybSAoKQoreworICBmdW5jX3hmb3JtX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICdzL1wuW1teLl1dKiQvLmxvLydgCit9CisKKyMgZnVuY19hcml0aCBhcml0aG1ldGljLXRlcm0uLi4KK2Z1bmNfYXJpdGggKCkKK3sKKyAgZnVuY19hcml0aF9yZXN1bHQ9YGV4cHIgIiRbQF0iYAorfQorCisjIGZ1bmNfbGVuIHN0cmluZworIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorZnVuY19sZW4gKCkKK3sKKyAgZnVuY19sZW5fcmVzdWx0PWBleHByICIkWzFdIiA6ICIuKiIgMj4vZGV2L251bGwgfHwgZWNobyAkbWF4X2NtZF9sZW5gCit9CisKK19MVF9FT0YKK2VzYWMKKworY2FzZSAkbHRfc2hlbGxfYXBwZW5kIGluCisgIHllcykKKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorCisjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQorIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIuCitmdW5jX2FwcGVuZCAoKQoreworICBldmFsICIkWzFdKz1cJFsyXSIKK30KK19MVF9FT0YKKyAgICA7OworICAqKQorICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisKKyMgZnVuY19hcHBlbmQgdmFyIHZhbHVlCisjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KK2Z1bmNfYXBwZW5kICgpCit7CisgIGV2YWwgIiRbMV09XCQkWzFdXCRbMl0iCit9CisKK19MVF9FT0YKKyAgICA7OworICBlc2FjCitdKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbHRvcHRpb25zLm00IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbHRvcHRpb25zLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MTUxYTMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9sdG9wdGlvbnMubTQKQEAgLTAsMCArMSwzNjggQEAKKyMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorIworIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgICBXcml0dGVuIGJ5IEdhcnkgVi4gVmF1Z2hhbiwgMjAwNAorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDYgbHRvcHRpb25zLm00CisKKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCitBQ19ERUZVTihbTFRPUFRJT05TX1ZFUlNJT05dLCBbbTRfaWYoWzFdKV0pCisKKworIyBfTFRfTUFOR0xFX09QVElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW19MVF9NQU5HTEVfT1BUSU9OXSwKK1tbX0xUX09QVElPTl9dbTRfYnBhdHN1YnN0KCQxX18kMiwgW1teYS16QS1aMC05X11dLCBbX10pXSkKKworCisjIF9MVF9TRVRfT1BUSU9OKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU2V0IG9wdGlvbiBPUFRJT04tTkFNRSBmb3IgbWFjcm8gTUFDUk8tTkFNRSwgYW5kIGlmIHRoZXJlIGlzIGEKKyMgbWF0Y2hpbmcgaGFuZGxlciBkZWZpbmVkLCBkaXNwYXRjaCB0byBpdC4gIE90aGVyIE9QVElPTi1OQU1FcyBhcmUKKyMgc2F2ZWQgYXMgYSBmbGFnLgorbTRfZGVmaW5lKFtfTFRfU0VUX09QVElPTl0sCitbbTRfZGVmaW5lKF9MVF9NQU5HTEVfT1BUSU9OKFskMV0sIFskMl0pKWRubAorbTRfaWZkZWYoX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwKKyAgICAgICAgX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwKKyAgICBbbTRfd2FybmluZyhbVW5rbm93biAkMSBvcHRpb24gYCQyJ10pXSlbXWRubAorXSkKKworCisjIF9MVF9JRl9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUsIElGLVNFVCwgW0lGLU5PVC1TRVRdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRXhlY3V0ZSBJRi1TRVQgaWYgT1BUSU9OIGlzIHNldCwgSUYtTk9ULVNFVCBvdGhlcndpc2UuCittNF9kZWZpbmUoW19MVF9JRl9PUFRJT05dLAorW200X2lmZGVmKF9MVF9NQU5HTEVfT1BUSU9OKFskMV0sIFskMl0pLCBbJDNdLCBbJDRdKV0pCisKKworIyBfTFRfVU5MRVNTX09QVElPTlMoTUFDUk8tTkFNRSwgT1BUSU9OLUxJU1QsIElGLU5PVC1TRVQpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRXhlY3V0ZSBJRi1OT1QtU0VUIHVubGVzcyBhbGwgb3B0aW9ucyBpbiBPUFRJT04tTElTVCBmb3IgTUFDUk8tTkFNRQorIyBhcmUgc2V0LgorbTRfZGVmaW5lKFtfTFRfVU5MRVNTX09QVElPTlNdLAorW200X2ZvcmVhY2goW19MVF9PcHRpb25dLCBtNF9zcGxpdChtNF9ub3JtYWxpemUoWyQyXSkpLAorCSAgICBbbTRfaWZkZWYoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgX0xUX09wdGlvbiksCisJCSAgICAgIFttNF9kZWZpbmUoWyQwX2ZvdW5kXSldKV0pW11kbmwKK200X2lmZGVmKFskMF9mb3VuZF0sIFttNF91bmRlZmluZShbJDBfZm91bmRdKV0sIFskMworXSlbXWRubAorXSkKKworCisjIF9MVF9TRVRfT1BUSU9OUyhNQUNSTy1OQU1FLCBPUFRJT04tTElTVCkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBPUFRJT04tTElTVCBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIExpYnRvb2wgb3B0aW9ucyBhc3NvY2lhdGVkCisjIHdpdGggTUFDUk8tTkFNRS4gIElmIGFueSBPUFRJT04gaGFzIGEgbWF0Y2hpbmcgaGFuZGxlciBkZWNsYXJlZCB3aXRoCisjIExUX09QVElPTl9ERUZJTkUsIGRpc3BhdGNoIHRvIHRoYXQgbWFjcm87IG90aGVyd2lzZSBjb21wbGFpbiBhYm91dAorIyB0aGUgdW5rbm93biBvcHRpb24gYW5kIGV4aXQuCittNF9kZWZ1bihbX0xUX1NFVF9PUFRJT05TXSwKK1sjIFNldCBvcHRpb25zCittNF9mb3JlYWNoKFtfTFRfT3B0aW9uXSwgbTRfc3BsaXQobTRfbm9ybWFsaXplKFskMl0pKSwKKyAgICBbX0xUX1NFVF9PUFRJT04oWyQxXSwgX0xUX09wdGlvbildKQorCittNF9pZihbJDFdLFtMVF9JTklUXSxbCisgIGRubAorICBkbmwgU2ltcGx5IHNldCBzb21lIGRlZmF1bHQgdmFsdWVzIChpLmUgb2ZmKSBpZiBib29sZWFuIG9wdGlvbnMgd2VyZSBub3QKKyAgZG5sIHNwZWNpZmllZDoKKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW2Rsb3Blbl0sIFtlbmFibGVfZGxvcGVuPW5vCisgIF0pCisgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFt3aW4zMi1kbGxdLCBbZW5hYmxlX3dpbjMyX2RsbD1ubworICBdKQorICBkbmwKKyAgZG5sIElmIG5vIHJlZmVyZW5jZSB3YXMgbWFkZSB0byB2YXJpb3VzIHBhaXJzIG9mIG9wcG9zaW5nIG9wdGlvbnMsIHRoZW4KKyAgZG5sIHdlIHJ1biB0aGUgZGVmYXVsdCBtb2RlIGhhbmRsZXIgZm9yIHRoZSBwYWlyLiAgRm9yIGV4YW1wbGUsIGlmIG5laXRoZXIKKyAgZG5sIGBzaGFyZWQnIG5vciBgZGlzYWJsZS1zaGFyZWQnIHdhcyBwYXNzZWQsIHdlIGVuYWJsZSBidWlsZGluZyBvZiBzaGFyZWQKKyAgZG5sIGFyY2hpdmVzIGJ5IGRlZmF1bHQ6CisgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtzaGFyZWQgZGlzYWJsZS1zaGFyZWRdLCBbX0xUX0VOQUJMRV9TSEFSRURdKQorICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbc3RhdGljIGRpc2FibGUtc3RhdGljXSwgW19MVF9FTkFCTEVfU1RBVElDXSkKKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW3BpYy1vbmx5IG5vLXBpY10sIFtfTFRfV0lUSF9QSUNdKQorICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbZmFzdC1pbnN0YWxsIGRpc2FibGUtZmFzdC1pbnN0YWxsXSwKKyAgCQkgICBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExdKQorICBdKQorXSkjIF9MVF9TRVRfT1BUSU9OUworCisKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgTWFjcm9zIHRvIGhhbmRsZSBMVF9JTklUIG9wdGlvbnMuICMjCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKworIyBfTFRfTUFOR0xFX0RFRlVOKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtfTFRfTUFOR0xFX0RFRlVOXSwKK1tbX0xUX09QVElPTl9ERUZVTl9dbTRfYnBhdHN1YnN0KG00X3RvdXBwZXIoWyQxX18kMl0pLCBbW15BLVowLTlfXV0sIFtfXSldKQorCisKKyMgTFRfT1BUSU9OX0RFRklORShNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSwgQ09ERSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbTFRfT1BUSU9OX0RFRklORV0sCitbbTRfZGVmaW5lKF9MVF9NQU5HTEVfREVGVU4oWyQxXSwgWyQyXSksIFskM10pW11kbmwKK10pIyBMVF9PUFRJT05fREVGSU5FCisKKworIyBkbG9wZW4KKyMgLS0tLS0tCitMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rsb3Blbl0sIFtlbmFibGVfZGxvcGVuPXllcworXSkKKworQVVfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOXSwKK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkbG9wZW5dKQorQUNfRElBR05PU0UoW29ic29sZXRlXSwKK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKK3B1dCB0aGUgYGRsb3Blbicgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorXSkKKworZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl0sIFtdKQorCisKKyMgd2luMzItZGxsCisjIC0tLS0tLS0tLQorIyBEZWNsYXJlIHBhY2thZ2Ugc3VwcG9ydCBmb3IgYnVpbGRpbmcgd2luMzIgZGxsJ3MuCitMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW3dpbjMyLWRsbF0sCitbZW5hYmxlX3dpbjMyX2RsbD15ZXMKKworY2FzZSAkaG9zdCBpbgorKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi1jZWdjYyopCisgIEFDX0NIRUNLX1RPT0woQVMsIGFzLCBmYWxzZSkKKyAgQUNfQ0hFQ0tfVE9PTChETExUT09MLCBkbGx0b29sLCBmYWxzZSkKKyAgQUNfQ0hFQ0tfVE9PTChPQkpEVU1QLCBvYmpkdW1wLCBmYWxzZSkKKyAgOzsKK2VzYWMKKwordGVzdCAteiAiJEFTIiAmJiBBUz1hcworX0xUX0RFQ0woW10sIFtBU10sICAgICAgWzBdLCBbQXNzZW1ibGVyIHByb2dyYW1dKWRubAorCit0ZXN0IC16ICIkRExMVE9PTCIgJiYgRExMVE9PTD1kbGx0b29sCitfTFRfREVDTChbXSwgW0RMTFRPT0xdLCBbMF0sIFtETEwgY3JlYXRpb24gcHJvZ3JhbV0pZG5sCisKK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKK19MVF9ERUNMKFtdLCBbT0JKRFVNUF0sIFswXSwgW09iamVjdCBkdW1wZXIgcHJvZ3JhbV0pZG5sCitdKSMgd2luMzItZGxsCisKK0FVX0RFRlVOKFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sCitbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbd2luMzItZGxsXSkKK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCitbJDA6IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91CitwdXQgdGhlIGB3aW4zMi1kbGwnIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKK10pCisKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExdLCBbXSkKKworCisjIF9MVF9FTkFCTEVfU0hBUkVEKFtERUZBVUxUXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLXNoYXJlZCBmbGFnLCBhbmQgc3VwcG9ydHMgdGhlIGBzaGFyZWQnIGFuZAorIyBgZGlzYWJsZS1zaGFyZWQnIExUX0lOSVQgb3B0aW9ucy4KKyMgREVGQVVMVCBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMnLgorbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NIQVJFRF0sCitbbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8sIHllcyldKWRubAorQUNfQVJHX0VOQUJMRShbc2hhcmVkXSwKKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXNoYXJlZEA8OkA9UEtHU0A6PkBdLAorCVtidWlsZCBzaGFyZWQgbGlicmFyaWVzIEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUW0A6PkBdKV0sCisgICAgW3A9JHtQQUNLQUdFLWRlZmF1bHR9CisgICAgY2FzZSAkZW5hYmxldmFsIGluCisgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OworICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7CisgICAgKikKKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworCUlGUz0iJGx0X3NhdmVfaWZzIgorCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisJICBlbmFibGVfc2hhcmVkPXllcworCWZpCisgICAgICBkb25lCisgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKyAgICAgIDs7CisgICAgZXNhY10sCisgICAgW2VuYWJsZV9zaGFyZWQ9XV9MVF9FTkFCTEVfU0hBUkVEX0RFRkFVTFQpCisKKyAgICBfTFRfREVDTChbYnVpbGRfbGlidG9vbF9saWJzXSwgW2VuYWJsZV9zaGFyZWRdLCBbMF0sCisJW1doZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQorXSkjIF9MVF9FTkFCTEVfU0hBUkVECisKK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbc2hhcmVkXSwgW19MVF9FTkFCTEVfU0hBUkVEKFt5ZXNdKV0pCitMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rpc2FibGUtc2hhcmVkXSwgW19MVF9FTkFCTEVfU0hBUkVEKFtub10pXSkKKworIyBPbGQgbmFtZXM6CitBQ19ERUZVTihbQUNfRU5BQkxFX1NIQVJFRF0sCitbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzaGFyZWRdKQorXSkKKworQUNfREVGVU4oW0FDX0RJU0FCTEVfU0hBUkVEXSwKK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkaXNhYmxlLXNoYXJlZF0pCitdKQorCitBVV9ERUZVTihbQU1fRU5BQkxFX1NIQVJFRF0sIFtBQ19FTkFCTEVfU0hBUkVEKCRAKV0pCitBVV9ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBbQUNfRElTQUJMRV9TSEFSRUQoJEApXSkKKworZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBTV9FTkFCTEVfU0hBUkVEXSwgW10pCitkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU0hBUkVEXSwgW10pCisKKworCisjIF9MVF9FTkFCTEVfU1RBVElDKFtERUZBVUxUXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLXN0YXRpYyBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYHN0YXRpYycgYW5kCisjIGBkaXNhYmxlLXN0YXRpYycgTFRfSU5JVCBvcHRpb25zLgorIyBERUZBVUxUIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHllcycuCittNF9kZWZpbmUoW19MVF9FTkFCTEVfU1RBVElDXSwKK1ttNF9kZWZpbmUoW19MVF9FTkFCTEVfU1RBVElDX0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywgeWVzKV0pZG5sCitBQ19BUkdfRU5BQkxFKFtzdGF0aWNdLAorICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtc3RhdGljQDw6QD1QS0dTQDo+QF0sCisJW2J1aWxkIHN0YXRpYyBsaWJyYXJpZXMgQDw6QGRlZmF1bHQ9XV9MVF9FTkFCTEVfU1RBVElDX0RFRkFVTFRbQDo+QF0pXSwKKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKyAgICB5ZXMpIGVuYWJsZV9zdGF0aWM9eWVzIDs7CisgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKKyAgICAqKQorICAgICBlbmFibGVfc3RhdGljPW5vCisgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKwlJRlM9IiRsdF9zYXZlX2lmcyIKKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorCSAgZW5hYmxlX3N0YXRpYz15ZXMKKwlmaQorICAgICAgZG9uZQorICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisgICAgICA7OworICAgIGVzYWNdLAorICAgIFtlbmFibGVfc3RhdGljPV1fTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUKQorCisgICAgX0xUX0RFQ0woW2J1aWxkX29sZF9saWJzXSwgW2VuYWJsZV9zdGF0aWNdLCBbMF0sCisJW1doZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorXSkjIF9MVF9FTkFCTEVfU1RBVElDCisKK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbc3RhdGljXSwgW19MVF9FTkFCTEVfU1RBVElDKFt5ZXNdKV0pCitMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rpc2FibGUtc3RhdGljXSwgW19MVF9FTkFCTEVfU1RBVElDKFtub10pXSkKKworIyBPbGQgbmFtZXM6CitBQ19ERUZVTihbQUNfRU5BQkxFX1NUQVRJQ10sCitbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzdGF0aWNdKQorXSkKKworQUNfREVGVU4oW0FDX0RJU0FCTEVfU1RBVElDXSwKK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkaXNhYmxlLXN0YXRpY10pCitdKQorCitBVV9ERUZVTihbQU1fRU5BQkxFX1NUQVRJQ10sIFtBQ19FTkFCTEVfU1RBVElDKCRAKV0pCitBVV9ERUZVTihbQU1fRElTQUJMRV9TVEFUSUNdLCBbQUNfRElTQUJMRV9TVEFUSUMoJEApXSkKKworZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBTV9FTkFCTEVfU1RBVElDXSwgW10pCitkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU1RBVElDXSwgW10pCisKKworCisjIF9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMKFtERUZBVUxUXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLWZhc3QtaW5zdGFsbCBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYGZhc3QtaW5zdGFsbCcKKyMgYW5kIGBkaXNhYmxlLWZhc3QtaW5zdGFsbCcgTFRfSU5JVCBvcHRpb25zLgorIyBERUZBVUxUIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHllcycuCittNF9kZWZpbmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMXSwKK1ttNF9kZWZpbmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywgeWVzKV0pZG5sCitBQ19BUkdfRU5BQkxFKFtmYXN0LWluc3RhbGxdLAorICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZmFzdC1pbnN0YWxsQDw6QD1QS0dTQDo+QF0sCisgICAgW29wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBAPDpAZGVmYXVsdD1dX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVFtAOj5AXSldLAorICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorICAgIGNhc2UgJGVuYWJsZXZhbCBpbgorICAgIHllcykgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMgOzsKKyAgICBubykgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubyA7OworICAgICopCisgICAgICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCisgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKwlJRlM9IiRsdF9zYXZlX2lmcyIKKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorCSAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMKKwlmaQorICAgICAgZG9uZQorICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisgICAgICA7OworICAgIGVzYWNdLAorICAgIFtlbmFibGVfZmFzdF9pbnN0YWxsPV1fTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUKQorCitfTFRfREVDTChbZmFzdF9pbnN0YWxsXSwgW2VuYWJsZV9mYXN0X2luc3RhbGxdLCBbMF0sCisJIFtXaGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb25dKWRubAorXSkjIF9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMCisKK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZmFzdC1pbnN0YWxsXSwgW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMKFt5ZXNdKV0pCitMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rpc2FibGUtZmFzdC1pbnN0YWxsXSwgW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMKFtub10pXSkKKworIyBPbGQgbmFtZXM6CitBVV9ERUZVTihbQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF0sCitbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtmYXN0LWluc3RhbGxdKQorQUNfRElBR05PU0UoW29ic29sZXRlXSwKK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UgcHV0Cit0aGUgYGZhc3QtaW5zdGFsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorXSkKKworQVVfREVGVU4oW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwKK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkaXNhYmxlLWZhc3QtaW5zdGFsbF0pCitBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAorWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdSBwdXQKK3RoZSBgZGlzYWJsZS1mYXN0LWluc3RhbGwnIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKK10pCisKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF0sIFtdKQorZG5sIEFDX0RFRlVOKFtBTV9ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sIFtdKQorCisKKyMgX0xUX1dJVEhfUElDKFtNT0RFXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgaW1wbGVtZW50IHRoZSAtLXdpdGgtcGljIGZsYWcsIGFuZCBzdXBwb3J0IHRoZSBgcGljLW9ubHknIGFuZCBgbm8tcGljJworIyBMVF9JTklUIG9wdGlvbnMuCisjIE1PREUgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgYm90aCcuCittNF9kZWZpbmUoW19MVF9XSVRIX1BJQ10sCitbQUNfQVJHX1dJVEgoW3BpY10sCisgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtcGljXSwKKwlbdHJ5IHRvIHVzZSBvbmx5IFBJQy9ub24tUElDIG9iamVjdHMgQDw6QGRlZmF1bHQ9dXNlIGJvdGhAOj5AXSldLAorICAgIFtwaWNfbW9kZT0iJHdpdGh2YWwiXSwKKyAgICBbcGljX21vZGU9ZGVmYXVsdF0pCisKK3Rlc3QgLXogIiRwaWNfbW9kZSIgJiYgcGljX21vZGU9bTRfZGVmYXVsdChbJDFdLCBbZGVmYXVsdF0pCisKK19MVF9ERUNMKFtdLCBbcGljX21vZGVdLCBbMF0sIFtXaGF0IHR5cGUgb2Ygb2JqZWN0cyB0byBidWlsZF0pZG5sCitdKSMgX0xUX1dJVEhfUElDCisKK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbcGljLW9ubHldLCBbX0xUX1dJVEhfUElDKFt5ZXNdKV0pCitMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW25vLXBpY10sIFtfTFRfV0lUSF9QSUMoW25vXSldKQorCisjIE9sZCBuYW1lOgorQVVfREVGVU4oW0FDX0xJQlRPT0xfUElDTU9ERV0sCitbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbcGljLW9ubHldKQorQUNfRElBR05PU0UoW29ic29sZXRlXSwKK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKK3B1dCB0aGUgYHBpYy1vbmx5JyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCitdKQorCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfUElDTU9ERV0sIFtdKQorCisjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgTFRETF9JTklUIE9wdGlvbnMgIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCisKK200X2RlZmluZShbX0xURExfTU9ERV0sIFtdKQorTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW25vbnJlY3Vyc2l2ZV0sCisJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW25vbnJlY3Vyc2l2ZV0pXSkKK0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtyZWN1cnNpdmVdLAorCQkgW200X2RlZmluZShbX0xURExfTU9ERV0sIFtyZWN1cnNpdmVdKV0pCitMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbc3VicHJvamVjdF0sCisJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW3N1YnByb2plY3RdKV0pCisKK200X2RlZmluZShbX0xURExfVFlQRV0sIFtdKQorTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW2luc3RhbGxhYmxlXSwKKwkJIFttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbaW5zdGFsbGFibGVdKV0pCitMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbY29udmVuaWVuY2VdLAorCQkgW200X2RlZmluZShbX0xURExfVFlQRV0sIFtjb252ZW5pZW5jZV0pXSkKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL200L2x0c3VnYXIubTQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9sdHN1Z2FyLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwMDBhMDUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9sdHN1Z2FyLm00CkBAIC0wLDAgKzEsMTIzIEBACisjIGx0c3VnYXIubTQgLS0gbGlidG9vbCBtNCBiYXNlIGxheWVyLiAgICAgICAgICAgICAgICAgICAgICAgICAtKi1BdXRvY29uZi0qLQorIworIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIFdyaXR0ZW4gYnkgR2FyeSBWLiBWYXVnaGFuLCAyMDA0CisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgNiBsdHN1Z2FyLm00CisKKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCitBQ19ERUZVTihbTFRTVUdBUl9WRVJTSU9OXSwgW200X2lmKFswLjFdKV0pCisKKworIyBsdF9qb2luKFNFUCwgQVJHMSwgW0FSRzIuLi5dKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBQcm9kdWNlIEFSRzFTRVBBUkcyLi4uU0VQQVJHbiwgb21pdHRpbmcgW10gYXJndW1lbnRzIGFuZCB0aGVpcgorIyBhc3NvY2lhdGVkIHNlcGFyYXRvci4KKyMgTmVlZGVkIHVudGlsIHdlIGNhbiByZWx5IG9uIG00X2pvaW4gZnJvbSBBdXRvY29uZiAyLjYyLCBzaW5jZSBhbGwgZWFybGllcgorIyB2ZXJzaW9ucyBpbiBtNHN1Z2FyIGhhZCBidWdzLgorbTRfZGVmaW5lKFtsdF9qb2luXSwKK1ttNF9pZihbJCNdLCBbMV0sIFtdLAorICAgICAgIFskI10sIFsyXSwgW1skMl1dLAorICAgICAgIFttNF9pZihbJDJdLCBbXSwgW10sIFtbJDJdX10pJDAoWyQxXSwgbTRfc2hpZnQobTRfc2hpZnQoJEApKSldKV0pCittNF9kZWZpbmUoW19sdF9qb2luXSwKK1ttNF9pZihbJCMkMl0sIFsyXSwgW10sCisgICAgICAgW200X2lmKFskMl0sIFtdLCBbXSwgW1skMSQyXV0pJDAoWyQxXSwgbTRfc2hpZnQobTRfc2hpZnQoJEApKSldKV0pCisKKworIyBsdF9jYXIoTElTVCkKKyMgbHRfY2RyKExJU1QpCisjIC0tLS0tLS0tLS0tLQorIyBNYW5pcHVsYXRlIG00IGxpc3RzLgorIyBUaGVzZSBtYWNyb3MgYXJlIG5lY2Vzc2FyeSBhcyBsb25nIGFzIHdpbGwgc3RpbGwgbmVlZCB0byBzdXBwb3J0CisjIEF1dG9jb25mLTIuNTkgd2hpY2ggcXVvdGVzIGRpZmZlcmVudGx5LgorbTRfZGVmaW5lKFtsdF9jYXJdLCBbWyQxXV0pCittNF9kZWZpbmUoW2x0X2Nkcl0sCitbbTRfaWYoWyQjXSwgMCwgW200X2ZhdGFsKFskMDogY2Fubm90IGJlIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50c10pXSwKKyAgICAgICBbJCNdLCAxLCBbXSwKKyAgICAgICBbbTRfZHF1b3RlKG00X3NoaWZ0KCRAKSldKV0pCittNF9kZWZpbmUoW2x0X3VucXVvdGVdLCAkMSkKKworCisjIGx0X2FwcGVuZChNQUNSTy1OQU1FLCBTVFJJTkcsIFtTRVBBUkFUT1JdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUmVkZWZpbmUgTUFDUk8tTkFNRSB0byBob2xkIGl0cyBmb3JtZXIgY29udGVudCBwbHVzIGBTRVBBUkFUT1InYFNUUklORycuCisjIE5vdGUgdGhhdCBuZWl0aGVyIFNFUEFSQVRPUiBub3IgU1RSSU5HIGFyZSBleHBhbmRlZDsgdGhleSBhcmUgYXBwZW5kZWQKKyMgdG8gTUFDUk8tTkFNRSBhcyBpcyAobGVhdmluZyB0aGUgZXhwYW5zaW9uIGZvciB3aGVuIE1BQ1JPLU5BTUUgaXMgaW52b2tlZCkuCisjIE5vIFNFUEFSQVRPUiBpcyBvdXRwdXQgaWYgTUFDUk8tTkFNRSB3YXMgcHJldmlvdXNseSB1bmRlZmluZWQgKGRpZmZlcmVudAorIyB0aGFuIGRlZmluZWQgYW5kIGVtcHR5KS4KKyMKKyMgVGhpcyBtYWNybyBpcyBuZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gQXV0b2NvbmYgMi42Miwgc2luY2UgZWFybGllcgorIyB2ZXJzaW9ucyBvZiBtNHN1Z2FyIG1pc3Rha2VubHkgZXhwYW5kZWQgU0VQQVJBVE9SIGJ1dCBub3QgU1RSSU5HLgorbTRfZGVmaW5lKFtsdF9hcHBlbmRdLAorW200X2RlZmluZShbJDFdLAorCSAgIG00X2lmZGVmKFskMV0sIFttNF9kZWZuKFskMV0pWyQzXV0pWyQyXSldKQorCisKKworIyBsdF9jb21iaW5lKFNFUCwgUFJFRklYLUxJU1QsIElORklYLCBTVUZGSVgxLCBbU1VGRklYMi4uLl0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUHJvZHVjZSBhIFNFUCBkZWxpbWl0ZWQgbGlzdCBvZiBhbGwgcGFpcmVkIGNvbWJpbmF0aW9ucyBvZiBlbGVtZW50cyBvZgorIyBQUkVGSVgtTElTVCB3aXRoIFNVRkZJWDEgdGhyb3VnaCBTVUZGSVhuLiAgRWFjaCBlbGVtZW50IG9mIHRoZSBsaXN0CisjIGhhcyB0aGUgZm9ybSBQUkVGSVhtSU5GSVhTVUZGSVhuLgorIyBOZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gbTRfY29tYmluZSBhZGRlZCBpbiBBdXRvY29uZiAyLjYyLgorbTRfZGVmaW5lKFtsdF9jb21iaW5lXSwKK1ttNF9pZihtNF9ldmFsKFskIyA+IDNdKSwgWzFdLAorICAgICAgIFttNF9wdXNoZGVmKFtfTHRfc2VwXSwgW200X2RlZmluZShbX0x0X3NlcF0sIG00X2RlZm4oW2x0X2Nhcl0pKV0pXV1kbmwKK1tbbTRfZm9yZWFjaChbX0x0X3ByZWZpeF0sIFskMl0sCisJICAgICBbbTRfZm9yZWFjaChbX0x0X3N1ZmZpeF0sCisJCV1tNF9kcXVvdGUobTRfZHF1b3RlKG00X3NoaWZ0KG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpKSlbLAorCVtfTHRfc2VwKFskMV0pW11tNF9kZWZuKFtfTHRfcHJlZml4XSlbJDNdbTRfZGVmbihbX0x0X3N1ZmZpeF0pXSldKV0pXSkKKworCisjIGx0X2lmX2FwcGVuZF91bmlxKE1BQ1JPLU5BTUUsIFZBUk5BTUUsIFtTRVBBUkFUT1JdLCBbVU5JUV0sIFtOT1QtVU5JUV0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIElmZiBNQUNSTy1OQU1FIGRvZXMgbm90IHlldCBjb250YWluIFZBUk5BTUUsIHRoZW4gYXBwZW5kIGl0IChkZWxpbWl0ZWQKKyMgYnkgU0VQQVJBVE9SIGlmIHN1cHBsaWVkKSBhbmQgZXhwYW5kIFVOSVEsIGVsc2UgTk9ULVVOSVEuCittNF9kZWZpbmUoW2x0X2lmX2FwcGVuZF91bmlxXSwKK1ttNF9pZmRlZihbJDFdLAorCSAgW200X2lmKG00X2luZGV4KFskM11tNF9kZWZuKFskMV0pWyQzXSwgWyQzJDIkM10pLCBbLTFdLAorCQkgW2x0X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNdKSQ0XSwKKwkJIFskNV0pXSwKKwkgIFtsdF9hcHBlbmQoWyQxXSwgWyQyXSwgWyQzXSkkNF0pXSkKKworCisjIGx0X2RpY3RfYWRkKERJQ1QsIEtFWSwgVkFMVUUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW2x0X2RpY3RfYWRkXSwKK1ttNF9kZWZpbmUoWyQxKCQyKV0sIFskM10pXSkKKworCisjIGx0X2RpY3RfYWRkX3N1YmtleShESUNULCBLRVksIFNVQktFWSwgVkFMVUUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW2x0X2RpY3RfYWRkX3N1YmtleV0sCitbbTRfZGVmaW5lKFskMSgkMjokMyldLCBbJDRdKV0pCisKKworIyBsdF9kaWN0X2ZldGNoKERJQ1QsIEtFWSwgW1NVQktFWV0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbbHRfZGljdF9mZXRjaF0sCitbbTRfaWZ2YWwoWyQzXSwKKwltNF9pZmRlZihbJDEoJDI6JDMpXSwgW200X2RlZm4oWyQxKCQyOiQzKV0pXSksCisgICAgbTRfaWZkZWYoWyQxKCQyKV0sIFttNF9kZWZuKFskMSgkMildKV0pKV0pCisKKworIyBsdF9pZl9kaWN0X2ZldGNoKERJQ1QsIEtFWSwgW1NVQktFWV0sIFZBTFVFLCBJRi1UUlVFLCBbSUYtRkFMU0VdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtsdF9pZl9kaWN0X2ZldGNoXSwKK1ttNF9pZihsdF9kaWN0X2ZldGNoKFskMV0sIFskMl0sIFskM10pLCBbJDRdLAorCVskNV0sCisgICAgWyQ2XSldKQorCisKKyMgbHRfZGljdF9maWx0ZXIoRElDVCwgW1NVQktFWV0sIFZBTFVFLCBbU0VQQVJBVE9SXSwgS0VZLCBbLi4uXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbbHRfZGljdF9maWx0ZXJdLAorW200X2lmKFskNV0sIFtdLCBbXSwKKyAgW2x0X2pvaW4obTRfcXVvdGUobTRfZGVmYXVsdChbJDRdLCBbWywgXV0pKSwKKyAgICAgICAgICAgbHRfdW5xdW90ZShtNF9zcGxpdChtNF9ub3JtYWxpemUobTRfZm9yZWFjaChfTHRfa2V5LCBsdF9jYXIoW200X3NoaWZ0big0LCAkQCldKSwKKwkJICAgICAgW2x0X2lmX2RpY3RfZmV0Y2goWyQxXSwgX0x0X2tleSwgWyQyXSwgWyQzXSwgW19MdF9rZXkgXSldKSkpKSldKVtdZG5sCitdKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbHR2ZXJzaW9uLm00IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbHR2ZXJzaW9uLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4ZTE1NGYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9sdHZlcnNpb24ubTQKQEAgLTAsMCArMSwyMyBAQAorIyBsdHZlcnNpb24ubTQgLS0gdmVyc2lvbiBudW1iZXJzCQkJLSotIEF1dG9jb25mIC0qLQorIworIyAgIENvcHlyaWdodCAoQykgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQKKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIEdlbmVyYXRlZCBmcm9tIGx0dmVyc2lvbi5pbi4KKworIyBzZXJpYWwgMzAxMiBsdHZlcnNpb24ubTQKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wKKworbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1ZFUlNJT05dLCBbMi4yLjZdKQorbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1JFVklTSU9OXSwgWzEuMzAxMl0pCisKK0FDX0RFRlVOKFtMVFZFUlNJT05fVkVSU0lPTl0sCitbbWFjcm9fdmVyc2lvbj0nMi4yLjYnCittYWNyb19yZXZpc2lvbj0nMS4zMDEyJworX0xUX0RFQ0woLCBtYWNyb192ZXJzaW9uLCAwLCBbV2hpY2ggcmVsZWFzZSBvZiBsaWJ0b29sLm00IHdhcyB1c2VkP10pCitfTFRfREVDTCgsIG1hY3JvX3JldmlzaW9uLCAwKQorXSkKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL200L2x0fm9ic29sZXRlLm00IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbHR+b2Jzb2xldGUubTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM3YmIyMAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL200L2x0fm9ic29sZXRlLm00CkBAIC0wLDAgKzEsOTIgQEAKKyMgbHR+b2Jzb2xldGUubTQgLS0gYWNsb2NhbCBzYXRpc2Z5aW5nIG9ic29sZXRlIGRlZmluaXRpb25zLiAgICAtKi1BdXRvY29uZi0qLQorIworIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgNCBsdH5vYnNvbGV0ZS5tNAorCisjIFRoZXNlIGV4aXN0IGVudGlyZWx5IHRvIGZvb2wgYWNsb2NhbCB3aGVuIGJvb3RzdHJhcHBpbmcgbGlidG9vbC4KKyMKKyMgSW4gdGhlIHBhc3QgbGlidG9vbC5tNCBoYXMgcHJvdmlkZWQgbWFjcm9zIHZpYSBBQ19ERUZVTiAob3IgQVVfREVGVU4pCisjIHdoaWNoIGhhdmUgbGF0ZXIgYmVlbiBjaGFuZ2VkIHRvIG00X2RlZmluZSBhcyB0aGV5IGFyZW4ndCBwYXJ0IG9mIHRoZQorIyBleHBvcnRlZCBBUEksIG9yIG1vdmVkIHRvIEF1dG9jb25mIG9yIEF1dG9tYWtlIHdoZXJlIHRoZXkgYmVsb25nLgorIworIyBUaGUgdHJvdWJsZSBpcywgYWNsb2NhbCBpcyBhIGJpdCB0aGljay4gIEl0J2xsIHNlZSB0aGUgb2xkIEFDX0RFRlVOCisjIGluIC91c3Ivc2hhcmUvYWNsb2NhbC9saWJ0b29sLm00IGFuZCByZW1lbWJlciBpdCwgdGhlbiB3aGVuIGl0IHNlZXMgdXMKKyMgdXNpbmcgYSBtYWNybyB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gb3VyIGxvY2FsIG00L2xpYnRvb2wubTQgaXQnbGwKKyMgcHVsbCB0aGUgb2xkIGxpYnRvb2wubTQgaW4gKGl0IGRvZXNuJ3Qgc2VlIG91ciBzaGlueSBuZXcgbTRfZGVmaW5lCisjIGFuZCBkb2Vzbid0IGtub3cgYWJvdXQgQXV0b2NvbmYgbWFjcm9zIGF0IGFsbC4pCisjCisjIFNvIHdlIHByb3ZpZGUgdGhpcyBmaWxlLCB3aGljaCBoYXMgYSBzaWxseSBmaWxlbmFtZSBzbyBpdCdzIGFsd2F5cworIyBpbmNsdWRlZCBhZnRlciBldmVyeXRoaW5nIGVsc2UuICBUaGlzIHByb3ZpZGVzIGFjbG9jYWwgd2l0aCB0aGUKKyMgQUNfREVGVU5zIGl0IHdhbnRzLCBidXQgd2hlbiBtNCBwcm9jZXNzZXMgaXQsIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcKKyMgYmVjYXVzZSB0aG9zZSBtYWNyb3MgYWxyZWFkeSBleGlzdCwgb3Igd2lsbCBiZSBvdmVyd3JpdHRlbiBsYXRlci4KKyMgV2UgdXNlIEFDX0RFRlVOIG92ZXIgQVVfREVGVU4gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBhY2xvY2FsLTEuNi4gCisjCisjIEFueXRpbWUgd2Ugd2l0aGRyYXcgYW4gQUNfREVGVU4gb3IgQVVfREVGVU4sIHJlbWVtYmVyIHRvIGFkZCBpdCBoZXJlLgorIyBZZXMsIHRoYXQgbWVhbnMgZXZlcnkgbmFtZSBvbmNlIHRha2VuIHdpbGwgbmVlZCB0byByZW1haW4gaGVyZSB1bnRpbAorIyB3ZSBnaXZlIHVwIGNvbXBhdGliaWxpdHkgd2l0aCB2ZXJzaW9ucyBiZWZvcmUgMS43LCBhdCB3aGljaCBwb2ludAorIyB3ZSBuZWVkIHRvIGtlZXAgb25seSB0aG9zZSBuYW1lcyB3aGljaCB3ZSBzdGlsbCByZWZlciB0by4KKworIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3JvcywgYXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4KK0FDX0RFRlVOKFtMVE9CU09MRVRFX1ZFUlNJT05dLCBbbTRfaWYoWzFdKV0pCisKK200X2lmbmRlZihbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dKV0pCittNF9pZm5kZWYoW0FDX1BST0dfRUdSRVBdLAkJW0FDX0RFRlVOKFtBQ19QUk9HX0VHUkVQXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfUFJPR19FQ0hPX0JBQ0tTTEFTSF0sCVtBQ19ERUZVTihbX0xUX0FDX1BST0dfRUNIT19CQUNLU0xBU0hdKV0pCittNF9pZm5kZWYoW19MVF9BQ19TSEVMTF9JTklUXSwJCVtBQ19ERUZVTihbX0xUX0FDX1NIRUxMX0lOSVRdKV0pCittNF9pZm5kZWYoW19MVF9BQ19TWVNfTElCUEFUSF9BSVhdLAlbQUNfREVGVU4oW19MVF9BQ19TWVNfTElCUEFUSF9BSVhdKV0pCittNF9pZm5kZWYoW19MVF9QUk9HX0xUTUFJTl0sCQlbQUNfREVGVU4oW19MVF9QUk9HX0xUTUFJTl0pXSkKK200X2lmbmRlZihbX0xUX0FDX1RBR1ZBUl0sCQlbQUNfREVGVU4oW19MVF9BQ19UQUdWQVJdKV0pCittNF9pZm5kZWYoW0FDX0xURExfRU5BQkxFX0lOU1RBTExdLAlbQUNfREVGVU4oW0FDX0xURExfRU5BQkxFX0lOU1RBTExdKV0pCittNF9pZm5kZWYoW0FDX0xURExfUFJFT1BFTl0sCQlbQUNfREVGVU4oW0FDX0xURExfUFJFT1BFTl0pXSkKK200X2lmbmRlZihbX0xUX0FDX1NZU19DT01QSUxFUl0sCVtBQ19ERUZVTihbX0xUX0FDX1NZU19DT01QSUxFUl0pXSkKK200X2lmbmRlZihbX0xUX0FDX0xPQ0tdLAkJW0FDX0RFRlVOKFtfTFRfQUNfTE9DS10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfT0xEX0FSQ0hJVkVdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX09MRF9BUkNISVZFXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfVFJZX0RMT1BFTl9TRUxGXSwJW0FDX0RFRlVOKFtfTFRfQUNfVFJZX0RMT1BFTl9TRUxGXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfQ0NfQ19PXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ0NfQ19PXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1NdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLU10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9PQkpESVJdLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX09CSkRJUl0pXSkKK200X2lmbmRlZihbQUNfTFRETF9PQkpESVJdLAkJW0FDX0RFRlVOKFtBQ19MVERMX09CSkRJUl0pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEhdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19MSUJfU1RSSVBdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0xJQl9TVFJJUF0pXSkKK200X2lmbmRlZihbQUNfUEFUSF9NQUdJQ10sCQlbQUNfREVGVU4oW0FDX1BBVEhfTUFHSUNdKV0pCittNF9pZm5kZWYoW0FDX1BST0dfTERfR05VXSwJCVtBQ19ERUZVTihbQUNfUFJPR19MRF9HTlVdKV0pCittNF9pZm5kZWYoW0FDX1BST0dfTERfUkVMT0FEX0ZMQUddLAlbQUNfREVGVU4oW0FDX1BST0dfTERfUkVMT0FEX0ZMQUddKV0pCittNF9pZm5kZWYoW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9EXSwJW0FDX0RFRlVOKFtBQ19ERVBMSUJTX0NIRUNLX01FVEhPRF0pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEldLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9OT19SVFRJXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJUEVdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0dMT0JBTF9TWU1CT0xfUElQRV0pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQ10sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQ10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0xEX1NITElCU10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0xEX1NITElCU10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0pXSkKK200X2lmbmRlZihbTFRfQUNfUFJPR19FR1JFUF0sCQlbQUNfREVGVU4oW0xUX0FDX1BST0dfRUdSRVBdKV0pCittNF9pZm5kZWYoW0xUX0FDX1BST0dfU0VEXSwJCVtBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdKV0pCittNF9pZm5kZWYoW19MVF9DQ19CQVNFTkFNRV0sCQlbQUNfREVGVU4oW19MVF9DQ19CQVNFTkFNRV0pXSkKK200X2lmbmRlZihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSwJW0FDX0RFRlVOKFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVdKV0pCittNF9pZm5kZWYoW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdLAlbQUNfREVGVU4oW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdKV0pCittNF9pZm5kZWYoW19BQ19QUk9HX0xJQlRPT0xdLAkJW0FDX0RFRlVOKFtfQUNfUFJPR19MSUJUT09MXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NFVFVQXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TRVRVUF0pXSkKK200X2lmbmRlZihbX0xUX0FDX0NIRUNLX0RMRkNOXSwJCVtBQ19ERUZVTihbX0xUX0FDX0NIRUNLX0RMRkNOXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUl0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdKV0pCittNF9pZm5kZWYoW19MVF9BQ19UQUdDT05GSUddLAkJW0FDX0RFRlVOKFtfTFRfQUNfVEFHQ09ORklHXSldKQorbTRfaWZuZGVmKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sCVtBQ19ERUZVTihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdKV0pCittNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NYWF0sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NYWF0pXSkKK200X2lmbmRlZihbX0xUX0FDX0xBTkdfRjc3XSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfRjc3XSldKQorbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pdLAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pdKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfUkNdLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1JDXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DX0NPTkZJR10pXSkKK200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NfQ09ORklHXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUddKV0pCittNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NYWF9DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NYWF9DT05GSUddKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10pXSkKK200X2lmbmRlZihbX0xUX0FDX0xBTkdfRjc3X0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfRjc3X0NPTkZJR10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0dDSl9DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19HQ0pfQ09ORklHXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklHXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19SQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX1JDX0NPTkZJR10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9DT05GSUddLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0NPTkZJR10pXSkKK200X2lmbmRlZihbX0xUX0FDX0ZJTEVfTFRETExfQ10sCVtBQ19ERUZVTihbX0xUX0FDX0ZJTEVfTFRETExfQ10pXSkKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL200L25scy5tNCBiL3V0aWwtbGludXgtbmctMi4xNy4yL200L25scy5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmJjNDkzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvbmxzLm00CkBAIC0wLDAgKzEsNDkgQEAKKyMgbmxzLm00IHNlcmlhbCAxIChnZXR0ZXh0LTAuMTIpCitkbmwgQ29weXJpZ2h0IChDKSAxOTk1LTIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCitkbmwKK2RubCBUaGlzIGZpbGUgY2FuIGNhbiBiZSB1c2VkIGluIHByb2plY3RzIHdoaWNoIGFyZSBub3QgYXZhaWxhYmxlIHVuZGVyCitkbmwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIG9yIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworZG5sIExpY2Vuc2UgYnV0IHdoaWNoIHN0aWxsIHdhbnQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGUgR05VIGdldHRleHQKK2RubCBmdW5jdGlvbmFsaXR5LgorZG5sIFBsZWFzZSBub3RlIHRoYXQgdGhlIGFjdHVhbCBjb2RlIG9mIHRoZSBHTlUgZ2V0dGV4dCBsaWJyYXJ5IGlzIGNvdmVyZWQKK2RubCBieSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgYW5kIHRoZSByZXN0IG9mIHRoZSBHTlUKK2RubCBnZXR0ZXh0IHBhY2thZ2UgcGFja2FnZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KK2RubCBUaGV5IGFyZSAqbm90KiBpbiB0aGUgcHVibGljIGRvbWFpbi4KKworZG5sIEF1dGhvcnM6CitkbmwgICBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPiwgMTk5NS0yMDAwLgorZG5sICAgQnJ1bm8gSGFpYmxlIDxoYWlibGVAY2xpc3AuY29ucy5vcmc+LCAyMDAwLTIwMDMuCisKK0FDX0RFRlVOKFtBTV9OTFNdLAorWworICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgTkxTIGlzIHJlcXVlc3RlZF0pCisgIGRubCBEZWZhdWx0IGlzIGVuYWJsZWQgTkxTCisgIEFDX0FSR19FTkFCTEUobmxzLAorICAgIFsgIC0tZGlzYWJsZS1ubHMgICAgICAgICAgIGRvIG5vdCB1c2UgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnRdLAorICAgIFVTRV9OTFM9JGVuYWJsZXZhbCwgVVNFX05MUz15ZXMpCisgIEFDX01TR19SRVNVTFQoJFVTRV9OTFMpCisgIEFDX1NVQlNUKFVTRV9OTFMpCitdKQorCitBQ19ERUZVTihbQU1fTUtJTlNUQUxMRElSU10sCitbCisgIGRubCBJZiB0aGUgQUNfQ09ORklHX0FVWF9ESVIgbWFjcm8gZm9yIGF1dG9jb25mIGlzIHVzZWQgd2UgcG9zc2libHkKKyAgZG5sIGZpbmQgdGhlIG1raW5zdGFsbGRpcnMgc2NyaXB0IGluIGFub3RoZXIgc3ViZGlyIGJ1dCAkKHRvcF9zcmNkaXIpLgorICBkbmwgVHJ5IHRvIGxvY2F0ZSBpdC4KKyAgTUtJTlNUQUxMRElSUz0KKyAgaWYgdGVzdCAtbiAiJGFjX2F1eF9kaXIiOyB0aGVuCisgICAgY2FzZSAiJGFjX2F1eF9kaXIiIGluCisgICAgICAvKikgTUtJTlNUQUxMRElSUz0iJGFjX2F1eF9kaXIvbWtpbnN0YWxsZGlycyIgOzsKKyAgICAgICopIE1LSU5TVEFMTERJUlM9IlwkKHRvcF9idWlsZGRpcikvJGFjX2F1eF9kaXIvbWtpbnN0YWxsZGlycyIgOzsKKyAgICBlc2FjCisgIGZpCisgIGlmIHRlc3QgLXogIiRNS0lOU1RBTExESVJTIjsgdGhlbgorICAgIE1LSU5TVEFMTERJUlM9IlwkKHRvcF9zcmNkaXIpL21raW5zdGFsbGRpcnMiCisgIGZpCisgIEFDX1NVQlNUKE1LSU5TVEFMTERJUlMpCitdKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvcG8ubTQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9wby5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTYxOTk4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvcG8ubTQKQEAgLTAsMCArMSw0MjYgQEAKKyMgcG8ubTQgc2VyaWFsIDMgKGdldHRleHQtMC4xNCkKK2RubCBDb3B5cmlnaHQgKEMpIDE5OTUtMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK2RubCBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKK2RubCBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwKK2RubCBQdWJsaWMgTGljZW5zZSwgdGhpcyBmaWxlIG1heSBiZSBkaXN0cmlidXRlZCBhcyBwYXJ0IG9mIGEgcHJvZ3JhbQorZG5sIHRoYXQgY29udGFpbnMgYSBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHVuZGVyCitkbmwgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIGFzIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KK2RubAorZG5sIFRoaXMgZmlsZSBjYW4gY2FuIGJlIHVzZWQgaW4gcHJvamVjdHMgd2hpY2ggYXJlIG5vdCBhdmFpbGFibGUgdW5kZXIKK2RubCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ugb3IgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCitkbmwgTGljZW5zZSBidXQgd2hpY2ggc3RpbGwgd2FudCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoZSBHTlUgZ2V0dGV4dAorZG5sIGZ1bmN0aW9uYWxpdHkuCitkbmwgUGxlYXNlIG5vdGUgdGhhdCB0aGUgYWN0dWFsIGNvZGUgb2YgdGhlIEdOVSBnZXR0ZXh0IGxpYnJhcnkgaXMgY292ZXJlZAorZG5sIGJ5IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhbmQgdGhlIHJlc3Qgb2YgdGhlIEdOVQorZG5sIGdldHRleHQgcGFja2FnZSBwYWNrYWdlIGlzIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorZG5sIFRoZXkgYXJlICpub3QqIGluIHRoZSBwdWJsaWMgZG9tYWluLgorCitkbmwgQXV0aG9yczoKK2RubCAgIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+LCAxOTk1LTIwMDAuCitkbmwgICBCcnVubyBIYWlibGUgPGhhaWJsZUBjbGlzcC5jb25zLm9yZz4sIDIwMDAtMjAwMy4KKworZG5sIENoZWNrcyBmb3IgYWxsIHByZXJlcXVpc2l0ZXMgb2YgdGhlIHBvIHN1YmRpcmVjdG9yeS4KK0FDX0RFRlVOKFtBTV9QT19TVUJESVJTXSwKK1sKKyAgQUNfUkVRVUlSRShbQUNfUFJPR19NQUtFX1NFVF0pZG5sCisgIEFDX1JFUVVJUkUoW0FDX1BST0dfSU5TVEFMTF0pZG5sCisgIEFDX1JFUVVJUkUoW0FNX01LSU5TVEFMTERJUlNdKWRubAorICBBQ19SRVFVSVJFKFtBTV9OTFNdKWRubAorCisgIGRubCBQZXJmb3JtIHRoZSBmb2xsb3dpbmcgdGVzdHMgYWxzbyBpZiAtLWRpc2FibGUtbmxzIGhhcyBiZWVuIGdpdmVuLAorICBkbmwgYmVjYXVzZSB0aGV5IGFyZSBuZWVkZWQgZm9yICJtYWtlIGRpc3QiIHRvIHdvcmsuCisKKyAgZG5sIFNlYXJjaCBmb3IgR05VIG1zZ2ZtdCBpbiB0aGUgUEFUSC4KKyAgZG5sIFRoZSBmaXJzdCB0ZXN0IGV4Y2x1ZGVzIFNvbGFyaXMgbXNnZm10IGFuZCBlYXJseSBHTlUgbXNnZm10IHZlcnNpb25zLgorICBkbmwgVGhlIHNlY29uZCB0ZXN0IGV4Y2x1ZGVzIEZyZWVCU0QgbXNnZm10LgorICBBTV9QQVRIX1BST0dfV0lUSF9URVNUKE1TR0ZNVCwgbXNnZm10LAorICAgIFskYWNfZGlyLyRhY193b3JkIC0tc3RhdGlzdGljcyAvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxICYmCisgICAgIChpZiAkYWNfZGlyLyRhY193b3JkIC0tc3RhdGlzdGljcyAvZGV2L251bGwgMj4mMSA+L2Rldi9udWxsIHwgZ3JlcCB1c2FnZSA+L2Rldi9udWxsOyB0aGVuIGV4aXQgMTsgZWxzZSBleGl0IDA7IGZpKV0sCisgICAgOikKKyAgQUNfUEFUSF9QUk9HKEdNU0dGTVQsIGdtc2dmbXQsICRNU0dGTVQpCisKKyAgZG5sIFNlYXJjaCBmb3IgR05VIHhnZXR0ZXh0IDAuMTIgb3IgbmV3ZXIgaW4gdGhlIFBBVEguCisgIGRubCBUaGUgZmlyc3QgdGVzdCBleGNsdWRlcyBTb2xhcmlzIHhnZXR0ZXh0IGFuZCBlYXJseSBHTlUgeGdldHRleHQgdmVyc2lvbnMuCisgIGRubCBUaGUgc2Vjb25kIHRlc3QgZXhjbHVkZXMgRnJlZUJTRCB4Z2V0dGV4dC4KKyAgQU1fUEFUSF9QUk9HX1dJVEhfVEVTVChYR0VUVEVYVCwgeGdldHRleHQsCisgICAgWyRhY19kaXIvJGFjX3dvcmQgLS1vbWl0LWhlYWRlciAtLWNvcHlyaWdodC1ob2xkZXI9IC0tbXNnaWQtYnVncy1hZGRyZXNzPSAvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxICYmCisgICAgIChpZiAkYWNfZGlyLyRhY193b3JkIC0tb21pdC1oZWFkZXIgLS1jb3B5cmlnaHQtaG9sZGVyPSAtLW1zZ2lkLWJ1Z3MtYWRkcmVzcz0gL2Rldi9udWxsIDI+JjEgPi9kZXYvbnVsbCB8IGdyZXAgdXNhZ2UgPi9kZXYvbnVsbDsgdGhlbiBleGl0IDE7IGVsc2UgZXhpdCAwOyBmaSldLAorICAgIDopCisgIGRubCBSZW1vdmUgbGVmdG92ZXIgZnJvbSBGcmVlQlNEIHhnZXR0ZXh0IGNhbGwuCisgIHJtIC1mIG1lc3NhZ2VzLnBvCisKKyAgZG5sIFNlYXJjaCBmb3IgR05VIG1zZ21lcmdlIDAuMTEgb3IgbmV3ZXIgaW4gdGhlIFBBVEguCisgIEFNX1BBVEhfUFJPR19XSVRIX1RFU1QoTVNHTUVSR0UsIG1zZ21lcmdlLAorICAgIFskYWNfZGlyLyRhY193b3JkIC0tdXBkYXRlIC1xIC9kZXYvbnVsbCAvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxXSwgOikKKworICBkbmwgVGhpcyBjb3VsZCBnbyBhd2F5IHNvbWUgZGF5OyB0aGUgUEFUSF9QUk9HX1dJVEhfVEVTVCBhbHJlYWR5IGRvZXMgaXQuCisgIGRubCBUZXN0IHdoZXRoZXIgd2UgcmVhbGx5IGZvdW5kIEdOVSBtc2dmbXQuCisgIGlmIHRlc3QgIiRHTVNHRk1UIiAhPSAiOiI7IHRoZW4KKyAgICBkbmwgSWYgaXQgaXMgbm8gR05VIG1zZ2ZtdCB3ZSBkZWZpbmUgaXQgYXMgOiBzbyB0aGF0IHRoZQorICAgIGRubCBNYWtlZmlsZXMgc3RpbGwgY2FuIHdvcmsuCisgICAgaWYgJEdNU0dGTVQgLS1zdGF0aXN0aWNzIC9kZXYvbnVsbCA+L2Rldi9udWxsIDI+JjEgJiYKKyAgICAgICAoaWYgJEdNU0dGTVQgLS1zdGF0aXN0aWNzIC9kZXYvbnVsbCAyPiYxID4vZGV2L251bGwgfCBncmVwIHVzYWdlID4vZGV2L251bGw7IHRoZW4gZXhpdCAxOyBlbHNlIGV4aXQgMDsgZmkpOyB0aGVuCisgICAgICA6IDsKKyAgICBlbHNlCisgICAgICBHTVNHRk1UPWBlY2hvICIkR01TR0ZNVCIgfCBzZWQgLWUgJ3MsXi4qLywsJ2AKKyAgICAgIEFDX01TR19SRVNVTFQoCisgICAgICAgIFtmb3VuZCAkR01TR0ZNVCBwcm9ncmFtIGlzIG5vdCBHTlUgbXNnZm10OyBpZ25vcmUgaXRdKQorICAgICAgR01TR0ZNVD0iOiIKKyAgICBmaQorICBmaQorCisgIGRubCBUaGlzIGNvdWxkIGdvIGF3YXkgc29tZSBkYXk7IHRoZSBQQVRIX1BST0dfV0lUSF9URVNUIGFscmVhZHkgZG9lcyBpdC4KKyAgZG5sIFRlc3Qgd2hldGhlciB3ZSByZWFsbHkgZm91bmQgR05VIHhnZXR0ZXh0LgorICBpZiB0ZXN0ICIkWEdFVFRFWFQiICE9ICI6IjsgdGhlbgorICAgIGRubCBJZiBpdCBpcyBubyBHTlUgeGdldHRleHQgd2UgZGVmaW5lIGl0IGFzIDogc28gdGhhdCB0aGUKKyAgICBkbmwgTWFrZWZpbGVzIHN0aWxsIGNhbiB3b3JrLgorICAgIGlmICRYR0VUVEVYVCAtLW9taXQtaGVhZGVyIC0tY29weXJpZ2h0LWhvbGRlcj0gLS1tc2dpZC1idWdzLWFkZHJlc3M9IC9kZXYvbnVsbCA+L2Rldi9udWxsIDI+JjEgJiYKKyAgICAgICAoaWYgJFhHRVRURVhUIC0tb21pdC1oZWFkZXIgLS1jb3B5cmlnaHQtaG9sZGVyPSAtLW1zZ2lkLWJ1Z3MtYWRkcmVzcz0gL2Rldi9udWxsIDI+JjEgPi9kZXYvbnVsbCB8IGdyZXAgdXNhZ2UgPi9kZXYvbnVsbDsgdGhlbiBleGl0IDE7IGVsc2UgZXhpdCAwOyBmaSk7IHRoZW4KKyAgICAgIDogOworICAgIGVsc2UKKyAgICAgIEFDX01TR19SRVNVTFQoCisgICAgICAgIFtmb3VuZCB4Z2V0dGV4dCBwcm9ncmFtIGlzIG5vdCBHTlUgeGdldHRleHQ7IGlnbm9yZSBpdF0pCisgICAgICBYR0VUVEVYVD0iOiIKKyAgICBmaQorICAgIGRubCBSZW1vdmUgbGVmdG92ZXIgZnJvbSBGcmVlQlNEIHhnZXR0ZXh0IGNhbGwuCisgICAgcm0gLWYgbWVzc2FnZXMucG8KKyAgZmkKKworICBBQ19PVVRQVVRfQ09NTUFORFMoWworICAgIGZvciBhY19maWxlIGluICRDT05GSUdfRklMRVM7IGRvCisgICAgICAjIFN1cHBvcnQgIm91dGZpbGVbOmluZmlsZVs6aW5maWxlLi4uXV0iCisgICAgICBjYXNlICIkYWNfZmlsZSIgaW4KKyAgICAgICAgKjoqKSBhY19maWxlPWBlY2hvICIkYWNfZmlsZSJ8c2VkICdzJTouKiUlJ2AgOzsKKyAgICAgIGVzYWMKKyAgICAgICMgUE8gZGlyZWN0b3JpZXMgaGF2ZSBhIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBmcm9tIE1ha2VmaWxlLmluLmluLgorICAgICAgY2FzZSAiJGFjX2ZpbGUiIGluICovTWFrZWZpbGUuaW4pCisgICAgICAgICMgQWRqdXN0IGEgcmVsYXRpdmUgc3JjZGlyLgorICAgICAgICBhY19kaXI9YGVjaG8gIiRhY19maWxlInxzZWQgJ3MlL1teL11bXi9dKiQlJSdgCisgICAgICAgIGFjX2Rpcl9zdWZmaXg9Ii9gZWNobyAiJGFjX2RpciJ8c2VkICdzJV5cLi8lJSdgIgorICAgICAgICBhY19kb3RzPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCJ8c2VkICdzJS9bXi9dKiUuLi8lZydgCisgICAgICAgICMgSW4gYXV0b2NvbmYtMi4xMyBpdCBpcyBjYWxsZWQgJGFjX2dpdmVuX3NyY2Rpci4KKyAgICAgICAgIyBJbiBhdXRvY29uZi0yLjUwIGl0IGlzIGNhbGxlZCAkc3JjZGlyLgorICAgICAgICB0ZXN0IC1uICIkYWNfZ2l2ZW5fc3JjZGlyIiB8fCBhY19naXZlbl9zcmNkaXI9IiRzcmNkaXIiCisgICAgICAgIGNhc2UgIiRhY19naXZlbl9zcmNkaXIiIGluCisgICAgICAgICAgLikgIHRvcF9zcmNkaXI9YGVjaG8gJGFjX2RvdHN8c2VkICdzJS8kJSUnYCA7OworICAgICAgICAgIC8qKSB0b3Bfc3JjZGlyPSIkYWNfZ2l2ZW5fc3JjZGlyIiA7OworICAgICAgICAgICopICB0b3Bfc3JjZGlyPSIkYWNfZG90cyRhY19naXZlbl9zcmNkaXIiIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgaWYgdGVzdCAtZiAiJGFjX2dpdmVuX3NyY2Rpci8kYWNfZGlyL1BPVEZJTEVTLmluIjsgdGhlbgorICAgICAgICAgIHJtIC1mICIkYWNfZGlyL1BPVEZJTEVTIgorICAgICAgICAgIHRlc3QgLW4gIiRhc19tZSIgJiYgZWNobyAiJGFzX21lOiBjcmVhdGluZyAkYWNfZGlyL1BPVEZJTEVTIiB8fCBlY2hvICJjcmVhdGluZyAkYWNfZGlyL1BPVEZJTEVTIgorICAgICAgICAgIGNhdCAiJGFjX2dpdmVuX3NyY2Rpci8kYWNfZGlyL1BPVEZJTEVTLmluIiB8IHNlZCAtZSAiL14jL2QiIC1lICIvXlsgCV0qXCQvZCIgLWUgInMsLiosICAgICAkdG9wX3NyY2Rpci8mIFxcXFwsIiB8IHNlZCAtZSAiXCRzL1woLipcKSBcXFxcL1wxLyIgPiAiJGFjX2Rpci9QT1RGSUxFUyIKKyAgICAgICAgICBQT01BS0VGSUxFREVQUz0iUE9URklMRVMuaW4iCisgICAgICAgICAgIyBBTExfTElOR1VBUywgUE9GSUxFUywgVVBEQVRFUE9GSUxFUywgRFVNTVlQT0ZJTEVTLCBHTU9GSUxFUyBkZXBlbmQKKyAgICAgICAgICAjIG9uICRhY19kaXIgYnV0IGRvbid0IGRlcGVuZCBvbiB1c2VyLXNwZWNpZmllZCBjb25maWd1cmF0aW9uCisgICAgICAgICAgIyBwYXJhbWV0ZXJzLgorICAgICAgICAgIGlmIHRlc3QgLWYgIiRhY19naXZlbl9zcmNkaXIvJGFjX2Rpci9MSU5HVUFTIjsgdGhlbgorICAgICAgICAgICAgIyBUaGUgTElOR1VBUyBmaWxlIGNvbnRhaW5zIHRoZSBzZXQgb2YgYXZhaWxhYmxlIGxhbmd1YWdlcy4KKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPQlNPTEVURV9BTExfTElOR1VBUyI7IHRoZW4KKyAgICAgICAgICAgICAgdGVzdCAtbiAiJGFzX21lIiAmJiBlY2hvICIkYXNfbWU6IHNldHRpbmcgQUxMX0xJTkdVQVMgaW4gY29uZmlndXJlLmluIGlzIG9ic29sZXRlIiB8fCBlY2hvICJzZXR0aW5nIEFMTF9MSU5HVUFTIGluIGNvbmZpZ3VyZS5pbiBpcyBvYnNvbGV0ZSIKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgICBBTExfTElOR1VBU189YHNlZCAtZSAiL14jL2QiICIkYWNfZ2l2ZW5fc3JjZGlyLyRhY19kaXIvTElOR1VBUyJgCisgICAgICAgICAgICAjIEhpZGUgdGhlIEFMTF9MSU5HVUFTIGFzc2lnbWVudCBmcm9tIGF1dG9tYWtlLgorICAgICAgICAgICAgZXZhbCAnQUxMX0xJTkdVQVMnJz0kQUxMX0xJTkdVQVNfJworICAgICAgICAgICAgUE9NQUtFRklMRURFUFM9IiRQT01BS0VGSUxFREVQUyBMSU5HVUFTIgorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICMgVGhlIHNldCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzIHdhcyBnaXZlbiBpbiBjb25maWd1cmUuaW4uCisgICAgICAgICAgICBldmFsICdBTExfTElOR1VBUycnPSRPQlNPTEVURV9BTExfTElOR1VBUycKKyAgICAgICAgICBmaQorICAgICAgICAgICMgQ29tcHV0ZSBQT0ZJTEVTCisgICAgICAgICAgIyBhcyAgICAgICQoZm9yZWFjaCBsYW5nLCAkKEFMTF9MSU5HVUFTKSwgJChzcmNkaXIpLyQobGFuZykucG8pCisgICAgICAgICAgIyBDb21wdXRlIFVQREFURVBPRklMRVMKKyAgICAgICAgICAjIGFzICAgICAgJChmb3JlYWNoIGxhbmcsICQoQUxMX0xJTkdVQVMpLCAkKGxhbmcpLnBvLXVwZGF0ZSkKKyAgICAgICAgICAjIENvbXB1dGUgRFVNTVlQT0ZJTEVTCisgICAgICAgICAgIyBhcyAgICAgICQoZm9yZWFjaCBsYW5nLCAkKEFMTF9MSU5HVUFTKSwgJChsYW5nKS5ub3ApCisgICAgICAgICAgIyBDb21wdXRlIEdNT0ZJTEVTCisgICAgICAgICAgIyBhcyAgICAgICQoZm9yZWFjaCBsYW5nLCAkKEFMTF9MSU5HVUFTKSwgJChzcmNkaXIpLyQobGFuZykuZ21vKQorICAgICAgICAgIGNhc2UgIiRhY19naXZlbl9zcmNkaXIiIGluCisgICAgICAgICAgICAuKSBzcmNkaXJwcmU9IDs7CisgICAgICAgICAgICAqKSBzcmNkaXJwcmU9JyQoc3JjZGlyKS8nIDs7CisgICAgICAgICAgZXNhYworICAgICAgICAgIFBPRklMRVM9CisgICAgICAgICAgVVBEQVRFUE9GSUxFUz0KKyAgICAgICAgICBEVU1NWVBPRklMRVM9CisgICAgICAgICAgR01PRklMRVM9CisgICAgICAgICAgZm9yIGxhbmcgaW4gJEFMTF9MSU5HVUFTOyBkbworICAgICAgICAgICAgUE9GSUxFUz0iJFBPRklMRVMgJHNyY2RpcnByZSRsYW5nLnBvIgorICAgICAgICAgICAgVVBEQVRFUE9GSUxFUz0iJFVQREFURVBPRklMRVMgJGxhbmcucG8tdXBkYXRlIgorICAgICAgICAgICAgRFVNTVlQT0ZJTEVTPSIkRFVNTVlQT0ZJTEVTICRsYW5nLm5vcCIKKyAgICAgICAgICAgIEdNT0ZJTEVTPSIkR01PRklMRVMgJHNyY2RpcnByZSRsYW5nLmdtbyIKKyAgICAgICAgICBkb25lCisgICAgICAgICAgIyBDQVRBTE9HUyBkZXBlbmRzIG9uIGJvdGggJGFjX2RpciBhbmQgdGhlIHVzZXIncyBMSU5HVUFTCisgICAgICAgICAgIyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKyAgICAgICAgICBJTlNUX0xJTkdVQVM9CisgICAgICAgICAgaWYgdGVzdCAtbiAiJEFMTF9MSU5HVUFTIjsgdGhlbgorICAgICAgICAgICAgZm9yIHByZXNlbnRsYW5nIGluICRBTExfTElOR1VBUzsgZG8KKyAgICAgICAgICAgICAgdXNlaXQ9bm8KKyAgICAgICAgICAgICAgaWYgdGVzdCAiJVVOU0VUJSIgIT0gIiRMSU5HVUFTIjsgdGhlbgorICAgICAgICAgICAgICAgIGRlc2lyZWRsYW5ndWFnZXM9IiRMSU5HVUFTIgorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGVzaXJlZGxhbmd1YWdlcz0iJEFMTF9MSU5HVUFTIgorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICBmb3IgZGVzaXJlZGxhbmcgaW4gJGRlc2lyZWRsYW5ndWFnZXM7IGRvCisgICAgICAgICAgICAgICAgIyBVc2UgdGhlIHByZXNlbnRsYW5nIGNhdGFsb2cgaWYgZGVzaXJlZGxhbmcgaXMKKyAgICAgICAgICAgICAgICAjICAgYS4gZXF1YWwgdG8gcHJlc2VudGxhbmcsIG9yCisgICAgICAgICAgICAgICAgIyAgIGIuIGEgdmFyaWFudCBvZiBwcmVzZW50bGFuZyAoYmVjYXVzZSBpbiB0aGlzIGNhc2UsCisgICAgICAgICAgICAgICAgIyAgICAgIHByZXNlbnRsYW5nIGNhbiBiZSB1c2VkIGFzIGEgZmFsbGJhY2sgZm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgIyAgICAgIHdoaWNoIGFyZSBub3QgdHJhbnNsYXRlZCBpbiB0aGUgZGVzaXJlZGxhbmcgY2F0YWxvZykuCisgICAgICAgICAgICAgICAgY2FzZSAiJGRlc2lyZWRsYW5nIiBpbgorICAgICAgICAgICAgICAgICAgIiRwcmVzZW50bGFuZyIqKSB1c2VpdD15ZXM7OworICAgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgICBpZiB0ZXN0ICR1c2VpdCA9IHllczsgdGhlbgorICAgICAgICAgICAgICAgIElOU1RfTElOR1VBUz0iJElOU1RfTElOR1VBUyAkcHJlc2VudGxhbmciCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBkb25lCisgICAgICAgICAgZmkKKyAgICAgICAgICBDQVRBTE9HUz0KKyAgICAgICAgICBpZiB0ZXN0IC1uICIkSU5TVF9MSU5HVUFTIjsgdGhlbgorICAgICAgICAgICAgZm9yIGxhbmcgaW4gJElOU1RfTElOR1VBUzsgZG8KKyAgICAgICAgICAgICAgQ0FUQUxPR1M9IiRDQVRBTE9HUyAkbGFuZy5nbW8iCisgICAgICAgICAgICBkb25lCisgICAgICAgICAgZmkKKyAgICAgICAgICB0ZXN0IC1uICIkYXNfbWUiICYmIGVjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2Rpci9NYWtlZmlsZSIgfHwgZWNobyAiY3JlYXRpbmcgJGFjX2Rpci9NYWtlZmlsZSIKKyAgICAgICAgICBzZWQgLWUgIi9eUE9URklMRVMgPS9yICRhY19kaXIvUE9URklMRVMiIC1lICIvXiMgTWFrZXZhcnMvciAkYWNfZ2l2ZW5fc3JjZGlyLyRhY19kaXIvTWFrZXZhcnMiIC1lICJzfEBQT0ZJTEVTQHwkUE9GSUxFU3xnIiAtZSAic3xAVVBEQVRFUE9GSUxFU0B8JFVQREFURVBPRklMRVN8ZyIgLWUgInN8QERVTU1ZUE9GSUxFU0B8JERVTU1ZUE9GSUxFU3xnIiAtZSAic3xAR01PRklMRVNAfCRHTU9GSUxFU3xnIiAtZSAic3xAQ0FUQUxPR1NAfCRDQVRBTE9HU3xnIiAtZSAic3xAUE9NQUtFRklMRURFUFNAfCRQT01BS0VGSUxFREVQU3xnIiAiJGFjX2Rpci9NYWtlZmlsZS5pbiIgPiAiJGFjX2Rpci9NYWtlZmlsZSIKKyAgICAgICAgICBmb3IgZiBpbiAiJGFjX2dpdmVuX3NyY2Rpci8kYWNfZGlyIi9SdWxlcy0qOyBkbworICAgICAgICAgICAgaWYgdGVzdCAtZiAiJGYiOyB0aGVuCisgICAgICAgICAgICAgIGNhc2UgIiRmIiBpbgorICAgICAgICAgICAgICAgICoub3JpZyB8ICouYmFrIHwgKn4pIDs7CisgICAgICAgICAgICAgICAgKikgY2F0ICIkZiIgPj4gIiRhY19kaXIvTWFrZWZpbGUiIDs7CisgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgZG9uZQorICAgICAgICBmaQorICAgICAgICA7OworICAgICAgZXNhYworICAgIGRvbmVdLAorICAgWyMgQ2FwdHVyZSB0aGUgdmFsdWUgb2Ygb2Jzb2xldGUgQUxMX0xJTkdVQVMgYmVjYXVzZSB3ZSBuZWVkIGl0IHRvIGNvbXB1dGUKKyAgICAjIFBPRklMRVMsIFVQREFURVBPRklMRVMsIERVTU1ZUE9GSUxFUywgR01PRklMRVMsIENBVEFMT0dTLiBCdXQgaGlkZSBpdAorICAgICMgZnJvbSBhdXRvbWFrZS4KKyAgICBldmFsICdPQlNPTEVURV9BTExfTElOR1VBUycnPSIkQUxMX0xJTkdVQVMiJworICAgICMgQ2FwdHVyZSB0aGUgdmFsdWUgb2YgTElOR1VBUyBiZWNhdXNlIHdlIG5lZWQgaXQgdG8gY29tcHV0ZSBDQVRBTE9HUy4KKyAgICBMSU5HVUFTPSIke0xJTkdVQVMtJVVOU0VUJX0iCisgICBdKQorXSkKKworZG5sIFBvc3Rwcm9jZXNzZXMgYSBNYWtlZmlsZSBpbiBhIGRpcmVjdG9yeSBjb250YWluaW5nIFBPIGZpbGVzLgorQUNfREVGVU4oW0FNX1BPU1RQUk9DRVNTX1BPX01BS0VGSUxFXSwKK1sKKyAgIyBXaGVuIHRoaXMgY29kZSBpcyBydW4sIGluIGNvbmZpZy5zdGF0dXMsIHR3byB2YXJpYWJsZXMgaGF2ZSBhbHJlYWR5IGJlZW4KKyAgIyBzZXQ6CisgICMgLSBPQlNPTEVURV9BTExfTElOR1VBUyBpcyB0aGUgdmFsdWUgb2YgTElOR1VBUyBzZXQgaW4gY29uZmlndXJlLmluLAorICAjIC0gTElOR1VBUyBpcyB0aGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExJTkdVQVMgYXQgY29uZmlndXJlCisgICMgICB0aW1lLgorCitjaGFuZ2VxdW90ZSgsKWRubAorICAjIEFkanVzdCBhIHJlbGF0aXZlIHNyY2Rpci4KKyAgYWNfZGlyPWBlY2hvICIkYWNfZmlsZSJ8c2VkICdzJS9bXi9dW14vXSokJSUnYAorICBhY19kaXJfc3VmZml4PSIvYGVjaG8gIiRhY19kaXIifHNlZCAncyVeXC4vJSUnYCIKKyAgYWNfZG90cz1gZWNobyAiJGFjX2Rpcl9zdWZmaXgifHNlZCAncyUvW14vXSolLi4vJWcnYAorICAjIEluIGF1dG9jb25mLTIuMTMgaXQgaXMgY2FsbGVkICRhY19naXZlbl9zcmNkaXIuCisgICMgSW4gYXV0b2NvbmYtMi41MCBpdCBpcyBjYWxsZWQgJHNyY2Rpci4KKyAgdGVzdCAtbiAiJGFjX2dpdmVuX3NyY2RpciIgfHwgYWNfZ2l2ZW5fc3JjZGlyPSIkc3JjZGlyIgorICBjYXNlICIkYWNfZ2l2ZW5fc3JjZGlyIiBpbgorICAgIC4pICB0b3Bfc3JjZGlyPWBlY2hvICRhY19kb3RzfHNlZCAncyUvJCUlJ2AgOzsKKyAgICAvKikgdG9wX3NyY2Rpcj0iJGFjX2dpdmVuX3NyY2RpciIgOzsKKyAgICAqKSAgdG9wX3NyY2Rpcj0iJGFjX2RvdHMkYWNfZ2l2ZW5fc3JjZGlyIiA7OworICBlc2FjCisKKyAgIyBGaW5kIGEgd2F5IHRvIGVjaG8gc3RyaW5ncyB3aXRob3V0IGludGVycHJldGluZyBiYWNrc2xhc2guCisgIGlmIHRlc3QgIlhgKGVjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCisgICAgZ3RfZWNobz0nZWNobycKKyAgZWxzZQorICAgIGlmIHRlc3QgIlhgKHByaW50ZiAnJXNcbicgJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCisgICAgICBndF9lY2hvPSdwcmludGYgJXNcbicKKyAgICBlbHNlCisgICAgICBlY2hvX2Z1bmMgKCkgeworICAgICAgICBjYXQgPDxFT1QKKyQqCitFT1QKKyAgICAgIH0KKyAgICAgIGd0X2VjaG89J2VjaG9fZnVuYycKKyAgICBmaQorICBmaQorCisgICMgQSBzZWQgc2NyaXB0IHRoYXQgZXh0cmFjdHMgdGhlIHZhbHVlIG9mIFZBUklBQkxFIGZyb20gYSBNYWtlZmlsZS4KKyAgc2VkX3hfdmFyaWFibGU9JworIyBUZXN0IGlmIHRoZSBob2xkIHNwYWNlIGlzIGVtcHR5LgoreAorcy9QL1AvCit4Cit0YQorIyBZZXMgaXQgd2FzIGVtcHR5LiBMb29rIGlmIHdlIGhhdmUgdGhlIGV4cGVjdGVkIHZhcmlhYmxlIGRlZmluaXRpb24uCisvXlsJIF0qVkFSSUFCTEVbCSBdKj0veworICAjIFNlZW4gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHZhcmlhYmxlIGRlZmluaXRpb24uCisgIHMvXlsJIF0qVkFSSUFCTEVbCSBdKj0vLworICBiYQorfQorYmQKKzphCisjIEhlcmUgd2UgYXJlIHByb2Nlc3NpbmcgYSBsaW5lIGZyb20gdGhlIHZhcmlhYmxlIGRlZmluaXRpb24uCisjIFJlbW92ZSBjb21tZW50LCBtb3JlIHByZWNpc2VseSByZXBsYWNlIGl0IHdpdGggYSBzcGFjZS4KK3MvIy4qJC8gLworIyBTZWUgaWYgdGhlIGxpbmUgZW5kcyBpbiBhIGJhY2tzbGFzaC4KK3RiCis6Ygorcy9cXCQvLworIyBQcmludCB0aGUgbGluZSwgd2l0aG91dCB0aGUgdHJhaWxpbmcgYmFja3NsYXNoLgorcAordGMKKyMgVGhlcmUgd2FzIG5vIHRyYWlsaW5nIGJhY2tzbGFzaC4gVGhlIGVuZCBvZiB0aGUgdmFyaWFibGUgZGVmaW5pdGlvbiBpcworIyByZWFjaGVkLiBDbGVhciB0aGUgaG9sZCBzcGFjZS4KK3MvXi4qJC8vCit4CitiZAorOmMKKyMgQSB0cmFpbGluZyBiYWNrc2xhc2ggbWVhbnMgdGhhdCB0aGUgdmFyaWFibGUgZGVmaW5pdGlvbiBjb250aW51ZXMgaW4gdGhlCisjIG5leHQgbGluZS4gUHV0IGEgbm9uZW1wdHkgc3RyaW5nIGludG8gdGhlIGhvbGQgc3BhY2UgdG8gaW5kaWNhdGUgdGhpcy4KK3MvXi4qJC9QLworeAorOmQKKycKK2NoYW5nZXF1b3RlKFssXSlkbmwKKworICAjIFNldCBQT1RGSUxFUyB0byB0aGUgdmFsdWUgb2YgdGhlIE1ha2VmaWxlIHZhcmlhYmxlIFBPVEZJTEVTLgorICBzZWRfeF9QT1RGSUxFUz0iYCRndF9lY2hvIFwiJHNlZF94X3ZhcmlhYmxlXCIgfCBzZWQgLWUgJy9eICojL2QnIC1lICdzL1ZBUklBQkxFL1BPVEZJTEVTL2cnYCIKKyAgUE9URklMRVM9YHNlZCAtbiAtZSAiJHNlZF94X1BPVEZJTEVTIiA8ICIkYWNfZmlsZSJgCisgICMgQ29tcHV0ZSBQT1RGSUxFU19ERVBTIGFzCisgICMgICAkKGZvcmVhY2ggZmlsZSwgJChQT1RGSUxFUyksICQodG9wX3NyY2RpcikvJChmaWxlKSkKKyAgUE9URklMRVNfREVQUz0KKyAgZm9yIGZpbGUgaW4gJFBPVEZJTEVTOyBkbworICAgIFBPVEZJTEVTX0RFUFM9IiRQT1RGSUxFU19ERVBTICInJCh0b3Bfc3JjZGlyKS8nIiRmaWxlIgorICBkb25lCisgIFBPTUFLRUZJTEVERVBTPSIiCisKKyAgaWYgdGVzdCAtbiAiJE9CU09MRVRFX0FMTF9MSU5HVUFTIjsgdGhlbgorICAgIHRlc3QgLW4gIiRhc19tZSIgJiYgZWNobyAiJGFzX21lOiBzZXR0aW5nIEFMTF9MSU5HVUFTIGluIGNvbmZpZ3VyZS5pbiBpcyBvYnNvbGV0ZSIgfHwgZWNobyAic2V0dGluZyBBTExfTElOR1VBUyBpbiBjb25maWd1cmUuaW4gaXMgb2Jzb2xldGUiCisgIGZpCisgIGlmIHRlc3QgLWYgIiRhY19naXZlbl9zcmNkaXIvJGFjX2Rpci9MSU5HVUFTIjsgdGhlbgorICAgICMgVGhlIExJTkdVQVMgZmlsZSBjb250YWlucyB0aGUgc2V0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMuCisgICAgQUxMX0xJTkdVQVNfPWBzZWQgLWUgIi9eIy9kIiAiJGFjX2dpdmVuX3NyY2Rpci8kYWNfZGlyL0xJTkdVQVMiYAorICAgIFBPTUFLRUZJTEVERVBTPSIkUE9NQUtFRklMRURFUFMgTElOR1VBUyIKKyAgZWxzZQorICAgICMgU2V0IEFMTF9MSU5HVUFTIHRvIHRoZSB2YWx1ZSBvZiB0aGUgTWFrZWZpbGUgdmFyaWFibGUgTElOR1VBUy4KKyAgICBzZWRfeF9MSU5HVUFTPSJgJGd0X2VjaG8gXCIkc2VkX3hfdmFyaWFibGVcIiB8IHNlZCAtZSAnL14gKiMvZCcgLWUgJ3MvVkFSSUFCTEUvTElOR1VBUy9nJ2AiCisgICAgQUxMX0xJTkdVQVNfPWBzZWQgLW4gLWUgIiRzZWRfeF9MSU5HVUFTIiA8ICIkYWNfZmlsZSJgCisgIGZpCisgICMgSGlkZSB0aGUgQUxMX0xJTkdVQVMgYXNzaWdtZW50IGZyb20gYXV0b21ha2UuCisgIGV2YWwgJ0FMTF9MSU5HVUFTJyc9JEFMTF9MSU5HVUFTXycKKyAgIyBDb21wdXRlIFBPRklMRVMKKyAgIyBhcyAgICAgICQoZm9yZWFjaCBsYW5nLCAkKEFMTF9MSU5HVUFTKSwgJChzcmNkaXIpLyQobGFuZykucG8pCisgICMgQ29tcHV0ZSBVUERBVEVQT0ZJTEVTCisgICMgYXMgICAgICAkKGZvcmVhY2ggbGFuZywgJChBTExfTElOR1VBUyksICQobGFuZykucG8tdXBkYXRlKQorICAjIENvbXB1dGUgRFVNTVlQT0ZJTEVTCisgICMgYXMgICAgICAkKGZvcmVhY2ggbGFuZywgJChBTExfTElOR1VBUyksICQobGFuZykubm9wKQorICAjIENvbXB1dGUgR01PRklMRVMKKyAgIyBhcyAgICAgICQoZm9yZWFjaCBsYW5nLCAkKEFMTF9MSU5HVUFTKSwgJChzcmNkaXIpLyQobGFuZykuZ21vKQorICAjIENvbXB1dGUgUFJPUEVSVElFU0ZJTEVTCisgICMgYXMgICAgICAkKGZvcmVhY2ggbGFuZywgJChBTExfTElOR1VBUyksICQodG9wX3NyY2RpcikvJChET01BSU4pXyQobGFuZykucHJvcGVydGllcykKKyAgIyBDb21wdXRlIENMQVNTRklMRVMKKyAgIyBhcyAgICAgICQoZm9yZWFjaCBsYW5nLCAkKEFMTF9MSU5HVUFTKSwgJCh0b3Bfc3JjZGlyKS8kKERPTUFJTilfJChsYW5nKS5jbGFzcykKKyAgIyBDb21wdXRlIFFNRklMRVMKKyAgIyBhcyAgICAgICQoZm9yZWFjaCBsYW5nLCAkKEFMTF9MSU5HVUFTKSwgJChzcmNkaXIpLyQobGFuZykucW0pCisgICMgQ29tcHV0ZSBNU0dGSUxFUworICAjIGFzICAgICAgJChmb3JlYWNoIGxhbmcsICQoQUxMX0xJTkdVQVMpLCAkKHNyY2RpcikvJChmcm9iICQobGFuZykpLm1zZykKKyAgIyBDb21wdXRlIFJFU09VUkNFU0RMTEZJTEVTCisgICMgYXMgICAgICAkKGZvcmVhY2ggbGFuZywgJChBTExfTElOR1VBUyksICQoc3JjZGlyKS8kKGZyb2IgJChsYW5nKSkvJChET01BSU4pLnJlc291cmNlcy5kbGwpCisgIGNhc2UgIiRhY19naXZlbl9zcmNkaXIiIGluCisgICAgLikgc3JjZGlycHJlPSA7OworICAgICopIHNyY2RpcnByZT0nJChzcmNkaXIpLycgOzsKKyAgZXNhYworICBQT0ZJTEVTPQorICBVUERBVEVQT0ZJTEVTPQorICBEVU1NWVBPRklMRVM9CisgIEdNT0ZJTEVTPQorICBQUk9QRVJUSUVTRklMRVM9CisgIENMQVNTRklMRVM9CisgIFFNRklMRVM9CisgIE1TR0ZJTEVTPQorICBSRVNPVVJDRVNETExGSUxFUz0KKyAgZm9yIGxhbmcgaW4gJEFMTF9MSU5HVUFTOyBkbworICAgIFBPRklMRVM9IiRQT0ZJTEVTICRzcmNkaXJwcmUkbGFuZy5wbyIKKyAgICBVUERBVEVQT0ZJTEVTPSIkVVBEQVRFUE9GSUxFUyAkbGFuZy5wby11cGRhdGUiCisgICAgRFVNTVlQT0ZJTEVTPSIkRFVNTVlQT0ZJTEVTICRsYW5nLm5vcCIKKyAgICBHTU9GSUxFUz0iJEdNT0ZJTEVTICRzcmNkaXJwcmUkbGFuZy5nbW8iCisgICAgUFJPUEVSVElFU0ZJTEVTPSIkUFJPUEVSVElFU0ZJTEVTIFwkKHRvcF9zcmNkaXIpL1wkKERPTUFJTilfJGxhbmcucHJvcGVydGllcyIKKyAgICBDTEFTU0ZJTEVTPSIkQ0xBU1NGSUxFUyBcJCh0b3Bfc3JjZGlyKS9cJChET01BSU4pXyRsYW5nLmNsYXNzIgorICAgIFFNRklMRVM9IiRRTUZJTEVTICRzcmNkaXJwcmUkbGFuZy5xbSIKKyAgICBmcm9iYmVkbGFuZz1gZWNobyAkbGFuZyB8IHNlZCAtZSAncy9cLi4qJC8vJyAtZSAneS9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei8nYAorICAgIE1TR0ZJTEVTPSIkTVNHRklMRVMgJHNyY2RpcnByZSRmcm9iYmVkbGFuZy5tc2ciCisgICAgZnJvYmJlZGxhbmc9YGVjaG8gJGxhbmcgfCBzZWQgLWUgJ3MvXy8tL2cnYAorICAgIFJFU09VUkNFU0RMTEZJTEVTPSIkUkVTT1VSQ0VTRExMRklMRVMgJHNyY2RpcnByZSRmcm9iYmVkbGFuZy9cJChET01BSU4pLnJlc291cmNlcy5kbGwiCisgIGRvbmUKKyAgIyBDQVRBTE9HUyBkZXBlbmRzIG9uIGJvdGggJGFjX2RpciBhbmQgdGhlIHVzZXIncyBMSU5HVUFTCisgICMgZW52aXJvbm1lbnQgdmFyaWFibGUuCisgIElOU1RfTElOR1VBUz0KKyAgaWYgdGVzdCAtbiAiJEFMTF9MSU5HVUFTIjsgdGhlbgorICAgIGZvciBwcmVzZW50bGFuZyBpbiAkQUxMX0xJTkdVQVM7IGRvCisgICAgICB1c2VpdD1ubworICAgICAgaWYgdGVzdCAiJVVOU0VUJSIgIT0gIiRMSU5HVUFTIjsgdGhlbgorICAgICAgICBkZXNpcmVkbGFuZ3VhZ2VzPSIkTElOR1VBUyIKKyAgICAgIGVsc2UKKyAgICAgICAgZGVzaXJlZGxhbmd1YWdlcz0iJEFMTF9MSU5HVUFTIgorICAgICAgZmkKKyAgICAgIGZvciBkZXNpcmVkbGFuZyBpbiAkZGVzaXJlZGxhbmd1YWdlczsgZG8KKyAgICAgICAgIyBVc2UgdGhlIHByZXNlbnRsYW5nIGNhdGFsb2cgaWYgZGVzaXJlZGxhbmcgaXMKKyAgICAgICAgIyAgIGEuIGVxdWFsIHRvIHByZXNlbnRsYW5nLCBvcgorICAgICAgICAjICAgYi4gYSB2YXJpYW50IG9mIHByZXNlbnRsYW5nIChiZWNhdXNlIGluIHRoaXMgY2FzZSwKKyAgICAgICAgIyAgICAgIHByZXNlbnRsYW5nIGNhbiBiZSB1c2VkIGFzIGEgZmFsbGJhY2sgZm9yIG1lc3NhZ2VzCisgICAgICAgICMgICAgICB3aGljaCBhcmUgbm90IHRyYW5zbGF0ZWQgaW4gdGhlIGRlc2lyZWRsYW5nIGNhdGFsb2cpLgorICAgICAgICBjYXNlICIkZGVzaXJlZGxhbmciIGluCisgICAgICAgICAgIiRwcmVzZW50bGFuZyIqKSB1c2VpdD15ZXM7OworICAgICAgICBlc2FjCisgICAgICBkb25lCisgICAgICBpZiB0ZXN0ICR1c2VpdCA9IHllczsgdGhlbgorICAgICAgICBJTlNUX0xJTkdVQVM9IiRJTlNUX0xJTkdVQVMgJHByZXNlbnRsYW5nIgorICAgICAgZmkKKyAgICBkb25lCisgIGZpCisgIENBVEFMT0dTPQorICBKQVZBQ0FUQUxPR1M9CisgIFFUQ0FUQUxPR1M9CisgIFRDTENBVEFMT0dTPQorICBDU0hBUlBDQVRBTE9HUz0KKyAgaWYgdGVzdCAtbiAiJElOU1RfTElOR1VBUyI7IHRoZW4KKyAgICBmb3IgbGFuZyBpbiAkSU5TVF9MSU5HVUFTOyBkbworICAgICAgQ0FUQUxPR1M9IiRDQVRBTE9HUyAkbGFuZy5nbW8iCisgICAgICBKQVZBQ0FUQUxPR1M9IiRKQVZBQ0FUQUxPR1MgXCQoRE9NQUlOKV8kbGFuZy5wcm9wZXJ0aWVzIgorICAgICAgUVRDQVRBTE9HUz0iJFFUQ0FUQUxPR1MgJGxhbmcucW0iCisgICAgICBmcm9iYmVkbGFuZz1gZWNobyAkbGFuZyB8IHNlZCAtZSAncy9cLi4qJC8vJyAtZSAneS9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei8nYAorICAgICAgVENMQ0FUQUxPR1M9IiRUQ0xDQVRBTE9HUyAkZnJvYmJlZGxhbmcubXNnIgorICAgICAgZnJvYmJlZGxhbmc9YGVjaG8gJGxhbmcgfCBzZWQgLWUgJ3MvXy8tL2cnYAorICAgICAgQ1NIQVJQQ0FUQUxPR1M9IiRDU0hBUlBDQVRBTE9HUyAkZnJvYmJlZGxhbmcvXCQoRE9NQUlOKS5yZXNvdXJjZXMuZGxsIgorICAgIGRvbmUKKyAgZmkKKworICBzZWQgLWUgInN8QFBPVEZJTEVTX0RFUFNAfCRQT1RGSUxFU19ERVBTfGciIC1lICJzfEBQT0ZJTEVTQHwkUE9GSUxFU3xnIiAtZSAic3xAVVBEQVRFUE9GSUxFU0B8JFVQREFURVBPRklMRVN8ZyIgLWUgInN8QERVTU1ZUE9GSUxFU0B8JERVTU1ZUE9GSUxFU3xnIiAtZSAic3xAR01PRklMRVNAfCRHTU9GSUxFU3xnIiAtZSAic3xAUFJPUEVSVElFU0ZJTEVTQHwkUFJPUEVSVElFU0ZJTEVTfGciIC1lICJzfEBDTEFTU0ZJTEVTQHwkQ0xBU1NGSUxFU3xnIiAtZSAic3xAUU1GSUxFU0B8JFFNRklMRVN8ZyIgLWUgInN8QE1TR0ZJTEVTQHwkTVNHRklMRVN8ZyIgLWUgInN8QFJFU09VUkNFU0RMTEZJTEVTQHwkUkVTT1VSQ0VTRExMRklMRVN8ZyIgLWUgInN8QENBVEFMT0dTQHwkQ0FUQUxPR1N8ZyIgLWUgInN8QEpBVkFDQVRBTE9HU0B8JEpBVkFDQVRBTE9HU3xnIiAtZSAic3xAUVRDQVRBTE9HU0B8JFFUQ0FUQUxPR1N8ZyIgLWUgInN8QFRDTENBVEFMT0dTQHwkVENMQ0FUQUxPR1N8ZyIgLWUgInN8QENTSEFSUENBVEFMT0dTQHwkQ1NIQVJQQ0FUQUxPR1N8ZyIgLWUgJ3MsXiNkaXN0ZGlyOixkaXN0ZGlyOiwnIDwgIiRhY19maWxlIiA+ICIkYWNfZmlsZS50bXAiCisgIGlmIGdyZXAgLWwgJ0BUQ0xDQVRBTE9HU0AnICIkYWNfZmlsZSIgPiAvZGV2L251bGw7IHRoZW4KKyAgICAjIEFkZCBkZXBlbmRlbmNpZXMgdGhhdCBjYW5ub3QgYmUgZm9ybXVsYXRlZCBhcyBhIHNpbXBsZSBzdWZmaXggcnVsZS4KKyAgICBmb3IgbGFuZyBpbiAkQUxMX0xJTkdVQVM7IGRvCisgICAgICBmcm9iYmVkbGFuZz1gZWNobyAkbGFuZyB8IHNlZCAtZSAncy9cLi4qJC8vJyAtZSAneS9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei8nYAorICAgICAgY2F0ID4+ICIkYWNfZmlsZS50bXAiIDw8RU9GCiskZnJvYmJlZGxhbmcubXNnOiAkbGFuZy5wbworCUBlY2hvICJcJChNU0dGTVQpIC1jIC0tdGNsIC1kIFwkKHNyY2RpcikgLWwgJGxhbmcgJHNyY2RpcnByZSRsYW5nLnBvIjsgXAorCVwkKE1TR0ZNVCkgLWMgLS10Y2wgLWQgIlwkKHNyY2RpcikiIC1sICRsYW5nICRzcmNkaXJwcmUkbGFuZy5wbyB8fCB7IHJtIC1mICJcJChzcmNkaXIpLyRmcm9iYmVkbGFuZy5tc2ciOyBleGl0IDE7IH0KK0VPRgorICAgIGRvbmUKKyAgZmkKKyAgaWYgZ3JlcCAtbCAnQENTSEFSUENBVEFMT0dTQCcgIiRhY19maWxlIiA+IC9kZXYvbnVsbDsgdGhlbgorICAgICMgQWRkIGRlcGVuZGVuY2llcyB0aGF0IGNhbm5vdCBiZSBmb3JtdWxhdGVkIGFzIGEgc2ltcGxlIHN1ZmZpeCBydWxlLgorICAgIGZvciBsYW5nIGluICRBTExfTElOR1VBUzsgZG8KKyAgICAgIGZyb2JiZWRsYW5nPWBlY2hvICRsYW5nIHwgc2VkIC1lICdzL18vLS9nJ2AKKyAgICAgIGNhdCA+PiAiJGFjX2ZpbGUudG1wIiA8PEVPRgorJGZyb2JiZWRsYW5nL1wkKERPTUFJTikucmVzb3VyY2VzLmRsbDogJGxhbmcucG8KKwlAZWNobyAiXCQoTVNHRk1UKSAtYyAtLWNzaGFycCAtZCBcJChzcmNkaXIpIC1sICRsYW5nICRzcmNkaXJwcmUkbGFuZy5wbyAtciBcJChET01BSU4pIjsgXAorCVwkKE1TR0ZNVCkgLWMgLS1jc2hhcnAgLWQgIlwkKHNyY2RpcikiIC1sICRsYW5nICRzcmNkaXJwcmUkbGFuZy5wbyAtciAiXCQoRE9NQUlOKSIgfHwgeyBybSAtZiAiXCQoc3JjZGlyKS8kZnJvYmJlZGxhbmcubXNnIjsgZXhpdCAxOyB9CitFT0YKKyAgICBkb25lCisgIGZpCisgIGlmIHRlc3QgLW4gIiRQT01BS0VGSUxFREVQUyI7IHRoZW4KKyAgICBjYXQgPj4gIiRhY19maWxlLnRtcCIgPDxFT0YKK01ha2VmaWxlOiAkUE9NQUtFRklMRURFUFMKK0VPRgorICBmaQorICBtdiAiJGFjX2ZpbGUudG1wIiAiJGFjX2ZpbGUiCitdKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvcHJvZ3Rlc3QubTQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC9wcm9ndGVzdC5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmU1MjdjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvcHJvZ3Rlc3QubTQKQEAgLTAsMCArMSw5MSBAQAorIyBwcm9ndGVzdC5tNCBzZXJpYWwgMyAoZ2V0dGV4dC0wLjEyKQorZG5sIENvcHlyaWdodCAoQykgMTk5Ni0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorZG5sCitkbmwgVGhpcyBmaWxlIGNhbiBjYW4gYmUgdXNlZCBpbiBwcm9qZWN0cyB3aGljaCBhcmUgbm90IGF2YWlsYWJsZSB1bmRlcgorZG5sIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBvciB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKK2RubCBMaWNlbnNlIGJ1dCB3aGljaCBzdGlsbCB3YW50IHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhlIEdOVSBnZXR0ZXh0CitkbmwgZnVuY3Rpb25hbGl0eS4KK2RubCBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBhY3R1YWwgY29kZSBvZiB0aGUgR05VIGdldHRleHQgbGlicmFyeSBpcyBjb3ZlcmVkCitkbmwgYnkgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFuZCB0aGUgcmVzdCBvZiB0aGUgR05VCitkbmwgZ2V0dGV4dCBwYWNrYWdlIHBhY2thZ2UgaXMgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCitkbmwgVGhleSBhcmUgKm5vdCogaW4gdGhlIHB1YmxpYyBkb21haW4uCisKK2RubCBBdXRob3JzOgorZG5sICAgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4sIDE5OTYuCisKKyMgU2VhcmNoIHBhdGggZm9yIGEgcHJvZ3JhbSB3aGljaCBwYXNzZXMgdGhlIGdpdmVuIHRlc3QuCisKK2RubCBBTV9QQVRIX1BST0dfV0lUSF9URVNUKFZBUklBQkxFLCBQUk9HLVRPLUNIRUNLLUZPUiwKK2RubCAgIFRFU1QtUEVSRk9STUVELU9OLUZPVU5EX1BST0dSQU0gWywgVkFMVUUtSUYtTk9ULUZPVU5EIFssIFBBVEhdXSkKK0FDX0RFRlVOKFtBTV9QQVRIX1BST0dfV0lUSF9URVNUXSwKK1sKKyMgUHJlcGFyZSBQQVRIX1NFUEFSQVRPUi4KKyMgVGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0LgoraWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KKyAgZWNobyAiIyEgL2Jpbi9zaCIgPmNvbmYkJC5zaAorICBlY2hvICAiZXhpdCAwIiAgID4+Y29uZiQkLnNoCisgIGNobW9kICt4IGNvbmYkJC5zaAorICBpZiAoUEFUSD0iL25vbmV4aXN0ZW50Oy4iOyBjb25mJCQuc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgIFBBVEhfU0VQQVJBVE9SPSc7JworICBlbHNlCisgICAgUEFUSF9TRVBBUkFUT1I9OgorICBmaQorICBybSAtZiBjb25mJCQuc2gKK2ZpCisKKyMgRmluZCBvdXQgaG93IHRvIHRlc3QgZm9yIGV4ZWN1dGFibGUgZmlsZXMuIERvbid0IHVzZSBhIHplcm8tYnl0ZSBmaWxlLAorIyBhcyBzeXN0ZW1zIG1heSB1c2UgbWV0aG9kcyBvdGhlciB0aGFuIG1vZGUgYml0cyB0byBkZXRlcm1pbmUgZXhlY3V0YWJpbGl0eS4KK2NhdCA+Y29uZiQkLmZpbGUgPDxfQVNFT0YKKyMhIC9iaW4vc2gKK2V4aXQgMAorX0FTRU9GCitjaG1vZCAreCBjb25mJCQuZmlsZQoraWYgdGVzdCAteCBjb25mJCQuZmlsZSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYWNfZXhlY3V0YWJsZV9wPSJ0ZXN0IC14IgorZWxzZQorICBhY19leGVjdXRhYmxlX3A9InRlc3QgLWYiCitmaQorcm0gLWYgY29uZiQkLmZpbGUKKworIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkMiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJDI7IGFjX3dvcmQ9WyRdMgorQUNfTVNHX0NIRUNLSU5HKFtmb3IgJGFjX3dvcmRdKQorQUNfQ0FDSEVfVkFMKGFjX2N2X3BhdGhfJDEsCitbY2FzZSAiWyRdJDEiIGluCisgIFtbXFwvXV0qIHwgPzpbW1xcL11dKikKKyAgICBhY19jdl9wYXRoXyQxPSJbJF0kMSIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgICAgOzsKKyAgKikKKyAgICBhY19zYXZlX0lGUz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKyAgICBmb3IgYWNfZGlyIGluIGlmZWxzZShbJDVdLCAsICRQQVRILCBbJDVdKTsgZG8KKyAgICAgIElGUz0iJGFjX3NhdmVfSUZTIgorICAgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICAgICAgICBpZiAkYWNfZXhlY3V0YWJsZV9wICIkYWNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgICAgICAgIGlmIFskM107IHRoZW4KKyAgICAgICAgICAgIGFjX2N2X3BhdGhfJDE9IiRhY19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisgICAgICAgICAgICBicmVhayAyCisgICAgICAgICAgZmkKKyAgICAgICAgZmkKKyAgICAgIGRvbmUKKyAgICBkb25lCisgICAgSUZTPSIkYWNfc2F2ZV9JRlMiCitkbmwgSWYgbm8gNHRoIGFyZyBpcyBnaXZlbiwgbGVhdmUgdGhlIGNhY2hlIHZhcmlhYmxlIHVuc2V0LAorZG5sIHNvIEFDX1BBVEhfUFJPR1Mgd2lsbCBrZWVwIGxvb2tpbmcuCitpZmVsc2UoWyQ0XSwgLCAsIFsgIHRlc3QgLXogIlskXWFjX2N2X3BhdGhfJDEiICYmIGFjX2N2X3BhdGhfJDE9IiQ0IgorXSlkbmwKKyAgICA7OworZXNhY10pZG5sCiskMT0iJGFjX2N2X3BhdGhfJDEiCitpZiB0ZXN0IGlmZWxzZShbJDRdLCAsIFstbiAiWyRdJDEiXSwgWyJbJF0kMSIgIT0gIiQ0Il0pOyB0aGVuCisgIEFDX01TR19SRVNVTFQoWyRdJDEpCitlbHNlCisgIEFDX01TR19SRVNVTFQobm8pCitmaQorQUNfU1VCU1QoJDEpZG5sCitdKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvdGxzLm00IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbTQvdGxzLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZGIwOWEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tNC90bHMubTQKQEAgLTAsMCArMSwxMTEgQEAKKyMKKyMgQVhfQ0hFQ0tfVExTIC0tIGNoZWNrIHdoZXRoZXIgdGhlIHRhcmdldCBzdXBwb3J0cyBUTFMgKHRocmVhZC1sb2NhbCBzdG9yYWdlKQorIworIyBCYXNlZCBvbiB0bHMubTQgZnJvbSBnY2MgYW5kIGV4dGVuZGVkIGJ5IFRMUyBsaW5rIHRlc3QgZm9yIGNyb3NzLWNvbXBpbGluZworIyBzdXBwb3J0IGZyb20gaHR0cDovL29sZC5uYWJibGUuY29tL0ltcHJvdmUtVExTLWxpbmstdGVzdC1mb3ItY3Jvc3MtY29tcGlsaW5nLXRkMjQzMTI5NzUuaHRtbAorIworIyBOb3RlIHRoYXQgQVhfVExTIGZyb20gaHR0cDovL2F1dG9jb25mLWFyY2hpdmUuY3J5cC50by9heF90bHMuaHRtbCBzdXBwb3J0cworIyBtb3JlIGtleXdvcmRzIGZvciBUTFMuIFdlIGFyZSBoYXBweSB3aXRoIHRoZSAiX190aHJlYWQiIG9ubHkuCisjCisjIC0tIEthcmVsIFphayAoMDQtRGVjLTIwMDkpCisjCitkbmwgQ2hlY2sgd2hldGhlciB0aGUgdGFyZ2V0IHN1cHBvcnRzIFRMUy4KK0FDX0RFRlVOKFtBWF9DSEVDS19UTFNdLCBbCisKKyAgQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKQorCisgIEFDX0FSR19FTkFCTEUoW3Rsc10sCisgICAgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS10bHNdLCBbZGlzYWJsZSB1c2Ugb2YgdGhyZWFkIGxvY2FsIHN1cHBvcnRdKSwKKyAgICAgIFtdLCBlbmFibGVfdGxzPXllcykKKworICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgdGFyZ2V0IHN1cHBvcnRzIHRocmVhZC1sb2NhbCBzdG9yYWdlXSwKKwkJIGF4X2N2X2hhdmVfdGxzLCBbCisgICAgQUNfUlVOX0lGRUxTRShbX190aHJlYWQgaW50IGE7IGludCBiOyBpbnQgbWFpbigpIHsgcmV0dXJuIGEgPSBiOyB9XSwKKyAgICAgIFtkbmwgSWYgdGhlIHRlc3QgY2FzZSBwYXNzZWQgd2l0aCBkeW5hbWljIGxpbmtpbmcsIHRyeSBhZ2FpbiB3aXRoCisgICAgICAgZG5sIHN0YXRpYyBsaW5raW5nLCBidXQgb25seSBpZiBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgKG5vdAorICAgICAgIGRubCBvbiBTb2xhcmlzIDEwKS4gIFRoaXMgZmFpbHMgd2l0aCBzb21lIG9sZGVyIFJlZCBIYXQgcmVsZWFzZXMuCisgICAgICBjaGt0bHNfc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKyAgICAgIExERkxBR1M9Ii1zdGF0aWMgJExERkxBR1MiCisgICAgICBBQ19MSU5LX0lGRUxTRShbaW50IG1haW4oKSB7IHJldHVybiAwOyB9XSwKKwlBQ19SVU5fSUZFTFNFKFtfX3RocmVhZCBpbnQgYTsgaW50IGI7IGludCBtYWluKCkgeyByZXR1cm4gYSA9IGI7IH1dLAorCQkgICAgICBbYXhfY3ZfaGF2ZV90bHM9eWVzXSwgW2F4X2N2X2hhdmVfdGxzPW5vXSxbXSksCisJW2F4X2N2X2hhdmVfdGxzPXllc10pCisgICAgICBMREZMQUdTPSIkY2hrdGxzX3NhdmVfTERGTEFHUyIKKyAgICAgIGlmIHRlc3QgJGF4X2N2X2hhdmVfdGxzID0geWVzOyB0aGVuCisJZG5sIFNvIGZhciwgdGhlIGJpbnV0aWxzIGFuZCB0aGUgY29tcGlsZXIgc3VwcG9ydCBUTFMuCisJZG5sIEFsc28gY2hlY2sgd2hldGhlciB0aGUgbGliYyBzdXBwb3J0cyBUTFMsIGkuZS4gd2hldGhlciBhIHZhcmlhYmxlCisJZG5sIHdpdGggX190aHJlYWQgbGlua2FnZSBoYXMgYSBkaWZmZXJlbnQgYWRkcmVzcyBpbiBkaWZmZXJlbnQgdGhyZWFkcy4KKwlkbmwgRmlyc3QsIGZpbmQgdGhlIHRocmVhZF9DRkxBR1MgbmVjZXNzYXJ5IGZvciBsaW5raW5nIGEgcHJvZ3JhbSB0aGF0CisJZG5sIGNhbGxzIHB0aHJlYWRfY3JlYXRlLgorCWNoa3Rsc19zYXZlX0NGTEFHUz0iJENGTEFHUyIKKwl0aHJlYWRfQ0ZMQUdTPWZhaWxlZAorCWZvciBmbGFnIGluICcnICctcHRocmVhZCcgJy1scHRocmVhZCc7IGRvCisJICBDRkxBR1M9IiRmbGFnICRjaGt0bHNfc2F2ZV9DRkxBR1MiCisJICBBQ19MSU5LX0lGRUxTRSgKKwkgICAgW0FDX0xBTkdfUFJPR1JBTSgKKwkgICAgICAgWyNpbmNsdWRlIDxwdGhyZWFkLmg+CisJCXZvaWQgKmcodm9pZCAqZCkgeyByZXR1cm4gTlVMTDsgfV0sCisJICAgICAgIFtwdGhyZWFkX3QgdDsgcHRocmVhZF9jcmVhdGUoJnQsTlVMTCxnLE5VTEwpO10pXSwKKwkgICAgW3RocmVhZF9DRkxBR1M9IiRmbGFnIl0pCisJICBpZiB0ZXN0ICJYJHRocmVhZF9DRkxBR1MiICE9IFhmYWlsZWQ7IHRoZW4KKwkgICAgYnJlYWsKKwkgIGZpCisJZG9uZQorCUNGTEFHUz0iJGNoa3Rsc19zYXZlX0NGTEFHUyIKKwlpZiB0ZXN0ICJYJHRocmVhZF9DRkxBR1MiICE9IFhmYWlsZWQ7IHRoZW4KKwkgIENGTEFHUz0iJHRocmVhZF9DRkxBR1MgJGNoa3Rsc19zYXZlX0NGTEFHUyIKKwkgIEFDX1JVTl9JRkVMU0UoCisJICAgIFtBQ19MQU5HX1BST0dSQU0oCisJICAgICAgIFsjaW5jbHVkZSA8cHRocmVhZC5oPgorCQlfX3RocmVhZCBpbnQgYTsKKwkJc3RhdGljIGludCAqYV9pbl9vdGhlcl90aHJlYWQ7CisJCXN0YXRpYyB2b2lkICoKKwkJdGhyZWFkX2Z1bmMgKHZvaWQgKmFyZykKKwkJeworCQkgIGFfaW5fb3RoZXJfdGhyZWFkID0gJmE7CisJCSAgcmV0dXJuICh2b2lkICopMDsKKwkJfV0sCisJICAgICAgIFtwdGhyZWFkX3QgdGhyZWFkOworCQl2b2lkICp0aHJlYWRfcmV0dmFsOworCQlpbnQgKmFfaW5fbWFpbl90aHJlYWQ7CisJCWlmIChwdGhyZWFkX2NyZWF0ZSAoJnRocmVhZCwgKHB0aHJlYWRfYXR0cl90ICopMCwKKwkJCQkgICAgdGhyZWFkX2Z1bmMsICh2b2lkICopMCkpCisJCSAgcmV0dXJuIDA7CisJCWFfaW5fbWFpbl90aHJlYWQgPSAmYTsKKwkJaWYgKHB0aHJlYWRfam9pbiAodGhyZWFkLCAmdGhyZWFkX3JldHZhbCkpCisJCSAgcmV0dXJuIDA7CisJCXJldHVybiAoYV9pbl9vdGhlcl90aHJlYWQgPT0gYV9pbl9tYWluX3RocmVhZCk7XSldLAorCSAgICAgW2F4X2N2X2hhdmVfdGxzPXllc10sIFtheF9jdl9oYXZlX3Rscz1ub10sIFtdKQorCSAgQ0ZMQUdTPSIkY2hrdGxzX3NhdmVfQ0ZMQUdTIgorCWZpCisgICAgICBmaV0sCisgICAgICBbYXhfY3ZfaGF2ZV90bHM9bm9dLAorICAgICAgW2RubCBUaGlzIGlzIHRoZSBjcm9zcy1jb21waWxpbmcgY2FzZS4gQXNzdW1lIGxpYmMgc3VwcG9ydHMgVExTIGlmIHRoZQorICAgICAgIGRubCBiaW51dGlscyBhbmQgdGhlIGNvbXBpbGVyIGRvLgorICAgICAgIEFDX0xJTktfSUZFTFNFKFtfX3RocmVhZCBpbnQgYTsgaW50IGI7IGludCBtYWluKCkgeyByZXR1cm4gYSA9IGI7IH1dLAorCSBbY2hrdGxzX3NhdmVfTERGTEFHUz0iJExERkxBR1MiCisJICBkbmwgU2hhcmVkIGxpYnJhcnkgb3B0aW9ucyBtYXkgZGVwZW5kIG9uIHRoZSBob3N0OyB0aGlzIGNoZWNrCisJICBkbmwgaXMgb25seSBrbm93biB0byBiZSBuZWVkZWQgZm9yIEdOVS9MaW51eC4KKwkgIGNhc2UgJGhvc3QgaW4KKwkgICAgKi0qLWxpbnV4KikKKwkgICAgICBMREZMQUdTPSItc2hhcmVkIC1XbCwtLW5vLXVuZGVmaW5lZCAkTERGTEFHUyIKKwkgICAgICA7OworCSAgZXNhYworCSAgY2hrdGxzX3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorCSAgQ0ZMQUdTPSItZlBJQyAkQ0ZMQUdTIgorCSAgZG5sIElmIC1zaGFyZWQgd29ya3MsIHRlc3QgaWYgVExTIHdvcmtzIGluIGEgc2hhcmVkIGxpYnJhcnkuCisJICBBQ19MSU5LX0lGRUxTRShbaW50IGYoKSB7IHJldHVybiAwOyB9XSwKKwkgICAgW0FDX0xJTktfSUZFTFNFKFtfX3RocmVhZCBpbnQgYTsgaW50IGI7IGludCBmKCkgeyByZXR1cm4gYSA9IGI7IH1dLAorCSAgICAgIFtheF9jdl9oYXZlX3Rscz15ZXNdLAorCSAgICAgIFtheF9jdl9oYXZlX3Rscz1ub10pXSwKKwkgICAgW2F4X2N2X2hhdmVfdGxzPXllc10pCisJICBDRkxBR1M9IiRjaGt0bHNfc2F2ZV9DRkxBR1MiCisJICBMREZMQUdTPSIkY2hrdGxzX3NhdmVfTERGTEFHUyJdLCBbYXhfY3ZfaGF2ZV90bHM9bm9dKQorICAgICAgXQorICAgICldKQorCisgIGlmIHRlc3QgIiRlbmFibGVfdGxzICRheF9jdl9oYXZlX3RscyIgPSAieWVzIHllcyI7IHRoZW4KKyAgICBBQ19ERUZJTkUoSEFWRV9UTFMsIDEsCisJICAgICAgW0RlZmluZSB0byAxIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgdGhyZWFkLWxvY2FsIHN0b3JhZ2UuXSkKKyAgZmkKK10pCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTc2YWI3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDExMiBAQAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCisKK0VYVFJBX0RJU1QgPSBSRUFETUUuZmx1c2hiIHV1aWRkLnJjCisKK2Jpbl9QUk9HUkFNUyA9CitzYmluX1BST0dSQU1TID0KK3VzcnNiaW5fZXhlY19QUk9HUkFNUyA9CisKK3VzcmJpbl9leGVjX1BST0dSQU1TID0gY2FsIGRkYXRlIGxvZ2dlciBsb29rIG1jb29raWUgXAorCW5hbWVpIHNjcmlwdCB3aGVyZWlzIHNjcmlwdHJlcGxheQorRVhUUkFfRElTVCArPSBSRUFETUUuY2FsIFJFQURNRS5kZGF0ZSBSRUFETUUubmFtZWkgUkVBRE1FLm5hbWVpMgorCittY29va2llX1NPVVJDRVMgPSBtY29va2llLmMgLi4vbGliL21kNS5jCisKK3VzcmJpbl9leGVjX1NDUklQVFMgPSBjaGtkdXBleGUKKworQ0xFQU5GSUxFUyA9IGNoa2R1cGV4ZQorCitkaXN0X21hbl9NQU5TID0gY2FsLjEgY2hrZHVwZXhlLjEgZGRhdGUuMSBsb2dnZXIuMSBsb29rLjEgbWNvb2tpZS4xIFwKKwluYW1laS4xIHNjcmlwdC4xIHdoZXJlaXMuMSBzY3JpcHRyZXBsYXkuMQorCitpZiBCVUlMRF9MSUJVVUlECit1c3JiaW5fZXhlY19QUk9HUkFNUyArPSB1dWlkZ2VuCitkaXN0X21hbl9NQU5TICs9IHV1aWRnZW4uMQordXVpZGdlbl9MREFERCA9ICQodWxfbGlidXVpZF9sYSkKK3V1aWRnZW5fQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1JJCh1bF9saWJ1dWlkX3NyY2RpcikKK2lmIEJVSUxEX1VVSURECit1c3JzYmluX2V4ZWNfUFJPR1JBTVMgKz0gdXVpZGQKK2Rpc3RfbWFuX01BTlMgKz0gdXVpZGQuOAordXVpZGRfTERBREQgPSAkKHVsX2xpYnV1aWRfbGEpCit1dWlkZF9DRkxBR1MgPSAkKEFNX0NGTEFHUykgLUkkKHVsX2xpYnV1aWRfc3JjZGlyKQorZW5kaWYKK2VuZGlmCisKK2lmIEJVSUxEX0xJQkJMS0lECitzYmluX1BST0dSQU1TICs9IGJsa2lkIGZpbmRmcyB3aXBlZnMKK2Rpc3RfbWFuX01BTlMgKz0gYmxraWQuOCBmaW5kZnMuOCB3aXBlZnMuOAorYmxraWRfU09VUkNFUyA9IGJsa2lkLmMgJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMKK2Jsa2lkX0xEQUREID0gJCh1bF9saWJibGtpZF9sYSkKK2Jsa2lkX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtSSQodWxfbGliYmxraWRfaW5jZGlyKQorZmluZGZzX0xEQUREID0gJCh1bF9saWJibGtpZF9sYSkKK2ZpbmRmc19DRkxBR1MgPSAkKEFNX0NGTEFHUykgLUkkKHVsX2xpYmJsa2lkX2luY2RpcikKK3dpcGVmc19MREFERCA9ICQodWxfbGliYmxraWRfbGEpCit3aXBlZnNfQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1JJCh1bF9saWJibGtpZF9pbmNkaXIpCitpZiBIQVZFX1NUQVRJQ19CTEtJRAorc2Jpbl9QUk9HUkFNUyArPSBibGtpZC5zdGF0aWMKK2Jsa2lkX3N0YXRpY19TT1VSQ0VTID0gJChibGtpZF9TT1VSQ0VTKQorYmxraWRfc3RhdGljX0xERkxBR1MgPSAtYWxsLXN0YXRpYworYmxraWRfc3RhdGljX0xEQUREID0gJCh1bF9saWJibGtpZF9sYSkKK2Jsa2lkX3N0YXRpY19DRkxBR1MgPSAkKEFNX0NGTEFHUykgLUkkKHVsX2xpYmJsa2lkX2luY2RpcikKK2VuZGlmCitlbmRpZgorCitpZiBIQVZFX1RJTkZPCitjYWxfTERBREQgPSAtbHRpbmZvIEBOQ1VSU0VTX0xJQlNACitlbHNlCitpZiBIQVZFX05DVVJTRVMKK2NhbF9MREFERCA9IEBOQ1VSU0VTX0xJQlNACitlbHNlCitpZiBIQVZFX1RFUk1DQVAKK2NhbF9MREFERCA9IC1sdGVybWNhcAorZW5kaWYKK2VuZGlmCitlbmRpZgorCitpZiBIQVZFX1VUSUwKK3NjcmlwdF9MREFERCA9IC1sdXRpbAorZW5kaWYKKworaWYgSEFWRV9OQ1VSU0VTCitpZiBMSU5VWAordXNyYmluX2V4ZWNfUFJPR1JBTVMgKz0gc2V0dGVybQorZGlzdF9tYW5fTUFOUyArPSBzZXR0ZXJtLjEKK2VuZGlmCitpZiBIQVZFX1RJTkZPCitzZXR0ZXJtX0xEQUREID0gLWx0aW5mbworZWxzZQorc2V0dGVybV9MREFERCA9IEBOQ1VSU0VTX0xJQlNACitlbmRpZgorZW5kaWYKKworaWYgQlVJTERfS0lMTAorYmluX1BST0dSQU1TICs9IGtpbGwKK2tpbGxfU09VUkNFUyA9IGtpbGwuYyBwcm9jcy5jIGtpbGwuaAorZGlzdF9tYW5fTUFOUyArPSBraWxsLjEKK2VuZGlmCisKK2lmIEJVSUxEX1JFTkFNRQordXNyYmluX2V4ZWNfUFJPR1JBTVMgKz0gcmVuYW1lCitkaXN0X21hbl9NQU5TICs9IHJlbmFtZS4xCitlbmRpZgorCitpZiBCVUlMRF9SRVNFVAorZGlzdF91c3JiaW5fZXhlY19TQ1JJUFRTID0gcmVzZXQKK2Rpc3RfbWFuX01BTlMgKz0gcmVzZXQuMQorZW5kaWYKK0VYVFJBX0RJU1QgKz0gUkVBRE1FLnJlc2V0IHJlc2V0LjAzM2MKKworaWYgQlVJTERfV1JJVEUKK3VzcmJpbl9leGVjX1BST0dSQU1TICs9IHdyaXRlCitkaXN0X21hbl9NQU5TICs9IHdyaXRlLjEKK3dyaXRlX0NGTEFHUyA9ICQoU1VJRF9DRkxBR1MpICQoQU1fQ0ZMQUdTKQord3JpdGVfTERGTEFHUyA9ICQoU1VJRF9MREZMQUdTKSAkKEFNX0xERkxBR1MpCisKK2lmIFVTRV9UVFlfR1JPVVAKK2lmIE1BS0VJTlNUQUxMX0RPX0NIT1dOCitpbnN0YWxsLWV4ZWMtaG9vazo6CisJY2hncnAgdHR5ICQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKS93cml0ZQorCWNobW9kIGcrcyAkKERFU1RESVIpJCh1c3JiaW5fZXhlY2Rpcikvd3JpdGUKK2VuZGlmCitlbmRpZgorZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvTWFrZWZpbGUuaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YzI1NjEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsMTM0NCBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK0RJU1RfQ09NTU9OID0gJChhbV9fZGlzdF9ub2luc3RfREFUQV9ESVNUKSBcCisJJChhbV9fZGlzdF91c3JiaW5fZXhlY19TQ1JJUFRTX0RJU1QpICQoZGlzdF9tYW5fTUFOUykgXAorCSQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorCSQoc3JjZGlyKS9jaGtkdXBleGUucGwgXAorCSQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK2Jpbl9QUk9HUkFNUyA9ICQoYW1fX0VYRUVYVF8xKQorc2Jpbl9QUk9HUkFNUyA9ICQoYW1fX0VYRUVYVF8yKSAkKGFtX19FWEVFWFRfMykKK3VzcnNiaW5fZXhlY19QUk9HUkFNUyA9ICQoYW1fX0VYRUVYVF84KQordXNyYmluX2V4ZWNfUFJPR1JBTVMgPSBjYWwkKEVYRUVYVCkgZGRhdGUkKEVYRUVYVCkgbG9nZ2VyJChFWEVFWFQpIFwKKwlsb29rJChFWEVFWFQpIG1jb29raWUkKEVYRUVYVCkgbmFtZWkkKEVYRUVYVCkgc2NyaXB0JChFWEVFWFQpIFwKKwl3aGVyZWlzJChFWEVFWFQpIHNjcmlwdHJlcGxheSQoRVhFRVhUKSAkKGFtX19FWEVFWFRfNCkgXAorCSQoYW1fX0VYRUVYVF81KSAkKGFtX19FWEVFWFRfNikgJChhbV9fRVhFRVhUXzcpCitAQlVJTERfTElCVVVJRF9UUlVFQGFtX19hcHBlbmRfMSA9IHV1aWRnZW4KK0BCVUlMRF9MSUJVVUlEX1RSVUVAYW1fX2FwcGVuZF8yID0gdXVpZGdlbi4xCitAQlVJTERfTElCVVVJRF9UUlVFQEBCVUlMRF9VVUlERF9UUlVFQGFtX19hcHBlbmRfMyA9IHV1aWRkCitAQlVJTERfTElCVVVJRF9UUlVFQEBCVUlMRF9VVUlERF9UUlVFQGFtX19hcHBlbmRfNCA9IHV1aWRkLjgKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQGFtX19hcHBlbmRfNSA9IGJsa2lkIGZpbmRmcyB3aXBlZnMKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQGFtX19hcHBlbmRfNiA9IGJsa2lkLjggZmluZGZzLjggd2lwZWZzLjgKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQEBIQVZFX1NUQVRJQ19CTEtJRF9UUlVFQGFtX19hcHBlbmRfNyA9IGJsa2lkLnN0YXRpYworQEhBVkVfTkNVUlNFU19UUlVFQEBMSU5VWF9UUlVFQGFtX19hcHBlbmRfOCA9IHNldHRlcm0KK0BIQVZFX05DVVJTRVNfVFJVRUBATElOVVhfVFJVRUBhbV9fYXBwZW5kXzkgPSBzZXR0ZXJtLjEKK0BCVUlMRF9LSUxMX1RSVUVAYW1fX2FwcGVuZF8xMCA9IGtpbGwKK0BCVUlMRF9LSUxMX1RSVUVAYW1fX2FwcGVuZF8xMSA9IGtpbGwuMQorQEJVSUxEX1JFTkFNRV9UUlVFQGFtX19hcHBlbmRfMTIgPSByZW5hbWUKK0BCVUlMRF9SRU5BTUVfVFJVRUBhbV9fYXBwZW5kXzEzID0gcmVuYW1lLjEKK0BCVUlMRF9SRVNFVF9UUlVFQGFtX19hcHBlbmRfMTQgPSByZXNldC4xCitAQlVJTERfV1JJVEVfVFJVRUBhbV9fYXBwZW5kXzE1ID0gd3JpdGUKK0BCVUlMRF9XUklURV9UUlVFQGFtX19hcHBlbmRfMTYgPSB3cml0ZS4xCitzdWJkaXIgPSBtaXNjLXV0aWxzCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9nZXR0ZXh0Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2d0ay1kb2MubTQgJCh0b3Bfc3JjZGlyKS9tNC9pY29udi5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItbGQubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWItbGluay5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItcHJlZml4Lm00ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L25scy5tNCAkKHRvcF9zcmNkaXIpL200L3BvLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L3Byb2d0ZXN0Lm00ICQodG9wX3NyY2RpcikvbTQvdGxzLm00IFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvbWtpbnN0YWxsZGlycworQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9jb25maWcuaAorQ09ORklHX0NMRUFOX0ZJTEVTID0gY2hrZHVwZXhlCitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQEJVSUxEX0tJTExfVFJVRUBhbV9fRVhFRVhUXzEgPSBraWxsJChFWEVFWFQpCithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKHNiaW5kaXIpIiBcCisJIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgIiQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikiIFwKKwkiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpIiAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpIiBcCisJIiQoREVTVERJUikkKG1hbjFkaXIpIiAiJChERVNURElSKSQobWFuOGRpcikiCitAQlVJTERfTElCQkxLSURfVFJVRUBhbV9fRVhFRVhUXzIgPSBibGtpZCQoRVhFRVhUKSBmaW5kZnMkKEVYRUVYVCkgXAorQEJVSUxEX0xJQkJMS0lEX1RSVUVACXdpcGVmcyQoRVhFRVhUKQorQEJVSUxEX0xJQkJMS0lEX1RSVUVAQEhBVkVfU1RBVElDX0JMS0lEX1RSVUVAYW1fX0VYRUVYVF8zID0gYmxraWQuc3RhdGljJChFWEVFWFQpCitAQlVJTERfTElCVVVJRF9UUlVFQGFtX19FWEVFWFRfNCA9IHV1aWRnZW4kKEVYRUVYVCkKK0BIQVZFX05DVVJTRVNfVFJVRUBATElOVVhfVFJVRUBhbV9fRVhFRVhUXzUgPSBzZXR0ZXJtJChFWEVFWFQpCitAQlVJTERfUkVOQU1FX1RSVUVAYW1fX0VYRUVYVF82ID0gcmVuYW1lJChFWEVFWFQpCitAQlVJTERfV1JJVEVfVFJVRUBhbV9fRVhFRVhUXzcgPSB3cml0ZSQoRVhFRVhUKQorQEJVSUxEX0xJQlVVSURfVFJVRUBAQlVJTERfVVVJRERfVFJVRUBhbV9fRVhFRVhUXzggPSB1dWlkZCQoRVhFRVhUKQorUFJPR1JBTVMgPSAkKGJpbl9QUk9HUkFNUykgJChzYmluX1BST0dSQU1TKSAkKHVzcmJpbl9leGVjX1BST0dSQU1TKSBcCisJJCh1c3JzYmluX2V4ZWNfUFJPR1JBTVMpCithbV9fYmxraWRfU09VUkNFU19ESVNUID0gYmxraWQuYyAkKHRvcF9zcmNkaXIpL2xpYi9pc21vdW50ZWQuYworQEJVSUxEX0xJQkJMS0lEX1RSVUVAYW1fYmxraWRfT0JKRUNUUyA9IGJsa2lkLWJsa2lkLiQoT0JKRVhUKSBcCitAQlVJTERfTElCQkxLSURfVFJVRUAJYmxraWQtaXNtb3VudGVkLiQoT0JKRVhUKQorYmxraWRfT0JKRUNUUyA9ICQoYW1fYmxraWRfT0JKRUNUUykKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQGJsa2lkX0RFUEVOREVOQ0lFUyA9ICQodWxfbGliYmxraWRfbGEpCitBTV9WX2x0ID0gJChhbV9fdl9sdF8kKFYpKQorYW1fX3ZfbHRfID0gJChhbV9fdl9sdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2x0XzAgPSAtLXNpbGVudAorYmxraWRfTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoYmxraWRfQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorYW1fX2Jsa2lkX3N0YXRpY19TT1VSQ0VTX0RJU1QgPSBibGtpZC5jICQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jCitAQlVJTERfTElCQkxLSURfVFJVRUBhbV9fb2JqZWN0c18xID0gYmxraWRfc3RhdGljLWJsa2lkLiQoT0JKRVhUKSBcCitAQlVJTERfTElCQkxLSURfVFJVRUAJYmxraWRfc3RhdGljLWlzbW91bnRlZC4kKE9CSkVYVCkKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQEBIQVZFX1NUQVRJQ19CTEtJRF9UUlVFQGFtX2Jsa2lkX3N0YXRpY19PQkpFQ1RTID0gIFwKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQEBIQVZFX1NUQVRJQ19CTEtJRF9UUlVFQAkkKGFtX19vYmplY3RzXzEpCitibGtpZF9zdGF0aWNfT0JKRUNUUyA9ICQoYW1fYmxraWRfc3RhdGljX09CSkVDVFMpCitAQlVJTERfTElCQkxLSURfVFJVRUBASEFWRV9TVEFUSUNfQkxLSURfVFJVRUBibGtpZF9zdGF0aWNfREVQRU5ERU5DSUVTID0gJCh1bF9saWJibGtpZF9sYSkKK2Jsa2lkX3N0YXRpY19MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChibGtpZF9zdGF0aWNfQ0ZMQUdTKSBcCisJJChDRkxBR1MpICQoYmxraWRfc3RhdGljX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK2NhbF9TT1VSQ0VTID0gY2FsLmMKK2NhbF9PQkpFQ1RTID0gY2FsLiQoT0JKRVhUKQorY2FsX0RFUEVOREVOQ0lFUyA9CitkZGF0ZV9TT1VSQ0VTID0gZGRhdGUuYworZGRhdGVfT0JKRUNUUyA9IGRkYXRlLiQoT0JKRVhUKQorZGRhdGVfTERBREQgPSAkKExEQUREKQorZmluZGZzX1NPVVJDRVMgPSBmaW5kZnMuYworZmluZGZzX09CSkVDVFMgPSBmaW5kZnMtZmluZGZzLiQoT0JKRVhUKQorQEJVSUxEX0xJQkJMS0lEX1RSVUVAZmluZGZzX0RFUEVOREVOQ0lFUyA9ICQodWxfbGliYmxraWRfbGEpCitmaW5kZnNfTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoZmluZGZzX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKEFNX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK2FtX19raWxsX1NPVVJDRVNfRElTVCA9IGtpbGwuYyBwcm9jcy5jIGtpbGwuaAorQEJVSUxEX0tJTExfVFJVRUBhbV9raWxsX09CSkVDVFMgPSBraWxsLiQoT0JKRVhUKSBwcm9jcy4kKE9CSkVYVCkKK2tpbGxfT0JKRUNUUyA9ICQoYW1fa2lsbF9PQkpFQ1RTKQora2lsbF9MREFERCA9ICQoTERBREQpCitsb2dnZXJfU09VUkNFUyA9IGxvZ2dlci5jCitsb2dnZXJfT0JKRUNUUyA9IGxvZ2dlci4kKE9CSkVYVCkKK2xvZ2dlcl9MREFERCA9ICQoTERBREQpCitsb29rX1NPVVJDRVMgPSBsb29rLmMKK2xvb2tfT0JKRUNUUyA9IGxvb2suJChPQkpFWFQpCitsb29rX0xEQUREID0gJChMREFERCkKK2FtX21jb29raWVfT0JKRUNUUyA9IG1jb29raWUuJChPQkpFWFQpIG1kNS4kKE9CSkVYVCkKK21jb29raWVfT0JKRUNUUyA9ICQoYW1fbWNvb2tpZV9PQkpFQ1RTKQorbWNvb2tpZV9MREFERCA9ICQoTERBREQpCituYW1laV9TT1VSQ0VTID0gbmFtZWkuYworbmFtZWlfT0JKRUNUUyA9IG5hbWVpLiQoT0JKRVhUKQorbmFtZWlfTERBREQgPSAkKExEQUREKQorcmVuYW1lX1NPVVJDRVMgPSByZW5hbWUuYworcmVuYW1lX09CSkVDVFMgPSByZW5hbWUuJChPQkpFWFQpCityZW5hbWVfTERBREQgPSAkKExEQUREKQorc2NyaXB0X1NPVVJDRVMgPSBzY3JpcHQuYworc2NyaXB0X09CSkVDVFMgPSBzY3JpcHQuJChPQkpFWFQpCitzY3JpcHRfREVQRU5ERU5DSUVTID0KK3NjcmlwdHJlcGxheV9TT1VSQ0VTID0gc2NyaXB0cmVwbGF5LmMKK3NjcmlwdHJlcGxheV9PQkpFQ1RTID0gc2NyaXB0cmVwbGF5LiQoT0JKRVhUKQorc2NyaXB0cmVwbGF5X0xEQUREID0gJChMREFERCkKK3NldHRlcm1fU09VUkNFUyA9IHNldHRlcm0uYworc2V0dGVybV9PQkpFQ1RTID0gc2V0dGVybS4kKE9CSkVYVCkKK3NldHRlcm1fREVQRU5ERU5DSUVTID0KK3V1aWRkX1NPVVJDRVMgPSB1dWlkZC5jCit1dWlkZF9PQkpFQ1RTID0gdXVpZGQtdXVpZGQuJChPQkpFWFQpCitAQlVJTERfTElCVVVJRF9UUlVFQEBCVUlMRF9VVUlERF9UUlVFQHV1aWRkX0RFUEVOREVOQ0lFUyA9ICBcCitAQlVJTERfTElCVVVJRF9UUlVFQEBCVUlMRF9VVUlERF9UUlVFQAkkKHVsX2xpYnV1aWRfbGEpCit1dWlkZF9MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJCh1dWlkZF9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACit1dWlkZ2VuX1NPVVJDRVMgPSB1dWlkZ2VuLmMKK3V1aWRnZW5fT0JKRUNUUyA9IHV1aWRnZW4tdXVpZGdlbi4kKE9CSkVYVCkKK0BCVUlMRF9MSUJVVUlEX1RSVUVAdXVpZGdlbl9ERVBFTkRFTkNJRVMgPSAkKHVsX2xpYnV1aWRfbGEpCit1dWlkZ2VuX0xJTksgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKHV1aWRnZW5fQ0ZMQUdTKSBcCisJJChDRkxBR1MpICQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAord2hlcmVpc19TT1VSQ0VTID0gd2hlcmVpcy5jCit3aGVyZWlzX09CSkVDVFMgPSB3aGVyZWlzLiQoT0JKRVhUKQord2hlcmVpc19MREFERCA9ICQoTERBREQpCit3aXBlZnNfU09VUkNFUyA9IHdpcGVmcy5jCit3aXBlZnNfT0JKRUNUUyA9IHdpcGVmcy13aXBlZnMuJChPQkpFWFQpCitAQlVJTERfTElCQkxLSURfVFJVRUB3aXBlZnNfREVQRU5ERU5DSUVTID0gJCh1bF9saWJibGtpZF9sYSkKK3dpcGVmc19MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJCh3aXBlZnNfQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAord3JpdGVfU09VUkNFUyA9IHdyaXRlLmMKK3dyaXRlX09CSkVDVFMgPSB3cml0ZS13cml0ZS4kKE9CSkVYVCkKK3dyaXRlX0xEQUREID0gJChMREFERCkKK3dyaXRlX0xJTksgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKHdyaXRlX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKHdyaXRlX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK2FtX19kaXN0X3VzcmJpbl9leGVjX1NDUklQVFNfRElTVCA9IHJlc2V0CithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCitTQ1JJUFRTID0gJChkaXN0X3VzcmJpbl9leGVjX1NDUklQVFMpICQodXNyYmluX2V4ZWNfU0NSSVBUUykKK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpCitkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKK2FtX19tdiA9IG12IC1mCitDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitMVENPTVBJTEUgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSBcCisJJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSBcCisJJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorQU1fVl9DQyA9ICQoYW1fX3ZfQ0NfJChWKSkKK2FtX192X0NDXyA9ICQoYW1fX3ZfQ0NfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ18wID0gQGVjaG8gIiAgQ0MgICAgIiAkQDsKK0FNX1ZfYXQgPSAkKGFtX192X2F0XyQoVikpCithbV9fdl9hdF8gPSAkKGFtX192X2F0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfYXRfMCA9IEAKK0NDTEQgPSAkKENDKQorTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorQU1fVl9DQ0xEID0gJChhbV9fdl9DQ0xEXyQoVikpCithbV9fdl9DQ0xEXyA9ICQoYW1fX3ZfQ0NMRF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDTERfMCA9IEBlY2hvICIgIENDTEQgICIgJEA7CitBTV9WX0dFTiA9ICQoYW1fX3ZfR0VOXyQoVikpCithbV9fdl9HRU5fID0gJChhbV9fdl9HRU5fJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9HRU5fMCA9IEBlY2hvICIgIEdFTiAgICIgJEA7CitTT1VSQ0VTID0gJChibGtpZF9TT1VSQ0VTKSAkKGJsa2lkX3N0YXRpY19TT1VSQ0VTKSBjYWwuYyBkZGF0ZS5jIFwKKwlmaW5kZnMuYyAkKGtpbGxfU09VUkNFUykgbG9nZ2VyLmMgbG9vay5jICQobWNvb2tpZV9TT1VSQ0VTKSBcCisJbmFtZWkuYyByZW5hbWUuYyBzY3JpcHQuYyBzY3JpcHRyZXBsYXkuYyBzZXR0ZXJtLmMgdXVpZGQuYyBcCisJdXVpZGdlbi5jIHdoZXJlaXMuYyB3aXBlZnMuYyB3cml0ZS5jCitESVNUX1NPVVJDRVMgPSAkKGFtX19ibGtpZF9TT1VSQ0VTX0RJU1QpIFwKKwkkKGFtX19ibGtpZF9zdGF0aWNfU09VUkNFU19ESVNUKSBjYWwuYyBkZGF0ZS5jIGZpbmRmcy5jIFwKKwkkKGFtX19raWxsX1NPVVJDRVNfRElTVCkgbG9nZ2VyLmMgbG9vay5jICQobWNvb2tpZV9TT1VSQ0VTKSBcCisJbmFtZWkuYyByZW5hbWUuYyBzY3JpcHQuYyBzY3JpcHRyZXBsYXkuYyBzZXR0ZXJtLmMgdXVpZGQuYyBcCisJdXVpZGdlbi5jIHdoZXJlaXMuYyB3aXBlZnMuYyB3cml0ZS5jCittYW4xZGlyID0gJChtYW5kaXIpL21hbjEKK21hbjhkaXIgPSAkKG1hbmRpcikvbWFuOAorTlJPRkYgPSBucm9mZgorTUFOUyA9ICQoZGlzdF9tYW5fTUFOUykKK2FtX19kaXN0X25vaW5zdF9EQVRBX0RJU1QgPSBjYWwuMSBjaGtkdXBleGUuMSBkZGF0ZS4xIGxvZ2dlci4xIGxvb2suMSBcCisJbWNvb2tpZS4xIG5hbWVpLjEgc2NyaXB0LjEgd2hlcmVpcy4xIHNjcmlwdHJlcGxheS4xIHV1aWRnZW4uMSBcCisJdXVpZGQuOCBibGtpZC44IGZpbmRmcy44IHdpcGVmcy44IHNldHRlcm0uMSBraWxsLjEgcmVuYW1lLjEgXAorCXJlc2V0LjEgd3JpdGUuMQorREFUQSA9ICQoZGlzdF9ub2luc3RfREFUQSkKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitFWFRSQV9ESVNUID0gUkVBRE1FLmZsdXNoYiB1dWlkZC5yYyBSRUFETUUuY2FsIFJFQURNRS5kZGF0ZSBcCisJUkVBRE1FLm5hbWVpIFJFQURNRS5uYW1laTIgUkVBRE1FLnJlc2V0IHJlc2V0LjAzM2MKK21jb29raWVfU09VUkNFUyA9IG1jb29raWUuYyAuLi9saWIvbWQ1LmMKK3VzcmJpbl9leGVjX1NDUklQVFMgPSBjaGtkdXBleGUKK0NMRUFORklMRVMgPSBjaGtkdXBleGUKK2Rpc3RfbWFuX01BTlMgPSBjYWwuMSBjaGtkdXBleGUuMSBkZGF0ZS4xIGxvZ2dlci4xIGxvb2suMSBtY29va2llLjEgXAorCW5hbWVpLjEgc2NyaXB0LjEgd2hlcmVpcy4xIHNjcmlwdHJlcGxheS4xICQoYW1fX2FwcGVuZF8yKSBcCisJJChhbV9fYXBwZW5kXzQpICQoYW1fX2FwcGVuZF82KSAkKGFtX19hcHBlbmRfOSkgXAorCSQoYW1fX2FwcGVuZF8xMSkgJChhbV9fYXBwZW5kXzEzKSAkKGFtX19hcHBlbmRfMTQpIFwKKwkkKGFtX19hcHBlbmRfMTYpCitAQlVJTERfTElCVVVJRF9UUlVFQHV1aWRnZW5fTERBREQgPSAkKHVsX2xpYnV1aWRfbGEpCitAQlVJTERfTElCVVVJRF9UUlVFQHV1aWRnZW5fQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1JJCh1bF9saWJ1dWlkX3NyY2RpcikKK0BCVUlMRF9MSUJVVUlEX1RSVUVAQEJVSUxEX1VVSUREX1RSVUVAdXVpZGRfTERBREQgPSAkKHVsX2xpYnV1aWRfbGEpCitAQlVJTERfTElCVVVJRF9UUlVFQEBCVUlMRF9VVUlERF9UUlVFQHV1aWRkX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtSSQodWxfbGlidXVpZF9zcmNkaXIpCitAQlVJTERfTElCQkxLSURfVFJVRUBibGtpZF9TT1VSQ0VTID0gYmxraWQuYyAkKHRvcF9zcmNkaXIpL2xpYi9pc21vdW50ZWQuYworQEJVSUxEX0xJQkJMS0lEX1RSVUVAYmxraWRfTERBREQgPSAkKHVsX2xpYmJsa2lkX2xhKQorQEJVSUxEX0xJQkJMS0lEX1RSVUVAYmxraWRfQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1JJCh1bF9saWJibGtpZF9pbmNkaXIpCitAQlVJTERfTElCQkxLSURfVFJVRUBmaW5kZnNfTERBREQgPSAkKHVsX2xpYmJsa2lkX2xhKQorQEJVSUxEX0xJQkJMS0lEX1RSVUVAZmluZGZzX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtSSQodWxfbGliYmxraWRfaW5jZGlyKQorQEJVSUxEX0xJQkJMS0lEX1RSVUVAd2lwZWZzX0xEQUREID0gJCh1bF9saWJibGtpZF9sYSkKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQHdpcGVmc19DRkxBR1MgPSAkKEFNX0NGTEFHUykgLUkkKHVsX2xpYmJsa2lkX2luY2RpcikKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQEBIQVZFX1NUQVRJQ19CTEtJRF9UUlVFQGJsa2lkX3N0YXRpY19TT1VSQ0VTID0gJChibGtpZF9TT1VSQ0VTKQorQEJVSUxEX0xJQkJMS0lEX1RSVUVAQEhBVkVfU1RBVElDX0JMS0lEX1RSVUVAYmxraWRfc3RhdGljX0xERkxBR1MgPSAtYWxsLXN0YXRpYworQEJVSUxEX0xJQkJMS0lEX1RSVUVAQEhBVkVfU1RBVElDX0JMS0lEX1RSVUVAYmxraWRfc3RhdGljX0xEQUREID0gJCh1bF9saWJibGtpZF9sYSkKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQEBIQVZFX1NUQVRJQ19CTEtJRF9UUlVFQGJsa2lkX3N0YXRpY19DRkxBR1MgPSAkKEFNX0NGTEFHUykgLUkkKHVsX2xpYmJsa2lkX2luY2RpcikKK0BIQVZFX05DVVJTRVNfRkFMU0VAQEhBVkVfVEVSTUNBUF9UUlVFQEBIQVZFX1RJTkZPX0ZBTFNFQGNhbF9MREFERCA9IC1sdGVybWNhcAorQEhBVkVfTkNVUlNFU19UUlVFQEBIQVZFX1RJTkZPX0ZBTFNFQGNhbF9MREFERCA9IEBOQ1VSU0VTX0xJQlNACitASEFWRV9USU5GT19UUlVFQGNhbF9MREFERCA9IC1sdGluZm8gQE5DVVJTRVNfTElCU0AKK0BIQVZFX1VUSUxfVFJVRUBzY3JpcHRfTERBREQgPSAtbHV0aWwKK0BIQVZFX05DVVJTRVNfVFJVRUBASEFWRV9USU5GT19GQUxTRUBzZXR0ZXJtX0xEQUREID0gQE5DVVJTRVNfTElCU0AKK0BIQVZFX05DVVJTRVNfVFJVRUBASEFWRV9USU5GT19UUlVFQHNldHRlcm1fTERBREQgPSAtbHRpbmZvCitAQlVJTERfS0lMTF9UUlVFQGtpbGxfU09VUkNFUyA9IGtpbGwuYyBwcm9jcy5jIGtpbGwuaAorQEJVSUxEX1JFU0VUX1RSVUVAZGlzdF91c3JiaW5fZXhlY19TQ1JJUFRTID0gcmVzZXQKK0BCVUlMRF9XUklURV9UUlVFQHdyaXRlX0NGTEFHUyA9ICQoU1VJRF9DRkxBR1MpICQoQU1fQ0ZMQUdTKQorQEJVSUxEX1dSSVRFX1RSVUVAd3JpdGVfTERGTEFHUyA9ICQoU1VJRF9MREZMQUdTKSAkKEFNX0xERkxBR1MpCithbGw6IGFsbC1hbQorCisuU1VGRklYRVM6CisuU1VGRklYRVM6IC5jIC5sbyAubyAub2JqCiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gbWlzYy11dGlscy9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gbWlzYy11dGlscy9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CitjaGtkdXBleGU6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9jaGtkdXBleGUucGwKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQAoraW5zdGFsbC1iaW5QUk9HUkFNUzogJChiaW5fUFJPR1JBTVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChiaW5kaXIpIgorCUBsaXN0PSckKGJpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJChiaW5kaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQoYmluZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAorCSAgICB9IFwKKwk7IGRvbmUKKwordW5pbnN0YWxsLWJpblBST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoYmluZGlyKSIgfHwgbGlzdD07IFwKKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgXAorCSAgc2VkIC1lICdoO3MsXi4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSknIFwKKwkgICAgICAtZSAncy8kJC8kKEVYRUVYVCkvJyBgOyBcCisJdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQoYmluZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKGJpbmRpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tYmluUFJPR1JBTVM6CisJQGxpc3Q9JyQoYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAoraW5zdGFsbC1zYmluUFJPR1JBTVM6ICQoc2Jpbl9QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHNiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChzYmluZGlyKSIKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoc2JpbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJChzYmluZGlyKSQkZGlyJyI7IFwKKwkgICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgIiQoREVTVERJUikkKHNiaW5kaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtc2JpblBST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoc2Jpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHNiaW5kaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChzYmluZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHNiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK2NsZWFuLXNiaW5QUk9HUkFNUzoKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAoraW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TOiAkKHVzcmJpbl9leGVjX1BST0dSQU1TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQodXNyYmluX2V4ZWNkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiCisJQGxpc3Q9JyQodXNyYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCh1c3JiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikkJGRpciciOyBcCisJICAgICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgfSBcCisJOyBkb25lCisKK3VuaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQodXNyYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCh1c3JiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKwkgIHNlZCAtZSAnaDtzLF4uKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pJyBcCisJICAgICAgLWUgJ3MvJCQvJChFWEVFWFQpLycgYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworCitjbGVhbi11c3JiaW5fZXhlY1BST0dSQU1TOgorCUBsaXN0PSckKHVzcmJpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAoraW5zdGFsbC11c3JzYmluX2V4ZWNQUk9HUkFNUzogJCh1c3JzYmluX2V4ZWNfUFJPR1JBTVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJCh1c3JzYmluX2V4ZWNkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpIgorCUBsaXN0PSckKHVzcnNiaW5fZXhlY19QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHVzcnNiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAorCSAgICB9IFwKKwk7IGRvbmUKKwordW5pbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQodXNyc2Jpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyc2Jpbl9leGVjZGlyKSIgfHwgbGlzdD07IFwKKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgXAorCSAgc2VkIC1lICdoO3MsXi4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSknIFwKKwkgICAgICAtZSAncy8kJC8kKEVYRUVYVCkvJyBgOyBcCisJdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tdXNyc2Jpbl9leGVjUFJPR1JBTVM6CisJQGxpc3Q9JyQodXNyc2Jpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAorYmxraWQkKEVYRUVYVCk6ICQoYmxraWRfT0JKRUNUUykgJChibGtpZF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBibGtpZCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoYmxraWRfTElOSykgJChibGtpZF9PQkpFQ1RTKSAkKGJsa2lkX0xEQUREKSAkKExJQlMpCitibGtpZC5zdGF0aWMkKEVYRUVYVCk6ICQoYmxraWRfc3RhdGljX09CSkVDVFMpICQoYmxraWRfc3RhdGljX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGJsa2lkLnN0YXRpYyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoYmxraWRfc3RhdGljX0xJTkspICQoYmxraWRfc3RhdGljX09CSkVDVFMpICQoYmxraWRfc3RhdGljX0xEQUREKSAkKExJQlMpCitjYWwkKEVYRUVYVCk6ICQoY2FsX09CSkVDVFMpICQoY2FsX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGNhbCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChjYWxfT0JKRUNUUykgJChjYWxfTERBREQpICQoTElCUykKK2RkYXRlJChFWEVFWFQpOiAkKGRkYXRlX09CSkVDVFMpICQoZGRhdGVfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgZGRhdGUkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoZGRhdGVfT0JKRUNUUykgJChkZGF0ZV9MREFERCkgJChMSUJTKQorZmluZGZzJChFWEVFWFQpOiAkKGZpbmRmc19PQkpFQ1RTKSAkKGZpbmRmc19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBmaW5kZnMkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKGZpbmRmc19MSU5LKSAkKGZpbmRmc19PQkpFQ1RTKSAkKGZpbmRmc19MREFERCkgJChMSUJTKQora2lsbCQoRVhFRVhUKTogJChraWxsX09CSkVDVFMpICQoa2lsbF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBraWxsJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGtpbGxfT0JKRUNUUykgJChraWxsX0xEQUREKSAkKExJQlMpCitsb2dnZXIkKEVYRUVYVCk6ICQobG9nZ2VyX09CSkVDVFMpICQobG9nZ2VyX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGxvZ2dlciQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChsb2dnZXJfT0JKRUNUUykgJChsb2dnZXJfTERBREQpICQoTElCUykKK2xvb2skKEVYRUVYVCk6ICQobG9va19PQkpFQ1RTKSAkKGxvb2tfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgbG9vayQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChsb29rX09CSkVDVFMpICQobG9va19MREFERCkgJChMSUJTKQorbWNvb2tpZSQoRVhFRVhUKTogJChtY29va2llX09CSkVDVFMpICQobWNvb2tpZV9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBtY29va2llJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKG1jb29raWVfT0JKRUNUUykgJChtY29va2llX0xEQUREKSAkKExJQlMpCituYW1laSQoRVhFRVhUKTogJChuYW1laV9PQkpFQ1RTKSAkKG5hbWVpX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIG5hbWVpJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKG5hbWVpX09CSkVDVFMpICQobmFtZWlfTERBREQpICQoTElCUykKK3JlbmFtZSQoRVhFRVhUKTogJChyZW5hbWVfT0JKRUNUUykgJChyZW5hbWVfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgcmVuYW1lJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHJlbmFtZV9PQkpFQ1RTKSAkKHJlbmFtZV9MREFERCkgJChMSUJTKQorc2NyaXB0JChFWEVFWFQpOiAkKHNjcmlwdF9PQkpFQ1RTKSAkKHNjcmlwdF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBzY3JpcHQkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoc2NyaXB0X09CSkVDVFMpICQoc2NyaXB0X0xEQUREKSAkKExJQlMpCitzY3JpcHRyZXBsYXkkKEVYRUVYVCk6ICQoc2NyaXB0cmVwbGF5X09CSkVDVFMpICQoc2NyaXB0cmVwbGF5X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHNjcmlwdHJlcGxheSQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChzY3JpcHRyZXBsYXlfT0JKRUNUUykgJChzY3JpcHRyZXBsYXlfTERBREQpICQoTElCUykKK3NldHRlcm0kKEVYRUVYVCk6ICQoc2V0dGVybV9PQkpFQ1RTKSAkKHNldHRlcm1fREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgc2V0dGVybSQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChzZXR0ZXJtX09CSkVDVFMpICQoc2V0dGVybV9MREFERCkgJChMSUJTKQordXVpZGQkKEVYRUVYVCk6ICQodXVpZGRfT0JKRUNUUykgJCh1dWlkZF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB1dWlkZCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQodXVpZGRfTElOSykgJCh1dWlkZF9PQkpFQ1RTKSAkKHV1aWRkX0xEQUREKSAkKExJQlMpCit1dWlkZ2VuJChFWEVFWFQpOiAkKHV1aWRnZW5fT0JKRUNUUykgJCh1dWlkZ2VuX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHV1aWRnZW4kKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKHV1aWRnZW5fTElOSykgJCh1dWlkZ2VuX09CSkVDVFMpICQodXVpZGdlbl9MREFERCkgJChMSUJTKQord2hlcmVpcyQoRVhFRVhUKTogJCh3aGVyZWlzX09CSkVDVFMpICQod2hlcmVpc19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB3aGVyZWlzJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHdoZXJlaXNfT0JKRUNUUykgJCh3aGVyZWlzX0xEQUREKSAkKExJQlMpCit3aXBlZnMkKEVYRUVYVCk6ICQod2lwZWZzX09CSkVDVFMpICQod2lwZWZzX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHdpcGVmcyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQod2lwZWZzX0xJTkspICQod2lwZWZzX09CSkVDVFMpICQod2lwZWZzX0xEQUREKSAkKExJQlMpCit3cml0ZSQoRVhFRVhUKTogJCh3cml0ZV9PQkpFQ1RTKSAkKHdyaXRlX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHdyaXRlJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJCh3cml0ZV9MSU5LKSAkKHdyaXRlX09CSkVDVFMpICQod3JpdGVfTERBREQpICQoTElCUykKK2luc3RhbGwtZGlzdF91c3JiaW5fZXhlY1NDUklQVFM6ICQoZGlzdF91c3JiaW5fZXhlY19TQ1JJUFRTKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQodXNyYmluX2V4ZWNkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiCisJQGxpc3Q9JyQoZGlzdF91c3JiaW5fZXhlY19TQ1JJUFRTKSc7IHRlc3QgLW4gIiQodXNyYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGlmIHRlc3QgLWYgIiQkZCQkcCI7IHRoZW4gZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bicgXAorCSAgICAtZSAnaDtzfC4qfC58JyBcCisJICAgIC1lICdwO3g7cywuKi8sLDskKHRyYW5zZm9ybSknIHwgc2VkICdOO047TjtzLFxuLCAsZycgfCBcCisJJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIjsgZGlyc1siLiJdID0gMTsgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSB7IGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAorCSAgICAgIGlmICgrK25bZF0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSB7IFwKKwkJcHJpbnQgImYiLCBkLCBmaWxlc1tkXTsgbltkXSA9IDA7IGZpbGVzW2RdID0gIiIgfSB9IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgZCAiLyIgJCQ0LCAkJDEgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKKwkgICAgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICAgICBlY2hvICIgJChJTlNUQUxMX1NDUklQVCkgJCRmaWxlcyAnJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpJCRkaXInIjsgXAorCSAgICAgICAkKElOU1RBTExfU0NSSVBUKSAkJGZpbGVzICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtZGlzdF91c3JiaW5fZXhlY1NDUklQVFM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChkaXN0X3VzcmJpbl9leGVjX1NDUklQVFMpJzsgdGVzdCAtbiAiJCh1c3JiaW5fZXhlY2RpcikiIHx8IGV4aXQgMDsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICAgICAgIHNlZCAtZSAncywuKi8sLDskKHRyYW5zZm9ybSknYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworaW5zdGFsbC11c3JiaW5fZXhlY1NDUklQVFM6ICQodXNyYmluX2V4ZWNfU0NSSVBUUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHVzcmJpbl9leGVjZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpIgorCUBsaXN0PSckKHVzcmJpbl9leGVjX1NDUklQVFMpJzsgdGVzdCAtbiAiJCh1c3JiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ3A7cywuKi8sLDtuJyBcCisJICAgIC1lICdoO3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsOyQodHJhbnNmb3JtKScgfCBzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxOyB9IFwKKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKwkgICAgaWYgKCQkMiA9PSAkJDQpIHsgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgICAgaWYgKCsrbltkXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIHsgXAorCQlwcmludCAiZiIsIGQsIGZpbGVzW2RdOyBuW2RdID0gMDsgZmlsZXNbZF0gPSAiIiB9IH0gXAorCSAgICBlbHNlIHsgcHJpbnQgImYiLCBkICIvIiAkJDQsICQkMSB9IH0gXAorCSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAorCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKwkgICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgICAgIGVjaG8gIiAkKElOU1RBTExfU0NSSVBUKSAkJGZpbGVzICckKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikkJGRpciciOyBcCisJICAgICAgICQoSU5TVEFMTF9TQ1JJUFQpICQkZmlsZXMgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAorCSAgICAgfSBcCisJOyBkb25lCisKK3VuaW5zdGFsbC11c3JiaW5fZXhlY1NDUklQVFM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJCh1c3JiaW5fZXhlY19TQ1JJUFRTKSc7IHRlc3QgLW4gIiQodXNyYmluX2V4ZWNkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgXAorCSAgICAgICBzZWQgLWUgJ3MsLiovLCw7JCh0cmFuc2Zvcm0pJ2A7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICYmIHJtIC1mICQkZmlsZXMKKworbW9zdGx5Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi4kKE9CSkVYVCkKKworZGlzdGNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICoudGFiLmMKKworQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2Jsa2lkLWJsa2lkLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ibGtpZC1pc21vdW50ZWQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2Jsa2lkX3N0YXRpYy1ibGtpZC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvYmxraWRfc3RhdGljLWlzbW91bnRlZC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY2FsLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9kZGF0ZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZmluZGZzLWZpbmRmcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikva2lsbC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbG9nZ2VyLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9sb29rLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tY29va2llLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tZDUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL25hbWVpLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9wcm9jcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcmVuYW1lLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zY3JpcHQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3NjcmlwdHJlcGxheS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc2V0dGVybS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdXVpZGQtdXVpZGQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3V1aWRnZW4tdXVpZGdlbi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvd2hlcmVpcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvd2lwZWZzLXdpcGVmcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvd3JpdGUtd3JpdGUuUG9AYW1fX3F1b3RlQAorCisuYy5vOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyAkPAorCisuYy5vYmo6CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgYCQoQ1lHUEFUSF9XKSAnJDwnYAorCisuYy5sbzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKExUQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKExUQ09NUElMRSkgLWMgLW8gJEAgJDwKKworYmxraWQtYmxraWQubzogYmxraWQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGJsa2lkX0NGTEFHUykgJChDRkxBR1MpIC1NVCBibGtpZC1ibGtpZC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9ibGtpZC1ibGtpZC5UcG8gLWMgLW8gYmxraWQtYmxraWQubyBgdGVzdCAtZiAnYmxraWQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgYmxraWQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvYmxraWQtYmxraWQuVHBvICQoREVQRElSKS9ibGtpZC1ibGtpZC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2Jsa2lkLmMnIG9iamVjdD0nYmxraWQtYmxraWQubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoYmxraWRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gYmxraWQtYmxraWQubyBgdGVzdCAtZiAnYmxraWQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgYmxraWQuYworCitibGtpZC1ibGtpZC5vYmo6IGJsa2lkLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChibGtpZF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgYmxraWQtYmxraWQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9ibGtpZC1ibGtpZC5UcG8gLWMgLW8gYmxraWQtYmxraWQub2JqIGBpZiB0ZXN0IC1mICdibGtpZC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2Jsa2lkLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Jsa2lkLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2Jsa2lkLWJsa2lkLlRwbyAkKERFUERJUikvYmxraWQtYmxraWQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdibGtpZC5jJyBvYmplY3Q9J2Jsa2lkLWJsa2lkLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoYmxraWRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gYmxraWQtYmxraWQub2JqIGBpZiB0ZXN0IC1mICdibGtpZC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2Jsa2lkLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Jsa2lkLmMnOyBmaWAKKworYmxraWQtaXNtb3VudGVkLm86ICQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoYmxraWRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGJsa2lkLWlzbW91bnRlZC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9ibGtpZC1pc21vdW50ZWQuVHBvIC1jIC1vIGJsa2lkLWlzbW91bnRlZC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL2xpYi9pc21vdW50ZWQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2Jsa2lkLWlzbW91bnRlZC5UcG8gJChERVBESVIpL2Jsa2lkLWlzbW91bnRlZC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jJyBvYmplY3Q9J2Jsa2lkLWlzbW91bnRlZC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChibGtpZF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBibGtpZC1pc21vdW50ZWQubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jCisKK2Jsa2lkLWlzbW91bnRlZC5vYmo6ICQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoYmxraWRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGJsa2lkLWlzbW91bnRlZC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2Jsa2lkLWlzbW91bnRlZC5UcG8gLWMgLW8gYmxraWQtaXNtb3VudGVkLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9ibGtpZC1pc21vdW50ZWQuVHBvICQoREVQRElSKS9ibGtpZC1pc21vdW50ZWQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL2xpYi9pc21vdW50ZWQuYycgb2JqZWN0PSdibGtpZC1pc21vdW50ZWQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChibGtpZF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBibGtpZC1pc21vdW50ZWQub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL2xpYi9pc21vdW50ZWQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL2xpYi9pc21vdW50ZWQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnOyBmaWAKKworYmxraWRfc3RhdGljLWJsa2lkLm86IGJsa2lkLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChibGtpZF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGJsa2lkX3N0YXRpYy1ibGtpZC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9ibGtpZF9zdGF0aWMtYmxraWQuVHBvIC1jIC1vIGJsa2lkX3N0YXRpYy1ibGtpZC5vIGB0ZXN0IC1mICdibGtpZC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BibGtpZC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9ibGtpZF9zdGF0aWMtYmxraWQuVHBvICQoREVQRElSKS9ibGtpZF9zdGF0aWMtYmxraWQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdibGtpZC5jJyBvYmplY3Q9J2Jsa2lkX3N0YXRpYy1ibGtpZC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChibGtpZF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gYmxraWRfc3RhdGljLWJsa2lkLm8gYHRlc3QgLWYgJ2Jsa2lkLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGJsa2lkLmMKKworYmxraWRfc3RhdGljLWJsa2lkLm9iajogYmxraWQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGJsa2lkX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgYmxraWRfc3RhdGljLWJsa2lkLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvYmxraWRfc3RhdGljLWJsa2lkLlRwbyAtYyAtbyBibGtpZF9zdGF0aWMtYmxraWQub2JqIGBpZiB0ZXN0IC1mICdibGtpZC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2Jsa2lkLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Jsa2lkLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2Jsa2lkX3N0YXRpYy1ibGtpZC5UcG8gJChERVBESVIpL2Jsa2lkX3N0YXRpYy1ibGtpZC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2Jsa2lkLmMnIG9iamVjdD0nYmxraWRfc3RhdGljLWJsa2lkLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoYmxraWRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGJsa2lkX3N0YXRpYy1ibGtpZC5vYmogYGlmIHRlc3QgLWYgJ2Jsa2lkLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnYmxraWQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvYmxraWQuYyc7IGZpYAorCitibGtpZF9zdGF0aWMtaXNtb3VudGVkLm86ICQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoYmxraWRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBibGtpZF9zdGF0aWMtaXNtb3VudGVkLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2Jsa2lkX3N0YXRpYy1pc21vdW50ZWQuVHBvIC1jIC1vIGJsa2lkX3N0YXRpYy1pc21vdW50ZWQubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9ibGtpZF9zdGF0aWMtaXNtb3VudGVkLlRwbyAkKERFUERJUikvYmxraWRfc3RhdGljLWlzbW91bnRlZC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jJyBvYmplY3Q9J2Jsa2lkX3N0YXRpYy1pc21vdW50ZWQubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoYmxraWRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGJsa2lkX3N0YXRpYy1pc21vdW50ZWQubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jCisKK2Jsa2lkX3N0YXRpYy1pc21vdW50ZWQub2JqOiAkKHRvcF9zcmNkaXIpL2xpYi9pc21vdW50ZWQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGJsa2lkX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgYmxraWRfc3RhdGljLWlzbW91bnRlZC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2Jsa2lkX3N0YXRpYy1pc21vdW50ZWQuVHBvIC1jIC1vIGJsa2lkX3N0YXRpYy1pc21vdW50ZWQub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL2xpYi9pc21vdW50ZWQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL2xpYi9pc21vdW50ZWQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2Jsa2lkX3N0YXRpYy1pc21vdW50ZWQuVHBvICQoREVQRElSKS9ibGtpZF9zdGF0aWMtaXNtb3VudGVkLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnIG9iamVjdD0nYmxraWRfc3RhdGljLWlzbW91bnRlZC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGJsa2lkX3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBibGtpZF9zdGF0aWMtaXNtb3VudGVkLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9saWIvaXNtb3VudGVkLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2RpcikvbGliL2lzbW91bnRlZC5jJzsgZmlgCisKK2ZpbmRmcy1maW5kZnMubzogZmluZGZzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmaW5kZnNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGZpbmRmcy1maW5kZnMubyAtTUQgLU1QIC1NRiAkKERFUERJUikvZmluZGZzLWZpbmRmcy5UcG8gLWMgLW8gZmluZGZzLWZpbmRmcy5vIGB0ZXN0IC1mICdmaW5kZnMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmluZGZzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2ZpbmRmcy1maW5kZnMuVHBvICQoREVQRElSKS9maW5kZnMtZmluZGZzLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZmluZGZzLmMnIG9iamVjdD0nZmluZGZzLWZpbmRmcy5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChmaW5kZnNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gZmluZGZzLWZpbmRmcy5vIGB0ZXN0IC1mICdmaW5kZnMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZmluZGZzLmMKKworZmluZGZzLWZpbmRmcy5vYmo6IGZpbmRmcy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmluZGZzX0NGTEFHUykgJChDRkxBR1MpIC1NVCBmaW5kZnMtZmluZGZzLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvZmluZGZzLWZpbmRmcy5UcG8gLWMgLW8gZmluZGZzLWZpbmRmcy5vYmogYGlmIHRlc3QgLWYgJ2ZpbmRmcy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZpbmRmcy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9maW5kZnMuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvZmluZGZzLWZpbmRmcy5UcG8gJChERVBESVIpL2ZpbmRmcy1maW5kZnMuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmaW5kZnMuYycgb2JqZWN0PSdmaW5kZnMtZmluZGZzLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoZmluZGZzX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGZpbmRmcy1maW5kZnMub2JqIGBpZiB0ZXN0IC1mICdmaW5kZnMuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmaW5kZnMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZmluZGZzLmMnOyBmaWAKKworbWQ1Lm86IC4uL2xpYi9tZDUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtZDUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbWQ1LlRwbyAtYyAtbyBtZDUubyBgdGVzdCAtZiAnLi4vbGliL21kNS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvbWQ1LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21kNS5UcG8gJChERVBESVIpL21kNS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9tZDUuYycgb2JqZWN0PSdtZDUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbWQ1Lm8gYHRlc3QgLWYgJy4uL2xpYi9tZDUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL21kNS5jCisKK21kNS5vYmo6IC4uL2xpYi9tZDUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtZDUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tZDUuVHBvIC1jIC1vIG1kNS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9tZDUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvbWQ1LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9tZDUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbWQ1LlRwbyAkKERFUERJUikvbWQ1LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL21kNS5jJyBvYmplY3Q9J21kNS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1kNS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9tZDUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvbWQ1LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9tZDUuYyc7IGZpYAorCit1dWlkZC11dWlkZC5vOiB1dWlkZC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodXVpZGRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHV1aWRkLXV1aWRkLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3V1aWRkLXV1aWRkLlRwbyAtYyAtbyB1dWlkZC11dWlkZC5vIGB0ZXN0IC1mICd1dWlkZC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B1dWlkZC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91dWlkZC11dWlkZC5UcG8gJChERVBESVIpL3V1aWRkLXV1aWRkLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0ndXVpZGQuYycgb2JqZWN0PSd1dWlkZC11dWlkZC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1dWlkZF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1dWlkZC11dWlkZC5vIGB0ZXN0IC1mICd1dWlkZC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B1dWlkZC5jCisKK3V1aWRkLXV1aWRkLm9iajogdXVpZGQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHV1aWRkX0NGTEFHUykgJChDRkxBR1MpIC1NVCB1dWlkZC11dWlkZC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3V1aWRkLXV1aWRkLlRwbyAtYyAtbyB1dWlkZC11dWlkZC5vYmogYGlmIHRlc3QgLWYgJ3V1aWRkLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAndXVpZGQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvdXVpZGQuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdXVpZGQtdXVpZGQuVHBvICQoREVQRElSKS91dWlkZC11dWlkZC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3V1aWRkLmMnIG9iamVjdD0ndXVpZGQtdXVpZGQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1dWlkZF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1dWlkZC11dWlkZC5vYmogYGlmIHRlc3QgLWYgJ3V1aWRkLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAndXVpZGQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvdXVpZGQuYyc7IGZpYAorCit1dWlkZ2VuLXV1aWRnZW4ubzogdXVpZGdlbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodXVpZGdlbl9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdXVpZGdlbi11dWlkZ2VuLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3V1aWRnZW4tdXVpZGdlbi5UcG8gLWMgLW8gdXVpZGdlbi11dWlkZ2VuLm8gYHRlc3QgLWYgJ3V1aWRnZW4uYycgfHwgZWNobyAnJChzcmNkaXIpLydgdXVpZGdlbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91dWlkZ2VuLXV1aWRnZW4uVHBvICQoREVQRElSKS91dWlkZ2VuLXV1aWRnZW4uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd1dWlkZ2VuLmMnIG9iamVjdD0ndXVpZGdlbi11dWlkZ2VuLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHV1aWRnZW5fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdXVpZGdlbi11dWlkZ2VuLm8gYHRlc3QgLWYgJ3V1aWRnZW4uYycgfHwgZWNobyAnJChzcmNkaXIpLydgdXVpZGdlbi5jCisKK3V1aWRnZW4tdXVpZGdlbi5vYmo6IHV1aWRnZW4uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHV1aWRnZW5fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHV1aWRnZW4tdXVpZGdlbi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3V1aWRnZW4tdXVpZGdlbi5UcG8gLWMgLW8gdXVpZGdlbi11dWlkZ2VuLm9iaiBgaWYgdGVzdCAtZiAndXVpZGdlbi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3V1aWRnZW4uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvdXVpZGdlbi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91dWlkZ2VuLXV1aWRnZW4uVHBvICQoREVQRElSKS91dWlkZ2VuLXV1aWRnZW4uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd1dWlkZ2VuLmMnIG9iamVjdD0ndXVpZGdlbi11dWlkZ2VuLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodXVpZGdlbl9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1dWlkZ2VuLXV1aWRnZW4ub2JqIGBpZiB0ZXN0IC1mICd1dWlkZ2VuLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAndXVpZGdlbi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS91dWlkZ2VuLmMnOyBmaWAKKword2lwZWZzLXdpcGVmcy5vOiB3aXBlZnMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHdpcGVmc19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgd2lwZWZzLXdpcGVmcy5vIC1NRCAtTVAgLU1GICQoREVQRElSKS93aXBlZnMtd2lwZWZzLlRwbyAtYyAtbyB3aXBlZnMtd2lwZWZzLm8gYHRlc3QgLWYgJ3dpcGVmcy5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B3aXBlZnMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvd2lwZWZzLXdpcGVmcy5UcG8gJChERVBESVIpL3dpcGVmcy13aXBlZnMuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd3aXBlZnMuYycgb2JqZWN0PSd3aXBlZnMtd2lwZWZzLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHdpcGVmc19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB3aXBlZnMtd2lwZWZzLm8gYHRlc3QgLWYgJ3dpcGVmcy5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B3aXBlZnMuYworCit3aXBlZnMtd2lwZWZzLm9iajogd2lwZWZzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh3aXBlZnNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHdpcGVmcy13aXBlZnMub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS93aXBlZnMtd2lwZWZzLlRwbyAtYyAtbyB3aXBlZnMtd2lwZWZzLm9iaiBgaWYgdGVzdCAtZiAnd2lwZWZzLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnd2lwZWZzLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3dpcGVmcy5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS93aXBlZnMtd2lwZWZzLlRwbyAkKERFUERJUikvd2lwZWZzLXdpcGVmcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3dpcGVmcy5jJyBvYmplY3Q9J3dpcGVmcy13aXBlZnMub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh3aXBlZnNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gd2lwZWZzLXdpcGVmcy5vYmogYGlmIHRlc3QgLWYgJ3dpcGVmcy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3dpcGVmcy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS93aXBlZnMuYyc7IGZpYAorCit3cml0ZS13cml0ZS5vOiB3cml0ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQod3JpdGVfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHdyaXRlLXdyaXRlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3dyaXRlLXdyaXRlLlRwbyAtYyAtbyB3cml0ZS13cml0ZS5vIGB0ZXN0IC1mICd3cml0ZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B3cml0ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS93cml0ZS13cml0ZS5UcG8gJChERVBESVIpL3dyaXRlLXdyaXRlLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nd3JpdGUuYycgb2JqZWN0PSd3cml0ZS13cml0ZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh3cml0ZV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB3cml0ZS13cml0ZS5vIGB0ZXN0IC1mICd3cml0ZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B3cml0ZS5jCisKK3dyaXRlLXdyaXRlLm9iajogd3JpdGUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHdyaXRlX0NGTEFHUykgJChDRkxBR1MpIC1NVCB3cml0ZS13cml0ZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3dyaXRlLXdyaXRlLlRwbyAtYyAtbyB3cml0ZS13cml0ZS5vYmogYGlmIHRlc3QgLWYgJ3dyaXRlLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnd3JpdGUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvd3JpdGUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvd3JpdGUtd3JpdGUuVHBvICQoREVQRElSKS93cml0ZS13cml0ZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3dyaXRlLmMnIG9iamVjdD0nd3JpdGUtd3JpdGUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh3cml0ZV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB3cml0ZS13cml0ZS5vYmogYGlmIHRlc3QgLWYgJ3dyaXRlLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnd3JpdGUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvd3JpdGUuYyc7IGZpYAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworaW5zdGFsbC1tYW4xOiAkKGRpc3RfbWFuX01BTlMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChtYW4xZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobWFuMWRpcikiCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuMWRpcikiIHx8IGV4aXQgMDsgXAorCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKwl9IHwgd2hpbGUgcmVhZCBwOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAnbjtzLC4qLywsO3A7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJyB8IFwKKwlzZWQgJ047TjtzLFxuLCAsZycgfCB7IFwKKwlsaXN0PTsgd2hpbGUgcmVhZCBmaWxlIGJhc2UgaW5zdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVuIGxpc3Q9IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0JyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICIkJGZpbGUiICIkKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QiIHx8IGV4aXQgJCQ/OyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKG1hbjFkaXIpJyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBleGl0ICQkPzsgfTsgXAorCWRvbmU7IH0KKwordW5pbnN0YWxsLW1hbjE6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCisJZmlsZXM9YHsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKwl9IHwgc2VkIC1lICdzLC4qLywsO2g7cywuKlwuLCw7cyxeW14xXVswLTlhLXpdKiQkLDEsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCdgOyBcCisJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICBlY2hvICIgKCBjZCAnJChERVNURElSKSQobWFuMWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCSAgY2QgIiQoREVTVERJUikkKG1hbjFkaXIpIiAmJiBybSAtZiAkJGZpbGVzOyB9CitpbnN0YWxsLW1hbjg6ICQoZGlzdF9tYW5fTUFOUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKG1hbjhkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW44ZGlyKSIKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW44ZGlyKSIgfHwgZXhpdCAwOyBcCisJeyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjhbYS16XSokJC9wJzsgXAorCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgXAorCWRvbmUgfCBcCisJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteOF1bMC05YS16XSokJCw4LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnIHwgXAorCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAorCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJGJhc2UiID0gIiQkaW5zdCI7IHRoZW4gbGlzdD0iJCRsaXN0ICQkZmlsZSI7IGVsc2UgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW44ZGlyKS8kJGluc3QnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjhkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuOGRpciknIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobWFuOGRpcikiIHx8IGV4aXQgJCQ/OyB9OyBcCisJZG9uZTsgfQorCit1bmluc3RhbGwtbWFuODoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjhkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1geyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjhbYS16XSokJC9wJzsgXAorCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjhdWzAtOWEtel0qJCQsOCw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKwl0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW44ZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJICBjZCAiJChERVNURElSKSQobWFuOGRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxpc3QiOyB0aGVuIFwKKwkgIGxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgICAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsgXAorCSAgaWYgdGVzdCAtbiAiJCRsaXN0IiAmJiBcCisJICAgIGdyZXAgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0ID4vZGV2L251bGw7IHRoZW4gXAorCSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxgbWlzc2luZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAorCSAgICBncmVwIC1sICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCB8IHNlZCAncy9eLyAgICAgICAgIC8nID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdG8gZml4IHRoZW0sIGluc3RhbGwgaGVscDJtYW4sIHJlbW92ZSBhbmQgcmVnZW5lcmF0ZSB0aGUgbWFuIHBhZ2VzOyIgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWluZXItY2xlYW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAorCSAgICBleGl0IDE7IFwKKwkgIGVsc2UgOjsgZmk7IFwKKwllbHNlIDo7IGZpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykgJChTQ1JJUFRTKSAkKE1BTlMpICQoREFUQSkKK2luc3RhbGxkaXJzOgorCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChzYmluZGlyKSIgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgIiQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJChtYW4xZGlyKSIgIiQoREVTVERJUikkKG1hbjhkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENMRUFORklMRVMpIiB8fCBybSAtZiAkKENMRUFORklMRVMpCisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK0BCVUlMRF9XUklURV9GQUxTRUBpbnN0YWxsLWV4ZWMtaG9vazoKK0BNQUtFSU5TVEFMTF9ET19DSE9XTl9GQUxTRUBpbnN0YWxsLWV4ZWMtaG9vazoKK0BVU0VfVFRZX0dST1VQX0ZBTFNFQGluc3RhbGwtZXhlYy1ob29rOgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1iaW5QUk9HUkFNUyBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorCWNsZWFuLXNiaW5QUk9HUkFNUyBjbGVhbi11c3JiaW5fZXhlY1BST0dSQU1TIFwKKwljbGVhbi11c3JzYmluX2V4ZWNQUk9HUkFNUyBtb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLWFtCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1hbQorCitodG1sLWFtOgorCitpbmZvOiBpbmZvLWFtCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1tYW4KKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtYmluUFJPR1JBTVMgaW5zdGFsbC1kaXN0X3VzcmJpbl9leGVjU0NSSVBUUyBcCisJaW5zdGFsbC1zYmluUFJPR1JBTVMgaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TIFwKKwlpbnN0YWxsLXVzcmJpbl9leGVjU0NSSVBUUyBpbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TCisJQCQoTk9STUFMX0lOU1RBTEwpCisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWhvb2sKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisKK2luc3RhbGwtaHRtbC1hbToKKworaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjogaW5zdGFsbC1tYW4xIGluc3RhbGwtbWFuOAorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1hbQorCitwZGYtYW06CisKK3BzOiBwcy1hbQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtYmluUFJPR1JBTVMgdW5pbnN0YWxsLWRpc3RfdXNyYmluX2V4ZWNTQ1JJUFRTIFwKKwl1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1zYmluUFJPR1JBTVMgXAorCXVuaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TIHVuaW5zdGFsbC11c3JiaW5fZXhlY1NDUklQVFMgXAorCXVuaW5zdGFsbC11c3JzYmluX2V4ZWNQUk9HUkFNUworCit1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMSB1bmluc3RhbGwtbWFuOAorCisuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1zdHJpcAorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tYmluUFJPR1JBTVMgXAorCWNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1zYmluUFJPR1JBTVMgXAorCWNsZWFuLXVzcmJpbl9leGVjUFJPR1JBTVMgY2xlYW4tdXNyc2Jpbl9leGVjUFJPR1JBTVMgY3RhZ3MgXAorCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWJpblBST0dSQU1TIFwKKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZGlzdF91c3JiaW5fZXhlY1NDUklQVFMgXAorCWluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gXAorCWluc3RhbGwtZXhlYy1ob29rIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIGluc3RhbGwtbWFuOCBcCisJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKwlpbnN0YWxsLXNiaW5QUk9HUkFNUyBpbnN0YWxsLXN0cmlwIGluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUyBcCisJaW5zdGFsbC11c3JiaW5fZXhlY1NDUklQVFMgaW5zdGFsbC11c3JzYmluX2V4ZWNQUk9HUkFNUyBcCisJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorCXRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtYmluUFJPR1JBTVMgXAorCXVuaW5zdGFsbC1kaXN0X3VzcmJpbl9leGVjU0NSSVBUUyB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xIFwKKwl1bmluc3RhbGwtbWFuOCB1bmluc3RhbGwtc2JpblBST0dSQU1TIFwKKwl1bmluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUyB1bmluc3RhbGwtdXNyYmluX2V4ZWNTQ1JJUFRTIFwKKwl1bmluc3RhbGwtdXNyc2Jpbl9leGVjUFJPR1JBTVMKKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKK0BCVUlMRF9XUklURV9UUlVFQEBNQUtFSU5TVEFMTF9ET19DSE9XTl9UUlVFQEBVU0VfVFRZX0dST1VQX1RSVUVAaW5zdGFsbC1leGVjLWhvb2s6OgorQEJVSUxEX1dSSVRFX1RSVUVAQE1BS0VJTlNUQUxMX0RPX0NIT1dOX1RSVUVAQFVTRV9UVFlfR1JPVVBfVFJVRUAJY2hncnAgdHR5ICQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKS93cml0ZQorQEJVSUxEX1dSSVRFX1RSVUVAQE1BS0VJTlNUQUxMX0RPX0NIT1dOX1RSVUVAQFVTRV9UVFlfR1JPVVBfVFJVRUAJY2htb2QgZytzICQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKS93cml0ZQorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL1JFQURNRS5jYWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL1JFQURNRS5jYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM4YWM5ZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvUkVBRE1FLmNhbApAQCAtMCwwICsxLDQyIEBACitUaGUgY2FsKDEpIGRhdGUgcm91dGluZXMgd2VyZSB3cml0dGVuIGZyb20gc2NyYXRjaCwgYmFzaWNhbGx5IGZyb20gZmlyc3QKK3ByaW5jaXBsZXMuICBUaGUgYWxnb3JpdGhtIGZvciBjYWxjdWxhdGluZyB0aGUgZGF5IG9mIHdlZWsgZnJvbSBhbnkKK0dyZWdvcmlhbiBkYXRlIHdhcyAicmV2ZXJzZSBlbmdpbmVlcmVkIi4gIFRoaXMgd2FzIG5lY2Vzc2FyeSBhcyBtb3N0IG9mCit0aGUgZG9jdW1lbnRlZCBhbGdvcml0aG1zIGhhdmUgdG8gZG8gd2l0aCBkYXRlIGNhbGN1bGF0aW9ucyBmb3Igb3RoZXIKK2NhbGVuZGFycyAoZS5nLiBqdWxpYW4pIGFuZCBhcmUgb25seSBhY2N1cmF0ZSB3aGVuIGNvbnZlcnRlZCB0byBncmVnb3JpYW4KK3dpdGhpbiBhIG5hcnJvdyByYW5nZSBvZiBkYXRlcy4KKworMSBKYW4gMSBpcyBhIFNhdHVyZGF5IGJlY2F1c2UgdGhhdCdzIHdoYXQgY2FsIHNheXMgYW5kIEkgY291bGRuJ3QgY2hhbmdlCit0aGF0IGV2ZW4gaWYgSSB3YXMgZHVtYiBlbm91Z2ggdG8gdHJ5LiAgRnJvbSB0aGlzIHdlIGNhbiBlYXNpbHkgY2FsY3VsYXRlCit0aGUgZGF5IG9mIHdlZWsgZm9yIGFueSBkYXRlLiAgVGhlIGFsZ29yaXRobSBmb3IgYSB6ZXJvIGJhc2VkIGRheSBvZiB3ZWVrOgorCisJY2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhbGwgcHJpb3IgeWVhcnMgKHllYXItMSkqMzY1CisJYWRkIHRoZSBudW1iZXIgb2YgbGVhcCB5ZWFycyAoZGF5cz8pIHNpbmNlIHllYXIgMSAKKwkJKG5vdCBpbmNsdWRpbmcgdGhpcyB5ZWFyIGFzIHRoYXQgaXMgY292ZXJlZCBsYXRlcikKKwlhZGQgdGhlIGRheSBudW1iZXIgd2l0aGluIHRoZSB5ZWFyCisJCXRoaXMgY29tcGVuc2F0ZXMgZm9yIHRoZSBub24taW5jbHVzaXZlIGxlYXAgeWVhcgorCQljYWxjdWxhdGlvbgorCWlmIHRoZSBkYXkgaW4gcXVlc3Rpb24gb2NjdXJzIGJlZm9yZSB0aGUgZ3JlZ29yaWFuIHJlZm9ybWF0aW9uCisJCSgzIHNlcCAxNzUyIGZvciBvdXIgcHVycG9zZXMpLCB0aGVuIHNpbXBseSByZXR1cm4gCisJCSh2YWx1ZSBzbyBmYXIgLSAxICsgU0FUVVJEQVkncyB2YWx1ZSBvZiA2KSBtb2R1bG8gNy4KKwlpZiB0aGUgZGF5IGluIHF1ZXN0aW9uIG9jY3VycyBkdXJpbmcgdGhlIHJlZm9ybWF0aW9uICgzIHNlcCAxNzUyCisJCXRvIDEzIHNlcCAxNzUyIGluY2x1c2l2ZSkgcmV0dXJuIFRIVVJTREFZLiBUaGlzIGlzIG15CisJCWlkZWEgb2Ygd2hhdCBoYXBwZW5lZCB0aGVuLiBJdCBkb2VzIG5vdCBtYXR0ZXIgbXVjaCBhcworCQl0aGlzIHByb2dyYW0gbmV2ZXIgdHJpZXMgdG8gZmluZCBkYXkgb2Ygd2VlayBmb3IgYW55IGRheQorCQl0aGF0IGlzIG5vdCB0aGUgZmlyc3Qgb2YgYSBtb250aC4KKwlvdGhlcndpc2UsIGFmdGVyIHRoZSByZWZvcm1hdGlvbiwgdXNlIHRoZSBzYW1lIGZvcm11bGEgYXMgdGhlCisJCWRheXMgYmVmb3JlIHdpdGggdGhlIGFkZGl0aW9uYWwgc3RlcCBvZiBzdWJ0cmFjdGluZyB0aGUKKwkJbnVtYmVyIG9mIGRheXMgKDExKSB0aGF0IHdlcmUgYWRqdXN0ZWQgb3V0IG9mIHRoZSBjYWxlbmRhcgorCQlqdXN0IGJlZm9yZSB0YWtpbmcgdGhlIG1vZHVsby4KKworSXQgbXVzdCBiZSBub3RlZCB0aGF0IHRoZSBudW1iZXIgb2YgbGVhcCB5ZWFycyBjYWxjdWxhdGlvbiBpcyBzZW5zaXRpdmUKK3RvIHRoZSBkYXRlIGZvciB3aGljaCB0aGUgbGVhcCB5ZWFyIGlzIGJlaW5nIGNhbGN1bGF0ZWQuICBBIHllYXIgdGhhdCBvY2N1cnMKK2JlZm9yZSB0aGUgcmVmb3JtYXRpb24gaXMgZGV0ZXJtaW5lZCB0byBiZSBhIGxlYXAgeWVhciBpZiBpdHMgbW9kdWxvIG9mCis0IGVxdWFscyB6ZXJvLiAgQnV0IGFmdGVyIHRoZSByZWZvcm1hdGlvbiwgYSB5ZWFyIGlzIG9ubHkgYSBsZWFwIHllYXIgaWYKK2l0cyBtb2R1bG8gb2YgNCBlcXVhbHMgemVybyBhbmQgaXRzIG1vZHVsbyBvZiAxMDAgZG9lcyBub3QuICBPZiBjb3Vyc2UsCit0aGVyZSBpcyBhbiBleGNlcHRpb24gZm9yIHRoZXNlIGNlbnR1cnkgeWVhcnMuICBJZiB0aGUgbW9kdWxvIG9mIDQwMCBlcXVhbHMKK3plcm8sIHRoZW4gdGhlIHllYXIgaXMgYSBsZWFwIHllYXIgYW55d2F5LiAgVGhpcyBpcywgaW4gZmFjdCwgd2hhdCB0aGUKK2dyZWdvcmlhbiByZWZvcm1hdGlvbiB3YXMgYWxsIGFib3V0IChhIGJpdCBvZiBlcnJvciBpbiB0aGUgb2xkIGFsZ29yaXRobQordGhhdCBjYXVzZWQgdGhlIGNhbGVuZGFyIHRvIGJlIGluYWNjdXJhdGUuKQorCitPbmNlIHdlIGhhdmUgdGhlIGRheSBpbiB5ZWFyIGZvciB0aGUgZmlyc3Qgb2YgdGhlIG1vbnRoIGluIHF1ZXN0aW9uLCB0aGUKK3Jlc3QgaXMgdHJpdmlhbC4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvUkVBRE1FLmRkYXRlIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9SRUFETUUuZGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdkMGZiOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvUkVBRE1FLmRkYXRlCkBAIC0wLDAgKzEsNzMgQEAKKworUEVSUEVUVUFMIERBVEUgQ09OVkVSVEVSIEZST00gR1JFR09SSUFOIFRPIFBPRUUgQ0FMRU5EQVIKKworU0VBU09OUworICAgIDEuICBDaGFvcyAtLSBQYXRyb24gQXBvc3RsZSBIdW5nIE11bmcKKyAgICAyLiAgRGlzY29yZCAtLSBQYXRyb24gQXBvc3RsZSBEci4gVmFuIFZhbiBNb2pvCisgICAgMy4gIENvbmZ1c2lvbiAtLSBQYXRyb24gQXBvc3RsZSBTcmkgU3lhZGFzdGkKKyAgICA0LiAgQnVyZWF1Y3JhY3kgLS0gUGF0cm9uIEFwb3N0bGUgWmFyYXRodWQKKyAgICA1LiAgVGhlIEFmdGVybWF0aCAtLSBQYXRyb24gQXBvc3RsZSB0aGUgRWxkZXIgTWFsYWNseXBzZQorCitEQVlTIE9GIFRIRSBXRUVLKgorICAgIDEuICBTd2VldG1vcm4gICAgICAgICAgICAgICAgICAgICAgICpUaGUgREFZUyBPRiBUSEUgV0VFSworICAgIDIuICBCb29tdGltZSAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBuYW1lZCBmcm9tIHRoZSBmaXZlCisgICAgMy4gIFB1bmdlbmRheSAgICAgICAgICAgICAgICAgICAgICAgYmFzaWMgZWxlbWVudHM6ICBTV0VFVCwKKyAgICA0LiAgUHJpY2tsZS1Qcmlja2xlICAgICAgICAgICAgICAgICBCT09NLCBQVU5HRU5ULCBQUklDS0xFLAorICAgIDUuICBTZXR0aW5nIE9yYW5nZSAgICAgICAgICAgICAgICAgIGFuZCBPUkFOR0UuCisKK0hPTFlEQVlTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK0EuICBBcG9zdGxlIEhvbHlkYXlzICAgICAgICAgICAgICAgICAgICBCLiAgU2Vhc29ucyBIb2x5ZGF5cworICAgIDEuICBNdW5nZGF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLiAgQ2hhb2ZsdXgKKyAgICAyLiAgTW9qb2RheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4gIERpc2NvZmx1eAorICAgIDMuICBTeWFkYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLiAgQ29uZnVmbHV4CisgICAgNC4gIFphcmFkYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuICBCdXJlZmx1eAorICAgIDUuICBNYWxhZGF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LiAgQWZmbHV4CitFYWNoIG9jY3VycyBvbiB0aGUgNXRoICAgICAgICAgICAgICAgICAgRWFjaCBvY2N1cnMgb24gdGhlIDUwdGgKK2RheSBvZiB0aGUgU2Vhc29uICAgICAgICAgICAgICAgICAgICAgICBkYXkgb2YgdGhlIFNlYXNvbgorCitDLiAgU2FpbnQgVGliJ3MgRGF5IC0tIG9jY3VycyBvbmNlIGV2ZXJ5IGZvdXIgeWVhcnMgKDEgKyA0ID0gNSkgYW5kIGlzCisgICAgaW5zZXJ0ZWQgYmV0d2VlbiB0aGUgNTl0aCBhbmQgNjB0aCBkYXlzIG9mIHRoZSBTZWFzb24gb2YgQ2hhb3MKKworICAgICAgICAgICAgICAgICAgICBTVCBCVCBQRCBQUCBTTyAgICAgICAgICAgICAgICAgICAgICAgICAgU00gQlQgUEQgUFAgU08KK0phbiAgMSAgMiAgMyAgNCAgNSAgIDEgIDIgIDMgIDQgIDUgQ2hzICBKdWwgIDUgIDYgIDcgIDggIDkgIDQwIDQxIDQyIDQzIDQ0IENmbgorICAgICA2ICA3ICA4ICA5IDEwICAgNiAgNyAgOCAgOSAxMCAgICAgICAgICAxMCAxMSAxMiAxMyAxNCAgNDUgNDYgNDcgNDggNDkKKyAgICAxMSAxMiAxMyAxNCAxNSAgMTEgMTIgMTMgMTQgMTUgICAgICAgICAgMTUgMTYgMTcgMTggMTkgIDUwIDUxIDUyIDUzIDU0CisgICAgMTYgMTcgMTggMTkgMjAgIDE2IDE3IDE4IDE5IDIwICAgICAgICAgIDIwIDIxIDIyIDIzIDI0ICA1NSA1NiA1NyA1OCA1OQorICAgIDIxIDIyIDIzIDI0IDI1ICAyMSAyMiAyMyAyNCAyNSAgICAgICAgICAyNSAyNiAyNyAyOCAyOSAgNjAgNjEgNjIgNjMgNjQKKyAgICAyNiAyNyAyOCAyOSAzMCAgMjYgMjcgMjggMjkgMzAgICAgICAgICAgMzAgMzEgIDEgIDIgIDMgIDY1IDY2IDY3IDY4IDY5CisgICAgMzEgIDEgIDIgIDMgIDQgIDMxIDMyIDMzIDM0IDM1ICAgICAgQXVnICA0ICA1ICA2ICA3ICA4ICA3MCA3MSA3MiA3MyAgMSBCY3kKK0ZlYiAgNSAgNiAgNyAgOCAgOSAgMzYgMzcgMzggMzkgNDAgICAgICAgICAgIDkgMTAgMTEgMTIgMTMgICAyICAzICA0ICA1ICA2CisgICAgMTAgMTEgMTIgMTMgMTQgIDQxIDQyIDQzIDQ0IDQ1ICAgICAgICAgIDE0IDE1IDE2IDE3IDE4ICAgNyAgOCAgOSAxMCAxMQorICAgIDE1IDE2IDE3IDE4IDE5ICA0NiA0NyA0OCA0OSA1MCAgICAgICAgICAxOSAyMCAyMSAyMiAyMyAgMTIgMTMgMTQgMTUgMTYKKyAgICAyMCAyMSAyMiAyMyAyNCAgNTEgNTIgNTMgNTQgNTUgICAgICAgICAgMjQgMjUgMjYgMjcgMjggIDE3IDE4IDE5IDIwIDIxCisgICAgMjUgMjYgMjcgMjgqIDEgIDU2IDU3IDU4IDU5IDYwICAgICAgICAgIDI5IDMwIDMxICAxICAyICAyMiAyMyAyNCAyNSAyNgorTWFyICAyICAzICA0ICA1ICA2ICA2MSA2MiA2MyA2NCA2NSAgICAgIFNlcCAgMyAgNCAgNSAgNiAgNyAgMjcgMjggMjkgMzAgMzEKKyAgICAgNyAgOCAgOSAxMCAxMSAgNjYgNjcgNjggNjkgNzAgICAgICAgICAgIDggIDkgMTAgMTEgMTIgIDMyIDMzIDM0IDM1IDM2CisgICAgMTIgMTMgMTQgMTUgMTYgIDcxIDcyIDczICAxICAyIERzYyAgICAgIDEzIDE0IDE1IDE2IDE3ICAzNyAzOCAzOSA0MCA0MQorICAgIDE3IDE4IDE5IDIwIDIxICAgMyAgNCAgNSAgNiAgNyAgICAgICAgICAxOCAxOSAyMCAyMSAyMiAgNDIgNDMgNDQgNDUgNDYKKyAgICAyMiAyMyAyNCAyNSAyNiAgIDggIDkgMTAgMTEgMTIgICAgICAgICAgMjMgMjQgMjUgMjYgMjcgIDQ3IDQ4IDQ5IDUwIDUxCisgICAgMjcgMjggMjkgMzAgMzEgIDEzIDE0IDE1IDE2IDE3ICAgICAgICAgIDI4IDI5IDMwICAxICAyICA1MiA1MyA1NCA1NSA1NgorQXByICAxICAyICAzICA0ICA1ICAxOCAxOSAyMCAyMSAyMiAgICAgIE9jdCAgMyAgNCAgNSAgNiAgNyAgNTcgNTggNTkgNjAgNjEKKyAgICAgNiAgNyAgOCAgOSAxMCAgMjMgMjQgMjUgMjYgMjcgICAgICAgICAgIDggIDkgMTAgMTEgMTIgIDYyIDYzIDY0IDY1IDY2CisgICAgMTEgMTIgMTMgMTQgMTUgIDI4IDI5IDMwIDMxIDMyICAgICAgICAgIDEzIDE0IDE1IDE2IDE3ICA2NyA2OCA2OSA3MCA3MQorICAgIDE2IDE3IDE4IDE5IDIwICAzMyAzNCAzNSAzNiAzNyAgICAgICAgICAxOCAxOSAyMCAyMSAyMiAgNzIgNzMgIDEgIDIgIDMgQWZtCisgICAgMjEgMjIgMjMgMjQgMjUgIDM4IDM5IDQwIDQxIDQyICAgICAgICAgIDIzIDI0IDI1IDI2IDI3ICAgNCAgNSAgNiAgNyAgOAorICAgIDI2IDI3IDI4IDI5IDMwICA0MyA0NCA0NSA0NiA0NyAgICAgICAgICAyOCAyOSAzMCAzMSAgMSAgIDkgMTAgMTEgMTIgMTMKK01heSAgMSAgMiAgMyAgNCAgNSAgNDggNDkgNTAgNTEgNTIgICAgICBOb3YgIDIgIDMgIDQgIDUgIDYgIDE0IDE1IDE2IDE3IDE4CisgICAgIDYgIDcgIDggIDkgMTAgIDUzIDU0IDU1IDU2IDU3ICAgICAgICAgICA3ICA4ICA5IDEwIDExICAxOSAyMCAyMSAyMiAyMworICAgIDExIDEyIDEzIDE0IDE1ICA1OCA1OSA2MCA2MSA2MiAgICAgICAgICAxMiAxMyAxNCAxNSAxNiAgMjQgMjUgMjYgMjcgMjgKKyAgICAxNiAxNyAxOCAxOSAyMCAgNjMgNjQgNjUgNjYgNjcgICAgICAgICAgMTcgMTggMTkgMjAgMjEgIDI5IDMwIDMxIDMyIDMzCisgICAgMjEgMjIgMjMgMjQgMjUgIDY4IDY5IDcwIDcxIDcyICAgICAgICAgIDIyIDIzIDI0IDI1IDI2ICAzNCAzNSAzNiAzNyAzOAorICAgIDI2IDI3IDI4IDI5IDMwICA3MyAgMSAgMiAgMyAgNCBDZm4gICAgICAyNyAyOCAyOSAzMCAgMSAgMzkgNDAgNDEgNDIgNDMKKyAgICAzMSAgMSAgMiAgMyAgNCAgIDUgIDYgIDcgIDggIDkgICAgICBEZWMgIDIgIDMgIDQgIDUgIDYgIDQ0IDQ1IDQ2IDQ3IDQ4CitKdW4gIDUgIDYgIDcgIDggIDkgIDEwIDExIDEyIDEzIDE0ICAgICAgICAgICA3ICA4ICA5IDEwIDExICA0OSA1MCA1MSA1MiA1MworICAgIDEwIDExIDEyIDEzIDE0ICAxNSAxNiAxNyAxOCAxOSAgICAgICAgICAxMiAxMyAxNCAxNSAxNiAgNTQgNTUgNTYgNTcgNTgKKyAgICAxNSAxNiAxNyAxOCAxOSAgMjAgMjEgMjIgMjMgMjQgICAgICAgICAgMTcgMTggMTkgMjAgMjEgIDU5IDYwIDYxIDYyIDYzCisgICAgMjAgMjEgMjIgMjMgMjQgIDI1IDI2IDI3IDI4IDI5ICAgICAgICAgIDIyIDIzIDI0IDI1IDI2ICA2NCA2NSA2NiA2NyA2OAorICAgIDI1IDI2IDI3IDI4IDI5ICAzMCAzMSAzMiAzMyAzNCAgICAgICAgICAyNyAyOCAyOSAzMCAzMSAgNjkgNzAgNzEgNzIgNzMKKyAgICAzMCAgMSAgMiAgMyAgNCAgMzUgMzYgMzcgMzggMzkgWzE5NzAgPSAzMTM2XSBbTmV4dCBTdC4gVGliJ3MgRGF5IGluIDMxMzhdCisKKyAgICAgICAgICAgICAgICBTQUNSRUQgRE9DVU1FTlQgT0YgVEhFIEZST0dTIChvbGQgRXJpc2lhbiBwb2VtKToKKyAgICAgICAgICAgICAgICA3MyBEYXlzIGhhdGgKKyAgICAgICAgICAgICAgICBDaGFvcywgRGlzY29yZCwgQ29uZnVzaW9uLCBCdXJlYXVjcmFjeSwgYW5kIEFmdGVybWF0aAorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL1JFQURNRS5mbHVzaGIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL1JFQURNRS5mbHVzaGIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRlZjljZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvUkVBRE1FLmZsdXNoYgpAQCAtMCwwICsxLDUgQEAKKy8qCisgKiBTb21lIHBlb3BsZSBzdWJtaXQgYSB1dGlsaXR5IGZsdXNoYi5jLgorICogSG93ZXZlciwgaXQgaXMgdXNlbGVzcywgQkxLRkxTQlVGIGlzIGFscmVhZHkgcGFydCBvZiBibG9ja2RldiwKKyAqIHNvIHRoYXQgImZsdXNoYiBkZXZpY2UiIGlzIHRoZSBzYW1lIGFzICJibG9ja2RldiAtLWZsdXNoYnVmcyBkZXZpY2UiLgorICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL1JFQURNRS5uYW1laSBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvUkVBRE1FLm5hbWVpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MDkzOWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL1JFQURNRS5uYW1laQpAQCAtMCwwICsxLDMxIEBACitUaXJlZCBvZiBydW5uaW5nIGludG8gIlRvbyBtYW55IGxldmVscyBvZiBzeW1saW5rcyIgcHJvYmxlbXMgb24KK3lvdXIgNC4yIEJTRCBkZXJpdml0aXZlIG1hY2hpbmU/ICAKKworV2Ugc3VyZSBkaWQuLi4gb3VyIE5GUydlZCBuZXR3b3JrIG9mIGxvdHMgb2YgU3VucywgVmF4ZW4gYW5kIHNvIGZvcnRoCittYWRlIGl0IGltcG9zc2libGUgYXQgdGltZXMgdG8gdHJhY2UgZG93biB3aGVyZSBhIGZpbGUgUkVBTExZIGxpdmVkLgorSSBtZWFuIGxzIC1sIGlzIG5pY2UsIGJ1dCB3b3VsZG4ndCB5b3UgbGlrZSB0byBmb2xsb3cgdGhpbmdzIGxpa2UKK3RoZSBuYW1laSByb3V0aW5lIGluIHRoZSBrZXJuZWwgZG9lcz8KKworV2VsbCBoZXJlIGl0IGlzLi4uLiB0aGUgbmFtZWkgcHJvZ3JhbS4gIEl0IGZvbGxvd3MgdGhpbmdzIG91dCB1bnRpbAorYSB0ZXJtaW5hbCBzdGF0ZSBpcyBmb3VuZC4KKworVGhpcyBwcm9ncmFtIGNvbXBpbGVzIGFuZCBydW5zIHVuZGVyOgorCisgICAgU3VuT1MgNC4wLjEgKHN1bjMncykKKyAgICBTdW5PUyA0LjAuMyAoc3VuNCdzKQorICAgIFN1bk9TIDQuMS4xIChzdW40J3MpCisgICAgVWx0cml4IDMuMQorICAgIEJTRCA0LjMKKworYW5kIHByb2JhYmx5IGEgaG9zdCBvZiBvdGhlciA0LjIgZGVyaXZlZCBzeXN0ZW1zIChidXQgcHJvYmFibHkgbm90CitTeXN0ZW0gVikuCisKK0FueXdheSwgaWYgYW55b25lIGhhcyBhbnkgYnVncyAob3IgZW5oYW5jZW1lbnRzKSwgcGxlYXNlIHNlbmQgdGhlbSB0bworbWUgaW4gRS1tYWlsIGZvcm0uCisKK0FuZCwgYnkgdGhlIHdheSwgaWYgeW91IG1ha2UgTE9UUyBvZiBtb25leSBvZmYgb2YgdGhpcyBwcm9ncmFtLCBwbGVhc2UKK2Rvbid0IHRlbGwgbWUgOi0pLgorCisgICAgLVJvZ2VyICAgICAgKHJvZ2Vyc0BmYW5nb3JuLndyLnRlay5jb20pCisJCVVVQ1A6CS4uLiF1dW5ldCF0ZWt0cm9uaXghZmFuZ29ybi53ci50ZWsuY29tIXJvZ2VycworCQlBUlBBOgk8cm9nZXJzJWZhbmdvcm4ud3IudGVrLmNvbUBSRUxBWS5DUy5ORVQ+CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL1JFQURNRS5uYW1laTIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL1JFQURNRS5uYW1laTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVhNTZhMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvUkVBRE1FLm5hbWVpMgpAQCAtMCwwICsxLDE0IEBACisKKyoqIE5BTUVJIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zLCBkbyBub3QgZGVsZXRlIHNvdXJjZSB3aGVuIGNsZWFuaW5nIHVwICoqCisKKyJZb3UncmUgaW4gYSB0d2lzdHkgbWF6ZSBvZiBzeW1ib2xpYyBsaW5rcywgYWxsIGRpZmZlcmVudCIKKworbmFtZWkgLSBhIHV0aWxpdHkgdG8gY2hhc2UgZG93biBhIHBhdGhuYW1lIGFuZCBwcmludCBkZXRhaWxzIGF0IGVhY2gKK2xldmVsLCBlc3BlY2lhbHkgd2hlbiBmb2xsb3dpbmcgc3ltYm9saWMgbGlua3MuICBWZXJ5IHVzZWZ1bCBmb3IgZmlndXJpbmcKK291dCB3aGF0cyByZWFsbHkgZ29pbmcgb24gaW4gb3VyIGxhcmdlIGVudmlyb25tZW50LiAgTmFtZWQgYWZ0ZXIgdGhlIHJvdXRpbmUKK2luIHRoZSBrZXJuZWwgdGhhdCBkb2VzIGVzc2VudGlhbHkgdGhlIHNhbWUgdGhpbmcgd2hlbmV2ZXIgYW55b25lIHRyaWVzIHRvCitmaW5kIGEgZmlsZS4KKworTG9jYWwgbW9kaWZpY2F0aW9ucyBieSBTdGV2ZSBUZWxsIGluY2x1ZGU6IGNoYW5naW5nIHRoZSAtbSBvcHRpb24gdG8gcHJpbnQKK3RoZSBmaWxlIG1vZGUgaW4gYSByZWFkYWJsZSBmYXNoaW9uLCBsaWtlICJscyAtbCIgZG9lcywgaW5zdGVhZCBvZiBpbiBvY3RhbC4KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9SRUFETUUucmVzZXQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL1JFQURNRS5yZXNldApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDYwZDI2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9SRUFETUUucmVzZXQKQEAgLTAsMCArMSwyMCBAQAorUmVkSGF0IGFuZCBTdVNFIHRha2UgdGhlIHByb2dyYW0gcmVzZXQgZnJvbSBuY3Vyc2VzLAorIHdoZXJlIHJlc2V0IGlzIGEgbmFtZSBmb3IgdGhlIHByb2dyYW0gdHNldC4KKyBJdCBpcyBhcHByb3hpbWF0ZWx5IGVxdWl2YWxlbnQgdG8KKwlzdHR5IHNhbmU7IHRwdXRzIHJzMTsgdHB1dHMgcnMyOyB0cHV0cyByZgorIHdpdGggYHRwdXRzIHJmJyByZXBsYWNlZCBieSBgdHB1dHMgaWYnIHdoZW4gdGhlcmUgaXMgYW4KKyBpbml0X2ZpbGUgYnV0IG5vIHJlc2V0X2ZpbGUuIEluIHRoZSBjb21tZW50cyBpdCB3b25kZXJzCisgd2hldGhlciBhbHNvIHNlbmRpbmcgcnMzLCBybWFjcywgcm11bCwgcm1tIG1pZ2h0IGJlIGEgZ29vZCBpZGVhLgorCitTbGFja3dhcmUgdXNlcyB0aGUgc21hbGwgc2NyaXB0IGdpdmVuIGhlcmUuCisgVGhlIHBhcnQgYGVjaG8gLWUgXFwwMzNjJyBpcyB0aGUgY2Fub25pY2FsIHJlc2V0IG9mIHRoZSBrZXJuZWwKKyBjb25zb2xlIHN0YXR1cywgYW5kIGlzIGVxdWl2YWxlbnQgdG8gYHRwdXRzIHJzMScgZm9yIGEgbGludXgKKyB0ZXJtaW5hbC4KKworU28sIGJvdGggdmVyc2lvbnMgYXJlIGFwcHJveGltYXRlbHkgdGhlIHNhbWUuCisKKworW0EgZGlzYWR2YW50YWdlIG9mIGBlY2hvIC1lIFxcMDMzYycgbWlnaHQgYmUgdGhhdCBpdCBpcyBwb3RlbnRpYWxseQord3Jvbmcgb24gYSBub24tdnQxMDAsIG5vbi14dGVybSwgbm9uLWxpbnV4IHRlcm1pbmFsLgorQW4gYWR2YW50YWdlIGlzIHRoYXQgdGhlcmUgYXJlIHRlcm1pbmZvIGVudHJpZXMgZm9yIHh0ZXJtIGFyb3VuZAordGhhdCBvbmx5IHVzZSByczE9Xk8gYXMgcmVzZXQsIGFuZCB0aGVuIFxFYyBpcyBtdWNoIGJldHRlci5dCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2Jsa2lkLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2Jsa2lkLjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQxOWRhMAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvYmxraWQuOApAQCAtMCwwICsxLDIyMyBAQAorLlwiIENvcHlyaWdodCAyMDAwIEFuZHJlYXMgRGlsZ2VyIChhZGlsZ2VyQHR1cmJvbGludXguY29tKQorLlwiCisuXCIgVGhpcyBtYW4gcGFnZSB3YXMgY3JlYXRlZCBmb3IgYmxraWQgZnJvbSBlMmZzcHJvZ3MtMS4yNS4KKy5cIgorLlwiIFRoaXMgZmlsZSBtYXkgYmUgY29waWVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLgorLlwiCisuXCIgQmFzZWQgb24gdXVpZGdlbiwgTW9uIFNlcCAxNyAxMDo0MjoxMiAyMDAwLCBBbmRyZWFzIERpbGdlcgorLlRIIEJMS0lEIDggIkZlYnJ1YXJ5IDIwMDkiICJMaW51eCIgIk1BSU5URU5BTkNFIENPTU1BTkRTIgorLlNIIE5BTUUKK2Jsa2lkIFwtIGNvbW1hbmRcLWxpbmUgdXRpbGl0eSB0byBsb2NhdGUvcHJpbnQgYmxvY2sgZGV2aWNlIGF0dHJpYnV0ZXMKKy5TSCBTWU5PUFNJUworLkIgYmxraWQKKy5SQiBcLUwKKy5JUiBsYWJlbCAiIHwgIgorLlJCIFwtVQorLklSIHV1aWQKKworLkIgYmxraWQKKy5SQiBbIFwtZ2hsdiBdCisuUkIgWyBcLWMKKy5JUiBmaWxlIF0KKy5SQiBbIFwtdworLklSIGZpbGUgXQorLlJCIFsgXC1vCisuSVIgZm9ybWF0IF0KKy5pbiArNgorLlJCIFsgXC1zCisuSVIgdGFnIF0KKy5SQiBbIFwtdAorLklSIE5BTUU9dmFsdWUgXQorLkkgZGV2aWNlCitbXGZJZGV2aWNlXGZSIC4uLl0KKy5pbiAtNgorCisuQiBibGtpZAorLlJCIC1wCisuUkIgWyBcLU8KKy5JUiBvZmZzZXQgXQorLlJCIFsgXC1TCisuSVIgc2l6ZSBdCisuUkIgWyBcLW8KKy5JUiBmb3JtYXQgXQorLlJCIFsgXC1zCisuSVIgdGFnIF0KKy5pbiArOQorLlJCIFsgXC11CisuSVIgbGlzdCBdCisuSSBkZXZpY2UKK1tcZklkZXZpY2VcZlIgLi4uXQorCisuU0ggREVTQ1JJUFRJT04KK1RoZQorLkIgYmxraWQKK3Byb2dyYW0gaXMgdGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgdG8gd29ya2luZyB3aXRoCisuQlIgbGliYmxraWQgKDMpCitsaWJyYXJ5LiAgSXQgY2FuIGRldGVybWluZSB0aGUgdHlwZSBvZiBjb250ZW50IChlLmcuIGZpbGVzeXN0ZW0sIHN3YXApCithIGJsb2NrIGRldmljZSBob2xkcywgYW5kIGFsc28gYXR0cmlidXRlcyAodG9rZW5zLCBOQU1FPXZhbHVlIHBhaXJzKQorZnJvbSB0aGUgY29udGVudCBtZXRhZGF0YSAoZS5nLiBMQUJFTCBvciBVVUlEIGZpZWxkcykuCisuUFAKKy5CIGJsa2lkCitoYXMgdHdvIG1haW4gZm9ybXMgb2Ygb3BlcmF0aW9uOiBlaXRoZXIgc2VhcmNoaW5nIGZvciBhIGRldmljZSB3aXRoIGEKK3NwZWNpZmljIE5BTUU9dmFsdWUgcGFpciwgb3IgZGlzcGxheWluZyBOQU1FPXZhbHVlIHBhaXJzIGZvciBvbmUgb3IKK21vcmUgZGV2aWNlcy4KKy5TSCBPUFRJT05TCisuVFAKKy5CSSBcLWMgIiBjYWNoZWZpbGUiCitSZWFkIGZyb20KKy5JIGNhY2hlZmlsZQoraW5zdGVhZCBvZiByZWFkaW5nIGZyb20gdGhlIGRlZmF1bHQgY2FjaGUgZmlsZQorLklSIC9ldGMvYmxraWQudGFiIC4KK0lmIHlvdSB3YW50IHRvIHN0YXJ0IHdpdGggYSBjbGVhbiBjYWNoZSAoaS5lLiBkb24ndCByZXBvcnQgZGV2aWNlcyBwcmV2aW91c2x5CitzY2FubmVkIGJ1dCBub3QgbmVjZXNzYXJpbHkgYXZhaWxhYmxlIGF0IHRoaXMgdGltZSksIHNwZWNpZnkKKy5JUiAvZGV2L251bGwgLgorLlRQCisuQiBcLWcKK1BlcmZvcm0gYSBnYXJiYWdlIGNvbGxlY3Rpb24gcGFzcyBvbiB0aGUgYmxraWQgY2FjaGUgdG8gcmVtb3ZlCitkZXZpY2VzIHdoaWNoIG5vIGxvbmdlciBleGlzdC4KKy5UUAorLkIgXC1oCitEaXNwbGF5IGEgdXNhZ2UgbWVzc2FnZSBhbmQgZXhpdC4KKy5UUAorLkIgXC1sCitMb29rIHVwIG9uZSBkZXZpY2UgdGhhdCBtYXRjaGVzIHRoZSBzZWFyY2ggcGFyYW1ldGVyIHNwZWNpZmllZCB1c2luZwordGhlCisuQiBcLXQKK29wdGlvbi4gIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBkZXZpY2VzIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBzZWFyY2gKK3BhcmFtZXRlciwgdGhlbiB0aGUgZGV2aWNlIHdpdGggdGhlIGhpZ2hlc3QgcHJpb3JpdHkgaXMgcmV0dXJuZWQsIGFuZC9vcgordGhlIGZpcnN0IGRldmljZSBmb3VuZCBhdCBhIGdpdmVuIHByaW9yaXR5LiAgRGV2aWNlIHR5cGVzIGluIG9yZGVyIG9mCitkZWNyZWFzaW5nIHByaW9yaXR5IGFyZSBEZXZpY2UgTWFwcGVyLCBFVk1TLCBMVk0sIE1ELCBhbmQgZmluYWxseSByZWd1bGFyCitibG9jayBkZXZpY2VzLiAgSWYgdGhpcyBvcHRpb24gaXMgbm90IHNwZWNpZmllZCwKKy5CIGJsa2lkCit3aWxsIHByaW50IGFsbCBvZiB0aGUgZGV2aWNlcyB0aGF0IG1hdGNoIHRoZSBzZWFyY2ggcGFyYW1ldGVyLgorLlRQCisuQiBcLUwgIiBsYWJlbCAiCitMb29rIHVwIG9uZSBkZXZpY2UgdGhhdCB1c2VzIHRoZSBsYWJlbCAoc2FtZSBhczogLWwgLW8gZGV2aWNlIC10CitMQUJFTD08bGFiZWw+KS4gIFRoaXMgbG9vayB1cCBtZXRob2QgaXMgYWJsZSB0byByZWxpYWJsZSB1c2UgL2Rldi9kaXNrL2J5LWxhYmVsCit1ZGV2IHN5bWxpbmtzIChkZXBlbmRzIG9uIHNldHRpbmcgaW4gL2V0Yy9ibGtpZC5jb25mKS4gQXZvaWQgdG8gdXNlIHRoZQorc3ltbGlua3MgZGlyZWN0bHkuIEl0IGlzIG5vdCByZWxpYWJsZSB0byB1c2UgdGhlIHN5bWxpbmtzIHdpdGhvdXQgdmVyaWZpY2F0aW9uLgorVGhlIFxmQi1MXGZSIG9wdGlvbiB3b3JrcyBvbiBzeXN0ZW1zIHdpdGggYW5kIHdpdGhvdXQgdWRldi4KKworVW5mb3J0dW5hdGVseSwgdGhlIG9yaWdpbmFsCisuQiBibGtpZCg4KQorZnJvbSBlMmZzcHJvZ3MgdXNlIHRoZSBcZkItTFxmUiBvcHRpb24gYXMgYQorc3lub255bSB0byB0aGUgXGZCLW8gbGlzdFxmUiBvcHRpb24uIEZvciBiZXR0ZXIgcG9ydGFiaWxpdHkgdXNlICItbCAtbyBkZXZpY2UKKy10IExBQkVMPTxsYWJlbD4iIGFuZCAiLW8gbGlzdCIgaW4geW91ciBzY3JpcHRzIHJhdGhlciB0aGFuIC1MIG9wdGlvbi4KKy5UUAorLkIgXC11ICIgbGlzdCAiCitSZXN0cmljdCBwcm9iaW5nIGZ1bmN0aW9ucyB0byBkZWZpbmVkIChjb21tYSBzZXBhcmF0ZWQpIGxpc3Qgb2YgInVzYWdlIiB0eXBlcy4KK1N1cHBvcnRlZCB1c2FnZSB0eXBlcyBhcmU6IGZpbGVzeXN0ZW0sIHJhaWQsIGNyeXB0byBhbmQgb3RoZXIuIFRoZSBsaXN0IGNhbiBiZQorcHJlZml4ZWQgd2l0aCAibm8iIHRvIHNwZWNpZnkgdGhlIHVzYWdlIHR5cGVzIHdoaWNoIHNob3VsZCBiZSBpZ25vcmVkLiBGb3IgZXhhbXBsZToKKy5zcAorICBibGtpZCAtcCAtdSBmaWxlc3lzdGVtLG90aGVyIC9kZXYvc2RhMQorLnNwCitwcm9iZXMgZm9yIGFsbCBmaWxlc3lzdGVtcyBhbmQgb3RoZXJzIChlLmcuIHN3YXApIGZvcm1hdHMsIGFuZAorLnNwCisgIGJsa2lkIC1wIC11IG5vcmFpZCAvZGV2L3NkYTEKKy5zcAorcHJvYmVzIGZvciBhbGwgc3VwcG9ydGVkIGZvcm1hdHMgZXhjbHVkZSBSQUlEcy4gVGhpcyBvcHRpb24gaXMgdXNlZnVsIHdpdGgKK1xmQi1wXGZSIG9ubHkuCisuVFAKKy5CIFwtVSAiIHV1aWQgIgorTG9vayB1cCBvbmUgZGV2aWNlIHRoYXQgdXNlcyB0aGUgdXVpZC4gRm9yIG1vcmUgZGV0YWlscyBzZWUgdGhlIFxmQi1MXGZSIG9wdGlvbi4KKy5UUAorLkJJIFwtbyAiIGZvcm1hdCIKK0Rpc3BsYXkKKy5CUiBibGtpZCAncworb3V0cHV0IHVzaW5nIHRoZSBzcGVjaWZpZWQgZm9ybWF0LiAgVGhlCisuSSBmb3JtYXQKK3BhcmFtZXRlciBtYXkgYmU6CisuUlMKKy5UUAorLkIgZnVsbAorcHJpbnQgYWxsIHRhZ3MgKHRoZSBkZWZhdWx0KQorLlRQCisuQiB2YWx1ZQorcHJpbnQgdGhlIHZhbHVlIG9mIHRoZSB0YWdzCisuVFAKKy5CIGxpc3QKK3ByaW50IHRoZSBkZXZpY2VzIGluIGEgdXNlci1mcmllbmRseSBmb3JtYXQsIHRoaXMgb3V0cHV0IGZvcm1hdCBpcyB1bnN1cHBvcnRlZAorZm9yIGxvdy1sZXZlbCBwcm9iaW5nIChcZkItcFxmUikKKy5UUAorLkIgZGV2aWNlCitwcmludCB0aGUgZGV2aWNlIG5hbWUgb25seSwgdGhpcyBvdXRwdXQgZm9ybWF0IGlzIGFsd2F5cyBlbmFibGVkIGZvciBcZkItTFxmUgorYW5kIFxmQi1VXGZSIG9wdGlvbnMKKy5UUAorLkIgdWRldgordm9sX2lkIGNvbXBhdGlibGUgbW9kZTsgdXNhYmxlIGluIHVkZXYgcnVsZXMKKy5SRQorLlRQCisuQkkgXC1PICIgYnl0ZXMiCitQcm9iZSBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IChvbmx5IHVzZWZ1bCB3aXRoIFxmQi1wXGZSKS4KKy5UUAorLkJJIFwtcAorU3dpdGNoIHRvIGxvdy1sZXZlbCBwcm9iaW5nIG1vZGUgKGJ5cGFzcyBjYWNoZSkKKy5UUAorLkJJIFwtcyAiIHRhZyIKK0ZvciBlYWNoIChzcGVjaWZpZWQpIGRldmljZSwgc2hvdyBvbmx5IHRoZSB0YWdzIHRoYXQgbWF0Y2gKKy5JUiB0YWcgLgorSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBtdWx0aXBsZQorLkIgXC1zCitvcHRpb25zLiAgSWYgbm8gdGFnIGlzIHNwZWNpZmllZCwgdGhlbiBhbGwgdG9rZW5zIGFyZSBzaG93biBmb3IgYWxsCisoc3BlY2lmaWVkKSBkZXZpY2VzLgorSW4gb3JkZXIgdG8ganVzdCByZWZyZXNoIHRoZSBjYWNoZSB3aXRob3V0IHNob3dpbmcgYW55IHRva2VucywgdXNlCisuQiAiLXMgbm9uZSIKK3dpdGggbm8gb3RoZXIgb3B0aW9ucy4KKy5UUAorLkJJIFwtUyAiIGJ5dGVzIgorT3ZlcndyaXRlIGRldmljZS9maWxlIHNpemUgKG9ubHkgdXNlZnVsIHdpdGggXGZCLXBcZlIpLgorLlRQCisuQkkgXC10ICIgTkFNRSIgPSAidmFsdWUiCitTZWFyY2ggZm9yIGJsb2NrIGRldmljZXMgd2l0aCB0b2tlbnMgbmFtZWQKKy5JIE5BTUUKK3RoYXQgaGF2ZSB0aGUgdmFsdWUKKy5JUiB2YWx1ZSAsCithbmQgZGlzcGxheSBhbnkgZGV2aWNlcyB3aGljaCBhcmUgZm91bmQuCitDb21tb24gdmFsdWVzIGZvcgorLkkgTkFNRQoraW5jbHVkZQorLkJSIFRZUEUgLAorLkJSIExBQkVMICwKK2FuZAorLkJSIFVVSUQgLgorSWYgdGhlcmUgYXJlIG5vIGRldmljZXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUsIGFsbCBibG9jayBkZXZpY2VzCit3aWxsIGJlIHNlYXJjaGVkOyBvdGhlcndpc2Ugb25seSB0aGUgc3BlY2lmaWVkIGRldmljZXMgYXJlIHNlYXJjaGVkLgorLlRQCisuQiBcLXYKK0Rpc3BsYXkgdmVyc2lvbiBudW1iZXIgYW5kIGV4aXQuCisuVFAKKy5CSSBcLXcgIiB3cml0ZWNhY2hlZmlsZSIKK1dyaXRlIHRoZSBkZXZpY2UgY2FjaGUgdG8KKy5JIHdyaXRlY2FjaGVmaWxlCitpbnN0ZWFkIG9mIHdyaXRpbmcgaXQgdG8gdGhlIGRlZmF1bHQgY2FjaGUgZmlsZQorLklSIC9ldGMvYmxraWQudGFiIC4KK0lmIHlvdSBkb24ndCB3YW50IHRvIHNhdmUgdGhlIGNhY2hlIHRvIHRoZSBkZWZhdWx0IGZpbGUsIHNwZWNpZnkKKy5JUiAvZGV2L251bGwuCitJZiBub3Qgc3BlY2lmaWVkIGl0IHdpbGwgYmUgdGhlIHNhbWUgZmlsZSBhcyB0aGF0IGdpdmVuIGJ5IHRoZQorLkIgXC1jCitvcHRpb24uCisuVFAKKy5JIGRldmljZQorRGlzcGxheSB0b2tlbnMgZnJvbSBvbmx5IHRoZSBzcGVjaWZpZWQgZGV2aWNlLiAgSXQgaXMgcG9zc2libGUgdG8KK2dpdmUgbXVsdGlwbGUKKy5JIGRldmljZQorb3B0aW9ucyBvbiB0aGUgY29tbWFuZCBsaW5lLiAgSWYgbm9uZSBpcyBnaXZlbiwgYWxsIGRldmljZXMgd2hpY2gKK2FwcGVhciBpbgorLkkgL3Byb2MvcGFydGl0aW9ucworYXJlIHNob3duLCBpZiB0aGV5IGFyZSByZWNvZ25pemVkLgorLlNIICJSRVRVUk4gQ09ERSIKK0lmIHRoZSBzcGVjaWZpZWQgdG9rZW4gd2FzIGZvdW5kLCBvciBpZiBhbnkgdGFncyB3ZXJlIHNob3duIGZyb20gKHNwZWNpZmllZCkKK2RldmljZXMsIDAgaXMgcmV0dXJuZWQuICBJZiB0aGUgc3BlY2lmaWVkIHRva2VuIHdhcyBub3QgZm91bmQsIG9yIG5vCisoc3BlY2lmaWVkKSBkZXZpY2VzIGNvdWxkIGJlIGlkZW50aWZpZWQsIGFuIGV4aXQgY29kZSBvZiAyIGlzIHJldHVybmVkLgorRm9yIHVzYWdlIG9yIG90aGVyIGVycm9ycywgYW4gZXhpdCBjb2RlIG9mIDQgaXMgcmV0dXJuZWQuCisuU0ggQVVUSE9SCisuQiBibGtpZAord2FzIHdyaXR0ZW4gYnkgQW5kcmVhcyBEaWxnZXIgZm9yIGxpYmJsa2lkIGFuZCBpbXByb3ZlZCBieSBUaGVvZG9yZSBUcydvCithbmQgS2FyZWwgWmFrLgorLlNIIEFWQUlMQUJJTElUWQorVGhlIGJsa2lkIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgorLlNIICJTRUUgQUxTTyIKKy5CUiBsaWJibGtpZCAoMykKKy5CUiBmaW5kZnMgKDgpCisuQlIgd2lwZWZzICg4KQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9ibGtpZC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9ibGtpZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjNjZlMGEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2Jsa2lkLmMKQEAgLTAsMCArMSw3NjAgQEAKKy8qCisgKiBibGtpZC5jIC0gVXNlciBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIGZvciBsaWJibGtpZAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMSBBbmRyZWFzIERpbGdlcgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2lmZGVmIEhBVkVfU1lTX0lPQ1RMX0gKKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfR0VUT1BUX0gKKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNlbHNlCitleHRlcm4gaW50IGdldG9wdChpbnQgYXJnYywgY2hhciAqIGNvbnN0IGFyZ3ZbXSwgY29uc3QgY2hhciAqb3B0c3RyaW5nKTsKK2V4dGVybiBjaGFyICpvcHRhcmc7CitleHRlcm4gaW50IG9wdGluZDsKKyNlbmRpZgorCisjZGVmaW5lIE9VVFBVVF9WQUxVRV9PTkxZCTB4MDAwMQorI2RlZmluZSBPVVRQVVRfREVWSUNFX09OTFkJMHgwMDAyCisjZGVmaW5lIE9VVFBVVF9QUkVUVFlfTElTVAkweDAwMDQKKyNkZWZpbmUgT1VUUFVUX1VERVZfTElTVAkweDAwMDgKKworI2luY2x1ZGUgPGJsa2lkLmg+CisKKyNpbmNsdWRlICJpc21vdW50ZWQuaCIKKworY29uc3QgY2hhciAqcHJvZ25hbWUgPSAiYmxraWQiOworCitzdGF0aWMgdm9pZCBwcmludF92ZXJzaW9uKEZJTEUgKm91dCkKK3sKKwlmcHJpbnRmKG91dCwgIiVzIGZyb20gJXMgKGxpYmJsa2lkICVzLCAlcylcbiIsCisJCXByb2duYW1lLCBQQUNLQUdFX1NUUklORywgTElCQkxLSURfVkVSU0lPTiwgTElCQkxLSURfREFURSk7Cit9CisKK3N0YXRpYyB2b2lkIHVzYWdlKGludCBlcnJvcikKK3sKKwlGSUxFICpvdXQgPSBlcnJvciA/IHN0ZGVyciA6IHN0ZG91dDsKKworCXByaW50X3ZlcnNpb24ob3V0KTsKKwlmcHJpbnRmKG91dCwKKwkJIlVzYWdlOlxuIgorCQkiICAlMSRzIC1MIDxsYWJlbD4gfCAtVSA8dXVpZD5cblxuIgorCQkiICAlMSRzIFstYyA8ZmlsZT5dIFstZ2hsTHZdIFstbyBmb3JtYXRdIFstcyA8dGFnPl0gXG4iCisJCSIgICAgICAgIFstdCA8dG9rZW4+XSBbLXcgPGZpbGU+XSBbZGV2IC4uLl1cblxuIgorCQkiICAlMSRzIC1wIFstTyA8b2Zmc2V0Pl0gWy1TIDxzaXplPl0gWy1vIGZvcm1hdF0gPGRldj4gW2RldiAuLi5dXG5cbiIKKwkJIk9wdGlvbnM6XG4iCisJCSIgIC1jIDxmaWxlPiAgIGNhY2hlIGZpbGUgKGRlZmF1bHQ6IC9ldGMvYmxraWQudGFiLCAvZGV2L251bGwgPSBub25lKVxuIgorCQkiICAtaCAgICAgICAgICBwcmludCB0aGlzIHVzYWdlIG1lc3NhZ2UgYW5kIGV4aXRcbiIKKwkJIiAgLWcgICAgICAgICAgZ2FyYmFnZSBjb2xsZWN0IHRoZSBibGtpZCBjYWNoZVxuIgorCQkiICAtbyA8Zm9ybWF0PiBvdXRwdXQgZm9ybWF0OyBjYW4gYmUgb25lIG9mOlxuIgorCQkiICAgICAgICAgICAgICB2YWx1ZSwgZGV2aWNlLCBsaXN0LCB1ZGV2IG9yIGZ1bGw7IChkZWZhdWx0OiBmdWxsKVxuIgorCQkiICAtcyA8dGFnPiAgICBzaG93IHNwZWNpZmllZCB0YWcocykgKGRlZmF1bHQgc2hvdyBhbGwgdGFncylcbiIKKwkJIiAgLXQgPHRva2VuPiAgZmluZCBkZXZpY2Ugd2l0aCBhIHNwZWNpZmljIHRva2VuIChOQU1FPXZhbHVlIHBhaXIpXG4iCisJCSIgIC1sICAgICAgICAgIGxvb2t1cCB0aGUgdGhlIGZpcnN0IGRldmljZSB3aXRoIGFyZ3VtZW50cyBzcGVjaWZpZWQgYnkgLXRcbiIKKwkJIiAgLUwgPGxhYmVsPiAgY29udmVydCBMQUJFTCB0byBkZXZpY2UgbmFtZVxuIgorCQkiICAtVSA8dXVpZD4gICBjb252ZXJ0IFVVSUQgdG8gZGV2aWNlIG5hbWVcbiIKKwkJIiAgLXYgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorCQkiICAtdyA8ZmlsZT4gICB3cml0ZSBjYWNoZSB0byBkaWZmZXJlbnQgZmlsZSAoL2Rldi9udWxsID0gbm8gd3JpdGUpXG4iCisJCSIgIDxkZXY+ICAgICAgIHNwZWNpZnkgZGV2aWNlKHMpIHRvIHByb2JlIChkZWZhdWx0OiBhbGwgZGV2aWNlcylcblxuIgorCQkiTG93LWxldmVsIHByb2Jpbmcgb3B0aW9uczpcbiIKKwkJIiAgLXAgICAgICAgICAgc3dpdGNoIHRvIGxvdy1sZXZlbCBtb2RlIChieXBhc3MgY2FjaGUpXG4iCisJCSIgIC1TIDxieXRlcz4gIG92ZXJ3cml0ZSBkZXZpY2Ugc2l6ZVxuIgorCQkiICAtTyA8Ynl0ZXM+ICBwcm9iZSBhdCB0aGUgZ2l2ZW4gb2Zmc2V0XG4iCisJCSIgIC11IDxsaXN0PiAgIGZpbHRlciBieSBcInVzYWdlXCIgKGUuZy4gLXUgZmlsZXN5c3RlbSxyYWlkKVxuIgorCQkiXG4iLAorCQkJCXByb2duYW1lKTsKKworCWV4aXQoZXJyb3IpOworfQorCisvKgorICogVGhpcyBmdW5jdGlvbiBkb2VzICJzYWZlIiBwcmludGluZy4gIEl0IHdpbGwgY29udmVydCBub24tcHJpbnRhYmxlCisgKiBBU0NJSSBjaGFyYWN0ZXJzIHVzaW5nICdeJyBhbmQgTS0gbm90YXRpb24uCisgKi8KK3N0YXRpYyB2b2lkIHNhZmVfcHJpbnQoY29uc3QgY2hhciAqY3AsIGludCBsZW4pCit7CisJdW5zaWduZWQgY2hhcgljaDsKKworCWlmIChsZW4gPCAwKQorCQlsZW4gPSBzdHJsZW4oY3ApOworCisJd2hpbGUgKGxlbi0tKSB7CisJCWNoID0gKmNwKys7CisJCWlmIChjaCA+IDEyOCkgeworCQkJZnB1dHMoIk0tIiwgc3Rkb3V0KTsKKwkJCWNoIC09IDEyODsKKwkJfQorCQlpZiAoKGNoIDwgMzIpIHx8IChjaCA9PSAweDdmKSkgeworCQkJZnB1dGMoJ14nLCBzdGRvdXQpOworCQkJY2ggXj0gMHg0MDsgLyogXkAsIF5BLCBeQjsgXj8gZm9yIERFTCAqLworCQl9CisJCWZwdXRjKGNoLCBzdGRvdXQpOworCX0KK30KKworc3RhdGljIGludCBnZXRfdGVybWluYWxfd2lkdGgodm9pZCkKK3sKKyNpZmRlZiBUSU9DR1NJWkUKKwlzdHJ1Y3QgdHR5c2l6ZQl0X3dpbjsKKyNlbmRpZgorI2lmZGVmIFRJT0NHV0lOU1oKKwlzdHJ1Y3Qgd2luc2l6ZQl3X3dpbjsKKyNlbmRpZgorICAgICAgICBjb25zdCBjaGFyCSpjcDsKKworI2lmZGVmIFRJT0NHU0laRQorCWlmIChpb2N0bCAoMCwgVElPQ0dTSVpFLCAmdF93aW4pID09IDApCisJCXJldHVybiAodF93aW4udHNfY29scyk7CisjZW5kaWYKKyNpZmRlZiBUSU9DR1dJTlNaCisJaWYgKGlvY3RsICgwLCBUSU9DR1dJTlNaLCAmd193aW4pID09IDApCisJCXJldHVybiAod193aW4ud3NfY29sKTsKKyNlbmRpZgorICAgICAgICBjcCA9IGdldGVudigiQ09MVU1OUyIpOworCWlmIChjcCkKKwkJcmV0dXJuIHN0cnRvbChjcCwgTlVMTCwgMTApOworCXJldHVybiA4MDsKK30KKworc3RhdGljIGludCBwcmV0dHlfcHJpbnRfd29yZChjb25zdCBjaGFyICpzdHIsIGludCBtYXhfbGVuLAorCQkJICAgICBpbnQgbGVmdF9sZW4sIGludCBvdmVyZmxvd19ubCkKK3sKKwlpbnQgbGVuID0gc3RybGVuKHN0cikgKyBsZWZ0X2xlbjsKKwlpbnQgcmV0ID0gMDsKKworCWZwdXRzKHN0ciwgc3Rkb3V0KTsKKwlpZiAob3ZlcmZsb3dfbmwgJiYgbGVuID4gbWF4X2xlbikgeworCQlmcHV0YygnXG4nLCBzdGRvdXQpOworCQlsZW4gPSAwOworCX0gZWxzZSBpZiAobGVuID4gbWF4X2xlbikKKwkJcmV0ID0gbGVuIC0gbWF4X2xlbjsKKwlkbworCQlmcHV0YygnICcsIHN0ZG91dCk7CisJd2hpbGUgKGxlbisrIDwgbWF4X2xlbik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgcHJldHR5X3ByaW50X2xpbmUoY29uc3QgY2hhciAqZGV2aWNlLCBjb25zdCBjaGFyICpmc190eXBlLAorCQkJICAgICAgY29uc3QgY2hhciAqbGFiZWwsIGNvbnN0IGNoYXIgKm10cHQsCisJCQkgICAgICBjb25zdCBjaGFyICp1dWlkKQoreworCXN0YXRpYyBpbnQgZGV2aWNlX2xlbiA9IDEwLCBmc190eXBlX2xlbiA9IDc7CisJc3RhdGljIGludCBsYWJlbF9sZW4gPSA4LCBtdHB0X2xlbiA9IDE0OworCXN0YXRpYyBpbnQgdGVybV93aWR0aCA9IC0xOworCWludCBsZW4sIHc7CisKKwlpZiAodGVybV93aWR0aCA8IDApCisJCXRlcm1fd2lkdGggPSBnZXRfdGVybWluYWxfd2lkdGgoKTsKKworCWlmICh0ZXJtX3dpZHRoID4gODApIHsKKwkJdGVybV93aWR0aCAtPSA4MDsKKwkJdyA9IHRlcm1fd2lkdGggLyAxMDsKKwkJaWYgKHcgPiA4KQorCQkJdyA9IDg7CisJCXRlcm1fd2lkdGggLT0gMip3OworCQlsYWJlbF9sZW4gKz0gdzsKKwkJZnNfdHlwZV9sZW4gKz0gdzsKKwkJdyA9IHRlcm1fd2lkdGgvMjsKKwkJZGV2aWNlX2xlbiArPSB3OworCQltdHB0X2xlbiArPXc7CisJfQorCisJbGVuID0gcHJldHR5X3ByaW50X3dvcmQoZGV2aWNlLCBkZXZpY2VfbGVuLCAwLCAxKTsKKwlsZW4gPSBwcmV0dHlfcHJpbnRfd29yZChmc190eXBlLCBmc190eXBlX2xlbiwgbGVuLCAwKTsKKwlsZW4gPSBwcmV0dHlfcHJpbnRfd29yZChsYWJlbCwgbGFiZWxfbGVuLCBsZW4sIDApOworCWxlbiA9IHByZXR0eV9wcmludF93b3JkKG10cHQsIG10cHRfbGVuLCBsZW4sIDApOworCWZwdXRzKHV1aWQsIHN0ZG91dCk7CisJZnB1dGMoJ1xuJywgc3Rkb3V0KTsKK30KKworc3RhdGljIHZvaWQgcHJldHR5X3ByaW50X2RldihibGtpZF9kZXYgZGV2KQoreworCWJsa2lkX3RhZ19pdGVyYXRlCWl0ZXI7CisJY29uc3QgY2hhcgkJKnR5cGUsICp2YWx1ZSwgKmRldm5hbWU7CisJY29uc3QgY2hhcgkJKnV1aWQgPSAiIiwgKmZzX3R5cGUgPSAiIiwgKmxhYmVsID0gIiI7CisJaW50CQkJbGVuLCBtb3VudF9mbGFnczsKKwljaGFyCQkJbXRwdFs4MF07CisJaW50CQkJcmV0dmFsOworCisJaWYgKGRldiA9PSBOVUxMKSB7CisJCXByZXR0eV9wcmludF9saW5lKCJkZXZpY2UiLCAiZnNfdHlwZSIsICJsYWJlbCIsCisJCQkJICAibW91bnQgcG9pbnQiLCAiVVVJRCIpOworCQlmb3IgKGxlbj1nZXRfdGVybWluYWxfd2lkdGgoKS0xOyBsZW4gPiAwOyBsZW4tLSkKKwkJCWZwdXRjKCctJywgc3Rkb3V0KTsKKwkJZnB1dGMoJ1xuJywgc3Rkb3V0KTsKKwkJcmV0dXJuOworCX0KKworCWRldm5hbWUgPSBibGtpZF9kZXZfZGV2bmFtZShkZXYpOworCWlmIChhY2Nlc3MoZGV2bmFtZSwgRl9PSykpCisJCXJldHVybjsKKworCS8qIEdldCB0aGUgdXVpZCwgbGFiZWwsIHR5cGUgKi8KKwlpdGVyID0gYmxraWRfdGFnX2l0ZXJhdGVfYmVnaW4oZGV2KTsKKwl3aGlsZSAoYmxraWRfdGFnX25leHQoaXRlciwgJnR5cGUsICZ2YWx1ZSkgPT0gMCkgeworCQlpZiAoIXN0cmNtcCh0eXBlLCAiVVVJRCIpKQorCQkJdXVpZCA9IHZhbHVlOworCQlpZiAoIXN0cmNtcCh0eXBlLCAiVFlQRSIpKQorCQkJZnNfdHlwZSA9IHZhbHVlOworCQlpZiAoIXN0cmNtcCh0eXBlLCAiTEFCRUwiKSkKKwkJCWxhYmVsID0gdmFsdWU7CisJfQorCWJsa2lkX3RhZ19pdGVyYXRlX2VuZChpdGVyKTsKKworCS8qIEdldCB0aGUgbW91bnQgcG9pbnQgKi8KKwltdHB0WzBdID0gMDsKKwlyZXR2YWwgPSBjaGVja19tb3VudF9wb2ludChkZXZuYW1lLCAmbW91bnRfZmxhZ3MsIG10cHQsIHNpemVvZihtdHB0KSk7CisJaWYgKHJldHZhbCA9PSAwKSB7CisJCWlmIChtb3VudF9mbGFncyAmIE1GX01PVU5URUQpIHsKKwkJCWlmICghbXRwdFswXSkKKwkJCQlzdHJjcHkobXRwdCwgIihtb3VudGVkLCBtdHB0IHVua25vd24pIik7CisJCX0gZWxzZSBpZiAobW91bnRfZmxhZ3MgJiBNRl9CVVNZKQorCQkJc3RyY3B5KG10cHQsICIoaW4gdXNlKSIpOworCQllbHNlCisJCQlzdHJjcHkobXRwdCwgIihub3QgbW91bnRlZCkiKTsKKwl9CisKKwlwcmV0dHlfcHJpbnRfbGluZShkZXZuYW1lLCBmc190eXBlLCBsYWJlbCwgbXRwdCwgdXVpZCk7Cit9CisKK3N0YXRpYyB2b2lkIHByaW50X3VkZXZfZm9ybWF0KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlLCBzaXplX3Qgc3opCit7CisJY2hhciBlbmNbMjY1XSwgc2FmZVsyNTZdOworCisJKnNhZmUgPSAqZW5jID0gJ1wwJzsKKworCWlmICghc3RyY21wKG5hbWUsICJUWVBFIikgfHwgIXN0cmNtcChuYW1lLCAiVkVSU0lPTiIpKSB7CisJCWJsa2lkX2VuY29kZV9zdHJpbmcodmFsdWUsIGVuYywgc2l6ZW9mKGVuYykpOworCQlwcmludGYoIklEX0ZTXyVzPSVzXG4iLCBuYW1lLCBlbmMpOworCisJfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJVVUlEIikgfHwKKwkJICFzdHJjbXAobmFtZSwgIkxBQkVMIikgfHwKKwkJICFzdHJjbXAobmFtZSwgIlVVSURfU1VCIikpIHsKKworCQlibGtpZF9zYWZlX3N0cmluZyh2YWx1ZSwgc2FmZSwgc2l6ZW9mKHNhZmUpKTsKKwkJcHJpbnRmKCJJRF9GU18lcz0lc1xuIiwgbmFtZSwgc2FmZSk7CisKKwkJYmxraWRfZW5jb2RlX3N0cmluZyh2YWx1ZSwgZW5jLCBzaXplb2YoZW5jKSk7CisJCXByaW50ZigiSURfRlNfJXNfRU5DPSVzXG4iLCBuYW1lLCBlbmMpOworCisJfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJQVFRZUEUiKSkKKwkJcHJpbnRmKCJJRF9QQVJUX1RBQkxFX1RZUEU9JXNcbiIsIHZhbHVlKTsKKworCS8qIFRPRE86ICBJRF9QQVJUX0VOVFJZX3tVVUlELE5BTUUsRkxBR30gKi8KKworCWVsc2UKKwkJcHJpbnRmKCJJRF9GU18lcz0lc1xuIiwgbmFtZSwgdmFsdWUpOworfQorCitzdGF0aWMgaW50IGhhc19pdGVtKGNoYXIgKmFyeVtdLCBjb25zdCBjaGFyICppdGVtKQoreworCWNoYXIgKipwOworCisJZm9yIChwID0gYXJ5OyAqcCAhPSBOVUxMOyBwKyspCisJCWlmICghc3RyY21wKGl0ZW0sICpwKSkKKwkJCXJldHVybiAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBwcmludF92YWx1ZShpbnQgb3V0cHV0LCBpbnQgbnVtLCBjb25zdCBjaGFyICpkZXZuYW1lLAorCQkJY29uc3QgY2hhciAqdmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCB2YWxzeikKK3sKKwlpZiAob3V0cHV0ICYgT1VUUFVUX1ZBTFVFX09OTFkpIHsKKwkJZnB1dHModmFsdWUsIHN0ZG91dCk7CisJCWZwdXRjKCdcbicsIHN0ZG91dCk7CisKKwl9IGVsc2UgaWYgKG91dHB1dCAmIE9VVFBVVF9VREVWX0xJU1QpIHsKKwkJcHJpbnRfdWRldl9mb3JtYXQobmFtZSwgdmFsdWUsIHZhbHN6KTsKKworCX0gZWxzZSB7CisJCWlmIChudW0gPT0gMSAmJiBkZXZuYW1lKQorCQkJcHJpbnRmKCIlczogIiwgZGV2bmFtZSk7CisJCWZwdXRzKG5hbWUsIHN0ZG91dCk7CisJCWZwdXRzKCI9XCIiLCBzdGRvdXQpOworCQlzYWZlX3ByaW50KHZhbHVlLCB2YWxzeik7CisJCWZwdXRzKCJcIiAiLCBzdGRvdXQpOworCX0KK30KKworc3RhdGljIHZvaWQgcHJpbnRfdGFncyhibGtpZF9kZXYgZGV2LCBjaGFyICpzaG93W10sIGludCBvdXRwdXQpCit7CisJYmxraWRfdGFnX2l0ZXJhdGUJaXRlcjsKKwljb25zdCBjaGFyCQkqdHlwZSwgKnZhbHVlLCAqZGV2bmFtZTsKKwlpbnQJCQludW0gPSAxOworCisJaWYgKCFkZXYpCisJCXJldHVybjsKKworCWlmIChvdXRwdXQgJiBPVVRQVVRfUFJFVFRZX0xJU1QpIHsKKwkJcHJldHR5X3ByaW50X2RldihkZXYpOworCQlyZXR1cm47CisJfQorCisJZGV2bmFtZSA9IGJsa2lkX2Rldl9kZXZuYW1lKGRldik7CisKKwlpZiAob3V0cHV0ICYgT1VUUFVUX0RFVklDRV9PTkxZKSB7CisJCXByaW50ZigiJXNcbiIsIGRldm5hbWUpOworCQlyZXR1cm47CisJfQorCisJaXRlciA9IGJsa2lkX3RhZ19pdGVyYXRlX2JlZ2luKGRldik7CisJd2hpbGUgKGJsa2lkX3RhZ19uZXh0KGl0ZXIsICZ0eXBlLCAmdmFsdWUpID09IDApIHsKKwkJaWYgKHNob3dbMF0gJiYgIWhhc19pdGVtKHNob3csIHR5cGUpKQorCQkJY29udGludWU7CisJCXByaW50X3ZhbHVlKG91dHB1dCwgbnVtKyssIGRldm5hbWUsIHZhbHVlLCB0eXBlLCBzdHJsZW4odmFsdWUpKTsKKwl9CisJYmxraWRfdGFnX2l0ZXJhdGVfZW5kKGl0ZXIpOworCisJaWYgKG51bSA+IDEgJiYgIShvdXRwdXQgJiAoT1VUUFVUX1ZBTFVFX09OTFkgfCBPVVRQVVRfVURFVl9MSVNUKSkpCisJCXByaW50ZigiXG4iKTsKK30KKworCitzdGF0aWMgaW50IGFwcGVuZF9zdHIoY2hhciAqKnJlcywgc2l6ZV90ICpzeiwgY29uc3QgY2hhciAqYSwgY29uc3QgY2hhciAqYikKK3sKKwljaGFyICpzdHIgPSAqcmVzOworCXNpemVfdCBhc3ogPSBhID8gc3RybGVuKGEpIDogMDsKKwlzaXplX3QgYnN6ID0gYiA/IHN0cmxlbihiKSA6IDA7CisJc2l6ZV90IGxlbiA9ICpzeiArIGFzeiArIGJzejsKKworCWlmICghbGVuKQorCQlyZXR1cm4gLTE7CisKKwlzdHIgPSByZWFsbG9jKHN0ciwgbGVuICsgMSk7CisJaWYgKCFzdHIpIHsKKwkJZnJlZSgqcmVzKTsKKwkJcmV0dXJuIC0xOworCX0KKwkqcmVzID0gc3RyOworCXN0ciArPSAqc3o7CisKKwlpZiAoYSkgeworCQltZW1jcHkoc3RyLCBhLCBhc3opOworCQlzdHIgKz0gYXN6OworCX0KKwlpZiAoYikgeworCQltZW1jcHkoc3RyLCBiLCBic3opOworCQlzdHIgKz0gYnN6OworCX0KKwkqc3RyID0gJ1wwJzsKKwkqc3ogPSBsZW47CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDb21wb3NlIGFuZCBwcmludCBJRF9GU19BTUJJVkFMRU5UIGZvciB1ZGV2CisgKi8KK3N0YXRpYyBpbnQgcHJpbnRfdWRldl9hbWJpdmFsZW50KGJsa2lkX3Byb2JlIHByKQoreworCWNoYXIgKnZhbCA9IE5VTEw7CisJc2l6ZV90IHZhbHN6ID0gMDsKKwlpbnQgY291bnQgPSAwLCByYyA9IC0xOworCisJd2hpbGUgKCFibGtpZF9kb19wcm9iZShwcikpIHsKKwkJY29uc3QgY2hhciAqdXNhZ2UgPSBOVUxMLCAqdHlwZSA9IE5VTEwsICp2ZXJzaW9uID0gTlVMTDsKKwkJY2hhciBlbmNbMjU2XTsKKworCQlibGtpZF9wcm9iZV9sb29rdXBfdmFsdWUocHIsICJVU0FHRSIsICZ1c2FnZSwgTlVMTCk7CisJCWJsa2lkX3Byb2JlX2xvb2t1cF92YWx1ZShwciwgIlRZUEUiLCAmdHlwZSwgTlVMTCk7CisJCWJsa2lkX3Byb2JlX2xvb2t1cF92YWx1ZShwciwgIlZFUlNJT04iLCAmdmVyc2lvbiwgTlVMTCk7CisKKwkJaWYgKCF1c2FnZSB8fCAhdHlwZSkKKwkJCWNvbnRpbnVlOworCisJCWJsa2lkX2VuY29kZV9zdHJpbmcodXNhZ2UsIGVuYywgc2l6ZW9mKGVuYykpOworCQlpZiAoYXBwZW5kX3N0cigmdmFsLCAmdmFsc3osIGVuYywgIjoiKSkKKwkJCWdvdG8gZG9uZTsKKworCQlibGtpZF9lbmNvZGVfc3RyaW5nKHR5cGUsIGVuYywgc2l6ZW9mKGVuYykpOworCQlpZiAoYXBwZW5kX3N0cigmdmFsLCAmdmFsc3osIGVuYywgdmVyc2lvbiA/ICI6IiA6ICIgIikpCisJCQlnb3RvIGRvbmU7CisKKwkJaWYgKHZlcnNpb24pIHsKKwkJCWJsa2lkX2VuY29kZV9zdHJpbmcodmVyc2lvbiwgZW5jLCBzaXplb2YoZW5jKSk7CisJCQlpZiAoYXBwZW5kX3N0cigmdmFsLCAmdmFsc3osIGVuYywgIiAiKSkKKwkJCQlnb3RvIGRvbmU7CisJCX0KKwkJY291bnQrKzsKKwl9CisKKwlpZiAoY291bnQgPiAxKSB7CisJCSoodmFsICsgdmFsc3ogLSAxKSA9ICdcMCc7CQkvKiByZW0gdGFpbGluZyB3aGl0ZXNwYWNlICovCisJCXByaW50ZigiSURfRlNfQU1CSVZBTEVOPSVzXG4iLCB2YWwpOworCQlyYyA9IDA7CisJfQorZG9uZToKKwlmcmVlKHZhbCk7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGxvd3Byb2JlX2RldmljZShibGtpZF9wcm9iZSBwciwgY29uc3QgY2hhciAqZGV2bmFtZSwJY2hhciAqc2hvd1tdLAorCQkJaW50IG91dHB1dCwgYmxraWRfbG9mZl90IG9mZnNldCwgYmxraWRfbG9mZl90IHNpemUpCit7CisJY29uc3QgY2hhciAqZGF0YTsKKwljb25zdCBjaGFyICpuYW1lOworCWludCBudmFscyA9IDAsIG4sIG51bSA9IDE7CisJc2l6ZV90IGxlbjsKKwlpbnQgZmQ7CisJaW50IHJjID0gMDsKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCWZkID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSk7CisJaWYgKGZkIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgImVycm9yOiAlczogJXNcbiIsIGRldm5hbWUsIHN0cmVycm9yKGVycm5vKSk7CisJCXJldHVybiAyOworCX0KKwlpZiAoYmxraWRfcHJvYmVfc2V0X2RldmljZShwciwgZmQsIG9mZnNldCwgc2l6ZSkpCisJCWdvdG8gZG9uZTsKKworCWlmIChmc3RhdChmZCwgJnN0KSkKKwkJZ290byBkb25lOworCS8qCisJICogcGFydGl0aW9ucyBwcm9iaW5nCisJICovCisJYmxraWRfcHJvYmVfZW5hYmxlX3N1cGVyYmxvY2tzKHByLCAwKTsJLyogZW5hYmxlZCBieSBkZWZhdWx0IDstKCAqLworCisJYmxraWRfcHJvYmVfZW5hYmxlX3BhcnRpdGlvbnMocHIsIDEpOworCXJjID0gYmxraWRfZG9fZnVsbHByb2JlKHByKTsKKwlibGtpZF9wcm9iZV9lbmFibGVfcGFydGl0aW9ucyhwciwgMCk7CisKKwlpZiAocmMgPCAwKQorCQlnb3RvIGRvbmU7CS8qIC0xID0gZXJyb3IsIDEgPSBub3RoaW5nLCAwID0gc3VjY2VzICovCisKKwkvKgorCSAqIERvbid0IHByb2JlIGZvciBGUy9SQUlEcyBvbiBzbWFsbCBkZXZpY2VzCisJICovCisJaWYgKHJjIHx8IFNfSVNDSFIoc3Quc3RfbW9kZSkgfHwKKwkgICAgYmxraWRfcHJvYmVfZ2V0X3NpemUocHIpID4gMTAyNCAqIDE0NDApIHsKKwkJLyoKKwkJICogZmlsZXN5c3RlbXMvUkFJRHMgcHJvYmluZworCQkgKi8KKwkJYmxraWRfcHJvYmVfZW5hYmxlX3N1cGVyYmxvY2tzKHByLCAxKTsKKworCQlyYyA9IGJsa2lkX2RvX3NhZmVwcm9iZShwcik7CisJCWlmIChyYyA8IDApCisJCQlnb3RvIGRvbmU7CisJfQorCisJbnZhbHMgPSBibGtpZF9wcm9iZV9udW1vZl92YWx1ZXMocHIpOworCisJaWYgKG91dHB1dCAmIE9VVFBVVF9ERVZJQ0VfT05MWSkgeworCQlwcmludGYoIiVzXG4iLCBkZXZuYW1lKTsKKwkJZ290byBkb25lOworCX0KKworCWZvciAobiA9IDA7IG4gPCBudmFsczsgbisrKSB7CisJCWlmIChibGtpZF9wcm9iZV9nZXRfdmFsdWUocHIsIG4sICZuYW1lLCAmZGF0YSwgJmxlbikpCisJCQljb250aW51ZTsKKwkJaWYgKHNob3dbMF0gJiYgIWhhc19pdGVtKHNob3csIG5hbWUpKQorCQkJY29udGludWU7CisJCWxlbiA9IHN0cm5sZW4oKGNoYXIgKikgZGF0YSwgbGVuKTsKKwkJcHJpbnRfdmFsdWUob3V0cHV0LCBudW0rKywgZGV2bmFtZSwgKGNoYXIgKikgZGF0YSwgbmFtZSwgbGVuKTsKKwl9CisKKwlpZiAobnZhbHMgPj0gMSAmJiAhKG91dHB1dCAmIChPVVRQVVRfVkFMVUVfT05MWSB8IE9VVFBVVF9VREVWX0xJU1QpKSkKKwkJcHJpbnRmKCJcbiIpOworZG9uZToKKwlpZiAocmMgPT0gLTIpIHsKKwkJaWYgKG91dHB1dCAmIE9VVFBVVF9VREVWX0xJU1QpCisJCQlwcmludF91ZGV2X2FtYml2YWxlbnQocHIpOworCQllbHNlCisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkiJXM6IGFtYml2YWxlbnQgcmVzdWx0IChwcm9iYWJseSBtb3JlICIKKwkJCQkiZmlsZXN5c3RlbXMgb24gdGhlIGRldmljZSwgdXNlIHdpcGVmcyg4KSAiCisJCQkJInRvIHNlZSBtb3JlIGRldGFpbHMpXG4iLAorCQkJCWRldm5hbWUpOworCX0KKwljbG9zZShmZCk7CisJcmV0dXJuICFudmFscyA/IDIgOiAwOworfQorCisvKiBjb252ZXJ0cyBjb21tYSBzZXBhcmF0ZWQgbGlzdCB0byBCTEtJRF9VU0FHRV8qIG1hc2sgKi8KK3N0YXRpYyBpbnQgbGlzdF90b191c2FnZShjb25zdCBjaGFyICpsaXN0LCBpbnQgKmZsYWcpCit7CisJaW50IG1hc2sgPSAwOworCWNvbnN0IGNoYXIgKndvcmQsICpwID0gbGlzdDsKKworCWlmIChwICYmIHN0cm5jbXAocCwgIm5vIiwgMikgPT0gMCkgeworCQkqZmxhZyA9IEJMS0lEX0ZMVFJfTk9USU47CisJCXAgKz0gMjsKKwl9CisKKwlmb3IgKHdvcmQgPSBwOyBwICYmICpwOyBwKyspIHsKKwkJaWYgKCpwID09ICcsJyB8fCAqKHAgKyAxKSA9PSAnXDAnKSB7CisJCQlpZiAoIXN0cm5jbXAod29yZCwgImZpbGVzeXN0ZW0iLCAxMCkpCisJCQkJbWFzayB8PSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNOworCQkJZWxzZSBpZiAoIXN0cm5jbXAod29yZCwgInJhaWQiLCA0KSkKKwkJCQltYXNrIHw9IEJMS0lEX1VTQUdFX1JBSUQ7CisJCQllbHNlIGlmICghc3RybmNtcCh3b3JkLCAiY3J5cHRvIiwgNikpCisJCQkJbWFzayB8PSBCTEtJRF9VU0FHRV9DUllQVE87CisJCQllbHNlIGlmICghc3RybmNtcCh3b3JkLCAib3RoZXIiLCA1KSkKKwkJCQltYXNrIHw9IEJMS0lEX1VTQUdFX09USEVSOworCQkJZWxzZSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJ1bmtub3duIHVzYWdlIGtleXdvcmQgJyUqcydcbiIsCisJCQkJCQkoaW50KSAocCAtIHdvcmQpLCB3b3JkKTsKKwkJCQlleGl0KDQpOworCQkJfQorCQkJd29yZCA9IHAgKyAxOworCQl9CisJfQorCXJldHVybiBtYXNrOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJYmxraWRfY2FjaGUgY2FjaGUgPSBOVUxMOworCWNoYXIgKmRldmljZXNbMTI4XSA9IHsgTlVMTCwgfTsKKwljaGFyICpzaG93WzEyOF0gPSB7IE5VTEwsIH07CisJY2hhciAqc2VhcmNoX3R5cGUgPSBOVUxMLCAqc2VhcmNoX3ZhbHVlID0gTlVMTDsKKwljaGFyICpyZWFkID0gTlVMTDsKKwljaGFyICp3cml0ZSA9IE5VTEw7CisJaW50IGZsdHJfdXNhZ2UgPSAwOworCWludCBmbHRyX2ZsYWcgPSBCTEtJRF9GTFRSX09OTFlJTjsKKwl1bnNpZ25lZCBpbnQgbnVtZGV2ID0gMCwgbnVtdGFnID0gMDsKKwlpbnQgdmVyc2lvbiA9IDA7CisJaW50IGVyciA9IDQ7CisJdW5zaWduZWQgaW50IGk7CisJaW50IG91dHB1dF9mb3JtYXQgPSAwOworCWludCBsb29rdXAgPSAwLCBnYyA9IDAsIGxvd3Byb2JlID0gMCwgZXZhbCA9IDA7CisJaW50IGM7CisJYmxraWRfbG9mZl90IG9mZnNldCA9IDAsIHNpemUgPSAwOworCisJc2hvd1swXSA9IE5VTEw7CisKKwl3aGlsZSAoKGMgPSBnZXRvcHQgKGFyZ2MsIGFyZ3YsICJjOmY6Z2hsTDpvOk86cHM6Uzp0OnU6VTp3OnYiKSkgIT0gRU9GKQorCQlzd2l0Y2ggKGMpIHsKKwkJY2FzZSAnYyc6CisJCQlpZiAob3B0YXJnICYmICEqb3B0YXJnKQorCQkJCXJlYWQgPSBOVUxMOworCQkJZWxzZQorCQkJCXJlYWQgPSBvcHRhcmc7CisJCQlpZiAoIXdyaXRlKQorCQkJCXdyaXRlID0gcmVhZDsKKwkJCWJyZWFrOworCQljYXNlICdMJzoKKwkJCWV2YWwrKzsKKwkJCXNlYXJjaF92YWx1ZSA9IHN0cmR1cChvcHRhcmcpOworCQkJc2VhcmNoX3R5cGUgPSBzdHJkdXAoIkxBQkVMIik7CisJCQlicmVhazsKKwkJY2FzZSAndSc6CisJCQlmbHRyX3VzYWdlID0gbGlzdF90b191c2FnZShvcHRhcmcsICZmbHRyX2ZsYWcpOworCQkJYnJlYWs7CisJCWNhc2UgJ1UnOgorCQkJZXZhbCsrOworCQkJc2VhcmNoX3ZhbHVlID0gc3RyZHVwKG9wdGFyZyk7CisJCQlzZWFyY2hfdHlwZSA9IHN0cmR1cCgiVVVJRCIpOworCQkJYnJlYWs7CisJCWNhc2UgJ2wnOgorCQkJbG9va3VwKys7CisJCQlicmVhazsKKwkJY2FzZSAnZyc6CisJCQlnYyA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnbyc6CisJCQlpZiAoIXN0cmNtcChvcHRhcmcsICJ2YWx1ZSIpKQorCQkJCW91dHB1dF9mb3JtYXQgPSBPVVRQVVRfVkFMVUVfT05MWTsKKwkJCWVsc2UgaWYgKCFzdHJjbXAob3B0YXJnLCAiZGV2aWNlIikpCisJCQkJb3V0cHV0X2Zvcm1hdCA9IE9VVFBVVF9ERVZJQ0VfT05MWTsKKwkJCWVsc2UgaWYgKCFzdHJjbXAob3B0YXJnLCAibGlzdCIpKQorCQkJCW91dHB1dF9mb3JtYXQgPSBPVVRQVVRfUFJFVFRZX0xJU1Q7CisJCQllbHNlIGlmICghc3RyY21wKG9wdGFyZywgInVkZXYiKSkKKwkJCQlvdXRwdXRfZm9ybWF0ID0gT1VUUFVUX1VERVZfTElTVDsKKwkJCWVsc2UgaWYgKCFzdHJjbXAob3B0YXJnLCAiZnVsbCIpKQorCQkJCW91dHB1dF9mb3JtYXQgPSAwOworCQkJZWxzZSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJJbnZhbGlkIG91dHB1dCBmb3JtYXQgJXMuICIKKwkJCQkJIkNob29zZSBmcm9tIHZhbHVlLFxuXHQiCisJCQkJCSJkZXZpY2UsIGxpc3QsIHVkZXYgb3IgZnVsbFxuIiwgb3B0YXJnKTsKKwkJCQlleGl0KDQpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgJ08nOgorCQkJb2Zmc2V0ID0gc3RydG9sbChvcHRhcmcsIE5VTEwsIDEwKTsKKwkJCWJyZWFrOworCQljYXNlICdwJzoKKwkJCWxvd3Byb2JlKys7CisJCQlicmVhazsKKwkJY2FzZSAncyc6CisJCQlpZiAobnVtdGFnICsgMSA+PSBzaXplb2Yoc2hvdykgLyBzaXplb2YoKnNob3cpKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJUb28gbWFueSB0YWdzIHNwZWNpZmllZFxuIik7CisJCQkJdXNhZ2UoZXJyKTsKKwkJCX0KKwkJCXNob3dbbnVtdGFnKytdID0gb3B0YXJnOworCQkJc2hvd1tudW10YWddID0gTlVMTDsKKwkJCWJyZWFrOworCQljYXNlICdTJzoKKwkJCXNpemUgPSBzdHJ0b2xsKG9wdGFyZywgTlVMTCwgMTApOworCQkJYnJlYWs7CisJCWNhc2UgJ3QnOgorCQkJaWYgKHNlYXJjaF90eXBlKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJDYW4gb25seSBzZWFyY2ggZm9yICIKKwkJCQkJCSJvbmUgTkFNRT12YWx1ZSBwYWlyXG4iKTsKKwkJCQl1c2FnZShlcnIpOworCQkJfQorCQkJaWYgKGJsa2lkX3BhcnNlX3RhZ19zdHJpbmcob3B0YXJnLAorCQkJCQkJICAgJnNlYXJjaF90eXBlLAorCQkJCQkJICAgJnNlYXJjaF92YWx1ZSkpIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgIi10IG5lZWRzIE5BTUU9dmFsdWUgcGFpclxuIik7CisJCQkJdXNhZ2UoZXJyKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlICd2JzoKKwkJCXZlcnNpb24gPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3cnOgorCQkJaWYgKG9wdGFyZyAmJiAhKm9wdGFyZykKKwkJCQl3cml0ZSA9IE5VTEw7CisJCQllbHNlCisJCQkJd3JpdGUgPSBvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAnaCc6CisJCQllcnIgPSAwOworCQlkZWZhdWx0OgorCQkJdXNhZ2UoZXJyKTsKKwkJfQorCisJd2hpbGUgKG9wdGluZCA8IGFyZ2MpCisJCWRldmljZXNbbnVtZGV2KytdID0gYXJndltvcHRpbmQrK107CisKKwlpZiAodmVyc2lvbikgeworCQlwcmludF92ZXJzaW9uKHN0ZG91dCk7CisJCWdvdG8gZXhpdDsKKwl9CisKKwkvKiBjb252ZXJ0IExBQkVML1VVSUQgbG9va3VwIHRvIGV2YWx1YXRlIHJlcXVlc3QgKi8KKwlpZiAobG9va3VwICYmIG91dHB1dF9mb3JtYXQgPT0gT1VUUFVUX0RFVklDRV9PTkxZICYmIHNlYXJjaF90eXBlICYmCisJICAgICghc3RyY21wKHNlYXJjaF90eXBlLCAiTEFCRUwiKSB8fCAhc3RyY21wKHNlYXJjaF90eXBlLCAiVVVJRCIpKSkgeworCQlldmFsKys7CisJCWxvb2t1cCA9IDA7CisJfQorCisJaWYgKCFsb3dwcm9iZSAmJiAhZXZhbCAmJiBibGtpZF9nZXRfY2FjaGUoJmNhY2hlLCByZWFkKSA8IDApCisJCWdvdG8gZXhpdDsKKworCWlmIChnYykgeworCQlibGtpZF9nY19jYWNoZShjYWNoZSk7CisJCWVyciA9IDA7CisJCWdvdG8gZXhpdDsKKwl9CisJZXJyID0gMjsKKworCWlmIChldmFsID09IDAgJiYgb3V0cHV0X2Zvcm1hdCAmIE9VVFBVVF9QUkVUVFlfTElTVCkgeworCQlpZiAobG93cHJvYmUpIHsKKwkJCWZwcmludGYoc3RkZXJyLCAiVGhlIGxvdy1sZXZlbCBwcm9iaW5nIG1vZGUgZG9lcyBub3QgIgorCQkJCQkic3VwcG9ydCAnbGlzdCcgb3V0cHV0IGZvcm1hdFxuIik7CisJCQlleGl0KDQpOworCQl9CisJCXByZXR0eV9wcmludF9kZXYoTlVMTCk7CisJfQorCisJaWYgKGxvd3Byb2JlKSB7CisJCS8qCisJCSAqIExvdy1sZXZlbCBBUEkKKwkJICovCisJCWJsa2lkX3Byb2JlIHByOworCisJCWlmICghbnVtZGV2KSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIlRoZSBsb3ctbGV2ZWwgcHJvYmluZyBtb2RlICIKKwkJCQkJInJlcXVpcmVzIGEgZGV2aWNlXG4iKTsKKwkJCWV4aXQoNCk7CisJCX0KKwkJcHIgPSBibGtpZF9uZXdfcHJvYmUoKTsKKwkJaWYgKCFwcikKKwkJCWdvdG8gZXhpdDsKKworCQlibGtpZF9wcm9iZV9zZXRfc3VwZXJibG9ja3NfZmxhZ3MocHIsCisJCQkJQkxLSURfU1VCTEtTX0xBQkVMIHwgQkxLSURfU1VCTEtTX1VVSUQgfAorCQkJCUJMS0lEX1NVQkxLU19UWVBFIHwgQkxLSURfU1VCTEtTX1NFQ1RZUEUgfAorCQkJCUJMS0lEX1NVQkxLU19VU0FHRSB8IEJMS0lEX1NVQkxLU19WRVJTSU9OKTsKKworCQlpZiAoZmx0cl91c2FnZSAmJgorCQkgICAgYmxraWRfcHJvYmVfZmlsdGVyX3N1cGVyYmxvY2tzX3VzYWdlKHByLCBmbHRyX2ZsYWcsIGZsdHJfdXNhZ2UpKQorCQkJZ290byBleGl0OworCisJCWZvciAoaSA9IDA7IGkgPCBudW1kZXY7IGkrKykKKwkJCWVyciA9IGxvd3Byb2JlX2RldmljZShwciwgZGV2aWNlc1tpXSwgc2hvdywKKwkJCQkJb3V0cHV0X2Zvcm1hdCwgb2Zmc2V0LCBzaXplKTsKKwkJYmxraWRfZnJlZV9wcm9iZShwcik7CisJfSBlbHNlIGlmIChldmFsKSB7CisJCS8qCisJCSAqIEV2YWx1YXRlIEFQSQorCQkgKi8KKwkJY2hhciAqcmVzID0gYmxraWRfZXZhbHVhdGVfdGFnKHNlYXJjaF90eXBlLCBzZWFyY2hfdmFsdWUsIE5VTEwpOworCQlpZiAocmVzKSB7CisJCQllcnIgPSAwOworCQkJcHJpbnRmKCIlc1xuIiwgcmVzKTsKKwkJfQorCX0gZWxzZSBpZiAobG9va3VwKSB7CisJCS8qCisJCSAqIENsYXNzaWMgKGNhY2hlIGJhc2VkKSBBUEkKKwkJICovCisJCWJsa2lkX2RldiBkZXY7CisKKwkJaWYgKCFzZWFyY2hfdHlwZSkgeworCQkJZnByaW50ZihzdGRlcnIsICJUaGUgbG9va3VwIG9wdGlvbiByZXF1aXJlcyBhICIKKwkJCQkic2VhcmNoIHR5cGUgc3BlY2lmaWVkIHVzaW5nIC10XG4iKTsKKwkJCWV4aXQoNCk7CisJCX0KKwkJLyogTG9hZCBhbnkgYWRkaXRpb25hbCBkZXZpY2VzIG5vdCBpbiB0aGUgY2FjaGUgKi8KKwkJZm9yIChpID0gMDsgaSA8IG51bWRldjsgaSsrKQorCQkJYmxraWRfZ2V0X2RldihjYWNoZSwgZGV2aWNlc1tpXSwgQkxLSURfREVWX05PUk1BTCk7CisKKwkJaWYgKChkZXYgPSBibGtpZF9maW5kX2Rldl93aXRoX3RhZyhjYWNoZSwgc2VhcmNoX3R5cGUsCisJCQkJCQkgICBzZWFyY2hfdmFsdWUpKSkgeworCQkJcHJpbnRfdGFncyhkZXYsIHNob3csIG91dHB1dF9mb3JtYXQpOworCQkJZXJyID0gMDsKKwkJfQorCS8qIElmIHdlIGRpZG4ndCBzcGVjaWZ5IGEgc2luZ2xlIGRldmljZSwgc2hvdyBhbGwgYXZhaWxhYmxlIGRldmljZXMgKi8KKwl9IGVsc2UgaWYgKCFudW1kZXYpIHsKKwkJYmxraWRfZGV2X2l0ZXJhdGUJaXRlcjsKKwkJYmxraWRfZGV2CQlkZXY7CisKKwkJYmxraWRfcHJvYmVfYWxsKGNhY2hlKTsKKworCQlpdGVyID0gYmxraWRfZGV2X2l0ZXJhdGVfYmVnaW4oY2FjaGUpOworCQlibGtpZF9kZXZfc2V0X3NlYXJjaChpdGVyLCBzZWFyY2hfdHlwZSwgc2VhcmNoX3ZhbHVlKTsKKwkJd2hpbGUgKGJsa2lkX2Rldl9uZXh0KGl0ZXIsICZkZXYpID09IDApIHsKKwkJCWRldiA9IGJsa2lkX3ZlcmlmeShjYWNoZSwgZGV2KTsKKwkJCWlmICghZGV2KQorCQkJCWNvbnRpbnVlOworCQkJcHJpbnRfdGFncyhkZXYsIHNob3csIG91dHB1dF9mb3JtYXQpOworCQkJZXJyID0gMDsKKwkJfQorCQlibGtpZF9kZXZfaXRlcmF0ZV9lbmQoaXRlcik7CisJLyogQWRkIGFsbCBzcGVjaWZpZWQgZGV2aWNlcyB0byBjYWNoZSAob3B0aW9uYWxseSBkaXNwbGF5IHRhZ3MpICovCisJfSBlbHNlIGZvciAoaSA9IDA7IGkgPCBudW1kZXY7IGkrKykgeworCQlibGtpZF9kZXYgZGV2ID0gYmxraWRfZ2V0X2RldihjYWNoZSwgZGV2aWNlc1tpXSwKKwkJCQkJCSAgQkxLSURfREVWX05PUk1BTCk7CisKKwkJaWYgKGRldikgeworCQkJaWYgKHNlYXJjaF90eXBlICYmCisJCQkgICAgIWJsa2lkX2Rldl9oYXNfdGFnKGRldiwgc2VhcmNoX3R5cGUsCisJCQkJCSAgICAgICBzZWFyY2hfdmFsdWUpKQorCQkJCWNvbnRpbnVlOworCQkJcHJpbnRfdGFncyhkZXYsIHNob3csIG91dHB1dF9mb3JtYXQpOworCQkJZXJyID0gMDsKKwkJfQorCX0KKworZXhpdDoKKwlmcmVlKHNlYXJjaF90eXBlKTsKKwlmcmVlKHNlYXJjaF92YWx1ZSk7CisJaWYgKCFsb3dwcm9iZSAmJiAhZXZhbCkKKwkJYmxraWRfcHV0X2NhY2hlKGNhY2hlKTsKKwlyZXR1cm4gZXJyOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9jYWwuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvY2FsLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjExZjYwNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvY2FsLjEKQEAgLTAsMCArMSwxMDMgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5ODksIDE5OTAsIDE5OTMKKy5cIglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy5cIgorLlwiIFRoaXMgY29kZSBpcyBkZXJpdmVkIGZyb20gc29mdHdhcmUgY29udHJpYnV0ZWQgdG8gQmVya2VsZXkgYnkKKy5cIiBLaW0gTGV0a2VtYW4uCisuXCIKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisuXCIgICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorLlwiCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKy5cIglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKy5cIiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorLlwiICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKy5cIiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy5cIiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorLlwiIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorLlwiIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisuXCIgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKy5cIiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKy5cIiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLlwiIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKy5cIiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisuXCIgU1VDSCBEQU1BR0UuCisuXCIKKy5cIiAgICAgQCgjKWNhbC4xCTguMSAoQmVya2VsZXkpIDYvNi85MworLlwiCisuRGQgSnVuZSA2LCAxOTkzCisuRHQgQ0FMIDEKKy5PcworLlNoIE5BTUUKKy5ObSBjYWwKKy5OZCBkaXNwbGF5cyBhIGNhbGVuZGFyCisuU2ggU1lOT1BTSVMKKy5ObSBjYWwKKy5PcCBGbCBzbWp5MTMKKy5PcCBbIFsgQXIgZGF5IF0gQXIgbW9udGggXSBBciB5ZWFyCisuU2ggREVTQ1JJUFRJT04KKy5ObSBDYWwKK2Rpc3BsYXlzIGEgc2ltcGxlIGNhbGVuZGFyLgorSWYgYXJndW1lbnRzIGFyZSBub3Qgc3BlY2lmaWVkLAordGhlIGN1cnJlbnQgbW9udGggaXMgZGlzcGxheWVkLgorVGhlIG9wdGlvbnMgYXJlIGFzIGZvbGxvd3M6CisuQmwgLXRhZyAtd2lkdGggRHMKKy5JdCBGbCAxCitEaXNwbGF5IHNpbmdsZSBtb250aCBvdXRwdXQuCisoVGhpcyBpcyB0aGUgZGVmYXVsdC4pCisuSXQgRmwgMworRGlzcGxheSBwcmV2L2N1cnJlbnQvbmV4dCBtb250aCBvdXRwdXQuCisuSXQgRmwgcworRGlzcGxheSBTdW5kYXkgYXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay4KKy5JdCBGbCBtCitEaXNwbGF5IE1vbmRheSBhcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorLkl0IEZsIGoKK0Rpc3BsYXkgSnVsaWFuIGRhdGVzIChkYXlzIG9uZS1iYXNlZCwgbnVtYmVyZWQgZnJvbSBKYW51YXJ5IDEpLgorLkl0IEZsIHkKK0Rpc3BsYXkgYSBjYWxlbmRhciBmb3IgdGhlIGN1cnJlbnQgeWVhci4KKy5JdCBGbCBWCitEaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQuCisuRWwKKy5QcAorQSBzaW5nbGUgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgeWVhciAoMSAtIDk5OTkpIHRvIGJlIGRpc3BsYXllZDsKK25vdGUgdGhlIHllYXIgbXVzdCBiZSBmdWxseSBzcGVjaWZpZWQ6CisuRHEgTGkgY2FsIDg5Cit3aWxsCisuRW0gbm90CitkaXNwbGF5IGEgY2FsZW5kYXIgZm9yIDE5ODkuCitUd28gcGFyYW1ldGVycyBkZW5vdGUgdGhlIG1vbnRoICgxIC0gMTIpIGFuZCB5ZWFyLgorVGhyZWUgcGFyYW1ldGVycyBkZW5vdGUgdGhlIGRheSAoMS0zMSksIG1vbnRoIGFuZCB5ZWFyLAorYW5kIHRoZSBkYXkgd2lsbCBiZSBoaWdobGlnaHRlZCBpZiB0aGUgY2FsZW5kYXIgaXMgZGlzcGxheWVkIG9uIGEgdGVybWluYWwuCitJZiBubyBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQsIHRoZSBjdXJyZW50IG1vbnRoJ3MgY2FsZW5kYXIgaXMKK2Rpc3BsYXllZC4KKy5QcAorQSB5ZWFyIHN0YXJ0cyBvbiBKYW4gMS4gVGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBsb2NhbGUuCisuUHAKK1RoZSBHcmVnb3JpYW4gUmVmb3JtYXRpb24gaXMgYXNzdW1lZCB0byBoYXZlIG9jY3VycmVkIGluIDE3NTIgb24gdGhlIDNyZAorb2YgU2VwdGVtYmVyLgorQnkgdGhpcyB0aW1lLCBtb3N0IGNvdW50cmllcyBoYWQgcmVjb2duaXplZCB0aGUgcmVmb3JtYXRpb24gKGFsdGhvdWdoIGEKK2ZldyBkaWQgbm90IHJlY29nbml6ZSBpdCB1bnRpbCB0aGUgZWFybHkgMTkwMCdzLikKK1RlbiBkYXlzIGZvbGxvd2luZyB0aGF0IGRhdGUgd2VyZSBlbGltaW5hdGVkIGJ5IHRoZSByZWZvcm1hdGlvbiwgc28gdGhlCitjYWxlbmRhciBmb3IgdGhhdCBtb250aCBpcyBhIGJpdCB1bnVzdWFsLgorLlNoIEhJU1RPUlkKK0EKKy5ObQorY29tbWFuZCBhcHBlYXJlZCBpbiBWZXJzaW9uIDYgQVQmVCBVTklYLgorLlNoIE9USEVSIFZFUlNJT05TCitTZXZlcmFsIG11Y2ggbW9yZSBlbGFib3JhdGUgdmVyc2lvbnMgb2YgdGhpcyBwcm9ncmFtIGV4aXN0LAord2l0aCBzdXBwb3J0IGZvciBjb2xvcnMsIGhvbGlkYXlzLCBiaXJ0aGRheXMsIHJlbWluZGVycyBhbmQKK2FwcG9pbnRtZW50cywgZXRjLiBGb3IgZXhhbXBsZSwgdHJ5IHRoZSBjYWwgZnJvbQoraHR0cDovL2hvbWUuc3ByeW5ldC5jb20vfmNiYWd3ZWxsL3Byb2plY3RzLmh0bWwKK29yIEdOVSBnY2FsLgorLlNoIEFWQUlMQUJJTElUWQorVGhlIGNhbCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvY2FsLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2NhbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlYjE0YjUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2NhbC5jCkBAIC0wLDAgKzEsODYwIEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTg5LCAxOTkzLCAxOTk0CisgKglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVkIHRvIEJlcmtlbGV5IGJ5CisgKiBLaW0gTGV0a2VtYW4uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKyAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKyAqCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisvKiAxOTk5LTAyLTAxCUplYW4tRnJhbmNvaXMgQmlnbm9sbGVzOiBhZGRlZCBvcHRpb24gJy1tJyB0byBkaXNwbGF5CisgKgkJbW9uZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqCisgKiAyMDAwLTA5LTAxICBNaWNoYWVsIENoYXJsZXMgUHJ1em5pY2sgPGR1bW15QG5ldHdpei5uZXQ+CisgKiAgICAgICAgICAgICBBZGRlZCAiLTMiIG9wdGlvbiB0byBwcmludCBwcmV2L25leHQgbW9udGggd2l0aCBjdXJyZW50LgorICogICAgICAgICAgICAgQWRkZWQgb3Zlci1yaWRhYmxlIGRlZmF1bHQgTlVNX01PTlRIUyBhbmQgIi0xIiBvcHRpb24gdG8KKyAqICAgICAgICAgICAgIGdldCB0cmFkaXRpb25hbCBvdXRwdXQgd2hlbiAtMyBpcyB0aGUgZGVmYXVsdC4gIEkgaG9wZSB0aGF0CisgKiAgICAgICAgICAgICBlbm91Z2ggcGVvcGxlIHdpbGwgbGlrZSAtMyBhcyB0aGUgZGVmYXVsdCB0aGF0IG9uZSBkYXkgdGhlCisgKiAgICAgICAgICAgICBwcm9kdWN0IGNhbiBiZSBzaGlwcGVkIHRoYXQgd2F5LgorICoKKyAqIDIwMDEtMDUtMDcgIFBhYmxvIFNhcmF0eGFnYSA8cGFibG9AbWFuZHJha2Vzb2Z0LmNvbT4KKyAqICAgICAgICAgICAgIEZpeGVkIHRoZSBidWdzIHdpdGggbXVsdGktYnl0ZSBjaGFyc2V0ICh6ZzogY2prLCB1dGYtOCkKKyAqICAgICAgICAgICAgIGRpc3BsYXlpbmcuIG1hZGUgdGhlICdtb250aCB5ZWFyJyAoIiVzICVkIikgaGVhZGVyIHRyYW5zbGF0YWJsZQorICogICAgICAgICAgICAgc28gaXQgY2FuIGJlIGFkYXB0ZWQgdG8gY29udmVudGlvbnMgdXNlZCBieSBkaWZmZXJlbnQgbGFuZ3VhZ2VzCisgKiAgICAgICAgICAgICBhZGRlZCBzdXBwb3J0IHRvIHJlYWQgImZpcnN0X3dlZWtkYXkiIGxvY2FsZSBpbmZvcm1hdGlvbgorICogICAgICAgICAgICAgc3RpbGwgdG8gZG86IHN1cHBvcnQgZm9yICdjYWxfZGlyZWN0aW9uJyAod2lsbCByZXF1aXJlIGEgbWFqb3IKKyAqICAgICAgICAgICAgIHJld3JpdGUgb2YgdGhlIGRpc3BsYXlpbmcpIGFuZCBwcm9wZXIgaGFuZGxpbmcgb2YgUlRMIHNjcmlwdHMKKyAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVyci5oPgorCisjaW5jbHVkZSAiYy5oIgorI2luY2x1ZGUgIm5scy5oIgorCisjaWYgZGVmaW5lZChIQVZFX0xJQk5DVVJTRVMpIHx8IGRlZmluZWQoSEFWRV9MSUJOQ1VSU0VTVykKKworI2lmZGVmIEhBVkVfTkNVUlNFU19ICisjaW5jbHVkZSA8bmN1cnNlcy5oPgorI2VsaWYgZGVmaW5lZChIQVZFX05DVVJTRVNfTkNVUlNFU19IKQorI2luY2x1ZGUgPG5jdXJzZXMvbmN1cnNlcy5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDx0ZXJtLmg+ICAgICAgICAgICAgICAgICAgICAgICAvKiBpbmNsdWRlIGFmdGVyIDxjdXJzZXMuaD4gKi8KKworc3RhdGljIHZvaWQKK215X3NldHVwdGVybShjb25zdCBjaGFyICp0ZXJtLCBpbnQgZmlsZGVzLCBpbnQgKmVycnJldCkgeworICAgIHNldHVwdGVybSgoY2hhciopdGVybSwgZmlsZGVzLCBlcnJyZXQpOworfQorCitzdGF0aWMgdm9pZAorbXlfcHV0c3RyaW5nKGNoYXIgKnMpIHsKKyAgICAgcHV0cChzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKgorbXlfdGdldHN0cihjaGFyICpzLCBjaGFyICpzcykgeworICAgIGNvbnN0IGNoYXIqIHJldCA9IHRpZ2V0c3RyKHNzKTsKKyAgICBpZiAoIXJldCB8fCByZXQ9PShjaGFyKiktMSkKKyAgICAgICAgcmV0dXJuICIiOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIHJldDsKK30KKworI2VsaWYgZGVmaW5lZChIQVZFX0xJQlRFUk1DQVApCisKKyNpbmNsdWRlIDx0ZXJtY2FwLmg+CisKK2NoYXIgdGVybWJ1ZmZlcls0MDk2XTsKK2NoYXIgdGNidWZmZXJbNDA5Nl07CitjaGFyICpzdHJidWYgPSB0ZXJtYnVmZmVyOworCitzdGF0aWMgdm9pZAorbXlfc2V0dXB0ZXJtKGNvbnN0IGNoYXIgKnRlcm0sIGludCBmaWxkZXMsIGludCAqZXJycmV0KSB7CisgICAgKmVycnJldCA9IHRnZXRlbnQodGNidWZmZXIsIHRlcm0pOworfQorCitzdGF0aWMgdm9pZAorbXlfcHV0c3RyaW5nKGNoYXIgKnMpIHsKKyAgICAgdHB1dHMgKHMsIDEsIHB1dGNoYXIpOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqCitteV90Z2V0c3RyKGNoYXIgKnMsIGNoYXIgKnNzKSB7CisgICAgY29uc3QgY2hhciogcmV0ID0gdGdldHN0cihzLCAmc3RyYnVmKTsKKyAgICBpZiAoIXJldCkKKyAgICAgICAgcmV0dXJuICIiOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIHJldDsKK30KKworI2Vsc2UgLyogISAoSEFWRV9MSUJURVJNQ0FQIHx8IEhBVkVfTElCTkNVUlNFUyB8fCBIQVZFX0xJQk5DVVJTRVNXKSAqLworCitzdGF0aWMgdm9pZAorbXlfcHV0c3RyaW5nKGNoYXIgKnMpIHsKKyAgICAgZnB1dHMocywgc3Rkb3V0KTsKK30KKworI2VuZGlmCisKKworY29uc3QgY2hhcgkqdGVybT0iIjsKK2NvbnN0IGNoYXIJKlNlbnRlcj0iIiwgKlNleGl0PSIiOy8qIGVudGVyIGFuZCBleGl0IHN0YW5kb3V0IG1vZGUgKi8KK2ludAkJU2xlbjsJCS8qIHN0cmxlbiBvZiBTZW50ZXIrU2V4aXQgKi8KK2NoYXIJCSpIcm93OwkJLyogcG9pbnRlciB0byBoaWdobGlnaHRlZCByb3cgaW4gbW9udGggKi8KKworI2lmZGVmIEhBVkVfTEFOR0lORk9fSAorIyBpbmNsdWRlIDxsYW5naW5mby5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJ3aWRlY2hhci5oIgorCisvKiBhbGxvdyBjb21waWxlLXRpbWUgZGVmaW5lIHRvIG92ZXItcmlkZSBkZWZhdWx0ICovCisjaWZuZGVmIE5VTV9NT05USFMKKyNkZWZpbmUgTlVNX01PTlRIUyAxCisjZW5kaWYKKworI2lmICggTlVNX01PTlRIUyAhPSAxICYmIE5VTV9NT05USFMgIT0zICkKKyNlcnJvciBOVU1fTU9OVEhTIG11c3QgYmUgMSBvciAzCisjZW5kaWYKKworI2RlZmluZQlUSFVSU0RBWQkJNAkJLyogZm9yIHJlZm9ybWF0aW9uICovCisjZGVmaW5lCVNBVFVSREFZCQk2CQkvKiAxIEphbiAxIHdhcyBhIFNhdHVyZGF5ICovCisKKyNkZWZpbmUJRklSU1RfTUlTU0lOR19EQVkJNjM5Nzk5CQkvKiAzIFNlcCAxNzUyICovCisjZGVmaW5lCU5VTUJFUl9NSVNTSU5HX0RBWVMJMTEJCS8qIDExIGRheSBjb3JyZWN0aW9uICovCisKKyNkZWZpbmUJTUFYREFZUwkJCTQyCQkvKiBzbG90cyBpbiBhIG1vbnRoIGFycmF5ICovCisjZGVmaW5lCVNQQUNFCQkJLTEJCS8qIHVzZWQgaW4gZGF5IGFycmF5ICovCisKK3N0YXRpYyBpbnQgZGF5c19pbl9tb250aFsyXVsxM10gPSB7CisJezAsIDMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzF9LAorCXswLCAzMSwgMjksIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxfSwKK307CisKKyNkZWZpbmUgU0VQMTc1Ml9PRlMJCTQJCS8qIHNlcDE3NTJbNF0gaXMgYSBTdW5kYXkgKi8KKworLyogMSBTZXAgMTc1MiBpcyByZXByZXNlbnRlZCBieSBzZXAxNzUyWzZdIGFuZCBqX3NlcDE3NTJbNl0gKi8KK2ludCBzZXAxNzUyW01BWERBWVMrNl0gPSB7CisJCQkJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCisJU1BBQ0UsCVNQQUNFLAkxLAkyLAkxNCwJMTUsCTE2LAorCTE3LAkxOCwJMTksCTIwLAkyMSwJMjIsCTIzLAorCTI0LAkyNSwJMjYsCTI3LAkyOCwJMjksCTMwLAorCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAorCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAorCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAorCVNQQUNFLAlTUEFDRQorfSwgal9zZXAxNzUyW01BWERBWVMrNl0gPSB7CisJCQkJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCisJU1BBQ0UsCVNQQUNFLAkyNDUsCTI0NiwJMjU4LAkyNTksCTI2MCwKKwkyNjEsCTI2MiwJMjYzLAkyNjQsCTI2NSwJMjY2LAkyNjcsCisJMjY4LAkyNjksCTI3MCwJMjcxLAkyNzIsCTI3MywJMjc0LAorCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAorCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAorCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAorCVNQQUNFLAlTUEFDRQorfSwgZW1wdHlbTUFYREFZU10gPSB7CisJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCisJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCisJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCisJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCisJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCisJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UsCVNQQUNFLAlTUEFDRSwJU1BBQ0UKK307CisKKyNkZWZpbmUJREFZX0xFTgkJMwkJLyogMyBzcGFjZXMgcGVyIGRheSAqLworI2RlZmluZQlKX0RBWV9MRU4JNAkJLyogNCBzcGFjZXMgcGVyIGRheSAqLworI2RlZmluZQlXRUVLX0xFTgkyMQkJLyogNyBkYXlzICogMyBjaGFyYWN0ZXJzICovCisjZGVmaW5lCUpfV0VFS19MRU4JMjgJCS8qIDcgZGF5cyAqIDQgY2hhcmFjdGVycyAqLworI2RlZmluZQlIRUFEX1NFUAkyCQkvKiBzcGFjZXMgYmV0d2VlbiBkYXkgaGVhZGluZ3MgKi8KKyNkZWZpbmUJSl9IRUFEX1NFUAkyCisKKy8qIHV0Zi04IGNhbiBoYXZlIHVwIHRvIDYgYnl0ZXMgcGVyIGNoYXI7IGFuZCBhbiBleHRyYSBieXRlIGZvciBlbmRpbmcgXDAgKi8KK2NoYXIgZGF5X2hlYWRpbmdzW1dFRUtfTEVOKjYrMV07CisvKiB3ZWVrc3RhcnQgPSAxICA9PiAgICIgTSBUdSAgVyBUaCAgRiAgUyAgUyAiICovCitjaGFyIGpfZGF5X2hlYWRpbmdzW0pfV0VFS19MRU4qNisxXTsKKy8qIHdlZWtzdGFydCA9IDEgID0+ICAgIiAgTSAgVHUgICBXICBUaCAgIEYgICBTICAgUyAiICovCitjb25zdCBjaGFyICpmdWxsX21vbnRoWzEyXTsKKworLyogbGVhcCB5ZWFyIC0tIGFjY291bnQgZm9yIGdyZWdvcmlhbiByZWZvcm1hdGlvbiBpbiAxNzUyICovCisjZGVmaW5lCWxlYXBfeWVhcih5cikgXAorCSgoeXIpIDw9IDE3NTIgPyAhKCh5cikgJSA0KSA6IFwKKwkoISgoeXIpICUgNCkgJiYgKCh5cikgJSAxMDApKSB8fCAhKCh5cikgJSA0MDApKQorCisvKiBudW1iZXIgb2YgY2VudHVyaWVzIHNpbmNlIDE3MDAsIG5vdCBpbmNsdXNpdmUgKi8KKyNkZWZpbmUJY2VudHVyaWVzX3NpbmNlXzE3MDAoeXIpIFwKKwkoKHlyKSA+IDE3MDAgPyAoeXIpIC8gMTAwIC0gMTcgOiAwKQorCisvKiBudW1iZXIgb2YgY2VudHVyaWVzIHNpbmNlIDE3MDAgd2hvc2UgbW9kdWxvIG9mIDQwMCBpcyAwICovCisjZGVmaW5lCXF1YWRfY2VudHVyaWVzX3NpbmNlXzE3MDAoeXIpIFwKKwkoKHlyKSA+IDE2MDAgPyAoKHlyKSAtIDE2MDApIC8gNDAwIDogMCkKKworLyogbnVtYmVyIG9mIGxlYXAgeWVhcnMgYmV0d2VlbiB5ZWFyIDEgYW5kIHRoaXMgeWVhciwgbm90IGluY2x1c2l2ZSAqLworI2RlZmluZQlsZWFwX3llYXJzX3NpbmNlX3llYXJfMSh5cikgXAorCSgoeXIpIC8gNCAtIGNlbnR1cmllc19zaW5jZV8xNzAwKHlyKSArIHF1YWRfY2VudHVyaWVzX3NpbmNlXzE3MDAoeXIpKQorCisvKiAwID0+IHN1bmRheSwgMSA9PiBtb25kYXkgKi8KK2ludCB3ZWVrc3RhcnQ9MDsKK2ludCBqdWxpYW47CisKKyNkZWZpbmUgVE9EQVlfRkxBRwkJMHg0MDAJCS8qIGZsYWcgZGF5IGZvciBoaWdobGlnaHRpbmcgKi8KKworI2RlZmluZSBGTVRfU1RfTElORVMgOAorI2RlZmluZSBGTVRfU1RfQ0hBUlMgMzAwCS8qIDkwIHN1ZmZpY2VzIGluIG1vc3QgbG9jYWxlcyAqLworc3RydWN0IGZtdF9zdAoreworICBjaGFyIHNbRk1UX1NUX0xJTkVTXVtGTVRfU1RfQ0hBUlNdOworfTsKKworY2hhciAqIGFzY2lpX2RheShjaGFyICosIGludCk7CitpbnQgY2VudGVyX3N0cihjb25zdCBjaGFyKiBzcmMsIGNoYXIqIGRlc3QsIHNpemVfdCBkZXN0X3NpemUsIGludCB3aWR0aCk7Cit2b2lkIGNlbnRlcihjb25zdCBjaGFyICosIGludCwgaW50KTsKK3ZvaWQgZGF5X2FycmF5KGludCwgaW50LCBpbnQsIGludCAqKTsKK2ludCBkYXlfaW5fd2VlayhpbnQsIGludCwgaW50KTsKK2ludCBkYXlfaW5feWVhcihpbnQsIGludCwgaW50KTsKK3ZvaWQgeWVhcmx5KGludCwgaW50KTsKK3ZvaWQgal95ZWFybHkoaW50LCBpbnQpOwordm9pZCBkb19tb250aGx5KGludCwgaW50LCBpbnQsIHN0cnVjdCBmbXRfc3QqKTsKK3ZvaWQgbW9udGhseShpbnQsIGludCwgaW50KTsKK3ZvaWQgbW9udGhseTMoaW50LCBpbnQsIGludCk7Cit2b2lkIHRyaW1fdHJhaWxpbmdfc3BhY2VzKGNoYXIgKik7Cit2b2lkIHVzYWdlKHZvaWQpOwordm9pZCBoZWFkZXJzX2luaXQodm9pZCk7CitleHRlcm4gY2hhciAqX19wcm9nbmFtZTsKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCXN0cnVjdCB0bSAqbG9jYWxfdGltZTsKKwl0aW1lX3Qgbm93OworCWludCBjaCwgZGF5LCBtb250aCwgeWVhciwgeWZsYWc7CisJY2hhciAqcHJvZ25hbWUsICpwOworCWludCBudW1fbW9udGhzID0gTlVNX01PTlRIUzsKKworCXByb2duYW1lID0gYXJndlswXTsKKwlpZiAoKHAgPSBzdHJyY2hyKHByb2duYW1lLCAnLycpKSAhPSBOVUxMKQorCQlwcm9nbmFtZSA9IHArMTsKKwlfX3Byb2duYW1lID0gcHJvZ25hbWU7CisKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisjaWYgZGVmaW5lZChIQVZFX0xJQk5DVVJTRVMpIHx8IGRlZmluZWQoSEFWRV9MSUJOQ1VSU0VTVykgfHwgZGVmaW5lZChIQVZFX0xJQlRFUk1DQVApCisJaWYgKCh0ZXJtID0gZ2V0ZW52KCJURVJNIikpKSB7CisJCWludCByZXQ7CisJCW15X3NldHVwdGVybSh0ZXJtLCAxLCAmcmV0KTsKKwkJaWYgKHJldCA+IDApIHsKKwkJCVNlbnRlciA9IG15X3RnZXRzdHIoInNvIiwic21zbyIpOworCQkJU2V4aXQgPSBteV90Z2V0c3RyKCJzZSIsInJtc28iKTsKKwkJCVNsZW4gPSBzdHJsZW4oU2VudGVyKSArIHN0cmxlbihTZXhpdCk7CisJCX0KKwl9CisjZW5kaWYKKworLyoKKyAqIFRoZSB0cmFkaXRpb25hbCBVbml4IGNhbCB1dGlsaXR5IHN0YXJ0cyB0aGUgd2VlayBhdCBTdW5kYXksCisgKiB3aGlsZSBJU08gODYwMSBzdGFydHMgYXQgTW9uZGF5LiBXZSByZWFkIHRoZSBzdGFydCBkYXkgZnJvbQorICogdGhlIGxvY2FsZSBkYXRhYmFzZSwgd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUKKyAqIC1zIChTdW5kYXkpIG9yIC1tIChNb25kYXkpIG9wdGlvbnMuCisgKi8KKyNpZiBIQVZFX0RFQ0xfX05MX1RJTUVfV0VFS18xU1REQVkKKwkvKgorCSAqIFlvdSBuZWVkIHRvIHVzZSAyIGxvY2FsZSB2YXJpYWJsZXMgdG8gZ2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuCisJICogVGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBmaXJzdF93ZWVrZGF5PTIgYW5kIGZpcnN0X3dvcmtkYXk9MSBmb3IKKwkgKiB0aGUgcmFyZSBjYXNlIHdoZXJlIHdvcmtpbmcgZGF5cyBzcGFuIGFjcm9zcyAyIHdlZWtzLgorCSAqIFRoaXMgc2hlbGwgc2NyaXB0IHNob3dzIHRoZSBjb21iaW5hdGlvbnMgYW5kIGNhbGN1bGF0aW9ucyBpbnZvbHZlZDoKKworCSBmb3IgTEFORyBpbiBlbl9VUyBydV9SVSBmcl9GUiBjc2JfUEwgUE9TSVg7IGRvCisJICAgcHJpbnRmICIlczpcdCVzICsgJXMgLTEgPSAiICRMQU5HICQobG9jYWxlIHdlZWstMXN0ZGF5IGZpcnN0X3dlZWtkYXkpCisJICAgZGF0ZSAtZCIkKGxvY2FsZSB3ZWVrLTFzdGRheSkgKyQoKCQobG9jYWxlIGZpcnN0X3dlZWtkYXkpLTEpKWRheSIgKyV3CisJIGRvbmUKKworCSBlbl9VUzogIDE5OTcxMTMwICsgMSAtMSA9IDAgICMwID0gc3VuZGF5CisJIHJ1X1JVOiAgMTk5NzExMzAgKyAyIC0xID0gMQorCSBmcl9GUjogIDE5OTcxMjAxICsgMSAtMSA9IDEKKwkgY3NiX1BMOiAxOTk3MTIwMSArIDIgLTEgPSAyCisJIFBPU0lYOiAgMTk5NzEyMDEgKyA3IC0xID0gMAorCSAqLworCXsKKwkJaW50IHdmZDsKKwkJdW5pb24geyB1bnNpZ25lZCBpbnQgd29yZDsgY2hhciAqc3RyaW5nOyB9IHZhbDsKKwkJdmFsLnN0cmluZyA9IG5sX2xhbmdpbmZvKF9OTF9USU1FX1dFRUtfMVNUREFZKTsKKworCQl3ZmQgPSB2YWwud29yZDsKKwkJd2ZkID0gZGF5X2luX3dlZWsod2ZkICUgMTAwLCAod2ZkIC8gMTAwKSAlIDEwMCwgd2ZkIC8gKDEwMCAqIDEwMCkpOworCQl3ZWVrc3RhcnQgPSAod2ZkICsgKm5sX2xhbmdpbmZvKF9OTF9USU1FX0ZJUlNUX1dFRUtEQVkpIC0gMSkgJSA3OworCX0KKyNlbmRpZgorCisJeWZsYWcgPSAwOworCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwgIjEzbWpzeVYiKSkgIT0gLTEpCisJCXN3aXRjaChjaCkgeworCQljYXNlICcxJzoKKwkJCW51bV9tb250aHMgPSAxOwkJLyogZGVmYXVsdCAqLworCQkJYnJlYWs7CisJCWNhc2UgJzMnOgorCQkJbnVtX21vbnRocyA9IDM7CisJCQlicmVhazsKKwkJY2FzZSAncyc6CisJCQl3ZWVrc3RhcnQgPSAwOwkJLyogZGVmYXVsdCAqLworCQkJYnJlYWs7CisJCWNhc2UgJ20nOgorCQkJd2Vla3N0YXJ0ID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdqJzoKKwkJCWp1bGlhbiA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAneSc6CisJCQl5ZmxhZyA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnVic6CisJCQlwcmludGYoXygiJXMgZnJvbSAlc1xuIiksCisJCQkgICAgICAgcHJvZ25hbWUsIFBBQ0tBR0VfU1RSSU5HKTsKKwkJCXJldHVybiAwOworCQljYXNlICc/JzoKKwkJZGVmYXVsdDoKKwkJCXVzYWdlKCk7CisJCX0KKwlhcmdjIC09IG9wdGluZDsKKwlhcmd2ICs9IG9wdGluZDsKKworCXRpbWUoJm5vdyk7CisJbG9jYWxfdGltZSA9IGxvY2FsdGltZSgmbm93KTsKKworCWRheSA9IG1vbnRoID0geWVhciA9IDA7CisJc3dpdGNoKGFyZ2MpIHsKKwljYXNlIDM6CisJCWlmICgoZGF5ID0gYXRvaSgqYXJndisrKSkgPCAxIHx8IGRheSA+IDMxKQorCQkJZXJyeCgxLCBfKCJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiKSwgMzEpOworCQkvKiBGQUxMVEhST1VHSCAqLworCWNhc2UgMjoKKwkJaWYgKChtb250aCA9IGF0b2koKmFyZ3YrKykpIDwgMSB8fCBtb250aCA+IDEyKQorCQkJZXJyeCgxLCBfKCJpbGxlZ2FsIG1vbnRoIHZhbHVlOiB1c2UgMS0xMiIpKTsKKwkJLyogRkFMTFRIUk9VR0ggKi8KKwljYXNlIDE6CisJCWlmICgoeWVhciA9IGF0b2koKmFyZ3YpKSA8IDEgfHwgeWVhciA+IDk5OTkpCisJCQllcnJ4KDEsIF8oImlsbGVnYWwgeWVhciB2YWx1ZTogdXNlIDEtOTk5OSIpKTsKKwkJaWYgKGRheSkgeworCQkJaW50IGRtID0gZGF5c19pbl9tb250aFtsZWFwX3llYXIoeWVhcildW21vbnRoXTsKKwkJCWlmIChkYXkgPiBkbSkKKwkJCQllcnJ4KDEsIF8oImlsbGVnYWwgZGF5IHZhbHVlOiB1c2UgMS0lZCIpLCBkbSk7CisJCQlkYXkgPSBkYXlfaW5feWVhcihkYXksIG1vbnRoLCB5ZWFyKTsKKwkJfSBlbHNlIGlmICgobG9jYWxfdGltZS0+dG1feWVhciArIDE5MDApID09IHllYXIpIHsKKwkJCWRheSA9IGxvY2FsX3RpbWUtPnRtX3lkYXkgKyAxOworCQl9CisJCWlmICghbW9udGgpCisJCQl5ZmxhZz0xOworCQlicmVhazsKKwljYXNlIDA6CisJCWRheSA9IGxvY2FsX3RpbWUtPnRtX3lkYXkgKyAxOworCQl5ZWFyID0gbG9jYWxfdGltZS0+dG1feWVhciArIDE5MDA7CisJCW1vbnRoID0gbG9jYWxfdGltZS0+dG1fbW9uICsgMTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJdXNhZ2UoKTsKKwl9CisJaGVhZGVyc19pbml0KCk7CisKKwlpZiAoIWlzYXR0eSgxKSkKKwkJZGF5ID0gMDsgLyogZG9uJ3QgaGlnaGxpZ2h0ICovCisKKwlpZiAoeWZsYWcgJiYganVsaWFuKQorCQlqX3llYXJseShkYXksIHllYXIpOworCWVsc2UgaWYgKHlmbGFnKQorCQl5ZWFybHkoZGF5LCB5ZWFyKTsKKwllbHNlIGlmIChudW1fbW9udGhzID09IDEpCisJCW1vbnRobHkoZGF5LCBtb250aCwgeWVhcik7CisJZWxzZSBpZiAobnVtX21vbnRocyA9PSAzKQorCQltb250aGx5MyhkYXksIG1vbnRoLCB5ZWFyKTsKKwlleGl0KDApOworfQorCit2b2lkIGhlYWRlcnNfaW5pdCh2b2lkKQoreworICBpbnQgaSwgd2Q7CisgIGNoYXIgKmN1cl9kaCA9IGRheV9oZWFkaW5ncywgKmN1cl9qX2RoID0gal9kYXlfaGVhZGluZ3M7CisKKyAgc3RyY3B5KGRheV9oZWFkaW5ncywiIik7CisgIHN0cmNweShqX2RheV9oZWFkaW5ncywiIik7CisKKyNpZmRlZiBIQVZFX0xBTkdJTkZPX0gKKyMgZGVmaW5lIHdlZWtkYXkod2QpCW5sX2xhbmdpbmZvKEFCREFZXzErd2QpCisjZWxzZQorIyBkZWZpbmUgd2Vla2RheSh3ZCkJX3RpbWVfaW5mby0+YWJicmV2X3drZGF5W3dkXQorI2VuZGlmCisKKyAgZm9yKGkgPSAwIDsgaSA8IDcgOyBpKysgKSB7CisgICAgIHNzaXplX3Qgc3BhY2VfbGVmdDsKKyAgICAgd2QgPSAoaSArIHdlZWtzdGFydCkgJSA3OworCisgICAgIGlmIChpKQorICAgICAgICBzdHJjYXQoY3VyX2RoKyssICIgIik7CisgICAgIHNwYWNlX2xlZnQgPSBzaXplb2YoZGF5X2hlYWRpbmdzKSAtIChjdXJfZGggLSBkYXlfaGVhZGluZ3MpOworICAgICBpZihzcGFjZV9sZWZ0IDw9IDIpCisgICAgICAgIGJyZWFrOworICAgICBjdXJfZGggKz0gY2VudGVyX3N0cih3ZWVrZGF5KHdkKSwgY3VyX2RoLCBzcGFjZV9sZWZ0LCAyKTsKKworICAgICBpZiAoaSkKKyAgICAgICAgc3RyY2F0KGN1cl9qX2RoKyssICIgIik7CisgICAgIHNwYWNlX2xlZnQgPSBzaXplb2Yoal9kYXlfaGVhZGluZ3MpIC0gKGN1cl9qX2RoIC0gal9kYXlfaGVhZGluZ3MpOworICAgICBpZihzcGFjZV9sZWZ0IDw9IDMpCisgICAgICAgIGJyZWFrOworICAgICBjdXJfal9kaCArPSBjZW50ZXJfc3RyKHdlZWtkYXkod2QpLCBjdXJfal9kaCwgc3BhY2VfbGVmdCwgMyk7CisgIH0KKworI3VuZGVmIHdlZWtkYXkKKworICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykgeworI2lmZGVmIEhBVkVfTEFOR0lORk9fSAorICAgICBmdWxsX21vbnRoW2ldID0gbmxfbGFuZ2luZm8oTU9OXzEraSk7CisjZWxzZQorICAgICBmdWxsX21vbnRoW2ldID0gX3RpbWVfaW5mby0+ZnVsbF9tb250aFtpXTsKKyNlbmRpZgorICB9Cit9CisKK3ZvaWQKK2RvX21vbnRobHkoaW50IGRheSwgaW50IG1vbnRoLCBpbnQgeWVhciwgc3RydWN0IGZtdF9zdCAqb3V0KSB7CisJaW50IGNvbCwgcm93LCBkYXlzW01BWERBWVNdOworCWNoYXIgKnAsIGxpbmVvdXRbRk1UX1NUX0NIQVJTXTsKKwlpbnQgd2lkdGggPSAoanVsaWFuID8gSl9XRUVLX0xFTiA6IFdFRUtfTEVOKSAtIDE7CisKKwlkYXlfYXJyYXkoZGF5LCBtb250aCwgeWVhciwgZGF5cyk7CisKKwkvKgorCSAqICVzIGlzIHRoZSBtb250aCBuYW1lLCAlZCB0aGUgeWVhciBudW1iZXIuCisJICogeW91IGNhbiBjaGFuZ2UgdGhlIG9yZGVyIGFuZC9vciBhZGQgc29tZXRoaW5nIGhlcmU7IGVnIGZvcgorCSAqIEJhc3F1ZSB0aGUgdHJhbnNsYXRpb24gc2hvdWxkIGJlOiAiJTIkZGtvICUxJHMiLCBhbmQKKwkgKiB0aGUgVmlldG5hbWVzZSBzaG91bGQgYmUgIiVzIG5hKG0gJWQiLCBldGMuCisJICovCisJc25wcmludGYobGluZW91dCwgc2l6ZW9mKGxpbmVvdXQpLCBfKCIlcyAlZCIpLAorCQkJZnVsbF9tb250aFttb250aCAtIDFdLCB5ZWFyKTsKKwljZW50ZXJfc3RyKGxpbmVvdXQsIG91dC0+c1swXSwgQVJSQVlfU0laRShvdXQtPnNbMF0pLCB3aWR0aCk7CisKKwlzbnByaW50ZihvdXQtPnNbMV0sIEZNVF9TVF9DSEFSUywgIiVzIiwKKwkJanVsaWFuID8gal9kYXlfaGVhZGluZ3MgOiBkYXlfaGVhZGluZ3MpOworCWZvciAocm93ID0gMDsgcm93IDwgNjsgcm93KyspIHsKKwkJaW50IGhhc19obCA9IDA7CisJCWZvciAoY29sID0gMCwgcCA9IGxpbmVvdXQ7IGNvbCA8IDc7IGNvbCsrKSB7CisJCQlpbnQgeGQgPSBkYXlzW3JvdyAqIDcgKyBjb2xdOworCQkJaWYgKHhkICE9IFNQQUNFICYmICh4ZCAmIFRPREFZX0ZMQUcpKQorCQkJCWhhc19obCA9IDE7CisJCQlwID0gYXNjaWlfZGF5KHAsIHhkKTsKKwkJfQorCQkqcCA9ICdcMCc7CisJCXRyaW1fdHJhaWxpbmdfc3BhY2VzKGxpbmVvdXQpOworCQlzbnByaW50ZihvdXQtPnNbcm93KzJdLCBGTVRfU1RfQ0hBUlMsICIlcyIsIGxpbmVvdXQpOworCQlpZiAoaGFzX2hsKQorCQkJSHJvdyA9IG91dC0+c1tyb3crMl07CisJfQorfQorCit2b2lkCittb250aGx5KGludCBkYXksIGludCBtb250aCwgaW50IHllYXIpIHsKKwlpbnQgaTsKKwlzdHJ1Y3QgZm10X3N0IG91dDsKKworCWRvX21vbnRobHkoZGF5LCBtb250aCwgeWVhciwgJm91dCk7CisJZm9yIChpID0gMDsgaSA8IEZNVF9TVF9MSU5FUzsgaSsrKSB7CisJCW15X3B1dHN0cmluZyhvdXQuc1tpXSk7CisJCXB1dGNoYXIoJ1xuJyk7CisJfQorfQorCit2b2lkCittb250aGx5MyhpbnQgZGF5LCBpbnQgbW9udGgsIGludCB5ZWFyKSB7CisJY2hhciBsaW5lb3V0W0ZNVF9TVF9DSEFSU107CisJaW50IGk7CisJaW50IHdpZHRoOworCXN0cnVjdCBmbXRfc3Qgb3V0X3ByZXY7CisJc3RydWN0IGZtdF9zdCBvdXRfY3VybTsKKwlzdHJ1Y3QgZm10X3N0IG91dF9uZXh0OworCWludCBwcmV2X21vbnRoLCBwcmV2X3llYXI7CisJaW50IG5leHRfbW9udGgsIG5leHRfeWVhcjsKKworCWlmIChtb250aCA9PSAxKSB7CisJCXByZXZfbW9udGggPSAxMjsKKwkJcHJldl95ZWFyICA9IHllYXIgLSAxOworCX0gZWxzZSB7CisJCXByZXZfbW9udGggPSBtb250aCAtIDE7CisJCXByZXZfeWVhciAgPSB5ZWFyOworCX0KKwlpZiAobW9udGggPT0gMTIpIHsKKwkJbmV4dF9tb250aCA9IDE7CisJCW5leHRfeWVhciAgPSB5ZWFyICsgMTsKKwl9IGVsc2UgeworCQluZXh0X21vbnRoID0gbW9udGggKyAxOworCQluZXh0X3llYXIgID0geWVhcjsKKwl9CisKKwlkb19tb250aGx5KGRheSwgcHJldl9tb250aCwgcHJldl95ZWFyLCAmb3V0X3ByZXYpOworCWRvX21vbnRobHkoZGF5LCBtb250aCwgICAgICB5ZWFyLCAgICAgICZvdXRfY3VybSk7CisJZG9fbW9udGhseShkYXksIG5leHRfbW9udGgsIG5leHRfeWVhciwgJm91dF9uZXh0KTsKKworICAgICAgICB3aWR0aCA9IChqdWxpYW4gPyBKX1dFRUtfTEVOIDogV0VFS19MRU4pIC0xOworCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspCisJCXByaW50ZigiJXMgICVzICAlc1xuIiwgb3V0X3ByZXYuc1tpXSwgb3V0X2N1cm0uc1tpXSwgb3V0X25leHQuc1tpXSk7CisJZm9yIChpID0gMjsgaSA8IEZNVF9TVF9MSU5FUzsgaSsrKSB7CisJCWludCB3MSwgdzIsIHczOworCQl3MSA9IHcyID0gdzMgPSB3aWR0aDsKKworI2lmIGRlZmluZWQoSEFWRV9MSUJOQ1VSU0VTKSB8fCBkZWZpbmVkKEhBVkVfTElCTkNVUlNFU1cpIHx8IGRlZmluZWQoSEFWRV9MSUJURVJNQ0FQKQorICAgICAgICAgICAgICAgIC8qIGFkanVzdCB3aWR0aCB0byBhbGxvdyBmb3Igbm9uIHByaW50YWJsZSBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgdzEgKz0gKG91dF9wcmV2LnNbaV0gPT0gSHJvdyA/IFNsZW4gOiAwKTsKKyAgICAgICAgICAgICAgICB3MiArPSAob3V0X2N1cm0uc1tpXSA9PSBIcm93ID8gU2xlbiA6IDApOworICAgICAgICAgICAgICAgIHczICs9IChvdXRfbmV4dC5zW2ldID09IEhyb3cgPyBTbGVuIDogMCk7CisjZW5kaWYKKwkJc25wcmludGYobGluZW91dCwgc2l6ZW9mKGxpbmVvdXQpLCAiJS0qcyAgJS0qcyAgJS0qc1xuIiwKKwkJICAgICAgIHcxLCBvdXRfcHJldi5zW2ldLAorCQkgICAgICAgdzIsIG91dF9jdXJtLnNbaV0sCisJCSAgICAgICB3Mywgb3V0X25leHQuc1tpXSk7CisKKwkJbXlfcHV0c3RyaW5nKGxpbmVvdXQpOworCX0KK30KKwordm9pZAoral95ZWFybHkoaW50IGRheSwgaW50IHllYXIpIHsKKwlpbnQgY29sLCAqZHAsIGksIG1vbnRoLCByb3csIHdoaWNoX2NhbDsKKwlpbnQgZGF5c1sxMl1bTUFYREFZU107CisJY2hhciAqcCwgbGluZW91dFs4MF07CisKKwlzbnByaW50ZihsaW5lb3V0LCBzaXplb2YobGluZW91dCksICIlZCIsIHllYXIpOworCWNlbnRlcihsaW5lb3V0LCBKX1dFRUtfTEVOKjIgKyBKX0hFQURfU0VQIC0gMSwgMCk7CisJcHJpbnRmKCJcblxuIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykKKwkJZGF5X2FycmF5KGRheSwgaSArIDEsIHllYXIsIGRheXNbaV0pOworCW1lbXNldChsaW5lb3V0LCAnICcsIHNpemVvZihsaW5lb3V0KSAtIDEpOworCWxpbmVvdXRbc2l6ZW9mKGxpbmVvdXQpIC0gMV0gPSAnXDAnOworCWZvciAobW9udGggPSAwOyBtb250aCA8IDEyOyBtb250aCArPSAyKSB7CisJCWNlbnRlcihmdWxsX21vbnRoW21vbnRoXSwgSl9XRUVLX0xFTi0xLCBKX0hFQURfU0VQKzEpOworCQljZW50ZXIoZnVsbF9tb250aFttb250aCArIDFdLCBKX1dFRUtfTEVOLTEsIDApOworCQlwcmludGYoIlxuJXMlKnMgJXNcbiIsIGpfZGF5X2hlYWRpbmdzLCBKX0hFQURfU0VQLCAiIiwKKwkJICAgIGpfZGF5X2hlYWRpbmdzKTsKKwkJZm9yIChyb3cgPSAwOyByb3cgPCA2OyByb3crKykgeworCQkJcCA9IGxpbmVvdXQ7CisJCQlmb3IgKHdoaWNoX2NhbCA9IDA7IHdoaWNoX2NhbCA8IDI7IHdoaWNoX2NhbCsrKSB7CisJCQkJZHAgPSAmZGF5c1ttb250aCArIHdoaWNoX2NhbF1bcm93ICogN107CisJCQkJZm9yIChjb2wgPSAwOyBjb2wgPCA3OyBjb2wrKykKKwkJCQkJcCA9IGFzY2lpX2RheShwLCAqZHArKyk7CisJCQkJcCArPSBzcHJpbnRmKHAsICIgICIpOworCQkJfQorCQkJKnAgPSAnXDAnOworCQkJdHJpbV90cmFpbGluZ19zcGFjZXMobGluZW91dCk7CisJCQlteV9wdXRzdHJpbmcobGluZW91dCk7CisJCQlwdXRjaGFyKCdcbicpOworCQl9CisJfQorCXByaW50ZigiXG4iKTsKK30KKwordm9pZAoreWVhcmx5KGludCBkYXksIGludCB5ZWFyKSB7CisJaW50IGNvbCwgKmRwLCBpLCBtb250aCwgcm93LCB3aGljaF9jYWw7CisJaW50IGRheXNbMTJdW01BWERBWVNdOworCWNoYXIgKnAsIGxpbmVvdXRbMTAwXTsKKworCXNucHJpbnRmKGxpbmVvdXQsIHNpemVvZihsaW5lb3V0KSwgIiVkIiwgeWVhcik7CisJY2VudGVyKGxpbmVvdXQsIFdFRUtfTEVOKjMgKyBIRUFEX1NFUCoyIC0gMSwgMCk7CisJcHJpbnRmKCJcblxuIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykKKwkJZGF5X2FycmF5KGRheSwgaSArIDEsIHllYXIsIGRheXNbaV0pOworCW1lbXNldChsaW5lb3V0LCAnICcsIHNpemVvZihsaW5lb3V0KSAtIDEpOworCWxpbmVvdXRbc2l6ZW9mKGxpbmVvdXQpIC0gMV0gPSAnXDAnOworCWZvciAobW9udGggPSAwOyBtb250aCA8IDEyOyBtb250aCArPSAzKSB7CisJCWNlbnRlcihmdWxsX21vbnRoW21vbnRoXSwgV0VFS19MRU4tMSwgSEVBRF9TRVArMSk7CisJCWNlbnRlcihmdWxsX21vbnRoW21vbnRoICsgMV0sIFdFRUtfTEVOLTEsIEhFQURfU0VQKzEpOworCQljZW50ZXIoZnVsbF9tb250aFttb250aCArIDJdLCBXRUVLX0xFTi0xLCAwKTsKKwkJcHJpbnRmKCJcbiVzJSpzICVzJSpzICVzXG4iLCBkYXlfaGVhZGluZ3MsIEhFQURfU0VQLAorCQkgICAgIiIsIGRheV9oZWFkaW5ncywgSEVBRF9TRVAsICIiLCBkYXlfaGVhZGluZ3MpOworCQlmb3IgKHJvdyA9IDA7IHJvdyA8IDY7IHJvdysrKSB7CisJCQlwID0gbGluZW91dDsKKwkJCWZvciAod2hpY2hfY2FsID0gMDsgd2hpY2hfY2FsIDwgMzsgd2hpY2hfY2FsKyspIHsKKwkJCQlkcCA9ICZkYXlzW21vbnRoICsgd2hpY2hfY2FsXVtyb3cgKiA3XTsKKwkJCQlmb3IgKGNvbCA9IDA7IGNvbCA8IDc7IGNvbCsrKQorCQkJCQlwID0gYXNjaWlfZGF5KHAsICpkcCsrKTsKKwkJCQlwICs9IHNwcmludGYocCwgIiAgIik7CisJCQl9CisJCQkqcCA9ICdcMCc7CisJCQl0cmltX3RyYWlsaW5nX3NwYWNlcyhsaW5lb3V0KTsKKwkJCW15X3B1dHN0cmluZyhsaW5lb3V0KTsKKwkJCXB1dGNoYXIoJ1xuJyk7CisJCX0KKwl9CisJcHV0Y2hhcignXG4nKTsKK30KKworLyoKKyAqIGRheV9hcnJheSAtLQorICoJRmlsbCBpbiBhbiBhcnJheSBvZiA0MiBpbnRlZ2VycyB3aXRoIGEgY2FsZW5kYXIuICBBc3N1bWUgZm9yIGEgbW9tZW50CisgKgl0aGF0IHlvdSB0b29rIHRoZSAobWF4aW11bSkgNiByb3dzIGluIGEgY2FsZW5kYXIgYW5kIHN0cmV0Y2hlZCB0aGVtCisgKglvdXQgZW5kIHRvIGVuZC4gIFlvdSB3b3VsZCBoYXZlIDQyIG51bWJlcnMgb3Igc3BhY2VzLiAgVGhpcyByb3V0aW5lCisgKglidWlsZHMgdGhhdCBhcnJheSBmb3IgYW55IG1vbnRoIGZyb20gSmFuLiAxIHRocm91Z2ggRGVjLiA5OTk5LgorICovCit2b2lkCitkYXlfYXJyYXkoaW50IGRheSwgaW50IG1vbnRoLCBpbnQgeWVhciwgaW50ICpkYXlzKSB7CisJaW50IGp1bGRheSwgZGF5bnVtLCBkdywgZG07CisJaW50ICpkX3NlcDE3NTI7CisKKwlpZiAobW9udGggPT0gOSAmJiB5ZWFyID09IDE3NTIpIHsKKwkJaW50IHNlcDE3NTJfb2ZzID0gKHdlZWtzdGFydCArIFNFUDE3NTJfT0ZTKSAlIDc7CisJCWRfc2VwMTc1MiA9IGp1bGlhbiA/IGpfc2VwMTc1MiA6IHNlcDE3NTI7CisJCW1lbWNweShkYXlzLCBkX3NlcDE3NTIgKyBzZXAxNzUyX29mcywgTUFYREFZUyAqIHNpemVvZihpbnQpKTsKKwkJZm9yIChkbT0wOyBkbTxNQVhEQVlTOyBkbSsrKQorCQkJaWYgKGpfc2VwMTc1MltkbSArIHNlcDE3NTJfb2ZzXSA9PSBkYXkpCisJCQkJZGF5c1tkbV0gfD0gVE9EQVlfRkxBRzsKKwkJcmV0dXJuOworCX0KKwltZW1jcHkoZGF5cywgZW1wdHksIE1BWERBWVMgKiBzaXplb2YoaW50KSk7CisJZG0gPSBkYXlzX2luX21vbnRoW2xlYXBfeWVhcih5ZWFyKV1bbW9udGhdOworCWR3ID0gKGRheV9pbl93ZWVrKDEsIG1vbnRoLCB5ZWFyKSAtIHdlZWtzdGFydCArIDcpICUgNzsKKwlqdWxkYXkgPSBkYXlfaW5feWVhcigxLCBtb250aCwgeWVhcik7CisJZGF5bnVtID0ganVsaWFuID8ganVsZGF5IDogMTsKKwl3aGlsZSAoZG0tLSkgeworCQlkYXlzW2R3XSA9IGRheW51bSsrOworCQlpZiAoanVsZGF5KysgPT0gZGF5KQorCQkJZGF5c1tkd10gfD0gVE9EQVlfRkxBRzsKKwkJZHcrKzsKKwl9Cit9CisKKy8qCisgKiBkYXlfaW5feWVhciAtLQorICoJcmV0dXJuIHRoZSAxIGJhc2VkIGRheSBudW1iZXIgd2l0aGluIHRoZSB5ZWFyCisgKi8KK2ludAorZGF5X2luX3llYXIoaW50IGRheSwgaW50IG1vbnRoLCBpbnQgeWVhcikgeworCWludCBpLCBsZWFwOworCisJbGVhcCA9IGxlYXBfeWVhcih5ZWFyKTsKKwlmb3IgKGkgPSAxOyBpIDwgbW9udGg7IGkrKykKKwkJZGF5ICs9IGRheXNfaW5fbW9udGhbbGVhcF1baV07CisJcmV0dXJuIGRheTsKK30KKworLyoKKyAqIGRheV9pbl93ZWVrCisgKglyZXR1cm4gdGhlIDAgYmFzZWQgZGF5IG51bWJlciBmb3IgYW55IGRhdGUgZnJvbSAxIEphbi4gMSB0bworICoJMzEgRGVjLiA5OTk5LiAgQXNzdW1lcyB0aGUgR3JlZ29yaWFuIHJlZm9ybWF0aW9uIGVsaW1pbmF0ZXMKKyAqCTMgU2VwLiAxNzUyIHRocm91Z2ggMTMgU2VwLiAxNzUyLiAgUmV0dXJucyBUaHVyc2RheSBmb3IgYWxsCisgKgltaXNzaW5nIGRheXMuCisgKi8KK2ludAorZGF5X2luX3dlZWsoaW50IGRheSwgaW50IG1vbnRoLCBpbnQgeWVhcikgeworCWxvbmcgdGVtcDsKKworCXRlbXAgPSAobG9uZykoeWVhciAtIDEpICogMzY1ICsgbGVhcF95ZWFyc19zaW5jZV95ZWFyXzEoeWVhciAtIDEpCisJICAgICsgZGF5X2luX3llYXIoZGF5LCBtb250aCwgeWVhcik7CisJaWYgKHRlbXAgPCBGSVJTVF9NSVNTSU5HX0RBWSkKKwkJcmV0dXJuICgodGVtcCAtIDEgKyBTQVRVUkRBWSkgJSA3KTsKKwlpZiAodGVtcCA+PSAoRklSU1RfTUlTU0lOR19EQVkgKyBOVU1CRVJfTUlTU0lOR19EQVlTKSkKKwkJcmV0dXJuICgoKHRlbXAgLSAxICsgU0FUVVJEQVkpIC0gTlVNQkVSX01JU1NJTkdfREFZUykgJSA3KTsKKwlyZXR1cm4gKFRIVVJTREFZKTsKK30KKworY2hhciAqCithc2NpaV9kYXkoY2hhciAqcCwgaW50IGRheSkgeworCWludCBkaXNwbGF5LCB2YWw7CisJaW50IGhpZ2hsaWdodCA9IDA7CisJc3RhdGljIGNoYXIgKmFkYXlbXSA9IHsKKwkJIiIsCisJCSIgMSIsICIgMiIsICIgMyIsICIgNCIsICIgNSIsICIgNiIsICIgNyIsCisJCSIgOCIsICIgOSIsICIxMCIsICIxMSIsICIxMiIsICIxMyIsICIxNCIsCisJCSIxNSIsICIxNiIsICIxNyIsICIxOCIsICIxOSIsICIyMCIsICIyMSIsCisJCSIyMiIsICIyMyIsICIyNCIsICIyNSIsICIyNiIsICIyNyIsICIyOCIsCisJCSIyOSIsICIzMCIsICIzMSIsCisJfTsKKworCWlmIChkYXkgPT0gU1BBQ0UpIHsKKwkJaW50IGxlbiA9IGp1bGlhbiA/IEpfREFZX0xFTiA6IERBWV9MRU47CisJCW1lbXNldChwLCAnICcsIGxlbik7CisJCXJldHVybiBwK2xlbjsKKwl9CisJaWYgKGRheSAmIFRPREFZX0ZMQUcpIHsKKwkJZGF5ICY9IH5UT0RBWV9GTEFHOworCQlwICs9IHNwcmludGYocCwgIiVzIiwgU2VudGVyKTsKKwkJaGlnaGxpZ2h0ID0gMTsKKwl9CisJaWYgKGp1bGlhbikgeworCQlpZiAoKHZhbCA9IGRheSAvIDEwMCkpIHsKKwkJCWRheSAlPSAxMDA7CisJCQkqcCsrID0gdmFsICsgJzAnOworCQkJZGlzcGxheSA9IDE7CisJCX0gZWxzZSB7CisJCQkqcCsrID0gJyAnOworCQkJZGlzcGxheSA9IDA7CisJCX0KKwkJdmFsID0gZGF5IC8gMTA7CisJCWlmICh2YWwgfHwgZGlzcGxheSkKKwkJCSpwKysgPSB2YWwgKyAnMCc7CisJCWVsc2UKKwkJCSpwKysgPSAnICc7CisJCSpwKysgPSBkYXkgJSAxMCArICcwJzsKKwl9IGVsc2UgeworCQkqcCsrID0gYWRheVtkYXldWzBdOworCQkqcCsrID0gYWRheVtkYXldWzFdOworCX0KKwlpZiAoaGlnaGxpZ2h0KQorCQlwICs9IHNwcmludGYocCwgIiVzIiwgU2V4aXQpOworCSpwKysgPSAnICc7CisJcmV0dXJuIHA7Cit9CisKK3ZvaWQKK3RyaW1fdHJhaWxpbmdfc3BhY2VzKHMpCisJY2hhciAqczsKK3sKKwljaGFyICpwOworCisJZm9yIChwID0gczsgKnA7ICsrcCkKKwkJY29udGludWU7CisJd2hpbGUgKHAgPiBzICYmIGlzc3BhY2UoKi0tcCkpCisJCWNvbnRpbnVlOworCWlmIChwID4gcykKKwkJKytwOworCSpwID0gJ1wwJzsKK30KKworI2lmZGVmIEhBVkVfV0lERUNIQVIKKy8qIHJlcGxhY2Ugbm9uIHByaW50YWJsZSBjaGFycy4KKyAqIHJldHVybiAxIGlmIHJlcGxhY2VtZW50IG1hZGUsIDAgb3RoZXJ3aXNlICovCitpbnQgd2NfZW5zdXJlX3ByaW50YWJsZSh3Y2hhcl90KiB3Y2hhcnMpCit7CisJaW50IHJlcGxhY2VkPTA7CisJd2NoYXJfdCogd2MgPSB3Y2hhcnM7CisJd2hpbGUgKCp3YykgeworCQlpZiAoIWlzd3ByaW50KCh3aW50X3QpICp3YykpIHsKKwkJCSp3Yz1MJ1x1RkZGRCc7CisJCQlyZXBsYWNlZD0xOworCQl9CisJCXdjKys7CisJfQorCXJldHVybiByZXBsYWNlZDsKK30KKworLyogdHJ1bmNhdGUgd2NoYXIgc3RyaW5nIHRvIHdpZHRoIGNlbGxzLgorICogcmV0dXJucyBudW1iZXIgb2YgY2VsbHMgdXNlZC4gKi8KK3NpemVfdCB3Y190cnVuY2F0ZSh3Y2hhcl90KiB3Y2hhcnMsIHNpemVfdCB3aWR0aCwgc2l6ZV90IG1pbmNoYXJzKQoreworCWludCB3Yz0wOworCWludCBjZWxscz0wOworCXdoaWxlICgqKHdjaGFycyt3YykpIHsKKwkJY2VsbHMgPSB3Y3N3aWR0aCh3Y2hhcnMsIHdjKzEpOworCQlpZiAoY2VsbHMgPiB3aWR0aCkgeworCQkJaWYgKHdjID49IG1pbmNoYXJzKSB7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJd2MrKzsKKwl9CisJd2NoYXJzW3djXT1MJ1wwJzsKKwlyZXR1cm4gY2VsbHM7Cit9CisjZW5kaWYKKworLyoKKyAqIENlbnRlciBzdHJpbmcsIGhhbmRsaW5nIG11bHRpYnl0ZSBjaGFyYWN0ZXJzIGFwcHJvcHJpYXRlbHkuCisgKiBJbiBhZGRpdGlvbiBpZiB0aGUgc3RyaW5nIGlzIHRvbyBsYXJnZSBmb3IgdGhlIHdpZHRoIGl0J3MgdHJ1bmNhdGVkLgorICogVGhlIG51bWJlciBvZiB0cmFpbGluZyBzcGFjZXMgbWF5IGJlIDEgbGVzcyB0aGFuIHRoZSBudW1iZXIgb2YgbGVhZGluZyBzcGFjZXMuCisgKi8KK2ludAorY2VudGVyX3N0cihjb25zdCBjaGFyKiBzcmMsIGNoYXIqIGRlc3QsIHNpemVfdCBkZXN0X3NpemUsIGludCB3aWR0aCkKK3sKKyNpZmRlZiBIQVZFX1dJREVDSEFSCisJd2NoYXJfdCBzdHJfd2NbRk1UX1NUX0NIQVJTXTsKKyNlbmRpZgorCWNoYXIgc3RyW0ZNVF9TVF9DSEFSU107CisJY29uc3QgY2hhciogc3RyX3RvX3ByaW50PXNyYzsKKwlpbnQgdXNlZCwgc3BhY2VzLCB3Y19jb252ZXJzaW9uPTAsIHdjX2VuYWJsZWQ9MDsKKworI2lmZGVmIEhBVkVfV0lERUNIQVIKKwlpZiAobWJzdG93Y3Moc3RyX3djLCBzcmMsIEFSUkFZX1NJWkUoc3RyX3djKSkgPiAwKSB7CisJCXN0cl93Y1tBUlJBWV9TSVpFKHN0cl93YyktMV09TCdcMCc7CisJCXdjX2VuYWJsZWQ9MTsKKwkJd2NfY29udmVyc2lvbiA9IHdjX2Vuc3VyZV9wcmludGFibGUoc3RyX3djKTsKKwkJdXNlZCA9IHdjc3dpZHRoKHN0cl93YywgQVJSQVlfU0laRShzdHJfd2MpKTsKKwl9CisJZWxzZQorI2VuZGlmCisJCXVzZWQgPSBzdHJsZW4oc3JjKTsKKworCWlmICh3Y19jb252ZXJzaW9uIHx8IHVzZWQgPiB3aWR0aCkgeworCQlzdHJfdG9fcHJpbnQ9c3RyOworCQlpZiAod2NfZW5hYmxlZCkgeworI2lmZGVmIEhBVkVfV0lERUNIQVIKKwkJCXVzZWQgPSB3Y190cnVuY2F0ZShzdHJfd2MsIHdpZHRoLCAxKTsKKwkJCXdjc3RvbWJzKHN0ciwgc3RyX3djLCBBUlJBWV9TSVpFKHN0cikpOworI2VuZGlmCisJCX0gZWxzZSB7CisJCQltZW1jcHkoc3RyLCBzcmMsIHdpZHRoKTsKKwkJCXN0clt3aWR0aF09J1wwJzsKKwkJfQorCX0KKworCXNwYWNlcyA9IHdpZHRoIC0gdXNlZDsKKwlzcGFjZXMgPSAoIHNwYWNlcyA8IDAgPyAwIDogc3BhY2VzICk7CisKKwlyZXR1cm4gc25wcmludGYoZGVzdCwgZGVzdF9zaXplLCAiJSpzJXMlKnMiLAorCQlzcGFjZXMgLyAyICsgc3BhY2VzICUgMiwgIiIsCisJCXN0cl90b19wcmludCwKKwkJc3BhY2VzIC8gMiwgIiIgKTsKK30KKwordm9pZAorY2VudGVyKHN0ciwgbGVuLCBzZXBhcmF0ZSkKKwljb25zdCBjaGFyICpzdHI7CisJaW50IGxlbjsKKwlpbnQgc2VwYXJhdGU7Cit7CisJY2hhciBsaW5lb3V0W0ZNVF9TVF9DSEFSU107CisJY2VudGVyX3N0cihzdHIsIGxpbmVvdXQsIEFSUkFZX1NJWkUobGluZW91dCksIGxlbik7CisJZnB1dHMobGluZW91dCwgc3Rkb3V0KTsKKwlpZiAoc2VwYXJhdGUpCisJCXByaW50ZigiJSpzIiwgc2VwYXJhdGUsICIiKTsKK30KKwordm9pZAordXNhZ2UoKQoreworCisJZnByaW50ZihzdGRlcnIsIF8oInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIikpOworCWV4aXQoMSk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2Noa2R1cGV4ZS4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9jaGtkdXBleGUuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzk1NjJlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9jaGtkdXBleGUuMQpAQCAtMCwwICsxLDM4IEBACisuXCIgY2hrZHVwZXhlLjEgLS0gCisuXCIgQ3JlYXRlZDogU2F0IE1hciAxMSAxODoxOTo0NCAxOTk1IGJ5IGZhaXRoQGNzLnVuYy5lZHUKKy5cIiBSZXZpc2VkOiBTYXQgTWFyIDExIDE5OjA3OjA1IDE5OTUgYnkgZmFpdGhAY3MudW5jLmVkdQorLlwiIFJldmlzZWQ6IFdlZCBKdWwgIDUgMDE6NTY6MjYgMTk5NSBieSBzaGllbGRzQHRlbWJlbC5vcmcKKy5cIiBDb3B5cmlnaHQgMTk5NSBSaWNrYXJkIEUuIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlwiIAorLlwiIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBtYWtlIGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZiB0aGlzCisuXCIgbWFudWFsIHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFyZQorLlwiIHByZXNlcnZlZCBvbiBhbGwgY29waWVzLgorLlwiIAorLlwiIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIG1vZGlmaWVkIHZlcnNpb25zIG9mIHRoaXMKKy5cIiBtYW51YWwgdW5kZXIgdGhlIGNvbmRpdGlvbnMgZm9yIHZlcmJhdGltIGNvcHlpbmcsIHByb3ZpZGVkIHRoYXQgdGhlCisuXCIgZW50aXJlIHJlc3VsdGluZyBkZXJpdmVkIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIGEKKy5cIiBwZXJtaXNzaW9uIG5vdGljZSBpZGVudGljYWwgdG8gdGhpcyBvbmUKKy5cIiAKKy5cIiBTaW5jZSB0aGUgTGludXgga2VybmVsIGFuZCBsaWJyYXJpZXMgYXJlIGNvbnN0YW50bHkgY2hhbmdpbmcsIHRoaXMKKy5cIiBtYW51YWwgcGFnZSBtYXkgYmUgaW5jb3JyZWN0IG9yIG91dC1vZi1kYXRlLiAgVGhlIGF1dGhvcihzKSBhc3N1bWUgbm8KKy5cIiByZXNwb25zaWJpbGl0eSBmb3IgZXJyb3JzIG9yIG9taXNzaW9ucywgb3IgZm9yIGRhbWFnZXMgcmVzdWx0aW5nIGZyb20KKy5cIiB0aGUgdXNlIG9mIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluLiAgVGhlIGF1dGhvcihzKSBtYXkgbm90CisuXCIgaGF2ZSB0YWtlbiB0aGUgc2FtZSBsZXZlbCBvZiBjYXJlIGluIHRoZSBwcm9kdWN0aW9uIG9mIHRoaXMgbWFudWFsLAorLlwiIHdoaWNoIGlzIGxpY2Vuc2VkIGZyZWUgb2YgY2hhcmdlLCBhcyB0aGV5IG1pZ2h0IHdoZW4gd29ya2luZworLlwiIHByb2Zlc3Npb25hbGx5LgorLlwiIAorLlwiIEZvcm1hdHRlZCBvciBwcm9jZXNzZWQgdmVyc2lvbnMgb2YgdGhpcyBtYW51YWwsIGlmIHVuYWNjb21wYW5pZWQgYnkKKy5cIiB0aGUgc291cmNlLCBtdXN0IGFja25vd2xlZGdlIHRoZSBjb3B5cmlnaHQgYW5kIGF1dGhvcnMgb2YgdGhpcyB3b3JrLgorLlwiIAorLlRIIENIS0RVUEVYRSAxICIxMSBNYXIgMTk5NSIgIiIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorY2hrZHVwZXhlIFwtIGZpbmQgZHVwbGljYXRlIGV4ZWN1dGFibGVzCisuU0ggU1lOT1BTSVMKKy5CIGNoa2R1cGV4ZQorLlNIIERFU0NSSVBUSU9OCisuQiBjaGtkdXBleGUKK3dpbGwgc2NhbiB0aGUgdW5pb24gb2YgJFBBVEggYW5kIGEgaGFyZGNvZGVkIGxpc3Qgb2YgY29tbW9uIGxvY2F0aW9ucworZm9yIGJpbmFyaWVzLiAgSXQgd2lsbCByZXBvcnQgZGFuZ2xpbmcgc3ltbGlua3MgYW5kIGR1cGxpY2F0ZWx5LW5hbWVkCitiaW5hcmllcy4KKy5TSCBBVVRIT1IKK05pY29sYWkgTGFuZ2ZlbGR0LCBNaWNoYWVsIFNoaWVsZHMuCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2Noa2R1cGV4ZS5wbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvY2hrZHVwZXhlLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMyYzIzODQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2Noa2R1cGV4ZS5wbApAQCAtMCwwICsxLDEyMCBAQAorIyFAUEVSTEAgLXcKKyMKKyMgY2hrZHVwZXhlIHZlcnNpb24gMi4xLjEKKyMKKyMgU2ltcGxlIHNjcmlwdCB0byBsb29rIGZvciBhbmQgbGlzdCBkdXBsaWNhdGUgZXhlY3V0YWJsZXMgYW5kIGRhbmdsaW5nCisjIHN5bWxpbmtzIGluIHRoZSBzeXN0ZW0gZXhlY3V0YWJsZSBkaXJlY3Rvcmllcy4KKyMKKyMgQ29weXJpZ2h0IDE5OTMgTmljb2xhaSBMYW5nZmVsZHQuIGphbmxAbWF0aC51aW8ubm8KKyMgIERpc3RyaWJ1dGUgdW5kZXIgZ251IGNvcHlsZWZ0IChpbmNsdWRlZCBpbiBwZXJsIHBhY2thZ2UpIAorIworIyBNb2RpZmllZCAxOTk1LTA3LTA0IE1pY2hhZWwgU2hpZWxkcyA8c2hpZWxkc0B0ZW1iZWwub3JnPgorIyAgICAgRG9uJ3QgZGVwZW5kIG9uIEdOVSBscy4KKyMgICAgIENsZWFudXBzLgorIyAgICAgTWVyZ2UgdG9nZXRoZXIgJEVOVnsnUEFUSCd9IGFuZCAkZXhlY2RpcnMuCisjICAgICBEb24ndCBicmVhayBpZiB0aGVyZSBhcmUgZHVwbGljYXRlcyBpbiAkUEFUSC4KKyMKKyMgTW9kaWZpZWQgMTk5Ni0wMi0xNiBOaWNvbGFpIExhbmdmZWxkdCAoamFubEBtYXRoLnVpby5ubykuCisjICAgICBJIHdhcyB0aGlua2luZyBhZG1pbnMgd291bGQgZWRpdCB0aGUgJGV4ZWNkaXJzIGxpc3QgdG8gc3VpdCB0aGVpcgorIyAgICAgbWFjaGluZShzKSB3aGVuIEkgd3JvdGUgdGhpcy4gIFRoaXMgaXMgb2Zjb3Vyc2Ugbm90IHRoZSBjYXNlLCB0aHVzCisjICAgICBNaWNoYWVscyBmaXhlcy4gIEFuZCBteSBmaXhlcyB0byBoaXMgOi0pCisjICAgICAtIFdvcmtpbmcgZHVwbGljYXRlIGRpcnMgZGV0ZWN0aW9uLgorIyAgICAgLSBBZGRlZCBtb3JlIGNoZWNrcworIyAgICAgLSBUb29rIG91dCAkUEFUSCBmcm9tIHRoZSBsaXN0IG9mIGNoZWNrZWQgZGlyZWN0b3JpZXMgYW5kIGFkZGVkIGEKKyMJY2hlY2sgZm9yICRleGVjZGlycyBhbmQgJFBBVEggY29uc2lzdGVuY3kgaW5zdGVhZAorIyAgICAgLSBNYWRlIGl0IHBvc3NpYmxlIHRvIHJ1biB3aXRoIHBlcmwgLXcKKworJGV4ZWNkaXJzPScvYmluIC9zYmluIC91c3IvYmluIC91c3Ivc2JpbiAvdXNyL2xvY2FsL2JpbiAvdXNyL2xvY2FsL3NiaW4gJy4KKyAgJy91c3IvWDExL2JpbiAvdXNyL2Jpbi9YMTEgL3Vzci9sb2NhbC9YMTEvYmluICcuCisgICcvdXNyL1RlWC9iaW4gL3Vzci90ZXgvYmluIC91c3IvZ2FtZXMgJy4KKyAgJy91c3IvbG9jYWwvZ2FtZXMnOworCisjIFR1cm4gb2ZmIGJ1ZmZlcmluZyBmb3IgdGhlIG91dHB1dCBjaGFubmVsLgorJHw9MTsKKworIyBWYWx1ZXMgZnJvbSAvdXNyL2luY2x1ZGUvbGludXgvZXJybm8uaC4gIEV4aXN0ZW5jZSBvZiBsaW51eC9lcnJuby5waCBpcyBub3QKKyMgc29tZXRoaW5nIHRvIGNvdW50IG9uLi4uIDotKAorJEVOT0VOVD0yOworCislZGlkdGhpcz0oKTsKKworZm9yZWFjaCAkZGlyIChzcGxpdCgvXHMrLywgIiRleGVjZGlycyIpLCAiXDAiLCBzcGxpdCgvOi8sICRFTlZ7UEFUSH0pKSB7CisKKyAgaWYgKCRkaXIgZXEgIlwwIikgeyAkY2hlY2tpbmdwYXRoID0gMTsgbmV4dDsgfQorCisgICMgSXQncyBsaWtlIHRoaXM6IE9uZSBkaXJlY3RvcnkgY29ycmVzcG9uZHMgdG8gb25lICRkZXZpY2UsJGlub2RlIHR1cGxlCisgICMgSWYgYSBzeW1saW5rIHBvaW50cyB0byBhIGRpcmVjdG9yeSB3ZSBhbHJlYWR5IGNoZWNrZWQgdGhhdCBkaXJlY3RvcnkKKyAgIyB3aWxsIGhhdmUgdGhlIHNhbWUgJGRldmljZSwkaW5vZGUgdHVwbGUuCisKKyAgIyBEb2VzIHRoaXMgZGlyZWN0b3J5IGhhdmUgYW55IHJlYWwgZXhzdGVuY2Ugb3V0c2lkZSB0aGUgcmF2aW5ncyBvZgorICAjIHN5bWxpbmtzIHBvaW50aW5nIGhpdGhlciBhbmQgZGl0aGVyPworICAoJGRldmljZSwkaW5vZGUpPXN0YXQoJGRpcik7IAorICBpZiAoIWRlZmluZWQoJGRldmljZSkpIHsKKyAgICAjIE5vbmV4aXN0YW50IGRpcmVjdG9yeSwgb3IgZGFuZ2xpbmcgc3ltbGluaz8KKyAgICAoJGR1bSk9bHN0YXQoJGRpcik7CisgICAgbmV4dCBpZiAkISA9PSAkRU5PRU5UOworICAgIGlmICghJGR1bSkgeworICAgICAgcHJpbnQgIkRhbmdsaW5nIHN5bWxpbms6ICRkaXJcbiI7CisgICAgICBuZXh0OworICAgIH0KKyAgICB3YXJuICJOb25leGlzdGVudCBkaXJlY3Rvcnk6ICRkaXJcbiIgaWYgKCRjaGVja2luZ3BhdGgpOworICAgIG5leHQ7CisgIH0KKworICBpZiAoIS1kIF8pIHsKKyAgICBwcmludCAiTm90IGEgZGlyZWN0b3J5OiAkZGlyXG4iOworICAgIG5leHQ7CisgIH0KKworICBuZXh0IGlmIGRlZmluZWQoJGRpZHRoaXN7JGRldmljZSwkaW5vZGV9KTsKKworICAkZGlkdGhpc3skZGV2aWNlLCRpbm9kZX09MTsKKworICBjaGRpcigkZGlyKSB8fCBkaWUgIkNvdWxkIG5vdCBjaGRpciAkZGlyOiAkIVxuIjsKKyMgVGhpcyB3b3VsZCBnaXZlIHVzIHRoZSB0cnVlIGRpcmVjdG9yeSBuYW1lLCBkbyB3ZSB3YW50IHRoYXQ/CisjICBjaG9wKCRkaXI9YHB3ZGApOworICBvcGVuZGlyKERJUiwiLiIpIHx8IAorICAgIGRpZSAiTlVUUyEgUGVyc29uYWx5IEkgdGhpbmsgeW91ciBwZXJsIG9yIGZpbGVzeXN0ZW0gaXMgYnJva2VuLlxuIi4KKyAgICAgICJJJ3ZlIGRvbmUgYWxsIHNvcnRzIG9mIGNoZWNrcyBvbiAkZGlyLCBhbmQgbm93IEkgY2FuJ3Qgb3BlbiBpdCFcbiI7CisgIGZvcmVhY2ggJF8gKHJlYWRkaXIoRElSKSkgeworICAgIGxzdGF0KCRfKTsKKyAgICBpZiAoLWwgXykgeworICAgICAgKCRkdW0pPXN0YXQoJF8pOworICAgICAgcHJpbnQgIkRhbmdsaW5nIHN5bWxpbms6ICRkaXIvJF9cbiIgdW5sZXNzIGRlZmluZWQoJGR1bSk7CisgICAgICBuZXh0OworICAgIH0KKyAgICBuZXh0IHVubGVzcyAtZiBfICYmIC14IF87CSMgT25seSBoYW5kbGUgcmVndWxhciBleGVjdXRhYmxlIGZpbGVzCisgICAgaWYgKGRlZmluZWQoJGNvdW50eyRffSkpIHsKKyAgICAgICRwcm9nc3skX30uPSIgJGRpci8kXyI7CisgICAgICAkY291bnR7JF99Kys7CisgICAgfSBlbHNlIHsKKyAgICAgICRwcm9nc3skX309IiRkaXIvJF8iOworICAgICAgJGNvdW50eyRffT0xOworICAgIH0KKyAgfQorICBjbG9zZWRpcihESVIpOworfQorCitvcGVuKExTLCJ8IHhhcmdzIC1yIGxzIC1sZFUiKTsKK3doaWxlICgoJHByb2csJHBhdGhzKT1lYWNoICVwcm9ncykgeworICBwcmludCBMUyAiJHBhdGhzXG4iIGlmICgkY291bnR7JHByb2d9PjEpOworfQorY2xvc2UoTFMpOworCitleGl0IDA7CisKK0B1bmNoZWNrZWQ9KCk7CisjIENoZWNrIGlmIHRoZSB1c2VycyBQQVRIIGNvbnRhaW5zIHNvbWV0aGluZyBJJ3ZlIG5vdCBjaGVja2VkLiBUaGUgc2l0ZSBhZG1pbgorIyBtaWdodCB3YW50IHRvIGtub3cgYWJvdXQgaW5jb25zaXN0ZW5jaWVzIGluIHVzZXIgUEFUSHMgYW5kIGNoa2R1cGV4ZWMgCisjIGNvbmZpZ3VyYXRpb24KK2ZvcmVhY2ggJGRpciAoc3BsaXQoLzovLCRFTlZ7J1BBVEgnfSkpIHsKKyAgKCRkZXZpY2UsJGlub2RlKT1zdGF0KCRkaXIpOworICBuZXh0IHVubGVzcyBkZWZpbmVkKCRkZXZpY2UpOworICBuZXh0IGlmIGRlZmluZWQoJGRpZHRoaXN7JGRldmljZSwkaW5vZGV9KTsKKyAgcHVzaChAdW5jaGVja2VkLCRkaXIpOworICAkZGlkdGhpc3skZGV2aWNlLCRpbm9kZX09MTsKK30KKworcHJpbnQgIldhcm5pbmc6IFlvdXIgcGF0aCBjb250YWlucyB0aGVzZSBkaXJlY3RvcmllcyB3aGljaCBjaGtkdXBleGUgaGFzIG5vdCBjaGVja2VkOlxuIixqb2luKCcsJyxAdW5jaGVja2VkKSwKKyAgIi5cblBsZWFzZSByZXZpZXcgdGhlIGV4ZWNkaXJzIGxpc3QgaW4gY2hrZHVwZXhlLlxuIgorICAgIGlmICgkI3VuY2hlY2tlZD49JFspOwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9kZGF0ZS4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9kZGF0ZS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5MjhmOTUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2RkYXRlLjEKQEAgLTAsMCArMSwxMTQgQEAKKy5cIiBBbGwgUml0ZXMgUmV2ZXJzZWQuICBUaGlzIGZpbGUgaXMgaW4gdGhlIFBVQkxJQyBET01BSU4uCisuXCIgS2FsbGlzdGkuCisuVEggRERBVEUgMSAiNTkgQnVyZWF1Y3JhY3kgMzE2MSIgIiIgIkVtcGVyb3IgTm9ydG9uIFV0aWxpdGllcyIKKy5TSCBOQU1FCitkZGF0ZSBcLSBjb252ZXJ0cyBHcmVnb3JpYW4gZGF0ZXMgdG8gRGlzY29yZGlhbiBkYXRlcworLlNIIFNZTk9QU0lTCisuQiBkZGF0ZQorLlJJIFsgXGZCK1xmUGZvcm1hdF0KKy5SSSBbIGRhdGUgXQorLlNIIERFU0NSSVBUSU9OCisuQiBkZGF0ZQorcHJpbnRzIHRoZSBkYXRlIGluIERpc2NvcmRpYW4gZGF0ZSBmb3JtYXQuCisuUFAKK0lmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cywKKy5CIGRkYXRlCit3aWxsIGdldCB0aGUgY3VycmVudCBzeXN0ZW0gZGF0ZSwgY29udmVydCB0aGlzIHRvIHRoZSBEaXNjb3JkaWFuCitkYXRlIGZvcm1hdCBhbmQgcHJpbnQgdGhpcyBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0LiBBbHRlcm5hdGl2ZWx5LCBhCitHcmVnb3JpYW4gZGF0ZSBtYXkgYmUgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUsIGluIHRoZSBmb3JtIG9mIGEgbnVtZXJpY2FsCitkYXksIG1vbnRoIGFuZCB5ZWFyLgorLlBQCitJZiBhIGZvcm1hdCBzdHJpbmcgaXMgc3BlY2lmaWVkLCB0aGUgRGlzY29yZGlhbiBkYXRlIHdpbGwgYmUgcHJpbnRlZCBpbgorYSBmb3JtYXQgc3BlY2lmaWVkIGJ5IHRoZSBzdHJpbmcuIFRoaXMgbWVjaGFuaXNtIHdvcmtzIHNpbWlsYXJseSB0byB0aGUKK2Zvcm1hdCBzdHJpbmcgbWVjaGFuaXNtIG9mCisuQiBkYXRlKDEpLAorb25seSBhbG1vc3QgY29tcGxldGVseSBkaWZmZXJlbnRseS4gVGhlIGZpZWxkcyBhcmU6CisuSVAgJUEKK0Z1bGwgbmFtZSBvZiB0aGUgZGF5IG9mIHRoZSB3ZWVrIChpLmUuLCBTd2VldG1vcm4pCisuSVAgJWEKK0FiYnJldmlhdGVkIG5hbWUgb2YgdGhlIGRheSBvZiB0aGUgd2VlayAoaS5lLiwgU00pCisuSVAgJUIKK0Z1bGwgbmFtZSBvZiB0aGUgc2Vhc29uIChpLmUuLCBDaGFvcykKKy5JUCAlYgorQWJicmV2aWF0ZWQgbmFtZSBvZiB0aGUgc2Vhc29uIChpLmUuLCBDaHMpCisuSVAgJWQKK09yZGluYWwgbnVtYmVyIG9mIGRheSBpbiBzZWFzb24gKGkuZS4sIDIzKQorLklQICVlCitDYXJkaW5hbCBudW1iZXIgb2YgZGF5IGluIHNlYXNvbiAoaS5lLiwgMjNyZCkKKy5JUCAlSAorTmFtZSBvZiBjdXJyZW50IEhvbHlkYXksIGlmIGFueQorLklQICVOCitNYWdpYyBjb2RlIHRvIHByZXZlbnQgcmVzdCBvZiBmb3JtYXQgZnJvbSBiZWluZyBwcmludGVkIHVubGVzcyB0b2RheSBpcworYSBIb2x5ZGF5LgorLklQICVuCitOZXdsaW5lCisuSVAgJXQKK1RhYgorLklQICVYCitOdW1iZXIgb2YgZGF5cyByZW1haW5pbmcgdW50aWwgWC1EYXkuIChOb3QgdmFsaWQgaWYgdGhlIFN1Ykdlbml1cyBvcHRpb25zCithcmUgbm90IGNvbXBpbGVkIGluLikKKy5JUCAleworLklQICV9CitVc2VkIHRvIGVuY2xvc2UgdGhlIHBhcnQgb2YgdGhlIHN0cmluZyB3aGljaCBpcyB0byBiZSByZXBsYWNlZCB3aXRoIHRoZQord29yZHMgIlN0LiBUaWIncyBEYXkiIGlmIHRoZSBjdXJyZW50IGRheSBpcyBTdC4gVGliJ3MgRGF5LgorLklQICVcLgorVHJ5IGl0IGFuZCBzZWUuCisuYnAKKy5TSCBFWEFNUExFUworLm5mCislIGRkYXRlCisuYnIKK1N3ZWV0bW9ybiwgQnVyZWF1Y3JhY3kgNDIsIDMxNjEgWU9MRAorLlBQCislIGRkYXRlICsnVG9kYXkgaXMgJXslQSwgdGhlICVlIG9mICVCJX0sICVZLiAlTiVuQ2VsZWJyYXRlICVIJworLmJyCitUb2RheSBpcyBTd2VldG1vcm4sIHRoZSA0Mm5kIG9mIEJ1cmVhdWNyYWN5LCAzMTYxLgorLlBQCislIGRkYXRlICsiSXQncyAleyVBLCB0aGUgJWUgb2YgJUIlfSwgJVkuICVOJW5DZWxlYnJhdGUgJUgiIDI2IDkgMTk5NQorLmJyCitJdCdzIFByaWNrbGUtUHJpY2tsZSwgdGhlIDUwdGggb2YgQnVyZWF1Y3JhY3ksIDMxNjEuCisuYnIKK0NlbGVicmF0ZSBCdXJlZmx1eAorLlBQCislIGRkYXRlICsiVG9kYXkncyAleyVBLCB0aGUgJWUgb2YgJUIlfSwgJVkuICVOJW5DZWxlYnJhdGUgJUgiIDI5IDIgMTk5NgorLmJyCitUb2RheSdzIFN0LiBUaWIncyBEYXksIDMxNjIuCisuYnIKKworLlNIIEJVR1MKKworLkIgZGRhdGUoMSkKK3dpbGwgcHJvZHVjZSB1bmRlZmluZWQgYmVoYXZpb3VyIGlmIGFza2VkIHRvIHByb2R1Y2UgdGhlIGRhdGUgZm9yIFN0LiBUaWIncworZGF5IGFuZCBpdHMgZm9ybWF0IHN0cmluZyBkb2VzIG5vdCBjb250YWluIHRoZSBTdC4gVGliJ3MgRGF5IGRlbGltaXRlcnMKKyV7IGFuZCAlfS4KKworLlNIIE5PVEUKKworQWZ0ZXIgYFgtRGF5JyBwYXNzZWQgd2l0aG91dCBpbmNpZGVudCwgdGhlIENodXJjaCBvZiB0aGUgU3ViR2VuaXVzCitkZWNsYXJlZCB0aGF0IGl0IGhhZCBnb3QgdGhlIHllYXIgdXBzaWRlIGRvd24gLSBYLURheSBpcyBhY3R1YWxseSBpbiA4NjYxIEFECityYXRoZXIgdGhhbiAxOTk4IEFELiAgVGh1cywgdGhlIFRydWUgWC1EYXkgaXMgQ2ZuIDQwLCA5ODI3LgorCisuU0ggQVVUSE9SCisubmgKK09yaWdpbmFsIHByb2dyYW0gYnkgRHJ1ZWwgdGhlIENoYW90aWMgYWthIEplcmVteSBKb2huc29uIChtcHl0aG9uQGdudS5haS5taXQuZWR1KQorLmJyCitNYWpvciByZXdyaXRlIGJ5IExlZSBIOi4gTzouIFNtaXRoLCBLWVRQLCBha2EgQW5kcmV3IEJ1bGhhayAoYWNiQGRldi5udWxsLm9yZykKKy5icgorRml2ZSB0b25zIG9mIGZsYXguCisKKy5TSCBESVNUUklCVVRJT04gUE9MSUNZCisKK1B1YmxpYyBkb21haW4uIEFsbCByaXRlcyByZXZlcnNlZC4KKworLlNIIFNFRSBBTFNPCisKK2RhdGUoMSksCisuYnIKK2h0dHA6Ly93d3cuc3ViZ2VuaXVzLmNvbS8KKy5icgorTWFsYWNseXBzZSB0aGUgWW91bmdlciwKKy5JICJQcmluY2lwaWEgRGlzY29yZGlhLCBPciBIb3cgSSBGb3VuZCBHb2RkZXNzIEFuZCBXaGF0IEkgRGlkIFRvIEhlciBXaGVuIEkgRm91bmQgSGVyIgorCisuU0ggQVZBSUxBQklMSVRZCitUaGUgZGRhdGUgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2RkYXRlLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2RkYXRlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY2YjM3MQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvZGRhdGUuYwpAQCAtMCwwICsxLDM2OSBAQAorLyogJCBEVkNTIElEOiAkamVyfCw1MjMvbGhvcyxLWVRQITQxMDIzMTYxXGIiPyIgPDw9IERPIE5PVCBERUxFVEUhICovCisKKy8qIGRkYXRlLmMgLi4gY29udmVydHMgYm9yaW5nIG5vcm1hbCBkYXRlcyB0byBmdW4gRGlzY29yZGlhbiBEYXRlIC0+PC0KKyAgIHdyaXR0ZW4gIHRoZSA2NXRoIGRheSBvZiBUaGUgQWZ0ZXJtYXRoIGluIHRoZSBZZWFyIG9mIE91ciBMYWR5IG9mIAorICAgRGlzY29yZCAzMTU3IGJ5IERydWVsIHRoZSBDaGFvdGljIGFrYSBKZXJlbXkgSm9obnNvbiBha2EKKyAgIG1weXRob25AZ251LmFpLm1pdC5lZHUgIAorICAgICAgMjggU2V2ZXIgU3QgQXB0ICMzCisgICAgICBXb3JjZXN0ZXIgTUEgMDE2MDkKKworICAgYW5kIEknbSBub3QgcmVzcG9uc2libGUgaWYgdGhpcyBwcm9ncmFtIG1lc3NlcyBhbnl0aGluZyB1cCAoZXhjZXB0IHlvdXIgCisgICBtaW5kLCBJJ20gcmVzcG9uc2libGUgZm9yIHRoYXQpCisKKyAgIChrKSBZT0xEIDMxNjEgYW5kIGFsbCB0aW1lIGJlZm9yZSBhbmQgYWZ0ZXIuCisgICBSZXByaW50LCByZXVzZSwgYW5kIHJlY3ljbGUgd2hhdCB5b3Ugd2lzaC4KKyAgIFRoaXMgcHJvZ3JhbSBpcyBpbiB0aGUgcHVibGljIGRvbWFpbi4gIERpc3RyaWJ1dGUgZnJlZWx5LiAgT3Igbm90LgorCisgICBNYWpvcmx5IGhhY2tlZCwgZXh0ZW5kZWQgYW5kIGJvZ290aWZpZWQvZGVib2dvdGlmaWVkIG9uIAorICAgU3dlZXRtb3JuLCBCdXJlYXVjcmFjeSA0MiwgMzE2MSBZT0xELCBieSBMZWUgSDouIE86LiBTbWl0aCwgS1lUUCwgCisgICBha2EgQW5kcmV3IEJ1bGhhaywgYWthIGFjYkBkZXYubnVsbC5vcmcKKworICAgYW5kIEknbSBub3QgcmVzcG9uc2libGUgaWYgdGhpcyBwcm9ncmFtIG1lc3NlcyBhbnl0aGluZyB1cCAoZXhjZXB0IHlvdXIgCisgICBtaW5kLCBJJ20gcmVzcG9uc2libGUgZm9yIHRoYXQpIChhbmQgdGhhdCBnb2VzIGZvciBtZSBhcyB3ZWxsIC0tbGhvcykKKworICAgVmVyc2lvbiBoaXN0b3J5OgorICAgQnVyZWZsdXggMzE2MTogICAgICBGaXJzdCByZWxlYXNlIG9mIGVuaGFuY2VkIGRkYXRlIHdpdGggZm9ybWF0IHN0cmluZ3MKKyAgIDU5IEJjeSwgMzE2MTogICAgICAgUFJBSVNFX0JPQiBhbmQgS0lMTF9CT0Igb3B0aW9ucyBzcGxpdCwgb3RoZXIgbWlub3IKKyAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlcy4KKworICAgMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgICAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisKKyAgIDIwMDAtMDMtMTcgQnVydCBIb2x6bWFuIDxibmhAaW5hbWUuY29tPgorICAgLSBhZGRlZCByYW5nZSBjaGVja3MgZm9yIGRhdGVzCisqLworCisvKiBjb25maWd1cmF0aW9uIG9wdGlvbnMgIFZWVlZWICAgUkVBRCBUSElTISEhICovCisKKy8qIElmIHlvdSB3aXNoIGRkYXRlKDEpIHRvIHByaW50IHRoZSBkYXRlIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBEcnVlbCdzIAorICogb3JpZ2luYWwgZGRhdGUgd2hlbiBjYWxsZWQgaW4gaW1tZWRpYXRlIG1vZGUsIGRlZmluZSBPTERfSU1NRURJQVRFX0ZNVCAKKyAqLworCisjZGVmaW5lIE9MRF9JTU1FRElBVEVfRk1UCisKKy8qIElmIHlvdSB3aXNoIHRvIHVzZSB0aGUgVVMgZm9ybWF0IGZvciBhbmVyaXN0aWMgZGF0ZXMgKG0tZC15KSwgYXMgb3Bwb3NlZCB0bworICogdGhlIENvbW1vbndlYWx0aCBmb3JtYXQsIGRlZmluZSBVU19GT1JNQVQuCisgKi8KKworLyogI2RlZmluZSBVU19GT1JNQVQgKi8KKworLyogSWYgeW91IGFyZSBpZGVvbG9naWNhbGx5LCB0aGVvbG9naWNhbGx5IG9yIG90aGVyd2lzZSBvcHBvc2VkIHRvIHRoZSAKKyAqIENodXJjaCBvZiB0aGUgU3ViR2VuaXVzIGFuZCBkbyBub3Qgd2lzaCB5b3VyIGNvcHkgb2YgZGRhdGUoMSkgdG8gY29udGFpbgorICogY29kZSBmb3IgY291bnRpbmcgZG93biB0byBYLURheSwgdW5kZWZpbmUgS0lMTF9CT0IgKi8KKworI2RlZmluZSBLSUxMX0JPQiAxMzAxMworCisvKiBJZiB5b3Ugd2lzaCBkZGF0ZSgxKSB0byBjb250YWluIFN1Ykdlbml1cyBzbG9nYW5zLCBkZWZpbmUgUFJBSVNFX0JPQiAqLworCisvKiNkZWZpbmUgUFJBSVNFX0JPQiAxMzAxMyovCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlICJubHMuaCIKKworI2lmbmRlZiBfX0dOVUNfXworI2RlZmluZSBpbmxpbmUgLyogZm9vICovCisjZW5kaWYKKworI2lmZGVmIEtJTExfQk9CCitpbnQgeGRheV9jb3VudGRvd24oaW50IHlkYXksIGludCB5ZWFyKTsKKyNlbmRpZgorCisKKy8qIHN0cmluZyBjb25zdGFudHMgKi8KKworY2hhciAqZGF5X2xvbmdbNV0gPSB7IAorICAgICJTd2VldG1vcm4iLCAiQm9vbXRpbWUiLCAiUHVuZ2VuZGF5IiwgIlByaWNrbGUtUHJpY2tsZSIsICJTZXR0aW5nIE9yYW5nZSIKK307CisKK2NoYXIgKmRheV9zaG9ydFs1XSA9IHsiU00iLCJCVCIsIlBEIiwiUFAiLCJTTyJ9OworCitjaGFyICpzZWFzb25fbG9uZ1s1XSA9IHsgCisgICAgIkNoYW9zIiwgIkRpc2NvcmQiLCAiQ29uZnVzaW9uIiwgIkJ1cmVhdWNyYWN5IiwgIlRoZSBBZnRlcm1hdGgiCit9OworCitjaGFyICpzZWFzb25fc2hvcnRbNV0gPSB7IkNocyIsICJEc2MiLCAiQ2ZuIiwgIkJjeSIsICJBZm0ifTsKKworY2hhciAqaG9seWRheVs1XVsyXSA9IHsgCisgICAgeyAiTXVuZ2RheSIsICJDaGFvZmx1eCIgfSwKKyAgICB7ICJNb2pvZGF5IiwgIkRpc2NvZmx1eCIgfSwKKyAgICB7ICJTeWFkYXkiLCAgIkNvbmZ1Zmx1eCIgfSwKKyAgICB7ICJaYXJhZGF5IiwgIkJ1cmVmbHV4IiB9LAorICAgIHsgIk1hbGFkYXkiLCAiQWZmbHV4IiB9Cit9OworCitzdHJ1Y3QgZGlzY190aW1lIHsKKyAgICBpbnQgc2Vhc29uOyAvKiAwLTQgKi8KKyAgICBpbnQgZGF5OyAvKiAwLTcyICovCisgICAgaW50IHlkYXk7IC8qIDAtMzY1ICovCisgICAgaW50IHllYXI7IC8qIDMwNjYtICovCit9OworCitjaGFyICpleGNsW10gPSB7CisgICAgIkhhaWwgRXJpcyEiLCAiQWxsIEhhaWwgRGlzY29yZGlhISIsICJLYWxsaXN0aSEiLCAiRm5vcmQuIiwgIk9yIG5vdC4iLAorICAgICJXaWJibGUuIiwgIlB6YXQhIiwgIlAndGFuZyEiLCAiRnJpbmshIiwgCisjaWZkZWYgUFJBSVNFX0JPQgorICAgICJTbGFjayEiLCAiUHJhaXNlIFwiQm9iXCIhIiwgIk9yIGtpbGwgbWUuIiwKKyNlbmRpZiAvKiBQUkFJU0VfQk9CICovCisgICAgLyogcmFuZG9tbmVzcywgZnJvbSB0aGUgTmV0IGFuZCBvdGhlciBwbGFjZXMuIEZlZWwgZnJlZSB0byBhZGQgKGFmdGVyCisgICAgICAgY2hlY2tpbmcgd2l0aCB0aGUgcmVsZXZhbnQgYXV0aG9yaXRpZXMsIG9mIGNvdXJzZSkuICovCisgICAgIkdydWRudWsgZGVtYW5kIHN1c3RlbmFuY2UhIiwgIktlZXAgdGhlIExhc2FnbmEgZmx5aW5nISIsIAorICAgICJVbWxhdXQgWmVicmEg/GJlciBhbGxlcyEiLCAiWW91IGFyZSB3aGF0IHlvdSBzZWUuIiwKKyAgICAiT3IgaXMgaXQ/IiwgIlRoaXMgc3RhdGVtZW50IGlzIGZhbHNlLiIsCisjaWYgZGVmaW5lZChsaW51eCkgfHwgZGVmaW5lZCAoX19saW51eF9fKSB8fCBkZWZpbmVkIChfX2xpbnV4KQorICAgICJIYWlsIEVyaXMsIEhhY2sgTGludXghIiwKKyNlbmRpZgorICAgICIiCit9OworCitjaGFyIGRlZmF1bHRfZm10W10gPSAiJXslQSwgJUIgJWQlfSwgJVkgWU9MRCI7CitjaGFyICpkZWZhdWx0X2ltbWVkaWF0ZV9mbXQ9CisjaWZkZWYgT0xEX0lNTUVESUFURV9GTVQKKyJUb2RheSBpcyAleyVBLCB0aGUgJWUgZGF5IG9mICVCJX0gaW4gdGhlIFlPTEQgJVklTiVuQ2VsZWJyYXRlICVIIgorI2Vsc2UKK2RlZmF1bHRfZm10CisjZW5kaWYKKzsKKworI2RlZmluZSBEWSh5KSAoeSsxMTY2KQorCitzdGF0aWMgaW5saW5lIGNoYXIgKmVuZGluZyhpbnQgaSkgeworCXJldHVybiBpLzEwPT0xPyJ0aCI6KGklMTA9PTE/InN0IjooaSUxMD09Mj8ibmQiOihpJTEwPT0zPyJyZCI6InRoIikpKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgbGVhcHAoaW50IGkpIHsKKwlyZXR1cm4gKCEoRFkoaSklNCkpJiYoKERZKGkpJTEwMCl8fCghKERZKGkpJTQwMCkpKTsKK30KKworLyogc2VsZWN0IGEgcmFuZG9tIHN0cmluZyAqLworc3RhdGljIGlubGluZSBjaGFyICpzZWwoY2hhciAqKnN0cmluZ3MsIGludCBudW0pIHsKKwlyZXR1cm4oc3RyaW5nc1tyYW5kb20oKSVudW1dKTsKK30KKwordm9pZCBwcmludChzdHJ1Y3QgZGlzY190aW1lLGNoYXIgKiopOyAvKiBvbGQgKi8KK3ZvaWQgZm9ybWF0KGNoYXIgKmJ1ZiwgY29uc3QgY2hhciogZm10LCBzdHJ1Y3QgZGlzY190aW1lIGR0KTsKKy8qIHJlYWQgYSBmb3J0dW5lIGZpbGUgKi8KK2ludCBsb2FkX2ZvcnR1bmVzKGNoYXIgKmZuLCBjaGFyICpkZWxpbSwgY2hhcioqIHJlc3VsdCk7CisKK3N0cnVjdCBkaXNjX3RpbWUgY29udmVydChpbnQsaW50KTsKK3N0cnVjdCBkaXNjX3RpbWUgbWFrZWRheShpbnQsaW50LGludCk7CisKK2ludAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworICAgIGxvbmcgdDsKKyAgICBzdHJ1Y3QgdG0gKmVyaXM7CisgICAgaW50IGJvYixyYXc7CisgICAgc3RydWN0IGRpc2NfdGltZSBoYXN0dXI7CisgICAgY2hhciBzY2h3YVsyMyoxN10sICpmbm9yZD0wOworICAgIGludCBwaTsKKyAgICBjaGFyICpwcm9nbmFtZSwgKnA7CisKKyAgICBwcm9nbmFtZSA9IGFyZ3ZbMF07CisgICAgaWYgKChwID0gc3RycmNocihwcm9nbmFtZSwgJy8nKSkgIT0gTlVMTCkKKwlwcm9nbmFtZSA9IHArMTsKKworICAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyAgICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICAgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgICBzcmFuZG9tKHRpbWUoTlVMTCkpOworICAgIC8qIGRvIGFyZ3MgaGVyZSAqLworICAgIGZvcihwaT0xOyBwaTxhcmdjOyBwaSsrKSB7CisJc3dpdGNoKGFyZ3ZbcGldWzBdKSB7CisJY2FzZSAnKyc6IGZub3JkPWFyZ3ZbcGldKzE7IGJyZWFrOworCWNhc2UgJy0nOiAKKwkgICAgc3dpdGNoKGFyZ3ZbcGldWzFdKSB7CisJICAgIGNhc2UgJ1YnOgorCQlwcmludGYoXygiJXMgKCVzKVxuIiksIHByb2duYW1lLCBQQUNLQUdFX1NUUklORyk7CisJICAgIGRlZmF1bHQ6IGdvdG8gdXNhZ2U7CisJICAgIH0KKwlkZWZhdWx0OiBnb3RvIHRodWQ7CisJfQorICAgIH0KKworICB0aHVkOgorICAgIGlmIChhcmdjLXBpPT0zKXsgCisJaW50IG1vZT1hdG9pKGFyZ3ZbcGldKSwgbGFycnk9YXRvaShhcmd2W3BpKzFdKSwgY3VybHk9YXRvaShhcmd2W3BpKzJdKTsKKwloYXN0dXI9bWFrZWRheSgKKyNpZmRlZiBVU19GT1JNQVQKKwkgICAgbW9lLGxhcnJ5LAorI2Vsc2UKKwkgICAgbGFycnksbW9lLAorI2VuZGlmCisJICAgIGN1cmx5KTsKKwlpZiAoaGFzdHVyLnNlYXNvbiA9PSAtMSkgeworCQlwcmludGYoIkludmFsaWQgZGF0ZSAtLSBvdXQgb2YgcmFuZ2VcbiIpOworCQlyZXR1cm4gLTE7CisJfQorCWZub3JkPWZub3JkP2Zub3JkOmRlZmF1bHRfZm10OworICAgIH0gZWxzZSBpZiAoYXJnYyE9cGkpIHsgCisgICAgICB1c2FnZToKKwlmcHJpbnRmKHN0ZGVycixfKCJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIpLCBhcmd2WzBdKTsKKwlleGl0KDEpOworICAgIH0gZWxzZSB7CisJdD0gdGltZShOVUxMKTsKKwllcmlzPWxvY2FsdGltZSgmdCk7CisJYm9iPWVyaXMtPnRtX3lkYXk7IC8qIGRheXMgc2luY2UgSmFuIDEuICovCisJcmF3PWVyaXMtPnRtX3llYXI7IC8qIHllYXJzIHNpbmNlIDE5ODAgKi8KKwloYXN0dXI9Y29udmVydChib2IscmF3KTsKKwlmbm9yZD1mbm9yZD9mbm9yZDpkZWZhdWx0X2ltbWVkaWF0ZV9mbXQ7CisgICAgfQorICAgIGZvcm1hdChzY2h3YSwgZm5vcmQsIGhhc3R1cik7CisgICAgcHJpbnRmKCIlc1xuIiwgc2Nod2EpOworICAgCisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgZm9ybWF0KGNoYXIgKmJ1ZiwgY29uc3QgY2hhciogZm10LCBzdHJ1Y3QgZGlzY190aW1lIGR0KQoreworICAgIGludCB0aWJfc3RhcnQ9LTEsIHRpYl9lbmQ9MDsKKyAgICBpbnQgaSwgZm10bGVuPXN0cmxlbihmbXQpOworICAgIGNoYXIgKmJ1ZnB0cj1idWY7CisKKy8qICAgIGZwcmludGYoc3RkZXJyLCAiZm9ybWF0KCVwLCBcIiVzXCIsIGR0KVxuIiwgYnVmLCBmbXQpOyovCisKKyAgICAvKiBmaXJzdCwgZmluZCBleHRlbnRzIG9mIFN0LiBUaWIncyBEYXkgYXJlYSwgaWYgZGVmaW5lZCAqLworICAgIGZvcihpPTA7IGk8Zm10bGVuOyBpKyspIHsKKwlpZihmbXRbaV09PSclJykgeworCSAgICBzd2l0Y2goZm10W2krMV0pIHsKKwkgICAgY2FzZSAnQSc6CisJICAgIGNhc2UgJ2EnOgorCSAgICBjYXNlICdkJzoKKwkgICAgY2FzZSAnZSc6CisJCWlmKHRpYl9zdGFydD4wKQkgICAgdGliX2VuZD1pKzE7CisJCWVsc2UJCSAgICB0aWJfc3RhcnQ9aTsKKwkJYnJlYWs7CisJICAgIGNhc2UgJ3snOiB0aWJfc3RhcnQ9aTsgYnJlYWs7CisJICAgIGNhc2UgJ30nOiB0aWJfZW5kPWkrMTsgYnJlYWs7CisJICAgIH0KKwl9CisgICAgfQorCisgICAgLyogbm93IGRvIHRoZSBmb3JtYXR0aW5nICovCisgICAgYnVmWzBdPTA7CisKKyAgICBmb3IoaT0wOyBpPGZtdGxlbjsgaSsrKSB7CisJaWYoKGk9PXRpYl9zdGFydCkgJiYgKGR0LmRheT09LTEpKSB7CisJICAgIC8qIGhhbmRsZSBTdC4gVGliJ3MgRGF5ICovCisJICAgIHN0cmNweShidWZwdHIsIF8oIlN0LiBUaWIncyBEYXkiKSk7IGJ1ZnB0ciArPSAxMzsKKwkgICAgaT10aWJfZW5kOworCX0gZWxzZSB7CisJICAgIGlmKGZtdFtpXT09JyUnKSB7CisJCWNoYXIgKndpYmJsZT0wLCBzbmFyZlsyM107CisJCXN3aXRjaChmbXRbKytpXSkgeworCQljYXNlICdBJzogd2liYmxlPWRheV9sb25nW2R0LnlkYXklNV07IGJyZWFrOworCQljYXNlICdhJzogd2liYmxlPWRheV9zaG9ydFtkdC55ZGF5JTVdOyBicmVhazsKKwkJY2FzZSAnQic6IHdpYmJsZT1zZWFzb25fbG9uZ1tkdC5zZWFzb25dOyBicmVhazsKKwkJY2FzZSAnYic6IHdpYmJsZT1zZWFzb25fc2hvcnRbZHQuc2Vhc29uXTsgYnJlYWs7CisJCWNhc2UgJ2QnOiBzcHJpbnRmKHNuYXJmLCAiJWQiLCBkdC5kYXkrMSk7IHdpYmJsZT1zbmFyZjsgYnJlYWs7CisJCWNhc2UgJ2UnOiBzcHJpbnRmKHNuYXJmLCAiJWQlcyIsIGR0LmRheSsxLCBlbmRpbmcoZHQuZGF5KzEpKTsgCisJCSAgICB3aWJibGU9c25hcmY7IGJyZWFrOworCQljYXNlICdIJzogaWYoZHQuZGF5PT00fHxkdC5kYXk9PTQ5KQorCQkgICAgd2liYmxlPWhvbHlkYXlbZHQuc2Vhc29uXVtkdC5kYXk9PTQ5XTsgYnJlYWs7CisJCWNhc2UgJ04nOiBpZihkdC5kYXkhPTQmJmR0LmRheSE9NDkpIGdvdG8gZXNjaGF0b247IGJyZWFrOworCQljYXNlICduJzogKihidWZwdHIrKyk9J1xuJzsgYnJlYWs7CisJCWNhc2UgJ3QnOiAqKGJ1ZnB0cisrKT0nXHQnOyBicmVhazsKKwkJICAgIAorCQljYXNlICdZJzogc3ByaW50ZihzbmFyZiwgIiVkIiwgZHQueWVhcik7IHdpYmJsZT1zbmFyZjsgYnJlYWs7CisJCWNhc2UgJy4nOiB3aWJibGU9c2VsKGV4Y2wsIHNpemVvZihleGNsKS9zaXplb2YoZXhjbFswXSkpOworCQkgICAgYnJlYWs7CisjaWZkZWYgS0lMTF9CT0IKKwkJY2FzZSAnWCc6IHNwcmludGYoc25hcmYsICIlZCIsIAorCQkJCSAgeGRheV9jb3VudGRvd24oZHQueWRheSwgZHQueWVhcikpOworCQkJCSAgd2liYmxlID0gc25hcmY7IGJyZWFrOworI2VuZGlmIC8qIEtJTExfQk9CICovCisJCX0KKwkJaWYod2liYmxlKSB7CisvKgkJICAgIGZwcmludGYoc3RkZXJyLCAid2liYmxlID0gKCVzKVxuIiwgd2liYmxlKTsqLworCQkgICAgc3RyY3B5KGJ1ZnB0ciwgd2liYmxlKTsgYnVmcHRyKz1zdHJsZW4od2liYmxlKTsKKwkJfQorCSAgICB9IGVsc2UgeworCQkqKGJ1ZnB0cisrKSA9IGZtdFtpXTsKKwkgICAgfQorCX0KKyAgICB9CisgIGVzY2hhdG9uOgorICAgICooYnVmcHRyKT0wOworfQorCitzdHJ1Y3QgZGlzY190aW1lIG1ha2VkYXkoaW50IGltb250aCxpbnQgaWRheSxpbnQgaXllYXIpIC8qaSBmb3IgaW5wdXQgKi8KK3sgCisgICAgc3RydWN0IGRpc2NfdGltZSBmdW5reWNoaWNrZW5zOworICAgIAorICAgIGludCBjYWxbMTJdID0geyAzMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMSB9OworICAgIGludCBkYXlzcGFzdD0wOworCisgICAgbWVtc2V0KCZmdW5reWNoaWNrZW5zLDAsc2l6ZW9mKGZ1bmt5Y2hpY2tlbnMpKTsKKyAgICAvKiBiYXNpYyByYW5nZSBjaGVja3MgKi8KKyAgICBpZiAoaW1vbnRoIDwgMSB8fCBpbW9udGggPiAxMikgeworCSAgICBmdW5reWNoaWNrZW5zLnNlYXNvbiA9IC0xOworCSAgICByZXR1cm4gZnVua3ljaGlja2VuczsKKyAgICB9CisgICAgaWYgKGlkYXkgPCAxIHx8IGlkYXkgPiBjYWxbaW1vbnRoLTFdKSB7CisJICAgIGlmICghKGltb250aCA9PSAyICYmIGlkYXkgPT0gMjkgJiYgaXllYXIlNCA9PSAwICYmCisJCSAgKGl5ZWFyJTEwMCAhPSAwIHx8IGl5ZWFyJTQwMCA9PSAwKSkpIHsKKwkJICAgIGZ1bmt5Y2hpY2tlbnMuc2Vhc29uID0gLTE7CisJCSAgICByZXR1cm4gZnVua3ljaGlja2VuczsKKwkgICAgfQorICAgIH0KKyAgICAKKyAgICBpbW9udGgtLTsKKyAgICBmdW5reWNoaWNrZW5zLnllYXI9IGl5ZWFyKzExNjY7CisgICAgd2hpbGUoaW1vbnRoPjApIHsgZGF5c3Bhc3QrPWNhbFstLWltb250aF07IH0KKyAgICBmdW5reWNoaWNrZW5zLmRheT1kYXlzcGFzdCtpZGF5LTE7CisgICAgZnVua3ljaGlja2Vucy5zZWFzb249MDsKKyAgICBpZigoZnVua3ljaGlja2Vucy55ZWFyJTQpPT0yKSB7CisJaWYgKGZ1bmt5Y2hpY2tlbnMuZGF5PT01OSAmJiBpZGF5PT0yOSkgIGZ1bmt5Y2hpY2tlbnMuZGF5PS0xOworICAgIH0KKyAgICBmdW5reWNoaWNrZW5zLnlkYXk9ZnVua3ljaGlja2Vucy5kYXk7CisvKiAgICAgICAgICAgICAgIG5vdGU6IEVRVUFMIFNJR04uLi5ob3BlZnVsbHkgdGhhdCBmaXhlcyBpdCAqLworICAgIHdoaWxlKGZ1bmt5Y2hpY2tlbnMuZGF5Pj03MykgeworCWZ1bmt5Y2hpY2tlbnMuc2Vhc29uKys7CisJZnVua3ljaGlja2Vucy5kYXktPTczOworICAgIH0KKyAgICByZXR1cm4gZnVua3ljaGlja2VuczsKK30KKworc3RydWN0IGRpc2NfdGltZSBjb252ZXJ0KGludCBuZGF5LCBpbnQgbnllYXIpCit7ICBzdHJ1Y3QgZGlzY190aW1lIGZ1bmt5Y2hpY2tlbnM7CisgICAKKyAgIGZ1bmt5Y2hpY2tlbnMueWVhciA9IG55ZWFyKzMwNjY7CisgICBmdW5reWNoaWNrZW5zLmRheT1uZGF5OworICAgZnVua3ljaGlja2Vucy5zZWFzb249MDsKKyAgIGlmICgoZnVua3ljaGlja2Vucy55ZWFyJTQpPT0yKQorICAgICB7aWYgKGZ1bmt5Y2hpY2tlbnMuZGF5PT01OSkKKwlmdW5reWNoaWNrZW5zLmRheT0tMTsKKyAgICAgZWxzZSBpZiAoZnVua3ljaGlja2Vucy5kYXkgPjU5KQorICAgICAgIGZ1bmt5Y2hpY2tlbnMuZGF5LT0xOworICAgIH0KKyAgIGZ1bmt5Y2hpY2tlbnMueWRheT1mdW5reWNoaWNrZW5zLmRheTsKKyAgIHdoaWxlIChmdW5reWNoaWNrZW5zLmRheT49NzMpCisgICAgIHsgZnVua3ljaGlja2Vucy5zZWFzb24rKzsKKyAgICAgICBmdW5reWNoaWNrZW5zLmRheS09NzM7CisgICAgIH0KKyAgIHJldHVybiBmdW5reWNoaWNrZW5zOworICAKKyB9CisKKyNpZmRlZiBLSUxMX0JPQgorCisvKiBDb2RlIGZvciBjb3VudGluZyBkb3duIHRvIFgtRGF5LCBYLURheSBiZWluZyBDZm4gNDAsIDMxNjQgCisgKgorICogQWZ0ZXIgYFgtRGF5JyBwYXNzZWQgd2l0aG91dCBpbmNpZGVudCwgdGhlIENvU0cgZGVjbGFyZWQgdGhhdCBpdCBoYWQgCisgKiBnb3QgdGhlIHllYXIgdXBzaWRlIGRvd24gLS0tIFgtRGF5IGlzIGFjdHVhbGx5IGluIDg2NjEgQUQgcmF0aGVyIHRoYW4gCisgKiAxOTk4IEFELgorICoKKyAqIFRodXMsIHRoZSBUcnVlIFgtRGF5IGlzIENmbiA0MCwgOTgyNy4KKyAqCisgKi8KKworaW50IHhkYXlfY291bnRkb3duKGludCB5ZGF5LCBpbnQgeWVhcikgeworICAgIGludCByPSgxODUteWRheSkrKCgoeWRheTw1OSkmJihsZWFwcCh5ZWFyKSkpPzE6MCk7CisgICAgd2hpbGUoeWVhcjw5ODI3KSByKz0obGVhcHAoKyt5ZWFyKT8zNjY6MzY1KTsKKyAgICB3aGlsZSh5ZWFyPjk4MjcpIHItPShsZWFwcCh5ZWFyLS0pPzM2NjozNjUpOworICAgIHJldHVybiByOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvZmluZGZzLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2ZpbmRmcy44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0ZmNmNmYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2ZpbmRmcy44CkBAIC0wLDAgKzEsMzQgQEAKKy5cIiAtKi0gbnJvZmYgLSotCisuXCIgQ29weXJpZ2h0IDE5OTMsIDE5OTQsIDE5OTUgYnkgVGhlb2RvcmUgVHMnby4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisuXCIgVGhpcyBmaWxlIG1heSBiZSBjb3BpZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgUHVibGljIExpY2Vuc2UuCisuXCIKKy5USCBGSU5ERlMgOCAiRmVicnVhcnkgMjAwOSIgIkxpbnV4IiAiTUFJTlRFTkFOQ0UgQ09NTUFORFMiCisuU0ggTkFNRQorZmluZGZzIFwtIEZpbmQgYSBmaWxlc3lzdGVtIGJ5IGxhYmVsIG9yIFVVSUQKKy5TSCBTWU5PUFNJUworLkIgZmluZGZzCisuQkkgTEFCRUw9IGxhYmVsCisuc3AKKy5CIGZpbmRmcworLkJJIFVVSUQ9IHV1aWQKKy5TSCBERVNDUklQVElPTgorLkIgZmluZGZzCit3aWxsIHNlYXJjaCB0aGUgZGlza3MgaW4gdGhlIHN5c3RlbSBsb29raW5nIGZvciBhIGZpbGVzeXN0ZW0gd2hpY2ggaGFzCithIGxhYmVsIG1hdGNoaW5nCisuSSBsYWJlbAorb3IgYSBVVUlEIGVxdWFsIHRvCisuSVIgdXVpZCAuCitJZiB0aGUgZmlsZXN5c3RlbSBpcyBmb3VuZCwgdGhlIGRldmljZSBuYW1lIGZvciB0aGUgZmlsZXN5c3RlbSB3aWxsCitiZSBwcmludGVkIG9uIHN0ZG91dC4KKy5QUAorLlNIIEFVVEhPUgorLkIgZmluZGZzCit3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IFRoZW9kb3JlIFRzJ28gKHR5dHNvQG1pdC5lZHUpIGFuZCByZS13cml0dGVuIGZvcgordXRpbC1saW51eC1uZyBwYWNrYWdlIGJ5IEthcmVsIFphayAoa3pha0ByZWRoYXQuY29tKS4KKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBmaW5kZnMgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisuU0ggU0VFIEFMU08KKy5CUiBibGtpZCAoOCkKKy5CUiBmc2NrICg4KQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2ZpbmRmcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9maW5kZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODYwOGI0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9maW5kZnMuYwpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBQdWJsaWMKKyAqIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZXJyLmg+CisKKyNpbmNsdWRlIDxibGtpZC5oPgorCisjaW5jbHVkZSAibmxzLmgiCisKK3N0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpIHVzYWdlKGludCByYykKK3sKKwljb25zdCBjaGFyICpwID0gcHJvZ3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWU7CisKKwlpZiAoIXApCisJCXAgPSAiZmluZGZzIjsKKworCWZwcmludGYoc3RkZXJyLCBfKCJVc2FnZTogJXMgTEFCRUw9PGxhYmVsPnxVVUlEPTx1dWlkPlxuIiksIHApOworCWV4aXQocmMpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJY2hhcgkqZGV2LCAqdGssICp2bDsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlpZiAoYXJnYyAhPSAyKQorCQkvKiB3ZSByZXR1cm4gJzInIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisJCSAqIHdpdGggdmVyc2lvbiBmcm9tIGUyZnNwcm9ncyAqLworCQl1c2FnZSgyKTsKKworCWlmICghc3RybmNtcChhcmd2WzFdLCAiTEFCRUw9IiwgNikpIHsKKwkJdGsgPSAiTEFCRUwiOworCQl2bCA9IGFyZ3ZbMV0gKyA2OworCX0gZWxzZSBpZiAoIXN0cm5jbXAoYXJndlsxXSwgIlVVSUQ9IiwgNSkpIHsKKwkJdGsgPSAiVVVJRCI7CisJCXZsID0gYXJndlsxXSArIDU7CisJfSBlbHNlIGlmICghc3RyY21wKGFyZ3ZbMV0sICItaCIpID09IDAgfHwKKwkJICAgIXN0cmNtcChhcmd2WzFdLCAiLS1oZWxwIikgPT0gMCkgeworCQl1c2FnZShFWElUX1NVQ0NFU1MpOworCX0gZWxzZQorCQl1c2FnZSgyKTsKKworCWRldiA9IGJsa2lkX2V2YWx1YXRlX3RhZyh0aywgdmwsIE5VTEwpOworCWlmICghZGV2KQorCQllcnJ4KEVYSVRfRkFJTFVSRSwgXygidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIpLAlhcmd2WzFdKTsKKworCXB1dHMoZGV2KTsKKwlleGl0KEVYSVRfU1VDQ0VTUyk7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMva2lsbC4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9raWxsLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU3ODUyYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMva2lsbC4xCkBAIC0wLDAgKzEsOTggQEAKKy5cIiBDb3B5cmlnaHQgMTk5NCBTYWx2YXRvcmUgVmFsZW50ZSAoc3ZhbGVudGVAbWl0LmVkdSkKKy5cIiBDb3B5cmlnaHQgMTk5MiBSaWNrYXJkIEUuIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlwiIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5USCBLSUxMIDEgIjE0IE9jdG9iZXIgMTk5NCIgIkxpbnV4IFV0aWxpdGllcyIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQora2lsbCBcLSB0ZXJtaW5hdGUgYSBwcm9jZXNzCisuU0ggU1lOT1BTSVMKKy5CIGtpbGwKKy5SQiBbIFwtcworLklSIHNpZ25hbCAgfCBcZkJcLXBcZlAgXQorLlJOIFsgXC1hIF0KKy5SQiBbIFwtXC0gXQorLklSIHBpZCAuLi4KKy5icgorLkIga2lsbCAtbAorLlJJIFsgc2lnbmFsIF0KKy5TSCBERVNDUklQVElPTgorVGhlIGNvbW1hbmQKKy5CIGtpbGwKK3NlbmRzIHRoZSBzcGVjaWZpZWQgc2lnbmFsIHRvIHRoZSBzcGVjaWZpZWQgcHJvY2VzcyBvciBwcm9jZXNzIGdyb3VwLgorSWYgbm8gc2lnbmFsIGlzIHNwZWNpZmllZCwgdGhlIFRFUk0gc2lnbmFsIGlzIHNlbnQuICBUaGUgVEVSTSBzaWduYWwKK3dpbGwga2lsbCBwcm9jZXNzZXMgd2hpY2ggZG8gbm90IGNhdGNoIHRoaXMgc2lnbmFsLiAgRm9yIG90aGVyIHByb2Nlc3NlcywKK2l0IG1heSBiZSBuZWNlc3NhcnkgdG8gdXNlIHRoZSBLSUxMICg5KSBzaWduYWwsIHNpbmNlIHRoaXMgc2lnbmFsIGNhbm5vdAorYmUgY2F1Z2h0LgorLlBQCitNb3N0IG1vZGVybiBzaGVsbHMgaGF2ZSBhIGJ1aWx0aW4ga2lsbCBmdW5jdGlvbiwgd2l0aCBhIHVzYWdlIHJhdGhlciBzaW1pbGFyCit0byB0aGF0IG9mIHRoZSBjb21tYW5kIGRlc2NyaWJlZCBoZXJlLiBUaGUgYC1hJyBhbmQgYC1wJyBvcHRpb25zLAorYW5kIHRoZSBwb3NzaWJpbGl0eSB0byBzcGVjaWZ5IHBpZHMgYnkgY29tbWFuZCBuYW1lIGlzIGEgbG9jYWwgZXh0ZW5zaW9uLgorLlBQCitJZiBzaWcgaXMgMCwgdGhlbiBubyBzaWduYWwgaXMgc2VudCwgYnV0IGVycm9yIGNoZWNraW5nIGlzIHN0aWxsIHBlcmZvcm1lZC4KKy5TSCBPUFRJT05TCisuVFAKKy5JUiBwaWQgLi4uCitTcGVjaWZ5IHRoZSBsaXN0IG9mIHByb2Nlc3NlcyB0aGF0CisuQiBraWxsCitzaG91bGQgc2lnbmFsLiAgRWFjaAorLkkgcGlkCitjYW4gYmUgb25lIG9mIGZpdmUgdGhpbmdzOgorCisuUlMKKy5UUAorLkkgbgord2hlcmUKKy5JIG4KK2lzIGxhcmdlciB0aGFuIDAuICBUaGUgcHJvY2VzcyB3aXRoIHBpZAorLkkgbgord2lsbCBiZSBzaWduYWxlZC4KKy5UUAorLkIgMAorQWxsIHByb2Nlc3NlcyBpbiB0aGUgY3VycmVudCBwcm9jZXNzIGdyb3VwIGFyZSBzaWduYWxlZC4KKy5UUAorLkIgLTEKK0FsbCBwcm9jZXNzZXMgd2l0aCBwaWQgbGFyZ2VyIHRoYW4gMSB3aWxsIGJlIHNpZ25hbGVkLgorLlRQCisuQkkgLSBuCit3aGVyZQorLkkgbgoraXMgbGFyZ2VyIHRoYW4gMS4KK0FsbCBwcm9jZXNzZXMgaW4gcHJvY2VzcyBncm91cAorLkkgbgorYXJlIHNpZ25hbGVkLiAgV2hlbiBhbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBgLW4nIGlzIGdpdmVuLAorYW5kIGl0IGlzIG1lYW50IHRvIGRlbm90ZSBhIHByb2Nlc3MgZ3JvdXAsCitlaXRoZXIgdGhlIHNpZ25hbCBtdXN0IGJlIHNwZWNpZmllZCBmaXJzdCwgb3IgdGhlIGFyZ3VtZW50IG11c3QgYmUgcHJlY2VkZWQKK2J5IGEgYC0tJyBvcHRpb24sIG90aGVyd2lzZSBpdCB3aWxsIGJlIHRha2VuIGFzIHRoZSBzaWduYWwgdG8gc2VuZC4KKy5UUAorLkkgY29tbWFuZG5hbWUKK0FsbCBwcm9jZXNzZXMgaW52b2tlZCB1c2luZyB0aGF0IG5hbWUgd2lsbCBiZSBzaWduYWxlZC4KKy5SRQorLlRQCisuQkkgXC1zICIgc2lnbmFsIgorU3BlY2lmeSB0aGUgc2lnbmFsIHRvIHNlbmQuCitUaGUgc2lnbmFsIG1heSBiZSBnaXZlbiBhcyBhIHNpZ25hbCBuYW1lIG9yIG51bWJlci4KKy5UUAorLkIgXC1sCitQcmludCBhIGxpc3Qgb2Ygc2lnbmFsIG5hbWVzLiAgVGhlc2UgYXJlIGZvdW5kIGluCisuSSAvdXNyL2luY2x1ZGUvbGludXgvc2lnbmFsLmgKKy5UUAorLkIgXC1hCitEbyBub3QgcmVzdHJpY3QgdGhlIGNvbW1hbmRuYW1lLXRvLXBpZCBjb252ZXJzaW9uIHRvIHByb2Nlc3Nlcword2l0aCB0aGUgc2FtZSB1aWQgYXMgdGhlIHByZXNlbnQgcHJvY2Vzcy4KKy5UUAorLkIgXC1wCitTcGVjaWZ5IHRoYXQKKy5CIGtpbGwKK3Nob3VsZCBvbmx5IHByaW50IHRoZSBwcm9jZXNzIGlkIChwaWQpCitvZiB0aGUgbmFtZWQgcHJvY2Vzc2VzLCBhbmQgbm90IHNlbmQgYW55IHNpZ25hbHMuCisuU0ggIlNFRSBBTFNPIgorLkJSIGJhc2ggKDEpLAorLkJSIHRjc2ggKDEpLAorLkJSIGtpbGwgKDIpLAorLkJSIHNpZ3ZlYyAoMiksCisuQlIgc2lnbmFsICg3KQorLlNIIEFVVEhPUgorVGFrZW4gZnJvbSBCU0QgNC40LiAgVGhlIGFiaWxpdHkgdG8gdHJhbnNsYXRlIHByb2Nlc3MgbmFtZXMgdG8gcHJvY2VzcworaWRzIHdhcyBhZGRlZCBieSBTYWx2YXRvcmUgVmFsZW50ZSA8c3ZhbGVudGVAbWl0LmVkdT4uCisuU0ggQVZBSUxBQklMSVRZCitUaGUga2lsbCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMva2lsbC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9raWxsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFlNjFhMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMva2lsbC5jCkBAIC0wLDAgKzEsMzcxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTg4LCAxOTkzLCAxOTk0CisgKglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisvKgorICogIG9jdCA1IDE5OTQgLS0gYWxtb3N0IGVudGlyZWx5IHJlLXdyaXR0ZW4gdG8gYWxsb3cgZm9yIHByb2Nlc3MgbmFtZXMuCisgKiAgbW9kaWZpY2F0aW9ucyAoYykgc2FsdmF0b3JlIHZhbGVudGUgPHN2YWxlbnRlQG1pdC5lZHU+CisgKiAgbWF5IGJlIHVzZWQgLyBtb2RpZmllZCAvIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIHRlcm1zIGFzIHRoZSBvcmlnaW5hbC4KKyAqCisgKiAgMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgKiAgLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqICAxOTk5LTExLTEzIGFlYiBBY2NlcHQgc2lnbmFsIG51bWVycyAxMjgrcy4KKyAqCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RyaW5ncy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CQkvKiBmb3IgaXNkaWdpdCgpICovCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisKKyNpbmNsdWRlICJjLmgiCisjaW5jbHVkZSAia2lsbC5oIgorI2luY2x1ZGUgIm5scy5oIgorCitzdHJ1Y3Qgc2lnbnYgeworCWNoYXIgKm5hbWU7CisJaW50IHZhbDsKK30gc3lzX3NpZ25hbWVbXSA9IHsKKwkvKiBQT1NJWCBzaWduYWxzICovCisJeyAiSFVQIiwJU0lHSFVQIH0sCS8qIDEgKi8KKwl7ICJJTlQiLAlTSUdJTlQgfSwgCS8qIDIgKi8KKwl7ICJRVUlUIiwJU0lHUVVJVCB9LCAJLyogMyAqLworCXsgIklMTCIsCVNJR0lMTCB9LCAJLyogNCAqLworCXsgIkFCUlQiLAlTSUdBQlJUIH0sIAkvKiA2ICovCisJeyAiRlBFIiwJU0lHRlBFIH0sIAkvKiA4ICovCisJeyAiS0lMTCIsCVNJR0tJTEwgfSwgCS8qIDkgKi8KKwl7ICJTRUdWIiwJU0lHU0VHViB9LCAJLyogMTEgKi8KKwl7ICJQSVBFIiwJU0lHUElQRSB9LCAJLyogMTMgKi8KKwl7ICJBTFJNIiwJU0lHQUxSTSB9LCAJLyogMTQgKi8KKwl7ICJURVJNIiwJU0lHVEVSTSB9LCAJLyogMTUgKi8KKwl7ICJVU1IxIiwJU0lHVVNSMSB9LCAJLyogMTAgKGFybSxpMzg2LG02OGsscHBjKSwgMzAgKGFscGhhLHNwYXJjKiksIDE2IChtaXBzKSAqLworCXsgIlVTUjIiLAlTSUdVU1IyIH0sIAkvKiAxMiAoYXJtLGkzODYsbTY4ayxwcGMpLCAzMSAoYWxwaGEsc3BhcmMqKSwgMTcgKG1pcHMpICovCisJeyAiQ0hMRCIsCVNJR0NITEQgfSwgCS8qIDE3IChhcm0saTM4NixtNjhrLHBwYyksIDIwIChhbHBoYSxzcGFyYyopLCAxOCAobWlwcykgKi8KKwl7ICJDT05UIiwJU0lHQ09OVCB9LCAJLyogMTggKGFybSxpMzg2LG02OGsscHBjKSwgMTkgKGFscGhhLHNwYXJjKiksIDI1IChtaXBzKSAqLworCXsgIlNUT1AiLAlTSUdTVE9QIH0sCS8qIDE5IChhcm0saTM4NixtNjhrLHBwYyksIDE3IChhbHBoYSxzcGFyYyopLCAyMyAobWlwcykgKi8KKwl7ICJUU1RQIiwJU0lHVFNUUCB9LAkvKiAyMCAoYXJtLGkzODYsbTY4ayxwcGMpLCAxOCAoYWxwaGEsc3BhcmMqKSwgMjQgKG1pcHMpICovCisJeyAiVFRJTiIsCVNJR1RUSU4gfSwJLyogMjEgKGFybSxpMzg2LG02OGsscHBjLGFscGhhLHNwYXJjKiksIDI2IChtaXBzKSAqLworCXsgIlRUT1UiLAlTSUdUVE9VIH0sCS8qIDIyIChhcm0saTM4NixtNjhrLHBwYyxhbHBoYSxzcGFyYyopLCAyNyAobWlwcykgKi8KKwkvKiBNaXNjZWxsYW5lb3VzIG90aGVyIHNpZ25hbHMgKi8KKyNpZmRlZiBTSUdUUkFQCisJeyAiVFJBUCIsCVNJR1RSQVAgfSwJLyogNSAqLworI2VuZGlmCisjaWZkZWYgU0lHSU9UCisJeyAiSU9UIiwJU0lHSU9UIH0sIAkvKiA2LCBzYW1lIGFzIFNJR0FCUlQgKi8KKyNlbmRpZgorI2lmZGVmIFNJR0VNVAorCXsgIkVNVCIsCVNJR0VNVCB9LCAJLyogNyAobWlwcyxhbHBoYSxzcGFyYyopICovCisjZW5kaWYKKyNpZmRlZiBTSUdCVVMKKwl7ICJCVVMiLAlTSUdCVVMgfSwJLyogNyAoYXJtLGkzODYsbTY4ayxwcGMpLCAxMCAobWlwcyxhbHBoYSxzcGFyYyopICovCisjZW5kaWYKKyNpZmRlZiBTSUdTWVMKKwl7ICJTWVMiLAlTSUdTWVMgfSwgCS8qIDEyIChtaXBzLGFscGhhLHNwYXJjKikgKi8KKyNlbmRpZgorI2lmZGVmIFNJR1NUS0ZMVAorCXsgIlNUS0ZMVCIsCVNJR1NUS0ZMVCB9LAkvKiAxNiAoYXJtLGkzODYsbTY4ayxwcGMpICovCisjZW5kaWYKKyNpZmRlZiBTSUdVUkcKKwl7ICJVUkciLAlTSUdVUkcgfSwJLyogMjMgKGFybSxpMzg2LG02OGsscHBjKSwgMTYgKGFscGhhLHNwYXJjKiksIDIxIChtaXBzKSAqLworI2VuZGlmCisjaWZkZWYgU0lHSU8KKwl7ICJJTyIsCQlTSUdJTyB9LAkvKiAyOSAoYXJtLGkzODYsbTY4ayxwcGMpLCAyMyAoYWxwaGEsc3BhcmMqKSwgMjIgKG1pcHMpICovCisjZW5kaWYKKyNpZmRlZiBTSUdQT0xMCisJeyAiUE9MTCIsCVNJR1BPTEwgfSwJLyogc2FtZSBhcyBTSUdJTyAqLworI2VuZGlmCisjaWZkZWYgU0lHQ0xECisJeyAiQ0xEIiwJU0lHQ0xEIH0sCS8qIHNhbWUgYXMgU0lHQ0hMRCAobWlwcykgKi8KKyNlbmRpZgorI2lmZGVmIFNJR1hDUFUKKwl7ICJYQ1BVIiwJU0lHWENQVSB9LAkvKiAyNCAoYXJtLGkzODYsbTY4ayxwcGMsYWxwaGEsc3BhcmMqKSwgMzAgKG1pcHMpICovCisjZW5kaWYKKyNpZmRlZiBTSUdYRlNaCisJeyAiWEZTWiIsCVNJR1hGU1ogfSwJLyogMjUgKGFybSxpMzg2LG02OGsscHBjLGFscGhhLHNwYXJjKiksIDMxIChtaXBzKSAqLworI2VuZGlmCisjaWZkZWYgU0lHVlRBTFJNCisJeyAiVlRBTFJNIiwJU0lHVlRBTFJNIH0sCS8qIDI2IChhcm0saTM4NixtNjhrLHBwYyxhbHBoYSxzcGFyYyopLCAyOCAobWlwcykgKi8KKyNlbmRpZgorI2lmZGVmIFNJR1BST0YKKwl7ICJQUk9GIiwJU0lHUFJPRiB9LAkvKiAyNyAoYXJtLGkzODYsbTY4ayxwcGMsYWxwaGEsc3BhcmMqKSwgMjkgKG1pcHMpICovCisjZW5kaWYKKyNpZmRlZiBTSUdQV1IKKwl7ICJQV1IiLAlTSUdQV1IgfSwJLyogMzAgKGFybSxpMzg2LG02OGsscHBjKSwgMjkgKGFscGhhLHNwYXJjKiksIDE5IChtaXBzKSAqLworI2VuZGlmCisjaWZkZWYgU0lHSU5GTworCXsgIklORk8iLAlTSUdJTkZPIH0sCS8qIDI5IChhbHBoYSkgKi8KKyNlbmRpZgorI2lmZGVmIFNJR0xPU1QKKwl7ICJMT1NUIiwJU0lHTE9TVCB9LCAJLyogMjkgKGFybSxpMzg2LG02OGsscHBjLHNwYXJjKikgKi8KKyNlbmRpZgorI2lmZGVmIFNJR1dJTkNICisJeyAiV0lOQ0giLAlTSUdXSU5DSCB9LAkvKiAyOCAoYXJtLGkzODYsbTY4ayxwcGMsYWxwaGEsc3BhcmMqKSwgMjAgKG1pcHMpICovCisjZW5kaWYKKyNpZmRlZiBTSUdVTlVTRUQKKwl7ICJVTlVTRUQiLAlTSUdVTlVTRUQgfSwJLyogMzEgKGFybSxpMzg2LG02OGsscHBjKSAqLworI2VuZGlmCit9OworCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7CitleHRlcm4gY2hhciAqbXliYXNlbmFtZShjaGFyICopOworaW50IHNpZ25hbWVfdG9fc2lnbnVtIChjaGFyICpzaWcpOworaW50IGFyZ190b19zaWdudW0gKGNoYXIgKmFyZywgaW50IG1hc2spOwordm9pZCBub3NpZyAoY2hhciAqbmFtZSk7Cit2b2lkIHByaW50c2lnIChpbnQgc2lnKTsKK3ZvaWQgcHJpbnRzaWduYWxzIChGSUxFICpmcCk7CitpbnQgdXNhZ2UgKGludCBzdGF0dXMpOworaW50IGtpbGxfdmVyYm9zZSAoY2hhciAqcHJvY25hbWUsIGludCBwaWQsIGludCBzaWcpOworCitleHRlcm4gaW50ICpnZXRfcGlkcyAoY2hhciAqLCBpbnQpOworCitzdGF0aWMgY2hhciAqcHJvZ25hbWU7CisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICAgIGludCBlcnJvcnMsIG51bXNpZywgcGlkOworICAgIGNoYXIgKmVwLCAqYXJnLCAqcDsKKyAgICBpbnQgZG9fcGlkLCBkb19raWxsLCBjaGVja19hbGw7CisgICAgaW50ICpwaWRzLCAqaXA7CisKKyAgICBwcm9nbmFtZSA9IGFyZ3ZbMF07CisgICAgaWYgKChwID0gc3RycmNocihwcm9nbmFtZSwgJy8nKSkgIT0gTlVMTCkKKwkgICAgcHJvZ25hbWUgPSBwKzE7CisKKyAgICBzZXRsb2NhbGUoTENfQUxMLCAiIik7CisgICAgYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKyAgICB0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisgICAgbnVtc2lnID0gU0lHVEVSTTsKKyAgICBkb19waWQgPSAoISBzdHJjbXAgKHByb2duYW1lLCAicGlkIikpOyAJLyogWWVjY2ggKi8KKyAgICBkb19raWxsID0gMDsKKyAgICBjaGVja19hbGwgPSAwOworCisgICAgLyogIGxvb3AgdGhyb3VnaCB0aGUgYXJndW1lbnRzLgorCWFjdHVhbGx5LCAtYSBpcyB0aGUgb25seSBvcHRpb24gY2FuIGJlIHVzZWQgd2l0aCBvdGhlciBvcHRpb25zLgorCWBraWxsJyBpcyBiYXNpY2FsbHkgYSBvbmUtb3B0aW9uLWF0LW1vc3QgcHJvZ3JhbS4gICovCisgICAgZm9yIChhcmdjLS0sIGFyZ3YrKzsgYXJnYyA+IDA7IGFyZ2MtLSwgYXJndisrKSB7CisJYXJnID0gKmFyZ3Y7CisJaWYgKCphcmcgIT0gJy0nKSB7CisJICAgIGJyZWFrOworCX0KKwlpZiAoISBzdHJjbXAgKGFyZywgIi0tIikpIHsKKwkgICAgYXJnYy0tLCBhcmd2Kys7CisJICAgIGJyZWFrOworCX0KKwlpZiAoISBzdHJjbXAgKGFyZywgIi12IikgfHwgISBzdHJjbXAgKGFyZywgIi1WIikgfHwKKwkgICAgISBzdHJjbXAgKGFyZywgIi0tdmVyc2lvbiIpKSB7CisJICAgIHByaW50ZihfKCIlcyBmcm9tICVzXG4iKSwgcHJvZ25hbWUsIFBBQ0tBR0VfU1RSSU5HKTsKKwkgICAgcmV0dXJuIDA7CisJfQorCWlmICghIHN0cmNtcCAoYXJnLCAiLWEiKSkgeworCSAgICBjaGVja19hbGwrKzsKKwkgICAgY29udGludWU7CisJfQorCWlmICghIHN0cmNtcCAoYXJnLCAiLWwiKSkgeworCSAgICBpZiAoYXJnYyA8IDIpIHsKKwkJcHJpbnRzaWduYWxzIChzdGRvdXQpOworCQlyZXR1cm4gMDsKKwkgICAgfQorCSAgICBpZiAoYXJnYyA+IDIpIHsKKwkJcmV0dXJuIHVzYWdlICgxKTsKKwkgICAgfQorCSAgICAvKiBhcmdjID09IDIsIGFjY2VwdCAia2lsbCAtbCAkPyIgKi8KKwkgICAgYXJnID0gYXJndlsxXTsKKwkgICAgaWYgKChudW1zaWcgPSBhcmdfdG9fc2lnbnVtIChhcmcsIDEpKSA8IDApIHsKKwkJZnByaW50ZiAoc3RkZXJyLCBfKCIlczogdW5rbm93biBzaWduYWwgJXNcbiIpLCBwcm9nbmFtZSwgYXJnKTsKKwkJcmV0dXJuIDE7CisJICAgIH0KKwkgICAgcHJpbnRzaWcgKG51bXNpZyk7CisJICAgIHJldHVybiAwOworCX0KKwlpZiAoISBzdHJjbXAgKGFyZywgIi1wIikpIHsKKwkgICAgZG9fcGlkKys7CisJICAgIGlmIChkb19raWxsKQorCQlyZXR1cm4gdXNhZ2UgKDEpOworCSAgICBjb250aW51ZTsKKwl9CisJaWYgKCEgc3RyY21wIChhcmcsICItcyIpKSB7CisJICAgIGlmIChhcmdjIDwgMikgeworCQlyZXR1cm4gdXNhZ2UgKDEpOworCSAgICB9CisJICAgIGRvX2tpbGwrKzsKKwkgICAgaWYgKGRvX3BpZCkKKwkJcmV0dXJuIHVzYWdlICgxKTsKKwkgICAgYXJnYy0tLCBhcmd2Kys7CisJICAgIGFyZyA9ICphcmd2OworCSAgICBpZiAoKG51bXNpZyA9IGFyZ190b19zaWdudW0gKGFyZywgMCkpIDwgMCkgeworCQlub3NpZyAoYXJnKTsKKwkJcmV0dXJuIDE7CisJICAgIH0KKwkgICAgY29udGludWU7CisJfQorCS8qICBgYXJnJyBiZWdpbnMgd2l0aCBhIGRhc2ggYnV0IGlzIG5vdCBhIGtub3duIG9wdGlvbi4KKwkgICAgc28gaXQncyBwcm9iYWJseSBzb21ldGhpbmcgbGlrZSAtSFVQLCBvciAtMS8tbgorCSAgICB0cnkgdG8gZGVhbCB3aXRoIGl0LgorCSAgICAtbiBjb3VsZCBiZSBzaWduYWwgbiwgb3IgcGlkIC1uIChpLmUuIHByb2Nlc3MgZ3JvdXAgbikuCisJICAgIEluIGNhc2Ugb2YgZG91YnQgUE9TSVggdGVsbHMgdXMgdG8gYXNzdW1lIGEgc2lnbmFsLgorCSAgICBJZiBhIHNpZ25hbCBoYXMgYmVlbiBwYXJzZWQsIGFzc3VtZSBpdCdzIGEgcGlkLCBicmVhayAqLworCWlmIChkb19raWxsKQorCSAgYnJlYWs7CisJYXJnKys7CisJaWYgKChudW1zaWcgPSBhcmdfdG9fc2lnbnVtIChhcmcsIDApKSA8IDApIHsKKwkgICAgcmV0dXJuIHVzYWdlICgxKTsKKwl9CisJZG9fa2lsbCsrOworCWlmIChkb19waWQpCisJICAgIHJldHVybiB1c2FnZSAoMSk7CisJY29udGludWU7CisgICAgfQorCisgICAgaWYgKCEgKmFyZ3YpIHsKKwlyZXR1cm4gdXNhZ2UgKDEpOworICAgIH0KKyAgICBpZiAoZG9fcGlkKSB7CisJbnVtc2lnID0gLTE7CisgICAgfQorCisgICAgLyogIHdlJ3JlIGRvbmUgd2l0aCB0aGUgb3B0aW9ucy4KKwl0aGUgcmVzdCBvZiB0aGUgYXJndW1lbnRzIHNob3VsZCBiZSBwcm9jZXNzIGlkcyBhbmQgbmFtZXMuCisJa2lsbCB0aGVtLiAgKi8KKyAgICBmb3IgKGVycm9ycyA9IDA7IChhcmcgPSAqYXJndikgIT0gTlVMTDsgYXJndisrKSB7CisJcGlkID0gc3RydG9sIChhcmcsICZlcCwgMTApOworCWlmICghICplcCkKKwkgICAgZXJyb3JzICs9IGtpbGxfdmVyYm9zZSAoYXJnLCBwaWQsIG51bXNpZyk7CisJZWxzZSB7CisJICAgIHBpZHMgPSBnZXRfcGlkcyAoYXJnLCBjaGVja19hbGwpOworCSAgICBpZiAoISBwaWRzKSB7CisJCWVycm9ycysrOworCQlmcHJpbnRmIChzdGRlcnIsIF8oIiVzOiBjYW4ndCBmaW5kIHByb2Nlc3MgXCIlc1wiXG4iKSwKKwkJCSBwcm9nbmFtZSwgYXJnKTsKKwkJY29udGludWU7CisJICAgIH0KKwkgICAgZm9yIChpcCA9IHBpZHM7ICppcCA+PSAwOyBpcCsrKQorCQllcnJvcnMgKz0ga2lsbF92ZXJib3NlIChhcmcsICppcCwgbnVtc2lnKTsKKwkgICAgZnJlZSAocGlkcyk7CisJfQorICAgIH0KKyAgICByZXR1cm4gKGVycm9ycyk7Cit9CisKKworaW50IHNpZ25hbWVfdG9fc2lnbnVtIChjaGFyICpzaWcpCit7CisgICAgaW50IG47CisKKyAgICBpZiAoISBzdHJuY2FzZWNtcCAoc2lnLCAic2lnIiwgMykpCisJc2lnICs9IDM7CisgICAgZm9yIChuID0gMDsgbiA8IEFSUkFZX1NJWkUoc3lzX3NpZ25hbWUpOyBuKyspIHsKKwlpZiAoISBzdHJjYXNlY21wIChzeXNfc2lnbmFtZVtuXS5uYW1lLCBzaWcpKQorCSAgICByZXR1cm4gc3lzX3NpZ25hbWVbbl0udmFsOworICAgIH0KKyAgICByZXR1cm4gKC0xKTsKK30KKworaW50IGFyZ190b19zaWdudW0gKGNoYXIgKmFyZywgaW50IG1hc2tiaXQpCit7CisgICAgaW50IG51bXNpZzsKKyAgICBjaGFyICplcDsKKworICAgIGlmIChpc2RpZ2l0ICgqYXJnKSkgeworCW51bXNpZyA9IHN0cnRvbCAoYXJnLCAmZXAsIDEwKTsKKwlpZiAobnVtc2lnID49IE5TSUcgJiYgbWFza2JpdCAmJiAobnVtc2lnICYgMTI4KSAhPSAwKQorCSAgICBudW1zaWcgLT0gMTI4OworCWlmICgqZXAgIT0gMCB8fCBudW1zaWcgPCAwIHx8IG51bXNpZyA+PSBOU0lHKQorCSAgICByZXR1cm4gKC0xKTsKKwlyZXR1cm4gKG51bXNpZyk7CisgICAgfQorICAgIHJldHVybiAoc2lnbmFtZV90b19zaWdudW0gKGFyZykpOworfQorCit2b2lkIG5vc2lnIChjaGFyICpuYW1lKQoreworICAgIGZwcmludGYgKHN0ZGVyciwgXygiJXM6IHVua25vd24gc2lnbmFsICVzOyB2YWxpZCBzaWduYWxzOlxuIiksIHByb2duYW1lLCBuYW1lKTsKKyAgICBwcmludHNpZ25hbHMgKHN0ZGVycik7Cit9CisKK3ZvaWQgcHJpbnRzaWcgKGludCBzaWcpCit7CisgICAgaW50IG47CisKKyAgICBmb3IgKG4gPSAwOyBuIDwgQVJSQVlfU0laRShzeXNfc2lnbmFtZSk7IG4rKykgeworCWlmIChzeXNfc2lnbmFtZVtuXS52YWwgPT0gc2lnKSB7CisJICAgIHByaW50ZiAoIiVzXG4iLCBzeXNfc2lnbmFtZVtuXS5uYW1lKTsKKwkgICAgcmV0dXJuOworCX0KKyAgICB9CisgICAgcHJpbnRmKCIlZFxuIiwgc2lnKTsKK30KKwordm9pZCBwcmludHNpZ25hbHMgKEZJTEUgKmZwKQoreworICAgIGludCBuLCBsdGg7CisgICAgaW50IGxwb3MgPSAwOworCisgICAgZm9yIChuID0gMDsgbiA8IEFSUkFZX1NJWkUoc3lzX3NpZ25hbWUpOyBuKyspIHsKKwlsdGggPSAxK3N0cmxlbihzeXNfc2lnbmFtZVtuXS5uYW1lKTsKKwlpZiAobHBvcytsdGggPiA3MikgeworCSAgICBmcHV0YyAoJ1xuJywgZnApOworCSAgICBscG9zID0gMDsKKwl9IGVsc2UgaWYgKGxwb3MpCisJICAgIGZwdXRjICgnICcsIGZwKTsKKwlscG9zICs9IGx0aDsKKwlmcHV0cyAoc3lzX3NpZ25hbWVbbl0ubmFtZSwgZnApOworICAgIH0KKyAgICBmcHV0YyAoJ1xuJywgZnApOworfQorCitpbnQgdXNhZ2UgKGludCBzdGF0dXMpCit7CisgICAgRklMRSAqZnA7CisKKyAgICBmcCA9IChzdGF0dXMgPT0gMCA/IHN0ZG91dCA6IHN0ZGVycik7CisgICAgZnByaW50ZiAoZnAsIF8oInVzYWdlOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIpLCBwcm9nbmFtZSk7CisgICAgZnByaW50ZiAoZnAsIF8oIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iKSwgcHJvZ25hbWUpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK2ludCBraWxsX3ZlcmJvc2UgKGNoYXIgKnByb2NuYW1lLCBpbnQgcGlkLCBpbnQgc2lnKQoreworICAgIGlmIChzaWcgPCAwKSB7CisJcHJpbnRmICgiJWRcbiIsIHBpZCk7CisJcmV0dXJuIDA7CisgICAgfQorICAgIGlmIChraWxsIChwaWQsIHNpZykgPCAwKSB7CisJZnByaW50ZiAoc3RkZXJyLCAiJXMgIiwgcHJvZ25hbWUpOworCXBlcnJvciAocHJvY25hbWUpOworCXJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMva2lsbC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9raWxsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdhMTJhOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMva2lsbC5oCkBAIC0wLDAgKzEgQEAKK2V4dGVybiBpbnQgKmdldF9waWRzIChjaGFyICpwcm9jZXNzX25hbWUsIGludCBnZXRfYWxsKTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbG9nZ2VyLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2xvZ2dlci4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyNDVhZmIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL2xvZ2dlci4xCkBAIC0wLDAgKzEsMTI5IEBACisuXCIgQ29weXJpZ2h0IChjKSAxOTgzLCAxOTkwLCAxOTkzCisuXCIJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisuXCIKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisuXCIgICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorLlwiCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKy5cIglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKy5cIiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorLlwiICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKy5cIiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy5cIiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorLlwiIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorLlwiIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisuXCIgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKy5cIiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKy5cIiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLlwiIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKy5cIiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisuXCIgU1VDSCBEQU1BR0UuCisuXCIKKy5cIglAKCMpbG9nZ2VyLjEJOC4xIChCZXJrZWxleSkgNi82LzkzCisuXCIKKy5cIiBTZWN0aW9uIG9uIHZhbGlkIGZhY2lsaXR5IGFuZCBsZXZlbCBzdHJpbmdzIGFkZGVkIGJ5CisuXCIgYW5kMTAwMEBkZWJpYW4ub3JnLCAyNiBPY3QgMTk5Ny4KKy5EZCBKdW5lIDYsIDE5OTMKKy5EdCBMT0dHRVIgMQorLk9zIEJTRCA0LjMKKy5TaCBOQU1FCisuTm0gbG9nZ2VyCisuTmQgYSBzaGVsbCBjb21tYW5kIGludGVyZmFjZSB0byB0aGUgc3lzbG9nKDMpIHN5c3RlbSBsb2cgbW9kdWxlCisuU2ggU1lOT1BTSVMKKy5ObSBsb2dnZXIKKy5PcCBGbCBpc2QKKy5PcCBGbCBmIEFyIGZpbGUKKy5PcCBGbCBwIEFyIHByaQorLk9wIEZsIHQgQXIgdGFnCisuT3AgRmwgdSBBciBzb2NrZXQKKy5PcCBBciBtZXNzYWdlIC4uLgorLlNoIERFU0NSSVBUSU9OCisuTm0gTG9nZ2VyCittYWtlcyBlbnRyaWVzIGluIHRoZSBzeXN0ZW0gbG9nLgorSXQgcHJvdmlkZXMgYSBzaGVsbCBjb21tYW5kIGludGVyZmFjZSB0byB0aGUKKy5YciBzeXNsb2cgIDMKK3N5c3RlbSBsb2cgbW9kdWxlLgorLlBwCitPcHRpb25zOgorLlBwCisuQmwgLXRhZyAtd2lkdGggIm1lc3NhZ2UiCisuSXQgRmwgaQorTG9nIHRoZSBwcm9jZXNzIGlkIG9mIHRoZSBsb2dnZXIgcHJvY2Vzcword2l0aCBlYWNoIGxpbmUuCisuSXQgRmwgcworTG9nIHRoZSBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBhcyB3ZWxsIGFzIHRoZSBzeXN0ZW0gbG9nLgorLkl0IEZsIGYgQXIgZmlsZSAKK0xvZyB0aGUgc3BlY2lmaWVkIGZpbGUuCisuSXQgRmwgcCBBciBwcmkgCitFbnRlciB0aGUgbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcHJpb3JpdHkuCitUaGUgcHJpb3JpdHkgbWF5IGJlIHNwZWNpZmllZCBudW1lcmljYWxseSBvciBhcyBhIGBgZmFjaWxpdHkubGV2ZWwnJworcGFpci4KK0ZvciBleGFtcGxlLCBgYFwtcCBsb2NhbDMuaW5mbycnIGxvZ3MgdGhlIG1lc3NhZ2UocykgYXMKKy5BciBpbmZvIE5zIHJtYXRpb25hbAorbGV2ZWwgaW4gdGhlCisuQXIgbG9jYWwzCitmYWNpbGl0eS4KK1RoZSBkZWZhdWx0IGlzIGBgdXNlci5ub3RpY2UuJycKKy5JdCBGbCB0IEFyIHRhZyAKK01hcmsgZXZlcnkgbGluZSBpbiB0aGUgbG9nIHdpdGggdGhlIHNwZWNpZmllZAorLkFyIHRhZyAgLgorLkl0IEZsIHUgQXIgc29jaworV3JpdGUgdG8gc29ja2V0IGFzIHNwZWNpZmllZCB3aXRoCisuQXIgc29ja2V0CitpbnN0ZWFkIG9mIGJ1aWx0aW4gc3lzbG9nIHJvdXRpbmVzLgorLkl0IEZsIGQKK1VzZSBhIGRhdGFncmFtIGluc3RlYWQgb2YgYSBzdHJlYW0gY29ubmVjdGlvbiB0byB0aGlzIHNvY2tldC4KKy5JdCAtLQorRW5kIHRoZSBhcmd1bWVudCBsaXN0LiBUaGlzIGlzIHRvIGFsbG93IHRoZQorLkFyIG1lc3NhZ2UKK3RvIHN0YXJ0IHdpdGggYSBoeXBoZW4gKFwtKS4KKy5JdCBBciBtZXNzYWdlCitXcml0ZSB0aGUgbWVzc2FnZSB0byBsb2c7IGlmIG5vdCBzcGVjaWZpZWQsIGFuZCB0aGUKKy5GbCBmCitmbGFnIGlzIG5vdAorcHJvdmlkZWQsIHN0YW5kYXJkIGlucHV0IGlzIGxvZ2dlZC4KKy5FbAorLlBwCitUaGUKKy5ObSBsb2dnZXIKK3V0aWxpdHkgZXhpdHMgMCBvbiBzdWNjZXNzLCBhbmQgPjAgaWYgYW4gZXJyb3Igb2NjdXJzLgorLlBwCitWYWxpZCBmYWNpbGl0eSBuYW1lcyBhcmU6IGF1dGgsIGF1dGhwcml2IChmb3Igc2VjdXJpdHkgaW5mb3JtYXRpb24gb2YKK2Egc2Vuc2l0aXZlIG5hdHVyZSksIGNyb24sIGRhZW1vbiwgZnRwLCBrZXJuLCBscHIsIG1haWwsIG5ld3MsCitzZWN1cml0eSAoZGVwcmVjYXRlZCBzeW5vbnltIGZvciBhdXRoKSwgc3lzbG9nLCB1c2VyLCB1dWNwLCBhbmQgbG9jYWwwCit0byBsb2NhbDcsIGluY2x1c2l2ZS4KKy5QcAorVmFsaWQgbGV2ZWwgbmFtZXMgYXJlKToKK2FsZXJ0LCBjcml0LCBkZWJ1ZywgZW1lcmcsIGVyciwgZXJyb3IgKGRlcHJlY2F0ZWQgc3lub255bSBmb3IgZXJyKSwKK2luZm8sIG5vdGljZSwgcGFuaWMgKGRlcHJlY2F0ZWQgc3lub255bSBmb3IgZW1lcmcpLCB3YXJuaW5nLAord2FybiAoZGVwcmVjYXRlZCBzeW5vbnltIGZvciB3YXJuaW5nKS4KK0ZvciB0aGUgcHJpb3JpdHkgb3JkZXIgYW5kIGludGVuZGVkIHB1cnBvc2VzIG9mIHRoZXNlIGxldmVscywgc2VlCisuWHIgc3lzbG9nIDMgLgorLlNoIEVYQU1QTEVTCisuQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQgLWNvbXBhY3QKK2xvZ2dlciBTeXN0ZW0gcmVib290ZWQKKworbG9nZ2VyIFwtcCBsb2NhbDAubm90aWNlIFwtdCBIT1NUSURNIFwtZiAvZGV2L2lkbWMKKy5FZAorLlNoIFNFRSBBTFNPCisuWHIgc3lzbG9nIDMgLAorLlhyIHN5c2xvZ2QgOAorLlNoIFNUQU5EQVJEUworVGhlCisuTm0gbG9nZ2VyCitjb21tYW5kIGlzIGV4cGVjdGVkIHRvIGJlCisuU3QgLXAxMDAzLjIKK2NvbXBhdGlibGUuCisuU2ggQVZBSUxBQklMSVRZCitUaGUgbG9nZ2VyIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9sb2dnZXIuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbG9nZ2VyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUwNTBhMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbG9nZ2VyLmMKQEAgLTAsMCArMSwyODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5ODMsIDE5OTMKKyAqCVRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgKiAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisgKiBTdW4gTWFyIDIxIDE5OTkgLSBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8gPGFjbWVAY29uZWN0aXZhLmNvbS5icj4KKyAqIC0gZml4ZWQgc3RyZXJyKGVycm5vKSBpbiBnZXR0ZXh0IGNhbGxzCisgKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdHJpbmdzLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHN5cy91bi5oPgorI2luY2x1ZGUgIm5scy5oIgorCisjZGVmaW5lCVNZU0xPR19OQU1FUworI2luY2x1ZGUgPHN5c2xvZy5oPgorCitpbnQJZGVjb2RlIF9fUCgoY2hhciAqLCBDT0RFICopKTsKK2ludAlwZW5jb2RlIF9fUCgoY2hhciAqKSk7Cit2b2lkCXVzYWdlIF9fUCgodm9pZCkpOworCitzdGF0aWMgaW50IG9wdGQgPSAwOworCitzdGF0aWMgaW50CitteW9wZW5sb2coY29uc3QgY2hhciAqc29jaykgeworICAgICAgIGludCBmZDsKKyAgICAgICBzdGF0aWMgc3RydWN0IHNvY2thZGRyX3VuIHNfYWRkcjsgLyogQUZfVU5JWCBhZGRyZXNzIG9mIGxvY2FsIGxvZ2dlciAqLworCisgICAgICAgaWYgKHN0cmxlbihzb2NrKSA+PSBzaXplb2Yoc19hZGRyLnN1bl9wYXRoKSkgeworCSAgICAgICBwcmludGYgKF8oImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIpKTsKKwkgICAgICAgZXhpdCgxKTsKKyAgICAgICB9CisKKyAgICAgICBzX2FkZHIuc3VuX2ZhbWlseSA9IEFGX1VOSVg7CisgICAgICAgKHZvaWQpc3RyY3B5KHNfYWRkci5zdW5fcGF0aCwgc29jayk7CisKKyAgICAgICBpZiAoKGZkID0gc29ja2V0KEFGX1VOSVgsIG9wdGQgPyBTT0NLX0RHUkFNIDogU09DS19TVFJFQU0sIDApKSA9PSAtMSkgeworICAgICAgICAgICAgICAgcHJpbnRmIChfKCJzb2NrZXQ6ICVzLlxuIiksIHN0cmVycm9yKGVycm5vKSk7CisgICAgICAgICAgICAgICBleGl0ICgxKTsKKyAgICAgICB9CisKKyAgICAgICBpZiAoY29ubmVjdChmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmc19hZGRyLCBzaXplb2Yoc19hZGRyKSkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgIHByaW50ZiAoXygiY29ubmVjdDogJXMuXG4iKSwgc3RyZXJyb3IoZXJybm8pKTsKKyAgICAgICAgICAgICAgIGV4aXQgKDEpOworICAgICAgIH0KKyAgICAgICByZXR1cm4gZmQ7Cit9CisKK3N0YXRpYyB2b2lkCitteXN5c2xvZyhpbnQgZmQsIGludCBsb2dmbGFncywgaW50IHByaSwgY2hhciAqdGFnLCBjaGFyICptc2cpIHsKKyAgICAgICBjaGFyIGJ1ZlsxMDAwXSwgcGlkWzMwXSwgKmNwLCAqdHA7CisgICAgICAgdGltZV90IG5vdzsKKworICAgICAgIGlmIChmZCA+IC0xKSB7CisgICAgICAgICAgICAgICBpZiAobG9nZmxhZ3MgJiBMT0dfUElEKQorICAgICAgICAgICAgICAgICAgICAgICBzbnByaW50ZiAocGlkLCBzaXplb2YocGlkKSwgIlslZF0iLCBnZXRwaWQoKSk7CisJICAgICAgIGVsc2UKKwkJICAgICAgIHBpZFswXSA9IDA7CisgICAgICAgICAgICAgICBpZiAodGFnKQorCQkgICAgICAgY3AgPSB0YWc7CisJICAgICAgIGVsc2UgeworCQkgICAgICAgY3AgPSBnZXRsb2dpbigpOworCQkgICAgICAgaWYgKCFjcCkKKwkJCSAgICAgICBjcCA9ICI8c29tZW9uZT4iOworCSAgICAgICB9CisgICAgICAgICAgICAgICAodm9pZCl0aW1lKCZub3cpOworCSAgICAgICB0cCA9IGN0aW1lKCZub3cpKzQ7CisKKyAgICAgICAgICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICI8JWQ+JS4xNXMgJS4yMDBzJXM6ICUuNDAwcyIsCisJCQlwcmksIHRwLCBjcCwgcGlkLCBtc2cpOworCisgICAgICAgICAgICAgICBpZiAod3JpdGUoZmQsIGJ1Ziwgc3RybGVuKGJ1ZikrMSkgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8qIGVycm9yICovCisgICAgICAgfQorfQorCisvKgorICogbG9nZ2VyIC0tIHJlYWQgYW5kIGxvZyB1dGlsaXR5CisgKgorICoJUmVhZHMgZnJvbSBhbiBpbnB1dCBhbmQgYXJyYW5nZXMgdG8gd3JpdGUgdGhlIHJlc3VsdCBvbiB0aGUgc3lzdGVtCisgKglsb2cuCisgKi8KK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKwlpbnQgY2gsIGxvZ2ZsYWdzLCBwcmk7CisJY2hhciAqdGFnLCBidWZbMTAyNF07CisJY2hhciAqdXNvY2sgPSBOVUxMOworCWludCBMb2dTb2NrID0gLTE7CisKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisJdGFnID0gTlVMTDsKKwlwcmkgPSBMT0dfTk9USUNFOworCWxvZ2ZsYWdzID0gMDsKKwl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJmOmlwOnN0OnU6ZCIpKSAhPSAtMSkKKwkJc3dpdGNoKChjaGFyKWNoKSB7CisJCWNhc2UgJ2YnOgkJLyogZmlsZSB0byBsb2cgKi8KKwkJCWlmIChmcmVvcGVuKG9wdGFyZywgInIiLCBzdGRpbikgPT0gTlVMTCkgeworCQkJCWludCBlcnJzdiA9IGVycm5vOworCQkJCSh2b2lkKWZwcmludGYoc3RkZXJyLCBfKCJsb2dnZXI6ICVzOiAlcy5cbiIpLAorCQkJCSAgICBvcHRhcmcsIHN0cmVycm9yKGVycnN2KSk7CisJCQkJZXhpdCgxKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlICdpJzoJCS8qIGxvZyBwcm9jZXNzIGlkIGFsc28gKi8KKwkJCWxvZ2ZsYWdzIHw9IExPR19QSUQ7CisJCQlicmVhazsKKwkJY2FzZSAncCc6CQkvKiBwcmlvcml0eSAqLworCQkJcHJpID0gcGVuY29kZShvcHRhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgJ3MnOgkJLyogbG9nIHRvIHN0YW5kYXJkIGVycm9yICovCisJCQlsb2dmbGFncyB8PSBMT0dfUEVSUk9SOworCQkJYnJlYWs7CisJCWNhc2UgJ3QnOgkJLyogdGFnICovCisJCQl0YWcgPSBvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAndSc6CQkvKiB1bml4IHNvY2tldCAqLworCQkJdXNvY2sgPSBvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAnZCc6CisJCQlvcHRkID0gMTsJLyogdXNlIGRhdGFncmFtcyAqLworCQkJYnJlYWs7CisJCWNhc2UgJz8nOgorCQlkZWZhdWx0OgorCQkJdXNhZ2UoKTsKKwkJfQorCWFyZ2MgLT0gb3B0aW5kOworCWFyZ3YgKz0gb3B0aW5kOworCisJLyogc2V0dXAgZm9yIGxvZ2dpbmcgKi8KKwlpZiAoIXVzb2NrKQorCQlvcGVubG9nKHRhZyA/IHRhZyA6IGdldGxvZ2luKCksIGxvZ2ZsYWdzLCAwKTsKKwllbHNlCisJCUxvZ1NvY2sgPSBteW9wZW5sb2codXNvY2spOworCisJKHZvaWQpIGZjbG9zZShzdGRvdXQpOworCisJLyogbG9nIGlucHV0IGxpbmUgaWYgYXBwcm9wcmlhdGUgKi8KKwlpZiAoYXJnYyA+IDApIHsKKwkJcmVnaXN0ZXIgY2hhciAqcCwgKmVuZHA7CisJCWludCBsZW47CisKKwkJZm9yIChwID0gYnVmLCBlbmRwID0gYnVmICsgc2l6ZW9mKGJ1ZikgLSAyOyAqYXJndjspIHsKKwkJCWxlbiA9IHN0cmxlbigqYXJndik7CisJCQlpZiAocCArIGxlbiA+IGVuZHAgJiYgcCA+IGJ1ZikgeworCQkJICAgIGlmICghdXNvY2spCisJCQkJc3lzbG9nKHByaSwgIiVzIiwgYnVmKTsKKwkJCSAgICBlbHNlCisJCQkJbXlzeXNsb2coTG9nU29jaywgbG9nZmxhZ3MsIHByaSwgdGFnLCBidWYpOworCQkJCXAgPSBidWY7CisJCQl9CisJCQlpZiAobGVuID4gc2l6ZW9mKGJ1ZikgLSAxKSB7CisJCQkgICAgaWYgKCF1c29jaykKKwkJCQlzeXNsb2cocHJpLCAiJXMiLCAqYXJndisrKTsKKwkJCSAgICBlbHNlCisJCQkJbXlzeXNsb2coTG9nU29jaywgbG9nZmxhZ3MsIHByaSwgdGFnLCAqYXJndisrKTsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKHAgIT0gYnVmKQorCQkJCQkqcCsrID0gJyAnOworCQkJCW1lbW1vdmUocCwgKmFyZ3YrKywgbGVuKTsKKwkJCQkqKHAgKz0gbGVuKSA9ICdcMCc7CisJCQl9CisJCX0KKwkJaWYgKHAgIT0gYnVmKSB7CisJCSAgICBpZiAoIXVzb2NrKQorCQkJc3lzbG9nKHByaSwgIiVzIiwgYnVmKTsKKwkJICAgIGVsc2UKKwkJCW15c3lzbG9nKExvZ1NvY2ssIGxvZ2ZsYWdzLCBwcmksIHRhZywgYnVmKTsKKwkJfQorCX0gZWxzZQorCQl3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgc3RkaW4pICE9IE5VTEwpIHsKKwkJICAgIC8qIGdsaWJjIGlzIGJ1Z2d5IGFuZCBhZGRzIGFuIGFkZGl0aW9uYWwgbmV3bGluZSwKKwkJICAgICAgIHNvIHdlIGhhdmUgdG8gcmVtb3ZlIGl0IGhlcmUgdW50aWwgZ2xpYmMgaXMgZml4ZWQgKi8KKwkJICAgIGludCBsZW4gPSBzdHJsZW4oYnVmKTsKKworCQkgICAgaWYgKGxlbiA+IDAgJiYgYnVmW2xlbiAtIDFdID09ICdcbicpCisJCQkgICAgYnVmW2xlbiAtIDFdID0gJ1wwJzsKKworCQkgICAgaWYgKCF1c29jaykKKwkJCXN5c2xvZyhwcmksICIlcyIsIGJ1Zik7CisJCSAgICBlbHNlCisJCQlteXN5c2xvZyhMb2dTb2NrLCBsb2dmbGFncywgcHJpLCB0YWcsIGJ1Zik7CisJCX0KKwlpZiAoIXVzb2NrKQorCQljbG9zZWxvZygpOworCWVsc2UKKwkJY2xvc2UoTG9nU29jayk7CisJZXhpdCgwKTsKK30KKworLyoKKyAqICBEZWNvZGUgYSBzeW1ib2xpYyBuYW1lIHRvIGEgbnVtZXJpYyB2YWx1ZQorICovCitpbnQKK3BlbmNvZGUocykKKwlyZWdpc3RlciBjaGFyICpzOworeworCWNoYXIgKnNhdmU7CisJaW50IGZhYywgbGV2OworCisJZm9yIChzYXZlID0gczsgKnMgJiYgKnMgIT0gJy4nOyArK3MpOworCWlmICgqcykgeworCQkqcyA9ICdcMCc7CisJCWZhYyA9IGRlY29kZShzYXZlLCBmYWNpbGl0eW5hbWVzKTsKKwkJaWYgKGZhYyA8IDApIHsKKwkJCSh2b2lkKWZwcmludGYoc3RkZXJyLAorCQkJICAgIF8oImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIpLCBzYXZlKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJKnMrKyA9ICcuJzsKKwl9CisJZWxzZSB7CisJCWZhYyA9IExPR19VU0VSOworCQlzID0gc2F2ZTsKKwl9CisJbGV2ID0gZGVjb2RlKHMsIHByaW9yaXR5bmFtZXMpOworCWlmIChsZXYgPCAwKSB7CisJCSh2b2lkKWZwcmludGYoc3RkZXJyLAorCQkgICAgXygibG9nZ2VyOiB1bmtub3duIHByaW9yaXR5IG5hbWU6ICVzLlxuIiksIHNhdmUpOworCQlleGl0KDEpOworCX0KKwlyZXR1cm4gKChsZXYgJiBMT0dfUFJJTUFTSykgfCAoZmFjICYgTE9HX0ZBQ01BU0spKTsKK30KKworaW50CitkZWNvZGUobmFtZSwgY29kZXRhYikKKwljaGFyICpuYW1lOworCUNPREUgKmNvZGV0YWI7Cit7CisJcmVnaXN0ZXIgQ09ERSAqYzsKKworCWlmIChpc2RpZ2l0KCpuYW1lKSkKKwkJcmV0dXJuIChhdG9pKG5hbWUpKTsKKworCWZvciAoYyA9IGNvZGV0YWI7IGMtPmNfbmFtZTsgYysrKQorCQlpZiAoIXN0cmNhc2VjbXAobmFtZSwgYy0+Y19uYW1lKSkKKwkJCXJldHVybiAoYy0+Y192YWwpOworCisJcmV0dXJuICgtMSk7Cit9CisKK3ZvaWQKK3VzYWdlKCkKK3sKKwkodm9pZClmcHJpbnRmKHN0ZGVyciwKKwkgICAgXygidXNhZ2U6IGxvZ2dlciBbLWlzXSBbLWYgZmlsZV0gWy1wIHByaV0gWy10IHRhZ10gWy11IHNvY2tldF0gWyBtZXNzYWdlIC4uLiBdXG4iKSk7CisJZXhpdCgxKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbG9vay4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9sb29rLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlhN2M0YgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbG9vay4xCkBAIC0wLDAgKzEsMTE2IEBACisuXCIgQ29weXJpZ2h0IChjKSAxOTkwLCAxOTkzCisuXCIJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisuXCIKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisuXCIgICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorLlwiCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKy5cIglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKy5cIiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorLlwiICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKy5cIiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy5cIiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorLlwiIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorLlwiIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisuXCIgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKy5cIiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKy5cIiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLlwiIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKy5cIiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisuXCIgU1VDSCBEQU1BR0UuCisuXCIKKy5cIiAgICAgQCgjKWxvb2suMQk4LjEgKEJlcmtlbGV5KSA2LzE0LzkzCisuXCIKKy5EZCBKdW5lIDE0LCAxOTkzCisuRHQgTE9PSyAxCisuT3MKKy5TaCBOQU1FCisuTm0gbG9vaworLk5kIGRpc3BsYXkgbGluZXMgYmVnaW5uaW5nIHdpdGggYSBnaXZlbiBzdHJpbmcKKy5TaCBTWU5PUFNJUworLk5tIGxvb2sKKy5PcCBGbCBkZmEKKy5PcCBGbCB0IEFyIHRlcm1jaGFyCisuQXIgc3RyaW5nCisuT3AgQXIgZmlsZQorLlNoIERFU0NSSVBUSU9OCitUaGUgCisuTm0gbG9vawordXRpbGl0eSBkaXNwbGF5cyBhbnkgbGluZXMgaW4KKy5BciBmaWxlCit3aGljaCBjb250YWluCisuQXIgc3RyaW5nCithcyBhIHByZWZpeC4KK0FzCisuTm0gbG9vaworcGVyZm9ybXMgYSBiaW5hcnkgc2VhcmNoLCB0aGUgbGluZXMgaW4KKy5BciBmaWxlCittdXN0IGJlIHNvcnRlZCAod2hlcmUKKy5YciBzb3J0IDEKK2dvdCB0aGUgc2FtZSBvcHRpb25zIFwtZCBhbmQvb3IgXC1mIHRoYXQKKy5ObSBsb29rCitpcyBpbnZva2VkIHdpdGgpLgorLlBwCitJZgorLkFyIGZpbGUKK2lzIG5vdCBzcGVjaWZpZWQsIHRoZSBmaWxlCisuUGEgL3Vzci9zaGFyZS9kaWN0L3dvcmRzCitpcyB1c2VkLCBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFyZSBjb21wYXJlZCBhbmQgdGhlIGNhc2Ugb2YKK2FscGhhYmV0aWMgY2hhcmFjdGVycyBpcyBpZ25vcmVkLgorLlBwCitPcHRpb25zOgorLkJsIC10YWcgLXdpZHRoIERzCisuSXQgRmwgZAorRGljdGlvbmFyeSBjaGFyYWN0ZXIgc2V0IGFuZCBvcmRlciwgaS5lLiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzCithcmUgY29tcGFyZWQuIChPbiBieSBkZWZhdWx0IGlmIG5vIGZpbGUgc3BlY2lmaWVkKS4KKy5JdCBGbCBmCitJZ25vcmUgdGhlIGNhc2Ugb2YgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzLiAoT24gYnkgZGVmYXVsdCBpZiBubyBmaWxlIHNwZWNpZmllZCkuCisuSXQgRmwgYQorVXNlIHRoZSBhbHRlcm5hdGUgZGljdGlvbmFyeQorLlBhIC91c3Ivc2hhcmUvZGljdC93ZWIyCisuSXQgRmwgdAorU3BlY2lmeSBhIHN0cmluZyB0ZXJtaW5hdGlvbiBjaGFyYWN0ZXIsIGkuZS4gb25seSB0aGUgY2hhcmFjdGVycworaW4KKy5BciBzdHJpbmcKK3VwIHRvIGFuZCBpbmNsdWRpbmcgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YKKy5BciB0ZXJtY2hhcgorYXJlIGNvbXBhcmVkLgorLkVsCisuUHAKK1RoZQorLk5tIGxvb2sKK3V0aWxpdHkgZXhpdHMgMCBpZiBvbmUgb3IgbW9yZSBsaW5lcyB3ZXJlIGZvdW5kIGFuZCBkaXNwbGF5ZWQsCisxIGlmIG5vIGxpbmVzIHdlcmUgZm91bmQsIGFuZCA+MSBpZiBhbiBlcnJvciBvY2N1cnJlZC4KKy5TaCBGSUxFUworLkJsIC10YWcgLXdpZHRoIC91c3Ivc2hhcmUvZGljdC93b3JkcyAtY29tcGFjdAorLkl0IFBhIC91c3Ivc2hhcmUvZGljdC93b3JkcwordGhlIGRpY3Rpb25hcnkKKy5JdCBQYSAvdXNyL3NoYXJlL2RpY3Qvd2ViMgordGhlIGFsdGVybmF0ZSBkaWN0aW9uYXJ5CisuRWwKKy5TaCBTRUUgQUxTTworLlhyIGdyZXAgMSAsCisuWHIgc29ydCAxCisuU2ggQ09NUEFUSUJJTElUWQorVGhlIG9yaWdpbmFsIG1hbnVhbCBwYWdlIHN0YXRlZCB0aGF0IHRhYnMgYW5kIGJsYW5rIGNoYXJhY3RlcnMgcGFydGljaXBhdGVkCitpbiBjb21wYXJpc29ucyB3aGVuIHRoZQorLkZsIGQKK29wdGlvbiB3YXMgc3BlY2lmaWVkLgorVGhpcyB3YXMgaW5jb3JyZWN0IGFuZCB0aGUgY3VycmVudCBtYW4gcGFnZSBtYXRjaGVzIHRoZSBoaXN0b3JpYworaW1wbGVtZW50YXRpb24uCisuU2ggSElTVE9SWQorLk5tIExvb2sKK2FwcGVhcmVkIGluIFZlcnNpb24gNyBBVCZUIFVuaXguCisuU2ggQVZBSUxBQklMSVRZCitUaGUgbG9vayBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbG9vay5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9sb29rLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUyNTU5NgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbG9vay5jCkBAIC0wLDAgKzEsMzgyIEBACisvKi0KKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MworICoJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBjb2RlIGlzIGRlcml2ZWQgZnJvbSBzb2Z0d2FyZSBjb250cmlidXRlZCB0byBCZXJrZWxleSBieQorICogRGF2aWQgSGl0eiBvZiBBdXNwZXggU3lzdGVtcywgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworIC8qIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAgKi8KKworLyoKKyAqIGxvb2sgLS0gZmluZCBsaW5lcyBpbiBhIHNvcnRlZCBsaXN0LgorICoKKyAqIFRoZSBtYW4gcGFnZSBzYWlkIHRoYXQgVEFCcyBhbmQgU1BBQ0VzIHBhcnRpY2lwYXRlIGluIC1kIGNvbXBhcmlzb25zLgorICogSW4gZmFjdCwgdGhleSB3ZXJlIGlnbm9yZWQuICBUaGlzIGltcGxlbWVudHMgaGlzdG9yaWMgcHJhY3RpY2UsIG5vdAorICogdGhlIG1hbnVhbCBwYWdlLgorICovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisKKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdHJpbmdzLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJubHMuaCIKKworI2RlZmluZQlFUVVBTAkJMAorI2RlZmluZQlHUkVBVEVSCQkxCisjZGVmaW5lCUxFU1MJCSgtMSkKKworaW50IGRmbGFnLCBmZmxhZzsKKy8qIHVnbGlmaWVkIHRoZSBzb3VyY2UgYSBiaXQgd2l0aCBnbG9iYWxzLCBzbyB0aGF0IHdlIG9ubHkgbmVlZAorICAgdG8gYWxsb2NhdGUgY29tcGFyYnVmIG9uY2UgKi8KK2ludCBzdHJpbmdsZW47CitjaGFyICpzdHJpbmc7CitjaGFyICpjb21wYXJidWY7CisKK3N0YXRpYyBjaGFyICpiaW5hcnlfc2VhcmNoIChjaGFyICosIGNoYXIgKik7CitzdGF0aWMgaW50IGNvbXBhcmUgKGNoYXIgKiwgY2hhciAqKTsKK3N0YXRpYyB2b2lkIGVyciAoY29uc3QgY2hhciAqZm10LCAuLi4pOworc3RhdGljIGNoYXIgKmxpbmVhcl9zZWFyY2ggKGNoYXIgKiwgY2hhciAqKTsKK3N0YXRpYyBpbnQgbG9vayAoY2hhciAqLCBjaGFyICopOworc3RhdGljIHZvaWQgcHJpbnRfZnJvbSAoY2hhciAqLCBjaGFyICopOworc3RhdGljIHZvaWQgdXNhZ2UgKHZvaWQpOworCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlzdHJ1Y3Qgc3RhdCBzYjsKKwlpbnQgY2gsIGZkLCB0ZXJtY2hhcjsKKwljaGFyICpiYWNrLCAqZmlsZSwgKmZyb250LCAqcDsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisKKwlmaWxlID0gX1BBVEhfV09SRFM7CisJdGVybWNoYXIgPSAnXDAnOworCXN0cmluZyA9IE5VTEw7CQkvKiBqdXN0IGZvciBnY2MgKi8KKworCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwgImFkZnQ6IikpICE9IC0xKQorCQlzd2l0Y2goY2gpIHsKKwkJY2FzZSAnYSc6CisgICAJCSAgICAgICAgZmlsZSA9IF9QQVRIX1dPUkRTX0FMVDsKKwkJICAgICAgICBicmVhazsKKwkJY2FzZSAnZCc6CisJCQlkZmxhZyA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnZic6CisJCQlmZmxhZyA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAndCc6CisJCQl0ZXJtY2hhciA9ICpvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAnPyc6CisJCWRlZmF1bHQ6CisJCQl1c2FnZSgpOworCQl9CisJYXJnYyAtPSBvcHRpbmQ7CisJYXJndiArPSBvcHRpbmQ7CisKKwlzd2l0Y2ggKGFyZ2MpIHsKKwljYXNlIDI6CQkJCS8qIERvbid0IHNldCAtZGYgZm9yIHVzZXIuICovCisJCXN0cmluZyA9ICphcmd2Kys7CisJCWZpbGUgPSAqYXJndjsKKwkJYnJlYWs7CisJY2FzZSAxOgkJCQkvKiBCdXQgc2V0IC1kZiBieSBkZWZhdWx0LiAqLworCQlkZmxhZyA9IGZmbGFnID0gMTsKKwkJc3RyaW5nID0gKmFyZ3Y7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXVzYWdlKCk7CisJfQorCisJaWYgKHRlcm1jaGFyICE9ICdcMCcgJiYgKHAgPSBzdHJjaHIoc3RyaW5nLCB0ZXJtY2hhcikpICE9IE5VTEwpCisJCSorK3AgPSAnXDAnOworCisJaWYgKChmZCA9IG9wZW4oZmlsZSwgT19SRE9OTFksIDApKSA8IDAgfHwgZnN0YXQoZmQsICZzYikpCisJCWVycigiJXM6ICVzIiwgZmlsZSwgc3RyZXJyb3IoZXJybm8pKTsKKwlmcm9udCA9IG1tYXAoTlVMTCwgKHNpemVfdCkgc2Iuc3Rfc2l6ZSwgUFJPVF9SRUFELAorI2lmZGVmIE1BUF9GSUxFCisJCSAgICAgTUFQX0ZJTEUgfAorI2VuZGlmCisJCSAgICAgTUFQX1NIQVJFRCwgZmQsIChvZmZfdCkgMCk7CisJaWYKKyNpZmRlZiBNQVBfRkFJTEVECisJICAgKGZyb250ID09IE1BUF9GQUlMRUQpCisjZWxzZQorCSAgICgodm9pZCAqKShmcm9udCkgPD0gKHZvaWQgKikwKQorI2VuZGlmCisJCWVycigiJXM6ICVzIiwgZmlsZSwgc3RyZXJyb3IoZXJybm8pKTsKKworI2lmIDAKKwkvKiB3b3JrYXJvdW5kIGZvciBtbWFwIHByb2JsZW0gKHJtaWxsZXJAZHVza2dsb3cuY29tKSAqLworCWlmIChmcm9udCA9PSAodm9pZCAqKTApCisJCXJldHVybiAxOworI2VuZGlmCisKKwliYWNrID0gZnJvbnQgKyBzYi5zdF9zaXplOworCXJldHVybiBsb29rKGZyb250LCBiYWNrKTsKK30KKworaW50Citsb29rKGNoYXIgKmZyb250LCBjaGFyICpiYWNrKQoreworCWludCBjaDsKKwljaGFyICpyZWFkcCwgKndyaXRlcDsKKworCS8qIFJlZm9ybWF0IHN0cmluZyBzdHJpbmcgdG8gYXZvaWQgZG9pbmcgaXQgbXVsdGlwbGUgdGltZXMgbGF0ZXIuICovCisJaWYgKGRmbGFnKSB7CisJCWZvciAocmVhZHAgPSB3cml0ZXAgPSBzdHJpbmc7IChjaCA9ICpyZWFkcCsrKSAhPSAwOykgeworCQkJaWYgKGlzYWxudW0oY2gpKQorCQkJCSood3JpdGVwKyspID0gY2g7CisJCX0KKwkJKndyaXRlcCA9ICdcMCc7CisJCXN0cmluZ2xlbiA9IHdyaXRlcCAtIHN0cmluZzsKKwl9IGVsc2UKKwkJc3RyaW5nbGVuID0gc3RybGVuKHN0cmluZyk7CisKKwljb21wYXJidWYgPSBtYWxsb2Moc3RyaW5nbGVuKzEpOworCWlmIChjb21wYXJidWYgPT0gTlVMTCkKKwkJZXJyKF8oIk91dCBvZiBtZW1vcnkiKSk7CisKKwlmcm9udCA9IGJpbmFyeV9zZWFyY2goZnJvbnQsIGJhY2spOworCWZyb250ID0gbGluZWFyX3NlYXJjaChmcm9udCwgYmFjayk7CisKKwlpZiAoZnJvbnQpCisJCXByaW50X2Zyb20oZnJvbnQsIGJhY2spOworCXJldHVybiAoZnJvbnQgPyAwIDogMSk7Cit9CisKKworLyoKKyAqIEJpbmFyeSBzZWFyY2ggZm9yICJzdHJpbmciIGluIG1lbW9yeSBiZXR3ZWVuICJmcm9udCIgYW5kICJiYWNrIi4KKyAqCisgKiBUaGlzIHJvdXRpbmUgaXMgZXhwZWN0ZWQgdG8gcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgc3RhcnQgb2YgYSBsaW5lIGF0CisgKiAqb3IgYmVmb3JlKiB0aGUgZmlyc3Qgd29yZCBtYXRjaGluZyAic3RyaW5nIi4gIFJlbGF4aW5nIHRoZSBjb25zdHJhaW50CisgKiB0aGlzIHdheSBzaW1wbGlmaWVzIHRoZSBhbGdvcml0aG0uCisgKgorICogSW52YXJpYW50czoKKyAqIAlmcm9udCBwb2ludHMgdG8gdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUgYXQgb3IgYmVmb3JlIHRoZSBmaXJzdAorICoJbWF0Y2hpbmcgc3RyaW5nLgorICoKKyAqIAliYWNrIHBvaW50cyB0byB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZSBhdCBvciBhZnRlciB0aGUgZmlyc3QKKyAqCW1hdGNoaW5nIGxpbmUuCisgKgorICogQWR2YW5jaW5nIHRoZSBJbnZhcmlhbnRzOgorICoKKyAqIAlwID0gZmlyc3QgbmV3bGluZSBhZnRlciBoYWxmd2F5IHBvaW50IGZyb20gZnJvbnQgdG8gYmFjay4KKyAqCisgKiAJSWYgdGhlIHN0cmluZyBhdCAicCIgaXMgbm90IGdyZWF0ZXIgdGhhbiB0aGUgc3RyaW5nIHRvIG1hdGNoLAorICoJcCBpcyB0aGUgbmV3IGZyb250LiAgT3RoZXJ3aXNlIGl0IGlzIHRoZSBuZXcgYmFjay4KKyAqCisgKiBUZXJtaW5hdGlvbjoKKyAqCisgKiAJVGhlIGRlZmluaXRpb24gb2YgdGhlIHJvdXRpbmUgYWxsb3dzIGl0IHJldHVybiBhdCBhbnkgcG9pbnQsCisgKglzaW5jZSBmcm9udCBpcyBhbHdheXMgYXQgb3IgYmVmb3JlIHRoZSBsaW5lIHRvIHByaW50LgorICoKKyAqIAlJbiBmYWN0LCBpdCByZXR1cm5zIHdoZW4gdGhlIGNob3NlbiAicCIgZXF1YWxzICJiYWNrIi4gIFRoaXMKKyAqCWltcGxpZXMgdGhhdCB0aGVyZSBleGlzdHMgYSBzdHJpbmcgaXMgbGVhc3QgaGFsZiBhcyBsb25nIGFzCisgKgkoYmFjayAtIGZyb250KSwgd2hpY2ggaW4gdHVybiBpbXBsaWVzIHRoYXQgYSBsaW5lYXIgc2VhcmNoIHdpbGwKKyAqCWJlIG5vIG1vcmUgZXhwZW5zaXZlIHRoYW4gdGhlIGNvc3Qgb2Ygc2ltcGx5IHByaW50aW5nIGEgc3RyaW5nIG9yIHR3by4KKyAqCisgKiAJVHJ5aW5nIHRvIGNvbnRpbnVlIHdpdGggYmluYXJ5IHNlYXJjaCBhdCB0aGlzIHBvaW50IHdvdWxkIGJlCisgKgltb3JlIHRyb3VibGUgdGhhbiBpdCdzIHdvcnRoLgorICovCisjZGVmaW5lCVNLSVBfUEFTVF9ORVdMSU5FKHAsIGJhY2spIFwKKwl3aGlsZSAocCA8IGJhY2sgJiYgKnArKyAhPSAnXG4nKTsKKworY2hhciAqCitiaW5hcnlfc2VhcmNoKGNoYXIgKmZyb250LCBjaGFyICpiYWNrKQoreworCWNoYXIgKnA7CisKKwlwID0gZnJvbnQgKyAoYmFjayAtIGZyb250KSAvIDI7CisJU0tJUF9QQVNUX05FV0xJTkUocCwgYmFjayk7CisKKwkvKgorCSAqIElmIHRoZSBmaWxlIGNoYW5nZXMgdW5kZXJuZWF0aCB1cywgbWFrZSBzdXJlIHdlIGRvbid0CisJICogaW5maW5pdGVseSBsb29wLgorCSAqLworCXdoaWxlIChwIDwgYmFjayAmJiBiYWNrID4gZnJvbnQpIHsKKwkJaWYgKGNvbXBhcmUocCwgYmFjaykgPT0gR1JFQVRFUikKKwkJCWZyb250ID0gcDsKKwkJZWxzZQorCQkJYmFjayA9IHA7CisJCXAgPSBmcm9udCArIChiYWNrIC0gZnJvbnQpIC8gMjsKKwkJU0tJUF9QQVNUX05FV0xJTkUocCwgYmFjayk7CisJfQorCXJldHVybiAoZnJvbnQpOworfQorCisvKgorICogRmluZCB0aGUgZmlyc3QgbGluZSB0aGF0IHN0YXJ0cyB3aXRoIHN0cmluZywgbGluZWFybHkgc2VhcmNoaW5nIGZyb20gZnJvbnQKKyAqIHRvIGJhY2suCisgKgorICogUmV0dXJuIE5VTEwgZm9yIG5vIHN1Y2ggbGluZS4KKyAqCisgKiBUaGlzIHJvdXRpbmUgYXNzdW1lczoKKyAqCisgKiAJbyBmcm9udCBwb2ludHMgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiBhIGxpbmUuCisgKglvIGZyb250IGlzIGJlZm9yZSBvciBhdCB0aGUgZmlyc3QgbGluZSB0byBiZSBwcmludGVkLgorICovCitjaGFyICoKK2xpbmVhcl9zZWFyY2goY2hhciAqZnJvbnQsIGNoYXIgKmJhY2spCit7CisJd2hpbGUgKGZyb250IDwgYmFjaykgeworCQlzd2l0Y2ggKGNvbXBhcmUoZnJvbnQsIGJhY2spKSB7CisJCWNhc2UgRVFVQUw6CQkvKiBGb3VuZCBpdC4gKi8KKwkJCXJldHVybiAoZnJvbnQpOworCQkJYnJlYWs7CisJCWNhc2UgTEVTUzoJCS8qIE5vIHN1Y2ggc3RyaW5nLiAqLworCQkJcmV0dXJuIChOVUxMKTsKKwkJCWJyZWFrOworCQljYXNlIEdSRUFURVI6CQkvKiBLZWVwIGdvaW5nLiAqLworCQkJYnJlYWs7CisJCX0KKwkJU0tJUF9QQVNUX05FV0xJTkUoZnJvbnQsIGJhY2spOworCX0KKwlyZXR1cm4gKE5VTEwpOworfQorCisvKgorICogUHJpbnQgYXMgbWFueSBsaW5lcyBhcyBtYXRjaCBzdHJpbmcsIHN0YXJ0aW5nIGF0IGZyb250LgorICovCit2b2lkCitwcmludF9mcm9tKGNoYXIgKmZyb250LCBjaGFyICpiYWNrKQoreworCWludCBlb2w7CisKKwl3aGlsZSAoZnJvbnQgPCBiYWNrICYmIGNvbXBhcmUoZnJvbnQsIGJhY2spID09IEVRVUFMKSB7CisJCWlmIChjb21wYXJlKGZyb250LCBiYWNrKSA9PSBFUVVBTCkgeworCQkJZW9sID0gMDsKKwkJCXdoaWxlIChmcm9udCA8IGJhY2sgJiYgIWVvbCkgeworCQkJCWlmIChwdXRjaGFyKCpmcm9udCkgPT0gRU9GKQorCQkJCQllcnIoInN0ZG91dDogJXMiLCBzdHJlcnJvcihlcnJubykpOworCQkJCWlmICgqZnJvbnQrKyA9PSAnXG4nKQorCQkJCQllb2wgPSAxOworCQkJfQorCQl9IGVsc2UKKwkJCVNLSVBfUEFTVF9ORVdMSU5FKGZyb250LCBiYWNrKTsKKwl9Cit9CisKKy8qCisgKiBSZXR1cm4gTEVTUywgR1JFQVRFUiwgb3IgRVFVQUwgZGVwZW5kaW5nIG9uIGhvdyAgc3RyaW5nICBjb21wYXJlcyB3aXRoCisgKiBzdHJpbmcyIChzMSA/Pz8gczIpLgorICoKKyAqIAlvIE1hdGNoZXMgdXAgdG8gbGVuKHMxKSBhcmUgRVFVQUwuCisgKglvIE1hdGNoZXMgdXAgdG8gbGVuKHMyKSBhcmUgR1JFQVRFUi4KKyAqCisgKiBDb21wYXJlIHVuZGVyc3RhbmRzIGFib3V0IHRoZSAtZiBhbmQgLWQgZmxhZ3MsIGFuZCB0cmVhdHMgY29tcGFyaXNvbnMKKyAqIGFwcHJvcHJpYXRlbHkuCisgKgorICogVGhlIHN0cmluZyAic3RyaW5nIiBpcyBudWxsIHRlcm1pbmF0ZWQuICBUaGUgc3RyaW5nICJzMiIgaXMgJ1xuJyB0ZXJtaW5hdGVkCisgKiAob3IgInMyZW5kIiB0ZXJtaW5hdGVkKS4KKyAqCisgKiBXZSB1c2Ugc3RyY2FzZWNtcCBldGMsIHNpbmNlIGl0IGtub3dzIGhvdyB0byBpZ25vcmUgY2FzZSBhbHNvCisgKiBpbiBvdGhlciBsb2NhbGVzLgorICovCitpbnQKK2NvbXBhcmUoY2hhciAqczIsIGNoYXIgKnMyZW5kKSB7CisJaW50IGk7CisJY2hhciAqcDsKKworCS8qIGNvcHksIGlnbm9yaW5nIHRoaW5ncyB0aGF0IHNob3VsZCBiZSBpZ25vcmVkICovCisJcCA9IGNvbXBhcmJ1ZjsKKwlpID0gc3RyaW5nbGVuOworCXdoaWxlKHMyIDwgczJlbmQgJiYgKnMyICE9ICdcbicgJiYgaSkgeworCQlpZiAoIWRmbGFnIHx8IGlzYWxudW0oKnMyKSkKKwkJeworCQkJKnArKyA9ICpzMjsKKwkJCWktLTsKKwkJfQorCQlzMisrOworCX0KKwkqcCA9IDA7CisKKwkvKiBhbmQgY29tcGFyZSAqLworCWlmIChmZmxhZykKKwkJaSA9IHN0cm5jYXNlY21wKGNvbXBhcmJ1Ziwgc3RyaW5nLCBzdHJpbmdsZW4pOworCWVsc2UKKwkJaSA9IHN0cm5jbXAoY29tcGFyYnVmLCBzdHJpbmcsIHN0cmluZ2xlbik7CisKKwlyZXR1cm4gKChpID4gMCkgPyBMRVNTIDogKGkgPCAwKSA/IEdSRUFURVIgOiBFUVVBTCk7Cit9CisKK3N0YXRpYyB2b2lkCit1c2FnZSgpCit7CisJKHZvaWQpZnByaW50ZihzdGRlcnIsIF8oInVzYWdlOiBsb29rIFstZGZhXSBbLXQgY2hhcl0gc3RyaW5nIFtmaWxlXVxuIikpOworCWV4aXQoMik7Cit9CisKKyNpZiBfX1NURENfXworI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2Vsc2UKKyNpbmNsdWRlIDx2YXJhcmdzLmg+CisjZW5kaWYKKwordm9pZAorI2lmIF9fU1REQ19fCitlcnIoY29uc3QgY2hhciAqZm10LCAuLi4pCisjZWxzZQorZXJyKGZtdCwgdmFfYWxpc3QpCisJY2hhciAqZm10OworCXZhX2RjbAorI2VuZGlmCit7CisJdmFfbGlzdCBhcDsKKyNpZiBfX1NURENfXworCXZhX3N0YXJ0KGFwLCBmbXQpOworI2Vsc2UKKwl2YV9zdGFydChhcCk7CisjZW5kaWYKKwkodm9pZClmcHJpbnRmKHN0ZGVyciwgImxvb2s6ICIpOworCSh2b2lkKXZmcHJpbnRmKHN0ZGVyciwgZm10LCBhcCk7CisJdmFfZW5kKGFwKTsKKwkodm9pZClmcHJpbnRmKHN0ZGVyciwgIlxuIik7CisJZXhpdCgyKTsKKwkvKiBOT1RSRUFDSEVEICovCit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL21jb29raWUuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbWNvb2tpZS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzOTZkOWEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL21jb29raWUuMQpAQCAtMCwwICsxLDU0IEBACisuXCIgbWNvb2tpZS4xIC0tCisuXCIgUHVibGljIERvbWFpbiAxOTk1IFJpY2thcmQgRS4gRmFpdGggKGZhaXRoQGNzLnVuYy5lZHUpCisuVEggTUNPT0tJRSAxICIyNSBTZXB0ZW1iZXIgMTk5NSIgIiIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorbWNvb2tpZSBcLSBnZW5lcmF0ZSBtYWdpYyBjb29raWVzIGZvciB4YXV0aAorLlNIIFNZTk9QU0lTCisuQiBtY29va2llCisuUkIgWyBcLXYgXQorLlJCIFsgXC1mCisuSVIgZmlsZW5hbWUgXQorLlNIIERFU0NSSVBUSU9OCisuQiBtY29va2llCitnZW5lcmF0ZXMgYSAxMjgtYml0IHJhbmRvbSBoZXhhZGVjaW1hbCBudW1iZXIgZm9yIHVzZSB3aXRoIHRoZSBYIGF1dGhvcml0eQorc3lzdGVtLiAgVHlwaWNhbCB1c2FnZToKKy5SUworeGF1dGggYWRkIDowIC4gYG1jb29raWVgCisuUkUKKy5QUAorVGhlICJyYW5kb20iIG51bWJlciBnZW5lcmF0ZWQgaXMgYWN0dWFsbHkgdGhlIG91dHB1dCBvZiB0aGUgTUQ1IG1lc3NhZ2UKK2RpZ2VzdCBmZWQgd2l0aCB2YXJpb3VzIHBpZWNlcyBvZiByYW5kb20gaW5mb3JtYXRpb246IHRoZSBjdXJyZW50IHRpbWUsIHRoZQorcHJvY2VzcyBpZCwgdGhlIHBhcmVudCBwcm9jZXNzIGlkLCB0aGUgY29udGVudHMgb2YgYW4gaW5wdXQgZmlsZSAoaWYKKy5CIFwtZgoraXMgc3BlY2lmaWVkKSwgYW5kIHNldmVyYWwgYnl0ZXMgb2YgaW5mb3JtYXRpb24gZnJvbSB0aGUgZmlyc3Qgb2YgdGhlCitmb2xsb3dpbmcgZGV2aWNlcyB3aGljaCBpcyBwcmVzZW50OgorLklSIC9kZXYvcmFuZG9tICwKKy5JUiAvZGV2L3VyYW5kb20gLAorZmlsZXMgaW4KKy5JUiAvcHJvYyAsCisuSVIgL2Rldi9hdWRpbyAuCisuU0ggQlVHUworVGhlIGVudHJvcHkgaW4gdGhlIGdlbmVyYXRlZCAxMjgtYml0IGlzIHByb2JhYmx5IHF1aXRlIHNtYWxsIChhbmQsCit0aGVyZWZvcmUsIHZ1bG5lcmFibGUgdG8gYXR0YWNrKSB1bmxlc3MgYSBub24tcHNldWRvcmFuZG9tIG51bWJlciBnZW5lcmF0b3IKK2lzIHVzZWQgKGUuZy4sCisuSSAvZGV2L3JhbmRvbQordW5kZXIgTGludXgpLgorLlBQCitJdCBpcyBhc3N1bWVkIHRoYXQgbm9uZSBvZiB0aGUgZGV2aWNlcyBvcGVuZWQgd2lsbCBibG9jay4KKy5TSCBGSUxFUworLkkgL2Rldi9yYW5kb20KKy5icgorLkkgL2Rldi91cmFuZG9tCisuYnIKKy5JIC9kZXYvYXVkaW8KKy5icgorLkkgL3Byb2Mvc3RhdAorLmJyCisuSSAvcHJvYy9sb2FkYXZnCisuU0ggIlNFRSBBTFNPIgorLkJSIFggKDEpLAorLkJSIHhhdXRoICgxKSwKKy5CUiBtZDVzdW0gKDEpCisuU0ggQVZBSUxBQklMSVRZCitUaGUgbWNvb2tpZSBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbWNvb2tpZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9tY29va2llLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNiOGRjMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbWNvb2tpZS5jCkBAIC0wLDAgKzEsMTQ3IEBACisvKiBtY29va2llLmMgLS0gR2VuZXJhdGVzIHJhbmRvbSBudW1iZXJzIGZvciB4YXV0aAorICogQ3JlYXRlZDogRnJpIEZlYiAgMyAxMDo0Mjo0OCAxOTk1IGJ5IGZhaXRoQGNzLnVuYy5lZHUKKyAqIFJldmlzZWQ6IEZyaSBNYXIgMTkgMDc6NDg6MDEgMTk5OSBieSBmYWl0aEBhY20ub3JnCisgKiBQdWJsaWMgRG9tYWluIDE5OTUsIDE5OTkgUmlja2FyZCBFLiBGYWl0aCAoZmFpdGhAYWNtLm9yZykKKyAqIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuCisgKiAKKyAqIFRoaXMgcHJvZ3JhbSBnYXRoZXJzIHNvbWUgcmFuZG9tIGJpdHMgb2YgZGF0YSBhbmQgdXNlZCB0aGUgTUQ1CisgKiBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0gdG8gZ2VuZXJhdGUgYSAxMjgtYml0IGhleGFkZWNpbWFsIG51bWJlciBmb3IKKyAqIHVzZSB3aXRoIHhhdXRoKDEpLgorICoKKyAqIE5PVEU6IFVubGVzcyAvZGV2L3JhbmRvbSBpcyBhdmFpbGFibGUsIHRoaXMgcHJvZ3JhbSBkb2VzIG5vdCBhY3R1YWxseQorICogZ2F0aGVyIDEyOCBiaXRzIG9mIHJhbmRvbSBpbmZvcm1hdGlvbiwgc28gdGhlIG1hZ2ljIGNvb2tpZSBnZW5lcmF0ZWQKKyAqIHdpbGwgYmUgY29uc2lkZXJhYmx5IGVhc2llciB0byBndWVzcyB0aGFuIG9uZSBtaWdodCBleHBlY3QuCisgKgorICogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgKiAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisgKiAxOTk5LTAzLTIxIGFlYjogQWRkZWQgc29tZSBmcmFnbWVudHMgb2YgY29kZSBmcm9tIENvbGluIFBsdW1iLgorICoKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgIm1kNS5oIgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSAibmxzLmgiCisKKyNkZWZpbmUgQlVGRkVSU0laRSA0MDk2CisKK3N0cnVjdCBybmdzIHsKKyAgIGNvbnN0IGNoYXIgKnBhdGg7CisgICBpbnQgbWlubGVuZ3RoLCBtYXhsZW5ndGg7Cit9IHJuZ3NbXSA9IHsKKyAgIHsgIi9kZXYvcmFuZG9tIiwgICAgICAgICAgICAgIDE2LCAgMTYgfSwgLyogMTYgYnl0ZXMgPSAxMjggYml0cyBzdWZmaWNlICovCisgICB7ICIvcHJvYy9pbnRlcnJ1cHRzIiwgICAgICAgICAgMCwgICAwIH0sCisgICB7ICIvcHJvYy9zbGFiaW5mbyIsICAgICAgICAgICAgMCwgICAwIH0sCisgICB7ICIvcHJvYy9zdGF0IiwgICAgICAgICAgICAgICAgMCwgICAwIH0sCisgICB7ICIvZGV2L3VyYW5kb20iLCAgICAgICAgICAgICAzMiwgIDY0IH0sCit9OworI2RlZmluZSBSTkdTIChzaXplb2Yocm5ncykvc2l6ZW9mKHN0cnVjdCBybmdzKSkKKworaW50IFZlcmJvc2UgPSAwOworCisvKiBUaGUgYmFzaWMgZnVuY3Rpb24gdG8gaGFzaCBhIGZpbGUgKi8KK3N0YXRpYyBvZmZfdAoraGFzaF9maWxlKHN0cnVjdCBNRDVDb250ZXh0ICpjdHgsIGludCBmZCkKK3sKKyAgIG9mZl90IGNvdW50ID0gMDsKKyAgIHNzaXplX3QgcjsKKyAgIHVuc2lnbmVkIGNoYXIgYnVmW0JVRkZFUlNJWkVdOworCisgICB3aGlsZSAoKHIgPSByZWFkKGZkLCBidWYsIHNpemVvZihidWYpKSkgPiAwKSB7CisgICAgICBNRDVVcGRhdGUoY3R4LCBidWYsIHIpOworICAgICAgY291bnQgKz0gcjsKKyAgIH0KKyAgIC8qIFNlcGFyYXRlIGZpbGVzIHdpdGggYSBudWxsIGJ5dGUgKi8KKyAgIGJ1ZlswXSA9IDA7CisgICBNRDVVcGRhdGUoY3R4LCBidWYsIDEpOworICAgcmV0dXJuIGNvdW50OworfQorCitpbnQgbWFpbiggaW50IGFyZ2MsIGNoYXIgKiphcmd2ICkKK3sKKyAgIGludCAgICAgICAgICAgICAgIGk7CisgICBzdHJ1Y3QgTUQ1Q29udGV4dCBjdHg7CisgICB1bnNpZ25lZCBjaGFyICAgICBkaWdlc3RbMTZdOworICAgdW5zaWduZWQgY2hhciAgICAgYnVmW0JVRkZFUlNJWkVdOworICAgaW50ICAgICAgICAgICAgICAgZmQ7CisgICBpbnQgICAgICAgICAgICAgICBjOworICAgcGlkX3QgICAgICAgICAgICAgcGlkOworICAgY2hhciAgICAgICAgICAgICAgKmZpbGUgPSBOVUxMOworICAgaW50ICAgICAgICAgICAgICAgcjsKKyAgIHN0cnVjdCB0aW1ldmFsICAgIHR2OworICAgc3RydWN0IHRpbWV6b25lICAgdHo7CisKKyAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyAgIGJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisgICB0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisgICB3aGlsZSAoKGMgPSBnZXRvcHQoIGFyZ2MsIGFyZ3YsICJ2ZjoiICkpICE9IC0xKQorICAgICAgc3dpdGNoIChjKSB7CisgICAgICBjYXNlICd2JzogKytWZXJib3NlOyAgICAgYnJlYWs7CisgICAgICBjYXNlICdmJzogZmlsZSA9IG9wdGFyZzsgYnJlYWs7CisgICAgICB9CisKKyAgIE1ENUluaXQoICZjdHggKTsKKyAgIGdldHRpbWVvZmRheSggJnR2LCAmdHogKTsKKyAgIE1ENVVwZGF0ZSggJmN0eCwgKHVuc2lnbmVkIGNoYXIgKikmdHYsIHNpemVvZiggdHYgKSApOworCisgICBwaWQgPSBnZXRwcGlkKCk7CisgICBNRDVVcGRhdGUoICZjdHgsICh1bnNpZ25lZCBjaGFyICopJnBpZCwgc2l6ZW9mKCBwaWQgKSk7CisgICBwaWQgPSBnZXRwaWQoKTsKKyAgIE1ENVVwZGF0ZSggJmN0eCwgKHVuc2lnbmVkIGNoYXIgKikmcGlkLCBzaXplb2YoIHBpZCApKTsKKworICAgaWYgKGZpbGUpIHsKKyAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAKKyAgICAgIGlmIChmaWxlWzBdID09ICctJyAmJiAhZmlsZVsxXSkKKwkgZmQgPSBmaWxlbm8oc3RkaW4pOworICAgICAgZWxzZQorCSBmZCA9IG9wZW4oIGZpbGUsIE9fUkRPTkxZICk7CisKKyAgICAgIGlmIChmZCA8IDApIHsKKwkgZnByaW50Ziggc3RkZXJyLCBfKCJDb3VsZCBub3Qgb3BlbiAlc1xuIiksIGZpbGUgKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICBjb3VudCA9IGhhc2hfZmlsZSggJmN0eCwgZmQgKTsKKwkgaWYgKFZlcmJvc2UpCisJICAgIGZwcmludGYoIHN0ZGVyciwgXygiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIpLCBjb3VudCwgZmlsZSApOworCisJIGlmIChmaWxlWzBdICE9ICctJyB8fCBmaWxlWzFdKSBjbG9zZSggZmQgKTsKKyAgICAgIH0KKyAgIH0KKworICAgZm9yIChpID0gMDsgaSA8IFJOR1M7IGkrKykgeworICAgICAgaWYgKChmZCA9IG9wZW4oIHJuZ3NbaV0ucGF0aCwgT19SRE9OTFl8T19OT05CTE9DSyApKSA+PSAwKSB7CisJIGludCBjb3VudCA9IHNpemVvZihidWYpOworCisJIGlmIChybmdzW2ldLm1heGxlbmd0aCAmJiBjb3VudCA+IHJuZ3NbaV0ubWF4bGVuZ3RoKQorCSAgICBjb3VudCA9IHJuZ3NbaV0ubWF4bGVuZ3RoOworCSByID0gcmVhZCggZmQsIGJ1ZiwgY291bnQgKTsKKwkgaWYgKHIgPiAwKQorCSAgICBNRDVVcGRhdGUoICZjdHgsIGJ1ZiwgciApOworCSBlbHNlCisJICAgIHIgPSAwOworCSBjbG9zZSggZmQgKTsKKwkgaWYgKFZlcmJvc2UpCisJICAgIGZwcmludGYoIHN0ZGVyciwgXygiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIpLCByLCBybmdzW2ldLnBhdGggKTsKKwkgaWYgKHJuZ3NbaV0ubWlubGVuZ3RoICYmIHIgPj0gcm5nc1tpXS5taW5sZW5ndGgpCisJICAgIGJyZWFrOworICAgICAgfSBlbHNlIGlmIChWZXJib3NlKQorCSBmcHJpbnRmKCBzdGRlcnIsIF8oIkNvdWxkIG5vdCBvcGVuICVzXG4iKSwgcm5nc1tpXS5wYXRoICk7CisgICB9CisKKyAgIE1ENUZpbmFsKCBkaWdlc3QsICZjdHggKTsKKyAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSBwcmludGYoICIlMDJ4IiwgZGlnZXN0W2ldICk7CisgICBwdXRjaGFyICggJ1xuJyApOworICAgCisgICAvKgorICAgICogVGhlIGZvbGxvd2luZyBpcyBpbXBvcnRhbnQgZm9yIGNhc2VzIGxpa2UgZGlzayBmdWxsLCBzbyBzaGVsbCBzY3JpcHRzCisgICAgKiBjYW4gYm9tYiBvdXQgcHJvcGVybHkgcmF0aGVyIHRoYW4gdGhpbmsgdGhleSBzdWNjZWVkZWQuCisgICAgKi8KKyAgIGlmIChmZmx1c2goc3Rkb3V0KSA8IDAgfHwgZmNsb3NlKHN0ZG91dCkgPCAwKQorICAgICAgcmV0dXJuIDE7CisKKyAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9uYW1laS4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9uYW1laS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1NGZhOGEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL25hbWVpLjEKQEAgLTAsMCArMSw3MCBAQAorLlwiCisuXCIgVmVyc2lvbiAxLjQgb2YgbmFtZWkKKy5cIgorLlRIIE5BTUVJIDEgIkxvY2FsIgorLlNIIE5BTUUKK25hbWVpIC0gZm9sbG93IGEgcGF0aG5hbWUgdW50aWwgYSB0ZXJtaW5hbCBwb2ludCBpcyBmb3VuZAorLlNIIFNZTk9QU0lTCisuQiBuYW1laQorLlJJIFsgb3B0aW9ucyBdCisuSVIgIHBhdGhuYW1lIC4uLgorLlNIIERFU0NSSVBUSU9OCisuQiBOYW1laQordXNlcyBpdHMgYXJndW1lbnRzIGFzIHBhdGhuYW1lcyB0byBhbnkgdHlwZQorb2YgVW5peCBmaWxlIChzeW1saW5rcywgZmlsZXMsIGRpcmVjdG9yaWVzLCBhbmQgc28gZm9ydGgpLgorLkIgTmFtZWkKK3RoZW4gZm9sbG93cyBlYWNoIHBhdGhuYW1lIHVudGlsIGEgdGVybWluYWwKK3BvaW50IGlzIGZvdW5kIChhIGZpbGUsIGRpcmVjdG9yeSwgY2hhciBkZXZpY2UsIGV0YykuCitJZiBpdCBmaW5kcyBhIHN5bWJvbGljIGxpbmssIHdlIHNob3cgdGhlIGxpbmssIGFuZCBzdGFydAorZm9sbG93aW5nIGl0LCBpbmRlbnRpbmcgdGhlIG91dHB1dCB0byBzaG93IHRoZSBjb250ZXh0LgorLlBQCitUaGlzIHByb2dyYW0gaXMgdXNlZnVsIGZvciBmaW5kaW5nIGEgInRvbyBtYW55IGxldmVscyBvZgorc3ltYm9saWMgbGlua3MiIHByb2JsZW1zLgorLlBQCitGb3IgZWFjaCBsaW5lIG91dHB1dCwKKy5CIG5hbWVpCitvdXRwdXRzIGEgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHRvIGlkZW50aWZ5IHRoZSBmaWxlIHR5cGVzIGZvdW5kOgorLkxQCisubmYKKyAgIGY6ID0gdGhlIHBhdGhuYW1lIHdlIGFyZSBjdXJyZW50bHkgdHJ5aW5nIHRvIHJlc29sdmUKKyAgICBkID0gZGlyZWN0b3J5CisgICAgbCA9IHN5bWJvbGljIGxpbmsgKGJvdGggdGhlIGxpbmsgYW5kIGl0J3MgY29udGVudHMgYXJlIG91dHB1dCkKKyAgICBzID0gc29ja2V0CisgICAgYiA9IGJsb2NrIGRldmljZQorICAgIGMgPSBjaGFyYWN0ZXIgZGV2aWNlCisgICAgcCA9IEZJRk8gKG5hbWVkIHBpcGUpCisgICAgLSA9IHJlZ3VsYXIgZmlsZQorICAgID8gPSBhbiBlcnJvciBvZiBzb21lIGtpbmQKKy5maQorLlBQCisuQiBOYW1laQorcHJpbnRzIGFuIGluZm9ybWF0aXZlIG1lc3NhZ2Ugd2hlbgordGhlIG1heGltdW0gbnVtYmVyIG9mIHN5bWJvbGljIGxpbmtzIHRoaXMgc3lzdGVtIGNhbiBoYXZlIGhhcyBiZWVuIGV4Y2VlZGVkLgorLlNIIE9QVElPTlMKKy5JUCAiXGZCXC1sLCBcLVwtbG9uZ1xmUCIKK1VzZSBhIGxvbmcgbGlzdGluZyBmb3JtYXQgKHNhbWUgYXMgLW0gLW8gLXYpLgorLklQICJcZkJcLW0sIFwtXC1tb2Rlc1xmUCIKK1Nob3cgdGhlIG1vZGUgYml0cyBvZiBlYWNoIGZpbGUgdHlwZSBpbiB0aGUgc3R5bGUgb2YgbHMoMSksCitmb3IgZXhhbXBsZSAncnd4ci14ci14Jy4KKy5JUCAiXGZCXC1vLCBcLVwtb3duZXJzXGZQIgorU2hvdyBvd25lciBhbmQgZ3JvdXAgbmFtZSBvZiBlYWNoIGZpbGUuCisuSVAgIlxmQlwtbiwgXC1cLW5vc3ltbGlua3NcZlAiCitEb24ndCBmb2xsb3cgc3ltbGlua3MuCisuSVAgIlxmQlwtdiwgXC1cLXZlcnRpY2FsXGZQIgorVmVydGljYWwgYWxpZ24gb2YgbW9kZXMgYW5kIG93bmVycy4KKy5JUCAiXGZCXC14LCBcLVwtbW91bnRwb2ludHNcZlAiCitTaG93IG1vdW50IHBvaW50IGRpcmVjdG9yaWVzIHdpdGggYSAnRCcsIHJhdGhlciB0aGFuIGEgJ2QnLgorLlNIIEFVVEhPUgorVGhlIG9yaWdpbmFsCisuQiBuYW1laQorcHJvZ3JhbSB3YXMgd3JpdHRlbiBieSBSb2dlciBTb3V0aHdpY2sgPHJvZ2Vyc0BhbWFkZXVzLndyLnRlay5jb20+LgorCitUaGUgcHJvZ3JhbSB3YXMgcmUtd3JpdHRlbiBieSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4uCisuU0ggQlVHUworVG8gYmUgZGlzY292ZXJlZC4KKy5TSCAiU0VFIEFMU08iCisuQlIgbHMgKDEpLAorLkJSIHN0YXQgKDEpCisuU0ggQVZBSUxBQklMSVRZCitUaGUgbmFtZWkgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL25hbWVpLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL25hbWVpLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M0NjVlNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvbmFtZWkuYwpAQCAtMCwwICsxLDU0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorICoKKyAqIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBUaGUgb3JpZ2luYWwgbmFtZWkoMSkgd2FzIHdyaXR0ZW50IGJ5OgorICoJUm9nZXIgUy4gU291dGh3aWNrIChNYXkgMiwgMTk5MCkKKyAqCVN0ZXZlIFRlbGwgKE1hcmNoIDI4LCAxOTkxKQorICoJQXJrYWRpdXN6IE1pa2lld2ljeiAoMTk5OS0wMi0yMikKKyAqCUxpIFplZmFuICgyMDA3LTA5LTEwKS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RyaW5ncy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxlcnIuaD4KKyNpbmNsdWRlIDxwd2QuaD4KKyNpbmNsdWRlIDxncnAuaD4KKworI2luY2x1ZGUgImMuaCIKKyNpbmNsdWRlICJubHMuaCIKKyNpbmNsdWRlICJ3aWRlY2hhci5oIgorCisjaWZuZGVmIE1BWFNZTUxJTktTCisjZGVmaW5lIE1BWFNZTUxJTktTIDI1NgorI2VuZGlmCisKKyNpZm5kZWYgTE9HSU5fTkFNRV9NQVgKKyNkZWZpbmUgTE9HSU5fTkFNRV9NQVggMjU2CisjZW5kaWYKKworI2RlZmluZSBOQU1FSV9OT0xJTktTCSgxIDw8IDEpCisjZGVmaW5lIE5BTUVJX01PREVTCSgxIDw8IDIpCisjZGVmaW5lIE5BTUVJX01OVFMJKDEgPDwgMykKKyNkZWZpbmUgTkFNRUlfT1dORVJTCSgxIDw8IDQpCisjZGVmaW5lIE5BTUVJX1ZFUlRJQ0FMCSgxIDw8IDUpCisKKworc3RydWN0IG5hbWVpIHsKKwlzdHJ1Y3Qgc3RhdAlzdDsJCS8qIGl0ZW0gbHN0YXQoKSAqLworCWNoYXIJCSpuYW1lOwkJLyogaXRlbSBuYW1lICovCisJY2hhcgkJKmFic2xpbms7CS8qIGFic29sdXRlIHN5bWxpbmsgcGF0aCAqLworCWludAkJcmVsc3RhcnQ7CS8qIG9mZnNldCBvZiByZWxhdGl2ZSBwYXRoIGluICdhYnNsaW5rJyAqLworCXN0cnVjdCBuYW1laQkqbmV4dDsJCS8qIG5leHQgaXRlbSAqLworCWludAkJbGV2ZWw7CisJaW50CQltb3VudHBvaW50OwkvKiBpcyBtb3VudCBwb2ludCAqLworfTsKKworc3RydWN0IGlkY2FjaGUgeworCXVuc2lnbmVkIGxvbmcgaW50CWlkOworCWNoYXIJCQkqbmFtZTsKKwlzdHJ1Y3QgaWRjYWNoZQkJKm5leHQ7Cit9OworCitzdGF0aWMgaW50IGZsYWdzOworc3RhdGljIGludCB1d2lkdGg7CQkvKiBtYXhpbWFsIHdpZHRoIG9mIHVzZXJuYW1lICovCitzdGF0aWMgaW50IGd3aWR0aDsJCS8qIG1heGltYWwgd2lkdGggb2YgZ3JvdXBuYW1lICovCitzdGF0aWMgc3RydWN0IGlkY2FjaGUgKmdjYWNoZTsJLyogZ3JvdXBuYW1lcyAqLworc3RhdGljIHN0cnVjdCBpZGNhY2hlICp1Y2FjaGU7CS8qIHVzZXJuYW1lcyAqLworCitzdGF0aWMgc3RydWN0IGlkY2FjaGUgKgorZ2V0X2lkKHN0cnVjdCBpZGNhY2hlICppYywgdW5zaWduZWQgbG9uZyBpbnQgaWQpCit7CisJd2hpbGUoaWMpIHsKKwkJaWYgKGljLT5pZCA9PSBpZCkKKwkJCXJldHVybiBpYzsKKwkJaWMgPSBpYy0+bmV4dDsKKwl9CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkCitmcmVlX2lkY2FjaGUoc3RydWN0IGlkY2FjaGUgKmljKQoreworCXdoaWxlKGljKSB7CisJCXN0cnVjdCBpZGNhY2hlICpuZXh0ID0gaWMtPm5leHQ7CisJCWZyZWUoaWMtPm5hbWUpOworCQlmcmVlKGljKTsKKwkJaWMgPSBuZXh0OworCX0KK30KKworc3RhdGljIHZvaWQKK2FkZF9pZChzdHJ1Y3QgaWRjYWNoZSAqKmljLCBjaGFyICpuYW1lLCB1bnNpZ25lZCBsb25nIGludCBpZCwgaW50ICp3aWR0aCkKK3sKKwlzdHJ1Y3QgaWRjYWNoZSAqbmMsICp4OworCWludCB3ID0gMDsKKworCW5jID0gY2FsbG9jKDEsIHNpemVvZigqbmMpKTsKKwlpZiAoIW5jKQorCQlnb3RvIGFsbG9jX2VycjsKKwluYy0+aWQgPSBpZDsKKworCWlmIChuYW1lKSB7CisjaWZkZWYgSEFWRV9XSURFQ0hBUgorCQl3Y2hhcl90IHdjW0xPR0lOX05BTUVfTUFYICsgMV07CisKKwkJaWYgKG1ic3Rvd2NzKHdjLCBuYW1lLCBMT0dJTl9OQU1FX01BWCkgPiAwKSB7CisJCQl3Y1tMT0dJTl9OQU1FX01BWF0gPSAnXDAnOworCQkJdyA9IHdjc3dpZHRoKHdjLCBMT0dJTl9OQU1FX01BWCk7CisJCX0KKwkJZWxzZQorI2VuZGlmCisJCQl3ID0gc3RybGVuKG5hbWUpOworCX0KKwkvKiBub3RlLCB3ZSBpZ25vcmUgbmFtZXMgd2l0aCBub24tcHJpbnRhYmxlIHdpZGVjaGFycyAqLworCWlmICh3ID4gMCkKKwkJbmMtPm5hbWUgPSBzdHJkdXAobmFtZSk7CisJZWxzZSBpZiAoYXNwcmludGYoJm5jLT5uYW1lLCAiJWx1IiwgaWQpID09IC0xKQorCQluYy0+bmFtZSA9IE5VTEw7CisJaWYgKCFuYy0+bmFtZSkKKwkJZ290byBhbGxvY19lcnI7CisKKwlmb3IgKHggPSAqaWM7IHggJiYgeC0+bmV4dDsgeCA9IHgtPm5leHQpOworCisJLyogYWRkICduYycgYXQgZW5kIG9mIHRoZSAnaWMnIGxpc3QgKi8KKwlpZiAoeCkKKwkJeC0+bmV4dCA9IG5jOworCWVsc2UKKwkJKmljID0gbmM7CisJaWYgKHcgPD0gMCkKKwkJdyA9IHN0cmxlbihuYy0+bmFtZSk7CisJKndpZHRoID0gKndpZHRoIDwgdyA/IHcgOiAqd2lkdGg7CisKKwlyZXR1cm47CithbGxvY19lcnI6CisJZXJyKEVYSVRfRkFJTFVSRSwgXygib3V0IG9mIG1lbW9yeT8iKSk7Cit9CisKK3N0YXRpYyB2b2lkCithZGRfdWlkKHVuc2lnbmVkIGxvbmcgaW50IGlkKQoreworCXN0cnVjdCBpZGNhY2hlICppYyA9IGdldF9pZCh1Y2FjaGUsIGlkKTsKKworCWlmICghaWMpIHsKKwkJc3RydWN0IHBhc3N3ZCAqcHcgPSBnZXRwd3VpZCgodWlkX3QpIGlkKTsKKwkJYWRkX2lkKCZ1Y2FjaGUsIHB3ID8gcHctPnB3X25hbWUgOiBOVUxMLCBpZCwgJnV3aWR0aCk7CisJfQorfQorCitzdGF0aWMgdm9pZAorYWRkX2dpZCh1bnNpZ25lZCBsb25nIGludCBpZCkKK3sKKwlzdHJ1Y3QgaWRjYWNoZSAqaWMgPSBnZXRfaWQoZ2NhY2hlLCBpZCk7CisKKwlpZiAoIWljKSB7CisJCXN0cnVjdCBncm91cCAqZ3IgPSBnZXRncmdpZCgoZ2lkX3QpIGlkKTsKKwkJYWRkX2lkKCZnY2FjaGUsIGdyID8gZ3ItPmdyX25hbWUgOiBOVUxMLCBpZCwgJmd3aWR0aCk7CisJfQorfQorCitzdGF0aWMgdm9pZAorZnJlZV9uYW1laShzdHJ1Y3QgbmFtZWkgKm5tKQoreworCXdoaWxlIChubSkgeworCQlzdHJ1Y3QgbmFtZWkgKm5leHQgPSBubS0+bmV4dDsKKwkJZnJlZShubS0+bmFtZSk7CisJCWZyZWUobm0tPmFic2xpbmspOworCQlmcmVlKG5tKTsKKwkJbm0gPSBuZXh0OworCX0KK30KKworc3RhdGljIHZvaWQKK3JlYWRsaW5rX3RvX25hbWVpKHN0cnVjdCBuYW1laSAqbm0sIGNvbnN0IGNoYXIgKnBhdGgpCit7CisJY2hhciBzeW1bUEFUSF9NQVhdOworCXNpemVfdCBzejsKKworCXN6ID0gcmVhZGxpbmsocGF0aCwgc3ltLCBzaXplb2Yoc3ltKSk7CisJaWYgKHN6IDwgMSkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiZmFpbGVkIHRvIHJlYWQgc3ltbGluazogJXMiKSwgcGF0aCk7CisJaWYgKCpzeW0gIT0gJy8nKSB7CisJCWNoYXIgKnAgPSBzdHJyY2hyKHBhdGgsICcvJyk7CisKKwkJbm0tPnJlbHN0YXJ0ID0gcCA/IHAgLSBwYXRoIDogMDsKKwkJaWYgKG5tLT5yZWxzdGFydCkKKwkJCXN6ICs9IG5tLT5yZWxzdGFydCArIDE7CisJfQorCW5tLT5hYnNsaW5rID0gbWFsbG9jKHN6ICsgMSk7CisJaWYgKCFubS0+YWJzbGluaykKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygib3V0IG9mIG1lbW9yeT8iKSk7CisKKwlpZiAoKnN5bSAhPSAnLycgJiYgbm0tPnJlbHN0YXJ0KSB7CisJCS8qIGNyZWF0ZSB0aGUgYWJzb2x1dGUgcGF0aCBmcm9tIHRoZSByZWxhdGl2ZSBzeW1saW5rICovCisJCW1lbWNweShubS0+YWJzbGluaywgcGF0aCwgbm0tPnJlbHN0YXJ0KTsKKwkJKihubS0+YWJzbGluayArIG5tLT5yZWxzdGFydCkgPSAnLyc7CisJCW5tLT5yZWxzdGFydCsrOworCQltZW1jcHkobm0tPmFic2xpbmsgKyBubS0+cmVsc3RhcnQsIHN5bSwgc3ogLSBubS0+cmVsc3RhcnQpOworCX0gZWxzZQorCQltZW1jcHkobm0tPmFic2xpbmssIHN5bSwgc3opOworCW5tLT5hYnNsaW5rW3N6XSA9ICdcMCc7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3RhdCAqCitkb3Rkb3Rfc3RhdChjb25zdCBjaGFyICpkaXJuYW1lLCBzdHJ1Y3Qgc3RhdCAqc3QpCit7CisJY2hhciAqcGF0aDsKKwlzaXplX3QgbGVuOworCisjZGVmaW5lIERPVERPVERJUgkiLy4uIgorCisJaWYgKCFkaXJuYW1lKQorCQlyZXR1cm4gTlVMTDsKKworCWxlbiA9IHN0cmxlbihkaXJuYW1lKTsKKwlwYXRoID0gbWFsbG9jKGxlbiArIHNpemVvZihET1RET1RESVIpKTsKKwlpZiAoIXBhdGgpCisJCWVycihFWElUX0ZBSUxVUkUsIF8oIm91dCBvZiBtZW1vcnk/IikpOworCisJbWVtY3B5KHBhdGgsIGRpcm5hbWUsIGxlbik7CisJbWVtY3B5KHBhdGggKyBsZW4sIERPVERPVERJUiwgc2l6ZW9mKERPVERPVERJUikpOworCisJaWYgKHN0YXQocGF0aCwgc3QpKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJjb3VsZCBub3Qgc3RhdCAnJXMnIiksIHBhdGgpOworCWZyZWUocGF0aCk7CisJcmV0dXJuIHN0OworfQorCitzdGF0aWMgc3RydWN0IG5hbWVpICoKK25ld19uYW1laShzdHJ1Y3QgbmFtZWkgKnBhcmVudCwgY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqZm5hbWUsIGludCBsZXYpCit7CisJc3RydWN0IG5hbWVpICpubTsKKworCWlmICghZm5hbWUpCisJCXJldHVybiBOVUxMOworCW5tID0gY2FsbG9jKDEsIHNpemVvZigqbm0pKTsKKwlpZiAoIW5tKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJvdXQgb2YgbWVtb3J5PyIpKTsKKwlpZiAocGFyZW50KQorCQlwYXJlbnQtPm5leHQgPSBubTsKKworCW5tLT5sZXZlbCA9IGxldjsKKwlubS0+bmFtZSA9IHN0cmR1cChmbmFtZSk7CisJaWYgKCFubS0+bmFtZSkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygib3V0IG9mIG1lbW9yeT8iKSk7CisJaWYgKGxzdGF0KHBhdGgsICZubS0+c3QpID09IC0xKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJjb3VsZCBub3Qgc3RhdCAnJXMnIiksIHBhdGgpOworCisJaWYgKFNfSVNMTksobm0tPnN0LnN0X21vZGUpKQorCQlyZWFkbGlua190b19uYW1laShubSwgcGF0aCk7CisJaWYgKGZsYWdzICYgTkFNRUlfT1dORVJTKSB7CisJCWFkZF91aWQobm0tPnN0LnN0X3VpZCk7CisJCWFkZF9naWQobm0tPnN0LnN0X2dpZCk7CisJfQorCisJaWYgKChmbGFncyAmIE5BTUVJX01OVFMpICYmIFNfSVNESVIobm0tPnN0LnN0X21vZGUpKSB7CisJCXN0cnVjdCBzdGF0IHN0YnVmLCAqc2IgPSBOVUxMOworCisJCWlmIChwYXJlbnQgJiYgU19JU0RJUihwYXJlbnQtPnN0LnN0X21vZGUpKQorCQkJc2IgPSAmcGFyZW50LT5zdDsKKwkJZWxzZSBpZiAoIXBhcmVudCB8fCBTX0lTTE5LKHBhcmVudC0+c3Quc3RfbW9kZSkpCisJCQlzYiA9IGRvdGRvdF9zdGF0KHBhdGgsICZzdGJ1Zik7CisKKwkJaWYgKHNiICYmIChzYi0+c3RfZGV2ICE9IG5tLT5zdC5zdF9kZXYgfHwgICAvKiBkaWZmZXJlbnQgZGV2aWNlICovCisJCSAgICAgICAgICAgc2ItPnN0X2lubyA9PSBubS0+c3Quc3RfaW5vKSkgICAgLyogcm9vdCBkaXJlY3RvcnkgKi8KKwkJCW5tLT5tb3VudHBvaW50ID0gMTsKKwl9CisKKwlyZXR1cm4gbm07Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbmFtZWkgKgorYWRkX25hbWVpKHN0cnVjdCBuYW1laSAqcGFyZW50LCBjb25zdCBjaGFyICpvcmdwYXRoLCBpbnQgc3RhcnQsIHN0cnVjdCBuYW1laSAqKmxhc3QpCit7CisJc3RydWN0IG5hbWVpICpubSA9IE5VTEwsICpmaXJzdCA9IE5VTEw7CisJY2hhciAqZm5hbWUsICplbmQsICpwYXRoOworCWludCBsZXZlbCA9IDA7CisKKwlpZiAoIW9yZ3BhdGgpCisJCXJldHVybiBOVUxMOworCWlmIChwYXJlbnQpIHsKKwkJbm0gPSBwYXJlbnQ7CisJCWxldmVsID0gcGFyZW50LT5sZXZlbCArIDE7CisJfQorCXBhdGggPSBzdHJkdXAob3JncGF0aCk7CisJaWYgKCFwYXRoKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJvdXQgb2YgbWVtb3J5PyIpKTsKKwlmbmFtZSA9IHBhdGggKyBzdGFydDsKKworCS8qIHJvb3QgZGlyZWN0b3J5ICovCisJaWYgKCpmbmFtZSA9PSAnLycpIHsKKwkJd2hpbGUgKCpmbmFtZSA9PSAnLycpCisJCQlmbmFtZSsrOyAvKiBlYXQgZXh0cmEgJy8nICovCisJCWZpcnN0ID0gbm0gPSBuZXdfbmFtZWkobm0sICIvIiwgIi8iLCBsZXZlbCk7CisJfQorCisJZm9yIChlbmQgPSBmbmFtZTsgZm5hbWUgJiYgZW5kOyApIHsKKwkJLyogc2V0IGVuZCBvZiBmaWxlbmFtZSAqLworCQlpZiAoKmZuYW1lKSB7CisJCQllbmQgPSBzdHJjaHIoZm5hbWUsICcvJyk7CisJCQlpZiAoZW5kKQorCQkJCSplbmQgPSAnXDAnOworCisJCQkvKiBjcmVhdGUgYSBuZXcgZW50cnkgKi8KKwkJCW5tID0gbmV3X25hbWVpKG5tLCBwYXRoLCBmbmFtZSwgbGV2ZWwpOworCQl9IGVsc2UKKwkJCWVuZCA9IE5VTEw7CisJCWlmICghZmlyc3QpCisJCQlmaXJzdCA9IG5tOworCQkvKiBzZXQgYmVnaW4gb2YgdGhlIG5leHQgZmlsZW5hbWUgKi8KKwkJaWYgKGVuZCkgeworCQkJKmVuZCsrID0gJy8nOworCQkJd2hpbGUgKCplbmQgPT0gJy8nKQorCQkJCWVuZCsrOyAvKiBlYXQgZXh0cmEgJy8nICovCisJCX0KKwkJZm5hbWUgPSBlbmQ7CisJfQorCisJaWYgKGxhc3QpCisJCSpsYXN0ID0gbm07CisJcmV0dXJuIGZpcnN0OworfQorCisKK3N0YXRpYyBpbnQKK2ZvbGxvd19zeW1saW5rcyhzdHJ1Y3QgbmFtZWkgKm5tKQoreworCWludCBzeW1jb3VudCA9IDA7CisKKwlmb3IgKDsgbm07IG5tID0gbm0tPm5leHQpIHsKKwkJc3RydWN0IG5hbWVpICpuZXh0LCAqbGFzdDsKKworCQlpZiAoIVNfSVNMTksobm0tPnN0LnN0X21vZGUpKQorCQkJY29udGludWU7CisJCWlmICgrK3N5bWNvdW50ID4gTUFYU1lNTElOS1MpIHsKKwkJCS8qIGRyb3AgdGhlIHJlc3Qgb2YgdGhlIGxpc3QgKi8KKwkJCWZyZWVfbmFtZWkobm0tPm5leHQpOworCQkJbm0tPm5leHQgPSBOVUxMOworCQkJcmV0dXJuIC0xOworCQl9CisJCW5leHQgPSBubS0+bmV4dDsKKwkJbm0tPm5leHQgPSBhZGRfbmFtZWkobm0sIG5tLT5hYnNsaW5rLCBubS0+cmVsc3RhcnQsICZsYXN0KTsKKwkJaWYgKGxhc3QpCisJCQlsYXN0LT5uZXh0ID0gbmV4dDsKKwkJZWxzZQorCQkJbm0tPm5leHQgPSBuZXh0OworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK3N0cm1vZGUobW9kZV90IG1vZGUsIGNoYXIgKnN0cikKK3sKKwlpZiAoU19JU0RJUihtb2RlKSkKKwkJc3RyWzBdID0gJ2QnOworCWVsc2UgaWYgKFNfSVNMTksobW9kZSkpCisJCXN0clswXSA9ICdsJzsKKwllbHNlIGlmIChTX0lTQ0hSKG1vZGUpKQorCQlzdHJbMF0gPSAnYyc7CisJZWxzZSBpZiAoU19JU0JMSyhtb2RlKSkKKwkJc3RyWzBdID0gJ2InOworCWVsc2UgaWYgKFNfSVNTT0NLKG1vZGUpKQorCQlzdHJbMF0gPSAncyc7CisJZWxzZSBpZiAoU19JU0ZJRk8obW9kZSkpCisJCXN0clswXSA9ICdwJzsKKwllbHNlIGlmIChTX0lTUkVHKG1vZGUpKQorCQlzdHJbMF0gPSAnLSc7CisKKwlzdHJbMV0gPSBtb2RlICYgU19JUlVTUiA/ICdyJyA6ICctJzsKKwlzdHJbMl0gPSBtb2RlICYgU19JV1VTUiA/ICd3JyA6ICctJzsKKwlzdHJbM10gPSAobW9kZSAmIFNfSVNVSUQKKwkJPyAobW9kZSAmIFNfSVhVU1IgPyAncycgOiAnUycpCisJCTogKG1vZGUgJiBTX0lYVVNSID8gJ3gnIDogJy0nKSk7CisJc3RyWzRdID0gbW9kZSAmIFNfSVJHUlAgPyAncicgOiAnLSc7CisJc3RyWzVdID0gbW9kZSAmIFNfSVdHUlAgPyAndycgOiAnLSc7CisJc3RyWzZdID0gKG1vZGUgJiBTX0lTR0lECisJCT8gKG1vZGUgJiBTX0lYR1JQID8gJ3MnIDogJ1MnKQorCQk6IChtb2RlICYgU19JWEdSUCA/ICd4JyA6ICctJykpOworCXN0cls3XSA9IG1vZGUgJiBTX0lST1RIID8gJ3InIDogJy0nOworCXN0cls4XSA9IG1vZGUgJiBTX0lXT1RIID8gJ3cnIDogJy0nOworCXN0cls5XSA9IChtb2RlICYgU19JU1ZUWAorCQk/IChtb2RlICYgU19JWE9USCA/ICd0JyA6ICdUJykKKwkJOiAobW9kZSAmIFNfSVhPVEggPyAneCcgOiAnLScpKTsKKwlzdHJbMTBdID0gJ1wwJzsKK30KKworc3RhdGljIHZvaWQKK3ByaW50X25hbWVpKHN0cnVjdCBuYW1laSAqbm0sIGNoYXIgKnBhdGgpCit7CisJc3RydWN0IG5hbWVpICpwcmV2ID0gTlVMTDsKKwlpbnQgaTsKKworCWlmIChwYXRoKQorCQlwcmludGYoImY6ICVzXG4iLCBwYXRoKTsKKworCWZvciAoOyBubTsgcHJldiA9IG5tLCBubSA9IG5tLT5uZXh0KSB7CisJCWNoYXIgbWRbMTFdOworCisJCXN0cm1vZGUobm0tPnN0LnN0X21vZGUsIG1kKTsKKworCQlpZiAobm0tPm1vdW50cG9pbnQpCisJCQltZFswXSA9ICdEJzsKKworCQlpZiAoIShmbGFncyAmIE5BTUVJX1ZFUlRJQ0FMKSkgeworCQkJZm9yIChpID0gMDsgaSA8IG5tLT5sZXZlbDsgaSsrKQorCQkJCWZwdXRzKCIgICIsIHN0ZG91dCk7CisJCQlmcHV0YygnICcsIHN0ZG91dCk7CisJCX0KKworCQlpZiAoZmxhZ3MgJiBOQU1FSV9NT0RFUykKKwkJCXByaW50ZigiJXMiLCBtZCk7CisJCWVsc2UKKwkJCXByaW50ZigiJWMiLCBtZFswXSk7CisKKwkJaWYgKGZsYWdzICYgTkFNRUlfT1dORVJTKSB7CisJCQlwcmludGYoIiAlLSpzIiwgdXdpZHRoLAorCQkJCWdldF9pZCh1Y2FjaGUsIG5tLT5zdC5zdF91aWQpLT5uYW1lKTsKKwkJCXByaW50ZigiICUtKnMiLCBnd2lkdGgsCisJCQkJZ2V0X2lkKGdjYWNoZSwgbm0tPnN0LnN0X2dpZCktPm5hbWUpOworCQl9CisKKwkJaWYgKGZsYWdzICYgTkFNRUlfVkVSVElDQUwpCisJCQlmb3IgKGkgPSAwOyBpIDwgbm0tPmxldmVsOyBpKyspCisJCQkJZnB1dHMoIiAgIiwgc3Rkb3V0KTsKKworCQlpZiAoU19JU0xOSyhubS0+c3Quc3RfbW9kZSkpCisJCQlwcmludGYoIiAlcyAtPiAlc1xuIiwgbm0tPm5hbWUsCisJCQkJCW5tLT5hYnNsaW5rICsgbm0tPnJlbHN0YXJ0KTsKKwkJZWxzZQorCQkJcHJpbnRmKCIgJXNcbiIsIG5tLT5uYW1lKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCit1c2FnZShpbnQgcmMpCit7CisJY29uc3QgY2hhciAqcCA9IHByb2dyYW1faW52b2NhdGlvbl9zaG9ydF9uYW1lOworCisJaWYgKCEqcCkKKwkJcCA9ICJuYW1laSI7CisKKwlwcmludGYoXygiXG5Vc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iKSwgcCk7CisJcHJpbnRmKF8oIlxuT3B0aW9uczpcbiIpKTsKKworCXByaW50ZihfKAorCSIgLWgsIC0taGVscCAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorCSIgLXgsIC0tbW91bnRwb2ludHMgICBzaG93IG1vdW50IHBvaW50IGRpcmVjdG9yaWVzIHdpdGggYSAnRCdcbiIKKwkiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorCSIgLW8sIC0tb3duZXJzICAgICAgICBzaG93IG93bmVyIGFuZCBncm91cCBuYW1lIG9mIGVhY2ggZmlsZVxuIgorCSIgLWwsIC0tbG9uZyAgICAgICAgICB1c2UgYSBsb25nIGxpc3RpbmcgZm9ybWF0ICgtbSAtbyAtdikgXG4iCisJIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorCSIgLXYsIC0tdmVydGljYWwgICAgICB2ZXJ0aWNhbCBhbGlnbiBvZiBtb2RlcyBhbmQgb3duZXJzXG4iKSk7CisKKwlwcmludGYoXygiXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgbmFtZWkoMSkuXG4iKSk7CisJZXhpdChyYyk7Cit9CisKK3N0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9Cit7CisJeyAiaGVscCIsCTAsIDAsICdoJyB9LAorCXsgIm1vdW50cG9pbnRzIiwwLCAwLCAneCcgfSwKKwl7ICJtb2RlcyIsCTAsIDAsICdtJyB9LAorCXsgIm93bmVycyIsCTAsIDAsICdvJyB9LAorCXsgImxvbmciLCAgICAgICAwLCAwLCAnbCcgfSwKKwl7ICJub2xpbmtzIiwJMCwgMCwgJ24nIH0sCisJeyAidmVydGljYWwiLCAgIDAsIDAsICd2JyB9LAorCXsgTlVMTCwJCTAsIDAsIDAgfSwKK307CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJZXh0ZXJuIGludCBvcHRpbmQ7CisJaW50IGM7CisKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisJaWYgKGFyZ2MgPCAyKQorCQl1c2FnZShFWElUX0ZBSUxVUkUpOworCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIitoP2xtbm92eCIsIGxvbmdvcHRzLCBOVUxMKSkgIT0gLTEpIHsKKwkJc3dpdGNoKGMpIHsKKwkJY2FzZSAnaCc6CisJCWNhc2UgJz8nOgorCQkJdXNhZ2UoRVhJVF9TVUNDRVNTKTsKKwkJCWJyZWFrOworCQljYXNlICdsJzoKKwkJCWZsYWdzIHw9IChOQU1FSV9PV05FUlMgfCBOQU1FSV9NT0RFUyB8IE5BTUVJX1ZFUlRJQ0FMKTsKKwkJCWJyZWFrOworCQljYXNlICdtJzoKKwkJCWZsYWdzIHw9IE5BTUVJX01PREVTOworCQkJYnJlYWs7CisJCWNhc2UgJ24nOgorCQkJZmxhZ3MgfD0gTkFNRUlfTk9MSU5LUzsKKwkJCWJyZWFrOworCQljYXNlICdvJzoKKwkJCWZsYWdzIHw9IE5BTUVJX09XTkVSUzsKKwkJCWJyZWFrOworCQljYXNlICd4JzoKKwkJCWZsYWdzIHw9IE5BTUVJX01OVFM7CisJCQlicmVhazsKKwkJY2FzZSAndic6CisJCQlmbGFncyB8PSBOQU1FSV9WRVJUSUNBTDsKKwkJfQorCX0KKworCWZvcig7IG9wdGluZCA8IGFyZ2M7IG9wdGluZCsrKSB7CisJCWNoYXIgKnBhdGggPSBhcmd2W29wdGluZF07CisJCXN0cnVjdCBuYW1laSAqbm0gPSBOVUxMOworCQlzdHJ1Y3Qgc3RhdCBzdDsKKworCQlpZiAoc3RhdChwYXRoLCAmc3QpICE9IDApCisJCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJmYWlsZWQgdG8gc3RhdDogJXMiKSwgcGF0aCk7CisKKwkJbm0gPSBhZGRfbmFtZWkoTlVMTCwgcGF0aCwgMCwgTlVMTCk7CisJCWlmIChubSkgeworCQkJaW50IHNtbCA9IDA7CisJCQlpZiAoIShmbGFncyAmIE5BTUVJX05PTElOS1MpKQorCQkJCXNtbCA9IGZvbGxvd19zeW1saW5rcyhubSk7CisJCQlwcmludF9uYW1laShubSwgcGF0aCk7CisJCQlmcmVlX25hbWVpKG5tKTsKKwkJCWlmIChzbWwgPT0gLTEpCisJCQkJZXJyeChFWElUX0ZBSUxVUkUsCisJCQkJCV8oIiVzOiBleGNlZWRlZCBsaW1pdCBvZiBzeW1saW5rcyIpLAorCQkJCQlwYXRoKTsKKwkJfQorCX0KKworCWZyZWVfaWRjYWNoZSh1Y2FjaGUpOworCWZyZWVfaWRjYWNoZShnY2FjaGUpOworCisJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9wcm9jcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9wcm9jcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmNTIzODcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3Byb2NzLmMKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiAgcHJvY3MuYyAtLSBmdW5jdGlvbnMgdG8gcGFyc2UgdGhlIGxpbnV4IC9wcm9jIGZpbGVzeXN0ZW0uCisgKiAgKGMpIDE5OTQgc2FsdmF0b3JlIHZhbGVudGUgPHN2YWxlbnRlQG1pdC5lZHU+CisgKgorICogICB0aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZS4gIHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZAorICogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBnbnUgZ2VuZXJhbCBwdWJsaWMgbGljZW5zZS4KKyAqICAgdGhlcmUgaXMgbm8gd2FycmFudHkuCisgKgorICogICBmYWl0aAorICogICAxLjIKKyAqICAgMTk5NS8wMi8yMyAwMToyMDo0MAorICoKKyAqLworCisjZGVmaW5lIF9QT1NJWF9TT1VSQ0UgMQorCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGRpcmVudC5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSAia2lsbC5oIgorCitleHRlcm4gY2hhciAqbXliYXNlbmFtZSAoY2hhciAqKTsKK3N0YXRpYyBjaGFyICpwYXJzZV9wYXJlbnMgKGNoYXIgKmJ1Zik7CisKK2ludCAqCitnZXRfcGlkcyAoY2hhciAqcHJvY2Vzc19uYW1lLCBpbnQgZ2V0X2FsbCkgeworICAgIERJUiAqZGlyOworICAgIHN0cnVjdCBkaXJlbnQgKmVudDsKKyAgICBpbnQgc3RhdHVzOworICAgIGNoYXIgKmRuYW1lLCBmbmFtZVsxMDBdLCAqY3AsIGJ1ZlsyNTZdOworICAgIHN0cnVjdCBzdGF0IHN0OworICAgIHVpZF90IHVpZDsKKyAgICBGSUxFICpmcDsKKyAgICBpbnQgcGlkLCAqcGlkcywgbnVtX3BpZHMsIHBpZHNfc2l6ZTsKKworICAgIGRpciA9IG9wZW5kaXIgKCIvcHJvYyIpOworICAgIGlmICghIGRpcikgeworCXBlcnJvciAoIm9wZW5kaXIgL3Byb2MiKTsKKwlyZXR1cm4gTlVMTDsKKyAgICB9CisgICAgdWlkID0gZ2V0dWlkICgpOworICAgIHBpZHMgPSBOVUxMOworICAgIG51bV9waWRzID0gcGlkc19zaXplID0gMDsKKworICAgIHdoaWxlICgoZW50ID0gcmVhZGRpciAoZGlyKSkgIT0gTlVMTCkgeworCWRuYW1lID0gZW50LT5kX25hbWU7CisJaWYgKCEgaXNkaWdpdCAoKmRuYW1lKSkgY29udGludWU7CisJcGlkID0gYXRvaSAoZG5hbWUpOworCXNwcmludGYgKGZuYW1lLCAiL3Byb2MvJWQvY21kbGluZSIsIHBpZCk7CisJLyogZ2V0IHRoZSBwcm9jZXNzIG93bmVyICovCisJc3RhdHVzID0gc3RhdCAoZm5hbWUsICZzdCk7CisJaWYgKHN0YXR1cyAhPSAwKSBjb250aW51ZTsKKwlpZiAoISBnZXRfYWxsICYmIHVpZCAhPSBzdC5zdF91aWQpIGNvbnRpbnVlOworCS8qIGdldCB0aGUgY29tbWFuZCBsaW5lICovCisJZnAgPSBmb3BlbiAoZm5hbWUsICJyIik7CisJaWYgKCEgZnApIGNvbnRpbnVlOworCWNwID0gZmdldHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBmcCk7CisJZmNsb3NlIChmcCk7CisJLyogYW4gZW1wdHkgY29tbWFuZCBsaW5lIG1lYW5zIHRoZSBwcm9jZXNzIGlzIHN3YXBwZWQgb3V0ICovCisJaWYgKCEgY3AgfHwgISAqY3ApIHsKKwkgICAgLyogZ2V0IHRoZSBwcm9jZXNzIG5hbWUgZnJvbSB0aGUgc3RhdGZpbGUgKi8KKwkgICAgc3ByaW50ZiAoZm5hbWUsICIvcHJvYy8lZC9zdGF0IiwgcGlkKTsKKwkgICAgZnAgPSBmb3BlbiAoZm5hbWUsICJyIik7CisJICAgIGlmICghIGZwKSBjb250aW51ZTsKKwkgICAgY3AgPSBmZ2V0cyAoYnVmLCBzaXplb2YgKGJ1ZiksIGZwKTsKKwkgICAgaWYgKGNwID09IE5VTEwpIGNvbnRpbnVlOworCSAgICBmY2xvc2UgKGZwKTsKKwkgICAgY3AgPSBwYXJzZV9wYXJlbnMgKGJ1Zik7CisJICAgIGlmIChjcCA9PSBOVUxMKSBjb250aW51ZTsKKwl9CisJLyogb2ssIHdlIGdvdCB0aGUgcHJvY2VzcyBuYW1lLiAqLworCWlmIChzdHJjbXAgKHByb2Nlc3NfbmFtZSwgbXliYXNlbmFtZSAoY3ApKSkgY29udGludWU7CisJd2hpbGUgKHBpZHNfc2l6ZSA8IG51bV9waWRzICsgMikgeworCSAgICBwaWRzX3NpemUgKz0gNTsKKwkgICAgcGlkcyA9IChpbnQgKikgcmVhbGxvYyAocGlkcywgc2l6ZW9mIChpbnQpICogcGlkc19zaXplKTsKKwl9CisJcGlkc1tudW1fcGlkcysrXSA9IHBpZDsKKwlwaWRzW251bV9waWRzXSA9IC0xOworICAgIH0KKyAgICBjbG9zZWRpciAoZGlyKTsKKyAgICByZXR1cm4gKHBpZHMpOworfQorCisvKgorICogIHBhcnNlX3BhcmVucyAoKSAtLSByZXR1cm4gYW4gaW5kZXgganVzdCBwYXN0IHRoZSBmaXJzdCBvcGVuIHBhcmVuIGluCisgKglidWYsIGFuZCB0ZXJtaW5hdGUgdGhlIHN0cmluZyBhdCB0aGUgbWF0Y2hpbmcgY2xvc2UgcGFyZW4uCisgKi8KK3N0YXRpYyBjaGFyICpwYXJzZV9wYXJlbnMgKGNoYXIgKmJ1ZikKK3sKKyAgICBjaGFyICpjcCwgKmlwOworICAgIGludCBkZXB0aDsKKworICAgIGNwID0gc3RyY2hyIChidWYsICcoJyk7CisgICAgaWYgKGNwID09IE5VTEwpIHJldHVybiBOVUxMOworICAgIGNwKys7CisgICAgZGVwdGggPSAxOworICAgIGZvciAoaXAgPSBjcDsgKmlwOyBpcCsrKSB7CisJaWYgKCppcCA9PSAnKCcpCisJICAgIGRlcHRoKys7CisJaWYgKCppcCA9PSAnKScpIHsKKwkgICAgZGVwdGgtLTsKKwkgICAgaWYgKGRlcHRoID09IDApIHsKKwkJKmlwID0gMDsKKwkJYnJlYWs7CisJICAgIH0KKwl9CisgICAgfQorICAgIHJldHVybiBjcDsKK30KKworY2hhciAqbXliYXNlbmFtZSAoY2hhciAqcGF0aCkKK3sKKyAgICBjaGFyICpjcDsKKworICAgIGNwID0gc3RycmNociAocGF0aCwgJy8nKTsKKyAgICByZXR1cm4gKGNwID8gY3AgKyAxIDogcGF0aCk7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvcmVuYW1lLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3JlbmFtZS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NTgzMmYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3JlbmFtZS4xCkBAIC0wLDAgKzEsNTIgQEAKKy5cIiBXcml0dGVuIGJ5IEFuZHJpZXMgRS4gQnJvdXdlciAoYWViQGN3aS5ubCkKKy5cIiBQbGFjZWQgaW4gdGhlIHB1YmxpYyBkb21haW4KKy5cIgorLlRIIFJFTkFNRSAxICIxIEphbnVhcnkgMjAwMCIgIiIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorcmVuYW1lIFwtIFJlbmFtZSBmaWxlcworLlNIIFNZTk9QU0lTCisuQiByZW5hbWUKKy5JUiAgImZyb20gdG8gZmlsZSIgLi4uCisuYnIKKy5CIHJlbmFtZSAtVgorLlNIIERFU0NSSVBUSU9OCisuQiByZW5hbWUKK3dpbGwgcmVuYW1lIHRoZSBzcGVjaWZpZWQgZmlsZXMgYnkgcmVwbGFjaW5nIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mCisuSSBmcm9tCitpbiB0aGVpciBuYW1lIGJ5CisuSVIgdG8gLgorCisuVFAKKy5CUiBcLVYgLCAiIFwtXC12ZXJzaW9uIgorRGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0LgorLlRQCisKK0ZvciBleGFtcGxlLCBnaXZlbiB0aGUgZmlsZXMKKy5JUiBmb28xICIsIC4uLiwgIiBmb285ICIsICIgZm9vMTAgIiwgLi4uLCAiIGZvbzI3OCAsCit0aGUgY29tbWFuZHMKKworLlJTCisubmYKK3JlbmFtZSBmb28gZm9vMCBmb28/CityZW5hbWUgZm9vIGZvbzAgZm9vPz8KKy5maQorLlJFCisKK3dpbGwgdHVybiB0aGVtIGludG8KKy5JUiBmb28wMDEgIiwgLi4uLCAiIGZvbzAwOSAiLCAiIGZvbzAxMCAiLCAuLi4sICIgZm9vMjc4IC4KKworQW5kCisuUlMKKy5uZgorcmVuYW1lIC5odG0gLmh0bWwgKi5odG0KKy5maQorLlJFCisKK3dpbGwgZml4IHRoZSBleHRlbnNpb24gb2YgeW91ciBodG1sIGZpbGVzLgorCisuU0ggIlNFRSBBTFNPIgorLkJSIG1tdiAoMSksCisuQlIgbXYgKDEpCisuU0ggQVZBSUxBQklMSVRZCitUaGUgcmVuYW1lIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9yZW5hbWUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvcmVuYW1lLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODcyNjJiOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvcmVuYW1lLmMKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIHJlbmFtZS5jIC0gYWViIDIwMDAtMDEtMDEKKyAqCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyEvYmluL3NoCitpZiBbICQjIC1sZSAyIF07IHRoZW4gZWNobyBjYWxsOiByZW5hbWUgZnJvbSB0byBmaWxlczsgZXhpdDsgZmkKK0ZST009IiQxIgorVE89IiQyIgorc2hpZnQKK3NoaWZ0Citmb3IgaSBpbiAkQDsgZG8gTj1gZWNobyAiJGkiIHwgc2VkICJzLyRGUk9NLyRUTy9nImA7IG12ICIkaSIgIiROIjsgZG9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFRoaXMgc2hlbGwgc2NyaXB0IHdpbGwgZG8gcmVuYW1lcyBvZiBmaWxlcywgYnV0IG1heSBmYWlsCisgKiBpbiBjYXNlcyBpbnZvbHZpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzLiBIZXJlIGEgQyB2ZXJzaW9uLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgIm5scy5oIgorCitzdGF0aWMgY2hhciAqcHJvZ25hbWU7CisKK3N0YXRpYyBpbnQKK2RvX3JlbmFtZShjaGFyICpmcm9tLCBjaGFyICp0bywgY2hhciAqcykgeworCWNoYXIgKm5ld25hbWUsICp3aGVyZSwgKnAsICpxOworCWludCBmbGVuLCB0bGVuLCBzbGVuOworCisJd2hlcmUgPSBzdHJzdHIocywgZnJvbSk7CisJaWYgKHdoZXJlID09IE5VTEwpCisJCXJldHVybiAwOworCisJZmxlbiA9IHN0cmxlbihmcm9tKTsKKwl0bGVuID0gc3RybGVuKHRvKTsKKwlzbGVuID0gc3RybGVuKHMpOworCW5ld25hbWUgPSBtYWxsb2ModGxlbitzbGVuKzEpOworCWlmIChuZXduYW1lID09IE5VTEwpIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBvdXQgb2YgbWVtb3J5XG4iKSwgcHJvZ25hbWUpOworCQlleGl0KDEpOworCX0KKworCXAgPSBzOworCXEgPSBuZXduYW1lOworCXdoaWxlIChwIDwgd2hlcmUpCisJCSpxKysgPSAqcCsrOworCXAgPSB0bzsKKwl3aGlsZSAoKnApCisJCSpxKysgPSAqcCsrOworCXAgPSB3aGVyZStmbGVuOworCXdoaWxlICgqcCkKKwkJKnErKyA9ICpwKys7CisJKnEgPSAwOworCisJaWYgKHJlbmFtZShzLCBuZXduYW1lKSAhPSAwKSB7CisJCWludCBlcnJzdiA9IGVycm5vOworCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IHJlbmFtaW5nICVzIHRvICVzIGZhaWxlZDogJXNcbiIpLAorCQkJCSAgcHJvZ25hbWUsIHMsIG5ld25hbWUsIHN0cmVycm9yKGVycnN2KSk7CisJCWV4aXQoMSk7CisJfQorCisJcmV0dXJuIDE7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKwljaGFyICpmcm9tLCAqdG8sICpwOworCWludCBpOworCisJcHJvZ25hbWUgPSBhcmd2WzBdOworCWlmICgocCA9IHN0cnJjaHIocHJvZ25hbWUsICcvJykpICE9IE5VTEwpCisJCXByb2duYW1lID0gcCsxOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWlmIChhcmdjID09IDIpIHsKKwkJaWYgKCFzdHJjbXAoYXJndlsxXSwgIi1WIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiLS12ZXJzaW9uIikpIHsKKwkJCXByaW50ZihfKCIlcyAoJXMpXG4iKSwKKwkJCSAgICAgICBwcm9nbmFtZSwgUEFDS0FHRV9TVFJJTkcpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9CisKKwlpZiAoYXJnYyA8IDMpIHsKKwkJZnByaW50ZihzdGRlcnIsIF8oImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIpLCBwcm9nbmFtZSk7CisJCWV4aXQoMSk7CisJfQorCisJZnJvbSA9IGFyZ3ZbMV07CisJdG8gPSBhcmd2WzJdOworCisJZm9yIChpPTM7IGk8YXJnYzsgaSsrKQorCQlkb19yZW5hbWUoZnJvbSwgdG8sIGFyZ3ZbaV0pOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9yZXNldCBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvcmVzZXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJkMjUzOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvcmVzZXQKQEAgLTAsMCArMSwxMyBAQAorIyEvYmluL3NoCitzdHR5IHNhbmUKK3RwdXQgY2xlYXIKK3RwdXQgcm1hY3MKK3RwdXQgcm1tCit0cHV0IHJtc28KK3RwdXQgcm11bAordHB1dCByczEKK3RwdXQgcnMyCit0cHV0IHJzMworYm90PSRbICR7TElORVM6LWB0cHV0IGxpbmVzYH0gLSAxIF0KK2lmIHRlc3QgIiRib3QiIC1sZSAiMCI7IHRoZW4gYm90PTI0OyBmaQordHB1dCBjc3IgMCAkYm90CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3Jlc2V0LjAzM2MgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3Jlc2V0LjAzM2MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmI5ODM0ZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvcmVzZXQuMDMzYwpAQCAtMCwwICsxLDExIEBACisjIS9iaW4vc2gKK3N0dHkgc2FuZQordHB1dCBjbGVhcgordHB1dCBybWFjcwordHB1dCBybW0KK3RwdXQgcm1zbwordHB1dCBybXVsCit0cHV0IHJzMQordHB1dCByczIKK3RwdXQgcnMzCitlY2hvIC1lIFxcMDMzYwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9yZXNldC4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9yZXNldC4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MTUwYjYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3Jlc2V0LjEKQEAgLTAsMCArMSw0NSBAQAorLlwiIENvcHlyaWdodCAxOTkyIFJpY2thcmQgRS4gRmFpdGggKGZhaXRoQGNzLnVuYy5lZHUpCisuXCIgTWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLlRIIFJFU0VUIDEgIjEwIE9jdG9iZXIgMTk5MyIgIkxpbnV4IDAuOTkiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK3Jlc2V0IFwtIHJlc2V0IHRoZSB0ZXJtaW5hbAorLlNIIFNZTk9QU0lTCisuQlIgcmVzZXQKKy5TSCBERVNDUklQVElPTgorLkIgcmVzZXQKK2NhbGxzCisuQlIgdHB1dCAoMSkKK3dpdGggdGhlCisuSVIgY2xlYXIgLAorLklSIHJtYWNzICwKKy5JUiBybW0gLAorLklSIHJtdWwgLAorLklSIHJzMSAsCisuSVIgcnMyICwKK2FuZAorLkkgcnMzCithcmd1bWVudHMuICBUaGlzIGNhdXNlcworLkIgdHB1dAordG8gc2VuZCBhcHByb3ByaWF0ZSByZXNldCBzdHJpbmdzIHRvIHRoZSB0ZXJtaW5hbCBiYXNlZCBvbiBpbmZvcm1hdGlvbiBpbgorLkkgL2V0Yy90ZXJtY2FwCisoZm9yIHRoZSBHTlUgb3IgQlNECisuQlIgdHB1dCApCitvciBpbiB0aGUgdGVybWluZm8gZGF0YWJhc2UKKyhmb3IgdGhlCisuQiBuY3Vyc2VzCisuQlIgdHB1dCApLgorVGhpcyBzZXF1ZW5jZSBzZWVtcyB0byBiZSBzdWZmaWNpZW50IHRvIHJlc2V0IHRoZSBMaW51eCBWQydzIHdoZW4gdGhleQorc3RhcnQgcHJpbnRpbmcgImZ1bm55LWxvb2tpbmciIGNoYXJhY3RlcnMuICBGb3IgZ29vZCBtZWFzdXJlLAorLkJSIHN0dHkgKDEpCitpcyBjYWxsZWQgd2l0aCB0aGUKKy5JIHNhbmUKK2FyZ3VtZW50IGluIGFuIGF0dGVtcHQgdG8gZ2V0IGNvb2tlZCBtb2RlIGJhY2suCisuU0ggIlNFRSBBTFNPIgorLkJSIGNsZWFyICgxKSwKKy5CUiBzdHR5ICgxKSwKKy5CUiB0cHV0ICgxKQorLlNIIEFVVEhPUgorUmlrIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlNIIEFWQUlMQUJJTElUWQorVGhlIHJlc2V0IGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9zY3JpcHQuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvc2NyaXB0LjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAxN2I2MwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvc2NyaXB0LjEKQEAgLTAsMCArMSwxNDcgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5ODAsIDE5OTAgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgorLlwiIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisuXCIKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisuXCIgICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorLlwiCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKy5cIglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKy5cIiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorLlwiICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKy5cIiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy5cIiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorLlwiIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorLlwiIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisuXCIgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKy5cIiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKy5cIiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLlwiIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKy5cIiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisuXCIgU1VDSCBEQU1BR0UuCisuXCIKKy5cIglAKCMpc2NyaXB0LjEJNi41IChCZXJrZWxleSkgNy8yNy85MQorLlwiCisuRGQgSnVseSAzMCwgMjAwMAorLkR0IFNDUklQVCAxCisuT3MgTGludXgKKy5TaCBOQU1FCisuTm0gc2NyaXB0CisuTmQgbWFrZSB0eXBlc2NyaXB0IG9mIHRlcm1pbmFsIHNlc3Npb24KKy5TaCBTWU5PUFNJUworLk5tIHNjcmlwdAorLk9wIEZsIGEKKy5PcCBGbCBjIEFyIENPTU1BTkQKKy5PcCBGbCBmCisuT3AgRmwgcQorLk9wIEZsIHQKKy5PcCBBciBmaWxlCisuU2ggREVTQ1JJUFRJT04KKy5ObSBTY3JpcHQKK21ha2VzIGEgdHlwZXNjcmlwdCBvZiBldmVyeXRoaW5nIHByaW50ZWQgb24geW91ciB0ZXJtaW5hbC4KK0l0IGlzIHVzZWZ1bCBmb3Igc3R1ZGVudHMgd2hvIG5lZWQgYSBoYXJkY29weSByZWNvcmQgb2YgYW4gaW50ZXJhY3RpdmUKK3Nlc3Npb24gYXMgcHJvb2Ygb2YgYW4gYXNzaWdubWVudCwgYXMgdGhlIHR5cGVzY3JpcHQgZmlsZSAKK2NhbiBiZSBwcmludGVkIG91dCBsYXRlciB3aXRoCisuWHIgbHByIDEgLgorLlBwCitJZiB0aGUgYXJndW1lbnQKKy5BciBmaWxlCitpcyBnaXZlbiwKKy5ObQorc2F2ZXMgYWxsIGRpYWxvZ3VlIGluCisuQXIgZmlsZSAuCitJZiBubyBmaWxlIG5hbWUgaXMgZ2l2ZW4sIHRoZSB0eXBlc2NyaXB0IGlzIHNhdmVkIGluIHRoZSBmaWxlCisuUGEgdHlwZXNjcmlwdCAgLgorLlBwCitPcHRpb25zOgorLkJsIC10YWcgLXdpZHRoIERzCisuSXQgRmwgYQorQXBwZW5kIHRoZSBvdXRwdXQgdG8KKy5BciBmaWxlCitvcgorLlBhIHR5cGVzY3JpcHQgLAorcmV0YWluaW5nIHRoZSBwcmlvciBjb250ZW50cy4KKy5JdCBGbCBjIEFyIENPTU1BTkQKK1J1biB0aGUgQ09NTUFORCByYXRoZXIgdGhhbiBhbiBpbnRlcmFjdGl2ZSBzaGVsbC4KK1RoaXMgbWFrZXMgaXQgZWFzeSBmb3IgYSBzY3JpcHQgdG8gY2FwdHVyZSB0aGUgb3V0cHV0IG9mIGEgcHJvZ3JhbSB0aGF0CitiZWhhdmVzIGRpZmZlcmVudGx5IHdoZW4gaXRzIHN0ZG91dCBpcyBub3QgYSB0dHkuCisuSXQgRmwgZgorRmx1c2ggb3V0cHV0IGFmdGVyIGVhY2ggd3JpdGUuIFRoaXMgaXMgbmljZSBmb3IgdGVsZWNvb3BlcmF0aW9uOgorT25lIHBlcnNvbiBkb2VzIGBta2ZpZm8gZm9vOyBzY3JpcHQgLWYgZm9vJyBhbmQgYW5vdGhlciBjYW4KK3N1cGVydmlzZSByZWFsLXRpbWUgd2hhdCBpcyBiZWluZyBkb25lIHVzaW5nIGBjYXQgZm9vJy4KKy5JdCBGbCBxCitCZSBxdWlldC4KKy5JdCBGbCB0CitPdXRwdXQgdGltaW5nIGRhdGEgdG8gc3RhbmRhcmQgZXJyb3IuIFRoaXMgZGF0YSBjb250YWlucyB0d28gZmllbGRzLAorc2VwYXJhdGVkIGJ5IGEgc3BhY2UuIFRoZSBmaXJzdCBmaWVsZCBpbmRpY2F0ZXMgaG93IG11Y2ggdGltZSBlbGFwc2VkIHNpbmNlCit0aGUgcHJldmlvdXMgb3V0cHV0LiBUaGUgc2Vjb25kIGZpZWxkIGluZGljYXRlcyBob3cgbWFueSBjaGFyYWN0ZXJzIHdlcmUKK291dHB1dCB0aGlzIHRpbWUuIFRoaXMgaW5mb3JtYXRpb24gY2FuIGJlIHVzZWQgdG8gcmVwbGF5IHR5cGVzY3JpcHRzIHdpdGgKK3JlYWxpc3RpYyB0eXBpbmcgYW5kIG91dHB1dCBkZWxheXMuCisuRWwKKy5QcAorVGhlIHNjcmlwdCBlbmRzIHdoZW4gdGhlIGZvcmtlZCBzaGVsbCBleGl0cyAoYQorLkVtIGNvbnRyb2wtRAordG8gZXhpdAordGhlIEJvdXJuZSBzaGVsbAorLlBmICggWHIgc2ggMSApICwKK2FuZAorLkVtIGV4aXQgLCAKKy5FbSBsb2dvdXQKK29yCisuRW0gY29udHJvbC1kCisoaWYKKy5FbSBpZ25vcmVlb2YKK2lzIG5vdCBzZXQpIGZvciB0aGUKK0Mtc2hlbGwsCisuWHIgY3NoIDEgKSAuCisuUHAKK0NlcnRhaW4gaW50ZXJhY3RpdmUgY29tbWFuZHMsIHN1Y2ggYXMKKy5YciB2aSAxICwKK2NyZWF0ZSBnYXJiYWdlIGluIHRoZSB0eXBlc2NyaXB0IGZpbGUuCisuTm0gU2NyaXB0Cit3b3JrcyBiZXN0IHdpdGggY29tbWFuZHMgdGhhdCBkbyBub3QgbWFuaXB1bGF0ZSB0aGUKK3NjcmVlbiwgdGhlIHJlc3VsdHMgYXJlIG1lYW50IHRvIGVtdWxhdGUgYSBoYXJkY29weQordGVybWluYWwuCisuU2ggRU5WSVJPTk1FTlQKK1RoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgdXRpbGl6ZWQgYnkKKy5ObSBzY3JpcHQgOgorLkJsIC10YWcgLXdpZHRoIFNIRUxMCisuSXQgRXYgU0hFTEwKK0lmIHRoZSB2YXJpYWJsZQorLkV2IFNIRUxMCitleGlzdHMsIHRoZSBzaGVsbCBmb3JrZWQgYnkKKy5ObSBzY3JpcHQKK3dpbGwgYmUgdGhhdCBzaGVsbC4gSWYKKy5FdiBTSEVMTAoraXMgbm90IHNldCwgdGhlIEJvdXJuZSBzaGVsbAoraXMgYXNzdW1lZC4gKE1vc3Qgc2hlbGxzIHNldCB0aGlzIHZhcmlhYmxlIGF1dG9tYXRpY2FsbHkpLgorLkVsCisuU2ggU0VFIEFMU08KKy5YciBjc2ggMQorKGZvciB0aGUKKy5FbSBoaXN0b3J5CittZWNoYW5pc20pLAorLlhyIHNjcmlwdHJlcGxheSAxIC4KKy5TaCBISVNUT1JZCitUaGUKKy5ObSBzY3JpcHQKK2NvbW1hbmQgYXBwZWFyZWQgaW4KKy5CeCAzLjAgLgorLlNoIEJVR1MKKy5ObSBTY3JpcHQKK3BsYWNlcworLlN5IGV2ZXJ5dGhpbmcKK2luIHRoZSBsb2cgZmlsZSwgaW5jbHVkaW5nIGxpbmVmZWVkcyBhbmQgYmFja3NwYWNlcy4KK1RoaXMgaXMgbm90IHdoYXQgdGhlIG5haXZlIHVzZXIgZXhwZWN0cy4KKy5TaCBBVkFJTEFCSUxJVFkKK1RoZSBzY3JpcHQgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3NjcmlwdC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9zY3JpcHQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODc3YzMxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9zY3JpcHQuYwpAQCAtMCwwICsxLDUwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk4MCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworLyoKKyAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqIDIwMDAtMDctMzAgUGVyIEFuZHJlYXMgQnVlciA8cGVyQGxpbnByby5ubz4gLSBhZGRlZCAicSItb3B0aW9uCisgKi8KKworLyoKKyAqIHNjcmlwdAorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxwYXRocy5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPHN5cy9maWxlLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgIm5scy5oIgorCisKKyNpZmRlZiBIQVZFX0xJQlVUSUwKKyNpbmNsdWRlIDxwdHkuaD4KKyNlbmRpZgorCit2b2lkIGZpbmlzaChpbnQpOwordm9pZCBkb25lKHZvaWQpOwordm9pZCBmYWlsKHZvaWQpOwordm9pZCByZXNpemUoaW50KTsKK3ZvaWQgZml4dHR5KHZvaWQpOwordm9pZCBnZXRtYXN0ZXIodm9pZCk7Cit2b2lkIGdldHNsYXZlKHZvaWQpOwordm9pZCBkb2lucHV0KHZvaWQpOwordm9pZCBkb291dHB1dCh2b2lkKTsKK3ZvaWQgZG9zaGVsbCh2b2lkKTsKKworY2hhcgkqc2hlbGw7CitGSUxFCSpmc2NyaXB0OworaW50CW1hc3RlcjsKK2ludAlzbGF2ZTsKK2ludAljaGlsZDsKK2ludAlzdWJjaGlsZDsKK2NoYXIJKmZuYW1lOworCitzdHJ1Y3QJdGVybWlvcyB0dDsKK3N0cnVjdAl3aW5zaXplIHdpbjsKK2ludAlsYjsKK2ludAlsOworI2lmbmRlZiBIQVZFX0xJQlVUSUwKK2NoYXIJbGluZVtdID0gIi9kZXYvcHR5WFgiOworI2VuZGlmCitpbnQJYWZsZyA9IDA7CitjaGFyCSpjZmxnID0gTlVMTDsKK2ludAlmZmxnID0gMDsKK2ludAlxZmxnID0gMDsKK2ludAl0ZmxnID0gMDsKKworc3RhdGljIGNoYXIgKnByb2duYW1lOworCitpbnQgZGllOworaW50IHJlc2l6ZWQ7CisKK3N0YXRpYyB2b2lkCitkaWVfaWZfbGluayhjaGFyICpmbikgeworCXN0cnVjdCBzdGF0IHM7CisKKwlpZiAobHN0YXQoZm4sICZzKSA9PSAwICYmIChTX0lTTE5LKHMuc3RfbW9kZSkgfHwgcy5zdF9ubGluayA+IDEpKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkJXygiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisJCQkgICJVc2UgYCVzIFtvcHRpb25zXSAlcycgaWYgeW91IHJlYWxseSAiCisJCQkgICJ3YW50IHRvIHVzZSBpdC5cbiIKKwkJCSAgIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIpLAorCQkJZm4sIHByb2duYW1lLCBmbik7CisJCWV4aXQoMSk7CisJfQorfQorCisvKgorICogc2NyaXB0IC10IHByaW50cyB0aW1lIGRlbGF5cyBhcyBmbG9hdGluZyBwb2ludCBudW1iZXJzCisgKiBUaGUgZXhhbXBsZSBwcm9ncmFtIChzY3JpcHRyZXBsYXkpIHRoYXQgd2UgcHJvdmlkZSB0byBoYW5kbGUgdGhpcworICogdGltaW5nIG91dHB1dCBpcyBhIHBlcmwgc2NyaXB0LCBhbmQgZG9lcyBub3QgaGFuZGxlIG51bWJlcnMgaW4KKyAqIGxvY2FsZSBmb3JtYXQgKG5vdCBldmVuIHdoZW4gInVzZSBsb2NhbGU7IiBpcyBhZGRlZCkuCisgKiBTbywgc2luY2UgdGhlc2UgbnVtYmVycyBhcmUgbm90IGZvciBodW1hbiBjb25zdW1wdGlvbiwgaXQgc2VlbXMKKyAqIGVhc2llc3QgdG8gc2V0IExDX05VTUVSSUMgaGVyZS4KKyAqLworCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisJc3RydWN0IHNpZ2FjdGlvbiBzYTsKKwlleHRlcm4gaW50IG9wdGluZDsKKwljaGFyICpwOworCWludCBjaDsKKworCXByb2duYW1lID0gYXJndlswXTsKKwlpZiAoKHAgPSBzdHJyY2hyKHByb2duYW1lLCAnLycpKSAhPSBOVUxMKQorCQlwcm9nbmFtZSA9IHArMTsKKworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCXNldGxvY2FsZShMQ19OVU1FUklDLCAiQyIpOwkvKiBzZWUgY29tbWVudCBhYm92ZSAqLworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWlmIChhcmdjID09IDIpIHsKKwkJaWYgKCFzdHJjbXAoYXJndlsxXSwgIi1WIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiLS12ZXJzaW9uIikpIHsKKwkJCXByaW50ZihfKCIlcyAoJXMpXG4iKSwKKwkJCSAgICAgICBwcm9nbmFtZSwgUEFDS0FHRV9TVFJJTkcpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9CisKKwl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJhYzpmcXQiKSkgIT0gLTEpCisJCXN3aXRjaCgoY2hhciljaCkgeworCQljYXNlICdhJzoKKwkJCWFmbGcrKzsKKwkJCWJyZWFrOworCQljYXNlICdjJzoKKwkJCWNmbGcgPSBvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAnZic6CisJCQlmZmxnKys7CisJCQlicmVhazsKKwkJY2FzZSAncSc6CisJCQlxZmxnKys7CisJCQlicmVhazsKKwkJY2FzZSAndCc6CisJCQl0ZmxnKys7CisJCQlicmVhazsKKwkJY2FzZSAnPyc6CisJCWRlZmF1bHQ6CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCJ1c2FnZTogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2ZpbGVdXG4iKSk7CisJCQlleGl0KDEpOworCQl9CisJYXJnYyAtPSBvcHRpbmQ7CisJYXJndiArPSBvcHRpbmQ7CisKKwlpZiAoYXJnYyA+IDApCisJCWZuYW1lID0gYXJndlswXTsKKwllbHNlIHsKKwkJZm5hbWUgPSAidHlwZXNjcmlwdCI7CisJCWRpZV9pZl9saW5rKGZuYW1lKTsKKwl9CisJaWYgKChmc2NyaXB0ID0gZm9wZW4oZm5hbWUsIGFmbGcgPyAiYSIgOiAidyIpKSA9PSBOVUxMKSB7CisJCXBlcnJvcihmbmFtZSk7CisJCWZhaWwoKTsKKwl9CisKKwlzaGVsbCA9IGdldGVudigiU0hFTEwiKTsKKwlpZiAoc2hlbGwgPT0gTlVMTCkKKwkJc2hlbGwgPSBfUEFUSF9CU0hFTEw7CisKKwlnZXRtYXN0ZXIoKTsKKwlpZiAoIXFmbGcpCisJCXByaW50ZihfKCJTY3JpcHQgc3RhcnRlZCwgZmlsZSBpcyAlc1xuIiksIGZuYW1lKTsKKwlmaXh0dHkoKTsKKworCXNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKKwlzYS5zYV9mbGFncyA9IDA7CisKKwlzYS5zYV9oYW5kbGVyID0gZmluaXNoOworCXNpZ2FjdGlvbihTSUdDSExELCAmc2EsIE5VTEwpOworCisJY2hpbGQgPSBmb3JrKCk7CisJaWYgKGNoaWxkIDwgMCkgeworCQlwZXJyb3IoImZvcmsiKTsKKwkJZmFpbCgpOworCX0KKwlpZiAoY2hpbGQgPT0gMCkgeworCQlzdWJjaGlsZCA9IGNoaWxkID0gZm9yaygpOworCQlpZiAoY2hpbGQgPCAwKSB7CisJCQlwZXJyb3IoImZvcmsiKTsKKwkJCWZhaWwoKTsKKwkJfQorCQlpZiAoY2hpbGQpCisJCQlkb291dHB1dCgpOworCQllbHNlCisJCQlkb3NoZWxsKCk7CisJfSBlbHNlIHsKKwkJc2Euc2FfaGFuZGxlciA9IHJlc2l6ZTsKKwkJc2lnYWN0aW9uKFNJR1dJTkNILCAmc2EsIE5VTEwpOworCX0KKwlkb2lucHV0KCk7CisKKwlyZXR1cm4gMDsKK30KKwordm9pZAorZG9pbnB1dCgpIHsKKwlyZWdpc3RlciBpbnQgY2M7CisJY2hhciBpYnVmW0JVRlNJWl07CisKKwkodm9pZCkgZmNsb3NlKGZzY3JpcHQpOworCisJaWYgKGRpZSA9PSAwICYmIGNoaWxkICYmIGtpbGwoY2hpbGQsIDApID09IC0xICYmIGVycm5vID09IEVTUkNIKQorCQlkaWUgPSAxOworCisJd2hpbGUgKGRpZSA9PSAwKSB7CisJCWlmICgoY2MgPSByZWFkKDAsIGlidWYsIEJVRlNJWikpID4gMCkgeworCQkJc3NpemVfdCB3cnQgPSB3cml0ZShtYXN0ZXIsIGlidWYsIGNjKTsKKwkJCWlmICh3cnQgPT0gLTEpIHsKKwkJCQlpbnQgZXJyID0gZXJybm87CisJCQkJZnByaW50ZiAoc3RkZXJyLCBfKCIlczogd3JpdGUgZXJyb3IgJWQ6ICVzXG4iKSwKKwkJCQkJcHJvZ25hbWUsIGVyciwgc3RyZXJyb3IoZXJyKSk7CisJCQkJZmFpbCgpOworCQkJfQorCQl9CisJCWVsc2UgaWYgKGNjID09IC0xICYmIGVycm5vID09IEVJTlRSICYmIHJlc2l6ZWQpCisJCQlyZXNpemVkID0gMDsKKwkJZWxzZQorCQkJYnJlYWs7CisJfQorCisJZG9uZSgpOworfQorCisjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKwordm9pZAorZmluaXNoKGludCBkdW1teSkgeworCWludCBzdGF0dXM7CisJcmVnaXN0ZXIgaW50IHBpZDsKKworCXdoaWxlICgocGlkID0gd2FpdDMoJnN0YXR1cywgV05PSEFORywgMCkpID4gMCkKKwkJaWYgKHBpZCA9PSBjaGlsZCkKKwkJCWRpZSA9IDE7Cit9CisKK3ZvaWQKK3Jlc2l6ZShpbnQgZHVtbXkpIHsKKwlyZXNpemVkID0gMTsKKwkvKiB0cmFuc21pdCB3aW5kb3cgY2hhbmdlIGluZm9ybWF0aW9uIHRvIHRoZSBjaGlsZCAqLworCSh2b2lkKSBpb2N0bCgwLCBUSU9DR1dJTlNaLCAoY2hhciAqKSZ3aW4pOworCSh2b2lkKSBpb2N0bChzbGF2ZSwgVElPQ1NXSU5TWiwgKGNoYXIgKikmd2luKTsKK30KKworLyoKKyAqIFN0b3AgZXh0cmVtZWx5IHNpbGx5IGdjYyBjb21wbGFpbnQgb24gJWM6CisgKiAgd2FybmluZzogYCVjJyB5aWVsZHMgb25seSBsYXN0IDIgZGlnaXRzIG9mIHllYXIgaW4gc29tZSBsb2NhbGVzCisgKi8KK3N0YXRpYyB2b2lkCitteV9zdHJmdGltZShjaGFyICpidWYsIHNpemVfdCBsZW4sIGNvbnN0IGNoYXIgKmZtdCwgY29uc3Qgc3RydWN0IHRtICp0bSkgeworCXN0cmZ0aW1lKGJ1ZiwgbGVuLCBmbXQsIHRtKTsKK30KKwordm9pZAorZG9vdXRwdXQoKSB7CisJcmVnaXN0ZXIgc3NpemVfdCBjYzsKKwl0aW1lX3QgdHZlYzsKKwljaGFyIG9idWZbQlVGU0laXTsKKwlzdHJ1Y3QgdGltZXZhbCB0djsKKwlkb3VibGUgb2xkdGltZT10aW1lKE5VTEwpLCBuZXd0aW1lOworCWludCBmbGdzID0gMDsKKwlzc2l6ZV90IHdydDsKKwlzaXplX3QgZndydDsKKworCSh2b2lkKSBjbG9zZSgwKTsKKyNpZmRlZiBIQVZFX0xJQlVUSUwKKwkodm9pZCkgY2xvc2Uoc2xhdmUpOworI2VuZGlmCisJdHZlYyA9IHRpbWUoKHRpbWVfdCAqKU5VTEwpOworCW15X3N0cmZ0aW1lKG9idWYsIHNpemVvZiBvYnVmLCAiJWNcbiIsIGxvY2FsdGltZSgmdHZlYykpOworCWZwcmludGYoZnNjcmlwdCwgXygiU2NyaXB0IHN0YXJ0ZWQgb24gJXMiKSwgb2J1Zik7CisKKwlpZiAoZGllID09IDAgJiYgY2hpbGQgJiYga2lsbChjaGlsZCwgMCkgPT0gLTEgJiYgZXJybm8gPT0gRVNSQ0gpCisJCS8qCisJCSAqIHRoZSBTSUdDSExEIGhhbmRsZXIgY291bGQgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgImNoaWxkIgorCQkgKiB2YXJpYWJsZSBpcyBub3Qgc2V0IHlldC4gSXQgbWVhbnMgdGhhdCB0aGUgImRpZSIgaXMgemVybworCQkgKiBhbHRob3VnaHQgdGhlIGNoaWxkIHByb2Nlc3MgaXMgYWxyZWFkeSBkb25lLiBXZSBoYXZlIHRvCisJCSAqIGNoZWNrIHRoaXMgdGhpbmcgbm93LiBOb3cgd2UgaGF2ZSB0aGUgImNoaWxkIiB2YXJpYWJsZQorCQkgKiBhbHJlYWR5IGluaXRpYWxpemVkLiBGb3IgbW9yZSBkZXRhaWxzIHNlZSBtYWluKCkgYW5kCisJCSAqIGZpbmlzaCgpLiAgLS1remFrIDA3LUF1Zy0yMDA3CisJCSAqLworCQlkaWUgPSAxOworCisJZG8geworCQlpZiAoZGllICYmIGZsZ3MgPT0gMCkgeworCQkJLyogLi5jaGlsZCBpcyBkZWFkLCBidXQgaXQgZG9lc24ndCBtZWFuIHRoYXQgdGhlcmUgaXMKKwkJCSAqIG5vdGhpbmcgaW4gYnVmZmVycy4KKwkJCSAqLworCQkJZmxncyA9IGZjbnRsKG1hc3RlciwgRl9HRVRGTCwgMCk7CisJCQlpZiAoZmNudGwobWFzdGVyLCBGX1NFVEZMLCAoZmxncyB8IE9fTk9OQkxPQ0spKSA9PSAtMSkKKwkJCQlicmVhazsKKwkJfQorCQlpZiAodGZsZykKKwkJCWdldHRpbWVvZmRheSgmdHYsIE5VTEwpOworCisJCWVycm5vID0gMDsKKwkJY2MgPSByZWFkKG1hc3Rlciwgb2J1Ziwgc2l6ZW9mIChvYnVmKSk7CisKKwkJaWYgKGRpZSAmJiBlcnJubyA9PSBFSU5UUiAmJiBjYyA8PSAwKQorCQkJLyogcmVhZCgpIGhhcyBiZWVuIGludGVycnVwdGVkIGJ5IFNJR0NITEQsIHRyeSBpdCBhZ2FpbgorCQkJICogd2l0aCBPX05PTkJMT0NLCisJCQkgKi8KKwkJCWNvbnRpbnVlOworCQlpZiAoY2MgPD0gMCkKKwkJCWJyZWFrOworCQlpZiAodGZsZykgeworCQkJbmV3dGltZSA9IHR2LnR2X3NlYyArIChkb3VibGUpIHR2LnR2X3VzZWMgLyAxMDAwMDAwOworCQkJZnByaW50ZihzdGRlcnIsICIlZiAlemRcbiIsIG5ld3RpbWUgLSBvbGR0aW1lLCBjYyk7CisJCQlvbGR0aW1lID0gbmV3dGltZTsKKwkJfQorCQl3cnQgPSB3cml0ZSgxLCBvYnVmLCBjYyk7CisJCWlmICh3cnQgPCAwKSB7CisJCQlpbnQgZXJyID0gZXJybm87CisJCQlmcHJpbnRmIChzdGRlcnIsIF8oIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIpLAorCQkJCXByb2duYW1lLCBzdHJlcnJvcihlcnIpKTsKKwkJCWZhaWwoKTsKKwkJfQorCQlmd3J0ID0gZndyaXRlKG9idWYsIDEsIGNjLCBmc2NyaXB0KTsKKwkJaWYgKGZ3cnQgPCBjYykgeworCQkJaW50IGVyciA9IGVycm5vOworCQkJZnByaW50ZiAoc3RkZXJyLCBfKCIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIpLAorCQkJCXByb2duYW1lLCBzdHJlcnJvcihlcnIpKTsKKwkJCWZhaWwoKTsKKwkJfQorCQlpZiAoZmZsZykKKwkJCSh2b2lkKSBmZmx1c2goZnNjcmlwdCk7CisJfSB3aGlsZSgxKTsKKworCWlmIChmbGdzKQorCQlmY250bChtYXN0ZXIsIEZfU0VURkwsIGZsZ3MpOworCWRvbmUoKTsKK30KKwordm9pZAorZG9zaGVsbCgpIHsKKwljaGFyICpzaG5hbWU7CisKKyNpZiAwCisJaW50IHQ7CisKKwl0ID0gb3BlbihfUEFUSF9ERVZfVFRZLCBPX1JEV1IpOworCWlmICh0ID49IDApIHsKKwkJKHZvaWQpIGlvY3RsKHQsIFRJT0NOT1RUWSwgKGNoYXIgKikwKTsKKwkJKHZvaWQpIGNsb3NlKHQpOworCX0KKyNlbmRpZgorCisJZ2V0c2xhdmUoKTsKKwkodm9pZCkgY2xvc2UobWFzdGVyKTsKKwkodm9pZCkgZmNsb3NlKGZzY3JpcHQpOworCSh2b2lkKSBkdXAyKHNsYXZlLCAwKTsKKwkodm9pZCkgZHVwMihzbGF2ZSwgMSk7CisJKHZvaWQpIGR1cDIoc2xhdmUsIDIpOworCSh2b2lkKSBjbG9zZShzbGF2ZSk7CisKKwlzaG5hbWUgPSBzdHJyY2hyKHNoZWxsLCAnLycpOworCWlmIChzaG5hbWUpCisJCXNobmFtZSsrOworCWVsc2UKKwkJc2huYW1lID0gc2hlbGw7CisKKwlpZiAoY2ZsZykKKwkJZXhlY2woc2hlbGwsIHNobmFtZSwgIi1jIiwgY2ZsZywgTlVMTCk7CisJZWxzZQorCQlleGVjbChzaGVsbCwgc2huYW1lLCAiLWkiLCBOVUxMKTsKKworCXBlcnJvcihzaGVsbCk7CisJZmFpbCgpOworfQorCit2b2lkCitmaXh0dHkoKSB7CisJc3RydWN0IHRlcm1pb3MgcnR0OworCisJcnR0ID0gdHQ7CisJY2ZtYWtlcmF3KCZydHQpOworCXJ0dC5jX2xmbGFnICY9IH5FQ0hPOworCSh2b2lkKSB0Y3NldGF0dHIoMCwgVENTQU5PVywgJnJ0dCk7Cit9CisKK3ZvaWQKK2ZhaWwoKSB7CisKKwkodm9pZCkga2lsbCgwLCBTSUdURVJNKTsKKwlkb25lKCk7Cit9CisKK3ZvaWQKK2RvbmUoKSB7CisJdGltZV90IHR2ZWM7CisKKwlpZiAoc3ViY2hpbGQpIHsKKwkJaWYgKCFxZmxnKSB7CisJCQljaGFyIGJ1ZltCVUZTSVpdOworCQkJdHZlYyA9IHRpbWUoKHRpbWVfdCAqKU5VTEwpOworCQkJbXlfc3RyZnRpbWUoYnVmLCBzaXplb2YgYnVmLCAiJWNcbiIsIGxvY2FsdGltZSgmdHZlYykpOworCQkJZnByaW50Zihmc2NyaXB0LCBfKCJcblNjcmlwdCBkb25lIG9uICVzIiksIGJ1Zik7CisJCX0KKwkJKHZvaWQpIGZjbG9zZShmc2NyaXB0KTsKKwkJKHZvaWQpIGNsb3NlKG1hc3Rlcik7CisJfSBlbHNlIHsKKwkJKHZvaWQpIHRjc2V0YXR0cigwLCBUQ1NBRFJBSU4sICZ0dCk7CisJCWlmICghcWZsZykKKwkJCXByaW50ZihfKCJTY3JpcHQgZG9uZSwgZmlsZSBpcyAlc1xuIiksIGZuYW1lKTsKKwl9CisJZXhpdCgwKTsKK30KKwordm9pZAorZ2V0bWFzdGVyKCkgeworI2lmZGVmIEhBVkVfTElCVVRJTAorCSh2b2lkKSB0Y2dldGF0dHIoMCwgJnR0KTsKKwkodm9pZCkgaW9jdGwoMCwgVElPQ0dXSU5TWiwgKGNoYXIgKikmd2luKTsKKwlpZiAob3BlbnB0eSgmbWFzdGVyLCAmc2xhdmUsIE5VTEwsICZ0dCwgJndpbikgPCAwKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCJvcGVucHR5IGZhaWxlZFxuIikpOworCQlmYWlsKCk7CisJfQorI2Vsc2UKKwljaGFyICpwdHksICpiYW5rLCAqY3A7CisJc3RydWN0IHN0YXQgc3RiOworCisJcHR5ID0gJmxpbmVbc3RybGVuKCIvZGV2L3B0eXAiKV07CisJZm9yIChiYW5rID0gInBxcnMiOyAqYmFuazsgYmFuaysrKSB7CisJCWxpbmVbc3RybGVuKCIvZGV2L3B0eSIpXSA9ICpiYW5rOworCQkqcHR5ID0gJzAnOworCQlpZiAoc3RhdChsaW5lLCAmc3RiKSA8IDApCisJCQlicmVhazsKKwkJZm9yIChjcCA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsgKmNwOyBjcCsrKSB7CisJCQkqcHR5ID0gKmNwOworCQkJbWFzdGVyID0gb3BlbihsaW5lLCBPX1JEV1IpOworCQkJaWYgKG1hc3RlciA+PSAwKSB7CisJCQkJY2hhciAqdHAgPSAmbGluZVtzdHJsZW4oIi9kZXYvIildOworCQkJCWludCBvazsKKworCQkJCS8qIHZlcmlmeSBzbGF2ZSBzaWRlIGlzIHVzYWJsZSAqLworCQkJCSp0cCA9ICd0JzsKKwkJCQlvayA9IGFjY2VzcyhsaW5lLCBSX09LfFdfT0spID09IDA7CisJCQkJKnRwID0gJ3AnOworCQkJCWlmIChvaykgeworCQkJCQkodm9pZCkgdGNnZXRhdHRyKDAsICZ0dCk7CisJCQkJICAgIAkodm9pZCkgaW9jdGwoMCwgVElPQ0dXSU5TWiwgCisJCQkJCQkoY2hhciAqKSZ3aW4pOworCQkJCQlyZXR1cm47CisJCQkJfQorCQkJCSh2b2lkKSBjbG9zZShtYXN0ZXIpOworCQkJfQorCQl9CisJfQorCWZwcmludGYoc3RkZXJyLCBfKCJPdXQgb2YgcHR5J3NcbiIpKTsKKwlmYWlsKCk7CisjZW5kaWYgLyogbm90IEhBVkVfTElCVVRJTCAqLworfQorCit2b2lkCitnZXRzbGF2ZSgpIHsKKyNpZm5kZWYgSEFWRV9MSUJVVElMCisJbGluZVtzdHJsZW4oIi9kZXYvIildID0gJ3QnOworCXNsYXZlID0gb3BlbihsaW5lLCBPX1JEV1IpOworCWlmIChzbGF2ZSA8IDApIHsKKwkJcGVycm9yKGxpbmUpOworCQlmYWlsKCk7CisJfQorCSh2b2lkKSB0Y3NldGF0dHIoc2xhdmUsIFRDU0FOT1csICZ0dCk7CisJKHZvaWQpIGlvY3RsKHNsYXZlLCBUSU9DU1dJTlNaLCAoY2hhciAqKSZ3aW4pOworI2VuZGlmCisJKHZvaWQpIHNldHNpZCgpOworCSh2b2lkKSBpb2N0bChzbGF2ZSwgVElPQ1NDVFRZLCAwKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3NjcmlwdHJlcGxheS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhYTdiNmIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3NjcmlwdHJlcGxheS4xCkBAIC0wLDAgKzEsMjE4IEBACisuXCIgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgUG9kOjpNYW4gdmVyc2lvbiAxLjAyCisuXCIgTW9uIFNlcCAgMyAwMjoxNjowNiAyMDAxCisuXCIKKy5cIiBTdGFuZGFyZCBwcmVhbWJsZToKKy5cIiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisuZGUgU2ggXCIgU3Vic2VjdGlvbiBoZWFkaW5nCisuYnIKKy5pZiB0IC5TcAorLm5lIDUKKy5QUAorXGZCXFwkMVxmUgorLlBQCisuLgorLmRlIFNwIFwiIFZlcnRpY2FsIHNwYWNlICh3aGVuIHdlIGNhbid0IHVzZSAuUFApCisuaWYgdCAuc3AgLjV2CisuaWYgbiAuc3AKKy4uCisuZGUgSXAgXCIgTGlzdCBpdGVtCisuYnIKKy5pZSBcXG4oLiQ+PTMgLm5lIFxcJDMKKy5lbCAubmUgMworLklQICJcXCQxIiBcXCQyCisuLgorLmRlIFZiIFwiIEJlZ2luIHZlcmJhdGltIHRleHQKKy5mdCBDVworLm5mCisubmUgXFwkMQorLi4KKy5kZSBWZSBcIiBFbmQgdmVyYmF0aW0gdGV4dAorLmZ0IFIKKworLmZpCisuLgorLlwiIFNldCB1cCBzb21lIGNoYXJhY3RlciB0cmFuc2xhdGlvbnMgYW5kIHByZWRlZmluZWQgc3RyaW5ncy4gIFwqKC0tIHdpbGwKKy5cIiBnaXZlIGFuIHVuYnJlYWthYmxlIGRhc2gsIFwqKFBJIHdpbGwgZ2l2ZSBwaSwgXCooTCIgd2lsbCBnaXZlIGEgbGVmdAorLlwiIGRvdWJsZSBxdW90ZSwgYW5kIFwqKFIiIHdpbGwgZ2l2ZSBhIHJpZ2h0IGRvdWJsZSBxdW90ZS4gIHwgd2lsbCBnaXZlIGEKKy5cIiByZWFsIHZlcnRpY2FsIGJhci4gIFwqKEMrIHdpbGwgZ2l2ZSBhIG5pY2VyIEMrKy4gIENhcGl0YWwgb21lZ2EgaXMgdXNlZAorLlwiIHRvIGRvIHVuYnJlYWthYmxlIGRhc2hlcyBhbmQgdGhlcmVmb3JlIHdvbid0IGJlIGF2YWlsYWJsZS4gIFwqKENgIGFuZAorLlwiIFwqKEMnIGV4cGFuZCB0byBgJyBpbiBucm9mZiwgbm90aGluZyBpbiB0cm9mZiwgZm9yIHVzZSB3aXRoIEM8PgorLnRyIFwoKlctfFwoYnZcKihUcgorLmRzIEMrIENcdictLjF2J1xoJy0xcCdccy0yK1xoJy0xcCcrXHMwXHYnLjF2J1xoJy0xcCcKKy5pZSBuIFx7XAorLiAgICBkcyAtLSBcKCpXLQorLiAgICBkcyBQSSBwaQorLiAgICBpZiAoXG4oLkg9NHUpJigxbT0yNHUpIC5kcyAtLSBcKCpXXGgnLTEydSdcKCpXXGgnLTEydSctXCIgZGlhYmxvIDEwIHBpdGNoCisuICAgIGlmIChcbiguSD00dSkmKDFtPTIwdSkgLmRzIC0tIFwoKldcaCctMTJ1J1woKldcaCctOHUnLVwiICBkaWFibG8gMTIgcGl0Y2gKKy4gICAgZHMgTCIgIiIKKy4gICAgZHMgUiIgIiIKKy4gICAgZHMgQ2AgYAorLiAgICBkcyBDJyAnCisnYnJcfQorLmVsXHtcCisuICAgIGRzIC0tIFx8XChlbVx8CisuICAgIGRzIFBJIFwoKnAKKy4gICAgZHMgTCIgYGAKKy4gICAgZHMgUiIgJycKKydiclx9CisuXCIKKy5cIiBJZiB0aGUgRiByZWdpc3RlciBpcyB0dXJuZWQgb24sIHdlJ2xsIGdlbmVyYXRlIGluZGV4IGVudHJpZXMgb24gc3RkZXJyCisuXCIgZm9yIHRpdGxlcyAoLlRIKSwgaGVhZGVycyAoLlNIKSwgc3Vic2VjdGlvbnMgKC5TaCksIGl0ZW1zICguSXApLCBhbmQKKy5cIiBpbmRleCBlbnRyaWVzIG1hcmtlZCB3aXRoIFg8PiBpbiBQT0QuICBPZiBjb3Vyc2UsIHlvdSdsbCBoYXZlIHRvIHByb2Nlc3MKKy5cIiB0aGUgb3V0cHV0IHlvdXJzZWxmIGluIHNvbWUgbWVhbmluZ2Z1bCBmYXNoaW9uLgorLmlmIFxuRiBce1wKKy4gICAgZGUgSVgKKy4gICAgdG0gSW5kZXg6XFwkMVx0XFxuJVx0IlxcJDIiCisuICAgIC4KKy4gICAgbnIgJSAwCisuICAgIHJyIEYKKy5cfQorLlwiCisuXCIgRm9yIG5yb2ZmLCB0dXJuIG9mZiBqdXN0aWZpY2F0aW9uLiAgQWx3YXlzIHR1cm4gb2ZmIGh5cGhlbmF0aW9uOyBpdAorLlwiIG1ha2VzIHdheSB0b28gbWFueSBtaXN0YWtlcyBpbiB0ZWNobmljYWwgZG9jdW1lbnRzLgorLmh5IDAKKy5pZiBuIC5uYQorLlwiCisuXCIgQWNjZW50IG1hcmsgZGVmaW5pdGlvbnMgKEAoIyltcy5hY2MgMS41IDg4LzAyLzA4IFNNSTsgZnJvbSBVQ0IgNC4yKS4KKy5cIiBGZWFyLiAgUnVuLiAgU2F2ZSB5b3Vyc2VsZi4gIE5vIHVzZXItc2VydmljZWFibGUgcGFydHMuCisuYmQgQiAzCisuICAgIFwiIGZ1ZGdlIGZhY3RvcnMgZm9yIG5yb2ZmIGFuZCB0cm9mZgorLmlmIG4gXHtcCisuICAgIGRzICNIIDAKKy4gICAgZHMgI1YgLjhtCisuICAgIGRzICNGIC4zbQorLiAgICBkcyAjWyBcZjEKKy4gICAgZHMgI10gXGZQCisuXH0KKy5pZiB0IFx7XAorLiAgICBkcyAjSCAoKDF1LShcXFxcbiguZnUlMnUpKSouMTNtKQorLiAgICBkcyAjViAuNm0KKy4gICAgZHMgI0YgMAorLiAgICBkcyAjWyBcJgorLiAgICBkcyAjXSBcJgorLlx9CisuICAgIFwiIHNpbXBsZSBhY2NlbnRzIGZvciBucm9mZiBhbmQgdHJvZmYKKy5pZiBuIFx7XAorLiAgICBkcyAnIFwmCisuICAgIGRzIGAgXCYKKy4gICAgZHMgXiBcJgorLiAgICBkcyAsIFwmCisuICAgIGRzIH4gfgorLiAgICBkcyAvCisuXH0KKy5pZiB0IFx7XAorLiAgICBkcyAnIFxcazpcaCctKFxcbigud3UqOC8xMC1cKigjSCknXCdcaCJ8XFxuOnUiCisuICAgIGRzIGAgXFxrOlxoJy0oXFxuKC53dSo4LzEwLVwqKCNIKSdcYFxoJ3xcXG46dScKKy4gICAgZHMgXiBcXGs6XGgnLShcXG4oLnd1KjEwLzExLVwqKCNIKSdeXGgnfFxcbjp1JworLiAgICBkcyAsIFxcazpcaCctKFxcbigud3UqOC8xMCknLFxoJ3xcXG46dScKKy4gICAgZHMgfiBcXGs6XGgnLShcXG4oLnd1LVwqKCNILS4xbSknflxoJ3xcXG46dScKKy4gICAgZHMgLyBcXGs6XGgnLShcXG4oLnd1KjgvMTAtXCooI0gpJ1x6XChzbFxoJ3xcXG46dScKKy5cfQorLiAgICBcIiB0cm9mZiBhbmQgKGRhaXN5LXdoZWVsKSBucm9mZiBhY2NlbnRzCisuZHMgOiBcXGs6XGgnLShcXG4oLnd1KjgvMTAtXCooI0grLjFtK1wqKCNGKSdcdictXCooI1YnXHouXGgnLjJtK1wqKCNGJy5caCd8XFxuOnUnXHYnXCooI1YnCisuZHMgOCBcaCdcKigjSCdcKCpiXGgnLVwqKCNIJworLmRzIG8gXFxrOlxoJy0oXFxuKC53dStcdydcKGRlJ3UtXCooI0gpLzJ1J1x2Jy0uM24nXCooI1tcelwoZGVcdicuM24nXGgnfFxcbjp1J1wqKCNdCisuZHMgZC0gXGgnXCooI0gnXChwZFxoJy1cdyd+J3UnXHYnLS4yNW0nXGYyXChoeVxmUFx2Jy4yNW0nXGgnLVwqKCNIJworLmRzIEQtIERcXGs6XGgnLVx3J0QndSdcdictLjExbSdcelwoaHlcdicuMTFtJ1xoJ3xcXG46dScKKy5kcyB0aCBcKigjW1x2Jy4zbSdccysxSVxzLTFcdictLjNtJ1xoJy0oXHcnSSd1KjIvMyknXHMtMW9ccysxXCooI10KKy5kcyBUaCBcKigjW1xzKzJJXHMtMlxoJy1cdydJJ3UqMy81J1x2Jy0uM20nb1x2Jy4zbSdcKigjXQorLmRzIGFlIGFcaCctKFx3J2EndSo0LzEwKSdlCisuZHMgQWUgQVxoJy0oXHcnQSd1KjQvMTApJ0UKKy4gICAgXCIgY29ycmVjdGlvbnMgZm9yIHZyb2ZmCisuaWYgdiAuZHMgfiBcXGs6XGgnLShcXG4oLnd1KjkvMTAtXCooI0gpJ1xzLTJcdX5cZFxzKzJcaCd8XFxuOnUnCisuaWYgdiAuZHMgXiBcXGs6XGgnLShcXG4oLnd1KjEwLzExLVwqKCNIKSdcdictLjRtJ15cdicuNG0nXGgnfFxcbjp1JworLiAgICBcIiBmb3IgbG93IHJlc29sdXRpb24gZGV2aWNlcyAoY3J0IGFuZCBscHIpCisuaWYgXG4oLkg+MjMgLmlmIFxuKC5WPjE5IFwKK1x7XAorLiAgICBkcyA6IGUKKy4gICAgZHMgOCBzcworLiAgICBkcyBvIGEKKy4gICAgZHMgZC0gZFxoJy0xJ1woZ2EKKy4gICAgZHMgRC0gRFxoJy0xJ1woaHkKKy4gICAgZHMgdGggXG8nYnAnCisuICAgIGRzIFRoIFxvJ0xQJworLiAgICBkcyBhZSBhZQorLiAgICBkcyBBZSBBRQorLlx9Cisucm0gI1sgI10gI0ggI1YgI0YgQworLlwiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy5cIgorLklYIFRpdGxlICJSRVBMQVkgMSIKKy5USCBSRVBMQVkgMSAicGVybCB2NS42LjAiICIyMDAxLTA5LTAzIiAiVXNlciBDb250cmlidXRlZCBQZXJsIERvY3VtZW50YXRpb24iCisuVUMKKy5TSCAiTkFNRSIKK3NjcmlwdHJlcGxheSBcLSBwbGF5IGJhY2sgdHlwZXNjcmlwdHMsIHVzaW5nIHRpbWluZyBpbmZvcm1hdGlvbgorLlNIICJTWU5PUFNJUyIKKy5JWCBIZWFkZXIgIlNZTk9QU0lTIgorLkIgc2NyaXB0cmVwbGF5CisuSSB0aW1pbmdmaWxlCisuUkkgWyB0eXBlc2NyaXB0CisuUkkgWyBkaXZpc29yIF1dCisuU0ggIkRFU0NSSVBUSU9OIgorLklYIEhlYWRlciAiREVTQ1JJUFRJT04iCitUaGlzIHByb2dyYW0gcmVwbGF5cyBhIHR5cGVzY3JpcHQsIHVzaW5nIHRpbWluZyBpbmZvcm1hdGlvbiB0byBlbnN1cmUgdGhhdAorb3V0cHV0IGhhcHBlbnMgYXQgdGhlIHNhbWUgc3BlZWQgYXMgaXQgb3JpZ2luYWxseSBhcHBlYXJlZCB3aGVuIHRoZSBzY3JpcHQKK3dhcyByZWNvcmRlZC4KKy5QUAorVGhlIHJlcGxheSBzaW1wbHkgZGlzcGxheXMgdGhlIGluZm9ybWF0aW9uIGFnYWluOyB0aGUgcHJvZ3JhbXMKK3RoYXQgd2VyZSBydW4gd2hlbiB0aGUgdHlwZXNjcmlwdCB3YXMgYmVpbmcgcmVjb3JkZWQgYXJlIG5vdCBydW4gYWdhaW4uCitTaW5jZSB0aGUgc2FtZSBpbmZvcm1hdGlvbiBpcyBzaW1wbHkgYmVpbmcgZGlzcGxheWVkLAorLkIgc2NyaXB0cmVwbGF5CitpcyBvbmx5IGd1YXJhbnRlZWQgdG8gd29yayBwcm9wZXJseSBpZiBydW4gb24gdGhlIHNhbWUgdHlwZSBvZgordGVybWluYWwgdGhlIHR5cGVzY3JpcHQgd2FzIHJlY29yZGVkIG9uLiAgT3RoZXJ3aXNlLCBhbnkgZXNjYXBlIGNoYXJhY3RlcnMKK2luIHRoZSB0eXBlc2NyaXB0IG1heSBiZSBpbnRlcnByZXRlZCBkaWZmZXJlbnRseSBieSB0aGUgdGVybWluYWwgdG8KK3doaWNoCisuQiBzY3JpcHRyZXBsYXkKK2lzIHNlbmRpbmcgaXRzIG91dHB1dC4KKy5QUAorVGhlIHRpbWluZ3MgaW5mb3JtYXRpb24gaXMgd2hhdAorLkJSIHNjcmlwdCAoMSkKK291dHB1dHMgdG8gc3RhbmRhcmQgZXJyb3IgaWYgaXQgaXMKK3J1biB3aXRoIHRoZQorLkIgXC10CitwYXJhbWV0ZXIuCisuUFAKK0J5IGRlZmF1bHQsIHRoZSB0eXBlc2NyaXB0IHRvIGRpc3BsYXkgaXMgYXNzdW1lZCB0byBiZSBuYW1lZCBcKihMInR5cGVzY3JpcHRcKihSIiwKK2J1dCBvdGhlciBmaWxlbmFtZXMgbWF5IGJlIHNwZWNpZmllZCwgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIuCisuUFAKK0lmIHRoZSB0aGlyZCBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGFzIGEgc3BlZWQtdXAgbXVsdGlwbGllci4gRm9yCitleGFtcGxlLCBhIHNwZWVkLXVwIG9mIDIgbWFrZXMKKy5CIHNjcmlwdHJlcGxheQorZ28gdHdpY2UgYXMgZmFzdCBhbmQgYSBzcGVlZC11cCBvZiAwLjEgbWFrZXMgaXQgZ28gdGVuIHRpbWVzIHNsb3dlcgordGhhbiB0aGUgb3JpZ2luYWwgc2Vzc2lvbi4KKy5TSCAiRVhBTVBMRSIKKy5JWCBIZWFkZXIgIkVYQU1QTEUiCisuVmIgNworXCYgJSBzY3JpcHQgLXQgMj4gdGltaW5nZmlsZQorXCYgU2NyaXB0IHN0YXJ0ZWQsIGZpbGUgaXMgdHlwZXNjcmlwdAorXCYgJSBscworXCYgPGV0YywgZXRjPgorXCYgJSBleGl0CitcJiBTY3JpcHQgZG9uZSwgZmlsZSBpcyB0eXBlc2NyaXB0CitcJiAlIHNjcmlwdHJlcGxheSB0aW1pbmdmaWxlCisuVmUKKy5TSCAiU0VFIEFMU08iCisuSVggSGVhZGVyICJTRUUgQUxTTyIKKy5CUiBzY3JpcHQgKDEpCisuU0ggIkNPUFlSSUdIVCIKKy5JWCBIZWFkZXIgIkNPUFlSSUdIVCIKK0NvcHlyaWdodCBcKGNvIDIwMDggSmFtZXMgWW91bmdtYW4KKy5QUAorQ29weXJpZ2h0IFwoY28gMjAwOCBLYXJlbCBaYWsKKy5QUAorVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorUFVSUE9TRS4KKy5QUAorUmVsZWFzZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlci4KKy5TSCAiQVVUSE9SIgorLklYIEhlYWRlciAiQVVUSE9SIgorVGhlIG9yaWdpbmFsCisuQiBzY3JpcHRyZXBsYXkKK3Byb2dyYW0gd2FzIHdyaXR0ZW4gYnkgSm9leSBIZXNzIDxqb2V5QGtpdGVuZXQubmV0Pi4KK1RoZSBwcm9ncmFtIHdhcyByZS13cml0dGVuIGluIEMgYnkgSmFtZXMgWW91bmdtYW4gPGpheUBnbnUub3JnPiBhbmQgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+LgorLlNIIEFWQUlMQUJJTElUWQorVGhlCisuQiBzY3JpcHRyZXBsYXkKK2NvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTEzZWRmMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmMKQEAgLTAsMCArMSwxODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4LCBKYW1lcyBZb3VuZ21hbiA8amF5QGdudS5vcmc+CisgKgorICogVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqCisgKiBCYXNlZCBvbiBzY3JpcHRyZXBsYXkucGwgYnkgSm9leSBIZXNzIDxqb2V5QGtpdGVuZXQubmV0PgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZXJyLmg+CisKKyNpbmNsdWRlICJubHMuaCIKKworI2RlZmluZSBTQ1JJUFRfTUlOX0RFTEFZIDAuMDAwMQkJLyogZnJvbSBvcmlnaW5hbCBzcmlwcmVwbGF5LnBsICovCisKK3ZvaWQgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkKK3VzYWdlKGludCByYykKK3sKKwlwcmludGYoXygiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iKSwKKwkJCXByb2dyYW1faW52b2NhdGlvbl9zaG9ydF9uYW1lKTsKKwlleGl0KHJjKTsKK30KKworc3RhdGljIGRvdWJsZQorZ2V0bnVtKGNvbnN0IGNoYXIgKnMpCit7CisJZG91YmxlIGQ7CisJY2hhciAqZW5kOworCisJZXJybm8gPSAwOworCWQgPSBzdHJ0b2QocywgJmVuZCk7CisKKwlpZiAoZW5kICYmICplbmQgIT0gJ1wwJykKKwkJZXJyeChFWElUX0ZBSUxVUkUsIF8oImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciKSwgcyk7CisKKwlpZiAoKGQgPT0gSFVHRV9WQUwgfHwgZCA9PSAtSFVHRV9WQUwpICYmIEVSQU5HRSA9PSBlcnJubykKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiZGl2aXNvciAnJXMnIiksIHMpOworCisJaWYgKCEoZD09ZCkpIHsgLyogZGlkIHRoZXkgc3BlY2lmeSAibmFuIj8gKi8KKwkJZXJybm8gPSBFSU5WQUw7CisJCWVycihFWElUX0ZBSUxVUkUsIF8oImRpdmlzb3IgJyVzJyIpLCBzKTsKKwl9CisJcmV0dXJuIGQ7Cit9CisKK3N0YXRpYyB2b2lkCitkZWxheV9mb3IoZG91YmxlIGRlbGF5KQoreworI2lmZGVmIEhBVkVfTkFOT1NMRUVQCisJc3RydWN0IHRpbWVzcGVjIHRzLCByZW1haW5kZXI7CisJdHMudHZfc2VjID0gKHRpbWVfdCkgZGVsYXk7CisJdHMudHZfbnNlYyA9IChkZWxheSAtIHRzLnR2X3NlYykgKiAxLjBlOTsKKworCXdoaWxlICgtMSA9PSBuYW5vc2xlZXAoJnRzLCAmcmVtYWluZGVyKSkgeworCQlpZiAoRUlOVFIgPT0gZXJybm8pCisJCQl0cyA9IHJlbWFpbmRlcjsKKwkJZWxzZQorCQkJYnJlYWs7CisJfQorI2Vsc2UKKwlzdHJ1Y3QgdGltZXZhbCB0djsKKwl0di50dl9zZWMgPSAobG9uZykgZGVsYXk7CisJdHYudHZfdXNlYyA9IChkZWxheSAtIHR2LnR2X3NlYykgKiAxLjBlNjsKKwlzZWxlY3QoMCwgTlVMTCwgTlVMTCwgTlVMTCwgJnR2KTsKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZAorZW1pdChGSUxFICpmZCwgY29uc3QgY2hhciAqZmlsZW5hbWUsIHNpemVfdCBjdCkKK3sKKwljaGFyIGJ1ZltCVUZTSVpdOworCisJd2hpbGUoY3QpIHsKKwkJc2l6ZV90IGxlbiwgY2M7CisKKwkJY2MgPSBjdCA+IHNpemVvZihidWYpID8gc2l6ZW9mKGJ1ZikgOiBjdDsKKwkJbGVuID0gZnJlYWQoYnVmLCAxLCBjYywgZmQpOworCisJCWlmICghbGVuKQorCQkgICAgICAgYnJlYWs7CisKKwkJY3QgLT0gbGVuOworCQljYyA9IHdyaXRlKFNURE9VVF9GSUxFTk8sIGJ1ZiwgbGVuKTsKKwkJaWYgKGNjICE9IGxlbikKKwkJCWVycihFWElUX0ZBSUxVUkUsIF8oIndyaXRlIHRvIHN0ZG91dCBmYWlsZWQiKSk7CisJfQorCisJaWYgKCFjdCkKKwkJcmV0dXJuOworCWlmIChmZW9mKGZkKSkKKwkJZXJyeChFWElUX0ZBSUxVUkUsIF8oInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiKSwgZmlsZW5hbWUpOworCisJZXJyKEVYSVRfRkFJTFVSRSwgXygiZmFpbGVkIHRvIHJlYWQgdHlwZXNjcmlwdCBmaWxlICVzIiksIGZpbGVuYW1lKTsKK30KKworCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlGSUxFICp0ZmlsZSwgKnNmaWxlOworCWNvbnN0IGNoYXIgKnNuYW1lLCAqdG5hbWU7CisJZG91YmxlIGRpdmk7CisJaW50IGM7CisJdW5zaWduZWQgbG9uZyBsaW5lOworCXNpemVfdCBvbGRibGsgPSAwOworCisJLyogQmVjYXVzZSB3ZSB1c2Ugc3BhY2UgYXMgYSBzZXBhcmF0b3IsIHdlIGNhbid0IGFmZm9yZCB0byB1c2UgYW55CisJICogbG9jYWxlIHdoaWNoIHRvbGVyYXRlcyBhIHNwYWNlIGluIGEgbnVtYmVyLiAgSW4gYW55IGNhc2UsIHNjcmlwdC5jCisJICogc2V0cyB0aGUgTENfTlVNRVJJQyBsb2NhbGUgdG8gQywgYW55d2F5LgorCSAqLworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwlzZXRsb2NhbGUoTENfTlVNRVJJQywgIkMiKTsKKworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWlmIChhcmdjIDwgMiAmJiBhcmdjID4gNCkKKwkJdXNhZ2UoRVhJVF9GQUlMVVJFKTsKKworCXRuYW1lID0gYXJndlsxXTsKKwlzbmFtZSA9IGFyZ2MgPiAyID8gYXJndlsyXSA6ICJ0eXBlc2NyaXB0IjsKKwlkaXZpID0gYXJnYyA9PSA0ID8gZ2V0bnVtKGFyZ3ZbM10pIDogMTsKKworCXRmaWxlID0gZm9wZW4odG5hbWUsICJyIik7CisJaWYgKCF0ZmlsZSkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiKSwgdG5hbWUpOworCXNmaWxlID0gZm9wZW4oc25hbWUsICJyIik7CisJaWYgKCFzZmlsZSkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiY2Fubm90IG9wZW4gdHlwZXNjcmlwdCBmaWxlICVzIiksIHNuYW1lKTsKKworCS8qIGlnbm9yZSB0aGUgZmlyc3QgdHlwZXNjcmlwdCBsaW5lICovCisJd2hpbGUoKGMgPSBmZ2V0YyhzZmlsZSkpICE9IEVPRiAmJiBjICE9ICdcbicpOworCisJZm9yKGxpbmUgPSAwOyA7IGxpbmUrKykgeworCQlkb3VibGUgZGVsYXk7CisJCXNpemVfdCBibGs7CisJCWNoYXIgbmw7CisKKwkJaWYgKChmc2NhbmYodGZpbGUsICIlbGYgJXpkJVtcbl1cbiIsICZkZWxheSwgJmJsaywgJm5sKSAhPSAzKSB8fAorCQkJCQkJCShubCAhPSAnXG4nKSkgeworCQkJaWYgKGZlb2YodGZpbGUpKQorCQkJCWJyZWFrOworCQkJaWYgKGZlcnJvcih0ZmlsZSkpCisJCQkJZXJyKEVYSVRfRkFJTFVSRSwKKwkJCQkJXygiZmFpbGVkIHRvIHJlYWQgdGltaW5nIGZpbGUgJXMiKSwgdG5hbWUpOworCQkJZXJyeChFWElUX0ZBSUxVUkUsCisJCQkJXygidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IiksCisJCQkJdG5hbWUsIGxpbmUpOworCQl9CisJCWRlbGF5IC89IGRpdmk7CisKKwkJaWYgKGRlbGF5ID4gU0NSSVBUX01JTl9ERUxBWSkKKwkJCWRlbGF5X2ZvcihkZWxheSk7CisKKwkJaWYgKG9sZGJsaykKKwkJCWVtaXQoc2ZpbGUsIHNuYW1lLCBvbGRibGspOworCQlvbGRibGsgPSBibGs7CisJfQorCisJZmNsb3NlKHNmaWxlKTsKKwlmY2xvc2UodGZpbGUpOworCWV4aXQoRVhJVF9TVUNDRVNTKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvc2V0dGVybS4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy9zZXR0ZXJtLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE3ZTE4YQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvc2V0dGVybS4xCkBAIC0wLDAgKzEsMjA3IEBACisuXCIgQ29weXJpZ2h0IDE5OTAgR29yZG9uIElybGFtIChnb3Jkb25pQGNzLnVhLm96LmF1KQorLlwiIENvcHlyaWdodCAxOTkyIFJpY2thcmQgRS4gRmFpdGggKGZhaXRoQGNzLnVuYy5lZHUpCisuXCIgTW9zdCBvZiB0aGlzIHdhcyBjb3BpZWQgZnJvbSB0aGUgc291cmNlIGNvZGUuCisuXCIgRG8gbm90IHJlc3RyaWN0IGRpc3RyaWJ1dGlvbi4KKy5cIiBNYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisuXCIKKy5cIiBNb3N0IG9wdGlvbnMgZG9jdW1lbnRlZCBieSBDb2xpbiBXYXRzb24gKGNqdzQ0QGNhbS5hYy51aykKKy5cIiBVbmRvY3VtZW50ZWQ6IC1zbm93LCAtc29mdHNjcm9sbCwgLXN0YW5kb3V0OyB0aGVzZSBhcmUKKy5cIiBjb21tZW50ZWQgb3V0IGluIHRoZSBzb3VyY2UKKy5cIgorLlRIIFNFVFRFUk0gMSAiNyBKYW51YXJ5IDIwMDAiICJVdGlsLUxpbnV4IDIuMTAiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK3NldHRlcm0gXC0gc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMKKy5TSCBTWU5PUFNJUworLkIgc2V0dGVybQorLlJJIFsgb3B0aW9ucyBdCisuU0ggREVTQ1JJUFRJT04KKy5CIHNldHRlcm0KK3dyaXRlcyB0byBzdGFuZGFyZCBvdXRwdXQgYSBjaGFyYWN0ZXIgc3RyaW5nIHRoYXQgd2lsbCBpbnZva2UgdGhlCitzcGVjaWZpZWQgdGVybWluYWwgY2FwYWJpbGl0aWVzLiAgV2hlcmUgcG9zc2libGUKKy5JIHRlcm1pbmZvCitpcyBjb25zdWx0ZWQgdG8gZmluZCB0aGUgc3RyaW5nIHRvIHVzZS4gIFNvbWUgb3B0aW9ucyBob3dldmVyIChtYXJrZWQKKyJ2aXJ0dWFsIGNvbnNvbGVzIG9ubHkiIGJlbG93KSBkbyBub3QgY29ycmVzcG9uZCB0byBhCisuQlIgdGVybWluZm8gKDUpCitjYXBhYmlsaXR5LiAgSW4gdGhpcyBjYXNlLCBpZiB0aGUgdGVybWluYWwgdHlwZSBpcyAiY29uIiBvciAibGludXgiIHRoZQorc3RyaW5nIHRoYXQgaW52b2tlcyB0aGUgc3BlY2lmaWVkIGNhcGFiaWxpdGllcyBvbiB0aGUgUEMgTWluaXggdmlydHVhbAorY29uc29sZSBkcml2ZXIgaXMgb3V0cHV0LiAgT3B0aW9ucyB0aGF0IGFyZSBub3QgaW1wbGVtZW50ZWQgYnkgdGhlIHRlcm1pbmFsCithcmUgaWdub3JlZC4KKy5TSCBPUFRJT05TCitGb3IgYm9vbGVhbiBvcHRpb25zIChcZkJvblxmUCBvciBcZkJvZmZcZlApLCB0aGUgZGVmYXVsdCBpcyBcZkJvblxmUC4KKy5QCitGb3IgY29uY2lzZW5lc3MsIGFuIFxmSTgtY29sb3JcZlAgYmVsb3cgaXMgXGZCYmxhY2tcZlAsIFxmQnJlZFxmUCwKK1xmQmdyZWVuXGZQLCBcZkJ5ZWxsb3dcZlAsIFxmQmJsdWVcZlAsIFxmQm1hZ2VudGFcZlAsIFxmQmN5YW5cZlAsIG9yCitcZkJ3aGl0ZVxmUC4KKy5QCitBIFxmSTE2LWNvbG9yXGZQIGlzIGFuIFxmSTgtY29sb3JcZlAsIFxmQmdyZXlcZlAsIG9yIFxmQmJyaWdodFxmUCBmb2xsb3dlZAorYnkgXGZCcmVkXGZQLCBcZkJncmVlblxmUCwgXGZCeWVsbG93XGZQLCBcZkJibHVlXGZQLCBcZkJtYWdlbnRhXGZQLAorXGZCY3lhblxmUCwgb3IgXGZCd2hpdGVcZlAuCisuUAorVGhlIHZhcmlvdXMgY29sb3Igb3B0aW9ucyBtYXkgYmUgc2V0IGluZGVwZW5kZW50bHksIGF0IGxlYXN0IGF0IHZpcnR1YWwKK2NvbnNvbGVzLCB0aG91Z2ggdGhlIHJlc3VsdHMgb2Ygc2V0dGluZyBtdWx0aXBsZSBtb2RlcyAoZm9yIGV4YW1wbGUsCisuQlIgXC11bmRlcmxpbmUgIiBhbmQgIiBcLWhhbGYtYnJpZ2h0ICkKK2FyZSBoYXJkd2FyZS1kZXBlbmRlbnQuCisuVFAKKy5CUiBcLXRlcm0gIiB0ZXJtaW5hbF9uYW1lIgorT3ZlcnJpZGVzIHRoZSBURVJNIGVudmlyb25tZW50IHZhcmlhYmxlLgorLlRQCisuQiBcLXJlc2V0CitEaXNwbGF5cyB0aGUgdGVybWluYWwgcmVzZXQgc3RyaW5nLCB3aGljaCB0eXBpY2FsbHkgcmVzZXRzIHRoZSB0ZXJtaW5hbCB0bworaXRzIHBvd2VyIG9uIHN0YXRlLgorLlRQCisuQiBcLWluaXRpYWxpemUKK0Rpc3BsYXlzIHRoZSB0ZXJtaW5hbCBpbml0aWFsaXphdGlvbiBzdHJpbmcsIHdoaWNoIHR5cGljYWxseSBzZXRzIHRoZQordGVybWluYWwncyByZW5kZXJpbmcgb3B0aW9ucywgYW5kIG90aGVyIGF0dHJpYnV0ZXMgdG8gdGhlIGRlZmF1bHQgdmFsdWVzLgorLlRQCisuQlIgXC1jdXJzb3IgIiBbIiBvbiB8IG9mZiBdCitUdXJucyB0aGUgdGVybWluYWwncyBjdXJzb3Igb24gb3Igb2ZmLgorLlRQCisuQlIgXC1yZXBlYXQgIiBbIiBvbiB8IG9mZiAiXSAodmlydHVhbCBjb25zb2xlcyBvbmx5KSIKK1R1cm5zIGtleWJvYXJkIHJlcGVhdCBvbiBvciBvZmYuCisuVFAKKy5CUiBcLWFwcGN1cnNvcmtleXMgIiBbIiBvbiB8IG9mZiAiXSAodmlydHVhbCBjb25zb2xlcyBvbmx5KSIKK1NldHMgQ3Vyc29yIEtleSBBcHBsaWNhdGlvbiBNb2RlIG9uIG9yIG9mZi4gV2hlbiBvbiwgRVNDIE8gQSwgRVNDIE8gQiwgZXRjLgord2lsbCBiZSBzZW50IGZvciB0aGUgY3Vyc29yIGtleXMgaW5zdGVhZCBvZiBFU0MgWyBBLCBFU0MgWyBCLCBldGMuICBTZWUgdGhlCisidmkgYW5kIEN1cnNvci1LZXlzIiBzZWN0aW9uIG9mIHRoZSBUZXh0LVRlcm1pbmFsLUhPV1RPIGZvciBob3cgdGhpcyBjYW4KK2NhdXNlIHByb2JsZW1zIGZvciB2aSB1c2Vycy4KKy5UUAorLkJSIFwtbGluZXdyYXAgIiBbIiBvbiB8IG9mZiAiXSAodmlydHVhbCBjb25zb2xlcyBvbmx5KSIKK1R1cm5zIGF1dG9tYXRpYyBsaW5lLXdyYXBwaW5nIG9uIG9yIG9mZi4KKy5UUAorLkIgXC1kZWZhdWx0CitTZXRzIHRoZSB0ZXJtaW5hbCdzIHJlbmRlcmluZyBvcHRpb25zIHRvIHRoZSBkZWZhdWx0IHZhbHVlcy4KKy5UUAorXGZCXC1mb3JlZ3JvdW5kXGZQIFxmSTgtY29sb3JcZlB8XGZCZGVmYXVsdFxmUCAodmlydHVhbCBjb25zb2xlcyBvbmx5KQorU2V0cyB0aGUgZm9yZWdyb3VuZCB0ZXh0IGNvbG9yLgorLlRQCitcZkJcLWJhY2tncm91bmRcZlAgXGZJOC1jb2xvclxmUHxcZkJkZWZhdWx0XGZQICh2aXJ0dWFsIGNvbnNvbGVzIG9ubHkpCitTZXRzIHRoZSBiYWNrZ3JvdW5kIHRleHQgY29sb3IuCisuVFAKK1xmQlwtdWxjb2xvclxmUCBcZkkxNi1jb2xvclxmUCAodmlydHVhbCBjb25zb2xlcyBvbmx5KQorU2V0cyB0aGUgY29sb3IgZm9yIHVuZGVybGluZWQgY2hhcmFjdGVycy4KKy5UUAorXGZCXC1oYmNvbG9yXGZQIFxmSTE2LWNvbG9yXGZQICh2aXJ0dWFsIGNvbnNvbGVzIG9ubHkpCitTZXRzIHRoZSBjb2xvciBmb3IgaGFsZi1icmlnaHQgY2hhcmFjdGVycy4KKy5UUAorLkJSIFwtaW52ZXJzZXNjcmVlbiAiIFsiIG9uIHwgb2ZmICJdICh2aXJ0dWFsIGNvbnNvbGVzIG9ubHkpIgorSW52ZXJ0cyB0aGUgc2NyZWVuIGNvbG9ycy4gIEZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgYXJlIHN3YXBwZWQsIGFzIGFyZQordW5kZXJsaW5lIGFuZCBoYWxmLWJyaWdodG5lc3MuCisuVFAKKy5CUiBcLWJvbGQgIiBbIiBvbiB8IG9mZiBdCitUdXJucyBib2xkIChleHRyYSBicmlnaHQpIG1vZGUgb24gb3Igb2ZmLiAgRXhjZXB0IGF0IGEgdmlydHVhbCBjb25zb2xlLAorXGZCXC1ib2xkIG9mZlxmUCB0dXJucyBvZmYgYWxsIGF0dHJpYnV0ZXMgKGJvbGQsIGhhbGYtYnJpZ2h0bmVzcywgYmxpbmssCityZXZlcnNlKS4KKy5UUAorLkJSIFwtaGFsZi1icmlnaHQgIiBbIiBvbiB8IG9mZiBdCitUdXJucyBkaW0gKGhhbGYtYnJpZ2h0bmVzcykgbW9kZSBvbiBvciBvZmYgKHNlZSBcZkJcLWhiY29sb3JcZlApLiBFeGNlcHQgYXQKK2EgdmlydHVhbCBjb25zb2xlLCBcZkJcLWhhbGYtYnJpZ2h0IG9mZlxmUCB0dXJucyBvZmYgYWxsIGF0dHJpYnV0ZXMgKGJvbGQsCitoYWxmLWJyaWdodG5lc3MsIGJsaW5rLCByZXZlcnNlKS4KKy5UUAorLkJSIFwtYmxpbmsgIiBbIiBvbiB8IG9mZiBdCitUdXJucyBibGluayBtb2RlIG9uIG9yIG9mZi4gIEV4Y2VwdCBhdCBhIHZpcnR1YWwgY29uc29sZSwgXGZCXC1ibGluayBvZmZcZlAKK3R1cm5zIG9mZiBhbGwgYXR0cmlidXRlcyAoYm9sZCwgaGFsZi1icmlnaHRuZXNzLCBibGluaywgcmV2ZXJzZSkuCisuVFAKKy5CUiBcLXJldmVyc2UgIiBbIiBvbiB8IG9mZiBdCitUdXJucyByZXZlcnNlIHZpZGVvIG1vZGUgb24gb3Igb2ZmLiAgRXhjZXB0IGF0IGEgdmlydHVhbCBjb25zb2xlLAorXGZCXC1yZXZlcnNlIG9mZlxmUCB0dXJucyBvZmYgYWxsIGF0dHJpYnV0ZXMgKGJvbGQsIGhhbGYtYnJpZ2h0bmVzcywgYmxpbmssCityZXZlcnNlKS4KKy5UUAorLkJSIFwtdW5kZXJsaW5lICIgWyIgb24gfCBvZmYgXQorVHVybnMgdW5kZXJsaW5lIG1vZGUgb24gb3Igb2ZmIChzZWUgXGZCXC11bGNvbG9yXGZQKS4KKy5UUAorLkJSIFwtc3RvcmUgIiAodmlydHVhbCBjb25zb2xlcyBvbmx5KSIKK1N0b3JlcyB0aGUgdGVybWluYWwncyBjdXJyZW50IHJlbmRlcmluZyBvcHRpb25zIChmb3JlZ3JvdW5kIGFuZAorYmFja2dyb3VuZCBjb2xvcnMpIGFzIHRoZSB2YWx1ZXMgdG8gYmUgdXNlZCBhdCByZXNldC10by1kZWZhdWx0LgorLlRQCisuQlIgXC1jbGVhciAiIFsiIGFsbCBdCitDbGVhcnMgdGhlIHNjcmVlbiBhbmQgImhvbWVzIiB0aGUgY3Vyc29yLCBhcworLkJSIGNsZWFyICgxKS4KKy5UUAorLkIgXC1jbGVhciByZXN0CitDbGVhcnMgZnJvbSB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUgc2NyZWVuLgorLlRQCisuQlIgXC10YWJzICIgW1xmSXRhYjEgdGFiMiB0YWIzXGZQIC4uLl0gKHZpcnR1YWwgY29uc29sZXMgb25seSkiCitTZXRzIHRhYiBzdG9wcyBhdCB0aGUgZ2l2ZW4gaG9yaXpvbnRhbCBjdXJzb3IgcG9zaXRpb25zLCBpbiB0aGUgcmFuZ2UgMS0xNjAuCitXaXRob3V0IGFyZ3VtZW50cywgc2hvd3MgdGhlIGN1cnJlbnQgdGFiIHN0b3Agc2V0dGluZ3MuCisuVFAKKy5CUiBcLWNscnRhYnMgIiBbXGZJdGFiMSB0YWIyIHRhYjNcZlAgLi4uXSAodmlydHVhbCBjb25zb2xlcyBvbmx5KSIKK0NsZWFycyB0YWIgc3RvcHMgZnJvbSB0aGUgZ2l2ZW4gaG9yaXpvbnRhbCBjdXJzb3IgcG9zaXRpb25zLCBpbiB0aGUgcmFuZ2UKKzEtMTYwLiAgV2l0aG91dCBhcmd1bWVudHMsIGNsZWFycyBhbGwgdGFiIHN0b3BzLgorLlRQCisuQlIgXC1yZWd0YWJzICIgW1xmSTEtMTYwXGZQXSAodmlydHVhbCBjb25zb2xlcyBvbmx5KSIKK0NsZWFycyBhbGwgdGFiIHN0b3BzLCB0aGVuIHNldHMgYSByZWd1bGFyIHRhYiBzdG9wIHBhdHRlcm4sIHdpdGggb25lIHRhYgorZXZlcnkgc3BlY2lmaWVkIG51bWJlciBvZiBwb3NpdGlvbnMuICBXaXRob3V0IGFuIGFyZ3VtZW50LCBkZWZhdWx0cyB0byA4LgorLlRQCisuQlIgXC1ibGFuayAiIFtcZkkwLTYwXGZQfFxmQmZvcmNlXGZQfFxmQnBva2VcZlBdICh2aXJ0dWFsIGNvbnNvbGVzIG9ubHkpIgorU2V0cyB0aGUgaW50ZXJ2YWwgb2YgaW5hY3Rpdml0eSwgaW4gbWludXRlcywgYWZ0ZXIgd2hpY2ggdGhlIHNjcmVlbiB3aWxsIGJlCithdXRvbWF0aWNhbGx5IGJsYW5rZWQgKHVzaW5nIEFQTSBpZiBhdmFpbGFibGUpLiAgV2l0aG91dCBhbiBhcmd1bWVudCwgZ2V0cyB0aGUKK2JsYW5rIHN0YXR1cyAocmV0dXJucyB3aGljaCB2dCB3YXMgYmxhbmtlZCBvciB6ZXJvIGZvciB1bmJsYW5rZWQgdnQpLgorCitUaGUKKy5CIGZvcmNlCitvcHRpb24ga2VlcHMgc2NyZWVuIGJsYW5rIGV2ZW4gaWYgYSBrZXkgaXMgcHJlc3NlZC4KKworVGhlCisuQiBwb2tlCitvcHRpb24gdW5ibGFuayB0aGUgc2NyZWVuLgorLlRQCisuQlIgXC1kdW1wICIgW1xmSTEtTlJfQ09OU1xmUF0iCitXcml0ZXMgYSBzbmFwc2hvdCBvZiB0aGUgZ2l2ZW4gdmlydHVhbCBjb25zb2xlICh3aXRoIGF0dHJpYnV0ZXMpIHRvIHRoZSBmaWxlCitzcGVjaWZpZWQgaW4gdGhlIFxmQlwtZmlsZVxmUCBvcHRpb24sIG92ZXJ3cml0aW5nIGl0cyBjb250ZW50czsgdGhlIGRlZmF1bHQKK2lzIHNjcmVlbi5kdW1wLiAgV2l0aG91dCBhbiBhcmd1bWVudCwgZHVtcHMgdGhlIGN1cnJlbnQgdmlydHVhbCBjb25zb2xlLgorT3ZlcnJpZGVzIFxmQlwtYXBwZW5kXGZQLgorLlRQCisuQlIgXC1hcHBlbmQgIiBbXGZJMS1OUl9DT05TXGZQXSIKK0xpa2UgXGZCXC1kdW1wXGZQLCBidXQgYXBwZW5kcyB0byB0aGUgc25hcHNob3QgZmlsZSBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nCitpdC4gIE9ubHkgd29ya3MgaWYgbm8gXGZCXC1kdW1wXGZQIG9wdGlvbnMgYXJlIGdpdmVuLgorLlRQCisuQkkgXC1maWxlICIgZHVtcGZpbGVuYW1lIgorU2V0cyB0aGUgc25hcHNob3QgZmlsZSBuYW1lIGZvciBhbnkgXGZCXC1kdW1wXGZQIG9yIFxmQlwtYXBwZW5kXGZQIG9wdGlvbnMKK29uIHRoZSBzYW1lIGNvbW1hbmQgbGluZS4gIElmIHRoaXMgb3B0aW9uIGlzIG5vdCBwcmVzZW50LCB0aGUgZGVmYXVsdCBpcworc2NyZWVuLmR1bXAgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgorLlRQCisuQlIgXC1tc2cgIiBbIiBvbiB8IG9mZiAiXSAodmlydHVhbCBjb25zb2xlcyBvbmx5KSIKK0VuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIHNlbmRpbmcgb2Yga2VybmVsIFxmQnByaW50aygpXGZQIG1lc3NhZ2VzIHRvIHRoZQorY29uc29sZS4KKy5UUAorLkJSIFwtbXNnbGV2ZWwgIiBcZkkxLThcZlAgKHZpcnR1YWwgY29uc29sZXMgb25seSkiCitTZXRzIHRoZSBjb25zb2xlIGxvZ2dpbmcgbGV2ZWwgZm9yIGtlcm5lbCBcZkJwcmludGsoKVxmUCBtZXNzYWdlcy4gIEFsbAorbWVzc2FnZXMgc3RyaWN0bHkgbW9yZSBpbXBvcnRhbnQgdGhhbiB0aGlzIHdpbGwgYmUgcHJpbnRlZCwgc28gYSBsb2dnaW5nCitsZXZlbCBvZiAwIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgXGZCXC1tc2cgb25cZlAgYW5kIGEgbG9nZ2luZyBsZXZlbCBvZiA4Cit3aWxsIHByaW50IGFsbCBrZXJuZWwgbWVzc2FnZXMuCisuQlIga2xvZ2QgKDgpCittYXkgYmUgYSBtb3JlIGNvbnZlbmllbnQgaW50ZXJmYWNlIHRvIHRoZSBsb2dnaW5nIG9mIGtlcm5lbCBtZXNzYWdlcy4KKy5UUAorLkJSICJcLXBvd2Vyc2F2ZSBvbiIgfCB2c3luYworUHV0cyB0aGUgbW9uaXRvciBpbnRvIFZFU0EgdnN5bmMgc3VzcGVuZCBtb2RlLgorLlRQCisuQiBcLXBvd2Vyc2F2ZSBoc3luYworUHV0cyB0aGUgbW9uaXRvciBpbnRvIFZFU0EgaHN5bmMgc3VzcGVuZCBtb2RlLgorLlRQCisuQiBcLXBvd2Vyc2F2ZSBwb3dlcmRvd24KK1B1dHMgdGhlIG1vbml0b3IgaW50byBWRVNBIHBvd2VyZG93biBtb2RlLgorLlRQCisuQlIgXC1wb3dlcnNhdmUgIiBbIiBvZmYgIl0iCitUdXJucyBvZmYgbW9uaXRvciBWRVNBIHBvd2Vyc2F2aW5nIGZlYXR1cmVzLgorLlRQCisuQlIgXC1wb3dlcmRvd24gIiBbXGZJMC02MFxmUF0iCitTZXRzIHRoZSBWRVNBIHBvd2VyZG93biBpbnRlcnZhbCBpbiBtaW51dGVzLiAgV2l0aG91dCBhbiBhcmd1bWVudCwgZGVmYXVsdHMKK3RvIDAgKGRpc2FibGUgcG93ZXJkb3duKS4gIElmIHRoZSBjb25zb2xlIGlzIGJsYW5rZWQgb3IgdGhlIG1vbml0b3IgaXMgaW4KK3N1c3BlbmQgbW9kZSwgdGhlbiB0aGUgbW9uaXRvciB3aWxsIGdvIGludG8gdnN5bmMgc3VzcGVuZCBtb2RlIG9yIHBvd2VyZG93bgorbW9kZSByZXNwZWN0aXZlbHkgYWZ0ZXIgdGhpcyBwZXJpb2Qgb2YgdGltZSBoYXMgZWxhcHNlZC4KKy5UUAorLkJSIFwtYmxlbmd0aCAiIFtcZkkwLTIwMDBcZlBdIgorU2V0cyB0aGUgYmVsbCBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuICBXaXRob3V0IGFuIGFyZ3VtZW50LCBkZWZhdWx0cyB0byAwLgorLlRQCisuQlIgXC1iZnJlcSAiIFtcZklmcmVxbnVtYmVyXGZQXSIKK1NldHMgdGhlIGJlbGwgZnJlcXVlbmN5IGluIEh6LiAgV2l0aG91dCBhbiBhcmd1bWVudCwgZGVmYXVsdHMgdG8gMC4KKy5TSCAiU0VFIEFMU08iCisuQlIgdHB1dCAoMSksCisuQlIgc3R0eSAoMSksCisuQlIgdGVybWluZm8gKDUpLAorLkJSIHR0eSAoNCkKKy5TSCBCVUdTCitEaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBNaW5peCBhbmQgTGludXggdmVyc2lvbnMgYXJlIG5vdCBkb2N1bWVudGVkLgorLlNIIEFWQUlMQUJJTElUWQorVGhlIHNldHRlcm0gY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3NldHRlcm0uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvc2V0dGVybS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MDFmZmMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3NldHRlcm0uYwpAQCAtMCwwICsxLDEyNzYgQEAKKy8qIHNldHRlcm0uYywgc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMuCisgKgorICogQ29weXJpZ2h0IChDKSAxOTkwIEdvcmRvbiBJcmxhbSAoZ29yZG9uaUBjcy51YS5vei5hdSkuICBDb25kaXRpb25zIG9mIHVzZSwKKyAqIG1vZGlmaWNhdGlvbiwgYW5kIHJlZGlzdHJpYnV0aW9uIGFyZSBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWVJJR0hUIHRoYXQKKyAqIGZvcm1zIHBhcnQgb2YgdGhpcyBkaXN0cmlidXRpb24uCisgKiAKKyAqIEFkYXB0aW9uIHRvIExpbnV4IGJ5IFBldGVyIE1hY0RvbmFsZC4KKyAqCisgKiBFbmhhbmNlbWVudHMgYnkgTWlrYSBMaWxqZWJlcmcgKGxpbGplYmVyQGNzLkhlbHNpbmtpLkZJKQorICoKKyAqIEJlZXAgbW9kaWZpY2F0aW9ucyBieSBDaHJpc3RvcGhlIEpvbGlmIChjam9saWZAc3Rvcm0uZ2F0ZWxpbmsuZnIubmV0KQorICoKKyAqIFNhbml0eSBpbmNyZWFzZXMgYnkgQ2FmZWluZSBBZGRpY3QgW3NpY10uCisgKgorICogUG93ZXJzYXZlIGZlYXR1cmVzIGJ5IHRvZGQgai4gZGVyciA8dGpkQHdvcmRzbWl0aC5vcmc+CisgKgorICogQ29udmVydGVkIHRvIHRlcm1pbmZvIGJ5IEthcnMgZGUgSm9uZyAoam9uZ2tAY3MudXR3ZW50ZS5ubCkKKyAqCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqCisgKgorICogU3ludGF4OgorICoKKyAqIHNldHRlcm0KKyAqICAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF0KKyAqICAgWyAtcmVzZXQgXQorICogICBbIC1pbml0aWFsaXplIF0KKyAqICAgWyAtY3Vyc29yIFtvbnxvZmZdIF0KKyAqICAgWyAtcmVwZWF0IFtvbnxvZmZdIF0KKyAqICAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdCisgKiAgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF0KKyAqICAgWyAtc25vdyBbb258b2ZmXSBdCisgKiAgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXQorICogICBbIC1kZWZhdWx0cyBdCisgKiAgIFsgLWZvcmVncm91bmQgYmxhY2t8cmVkfGdyZWVufHllbGxvd3xibHVlfG1hZ2VudGF8Y3lhbnx3aGl0ZXxkZWZhdWx0IF0KKyAqICAgWyAtYmFja2dyb3VuZCBibGFja3xyZWR8Z3JlZW58eWVsbG93fGJsdWV8bWFnZW50YXxjeWFufHdoaXRlfGRlZmF1bHQgXQorICogICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8cmVkfGdyZWVufHllbGxvd3xibHVlfG1hZ2VudGF8Y3lhbnx3aGl0ZSBdCisgKiAgIFsgLXVsY29sb3IgYnJpZ2h0IHJlZHxncmVlbnx5ZWxsb3d8Ymx1ZXxtYWdlbnRhfGN5YW58d2hpdGUgXQorICogICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8cmVkfGdyZWVufHllbGxvd3xibHVlfG1hZ2VudGF8Y3lhbnx3aGl0ZSBdCisgKiAgIFsgLWhiY29sb3IgYnJpZ2h0IHJlZHxncmVlbnx5ZWxsb3d8Ymx1ZXxtYWdlbnRhfGN5YW58d2hpdGUgXQorICogICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF0KKyAqICAgWyAtYm9sZCBbb258b2ZmXSBdCisgKiAgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF0KKyAqICAgWyAtYmxpbmsgW29ufG9mZl0gXQorICogICBbIC1yZXZlcnNlIFtvbnxvZmZdIF0KKyAqICAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF0KKyAqICAgWyAtc3RvcmUgXQorICogICBbIC1jbGVhciBbIGFsbHxyZXN0IF0gXQorICogICBbIC10YWJzIFt0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAodGFibiA9IDEtMTYwKQorICogICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gICAodGFibiA9IDEtMTYwKQorICogICBbIC1yZWd0YWJzIFsxLTE2MF0gXQorICogICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlfF0gXQorICogICBbIC1kdW1wICAgWzEtTlJfQ09OUyBdIF0KKyAqICAgWyAtYXBwZW5kIFsxLU5SX0NPTlMgXSBdCisgKiAgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF0KKyAqICAgWyAtc3RhbmRvdXQgW2F0dHJdIF0KKyAqICAgWyAtbXNnIFtvbnxvZmZdIF0KKyAqICAgWyAtbXNnbGV2ZWwgWzAtOF0gXQorICogICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF0KKyAqICAgWyAtcG93ZXJkb3duIFswLTYwXSBdCisgKiAgIFsgLWJsZW5ndGggWzAtMjAwMF0gXQorICogICBbIC1iZnJlcSBmcmVxIF0KKyAqCisgKgorICogU2VtYW50aWNzOgorICoKKyAqIFNldHRlcm0gd3JpdGVzIHRvIHN0YW5kYXJkIG91dHB1dCBhIGNoYXJhY3RlciBzdHJpbmcgdGhhdCB3aWxsCisgKiBpbnZva2UgdGhlIHNwZWNpZmllZCB0ZXJtaW5hbCBjYXBhYmlsaXRpZXMuICBXaGVyZSBwb3NzaWJpbGUKKyAqIHRlcm1pbmZvIGlzIGNvbnN1bHRlZCB0byBmaW5kIHRoZSBzdHJpbmcgdG8gdXNlLiAgU29tZSBvcHRpb25zCisgKiBob3dldmVyIGRvIG5vdCBjb3JyZXNwb25kIHRvIGEgdGVybWluZm8gY2FwYWJpbGl0eS4gIEluIHRoaXMgY2FzZSBpZgorICogdGhlIHRlcm1pbmFsIHR5cGUgaXMgImNvbioiLCBvciAibGludXgqIiB0aGUgc3RyaW5nIHRoYXQgaW52b2tlcworICogdGhlIHNwZWNpZmllZCBjYXBhYmlsaXRpZXMgb24gdGhlIFBDIExpbnV4IHZpcnR1YWwgY29uc29sZSBkcml2ZXIKKyAqIGlzIG91dHB1dC4gIE9wdGlvbnMgdGhhdCBhcmUgbm90IGltcGxlbWVudGVkIGJ5IHRoZSB0ZXJtaW5hbCBhcmUKKyAqIGlnbm9yZWQuCisgKgorICogVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBub24tb2J2aW91cy4KKyAqCisgKiAgIC10ZXJtIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBURVJNIGVudmlyb25tZW50IHZhcmlhYmxlLgorICoKKyAqICAgLXJlc2V0IGRpc3BsYXlzIHRoZSB0ZXJtaW5hbCByZXNldCBzdHJpbmcsIHdoaWNoIHR5cGljYWxseSByZXNldHMgdGhlCisgKiAgICAgIHRlcm1pbmFsIHRvIGl0cyBwb3dlciBvbiBzdGF0ZS4KKyAqCisgKiAgIC1pbml0aWFsaXplIGRpc3BsYXlzIHRoZSB0ZXJtaW5hbCBpbml0aWFsaXphdGlvbiBzdHJpbmcsIHdoaWNoIHR5cGljYWxseQorICogICAgICBzZXRzIHRoZSB0ZXJtaW5hbCdzIHJlbmRlcmluZyBvcHRpb25zLCBhbmQgb3RoZXIgYXR0cmlidXRlcyB0byB0aGUKKyAqICAgICAgZGVmYXVsdCB2YWx1ZXMuCisgKgorICogICAtZGVmYXVsdCBzZXRzIHRoZSB0ZXJtaW5hbCdzIHJlbmRlcmluZyBvcHRpb25zIHRvIHRoZSBkZWZhdWx0IHZhbHVlcy4KKyAqCisgKiAgIC1zdG9yZSBzdG9yZXMgdGhlIHRlcm1pbmFsJ3MgY3VycmVudCByZW5kZXJpbmcgb3B0aW9ucyBhcyB0aGUgZGVmYXVsdAorICogICAgICB2YWx1ZXMuICAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8dGVybWlvcy5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaWZuZGVmIE5DVVJTRVNfQ09OU1QKKyNkZWZpbmUgTkNVUlNFU19DT05TVCBjb25zdAkvKiBkZWZpbmUgYmVmb3JlIGluY2x1ZGluZyB0ZXJtLmggKi8KKyNlbmRpZgorI2luY2x1ZGUgPHRlcm0uaD4KKworI2lmZGVmIEhBVkVfTkNVUlNFU19ICisjaW5jbHVkZSA8bmN1cnNlcy5oPgorI2VsaWYgZGVmaW5lZChIQVZFX05DVVJTRVNfTkNVUlNFU19IKQorI2luY2x1ZGUgPG5jdXJzZXMvbmN1cnNlcy5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4JCS8qIGZvciBNQVhQQVRITEVOICovCisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpZmRlZiBIQVZFX0xJTlVYX1RJT0NMX0gKKyNpbmNsdWRlIDxsaW51eC90aW9jbC5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJjLmgiCisjaW5jbHVkZSAibmxzLmgiCisKKyNpZiBfX0dOVV9MSUJSQVJZX18gPCA1CisjaWZuZGVmIF9fYWxwaGFfXworIyBpbmNsdWRlIDxsaW51eC91bmlzdGQuaD4KKyNkZWZpbmUgX19OUl9rbG9nY3RsIF9fTlJfc3lzbG9nCitfc3lzY2FsbDMoaW50LCBrbG9nY3RsLCBpbnQsIHR5cGUsIGNoYXIqLCBidWYsIGludCwgbGVuKTsKKyNlbHNlIC8qIF9fYWxwaGFfXyAqLworI2RlZmluZSBrbG9nY3RsIHN5c2xvZworI2VuZGlmCisjZW5kaWYKK2V4dGVybiBpbnQga2xvZ2N0bChpbnQgdHlwZSwgY2hhciAqYnVmLCBpbnQgbGVuKTsKKworLyogQ29uc3RhbnRzLiAqLworCisvKiBLZXlib2FyZCB0eXBlcy4gKi8KKyNkZWZpbmUgUEMJIDAKKyNkZWZpbmUgT0xJVkVUVEkgMQorI2RlZmluZSBEVVRDSCAgICAyCisjZGVmaW5lIEVYVEVOREVEIDMKKworLyogQ29sb3JzLiAqLworI2RlZmluZSBCTEFDSyAgIDAKKyNkZWZpbmUgUkVEICAgICAxCisjZGVmaW5lIEdSRUVOICAgMgorI2RlZmluZSBZRUxMT1cgIDMKKyNkZWZpbmUgQkxVRSAgICA0CisjZGVmaW5lIE1BR0VOVEEgNQorI2RlZmluZSBDWUFOICAgIDYKKyNkZWZpbmUgV0hJVEUgICA3CisjZGVmaW5lIEdSRVkJOAorI2RlZmluZSBERUZBVUxUIDkKKworLyogQmxhbmsgY29tbWFuZHMgKi8KKyNkZWZpbmUgQkxBTktTQ1JFRU4JLTEKKyNkZWZpbmUgVU5CTEFOS1NDUkVFTgktMgorI2RlZmluZSBCTEFOS0VEU0NSRUVOCS0zCisKKy8qIDxsaW51eC90aW9jbC5oPiBmYWxsYmFjayAqLworI2lmbmRlZiBUSU9DTF9CTEFOS1NDUkVFTgorIyBkZWZpbmUgVElPQ0xfVU5CTEFOS1NDUkVFTgk0ICAgICAgIC8qIHVuYmxhbmsgc2NyZWVuICovCisjIGRlZmluZSBUSU9DTF9TRVRWRVNBQkxBTksJMTAgICAgICAvKiBzZXQgdmVzYSBibGFua2luZyBtb2RlICovCisjIGRlZmluZSBUSU9DTF9CTEFOS1NDUkVFTgkxNAkvKiBrZWVwIHNjcmVlbiBibGFuayBldmVuIGlmIGEga2V5IGlzIHByZXNzZWQgKi8KKyMgZGVmaW5lIFRJT0NMX0JMQU5LRURTQ1JFRU4JMTUJLyogcmV0dXJuIHdoaWNoIHZ0IHdhcyBibGFua2VkICovCisjZW5kaWYKKworLyogQ29udHJvbCBzZXF1ZW5jZXMuICovCisjZGVmaW5lIEVTQyAiXDAzMyIKKyNkZWZpbmUgRENTICJcMDMzUCIKKyNkZWZpbmUgU1QgICJcMDMzXFwiCisKKy8qIFN0YXRpYyB2YXJpYWJsZXMuICovCisKKy8qIE9wdGlvbiBmbGFncy4gIFNldCBpZiB0aGUgb3B0aW9uIGlzIHRvIGJlIGludm9rZWQuICovCitpbnQgb3B0X3Rlcm0sIG9wdF9yZXNldCwgb3B0X2luaXRpYWxpemUsIG9wdF9jdXJzb3I7CitpbnQgb3B0X2xpbmV3cmFwLCBvcHRfc25vdywgb3B0X3NvZnRzY3JvbGwsIG9wdF9kZWZhdWx0LCBvcHRfZm9yZWdyb3VuZDsKK2ludCBvcHRfYmFja2dyb3VuZCwgb3B0X2JvbGQsIG9wdF9ibGluaywgb3B0X3JldmVyc2UsIG9wdF91bmRlcmxpbmU7CitpbnQgb3B0X3N0b3JlLCBvcHRfY2xlYXIsIG9wdF9ibGFuaywgb3B0X3NuYXAsIG9wdF9zbmFwZmlsZSwgb3B0X3N0YW5kb3V0OworaW50IG9wdF9hcHBlbmQsIG9wdF91bGNvbG9yLCBvcHRfaGJjb2xvciwgb3B0X2hhbGZicmlnaHQsIG9wdF9yZXBlYXQ7CitpbnQgb3B0X3RhYnMsIG9wdF9jbHJ0YWJzLCBvcHRfcmVndGFicywgb3B0X2FwcGN1cnNvcmtleXMsIG9wdF9pbnZlcnNlc2NyZWVuOworaW50IG9wdF9tc2csIG9wdF9tc2dsZXZlbCwgb3B0X3Bvd2Vyc2F2ZSwgb3B0X3Bvd2VyZG93bjsKK2ludCBvcHRfYmxlbmd0aCwgb3B0X2JmcmVxOworCisvKiBPcHRpb24gY29udHJvbHMuICBUaGUgdmFyaWFibGUgbmFtZXMgaGF2ZSBiZWVuIGNvbnRyYWN0ZWQgdG8gZW5zdXJlCisgKiB1bmlxdWVuZXNzLgorICovCitjaGFyICpvcHRfdGVfdGVybWluYWxfbmFtZTsJLyogVGVybWluYWwgbmFtZS4gKi8KK2ludCBvcHRfY3Vfb24sIG9wdF9saV9vbiwgb3B0X3NuX29uLCBvcHRfc29fb24sIG9wdF9ib19vbiwgb3B0X2hiX29uLCBvcHRfYmxfb247CitpbnQgb3B0X3JlX29uLCBvcHRfdW5fb24sIG9wdF9yZXBfb24sIG9wdF9hcHBja19vbiwgb3B0X2ludnNjX29uOworaW50IG9wdF9tc2dfb247CQkJLyogQm9vbGVhbiBzd2l0Y2hlcy4gKi8KK2ludCBvcHRfa2VfdHlwZTsJCS8qIEtleWJvYXJkIHR5cGUuICovCitpbnQgb3B0X2ZvX2NvbG9yLCBvcHRfYmFfY29sb3I7CS8qIENvbG9ycy4gKi8KK2ludCBvcHRfdWxfY29sb3IsIG9wdF9oYl9jb2xvcjsKK2ludCBvcHRfY2xfYWxsOwkJCS8qIENsZWFyIGFsbCBvciByZXN0LiAqLworaW50IG9wdF9ibF9taW47CQkJLyogQmxhbmsgc2NyZWVuLiAqLworaW50IG9wdF9ibGVuZ3RoX2w7CitpbnQgb3B0X2JmcmVxX2Y7CitpbnQgb3B0X3NuX251bTsJCQkvKiBTbmFwIHNjcmVlbi4gKi8KK2ludCBvcHRfc3RfYXR0cjsKK2ludCBvcHRfcnRfbGVuOwkJCS8qIHJlZ3VsYXIgdGFiIGxlbmd0aCAqLworaW50IG9wdF90Yl9hcnJheVsxNjFdOwkJLyogQXJyYXkgZm9yIHRhYiBsaXN0ICovCitpbnQgb3B0X21zZ2xldmVsX251bTsKK2ludCBvcHRfcHNfbW9kZSwgb3B0X3BkX21pbjsJLyogcG93ZXJzYXZlIG1vZGUvcG93ZXJkb3duIHRpbWUgKi8KKworY2hhciBvcHRfc25fbmFtZVsyMDBdID0gInNjcmVlbi5kdW1wIjsKKworc3RhdGljIHZvaWQgc2NyZWVuZHVtcChpbnQgdmNudW0sIEZJTEUgKkYpOworCisvKiBDb21tYW5kIGxpbmUgcGFyc2luZyByb3V0aW5lcy4KKyAqCisgKiBOb3RlIHRoYXQgaXQgaXMgYW4gZXJyb3IgZm9yIGEgZ2l2ZW4gb3B0aW9uIHRvIGJlIGludm9rZWQgbW9yZSB0aGFuIG9uY2UuCisgKi8KKworc3RhdGljIHZvaWQKK3BhcnNlX3Rlcm0oaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBpbnQgKm9wdGlvbiwgY2hhciAqKm9wdF90ZXJtLCBpbnQgKmJhZF9hcmcpIHsKKwkvKiBhcmdjOiBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBhcmd2OiBBcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIG9wdGlvbjogVGVybSBmbGFnIHRvIHNldC4gKi8KKwkvKiBvcHRfdGVybTogVGVybWluYWwgbmFtZSB0byBzZXQuICovCisJLyogYmFkX2FyZzogU2V0IHRvIHRydWUgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuICovCisKKy8qIFBhcnNlIGEgLXRlcm0gc3BlY2lmaWNhdGlvbi4gKi8KKworCWlmIChhcmdjICE9IDEgfHwgKm9wdGlvbikKKwkJKmJhZF9hcmcgPSBUUlVFOworCSpvcHRpb24gPSBUUlVFOworCWlmIChhcmdjID09IDEpCisJCSpvcHRfdGVybSA9IGFyZ3ZbMF07Cit9CisKK3N0YXRpYyB2b2lkCitwYXJzZV9ub25lKGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50ICpvcHRpb24sIGludCAqYmFkX2FyZykgeworCS8qIGFyZ2M6IE51bWJlciBvZiBhcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIGFyZ3Y6IEFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogb3B0aW9uOiBUZXJtIGZsYWcgdG8gc2V0LiAqLworCS8qIGJhZF9hcmc6IFNldCB0byB0cnVlIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLiAqLworCisvKiBQYXJzZSBhIHBhcmFtZXRlcmxlc3Mgc3BlY2lmaWNhdGlvbi4gKi8KKworCWlmIChhcmdjICE9IDAgfHwgKm9wdGlvbikKKwkJKmJhZF9hcmcgPSBUUlVFOworCSpvcHRpb24gPSBUUlVFOworfQorCitzdGF0aWMgdm9pZAorcGFyc2Vfc3dpdGNoKGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50ICpvcHRpb24sIGludCAqb3B0X29uLCBpbnQgKmJhZF9hcmcpIHsKKwkvKiBhcmdjOiBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBhcmd2OiBBcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIG9wdGlvbjogT3B0aW9uIGZsYWcgdG8gc2V0LiAqLworCS8qIG9wdF9vbjogQm9vbGVhbiBvcHRpb24gc3dpdGNoIHRvIHNldCBvciByZXNldC4gKi8KKwkvKiBiYWRfYXJnOiBTZXQgdG8gdHJ1ZSBpZiBhbiBlcnJvciBpcyBkZXRlY3RlZC4gKi8KKworLyogUGFyc2UgYSBib29sZWFuIChvbi9vZmYpIHNwZWNpZmljYXRpb24uICovCisKKwlpZiAoYXJnYyA+IDEgfHwgKm9wdGlvbikKKwkJKmJhZF9hcmcgPSBUUlVFOworCSpvcHRpb24gPSBUUlVFOworCWlmIChhcmdjID09IDEpIHsKKwkJaWYgKHN0cmNtcChhcmd2WzBdLCAib24iKSA9PSAwKQorCQkJKm9wdF9vbiA9IFRSVUU7CisJCWVsc2UgaWYgKHN0cmNtcChhcmd2WzBdLCAib2ZmIikgPT0gMCkKKwkJCSpvcHRfb24gPSBGQUxTRTsKKwkJZWxzZQorCQkJKmJhZF9hcmcgPSBUUlVFOworCX0gZWxzZSB7CisJCSpvcHRfb24gPSBUUlVFOworCX0KK30KKworc3RhdGljIHZvaWQKK3Bhcl9jb2xvcihpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGludCAqb3B0aW9uLCBpbnQgKm9wdF9jb2xvciwgaW50ICpiYWRfYXJnKSB7CisJLyogYXJnYzogTnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogYXJndjogQXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBvcHRpb246IENvbG9yIGZsYWcgdG8gc2V0LiAqLworCS8qIG9wdF9jb2xvcjogQ29sb3IgdG8gc2V0LiAqLworCS8qIGJhZF9hcmc6IFNldCB0byB0cnVlIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLiAqLworCisvKiBQYXJzZSBhIC1mb3JlZ3JvdW5kIG9yIC1iYWNrZ3JvdW5kIHNwZWNpZmljYXRpb24uICovCisKKwlpZiAoYXJnYyAhPSAxIHx8ICpvcHRpb24pCisJCSpiYWRfYXJnID0gVFJVRTsKKwkqb3B0aW9uID0gVFJVRTsKKwlpZiAoYXJnYyA9PSAxKSB7CisJCWlmIChzdHJjbXAoYXJndlswXSwgImJsYWNrIikgPT0gMCkKKwkJCSpvcHRfY29sb3IgPSBCTEFDSzsKKwkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMF0sICJyZWQiKSA9PSAwKQorCQkJKm9wdF9jb2xvciA9IFJFRDsKKwkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMF0sICJncmVlbiIpID09IDApCisJCQkqb3B0X2NvbG9yID0gR1JFRU47CisJCWVsc2UgaWYgKHN0cmNtcChhcmd2WzBdLCAieWVsbG93IikgPT0gMCkKKwkJCSpvcHRfY29sb3IgPSBZRUxMT1c7CisJCWVsc2UgaWYgKHN0cmNtcChhcmd2WzBdLCAiYmx1ZSIpID09IDApCisJCQkqb3B0X2NvbG9yID0gQkxVRTsKKwkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMF0sICJtYWdlbnRhIikgPT0gMCkKKwkJCSpvcHRfY29sb3IgPSBNQUdFTlRBOworCQllbHNlIGlmIChzdHJjbXAoYXJndlswXSwgImN5YW4iKSA9PSAwKQorCQkJKm9wdF9jb2xvciA9IENZQU47CisJCWVsc2UgaWYgKHN0cmNtcChhcmd2WzBdLCAid2hpdGUiKSA9PSAwKQorCQkJKm9wdF9jb2xvciA9IFdISVRFOworCQllbHNlIGlmIChzdHJjbXAoYXJndlswXSwgImRlZmF1bHQiKSA9PSAwKQorCQkJKm9wdF9jb2xvciA9IERFRkFVTFQ7CisJCWVsc2UgaWYgKGlzZGlnaXQoYXJndlswXVswXSkpCisJCQkqb3B0X2NvbG9yID0gYXRvaShhcmd2WzBdKTsKKwkJZWxzZQorCQkJKmJhZF9hcmcgPSBUUlVFOworCisJCWlmKCpvcHRfY29sb3IgPCAwIHx8ICpvcHRfY29sb3IgPiA5IHx8ICpvcHRfY29sb3IgPT0gOCkKKwkJCSpiYWRfYXJnID0gVFJVRTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCitwYXJfY29sb3IyKGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50ICpvcHRpb24sIGludCAqb3B0X2NvbG9yLCBpbnQgKmJhZF9hcmcpIHsKKwkvKiBhcmdjOiBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBhcmd2OiBBcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIG9wdGlvbjogQ29sb3IgZmxhZyB0byBzZXQuICovCisJLyogb3B0X2NvbG9yOiBDb2xvciB0byBzZXQuICovCisJLyogYmFkX2FyZzogU2V0IHRvIHRydWUgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuICovCisKKy8qIFBhcnNlIGEgLXVsY29sb3Igb3IgLWhiY29sb3Igc3BlY2lmaWNhdGlvbi4gKi8KKworCWlmICghYXJnYyB8fCBhcmdjID4gMiB8fCAqb3B0aW9uKQorCQkqYmFkX2FyZyA9IFRSVUU7CisJKm9wdGlvbiA9IFRSVUU7CisJKm9wdF9jb2xvciA9IDA7CisJaWYgKGFyZ2MgPT0gMikgeworCQlpZiAoc3RyY21wKGFyZ3ZbMF0sICJicmlnaHQiKSA9PSAwKQorCQkJKm9wdF9jb2xvciA9IDg7CisJCWVsc2UgeworCQkJKmJhZF9hcmcgPSBUUlVFOworCQkJcmV0dXJuOworCQl9CisJfQorCWlmIChhcmdjKSB7CisJCWlmIChzdHJjbXAoYXJndlthcmdjLTFdLCAiYmxhY2siKSA9PSAwKSB7CisJCQlpZigqb3B0X2NvbG9yKQorCQkJCSpiYWRfYXJnID0gVFJVRTsKKwkJCWVsc2UKKwkJCQkqb3B0X2NvbG9yID0gQkxBQ0s7CisJCX0gZWxzZSBpZiAoc3RyY21wKGFyZ3ZbYXJnYy0xXSwgImdyZXkiKSA9PSAwKSB7CisJCQlpZigqb3B0X2NvbG9yKQorCQkJCSpiYWRfYXJnID0gVFJVRTsKKwkJCWVsc2UKKwkJCQkqb3B0X2NvbG9yID0gR1JFWTsKKwkJfSBlbHNlIGlmIChzdHJjbXAoYXJndlthcmdjLTFdLCAicmVkIikgPT0gMCkKKwkJCSpvcHRfY29sb3IgfD0gUkVEOworCQllbHNlIGlmIChzdHJjbXAoYXJndlthcmdjLTFdLCAiZ3JlZW4iKSA9PSAwKQorCQkJKm9wdF9jb2xvciB8PSBHUkVFTjsKKwkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbYXJnYy0xXSwgInllbGxvdyIpID09IDApCisJCQkqb3B0X2NvbG9yIHw9IFlFTExPVzsKKwkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbYXJnYy0xXSwgImJsdWUiKSA9PSAwKQorCQkJKm9wdF9jb2xvciB8PSBCTFVFOworCQllbHNlIGlmIChzdHJjbXAoYXJndlthcmdjLTFdLCAibWFnZW50YSIpID09IDApCisJCQkqb3B0X2NvbG9yIHw9IE1BR0VOVEE7CisJCWVsc2UgaWYgKHN0cmNtcChhcmd2W2FyZ2MtMV0sICJjeWFuIikgPT0gMCkKKwkJCSpvcHRfY29sb3IgfD0gQ1lBTjsKKwkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbYXJnYy0xXSwgIndoaXRlIikgPT0gMCkKKwkJCSpvcHRfY29sb3IgfD0gV0hJVEU7CisJCWVsc2UgaWYgKGlzZGlnaXQoYXJndlthcmdjLTFdWzBdKSkKKwkJCSpvcHRfY29sb3IgPSBhdG9pKGFyZ3ZbYXJnYy0xXSk7CisJCWVsc2UKKwkJCSpiYWRfYXJnID0gVFJVRTsKKwkJaWYoKm9wdF9jb2xvciA8IDAgfHwgKm9wdF9jb2xvciA+IDE1KQorCQkJKmJhZF9hcmcgPSBUUlVFOworCX0KK30KKworc3RhdGljIHZvaWQKK3BhcnNlX2NsZWFyKGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50ICpvcHRpb24sIGludCAqb3B0X2FsbCwgaW50ICpiYWRfYXJnKSB7CisJLyogYXJnYzogTnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogYXJndjogQXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBvcHRpb246IENsZWFyIGZsYWcgdG8gc2V0LiAqLworCS8qIG9wdF9hbGw6IENsZWFyIGFsbCBzd2l0Y2ggdG8gc2V0IG9yIHJlc2V0LiAqLworCS8qIGJhZF9hcmc6IFNldCB0byB0cnVlIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLiAqLworCisvKiBQYXJzZSBhIC1jbGVhciBzcGVjaWZpY2F0aW9uLiAqLworCisJaWYgKGFyZ2MgPiAxIHx8ICpvcHRpb24pCisJCSpiYWRfYXJnID0gVFJVRTsKKwkqb3B0aW9uID0gVFJVRTsKKwlpZiAoYXJnYyA9PSAxKSB7CisJCWlmIChzdHJjbXAoYXJndlswXSwgImFsbCIpID09IDApCisJCQkqb3B0X2FsbCA9IFRSVUU7CisJCWVsc2UgaWYgKHN0cmNtcChhcmd2WzBdLCAicmVzdCIpID09IDApCisJCQkqb3B0X2FsbCA9IEZBTFNFOworCQllbHNlCisJCQkqYmFkX2FyZyA9IFRSVUU7CisJfSBlbHNlIHsKKwkJKm9wdF9hbGwgPSBUUlVFOworCX0KK30KKworc3RhdGljIHZvaWQKK3BhcnNlX2JsYW5rKGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50ICpvcHRpb24sIGludCAqb3B0X2FsbCwgaW50ICpiYWRfYXJnKSB7CisJLyogYXJnYzogTnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogYXJndjogQXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBvcHRpb246IENsZWFyIGZsYWcgdG8gc2V0LiAqLworCS8qIG9wdF9hbGw6IENsZWFyIGFsbCBzd2l0Y2ggdG8gc2V0IG9yIHJlc2V0LiAqLworCS8qIGJhZF9hcmc6IFNldCB0byB0cnVlIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLiAqLworCisvKiBQYXJzZSBhIC1ibGFuayBzcGVjaWZpY2F0aW9uLiAqLworCisJaWYgKGFyZ2MgPiAxIHx8ICpvcHRpb24pCisJCSpiYWRfYXJnID0gVFJVRTsKKwkqb3B0aW9uID0gVFJVRTsKKwlpZiAoYXJnYyA9PSAxKSB7CisJCWlmICghc3RyY21wKGFyZ3ZbMF0sICJmb3JjZSIpKQorCQkJKm9wdF9hbGwgPSBCTEFOS1NDUkVFTjsKKwkJZWxzZSBpZiAoIXN0cmNtcChhcmd2WzBdLCAicG9rZSIpKQorCQkJKm9wdF9hbGwgPSBVTkJMQU5LU0NSRUVOOworCQllbHNlIHsKKwkJCSpvcHRfYWxsID0gYXRvaShhcmd2WzBdKTsKKwkJCWlmICgoKm9wdF9hbGwgPiA2MCkgfHwgKCpvcHRfYWxsIDwgMCkpCisJCQkJKmJhZF9hcmcgPSBUUlVFOworCQl9CisJfSBlbHNlIHsKKwkJKm9wdF9hbGwgPSBCTEFOS0VEU0NSRUVOOworCX0KK30KKworc3RhdGljIHZvaWQKK3BhcnNlX3Bvd2Vyc2F2ZShpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGludCAqb3B0aW9uLCBpbnQgKm9wdF9tb2RlLCBpbnQgKmJhZF9hcmcpIHsKKwkvKiBhcmdjOiBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBhcmd2OiBBcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIG9wdGlvbjogcG93ZXJzYXZlIGZsYWcgdG8gc2V0LiAqLworCS8qIG9wdF9tb2RlOiBQb3dlcnNhdmluZyBtb2RlLCBkZWZpbmVkIGluIHZlc2FfYmxhbmsuYyAqLworCS8qIGJhZF9hcmc6IFNldCB0byB0cnVlIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLiAqLworCisvKiBQYXJzZSBhIC1wb3dlcnNhdmUgbW9kZSBzcGVjaWZpY2F0aW9uLiAqLworCisJaWYgKGFyZ2MgPiAxIHx8ICpvcHRpb24pCisJCSpiYWRfYXJnID0gVFJVRTsKKwkqb3B0aW9uID0gVFJVRTsKKwlpZiAoYXJnYyA9PSAxKSB7CisJCWlmIChzdHJjbXAoYXJndlswXSwgIm9uIikgPT0gMCkKKwkJCSpvcHRfbW9kZSA9IDE7CisJCWVsc2UgaWYgKHN0cmNtcChhcmd2WzBdLCAidnN5bmMiKSA9PSAwKQorCQkJKm9wdF9tb2RlID0gMTsKKwkJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMF0sICJoc3luYyIpID09IDApCisJCQkqb3B0X21vZGUgPSAyOworCQllbHNlIGlmIChzdHJjbXAoYXJndlswXSwgInBvd2VyZG93biIpID09IDApCisJCQkqb3B0X21vZGUgPSAzOworCQllbHNlIGlmIChzdHJjbXAoYXJndlswXSwgIm9mZiIpID09IDApCisJCQkqb3B0X21vZGUgPSAwOworCQllbHNlCisJCQkqYmFkX2FyZyA9IFRSVUU7CisJfSBlbHNlIHsKKwkJKm9wdF9tb2RlID0gMDsKKwl9Cit9CisKKyNpZiAwCitzdGF0aWMgdm9pZAorcGFyc2Vfc3RhbmRvdXQoaW50IGFyZ2MsIGNoYXIgKmFyZ3YsIGludCAqb3B0aW9uLCBpbnQgKm9wdF9hbGwsIGludCAqYmFkX2FyZykgeworCS8qIGFyZ2M6IE51bWJlciBvZiBhcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIGFyZ3Y6IEFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogb3B0aW9uOiBDbGVhciBmbGFnIHRvIHNldC4gKi8KKwkvKiBvcHRfYWxsOiBDbGVhciBhbGwgc3dpdGNoIHRvIHNldCBvciByZXNldC4gKi8KKwkvKiBiYWRfYXJnOiBTZXQgdG8gdHJ1ZSBpZiBhbiBlcnJvciBpcyBkZXRlY3RlZC4gKi8KKworLyogUGFyc2UgYSAtc3RhbmRvdXQgc3BlY2lmaWNhdGlvbi4gKi8KKworCWlmIChhcmdjID4gMSB8fCAqb3B0aW9uKQorCQkqYmFkX2FyZyA9IFRSVUU7CisJKm9wdGlvbiA9IFRSVUU7CisJaWYgKGFyZ2MgPT0gMSkKKwkJKm9wdF9hbGwgPSBhdG9pKGFyZ3ZbMF0pOworCWVsc2UKKwkJKm9wdF9hbGwgPSAtMTsKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZAorcGFyc2VfbXNnbGV2ZWwoaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBpbnQgKm9wdGlvbiwgaW50ICpvcHRfYWxsLCBpbnQgKmJhZF9hcmcpIHsKKwkvKiBhcmdjOiBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBhcmd2OiBBcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIG9wdGlvbjogQ2xlYXIgZmxhZyB0byBzZXQuICovCisJLyogb3B0X2FsbDogQ2xlYXIgYWxsIHN3aXRjaCB0byBzZXQgb3IgcmVzZXQuICovCisJLyogYmFkX2FyZzogU2V0IHRvIHRydWUgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuICovCisKKwlpZiAoYXJnYyA+IDEgfHwgKm9wdGlvbikKKwkJKmJhZF9hcmcgPSBUUlVFOworCSpvcHRpb24gPSBUUlVFOworCWlmIChhcmdjID09IDEpIHsKKwkJKm9wdF9hbGwgPSBhdG9pKGFyZ3ZbMF0pOworCQlpZiAoKm9wdF9hbGwgPCAwIHx8ICpvcHRfYWxsID4gOCkKKwkJCSpiYWRfYXJnID0gVFJVRTsKKwl9IGVsc2UgeworCQkqb3B0X2FsbCA9IC0xOworCX0KK30KKworc3RhdGljIHZvaWQKK3BhcnNlX3NuYXAoaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBpbnQgKm9wdGlvbiwgaW50ICpvcHRfYWxsLCBpbnQgKmJhZF9hcmcpIHsKKwkvKiBhcmdjOiBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBhcmd2OiBBcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIG9wdGlvbjogQ2xlYXIgZmxhZyB0byBzZXQuICovCisJLyogb3B0X2FsbDogQ2xlYXIgYWxsIHN3aXRjaCB0byBzZXQgb3IgcmVzZXQuICovCisJLyogYmFkX2FyZzogU2V0IHRvIHRydWUgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuICovCisKKy8qIFBhcnNlIGEgLWR1bXAgb3IgLWFwcGVuZCBzcGVjaWZpY2F0aW9uLiAqLworCisJaWYgKGFyZ2MgPiAxIHx8ICpvcHRpb24pCisJCSpiYWRfYXJnID0gVFJVRTsKKwkqb3B0aW9uID0gVFJVRTsKKwlpZiAoYXJnYyA9PSAxKSB7CisJCSpvcHRfYWxsID0gYXRvaShhcmd2WzBdKTsKKwkJaWYgKCgqb3B0X2FsbCA8PSAwKSkKKwkJCSpiYWRfYXJnID0gVFJVRTsKKwl9IGVsc2UgeworCQkqb3B0X2FsbCA9IDA7CisJfQorfQorCitzdGF0aWMgdm9pZAorcGFyc2Vfc25hcGZpbGUoaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBpbnQgKm9wdGlvbiwgaW50ICpvcHRfYWxsLCBpbnQgKmJhZF9hcmcpIHsKKwkvKiBhcmdjOiBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBhcmd2OiBBcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIG9wdGlvbjogQ2xlYXIgZmxhZyB0byBzZXQuICovCisJLyogb3B0X2FsbDogQ2xlYXIgYWxsIHN3aXRjaCB0byBzZXQgb3IgcmVzZXQuICovCisJLyogYmFkX2FyZzogU2V0IHRvIHRydWUgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuICovCisKKy8qIFBhcnNlIGEgLWZpbGUgc3BlY2lmaWNhdGlvbi4gKi8KKworCWlmIChhcmdjICE9IDEgfHwgKm9wdGlvbikKKwkJKmJhZF9hcmcgPSBUUlVFOworCSpvcHRpb24gPSBUUlVFOworCWlmIChhcmdjID09IDEpCisJCXN0cmNweSgoY2hhciAqKW9wdF9hbGwsIGFyZ3ZbMF0pOworfQorCitzdGF0aWMgdm9pZAorcGFyc2VfdGFicyhpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGludCAqb3B0aW9uLCBpbnQgKnRhYl9hcnJheSwgaW50ICpiYWRfYXJnKSB7CisJLyogYXJnYzogTnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogYXJndjogQXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBvcHRpb246IENsZWFyIGZsYWcgdG8gc2V0LiAqLworCS8qIHRhYl9hcnJheTogQXJyYXkgb2YgdGFicyAqLworCS8qIGJhZF9hcmc6IFNldCB0byB0cnVlIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLiAqLworCisJaWYgKCpvcHRpb24gfHwgYXJnYyA+IDE2MCkKKwkJKmJhZF9hcmcgPSBUUlVFOworCSpvcHRpb24gPSBUUlVFOworCXRhYl9hcnJheVthcmdjXSA9IC0xOworCXdoaWxlKGFyZ2MtLSkgeworCQl0YWJfYXJyYXlbYXJnY10gPSBhdG9pKGFyZ3ZbYXJnY10pOworCQlpZih0YWJfYXJyYXlbYXJnY10gPCAxIHx8IHRhYl9hcnJheVthcmdjXSA+IDE2MCkgeworCQkJKmJhZF9hcmcgPSBUUlVFOworCQkJcmV0dXJuOworCQl9CisJfQorfQorCitzdGF0aWMgdm9pZAorcGFyc2VfY2xydGFicyhpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGludCAqb3B0aW9uLCBpbnQgKnRhYl9hcnJheSwgaW50ICpiYWRfYXJnKSB7CisJLyogYXJnYzogTnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogYXJndjogQXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBvcHRpb246IENsZWFyIGZsYWcgdG8gc2V0LiAqLworCS8qIHRhYl9hcnJheTogQXJyYXkgb2YgdGFicyAqLworCS8qIGJhZF9hcmc6IFNldCB0byB0cnVlIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLiAqLworCisJaWYgKCpvcHRpb24gfHwgYXJnYyA+IDE2MCkKKwkJKmJhZF9hcmcgPSBUUlVFOworCSpvcHRpb24gPSBUUlVFOworCWlmKGFyZ2MgPT0gMCkgeworCQl0YWJfYXJyYXlbMF0gPSAtMTsKKwkJcmV0dXJuOworCX0KKwl0YWJfYXJyYXlbYXJnY10gPSAtMTsKKwl3aGlsZShhcmdjLS0pIHsKKwkJdGFiX2FycmF5W2FyZ2NdID0gYXRvaShhcmd2W2FyZ2NdKTsKKwkJaWYodGFiX2FycmF5W2FyZ2NdIDwgMSB8fCB0YWJfYXJyYXlbYXJnY10gPiAxNjApIHsKKwkJCSpiYWRfYXJnID0gVFJVRTsKKwkJCXJldHVybjsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQKK3BhcnNlX3JlZ3RhYnMoaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBpbnQgKm9wdGlvbiwgaW50ICpvcHRfbGVuLCBpbnQgKmJhZF9hcmcpIHsKKwkvKiBhcmdjOiBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBhcmd2OiBBcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIG9wdGlvbjogQ2xlYXIgZmxhZyB0byBzZXQuICovCisJLyogb3B0X2xlbjogUmVndWxhciB0YWIgbGVuZ3RoLiAqLworCS8qIGJhZF9hcmc6IFNldCB0byB0cnVlIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLiAqLworCisJaWYgKCpvcHRpb24gfHwgYXJnYyA+IDEpCisJCSpiYWRfYXJnID0gVFJVRTsKKwkqb3B0aW9uID0gVFJVRTsKKwlpZihhcmdjID09IDApIHsKKwkJKm9wdF9sZW4gPSA4OworCQlyZXR1cm47CisJfQorCSpvcHRfbGVuID0gYXRvaShhcmd2WzBdKTsKKwlpZigqb3B0X2xlbiA8IDEgfHwgKm9wdF9sZW4gPiAxNjApIHsKKwkJKmJhZF9hcmcgPSBUUlVFOworCQlyZXR1cm47CisJfQorfQorCisKK3N0YXRpYyB2b2lkCitwYXJzZV9ibGVuZ3RoKGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50ICpvcHRpb24sIGludCAqb3B0X2FsbCwgaW50ICpiYWRfYXJnKSB7CisJLyogYXJnYzogTnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogYXJndjogQXJndW1lbnRzIGZvciB0aGlzIG9wdGlvbi4gKi8KKwkvKiBvcHRpb246IENsZWFyIGZsYWcgdG8gc2V0LiAqLworCS8qIG9wdF9hbGwgKi8KKwkvKiBiYWRfYXJnOiBTZXQgdG8gdHJ1ZSBpZiBhbiBlcnJvciBpcyBkZXRlY3RlZC4gKi8KKworLyogUGFyc2UgIC1ibGVuZ3RoIHNwZWNpZmljYXRpb24uICovCisKKwlpZiAoYXJnYyA+IDEgfHwgKm9wdGlvbikKKwkJKmJhZF9hcmcgPSBUUlVFOworCSpvcHRpb24gPSBUUlVFOworCWlmIChhcmdjID09IDEpIHsKKwkJKm9wdF9hbGwgPSBhdG9pKGFyZ3ZbMF0pOworCQlpZiAoKm9wdF9hbGwgPiAyMDAwKQorCQkJKmJhZF9hcmcgPSBUUlVFOworCX0gZWxzZSB7CisJCSpvcHRfYWxsID0gMDsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCitwYXJzZV9iZnJlcShpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGludCAqb3B0aW9uLCBpbnQgKm9wdF9hbGwsIGludCAqYmFkX2FyZykgeworCS8qIGFyZ2M6IE51bWJlciBvZiBhcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIGFyZ3Y6IEFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogb3B0aW9uOiBDbGVhciBmbGFnIHRvIHNldC4gKi8KKwkvKiBvcHRfYWxsICovCisJLyogYmFkX2FyZzogU2V0IHRvIHRydWUgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuICovCisKKy8qIFBhcnNlICAtYmZyZXEgc3BlY2lmaWNhdGlvbi4gKi8KKworCWlmIChhcmdjID4gMSB8fCAqb3B0aW9uKQorCQkqYmFkX2FyZyA9IFRSVUU7CisJKm9wdGlvbiA9IFRSVUU7CisJaWYgKGFyZ2MgPT0gMSkgeworCQkqb3B0X2FsbCA9IGF0b2koYXJndlswXSk7CisJfSBlbHNlIHsKKwkJKm9wdF9hbGwgPSAwOworCX0KK30KKworCitzdGF0aWMgdm9pZAorc2hvd190YWJzKHZvaWQpIHsKKwlpbnQgaSwgY28gPSB0aWdldG51bSgiY29scyIpOworCisJaWYoY28gPiAwKSB7CisJCXByaW50ZigiXHIgICAgICAgICAiKTsKKwkJZm9yKGkgPSAxMDsgaSA8IGNvLTI7IGkrPTEwKQorCQkJcHJpbnRmKCIlLTEwZCIsIGkpOworCQlwdXRjaGFyKCdcbicpOworCQlmb3IoaSA9IDE7IGkgPD0gY287IGkrKykKKwkJCXB1dGNoYXIoaSUxMCsnMCcpOworCQlwdXRjaGFyKCdcbicpOworCQlmb3IoaSA9IDE7IGkgPCBjbzsgaSsrKQorCQkJcHJpbnRmKCJcdFRcYiIpOworCQlwdXRjaGFyKCdcbicpOworCX0KK30KKworCisjZGVmaW5lIFNUUkNNUChzdHIxLHN0cjIpIHN0cm5jbXAoc3RyMSxzdHIyLHN0cmxlbihzdHIxKSkKKworc3RhdGljIHZvaWQKK3BhcnNlX29wdGlvbihjaGFyICpvcHRpb24sIGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50ICpiYWRfYXJnKSB7CisJLyogb3B0aW9uOiBPcHRpb24gd2l0aCBsZWFkaW5nICctJyByZW1vdmVkLiAqLworCS8qIGFyZ2M6IE51bWJlciBvZiBhcmd1bWVudHMgZm9yIHRoaXMgb3B0aW9uLiAqLworCS8qIGFyZ3Y6IEFyZ3VtZW50cyBmb3IgdGhpcyBvcHRpb24uICovCisJLyogYmFkX2FyZzogU2V0IHRvIHRydWUgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuICovCisKKy8qIFBhcnNlIGEgc2luZ2xlIHNwZWNpZmljYXRpb24uICovCisKKwlpZiAoU1RSQ01QKG9wdGlvbiwgInRlcm0iKSA9PSAwKQorCQlwYXJzZV90ZXJtKGFyZ2MsIGFyZ3YsICZvcHRfdGVybSwgJm9wdF90ZV90ZXJtaW5hbF9uYW1lLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAicmVzZXQiKSA9PSAwKQorCQlwYXJzZV9ub25lKGFyZ2MsIGFyZ3YsICZvcHRfcmVzZXQsIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJpbml0aWFsaXplIikgPT0gMCkKKwkJcGFyc2Vfbm9uZShhcmdjLCBhcmd2LCAmb3B0X2luaXRpYWxpemUsIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJjdXJzb3IiKSA9PSAwKQorCQlwYXJzZV9zd2l0Y2goYXJnYywgYXJndiwgJm9wdF9jdXJzb3IsICZvcHRfY3Vfb24sIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJyZXBlYXQiKSA9PSAwKQorCQlwYXJzZV9zd2l0Y2goYXJnYywgYXJndiwgJm9wdF9yZXBlYXQsICZvcHRfcmVwX29uLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAiYXBwY3Vyc29ya2V5cyIpID09IDApCisJCXBhcnNlX3N3aXRjaChhcmdjLCBhcmd2LCAmb3B0X2FwcGN1cnNvcmtleXMsICZvcHRfYXBwY2tfb24sIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJsaW5ld3JhcCIpID09IDApCisJCXBhcnNlX3N3aXRjaChhcmdjLCBhcmd2LCAmb3B0X2xpbmV3cmFwLCAmb3B0X2xpX29uLCBiYWRfYXJnKTsKKyNpZiAwCisJZWxzZSBpZiAoU1RSQ01QKG9wdGlvbiwgInNub3ciKSA9PSAwKQorCQlwYXJzZV9zd2l0Y2goYXJnYywgYXJndiwgJm9wdF9zbm93LCAmb3B0X3NuX29uLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAic29mdHNjcm9sbCIpID09IDApCisJCXBhcnNlX3N3aXRjaChhcmdjLCBhcmd2LCAmb3B0X3NvZnRzY3JvbGwsICZvcHRfc29fb24sIGJhZF9hcmcpOworI2VuZGlmCisJZWxzZSBpZiAoU1RSQ01QKG9wdGlvbiwgImRlZmF1bHQiKSA9PSAwKQorCQlwYXJzZV9ub25lKGFyZ2MsIGFyZ3YsICZvcHRfZGVmYXVsdCwgYmFkX2FyZyk7CisJZWxzZSBpZiAoU1RSQ01QKG9wdGlvbiwgImZvcmVncm91bmQiKSA9PSAwKQorCQlwYXJfY29sb3IoYXJnYywgYXJndiwgJm9wdF9mb3JlZ3JvdW5kLCAmb3B0X2ZvX2NvbG9yLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAiYmFja2dyb3VuZCIpID09IDApCisJCXBhcl9jb2xvcihhcmdjLCBhcmd2LCAmb3B0X2JhY2tncm91bmQsICZvcHRfYmFfY29sb3IsIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJ1bGNvbG9yIikgPT0gMCkKKwkJcGFyX2NvbG9yMihhcmdjLCBhcmd2LCAmb3B0X3VsY29sb3IsICZvcHRfdWxfY29sb3IsIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJoYmNvbG9yIikgPT0gMCkKKwkJcGFyX2NvbG9yMihhcmdjLCBhcmd2LCAmb3B0X2hiY29sb3IsICZvcHRfaGJfY29sb3IsIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJpbnZlcnNlc2NyZWVuIikgPT0gMCkKKwkJcGFyc2Vfc3dpdGNoKGFyZ2MsIGFyZ3YsICZvcHRfaW52ZXJzZXNjcmVlbiwgJm9wdF9pbnZzY19vbiwgYmFkX2FyZyk7CisJZWxzZSBpZiAoU1RSQ01QKG9wdGlvbiwgImJvbGQiKSA9PSAwKQorCQlwYXJzZV9zd2l0Y2goYXJnYywgYXJndiwgJm9wdF9ib2xkLCAmb3B0X2JvX29uLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAiaGFsZi1icmlnaHQiKSA9PSAwKQorCQlwYXJzZV9zd2l0Y2goYXJnYywgYXJndiwgJm9wdF9oYWxmYnJpZ2h0LCAmb3B0X2hiX29uLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAiYmxpbmsiKSA9PSAwKQorCQlwYXJzZV9zd2l0Y2goYXJnYywgYXJndiwgJm9wdF9ibGluaywgJm9wdF9ibF9vbiwgYmFkX2FyZyk7CisJZWxzZSBpZiAoU1RSQ01QKG9wdGlvbiwgInJldmVyc2UiKSA9PSAwKQorCQlwYXJzZV9zd2l0Y2goYXJnYywgYXJndiwgJm9wdF9yZXZlcnNlLCAmb3B0X3JlX29uLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAidW5kZXJsaW5lIikgPT0gMCkKKwkJcGFyc2Vfc3dpdGNoKGFyZ2MsIGFyZ3YsICZvcHRfdW5kZXJsaW5lLCAmb3B0X3VuX29uLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAic3RvcmUiKSA9PSAwKQorCQlwYXJzZV9ub25lKGFyZ2MsIGFyZ3YsICZvcHRfc3RvcmUsIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJjbGVhciIpID09IDApCisJCXBhcnNlX2NsZWFyKGFyZ2MsIGFyZ3YsICZvcHRfY2xlYXIsICZvcHRfY2xfYWxsLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAidGFicyIpID09IDApCisJCXBhcnNlX3RhYnMoYXJnYywgYXJndiwgJm9wdF90YWJzLCBvcHRfdGJfYXJyYXksIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJjbHJ0YWJzIikgPT0gMCkKKwkJcGFyc2VfY2xydGFicyhhcmdjLCBhcmd2LCAmb3B0X2NscnRhYnMsIG9wdF90Yl9hcnJheSwgYmFkX2FyZyk7CisJZWxzZSBpZiAoU1RSQ01QKG9wdGlvbiwgInJlZ3RhYnMiKSA9PSAwKQorCQlwYXJzZV9yZWd0YWJzKGFyZ2MsIGFyZ3YsICZvcHRfcmVndGFicywgJm9wdF9ydF9sZW4sIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJibGFuayIpID09IDApCisJCXBhcnNlX2JsYW5rKGFyZ2MsIGFyZ3YsICZvcHRfYmxhbmssICZvcHRfYmxfbWluLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAiZHVtcCIpID09IDApCisJCXBhcnNlX3NuYXAoYXJnYywgYXJndiwgJm9wdF9zbmFwLCAmb3B0X3NuX251bSwgYmFkX2FyZyk7CisJZWxzZSBpZiAoU1RSQ01QKG9wdGlvbiwgImFwcGVuZCIpID09IDApCisJCXBhcnNlX3NuYXAoYXJnYywgYXJndiwgJm9wdF9hcHBlbmQsICZvcHRfc25fbnVtLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAiZmlsZSIpID09IDApCisJCXBhcnNlX3NuYXBmaWxlKGFyZ2MsIGFyZ3YsICZvcHRfc25hcGZpbGUsIChpbnQgKilvcHRfc25fbmFtZSwgYmFkX2FyZyk7CisJZWxzZSBpZiAoU1RSQ01QKG9wdGlvbiwgIm1zZyIpID09IDApCisJCXBhcnNlX3N3aXRjaChhcmdjLCBhcmd2LCAmb3B0X21zZywgJm9wdF9tc2dfb24sIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJtc2dsZXZlbCIpID09IDApCisJCXBhcnNlX21zZ2xldmVsKGFyZ2MsIGFyZ3YsICZvcHRfbXNnbGV2ZWwsICZvcHRfbXNnbGV2ZWxfbnVtLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAicG93ZXJzYXZlIikgPT0gMCkKKwkJcGFyc2VfcG93ZXJzYXZlKGFyZ2MsIGFyZ3YsICZvcHRfcG93ZXJzYXZlLCAmb3B0X3BzX21vZGUsIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJwb3dlcmRvd24iKSA9PSAwKQorCQlwYXJzZV9ibGFuayhhcmdjLCBhcmd2LCAmb3B0X3Bvd2VyZG93biwgJm9wdF9wZF9taW4sIGJhZF9hcmcpOworCWVsc2UgaWYgKFNUUkNNUChvcHRpb24sICJibGVuZ3RoIikgPT0gMCkKKwkJcGFyc2VfYmxlbmd0aChhcmdjLCBhcmd2LCAmb3B0X2JsZW5ndGgsICZvcHRfYmxlbmd0aF9sLCBiYWRfYXJnKTsKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAiYmZyZXEiKSA9PSAwKQorCQlwYXJzZV9iZnJlcShhcmdjLCBhcmd2LCAmb3B0X2JmcmVxLCAmb3B0X2JmcmVxX2YsIGJhZF9hcmcpOworI2lmIDAKKwllbHNlIGlmIChTVFJDTVAob3B0aW9uLCAic3RhbmRvdXQiKSA9PSAwKQorCQlwYXJzZV9zdGFuZG91dChhcmdjLCBhcmd2LCAmb3B0X3N0YW5kb3V0LCAmb3B0X3N0X2F0dHIsIGJhZF9hcmcpOworI2VuZGlmCisJZWxzZQorCQkqYmFkX2FyZyA9IFRSVUU7Cit9CisKKy8qIEVuZCBvZiBjb21tYW5kIGxpbmUgcGFyc2luZyByb3V0aW5lcy4gKi8KKworc3RhdGljIHZvaWQKK3VzYWdlKGNoYXIgKnByb2dfbmFtZSkgeworLyogUHJpbnQgZXJyb3IgbWVzc2FnZSBhYm91dCBhcmd1bWVudHMsIGFuZCB0aGUgY29tbWFuZCdzIHN5bnRheC4gKi8KKworCWZwcmludGYoc3RkZXJyLCBfKCIlczogQXJndW1lbnQgZXJyb3IsIHVzYWdlXG4iKSwgcHJvZ19uYW1lKTsKKwlmcHJpbnRmKHN0ZGVyciwgIlxuIik7CisJZnByaW50ZihzdGRlcnIsICIlc1xuIiwgcHJvZ19uYW1lKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLXJlc2V0IF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1pbml0aWFsaXplIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIikpOworI2lmIDAKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIpKTsKKyNlbmRpZgorCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iKSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iKSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLWRlZmF1bHQgXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLWJhY2tncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iKSk7CisJZnByaW50ZihzdGRlcnIsIF8oInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iKSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iKSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIpKTsKKyNpZiAwCisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIikpOworI2VuZGlmCisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iKSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iKSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLXN0b3JlIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iKSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iKSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLWFwcGVuZCBbMS1OUl9DT05TT0xFU10gXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1tc2cgW29ufG9mZl0gXVxuIikpOworCWZwcmludGYoc3RkZXJyLCBfKCIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1wb3dlcmRvd24gWzAtNjBdIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIpKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIpKTsKK30KKworc3RhdGljIGNoYXIgKnRpX2VudHJ5KGNvbnN0IGNoYXIgKm5hbWUpIHsKKwkvKiBuYW1lOiBUZXJtaW5mbyBjYXBhYmlsaXR5IHN0cmluZyB0byBsb29rdXAuICovCisKKy8qIFJldHVybiB0aGUgc3BlY2lmaWVkIHRlcm1pbmZvIHN0cmluZywgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIG5vIHN1Y2ggdGVybWluZm8KKyAqIGNhcGFiaWxpdHkgZXhpc3RzLgorICovCisKKwljaGFyICpidWZfcHRyOworCisJaWYgKChidWZfcHRyID0gdGlnZXRzdHIoKGNoYXIgKiluYW1lKSkgPT0gKGNoYXIgKiktMSkKKwkJYnVmX3B0ciA9IE5VTEw7CisJcmV0dXJuIGJ1Zl9wdHI7Cit9CisKK3N0YXRpYyB2b2lkCitwZXJmb3JtX3NlcXVlbmNlKGludCB2Y3Rlcm0pIHsKKwkvKiB2Y3Rlcm06IFNldCBpZiB0ZXJtaW5hbCBpcyBhIHZpcnR1YWwgY29uc29sZS4gKi8KKworCWludCByZXN1bHQ7CisvKiBQZXJmb3JtIHRoZSBzZWxlY3RlZCBvcHRpb25zLiAqLworCisJLyogLXJlc2V0LiAqLworCWlmIChvcHRfcmVzZXQpIHsKKwkJcHV0cCh0aV9lbnRyeSgicnMxIikpOworCX0KKworCS8qIC1pbml0aWFsaXplLiAqLworCWlmIChvcHRfaW5pdGlhbGl6ZSkgeworCQlwdXRwKHRpX2VudHJ5KCJpczIiKSk7CisJfQorCisJLyogLWN1cnNvciBbb258b2ZmXS4gKi8KKwlpZiAob3B0X2N1cnNvcikgeworCQlpZiAob3B0X2N1X29uKQorCQkJcHV0cCh0aV9lbnRyeSgiY25vcm0iKSk7CisJCWVsc2UKKwkJCXB1dHAodGlfZW50cnkoImNpdmlzIikpOworCX0KKworCS8qIC1saW5ld3JhcCBbb258b2ZmXS4gVmMgb25seSAodnQxMDIpICovCisJaWYgKG9wdF9saW5ld3JhcCAmJiB2Y3Rlcm0pIHsKKwkJaWYgKG9wdF9saV9vbikKKwkJCXByaW50ZigiXDAzM1s/N2giKTsKKwkJZWxzZQorCQkJcHJpbnRmKCJcMDMzWz83bCIpOworCX0KKworCS8qIC1yZXBlYXQgW29ufG9mZl0uIFZjIG9ubHkgKHZ0MTAyKSAqLworCWlmIChvcHRfcmVwZWF0ICYmIHZjdGVybSkgeworCQlpZiAob3B0X3JlcF9vbikKKwkJCXByaW50ZigiXDAzM1s/OGgiKTsKKwkJZWxzZQorCQkJcHJpbnRmKCJcMDMzWz84bCIpOworCX0KKworCS8qIC1hcHBjdXJzb3JrZXlzIFtvbnxvZmZdLiBWYyBvbmx5ICh2dDEwMikgKi8KKwlpZiAob3B0X2FwcGN1cnNvcmtleXMgJiYgdmN0ZXJtKSB7CisJCWlmIChvcHRfYXBwY2tfb24pCisJCQlwcmludGYoIlwwMzNbPzFoIik7CisJCWVsc2UKKwkJCXByaW50ZigiXDAzM1s/MWwiKTsKKwl9CisKKyNpZiAwCisJLyogLXNub3cgW29ufG9mZl0uICBWYyBvbmx5LiAqLworCWlmIChvcHRfc25vdyAmJiB2Y3Rlcm0pIHsKKwkJaWYgKG9wdF9zbl9vbikKKwkJCXByaW50ZigiJXMlcyVzIiwgRENTLCAic25vdy5vbiIsIFNUKTsKKwkJZWxzZQorCQkJcHJpbnRmKCIlcyVzJXMiLCBEQ1MsICJzbm93Lm9mZiIsIFNUKTsKKwl9CisKKwkvKiAtc29mdHNjcm9sbCBbb258b2ZmXS4gIFZjIG9ubHkuICovCisJaWYgKG9wdF9zb2Z0c2Nyb2xsICYmIHZjdGVybSkgeworCQlpZiAob3B0X3NvX29uKQorCQkJcHJpbnRmKCIlcyVzJXMiLCBEQ1MsICJzb2Z0c2Nyb2xsLm9uIiwgU1QpOworCQllbHNlCisJCQlwcmludGYoIiVzJXMlcyIsIERDUywgInNvZnRzY3JvbGwub2ZmIiwgU1QpOworCX0KKyNlbmRpZgorCisJLyogLWRlZmF1bHQuICBWYyBzZXRzIGRlZmF1bHQgcmVuZGl0aW9uLCBvdGhlcndpc2UgY2xlYXJzIGFsbAorCSAqIGF0dHJpYnV0ZXMuCisJICovCisJaWYgKG9wdF9kZWZhdWx0KSB7CisJCWlmICh2Y3Rlcm0pCisJCQlwcmludGYoIlwwMzNbMG0iKTsKKwkJZWxzZQorCQkJcHV0cCh0aV9lbnRyeSgic2dyMCIpKTsKKwl9CisKKwkvKiAtZm9yZWdyb3VuZCBibGFja3xyZWR8Z3JlZW58eWVsbG93fGJsdWV8bWFnZW50YXxjeWFufHdoaXRlfGRlZmF1bHQuCisJICogVmMgb25seSAoQU5TSSkuCisJICovCisJaWYgKG9wdF9mb3JlZ3JvdW5kICYmIHZjdGVybSkgeworCQlwcmludGYoIiVzJXMlYyVzIiwgRVNDLCAiWzMiLCAnMCcgKyBvcHRfZm9fY29sb3IsICJtIik7CisJfQorCisJLyogLWJhY2tncm91bmQgYmxhY2t8cmVkfGdyZWVufHllbGxvd3xibHVlfG1hZ2VudGF8Y3lhbnx3aGl0ZXxkZWZhdWx0LgorCSAqIFZjIG9ubHkgKEFOU0kpLgorCSAqLworCWlmIChvcHRfYmFja2dyb3VuZCAmJiB2Y3Rlcm0pIHsKKwkJcHJpbnRmKCIlcyVzJWMlcyIsIEVTQywgIls0IiwgJzAnICsgb3B0X2JhX2NvbG9yLCAibSIpOworCX0KKworCS8qIC11bGNvbG9yIGJsYWNrfHJlZHxncmVlbnx5ZWxsb3d8Ymx1ZXxtYWdlbnRhfGN5YW58d2hpdGV8ZGVmYXVsdC4KKwkgKiBWYyBvbmx5LgorCSAqLworCWlmIChvcHRfdWxjb2xvciAmJiB2Y3Rlcm0pIHsKKwkJcHJpbnRmKCJcMDMzWzE7JWRdIiwgb3B0X3VsX2NvbG9yKTsKKwl9CisKKwkvKiAtaGJjb2xvciBibGFja3xyZWR8Z3JlZW58eWVsbG93fGJsdWV8bWFnZW50YXxjeWFufHdoaXRlfGRlZmF1bHQuCisJICogVmMgb25seS4KKwkgKi8KKwlpZiAob3B0X2hiY29sb3IgJiYgdmN0ZXJtKSB7CisJCXByaW50ZigiXDAzM1syOyVkXSIsIG9wdF9oYl9jb2xvcik7CisJfQorCisJLyogLWludmVyc2VzY3JlZW4gW29ufG9mZl0uICBWYyBvbmx5ICh2dDEwMikuCisJICovCisJaWYgKG9wdF9pbnZlcnNlc2NyZWVuKSB7CisJCWlmICh2Y3Rlcm0pIHsKKwkJCWlmIChvcHRfaW52c2Nfb24pCisJCQkJcHJpbnRmKCJcMDMzWz81aCIpOworCQkJZWxzZQorCQkJCXByaW50ZigiXDAzM1s/NWwiKTsKKwkJfQorCX0KKworCS8qIC1ib2xkIFtvbnxvZmZdLiAgVmMgYmVoYXZlcyBhcyBleHBlY3RlZCwgb3RoZXJ3aXNlIG9mZiB0dXJucyBvZmYKKwkgKiBhbGwgYXR0cmlidXRlcy4KKwkgKi8KKwlpZiAob3B0X2JvbGQpIHsKKwkJaWYgKG9wdF9ib19vbikKKwkJCXB1dHAodGlfZW50cnkoImJvbGQiKSk7CisJCWVsc2UgeworCQkJaWYgKHZjdGVybSkKKwkJCQlwcmludGYoIiVzJXMiLCBFU0MsICJbMjJtIik7CisJCQllbHNlCisJCQkJcHV0cCh0aV9lbnRyeSgic2dyMCIpKTsKKwkJfQorCX0KKworCS8qIC1oYWxmLWJyaWdodCBbb258b2ZmXS4gIFZjIGJlaGF2ZXMgYXMgZXhwZWN0ZWQsIG90aGVyd2lzZSBvZmYgdHVybnMgb2ZmCisJICogYWxsIGF0dHJpYnV0ZXMuCisJICovCisJaWYgKG9wdF9oYWxmYnJpZ2h0KSB7CisJCWlmIChvcHRfaGJfb24pCisJCQlwdXRwKHRpX2VudHJ5KCJkaW0iKSk7CisJCWVsc2UgeworCQkJaWYgKHZjdGVybSkKKwkJCQlwcmludGYoIiVzJXMiLCBFU0MsICJbMjJtIik7CisJCQllbHNlCisJCQkJcHV0cCh0aV9lbnRyeSgic2dyMCIpKTsKKwkJfQorCX0KKworCS8qIC1ibGluayBbb258b2ZmXS4gIFZjIGJlaGF2ZXMgYXMgZXhwZWN0ZWQsIG90aGVyd2lzZSBvZmYgdHVybnMgb2ZmCisJICogYWxsIGF0dHJpYnV0ZXMuCisJICovCisJaWYgKG9wdF9ibGluaykgeworCQlpZiAob3B0X2JsX29uKQorCQkJcHV0cCh0aV9lbnRyeSgiYmxpbmsiKSk7CisJCWVsc2UgeworCQkJaWYgKHZjdGVybSkKKwkJCQlwcmludGYoIiVzJXMiLCBFU0MsICJbMjVtIik7CisJCQllbHNlCisJCQkJcHV0cCh0aV9lbnRyeSgic2dyMCIpKTsKKwkJfQorCX0KKworCS8qIC1yZXZlcnNlIFtvbnxvZmZdLiAgVmMgYmVoYXZlcyBhcyBleHBlY3RlZCwgb3RoZXJ3aXNlIG9mZiB0dXJucworCSAqIG9mZiBhbGwgYXR0cmlidXRlcy4KKwkgKi8KKwlpZiAob3B0X3JldmVyc2UpIHsKKwkJaWYgKG9wdF9yZV9vbikKKwkJCXB1dHAodGlfZW50cnkoInJldiIpKTsKKwkJZWxzZSB7CisJCQlpZiAodmN0ZXJtKQorCQkJCXByaW50ZigiJXMlcyIsIEVTQywgIlsyN20iKTsKKwkJCWVsc2UKKwkJCQlwdXRwKHRpX2VudHJ5KCJzZ3IwIikpOworCQl9CisJfQorCisJLyogLXVuZGVybGluZSBbb258b2ZmXS4gKi8KKwlpZiAob3B0X3VuZGVybGluZSkgeworCQlpZiAob3B0X3VuX29uKQorCQkJcHV0cCh0aV9lbnRyeSgic211bCIpKTsKKwkJZWxzZQorCQkJcHV0cCh0aV9lbnRyeSgicm11bCIpKTsKKwl9CisKKwkvKiAtc3RvcmUuICBWYyBvbmx5LiAqLworCWlmIChvcHRfc3RvcmUgJiYgdmN0ZXJtKSB7CisJCXByaW50ZigiXDAzM1s4XSIpOworCX0KKworCS8qIC1jbGVhciBbYWxsfHJlc3RdLiAqLworCWlmIChvcHRfY2xlYXIpIHsKKwkJaWYgKG9wdF9jbF9hbGwpCisJCQlwdXRwKHRpX2VudHJ5KCJjbGVhciIpKTsKKwkJZWxzZQorCQkJcHV0cCh0aV9lbnRyeSgiZWQiKSk7CisJfQorCisJLyogLXRhYnMgVmMgb25seS4gKi8KKwlpZiAob3B0X3RhYnMgJiYgdmN0ZXJtKSB7CisJCWludCBpOworCisJCWlmIChvcHRfdGJfYXJyYXlbMF0gPT0gLTEpCisJCQlzaG93X3RhYnMoKTsKKwkJZWxzZSB7CisJCQlmb3IoaT0wOyBvcHRfdGJfYXJyYXlbaV0gPiAwOyBpKyspCisJCQkJcHJpbnRmKCJcMDMzWyVkR1wwMzNIIiwgb3B0X3RiX2FycmF5W2ldKTsKKwkJCXB1dGNoYXIoJ1xyJyk7CisJCX0KKwl9CisKKwkvKiAtY2xydGFicyBWYyBvbmx5LiAqLworCWlmIChvcHRfY2xydGFicyAmJiB2Y3Rlcm0pIHsKKwkJaW50IGk7CisKKwkJaWYgKG9wdF90Yl9hcnJheVswXSA9PSAtMSkKKwkJCXByaW50ZigiXDAzM1szZyIpOworCQllbHNlCisJCQlmb3IoaT0wOyBvcHRfdGJfYXJyYXlbaV0gPiAwOyBpKyspCisJCQkJcHJpbnRmKCJcMDMzWyVkR1wwMzNbZyIsIG9wdF90Yl9hcnJheVtpXSk7CisJCXB1dGNoYXIoJ1xyJyk7CisJfQorCisJLyogLXJlZ3RhYnMgVmMgb25seS4gKi8KKwlpZiAob3B0X3JlZ3RhYnMgJiYgdmN0ZXJtKSB7CisJCWludCBpOworCisJCXByaW50ZigiXDAzM1szZ1xyIik7CisJCWZvcihpPW9wdF9ydF9sZW4rMTsgaTw9MTYwOyBpKz1vcHRfcnRfbGVuKQorCQkJcHJpbnRmKCJcMDMzWyVkQ1wwMzNIIixvcHRfcnRfbGVuKTsKKwkJcHV0Y2hhcignXHInKTsKKwl9CisKKwkvKiAtYmxhbmsgWzAtNjBdLiAqLworCWlmIChvcHRfYmxhbmsgJiYgdmN0ZXJtKSB7CisJCWlmIChvcHRfYmxfbWluID49IDApCisJCQlwcmludGYoIlwwMzNbOTslZF0iLCBvcHRfYmxfbWluKTsKKwkJZWxzZSBpZiAob3B0X2JsX21pbiA9PSBCTEFOS1NDUkVFTikgeworCQkJY2hhciBpb2N0bGFyZyA9IFRJT0NMX0JMQU5LU0NSRUVOOworCQkJaWYgKGlvY3RsKDAsVElPQ0xJTlVYLCZpb2N0bGFyZykpCisJCQkJZnByaW50ZihzdGRlcnIsXygiY2Fubm90IGZvcmNlIGJsYW5rXG4iKSk7CisJCX0gZWxzZSBpZiAob3B0X2JsX21pbiA9PSBVTkJMQU5LU0NSRUVOKSB7CisJCQljaGFyIGlvY3RsYXJnID0gVElPQ0xfVU5CTEFOS1NDUkVFTjsKKwkJCWlmIChpb2N0bCgwLFRJT0NMSU5VWCwmaW9jdGxhcmcpKQorCQkJCWZwcmludGYoc3RkZXJyLF8oImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iKSk7CisJCX0gZWxzZSBpZiAob3B0X2JsX21pbiA9PSBCTEFOS0VEU0NSRUVOKSB7CisJCQljaGFyIGlvY3RsYXJnID0gVElPQ0xfQkxBTktFRFNDUkVFTjsKKwkJCWludCByZXQ7CisJCQlyZXQgPSBpb2N0bCgwLFRJT0NMSU5VWCwmaW9jdGxhcmcpOworCQkJaWYgKHJldCA8IDApCisJCQkJZnByaW50ZihzdGRlcnIsXygiY2Fubm90IGdldCBibGFuayBzdGF0dXNcbiIpKTsKKwkJCWVsc2UKKwkJCQlwcmludGYoIiVkXG4iLHJldCk7CisJCX0KKwl9CisKKwkvKiAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSAoY29uc29sZSkgKi8KKwlpZiAob3B0X3Bvd2Vyc2F2ZSkgeworCQljaGFyIGlvY3RsYXJnWzJdOworCQlpb2N0bGFyZ1swXSA9IFRJT0NMX1NFVFZFU0FCTEFOSzsKKwkJaW9jdGxhcmdbMV0gPSBvcHRfcHNfbW9kZTsKKwkJaWYgKGlvY3RsKDAsVElPQ0xJTlVYLGlvY3RsYXJnKSkKKwkJCWZwcmludGYoc3RkZXJyLF8oImNhbm5vdCAodW4pc2V0IHBvd2Vyc2F2ZSBtb2RlXG4iKSk7CisJfQorCisJLyogLXBvd2VyZG93biBbMC02MF0uICovCisJaWYgKG9wdF9wb3dlcmRvd24pIHsKKwkJcHJpbnRmKCJcMDMzWzE0OyVkXSIsIG9wdF9wZF9taW4pOworCX0KKworI2lmIDAKKwkvKiAtc3RhbmRvdXQgW251bV0uICovCisJaWYgKG9wdF9zdGFuZG91dCkKKwkJLyogbm90aGluZyAqLzsKKyNlbmRpZgorCisJLyogLXNuYXAgWzEtTlJfQ09OU10uICovCisJaWYgKG9wdF9zbmFwIHx8IG9wdF9hcHBlbmQpIHsKKwkJRklMRSAqRjsKKworCQlGID0gZm9wZW4ob3B0X3NuX25hbWUsIG9wdF9zbmFwID8gInciIDogImEiKTsKKwkJaWYgKCFGKSB7CisJCQlwZXJyb3Iob3B0X3NuX25hbWUpOworCQkJZnByaW50ZihzdGRlcnIsKCJzZXR0ZXJtOiBjYW4gbm90IG9wZW4gZHVtcCBmaWxlICVzIGZvciBvdXRwdXRcbiIpLAorCQkJCW9wdF9zbl9uYW1lKTsgCisJCQlleGl0KC0xKTsKKwkJfQorCQlzY3JlZW5kdW1wKG9wdF9zbl9udW0sIEYpOworCQlmY2xvc2UoRik7CisJfQorCisJLyogLW1zZyBbb258b2ZmXS4gKi8KKwlpZiAob3B0X21zZyAmJiB2Y3Rlcm0pIHsKKwkJaWYgKG9wdF9tc2dfb24pCisJCQkvKiA3IC0tIEVuYWJsZSBwcmludGsncyB0byBjb25zb2xlICovCisJCQlyZXN1bHQgPSBrbG9nY3RsKDcsIE5VTEwsIDApOworCQllbHNlCisJCQkvKiAgNiAtLSBEaXNhYmxlIHByaW50aydzIHRvIGNvbnNvbGUgKi8KKwkJCXJlc3VsdCA9IGtsb2djdGwoNiwgTlVMTCwgMCk7CisKKwkJaWYgKHJlc3VsdCAhPSAwKQorCQkJcHJpbnRmKF8oImtsb2djdGwgZXJyb3I6ICVzXG4iKSwgc3RyZXJyb3IoZXJybm8pKTsKKwl9CisKKwkvKiAtbXNnbGV2ZWwgWzAtOF0gKi8KKwlpZiAob3B0X21zZ2xldmVsICYmIHZjdGVybSkgeworCQkvKiA4IC0tIFNldCBsZXZlbCBvZiBtZXNzYWdlcyBwcmludGVkIHRvIGNvbnNvbGUgKi8KKwkJcmVzdWx0ID0ga2xvZ2N0bCg4LCBOVUxMLCBvcHRfbXNnbGV2ZWxfbnVtKTsKKwkJaWYgKHJlc3VsdCAhPSAwKQorCQkJcHJpbnRmKF8oImtsb2djdGwgZXJyb3I6ICVzXG4iKSwgc3RyZXJyb3IoZXJybm8pKTsKKwl9CisKKwkvKiAtYmxlbmd0aCBbMC0yMDAwXSAqLworCWlmIChvcHRfYmxlbmd0aCAmJiB2Y3Rlcm0pIHsKKwkJcHJpbnRmKCJcMDMzWzExOyVkXSIsIG9wdF9ibGVuZ3RoX2wpOworCX0KKworCS8qIC1iZnJlcSBmcmVxbnVtYmVyICovCisJaWYgKG9wdF9iZnJlcSAmJiB2Y3Rlcm0pIHsKKwkJcHJpbnRmKCJcMDMzWzEwOyVkXSIsIG9wdF9iZnJlcV9mKTsKKwl9CisKK30KKworc3RhdGljIHZvaWQKK3NjcmVlbmR1bXAoaW50IHZjbnVtLCBGSUxFICpGKSB7CisgICAgY2hhciBpbmZpbGVbTUFYUEFUSExFTl07CisgICAgdW5zaWduZWQgY2hhciBoZWFkZXJbNF07CisgICAgdW5zaWduZWQgaW50IHJvd3MsIGNvbHM7CisgICAgaW50IGZkLCBpLCBqOworICAgIGNoYXIgKmluYnVmLCAqb3V0YnVmLCAqcCwgKnE7CisKKyAgICBzcHJpbnRmKGluZmlsZSwgIi9kZXYvdmNzYSVkIiwgdmNudW0pOworICAgIGZkID0gb3BlbihpbmZpbGUsIE9fUkRPTkxZKTsKKyAgICBpZiAoZmQgPCAwICYmIHZjbnVtID09IDApIHsKKwkvKiB2Y3NhMCBpcyBvZnRlbiBjYWxsZWQgdmNzYSAqLworCXNwcmludGYoaW5maWxlLCAiL2Rldi92Y3NhIik7CisJZmQgPSBvcGVuKGluZmlsZSwgT19SRE9OTFkpOworICAgIH0KKyAgICBpZiAoZmQgPCAwKSB7CisJLyogdHJ5IGRldmZzIG5hbWUgLSBmb3IgemVybyB2Y251bSBqdXN0IC9kZXYvdmNjL2EgKi8KKwkvKiBzb21lIGdjYydzIHdhcm4gZm9yICUudSAtIGFkZCAwICovCisJc3ByaW50ZihpbmZpbGUsICIvZGV2L3ZjYy9hJS4wdSIsIHZjbnVtKTsKKwlmZCA9IG9wZW4oaW5maWxlLCBPX1JET05MWSk7CisgICAgfQorICAgIGlmIChmZCA8IDApIHsKKwlzcHJpbnRmKGluZmlsZSwgIi9kZXYvdmNzYSVkIiwgdmNudW0pOworCWdvdG8gcmVhZF9lcnJvcjsKKyAgICB9CisgICAgaWYgKHJlYWQoZmQsIGhlYWRlciwgNCkgIT0gNCkKKwlnb3RvIHJlYWRfZXJyb3I7CisgICAgcm93cyA9IGhlYWRlclswXTsKKyAgICBjb2xzID0gaGVhZGVyWzFdOworICAgIGlmIChyb3dzICogY29scyA9PSAwKQorICAgICAgICBnb3RvIHJlYWRfZXJyb3I7CisgICAgaW5idWYgPSBtYWxsb2Mocm93cypjb2xzKjIpOworICAgIG91dGJ1ZiA9IG1hbGxvYyhyb3dzKihjb2xzKzEpKTsKKyAgICBpZighaW5idWYgfHwgIW91dGJ1ZikgeworCWZwdXRzKF8oIk91dCBvZiBtZW1vcnkiKSwgc3RkZXJyKTsKKwlnb3RvIGVycm9yOworICAgIH0KKyAgICBpZiAocmVhZChmZCwgaW5idWYsIHJvd3MqY29scyoyKSAhPSByb3dzKmNvbHMqMikKKwkgICAgZ290byByZWFkX2Vycm9yOworICAgIHAgPSBpbmJ1ZjsKKyAgICBxID0gb3V0YnVmOworICAgIGZvcihpPTA7IGk8cm93czsgaSsrKSB7CisJZm9yKGo9MDsgajxjb2xzOyBqKyspIHsKKwkgICAgKnErKyA9ICpwOworCSAgICBwICs9IDI7CisJfQorCXdoaWxlKGotLSA+IDAgJiYgcVstMV0gPT0gJyAnKQorCSAgcS0tOworCSpxKysgPSAnXG4nOworICAgIH0KKyAgICBpZiAoZndyaXRlKG91dGJ1ZiwgMSwgcS1vdXRidWYsIEYpICE9IHEtb3V0YnVmKSB7CisJZnByaW50ZihzdGRlcnIsIF8oIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIikpOworCWdvdG8gZXJyb3I7CisgICAgfQorICAgIGNsb3NlKGZkKTsKKyAgICByZXR1cm47CisKK3JlYWRfZXJyb3I6CisgICAgZnByaW50ZihzdGRlcnIsIF8oIkNvdWxkbid0IHJlYWQgJXNcbiIpLCBpbmZpbGUpOworZXJyb3I6CisgICAgaWYgKGZkID49IDApCisJICAgIGNsb3NlKGZkKTsKKyAgICBleGl0KDEpOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisJaW50IGJhZF9hcmcgPSBGQUxTRTsJCS8qIFNldCBpZiBlcnJvciBpbiBhcmd1bWVudHMuICovCisJaW50IGFyZywgbW9kaWZpZXI7CisJY2hhciAqdGVybTsJCQkvKiBUZXJtaW5hbCB0eXBlLiAqLworCWludCB2Y3Rlcm07CQkJLyogU2V0IGlmIHRlcm1pbmFsIGlzIGEgdmlydHVhbCBjb25zb2xlLiAqLworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWlmIChhcmdjIDwgMikKKwkJYmFkX2FyZyA9IFRSVUU7CisKKwkvKiBQYXJzZSBhcmd1bWVudHMuICovCisKKwlmb3IgKGFyZyA9IDE7IGFyZyA8IGFyZ2M7KSB7CisJCWlmICgqYXJndlthcmddID09ICctJykgeworCisJCQkvKiBQYXJzZSBhIHNpbmdsZSBvcHRpb24uICovCisKKwkJCWZvciAobW9kaWZpZXIgPSBhcmcgKyAxOyBtb2RpZmllciA8IGFyZ2M7IG1vZGlmaWVyKyspIHsKKwkJCQlpZiAoKmFyZ3ZbbW9kaWZpZXJdID09ICctJykgYnJlYWs7CisJCQl9CisJCQlwYXJzZV9vcHRpb24oYXJndlthcmddICsgMSwgbW9kaWZpZXIgLSBhcmcgLSAxLAorCQkJCSAgICAgJmFyZ3ZbYXJnICsgMV0sICZiYWRfYXJnKTsKKwkJCWFyZyA9IG1vZGlmaWVyOworCQl9IGVsc2UgeworCQkJYmFkX2FyZyA9IFRSVUU7CisJCQlhcmcrKzsKKwkJfQorCX0KKworCS8qIERpc3BsYXkgc3ludGF4IG1lc3NhZ2UgaWYgZXJyb3IgaW4gYXJndW1lbnRzLiAqLworCisJaWYgKGJhZF9hcmcpIHsKKwkJdXNhZ2UoYXJndlswXSk7CisJCWV4aXQoMSk7CisJfQorCisJLyogRmluZCBvdXQgdGVybWluYWwgbmFtZS4gKi8KKworCWlmIChvcHRfdGVybSkgeworCQl0ZXJtID0gb3B0X3RlX3Rlcm1pbmFsX25hbWU7CisJfSBlbHNlIHsKKwkJdGVybSA9IGdldGVudigiVEVSTSIpOworCQlpZiAodGVybSA9PSBOVUxMKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6ICRURVJNIGlzIG5vdCBkZWZpbmVkLlxuIiksCisJCQkJYXJndlswXSk7CisJCQlleGl0KDEpOworCQl9CisJfQorCisJLyogRmluZCB0ZXJtaW5mbyBlbnRyeS4gKi8KKworCXNldHVwdGVybSh0ZXJtLCAxLCAoaW50ICopMCk7CisKKwkvKiBTZWUgaWYgdGhlIHRlcm1pbmFsIGlzIGEgdmlydHVhbCBjb25zb2xlIHRlcm1pbmFsLiAqLworCisJdmN0ZXJtID0gKCFzdHJuY21wKHRlcm0sICJjb24iLCAzKSB8fCAhc3RybmNtcCh0ZXJtLCAibGludXgiLCA1KSk7CisKKwkvKiBQZXJmb3JtIHRoZSBzZWxlY3RlZCBvcHRpb25zLiAqLworCisJcGVyZm9ybV9zZXF1ZW5jZSh2Y3Rlcm0pOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3V1aWRkLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3V1aWRkLjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNlNjUwZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvdXVpZGQuOApAQCAtMCwwICsxLDgwIEBACisuXCIgLSotIG5yb2ZmIC0qLQorLlwiIENvcHlyaWdodCAyMDA3IGJ5IFRoZW9kb3JlIFRzJ28uICBBbGwgUmlnaHRzIFJlc2VydmVkLgorLlwiIFRoaXMgZmlsZSBtYXkgYmUgY29waWVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLgorLlwiCisuVEggVVVJREQgOCAiTWF5IDIwMDkiICJMaW51eCIKKy5TSCBOQU1FCit1dWlkZCBcLSBVVUlEIGdlbmVyYXRpb24gZGFlbW9uCisuU0ggU1lOT1BTSVMKKy5CIHV1aWRkCisuUkIgWyBcLWQgXQorLlJCIFsgXC1wCisuSVIgcGlkZmlsZSBdCisuUkIgWyBcLXMKKy5JUiBzb2NrZXRwYXRoIF0KKy5SQiBbIFwtVAorLklSIHRpbWVvdXQgXQorLmJyCisuQiB1dWlkZAorLlJCIFsgXC1yIHwgXC10IF0KKy5SQiBbIFwtbgorLklSIG51bWJlciBdCisuUkIgWyBcLXMKKy5JUiBzb2NrZXRwYXRoIF0KKy5icgorLkIgdXVpZGQgXC1rCisuU0ggREVTQ1JJUFRJT04KK1RoZQorLkIgdXVpZGQKK2RhZW1vbiBpcyB1c2VkIGJ5IHRoZSBVVUlEIGxpYnJhcnkgdG8gZ2VuZXJhdGUKK3VuaXZlcnNhbGx5IHVuaXF1ZSBpZGVudGlmaWVycyAoVVVJRHMpLCBlc3BlY2lhbGx5IHRpbWUtYmFzZWQgVVVJRCdzCitpbiBhIHNlY3VyZSBhbmQgZ3VhcmFudGVlZC11bmlxdWUgZmFzaGlvbiwgZXZlbiBpbiB0aGUgZmFjZSBvZiBsYXJnZQorbnVtYmVycyBvZiB0aHJlYWRzIHRyeWluZyB0byBncmFiIFVVSUQncyBydW5uaW5nIG9uIGRpZmZlcmVudCBDUFUncy4KKy5TSCBPUFRJT05TCisuVFAKKy5CIFwtZAorUnVuCisuQiB1dWlkZAoraW4gZGVidWdnaW5nIG1vZGUuICBUaGlzIHByZXZlbnRzIHV1aWRkIGZyb20gcnVubmluZyBhcyBhIGRhZW1vbi4KKy5UUAorLkIgXC1rCitJZiBhIGN1cnJlbnRseSB1dWlkZCBkYWVtb24gaXMgcnVubmluZywga2lsbCBpdC4KKy5UUAorLkJJIFwtbiAiIG51bWJlciIKK1doZW4gaXNzdWluZyBhIHRlc3QgcmVxdWVzdCB0byBhIHJ1bm5pbmcgdXVpZGQsIHJlcXVlc3QgYSBidWxrIHJlc3BvbnNlCitvZgorLkkgbnVtYmVyCitVVUlEJ3MuCisuVFAKKy5CSSBcLXAgICIgcGlkZmlsZSIKK1NwZWNpZnkgdGhlIHBhdGhuYW1lIHdoZXJlIHRoZSBwaWQgZmlsZSBzaG91bGQgYmUgd3JpdHRlbi4gIEJ5IGRlZmF1bHQsCit0aGUgcGlkIGZpbGUgaXMgd3JpdHRlbiB0byAvdmFyL3J1bi91dWlkZC91dWlkZC5waWQuCisuVFAKKy5CSSBcLXMgIiBzb2NrZXRwYXRoIgorU3BlY2lmeSB0aGUgcGF0aG5hbWUgdXNlZCBmb3IgdGhlIHVuaXgtZG9tYWluIHNvY2tldCB1c2VkIGJ5IHV1aWRkLiAgQnkKK2RlZmF1bHQsIHRoZSBwYXRobmFtZSB1c2VkIGlzIC92YXIvcnVuL3V1aWRkL3JlcXVlc3QuICBUaGlzIGlzIHByaW1hcmlseQorZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcywgc2luY2UgdGhlIHBhdGhuYW1lIGlzIGhhcmQtY29kZWQgaW4gdGhlIGxpYnV1aWQKK2xpYnJhcnkuCisuVFAKKy5CIFwtcgorVGVzdCB1dWlkZCBieSB0cnlpbmcgdG8gY29ubmVjdCB0byBhIHJ1bm5pbmcgdXVpZGQgZGFlbW9uIGFuZAorcmVxdWVzdCBpdCB0byByZXR1cm4gYSByYW5kb20tYmFzZWQgVVVJRC4KKy5UUAorLkIgXC10CitUZXN0IHV1aWRkIGJ5IHRyeWluZyB0byBjb25uZWN0IHRvIGEgcnVubmluZyB1dWlkZCBkYWVtb24gYW5kCityZXF1ZXN0IGl0IHRvIHJldHVybiBhIHRpbWUtYmFzZWQgVVVJRC4KKy5UUAorLkJJIFwtVCAiIHRpbWVvdXQiCitTcGVjaWZ5IGEgdGltZW91dCBmb3IgdXVpZGQuICBJZiBzcGVjaWZpZWQsIHRoZW4gdXVpZGQgd2lsbCBleGl0IGFmdGVyCisuSSB0aW1lb3V0CitzZWNvbmRzIG9mIGluYWN0aXZpdHkuCisuU0ggQVVUSE9SCitUaGUKKy5CIHV1aWRkCitkYWVtb24gIHdhcyB3cml0dGVuIGJ5IFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+LgorLlNIIEFWQUlMQUJJTElUWQordXVpZGQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgorLlNIICJTRUUgQUxTTyIKKy5CUiBsaWJ1dWlkICgzKSwKKy5CUiB1dWlkZ2VuICgxKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy91dWlkZC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy91dWlkZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0YmFiNjkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3V1aWRkLmMKQEAgLTAsMCArMSw1ODggQEAKKy8qCisgKiB1dWlkZC5jIC0tLSBVVUlELWdlbmVyYXRpb24gZGFlbW9uCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3ICBUaGVvZG9yZSBUcydvCisgKgorICogJUJlZ2luLUhlYWRlciUKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBQdWJsaWMKKyAqIExpY2Vuc2UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHN5cy91bi5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaWZkZWYgSEFWRV9HRVRPUFRfSAorI2luY2x1ZGUgPGdldG9wdC5oPgorI2Vsc2UKK2V4dGVybiBpbnQgZ2V0b3B0KGludCBhcmdjLCBjaGFyICogY29uc3QgYXJndltdLCBjb25zdCBjaGFyICpvcHRzdHJpbmcpOworZXh0ZXJuIGNoYXIgKm9wdGFyZzsKK2V4dGVybiBpbnQgb3B0aW5kOworI2VuZGlmCisKKyNpbmNsdWRlICJ1dWlkLmgiCisjaW5jbHVkZSAidXVpZGQuaCIKKworI2luY2x1ZGUgIm5scy5oIgorCisjaWZkZWYgX19HTlVDX18KKyNkZWZpbmUgQ09ERV9BVFRSKHgpIF9fYXR0cmlidXRlX18oeCkKKyNlbHNlCisjZGVmaW5lIENPREVfQVRUUih4KQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQoreworCWZwcmludGYoc3RkZXJyLCBfKCJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdICIKKwkJCSAgIlstVCB0aW1lb3V0XVxuIiksIHByb2duYW1lKTsKKwlmcHJpbnRmKHN0ZGVyciwgXygiICAgICAgICVzIFstcnx0XSBbLW4gbnVtXSBbLXMgc29ja2V0cGF0aF1cbiIpLAorCQlwcm9nbmFtZSk7CisJZnByaW50ZihzdGRlcnIsIF8oIiAgICAgICAlcyAta1xuIiksIHByb2duYW1lKTsKKwlleGl0KDEpOworfQorCitzdGF0aWMgdm9pZCBkaWUoY29uc3QgY2hhciAqbXNnKQoreworCXBlcnJvcihtc2cpOworCWV4aXQoMSk7Cit9CisKK3N0YXRpYyB2b2lkIGNyZWF0ZV9kYWVtb24odm9pZCkKK3sKKwlwaWRfdCBwaWQ7CisJdWlkX3QgZXVpZDsKKworCXBpZCA9IGZvcmsoKTsKKwlpZiAocGlkID09IC0xKSB7CisJCXBlcnJvcigiZm9yayIpOworCQlleGl0KDEpOworCX0gZWxzZSBpZiAocGlkICE9IDApIHsKKwkgICAgZXhpdCgwKTsKKwl9CisKKwljbG9zZSgwKTsKKwljbG9zZSgxKTsKKwljbG9zZSgyKTsKKwlvcGVuKCIvZGV2L251bGwiLCBPX1JEV1IpOworCW9wZW4oIi9kZXYvbnVsbCIsIE9fUkRXUik7CisJb3BlbigiL2Rldi9udWxsIiwgT19SRFdSKTsKKworCWlmIChjaGRpcigiLyIpKSB7fQkvKiBTaWxlbmNlIHdhcm5fdW51c2VkX3Jlc3VsdCB3YXJuaW5nICovCisJKHZvaWQpIHNldHNpZCgpOworCWV1aWQgPSBnZXRldWlkKCk7CisJaWYgKHNldHJldWlkKGV1aWQsIGV1aWQpIDwgMCkKKwkJZGllKCJzZXRyZXVpZCIpOworfQorCitzdGF0aWMgc3NpemVfdCByZWFkX2FsbChpbnQgZmQsIGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQoreworCXNzaXplX3QgcmV0OworCXNzaXplX3QgYyA9IDA7CisJaW50IHRyaWVzID0gMDsKKworCW1lbXNldChidWYsIDAsIGNvdW50KTsKKwl3aGlsZSAoY291bnQgPiAwKSB7CisJCXJldCA9IHJlYWQoZmQsIGJ1ZiwgY291bnQpOworCQlpZiAocmV0IDw9IDApIHsKKwkJCWlmICgoZXJybm8gPT0gRUFHQUlOIHx8IGVycm5vID09IEVJTlRSIHx8IHJldCA9PSAwKSAmJgorCQkJICAgICh0cmllcysrIDwgNSkpCisJCQkJY29udGludWU7CisJCQlyZXR1cm4gYyA/IGMgOiAtMTsKKwkJfQorCQlpZiAocmV0ID4gMCkKKwkJCXRyaWVzID0gMDsKKwkJY291bnQgLT0gcmV0OworCQlidWYgKz0gcmV0OworCQljICs9IHJldDsKKwl9CisJcmV0dXJuIGM7Cit9CisKK3N0YXRpYyBpbnQgd3JpdGVfYWxsKGludCBmZCwgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJc3NpemVfdCByZXQ7CisJaW50IGMgPSAwOworCisJd2hpbGUgKGNvdW50ID4gMCkgeworCQlyZXQgPSB3cml0ZShmZCwgYnVmLCBjb3VudCk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlpZiAoKGVycm5vID09IEVBR0FJTikgfHwgKGVycm5vID09IEVJTlRSKSkKKwkJCQljb250aW51ZTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQljb3VudCAtPSByZXQ7CisJCWJ1ZiArPSByZXQ7CisJCWMgKz0gcmV0OworCX0KKwlyZXR1cm4gYzsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmNsZWFudXBfcGlkZmlsZSwgKmNsZWFudXBfc29ja2V0OworCitzdGF0aWMgdm9pZCB0ZXJtaW5hdGVfaW50cihpbnQgc2lnbm8gQ09ERV9BVFRSKCh1bnVzZWQpKSkKK3sKKwkodm9pZCkgdW5saW5rKGNsZWFudXBfcGlkZmlsZSk7CisJaWYgKGNsZWFudXBfc29ja2V0KQorCQkodm9pZCkgdW5saW5rKGNsZWFudXBfc29ja2V0KTsKKwlleGl0KDApOworfQorCitzdGF0aWMgaW50IGNhbGxfZGFlbW9uKGNvbnN0IGNoYXIgKnNvY2tldF9wYXRoLCBpbnQgb3AsIGNoYXIgKmJ1ZiwKKwkJICAgICAgIGludCBidWZsZW4sIGludCAqbnVtLCBjb25zdCBjaGFyICoqZXJyX2NvbnRleHQpCit7CisJY2hhciBvcF9idWZbOF07CisJaW50IG9wX2xlbjsKKwlpbnQgczsKKwlzc2l6ZV90IHJldDsKKwlpbnQzMl90IHJlcGx5X2xlbiA9IDA7CisJc3RydWN0IHNvY2thZGRyX3VuIHNydl9hZGRyOworCisJaWYgKCgob3AgPT0gNCkgfHwgKG9wID09IDUpKSAmJiAhbnVtKSB7CisJCWlmIChlcnJfY29udGV4dCkKKwkJCSplcnJfY29udGV4dCA9IF8oImJhZCBhcmd1bWVudHMiKTsKKwkJZXJybm8gPSBFSU5WQUw7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAoKHMgPSBzb2NrZXQoQUZfVU5JWCwgU09DS19TVFJFQU0sIDApKSA8IDApIHsKKwkJaWYgKGVycl9jb250ZXh0KQorCQkJKmVycl9jb250ZXh0ID0gXygic29ja2V0Iik7CisJCXJldHVybiAtMTsKKwl9CisKKwlzcnZfYWRkci5zdW5fZmFtaWx5ID0gQUZfVU5JWDsKKwlzdHJuY3B5KHNydl9hZGRyLnN1bl9wYXRoLCBzb2NrZXRfcGF0aCwgc2l6ZW9mKHNydl9hZGRyLnN1bl9wYXRoKSk7CisJc3J2X2FkZHIuc3VuX3BhdGhbc2l6ZW9mKHNydl9hZGRyLnN1bl9wYXRoKS0xXSA9ICdcMCc7CisKKwlpZiAoY29ubmVjdChzLCAoY29uc3Qgc3RydWN0IHNvY2thZGRyICopICZzcnZfYWRkciwKKwkJICAgIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfdW4pKSA8IDApIHsKKwkJaWYgKGVycl9jb250ZXh0KQorCQkJKmVycl9jb250ZXh0ID0gXygiY29ubmVjdCIpOworCQljbG9zZShzKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChvcCA9PSA1KSB7CisJCWlmICgoKm51bSkqMTYgPiBidWZsZW4tNCkKKwkJCSpudW0gPSAoYnVmbGVuLTQpIC8gMTY7CisJfQorCW9wX2J1ZlswXSA9IG9wOworCW9wX2xlbiA9IDE7CisJaWYgKChvcCA9PSA0KSB8fCAob3AgPT0gNSkpIHsKKwkJbWVtY3B5KG9wX2J1ZisxLCBudW0sIHNpemVvZihpbnQpKTsKKwkJb3BfbGVuICs9IHNpemVvZihpbnQpOworCX0KKworCXJldCA9IHdyaXRlX2FsbChzLCBvcF9idWYsIG9wX2xlbik7CisJaWYgKHJldCA8IG9wX2xlbikgeworCQlpZiAoZXJyX2NvbnRleHQpCisJCQkqZXJyX2NvbnRleHQgPSBfKCJ3cml0ZSIpOworCQljbG9zZShzKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldCA9IHJlYWRfYWxsKHMsIChjaGFyICopICZyZXBseV9sZW4sIHNpemVvZihyZXBseV9sZW4pKTsKKwlpZiAocmV0IDwgMCkgeworCQlpZiAoZXJyX2NvbnRleHQpCisJCQkqZXJyX2NvbnRleHQgPSBfKCJyZWFkIGNvdW50Iik7CisJCWNsb3NlKHMpOworCQlyZXR1cm4gLTE7CisJfQorCWlmIChyZXBseV9sZW4gPCAwIHx8IHJlcGx5X2xlbiA+IGJ1ZmxlbikgeworCQlpZiAoZXJyX2NvbnRleHQpCisJCQkqZXJyX2NvbnRleHQgPSBfKCJiYWQgcmVzcG9uc2UgbGVuZ3RoIik7CisJCWNsb3NlKHMpOworCQlyZXR1cm4gLTE7CisJfQorCXJldCA9IHJlYWRfYWxsKHMsIChjaGFyICopIGJ1ZiwgcmVwbHlfbGVuKTsKKworCWlmICgocmV0ID4gMCkgJiYgKG9wID09IDQpKSB7CisJCWlmIChyZXBseV9sZW4gPj0gKGludCkgKDE2K3NpemVvZihpbnQpKSkKKwkJCW1lbWNweShidWYrMTYsIG51bSwgc2l6ZW9mKGludCkpOworCQllbHNlCisJCQkqbnVtID0gLTE7CisJfQorCWlmICgocmV0ID4gMCkgJiYgKG9wID09IDUpKSB7CisJCWlmICgqbnVtID49IChpbnQpIHNpemVvZihpbnQpKQorCQkJbWVtY3B5KGJ1ZiwgbnVtLCBzaXplb2YoaW50KSk7CisJCWVsc2UKKwkJCSpudW0gPSAtMTsKKwl9CisKKwljbG9zZShzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHNlcnZlcl9sb29wKGNvbnN0IGNoYXIgKnNvY2tldF9wYXRoLCBjb25zdCBjaGFyICpwaWRmaWxlX3BhdGgsCisJCQlpbnQgZGVidWcsIGludCB0aW1lb3V0LCBpbnQgcXVpZXQpCit7CisJc3RydWN0IHNvY2thZGRyX3VuCW15X2FkZHIsIGZyb21fYWRkcjsKKwlzdHJ1Y3QgZmxvY2sJCWZsOworCXNvY2tsZW5fdAkJZnJvbWxlbjsKKwlpbnQzMl90CQkJcmVwbHlfbGVuID0gMDsKKwl1dWlkX3QJCQl1dTsKKwltb2RlX3QJCQlzYXZlX3VtYXNrOworCWNoYXIJCQlyZXBseV9idWZbMTAyNF0sICpjcDsKKwljaGFyCQkJb3AsIHN0clszN107CisJaW50CQkJaSwgcywgbnMsIGxlbiwgbnVtOworCWludAkJCWZkX3BpZGZpbGUsIHJldDsKKworCWZkX3BpZGZpbGUgPSBvcGVuKHBpZGZpbGVfcGF0aCwgT19DUkVBVCB8IE9fUkRXUiwgMDY2NCk7CisJaWYgKGZkX3BpZGZpbGUgPCAwKSB7CisJCWlmICghcXVpZXQpCisJCQlmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBvcGVuL2NyZWF0ZSAlczogJXNcbiIsCisJCQkJcGlkZmlsZV9wYXRoLCBzdHJlcnJvcihlcnJubykpOworCQlleGl0KDEpOworCX0KKwljbGVhbnVwX3BpZGZpbGUgPSBwaWRmaWxlX3BhdGg7CisJY2xlYW51cF9zb2NrZXQgPSAwOworCXNpZ25hbChTSUdBTFJNLCB0ZXJtaW5hdGVfaW50cik7CisJYWxhcm0oMzApOworCWZsLmxfdHlwZSA9IEZfV1JMQ0s7CisJZmwubF93aGVuY2UgPSBTRUVLX1NFVDsKKwlmbC5sX3N0YXJ0ID0gMDsKKwlmbC5sX2xlbiA9IDA7CisJZmwubF9waWQgPSAwOworCXdoaWxlIChmY250bChmZF9waWRmaWxlLCBGX1NFVExLVywgJmZsKSA8IDApIHsKKwkJaWYgKChlcnJubyA9PSBFQUdBSU4pIHx8IChlcnJubyA9PSBFSU5UUikpCisJCQljb250aW51ZTsKKwkJaWYgKCFxdWlldCkKKwkJCWZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGxvY2sgJXM6ICVzXG4iLAorCQkJCXBpZGZpbGVfcGF0aCwgc3RyZXJyb3IoZXJybm8pKTsKKwkJZXhpdCgxKTsKKwl9CisJcmV0ID0gY2FsbF9kYWVtb24oc29ja2V0X3BhdGgsIDAsIHJlcGx5X2J1Ziwgc2l6ZW9mKHJlcGx5X2J1ZiksIDAsIDApOworCWlmIChyZXQgPiAwKSB7CisJCWlmICghcXVpZXQpCisJCQlwcmludGYoXygidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIpLAorCQkJICAgICAgIHJlcGx5X2J1Zik7CisJCWV4aXQoMSk7CisJfQorCWFsYXJtKDApOworCisJaWYgKChzID0gc29ja2V0KEFGX1VOSVgsIFNPQ0tfU1RSRUFNLCAwKSkgPCAwKSB7CisJCWlmICghcXVpZXQpCisJCQlmcHJpbnRmKHN0ZGVyciwgXygiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtICIKKwkJCQkJICAic29ja2V0OiAlcyIpLCBzdHJlcnJvcihlcnJubykpOworCQlleGl0KDEpOworCX0KKworCS8qCisJICogTWFrZSBzdXJlIHRoZSBzb2NrZXQgaXNuJ3QgdXNpbmcgZmQgbnVtYmVycyAwLTIgdG8gYXZvaWQgaXQKKwkgKiBnZXR0aW5nIGNsb3NlZCBieSBjcmVhdGVfZGFlbW9uKCkKKwkgKi8KKwl3aGlsZSAoIWRlYnVnICYmIHMgPD0gMikgeworCQlzID0gZHVwKHMpOworCQlpZiAocyA8IDApIHsKKwkJCXBlcnJvcigiZHVwIik7CisJCQlleGl0KDEpOworCQl9CisJfQorCisJLyoKKwkgKiBDcmVhdGUgdGhlIGFkZHJlc3Mgd2Ugd2lsbCBiZSBiaW5kaW5nIHRvLgorCSAqLworCW15X2FkZHIuc3VuX2ZhbWlseSA9IEFGX1VOSVg7CisJc3RybmNweShteV9hZGRyLnN1bl9wYXRoLCBzb2NrZXRfcGF0aCwgc2l6ZW9mKG15X2FkZHIuc3VuX3BhdGgpKTsKKwlteV9hZGRyLnN1bl9wYXRoW3NpemVvZihteV9hZGRyLnN1bl9wYXRoKS0xXSA9ICdcMCc7CisJKHZvaWQpIHVubGluayhzb2NrZXRfcGF0aCk7CisJc2F2ZV91bWFzayA9IHVtYXNrKDApOworCWlmIChiaW5kKHMsIChjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKikgJm15X2FkZHIsCisJCSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX3VuKSkgPCAwKSB7CisJCWlmICghcXVpZXQpCisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCJDb3VsZG4ndCBiaW5kIHVuaXggc29ja2V0ICVzOiAlc1xuIiksCisJCQkJc29ja2V0X3BhdGgsIHN0cmVycm9yKGVycm5vKSk7CisJCWV4aXQoMSk7CisJfQorCSh2b2lkKSB1bWFzayhzYXZlX3VtYXNrKTsKKworCWlmIChsaXN0ZW4ocywgNSkgPCAwKSB7CisJCWlmICghcXVpZXQpCisJCQlmcHJpbnRmKHN0ZGVyciwgXygiQ291bGRuJ3QgbGlzdGVuIG9uIHVuaXggIgorCQkJCQkgICJzb2NrZXQgJXM6ICVzXG4iKSwgc29ja2V0X3BhdGgsCisJCQkJc3RyZXJyb3IoZXJybm8pKTsKKwkJZXhpdCgxKTsKKwl9CisKKwljbGVhbnVwX3NvY2tldCA9IHNvY2tldF9wYXRoOworCWlmICghZGVidWcpCisJCWNyZWF0ZV9kYWVtb24oKTsKKwlzaWduYWwoU0lHSFVQLCB0ZXJtaW5hdGVfaW50cik7CisJc2lnbmFsKFNJR0lOVCwgdGVybWluYXRlX2ludHIpOworCXNpZ25hbChTSUdURVJNLCB0ZXJtaW5hdGVfaW50cik7CisJc2lnbmFsKFNJR0FMUk0sIHRlcm1pbmF0ZV9pbnRyKTsKKwlzaWduYWwoU0lHUElQRSwgU0lHX0lHTik7CisKKwlzcHJpbnRmKHJlcGx5X2J1ZiwgIiU4ZFxuIiwgZ2V0cGlkKCkpOworCWlmIChmdHJ1bmNhdGUoZmRfcGlkZmlsZSwgMCkpIHt9IC8qIFNpbGVuY2Ugd2Fybl91bnVzZWRfcmVzdWx0ICovCisJd3JpdGVfYWxsKGZkX3BpZGZpbGUsIHJlcGx5X2J1Ziwgc3RybGVuKHJlcGx5X2J1ZikpOworCWlmIChmZF9waWRmaWxlID4gMSkKKwkJY2xvc2UoZmRfcGlkZmlsZSk7IC8qIFVubG9jayB0aGUgcGlkIGZpbGUgKi8KKworCXdoaWxlICgxKSB7CisJCWZyb21sZW4gPSBzaXplb2YoZnJvbV9hZGRyKTsKKwkJaWYgKHRpbWVvdXQgPiAwKQorCQkJYWxhcm0odGltZW91dCk7CisJCW5zID0gYWNjZXB0KHMsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmZyb21fYWRkciwgJmZyb21sZW4pOworCQlhbGFybSgwKTsKKwkJaWYgKG5zIDwgMCkgeworCQkJaWYgKChlcnJubyA9PSBFQUdBSU4pIHx8IChlcnJubyA9PSBFSU5UUikpCisJCQkJY29udGludWU7CisJCQlwZXJyb3IoImFjY2VwdCIpOworCQkJZXhpdCgxKTsKKwkJfQorCQlsZW4gPSByZWFkKG5zLCAmb3AsIDEpOworCQlpZiAobGVuICE9IDEpIHsKKwkJCWlmIChsZW4gPCAwKQorCQkJCXBlcnJvcigicmVhZCIpOworCQkJZWxzZQorCQkJCXByaW50ZihfKCJFcnJvciByZWFkaW5nIGZyb20gY2xpZW50LCAiCisJCQkJCSAibGVuID0gJWRcbiIpLCBsZW4pOworCQkJZ290byBzaHV0ZG93bl9zb2NrZXQ7CisJCX0KKwkJaWYgKChvcCA9PSA0KSB8fCAob3AgPT0gNSkpIHsKKwkJCWlmIChyZWFkX2FsbChucywgKGNoYXIgKikgJm51bSwgc2l6ZW9mKG51bSkpICE9IDQpCisJCQkJZ290byBzaHV0ZG93bl9zb2NrZXQ7CisJCQlpZiAoZGVidWcpCisJCQkJcHJpbnRmKF8oIm9wZXJhdGlvbiAlZCwgaW5jb21pbmcgbnVtID0gJWRcbiIpLAorCQkJCSAgICAgICBvcCwgbnVtKTsKKwkJfSBlbHNlIGlmIChkZWJ1ZykKKwkJCXByaW50Zigib3BlcmF0aW9uICVkXG4iLCBvcCk7CisKKwkJc3dpdGNoKG9wKSB7CisJCWNhc2UgVVVJRERfT1BfR0VUUElEOgorCQkJc3ByaW50ZihyZXBseV9idWYsICIlZCIsIGdldHBpZCgpKTsKKwkJCXJlcGx5X2xlbiA9IHN0cmxlbihyZXBseV9idWYpKzE7CisJCQlicmVhazsKKwkJY2FzZSBVVUlERF9PUF9HRVRfTUFYT1A6CisJCQlzcHJpbnRmKHJlcGx5X2J1ZiwgIiVkIiwgVVVJRERfTUFYX09QKTsKKwkJCXJlcGx5X2xlbiA9IHN0cmxlbihyZXBseV9idWYpKzE7CisJCQlicmVhazsKKwkJY2FzZSBVVUlERF9PUF9USU1FX1VVSUQ6CisJCQludW0gPSAxOworCQkJdXVpZF9fZ2VuZXJhdGVfdGltZSh1dSwgJm51bSk7CisJCQlpZiAoZGVidWcpIHsKKwkJCQl1dWlkX3VucGFyc2UodXUsIHN0cik7CisJCQkJcHJpbnRmKF8oIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iKSwgc3RyKTsKKwkJCX0KKwkJCW1lbWNweShyZXBseV9idWYsIHV1LCBzaXplb2YodXUpKTsKKwkJCXJlcGx5X2xlbiA9IHNpemVvZih1dSk7CisJCQlicmVhazsKKwkJY2FzZSBVVUlERF9PUF9SQU5ET01fVVVJRDoKKwkJCW51bSA9IDE7CisJCQl1dWlkX19nZW5lcmF0ZV9yYW5kb20odXUsICZudW0pOworCQkJaWYgKGRlYnVnKSB7CisJCQkJdXVpZF91bnBhcnNlKHV1LCBzdHIpOworCQkJCXByaW50ZihfKCJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iKSwgc3RyKTsKKwkJCX0KKwkJCW1lbWNweShyZXBseV9idWYsIHV1LCBzaXplb2YodXUpKTsKKwkJCXJlcGx5X2xlbiA9IHNpemVvZih1dSk7CisJCQlicmVhazsKKwkJY2FzZSBVVUlERF9PUF9CVUxLX1RJTUVfVVVJRDoKKwkJCXV1aWRfX2dlbmVyYXRlX3RpbWUodXUsICZudW0pOworCQkJaWYgKGRlYnVnKSB7CisJCQkJdXVpZF91bnBhcnNlKHV1LCBzdHIpOworCQkJCXByaW50ZihfKCJHZW5lcmF0ZWQgdGltZSBVVUlEICVzIGFuZCAlZCAiCisJCQkJCSAiZm9sbG93aW5nXG4iKSwgc3RyLCBudW0pOworCQkJfQorCQkJbWVtY3B5KHJlcGx5X2J1ZiwgdXUsIHNpemVvZih1dSkpOworCQkJcmVwbHlfbGVuID0gc2l6ZW9mKHV1KTsKKwkJCW1lbWNweShyZXBseV9idWYrcmVwbHlfbGVuLCAmbnVtLCBzaXplb2YobnVtKSk7CisJCQlyZXBseV9sZW4gKz0gc2l6ZW9mKG51bSk7CisJCQlicmVhazsKKwkJY2FzZSBVVUlERF9PUF9CVUxLX1JBTkRPTV9VVUlEOgorCQkJaWYgKG51bSA8IDApCisJCQkJbnVtID0gMTsKKwkJCWlmIChudW0gPiAxMDAwKQorCQkJCW51bSA9IDEwMDA7CisJCQlpZiAobnVtKjE2ID4gKGludCkgKHNpemVvZihyZXBseV9idWYpLXNpemVvZihudW0pKSkKKwkJCQludW0gPSAoc2l6ZW9mKHJlcGx5X2J1Ziktc2l6ZW9mKG51bSkpIC8gMTY7CisJCQl1dWlkX19nZW5lcmF0ZV9yYW5kb20oKHVuc2lnbmVkIGNoYXIgKikgcmVwbHlfYnVmICsKKwkJCQkJICAgICAgc2l6ZW9mKG51bSksICZudW0pOworCQkJaWYgKGRlYnVnKSB7CisJCQkJcHJpbnRmKF8oIkdlbmVyYXRlZCAlZCBVVUlEJ3M6XG4iKSwgbnVtKTsKKwkJCQlmb3IgKGk9MCwgY3A9cmVwbHlfYnVmK3NpemVvZihudW0pOworCQkJCSAgICAgaSA8IG51bTsgaSsrLCBjcCs9MTYpIHsKKwkJCQkJdXVpZF91bnBhcnNlKCh1bnNpZ25lZCBjaGFyICopY3AsIHN0cik7CisJCQkJCXByaW50ZigiXHQlc1xuIiwgc3RyKTsKKwkJCQl9CisJCQl9CisJCQlyZXBseV9sZW4gPSAobnVtKjE2KSArIHNpemVvZihudW0pOworCQkJbWVtY3B5KHJlcGx5X2J1ZiwgJm51bSwgc2l6ZW9mKG51bSkpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlpZiAoZGVidWcpCisJCQkJcHJpbnRmKF8oIkludmFsaWQgb3BlcmF0aW9uICVkXG4iKSwgb3ApOworCQkJZ290byBzaHV0ZG93bl9zb2NrZXQ7CisJCX0KKwkJd3JpdGVfYWxsKG5zLCAoY2hhciAqKSAmcmVwbHlfbGVuLCBzaXplb2YocmVwbHlfbGVuKSk7CisJCXdyaXRlX2FsbChucywgcmVwbHlfYnVmLCByZXBseV9sZW4pOworCXNodXRkb3duX3NvY2tldDoKKwkJY2xvc2UobnMpOworCX0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWNvbnN0IGNoYXIJKnNvY2tldF9wYXRoID0gVVVJRERfU09DS0VUX1BBVEg7CisJY29uc3QgY2hhcgkqcGlkZmlsZV9wYXRoID0gVVVJRERfUElERklMRV9QQVRIOworCWNvbnN0IGNoYXIJKmVycl9jb250ZXh0OworCWNoYXIJCWJ1ZlsxMDI0XSwgKmNwOworCWNoYXIJCXN0clszN10sICp0bXA7CisJdXVpZF90CQl1dTsKKwl1aWRfdAkJdWlkOworCWdpZF90CQlnaWQ7CisJaW50CQlpLCBjLCByZXQ7CisJaW50CQlkZWJ1ZyA9IDAsIGRvX3R5cGUgPSAwLCBkb19raWxsID0gMCwgbnVtID0gMDsKKwlpbnQJCXRpbWVvdXQgPSAwLCBxdWlldCA9IDAsIGRyb3BfcHJpdnMgPSAwOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCXdoaWxlICgoYyA9IGdldG9wdCAoYXJnYywgYXJndiwgImRrbjpxcDpzOnRUOnIiKSkgIT0gRU9GKSB7CisJCXN3aXRjaCAoYykgeworCQljYXNlICdkJzoKKwkJCWRlYnVnKys7CisJCQlkcm9wX3ByaXZzID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdrJzoKKwkJCWRvX2tpbGwrKzsKKwkJCWRyb3BfcHJpdnMgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ24nOgorCQkJbnVtID0gc3RydG9sKG9wdGFyZywgJnRtcCwgMCk7CisJCQlpZiAoKG51bSA8IDApIHx8ICp0bXApIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgXygiQmFkIG51bWJlcjogJXNcbiIpLCBvcHRhcmcpOworCQkJCWV4aXQoMSk7CisJCQl9CisJCWNhc2UgJ3AnOgorCQkJcGlkZmlsZV9wYXRoID0gb3B0YXJnOworCQkJZHJvcF9wcml2cyA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAncSc6CisJCQlxdWlldCsrOworCQkJYnJlYWs7CisJCWNhc2UgJ3MnOgorCQkJc29ja2V0X3BhdGggPSBvcHRhcmc7CisJCQlkcm9wX3ByaXZzID0gMTsKKwkJCWJyZWFrOworCQljYXNlICd0JzoKKwkJCWRvX3R5cGUgPSBVVUlERF9PUF9USU1FX1VVSUQ7CisJCQlkcm9wX3ByaXZzID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdUJzoKKwkJCXRpbWVvdXQgPSBzdHJ0b2wob3B0YXJnLCAmdG1wLCAwKTsKKwkJCWlmICgodGltZW91dCA8IDApIHx8ICp0bXApIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgXygiQmFkIG51bWJlcjogJXNcbiIpLCBvcHRhcmcpOworCQkJCWV4aXQoMSk7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSAncic6CisJCQlkb190eXBlID0gVVVJRERfT1BfUkFORE9NX1VVSUQ7CisJCQlkcm9wX3ByaXZzID0gMTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJdXNhZ2UoYXJndlswXSk7CisJCX0KKwl9CisJdWlkID0gZ2V0dWlkKCk7CisJaWYgKHVpZCAmJiBkcm9wX3ByaXZzKSB7CisJCWdpZCA9IGdldGdpZCgpOworI2lmZGVmIEhBVkVfU0VUUkVTR0lECisJCWlmIChzZXRyZXNnaWQoZ2lkLCBnaWQsIGdpZCkgPCAwKQorCQkJZGllKCJzZXRyZXNnaWQiKTsKKyNlbHNlCisJCWlmIChzZXRyZWdpZChnaWQsIGdpZCkgPCAwKQorCQkJZGllKCJzZXRyZWdpZCIpOworI2VuZGlmCisKKyNpZmRlZiBIQVZFX1NFVFJFU1VJRAorCQlpZiAoc2V0cmVzdWlkKHVpZCwgdWlkLCB1aWQpIDwgMCkKKwkJCWRpZSgic2V0cmVzdWlkIik7CisjZWxzZQorCQlpZiAoc2V0cmV1aWQodWlkLCB1aWQpIDwgMCkKKwkJCWRpZSgic2V0cmV1aWQiKTsKKyNlbmRpZgorCX0KKwlpZiAobnVtICYmIGRvX3R5cGUpIHsKKwkJcmV0ID0gY2FsbF9kYWVtb24oc29ja2V0X3BhdGgsIGRvX3R5cGUrMiwgYnVmLAorCQkJCSAgc2l6ZW9mKGJ1ZiksICZudW0sICZlcnJfY29udGV4dCk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlwcmludGYoXygiRXJyb3IgY2FsbGluZyB1dWlkZCBkYWVtb24gKCVzKTogJXNcbiIpLAorCQkJICAgICAgIGVycl9jb250ZXh0LCBzdHJlcnJvcihlcnJubykpOworCQkJZXhpdCgxKTsKKwkJfQorCQlpZiAoZG9fdHlwZSA9PSBVVUlERF9PUF9USU1FX1VVSUQpIHsKKwkJCWlmIChyZXQgIT0gc2l6ZW9mKHV1KSArIHNpemVvZihudW0pKQorCQkJCWdvdG8gdW5leHBlY3RlZF9zaXplOworCisJCQl1dWlkX3VucGFyc2UoKHVuc2lnbmVkIGNoYXIgKikgYnVmLCBzdHIpOworCisJCQlwcmludGYoXygiJXMgYW5kIHN1YnNlcXVlbnQgJWQgVVVJRCdzXG4iKSwgc3RyLCBudW0pOworCQl9IGVsc2UgeworCQkJcHJpbnRmKF8oIkxpc3Qgb2YgVVVJRCdzOlxuIikpOworCQkJY3AgPSBidWYgKyA0OworCQkJaWYgKHJldCAhPSAoaW50KSAoc2l6ZW9mKG51bSkgKyBudW0qc2l6ZW9mKHV1KSkpCisJCQkJZ290byB1bmV4cGVjdGVkX3NpemU7CisJCQlmb3IgKGk9MDsgaSA8IG51bTsgaSsrLCBjcCs9MTYpIHsKKwkJCQl1dWlkX3VucGFyc2UoKHVuc2lnbmVkIGNoYXIgKikgY3AsIHN0cik7CisJCQkJcHJpbnRmKCJcdCVzXG4iLCBzdHIpOworCQkJfQorCQl9CisJCWV4aXQoMCk7CisJfQorCWlmIChkb190eXBlKSB7CisJCXJldCA9IGNhbGxfZGFlbW9uKHNvY2tldF9wYXRoLCBkb190eXBlLCAoY2hhciAqKSAmdXUsCisJCQkJICBzaXplb2YodXUpLCAwLCAmZXJyX2NvbnRleHQpOworCQlpZiAocmV0IDwgMCkgeworCQkJcHJpbnRmKF8oIkVycm9yIGNhbGxpbmcgdXVpZGQgZGFlbW9uICglcyk6ICVzXG4iKSwKKwkJCSAgICAgICBlcnJfY29udGV4dCwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJaWYgKHJldCAhPSBzaXplb2YodXUpKSB7CisJCXVuZXhwZWN0ZWRfc2l6ZToKKwkJCXByaW50ZihfKCJVbmV4cGVjdGVkIHJlcGx5IGxlbmd0aCBmcm9tIHNlcnZlciAlZFxuIiksCisJCQkgICAgICAgcmV0KTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJdXVpZF91bnBhcnNlKHV1LCBzdHIpOworCisJCXByaW50ZigiJXNcbiIsIHN0cik7CisJCWV4aXQoMCk7CisJfQorCisJaWYgKGRvX2tpbGwpIHsKKwkJcmV0ID0gY2FsbF9kYWVtb24oc29ja2V0X3BhdGgsIDAsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDAsIDApOworCQlpZiAoKHJldCA+IDApICYmICgoZG9fa2lsbCA9IGF0b2koKGNoYXIgKikgYnVmKSkgPiAwKSkgeworCQkJcmV0ID0ga2lsbChkb19raWxsLCBTSUdURVJNKTsKKwkJCWlmIChyZXQgPCAwKSB7CisJCQkJaWYgKCFxdWlldCkKKwkJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJCQlfKCJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgIgorCQkJCQkJICAiYXQgcGlkICVkOiAlc1xuIiksIGRvX2tpbGwsCisJCQkJCQlzdHJlcnJvcihlcnJubykpOworCQkJCWV4aXQoMSk7CisJCQl9CisJCQlpZiAoIXF1aWV0KQorCQkJCXByaW50ZihfKCJLaWxsZWQgdXVpZGQgcnVubmluZyBhdCBwaWQgJWRcbiIpLAorCQkJCSAgICAgICBkb19raWxsKTsKKwkJfQorCQlleGl0KDApOworCX0KKworCXNlcnZlcl9sb29wKHNvY2tldF9wYXRoLCBwaWRmaWxlX3BhdGgsIGRlYnVnLCB0aW1lb3V0LCBxdWlldCk7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3V1aWRkLnJjIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy91dWlkZC5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmRkNWY1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy91dWlkZC5yYwpAQCAtMCwwICsxLDcxIEBACisjISAvYmluL3NoIC1lCisjIyMgQkVHSU4gSU5JVCBJTkZPCisjIFByb3ZpZGVzOiAgICAgICAgICB1dWlkZAorIyBSZXF1aXJlZC1TdGFydDogICAgJHRpbWUgJGxvY2FsX2ZzCisjIFJlcXVpcmVkLVN0b3A6ICAgICAkdGltZSAkbG9jYWxfZnMKKyMgRGVmYXVsdC1TdGFydDogICAgIDIgMyA0IDUKKyMgRGVmYXVsdC1TdG9wOiAgICAgIDAgMSA2CisjIFNob3J0LURlc2NyaXB0aW9uOiB1dWlkZCBkYWVtb24KKyMgRGVzY3JpcHRpb246ICAgICAgIEluaXQgc2NyaXB0IGZvciB0aGUgdXVpZCBnZW5lcmF0aW9uIGRhZW1vbgorIyMjIEVORCBJTklUIElORk8KKyMKKyMgQXV0aG9yOgkiVGhlb2RvcmUgVHMnbyIgPHR5dHNvQG1pdC5lZHU+CisjCitzZXQgLWUKKworIyBsaWJ1dWlkIGlzIGFibGUgdG8gZXhlY3V0ZSB0aGUgdXVpZCBkYWVtb24gb24tZGVtYW5kIC0tIGluIHN1Y2ggYSBjYXNlCisjIHRoZSBkYWVtb24gYmluYXJ5IG11c3QgYmUgc2V0dWlkIHRvIGFuIHVucHJpdmlsZWdlZCB1c2VyIChlLmcuIHV1aWRkOnV1aWRkKS4KKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWy0tIGt6YWsgSnVuIDIwMDldCitVVUlERF9PTl9ERU1BTkRfT05MWT0ibm8iCisKK1BBVEg9L2JpbjovdXNyL2Jpbjovc2JpbjovdXNyL3NiaW4KK0RBRU1PTj0vdXNyL3NiaW4vdXVpZGQKK1VVSUREX1VTRVI9dXVpZGQKK1VVSUREX0dST1VQPXV1aWRkCitVVUlERF9ESVI9L3Zhci9ydW4vdXVpZGQKK1BJREZJTEU9JFVVSUREX0RJUi91dWlkZC5waWQKKwordGVzdCAteCAkREFFTU9OIHx8IGV4aXQgMAorCisuIC9saWIvbHNiL2luaXQtZnVuY3Rpb25zCisKK2Nhc2UgIiQxIiBpbgorICBzdGFydCkKKwlsb2dfZGFlbW9uX21zZyAiU3RhcnRpbmcgdXVpZCBnZW5lcmF0b3IiICJ1dWlkZCIKKwlpZiAhIHRlc3QgLWQgJFVVSUREX0RJUjsgdGhlbgorCQlta2RpciAtcCAkVVVJRERfRElSCisJCWNob3duIC1SICRVVUlERF9VU0VSOiRVVUlERF9HUk9VUCAkVVVJRERfRElSCisJZmkKKwlpZiB0ZXN0ICIkVVVJRERfT05fREVNQU5EX09OTFkiID0geWVzOyB0aGVuCisJCWVjaG8gLW4gIihvbiBkZW1hbmQgb25seSkiCisJZWxzZQorCQlzdGFydF9kYWVtb24gLXAgJFBJREZJTEUgJERBRU1PTgorCWZpCisJbG9nX2VuZF9tc2cgJD8KKyAgICA7OworICBzdG9wKQorCWxvZ19kYWVtb25fbXNnICJTdG9wcGluZyB1dWlkZCBnZW5lcmF0b3IiICJ1dWlkZCIKKwlraWxscHJvYyAtcCAkUElERklMRSAkREFFTU9OCisJbG9nX2VuZF9tc2cgJD8KKyAgICA7OworICBzdGF0dXMpCisJaWYgcGlkb2Zwcm9jIC1wICRQSURGSUxFICREQUVNT04gPiYgL2Rldi9udWxsIDsgdGhlbgorCSAgICBlY2hvICIkREFFTU9OIGlzIHJ1bm5pbmciOworCSAgICBleGl0IDA7CisJZWxzZQorCSAgICBlY2hvICIkREFFTU9OIGlzIE5PVCBydW5uaW5nIjsKKwkgICAgaWYgdGVzdCAtZiAkUElERklMRTsgdGhlbiBleGl0IDI7IGZpCisJICAgIGV4aXQgMzsKKwlmaQorICAgIDs7CisgIGZvcmNlLXJlbG9hZHxyZXN0YXJ0KQorICAgICQwIHN0b3AKKyAgICAkMCBzdGFydAorICAgIDs7CisgICopCisgICAgZWNobyAiVXNhZ2U6IC9ldGMvaW5pdC5kL3V1aWRkIHtzdGFydHxzdG9wfHJlc3RhcnR8Zm9yY2UtcmVsb2FkfSIKKyAgICBleGl0IDEKKyAgICA7OworZXNhYworCitleGl0IDAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvdXVpZGdlbi4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy91dWlkZ2VuLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThlMzNkZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvdXVpZGdlbi4xCkBAIC0wLDAgKzEsNTggQEAKKy5cIiBDb3B5cmlnaHQgMTk5OSBBbmRyZWFzIERpbGdlciAoYWRpbGdlckBlbmVsLnVjYWxnYXJ5LmNhKQorLlwiCisuXCIgVGhpcyBtYW4gcGFnZSB3YXMgY3JlYXRlZCBmb3IgbGlidXVpZC5zby4xLjEgZnJvbSBlMmZzcHJvZ3MtMS4xNC4KKy5cIgorLlwiIFRoaXMgZmlsZSBtYXkgYmUgY29waWVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLgorLlwiCisuXCIgQ3JlYXRlZCAgV2VkIE1hciAxMCAxNzo0MjoxMiAxOTk5LCBBbmRyZWFzIERpbGdlcgorLlRIIFVVSURHRU4gMSAiTWF5IDIwMDkiICJMaW51eCIKKy5TSCBOQU1FCit1dWlkZ2VuIFwtIGNvbW1hbmRcLWxpbmUgdXRpbGl0eSB0byBjcmVhdGUgYSBuZXcgVVVJRCB2YWx1ZQorLlNIIFNZTk9QU0lTCisuQiB1dWlkZ2VuCisuUkIgWyBcLXIgfCBcLXQgXQorLlNIIERFU0NSSVBUSU9OCitUaGUKKy5CIHV1aWRnZW4KK3Byb2dyYW0gY3JlYXRlcyAoYW5kIHByaW50cykKK2EgbmV3IHVuaXZlcnNhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIChVVUlEKSB1c2luZyB0aGUKKy5CUiBsaWJ1dWlkICgzKQorbGlicmFyeS4gIFRoZSBuZXcgVVVJRCBjYW4gcmVhc29uYWJseSBiZSBjb25zaWRlcmVkIHVuaXF1ZSBhbW9uZworYWxsIFVVSURzIGNyZWF0ZWQgb24gdGhlIGxvY2FsIHN5c3RlbSwKK2FuZCBhbW9uZyBVVUlEcyBjcmVhdGVkIG9uIG90aGVyIHN5c3RlbXMgaW4gdGhlIHBhc3QKK2FuZCBpbiB0aGUgZnV0dXJlLgorLlBQCitUaGVyZSBhcmUgdHdvIHR5cGVzIG9mIFVVSUQncyB3aGljaAorLkIgdXVpZGdlbgorY2FuIGdlbmVyYXRlOiB0aW1lLWJhc2VkIFVVSUQncyBhbmQgcmFuZG9tLWJhc2VkIFVVSUQncy4gIEJ5CitkZWZhdWx0CisuQiB1dWlkZ2VuCit3aWxsIGdlbmVyYXRlIGEgcmFuZG9tLWJhc2VkIFVVSUQgaWYgYSBoaWdoLXF1YWxpdHkgcmFuZG9tIG51bWJlcgorZ2VuZXJhdG9yIGlzIHByZXNlbnQuICBPdGhlcndpc2UsIGl0IHdpbGwgY2hvc2UgYSB0aW1lLWJhc2VkIFVVSUQuICBJdAoraXMgcG9zc2libGUgdG8gZm9yY2UgdGhlIGdlbmVyYXRpb24gb2Ygb25lIG9mIHRoZXNlIHR3bworVVVJRCB0eXBlcyBieSB1c2luZyB0aGUKKy5CIFwtcgorb3IKKy5CIFwtdAorb3B0aW9ucy4KKy5TSCBPUFRJT05TCisuVFAKKy5CIFwtcgorR2VuZXJhdGUgYSByYW5kb20tYmFzZWQgVVVJRC4gIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBVVUlEIGNvbnNpc3RpbmcgbW9zdGx5CitvZiByYW5kb20gYml0cy4gIEl0IHJlcXVpcmVzIHRoYXQgdGhlIG9wZXJhdGluZyBzeXN0ZW0gaGF2ZSBhIGhpZ2gKK3F1YWxpdHkgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IsIHN1Y2ggYXMKKy5JUiAvZGV2L3JhbmRvbSAuCisuVFAKKy5CIFwtdAorR2VuZXJhdGUgYSB0aW1lLWJhc2VkIFVVSUQuICBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgVVVJRCBiYXNlZCBvbiB0aGUgc3lzdGVtCitjbG9jayBwbHVzIHRoZSBzeXN0ZW0ncyBldGhlcm5ldCBoYXJkd2FyZSBhZGRyZXNzLCBpZiBwcmVzZW50LgorLlNIICJDT05GT1JNSU5HIFRPIgorT1NGIERDRSAxLjEKKy5TSCBBVVRIT1IKKy5CIHV1aWRnZW4KK3dhcyB3cml0dGVuIGJ5IEFuZHJlYXMgRGlsZ2VyIGZvciBsaWJ1dWlkLgorLlNIIEFWQUlMQUJJTElUWQorVGhlIHV1aWRnZW4gY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisuU0ggIlNFRSBBTFNPIgorLkJSIGxpYnV1aWQgKDMpCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3V1aWRnZW4uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvdXVpZGdlbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjZjZlYzkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3V1aWRnZW4uYwpAQCAtMCwwICsxLDc3IEBACisvKgorICogZ2VuX3V1aWQuYyAtLS0gZ2VuZXJhdGUgYSBEQ0UtY29tcGF0aWJsZSB1dWlkCisgKgorICogQ29weXJpZ2h0IChDKSAxOTk5LCBBbmRyZWFzIERpbGdlciBhbmQgVGhlb2RvcmUgVHMnbworICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgUHVibGljCisgKiBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9HRVRPUFRfSAorI2luY2x1ZGUgPGdldG9wdC5oPgorI2Vsc2UKK2V4dGVybiBpbnQgZ2V0b3B0KGludCBhcmdjLCBjaGFyICogY29uc3QgYXJndltdLCBjb25zdCBjaGFyICpvcHRzdHJpbmcpOworZXh0ZXJuIGNoYXIgKm9wdGFyZzsKK2V4dGVybiBpbnQgb3B0aW5kOworI2VuZGlmCisKKyNpbmNsdWRlICJ1dWlkLmgiCisjaW5jbHVkZSAibmxzLmgiCisKKyNkZWZpbmUgRE9fVFlQRV9USU1FCTEKKyNkZWZpbmUgRE9fVFlQRV9SQU5ET00JMgorCitzdGF0aWMgdm9pZCB1c2FnZShjb25zdCBjaGFyICpwcm9nbmFtZSkKK3sKKwlmcHJpbnRmKHN0ZGVyciwgXygiVXNhZ2U6ICVzIFstcl0gWy10XVxuIiksIHByb2duYW1lKTsKKwlleGl0KDEpOworfQorCitpbnQKK21haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJaW50ICAgIGM7CisJaW50ICAgIGRvX3R5cGUgPSAwOworCWNoYXIgICBzdHJbMzddOworCXV1aWRfdCB1dTsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwl3aGlsZSAoKGMgPSBnZXRvcHQgKGFyZ2MsIGFyZ3YsICJ0ciIpKSAhPSBFT0YpCisJCXN3aXRjaCAoYykgeworCQljYXNlICd0JzoKKwkJCWRvX3R5cGUgPSBET19UWVBFX1RJTUU7CisJCQlicmVhazsKKwkJY2FzZSAncic6CisJCQlkb190eXBlID0gRE9fVFlQRV9SQU5ET007CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXVzYWdlKGFyZ3ZbMF0pOworCQl9CisKKwlzd2l0Y2ggKGRvX3R5cGUpIHsKKwljYXNlIERPX1RZUEVfVElNRToKKwkJdXVpZF9nZW5lcmF0ZV90aW1lKHV1KTsKKwkJYnJlYWs7CisJY2FzZSBET19UWVBFX1JBTkRPTToKKwkJdXVpZF9nZW5lcmF0ZV9yYW5kb20odXUpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQl1dWlkX2dlbmVyYXRlKHV1KTsKKwkJYnJlYWs7CisJfQorCisJdXVpZF91bnBhcnNlKHV1LCBzdHIpOworCisJcHJpbnRmKCIlc1xuIiwgc3RyKTsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy93aGVyZWlzLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3doZXJlaXMuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTM0OTFiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy93aGVyZWlzLjEKQEAgLTAsMCArMSwxNTAgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5ODAsIDE5OTAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKy5cIiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLlwiCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLlwiIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorLlwiICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKy5cIiAgICAgVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorLlwiICAgICBDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKy5cIiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorLlwiICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKy5cIiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy5cIiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorLlwiIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorLlwiIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisuXCIgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKy5cIiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKy5cIiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLlwiIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKy5cIiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisuXCIgU1VDSCBEQU1BR0UuCisuXCIKKy5cIiBAKCMpd2hlcmVpcy4xIGZyb20gVUNCIDQuMgorLlRIIFdIRVJFSVMgMSAiOCBNYXkgMTk5NCIKKy5TSCBOQU1FCit3aGVyZWlzIFwtIGxvY2F0ZSB0aGUgYmluYXJ5LCBzb3VyY2UsIGFuZCBtYW51YWwgcGFnZSBmaWxlcyBmb3IgYSBjb21tYW5kCisuU0ggU1lOT1BTSVMKKy5CIHdoZXJlaXMKKy5SQiBbIFwtYm1zdSBdCisuUkIgWyBcLUJNUworLklSIGRpcmVjdG9yeSAuLi4KKy5CUiBcLWYgXQorLklSIGZpbGVuYW1lIC4uLgorLklYICAid2hlcmVpcyBjb21tYW5kIiAgIiIgICJcZkx3aGVyZWlzXGZQIFwoZW0gZmluZCBwcm9ncmFtIgorLklYICBmaW5kICJwcm9ncmFtIFwoZW0gXGZMd2hlcmVpc1xmUCIKKy5JWCAgImxvY2F0ZSBwcm9ncmFtIiAgIiIgICAibG9jYXRlIHByb2dyYW0gXChlbSBcZkx3aGVyZWlzXGZQIgorLklYICBjb21tYW5kICBsb2NhdGUgICIiICAgImxvY2F0ZSBcKGVtIFxmTHdoZXJlaXNcZlAiCisuU0ggREVTQ1JJUFRJT04KKy5CIHdoZXJlaXMKK2xvY2F0ZXMgc291cmNlL2JpbmFyeSBhbmQgbWFudWFscyBzZWN0aW9ucyBmb3Igc3BlY2lmaWVkCitmaWxlcy4KK1RoZSBzdXBwbGllZCBuYW1lcyBhcmUgZmlyc3Qgc3RyaXBwZWQgb2YgbGVhZGluZyBwYXRobmFtZSBjb21wb25lbnRzCithbmQgYW55IChzaW5nbGUpIHRyYWlsaW5nIGV4dGVuc2lvbiBvZiB0aGUgZm9ybQorLkJJIC4gZXh0XGZSLFxmUAorZm9yIGV4YW1wbGUsCisuQlIgLmMgLgorUHJlZml4ZXMgb2YKKy5CIHMuCityZXN1bHRpbmcgZnJvbSB1c2Ugb2Ygc291cmNlIGNvZGUgY29udHJvbCBhcmUgYWxzbyBkZWFsdCB3aXRoLgorLkIgd2hlcmVpcwordGhlbiBhdHRlbXB0cyB0byBsb2NhdGUgdGhlIGRlc2lyZWQgcHJvZ3JhbSBpbgorYSBsaXN0IG9mIHN0YW5kYXJkIExpbnV4IHBsYWNlcy4KKy5TSCBPUFRJT05TCisuVFAKKy5CIFwtYgorU2VhcmNoIG9ubHkgZm9yIGJpbmFyaWVzLgorLlRQCisuQiBcLW0KK1NlYXJjaCBvbmx5IGZvciBtYW51YWwgc2VjdGlvbnMuCisuVFAKKy5CIFwtcworU2VhcmNoIG9ubHkgZm9yIHNvdXJjZXMuCisuVFAKKy5CIFwtdQorU2VhcmNoIGZvciB1bnVzdWFsIGVudHJpZXMuICBBIGZpbGUgaXMgc2FpZCB0byBiZSB1bnVzdWFsIGlmIGl0IGRvZXMKK25vdCBoYXZlIG9uZSBlbnRyeSBvZiBlYWNoIHJlcXVlc3RlZCB0eXBlLgorVGh1cworLlJCIGAgIndoZXJlaXNcIFwgXC1tXCBcIFwtdVwgXCAqIiAnCithc2tzIGZvciB0aG9zZSBmaWxlcyBpbiB0aGUgY3VycmVudAorZGlyZWN0b3J5IHdoaWNoIGhhdmUgbm8gZG9jdW1lbnRhdGlvbi4KKy5UUAorLkIgXC1CCitDaGFuZ2Ugb3Igb3RoZXJ3aXNlIGxpbWl0IHRoZSBwbGFjZXMgd2hlcmUKKy5CIHdoZXJlaXMKK3NlYXJjaGVzIGZvciBiaW5hcmllcy4KKy5UUAorLkIgXC1NCitDaGFuZ2Ugb3Igb3RoZXJ3aXNlIGxpbWl0IHRoZSBwbGFjZXMgd2hlcmUKKy5CIHdoZXJlaXMKK3NlYXJjaGVzIGZvcgorbWFudWFsIHNlY3Rpb25zLgorLlRQCisuQiBcLVMKK0NoYW5nZSBvciBvdGhlcndpc2UgbGltaXQgdGhlIHBsYWNlcyB3aGVyZQorLkIgd2hlcmVpcworc2VhcmNoZXMgZm9yIHNvdXJjZXMuCisuVFAKKy5CIFwtZgorVGVybWluYXRlIHRoZSBsYXN0IGRpcmVjdG9yeSBsaXN0IGFuZCBzaWduYWxzIHRoZSBzdGFydCBvZiBmaWxlIG5hbWVzLAorYW5kCisuSSBtdXN0CitiZSB1c2VkIHdoZW4gYW55IG9mIHRoZQorLkJSIFwtQiAsCisuQlIgXC1NICwKK29yCisuQiBcLVMKK29wdGlvbnMgYXJlIHVzZWQuCisuU0ggRVhBTVBMRQorRmluZCBhbGwgZmlsZXMgaW4KKy5CIC91c3IvYmluCit3aGljaCBhcmUgbm90IGRvY3VtZW50ZWQKK2luCisuQiAvdXNyL21hbi9tYW4xCit3aXRoIHNvdXJjZSBpbgorLkJSIC91c3Ivc3JjIDoKKy5JUAorLm5mCisuZnQgQgorZXhhbXBsZSUgY2QgL3Vzci9iaW4KK2V4YW1wbGUlIHdoZXJlaXMgXC11IFwtTSAvdXNyL21hbi9tYW4xIFwtUyAvdXNyL3NyYyBcLWYgKgorLmZpCisuZnQgUgorLlNIIEZJTEVTCisuVFAgMjAKKy5CIC97YmluLHNiaW4sZXRjfQorLlRQCisuQiAvdXNyL3tsaWIsYmluLG9sZCxuZXcsbG9jYWwsZ2FtZXMsaW5jbHVkZSxldGMsc3JjLG1hbixzYmluLAorLkIgWDM4NixUZVgsZysrLWluY2x1ZGV9CisuVFAKKy5CIC91c3IvbG9jYWwve1gzODYsVGVYLFgxMSxpbmNsdWRlLGxpYixtYW4sZXRjLGJpbixnYW1lcyxlbWFjc30KKy5TSCAiU0VFIEFMU08iCisuQlIgY2hkaXIgKDJWKQorLlNIIEJVR1MKK1NpbmNlCisuQiB3aGVyZWlzCit1c2VzCisuQlIgY2hkaXIgKDJWKQordG8gcnVuIGZhc3RlciwgcGF0aG5hbWVzIGdpdmVuIHdpdGggdGhlCisuQlIgXC1NICwKKy5CUiBcLVMgLAorb3IKKy5CIFwtQgorbXVzdCBiZSBmdWxsOyB0aGF0IGlzLCB0aGV5IG11c3QgYmVnaW4gd2l0aCBhCisuUkIgYCAvICcuCisuUFAKKy5CIHdoZXJlaXMKK2hhcyBhIGhhcmQtY29kZWQgcGF0aCwgc28gbWF5IG5vdCBhbHdheXMgZmluZCB3aGF0Cit5b3UncmUgbG9va2luZyBmb3IuCisuU0ggQVZBSUxBQklMSVRZCitUaGUgd2hlcmVpcyBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvd2hlcmVpcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy93aGVyZWlzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMxZmY3NwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvd2hlcmVpcy5jCkBAIC0wLDAgKzEsMzk4IEBACisvKi0KKyAqIENvcHlyaWdodCAoYykgMTk4MCBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKy8qICo6YWViICovCisKKy8qIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICovCisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGRpcmVudC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlICJubHMuaCIKKwordm9pZCB6ZXJvZih2b2lkKTsKK3ZvaWQgZ2V0bGlzdChpbnQgKiwgY2hhciAqKiosIGNoYXIgKioqLCBpbnQgKik7Cit2b2lkIGxvb2t1cChjaGFyICopOwordm9pZCBsb29rc3JjKGNoYXIgKik7Cit2b2lkIGxvb2tiaW4oY2hhciAqKTsKK3ZvaWQgbG9va21hbihjaGFyICopOwordm9pZCBmaW5kdihjaGFyICoqLCBpbnQsIGNoYXIgKik7Cit2b2lkIGZpbmQoY2hhciAqKiwgY2hhciAqKTsKK3ZvaWQgZmluZGluKGNoYXIgKiwgY2hhciAqKTsKK2ludCBpdHNpdChjaGFyICosIGNoYXIgKik7CisKK3N0YXRpYyBjaGFyICpiaW5kaXJzW10gPSB7CisgICAiL2JpbiIsCisgICAiL3Vzci9iaW4iLAorICAgIi9zYmluIiwKKyAgICIvdXNyL3NiaW4iLAorICAgIi9ldGMiLAorICAgIi91c3IvZXRjIiwKKyAgICIvbGliIiwKKyAgICIvdXNyL2xpYiIsCisgICAiL2xpYjY0IiwKKyAgICIvdXNyL2xpYjY0IiwKKyAgICIvdXNyL2dhbWVzIiwKKyAgICIvdXNyL2dhbWVzL2JpbiIsCisgICAiL3Vzci9nYW1lcy9saWIiLAorICAgIi91c3IvZW1hY3MvZXRjIiwKKyAgICIvdXNyL2xpYi9lbWFjcy8qL2V0YyIsCisgICAiL3Vzci9UZVgvYmluIiwKKyAgICIvdXNyL3RleC9iaW4iLAorICAgIi91c3IvaW50ZXJ2aWV3cy9iaW4vTElOVVgiLAorCisgICAiL3Vzci9YMTFSNi9iaW4iLAorICAgIi91c3IvWDM4Ni9iaW4iLAorICAgIi91c3IvYmluL1gxMSIsCisgICAiL3Vzci9YMTEvYmluIiwKKyAgICIvdXNyL1gxMVI1L2JpbiIsCisKKyAgICIvdXNyL2xvY2FsL2JpbiIsCisgICAiL3Vzci9sb2NhbC9zYmluIiwKKyAgICIvdXNyL2xvY2FsL2V0YyIsCisgICAiL3Vzci9sb2NhbC9saWIiLAorICAgIi91c3IvbG9jYWwvZ2FtZXMiLAorICAgIi91c3IvbG9jYWwvZ2FtZXMvYmluIiwKKyAgICIvdXNyL2xvY2FsL2VtYWNzL2V0YyIsCisgICAiL3Vzci9sb2NhbC9UZVgvYmluIiwKKyAgICIvdXNyL2xvY2FsL3RleC9iaW4iLAorICAgIi91c3IvbG9jYWwvYmluL1gxMSIsCisKKyAgICIvdXNyL2NvbnRyaWIiLAorICAgIi91c3IvaG9zdHMiLAorICAgIi91c3IvaW5jbHVkZSIsCisKKyAgICIvdXNyL2crKy1pbmNsdWRlIiwKKworICAgIi91c3IvdWNiIiwKKyAgICIvdXNyL29sZCIsCisgICAiL3Vzci9uZXciLAorICAgIi91c3IvbG9jYWwiLAorICAgIi91c3IvbGliZXhlYyIsCisgICAiL3Vzci9zaGFyZSIsCisKKyAgICIvb3B0LyovYmluIiwKKworCTAKK307CisKK3N0YXRpYyBjaGFyICptYW5kaXJzW10gPSB7CisJIi91c3IvbWFuLyoiLAorCSIvdXNyL3NoYXJlL21hbi8qIiwKKwkiL3Vzci9YMzg2L21hbi8qIiwKKwkiL3Vzci9YMTEvbWFuLyoiLAorCSIvdXNyL1RlWC9tYW4vKiIsCisJIi91c3IvaW50ZXJ2aWV3cy9tYW4vbWFubiIsCisJMAorfTsKKworc3RhdGljIGNoYXIgKnNyY2RpcnNbXSAgPSB7CisJIi91c3Ivc3JjLyoiLAorCSIvdXNyL3NyYy9saWIvbGliYy8qIiwKKwkiL3Vzci9zcmMvbGliL2xpYmMvbmV0LyoiLAorCSIvdXNyL3NyYy91Y2IvcGFzY2FsIiwKKwkiL3Vzci9zcmMvdWNiL3Bhc2NhbC91dGlsaXRpZXMiLAorCSIvdXNyL3NyYy91bmRvYyIsCisJMAorfTsKKworY2hhcglzZmxhZyA9IDE7CitjaGFyCWJmbGFnID0gMTsKK2NoYXIJbWZsYWcgPSAxOworY2hhcgkqKlNmbGFnOworaW50CVNjbnQ7CitjaGFyCSoqQmZsYWc7CitpbnQJQmNudDsKK2NoYXIJKipNZmxhZzsKK2ludAlNY250OworY2hhcgl1ZmxhZzsKKy8qCisgKiB3aGVyZWlzIG5hbWUKKyAqIGxvb2sgZm9yIHNvdXJjZSwgZG9jdW1lbnRhdGlvbiBhbmQgYmluYXJpZXMKKyAqLworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlhcmdjLS0sIGFyZ3YrKzsKKwlpZiAoYXJnYyA9PSAwKSB7Cit1c2FnZToKKwkJZnByaW50ZihzdGRlcnIsIF8oIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBkaXIgLi4uIC1mIF0gbmFtZS4uLlxuIikpOworCQlleGl0KDEpOworCX0KKwlkbworCQlpZiAoYXJndlswXVswXSA9PSAnLScpIHsKKwkJCXJlZ2lzdGVyIGNoYXIgKmNwID0gYXJndlswXSArIDE7CisJCQl3aGlsZSAoKmNwKSBzd2l0Y2ggKCpjcCsrKSB7CisKKwkJCWNhc2UgJ2YnOgorCQkJCWJyZWFrOworCisJCQljYXNlICdTJzoKKwkJCQlnZXRsaXN0KCZhcmdjLCAmYXJndiwgJlNmbGFnLCAmU2NudCk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgJ0InOgorCQkJCWdldGxpc3QoJmFyZ2MsICZhcmd2LCAmQmZsYWcsICZCY250KTsKKwkJCQlicmVhazsKKworCQkJY2FzZSAnTSc6CisJCQkJZ2V0bGlzdCgmYXJnYywgJmFyZ3YsICZNZmxhZywgJk1jbnQpOworCQkJCWJyZWFrOworCisJCQljYXNlICdzJzoKKwkJCQl6ZXJvZigpOworCQkJCXNmbGFnKys7CisJCQkJY29udGludWU7CisKKwkJCWNhc2UgJ3UnOgorCQkJCXVmbGFnKys7CisJCQkJY29udGludWU7CisKKwkJCWNhc2UgJ2InOgorCQkJCXplcm9mKCk7CisJCQkJYmZsYWcrKzsKKwkJCQljb250aW51ZTsKKworCQkJY2FzZSAnbSc6CisJCQkJemVyb2YoKTsKKwkJCQltZmxhZysrOworCQkJCWNvbnRpbnVlOworCisJCQlkZWZhdWx0OgorCQkJCWdvdG8gdXNhZ2U7CisJCQl9CisJCQlhcmd2Kys7CisJCX0gZWxzZQorCQkJbG9va3VwKCphcmd2KyspOworCXdoaWxlICgtLWFyZ2MgPiAwKTsKKwlyZXR1cm4gMDsKK30KKwordm9pZAorZ2V0bGlzdChpbnQgKmFyZ2NwLCBjaGFyICoqKmFyZ3ZwLCBjaGFyICoqKmZsYWdwLCBpbnQgKmNudHApIHsKKwkoKmFyZ3ZwKSsrOworCSpmbGFncCA9ICphcmd2cDsKKwkqY250cCA9IDA7CisJZm9yICgoKmFyZ2NwKS0tOyAqYXJnY3AgPiAwICYmICgqYXJndnApWzBdWzBdICE9ICctJzsgKCphcmdjcCktLSkKKwkJKCpjbnRwKSsrLCAoKmFyZ3ZwKSsrOworCSgqYXJnY3ApKys7CisJKCphcmd2cCktLTsKK30KKworCit2b2lkCit6ZXJvZigpCit7CisJaWYgKHNmbGFnICYmIGJmbGFnICYmIG1mbGFnKQorCQlzZmxhZyA9IGJmbGFnID0gbWZsYWcgPSAwOworfQorCitpbnQJY291bnQ7CitpbnQJcHJpbnQ7CisKK3ZvaWQKK2xvb2t1cChjaGFyICpjcCkgeworCXJlZ2lzdGVyIGNoYXIgKmRwOworCisJZm9yIChkcCA9IGNwOyAqZHA7IGRwKyspCisJCWNvbnRpbnVlOworCWZvciAoOyBkcCA+IGNwOyBkcC0tKSB7CisJCWlmICgqZHAgPT0gJy4nKSB7CisJCQkqZHAgPSAwOworCQkJYnJlYWs7CisJCX0KKwl9CisJZm9yIChkcCA9IGNwOyAqZHA7IGRwKyspCisJCWlmICgqZHAgPT0gJy8nKQorCQkJY3AgPSBkcCArIDE7CisJaWYgKHVmbGFnKSB7CisJCXByaW50ID0gMDsKKwkJY291bnQgPSAwOworCX0gZWxzZQorCQlwcmludCA9IDE7CithZ2FpbjoKKwlpZiAocHJpbnQpCisJCXByaW50ZigiJXM6IiwgY3ApOworCWlmIChzZmxhZykgeworCQlsb29rc3JjKGNwKTsKKwkJaWYgKHVmbGFnICYmIHByaW50ID09IDAgJiYgY291bnQgIT0gMSkgeworCQkJcHJpbnQgPSAxOworCQkJZ290byBhZ2FpbjsKKwkJfQorCX0KKwljb3VudCA9IDA7CisJaWYgKGJmbGFnKSB7CisJCWxvb2tiaW4oY3ApOworCQlpZiAodWZsYWcgJiYgcHJpbnQgPT0gMCAmJiBjb3VudCAhPSAxKSB7CisJCQlwcmludCA9IDE7CisJCQlnb3RvIGFnYWluOworCQl9CisJfQorCWNvdW50ID0gMDsKKwlpZiAobWZsYWcpIHsKKwkJbG9va21hbihjcCk7CisJCWlmICh1ZmxhZyAmJiBwcmludCA9PSAwICYmIGNvdW50ICE9IDEpIHsKKwkJCXByaW50ID0gMTsKKwkJCWdvdG8gYWdhaW47CisJCX0KKwl9CisJaWYgKHByaW50KQorCQlwcmludGYoIlxuIik7Cit9CisKK3ZvaWQKK2xvb2tzcmMoY2hhciAqY3ApIHsKKwlpZiAoU2ZsYWcgPT0gMCkgeworCQlmaW5kKHNyY2RpcnMsIGNwKTsKKwl9IGVsc2UKKwkJZmluZHYoU2ZsYWcsIFNjbnQsIGNwKTsKK30KKwordm9pZAorbG9va2JpbihjaGFyICpjcCkgeworCWlmIChCZmxhZyA9PSAwKQorCQlmaW5kKGJpbmRpcnMsIGNwKTsKKwllbHNlCisJCWZpbmR2KEJmbGFnLCBCY250LCBjcCk7Cit9CisKK3ZvaWQKK2xvb2ttYW4oY2hhciAqY3ApIHsKKwlpZiAoTWZsYWcgPT0gMCkgeworCQlmaW5kKG1hbmRpcnMsIGNwKTsKKwl9IGVsc2UKKwkJZmluZHYoTWZsYWcsIE1jbnQsIGNwKTsKK30KKwordm9pZAorZmluZHYoY2hhciAqKmRpcnYsIGludCBkaXJjLCBjaGFyICpjcCkgeworCXdoaWxlIChkaXJjID4gMCkKKwkJZmluZGluKCpkaXJ2KyssIGNwKSwgZGlyYy0tOworfQorCit2b2lkCitmaW5kKGNoYXIgKipkaXJzLCBjaGFyICpjcCkgeworCXdoaWxlICgqZGlycykKKwkJZmluZGluKCpkaXJzKyssIGNwKTsKK30KKwordm9pZAorZmluZGluKGNoYXIgKmRpciwgY2hhciAqY3ApIHsKKwlESVIgKmRpcnA7CisJc3RydWN0IGRpcmVudCAqZHA7CisJY2hhciAqZCwgKmRkOworCWludCBsOworCWNoYXIgZGlyYnVmWzEwMjRdOworCXN0cnVjdCBzdGF0IHN0YXRidWY7CisKKwlkZCA9IHN0cmNocihkaXIsICcqJyk7CisJaWYgKCFkZCkKKwkJZ290byBub2dsb2I7CisKKwlsID0gc3RybGVuKGRpcik7CisJaWYgKGwgPCBzaXplb2YoZGlyYnVmKSkgewkvKiByZWZ1c2UgZXhjZXNzaXZlbHkgbG9uZyBuYW1lcyAqLworCQlzdHJjcHkgKGRpcmJ1ZiwgZGlyKTsKKwkJZCA9IHN0cmNocihkaXJidWYsICcqJyk7CisJCSpkID0gMDsKKwkJZGlycCA9IG9wZW5kaXIoZGlyYnVmKTsKKwkJaWYgKGRpcnAgPT0gTlVMTCkKKwkJCXJldHVybjsKKwkJd2hpbGUgKChkcCA9IHJlYWRkaXIoZGlycCkpICE9IE5VTEwpIHsKKwkJCWlmICghc3RyY21wKGRwLT5kX25hbWUsICIuIikgfHwKKwkJCSAgICAhc3RyY21wKGRwLT5kX25hbWUsICIuLiIpKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKHN0cmxlbihkcC0+ZF9uYW1lKSArIGwgPiBzaXplb2YoZGlyYnVmKSkKKwkJCQljb250aW51ZTsKKwkJCXNwcmludGYoZCwgIiVzIiwgZHAtPmRfbmFtZSk7CisJCQlpZiAoc3RhdChkaXJidWYsICZzdGF0YnVmKSkKKwkJCQljb250aW51ZTsKKwkJCWlmICghU19JU0RJUihzdGF0YnVmLnN0X21vZGUpKQorCQkJCWNvbnRpbnVlOworCQkJc3RyY2F0KGQsIGRkKzEpOworCQkJZmluZGluKGRpcmJ1ZiwgY3ApOworCQl9CisJCWNsb3NlZGlyKGRpcnApOworCX0KKwlyZXR1cm47CisKKyAgICBub2dsb2I6CisJZGlycCA9IG9wZW5kaXIoZGlyKTsKKwlpZiAoZGlycCA9PSBOVUxMKQorCQlyZXR1cm47CisJd2hpbGUgKChkcCA9IHJlYWRkaXIoZGlycCkpICE9IE5VTEwpIHsKKwkJaWYgKGl0c2l0KGNwLCBkcC0+ZF9uYW1lKSkgeworCQkJY291bnQrKzsKKwkJCWlmIChwcmludCkKKwkJCQlwcmludGYoIiAlcy8lcyIsIGRpciwgZHAtPmRfbmFtZSk7CisJCX0KKwl9CisJY2xvc2VkaXIoZGlycCk7Cit9CisKK2ludAoraXRzaXQoY2hhciAqY3AsIGNoYXIgKmRwKSB7CisJaW50IGkgPSBzdHJsZW4oZHApOworCisJaWYgKGRwWzBdID09ICdzJyAmJiBkcFsxXSA9PSAnLicgJiYgaXRzaXQoY3AsIGRwKzIpKQorCQlyZXR1cm4gKDEpOworCWlmICghc3RyY21wKGRwK2ktMiwgIi5aIikpCisJCWkgLT0gMjsKKwllbHNlIGlmICghc3RyY21wKGRwK2ktMywgIi5neiIpKQorCQlpIC09IDM7CisJZWxzZSBpZiAoIXN0cmNtcChkcCtpLTQsICIuYnoyIikpCisJCWkgLT0gNDsKKwl3aGlsZSAoKmNwICYmICpkcCAmJiAqY3AgPT0gKmRwKQorCQljcCsrLCBkcCsrLCBpLS07CisJaWYgKCpjcCA9PSAwICYmICpkcCA9PSAwKQorCQlyZXR1cm4gKDEpOworCXdoaWxlIChpc2RpZ2l0KCpkcCkpCisJCWRwKys7CisJaWYgKCpjcCA9PSAwICYmICpkcCsrID09ICcuJykgeworCQktLWk7CisJCXdoaWxlIChpID4gMCAmJiAqZHApCisJCQlpZiAoLS1pLCAqZHArKyA9PSAnLicpCisJCQkJcmV0dXJuICgqZHArKyA9PSAnQycgJiYgKmRwKysgPT0gMCk7CisJCXJldHVybiAoMSk7CisJfQorCXJldHVybiAoMCk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3dpcGVmcy44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy93aXBlZnMuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDljMGE2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy93aXBlZnMuOApAQCAtMCwwICsxLDQ1IEBACisuXCIgLSotIG5yb2ZmIC0qLQorLlwiIENvcHlyaWdodCAyMDA5IGJ5IEthcmVsIFphay4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisuXCIgVGhpcyBmaWxlIG1heSBiZSBjb3BpZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgUHVibGljIExpY2Vuc2UuCisuXCIKKy5USCBXSVBFRlMgOCAiT2N0b2JlciAyMDA5IiAiTGludXgiICJNQUlOVEVOQU5DRSBDT01NQU5EUyIKKy5TSCBOQU1FCit3aXBlZnMgXC0gd2lwZSBhIGZpbGVzeXN0ZW0gc2lnbmF0dXJlIGZyb20gYSBkZXZpY2UKKy5TSCBTWU5PUFNJUworLkIgd2lwZWZzCisuUkIgWyBcLWFobnAgXQorLlJCIFsgXC1vCisuSVIgb2Zmc2V0IF0KKy5JIGRldmljZQorLlNIIERFU0NSSVBUSU9OCisuQiB3aXBlZnMKK2FsbG93cyB0byBlcmFzZSBmaWxlc3lzdGVtIG9yIHJhaWQgc2lnbmF0dXJlcyAobWFnaWMgc3RyaW5ncykgZnJvbSB0aGUKKy5JIGRldmljZQordG8gbWFrZSB0aGUgZmlsZXN5c3RlbSBpbnZpc2libGUgZm9yIGxpYmJsa2lkLgorLkIgd2lwZWZzCitkb2VzIG5vdCBlcmFzZSB0aGUgd2hvbGUgZmlsZXN5c3RlbSBvciBhbnkgb3RoZXIgZGF0YSBmcm9tIHRoZSBkZXZpY2UuCitXaGVuIHVzZWQgd2l0aG91dCBvcHRpb25zIC1hIG9yIC1vLCBpdCBsaXN0cyBhbGwgdmlzaWJsZSBmaWxlc3lzdGVtcyBhbmQgb2Zmc2V0cworb2YgdGhlaXIgc2lnbmF0dXJlcy4KKy5TSCBPUFRJT05TCisuSVAgIlxmQlwtYSwgXC1cLWFsbFxmUCIKK0VyYXNlIGFsbCBhdmFpbGFibGUgc2lnbmF0dXJlcy4KKy5JUCAiXGZCXC1oLCBcLVwtaGVscFxmUCIKK1ByaW50IGhlbHAgYW5kIGV4aXQuCisuSVAgIlxmQlwtbiwgXC1cLW5vXC1hY3RcZlAiCitDYXVzZXMgZXZlcnl0aGluZyB0byBiZSBkb25lIGV4Y2VwdCBmb3IgdGhlIHdyaXRlKCkgY2FsbC4KKy5JUCAiXGZCXC1vLCBcLVwtb2Zmc2V0XGZQIFxmSW9mZnNldFxmUAorU3BlY2lmaWVzIGxvY2F0aW9uIChpbiBieXRlcykgb2YgdGhlIHNpZ25hdHVyZSB3aGljaCBzaG91bGQgYmUgZXJhc2VkIGZyb20gdGhlCitkZXZpY2UuIFRoZSBvZmZzZXQgbnVtYmVyIG1heSBpbmNsdWRlIGEgIjB4IiBwcmVmaXgsIGFuZCB0aGVuIHRoZSBudW1iZXIgd2lsbCBiZQorcmVhZCBhcyBhIGhleCB2YWx1ZS4gSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBtdWx0aXBsZSAtbyBvcHRpb25zLgorLklQICJcZkJcLXAsIFwtXC1wYXJzYWJsZVxmUCIKK1ByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuIEVuY29kZSBhbGwgcG90ZW50aWFsbHkgdW5zYWZlCitjaGFyYWN0ZXJzIG9mIGEgc3RyaW5nIHRvIHRoZSBjb3JyZXNwb25kaW5nIGhleCB2YWx1ZSBwcmVmaXhlZCBieSAnXFx4Jy4KKy5TSCBBVVRIT1IKK0thcmVsIFphayA8a3pha0ByZWRoYXQuY29tPi4KKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSB3aXBlZnMgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisuU0ggU0VFIEFMU08KKy5CUiBibGtpZCAoOCkKKy5CUiBmaW5kZnMgKDgpCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvd2lwZWZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3dpcGVmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmOGJjMjAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3dpcGVmcy5jCkBAIC0wLDAgKzEsNDAyIEBACisvKgorICogd2lwZWZzIC0gdXRpbGl0eSB0byB3aXBlIGZpbGVzeXN0ZW1zIGZyb20gZGV2aWNlCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFJlZCBIYXQsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFdyaXR0ZW4gYnkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdvdWxkIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorICogSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPGVyci5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorCisjaW5jbHVkZSA8YmxraWQuaD4KKworI2luY2x1ZGUgIm5scy5oIgorCitzdHJ1Y3Qgd2lwZV9kZXNjIHsKKwlsb2ZmX3QJCW9mZnNldDsJCS8qIG1hZ2ljIHN0cmluZyBvZmZzZXQgKi8KKwlzaXplX3QJCWxlbjsJCS8qIGxlbmd0aCBvZiBtYWdpYyBzdHJpbmcgKi8KKwl1bnNpZ25lZCBjaGFyCSptYWdpYzsJCS8qIG1hZ2ljIHN0cmluZyAqLworCisJaW50CQl6YXA7CQkvKiB6YXAgdGhpcyBvZmZzZXQ/ICovCisJY2hhcgkJKnVzYWdlOwkJLyogcmFpZCwgZmlsZXN5c3RlbSwgLi4uICovCisJY2hhcgkJKnR5cGU7CQkvKiBGUyB0eXBlICovCisJY2hhcgkJKmxhYmVsOwkJLyogRlMgbGFiZWwgKi8KKwljaGFyCQkqdXVpZDsJCS8qIEZTIHV1aWQgKi8KKworCXN0cnVjdCB3aXBlX2Rlc2MJKm5leHQ7Cit9OworCisjZGVmaW5lIFdQX01PREVfUFJFVFRZCQkwCQkvKiBkZWZhdWx0ICovCisjZGVmaW5lIFdQX01PREVfUEFSU0FCTEUJMQorCitzdGF0aWMgdm9pZAorcHJpbnRfcHJldHR5KHN0cnVjdCB3aXBlX2Rlc2MgKndwLCBpbnQgbGluZSkKK3sKKwlpZiAoIWxpbmUpIHsKKwkJcHJpbnRmKCJvZmZzZXQgICAgICAgICAgICAgICB0eXBlXG4iKTsKKwkJcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKwl9CisKKwlwcmludGYoIjB4JS0xN2p4ICAlcyAgIFslc10iLCB3cC0+b2Zmc2V0LCB3cC0+dHlwZSwgd3AtPnVzYWdlKTsKKworCWlmICh3cC0+bGFiZWwgJiYgKndwLT5sYWJlbCkKKwkJcHJpbnRmKCJcbiUyN3MgJXMiLCAiTEFCRUw6Iiwgd3AtPmxhYmVsKTsKKwlpZiAod3AtPnV1aWQpCisJCXByaW50ZigiXG4lMjdzICVzIiwgIlVVSUQ6ICIsIHdwLT51dWlkKTsKKwlwdXRzKCJcbiIpOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRfcGFyc2FibGUoc3RydWN0IHdpcGVfZGVzYyAqd3AsIGludCBsaW5lKQoreworCWNoYXIgZW5jWzI1Nl07CisKKwlpZiAoIWxpbmUpCisJCXByaW50ZigiIyBvZmZzZXQsdXVpZCxsYWJlbCx0eXBlXG4iKTsKKworCXByaW50ZigiMHglangsIiwgd3AtPm9mZnNldCk7CisKKwlpZiAod3AtPnV1aWQpIHsKKwkJYmxraWRfZW5jb2RlX3N0cmluZyh3cC0+dXVpZCwgZW5jLCBzaXplb2YoZW5jKSk7CisJCXByaW50ZigiJXMsIiwgZW5jKTsKKwl9IGVsc2UKKwkJZnB1dGMoJywnLCBzdGRvdXQpOworCisJaWYgKHdwLT5sYWJlbCkgeworCQlibGtpZF9lbmNvZGVfc3RyaW5nKHdwLT5sYWJlbCwgZW5jLCBzaXplb2YoZW5jKSk7CisJCXByaW50ZigiJXMsIiwgZW5jKTsKKwl9IGVsc2UKKwkJZnB1dGMoJywnLCBzdGRvdXQpOworCisJYmxraWRfZW5jb2RlX3N0cmluZyh3cC0+dHlwZSwgZW5jLCBzaXplb2YoZW5jKSk7CisJcHJpbnRmKCIlc1xuIiwgZW5jKTsKK30KKworc3RhdGljIHZvaWQKK3ByaW50X2FsbChzdHJ1Y3Qgd2lwZV9kZXNjICp3cCwgaW50IG1vZGUpCit7CisJaW50IG4gPSAwOworCisJd2hpbGUgKHdwKSB7CisJCXN3aXRjaCAobW9kZSkgeworCQljYXNlIFdQX01PREVfUFJFVFRZOgorCQkJcHJpbnRfcHJldHR5KHdwLCBuKyspOworCQkJYnJlYWs7CisJCWNhc2UgV1BfTU9ERV9QQVJTQUJMRToKKwkJCXByaW50X3BhcnNhYmxlKHdwLCBuKyspOworCQkJYnJlYWs7CisJCX0KKwkJd3AgPSB3cC0+bmV4dDsKKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgd2lwZV9kZXNjICoKK2FkZF9vZmZzZXQoc3RydWN0IHdpcGVfZGVzYyAqd3AwLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgemFwKQoreworCXN0cnVjdCB3aXBlX2Rlc2MgKndwID0gd3AwOworCisJd2hpbGUgKHdwKSB7CisJCWlmICh3cC0+b2Zmc2V0ID09IG9mZnNldCkKKwkJCXJldHVybiB3cDsKKwkJd3AgPSB3cC0+bmV4dDsKKwl9CisKKwl3cCA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IHdpcGVfZGVzYykpOworCWlmICghd3ApCisJCWVycihFWElUX0ZBSUxVUkUsIF8oImNhbGxvYyBmYWlsZWQiKSk7CisKKwl3cC0+b2Zmc2V0ID0gb2Zmc2V0OworCXdwLT5uZXh0ID0gd3AwOworCXdwLT56YXAgPSB6YXA7CisJcmV0dXJuIHdwOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgKgoreG1hbGxvYyhzaXplX3Qgc3opCit7CisJdm9pZCAqeCA9IG1hbGxvYyhzeik7CisJaWYgKCF4KQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJtYWxsb2MgZmFpbGVkIikpOworCXJldHVybiB4OworfQorCitzdGF0aWMgaW5saW5lIGNoYXIgKgoreHN0cmR1cChjb25zdCBjaGFyICpzKQoreworCWNoYXIgKnggPSBzdHJkdXAocyk7CisJaWYgKCF4KQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJzdHJkdXAgZmFpbGVkIikpOworCXJldHVybiB4OworfQorCitzdGF0aWMgc3RydWN0IHdpcGVfZGVzYyAqCitnZXRfb2Zmc2V0X2Zyb21fcHJvYmUoc3RydWN0IHdpcGVfZGVzYyAqd3AsIGJsa2lkX3Byb2JlIHByLCBpbnQgemFwKQoreworCWNvbnN0IGNoYXIgKm9mZiwgKnR5cGUsICp1c2FnZSwgKm1hZzsKKwlzaXplX3QgbGVuOworCisJaWYgKGJsa2lkX3Byb2JlX2xvb2t1cF92YWx1ZShwciwgIlRZUEUiLCAmdHlwZSwgTlVMTCkgPT0gMCAmJgorCSAgICBibGtpZF9wcm9iZV9sb29rdXBfdmFsdWUocHIsICJTQk1BR0lDX09GRlNFVCIsICZvZmYsIE5VTEwpID09IDAgJiYKKwkgICAgYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKHByLCAiU0JNQUdJQyIsICZtYWcsICZsZW4pID09IDAgJiYKKwkgICAgYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKHByLCAiVVNBR0UiLCAmdXNhZ2UsIE5VTEwpID09IDApIHsKKworCQlsb2ZmX3Qgb2Zmc2V0ID0gc3RydG9sbChvZmYsIE5VTEwsIDEwKTsKKwkJY29uc3QgY2hhciAqcDsKKworCQl3cCA9IGFkZF9vZmZzZXQod3AsIG9mZnNldCwgemFwKTsKKwkJaWYgKCF3cCkKKwkJCXJldHVybiBOVUxMOworCisJCXdwLT51c2FnZSA9IHhzdHJkdXAodXNhZ2UpOworCQl3cC0+dHlwZSA9IHhzdHJkdXAodHlwZSk7CisKKwkJd3AtPm1hZ2ljID0geG1hbGxvYyh3cC0+bGVuKTsKKwkJbWVtY3B5KHdwLT5tYWdpYywgbWFnLCBsZW4pOworCQl3cC0+bGVuID0gbGVuOworCisJCWlmIChibGtpZF9wcm9iZV9sb29rdXBfdmFsdWUocHIsICJMQUJFTCIsICZwLCBOVUxMKSA9PSAwKQorCQkJd3AtPmxhYmVsID0geHN0cmR1cChwKTsKKworCQlpZiAoYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKHByLCAiVVVJRCIsICZwLCBOVUxMKSA9PSAwKQorCQkJd3AtPnV1aWQgPSB4c3RyZHVwKHApOworCX0KKworCXJldHVybiB3cDsKK30KKworc3RhdGljIHN0cnVjdCB3aXBlX2Rlc2MgKgorcmVhZF9vZmZzZXRzKHN0cnVjdCB3aXBlX2Rlc2MgKndwLCBjb25zdCBjaGFyICpmbmFtZSwgaW50IHphcCkKK3sKKwlibGtpZF9wcm9iZSBwcjsKKwlpbnQgcmM7CisKKwlpZiAoIWZuYW1lKQorCQlyZXR1cm4gTlVMTDsKKworCXByID0gYmxraWRfbmV3X3Byb2JlX2Zyb21fZmlsZW5hbWUoZm5hbWUpOworCWlmICghcHIpCisJCWVycngoRVhJVF9GQUlMVVJFLCBfKCJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIiksIGZuYW1lKTsKKworCWJsa2lkX3Byb2JlX2VuYWJsZV9zdXBlcmJsb2NrcyhwciwgMCk7CS8qIGVuYWJsZWQgYnkgZGVmYXVsdCA7LSggKi8KKworCWJsa2lkX3Byb2JlX2VuYWJsZV9wYXJ0aXRpb25zKHByLCAxKTsKKwlyYyA9IGJsa2lkX2RvX2Z1bGxwcm9iZShwcik7CisJYmxraWRfcHJvYmVfZW5hYmxlX3BhcnRpdGlvbnMocHIsIDApOworCisJaWYgKHJjID09IDApIHsKKwkJY29uc3QgY2hhciAqdHlwZSA9IE5VTEw7CisJCWJsa2lkX3Byb2JlX2xvb2t1cF92YWx1ZShwciwgIlBUVFlQRSIsICZ0eXBlLCBOVUxMKTsKKwkJZXJyeChFWElUX0ZBSUxVUkUsIF8oImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgIgorCQkJCSJwYXJ0aXRpb24gdGFibGUiKSwgZm5hbWUsIHR5cGUpOworCX0KKworCWJsa2lkX3Byb2JlX2VuYWJsZV9zdXBlcmJsb2NrcyhwciwgMSk7CisJYmxraWRfcHJvYmVfc2V0X3N1cGVyYmxvY2tzX2ZsYWdzKHByLCBCTEtJRF9TVUJMS1NfTUFHSUMgfAorCQkJQkxLSURfU1VCTEtTX1RZUEUgfCBCTEtJRF9TVUJMS1NfVVNBR0UgfAorCQkJQkxLSURfU1VCTEtTX0xBQkVMIHwgQkxLSURfU1VCTEtTX1VVSUQpOworCisJd2hpbGUgKGJsa2lkX2RvX3Byb2JlKHByKSA9PSAwKSB7CisJCXdwID0gZ2V0X29mZnNldF9mcm9tX3Byb2JlKHdwLCBwciwgemFwKTsKKwkJaWYgKCF3cCkKKwkJCWJyZWFrOworCX0KKworCWJsa2lkX2ZyZWVfcHJvYmUocHIpOworCXJldHVybiB3cDsKK30KKworc3RhdGljIGludAord3JpdGVfYWxsKGludCBmZCwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgY291bnQpCit7CisJd2hpbGUoY291bnQpIHsKKwkJc3NpemVfdCB0bXA7CisKKwkJZXJybm8gPSAwOworCQl0bXAgPSB3cml0ZShmZCwgYnVmLCBjb3VudCk7CisJCWlmICh0bXAgPiAwKSB7CisJCQljb3VudCAtPSB0bXA7CisJCQlpZiAoY291bnQpCisJCQkJYnVmICs9IHRtcDsKKwkJfSBlbHNlIGlmIChlcnJubyAhPSBFSU5UUiAmJiBlcnJubyAhPSBFQUdBSU4pCisJCQlyZXR1cm4gLTE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50Citkb193aXBlX29mZnNldChpbnQgZmQsIHN0cnVjdCB3aXBlX2Rlc2MgKndwLCBjb25zdCBjaGFyICpmbmFtZSwgaW50IG5vYWN0KQoreworCWNoYXIgYnVmW0JVRlNJWl07CisJaW50IGk7CisJb2ZmX3QgbDsKKwlzaXplX3QgbGVuOworCisJaWYgKCF3cC0+dHlwZSkgeworCQl3YXJueChfKCJjYW4ndCBmb3VuZCBhIG1hZ2ljIHN0cmluZyBhdCBvZmZzZXQgIgorCQkJCSIweCVqeCAtIGlnbm9yZS4iKSwgd3AtPm9mZnNldCk7CisJCXJldHVybiAwOworCX0KKworCWwgPSBsc2VlayhmZCwgd3AtPm9mZnNldCwgU0VFS19TRVQpOworCWlmIChsID09IChvZmZfdCkgLTEpCisJCWVycihFWElUX0ZBSUxVUkUsIF8oIiVzOiBmYWlsZWQgdG8gc2VlayB0byBvZmZzZXQgMHglangiKSwKKwkJCQlmbmFtZSwgd3AtPm9mZnNldCk7CisKKwlsZW4gPSB3cC0+bGVuID4gc2l6ZW9mKGJ1ZikgPyBzaXplb2YoYnVmKSA6IHdwLT5sZW47CisKKwltZW1zZXQoYnVmLCAwLCBsZW4pOworCWlmIChub2FjdCA9PSAwICYmIHdyaXRlX2FsbChmZCwgYnVmLCBsZW4pKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCIlczogd3JpdGUgZmFpbGVkIiksIGZuYW1lKTsKKworCXByaW50ZihfKCIlemQgYnl0ZXMgWyIpLCB3cC0+bGVuKTsKKworCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworCQlwcmludGYoIiUwMngiLCB3cC0+bWFnaWNbaV0pOworCQlpZiAoaSArIDEgPCBsZW4pCisJCQlmcHV0YygnICcsIHN0ZG91dCk7CisJfQorCisJcHJpbnRmKF8oIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iKSwgd3AtPm9mZnNldCwgd3AtPnR5cGUpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50Citkb193aXBlKHN0cnVjdCB3aXBlX2Rlc2MgKndwLCBjb25zdCBjaGFyICpmbmFtZSwgaW50IG5vYWN0KQoreworCWludCBmZDsKKworCWZkID0gb3BlbihmbmFtZSwgT19XUk9OTFkpOworCWlmIChmZCA8IDApCisJCWVycihFWElUX0ZBSUxVUkUsIF8oIiVzOiBvcGVuIGZhaWxlZCIpLCBmbmFtZSk7CisKKwl3aGlsZSAod3ApIHsKKwkJaWYgKHdwLT56YXApCisJCQlkb193aXBlX29mZnNldChmZCwgd3AsIGZuYW1lLCBub2FjdCk7CisJCXdwID0gd3AtPm5leHQ7CisJfQorCisJY2xvc2UoZmQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgbG9mZl90CitzdHJ0b2xsX29mZnNldChjb25zdCBjaGFyICpzdHIpCit7CisJY2hhciAqZW5kID0gTlVMTDsKKwlsb2ZmX3Qgb2ZmOworCisJZXJybm8gPSAwOworCW9mZiA9IHN0cnRvbGwoc3RyLCAmZW5kLCAwKTsKKworCWlmICgoZXJybm8gPT0gRVJBTkdFICYmIChvZmYgPT0gTExPTkdfTUFYIHx8IG9mZiA9PSBMT05HX01JTikpIHx8CisJICAgIChlcnJubyAhPSAwICYmIG9mZiA9PSAwKSkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiaW52YWxpZCBvZmZzZXQgJyVzJyB2YWx1ZSBzcGVjaWZpZWQiKSwgc3RyKTsKKworCWlmICgqZW5kICE9ICdcMCcpCisJCWVycngoRVhJVF9GQUlMVVJFLCBfKCJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIpLCBzdHIpOworCisJcmV0dXJuIG9mZjsKK30KKworc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkKK3VzYWdlKEZJTEUgKm91dCkKK3sKKwlmcHJpbnRmKG91dCwgXygiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuXG5PcHRpb25zOlxuIiksCisJCQlwcm9ncmFtX2ludm9jYXRpb25fc2hvcnRfbmFtZSk7CisKKwlmcHJpbnRmKG91dCwgXygKKwkiIC1hLCAtLWFsbCAgICAgICAgICAgd2lwZSBhbGwgbWFnaWMgc3RyaW5ncyAoQkUgQ0FSRUZVTCEpXG4iCisJIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorCSIgLW4sIC0tbm8tYWN0ICAgICAgICBldmVyeXRoaW5nIHRvIGJlIGRvbmUgZXhjZXB0IGZvciB0aGUgd3JpdGUoKSBjYWxsXG4iCisJIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCB0byBlcmFzZSwgaW4gYnl0ZXNcbiIKKwkiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIikpOworCisJZnByaW50ZihvdXQsIF8oIlxuRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIpKTsKKworCWV4aXQob3V0ID09IHN0ZGVyciA/IEVYSVRfRkFJTFVSRSA6IEVYSVRfU1VDQ0VTUyk7Cit9CisKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlzdHJ1Y3Qgd2lwZV9kZXNjICp3cCA9IE5VTEw7CisJaW50IGMsIGFsbCA9IDAsIGhhc19vZmZzZXQgPSAwLCBub2FjdCA9IDAsIG1vZGUgPSAwOworCWNvbnN0IGNoYXIgKmZuYW1lOworCisJc3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0geworCSAgICB7ICJhbGwiLCAgICAgICAwLCAwLCAnYScgfSwKKwkgICAgeyAiaGVscCIsICAgICAgMCwgMCwgJ2gnIH0sCisJICAgIHsgIm5vLWFjdCIsICAgIDAsIDAsICduJyB9LAorCSAgICB7ICJvZmZzZXQiLCAgICAxLCAwLCAnbycgfSwKKwkgICAgeyAicGFyc2FibGUiLCAgMCwgMCwgJ3AnIH0sCisJICAgIHsgTlVMTCwgICAgICAgIDAsIDAsIDAgfQorCX07CisKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImFobm86cCIsIGxvbmdvcHRzLCBOVUxMKSkgIT0gLTEpIHsKKwkJc3dpdGNoKGMpIHsKKwkJY2FzZSAnYSc6CisJCQlhbGwrKzsKKwkJCWJyZWFrOworCQljYXNlICdoJzoKKwkJCXVzYWdlKHN0ZG91dCk7CisJCQlicmVhazsKKwkJY2FzZSAnbic6CisJCQlub2FjdCsrOworCQkJYnJlYWs7CisJCWNhc2UgJ28nOgorCQkJd3AgPSBhZGRfb2Zmc2V0KHdwLCBzdHJ0b2xsX29mZnNldChvcHRhcmcpLCAxKTsKKwkJCWhhc19vZmZzZXQrKzsKKwkJCWJyZWFrOworCQljYXNlICdwJzoKKwkJCW1vZGUgPSBXUF9NT0RFX1BBUlNBQkxFOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQl1c2FnZShzdGRlcnIpOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAod3AgJiYgYWxsKQorCQllcnJ4KEVYSVRfRkFJTFVSRSwgXygiLS1vZmZzZXQgYW5kIC0tYWxsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiKSk7CisJaWYgKG9wdGluZCA9PSBhcmdjKQorCQl1c2FnZShzdGRlcnIpOworCisJZm5hbWUgPSBhcmd2W29wdGluZCsrXTsKKworCXdwID0gcmVhZF9vZmZzZXRzKHdwLCBmbmFtZSwgYWxsKTsKKworCWlmICh3cCkgeworCQlpZiAoaGFzX29mZnNldCB8fCBhbGwpCisJCQlkb193aXBlKHdwLCBmbmFtZSwgbm9hY3QpOworCQllbHNlCisJCQlwcmludF9hbGwod3AsIG1vZGUpOworCX0KKwlyZXR1cm4gRVhJVF9TVUNDRVNTOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy93cml0ZS4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy93cml0ZS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkNjI3MDcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9taXNjLXV0aWxzL3dyaXRlLjEKQEAgLTAsMCArMSwxMDIgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5ODksIDE5OTMKKy5cIglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy5cIgorLlwiIFRoaXMgY29kZSBpcyBkZXJpdmVkIGZyb20gc29mdHdhcmUgY29udHJpYnV0ZWQgdG8gQmVya2VsZXkgYnkKKy5cIiBKZWYgUG9za2FuemVyIGFuZCBDcmFpZyBMZXJlcyBvZiB0aGUgTGF3cmVuY2UgQmVya2VsZXkgTGFib3JhdG9yeS4KKy5cIgorLlwiIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLlwiIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLlwiIGFyZSBtZXQ6CisuXCIgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKy5cIiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisuXCIJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorLlwiCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorLlwiIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisuXCIgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisuXCIgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisuXCIKKy5cIiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorLlwiIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLlwiIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisuXCIgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisuXCIgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKy5cIiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworLlwiIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorLlwiIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisuXCIgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorLlwiIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKy5cIiBTVUNIIERBTUFHRS4KKy5cIgorLlwiICAgICBAKCMpd3JpdGUuMQk4LjEgKEJlcmtlbGV5KSA2LzYvOTMKKy5cIgorLlwiIE1vZGlmaWVkIGZvciBMaW51eCwgU3VuIE1hciAxMiAxMDoyMTowMSAxOTk1LCBmYWl0aEBjcy51bmMuZWR1CisuXCIKKy5USCBXUklURSAxICIxMiBNYXJjaCAxOTk1IiAiIiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCBOQU1FCit3cml0ZSBcLSBzZW5kIGEgbWVzc2FnZSB0byBhbm90aGVyIHVzZXIKKy5TSCBTWU5PUFNJUworLkIgd3JpdGUKKy5JIHVzZXIKKy5SSSBbIHR0eW5hbWUgXQorLlNIIERFU0NSSVBUSU9OCisuQiBXcml0ZQorYWxsb3dzIHlvdSB0byBjb21tdW5pY2F0ZSB3aXRoIG90aGVyIHVzZXJzLCBieSBjb3B5aW5nIGxpbmVzIGZyb20KK3lvdXIgdGVybWluYWwgdG8gdGhlaXJzLgorLlBQCitXaGVuIHlvdSBydW4gdGhlCisuQiB3cml0ZQorY29tbWFuZCwgdGhlIHVzZXIgeW91IGFyZSB3cml0aW5nIHRvIGdldHMgYSBtZXNzYWdlIG9mIHRoZSBmb3JtOgorLlBQCisuUlMKK01lc3NhZ2UgZnJvbSB5b3VybmFtZUB5b3VyaG9zdCBvbiB5b3VydHR5IGF0IGhoOm1tIC4uLgorLlJFCisuUFAKK0FueSBmdXJ0aGVyIGxpbmVzIHlvdSBlbnRlciB3aWxsIGJlIGNvcGllZCB0byB0aGUgc3BlY2lmaWVkIHVzZXIncwordGVybWluYWwuICBJZiB0aGUgb3RoZXIgdXNlciB3YW50cyB0byByZXBseSwgdGhleSBtdXN0IHJ1bgorLkIgd3JpdGUKK2FzIHdlbGwuCisuUFAKK1doZW4geW91IGFyZSBkb25lLCB0eXBlIGFuIGVuZC1vZi1maWxlIG9yIGludGVycnVwdCBjaGFyYWN0ZXIuICBUaGUgb3RoZXIKK3VzZXIgd2lsbCBzZWUgdGhlIG1lc3NhZ2UKKy5CIEVPRgoraW5kaWNhdGluZyB0aGF0IHRoZSBjb252ZXJzYXRpb24gaXMgb3Zlci4KKy5QUAorWW91IGNhbiBwcmV2ZW50IHBlb3BsZSAob3RoZXIgdGhhbiB0aGUgc3VwZXItdXNlcikgZnJvbSB3cml0aW5nIHRvIHlvdSB3aXRoCit0aGUKKy5CUiBtZXNnICgxKQorY29tbWFuZC4gIFNvbWUgY29tbWFuZHMsIGZvciBleGFtcGxlCisuQlIgbnJvZmYgKDEpCithbmQKKy5CUiBwciAoMSksCittYXkgZGlzYWxsb3cgd3JpdGluZyBhdXRvbWF0aWNhbGx5LCBzbyB0aGF0IHlvdXIgb3V0cHV0IGlzbid0IG92ZXJ3cml0dGVuLgorLlBQCitJZiB0aGUgdXNlciB5b3Ugd2FudCB0byB3cml0ZSB0byBpcyBsb2dnZWQgaW4gb24gbW9yZSB0aGFuIG9uZSB0ZXJtaW5hbCwKK3lvdSBjYW4gc3BlY2lmeSB3aGljaCB0ZXJtaW5hbCB0byB3cml0ZSB0byBieSBzcGVjaWZ5aW5nIHRoZSB0ZXJtaW5hbAorbmFtZSBhcyB0aGUgc2Vjb25kIG9wZXJhbmQgdG8gdGhlCisuQiB3cml0ZQorY29tbWFuZC4gIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gbGV0CisuQiB3cml0ZQorc2VsZWN0IG9uZSBvZiB0aGUgdGVybWluYWxzIFwtIGl0IHdpbGwgcGljayB0aGUgb25lIHdpdGggdGhlIHNob3J0ZXN0IGlkbGUKK3RpbWUuICBUaGlzIGlzIHNvIHRoYXQgaWYgdGhlIHVzZXIgaXMgbG9nZ2VkIGluIGF0IHdvcmsgYW5kIGFsc28gZGlhbGVkIHVwCitmcm9tIGhvbWUsIHRoZSBtZXNzYWdlIHdpbGwgZ28gdG8gdGhlIHJpZ2h0IHBsYWNlLgorLlBQCitUaGUgdHJhZGl0aW9uYWwgcHJvdG9jb2wgZm9yIHdyaXRpbmcgdG8gc29tZW9uZSBpcyB0aGF0IHRoZSBzdHJpbmcgYFwtbycsCitlaXRoZXIgYXQgdGhlIGVuZCBvZiBhIGxpbmUgb3Igb24gYSBsaW5lIGJ5IGl0c2VsZiwgbWVhbnMgdGhhdCBpdCdzIHRoZQorb3RoZXIgcGVyc29uJ3MgdHVybiB0byB0YWxrLiAgVGhlIHN0cmluZyBgb28nIG1lYW5zIHRoYXQgdGhlIHBlcnNvbgorYmVsaWV2ZXMgdGhlIGNvbnZlcnNhdGlvbiB0byBiZSBvdmVyLgorLlNIICJTRUUgQUxTTyIKKy5CUiBtZXNnICgxKSwKKy5CUiB0YWxrICgxKSwKKy5CUiB3aG8gKDEpCisuU0ggSElTVE9SWQorQQorLkIgd3JpdGUKK2NvbW1hbmQgYXBwZWFyZWQgaW4gVmVyc2lvbiA2IEFUJlQgVU5JWC4KKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSB3cml0ZSBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvd3JpdGUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21pc2MtdXRpbHMvd3JpdGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWQ3NzYzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbWlzYy11dGlscy93cml0ZS5jCkBAIC0wLDAgKzEsMzU5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTg5LCAxOTkzCisgKglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVkIHRvIEJlcmtlbGV5IGJ5CisgKiBKZWYgUG9za2FuemVyIGFuZCBDcmFpZyBMZXJlcyBvZiB0aGUgTGF3cmVuY2UgQmVya2VsZXkgTGFib3JhdG9yeS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqIE1vZGlmaWVkIGZvciBMaW51eCwgTW9uIE1hciAgOCAxODoxNjoyNCAxOTkzLCBmYWl0aEBjcy51bmMuZWR1CisgKiBXZWQgSnVuIDIyIDIxOjQxOjU2IDE5OTQsIGZhaXRoQGNzLnVuYy5lZHU6CisgKiAgICAgIEFkZGVkIGZpeCBmcm9tIE1pa2UgR3J1cGVuaG9mZiAoa2FzaG1pckB1bWlhY3MudW1kLmVkdSkKKyAqIE1vbiBKdWwgIDEgMTc6MDE6MzkgTUVUIERTVCAxOTk2LCBqYW5sQG1hdGgudWlvLm5vOgorICogICAgICAtIEFkZGVkIGZpeCBmcm9tIERhdmlkLkNoYXBlbGxAbWFpbC50cmluY29sbC5lZHUgZW5hYmVsaW5nIGRhZW1vbnMKKyAqCSAgdG8gdXNlIHdyaXRlLgorICogICAgICAtIEFOU0llZCBpdCBzaW5jZSBJIHdhcyB3b3JraW5nIG9uIGl0IGFueXdheS4KKyAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx1dG1wLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxwd2QuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy9maWxlLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxwYXRocy5oPgorI2luY2x1ZGUgInBhdGhuYW1lcy5oIgorI2luY2x1ZGUgImNhcmVmdWxwdXRjLmgiCisjaW5jbHVkZSAibmxzLmgiCisgCit2b2lkIHNlYXJjaF91dG1wKGNoYXIgKiwgY2hhciAqLCBjaGFyICosIHVpZF90KTsKK3ZvaWQgZG9fd3JpdGUoY2hhciAqLCBjaGFyICosIHVpZF90KTsKK3ZvaWQgd3JfZnB1dHMoY2hhciAqKTsKK3N0YXRpYyB2b2lkIGRvbmUoaW50KTsKK2ludCB0ZXJtX2NoayhjaGFyICosIGludCAqLCB0aW1lX3QgKiwgaW50KTsKK2ludCB1dG1wX2NoayhjaGFyICosIGNoYXIgKik7CisKK3N0YXRpYyBnaWRfdCBteWVnaWQ7CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKwl0aW1lX3QgYXRpbWU7CisJdWlkX3QgbXl1aWQ7CisJaW50IG1zZ3NvaywgbXl0dHlmZDsKKwljaGFyIHR0eVtNQVhQQVRITEVOXSwgKm15dHR5OworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCW15ZWdpZCA9IGdldGVnaWQoKTsKKworCS8qIGNoZWNrIHRoYXQgc2VuZGVyIGhhcyB3cml0ZSBlbmFibGVkICovCisJaWYgKGlzYXR0eShmaWxlbm8oc3RkaW4pKSkKKwkJbXl0dHlmZCA9IGZpbGVubyhzdGRpbik7CisJZWxzZSBpZiAoaXNhdHR5KGZpbGVubyhzdGRvdXQpKSkKKwkJbXl0dHlmZCA9IGZpbGVubyhzdGRvdXQpOworCWVsc2UgaWYgKGlzYXR0eShmaWxlbm8oc3RkZXJyKSkpCisJCW15dHR5ZmQgPSBmaWxlbm8oc3RkZXJyKTsKKwllbHNlIHsKKwkgIAlteXR0eWZkID0gLTE7CisJfQorCWlmIChteXR0eWZkICE9IC0xKSB7CisJICBpZiAoIShteXR0eSA9IHR0eW5hbWUobXl0dHlmZCkpKSB7CisJCSh2b2lkKWZwcmludGYoc3RkZXJyLCBfKCJ3cml0ZTogY2FuJ3QgZmluZCB5b3VyIHR0eSdzIG5hbWVcbiIpKTsKKwkJZXhpdCgxKTsKKwkgIH0KKwkgIC8qIFdlIG1heSBoYXZlIC9kZXYvdHR5TiBidXQgYWxzbyAvZGV2L3B0cy94eC4KKwkgICAgIEJlbG93LCB0ZXJtX2NoaygpIHdpbGwgcHV0ICIvZGV2LyIgaW4gZnJvbnQsIHNvIHJlbW92ZSB0aGF0IHBhcnQuICovCisJICBpZiAoIXN0cm5jbXAobXl0dHksICIvZGV2LyIsIDUpKQorCQlteXR0eSArPSA1OworCSAgaWYgKHRlcm1fY2hrKG15dHR5LCAmbXNnc29rLCAmYXRpbWUsIDEpKQorCQlleGl0KDEpOworCSAgaWYgKCFtc2dzb2spIHsKKwkJKHZvaWQpZnByaW50ZihzdGRlcnIsCisJCSAgICBfKCJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIikpOworCQlleGl0KDEpOworCSAgfQorCQorCX0gZWxzZSB7CisJICAgIG15dHR5ID0gIjxubyB0dHk+IjsKKwl9CisKKwlteXVpZCA9IGdldHVpZCgpOworCisJLyogY2hlY2sgYXJncyAqLworCXN3aXRjaCAoYXJnYykgeworCWNhc2UgMjoKKwkJc2VhcmNoX3V0bXAoYXJndlsxXSwgdHR5LCBteXR0eSwgbXl1aWQpOworCQlkb193cml0ZSh0dHksIG15dHR5LCBteXVpZCk7CisJCWJyZWFrOworCWNhc2UgMzoKKwkJaWYgKCFzdHJuY21wKGFyZ3ZbMl0sICIvZGV2LyIsIDUpKQorCQkJYXJndlsyXSArPSA1OworCQlpZiAodXRtcF9jaGsoYXJndlsxXSwgYXJndlsyXSkpIHsKKwkJCSh2b2lkKWZwcmludGYoc3RkZXJyLAorCQkJICAgIF8oIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluIG9uICVzLlxuIiksCisJCQkgICAgYXJndlsxXSwgYXJndlsyXSk7CisJCQlleGl0KDEpOworCQl9CisJCWlmICh0ZXJtX2Noayhhcmd2WzJdLCAmbXNnc29rLCAmYXRpbWUsIDEpKQorCQkJZXhpdCgxKTsKKwkJaWYgKG15dWlkICYmICFtc2dzb2spIHsKKwkJCSh2b2lkKWZwcmludGYoc3RkZXJyLAorCQkJICAgIF8oIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIpLAorCQkJICAgIGFyZ3ZbMV0sIGFyZ3ZbMl0pOworCQkJZXhpdCgxKTsKKwkJfQorCQlkb193cml0ZShhcmd2WzJdLCBteXR0eSwgbXl1aWQpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgXygidXNhZ2U6IHdyaXRlIHVzZXIgW3R0eV1cbiIpKTsKKwkJZXhpdCgxKTsKKwl9CisJZG9uZSgwKTsKKwkvKiBOT1RSRUFDSEVEICovCisJcmV0dXJuIDA7Cit9CisKKworLyoKKyAqIHV0bXBfY2hrIC0gY2hlY2tzIHRoYXQgdGhlIGdpdmVuIHVzZXIgaXMgYWN0dWFsbHkgbG9nZ2VkIGluIG9uCisgKiAgICAgdGhlIGdpdmVuIHR0eQorICovCitpbnQgdXRtcF9jaGsoY2hhciAqdXNlciwgY2hhciAqdHR5KQorCit7CisJc3RydWN0IHV0bXAgdTsKKwlzdHJ1Y3QgdXRtcCAqdXB0cjsKKwlpbnQgcmVzID0gMTsKKworCXV0bXBuYW1lKF9QQVRIX1VUTVApOworCXNldHV0ZW50KCk7CisKKwl3aGlsZSAoKHVwdHIgPSBnZXR1dGVudCgpKSkgeworCQltZW1jcHkoJnUsIHVwdHIsIHNpemVvZih1KSk7CisJCWlmIChzdHJuY21wKHVzZXIsIHUudXRfbmFtZSwgc2l6ZW9mKHUudXRfbmFtZSkpID09IDAgJiYKKwkJICAgIHN0cm5jbXAodHR5LCB1LnV0X2xpbmUsIHNpemVvZih1LnV0X2xpbmUpKSA9PSAwKSB7CisJCQlyZXMgPSAwOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwllbmR1dGVudCgpOworCXJldHVybihyZXMpOworfQorCisvKgorICogc2VhcmNoX3V0bXAgLSBzZWFyY2ggdXRtcCBmb3IgdGhlICJiZXN0IiB0ZXJtaW5hbCB0byB3cml0ZSB0bworICoKKyAqIElnbm9yZXMgdGVybWluYWxzIHdpdGggbWVzc2FnZXMgZGlzYWJsZWQsIGFuZCBvZiB0aGUgcmVzdCwgcmV0dXJucworICogdGhlIG9uZSB3aXRoIHRoZSBtb3N0IHJlY2VudCBhY2Nlc3MgdGltZS4gIFJldHVybnMgYXMgdmFsdWUgdGhlIG51bWJlcgorICogb2YgdGhlIHVzZXIncyB0ZXJtaW5hbHMgd2l0aCBtZXNzYWdlcyBlbmFibGVkLCBvciAtMSBpZiB0aGUgdXNlciBpcworICogbm90IGxvZ2dlZCBpbiBhdCBhbGwuCisgKgorICogU3BlY2lhbCBjYXNlIGZvciB3cml0aW5nIHRvIHlvdXJzZWxmIC0gaWdub3JlIHRoZSB0ZXJtaW5hbCB5b3UncmUKKyAqIHdyaXRpbmcgZnJvbSwgdW5sZXNzIHRoYXQncyB0aGUgb25seSB0ZXJtaW5hbCB3aXRoIG1lc3NhZ2VzIGVuYWJsZWQuCisgKi8KK3ZvaWQgc2VhcmNoX3V0bXAoY2hhciAqdXNlciwgY2hhciAqdHR5LCBjaGFyICpteXR0eSwgdWlkX3QgbXl1aWQpCisKK3sKKwlzdHJ1Y3QgdXRtcCB1OworCXN0cnVjdCB1dG1wICp1cHRyOworCXRpbWVfdCBiZXN0YXRpbWUsIGF0aW1lOworCWludCBubG9nZ2VkdHR5cywgbnR0eXMsIG1zZ3NvaywgdXNlcl9pc19tZTsKKwljaGFyIGF0dHlbc2l6ZW9mKHUudXRfbGluZSkgKyAxXTsKKworCXV0bXBuYW1lKF9QQVRIX1VUTVApOworCXNldHV0ZW50KCk7CisKKwlubG9nZ2VkdHR5cyA9IG50dHlzID0gMDsKKwliZXN0YXRpbWUgPSAwOworCXVzZXJfaXNfbWUgPSAwOworCXdoaWxlICgodXB0ciA9IGdldHV0ZW50KCkpKSB7CisJCW1lbWNweSgmdSwgdXB0ciwgc2l6ZW9mKHUpKTsKKwkJaWYgKHN0cm5jbXAodXNlciwgdS51dF9uYW1lLCBzaXplb2YodS51dF9uYW1lKSkgPT0gMCkgeworCQkJKytubG9nZ2VkdHR5czsKKwkJCSh2b2lkKXN0cm5jcHkoYXR0eSwgdS51dF9saW5lLCBzaXplb2YodS51dF9saW5lKSk7CisJCQlhdHR5W3NpemVvZih1LnV0X2xpbmUpXSA9ICdcMCc7CisJCQlpZiAodGVybV9jaGsoYXR0eSwgJm1zZ3NvaywgJmF0aW1lLCAwKSkKKwkJCQljb250aW51ZTsJLyogYmFkIHRlcm0/IHNraXAgKi8KKwkJCWlmIChteXVpZCAmJiAhbXNnc29rKQorCQkJCWNvbnRpbnVlOwkvKiBza2lwIHR0eXMgd2l0aCBtc2dzIG9mZiAqLworCQkJaWYgKHN0cmNtcChhdHR5LCBteXR0eSkgPT0gMCkgeworCQkJCXVzZXJfaXNfbWUgPSAxOworCQkJCWNvbnRpbnVlOwkvKiBkb24ndCB3cml0ZSB0byB5b3Vyc2VsZiAqLworCQkJfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHUudXRfdHlwZSAhPSBVU0VSX1BST0NFU1MpCisJCQkgICAgICAgIGNvbnRpbnVlOyAgICAgICAvKiBpdCdzIG5vdCBhIHZhbGlkIGVudHJ5ICovCisJCQkrK250dHlzOworCQkJaWYgKGF0aW1lID4gYmVzdGF0aW1lKSB7CisJCQkJYmVzdGF0aW1lID0gYXRpbWU7CisJCQkJKHZvaWQpc3RyY3B5KHR0eSwgYXR0eSk7CisJCQl9CisJCX0KKwl9CisKKwllbmR1dGVudCgpOworCWlmIChubG9nZ2VkdHR5cyA9PSAwKSB7CisJCSh2b2lkKWZwcmludGYoc3RkZXJyLCBfKCJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIiksIHVzZXIpOworCQlleGl0KDEpOworCX0KKwlpZiAobnR0eXMgPT0gMCkgeworCQlpZiAodXNlcl9pc19tZSkgewkJLyogb2ssIHNvIHdyaXRlIHRvIHlvdXJzZWxmISAqLworCQkJKHZvaWQpc3RyY3B5KHR0eSwgbXl0dHkpOworCQkJcmV0dXJuOworCQl9CisJCSh2b2lkKWZwcmludGYoc3RkZXJyLAorCQkgICAgXygid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZFxuIiksIHVzZXIpOworCQlleGl0KDEpOworCX0gZWxzZSBpZiAobnR0eXMgPiAxKSB7CisJCSh2b2lkKWZwcmludGYoc3RkZXJyLAorCQkgICAgXygid3JpdGU6ICVzIGlzIGxvZ2dlZCBpbiBtb3JlIHRoYW4gb25jZTsgd3JpdGluZyB0byAlc1xuIiksCisJCSAgICB1c2VyLCB0dHkpOworCX0KK30KKworLyoKKyAqIHRlcm1fY2hrIC0gY2hlY2sgdGhhdCBhIHRlcm1pbmFsIGV4aXN0cywgYW5kIGdldCB0aGUgbWVzc2FnZSBiaXQKKyAqICAgICBhbmQgdGhlIGFjY2VzcyB0aW1lCisgKi8KK2ludCB0ZXJtX2NoayhjaGFyICp0dHksIGludCAqbXNnc29rUCwgdGltZV90ICphdGltZVAsIGludCBzaG93ZXJyb3IpCisKK3sKKwlzdHJ1Y3Qgc3RhdCBzOworCWNoYXIgcGF0aFtNQVhQQVRITEVOXTsKKworCWlmIChzdHJsZW4odHR5KSArIDYgPiBzaXplb2YocGF0aCkpCisJCXJldHVybigxKTsKKwkodm9pZClzcHJpbnRmKHBhdGgsICIvZGV2LyVzIiwgdHR5KTsKKwlpZiAoc3RhdChwYXRoLCAmcykgPCAwKSB7CisJCWlmIChzaG93ZXJyb3IpCisJCQkodm9pZClmcHJpbnRmKHN0ZGVyciwKKwkJCSAgICAid3JpdGU6ICVzOiAlc1xuIiwgcGF0aCwgc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0dXJuKDEpOworCX0KKworCS8qIGdyb3VwIHdyaXRlIGJpdCBhbmQgZ3JvdXAgb3duZXJzaGlwICovCisJKm1zZ3Nva1AgPSAocy5zdF9tb2RlICYgKFNfSVdSSVRFID4+IDMpKSAmJiBteWVnaWQgPT0gcy5zdF9naWQ7CisJKmF0aW1lUCA9IHMuc3RfYXRpbWU7CisJcmV0dXJuKDApOworfQorCisvKgorICogZG9fd3JpdGUgLSBhY3R1YWxseSBtYWtlIHRoZSBjb25uZWN0aW9uCisgKi8KK3ZvaWQgZG9fd3JpdGUoY2hhciAqdHR5LCBjaGFyICpteXR0eSwgdWlkX3QgbXl1aWQpIHsKKwljaGFyICpsb2dpbiwgKnB3dWlkLCAqbm93czsKKwlzdHJ1Y3QgcGFzc3dkICpwd2Q7CisJdGltZV90IG5vdzsKKwljaGFyIHBhdGhbTUFYUEFUSExFTl0sIGhvc3RbTUFYSE9TVE5BTUVMRU5dLCBsaW5lWzUxMl07CisKKwkvKiBEZXRlcm1pbmUgb3VyIGxvZ2luIG5hbWUocykgYmVmb3JlIHRoZSB3ZSByZW9wZW4oKSBzdGRvdXQgKi8KKwlpZiAoKHB3ZCA9IGdldHB3dWlkKG15dWlkKSkgIT0gTlVMTCkKKwkJcHd1aWQgPSBwd2QtPnB3X25hbWU7CisJZWxzZQorCQlwd3VpZCA9ICI/Pz8iOworCWlmICgobG9naW4gPSBnZXRsb2dpbigpKSA9PSBOVUxMKQorCQlsb2dpbiA9IHB3dWlkOworCisJaWYgKHN0cmxlbih0dHkpICsgNiA+IHNpemVvZihwYXRoKSkKKwkJZXhpdCgxKTsKKwkodm9pZClzcHJpbnRmKHBhdGgsICIvZGV2LyVzIiwgdHR5KTsKKwlpZiAoKGZyZW9wZW4ocGF0aCwgInciLCBzdGRvdXQpKSA9PSBOVUxMKSB7CisJCSh2b2lkKWZwcmludGYoc3RkZXJyLCAid3JpdGU6ICVzOiAlc1xuIiwKKwkJCSAgICAgIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7CisJCWV4aXQoMSk7CisJfQorCisJKHZvaWQpc2lnbmFsKFNJR0lOVCwgZG9uZSk7CisJKHZvaWQpc2lnbmFsKFNJR0hVUCwgZG9uZSk7CisKKwkvKiBwcmludCBncmVldGluZyAqLworCWlmIChnZXRob3N0bmFtZShob3N0LCBzaXplb2YoaG9zdCkpIDwgMCkKKwkJKHZvaWQpc3RyY3B5KGhvc3QsICI/Pz8iKTsKKwlub3cgPSB0aW1lKCh0aW1lX3QgKilOVUxMKTsKKwlub3dzID0gY3RpbWUoJm5vdyk7CisJbm93c1sxNl0gPSAnXDAnOworCXByaW50ZigiXHJcblwwMDdcMDA3XDAwNyIpOworCWlmIChzdHJjbXAobG9naW4sIHB3dWlkKSkKKwkJKHZvaWQpcHJpbnRmKF8oIk1lc3NhZ2UgZnJvbSAlc0AlcyAoYXMgJXMpIG9uICVzIGF0ICVzIC4uLiIpLAorCQkJICAgICBsb2dpbiwgaG9zdCwgcHd1aWQsIG15dHR5LCBub3dzICsgMTEpOworCWVsc2UKKwkJKHZvaWQpcHJpbnRmKF8oIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iKSwKKwkJCSAgICAgbG9naW4sIGhvc3QsIG15dHR5LCBub3dzICsgMTEpOworCXByaW50ZigiXHJcbiIpOworCisJd2hpbGUgKGZnZXRzKGxpbmUsIHNpemVvZihsaW5lKSwgc3RkaW4pICE9IE5VTEwpCisJCXdyX2ZwdXRzKGxpbmUpOworfQorCisvKgorICogZG9uZSAtIGNsZWFudXAgYW5kIGV4aXQKKyAqLworc3RhdGljIHZvaWQKK2RvbmUoaW50IGR1bW15KSB7CisJKHZvaWQpcHJpbnRmKCJFT0ZcclxuIik7CisJZXhpdCgwKTsKK30KKworLyoKKyAqIHdyX2ZwdXRzIC0gbGlrZSBmcHV0cygpLCBidXQgbWFrZXMgY29udHJvbCBjaGFyYWN0ZXJzIHZpc2libGUgYW5kCisgKiAgICAgdHVybnMgXG4gaW50byBcclxuLgorICovCit2b2lkCit3cl9mcHV0cyhjaGFyICpzKSB7CisJY2hhciBjOworCisjZGVmaW5lCVBVVEMoYykJaWYgKGNhcmVmdWxwdXRjKGMsc3Rkb3V0KSA9PSBFT0YpIGdvdG8gZXJyOworCisJd2hpbGUoKnMpIHsKKwkJYyA9ICpzKys7CisJCWlmIChjID09ICdcbicpCisJCQlQVVRDKCdccicpOworCQlQVVRDKGMpOworCX0KKwlyZXR1cm47CisKK2VycjoKKwlmcHJpbnRmKHN0ZGVyciwgIndyaXRlOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKKwlleGl0KDEpOworI3VuZGVmIFBVVEMKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVmNThhYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsOTcgQEAKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorCitFWFRSQV9ESVNUID0gUkVBRE1FLm1vdW50CisKK2Jpbl9QUk9HUkFNUyA9IG1vdW50IHVtb3VudAorc2Jpbl9QUk9HUkFNUyA9IGxvc2V0dXAgc3dhcG9uCitkaXN0X21hbl9NQU5TID0gZnN0YWIuNSBtb3VudC44IHN3YXBvZmYuOCBzd2Fwb24uOCB1bW91bnQuOCBsb3NldHVwLjgKKworIyBnZW5lcmljIHNvdXJjZXMgZm9yIGFsbCBwcm9ncmFtcyAobW91bnQsIHVtb3VudCwgbG9zZXR1cCkKK3NyY3NfY29tbW9uID0gc3VuZHJpZXMuYyB4bWFsbG9jLmMgLi4vbGliL2Nhbm9uaWNhbGl6ZS5jIHN1bmRyaWVzLmggeG1hbGxvYy5oCisKKyMgZ2VuZXJpYyBoZWFkZXIgZm9yIG1vdW50IGFuZCB1bW91bnQKK2hkcnNfbW91bnQgPSBmc3RhYi5oIG1vdW50X21udGVudC5oIG1vdW50X2NvbnN0YW50cy5oIFwKKwlsb21vdW50LmggZ2V0dXNlcm5hbWUuaCBsb29wLmgKKworIyBnZW5lcmljIHNvdXJjZXMgZm9yIG1vdW50IGFuZCB1bW91bnQKK3NyY3NfbW91bnQgPSBmc3RhYi5jIG1vdW50X21udGVudC5jIGdldHVzZXJuYW1lLmMgbG9tb3VudC5jIGRldm5hbWUuYyBkZXZuYW1lLmggXAorCSQoc3Jjc19jb21tb24pICQoaGRyc19tb3VudCkgLi4vbGliL2Vudi5jIC4uL2xpYi9saW51eF92ZXJzaW9uLmMgXAorCS4uL2xpYi9ibGtkZXYuYyAuLi9saWIvZnNwcm9iZS5jCisKKyMgZ2VuZXJpYyBmbGFncyBmb3IgYWxsIHByb2dyYW1zIChleGNlcHQgbG9zZXR1cCkKKyMgLS0gbm90ZSB0aGF0IHBrZy1jb25maWcgYXV0b2NvbmYgbWFjcm9zIChwa2cubTQpIGRvZXMgbm90IGRpZmZlcmVudGlhdGUKKyMgICAgYmV0d2VlbiBDRkxBR1MgYW5kIENQUEZMQUdTLCB3ZSBmb2xsb3cgdGhpcyBiZWhhdmlvdXIgYW5kIHVzZSBDRkxBR1Mgb25seS4KK2xkYWRkX2NvbW1vbiA9CitsZGFkZF9zdGF0aWMgPQorY2ZsYWdzX2NvbW1vbiA9ICQoQU1fQ0ZMQUdTKQorbGRmbGFnc19zdGF0aWMgPSAtYWxsLXN0YXRpYworCittb3VudF9TT1VSQ0VTID0gbW91bnQuYyAkKHNyY3NfbW91bnQpIC4uL2xpYi9zZXRwcm9jdGl0bGUuYworbW91bnRfQ0ZMQUdTID0gJChTVUlEX0NGTEFHUykgJChjZmxhZ3NfY29tbW9uKQorbW91bnRfTERGTEFHUyA9ICQoU1VJRF9MREZMQUdTKSAkKEFNX0xERkxBR1MpCittb3VudF9MREFERCA9ICQobGRhZGRfY29tbW9uKQorCit1bW91bnRfU09VUkNFUyA9IHVtb3VudC5jICQoc3Jjc19tb3VudCkKK3Vtb3VudF9DRkxBR1MgPSAkKFNVSURfQ0ZMQUdTKSAkKGNmbGFnc19jb21tb24pCit1bW91bnRfTERGTEFHUyA9ICQoU1VJRF9MREZMQUdTKSAkKEFNX0xERkxBR1MpCit1bW91bnRfTERBREQgPSAkKGxkYWRkX2NvbW1vbikKKworc3dhcG9uX1NPVVJDRVMgPSBzd2Fwb24uYyBzd2FwX2NvbnN0YW50cy5oIC4uL2xpYi9saW51eF92ZXJzaW9uLmMgXAorCS4uL2xpYi9ibGtkZXYuYyAuLi9saWIvZnNwcm9iZS5jIC4uL2xpYi9jYW5vbmljYWxpemUuYworc3dhcG9uX0NGTEFHUyA9ICQoY2ZsYWdzX2NvbW1vbikKK3N3YXBvbl9MREFERCA9ICQobGRhZGRfY29tbW9uKQorCitsb3NldHVwX1NPVVJDRVMgPSBsb21vdW50LmMgJChzcmNzX2NvbW1vbikgbG9vcC5oIGxvbW91bnQuaAorbG9zZXR1cF9DUFBGTEFHUyA9IC1ETUFJTiAkKEFNX0NQUEZMQUdTKQorCittb3VudF9zdGF0aWNfTERBREQgPQorCitpZiBIQVZFX1NUQVRJQ19NT1VOVAorYmluX1BST0dSQU1TICs9IG1vdW50LnN0YXRpYworbW91bnRfc3RhdGljX1NPVVJDRVMgPSAkKG1vdW50X1NPVVJDRVMpCittb3VudF9zdGF0aWNfQ0ZMQUdTID0gJChjZmxhZ3NfY29tbW9uKQorbW91bnRfc3RhdGljX0xERkxBR1MgPSAkKGxkZmxhZ3Nfc3RhdGljKQorbW91bnRfc3RhdGljX0xEQUREICs9ICQobGRhZGRfc3RhdGljKQorZW5kaWYKKworaWYgSEFWRV9TVEFUSUNfVU1PVU5UCitiaW5fUFJPR1JBTVMgKz0gdW1vdW50LnN0YXRpYwordW1vdW50X3N0YXRpY19TT1VSQ0VTID0gJCh1bW91bnRfU09VUkNFUykKK3Vtb3VudF9zdGF0aWNfQ0ZMQUdTID0gJChjZmxhZ3NfY29tbW9uKQordW1vdW50X3N0YXRpY19MREZMQUdTID0gJChsZGZsYWdzX3N0YXRpYykKK3Vtb3VudF9zdGF0aWNfTERBREQgPSAkKGxkYWRkX3N0YXRpYykKK2VuZGlmCisKK2lmIEhBVkVfU1RBVElDX0xPU0VUVVAKK2Jpbl9QUk9HUkFNUyArPSBsb3NldHVwLnN0YXRpYworbG9zZXR1cF9zdGF0aWNfU09VUkNFUyA9ICQobG9zZXR1cF9TT1VSQ0VTKQorbG9zZXR1cF9zdGF0aWNfTERGTEFHUyA9ICQobGRmbGFnc19zdGF0aWMpCitsb3NldHVwX3N0YXRpY19DUFBGTEFHUyA9IC1ETUFJTiAkKEFNX0NQUEZMQUdTKQorZW5kaWYKKworaWYgQlVJTERfTElCQkxLSUQKK2xkYWRkX2NvbW1vbiArPSAkKHVsX2xpYmJsa2lkX2xhKQorbGRhZGRfc3RhdGljICs9ICQodWxfbGliYmxraWRfbGEpCitjZmxhZ3NfY29tbW9uICs9IC1JJCh1bF9saWJibGtpZF9pbmNkaXIpCitlbHNlCitsZGFkZF9jb21tb24gKz0gJChCTEtJRF9MSUJTKQorbGRhZGRfc3RhdGljICs9ICQoQkxLSURfTElCU19TVEFUSUMpCitjZmxhZ3NfY29tbW9uICs9ICQoQkxLSURfQ0ZMQUdTKQorZW5kaWYKKworaWYgSEFWRV9TRUxJTlVYCittb3VudF9MREFERCArPSAkKFNFTElOVVhfTElCUykKK21vdW50X3N0YXRpY19MREFERCArPSAkKFNFTElOVVhfTElCU19TVEFUSUMpCitlbmRpZgorCitub2luc3RfUFJPR1JBTVMgPSBtdGFiX2xvY2tfdGVzdAorbXRhYl9sb2NrX3Rlc3RfU09VUkNFUyA9IGZzdGFiLmMgJChzcmNzX2NvbW1vbikgJChoZHJzX21vdW50KQorbXRhYl9sb2NrX3Rlc3RfQ1BQRkxBR1MgPSAtRE1BSU5fVEVTVF9NVEFCTE9DSyAkKEFNX0NQUEZMQUdTKQorCitpbnN0YWxsLWV4ZWMtaG9vazoKKwljZCAkKERFU1RESVIpJChzYmluZGlyKSAmJiBsbiAtc2Ygc3dhcG9uIHN3YXBvZmYKK2lmIE1BS0VJTlNUQUxMX0RPX1NFVFVJRAorCWNobW9kIDQ3NTUgJChERVNURElSKSQoYmluZGlyKS9tb3VudAorCWNobW9kIDQ3NTUgJChERVNURElSKSQoYmluZGlyKS91bW91bnQKK2VuZGlmCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdhMzgyNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L01ha2VmaWxlLmluCkBAIC0wLDAgKzEsMjE5OCBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoZGlzdF9tYW5fTUFOUykgJChkaXN0X25vaW5zdF9EQVRBKSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorYmluX1BST0dSQU1TID0gbW91bnQkKEVYRUVYVCkgdW1vdW50JChFWEVFWFQpICQoYW1fX0VYRUVYVF8xKSBcCisJJChhbV9fRVhFRVhUXzIpICQoYW1fX0VYRUVYVF8zKQorc2Jpbl9QUk9HUkFNUyA9IGxvc2V0dXAkKEVYRUVYVCkgc3dhcG9uJChFWEVFWFQpCitASEFWRV9TVEFUSUNfTU9VTlRfVFJVRUBhbV9fYXBwZW5kXzEgPSBtb3VudC5zdGF0aWMKK0BIQVZFX1NUQVRJQ19NT1VOVF9UUlVFQGFtX19hcHBlbmRfMiA9ICQobGRhZGRfc3RhdGljKQorQEhBVkVfU1RBVElDX1VNT1VOVF9UUlVFQGFtX19hcHBlbmRfMyA9IHVtb3VudC5zdGF0aWMKK0BIQVZFX1NUQVRJQ19MT1NFVFVQX1RSVUVAYW1fX2FwcGVuZF80ID0gbG9zZXR1cC5zdGF0aWMKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQGFtX19hcHBlbmRfNSA9ICQodWxfbGliYmxraWRfbGEpCitAQlVJTERfTElCQkxLSURfVFJVRUBhbV9fYXBwZW5kXzYgPSAkKHVsX2xpYmJsa2lkX2xhKQorQEJVSUxEX0xJQkJMS0lEX1RSVUVAYW1fX2FwcGVuZF83ID0gLUkkKHVsX2xpYmJsa2lkX2luY2RpcikKK0BCVUlMRF9MSUJCTEtJRF9GQUxTRUBhbV9fYXBwZW5kXzggPSAkKEJMS0lEX0xJQlMpCitAQlVJTERfTElCQkxLSURfRkFMU0VAYW1fX2FwcGVuZF85ID0gJChCTEtJRF9MSUJTX1NUQVRJQykKK0BCVUlMRF9MSUJCTEtJRF9GQUxTRUBhbV9fYXBwZW5kXzEwID0gJChCTEtJRF9DRkxBR1MpCitASEFWRV9TRUxJTlVYX1RSVUVAYW1fX2FwcGVuZF8xMSA9ICQoU0VMSU5VWF9MSUJTKQorQEhBVkVfU0VMSU5VWF9UUlVFQGFtX19hcHBlbmRfMTIgPSAkKFNFTElOVVhfTElCU19TVEFUSUMpCitub2luc3RfUFJPR1JBTVMgPSBtdGFiX2xvY2tfdGVzdCQoRVhFRVhUKQorc3ViZGlyID0gbW91bnQKK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL200L2dldHRleHQubTQgXAorCSQodG9wX3NyY2RpcikvbTQvZ3RrLWRvYy5tNCAkKHRvcF9zcmNkaXIpL200L2ljb252Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1sZC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYi1saW5rLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1wcmVmaXgubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbmxzLm00ICQodG9wX3NyY2RpcikvbTQvcG8ubTQgXAorCSQodG9wX3NyY2RpcikvbTQvcHJvZ3Rlc3QubTQgJCh0b3Bfc3JjZGlyKS9tNC90bHMubTQgXAorCSQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oCitDT05GSUdfQ0xFQU5fRklMRVMgPQorQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK0BIQVZFX1NUQVRJQ19NT1VOVF9UUlVFQGFtX19FWEVFWFRfMSA9IG1vdW50LnN0YXRpYyQoRVhFRVhUKQorQEhBVkVfU1RBVElDX1VNT1VOVF9UUlVFQGFtX19FWEVFWFRfMiA9IHVtb3VudC5zdGF0aWMkKEVYRUVYVCkKK0BIQVZFX1NUQVRJQ19MT1NFVFVQX1RSVUVAYW1fX0VYRUVYVF8zID0gbG9zZXR1cC5zdGF0aWMkKEVYRUVYVCkKK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChiaW5kaXIpIiAiJChERVNURElSKSQoc2JpbmRpcikiIFwKKwkiJChERVNURElSKSQobWFuNWRpcikiICIkKERFU1RESVIpJChtYW44ZGlyKSIKK1BST0dSQU1TID0gJChiaW5fUFJPR1JBTVMpICQobm9pbnN0X1BST0dSQU1TKSAkKHNiaW5fUFJPR1JBTVMpCithbV9fb2JqZWN0c18xID0gbG9zZXR1cC1zdW5kcmllcy4kKE9CSkVYVCkgbG9zZXR1cC14bWFsbG9jLiQoT0JKRVhUKSBcCisJbG9zZXR1cC1jYW5vbmljYWxpemUuJChPQkpFWFQpCithbV9sb3NldHVwX09CSkVDVFMgPSBsb3NldHVwLWxvbW91bnQuJChPQkpFWFQpICQoYW1fX29iamVjdHNfMSkKK2xvc2V0dXBfT0JKRUNUUyA9ICQoYW1fbG9zZXR1cF9PQkpFQ1RTKQorbG9zZXR1cF9MREFERCA9ICQoTERBREQpCitBTV9WX2x0ID0gJChhbV9fdl9sdF8kKFYpKQorYW1fX3ZfbHRfID0gJChhbV9fdl9sdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2x0XzAgPSAtLXNpbGVudAorYW1fX2xvc2V0dXBfc3RhdGljX1NPVVJDRVNfRElTVCA9IGxvbW91bnQuYyBzdW5kcmllcy5jIHhtYWxsb2MuYyBcCisJLi4vbGliL2Nhbm9uaWNhbGl6ZS5jIHN1bmRyaWVzLmggeG1hbGxvYy5oIGxvb3AuaCBsb21vdW50LmgKK2FtX19vYmplY3RzXzIgPSBsb3NldHVwX3N0YXRpYy1zdW5kcmllcy4kKE9CSkVYVCkgXAorCWxvc2V0dXBfc3RhdGljLXhtYWxsb2MuJChPQkpFWFQpIFwKKwlsb3NldHVwX3N0YXRpYy1jYW5vbmljYWxpemUuJChPQkpFWFQpCithbV9fb2JqZWN0c18zID0gbG9zZXR1cF9zdGF0aWMtbG9tb3VudC4kKE9CSkVYVCkgJChhbV9fb2JqZWN0c18yKQorQEhBVkVfU1RBVElDX0xPU0VUVVBfVFJVRUBhbV9sb3NldHVwX3N0YXRpY19PQkpFQ1RTID0gIFwKK0BIQVZFX1NUQVRJQ19MT1NFVFVQX1RSVUVACSQoYW1fX29iamVjdHNfMykKK2xvc2V0dXBfc3RhdGljX09CSkVDVFMgPSAkKGFtX2xvc2V0dXBfc3RhdGljX09CSkVDVFMpCitsb3NldHVwX3N0YXRpY19MREFERCA9ICQoTERBREQpCitsb3NldHVwX3N0YXRpY19MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDIFwKKwkkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgXAorCSQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChsb3NldHVwX3N0YXRpY19MREZMQUdTKSAkKExERkxBR1MpIC1vIFwKKwkkQAorYW1fX29iamVjdHNfNCA9IG1vdW50LXN1bmRyaWVzLiQoT0JKRVhUKSBtb3VudC14bWFsbG9jLiQoT0JKRVhUKSBcCisJbW91bnQtY2Fub25pY2FsaXplLiQoT0JKRVhUKQorYW1fX29iamVjdHNfNSA9CithbV9fb2JqZWN0c182ID0gbW91bnQtZnN0YWIuJChPQkpFWFQpIG1vdW50LW1vdW50X21udGVudC4kKE9CSkVYVCkgXAorCW1vdW50LWdldHVzZXJuYW1lLiQoT0JKRVhUKSBtb3VudC1sb21vdW50LiQoT0JKRVhUKSBcCisJbW91bnQtZGV2bmFtZS4kKE9CSkVYVCkgJChhbV9fb2JqZWN0c180KSAkKGFtX19vYmplY3RzXzUpIFwKKwltb3VudC1lbnYuJChPQkpFWFQpIG1vdW50LWxpbnV4X3ZlcnNpb24uJChPQkpFWFQpIFwKKwltb3VudC1ibGtkZXYuJChPQkpFWFQpIG1vdW50LWZzcHJvYmUuJChPQkpFWFQpCithbV9tb3VudF9PQkpFQ1RTID0gbW91bnQtbW91bnQuJChPQkpFWFQpICQoYW1fX29iamVjdHNfNikgXAorCW1vdW50LXNldHByb2N0aXRsZS4kKE9CSkVYVCkKK21vdW50X09CSkVDVFMgPSAkKGFtX21vdW50X09CSkVDVFMpCithbV9fREVQRU5ERU5DSUVTXzEgPQorQEJVSUxEX0xJQkJMS0lEX0ZBTFNFQGFtX19ERVBFTkRFTkNJRVNfMiA9ICQoYW1fX0RFUEVOREVOQ0lFU18xKQorYW1fX0RFUEVOREVOQ0lFU18zID0gJChhbV9fYXBwZW5kXzUpICQoYW1fX0RFUEVOREVOQ0lFU18yKQorQEhBVkVfU0VMSU5VWF9UUlVFQGFtX19ERVBFTkRFTkNJRVNfNCA9ICQoYW1fX0RFUEVOREVOQ0lFU18xKQorbW91bnRfREVQRU5ERU5DSUVTID0gJChhbV9fREVQRU5ERU5DSUVTXzMpICQoYW1fX0RFUEVOREVOQ0lFU180KQorbW91bnRfTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQobW91bnRfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorYW1fX21vdW50X3N0YXRpY19TT1VSQ0VTX0RJU1QgPSBtb3VudC5jIGZzdGFiLmMgbW91bnRfbW50ZW50LmMgXAorCWdldHVzZXJuYW1lLmMgbG9tb3VudC5jIGRldm5hbWUuYyBkZXZuYW1lLmggc3VuZHJpZXMuYyBcCisJeG1hbGxvYy5jIC4uL2xpYi9jYW5vbmljYWxpemUuYyBzdW5kcmllcy5oIHhtYWxsb2MuaCBmc3RhYi5oIFwKKwltb3VudF9tbnRlbnQuaCBtb3VudF9jb25zdGFudHMuaCBsb21vdW50LmggZ2V0dXNlcm5hbWUuaCBcCisJbG9vcC5oIC4uL2xpYi9lbnYuYyAuLi9saWIvbGludXhfdmVyc2lvbi5jIC4uL2xpYi9ibGtkZXYuYyBcCisJLi4vbGliL2ZzcHJvYmUuYyAuLi9saWIvc2V0cHJvY3RpdGxlLmMKK2FtX19vYmplY3RzXzcgPSBtb3VudF9zdGF0aWMtc3VuZHJpZXMuJChPQkpFWFQpIFwKKwltb3VudF9zdGF0aWMteG1hbGxvYy4kKE9CSkVYVCkgXAorCW1vdW50X3N0YXRpYy1jYW5vbmljYWxpemUuJChPQkpFWFQpCithbV9fb2JqZWN0c184ID0gbW91bnRfc3RhdGljLWZzdGFiLiQoT0JKRVhUKSBcCisJbW91bnRfc3RhdGljLW1vdW50X21udGVudC4kKE9CSkVYVCkgXAorCW1vdW50X3N0YXRpYy1nZXR1c2VybmFtZS4kKE9CSkVYVCkgXAorCW1vdW50X3N0YXRpYy1sb21vdW50LiQoT0JKRVhUKSBtb3VudF9zdGF0aWMtZGV2bmFtZS4kKE9CSkVYVCkgXAorCSQoYW1fX29iamVjdHNfNykgJChhbV9fb2JqZWN0c181KSBtb3VudF9zdGF0aWMtZW52LiQoT0JKRVhUKSBcCisJbW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24uJChPQkpFWFQpIFwKKwltb3VudF9zdGF0aWMtYmxrZGV2LiQoT0JKRVhUKSBtb3VudF9zdGF0aWMtZnNwcm9iZS4kKE9CSkVYVCkKK2FtX19vYmplY3RzXzkgPSBtb3VudF9zdGF0aWMtbW91bnQuJChPQkpFWFQpICQoYW1fX29iamVjdHNfOCkgXAorCW1vdW50X3N0YXRpYy1zZXRwcm9jdGl0bGUuJChPQkpFWFQpCitASEFWRV9TVEFUSUNfTU9VTlRfVFJVRUBhbV9tb3VudF9zdGF0aWNfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfOSkKK21vdW50X3N0YXRpY19PQkpFQ1RTID0gJChhbV9tb3VudF9zdGF0aWNfT0JKRUNUUykKK2FtX19ERVBFTkRFTkNJRVNfNSA9ICQoYW1fX2FwcGVuZF82KSAkKGFtX19ERVBFTkRFTkNJRVNfMikKK0BIQVZFX1NUQVRJQ19NT1VOVF9UUlVFQGFtX19ERVBFTkRFTkNJRVNfNiA9ICQoYW1fX0RFUEVOREVOQ0lFU181KQorbW91bnRfc3RhdGljX0RFUEVOREVOQ0lFUyA9ICQoYW1fX0RFUEVOREVOQ0lFU182KSBcCisJJChhbV9fREVQRU5ERU5DSUVTXzQpCittb3VudF9zdGF0aWNfTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQobW91bnRfc3RhdGljX0NGTEFHUykgXAorCSQoQ0ZMQUdTKSAkKG1vdW50X3N0YXRpY19MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV9fb2JqZWN0c18xMCA9IG10YWJfbG9ja190ZXN0LXN1bmRyaWVzLiQoT0JKRVhUKSBcCisJbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy4kKE9CSkVYVCkgXAorCW10YWJfbG9ja190ZXN0LWNhbm9uaWNhbGl6ZS4kKE9CSkVYVCkKK2FtX210YWJfbG9ja190ZXN0X09CSkVDVFMgPSBtdGFiX2xvY2tfdGVzdC1mc3RhYi4kKE9CSkVYVCkgXAorCSQoYW1fX29iamVjdHNfMTApICQoYW1fX29iamVjdHNfNSkKK210YWJfbG9ja190ZXN0X09CSkVDVFMgPSAkKGFtX210YWJfbG9ja190ZXN0X09CSkVDVFMpCittdGFiX2xvY2tfdGVzdF9MREFERCA9ICQoTERBREQpCithbV9zd2Fwb25fT0JKRUNUUyA9IHN3YXBvbi1zd2Fwb24uJChPQkpFWFQpIFwKKwlzd2Fwb24tbGludXhfdmVyc2lvbi4kKE9CSkVYVCkgc3dhcG9uLWJsa2Rldi4kKE9CSkVYVCkgXAorCXN3YXBvbi1mc3Byb2JlLiQoT0JKRVhUKSBzd2Fwb24tY2Fub25pY2FsaXplLiQoT0JKRVhUKQorc3dhcG9uX09CSkVDVFMgPSAkKGFtX3N3YXBvbl9PQkpFQ1RTKQorc3dhcG9uX0RFUEVOREVOQ0lFUyA9ICQoYW1fX0RFUEVOREVOQ0lFU18zKQorc3dhcG9uX0xJTksgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV9fb2JqZWN0c18xMSA9IHVtb3VudC1zdW5kcmllcy4kKE9CSkVYVCkgdW1vdW50LXhtYWxsb2MuJChPQkpFWFQpIFwKKwl1bW91bnQtY2Fub25pY2FsaXplLiQoT0JKRVhUKQorYW1fX29iamVjdHNfMTIgPSB1bW91bnQtZnN0YWIuJChPQkpFWFQpIHVtb3VudC1tb3VudF9tbnRlbnQuJChPQkpFWFQpIFwKKwl1bW91bnQtZ2V0dXNlcm5hbWUuJChPQkpFWFQpIHVtb3VudC1sb21vdW50LiQoT0JKRVhUKSBcCisJdW1vdW50LWRldm5hbWUuJChPQkpFWFQpICQoYW1fX29iamVjdHNfMTEpICQoYW1fX29iamVjdHNfNSkgXAorCXVtb3VudC1lbnYuJChPQkpFWFQpIHVtb3VudC1saW51eF92ZXJzaW9uLiQoT0JKRVhUKSBcCisJdW1vdW50LWJsa2Rldi4kKE9CSkVYVCkgdW1vdW50LWZzcHJvYmUuJChPQkpFWFQpCithbV91bW91bnRfT0JKRUNUUyA9IHVtb3VudC11bW91bnQuJChPQkpFWFQpICQoYW1fX29iamVjdHNfMTIpCit1bW91bnRfT0JKRUNUUyA9ICQoYW1fdW1vdW50X09CSkVDVFMpCit1bW91bnRfREVQRU5ERU5DSUVTID0gJChhbV9fREVQRU5ERU5DSUVTXzMpCit1bW91bnRfTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKHVtb3VudF9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV9fdW1vdW50X3N0YXRpY19TT1VSQ0VTX0RJU1QgPSB1bW91bnQuYyBmc3RhYi5jIG1vdW50X21udGVudC5jIFwKKwlnZXR1c2VybmFtZS5jIGxvbW91bnQuYyBkZXZuYW1lLmMgZGV2bmFtZS5oIHN1bmRyaWVzLmMgXAorCXhtYWxsb2MuYyAuLi9saWIvY2Fub25pY2FsaXplLmMgc3VuZHJpZXMuaCB4bWFsbG9jLmggZnN0YWIuaCBcCisJbW91bnRfbW50ZW50LmggbW91bnRfY29uc3RhbnRzLmggbG9tb3VudC5oIGdldHVzZXJuYW1lLmggXAorCWxvb3AuaCAuLi9saWIvZW52LmMgLi4vbGliL2xpbnV4X3ZlcnNpb24uYyAuLi9saWIvYmxrZGV2LmMgXAorCS4uL2xpYi9mc3Byb2JlLmMKK2FtX19vYmplY3RzXzEzID0gdW1vdW50X3N0YXRpYy1zdW5kcmllcy4kKE9CSkVYVCkgXAorCXVtb3VudF9zdGF0aWMteG1hbGxvYy4kKE9CSkVYVCkgXAorCXVtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLiQoT0JKRVhUKQorYW1fX29iamVjdHNfMTQgPSB1bW91bnRfc3RhdGljLWZzdGFiLiQoT0JKRVhUKSBcCisJdW1vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQuJChPQkpFWFQpIFwKKwl1bW91bnRfc3RhdGljLWdldHVzZXJuYW1lLiQoT0JKRVhUKSBcCisJdW1vdW50X3N0YXRpYy1sb21vdW50LiQoT0JKRVhUKSBcCisJdW1vdW50X3N0YXRpYy1kZXZuYW1lLiQoT0JKRVhUKSAkKGFtX19vYmplY3RzXzEzKSBcCisJJChhbV9fb2JqZWN0c181KSB1bW91bnRfc3RhdGljLWVudi4kKE9CSkVYVCkgXAorCXVtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi4kKE9CSkVYVCkgXAorCXVtb3VudF9zdGF0aWMtYmxrZGV2LiQoT0JKRVhUKSB1bW91bnRfc3RhdGljLWZzcHJvYmUuJChPQkpFWFQpCithbV9fb2JqZWN0c18xNSA9IHVtb3VudF9zdGF0aWMtdW1vdW50LiQoT0JKRVhUKSAkKGFtX19vYmplY3RzXzE0KQorQEhBVkVfU1RBVElDX1VNT1VOVF9UUlVFQGFtX3Vtb3VudF9zdGF0aWNfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMTUpCit1bW91bnRfc3RhdGljX09CSkVDVFMgPSAkKGFtX3Vtb3VudF9zdGF0aWNfT0JKRUNUUykKK0BIQVZFX1NUQVRJQ19VTU9VTlRfVFJVRUB1bW91bnRfc3RhdGljX0RFUEVOREVOQ0lFUyA9ICBcCitASEFWRV9TVEFUSUNfVU1PVU5UX1RSVUVACSQoYW1fX0RFUEVOREVOQ0lFU181KQordW1vdW50X3N0YXRpY19MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgXAorCSQoQ0ZMQUdTKSAkKHVtb3VudF9zdGF0aWNfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSAkKGxvc2V0dXBfU09VUkNFUykgJChsb3NldHVwX3N0YXRpY19TT1VSQ0VTKSBcCisJJChtb3VudF9TT1VSQ0VTKSAkKG1vdW50X3N0YXRpY19TT1VSQ0VTKSBcCisJJChtdGFiX2xvY2tfdGVzdF9TT1VSQ0VTKSAkKHN3YXBvbl9TT1VSQ0VTKSAkKHVtb3VudF9TT1VSQ0VTKSBcCisJJCh1bW91bnRfc3RhdGljX1NPVVJDRVMpCitESVNUX1NPVVJDRVMgPSAkKGxvc2V0dXBfU09VUkNFUykgJChhbV9fbG9zZXR1cF9zdGF0aWNfU09VUkNFU19ESVNUKSBcCisJJChtb3VudF9TT1VSQ0VTKSAkKGFtX19tb3VudF9zdGF0aWNfU09VUkNFU19ESVNUKSBcCisJJChtdGFiX2xvY2tfdGVzdF9TT1VSQ0VTKSAkKHN3YXBvbl9TT1VSQ0VTKSAkKHVtb3VudF9TT1VSQ0VTKSBcCisJJChhbV9fdW1vdW50X3N0YXRpY19TT1VSQ0VTX0RJU1QpCithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCittYW41ZGlyID0gJChtYW5kaXIpL21hbjUKK21hbjhkaXIgPSAkKG1hbmRpcikvbWFuOAorTlJPRkYgPSBucm9mZgorTUFOUyA9ICQoZGlzdF9tYW5fTUFOUykKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSBcCisJLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIgorCitBTV9DRkxBR1MgPSAtZnNpZ25lZC1jaGFyCitBTV9MREZMQUdTID0gCisKKyMgQXV0b21ha2UgKGF0IGxlYXN0IHVwIHRvIDEuMTApIG1pc2hhbmRsZXMgZGlzdF9tYW5fTUFOUyBpbnNpZGUgY29uZGl0aW9uYWxzLgorIyBVbmxpa2Ugd2l0aCBvdGhlciBkaXN0IHByaW1hcmllcywgdGhlIGZpbGVzIGFyZSBub3QgZGlzdHJpYnV0ZWQgaWYgdGhlCisjIGNvbmRpdGlvbmFsIGlzIGZhbHNlLgorIyBXb3JrIHRoZSBidWcgYXJvdW5kIHVudGlsIGl0IGlzIGZpeGVkOgorZGlzdF9ub2luc3RfREFUQSA9ICQoZGlzdF9tYW5fTUFOUykKKworIyBQYXRocyB0byBpbi10cmVlIGxpYnJhcmllcyAodXNlIHVsXyBwcmVmaXggdG8gYXZvaWQgcG9zc2libGUgY29sbGlzaW9ucykKKyMKKyMgYmxraWQKK3VsX2xpYmJsa2lkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYy9saWJibGtpZC5sYQorCisjIGJsa2lkLmggaXMgZ2VuZXJhdGVkIGJ5IC4vY29uZmlndXJlIHNjcmlwdCBhbmQgc3RvcmVkIGluIGJ1aWxkIGRpcmVjdG9yeQordWxfbGliYmxraWRfaW5jZGlyID0gJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworIyB1dWlkCit1bF9saWJ1dWlkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMvbGlidXVpZC5sYQorRVhUUkFfRElTVCA9IFJFQURNRS5tb3VudAorZGlzdF9tYW5fTUFOUyA9IGZzdGFiLjUgbW91bnQuOCBzd2Fwb2ZmLjggc3dhcG9uLjggdW1vdW50LjggbG9zZXR1cC44CisKKyMgZ2VuZXJpYyBzb3VyY2VzIGZvciBhbGwgcHJvZ3JhbXMgKG1vdW50LCB1bW91bnQsIGxvc2V0dXApCitzcmNzX2NvbW1vbiA9IHN1bmRyaWVzLmMgeG1hbGxvYy5jIC4uL2xpYi9jYW5vbmljYWxpemUuYyBzdW5kcmllcy5oIHhtYWxsb2MuaAorCisjIGdlbmVyaWMgaGVhZGVyIGZvciBtb3VudCBhbmQgdW1vdW50CitoZHJzX21vdW50ID0gZnN0YWIuaCBtb3VudF9tbnRlbnQuaCBtb3VudF9jb25zdGFudHMuaCBcCisJbG9tb3VudC5oIGdldHVzZXJuYW1lLmggbG9vcC5oCisKKworIyBnZW5lcmljIHNvdXJjZXMgZm9yIG1vdW50IGFuZCB1bW91bnQKK3NyY3NfbW91bnQgPSBmc3RhYi5jIG1vdW50X21udGVudC5jIGdldHVzZXJuYW1lLmMgbG9tb3VudC5jIGRldm5hbWUuYyBkZXZuYW1lLmggXAorCSQoc3Jjc19jb21tb24pICQoaGRyc19tb3VudCkgLi4vbGliL2Vudi5jIC4uL2xpYi9saW51eF92ZXJzaW9uLmMgXAorCS4uL2xpYi9ibGtkZXYuYyAuLi9saWIvZnNwcm9iZS5jCisKKworIyBnZW5lcmljIGZsYWdzIGZvciBhbGwgcHJvZ3JhbXMgKGV4Y2VwdCBsb3NldHVwKQorIyAtLSBub3RlIHRoYXQgcGtnLWNvbmZpZyBhdXRvY29uZiBtYWNyb3MgKHBrZy5tNCkgZG9lcyBub3QgZGlmZmVyZW50aWF0ZQorIyAgICBiZXR3ZWVuIENGTEFHUyBhbmQgQ1BQRkxBR1MsIHdlIGZvbGxvdyB0aGlzIGJlaGF2aW91ciBhbmQgdXNlIENGTEFHUyBvbmx5LgorbGRhZGRfY29tbW9uID0gJChhbV9fYXBwZW5kXzUpICQoYW1fX2FwcGVuZF84KQorbGRhZGRfc3RhdGljID0gJChhbV9fYXBwZW5kXzYpICQoYW1fX2FwcGVuZF85KQorY2ZsYWdzX2NvbW1vbiA9ICQoQU1fQ0ZMQUdTKSAkKGFtX19hcHBlbmRfNykgJChhbV9fYXBwZW5kXzEwKQorbGRmbGFnc19zdGF0aWMgPSAtYWxsLXN0YXRpYworbW91bnRfU09VUkNFUyA9IG1vdW50LmMgJChzcmNzX21vdW50KSAuLi9saWIvc2V0cHJvY3RpdGxlLmMKK21vdW50X0NGTEFHUyA9ICQoU1VJRF9DRkxBR1MpICQoY2ZsYWdzX2NvbW1vbikKK21vdW50X0xERkxBR1MgPSAkKFNVSURfTERGTEFHUykgJChBTV9MREZMQUdTKQorbW91bnRfTERBREQgPSAkKGxkYWRkX2NvbW1vbikgJChhbV9fYXBwZW5kXzExKQordW1vdW50X1NPVVJDRVMgPSB1bW91bnQuYyAkKHNyY3NfbW91bnQpCit1bW91bnRfQ0ZMQUdTID0gJChTVUlEX0NGTEFHUykgJChjZmxhZ3NfY29tbW9uKQordW1vdW50X0xERkxBR1MgPSAkKFNVSURfTERGTEFHUykgJChBTV9MREZMQUdTKQordW1vdW50X0xEQUREID0gJChsZGFkZF9jb21tb24pCitzd2Fwb25fU09VUkNFUyA9IHN3YXBvbi5jIHN3YXBfY29uc3RhbnRzLmggLi4vbGliL2xpbnV4X3ZlcnNpb24uYyBcCisJLi4vbGliL2Jsa2Rldi5jIC4uL2xpYi9mc3Byb2JlLmMgLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCisKK3N3YXBvbl9DRkxBR1MgPSAkKGNmbGFnc19jb21tb24pCitzd2Fwb25fTERBREQgPSAkKGxkYWRkX2NvbW1vbikKK2xvc2V0dXBfU09VUkNFUyA9IGxvbW91bnQuYyAkKHNyY3NfY29tbW9uKSBsb29wLmggbG9tb3VudC5oCitsb3NldHVwX0NQUEZMQUdTID0gLURNQUlOICQoQU1fQ1BQRkxBR1MpCittb3VudF9zdGF0aWNfTERBREQgPSAkKGFtX19hcHBlbmRfMikgJChhbV9fYXBwZW5kXzEyKQorQEhBVkVfU1RBVElDX01PVU5UX1RSVUVAbW91bnRfc3RhdGljX1NPVVJDRVMgPSAkKG1vdW50X1NPVVJDRVMpCitASEFWRV9TVEFUSUNfTU9VTlRfVFJVRUBtb3VudF9zdGF0aWNfQ0ZMQUdTID0gJChjZmxhZ3NfY29tbW9uKQorQEhBVkVfU1RBVElDX01PVU5UX1RSVUVAbW91bnRfc3RhdGljX0xERkxBR1MgPSAkKGxkZmxhZ3Nfc3RhdGljKQorQEhBVkVfU1RBVElDX1VNT1VOVF9UUlVFQHVtb3VudF9zdGF0aWNfU09VUkNFUyA9ICQodW1vdW50X1NPVVJDRVMpCitASEFWRV9TVEFUSUNfVU1PVU5UX1RSVUVAdW1vdW50X3N0YXRpY19DRkxBR1MgPSAkKGNmbGFnc19jb21tb24pCitASEFWRV9TVEFUSUNfVU1PVU5UX1RSVUVAdW1vdW50X3N0YXRpY19MREZMQUdTID0gJChsZGZsYWdzX3N0YXRpYykKK0BIQVZFX1NUQVRJQ19VTU9VTlRfVFJVRUB1bW91bnRfc3RhdGljX0xEQUREID0gJChsZGFkZF9zdGF0aWMpCitASEFWRV9TVEFUSUNfTE9TRVRVUF9UUlVFQGxvc2V0dXBfc3RhdGljX1NPVVJDRVMgPSAkKGxvc2V0dXBfU09VUkNFUykKK0BIQVZFX1NUQVRJQ19MT1NFVFVQX1RSVUVAbG9zZXR1cF9zdGF0aWNfTERGTEFHUyA9ICQobGRmbGFnc19zdGF0aWMpCitASEFWRV9TVEFUSUNfTE9TRVRVUF9UUlVFQGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTID0gLURNQUlOICQoQU1fQ1BQRkxBR1MpCittdGFiX2xvY2tfdGVzdF9TT1VSQ0VTID0gZnN0YWIuYyAkKHNyY3NfY29tbW9uKSAkKGhkcnNfbW91bnQpCittdGFiX2xvY2tfdGVzdF9DUFBGTEFHUyA9IC1ETUFJTl9URVNUX01UQUJMT0NLICQoQU1fQ1BQRkxBR1MpCithbGw6IGFsbC1hbQorCisuU1VGRklYRVM6CisuU1VGRklYRVM6IC5jIC5sbyAubyAub2JqCiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gbW91bnQvTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduIG1vdW50L01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKK2luc3RhbGwtYmluUFJPR1JBTVM6ICQoYmluX1BST0dSQU1TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQoYmluZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoYmluZGlyKSIKKwlAbGlzdD0nJChiaW5fUFJPR1JBTVMpJzsgdGVzdCAtbiAiJChiaW5kaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisJc2VkICdzLyQoRVhFRVhUKSQkLy8nIHwgXAorCXdoaWxlIHJlYWQgcCBwMTsgZG8gaWYgdGVzdCAtZiAkJHAgfHwgdGVzdCAtZiAkJHAxOyBcCisJICB0aGVuIGVjaG8gIiQkcCI7IGVjaG8gIiQkcCI7IGVsc2UgOjsgZmk7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAncDtzLC4qLywsO247aCcgLWUgJ3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJyB8IFwKKwlzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxIH0gXAorCSAgeyBkPSQkMzsgaWYgKGRpcnNbZF0gIT0gMSkgeyBwcmludCAiZCIsIGQ7IGRpcnNbZF0gPSAxIH0gXAorCSAgICBpZiAoJCQyID09ICQkNCkgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgIGVsc2UgeyBwcmludCAiZiIsICQkMyAiLyIgJCQ0LCAkJDE7IH0gfSBcCisJICBFTkQgeyBmb3IgKGQgaW4gZmlsZXMpIHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCisJd2hpbGUgcmVhZCB0eXBlIGRpciBmaWxlczsgZG8gXAorCSAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKKwkgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAnJChERVNURElSKSQoYmluZGlyKSQkZGlyJyI7IFwKKwkgICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgIiQoREVTVERJUikkKGJpbmRpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgfSBcCisJOyBkb25lCisKK3VuaW5zdGFsbC1iaW5QUk9HUkFNUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKGJpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKwkgIHNlZCAtZSAnaDtzLF4uKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pJyBcCisJICAgICAgLWUgJ3MvJCQvJChFWEVFWFQpLycgYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKGJpbmRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJChiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK2NsZWFuLWJpblBST0dSQU1TOgorCUBsaXN0PSckKGJpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QKKworY2xlYW4tbm9pbnN0UFJPR1JBTVM6CisJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAoraW5zdGFsbC1zYmluUFJPR1JBTVM6ICQoc2Jpbl9QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHNiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChzYmluZGlyKSIKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoc2JpbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJChzYmluZGlyKSQkZGlyJyI7IFwKKwkgICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgIiQoREVTVERJUikkKHNiaW5kaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtc2JpblBST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoc2Jpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHNiaW5kaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChzYmluZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHNiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK2NsZWFuLXNiaW5QUk9HUkFNUzoKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAorbG9zZXR1cCQoRVhFRVhUKTogJChsb3NldHVwX09CSkVDVFMpICQobG9zZXR1cF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBsb3NldHVwJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGxvc2V0dXBfT0JKRUNUUykgJChsb3NldHVwX0xEQUREKSAkKExJQlMpCitsb3NldHVwLnN0YXRpYyQoRVhFRVhUKTogJChsb3NldHVwX3N0YXRpY19PQkpFQ1RTKSAkKGxvc2V0dXBfc3RhdGljX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGxvc2V0dXAuc3RhdGljJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChsb3NldHVwX3N0YXRpY19MSU5LKSAkKGxvc2V0dXBfc3RhdGljX09CSkVDVFMpICQobG9zZXR1cF9zdGF0aWNfTERBREQpICQoTElCUykKK21vdW50JChFWEVFWFQpOiAkKG1vdW50X09CSkVDVFMpICQobW91bnRfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgbW91bnQkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKG1vdW50X0xJTkspICQobW91bnRfT0JKRUNUUykgJChtb3VudF9MREFERCkgJChMSUJTKQorbW91bnQuc3RhdGljJChFWEVFWFQpOiAkKG1vdW50X3N0YXRpY19PQkpFQ1RTKSAkKG1vdW50X3N0YXRpY19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBtb3VudC5zdGF0aWMkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKG1vdW50X3N0YXRpY19MSU5LKSAkKG1vdW50X3N0YXRpY19PQkpFQ1RTKSAkKG1vdW50X3N0YXRpY19MREFERCkgJChMSUJTKQorbXRhYl9sb2NrX3Rlc3QkKEVYRUVYVCk6ICQobXRhYl9sb2NrX3Rlc3RfT0JKRUNUUykgJChtdGFiX2xvY2tfdGVzdF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBtdGFiX2xvY2tfdGVzdCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChtdGFiX2xvY2tfdGVzdF9PQkpFQ1RTKSAkKG10YWJfbG9ja190ZXN0X0xEQUREKSAkKExJQlMpCitzd2Fwb24kKEVYRUVYVCk6ICQoc3dhcG9uX09CSkVDVFMpICQoc3dhcG9uX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHN3YXBvbiQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoc3dhcG9uX0xJTkspICQoc3dhcG9uX09CSkVDVFMpICQoc3dhcG9uX0xEQUREKSAkKExJQlMpCit1bW91bnQkKEVYRUVYVCk6ICQodW1vdW50X09CSkVDVFMpICQodW1vdW50X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHVtb3VudCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQodW1vdW50X0xJTkspICQodW1vdW50X09CSkVDVFMpICQodW1vdW50X0xEQUREKSAkKExJQlMpCit1bW91bnQuc3RhdGljJChFWEVFWFQpOiAkKHVtb3VudF9zdGF0aWNfT0JKRUNUUykgJCh1bW91bnRfc3RhdGljX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHVtb3VudC5zdGF0aWMkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKHVtb3VudF9zdGF0aWNfTElOSykgJCh1bW91bnRfc3RhdGljX09CSkVDVFMpICQodW1vdW50X3N0YXRpY19MREFERCkgJChMSUJTKQorCittb3N0bHljbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLiQoT0JKRVhUKQorCitkaXN0Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi50YWIuYworCitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbG9zZXR1cC1jYW5vbmljYWxpemUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xvc2V0dXAtbG9tb3VudC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbG9zZXR1cC1zdW5kcmllcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbG9zZXR1cC14bWFsbG9jLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9sb3NldHVwX3N0YXRpYy1jYW5vbmljYWxpemUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xvc2V0dXBfc3RhdGljLWxvbW91bnQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xvc2V0dXBfc3RhdGljLXN1bmRyaWVzLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9sb3NldHVwX3N0YXRpYy14bWFsbG9jLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudC1ibGtkZXYuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50LWNhbm9uaWNhbGl6ZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbW91bnQtZGV2bmFtZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbW91bnQtZW52LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudC1mc3Byb2JlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudC1mc3RhYi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbW91bnQtZ2V0dXNlcm5hbWUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50LWxpbnV4X3ZlcnNpb24uUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50LWxvbW91bnQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50LW1vdW50LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudC1tb3VudF9tbnRlbnQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50LXNldHByb2N0aXRsZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbW91bnQtc3VuZHJpZXMuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50LXhtYWxsb2MuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50X3N0YXRpYy1ibGtkZXYuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50X3N0YXRpYy1jYW5vbmljYWxpemUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50X3N0YXRpYy1kZXZuYW1lLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudF9zdGF0aWMtZW52LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudF9zdGF0aWMtZnNwcm9iZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbW91bnRfc3RhdGljLWZzdGFiLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudF9zdGF0aWMtbG9tb3VudC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbW91bnRfc3RhdGljLW1vdW50LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudF9zdGF0aWMtbW91bnRfbW50ZW50LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3VudF9zdGF0aWMtc3VuZHJpZXMuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21vdW50X3N0YXRpYy14bWFsbG9jLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC1jYW5vbmljYWxpemUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL210YWJfbG9ja190ZXN0LWZzdGFiLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC1zdW5kcmllcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc3dhcG9uLWJsa2Rldi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc3dhcG9uLWNhbm9uaWNhbGl6ZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc3dhcG9uLWZzcHJvYmUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3N3YXBvbi1saW51eF92ZXJzaW9uLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zd2Fwb24tc3dhcG9uLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnQtYmxrZGV2LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnQtY2Fub25pY2FsaXplLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnQtZGV2bmFtZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW1vdW50LWVudi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW1vdW50LWZzcHJvYmUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Vtb3VudC1mc3RhYi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW1vdW50LWdldHVzZXJuYW1lLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnQtbGludXhfdmVyc2lvbi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW1vdW50LWxvbW91bnQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Vtb3VudC1tb3VudF9tbnRlbnQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Vtb3VudC1zdW5kcmllcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW1vdW50LXVtb3VudC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW1vdW50LXhtYWxsb2MuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Vtb3VudF9zdGF0aWMtYmxrZGV2LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW1vdW50X3N0YXRpYy1kZXZuYW1lLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnRfc3RhdGljLWVudi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW1vdW50X3N0YXRpYy1mc3Byb2JlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnRfc3RhdGljLWZzdGFiLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnRfc3RhdGljLWdldHVzZXJuYW1lLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24uUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Vtb3VudF9zdGF0aWMtbG9tb3VudC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW1vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Vtb3VudF9zdGF0aWMtc3VuZHJpZXMuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Vtb3VudF9zdGF0aWMtdW1vdW50LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bW91bnRfc3RhdGljLXhtYWxsb2MuUG9AYW1fX3F1b3RlQAorCisuYy5vOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyAkPAorCisuYy5vYmo6CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgYCQoQ1lHUEFUSF9XKSAnJDwnYAorCisuYy5sbzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKExUQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKExUQ09NUElMRSkgLWMgLW8gJEAgJDwKKworbG9zZXR1cC1sb21vdW50Lm86IGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGxvc2V0dXAtbG9tb3VudC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9sb3NldHVwLWxvbW91bnQuVHBvIC1jIC1vIGxvc2V0dXAtbG9tb3VudC5vIGB0ZXN0IC1mICdsb21vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbG9zZXR1cC1sb21vdW50LlRwbyAkKERFUERJUikvbG9zZXR1cC1sb21vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbG9tb3VudC5jJyBvYmplY3Q9J2xvc2V0dXAtbG9tb3VudC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChsb3NldHVwX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGxvc2V0dXAtbG9tb3VudC5vIGB0ZXN0IC1mICdsb21vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGxvbW91bnQuYworCitsb3NldHVwLWxvbW91bnQub2JqOiBsb21vdW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChsb3NldHVwX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsb3NldHVwLWxvbW91bnQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9sb3NldHVwLWxvbW91bnQuVHBvIC1jIC1vIGxvc2V0dXAtbG9tb3VudC5vYmogYGlmIHRlc3QgLWYgJ2xvbW91bnQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdsb21vdW50LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2xvbW91bnQuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbG9zZXR1cC1sb21vdW50LlRwbyAkKERFUERJUikvbG9zZXR1cC1sb21vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbG9tb3VudC5jJyBvYmplY3Q9J2xvc2V0dXAtbG9tb3VudC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbG9zZXR1cC1sb21vdW50Lm9iaiBgaWYgdGVzdCAtZiAnbG9tb3VudC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2xvbW91bnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvbG9tb3VudC5jJzsgZmlgCisKK2xvc2V0dXAtc3VuZHJpZXMubzogc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGxvc2V0dXAtc3VuZHJpZXMubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbG9zZXR1cC1zdW5kcmllcy5UcG8gLWMgLW8gbG9zZXR1cC1zdW5kcmllcy5vIGB0ZXN0IC1mICdzdW5kcmllcy5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BzdW5kcmllcy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9sb3NldHVwLXN1bmRyaWVzLlRwbyAkKERFUERJUikvbG9zZXR1cC1zdW5kcmllcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3N1bmRyaWVzLmMnIG9iamVjdD0nbG9zZXR1cC1zdW5kcmllcy5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChsb3NldHVwX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGxvc2V0dXAtc3VuZHJpZXMubyBgdGVzdCAtZiAnc3VuZHJpZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc3VuZHJpZXMuYworCitsb3NldHVwLXN1bmRyaWVzLm9iajogc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGxvc2V0dXAtc3VuZHJpZXMub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9sb3NldHVwLXN1bmRyaWVzLlRwbyAtYyAtbyBsb3NldHVwLXN1bmRyaWVzLm9iaiBgaWYgdGVzdCAtZiAnc3VuZHJpZXMuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdzdW5kcmllcy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9zdW5kcmllcy5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9sb3NldHVwLXN1bmRyaWVzLlRwbyAkKERFUERJUikvbG9zZXR1cC1zdW5kcmllcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3N1bmRyaWVzLmMnIG9iamVjdD0nbG9zZXR1cC1zdW5kcmllcy5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbG9zZXR1cC1zdW5kcmllcy5vYmogYGlmIHRlc3QgLWYgJ3N1bmRyaWVzLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc3VuZHJpZXMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc3VuZHJpZXMuYyc7IGZpYAorCitsb3NldHVwLXhtYWxsb2MubzogeG1hbGxvYy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobG9zZXR1cF9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbG9zZXR1cC14bWFsbG9jLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xvc2V0dXAteG1hbGxvYy5UcG8gLWMgLW8gbG9zZXR1cC14bWFsbG9jLm8gYHRlc3QgLWYgJ3htYWxsb2MuYycgfHwgZWNobyAnJChzcmNkaXIpLydgeG1hbGxvYy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9sb3NldHVwLXhtYWxsb2MuVHBvICQoREVQRElSKS9sb3NldHVwLXhtYWxsb2MuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd4bWFsbG9jLmMnIG9iamVjdD0nbG9zZXR1cC14bWFsbG9jLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbG9zZXR1cC14bWFsbG9jLm8gYHRlc3QgLWYgJ3htYWxsb2MuYycgfHwgZWNobyAnJChzcmNkaXIpLydgeG1hbGxvYy5jCisKK2xvc2V0dXAteG1hbGxvYy5vYmo6IHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGxvc2V0dXAteG1hbGxvYy5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2xvc2V0dXAteG1hbGxvYy5UcG8gLWMgLW8gbG9zZXR1cC14bWFsbG9jLm9iaiBgaWYgdGVzdCAtZiAneG1hbGxvYy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3htYWxsb2MuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikveG1hbGxvYy5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9sb3NldHVwLXhtYWxsb2MuVHBvICQoREVQRElSKS9sb3NldHVwLXhtYWxsb2MuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd4bWFsbG9jLmMnIG9iamVjdD0nbG9zZXR1cC14bWFsbG9jLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobG9zZXR1cF9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBsb3NldHVwLXhtYWxsb2Mub2JqIGBpZiB0ZXN0IC1mICd4bWFsbG9jLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAneG1hbGxvYy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS94bWFsbG9jLmMnOyBmaWAKKworbG9zZXR1cC1jYW5vbmljYWxpemUubzogLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobG9zZXR1cF9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbG9zZXR1cC1jYW5vbmljYWxpemUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbG9zZXR1cC1jYW5vbmljYWxpemUuVHBvIC1jIC1vIGxvc2V0dXAtY2Fub25pY2FsaXplLm8gYHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9sb3NldHVwLWNhbm9uaWNhbGl6ZS5UcG8gJChERVBESVIpL2xvc2V0dXAtY2Fub25pY2FsaXplLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyBvYmplY3Q9J2xvc2V0dXAtY2Fub25pY2FsaXplLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbG9zZXR1cC1jYW5vbmljYWxpemUubyBgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvY2Fub25pY2FsaXplLmMKKworbG9zZXR1cC1jYW5vbmljYWxpemUub2JqOiAuLi9saWIvY2Fub25pY2FsaXplLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChsb3NldHVwX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsb3NldHVwLWNhbm9uaWNhbGl6ZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL2xvc2V0dXAtY2Fub25pY2FsaXplLlRwbyAtYyAtbyBsb3NldHVwLWNhbm9uaWNhbGl6ZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbG9zZXR1cC1jYW5vbmljYWxpemUuVHBvICQoREVQRElSKS9sb3NldHVwLWNhbm9uaWNhbGl6ZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9jYW5vbmljYWxpemUuYycgb2JqZWN0PSdsb3NldHVwLWNhbm9uaWNhbGl6ZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbG9zZXR1cC1jYW5vbmljYWxpemUub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvY2Fub25pY2FsaXplLmMnOyBmaWAKKworbG9zZXR1cF9zdGF0aWMtbG9tb3VudC5vOiBsb21vdW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChsb3NldHVwX3N0YXRpY19DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbG9zZXR1cF9zdGF0aWMtbG9tb3VudC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9sb3NldHVwX3N0YXRpYy1sb21vdW50LlRwbyAtYyAtbyBsb3NldHVwX3N0YXRpYy1sb21vdW50Lm8gYHRlc3QgLWYgJ2xvbW91bnQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgbG9tb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9sb3NldHVwX3N0YXRpYy1sb21vdW50LlRwbyAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMtbG9tb3VudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2xvbW91bnQuYycgb2JqZWN0PSdsb3NldHVwX3N0YXRpYy1sb21vdW50Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGxvc2V0dXBfc3RhdGljLWxvbW91bnQubyBgdGVzdCAtZiAnbG9tb3VudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Bsb21vdW50LmMKKworbG9zZXR1cF9zdGF0aWMtbG9tb3VudC5vYmo6IGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsb3NldHVwX3N0YXRpYy1sb21vdW50Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMtbG9tb3VudC5UcG8gLWMgLW8gbG9zZXR1cF9zdGF0aWMtbG9tb3VudC5vYmogYGlmIHRlc3QgLWYgJ2xvbW91bnQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdsb21vdW50LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2xvbW91bnQuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMtbG9tb3VudC5UcG8gJChERVBESVIpL2xvc2V0dXBfc3RhdGljLWxvbW91bnQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdsb21vdW50LmMnIG9iamVjdD0nbG9zZXR1cF9zdGF0aWMtbG9tb3VudC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGxvc2V0dXBfc3RhdGljLWxvbW91bnQub2JqIGBpZiB0ZXN0IC1mICdsb21vdW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbG9tb3VudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9sb21vdW50LmMnOyBmaWAKKworbG9zZXR1cF9zdGF0aWMtc3VuZHJpZXMubzogc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsb3NldHVwX3N0YXRpYy1zdW5kcmllcy5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9sb3NldHVwX3N0YXRpYy1zdW5kcmllcy5UcG8gLWMgLW8gbG9zZXR1cF9zdGF0aWMtc3VuZHJpZXMubyBgdGVzdCAtZiAnc3VuZHJpZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMtc3VuZHJpZXMuVHBvICQoREVQRElSKS9sb3NldHVwX3N0YXRpYy1zdW5kcmllcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3N1bmRyaWVzLmMnIG9iamVjdD0nbG9zZXR1cF9zdGF0aWMtc3VuZHJpZXMubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobG9zZXR1cF9zdGF0aWNfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbG9zZXR1cF9zdGF0aWMtc3VuZHJpZXMubyBgdGVzdCAtZiAnc3VuZHJpZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc3VuZHJpZXMuYworCitsb3NldHVwX3N0YXRpYy1zdW5kcmllcy5vYmo6IHN1bmRyaWVzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChsb3NldHVwX3N0YXRpY19DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbG9zZXR1cF9zdGF0aWMtc3VuZHJpZXMub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9sb3NldHVwX3N0YXRpYy1zdW5kcmllcy5UcG8gLWMgLW8gbG9zZXR1cF9zdGF0aWMtc3VuZHJpZXMub2JqIGBpZiB0ZXN0IC1mICdzdW5kcmllcy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3N1bmRyaWVzLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3N1bmRyaWVzLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2xvc2V0dXBfc3RhdGljLXN1bmRyaWVzLlRwbyAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMtc3VuZHJpZXMuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdzdW5kcmllcy5jJyBvYmplY3Q9J2xvc2V0dXBfc3RhdGljLXN1bmRyaWVzLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobG9zZXR1cF9zdGF0aWNfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbG9zZXR1cF9zdGF0aWMtc3VuZHJpZXMub2JqIGBpZiB0ZXN0IC1mICdzdW5kcmllcy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3N1bmRyaWVzLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3N1bmRyaWVzLmMnOyBmaWAKKworbG9zZXR1cF9zdGF0aWMteG1hbGxvYy5vOiB4bWFsbG9jLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChsb3NldHVwX3N0YXRpY19DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbG9zZXR1cF9zdGF0aWMteG1hbGxvYy5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9sb3NldHVwX3N0YXRpYy14bWFsbG9jLlRwbyAtYyAtbyBsb3NldHVwX3N0YXRpYy14bWFsbG9jLm8gYHRlc3QgLWYgJ3htYWxsb2MuYycgfHwgZWNobyAnJChzcmNkaXIpLydgeG1hbGxvYy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9sb3NldHVwX3N0YXRpYy14bWFsbG9jLlRwbyAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMteG1hbGxvYy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3htYWxsb2MuYycgb2JqZWN0PSdsb3NldHVwX3N0YXRpYy14bWFsbG9jLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGxvc2V0dXBfc3RhdGljLXhtYWxsb2MubyBgdGVzdCAtZiAneG1hbGxvYy5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B4bWFsbG9jLmMKKworbG9zZXR1cF9zdGF0aWMteG1hbGxvYy5vYmo6IHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsb3NldHVwX3N0YXRpYy14bWFsbG9jLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMteG1hbGxvYy5UcG8gLWMgLW8gbG9zZXR1cF9zdGF0aWMteG1hbGxvYy5vYmogYGlmIHRlc3QgLWYgJ3htYWxsb2MuYyc7IHRoZW4gJChDWUdQQVRIX1cpICd4bWFsbG9jLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3htYWxsb2MuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMteG1hbGxvYy5UcG8gJChERVBESVIpL2xvc2V0dXBfc3RhdGljLXhtYWxsb2MuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd4bWFsbG9jLmMnIG9iamVjdD0nbG9zZXR1cF9zdGF0aWMteG1hbGxvYy5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGxvc2V0dXBfc3RhdGljLXhtYWxsb2Mub2JqIGBpZiB0ZXN0IC1mICd4bWFsbG9jLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAneG1hbGxvYy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS94bWFsbG9jLmMnOyBmaWAKKworbG9zZXR1cF9zdGF0aWMtY2Fub25pY2FsaXplLm86IC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsb3NldHVwX3N0YXRpYy1jYW5vbmljYWxpemUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMtY2Fub25pY2FsaXplLlRwbyAtYyAtbyBsb3NldHVwX3N0YXRpYy1jYW5vbmljYWxpemUubyBgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvY2Fub25pY2FsaXplLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2xvc2V0dXBfc3RhdGljLWNhbm9uaWNhbGl6ZS5UcG8gJChERVBESVIpL2xvc2V0dXBfc3RhdGljLWNhbm9uaWNhbGl6ZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9jYW5vbmljYWxpemUuYycgb2JqZWN0PSdsb3NldHVwX3N0YXRpYy1jYW5vbmljYWxpemUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobG9zZXR1cF9zdGF0aWNfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbG9zZXR1cF9zdGF0aWMtY2Fub25pY2FsaXplLm8gYHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCisKK2xvc2V0dXBfc3RhdGljLWNhbm9uaWNhbGl6ZS5vYmo6IC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsb3NldHVwX3N0YXRpYy1jYW5vbmljYWxpemUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9sb3NldHVwX3N0YXRpYy1jYW5vbmljYWxpemUuVHBvIC1jIC1vIGxvc2V0dXBfc3RhdGljLWNhbm9uaWNhbGl6ZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMtY2Fub25pY2FsaXplLlRwbyAkKERFUERJUikvbG9zZXR1cF9zdGF0aWMtY2Fub25pY2FsaXplLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyBvYmplY3Q9J2xvc2V0dXBfc3RhdGljLWNhbm9uaWNhbGl6ZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxvc2V0dXBfc3RhdGljX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGxvc2V0dXBfc3RhdGljLWNhbm9uaWNhbGl6ZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGZpYAorCittb3VudC1tb3VudC5vOiBtb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LW1vdW50Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LW1vdW50LlRwbyAtYyAtbyBtb3VudC1tb3VudC5vIGB0ZXN0IC1mICdtb3VudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Btb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1tb3VudC5UcG8gJChERVBESVIpL21vdW50LW1vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbW91bnQuYycgb2JqZWN0PSdtb3VudC1tb3VudC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1tb3VudC5vIGB0ZXN0IC1mICdtb3VudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Btb3VudC5jCisKK21vdW50LW1vdW50Lm9iajogbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC1tb3VudC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LW1vdW50LlRwbyAtYyAtbyBtb3VudC1tb3VudC5vYmogYGlmIHRlc3QgLWYgJ21vdW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbW91bnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvbW91bnQuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnQtbW91bnQuVHBvICQoREVQRElSKS9tb3VudC1tb3VudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J21vdW50LmMnIG9iamVjdD0nbW91bnQtbW91bnQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1tb3VudC5vYmogYGlmIHRlc3QgLWYgJ21vdW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbW91bnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvbW91bnQuYyc7IGZpYAorCittb3VudC1mc3RhYi5vOiBmc3RhYi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWZzdGFiLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWZzdGFiLlRwbyAtYyAtbyBtb3VudC1mc3RhYi5vIGB0ZXN0IC1mICdmc3RhYi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Bmc3RhYi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1mc3RhYi5UcG8gJChERVBESVIpL21vdW50LWZzdGFiLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZnN0YWIuYycgb2JqZWN0PSdtb3VudC1mc3RhYi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1mc3RhYi5vIGB0ZXN0IC1mICdmc3RhYi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Bmc3RhYi5jCisKK21vdW50LWZzdGFiLm9iajogZnN0YWIuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC1mc3RhYi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWZzdGFiLlRwbyAtYyAtbyBtb3VudC1mc3RhYi5vYmogYGlmIHRlc3QgLWYgJ2ZzdGFiLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZnN0YWIuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZnN0YWIuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnQtZnN0YWIuVHBvICQoREVQRElSKS9tb3VudC1mc3RhYi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZzdGFiLmMnIG9iamVjdD0nbW91bnQtZnN0YWIub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1mc3RhYi5vYmogYGlmIHRlc3QgLWYgJ2ZzdGFiLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZnN0YWIuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZnN0YWIuYyc7IGZpYAorCittb3VudC1tb3VudF9tbnRlbnQubzogbW91bnRfbW50ZW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnQtbW91bnRfbW50ZW50Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LW1vdW50X21udGVudC5UcG8gLWMgLW8gbW91bnQtbW91bnRfbW50ZW50Lm8gYHRlc3QgLWYgJ21vdW50X21udGVudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Btb3VudF9tbnRlbnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnQtbW91bnRfbW50ZW50LlRwbyAkKERFUERJUikvbW91bnQtbW91bnRfbW50ZW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbW91bnRfbW50ZW50LmMnIG9iamVjdD0nbW91bnQtbW91bnRfbW50ZW50Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50LW1vdW50X21udGVudC5vIGB0ZXN0IC1mICdtb3VudF9tbnRlbnQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgbW91bnRfbW50ZW50LmMKKworbW91bnQtbW91bnRfbW50ZW50Lm9iajogbW91bnRfbW50ZW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnQtbW91bnRfbW50ZW50Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnQtbW91bnRfbW50ZW50LlRwbyAtYyAtbyBtb3VudC1tb3VudF9tbnRlbnQub2JqIGBpZiB0ZXN0IC1mICdtb3VudF9tbnRlbnQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdtb3VudF9tbnRlbnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvbW91bnRfbW50ZW50LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50LW1vdW50X21udGVudC5UcG8gJChERVBESVIpL21vdW50LW1vdW50X21udGVudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J21vdW50X21udGVudC5jJyBvYmplY3Q9J21vdW50LW1vdW50X21udGVudC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50LW1vdW50X21udGVudC5vYmogYGlmIHRlc3QgLWYgJ21vdW50X21udGVudC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ21vdW50X21udGVudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9tb3VudF9tbnRlbnQuYyc7IGZpYAorCittb3VudC1nZXR1c2VybmFtZS5vOiBnZXR1c2VybmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWdldHVzZXJuYW1lLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWdldHVzZXJuYW1lLlRwbyAtYyAtbyBtb3VudC1nZXR1c2VybmFtZS5vIGB0ZXN0IC1mICdnZXR1c2VybmFtZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BnZXR1c2VybmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1nZXR1c2VybmFtZS5UcG8gJChERVBESVIpL21vdW50LWdldHVzZXJuYW1lLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZ2V0dXNlcm5hbWUuYycgb2JqZWN0PSdtb3VudC1nZXR1c2VybmFtZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1nZXR1c2VybmFtZS5vIGB0ZXN0IC1mICdnZXR1c2VybmFtZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BnZXR1c2VybmFtZS5jCisKK21vdW50LWdldHVzZXJuYW1lLm9iajogZ2V0dXNlcm5hbWUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC1nZXR1c2VybmFtZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWdldHVzZXJuYW1lLlRwbyAtYyAtbyBtb3VudC1nZXR1c2VybmFtZS5vYmogYGlmIHRlc3QgLWYgJ2dldHVzZXJuYW1lLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZ2V0dXNlcm5hbWUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZ2V0dXNlcm5hbWUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnQtZ2V0dXNlcm5hbWUuVHBvICQoREVQRElSKS9tb3VudC1nZXR1c2VybmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2dldHVzZXJuYW1lLmMnIG9iamVjdD0nbW91bnQtZ2V0dXNlcm5hbWUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1nZXR1c2VybmFtZS5vYmogYGlmIHRlc3QgLWYgJ2dldHVzZXJuYW1lLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZ2V0dXNlcm5hbWUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZ2V0dXNlcm5hbWUuYyc7IGZpYAorCittb3VudC1sb21vdW50Lm86IGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC1sb21vdW50Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWxvbW91bnQuVHBvIC1jIC1vIG1vdW50LWxvbW91bnQubyBgdGVzdCAtZiAnbG9tb3VudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Bsb21vdW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50LWxvbW91bnQuVHBvICQoREVQRElSKS9tb3VudC1sb21vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbG9tb3VudC5jJyBvYmplY3Q9J21vdW50LWxvbW91bnQubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQtbG9tb3VudC5vIGB0ZXN0IC1mICdsb21vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGxvbW91bnQuYworCittb3VudC1sb21vdW50Lm9iajogbG9tb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWxvbW91bnQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudC1sb21vdW50LlRwbyAtYyAtbyBtb3VudC1sb21vdW50Lm9iaiBgaWYgdGVzdCAtZiAnbG9tb3VudC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2xvbW91bnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvbG9tb3VudC5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1sb21vdW50LlRwbyAkKERFUERJUikvbW91bnQtbG9tb3VudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2xvbW91bnQuYycgb2JqZWN0PSdtb3VudC1sb21vdW50Lm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQtbG9tb3VudC5vYmogYGlmIHRlc3QgLWYgJ2xvbW91bnQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdsb21vdW50LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2xvbW91bnQuYyc7IGZpYAorCittb3VudC1kZXZuYW1lLm86IGRldm5hbWUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC1kZXZuYW1lLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWRldm5hbWUuVHBvIC1jIC1vIG1vdW50LWRldm5hbWUubyBgdGVzdCAtZiAnZGV2bmFtZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BkZXZuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50LWRldm5hbWUuVHBvICQoREVQRElSKS9tb3VudC1kZXZuYW1lLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZGV2bmFtZS5jJyBvYmplY3Q9J21vdW50LWRldm5hbWUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQtZGV2bmFtZS5vIGB0ZXN0IC1mICdkZXZuYW1lLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGRldm5hbWUuYworCittb3VudC1kZXZuYW1lLm9iajogZGV2bmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWRldm5hbWUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudC1kZXZuYW1lLlRwbyAtYyAtbyBtb3VudC1kZXZuYW1lLm9iaiBgaWYgdGVzdCAtZiAnZGV2bmFtZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2Rldm5hbWUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZGV2bmFtZS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1kZXZuYW1lLlRwbyAkKERFUERJUikvbW91bnQtZGV2bmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2Rldm5hbWUuYycgb2JqZWN0PSdtb3VudC1kZXZuYW1lLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQtZGV2bmFtZS5vYmogYGlmIHRlc3QgLWYgJ2Rldm5hbWUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdkZXZuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Rldm5hbWUuYyc7IGZpYAorCittb3VudC1zdW5kcmllcy5vOiBzdW5kcmllcy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LXN1bmRyaWVzLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LXN1bmRyaWVzLlRwbyAtYyAtbyBtb3VudC1zdW5kcmllcy5vIGB0ZXN0IC1mICdzdW5kcmllcy5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BzdW5kcmllcy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1zdW5kcmllcy5UcG8gJChERVBESVIpL21vdW50LXN1bmRyaWVzLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nc3VuZHJpZXMuYycgb2JqZWN0PSdtb3VudC1zdW5kcmllcy5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1zdW5kcmllcy5vIGB0ZXN0IC1mICdzdW5kcmllcy5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BzdW5kcmllcy5jCisKK21vdW50LXN1bmRyaWVzLm9iajogc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC1zdW5kcmllcy5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LXN1bmRyaWVzLlRwbyAtYyAtbyBtb3VudC1zdW5kcmllcy5vYmogYGlmIHRlc3QgLWYgJ3N1bmRyaWVzLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc3VuZHJpZXMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc3VuZHJpZXMuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnQtc3VuZHJpZXMuVHBvICQoREVQRElSKS9tb3VudC1zdW5kcmllcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3N1bmRyaWVzLmMnIG9iamVjdD0nbW91bnQtc3VuZHJpZXMub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1zdW5kcmllcy5vYmogYGlmIHRlc3QgLWYgJ3N1bmRyaWVzLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc3VuZHJpZXMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc3VuZHJpZXMuYyc7IGZpYAorCittb3VudC14bWFsbG9jLm86IHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC14bWFsbG9jLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LXhtYWxsb2MuVHBvIC1jIC1vIG1vdW50LXhtYWxsb2MubyBgdGVzdCAtZiAneG1hbGxvYy5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B4bWFsbG9jLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50LXhtYWxsb2MuVHBvICQoREVQRElSKS9tb3VudC14bWFsbG9jLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0neG1hbGxvYy5jJyBvYmplY3Q9J21vdW50LXhtYWxsb2MubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQteG1hbGxvYy5vIGB0ZXN0IC1mICd4bWFsbG9jLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHhtYWxsb2MuYworCittb3VudC14bWFsbG9jLm9iajogeG1hbGxvYy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LXhtYWxsb2Mub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudC14bWFsbG9jLlRwbyAtYyAtbyBtb3VudC14bWFsbG9jLm9iaiBgaWYgdGVzdCAtZiAneG1hbGxvYy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3htYWxsb2MuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikveG1hbGxvYy5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC14bWFsbG9jLlRwbyAkKERFUERJUikvbW91bnQteG1hbGxvYy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3htYWxsb2MuYycgb2JqZWN0PSdtb3VudC14bWFsbG9jLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQteG1hbGxvYy5vYmogYGlmIHRlc3QgLWYgJ3htYWxsb2MuYyc7IHRoZW4gJChDWUdQQVRIX1cpICd4bWFsbG9jLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3htYWxsb2MuYyc7IGZpYAorCittb3VudC1jYW5vbmljYWxpemUubzogLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWNhbm9uaWNhbGl6ZS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudC1jYW5vbmljYWxpemUuVHBvIC1jIC1vIG1vdW50LWNhbm9uaWNhbGl6ZS5vIGB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnQtY2Fub25pY2FsaXplLlRwbyAkKERFUERJUikvbW91bnQtY2Fub25pY2FsaXplLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyBvYmplY3Q9J21vdW50LWNhbm9uaWNhbGl6ZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1jYW5vbmljYWxpemUubyBgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvY2Fub25pY2FsaXplLmMKKworbW91bnQtY2Fub25pY2FsaXplLm9iajogLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWNhbm9uaWNhbGl6ZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWNhbm9uaWNhbGl6ZS5UcG8gLWMgLW8gbW91bnQtY2Fub25pY2FsaXplLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1jYW5vbmljYWxpemUuVHBvICQoREVQRElSKS9tb3VudC1jYW5vbmljYWxpemUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvY2Fub25pY2FsaXplLmMnIG9iamVjdD0nbW91bnQtY2Fub25pY2FsaXplLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQtY2Fub25pY2FsaXplLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZmlgCisKK21vdW50LWVudi5vOiAuLi9saWIvZW52LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnQtZW52Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWVudi5UcG8gLWMgLW8gbW91bnQtZW52Lm8gYHRlc3QgLWYgJy4uL2xpYi9lbnYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Vudi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1lbnYuVHBvICQoREVQRElSKS9tb3VudC1lbnYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvZW52LmMnIG9iamVjdD0nbW91bnQtZW52Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50LWVudi5vIGB0ZXN0IC1mICcuLi9saWIvZW52LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9lbnYuYworCittb3VudC1lbnYub2JqOiAuLi9saWIvZW52LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnQtZW52Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnQtZW52LlRwbyAtYyAtbyBtb3VudC1lbnYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvZW52LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Vudi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZW52LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50LWVudi5UcG8gJChERVBESVIpL21vdW50LWVudi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9lbnYuYycgb2JqZWN0PSdtb3VudC1lbnYub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1lbnYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvZW52LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Vudi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZW52LmMnOyBmaWAKKworbW91bnQtbGludXhfdmVyc2lvbi5vOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWxpbnV4X3ZlcnNpb24ubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnQtbGludXhfdmVyc2lvbi5UcG8gLWMgLW8gbW91bnQtbGludXhfdmVyc2lvbi5vIGB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1saW51eF92ZXJzaW9uLlRwbyAkKERFUERJUikvbW91bnQtbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0nbW91bnQtbGludXhfdmVyc2lvbi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1saW51eF92ZXJzaW9uLm8gYHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9saW51eF92ZXJzaW9uLmMKKworbW91bnQtbGludXhfdmVyc2lvbi5vYmo6IC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnQtbGludXhfdmVyc2lvbi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWxpbnV4X3ZlcnNpb24uVHBvIC1jIC1vIG1vdW50LWxpbnV4X3ZlcnNpb24ub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50LWxpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS9tb3VudC1saW51eF92ZXJzaW9uLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgb2JqZWN0PSdtb3VudC1saW51eF92ZXJzaW9uLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQtbGludXhfdmVyc2lvbi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGZpYAorCittb3VudC1ibGtkZXYubzogLi4vbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWJsa2Rldi5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudC1ibGtkZXYuVHBvIC1jIC1vIG1vdW50LWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnQtYmxrZGV2LlRwbyAkKERFUERJUikvbW91bnQtYmxrZGV2LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Jsa2Rldi5jJyBvYmplY3Q9J21vdW50LWJsa2Rldi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudC1ibGtkZXYubyBgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvYmxrZGV2LmMKKworbW91bnQtYmxrZGV2Lm9iajogLi4vbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWJsa2Rldi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWJsa2Rldi5UcG8gLWMgLW8gbW91bnQtYmxrZGV2Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9ibGtkZXYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Jsa2Rldi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1ibGtkZXYuVHBvICQoREVQRElSKS9tb3VudC1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0nbW91bnQtYmxrZGV2Lm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQtYmxrZGV2Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9ibGtkZXYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Jsa2Rldi5jJzsgZmlgCisKK21vdW50LWZzcHJvYmUubzogLi4vbGliL2ZzcHJvYmUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC1mc3Byb2JlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50LWZzcHJvYmUuVHBvIC1jIC1vIG1vdW50LWZzcHJvYmUubyBgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2ZzcHJvYmUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnQtZnNwcm9iZS5UcG8gJChERVBESVIpL21vdW50LWZzcHJvYmUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvZnNwcm9iZS5jJyBvYmplY3Q9J21vdW50LWZzcHJvYmUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQtZnNwcm9iZS5vIGB0ZXN0IC1mICcuLi9saWIvZnNwcm9iZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZnNwcm9iZS5jCisKK21vdW50LWZzcHJvYmUub2JqOiAuLi9saWIvZnNwcm9iZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50LWZzcHJvYmUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudC1mc3Byb2JlLlRwbyAtYyAtbyBtb3VudC1mc3Byb2JlLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZnNwcm9iZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZnNwcm9iZS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudC1mc3Byb2JlLlRwbyAkKERFUERJUikvbW91bnQtZnNwcm9iZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9mc3Byb2JlLmMnIG9iamVjdD0nbW91bnQtZnNwcm9iZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50LWZzcHJvYmUub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvZnNwcm9iZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9mc3Byb2JlLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9mc3Byb2JlLmMnOyBmaWAKKworbW91bnQtc2V0cHJvY3RpdGxlLm86IC4uL2xpYi9zZXRwcm9jdGl0bGUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC1zZXRwcm9jdGl0bGUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnQtc2V0cHJvY3RpdGxlLlRwbyAtYyAtbyBtb3VudC1zZXRwcm9jdGl0bGUubyBgdGVzdCAtZiAnLi4vbGliL3NldHByb2N0aXRsZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvc2V0cHJvY3RpdGxlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50LXNldHByb2N0aXRsZS5UcG8gJChERVBESVIpL21vdW50LXNldHByb2N0aXRsZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9zZXRwcm9jdGl0bGUuYycgb2JqZWN0PSdtb3VudC1zZXRwcm9jdGl0bGUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnQtc2V0cHJvY3RpdGxlLm8gYHRlc3QgLWYgJy4uL2xpYi9zZXRwcm9jdGl0bGUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL3NldHByb2N0aXRsZS5jCisKK21vdW50LXNldHByb2N0aXRsZS5vYmo6IC4uL2xpYi9zZXRwcm9jdGl0bGUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudC1zZXRwcm9jdGl0bGUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudC1zZXRwcm9jdGl0bGUuVHBvIC1jIC1vIG1vdW50LXNldHByb2N0aXRsZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9zZXRwcm9jdGl0bGUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvc2V0cHJvY3RpdGxlLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9zZXRwcm9jdGl0bGUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnQtc2V0cHJvY3RpdGxlLlRwbyAkKERFUERJUikvbW91bnQtc2V0cHJvY3RpdGxlLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL3NldHByb2N0aXRsZS5jJyBvYmplY3Q9J21vdW50LXNldHByb2N0aXRsZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50LXNldHByb2N0aXRsZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9zZXRwcm9jdGl0bGUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvc2V0cHJvY3RpdGxlLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9zZXRwcm9jdGl0bGUuYyc7IGZpYAorCittb3VudF9zdGF0aWMtbW91bnQubzogbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLW1vdW50Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50X3N0YXRpYy1tb3VudC5UcG8gLWMgLW8gbW91bnRfc3RhdGljLW1vdW50Lm8gYHRlc3QgLWYgJ21vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYG1vdW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50X3N0YXRpYy1tb3VudC5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1tb3VudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J21vdW50LmMnIG9iamVjdD0nbW91bnRfc3RhdGljLW1vdW50Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtbW91bnQubyBgdGVzdCAtZiAnbW91bnQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgbW91bnQuYworCittb3VudF9zdGF0aWMtbW91bnQub2JqOiBtb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtbW91bnQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtbW91bnQuVHBvIC1jIC1vIG1vdW50X3N0YXRpYy1tb3VudC5vYmogYGlmIHRlc3QgLWYgJ21vdW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbW91bnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvbW91bnQuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLW1vdW50LlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLW1vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbW91bnQuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtbW91bnQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLW1vdW50Lm9iaiBgaWYgdGVzdCAtZiAnbW91bnQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdtb3VudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9tb3VudC5jJzsgZmlgCisKK21vdW50X3N0YXRpYy1mc3RhYi5vOiBmc3RhYi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtZnN0YWIubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnRfc3RhdGljLWZzdGFiLlRwbyAtYyAtbyBtb3VudF9zdGF0aWMtZnN0YWIubyBgdGVzdCAtZiAnZnN0YWIuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZnN0YWIuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLWZzdGFiLlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLWZzdGFiLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZnN0YWIuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtZnN0YWIubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50X3N0YXRpYy1mc3RhYi5vIGB0ZXN0IC1mICdmc3RhYi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Bmc3RhYi5jCisKK21vdW50X3N0YXRpYy1mc3RhYi5vYmo6IGZzdGFiLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50X3N0YXRpYy1mc3RhYi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50X3N0YXRpYy1mc3RhYi5UcG8gLWMgLW8gbW91bnRfc3RhdGljLWZzdGFiLm9iaiBgaWYgdGVzdCAtZiAnZnN0YWIuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmc3RhYi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mc3RhYi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudF9zdGF0aWMtZnN0YWIuVHBvICQoREVQRElSKS9tb3VudF9zdGF0aWMtZnN0YWIuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmc3RhYi5jJyBvYmplY3Q9J21vdW50X3N0YXRpYy1mc3RhYi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtZnN0YWIub2JqIGBpZiB0ZXN0IC1mICdmc3RhYi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZzdGFiLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZzdGFiLmMnOyBmaWAKKworbW91bnRfc3RhdGljLW1vdW50X21udGVudC5vOiBtb3VudF9tbnRlbnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLW1vdW50X21udGVudC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtbW91bnRfbW50ZW50LlRwbyAtYyAtbyBtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm8gYHRlc3QgLWYgJ21vdW50X21udGVudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Btb3VudF9tbnRlbnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLW1vdW50X21udGVudC5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdtb3VudF9tbnRlbnQuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm8gYHRlc3QgLWYgJ21vdW50X21udGVudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Btb3VudF9tbnRlbnQuYworCittb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm9iajogbW91bnRfbW50ZW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtbW91bnRfbW50ZW50LlRwbyAtYyAtbyBtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm9iaiBgaWYgdGVzdCAtZiAnbW91bnRfbW50ZW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbW91bnRfbW50ZW50LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL21vdW50X21udGVudC5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudF9zdGF0aWMtbW91bnRfbW50ZW50LlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLW1vdW50X21udGVudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J21vdW50X21udGVudC5jJyBvYmplY3Q9J21vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLW1vdW50X21udGVudC5vYmogYGlmIHRlc3QgLWYgJ21vdW50X21udGVudC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ21vdW50X21udGVudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9tb3VudF9tbnRlbnQuYyc7IGZpYAorCittb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUubzogZ2V0dXNlcm5hbWUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLWdldHVzZXJuYW1lLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50X3N0YXRpYy1nZXR1c2VybmFtZS5UcG8gLWMgLW8gbW91bnRfc3RhdGljLWdldHVzZXJuYW1lLm8gYHRlc3QgLWYgJ2dldHVzZXJuYW1lLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGdldHVzZXJuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50X3N0YXRpYy1nZXR1c2VybmFtZS5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1nZXR1c2VybmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2dldHVzZXJuYW1lLmMnIG9iamVjdD0nbW91bnRfc3RhdGljLWdldHVzZXJuYW1lLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUubyBgdGVzdCAtZiAnZ2V0dXNlcm5hbWUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZ2V0dXNlcm5hbWUuYworCittb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUub2JqOiBnZXR1c2VybmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUuVHBvIC1jIC1vIG1vdW50X3N0YXRpYy1nZXR1c2VybmFtZS5vYmogYGlmIHRlc3QgLWYgJ2dldHVzZXJuYW1lLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZ2V0dXNlcm5hbWUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZ2V0dXNlcm5hbWUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLWdldHVzZXJuYW1lLlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLWdldHVzZXJuYW1lLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZ2V0dXNlcm5hbWUuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLWdldHVzZXJuYW1lLm9iaiBgaWYgdGVzdCAtZiAnZ2V0dXNlcm5hbWUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdnZXR1c2VybmFtZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9nZXR1c2VybmFtZS5jJzsgZmlgCisKK21vdW50X3N0YXRpYy1sb21vdW50Lm86IGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLWxvbW91bnQubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnRfc3RhdGljLWxvbW91bnQuVHBvIC1jIC1vIG1vdW50X3N0YXRpYy1sb21vdW50Lm8gYHRlc3QgLWYgJ2xvbW91bnQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgbG9tb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudF9zdGF0aWMtbG9tb3VudC5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1sb21vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbG9tb3VudC5jJyBvYmplY3Q9J21vdW50X3N0YXRpYy1sb21vdW50Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtbG9tb3VudC5vIGB0ZXN0IC1mICdsb21vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGxvbW91bnQuYworCittb3VudF9zdGF0aWMtbG9tb3VudC5vYmo6IGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLWxvbW91bnQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtbG9tb3VudC5UcG8gLWMgLW8gbW91bnRfc3RhdGljLWxvbW91bnQub2JqIGBpZiB0ZXN0IC1mICdsb21vdW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbG9tb3VudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9sb21vdW50LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50X3N0YXRpYy1sb21vdW50LlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLWxvbW91bnQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdsb21vdW50LmMnIG9iamVjdD0nbW91bnRfc3RhdGljLWxvbW91bnQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLWxvbW91bnQub2JqIGBpZiB0ZXN0IC1mICdsb21vdW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbG9tb3VudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9sb21vdW50LmMnOyBmaWAKKworbW91bnRfc3RhdGljLWRldm5hbWUubzogZGV2bmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtZGV2bmFtZS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtZGV2bmFtZS5UcG8gLWMgLW8gbW91bnRfc3RhdGljLWRldm5hbWUubyBgdGVzdCAtZiAnZGV2bmFtZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BkZXZuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50X3N0YXRpYy1kZXZuYW1lLlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLWRldm5hbWUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdkZXZuYW1lLmMnIG9iamVjdD0nbW91bnRfc3RhdGljLWRldm5hbWUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50X3N0YXRpYy1kZXZuYW1lLm8gYHRlc3QgLWYgJ2Rldm5hbWUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZGV2bmFtZS5jCisKK21vdW50X3N0YXRpYy1kZXZuYW1lLm9iajogZGV2bmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtZGV2bmFtZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50X3N0YXRpYy1kZXZuYW1lLlRwbyAtYyAtbyBtb3VudF9zdGF0aWMtZGV2bmFtZS5vYmogYGlmIHRlc3QgLWYgJ2Rldm5hbWUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdkZXZuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Rldm5hbWUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLWRldm5hbWUuVHBvICQoREVQRElSKS9tb3VudF9zdGF0aWMtZGV2bmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2Rldm5hbWUuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtZGV2bmFtZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtZGV2bmFtZS5vYmogYGlmIHRlc3QgLWYgJ2Rldm5hbWUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdkZXZuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Rldm5hbWUuYyc7IGZpYAorCittb3VudF9zdGF0aWMtc3VuZHJpZXMubzogc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLXN1bmRyaWVzLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50X3N0YXRpYy1zdW5kcmllcy5UcG8gLWMgLW8gbW91bnRfc3RhdGljLXN1bmRyaWVzLm8gYHRlc3QgLWYgJ3N1bmRyaWVzLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHN1bmRyaWVzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50X3N0YXRpYy1zdW5kcmllcy5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1zdW5kcmllcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3N1bmRyaWVzLmMnIG9iamVjdD0nbW91bnRfc3RhdGljLXN1bmRyaWVzLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtc3VuZHJpZXMubyBgdGVzdCAtZiAnc3VuZHJpZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc3VuZHJpZXMuYworCittb3VudF9zdGF0aWMtc3VuZHJpZXMub2JqOiBzdW5kcmllcy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtc3VuZHJpZXMub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtc3VuZHJpZXMuVHBvIC1jIC1vIG1vdW50X3N0YXRpYy1zdW5kcmllcy5vYmogYGlmIHRlc3QgLWYgJ3N1bmRyaWVzLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc3VuZHJpZXMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc3VuZHJpZXMuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLXN1bmRyaWVzLlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLXN1bmRyaWVzLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nc3VuZHJpZXMuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtc3VuZHJpZXMub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLXN1bmRyaWVzLm9iaiBgaWYgdGVzdCAtZiAnc3VuZHJpZXMuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdzdW5kcmllcy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9zdW5kcmllcy5jJzsgZmlgCisKK21vdW50X3N0YXRpYy14bWFsbG9jLm86IHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLXhtYWxsb2MubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnRfc3RhdGljLXhtYWxsb2MuVHBvIC1jIC1vIG1vdW50X3N0YXRpYy14bWFsbG9jLm8gYHRlc3QgLWYgJ3htYWxsb2MuYycgfHwgZWNobyAnJChzcmNkaXIpLydgeG1hbGxvYy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudF9zdGF0aWMteG1hbGxvYy5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy14bWFsbG9jLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0neG1hbGxvYy5jJyBvYmplY3Q9J21vdW50X3N0YXRpYy14bWFsbG9jLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMteG1hbGxvYy5vIGB0ZXN0IC1mICd4bWFsbG9jLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHhtYWxsb2MuYworCittb3VudF9zdGF0aWMteG1hbGxvYy5vYmo6IHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLXhtYWxsb2Mub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMteG1hbGxvYy5UcG8gLWMgLW8gbW91bnRfc3RhdGljLXhtYWxsb2Mub2JqIGBpZiB0ZXN0IC1mICd4bWFsbG9jLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAneG1hbGxvYy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS94bWFsbG9jLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50X3N0YXRpYy14bWFsbG9jLlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLXhtYWxsb2MuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd4bWFsbG9jLmMnIG9iamVjdD0nbW91bnRfc3RhdGljLXhtYWxsb2Mub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLXhtYWxsb2Mub2JqIGBpZiB0ZXN0IC1mICd4bWFsbG9jLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAneG1hbGxvYy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS94bWFsbG9jLmMnOyBmaWAKKworbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5vOiAuLi9saWIvY2Fub25pY2FsaXplLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50X3N0YXRpYy1jYW5vbmljYWxpemUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5UcG8gLWMgLW8gbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5vIGB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1jYW5vbmljYWxpemUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvY2Fub25pY2FsaXplLmMnIG9iamVjdD0nbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5vIGB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9jYW5vbmljYWxpemUuYworCittb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLm9iajogLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5UcG8gLWMgLW8gbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1jYW5vbmljYWxpemUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvY2Fub25pY2FsaXplLmMnIG9iamVjdD0nbW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZmlgCisKK21vdW50X3N0YXRpYy1lbnYubzogLi4vbGliL2Vudi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtZW52Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50X3N0YXRpYy1lbnYuVHBvIC1jIC1vIG1vdW50X3N0YXRpYy1lbnYubyBgdGVzdCAtZiAnLi4vbGliL2Vudi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZW52LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50X3N0YXRpYy1lbnYuVHBvICQoREVQRElSKS9tb3VudF9zdGF0aWMtZW52LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Vudi5jJyBvYmplY3Q9J21vdW50X3N0YXRpYy1lbnYubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50X3N0YXRpYy1lbnYubyBgdGVzdCAtZiAnLi4vbGliL2Vudi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZW52LmMKKworbW91bnRfc3RhdGljLWVudi5vYmo6IC4uL2xpYi9lbnYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLWVudi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50X3N0YXRpYy1lbnYuVHBvIC1jIC1vIG1vdW50X3N0YXRpYy1lbnYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvZW52LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Vudi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZW52LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21vdW50X3N0YXRpYy1lbnYuVHBvICQoREVQRElSKS9tb3VudF9zdGF0aWMtZW52LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Vudi5jJyBvYmplY3Q9J21vdW50X3N0YXRpYy1lbnYub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLWVudi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9lbnYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZW52LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9lbnYuYyc7IGZpYAorCittb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5vOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5UcG8gLWMgLW8gbW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24ubyBgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS9tb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0nbW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24ubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLm8gYHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9saW51eF92ZXJzaW9uLmMKKworbW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24ub2JqOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLlRwbyAtYyAtbyBtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS9tb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0nbW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24ub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24ub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBmaWAKKworbW91bnRfc3RhdGljLWJsa2Rldi5vOiAuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50X3N0YXRpYy1ibGtkZXYubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnRfc3RhdGljLWJsa2Rldi5UcG8gLWMgLW8gbW91bnRfc3RhdGljLWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLWJsa2Rldi5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0nbW91bnRfc3RhdGljLWJsa2Rldi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworCittb3VudF9zdGF0aWMtYmxrZGV2Lm9iajogLi4vbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtb3VudF9zdGF0aWMtYmxrZGV2Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnRfc3RhdGljLWJsa2Rldi5UcG8gLWMgLW8gbW91bnRfc3RhdGljLWJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbW91bnRfc3RhdGljLWJsa2Rldi5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0nbW91bnRfc3RhdGljLWJsa2Rldi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtYmxrZGV2Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9ibGtkZXYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Jsa2Rldi5jJzsgZmlgCisKK21vdW50X3N0YXRpYy1mc3Byb2JlLm86IC4uL2xpYi9mc3Byb2JlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50X3N0YXRpYy1mc3Byb2JlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL21vdW50X3N0YXRpYy1mc3Byb2JlLlRwbyAtYyAtbyBtb3VudF9zdGF0aWMtZnNwcm9iZS5vIGB0ZXN0IC1mICcuLi9saWIvZnNwcm9iZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZnNwcm9iZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudF9zdGF0aWMtZnNwcm9iZS5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1mc3Byb2JlLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2ZzcHJvYmUuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtZnNwcm9iZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbW91bnRfc3RhdGljLWZzcHJvYmUubyBgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2ZzcHJvYmUuYworCittb3VudF9zdGF0aWMtZnNwcm9iZS5vYmo6IC4uL2xpYi9mc3Byb2JlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50X3N0YXRpYy1mc3Byb2JlLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbW91bnRfc3RhdGljLWZzcHJvYmUuVHBvIC1jIC1vIG1vdW50X3N0YXRpYy1mc3Byb2JlLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZnNwcm9iZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZnNwcm9iZS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudF9zdGF0aWMtZnNwcm9iZS5UcG8gJChERVBESVIpL21vdW50X3N0YXRpYy1mc3Byb2JlLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2ZzcHJvYmUuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtZnNwcm9iZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtZnNwcm9iZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9mc3Byb2JlLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2ZzcHJvYmUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2ZzcHJvYmUuYyc7IGZpYAorCittb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLm86IC4uL2xpYi9zZXRwcm9jdGl0bGUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbW91bnRfc3RhdGljLXNldHByb2N0aXRsZS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLlRwbyAtYyAtbyBtb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLm8gYHRlc3QgLWYgJy4uL2xpYi9zZXRwcm9jdGl0bGUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL3NldHByb2N0aXRsZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLXNldHByb2N0aXRsZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9zZXRwcm9jdGl0bGUuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKG1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLm8gYHRlc3QgLWYgJy4uL2xpYi9zZXRwcm9jdGl0bGUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL3NldHByb2N0aXRsZS5jCisKK21vdW50X3N0YXRpYy1zZXRwcm9jdGl0bGUub2JqOiAuLi9saWIvc2V0cHJvY3RpdGxlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1vdW50X3N0YXRpYy1zZXRwcm9jdGl0bGUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLlRwbyAtYyAtbyBtb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL3NldHByb2N0aXRsZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9zZXRwcm9jdGl0bGUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL3NldHByb2N0aXRsZS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLlRwbyAkKERFUERJUikvbW91bnRfc3RhdGljLXNldHByb2N0aXRsZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9zZXRwcm9jdGl0bGUuYycgb2JqZWN0PSdtb3VudF9zdGF0aWMtc2V0cHJvY3RpdGxlLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG1vdW50X3N0YXRpYy1zZXRwcm9jdGl0bGUub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvc2V0cHJvY3RpdGxlLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL3NldHByb2N0aXRsZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvc2V0cHJvY3RpdGxlLmMnOyBmaWAKKworbXRhYl9sb2NrX3Rlc3QtZnN0YWIubzogZnN0YWIuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKG10YWJfbG9ja190ZXN0X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtdGFiX2xvY2tfdGVzdC1mc3RhYi5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC1mc3RhYi5UcG8gLWMgLW8gbXRhYl9sb2NrX3Rlc3QtZnN0YWIubyBgdGVzdCAtZiAnZnN0YWIuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZnN0YWIuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3QtZnN0YWIuVHBvICQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC1mc3RhYi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2ZzdGFiLmMnIG9iamVjdD0nbXRhYl9sb2NrX3Rlc3QtZnN0YWIubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobXRhYl9sb2NrX3Rlc3RfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbXRhYl9sb2NrX3Rlc3QtZnN0YWIubyBgdGVzdCAtZiAnZnN0YWIuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZnN0YWIuYworCittdGFiX2xvY2tfdGVzdC1mc3RhYi5vYmo6IGZzdGFiLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChtdGFiX2xvY2tfdGVzdF9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbXRhYl9sb2NrX3Rlc3QtZnN0YWIub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC1mc3RhYi5UcG8gLWMgLW8gbXRhYl9sb2NrX3Rlc3QtZnN0YWIub2JqIGBpZiB0ZXN0IC1mICdmc3RhYi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZzdGFiLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZzdGFiLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL210YWJfbG9ja190ZXN0LWZzdGFiLlRwbyAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3QtZnN0YWIuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmc3RhYi5jJyBvYmplY3Q9J210YWJfbG9ja190ZXN0LWZzdGFiLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobXRhYl9sb2NrX3Rlc3RfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbXRhYl9sb2NrX3Rlc3QtZnN0YWIub2JqIGBpZiB0ZXN0IC1mICdmc3RhYi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZzdGFiLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZzdGFiLmMnOyBmaWAKKworbXRhYl9sb2NrX3Rlc3Qtc3VuZHJpZXMubzogc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKG10YWJfbG9ja190ZXN0X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtdGFiX2xvY2tfdGVzdC1zdW5kcmllcy5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC1zdW5kcmllcy5UcG8gLWMgLW8gbXRhYl9sb2NrX3Rlc3Qtc3VuZHJpZXMubyBgdGVzdCAtZiAnc3VuZHJpZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3Qtc3VuZHJpZXMuVHBvICQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC1zdW5kcmllcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3N1bmRyaWVzLmMnIG9iamVjdD0nbXRhYl9sb2NrX3Rlc3Qtc3VuZHJpZXMubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobXRhYl9sb2NrX3Rlc3RfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbXRhYl9sb2NrX3Rlc3Qtc3VuZHJpZXMubyBgdGVzdCAtZiAnc3VuZHJpZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc3VuZHJpZXMuYworCittdGFiX2xvY2tfdGVzdC1zdW5kcmllcy5vYmo6IHN1bmRyaWVzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChtdGFiX2xvY2tfdGVzdF9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbXRhYl9sb2NrX3Rlc3Qtc3VuZHJpZXMub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC1zdW5kcmllcy5UcG8gLWMgLW8gbXRhYl9sb2NrX3Rlc3Qtc3VuZHJpZXMub2JqIGBpZiB0ZXN0IC1mICdzdW5kcmllcy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3N1bmRyaWVzLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3N1bmRyaWVzLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL210YWJfbG9ja190ZXN0LXN1bmRyaWVzLlRwbyAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3Qtc3VuZHJpZXMuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdzdW5kcmllcy5jJyBvYmplY3Q9J210YWJfbG9ja190ZXN0LXN1bmRyaWVzLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobXRhYl9sb2NrX3Rlc3RfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbXRhYl9sb2NrX3Rlc3Qtc3VuZHJpZXMub2JqIGBpZiB0ZXN0IC1mICdzdW5kcmllcy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3N1bmRyaWVzLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3N1bmRyaWVzLmMnOyBmaWAKKworbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy5vOiB4bWFsbG9jLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChtdGFiX2xvY2tfdGVzdF9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC14bWFsbG9jLlRwbyAtYyAtbyBtdGFiX2xvY2tfdGVzdC14bWFsbG9jLm8gYHRlc3QgLWYgJ3htYWxsb2MuYycgfHwgZWNobyAnJChzcmNkaXIpLydgeG1hbGxvYy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC14bWFsbG9jLlRwbyAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3htYWxsb2MuYycgb2JqZWN0PSdtdGFiX2xvY2tfdGVzdC14bWFsbG9jLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKG10YWJfbG9ja190ZXN0X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG10YWJfbG9ja190ZXN0LXhtYWxsb2MubyBgdGVzdCAtZiAneG1hbGxvYy5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B4bWFsbG9jLmMKKworbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy5vYmo6IHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKG10YWJfbG9ja190ZXN0X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtdGFiX2xvY2tfdGVzdC14bWFsbG9jLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy5UcG8gLWMgLW8gbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy5vYmogYGlmIHRlc3QgLWYgJ3htYWxsb2MuYyc7IHRoZW4gJChDWUdQQVRIX1cpICd4bWFsbG9jLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3htYWxsb2MuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy5UcG8gJChERVBESVIpL210YWJfbG9ja190ZXN0LXhtYWxsb2MuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd4bWFsbG9jLmMnIG9iamVjdD0nbXRhYl9sb2NrX3Rlc3QteG1hbGxvYy5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKG10YWJfbG9ja190ZXN0X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG10YWJfbG9ja190ZXN0LXhtYWxsb2Mub2JqIGBpZiB0ZXN0IC1mICd4bWFsbG9jLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAneG1hbGxvYy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS94bWFsbG9jLmMnOyBmaWAKKworbXRhYl9sb2NrX3Rlc3QtY2Fub25pY2FsaXplLm86IC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKG10YWJfbG9ja190ZXN0X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtdGFiX2xvY2tfdGVzdC1jYW5vbmljYWxpemUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3QtY2Fub25pY2FsaXplLlRwbyAtYyAtbyBtdGFiX2xvY2tfdGVzdC1jYW5vbmljYWxpemUubyBgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvY2Fub25pY2FsaXplLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL210YWJfbG9ja190ZXN0LWNhbm9uaWNhbGl6ZS5UcG8gJChERVBESVIpL210YWJfbG9ja190ZXN0LWNhbm9uaWNhbGl6ZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9jYW5vbmljYWxpemUuYycgb2JqZWN0PSdtdGFiX2xvY2tfdGVzdC1jYW5vbmljYWxpemUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQobXRhYl9sb2NrX3Rlc3RfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbXRhYl9sb2NrX3Rlc3QtY2Fub25pY2FsaXplLm8gYHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCisKK210YWJfbG9ja190ZXN0LWNhbm9uaWNhbGl6ZS5vYmo6IC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKG10YWJfbG9ja190ZXN0X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBtdGFiX2xvY2tfdGVzdC1jYW5vbmljYWxpemUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9tdGFiX2xvY2tfdGVzdC1jYW5vbmljYWxpemUuVHBvIC1jIC1vIG10YWJfbG9ja190ZXN0LWNhbm9uaWNhbGl6ZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3QtY2Fub25pY2FsaXplLlRwbyAkKERFUERJUikvbXRhYl9sb2NrX3Rlc3QtY2Fub25pY2FsaXplLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyBvYmplY3Q9J210YWJfbG9ja190ZXN0LWNhbm9uaWNhbGl6ZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKG10YWJfbG9ja190ZXN0X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIG10YWJfbG9ja190ZXN0LWNhbm9uaWNhbGl6ZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGZpYAorCitzd2Fwb24tc3dhcG9uLm86IHN3YXBvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoc3dhcG9uX0NGTEFHUykgJChDRkxBR1MpIC1NVCBzd2Fwb24tc3dhcG9uLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3N3YXBvbi1zd2Fwb24uVHBvIC1jIC1vIHN3YXBvbi1zd2Fwb24ubyBgdGVzdCAtZiAnc3dhcG9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHN3YXBvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9zd2Fwb24tc3dhcG9uLlRwbyAkKERFUERJUikvc3dhcG9uLXN3YXBvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3N3YXBvbi5jJyBvYmplY3Q9J3N3YXBvbi1zd2Fwb24ubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoc3dhcG9uX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHN3YXBvbi1zd2Fwb24ubyBgdGVzdCAtZiAnc3dhcG9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHN3YXBvbi5jCisKK3N3YXBvbi1zd2Fwb24ub2JqOiBzd2Fwb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgc3dhcG9uLXN3YXBvbi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3N3YXBvbi1zd2Fwb24uVHBvIC1jIC1vIHN3YXBvbi1zd2Fwb24ub2JqIGBpZiB0ZXN0IC1mICdzd2Fwb24uYyc7IHRoZW4gJChDWUdQQVRIX1cpICdzd2Fwb24uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc3dhcG9uLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3N3YXBvbi1zd2Fwb24uVHBvICQoREVQRElSKS9zd2Fwb24tc3dhcG9uLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nc3dhcG9uLmMnIG9iamVjdD0nc3dhcG9uLXN3YXBvbi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBzd2Fwb24tc3dhcG9uLm9iaiBgaWYgdGVzdCAtZiAnc3dhcG9uLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc3dhcG9uLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3N3YXBvbi5jJzsgZmlgCisKK3N3YXBvbi1saW51eF92ZXJzaW9uLm86IC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChzd2Fwb25fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHN3YXBvbi1saW51eF92ZXJzaW9uLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3N3YXBvbi1saW51eF92ZXJzaW9uLlRwbyAtYyAtbyBzd2Fwb24tbGludXhfdmVyc2lvbi5vIGB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9zd2Fwb24tbGludXhfdmVyc2lvbi5UcG8gJChERVBESVIpL3N3YXBvbi1saW51eF92ZXJzaW9uLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgb2JqZWN0PSdzd2Fwb24tbGludXhfdmVyc2lvbi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChzd2Fwb25fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gc3dhcG9uLWxpbnV4X3ZlcnNpb24ubyBgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworCitzd2Fwb24tbGludXhfdmVyc2lvbi5vYmo6IC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChzd2Fwb25fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHN3YXBvbi1saW51eF92ZXJzaW9uLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvc3dhcG9uLWxpbnV4X3ZlcnNpb24uVHBvIC1jIC1vIHN3YXBvbi1saW51eF92ZXJzaW9uLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9zd2Fwb24tbGludXhfdmVyc2lvbi5UcG8gJChERVBESVIpL3N3YXBvbi1saW51eF92ZXJzaW9uLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgb2JqZWN0PSdzd2Fwb24tbGludXhfdmVyc2lvbi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBzd2Fwb24tbGludXhfdmVyc2lvbi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGZpYAorCitzd2Fwb24tYmxrZGV2Lm86IC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgc3dhcG9uLWJsa2Rldi5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9zd2Fwb24tYmxrZGV2LlRwbyAtYyAtbyBzd2Fwb24tYmxrZGV2Lm8gYHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9zd2Fwb24tYmxrZGV2LlRwbyAkKERFUERJUikvc3dhcG9uLWJsa2Rldi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9ibGtkZXYuYycgb2JqZWN0PSdzd2Fwb24tYmxrZGV2Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBzd2Fwb24tYmxrZGV2Lm8gYHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Jsa2Rldi5jCisKK3N3YXBvbi1ibGtkZXYub2JqOiAuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChzd2Fwb25fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHN3YXBvbi1ibGtkZXYub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9zd2Fwb24tYmxrZGV2LlRwbyAtYyAtbyBzd2Fwb24tYmxrZGV2Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9ibGtkZXYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Jsa2Rldi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9zd2Fwb24tYmxrZGV2LlRwbyAkKERFUERJUikvc3dhcG9uLWJsa2Rldi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9ibGtkZXYuYycgb2JqZWN0PSdzd2Fwb24tYmxrZGV2Lm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoc3dhcG9uX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHN3YXBvbi1ibGtkZXYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Jsa2Rldi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvYmxrZGV2LmMnOyBmaWAKKworc3dhcG9uLWZzcHJvYmUubzogLi4vbGliL2ZzcHJvYmUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgc3dhcG9uLWZzcHJvYmUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvc3dhcG9uLWZzcHJvYmUuVHBvIC1jIC1vIHN3YXBvbi1mc3Byb2JlLm8gYHRlc3QgLWYgJy4uL2xpYi9mc3Byb2JlLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9mc3Byb2JlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3N3YXBvbi1mc3Byb2JlLlRwbyAkKERFUERJUikvc3dhcG9uLWZzcHJvYmUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvZnNwcm9iZS5jJyBvYmplY3Q9J3N3YXBvbi1mc3Byb2JlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBzd2Fwb24tZnNwcm9iZS5vIGB0ZXN0IC1mICcuLi9saWIvZnNwcm9iZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZnNwcm9iZS5jCisKK3N3YXBvbi1mc3Byb2JlLm9iajogLi4vbGliL2ZzcHJvYmUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgc3dhcG9uLWZzcHJvYmUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9zd2Fwb24tZnNwcm9iZS5UcG8gLWMgLW8gc3dhcG9uLWZzcHJvYmUub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvZnNwcm9iZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9mc3Byb2JlLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9mc3Byb2JlLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3N3YXBvbi1mc3Byb2JlLlRwbyAkKERFUERJUikvc3dhcG9uLWZzcHJvYmUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvZnNwcm9iZS5jJyBvYmplY3Q9J3N3YXBvbi1mc3Byb2JlLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoc3dhcG9uX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHN3YXBvbi1mc3Byb2JlLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZnNwcm9iZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZnNwcm9iZS5jJzsgZmlgCisKK3N3YXBvbi1jYW5vbmljYWxpemUubzogLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoc3dhcG9uX0NGTEFHUykgJChDRkxBR1MpIC1NVCBzd2Fwb24tY2Fub25pY2FsaXplLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3N3YXBvbi1jYW5vbmljYWxpemUuVHBvIC1jIC1vIHN3YXBvbi1jYW5vbmljYWxpemUubyBgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvY2Fub25pY2FsaXplLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3N3YXBvbi1jYW5vbmljYWxpemUuVHBvICQoREVQRElSKS9zd2Fwb24tY2Fub25pY2FsaXplLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyBvYmplY3Q9J3N3YXBvbi1jYW5vbmljYWxpemUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoc3dhcG9uX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHN3YXBvbi1jYW5vbmljYWxpemUubyBgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvY2Fub25pY2FsaXplLmMKKworc3dhcG9uLWNhbm9uaWNhbGl6ZS5vYmo6IC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHN3YXBvbl9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgc3dhcG9uLWNhbm9uaWNhbGl6ZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3N3YXBvbi1jYW5vbmljYWxpemUuVHBvIC1jIC1vIHN3YXBvbi1jYW5vbmljYWxpemUub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvY2Fub25pY2FsaXplLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3N3YXBvbi1jYW5vbmljYWxpemUuVHBvICQoREVQRElSKS9zd2Fwb24tY2Fub25pY2FsaXplLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJyBvYmplY3Q9J3N3YXBvbi1jYW5vbmljYWxpemUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChzd2Fwb25fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gc3dhcG9uLWNhbm9uaWNhbGl6ZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGZpYAorCit1bW91bnQtdW1vdW50Lm86IHVtb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtdW1vdW50Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC11bW91bnQuVHBvIC1jIC1vIHVtb3VudC11bW91bnQubyBgdGVzdCAtZiAndW1vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHVtb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91bW91bnQtdW1vdW50LlRwbyAkKERFUERJUikvdW1vdW50LXVtb3VudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3Vtb3VudC5jJyBvYmplY3Q9J3Vtb3VudC11bW91bnQubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudC11bW91bnQubyBgdGVzdCAtZiAndW1vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHVtb3VudC5jCisKK3Vtb3VudC11bW91bnQub2JqOiB1bW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50LXVtb3VudC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC11bW91bnQuVHBvIC1jIC1vIHVtb3VudC11bW91bnQub2JqIGBpZiB0ZXN0IC1mICd1bW91bnQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICd1bW91bnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvdW1vdW50LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudC11bW91bnQuVHBvICQoREVQRElSKS91bW91bnQtdW1vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0ndW1vdW50LmMnIG9iamVjdD0ndW1vdW50LXVtb3VudC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtdW1vdW50Lm9iaiBgaWYgdGVzdCAtZiAndW1vdW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAndW1vdW50LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3Vtb3VudC5jJzsgZmlgCisKK3Vtb3VudC1mc3RhYi5vOiBmc3RhYi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtZnN0YWIubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50LWZzdGFiLlRwbyAtYyAtbyB1bW91bnQtZnN0YWIubyBgdGVzdCAtZiAnZnN0YWIuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZnN0YWIuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LWZzdGFiLlRwbyAkKERFUERJUikvdW1vdW50LWZzdGFiLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZnN0YWIuYycgb2JqZWN0PSd1bW91bnQtZnN0YWIubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudC1mc3RhYi5vIGB0ZXN0IC1mICdmc3RhYi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Bmc3RhYi5jCisKK3Vtb3VudC1mc3RhYi5vYmo6IGZzdGFiLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudC1mc3RhYi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC1mc3RhYi5UcG8gLWMgLW8gdW1vdW50LWZzdGFiLm9iaiBgaWYgdGVzdCAtZiAnZnN0YWIuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmc3RhYi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mc3RhYi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91bW91bnQtZnN0YWIuVHBvICQoREVQRElSKS91bW91bnQtZnN0YWIuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdmc3RhYi5jJyBvYmplY3Q9J3Vtb3VudC1mc3RhYi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtZnN0YWIub2JqIGBpZiB0ZXN0IC1mICdmc3RhYi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZzdGFiLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZzdGFiLmMnOyBmaWAKKwordW1vdW50LW1vdW50X21udGVudC5vOiBtb3VudF9tbnRlbnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50LW1vdW50X21udGVudC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnQtbW91bnRfbW50ZW50LlRwbyAtYyAtbyB1bW91bnQtbW91bnRfbW50ZW50Lm8gYHRlc3QgLWYgJ21vdW50X21udGVudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Btb3VudF9tbnRlbnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LW1vdW50X21udGVudC5UcG8gJChERVBESVIpL3Vtb3VudC1tb3VudF9tbnRlbnQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdtb3VudF9tbnRlbnQuYycgb2JqZWN0PSd1bW91bnQtbW91bnRfbW50ZW50Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtbW91bnRfbW50ZW50Lm8gYHRlc3QgLWYgJ21vdW50X21udGVudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Btb3VudF9tbnRlbnQuYworCit1bW91bnQtbW91bnRfbW50ZW50Lm9iajogbW91bnRfbW50ZW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudC1tb3VudF9tbnRlbnQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnQtbW91bnRfbW50ZW50LlRwbyAtYyAtbyB1bW91bnQtbW91bnRfbW50ZW50Lm9iaiBgaWYgdGVzdCAtZiAnbW91bnRfbW50ZW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbW91bnRfbW50ZW50LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL21vdW50X21udGVudC5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91bW91bnQtbW91bnRfbW50ZW50LlRwbyAkKERFUERJUikvdW1vdW50LW1vdW50X21udGVudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J21vdW50X21udGVudC5jJyBvYmplY3Q9J3Vtb3VudC1tb3VudF9tbnRlbnQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LW1vdW50X21udGVudC5vYmogYGlmIHRlc3QgLWYgJ21vdW50X21udGVudC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ21vdW50X21udGVudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9tb3VudF9tbnRlbnQuYyc7IGZpYAorCit1bW91bnQtZ2V0dXNlcm5hbWUubzogZ2V0dXNlcm5hbWUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50LWdldHVzZXJuYW1lLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC1nZXR1c2VybmFtZS5UcG8gLWMgLW8gdW1vdW50LWdldHVzZXJuYW1lLm8gYHRlc3QgLWYgJ2dldHVzZXJuYW1lLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGdldHVzZXJuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudC1nZXR1c2VybmFtZS5UcG8gJChERVBESVIpL3Vtb3VudC1nZXR1c2VybmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2dldHVzZXJuYW1lLmMnIG9iamVjdD0ndW1vdW50LWdldHVzZXJuYW1lLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtZ2V0dXNlcm5hbWUubyBgdGVzdCAtZiAnZ2V0dXNlcm5hbWUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZ2V0dXNlcm5hbWUuYworCit1bW91bnQtZ2V0dXNlcm5hbWUub2JqOiBnZXR1c2VybmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtZ2V0dXNlcm5hbWUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnQtZ2V0dXNlcm5hbWUuVHBvIC1jIC1vIHVtb3VudC1nZXR1c2VybmFtZS5vYmogYGlmIHRlc3QgLWYgJ2dldHVzZXJuYW1lLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZ2V0dXNlcm5hbWUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZ2V0dXNlcm5hbWUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LWdldHVzZXJuYW1lLlRwbyAkKERFUERJUikvdW1vdW50LWdldHVzZXJuYW1lLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZ2V0dXNlcm5hbWUuYycgb2JqZWN0PSd1bW91bnQtZ2V0dXNlcm5hbWUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LWdldHVzZXJuYW1lLm9iaiBgaWYgdGVzdCAtZiAnZ2V0dXNlcm5hbWUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdnZXR1c2VybmFtZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9nZXR1c2VybmFtZS5jJzsgZmlgCisKK3Vtb3VudC1sb21vdW50Lm86IGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50LWxvbW91bnQubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50LWxvbW91bnQuVHBvIC1jIC1vIHVtb3VudC1sb21vdW50Lm8gYHRlc3QgLWYgJ2xvbW91bnQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgbG9tb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91bW91bnQtbG9tb3VudC5UcG8gJChERVBESVIpL3Vtb3VudC1sb21vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbG9tb3VudC5jJyBvYmplY3Q9J3Vtb3VudC1sb21vdW50Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtbG9tb3VudC5vIGB0ZXN0IC1mICdsb21vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGxvbW91bnQuYworCit1bW91bnQtbG9tb3VudC5vYmo6IGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50LWxvbW91bnQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnQtbG9tb3VudC5UcG8gLWMgLW8gdW1vdW50LWxvbW91bnQub2JqIGBpZiB0ZXN0IC1mICdsb21vdW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbG9tb3VudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9sb21vdW50LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudC1sb21vdW50LlRwbyAkKERFUERJUikvdW1vdW50LWxvbW91bnQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdsb21vdW50LmMnIG9iamVjdD0ndW1vdW50LWxvbW91bnQub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LWxvbW91bnQub2JqIGBpZiB0ZXN0IC1mICdsb21vdW50LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnbG9tb3VudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9sb21vdW50LmMnOyBmaWAKKwordW1vdW50LWRldm5hbWUubzogZGV2bmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtZGV2bmFtZS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnQtZGV2bmFtZS5UcG8gLWMgLW8gdW1vdW50LWRldm5hbWUubyBgdGVzdCAtZiAnZGV2bmFtZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BkZXZuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudC1kZXZuYW1lLlRwbyAkKERFUERJUikvdW1vdW50LWRldm5hbWUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdkZXZuYW1lLmMnIG9iamVjdD0ndW1vdW50LWRldm5hbWUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudC1kZXZuYW1lLm8gYHRlc3QgLWYgJ2Rldm5hbWUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZGV2bmFtZS5jCisKK3Vtb3VudC1kZXZuYW1lLm9iajogZGV2bmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtZGV2bmFtZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC1kZXZuYW1lLlRwbyAtYyAtbyB1bW91bnQtZGV2bmFtZS5vYmogYGlmIHRlc3QgLWYgJ2Rldm5hbWUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdkZXZuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Rldm5hbWUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LWRldm5hbWUuVHBvICQoREVQRElSKS91bW91bnQtZGV2bmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2Rldm5hbWUuYycgb2JqZWN0PSd1bW91bnQtZGV2bmFtZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtZGV2bmFtZS5vYmogYGlmIHRlc3QgLWYgJ2Rldm5hbWUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdkZXZuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Rldm5hbWUuYyc7IGZpYAorCit1bW91bnQtc3VuZHJpZXMubzogc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50LXN1bmRyaWVzLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC1zdW5kcmllcy5UcG8gLWMgLW8gdW1vdW50LXN1bmRyaWVzLm8gYHRlc3QgLWYgJ3N1bmRyaWVzLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHN1bmRyaWVzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudC1zdW5kcmllcy5UcG8gJChERVBESVIpL3Vtb3VudC1zdW5kcmllcy5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J3N1bmRyaWVzLmMnIG9iamVjdD0ndW1vdW50LXN1bmRyaWVzLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtc3VuZHJpZXMubyBgdGVzdCAtZiAnc3VuZHJpZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc3VuZHJpZXMuYworCit1bW91bnQtc3VuZHJpZXMub2JqOiBzdW5kcmllcy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtc3VuZHJpZXMub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnQtc3VuZHJpZXMuVHBvIC1jIC1vIHVtb3VudC1zdW5kcmllcy5vYmogYGlmIHRlc3QgLWYgJ3N1bmRyaWVzLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc3VuZHJpZXMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc3VuZHJpZXMuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LXN1bmRyaWVzLlRwbyAkKERFUERJUikvdW1vdW50LXN1bmRyaWVzLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nc3VuZHJpZXMuYycgb2JqZWN0PSd1bW91bnQtc3VuZHJpZXMub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LXN1bmRyaWVzLm9iaiBgaWYgdGVzdCAtZiAnc3VuZHJpZXMuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdzdW5kcmllcy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9zdW5kcmllcy5jJzsgZmlgCisKK3Vtb3VudC14bWFsbG9jLm86IHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50LXhtYWxsb2MubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50LXhtYWxsb2MuVHBvIC1jIC1vIHVtb3VudC14bWFsbG9jLm8gYHRlc3QgLWYgJ3htYWxsb2MuYycgfHwgZWNobyAnJChzcmNkaXIpLydgeG1hbGxvYy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91bW91bnQteG1hbGxvYy5UcG8gJChERVBESVIpL3Vtb3VudC14bWFsbG9jLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0neG1hbGxvYy5jJyBvYmplY3Q9J3Vtb3VudC14bWFsbG9jLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQteG1hbGxvYy5vIGB0ZXN0IC1mICd4bWFsbG9jLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHhtYWxsb2MuYworCit1bW91bnQteG1hbGxvYy5vYmo6IHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50LXhtYWxsb2Mub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnQteG1hbGxvYy5UcG8gLWMgLW8gdW1vdW50LXhtYWxsb2Mub2JqIGBpZiB0ZXN0IC1mICd4bWFsbG9jLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAneG1hbGxvYy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS94bWFsbG9jLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudC14bWFsbG9jLlRwbyAkKERFUERJUikvdW1vdW50LXhtYWxsb2MuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd4bWFsbG9jLmMnIG9iamVjdD0ndW1vdW50LXhtYWxsb2Mub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LXhtYWxsb2Mub2JqIGBpZiB0ZXN0IC1mICd4bWFsbG9jLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAneG1hbGxvYy5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS94bWFsbG9jLmMnOyBmaWAKKwordW1vdW50LWNhbm9uaWNhbGl6ZS5vOiAuLi9saWIvY2Fub25pY2FsaXplLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudC1jYW5vbmljYWxpemUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50LWNhbm9uaWNhbGl6ZS5UcG8gLWMgLW8gdW1vdW50LWNhbm9uaWNhbGl6ZS5vIGB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LWNhbm9uaWNhbGl6ZS5UcG8gJChERVBESVIpL3Vtb3VudC1jYW5vbmljYWxpemUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvY2Fub25pY2FsaXplLmMnIG9iamVjdD0ndW1vdW50LWNhbm9uaWNhbGl6ZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LWNhbm9uaWNhbGl6ZS5vIGB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9jYW5vbmljYWxpemUuYworCit1bW91bnQtY2Fub25pY2FsaXplLm9iajogLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtY2Fub25pY2FsaXplLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50LWNhbm9uaWNhbGl6ZS5UcG8gLWMgLW8gdW1vdW50LWNhbm9uaWNhbGl6ZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LWNhbm9uaWNhbGl6ZS5UcG8gJChERVBESVIpL3Vtb3VudC1jYW5vbmljYWxpemUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvY2Fub25pY2FsaXplLmMnIG9iamVjdD0ndW1vdW50LWNhbm9uaWNhbGl6ZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtY2Fub25pY2FsaXplLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZmlgCisKK3Vtb3VudC1lbnYubzogLi4vbGliL2Vudi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtZW52Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC1lbnYuVHBvIC1jIC1vIHVtb3VudC1lbnYubyBgdGVzdCAtZiAnLi4vbGliL2Vudi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZW52LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudC1lbnYuVHBvICQoREVQRElSKS91bW91bnQtZW52LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Vudi5jJyBvYmplY3Q9J3Vtb3VudC1lbnYubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudC1lbnYubyBgdGVzdCAtZiAnLi4vbGliL2Vudi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZW52LmMKKwordW1vdW50LWVudi5vYmo6IC4uL2xpYi9lbnYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50LWVudi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC1lbnYuVHBvIC1jIC1vIHVtb3VudC1lbnYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvZW52LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Vudi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZW52LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudC1lbnYuVHBvICQoREVQRElSKS91bW91bnQtZW52LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Vudi5jJyBvYmplY3Q9J3Vtb3VudC1lbnYub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LWVudi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9lbnYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZW52LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9lbnYuYyc7IGZpYAorCit1bW91bnQtbGludXhfdmVyc2lvbi5vOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtbGludXhfdmVyc2lvbi5vIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnQtbGludXhfdmVyc2lvbi5UcG8gLWMgLW8gdW1vdW50LWxpbnV4X3ZlcnNpb24ubyBgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LWxpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS91bW91bnQtbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0ndW1vdW50LWxpbnV4X3ZlcnNpb24ubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudC1saW51eF92ZXJzaW9uLm8gYHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9saW51eF92ZXJzaW9uLmMKKwordW1vdW50LWxpbnV4X3ZlcnNpb24ub2JqOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtbGludXhfdmVyc2lvbi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC1saW51eF92ZXJzaW9uLlRwbyAtYyAtbyB1bW91bnQtbGludXhfdmVyc2lvbi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LWxpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS91bW91bnQtbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0ndW1vdW50LWxpbnV4X3ZlcnNpb24ub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LWxpbnV4X3ZlcnNpb24ub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyBmaWAKKwordW1vdW50LWJsa2Rldi5vOiAuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudC1ibGtkZXYubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50LWJsa2Rldi5UcG8gLWMgLW8gdW1vdW50LWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LWJsa2Rldi5UcG8gJChERVBESVIpL3Vtb3VudC1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0ndW1vdW50LWJsa2Rldi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworCit1bW91bnQtYmxrZGV2Lm9iajogLi4vbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnQtYmxrZGV2Lm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50LWJsa2Rldi5UcG8gLWMgLW8gdW1vdW50LWJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50LWJsa2Rldi5UcG8gJChERVBESVIpL3Vtb3VudC1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0ndW1vdW50LWJsa2Rldi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtYmxrZGV2Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9ibGtkZXYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Jsa2Rldi5jJzsgZmlgCisKK3Vtb3VudC1mc3Byb2JlLm86IC4uL2xpYi9mc3Byb2JlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudC1mc3Byb2JlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudC1mc3Byb2JlLlRwbyAtYyAtbyB1bW91bnQtZnNwcm9iZS5vIGB0ZXN0IC1mICcuLi9saWIvZnNwcm9iZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvZnNwcm9iZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91bW91bnQtZnNwcm9iZS5UcG8gJChERVBESVIpL3Vtb3VudC1mc3Byb2JlLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2ZzcHJvYmUuYycgb2JqZWN0PSd1bW91bnQtZnNwcm9iZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50LWZzcHJvYmUubyBgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2ZzcHJvYmUuYworCit1bW91bnQtZnNwcm9iZS5vYmo6IC4uL2xpYi9mc3Byb2JlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudC1mc3Byb2JlLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50LWZzcHJvYmUuVHBvIC1jIC1vIHVtb3VudC1mc3Byb2JlLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZnNwcm9iZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZnNwcm9iZS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91bW91bnQtZnNwcm9iZS5UcG8gJChERVBESVIpL3Vtb3VudC1mc3Byb2JlLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2ZzcHJvYmUuYycgb2JqZWN0PSd1bW91bnQtZnNwcm9iZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnQtZnNwcm9iZS5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9mc3Byb2JlLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2ZzcHJvYmUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2ZzcHJvYmUuYyc7IGZpYAorCit1bW91bnRfc3RhdGljLXVtb3VudC5vOiB1bW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudF9zdGF0aWMtdW1vdW50Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtdW1vdW50LlRwbyAtYyAtbyB1bW91bnRfc3RhdGljLXVtb3VudC5vIGB0ZXN0IC1mICd1bW91bnQuYycgfHwgZWNobyAnJChzcmNkaXIpLydgdW1vdW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtdW1vdW50LlRwbyAkKERFUERJUikvdW1vdW50X3N0YXRpYy11bW91bnQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd1bW91bnQuYycgb2JqZWN0PSd1bW91bnRfc3RhdGljLXVtb3VudC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtdW1vdW50Lm8gYHRlc3QgLWYgJ3Vtb3VudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2B1bW91bnQuYworCit1bW91bnRfc3RhdGljLXVtb3VudC5vYmo6IHVtb3VudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy11bW91bnQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnRfc3RhdGljLXVtb3VudC5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy11bW91bnQub2JqIGBpZiB0ZXN0IC1mICd1bW91bnQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICd1bW91bnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvdW1vdW50LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtdW1vdW50LlRwbyAkKERFUERJUikvdW1vdW50X3N0YXRpYy11bW91bnQuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSd1bW91bnQuYycgb2JqZWN0PSd1bW91bnRfc3RhdGljLXVtb3VudC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50X3N0YXRpYy11bW91bnQub2JqIGBpZiB0ZXN0IC1mICd1bW91bnQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICd1bW91bnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvdW1vdW50LmMnOyBmaWAKKwordW1vdW50X3N0YXRpYy1mc3RhYi5vOiBmc3RhYi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy1mc3RhYi5vIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnRfc3RhdGljLWZzdGFiLlRwbyAtYyAtbyB1bW91bnRfc3RhdGljLWZzdGFiLm8gYHRlc3QgLWYgJ2ZzdGFiLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGZzdGFiLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZnN0YWIuVHBvICQoREVQRElSKS91bW91bnRfc3RhdGljLWZzdGFiLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZnN0YWIuYycgb2JqZWN0PSd1bW91bnRfc3RhdGljLWZzdGFiLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50X3N0YXRpYy1mc3RhYi5vIGB0ZXN0IC1mICdmc3RhYi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Bmc3RhYi5jCisKK3Vtb3VudF9zdGF0aWMtZnN0YWIub2JqOiBmc3RhYi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy1mc3RhYi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZnN0YWIuVHBvIC1jIC1vIHVtb3VudF9zdGF0aWMtZnN0YWIub2JqIGBpZiB0ZXN0IC1mICdmc3RhYi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2ZzdGFiLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2ZzdGFiLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZnN0YWIuVHBvICQoREVQRElSKS91bW91bnRfc3RhdGljLWZzdGFiLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nZnN0YWIuYycgb2JqZWN0PSd1bW91bnRfc3RhdGljLWZzdGFiLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnRfc3RhdGljLWZzdGFiLm9iaiBgaWYgdGVzdCAtZiAnZnN0YWIuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdmc3RhYi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9mc3RhYi5jJzsgZmlgCisKK3Vtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm86IG1vdW50X21udGVudC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQuVHBvIC1jIC1vIHVtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm8gYHRlc3QgLWYgJ21vdW50X21udGVudC5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2Btb3VudF9tbnRlbnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQuVHBvICQoREVQRElSKS91bW91bnRfc3RhdGljLW1vdW50X21udGVudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J21vdW50X21udGVudC5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQubyBgdGVzdCAtZiAnbW91bnRfbW50ZW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYG1vdW50X21udGVudC5jCisKK3Vtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm9iajogbW91bnRfbW50ZW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnRfc3RhdGljLW1vdW50X21udGVudC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50LlRwbyAtYyAtbyB1bW91bnRfc3RhdGljLW1vdW50X21udGVudC5vYmogYGlmIHRlc3QgLWYgJ21vdW50X21udGVudC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ21vdW50X21udGVudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9tb3VudF9tbnRlbnQuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1tb3VudF9tbnRlbnQuVHBvICQoREVQRElSKS91bW91bnRfc3RhdGljLW1vdW50X21udGVudC5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J21vdW50X21udGVudC5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtbW91bnRfbW50ZW50Lm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnRfc3RhdGljLW1vdW50X21udGVudC5vYmogYGlmIHRlc3QgLWYgJ21vdW50X21udGVudC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ21vdW50X21udGVudC5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9tb3VudF9tbnRlbnQuYyc7IGZpYAorCit1bW91bnRfc3RhdGljLWdldHVzZXJuYW1lLm86IGdldHVzZXJuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnRfc3RhdGljLWdldHVzZXJuYW1lLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUuVHBvIC1jIC1vIHVtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUubyBgdGVzdCAtZiAnZ2V0dXNlcm5hbWUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZ2V0dXNlcm5hbWUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1nZXR1c2VybmFtZS5UcG8gJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdnZXR1c2VybmFtZS5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnRfc3RhdGljLWdldHVzZXJuYW1lLm8gYHRlc3QgLWYgJ2dldHVzZXJuYW1lLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGdldHVzZXJuYW1lLmMKKwordW1vdW50X3N0YXRpYy1nZXR1c2VybmFtZS5vYmo6IGdldHVzZXJuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnRfc3RhdGljLWdldHVzZXJuYW1lLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50X3N0YXRpYy1nZXR1c2VybmFtZS5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy1nZXR1c2VybmFtZS5vYmogYGlmIHRlc3QgLWYgJ2dldHVzZXJuYW1lLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZ2V0dXNlcm5hbWUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvZ2V0dXNlcm5hbWUuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1nZXR1c2VybmFtZS5UcG8gJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdnZXR1c2VybmFtZS5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtZ2V0dXNlcm5hbWUub2JqIGBpZiB0ZXN0IC1mICdnZXR1c2VybmFtZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2dldHVzZXJuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2dldHVzZXJuYW1lLmMnOyBmaWAKKwordW1vdW50X3N0YXRpYy1sb21vdW50Lm86IGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudF9zdGF0aWMtbG9tb3VudC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnRfc3RhdGljLWxvbW91bnQuVHBvIC1jIC1vIHVtb3VudF9zdGF0aWMtbG9tb3VudC5vIGB0ZXN0IC1mICdsb21vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGxvbW91bnQuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1sb21vdW50LlRwbyAkKERFUERJUikvdW1vdW50X3N0YXRpYy1sb21vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbG9tb3VudC5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtbG9tb3VudC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtbG9tb3VudC5vIGB0ZXN0IC1mICdsb21vdW50LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYGxvbW91bnQuYworCit1bW91bnRfc3RhdGljLWxvbW91bnQub2JqOiBsb21vdW50LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnRfc3RhdGljLWxvbW91bnQub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnRfc3RhdGljLWxvbW91bnQuVHBvIC1jIC1vIHVtb3VudF9zdGF0aWMtbG9tb3VudC5vYmogYGlmIHRlc3QgLWYgJ2xvbW91bnQuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdsb21vdW50LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2xvbW91bnQuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1sb21vdW50LlRwbyAkKERFUERJUikvdW1vdW50X3N0YXRpYy1sb21vdW50LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nbG9tb3VudC5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtbG9tb3VudC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50X3N0YXRpYy1sb21vdW50Lm9iaiBgaWYgdGVzdCAtZiAnbG9tb3VudC5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ2xvbW91bnQuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvbG9tb3VudC5jJzsgZmlgCisKK3Vtb3VudF9zdGF0aWMtZGV2bmFtZS5vOiBkZXZuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnRfc3RhdGljLWRldm5hbWUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50X3N0YXRpYy1kZXZuYW1lLlRwbyAtYyAtbyB1bW91bnRfc3RhdGljLWRldm5hbWUubyBgdGVzdCAtZiAnZGV2bmFtZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BkZXZuYW1lLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZGV2bmFtZS5UcG8gJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZGV2bmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2Rldm5hbWUuYycgb2JqZWN0PSd1bW91bnRfc3RhdGljLWRldm5hbWUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnRfc3RhdGljLWRldm5hbWUubyBgdGVzdCAtZiAnZGV2bmFtZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BkZXZuYW1lLmMKKwordW1vdW50X3N0YXRpYy1kZXZuYW1lLm9iajogZGV2bmFtZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy1kZXZuYW1lLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50X3N0YXRpYy1kZXZuYW1lLlRwbyAtYyAtbyB1bW91bnRfc3RhdGljLWRldm5hbWUub2JqIGBpZiB0ZXN0IC1mICdkZXZuYW1lLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnZGV2bmFtZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS9kZXZuYW1lLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZGV2bmFtZS5UcG8gJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZGV2bmFtZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9J2Rldm5hbWUuYycgb2JqZWN0PSd1bW91bnRfc3RhdGljLWRldm5hbWUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtZGV2bmFtZS5vYmogYGlmIHRlc3QgLWYgJ2Rldm5hbWUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICdkZXZuYW1lLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL2Rldm5hbWUuYyc7IGZpYAorCit1bW91bnRfc3RhdGljLXN1bmRyaWVzLm86IHN1bmRyaWVzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnRfc3RhdGljLXN1bmRyaWVzLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtc3VuZHJpZXMuVHBvIC1jIC1vIHVtb3VudF9zdGF0aWMtc3VuZHJpZXMubyBgdGVzdCAtZiAnc3VuZHJpZXMuYycgfHwgZWNobyAnJChzcmNkaXIpLydgc3VuZHJpZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1zdW5kcmllcy5UcG8gJChERVBESVIpL3Vtb3VudF9zdGF0aWMtc3VuZHJpZXMuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdzdW5kcmllcy5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtc3VuZHJpZXMubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyB1bW91bnRfc3RhdGljLXN1bmRyaWVzLm8gYHRlc3QgLWYgJ3N1bmRyaWVzLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHN1bmRyaWVzLmMKKwordW1vdW50X3N0YXRpYy1zdW5kcmllcy5vYmo6IHN1bmRyaWVzLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnRfc3RhdGljLXN1bmRyaWVzLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdW1vdW50X3N0YXRpYy1zdW5kcmllcy5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy1zdW5kcmllcy5vYmogYGlmIHRlc3QgLWYgJ3N1bmRyaWVzLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnc3VuZHJpZXMuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikvc3VuZHJpZXMuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1zdW5kcmllcy5UcG8gJChERVBESVIpL3Vtb3VudF9zdGF0aWMtc3VuZHJpZXMuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSdzdW5kcmllcy5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtc3VuZHJpZXMub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtc3VuZHJpZXMub2JqIGBpZiB0ZXN0IC1mICdzdW5kcmllcy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3N1bmRyaWVzLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3N1bmRyaWVzLmMnOyBmaWAKKwordW1vdW50X3N0YXRpYy14bWFsbG9jLm86IHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudF9zdGF0aWMteG1hbGxvYy5vIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnRfc3RhdGljLXhtYWxsb2MuVHBvIC1jIC1vIHVtb3VudF9zdGF0aWMteG1hbGxvYy5vIGB0ZXN0IC1mICd4bWFsbG9jLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHhtYWxsb2MuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy14bWFsbG9jLlRwbyAkKERFUERJUikvdW1vdW50X3N0YXRpYy14bWFsbG9jLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0neG1hbGxvYy5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMteG1hbGxvYy5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMteG1hbGxvYy5vIGB0ZXN0IC1mICd4bWFsbG9jLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYHhtYWxsb2MuYworCit1bW91bnRfc3RhdGljLXhtYWxsb2Mub2JqOiB4bWFsbG9jLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1NVCB1bW91bnRfc3RhdGljLXhtYWxsb2Mub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnRfc3RhdGljLXhtYWxsb2MuVHBvIC1jIC1vIHVtb3VudF9zdGF0aWMteG1hbGxvYy5vYmogYGlmIHRlc3QgLWYgJ3htYWxsb2MuYyc7IHRoZW4gJChDWUdQQVRIX1cpICd4bWFsbG9jLmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpL3htYWxsb2MuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy14bWFsbG9jLlRwbyAkKERFUERJUikvdW1vdW50X3N0YXRpYy14bWFsbG9jLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0neG1hbGxvYy5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMteG1hbGxvYy5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50X3N0YXRpYy14bWFsbG9jLm9iaiBgaWYgdGVzdCAtZiAneG1hbGxvYy5jJzsgdGhlbiAkKENZR1BBVEhfVykgJ3htYWxsb2MuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikveG1hbGxvYy5jJzsgZmlgCisKK3Vtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLm86IC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLlRwbyAtYyAtbyB1bW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5vIGB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1jYW5vbmljYWxpemUuVHBvICQoREVQRElSKS91bW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9jYW5vbmljYWxpemUuYycgb2JqZWN0PSd1bW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLm8gYHRlc3QgLWYgJy4uL2xpYi9jYW5vbmljYWxpemUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCisKK3Vtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLm9iajogLi4vbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy1jYW5vbmljYWxpemUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnRfc3RhdGljLWNhbm9uaWNhbGl6ZS5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy1jYW5vbmljYWxpemUub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvY2Fub25pY2FsaXplLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvY2Fub25pY2FsaXplLmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLlRwbyAkKERFUERJUikvdW1vdW50X3N0YXRpYy1jYW5vbmljYWxpemUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvY2Fub25pY2FsaXplLmMnIG9iamVjdD0ndW1vdW50X3N0YXRpYy1jYW5vbmljYWxpemUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtY2Fub25pY2FsaXplLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9jYW5vbmljYWxpemUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Nhbm9uaWNhbGl6ZS5jJzsgZmlgCisKK3Vtb3VudF9zdGF0aWMtZW52Lm86IC4uL2xpYi9lbnYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudF9zdGF0aWMtZW52Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZW52LlRwbyAtYyAtbyB1bW91bnRfc3RhdGljLWVudi5vIGB0ZXN0IC1mICcuLi9saWIvZW52LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9lbnYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1lbnYuVHBvICQoREVQRElSKS91bW91bnRfc3RhdGljLWVudi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9lbnYuYycgb2JqZWN0PSd1bW91bnRfc3RhdGljLWVudi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtZW52Lm8gYHRlc3QgLWYgJy4uL2xpYi9lbnYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Vudi5jCisKK3Vtb3VudF9zdGF0aWMtZW52Lm9iajogLi4vbGliL2Vudi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy1lbnYub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnRfc3RhdGljLWVudi5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy1lbnYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvZW52LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Vudi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZW52LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZW52LlRwbyAkKERFUERJUikvdW1vdW50X3N0YXRpYy1lbnYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvZW52LmMnIG9iamVjdD0ndW1vdW50X3N0YXRpYy1lbnYub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtZW52Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Vudi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9lbnYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Vudi5jJzsgZmlgCisKK3Vtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5vOiAuLi9saWIvbGludXhfdmVyc2lvbi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLm8gYHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5UcG8gJChERVBESVIpL3Vtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIG9iamVjdD0ndW1vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLm8gYHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9saW51eF92ZXJzaW9uLmMKKwordW1vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLm9iajogLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91bW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS91bW91bnRfc3RhdGljLWxpbnV4X3ZlcnNpb24uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvbGludXhfdmVyc2lvbi5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtbGludXhfdmVyc2lvbi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50X3N0YXRpYy1saW51eF92ZXJzaW9uLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZmlgCisKK3Vtb3VudF9zdGF0aWMtYmxrZGV2Lm86IC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudF9zdGF0aWMtYmxrZGV2Lm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtYmxrZGV2LlRwbyAtYyAtbyB1bW91bnRfc3RhdGljLWJsa2Rldi5vIGB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvdW1vdW50X3N0YXRpYy1ibGtkZXYuVHBvICQoREVQRElSKS91bW91bnRfc3RhdGljLWJsa2Rldi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9ibGtkZXYuYycgb2JqZWN0PSd1bW91bnRfc3RhdGljLWJsa2Rldi5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtYmxrZGV2Lm8gYHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Jsa2Rldi5jCisKK3Vtb3VudF9zdGF0aWMtYmxrZGV2Lm9iajogLi4vbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy1ibGtkZXYub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS91bW91bnRfc3RhdGljLWJsa2Rldi5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy1ibGtkZXYub2JqIGBpZiB0ZXN0IC1mICcuLi9saWIvYmxrZGV2LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2Jsa2Rldi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvYmxrZGV2LmMnOyBmaWAKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtYmxrZGV2LlRwbyAkKERFUERJUikvdW1vdW50X3N0YXRpYy1ibGtkZXYuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvYmxrZGV2LmMnIG9iamVjdD0ndW1vdW50X3N0YXRpYy1ibGtkZXYub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh1bW91bnRfc3RhdGljX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIHVtb3VudF9zdGF0aWMtYmxrZGV2Lm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJzsgdGhlbiAkKENZR1BBVEhfVykgJy4uL2xpYi9ibGtkZXYuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2Jsa2Rldi5jJzsgZmlgCisKK3Vtb3VudF9zdGF0aWMtZnNwcm9iZS5vOiAuLi9saWIvZnNwcm9iZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodW1vdW50X3N0YXRpY19DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdW1vdW50X3N0YXRpYy1mc3Byb2JlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZnNwcm9iZS5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy1mc3Byb2JlLm8gYHRlc3QgLWYgJy4uL2xpYi9mc3Byb2JlLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9mc3Byb2JlLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZnNwcm9iZS5UcG8gJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZnNwcm9iZS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9mc3Byb2JlLmMnIG9iamVjdD0ndW1vdW50X3N0YXRpYy1mc3Byb2JlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50X3N0YXRpYy1mc3Byb2JlLm8gYHRlc3QgLWYgJy4uL2xpYi9mc3Byb2JlLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9mc3Byb2JlLmMKKwordW1vdW50X3N0YXRpYy1mc3Byb2JlLm9iajogLi4vbGliL2ZzcHJvYmUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLU1UIHVtb3VudF9zdGF0aWMtZnNwcm9iZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Vtb3VudF9zdGF0aWMtZnNwcm9iZS5UcG8gLWMgLW8gdW1vdW50X3N0YXRpYy1mc3Byb2JlLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZnNwcm9iZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZnNwcm9iZS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS91bW91bnRfc3RhdGljLWZzcHJvYmUuVHBvICQoREVQRElSKS91bW91bnRfc3RhdGljLWZzcHJvYmUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvZnNwcm9iZS5jJyBvYmplY3Q9J3Vtb3VudF9zdGF0aWMtZnNwcm9iZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHVtb3VudF9zdGF0aWNfQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdW1vdW50X3N0YXRpYy1mc3Byb2JlLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2ZzcHJvYmUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvZnNwcm9iZS5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvZnNwcm9iZS5jJzsgZmlgCisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCitpbnN0YWxsLW1hbjU6ICQoZGlzdF9tYW5fTUFOUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKG1hbjVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW41ZGlyKSIKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW41ZGlyKSIgfHwgZXhpdCAwOyBcCisJeyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjVbYS16XSokJC9wJzsgXAorCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgXAorCWRvbmUgfCBcCisJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteNV1bMC05YS16XSokJCw1LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnIHwgXAorCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAorCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJGJhc2UiID0gIiQkaW5zdCI7IHRoZW4gbGlzdD0iJCRsaXN0ICQkZmlsZSI7IGVsc2UgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW41ZGlyKS8kJGluc3QnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjVkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuNWRpciknIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobWFuNWRpcikiIHx8IGV4aXQgJCQ/OyB9OyBcCisJZG9uZTsgfQorCit1bmluc3RhbGwtbWFuNToKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjVkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1geyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjVbYS16XSokJC9wJzsgXAorCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjVdWzAtOWEtel0qJCQsNSw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKwl0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW41ZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJICBjZCAiJChERVNURElSKSQobWFuNWRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KK2luc3RhbGwtbWFuODogJChkaXN0X21hbl9NQU5TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQobWFuOGRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjhkaXIpIgorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjhkaXIpIiB8fCBleGl0IDA7IFwKKwl7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHdoaWxlIHJlYWQgcDsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ247cywuKi8sLDtwO2g7cywuKlwuLCw7cyxeW144XVswLTlhLXpdKiQkLDgsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCcgfCBcCisJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCisJbGlzdD07IHdoaWxlIHJlYWQgZmlsZSBiYXNlIGluc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkYmFzZSIgPSAiJCRpbnN0IjsgdGhlbiBsaXN0PSIkJGxpc3QgJCRmaWxlIjsgZWxzZSBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjhkaXIpLyQkaW5zdCciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAiJCRmaWxlIiAiJChERVNURElSKSQobWFuOGRpcikvJCRpbnN0IiB8fCBleGl0ICQkPzsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChtYW44ZGlyKSciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChtYW44ZGlyKSIgfHwgZXhpdCAkJD87IH07IFwKKwlkb25lOyB9CisKK3VuaW5zdGFsbC1tYW44OgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuOGRpcikiIHx8IGV4aXQgMDsgXAorCWZpbGVzPWB7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteOF1bMC05YS16XSokJCw4LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnYDsgXAorCXRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjhkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwkgIGNkICIkKERFU1RESVIpJChtYW44ZGlyKSIgJiYgcm0gLWYgJCRmaWxlczsgfQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAbGlzdD0nJChNQU5TKSc7IGlmIHRlc3QgLW4gIiQkbGlzdCI7IHRoZW4gXAorCSAgbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgICBpZiB0ZXN0IC1mICIkJGQkJHAiOyB0aGVuIGVjaG8gIiQkZCQkcCI7IGVsc2UgOjsgZmk7IGRvbmVgOyBcCisJICBpZiB0ZXN0IC1uICIkJGxpc3QiICYmIFwKKwkgICAgZ3JlcCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVsbDsgdGhlbiBcCisJICAgIGVjaG8gImVycm9yOiBmb3VuZCBtYW4gcGFnZXMgY29udGFpbmluZyB0aGUgXGBtaXNzaW5nIGhlbHAybWFuJyByZXBsYWNlbWVudCB0ZXh0OiIgPiYyOyBcCisJICAgIGdyZXAgLWwgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0IHwgc2VkICdzL14vICAgICAgICAgLycgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0byBmaXggdGhlbSwgaW5zdGFsbCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBtYW4gcGFnZXM7IiA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHR5cGljYWxseSBcYG1ha2UgbWFpbnRhaW5lci1jbGVhbicgd2lsbCByZW1vdmUgdGhlbSIgPiYyOyBcCisJICAgIGV4aXQgMTsgXAorCSAgZWxzZSA6OyBmaTsgXAorCWVsc2UgOjsgZmkKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1hbQorYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKSAkKE1BTlMpICQoREFUQSkKK2luc3RhbGxkaXJzOgorCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChzYmluZGlyKSIgIiQoREVTVERJUikkKG1hbjVkaXIpIiAiJChERVNURElSKSQobWFuOGRpcikiOyBkbyBcCisJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisJZG9uZQoraW5zdGFsbDogaW5zdGFsbC1hbQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCit1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1hbQorCitjbGVhbi1hbTogY2xlYW4tYmluUFJPR1JBTVMgY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKwljbGVhbi1ub2luc3RQUk9HUkFNUyBjbGVhbi1zYmluUFJPR1JBTVMgbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbWFuCisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWJpblBST0dSQU1TIGluc3RhbGwtc2JpblBST0dSQU1TCisJQCQoTk9STUFMX0lOU1RBTEwpCisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWhvb2sKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisKK2luc3RhbGwtaHRtbC1hbToKKworaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjogaW5zdGFsbC1tYW41IGluc3RhbGwtbWFuOAorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1hbQorCitwZGYtYW06CisKK3BzOiBwcy1hbQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtYmluUFJPR1JBTVMgdW5pbnN0YWxsLW1hbiBcCisJdW5pbnN0YWxsLXNiaW5QUk9HUkFNUworCit1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuNSB1bmluc3RhbGwtbWFuOAorCisuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1zdHJpcAorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tYmluUFJPR1JBTVMgXAorCWNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCisJY2xlYW4tc2JpblBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBcCisJZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgXAorCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCisJaW5zdGFsbC1iaW5QUk9HUkFNUyBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZXhlYy1ob29rIFwKKwlpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gXAorCWluc3RhbGwtbWFuIGluc3RhbGwtbWFuNSBpbnN0YWxsLW1hbjggaW5zdGFsbC1wZGYgXAorCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXNiaW5QUk9HUkFNUyBcCisJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAorCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKKwl1bmluc3RhbGwtYmluUFJPR1JBTVMgdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuNSBcCisJdW5pbnN0YWxsLW1hbjggdW5pbnN0YWxsLXNiaW5QUk9HUkFNUworCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworJCh1bF9saWJ1dWlkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGlidXVpZF9idWlsZGRpcikKKworaW5zdGFsbC1leGVjLWhvb2s6CisJY2QgJChERVNURElSKSQoc2JpbmRpcikgJiYgbG4gLXNmIHN3YXBvbiBzd2Fwb2ZmCitATUFLRUlOU1RBTExfRE9fU0VUVUlEX1RSVUVACWNobW9kIDQ3NTUgJChERVNURElSKSQoYmluZGlyKS9tb3VudAorQE1BS0VJTlNUQUxMX0RPX1NFVFVJRF9UUlVFQAljaG1vZCA0NzU1ICQoREVTVERJUikkKGJpbmRpcikvdW1vdW50CisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L1JFQURNRS5tb3VudCBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L1JFQURNRS5tb3VudApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2YzMTdjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvUkVBRE1FLm1vdW50CkBAIC0wLDAgKzEsMTEgQEAKK21vdW50L3Vtb3VudCBmb3IgTGludXggMC45Ny4zIGFuZCBsYXRlci4KK0F1dGhvcnM6CitEb3VnIFF1YWxlIDxxdWFsZUBzYWF2aWsuY3Mud2lzYy5lZHU+LAorSC5KLiBMdSA8aGx1QGVlY3Mud3N1LmVkdT4sCitSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPiwKK1N0ZXBoZW4gVHdlZWRpZSA8c2N0QGRjcy5lZC5hYy51az4uCitBbmRyaWVzIEJyb3V3ZXIgPGFlYkBjd2kubmw+CitBZHJpYW4gQnVuayA8YnVua0BzdHVzdGEuZGU+CisKK1ByZXNlbnRseSBpbiB1dGlsLWxpbnV4LW5nIG1haW50YWluZWQgYnkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+LiAKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZGV2bmFtZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZGV2bmFtZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NWQyNTkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9kZXZuYW1lLmMKQEAgLTAsMCArMSwxNSBAQAorI2luY2x1ZGUgImZzcHJvYmUuaCIKKworI2luY2x1ZGUgImRldm5hbWUuaCIKKyNpbmNsdWRlICJzdW5kcmllcy5oIgkJLyogZm9yIHhzdHJkdXAgKi8KKworY29uc3QgY2hhciAqCitzcGVjX3RvX2Rldm5hbWUoY29uc3QgY2hhciAqc3BlYykKK3sKKwlpZiAoIXNwZWMpCisJCXJldHVybiBOVUxMOworCWlmIChpc19wc2V1ZG9fZnMoc3BlYykpCisJCXJldHVybiB4c3RyZHVwKHNwZWMpOworCXJldHVybiBmc3Byb2JlX2dldF9kZXZuYW1lX2J5X3NwZWMoc3BlYyk7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L2Rldm5hbWUuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L2Rldm5hbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmFkZWZmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZGV2bmFtZS5oCkBAIC0wLDAgKzEsNiBAQAorI2lmbmRlZiBNT1VOVF9ERVZOQU1FX0gKKyNkZWZpbmUgTU9VTlRfREVWTkFNRV9ICisKK2V4dGVybiBjb25zdCBjaGFyICpzcGVjX3RvX2Rldm5hbWUoY29uc3QgY2hhciAqc3BlYyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZnN0YWIuNSBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L2ZzdGFiLjUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM1Y2RjYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L2ZzdGFiLjUKQEAgLTAsMCArMSwyMTQgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5ODAsIDE5ODksIDE5OTEgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKy5cIiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLlwiCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLlwiIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorLlwiICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKy5cIglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisuXCIJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisuXCIgNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKy5cIiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKy5cIiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy5cIgorLlwiIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisuXCIgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisuXCIgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKy5cIiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKy5cIiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorLlwiIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisuXCIgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisuXCIgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKy5cIiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisuXCIgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorLlwiIFNVQ0ggREFNQUdFLgorLlwiCisuXCIgICAgIEAoIylmc3RhYi41CTYuNSAoQmVya2VsZXkpIDUvMTAvOTEKKy5cIgorLlwiIE1vZGlmaWVkIFNhdCBNYXIgIDYgMjA6NDU6MDMgMTk5MywgZmFpdGhAY3MudW5jLmVkdSwgZm9yIExpbnV4CisuXCIgU2F0IE9jdCAgOSAxMDowNzoxMCAxOTkzOiBjb252ZXJ0ZWQgdG8gbWFuIGZvcm1hdCBieSBmYWl0aEBjcy51bmMuZWR1CisuXCIgU2F0IE5vdiAyMCAyMDo0NzozOCAxOTkzOiBocGZzIGRvY3VtZW50YXRpb24gYWRkZWQKKy5cIiBTYXQgTm92IDI3IDIwOjIzOjMyIDE5OTM6IFVwZGF0ZWQgYXV0aG9yc2hpcCBpbmZvcm1hdGlvbgorLlwiIFdlZCBKdWwgMjYgMDA6MDA6MDAgMTk5NTogVXBkYXRlZCBzb21lIG5mcyBzdHVmZiwgam9leUBpbmZvZHJvbS5ub3J0aC5kZQorLlwiIFR1ZSBBcHIgIDIgMDA6Mzg6MjggMTk5NjogYWRkZWQgaW5mbyBhYm91dCAibm9hdXRvIiwgInVzZXIiLCBldGMuCisuXCIgVHVlIEp1biAxNSAyMDowMjoxOCAxOTk5OiBhZGRlZCBMQUJFTCBhbmQgVVVJRAorLlwiIFNhdCBKdWwgMTQgMjAwMTogTWljaGFlbCBLLiBKb2huc29uIDxqb2huc29ubUByZWRoYXQuY29tPiBhZGRlZCAtTworLlwiCisuVEggRlNUQUIgNSAiMTUgSnVuZSAxOTk5IiAiTGludXggMi4yIiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCBOQU1FCitmc3RhYiBcLSBzdGF0aWMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZpbGVzeXN0ZW1zCisuU0ggU1lOT1BTSVMKKy5CICNpbmNsdWRlIDxmc3RhYi5oPgorLlNIIERFU0NSSVBUSU9OCitUaGUgZmlsZQorLkIgZnN0YWIKK2NvbnRhaW5zIGRlc2NyaXB0aXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2YXJpb3VzIGZpbGUgc3lzdGVtcy4KKy5CIGZzdGFiCitpcyBvbmx5IHJlYWQgYnkgcHJvZ3JhbXMsIGFuZCBub3Qgd3JpdHRlbjsgaXQgaXMgdGhlIGR1dHkgb2YgdGhlIHN5c3RlbQorYWRtaW5pc3RyYXRvciB0byBwcm9wZXJseSBjcmVhdGUgYW5kIG1haW50YWluIHRoaXMgZmlsZS4gIEVhY2ggZmlsZXN5c3RlbQoraXMgZGVzY3JpYmVkIG9uIGEgc2VwYXJhdGUgbGluZTsgZmllbGRzIG9uIGVhY2ggbGluZSBhcmUgc2VwYXJhdGVkIGJ5IHRhYnMKK29yIHNwYWNlcy4gIExpbmVzIHN0YXJ0aW5nIHdpdGggJyMnIGFyZSBjb21tZW50cy4gIFRoZSBvcmRlciBvZiByZWNvcmRzIGluCisuQiBmc3RhYgoraXMgaW1wb3J0YW50IGJlY2F1c2UKKy5CUiBmc2NrICg4KSwKKy5CUiBtb3VudCAoOCksCithbmQKKy5CUiB1bW91bnQgKDgpCitzZXF1ZW50aWFsbHkgaXRlcmF0ZSB0aHJvdWdoCisuQiBmc3RhYgorZG9pbmcgdGhlaXIgdGhpbmcuCisKK1RoZSBmaXJzdCBmaWVsZCwKKy5SSSAoIGZzX3NwZWMgKSwKK2Rlc2NyaWJlcyB0aGUgYmxvY2sgc3BlY2lhbCBkZXZpY2Ugb3IKK3JlbW90ZSBmaWxlc3lzdGVtIHRvIGJlIG1vdW50ZWQuCisuTFAKK0ZvciBvcmRpbmFyeSBtb3VudHMgaXQgd2lsbCBob2xkIChhIGxpbmsgdG8pIGEgYmxvY2sgc3BlY2lhbAorZGV2aWNlIG5vZGUgKGFzIGNyZWF0ZWQgYnkKKy5CUiBta25vZCAoOCkpCitmb3IgdGhlIGRldmljZSB0byBiZSBtb3VudGVkLCBsaWtlIGAvZGV2L2Nkcm9tJyBvciBgL2Rldi9zZGI3Jy4KK0ZvciBORlMgbW91bnRzIG9uZSB3aWxsIGhhdmUgPGhvc3Q+OjxkaXI+LCBlLmcuLCBga251dGguYWViLm5sOi8nLgorRm9yIHByb2NmcywgdXNlIGBwcm9jJy4KKy5MUAorSW5zdGVhZCBvZiBnaXZpbmcgdGhlIGRldmljZSBleHBsaWNpdGx5LCBvbmUgbWF5IGluZGljYXRlCit0aGUgKGV4dDIgb3IgeGZzKSBmaWxlc3lzdGVtIHRoYXQgaXMgdG8gYmUgbW91bnRlZCBieSBpdHMgVVVJRCBvcgordm9sdW1lIGxhYmVsIChjZi4KKy5CUiBlMmxhYmVsICg4KQorb3IKKy5CUiB4ZnNfYWRtaW4gKDgpKSwKK3dyaXRpbmcgTEFCRUw9PGxhYmVsPiBvciBVVUlEPTx1dWlkPiwKK2UuZy4sIGBMQUJFTD1Cb290JyBvciBgVVVJRD0zZTZiZTlkZVwlLTgxMzlcJS0xMWQxXCUtOTEwNlwlLWE0M2YwOGQ4MjNhNicuCitUaGlzIHdpbGwgbWFrZSB0aGUgc3lzdGVtIG1vcmUgcm9idXN0OiBhZGRpbmcgb3IgcmVtb3ZpbmcgYSBTQ1NJIGRpc2sKK2NoYW5nZXMgdGhlIGRpc2sgZGV2aWNlIG5hbWUgYnV0IG5vdCB0aGUgZmlsZXN5c3RlbSB2b2x1bWUgbGFiZWwuCisKK1RoZSBzZWNvbmQgZmllbGQsCisuUkkgKCBmc19maWxlICksCitkZXNjcmliZXMgdGhlIG1vdW50IHBvaW50IGZvciB0aGUgZmlsZXN5c3RlbS4gIEZvciBzd2FwIHBhcnRpdGlvbnMsIHRoaXMKK2ZpZWxkIHNob3VsZCBiZSBzcGVjaWZpZWQgYXMgYG5vbmUnLiBJZiB0aGUgbmFtZSBvZiB0aGUgbW91bnQgcG9pbnQKK2NvbnRhaW5zIHNwYWNlcyB0aGVzZSBjYW4gYmUgZXNjYXBlZCBhcyBgXFwwNDAnLgorCitUaGUgdGhpcmQgZmllbGQsCisuUkkgKCBmc192ZnN0eXBlICksCitkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIGZpbGVzeXN0ZW0uICBMaW51eCBzdXBwb3J0cyBsb3RzCitvZiBmaWxlc3lzdGVtIHR5cGVzLCBzdWNoIGFzCisuSVIgYWRmcyAsCisuSVIgYWZmcyAsCisuSVIgYXV0b2ZzICwKKy5JUiBjb2RhICwKKy5JUiBjb2hlcmVudCAsCisuSVIgY3JhbWZzICwKKy5JUiBkZXZwdHMgLAorLklSIGVmcyAsCisuSVIgZXh0MiAsCisuSVIgZXh0MyAsCisuSVIgaGZzICwKKy5JUiBocGZzICwKKy5JUiBpc285NjYwICwKKy5JUiBqZnMgLAorLklSIG1pbml4ICwKKy5JUiBtc2RvcyAsCisuSVIgbmNwZnMgLAorLklSIG5mcyAsCisuSVIgbnRmcyAsCisuSVIgcHJvYyAsCisuSVIgcW54NCAsCisuSVIgcmVpc2VyZnMgLAorLklSIHJvbWZzICwKKy5JUiBzbWJmcyAsCisuSVIgc3lzdiAsCisuSVIgdG1wZnMgLAorLklSIHVkZiAsCisuSVIgdWZzICwKKy5JUiB1bXNkb3MgLAorLklSIHZmYXQgLAorLklSIHhlbml4ICwKKy5JUiB4ZnMgLAorYW5kIHBvc3NpYmx5IG90aGVycy4gRm9yIG1vcmUgZGV0YWlscywgc2VlCisuQlIgbW91bnQgKDgpLgorRm9yIHRoZSBmaWxlc3lzdGVtcyBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IHRoZSBydW5uaW5nIGtlcm5lbCwgc2VlCisuSVIgL3Byb2MvZmlsZXN5c3RlbXMgLgorQW4gZW50cnkKKy5JIHN3YXAKK2Rlbm90ZXMgYSBmaWxlIG9yIHBhcnRpdGlvbiB0byBiZSB1c2VkCitmb3Igc3dhcHBpbmcsIGNmLlwmCisuQlIgc3dhcG9uICg4KS4KK0FuIGVudHJ5CisuSSBpZ25vcmUKK2NhdXNlcyB0aGUgbGluZSB0byBiZSBpZ25vcmVkLiAgVGhpcyBpcyB1c2VmdWwKK3RvIHNob3cgZGlzayBwYXJ0aXRpb25zIHdoaWNoIGFyZSBjdXJyZW50bHkgdW51c2VkLgorQW4gZW50cnkKKy5JIG5vbmUKK2lzIHVzZWZ1bCBmb3IgYmluZCBvciBtb3ZlIG1vdW50cy4KKworVGhlIGZvdXJ0aCBmaWVsZCwKKy5SSSAoIGZzX21udG9wcyApLAorZGVzY3JpYmVzIHRoZSBtb3VudCBvcHRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZXN5c3RlbS4KKworSXQgaXMgZm9ybWF0dGVkIGFzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygb3B0aW9ucy4gIEl0IGNvbnRhaW5zIGF0IGxlYXN0Cit0aGUgdHlwZSBvZiBtb3VudCBwbHVzIGFueSBhZGRpdGlvbmFsIG9wdGlvbnMgYXBwcm9wcmlhdGUgdG8gdGhlIGZpbGVzeXN0ZW0KK3R5cGUuICBGb3IgZG9jdW1lbnRhdGlvbiBvbiB0aGUgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIG5vbi1uZnMgZmlsZSBzeXN0ZW1zLAorc2VlCisuQlIgbW91bnQgKDgpLgorRm9yIGRvY3VtZW50YXRpb24gb24gYWxsIG5mcy1zcGVjaWZpYyBvcHRpb25zIGhhdmUgYSBsb29rIGF0CisuQlIgbmZzICg1KS4KK0NvbW1vbiBmb3IgYWxsIHR5cGVzIG9mIGZpbGUgc3lzdGVtIGFyZSB0aGUgb3B0aW9ucyBgYG5vYXV0bycnCisoZG8gbm90IG1vdW50IHdoZW4gIm1vdW50IC1hIiBpcyBnaXZlbiwgZS5nLiwgYXQgYm9vdCB0aW1lKSwgYGB1c2VyJycKKyhhbGxvdyBhIHVzZXIgdG8gbW91bnQpLCBhbmQgYGBvd25lcicnCisoYWxsb3cgZGV2aWNlIG93bmVyIHRvIG1vdW50KSwgYW5kIGBgY29tbWVudCcnCisoZS5nLiwgZm9yIHVzZSBieSBmc3RhYi1tYWludGFpbmluZyBwcm9ncmFtcykuCitUaGUgYGBvd25lcicnIGFuZCBgYGNvbW1lbnQnJyBvcHRpb25zIGFyZSBMaW51eC1zcGVjaWZpYy4KK0ZvciBtb3JlIGRldGFpbHMsIHNlZQorLkJSIG1vdW50ICg4KS4KKworVGhlIGZpZnRoIGZpZWxkLAorLlJJICggZnNfZnJlcSApLAoraXMgdXNlZCBmb3IgdGhlc2UgZmlsZXN5c3RlbXMgYnkgdGhlCisuQlIgZHVtcCAoOCkKK2NvbW1hbmQgdG8gZGV0ZXJtaW5lIHdoaWNoIGZpbGVzeXN0ZW1zIG5lZWQgdG8gYmUgZHVtcGVkLiAgSWYgdGhlIGZpZnRoCitmaWVsZCBpcyBub3QgcHJlc2VudCwgYSB2YWx1ZSBvZiB6ZXJvIGlzIHJldHVybmVkIGFuZAorLkIgZHVtcAord2lsbCBhc3N1bWUgdGhhdCB0aGUgZmlsZXN5c3RlbSBkb2VzIG5vdCBuZWVkIHRvIGJlIGR1bXBlZC4KKworVGhlIHNpeHRoIGZpZWxkLAorLlJJICggZnNfcGFzc25vICksCitpcyB1c2VkIGJ5IHRoZQorLkJSIGZzY2sgKDgpCitwcm9ncmFtIHRvIGRldGVybWluZSB0aGUgb3JkZXIgaW4gd2hpY2ggZmlsZXN5c3RlbSBjaGVja3MgYXJlIGRvbmUgYXQKK3JlYm9vdCB0aW1lLiAgVGhlIHJvb3QgZmlsZXN5c3RlbSBzaG91bGQgYmUgc3BlY2lmaWVkIHdpdGggYQorLkkgZnNfcGFzc25vCitvZiAxLCBhbmQgb3RoZXIgZmlsZXN5c3RlbXMgc2hvdWxkIGhhdmUgYQorLkkgZnNfcGFzc25vCitvZiAyLiAgRmlsZXN5c3RlbXMgd2l0aGluIGEgZHJpdmUgd2lsbCBiZSBjaGVja2VkIHNlcXVlbnRpYWxseSwgYnV0CitmaWxlc3lzdGVtcyBvbiBkaWZmZXJlbnQgZHJpdmVzIHdpbGwgYmUgY2hlY2tlZCBhdCB0aGUgc2FtZSB0aW1lIHRvIHV0aWxpemUKK3BhcmFsbGVsaXNtIGF2YWlsYWJsZSBpbiB0aGUgaGFyZHdhcmUuICBJZiB0aGUgc2l4dGggZmllbGQgaXMgbm90IHByZXNlbnQKK29yIHplcm8sIGEgdmFsdWUgb2YgemVybyBpcyByZXR1cm5lZCBhbmQKKy5CIGZzY2sKK3dpbGwgYXNzdW1lIHRoYXQgdGhlIGZpbGVzeXN0ZW0gZG9lcyBub3QgbmVlZCB0byBiZSBjaGVja2VkLgorCitUaGUgcHJvcGVyIHdheSB0byByZWFkIHJlY29yZHMgZnJvbQorLkIgZnN0YWIKK2lzIHRvIHVzZSB0aGUgcm91dGluZXMKKy5CUiBnZXRtbnRlbnQgKDMpLgorLlNIIEZJTEVTCisuSSAvZXRjL2ZzdGFiCisuU0ggIlNFRSBBTFNPIgorLkJSIGdldG1udGVudCAoMyksCisuQlIgbW91bnQgKDgpLAorLkJSIHN3YXBvbiAoOCksCisuQlIgZnMgKDUpLAorLkJSIG5mcyAoNSkKKy5TSCBISVNUT1JZCitUaGUgYW5jZXN0b3Igb2YgdGhpcworLkIgZnN0YWIKK2ZpbGUgZm9ybWF0IGFwcGVhcmVkIGluIDQuMEJTRC4KKy5cIiBCdXQgd2l0aG91dCBjb21tZW50IGNvbnZlbnRpb24sIGFuZCBvcHRpb25zIGFuZCB2ZnNfdHlwZS4KKy5cIiBJbnN0ZWFkIHRoZXJlIHdhcyBhIHR5cGUgcncvcm8vcnEvc3cveHgsIHdoZXJlIHh4IGlzIHRoZSBwcmVzZW50ICdpZ25vcmUnLgorLlNIIEFWQUlMQUJJTElUWQorVGhpcyBtYW4gcGFnZSBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9mc3RhYi5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZnN0YWIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2Q2NGEyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZnN0YWIuYwpAQCAtMCwwICsxLDEwMTYgQEAKKy8qIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICogU3VuIE1hciAyMSAxOTk5IC0gQXJuYWxkbyBDYXJ2YWxobyBkZSBNZWxvIDxhY21lQGNvbmVjdGl2YS5jb20uYnI+CisgKiAtIGZpeGVkIHN0cmVycihlcnJubykgaW4gZ2V0dGV4dCBjYWxscworICovCisKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxtbnRlbnQuaD4KKyNpbmNsdWRlICJtb3VudF9tbnRlbnQuaCIKKyNpbmNsdWRlICJmc3RhYi5oIgorI2luY2x1ZGUgInN1bmRyaWVzLmgiCisjaW5jbHVkZSAieG1hbGxvYy5oIgorI2luY2x1ZGUgImZzcHJvYmUuaCIKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJubHMuaCIKKyNpbmNsdWRlICJ1c2xlZXAuaCIKKworI2RlZmluZSBzdHJlcShzLCB0KQkoc3RyY21wICgocyksICh0KSkgPT0gMCkKKworLyogSW5mb3JtYXRpb24gYWJvdXQgbXRhYi4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBpbnQgaGF2ZV9tdGFiX2luZm8gPSAwOworc3RhdGljIGludCB2YXJfbXRhYl9kb2VzX25vdF9leGlzdCA9IDA7CitzdGF0aWMgaW50IHZhcl9tdGFiX2lzX2Ffc3ltbGluayA9IDA7CisKK3N0YXRpYyB2b2lkCitnZXRfbXRhYl9pbmZvKHZvaWQpIHsKKwlpZiAoIWhhdmVfbXRhYl9pbmZvKSB7CisJCXN0cnVjdCBzdGF0IG10YWJfc3RhdDsKKworCQl2YXJfbXRhYl9kb2VzX25vdF9leGlzdCA9IDA7CisJCXZhcl9tdGFiX2lzX2Ffc3ltbGluayA9IDA7CisKKwkJaWYgKGxzdGF0KF9QQVRIX01PVU5URUQsICZtdGFiX3N0YXQpKQorCQkJdmFyX210YWJfZG9lc19ub3RfZXhpc3QgPSAxOworCQllbHNlIGlmIChTX0lTTE5LKG10YWJfc3RhdC5zdF9tb2RlKSkKKwkJCXZhcl9tdGFiX2lzX2Ffc3ltbGluayA9IDE7CisJCWhhdmVfbXRhYl9pbmZvID0gMTsKKwl9Cit9CisKK3ZvaWQKK3Jlc2V0X210YWJfaW5mbyh2b2lkKSB7CisgICAgICAgIGhhdmVfbXRhYl9pbmZvID0gMDsKK30KKworaW50CittdGFiX2RvZXNfbm90X2V4aXN0KHZvaWQpIHsKKwlnZXRfbXRhYl9pbmZvKCk7CisJcmV0dXJuIHZhcl9tdGFiX2RvZXNfbm90X2V4aXN0OworfQorCitpbnQKK210YWJfaXNfYV9zeW1saW5rKHZvaWQpIHsKKwlnZXRfbXRhYl9pbmZvKCk7CisJcmV0dXJuIHZhcl9tdGFiX2lzX2Ffc3ltbGluazsKK30KKworaW50CittdGFiX2lzX3dyaXRhYmxlKCkgeworCWludCBmZDsKKworCS8qIFNob3VsZCB3ZSB3cml0ZSB0byAvZXRjL210YWIgdXBvbiBhbiB1cGRhdGU/CisJICAgUHJvYmFibHkgbm90IGlmIGl0IGlzIGEgc3ltbGluayB0byAvcHJvYy9tb3VudHMsIHNpbmNlIHRoYXQKKwkgICB3b3VsZCBjcmVhdGUgYSBmaWxlIC9wcm9jL21vdW50cyBpbiBjYXNlIHRoZSBwcm9jIGZpbGVzeXN0ZW0KKwkgICBpcyBub3QgbW91bnRlZC4gKi8KKwlpZiAobXRhYl9pc19hX3N5bWxpbmsoKSkKKwkJcmV0dXJuIDA7CisKKwlmZCA9IG9wZW4oX1BBVEhfTU9VTlRFRCwgT19SRFdSIHwgT19DUkVBVCwgMDY0NCk7CisJaWYgKGZkID49IDApIHsKKwkJY2xvc2UoZmQpOworCQlyZXR1cm4gMTsKKwl9IGVsc2UKKwkJcmV0dXJuIDA7Cit9CisKKy8qIENvbnRlbnRzIG9mIG10YWIgYW5kIGZzdGFiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0cnVjdCBtbnRlbnRjaG4gbW91bnR0YWJsZSwgZnN0YWI7CitzdGF0aWMgaW50IGdvdF9tdGFiID0gMDsKK3N0YXRpYyBpbnQgZ290X2ZzdGFiID0gMDsKKworc3RhdGljIHZvaWQgcmVhZF9tb3VudHRhYmxlKHZvaWQpLCByZWFkX2ZzdGFiKHZvaWQpOworCitzdHJ1Y3QgbW50ZW50Y2huICoKK210YWJfaGVhZCgpIHsKKwlpZiAoIWdvdF9tdGFiKQorCQlyZWFkX21vdW50dGFibGUoKTsKKwlyZXR1cm4gJm1vdW50dGFibGU7Cit9CisKK3N0cnVjdCBtbnRlbnRjaG4gKgorZnN0YWJfaGVhZCgpIHsKKwlpZiAoIWdvdF9mc3RhYikKKwkJcmVhZF9mc3RhYigpOworCXJldHVybiAmZnN0YWI7Cit9CisKK3N0YXRpYyB2b2lkCitteV9mcmVlX21jKHN0cnVjdCBtbnRlbnRjaG4gKm1jKSB7CisJaWYgKG1jKSB7CisJCW15X2ZyZWUobWMtPm0ubW50X2ZzbmFtZSk7CisJCW15X2ZyZWUobWMtPm0ubW50X2Rpcik7CisJCW15X2ZyZWUobWMtPm0ubW50X3R5cGUpOworCQlteV9mcmVlKG1jLT5tLm1udF9vcHRzKTsKKwkJZnJlZShtYyk7CisJfQorfQorCisKK3N0YXRpYyB2b2lkCitkaXNjYXJkX21udGVudGNobihzdHJ1Y3QgbW50ZW50Y2huICptYzApIHsKKwlzdHJ1Y3QgbW50ZW50Y2huICptYywgKm1jMTsKKworCWZvciAobWMgPSBtYzAtPm54dDsgbWMgJiYgbWMgIT0gbWMwOyBtYyA9IG1jMSkgeworCQltYzEgPSBtYy0+bnh0OworCQlteV9mcmVlX21jKG1jKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCityZWFkX21udGVudGNobihtbnRGSUxFICptZnAsIGNvbnN0IGNoYXIgKmZuYW0sIHN0cnVjdCBtbnRlbnRjaG4gKm1jMCkgeworCXN0cnVjdCBtbnRlbnRjaG4gKm1jID0gbWMwOworCXN0cnVjdCBteV9tbnRlbnQgKm1udDsKKworCXdoaWxlICgobW50ID0gbXlfZ2V0bW50ZW50KG1mcCkpICE9IE5VTEwpIHsKKwkJaWYgKCFzdHJlcShtbnQtPm1udF90eXBlLCBNTlRUWVBFX0lHTk9SRSkpIHsKKwkJCW1jLT5ueHQgPSAoc3RydWN0IG1udGVudGNobiAqKSB4bWFsbG9jKHNpemVvZigqbWMpKTsKKwkJCW1jLT5ueHQtPnByZXYgPSBtYzsKKwkJCW1jID0gbWMtPm54dDsKKwkJCW1jLT5tID0gKm1udDsKKwkJCW1jLT5ueHQgPSBtYzA7CisJCX0KKwl9CisJbWMwLT5wcmV2ID0gbWM7CisJaWYgKGZlcnJvcihtZnAtPm1udGVudF9mcCkpIHsKKwkJaW50IGVycnN2ID0gZXJybm87CisJCWVycm9yKF8oIndhcm5pbmc6IGVycm9yIHJlYWRpbmcgJXM6ICVzIiksCisJCSAgICAgIGZuYW0sIHN0cmVycm9yIChlcnJzdikpOworCQltYzAtPm54dCA9IG1jMC0+cHJldiA9IE5VTEw7CisJfQorCW15X2VuZG1udGVudChtZnApOworfQorCisvKgorICogUmVhZCAvZXRjL210YWIuICBJZiB0aGF0IGZhaWxzLCB0cnkgL3Byb2MvbW91bnRzLgorICogVGhpcyBwcm9kdWNlcyBhIGxpbmtlZCBsaXN0LiBUaGUgbGlzdCBoZWFkIG1vdW50dGFibGUgaXMgYSBkdW1teS4KKyAqIFJldHVybiAwIG9uIHN1Y2Nlc3MuCisgKi8KK3N0YXRpYyB2b2lkCityZWFkX21vdW50dGFibGUoKSB7CisJbW50RklMRSAqbWZwOworCWNvbnN0IGNoYXIgKmZuYW07CisJc3RydWN0IG1udGVudGNobiAqbWMgPSAmbW91bnR0YWJsZTsKKworCWdvdF9tdGFiID0gMTsKKwltYy0+bnh0ID0gbWMtPnByZXYgPSBOVUxMOworCisJZm5hbSA9IF9QQVRIX01PVU5URUQ7CisJbWZwID0gbXlfc2V0bW50ZW50IChmbmFtLCAiciIpOworCWlmIChtZnAgPT0gTlVMTCB8fCBtZnAtPm1udGVudF9mcCA9PSBOVUxMKSB7CisJCWludCBlcnJzdiA9IGVycm5vOworCQlmbmFtID0gX1BBVEhfUFJPQ19NT1VOVFM7CisJCW1mcCA9IG15X3NldG1udGVudCAoZm5hbSwgInIiKTsKKwkJaWYgKG1mcCA9PSBOVUxMIHx8IG1mcC0+bW50ZW50X2ZwID09IE5VTEwpIHsKKwkJCWVycm9yKF8oIndhcm5pbmc6IGNhbid0IG9wZW4gJXM6ICVzIiksCisJCQkgICAgICBfUEFUSF9NT1VOVEVELCBzdHJlcnJvciAoZXJyc3YpKTsKKwkJCXJldHVybjsKKwkJfQorCQlpZiAodmVyYm9zZSkKKwkJCXByaW50ZiAoXygibW91bnQ6IGNvdWxkIG5vdCBvcGVuICVzIC0gIgorCQkJCSAgInVzaW5nICVzIGluc3RlYWRcbiIpLAorCQkJCV9QQVRIX01PVU5URUQsIF9QQVRIX1BST0NfTU9VTlRTKTsKKwl9CisJcmVhZF9tbnRlbnRjaG4obWZwLCBmbmFtLCBtYyk7Cit9CisKK3N0YXRpYyB2b2lkCityZWFkX2ZzdGFiKCkgeworCW1udEZJTEUgKm1mcCA9IE5VTEw7CisJY29uc3QgY2hhciAqZm5hbTsKKwlzdHJ1Y3QgbW50ZW50Y2huICptYyA9ICZmc3RhYjsKKworCWdvdF9mc3RhYiA9IDE7CisJbWMtPm54dCA9IG1jLT5wcmV2ID0gTlVMTDsKKworCWZuYW0gPSBfUEFUSF9NTlRUQUI7CisJbWZwID0gbXlfc2V0bW50ZW50IChmbmFtLCAiciIpOworCWlmIChtZnAgPT0gTlVMTCB8fCBtZnAtPm1udGVudF9mcCA9PSBOVUxMKSB7CisJCWludCBlcnJzdiA9IGVycm5vOworCQllcnJvcihfKCJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIpLAorCQkgICAgICBfUEFUSF9NTlRUQUIsIHN0cmVycm9yIChlcnJzdikpOworCQlyZXR1cm47CisJfQorCXJlYWRfbW50ZW50Y2huKG1mcCwgZm5hbSwgbWMpOworfQorCisKKy8qIEdpdmVuIHRoZSBuYW1lIE5BTUUsIHRyeSB0byBmaW5kIGl0IGluIG10YWIuICAqLworc3RydWN0IG1udGVudGNobiAqCitnZXRtbnRmaWxlIChjb25zdCBjaGFyICpuYW1lKSB7CisJc3RydWN0IG1udGVudGNobiAqbWMsICptYzA7CisKKwltYzAgPSBtdGFiX2hlYWQoKTsKKwlmb3IgKG1jID0gbWMwLT5ueHQ7IG1jICYmIG1jICE9IG1jMDsgbWMgPSBtYy0+bnh0KQorCQlpZiAoc3RyZXEobWMtPm0ubW50X2RpciwgbmFtZSkgfHwKKwkJICAgIHN0cmVxKG1jLT5tLm1udF9mc25hbWUsIG5hbWUpKQorCQkJcmV0dXJuIG1jOworCXJldHVybiBOVUxMOworfQorCisvKgorICogR2l2ZW4gdGhlIGRpcmVjdG9yeSBuYW1lIE5BTUUsIGFuZCB0aGUgcGxhY2UgTUNQUkVWIHdlIGZvdW5kIGl0IGxhc3QgdGltZSwKKyAqIHRyeSB0byBmaW5kIG1vcmUgb2NjdXJyZW5jZXMuCisgKi8KK3N0cnVjdCBtbnRlbnRjaG4gKgorZ2V0bW50ZGlyYmFja3dhcmQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBtbnRlbnRjaG4gKm1jcHJldikgeworCXN0cnVjdCBtbnRlbnRjaG4gKm1jLCAqbWMwOworCisJbWMwID0gbXRhYl9oZWFkKCk7CisJaWYgKCFtY3ByZXYpCisJCW1jcHJldiA9IG1jMDsKKwlmb3IgKG1jID0gbWNwcmV2LT5wcmV2OyBtYyAmJiBtYyAhPSBtYzA7IG1jID0gbWMtPnByZXYpCisJCWlmIChzdHJlcShtYy0+bS5tbnRfZGlyLCBuYW1lKSkKKwkJCXJldHVybiBtYzsKKwlyZXR1cm4gTlVMTDsKK30KKworLyoKKyAqIEdpdmVuIHRoZSBkZXZpY2UgbmFtZSBOQU1FLCBhbmQgdGhlIHBsYWNlIE1DUFJFViB3ZSBmb3VuZCBpdCBsYXN0IHRpbWUsCisgKiB0cnkgdG8gZmluZCBtb3JlIG9jY3VycmVuY2VzLgorICovCitzdHJ1Y3QgbW50ZW50Y2huICoKK2dldG1udGRldmJhY2t3YXJkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbW50ZW50Y2huICptY3ByZXYpIHsKKwlzdHJ1Y3QgbW50ZW50Y2huICptYywgKm1jMDsKKworCW1jMCA9IG10YWJfaGVhZCgpOworCWlmICghbWNwcmV2KQorCQltY3ByZXYgPSBtYzA7CisJZm9yIChtYyA9IG1jcHJldi0+cHJldjsgbWMgJiYgbWMgIT0gbWMwOyBtYyA9IG1jLT5wcmV2KQorCQlpZiAoc3RyZXEobWMtPm0ubW50X2ZzbmFtZSwgbmFtZSkpCisJCQlyZXR1cm4gbWM7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBHaXZlbiB0aGUgbmFtZSBOQU1FLCBjaGVjayB0aGF0IGl0IG9jY3VycyBwcmVjaXNlbHkgb25jZSBhcyBkaXIgb3IgZGV2LgorICovCitpbnQKK2lzX21vdW50ZWRfb25jZShjb25zdCBjaGFyICpuYW1lKSB7CisJc3RydWN0IG1udGVudGNobiAqbWMsICptYzA7CisJaW50IGN0ID0gMDsKKworCW1jMCA9IG10YWJfaGVhZCgpOworCWZvciAobWMgPSBtYzAtPnByZXY7IG1jICYmIG1jICE9IG1jMDsgbWMgPSBtYy0+cHJldikKKwkJaWYgKHN0cmVxKG1jLT5tLm1udF9kaXIsIG5hbWUpIHx8CisJCSAgICBzdHJlcShtYy0+bS5tbnRfZnNuYW1lLCBuYW1lKSkKKwkJCWN0Kys7CisJcmV0dXJuIChjdCA9PSAxKTsKK30KKworLyogR2l2ZW4gdGhlIG5hbWUgRklMRSwgdHJ5IHRvIGZpbmQgdGhlIG9wdGlvbiAibG9vcD1GSUxFIiBpbiBtdGFiLiAgKi8gCitzdHJ1Y3QgbW50ZW50Y2huICoKK2dldG1udG9wdGZpbGUgKGNvbnN0IGNoYXIgKmZpbGUpIHsKKwlzdHJ1Y3QgbW50ZW50Y2huICptYywgKm1jMDsKKwljb25zdCBjaGFyICpvcHRzLCAqczsKKwlpbnQgbDsKKworCWlmICghZmlsZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlsID0gc3RybGVuKGZpbGUpOworCisJbWMwID0gbXRhYl9oZWFkKCk7CisJZm9yIChtYyA9IG1jMC0+bnh0OyBtYyAmJiBtYyAhPSBtYzA7IG1jID0gbWMtPm54dCkKKwkJaWYgKChvcHRzID0gbWMtPm0ubW50X29wdHMpICE9IE5VTEwKKwkJICAgICYmIChzID0gc3Ryc3RyKG9wdHMsICJsb29wPSIpKQorCQkgICAgJiYgIXN0cm5jbXAocys1LCBmaWxlLCBsKQorCQkgICAgJiYgKHMgPT0gb3B0cyB8fCBzWy0xXSA9PSAnLCcpCisJCSAgICAmJiAoc1tsKzVdID09IDAgfHwgc1tsKzVdID09ICcsJykpCisJCQlyZXR1cm4gbWM7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qIGNvbXBhcmVzICJxdW90ZWQiIG9yICdxdW90ZWQnIHdpdGggdW5xdW90ZWQgKi8KK3N0YXRpYyBpbnQKK3N0cmVxX3F1b3RlZChjb25zdCBjaGFyICpxdW90ZWQsIGNvbnN0IGNoYXIgKnVucXVvdGVkKQoreworCWlmICgqcXVvdGVkID09ICciJyB8fCAqcXVvdGVkID09ICdcJycpCisJCXJldHVybiAhc3RybmNtcChxdW90ZWQgKyAxLCB1bnF1b3RlZCwgc3RybGVuKHF1b3RlZCkgLSAyKTsKKworCXJldHVybiBzdHJlcShxdW90ZWQsIHVucXVvdGVkKTsKK30KKworc3RhdGljIGludAoraGFzX2xhYmVsKGNvbnN0IGNoYXIgKmRldmljZSwgY29uc3QgY2hhciAqbGFiZWwpIHsKKwljb25zdCBjaGFyICpkZXZsYWJlbDsKKwlpbnQgcmV0OworCisJZGV2bGFiZWwgPSBmc3Byb2JlX2dldF9sYWJlbF9ieV9kZXZuYW1lKGRldmljZSk7CisJaWYgKCFkZXZsYWJlbCkKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSBzdHJlcV9xdW90ZWQobGFiZWwsIGRldmxhYmVsKTsKKwlteV9mcmVlKGRldmxhYmVsKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50CitoYXNfdXVpZChjb25zdCBjaGFyICpkZXZpY2UsIGNvbnN0IGNoYXIgKnV1aWQpeworCWNvbnN0IGNoYXIgKmRldnV1aWQ7CisJaW50IHJldDsKKworCWRldnV1aWQgPSBmc3Byb2JlX2dldF91dWlkX2J5X2Rldm5hbWUoZGV2aWNlKTsKKwlpZiAoIWRldnV1aWQpCisJCXJldHVybiAwOworCisJcmV0ID0gc3RyZXFfcXVvdGVkKHV1aWQsIGRldnV1aWQpOworCW15X2ZyZWUoZGV2dXVpZCk7CisJcmV0dXJuIHJldDsKK30KKworLyogRmluZCB0aGUgZW50cnkgKERFVixESVIpIGluIGZzdGFiIC0tIHNwZWMgYW5kIGRpciBtdXN0IGJlIGNhbm9uaWNhbGl6ZWQhICovCitzdHJ1Y3QgbW50ZW50Y2huICoKK2dldGZzX2J5X2RldmRpciAoY29uc3QgY2hhciAqZGV2LCBjb25zdCBjaGFyICpkaXIpIHsKKwlzdHJ1Y3QgbW50ZW50Y2huICptYywgKm1jMDsKKworCW1jMCA9IGZzdGFiX2hlYWQoKTsKKworCWZvciAobWMgPSBtYzAtPm54dDsgbWMgJiYgbWMgIT0gbWMwOyBtYyA9IG1jLT5ueHQpIHsKKwkJaW50IG9rID0gMTsKKworCQkvKiBkaXIgKi8KKwkJaWYgKCFzdHJlcShtYy0+bS5tbnRfZGlyLCBkaXIpKSB7CisJCQljaGFyICpkciA9IGNhbm9uaWNhbGl6ZShtYy0+bS5tbnRfZGlyKTsKKwkJCW9rID0gc3RyZXEoZHIsIGRpcik7CisJCQlteV9mcmVlKGRyKTsKKwkJfQorCisJCS8qIHNwZWMgKi8KKwkJaWYgKG9rICYmICFzdHJlcShtYy0+bS5tbnRfZnNuYW1lLCBkZXYpKSB7CisJCQljb25zdCBjaGFyICpmcyA9IG1jLT5tLm1udF9mc25hbWU7CisKKwkJCWlmIChzdHJuY21wIChmcywgIkxBQkVMPSIsIDYpID09IDApIHsKKwkJCQlvayA9IGhhc19sYWJlbChkZXYsIGZzICsgNik7CisJCQl9IGVsc2UgaWYgKHN0cm5jbXAgKGZzLCAiVVVJRD0iLCA1KSA9PSAwKSB7CisJCQkJb2sgPSBoYXNfdXVpZChkZXYsIGZzICsgNSk7CisJCQl9IGVsc2UgeworCQkJCWZzID0gY2Fub25pY2FsaXplX3NwZWMobWMtPm0ubW50X2ZzbmFtZSk7CisJCQkJb2sgPSBzdHJlcShmcywgZGV2KTsKKwkJCQlteV9mcmVlKGZzKTsKKwkJCX0KKwkJfQorCQlpZiAob2spCisJCQlyZXR1cm4gbWM7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKKy8qIEZpbmQgdGhlIGRpciBESVIgaW4gZnN0YWIuICAqLworc3RydWN0IG1udGVudGNobiAqCitnZXRmc19ieV9kaXIgKGNvbnN0IGNoYXIgKmRpcikgeworCXN0cnVjdCBtbnRlbnRjaG4gKm1jLCAqbWMwOworCWNoYXIgKmNkaXI7CisKKwltYzAgPSBmc3RhYl9oZWFkKCk7CisJZm9yIChtYyA9IG1jMC0+bnh0OyBtYyAmJiBtYyAhPSBtYzA7IG1jID0gbWMtPm54dCkKKwkJaWYgKHN0cmVxKG1jLT5tLm1udF9kaXIsIGRpcikpCisJCQlyZXR1cm4gbWM7CisKKwljZGlyID0gY2Fub25pY2FsaXplKGRpcik7CisJZm9yIChtYyA9IG1jMC0+bnh0OyBtYyAmJiBtYyAhPSBtYzA7IG1jID0gbWMtPm54dCkgeworCQlpZiAoc3RyZXEobWMtPm0ubW50X2RpciwgY2RpcikpIHsKKwkJCWZyZWUoY2Rpcik7CisJCQlyZXR1cm4gbWM7CisJCX0KKwl9CisJZnJlZShjZGlyKTsKKwlyZXR1cm4gTlVMTDsKK30KKworLyogRmluZCB0aGUgZGV2aWNlIFNQRUMgaW4gZnN0YWIuICAqLworc3RydWN0IG1udGVudGNobiAqCitnZXRmc19ieV9zcGVjIChjb25zdCBjaGFyICpzcGVjKSB7CisJY2hhciAqbmFtZSA9IE5VTEwsICp2YWx1ZSA9IE5VTEwsICpjc3BlYzsKKwlzdHJ1Y3QgbW50ZW50Y2huICptYyA9IE5VTEw7CisKKwlpZiAoIXNwZWMpCisJCXJldHVybiBOVUxMOworCisJaWYgKGZzcHJvYmVfcGFyc2Vfc3BlYyhzcGVjLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQorCQlyZXR1cm4gTlVMTDsJCQkJLyogcGFyc2UgZXJyb3IgKi8KKworCWlmIChuYW1lKSB7CisJCWlmICghc3RyY21wKG5hbWUsIkxBQkVMIikpCisJCQltYyA9IGdldGZzX2J5X2xhYmVsICh2YWx1ZSk7CisJCWVsc2UgaWYgKCFzdHJjbXAobmFtZSwiVVVJRCIpKQorCQkJbWMgPSBnZXRmc19ieV91dWlkICh2YWx1ZSk7CisKKwkJZnJlZShuYW1lKTsKKwkJZnJlZSh2YWx1ZSk7CisJCXJldHVybiBtYzsKKwl9CisKKwljc3BlYyA9IGNhbm9uaWNhbGl6ZV9zcGVjKHNwZWMpOworCW1jID0gZ2V0ZnNfYnlfZGV2bmFtZShjc3BlYyk7CisJZnJlZShjc3BlYyk7CisKKwlpZiAoIW1jKQorCQkvKiBub25jYW5vbmljYWwgbmFtZSAgbGlrZSAvZGV2L2Nkcm9tICovCisJCW1jID0gZ2V0ZnNfYnlfZGV2bmFtZShzcGVjKTsKKworCXJldHVybiBtYzsKK30KKworLyogRmluZCB0aGUgZGV2aWNlIGluIGZzdGFiLiAgKi8KK3N0cnVjdCBtbnRlbnRjaG4gKgorZ2V0ZnNfYnlfZGV2bmFtZSAoY29uc3QgY2hhciAqZGV2bmFtZSkgeworCXN0cnVjdCBtbnRlbnRjaG4gKm1jLCAqbWMwOworCisJbWMwID0gZnN0YWJfaGVhZCgpOworCisJLyogY2Fub25pY2FsIGRldm5hbWUgaW4gZnN0YWIgKi8KKwlmb3IgKG1jID0gbWMwLT5ueHQ7IG1jICYmIG1jICE9IG1jMDsgbWMgPSBtYy0+bnh0KQorCQlpZiAoc3RyZXEobWMtPm0ubW50X2ZzbmFtZSwgZGV2bmFtZSkpCisJCQlyZXR1cm4gbWM7CisKKwkvKiBub25jYW5vbmljYWwgZGV2bmFtZSBpbiBmc3RhYiAqLworCWZvciAobWMgPSBtYzAtPm54dDsgbWMgJiYgbWMgIT0gbWMwOyBtYyA9IG1jLT5ueHQpIHsKKwkJY2hhciAqZnM7CisKKwkJaWYgKHN0cm5jbXAobWMtPm0ubW50X2ZzbmFtZSwgIkxBQkVMPSIsIDYpID09IDAgfHwKKwkJCQlzdHJuY21wKG1jLT5tLm1udF9mc25hbWUsICJVVUlEPSIsIDUpID09IDApCisJCQljb250aW51ZTsKKworCQlmcyA9IGNhbm9uaWNhbGl6ZV9zcGVjKG1jLT5tLm1udF9mc25hbWUpOworCQlpZiAoc3RyZXEoZnMsIGRldm5hbWUpKSB7CisJCQlmcmVlKGZzKTsKKwkJCXJldHVybiBtYzsKKwkJfQorCQlmcmVlKGZzKTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworCisvKiBGaW5kIHRoZSB1dWlkIFVVSUQgaW4gZnN0YWIuICovCitzdHJ1Y3QgbW50ZW50Y2huICoKK2dldGZzX2J5X3V1aWQgKGNvbnN0IGNoYXIgKnV1aWQpIHsKKwlzdHJ1Y3QgbW50ZW50Y2huICptYywgKm1jMDsKKworCW1jMCA9IGZzdGFiX2hlYWQoKTsKKwlmb3IgKG1jID0gbWMwLT5ueHQ7IG1jICYmIG1jICE9IG1jMDsgbWMgPSBtYy0+bnh0KQorCQlpZiAoc3RybmNtcCAobWMtPm0ubW50X2ZzbmFtZSwgIlVVSUQ9IiwgNSkgPT0gMAorCQkgICAgJiYgc3RyZXFfcXVvdGVkKG1jLT5tLm1udF9mc25hbWUgKyA1LCB1dWlkKSkKKwkJCXJldHVybiBtYzsKKwlyZXR1cm4gTlVMTDsKK30KKworLyogRmluZCB0aGUgbGFiZWwgTEFCRUwgaW4gZnN0YWIuICovCitzdHJ1Y3QgbW50ZW50Y2huICoKK2dldGZzX2J5X2xhYmVsIChjb25zdCBjaGFyICpsYWJlbCkgeworCXN0cnVjdCBtbnRlbnRjaG4gKm1jLCAqbWMwOworCisJbWMwID0gZnN0YWJfaGVhZCgpOworCWZvciAobWMgPSBtYzAtPm54dDsgbWMgJiYgbWMgIT0gbWMwOyBtYyA9IG1jLT5ueHQpCisJCWlmIChzdHJuY21wIChtYy0+bS5tbnRfZnNuYW1lLCAiTEFCRUw9IiwgNikgPT0gMAorCQkgICAgJiYgc3RyZXFfcXVvdGVkKG1jLT5tLm1udF9mc25hbWUgKyA2LCBsYWJlbCkpCisJCQlyZXR1cm4gbWM7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qIFVwZGF0aW5nIG10YWIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEZsYWcgZm9yIGFscmVhZHkgZXhpc3RpbmcgbG9jayBmaWxlLiAqLworc3RhdGljIGludCB3ZV9jcmVhdGVkX2xvY2tmaWxlID0gMDsKK3N0YXRpYyBpbnQgbG9ja2ZpbGVfZmQgPSAtMTsKKworLyogRmxhZyB0byBpbmRpY2F0ZSB0aGF0IHNpZ25hbHMgaGF2ZSBiZWVuIHNldCB1cC4gKi8KK3N0YXRpYyBpbnQgc2lnbmFsc19oYXZlX2JlZW5fc2V0dXAgPSAwOworCisvKiBFbnN1cmUgdGhhdCB0aGUgbG9jayBpcyByZWxlYXNlZCBpZiB3ZSBhcmUgaW50ZXJydXB0ZWQuICAqLworZXh0ZXJuIGNoYXIgKnN0cnNpZ25hbChpbnQgc2lnKTsJLyogbm90IGFsd2F5cyBpbiA8c3RyaW5nLmg+ICovCisKK3N0YXRpYyB2b2lkCitoYW5kbGVyIChpbnQgc2lnKSB7CisgICAgIGRpZShFWF9VU0VSLCAiJXMiLCBzdHJzaWduYWwoc2lnKSk7Cit9CisKK3N0YXRpYyB2b2lkCitzZXRsa3dfdGltZW91dCAoaW50IHNpZykgeworICAgICAvKiBub3RoaW5nLCBmY250bCB3aWxsIGZhaWwgYW55d2F5ICovCit9CisKKy8qIFJlbW92ZSBsb2NrIGZpbGUuICAqLwordm9pZAordW5sb2NrX210YWIgKHZvaWQpIHsKKwlpZiAod2VfY3JlYXRlZF9sb2NrZmlsZSkgeworCQljbG9zZShsb2NrZmlsZV9mZCk7CisJCWxvY2tmaWxlX2ZkID0gLTE7CisJCXVubGluayAoX1BBVEhfTU9VTlRFRF9MT0NLKTsKKwkJd2VfY3JlYXRlZF9sb2NrZmlsZSA9IDA7CisJfQorfQorCisvKiBDcmVhdGUgdGhlIGxvY2sgZmlsZS4KKyAgIFRoZSBsb2NrIGZpbGUgd2lsbCBiZSByZW1vdmVkIGlmIHdlIGNhdGNoIGEgc2lnbmFsIG9yIHdoZW4gd2UgZXhpdC4gKi8KKy8qIFRoZSBvbGQgY29kZSBoZXJlIHVzZWQgZmxvY2sgb24gYSBsb2NrIGZpbGUgL2V0Yy9tdGFifiBhbmQgZGVsZXRlZAorICAgdGhpcyBsb2NrIGZpbGUgYWZ0ZXJ3YXJkcy4gSG93ZXZlciwgYXMgcmdvb2NoIHJlbWFya3MsIHRoYXQgaGFzIGEKKyAgIHJhY2U6IGEgc2Vjb25kIG1vdW50IG1heSBiZSB3YWl0aW5nIG9uIHRoZSBsb2NrIGFuZCBwcm9jZWVkIGFzCisgICBzb29uIGFzIHRoZSBsb2NrIGZpbGUgaXMgZGVsZXRlZCBieSB0aGUgZmlyc3QgbW91bnQsIGFuZCBpbW1lZGlhdGVseQorICAgYWZ0ZXJ3YXJkcyBhIHRoaXJkIG1vdW50IGNvbWVzLCBjcmVhdGVzIGEgbmV3IC9ldGMvbXRhYn4sIGFwcGxpZXMKKyAgIGZsb2NrIHRvIHRoYXQsIGFuZCBhbHNvIHByb2NlZWRzLCBzbyB0aGF0IHRoZSBzZWNvbmQgYW5kIHRoaXJkIG1vdW50CisgICBub3cgYm90aCBhcmUgc2NyaWJibGluZyBpbiAvZXRjL210YWIuCisgICBUaGUgbmV3IGNvZGUgdXNlcyBhIGxpbmsoKSBpbnN0ZWFkIG9mIGEgY3JlYXQoKSwgd2hlcmUgd2UgcHJvY2VlZAorICAgb25seSBpZiBpdCB3YXMgdXMgdGhhdCBjcmVhdGVkIHRoZSBsb2NrLCBhbmQgaGVuY2Ugd2UgYWx3YXlzIGhhdmUKKyAgIHRvIGRlbGV0ZSB0aGUgbG9jayBhZnRlcndhcmRzLiBOb3cgdGhlIHVzZSBvZiBmbG9jaygpIGlzIGluIHByaW5jaXBsZQorICAgc3VwZXJmbHVvdXMsIGJ1dCBhdm9pZHMgYW4gYXJiaXRyYXJ5IHNsZWVwKCkuICovCisKKy8qIFdoZXJlIGRvZXMgdGhlIGxpbmsgcG9pbnQgdG8/IE9idmlvdXMgY2hvaWNlcyBhcmUgbXRhYiBhbmQgbXRhYn5+LgorICAgSEpMdSBwb2ludHMgb3V0IHRoYXQgdGhlIGxhdHRlciBsZWFkcyB0byByYWNlcy4gUmlnaHQgbm93IHdlIHVzZQorICAgbXRhYn4uPHBpZD4gaW5zdGVhZC4gVXNlIDIwIGFzIHVwcGVyIGJvdW5kIGZvciB0aGUgbGVuZ3RoIG9mICVkLiAqLworI2RlZmluZSBNT1VOVExPQ0tfTElOS1RBUkdFVAkJX1BBVEhfTU9VTlRFRF9MT0NLICIlZCIKKyNkZWZpbmUgTU9VTlRMT0NLX0xJTktUQVJHRVRfTFRICShzaXplb2YoX1BBVEhfTU9VTlRFRF9MT0NLKSsyMCkKKworLyoKKyAqIFRoZSBvcmlnaW5hbCBtb3VudCBsb2NraW5nIGNvZGUgaGFzIHVzZWQgc2xlZXAoMSkgYmV0d2VlbiBhdHRlbXB0cyBhbmQKKyAqIG1heGltYWwgbnVtYmVyIG9mIGF0dGVtcHMgaGFzIGJlZW4gNS4KKyAqCisgKiBUaGVyZSB3YXMgdmVyeSBzbWFsbCBudW1iZXIgb2YgYXR0ZW1wdHMgYW5kIGV4dHJlbWVseSBsb25nIHdhaXRpbmcgKDFzKQorICogdGhhdCBpcyB1c2VsZXNzIG9uIG1hY2hpbmVzIHdpdGggbGFyZ2UgbnVtYmVyIG9mIGNvbmN1cnJldCBtb3VudCBwcm9jZXNzZXMuCisgKgorICogTm93IHdlIHdhaXQgZmV3IHRob3VzYW5kIG1pY3Jvc2Vjb25kcyBiZXR3ZWVuIGF0dGVtcHRzIGFuZCB3ZSBoYXZlIGdsb2JhbAorICogdGltZSBsaW1pdCAoMzBzKSByYXRoZXIgdGhhbiBsaW1pdCBmb3IgbnVtYmVyIG9mIGF0dGVtcHRzLiBUaGUgYWR2YW50YWdlCisgKiBpcyB0aGF0IHRoaXMgbWV0aG9kIGFsc28gY291bnRzIHRpbWUgd2hpY2ggd2Ugc3BlbmQgaW4gZmNudGwoRl9TRVRMS1cpIGFuZAorICogbnVtYmVyIG9mIGF0dGVtcHRzIGlzIG5vdCBzbyBtdWNoIHJlc3RyaWN0ZWQuCisgKgorICogLS0ga3pha0ByZWRoYXQuY29tIFsyMDA3LU1hci0yMDA3XQorICovCisKKy8qIG1heGltdW0gc2Vjb25kcyBiZXR3ZWVuIGZpcnN0IGFuZCBsYXN0IGF0dGVtcHQgKi8KKyNkZWZpbmUgTU9VTlRMT0NLX01BWFRJTUUJCTMwCisKKy8qIHNsZWVwIHRpbWUgKGluIG1pY3Jvc2Vjb25kcywgbWF4PTk5OTk5OSkgYmV0d2VlbiBhdHRlbXB0cyAqLworI2RlZmluZSBNT1VOVExPQ0tfV0FJVFRJTUUJCTUwMDAKKwordm9pZAorbG9ja19tdGFiICh2b2lkKSB7CisJaW50IGk7CisJc3RydWN0IHRpbWVzcGVjIHdhaXR0aW1lOworCXN0cnVjdCB0aW1ldmFsIG1heHRpbWU7CisJY2hhciBsaW5rdGFyZ2V0ZmlsZVtNT1VOVExPQ0tfTElOS1RBUkdFVF9MVEhdOworCisJaWYgKCFzaWduYWxzX2hhdmVfYmVlbl9zZXR1cCkgeworCQlpbnQgc2lnID0gMDsKKwkJc3RydWN0IHNpZ2FjdGlvbiBzYTsKKworCQlzYS5zYV9oYW5kbGVyID0gaGFuZGxlcjsKKwkJc2Euc2FfZmxhZ3MgPSAwOworCQlzaWdmaWxsc2V0ICgmc2Euc2FfbWFzayk7CisKKwkJd2hpbGUgKHNpZ2lzbWVtYmVyICgmc2Euc2FfbWFzaywgKytzaWcpICE9IC0xCisJCSAgICAgICAmJiBzaWcgIT0gU0lHQ0hMRCkgeworCQkJaWYgKHNpZyA9PSBTSUdBTFJNKQorCQkJCXNhLnNhX2hhbmRsZXIgPSBzZXRsa3dfdGltZW91dDsKKwkJCWVsc2UKKwkJCQlzYS5zYV9oYW5kbGVyID0gaGFuZGxlcjsKKwkJCXNpZ2FjdGlvbiAoc2lnLCAmc2EsIChzdHJ1Y3Qgc2lnYWN0aW9uICopIDApOworCQl9CisJCXNpZ25hbHNfaGF2ZV9iZWVuX3NldHVwID0gMTsKKwl9CisKKwlzcHJpbnRmKGxpbmt0YXJnZXRmaWxlLCBNT1VOVExPQ0tfTElOS1RBUkdFVCwgZ2V0cGlkICgpKTsKKworCWkgPSBvcGVuIChsaW5rdGFyZ2V0ZmlsZSwgT19XUk9OTFl8T19DUkVBVCwgU19JUlVTUnxTX0lXVVNSKTsKKwlpZiAoaSA8IDApIHsKKwkJaW50IGVycnN2ID0gZXJybm87CisJCS8qIGxpbmt0YXJnZXRmaWxlIGRvZXMgbm90IGV4aXN0IChhcyBhIGZpbGUpCisJCSAgIGFuZCB3ZSBjYW5ub3QgY3JlYXRlIGl0LiBSZWFkLW9ubHkgZmlsZXN5c3RlbT8KKwkJICAgVG9vIG1hbnkgZmlsZXMgb3BlbiBpbiB0aGUgc3lzdGVtPworCQkgICBGaWxlc3lzdGVtIGZ1bGw/ICovCisJCWRpZSAoRVhfRklMRUlPLCBfKCJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAiCisJCQkJCQkgICIodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIiksCisJCQkgbGlua3RhcmdldGZpbGUsIHN0cmVycm9yIChlcnJzdikpOworCX0KKwljbG9zZShpKTsKKworCWdldHRpbWVvZmRheSgmbWF4dGltZSwgTlVMTCk7CisJbWF4dGltZS50dl9zZWMgKz0gTU9VTlRMT0NLX01BWFRJTUU7CisKKwl3YWl0dGltZS50dl9zZWMgPSAwOworCXdhaXR0aW1lLnR2X25zZWMgPSAoMTAwMCAqIE1PVU5UTE9DS19XQUlUVElNRSk7CisKKwkvKiBSZXBlYXQgdW50aWwgaXQgd2FzIHVzIHdobyBtYWRlIHRoZSBsaW5rICovCisJd2hpbGUgKCF3ZV9jcmVhdGVkX2xvY2tmaWxlKSB7CisJCXN0cnVjdCB0aW1ldmFsIG5vdzsKKwkJc3RydWN0IGZsb2NrIGZsb2NrOworCQlpbnQgZXJyc3YsIGo7CisKKwkJaiA9IGxpbmsobGlua3RhcmdldGZpbGUsIF9QQVRIX01PVU5URURfTE9DSyk7CisJCWVycnN2ID0gZXJybm87CisKKwkJaWYgKGogPT0gMCkKKwkJCXdlX2NyZWF0ZWRfbG9ja2ZpbGUgPSAxOworCisJCWlmIChqIDwgMCAmJiBlcnJzdiAhPSBFRVhJU1QpIHsKKwkJCSh2b2lkKSB1bmxpbmsobGlua3RhcmdldGZpbGUpOworCQkJZGllIChFWF9GSUxFSU8sIF8oImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAiCisJCQkgICAgICIodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIiksCisJCQkgICAgIF9QQVRIX01PVU5URURfTE9DSywgc3RyZXJyb3IgKGVycnN2KSk7CisJCX0KKworCQlsb2NrZmlsZV9mZCA9IG9wZW4gKF9QQVRIX01PVU5URURfTE9DSywgT19XUk9OTFkpOworCisJCWlmIChsb2NrZmlsZV9mZCA8IDApIHsKKwkJCS8qIFN0cmFuZ2UuLi4gTWF5YmUgdGhlIGZpbGUgd2FzIGp1c3QgZGVsZXRlZD8gKi8KKwkJCWludCBlcnJzdiA9IGVycm5vOworCQkJZ2V0dGltZW9mZGF5KCZub3csIE5VTEwpOworCQkJaWYgKGVycm5vID09IEVOT0VOVCAmJiBub3cudHZfc2VjIDwgbWF4dGltZS50dl9zZWMpIHsKKwkJCQl3ZV9jcmVhdGVkX2xvY2tmaWxlID0gMDsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCSh2b2lkKSB1bmxpbmsobGlua3RhcmdldGZpbGUpOworCQkJZGllIChFWF9GSUxFSU8sIF8oImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAiCisJCQkgICAgICIodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIiksCisJCQkgICAgIF9QQVRIX01PVU5URURfTE9DSywgc3RyZXJyb3IgKGVycnN2KSk7CisJCX0KKworCQlmbG9jay5sX3R5cGUgPSBGX1dSTENLOworCQlmbG9jay5sX3doZW5jZSA9IFNFRUtfU0VUOworCQlmbG9jay5sX3N0YXJ0ID0gMDsKKwkJZmxvY2subF9sZW4gPSAwOworCisJCWlmIChqID09IDApIHsKKwkJCS8qIFdlIG1hZGUgdGhlIGxpbmsuIE5vdyBjbGFpbSB0aGUgbG9jay4gKi8KKwkJCWlmIChmY250bCAobG9ja2ZpbGVfZmQsIEZfU0VUTEssICZmbG9jaykgPT0gLTEpIHsKKwkJCQlpZiAodmVyYm9zZSkgeworCQkJCSAgICBpbnQgZXJyc3YgPSBlcnJubzsKKwkJCQkgICAgcHJpbnRmKF8oIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIiksCisJCQkJCSAgIF9QQVRIX01PVU5URURfTE9DSywgc3RyZXJyb3IgKGVycnN2KSk7CisJCQkJfQorCQkJCS8qIHByb2NlZWQsIHNpbmNlIGl0IHdhcyB1cyB3aG8gY3JlYXRlZCB0aGUgbG9ja2ZpbGUgYW55d2F5ICovCisJCQl9CisJCQkodm9pZCkgdW5saW5rKGxpbmt0YXJnZXRmaWxlKTsKKwkJfSBlbHNlIHsKKwkJCS8qIFNvbWVvbmUgZWxzZSBtYWRlIHRoZSBsaW5rLiBXYWl0LiAqLworCQkJZ2V0dGltZW9mZGF5KCZub3csIE5VTEwpOworCQkJaWYgKG5vdy50dl9zZWMgPCBtYXh0aW1lLnR2X3NlYykgeworCQkJCWFsYXJtKG1heHRpbWUudHZfc2VjIC0gbm93LnR2X3NlYyk7CisJCQkJaWYgKGZjbnRsIChsb2NrZmlsZV9mZCwgRl9TRVRMS1csICZmbG9jaykgPT0gLTEpIHsKKwkJCQkJaW50IGVycnN2ID0gZXJybm87CisJCQkJCSh2b2lkKSB1bmxpbmsobGlua3RhcmdldGZpbGUpOworCQkJCQlkaWUgKEVYX0ZJTEVJTywgXygiY2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzIiksCisJCQkJCSAgICAgX1BBVEhfTU9VTlRFRF9MT0NLLCAoZXJybm8gPT0gRUlOVFIpID8KKwkJCQkJICAgICBfKCJ0aW1lZCBvdXQiKSA6IHN0cmVycm9yIChlcnJzdikpOworCQkJCX0KKwkJCQlhbGFybSgwKTsKKworCQkJCW5hbm9zbGVlcCgmd2FpdHRpbWUsIE5VTEwpOworCQkJfSBlbHNlIHsKKwkJCQkodm9pZCkgdW5saW5rKGxpbmt0YXJnZXRmaWxlKTsKKwkJCQlkaWUgKEVYX0ZJTEVJTywgXygiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisJCQkJCQkgICJQZXJoYXBzIHRoZXJlIGlzIGEgc3RhbGUgbG9jayBmaWxlP1xuIiksCisJCQkJCSBfUEFUSF9NT1VOVEVEX0xPQ0spOworCQkJfQorCQkJY2xvc2UobG9ja2ZpbGVfZmQpOworCQl9CisJfQorfQorCitzdGF0aWMgY2hhciAqCitnZXRfb3B0aW9uKGNvbnN0IGNoYXIgKm9wdG5hbWUsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90ICpsZW4pCit7CisJY2hhciAqb3B0LCAqZW5kOworCXNpemVfdCBzejsKKworCWlmICghc3JjKQorCQlyZXR1cm4gTlVMTDsKKworCW9wdCA9IHN0cnN0cihzcmMsIG9wdG5hbWUpOworCWlmICghb3B0KQorCQlyZXR1cm4gTlVMTDsKKworCWVuZCA9IHN0cmNocihvcHQsICcsJyk7CisJc3ogPSBlbmQgPyBlbmQgLSBvcHQgOiBzdHJsZW4ob3B0KTsKKworCWlmIChsZW4pCisJCSpsZW4gPSBzejsKKworCWlmICgob3B0ID09IHNyYyB8fCAqKG9wdCAtIDEpID09ICcsJykgJiYKKwkgICAgKCoob3B0ICsgc3opID09ICdcMCcgfHwgKihvcHQgKyBzeikgPT0gJywnKSkKKwkJcmV0dXJuIG9wdDsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW50CitjcHlfb3B0aW9uKGNvbnN0IGNoYXIgKm9wdG5hbWUsIGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYykKK3sKKwljaGFyICpvcHQ7CisJc2l6ZV90IHN6OworCisJb3B0ID0gZ2V0X29wdGlvbihvcHRuYW1lLCBzcmMsICZzeik7CisJaWYgKCFvcHQpCisJCS8qIHRoZSBvcHRpb24gZG9lc24ndCBleGlzdCAqLworCQlyZXR1cm4gMDsKKworCWlmIChnZXRfb3B0aW9uKG9wdG5hbWUsIGRlc3QsIE5VTEwpKQorCQkvKiB0aGUgb3B0aW9ucyBpcyBhbHJlYWR5IGluIGRlc3QgKi8KKwkJcmV0dXJuIDA7CisKKwlpZiAoKmRlc3QpIHsKKwkJZGVzdCA9IGRlc3QgKyBzdHJsZW4oZGVzdCk7CisJCSpkZXN0KysgPSAnLCc7CQkvKiBzZXBhcmF0b3IgKi8KKwl9CisJbWVtY3B5KGRlc3QsIG9wdCwgc3opOwkvKiBjb3B5IG9wdGlvbiAqLworCSooZGVzdCArIHN6KSA9ICdcMCc7CS8qIHRlcm1pbmF0b3IgKi8KKworCXJldHVybiAxOworfQorCisvKiBHZW5lcmF0ZXMgKGFuZCBhbGxvY2F0ZXMpIG5ldyBvcHRpb25zIGZvciByZW1vdW50CisgKgorICogV2UgY2Fubm90IGJsaW5kbHkgcmVwbGFjZSB0aGUgb2xkIG9wdGlvbnMsIG90aGVyd2lzZSB3ZSB3aWxsIGxvc3Qgc29tZQorICogaW50ZXJuYWxseSBnZW5lcmF0ZWQgc3R1ZmYgKGUuZyBsb29wPSkuCisgKi8KK3N0YXRpYyBjaGFyICoKK21rX3JlbW91bnRfb3B0cyhjb25zdCBjaGFyICpvbGQsIGNvbnN0IGNoYXIgKmluc3RlYWQpCit7CisJY2hhciAqbmV3OworCXNpemVfdCBzejsKKworCWlmIChvbGQgPT0gTlVMTCAmJiBpbnN0ZWFkID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCWlmICghb2xkKQorCQlyZXR1cm4geHN0cmR1cChpbnN0ZWFkKTsKKworCS8qIG1heCBzaXplIG9mIG5ldyBvcHRpb25zIGlzOgorCSAqIG9sZCArIG5ldyArICdcMCcgKyBzZXBhcmF0b3IgKGZvciBlYWNoIGNvcGllZCBvcHRpb24pCisJICovCisJc3ogPSBzdHJsZW4ob2xkKSArIChpbnN0ZWFkID8gc3RybGVuKGluc3RlYWQpIDogMCkgKyAyOworCW5ldyA9IHhtYWxsb2Moc3opOworCWlmIChpbnN0ZWFkICYmICppbnN0ZWFkKQorCQlzdHJuY3B5KG5ldywgaW5zdGVhZCwgc3opOworCWVsc2UKKwkJKm5ldyA9ICdcMCc7CisKKwljcHlfb3B0aW9uKCJsb29wPSIsIG5ldywgb2xkKTsKKworCXJldHVybiBuZXc7Cit9CisKKy8qCisgKiBVcGRhdGUgdGhlIG10YWIuCisgKiAgVXNlZCBieSB1bW91bnQgd2l0aCBudWxsIElOU1RFQUQ6IHJlbW92ZSB0aGUgbGFzdCBESVIgZW50cnkuCisgKiAgVXNlZCBieSBtb3VudCB1cG9uIGEgcmVtb3VudDogdXBkYXRlIG9wdGlvbiBwYXJ0LAorICogICBhbmQgY29tcGxhaW4gaWYgYSB3cm9uZyBkZXZpY2Ugb3IgdHlwZSB3YXMgZ2l2ZW4uCisgKiAgIFtOb3RlIHRoYXQgb2Z0ZW4gYSByZW1vdW50IHdpbGwgYmUgYSBydyByZW1vdW50IG9mIC8KKyAqICAgIHdoZXJlIHRoZXJlIHdhcyBubyBlbnRyeSBiZWZvcmUsIGFuZCB3ZSdsbCBoYXZlIHRvIGJlbGlldmUKKyAqICAgIHRoZSB2YWx1ZXMgZ2l2ZW4gaW4gSU5TVEVBRC5dCisgKi8KKwordm9pZAordXBkYXRlX210YWIgKGNvbnN0IGNoYXIgKmRpciwgc3RydWN0IG15X21udGVudCAqaW5zdGVhZCkgeworCW1udEZJTEUgKm1mcCwgKm1mdG1wOworCWNvbnN0IGNoYXIgKmZuYW0gPSBfUEFUSF9NT1VOVEVEOworCXN0cnVjdCBtbnRlbnRjaG4gbXRhYmhlYWQ7CS8qIGR1bW15ICovCisJc3RydWN0IG1udGVudGNobiAqbWMsICptYzAsICphYnNlbnQgPSBOVUxMOworCXN0cnVjdCBzdGF0IHNidWY7CisJaW50IGZkOworCisJaWYgKG10YWJfZG9lc19ub3RfZXhpc3QoKSB8fCAhbXRhYl9pc193cml0YWJsZSgpKQorCQlyZXR1cm47CisKKwlsb2NrX210YWIoKTsKKworCS8qIGhhdmluZyBsb2NrZWQgbXRhYiwgcmVhZCBpdCBhZ2FpbiAqLworCW1jMCA9IG1jID0gJm10YWJoZWFkOworCW1jLT5ueHQgPSBtYy0+cHJldiA9IE5VTEw7CisKKwltZnAgPSBteV9zZXRtbnRlbnQoZm5hbSwgInIiKTsKKwlpZiAobWZwID09IE5VTEwgfHwgbWZwLT5tbnRlbnRfZnAgPT0gTlVMTCkgeworCQlpbnQgZXJyc3YgPSBlcnJubzsKKwkJZXJyb3IgKF8oImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIiksCisJCSAgICAgICBmbmFtLCBzdHJlcnJvciAoZXJyc3YpKTsKKwkJZ290byBsZWF2ZTsKKwl9CisKKwlyZWFkX21udGVudGNobihtZnAsIGZuYW0sIG1jKTsKKworCS8qIGZpbmQgbGFzdCBvY2N1cnJlbmNlIG9mIGRpciAqLworCWZvciAobWMgPSBtYzAtPnByZXY7IG1jICYmIG1jICE9IG1jMDsgbWMgPSBtYy0+cHJldikKKwkJaWYgKHN0cmVxKG1jLT5tLm1udF9kaXIsIGRpcikpCisJCQlicmVhazsKKwlpZiAobWMgJiYgbWMgIT0gbWMwKSB7CisJCWlmIChpbnN0ZWFkID09IE5VTEwpIHsKKwkJCS8qIEFuIHVtb3VudCAtIHJlbW92ZSBlbnRyeSAqLworCQkJaWYgKG1jICYmIG1jICE9IG1jMCkgeworCQkJCW1jLT5wcmV2LT5ueHQgPSBtYy0+bnh0OworCQkJCW1jLT5ueHQtPnByZXYgPSBtYy0+cHJldjsKKwkJCQlteV9mcmVlX21jKG1jKTsKKwkJCX0KKwkJfSBlbHNlIGlmICghc3RyY21wKG1jLT5tLm1udF9kaXIsIGluc3RlYWQtPm1udF9kaXIpKSB7CisJCQkvKiBBIHJlbW91bnQgKi8KKwkJCWNoYXIgKm9wdHMgPSBta19yZW1vdW50X29wdHMobWMtPm0ubW50X29wdHMsCisJCQkJCWluc3RlYWQtPm1udF9vcHRzKTsKKwkJCW15X2ZyZWUobWMtPm0ubW50X29wdHMpOworCQkJbWMtPm0ubW50X29wdHMgPSBvcHRzOworCQl9IGVsc2UgeworCQkJLyogQSBtb3ZlICovCisJCQlteV9mcmVlKG1jLT5tLm1udF9kaXIpOworCQkJbWMtPm0ubW50X2RpciA9IHhzdHJkdXAoaW5zdGVhZC0+bW50X2Rpcik7CisJCX0KKwl9IGVsc2UgaWYgKGluc3RlYWQpIHsKKwkJLyogbm90IGZvdW5kLCBhZGQgYSBuZXcgZW50cnkgKi8KKwkJYWJzZW50ID0geG1hbGxvYyhzaXplb2YoKmFic2VudCkpOworCQlhYnNlbnQtPm0ubW50X2ZzbmFtZSA9IHhzdHJkdXAoaW5zdGVhZC0+bW50X2ZzbmFtZSk7CisJCWFic2VudC0+bS5tbnRfZGlyID0geHN0cmR1cChpbnN0ZWFkLT5tbnRfZGlyKTsKKwkJYWJzZW50LT5tLm1udF90eXBlID0geHN0cmR1cChpbnN0ZWFkLT5tbnRfdHlwZSk7CisJCWFic2VudC0+bS5tbnRfb3B0cyA9IHhzdHJkdXAoaW5zdGVhZC0+bW50X29wdHMpOworCQlhYnNlbnQtPm0ubW50X2ZyZXEgPSBpbnN0ZWFkLT5tbnRfZnJlcTsKKwkJYWJzZW50LT5tLm1udF9wYXNzbm8gPSBpbnN0ZWFkLT5tbnRfcGFzc25vOworCQlhYnNlbnQtPm54dCA9IG1jMDsKKwkJaWYgKG1jMC0+cHJldiAhPSBOVUxMKSB7CisJCQlhYnNlbnQtPnByZXYgPSBtYzAtPnByZXY7CisJCQltYzAtPnByZXYtPm54dCA9IGFic2VudDsKKwkJfSBlbHNlIHsKKwkJCWFic2VudC0+cHJldiA9IG1jMDsKKwkJfQorCQltYzAtPnByZXYgPSBhYnNlbnQ7CisJCWlmIChtYzAtPm54dCA9PSBOVUxMKQorCQkJbWMwLT5ueHQgPSBhYnNlbnQ7CisJfQorCisJLyogd3JpdGUgY2hhaW4gdG8gbXRlbXAgKi8KKwltZnRtcCA9IG15X3NldG1udGVudCAoX1BBVEhfTU9VTlRFRF9UTVAsICJ3Iik7CisJaWYgKG1mdG1wID09IE5VTEwgfHwgbWZ0bXAtPm1udGVudF9mcCA9PSBOVUxMKSB7CisJCWludCBlcnJzdiA9IGVycm5vOworCQllcnJvciAoXygiY2Fubm90IG9wZW4gJXMgKCVzKSAtIG10YWIgbm90IHVwZGF0ZWQiKSwKKwkJICAgICAgIF9QQVRIX01PVU5URURfVE1QLCBzdHJlcnJvciAoZXJyc3YpKTsKKwkJZGlzY2FyZF9tbnRlbnRjaG4obWMwKTsKKwkJZ290byBsZWF2ZTsKKwl9CisKKwlmb3IgKG1jID0gbWMwLT5ueHQ7IG1jICYmIG1jICE9IG1jMDsgbWMgPSBtYy0+bnh0KSB7CisJCWlmIChteV9hZGRtbnRlbnQobWZ0bXAsICYobWMtPm0pKSA9PSAxKSB7CisJCQlpbnQgZXJyc3YgPSBlcnJubzsKKwkJCWRpZSAoRVhfRklMRUlPLCBfKCJlcnJvciB3cml0aW5nICVzOiAlcyIpLAorCQkJICAgICBfUEFUSF9NT1VOVEVEX1RNUCwgc3RyZXJyb3IgKGVycnN2KSk7CisJCX0KKwl9CisKKwlkaXNjYXJkX21udGVudGNobihtYzApOworCWZkID0gZmlsZW5vKG1mdG1wLT5tbnRlbnRfZnApOworCisJLyoKKwkgKiBJdCBzZWVtcyB0aGF0IGJldHRlciBpcyBpbmNvbXBsZXRlIGFuZCBicm9rZW4gL21udC9tdGFiIHRoYXQKKwkgKiAvbW50L210YWIgdGhhdCBpcyB3cml0ZWFibGUgZm9yIG5vbi1yb290IHVzZXJzLgorCSAqCisJICogV2UgYWx3YXlzIHNraXAgcmVuYW1lKCkgd2hlbiBjaG93bigpIGFuZCBjaG1vZCgpIGZhaWxlZC4KKwkgKiAtLSBremFrLCAxMS1PY3QtMjAwNworCSAqLworCisJaWYgKGZjaG1vZChmZCwgU19JUlVTUnxTX0lXVVNSfFNfSVJHUlB8U19JUk9USCkgPCAwKSB7CisJCWludCBlcnJzdiA9IGVycm5vOworCQlmcHJpbnRmKHN0ZGVyciwgXygiZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXNcbiIpLAorCQkJX1BBVEhfTU9VTlRFRF9UTVAsIHN0cmVycm9yIChlcnJzdikpOworCQlnb3RvIGxlYXZlOworCX0KKworCS8qCisJICogSWYgbW91bnQgaXMgc2V0dWlkIGFuZCBzb21lIG5vbi1yb290IHVzZXIgbW91bnRzIHN0aCwKKwkgKiB0aGVuIG10YWIudG1wIG1pZ2h0IGdldCB0aGUgZ3JvdXAgb2YgdGhpcyB1c2VyLiBDb3B5IHVpZC9naWQKKwkgKiBmcm9tIHRoZSBwcmVzZW50IG10YWIgYmVmb3JlIHJlbmFtaW5nLgorCSAqLworCWlmIChzdGF0KF9QQVRIX01PVU5URUQsICZzYnVmKSA9PSAwKSB7CisJCWlmIChmY2hvd24oZmQsIHNidWYuc3RfdWlkLCBzYnVmLnN0X2dpZCkgPCAwKSB7CisJCQlpbnQgZXJyc3YgPSBlcnJubzsKKwkJCWZwcmludGYgKHN0ZGVyciwgXygiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iKSwKKwkJCQlfUEFUSF9NT1VOVEVEX1RNUCwgc3RyZXJyb3IoZXJyc3YpKTsKKwkJCWdvdG8gbGVhdmU7CisJCX0KKwl9CisKKwlteV9lbmRtbnRlbnQgKG1mdG1wKTsKKworCS8qIHJlbmFtZSBtdGVtcCB0byBtdGFiICovCisJaWYgKHJlbmFtZSAoX1BBVEhfTU9VTlRFRF9UTVAsIF9QQVRIX01PVU5URUQpIDwgMCkgeworCQlpbnQgZXJyc3YgPSBlcnJubzsKKwkJZnByaW50ZihzdGRlcnIsIF8oImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIpLAorCQkJX1BBVEhfTU9VTlRFRF9UTVAsIF9QQVRIX01PVU5URUQsIHN0cmVycm9yKGVycnN2KSk7CisJfQorCisgbGVhdmU6CisJdW5sb2NrX210YWIoKTsKK30KKworCisjaWZkZWYgTUFJTl9URVNUX01UQUJMT0NLCisKKy8qCisgKiBUaGlzIGlzIG10YWIgbG9ja2luZyBjb2RlIHRlc3QgZm9yOgorICoKKyAqCS0gcGVyZm9ybWFuY2UgKGhvdyBtYW55IGNvbmN1cnJlbnQgcHJvY2Vzc2VzKQorICoKKyAqCS0gbG9jayByZWxpYWJpbGl0eSAoaXMgcG9zc2libGUgdG8gc2VlIGNvcnJ1cHRlZCBkYXRhICBpZiBtb3JlCisgKgkgICAgICAgICAgICAgICAgICAgIGNvbmN1cnJlbnQgcHJvY2Vzc2VzIG1vZGlmeSBhIHNhbWUgZmlsZSkKKyAqCisgKiAgVGhlIHRlc3QgaXMgdmVyeSBzaW1wbGUgLS0gaXQgcmVhZHMgYSBudW1iZXIgZnJvbSBsb2NrZWQgZmlsZSwgaW5jcmVtZW50cyB0aGUKKyAqICBudW1iZXIgYW5kIHdyaXRlcyB0aGUgbnVtYmVyIGJhY2sgdG8gdGhlIGZpbGUuCisgKi8KKy8qIGR1bW15ICovCitjaGFyICpmc3Byb2JlX2dldF9sYWJlbF9ieV9kZXZuYW1lKGNvbnN0IGNoYXIgKnNwZWMpIHsgcmV0dXJuIE5VTEw7IH0KK2NoYXIgKmZzcHJvYmVfZ2V0X3V1aWRfYnlfZGV2bmFtZShjb25zdCBjaGFyICpzcGVjKSB7IHJldHVybiBOVUxMOyB9CitpbnQgZnNwcm9iZV9wYXJzZV9zcGVjKGNvbnN0IGNoYXIgKnNwZWMsIGNoYXIgKipuYW1lLCBjaGFyICoqdmFsdWUpIHsgcmV0dXJuIDA7IH0KK3N0cnVjdCBteV9tbnRlbnQgKm15X2dldG1udGVudCAobW50RklMRSAqbWZwKSB7IHJldHVybiBOVUxMOyB9CittbnRGSUxFICpteV9zZXRtbnRlbnQgKGNvbnN0IGNoYXIgKmZpbGUsIGNoYXIgKm1vZGUpIHsgcmV0dXJuIE5VTEw7IH0KK3ZvaWQgbXlfZW5kbW50ZW50IChtbnRGSUxFICptZnApIHsgfQoraW50IG15X2FkZG1udGVudCAobW50RklMRSAqbWZwLCBzdHJ1Y3QgbXlfbW50ZW50ICptbnQpIHsgcmV0dXJuIDA7IH0KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwl0aW1lX3Qgc3luY3RpbWU7CisJY2hhciAqZmlsZW5hbWU7CisJaW50IG5sb29wcywgaWQsIGk7CisJcGlkX3QgcGlkID0gZ2V0cGlkKCk7CisJdW5zaWduZWQgaW50IHVzZWNzOworCXN0cnVjdCB0aW1ldmFsIHR2OworCXN0cnVjdCBzdGF0IHN0OworCWxvbmcgbGFzdCA9IDA7CisKKwlwcm9nbmFtZSA9IGFyZ3ZbMF07CisKKwlpZiAoYXJnYyA8IDMpCisJCWRpZShFWElUX0ZBSUxVUkUsCisJCQkidXNhZ2U6ICVzIDxpZD4gPHN5bmN0aW1lPiA8ZmlsZT4gPG5sb29wcz5cbiIsCisJCQlwcm9nbmFtZSk7CisKKwlpZCA9IGF0b2koYXJndlsxXSk7CisJc3luY3RpbWUgPSAodGltZV90KSBhdG9sKGFyZ3ZbMl0pOworCWZpbGVuYW1lID0gYXJndlszXTsKKwlubG9vcHMgPSBhdG9pKGFyZ3ZbNF0pOworCisJaWYgKHN0YXQoZmlsZW5hbWUsICZzdCkgPCAtMSkKKwkJZGllKEVYSVRfRkFJTFVSRSwgIiVzOiAlc1xuIiwgZmlsZW5hbWUsIHN0cmVycm9yKGVycm5vKSk7CisKKwlmcHJpbnRmKHN0ZGVyciwgIiUwNWQgKHBpZD0lMDVkKTogU1RBUlRcbiIsIGlkLCBwaWQpOworCisJZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CisJaWYgKHN5bmN0aW1lICYmIHN5bmN0aW1lIC0gdHYudHZfc2VjID4gMSkgeworCQl1c2VjcyA9ICgoc3luY3RpbWUgLSB0di50dl9zZWMpICogMTAwMDAwMFVMKSAtCisJCQkJCSgxMDAwMDAwVUwgLSB0di50dl91c2VjKTsKKwkJdXNsZWVwKHVzZWNzKTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbmxvb3BzOyBpKyspIHsKKwkJRklMRSAqZjsKKwkJbG9uZyBudW07CisJCWNoYXIgYnVmWzI1Nl07CisKKwkJbG9ja19tdGFiKCk7CisKKwkJaWYgKCEoZiA9IGZvcGVuKGZpbGVuYW1lLCAiciIpKSkgeworCQkJdW5sb2NrX210YWIoKTsKKwkJCWRpZShFWElUX0ZBSUxVUkUsICJFUlJPUjogJWQgKHBpZD0lZCwgbG9vcD0lZCk6ICIKKwkJCQkJIm9wZW4gZm9yIHJlYWQgZmFpbGVkXG4iLCBpZCwgcGlkLCBpKTsKKwkJfQorCQlpZiAoIWZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGYpKSB7CisJCQl1bmxvY2tfbXRhYigpOworCQkJZGllKEVYSVRfRkFJTFVSRSwgIkVSUk9SOiAlZCAocGlkPSVkLCBsb29wPSVkKTogIgorCQkJCQkicmVhZCBmYWlsZWRcbiIsIGlkLCBwaWQsIGkpOworCQl9CisJCWZjbG9zZShmKTsKKworCQludW0gPSBhdG9sKGJ1ZikgKyAxOworCisJCWlmICghKGYgPSBmb3BlbihmaWxlbmFtZSwgInciKSkpIHsKKwkJCXVubG9ja19tdGFiKCk7CisJCQlkaWUoRVhJVF9GQUlMVVJFLCAiRVJST1I6ICVkIChwaWQ9JWQsIGxvb3A9JWQpOiAiCisJCQkJCSJvcGVuIGZvciB3cml0ZSBmYWlsZWRcbiIsIGlkLCBwaWQsIGkpOworCQl9CisJCWZwcmludGYoZiwgIiVsZCIsIG51bSk7CisJCWZjbG9zZShmKTsKKworCQl1bmxvY2tfbXRhYigpOworCisJCWdldHRpbWVvZmRheSgmdHYsIE5VTEwpOworCisJCWZwcmludGYoc3RkZXJyLCAiJTAxMGxkLiUwNmxkICUwNGQgKHBpZD0lMDVkLCBsb29wPSUwNWQpOiAiCisJCQkJIm51bT0lMDlsZCBsYXN0PSUwOWxkXG4iLAorCQkJCXR2LnR2X3NlYywgdHYudHZfdXNlYywgaWQsCisJCQkJcGlkLCBpLCBudW0sIGxhc3QpOworCQlsYXN0ID0gbnVtOworCisJCS8qIFRoZSBtb3VudCBjb21tYW5kIHVzdWFsbHkgZmluaXNoIGFmdGVyIG10YWIgdXBkYXRlLiBXZQorCQkgKiBzaW11bGF0ZSB0aGlzIHZpYSBzaG9ydCBzbGVlcCAtLSBpdCdzIGFsc28gZW5vdWdoIHRvIG1ha2UKKwkJICogY29uY3VycmVudCBwcm9jZXNzZXMgaGFwcHkuCisJCSAqLworCQl1c2xlZXAoNTAwMDApOworCX0KKworCWZwcmludGYoc3RkZXJyLCAiJTA1ZCAocGlkPSUwNWQpOiBET05FXG4iLCBpZCwgcGlkKTsKKworCWV4aXQoRVhJVF9TVUNDRVNTKTsKK30KKyNlbmRpZgorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9mc3RhYi5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZnN0YWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGY3YmFiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZnN0YWIuaApAQCAtMCwwICsxLDM0IEBACisjaWZuZGVmIE1PVU5UX0ZTVEFCX0gKKyNkZWZpbmUgTU9VTlRfRlNUQUJfSAorCisjaW5jbHVkZSAibW91bnRfbW50ZW50LmgiCitpbnQgbXRhYl9pc193cml0YWJsZSh2b2lkKTsKK2ludCBtdGFiX2lzX2Ffc3ltbGluayh2b2lkKTsKK2ludCBtdGFiX2RvZXNfbm90X2V4aXN0KHZvaWQpOwordm9pZCByZXNldF9tdGFiX2luZm8odm9pZCk7CitpbnQgaXNfbW91bnRlZF9vbmNlKGNvbnN0IGNoYXIgKm5hbWUpOworCitzdHJ1Y3QgbW50ZW50Y2huIHsKKwlzdHJ1Y3QgbW50ZW50Y2huICpueHQsICpwcmV2OworCXN0cnVjdCBteV9tbnRlbnQgbTsKK307CisKK3N0cnVjdCBtbnRlbnRjaG4gKm10YWJfaGVhZCAodm9pZCk7CitzdHJ1Y3QgbW50ZW50Y2huICpnZXRtbnRmaWxlIChjb25zdCBjaGFyICpuYW1lKTsKK3N0cnVjdCBtbnRlbnRjaG4gKmdldG1udG9wdGZpbGUgKGNvbnN0IGNoYXIgKmZpbGUpOworc3RydWN0IG1udGVudGNobiAqZ2V0bW50ZGlyYmFja3dhcmQgKGNvbnN0IGNoYXIgKmRpciwgc3RydWN0IG1udGVudGNobiAqbWMpOworc3RydWN0IG1udGVudGNobiAqZ2V0bW50ZGV2YmFja3dhcmQgKGNvbnN0IGNoYXIgKmRldiwgc3RydWN0IG1udGVudGNobiAqbWMpOworCitzdHJ1Y3QgbW50ZW50Y2huICpmc3RhYl9oZWFkICh2b2lkKTsKK3N0cnVjdCBtbnRlbnRjaG4gKmdldGZzX2J5X2RpciAoY29uc3QgY2hhciAqZGlyKTsKK3N0cnVjdCBtbnRlbnRjaG4gKmdldGZzX2J5X3NwZWMgKGNvbnN0IGNoYXIgKnNwZWMpOworc3RydWN0IG1udGVudGNobiAqZ2V0ZnNfYnlfZGV2bmFtZSAoY29uc3QgY2hhciAqZGV2bmFtZSk7CitzdHJ1Y3QgbW50ZW50Y2huICpnZXRmc19ieV9kZXZkaXIgKGNvbnN0IGNoYXIgKmRldiwgY29uc3QgY2hhciAqZGlyKTsKK3N0cnVjdCBtbnRlbnRjaG4gKmdldGZzX2J5X3V1aWQgKGNvbnN0IGNoYXIgKnV1aWQpOworc3RydWN0IG1udGVudGNobiAqZ2V0ZnNfYnlfbGFiZWwgKGNvbnN0IGNoYXIgKmxhYmVsKTsKKwordm9pZCBsb2NrX210YWIgKHZvaWQpOwordm9pZCB1bmxvY2tfbXRhYiAodm9pZCk7Cit2b2lkIHVwZGF0ZV9tdGFiIChjb25zdCBjaGFyICpzcGVjaWFsLCBzdHJ1Y3QgbXlfbW50ZW50ICp3aXRoKTsKKworI2VuZGlmIC8qIE1PVU5UX0ZTVEFCX0ggKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L2dldHVzZXJuYW1lLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9nZXR1c2VybmFtZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4MzU3NjgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9nZXR1c2VybmFtZS5jCkBAIC0wLDAgKzEsMTQgQEAKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxwd2QuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlICJnZXR1c2VybmFtZS5oIgorCitjaGFyICoKK2dldHVzZXJuYW1lKCkgeworCWNoYXIgKnVzZXIgPSAwOworCXN0cnVjdCBwYXNzd2QgKnB3ID0gZ2V0cHd1aWQoZ2V0dWlkKCkpOworCisJaWYgKHB3KQorCQl1c2VyID0gcHctPnB3X25hbWU7CisJcmV0dXJuIHVzZXI7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9nZXR1c2VybmFtZS5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZ2V0dXNlcm5hbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDhhYzliCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvZ2V0dXNlcm5hbWUuaApAQCAtMCwwICsxIEBACitleHRlcm4gY2hhciAqZ2V0dXNlcm5hbWUodm9pZCk7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9sb21vdW50LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9sb21vdW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc3MTJjNgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L2xvbW91bnQuYwpAQCAtMCwwICsxLDEwOTMgQEAKKy8qIE9yaWdpbmFsbHkgZnJvbSBUZWQncyBsb3NldHVwLmMgKi8KKy8qCisgKiBsb3NldHVwLmMgLSBzZXR1cCBhbmQgY29udHJvbCBsb29wIGRldmljZXMKKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPHN5cy9zeXNtYWNyb3MuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPGRpcmVudC5oPgorCisjaW5jbHVkZSAibG9vcC5oIgorI2luY2x1ZGUgImxvbW91bnQuaCIKKyNpbmNsdWRlICJ4c3RybmNweS5oIgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgInN1bmRyaWVzLmgiCisjaW5jbHVkZSAieG1hbGxvYy5oIgorI2luY2x1ZGUgInBhdGhuYW1lcy5oIgorCisjaWZkZWYgTE9PUF9TRVRfRkQKKworc3RhdGljIGludCBpc19hc3NvY2lhdGVkKGludCBkZXYsIHN0cnVjdCBzdGF0ICpmaWxlLCB1bnNpZ25lZCBsb25nIGxvbmcgb2Zmc2V0LCBpbnQgaXNvZmYpOworCitzdGF0aWMgaW50Citsb29wX2luZm82NF90b19vbGQoY29uc3Qgc3RydWN0IGxvb3BfaW5mbzY0ICppbmZvNjQsIHN0cnVjdCBsb29wX2luZm8gKmluZm8pCit7CisgICAgICAgIG1lbXNldChpbmZvLCAwLCBzaXplb2YoKmluZm8pKTsKKyAgICAgICAgaW5mby0+bG9fbnVtYmVyID0gaW5mbzY0LT5sb19udW1iZXI7CisgICAgICAgIGluZm8tPmxvX2RldmljZSA9IGluZm82NC0+bG9fZGV2aWNlOworICAgICAgICBpbmZvLT5sb19pbm9kZSA9IGluZm82NC0+bG9faW5vZGU7CisgICAgICAgIGluZm8tPmxvX3JkZXZpY2UgPSBpbmZvNjQtPmxvX3JkZXZpY2U7CisgICAgICAgIGluZm8tPmxvX29mZnNldCA9IGluZm82NC0+bG9fb2Zmc2V0OworICAgICAgICBpbmZvLT5sb19lbmNyeXB0X3R5cGUgPSBpbmZvNjQtPmxvX2VuY3J5cHRfdHlwZTsKKyAgICAgICAgaW5mby0+bG9fZW5jcnlwdF9rZXlfc2l6ZSA9IGluZm82NC0+bG9fZW5jcnlwdF9rZXlfc2l6ZTsKKyAgICAgICAgaW5mby0+bG9fZmxhZ3MgPSBpbmZvNjQtPmxvX2ZsYWdzOworICAgICAgICBpbmZvLT5sb19pbml0WzBdID0gaW5mbzY0LT5sb19pbml0WzBdOworICAgICAgICBpbmZvLT5sb19pbml0WzFdID0gaW5mbzY0LT5sb19pbml0WzFdOworICAgICAgICBpZiAoaW5mby0+bG9fZW5jcnlwdF90eXBlID09IExPX0NSWVBUX0NSWVBUT0FQSSkKKyAgICAgICAgICAgICAgICBtZW1jcHkoaW5mby0+bG9fbmFtZSwgaW5mbzY0LT5sb19jcnlwdF9uYW1lLCBMT19OQU1FX1NJWkUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbWVtY3B5KGluZm8tPmxvX25hbWUsIGluZm82NC0+bG9fZmlsZV9uYW1lLCBMT19OQU1FX1NJWkUpOworICAgICAgICBtZW1jcHkoaW5mby0+bG9fZW5jcnlwdF9rZXksIGluZm82NC0+bG9fZW5jcnlwdF9rZXksIExPX0tFWV9TSVpFKTsKKworICAgICAgICAvKiBlcnJvciBpbiBjYXNlIHZhbHVlcyB3ZXJlIHRydW5jYXRlZCAqLworICAgICAgICBpZiAoaW5mby0+bG9fZGV2aWNlICE9IGluZm82NC0+bG9fZGV2aWNlIHx8CisgICAgICAgICAgICBpbmZvLT5sb19yZGV2aWNlICE9IGluZm82NC0+bG9fcmRldmljZSB8fAorICAgICAgICAgICAgaW5mby0+bG9faW5vZGUgIT0gaW5mbzY0LT5sb19pbm9kZSB8fAorICAgICAgICAgICAgaW5mby0+bG9fb2Zmc2V0ICE9IGluZm82NC0+bG9fb2Zmc2V0KQorICAgICAgICAgICAgICAgIHJldHVybiAtRU9WRVJGTE9XOworCisgICAgICAgIHJldHVybiAwOworfQorCisjZGVmaW5lIExPT1BNQUpPUgkJNworI2RlZmluZSBOTE9PUFNfREVGQVVMVAkJOAkvKiAvZGV2L2xvb3BbMC03XSAqLworCitzdHJ1Y3QgbG9vcGxpc3QgeworCWludAkJZmxhZzsJCS8qIHNjYW5uaW5nIG9wdGlvbnMgKi8KKwlGSUxFCQkqcHJvYzsJCS8qIC9wcm9jL3BhcnRpdGlvbnMgKi8KKwlpbnQJCW5jdXI7CQkvKiBjdXJyZW50IHBvc3NpdGlvbiAqLworCWludAkJKm1pbm9yczsJLyogYXJ5IG9mIG1pbm9yIG51bWJlcnMgKHdoZW4gc2NhbiB3aG9sZSAvZGV2KSAqLworCWludAkJbm1pbm9yczsJLyogbnVtYmVyIG9mIGl0ZW1zIGluICptaW5vcnMgKi8KKwljaGFyCQluYW1lWzEyOF07CS8qIGRldmljZSBuYW1lICovCisJaW50CQljdF9wZXJtOwkvKiBjb3VudCBwZXJtaXNzaW9uIHByb2JsZW1zICovCisJaW50CQljdF9zdWNjOwkvKiBjb3VudCBudW1iZXIgb2Ygc3VjY2Vzc2Z1bGx5CisJCQkJCSAgIGRldGVjdGVkIGRldmljZXMgKi8KK307CisKKyNkZWZpbmUgTExGTEdfVVNFRE9OTFkJKDEgPDwgMSkJLyogcmV0dXJuIHVzZWQgZGV2aWNlcyBvbmx5ICovCisjZGVmaW5lIExMRkxHX0ZSRUVPTkxZCSgxIDw8IDIpCS8qIHJldHVybiBub24tdXNlZCBkZXZpY2VzICovCisjZGVmaW5lIExMRkxHX0RPTkUJKDEgPDwgMykJLyogYWxsIGlzIGRvbmUgKi8KKyNkZWZpbmUgTExGTEdfUFJPQ0ZTCSgxIDw8IDQpCS8qIHRyeSB0byBmb3VuZCB1c2VkIGRldmljZXMgaW4gL3Byb2MvcGFydGl0aW9ucyAqLworI2RlZmluZSBMTEZMR19TVUJESVIJKDEgPDwgNSkJLyogL2Rldi9sb29wL04gKi8KKyNkZWZpbmUgTExGTEdfREZMVAkoMSA8PCA2KQkvKiBkaXJlY3RseSB0cnkgdG8gY2hlY2sgZGVmYXVsdCBsb29wcyAqLworCitpbnQKK2lzX2xvb3BfZGV2aWNlIChjb25zdCBjaGFyICpkZXZpY2UpIHsKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCXJldHVybiAoc3RhdChkZXZpY2UsICZzdCkgPT0gMCAmJgorCQlTX0lTQkxLKHN0LnN0X21vZGUpICYmCisJCW1ham9yKHN0LnN0X3JkZXYpID09IExPT1BNQUpPUik7Cit9CisKK3N0YXRpYyBpbnQKK2lzX2xvb3BfdXNlZChpbnQgZmQpCit7CisJc3RydWN0IGxvb3BfaW5mbyBsaTsKKworCWVycm5vID0gMDsKKwlpZiAoaW9jdGwgKGZkLCBMT09QX0dFVF9TVEFUVVMsICZsaSkgPCAwICYmIGVycm5vID09IEVOWElPKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludAoraXNfbG9vcGZkX2F1dG9jbGVhcihpbnQgZmQpCit7CisJc3RydWN0IGxvb3BfaW5mbyBsbzsKKwlzdHJ1Y3QgbG9vcF9pbmZvNjQgbG82NDsKKworCWlmIChpb2N0bChmZCwgTE9PUF9HRVRfU1RBVFVTNjQsICZsbzY0KSA9PSAwKSB7CisJCWlmIChsbzY0LmxvX2ZsYWdzICYgTE9fRkxBR1NfQVVUT0NMRUFSKQorCQkJcmV0dXJuIDE7CisKKwl9IGVsc2UgaWYgKGlvY3RsKGZkLCBMT09QX0dFVF9TVEFUVVMsICZsbykgPT0gMCkgeworCQlpZiAobG8ubG9fZmxhZ3MgJiBMT19GTEFHU19BVVRPQ0xFQVIpCisJCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAoraXNfbG9vcF9hdXRvY2xlYXIoY29uc3QgY2hhciAqZGV2aWNlKQoreworCWludCBmZCwgcmM7CisKKwlpZiAoKGZkID0gb3BlbihkZXZpY2UsIE9fUkRPTkxZKSkgPCAwKQorCQlyZXR1cm4gMDsKKwlyYyA9IGlzX2xvb3BmZF9hdXRvY2xlYXIoZmQpOworCisJY2xvc2UoZmQpOworCXJldHVybiByYzsKK30KKworc3RhdGljIGludAorbG9vcGxpc3Rfb3BlbihzdHJ1Y3QgbG9vcGxpc3QgKmxsLCBpbnQgZmxhZykKK3sKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCW1lbXNldChsbCwgMCwgc2l6ZW9mKCpsbCkpOworCWxsLT5mbGFnID0gZmxhZzsKKwlsbC0+bmN1ciA9IC0xOworCisJaWYgKHN0YXQoX1BBVEhfREVWLCAmc3QpID09IC0xIHx8ICghU19JU0RJUihzdC5zdF9tb2RlKSkpCisJCXJldHVybiAtMTsJCQkvKiAvZGV2IGRvZXNuJ3QgZXhpc3QgKi8KKworCWlmIChzdGF0KF9QQVRIX0RFVl9MT09QLCAmc3QpID09IDAgJiYgU19JU0RJUihzdC5zdF9tb2RlKSkKKwkJbGwtPmZsYWcgfD0gTExGTEdfU1VCRElSOwkvKiAvZGV2L2xvb3AvIGV4aXN0cyAqLworCisJaWYgKChsbC0+ZmxhZyAmIExMRkxHX1VTRURPTkxZKSAmJgorCQkJc3RhdChfUEFUSF9QUk9DX1BBUlRJVElPTlMsICZzdCkgPT0gMCkKKwkJbGwtPmZsYWcgfD0gTExGTEdfUFJPQ0ZTOwkvKiB0cnkgL3Byb2MvcGFydGl0aW9ucyAqLworCisJbGwtPmZsYWcgfD0gTExGTEdfREZMVDsJCQkvKiByZXF1aXJlZCEgKi8KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2xvb3BsaXN0X2Nsb3NlKHN0cnVjdCBsb29wbGlzdCAqbGwpCit7CisJZnJlZShsbC0+bWlub3JzKTsKKwlpZiAobGwtPnByb2MpCisJCWZjbG9zZShsbC0+cHJvYyk7CisJbGwtPm1pbm9ycyA9IE5VTEw7CisJbGwtPnByb2MgPSBOVUxMOworCWxsLT5uY3VyID0gLTE7CisJbGwtPmZsYWcgfD0gTExGTEdfRE9ORTsKK30KKworc3RhdGljIGludAorbG9vcGxpc3Rfb3Blbl9kZXYoc3RydWN0IGxvb3BsaXN0ICpsbCwgaW50IGxudW0pCit7CisJc3RydWN0IHN0YXQgc3Q7CisJaW50IHVzZWQ7CisJaW50IGZkOworCisJLyogY3JlYXRlIGEgZnVsbCBkZXZpY2UgcGF0aCAqLworCXNucHJpbnRmKGxsLT5uYW1lLCBzaXplb2YobGwtPm5hbWUpLAorCQlsbC0+ZmxhZyAmIExMRkxHX1NVQkRJUiA/CisJCQlfUEFUSF9ERVZfTE9PUCAiLyVkIiA6CisJCQlfUEFUSF9ERVYgImxvb3AlZCIsCisJCWxudW0pOworCisJZmQgPSBvcGVuKGxsLT5uYW1lLCBPX1JET05MWSk7CisJaWYgKGZkID09IC0xKSB7CisJCWlmIChlcnJubyA9PSBFQUNDRVMpCisJCQlsbC0+Y3RfcGVybSsrOworCQlyZXR1cm4gLTE7CisJfQorCWlmIChmc3RhdChmZCwgJnN0KSA9PSAtMSkKKwkJZ290byBlcnJvcjsKKwlpZiAoIVNfSVNCTEsoc3Quc3RfbW9kZSkgfHwgbWFqb3Ioc3Quc3RfcmRldikgIT0gTE9PUE1BSk9SKQorCQlnb3RvIGVycm9yOworCisJbGwtPmN0X3N1Y2MrKzsKKworCS8qIGNoZWNrIGlmIHRoZSBkZXZpY2UgaXMgd2FudGVkICovCisJaWYgKCEobGwtPmZsYWcgJiAoTExGTEdfVVNFRE9OTFkgfCBMTEZMR19GUkVFT05MWSkpKQorCQlyZXR1cm4gZmQ7CisKKwl1c2VkID0gaXNfbG9vcF91c2VkKGZkKTsKKworCWlmICgobGwtPmZsYWcgJiBMTEZMR19VU0VET05MWSkgJiYgdXNlZCkKKwkJcmV0dXJuIGZkOworCWlmICgobGwtPmZsYWcgJiBMTEZMR19GUkVFT05MWSkgJiYgIXVzZWQpCisJCXJldHVybiBmZDsKK2Vycm9yOgorCWNsb3NlKGZkKTsKKwlyZXR1cm4gLTE7Cit9CisKKy8qIHJldHVybnMgPE4+IGZyb20gImxvb3A8Tj4iICovCitzdGF0aWMgaW50CituYW1lMm1pbm9yKGludCBoYXNwcmVmaXgsIGNvbnN0IGNoYXIgKm5hbWUpCit7CisJaW50IG47CisJY2hhciAqZW5kOworCisJaWYgKGhhc3ByZWZpeCkgeworCQlpZiAoc3RybmNtcChuYW1lLCAibG9vcCIsIDQpKQorCQkJcmV0dXJuIC0xOworCQluYW1lICs9IDQ7CisJfQorCW4gPSBzdHJ0b2wobmFtZSwgJmVuZCwgMTApOworCWlmIChlbmQgJiYgZW5kICE9IG5hbWUgJiYgKmVuZCA9PSAnXDAnICYmIG4gPj0gMCkKKwkJcmV0dXJuIG47CisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgaW50CitjbXBudW0oY29uc3Qgdm9pZCAqcDEsIGNvbnN0IHZvaWQgKnAyKQoreworCXJldHVybiAoKiAoaW50ICopIHAxKSA+ICgqIChpbnQgKikgcDIpOworfQorCisvKgorICogVGhlIGNsYXNzaWMgc2NhbmRpcigpIGlzIG1vcmUgZXhwZW5zaXZlIGFuZCBsZXNzIHBvcnRhYmxlLgorICogV2UgbmVlZG4ndCBmdWxsIGxvb3AgZGV2aWNlIG5hbWVzIC0tIG1pbm9yIG51bWVycyAobG9vcDxOPikKKyAqIGFyZSBlbm91Z2guCisgKi8KK3N0YXRpYyBpbnQKK2xvb3Bfc2NhbmRpcihjb25zdCBjaGFyICpkaXJuYW1lLCBpbnQgKiphcnksIGludCBoYXNwcmVmaXgpCit7CisJRElSICpkaXI7CisJc3RydWN0IGRpcmVudCAqZDsKKwlpbnQgbiwgY291bnQgPSAwLCBhcnlsZW4gPSAwOworCisJaWYgKCFkaXJuYW1lIHx8ICFhcnkpCisJCXJldHVybiAtMTsKKwlkaXIgPSBvcGVuZGlyKGRpcm5hbWUpOworCWlmICghZGlyKQorCQlyZXR1cm4gLTE7CisKKwkqYXJ5ID0gTlVMTDsKKworCXdoaWxlKChkID0gcmVhZGRpcihkaXIpKSkgeworCQlpZiAoZC0+ZF90eXBlICE9IERUX0JMSyAmJiBkLT5kX3R5cGUgIT0gRFRfVU5LTk9XTiAmJiBkLT5kX3R5cGUgIT0gRFRfTE5LKQorCQkJY29udGludWU7CisJCW4gPSBuYW1lMm1pbm9yKGhhc3ByZWZpeCwgZC0+ZF9uYW1lKTsKKwkJaWYgKG4gPT0gLTEgfHwgbiA8IE5MT09QU19ERUZBVUxUKQorCQkJY29udGludWU7CisJCWlmIChjb3VudCArIDEgPiBhcnlsZW4pIHsKKwkJCWFyeWxlbiArPSAxOworCQkJKmFyeSA9ICphcnkgPyByZWFsbG9jKCphcnksIGFyeWxlbiAqIHNpemVvZihpbnQpKSA6CisJCQkJICAgICAgbWFsbG9jKGFyeWxlbiAqIHNpemVvZihpbnQpKTsKKwkJCWlmICghKmFyeSkKKwkJCQlyZXR1cm4gLTE7CisJCX0KKwkJKCphcnkpW2NvdW50KytdID0gbjsKKwl9CisJaWYgKGNvdW50KQorCQlxc29ydCgqYXJ5LCBjb3VudCwgc2l6ZW9mKGludCksIGNtcG51bSk7CisKKwljbG9zZWRpcihkaXIpOworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIGludAorbG9vcGxpc3RfbmV4dChzdHJ1Y3QgbG9vcGxpc3QgKmxsKQoreworCWludCBmZCwgbjsKKworCWlmIChsbC0+ZmxhZyAmIExMRkxHX0RPTkUpCisJCXJldHVybiAtMTsKKworCS8qIEEpIExvb2sgZm9yIHVzZWQgbG9vcCBkZXZpY2VzIGluIC9wcm9jL3BhcnRpdGlvbnMgKCJsb3NldHVwIC1hIiBvbmx5KQorCSAqLworCWlmIChsbC0+ZmxhZyAmIExMRkxHX1BST0NGUykgeworCQljaGFyIGJ1ZltCVUZTSVpdOworCisJCWlmICghbGwtPnByb2MpCisJCQlsbC0+cHJvYyA9IGZvcGVuKF9QQVRIX1BST0NfUEFSVElUSU9OUywgInIiKTsKKworCQl3aGlsZSAobGwtPnByb2MgJiYgZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgbGwtPnByb2MpKSB7CisJCQlpbnQgbTsKKwkJCXVuc2lnbmVkIGxvbmcgbG9uZyBzejsKKwkJCWNoYXIgbmFtZVsxMjhdOworCisJCQlpZiAoc3NjYW5mKGJ1ZiwgIiAlZCAlZCAlbGx1ICUxMjhbXlxuIF0iLAorCQkJCQkJICAgJm0sICZuLCAmc3osIG5hbWUpICE9IDQpCisJCQkJY29udGludWU7CisJCQlpZiAobSAhPSBMT09QTUFKT1IpCisJCQkJY29udGludWU7CisJCQkvKiB1bmZvcnR1bmF0ZWx5LCByZWFsIG1pbm9yIG51bWJlcnMgbmVlZG4ndCB0byBtYXRjaAorCQkJICogbG9vcDxOPiBkZXZpY2UgbmFtZS4gV2UgaGF2ZSB0byBmb2xsb3cgZGV2aWNlIG5hbWUuCisJCQkgKi8KKwkJCW4gPSBuYW1lMm1pbm9yKDEsIG5hbWUpOworCQkJZmQgPSBsb29wbGlzdF9vcGVuX2RldihsbCwgbik7CisJCQlpZiAoZmQgIT0gLTEpCisJCQkJcmV0dXJuIGZkOworCQl9CisJCWdvdG8gZG9uZTsKKwl9CisKKworCS8qIEIpIENsYXNzaWMgd2F5LCB0cnkgZmlyc3QgZWlnaHQgbG9vcCBkZXZpY2VzIChkZWZhdWx0IG51bWJlcgorCSAqICAgIG9mIGxvb3AgZGV2aWNlcykuIFRoaXMgaXMgZW5vdWdoIGZvciA5OSUgb2YgYWxsIGNhc2VzLgorCSAqLworCWlmIChsbC0+ZmxhZyAmIExMRkxHX0RGTFQpIHsKKwkJZm9yICgrK2xsLT5uY3VyOyBsbC0+bmN1ciA8IE5MT09QU19ERUZBVUxUOyBsbC0+bmN1cisrKSB7CisJCQlmZCA9IGxvb3BsaXN0X29wZW5fZGV2KGxsLCBsbC0+bmN1cik7CisJCQlpZiAoZmQgIT0gLTEpCisJCQkJcmV0dXJuIGZkOworCQl9CisJCWxsLT5mbGFnICY9IH5MTEZMR19ERkxUOworCX0KKworCS8qIEMpIHRoZSB3b3JzdCBwb3NpYmlsaXR5LCBzY2FuIGFsbCAvZGV2IG9yIC9kZXYvbG9vcAorCSAqLworCWlmICghbGwtPm1pbm9ycykgeworCQlsbC0+bm1pbm9ycyA9IChsbC0+ZmxhZyAmIExMRkxHX1NVQkRJUikgPworCQkJbG9vcF9zY2FuZGlyKF9QQVRIX0RFVl9MT09QLCAmbGwtPm1pbm9ycywgMCkgOgorCQkJbG9vcF9zY2FuZGlyKF9QQVRIX0RFViwgJmxsLT5taW5vcnMsIDEpOworCQlsbC0+bmN1ciA9IC0xOworCX0KKwlmb3IgKCsrbGwtPm5jdXI7IGxsLT5uY3VyIDwgbGwtPm5taW5vcnM7IGxsLT5uY3VyKyspIHsKKwkJZmQgPSBsb29wbGlzdF9vcGVuX2RldihsbCwgbGwtPm1pbm9yc1tsbC0+bmN1cl0pOworCQlpZiAoZmQgIT0gLTEpCisJCQlyZXR1cm4gZmQ7CisJfQorCitkb25lOgorCWxvb3BsaXN0X2Nsb3NlKGxsKTsKKwlyZXR1cm4gLTE7Cit9CisKKyNpZmRlZiBNQUlOCisKK3N0YXRpYyBpbnQKK3NldF9jYXBhY2l0eShjb25zdCBjaGFyICpkZXZpY2UpCit7CisJaW50IGVycnN2OworCWludCBmZCA9IG9wZW4oZGV2aWNlLCBPX1JET05MWSk7CisKKwlpZiAoZmQgPT0gLTEpCisJCWdvdG8gZXJyOworCisJaWYgKGlvY3RsKGZkLCBMT09QX1NFVF9DQVBBQ0lUWSkgIT0gMCkKKwkJZ290byBlcnI7CisKKwlyZXR1cm4gMDsKK2VycjoKKwllcnJzdiA9IGVycm5vOworCWZwcmludGYoc3RkZXJyLCBfKCJsb29wOiBjYW4ndCBzZXQgY2FwYWNpdHkgb24gZGV2aWNlICVzOiAlc1xuIiksCisJCQkJCWRldmljZSwgc3RyZXJyb3IgKGVycnN2KSk7CisJaWYgKGZkICE9IC0xKQorCQljbG9zZShmZCk7CisJcmV0dXJuIDI7Cit9CisKK3N0YXRpYyBpbnQKK3Nob3dfbG9vcF9mZChpbnQgZmQsIGNoYXIgKmRldmljZSkgeworCXN0cnVjdCBsb29wX2luZm8gbG9vcGluZm87CisJc3RydWN0IGxvb3BfaW5mbzY0IGxvb3BpbmZvNjQ7CisJaW50IGVycnN2OworCisJaWYgKGlvY3RsKGZkLCBMT09QX0dFVF9TVEFUVVM2NCwgJmxvb3BpbmZvNjQpID09IDApIHsKKworCQlsb29waW5mbzY0LmxvX2ZpbGVfbmFtZVtMT19OQU1FX1NJWkUtMl0gPSAnKic7CisJCWxvb3BpbmZvNjQubG9fZmlsZV9uYW1lW0xPX05BTUVfU0laRS0xXSA9IDA7CisJCWxvb3BpbmZvNjQubG9fY3J5cHRfbmFtZVtMT19OQU1FX1NJWkUtMV0gPSAwOworCisJCXByaW50ZigiJXM6IFslMDQiIFBSSXg2NCAiXTolIiBQUkl1NjQgIiAoJXMpIiwKKwkJICAgICAgIGRldmljZSwgbG9vcGluZm82NC5sb19kZXZpY2UsIGxvb3BpbmZvNjQubG9faW5vZGUsCisJCSAgICAgICBsb29waW5mbzY0LmxvX2ZpbGVfbmFtZSk7CisKKwkJaWYgKGxvb3BpbmZvNjQubG9fb2Zmc2V0KQorCQkJcHJpbnRmKF8oIiwgb2Zmc2V0ICUiIFBSSXU2NCApLCBsb29waW5mbzY0LmxvX29mZnNldCk7CisKKwkJaWYgKGxvb3BpbmZvNjQubG9fc2l6ZWxpbWl0KQorCQkJcHJpbnRmKF8oIiwgc2l6ZWxpbWl0ICUiIFBSSXU2NCApLCBsb29waW5mbzY0LmxvX3NpemVsaW1pdCk7CisKKwkJaWYgKGxvb3BpbmZvNjQubG9fZW5jcnlwdF90eXBlIHx8CisJCSAgICBsb29waW5mbzY0LmxvX2NyeXB0X25hbWVbMF0pIHsKKwkJCWNoYXIgKmUgPSAoY2hhciAqKWxvb3BpbmZvNjQubG9fY3J5cHRfbmFtZTsKKworCQkJaWYgKCplID09IDAgJiYgbG9vcGluZm82NC5sb19lbmNyeXB0X3R5cGUgPT0gMSkKKwkJCQllID0gIlhPUiI7CisJCQlwcmludGYoXygiLCBlbmNyeXB0aW9uICVzICh0eXBlICUiIFBSSXUzMiAiKSIpLAorCQkJICAgICAgIGUsIGxvb3BpbmZvNjQubG9fZW5jcnlwdF90eXBlKTsKKwkJfQorCQlwcmludGYoIlxuIik7CisJCXJldHVybiAwOworCX0KKworCWlmIChpb2N0bChmZCwgTE9PUF9HRVRfU1RBVFVTLCAmbG9vcGluZm8pID09IDApIHsKKwkJcHJpbnRmICgiJXM6IFslMDR4XTolbGQgKCVzKSIsCisJCQlkZXZpY2UsICh1bnNpZ25lZCBpbnQpbG9vcGluZm8ubG9fZGV2aWNlLCBsb29waW5mby5sb19pbm9kZSwKKwkJCWxvb3BpbmZvLmxvX25hbWUpOworCisJCWlmIChsb29waW5mby5sb19vZmZzZXQpCisJCQlwcmludGYoXygiLCBvZmZzZXQgJWQiKSwgbG9vcGluZm8ubG9fb2Zmc2V0KTsKKworCQlpZiAobG9vcGluZm8ubG9fZW5jcnlwdF90eXBlKQorCQkJcHJpbnRmKF8oIiwgZW5jcnlwdGlvbiB0eXBlICVkXG4iKSwKKwkJCSAgICAgICBsb29waW5mby5sb19lbmNyeXB0X3R5cGUpOworCisJCXByaW50ZigiXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJZXJyc3YgPSBlcnJubzsKKwlmcHJpbnRmKHN0ZGVyciwgXygibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIiksCisJCWRldmljZSwgc3RyZXJyb3IgKGVycnN2KSk7CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK3Nob3dfbG9vcChjaGFyICpkZXZpY2UpIHsKKwlpbnQgcmV0LCBmZDsKKworCWlmICgoZmQgPSBvcGVuKGRldmljZSwgT19SRE9OTFkpKSA8IDApIHsKKwkJaW50IGVycnN2ID0gZXJybm87CisJCWZwcmludGYoc3RkZXJyLCBfKCJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIpLAorCQkJZGV2aWNlLCBzdHJlcnJvciAoZXJyc3YpKTsKKwkJcmV0dXJuIDI7CisJfQorCXJldCA9IHNob3dfbG9vcF9mZChmZCwgZGV2aWNlKTsKKwljbG9zZShmZCk7CisJcmV0dXJuIHJldDsKK30KKworCitzdGF0aWMgaW50CitzaG93X3VzZWRfbG9vcF9kZXZpY2VzICh2b2lkKSB7CisJc3RydWN0IGxvb3BsaXN0IGxsOworCWludCBmZDsKKworCWlmIChsb29wbGlzdF9vcGVuKCZsbCwgTExGTEdfVVNFRE9OTFkpID09IC0xKSB7CisJCWVycm9yKF8oIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iKSwgcHJvZ25hbWUpOworCQlyZXR1cm4gMTsKKwl9CisKKwl3aGlsZSgoZmQgPSBsb29wbGlzdF9uZXh0KCZsbCkpICE9IC0xKSB7CisJCXNob3dfbG9vcF9mZChmZCwgbGwubmFtZSk7CisJCWNsb3NlKGZkKTsKKwl9CisJbG9vcGxpc3RfY2xvc2UoJmxsKTsKKworCWlmICghbGwuY3Rfc3VjYyAmJiBsbC5jdF9wZXJtKSB7CisJCWVycm9yKF8oIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iKSwgcHJvZ25hbWUsCisJCQkJKGxsLmZsYWcgJiBMTEZMR19TVUJESVIpID8gIi8iIDogIiIpOworCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qIGxpc3QgYWxsIGFzc29jaWF0ZWQgbG9vcCBkZXZpY2VzICovCitzdGF0aWMgaW50CitzaG93X2Fzc29jaWF0ZWRfbG9vcF9kZXZpY2VzKGNoYXIgKmZpbGVuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgb2Zmc2V0LCBpbnQgaXNvZmYpCit7CisJc3RydWN0IGxvb3BsaXN0IGxsOworCXN0cnVjdCBzdGF0IGZpbGVzdGF0OworCWludCBmZDsKKworCWlmIChzdGF0KGZpbGVuYW1lLCAmZmlsZXN0YXQpID09IC0xKSB7CisJCXBlcnJvcihmaWxlbmFtZSk7CisJCXJldHVybiAxOworCX0KKworCWlmIChsb29wbGlzdF9vcGVuKCZsbCwgTExGTEdfVVNFRE9OTFkpID09IC0xKSB7CisJCWVycm9yKF8oIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iKSwgcHJvZ25hbWUpOworCQlyZXR1cm4gMTsKKwl9CisKKwl3aGlsZSgoZmQgPSBsb29wbGlzdF9uZXh0KCZsbCkpICE9IC0xKSB7CisJCWlmIChpc19hc3NvY2lhdGVkKGZkLCAmZmlsZXN0YXQsIG9mZnNldCwgaXNvZmYpID09IDEpCisJCQlzaG93X2xvb3BfZmQoZmQsIGxsLm5hbWUpOworCQljbG9zZShmZCk7CisJfQorCWxvb3BsaXN0X2Nsb3NlKCZsbCk7CisKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIE1BSU4gKi8KKworLyogY2hlY2sgaWYgdGhlIGxvb3BmaWxlIGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIGdpdmVuCisgKiBwYXJhbWV0ZXJzLgorICoKKyAqIHJldHVybnM6ICAwIHVudXNlZCAvIGVycm9yCisgKiAgICAgICAgICAgMSBsb29wIGRldmljZSBhbHJlYWR5IHVzZWQKKyAqLworc3RhdGljIGludAoraXNfYXNzb2NpYXRlZChpbnQgZGV2LCBzdHJ1Y3Qgc3RhdCAqZmlsZSwgdW5zaWduZWQgbG9uZyBsb25nIG9mZnNldCwgaW50IGlzb2ZmKQoreworCXN0cnVjdCBsb29wX2luZm82NCBsaW5mbzY0OworCXN0cnVjdCBsb29wX2luZm82NCBsaW5mbzsKKwlpbnQgcmV0ID0gMDsKKworCWlmIChpb2N0bChkZXYsIExPT1BfR0VUX1NUQVRVUzY0LCAmbGluZm82NCkgPT0gMCkgeworCQlpZiAoZmlsZS0+c3RfZGV2ID09IGxpbmZvNjQubG9fZGV2aWNlICYmCisJICAgICAgICAgICAgZmlsZS0+c3RfaW5vID09IGxpbmZvNjQubG9faW5vZGUgJiYKKwkJICAgIChpc29mZiA9PSAwIHx8IG9mZnNldCA9PSBsaW5mbzY0LmxvX29mZnNldCkpCisJCQlyZXQgPSAxOworCisJfSBlbHNlIGlmIChpb2N0bChkZXYsIExPT1BfR0VUX1NUQVRVUywgJmxpbmZvKSA9PSAwKSB7CisJCWlmIChmaWxlLT5zdF9kZXYgPT0gbGluZm8ubG9fZGV2aWNlICYmCisJICAgICAgICAgICAgZmlsZS0+c3RfaW5vID09IGxpbmZvLmxvX2lub2RlICYmCisJCSAgICAoaXNvZmYgPT0gMCB8fCBvZmZzZXQgPT0gbGluZm8ubG9fb2Zmc2V0KSkKKwkJCXJldCA9IDE7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworLyogY2hlY2sgaWYgdGhlIGxvb3AgZmlsZSBpcyBhbHJlYWR5IHVzZWQgd2l0aCB0aGUgc2FtZSBnaXZlbgorICogcGFyYW1ldGVycy4gV2UgY2hlY2sgZm9yIGRldmljZSBubywgaW5vZGUgYW5kIG9mZnNldC4KKyAqIHJldHVybnM6IGFzc29jaWF0ZWQgZGV2bmFtZSBvciBOVUxMCisgKi8KK2NoYXIgKgorbG9vcGZpbGVfdXNlZCAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQpIHsKKwlzdHJ1Y3QgbG9vcGxpc3QgbGw7CisJY2hhciAqZGV2bmFtZSA9IE5VTEw7CisJc3RydWN0IHN0YXQgZmlsZXN0YXQ7CisJaW50IGZkOworCisJaWYgKHN0YXQoZmlsZW5hbWUsICZmaWxlc3RhdCkgPT0gLTEpIHsKKwkJcGVycm9yKGZpbGVuYW1lKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJaWYgKGxvb3BsaXN0X29wZW4oJmxsLCBMTEZMR19VU0VET05MWSkgPT0gLTEpIHsKKwkJZXJyb3IoXygiJXM6IC9kZXYgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LiIpLCBwcm9nbmFtZSk7CisJCXJldHVybiBOVUxMOworCX0KKworCXdoaWxlKChmZCA9IGxvb3BsaXN0X25leHQoJmxsKSkgIT0gLTEpIHsKKwkJaW50IHJlcyA9IGlzX2Fzc29jaWF0ZWQoZmQsICZmaWxlc3RhdCwgb2Zmc2V0LCAxKTsKKwkJY2xvc2UoZmQpOworCQlpZiAocmVzID09IDEpIHsKKwkJCWRldm5hbWUgPSB4c3RyZHVwKGxsLm5hbWUpOworCQkJYnJlYWs7CisJCX0KKwl9CisJbG9vcGxpc3RfY2xvc2UoJmxsKTsKKworCXJldHVybiBkZXZuYW1lOworfQorCitpbnQKK2xvb3BmaWxlX3VzZWRfd2l0aChjaGFyICpkZXZuYW1lLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIG9mZnNldCkKK3sKKwlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCWludCBmZCwgcmV0OworCisJaWYgKCFpc19sb29wX2RldmljZShkZXZuYW1lKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoc3RhdChmaWxlbmFtZSwgJnN0YXRidWYpID09IC0xKQorCQlyZXR1cm4gMDsKKworCWZkID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSk7CisJaWYgKGZkID09IC0xKQorCQlyZXR1cm4gMDsKKworCXJldCA9IGlzX2Fzc29jaWF0ZWQoZmQsICZzdGF0YnVmLCBvZmZzZXQsIDEpOworCWNsb3NlKGZkKTsKKwlyZXR1cm4gcmV0OworfQorCitjaGFyICoKK2ZpbmRfdW51c2VkX2xvb3BfZGV2aWNlICh2b2lkKSB7CisJc3RydWN0IGxvb3BsaXN0IGxsOworCWNoYXIgKmRldm5hbWUgPSBOVUxMOworCWludCBmZDsKKworCWlmIChsb29wbGlzdF9vcGVuKCZsbCwgTExGTEdfRlJFRU9OTFkpID09IC0xKSB7CisJCWVycm9yKF8oIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iKSwgcHJvZ25hbWUpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlpZiAoKGZkID0gbG9vcGxpc3RfbmV4dCgmbGwpKSAhPSAtMSkgeworCQljbG9zZShmZCk7CisJCWRldm5hbWUgPSB4c3RyZHVwKGxsLm5hbWUpOworCX0KKwlsb29wbGlzdF9jbG9zZSgmbGwpOworCWlmIChkZXZuYW1lKQorCQlyZXR1cm4gZGV2bmFtZTsKKworCWlmICghbGwuY3Rfc3VjYyAmJiBsbC5jdF9wZXJtKQorCQllcnJvcihfKCIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IiksIHByb2duYW1lLAorCQkJCShsbC5mbGFnICYgTExGTEdfU1VCRElSKSA/ICIvIiA6ICIiKTsKKwllbHNlIGlmIChsbC5jdF9zdWNjKQorCQllcnJvcihfKCIlczogY291bGQgbm90IGZpbmQgYW55IGZyZWUgbG9vcCBkZXZpY2UiKSwgcHJvZ25hbWUpOworCWVsc2UKKwkJZXJyb3IoXygKKwkJICAgICIlczogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCAiCisJCSAgICAiZG9lcyBub3Qga25vd1xuIgorCQkgICAgIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yICIKKwkJICAgICJgbW9kcHJvYmUgbG9vcCcuKSIpLCBwcm9nbmFtZSk7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBBIGZ1bmN0aW9uIHRvIHJlYWQgdGhlIHBhc3NwaHJhc2UgZWl0aGVyIGZyb20gdGhlIHRlcm1pbmFsIG9yIGZyb20KKyAqIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yLgorICovCitzdGF0aWMgY2hhciAqCit4Z2V0cGFzcyhpbnQgcGZkLCBjb25zdCBjaGFyICpwcm9tcHQpIHsKKwljaGFyICpwYXNzOworCWludCBidWZsZW4sIGk7CisKKyAgICAgICAgaWYgKHBmZCA8IDApIC8qIHRlcm1pbmFsICovCisJCXJldHVybiBnZXRwYXNzKHByb21wdCk7CisKKwlwYXNzID0gTlVMTDsKKwlidWZsZW4gPSAwOworCWZvciAoaT0wOyA7IGkrKykgeworCQlpZiAoaSA+PSBidWZsZW4tMSkgeworCQkJCS8qIHdlJ3JlIHJ1bm5pbmcgb3V0IG9mIHNwYWNlIGluIHRoZSBidWZmZXIuCisJCQkJICogTWFrZSBpdCBiaWdnZXI6ICovCisJCQljaGFyICp0bXBwYXNzID0gcGFzczsKKwkJCWJ1ZmxlbiArPSAxMjg7CisJCQlwYXNzID0gcmVhbGxvYyh0bXBwYXNzLCBidWZsZW4pOworCQkJaWYgKHBhc3MgPT0gTlVMTCkgeworCQkJCS8qIHJlYWxsb2MgZmFpbGVkLiBTdG9wIHJlYWRpbmcuICovCisJCQkJZXJyb3IoXygiT3V0IG9mIG1lbW9yeSB3aGlsZSByZWFkaW5nIHBhc3NwaHJhc2UiKSk7CisJCQkJcGFzcyA9IHRtcHBhc3M7IC8qIHRoZSBvbGQgYnVmZmVyIGhhc24ndCBjaGFuZ2VkICovCisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKHJlYWQocGZkLCBwYXNzK2ksIDEpICE9IDEgfHwKKwkJICAgIHBhc3NbaV0gPT0gJ1xuJyB8fCBwYXNzW2ldID09IDApCisJCQlicmVhazsKKwl9CisKKwlpZiAocGFzcyA9PSBOVUxMKQorCQlyZXR1cm4gIiI7CisKKwlwYXNzW2ldID0gMDsKKwlyZXR1cm4gcGFzczsKK30KKworc3RhdGljIGludAorZGlnaXRzX29ubHkoY29uc3QgY2hhciAqcykgeworCXdoaWxlICgqcykKKwkJaWYgKCFpc2RpZ2l0KCpzKyspKQorCQkJcmV0dXJuIDA7CisJcmV0dXJuIDE7Cit9CisKKy8qCisgKiByZXR1cm4gY29kZXM6CisgKgkwCS0gc3VjY2VzcworICoJMQktIGVycm9yCisgKgkyCS0gZXJyb3IgKEVCVVNZKQorICovCitpbnQKK3NldF9sb29wKGNvbnN0IGNoYXIgKmRldmljZSwgY29uc3QgY2hhciAqZmlsZSwgdW5zaWduZWQgbG9uZyBsb25nIG9mZnNldCwKKwkgdW5zaWduZWQgbG9uZyBsb25nIHNpemVsaW1pdCwgY29uc3QgY2hhciAqZW5jcnlwdGlvbiwgaW50IHBmZCwgaW50ICpvcHRpb25zKSB7CisJc3RydWN0IGxvb3BfaW5mbzY0IGxvb3BpbmZvNjQ7CisJaW50IGZkLCBmZmQsIG1vZGUsIGk7CisJY2hhciAqcGFzczsKKwljaGFyICpmaWxlbmFtZTsKKworCWlmICh2ZXJib3NlKSB7CisJCWNoYXIgKnhkZXYgPSBsb29wZmlsZV91c2VkKGZpbGUsIG9mZnNldCk7CisKKwkJaWYgKHhkZXYpIHsKKwkJCXByaW50ZihfKCJ3YXJuaW5nOiAlcyBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCAlc1xuIiksCisJCQkJCWZpbGUsIHhkZXYpOworCQkJZnJlZSh4ZGV2KTsKKwkJfQorCX0KKworCW1vZGUgPSAoKm9wdGlvbnMgJiBTRVRMT09QX1JET05MWSkgPyBPX1JET05MWSA6IE9fUkRXUjsKKwlpZiAoKGZmZCA9IG9wZW4oZmlsZSwgbW9kZSkpIDwgMCkgeworCQlpZiAoISgqb3B0aW9ucyAmIFNFVExPT1BfUkRPTkxZKSAmJgorCQkgICAgKGVycm5vID09IEVST0ZTIHx8IGVycm5vID09IEVBQ0NFUykpCisJCQlmZmQgPSBvcGVuKGZpbGUsIG1vZGUgPSBPX1JET05MWSk7CisJCWlmIChmZmQgPCAwKSB7CisJCQlwZXJyb3IoZmlsZSk7CisJCQlyZXR1cm4gMTsKKwkJfQorCQlpZiAodmVyYm9zZSkKKwkJCXByaW50ZihfKCJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iKSwKKwkJCQkJZmlsZSk7CisJCSpvcHRpb25zIHw9IFNFVExPT1BfUkRPTkxZOworCX0KKwlpZiAoKGZkID0gb3BlbihkZXZpY2UsIG1vZGUpKSA8IDApIHsKKwkJcGVycm9yIChkZXZpY2UpOworCQljbG9zZShmZmQpOworCQlyZXR1cm4gMTsKKwl9CisJbWVtc2V0KCZsb29waW5mbzY0LCAwLCBzaXplb2YobG9vcGluZm82NCkpOworCisJaWYgKCEoZmlsZW5hbWUgPSBjYW5vbmljYWxpemUoZmlsZSkpKQorCQlmaWxlbmFtZSA9IChjaGFyICopIGZpbGU7CisJeHN0cm5jcHkoKGNoYXIgKilsb29waW5mbzY0LmxvX2ZpbGVfbmFtZSwgZmlsZW5hbWUsIExPX05BTUVfU0laRSk7CisKKwlpZiAoZW5jcnlwdGlvbiAmJiAqZW5jcnlwdGlvbikgeworCQlpZiAoZGlnaXRzX29ubHkoZW5jcnlwdGlvbikpIHsKKwkJCWxvb3BpbmZvNjQubG9fZW5jcnlwdF90eXBlID0gYXRvaShlbmNyeXB0aW9uKTsKKwkJfSBlbHNlIHsKKwkJCWxvb3BpbmZvNjQubG9fZW5jcnlwdF90eXBlID0gTE9fQ1JZUFRfQ1JZUFRPQVBJOworCQkJc25wcmludGYoKGNoYXIgKilsb29waW5mbzY0LmxvX2NyeXB0X25hbWUsIExPX05BTUVfU0laRSwKKwkJCQkgIiVzIiwgZW5jcnlwdGlvbik7CisJCX0KKwl9CisKKwlsb29waW5mbzY0LmxvX29mZnNldCA9IG9mZnNldDsKKwlsb29waW5mbzY0LmxvX3NpemVsaW1pdCA9IHNpemVsaW1pdDsKKworI2lmZGVmIE1DTF9GVVRVUkUKKwkvKgorCSAqIE9oLW9oLCBzZW5zaXRpdmUgZGF0YSBjb21pbmcgdXAuIEJldHRlciBsb2NrIGludG8gbWVtb3J5IHRvIHByZXZlbnQKKwkgKiBwYXNzd2QgZXRjIGJlaW5nIHN3YXBwZWQgb3V0IGFuZCBsZWZ0IHNvbWV3aGVyZSBvbiBkaXNrLgorCSAqLworCWlmIChsb29waW5mbzY0LmxvX2VuY3J5cHRfdHlwZSAhPSBMT19DUllQVF9OT05FKSB7CisJCWlmKG1sb2NrYWxsKE1DTF9DVVJSRU5UIHwgTUNMX0ZVVFVSRSkpIHsKKwkJCXBlcnJvcigibWVtbG9jayIpOworCQkJZnByaW50ZihzdGRlcnIsIF8oIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iKSk7CisJCQlleGl0KDEpOworCQl9CisJfQorI2VuZGlmCisKKwlzd2l0Y2ggKGxvb3BpbmZvNjQubG9fZW5jcnlwdF90eXBlKSB7CisJY2FzZSBMT19DUllQVF9OT05FOgorCQlsb29waW5mbzY0LmxvX2VuY3J5cHRfa2V5X3NpemUgPSAwOworCQlicmVhazsKKwljYXNlIExPX0NSWVBUX1hPUjoKKwkJcGFzcyA9IGdldHBhc3MoXygiUGFzc3dvcmQ6ICIpKTsKKwkJZ290byBnb3RwYXNzOworCWRlZmF1bHQ6CisJCXBhc3MgPSB4Z2V0cGFzcyhwZmQsIF8oIlBhc3N3b3JkOiAiKSk7CisJZ290cGFzczoKKwkJbWVtc2V0KGxvb3BpbmZvNjQubG9fZW5jcnlwdF9rZXksIDAsIExPX0tFWV9TSVpFKTsKKwkJeHN0cm5jcHkoKGNoYXIgKilsb29waW5mbzY0LmxvX2VuY3J5cHRfa2V5LCBwYXNzLCBMT19LRVlfU0laRSk7CisJCW1lbXNldChwYXNzLCAwLCBzdHJsZW4ocGFzcykpOworCQlsb29waW5mbzY0LmxvX2VuY3J5cHRfa2V5X3NpemUgPSBMT19LRVlfU0laRTsKKwl9CisKKwlpZiAoaW9jdGwoZmQsIExPT1BfU0VUX0ZELCBmZmQpIDwgMCkgeworCQlpbnQgcmMgPSAxOworCisJCWlmIChlcnJubyA9PSBFQlVTWSkgeworCQkJaWYgKHZlcmJvc2UpCisJCQkJcHJpbnRmKF8oImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJCXN0cmVycm9yKGVycm5vKSk7CisJCQlyYyA9IDI7CisJCX0gZWxzZQorCQkJcGVycm9yKCJpb2N0bDogTE9PUF9TRVRfRkQiKTsKKworCQljbG9zZShmZCk7CisJCWNsb3NlKGZmZCk7CisJCWlmIChmaWxlICE9IGZpbGVuYW1lKQorCQkJZnJlZShmaWxlbmFtZSk7CisJCXJldHVybiByYzsKKwl9CisJY2xvc2UgKGZmZCk7CisKKwlpZiAoKm9wdGlvbnMgJiBTRVRMT09QX0FVVE9DTEVBUikKKwkJbG9vcGluZm82NC5sb19mbGFncyA9IExPX0ZMQUdTX0FVVE9DTEVBUjsKKworCWkgPSBpb2N0bChmZCwgTE9PUF9TRVRfU1RBVFVTNjQsICZsb29waW5mbzY0KTsKKwlpZiAoaSkgeworCQlzdHJ1Y3QgbG9vcF9pbmZvIGxvb3BpbmZvOworCQlpbnQgZXJyc3YgPSBlcnJubzsKKworCQlpID0gbG9vcF9pbmZvNjRfdG9fb2xkKCZsb29waW5mbzY0LCAmbG9vcGluZm8pOworCQlpZiAoaSkgeworCQkJZXJybm8gPSBlcnJzdjsKKwkJCSpvcHRpb25zICY9IH5TRVRMT09QX0FVVE9DTEVBUjsKKwkJCXBlcnJvcigiaW9jdGw6IExPT1BfU0VUX1NUQVRVUzY0Iik7CisJCX0gZWxzZSB7CisJCQlpID0gaW9jdGwoZmQsIExPT1BfU0VUX1NUQVRVUywgJmxvb3BpbmZvKTsKKwkJCWlmIChpKQorCQkJCXBlcnJvcigiaW9jdGw6IExPT1BfU0VUX1NUQVRVUyIpOworCQl9CisJCW1lbXNldCgmbG9vcGluZm8sIDAsIHNpemVvZihsb29waW5mbykpOworCX0KKworCWlmICgoKm9wdGlvbnMgJiBTRVRMT09QX0FVVE9DTEVBUikgJiYgIWlzX2xvb3BmZF9hdXRvY2xlYXIoZmQpKQorCQkvKiBrZXJuZWwgZG9lc24ndCBzdXBwb3J0IGxvb3AgYXV0by1kZXN0cnVjdGlvbiAqLworCQkqb3B0aW9ucyAmPSB+U0VUTE9PUF9BVVRPQ0xFQVI7CisKKwltZW1zZXQoJmxvb3BpbmZvNjQsIDAsIHNpemVvZihsb29waW5mbzY0KSk7CisKKwlpZiAoaSkgeworCQlpb2N0bCAoZmQsIExPT1BfQ0xSX0ZELCAwKTsKKwkJY2xvc2UgKGZkKTsKKwkJaWYgKGZpbGUgIT0gZmlsZW5hbWUpCisJCQlmcmVlKGZpbGVuYW1lKTsKKwkJcmV0dXJuIDE7CisJfQorCisJLyoKKwkgKiBIQUNLOiBoZXJlIHdlJ3JlIGxlZWtpbmcgYSBmaWxlIGRlc2NyaXB0b3IsCisJICogYnV0IG1vdW50IGlzIGEgc2hvcnQtbGl2ZWQgcHJvY2VzcyBhbnl3YXkuCisJICovCisJaWYgKCEoKm9wdGlvbnMgJiBTRVRMT09QX0FVVE9DTEVBUikpCisJCWNsb3NlIChmZCk7CisKKwlpZiAodmVyYm9zZSA+IDEpCisJCXByaW50ZihfKCJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iKSwKKwkJICAgICAgIGRldmljZSwgZmlsZW5hbWUsIG9mZnNldCwgc2l6ZWxpbWl0KTsKKwlpZiAoZmlsZSAhPSBmaWxlbmFtZSkKKwkJZnJlZShmaWxlbmFtZSk7CisJcmV0dXJuIDA7Cit9CisKK2ludAorZGVsX2xvb3AgKGNvbnN0IGNoYXIgKmRldmljZSkgeworCWludCBmZCwgZXJyc3Y7CisKKwlpZiAoKGZkID0gb3BlbiAoZGV2aWNlLCBPX1JET05MWSkpIDwgMCkgeworCQllcnJzdiA9IGVycm5vOworCQlnb3RvIGVycm9yOworCX0KKwlpZiAoaW9jdGwgKGZkLCBMT09QX0NMUl9GRCwgMCkgPCAwKSB7CisJCWVycnN2ID0gZXJybm87CisJCWdvdG8gZXJyb3I7CisJfQorCWNsb3NlIChmZCk7CisJaWYgKHZlcmJvc2UgPiAxKQorCQlwcmludGYoXygiZGVsX2xvb3AoJXMpOiBzdWNjZXNzXG4iKSwgZGV2aWNlKTsKKwlyZXR1cm4gMDsKKworZXJyb3I6CisJZnByaW50ZihzdGRlcnIsIF8oImxvb3A6IGNhbid0IGRlbGV0ZSBkZXZpY2UgJXM6ICVzXG4iKSwKKwkJIGRldmljZSwgc3RyZXJyb3IoZXJyc3YpKTsKKwlpZiAoZmQgPj0gMCkKKwkJY2xvc2UoZmQpOworCXJldHVybiAxOworfQorCisjZWxzZSAvKiBubyBMT09QX1NFVF9GRCBkZWZpbmVkICovCitzdGF0aWMgdm9pZAorbXV0dGVyKHZvaWQpIHsKKwlmcHJpbnRmKHN0ZGVyciwKKwkJXygiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuICIKKwkJICAiUGxlYXNlIHJlY29tcGlsZS5cbiIpKTsKK30KKworaW50CitzZXRfbG9vcChjb25zdCBjaGFyICpkZXZpY2UsIGNvbnN0IGNoYXIgKmZpbGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQsCisgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZWxpbWl0LCBjb25zdCBjaGFyICplbmNyeXB0aW9uLCBpbnQgcGZkLCBpbnQgKmxvb3BybywKKyAgICAgICAgIGludCBrZXlzeiwgaW50IGhhc2hfcGFzcykgeworCW11dHRlcigpOworCXJldHVybiAxOworfQorCitpbnQKK2RlbF9sb29wIChjb25zdCBjaGFyICpkZXZpY2UpIHsKKwltdXR0ZXIoKTsKKwlyZXR1cm4gMTsKK30KKworY2hhciAqCitmaW5kX3VudXNlZF9sb29wX2RldmljZSAodm9pZCkgeworCW11dHRlcigpOworCXJldHVybiAwOworfQorCisjZW5kaWYgLyogIUxPT1BfU0VUX0ZEICovCisKKyNpZmRlZiBNQUlOCisKKyNpZmRlZiBMT09QX1NFVF9GRAorCisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisKK3N0YXRpYyB2b2lkCit1c2FnZSh2b2lkKSB7CisJZnByaW50ZihzdGRlcnIsIF8oIlxuVXNhZ2U6XG4iCisgICIgJTEkcyBsb29wX2RldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2l2ZSBpbmZvXG4iCisgICIgJTEkcyAtYSB8IC0tYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBhbGwgdXNlZFxuIgorICAiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorICAiICUxJHMgLWYgfCAtLWZpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmQgdW51c2VkXG4iCisgICIgJTEkcyAtYyB8IC0tc2V0LWNhcGFjaXR5IDxsb29wZGV2PiAgICAgICAgICAgcmVzaXplXG4iCisgICIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoIDxmaWxlPlxuIgorICAiICUxJHMgWyBvcHRpb25zIF0gey1mfC0tZmluZHxsb29wZGV2fSA8ZmlsZT4gIHNldHVwXG4iKSwKKwkJcHJvZ25hbWUpOworCisJZnByaW50ZihzdGRlcnIsIF8oIlxuT3B0aW9uczpcbiIKKyAgIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisgICIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorICAiIC1vIHwgLS1vZmZzZXQgPG51bT4gICAgICBzdGFydCBhdCBvZmZzZXQgPG51bT4gaW50byBmaWxlXG4iCisgICIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisgICIgLXAgfCAtLXBhc3MtZmQgPG51bT4gICAgIHJlYWQgcGFzc3BocmFzZSBmcm9tIGZpbGUgZGVzY3JpcHRvciA8bnVtPlxuIgorICAiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBzZXR1cCByZWFkLW9ubHkgbG9vcCBkZXZpY2VcbiIKKyAgIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorICAiIC12IHwgLS12ZXJib3NlICAgICAgICAgICB2ZXJib3NlIG1vZGVcblxuIikpOworCWV4aXQoMSk7CisgfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisJY2hhciAqcCwgKm9mZnNldCwgKnNpemVsaW1pdCwgKmVuY3J5cHRpb24sICpwYXNzZmQsICpkZXZpY2UsICpmaWxlLCAqYXNzb2M7CisJaW50IGRlbGV0ZSwgZmluZCwgYywgYWxsLCBjYXBhY2l0eTsKKwlpbnQgcmVzID0gMDsKKwlpbnQgc2hvd2RldiA9IDA7CisJaW50IHJvID0gMDsKKwlpbnQgcGZkID0gLTE7CisJdW5zaWduZWQgbG9uZyBsb25nIG9mZiwgc2xpbWl0OworCXN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHsKKwkJeyAiYWxsIiwgMCwgMCwgJ2EnIH0sCisJCXsgInNldC1jYXBhY2l0eSIsIDAsIDAsICdjJyB9LAorCQl7ICJkZXRhY2giLCAwLCAwLCAnZCcgfSwKKwkJeyAiZW5jcnlwdGlvbiIsIDEsIDAsICdlJyB9LAorCQl7ICJmaW5kIiwgMCwgMCwgJ2YnIH0sCisJCXsgImhlbHAiLCAwLCAwLCAnaCcgfSwKKwkJeyAiYXNzb2NpYXRlZCIsIDEsIDAsICdqJyB9LAorCQl7ICJvZmZzZXQiLCAxLCAwLCAnbycgfSwKKwkJeyAic2l6ZWxpbWl0IiwgMSwgMCwgMTI4IH0sCisJCXsgInBhc3MtZmQiLCAxLCAwLCAncCcgfSwKKwkJeyAicmVhZC1vbmx5IiwgMCwgMCwgJ3InIH0sCisJICAgICAgICB7ICJzaG93IiwgMCwgMCwgJ3MnIH0sCisJCXsgInZlcmJvc2UiLCAwLCAwLCAndicgfSwKKwkJeyBOVUxMLCAwLCAwLCAwIH0KKwl9OworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWNhcGFjaXR5ID0gZGVsZXRlID0gZmluZCA9IGFsbCA9IDA7CisJb2ZmID0gMDsKKyAgICAgICAgc2xpbWl0ID0gMDsKKwlhc3NvYyA9IG9mZnNldCA9IHNpemVsaW1pdCA9IGVuY3J5cHRpb24gPSBwYXNzZmQgPSBOVUxMOworCisJcHJvZ25hbWUgPSBhcmd2WzBdOworCWlmICgocCA9IHN0cnJjaHIocHJvZ25hbWUsICcvJykpICE9IE5VTEwpCisJCXByb2duYW1lID0gcCsxOworCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImFjZGU6RTpmaGo6bzpwOnJzdiIsCisJCQkJbG9uZ29wdHMsIE5VTEwpKSAhPSAtMSkgeworCQlzd2l0Y2ggKGMpIHsKKwkJY2FzZSAnYSc6CisJCQlhbGwgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ2MnOgorCQkJY2FwYWNpdHkgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3InOgorCQkJcm8gPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ2QnOgorCQkJZGVsZXRlID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdFJzoKKwkJY2FzZSAnZSc6CisJCQllbmNyeXB0aW9uID0gb3B0YXJnOworCQkJYnJlYWs7CisJCWNhc2UgJ2YnOgorCQkJZmluZCA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnaic6CisJCQlhc3NvYyA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQljYXNlICdvJzoKKwkJCW9mZnNldCA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQljYXNlICdwJzoKKwkJCXBhc3NmZCA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQljYXNlICdzJzoKKwkJCXNob3dkZXYgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3YnOgorCQkJdmVyYm9zZSA9IDE7CisJCQlicmVhazsKKworCSAgICAgICAgY2FzZSAxMjg6CQkJLyogLS1zaXplbGltaXQgKi8KKwkJCXNpemVsaW1pdCA9IG9wdGFyZzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisJCWRlZmF1bHQ6CisJCQl1c2FnZSgpOworCQl9CisJfQorCisJaWYgKGFyZ2MgPT0gMSkgeworCQl1c2FnZSgpOworCX0gZWxzZSBpZiAoZGVsZXRlKSB7CisJCWlmIChhcmdjIDwgb3B0aW5kKzEgfHwgZW5jcnlwdGlvbiB8fCBvZmZzZXQgfHwgc2l6ZWxpbWl0IHx8CisJCSAgICBjYXBhY2l0eSB8fCBmaW5kIHx8IGFsbCB8fCBzaG93ZGV2IHx8IGFzc29jIHx8IHJvKQorCQkJdXNhZ2UoKTsKKwl9IGVsc2UgaWYgKGZpbmQpIHsKKwkJaWYgKGNhcGFjaXR5IHx8IGFsbCB8fCBhc3NvYyB8fCBhcmdjIDwgb3B0aW5kIHx8IGFyZ2MgPiBvcHRpbmQrMSkKKwkJCXVzYWdlKCk7CisJfSBlbHNlIGlmIChhbGwpIHsKKwkJaWYgKGFyZ2MgPiAyKQorCQkJdXNhZ2UoKTsKKwl9IGVsc2UgaWYgKGFzc29jKSB7CisJCWlmIChjYXBhY2l0eSB8fCBlbmNyeXB0aW9uIHx8IHNob3dkZXYgfHwgcGFzc2ZkIHx8IHJvKQorCQkJdXNhZ2UoKTsKKwl9IGVsc2UgaWYgKGNhcGFjaXR5KSB7CisJCWlmIChhcmdjICE9IG9wdGluZCArIDEgfHwgZW5jcnlwdGlvbiB8fCBvZmZzZXQgfHwgc2l6ZWxpbWl0IHx8CisJCSAgICBzaG93ZGV2IHx8IHJvKQorCQkJdXNhZ2UoKTsKKwl9IGVsc2UgeworCQlpZiAoYXJnYyA8IG9wdGluZCsxIHx8IGFyZ2MgPiBvcHRpbmQrMikKKwkJCXVzYWdlKCk7CisJfQorCisJaWYgKG9mZnNldCAmJiBzc2NhbmYob2Zmc2V0LCAiJWxsdSIsICZvZmYpICE9IDEpCisJCXVzYWdlKCk7CisKKwlpZiAoc2l6ZWxpbWl0ICYmIHNzY2FuZihzaXplbGltaXQsICIlbGx1IiwgJnNsaW1pdCkgIT0gMSkKKwkJdXNhZ2UoKTsKKworCWlmIChhbGwpCisJCXJldHVybiBzaG93X3VzZWRfbG9vcF9kZXZpY2VzKCk7CisJZWxzZSBpZiAoYXNzb2MpCisJCXJldHVybiBzaG93X2Fzc29jaWF0ZWRfbG9vcF9kZXZpY2VzKGFzc29jLCBvZmYsIG9mZnNldCA/IDEgOiAwKTsKKwllbHNlIGlmIChmaW5kKSB7CisJCWRldmljZSA9IGZpbmRfdW51c2VkX2xvb3BfZGV2aWNlKCk7CisJCWlmIChkZXZpY2UgPT0gTlVMTCkKKwkJCXJldHVybiAtMTsKKwkJaWYgKGFyZ2MgPT0gb3B0aW5kKSB7CisJCQlpZiAodmVyYm9zZSkKKwkJCQlwcmludGYoXygiTG9vcCBkZXZpY2UgaXMgJXNcbiIpLCBkZXZpY2UpOworCQkJcHJpbnRmKCIlc1xuIiwgZGV2aWNlKTsKKwkJCXJldHVybiAwOworCQl9CisJCWZpbGUgPSBhcmd2W29wdGluZF07CisJfSBlbHNlIGlmICghZGVsZXRlKSB7CisJCWRldmljZSA9IGFyZ3Zbb3B0aW5kXTsKKwkJaWYgKGFyZ2MgPT0gb3B0aW5kKzEpCisJCQlmaWxlID0gTlVMTDsKKwkJZWxzZQorCQkJZmlsZSA9IGFyZ3Zbb3B0aW5kKzFdOworCX0KKworCWlmIChkZWxldGUpIHsKKwkJd2hpbGUgKG9wdGluZCA8IGFyZ2MpCisJCQlyZXMgKz0gZGVsX2xvb3AoYXJndltvcHRpbmQrK10pOworCX0gZWxzZSBpZiAoY2FwYWNpdHkpIHsKKwkJcmVzID0gc2V0X2NhcGFjaXR5KGRldmljZSk7CisJfSBlbHNlIGlmIChmaWxlID09IE5VTEwpCisJCXJlcyA9IHNob3dfbG9vcChkZXZpY2UpOworCWVsc2UgeworCQlpZiAocGFzc2ZkICYmIHNzY2FuZihwYXNzZmQsICIlZCIsICZwZmQpICE9IDEpCisJCQl1c2FnZSgpOworCQlkbyB7CisJCQlyZXMgPSBzZXRfbG9vcChkZXZpY2UsIGZpbGUsIG9mZiwgc2xpbWl0LCBlbmNyeXB0aW9uLCBwZmQsICZybyk7CisJCQlpZiAocmVzID09IDIgJiYgZmluZCkgeworCQkJCWlmICh2ZXJib3NlKQorCQkJCQlwcmludGYoXygic3RvbGVuIGxvb3A9JXMuLi50cnlpbmcgYWdhaW5cbiIpLAorCQkJCQkJZGV2aWNlKTsKKwkJCQlmcmVlKGRldmljZSk7CisJCQkJaWYgKCEoZGV2aWNlID0gZmluZF91bnVzZWRfbG9vcF9kZXZpY2UoKSkpCisJCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJfSB3aGlsZSAoZmluZCAmJiByZXMgPT0gMik7CisKKwkJaWYgKGRldmljZSkgeworCQkJaWYgKHJlcyA9PSAyKQorCQkJCWVycm9yKF8oIiVzOiAlczogZGV2aWNlIGlzIGJ1c3kiKSwgcHJvZ25hbWUsIGRldmljZSk7CisJCQllbHNlIGlmIChyZXMgPT0gMCkgeworCQkJCWlmICh2ZXJib3NlKQorCQkJCQlwcmludGYoXygiTG9vcCBkZXZpY2UgaXMgJXNcbiIpLCBkZXZpY2UpOworCQkJCWlmIChzaG93ZGV2ICYmIGZpbmQpCisJCQkJCXByaW50ZigiJXNcbiIsIGRldmljZSk7CisJCQl9CisJCX0KKwl9CisJcmV0dXJuIHJlczsKK30KKworI2Vsc2UgLyogTE9PUF9TRVRfRkQgbm90IGRlZmluZWQgKi8KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCWZwcmludGYoc3RkZXJyLAorCQlfKCJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuICIKKwkJICAiUGxlYXNlIHJlY29tcGlsZS5cbiIpKTsKKwlyZXR1cm4gLTE7Cit9CisjZW5kaWYgLyogIUxPT1BfU0VUX0ZEKi8KKyNlbmRpZiAvKiBNQUlOICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9sb21vdW50LmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9sb21vdW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkxMDhkNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L2xvbW91bnQuaApAQCAtMCwwICsxLDEyIEBACitleHRlcm4gaW50IHNldF9sb29wKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZywKKwkJICAgIGNvbnN0IGNoYXIgKiwgaW50LCBpbnQgKik7CitleHRlcm4gaW50IGRlbF9sb29wKGNvbnN0IGNoYXIgKik7CitleHRlcm4gaW50IGlzX2xvb3BfZGV2aWNlKGNvbnN0IGNoYXIgKik7CitleHRlcm4gaW50IGlzX2xvb3BfYXV0b2NsZWFyKGNvbnN0IGNoYXIgKmRldmljZSk7CitleHRlcm4gY2hhciAqIGZpbmRfdW51c2VkX2xvb3BfZGV2aWNlKHZvaWQpOworCitleHRlcm4gaW50IGxvb3BmaWxlX3VzZWRfd2l0aChjaGFyICpkZXZuYW1lLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIG9mZnNldCk7CitleHRlcm4gY2hhciAqbG9vcGZpbGVfdXNlZCAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQpOworCisjZGVmaW5lIFNFVExPT1BfUkRPTkxZICAgICAoMTw8MCkgIC8qIE9wZW4gbG9vcCByZWFkLW9ubHkgKi8KKyNkZWZpbmUgU0VUTE9PUF9BVVRPQ0xFQVIgICgxPDwxKSAgLyogQXV0b21hdGljYWxseSBkZXRhY2ggbG9vcCBvbiBjbG9zZSAoMi42LjI1PykgKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L2xvb3AuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L2xvb3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGRmMzM5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbG9vcC5oCkBAIC0wLDAgKzEsNjkgQEAKKyNpZm5kZWYgTU5UX0xPT1BfSAorI2RlZmluZSBNTlRfTE9PUF9ICisKKyNpbmNsdWRlIDxsaW51eC9wb3NpeF90eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgImxpbnV4X3ZlcnNpb24uaCIKKworI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNSw2OCkKKyNkZWZpbmUgbXlfZGV2X3QgX19rZXJuZWxfZGV2X3QKKyNlbHNlCisjZGVmaW5lIG15X2Rldl90IF9fa2VybmVsX29sZF9kZXZfdAorI2VuZGlmCisKKyNkZWZpbmUgTE9fQ1JZUFRfTk9ORQkwCisjZGVmaW5lIExPX0NSWVBUX1hPUgkxCisjZGVmaW5lIExPX0NSWVBUX0RFUwkyCisjZGVmaW5lIExPX0NSWVBUX0NSWVBUT0FQSSAxOAorCisjZGVmaW5lIExPT1BfU0VUX0ZECQkweDRDMDAKKyNkZWZpbmUgTE9PUF9DTFJfRkQJCTB4NEMwMQorI2RlZmluZSBMT09QX1NFVF9TVEFUVVMJCTB4NEMwMgorI2RlZmluZSBMT09QX0dFVF9TVEFUVVMJCTB4NEMwMworI2RlZmluZSBMT09QX1NFVF9TVEFUVVM2NAkweDRDMDQKKyNkZWZpbmUgTE9PUF9HRVRfU1RBVFVTNjQJMHg0QzA1CisvKiAjZGVmaW5lIExPT1BfQ0hBTkdFX0ZECTB4NEMwNiAqLworI2RlZmluZSBMT09QX1NFVF9DQVBBQ0lUWQkweDRDMDcKKworLyogRmxhZ3MgZm9yIGxvb3BfaW50b3s2NCx9LT5sb19mbGFncyAqLworZW51bSB7CisJTE9fRkxBR1NfUkVBRF9PTkxZICA9IDEsCisJTE9fRkxBR1NfVVNFX0FPUFMgICA9IDIsCisJTE9fRkxBR1NfQVVUT0NMRUFSICA9IDQsIC8qIE5ldyBpbiAyLjYuMjUgKi8KK307CisKKyNkZWZpbmUgTE9fTkFNRV9TSVpFCTY0CisjZGVmaW5lIExPX0tFWV9TSVpFCTMyCisKK3N0cnVjdCBsb29wX2luZm8geworCWludAkJbG9fbnVtYmVyOworCW15X2Rldl90CWxvX2RldmljZTsKKwl1bnNpZ25lZCBsb25nCWxvX2lub2RlOworCW15X2Rldl90CWxvX3JkZXZpY2U7CisJaW50CQlsb19vZmZzZXQ7CisJaW50CQlsb19lbmNyeXB0X3R5cGU7CisJaW50CQlsb19lbmNyeXB0X2tleV9zaXplOworCWludAkJbG9fZmxhZ3M7CisJY2hhcgkJbG9fbmFtZVtMT19OQU1FX1NJWkVdOworCXVuc2lnbmVkIGNoYXIJbG9fZW5jcnlwdF9rZXlbTE9fS0VZX1NJWkVdOworCXVuc2lnbmVkIGxvbmcJbG9faW5pdFsyXTsKKwljaGFyCQlyZXNlcnZlZFs0XTsKK307CisKK3N0cnVjdCBsb29wX2luZm82NCB7CisJdWludDY0X3QJbG9fZGV2aWNlOworCXVpbnQ2NF90CWxvX2lub2RlOworCXVpbnQ2NF90CWxvX3JkZXZpY2U7CisJdWludDY0X3QJbG9fb2Zmc2V0OworCXVpbnQ2NF90CWxvX3NpemVsaW1pdDsgLyogYnl0ZXMsIDAgPT0gbWF4IGF2YWlsYWJsZSAqLworCXVpbnQzMl90CWxvX251bWJlcjsKKwl1aW50MzJfdAlsb19lbmNyeXB0X3R5cGU7CisJdWludDMyX3QJbG9fZW5jcnlwdF9rZXlfc2l6ZTsKKwl1aW50MzJfdAlsb19mbGFnczsKKwl1aW50OF90CQlsb19maWxlX25hbWVbTE9fTkFNRV9TSVpFXTsKKwl1aW50OF90CQlsb19jcnlwdF9uYW1lW0xPX05BTUVfU0laRV07CisJdWludDhfdAkJbG9fZW5jcnlwdF9rZXlbTE9fS0VZX1NJWkVdOworCXVpbnQ2NF90CWxvX2luaXRbMl07Cit9OworCisjZW5kaWYgLyogTU5UX0xPT1BfSCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbG9zZXR1cC44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbG9zZXR1cC44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjY2FiNmMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9sb3NldHVwLjgKQEAgLTAsMCArMSwxNzggQEAKKy5USCBMT1NFVFVQIDggIjIwMDMtMDctMDEiICJMaW51eCIgIk1BSU5URU5BTkNFIENPTU1BTkRTIgorLlNIIE5BTUUKK2xvc2V0dXAgXC0gc2V0IHVwIGFuZCBjb250cm9sIGxvb3AgZGV2aWNlcworLlNIIFNZTk9QU0lTCisuYWQgbAorR2V0IGluZm86Cisuc3AKKy5pbiArNQorLkIgbG9zZXR1cAorLkkgbG9vcGRldgorLnNwCisuQiBsb3NldHVwIC1hCisuc3AKKy5CIGxvc2V0dXAgLWoKKy5JIGZpbGUKKy5SQiBbIFwtbworLklSIG9mZnNldCBdCisuc3AKKy5pbiAtNQorRGVsZXRlIGxvb3A6Cisuc3AKKy5pbiArNQorLkIgImxvc2V0dXAgXC1kIgorLklSIGxvb3BkZXYgLi4uCisuc3AKKy5pbiAtNQorUHJpbnQgbmFtZSBvZiBmaXJzdCB1bnVzZWQgbG9vcCBkZXZpY2U6Cisuc3AKKy5pbiArNQorLkIgImxvc2V0dXAgXC1mIgorLnNwCisuaW4gLTUKK1NldHVwIGxvb3AgZGV2aWNlOgorLnNwCisuaW4gKzUKKy5CIGxvc2V0dXAKKy5SQiBbeyBcLWUgfCBcLUUgfQorLklSIGVuY3J5cHRpb24gXQorLlJCIFsgXC1vCisuSVIgb2Zmc2V0IF0KKy5SQiBbIFwtXC1zaXplbGltaXQKKy5JUiBsaW1pdCBdCisuaW4gKzgKKy5SQiBbIFwtcAorLklSIHBmZCBdCisuUkIgWyBcLXIgXQorLlJCIHsgXC1mIFsgXC1cLXNob3cgXXwgXGZJbG9vcGRldlxmUCB9CisuSSBmaWxlCisuc3AKKy5pbiAtMTMKK1Jlc2l6ZSBsb29wIGRldmljZToKKy5zcAorLmluICs1CisuQiAibG9zZXR1cCBcLWMiCisuSSBsb29wZGV2CisuaW4gLTUKKy5hZCBiCisuU0ggREVTQ1JJUFRJT04KKy5CIGxvc2V0dXAKK2lzIHVzZWQgdG8gYXNzb2NpYXRlIGxvb3AgZGV2aWNlcyB3aXRoIHJlZ3VsYXIgZmlsZXMgb3IgYmxvY2sgZGV2aWNlcywKK3RvIGRldGFjaCBsb29wIGRldmljZXMgYW5kIHRvIHF1ZXJ5IHRoZSBzdGF0dXMgb2YgYSBsb29wIGRldmljZS4gSWYgb25seSB0aGUKK1xmSWxvb3BkZXZcZlAgYXJndW1lbnQgaXMgZ2l2ZW4sIHRoZSBzdGF0dXMgb2YgdGhlIGNvcnJlc3BvbmRpbmcgbG9vcAorZGV2aWNlIGlzIHNob3duLgorCisuU1MgIkVuY3J5cHRpb24iCitJdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IHRyYW5zZmVyIGZ1bmN0aW9ucyAoZm9yIGVuY3J5cHRpb24vZGVjcnlwdGlvbgorb3Igb3RoZXIgcHVycG9zZXMpIHVzaW5nIG9uZSBvZiB0aGUKKy5CIFwtRQorYW5kCisuQiBcLWUKK29wdGlvbnMuCitUaGVyZSBhcmUgdHdvIG1lY2hhbmlzbXMgdG8gc3BlY2lmeSB0aGUgZGVzaXJlZCBlbmNyeXB0aW9uOiBieSBudW1iZXIKK2FuZCBieSBuYW1lLiBJZiBhbiBlbmNyeXB0aW9uIGlzIHNwZWNpZmllZCBieSBudW1iZXIgdGhlbiBvbmUKK2hhcyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgTGludXgga2VybmVsIGtub3dzIGFib3V0IHRoZSBlbmNyeXB0aW9uIHdpdGggdGhhdAorbnVtYmVyLCBwcm9iYWJseSBieSBwYXRjaGluZyB0aGUga2VybmVsLiBTdGFuZGFyZCBudW1iZXJzIHRoYXQgYXJlCithbHdheXMgcHJlc2VudCBhcmUgMCAobm8gZW5jcnlwdGlvbikgYW5kIDEgKFhPUiBlbmNyeXB0aW9uKS4KK1doZW4gdGhlIGNyeXB0b2xvb3AgbW9kdWxlIGlzIGxvYWRlZCAob3IgY29tcGlsZWQgaW4pLCBpdCB1c2VzIG51bWJlciAxOC4KK1RoaXMgY3J5cHRvbG9vcCBtb2R1bGUgd2lsbCB0YWtlIHRoZSBuYW1lIG9mIGFuIGFyYml0cmFyeSBlbmNyeXB0aW9uIHR5cGUKK2FuZCBmaW5kIHRoZSBtb2R1bGUgdGhhdCBrbm93cyBob3cgdG8gcGVyZm9ybSB0aGF0IGVuY3J5cHRpb24uCisuU0ggT1BUSU9OUworLklQICJcZkJcLWEsIFwtXC1hbGxcZlAiCitzaG93IHN0YXR1cyBvZiBhbGwgbG9vcCBkZXZpY2VzCisuSVAgIlxmQlwtYywgXC1cLXNldC1jYXBhY2l0eVxmUCBcZklsb29wZGV2XGZQCitmb3JjZSBsb29wIGRyaXZlciB0byByZXJlYWQgc2l6ZSBvZiB0aGUgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb29wIGRldmljZQorLklQICJcZkJcLWQsIFwtXC1kZXRhY2hcZlAgXGZJbG9vcGRldlxmUC4uLiIKK2RldGFjaCB0aGUgZmlsZSBvciBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9vcCBkZXZpY2UocykKKy5JUCAiXGZCXC1lLCBcLUUsIFwtXC1lbmNyeXB0aW9uIFxmSWVuY3J5cHRpb25fdHlwZVxmUCIKK2VuYWJsZSBkYXRhIGVuY3J5cHRpb24gd2l0aCBzcGVjaWZpZWQgbmFtZSBvciBudW1iZXIKKy5JUCAiXGZCXC1mLCBcLVwtZmluZFxmUCIKK2ZpbmQgdGhlIGZpcnN0IHVudXNlZCBsb29wIGRldmljZS4gSWYgYQorLkkgZmlsZQorYXJndW1lbnQgaXMgcHJlc2VudCwgdXNlIHRoaXMgZGV2aWNlLiBPdGhlcndpc2UsIHByaW50IGl0cyBuYW1lCisuSVAgIlxmQlwtaCwgXC1cLWhlbHBcZlAiCitwcmludCBoZWxwCisuSVAgIlxmQlwtaiwgXC1cLWFzc29jaWF0ZWQgXGZJZmlsZVxmUCIKK3Nob3cgc3RhdHVzIG9mIGFsbCBsb29wIGRldmljZXMgYXNzb2NpYXRlZCB3aXRoIGdpdmVuCisuSSBmaWxlCisuSVAgIlxmQlwtbywgXC1cLW9mZnNldCBcZklvZmZzZXRcZlAiCit0aGUgZGF0YSBzdGFydCBpcyBtb3ZlZCBcZklvZmZzZXRcZlAgYnl0ZXMgaW50byB0aGUgc3BlY2lmaWVkIGZpbGUgb3IKK2RldmljZQorLklQICJcZkJcLVwtc2l6ZWxpbWl0IFxmSWxpbWl0XGZQIgordGhlIGRhdGEgZW5kIGlzIHNldCB0byBubyBtb3JlIHRoYW4gXGZJc2l6ZWxpbWl0XGZQIGJ5dGVzIGFmdGVyIHRoZSBkYXRhIHN0YXJ0CisuSVAgIlxmQlwtcCwgXC1cLXBhc3MtZmQgXGZJbnVtXGZQIgorcmVhZCB0aGUgcGFzc3BocmFzZSBmcm9tIGZpbGUgZGVzY3JpcHRvciB3aXRoIG51bWJlcgorLkkgbnVtCitpbnN0ZWFkIG9mIGZyb20gdGhlIHRlcm1pbmFsCisuSVAgIlxmQlwtciwgXC1cLXJlYWQtb25seVxmUCIKK3NldHVwIHJlYWQtb25seSBsb29wIGRldmljZQorLklQICJcZkJcLVwtc2hvd1xmUCIKK3ByaW50IGRldmljZSBuYW1lIGlmIHRoZQorLkkgLWYKK29wdGlvbiBhbmQgYQorLkkgZmlsZQorYXJndW1lbnQgYXJlIHByZXNlbnQuCisKK1RoZSBzaG9ydCBmb3JtIG9mIHRoaXMgb3B0aW9uIChcZkJcLXNcZlApIGlzIGRlcHJlY2F0ZWQuICBUaGlzIHNob3J0IGZvcm0gY291bGQKK2JlIGluIGNvbGxpc2lvbiB3aXRoIExvb3AtQUVTIGltcGxlbWVudGF0aW9uIHdoZXJlIHRoZSBzYW1lIG9wdGlvbiBpcyB1c2VkIGZvcgorXGZCXC1cLXNpemVsaW1pdFxmUC4KKy5JUCAiXGZCXC12LCBcLVwtdmVyYm9zZVxmUCIKK3ZlcmJvc2UgbW9kZQorCisuU0ggUkVUVVJOIFZBTFVFCisuQiBsb3NldHVwCityZXR1cm5zIDAgb24gc3VjY2Vzcywgbm9uemVybyBvbiBmYWlsdXJlLiBXaGVuCisuQiBsb3NldHVwCitkaXNwbGF5cyB0aGUgc3RhdHVzIG9mIGEgbG9vcCBkZXZpY2UsIGl0IHJldHVybnMgMSBpZiB0aGUgZGV2aWNlCitpcyBub3QgY29uZmlndXJlZCBhbmQgMiBpZiBhbiBlcnJvciBvY2N1cnJlZCB3aGljaCBwcmV2ZW50ZWQKKy5CIGxvc2V0dXAKK2Zyb20gZGV0ZXJtaW5pbmcgdGhlIHN0YXR1cyBvZiB0aGUgZGV2aWNlLgorCisuU0ggRklMRVMKKy5uZgorL2Rldi9sb29wMCwgL2Rldi9sb29wMSwgLi4uICAgbG9vcCBkZXZpY2VzIChtYWpvcj03KQorLmZpCisuU0ggRVhBTVBMRQorSWYgeW91IGFyZSB1c2luZyB0aGUgbG9hZGFibGUgbW9kdWxlIHlvdSBtdXN0IGhhdmUgdGhlIG1vZHVsZSBsb2FkZWQKK2ZpcnN0IHdpdGggdGhlIGNvbW1hbmQKKy5JUAorIyBtb2Rwcm9iZSBsb29wCisuTFAKK01heWJlIGFsc28gZW5jcnlwdGlvbiBtb2R1bGVzIGFyZSBuZWVkZWQuCisuSVAKKyMgbW9kcHJvYmUgZGVzCisjIG1vZHByb2JlIGNyeXB0b2xvb3AKKy5MUAorVGhlIGZvbGxvd2luZyBjb21tYW5kcyBjYW4gYmUgdXNlZCBhcyBhbiBleGFtcGxlIG9mIHVzaW5nIHRoZSBsb29wIGRldmljZS4KKy5uZgorLklQCisjIGRkIGlmPS9kZXYvemVybyBvZj0vZmlsZSBicz0xayBjb3VudD0xMDAKKyMgbG9zZXR1cCAtZSBkZXMgL2Rldi9sb29wMCAvZmlsZQorUGFzc3dvcmQ6CitJbml0ICh1cCB0byAxNiBoZXggZGlnaXRzKToKKyMgbWtmcyAtdCBleHQyIC9kZXYvbG9vcDAgMTAwCisjIG1vdW50IC10IGV4dDIgL2Rldi9sb29wMCAvbW50CisgLi4uCisjIHVtb3VudCAvZGV2L2xvb3AwCisjIGxvc2V0dXAgLWQgL2Rldi9sb29wMAorLmZpCisuTFAKK0lmIHlvdSBhcmUgdXNpbmcgdGhlIGxvYWRhYmxlIG1vZHVsZSB5b3UgbWF5IHJlbW92ZSB0aGUgbW9kdWxlIHdpdGgKK3RoZSBjb21tYW5kCisuSVAKKyMgcm1tb2QgbG9vcAorLkxQCisuZmkKKy5TSCBSRVNUUklDVElPTgorREVTIGVuY3J5cHRpb24gaXMgcGFpbmZ1bGx5IHNsb3cuIE9uIHRoZSBvdGhlciBoYW5kLCBYT1IgaXMgdGVycmlibHkgd2Vhay4KKworQ3J5cHRvbG9vcCBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGRtLWNyeXB0LiBGb3IgbW9yZSBkZXRhaWxzIHNlZQorLkJSIGNyeXB0c2V0dXAgKDgpLgorLlNIIEFWQUlMQUJJTElUWQorVGhlIGxvc2V0dXAgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisuXCIgLlNIIEFVVEhPUlMKKy5cIiAubmYKKy5cIiBPcmlnaW5hbCB2ZXJzaW9uOiBUaGVvZG9yZSBUcydvIDx0eXRzb0BhdGhlbmEubWl0LmVkdT4KKy5cIiBPcmlnaW5hbCBERVMgYnk6IEVyaWMgWW91bmcgPGVheUBwc3ljaC5wc3kudXEub3ouYXU+CisuXCIgLmZpCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9tb3VudC44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbW91bnQuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2VkYjVjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbW91bnQuOApAQCAtMCwwICsxLDI3MDEgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwNCBBbmRyaWVzIEJyb3V3ZXIKKy5cIgorLlwiIFRoaXMgcGFnZSBpcyBzb21ld2hhdCBkZXJpdmVkIGZyb20gYSBwYWdlIHRoYXQgd2FzCisuXCIgKGMpIDE5ODAsIDE5ODksIDE5OTEgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorLlwiIGFuZCBoYWQgYmVlbiBoZWF2aWx5IG1vZGlmaWVkIGJ5IFJpayBGYWl0aCBhbmQgbXlzZWxmLgorLlwiIChQcm9iYWJseSBubyBCU0QgdGV4dCByZW1haW5zLikKKy5cIiBGcmFnbWVudHMgb2YgdGV4dCB3ZXJlIHdyaXR0ZW4gYnkgV2VybmVyIEFsbWVzYmVyZ2VyLCBSZW15IENhcmQsCisuXCIgU3RlcGhlbiBUd2VlZGllIGFuZCBFcmljIFlvdW5nZGFsZS4KKy5cIgorLlwiIFRoaXMgaXMgZnJlZSBkb2N1bWVudGF0aW9uOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKy5cIiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworLlwiIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisuXCIgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisuXCIKKy5cIiBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UncyByZWZlcmVuY2VzIHRvICJvYmplY3QgY29kZSIKKy5cIiBhbmQgImV4ZWN1dGFibGVzIiBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgdGhlIG91dHB1dCBvZiBhbnkKKy5cIiBkb2N1bWVudCBmb3JtYXR0aW5nIG9yIHR5cGVzZXR0aW5nIHN5c3RlbSwgaW5jbHVkaW5nCisuXCIgaW50ZXJtZWRpYXRlIGFuZCBwcmludGVkIG91dHB1dC4KKy5cIgorLlwiIFRoaXMgbWFudWFsIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisuXCIgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy5cIiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisuXCIgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy5cIgorLlwiIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworLlwiIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIG1hbnVhbDsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQorLlwiIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwKKy5cIiBVU0EuCisuXCIKKy5cIiA5NjA3MDUsIGFlYjogdmVyc2lvbiBmb3IgbW91bnQtMi43ZworLlwiIDk3MDExNCwgYWViOiB4aWFmcyBhbmQgZXh0IGFyZSBkZWFkOyByb21mcyBpcyBuZXcKKy5cIiA5NzA2MjMsIGFlYjogLUYgb3B0aW9uCisuXCIgOTcwOTE0LCByZWc6IC1zIG9wdGlvbgorLlwiIDk4MTExMSwgSy5HYXJsb2ZmOiAvZXRjL2ZpbGVzeXN0ZW1zCisuXCIgOTkwMTExLCBhZWI6IGRvY3VtZW50ZWQgL3NiaW4vbW91bnQuc21iZnMKKy5cIiA5OTA3MzAsIFlhbm4gRHJvbmVhdWQgPGxjaEBtdWx0aW1hbmlhLmNvbT46IHVwZGF0ZWQgcGFnZQorLlwiIDk5MTIxNCwgRWxyb25kIDxFbHJvbmRAV3VuZGVyLU5ldHQub3JnPjogYWRkZWQgc29tZSBkb2NzIG9uIGRldnB0cworLlwiIDAxMDcxNCwgTWljaGFlbCBLLiBKb2huc29uIDxqb2huc29ubUByZWRoYXQuY29tPiBhZGRlZCAtTworLlwiIDAxMDcyNSwgTmlraXRhIERhbmlsb3YgPE5pa2l0YURhbmlsb3ZAWWFob28uQ09NPjogcmVpc2VyZnMgb3B0aW9ucworLlwiIDAxMTEyNCwgS2FybCBFaWNod2FsZGVyIDxrZUBnbnUuZnJhbmtlbi5kZT46IHRtcGZzIG9wdGlvbnMKKy5cIgorLlRIIE1PVU5UIDggIjIwMDQtMTItMTYiICJMaW51eCAyLjYiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK21vdW50IFwtIG1vdW50IGEgZmlsZXN5c3RlbQorLlNIIFNZTk9QU0lTCisuQiBtb3VudAorLlJCIFsgXC1saFYgXQorLkxQCisuQkkgIm1vdW50IFwtYQorLlJCIFsgXC1mRm5yc3Z3IF0KKy5SQiBbIFwtdAorLklSIHZmc3R5cGUgXQorLlJCIFsgXC1PCisuSVIgb3B0bGlzdCBdCisuTFAKKy5CIG1vdW50CisuUkIgWyBcLWZucnN2dyBdCisuUkIgWyBcLW8KKy5JUiBvcHRpb24gWyBcZkIsXGZQb3B0aW9uIF0uLi5dCisuSVIgZGV2aWNlIHwgZGlyCisuTFAKKy5CIG1vdW50CisuUkIgWyBcLWZucnN2dyBdCisuUkIgWyBcLXQKKy5JQiB2ZnN0eXBlIF0KKy5SQiBbIFwtbworLklSIG9wdGlvbnMgXQorLkkgZGV2aWNlIGRpcgorLlNIIERFU0NSSVBUSU9OCitBbGwgZmlsZXMgYWNjZXNzaWJsZSBpbiBhIFVuaXggc3lzdGVtIGFyZSBhcnJhbmdlZCBpbiBvbmUgYmlnCit0cmVlLCB0aGUgZmlsZSBoaWVyYXJjaHksIHJvb3RlZCBhdAorLkJSIC8gLgorVGhlc2UgZmlsZXMgY2FuIGJlIHNwcmVhZCBvdXQgb3ZlciBzZXZlcmFsIGRldmljZXMuIFRoZQorLkIgbW91bnQKK2NvbW1hbmQgc2VydmVzIHRvIGF0dGFjaCB0aGUgZmlsZXN5c3RlbSBmb3VuZCBvbiBzb21lIGRldmljZQordG8gdGhlIGJpZyBmaWxlIHRyZWUuIENvbnZlcnNlbHksIHRoZQorLkJSIHVtb3VudCAoOCkKK2NvbW1hbmQgd2lsbCBkZXRhY2ggaXQgYWdhaW4uCisKK1RoZSBzdGFuZGFyZCBmb3JtIG9mIHRoZQorLkIgbW91bnQKK2NvbW1hbmQsIGlzCisuUlMKKworLmJyCisuQkkgIm1vdW50IFwtdCIgIiB0eXBlIGRldmljZSBkaXIiCisuYnIKKworLlJFCitUaGlzIHRlbGxzIHRoZSBrZXJuZWwgdG8gYXR0YWNoIHRoZSBmaWxlc3lzdGVtIGZvdW5kIG9uCisuSSBkZXZpY2UKKyh3aGljaCBpcyBvZiB0eXBlCisuSVIgdHlwZSApCithdCB0aGUgZGlyZWN0b3J5CisuSVIgZGlyIC4KK1RoZSBwcmV2aW91cyBjb250ZW50cyAoaWYgYW55KSBhbmQgb3duZXIgYW5kIG1vZGUgb2YKKy5JIGRpcgorYmVjb21lIGludmlzaWJsZSwgYW5kIGFzIGxvbmcgYXMgdGhpcyBmaWxlc3lzdGVtIHJlbWFpbnMgbW91bnRlZCwKK3RoZSBwYXRobmFtZQorLkkgZGlyCityZWZlcnMgdG8gdGhlIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gb24KKy5JUiBkZXZpY2UgLgorCisuQiBUaGUgbGlzdGluZyBhbmQgaGVscC4KKy5SUworVGhyZWUgZm9ybXMgb2YgaW52b2NhdGlvbiBkbyBub3QgYWN0dWFsbHkgbW91bnQgYW55dGhpbmc6CisuVFAKKy5CICJtb3VudCBcLWgiCitwcmludHMgYSBoZWxwIG1lc3NhZ2UKKy5UUAorLkIgIm1vdW50IFwtViIKK3ByaW50cyBhIHZlcnNpb24gc3RyaW5nCisuVFAKKy5CUiAibW91bnQgIiBbIC1sICJdIFsiICItdCBcZkl0eXBlXGZQIiBdCitsaXN0cyBhbGwgbW91bnRlZCBmaWxlc3lzdGVtcyAob2YgdHlwZQorLklSIHR5cGUgKS4KK1RoZSBvcHRpb24gXC1sIGFkZHMgdGhlIGxhYmVscyBpbiB0aGlzIGxpc3RpbmcuCitTZWUgYmVsb3cuCisuUkUKKworLkIgVGhlIGRldmljZSBpbmRpY2F0aW9uLgorLlJTCitNb3N0IGRldmljZXMgYXJlIGluZGljYXRlZCBieSBhIGZpbGUgbmFtZSAob2YgYSBibG9jayBzcGVjaWFsIGRldmljZSksIGxpa2UKKy5JUiAvZGV2L3NkYTEgLAorYnV0IHRoZXJlIGFyZSBvdGhlciBwb3NzaWJpbGl0aWVzLiBGb3IgZXhhbXBsZSwgaW4gdGhlIGNhc2Ugb2YgYW4gTkZTIG1vdW50LAorLkkgZGV2aWNlCittYXkgbG9vayBsaWtlCisuSVIga251dGguY3dpLm5sOi9kaXIgLgorSXQgaXMgcG9zc2libGUgdG8gaW5kaWNhdGUgYSBibG9jayBzcGVjaWFsIGRldmljZSB1c2luZyBpdHMKK3ZvbHVtZQorLkIgTEFCRUwKK29yCisuQiBVVUlECisoc2VlIHRoZSBcLUwgYW5kIFwtVSBvcHRpb25zIGJlbG93KS4KKworVGhlIHJlY29tbWVuZGVkIHNldHVwIGlzIHRvIHVzZSBMQUJFTD08bGFiZWw+IG9yIFVVSUQ9PHV1aWQ+IHRhZ3MgcmF0aGVyIHRoYW4KKy5CIC9kZXYvZGlzay9ieS17bGFiZWwsdXVpZH0KK3VkZXYgc3ltbGlua3MgaW4gdGhlIC9ldGMvZnN0YWIgZmlsZS4gVGhlIHRhZ3MgYXJlCittb3JlIHJlYWRhYmxlLCByb2J1c3QgYW5kIHBvcnRhYmxlLiBUaGUgbW91bnQoOCkgY29tbWFuZCBpbnRlcm5hbGx5IHVzZXMgdWRldgorc3ltbGlua3MsIHNvIHVzZSB0aGUgc3ltbGlua3MgaW4gL2V0Yy9mc3RhYiBpcyBub3QgYWR2YW50YWdlIG92ZXIgTEFCRUw9L1VVSUQ9LgorRm9yIG1vcmUgZGV0YWlscyBzZWUgbGliYmxraWQoMykuCisKK1RoZQorLkkgcHJvYworZmlsZXN5c3RlbSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lhbCBkZXZpY2UsIGFuZCB3aGVuCittb3VudGluZyBpdCwgYW4gYXJiaXRyYXJ5IGtleXdvcmQsIHN1Y2ggYXMKKy5JIHByb2MKK2NhbiBiZSB1c2VkIGluc3RlYWQgb2YgYSBkZXZpY2Ugc3BlY2lmaWNhdGlvbi4KKyhUaGUgY3VzdG9tYXJ5IGNob2ljZQorLkkgbm9uZQoraXMgbGVzcyBmb3J0dW5hdGU6IHRoZSBlcnJvciBtZXNzYWdlIGBub25lIGJ1c3knIGZyb20KKy5CIHVtb3VudAorY2FuIGJlIGNvbmZ1c2luZy4pCisuUkUKKworLkIgVGhlIC9ldGMvZnN0YWIsIC9ldGMvbXRhYiBhbmQgL3Byb2MvbW91bnRzIGZpbGVzLgorLlJTCitUaGUgZmlsZQorLkkgL2V0Yy9mc3RhYgorKHNlZQorLkJSIGZzdGFiICg1KSksCittYXkgY29udGFpbiBsaW5lcyBkZXNjcmliaW5nIHdoYXQgZGV2aWNlcyBhcmUgdXN1YWxseQorbW91bnRlZCB3aGVyZSwgdXNpbmcgd2hpY2ggb3B0aW9ucy4KKy5MUAorVGhlIGNvbW1hbmQKKy5SUworLnNwCisuQiBtb3VudCBcLWEKKy5SQiBbIFwtdAorLklSIHR5cGUgXQorLlJCIFsgXC1PCisuSVIgb3B0bGlzdCBdCisuc3AKKy5SRQorKHVzdWFsbHkgZ2l2ZW4gaW4gYSBib290c2NyaXB0KSBjYXVzZXMgYWxsIGZpbGVzeXN0ZW1zIG1lbnRpb25lZCBpbgorLkkgZnN0YWIKKyhvZiB0aGUgcHJvcGVyIHR5cGUgYW5kL29yIGhhdmluZyBvciBub3QgaGF2aW5nIHRoZSBwcm9wZXIgb3B0aW9ucykKK3RvIGJlIG1vdW50ZWQgYXMgaW5kaWNhdGVkLCBleGNlcHQgZm9yIHRob3NlIHdob3NlIGxpbmUgY29udGFpbnMgdGhlCisuQiBub2F1dG8KK2tleXdvcmQuIEFkZGluZyB0aGUKKy5CIFwtRgorb3B0aW9uIHdpbGwgbWFrZSBtb3VudCBmb3JrLCBzbyB0aGF0IHRoZQorZmlsZXN5c3RlbXMgYXJlIG1vdW50ZWQgc2ltdWx0YW5lb3VzbHkuCisuTFAKK1doZW4gbW91bnRpbmcgYSBmaWxlc3lzdGVtIG1lbnRpb25lZCBpbgorLklSIGZzdGFiCitvcgorLklSIG10YWIgLAoraXQgc3VmZmljZXMgdG8gZ2l2ZSBvbmx5IHRoZSBkZXZpY2UsIG9yIG9ubHkgdGhlIG1vdW50IHBvaW50LgorCisKK1RoZSBwcm9ncmFtcworLkIgbW91bnQKK2FuZAorLkIgdW1vdW50CittYWludGFpbiBhIGxpc3Qgb2YgY3VycmVudGx5IG1vdW50ZWQgZmlsZXN5c3RlbXMgaW4gdGhlIGZpbGUKKy5JUiAvZXRjL210YWIgLgorSWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiB0bworLkJSIG1vdW50ICwKK3RoaXMgbGlzdCBpcyBwcmludGVkLgorCitUaGUKKy5CIG1vdW50Citwcm9ncmFtIGRvZXMgbm90IHJlYWQgdGhlCisuSSAvZXRjL2ZzdGFiCitmaWxlIGlmCisuSSBkZXZpY2UKKyhvciBMQUJFTC9VVUlEKSBhbmQKKy5JIGRpcgorYXJlIHNwZWNpZmllZC4gRm9yIGV4YW1wbGU6CisuUlMKKy5zcAorLkIgIm1vdW50IC9kZXYvZm9vIC9kaXIiCisuc3AKKy5SRQorSWYgeW91IHdhbnQgdG8gb3ZlcnJpZGUgbW91bnQgb3B0aW9ucyBmcm9tCisuSSAvZXRjL2ZzdGFiCit5b3UgaGF2ZSB0byB1c2U6CisuUlMKKy5zcAorLkIgIm1vdW50IGRldmljZXxkaXIgLW8gPG9wdGlvbnM+IgorLnNwCisuUkUKK2FuZCB0aGVuIHRoZSBtb3VudCBvcHRpb25zIGZyb20gY29tbWFuZCBsaW5lIHdpbGwgYmUgYXBwZW5kZWQgdG8KK3RoZSBsaXN0IG9mIG9wdGlvbnMgZnJvbQorLklSIC9ldGMvZnN0YWIgLgorVGhlIHVzdWFsIGJlaGF2aW91ciBpcyB0aGF0IHRoZSBsYXN0IG9wdGlvbiB3aW5zIGlmIHRoZXJlIGlzIG1vcmUgZHVwbGljYXRlZAorb3B0aW9ucy4KKworV2hlbiB0aGUKKy5JIHByb2MKK2ZpbGVzeXN0ZW0gaXMgbW91bnRlZCAoc2F5IGF0CisuSVIgL3Byb2MgKSwKK3RoZSBmaWxlcworLkkgL2V0Yy9tdGFiCithbmQKKy5JIC9wcm9jL21vdW50cworaGF2ZSB2ZXJ5IHNpbWlsYXIgY29udGVudHMuIFRoZSBmb3JtZXIgaGFzIHNvbWV3aGF0Cittb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBtb3VudCBvcHRpb25zIHVzZWQsCitidXQgaXMgbm90IG5lY2Vzc2FyaWx5IHVwLXRvLWRhdGUgKGNmLiB0aGUKKy5CIFwtbgorb3B0aW9uIGJlbG93KS4gSXQgaXMgcG9zc2libGUgdG8gcmVwbGFjZQorLkkgL2V0Yy9tdGFiCitieSBhIHN5bWJvbGljIGxpbmsgdG8KKy5JUiAvcHJvYy9tb3VudHMgLAorYW5kIGVzcGVjaWFsbHkgd2hlbiB5b3UgaGF2ZSB2ZXJ5IGxhcmdlIG51bWJlcnMgb2YgbW91bnRzCit0aGluZ3Mgd2lsbCBiZSBtdWNoIGZhc3RlciB3aXRoIHRoYXQgc3ltbGluaywKK2J1dCBzb21lIGluZm9ybWF0aW9uIGlzIGxvc3QgdGhhdCB3YXksIGFuZCBpbiBwYXJ0aWN1bGFyCit1c2luZyB0aGUgInVzZXIiIG9wdGlvbiB3aWxsIGZhaWwuCisuUkUKKworLkIgVGhlIG5vbi1zdXBlcnVzZXIgbW91bnRzLgorLlJTCitOb3JtYWxseSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBtb3VudCBmaWxlc3lzdGVtcy4KK0hvd2V2ZXIsIHdoZW4KKy5JIGZzdGFiCitjb250YWlucyB0aGUKKy5CIHVzZXIKK29wdGlvbiBvbiBhIGxpbmUsIGFueWJvZHkgY2FuIG1vdW50IHRoZSBjb3JyZXNwb25kaW5nIHN5c3RlbS4KKy5MUAorVGh1cywgZ2l2ZW4gYSBsaW5lCisuUlMKKy5zcAorLkIgIi9kZXYvY2Ryb20gIC9jZCAgaXNvOTY2MCAgcm8sdXNlcixub2F1dG8sdW5oaWRlIgorLnNwCisuUkUKK2FueSB1c2VyIGNhbiBtb3VudCB0aGUgaXNvOTY2MCBmaWxlc3lzdGVtIGZvdW5kIG9uIGhpcyBDRFJPTQordXNpbmcgdGhlIGNvbW1hbmQKKy5SUworLnNwCisuQiAibW91bnQgL2Rldi9jZHJvbSIKKy5zcAorLlJFCitvcgorLlJTCisuc3AKKy5CICJtb3VudCAvY2QiCisuc3AKKy5SRQorRm9yIG1vcmUgZGV0YWlscywgc2VlCisuQlIgZnN0YWIgKDUpLgorT25seSB0aGUgdXNlciB0aGF0IG1vdW50ZWQgYSBmaWxlc3lzdGVtIGNhbiB1bm1vdW50IGl0IGFnYWluLgorSWYgYW55IHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gdW5tb3VudCwgdGhlbiB1c2UKKy5CIHVzZXJzCitpbnN0ZWFkIG9mCisuQiB1c2VyCitpbiB0aGUKKy5JIGZzdGFiCitsaW5lLgorVGhlCisuQiBvd25lcgorb3B0aW9uIGlzIHNpbWlsYXIgdG8gdGhlCisuQiB1c2VyCitvcHRpb24sIHdpdGggdGhlIHJlc3RyaWN0aW9uIHRoYXQgdGhlIHVzZXIgbXVzdCBiZSB0aGUgb3duZXIKK29mIHRoZSBzcGVjaWFsIGZpbGUuIFRoaXMgbWF5IGJlIHVzZWZ1bCBlLmcuIGZvcgorLkkgL2Rldi9mZAoraWYgYSBsb2dpbiBzY3JpcHQgbWFrZXMgdGhlIGNvbnNvbGUgdXNlciBvd25lciBvZiB0aGlzIGRldmljZS4KK1RoZQorLkIgZ3JvdXAKK29wdGlvbiBpcyBzaW1pbGFyLCB3aXRoIHRoZSByZXN0cmljdGlvbiB0aGF0IHRoZSB1c2VyIG11c3QgYmUKK21lbWJlciBvZiB0aGUgZ3JvdXAgb2YgdGhlIHNwZWNpYWwgZmlsZS4KKy5SRQorCisKKy5CIFRoZSBiaW5kIG1vdW50cy4KKy5SUworLlwiIEluIGZhY3Qgc2luY2UgMi4zLjk5LiBBdCBmaXJzdCB0aGUgc3ludGF4IHdhcyBtb3VudCAtdCBiaW5kLgorU2luY2UgTGludXggMi40LjAgaXQgaXMgcG9zc2libGUgdG8gcmVtb3VudCBwYXJ0IG9mIHRoZQorZmlsZSBoaWVyYXJjaHkgc29tZXdoZXJlIGVsc2UuIFRoZSBjYWxsIGlzCisuUlMKKy5icgorLkIgbW91bnQgLS1iaW5kCisuSSBvbGRkaXIgbmV3ZGlyCisuUkUKK29yIHNob3J0b3B0aW9uCisuUlMKKy5icgorLkIgbW91bnQgLUIKKy5JIG9sZGRpciBuZXdkaXIKKy5SRQorb3IgZnN0YWIgZW50cnkgaXM6CisuUlMKKy5icgorLkkgL29sZGRpcgorLkkgL25ld2RpcgorLkIgIG5vbmUgIGJpbmQKKy5SRQorCitBZnRlciB0aGlzIGNhbGwgdGhlIHNhbWUgY29udGVudHMgaXMgYWNjZXNzaWJsZSBpbiB0d28gcGxhY2VzLgorT25lIGNhbiBhbHNvIHJlbW91bnQgYSBzaW5nbGUgZmlsZSAob24gYSBzaW5nbGUgZmlsZSkuCisKK1RoaXMgY2FsbCBhdHRhY2hlcyBvbmx5IChwYXJ0IG9mKSBhIHNpbmdsZSBmaWxlc3lzdGVtLCBub3QgcG9zc2libGUKK3N1Ym1vdW50cy4gVGhlIGVudGlyZSBmaWxlIGhpZXJhcmNoeSBpbmNsdWRpbmcgc3VibW91bnRzIGlzIGF0dGFjaGVkCithIHNlY29uZCBwbGFjZSB1c2luZworLlJTCisuYnIKKy5CIG1vdW50IC0tcmJpbmQKKy5JIG9sZGRpciBuZXdkaXIKKy5SRQorb3Igc2hvcnRvcHRpb24KKy5SUworLmJyCisuQiBtb3VudCAtUgorLkkgb2xkZGlyIG5ld2RpcgorLlJFCisuXCIgYXZhaWxhYmxlIHNpbmNlIExpbnV4IDIuNC4xMS4KKworTm90ZSB0aGF0IHRoZSBmaWxlc3lzdGVtIG1vdW50IG9wdGlvbnMgd2lsbCByZW1haW4gdGhlIHNhbWUgYXMgdGhvc2UKK29uIHRoZSBvcmlnaW5hbCBtb3VudCBwb2ludCwgYW5kIGNhbm5vdCBiZSBjaGFuZ2VkIGJ5IHBhc3NpbmcgdGhlIC1vCitvcHRpb24gYWxvbmcgd2l0aCAtLWJpbmQvLS1yYmluZC4gVGhlIG1vdW50IG9wdGlvbnMgY2FuIGJlCitjaGFuZ2VkIGJ5IGEgc2VwYXJhdGUgcmVtb3VudCBjb21tYW5kLCBmb3IgZXhhbXBsZToKKworLlJTCisuYnIKKy5CIG1vdW50IC0tYmluZAorLkkgb2xkZGlyIG5ld2RpcgorLmJyCisuQiBtb3VudCAtbyByZW1vdW50LHJvCisuSSBuZXdkaXIKKy5SRQorCisuUkUKKworLkIgVGhlIG1vdmUgb3BlcmF0aW9uLgorLlJTCitTaW5jZSBMaW51eCAyLjUuMSBpdCBpcyBwb3NzaWJsZSB0byBhdG9taWNhbGx5IG1vdmUgYSBtb3VudGVkIHRyZWUKK3RvIGFub3RoZXIgcGxhY2UuIFRoZSBjYWxsIGlzCisuUlMKKy5icgorLkIgbW91bnQgLS1tb3ZlCisuSSBvbGRkaXIgbmV3ZGlyCisuUkUKK29yIHNob3J0b3B0aW9uCisuUlMKKy5icgorLkIgbW91bnQgLU0KKy5JIG9sZGRpciBuZXdkaXIKKy5SRQorVGhpcyB3aWxsIGNhdXNlIHRoZSBjb250ZW50cyB3aGljaCBwcmV2aW91c2x5IGFwcGVhcmVkIHVuZGVyIG9sZGRpciB0byBiZQorYWNjZXNzZWQgdW5kZXIgbmV3ZGlyLiAgVGhlIHBoeXNpY2FsIGxvY2F0aW9uIG9mIHRoZSBmaWxlcyBpcyBub3QgY2hhbmdlZC4KKy5SRQorCisuQiBUaGUgc2hhcmVkIHN1YnRyZWVzIG9wZXJhdGlvbnMuCisuUlMKK1NpbmNlIExpbnV4IDIuNi4xNSBpdCBpcyBwb3NzaWJsZSB0byBtYXJrIGEgbW91bnQgYW5kIGl0cyBzdWJtb3VudHMgYXMgc2hhcmVkLAorcHJpdmF0ZSwgc2xhdmUgb3IgdW5iaW5kYWJsZS4gQSBzaGFyZWQgbW91bnQgcHJvdmlkZXMgYWJpbGl0eSB0byBjcmVhdGUgbWlycm9ycworb2YgdGhhdCBtb3VudCBzdWNoIHRoYXQgbW91bnRzIGFuZCB1bW91bnRzIHdpdGhpbiBhbnkgb2YgdGhlIG1pcnJvcnMgcHJvcGFnYXRlCit0byB0aGUgb3RoZXIgbWlycm9yLiBBIHNsYXZlIG1vdW50IHJlY2VpdmVzIHByb3BhZ2F0aW9uIGZyb20gaXRzIG1hc3RlciwgYnV0Cithbnkgbm90IHZpY2UtdmVyc2EuICBBIHByaXZhdGUgbW91bnQgY2FycmllcyBubyBwcm9wYWdhdGlvbiBhYmlsaXRpZXMuICBBCit1bmJpbmRhYmxlIG1vdW50IGlzIGEgcHJpdmF0ZSBtb3VudCB3aGljaCBjYW5ub3QgY2xvbmVkIHRocm91Z2ggYSBiaW5kCitvcGVyYXRpb24uIERldGFpbGVkIHNlbWFudGljcyBpcyBkb2N1bWVudGVkIGluIERvY3VtZW50YXRpb24vc2hhcmVkc3VidHJlZS50eHQKK2ZpbGUgaW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZS4KKworLlJTCisubmYKKy5CSSAibW91bnQgLS1tYWtlLXNoYXJlZCAiIG1vdW50cG9pbnQKKy5CSSAibW91bnQgLS1tYWtlLXNsYXZlICIgbW91bnRwb2ludAorLkJJICJtb3VudCAtLW1ha2UtcHJpdmF0ZSAiIG1vdW50cG9pbnQKKy5CSSAibW91bnQgLS1tYWtlLXVuYmluZGFibGUgIiBtb3VudHBvaW50CisuZmkKKy5SRQorCitUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGFsbG93cyBvbmUgdG8gcmVjdXJzaXZlbHkgY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUKK21vdW50cyB1bmRlciBhIGdpdmVuIG1vdW50cG9pbnQuCisKKy5SUworLm5mCisuQkkgIm1vdW50IC0tbWFrZS1yc2hhcmVkICIgbW91bnRwb2ludAorLkJJICJtb3VudCAtLW1ha2UtcnNsYXZlICIgbW91bnRwb2ludAorLkJJICJtb3VudCAtLW1ha2UtcnByaXZhdGUgIiBtb3VudHBvaW50CisuQkkgIm1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSAiIG1vdW50cG9pbnQKKy5maQorLlJFCisuUkUKKworLlNIIENPTU1BTkQgTElORSBPUFRJT05TCitUaGUgZnVsbCBzZXQgb2YgbW91bnQgb3B0aW9ucyB1c2VkIGJ5IGFuIGludm9jYXRpb24gb2YKKy5CIG1vdW50CitpcyBkZXRlcm1pbmVkIGJ5IGZpcnN0IGV4dHJhY3RpbmcgdGhlCittb3VudCBvcHRpb25zIGZvciB0aGUgZmlsZXN5c3RlbSBmcm9tIHRoZQorLkkgZnN0YWIKK3RhYmxlLCB0aGVuIGFwcGx5aW5nIGFueSBvcHRpb25zIHNwZWNpZmllZCBieSB0aGUKKy5CIFwtbworYXJndW1lbnQsIGFuZCBmaW5hbGx5IGFwcGx5aW5nIGEKKy5CUiBcLXIgIiBvciAiIFwtdworb3B0aW9uLCB3aGVuIHByZXNlbnQuCisKK0NvbW1hbmQgbGluZSBvcHRpb25zIGF2YWlsYWJsZSBmb3IgdGhlCisuQiBtb3VudAorY29tbWFuZDoKKy5JUCAiXGZCXC1WLCBcLVwtdmVyc2lvblxmUCIKK091dHB1dCB2ZXJzaW9uLgorLklQICJcZkJcLWgsIFwtXC1oZWxwXGZQIgorUHJpbnQgYSBoZWxwIG1lc3NhZ2UuCisuSVAgIlxmQlwtdiwgXC1cLXZlcmJvc2VcZlAiCitWZXJib3NlIG1vZGUuCisuSVAgIlxmQlwtYSwgXC1cLWFsbFxmUCIKK01vdW50IGFsbCBmaWxlc3lzdGVtcyAob2YgdGhlIGdpdmVuIHR5cGVzKSBtZW50aW9uZWQgaW4KKy5JUiBmc3RhYiAuCisuSVAgIlxmQlwtRiwgXC1cLWZvcmtcZlAiCisoVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoCisuQlIgXC1hIC4pCitGb3JrIG9mZiBhIG5ldyBpbmNhcm5hdGlvbiBvZiBtb3VudCBmb3IgZWFjaCBkZXZpY2UuCitUaGlzIHdpbGwgZG8gdGhlIG1vdW50cyBvbiBkaWZmZXJlbnQgZGV2aWNlcyBvciBkaWZmZXJlbnQgTkZTIHNlcnZlcnMKK2luIHBhcmFsbGVsLgorVGhpcyBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IGl0IGlzIGZhc3RlcjsgYWxzbyBORlMgdGltZW91dHMgZ28gaW4KK3BhcmFsbGVsLiBBIGRpc2FkdmFudGFnZSBpcyB0aGF0IHRoZSBtb3VudHMgYXJlIGRvbmUgaW4gdW5kZWZpbmVkIG9yZGVyLgorVGh1cywgeW91IGNhbm5vdCB1c2UgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gbW91bnQgYm90aAorLkkgL3VzcgorYW5kCisuSVIgL3Vzci9zcG9vbCAuCisuSVAgIlxmQlwtZiwgXC1cLWZha2VcZlAiCitDYXVzZXMgZXZlcnl0aGluZyB0byBiZSBkb25lIGV4Y2VwdCBmb3IgdGhlIGFjdHVhbCBzeXN0ZW0gY2FsbDsgaWYgaXQncyBub3QKK29idmlvdXMsIHRoaXMgYGBmYWtlcycnIG1vdW50aW5nIHRoZSBmaWxlc3lzdGVtLiAgVGhpcyBvcHRpb24gaXMgdXNlZnVsIGluCitjb25qdW5jdGlvbiB3aXRoIHRoZQorLkIgXC12CitmbGFnIHRvIGRldGVybWluZSB3aGF0IHRoZQorLkIgbW91bnQKK2NvbW1hbmQgaXMgdHJ5aW5nIHRvIGRvLiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGFkZCBlbnRyaWVzIGZvciBkZXZpY2VzCit0aGF0IHdlcmUgbW91bnRlZCBlYXJsaWVyIHdpdGggdGhlIC1uIG9wdGlvbi4gVGhlIC1mIG9wdGlvbiBjaGVja3MgZm9yCitleGlzdGluZyByZWNvcmQgaW4gL2V0Yy9tdGFiIGFuZCBmYWlscyB3aGVuIHRoZSByZWNvcmQgYWxyZWFkeQorZXhpc3RzICh3aXRoIHJlZ3VsYXIgbm9uLWZha2UgbW91bnQsIHRoaXMgY2hlY2sgaXMgZG9uZSBieSBrZXJuZWwpLgorLklQICJcZkJcLWksIFwtXC1pbnRlcm5hbFwtb25seVxmUCIKK0Rvbid0IGNhbGwgdGhlIC9zYmluL21vdW50LjxmaWxlc3lzdGVtPiBoZWxwZXIgZXZlbiBpZiBpdCBleGlzdHMuCisuSVAgIlxmQlwtbFxmUCIKK0FkZCB0aGUgbGFiZWxzIGluIHRoZSBtb3VudCBvdXRwdXQuIE1vdW50IG11c3QgaGF2ZQorcGVybWlzc2lvbiB0byByZWFkIHRoZSBkaXNrIGRldmljZSAoZS5nLiBiZSBzdWlkIHJvb3QpIGZvciB0aGlzIHRvIHdvcmsuCitPbmUgY2FuIHNldCBzdWNoIGEgbGFiZWwgZm9yIGV4dDIsIGV4dDMgb3IgZXh0NCB1c2luZyB0aGUKKy5CUiBlMmxhYmVsICg4KQordXRpbGl0eSwgb3IgZm9yIFhGUyB1c2luZworLkJSIHhmc19hZG1pbiAoOCksCitvciBmb3IgcmVpc2VyZnMgdXNpbmcKKy5CUiByZWlzZXJmc3R1bmUgKDgpLgorLklQICJcZkJcLW4sIFwtXC1ub1wtbXRhYlxmUCIKK01vdW50IHdpdGhvdXQgd3JpdGluZyBpbgorLklSIC9ldGMvbXRhYiAuCitUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgZXhhbXBsZSB3aGVuCisuSSAvZXRjCitpcyBvbiBhIHJlYWQtb25seSBmaWxlc3lzdGVtLgorLklQICJcZkJcLVwtbm9cLWNhbm9uaWNhbGl6ZVxmUCIKK0Rvbid0IGNhbm9uaWNhbGl6ZSBwYXRocy4gVGhlIG1vdW50IGNvbW1hbmQgY2Fub25pY2FsaXplcyBhbGwgcGF0aHMgCisoZnJvbSBjb21tYW5kIGxpbmUgb3IgZnN0YWIpIGFuZCBzdG9yZXMgY2Fub25pY2FsaXplZCBwYXRocyB0byB0aGUgCisuSVIgL2V0Yy9tdGFiCitmaWxlLiBUaGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIHRoZQorLkIgXC1mCitmbGFnIGZvciBhbHJlYWR5IGNhbm9uaWNhbGl6ZWQgYWJzb2x1dCBwYXRocy4KKy5JUCAiXGZCXC1wLCBcLVwtcGFzc1wtZmQgXGZJbnVtXGZQIgorSW4gY2FzZSBvZiBhIGxvb3AgbW91bnQgd2l0aCBlbmNyeXB0aW9uLCByZWFkIHRoZSBwYXNzcGhyYXNlIGZyb20KK2ZpbGUgZGVzY3JpcHRvcgorLkkgbnVtCitpbnN0ZWFkIG9mIGZyb20gdGhlIHRlcm1pbmFsLgorLklQICJcZkJcLXNcZlAiCitUb2xlcmF0ZSBzbG9wcHkgbW91bnQgb3B0aW9ucyByYXRoZXIgdGhhbiBmYWlsaW5nLiBUaGlzIHdpbGwgaWdub3JlCittb3VudCBvcHRpb25zIG5vdCBzdXBwb3J0ZWQgYnkgYSBmaWxlc3lzdGVtIHR5cGUuIE5vdCBhbGwgZmlsZXN5c3RlbXMKK3N1cHBvcnQgdGhpcyBvcHRpb24uIFRoaXMgb3B0aW9uIGV4aXN0cyBmb3Igc3VwcG9ydCBvZiB0aGUgTGludXgKK2F1dG9mc1wtYmFzZWQgYXV0b21vdW50ZXIuCisuSVAgIlxmQlwtciwgXC1cLXJlYWRcLW9ubHlcZlAiCitNb3VudCB0aGUgZmlsZXN5c3RlbSByZWFkLW9ubHkuIEEgc3lub255bSBpcworLkJSICJcLW8gcm8iIC4KKworTm90ZSB0aGF0LCBkZXBlbmRpbmcgb24gdGhlIGZpbGVzeXN0ZW0gdHlwZSwgc3RhdGUgYW5kIGtlcm5lbCBiZWhhdmlvciwgdGhlCitzeXN0ZW0gbWF5IHN0aWxsIHdyaXRlIHRvIHRoZSBkZXZpY2UuIEZvciBleGFtcGxlLCBFeHQzIG9yIGV4dDQgd2lsbCByZXBsYXkgaXRzCitqb3VybmFsIGlmIHRoZSBmaWxlc3lzdGVtIGlzIGRpcnR5LiBUbyBwcmV2ZW50IHRoaXMga2luZCBvZiB3cml0ZSBhY2Nlc3MsIHlvdQorbWF5IHdhbnQgdG8gbW91bnQgZXh0MyBvciBleHQ0IGZpbGVzeXN0ZW0gd2l0aCAicm8sbm9sb2FkIiBtb3VudCBvcHRpb25zIG9yCitzZXQgdGhlIGJsb2NrIGRldmljZSB0byByZWFkLW9ubHkgbW9kZSwgc2VlIGNvbW1hbmQKKy5CUiBibG9ja2RldiAoOCkuCisuSVAgIlxmQlwtdywgXC1cLXJ3XGZQIgorTW91bnQgdGhlIGZpbGVzeXN0ZW0gcmVhZC93cml0ZS4gVGhpcyBpcyB0aGUgZGVmYXVsdC4gQSBzeW5vbnltIGlzCisuQlIgIlwtbyBydyIgLgorLklQICJcZkJcLUwgXGZJbGFiZWxcZlAiCitNb3VudCB0aGUgcGFydGl0aW9uIHRoYXQgaGFzIHRoZSBzcGVjaWZpZWQKKy5JUiBsYWJlbCAuCisuSVAgIlxmQlwtVSBcZkl1dWlkXGZQIgorTW91bnQgdGhlIHBhcnRpdGlvbiB0aGF0IGhhcyB0aGUgc3BlY2lmaWVkCisuSVIgdXVpZCAuCitUaGVzZSB0d28gb3B0aW9ucyByZXF1aXJlIHRoZSBmaWxlCisuSSAvcHJvYy9wYXJ0aXRpb25zCisocHJlc2VudCBzaW5jZSBMaW51eCAyLjEuMTE2KSB0byBleGlzdC4KKy5JUCAiXGZCXC10LCBcLVwtdHlwZXMgXGZJdmZzdHlwZVxmUCIKK1RoZSBhcmd1bWVudCBmb2xsb3dpbmcgdGhlCisuQiBcLXQKK2lzIHVzZWQgdG8gaW5kaWNhdGUgdGhlIGZpbGVzeXN0ZW0gdHlwZS4gIFRoZSBmaWxlc3lzdGVtIHR5cGVzIHdoaWNoIGFyZQorY3VycmVudGx5IHN1cHBvcnRlZCBpbmNsdWRlOgorLklSIGFkZnMgLAorLklSIGFmZnMgLAorLklSIGF1dG9mcyAsCisuSVIgY2lmcyAsCisuSVIgY29kYSAsCisuSVIgY29oZXJlbnQgLAorLklSIGNyYW1mcyAsCisuSVIgZGVidWdmcyAsCisuSVIgZGV2cHRzICwKKy5JUiBlZnMgLAorLklSIGV4dCAsCisuSVIgZXh0MiAsCisuSVIgZXh0MyAsCisuSVIgZXh0NCAsCisuSVIgaGZzICwKKy5JUiBoZnNwbHVzICwKKy5JUiBocGZzICwKKy5JUiBpc285NjYwICwKKy5JUiBqZnMgLAorLklSIG1pbml4ICwKKy5JUiBtc2RvcyAsCisuSVIgbmNwZnMgLAorLklSIG5mcyAsCisuSVIgbmZzNCAsCisuSVIgbnRmcyAsCisuSVIgcHJvYyAsCisuSVIgcW54NCAsCisuSVIgcmFtZnMgLAorLklSIHJlaXNlcmZzICwKKy5JUiByb21mcyAsCisuSVIgc3F1YXNoZnMgLAorLklSIHNtYmZzICwKKy5JUiBzeXN2ICwKKy5JUiB0bXBmcyAsCisuSVIgdWJpZnMgLAorLklSIHVkZiAsCisuSVIgdWZzICwKKy5JUiB1bXNkb3MgLAorLklSIHVzYmZzICwKKy5JUiB2ZmF0ICwKKy5JUiB4ZW5peCAsCisuSVIgeGZzICwKKy5JUiB4aWFmcyAuCitOb3RlIHRoYXQgY29oZXJlbnQsIHN5c3YgYW5kIHhlbml4IGFyZSBlcXVpdmFsZW50IGFuZCB0aGF0CisuSSB4ZW5peAorYW5kCisuSSBjb2hlcmVudAord2lsbCBiZSByZW1vdmVkIGF0IHNvbWUgcG9pbnQgaW4gdGhlIGZ1dHVyZSBcKGVtIHVzZQorLkkgc3lzdgoraW5zdGVhZC4gU2luY2Uga2VybmVsIHZlcnNpb24gMi4xLjIxIHRoZSB0eXBlcworLkkgZXh0CithbmQKKy5JIHhpYWZzCitkbyBub3QgZXhpc3QgYW55bW9yZS4gRWFybGllciwKKy5JIHVzYmZzCit3YXMga25vd24gYXMKKy5JUiB1c2JkZXZmcyAuCitOb3RlLCB0aGUgcmVhbCBsaXN0IG9mIGFsbCBzdXBwb3J0ZWQgZmlsZXN5c3RlbXMgZGVwZW5kcyBvbiB5b3VyCitrZXJuZWwuCisKK0ZvciBtb3N0IHR5cGVzIGFsbCB0aGUKKy5CIG1vdW50Citwcm9ncmFtIGhhcyB0byBkbyBpcyBpc3N1ZSBhIHNpbXBsZQorLklSIG1vdW50ICgyKQorc3lzdGVtIGNhbGwsIGFuZCBubyBkZXRhaWxlZCBrbm93bGVkZ2Ugb2YgdGhlIGZpbGVzeXN0ZW0gdHlwZSBpcyByZXF1aXJlZC4KK0ZvciBhIGZldyB0eXBlcyBob3dldmVyIChsaWtlIG5mcywgbmZzNCwgY2lmcywgc21iZnMsIG5jcGZzKSBhZCBob2MgY29kZSBpcworbmVjZXNzYXJ5LiBUaGUgbmZzLCBuZnM0LCBjaWZzLCBzbWJmcywgYW5kIG5jcGZzIGZpbGVzeXN0ZW1zCitoYXZlIGEgc2VwYXJhdGUgbW91bnQgcHJvZ3JhbS4gSW4gb3JkZXIgdG8gbWFrZSBpdCBwb3NzaWJsZSB0bwordHJlYXQgYWxsIHR5cGVzIGluIGEgdW5pZm9ybSB3YXksIG1vdW50IHdpbGwgZXhlY3V0ZSB0aGUgcHJvZ3JhbQorLkJJIC9zYmluL21vdW50LiBUWVBFCisoaWYgdGhhdCBleGlzdHMpIHdoZW4gY2FsbGVkIHdpdGggdHlwZQorLklSIFRZUEUgLgorU2luY2UgdmFyaW91cyB2ZXJzaW9ucyBvZiB0aGUKKy5CIHNtYm1vdW50Citwcm9ncmFtIGhhdmUgZGlmZmVyZW50IGNhbGxpbmcgY29udmVudGlvbnMsCisuQiAvc2Jpbi9tb3VudC5zbWJmcworbWF5IGhhdmUgdG8gYmUgYSBzaGVsbCBzY3JpcHQgdGhhdCBzZXRzIHVwIHRoZSBkZXNpcmVkIGNhbGwuCisKK0lmIG5vCisuQiBcLXQKK29wdGlvbiBpcyBnaXZlbiwgb3IgaWYgdGhlCisuQiBhdXRvCit0eXBlIGlzIHNwZWNpZmllZCwgbW91bnQgd2lsbCB0cnkgdG8gZ3Vlc3MgdGhlIGRlc2lyZWQgdHlwZS4KK01vdW50IHVzZXMgdGhlIGJsa2lkIG9yIHZvbHVtZV9pZCBsaWJyYXJ5IGZvciBndWVzc2luZyB0aGUgZmlsZXN5c3RlbQordHlwZTsgaWYgdGhhdCBkb2VzIG5vdCB0dXJuIHVwIGFueXRoaW5nIHRoYXQgbG9va3MgZmFtaWxpYXIsCittb3VudCB3aWxsIHRyeSB0byByZWFkIHRoZSBmaWxlCisuSVIgL2V0Yy9maWxlc3lzdGVtcyAsCitvciwgaWYgdGhhdCBkb2VzIG5vdCBleGlzdCwKKy5JUiAvcHJvYy9maWxlc3lzdGVtcyAuCitBbGwgb2YgdGhlIGZpbGVzeXN0ZW0gdHlwZXMgbGlzdGVkIHRoZXJlIHdpbGwgYmUgdHJpZWQsCitleGNlcHQgZm9yIHRob3NlIHRoYXQgYXJlIGxhYmVsZWQgIm5vZGV2IiAoZS5nLiwKKy5JUiBkZXZwdHMgLAorLkkgcHJvYworYW5kCisuSVIgbmZzICkuCitJZgorLkkgL2V0Yy9maWxlc3lzdGVtcworZW5kcyBpbiBhIGxpbmUgd2l0aCBhIHNpbmdsZSAqIG9ubHksIG1vdW50IHdpbGwgcmVhZAorLkkgL3Byb2MvZmlsZXN5c3RlbXMKK2FmdGVyd2FyZHMuCisKK1RoZQorLkIgYXV0bwordHlwZSBtYXkgYmUgdXNlZnVsIGZvciB1c2VyLW1vdW50ZWQgZmxvcHBpZXMuCitDcmVhdGluZyBhIGZpbGUKKy5JIC9ldGMvZmlsZXN5c3RlbXMKK2NhbiBiZSB1c2VmdWwgdG8gY2hhbmdlIHRoZSBwcm9iZSBvcmRlciAoZS5nLiwgdG8gdHJ5IHZmYXQgYmVmb3JlIG1zZG9zCitvciBleHQzIGJlZm9yZSBleHQyKSBvciBpZiB5b3UgdXNlIGEga2VybmVsIG1vZHVsZSBhdXRvbG9hZGVyLgorV2FybmluZzogdGhlIHByb2JpbmcgdXNlcyBhIGhldXJpc3RpYyAodGhlIHByZXNlbmNlIG9mIGFwcHJvcHJpYXRlIGBtYWdpYycpLAorYW5kIGNvdWxkIHJlY29nbml6ZSB0aGUgd3JvbmcgZmlsZXN5c3RlbSB0eXBlLCBwb3NzaWJseSB3aXRoIGNhdGFzdHJvcGhpYworY29uc2VxdWVuY2VzLiBJZiB5b3VyIGRhdGEgaXMgdmFsdWFibGUsIGRvbid0IGFzaworLkIgbW91bnQKK3RvIGd1ZXNzLgorCitNb3JlIHRoYW4gb25lIHR5cGUgbWF5IGJlIHNwZWNpZmllZCBpbiBhIGNvbW1hIHNlcGFyYXRlZAorbGlzdC4gIFRoZSBsaXN0IG9mIGZpbGVzeXN0ZW0gdHlwZXMgY2FuIGJlIHByZWZpeGVkIHdpdGgKKy5CIG5vCit0byBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGVzIG9uIHdoaWNoIG5vIGFjdGlvbiBzaG91bGQgYmUgdGFrZW4uCisoVGhpcyBjYW4gYmUgbWVhbmluZ2Z1bCB3aXRoIHRoZQorLkIgXC1hCitvcHRpb24uKSBGb3IgZXhhbXBsZSwgdGhlIGNvbW1hbmQ6CisuUlMKKy5SUworLnNwCisuQiAibW91bnQgXC1hIFwtdCBub21zZG9zLGV4dCIKKy5zcAorLlJFCittb3VudHMgYWxsIGZpbGVzeXN0ZW1zIGV4Y2VwdCB0aG9zZSBvZiB0eXBlCisuSSBtc2RvcworYW5kCisuSVIgZXh0IC4KKy5SRQorLklQICJcZkJcLU8sIFwtXC10ZXN0LW9wdHMgXGZJb3B0c1xmUCIKK1VzZWQgaW4gY29uanVuY3Rpb24gd2l0aAorLkJSIFwtYSAsCit0byBsaW1pdCB0aGUgc2V0IG9mIGZpbGVzeXN0ZW1zIHRvIHdoaWNoIHRoZQorLkIgXC1hCitpcyBhcHBsaWVkLiAgTGlrZQorLkIgXC10CitpbiB0aGlzIHJlZ2FyZCBleGNlcHQgdGhhdCBpdCBpcyB1c2VsZXNzIGV4Y2VwdCBpbiB0aGUgY29udGV4dCBvZgorLkJSIFwtYSAuCitGb3IgZXhhbXBsZSwgdGhlIGNvbW1hbmQ6CisuUlMKKy5SUworLnNwCisuQiAibW91bnQgXC1hIFwtTyBub19uZXRkZXYiCisuc3AKKy5SRQorbW91bnRzIGFsbCBmaWxlc3lzdGVtcyBleGNlcHQgdGhvc2Ugd2hpY2ggaGF2ZSB0aGUgb3B0aW9uCisuSSBfbmV0ZGV2CitzcGVjaWZpZWQgaW4gdGhlIG9wdGlvbnMgZmllbGQgaW4gdGhlCisuSSAvZXRjL2ZzdGFiCitmaWxlLgorCitJdCBpcyBkaWZmZXJlbnQgZnJvbQorLkIgXC10CitpbiB0aGF0IGVhY2ggb3B0aW9uIGlzIG1hdGNoZWQgZXhhY3RseTsgYSBsZWFkaW5nCisuQiBubworYXQgdGhlIGJlZ2lubmluZyBvZiBvbmUgb3B0aW9uIGRvZXMgbm90IG5lZ2F0ZSB0aGUgcmVzdC4KKworVGhlCisuQiBcLXQKK2FuZAorLkIgXC1PCitvcHRpb25zIGFyZSBjdW11bGF0aXZlIGluIGVmZmVjdDsgdGhhdCBpcywgdGhlIGNvbW1hbmQKKy5SUworLnNwCisuQiAibW91bnQgXC1hIFwtdCBleHQyIFwtTyBfbmV0ZGV2IgorLnNwCisuUkUKK21vdW50cyBhbGwgZXh0MiBmaWxlc3lzdGVtcyB3aXRoIHRoZSBfbmV0ZGV2IG9wdGlvbiwgbm90IGFsbCBmaWxlc3lzdGVtcwordGhhdCBhcmUgZWl0aGVyIGV4dDIgb3IgaGF2ZSB0aGUgX25ldGRldiBvcHRpb24gc3BlY2lmaWVkLgorLlJFCisuSVAgIlxmQlwtbywgXC1cLW9wdGlvbnMgXGZJb3B0c1xmUCIKK09wdGlvbnMgYXJlIHNwZWNpZmllZCB3aXRoIGEKKy5CIFwtbworZmxhZyBmb2xsb3dlZCBieSBhIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2Ygb3B0aW9ucy4gRm9yIGV4YW1wbGU6CisuUlMKKy5SUworLnNwCisuQiAibW91bnQgTEFCRUw9bXlkaXNrIFwtbyBub2F0aW1lLG5vdXNlciIKKy5zcAorLlJFCisKK0ZvciBtb3JlIGRldGFpbHMsIHNlZQorLkIgRklMRVNZU1RFTSBJTkRFUEVOREVOVCBNT1VOVCBPUFRJT05TCithbmQKKy5CIEZJTEVTWVNURU0gU1BFQ0lGSUMgTU9VTlQgT1BUSU9OUworc2VjdGlvbnMuCisuUkUKKy5JUCAiXGZCXC1CLCBcLVwtYmluZFxmUCIKK1JlbW91bnQgYSBzdWJ0cmVlIHNvbWV3aGVyZSBlbHNlIChzbyB0aGF0IGl0cyBjb250ZW50cyBhcmUgYXZhaWxhYmxlCitpbiBib3RoIHBsYWNlcykuIFNlZSBhYm92ZS4KKy5JUCAiXGZCXC1SLCBcLVwtcmJpbmRcZlAiCitSZW1vdW50IGEgc3VidHJlZSBhbmQgYWxsIHBvc3NpYmxlIHN1Ym1vdW50cyBzb21ld2hlcmUgZWxzZSAoc28gdGhhdCBpdHMKK2NvbnRlbnRzIGFyZSBhdmFpbGFibGUgaW4gYm90aCBwbGFjZXMpLiBTZWUgYWJvdmUuCisuSVAgIlxmQlwtTSwgXC1cLW1vdmVcZlAiCitNb3ZlIGEgc3VidHJlZSB0byBzb21lIG90aGVyIHBsYWNlLiBTZWUgYWJvdmUuCisKKy5TSCBGSUxFU1lTVEVNIElOREVQRU5ERU5UIE1PVU5UIE9QVElPTlMKK1NvbWUgb2YgdGhlc2Ugb3B0aW9ucyBhcmUgb25seSB1c2VmdWwgd2hlbiB0aGV5IGFwcGVhciBpbiB0aGUKKy5JIC9ldGMvZnN0YWIKK2ZpbGUuCisKK1NvbWUgb2YgdGhlc2Ugb3B0aW9ucyBjb3VsZCBiZSBlbmFibGVkIG9yIGRpc2FibGVkIGJ5IGRlZmF1bHQKK2luIHRoZSBzeXN0ZW0ga2VybmVsLiBUbyBjaGVjayB0aGUgY3VycmVudCBzZXR0aW5nIHNlZSB0aGUgb3B0aW9ucworaW4gL3Byb2MvbW91bnRzLgorCitUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXBwbHkgdG8gYW55IGZpbGVzeXN0ZW0gdGhhdCBpcyBiZWluZworbW91bnRlZCAoYnV0IG5vdCBldmVyeSBmaWxlc3lzdGVtIGFjdHVhbGx5IGhvbm9ycyB0aGVtIC0gZS5nLiwgdGhlCisuQiBzeW5jCitvcHRpb24gdG9kYXkgaGFzIGVmZmVjdCBvbmx5IGZvciBleHQyLCBleHQzLCBmYXQsIHZmYXQgYW5kIHVmcyk6CisKKy5UUAorLkIgYXN5bmMKK0FsbCBJL08gdG8gdGhlIGZpbGVzeXN0ZW0gc2hvdWxkIGJlIGRvbmUgYXN5bmNocm9ub3VzbHkuIChTZWUgYWxzbyB0aGUKKy5CIHN5bmMKK29wdGlvbi4pCisuVFAKKy5CIGF0aW1lCitVcGRhdGUgaW5vZGUgYWNjZXNzIHRpbWUgZm9yIGVhY2ggYWNjZXNzLiBTZWUgYWxzbyB0aGUKKy5CIHN0cmljdGF0aW1lCittb3VudCBvcHRpb24uCisuVFAKKy5CIG5vYXRpbWUKK0RvIG5vdCB1cGRhdGUgaW5vZGUgYWNjZXNzIHRpbWVzIG9uIHRoaXMgZmlsZXN5c3RlbSAoZS5nLCBmb3IgZmFzdGVyCithY2Nlc3Mgb24gdGhlIG5ld3Mgc3Bvb2wgdG8gc3BlZWQgdXAgbmV3cyBzZXJ2ZXJzKS4KKy5UUAorLkIgYXV0bworQ2FuIGJlIG1vdW50ZWQgd2l0aCB0aGUKKy5CIFwtYQorb3B0aW9uLgorLlRQCisuQiBub2F1dG8KK0NhbiBvbmx5IGJlIG1vdW50ZWQgZXhwbGljaXRseSAoaS5lLiwgdGhlCisuQiBcLWEKK29wdGlvbiB3aWxsIG5vdCBjYXVzZSB0aGUgZmlsZXN5c3RlbSB0byBiZSBtb3VudGVkKS4KKy5UUAorXGZCY29udGV4dD1cZlBcZkljb250ZXh0XGZQLCBcZkJmc2NvbnRleHQ9XGZQXGZJY29udGV4dFxmUCwgXGZCZGVmY29udGV4dD1cZlBcZkljb250ZXh0XGZQIGFuZCBcZkJyb290Y29udGV4dD1cZlBcZkljb250ZXh0XGZQCitUaGUKKy5CUiBjb250ZXh0PQorb3B0aW9uIGlzIHVzZWZ1bCB3aGVuIG1vdW50aW5nIGZpbGVzeXN0ZW1zIHRoYXQgZG8gbm90IHN1cHBvcnQKK2V4dGVuZGVkIGF0dHJpYnV0ZXMsIHN1Y2ggYXMgYSBmbG9wcHkgb3IgaGFyZCBkaXNrIGZvcm1hdHRlZCB3aXRoIFZGQVQsIG9yCitzeXN0ZW1zIHRoYXQgYXJlIG5vdCBub3JtYWxseSBydW5uaW5nIHVuZGVyIFNFTGludXgsIHN1Y2ggYXMgYW4gZXh0MyBmb3JtYXR0ZWQKK2Rpc2sgZnJvbSBhIG5vbi1TRUxpbnV4IHdvcmtzdGF0aW9uLiBZb3UgY2FuIGFsc28gdXNlCisuQlIgY29udGV4dD0KK29uIGZpbGVzeXN0ZW1zIHlvdSBkbyBub3QgdHJ1c3QsIHN1Y2ggYXMgYSBmbG9wcHkuIEl0IGFsc28gaGVscHMgaW4gY29tcGF0aWJpbGl0eSB3aXRoCit4YXR0ci1zdXBwb3J0aW5nIGZpbGVzeXN0ZW1zIG9uIGVhcmxpZXIgMi40Ljx4PiBrZXJuZWwgdmVyc2lvbnMuIEV2ZW4gd2hlcmUKK3hhdHRycyBhcmUgc3VwcG9ydGVkLCB5b3UgY2FuIHNhdmUgdGltZSBub3QgaGF2aW5nIHRvIGxhYmVsIGV2ZXJ5IGZpbGUgYnkKK2Fzc2lnbmluZyB0aGUgZW50aXJlIGRpc2sgb25lIHNlY3VyaXR5IGNvbnRleHQuCisKK0EgY29tbW9ubHkgdXNlZCBvcHRpb24gZm9yIHJlbW92YWJsZSBtZWRpYSBpcworLkJSIGNvbnRleHQ9c3lzdGVtX3U6b2JqZWN0X3I6cmVtb3ZhYmxlX3QgLgorCitUd28gb3RoZXIgb3B0aW9ucyBhcmUKKy5CUiBmc2NvbnRleHQ9CithbmQKKy5CUiBkZWZjb250ZXh0PSAsCitib3RoIG9mIHdoaWNoIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgb2YgdGhlIGNvbnRleHQgb3B0aW9uLiBUaGlzIG1lYW5zIHlvdQorY2FuIHVzZSBmc2NvbnRleHQgYW5kIGRlZmNvbnRleHQgd2l0aCBlYWNoIG90aGVyLCBidXQgbmVpdGhlciBjYW4gYmUgdXNlZCB3aXRoCitjb250ZXh0LgorCitUaGUKKy5CUiBmc2NvbnRleHQ9CitvcHRpb24gd29ya3MgZm9yIGFsbCBmaWxlc3lzdGVtcywgcmVnYXJkbGVzcyBvZiB0aGVpciB4YXR0cgorc3VwcG9ydC4gVGhlIGZzY29udGV4dCBvcHRpb24gc2V0cyB0aGUgb3ZlcmFyY2hpbmcgZmlsZXN5c3RlbSBsYWJlbCB0byBhCitzcGVjaWZpYyBzZWN1cml0eSBjb250ZXh0LiBUaGlzIGZpbGVzeXN0ZW0gbGFiZWwgaXMgc2VwYXJhdGUgZnJvbSB0aGUKK2luZGl2aWR1YWwgbGFiZWxzIG9uIHRoZSBmaWxlcy4gSXQgcmVwcmVzZW50cyB0aGUgZW50aXJlIGZpbGVzeXN0ZW0gZm9yCitjZXJ0YWluIGtpbmRzIG9mIHBlcm1pc3Npb24gY2hlY2tzLCBzdWNoIGFzIGR1cmluZyBtb3VudCBvciBmaWxlIGNyZWF0aW9uLgorSW5kaXZpZHVhbCBmaWxlIGxhYmVscyBhcmUgc3RpbGwgb2J0YWluZWQgZnJvbSB0aGUgeGF0dHJzIG9uIHRoZSBmaWxlcwordGhlbXNlbHZlcy4gVGhlIGNvbnRleHQgb3B0aW9uIGFjdHVhbGx5IHNldHMgdGhlIGFnZ3JlZ2F0ZSBjb250ZXh0IHRoYXQKK2ZzY29udGV4dCBwcm92aWRlcywgaW4gYWRkaXRpb24gdG8gc3VwcGx5aW5nIHRoZSBzYW1lIGxhYmVsIGZvciBpbmRpdmlkdWFsCitmaWxlcy4KKworWW91IGNhbiBzZXQgdGhlIGRlZmF1bHQgc2VjdXJpdHkgY29udGV4dCBmb3IgdW5sYWJlbGVkIGZpbGVzIHVzaW5nCisuQlIgZGVmY29udGV4dD0KK29wdGlvbi4gVGhpcyBvdmVycmlkZXMgdGhlIHZhbHVlIHNldCBmb3IgdW5sYWJlbGVkIGZpbGVzIGluIHRoZSBwb2xpY3kgYW5kIHJlcXVpcmVzIGEKK2ZpbGVzeXN0ZW0gdGhhdCBzdXBwb3J0cyB4YXR0ciBsYWJlbGluZy4KKworVGhlCisuQlIgcm9vdGNvbnRleHQ9CitvcHRpb24gYWxsb3dzIHlvdSB0byBleHBsaWNpdGx5IGxhYmVsIHRoZSByb290IGlub2RlIG9mIGEgRlMgYmVpbmcgbW91bnRlZAorYmVmb3JlIHRoYXQgRlMgb3IgaW5vZGUgYmVjYXVzZSB2aXNhYmxlIHRvIHVzZXJzcGFjZS4gVGhpcyB3YXMgZm91bmQgdG8gYmUKK3VzZWZ1bCBmb3IgdGhpbmdzIGxpa2Ugc3RhdGVsZXNzIGxpbnV4LgorCitGb3IgbW9yZSBkZXRhaWxzLCBzZWUKKy5CUiBzZWxpbnV4ICg4KQorCisuVFAKKy5CIGRlZmF1bHRzCitVc2UgZGVmYXVsdCBvcHRpb25zOgorLkJSIHJ3ICIsICIgc3VpZCAiLCAiIGRldiAiLCAiIGV4ZWMgIiwgIiBhdXRvICIsICIgbm91c2VyICIsIGFuZCAiIGFzeW5jLgorLlRQCisuQiBkZXYKK0ludGVycHJldCBjaGFyYWN0ZXIgb3IgYmxvY2sgc3BlY2lhbCBkZXZpY2VzIG9uIHRoZSBmaWxlc3lzdGVtLgorLlRQCisuQiBub2RldgorRG8gbm90IGludGVycHJldCBjaGFyYWN0ZXIgb3IgYmxvY2sgc3BlY2lhbCBkZXZpY2VzIG9uIHRoZSBmaWxlCitzeXN0ZW0uCisuVFAKKy5CIGRpcmF0aW1lCitVcGRhdGUgZGlyZWN0b3J5IGlub2RlIGFjY2VzcyB0aW1lcyBvbiB0aGlzIGZpbGVzeXN0ZW0uIFRoaXMgaXMgdGhlIGRlZmF1bHQuCisuVFAKKy5CIG5vZGlyYXRpbWUKK0RvIG5vdCB1cGRhdGUgZGlyZWN0b3J5IGlub2RlIGFjY2VzcyB0aW1lcyBvbiB0aGlzIGZpbGVzeXN0ZW0uCisuVFAKKy5CIGRpcnN5bmMKK0FsbCBkaXJlY3RvcnkgdXBkYXRlcyB3aXRoaW4gdGhlIGZpbGVzeXN0ZW0gc2hvdWxkIGJlIGRvbmUgc3luY2hyb25vdXNseS4KK1RoaXMgYWZmZWN0cyB0aGUgZm9sbG93aW5nIHN5c3RlbSBjYWxsczogY3JlYXQsIGxpbmssIHVubGluaywgc3ltbGluaywKK21rZGlyLCBybWRpciwgbWtub2QgYW5kIHJlbmFtZS4KKy5UUAorLkIgZXhlYworUGVybWl0IGV4ZWN1dGlvbiBvZiBiaW5hcmllcy4KKy5UUAorLkIgbm9leGVjCitEbyBub3QgYWxsb3cgZGlyZWN0IGV4ZWN1dGlvbiBvZiBhbnkgYmluYXJpZXMgb24gdGhlIG1vdW50ZWQgZmlsZXN5c3RlbS4KKyhVbnRpbCByZWNlbnRseSBpdCB3YXMgcG9zc2libGUgdG8gcnVuIGJpbmFyaWVzIGFueXdheSB1c2luZyBhIGNvbW1hbmQgbGlrZQorL2xpYi9sZCouc28gL21udC9iaW5hcnkuIFRoaXMgdHJpY2sgZmFpbHMgc2luY2UgTGludXggMi40LjI1IC8gMi42LjAuKQorLlRQCisuQiBncm91cAorQWxsb3cgYW4gb3JkaW5hcnkgKGkuZS4sIG5vbi1yb290KSB1c2VyIHRvIG1vdW50IHRoZSBmaWxlc3lzdGVtIGlmIG9uZQorb2YgaGlzIGdyb3VwcyBtYXRjaGVzIHRoZSBncm91cCBvZiB0aGUgZGV2aWNlLgorVGhpcyBvcHRpb24gaW1wbGllcyB0aGUgb3B0aW9ucworLkJSIG5vc3VpZCAiIGFuZCAiIG5vZGV2CisodW5sZXNzIG92ZXJyaWRkZW4gYnkgc3Vic2VxdWVudCBvcHRpb25zLCBhcyBpbiB0aGUgb3B0aW9uIGxpbmUKKy5CUiBncm91cCxkZXYsc3VpZCApLgorLlRQCisuQiBpdmVyc2lvbgorRXZlcnkgdGltZSB0aGUgaW5vZGUgaXMgbW9kaWZpZWQsIHRoZSBpX3ZlcnNpb24gZmllbGQgd2lsbCBiZSBpbmNyZW1lbnRlZC4KKy5UUAorLkIgbm9pdmVyc2lvbgorRG8gbm90IGluY3JlbWVudCB0aGUgaV92ZXJzaW9uIGlub2RlIGZpZWxkLgorLlRQCisuQiBtYW5kCitBbGxvdyBtYW5kYXRvcnkgbG9ja3Mgb24gdGhpcyBmaWxlc3lzdGVtLiBTZWUKKy5CUiBmY250bCAoMikuCisuVFAKKy5CIG5vbWFuZAorRG8gbm90IGFsbG93IG1hbmRhdG9yeSBsb2NrcyBvbiB0aGlzIGZpbGVzeXN0ZW0uCisuVFAKKy5CIF9uZXRkZXYKK1RoZSBmaWxlc3lzdGVtIHJlc2lkZXMgb24gYSBkZXZpY2UgdGhhdCByZXF1aXJlcyBuZXR3b3JrIGFjY2VzcworKHVzZWQgdG8gcHJldmVudCB0aGUgc3lzdGVtIGZyb20gYXR0ZW1wdGluZyB0byBtb3VudCB0aGVzZSBmaWxlc3lzdGVtcwordW50aWwgdGhlIG5ldHdvcmsgaGFzIGJlZW4gZW5hYmxlZCBvbiB0aGUgc3lzdGVtKS4KKy5UUAorLkIgbm9mYWlsCitEbyBub3QgcmVwb3J0IGVycm9ycyBmb3IgdGhpcyBkZXZpY2UgaWYgaXQgZG9lcyBub3QgZXhpc3QuCisuVFAKKy5CIHJlbGF0aW1lCitVcGRhdGUgaW5vZGUgYWNjZXNzIHRpbWVzIHJlbGF0aXZlIHRvIG1vZGlmeSBvciBjaGFuZ2UgdGltZS4gIEFjY2VzcwordGltZSBpcyBvbmx5IHVwZGF0ZWQgaWYgdGhlIHByZXZpb3VzIGFjY2VzcyB0aW1lIHdhcyBlYXJsaWVyIHRoYW4gdGhlCitjdXJyZW50IG1vZGlmeSBvciBjaGFuZ2UgdGltZS4gKFNpbWlsYXIgdG8gbm9hdGltZSwgYnV0IGRvZXNuJ3QgYnJlYWsKK211dHQgb3Igb3RoZXIgYXBwbGljYXRpb25zIHRoYXQgbmVlZCB0byBrbm93IGlmIGEgZmlsZSBoYXMgYmVlbiByZWFkCitzaW5jZSB0aGUgbGFzdCB0aW1lIGl0IHdhcyBtb2RpZmllZC4pCisuVFAKKy5CIG5vcmVsYXRpbWUKK0RvIG5vdCB1c2UKKy5CIHJlbGF0aW1lCitmZWF0dXJlLiBTZWUgYWxzbyB0aGUKKy5CIHN0cmljdGF0aW1lCittb3VudCBvcHRpb24uCisuVFAKKy5CIHN0cmljdGF0aW1lCitBbGxvd3MgdG8gZXhwbGljaXRseSByZXF1ZXN0aW5nIGZ1bGwgYXRpbWUgdXBkYXRlcy4gVGhpcyBtYWtlcyBpdAorcG9zc2libGUgZm9yIGtlcm5lbCB0byBkZWZhdWx0cyB0bworLkIgcmVsYXRpbWUKK29yCisuQiBub2F0aW1lCitidXQgc3RpbGwgYWxsb3cgdXNlcnNwYWNlIHRvIG92ZXJyaWRlIGl0LiBGb3IgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSBkZWZhdWx0CitzeXN0ZW0gbW91bnQgb3B0aW9ucyBzZWUgL3Byb2MvbW91bnRzLgorLlRQCisuQiBub3N0cmljdGF0aW1lCitVc2UgdGhlIGtlcm5lbCdzIGRlZmF1bHQgYmVoYXZpb3VyIGZvciBpbm9kZSBhY2Nlc3MgdGltZSB1cGRhdGVzLgorLlRQCisuQiBzdWlkCitBbGxvdyBzZXQtdXNlci1pZGVudGlmaWVyIG9yIHNldC1ncm91cC1pZGVudGlmaWVyIGJpdHMgdG8gdGFrZQorZWZmZWN0LgorLlRQCisuQiBub3N1aWQKK0RvIG5vdCBhbGxvdyBzZXQtdXNlci1pZGVudGlmaWVyIG9yIHNldC1ncm91cC1pZGVudGlmaWVyIGJpdHMgdG8gdGFrZQorZWZmZWN0LiAoVGhpcyBzZWVtcyBzYWZlLCBidXQgaXMgaW4gZmFjdCByYXRoZXIgdW5zYWZlIGlmIHlvdSBoYXZlCitzdWlkcGVybCgxKSBpbnN0YWxsZWQuKQorLlRQCisuQiBvd25lcgorQWxsb3cgYW4gb3JkaW5hcnkgKGkuZS4sIG5vbi1yb290KSB1c2VyIHRvIG1vdW50IHRoZSBmaWxlc3lzdGVtIGlmIGhlCitpcyB0aGUgb3duZXIgb2YgdGhlIGRldmljZS4KK1RoaXMgb3B0aW9uIGltcGxpZXMgdGhlIG9wdGlvbnMKKy5CUiBub3N1aWQgIiBhbmQgIiBub2RldgorKHVubGVzcyBvdmVycmlkZGVuIGJ5IHN1YnNlcXVlbnQgb3B0aW9ucywgYXMgaW4gdGhlIG9wdGlvbiBsaW5lCisuQlIgb3duZXIsZGV2LHN1aWQgKS4KKy5UUAorLkIgcmVtb3VudAorQXR0ZW1wdCB0byByZW1vdW50IGFuIGFscmVhZHktbW91bnRlZCBmaWxlc3lzdGVtLiAgVGhpcyBpcyBjb21tb25seQordXNlZCB0byBjaGFuZ2UgdGhlIG1vdW50IGZsYWdzIGZvciBhIGZpbGVzeXN0ZW0sIGVzcGVjaWFsbHkgdG8gbWFrZSBhCityZWFkb25seSBmaWxlc3lzdGVtIHdyaXRlYWJsZS4gSXQgZG9lcyBub3QgY2hhbmdlIGRldmljZSBvciBtb3VudCBwb2ludC4KKworVGhlIHJlbW91bnQgZnVuY3Rpb25hbGl0eSBmb2xsb3dzIHRoZSBzdGFuZGFyZCB3YXkgaG93IHRoZSBtb3VudCBjb21tYW5kIHdvcmtzCit3aXRoIG9wdGlvbnMgZnJvbSBmc3RhYi4gSXQgbWVhbnMgdGhlIG1vdW50IGNvbW1hbmQgZG9lc24ndCByZWFkIGZzdGFiIChvcgorbXRhYikgb25seSB3aGVuIGEKKy5JUiBkZXZpY2UKK2FuZAorLklSIGRpcgorYXJlIGZ1bGx5IHNwZWNpZmllZC4KKworLkJSICJtb3VudCAtbyByZW1vdW50LHJ3IC9kZXYvZm9vIC9kaXIiCisKK0FmdGVyIHRoaXMgY2FsbCBhbGwgb2xkIG1vdW50IG9wdGlvbnMgYXJlIHJlcGxhY2VkIGFuZCBhcmJpdHJhcnkgc3R1ZmYgZnJvbQorZnN0YWIgaXMgaWdub3JlZCwgZXhjZXB0IHRoZSBsb29wPSBvcHRpb24gd2hpY2ggaXMgaW50ZXJuYWxseSBnZW5lcmF0ZWQgYW5kCittYWludGFpbmVkIGJ5IHRoZSBtb3VudCBjb21tYW5kLgorCisuQlIgIm1vdW50IC1vIHJlbW91bnQscncgIC9kaXIiCisKK0FmdGVyIHRoaXMgY2FsbCBtb3VudCByZWFkcyBmc3RhYiAob3IgbXRhYikgYW5kIG1lcmdlcyB0aGVzZSBvcHRpb25zIHdpdGgKK29wdGlvbnMgZnJvbSBjb21tYW5kIGxpbmUgKAorLkIgLW8KKykuCisuVFAKKy5CIHJvCitNb3VudCB0aGUgZmlsZXN5c3RlbSByZWFkLW9ubHkuCisuVFAKKy5CIHJ3CitNb3VudCB0aGUgZmlsZXN5c3RlbSByZWFkLXdyaXRlLgorLlRQCisuQiBzeW5jCitBbGwgSS9PIHRvIHRoZSBmaWxlc3lzdGVtIHNob3VsZCBiZSBkb25lIHN5bmNocm9ub3VzbHkuIEluIGNhc2Ugb2YgbWVkaWEgd2l0aCBsaW1pdGVkIG51bWJlciBvZiB3cml0ZSBjeWNsZXMKKyhlLmcuIHNvbWUgZmxhc2ggZHJpdmVzKSAic3luYyIgbWF5IGNhdXNlIGxpZmUtY3ljbGUgc2hvcnRlbmluZy4KKy5UUAorLkIgdXNlcgorQWxsb3cgYW4gb3JkaW5hcnkgdXNlciB0byBtb3VudCB0aGUgZmlsZXN5c3RlbS4KK1RoZSBuYW1lIG9mIHRoZSBtb3VudGluZyB1c2VyIGlzIHdyaXR0ZW4gdG8gbXRhYiBzbyB0aGF0IGhlIGNhbiB1bm1vdW50Cit0aGUgZmlsZXN5c3RlbSBhZ2Fpbi4KK1RoaXMgb3B0aW9uIGltcGxpZXMgdGhlIG9wdGlvbnMKKy5CUiBub2V4ZWMgIiwgIiBub3N1aWQgIiwgYW5kICIgbm9kZXYKKyh1bmxlc3Mgb3ZlcnJpZGRlbiBieSBzdWJzZXF1ZW50IG9wdGlvbnMsIGFzIGluIHRoZSBvcHRpb24gbGluZQorLkJSIHVzZXIsZXhlYyxkZXYsc3VpZCApLgorLlRQCisuQiBub3VzZXIKK0ZvcmJpZCBhbiBvcmRpbmFyeSAoaS5lLiwgbm9uLXJvb3QpIHVzZXIgdG8gbW91bnQgdGhlIGZpbGVzeXN0ZW0uCitUaGlzIGlzIHRoZSBkZWZhdWx0LgorLlRQCisuQiB1c2VycworQWxsb3cgZXZlcnkgdXNlciB0byBtb3VudCBhbmQgdW5tb3VudCB0aGUgZmlsZXN5c3RlbS4KK1RoaXMgb3B0aW9uIGltcGxpZXMgdGhlIG9wdGlvbnMKKy5CUiBub2V4ZWMgIiwgIiBub3N1aWQgIiwgYW5kICIgbm9kZXYKKyh1bmxlc3Mgb3ZlcnJpZGRlbiBieSBzdWJzZXF1ZW50IG9wdGlvbnMsIGFzIGluIHRoZSBvcHRpb24gbGluZQorLkJSIHVzZXJzLGV4ZWMsZGV2LHN1aWQgKS4KKworLlNIICJGSUxFU1lTVEVNIFNQRUNJRklDIE1PVU5UIE9QVElPTlMiCitUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXBwbHkgb25seSB0byBjZXJ0YWluIGZpbGVzeXN0ZW1zLgorV2Ugc29ydCB0aGVtIGJ5IGZpbGVzeXN0ZW0uIFRoZXkgYWxsIGZvbGxvdyB0aGUKKy5CIFwtbworZmxhZy4KKworV2hhdCBvcHRpb25zIGFyZSBzdXBwb3J0ZWQgZGVwZW5kcyBhIGJpdCBvbiB0aGUgcnVubmluZyBrZXJuZWwuCitNb3JlIGluZm8gbWF5IGJlIGZvdW5kIGluIHRoZSBrZXJuZWwgc291cmNlIHN1YmRpcmVjdG9yeQorLklSIERvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMgLgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIGFkZnMiCisuVFAKK1xmQnVpZD1cZlBcZkl2YWx1ZVxmUCBhbmQgXGZCZ2lkPVxmUFxmSXZhbHVlXGZQCitTZXQgdGhlIG93bmVyIGFuZCBncm91cCBvZiB0aGUgZmlsZXMgaW4gdGhlIGZpbGVzeXN0ZW0gKGRlZmF1bHQ6IHVpZD1naWQ9MCkuCisuVFAKK1xmQm93bm1hc2s9XGZQXGZJdmFsdWVcZlAgYW5kIFxmQm90aG1hc2s9XGZQXGZJdmFsdWVcZlAKK1NldCB0aGUgcGVybWlzc2lvbiBtYXNrIGZvciBBREZTICdvd25lcicgcGVybWlzc2lvbnMgYW5kICdvdGhlcicgcGVybWlzc2lvbnMsCityZXNwZWN0aXZlbHkgKGRlZmF1bHQ6IDA3MDAgYW5kIDAwNzcsIHJlc3BlY3RpdmVseSkuCitTZWUgYWxzbworLklSIC91c3Ivc3JjL2xpbnV4L0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvYWRmcy50eHQgLgorLlNIICJNb3VudCBvcHRpb25zIGZvciBhZmZzIgorLlRQCitcZkJ1aWQ9XGZQXGZJdmFsdWVcZlAgYW5kIFxmQmdpZD1cZlBcZkl2YWx1ZVxmUAorU2V0IHRoZSBvd25lciBhbmQgZ3JvdXAgb2YgdGhlIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gKGRlZmF1bHQ6IHVpZD1naWQ9MCwKK2J1dCB3aXRoIG9wdGlvbgorLkIgdWlkCitvcgorLkIgZ2lkCit3aXRob3V0IHNwZWNpZmllZCB2YWx1ZSwgdGhlIHVpZCBhbmQgZ2lkIG9mIHRoZSBjdXJyZW50IHByb2Nlc3MgYXJlIHRha2VuKS4KKy5UUAorXGZCc2V0dWlkPVxmUFxmSXZhbHVlXGZQIGFuZCBcZkJzZXRnaWQ9XGZQXGZJdmFsdWVcZlAKK1NldCB0aGUgb3duZXIgYW5kIGdyb3VwIG9mIGFsbCBmaWxlcy4KKy5UUAorLkJJIG1vZGU9IHZhbHVlCitTZXQgdGhlIG1vZGUgb2YgYWxsIGZpbGVzIHRvCisuSVIgdmFsdWUgIiAmIDA3NzciCitkaXNyZWdhcmRpbmcgdGhlIG9yaWdpbmFsIHBlcm1pc3Npb25zLgorQWRkIHNlYXJjaCBwZXJtaXNzaW9uIHRvIGRpcmVjdG9yaWVzIHRoYXQgaGF2ZSByZWFkIHBlcm1pc3Npb24uCitUaGUgdmFsdWUgaXMgZ2l2ZW4gaW4gb2N0YWwuCisuVFAKKy5CIHByb3RlY3QKK0RvIG5vdCBhbGxvdyBhbnkgY2hhbmdlcyB0byB0aGUgcHJvdGVjdGlvbiBiaXRzIG9uIHRoZSBmaWxlc3lzdGVtLgorLlRQCisuQiB1c2VtcAorU2V0IHVpZCBhbmQgZ2lkIG9mIHRoZSByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIHRoZSB1aWQgYW5kIGdpZAorb2YgdGhlIG1vdW50IHBvaW50IHVwb24gdGhlIGZpcnN0IHN5bmMgb3IgdW1vdW50LCBhbmQgdGhlbgorY2xlYXIgdGhpcyBvcHRpb24uIFN0cmFuZ2UuLi4KKy5UUAorLkIgdmVyYm9zZQorUHJpbnQgYW4gaW5mb3JtYXRpb25hbCBtZXNzYWdlIGZvciBlYWNoIHN1Y2Nlc3NmdWwgbW91bnQuCisuVFAKKy5CSSBwcmVmaXg9IHN0cmluZworUHJlZml4IHVzZWQgYmVmb3JlIHZvbHVtZSBuYW1lLCB3aGVuIGZvbGxvd2luZyBhIGxpbmsuCisuVFAKKy5CSSB2b2x1bWU9IHN0cmluZworUHJlZml4IChvZiBsZW5ndGggYXQgbW9zdCAzMCkgdXNlZCBiZWZvcmUgJy8nIHdoZW4gZm9sbG93aW5nIGEgc3ltYm9saWMgbGluay4KKy5UUAorLkJJIHJlc2VydmVkPSB2YWx1ZQorKERlZmF1bHQ6IDIuKSBOdW1iZXIgb2YgdW51c2VkIGJsb2NrcyBhdCB0aGUgc3RhcnQgb2YgdGhlIGRldmljZS4KKy5UUAorLkJJIHJvb3Q9IHZhbHVlCitHaXZlIGV4cGxpY2l0bHkgdGhlIGxvY2F0aW9uIG9mIHRoZSByb290IGJsb2NrLgorLlRQCisuQkkgYnM9IHZhbHVlCitHaXZlIGJsb2Nrc2l6ZS4gQWxsb3dlZCB2YWx1ZXMgYXJlIDUxMiwgMTAyNCwgMjA0OCwgNDA5Ni4KKy5UUAorLkJSIGdycHF1b3RhIHwgbm9xdW90YSB8IHF1b3RhIHwgdXNycXVvdGEKK1RoZXNlIG9wdGlvbnMgYXJlIGFjY2VwdGVkIGJ1dCBpZ25vcmVkLgorKEhvd2V2ZXIsIHF1b3RhIHV0aWxpdGllcyBtYXkgcmVhY3QgdG8gc3VjaCBzdHJpbmdzIGluCisuSVIgL2V0Yy9mc3RhYiAuKQorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIGNpZnMiCitTZWUgdGhlIG9wdGlvbnMgc2VjdGlvbiBvZiB0aGUKKy5CUiBtb3VudC5jaWZzICg4KQorbWFuIHBhZ2UgKHNhbWJhLWNsaWVudCBwYWNrYWdlIG11c3QgYmUgaW5zdGFsbGVkKS4KKworLlNIICJNb3VudCBvcHRpb25zIGZvciBjb2hlcmVudCIKK05vbmUuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgZGVidWdmcyIKK1RoZSBkZWJ1Z2ZzIGZpbGVzeXN0ZW0gaXMgYSBwc2V1ZG8gZmlsZXN5c3RlbSwgdHJhZGl0aW9uYWxseSBtb3VudGVkIG9uCisuSVIgL3N5cy9rZXJuZWwvZGVidWcgLgorLlwiIG9yIGp1c3QgL2RlYnVnCisuXCIgcHJlc2VudCBzaW5jZSAyLjYuMTEKK1RoZXJlIGFyZSBubyBtb3VudCBvcHRpb25zLgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIGRldnB0cyIKK1RoZSBkZXZwdHMgZmlsZXN5c3RlbSBpcyBhIHBzZXVkbyBmaWxlc3lzdGVtLCB0cmFkaXRpb25hbGx5IG1vdW50ZWQgb24KKy5JUiAvZGV2L3B0cyAuCitJbiBvcmRlciB0byBhY3F1aXJlIGEgcHNldWRvIHRlcm1pbmFsLCBhIHByb2Nlc3Mgb3BlbnMKKy5JUiAvZGV2L3B0bXggOwordGhlIG51bWJlciBvZiB0aGUgcHNldWRvIHRlcm1pbmFsIGlzIHRoZW4gbWFkZSBhdmFpbGFibGUgdG8gdGhlIHByb2Nlc3MKK2FuZCB0aGUgcHNldWRvIHRlcm1pbmFsIHNsYXZlIGNhbiBiZSBhY2Nlc3NlZCBhcworLklSIC9kZXYvcHRzLyA8bnVtYmVyPi4KKy5UUAorXGZCdWlkPVxmUFxmSXZhbHVlXGZQIGFuZCBcZkJnaWQ9XGZQXGZJdmFsdWVcZlAKK1RoaXMgc2V0cyB0aGUgb3duZXIgb3IgdGhlIGdyb3VwIG9mIG5ld2x5IGNyZWF0ZWQgUFRZcyB0bwordGhlIHNwZWNpZmllZCB2YWx1ZXMuIFdoZW4gbm90aGluZyBpcyBzcGVjaWZpZWQsIHRoZXkgd2lsbAorYmUgc2V0IHRvIHRoZSBVSUQgYW5kIEdJRCBvZiB0aGUgY3JlYXRpbmcgcHJvY2Vzcy4KK0ZvciBleGFtcGxlLCBpZiB0aGVyZSBpcyBhIHR0eSBncm91cCB3aXRoIEdJRCA1LCB0aGVuCisuQiBnaWQ9NQord2lsbCBjYXVzZSBuZXdseSBjcmVhdGVkIFBUWXMgdG8gYmVsb25nIHRvIHRoZSB0dHkgZ3JvdXAuCisuVFAKKy5CSSBtb2RlPSB2YWx1ZQorU2V0IHRoZSBtb2RlIG9mIG5ld2x5IGNyZWF0ZWQgUFRZcyB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorVGhlIGRlZmF1bHQgaXMgMDYwMC4KK0EgdmFsdWUgb2YKKy5CIG1vZGU9NjIwCithbmQKKy5CIGdpZD01CittYWtlcyAibWVzZyB5IiB0aGUgZGVmYXVsdCBvbiBuZXdseSBjcmVhdGVkIFBUWXMuCisuVFAKK1xmQm5ld2luc3RhbmNlCitDcmVhdGUgYSBwcml2YXRlIGluc3RhbmNlIG9mIGRldnB0cyBmaWxlc3lzdGVtLCBzdWNoIHRoYXQKK2luZGljZXMgb2YgcHR5cyBhbGxvY2F0ZWQgaW4gdGhpcyBuZXcgaW5zdGFuY2UgYXJlCitpbmRlcGVuZGVudCBvZiBpbmRpY2VzIGNyZWF0ZWQgaW4gb3RoZXIgaW5zdGFuY2VzIG9mIGRldnB0cy4KKworQWxsIG1vdW50cyBvZiBkZXZwdHMgd2l0aG91dCB0aGlzCisuQiBuZXdpbnN0YW5jZQorb3B0aW9uIHNoYXJlIHRoZSBzYW1lIHNldCBvZiBwdHkgaW5kaWNlcyAoaS5lIGxlZ2FjeSBtb2RlKS4KK0VhY2ggbW91bnQgb2YgZGV2cHRzIHdpdGggdGhlCisuQiBuZXdpbnN0YW5jZQorb3B0aW9uIGhhcyBhIHByaXZhdGUgc2V0IG9mIHB0eSBpbmRpY2VzLgorCitUaGlzIG9wdGlvbiBpcyBtYWlubHkgdXNlZCB0byBzdXBwb3J0IGNvbnRhaW5lcnMgaW4gdGhlCitsaW51eCBrZXJuZWwuIEl0IGlzIGltcGxlbWVudGVkIGluIGxpbnV4IGtlcm5lbCB2ZXJzaW9ucworc3RhcnRpbmcgd2l0aCAyLjYuMjkuICBGdXJ0aGVyLCB0aGlzIG1vdW50IG9wdGlvbiBpcyB2YWxpZAorb25seSBpZiBDT05GSUdfREVWUFRTX01VTFRJUExFX0lOU1RBTkNFUyBpcyBlbmFibGVkIGluIHRoZQora2VybmVsIGNvbmZpZ3VyYXRpb24uCisKK1RvIHVzZSB0aGlzIG9wdGlvbiBlZmZlY3RpdmVseSwKKy5JUiAvZGV2L3B0bXgKK211c3QgYmUgYSBzeW1ib2xpYyBsaW5rIHRvCisuSVIgcHRzL3B0bXguCitTZWUKKy5JUiBEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2RldnB0cy50eHQKK2luIHRoZSBsaW51eCBrZXJuZWwgc291cmNlIHRyZWUgZm9yIGRldGFpbHMuCisuVFAKKy5CSSBwdG14bW9kZT0gdmFsdWUKKworU2V0IHRoZSBtb2RlIGZvciB0aGUgbmV3CisuSVIgcHRteAorZGV2aWNlIG5vZGUgaW4gdGhlIGRldnB0cyBmaWxlc3lzdGVtLgorCitXaXRoIHRoZSBzdXBwb3J0IGZvciBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgZGV2cHRzIChzZWUKKy5CIG5ld2luc3RhbmNlCitvcHRpb24gYWJvdmUpLCBlYWNoIGluc3RhbmNlIGhhcyBhIHByaXZhdGUKKy5JUiBwdG14Citub2RlIGluIHRoZSByb290IG9mIHRoZSBkZXZwdHMgZmlsZXN5c3RlbSAodHlwaWNhbGx5CisuSVIgL2Rldi9wdHMvcHRteCkuCisKK0ZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgdGhlIGtlcm5lbCwgdGhlCitkZWZhdWx0IG1vZGUgb2YgdGhlIG5ldworLklSIHB0bXgKK25vZGUgaXMgMDAwMC4KKy5CSSBwdG14bW9kZT0gdmFsdWUKK3NwZWNpZmllcyBhIG1vcmUgdXNlZnVsIG1vZGUgZm9yIHRoZQorLklSIHB0bXgKK25vZGUgYW5kIGlzIGhpZ2hseSByZWNvbW1lbmRlZCB3aGVuIHRoZQorLkIgbmV3aW5zdGFuY2UKK29wdGlvbiBpcyBzcGVjaWZpZWQuCisKK1RoaXMgb3B0aW9uIGlzIG9ubHkgaW1wbGVtZW50ZWQgaW4gbGludXgga2VybmVsIHZlcnNpb25zCitzdGFydGluZyB3aXRoIDIuNi4yOS4gRnVydGhlciB0aGlzIG9wdGlvbiBpcyB2YWxpZCBvbmx5IGlmCitDT05GSUdfREVWUFRTX01VTFRJUExFX0lOU1RBTkNFUyBpcyBlbmFibGVkIGluIHRoZSBrZXJuZWwKK2NvbmZpZ3VyYXRpb24uCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgZXh0IgorTm9uZS4KK05vdGUgdGhhdCB0aGUgYGV4dCcgZmlsZXN5c3RlbSBpcyBvYnNvbGV0ZS4gRG9uJ3QgdXNlIGl0LgorU2luY2UgTGludXggdmVyc2lvbiAyLjEuMjEgZXh0ZnMgaXMgbm8gbG9uZ2VyIHBhcnQgb2YgdGhlIGtlcm5lbCBzb3VyY2UuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgZXh0MiIKK1RoZSBgZXh0MicgZmlsZXN5c3RlbSBpcyB0aGUgc3RhbmRhcmQgTGludXggZmlsZXN5c3RlbS4KKy5cIiBEdWUgdG8gYSBrZXJuZWwgYnVnLCBpdCBtYXkgYmUgbW91bnRlZCB3aXRoIHJhbmRvbSBtb3VudCBvcHRpb25zCisuXCIgKGZpeGVkIGluIExpbnV4IDIuMC40KS4KK1NpbmNlIExpbnV4IDIuNS40NiwgZm9yIG1vc3QgbW91bnQgb3B0aW9ucyB0aGUgZGVmYXVsdAoraXMgZGV0ZXJtaW5lZCBieSB0aGUgZmlsZXN5c3RlbSBzdXBlcmJsb2NrLiBTZXQgdGhlbSB3aXRoCisuQlIgdHVuZTJmcyAoOCkuCisuVFAKKy5CUiBhY2wgfCBub2FjbAorU3VwcG9ydCBQT1NJWCBBY2Nlc3MgQ29udHJvbCBMaXN0cyAob3Igbm90KS4KKy5cIiByZXF1aXJlcyBDT05GSUdfRVhUMl9GU19QT1NJWF9BQ0wKKy5UUAorLkJSIGJzZGRmIHwgbWluaXhkZgorU2V0IHRoZSBiZWhhdmlvdXIgZm9yIHRoZQorLkkgc3RhdGZzCitzeXN0ZW0gY2FsbC4gVGhlCisuQiBtaW5peGRmCitiZWhhdmlvdXIgaXMgdG8gcmV0dXJuIGluIHRoZQorLkkgZl9ibG9ja3MKK2ZpZWxkIHRoZSB0b3RhbCBudW1iZXIgb2YgYmxvY2tzIG9mIHRoZSBmaWxlc3lzdGVtLCB3aGlsZSB0aGUKKy5CIGJzZGRmCitiZWhhdmlvdXIgKHdoaWNoIGlzIHRoZSBkZWZhdWx0KSBpcyB0byBzdWJ0cmFjdCB0aGUgb3ZlcmhlYWQgYmxvY2tzCit1c2VkIGJ5IHRoZSBleHQyIGZpbGVzeXN0ZW0gYW5kIG5vdCBhdmFpbGFibGUgZm9yIGZpbGUgc3RvcmFnZS4gVGh1cworLm5mCisKKyUgbW91bnQgL2sgLW8gbWluaXhkZjsgZGYgL2s7IHVtb3VudCAvaworRmlsZXN5c3RlbSAgIDEwMjQtYmxvY2tzICBVc2VkIEF2YWlsYWJsZSBDYXBhY2l0eSBNb3VudGVkIG9uCisvZGV2L3NkYTYgICAgICAyNjMwNjU1ICAgODY5NTQgIDI0MTIxNjkgICAgICAzJSAgIC9rCislIG1vdW50IC9rIC1vIGJzZGRmOyBkZiAvazsgdW1vdW50IC9rCitGaWxlc3lzdGVtICAgMTAyNC1ibG9ja3MgIFVzZWQgQXZhaWxhYmxlIENhcGFjaXR5IE1vdW50ZWQgb24KKy9kZXYvc2RhNiAgICAgIDI1NDM3MTQgICAgICAxMyAgMjQxMjE2OSAgICAgIDAlICAgL2sKKworLmZpCisoTm90ZSB0aGF0IHRoaXMgZXhhbXBsZSBzaG93cyB0aGF0IG9uZSBjYW4gYWRkIGNvbW1hbmQgbGluZSBvcHRpb25zCit0byB0aGUgb3B0aW9ucyBnaXZlbiBpbgorLklSIC9ldGMvZnN0YWIgLikKKworLlRQCisuQlIgY2hlY2s9IHsgbm9uZSB8IG5vY2hlY2sgfQorTm8gY2hlY2tpbmcgaXMgZG9uZSBhdCBtb3VudCB0aW1lLiBUaGlzIGlzIHRoZSBkZWZhdWx0LiBUaGlzIGlzIGZhc3QuCitJdCBpcyB3aXNlIHRvIGludm9rZQorLkJSIGUyZnNjayAoOCkKK2V2ZXJ5IG5vdyBhbmQgdGhlbiwgZS5nLiBhdCBib290IHRpbWUuCisuVFAKKy5CIGRlYnVnCitQcmludCBkZWJ1Z2dpbmcgaW5mbyB1cG9uIGVhY2ggKHJlKW1vdW50LgorLlRQCisuQlIgZXJyb3JzPSB7IGNvbnRpbnVlIHwgcmVtb3VudC1ybyB8IHBhbmljIH0KK0RlZmluZSB0aGUgYmVoYXZpb3VyIHdoZW4gYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuCisoRWl0aGVyIGlnbm9yZSBlcnJvcnMgYW5kIGp1c3QgbWFyayB0aGUgZmlsZXN5c3RlbSBlcnJvbmVvdXMgYW5kIGNvbnRpbnVlLAorb3IgcmVtb3VudCB0aGUgZmlsZXN5c3RlbSByZWFkLW9ubHksIG9yIHBhbmljIGFuZCBoYWx0IHRoZSBzeXN0ZW0uKQorVGhlIGRlZmF1bHQgaXMgc2V0IGluIHRoZSBmaWxlc3lzdGVtIHN1cGVyYmxvY2ssIGFuZCBjYW4gYmUKK2NoYW5nZWQgdXNpbmcKKy5CUiB0dW5lMmZzICg4KS4KKy5UUAorLkJSIGdycGlkIHwgYnNkZ3JvdXBzICIgYW5kICIgbm9ncnBpZCB8IHN5c3Zncm91cHMKK1RoZXNlIG9wdGlvbnMgZGVmaW5lIHdoYXQgZ3JvdXAgaWQgYSBuZXdseSBjcmVhdGVkIGZpbGUgZ2V0cy4KK1doZW4KKy5CUiBncnBpZAoraXMgc2V0LCBpdCB0YWtlcyB0aGUgZ3JvdXAgaWQgb2YgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBpdCBpcyBjcmVhdGVkOworb3RoZXJ3aXNlICh0aGUgZGVmYXVsdCkgaXQgdGFrZXMgdGhlIGZzZ2lkIG9mIHRoZSBjdXJyZW50IHByb2Nlc3MsIHVubGVzcwordGhlIGRpcmVjdG9yeSBoYXMgdGhlIHNldGdpZCBiaXQgc2V0LCBpbiB3aGljaCBjYXNlIGl0IHRha2VzIHRoZSBnaWQKK2Zyb20gdGhlIHBhcmVudCBkaXJlY3RvcnksIGFuZCBhbHNvIGdldHMgdGhlIHNldGdpZCBiaXQgc2V0CitpZiBpdCBpcyBhIGRpcmVjdG9yeSBpdHNlbGYuCisuVFAKKy5CUiBncnBxdW90YSB8IG5vcXVvdGEgfCBxdW90YSB8IHVzcnF1b3RhCitUaGVzZSBvcHRpb25zIGFyZSBhY2NlcHRlZCBidXQgaWdub3JlZC4KKy5UUAorLkJSIG5vYmgKK0RvIG5vdCBhdHRhY2ggYnVmZmVyX2hlYWRzIHRvIGZpbGUgcGFnZWNhY2hlLiAoU2luY2UgMi41LjQ5LikKKy5UUAorLkJSIG5vdWlkMzIKK0Rpc2FibGVzIDMyLWJpdCBVSURzIGFuZCBHSURzLiAgVGhpcyBpcyBmb3IgaW50ZXJvcGVyYWJpbGl0eSB3aXRoIG9sZGVyCitrZXJuZWxzIHdoaWNoIG9ubHkgc3RvcmUgYW5kIGV4cGVjdCAxNi1iaXQgdmFsdWVzLgorLlRQCisuQlIgb2xkYWxsb2MgIiBvciAiIG9ybG92CitVc2Ugb2xkIGFsbG9jYXRvciBvciBPcmxvdiBhbGxvY2F0b3IgZm9yIG5ldyBpbm9kZXMuIE9ybG92IGlzIGRlZmF1bHQuCisuVFAKK1xmQnJlc2dpZD1cZlBcZkluXGZQIGFuZCBcZkJyZXN1aWQ9XGZQXGZJblxmUAorVGhlIGV4dDIgZmlsZXN5c3RlbSByZXNlcnZlcyBhIGNlcnRhaW4gcGVyY2VudGFnZSBvZiB0aGUgYXZhaWxhYmxlCitzcGFjZSAoYnkgZGVmYXVsdCA1JSwgc2VlCisuQlIgbWtlMmZzICg4KQorYW5kCisuQlIgdHVuZTJmcyAoOCkpLgorVGhlc2Ugb3B0aW9ucyBkZXRlcm1pbmUgd2hvIGNhbiB1c2UgdGhlIHJlc2VydmVkIGJsb2Nrcy4KKyhSb3VnaGx5OiB3aG9ldmVyIGhhcyB0aGUgc3BlY2lmaWVkIHVpZCwgb3IgYmVsb25ncyB0byB0aGUgc3BlY2lmaWVkIGdyb3VwLikKKy5UUAorLkJJIHNiPSBuCitJbnN0ZWFkIG9mIGJsb2NrIDEsIHVzZSBibG9jaworLkkgbgorYXMgc3VwZXJibG9jay4gVGhpcyBjb3VsZCBiZSB1c2VmdWwgd2hlbiB0aGUgZmlsZXN5c3RlbSBoYXMgYmVlbiBkYW1hZ2VkLgorKEVhcmxpZXIsIGNvcGllcyBvZiB0aGUgc3VwZXJibG9jayB3b3VsZCBiZSBtYWRlIGV2ZXJ5IDgxOTIgYmxvY2tzOiBpbgorYmxvY2sgMSwgODE5MywgMTYzODUsIC4uLiAoYW5kIG9uZSBnb3QgdGhvdXNhbmRzIG9mIGNvcGllcyBvbgorYSBiaWcgZmlsZXN5c3RlbSkuIFNpbmNlIHZlcnNpb24gMS4wOCwKKy5CIG1rZTJmcworaGFzIGEgXC1zIChzcGFyc2Ugc3VwZXJibG9jaykgb3B0aW9uIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGJhY2t1cAorc3VwZXJibG9ja3MsIGFuZCBzaW5jZSB2ZXJzaW9uIDEuMTUgdGhpcyBpcyB0aGUgZGVmYXVsdC4gTm90ZQordGhhdCB0aGlzIG1heSBtZWFuIHRoYXQgZXh0MiBmaWxlc3lzdGVtcyBjcmVhdGVkIGJ5IGEgcmVjZW50CisuQiBta2UyZnMKK2Nhbm5vdCBiZSBtb3VudGVkIHIvdyB1bmRlciBMaW51eCAyLjAuKi4pCitUaGUgYmxvY2sgbnVtYmVyIGhlcmUgdXNlcyAxayB1bml0cy4gVGh1cywgaWYgeW91IHdhbnQgdG8gdXNlIGxvZ2ljYWwKK2Jsb2NrIDMyNzY4IG9uIGEgZmlsZXN5c3RlbSB3aXRoIDRrIGJsb2NrcywgdXNlICJzYj0xMzEwNzIiLgorLlRQCisuQlIgdXNlcl94YXR0ciB8IG5vdXNlcl94YXR0cgorU3VwcG9ydCAidXNlci4iIGV4dGVuZGVkIGF0dHJpYnV0ZXMgKG9yIG5vdCkuCisuXCIgcmVxdWlyZXMgQ09ORklHX0VYVDJfRlNfWEFUVFIKKworCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIGV4dDMiCitUaGUgZXh0MyBmaWxlc3lzdGVtIGlzIGEgdmVyc2lvbiBvZiB0aGUgZXh0MiBmaWxlc3lzdGVtIHdoaWNoIGhhcyBiZWVuCitlbmhhbmNlZCB3aXRoIGpvdXJuYWxsaW5nLiAgSXQgc3VwcG9ydHMgdGhlIHNhbWUgb3B0aW9ucyBhcyBleHQyIGFzCit3ZWxsIGFzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25zOgorLlwiIC5UUAorLlwiIC5CUiBhYm9ydAorLlwiIE1vdW50IHRoZSBmaWxlc3lzdGVtIGluIGFib3J0IG1vZGUsIGFzIGlmIGEgZmF0YWwgZXJyb3IgaGFzIG9jY3VycmVkLgorLlRQCisuQlIgam91cm5hbD11cGRhdGUKK1VwZGF0ZSB0aGUgZXh0MyBmaWxlc3lzdGVtJ3Mgam91cm5hbCB0byB0aGUgY3VycmVudCBmb3JtYXQuCisuVFAKKy5CUiBqb3VybmFsPWludW0KK1doZW4gYSBqb3VybmFsIGFscmVhZHkgZXhpc3RzLCB0aGlzIG9wdGlvbiBpcyBpZ25vcmVkLiBPdGhlcndpc2UsIGl0CitzcGVjaWZpZXMgdGhlIG51bWJlciBvZiB0aGUgaW5vZGUgd2hpY2ggd2lsbCByZXByZXNlbnQgdGhlIGV4dDMgZmlsZXN5c3RlbSdzCitqb3VybmFsIGZpbGU7ICBleHQzIHdpbGwgY3JlYXRlIGEgbmV3IGpvdXJuYWwsIG92ZXJ3cml0aW5nIHRoZSBvbGQgY29udGVudHMKK29mIHRoZSBmaWxlIHdob3NlIGlub2RlIG51bWJlciBpcworLklSIGludW0gLgorLlRQCisuQlIgbm9sb2FkCitEbyBub3QgbG9hZCB0aGUgZXh0MyBmaWxlc3lzdGVtJ3Mgam91cm5hbCBvbiBtb3VudGluZy4KKy5UUAorLkJSIGRhdGE9IHsgam91cm5hbCB8IG9yZGVyZWQgfCB3cml0ZWJhY2sgfQorU3BlY2lmaWVzIHRoZSBqb3VybmFsbGluZyBtb2RlIGZvciBmaWxlIGRhdGEuICBNZXRhZGF0YSBpcyBhbHdheXMgam91cm5hbGVkLgorVG8gdXNlIG1vZGVzIG90aGVyIHRoYW4KKy5CIG9yZGVyZWQKK29uIHRoZSByb290IGZpbGVzeXN0ZW0sIHBhc3MgdGhlIG1vZGUgdG8gdGhlIGtlcm5lbCBhcyBib290IHBhcmFtZXRlciwgZS5nLgorLklSIHJvb3RmbGFncz1kYXRhPWpvdXJuYWwgLgorLlJTCisuVFAKKy5CIGpvdXJuYWwKK0FsbCBkYXRhIGlzIGNvbW1pdHRlZCBpbnRvIHRoZSBqb3VybmFsIHByaW9yIHRvIGJlaW5nIHdyaXR0ZW4gaW50byB0aGUKK21haW4gZmlsZXN5c3RlbS4KKy5UUAorLkIgb3JkZXJlZAorVGhpcyBpcyB0aGUgZGVmYXVsdCBtb2RlLiAgQWxsIGRhdGEgaXMgZm9yY2VkIGRpcmVjdGx5IG91dCB0byB0aGUgbWFpbiBmaWxlCitzeXN0ZW0gcHJpb3IgdG8gaXRzIG1ldGFkYXRhIGJlaW5nIGNvbW1pdHRlZCB0byB0aGUgam91cm5hbC4KKy5UUAorLkIgd3JpdGViYWNrCitEYXRhIG9yZGVyaW5nIGlzIG5vdCBwcmVzZXJ2ZWQgLSBkYXRhIG1heSBiZSB3cml0dGVuIGludG8gdGhlIG1haW4KK2ZpbGVzeXN0ZW0gYWZ0ZXIgaXRzIG1ldGFkYXRhIGhhcyBiZWVuIGNvbW1pdHRlZCB0byB0aGUgam91cm5hbC4KK1RoaXMgaXMgcnVtb3VyZWQgdG8gYmUgdGhlIGhpZ2hlc3QtdGhyb3VnaHB1dCBvcHRpb24uICBJdCBndWFyYW50ZWVzCitpbnRlcm5hbCBmaWxlc3lzdGVtIGludGVncml0eSwgaG93ZXZlciBpdCBjYW4gYWxsb3cgb2xkIGRhdGEgdG8gYXBwZWFyCitpbiBmaWxlcyBhZnRlciBhIGNyYXNoIGFuZCBqb3VybmFsIHJlY292ZXJ5LgorLlJFCisuVFAKKy5CUiBiYXJyaWVyPTAgIiAvICIgIGJhcnJpZXI9MSAiCitUaGlzIGVuYWJsZXMvZGlzYWJsZXMgYmFycmllcnMuICBiYXJyaWVyPTAgZGlzYWJsZXMgaXQsIGJhcnJpZXI9MSBlbmFibGVzIGl0LgorV3JpdGUgYmFycmllcnMgZW5mb3JjZSBwcm9wZXIgb24tZGlzayBvcmRlcmluZyBvZiBqb3VybmFsIGNvbW1pdHMsIG1ha2luZwordm9sYXRpbGUgZGlzayB3cml0ZSBjYWNoZXMgc2FmZSB0byB1c2UsIGF0IHNvbWUgcGVyZm9ybWFuY2UgcGVuYWx0eS4gIFRoZSBleHQzCitmaWxlc3lzdGVtIGRvZXMgbm90IGVuYWJsZSB3cml0ZSBiYXJyaWVycyBieSBkZWZhdWx0LiAgQmUgc3VyZSB0byBlbmFibGUKK2JhcnJpZXJzIHVubGVzcyB5b3VyIGRpc2tzIGFyZSBiYXR0ZXJ5LWJhY2tlZCBvbmUgd2F5IG9yIGFub3RoZXIuICBPdGhlcndpc2UKK3lvdSByaXNrIGZpbGVzeXN0ZW0gY29ycnVwdGlvbiBpbiBjYXNlIG9mIHBvd2VyIGZhaWx1cmUuCisuVFAKKy5CSSBjb21taXQ9IG5yc2VjCitTeW5jIGFsbCBkYXRhIGFuZCBtZXRhZGF0YSBldmVyeQorLkkgbnJzZWMKK3NlY29uZHMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDUgc2Vjb25kcy4gWmVybyBtZWFucyBkZWZhdWx0LgorLlRQCisuQlIgdXNlcl94YXR0cgorRW5hYmxlIEV4dGVuZGVkIFVzZXIgQXR0cmlidXRlcy4gU2VlIHRoZQorLkJSIGF0dHIgKDUpCittYW51YWwgcGFnZS4KKy5UUAorLkJSIGFjbAorRW5hYmxlIFBPU0lYIEFjY2VzcyBDb250cm9sIExpc3RzLiBTZWUgdGhlCisuQlIgYWNsICg1KQorbWFudWFsIHBhZ2UuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgZXh0NCIKK1RoZSBleHQ0IGZpbGVzeXN0ZW0gaXMgYW4gYW4gYWR2YW5jZWQgbGV2ZWwgb2YgdGhlIGV4dDMgZmlsZXN5c3RlbSB3aGljaAoraW5jb3Jwb3JhdGVzIHNjYWxhYmlsaXR5IGFuZCByZWxpYWJpbGl0eSBlbmhhbmNlbWVudHMgZm9yIHN1cHBvcnRpbmcgbGFyZ2UKK2ZpbGVzeXN0ZW0uCisKK1RoZSBvcHRpb25zCisuQiBqb3VybmFsX2Rldiwgbm9sb2FkLCBkYXRhLCBjb21taXQsIG9ybG92LCBvbGRhbGxvYywgW25vXXVzZXJfeGF0dHIKKy5CIFtub11hY2wsIGJzZGRmLCBtaW5peGRmLCBkZWJ1ZywgZXJyb3JzLCBkYXRhX2VyciwgZ3JwaWQsIGJzZGdyb3Vwcywgbm9ncnBpZAorLkIgc3lzdmdyb3VwcywgcmVzZ2lkLCByZXN1aWQsIHNiLCBxdW90YSwgbm9xdW90YSwgZ3JwcXVvdGEsIHVzcnF1b3RhCithbmQKKy5CIFtub11iaAorYXJlIGJhY2t3YXJkbHkgY29tcGF0aWJsZSB3aXRoIGV4dDMgb3IgZXh0Mi4KKy5UUAorLkJSIGpvdXJuYWxfY2hlY2tzdW0KK0VuYWJsZSBjaGVja3N1bW1pbmcgb2YgdGhlIGpvdXJuYWwgdHJhbnNhY3Rpb25zLiAgVGhpcyB3aWxsIGFsbG93IHRoZSByZWNvdmVyeQorY29kZSBpbiBlMmZzY2sgYW5kIHRoZSBrZXJuZWwgdG8gZGV0ZWN0IGNvcnJ1cHRpb24gaW4gdGhlIGtlcm5lbC4gIEl0IGlzIGEKK2NvbXBhdGlibGUgY2hhbmdlIGFuZCB3aWxsIGJlIGlnbm9yZWQgYnkgb2xkZXIga2VybmVscy4KKy5UUAorLkJSIGpvdXJuYWxfYXN5bmNfY29tbWl0CitDb21taXQgYmxvY2sgY2FuIGJlIHdyaXR0ZW4gdG8gZGlzayB3aXRob3V0IHdhaXRpbmcgZm9yIGRlc2NyaXB0b3IgYmxvY2tzLiBJZgorZW5hYmxlZCBvbGRlciBrZXJuZWxzIGNhbm5vdCBtb3VudCB0aGUgZGV2aWNlLiBUaGlzIHdpbGwgZW5hYmxlCisnam91cm5hbF9jaGVja3N1bScgaW50ZXJuYWxseS4KKy5UUAorLkJSIGpvdXJuYWw9dXBkYXRlCitVcGRhdGUgdGhlIGV4dDQgZmlsZXN5c3RlbSdzIGpvdXJuYWwgdG8gdGhlIGN1cnJlbnQgZm9ybWF0LgorLlRQCisuQlIgYmFycmllcj0wICIgLyAiICBiYXJyaWVyPTEgIiAvICIgYmFycmllciAiIC8gIiBub2JhcnJpZXIKK1RoaXMgZW5hYmxlcy9kaXNhYmxlcyB0aGUgdXNlIG9mIHdyaXRlIGJhcnJpZXJzIGluIHRoZSBqYmQgY29kZS4gIGJhcnJpZXI9MAorZGlzYWJsZXMsIGJhcnJpZXI9MSBlbmFibGVzLiAgVGhpcyBhbHNvIHJlcXVpcmVzIGFuIElPIHN0YWNrIHdoaWNoIGNhbiBzdXBwb3J0CitiYXJyaWVycywgYW5kIGlmIGpiZCBnZXRzIGFuIGVycm9yIG9uIGEgYmFycmllciB3cml0ZSwgaXQgd2lsbCBkaXNhYmxlIGFnYWluCit3aXRoIGEgd2FybmluZy4gIFdyaXRlIGJhcnJpZXJzIGVuZm9yY2UgcHJvcGVyIG9uLWRpc2sgb3JkZXJpbmcgb2Ygam91cm5hbAorY29tbWl0cywgbWFraW5nIHZvbGF0aWxlIGRpc2sgd3JpdGUgY2FjaGVzIHNhZmUgdG8gdXNlLCBhdCBzb21lIHBlcmZvcm1hbmNlCitwZW5hbHR5LiAgSWYgeW91ciBkaXNrcyBhcmUgYmF0dGVyeS1iYWNrZWQgaW4gb25lIHdheSBvciBhbm90aGVyLCBkaXNhYmxpbmcKK2JhcnJpZXJzIG1heSBzYWZlbHkgaW1wcm92ZSBwZXJmb3JtYW5jZS4gIFRoZSBtb3VudCBvcHRpb25zICJiYXJyaWVyIiBhbmQKKyJub2JhcnJpZXIiIGNhbiBhbHNvIGJlIHVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgYmFycmllcnMsIGZvciBjb25zaXN0ZW5jeQord2l0aCBvdGhlciBleHQ0IG1vdW50IG9wdGlvbnMuCisKK1RoZSBleHQ0IGZpbGVzeXN0ZW0gZW5hYmxlcyB3cml0ZSBiYXJyaWVycyBieSBkZWZhdWx0LgorLlRQCisuQkkgaW5vZGVfcmVhZGFoZWFkPSBuCitUaGlzIHR1bmluZyBwYXJhbWV0ZXIgY29udHJvbHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGlub2RlIHRhYmxlIGJsb2NrcyB0aGF0CitleHQ0J3MgaW5vZGUgdGFibGUgcmVhZGFoZWFkIGFsZ29yaXRobSB3aWxsIHByZS1yZWFkIGludG8gdGhlIGJ1ZmZlciBjYWNoZS4KK1RoZSBkZWZhdWx0IHZhbHVlIGlzIDMyIGJsb2Nrcy4KKy5UUAorLkJJIHN0cmlwZT0gbgorTnVtYmVyIG9mIGZpbGVzeXN0ZW0gYmxvY2tzIHRoYXQgbWJhbGxvYyB3aWxsIHRyeSB0byB1c2UgZm9yIGFsbG9jYXRpb24gc2l6ZQorYW5kIGFsaWdubWVudC4gRm9yIFJBSUQ1LzYgc3lzdGVtcyB0aGlzIHNob3VsZCBiZSB0aGUgbnVtYmVyIG9mIGRhdGEgZGlza3MgKgorUkFJRCBjaHVuayBzaXplIGluIGZpbGVzeXN0ZW0gYmxvY2tzLgorLlRQCisuQlIgZGVsYWxsb2MKK0RlZmVycmluZyBibG9jayBhbGxvY2F0aW9uIHVudGlsIHdyaXRlLW91dCB0aW1lLgorLlRQCisuQlIgbm9kZWxhbGxvYworRGlzYWJsZSBkZWxheWVkIGFsbG9jYXRpb24uIEJsb2NrcyBhcmUgYWxsb2NhdGlvbiB3aGVuIGRhdGEgaXMgY29waWVkIGZyb20gdXNlcgordG8gcGFnZSBjYWNoZS4KKy5UUAorLkJJIG1heF9iYXRjaF90aW1lPSB1c2VjCitNYXhpbXVtIGFtb3VudCBvZiB0aW1lIGV4dDQgc2hvdWxkIHdhaXQgZm9yIGFkZGl0aW9uYWwgZmlsZXN5c3RlbSBvcGVyYXRpb25zIHRvCitiZSBiYXRjaCB0b2dldGhlciB3aXRoIGEgc3luY2hyb25vdXMgd3JpdGUgb3BlcmF0aW9uLiBTaW5jZSBhIHN5bmNocm9ub3VzCit3cml0ZSBvcGVyYXRpb24gaXMgZ29pbmcgdG8gZm9yY2UgYSBjb21taXQgYW5kIHRoZW4gYSB3YWl0IGZvciB0aGUgSS9PCitjb21wbGV0ZSwgaXQgZG9lc24ndCBjb3N0IG11Y2gsIGFuZCBjYW4gYmUgYSBodWdlIHRocm91Z2hwdXQgd2luLCB3ZSB3YWl0IGZvciBhCitzbWFsbCBhbW91bnQgb2YgdGltZSB0byBzZWUgaWYgYW55IG90aGVyIHRyYW5zYWN0aW9ucyBjYW4gcGlnZ3liYWNrIG9uIHRoZQorc3luY2hyb25vdXMgd3JpdGUuIFRoZSBhbGdvcml0aG0gdXNlZCBpcyBkZXNpZ25lZCB0byBhdXRvbWF0aWNhbGx5IHR1bmUgZm9yCit0aGUgc3BlZWQgb2YgdGhlIGRpc2ssIGJ5IG1lYXN1cmluZyB0aGUgYW1vdW50IG9mIHRpbWUgKG9uIGF2ZXJhZ2UpIHRoYXQgaXQKK3Rha2VzIHRvIGZpbmlzaCBjb21taXR0aW5nIGEgdHJhbnNhY3Rpb24uIENhbGwgdGhpcyB0aW1lIHRoZSAiY29tbWl0IHRpbWUiLgorSWYgdGhlIHRpbWUgdGhhdCB0aGUgdHJhbnNhY3RvaW4gaGFzIGJlZW4gcnVubmluZyBpcyBsZXNzIHRoYW4gdGhlIGNvbW1pdCB0aW1lLAorZXh0NCB3aWxsIHRyeSBzbGVlcGluZyBmb3IgdGhlIGNvbW1pdCB0aW1lIHRvIHNlZSBpZiBvdGhlciBvcGVyYXRpb25zIHdpbGwgam9pbgordGhlIHRyYW5zYWN0aW9uLiBUaGUgY29tbWl0IHRpbWUgaXMgY2FwcGVkIGJ5IHRoZSBtYXhfYmF0Y2hfdGltZSwgd2hpY2gKK2RlZmF1bHRzIHRvIDE1MDAwdXMgKDE1bXMpLiBUaGlzIG9wdGltaXphdGlvbiBjYW4gYmUgdHVybmVkIG9mZiBlbnRpcmVseSBieQorc2V0dGluZyBtYXhfYmF0Y2hfdGltZSB0byAwLgorLlRQCisuQkkgbWluX2JhdGNoX3RpbWU9IHVzZWMKK1RoaXMgcGFyYW1ldGVyIHNldHMgdGhlIGNvbW1pdCB0aW1lIChhcyBkZXNjcmliZWQgYWJvdmUpIHRvIGJlIGF0IGxlYXN0CittaW5fYmF0Y2hfdGltZS4gSXQgZGVmYXVsdHMgdG8gemVybyBtaWNyb3NlY29uZHMuIEluY3JlYXNpbmcgdGhpcyBwYXJhbWV0ZXIKK21heSBpbXByb3ZlIHRoZSB0aHJvdWdocHV0IG9mIG11bHRpLXRocmVhZGVkLCBzeW5jaHJvbm91cyB3b3JrbG9hZHMgb24gdmVyeQorZmFzdCBkaXNrcywgYXQgdGhlIGNvc3Qgb2YgaW5jcmVhc2luZyBsYXRlbmN5LgorLlRQCisuQkkgam91cm5hbF9pb3ByaW89IHByaW8KK1RoZSBJL08gcHJpb3JpdHkgKGZyb20gMCB0byA3LCB3aGVyZSAwIGlzIHRoZSBoaWdoZXN0IHByaW9ydHkpIHdoaWNoIHNob3VsZCBiZQordXNlZCBmb3IgSS9PIG9wZXJhdGlvbnMgc3VibWl0dGVkIGJ5IGtqb3VybmFsZDIgZHVyaW5nIGEgY29tbWl0IG9wZXJhdGlvbi4KK1RoaXMgZGVmYXVsdHMgdG8gMywgd2hpY2ggaXMgYSBzbGlnaHRseSBoaWdoZXIgcHJpb3JpdHkgdGhhbiB0aGUgZGVmYXVsdCBJL08KK3ByaW9yaXR5LgorLlRQCisuQlIgYXV0b19kYV9hbGxvYyB8IG5vYXV0b19kYV9hbGxvYworTWFueSBicm9rZW4gYXBwbGljYXRpb25zIGRvbid0IHVzZSBmc3luYygpIHdoZW4gbm9hdXRvX2RhX2FsbG9jCityZXBsYWNpbmcgZXhpc3RpbmcgZmlsZXMgdmlhIHBhdHRlcm5zIHN1Y2ggYXMKKworZmQgPSBvcGVuKCJmb28ubmV3Iikvd3JpdGUoZmQsLi4pL2Nsb3NlKGZkKS8gcmVuYW1lKCJmb28ubmV3IiwgImZvbyIpCisKK29yIHdvcnNlIHlldAorCitmZCA9IG9wZW4oImZvbyIsIE9fVFJVTkMpL3dyaXRlKGZkLC4uKS9jbG9zZShmZCkuCisKK0lmIGF1dG9fZGFfYWxsb2MgaXMgZW5hYmxlZCwgZXh0NCB3aWxsIGRldGVjdCB0aGUgcmVwbGFjZS12aWEtcmVuYW1lIGFuZAorcmVwbGFjZS12aWEtdHJ1bmNhdGUgcGF0dGVybnMgYW5kIGZvcmNlIHRoYXQgYW55IGRlbGF5ZWQgYWxsb2NhdGlvbiBibG9ja3MgYXJlCithbGxvY2F0ZWQgc3VjaCB0aGF0IGF0IHRoZSBuZXh0IGpvdXJuYWwgY29tbWl0LCBpbiB0aGUgZGVmYXVsdCBkYXRhPW9yZGVyZWQKK21vZGUsIHRoZSBkYXRhIGJsb2NrcyBvZiB0aGUgbmV3IGZpbGUgYXJlIGZvcmNlZCB0byBkaXNrIGJlZm9yZSB0aGUgcmVuYW1lKCkKK29wZXJhdGlvbiBpcyBjb21taXRlZC4gIFRoaXMgcHJvdmlkZXMgcm91Z2hseSB0aGUgc2FtZSBsZXZlbCBvZiBndWFyYW50ZWVzIGFzCitleHQzLCBhbmQgYXZvaWRzIHRoZSAiemVyby1sZW5ndGgiIHByb2JsZW0gdGhhdCBjYW4gaGFwcGVuIHdoZW4gYSBzeXN0ZW0KK2NyYXNoZXMgYmVmb3JlIHRoZSBkZWxheWVkIGFsbG9jYXRpb24gYmxvY2tzIGFyZSBmb3JjZWQgdG8gZGlzay4KKworLlNIICJNb3VudCBvcHRpb25zIGZvciBmYXQiCisoTm90ZToKKy5JIGZhdAoraXMgbm90IGEgc2VwYXJhdGUgZmlsZXN5c3RlbSwgYnV0IGEgY29tbW9uIHBhcnQgb2YgdGhlCisuSVIgbXNkb3MgLAorLkkgdW1zZG9zCithbmQKKy5JIHZmYXQKK2ZpbGVzeXN0ZW1zLikKKy5UUAorLkJSIGJsb2Nrc2l6ZT0geyA1MTIgfCAxMDI0IHwgMjA0OCB9CitTZXQgYmxvY2tzaXplIChkZWZhdWx0IDUxMikuIFRoaXMgb3B0aW9uIGlzIG9ic29sZXRlLgorLlRQCitcZkJ1aWQ9XGZQXGZJdmFsdWVcZlAgYW5kIFxmQmdpZD1cZlBcZkl2YWx1ZVxmUAorU2V0IHRoZSBvd25lciBhbmQgZ3JvdXAgb2YgYWxsIGZpbGVzLgorKERlZmF1bHQ6IHRoZSB1aWQgYW5kIGdpZCBvZiB0aGUgY3VycmVudCBwcm9jZXNzLikKKy5UUAorLkJJIHVtYXNrPSB2YWx1ZQorU2V0IHRoZSB1bWFzayAodGhlIGJpdG1hc2sgb2YgdGhlIHBlcm1pc3Npb25zIHRoYXQgYXJlCisuQiBub3QKK3ByZXNlbnQpLiBUaGUgZGVmYXVsdCBpcyB0aGUgdW1hc2sgb2YgdGhlIGN1cnJlbnQgcHJvY2Vzcy4KK1RoZSB2YWx1ZSBpcyBnaXZlbiBpbiBvY3RhbC4KKy5UUAorLkJJIGRtYXNrPSB2YWx1ZQorU2V0IHRoZSB1bWFzayBhcHBsaWVkIHRvIGRpcmVjdG9yaWVzIG9ubHkuCitUaGUgZGVmYXVsdCBpcyB0aGUgdW1hc2sgb2YgdGhlIGN1cnJlbnQgcHJvY2Vzcy4KK1RoZSB2YWx1ZSBpcyBnaXZlbiBpbiBvY3RhbC4KKy5cIiBQcmVzZW50IHNpbmNlIExpbnV4IDIuNS40My4KKy5UUAorLkJJIGZtYXNrPSB2YWx1ZQorU2V0IHRoZSB1bWFzayBhcHBsaWVkIHRvIHJlZ3VsYXIgZmlsZXMgb25seS4KK1RoZSBkZWZhdWx0IGlzIHRoZSB1bWFzayBvZiB0aGUgY3VycmVudCBwcm9jZXNzLgorVGhlIHZhbHVlIGlzIGdpdmVuIGluIG9jdGFsLgorLlwiIFByZXNlbnQgc2luY2UgTGludXggMi41LjQzLgorLlRQCisuQkkgYWxsb3dfdXRpbWU9IHZhbHVlCitUaGlzIG9wdGlvbiBjb250cm9scyB0aGUgcGVybWlzc2lvbiBjaGVjayBvZiBtdGltZS9hdGltZS4KKy5SUworLlRQCisuQiAyMAorSWYgY3VycmVudCBwcm9jZXNzIGlzIGluIGdyb3VwIG9mIGZpbGUncyBncm91cCBJRCwgeW91IGNhbiBjaGFuZ2UgdGltZXN0YW1wLgorLlRQCisuQiAyCitPdGhlciB1c2VycyBjYW4gY2hhbmdlIHRpbWVzdGFtcC4KKy5QUAorVGhlIGRlZmF1bHQgaXMgc2V0IGZyb20gYGRtYXNrJyBvcHRpb24uIChJZiB0aGUgZGlyZWN0b3J5IGlzIHdyaXRhYmxlLAorLkIgdXRpbWUoMikKK2lzIGFsc28gYWxsb3dlZC4gSS5lLiB+ZG1hc2sgJiAwMjIpCisKK05vcm1hbGx5CisuQiB1dGltZSgyKQorY2hlY2tzIGN1cnJlbnQgcHJvY2VzcyBpcyBvd25lciBvZiB0aGUgZmlsZSwgb3IgaXQgaGFzCitDQVBfRk9XTkVSIGNhcGFiaWxpdHkuICBCdXQgRkFUIGZpbGVzeXN0ZW0gZG9lc24ndCBoYXZlIHVpZC9naWQgb24gZGlzaywgc28KK25vcm1hbCBjaGVjayBpcyB0b28gdW5mbGV4aWJsZS4gV2l0aCB0aGlzIG9wdGlvbiB5b3UgY2FuIHJlbGF4IGl0LgorLlJFCisuVFAKKy5CSSBjaGVjaz0gdmFsdWUKK1RocmVlIGRpZmZlcmVudCBsZXZlbHMgb2YgcGlja3luZXNzIGNhbiBiZSBjaG9zZW46CisuUlMKKy5UUAorLkJSIHIgWyBlbGF4ZWQgXQorVXBwZXIgYW5kIGxvd2VyIGNhc2UgYXJlIGFjY2VwdGVkIGFuZCBlcXVpdmFsZW50LCBsb25nIG5hbWUgcGFydHMgYXJlCit0cnVuY2F0ZWQgKGUuZy4KKy5JIHZlcnlsb25nbmFtZS5mb29iYXIKK2JlY29tZXMKKy5JUiB2ZXJ5bG9uZy5mb28gKSwKK2xlYWRpbmcgYW5kIGVtYmVkZGVkIHNwYWNlcyBhcmUgYWNjZXB0ZWQgaW4gZWFjaCBuYW1lIHBhcnQgKG5hbWUgYW5kIGV4dGVuc2lvbikuCisuVFAKKy5CUiBuIFsgb3JtYWwgXQorTGlrZSAicmVsYXhlZCIsIGJ1dCBtYW55IHNwZWNpYWwgY2hhcmFjdGVycyAoKiwgPywgPCwgc3BhY2VzLCBldGMuKSBhcmUKK3JlamVjdGVkLiAgVGhpcyBpcyB0aGUgZGVmYXVsdC4KKy5UUAorLkJSIHMgWyB0cmljdCBdCitMaWtlICJub3JtYWwiLCBidXQgbmFtZXMgbWF5IG5vdCBjb250YWluIGxvbmcgcGFydHMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycwordGhhdCBhcmUgc29tZXRpbWVzIHVzZWQgb24gTGludXgsIGJ1dCBhcmUgbm90IGFjY2VwdGVkIGJ5IE1TLURPUyBhcmUKK3JlamVjdGVkLiAoKywgPSwgc3BhY2VzLCBldGMuKQorLlJFCisuVFAKKy5CSSBjb2RlcGFnZT0gdmFsdWUKK1NldHMgdGhlIGNvZGVwYWdlIGZvciBjb252ZXJ0aW5nIHRvIHNob3J0bmFtZSBjaGFyYWN0ZXJzIG9uIEZBVAorYW5kIFZGQVQgZmlsZXN5c3RlbXMuIEJ5IGRlZmF1bHQsIGNvZGVwYWdlIDQzNyBpcyB1c2VkLgorLlRQCisuQlIgY29udj0ge2IgWyBpbmFyeSBdfCB0IFsgZXh0IF18IGEgWyB1dG8gXX0KK1RoZQorLkkgZmF0CitmaWxlc3lzdGVtIGNhbiBwZXJmb3JtIENSTEY8LS0+TkwgKE1TLURPUyB0ZXh0IGZvcm1hdCB0byBVTklYIHRleHQKK2Zvcm1hdCkgY29udmVyc2lvbiBpbiB0aGUga2VybmVsLiBUaGUgZm9sbG93aW5nIGNvbnZlcnNpb24gbW9kZXMgYXJlCithdmFpbGFibGU6CisuUlMKKy5UUAorLkIgYmluYXJ5CitubyB0cmFuc2xhdGlvbiBpcyBwZXJmb3JtZWQuICBUaGlzIGlzIHRoZSBkZWZhdWx0LgorLlRQCisuQiB0ZXh0CitDUkxGPC0tPk5MIHRyYW5zbGF0aW9uIGlzIHBlcmZvcm1lZCBvbiBhbGwgZmlsZXMuCisuVFAKKy5CIGF1dG8KK0NSTEY8LS0+TkwgdHJhbnNsYXRpb24gaXMgcGVyZm9ybWVkIG9uIGFsbCBmaWxlcyB0aGF0IGRvbid0IGhhdmUgYQorIndlbGwta25vd24gYmluYXJ5IiBleHRlbnNpb24uIFRoZSBsaXN0IG9mIGtub3duIGV4dGVuc2lvbnMgY2FuIGJlIGZvdW5kIGF0Cit0aGUgYmVnaW5uaW5nIG9mCisuSSBmcy9mYXQvbWlzYy5jCisoYXMgb2YgMi4wLCB0aGUgbGlzdCBpczogZXhlLCBjb20sIGJpbiwgYXBwLCBzeXMsIGRydiwgb3ZsLCBvdnIsIG9iaiwKK2xpYiwgZGxsLCBwaWYsIGFyYywgemlwLCBsaGEsIGx6aCwgem9vLCB0YXIsIHosIGFyaiwgdHosIHRheiwgdHpwLCB0cHosCitneiwgdGd6LCBkZWIsIGdpZiwgYm1wLCB0aWYsIGdsLCBqcGcsIHBjeCwgdGZtLCB2ZiwgZ2YsIHBrLCBweGwsIGR2aSkuCisuUFAKK1Byb2dyYW1zIHRoYXQgZG8gY29tcHV0ZWQgbHNlZWtzIHdvbid0IGxpa2UgaW4ta2VybmVsIHRleHQgY29udmVyc2lvbi4KK1NldmVyYWwgcGVvcGxlIGhhdmUgaGFkIHRoZWlyIGRhdGEgcnVpbmVkIGJ5IHRoaXMgdHJhbnNsYXRpb24uIEJld2FyZSEKKworRm9yIGZpbGVzeXN0ZW1zIG1vdW50ZWQgaW4gYmluYXJ5IG1vZGUsIGEgY29udmVyc2lvbiB0b29sCisoZnJvbWRvcy90b2RvcykgaXMgYXZhaWxhYmxlLiBUaGlzIG9wdGlvbiBpcyBvYnNvbGV0ZS4KKy5SRQorLlRQCisuQkkgY3ZmX2Zvcm1hdD0gbW9kdWxlCitGb3JjZXMgdGhlIGRyaXZlciB0byB1c2UgdGhlIENWRiAoQ29tcHJlc3NlZCBWb2x1bWUgRmlsZSkgbW9kdWxlCisuUkkgY3ZmXyBtb2R1bGUKK2luc3RlYWQgb2YgYXV0by1kZXRlY3Rpb24uIElmIHRoZSBrZXJuZWwgc3VwcG9ydHMga21vZCwgdGhlCitjdmZfZm9ybWF0PXh4eCBvcHRpb24gYWxzbyBjb250cm9scyBvbi1kZW1hbmQgQ1ZGIG1vZHVsZSBsb2FkaW5nLgorVGhpcyBvcHRpb24gaXMgb2Jzb2xldGUuCisuVFAKKy5CSSBjdmZfb3B0aW9uPSBvcHRpb24KK09wdGlvbiBwYXNzZWQgdG8gdGhlIENWRiBtb2R1bGUuIFRoaXMgb3B0aW9uIGlzIG9ic29sZXRlLgorLlRQCisuQiBkZWJ1ZworVHVybiBvbiB0aGUKKy5JIGRlYnVnCitmbGFnLiAgQSB2ZXJzaW9uIHN0cmluZyBhbmQgYSBsaXN0IG9mIGZpbGVzeXN0ZW0gcGFyYW1ldGVycyB3aWxsIGJlCitwcmludGVkICh0aGVzZSBkYXRhIGFyZSBhbHNvIHByaW50ZWQgaWYgdGhlIHBhcmFtZXRlcnMgYXBwZWFyIHRvIGJlCitpbmNvbnNpc3RlbnQpLgorLlRQCisuQlIgZmF0PSB7MTIgfCAxNiB8IDMyIH0KK1NwZWNpZnkgYSAxMiwgMTYgb3IgMzIgYml0IGZhdC4gIFRoaXMgb3ZlcnJpZGVzCit0aGUgYXV0b21hdGljIEZBVCB0eXBlIGRldGVjdGlvbiByb3V0aW5lLiAgVXNlIHdpdGggY2F1dGlvbiEKKy5UUAorLkJJIGlvY2hhcnNldD0gdmFsdWUKK0NoYXJhY3RlciBzZXQgdG8gdXNlIGZvciBjb252ZXJ0aW5nIGJldHdlZW4gOCBiaXQgY2hhcmFjdGVycworYW5kIDE2IGJpdCBVbmljb2RlIGNoYXJhY3RlcnMuIFRoZSBkZWZhdWx0IGlzIGlzbzg4NTktMS4KK0xvbmcgZmlsZW5hbWVzIGFyZSBzdG9yZWQgb24gZGlzayBpbiBVbmljb2RlIGZvcm1hdC4KKy5UUAorLkJJIHR6PVVUQworVGhpcyBvcHRpb24gZGlzYWJsZXMgdGhlIGNvbnZlcnNpb24gb2YgdGltZXN0YW1wcworYmV0d2VlbiBsb2NhbCB0aW1lIChhcyB1c2VkIGJ5IFdpbmRvd3Mgb24gRkFUKSBhbmQgVVRDCisod2hpY2ggTGludXggdXNlcyBpbnRlcm5hbGx5KS4gIFRoaXMgaXMgcGFydGljdWxhcmx5Cit1c2VmdWwgd2hlbiBtb3VudGluZyBkZXZpY2VzIChsaWtlIGRpZ2l0YWwgY2FtZXJhcykKK3RoYXQgYXJlIHNldCB0byBVVEMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIHBpdGZhbGxzIG9mCitsb2NhbCB0aW1lLgorLlRQCisuQiBxdWlldAorVHVybiBvbiB0aGUKKy5JIHF1aWV0CitmbGFnLiAgQXR0ZW1wdHMgdG8gY2hvd24gb3IgY2htb2QgZmlsZXMgZG8gbm90IHJldHVybiBlcnJvcnMsCithbHRob3VnaCB0aGV5IGZhaWwuIFVzZSB3aXRoIGNhdXRpb24hCisuVFAKKy5CIHNob3dleGVjCitJZiBzZXQsIHRoZSBleGVjdXRlIHBlcm1pc3Npb24gYml0cyBvZiB0aGUgZmlsZSB3aWxsIGJlIGFsbG93ZWQgb25seSBpZgordGhlIGV4dGVuc2lvbiBwYXJ0IG9mIHRoZSBuYW1lIGlzIC5FWEUsIC5DT00sIG9yIC5CQVQuIE5vdCBzZXQgYnkgZGVmYXVsdC4KKy5UUAorLkIgc3lzX2ltbXV0YWJsZQorSWYgc2V0LCBBVFRSX1NZUyBhdHRyaWJ1dGUgb24gRkFUIGlzIGhhbmRsZWQgYXMgSU1NVVRBQkxFIGZsYWcgb24gTGludXguCitOb3Qgc2V0IGJ5IGRlZmF1bHQuCisuVFAKKy5CIGZsdXNoCitJZiBzZXQsIHRoZSBmaWxlc3lzdGVtIHdpbGwgdHJ5IHRvIGZsdXNoIHRvIGRpc2sgbW9yZSBlYXJseSB0aGFuIG5vcm1hbC4KK05vdCBzZXQgYnkgZGVmYXVsdC4KKy5UUAorLkIgdXNlZnJlZQorVXNlIHRoZSAiZnJlZSBjbHVzdGVycyIgdmFsdWUgc3RvcmVkIG9uIEZTSU5GTy4gSXQnbGwKK2JlIHVzZWQgdG8gZGV0ZXJtaW5lIG51bWJlciBvZiBmcmVlIGNsdXN0ZXJzIHdpdGhvdXQKK3NjYW5uaW5nIGRpc2suIEJ1dCBpdCdzIG5vdCB1c2VkIGJ5IGRlZmF1bHQsIGJlY2F1c2UKK3JlY2VudCBXaW5kb3dzIGRvbid0IHVwZGF0ZSBpdCBjb3JyZWN0bHkgaW4gc29tZQorY2FzZS4gSWYgeW91IGFyZSBzdXJlIHRoZSAiZnJlZSBjbHVzdGVycyIgb24gRlNJTkZPIGlzCitjb3JyZWN0LCBieSB0aGlzIG9wdGlvbiB5b3UgY2FuIGF2b2lkIHNjYW5uaW5nIGRpc2suCisuVFAKKy5CUiBkb3RzICIsICIgbm9kb3RzICIsICIgZG90c09LPSBbIHllcyB8IG5vIF0KK1ZhcmlvdXMgbWlzZ3VpZGVkIGF0dGVtcHRzIHRvIGZvcmNlIFVuaXggb3IgRE9TIGNvbnZlbnRpb25zCitvbnRvIGEgRkFUIGZpbGVzeXN0ZW0uCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgaGZzIgorLlRQCisuQkkgY3JlYXRvcj0gY2NjYyAiLCB0eXBlPSIgY2NjYworU2V0IHRoZSBjcmVhdG9yL3R5cGUgdmFsdWVzIGFzIHNob3duIGJ5IHRoZSBNYWNPUyBmaW5kZXIKK3VzZWQgZm9yIGNyZWF0aW5nIG5ldyBmaWxlcy4gIERlZmF1bHQgdmFsdWVzOiAnPz8/PycuCisuVFAKKy5CSSB1aWQ9IG4gIiwgZ2lkPSIgbgorU2V0IHRoZSBvd25lciBhbmQgZ3JvdXAgb2YgYWxsIGZpbGVzLgorKERlZmF1bHQ6IHRoZSB1aWQgYW5kIGdpZCBvZiB0aGUgY3VycmVudCBwcm9jZXNzLikKKy5UUAorLkJJIGRpcl91bWFzaz0gbiAiLCBmaWxlX3VtYXNrPSIgbiAiLCB1bWFzaz0iIG4KK1NldCB0aGUgdW1hc2sgdXNlZCBmb3IgYWxsIGRpcmVjdG9yaWVzLCBhbGwgcmVndWxhciBmaWxlcywgb3IgYWxsCitmaWxlcyBhbmQgZGlyZWN0b3JpZXMuICBEZWZhdWx0cyB0byB0aGUgdW1hc2sgb2YgdGhlIGN1cnJlbnQgcHJvY2Vzcy4KKy5UUAorLkJJIHNlc3Npb249IG4KK1NlbGVjdCB0aGUgQ0RST00gc2Vzc2lvbiB0byBtb3VudC4KK0RlZmF1bHRzIHRvIGxlYXZpbmcgdGhhdCBkZWNpc2lvbiB0byB0aGUgQ0RST00gZHJpdmVyLgorVGhpcyBvcHRpb24gd2lsbCBmYWlsIHdpdGggYW55dGhpbmcgYnV0IGEgQ0RST00gYXMgdW5kZXJseWluZyBkZXZpY2UuCisuVFAKKy5CSSBwYXJ0PSBuCitTZWxlY3QgcGFydGl0aW9uIG51bWJlciBuIGZyb20gdGhlIGRldmljZS4KK09ubHkgbWFrZXMgc2Vuc2UgZm9yIENEUk9NUy4KK0RlZmF1bHRzIHRvIG5vdCBwYXJzaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgYXQgYWxsLgorLlRQCisuQiBxdWlldAorRG9uJ3QgY29tcGxhaW4gYWJvdXQgaW52YWxpZCBtb3VudCBvcHRpb25zLgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIGhwZnMiCisuVFAKK1xmQnVpZD1cZlBcZkl2YWx1ZVxmUCBhbmQgXGZCZ2lkPVxmUFxmSXZhbHVlXGZQCitTZXQgdGhlIG93bmVyIGFuZCBncm91cCBvZiBhbGwgZmlsZXMuIChEZWZhdWx0OiB0aGUgdWlkIGFuZCBnaWQKK29mIHRoZSBjdXJyZW50IHByb2Nlc3MuKQorLlRQCisuQkkgdW1hc2s9IHZhbHVlCitTZXQgdGhlIHVtYXNrICh0aGUgYml0bWFzayBvZiB0aGUgcGVybWlzc2lvbnMgdGhhdCBhcmUKKy5CIG5vdAorcHJlc2VudCkuIFRoZSBkZWZhdWx0IGlzIHRoZSB1bWFzayBvZiB0aGUgY3VycmVudCBwcm9jZXNzLgorVGhlIHZhbHVlIGlzIGdpdmVuIGluIG9jdGFsLgorLlRQCisuQlIgY2FzZT0geyBsb3dlciB8IGFzaXMgfQorQ29udmVydCBhbGwgZmlsZXMgbmFtZXMgdG8gbG93ZXIgY2FzZSwgb3IgbGVhdmUgdGhlbS4KKyhEZWZhdWx0OgorLkJSIGNhc2U9bG93ZXIgLikKKy5UUAorLkJSIGNvbnY9IHsgYmluYXJ5IHwgdGV4dCB8IGF1dG8gfQorRm9yCisuQlIgY29udj10ZXh0ICwKK2RlbGV0ZSBzb21lIHJhbmRvbSBDUnMgKGluIHBhcnRpY3VsYXIsIGFsbCBmb2xsb3dlZCBieSBOTCkKK3doZW4gcmVhZGluZyBhIGZpbGUuCitGb3IKKy5CUiBjb252PWF1dG8gLAorY2hvb3NlIG1vcmUgb3IgbGVzcyBhdCByYW5kb20gYmV0d2VlbgorLkJSIGNvbnY9YmluYXJ5ICIgYW5kICIgY29udj10ZXh0IC4KK0ZvcgorLkJSIGNvbnY9YmluYXJ5ICwKK2p1c3QgcmVhZCB3aGF0IGlzIGluIHRoZSBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0LgorLlRQCisuQiBub2NoZWNrCitEbyBub3QgYWJvcnQgbW91bnRpbmcgd2hlbiBjZXJ0YWluIGNvbnNpc3RlbmN5IGNoZWNrcyBmYWlsLgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIGlzbzk2NjAiCitJU08gOTY2MCBpcyBhIHN0YW5kYXJkIGRlc2NyaWJpbmcgYSBmaWxlc3lzdGVtIHN0cnVjdHVyZSB0byBiZSB1c2VkCitvbiBDRC1ST01zLiAoVGhpcyBmaWxlc3lzdGVtIHR5cGUgaXMgYWxzbyBzZWVuIG9uIHNvbWUgRFZEcy4gU2VlIGFsc28gdGhlCisuSSB1ZGYKK2ZpbGVzeXN0ZW0uKQorCitOb3JtYWwKKy5JIGlzbzk2NjAKK2ZpbGVuYW1lcyBhcHBlYXIgaW4gYSA4LjMgZm9ybWF0IChpLmUuLCBET1MtbGlrZSByZXN0cmljdGlvbnMgb24gZmlsZW5hbWUKK2xlbmd0aCksIGFuZCBpbiBhZGRpdGlvbiBhbGwgY2hhcmFjdGVycyBhcmUgaW4gdXBwZXIgY2FzZS4gIEFsc28gdGhlcmUgaXMKK25vIGZpZWxkIGZvciBmaWxlIG93bmVyc2hpcCwgcHJvdGVjdGlvbiwgbnVtYmVyIG9mIGxpbmtzLCBwcm92aXNpb24gZm9yCitibG9jay9jaGFyYWN0ZXIgZGV2aWNlcywgZXRjLgorCitSb2NrIFJpZGdlIGlzIGFuIGV4dGVuc2lvbiB0byBpc285NjYwIHRoYXQgcHJvdmlkZXMgYWxsIG9mIHRoZXNlIHVuaXggbGlrZQorZmVhdHVyZXMuICBCYXNpY2FsbHkgdGhlcmUgYXJlIGV4dGVuc2lvbnMgdG8gZWFjaCBkaXJlY3RvcnkgcmVjb3JkIHRoYXQKK3N1cHBseSBhbGwgb2YgdGhlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIGFuZCB3aGVuIFJvY2sgUmlkZ2UgaXMgaW4gdXNlLAordGhlIGZpbGVzeXN0ZW0gaXMgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBhIG5vcm1hbCBVTklYIGZpbGVzeXN0ZW0gKGV4Y2VwdAordGhhdCBpdCBpcyByZWFkLW9ubHksIG9mIGNvdXJzZSkuCisuVFAKKy5CIG5vcm9jaworRGlzYWJsZSB0aGUgdXNlIG9mIFJvY2sgUmlkZ2UgZXh0ZW5zaW9ucywgZXZlbiBpZiBhdmFpbGFibGUuIENmLlwmCisuQlIgbWFwIC4KKy5UUAorLkIgbm9qb2xpZXQKK0Rpc2FibGUgdGhlIHVzZSBvZiBNaWNyb3NvZnQgSm9saWV0IGV4dGVuc2lvbnMsIGV2ZW4gaWYgYXZhaWxhYmxlLiBDZi5cJgorLkJSIG1hcCAuCisuVFAKKy5CUiBjaGVjaz0geyByIFsgZWxheGVkIF18IHMgWyB0cmljdCBdfQorV2l0aAorLkJSIGNoZWNrPXJlbGF4ZWQgLAorYSBmaWxlbmFtZSBpcyBmaXJzdCBjb252ZXJ0ZWQgdG8gbG93ZXIgY2FzZSBiZWZvcmUgZG9pbmcgdGhlIGxvb2t1cC4KK1RoaXMgaXMgcHJvYmFibHkgb25seSBtZWFuaW5nZnVsIHRvZ2V0aGVyIHdpdGgKKy5CIG5vcm9jaworYW5kCisuQlIgbWFwPW5vcm1hbCAuCisoRGVmYXVsdDoKKy5CUiBjaGVjaz1zdHJpY3QgLikKKy5UUAorXGZCdWlkPVxmUFxmSXZhbHVlXGZQIGFuZCBcZkJnaWQ9XGZQXGZJdmFsdWVcZlAKK0dpdmUgYWxsIGZpbGVzIGluIHRoZSBmaWxlc3lzdGVtIHRoZSBpbmRpY2F0ZWQgdXNlciBvciBncm91cCBpZCwKK3Bvc3NpYmx5IG92ZXJyaWRpbmcgdGhlIGluZm9ybWF0aW9uIGZvdW5kIGluIHRoZSBSb2NrIFJpZGdlIGV4dGVuc2lvbnMuCisoRGVmYXVsdDoKKy5CUiB1aWQ9MCxnaWQ9MCAuKQorLlRQCisuQlIgbWFwPSB7IG4gWyBvcm1hbCBdfCBvIFsgZmYgXXwgYSBbIGNvcm4gXX0KK0ZvciBub24tUm9jayBSaWRnZSB2b2x1bWVzLCBub3JtYWwgbmFtZSB0cmFuc2xhdGlvbiBtYXBzIHVwcGVyCit0byBsb3dlciBjYXNlIEFTQ0lJLCBkcm9wcyBhIHRyYWlsaW5nIGA7MScsIGFuZCBjb252ZXJ0cyBgOycgdG8gYC4nLgorV2l0aAorLkIgbWFwPW9mZgorbm8gbmFtZSB0cmFuc2xhdGlvbiBpcyBkb25lLiBTZWUKKy5CUiBub3JvY2sgLgorKERlZmF1bHQ6CisuQlIgbWFwPW5vcm1hbCAuKQorLkIgbWFwPWFjb3JuCitpcyBsaWtlCisuQlIgbWFwPW5vcm1hbAorYnV0IGFsc28gYXBwbHkgQWNvcm4gZXh0ZW5zaW9ucyBpZiBwcmVzZW50LgorLlRQCisuQkkgbW9kZT0gdmFsdWUKK0ZvciBub24tUm9jayBSaWRnZSB2b2x1bWVzLCBnaXZlIGFsbCBmaWxlcyB0aGUgaW5kaWNhdGVkIG1vZGUuCisoRGVmYXVsdDogcmVhZCBwZXJtaXNzaW9uIGZvciBldmVyeWJvZHkuKQorU2luY2UgTGludXggMi4xLjM3IG9uZSBubyBsb25nZXIgbmVlZHMgdG8gc3BlY2lmeSB0aGUgbW9kZSBpbgorZGVjaW1hbC4gKE9jdGFsIGlzIGluZGljYXRlZCBieSBhIGxlYWRpbmcgMC4pCisuVFAKKy5CIHVuaGlkZQorQWxzbyBzaG93IGhpZGRlbiBhbmQgYXNzb2NpYXRlZCBmaWxlcy4KKyhJZiB0aGUgb3JkaW5hcnkgZmlsZXMgYW5kIHRoZSBhc3NvY2lhdGVkIG9yIGhpZGRlbiBmaWxlcyBoYXZlCit0aGUgc2FtZSBmaWxlbmFtZXMsIHRoaXMgbWF5IG1ha2UgdGhlIG9yZGluYXJ5IGZpbGVzIGluYWNjZXNzaWJsZS4pCisuVFAKKy5CUiBibG9jaz0geyA1MTIgfCAxMDI0IHwgMjA0OCB9CitTZXQgdGhlIGJsb2NrIHNpemUgdG8gdGhlIGluZGljYXRlZCB2YWx1ZS4KKyhEZWZhdWx0OgorLkJSIGJsb2NrPTEwMjQgLikKKy5UUAorLkJSIGNvbnY9IHsgYSBbIHV0byBdfCBiIFsgaW5hcnkgXXwgbSBbIHRleHQgXXwgdCBbIGV4dCBdfQorKERlZmF1bHQ6CisuQlIgY29udj1iaW5hcnkgLikKK1NpbmNlIExpbnV4IDEuMy41NCB0aGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IGFueW1vcmUuCisoQW5kIG5vbi1iaW5hcnkgc2V0dGluZ3MgdXNlZCB0byBiZSB2ZXJ5IGRhbmdlcm91cywKK3Bvc3NpYmx5IGxlYWRpbmcgdG8gc2lsZW50IGRhdGEgY29ycnVwdGlvbi4pCisuVFAKKy5CIGNydWZ0CitJZiB0aGUgaGlnaCBieXRlIG9mIHRoZSBmaWxlIGxlbmd0aCBjb250YWlucyBvdGhlciBnYXJiYWdlLAorc2V0IHRoaXMgbW91bnQgb3B0aW9uIHRvIGlnbm9yZSB0aGUgaGlnaCBvcmRlciBiaXRzIG9mIHRoZSBmaWxlIGxlbmd0aC4KK1RoaXMgaW1wbGllcyB0aGF0IGEgZmlsZSBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gMTZNQi4KKy5UUAorLkJJIHNlc3Npb249IHgKK1NlbGVjdCBudW1iZXIgb2Ygc2Vzc2lvbiBvbiBtdWx0aXNlc3Npb24gQ0QuIChTaW5jZSAyLjMuNC4pCisuVFAKKy5CSSBzYnNlY3Rvcj0geHh4CitTZXNzaW9uIGJlZ2lucyBmcm9tIHNlY3RvciB4eHguIChTaW5jZSAyLjMuNC4pCisuTFAKK1RoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZm9yIHZmYXQgYW5kIHNwZWNpZnlpbmcgdGhlbSBvbmx5IG1ha2VzCitzZW5zZSB3aGVuIHVzaW5nIGRpc2NzIGVuY29kZWQgdXNpbmcgTWljcm9zb2Z0J3MgSm9saWV0IGV4dGVuc2lvbnMuCisuVFAKKy5CSSBpb2NoYXJzZXQ9IHZhbHVlCitDaGFyYWN0ZXIgc2V0IHRvIHVzZSBmb3IgY29udmVydGluZyAxNiBiaXQgVW5pY29kZSBjaGFyYWN0ZXJzIG9uIENECit0byA4IGJpdCBjaGFyYWN0ZXJzLiBUaGUgZGVmYXVsdCBpcyBpc284ODU5LTEuCisuVFAKKy5CIHV0ZjgKK0NvbnZlcnQgMTYgYml0IFVuaWNvZGUgY2hhcmFjdGVycyBvbiBDRCB0byBVVEYtOC4KKworLlNIICJNb3VudCBvcHRpb25zIGZvciBqZnMiCisuVFAKKy5CSSBpb2NoYXJzZXQ9IG5hbWUKK0NoYXJhY3RlciBzZXQgdG8gdXNlIGZvciBjb252ZXJ0aW5nIGZyb20gVW5pY29kZSB0byBBU0NJSS4gIFRoZSBkZWZhdWx0IGlzCit0byBkbyBubyBjb252ZXJzaW9uLiAgVXNlCisuQiBpb2NoYXJzZXQ9dXRmOAorZm9yIFVURjggdHJhbnNsYXRpb25zLiAgVGhpcyByZXF1aXJlcyBDT05GSUdfTkxTX1VURjggdG8gYmUgc2V0IGluCit0aGUga2VybmVsCisuSSAiLmNvbmZpZyIKK2ZpbGUuCisuVFAKKy5CSSByZXNpemU9IHZhbHVlCitSZXNpemUgdGhlIHZvbHVtZSB0bworLkkgdmFsdWUKK2Jsb2Nrcy4gSkZTIG9ubHkgc3VwcG9ydHMgZ3Jvd2luZyBhIHZvbHVtZSwgbm90IHNocmlua2luZyBpdC4gVGhpcyBvcHRpb24KK2lzIG9ubHkgdmFsaWQgZHVyaW5nIGEgcmVtb3VudCwgd2hlbiB0aGUgdm9sdW1lIGlzIG1vdW50ZWQgcmVhZC13cml0ZS4gVGhlCisuQiByZXNpemUKK2tleXdvcmQgd2l0aCBubyB2YWx1ZSB3aWxsIGdyb3cgdGhlIHZvbHVtZSB0byB0aGUgZnVsbCBzaXplIG9mIHRoZSBwYXJ0aXRpb24uCisuVFAKKy5CIG5vaW50ZWdyaXR5CitEbyBub3Qgd3JpdGUgdG8gdGhlIGpvdXJuYWwuICBUaGUgcHJpbWFyeSB1c2Ugb2YgdGhpcyBvcHRpb24gaXMgdG8gYWxsb3cKK2ZvciBoaWdoZXIgcGVyZm9ybWFuY2Ugd2hlbiByZXN0b3JpbmcgYSB2b2x1bWUgZnJvbSBiYWNrdXAgbWVkaWEuIFRoZQoraW50ZWdyaXR5IG9mIHRoZSB2b2x1bWUgaXMgbm90IGd1YXJhbnRlZWQgaWYgdGhlIHN5c3RlbSBhYm5vcm1hbGx5IGFiZW5kcy4KKy5UUAorLkIgaW50ZWdyaXR5CitEZWZhdWx0LiAgQ29tbWl0IG1ldGFkYXRhIGNoYW5nZXMgdG8gdGhlIGpvdXJuYWwuICBVc2UgdGhpcyBvcHRpb24gdG8gcmVtb3VudAorYSB2b2x1bWUgd2hlcmUgdGhlCisuQiBub2ludGVncml0eQorb3B0aW9uIHdhcyBwcmV2aW91c2x5IHNwZWNpZmllZCBpbiBvcmRlciB0byByZXN0b3JlIG5vcm1hbCBiZWhhdmlvci4KKy5UUAorLkJSIGVycm9ycz0geyBjb250aW51ZSB8IHJlbW91bnQtcm8gfCBwYW5pYyB9CitEZWZpbmUgdGhlIGJlaGF2aW91ciB3aGVuIGFuIGVycm9yIGlzIGVuY291bnRlcmVkLgorKEVpdGhlciBpZ25vcmUgZXJyb3JzIGFuZCBqdXN0IG1hcmsgdGhlIGZpbGVzeXN0ZW0gZXJyb25lb3VzIGFuZCBjb250aW51ZSwKK29yIHJlbW91bnQgdGhlIGZpbGVzeXN0ZW0gcmVhZC1vbmx5LCBvciBwYW5pYyBhbmQgaGFsdCB0aGUgc3lzdGVtLikKKy5UUAorLkJSIG5vcXVvdGEgfCBxdW90YSB8IHVzcnF1b3RhIHwgZ3JwcXVvdGEKK1RoZXNlIG9wdGlvbnMgYXJlIGFjY2VwdGVkIGJ1dCBpZ25vcmVkLgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIG1pbml4IgorTm9uZS4KKworLlNIICJNb3VudCBvcHRpb25zIGZvciBtc2RvcyIKK1NlZSBtb3VudCBvcHRpb25zIGZvciBmYXQuCitJZiB0aGUKKy5JIG1zZG9zCitmaWxlc3lzdGVtIGRldGVjdHMgYW4gaW5jb25zaXN0ZW5jeSwgaXQgcmVwb3J0cyBhbiBlcnJvciBhbmQgc2V0cyB0aGUgZmlsZQorc3lzdGVtIHJlYWQtb25seS4gVGhlIGZpbGVzeXN0ZW0gY2FuIGJlIG1hZGUgd3JpdGVhYmxlIGFnYWluIGJ5IHJlbW91bnRpbmcKK2l0LgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIG5jcGZzIgorSnVzdCBsaWtlCisuSVIgbmZzICIsIHRoZSAiIG5jcGZzCitpbXBsZW1lbnRhdGlvbiBleHBlY3RzIGEgYmluYXJ5IGFyZ3VtZW50IChhCisuSVIgInN0cnVjdCBuY3BfbW91bnRfZGF0YSIgKQordG8gdGhlIG1vdW50IHN5c3RlbSBjYWxsLiBUaGlzIGFyZ3VtZW50IGlzIGNvbnN0cnVjdGVkIGJ5CisuQlIgbmNwbW91bnQgKDgpCithbmQgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZgorLkIgbW91bnQKKygyLjEyKSBkb2VzIG5vdCBrbm93IGFueXRoaW5nIGFib3V0IG5jcGZzLgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIG5mcyBhbmQgbmZzNCIKK1NlZSB0aGUgb3B0aW9ucyBzZWN0aW9uIG9mIHRoZQorLkJSIG5mcyAoNSkKK21hbiBwYWdlIChuZnMtdXRpbHMgcGFja2FnZSBtdXN0IGJlIGluc3RhbGxlZCkuCisKK1RoZQorLklSIG5mcyAiIGFuZCAiIG5mczQKK2ltcGxlbWVudGF0aW9uIGV4cGVjdHMgYSBiaW5hcnkgYXJndW1lbnQgKGEKKy5JUiAic3RydWN0IG5mc19tb3VudF9kYXRhIiApCit0byB0aGUgbW91bnQgc3lzdGVtIGNhbGwuIFRoaXMgYXJndW1lbnQgaXMgY29uc3RydWN0ZWQgYnkKKy5CUiBtb3VudC5uZnMgKDgpCithbmQgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZgorLkIgbW91bnQKKygyLjEzKSBkb2VzIG5vdCBrbm93IGFueXRoaW5nIGFib3V0IG5mcyBhbmQgbmZzNC4KKworLlNIICJNb3VudCBvcHRpb25zIGZvciBudGZzIgorLlRQCisuQkkgaW9jaGFyc2V0PSBuYW1lCitDaGFyYWN0ZXIgc2V0IHRvIHVzZSB3aGVuIHJldHVybmluZyBmaWxlIG5hbWVzLgorVW5saWtlIFZGQVQsIE5URlMgc3VwcHJlc3NlcyBuYW1lcyB0aGF0IGNvbnRhaW4KK3VuY29udmVydGlibGUgY2hhcmFjdGVycy4gRGVwcmVjYXRlZC4KKy5cIiBzaW5jZSAyLjUuMTEKKy5UUAorLkJJIG5scz0gbmFtZQorTmV3IG5hbWUgZm9yIHRoZSBvcHRpb24gZWFybGllciBjYWxsZWQKKy5JUiBpb2NoYXJzZXQgLgorLlwiIHNpbmNlIDIuNS4xMQorLlRQCisuQlIgdXRmOAorVXNlIFVURi04IGZvciBjb252ZXJ0aW5nIGZpbGUgbmFtZXMuCisuVFAKKy5CUiB1bmlfeGxhdGU9IHsgMCB8IDEgfCAyIH0KK0ZvciAwIChvciBgbm8nIG9yIGBmYWxzZScpLCBkbyBub3QgdXNlIGVzY2FwZSBzZXF1ZW5jZXMKK2ZvciB1bmtub3duIFVuaWNvZGUgY2hhcmFjdGVycy4KK0ZvciAxIChvciBgeWVzJyBvciBgdHJ1ZScpIG9yIDIsIHVzZSB2ZmF0LXN0eWxlIDQtYnl0ZSBlc2NhcGUgc2VxdWVuY2VzCitzdGFydGluZyB3aXRoICI6Ii4gSGVyZSAyIGdpdmUgYSBsaXR0bGUtZW5kaWFuIGVuY29kaW5nCithbmQgMSBhIGJ5dGVzd2FwcGVkIGJpZ2VuZGlhbiBlbmNvZGluZy4KKy5UUAorLkIgcG9zaXg9WzB8MV0KK0lmIGVuYWJsZWQgKHBvc2l4PTEpLCB0aGUgZmlsZXN5c3RlbSBkaXN0aW5ndWlzaGVzIGJldHdlZW4KK3VwcGVyIGFuZCBsb3dlciBjYXNlLiBUaGUgOC4zIGFsaWFzIG5hbWVzIGFyZSBwcmVzZW50ZWQgYXMKK2hhcmQgbGlua3MgaW5zdGVhZCBvZiBiZWluZyBzdXBwcmVzc2VkLiBUaGlzIG9wdGlvbiBpcyBvYnNvbGV0ZS4KKy5UUAorXGZCdWlkPVxmUFxmSXZhbHVlXGZQLCBcZkJnaWQ9XGZQXGZJdmFsdWVcZlAgYW5kIFxmQnVtYXNrPVxmUFxmSXZhbHVlXGZQCitTZXQgdGhlIGZpbGUgcGVybWlzc2lvbiBvbiB0aGUgZmlsZXN5c3RlbS4KK1RoZSB1bWFzayB2YWx1ZSBpcyBnaXZlbiBpbiBvY3RhbC4KK0J5IGRlZmF1bHQsIHRoZSBmaWxlcyBhcmUgb3duZWQgYnkgcm9vdCBhbmQgbm90IHJlYWRhYmxlIGJ5IHNvbWVib2R5IGVsc2UuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgcHJvYyIKKy5UUAorXGZCdWlkPVxmUFxmSXZhbHVlXGZQIGFuZCBcZkJnaWQ9XGZQXGZJdmFsdWVcZlAKK1RoZXNlIG9wdGlvbnMgYXJlIHJlY29nbml6ZWQsIGJ1dCBoYXZlIG5vIGVmZmVjdCBhcyBmYXIgYXMgSSBjYW4gc2VlLgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIHJhbWZzIgorUmFtZnMgaXMgYSBtZW1vcnkgYmFzZWQgZmlsZXN5c3RlbS4gTW91bnQgaXQgYW5kIHlvdSBoYXZlIGl0LiBVbm1vdW50IGl0CithbmQgaXQgaXMgZ29uZS4gUHJlc2VudCBzaW5jZSBMaW51eCAyLjMuOTlwcmU0LgorVGhlcmUgYXJlIG5vIG1vdW50IG9wdGlvbnMuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgcmVpc2VyZnMiCitSZWlzZXJmcyBpcyBhIGpvdXJuYWxpbmcgZmlsZXN5c3RlbS4KKy5UUAorLkJSIGNvbnYKK0luc3RydWN0cyB2ZXJzaW9uIDMuNiByZWlzZXJmcyBzb2Z0d2FyZSB0byBtb3VudCBhIHZlcnNpb24gMy41IGZpbGVzeXN0ZW0sCit1c2luZyB0aGUgMy42IGZvcm1hdCBmb3IgbmV3bHkgY3JlYXRlZCBvYmplY3RzLiBUaGlzIGZpbGVzeXN0ZW0gd2lsbCBubworbG9uZ2VyIGJlIGNvbXBhdGlibGUgd2l0aCByZWlzZXJmcyAzLjUgdG9vbHMuCisuVFAKKy5CUiBoYXNoPSB7IHJ1cGFzb3YgfCB0ZWEgfCByNSB8IGRldGVjdCB9CitDaG9vc2Ugd2hpY2ggaGFzaCBmdW5jdGlvbiByZWlzZXJmcyB3aWxsIHVzZSB0byBmaW5kIGZpbGVzIHdpdGhpbiBkaXJlY3Rvcmllcy4KKy5SUworLlRQCisuQiBydXBhc292CitBIGhhc2ggaW52ZW50ZWQgYnkgWXVyeSBZdS4gUnVwYXNvdi4gIEl0IGlzIGZhc3QgYW5kIHByZXNlcnZlcyBsb2NhbGl0eSwKK21hcHBpbmcgbGV4aWNvZ3JhcGhpY2FsbHkgY2xvc2UgZmlsZSBuYW1lcyB0byBjbG9zZSBoYXNoIHZhbHVlcy4KK1RoaXMgb3B0aW9uIHNob3VsZCBub3QgYmUgdXNlZCwgYXMgaXQgY2F1c2VzIGEgaGlnaCBwcm9iYWJpbGl0eSBvZiBoYXNoCitjb2xsaXNpb25zLgorLlRQCisuQiB0ZWEKK0EgRGF2aXMtTWV5ZXIgZnVuY3Rpb24gaW1wbGVtZW50ZWQgYnkgSmVyZW15IEZpdHpoYXJkaW5nZS4KK0l0IHVzZXMgaGFzaCBwZXJtdXRpbmcgYml0cyBpbiB0aGUgbmFtZS4gIEl0IGdldHMgaGlnaCByYW5kb21uZXNzCithbmQsIHRoZXJlZm9yZSwgbG93IHByb2JhYmlsaXR5IG9mIGhhc2ggY29sbGlzaW9ucyBhdCBzb21lIENQVSBjb3N0LgorVGhpcyBtYXkgYmUgdXNlZCBpZiBFSEFTSENPTExJU0lPTiBlcnJvcnMgYXJlIGV4cGVyaWVuY2VkIHdpdGggdGhlIHI1IGhhc2guCisuVFAKKy5CIHI1CitBIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIHJ1cGFzb3YgaGFzaC4gSXQgaXMgdXNlZCBieSBkZWZhdWx0IGFuZCBpcwordGhlIGJlc3QgY2hvaWNlIHVubGVzcyB0aGUgZmlsZXN5c3RlbSBoYXMgaHVnZSBkaXJlY3RvcmllcyBhbmQKK3VudXN1YWwgZmlsZS1uYW1lIHBhdHRlcm5zLgorLlRQCisuQiBkZXRlY3QKK0luc3RydWN0cworLklSIG1vdW50Cit0byBkZXRlY3Qgd2hpY2ggaGFzaCBmdW5jdGlvbiBpcyBpbiB1c2UgYnkgZXhhbWluaW5nCit0aGUgZmlsZXN5c3RlbSBiZWluZyBtb3VudGVkLCAgYW5kIHRvIHdyaXRlIHRoaXMgaW5mb3JtYXRpb24gaW50bwordGhlIHJlaXNlcmZzIHN1cGVyYmxvY2suIFRoaXMgaXMgb25seSB1c2VmdWwgb24gdGhlIGZpcnN0IG1vdW50IG9mCithbiBvbGQgZm9ybWF0IGZpbGVzeXN0ZW0uCisuUkUKKy5UUAorLkJSIGhhc2hlZF9yZWxvY2F0aW9uCitUdW5lcyB0aGUgYmxvY2sgYWxsb2NhdG9yLiBUaGlzIG1heSBwcm92aWRlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cworaW4gc29tZSBzaXR1YXRpb25zLgorLlRQCisuQlIgbm9fdW5oYXNoZWRfcmVsb2NhdGlvbgorVHVuZXMgdGhlIGJsb2NrIGFsbG9jYXRvci4gVGhpcyBtYXkgcHJvdmlkZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMKK2luIHNvbWUgc2l0dWF0aW9ucy4KKy5UUAorLkJSIG5vYm9yZGVyCitEaXNhYmxlIHRoZSBib3JkZXIgYWxsb2NhdG9yIGFsZ29yaXRobSBpbnZlbnRlZCBieSBZdXJ5IFl1LiBSdXBhc292LgorVGhpcyBtYXkgcHJvdmlkZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgaW4gc29tZSBzaXR1YXRpb25zLgorLlRQCisuQlIgbm9sb2cKK0Rpc2FibGUgam91cm5hbGxpbmcuIFRoaXMgd2lsbCBwcm92aWRlIHNsaWdodCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgaW4KK3NvbWUgc2l0dWF0aW9ucyBhdCB0aGUgY29zdCBvZiBsb3NpbmcgcmVpc2VyZnMncyBmYXN0IHJlY292ZXJ5IGZyb20gY3Jhc2hlcy4KK0V2ZW4gd2l0aCB0aGlzIG9wdGlvbiB0dXJuZWQgb24sIHJlaXNlcmZzIHN0aWxsIHBlcmZvcm1zIGFsbCBqb3VybmFsbGluZworb3BlcmF0aW9ucywgc2F2ZSBmb3IgYWN0dWFsIHdyaXRlcyBpbnRvIGl0cyBqb3VybmFsbGluZyBhcmVhLiAgSW1wbGVtZW50YXRpb24KK29mCisuSVIgbm9sb2cKK2lzIGEgd29yayBpbiBwcm9ncmVzcy4KKy5UUAorLkJSIG5vdGFpbAorQnkgZGVmYXVsdCwgcmVpc2VyZnMgc3RvcmVzIHNtYWxsIGZpbGVzIGFuZCBgZmlsZSB0YWlscycgZGlyZWN0bHkgaW50byBpdHMKK3RyZWUuIFRoaXMgY29uZnVzZXMgc29tZSB1dGlsaXRpZXMgc3VjaCBhcworLkJSIExJTE8gKDgpLgorVGhpcyBvcHRpb24gaXMgdXNlZCB0byBkaXNhYmxlIHBhY2tpbmcgb2YgZmlsZXMgaW50byB0aGUgdHJlZS4KKy5UUAorLkJSIHJlcGxheW9ubHkKK1JlcGxheSB0aGUgdHJhbnNhY3Rpb25zIHdoaWNoIGFyZSBpbiB0aGUgam91cm5hbCwgYnV0IGRvIG5vdCBhY3R1YWxseQorbW91bnQgdGhlIGZpbGVzeXN0ZW0uIE1haW5seSB1c2VkIGJ5CisuSVIgcmVpc2VyZnNjayAuCisuVFAKKy5CSSByZXNpemU9IG51bWJlcgorQSByZW1vdW50IG9wdGlvbiB3aGljaCBwZXJtaXRzIG9ubGluZSBleHBhbnNpb24gb2YgcmVpc2VyZnMgcGFydGl0aW9ucy4KK0luc3RydWN0cyByZWlzZXJmcyB0byBhc3N1bWUgdGhhdCB0aGUgZGV2aWNlIGhhcworLkkgbnVtYmVyCitibG9ja3MuCitUaGlzIG9wdGlvbiBpcyBkZXNpZ25lZCBmb3IgdXNlIHdpdGggZGV2aWNlcyB3aGljaCBhcmUgdW5kZXIgbG9naWNhbAordm9sdW1lIG1hbmFnZW1lbnQgKExWTSkuCitUaGVyZSBpcyBhIHNwZWNpYWwKKy5JIHJlc2l6ZXIKK3V0aWxpdHkgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20KKy5JUiBmdHA6Ly9mdHAubmFtZXN5cy5jb20vcHViL3JlaXNlcmZzcHJvZ3MgLgorLlRQCisuQlIgdXNlcl94YXR0cgorRW5hYmxlIEV4dGVuZGVkIFVzZXIgQXR0cmlidXRlcy4gU2VlIHRoZQorLkJSIGF0dHIgKDUpCittYW51YWwgcGFnZS4KKy5UUAorLkJSIGFjbAorRW5hYmxlIFBPU0lYIEFjY2VzcyBDb250cm9sIExpc3RzLiBTZWUgdGhlCisuQlIgYWNsICg1KQorbWFudWFsIHBhZ2UuCisuVFAKKy5CUiBiYXJyaWVyPW5vbmUgIiAvICIgIGJhcnJpZXI9Zmx1c2ggIgorVGhpcyBlbmFibGVzL2Rpc2FibGVzIHRoZSB1c2Ugb2Ygd3JpdGUgYmFycmllcnMgaW4gdGhlIGpvdXJuYWxpbmcgY29kZS4KK2JhcnJpZXI9bm9uZSBkaXNhYmxlcyBpdCwgYmFycmllcj1mbHVzaCBlbmFibGVzIGl0LiBXcml0ZSBiYXJyaWVycyBlbmZvcmNlCitwcm9wZXIgb24tZGlzayBvcmRlcmluZyBvZiBqb3VybmFsIGNvbW1pdHMsIG1ha2luZyB2b2xhdGlsZSBkaXNrIHdyaXRlIGNhY2hlcworc2FmZSB0byB1c2UsIGF0IHNvbWUgcGVyZm9ybWFuY2UgcGVuYWx0eS4gVGhlIHJlaXNlcmZzIGZpbGVzeXN0ZW0gZG9lcyBub3QKK2VuYWJsZSB3cml0ZSBiYXJyaWVycyBieSBkZWZhdWx0LiBCZSBzdXJlIHRvIGVuYWJsZSBiYXJyaWVycyB1bmxlc3MgeW91ciBkaXNrcworYXJlIGJhdHRlcnktYmFja2VkIG9uZSB3YXkgb3IgYW5vdGhlci4gT3RoZXJ3aXNlIHlvdSByaXNrIGZpbGVzeXN0ZW0KK2NvcnJ1cHRpb24gaW4gY2FzZSBvZiBwb3dlciBmYWlsdXJlLgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIHJvbWZzIgorTm9uZS4KKworLlNIICJNb3VudCBvcHRpb25zIGZvciBzcXVhc2hmcyIKK05vbmUuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3Igc21iZnMiCitKdXN0IGxpa2UKKy5JUiBuZnMgIiwgdGhlICIgc21iZnMKK2ltcGxlbWVudGF0aW9uIGV4cGVjdHMgYSBiaW5hcnkgYXJndW1lbnQgKGEKKy5JUiAic3RydWN0IHNtYl9tb3VudF9kYXRhIiApCit0byB0aGUgbW91bnQgc3lzdGVtIGNhbGwuIFRoaXMgYXJndW1lbnQgaXMgY29uc3RydWN0ZWQgYnkKKy5CUiBzbWJtb3VudCAoOCkKK2FuZCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mCisuQiBtb3VudAorKDIuMTIpIGRvZXMgbm90IGtub3cgYW55dGhpbmcgYWJvdXQgc21iZnMuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3Igc3lzdiIKK05vbmUuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgdG1wZnMiCisuVFAKKy5CSSBzaXplPSBuYnl0ZXMKK092ZXJyaWRlIGRlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSBmaWxlc3lzdGVtLgorVGhlIHNpemUgaXMgZ2l2ZW4gaW4gYnl0ZXMsIGFuZCByb3VuZGVkIHVwIHRvIGVudGlyZSBwYWdlcy4KK1RoZSBkZWZhdWx0IGlzIGhhbGYgb2YgdGhlIG1lbW9yeS4gVGhlIHNpemUgcGFyYW1ldGVyIGFsc28gYWNjZXB0cyBhIHN1ZmZpeCAlCit0byBsaW1pdCB0aGlzIHRtcGZzIGluc3RhbmNlIHRvIHRoYXQgcGVyY2VudGFnZSBvZiB5b3VyIHBoeXNpY2FsIFJBTToKK3RoZSBkZWZhdWx0LCB3aGVuIG5laXRoZXIgc2l6ZSBub3IgbnJfYmxvY2tzIGlzIHNwZWNpZmllZCwgaXMgc2l6ZT01MCUKKy5UUAorLkIgbnJfYmxvY2tzPQorVGhlIHNhbWUgYXMgc2l6ZSwgYnV0IGluIGJsb2NrcyBvZiBQQUdFX0NBQ0hFX1NJWkUKKy5UUAorLkIgbnJfaW5vZGVzPQorVGhlIG1heGltdW0gbnVtYmVyIG9mIGlub2RlcyBmb3IgdGhpcyBpbnN0YW5jZS4gVGhlIGRlZmF1bHQKK2lzIGhhbGYgb2YgdGhlIG51bWJlciBvZiB5b3VyIHBoeXNpY2FsIFJBTSBwYWdlcywgb3IgKG9uIGEKK21hY2hpbmUgd2l0aCBoaWdobWVtKSB0aGUgbnVtYmVyIG9mIGxvd21lbSBSQU0gcGFnZXMsCit3aGljaGV2ZXIgaXMgdGhlIGxvd2VyLgorLlBQCitUaGUgdG1wZnMgbW91bnQgb3B0aW9ucyBmb3Igc2l6aW5nICgKKy5CUiBzaXplICwKKy5CUiBucl9ibG9ja3MgLAorYW5kCisuQlIgbnJfaW5vZGVzICkKK2FjY2VwdCBhIHN1ZmZpeAorLkJSIGsgLAorLkIgbQorb3IKKy5CIGcKK2ZvciBLaSwgTWksIEdpIChiaW5hcnkga2lsbywgbWVnYSBhbmQgZ2lnYSkgYW5kIGNhbiBiZSBjaGFuZ2VkIG9uIHJlbW91bnQuCisKKy5UUAorLkIgbW9kZT0KK1NldCBpbml0aWFsIHBlcm1pc3Npb25zIG9mIHRoZSByb290IGRpcmVjdG9yeS4KKy5UUAorLkIgdWlkPQorVGhlIHVzZXIgaWQuCisuVFAKKy5CIGdpZD0KK1RoZSBncm91cCBpZC4KKy5UUAorLkIgbXBvbD1bZGVmYXVsdHxwcmVmZXI6Tm9kZXxiaW5kOk5vZGVMaXN0fGludGVybGVhdmV8aW50ZXJsZWF2ZTpOb2RlTGlzdF0KK1NldCB0aGUgTlVNQSBtZW1vcnkgYWxsb2NhdGlvbiBwb2xpY3kgZm9yIGFsbCBmaWxlcyBpbiB0aGF0CitpbnN0YW5jZSAoaWYgdGhlIGtlcm5lbCBDT05GSUdfTlVNQSBpcyBlbmFibGVkKSAtIHdoaWNoIGNhbiBiZSBhZGp1c3RlZCBvbiB0aGUKK2ZseSB2aWEgJ21vdW50IC1vIHJlbW91bnQgLi4uJworLlJTCisuVFAKKy5CIGRlZmF1bHQKK3ByZWZlcnMgdG8gYWxsb2NhdGUgbWVtb3J5IGZyb20gdGhlIGxvY2FsIG5vZGUKKy5UUAorLkIgcHJlZmVyOk5vZGUKK3ByZWZlcnMgdG8gYWxsb2NhdGUgbWVtb3J5IGZyb20gdGhlIGdpdmVuIE5vZGUKKy5UUAorLkIgYmluZDpOb2RlTGlzdAorYWxsb2NhdGVzIG1lbW9yeSBvbmx5IGZyb20gbm9kZXMgaW4gTm9kZUxpc3QKKy5UUAorLkIgaW50ZXJsZWF2ZQorcHJlZmVycyB0byBhbGxvY2F0ZSBmcm9tIGVhY2ggbm9kZSBpbiB0dXJuCisuVFAKKy5CIGludGVybGVhdmU6Tm9kZUxpc3QKK2FsbG9jYXRlcyBmcm9tIGVhY2ggbm9kZSBvZiBOb2RlTGlzdCBpbiB0dXJuLgorLlBQCitUaGUgTm9kZUxpc3QgZm9ybWF0IGlzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZGVjaW1hbCBudW1iZXJzIGFuZCByYW5nZXMsIGEKK3JhbmdlIGJlaW5nIHR3byBoeXBoZW4tc2VwYXJhdGVkIGRlY2ltYWwgbnVtYmVycywgdGhlIHNtYWxsZXN0IGFuZCBsYXJnZXN0IG5vZGUKK251bWJlcnMgaW4gdGhlIHJhbmdlLiAgRm9yIGV4YW1wbGUsIG1wb2w9YmluZDowLTMsNSw3LDktMTUKKworTm90ZSB0aGF0IHRyeWluZyB0byBtb3VudCBhIHRtcGZzIHdpdGggYW4gbXBvbCBvcHRpb24gd2lsbCBmYWlsIGlmIHRoZQorcnVubmluZyBrZXJuZWwgZG9lcyBub3Qgc3VwcG9ydCBOVU1BOyBhbmQgd2lsbCBmYWlsIGlmIGl0cyBub2RlbGlzdAorc3BlY2lmaWVzIGEgbm9kZSB3aGljaCBpcyBub3Qgb25saW5lLiAgSWYgeW91ciBzeXN0ZW0gcmVsaWVzIG9uIHRoYXQKK3RtcGZzIGJlaW5nIG1vdW50ZWQsIGJ1dCBmcm9tIHRpbWUgdG8gdGltZSBydW5zIGEga2VybmVsIGJ1aWx0IHdpdGhvdXQKK05VTUEgY2FwYWJpbGl0eSAocGVyaGFwcyBhIHNhZmUgcmVjb3Zlcnkga2VybmVsKSwgb3Igd2l0aCBmZXdlciBub2Rlcworb25saW5lLCB0aGVuIGl0IGlzIGFkdmlzYWJsZSB0byBvbWl0IHRoZSBtcG9sIG9wdGlvbiBmcm9tIGF1dG9tYXRpYworbW91bnQgb3B0aW9ucy4gIEl0IGNhbiBiZSBhZGRlZCBsYXRlciwgd2hlbiB0aGUgdG1wZnMgaXMgYWxyZWFkeSBtb3VudGVkCitvbiBNb3VudFBvaW50LCBieSAnbW91bnQgLW8gcmVtb3VudCxtcG9sPVBvbGljeTpOb2RlTGlzdCBNb3VudFBvaW50Jy4KKy5QRQorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIHViaWZzIgorVUJJRlMgaXMgYSBmbGFzaCBmaWxlIHN5c3RlbSB3aGljaCB3b3JrcyBvbiB0b3Agb2YgVUJJIHZvbHVtZXMuIE5vdGUgdGhhdAorLkIKK2F0aW1lCitpcyBub3Qgc3VwcG9ydGVkIGFuZCBpcyBhbHdheXMgdHVybmVkIG9mZi4KKy5UUAorVGhlIGRldmljZSBuYW1lIG1heSBiZSBzcGVjaWZpZWQgYXMKKy5SUworLkIgdWJpWF9ZCitVQkkgZGV2aWNlIG51bWJlcgorLkJSIFggLAordm9sdW1lIG51bWJlcgorLkIgWQorLlRQCisuQiB1YmlZCitVQkkgZGV2aWNlIG51bWJlcgorLkJSIDAgLAordm9sdW1lIG51bWJlcgorLkIgWQorLlRQCisuQiB1YmlYOk5BTUUKK1VCSSBkZXZpY2UgbnVtYmVyCisuQlIgWCAsCit2b2x1bWUgd2l0aCBuYW1lCisuQiBOQU1FCisuVFAKKy5CIHViaTpOQU1FCitVQkkgZGV2aWNlIG51bWJlcgorLkJSIDAgLAordm9sdW1lIHdpdGggbmFtZQorLkIgTkFNRQorLlJFCitBbHRlcm5hdGl2ZQorLkIgIQorc2VwYXJhdG9yIG1heSBiZSB1c2VkIGluc3RlYWQgb2YKKy5CUiA6IC4KKy5UUAorVGhlIGZvbGxvd2luZyBtb3VudCBvcHRpb25zIGFyZSBhdmFpbGFibGU6CisuVFAKKy5CUiBidWxrX3JlYWQKK0VuYWJsZSBidWxrLXJlYWQuIFZGUyByZWFkLWFoZWFkIGlzIGRpc2FibGVkIGJlY2F1c2UgaXQgc2xvd3MgZG93biB0aGUgZmlsZQorc3lzdGVtLiBCdWxrLVJlYWQgaXMgYW4gaW50ZXJuYWwgb3B0aW1pemF0aW9uLiBTb21lIGZsYXNoZXMgbWF5IHJlYWQgZmFzdGVyIGlmCit0aGUgZGF0YSBhcmUgcmVhZCBhdCBvbmUgZ28sIHJhdGhlciB0aGFuIGF0IHNldmVyYWwgcmVhZCByZXF1ZXN0cy4gRm9yCitleGFtcGxlLCBPbmVOQU5EIGNhbiBkbyAicmVhZC13aGlsZS1sb2FkIiBpZiBpdCByZWFkcyBtb3JlIHRoYW4gb25lIE5BTkQgcGFnZS4KKy5UUAorLkJSIG5vX2J1bGtfcmVhZAorRG8gbm90IGJ1bGstcmVhZC4gVGhpcyBpcyB0aGUgZGVmYXVsdC4KKy5UUAorLkJSIGNoa19kYXRhX2NyYworQ2hlY2sgZGF0YSBDUkMtMzIgY2hlY2tzdW1zLiBUaGlzIGlzIHRoZSBkZWZhdWx0LgorLlRQCisuQlIgbm9fY2hrX2RhdGFfY3JjLgorRG8gbm90IGNoZWNrIGRhdGEgQ1JDLTMyIGNoZWNrc3Vtcy4gV2l0aCB0aGlzIG9wdGlvbiwgdGhlIGZpbGVzeXN0ZW0gZG9lcyBub3QKK2NoZWNrIENSQy0zMiBjaGVja3N1bSBmb3IgZGF0YSwgYnV0IGl0IGRvZXMgY2hlY2sgaXQgZm9yIHRoZSBpbnRlcm5hbCBpbmRleGluZworaW5mb3JtYXRpb24uIFRoaXMgb3B0aW9uIG9ubHkgYWZmZWN0cyByZWFkaW5nLCBub3Qgd3JpdGluZy4gQ1JDLTMyIGlzIGFsd2F5cworY2FsY3VsYXRlZCB3aGVuIHdyaXRpbmcgdGhlIGRhdGEuCisuVFAKKy5CUiBjb21wcj0geyBub25lIHwgbHpvIHwgemxpYiB9CitTZWxlY3QgdGhlIGRlZmF1bHQgY29tcHJlc3NvciB3aGljaCBpcyB1c2VkIHdoZW4gbmV3IGZpbGVzIGFyZSB3cml0dGVuLiBJdCBpcworc3RpbGwgcG9zc2libGUgdG8gcmVhZCBjb21wcmVzc2VkIGZpbGVzIGlmIG1vdW50ZWQgd2l0aCB0aGUKKy5CIG5vbmUKK29wdGlvbi4KKworLlNIICJNb3VudCBvcHRpb25zIGZvciB1ZGYiCit1ZGYgaXMgdGhlICJVbml2ZXJzYWwgRGlzayBGb3JtYXQiIGZpbGVzeXN0ZW0gZGVmaW5lZCBieSB0aGUgT3B0aWNhbAorU3RvcmFnZSBUZWNobm9sb2d5IEFzc29jaWF0aW9uLCBhbmQgaXMgb2Z0ZW4gdXNlZCBmb3IgRFZELVJPTS4KK1NlZSBhbHNvCisuSVIgaXNvOTY2MCAuCisuVFAKKy5CIGdpZD0KK1NldCB0aGUgZGVmYXVsdCBncm91cC4KKy5UUAorLkIgdW1hc2s9CitTZXQgdGhlIGRlZmF1bHQgdW1hc2suCitUaGUgdmFsdWUgaXMgZ2l2ZW4gaW4gb2N0YWwuCisuVFAKKy5CIHVpZD0KK1NldCB0aGUgZGVmYXVsdCB1c2VyLgorLlRQCisuQiB1bmhpZGUKK1Nob3cgb3RoZXJ3aXNlIGhpZGRlbiBmaWxlcy4KKy5UUAorLkIgdW5kZWxldGUKK1Nob3cgZGVsZXRlZCBmaWxlcyBpbiBsaXN0cy4KKy5UUAorLkIgbm9zdHJpY3QKK1Vuc2V0IHN0cmljdCBjb25mb3JtYW5jZS4KKy5cIiAuVFAKKy5cIiAuQiB1dGY4CisuXCIgKHVudXNlZCkuCisuVFAKKy5CIGlvY2hhcnNldAorU2V0IHRoZSBOTFMgY2hhcmFjdGVyIHNldC4KKy5UUAorLkIgYnM9CitTZXQgdGhlIGJsb2NrIHNpemUuIChNYXkgbm90IHdvcmsgdW5sZXNzIDIwNDguKQorLlRQCisuQiBub3ZycworU2tpcCB2b2x1bWUgc2VxdWVuY2UgcmVjb2duaXRpb24uCisuVFAKKy5CIHNlc3Npb249CitTZXQgdGhlIENEUk9NIHNlc3Npb24gY291bnRpbmcgZnJvbSAwLiBEZWZhdWx0OiBsYXN0IHNlc3Npb24uCisuVFAKKy5CIGFuY2hvcj0KK092ZXJyaWRlIHN0YW5kYXJkIGFuY2hvciBsb2NhdGlvbi4gRGVmYXVsdDogMjU2LgorLlRQCisuQiB2b2x1bWU9CitPdmVycmlkZSB0aGUgVm9sdW1lRGVzYyBsb2NhdGlvbi4gKHVudXNlZCkKKy5UUAorLkIgcGFydGl0aW9uPQorT3ZlcnJpZGUgdGhlIFBhcnRpdGlvbkRlc2MgbG9jYXRpb24uICh1bnVzZWQpCisuVFAKKy5CIGxhc3RibG9jaz0KK1NldCB0aGUgbGFzdCBibG9jayBvZiB0aGUgZmlsZXN5c3RlbS4KKy5UUAorLkIgZmlsZXNldD0KK092ZXJyaWRlIHRoZSBmaWxlc2V0IGJsb2NrIGxvY2F0aW9uLiAodW51c2VkKQorLlRQCisuQiByb290ZGlyPQorT3ZlcnJpZGUgdGhlIHJvb3QgZGlyZWN0b3J5IGxvY2F0aW9uLiAodW51c2VkKQorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIHVmcyIKKy5UUAorLkJJIHVmc3R5cGU9IHZhbHVlCitVRlMgaXMgYSBmaWxlc3lzdGVtIHdpZGVseSB1c2VkIGluIGRpZmZlcmVudCBvcGVyYXRpbmcgc3lzdGVtcy4KK1RoZSBwcm9ibGVtIGFyZSBkaWZmZXJlbmNlcyBhbW9uZyBpbXBsZW1lbnRhdGlvbnMuIEZlYXR1cmVzIG9mIHNvbWUKK2ltcGxlbWVudGF0aW9ucyBhcmUgdW5kb2N1bWVudGVkLCBzbyBpdHMgaGFyZCB0byByZWNvZ25pemUgdGhlCit0eXBlIG9mIHVmcyBhdXRvbWF0aWNhbGx5LgorVGhhdCdzIHdoeSB0aGUgdXNlciBtdXN0IHNwZWNpZnkgdGhlIHR5cGUgb2YgdWZzIGJ5IG1vdW50IG9wdGlvbi4KK1Bvc3NpYmxlIHZhbHVlcyBhcmU6CisuUlMKKy5UUAorLkIgb2xkCitPbGQgZm9ybWF0IG9mIHVmcywgdGhpcyBpcyB0aGUgZGVmYXVsdCwgcmVhZCBvbmx5LgorKERvbid0IGZvcmdldCB0byBnaXZlIHRoZSBcLXIgb3B0aW9uLikKKy5UUAorLkIgNDRic2QKK0ZvciBmaWxlc3lzdGVtcyBjcmVhdGVkIGJ5IGEgQlNELWxpa2Ugc3lzdGVtIChOZXRCU0QsRnJlZUJTRCxPcGVuQlNEKS4KKy5UUAorLkIgc3VuCitGb3IgZmlsZXN5c3RlbXMgY3JlYXRlZCBieSBTdW5PUyBvciBTb2xhcmlzIG9uIFNwYXJjLgorLlRQCisuQiBzdW54ODYKK0ZvciBmaWxlc3lzdGVtcyBjcmVhdGVkIGJ5IFNvbGFyaXMgb24geDg2LgorLlRQCisuQiBocAorRm9yIGZpbGVzeXN0ZW1zIGNyZWF0ZWQgYnkgSFAtVVgsIHJlYWQtb25seS4KKy5UUAorLkIgbmV4dHN0ZXAKK0ZvciBmaWxlc3lzdGVtcyBjcmVhdGVkIGJ5IE5lWFRTdGVwIChvbiBOZVhUIHN0YXRpb24pIChjdXJyZW50bHkgcmVhZCBvbmx5KS4KKy5UUAorLkIgbmV4dHN0ZXAtY2QKK0ZvciBOZXh0U3RlcCBDRFJPTXMgKGJsb2NrX3NpemUgPT0gMjA0OCksIHJlYWQtb25seS4KKy5UUAorLkIgb3BlbnN0ZXAKK0ZvciBmaWxlc3lzdGVtcyBjcmVhdGVkIGJ5IE9wZW5TdGVwIChjdXJyZW50bHkgcmVhZCBvbmx5KS4KK1RoZSBzYW1lIGZpbGVzeXN0ZW0gdHlwZSBpcyBhbHNvIHVzZWQgYnkgTWFjIE9TIFguCisuUkUKKworLlRQCisuQkkgb25lcnJvcj0gdmFsdWUKK1NldCBiZWhhdmlvdXIgb24gZXJyb3I6CisuUlMKKy5UUAorLkIgcGFuaWMKK0lmIGFuIGVycm9yIGlzIGVuY291bnRlcmVkLCBjYXVzZSBhIGtlcm5lbCBwYW5pYy4KKy5UUAorLlJCIFsgbG9jayB8IHVtb3VudCB8IHJlcGFpciBdCitUaGVzZSBtb3VudCBvcHRpb25zIGRvbid0IGRvIGFueXRoaW5nIGF0IHByZXNlbnQ7Cit3aGVuIGFuIGVycm9yIGlzIGVuY291bnRlcmVkIG9ubHkgYSBjb25zb2xlIG1lc3NhZ2UgaXMgcHJpbnRlZC4KKy5SRQorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIHVtc2RvcyIKK1NlZSBtb3VudCBvcHRpb25zIGZvciBtc2Rvcy4KK1RoZQorLkIgZG90c09LCitvcHRpb24gaXMgZXhwbGljaXRseSBraWxsZWQgYnkKKy5JUiB1bXNkb3MgLgorCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIHZmYXQiCitGaXJzdCBvZiBhbGwsIHRoZSBtb3VudCBvcHRpb25zIGZvcgorLkkgZmF0CithcmUgcmVjb2duaXplZC4KK1RoZQorLkIgZG90c09LCitvcHRpb24gaXMgZXhwbGljaXRseSBraWxsZWQgYnkKKy5JUiB2ZmF0IC4KK0Z1cnRoZXJtb3JlLCB0aGVyZSBhcmUKKy5UUAorLkIgdW5pX3hsYXRlCitUcmFuc2xhdGUgdW5oYW5kbGVkIFVuaWNvZGUgY2hhcmFjdGVycyB0byBzcGVjaWFsIGVzY2FwZWQgc2VxdWVuY2VzLgorVGhpcyBsZXRzIHlvdSBiYWNrdXAgYW5kIHJlc3RvcmUgZmlsZW5hbWVzIHRoYXQgYXJlIGNyZWF0ZWQgd2l0aCBhbnkKK1VuaWNvZGUgY2hhcmFjdGVycy4gV2l0aG91dCB0aGlzIG9wdGlvbiwgYSAnPycgaXMgdXNlZCB3aGVuIG5vCit0cmFuc2xhdGlvbiBpcyBwb3NzaWJsZS4gVGhlIGVzY2FwZSBjaGFyYWN0ZXIgaXMgJzonIGJlY2F1c2UgaXQgaXMKK290aGVyd2lzZSBpbGxlZ2FsIG9uIHRoZSB2ZmF0IGZpbGVzeXN0ZW0uIFRoZSBlc2NhcGUgc2VxdWVuY2UKK3RoYXQgZ2V0cyB1c2VkLCB3aGVyZSB1IGlzIHRoZSB1bmljb2RlIGNoYXJhY3RlciwKK2lzOiAnOicsICh1ICYgMHgzZiksICgodT4+NikgJiAweDNmKSwgKHU+PjEyKS4KKy5UUAorLkIgcG9zaXgKK0FsbG93IHR3byBmaWxlcyB3aXRoIG5hbWVzIHRoYXQgb25seSBkaWZmZXIgaW4gY2FzZS4KK1RoaXMgb3B0aW9uIGlzIG9ic29sZXRlLgorLlRQCisuQiBub251bXRhaWwKK0ZpcnN0IHRyeSB0byBtYWtlIGEgc2hvcnQgbmFtZSB3aXRob3V0IHNlcXVlbmNlIG51bWJlciwKK2JlZm9yZSB0cnlpbmcKKy5JUiBuYW1lfm51bS5leHQgLgorLlRQCisuQiB1dGY4CitVVEY4IGlzIHRoZSBmaWxlc3lzdGVtIHNhZmUgOC1iaXQgZW5jb2Rpbmcgb2YgVW5pY29kZSB0aGF0IGlzIHVzZWQgYnkgdGhlCitjb25zb2xlLiBJdCBjYW4gYmUgYmUgZW5hYmxlZCBmb3IgdGhlIGZpbGVzeXN0ZW0gd2l0aCB0aGlzIG9wdGlvbiBvciBkaXNhYmxlZAord2l0aCB1dGY4PTAsIHV0Zjg9bm8gb3IgdXRmOD1mYWxzZS4gSWYgYHVuaV94bGF0ZScgZ2V0cyBzZXQsIFVURjggZ2V0cworZGlzYWJsZWQuCisuVFAKKy5CUiBzaG9ydG5hbWU9IHsgbG93ZXIgfCB3aW45NSB8IHdpbm50IHwgbWl4ZWQgfQorCitEZWZpbmVzIHRoZSBiZWhhdmlvdXIgZm9yIGNyZWF0aW9uIGFuZCBkaXNwbGF5IG9mIGZpbGVuYW1lcyB3aGljaCBmaXQgaW50bworOC4zIGNoYXJhY3RlcnMuIElmIGEgbG9uZyBuYW1lIGZvciBhIGZpbGUgZXhpc3RzLCBpdCB3aWxsIGFsd2F5cyBiZQorcHJlZmVycmVkIGRpc3BsYXkuIFRoZXJlIGFyZSBmb3VyIG1vZGVzOgorOgorLlJTCisuVFAKKy5JIGxvd2VyCitGb3JjZSB0aGUgc2hvcnQgbmFtZSB0byBsb3dlciBjYXNlIHVwb24gZGlzcGxheTsgc3RvcmUgYSBsb25nIG5hbWUgd2hlbgordGhlIHNob3J0IG5hbWUgaXMgbm90IGFsbCB1cHBlciBjYXNlLiBUaGlzIG1vZGUgaXMgdGhlIGRlZmF1bHQuCisuVFAKKy5JIHdpbjk1CitGb3JjZSB0aGUgc2hvcnQgbmFtZSB0byB1cHBlciBjYXNlIHVwb24gZGlzcGxheTsgc3RvcmUgYSBsb25nIG5hbWUgd2hlbgordGhlIHNob3J0IG5hbWUgaXMgbm90IGFsbCB1cHBlciBjYXNlLgorLlRQCisuSSB3aW5udAorRGlzcGxheSB0aGUgc2hvcnRuYW1lIGFzIGlzOyBzdG9yZSBhIGxvbmcgbmFtZSB3aGVuIHRoZSBzaG9ydCBuYW1lIGlzCitub3QgYWxsIGxvd2VyIGNhc2Ugb3IgYWxsIHVwcGVyIGNhc2UuCisuVFAKKy5JIG1peGVkCitEaXNwbGF5IHRoZSBzaG9ydCBuYW1lIGFzIGlzOyBzdG9yZSBhIGxvbmcgbmFtZSB3aGVuIHRoZSBzaG9ydCBuYW1lIGlzIG5vdAorYWxsIHVwcGVyIGNhc2UuCisuUkUKKworCisuU0ggIk1vdW50IG9wdGlvbnMgZm9yIHVzYmZzIgorLlRQCitcZkJkZXZ1aWQ9XGZQXGZJdWlkXGZQIGFuZCBcZkJkZXZnaWQ9XGZQXGZJZ2lkXGZQIGFuZCBcZkJkZXZtb2RlPVxmUFxmSW1vZGVcZlAKK1NldCB0aGUgb3duZXIgYW5kIGdyb3VwIGFuZCBtb2RlIG9mIHRoZSBkZXZpY2UgZmlsZXMgaW4gdGhlIHVzYmZzIGZpbGVzeXN0ZW0KKyhkZWZhdWx0OiB1aWQ9Z2lkPTAsIG1vZGU9MDY0NCkuIFRoZSBtb2RlIGlzIGdpdmVuIGluIG9jdGFsLgorLlRQCitcZkJidXN1aWQ9XGZQXGZJdWlkXGZQIGFuZCBcZkJidXNnaWQ9XGZQXGZJZ2lkXGZQIGFuZCBcZkJidXNtb2RlPVxmUFxmSW1vZGVcZlAKK1NldCB0aGUgb3duZXIgYW5kIGdyb3VwIGFuZCBtb2RlIG9mIHRoZSBidXMgZGlyZWN0b3JpZXMgaW4gdGhlIHVzYmZzCitmaWxlc3lzdGVtIChkZWZhdWx0OiB1aWQ9Z2lkPTAsIG1vZGU9MDU1NSkuIFRoZSBtb2RlIGlzIGdpdmVuIGluIG9jdGFsLgorLlRQCitcZkJsaXN0dWlkPVxmUFxmSXVpZFxmUCBhbmQgXGZCbGlzdGdpZD1cZlBcZklnaWRcZlAgYW5kIFxmQmxpc3Rtb2RlPVxmUFxmSW1vZGVcZlAKK1NldCB0aGUgb3duZXIgYW5kIGdyb3VwIGFuZCBtb2RlIG9mIHRoZSBmaWxlCisuSSBkZXZpY2VzCisoZGVmYXVsdDogdWlkPWdpZD0wLCBtb2RlPTA0NDQpLiBUaGUgbW9kZSBpcyBnaXZlbiBpbiBvY3RhbC4KKworLlNIICJNb3VudCBvcHRpb25zIGZvciB4ZW5peCIKK05vbmUuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgeGZzIgorLlRQCisuQkkgYWxsb2NzaXplPSBzaXplCitTZXRzIHRoZSBidWZmZXJlZCBJL08gZW5kLW9mLWZpbGUgcHJlYWxsb2NhdGlvbiBzaXplIHdoZW4KK2RvaW5nIGRlbGF5ZWQgYWxsb2NhdGlvbiB3cml0ZW91dCAoZGVmYXVsdCBzaXplIGlzIDY0S2lCKS4KK1ZhbGlkIHZhbHVlcyBmb3IgdGhpcyBvcHRpb24gYXJlIHBhZ2Ugc2l6ZSAodHlwaWNhbGx5IDRLaUIpCit0aHJvdWdoIHRvIDFHaUIsIGluY2x1c2l2ZSwgaW4gcG93ZXItb2YtMiBpbmNyZW1lbnRzLgorLlRQCisuQlIgYXR0cjIgfCBub2F0dHIyCitUaGUgb3B0aW9ucyBlbmFibGUvZGlzYWJsZSAoZGVmYXVsdCBpcyBlbmFibGVkKSBhbiAib3Bwb3J0dW5pc3RpYyIKK2ltcHJvdmVtZW50IHRvIGJlIG1hZGUgaW4gdGhlIHdheSBpbmxpbmUgZXh0ZW5kZWQgYXR0cmlidXRlcyBhcmUKK3N0b3JlZCBvbi1kaXNrLgorV2hlbiB0aGUgbmV3IGZvcm0gaXMgdXNlZCBmb3IgdGhlIGZpcnN0IHRpbWUgKGJ5IHNldHRpbmcgb3IKK3JlbW92aW5nIGV4dGVuZGVkIGF0dHJpYnV0ZXMpIHRoZSBvbi1kaXNrIHN1cGVyYmxvY2sgZmVhdHVyZQorYml0IGZpZWxkIHdpbGwgYmUgdXBkYXRlZCB0byByZWZsZWN0IHRoaXMgZm9ybWF0IGJlaW5nIGluIHVzZS4KKy5UUAorLkIgYmFycmllcgorRW5hYmxlcyB0aGUgdXNlIG9mIGJsb2NrIGxheWVyIHdyaXRlIGJhcnJpZXJzIGZvciB3cml0ZXMgaW50bwordGhlIGpvdXJuYWwgYW5kIHVud3JpdHRlbiBleHRlbnQgY29udmVyc2lvbi4gIFRoaXMgYWxsb3dzIGZvcgorZHJpdmUgbGV2ZWwgd3JpdGUgY2FjaGluZyB0byBiZSBlbmFibGVkLCBmb3IgZGV2aWNlcyB0aGF0CitzdXBwb3J0IHdyaXRlIGJhcnJpZXJzLgorLlRQCisuQiBkbWFwaQorRW5hYmxlIHRoZSBETUFQSSAoRGF0YSBNYW5hZ2VtZW50IEFQSSkgZXZlbnQgY2FsbG91dHMuCitVc2Ugd2l0aCB0aGUKKy5CIG10cHQKK29wdGlvbi4KKy5UUAorLkJSIGdycGlkIHwgYnNkZ3JvdXBzICIgYW5kICIgbm9ncnBpZCB8IHN5c3Zncm91cHMKK1RoZXNlIG9wdGlvbnMgZGVmaW5lIHdoYXQgZ3JvdXAgSUQgYSBuZXdseSBjcmVhdGVkIGZpbGUgZ2V0cy4KK1doZW4gZ3JwaWQgaXMgc2V0LCBpdCB0YWtlcyB0aGUgZ3JvdXAgSUQgb2YgdGhlIGRpcmVjdG9yeSBpbgord2hpY2ggaXQgaXMgY3JlYXRlZDsgb3RoZXJ3aXNlICh0aGUgZGVmYXVsdCkgaXQgdGFrZXMgdGhlIGZzZ2lkCitvZiB0aGUgY3VycmVudCBwcm9jZXNzLCB1bmxlc3MgdGhlIGRpcmVjdG9yeSBoYXMgdGhlIHNldGdpZCBiaXQKK3NldCwgaW4gd2hpY2ggY2FzZSBpdCB0YWtlcyB0aGUgZ2lkIGZyb20gdGhlIHBhcmVudCBkaXJlY3RvcnksCithbmQgYWxzbyBnZXRzIHRoZSBzZXRnaWQgYml0IHNldCBpZiBpdCBpcyBhIGRpcmVjdG9yeSBpdHNlbGYuCisuVFAKKy5CSSBpaGFzaHNpemU9IHZhbHVlCitTZXRzIHRoZSBudW1iZXIgb2YgaGFzaCBidWNrZXRzIGF2YWlsYWJsZSBmb3IgaGFzaGluZyB0aGUKK2luLW1lbW9yeSBpbm9kZXMgb2YgdGhlIHNwZWNpZmllZCBtb3VudCBwb2ludC4gIElmIGEgdmFsdWUKK29mIHplcm8gaXMgdXNlZCwgdGhlIHZhbHVlIHNlbGVjdGVkIGJ5IHRoZSBkZWZhdWx0IGFsZ29yaXRobQord2lsbCBiZSBkaXNwbGF5ZWQgaW4KKy5JUiAvcHJvYy9tb3VudHMgLgorLlRQCisuQlIgaWtlZXAgfCBub2lrZWVwCitXaGVuIGlub2RlIGNsdXN0ZXJzIGFyZSBlbXB0aWVkIG9mIGlub2Rlcywga2VlcCB0aGVtIGFyb3VuZAorb24gdGhlIGRpc2sgKGlrZWVwKSAtIHRoaXMgaXMgdGhlIHRyYWRpdGlvbmFsIFhGUyBiZWhhdmlvdXIKK2FuZCBpcyBzdGlsbCB0aGUgZGVmYXVsdCBmb3Igbm93LiAgVXNpbmcgdGhlIG5vaWtlZXAgb3B0aW9uLAoraW5vZGUgY2x1c3RlcnMgYXJlIHJldHVybmVkIHRvIHRoZSBmcmVlIHNwYWNlIHBvb2wuCisuVFAKKy5CIGlub2RlNjQKK0luZGljYXRlcyB0aGF0IFhGUyBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBpbm9kZXMgYXQgYW55IGxvY2F0aW9uCitpbiB0aGUgZmlsZXN5c3RlbSwgaW5jbHVkaW5nIHRob3NlIHdoaWNoIHdpbGwgcmVzdWx0IGluIGlub2RlCitudW1iZXJzIG9jY3VweWluZyBtb3JlIHRoYW4gMzIgYml0cyBvZiBzaWduaWZpY2FuY2UuICBUaGlzIGlzCitwcm92aWRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGJ1dCBjYXVzZXMgcHJvYmxlbXMgZm9yCitiYWNrdXAgYXBwbGljYXRpb25zIHRoYXQgY2Fubm90IGhhbmRsZSBsYXJnZSBpbm9kZSBudW1iZXJzLgorLlRQCisuQlIgbGFyZ2VpbyB8IG5vbGFyZ2VpbworSWYKKy5CIG5vbGFyZ2VpbworaXMgc3BlY2lmaWVkLCB0aGUgb3B0aW1hbCBJL08gcmVwb3J0ZWQgaW4KK3N0X2Jsa3NpemUgYnkKKy5CUiBzdGF0ICgyKQord2lsbCBiZSBhcyBzbWFsbCBhcyBwb3NzaWJsZSB0byBhbGxvdyB1c2VyCithcHBsaWNhdGlvbnMgdG8gYXZvaWQgaW5lZmZpY2llbnQgcmVhZC9tb2RpZnkvd3JpdGUgSS9PLgorSWYKKy5CIGxhcmdlaW8KK2lzIHNwZWNpZmllZCwgYSBmaWxlc3lzdGVtIHRoYXQgaGFzIGEKKy5CIHN3aWR0aAorc3BlY2lmaWVkCit3aWxsIHJldHVybiB0aGUKKy5CIHN3aWR0aAordmFsdWUgKGluIGJ5dGVzKSBpbiBzdF9ibGtzaXplLiBJZiB0aGUKK2ZpbGVzeXN0ZW0gZG9lcyBub3QgaGF2ZSBhCisuQiBzd2lkdGgKK3NwZWNpZmllZCBidXQgZG9lcyBzcGVjaWZ5CithbgorLkIgYWxsb2NzaXplCit0aGVuCisuQiBhbGxvY3NpemUKKyhpbiBieXRlcykgd2lsbCBiZSByZXR1cm5lZAoraW5zdGVhZC4KK0lmIG5laXRoZXIgb2YgdGhlc2UgdHdvIG9wdGlvbnMgYXJlIHNwZWNpZmllZCwgdGhlbiBmaWxlc3lzdGVtCit3aWxsIGJlaGF2ZSBhcyBpZgorLkIgbm9sYXJnZWlvCit3YXMgc3BlY2lmaWVkLgorLlRQCisuQkkgbG9nYnVmcz0gdmFsdWUKK1NldCB0aGUgbnVtYmVyIG9mIGluLW1lbW9yeSBsb2cgYnVmZmVycy4gIFZhbGlkIG51bWJlcnMgcmFuZ2UKK2Zyb20gMi04IGluY2x1c2l2ZS4KK1RoZSBkZWZhdWx0IHZhbHVlIGlzIDggYnVmZmVycyBmb3IgZmlsZXN5c3RlbXMgd2l0aCBhCitibG9ja3NpemUgb2YgNjRLaUIsIDQgYnVmZmVycyBmb3IgZmlsZXN5c3RlbXMgd2l0aCBhIGJsb2Nrc2l6ZQorb2YgMzJLaUIsIDMgYnVmZmVycyBmb3IgZmlsZXN5c3RlbXMgd2l0aCBhIGJsb2Nrc2l6ZSBvZiAxNktpQgorYW5kIDIgYnVmZmVycyBmb3IgYWxsIG90aGVyIGNvbmZpZ3VyYXRpb25zLiAgSW5jcmVhc2luZyB0aGUKK251bWJlciBvZiBidWZmZXJzIG1heSBpbmNyZWFzZSBwZXJmb3JtYW5jZSBvbiBzb21lIHdvcmtsb2FkcworYXQgdGhlIGNvc3Qgb2YgdGhlIG1lbW9yeSB1c2VkIGZvciB0aGUgYWRkaXRpb25hbCBsb2cgYnVmZmVycworYW5kIHRoZWlyIGFzc29jaWF0ZWQgY29udHJvbCBzdHJ1Y3R1cmVzLgorLlRQCisuQkkgbG9nYnNpemU9IHZhbHVlCitTZXQgdGhlIHNpemUgb2YgZWFjaCBpbi1tZW1vcnkgbG9nIGJ1ZmZlci4KK1NpemUgbWF5IGJlIHNwZWNpZmllZCBpbiBieXRlcywgb3IgaW4ga2lsb2J5dGVzIHdpdGggYSAiayIgc3VmZml4LgorVmFsaWQgc2l6ZXMgZm9yIHZlcnNpb24gMSBhbmQgdmVyc2lvbiAyIGxvZ3MgYXJlIDE2Mzg0ICgxNmspIGFuZAorMzI3NjggKDMyaykuICBWYWxpZCBzaXplcyBmb3IgdmVyc2lvbiAyIGxvZ3MgYWxzbyBpbmNsdWRlCis2NTUzNiAoNjRrKSwgMTMxMDcyICgxMjhrKSBhbmQgMjYyMTQ0ICgyNTZrKS4KK1RoZSBkZWZhdWx0IHZhbHVlIGZvciBtYWNoaW5lcyB3aXRoIG1vcmUgdGhhbiAzMk1pQiBvZiBtZW1vcnkKK2lzIDMyNzY4LCBtYWNoaW5lcyB3aXRoIGxlc3MgbWVtb3J5IHVzZSAxNjM4NCBieSBkZWZhdWx0LgorLlRQCitcZkJsb2dkZXY9XGZQXGZJZGV2aWNlXGZQIGFuZCBcZkJydGRldj1cZlBcZklkZXZpY2VcZlAKK1VzZSBhbiBleHRlcm5hbCBsb2cgKG1ldGFkYXRhIGpvdXJuYWwpIGFuZC9vciByZWFsLXRpbWUgZGV2aWNlLgorQW4gWEZTIGZpbGVzeXN0ZW0gaGFzIHVwIHRvIHRocmVlIHBhcnRzOiBhIGRhdGEgc2VjdGlvbiwgYSBsb2cgc2VjdGlvbiwKK2FuZCBhIHJlYWwtdGltZSBzZWN0aW9uLgorVGhlIHJlYWwtdGltZSBzZWN0aW9uIGlzIG9wdGlvbmFsLCBhbmQgdGhlIGxvZyBzZWN0aW9uIGNhbiBiZSBzZXBhcmF0ZQorZnJvbSB0aGUgZGF0YSBzZWN0aW9uIG9yIGNvbnRhaW5lZCB3aXRoaW4gaXQuCitSZWZlciB0bworLkJSIHhmcyAoNSkuCisuVFAKKy5CSSAgbXRwdD0gbW91bnRwb2ludAorVXNlIHdpdGggdGhlCisuQiBkbWFwaQorb3B0aW9uLiBUaGUgdmFsdWUgc3BlY2lmaWVkIGhlcmUgd2lsbCBiZQoraW5jbHVkZWQgaW4gdGhlIERNQVBJIG1vdW50IGV2ZW50LCBhbmQgc2hvdWxkIGJlIHRoZSBwYXRoIG9mCit0aGUgYWN0dWFsIG1vdW50cG9pbnQgdGhhdCBpcyB1c2VkLgorLlRQCisuQiBub2FsaWduCitEYXRhIGFsbG9jYXRpb25zIHdpbGwgbm90IGJlIGFsaWduZWQgYXQgc3RyaXBlIHVuaXQgYm91bmRhcmllcy4KKy5UUAorLkIgbm9hdGltZQorQWNjZXNzIHRpbWVzdGFtcHMgYXJlIG5vdCB1cGRhdGVkIHdoZW4gYSBmaWxlIGlzIHJlYWQuCisuVFAKKy5CIG5vcmVjb3ZlcnkKK1RoZSBmaWxlc3lzdGVtIHdpbGwgYmUgbW91bnRlZCB3aXRob3V0IHJ1bm5pbmcgbG9nIHJlY292ZXJ5LgorSWYgdGhlIGZpbGVzeXN0ZW0gd2FzIG5vdCBjbGVhbmx5IHVubW91bnRlZCwgaXQgaXMgbGlrZWx5IHRvCitiZSBpbmNvbnNpc3RlbnQgd2hlbiBtb3VudGVkIGluCisuQiBub3JlY292ZXJ5Cittb2RlLgorU29tZSBmaWxlcyBvciBkaXJlY3RvcmllcyBtYXkgbm90IGJlIGFjY2Vzc2libGUgYmVjYXVzZSBvZiB0aGlzLgorRmlsZXN5c3RlbXMgbW91bnRlZAorLkIgbm9yZWNvdmVyeQorbXVzdCBiZSBtb3VudGVkIHJlYWQtb25seSBvciB0aGUgbW91bnQgd2lsbCBmYWlsLgorLlRQCisuQiBub3V1aWQKK0Rvbid0IGNoZWNrIGZvciBkb3VibGUgbW91bnRlZCBmaWxlc3lzdGVtcyB1c2luZyB0aGUgZmlsZXN5c3RlbSB1dWlkLgorVGhpcyBpcyB1c2VmdWwgdG8gbW91bnQgTFZNIHNuYXBzaG90IHZvbHVtZXMuCisuVFAKKy5CIG9zeW5jaXNvc3luYworTWFrZSBPX1NZTkMgd3JpdGVzIGltcGxlbWVudCB0cnVlIE9fU1lOQy4gIFdJVEhPVVQgdGhpcyBvcHRpb24sCitMaW51eCBYRlMgYmVoYXZlcyBhcyBpZiBhbgorLkIgb3N5bmNpc2RzeW5jCitvcHRpb24gaXMgdXNlZCwKK3doaWNoIHdpbGwgbWFrZSB3cml0ZXMgdG8gZmlsZXMgb3BlbmVkIHdpdGggdGhlIE9fU1lOQyBmbGFnIHNldAorYmVoYXZlIGFzIGlmIHRoZSBPX0RTWU5DIGZsYWcgaGFkIGJlZW4gdXNlZCBpbnN0ZWFkLgorVGhpcyBjYW4gcmVzdWx0IGluIGJldHRlciBwZXJmb3JtYW5jZSB3aXRob3V0IGNvbXByb21pc2luZworZGF0YSBzYWZldHkuCitIb3dldmVyIGlmIHRoaXMgb3B0aW9uIGlzIG5vdCBpbiBlZmZlY3QsIHRpbWVzdGFtcCB1cGRhdGVzIGZyb20KK09fU1lOQyB3cml0ZXMgY2FuIGJlIGxvc3QgaWYgdGhlIHN5c3RlbSBjcmFzaGVzLgorSWYgdGltZXN0YW1wIHVwZGF0ZXMgYXJlIGNyaXRpY2FsLCB1c2UgdGhlCisuQiBvc3luY2lzb3N5bmMKK29wdGlvbi4KKy5UUAorLkJSIHVxdW90YSB8IHVzcnF1b3RhIHwgdXFub2VuZm9yY2UgfCBxdW90YQorVXNlciBkaXNrIHF1b3RhIGFjY291bnRpbmcgZW5hYmxlZCwgYW5kIGxpbWl0cyAob3B0aW9uYWxseSkKK2VuZm9yY2VkLiAgUmVmZXIgdG8KKy5CUiB4ZnNfcXVvdGEgKDgpCitmb3IgZnVydGhlciBkZXRhaWxzLgorLlRQCisuQlIgZ3F1b3RhIHwgZ3JwcXVvdGEgfCBncW5vZW5mb3JjZQorR3JvdXAgZGlzayBxdW90YSBhY2NvdW50aW5nIGVuYWJsZWQgYW5kIGxpbWl0cyAob3B0aW9uYWxseSkKK2VuZm9yY2VkLiBSZWZlciB0bworLkJSIHhmc19xdW90YSAoOCkKK2ZvciBmdXJ0aGVyIGRldGFpbHMuCisuVFAKKy5CUiBwcXVvdGEgfCBwcmpxdW90YSB8IHBxbm9lbmZvcmNlCitQcm9qZWN0IGRpc2sgcXVvdGEgYWNjb3VudGluZyBlbmFibGVkIGFuZCBsaW1pdHMgKG9wdGlvbmFsbHkpCitlbmZvcmNlZC4gUmVmZXIgdG8KKy5CUiB4ZnNfcXVvdGEgKDgpCitmb3IgZnVydGhlciBkZXRhaWxzLgorLlRQCitcZkJzdW5pdD1cZlBcZkl2YWx1ZVxmUCBhbmQgXGZCc3dpZHRoPVxmUFxmSXZhbHVlXGZQCitVc2VkIHRvIHNwZWNpZnkgdGhlIHN0cmlwZSB1bml0IGFuZCB3aWR0aCBmb3IgYSBSQUlEIGRldmljZSBvciBhIHN0cmlwZQordm9sdW1lLgorLkkgdmFsdWUKK211c3QgYmUgc3BlY2lmaWVkIGluIDUxMi1ieXRlIGJsb2NrIHVuaXRzLgorSWYgdGhpcyBvcHRpb24gaXMgbm90IHNwZWNpZmllZCBhbmQgdGhlIGZpbGVzeXN0ZW0gd2FzIG1hZGUgb24gYSBzdHJpcGUKK3ZvbHVtZSBvciB0aGUgc3RyaXBlIHdpZHRoIG9yIHVuaXQgd2VyZSBzcGVjaWZpZWQgZm9yIHRoZSBSQUlEIGRldmljZSBhdAorbWtmcyB0aW1lLCB0aGVuIHRoZSBtb3VudCBzeXN0ZW0gY2FsbCB3aWxsIHJlc3RvcmUgdGhlIHZhbHVlIGZyb20gdGhlCitzdXBlcmJsb2NrLgorRm9yIGZpbGVzeXN0ZW1zIHRoYXQgYXJlIG1hZGUgZGlyZWN0bHkgb24gUkFJRCBkZXZpY2VzLCB0aGVzZSBvcHRpb25zIGNhbiBiZQordXNlZCB0byBvdmVycmlkZSB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIHN1cGVyYmxvY2sgaWYgdGhlIHVuZGVybHlpbmcgZGlzaworbGF5b3V0IGNoYW5nZXMgYWZ0ZXIgdGhlIGZpbGVzeXN0ZW0gaGFzIGJlZW4gY3JlYXRlZC4KK1RoZQorLkIgc3dpZHRoCitvcHRpb24gaXMgcmVxdWlyZWQgaWYgdGhlCisuQiBzdW5pdAorb3B0aW9uIGhhcyBiZWVuIHNwZWNpZmllZCwKK2FuZCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlCisuQiBzdW5pdAordmFsdWUuCisuVFAKKy5CIHN3YWxsb2MKK0RhdGEgYWxsb2NhdGlvbnMgd2lsbCBiZSByb3VuZGVkIHVwIHRvIHN0cmlwZSB3aWR0aCBib3VuZGFyaWVzCit3aGVuIHRoZSBjdXJyZW50IGVuZCBvZiBmaWxlIGlzIGJlaW5nIGV4dGVuZGVkIGFuZCB0aGUgZmlsZQorc2l6ZSBpcyBsYXJnZXIgdGhhbiB0aGUgc3RyaXBlIHdpZHRoIHNpemUuCisKKy5TSCAiTW91bnQgb3B0aW9ucyBmb3IgeGlhZnMiCitOb25lLiBBbHRob3VnaCBub3RoaW5nIGlzIHdyb25nIHdpdGggeGlhZnMsIGl0IGlzIG5vdCB1c2VkIG11Y2gsCithbmQgaXMgbm90IG1haW50YWluZWQuIFByb2JhYmx5IG9uZSBzaG91bGRuJ3QgdXNlIGl0LgorU2luY2UgTGludXggdmVyc2lvbiAyLjEuMjEgeGlhZnMgaXMgbm8gbG9uZ2VyIHBhcnQgb2YgdGhlIGtlcm5lbCBzb3VyY2UuCisKKy5TSCAiVEhFIExPT1AgREVWSUNFIgorT25lIGZ1cnRoZXIgcG9zc2libGUgdHlwZSBpcyBhIG1vdW50IHZpYSB0aGUgbG9vcCBkZXZpY2UuIEZvciBleGFtcGxlLAordGhlIGNvbW1hbmQKKworLm5mCisuQiAiICBtb3VudCAvdG1wL2ZkaW1hZ2UgL21udCAtdCB2ZmF0IC1vIGxvb3A9L2Rldi9sb29wMworLmZpCisKK3dpbGwgc2V0IHVwIHRoZSBsb29wIGRldmljZQorLkkgL2Rldi9sb29wMwordG8gY29ycmVzcG9uZCB0byB0aGUgZmlsZQorLklSIC90bXAvZmRpbWFnZSAsCithbmQgdGhlbiBtb3VudCB0aGlzIGRldmljZSBvbgorLklSIC9tbnQgLgorCitUaGlzIHR5cGUgb2YgbW91bnQga25vd3MgYWJvdXQgZm91ciBvcHRpb25zLCBuYW1lbHkKKy5CUiBsb29wICIsICIgb2Zmc2V0ICIsICIgc2l6ZWxpbWl0ICIgYW5kICIgZW5jcnlwdGlvbiAsCit0aGF0IGFyZSByZWFsbHkgb3B0aW9ucyB0bworLkJSIFwlbG9zZXR1cCAoOCkuCisoVGhlc2Ugb3B0aW9ucyBjYW4gYmUgdXNlZCBpbiBhZGRpdGlvbiB0byB0aG9zZSBzcGVjaWZpYwordG8gdGhlIGZpbGVzeXN0ZW0gdHlwZS4pCisKK0lmIG5vIGV4cGxpY2l0IGxvb3AgZGV2aWNlIGlzIG1lbnRpb25lZAorKGJ1dCBqdXN0IGFuIG9wdGlvbiBgXGZCXC1vIGxvb3BcZlAnIGlzIGdpdmVuKSwgdGhlbgorLkIgbW91bnQKK3dpbGwgdHJ5IHRvIGZpbmQgc29tZSB1bnVzZWQgbG9vcCBkZXZpY2UgYW5kIHVzZSB0aGF0LgorCitTaW5jZSBMaW51eCAyLjYuMjUgaXMgc3VwcG9ydGVkIGF1dG8tZGVzdHJ1Y3Rpb24gb2YgbG9vcCBkZXZpY2VzIGFuZAordGhlbiBhbnkgbG9vcCBkZXZpY2UgYWxsb2NhdGVkIGJ5CisuQiBtb3VudAord2lsbCBiZSBmcmVlZCBieQorLkIgdW1vdW50CitpbmRlcGVuZGVudGx5IG9uCisuSVIgL2V0Yy9tdGFiIC4KKworWW91IGNhbiBhbHNvIGZyZWUgYSBsb29wIGRldmljZSBieSBoYW5kLCB1c2luZyBgbG9zZXR1cCAtZCcgb3IgYHVtb3VudCAtZGAuCisKKy5TSCBSRVRVUk4gQ09ERVMKKy5CIG1vdW50CitoYXMgdGhlIGZvbGxvd2luZyByZXR1cm4gY29kZXMgKHRoZSBiaXRzIGNhbiBiZSBPUmVkKToKKy5UUAorLkJSIDAKK3N1Y2Nlc3MKKy5UUAorLkJSIDEKK2luY29ycmVjdCBpbnZvY2F0aW9uIG9yIHBlcm1pc3Npb25zCisuVFAKKy5CUiAyCitzeXN0ZW0gZXJyb3IgKG91dCBvZiBtZW1vcnksIGNhbm5vdCBmb3JrLCBubyBtb3JlIGxvb3AgZGV2aWNlcykKKy5UUAorLkJSIDQKK2ludGVybmFsCisuQiBtb3VudAorYnVnCisuVFAKKy5CUiA4Cit1c2VyIGludGVycnVwdAorLlRQCisuQlIgMTYKK3Byb2JsZW1zIHdyaXRpbmcgb3IgbG9ja2luZyAvZXRjL210YWIKKy5UUAorLkJSIDMyCittb3VudCBmYWlsdXJlCisuVFAKKy5CUiA2NAorc29tZSBtb3VudCBzdWNjZWVkZWQKKworLlNIIE5PVEVTCitUaGUgc3ludGF4IG9mIGV4dGVybmFsIG1vdW50IGhlbHBlcnMgaXM6CisKKy5SUworLkJJIC9zYmluL21vdW50LiA8c3VmZml4PgorLkkgc3BlYyBkaXIKKy5SQiBbIFwtc2ZudiBdCisuUkIgWyBcLW8KKy5JUiBvcHRpb25zIF0KKy5SRQorCit3aGVyZSB0aGUgPHN1ZmZpeD4gaXMgZmlsZXN5c3RlbSB0eXBlIGFuZCBcLXNmbnZvIG9wdGlvbnMgaGF2ZSBzYW1lIG1lYW5pbmcgbGlrZQorc3RhbmRhcmQgbW91bnQgb3B0aW9ucy4KKworLlNIIEZJTEVTCisuVFAgMThuCisuSSAvZXRjL2ZzdGFiCitmaWxlc3lzdGVtIHRhYmxlCisuVFAKKy5JIC9ldGMvbXRhYgordGFibGUgb2YgbW91bnRlZCBmaWxlc3lzdGVtcworLlRQCisuSSAvZXRjL210YWJ+Citsb2NrIGZpbGUKKy5UUAorLkkgL2V0Yy9tdGFiLnRtcAordGVtcG9yYXJ5IGZpbGUKKy5UUAorLkkgL2V0Yy9maWxlc3lzdGVtcworYSBsaXN0IG9mIGZpbGVzeXN0ZW0gdHlwZXMgdG8gdHJ5CisKKy5TSCAiU0VFIEFMU08iCisuQlIgbW91bnQgKDIpLAorLkJSIHVtb3VudCAoMiksCisuQlIgZnN0YWIgKDUpLAorLkJSIHVtb3VudCAoOCksCisuQlIgc3dhcG9uICg4KSwKKy5CUiBuZnMgKDUpLAorLkJSIHhmcyAoNSksCisuQlIgZTJsYWJlbCAoOCksCisuQlIgeGZzX2FkbWluICg4KSwKKy5CUiBtb3VudGQgKDgpLAorLkJSIG5mc2QgKDgpLAorLkJSIG1rZTJmcyAoOCksCisuQlIgdHVuZTJmcyAoOCksCisuQlIgbG9zZXR1cCAoOCkKKy5TSCBCVUdTCitJdCBpcyBwb3NzaWJsZSBmb3IgYSBjb3JydXB0ZWQgZmlsZXN5c3RlbSB0byBjYXVzZSBhIGNyYXNoLgorLlBQCitTb21lIExpbnV4IGZpbGVzeXN0ZW1zIGRvbid0IHN1cHBvcnQKKy5CICJcLW8gc3luYyBhbmQgXC1vIGRpcnN5bmMiCisodGhlIGV4dDIsIGV4dDMsIGZhdCBhbmQgdmZhdCBmaWxlc3lzdGVtcworLkkgZG8KK3N1cHBvcnQgc3luY2hyb25vdXMgdXBkYXRlcyAoYSBsYSBCU0QpIHdoZW4gbW91bnRlZCB3aXRoIHRoZQorLkIgc3luYworb3B0aW9uKS4KKy5QUAorVGhlCisuQiAiXC1vIHJlbW91bnQiCittYXkgbm90IGJlIGFibGUgdG8gY2hhbmdlIG1vdW50IHBhcmFtZXRlcnMgKGFsbAorLklSIGV4dDJmcyAtc3BlY2lmaWMKK3BhcmFtZXRlcnMsIGV4Y2VwdAorLkJSICBzYiAsCithcmUgY2hhbmdlYWJsZSB3aXRoIGEgcmVtb3VudCwgZm9yIGV4YW1wbGUsIGJ1dCB5b3UgY2FuJ3QgY2hhbmdlCisuQiBnaWQKK29yCisuQiB1bWFzaworZm9yIHRoZQorLklSIGZhdGZzICkuCisuUFAKK01vdW50IGJ5IGxhYmVsIG9yIHV1aWQgd2lsbCB3b3JrIG9ubHkgaWYgeW91ciBkZXZpY2VzIGhhdmUgdGhlIG5hbWVzIGxpc3RlZCBpbgorLklSIC9wcm9jL3BhcnRpdGlvbnMgLgorSW4gcGFydGljdWxhciwgaXQgbWF5IHdlbGwgZmFpbCBpZiB0aGUga2VybmVsIHdhcyBjb21waWxlZCB3aXRoIGRldmZzCitidXQgZGV2ZnMgaXMgbm90IG1vdW50ZWQuCisuUFAKK0l0IGlzIHBvc3NpYmxlIHRoYXQgZmlsZXMKKy5JUiAvZXRjL210YWIKK2FuZAorLklSIC9wcm9jL21vdW50cworZG9uJ3QgbWF0Y2guIFRoZSBmaXJzdCBmaWxlIGlzIGJhc2VkIG9ubHkgb24gdGhlIG1vdW50IGNvbW1hbmQgb3B0aW9ucywgYnV0IHRoZQorY29udGVudCBvZiB0aGUgc2Vjb25kIGZpbGUgYWxzbyBkZXBlbmRzIG9uIHRoZSBrZXJuZWwgYW5kIG90aGVycyBzZXR0aW5ncyAoZS5nLgorcmVtb3RlIE5GUyBzZXJ2ZXIuIEluIHBhcnRpY3VsYXIgY2FzZSB0aGUgbW91bnQgY29tbWFuZCBtYXkgcmVwb3J0cyB1bnJlbGlhYmxlCitpbmZvcm1hdGlvbiBhYm91dCBhIE5GUyBtb3VudCBwb2ludCBhbmQgdGhlIC9wcm9jL21vdW50cyBmaWxlIHVzdWFsbHkgY29udGFpbnMKK21vcmUgcmVsaWFibGUgaW5mb3JtYXRpb24uKQorLlBQCitDaGVja2luZyBmaWxlcyBvbiBORlMgZmlsZXN5c3RlbSByZWZlcmVuY2VkIGJ5IGZpbGUgZGVzY3JpcHRvcnMgKGkuZS4gdGhlCisuQlIgZmNudGwKK2FuZAorLkJSIGlvY3RsCitmYW1pbGllcyBvZiBmdW5jdGlvbnMpIG1heSBsZWFkIHRvIGluY29uc2lzdGVudCByZXN1bHQgZHVlIHRvIHRoZSBsYWNrIG9mCitjb25zaXN0ZW5jeSBjaGVjayBpbiBrZXJuZWwgZXZlbiBpZiBub2FjIGlzIHVzZWQuCisuU0ggSElTVE9SWQorQQorLkIgbW91bnQKK2NvbW1hbmQgZXhpc3RlZCBpbiBWZXJzaW9uIDUgQVQmVCBVTklYLgorLlNIIEFWQUlMQUJJTElUWQorVGhlIG1vdW50IGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9tb3VudC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbW91bnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWY5Njk5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbW91bnQuYwpAQCAtMCwwICsxLDIzNDcgQEAKKy8qCisgKiBBIG1vdW50KDgpIGZvciBMaW51eC4KKyAqCisgKiBNb2RpZmljYXRpb25zIGJ5IG1hbnkgcGVvcGxlLiBEaXN0cmlidXRlZCB1bmRlciBHUEwuCisgKi8KKworI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCisjaW5jbHVkZSA8cHdkLmg+CisjaW5jbHVkZSA8Z3JwLmg+CisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSA8c3lzL21vdW50Lmg+CisKKyNpbmNsdWRlIDxtbnRlbnQuaD4KKworI2lmZGVmIEhBVkVfTElCU0VMSU5VWAorI2luY2x1ZGUgPHNlbGludXgvc2VsaW51eC5oPgorI2luY2x1ZGUgPHNlbGludXgvY29udGV4dC5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJmc3Byb2JlLmgiCisjaW5jbHVkZSAiZGV2bmFtZS5oIgorI2luY2x1ZGUgIm1vdW50X2NvbnN0YW50cy5oIgorI2luY2x1ZGUgInN1bmRyaWVzLmgiCisjaW5jbHVkZSAieG1hbGxvYy5oIgorI2luY2x1ZGUgIm1vdW50X21udGVudC5oIgorI2luY2x1ZGUgImZzdGFiLmgiCisjaW5jbHVkZSAibG9tb3VudC5oIgorI2luY2x1ZGUgImxvb3AuaCIKKyNpbmNsdWRlICJnZXR1c2VybmFtZS5oIgorI2luY2x1ZGUgImVudi5oIgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgImJsa2Rldi5oIgorCisjZGVmaW5lIERPX1BTX0ZJRERMSU5HCisKKyNpZmRlZiBET19QU19GSURETElORworI2luY2x1ZGUgInNldHByb2N0aXRsZS5oIgorI2VuZGlmCisKKy8qIFRydWUgZm9yIGZha2UgbW91bnQgKC1mKS4gICovCitzdGF0aWMgaW50IGZha2UgPSAwOworCisvKiBUcnVlIGlmIHdlIGFyZSBhbGxvd2VkIHRvIGNhbGwgL3NiaW4vbW91bnQuJHtGU1RZUEV9ICovCitzdGF0aWMgaW50IGV4dGVybmFsX2FsbG93ZWQgPSAxOworCisvKiBEb24ndCB3cml0ZSBhbiBlbnRyeSBpbiAvZXRjL210YWIgKC1uKS4gICovCitzdGF0aWMgaW50IG5vbXRhYiA9IDA7CisKKy8qIFRydWUgZm9yIGV4cGxpY2l0IHJlYWRvbmx5ICgtcikuICAqLworc3RhdGljIGludCByZWFkb25seSA9IDA7CisKKy8qIE5vbnplcm8gZm9yIHNsb3BweSAoLXMpLiAgKi8KK3N0YXRpYyBpbnQgc2xvcHB5ID0gMDsKKworLyogVHJ1ZSBmb3IgZXhwbGljaXQgcmVhZC93cml0ZSAoLXcpLiAgKi8KK3N0YXRpYyBpbnQgcmVhZHdyaXRlID0gMDsKKworLyogVHJ1ZSBmb3IgYWxsIG1vdW50ICgtYSkuICAqLworc3RhdGljIGludCBtb3VudF9hbGwgPSAwOworCisvKiBUcnVlIGZvciBmb3JrKCkgZHVyaW5nIGFsbCBtb3VudCAoLUYpLiAgKi8KK3N0YXRpYyBpbnQgb3B0Zm9yayA9IDA7CisKKy8qIEFkZCB2b2x1bWVsYWJlbCBpbiBhIGxpc3Rpbmcgb2YgbW91bnRlZCBkZXZpY2VzICgtbCkuICovCitzdGF0aWMgaW50IGxpc3Rfd2l0aF92b2x1bWVsYWJlbCA9IDA7CisKKy8qIE5vbnplcm8gZm9yIG1vdW50IHtiaW5kfG1vdmV8bWFrZS1zaGFyZWR8bWFrZS1wcml2YXRlfAorICoJCQkJbWFrZS11bmJpbmRhYmxlfG1ha2Utc2xhdmV9CisgKi8KK3N0YXRpYyBpbnQgbW91bnR0eXBlID0gMDsKKworLyogVHJ1ZSBpZiAocnVpZCAhPSBldWlkKSBvciAoMCAhPSBydWlkKSwgaS5lLiBvbmx5ICJ1c2VyIiBtb3VudHMgcGVybWl0dGVkLiAgKi8KK3N0YXRpYyBpbnQgcmVzdHJpY3RlZCA9IDE7CisKKy8qIENvbnRhaW5zIHRoZSBmZCB0byByZWFkIHRoZSBwYXNzcGhyYXNlIGZyb20sIGlmIGFueS4gKi8KK3N0YXRpYyBpbnQgcGZkID0gLTE7CisKKy8qIG1vdW50KDIpIG9wdGlvbnMgKi8KK3N0cnVjdCBtb3VudGFyZ3MgeworICAgICAgIGNvbnN0IGNoYXIgKnNwZWM7CisgICAgICAgY29uc3QgY2hhciAqbm9kZTsKKyAgICAgICBjb25zdCBjaGFyICp0eXBlOworICAgICAgIGludCBmbGFnczsKKyAgICAgICB2b2lkICpkYXRhOworfTsKKworLyogTWFwIGZyb20gLW8gYW5kIGZzdGFiIG9wdGlvbiBzdHJpbmdzIHRvIHRoZSBmbGFnIGFyZ3VtZW50IHRvIG1vdW50KDIpLiAgKi8KK3N0cnVjdCBvcHRfbWFwIHsKKyAgY29uc3QgY2hhciAqb3B0OwkJLyogb3B0aW9uIG5hbWUgKi8KKyAgaW50ICBza2lwOwkJCS8qIHNraXAgaW4gbXRhYiBvcHRpb24gc3RyaW5nICovCisgIGludCAgaW52OwkJCS8qIHRydWUgaWYgZmxhZyB2YWx1ZSBzaG91bGQgYmUgaW52ZXJ0ZWQgKi8KKyAgaW50ICBtYXNrOwkJCS8qIGZsYWcgbWFzayB2YWx1ZSAqLworfTsKKworLyogQ3VzdG9tIG1vdW50IG9wdGlvbnMgZm9yIG91ciBvd24gcHVycG9zZXMuICAqLworLyogTWF5YmUgdGhlc2Ugc2hvdWxkIG5vdyBiZSBmcmVlZCBmb3Iga2VybmVsIHVzZSBhZ2FpbiAqLworI2RlZmluZSBNU19OT0FVVE8JMHg4MDAwMDAwMAorI2RlZmluZSBNU19VU0VSUwkweDQwMDAwMDAwCisjZGVmaW5lIE1TX1VTRVIJCTB4MjAwMDAwMDAKKyNkZWZpbmUgTVNfT1dORVIJMHgxMDAwMDAwMAorI2RlZmluZSBNU19HUk9VUAkweDA4MDAwMDAwCisjZGVmaW5lIE1TX0NPTU1FTlQJMHgwMjAwMDAwMAorI2RlZmluZSBNU19MT09QCQkweDAwMDEwMDAwCisKKy8qIE9wdGlvbnMgdGhhdCB3ZSBrZWVwIHRoZSBtb3VudCBzeXN0ZW0gY2FsbCBmcm9tIHNlZWluZy4gICovCisjZGVmaW5lIE1TX05PU1lTCShNU19OT0FVVE98TVNfVVNFUlN8TVNfVVNFUnxNU19DT01NRU5UfE1TX0xPT1ApCisKKy8qIE9wdGlvbnMgdGhhdCB3ZSBrZWVwIGZyb20gYXBwZWFyaW5nIGluIHRoZSBvcHRpb25zIGZpZWxkIGluIHRoZSBtdGFiLiAgKi8KKyNkZWZpbmUgTVNfTk9NVEFCCShNU19SRU1PVU5UfE1TX05PQVVUT3xNU19VU0VSU3xNU19VU0VSKQorCisjZGVmaW5lIE1TX1BST1BBR0FUSU9OICAoTVNfU0hBUkVEfE1TX1NMQVZFfE1TX1VOQklOREFCTEV8TVNfUFJJVkFURSkKKworLyogT3B0aW9ucyB0aGF0IHdlIG1ha2Ugb3JkaW5hcnkgdXNlcnMgaGF2ZSBieSBkZWZhdWx0LiAgKi8KKyNkZWZpbmUgTVNfU0VDVVJFCShNU19OT0VYRUN8TVNfTk9TVUlEfE1TX05PREVWKQorCisvKiBPcHRpb25zIHRoYXQgd2UgbWFrZSBvd25lci1tb3VudGVkIGRldmljZXMgaGF2ZSBieSBkZWZhdWx0ICovCisjZGVmaW5lIE1TX09XTkVSU0VDVVJFCShNU19OT1NVSUR8TVNfTk9ERVYpCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0X21hcCBvcHRfbWFwW10gPSB7CisgIHsgImRlZmF1bHRzIiwJMCwgMCwgMAkJfSwJLyogZGVmYXVsdCBvcHRpb25zICovCisgIHsgInJvIiwJMSwgMCwgTVNfUkRPTkxZCX0sCS8qIHJlYWQtb25seSAqLworICB7ICJydyIsCTEsIDEsIE1TX1JET05MWQl9LAkvKiByZWFkLXdyaXRlICovCisgIHsgImV4ZWMiLAkwLCAxLCBNU19OT0VYRUMJfSwJLyogcGVybWl0IGV4ZWN1dGlvbiBvZiBiaW5hcmllcyAqLworICB7ICJub2V4ZWMiLAkwLCAwLCBNU19OT0VYRUMJfSwJLyogZG9uJ3QgZXhlY3V0ZSBiaW5hcmllcyAqLworICB7ICJzdWlkIiwJMCwgMSwgTVNfTk9TVUlECX0sCS8qIGhvbm9yIHN1aWQgZXhlY3V0YWJsZXMgKi8KKyAgeyAibm9zdWlkIiwJMCwgMCwgTVNfTk9TVUlECX0sCS8qIGRvbid0IGhvbm9yIHN1aWQgZXhlY3V0YWJsZXMgKi8KKyAgeyAiZGV2IiwJMCwgMSwgTVNfTk9ERVYJfSwJLyogaW50ZXJwcmV0IGRldmljZSBmaWxlcyAgKi8KKyAgeyAibm9kZXYiLAkwLCAwLCBNU19OT0RFVgl9LAkvKiBkb24ndCBpbnRlcnByZXQgZGV2aWNlcyAqLworICB7ICJzeW5jIiwJMCwgMCwgTVNfU1lOQ0hST05PVVN9LAkvKiBzeW5jaHJvbm91cyBJL08gKi8KKyAgeyAiYXN5bmMiLAkwLCAxLCBNU19TWU5DSFJPTk9VU30sCS8qIGFzeW5jaHJvbm91cyBJL08gKi8KKyAgeyAiZGlyc3luYyIsCTAsIDAsIE1TX0RJUlNZTkN9LAkvKiBzeW5jaHJvbm91cyBkaXJlY3RvcnkgbW9kaWZpY2F0aW9ucyAqLworICB7ICJyZW1vdW50IiwgIDAsIDAsIE1TX1JFTU9VTlR9LCAgICAgIC8qIEFsdGVyIGZsYWdzIG9mIG1vdW50ZWQgRlMgKi8KKyAgeyAiYmluZCIsCTAsIDAsIE1TX0JJTkQgICB9LAkvKiBSZW1vdW50IHBhcnQgb2YgdHJlZSBlbHNld2hlcmUgKi8KKyAgeyAicmJpbmQiLAkwLCAwLCBNU19CSU5EfE1TX1JFQyB9LCAvKiBJZGVtLCBwbHVzIG1vdW50ZWQgc3VidHJlZXMgKi8KKyAgeyAiYXV0byIsCTAsIDEsIE1TX05PQVVUTwl9LAkvKiBDYW4gYmUgbW91bnRlZCB1c2luZyAtYSAqLworICB7ICJub2F1dG8iLAkwLCAwLCBNU19OT0FVVE8JfSwJLyogQ2FuICBvbmx5IGJlIG1vdW50ZWQgZXhwbGljaXRseSAqLworICB7ICJ1c2VycyIsCTAsIDAsIE1TX1VTRVJTCX0sCS8qIEFsbG93IG9yZGluYXJ5IHVzZXIgdG8gbW91bnQgKi8KKyAgeyAibm91c2VycyIsCTAsIDEsIE1TX1VTRVJTCX0sCS8qIEZvcmJpZCBvcmRpbmFyeSB1c2VyIHRvIG1vdW50ICovCisgIHsgInVzZXIiLAkwLCAwLCBNU19VU0VSCX0sCS8qIEFsbG93IG9yZGluYXJ5IHVzZXIgdG8gbW91bnQgKi8KKyAgeyAibm91c2VyIiwJMCwgMSwgTVNfVVNFUgl9LAkvKiBGb3JiaWQgb3JkaW5hcnkgdXNlciB0byBtb3VudCAqLworICB7ICJvd25lciIsCTAsIDAsIE1TX09XTkVSICB9LAkvKiBMZXQgdGhlIG93bmVyIG9mIHRoZSBkZXZpY2UgbW91bnQgKi8KKyAgeyAibm9vd25lciIsCTAsIDEsIE1TX09XTkVSICB9LAkvKiBEZXZpY2Ugb3duZXIgaGFzIG5vIHNwZWNpYWwgcHJpdnMgKi8KKyAgeyAiZ3JvdXAiLAkwLCAwLCBNU19HUk9VUCAgfSwJLyogTGV0IHRoZSBncm91cCBvZiB0aGUgZGV2aWNlIG1vdW50ICovCisgIHsgIm5vZ3JvdXAiLAkwLCAxLCBNU19HUk9VUCAgfSwJLyogRGV2aWNlIGdyb3VwIGhhcyBubyBzcGVjaWFsIHByaXZzICovCisgIHsgIl9uZXRkZXYiLAkwLCAwLCBNU19DT01NRU5UfSwJLyogRGV2aWNlIHJlcXVpcmVzIG5ldHdvcmsgKi8KKyAgeyAiY29tbWVudCIsCTAsIDAsIE1TX0NPTU1FTlR9LAkvKiBmc3RhYiBjb21tZW50IG9ubHkgKGt1ZHp1LF9uZXRkZXYpKi8KKworICAvKiBhZGQgbmV3IG9wdGlvbnMgaGVyZSAqLworI2lmZGVmIE1TX05PU1VCCisgIHsgInN1YiIsCTAsIDEsIE1TX05PU1VCCX0sCS8qIGFsbG93IHN1Ym1vdW50cyAqLworICB7ICJub3N1YiIsCTAsIDAsIE1TX05PU1VCCX0sCS8qIGRvbid0IGFsbG93IHN1Ym1vdW50cyAqLworI2VuZGlmCisjaWZkZWYgTVNfU0lMRU5UCisgIHsgInF1aWV0IiwJMCwgMCwgTVNfU0lMRU5UICAgIH0sCS8qIGJlIHF1aWV0ICAqLworICB7ICJsb3VkIiwJMCwgMSwgTVNfU0lMRU5UICAgIH0sCS8qIHByaW50IG91dCBtZXNzYWdlcy4gKi8KKyNlbmRpZgorI2lmZGVmIE1TX01BTkRMT0NLCisgIHsgIm1hbmQiLAkwLCAwLCBNU19NQU5ETE9DSyB9LAkvKiBBbGxvdyBtYW5kYXRvcnkgbG9ja3Mgb24gdGhpcyBGUyAqLworICB7ICJub21hbmQiLAkwLCAxLCBNU19NQU5ETE9DSyB9LAkvKiBGb3JiaWQgbWFuZGF0b3J5IGxvY2tzIG9uIHRoaXMgRlMgKi8KKyNlbmRpZgorICB7ICJsb29wIiwJMSwgMCwgTVNfTE9PUAl9LAkvKiB1c2UgYSBsb29wIGRldmljZSAqLworI2lmZGVmIE1TX05PQVRJTUUKKyAgeyAiYXRpbWUiLAkwLCAxLCBNU19OT0FUSU1FIH0sCS8qIFVwZGF0ZSBhY2Nlc3MgdGltZSAqLworICB7ICJub2F0aW1lIiwJMCwgMCwgTVNfTk9BVElNRSB9LAkvKiBEbyBub3QgdXBkYXRlIGFjY2VzcyB0aW1lICovCisjZW5kaWYKKyNpZmRlZiBNU19JX1ZFUlNJT04KKyAgeyAiaXZlcnNpb24iLAkwLCAwLCBNU19JX1ZFUlNJT04gfSwJLyogVXBkYXRlIGlub2RlIElfdmVyc2lvbiB0aW1lICovCisgIHsgIm5vaXZlcnNpb24iLCAwLCAxLCBNU19JX1ZFUlNJT04gfSwJLyogRG9uJ3QgdXBkYXRlIGlub2RlIElfdmVyc2lvbiB0aW1lICovCisjZW5kaWYKKyNpZmRlZiBNU19OT0RJUkFUSU1FCisgIHsgImRpcmF0aW1lIiwJMCwgMSwgTVNfTk9ESVJBVElNRSB9LAkvKiBVcGRhdGUgZGlyIGFjY2VzcyB0aW1lcyAqLworICB7ICJub2RpcmF0aW1lIiwgMCwgMCwgTVNfTk9ESVJBVElNRSB9LC8qIERvIG5vdCB1cGRhdGUgZGlyIGFjY2VzcyB0aW1lcyAqLworI2VuZGlmCisjaWZkZWYgTVNfUkVMQVRJTUUKKyAgeyAicmVsYXRpbWUiLAkwLCAwLCBNU19SRUxBVElNRSB9LCAgIC8qIFVwZGF0ZSBhY2Nlc3MgdGltZXMgcmVsYXRpdmUgdG8KKwkJCQkJICBtdGltZS9jdGltZSAqLworICB7ICJub3JlbGF0aW1lIiwgMCwgMSwgTVNfUkVMQVRJTUUgfSwgLyogVXBkYXRlIGFjY2VzcyB0aW1lIHdpdGhvdXQgcmVnYXJkCisJCQkJCSAgdG8gbXRpbWUvY3RpbWUgKi8KKyNlbmRpZgorI2lmZGVmIE1TX1NUUklDVEFUSU1FCisgIHsgInN0cmljdGF0aW1lIiwgMCwgMCwgTVNfU1RSSUNUQVRJTUUgfSwgLyogU3RyaWN0IGF0aW1lIHNlbWFudGljcyAqLworICB7ICJub3N0cmljdGF0aW1lIiwgMCwgMSwgTVNfU1RSSUNUQVRJTUUgfSwgLyoga2VybmVsIGRlZmF1bHQgYXRpbWUgKi8KKyNlbmRpZgorICB7ICJub2ZhaWwiLAkwLCAwLCBNU19DT01NRU5UfSwJLyogRG8gbm90IGZhaWwgaWYgRU5PRU5UIG9uIGRldiAqLworICB7IE5VTEwsCTAsIDAsIDAJCX0KK307CisKK3N0YXRpYyBpbnQgb3B0X25vZmFpbCA9IDA7CisKK3N0YXRpYyBjb25zdCBjaGFyICpvcHRfbG9vcGRldiwgKm9wdF92ZnN0eXBlLCAqb3B0X29mZnNldCwgKm9wdF9zaXplbGltaXQsCisgICAgICAgICpvcHRfZW5jcnlwdGlvbiwgKm9wdF9zcGVlZCwgKm9wdF9jb21tZW50LCAqb3B0X3VoZWxwZXI7CisKK3N0YXRpYyBpbnQgaXNfcmVhZG9ubHkoY29uc3QgY2hhciAqbm9kZSk7CitzdGF0aWMgaW50IG1vdW50ZWQgKGNvbnN0IGNoYXIgKnNwZWMwLCBjb25zdCBjaGFyICpub2RlMCk7CitzdGF0aWMgaW50IGNoZWNrX3NwZWNpYWxfbW91bnRwcm9nKGNvbnN0IGNoYXIgKnNwZWMsIGNvbnN0IGNoYXIgKm5vZGUsCisJCWNvbnN0IGNoYXIgKnR5cGUsIGludCBmbGFncywgY2hhciAqZXh0cmFfb3B0cywgaW50ICpzdGF0dXMpOworCitzdGF0aWMgc3RydWN0IHN0cmluZ19vcHRfbWFwIHsKKyAgY2hhciAqdGFnOworICBpbnQgc2tpcDsKKyAgY29uc3QgY2hhciAqKnZhbHB0cjsKK30gc3RyaW5nX29wdF9tYXBbXSA9IHsKKyAgeyAibG9vcD0iLAkwLCAmb3B0X2xvb3BkZXYgfSwKKyAgeyAidmZzPSIsCTEsICZvcHRfdmZzdHlwZSB9LAorICB7ICJvZmZzZXQ9IiwJMCwgJm9wdF9vZmZzZXQgfSwKKyAgeyAic2l6ZWxpbWl0PSIsICAwLCAmb3B0X3NpemVsaW1pdCB9LAorICB7ICJlbmNyeXB0aW9uPSIsIDAsICZvcHRfZW5jcnlwdGlvbiB9LAorICB7ICJzcGVlZD0iLCAwLCAmb3B0X3NwZWVkIH0sCisgIHsgImNvbW1lbnQ9IiwgMSwgJm9wdF9jb21tZW50IH0sCisgIHsgInVoZWxwZXI9IiwgMCwgJm9wdF91aGVscGVyIH0sCisgIHsgTlVMTCwgMCwgTlVMTCB9Cit9OworCitzdGF0aWMgdm9pZAorY2xlYXJfc3RyaW5nX29wdHModm9pZCkgeworCXN0cnVjdCBzdHJpbmdfb3B0X21hcCAqbTsKKworCWZvciAobSA9ICZzdHJpbmdfb3B0X21hcFswXTsgbS0+dGFnOyBtKyspCisJCSoobS0+dmFscHRyKSA9IE5VTEw7Cit9CisKK3N0YXRpYyBpbnQKK3BhcnNlX3N0cmluZ19vcHQoY2hhciAqcykgeworCXN0cnVjdCBzdHJpbmdfb3B0X21hcCAqbTsKKwlpbnQgbHRoOworCisJZm9yIChtID0gJnN0cmluZ19vcHRfbWFwWzBdOyBtLT50YWc7IG0rKykgeworCQlsdGggPSBzdHJsZW4obS0+dGFnKTsKKwkJaWYgKCFzdHJuY21wKHMsIG0tPnRhZywgbHRoKSkgeworCQkJKihtLT52YWxwdHIpID0geHN0cmR1cChzICsgbHRoKTsKKwkJCXJldHVybiAxOworCQl9CisJfQorCXJldHVybiAwOworfQorCisvKiBSZXBvcnQgb24gYSBzaW5nbGUgbW91bnQuICAqLworc3RhdGljIHZvaWQKK3ByaW50X29uZSAoY29uc3Qgc3RydWN0IG15X21udGVudCAqbWUpIHsKKwlpZiAobW91bnRfcXVpZXQpCisJCXJldHVybjsKKwlwcmludGYgKCIlcyBvbiAlcyIsIG1lLT5tbnRfZnNuYW1lLCBtZS0+bW50X2Rpcik7CisJaWYgKG1lLT5tbnRfdHlwZSAhPSBOVUxMICYmICoobWUtPm1udF90eXBlKSAhPSAnXDAnKQorCQlwcmludGYgKCIgdHlwZSAlcyIsIG1lLT5tbnRfdHlwZSk7CisJaWYgKG1lLT5tbnRfb3B0cyAhPSBOVUxMKQorCQlwcmludGYgKCIgKCVzKSIsIG1lLT5tbnRfb3B0cyk7CisJaWYgKGxpc3Rfd2l0aF92b2x1bWVsYWJlbCAmJiBpc19wc2V1ZG9fZnMobWUtPm1udF90eXBlKSA9PSAwKSB7CisJCWNvbnN0IGNoYXIgKmRldm5hbWUgPSBzcGVjX3RvX2Rldm5hbWUobWUtPm1udF9mc25hbWUpOworCisJCWlmIChkZXZuYW1lKSB7CisJCQljb25zdCBjaGFyICpsYWJlbDsKKworCQkJbGFiZWwgPSBmc3Byb2JlX2dldF9sYWJlbF9ieV9kZXZuYW1lKGRldm5hbWUpOworCQkJbXlfZnJlZShkZXZuYW1lKTsKKworCQkJaWYgKGxhYmVsKSB7CisJCQkJcHJpbnRmICgiIFslc10iLCBsYWJlbCk7CisJCQkJbXlfZnJlZShsYWJlbCk7CisJCQl9CisJCX0KKwl9CisJcHJpbnRmICgiXG4iKTsKK30KKworLyogUmVwb3J0IG9uIGV2ZXJ5dGhpbmcgaW4gbXRhYiAob2YgdGhlIHNwZWNpZmllZCB0eXBlcyBpZiBhbnkpLiAgKi8KK3N0YXRpYyBpbnQKK3ByaW50X2FsbCAoY2hhciAqdHlwZXMpIHsKKyAgICAgc3RydWN0IG1udGVudGNobiAqbWMsICptYzA7CisKKyAgICAgbWMwID0gbXRhYl9oZWFkKCk7CisgICAgIGZvciAobWMgPSBtYzAtPm54dDsgbWMgJiYgbWMgIT0gbWMwOyBtYyA9IG1jLT5ueHQpIHsKKwkgIGlmIChtYXRjaGluZ190eXBlIChtYy0+bS5tbnRfdHlwZSwgdHlwZXMpKQorCSAgICAgICBwcmludF9vbmUgKCYobWMtPm0pKTsKKyAgICAgfQorCisgICAgIGlmICghbXRhYl9kb2VzX25vdF9leGlzdCgpICYmICFtdGFiX2lzX2Ffc3ltbGluaygpICYmIGlzX3JlYWRvbmx5KF9QQVRIX01PVU5URUQpKQorICAgICAgICAgIHByaW50ZihfKCJcbiIKKwkibW91bnQ6IHdhcm5pbmc6IC9ldGMvbXRhYiBpcyBub3Qgd3JpdGFibGUgKGUuZy4gcmVhZC1vbmx5IGZpbGVzeXN0ZW0pLlxuIgorCSIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorCSIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisJIiAgICAgICBjaGVjayB0aGUgL3Byb2MvbW91bnRzIGZpbGUuXG5cbiIpKTsKKworICAgICBleGl0ICgwKTsKK30KKworLyogcmVhbGxvY2F0ZXMgaXRzIGZpcnN0IGFyZyAqLworc3RhdGljIGNoYXIgKgorYXBwZW5kX29wdChjaGFyICpzLCBjb25zdCBjaGFyICpvcHQsIGNvbnN0IGNoYXIgKnZhbCkKK3sKKwlpZiAoIW9wdCkKKwkJcmV0dXJuIHM7CisJaWYgKCFzKSB7CisJCWlmICghdmFsKQorCQkgICAgICAgcmV0dXJuIHhzdHJkdXAob3B0KTsJCS8qIG9wdCAqLworCisJCXJldHVybiB4c3RyY29uY2F0MyhOVUxMLCBvcHQsIHZhbCk7CS8qIG9wdD12YWwgKi8KKwl9CisJaWYgKCF2YWwpCisJCXJldHVybiB4c3RyY29uY2F0MyhzLCAiLCIsIG9wdCk7CS8qIHMsb3B0ICovCisKKwlyZXR1cm4geHN0cmNvbmNhdDQocywgIiwiLCBvcHQsIHZhbCk7CQkvKiBzLG9wdD12YWwgKi8KK30KKworc3RhdGljIGNoYXIgKgorYXBwZW5kX251bW9wdChjaGFyICpzLCBjb25zdCBjaGFyICpvcHQsIGxvbmcgbnVtKQoreworCWNoYXIgYnVmWzMyXTsKKworCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlbGQiLCBudW0pOworCXJldHVybiBhcHBlbmRfb3B0KHMsIG9wdCwgYnVmKTsKK30KKworI2lmZGVmIEhBVkVfTElCU0VMSU5VWAorLyogc3RyaXAgcXVvdGVzIGZyb20gYSAic3RyaW5nIgorICogV2FybmluZzogVGhpcyBmdW5jdGlvbiBtb2RpZnkgdGhlICJzdHIiIGFyZ3VtZW50LgorICovCitzdGF0aWMgY2hhciAqCitzdHJpcF9xdW90ZXMoY2hhciAqc3RyKQoreworCWNoYXIgKmVuZCA9IE5VTEw7CisKKwlpZiAoKnN0ciAhPSAnIicpCisJCXJldHVybiBzdHI7CisKKwllbmQgPSBzdHJyY2hyKHN0ciwgJyInKTsKKwlpZiAoZW5kID09IE5VTEwgfHwgZW5kID09IHN0cikKKwkJZGllIChFWF9VU0FHRSwgXygibW91bnQ6IGltcHJvcGVybHkgcXVvdGVkIG9wdGlvbiBzdHJpbmcgJyVzJyIpLCBzdHIpOworCisJKmVuZCA9ICdcMCc7CisJcmV0dXJuIHN0cisxOworfQorCisvKiB0cmFuc2xhdGVzIFNFTGludXggY29udGV4dCBmcm9tIGh1bWFuIHRvIHJhdyBmb3JtYXQgYW5kCisgKiBhcHBlbmRzIGl0IHRvIHRoZSBtb3VudCBleHRyYSBvcHRpb25zLgorICoKKyAqIHJldHVybnMgLTEgb24gZXJyb3IgYW5kIDAgb24gc3VjY2VzcworICovCitzdGF0aWMgaW50CithcHBlbmRfY29udGV4dChjb25zdCBjaGFyICpvcHRuYW1lLCBjaGFyICpvcHRkYXRhLCBjaGFyICoqZXh0cmFfb3B0cykKK3sKKwlzZWN1cml0eV9jb250ZXh0X3QgcmF3ID0gTlVMTDsKKwljaGFyICpkYXRhID0gTlVMTDsKKworCWlmIChpc19zZWxpbnV4X2VuYWJsZWQoKSAhPSAxKQorCQkvKiBpZ25vcmUgdGhlIG9wdGlvbiBpZiB3ZSBydW5uaW5nIHdpdGhvdXQgc2VsaW51eCAqLworCQlyZXR1cm4gMDsKKworCWlmIChvcHRkYXRhPT1OVUxMIHx8ICpvcHRkYXRhPT0nXDAnIHx8IG9wdG5hbWU9PU5VTEwpCisJCXJldHVybiAtMTsKKworCS8qIFRPRE86IHVzZSBzdHJpcF9xdW90ZXMoKSBmb3IgYWxsIG1vdW50IG9wdGlvbnM/ICovCisJZGF0YSA9ICpvcHRkYXRhID09JyInID8gc3RyaXBfcXVvdGVzKG9wdGRhdGEpIDogb3B0ZGF0YTsKKworCWlmIChzZWxpbnV4X3RyYW5zX3RvX3Jhd19jb250ZXh0KAorCQkJKHNlY3VyaXR5X2NvbnRleHRfdCkgZGF0YSwgJnJhdykgPT0gLTEgfHwKKwkJCXJhdyA9PSBOVUxMKQorCQlyZXR1cm4gLTE7CisKKwlpZiAodmVyYm9zZSkKKwkJcHJpbnRmKF8oIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIiksCisJCQkJb3B0bmFtZSwgZGF0YSwgKGNoYXIgKikgcmF3KTsKKworCSpleHRyYV9vcHRzID0gYXBwZW5kX29wdCgqZXh0cmFfb3B0cywgb3B0bmFtZSwgTlVMTCk7CisJKmV4dHJhX29wdHMgPSB4c3RyY29uY2F0NCgqZXh0cmFfb3B0cywgIlwiIiwgKGNoYXIgKikgcmF3LCAiXCIiKTsKKworCWZyZWVjb24ocmF3KTsKKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCisvKgorICogTG9vayBmb3IgT1BUIGluIG9wdF9tYXAgdGFibGUgYW5kIHJldHVybiBtYXNrIHZhbHVlLgorICogSWYgT1BUIGlzbid0IGZvdW5kLCB0YWNrIGl0IG9udG8gZXh0cmFfb3B0cyAod2hpY2ggaXMgbm9uLU5VTEwpLgorICogRm9yIHRoZSBvcHRpb25zIHVpZD0gYW5kIGdpZD0gcmVwbGFjZSB1c2VyIG9yIGdyb3VwIG5hbWUgYnkgaXRzIHZhbHVlLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQKK3BhcnNlX29wdChjaGFyICpvcHQsIGludCAqbWFzaywgY2hhciAqKmV4dHJhX29wdHMpIHsKKwljb25zdCBzdHJ1Y3Qgb3B0X21hcCAqb207CisKKwlmb3IgKG9tID0gb3B0X21hcDsgb20tPm9wdCAhPSBOVUxMOyBvbSsrKQorCQlpZiAoc3RyZXEgKG9wdCwgb20tPm9wdCkpIHsKKwkJCWlmIChvbS0+aW52KQorCQkJCSptYXNrICY9IH5vbS0+bWFzazsKKwkJCWVsc2UKKwkJCQkqbWFzayB8PSBvbS0+bWFzazsKKwkJCWlmICgob20tPm1hc2sgPT0gTVNfVVNFUiB8fCBvbS0+bWFzayA9PSBNU19VU0VSUykKKwkJCSAgICAmJiAhb20tPmludikKKwkJCQkqbWFzayB8PSBNU19TRUNVUkU7CisJCQlpZiAoKG9tLT5tYXNrID09IE1TX09XTkVSIHx8IG9tLT5tYXNrID09IE1TX0dST1VQKQorCQkJICAgICYmICFvbS0+aW52KQorCQkJCSptYXNrIHw9IE1TX09XTkVSU0VDVVJFOworI2lmZGVmIE1TX1NJTEVOVAorCQkJaWYgKG9tLT5tYXNrID09IE1TX1NJTEVOVCAmJiBvbS0+aW52KSAgeworCQkJCW1vdW50X3F1aWV0ID0gMTsKKwkJCQl2ZXJib3NlID0gMDsKKwkJCX0KKyNlbmRpZgorCQkJaWYgKHN0cmVxKG9wdCwgIm5vZmFpbCIpKQorCQkJCW9wdF9ub2ZhaWwgPSAxOworCQkJcmV0dXJuOworCQl9CisKKwkvKiBjb252ZXJ0IG5vbm51bWVyaWMgaWRzIHRvIG51bWVyaWMgKi8KKwlpZiAoIXN0cm5jbXAob3B0LCAidWlkPSIsIDQpICYmICFpc2RpZ2l0KG9wdFs0XSkpIHsKKwkJc3RydWN0IHBhc3N3ZCAqcHcgPSBnZXRwd25hbShvcHQrNCk7CisKKwkJaWYgKHB3KSB7CisJCQkqZXh0cmFfb3B0cyA9IGFwcGVuZF9udW1vcHQoKmV4dHJhX29wdHMsCisJCQkJCQkidWlkPSIsIHB3LT5wd191aWQpOworCQkJcmV0dXJuOworCQl9CisJfQorCWlmICghc3RybmNtcChvcHQsICJnaWQ9IiwgNCkgJiYgIWlzZGlnaXQob3B0WzRdKSkgeworCQlzdHJ1Y3QgZ3JvdXAgKmdyID0gZ2V0Z3JuYW0ob3B0KzQpOworCisJCWlmIChncikgeworCQkJKmV4dHJhX29wdHMgPSBhcHBlbmRfbnVtb3B0KCpleHRyYV9vcHRzLAorCQkJCQkJImdpZD0iLCBnci0+Z3JfZ2lkKTsKKwkJCXJldHVybjsKKwkJfQorCX0KKworI2lmZGVmIEhBVkVfTElCU0VMSU5VWAorCWlmIChzdHJuY21wKG9wdCwgImNvbnRleHQ9IiwgOCkgPT0gMCAmJiAqKG9wdCs4KSkgeworCQlpZiAoYXBwZW5kX2NvbnRleHQoImNvbnRleHQ9Iiwgb3B0KzgsIGV4dHJhX29wdHMpID09IDApCisJCQlyZXR1cm47CisJfQorCWlmIChzdHJuY21wKG9wdCwgImZzY29udGV4dD0iLCAxMCkgPT0gMCAmJiAqKG9wdCsxMCkpIHsKKwkJaWYgKGFwcGVuZF9jb250ZXh0KCJmc2NvbnRleHQ9Iiwgb3B0KzEwLCBleHRyYV9vcHRzKSA9PSAwKQorCQkJcmV0dXJuOworCX0KKwlpZiAoc3RybmNtcChvcHQsICJkZWZjb250ZXh0PSIsIDExKSA9PSAwICYmICoob3B0KzExKSkgeworCQlpZiAoYXBwZW5kX2NvbnRleHQoImRlZmNvbnRleHQ9Iiwgb3B0KzExLCBleHRyYV9vcHRzKSA9PSAwKQorCQkJcmV0dXJuOworCX0KKwlpZiAoc3RybmNtcChvcHQsICJyb290Y29udGV4dD0iLCAxMikgPT0gMCAmJiAqKG9wdCsxMikpIHsKKwkJaWYgKGFwcGVuZF9jb250ZXh0KCJyb290Y29udGV4dD0iLCBvcHQrMTIsIGV4dHJhX29wdHMpID09IDApCisJCQlyZXR1cm47CisJfQorI2VuZGlmCisJKmV4dHJhX29wdHMgPSBhcHBlbmRfb3B0KCpleHRyYV9vcHRzLCBvcHQsIE5VTEwpOworfQorCisvKiBUYWtlIC1vIG9wdGlvbnMgbGlzdCBhbmQgY29tcHV0ZSA0dGggYW5kIDV0aCBhcmdzIHRvIG1vdW50KDIpLiAgZmxhZ3MKKyAgIGdldHMgdGhlIHN0YW5kYXJkIG9wdGlvbnMgKGluZGljYXRlZCBieSBiaXRzKSBhbmQgZXh0cmFfb3B0cyBhbGwgdGhlIHJlc3QgKi8KK3N0YXRpYyB2b2lkCitwYXJzZV9vcHRzIChjb25zdCBjaGFyICpvcHRpb25zLCBpbnQgKmZsYWdzLCBjaGFyICoqZXh0cmFfb3B0cykgeworCSpmbGFncyA9IDA7CisJKmV4dHJhX29wdHMgPSBOVUxMOworCisJY2xlYXJfc3RyaW5nX29wdHMoKTsKKworCWlmIChvcHRpb25zICE9IE5VTEwpIHsKKwkJY2hhciAqb3B0cyA9IHhzdHJkdXAob3B0aW9ucyk7CisJCWludCBvcGVuX3F1b3RlID0gMDsKKwkJY2hhciAqb3B0LCAqcDsKKworCQlmb3IgKHA9b3B0cywgb3B0PU5VTEw7IHAgJiYgKnA7IHArKykgeworCQkJaWYgKCFvcHQpCisJCQkJb3B0ID0gcDsJCS8qIGJlZ2luIG9mIHRoZSBvcHRpb24gaXRlbSAqLworCQkJaWYgKCpwID09ICciJykKKwkJCQlvcGVuX3F1b3RlIF49IDE7CS8qIHJldmVyc2UgdGhlIHN0YXR1cyAqLworCQkJaWYgKG9wZW5fcXVvdGUpCisJCQkJY29udGludWU7CQkvKiBzdGlsbCBpbiBxdW90ZWQgYmxvY2sgKi8KKwkJCWlmICgqcCA9PSAnLCcpCisJCQkJKnAgPSAnXDAnOwkJLyogdGVybWluYXRlIHRoZSBvcHRpb24gaXRlbSAqLworCQkJLyogZW5kIG9mIG9wdGlvbiBpdGVtIG9yIGxhc3QgaXRlbSAqLworCQkJaWYgKCpwID09ICdcMCcgfHwgKihwKzEpID09ICdcMCcpIHsKKwkJCQlpZiAoIXBhcnNlX3N0cmluZ19vcHQob3B0KSkKKwkJCQkJcGFyc2Vfb3B0KG9wdCwgZmxhZ3MsIGV4dHJhX29wdHMpOworCQkJCW9wdCA9IE5VTEw7CisJCQl9CisJCX0KKwkJZnJlZShvcHRzKTsKKwl9CisKKwlpZiAocmVhZG9ubHkpCisJCSpmbGFncyB8PSBNU19SRE9OTFk7CisJaWYgKHJlYWR3cml0ZSkKKwkJKmZsYWdzICY9IH5NU19SRE9OTFk7CisKKwlpZiAobW91bnR0eXBlICYgTVNfUFJPUEFHQVRJT04pCisJCSpmbGFncyAmPSB+TVNfQklORDsKKwkqZmxhZ3MgfD0gbW91bnR0eXBlOworfQorCisvKiBUcnkgdG8gYnVpbGQgYSBjYW5vbmljYWwgb3B0aW9ucyBzdHJpbmcuICAqLworc3RhdGljIGNoYXIgKgorZml4X29wdHNfc3RyaW5nIChpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmV4dHJhX29wdHMsIGNvbnN0IGNoYXIgKnVzZXIpIHsKKwljb25zdCBzdHJ1Y3Qgb3B0X21hcCAqb207CisJY29uc3Qgc3RydWN0IHN0cmluZ19vcHRfbWFwICptOworCWNoYXIgKm5ld19vcHRzOworCisJbmV3X29wdHMgPSBhcHBlbmRfb3B0KE5VTEwsIChmbGFncyAmIE1TX1JET05MWSkgPyAicm8iIDogInJ3IiwgTlVMTCk7CisJZm9yIChvbSA9IG9wdF9tYXA7IG9tLT5vcHQgIT0gTlVMTDsgb20rKykgeworCQlpZiAob20tPnNraXApCisJCQljb250aW51ZTsKKwkJaWYgKG9tLT5pbnYgfHwgIW9tLT5tYXNrIHx8IChmbGFncyAmIG9tLT5tYXNrKSAhPSBvbS0+bWFzaykKKwkJCWNvbnRpbnVlOworCQluZXdfb3B0cyA9IGFwcGVuZF9vcHQobmV3X29wdHMsIG9tLT5vcHQsIE5VTEwpOworCQlmbGFncyAmPSB+b20tPm1hc2s7CisJfQorCWZvciAobSA9ICZzdHJpbmdfb3B0X21hcFswXTsgbS0+dGFnOyBtKyspIHsKKwkJaWYgKCFtLT5za2lwICYmICoobS0+dmFscHRyKSkKKwkJCW5ld19vcHRzID0gYXBwZW5kX29wdChuZXdfb3B0cywgbS0+dGFnLCAqKG0tPnZhbHB0cikpOworCX0KKwlpZiAoZXh0cmFfb3B0cyAmJiAqZXh0cmFfb3B0cykKKwkJbmV3X29wdHMgPSBhcHBlbmRfb3B0KG5ld19vcHRzLCBleHRyYV9vcHRzLCBOVUxMKTsKKworCWlmICh1c2VyKQorCQluZXdfb3B0cyA9IGFwcGVuZF9vcHQobmV3X29wdHMsICJ1c2VyPSIsIHVzZXIpOworCisJcmV0dXJuIG5ld19vcHRzOworfQorCitzdGF0aWMgaW50CithbHJlYWR5IChjb25zdCBjaGFyICpzcGVjMCwgY29uc3QgY2hhciAqbm9kZTApIHsKKwlzdHJ1Y3QgbW50ZW50Y2huICptYzsKKwlpbnQgcmV0ID0gMTsKKwljaGFyICpzcGVjID0gY2Fub25pY2FsaXplX3NwZWMoc3BlYzApOworCWNoYXIgKm5vZGUgPSBjYW5vbmljYWxpemUobm9kZTApOworCisJaWYgKChtYyA9IGdldG1udGZpbGUobm9kZSkpICE9IE5VTEwpCisJCWVycm9yIChfKCJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICIKKwkJCSAiJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIiksCisJCSAgICAgICBtYy0+bS5tbnRfZnNuYW1lLCBub2RlKTsKKwllbHNlIGlmIChzcGVjICYmIHN0cmNtcCAoc3BlYywgIm5vbmUiKSAmJgorCQkgKG1jID0gZ2V0bW50ZmlsZShzcGVjKSkgIT0gTlVMTCkKKwkJZXJyb3IgKF8oIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIpLAorCQkgICAgICAgc3BlYywgbWMtPm0ubW50X2Rpcik7CisJZWxzZQorCQlyZXQgPSAwOworCisJZnJlZShzcGVjKTsKKwlmcmVlKG5vZGUpOworCisJcmV0dXJuIHJldDsKK30KKworLyogQ3JlYXRlIG10YWIgd2l0aCBhIHJvb3QgZW50cnkuICAqLworc3RhdGljIHZvaWQKK2NyZWF0ZV9tdGFiICh2b2lkKSB7CisJc3RydWN0IG1udGVudGNobiAqZnN0YWI7CisJc3RydWN0IG15X21udGVudCBtbnQ7CisJaW50IGZsYWdzOworCW1udEZJTEUgKm1mcDsKKworCWxvY2tfbXRhYigpOworCisJbWZwID0gbXlfc2V0bW50ZW50IChfUEFUSF9NT1VOVEVELCAiYSsiKTsKKwlpZiAobWZwID09IE5VTEwgfHwgbWZwLT5tbnRlbnRfZnAgPT0gTlVMTCkgeworCQlpbnQgZXJyc3YgPSBlcnJubzsKKwkJZGllIChFWF9GSUxFSU8sIF8oIm1vdW50OiBjYW4ndCBvcGVuICVzIGZvciB3cml0aW5nOiAlcyIpLAorCQkgICAgIF9QQVRIX01PVU5URUQsIHN0cmVycm9yIChlcnJzdikpOworCX0KKworCS8qIEZpbmQgdGhlIHJvb3QgZW50cnkgYnkgbG9va2luZyBpdCB1cCBpbiBmc3RhYiAqLworCWlmICgoZnN0YWIgPSBnZXRmc19ieV9kaXIgKCIvIikpIHx8IChmc3RhYiA9IGdldGZzX2J5X2RpciAoInJvb3QiKSkpIHsKKwkJY2hhciAqZXh0cmFfb3B0czsKKwkJcGFyc2Vfb3B0cyAoZnN0YWItPm0ubW50X29wdHMsICZmbGFncywgJmV4dHJhX29wdHMpOworCQltbnQubW50X2RpciA9ICIvIjsKKwkJbW50Lm1udF9mc25hbWUgPSBzcGVjX3RvX2Rldm5hbWUoZnN0YWItPm0ubW50X2ZzbmFtZSk7CisJCW1udC5tbnRfdHlwZSA9IGZzdGFiLT5tLm1udF90eXBlOworCQltbnQubW50X29wdHMgPSBmaXhfb3B0c19zdHJpbmcgKGZsYWdzLCBleHRyYV9vcHRzLCBOVUxMKTsKKwkJbW50Lm1udF9mcmVxID0gbW50Lm1udF9wYXNzbm8gPSAwOworCQlmcmVlKGV4dHJhX29wdHMpOworCisJCWlmIChteV9hZGRtbnRlbnQgKG1mcCwgJm1udCkgPT0gMSkgeworCQkJaW50IGVycnN2ID0gZXJybm87CisJCQlkaWUgKEVYX0ZJTEVJTywgXygibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIiksCisJCQkgICAgIF9QQVRIX01PVU5URUQsIHN0cmVycm9yIChlcnJzdikpOworCQl9CisJfQorCWlmIChmY2htb2QgKGZpbGVubyAobWZwLT5tbnRlbnRfZnApLCAwNjQ0KSA8IDApCisJCWlmIChlcnJubyAhPSBFUk9GUykgeworCQkJaW50IGVycnN2ID0gZXJybm87CisJCQlkaWUgKEVYX0ZJTEVJTywKKwkJCSAgICAgXygibW91bnQ6IGVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzIiksCisJCQkgICAgIF9QQVRIX01PVU5URUQsIHN0cmVycm9yIChlcnJzdikpOworCQl9CisJbXlfZW5kbW50ZW50IChtZnApOworCisJdW5sb2NrX210YWIoKTsKKworCXJlc2V0X210YWJfaW5mbygpOworfQorCisvKiBjb3VudCBzdWNjZXNzZnVsIG1vdW50IHN5c3RlbSBjYWxscyAqLworc3RhdGljIGludCBtb3VudGNvdW50ID0gMDsKKworLyoKKyAqIGRvX21vdW50X3N5c2NhbGwoKQorICoJTW91bnQgYSBzaW5nbGUgZmlsZSBzeXN0ZW0uIEtlZXAgdHJhY2sgb2Ygc3VjY2Vzc2VzLgorICogcmV0dXJuczogMDogT0ssIC0xOiBlcnJvciBpbiBlcnJubworICovCitzdGF0aWMgaW50Citkb19tb3VudF9zeXNjYWxsIChzdHJ1Y3QgbW91bnRhcmdzICphcmdzKSB7CisJaW50IGZsYWdzID0gYXJncy0+ZmxhZ3M7CisKKwlpZiAoKGZsYWdzICYgTVNfTUdDX01TSykgPT0gMCkKKwkJZmxhZ3MgfD0gTVNfTUdDX1ZBTDsKKworCWlmICh2ZXJib3NlID4gMikKKwkJcHJpbnRmKCJtb3VudDogbW91bnQoMikgc3lzY2FsbDogc291cmNlOiBcIiVzXCIsIHRhcmdldDogXCIlc1wiLCAiCisJCQkiZmlsZXN5c3RlbXR5cGU6IFwiJXNcIiwgbW91bnRmbGFnczogJWQsIGRhdGE6ICVzXG4iLAorCQkJYXJncy0+c3BlYywgYXJncy0+bm9kZSwgYXJncy0+dHlwZSwgZmxhZ3MsIChjaGFyICopIGFyZ3MtPmRhdGEpOworCisJcmV0dXJuIG1vdW50IChhcmdzLT5zcGVjLCBhcmdzLT5ub2RlLCBhcmdzLT50eXBlLCBmbGFncywgYXJncy0+ZGF0YSk7Cit9CisKKy8qCisgKiBkb19tb3VudCgpCisgKglNb3VudCBhIHNpbmdsZSBmaWxlIHN5c3RlbSwgcG9zc2libHkgaW52b2tpbmcgYW4gZXh0ZXJuYWwgaGFuZGxlciB0bworICogICAgICBkbyBzby4gS2VlcCB0cmFjayBvZiBzdWNjZXNzZXMuCisgKiByZXR1cm5zOiAwOiBPSywgLTE6IGVycm9yIGluIGVycm5vCisgKi8KK3N0YXRpYyBpbnQKK2RvX21vdW50IChzdHJ1Y3QgbW91bnRhcmdzICphcmdzLCBpbnQgKnNwZWNpYWwsIGludCAqc3RhdHVzKSB7CisJaW50IHJldDsKKwlpZiAoY2hlY2tfc3BlY2lhbF9tb3VudHByb2coYXJncy0+c3BlYywgYXJncy0+bm9kZSwgYXJncy0+dHlwZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy0+ZmxhZ3MsIGFyZ3MtPmRhdGEsIHN0YXR1cykpIHsKKwkJKnNwZWNpYWwgPSAxOworCQlyZXQgPSAwOworCX0gZWxzZQorCQlyZXQgPSBkb19tb3VudF9zeXNjYWxsKGFyZ3MpOworCisJaWYgKHJldCA9PSAwKQorCQltb3VudGNvdW50Kys7CisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIGNoZWNrX3NwZWNpYWxfbW91bnRwcm9nKCkKKyAqCUlmIHRoZXJlIGlzIGEgc3BlY2lhbCBtb3VudCBwcm9ncmFtIGZvciB0aGlzIHR5cGUsIGV4ZWMgaXQuCisgKiByZXR1cm5zOiAwOiBubyBleGVjIHdhcyBkb25lLCAxOiBleGVjIHdhcyBkb25lLCBzdGF0dXMgaGFzIHJlc3VsdAorICovCitzdGF0aWMgaW50CitjaGVja19zcGVjaWFsX21vdW50cHJvZyhjb25zdCBjaGFyICpzcGVjLCBjb25zdCBjaGFyICpub2RlLCBjb25zdCBjaGFyICp0eXBlLCBpbnQgZmxhZ3MsCisJCQljaGFyICpleHRyYV9vcHRzLCBpbnQgKnN0YXR1cykgeworICBjaGFyIG1vdW50cHJvZ1sxMjBdOworICBzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworICBpbnQgcmVzOworCisgIGlmICghZXh0ZXJuYWxfYWxsb3dlZCkKKyAgICAgIHJldHVybiAwOworCisgIGlmICh0eXBlID09IE5VTEwgfHwgc3RyY21wKHR5cGUsICJub25lIikgPT0gMCkKKwkgIHJldHVybiAwOworCisgIGlmIChzdHJsZW4odHlwZSkgPCAxMDApIHsKKyAgICAgICBzcHJpbnRmKG1vdW50cHJvZywgIi9zYmluL21vdW50LiVzIiwgdHlwZSk7CisgICAgICAgaWYgKHN0YXQobW91bnRwcm9nLCAmc3RhdGJ1ZikgPT0gMCkgeworCSAgICBpZiAodmVyYm9zZSkKKwkJIGZmbHVzaChzdGRvdXQpOworCSAgICByZXMgPSBmb3JrKCk7CisJICAgIGlmIChyZXMgPT0gMCkgeworCQkgY2hhciAqb28sICptb3VudGFyZ3NbMTBdOworCQkgaW50IGkgPSAwOworCisJCSBpZihzZXRnaWQoZ2V0Z2lkKCkpIDwgMCkKKwkJCSBkaWUoRVhfRkFJTCwgXygibW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIiksIHN0cmVycm9yKGVycm5vKSk7CisKKwkJIGlmKHNldHVpZChnZXR1aWQoKSkgPCAwKQorCQkJIGRpZShFWF9GQUlMLCBfKCJtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIpLCBzdHJlcnJvcihlcnJubykpOworCisJCSBvbyA9IGZpeF9vcHRzX3N0cmluZyAoZmxhZ3MsIGV4dHJhX29wdHMsIE5VTEwpOworCQkgbW91bnRhcmdzW2krK10gPSBtb3VudHByb2c7CQkJCS8qIDEgKi8KKwkJIG1vdW50YXJnc1tpKytdID0gKGNoYXIgKikgc3BlYzsJCQkvKiAyICovCisJCSBtb3VudGFyZ3NbaSsrXSA9IChjaGFyICopIG5vZGU7CQkJLyogMyAqLworCQkgaWYgKHNsb3BweSAmJiBzdHJuY21wKHR5cGUsICJuZnMiLCAzKSA9PSAwKQorCQkgICAgICBtb3VudGFyZ3NbaSsrXSA9ICItcyI7CQkJCS8qIDQgKi8KKwkJIGlmIChmYWtlKQorCQkgICAgICBtb3VudGFyZ3NbaSsrXSA9ICItZiI7CQkJCS8qIDUgKi8KKwkJIGlmIChub210YWIpCisJCSAgICAgIG1vdW50YXJnc1tpKytdID0gIi1uIjsJCQkJLyogNiAqLworCQkgaWYgKHZlcmJvc2UpCisJCSAgICAgIG1vdW50YXJnc1tpKytdID0gIi12IjsJCQkJLyogNyAqLworCQkgaWYgKG9vICYmICpvbykgeworCQkgICAgICBtb3VudGFyZ3NbaSsrXSA9ICItbyI7CQkJCS8qIDggKi8KKwkJICAgICAgbW91bnRhcmdzW2krK10gPSBvbzsJCQkJLyogOSAqLworCQkgfQorCQkgbW91bnRhcmdzW2ldID0gTlVMTDsJCQkJCS8qIDEwICovCisKKwkJIGlmICh2ZXJib3NlID4gMikgeworCQkJaSA9IDA7CisJCQl3aGlsZShtb3VudGFyZ3NbaV0pIHsKKwkJCQlwcmludGYoIm1vdW50OiBleHRlcm5hbCBtb3VudDogYXJndlslZF0gPSBcIiVzXCJcbiIsCisJCQkJCWksIG1vdW50YXJnc1tpXSk7CisJCQkJaSsrOworCQkJfQorCQkJZmZsdXNoKHN0ZG91dCk7CisJCSB9CisKKwkJIGV4ZWN2KG1vdW50cHJvZywgbW91bnRhcmdzKTsKKwkJIGV4aXQoMSk7CS8qIGV4ZWMgZmFpbGVkICovCisJICAgIH0gZWxzZSBpZiAocmVzICE9IC0xKSB7CisJCSBpbnQgc3Q7CisJCSB3YWl0KCZzdCk7CisJCSAqc3RhdHVzID0gKFdJRkVYSVRFRChzdCkgPyBXRVhJVFNUQVRVUyhzdCkgOiBFWF9TWVNFUlIpOworCQkgcmV0dXJuIDE7CisJICAgIH0gZWxzZSB7CisJCSBpbnQgZXJyc3YgPSBlcnJubzsKKwkJIGVycm9yKF8oIm1vdW50OiBjYW5ub3QgZm9yazogJXMiKSwgc3RyZXJyb3IoZXJyc3YpKTsKKwkgICAgfQorICAgICAgIH0KKyAgfQorICByZXR1cm4gMDsKK30KKworCisvKiBsaXN0IG9mIGFscmVhZHkgdGVzdGVkIGZpbGVzeXN0ZW1zIGJ5IHByb2Nmc2xvb3BfbW91bnQoKSAqLworc3RhdGljIHN0cnVjdCB0cmllZCB7CisJc3RydWN0IHRyaWVkICpuZXh0OworCWNoYXIgKnR5cGU7Cit9ICp0cmllZCA9IE5VTEw7CisKK3N0YXRpYyBpbnQKK3dhc190ZXN0ZWQoY29uc3QgY2hhciAqZnN0eXBlKSB7CisJc3RydWN0IHRyaWVkICp0OworCisJaWYgKGZzcHJvYmVfa25vd25fZnN0eXBlKGZzdHlwZSkpCisJCXJldHVybiAxOworCWZvciAodCA9IHRyaWVkOyB0OyB0ID0gdC0+bmV4dCkgeworCQlpZiAoIXN0cmNtcCh0LT50eXBlLCBmc3R5cGUpKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAorc2V0X3Rlc3RlZChjb25zdCBjaGFyICpmc3R5cGUpIHsKKwlzdHJ1Y3QgdHJpZWQgKnQgPSB4bWFsbG9jKHNpemVvZihzdHJ1Y3QgdHJpZWQpKTsKKworCXQtPm5leHQgPSB0cmllZDsKKwl0LT50eXBlID0geHN0cmR1cChmc3R5cGUpOworCXRyaWVkID0gdDsKK30KKworc3RhdGljIHZvaWQKK2ZyZWVfdGVzdGVkKHZvaWQpIHsKKwlzdHJ1Y3QgdHJpZWQgKnQsICp0dDsKKworCXQgPSB0cmllZDsKKwl3aGlsZSh0KSB7CisJCWZyZWUodC0+dHlwZSk7CisJCXR0ID0gdC0+bmV4dDsKKwkJZnJlZSh0KTsKKwkJdCA9IHR0OworCX0KKwl0cmllZCA9IE5VTEw7Cit9CisKK3N0YXRpYyBjaGFyICoKK3Byb2Nmc25leHQoRklMRSAqcHJvY2ZzKSB7CisgICBjaGFyIGxpbmVbMTAwXTsKKyAgIGNoYXIgZnNuYW1lWzEwMF07CisKKyAgIHdoaWxlIChmZ2V0cyhsaW5lLCBzaXplb2YobGluZSksIHByb2NmcykpIHsKKyAgICAgIGlmIChzc2NhbmYgKGxpbmUsICJub2RldiAlW14jXG5dXG4iLCBmc25hbWUpID09IDEpIGNvbnRpbnVlOworICAgICAgaWYgKHNzY2FuZiAobGluZSwgIiAlW14jIFxuXVxuIiwgZnNuYW1lKSAhPSAxKSBjb250aW51ZTsKKyAgICAgIHJldHVybiB4c3RyZHVwKGZzbmFtZSk7CisgICB9CisgICByZXR1cm4gMDsKK30KKworLyogT25seSB1c2UgL3Byb2MvZmlsZXN5c3RlbXMgaGVyZSwgdGhpcyBpcyBtZWFudCB0byB0ZXN0IHdoYXQKKyAgIHRoZSBrZXJuZWwga25vd3MgYWJvdXQsIHNvIC9ldGMvZmlsZXN5c3RlbXMgaXMgaXJyZWxldmFudC4KKyAgIFJldHVybjogMTogeWVzLCAwOiBubywgLTE6IGNhbm5vdCBvcGVuIHByb2NmcyAqLworc3RhdGljIGludAora25vd25fZnN0eXBlX2luX3Byb2Nmcyhjb25zdCBjaGFyICp0eXBlKQoreworICAgIEZJTEUgKnByb2NmczsKKyAgICBjaGFyICpmc25hbWU7CisgICAgaW50IHJldCA9IC0xOworCisgICAgcHJvY2ZzID0gZm9wZW4oX1BBVEhfUFJPQ19GSUxFU1lTVEVNUywgInIiKTsKKyAgICBpZiAocHJvY2ZzKSB7CisJcmV0ID0gMDsKKwl3aGlsZSAoKGZzbmFtZSA9IHByb2Nmc25leHQocHJvY2ZzKSkgIT0gTlVMTCkKKwkgICAgaWYgKCFzdHJjbXAoZnNuYW1lLCB0eXBlKSkgeworCQlyZXQgPSAxOworCQlicmVhazsKKwkgICAgfQorCWZjbG9zZShwcm9jZnMpOworCXByb2NmcyA9IE5VTEw7CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKKy8qIFRyeSBhbGwgdHlwZXMgaW4gRklMRVNZU1RFTVMsIGV4Y2VwdCB0aG9zZSBpbiAqdHlwZXMsCisgICBpbiBjYXNlICp0eXBlcyBzdGFydHMgd2l0aCAibm8iICovCisvKiByZXR1cm46IDA6IE9LLCAtMTogZXJyb3IgaW4gZXJybm8sIDE6IHR5cGUgbm90IGZvdW5kICovCisvKiB3aGVuIDAgb3IgLTEgaXMgcmV0dXJuZWQsICp0eXBlcyBjb250YWlucyB0aGUgdHlwZSB1c2VkICovCisvKiB3aGVuIDEgaXMgcmV0dXJuZWQsICp0eXBlcyBpcyBOVUxMICovCitzdGF0aWMgaW50Citwcm9jZnNsb29wX21vdW50KGludCAoKm1vdW50X2ZuKShzdHJ1Y3QgbW91bnRhcmdzICosIGludCAqLCBpbnQgKiksCisJCQkgc3RydWN0IG1vdW50YXJncyAqYXJncywKKwkJCSBjb25zdCBjaGFyICoqdHlwZXMsCisJCQkgaW50ICpzcGVjaWFsLCBpbnQgKnN0YXR1cykKK3sKKwljaGFyICpmaWxlc1syXSA9IHsgX1BBVEhfRklMRVNZU1RFTVMsIF9QQVRIX1BST0NfRklMRVNZU1RFTVMgfTsKKwlGSUxFICpwcm9jZnM7CisJY2hhciAqZnNuYW1lOworCWNvbnN0IGNoYXIgKm5vdHlwZXMgPSBOVUxMOworCWludCBubyA9IDA7CisJaW50IHJldCA9IDE7CisJaW50IGVycnN2ID0gMDsKKwlpbnQgaTsKKworCWlmICgqdHlwZXMgJiYgIXN0cm5jbXAoKnR5cGVzLCAibm8iLCAyKSkgeworCQlubyA9IDE7CisJCW5vdHlwZXMgPSAoKnR5cGVzKSArIDI7CisJfQorCSp0eXBlcyA9IE5VTEw7CisKKwkvKiBVc2UgX1BBVEhfUFJPQ19GSUxFU1lTVEVNUyBvbmx5IHdoZW4gX1BBVEhfRklMRVNZU1RFTVMKKwkgKiAoL2V0Yy9maWxlc3lzdGVtcykgZG9lcyBub3QgZXhpc3QuICBJbiBzb21lIGNhc2VzIHRyeWluZyBhCisJICogZmlsZXN5c3RlbSB0aGF0IHRoZSBrZXJuZWwga25vd3MgYWJvdXQgb24gdGhlIHdyb25nIGRhdGEgd2lsbCBjcmFzaAorCSAqIHRoZSBrZXJuZWw7IGluIHN1Y2ggY2FzZXMgX1BBVEhfRklMRVNZU1RFTVMgY2FuIGJlIHVzZWQgdG8gbGlzdCB0aGUKKwkgKiBmaWxlc3lzdGVtcyB0aGF0IHdlIGFyZSBhbGxvd2VkIHRvIHRyeSwgYW5kIGluIHRoZSBvcmRlciB0aGV5IHNob3VsZAorCSAqIGJlIHRyaWVkLiAgRW5kIF9QQVRIX0ZJTEVTWVNURU1TIHdpdGggYSBsaW5lIGNvbnRhaW5pbmcgYSBzaW5nbGUgJyonCisJICogb25seSwgaWYgX1BBVEhfUFJPQ19GSUxFU1lTVEVNUyBzaG91bGQgYmUgdHJpZWQgYWZ0ZXJ3YXJkcy4KKwkgKi8KKwlmb3IgKGk9MDsgaTwyOyBpKyspIHsKKwkJcHJvY2ZzID0gZm9wZW4oZmlsZXNbaV0sICJyIik7CisJCWlmICghcHJvY2ZzKQorCQkJY29udGludWU7CisJCXdoaWxlICgoZnNuYW1lID0gcHJvY2ZzbmV4dChwcm9jZnMpKSAhPSBOVUxMKSB7CisJCQlpZiAoIXN0cmNtcChmc25hbWUsICIqIikpIHsKKwkJCQlmY2xvc2UocHJvY2ZzKTsKKwkJCQlnb3RvIG5leHRpOworCQkJfQorCQkJaWYgKHdhc190ZXN0ZWQgKGZzbmFtZSkpCisJCQkJY29udGludWU7CisJCQlpZiAobm8gJiYgbWF0Y2hpbmdfdHlwZShmc25hbWUsIG5vdHlwZXMpKQorCQkJCWNvbnRpbnVlOworCQkJc2V0X3Rlc3RlZCAoZnNuYW1lKTsKKwkJCWFyZ3MtPnR5cGUgPSBmc25hbWU7CisJCQlpZiAodmVyYm9zZSkKKwkJCQlwcmludGYoXygiVHJ5aW5nICVzXG4iKSwgZnNuYW1lKTsKKwkJCWlmICgoKm1vdW50X2ZuKSAoYXJncywgc3BlY2lhbCwgc3RhdHVzKSA9PSAwKSB7CisJCQkJKnR5cGVzID0gZnNuYW1lOworCQkJCXJldCA9IDA7CisJCQkJYnJlYWs7CisJCQl9IGVsc2UgaWYgKGVycm5vICE9IEVJTlZBTCAmJgorCQkJCSAgIGtub3duX2ZzdHlwZV9pbl9wcm9jZnMoZnNuYW1lKSA9PSAxKSB7CisJCQkJKnR5cGVzID0gImd1ZXNzIjsKKwkJCQlyZXQgPSAtMTsKKwkJCQllcnJzdiA9IGVycm5vOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWZyZWVfdGVzdGVkKCk7CisJCWZjbG9zZShwcm9jZnMpOworCQllcnJubyA9IGVycnN2OworCQlyZXR1cm4gcmV0OworCW5leHRpOjsKKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICoKK2d1ZXNzX2ZzdHlwZV9ieV9kZXZuYW1lKGNvbnN0IGNoYXIgKmRldm5hbWUpCit7CisgICBjb25zdCBjaGFyICp0eXBlID0gZnNwcm9iZV9nZXRfZnN0eXBlX2J5X2Rldm5hbWUoZGV2bmFtZSk7CisKKyAgIGlmICh2ZXJib3NlKSB7CisgICAgICBwcmludGYgKF8oIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iKSwgZGV2bmFtZSk7CisKKyAgICAgIGlmICghdHlwZSkKKyAgICAgICAgIHByaW50ZiAoXygiICAgICAgIEkgd2lsbCB0cnkgYWxsIHR5cGVzIG1lbnRpb25lZCBpbiAlcyBvciAlc1xuIiksCisJCSAgICAgIF9QQVRIX0ZJTEVTWVNURU1TLCBfUEFUSF9QUk9DX0ZJTEVTWVNURU1TKTsKKyAgICAgIGVsc2UgaWYgKCFzdHJjbXAodHlwZSwgTU5UVFlQRV9TV0FQKSkKKyAgICAgICAgIHByaW50ZiAoXygiICAgICAgIGFuZCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgc3dhcHNwYWNlXG4iKSk7CisgICAgICBlbHNlCisgICAgICAgICBwcmludGYgKF8oIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIpLCB0eXBlKTsKKyAgIH0KKyAgIHJldHVybiB0eXBlOworfQorCisvKgorICogZ3Vlc3NfZnN0eXBlX2FuZF9tb3VudCgpCisgKglNb3VudCBhIHNpbmdsZSBmaWxlIHN5c3RlbS4gR3Vlc3MgdGhlIHR5cGUgd2hlbiB1bmtub3duLgorICogcmV0dXJuczogMDogT0ssIC0xOiBlcnJvciBpbiBlcnJubywgMTogb3RoZXIgZXJyb3IKKyAqCWRvbid0IGV4aXQgb24gbm9uLWZhdGFsIGVycm9ycy4KKyAqCW9uIHJldHVybiB0eXBlcyBpcyBmaWxsZWQgd2l0aCB0aGUgdHlwZSB1c2VkLgorICovCitzdGF0aWMgaW50CitndWVzc19mc3R5cGVfYW5kX21vdW50KGNvbnN0IGNoYXIgKnNwZWMsIGNvbnN0IGNoYXIgKm5vZGUsIGNvbnN0IGNoYXIgKip0eXBlcywKKwkJICAgICAgIGludCBmbGFncywgY2hhciAqbW91bnRfb3B0cywgaW50ICpzcGVjaWFsLCBpbnQgKnN0YXR1cykgeworICAgc3RydWN0IG1vdW50YXJncyBhcmdzID0geyBzcGVjLCBub2RlLCBOVUxMLCBmbGFncyAmIH5NU19OT1NZUywgbW91bnRfb3B0cyB9OworCisgICBpZiAoKnR5cGVzICYmIHN0cmNhc2VjbXAgKCp0eXBlcywgImF1dG8iKSA9PSAwKQorICAgICAgKnR5cGVzID0gTlVMTDsKKworICAgaWYgKCEqdHlwZXMgJiYgIShmbGFncyAmIE1TX1JFTU9VTlQpKSB7CisgICAgICAqdHlwZXMgPSBndWVzc19mc3R5cGVfYnlfZGV2bmFtZShzcGVjKTsKKyAgICAgIGlmICgqdHlwZXMpIHsKKwkgIGlmICghc3RyY21wKCp0eXBlcywgTU5UVFlQRV9TV0FQKSkgeworCSAgICAgIGVycm9yKF8oIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiKSwgc3BlYyk7CisJICAgICAgKnR5cGVzID0gTlVMTDsKKwkgICAgICByZXR1cm4gMTsKKwkgIH0gZWxzZSB7CisJICAgICAgYXJncy50eXBlID0gKnR5cGVzOworCSAgICAgIHJldHVybiBkb19tb3VudCAoJmFyZ3MsIHNwZWNpYWwsIHN0YXR1cyk7CisgICAgICAgICAgfQorICAgICAgfQorICAgfQorCisgICAvKiBBY2NlcHQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0eXBlcywgYW5kIHRyeSB0aGVtIG9uZSBieSBvbmUgKi8KKyAgIC8qIEEgbGlzdCBsaWtlICJub25mcywuLiIgaW5kaWNhdGVzIHR5cGVzIG5vdCB0byB1c2UgKi8KKyAgIGlmICgqdHlwZXMgJiYgc3RybmNtcCgqdHlwZXMsICJubyIsIDIpICYmIHN0cmNocigqdHlwZXMsJywnKSkgeworICAgICAgY2hhciAqdCA9IHN0cmR1cCgqdHlwZXMpOworICAgICAgY2hhciAqcDsKKworICAgICAgd2hpbGUoKHAgPSBzdHJjaHIodCwnLCcpKSAhPSBOVUxMKSB7CisJICpwID0gMDsKKwkgYXJncy50eXBlID0gKnR5cGVzID0gdDsKKwkgaWYgKGRvX21vdW50ICgmYXJncywgc3BlY2lhbCwgc3RhdHVzKSA9PSAwKQorCSAgICByZXR1cm4gMDsKKwkgdCA9IHArMTsKKyAgICAgIH0KKyAgICAgIC8qIGRvIGxhc3QgdHlwZSBiZWxvdyAqLworICAgICAgKnR5cGVzID0gdDsKKyAgIH0KKworICAgaWYgKCp0eXBlcyB8fCAoZmxhZ3MgJiBNU19SRU1PVU5UKSkgeworICAgICAgYXJncy50eXBlID0gKnR5cGVzOworICAgICAgcmV0dXJuIGRvX21vdW50ICgmYXJncywgc3BlY2lhbCwgc3RhdHVzKTsKKyAgIH0KKworICAgcmV0dXJuIHByb2Nmc2xvb3BfbW91bnQoZG9fbW91bnQsICZhcmdzLCB0eXBlcywgc3BlY2lhbCwgc3RhdHVzKTsKK30KKworLyoKKyAqIHJlc3RyaWN0ZWRfY2hlY2soKQorICoJRGllIGlmIHRoZSB1c2VyIGlzIG5vdCBhbGxvd2VkIHRvIGRvIHRoaXMuCisgKi8KK3N0YXRpYyB2b2lkCityZXN0cmljdGVkX2NoZWNrKGNvbnN0IGNoYXIgKnNwZWMsIGNvbnN0IGNoYXIgKm5vZGUsIGludCAqZmxhZ3MsIGNoYXIgKip1c2VyKSB7CisgIGlmIChyZXN0cmljdGVkKSB7CisgICAgICAvKgorICAgICAgICogTVNfT1dORVI6IEFsbG93IG93bmVycyB0byBtb3VudCB3aGVuIGZzdGFiIGNvbnRhaW5zCisgICAgICAgKiB0aGUgb3duZXIgb3B0aW9uLiAgTm90ZSB0aGF0IHRoaXMgc2hvdWxkIG5ldmVyIGJlIHVzZWQKKyAgICAgICAqIGluIGEgaGlnaCBzZWN1cml0eSBlbnZpcm9ubWVudCwgYnV0IG1heSBiZSB1c2VmdWwgdG8gZ2l2ZQorICAgICAgICogcGVvcGxlIGF0IHRoZSBjb25zb2xlIHRoZSBwb3NzaWJpbGl0eSBvZiBtb3VudGluZyBhIGZsb3BweS4KKyAgICAgICAqIE1TX0dST1VQOiBBbGxvdyBtZW1iZXJzIG9mIGRldmljZSBncm91cCB0byBtb3VudC4gKE1hcnRpbiBEaWNrb3BwKQorICAgICAgICovCisgICAgICBpZiAoKmZsYWdzICYgKE1TX09XTkVSIHwgTVNfR1JPVVApKSB7CisJICBzdHJ1Y3Qgc3RhdCBzYjsKKworCSAgaWYgKCFzdHJuY21wKHNwZWMsICIvZGV2LyIsIDUpICYmIHN0YXQoc3BlYywgJnNiKSA9PSAwKSB7CisKKwkgICAgICBpZiAoKmZsYWdzICYgTVNfT1dORVIpIHsKKwkJICBpZiAoZ2V0dWlkKCkgPT0gc2Iuc3RfdWlkKQorCQkgICAgICAqZmxhZ3MgfD0gTVNfVVNFUjsKKwkgICAgICB9CisKKwkgICAgICBpZiAoKmZsYWdzICYgTVNfR1JPVVApIHsKKwkJICBpZiAoZ2V0Z2lkKCkgPT0gc2Iuc3RfZ2lkKQorCQkgICAgICAqZmxhZ3MgfD0gTVNfVVNFUjsKKwkJICBlbHNlIHsKKwkJICAgICAgaW50IG4gPSBnZXRncm91cHMoMCwgTlVMTCk7CisKKwkJICAgICAgaWYgKG4gPiAwKSB7CisJCQkgICAgICBnaWRfdCAqZ3JvdXBzID0geG1hbGxvYyhuICogc2l6ZW9mKCpncm91cHMpKTsKKwkJCSAgICAgIGlmIChnZXRncm91cHMobiwgZ3JvdXBzKSA9PSBuKSB7CisJCQkJICAgICAgaW50IGk7CisJCQkJICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworCQkJCQkgICAgICBpZiAoZ3JvdXBzW2ldID09IHNiLnN0X2dpZCkgeworCQkJCQkJICAgICAgKmZsYWdzIHw9IE1TX1VTRVI7CisJCQkJCQkgICAgICBicmVhazsKKwkJCQkJICAgICAgfQorCQkJCSAgICAgIH0KKwkJCSAgICAgIH0KKwkJCSAgICAgIGZyZWUoZ3JvdXBzKTsKKwkJICAgICAgfQorCQkgIH0KKwkgICAgICB9CisJICB9CisgICAgICB9CisKKyAgICAgIC8qIEphbWVzIEtlaGwgPG1rZWhsQGdpbC5jb20uYXU+IGNhbWUgd2l0aCBhIHNpbWlsYXIgcGF0Y2g6CisJIGFsbG93IGFuIGFyYml0cmFyeSB1c2VyIHRvIG1vdW50IHdoZW4gaGUgaXMgdGhlIG93bmVyIG9mCisJIHRoZSBtb3VudC1wb2ludCBhbmQgaGFzIHdyaXRlLWFjY2VzcyB0byB0aGUgZGV2aWNlLgorCSBUaGlzIGlzIGV2ZW4gbGVzcyBzZWN1cmUuIExldCBtZSBza2lwIGl0IGZvciB0aGUgdGltZSBiZWluZzsKKwkgdGhlcmUgc2hvdWxkIGJlIGFuIGV4cGxpY2l0IGZzdGFiIGxpbmUgYWxsb3dpbmcgc3VjaCB0aGluZ3MuICovCisKKyAgICAgIGlmICghKCpmbGFncyAmIChNU19VU0VSIHwgTVNfVVNFUlMpKSkgeworCSAgaWYgKGFscmVhZHkgKHNwZWMsIG5vZGUpKQorCSAgICBkaWUgKEVYX1VTQUdFLCBfKCJtb3VudCBmYWlsZWQiKSk7CisJICBlbHNlCisJICAgIGRpZSAoRVhfVVNBR0UsIF8oIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIiksIHNwZWMsIG5vZGUpOworICAgICAgfQorICAgICAgaWYgKCpmbGFncyAmIE1TX1VTRVIpCisJICAqdXNlciA9IGdldHVzZXJuYW1lKCk7CisgIH0KKworICAqZmxhZ3MgJj0gfihNU19PV05FUiB8IE1TX0dST1VQKTsKK30KKworLyogQ2hlY2ssIGlmIHRoZXJlIGFscmVhZHkgZXhpc3RzIGEgbW91bnRlZCBsb29wIGRldmljZSBvbiB0aGUgbW91bnRwb2ludCBub2RlCisgKiB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMuCisgKi8KK3N0YXRpYyBpbnQKK2lzX21vdW50ZWRfc2FtZV9sb29wZmlsZShjb25zdCBjaGFyICpub2RlMCwgY29uc3QgY2hhciAqbG9vcGZpbGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQpCit7CisJc3RydWN0IG1udGVudGNobiAqbW50ID0gTlVMTDsKKwljaGFyICpub2RlOworCWludCByZXMgPSAwOworCisJbm9kZSA9IGNhbm9uaWNhbGl6ZShub2RlMCk7CisKKwkvKiBTZWFyY2ggZm9yIG1vdW50cG9pbnQgbm9kZSBpbiBtdGFiLAorCSAqIHByb2NjZWVkIGlmIGFueSBvZiB0aGVzZSBoYXMgdGhlIGxvb3Agb3B0aW9uIHNldCBvcgorCSAqIHRoZSBkZXZpY2UgaXMgYSBsb29wIGRldmljZQorCSAqLworCW1udCA9IGdldG1udGRpcmJhY2t3YXJkKG5vZGUsIG1udCk7CisJaWYgKCFtbnQpIHsKKwkJZnJlZShub2RlKTsKKwkJcmV0dXJuIDA7CisJfQorCWZvcig7IG1udCAmJiByZXMgPT0gMDsgbW50ID0gZ2V0bW50ZGlyYmFja3dhcmQobm9kZSwgbW50KSkgeworCQljaGFyICpwOworCisJCWlmIChzdHJuY21wKG1udC0+bS5tbnRfZnNuYW1lLCAiL2Rldi9sb29wIiwgOSkgPT0gMCkKKwkJCXJlcyA9IGxvb3BmaWxlX3VzZWRfd2l0aCgoY2hhciAqKSBtbnQtPm0ubW50X2ZzbmFtZSwKKwkJCQkJbG9vcGZpbGUsIG9mZnNldCk7CisKKwkJZWxzZSBpZiAoKHAgPSBzdHJzdHIobW50LT5tLm1udF9vcHRzLCAibG9vcD0iKSkpIHsKKwkJCWNoYXIgKmRldiA9IHhzdHJkdXAocCs1KTsKKwkJCWlmICgocCA9IHN0cmNocihkZXYsICcsJykpKQorCQkJCSpwID0gJ1wwJzsKKwkJCXJlcyA9IGxvb3BmaWxlX3VzZWRfd2l0aChkZXYsIGxvb3BmaWxlLCBvZmZzZXQpOworCQkJZnJlZShkZXYpOworCQl9CisJfQorCisJZnJlZShub2RlKTsKKwlyZXR1cm4gcmVzOworfQorCitzdGF0aWMgaW50Citsb29wX2NoZWNrKGNvbnN0IGNoYXIgKipzcGVjLCBjb25zdCBjaGFyICoqdHlwZSwgaW50ICpmbGFncywKKwkgICBpbnQgKmxvb3AsIGNvbnN0IGNoYXIgKipsb29wZGV2LCBjb25zdCBjaGFyICoqbG9vcGZpbGUsCisJICAgY29uc3QgY2hhciAqbm9kZSkgeworICBpbnQgbG9vcHR5cGU7CisgIHVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQsIHNpemVsaW1pdDsKKworICAvKgorICAgKiBJbiB0aGUgY2FzZSBvZiBhIGxvb3AgbW91bnQsIGVpdGhlciB0eXBlIGlzIG9mIHRoZSBmb3JtIGxvQC9kZXYvbG9vcDUKKyAgICogb3IgdGhlIG9wdGlvbiAiLW8gbG9vcD0vZGV2L2xvb3A1IiBvciBqdXN0ICItbyBsb29wIiBpcyBnaXZlbiwgb3IKKyAgICogbW91bnQganVzdCBoYXMgdG8gZmlndXJlIHRoaW5ncyBvdXQgZm9yIGl0c2VsZiBmcm9tIHRoZSBmYWN0IHRoYXQKKyAgICogc3BlYyBpcyBub3QgYSBibG9jayBkZXZpY2UuIFdlIGRvIG5vdCB0ZXN0IGZvciBhIGJsb2NrIGRldmljZQorICAgKiBpbW1lZGlhdGVseTogbWF5YmUgbGF0ZXIgb3RoZXIgdHlwZXMgb2YgbW91bnRhYmxlIG9iamVjdHMgd2lsbCBvY2N1ci4KKyAgICovCisKKyAgKmxvb3BkZXYgPSBvcHRfbG9vcGRldjsKKworICBsb29wdHlwZSA9ICgqdHlwZSAmJiBzdHJuY21wKCJsb0AiLCAqdHlwZSwgMykgPT0gMCk7CisgIGlmIChsb29wdHlwZSkgeworICAgIGlmICgqbG9vcGRldikKKyAgICAgIGVycm9yKF8oIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiKSk7CisgICAgKmxvb3BkZXYgPSAqdHlwZSArIDM7CisgICAgKnR5cGUgPSBvcHRfdmZzdHlwZTsKKyAgfSBlbHNlIGlmIChvcHRfdmZzdHlwZSkgeworICAgIGlmICgqdHlwZSkKKyAgICAgIGVycm9yKF8oIm1vdW50OiB0eXBlIHNwZWNpZmllZCB0d2ljZSIpKTsKKyAgICBlbHNlCisgICAgICAqdHlwZSA9IG9wdF92ZnN0eXBlOworICB9CisKKyAgKmxvb3AgPSAoKCpmbGFncyAmIE1TX0xPT1ApIHx8ICpsb29wZGV2IHx8IG9wdF9vZmZzZXQgfHwgb3B0X3NpemVsaW1pdCB8fCBvcHRfZW5jcnlwdGlvbik7CisgICpsb29wZmlsZSA9ICpzcGVjOworCisgIGlmICgqbG9vcCkgeworICAgICpmbGFncyB8PSBNU19MT09QOworICAgIGlmIChmYWtlKSB7CisgICAgICBpZiAodmVyYm9zZSkKKwlwcmludGYoXygibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIGludCBsb29wX29wdHMgPSBTRVRMT09QX0FVVE9DTEVBUjsgLyogYWx3YXlzIGF0dGVtcHQgYXV0b2NsZWFyICovCisgICAgICBpbnQgcmVzOworCisgICAgICBpZiAoKmZsYWdzICYgTVNfUkRPTkxZKQorICAgICAgICBsb29wX29wdHMgfD0gU0VUTE9PUF9SRE9OTFk7CisKKyAgICAgIG9mZnNldCA9IG9wdF9vZmZzZXQgPyBzdHJ0b3VsbChvcHRfb2Zmc2V0LCBOVUxMLCAwKSA6IDA7CisgICAgICBzaXplbGltaXQgPSBvcHRfc2l6ZWxpbWl0ID8gc3RydG91bGwob3B0X3NpemVsaW1pdCwgTlVMTCwgMCkgOiAwOworCisgICAgICBpZiAoaXNfbW91bnRlZF9zYW1lX2xvb3BmaWxlKG5vZGUsICpsb29wZmlsZSwgb2Zmc2V0KSkgeworICAgICAgICBlcnJvcihfKCJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIGFzIGxvb3AiKSwgKmxvb3BmaWxlLCBub2RlKTsKKyAgICAgICAgcmV0dXJuIEVYX0ZBSUw7CisgICAgICB9CisKKyAgICAgIGRvIHsKKyAgICAgICAgaWYgKCEqbG9vcGRldiB8fCAhKipsb29wZGV2KQorCSAgKmxvb3BkZXYgPSBmaW5kX3VudXNlZF9sb29wX2RldmljZSgpOworCWlmICghKmxvb3BkZXYpCisJICByZXR1cm4gRVhfU1lTRVJSOwkvKiBubyBtb3JlIGxvb3AgZGV2aWNlcyAqLworCWlmICh2ZXJib3NlKQorCSAgcHJpbnRmKF8oIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iKSwgKmxvb3BkZXYpOworCisJaWYgKChyZXMgPSBzZXRfbG9vcCgqbG9vcGRldiwgKmxvb3BmaWxlLCBvZmZzZXQsIHNpemVsaW1pdCwKKwkJCSAgICBvcHRfZW5jcnlwdGlvbiwgcGZkLCAmbG9vcF9vcHRzKSkpIHsKKwkgIGlmIChyZXMgPT0gMikgeworCSAgICAgLyogbG9vcCBkZXYgaGFzIGJlZW4gZ3JhYmJlZCBieSBzb21lIG90aGVyIHByb2Nlc3MsCisJICAgICAgICB0cnkgYWdhaW4sIGlmIG5vdCBnaXZlbiBleHBsaWNpdGx5ICovCisJICAgICBpZiAoIW9wdF9sb29wZGV2KSB7CisJICAgICAgIGlmICh2ZXJib3NlKQorCSAgICAgICAgIHByaW50ZihfKCJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iKSwgKmxvb3BkZXYpOworCSAgICAgICBteV9mcmVlKCpsb29wZGV2KTsKKwkgICAgICAgKmxvb3BkZXYgPSBOVUxMOworCSAgICAgICBjb250aW51ZTsKKwkgICAgIH0KKwkgICAgIGVycm9yKF8oIm1vdW50OiBzdG9sZW4gbG9vcD0lcyIpLCAqbG9vcGRldik7CisJICAgICByZXR1cm4gRVhfRkFJTDsKKworCSAgfSBlbHNlIHsKKwkgICAgIGlmICh2ZXJib3NlKQorCSAgICAgICBwcmludGYoXygibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iKSk7CisJICAgICBpZiAoIW9wdF9sb29wZGV2KSB7CisJICAgICAgIG15X2ZyZWUoKmxvb3BkZXYpOworCSAgICAgICAqbG9vcGRldiA9IE5VTEw7CisJICAgICB9CisJICAgICByZXR1cm4gRVhfRkFJTDsKKwkgIH0KKwl9CisgICAgICB9IHdoaWxlICghKmxvb3BkZXYpOworCisgICAgICBpZiAodmVyYm9zZSA+IDEpCisJcHJpbnRmKF8oIm1vdW50OiBzZXR1cCBsb29wIGRldmljZSBzdWNjZXNzZnVsbHlcbiIpKTsKKyAgICAgICpzcGVjID0gKmxvb3BkZXY7CisKKyAgICAgIGlmIChsb29wX29wdHMgJiBTRVRMT09QX1JET05MWSkKKyAgICAgICAgKmZsYWdzIHw9IE1TX1JET05MWTsKKworICAgICAgaWYgKGxvb3Bfb3B0cyAmIFNFVExPT1BfQVVUT0NMRUFSKQorICAgICAgICAvKiBQcmV2ZW50IHJlY29yZGluZyBsb29wIGRldiBpbiBtdGFiIGZvciBjbGVhbnVwIG9uIHVtb3VudCAqLworICAgICAgICAqbG9vcCA9IDA7CisgICAgfQorICB9CisKKyAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCit1cGRhdGVfbXRhYl9lbnRyeShjb25zdCBjaGFyICpzcGVjLCBjb25zdCBjaGFyICpub2RlLCBjb25zdCBjaGFyICp0eXBlLAorCQkgIGNvbnN0IGNoYXIgKm9wdHMsIGludCBmbGFncywgaW50IGZyZXEsIGludCBwYXNzKSB7CisJc3RydWN0IG15X21udGVudCBtbnQ7CisKKwltbnQubW50X2ZzbmFtZSA9IGlzX3BzZXVkb19mcyh0eXBlKSA/IHhzdHJkdXAoc3BlYykgOiBjYW5vbmljYWxpemUoc3BlYyk7CisJbW50Lm1udF9kaXIgPSBjYW5vbmljYWxpemUgKG5vZGUpOworCW1udC5tbnRfdHlwZSA9IHR5cGU7CisJbW50Lm1udF9vcHRzID0gb3B0czsKKwltbnQubW50X2ZyZXEgPSBmcmVxOworCW1udC5tbnRfcGFzc25vID0gcGFzczsKKworCS8qIFdlIGdldCBjaGF0dHkgbm93IHJhdGhlciB0aGFuIGFmdGVyIHRoZSB1cGRhdGUgdG8gbXRhYiBzaW5jZSB0aGUKKwkgICBtb3VudCBzdWNjZWVkZWQsIGV2ZW4gaWYgdGhlIHdyaXRlIHRvIC9ldGMvbXRhYiBzaG91bGQgZmFpbC4gICovCisJaWYgKHZlcmJvc2UpCisJCXByaW50X29uZSAoJm1udCk7CisKKwlpZiAoIW5vbXRhYiAmJiBtdGFiX2RvZXNfbm90X2V4aXN0KCkpIHsKKwkJaWYgKHZlcmJvc2UgPiAxKQorCQkJcHJpbnRmKF8oIm1vdW50OiBubyAlcyBmb3VuZCAtIGNyZWF0aW5nIGl0Li5cbiIpLAorCQkJICAgICAgIF9QQVRIX01PVU5URUQpOworCQljcmVhdGVfbXRhYiAoKTsKKwl9CisKKwlpZiAoIW5vbXRhYiAmJiBtdGFiX2lzX3dyaXRhYmxlKCkpIHsKKwkJaWYgKGZsYWdzICYgTVNfUkVNT1VOVCkKKwkJCXVwZGF0ZV9tdGFiIChtbnQubW50X2RpciwgJm1udCk7CisJCWVsc2UgaWYgKGZsYWdzICYgTVNfTU9WRSkKKwkJCXVwZGF0ZV9tdGFiKG1udC5tbnRfZnNuYW1lLCAmbW50KTsKKwkJZWxzZSB7CisJCQltbnRGSUxFICptZnA7CisKKwkJCWxvY2tfbXRhYigpOworCQkJbWZwID0gbXlfc2V0bW50ZW50KF9QQVRIX01PVU5URUQsICJhKyIpOworCQkJaWYgKG1mcCA9PSBOVUxMIHx8IG1mcC0+bW50ZW50X2ZwID09IE5VTEwpIHsKKwkJCQlpbnQgZXJyc3YgPSBlcnJubzsKKwkJCQllcnJvcihfKCJtb3VudDogY2FuJ3Qgb3BlbiAlczogJXMiKSwgX1BBVEhfTU9VTlRFRCwKKwkJCQkgICAgICBzdHJlcnJvciAoZXJyc3YpKTsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKChteV9hZGRtbnRlbnQgKG1mcCwgJm1udCkpID09IDEpIHsKKwkJCQkJaW50IGVycnN2ID0gZXJybm87CisJCQkJCWVycm9yKF8oIm1vdW50OiBlcnJvciB3cml0aW5nICVzOiAlcyIpLAorCQkJCQkgICAgICBfUEFUSF9NT1VOVEVELCBzdHJlcnJvciAoZXJyc3YpKTsKKwkJCQl9CisJCQl9CisJCQlteV9lbmRtbnRlbnQobWZwKTsKKwkJCXVubG9ja19tdGFiKCk7CisJCX0KKwl9CisJbXlfZnJlZShtbnQubW50X2ZzbmFtZSk7CisJbXlfZnJlZShtbnQubW50X2Rpcik7Cit9CisKK3N0YXRpYyB2b2lkCitzZXRfcGZkKGNoYXIgKnMpIHsKKwlpZiAoIWlzZGlnaXQoKnMpKQorCQlkaWUoRVhfVVNBR0UsCisJCSAgICBfKCJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiKSk7CisJcGZkID0gYXRvaShvcHRhcmcpOworfQorCitzdGF0aWMgdm9pZAorY2Ryb21fc2V0c3BlZWQoY29uc3QgY2hhciAqc3BlYykgeworI2RlZmluZSBDRFJPTV9TRUxFQ1RfU1BFRUQgICAgICAweDUzMjIgIC8qIFNldCB0aGUgQ0QtUk9NIHNwZWVkICovCisJaWYgKG9wdF9zcGVlZCkgeworCQlpbnQgY2Ryb207CisJCWludCBzcGVlZCA9IGF0b2kob3B0X3NwZWVkKTsKKworCQlpZiAoKGNkcm9tID0gb3BlbihzcGVjLCBPX1JET05MWSB8IE9fTk9OQkxPQ0spKSA8IDApCisJCQlkaWUoRVhfRkFJTCwKKwkJCSAgICBfKCJtb3VudDogY2Fubm90IG9wZW4gJXMgZm9yIHNldHRpbmcgc3BlZWQiKSwKKwkJCSAgICBzcGVjKTsKKwkJaWYgKGlvY3RsKGNkcm9tLCBDRFJPTV9TRUxFQ1RfU1BFRUQsIHNwZWVkKSA8IDApCisJCQlkaWUoRVhfRkFJTCwgXygibW91bnQ6IGNhbm5vdCBzZXQgc3BlZWQ6ICVzIiksCisJCQkgICAgc3RyZXJyb3IoZXJybm8pKTsKKwkJY2xvc2UoY2Ryb20pOworCX0KK30KKworLyoKKyAqIENoZWNrIGlmIEBub2RlIGlzIHJlYWQtb25seSBmaWxlc3lzdGVtIGJ5IGFjY2VzcygpIG9yIGZ1dGltZW5zKCkuCisgKgorICogTm90ZSB0aGF0IGFjY2VzcygyKSB1c2VzIHJlYWwtVUlEICg9IHVzZWxlc3MgZm9yIHN1aWQgcHJvZ3JhbXMpCisgKiBhbmQgZXVpZGFjY2VzcygyKSBkb2VzIG5vdCBjaGVjayBmb3IgcmVhZC1vbmx5IEZTLgorICovCitzdGF0aWMgaW50Citpc19yZWFkb25seShjb25zdCBjaGFyICpub2RlKQoreworCWludCByZXMgPSAwOworCisJaWYgKGdldHVpZCgpID09IGdldGV1aWQoKSkgeworCQlpZiAoYWNjZXNzKG5vZGUsIFdfT0spID09IC0xICYmIGVycm5vID09IEVST0ZTKQorCQkJcmVzID0gMTsKKwl9CisjaWZkZWYgSEFWRV9GVVRJTUVOUworCWVsc2UgeworCQlzdHJ1Y3QgdGltZXNwZWMgdGltZXNbMl07CisJCWludCBmZCA9IG9wZW4obm9kZSwgT19SRE9OTFkpOworCisJCWlmIChmZCA8IDApCisJCQlnb3RvIGRvbmU7CisKKwkJdGltZXNbMF0udHZfbnNlYyA9IFVUSU1FX05PVzsJLyogYXRpbWUgKi8KKwkJdGltZXNbMV0udHZfbnNlYyA9IFVUSU1FX09NSVQ7CS8qIG10aW1lICovCisKKwkJaWYgKGZ1dGltZW5zKGZkLCB0aW1lcykgPT0gLTEgJiYgZXJybm8gPT0gRVJPRlMpCisJCQlyZXMgPSAxOworCQljbG9zZShmZCk7CisJfQorZG9uZToKKyNlbmRpZgorCXJldHVybiByZXM7Cit9CisKKy8qCisgKiB0cnlfbW91bnRfb25lKCkKKyAqCVRyeSB0byBtb3VudCBvbmUgZmlsZSBzeXN0ZW0uCisgKgorICogcmV0dXJuczogMDogT0ssIEVYX1NZU0VSUiwgRVhfRkFJTCwgcmV0dXJuIGNvZGUgZnJvbSBuZnNtb3VudCwKKyAqICAgICAgcmV0dXJuIHN0YXR1cyBmcm9tIHdhaXQKKyAqLworc3RhdGljIGludAordHJ5X21vdW50X29uZSAoY29uc3QgY2hhciAqc3BlYzAsIGNvbnN0IGNoYXIgKm5vZGUwLCBjb25zdCBjaGFyICp0eXBlczAsCisJICAgICAgIGNvbnN0IGNoYXIgKm9wdHMwLCBpbnQgZnJlcSwgaW50IHBhc3MsIGludCBybykgeworICBpbnQgcmVzID0gMCwgc3RhdHVzID0gMCwgc3BlY2lhbCA9IDA7CisgIGludCBtbnQ1X3JlcyA9IDA7CQkvKiBvbmx5IGZvciBnY2MgKi8KKyAgaW50IG1udF9lcnI7CisgIGludCBmbGFnczsKKyAgY2hhciAqZXh0cmFfb3B0czsJCS8qIHdyaXR0ZW4gaW4gbXRhYiAqLworICBjaGFyICptb3VudF9vcHRzOwkJLyogYWN0dWFsbHkgdXNlZCBvbiBzeXN0ZW0gY2FsbCAqLworICBjb25zdCBjaGFyICpvcHRzLCAqc3BlYywgKm5vZGUsICp0eXBlczsKKyAgY2hhciAqdXNlciA9IDA7CisgIGludCBsb29wID0gMDsKKyAgY29uc3QgY2hhciAqbG9vcGRldiA9IDAsICpsb29wZmlsZSA9IDA7CisgIHN0cnVjdCBzdGF0IHN0YXRidWY7CisgIGludCByZXRyaWVzID0gMDsJLyogTnIgb2YgcmV0cmllcyBmb3IgbW91bnQgaW4gY2FzZSBvZiBFTk9NRURJVU0gKi8KKworICAvKiBjb3BpZXMgZm9yIGZyZWVpbmcgb24gZXhpdCAqLworICBjb25zdCBjaGFyICpvcHRzMSwgKnNwZWMxLCAqbm9kZTEsICp0eXBlczEsICpleHRyYV9vcHRzMTsKKworICBpZiAodmVyYm9zZSA+IDIpIHsKKwkgIHByaW50ZigibW91bnQ6IHNwZWM6ICBcIiVzXCJcbiIsIHNwZWMwKTsKKwkgIHByaW50ZigibW91bnQ6IG5vZGU6ICBcIiVzXCJcbiIsIG5vZGUwKTsKKwkgIHByaW50ZigibW91bnQ6IHR5cGVzOiBcIiVzXCJcbiIsIHR5cGVzMCk7CisJICBwcmludGYoIm1vdW50OiBvcHRzOiAgXCIlc1wiXG4iLCBvcHRzMCk7CisgIH0KKworICBzcGVjID0gc3BlYzEgPSB4c3RyZHVwKHNwZWMwKTsKKyAgbm9kZSA9IG5vZGUxID0geHN0cmR1cChub2RlMCk7CisgIHR5cGVzID0gdHlwZXMxID0geHN0cmR1cCh0eXBlczApOworICBvcHRzID0gb3B0czEgPSB4c3RyZHVwKG9wdHMwKTsKKworICBwYXJzZV9vcHRzIChvcHRzLCAmZmxhZ3MsICZleHRyYV9vcHRzKTsKKyAgZXh0cmFfb3B0czEgPSBleHRyYV9vcHRzOworCisgIC8qIHF1aWV0bHkgc3VjY2VlZCBmb3IgZnN0YWIgZW50cmllcyB0aGF0IGRvbid0IGdldCBtb3VudGVkIGF1dG9tYXRpY2FsbHkgKi8KKyAgaWYgKG1vdW50X2FsbCAmJiAoZmxhZ3MgJiBNU19OT0FVVE8pKQorICAgICAgZ290byBvdXQ7CisKKyAgcmVzdHJpY3RlZF9jaGVjayhzcGVjLCBub2RlLCAmZmxhZ3MsICZ1c2VyKTsKKworICAvKiBUaGUgIm1vdW50IC1mIiBjaGVja3MgZm9yIGZvciBleGlzdGluZyByZWNvcmQgaW4gL2V0Yy9tdGFiICh3aXRoCisgICAqIHJlZ3VsYXIgbm9uLWZha2UgbW91bnQgdGhpcyBpcyB1c3VhbGx5IGRvbmUgYnkga2VybmVsKQorICAgKi8KKyAgaWYgKCEoZmxhZ3MgJiBNU19SRU1PVU5UKSAmJiBmYWtlICYmIG1vdW50ZWQgKHNwZWMsIG5vZGUpKQorICAgICAgZGllKEVYX1VTQUdFLCBfKCJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICIKKyAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iKSwKKwkJICAgICAgc3BlYywgbm9kZSk7CisKKyAgbW91bnRfb3B0cyA9IGV4dHJhX29wdHM7CisKKyAgaWYgKG9wdF9zcGVlZCkKKyAgICAgIGNkcm9tX3NldHNwZWVkKHNwZWMpOworCisgIGlmICghKGZsYWdzICYgTVNfUkVNT1VOVCkpIHsKKyAgICAgIC8qCisgICAgICAgKiBEb24ndCBzZXQgdXAgYSAobmV3KSBsb29wIGRldmljZSBpZiB3ZSBvbmx5IHJlbW91bnQgLSB0aGlzIGxlZnQKKyAgICAgICAqIHN0YWxlIGFzc2lnbm1lbnRzIG9mIGZpbGVzIHRvIGxvb3AgZGV2aWNlcy4gTmFzdHkgd2hlbiB1c2VkIGZvcgorICAgICAgICogZW5jcnlwdGlvbi4KKyAgICAgICAqLworICAgICAgcmVzID0gbG9vcF9jaGVjaygmc3BlYywgJnR5cGVzLCAmZmxhZ3MsICZsb29wLCAmbG9vcGRldiwgJmxvb3BmaWxlLCBub2RlKTsKKyAgICAgIGlmIChyZXMpCisJICBnb3RvIG91dDsKKyAgfQorCisgIGlmIChsb29wKQorICAgICAgb3B0X2xvb3BkZXYgPSBsb29wZGV2OworCisgIGlmIChmbGFncyAmIChNU19CSU5EIHwgTVNfTU9WRSB8IE1TX1BST1BBR0FUSU9OKSkKKyAgICAgIHR5cGVzID0gIm5vbmUiOworCisgIC8qCisgICAqIENhbGwgbW91bnQuVFlQRSBmb3IgdHlwZXMgdGhhdCByZXF1aXJlIGEgc2VwYXJhdGUgbW91bnQgcHJvZ3JhbS4KKyAgICogRm9yIHRoZSBtb21lbnQgdGhlc2UgdHlwZXMgYXJlIG5jcGZzIGFuZCBzbWJmcy4gTWF5YmUgYWxzbyB2eGZzLgorICAgKiBBbGwgc3VjaCBzcGVjaWFsIHRoaW5ncyBtdXN0IG9jY3VyIGlzb2xhdGVkIGluIHRoZSB0eXBlcyBzdHJpbmcuCisgICAqLworICBpZiAoY2hlY2tfc3BlY2lhbF9tb3VudHByb2coc3BlYywgbm9kZSwgdHlwZXMsIGZsYWdzLCBleHRyYV9vcHRzLCAmc3RhdHVzKSkgeworICAgICAgcmVzID0gc3RhdHVzOworICAgICAgZ290byBvdXQ7CisgIH0KKworbW91bnRfcmV0cnk6CisgIGJsb2NrX3NpZ25hbHMgKFNJR19CTE9DSyk7CisKKyAgaWYgKCFmYWtlKSB7CisgICAgbW50NV9yZXMgPSBndWVzc19mc3R5cGVfYW5kX21vdW50IChzcGVjLCBub2RlLCAmdHlwZXMsIGZsYWdzICYgfk1TX05PU1lTLAorCQkJCSAgICAgICBtb3VudF9vcHRzLCAmc3BlY2lhbCwgJnN0YXR1cyk7CisKKyAgICBpZiAoc3BlY2lhbCkgeworICAgICAgYmxvY2tfc2lnbmFscyAoU0lHX1VOQkxPQ0spOworICAgICAgcmVzID0gc3RhdHVzOworICAgICAgZ290byBvdXQ7CisgICAgfQorICB9CisKKyAgLyogS2VybmVsIGFsbG93cyB0byB1c2UgTVNfUkRPTkxZIGZvciBiaW5kIG1vdW50cywgYnV0IHRoZSByZWFkLW9ubHkgcmVxdWVzdAorICAgKiBjb3VsZCBiZSBzaWxlbnRseSBpZ25vcmVkLiBDaGVjayBpdCB0byBhdm9pZCAncm8nIGluIG50YWIgYW5kICdydycgaW4KKyAgICogL3Byb2MvbW91bnRzLgorICAgKi8KKyAgaWYgKCFmYWtlICYmIG1udDVfcmVzID09IDAgJiYKKyAgICAgIChmbGFncyAmIE1TX0JJTkQpICYmIChmbGFncyAmIE1TX1JET05MWSkgJiYgIWlzX3JlYWRvbmx5KG5vZGUpKSB7CisKKyAgICAgIHByaW50ZihfKCJtb3VudDogd2FybmluZzogJXMgc2VlbXMgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlLlxuIiksIG5vZGUpOworICAgICAgZmxhZ3MgJj0gfk1TX1JET05MWTsKKyAgfQorCisgIGlmIChmYWtlIHx8IG1udDVfcmVzID09IDApIHsKKyAgICAgIC8qIE1vdW50IHN1Y2NlZWRlZCwgcmVwb3J0IHRoaXMgKGlmIHZlcmJvc2UpIGFuZCB3cml0ZSBtdGFiIGVudHJ5LiAgKi8KKworICAgICAgaWYgKCEobW91bnR0eXBlICYgTVNfUFJPUEFHQVRJT04pKSB7CisJICAgICAgdXBkYXRlX210YWJfZW50cnkobG9vcCA/IGxvb3BmaWxlIDogc3BlYywKKwkJCW5vZGUsCisJCQl0eXBlcyA/IHR5cGVzIDogInVua25vd24iLAorCQkJZml4X29wdHNfc3RyaW5nIChmbGFncyAmIH5NU19OT01UQUIsIGV4dHJhX29wdHMsIHVzZXIpLAorCQkJZmxhZ3MsCisJCQlmcmVxLAorCQkJcGFzcyk7CisgICAgICB9CisKKyAgICAgIGJsb2NrX3NpZ25hbHMgKFNJR19VTkJMT0NLKTsKKyAgICAgIHJlcyA9IDA7CisgICAgICBnb3RvIG91dDsKKyAgfQorCisgIG1udF9lcnIgPSBlcnJubzsKKworICBpZiAobG9vcCkKKwlkZWxfbG9vcChzcGVjKTsKKworICBibG9ja19zaWduYWxzIChTSUdfVU5CTE9DSyk7CisKKyAgLyogTW91bnQgZmFpbGVkLCBjb21wbGFpbiwgYnV0IGRvbid0IGRpZS4gICovCisKKyAgaWYgKHR5cGVzID09IDApIHsKKyAgICBpZiAocmVzdHJpY3RlZCkKKyAgICAgIGVycm9yIChfKCJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsICIKKwkgICAgICAgImFuZCBub25lIHdhcyBzcGVjaWZpZWQiKSk7CisgICAgZWxzZQorICAgICAgZXJyb3IgKF8oIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiKSk7CisgIH0gZWxzZSBpZiAobW50NV9yZXMgIT0gLTEpIHsKKyAgICAgIC8qIHNob3VsZCBub3QgaGFwcGVuICovCisgICAgICBlcnJvciAoXygibW91bnQ6IG1vdW50IGZhaWxlZCIpKTsKKyAgfSBlbHNlIHsKKyAgIHN3aXRjaCAobW50X2VycikgeworICAgIGNhc2UgRVBFUk06CisgICAgICBpZiAoZ2V0ZXVpZCgpID09IDApIHsKKwkgICBpZiAoc3RhdCAobm9kZSwgJnN0YXRidWYpIHx8ICFTX0lTRElSKHN0YXRidWYuc3RfbW9kZSkpCisJCWVycm9yIChfKCJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgbm90IGEgZGlyZWN0b3J5IiksIG5vZGUpOworCSAgIGVsc2UKKwkJZXJyb3IgKF8oIm1vdW50OiBwZXJtaXNzaW9uIGRlbmllZCIpKTsKKyAgICAgIH0gZWxzZQorCWVycm9yIChfKCJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IikpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBFQlVTWToKKyAgICAgIGlmIChmbGFncyAmIE1TX1JFTU9VTlQpIHsKKwllcnJvciAoXygibW91bnQ6ICVzIGlzIGJ1c3kiKSwgbm9kZSk7CisgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAodHlwZXMsICJwcm9jIikgJiYgIXN0cmNtcChub2RlLCAiL3Byb2MiKSkgeworCS8qIGhldXJpc3RpYzogaWYgL3Byb2MvdmVyc2lvbiBleGlzdHMsIHRoZW4gcHJvYmFibHkgcHJvYyBpcyBtb3VudGVkICovCisJaWYgKHN0YXQgKCIvcHJvYy92ZXJzaW9uIiwgJnN0YXRidWYpKSAgIC8qIHByb2MgbW91bnRlZD8gKi8KKwkgICBlcnJvciAoXygibW91bnQ6ICVzIGlzIGJ1c3kiKSwgbm9kZSk7ICAgLyogbm8gKi8KKwllbHNlIGlmICghbW91bnRfYWxsIHx8IHZlcmJvc2UpICAgICAgICAgICAgLyogeWVzLCBkb24ndCBtZW50aW9uIGl0ICovCisJICAgZXJyb3IgKF8oIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIpKTsKKyAgICAgIH0gZWxzZSB7CisJZXJyb3IgKF8oIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIpLCBzcGVjLCBub2RlKTsKKwlhbHJlYWR5IChzcGVjLCBub2RlKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIGNhc2UgRU5PRU5UOgorICAgICAgaWYgKGxzdGF0IChub2RlLCAmc3RhdGJ1ZikpCisJICAgZXJyb3IgKF8oIm1vdW50OiBtb3VudCBwb2ludCAlcyBkb2VzIG5vdCBleGlzdCIpLCBub2RlKTsKKyAgICAgIGVsc2UgaWYgKHN0YXQgKG5vZGUsICZzdGF0YnVmKSkKKwkgICBlcnJvciAoXygibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIiksCisJCSAgbm9kZSk7CisgICAgICBlbHNlIGlmIChzdGF0IChzcGVjLCAmc3RhdGJ1ZikpIHsKKwkgICBpZiAob3B0X25vZmFpbCkKKwkJZ290byBvdXQ7CisJICAgZXJyb3IgKF8oIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdCIpLCBzcGVjKTsKKyAgICAgIH0gZWxzZSB7CisJICAgZXJybm8gPSBtbnRfZXJyOworCSAgIHBlcnJvcigibW91bnQiKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIGNhc2UgRU5PVERJUjoKKyAgICAgIGlmIChzdGF0IChub2RlLCAmc3RhdGJ1ZikgfHwgISBTX0lTRElSKHN0YXRidWYuc3RfbW9kZSkpCisJICAgZXJyb3IgKF8oIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiKSwgbm9kZSk7CisgICAgICBlbHNlIGlmIChzdGF0IChzcGVjLCAmc3RhdGJ1ZikgJiYgZXJybm8gPT0gRU5PVERJUikgeworCSAgIGlmIChvcHRfbm9mYWlsKQorICAgICAgICAgICAgICBnb3RvIG91dDsKKwkgICBlcnJvciAoXygibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisJCSAgICAiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIpLCBzcGVjKTsKKyAgICAgIH0gZWxzZSB7CisJICAgZXJybm8gPSBtbnRfZXJyOworCSAgIHBlcnJvcigibW91bnQiKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIGNhc2UgRUlOVkFMOgorICAgIHsgaW50IGZkOworICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHNpemUgPSAwOworCisgICAgICBpZiAoZmxhZ3MgJiBNU19SRU1PVU5UKSB7CisJZXJyb3IgKF8oIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIiksIG5vZGUpOworICAgICAgfSBlbHNlIHsKKwllcnJvciAoXygibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorCSAgICAgICAiICAgICAgIG1pc3NpbmcgY29kZXBhZ2Ugb3IgaGVscGVyIHByb2dyYW0sIG9yIG90aGVyIGVycm9yIiksCisJICAgICAgIHNwZWMpOworCisJaWYgKHN0YXQoc3BlYywgJnN0YXRidWYpIDwgMCkgeworCSAgaWYgKGVycm5vID09IEVOT0VOVCkgICAgICAgICAvKiBuZXR3b3JrIEZTPyAqLworCSAgICBlcnJvcihfKAorCSAgICAgICAiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorCSAgICAgICAiICAgICAgIG5lZWQgYSAvc2Jpbi9tb3VudC48dHlwZT4gaGVscGVyIHByb2dyYW0pIikpOworCisJfSBlbHNlIGlmIChTX0lTQkxLKHN0YXRidWYuc3RfbW9kZSkKKwkgICAgICAgICAgICAgICAgICYmIChmZCA9IG9wZW4oc3BlYywgT19SRE9OTFkgfCBPX05PTkJMT0NLKSkgPj0gMCkgeworCisJICBpZiAoYmxrZGV2X2dldF9zaXplKGZkLCAmc2l6ZSkgPT0gMCkgeworCSAgICBpZiAoc2l6ZSA9PSAwICYmICFsb29wKQorCSAgICAgIGVycm9yKF8oCisJCSAiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorCQkgIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiKSk7CisKKwkgICAgaWYgKHNpemUgJiYgc2l6ZSA8PSAyKQorCSAgICAgIGVycm9yKF8oCisJCSAgIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorCQkgICIgICAgICAgaW5zdGVhZCBvZiBzb21lIGxvZ2ljYWwgcGFydGl0aW9uIGluc2lkZT8pIikpOworCisJICAgIGNsb3NlKGZkKTsKKwkgIH0KKwl9CisJZXJyb3IoXygKKwkJIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorCQkiICAgICAgIGRtZXNnIHwgdGFpbCAgb3Igc29cbiIpKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEVNRklMRToKKyAgICAgIGVycm9yIChfKCJtb3VudCB0YWJsZSBmdWxsIikpOyBicmVhazsKKyAgICBjYXNlIEVJTzoKKyAgICAgIGVycm9yIChfKCJtb3VudDogJXM6IGNhbid0IHJlYWQgc3VwZXJibG9jayIpLCBzcGVjKTsgYnJlYWs7CisgICAgY2FzZSBFTk9ERVY6CisgICAgeworICAgICAgaW50IHBmcyA9IGtub3duX2ZzdHlwZV9pbl9wcm9jZnModHlwZXMpOworCisgICAgICBpZiAocGZzID09IDEgfHwgIXN0cmNtcCh0eXBlcywgImd1ZXNzIikpCisgICAgICAgIGVycm9yKF8oIm1vdW50OiAlczogdW5rbm93biBkZXZpY2UiKSwgc3BlYyk7CisgICAgICBlbHNlIGlmIChwZnMgPT0gMCkgeworCWNoYXIgKmxvd3R5cGUsICpwOworCWludCB1OworCisJZXJyb3IgKF8oIm1vdW50OiB1bmtub3duIGZpbGVzeXN0ZW0gdHlwZSAnJXMnIiksIHR5cGVzKTsKKworCS8qIG1heWJlIHRoaXMgbG9zZXIgYXNrZWQgZm9yIEZBVCBvciBJU085NjYwIG9yIGlzb2ZzICovCisJbG93dHlwZSA9IHhzdHJkdXAodHlwZXMpOworCXUgPSAwOworCWZvcihwPWxvd3R5cGU7ICpwOyBwKyspIHsKKwkgIGlmKHRvbG93ZXIoKnApICE9ICpwKSB7CisJICAgICpwID0gdG9sb3dlcigqcCk7CisJICAgIHUrKzsKKwkgIH0KKwl9CisJaWYgKHUgJiYga25vd25fZnN0eXBlX2luX3Byb2Nmcyhsb3d0eXBlKSA9PSAxKQorCSAgZXJyb3IgKF8oIm1vdW50OiBwcm9iYWJseSB5b3UgbWVhbnQgJXMiKSwgbG93dHlwZSk7CisJZWxzZSBpZiAoIXN0cm5jbXAobG93dHlwZSwgImlzbyIsIDMpICYmCisJCQlrbm93bl9mc3R5cGVfaW5fcHJvY2ZzKCJpc285NjYwIikgPT0gMSkKKwkgIGVycm9yIChfKCJtb3VudDogbWF5YmUgeW91IG1lYW50ICdpc285NjYwJz8iKSk7CisJZWxzZSBpZiAoIXN0cm5jbXAobG93dHlwZSwgImZhdCIsIDMpICYmCisJCQlrbm93bl9mc3R5cGVfaW5fcHJvY2ZzKCJ2ZmF0IikgPT0gMSkKKwkgIGVycm9yIChfKCJtb3VudDogbWF5YmUgeW91IG1lYW50ICd2ZmF0Jz8iKSk7CisJZnJlZShsb3d0eXBlKTsKKyAgICAgIH0gZWxzZQorCWVycm9yIChfKCJtb3VudDogJXMgaGFzIHdyb25nIGRldmljZSBudW1iZXIgb3IgZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIiksCisJICAgICAgIHNwZWMsIHR5cGVzKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEVOT1RCTEs6CisgICAgICBpZiAob3B0X25vZmFpbCkKKyAgICAgICAgZ290byBvdXQ7CisgICAgICBpZiAoc3RhdCAoc3BlYywgJnN0YXRidWYpKSAvKiBzdHJhbmdlIC4uLiAqLworCWVycm9yIChfKCJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlLCBhbmQgc3RhdCBmYWlscz8iKSwgc3BlYyk7CisgICAgICBlbHNlIGlmIChTX0lTQkxLKHN0YXRidWYuc3RfbW9kZSkpCisgICAgICAgIGVycm9yIChfKCJtb3VudDogdGhlIGtlcm5lbCBkb2VzIG5vdCByZWNvZ25pemUgJXMgYXMgYSBibG9jayBkZXZpY2VcbiIKKwkgICAgICAgIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIpLCBzcGVjKTsKKyAgICAgIGVsc2UgaWYgKFNfSVNSRUcoc3RhdGJ1Zi5zdF9tb2RlKSkKKwllcnJvciAoXygibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSAobWF5YmUgdHJ5IGAtbyBsb29wJz8pIiksCisJCSBzcGVjKTsKKyAgICAgIGVsc2UKKwllcnJvciAoXygibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIpLCBzcGVjKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgRU5YSU86CisgICAgICBpZiAob3B0X25vZmFpbCkKKyAgICAgICAgZ290byBvdXQ7CisgICAgICBlcnJvciAoXygibW91bnQ6ICVzIGlzIG5vdCBhIHZhbGlkIGJsb2NrIGRldmljZSIpLCBzcGVjKTsgYnJlYWs7CisgICAgY2FzZSBFQUNDRVM6ICAvKiBwcmUtbGludXggMS4xLjM4LCAxLjEuNDEgYW5kIGxhdGVyICovCisgICAgY2FzZSBFUk9GUzogICAvKiBsaW51eCAxLjEuMzggYW5kIGxhdGVyICovCisgICAgeyBjaGFyICpiZCA9IChsb29wID8gIiIgOiBfKCJibG9jayBkZXZpY2UgIikpOworICAgICAgaWYgKHJvIHx8IChmbGFncyAmIE1TX1JET05MWSkpIHsKKyAgICAgICAgICBlcnJvciAoXygibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIpLAorCQkgYmQsIHNwZWMpOworICAgICAgICAgIGJyZWFrOworICAgICAgfSBlbHNlIGlmIChyZWFkd3JpdGUpIHsKKwkgIGVycm9yIChfKCJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQgYnV0IGV4cGxpY2l0IGAtdycgZmxhZyBnaXZlbiIpLAorCQkgYmQsIHNwZWMpOworCSAgYnJlYWs7CisgICAgICB9IGVsc2UgaWYgKGZsYWdzICYgTVNfUkVNT1VOVCkgeworCSAgZXJyb3IgKF8oIm1vdW50OiBjYW5ub3QgcmVtb3VudCAlcyVzIHJlYWQtd3JpdGUsIGlzIHdyaXRlLXByb3RlY3RlZCIpLAorCQkgYmQsIHNwZWMpOworCSAgYnJlYWs7CisgICAgICB9IGVsc2UgeworCSBvcHRzID0gb3B0czA7CisJIHR5cGVzID0gdHlwZXMwOworCisgICAgICAgICBpZiAob3B0cykgeworCSAgICAgY2hhciAqb3B0czIgPSBhcHBlbmRfb3B0KHhzdHJkdXAob3B0cyksICJybyIsIE5VTEwpOworCSAgICAgbXlfZnJlZShvcHRzMSk7CisJICAgICBvcHRzID0gb3B0czEgPSBvcHRzMjsKKyAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgIG9wdHMgPSAicm8iOworCSBpZiAodHlwZXMgJiYgIXN0cmNtcCh0eXBlcywgImd1ZXNzIikpCisJICAgICB0eXBlcyA9IDA7CisgICAgICAgICBlcnJvciAoXygibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiKSwKKwkJYmQsIHNwZWMwKTsKKwkgcmVzID0gdHJ5X21vdW50X29uZSAoc3BlYzAsIG5vZGUwLCB0eXBlcywgb3B0cywgZnJlcSwgcGFzcywgMSk7CisJIGdvdG8gb3V0OworICAgICAgfQorICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgRU5PTUVESVVNOgorICAgICAgaWYgKHJldHJpZXMgPCBDUkRPTV9OT01FRElVTV9SRVRSSUVTKSB7CisJICAgICAgaWYgKHZlcmJvc2UpCisJCSAgICAgIHByaW50ZihfKCJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIiksCisJCQkJIHNwZWMpOworICAgICAgICAgICAgICBzbGVlcCgzKTsKKwkgICAgICArK3JldHJpZXM7CisgICAgICAgICAgICAgIGdvdG8gbW91bnRfcmV0cnk7CisgICAgICB9CisgICAgICBlcnJvcihfKCJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIiksIHNwZWMpOworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGVycm9yICgibW91bnQ6ICVzIiwgc3RyZXJyb3IgKG1udF9lcnIpKTsgYnJlYWs7CisgICAgfQorICB9CisgIHJlcyA9IEVYX0ZBSUw7CisKKyBvdXQ6CisKKyNpZiBkZWZpbmVkKEhBVkVfTElCU0VMSU5VWCkgJiYgZGVmaW5lZChIQVZFX1NFQ1VSSVRZX0dFVF9JTklUSUFMX0NPTlRFWFQpCisgIGlmIChyZXMgIT0gRVhfRkFJTCAmJiB2ZXJib3NlICYmIGlzX3NlbGludXhfZW5hYmxlZCgpID4gMCkgeworICAgICAgc2VjdXJpdHlfY29udGV4dF90IHJhdyA9IE5VTEwsIGRlZiA9IE5VTEw7CisKKyAgICAgIGlmIChnZXRmaWxlY29uKG5vZGUsICZyYXcpID4gMCAmJgorCQkgICAgIHNlY3VyaXR5X2dldF9pbml0aWFsX2NvbnRleHQoImZpbGUiLCAmZGVmKSA9PSAwKSB7CisKKwkgIGlmICghc2VsaW51eF9maWxlX2NvbnRleHRfY21wKHJhdywgZGVmKSkKKwkgICAgICBwcmludGYoXygibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisgICAgICAgICAgICAgICAgICAgIiAgICAgICBZb3UganVzdCBtb3VudGVkIGFuIGZpbGUgc3lzdGVtIHRoYXQgc3VwcG9ydHMgbGFiZWxzIHdoaWNoIGRvZXMgbm90XG4iCisgICAgICAgICAgICAgICAgICAgIiAgICAgICBjb250YWluIGxhYmVscywgb250byBhbiBTRUxpbnV4IGJveC4gSXQgaXMgbGlrZWx5IHRoYXQgY29uZmluZWRcbiIKKyAgICAgICAgICAgICAgICAgICAiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisgICAgICAgICAgICAgICAgICAgIiAgICAgICB0aGlzIGZpbGUgc3lzdGVtLiAgRm9yIG1vcmUgZGV0YWlscyBzZWUgcmVzdG9yZWNvbig4KSBhbmQgbW91bnQoOCkuXG4iKSwKKyAgICAgICAgICAgICAgICAgICBub2RlKTsKKyAgICAgIH0KKyAgICAgIGZyZWVjb24ocmF3KTsKKyAgICAgIGZyZWVjb24oZGVmKTsKKyAgfQorI2VuZGlmCisKKyAgbXlfZnJlZShleHRyYV9vcHRzMSk7CisgIG15X2ZyZWUoc3BlYzEpOworICBteV9mcmVlKG5vZGUxKTsKKyAgbXlfZnJlZShvcHRzMSk7CisgIG15X2ZyZWUodHlwZXMxKTsKKworICByZXR1cm4gcmVzOworfQorCitzdGF0aWMgY2hhciAqCitzdWJzdF9zdHJpbmcoY29uc3QgY2hhciAqcywgY29uc3QgY2hhciAqc3ViLCBpbnQgc3VibGVuLCBjb25zdCBjaGFyICpyZXBsKSB7CisJY2hhciAqbjsKKworCW4gPSAoY2hhciAqKSB4bWFsbG9jKHN0cmxlbihzKS1zdWJsZW4rc3RybGVuKHJlcGwpKzEpOworCXN0cm5jcHkgKG4sIHMsIHN1Yi1zKTsKKwlzdHJjcHkgKG4gKyAoc3ViLXMpLCByZXBsKTsKKwlzdHJjYXQgKG4sIHN1YitzdWJsZW4pOworCXJldHVybiBuOworfQorCitzdGF0aWMgY2hhciAqCit1c2Vyc3Vic3QoY29uc3QgY2hhciAqb3B0cykgeworCWNoYXIgKnMsICp3OworCWNoYXIgaWRbNDBdOworCisJaWYgKCFvcHRzKQorCQlyZXR1cm4gTlVMTDsKKworCXMgPSAidWlkPXVzZXJ1aWQiOworCWlmIChvcHRzICYmICh3ID0gc3Ryc3RyKG9wdHMsIHMpKSAhPSBOVUxMKSB7CisJCXNwcmludGYoaWQsICJ1aWQ9JWQiLCBnZXR1aWQoKSk7CisJCW9wdHMgPSBzdWJzdF9zdHJpbmcob3B0cywgdywgc3RybGVuKHMpLCBpZCk7CisJfQorCXMgPSAiZ2lkPXVzZXJnaWQiOworCWlmIChvcHRzICYmICh3ID0gc3Ryc3RyKG9wdHMsIHMpKSAhPSBOVUxMKSB7CisJCXNwcmludGYoaWQsICJnaWQ9JWQiLCBnZXRnaWQoKSk7CisJCW9wdHMgPSBzdWJzdF9zdHJpbmcob3B0cywgdywgc3RybGVuKHMpLCBpZCk7CisJfQorCXJldHVybiB4c3RyZHVwKG9wdHMpOworfQorCitzdGF0aWMgaW50Citpc19leGlzdGluZ19maWxlIChjb25zdCBjaGFyICpzKSB7CisJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKworCXJldHVybiAoc3RhdChzLCAmc3RhdGJ1ZikgPT0gMCk7Cit9CisKKy8qCisgKiBSZXR1cm4gMCBmb3Igc3VjY2VzcyAoZWl0aGVyIG1vdW50ZWQgc3RoIG9yIC1hIGFuZCBOT0FVVE8gd2FzIGdpdmVuKQorICovCitzdGF0aWMgaW50Cittb3VudF9vbmUgKGNvbnN0IGNoYXIgKnNwZWMsIGNvbnN0IGNoYXIgKm5vZGUsIGNvbnN0IGNoYXIgKnR5cGVzLAorCSAgIGNvbnN0IGNoYXIgKmZzdGFib3B0cywgY2hhciAqY21kbGluZW9wdHMsIGludCBmcmVxLCBpbnQgcGFzcykgeworCWNvbnN0IGNoYXIgKm5zcGVjOworCWNoYXIgKm9wdHM7CisKKwkvKiBTdWJzdGl0dXRlIHZhbHVlcyBpbiBvcHRzLCBpZiByZXF1aXJlZCAqLworCW9wdHMgPSB1c2Vyc3Vic3QoZnN0YWJvcHRzKTsKKworCS8qIE1lcmdlIHRoZSBmc3RhYiBhbmQgY29tbWFuZCBsaW5lIG9wdGlvbnMuICAqLworCW9wdHMgPSBhcHBlbmRfb3B0KG9wdHMsIGNtZGxpbmVvcHRzLCBOVUxMKTsKKworCWlmICh0eXBlcyA9PSBOVUxMICYmICFtb3VudHR5cGUgJiYgIWlzX2V4aXN0aW5nX2ZpbGUoc3BlYykpIHsKKwkJaWYgKHN0cmNociAoc3BlYywgJzonKSAhPSBOVUxMKSB7CisJCQl0eXBlcyA9ICJuZnMiOworCQkJaWYgKHZlcmJvc2UpCisJCQkJcHJpbnRmKF8oIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtICIKKwkJCQkJICJJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiAiCisJCQkJCSAidGhlIGNvbG9uXG4iKSk7CisJCX0gZWxzZSBpZighc3RybmNtcChzcGVjLCAiLy8iLCAyKSkgeworCQkJdHlwZXMgPSAiY2lmcyI7CisJCQlpZiAodmVyYm9zZSkKKwkJCQlwcmludGYoXygibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gIgorCQkJCQkgIkknbGwgYXNzdW1lIGNpZnMgYmVjYXVzZSBvZiAiCisJCQkJCSAidGhlIC8vIHByZWZpeFxuIikpOworCQl9CisJfQorCisJLyogSGFuZGxlIHBvc3NpYmxlIExBQkVMPSBhbmQgVVVJRD0gZm9ybXMgb2Ygc3BlYyAqLworCWlmICh0eXBlcyA9PSBOVUxMIHx8IChzdHJuY21wKHR5cGVzLCAibmZzIiwgMykgJiYKKwkJCSAgICAgIHN0cm5jbXAodHlwZXMsICJjaWZzIiwgNCkgJiYKKwkJCSAgICAgIHN0cm5jbXAodHlwZXMsICJzbWJmcyIsIDUpKSkgeworCQluc3BlYyA9IHNwZWNfdG9fZGV2bmFtZShzcGVjKTsKKwkJaWYgKG5zcGVjKQorCQkJc3BlYyA9IG5zcGVjOworCX0KKworCXJldHVybiB0cnlfbW91bnRfb25lIChzcGVjLCBub2RlLCB0eXBlcywgb3B0cywgZnJlcSwgcGFzcywgMCk7Cit9CisKKy8qIENoZWNrIGlmIGFuIGZzbmFtZS9kaXIgcGFpciB3YXMgYWxyZWFkeSBpbiB0aGUgb2xkIG10YWIuICAqLworc3RhdGljIGludAorbW91bnRlZCAoY29uc3QgY2hhciAqc3BlYzAsIGNvbnN0IGNoYXIgKm5vZGUwKSB7CisJc3RydWN0IG1udGVudGNobiAqbWMsICptYzA7CisJY29uc3QgY2hhciAqc3BlYywgKm5vZGU7CisJaW50IHJldCA9IDA7CisKKwkvKiBIYW5kbGUgcG9zc2libGUgVVVJRD0gYW5kIExBQkVMPSBpbiBzcGVjICovCisJc3BlYyA9IHNwZWNfdG9fZGV2bmFtZShzcGVjMCk7CisJaWYgKCFzcGVjKQorCQlyZXR1cm4gcmV0OworCisJbm9kZSA9IGNhbm9uaWNhbGl6ZShub2RlMCk7CisKKwltYzAgPSBtdGFiX2hlYWQoKTsKKwlmb3IgKG1jID0gbWMwLT5ueHQ7IG1jICYmIG1jICE9IG1jMDsgbWMgPSBtYy0+bnh0KQorCQlpZiAoc3RyZXEgKHNwZWMsIG1jLT5tLm1udF9mc25hbWUpICYmCisJCSAgICBzdHJlcSAobm9kZSwgbWMtPm0ubW50X2RpcikpIHsKKwkJCXJldCA9IDE7CisJCQlicmVhazsKKwkJfQorCisJbXlfZnJlZShzcGVjKTsKKwlteV9mcmVlKG5vZGUpOworCisJcmV0dXJuIHJldDsKK30KKworLyogYXZvaWQgdXNpbmcgc3RhdCgpIG9uIHRoaW5ncyB3ZSBhcmUgbm90IGdvaW5nIHRvIG1vdW50IGFueXdheS4uICovCitzdGF0aWMgaW50CitoYXNfbm9hdXRvIChjb25zdCBjaGFyICpvcHRzKSB7CisJY2hhciAqczsKKworCWlmICghb3B0cykKKwkJcmV0dXJuIDA7CisJcyA9IHN0cnN0cihvcHRzLCAibm9hdXRvIik7CisJaWYgKCFzKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gKHMgPT0gb3B0cyB8fCBzWy0xXSA9PSAnLCcpICYmIChzWzZdID09IDAgfHwgc1s2XSA9PSAnLCcpOworfQorCisvKiBNb3VudCBhbGwgZmlsZXN5c3RlbXMgb2YgdGhlIHNwZWNpZmllZCB0eXBlcyBleGNlcHQgc3dhcCBhbmQgcm9vdC4gICovCisvKiBXaXRoIHRoZSAtLWZvcmsgb3B0aW9uOiBmb3JrIGFuZCBsZXQgZGlmZmVyZW50IGluY2FybmF0aW9ucyBvZgorICAgbW91bnQgaGFuZGxlIGRpZmZlcmVudCBmaWxlc3lzdGVtcy4gIEhvd2V2ZXIsIHRyeSB0byBhdm9pZCBzZXZlcmFsCisgICBzaW11bHRhbmVvdXMgbW91bnRzIG9uIHRoZSBzYW1lIHBoeXNpY2FsIGRpc2ssIHNpbmNlIHRoYXQgaXMgdmVyeSBzbG93LiAqLworI2RlZmluZSBESVNLTUFKT1IobSkJKCgoaW50KSBtKSAmIH4weGYpCisKK3N0YXRpYyBpbnQKK2RvX21vdW50X2FsbCAoY2hhciAqdHlwZXMsIGNoYXIgKm9wdGlvbnMsIGNoYXIgKnRlc3Rfb3B0cykgeworCXN0cnVjdCBtbnRlbnRjaG4gKm1jLCAqbWMwLCAqbXRtcDsKKwlpbnQgc3RhdHVzID0gMDsKKwlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCXN0cnVjdCBjaGlsZCB7CisJCXBpZF90IHBpZDsKKwkJY2hhciAqZ3JvdXA7CisJCXN0cnVjdCBtbnRlbnRjaG4gKm1lYzsKKwkJc3RydWN0IG1udGVudGNobiAqbWVjbGFzdDsKKwkJc3RydWN0IGNoaWxkICpueHQ7CisJfSBjaGlsZGhlYWQsICpjaGlsZHRhaWwsICpjcDsKKwljaGFyIG1ham9yWzIyXTsKKwljaGFyICpnLCAqY29sb247CisKKwkvKiBidWlsZCBhIGNoYWluIG9mIHdoYXQgd2UgaGF2ZSB0byBkbywgb3IgbWF5YmUKKwkgICBzZXZlcmFsIGNoYWlucywgb25lIGZvciBlYWNoIG1ham9yIG9yIE5GUyBob3N0ICovCisJY2hpbGRoZWFkLm54dCA9IDA7CisJY2hpbGR0YWlsID0gJmNoaWxkaGVhZDsKKwltYzAgPSBmc3RhYl9oZWFkKCk7CisJZm9yIChtYyA9IG1jMC0+bnh0OyBtYyAmJiBtYyAhPSBtYzA7IG1jID0gbWMtPm54dCkgeworCQlpZiAoaGFzX25vYXV0byAobWMtPm0ubW50X29wdHMpKQorCQkJY29udGludWU7CisJCWlmIChtYXRjaGluZ190eXBlIChtYy0+bS5tbnRfdHlwZSwgdHlwZXMpCisJCSAgICAmJiBtYXRjaGluZ19vcHRzIChtYy0+bS5tbnRfb3B0cywgdGVzdF9vcHRzKQorCQkgICAgJiYgIXN0cmVxIChtYy0+bS5tbnRfZGlyLCAiLyIpCisJCSAgICAmJiAhc3RyZXEgKG1jLT5tLm1udF9kaXIsICJyb290IikpIHsKKworCQkJaWYgKG1vdW50ZWQgKG1jLT5tLm1udF9mc25hbWUsIG1jLT5tLm1udF9kaXIpKSB7CisJCQkJaWYgKHZlcmJvc2UpCisJCQkJCXByaW50ZihfKCJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkICIKKwkJCQkJCSAib24gJXNcbiIpLAorCQkJCQkgICAgICAgbWMtPm0ubW50X2ZzbmFtZSwKKwkJCQkJICAgICAgIG1jLT5tLm1udF9kaXIpOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQltdG1wID0gKHN0cnVjdCBtbnRlbnRjaG4gKikgeG1hbGxvYyhzaXplb2YoKm10bXApKTsKKwkJCSptdG1wID0gKm1jOworCQkJbXRtcC0+bnh0ID0gMDsKKwkJCWcgPSBOVUxMOworCQkJaWYgKG9wdGZvcmspIHsKKwkJCQlpZiAoc3RhdChtYy0+bS5tbnRfZnNuYW1lLCAmc3RhdGJ1ZikgPT0gMCAmJgorCQkJCSAgICBTX0lTQkxLKHN0YXRidWYuc3RfbW9kZSkpIHsKKwkJCQkJc3ByaW50ZihtYWpvciwgIiMleCIsCisJCQkJCQlESVNLTUFKT1Ioc3RhdGJ1Zi5zdF9yZGV2KSk7CisJCQkJCWcgPSBtYWpvcjsKKwkJCQl9CisJCQkJaWYgKHN0cmNtcChtYy0+bS5tbnRfdHlwZSwgIm5mcyIpID09IDApIHsKKwkJCQkJZyA9IHhzdHJkdXAobWMtPm0ubW50X2ZzbmFtZSk7CisJCQkJCWNvbG9uID0gc3RyY2hyKGcsICc6Jyk7CisJCQkJCWlmIChjb2xvbikKKwkJCQkJCSpjb2xvbiA9ICdcMCc7CisJCQkJfQorCQkJfQorCQkJaWYgKGcpIHsKKwkJCQlmb3IgKGNwID0gY2hpbGRoZWFkLm54dDsgY3A7IGNwID0gY3AtPm54dCkKKwkJCQkJaWYgKGNwLT5ncm91cCAmJgorCQkJCQkgICAgc3RyY21wKGNwLT5ncm91cCwgZykgPT0gMCkgeworCQkJCQkJY3AtPm1lY2xhc3QtPm54dCA9IG10bXA7CisJCQkJCQljcC0+bWVjbGFzdCA9IG10bXA7CisJCQkJCQlnb3RvIGZuZDsKKwkJCQkJfQorCQkJfQorCQkJY3AgPSAoc3RydWN0IGNoaWxkICopIHhtYWxsb2Moc2l6ZW9mICpjcCk7CisJCQljcC0+bnh0ID0gMDsKKwkJCWNwLT5tZWMgPSBjcC0+bWVjbGFzdCA9IG10bXA7CisJCQljcC0+Z3JvdXAgPSB4c3RyZHVwKGcpOworCQkJY3AtPnBpZCA9IDA7CisJCQljaGlsZHRhaWwtPm54dCA9IGNwOworCQkJY2hpbGR0YWlsID0gY3A7CisJCWZuZDo7CisKKwkJfQorCX0KKwkJCSAgICAgIAorCS8qIG5vdyBkbyBldmVyeXRoaW5nICovCisJZm9yIChjcCA9IGNoaWxkaGVhZC5ueHQ7IGNwOyBjcCA9IGNwLT5ueHQpIHsKKwkJcGlkX3QgcCA9IC0xOworCQlpZiAob3B0Zm9yaykgeworCQkJcCA9IGZvcmsoKTsKKwkJCWlmIChwID09IC0xKSB7CisJCQkJaW50IGVycnN2ID0gZXJybm87CisJCQkJZXJyb3IoXygibW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIpLAorCQkJCSAgICAgIHN0cmVycm9yIChlcnJzdikpOworCQkJfQorCQkJZWxzZSBpZiAocCAhPSAwKQorCQkJCWNwLT5waWQgPSBwOworCQl9CisKKwkJLyogaWYgY2hpbGQsIG9yIG5vdCBmb3JrZWQsIGRvIHRoZSBtb3VudGluZyAqLworCQlpZiAocCA9PSAwIHx8IHAgPT0gLTEpIHsKKwkJCWZvciAobWMgPSBjcC0+bWVjOyBtYzsgbWMgPSBtYy0+bnh0KSB7CisJCQkJc3RhdHVzIHw9IG1vdW50X29uZSAobWMtPm0ubW50X2ZzbmFtZSwKKwkJCQkJCSAgICAgbWMtPm0ubW50X2RpciwKKwkJCQkJCSAgICAgbWMtPm0ubW50X3R5cGUsCisJCQkJCQkgICAgIG1jLT5tLm1udF9vcHRzLAorCQkJCQkJICAgICBvcHRpb25zLCAwLCAwKTsKKwkJCX0KKwkJCWlmIChtb3VudGNvdW50KQorCQkJCXN0YXR1cyB8PSBFWF9TT01FT0s7CisJCQlpZiAocCA9PSAwKQorCQkJCWV4aXQoc3RhdHVzKTsKKwkJfQorCX0KKworCS8qIHdhaXQgZm9yIGNoaWxkcmVuLCBpZiBhbnkgKi8KKwl3aGlsZSAoKGNwID0gY2hpbGRoZWFkLm54dCkgIT0gTlVMTCkgeworCQljaGlsZGhlYWQubnh0ID0gY3AtPm54dDsKKwkJaWYgKGNwLT5waWQpIHsKKwkJCWludCByZXQ7CisJCWtlZXBfd2FpdGluZzoKKwkJCWlmKHdhaXRwaWQoY3AtPnBpZCwgJnJldCwgMCkgPT0gLTEpIHsKKwkJCQlpZiAoZXJybm8gPT0gRUlOVFIpCisJCQkJCWdvdG8ga2VlcF93YWl0aW5nOworCQkJCXBlcnJvcigid2FpdHBpZCIpOworCQkJfSBlbHNlIGlmIChXSUZFWElURUQocmV0KSkKKwkJCQlzdGF0dXMgfD0gV0VYSVRTVEFUVVMocmV0KTsKKwkJCWVsc2UKKwkJCQlzdGF0dXMgfD0gRVhfU1lTRVJSOworCQl9CisJfQorCWlmIChtb3VudGNvdW50KQorCQlzdGF0dXMgfD0gRVhfU09NRU9LOworCXJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW10gPSB7CisJeyAiYWxsIiwgMCwgMCwgJ2EnIH0sCisJeyAiZmFrZSIsIDAsIDAsICdmJyB9LAorCXsgImZvcmsiLCAwLCAwLCAnRicgfSwKKwl7ICJoZWxwIiwgMCwgMCwgJ2gnIH0sCisJeyAibm8tbXRhYiIsIDAsIDAsICduJyB9LAorCXsgInJlYWQtb25seSIsIDAsIDAsICdyJyB9LAorCXsgInJvIiwgMCwgMCwgJ3InIH0sCisJeyAidmVyYm9zZSIsIDAsIDAsICd2JyB9LAorCXsgInZlcnNpb24iLCAwLCAwLCAnVicgfSwKKwl7ICJyZWFkLXdyaXRlIiwgMCwgMCwgJ3cnIH0sCisJeyAicnciLCAwLCAwLCAndycgfSwKKwl7ICJvcHRpb25zIiwgMSwgMCwgJ28nIH0sCisJeyAidGVzdC1vcHRzIiwgMSwgMCwgJ08nIH0sCisJeyAicGFzcy1mZCIsIDEsIDAsICdwJyB9LAorCXsgInR5cGVzIiwgMSwgMCwgJ3QnIH0sCisJeyAiYmluZCIsIDAsIDAsICdCJyB9LAorCXsgIm1vdmUiLCAwLCAwLCAnTScgfSwKKwl7ICJndWVzcy1mc3R5cGUiLCAxLCAwLCAxMzQgfSwKKwl7ICJyYmluZCIsIDAsIDAsICdSJyB9LAorCXsgIm1ha2Utc2hhcmVkIiwgMCwgMCwgMTM2IH0sCisJeyAibWFrZS1zbGF2ZSIsIDAsIDAsIDEzNyB9LAorCXsgIm1ha2UtcHJpdmF0ZSIsIDAsIDAsIDEzOCB9LAorCXsgIm1ha2UtdW5iaW5kYWJsZSIsIDAsIDAsIDEzOSB9LAorCXsgIm1ha2UtcnNoYXJlZCIsIDAsIDAsIDE0MCB9LAorCXsgIm1ha2UtcnNsYXZlIiwgMCwgMCwgMTQxIH0sCisJeyAibWFrZS1ycHJpdmF0ZSIsIDAsIDAsIDE0MiB9LAorCXsgIm1ha2UtcnVuYmluZGFibGUiLCAwLCAwLCAxNDMgfSwKKwl7ICJuby1jYW5vbmljYWxpemUiLCAwLCAwLCAxNDQgfSwKKwl7ICJpbnRlcm5hbC1vbmx5IiwgMCwgMCwgJ2knIH0sCisJeyBOVUxMLCAwLCAwLCAwIH0KK307CisKKy8qIEtlZXAgdGhlIHVzYWdlIG1lc3NhZ2UgYXQgbWF4IDIyIGxpbmVzLCBlYWNoIGF0IG1vc3QgNzAgY2hhcnMgbG9uZy4KKyAgIFRoZSB1c2VyIHNob3VsZCBub3QgbmVlZCBhIHBhZ2VyIHRvIHJlYWQgaXQuICovCitzdGF0aWMgdm9pZAordXNhZ2UgKEZJTEUgKmZwLCBpbnQgbikgeworCWZwcmludGYoZnAsIF8oCisJICAiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKwkgICIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisJICAiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorCSAgIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorCSAgIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKwkgICJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisJICAiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorCSAgIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisJICAiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKwkgICIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKwkgICIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorCSAgIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisJICAiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKwkgICJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKwkgICIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKwkgICJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKwkgICIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKwkgICJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorCSAgIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorCSAgIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisJICAiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorCSAgIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKwkgICJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKwkgICJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorCSAgIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKwkgICIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKwkgICIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorCSAgIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisJICAiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKwkgICJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisJICAiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKwkgICJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorCSkpOworCisJdW5sb2NrX210YWIoKTsKKwlleGl0IChuKTsKK30KKworLyogcmV0dXJucyBtb3VudCBlbnRyeSBmcm9tIGZzdGFiICovCitzdGF0aWMgc3RydWN0IG1udGVudGNobiAqCitnZXRmcyhjb25zdCBjaGFyICpzcGVjLCBjb25zdCBjaGFyICp1dWlkLCBjb25zdCBjaGFyICpsYWJlbCkKK3sKKwlzdHJ1Y3QgbW50ZW50Y2huICptYyA9IE5VTEw7CisJY29uc3QgY2hhciAqZGV2bmFtZSA9IE5VTEw7CisKKwlpZiAoIXNwZWMgJiYgIXV1aWQgJiYgIWxhYmVsKQorCQlyZXR1cm4gTlVMTDsKKworCS8qCisJICogQSkgOTklIG9mIGFsbCBjYXNlcywgdGhlIHNwZWMgb24gY21kbGluZSBtYXRjaGVzCisJICogICAgd2l0aCBzcGVjIGluIGZzdGFiCisJICovCisJaWYgKHV1aWQpCisJCW1jID0gZ2V0ZnNfYnlfdXVpZCh1dWlkKTsKKwllbHNlIGlmIChsYWJlbCkKKwkJbWMgPSBnZXRmc19ieV9sYWJlbChsYWJlbCk7CisJZWxzZSB7CisJCW1jID0gZ2V0ZnNfYnlfc3BlYyhzcGVjKTsKKworCQlpZiAoIW1jKQorCQkJbWMgPSBnZXRmc19ieV9kaXIoc3BlYyk7CisJfQorCWlmIChtYykKKwkJcmV0dXJuIG1jOworCisJLyoKKwkgKiBCKSBVVUlEIG9yIExBQkVMIG9uIGNtZGxpbmUsIGJ1dCBkZXZuYW1lIGluIGZzdGFiCisJICovCisJaWYgKHV1aWQpCisJCWRldm5hbWUgPSBmc3Byb2JlX2dldF9kZXZuYW1lX2J5X3V1aWQodXVpZCk7CisJZWxzZSBpZiAobGFiZWwpCisJCWRldm5hbWUgPSBmc3Byb2JlX2dldF9kZXZuYW1lX2J5X2xhYmVsKGxhYmVsKTsKKwllbHNlCisJCWRldm5hbWUgPSBzcGVjX3RvX2Rldm5hbWUoc3BlYyk7CisKKwlpZiAoZGV2bmFtZSkKKwkJbWMgPSBnZXRmc19ieV9kZXZuYW1lKGRldm5hbWUpOworCisJLyoKKwkgKiBDKSBtaXhlZAorCSAqLworCWlmICghbWMgJiYgZGV2bmFtZSkgeworCQljb25zdCBjaGFyICppZCA9IE5VTEw7CisKKwkJaWYgKCFsYWJlbCAmJiAoIXNwZWMgfHwgc3RybmNtcChzcGVjLCAiTEFCRUw9IiwgNikpKSB7CisJCQlpZCA9IGZzcHJvYmVfZ2V0X2xhYmVsX2J5X2Rldm5hbWUoZGV2bmFtZSk7CisJCQlpZiAoaWQpCisJCQkJbWMgPSBnZXRmc19ieV9sYWJlbChpZCk7CisJCX0KKwkJaWYgKCFtYyAmJiAhdXVpZCAmJiAoIXNwZWMgfHwgc3RybmNtcChzcGVjLCAiVVVJRD0iLCA1KSkpIHsKKwkJCWlkID0gZnNwcm9iZV9nZXRfdXVpZF9ieV9kZXZuYW1lKGRldm5hbWUpOworCQkJaWYgKGlkKQorCQkJCW1jID0gZ2V0ZnNfYnlfdXVpZChpZCk7CisJCX0KKwkJbXlfZnJlZShpZCk7CisKKwkJaWYgKG1jKSB7CisJCQkvKiB1c2UgcmVhbCBkZXZpY2UgbmFtZSB0byBhdm9pZCByZXBldGl0aW9uYWwKKwkJCSAqIGNvbnZlcnNpb24gZnJvbSBMQUJFTC9VVUlEIHRvIGRldm5hbWUKKwkJCSAqLworCQkJbXlfZnJlZShtYy0+bS5tbnRfZnNuYW1lKTsKKwkJCW1jLT5tLm1udF9mc25hbWUgPSB4c3RyZHVwKGRldm5hbWUpOworCQl9CisJfQorCisJLyoKKwkgKiBEKSByZW1vdW50IC0tIHRyeSAvZXRjL210YWIKKwkgKiAgICBFYXJsaWVyIG10YWIgd2FzIHRyaWVkIGZpcnN0LCBidXQgdGhpcyB3b3VsZCBzb21ldGltZXMgdHJ5IHRoZQorCSAqICAgIHdyb25nIG1vdW50IGluIGNhc2UgbXRhYiBoYWQgdGhlIHJvb3QgZGV2aWNlIGVudHJ5IHdyb25nLgorCSAqLworCWlmICghbWMgJiYgKGRldm5hbWUgfHwgc3BlYykpCisJCW1jID0gZ2V0bW50ZmlsZSAoZGV2bmFtZSA/IGRldm5hbWUgOiBzcGVjKTsKKworCW15X2ZyZWUoZGV2bmFtZSk7CisJcmV0dXJuIG1jOworfQorCisKK3N0YXRpYyB2b2lkCitwcmludF92ZXJzaW9uKGludCByYykgeworCXByaW50ZigJIm1vdW50IGZyb20gJXMgKHdpdGggIgorI2lmZGVmIEhBVkVfTElCQkxLSUQKKwkJImxpYmJsa2lkIgorI2Vsc2UKKwkJImxpYnZvbHVtZV9pZCIKKyNlbmRpZgorI2lmZGVmIEhBVkVfTElCU0VMSU5VWAorCQkiIGFuZCBzZWxpbnV4IgorI2VuZGlmCisJCSIgc3VwcG9ydClcbiIsIFBBQ0tBR0VfU1RSSU5HKTsKKwlleGl0KHJjKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKKwlpbnQgYywgcmVzdWx0ID0gMCwgc3BlY3NlZW47CisJY2hhciAqb3B0aW9ucyA9IE5VTEwsICp0ZXN0X29wdHMgPSBOVUxMLCAqbm9kZTsKKwljb25zdCBjaGFyICpzcGVjID0gTlVMTDsKKwljaGFyICpsYWJlbCA9IE5VTEw7CisJY2hhciAqdXVpZCA9IE5VTEw7CisJY2hhciAqdHlwZXMgPSBOVUxMOworCWNoYXIgKnA7CisJc3RydWN0IG1udGVudGNobiAqbWM7CisJaW50IGZkOworCisJc2FuaXRpemVfZW52KCk7CisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCXByb2duYW1lID0gYXJndlswXTsKKwlpZiAoKHAgPSBzdHJyY2hyKHByb2duYW1lLCAnLycpKSAhPSBOVUxMKQorCQlwcm9nbmFtZSA9IHArMTsKKworCXVtYXNrKDAyMik7CisKKwkvKiBQZW9wbGUgcmVwb3J0IHRoYXQgYSBtb3VudCBjYWxsZWQgZnJvbSBpbml0IHdpdGhvdXQgY29uc29sZQorCSAgIHdyaXRlcyBlcnJvciBtZXNzYWdlcyB0byAvZXRjL210YWIKKwkgICBMZXQgdXMgdHJ5IHRvIGF2b2lkIGdldHRpbmcgZmQncyAwLDEsMiAqLworCXdoaWxlKChmZCA9IG9wZW4oIi9kZXYvbnVsbCIsIE9fUkRXUikpID09IDAgfHwgZmQgPT0gMSB8fCBmZCA9PSAyKSA7CisJaWYgKGZkID4gMikKKwkJY2xvc2UoZmQpOworCisJZnNwcm9iZV9pbml0KCk7CisKKyNpZmRlZiBET19QU19GSURETElORworCWluaXRwcm9jdGl0bGUoYXJnYywgYXJndik7CisjZW5kaWYKKworCXdoaWxlICgoYyA9IGdldG9wdF9sb25nIChhcmdjLCBhcmd2LCAiYUJmRmhpbEw6TW5vOk86cDpyUnNVOnZWd3Q6IiwKKwkJCQkgbG9uZ29wdHMsIE5VTEwpKSAhPSAtMSkgeworCQlzd2l0Y2ggKGMpIHsKKwkJY2FzZSAnYSc6CSAgICAgICAvKiBtb3VudCBldmVyeXRoaW5nIGluIGZzdGFiICovCisJCQkrK21vdW50X2FsbDsKKwkJCWJyZWFrOworCQljYXNlICdCJzogLyogYmluZCAqLworCQkJbW91bnR0eXBlID0gTVNfQklORDsKKwkJCWJyZWFrOworCQljYXNlICdmJzoJICAgICAgIC8qIGZha2U6IGRvbid0IGFjdHVhbGx5IGNhbGwgbW91bnQoMikgKi8KKwkJCSsrZmFrZTsKKwkJCWJyZWFrOworCQljYXNlICdGJzoKKwkJCSsrb3B0Zm9yazsKKwkJCWJyZWFrOworCQljYXNlICdoJzoJCS8qIGhlbHAgKi8KKwkJCXVzYWdlIChzdGRvdXQsIDApOworCQkJYnJlYWs7CisJCWNhc2UgJ2knOgorCQkJZXh0ZXJuYWxfYWxsb3dlZCA9IDA7CisJCQlicmVhazsKKwkJY2FzZSAnbCc6CisJCQlsaXN0X3dpdGhfdm9sdW1lbGFiZWwgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ0wnOgorCQkJbGFiZWwgPSBvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAnTSc6IC8qIG1vdmUgKi8KKwkJCW1vdW50dHlwZSA9IE1TX01PVkU7CisJCQlicmVhazsKKwkJY2FzZSAnbic6CQkvKiBkbyBub3Qgd3JpdGUgL2V0Yy9tdGFiICovCisJCQkrK25vbXRhYjsKKwkJCWJyZWFrOworCQljYXNlICdvJzoJCS8qIHNwZWNpZnkgbW91bnQgb3B0aW9ucyAqLworCQkJb3B0aW9ucyA9IGFwcGVuZF9vcHQob3B0aW9ucywgb3B0YXJnLCBOVUxMKTsKKwkJCWJyZWFrOworCQljYXNlICdPJzoJCS8qIHdpdGggLXQ6IG1vdW50IG9ubHkgaWYgKG5vdCkgb3B0ICovCisJCQl0ZXN0X29wdHMgPSBhcHBlbmRfb3B0KHRlc3Rfb3B0cywgb3B0YXJnLCBOVUxMKTsKKwkJCWJyZWFrOworCQljYXNlICdwJzoJCS8qIGZkIG9uIHdoaWNoIHRvIHJlYWQgcGFzc3dkICovCisJCQlzZXRfcGZkKG9wdGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSAncic6CQkvKiBtb3VudCByZWFkb25seSAqLworCQkJcmVhZG9ubHkgPSAxOworCQkJcmVhZHdyaXRlID0gMDsKKwkJCWJyZWFrOworCQljYXNlICdSJzogLyogcmJpbmQgKi8KKwkJCW1vdW50dHlwZSA9IChNU19CSU5EIHwgTVNfUkVDKTsKKwkJCWJyZWFrOworCQljYXNlICdzJzoJCS8qIGFsbG93IHNsb3BweSBtb3VudCBvcHRpb25zICovCisJCQlzbG9wcHkgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3QnOgkJLyogc3BlY2lmeSBmaWxlIHN5c3RlbSB0eXBlcyAqLworCQkJdHlwZXMgPSBvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAnVSc6CisJCQl1dWlkID0gb3B0YXJnOworCQkJYnJlYWs7CisJCWNhc2UgJ3YnOgkJLyogYmUgY2hhdHR5IC0gbW9yZSBzbyBpZiByZXBlYXRlZCAqLworCQkJKyt2ZXJib3NlOworCQkJYnJlYWs7CisJCWNhc2UgJ1YnOgkJLyogdmVyc2lvbiAqLworCQkJcHJpbnRfdmVyc2lvbihFWElUX1NVQ0NFU1MpOworCQkJYnJlYWs7CisJCWNhc2UgJ3cnOgkJLyogbW91bnQgcmVhZC93cml0ZSAqLworCQkJcmVhZHdyaXRlID0gMTsKKwkJCXJlYWRvbmx5ID0gMDsKKwkJCWJyZWFrOworCQljYXNlIDA6CisJCQlicmVhazsKKworCQljYXNlIDEzNDoKKwkJCS8qIHVuZG9jdW1lbnRlZCwgbWF5IGdvIGF3YXkgYWdhaW46CisJCQkgICBjYWxsOiBtb3VudCAtLWd1ZXNzLWZzdHlwZSBkZXZpY2UKKwkJCSAgIHVzZSBvbmx5IGZvciB0ZXN0aW5nIHB1cnBvc2VzIC0KKwkJCSAgIHRoZSBndWVzc2luZyBpcyBub3QgcmVsaWFibGUgYXQgYWxsICovCisJCSAgICB7CisJCQljb25zdCBjaGFyICpmc3R5cGU7CisJCQlmc3R5cGUgPSBmc3Byb2JlX2dldF9mc3R5cGVfYnlfZGV2bmFtZShvcHRhcmcpOworCQkJcHJpbnRmKCIlc1xuIiwgZnN0eXBlID8gZnN0eXBlIDogInVua25vd24iKTsKKwkJCWV4aXQoZnN0eXBlID8gMCA6IEVYX0ZBSUwpOworCQkgICAgfQorCisJCWNhc2UgMTM2OgorCQkJbW91bnR0eXBlID0gTVNfU0hBUkVEOworCQkJYnJlYWs7CisKKwkJY2FzZSAxMzc6CisJCQltb3VudHR5cGUgPSBNU19TTEFWRTsKKwkJCWJyZWFrOworCisJCWNhc2UgMTM4OgorCQkJbW91bnR0eXBlID0gTVNfUFJJVkFURTsKKwkJCWJyZWFrOworCisJCWNhc2UgMTM5OgorCQkJbW91bnR0eXBlID0gTVNfVU5CSU5EQUJMRTsKKwkJCWJyZWFrOworCisJCWNhc2UgMTQwOgorCQkJbW91bnR0eXBlID0gKE1TX1NIQVJFRCB8IE1TX1JFQyk7CisJCQlicmVhazsKKworCQljYXNlIDE0MToKKwkJCW1vdW50dHlwZSA9IChNU19TTEFWRSB8IE1TX1JFQyk7CisJCQlicmVhazsKKworCQljYXNlIDE0MjoKKwkJCW1vdW50dHlwZSA9IChNU19QUklWQVRFIHwgTVNfUkVDKTsKKwkJCWJyZWFrOworCisJCWNhc2UgMTQzOgorCQkJbW91bnR0eXBlID0gKE1TX1VOQklOREFCTEUgfCBNU19SRUMpOworCQkJYnJlYWs7CisJCWNhc2UgMTQ0OgorCQkJbm9jYW5vbmljYWxpemUgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJz8nOgorCQlkZWZhdWx0OgorCQkJdXNhZ2UgKHN0ZGVyciwgRVhfVVNBR0UpOworCQl9CisJfQorCisJaWYgKHZlcmJvc2UgPiAyKSB7CisJCXByaW50ZigibW91bnQ6IGZzdGFiIHBhdGg6IFwiJXNcIlxuIiwgX1BBVEhfTU5UVEFCKTsKKwkJcHJpbnRmKCJtb3VudDogbXRhYiBwYXRoOiAgXCIlc1wiXG4iLCBfUEFUSF9NT1VOVEVEKTsKKwkJcHJpbnRmKCJtb3VudDogbG9jayBwYXRoOiAgXCIlc1wiXG4iLCBfUEFUSF9NT1VOVEVEX0xPQ0spOworCQlwcmludGYoIm1vdW50OiB0ZW1wIHBhdGg6ICBcIiVzXCJcbiIsIF9QQVRIX01PVU5URURfVE1QKTsKKwkJcHJpbnRmKCJtb3VudDogVUlEOiAgICAgICAgJWRcbiIsIGdldHVpZCgpKTsKKwkJcHJpbnRmKCJtb3VudDogZVVJRDogICAgICAgJWRcbiIsIGdldGV1aWQoKSk7CisJfQorCisJYXJnYyAtPSBvcHRpbmQ7CisJYXJndiArPSBvcHRpbmQ7CisKKwlzcGVjc2VlbiA9ICh1dWlkIHx8IGxhYmVsKSA/IDEgOiAwOwkvKiB5ZXMsIC4uIGkga25vdyAqLworCisJaWYgKGFyZ2Mrc3BlY3NlZW4gPT0gMCAmJiAhbW91bnRfYWxsKSB7CisJCWlmIChvcHRpb25zIHx8IG1vdW50dHlwZSkKKwkJCXVzYWdlIChzdGRlcnIsIEVYX1VTQUdFKTsKKwkJcmV0dXJuIHByaW50X2FsbCAodHlwZXMpOworCX0KKworCXsKKwkJY29uc3QgdWlkX3QgcnVpZCA9IGdldHVpZCgpOworCQljb25zdCB1aWRfdCBldWlkID0gZ2V0ZXVpZCgpOworCisJCS8qIGlmIHdlJ3JlIHJlYWxseSByb290IGFuZCBhcmVuJ3QgcnVubmluZyBzZXR1aWQgKi8KKwkJaWYgKCgodWlkX3QpMCA9PSBydWlkKSAmJiAocnVpZCA9PSBldWlkKSkgeworCQkJcmVzdHJpY3RlZCA9IDA7CisJCX0KKworCQlpZiAocmVzdHJpY3RlZCAmJgorCQkgICAgKHR5cGVzIHx8IG9wdGlvbnMgfHwgcmVhZHdyaXRlIHx8IG5vbXRhYiB8fCBtb3VudF9hbGwgfHwKKwkJICAgICBub2Nhbm9uaWNhbGl6ZSB8fCBmYWtlIHx8IG1vdW50dHlwZSB8fAorCQkgICAgIChhcmdjICsgc3BlY3NlZW4pICE9IDEpKSB7CisKKwkJCWlmIChydWlkID09IDAgJiYgZXVpZCAhPSAwKQorCQkJCS8qIHVzZXIgaXMgcm9vdCwgYnV0IHNldHVpZCB0byBub24tcm9vdCAqLworCQkJCWRpZSAoRVhfVVNBR0UsIF8oIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQgIgorCQkJCQkiKGVmZmVjdGl2ZSBVSUQgaXMgJWQpIiksIGV1aWQpOworCisJCQlkaWUgKEVYX1VTQUdFLCBfKCJtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IikpOworCQl9CisJfQorCisJYXRleGl0KHVubG9ja19tdGFiKTsKKworCXN3aXRjaCAoYXJnYytzcGVjc2VlbikgeworCWNhc2UgMDoKKwkJLyogbW91bnQgLWEgKi8KKwkJcmVzdWx0ID0gZG9fbW91bnRfYWxsICh0eXBlcywgb3B0aW9ucywgdGVzdF9vcHRzKTsKKwkJaWYgKHJlc3VsdCA9PSAwICYmIHZlcmJvc2UgJiYgIWZha2UpCisJCQllcnJvcihfKCJub3RoaW5nIHdhcyBtb3VudGVkIikpOworCQlicmVhazsKKworCWNhc2UgMToKKwkJLyogbW91bnQgWy1uZnJ2d10gWy1vIG9wdGlvbnNdIHNwZWNpYWwgfCBub2RlCisJCSAqIG1vdW50IC1MIGxhYmVsICAob3IgLVUgdXVpZCkKKwkJICogKC9ldGMvZnN0YWIgaXMgbmVjZXNzYXJ5KQorCQkgKi8KKwkJaWYgKHR5cGVzICE9IE5VTEwpCisJCQl1c2FnZSAoc3RkZXJyLCBFWF9VU0FHRSk7CisKKwkJaWYgKHV1aWQgfHwgbGFiZWwpCisJCQltYyA9IGdldGZzKE5VTEwsIHV1aWQsIGxhYmVsKTsKKwkJZWxzZQorCQkJbWMgPSBnZXRmcygqYXJndiwgTlVMTCwgTlVMTCk7CisKKwkJaWYgKCFtYykgeworCQkJaWYgKHV1aWQgfHwgbGFiZWwpCisJCQkJZGllIChFWF9VU0FHRSwgXygibW91bnQ6IG5vIHN1Y2ggcGFydGl0aW9uIGZvdW5kIikpOworCisJCQlkaWUgKEVYX1VTQUdFLAorCQkJICAgICBfKCJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIpLAorCQkJICAgICAqYXJndiwgX1BBVEhfTU5UVEFCLCBfUEFUSF9NT1VOVEVEKTsKKwkJfQorCisJCXJlc3VsdCA9IG1vdW50X29uZSAoeHN0cmR1cCAobWMtPm0ubW50X2ZzbmFtZSksCisJCQkJICAgIHhzdHJkdXAgKG1jLT5tLm1udF9kaXIpLAorCQkJCSAgICB4c3RyZHVwIChtYy0+bS5tbnRfdHlwZSksCisJCQkJICAgIG1jLT5tLm1udF9vcHRzLCBvcHRpb25zLCAwLCAwKTsKKwkJYnJlYWs7CisKKwljYXNlIDI6CisJCS8qIG1vdW50IHNwZWNpYWwgbm9kZSAgKC9ldGMvZnN0YWIgaXMgbm90IG5lY2Vzc2FyeSkgKi8KKwkJaWYgKHNwZWNzZWVuKSB7CisJCQkvKiBtb3VudCAtTCBsYWJlbCBub2RlICAgKG9yIC1VIHV1aWQpICovCisJCQlzcGVjID0gdXVpZCA/CWZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfdXVpZCh1dWlkKSA6CisJCQkJCWZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfbGFiZWwobGFiZWwpOworCQkJbm9kZSA9IGFyZ3ZbMF07CisJCX0gZWxzZSB7CisJCQkvKiBtb3VudCBzcGVjaWFsIG5vZGUgKi8KKwkJCXNwZWMgPSBhcmd2WzBdOworCQkJbm9kZSA9IGFyZ3ZbMV07CisJCX0KKwkJaWYgKCFzcGVjKQorCQkJZGllIChFWF9VU0FHRSwgXygibW91bnQ6IG5vIHN1Y2ggcGFydGl0aW9uIGZvdW5kIikpOworCisJCXJlc3VsdCA9IG1vdW50X29uZSAoc3BlYywgbm9kZSwgdHlwZXMsIE5VTEwsIG9wdGlvbnMsIDAsIDApOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXVzYWdlIChzdGRlcnIsIEVYX1VTQUdFKTsKKwl9CisKKwlpZiAocmVzdWx0ID09IEVYX1NPTUVPSykKKwkJcmVzdWx0ID0gMDsKKworCWZzcHJvYmVfZXhpdCgpOworCisJZXhpdCAocmVzdWx0KTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L21vdW50X2NvbnN0YW50cy5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbW91bnRfY29uc3RhbnRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE2ODZmMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L21vdW50X2NvbnN0YW50cy5oCkBAIC0wLDAgKzEsNzMgQEAKKyNpZm5kZWYgTVNfUkRPTkxZCisjZGVmaW5lIE1TX1JET05MWQkgMQkvKiBNb3VudCByZWFkLW9ubHkgKi8KKyNlbmRpZgorI2lmbmRlZiBNU19OT1NVSUQKKyNkZWZpbmUgTVNfTk9TVUlECSAyCS8qIElnbm9yZSBzdWlkIGFuZCBzZ2lkIGJpdHMgKi8KKyNlbmRpZgorI2lmbmRlZiBNU19OT0RFVgorI2RlZmluZSBNU19OT0RFVgkgNAkvKiBEaXNhbGxvdyBhY2Nlc3MgdG8gZGV2aWNlIHNwZWNpYWwgZmlsZXMgKi8KKyNlbmRpZgorI2lmbmRlZiBNU19OT0VYRUMKKyNkZWZpbmUgTVNfTk9FWEVDCSA4CS8qIERpc2FsbG93IHByb2dyYW0gZXhlY3V0aW9uICovCisjZW5kaWYKKyNpZm5kZWYgTVNfU1lOQ0hST05PVVMKKyNkZWZpbmUgTVNfU1lOQ0hST05PVVMJMTYJLyogV3JpdGVzIGFyZSBzeW5jZWQgYXQgb25jZSAqLworI2VuZGlmCisjaWZuZGVmIE1TX1JFTU9VTlQKKyNkZWZpbmUgTVNfUkVNT1VOVAkzMgkvKiBBbHRlciBmbGFncyBvZiBhIG1vdW50ZWQgRlMgKi8KKyNlbmRpZgorI2lmbmRlZiBNU19NQU5ETE9DSworI2RlZmluZSBNU19NQU5ETE9DSwk2NAkvKiBBbGxvdyBtYW5kYXRvcnkgbG9ja3Mgb24gYW4gRlMgKi8KKyNlbmRpZgorI2lmbmRlZiBNU19ESVJTWU5DCisjZGVmaW5lIE1TX0RJUlNZTkMJMTI4CS8qIERpcmVjdG9yeSBtb2RpZmljYXRpb25zIGFyZSBzeW5jaHJvbm91cyAqLworI2VuZGlmCisjaWZuZGVmIE1TX05PQVRJTUUKKyNkZWZpbmUgTVNfTk9BVElNRQkweDQwMAkvKiAxMDI0OiBEbyBub3QgdXBkYXRlIGFjY2VzcyB0aW1lcy4gKi8KKyNlbmRpZgorI2lmbmRlZiBNU19OT0RJUkFUSU1FCisjZGVmaW5lIE1TX05PRElSQVRJTUUgICAweDgwMAkvKiAyMDQ4OiBEb24ndCB1cGRhdGUgZGlyZWN0b3J5IGFjY2VzcyB0aW1lcyAqLworI2VuZGlmCisjaWZuZGVmIE1TX0JJTkQKKyNkZWZpbmUJTVNfQklORAkJMHgxMDAwCS8qIDQwOTY6IE1vdW50IGV4aXN0aW5nIHRyZWUgYWxzbyBlbHNld2hlcmUgKi8KKyNlbmRpZgorI2lmbmRlZiBNU19NT1ZFCisjZGVmaW5lIE1TX01PVkUJCTB4MjAwMAkvKiA4MTkyOiBBdG9taWNhbGx5IG1vdmUgdHJlZSAqLworI2VuZGlmCisjaWZuZGVmIE1TX1JFQworI2RlZmluZSBNU19SRUMJCTB4NDAwMAkvKiAxNjM4NDogUmVjdXJzaXZlIGxvb3BiYWNrICovCisjZW5kaWYKKyNpZm5kZWYgTVNfVkVSQk9TRQorI2RlZmluZSBNU19WRVJCT1NFCTB4ODAwMAkvKiAzMjc2OCAqLworI2VuZGlmCisjaWZuZGVmIE1TX1JFTEFUSU1FCisjZGVmaW5lIE1TX1JFTEFUSU1FCTB4MjAwMDAwIC8qIDIwMDAwMDogVXBkYXRlIGFjY2VzcyB0aW1lcyByZWxhdGl2ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIG10aW1lL2N0aW1lICovCisjZW5kaWYKKyNpZm5kZWYgTVNfVU5CSU5EQUJMRQorI2RlZmluZSBNU19VTkJJTkRBQkxFCSgxPDwxNykJLyogMTMxMDcyIHVuYmluZGFibGUqLworI2VuZGlmCisjaWZuZGVmIE1TX1BSSVZBVEUKKyNkZWZpbmUgTVNfUFJJVkFURQkoMTw8MTgpCS8qIDI2MjE0NCBQcml2YXRlKi8KKyNlbmRpZgorI2lmbmRlZiBNU19TTEFWRQorI2RlZmluZSBNU19TTEFWRQkoMTw8MTkpCS8qIDUyNDI4OCBTbGF2ZSovCisjZW5kaWYKKyNpZm5kZWYgTVNfU0hBUkVECisjZGVmaW5lIE1TX1NIQVJFRAkoMTw8MjApCS8qIDEwNDg1NzYgU2hhcmVkKi8KKyNlbmRpZgorI2lmbmRlZiBNU19JX1ZFUlNJT04KKyNkZWZpbmUgTVNfSV9WRVJTSU9OCSgxPDwyMykJLyogdXBkYXRlIGlub2RlIElfdmVyc2lvbiBmaWVsZCAqLworI2VuZGlmCisjaWZuZGVmIE1TX1NUUklDVEFUSU1FCisjZGVmaW5lIE1TX1NUUklDVEFUSU1FCSgxPDwyNCkgLyogc3RyaWN0IGF0aW1lIHNlbWFudGljcyAqLworI2VuZGlmCisvKgorICogTWFnaWMgbW91bnQgZmxhZyBudW1iZXIuIEhhZCB0byBiZSBvci1lZCB0byB0aGUgZmxhZyB2YWx1ZXMuCisgKi8KKyNpZm5kZWYgTVNfTUdDX1ZBTAorI2RlZmluZSBNU19NR0NfVkFMIDB4QzBFRDAwMDAJLyogbWFnaWMgZmxhZyBudW1iZXIgdG8gaW5kaWNhdGUgIm5ldyIgZmxhZ3MgKi8KKyNlbmRpZgorI2lmbmRlZiBNU19NR0NfTVNLCisjZGVmaW5lIE1TX01HQ19NU0sgMHhmZmZmMDAwMAkvKiBtYWdpYyBmbGFnIG51bWJlciBtYXNrICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L21vdW50X21udGVudC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbW91bnRfbW50ZW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI2MjNmZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L21vdW50X21udGVudC5jCkBAIC0wLDAgKzEsMjIxIEBACisvKiBQcml2YXRlIHZlcnNpb24gb2YgdGhlIGxpYmMgKm1udGVudCgpIHJvdXRpbmVzLiAqLworLyogTm90ZSBzbGlnaHRseSBkaWZmZXJlbnQgcHJvdG90eXBlcy4gKi8KKworLyogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgKiAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CQkvKiBmb3IgaW5kZXggKi8KKyNpbmNsdWRlIDxjdHlwZS5oPgkJLyogZm9yIGlzZGlnaXQgKi8KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgkJLyogZm9yIHVtYXNrICovCisjaW5jbHVkZSAibW91bnRfbW50ZW50LmgiCisjaW5jbHVkZSAic3VuZHJpZXMuaCIJCS8qIGZvciB4bWFsbG9jICovCisjaW5jbHVkZSAibmxzLmgiCisKKy8qIFVuZm9ydHVuYXRlbHkgdGhlIGNsYXNzaWNhbCBVbml4IC9ldGMvbXRhYiBhbmQgL2V0Yy9mc3RhYgorICAgZG8gbm90IGhhbmRsZSBkaXJlY3RvcnkgbmFtZXMgY29udGFpbmluZyBzcGFjZXMuCisgICBIZXJlIHdlIG1hbmdsZSB0aGVtLCByZXBsYWNpbmcgYSBzcGFjZSBieSBcMDQwLgorICAgV2hhdCBkbyBvdGhlciBVbmljZXMgZG8/ICovCisKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIG5lZWRfZXNjYXBpbmdbXSA9IHsgJyAnLCAnXHQnLCAnXG4nLCAnXFwnIH07CisKK3N0YXRpYyBjaGFyICoKK21hbmdsZShjb25zdCBjaGFyICpzKSB7CisJY2hhciAqc3MsICpzcDsKKwlpbnQgbjsKKworCW4gPSBzdHJsZW4ocyk7CisJc3MgPSBzcCA9IHhtYWxsb2MoNCpuKzEpOworCXdoaWxlKDEpIHsKKwkJZm9yIChuID0gMDsgbiA8IHNpemVvZihuZWVkX2VzY2FwaW5nKTsgbisrKSB7CisJCQlpZiAoKnMgPT0gbmVlZF9lc2NhcGluZ1tuXSkgeworCQkJCSpzcCsrID0gJ1xcJzsKKwkJCQkqc3ArKyA9ICcwJyArICgoKnMgJiAwMzAwKSA+PiA2KTsKKwkJCQkqc3ArKyA9ICcwJyArICgoKnMgJiAwNzApID4+IDMpOworCQkJCSpzcCsrID0gJzAnICsgKCpzICYgMDcpOworCQkJCWdvdG8gbmV4dDsKKwkJCX0KKwkJfQorCQkqc3ArKyA9ICpzOworCQlpZiAoKnMgPT0gMCkKKwkJCWJyZWFrOworCW5leHQ6CisJCXMrKzsKKwl9CisJcmV0dXJuIHNzOworfQorCitzdGF0aWMgaW50Citpc19zcGFjZV9vcl90YWIgKGNoYXIgYykgeworCXJldHVybiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnKTsKK30KKworc3RhdGljIGNoYXIgKgorc2tpcF9zcGFjZXMoY2hhciAqcykgeworCXdoaWxlIChpc19zcGFjZV9vcl90YWIoKnMpKQorCQlzKys7CisJcmV0dXJuIHM7Cit9CisKK3N0YXRpYyBjaGFyICoKK3NraXBfbm9uc3BhY2VzKGNoYXIgKnMpIHsKKwl3aGlsZSAoKnMgJiYgIWlzX3NwYWNlX29yX3RhYigqcykpCisJCXMrKzsKKwlyZXR1cm4gczsKK30KKworI2RlZmluZSBpc29jdGFsKGEpICgoKGEpICYgfjcpID09ICcwJykKKworLyogcmV0dXJucyBtYWxsb2NlZCBwb2ludGVyIC0gbm8gbW9yZSBzdHJkdXAgcmVxdWlyZWQgKi8KK3N0YXRpYyBjaGFyICoKK3VubWFuZ2xlKGNoYXIgKnMpIHsKKwljaGFyICpyZXQsICpzcywgKnNwOworCisJc3MgPSBza2lwX25vbnNwYWNlcyhzKTsKKwlyZXQgPSBzcCA9IHhtYWxsb2Moc3MtcysxKTsKKwl3aGlsZShzICE9IHNzKSB7CisJCWlmICgqcyA9PSAnXFwnICYmIGlzb2N0YWwoc1sxXSkgJiYgaXNvY3RhbChzWzJdKSAmJiBpc29jdGFsKHNbM10pKSB7CisJCQkqc3ArKyA9IDY0KihzWzFdICYgNykgKyA4KihzWzJdICYgNykgKyAoc1szXSAmIDcpOworCQkJcyArPSA0OworCQl9IGVsc2UKKwkJCSpzcCsrID0gKnMrKzsKKwl9CisJKnNwID0gMDsKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogZnN0YXQnaW5nIHRoZSBmaWxlIGFuZCBhbGxvY2F0aW5nIGEgYnVmZmVyIGhvbGRpbmcgYWxsIG9mIGl0CisgKiBtYXkgYmUgYSBiYWQgaWRlYTogaWYgdGhlIGZpbGUgaXMgL3Byb2MvbW91bnRzLCB0aGUgc3RhdAorICogcmV0dXJucyAwLgorICogKE9uIHRoZSBvdGhlciBoYW5kLCBtYW5nbGluZyBhbmQgdW5tYW5nbGluZyBpcyBtZWFuaW5nbGVzcworICogIGZvciAvcHJvYy9tb3VudHMuKQorICovCisKK21udEZJTEUgKgorbXlfc2V0bW50ZW50IChjb25zdCBjaGFyICpmaWxlLCBjaGFyICptb2RlKSB7CisJbW50RklMRSAqbWZwID0geG1hbGxvYyhzaXplb2YoKm1mcCkpOworCW1vZGVfdCBvbGRfdW1hc2sgPSB1bWFzaygwNzcpOworCisJbWZwLT5tbnRlbnRfZnAgPSBmb3BlbihmaWxlLCBtb2RlKTsKKwl1bWFzayhvbGRfdW1hc2spOworCW1mcC0+bW50ZW50X2ZpbGUgPSB4c3RyZHVwKGZpbGUpOworCW1mcC0+bW50ZW50X2VycnMgPSAobWZwLT5tbnRlbnRfZnAgPT0gTlVMTCk7CisJbWZwLT5tbnRlbnRfc29mdGVycnMgPSAwOworCW1mcC0+bW50ZW50X2xpbmVubyA9IDA7CisJcmV0dXJuIG1mcDsKK30KKwordm9pZAorbXlfZW5kbW50ZW50IChtbnRGSUxFICptZnApIHsKKwlpZiAobWZwKSB7CisJCWlmIChtZnAtPm1udGVudF9mcCkKKwkJCWZjbG9zZShtZnAtPm1udGVudF9mcCk7CisJCWZyZWUobWZwLT5tbnRlbnRfZmlsZSk7CisJCWZyZWUobWZwKTsKKwl9Cit9CisKK2ludAorbXlfYWRkbW50ZW50IChtbnRGSUxFICptZnAsIHN0cnVjdCBteV9tbnRlbnQgKm1udCkgeworCWNoYXIgKm0xLCAqbTIsICptMywgKm00OworCWludCByZXM7CisKKwlpZiAoZnNlZWsgKG1mcC0+bW50ZW50X2ZwLCAwLCBTRUVLX0VORCkpCisJCXJldHVybiAxOwkJCS8qIGZhaWx1cmUgKi8KKworCW0xID0gbWFuZ2xlKG1udC0+bW50X2ZzbmFtZSk7CisJbTIgPSBtYW5nbGUobW50LT5tbnRfZGlyKTsKKwltMyA9IG1hbmdsZShtbnQtPm1udF90eXBlKTsKKwltNCA9IG1hbmdsZShtbnQtPm1udF9vcHRzKTsKKworCXJlcyA9IGZwcmludGYgKG1mcC0+bW50ZW50X2ZwLCAiJXMgJXMgJXMgJXMgJWQgJWRcbiIsCisJCSAgICAgICBtMSwgbTIsIG0zLCBtNCwgbW50LT5tbnRfZnJlcSwgbW50LT5tbnRfcGFzc25vKTsKKworCWZyZWUobTEpOworCWZyZWUobTIpOworCWZyZWUobTMpOworCWZyZWUobTQpOworCXJldHVybiAocmVzIDwgMCkgPyAxIDogMDsKK30KKworLyogUmVhZCB0aGUgbmV4dCBlbnRyeSBmcm9tIHRoZSBmaWxlIGZwLiBTdG9wIHJlYWRpbmcgYXQgYW4gaW5jb3JyZWN0IGVudHJ5LiAqLworc3RydWN0IG15X21udGVudCAqCitteV9nZXRtbnRlbnQgKG1udEZJTEUgKm1mcCkgeworCXN0YXRpYyBjaGFyIGJ1Zls0MDk2XTsKKwlzdGF0aWMgc3RydWN0IG15X21udGVudCBtZTsKKwljaGFyICpzOworCisgYWdhaW46CisJaWYgKG1mcC0+bW50ZW50X2VycnMgfHwgbWZwLT5tbnRlbnRfc29mdGVycnMgPj0gRVJSX01BWCkKKwkJcmV0dXJuIE5VTEw7CisKKwkvKiByZWFkIHRoZSBuZXh0IG5vbi1ibGFuayBub24tY29tbWVudCBsaW5lICovCisJZG8geworCQlpZiAoZmdldHMgKGJ1Ziwgc2l6ZW9mKGJ1ZiksIG1mcC0+bW50ZW50X2ZwKSA9PSBOVUxMKQorCQkJcmV0dXJuIE5VTEw7CisKKwkJbWZwLT5tbnRlbnRfbGluZW5vKys7CisJCXMgPSBzdHJjaHIgKGJ1ZiwgJ1xuJyk7CisJCWlmIChzID09IE5VTEwpIHsKKwkJCS8qIE1pc3NpbmcgZmluYWwgbmV3bGluZT8gIE90aGVyd2lzZSBleHRyZW1lbHkgKi8KKwkJCS8qIGxvbmcgbGluZSAtIGFzc3VtZSBmaWxlIHdhcyBjb3JydXB0ZWQgKi8KKwkJCWlmIChmZW9mKG1mcC0+bW50ZW50X2ZwKSkgeworCQkJCWZwcmludGYoc3RkZXJyLCBfKCJbbW50ZW50XTogd2FybmluZzogbm8gZmluYWwgIgorCQkJCQkibmV3bGluZSBhdCB0aGUgZW5kIG9mICVzXG4iKSwKKwkJCQkJbWZwLT5tbnRlbnRfZmlsZSk7CisJCQkJcyA9IHN0cmNociAoYnVmLCAwKTsKKwkJCX0gZWxzZSB7CisJCQkJbWZwLT5tbnRlbnRfZXJycyA9IDE7CisJCQkJZ290byBlcnI7CisJCQl9CisJCX0KKwkJKnMgPSAwOworCQlpZiAoLS1zID49IGJ1ZiAmJiAqcyA9PSAnXHInKQorCQkJKnMgPSAwOworCQlzID0gc2tpcF9zcGFjZXMoYnVmKTsKKwl9IHdoaWxlICgqcyA9PSAnXDAnIHx8ICpzID09ICcjJyk7CisKKwltZS5tbnRfZnNuYW1lID0gdW5tYW5nbGUocyk7CisJcyA9IHNraXBfbm9uc3BhY2VzKHMpOworCXMgPSBza2lwX3NwYWNlcyhzKTsKKwltZS5tbnRfZGlyID0gdW5tYW5nbGUocyk7CisJcyA9IHNraXBfbm9uc3BhY2VzKHMpOworCXMgPSBza2lwX3NwYWNlcyhzKTsKKwltZS5tbnRfdHlwZSA9IHVubWFuZ2xlKHMpOworCXMgPSBza2lwX25vbnNwYWNlcyhzKTsKKwlzID0gc2tpcF9zcGFjZXMocyk7CisJbWUubW50X29wdHMgPSB1bm1hbmdsZShzKTsKKwlzID0gc2tpcF9ub25zcGFjZXMocyk7CisJcyA9IHNraXBfc3BhY2VzKHMpOworCisJaWYgKGlzZGlnaXQoKnMpKSB7CisJCW1lLm1udF9mcmVxID0gYXRvaShzKTsKKwkJd2hpbGUoaXNkaWdpdCgqcykpIHMrKzsKKwl9IGVsc2UKKwkJbWUubW50X2ZyZXEgPSAwOworCWlmKCpzICYmICFpc19zcGFjZV9vcl90YWIoKnMpKQorCQlnb3RvIGVycjsKKworCXMgPSBza2lwX3NwYWNlcyhzKTsKKwlpZihpc2RpZ2l0KCpzKSkgeworCQltZS5tbnRfcGFzc25vID0gYXRvaShzKTsKKwkJd2hpbGUoaXNkaWdpdCgqcykpIHMrKzsKKwl9IGVsc2UKKwkJbWUubW50X3Bhc3NubyA9IDA7CisJaWYoKnMgJiYgIWlzX3NwYWNlX29yX3RhYigqcykpCisJCWdvdG8gZXJyOworCisJLyogYWxsb3cgbW9yZSBzdHVmZiwgZS5nLiBjb21tZW50cywgb24gdGhpcyBsaW5lICovCisKKwlyZXR1cm4gJm1lOworCisgZXJyOgorCW1mcC0+bW50ZW50X3NvZnRlcnJzKys7CisJZnByaW50ZihzdGRlcnIsIF8oIlttbnRlbnRdOiBsaW5lICVkIGluICVzIGlzIGJhZCVzXG4iKSwKKwkJbWZwLT5tbnRlbnRfbGluZW5vLCBtZnAtPm1udGVudF9maWxlLAorCQkobWZwLT5tbnRlbnRfZXJycyB8fCBtZnAtPm1udGVudF9zb2Z0ZXJycyA+PSBFUlJfTUFYKSA/CisJCV8oIjsgcmVzdCBvZiBmaWxlIGlnbm9yZWQiKSA6ICIiKTsKKwlnb3RvIGFnYWluOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbW91bnRfbW50ZW50LmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9tb3VudF9tbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjc0MjE1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvbW91bnRfbW50ZW50LmgKQEAgLTAsMCArMSwyOCBAQAorI2lmbmRlZiBNT1VOVF9NTlRFTlRfSAorI2RlZmluZSBNT1VOVF9NTlRFTlRfSAorCitzdHJ1Y3QgbXlfbW50ZW50IHsKKwljb25zdCBjaGFyICptbnRfZnNuYW1lOworCWNvbnN0IGNoYXIgKm1udF9kaXI7CisJY29uc3QgY2hhciAqbW50X3R5cGU7CisJY29uc3QgY2hhciAqbW50X29wdHM7CisJaW50IG1udF9mcmVxOworCWludCBtbnRfcGFzc25vOworfTsKKworI2RlZmluZSBFUlJfTUFYIDUKKwordHlwZWRlZiBzdHJ1Y3QgbW50RklMRXN0cnVjdCB7CisJRklMRSAqbW50ZW50X2ZwOworCWNoYXIgKm1udGVudF9maWxlOworCWludCBtbnRlbnRfbGluZW5vOworCWludCBtbnRlbnRfZXJyczsKKwlpbnQgbW50ZW50X3NvZnRlcnJzOworfSBtbnRGSUxFOworCittbnRGSUxFICpteV9zZXRtbnRlbnQgKGNvbnN0IGNoYXIgKmZpbGUsIGNoYXIgKm1vZGUpOwordm9pZCBteV9lbmRtbnRlbnQgKG1udEZJTEUgKm1mcCk7CitpbnQgbXlfYWRkbW50ZW50IChtbnRGSUxFICptZnAsIHN0cnVjdCBteV9tbnRlbnQgKm1udCk7CitzdHJ1Y3QgbXlfbW50ZW50ICpteV9nZXRtbnRlbnQgKG1udEZJTEUgKm1mcCk7CisKKyNlbmRpZiAvKiBNT1VOVF9NTlRFTlRfSCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvc3VuZHJpZXMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3N1bmRyaWVzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ5ZWI4OAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3N1bmRyaWVzLmMKQEAgLTAsMCArMSwyOTkgQEAKKy8qCisgKiBTdXBwb3J0IGZ1bmN0aW9ucy4gIEV4cG9ydGVkIGZ1bmN0aW9ucyBhcmUgcHJvdG90eXBlZCBpbiBzdW5kcmllcy5oLgorICoKKyAqIGFkZGVkIGZjbnRsIGxvY2tpbmcgYnkgS2pldGlsIFQuIChramV0aWxob0BtYXRoLnVpby5ubykgLSBhZWIsIDk1MDkyNworICoKKyAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqLworI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bW50ZW50Lmg+CQkvKiBmb3IgTU5UVFlQRV9TV0FQICovCisKKyNpbmNsdWRlICJjYW5vbmljYWxpemUuaCIKKworI2luY2x1ZGUgImZzdGFiLmgiCisjaW5jbHVkZSAic3VuZHJpZXMuaCIKKyNpbmNsdWRlICJ4bWFsbG9jLmgiCisjaW5jbHVkZSAibmxzLmgiCisKK2ludCBtb3VudF9xdWlldDsKK2ludCB2ZXJib3NlOworaW50IG5vY2Fub25pY2FsaXplOworY2hhciAqcHJvZ25hbWU7CisKK2NoYXIgKgoreHN0cm5kdXAgKGNvbnN0IGNoYXIgKnMsIGludCBuKSB7CisgICAgIGNoYXIgKnQ7CisKKyAgICAgaWYgKHMgPT0gTlVMTCkKKwkgIGRpZSAoRVhfU09GVFdBUkUsIF8oImJ1ZyBpbiB4c3RybmR1cCBjYWxsIikpOworCisgICAgIHQgPSB4bWFsbG9jKG4rMSk7CisgICAgIHN0cm5jcHkodCxzLG4pOworICAgICB0W25dID0gMDsKKworICAgICByZXR1cm4gdDsKK30KKworLyogcmVhbGxvY2F0ZXMgaXRzIGZpcnN0IGFyZyAtIHR5cGljYWwgdXNlOiBzID0geHN0cmNvbmNhdDMocyx0LHUpOyAqLworY2hhciAqCit4c3RyY29uY2F0MyAoY2hhciAqcywgY29uc3QgY2hhciAqdCwgY29uc3QgY2hhciAqdSkgeworICAgICBzaXplX3QgbGVuID0gMDsKKworICAgICBsZW4gPSAocyA/IHN0cmxlbihzKSA6IDApICsgKHQgPyBzdHJsZW4odCkgOiAwKSArICh1ID8gc3RybGVuKHUpIDogMCk7CisKKyAgICAgaWYgKCFsZW4pCisJICAgICByZXR1cm4gTlVMTDsKKyAgICAgaWYgKCFzKSB7CisJICAgICBzID0geG1hbGxvYyhsZW4gKyAxKTsKKwkgICAgICpzID0gJ1wwJzsKKyAgICAgfQorICAgICBlbHNlCisJICAgICBzID0geHJlYWxsb2MocywgbGVuICsgMSk7CisgICAgIGlmICh0KQorCSAgICAgc3RyY2F0KHMsIHQpOworICAgICBpZiAodSkKKwkgICAgIHN0cmNhdChzLCB1KTsKKyAgICAgcmV0dXJuIHM7Cit9CisKKy8qIGZyZWVzIGl0cyBmaXJzdCBhcmcgLSB0eXBpY2FsIHVzZTogcyA9IHhzdHJjb25jYXQ0KHMsdCx1LHYpOyAqLworY2hhciAqCit4c3RyY29uY2F0NCAoY2hhciAqcywgY29uc3QgY2hhciAqdCwgY29uc3QgY2hhciAqdSwgY29uc3QgY2hhciAqdikgeworICAgICBzaXplX3QgbGVuID0gMDsKKworICAgICBsZW4gPSAocyA/IHN0cmxlbihzKSA6IDApICsgKHQgPyBzdHJsZW4odCkgOiAwKSArCisJCSh1ID8gc3RybGVuKHUpIDogMCkgKyAodiA/IHN0cmxlbih2KSA6IDApOworCisgICAgIGlmICghbGVuKQorCSAgICAgcmV0dXJuIE5VTEw7CisgICAgIGlmICghcykgeworCSAgICAgcyA9IHhtYWxsb2MobGVuICsgMSk7CisJICAgICAqcyA9ICdcMCc7CisgICAgIH0KKyAgICAgZWxzZQorCSAgICAgcyA9IHhyZWFsbG9jKHMsIGxlbiArIDEpOworICAgICBpZiAodCkKKwkgICAgIHN0cmNhdChzLCB0KTsKKyAgICAgaWYgKHUpCisJICAgICBzdHJjYXQocywgdSk7CisgICAgIGlmICh2KQorCSAgICAgc3RyY2F0KHMsIHYpOworICAgICByZXR1cm4gczsKKworCit9CisKKy8qIENhbGwgdGhpcyB3aXRoIFNJR19CTE9DSyB0byBibG9jayBhbmQgU0lHX1VOQkxPQ0sgdG8gdW5ibG9jay4gICovCit2b2lkCitibG9ja19zaWduYWxzIChpbnQgaG93KSB7CisgICAgIHNpZ3NldF90IHNpZ3M7CisKKyAgICAgc2lnZmlsbHNldCAoJnNpZ3MpOworICAgICBzaWdkZWxzZXQoJnNpZ3MsIFNJR1RSQVApOworICAgICBzaWdkZWxzZXQoJnNpZ3MsIFNJR1NFR1YpOworICAgICBzaWdwcm9jbWFzayAoaG93LCAmc2lncywgKHNpZ3NldF90ICopIDApOworfQorCisKKy8qIE5vbi1mYXRhbCBlcnJvci4gIFByaW50IG1lc3NhZ2UgYW5kIHJldHVybi4gICovCisvKiAocHJpbnQgdGhlIG1lc3NhZ2UgaW4gYSBzaW5nbGUgcHJpbnRmLCBpbiBhbiBhdHRlbXB0CisgICAgdG8gYXZvaWQgbWl4aW5nIG91dHB1dCBvZiBzZXZlcmFsIHRocmVhZHMpICovCit2b2lkCitlcnJvciAoY29uc3QgY2hhciAqZm10LCAuLi4pIHsKKyAgICAgdmFfbGlzdCBhcmdzOworCisgICAgIGlmIChtb3VudF9xdWlldCkKKwkgIHJldHVybjsKKyAgICAgdmFfc3RhcnQgKGFyZ3MsIGZtdCk7CisgICAgIHZmcHJpbnRmIChzdGRlcnIsIGZtdCwgYXJncyk7CisgICAgIHZhX2VuZCAoYXJncyk7CisgICAgIGZwdXRjKCdcbicsIHN0ZGVycik7Cit9CisKKy8qIEZhdGFsIGVycm9yLiAgUHJpbnQgbWVzc2FnZSBhbmQgZXhpdC4gICovCit2b2lkCitkaWUoaW50IGVyciwgY29uc3QgY2hhciAqZm10LCAuLi4pIHsKKwl2YV9saXN0IGFyZ3M7CisKKwl2YV9zdGFydChhcmdzLCBmbXQpOworCXZmcHJpbnRmKHN0ZGVyciwgZm10LCBhcmdzKTsKKwlmcHJpbnRmKHN0ZGVyciwgIlxuIik7CisJdmFfZW5kKGFyZ3MpOworCisJZXhpdChlcnIpOworfQorCisvKiBUcnVlIGlmIGZzdHlwZXMgbWF0Y2guICBOdWxsICpUWVBFUyBtZWFucyBtYXRjaCBhbnl0aGluZywKKyAgIGV4Y2VwdCB0aGF0IHN3YXAgdHlwZXMgYWx3YXlzIHJldHVybiBmYWxzZS4gKi8KKy8qIEFjY2VwdCBub25mcyxwcm9jLGRldnB0cyBhbmQgbm9uZnMsbm9wcm9jLG5vZGV2cHRzCisgICB3aXRoIHRoZSBzYW1lIG1lYW5pbmcuICovCitpbnQKK21hdGNoaW5nX3R5cGUgKGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKnR5cGVzKSB7CisgICAgIGludCBubzsJCQkvKiBuZWdhdGVkIHR5cGVzIGxpc3QgKi8KKyAgICAgaW50IGxlbjsKKyAgICAgY29uc3QgY2hhciAqcDsKKworICAgICBpZiAoc3RyZXEgKHR5cGUsIE1OVFRZUEVfU1dBUCkpCisJICByZXR1cm4gMDsKKyAgICAgaWYgKHR5cGVzID09IE5VTEwpCisJICByZXR1cm4gMTsKKworICAgICBubyA9IDA7CisgICAgIGlmICghc3RybmNtcCh0eXBlcywgIm5vIiwgMikpIHsKKwkgIG5vID0gMTsKKwkgIHR5cGVzICs9IDI7CisgICAgIH0KKworICAgICAvKiBEb2VzIHR5cGUgb2NjdXIgaW4gdHlwZXMsIHNlcGFyYXRlZCBieSBjb21tYXM/ICovCisgICAgIGxlbiA9IHN0cmxlbih0eXBlKTsKKyAgICAgcCA9IHR5cGVzOworICAgICB3aGlsZSgxKSB7CisJICAgICBpZiAoIXN0cm5jbXAocCwgIm5vIiwgMikgJiYgIXN0cm5jbXAocCsyLCB0eXBlLCBsZW4pICYmCisJCSAocFtsZW4rMl0gPT0gMCB8fCBwW2xlbisyXSA9PSAnLCcpKQorCQkgICAgIHJldHVybiAwOworCSAgICAgaWYgKHN0cm5jbXAocCwgdHlwZSwgbGVuKSA9PSAwICYmCisJCSAocFtsZW5dID09IDAgfHwgcFtsZW5dID09ICcsJykpCisJCSAgICAgcmV0dXJuICFubzsKKwkgICAgIHAgPSBzdHJjaHIocCwnLCcpOworCSAgICAgaWYgKCFwKQorCQkgICAgIGJyZWFrOworCSAgICAgcCsrOworICAgICB9CisgICAgIHJldHVybiBubzsKK30KKworLyogUmV0dXJucyAxIGlmIG5lZWRsZSBmb3VuZCBvciBub25lZWRsZSBub3QgZm91bmQgaW4gaGF5c3RhY2sKKyAqIE90aGVyd2lzZSByZXR1cm5zIDAKKyAqLworc3RhdGljIGludAorY2hlY2tfb3B0aW9uKGNvbnN0IGNoYXIgKmhheXN0YWNrLCBjb25zdCBjaGFyICpuZWVkbGUpIHsKKyAgICAgY29uc3QgY2hhciAqcCwgKnI7CisgICAgIGludCBsZW4sIG5lZWRsZV9sZW4sIHRoaXNfbGVuOworICAgICBpbnQgbm87CisKKyAgICAgbm8gPSAwOworICAgICBpZiAoIXN0cm5jbXAobmVlZGxlLCAibm8iLCAyKSkgeworCSAgbm8gPSAxOworCSAgbmVlZGxlICs9IDI7CisgICAgIH0KKyAgICAgbmVlZGxlX2xlbiA9IHN0cmxlbihuZWVkbGUpOworICAgICBsZW4gPSBzdHJsZW4oaGF5c3RhY2spOworCisgICAgIGZvciAocCA9IGhheXN0YWNrOyBwIDwgaGF5c3RhY2srbGVuOyBwKyspIHsKKwkgIHIgPSBzdHJjaHIocCwgJywnKTsKKwkgIGlmIChyKSB7CisJICAgICAgIHRoaXNfbGVuID0gci1wOworCSAgfSBlbHNlIHsKKwkgICAgICAgdGhpc19sZW4gPSBzdHJsZW4ocCk7CisJICB9CisJICBpZiAodGhpc19sZW4gIT0gbmVlZGxlX2xlbikgeworCSAgICAgICBwICs9IHRoaXNfbGVuOworCSAgICAgICBjb250aW51ZTsKKwkgIH0KKwkgIGlmIChzdHJuY21wKHAsIG5lZWRsZSwgdGhpc19sZW4pID09IDApCisJICAgICAgIHJldHVybiAhbm87IC8qIGZvbyBvciBub2ZvbyB3YXMgZm91bmQgKi8KKwkgIHAgKz0gdGhpc19sZW47CisgICAgIH0KKworICAgICByZXR1cm4gbm87ICAvKiBmb28gb3Igbm9mb28gd2FzIG5vdCBmb3VuZCAqLworfQorCisKKy8qIFJldHVybnMgMSBpZiBlYWNoIG9mIHRoZSB0ZXN0X29wdHMgb3B0aW9ucyBhZ3JlZXMgd2l0aCB0aGUgZW50aXJlCisgKiBsaXN0IG9mIG9wdGlvbnMuCisgKiBSZXR1cm5zIDAgaWYgYW55IG5vb3B0IGlzIGZvdW5kIGluIHRlc3Rfb3B0cyBhbmQgb3B0IGlzIGZvdW5kIGluIG9wdGlvbnMuCisgKiBSZXR1cm5zIDAgaWYgYW55IG9wdCBpcyBmb3VuZCBpbiB0ZXN0X29wdHMgYnV0IGlzIG5vdCBmb3VuZCBpbiBvcHRpb25zLgorICogVW5saWtlIGZzIHR5cGUgbWF0Y2hpbmcsIG5vbmV0ZGV2LHVzZXIgYW5kIG5vbmV0ZGV2LG5vdXNlciBoYXZlCisgKiBESUZGRVJFTlQgbWVhbmluZ3M7IGVhY2ggb3B0aW9uIGlzIG1hdGNoZWQgZXhwbGljaXRseSBhcyBzcGVjaWZpZWQuCisgKi8KK2ludAorbWF0Y2hpbmdfb3B0cyAoY29uc3QgY2hhciAqb3B0aW9ucywgY29uc3QgY2hhciAqdGVzdF9vcHRzKSB7CisgICAgIGNvbnN0IGNoYXIgKnAsICpyOworICAgICBjaGFyICpxOworICAgICBpbnQgbGVuLCB0aGlzX2xlbjsKKworICAgICBpZiAodGVzdF9vcHRzID09IE5VTEwpCisJICByZXR1cm4gMTsKKworICAgICBsZW4gPSBzdHJsZW4odGVzdF9vcHRzKTsKKyAgICAgcSA9IGFsbG9jYShsZW4rMSk7CisgICAgIGlmIChxID09IE5VTEwpCisgICAgICAgICAgZGllIChFWF9TWVNFUlIsIF8oIm5vdCBlbm91Z2ggbWVtb3J5IikpOworICAgICAKKyAgICAgZm9yIChwID0gdGVzdF9vcHRzOyBwIDwgdGVzdF9vcHRzK2xlbjsgcCsrKSB7CisJICByID0gc3RyY2hyKHAsICcsJyk7CisJICBpZiAocikgeworCSAgICAgICB0aGlzX2xlbiA9IHItcDsKKwkgIH0gZWxzZSB7CisJICAgICAgIHRoaXNfbGVuID0gc3RybGVuKHApOworCSAgfQorCSAgaWYgKCF0aGlzX2xlbikgY29udGludWU7IC8qIGlmIHR3byAnLCcgYXBwZWFyIGluIGEgcm93ICovCisJICBzdHJuY3B5KHEsIHAsIHRoaXNfbGVuKTsKKwkgIHFbdGhpc19sZW5dID0gJ1wwJzsKKwkgIGlmICghY2hlY2tfb3B0aW9uKG9wdGlvbnMsIHEpKQorCSAgICAgICByZXR1cm4gMDsgLyogYW55IG1hdGNoIGZhaWx1cmUgbWVhbnMgZmFpbHVyZSAqLworCSAgcCArPSB0aGlzX2xlbjsKKyAgICAgfQorCisgICAgIC8qIG5vIG1hdGNoIGZhaWx1cmVzIGluIGxpc3QgbWVhbnMgc3VjY2VzcyAqLworICAgICByZXR1cm4gMTsKK30KKworaW50Citpc19wc2V1ZG9fZnMoY29uc3QgY2hhciAqdHlwZSkKK3sKKwlpZiAodHlwZSA9PSBOVUxMIHx8ICp0eXBlID09ICcvJykKKwkJcmV0dXJuIDA7CisJaWYgKHN0cmVxKHR5cGUsICJub25lIikgfHwKKwkgICAgc3RyZXEodHlwZSwgInByb2MiKSB8fAorCSAgICBzdHJlcSh0eXBlLCAidG1wZnMiKSB8fAorCSAgICBzdHJlcSh0eXBlLCAic3lzZnMiKSB8fAorCSAgICBzdHJlcSh0eXBlLCAidXNiZnMiKSB8fAorCSAgICBzdHJlcSh0eXBlLCAiY2dyb3VwIikgfHwKKwkgICAgc3RyZXEodHlwZSwgImNwdXNldCIpIHx8CisJICAgIHN0cmVxKHR5cGUsICJycGNfcGlwZWZzIikgfHwKKwkgICAgc3RyZXEodHlwZSwgImRldnB0cyIpKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKworLyogTWFrZSBhIGNhbm9uaWNhbCBwYXRobmFtZSBmcm9tIFBBVEguICBSZXR1cm5zIGEgZnJlc2hseSBtYWxsb2NlZCBzdHJpbmcuCisgICBJdCBpcyB1cCB0aGUgKmNhbGxlciogdG8gZW5zdXJlIHRoYXQgdGhlIFBBVEggaXMgc2Vuc2libGUuICBpLmUuCisgICBjYW5vbmljYWxpemUgKCIvZGV2L2ZkMC8uIikgcmV0dXJucyAiL2Rldi9mZDAiIGV2ZW4gdGhvdWdoIGBgL2Rldi9mZDAvLicnCisgICBpcyBub3QgYSBsZWdhbCBwYXRobmFtZSBmb3IgYGAvZGV2L2ZkMCcnLiAgQW55dGhpbmcgd2UgY2Fubm90IHBhcnNlCisgICB3ZSByZXR1cm4gdW5tb2RpZmllZC4gICAqLworY2hhciAqCitjYW5vbmljYWxpemVfc3BlYyAoY29uc3QgY2hhciAqcGF0aCkKK3sKKwljaGFyICpyZXM7CisKKwlpZiAoIXBhdGgpCisJCXJldHVybiBOVUxMOworCWlmIChub2Nhbm9uaWNhbGl6ZSB8fCBpc19wc2V1ZG9fZnMocGF0aCkpCisJCXJldHVybiB4c3RyZHVwKHBhdGgpOworCisJcmVzID0gY2Fub25pY2FsaXplX3BhdGgocGF0aCk7CisJaWYgKCFyZXMpCisJCWRpZShFWF9TWVNFUlIsIF8oIm5vdCBlbm91Z2ggbWVtb3J5IikpOworCXJldHVybiByZXM7Cit9CisKK2NoYXIgKmNhbm9uaWNhbGl6ZSAoY29uc3QgY2hhciAqcGF0aCkKK3sKKwljaGFyICpyZXM7CisKKwlpZiAoIXBhdGgpCisJCXJldHVybiBOVUxMOworCWVsc2UgaWYgKG5vY2Fub25pY2FsaXplKQorCQlyZXR1cm4geHN0cmR1cChwYXRoKTsKKworCXJlcyA9IGNhbm9uaWNhbGl6ZV9wYXRoKHBhdGgpOworCWlmICghcmVzKQorCQlkaWUoRVhfU1lTRVJSLCBfKCJub3QgZW5vdWdoIG1lbW9yeSIpKTsKKwlyZXR1cm4gcmVzOworfQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9zdW5kcmllcy5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvc3VuZHJpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjZhNDY0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvc3VuZHJpZXMuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogc3VuZHJpZXMuaAorICogU3VwcG9ydCBmdW5jdGlvbiBwcm90b3R5cGVzLiAgRnVuY3Rpb25zIGFyZSBpbiBzdW5kcmllcy5jLgorICovCisjaWZuZGVmIFNVTkRSSUVTX0gKKyNkZWZpbmUgU1VORFJJRVNfSAorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisvKiBnbG9iYWwgbW91bnQsIHVtb3VudCwgYW5kIGxvc2V0dXAgdmFyaWFibGVzICovCitleHRlcm4gaW50IG1vdW50X3F1aWV0OworZXh0ZXJuIGludCB2ZXJib3NlOworZXh0ZXJuIGludCBub2Nhbm9uaWNhbGl6ZTsKK2V4dGVybiBjaGFyICpwcm9nbmFtZTsKKworI2RlZmluZSBzdHJlcShzLCB0KQkoc3RyY21wICgocyksICh0KSkgPT0gMCkKKwordm9pZCBibG9ja19zaWduYWxzIChpbnQgaG93KTsKKwordm9pZCBlcnJvciAoY29uc3QgY2hhciAqZm10LCAuLi4pCisJX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDEsIDIpKSk7Cit2b2lkIGRpZShpbnQgZXJyLCBjb25zdCBjaGFyICpmbXQsIC4uLikKKwlfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMiwgMykpKTsKKworaW50IG1hdGNoaW5nX3R5cGUgKGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKnR5cGVzKTsKK2ludCBtYXRjaGluZ19vcHRzIChjb25zdCBjaGFyICpvcHRpb25zLCBjb25zdCBjaGFyICp0ZXN0X29wdHMpOwordm9pZCAqeG1hbGxvYyAoc2l6ZV90IHNpemUpOworY2hhciAqeHN0cmR1cCAoY29uc3QgY2hhciAqcyk7CitjaGFyICp4c3RybmR1cCAoY29uc3QgY2hhciAqcywgaW50IG4pOworY2hhciAqeHN0cmNvbmNhdDMgKGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOworY2hhciAqeHN0cmNvbmNhdDQgKGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CisKK2ludCBpc19wc2V1ZG9fZnMoY29uc3QgY2hhciAqdHlwZSk7CisKK2NoYXIgKmNhbm9uaWNhbGl6ZSAoY29uc3QgY2hhciAqcGF0aCk7CitjaGFyICpjYW5vbmljYWxpemVfc3BlYyAoY29uc3QgY2hhciAqcGF0aCk7CisKKy8qIGV4aXQgc3RhdHVzIC0gYml0cyBiZWxvdyBhcmUgT1JlZCAqLworI2RlZmluZSBFWF9VU0FHRQkxCS8qIGluY29ycmVjdCBpbnZvY2F0aW9uIG9yIHBlcm1pc3Npb24gKi8KKyNkZWZpbmUgRVhfU1lTRVJSCTIJLyogb3V0IG9mIG1lbW9yeSwgY2Fubm90IGZvcmssIC4uLiAqLworI2RlZmluZSBFWF9TT0ZUV0FSRQk0CS8qIGludGVybmFsIG1vdW50IGJ1ZyBvciB3cm9uZyB2ZXJzaW9uICovCisjZGVmaW5lIEVYX1VTRVIJCTgJLyogdXNlciBpbnRlcnJ1cHQgKi8KKyNkZWZpbmUgRVhfRklMRUlPICAgICAgMTYJLyogcHJvYmxlbXMgd3JpdGluZywgbG9ja2luZywgLi4uIG10YWIvZnN0YWIgKi8KKyNkZWZpbmUgRVhfRkFJTAkgICAgICAgMzIJLyogbW91bnQgZmFpbHVyZSAqLworI2RlZmluZSBFWF9TT01FT0sgICAgICA2NAkvKiBzb21lIG1vdW50IHN1Y2NlZWRlZCAqLworCisjZW5kaWYgLyogU1VORFJJRVNfSCAqLworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9zd2FwX2NvbnN0YW50cy5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvc3dhcF9jb25zdGFudHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2U4YjRjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvc3dhcF9jb25zdGFudHMuaApAQCAtMCwwICsxLDE1IEBACisvKgorICogSXQgaXMgdG9vIHBhaW5mdWwgdG8gZ2V0IHRoZXNlIG91dCBvZiA8bGludXgvc3dhcC5oPgorICogKHdoaWNoIGFnYWluIHJlcXVpcmVzIDxhc20vcGFnZS5oPiBldGMpLgorICogVGhlc2UgZXhpc3Qgc2luY2UgTGludXggMS4zLjIuCisgKi8KKworI2lmbmRlZiBTV0FQX0ZMQUdfUFJFRkVSCisjZGVmaW5lIFNXQVBfRkxBR19QUkVGRVIJMHg4MDAwCS8qIHNldCBpZiBzd2FwIHByaW9yaXR5IHNwZWNpZmllZCAqLworI2VuZGlmCisjaWZuZGVmIFNXQVBfRkxBR19QUklPX01BU0sKKyNkZWZpbmUgU1dBUF9GTEFHX1BSSU9fTUFTSwkweDdmZmYKKyNlbmRpZgorI2lmbmRlZiBTV0FQX0ZMQUdfUFJJT19TSElGVAorI2RlZmluZSBTV0FQX0ZMQUdfUFJJT19TSElGVAkwCisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3N3YXBvZmYuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3N3YXBvZmYuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTA2YjdlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvc3dhcG9mZi44CkBAIC0wLDAgKzEgQEAKKy5zbyBtYW44L3N3YXBvbi44CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9zd2Fwb24uOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3N3YXBvbi44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1ZmM1ZTgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9zd2Fwb24uOApAQCAtMCwwICsxLDE5MSBAQAorLlwiIENvcHlyaWdodCAoYykgMTk4MCwgMTk5MSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisuXCIgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy5cIgorLlwiIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLlwiIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLlwiIGFyZSBtZXQ6CisuXCIgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKy5cIiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisuXCIJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorLlwiCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorLlwiIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisuXCIgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisuXCIgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisuXCIKKy5cIiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorLlwiIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLlwiIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisuXCIgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisuXCIgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKy5cIiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworLlwiIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorLlwiIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisuXCIgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorLlwiIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKy5cIiBTVUNIIERBTUFHRS4KKy5cIgorLlwiICAgICBAKCMpc3dhcG9uLjgJNi4zIChCZXJrZWxleSkgMy8xNi85MQorLlwiCisuXCIgU3VuIERlYyAyNyAxMjozMTozMCAxOTkyOiBNb2RpZmllZCBieSBmYWl0aEBjcy51bmMuZWR1CisuXCIgU2F0IE1hciAgNiAyMDo0NjowMiAxOTkzOiBNb2RpZmllZCBieSBmYWl0aEBjcy51bmMuZWR1CisuXCIgU2F0IE9jdCAgOSAwOTozNTozMCAxOTkzOiBDb252ZXJ0ZWQgdG8gbWFuIGZvcm1hdCBieSBmYWl0aEBjcy51bmMuZWR1CisuXCIgU2F0IE5vdiAyNyAyMDoyMjo0MiAxOTkzOiBVcGRhdGVkIGF1dGhvcnNoaXAgaW5mb3JtYXRpb24sIGZhaXRoQGNzLnVuYy5lZHUKKy5cIiBNb24gU2VwIDI1IDE0OjEyOjM4IDE5OTU6IEFkZGVkIC12IGFuZCAtcCBpbmZvcm1hdGlvbgorLlwiIFR1ZSBBcHIgMzAgMDM6MzI6MDcgMTk5NjogQWRkZWQgc29tZSB0ZXh0IGZyb20gQS4gS29wcGVuaG9lZmVyCisuXCIKKy5USCBTV0FQT04gOCAiMjUgU2VwdGVtYmVyIDE5OTUiICJMaW51eCAxLngiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK3N3YXBvbiwgc3dhcG9mZiBcLSBlbmFibGUvZGlzYWJsZSBkZXZpY2VzIGFuZCBmaWxlcyBmb3IgcGFnaW5nIGFuZCBzd2FwcGluZworLlNIIFNZTk9QU0lTCitHZXQgaW5mbzoKKy5icgorLmluICs1CisuQiBzd2Fwb24gXC1zCisuUkIgWyBcLWggXQorLlJCIFsgXC1WIF0KKy5zcAorLmluIC01CitFbmFibGUvZGlzYWJsZToKKy5icgorLmluICs1CisuQiBzd2Fwb24KKy5SQiBbIFwtZiBdCisuUkIgWyBcLXAKKy5JUiBwcmlvcml0eSBdCisuUkIgWyBcLXYgXQorLklSIHNwZWNpYWxmaWxlIC4uLgorLmJyCisuQiBzd2Fwb2ZmCisuUkIgWyBcLXYgXQorLklSIHNwZWNpYWxmaWxlIC4uLgorLnNwCisuaW4gLTUKK0VuYWJsZS9kaXNhYmxlIGFsbDoKKy5icgorLmluICs1CisuQiBzd2Fwb24gXC1hCisuUkIgWyBcLWUgXQorLlJCIFsgXC1mIF0KKy5SQiBbIFwtdiBdCisuYnIKKy5CIHN3YXBvZmYgXC1hCisuUkIgWyBcLXYgXQorLmluIC01CisuU0ggREVTQ1JJUFRJT04KKy5CIHN3YXBvbgoraXMgdXNlZCB0byBzcGVjaWZ5IGRldmljZXMgb24gd2hpY2ggcGFnaW5nIGFuZCBzd2FwcGluZyBhcmUgdG8gdGFrZSBwbGFjZS4KKworVGhlIGRldmljZSBvciBmaWxlIHVzZWQgaXMgZ2l2ZW4gYnkgdGhlCisuSSBzcGVjaWFsZmlsZQorcGFyYW1ldGVyLiBJdCBtYXkgYmUgb2YgdGhlIGZvcm0KKy5CSSBcLUwgIiBsYWJlbCIKK29yCisuQkkgXC1VICIgdXVpZCIKK3RvIGluZGljYXRlIGEgZGV2aWNlIGJ5IGxhYmVsIG9yIHV1aWQuCisKK0NhbGxzIHRvCisuQiBzd2Fwb24KK25vcm1hbGx5IG9jY3VyIGluIHRoZSBzeXN0ZW0gYm9vdCBzY3JpcHRzIG1ha2luZyBhbGwgc3dhcCBkZXZpY2VzIGF2YWlsYWJsZSwgc28KK3RoYXQgdGhlIHBhZ2luZyBhbmQgc3dhcHBpbmcgYWN0aXZpdHkgaXMgaW50ZXJsZWF2ZWQgYWNyb3NzIHNldmVyYWwgZGV2aWNlcyBhbmQKK2ZpbGVzLgorCisuQiBzd2Fwb2ZmCitkaXNhYmxlcyBzd2FwcGluZyBvbiB0aGUgc3BlY2lmaWVkIGRldmljZXMgYW5kIGZpbGVzLgorV2hlbiB0aGUKKy5CIFwtYQorZmxhZyBpcyBnaXZlbiwgc3dhcHBpbmcgaXMgZGlzYWJsZWQgb24gYWxsIGtub3duIHN3YXAgZGV2aWNlcyBhbmQgZmlsZXMKKyhhcyBmb3VuZCBpbgorLkkgL3Byb2Mvc3dhcHMKK29yCisuSVIgL2V0Yy9mc3RhYiApLgorCisuVFAKKy5CICJcLWEsIFwtXC1hbGwiCitBbGwgZGV2aWNlcyBtYXJrZWQgYXMgYGBzd2FwJycgaW4KKy5JIC9ldGMvZnN0YWIKK2FyZSBtYWRlIGF2YWlsYWJsZSwgZXhjZXB0IGZvciB0aG9zZSB3aXRoIHRoZSBgYG5vYXV0bycnIG9wdGlvbi4KK0RldmljZXMgdGhhdCBhcmUgYWxyZWFkeSBiZWluZyB1c2VkIGFzIHN3YXAgYXJlIHNpbGVudGx5IHNraXBwZWQuCisuVFAKKy5CICJcLWUsIFwtXC1pZmV4aXN0cyIKK1NpbGVudGx5IHNraXAgZGV2aWNlcyB0aGF0IGRvIG5vdCBleGlzdC4KKy5UUAorLkIgIlwtZiwgXC1cLWZpeHBnc3oiCitSZWluaXRpYWxpemUgKGV4ZWMgL3NiaW4vbWtzd2FwKSB0aGUgc3dhcCBzcGFjZSBpZiBpdHMgcGFnZSBzaXplIGRvZXMgbm90CittYXRjaCB0aGF0IG9mIHRoZSB0aGUgY3VycmVudCBydW5uaW5nIGtlcm5lbC4KKy5CIG1rc3dhcCgyKQoraW5pdGlhbGl6ZXMgdGhlIHdob2xlIGRldmljZSBhbmQgZG9lcyBub3QgY2hlY2sgZm9yIGJhZCBibG9ja3MuCisuVFAKKy5CIFwtaCwgXC1cLWhlbHAKK1Byb3ZpZGUgaGVscC4KKy5UUAorLkIgIlwtTCBcZklsYWJlbFxmUCIKK1VzZSB0aGUgcGFydGl0aW9uIHRoYXQgaGFzIHRoZSBzcGVjaWZpZWQKKy5JUiBsYWJlbCAuCisoRm9yIHRoaXMsIGFjY2VzcyB0bworLkkgL3Byb2MvcGFydGl0aW9ucworaXMgbmVlZGVkLikKKy5UUAorLkIgIlwtcCwgXC1cLXByaW9yaXR5IFxmSXByaW9yaXR5XGZQIgorU3BlY2lmeSB0aGUgcHJpb3JpdHkgb2YgdGhlIHN3YXAgZGV2aWNlLgorLkkgcHJpb3JpdHkKK2lzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAzMjc2Ny4gSGlnaGVyIG51bWJlcnMgaW5kaWNhdGUgaGlnaGVyCitwcmlvcml0eS4gU2VlCisuQlIgc3dhcG9uICgyKQorZm9yIGEgZnVsbCBkZXNjcmlwdGlvbiBvZiBzd2FwIHByaW9yaXRpZXMuIEFkZAorLkJJIHByaT0gdmFsdWUKK3RvIHRoZSBvcHRpb24gZmllbGQgb2YKKy5JIC9ldGMvZnN0YWIKK2ZvciB1c2Ugd2l0aAorLkJSICJzd2Fwb24gLWEiIC4KKy5UUAorLkIgIlwtcywgXC1cLXN1bW1hcnkiCitEaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeSBieSBkZXZpY2UuIEVxdWl2YWxlbnQgdG8gImNhdCAvcHJvYy9zd2FwcyIuCitOb3QgYXZhaWxhYmxlIGJlZm9yZSBMaW51eCAyLjEuMjUuCisuVFAKKy5CICJcLVUgXGZJdXVpZFxmUCIKK1VzZSB0aGUgcGFydGl0aW9uIHRoYXQgaGFzIHRoZSBzcGVjaWZpZWQKKy5JUiB1dWlkIC4KKy5UUAorLkIgIlwtdiwgXC1cLXZlcmJvc2UiCitCZSB2ZXJib3NlLgorLlRQCisuQiAiXC1WLCBcLVwtdmVyc2lvbiIKK0Rpc3BsYXkgdmVyc2lvbi4KKy5TSCBOT1RFUworWW91IHNob3VsZCBub3QgdXNlCisuQiBzd2Fwb24KK29uIGEgZmlsZSB3aXRoIGhvbGVzLgorU3dhcCBvdmVyIE5GUyBtYXkgbm90IHdvcmsuCisuUFAKKy5CIHN3YXBvbgorYXV0b21hdGljYWxseSBkZXRlY3RzIGFuZCByZXdyaXRlcyBzd2FwIHNwYWNlIHNpZ25hdHVyZSB3aXRoIG9sZCBzb2Z0d2FyZQorc3VzcGVuZCBkYXRhIChlLmcgUzFTVVNQRU5ELCBTMlNVU1BFTkQsIC4uLikuIFRoZSBwcm9ibGVtIGlzIHRoYXQgaWYgd2UgZG9uJ3QKK2RvIGl0LCB0aGVuIHdlIGdldCBkYXRhIGNvcnJ1cHRpb24gdGhlIG5leHQgdGltZSBhbiBhdHRlbXB0IGF0IHVuc3VzcGVuZGluZyBpcworbWFkZS4KKy5TSCBTRUUgQUxTTworLkJSIHN3YXBvbiAoMiksCisuQlIgc3dhcG9mZiAoMiksCisuQlIgZnN0YWIgKDUpLAorLkJSIGluaXQgKDgpLAorLkJSIG1rc3dhcCAoOCksCisuQlIgcmMgKDgpLAorLkJSIG1vdW50ICg4KQorLlNIIEZJTEVTCisuYnIKKy5JIC9kZXYvc2Q/Pworc3RhbmRhcmQgcGFnaW5nIGRldmljZXMKKy5icgorLkkgL2V0Yy9mc3RhYgorYXNjaWkgZmlsZXN5c3RlbSBkZXNjcmlwdGlvbiB0YWJsZQorLlNIIEhJU1RPUlkKK1RoZQorLkIgc3dhcG9uCitjb21tYW5kIGFwcGVhcmVkIGluIDQuMEJTRC4KKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBzd2Fwb24gY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9zd2Fwb24uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3N3YXBvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmNzAyZWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC9zd2Fwb24uYwpAQCAtMCwwICsxLDgxMyBAQAorLyoKKyAqIEEgc3dhcG9uKDgpL3N3YXBvZmYoOCkgZm9yIExpbnV4IDAuOTkuCisgKi8KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPG1udGVudC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8ZXJyLmg+CisKKyNpbmNsdWRlICJiaXRvcHMuaCIKKyNpbmNsdWRlICJibGtkZXYuaCIKKyNpbmNsdWRlICJzd2FwX2NvbnN0YW50cy5oIgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgImZzcHJvYmUuaCIKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKyNpbmNsdWRlICJzd2FwaGVhZGVyLmgiCisKKyNkZWZpbmUgUEFUSF9NS1NXQVAJIi9zYmluL21rc3dhcCIKKworI2lmZGVmIEhBVkVfU1lTX1NXQVBfSAorIyBpbmNsdWRlIDxzeXMvc3dhcC5oPgorI2VuZGlmCisKKyNpZm5kZWYgU1dBUE9OX0hBU19UV09fQVJHUworLyogbGliYyBpcyBpbnNhbmUsIGxldCdzIGNhbGwgdGhlIGtlcm5lbCAqLworIyBpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorIyBkZWZpbmUgc3dhcG9uKHBhdGgsIGZsYWdzKSBzeXNjYWxsKFNZU19zd2Fwb24sIHBhdGgsIGZsYWdzKQorIyBkZWZpbmUgc3dhcG9mZihwYXRoKSBzeXNjYWxsKFNZU19zd2Fwb2ZmLCBwYXRoKQorI2VuZGlmCisKKyNkZWZpbmUgc3RyZXEocywgdCkJKHN0cmNtcCAoKHMpLCAodCkpID09IDApCisKKyNkZWZpbmUgUVVJRVQJMQorI2RlZmluZSBDQU5PTklDCTEKKworI2RlZmluZSBNQVhfUEFHRVNJWkUJKDY0ICogMTAyNCkKKworZW51bSB7CisJU0lHX1NXQVBTUEFDRSA9IDEsCisJU0lHX1NXU1VTUEVORAorfTsKKworI2RlZmluZSBTV0FQX1NJR05BVFVSRQkJIlNXQVBTUEFDRTIiCisjZGVmaW5lIFNXQVBfU0lHTkFUVVJFX1NaCShzaXplb2YoU1dBUF9TSUdOQVRVUkUpIC0gMSkKKworaW50IGFsbDsKK2ludCBwcmlvcml0eSA9IC0xOwkvKiBub24tcHJpb3JpdGl6ZWQgc3dhcCBieSBkZWZhdWx0ICovCisKKy8qIElmIHRydWUsIGRvbid0IGNvbXBsYWluIGlmIHRoZSBkZXZpY2UvZmlsZSBkb2Vzbid0IGV4aXN0ICovCitpbnQgaWZleGlzdHM7CitpbnQgZml4cGdzejsKKworaW50IHZlcmJvc2U7CitjaGFyICpwcm9nbmFtZTsKKworc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ3N3YXBvbm9wdHNbXSA9IHsKKwkJLyogc3dhcG9uIG9ubHkgKi8KKwl7ICJwcmlvcml0eSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAncCcgfSwKKwl7ICJpZmV4aXN0cyIsIDAsIDAsICdlJyB9LAorCXsgInN1bW1hcnkiLCAwLCAwLCAncycgfSwKKwl7ICJmaXhwZ3N6IiwgMCwgMCwgJ2YnIH0sCisJCS8qIGFsc28gZm9yIHN3YXBvZmYgKi8KKwl7ICJhbGwiLCAwLCAwLCAnYScgfSwKKwl7ICJoZWxwIiwgMCwgMCwgJ2gnIH0sCisJeyAidmVyYm9zZSIsIDAsIDAsICd2JyB9LAorCXsgInZlcnNpb24iLCAwLCAwLCAnVicgfSwKKwl7IE5VTEwsIDAsIDAsIDAgfQorfTsKKworc3RhdGljIHN0cnVjdCBvcHRpb24gKmxvbmdzd2Fwb2Zmb3B0cyA9ICZsb25nc3dhcG9ub3B0c1s0XTsKKworc3RhdGljIGludCBjYW5ub3RfZmluZChjb25zdCBjaGFyICpzcGVjaWFsKTsKKworI2RlZmluZSBQUklOVF9VU0FHRV9TUEVDSUFMKF9mcCkgXAorCQlmcHJpbnRmKF9mcCwgXyggXAorCSJUaGUgPHNwZWNpYWw+IHBhcmFtZXRlcjpcbiIgXAorCSIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIG9mIGRldmljZSB0byBiZSB1c2VkXG4iIFwKKwkiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIG9mIGRldmljZSB0byBiZSB1c2VkXG4iIFwKKwkiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGRldmljZSB0byBiZSB1c2VkXG4iIFwKKwkiIDxmaWxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGZpbGUgdG8gYmUgdXNlZFxuXG4iKSkKKworc3RhdGljIHZvaWQKK3N3YXBvbl91c2FnZShGSUxFICpmcCwgaW50IG4pIHsKKwlmcHJpbnRmKGZwLCBfKCJcblVzYWdlOlxuIgorCSIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorCSIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisJIiAlMSRzIC1zICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgc3dhcCB1c2FnZSBzdW1tYXJ5XG4iCisJIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorCSIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cblxuIiksIHByb2duYW1lKTsKKworCVBSSU5UX1VTQUdFX1NQRUNJQUwoZnApOworCisJZXhpdChuKTsKK30KKworc3RhdGljIHZvaWQKK3N3YXBvZmZfdXNhZ2UoRklMRSAqZnAsIGludCBuKSB7CisJZnByaW50ZihmcCwgXygiXG5Vc2FnZTpcbiIKKwkiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBzd2Fwc1xuIgorCSIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGRpc2FibGUgZ2l2ZW4gc3dhcFxuIgorCSIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorCSIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuXG4iKSwgcHJvZ25hbWUpOworCisJUFJJTlRfVVNBR0VfU1BFQ0lBTChmcCk7CisKKwlleGl0KG4pOworfQorCisvKgorICogY29udGVudHMgb2YgL3Byb2Mvc3dhcHMKKyAqLworc3RhdGljIGludCBudW1Td2FwczsKK3N0YXRpYyBjaGFyICoqc3dhcEZpbGVzOwkvKiBhcnJheSBvZiBzd2FwIGZpbGUgYW5kIHBhcnRpdGlvbiBuYW1lcyAqLworCisjZGVmaW5lIERFTEVURURfU1VGRklYCQkiXFwwNDAoZGVsZXRlZCkiCisjZGVmaW5lIERFTEVURURfU1VGRklYX1NaCShzaXplb2YoREVMRVRFRF9TVUZGSVgpIC0gMSkKKworc3RhdGljIHZvaWQKK3JlYWRfcHJvY19zd2Fwcyh2b2lkKSB7CisJRklMRSAqc3dhcHM7CisJY2hhciBsaW5lWzEwMjRdOworCWNoYXIgKnAsICoqcTsKKwlzaXplX3Qgc3o7CisKKwludW1Td2FwcyA9IDA7CisJc3dhcEZpbGVzID0gTlVMTDsKKworCXN3YXBzID0gZm9wZW4oX1BBVEhfUFJPQ19TV0FQUywgInIiKTsKKwlpZiAoc3dhcHMgPT0gTlVMTCkKKwkJcmV0dXJuOwkJLyogbm90aGluZyB3cm9uZyAqLworCisJLyogc2tpcCB0aGUgZmlyc3QgbGluZSAqLworCWlmICghZmdldHMobGluZSwgc2l6ZW9mKGxpbmUpLCBzd2FwcykpIHsKKwkJLyogZG8gbm90IHdoaW5lIGFib3V0IGFuIGVtcHR5IGZpbGUgKi8KKwkJaWYgKGZlcnJvcihzd2FwcykpCisJCQl3YXJuKF8oIiVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0IiksIF9QQVRIX1BST0NfU1dBUFMpOworCQlmY2xvc2Uoc3dhcHMpOworCQlyZXR1cm47CisJfQorCS8qIG1ha2Ugc3VyZSB0aGUgZmlyc3QgbGluZSBpcyB0aGUgaGVhZGVyICovCisJaWYgKGxpbmVbMF0gIT0gJ1wwJyAmJiBzdHJuY21wKGxpbmUsICJGaWxlbmFtZVx0IiwgOSkpCisJCWdvdG8gdmFsaWRfZmlyc3RfbGluZTsKKworCXdoaWxlIChmZ2V0cyhsaW5lLCBzaXplb2YobGluZSksIHN3YXBzKSkgeworIHZhbGlkX2ZpcnN0X2xpbmU6CisJCS8qCisJCSAqIEN1dCB0aGUgbGluZSAic3dhcF9kZXZpY2UgIC4uLiBtb3JlIGluZm8iIGFmdGVyIGRldmljZS4KKwkJICogVGhpcyB3aWxsIGZhaWwgd2l0aCBuYW1lcyB3aXRoIGVtYmVkZGVkIHNwYWNlcy4KKwkJICovCisJCWZvciAocCA9IGxpbmU7ICpwICYmICpwICE9ICcgJzsgcCsrKTsKKwkJKnAgPSAnXDAnOworCisJCS8qIHRoZSBrZXJuZWwgY2FuIHVzZSAiIChkZWxldGVkKSIgc3VmZml4IGZvciBwYXRocworCQkgKiBpbiAvcHJvYy9zd2Fwcywgd2UgaGF2ZSB0byByZW1vdmUgdGhpcyBqdW5rLgorCQkgKi8KKwkJc3ogPSBzdHJsZW4obGluZSk7CisJCWlmIChzeiA+IERFTEVURURfU1VGRklYX1NaKSB7CisJCSAgICAgICBwID0gbGluZSArIChzeiAtIERFTEVURURfU1VGRklYX1NaKTsKKwkJICAgICAgIGlmIChzdHJjbXAocCwgREVMRVRFRF9TVUZGSVgpID09IDApCisJCQkgICAgICAgKnAgPSAnXDAnOworCQl9CisKKwkJcSA9IHJlYWxsb2Moc3dhcEZpbGVzLCAobnVtU3dhcHMrMSkgKiBzaXplb2YoKnN3YXBGaWxlcykpOworCQlpZiAocSA9PSBOVUxMKQorCQkJYnJlYWs7CisJCXN3YXBGaWxlcyA9IHE7CisKKwkJc3dhcEZpbGVzW251bVN3YXBzKytdID0gc3RyZHVwKGxpbmUpOworCX0KKwlmY2xvc2Uoc3dhcHMpOworfQorCitzdGF0aWMgaW50Citpc19pbl9wcm9jX3N3YXBzKGNvbnN0IGNoYXIgKmZuYW1lKSB7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtU3dhcHM7IGkrKykKKwkJaWYgKHN3YXBGaWxlc1tpXSAmJiAhc3RyY21wKGZuYW1lLCBzd2FwRmlsZXNbaV0pKQorCQkJcmV0dXJuIDE7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2Rpc3BsYXlfc3VtbWFyeSh2b2lkKQoreworICAgICAgIEZJTEUgKnN3YXBzOworICAgICAgIGNoYXIgbGluZVsxMDI0XSA7CisKKyAgICAgICBpZiAoKHN3YXBzID0gZm9wZW4oX1BBVEhfUFJPQ19TV0FQUywgInIiKSkgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgd2FybihfKCIlczogb3BlbiBmYWlsZWQiKSwgX1BBVEhfUFJPQ19TV0FQUyk7CisgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgfQorCisgICAgICAgd2hpbGUgKGZnZXRzKGxpbmUsIHNpemVvZihsaW5lKSwgc3dhcHMpKQorICAgICAgICAgICAgICAgcHJpbnRmKCIlcyIsIGxpbmUpOworCisgICAgICAgZmNsb3NlKHN3YXBzKTsKKyAgICAgICByZXR1cm4gMCA7Cit9CisKKy8qIGNhbGxzIG1rc3dhcCAqLworc3RhdGljIGludAorc3dhcF9yZWluaXRpYWxpemUoY29uc3QgY2hhciAqZGV2aWNlKSB7CisJY29uc3QgY2hhciAqbGFiZWwgPSBmc3Byb2JlX2dldF9sYWJlbF9ieV9kZXZuYW1lKGRldmljZSk7CisJY29uc3QgY2hhciAqdXVpZCAgPSBmc3Byb2JlX2dldF91dWlkX2J5X2Rldm5hbWUoZGV2aWNlKTsKKwlwaWRfdCBwaWQ7CisJaW50IHN0YXR1cywgcmV0OworCWNoYXIgKmNtZFs3XTsKKwlpbnQgaWR4PTA7CisKKwl3YXJueChfKCIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIiksIGRldmljZSk7CisKKwlzd2l0Y2goKHBpZD1mb3JrKCkpKSB7CisJY2FzZSAtMTogLyogZm9yayBlcnJvciAqLworCQl3YXJuKF8oImZvcmsgZmFpbGVkIikpOworCQlyZXR1cm4gLTE7CisKKwljYXNlIDA6CS8qIGNoaWxkICovCisJCWNtZFtpZHgrK10gPSBQQVRIX01LU1dBUDsKKwkJaWYgKGxhYmVsICYmICpsYWJlbCkgeworCQkJY21kW2lkeCsrXSA9ICItTCI7CisJCQljbWRbaWR4KytdID0gKGNoYXIgKikgbGFiZWw7CisJCX0KKwkJaWYgKHV1aWQgJiYgKnV1aWQpIHsKKwkJCWNtZFtpZHgrK10gPSAiLVUiOworCQkJY21kW2lkeCsrXSA9IChjaGFyICopIHV1aWQ7CisJCX0KKwkJY21kW2lkeCsrXSA9IChjaGFyICopIGRldmljZTsKKwkJY21kW2lkeCsrXSA9IE5VTEw7CisJCWV4ZWN2KGNtZFswXSwgY21kKTsKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiZXhlY3YgZmFpbGVkIikpOworCisJZGVmYXVsdDogLyogcGFyZW50ICovCisJCWRvIHsKKwkJCWlmICgocmV0ID0gd2FpdHBpZChwaWQsICZzdGF0dXMsIDApKSA8IDAKKwkJCQkJJiYgZXJybm8gPT0gRUlOVFIpCisJCQkJY29udGludWU7CisJCQllbHNlIGlmIChyZXQgPCAwKSB7CisJCQkJd2FybihfKCJ3YWl0cGlkIGZhaWxlZCIpKTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisJCX0gd2hpbGUgKDApOworCisJCS8qIG1rc3dhcCByZXR1cm5zOiAwPXN1c3MsIDE9ZXJyb3IgKi8KKwkJaWYgKFdJRkVYSVRFRChzdGF0dXMpICYmIFdFWElUU1RBVFVTKHN0YXR1cyk9PTApCisJCQlyZXR1cm4gMDsgLyogb2sgKi8KKwl9CisJcmV0dXJuIC0xOyAvKiBlcnJvciAqLworfQorCitzdGF0aWMgaW50Citzd2FwX3Jld3JpdGVfc2lnbmF0dXJlKGNvbnN0IGNoYXIgKmRldm5hbWUsIHVuc2lnbmVkIGludCBwYWdlc2l6ZSkKK3sKKwlpbnQgZmQsIHJjID0gLTE7CisKKwlmZCA9IG9wZW4oZGV2bmFtZSwgT19XUk9OTFkpOworCWlmIChmZCA9PSAtMSkgeworCQl3YXJuKF8oIiVzOiBvcGVuIGZhaWxlZCIpLCBkZXZuYW1lKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChsc2VlayhmZCwgcGFnZXNpemUgLSBTV0FQX1NJR05BVFVSRV9TWiwgU0VFS19TRVQpIDwgMCkgeworCQl3YXJuKF8oIiVzOiBsc2VlayBmYWlsZWQiKSwgZGV2bmFtZSk7CisJCWdvdG8gZXJyOworCX0KKworCWlmICh3cml0ZShmZCwgKHZvaWQgKikgU1dBUF9TSUdOQVRVUkUsCisJCQlTV0FQX1NJR05BVFVSRV9TWikgIT0gU1dBUF9TSUdOQVRVUkVfU1opIHsKKwkJd2FybihfKCIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIpLCBkZXZuYW1lKTsKKwkJZ290byBlcnI7CisJfQorCisJcmMgID0gMDsKK2VycjoKKwljbG9zZShmZCk7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50Citzd2FwX2RldGVjdF9zaWduYXR1cmUoY29uc3QgY2hhciAqYnVmLCBpbnQgKnNpZykKK3sKKwlpZiAobWVtY21wKGJ1ZiwgIlNXQVAtU1BBQ0UiLCAxMCkgPT0gMCB8fAorICAgICAgICAgICAgbWVtY21wKGJ1ZiwgIlNXQVBTUEFDRTIiLCAxMCkgPT0gMCkKKwkJKnNpZyA9IFNJR19TV0FQU1BBQ0U7CisKKwllbHNlIGlmIChtZW1jbXAoYnVmLCAiUzFTVVNQRU5EIiwgOSkgPT0gMCB8fAorCQkgbWVtY21wKGJ1ZiwgIlMyU1VTUEVORCIsIDkpID09IDAgfHwKKwkJIG1lbWNtcChidWYsICJVTFNVU1BFTkQiLCA5KSA9PSAwIHx8CisJCSBtZW1jbXAoYnVmLCAiXHhlZFx4YzNceDAyXHhlOVx4OThceDU2XHhlNVx4MGMiLCA4KSA9PSAwKQorCQkqc2lnID0gU0lHX1NXU1VTUEVORDsKKwllbHNlCisJCXJldHVybiAwOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBjaGFyICoKK3N3YXBfZ2V0X2hlYWRlcihpbnQgZmQsIGludCAqc2lnLCB1bnNpZ25lZCBpbnQgKnBhZ2VzaXplKQoreworCWNoYXIgKmJ1ZjsKKwlzc2l6ZV90IGRhdGFzejsKKwl1bnNpZ25lZCBpbnQgcGFnZTsKKworCSpwYWdlc2l6ZSA9IDA7CisJKnNpZyA9IDA7CisKKwlidWYgPSBtYWxsb2MoTUFYX1BBR0VTSVpFKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIE5VTEw7CisKKwlkYXRhc3ogPSByZWFkKGZkLCBidWYsIE1BWF9QQUdFU0laRSk7CisJaWYgKGRhdGFzeiA9PSAoc3NpemVfdCkgLTEpCisJCWdvdG8gZXJyOworCisJZm9yIChwYWdlID0gMHgxMDAwOyBwYWdlIDw9IE1BWF9QQUdFU0laRTsgcGFnZSA8PD0gMSkgeworCQkvKiBza2lwIDMyayBwYWdlc2l6ZSBzaW5jZSB0aGlzIGRvZXMgbm90IHNlZW0gdG8KKwkJICogYmUgc3VwcG9ydGVkICovCisJCWlmIChwYWdlID09IDB4ODAwMCkKKwkJCWNvbnRpbnVlOworCQkvKiB0aGUgc21hbGxlc3Qgc3dhcCBhcmVhIGlzIFBBR0VfU0laRSoxMCwgaXQgbWVhbnMKKwkJICogNDBrLCB0aGF0J3MgbGVzcyB0aGFuIE1BWF9QQUdFU0laRSAqLworCQlpZiAoZGF0YXN6IDwgKHBhZ2UgLSBTV0FQX1NJR05BVFVSRV9TWikpCisJCQlicmVhazsKKwkJaWYgKHN3YXBfZGV0ZWN0X3NpZ25hdHVyZShidWYgKyBwYWdlIC0gU1dBUF9TSUdOQVRVUkVfU1osIHNpZykpIHsKKwkJCSpwYWdlc2l6ZSA9IHBhZ2U7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICgqcGFnZXNpemUpCisJCXJldHVybiBidWY7CitlcnI6CisJZnJlZShidWYpOworCXJldHVybiBOVUxMOworfQorCisvKiByZXR1cm5zIHJlYWwgc2l6ZSBvZiBzd2FwIHNwYWNlICovCit1bnNpZ25lZCBsb25nIGxvbmcKK3N3YXBfZ2V0X3NpemUoY29uc3QgY2hhciAqaGRyLCBjb25zdCBjaGFyICpkZXZuYW1lLCB1bnNpZ25lZCBpbnQgcGFnZXNpemUpCit7CisJdW5zaWduZWQgaW50IGxhc3RfcGFnZSA9IDA7CisJaW50IHN3YXBfdmVyc2lvbiA9IDA7CisJaW50IGZsaXAgPSAwOworCXN0cnVjdCBzd2FwX2hlYWRlcl92MV8yICpzOworCisJcyA9IChzdHJ1Y3Qgc3dhcF9oZWFkZXJfdjFfMiAqKSBoZHI7CisJaWYgKHMtPnZlcnNpb24gPT0gMSkgeworCQlzd2FwX3ZlcnNpb24gPSAxOworCQlsYXN0X3BhZ2UgPSBzLT5sYXN0X3BhZ2U7CisJfSBlbHNlIGlmIChzd2FiMzIocy0+dmVyc2lvbikgPT0gMSkgeworCQlmbGlwID0gMTsKKwkJc3dhcF92ZXJzaW9uID0gMTsKKwkJbGFzdF9wYWdlID0gc3dhYjMyKHMtPmxhc3RfcGFnZSk7CisJfQorCWlmICh2ZXJib3NlKQorCQl3YXJueChfKCIlczogZm91bmQgc3dhcCBzaWduYXR1cmU6IHZlcnNpb24gJWQsICIKKwkJCSJwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiKSwKKwkJCWRldm5hbWUsCisJCQlzd2FwX3ZlcnNpb24sCisJCQlwYWdlc2l6ZSAvIDEwMjQsCisJCQlmbGlwID8gXygiZGlmZmVyZW50IikgOiBfKCJzYW1lIikpOworCisJcmV0dXJuICgodW5zaWduZWQgbG9uZyBsb25nKSBsYXN0X3BhZ2UgKyAxKSAqIHBhZ2VzaXplOworfQorCitzdGF0aWMgaW50Citzd2Fwb25fY2hlY2tzKGNvbnN0IGNoYXIgKnNwZWNpYWwpCit7CisJc3RydWN0IHN0YXQgc3Q7CisJaW50IGZkID0gLTEsIHNpZzsKKwljaGFyICpoZHIgPSBOVUxMOworCXVuc2lnbmVkIGludCBwYWdlc2l6ZTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgZGV2c2l6ZSA9IDA7CisKKwlpZiAoc3RhdChzcGVjaWFsLCAmc3QpIDwgMCkgeworCQl3YXJuKF8oIiVzOiBzdGF0IGZhaWxlZCIpLCBzcGVjaWFsKTsKKwkJZ290byBlcnI7CisJfQorCisJLyogcGVvcGxlIGdlbmVyYWxseSBkaXNsaWtlIHRoaXMgd2FybmluZyAtIG5vdyBpdCBpcyBwcmludGVkCisJICAgb25seSB3aGVuIGB2ZXJib3NlJyBpcyBzZXQgKi8KKwlpZiAodmVyYm9zZSkgeworCQlpbnQgcGVybU1hc2sgPSAoU19JU0JMSyhzdC5zdF9tb2RlKSA/IDA3MDA3IDogMDcwNzcpOworCisJCWlmICgoc3Quc3RfbW9kZSAmIHBlcm1NYXNrKSAhPSAwKQorCQkJd2FybngoXygiJXM6IGluc2VjdXJlIHBlcm1pc3Npb25zICUwNG8sICUwNG8gc3VnZ2VzdGVkLiIpLAorCQkJCXNwZWNpYWwsIHN0LnN0X21vZGUgJiAwNzc3NywKKwkJCQl+cGVybU1hc2sgJiAwNjY2KTsKKwl9CisKKwkvKiB0ZXN0IGZvciBob2xlcyBieSBMQlQgKi8KKwlpZiAoU19JU1JFRyhzdC5zdF9tb2RlKSkgeworCQlpZiAoc3Quc3RfYmxvY2tzICogNTEyIDwgc3Quc3Rfc2l6ZSkgeworCQkJd2FybngoXygiJXM6IHNraXBwaW5nIC0gaXQgYXBwZWFycyB0byBoYXZlIGhvbGVzLiIpLAorCQkJCXNwZWNpYWwpOworCQkJZ290byBlcnI7CisJCX0KKwkJZGV2c2l6ZSA9IHN0LnN0X3NpemU7CisJfQorCisJZmQgPSBvcGVuKHNwZWNpYWwsIE9fUkRPTkxZKTsKKwlpZiAoZmQgPT0gLTEpIHsKKwkJd2FybihfKCIlczogb3BlbiBmYWlsZWQiKSwgc3BlY2lhbCk7CisJCWdvdG8gZXJyOworCX0KKworCWlmIChTX0lTQkxLKHN0LnN0X21vZGUpICYmIGJsa2Rldl9nZXRfc2l6ZShmZCwgJmRldnNpemUpKSB7CisJCXdhcm4oXygiJXM6IGdldCBzaXplIGZhaWxlZCIpLCBzcGVjaWFsKTsKKwkJZ290byBlcnI7CisJfQorCisJaGRyID0gc3dhcF9nZXRfaGVhZGVyKGZkLCAmc2lnLCAmcGFnZXNpemUpOworCWlmICghaGRyKSB7CisJCXdhcm4oXygiJXM6IHJlYWQgc3dhcCBoZWFkZXIgZmFpbGVkIiksIHNwZWNpYWwpOworCQlnb3RvIGVycjsKKwl9CisKKwlpZiAoc2lnID09IFNJR19TV0FQU1BBQ0UgJiYgcGFnZXNpemUpIHsKKwkJdW5zaWduZWQgbG9uZyBsb25nIHN3YXBzaXplID0KKwkJCQlzd2FwX2dldF9zaXplKGhkciwgc3BlY2lhbCwgcGFnZXNpemUpOworCQlpZiAodmVyYm9zZSkKKwkJCXdhcm54KCIlczogcGFnZXNpemU9JWQsIHN3YXBzaXplPSVsbHUsIGRldnNpemU9JWxsdSIsCisJCQkJc3BlY2lhbCwgcGFnZXNpemUsIHN3YXBzaXplLCBkZXZzaXplKTsKKworCQlpZiAoc3dhcHNpemUgPiBkZXZzaXplKSB7CisJCQlpZiAodmVyYm9zZSkKKwkJCQl3YXJueChfKCIlczogbGFzdF9wYWdlIDB4JTA4bGx4IGlzIGxhcmdlciIKKwkJCQkJIiB0aGFuIGFjdHVhbCBzaXplIG9mIHN3YXBzcGFjZSIpLAorCQkJCQlzcGVjaWFsLCBzd2Fwc2l6ZSk7CisJCX0gZWxzZSBpZiAoZ2V0cGFnZXNpemUoKSAhPSBwYWdlc2l6ZSkgeworCQkJaWYgKGZpeHBnc3opIHsKKwkJCQl3YXJueChfKCIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIiksCisJCQkJCXNwZWNpYWwpOworCQkJCWlmIChzd2FwX3JlaW5pdGlhbGl6ZShzcGVjaWFsKSA8IDApCisJCQkJCWdvdG8gZXJyOworCQkJfSBlbHNlCisJCQkJd2FybngoXygiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAiCisJCQkJCSIoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIpLAorCQkJCQlzcGVjaWFsKTsKKwkJfQorCX0gZWxzZSBpZiAoc2lnID09IFNJR19TV1NVU1BFTkQpIHsKKwkJLyogV2UgaGF2ZSB0byByZWluaXRpYWxpemUgc3dhcCB3aXRoIG9sZCAoPXVzZWxlc3MpIHNvZnR3YXJlIHN1c3BlbmQKKwkJICogZGF0YS4gVGhlIHByb2JsZW0gaXMgdGhhdCBpZiB3ZSBkb24ndCBkbyBpdCwgdGhlbiB3ZSBnZXQgZGF0YQorCQkgKiBjb3JydXB0aW9uIHRoZSBuZXh0IHRpbWUgYW4gYXR0ZW1wdCBhdCB1bnN1c3BlbmRpbmcgaXMgbWFkZS4KKwkJICovCisJCXdhcm54KF8oIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuICIKKwkJCQkiUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iKSwKKwkJCXNwZWNpYWwpOworCQlpZiAoc3dhcF9yZXdyaXRlX3NpZ25hdHVyZShzcGVjaWFsLCBwYWdlc2l6ZSkgPCAwKQorCQkJZ290byBlcnI7CisJfQorCisJZnJlZShoZHIpOworCWNsb3NlKGZkKTsKKwlyZXR1cm4gMDsKK2VycjoKKwlpZiAoZmQgIT0gLTEpCisJCWNsb3NlKGZkKTsKKwlmcmVlKGhkcik7CisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgaW50Citkb19zd2Fwb24oY29uc3QgY2hhciAqb3JpZ19zcGVjaWFsLCBpbnQgcHJpbywgaW50IGNhbm9uaWMpIHsKKwlpbnQgc3RhdHVzOworCWNvbnN0IGNoYXIgKnNwZWNpYWwgPSBvcmlnX3NwZWNpYWw7CisJaW50IGZsYWdzID0gMDsKKworCWlmICh2ZXJib3NlKQorCQlwcmludGYoXygiJXMgb24gJXNcbiIpLCBwcm9nbmFtZSwgb3JpZ19zcGVjaWFsKTsKKworCWlmICghY2Fub25pYykgeworCQlzcGVjaWFsID0gZnNwcm9iZV9nZXRfZGV2bmFtZV9ieV9zcGVjKG9yaWdfc3BlY2lhbCk7CisJCWlmICghc3BlY2lhbCkKKwkJCXJldHVybiBjYW5ub3RfZmluZChvcmlnX3NwZWNpYWwpOworCX0KKworCWlmIChzd2Fwb25fY2hlY2tzKHNwZWNpYWwpKQorCQlyZXR1cm4gLTE7CisKKyNpZmRlZiBTV0FQX0ZMQUdfUFJFRkVSCisJaWYgKHByaW8gPj0gMCkgeworCQlpZiAocHJpbyA+IFNXQVBfRkxBR19QUklPX01BU0spCisJCQlwcmlvID0gU1dBUF9GTEFHX1BSSU9fTUFTSzsKKwkJZmxhZ3MgPSBTV0FQX0ZMQUdfUFJFRkVSCisJCQl8ICgocHJpbyAmIFNXQVBfRkxBR19QUklPX01BU0spCisJCQkgICA8PCBTV0FQX0ZMQUdfUFJJT19TSElGVCk7CisJfQorI2VuZGlmCisJc3RhdHVzID0gc3dhcG9uKHNwZWNpYWwsIGZsYWdzKTsKKwlpZiAoc3RhdHVzIDwgMCkKKwkJd2FybihfKCIlczogc3dhcG9uIGZhaWxlZCIpLCBvcmlnX3NwZWNpYWwpOworCisJcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIGludAorY2Fubm90X2ZpbmQoY29uc3QgY2hhciAqc3BlY2lhbCkgeworCXdhcm54KF8oImNhbm5vdCBmaW5kIHRoZSBkZXZpY2UgZm9yICVzIiksIHNwZWNpYWwpOworCXJldHVybiAtMTsKK30KKworc3RhdGljIGludAorc3dhcG9uX2J5X2xhYmVsKGNvbnN0IGNoYXIgKmxhYmVsLCBpbnQgcHJpbykgeworCWNvbnN0IGNoYXIgKnNwZWNpYWwgPSBmc3Byb2JlX2dldF9kZXZuYW1lX2J5X2xhYmVsKGxhYmVsKTsKKwlyZXR1cm4gc3BlY2lhbCA/IGRvX3N3YXBvbihzcGVjaWFsLCBwcmlvLCBDQU5PTklDKSA6IGNhbm5vdF9maW5kKGxhYmVsKTsKK30KKworc3RhdGljIGludAorc3dhcG9uX2J5X3V1aWQoY29uc3QgY2hhciAqdXVpZCwgaW50IHByaW8pIHsKKwljb25zdCBjaGFyICpzcGVjaWFsID0gZnNwcm9iZV9nZXRfZGV2bmFtZV9ieV91dWlkKHV1aWQpOworCXJldHVybiBzcGVjaWFsID8gZG9fc3dhcG9uKHNwZWNpYWwsIHByaW8sIENBTk9OSUMpIDogY2Fubm90X2ZpbmQodXVpZCk7Cit9CisKK3N0YXRpYyBpbnQKK2RvX3N3YXBvZmYoY29uc3QgY2hhciAqb3JpZ19zcGVjaWFsLCBpbnQgcXVpZXQsIGludCBjYW5vbmljKSB7CisgICAgICAgIGNvbnN0IGNoYXIgKnNwZWNpYWwgPSBvcmlnX3NwZWNpYWw7CisKKwlpZiAodmVyYm9zZSkKKwkJcHJpbnRmKF8oIiVzIG9uICVzXG4iKSwgcHJvZ25hbWUsIG9yaWdfc3BlY2lhbCk7CisKKwlpZiAoIWNhbm9uaWMpIHsKKwkJc3BlY2lhbCA9IGZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfc3BlYyhvcmlnX3NwZWNpYWwpOworCQlpZiAoIXNwZWNpYWwpCisJCQlyZXR1cm4gY2Fubm90X2ZpbmQob3JpZ19zcGVjaWFsKTsKKwl9CisKKwlpZiAoc3dhcG9mZihzcGVjaWFsKSA9PSAwKQorCQlyZXR1cm4gMDsJLyogc3VjY2VzcyAqLworCisJaWYgKGVycm5vID09IEVQRVJNKQorCQllcnJ4KEVYSVRfRkFJTFVSRSwgXygiTm90IHN1cGVydXNlci4iKSk7CisKKwlpZiAoIXF1aWV0IHx8IGVycm5vID09IEVOT01FTSkKKwkJd2FybihfKCIlczogc3dhcG9mZiBmYWlsZWQiKSwgb3JpZ19zcGVjaWFsKTsKKworCXJldHVybiAtMTsKK30KKworc3RhdGljIGludAorc3dhcG9mZl9ieV9sYWJlbChjb25zdCBjaGFyICpsYWJlbCwgaW50IHF1aWV0KSB7CisJY29uc3QgY2hhciAqc3BlY2lhbCA9IGZzcHJvYmVfZ2V0X2Rldm5hbWVfYnlfbGFiZWwobGFiZWwpOworCXJldHVybiBzcGVjaWFsID8gZG9fc3dhcG9mZihzcGVjaWFsLCBxdWlldCwgQ0FOT05JQykgOiBjYW5ub3RfZmluZChsYWJlbCk7Cit9CisKK3N0YXRpYyBpbnQKK3N3YXBvZmZfYnlfdXVpZChjb25zdCBjaGFyICp1dWlkLCBpbnQgcXVpZXQpIHsKKwljb25zdCBjaGFyICpzcGVjaWFsID0gZnNwcm9iZV9nZXRfZGV2bmFtZV9ieV91dWlkKHV1aWQpOworCXJldHVybiBzcGVjaWFsID8gZG9fc3dhcG9mZihzcGVjaWFsLCBxdWlldCwgQ0FOT05JQykgOiBjYW5ub3RfZmluZCh1dWlkKTsKK30KKworc3RhdGljIGludAorc3dhcG9uX2FsbCh2b2lkKSB7CisJRklMRSAqZnA7CisJc3RydWN0IG1udGVudCAqZnN0YWI7CisJaW50IHN0YXR1cyA9IDA7CisKKwlyZWFkX3Byb2Nfc3dhcHMoKTsKKworCWZwID0gc2V0bW50ZW50KF9QQVRIX01OVFRBQiwgInIiKTsKKwlpZiAoZnAgPT0gTlVMTCkKKwkJZXJyKDIsIF8oIiVzOiBvcGVuIGZhaWxlZCIpLCBfUEFUSF9NTlRUQUIpOworCisJd2hpbGUgKChmc3RhYiA9IGdldG1udGVudChmcCkpICE9IE5VTEwpIHsKKwkJY29uc3QgY2hhciAqc3BlY2lhbDsKKwkJaW50IHNraXAgPSAwOworCQlpbnQgcHJpID0gcHJpb3JpdHk7CisJCWNoYXIgKm9wdCwgKm9wdHM7CisKKwkJaWYgKCFzdHJlcShmc3RhYi0+bW50X3R5cGUsIE1OVFRZUEVfU1dBUCkpCisJCQljb250aW51ZTsKKworCQlvcHRzID0gc3RyZHVwKGZzdGFiLT5tbnRfb3B0cyk7CisKKwkJZm9yIChvcHQgPSBzdHJ0b2sob3B0cywgIiwiKTsgb3B0ICE9IE5VTEw7CisJCSAgICAgb3B0ID0gc3RydG9rKE5VTEwsICIsIikpIHsKKwkJCWlmIChzdHJuY21wKG9wdCwgInByaT0iLCA0KSA9PSAwKQorCQkJCXByaSA9IGF0b2kob3B0KzQpOworCQkJaWYgKHN0cmNtcChvcHQsICJub2F1dG8iKSA9PSAwKQorCQkJCXNraXAgPSAxOworCQl9CisJCWZyZWUob3B0cyk7CisKKwkJaWYgKHNraXApCisJCQljb250aW51ZTsKKworCQlzcGVjaWFsID0gZnNwcm9iZV9nZXRfZGV2bmFtZV9ieV9zcGVjKGZzdGFiLT5tbnRfZnNuYW1lKTsKKwkJaWYgKCFzcGVjaWFsKSB7CisJCQlpZiAoIWlmZXhpc3RzKQorCQkJCXN0YXR1cyB8PSBjYW5ub3RfZmluZChmc3RhYi0+bW50X2ZzbmFtZSk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmICghaXNfaW5fcHJvY19zd2FwcyhzcGVjaWFsKSAmJgorCQkgICAgKCFpZmV4aXN0cyB8fCAhYWNjZXNzKHNwZWNpYWwsIFJfT0spKSkKKwkJCXN0YXR1cyB8PSBkb19zd2Fwb24oc3BlY2lhbCwgcHJpLCBDQU5PTklDKTsKKworCQlmcmVlKCh2b2lkICopIHNwZWNpYWwpOworCX0KKwlmY2xvc2UoZnApOworCisJcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKipsbGlzdCA9IE5VTEw7CitzdGF0aWMgaW50IGxsY3QgPSAwOworc3RhdGljIGNvbnN0IGNoYXIgKip1bGlzdCA9IE5VTEw7CitzdGF0aWMgaW50IHVsY3QgPSAwOworCitzdGF0aWMgdm9pZCBhZGRsKGNvbnN0IGNoYXIgKmxhYmVsKSB7CisJbGxpc3QgPSAoY29uc3QgY2hhciAqKikgcmVhbGxvYyhsbGlzdCwgKCsrbGxjdCkgKiBzaXplb2YoY2hhciAqKSk7CisJaWYgKCFsbGlzdCkKKwkJZXhpdChFWElUX0ZBSUxVUkUpOworCWxsaXN0W2xsY3QtMV0gPSBsYWJlbDsKK30KKworc3RhdGljIHZvaWQgYWRkdShjb25zdCBjaGFyICp1dWlkKSB7CisJdWxpc3QgPSAoY29uc3QgY2hhciAqKikgcmVhbGxvYyh1bGlzdCwgKCsrdWxjdCkgKiBzaXplb2YoY2hhciAqKSk7CisJaWYgKCF1bGlzdCkKKwkJZXhpdChFWElUX0ZBSUxVUkUpOworCXVsaXN0W3VsY3QtMV0gPSB1dWlkOworfQorCitzdGF0aWMgaW50CittYWluX3N3YXBvbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CisJaW50IHN0YXR1cyA9IDA7CisJaW50IGMsIGk7CisKKwl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWhlZnA6c3ZWTDpVOiIsCisJCQkJbG9uZ3N3YXBvbm9wdHMsIE5VTEwpKSAhPSAtMSkgeworCQlzd2l0Y2ggKGMpIHsKKwkJY2FzZSAnYSc6CQkvKiBhbGwgKi8KKwkJCSsrYWxsOworCQkJYnJlYWs7CisJCWNhc2UgJ2gnOgkJLyogaGVscCAqLworCQkJc3dhcG9uX3VzYWdlKHN0ZG91dCwgMCk7CisJCQlicmVhazsKKwkJY2FzZSAncCc6CQkvKiBwcmlvcml0eSAqLworCQkJcHJpb3JpdHkgPSBhdG9pKG9wdGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSAnTCc6CisJCQlhZGRsKG9wdGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSAnVSc6CisJCQlhZGR1KG9wdGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSAnZSc6ICAgICAgICAgICAgICAgLyogaWZleGlzdHMgKi8KKwkJICAgICAgICBpZmV4aXN0cyA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnZic6CisJCQlmaXhwZ3N6ID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdzJzoJCS8qIHN0YXR1cyByZXBvcnQgKi8KKwkJCXN0YXR1cyA9IGRpc3BsYXlfc3VtbWFyeSgpOworCQkJZXhpdChzdGF0dXMpOworCQljYXNlICd2JzoJCS8qIGJlIGNoYXR0eSAqLworCQkJKyt2ZXJib3NlOworCQkJYnJlYWs7CisJCWNhc2UgJ1YnOgkJLyogdmVyc2lvbiAqLworCQkJcHJpbnRmKCIlczogKCVzKVxuIiwgcHJvZ25hbWUsIFBBQ0tBR0VfU1RSSU5HKTsKKwkJCWV4aXQoMCk7CisJCWNhc2UgMDoKKwkJCWJyZWFrOworCQljYXNlICc/JzoKKwkJZGVmYXVsdDoKKwkJCXN3YXBvbl91c2FnZShzdGRlcnIsIDEpOworCQl9CisJfQorCWFyZ3YgKz0gb3B0aW5kOworCisJaWYgKCFhbGwgJiYgIWxsY3QgJiYgIXVsY3QgJiYgKmFyZ3YgPT0gTlVMTCkKKwkJc3dhcG9uX3VzYWdlKHN0ZGVyciwgMik7CisKKwlpZiAoaWZleGlzdHMgJiYgKCFhbGwgfHwgc3RyY21wKHByb2duYW1lLCAic3dhcG9uIikpKQorCQlzd2Fwb25fdXNhZ2Uoc3RkZXJyLCAxKTsKKworCWlmIChhbGwpCisJCXN0YXR1cyB8PSBzd2Fwb25fYWxsKCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbGxjdDsgaSsrKQorCQlzdGF0dXMgfD0gc3dhcG9uX2J5X2xhYmVsKGxsaXN0W2ldLCBwcmlvcml0eSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdWxjdDsgaSsrKQorCQlzdGF0dXMgfD0gc3dhcG9uX2J5X3V1aWQodWxpc3RbaV0sIHByaW9yaXR5KTsKKworCXdoaWxlICgqYXJndiAhPSBOVUxMKQorCQlzdGF0dXMgfD0gZG9fc3dhcG9uKCphcmd2KyssIHByaW9yaXR5LCAhQ0FOT05JQyk7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgaW50CittYWluX3N3YXBvZmYoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworCUZJTEUgKmZwOworCXN0cnVjdCBtbnRlbnQgKmZzdGFiOworCWludCBzdGF0dXMgPSAwOworCWludCBjLCBpOworCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImFodlZMOlU6IiwKKwkJCQkgbG9uZ3N3YXBvZmZvcHRzLCBOVUxMKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ2EnOgkJLyogYWxsICovCisJCQkrK2FsbDsKKwkJCWJyZWFrOworCQljYXNlICdoJzoJCS8qIGhlbHAgKi8KKwkJCXN3YXBvZmZfdXNhZ2Uoc3Rkb3V0LCAwKTsKKwkJCWJyZWFrOworCQljYXNlICd2JzoJCS8qIGJlIGNoYXR0eSAqLworCQkJKyt2ZXJib3NlOworCQkJYnJlYWs7CisJCWNhc2UgJ1YnOgkJLyogdmVyc2lvbiAqLworCQkJcHJpbnRmKCIlcyAoJXMpXG4iLCBwcm9nbmFtZSwgUEFDS0FHRV9TVFJJTkcpOworCQkJZXhpdCgwKTsKKwkJY2FzZSAnTCc6CisJCQlhZGRsKG9wdGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSAnVSc6CisJCQlhZGR1KG9wdGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSAwOgorCQkJYnJlYWs7CisJCWNhc2UgJz8nOgorCQlkZWZhdWx0OgorCQkJc3dhcG9mZl91c2FnZShzdGRlcnIsIDEpOworCQl9CisJfQorCWFyZ3YgKz0gb3B0aW5kOworCisJaWYgKCFhbGwgJiYgIWxsY3QgJiYgIXVsY3QgJiYgKmFyZ3YgPT0gTlVMTCkKKwkJc3dhcG9mZl91c2FnZShzdGRlcnIsIDIpOworCisJLyoKKwkgKiBzd2Fwb2ZmIGFueSBleHBsaWNpdGx5IGdpdmVuIGFyZ3VtZW50cy4KKwkgKiBDb21wbGFpbiBpbiBjYXNlIHRoZSBzd2Fwb2ZmIGNhbGwgZmFpbHMuCisJICovCisJZm9yIChpID0gMDsgaSA8IGxsY3Q7IGkrKykKKwkJc3RhdHVzIHw9IHN3YXBvZmZfYnlfbGFiZWwobGxpc3RbaV0sICFRVUlFVCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdWxjdDsgaSsrKQorCQlzdGF0dXMgfD0gc3dhcG9mZl9ieV91dWlkKHVsaXN0W2ldLCAhUVVJRVQpOworCisJd2hpbGUgKCphcmd2ICE9IE5VTEwpCisJCXN0YXR1cyB8PSBkb19zd2Fwb2ZmKCphcmd2KyssICFRVUlFVCwgIUNBTk9OSUMpOworCisJaWYgKGFsbCkgeworCQkvKgorCQkgKiBJbiBjYXNlIC9wcm9jL3N3YXBzIGV4aXN0cywgdW5zd2FwIHN0dWZmIGxpc3RlZCB0aGVyZS4KKwkJICogV2UgYXJlIHF1aWV0IGJ1dCByZXBvcnQgZXJyb3JzIGluIHN0YXR1cy4KKwkJICogRXJyb3JzIG1pZ2h0IG1lYW4gdGhhdCAvcHJvYy9zd2FwcworCQkgKiBleGlzdHMgYXMgb3JkaW5hcnkgZmlsZSwgbm90IGluIHByb2Nmcy4KKwkJICogZG9fc3dhcG9mZigpIGV4aXRzIGltbWVkaWF0ZWx5IG9uIEVQRVJNLgorCQkgKi8KKwkJcmVhZF9wcm9jX3N3YXBzKCk7CisJCWZvcihpPTA7IGk8bnVtU3dhcHM7IGkrKykKKwkJCXN0YXR1cyB8PSBkb19zd2Fwb2ZmKHN3YXBGaWxlc1tpXSwgUVVJRVQsIENBTk9OSUMpOworCisJCS8qCisJCSAqIFVuc3dhcCBzdHVmZiBtZW50aW9uZWQgaW4gL2V0Yy9mc3RhYi4KKwkJICogUHJvYmFibHkgaXQgd2FzIHVubW91bnRlZCBhbHJlYWR5LCBzbyBlcnJvcnMgYXJlIG5vdCBiYWQuCisJCSAqIERvaW5nIHN3YXBvZmYgLWEgdHdpY2Ugc2hvdWxkIG5vdCBnaXZlIGVycm9yIG1lc3NhZ2VzLgorCQkgKi8KKwkJZnAgPSBzZXRtbnRlbnQoX1BBVEhfTU5UVEFCLCAiciIpOworCQlpZiAoZnAgPT0gTlVMTCkKKwkJCWVycigyLCBfKCIlczogb3BlbiBmYWlsZWQiKSwgX1BBVEhfTU5UVEFCKTsKKworCQl3aGlsZSAoKGZzdGFiID0gZ2V0bW50ZW50KGZwKSkgIT0gTlVMTCkgeworCQkJY29uc3QgY2hhciAqc3BlY2lhbDsKKworCQkJaWYgKCFzdHJlcShmc3RhYi0+bW50X3R5cGUsIE1OVFRZUEVfU1dBUCkpCisJCQkJY29udGludWU7CisKKwkJCXNwZWNpYWwgPSBmc3Byb2JlX2dldF9kZXZuYW1lX2J5X3NwZWMoZnN0YWItPm1udF9mc25hbWUpOworCQkJaWYgKCFzcGVjaWFsKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoIWlzX2luX3Byb2Nfc3dhcHMoc3BlY2lhbCkpCisJCQkJZG9fc3dhcG9mZihzcGVjaWFsLCBRVUlFVCwgQ0FOT05JQyk7CisJCX0KKwkJZmNsb3NlKGZwKTsKKwl9CisKKwlyZXR1cm4gc3RhdHVzOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCXByb2duYW1lID0gcHJvZ3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWU7CisJaWYgKCFwcm9nbmFtZSkgeworCQljaGFyICpwID0gc3RycmNocihhcmd2WzBdLCAnLycpOworCQlwcm9nbmFtZSA9IHAgPyBwKzEgOiBhcmd2WzBdOworCX0KKworCWlmIChzdHJlcShwcm9nbmFtZSwgInN3YXBvbiIpKQorCQlyZXR1cm4gbWFpbl9zd2Fwb24oYXJnYywgYXJndik7CisJZWxzZSBpZiAoc3RyZXEocHJvZ25hbWUsICJzd2Fwb2ZmIikpCisJCXJldHVybiBtYWluX3N3YXBvZmYoYXJnYywgYXJndik7CisKKwllcnJ4KEVYSVRfRkFJTFVSRSwgXygiJyVzJyBpcyB1bnN1cHBvcnRlZCBwcm9ncmFtIG5hbWUgIgorCQkJIihtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIiksIHByb2duYW1lKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3Vtb3VudC44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvdW1vdW50LjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE5MDQxMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3Vtb3VudC44CkBAIC0wLDAgKzEsMTY3IEBACisuXCIgQ29weXJpZ2h0IChjKSAxOTk2IEFuZHJpZXMgQnJvdXdlcgorLlwiIFRoaXMgcGFnZSBpcyBzb21ld2hhdCBkZXJpdmVkIGZyb20gYSBwYWdlIHRoYXQgd2FzCisuXCIgKGMpIDE5ODAsIDE5ODksIDE5OTEgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorLlwiIGFuZCBoYWQgYmVlbiBoZWF2aWx5IG1vZGlmaWVkIGJ5IFJpayBGYWl0aCBhbmQgbXlzZWxmLgorLlwiCisuXCIgVGhpcyBpcyBmcmVlIGRvY3VtZW50YXRpb247IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorLlwiIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisuXCIgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKy5cIiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy5cIgorLlwiIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSdzIHJlZmVyZW5jZXMgdG8gIm9iamVjdCBjb2RlIgorLlwiIGFuZCAiZXhlY3V0YWJsZXMiIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyB0aGUgb3V0cHV0IG9mIGFueQorLlwiIGRvY3VtZW50IGZvcm1hdHRpbmcgb3IgdHlwZXNldHRpbmcgc3lzdGVtLCBpbmNsdWRpbmcKKy5cIiBpbnRlcm1lZGlhdGUgYW5kIHByaW50ZWQgb3V0cHV0LgorLlwiCisuXCIgVGhpcyBtYW51YWwgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy5cIiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLlwiIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy5cIiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLlwiCisuXCIgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisuXCIgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbWFudWFsOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCisuXCIgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LAorLlwiIFVTQS4KKy5cIgorLlRIIFVNT1VOVCA4ICIyNiBKdWx5IDE5OTciICJMaW51eCAyLjAiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK3Vtb3VudCBcLSB1bm1vdW50IGZpbGUgc3lzdGVtcworLlNIIFNZTk9QU0lTCisuQiB1bW91bnQKKy5SQiBbIFwtaFYgXQorLkxQCisuQiB1bW91bnQgXC1hCisuUkIgWyBcLWRmbG5ydiBdCisuUkIgWyBcLXQKKy5JUiB2ZnN0eXBlIF0KKy5SQiBbIFwtTworLklSIG9wdGlvbnMgXQorLmJyCisuQiB1bW91bnQKKy5SQiBbIFwtZGZsbnJ2IF0KKy5SSSB7IGRpciB8IGRldmljZSB9Li4uCisuU0ggREVTQ1JJUFRJT04KK1RoZQorLkIgdW1vdW50Citjb21tYW5kIGRldGFjaGVzIHRoZSBmaWxlIHN5c3RlbShzKSBtZW50aW9uZWQgZnJvbSB0aGUgZmlsZSBoaWVyYXJjaHkuCitBIGZpbGUgc3lzdGVtIGlzIHNwZWNpZmllZCBieSBnaXZpbmcgdGhlIGRpcmVjdG9yeSB3aGVyZSBpdAoraGFzIGJlZW4gbW91bnRlZC4gR2l2aW5nIHRoZSBzcGVjaWFsIGRldmljZSBvbiB3aGljaCB0aGUgZmlsZSBzeXN0ZW0gbGl2ZXMKK21heSBhbHNvIHdvcmssIGJ1dCBpcyBvYnNvbGV0ZSwgbWFpbmx5IGJlY2F1c2UgaXQgd2lsbCBmYWlsCitpbiBjYXNlIHRoaXMgZGV2aWNlIHdhcyBtb3VudGVkIG9uIG1vcmUgdGhhbiBvbmUgZGlyZWN0b3J5LgorCitOb3RlIHRoYXQgYSBmaWxlIHN5c3RlbSBjYW5ub3QgYmUgdW5tb3VudGVkIHdoZW4gaXQgaXMgYGJ1c3knIC0KK2ZvciBleGFtcGxlLCB3aGVuIHRoZXJlIGFyZSBvcGVuIGZpbGVzIG9uIGl0LCBvciB3aGVuIHNvbWUgcHJvY2VzcworaGFzIGl0cyB3b3JraW5nIGRpcmVjdG9yeSB0aGVyZSwgb3Igd2hlbiBhIHN3YXAgZmlsZSBvbiBpdCBpcyBpbiB1c2UuCitUaGUgb2ZmZW5kaW5nIHByb2Nlc3MgY291bGQgZXZlbiBiZQorLkIgdW1vdW50CitpdHNlbGYgLSBpdCBvcGVucyBsaWJjLCBhbmQgbGliYyBpbiBpdHMgdHVybiBtYXkgb3BlbiBmb3IgZXhhbXBsZQorbG9jYWxlIGZpbGVzLgorQSBsYXp5IHVubW91bnQgYXZvaWRzIHRoaXMgcHJvYmxlbS4KKworT3B0aW9ucyBmb3IgdGhlCisuQiB1bW91bnQKK2NvbW1hbmQ6CisuVFAKKy5CIFwtVgorUHJpbnQgdmVyc2lvbiBhbmQgZXhpdC4KKy5UUAorLkIgXC1oCitQcmludCBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQuCisuVFAKKy5CIFwtdgorVmVyYm9zZSBtb2RlLgorLlRQCisuQiBcLW4KK1VubW91bnQgd2l0aG91dCB3cml0aW5nIGluCisuSVIgL2V0Yy9tdGFiIC4KKy5UUAorLkIgXC1yCitJbiBjYXNlIHVubW91bnRpbmcgZmFpbHMsIHRyeSB0byByZW1vdW50IHJlYWQtb25seS4KKy5UUAorLkIgXC1kCitJbiBjYXNlIHRoZSB1bm1vdW50ZWQgZGV2aWNlIHdhcyBhIGxvb3AgZGV2aWNlLCBhbHNvCitmcmVlIHRoaXMgbG9vcCBkZXZpY2UuCisuVFAKKy5CIFwtaQorRG9uJ3QgY2FsbCB0aGUgL3NiaW4vdW1vdW50LjxmaWxlc3lzdGVtPiBoZWxwZXIgZXZlbiBpZiBpdCBleGlzdHMuIEJ5IGRlZmF1bHQgL3NiaW4vdW1vdW50LjxmaWxlc3lzdGVtPiBoZWxwZXIgaXMgY2FsbGVkIGlmIG9uZSBleGlzdHMuCisuVFAKKy5CIFwtYQorQWxsIG9mIHRoZSBmaWxlIHN5c3RlbXMgZGVzY3JpYmVkIGluCisuSSAvZXRjL210YWIKK2FyZSB1bm1vdW50ZWQuIChXaXRoCisuQiB1bW91bnQKK3ZlcnNpb24gMi43IGFuZCBsYXRlcjogdGhlCisuSSBwcm9jCitmaWxlc3lzdGVtIGlzIG5vdCB1bm1vdW50ZWQuKQorLlRQCisuQkkgXC10ICIgdmZzdHlwZSIKK0luZGljYXRlIHRoYXQgdGhlIGFjdGlvbnMgc2hvdWxkIG9ubHkgYmUgdGFrZW4gb24gZmlsZSBzeXN0ZW1zIG9mIHRoZQorc3BlY2lmaWVkIHR5cGUuICBNb3JlIHRoYW4gb25lIHR5cGUgbWF5IGJlIHNwZWNpZmllZCBpbiBhIGNvbW1hIHNlcGFyYXRlZAorbGlzdC4gIFRoZSBsaXN0IG9mIGZpbGUgc3lzdGVtIHR5cGVzIGNhbiBiZSBwcmVmaXhlZCB3aXRoCisuQiBubwordG8gc3BlY2lmeSB0aGUgZmlsZSBzeXN0ZW0gdHlwZXMgb24gd2hpY2ggbm8gYWN0aW9uIHNob3VsZCBiZSB0YWtlbi4KKy5UUAorLkJJIFwtTyAiIG9wdGlvbnMiCitJbmRpY2F0ZSB0aGF0IHRoZSBhY3Rpb25zIHNob3VsZCBvbmx5IGJlIHRha2VuIG9uIGZpbGUgc3lzdGVtcyB3aXRoCit0aGUgc3BlY2lmaWVkIG9wdGlvbnMgaW4KKy5JUiAvZXRjL2ZzdGFiIC4KK01vcmUgdGhhbiBvbmUgb3B0aW9uIHR5cGUgbWF5IGJlIHNwZWNpZmllZCBpbiBhIGNvbW1hIHNlcGFyYXRlZAorbGlzdC4gIEVhY2ggb3B0aW9uIGNhbiBiZSBwcmVmaXhlZCB3aXRoCisuQiBubwordG8gc3BlY2lmeSBvcHRpb25zIGZvciB3aGljaCBubyBhY3Rpb24gc2hvdWxkIGJlIHRha2VuLgorLlRQCisuQiBcLWYKK0ZvcmNlIHVubW91bnQgKGluIGNhc2Ugb2YgYW4gdW5yZWFjaGFibGUgTkZTIHN5c3RlbSkuCisoUmVxdWlyZXMga2VybmVsIDIuMS4xMTYgb3IgbGF0ZXIuKQorLlRQCisuQiBcLWwKK0xhenkgdW5tb3VudC4gRGV0YWNoIHRoZSBmaWxlc3lzdGVtIGZyb20gdGhlIGZpbGVzeXN0ZW0gaGllcmFyY2h5IG5vdywKK2FuZCBjbGVhbnVwIGFsbCByZWZlcmVuY2VzIHRvIHRoZSBmaWxlc3lzdGVtIGFzIHNvb24gYXMgaXQgaXMgbm90IGJ1c3kKK2FueW1vcmUuCisoUmVxdWlyZXMga2VybmVsIDIuNC4xMSBvciBsYXRlci4pCisuSVAgIlxmQlwtXC1ub1wtY2Fub25pY2FsaXplXGZQIgorRG9uJ3QgY2Fub25pY2FsaXplIHBhdGhzLiBGb3IgbW9yZSBkZXRhaWxzIGFib3V0IHRoaXMgb3B0aW9uIHNlZSB0aGUKKy5CIG1vdW50KDgpCittYW4gcGFnZS4KKworLlNIICJUSEUgTE9PUCBERVZJQ0UiCitUaGUKKy5CIHVtb3VudAorY29tbWFuZCB3aWxsIGZyZWUgdGhlIGxvb3AgZGV2aWNlIChpZiBhbnkpIGFzc29jaWF0ZWQKK3dpdGggdGhlIG1vdW50LCBpbiBjYXNlIGl0IGZpbmRzIHRoZSBvcHRpb24gYGxvb3A9Li4uJyBpbgorLklSIC9ldGMvbXRhYiAsCitvciB3aGVuIHRoZSBcLWQgb3B0aW9uIHdhcyBnaXZlbi4KK0FueSBwZW5kaW5nIGxvb3AgZGV2aWNlcyBjYW4gYmUgZnJlZWQgdXNpbmcgYGxvc2V0dXAgLWQnLCBzZWUKKy5CUiBsb3NldHVwICg4KS4KKworLlNIIE5PVEVTCitUaGUgc3ludGF4IG9mIGV4dGVybmFsIHVtb3VudCBoZWxwZXJzIGlzOgorCisuYnIKKy5CSSAvc2Jpbi91bW91bnQuIDxzdWZmaXg+CisuUkkgeyBkaXIgfCBkZXZpY2UgfQorLlJCIFsgXC1ubGZ2ciBdCisuYnIKKword2hlcmUgdGhlIDxzdWZmaXg+IGlzIGZpbGVzeXN0ZW0gdHlwZSBvciBhIHZhbHVlIGZyb20gInVoZWxwZXI9IiBtdGFiIG9wdGlvbi4KKworVGhlIHVoZWxwZXIgKHVucHJpdmlsZWdlZCB1bW91bnQgaGVscGVyKSBpcyBwb3NzaWJsZSB0byB1c2VkIHdoZW4gbm9uLXJvb3QgdXNlcgord2FudHMgdG8gdW1vdW50IGEgbW91bnRwb2ludCB3aGljaCBpcyBub3QgZGVmaW5lZCBpbiB0aGUgL2V0Yy9mc3RhYiBmaWxlIChlLmcKK2RldmljZXMgbW91bnRlZCBieSBIQUwpLgorCisuU0ggRklMRVMKKy5JIC9ldGMvbXRhYgordGFibGUgb2YgbW91bnRlZCBmaWxlIHN5c3RlbXMKKworLlNIICJTRUUgQUxTTyIKKy5CUiB1bW91bnQgKDIpLAorLkJSIG1vdW50ICg4KSwKKy5CUiBsb3NldHVwICg4KS4KKworLlNIIEhJU1RPUlkKK0EKKy5CIHVtb3VudAorY29tbWFuZCBhcHBlYXJlZCBpbiBWZXJzaW9uIDYgQVQmVCBVTklYLgorLlNIIEFWQUlMQUJJTElUWQorVGhlIHVtb3VudCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3Vtb3VudC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvbW91bnQvdW1vdW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YxNDY1NQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3Vtb3VudC5jCkBAIC0wLDAgKzEsNzIwIEBACisvKgorICogdW1vdW50KDgpIGZvciBMaW51eCAwLjk5IC0ganJzLCAxOTkzCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyNpbmNsdWRlIDxzeXMvbW91bnQuaD4KKyNpbmNsdWRlICJtb3VudF9jb25zdGFudHMuaCIKKyNpbmNsdWRlICJzdW5kcmllcy5oIgorI2luY2x1ZGUgImdldHVzZXJuYW1lLmgiCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAibG9tb3VudC5oIgorI2luY2x1ZGUgImxvb3AuaCIKKyNpbmNsdWRlICJmc3RhYi5oIgorI2luY2x1ZGUgImVudi5oIgorI2luY2x1ZGUgIm5scy5oIgorCisjaWYgZGVmaW5lZChNTlRfRk9SQ0UpCisvKiBJbnRlcmVzdGluZyAuLi4gaXQgc2VlbXMgbGliYyBrbm93cyBhYm91dCBNTlRfRk9SQ0UgYW5kIHByZXN1bWFibHkKKyAgIGFib3V0IHVtb3VudDIgYXMgd2VsbCAtLSBuZWVkIG5vdCBkbyBhbnl0aGluZyAqLworI2Vsc2UgLyogTU5UX0ZPUkNFICovCisKKy8qIERvZXMgdGhlIHByZXNlbnQga2VybmVsIHNvdXJjZSBrbm93IGFib3V0IHVtb3VudDI/ICovCisjaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+CisjaWZkZWYgX19OUl91bW91bnQyCisKK3N0YXRpYyBpbnQgdW1vdW50Mihjb25zdCBjaGFyICpwYXRoLCBpbnQgZmxhZ3MpOworCitfc3lzY2FsbDIoaW50LCB1bW91bnQyLCBjb25zdCBjaGFyICosIHBhdGgsIGludCwgZmxhZ3MpOworCisjZWxzZSAvKiBfX05SX3Vtb3VudDIgKi8KKworc3RhdGljIGludAordW1vdW50Mihjb25zdCBjaGFyICpwYXRoLCBpbnQgZmxhZ3MpIHsKKwlmcHJpbnRmKHN0ZGVyciwgXygidW1vdW50OiBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIC1mXG4iKSk7CisJZXJybm8gPSBFTk9TWVM7CisJcmV0dXJuIC0xOworfQorI2VuZGlmIC8qIF9fTlJfdW1vdW50MiAqLworCisjaWYgIWRlZmluZWQoTU5UX0ZPUkNFKQorLyogZGFyZSBub3QgdHJ5IHRvIGluY2x1ZGUgPGxpbnV4L21vdW50Lmg+IC0tIGxvdHMgb2YgZXJyb3JzICovCisjZGVmaW5lIE1OVF9GT1JDRSAxCisjZW5kaWYKKworI2VuZGlmIC8qIE1OVF9GT1JDRSAqLworCisjaWYgIWRlZmluZWQoTU5UX0RFVEFDSCkKKyNkZWZpbmUgTU5UX0RFVEFDSCAyCisjZW5kaWYKKworCisvKiBUcnVlIGlmIHdlIGFyZSBhbGxvd2VkIHRvIGNhbGwgL3NiaW4vdW1vdW50LiR7RlNUWVBFfSAqLworaW50IGV4dGVybmFsX2FsbG93ZWQgPSAxOworCisvKiBOb256ZXJvIGZvciBmb3JjZSB1bW91bnQgKC1mKS4gIFRoZXJlIGlzIGtlcm5lbCBzdXBwb3J0IHNpbmNlIDIuMS4xMTYuICAqLworaW50IGZvcmNlID0gMDsKKworLyogTm9uemVybyBmb3IgbGF6eSB1bW91bnQgKC1sKS4gIFRoZXJlIGlzIGtlcm5lbCBzdXBwb3J0IHNpbmNlIDIuNC4xMS4gICovCitpbnQgbGF6eSA9IDA7CisKKy8qIFdoZW4gdW1vdW50IGZhaWxzLCBhdHRlbXB0IGEgcmVhZC1vbmx5IHJlbW91bnQgKC1yKS4gKi8KK2ludCByZW1vdW50ID0gMDsKKworLyogRG9uJ3Qgd3JpdGUgYSBlbnRyeSBpbiAvZXRjL210YWIgKC1uKS4gICovCitpbnQgbm9tdGFiID0gMDsKKworLyogQ2FsbCBsb3NldHVwIC1kIGZvciBlYWNoIHVubW91bnRlZCBsb29wIGRldmljZS4gKi8KK2ludCBkZWxsb29wID0gMDsKKworLyogVHJ1ZSBpZiAocnVpZCAhPSBldWlkKSBvciAoMCAhPSBydWlkKSwgaS5lLiBvbmx5ICJ1c2VyIiB1bW91bnRzIHBlcm1pdHRlZC4gKi8KK2ludCByZXN0cmljdGVkID0gMTsKKworLyogTGFzdCBlcnJvciBtZXNzYWdlICovCitpbnQgY29tcGxhaW5lZF9lcnIgPSAwOworY2hhciAqY29tcGxhaW5lZF9kZXYgPSBOVUxMOworCisvKgorICogY2hlY2tfc3BlY2lhbF91bW91bnRwcm9nKCkKKyAqCUlmIHRoZXJlIGlzIGEgc3BlY2lhbCB1bW91bnQgcHJvZ3JhbSBmb3IgdGhpcyB0eXBlLCBleGVjIGl0LgorICogcmV0dXJuczogMDogbm8gZXhlYyB3YXMgZG9uZSwgMTogZXhlYyB3YXMgZG9uZSwgc3RhdHVzIGhhcyByZXN1bHQKKyAqLworc3RhdGljIGludAorY2hlY2tfc3BlY2lhbF91bW91bnRwcm9nKGNvbnN0IGNoYXIgKnNwZWMsIGNvbnN0IGNoYXIgKm5vZGUsCisJCQkgY29uc3QgY2hhciAqdHlwZSwgaW50ICpzdGF0dXMpIHsKKwljaGFyIHVtb3VudHByb2dbMTIwXTsKKwlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCWludCByZXM7CisKKwlpZiAoIWV4dGVybmFsX2FsbG93ZWQpCisJCXJldHVybiAwOworCisJaWYgKHR5cGUgPT0gTlVMTCB8fCBzdHJjbXAodHlwZSwgIm5vbmUiKSA9PSAwKQorCQlyZXR1cm4gMDsKKworCWlmIChzdHJsZW4odHlwZSkgPCAxMDApIHsKKwkJc3ByaW50Zih1bW91bnRwcm9nLCAiL3NiaW4vdW1vdW50LiVzIiwgdHlwZSk7CisJCWlmIChzdGF0KHVtb3VudHByb2csICZzdGF0YnVmKSA9PSAwKSB7CisJCQlyZXMgPSBmb3JrKCk7CisJCQlpZiAocmVzID09IDApIHsKKwkJCQljaGFyICp1bW91bnRhcmdzWzhdOworCQkJCWludCBpID0gMDsKKworCQkJCWlmKHNldGdpZChnZXRnaWQoKSkgPCAwKQorCQkJCQlkaWUoRVhfRkFJTCwgXygidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIpLCBzdHJlcnJvcihlcnJubykpOworCisJCQkJaWYoc2V0dWlkKGdldHVpZCgpKSA8IDApCisJCQkJCWRpZShFWF9GQUlMLCBfKCJ1bW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiKSwgc3RyZXJyb3IoZXJybm8pKTsKKworCQkJCXVtb3VudGFyZ3NbaSsrXSA9IHVtb3VudHByb2c7CisJCQkJdW1vdW50YXJnc1tpKytdID0geHN0cmR1cChub2RlKTsKKwkJCQlpZiAobm9tdGFiKQorCQkJCQl1bW91bnRhcmdzW2krK10gPSAiLW4iOworCQkJCWlmIChsYXp5KQorCQkJCQl1bW91bnRhcmdzW2krK10gPSAiLWwiOworCQkJCWlmIChmb3JjZSkKKwkJCQkJdW1vdW50YXJnc1tpKytdID0gIi1mIjsKKwkJCQlpZiAodmVyYm9zZSkKKwkJCQkJdW1vdW50YXJnc1tpKytdID0gIi12IjsKKwkJCQlpZiAocmVtb3VudCkKKwkJCQkJdW1vdW50YXJnc1tpKytdID0gIi1yIjsKKwkJCQl1bW91bnRhcmdzW2ldID0gTlVMTDsKKwkJCQlleGVjdih1bW91bnRwcm9nLCB1bW91bnRhcmdzKTsKKwkJCQlleGl0KDEpOwkvKiBleGVjIGZhaWxlZCAqLworCQkJfSBlbHNlIGlmIChyZXMgIT0gLTEpIHsKKwkJCQlpbnQgc3Q7CisJCQkJd2FpdCgmc3QpOworCQkJCSpzdGF0dXMgPSAoV0lGRVhJVEVEKHN0KSA/IFdFWElUU1RBVFVTKHN0KQorCQkJCQkgICA6IEVYX1NZU0VSUik7CisJCQkJcmV0dXJuIDE7CisJCQl9IGVsc2UgeworCQkJCWludCBlcnJzdiA9IGVycm5vOworCQkJCWVycm9yKF8oInVtb3VudDogY2Fubm90IGZvcms6ICVzIiksCisJCQkJICAgICAgc3RyZXJyb3IoZXJyc3YpKTsKKwkJCX0KKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworLyogY29tcGxhaW4gYWJvdXQgYSBmYWlsZWQgdW1vdW50ICovCitzdGF0aWMgdm9pZCBjb21wbGFpbihpbnQgZXJyLCBjb25zdCBjaGFyICpkZXYpIHsKKworICBpZiAoY29tcGxhaW5lZF9lcnIgPT0gZXJyICYmIGNvbXBsYWluZWRfZGV2ICYmIGRldiAmJgorCQkgIHN0cmNtcChkZXYsIGNvbXBsYWluZWRfZGV2KSA9PSAwKQorICAgIHJldHVybjsKKworICBjb21wbGFpbmVkX2VyciA9IGVycjsKKyAgZnJlZShjb21wbGFpbmVkX2Rldik7CisgIGNvbXBsYWluZWRfZGV2ID0geHN0cmR1cChkZXYpOworCisgIHN3aXRjaCAoZXJyKSB7CisgICAgY2FzZSBFTlhJTzoKKyAgICAgIGVycm9yIChfKCJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIpLCBkZXYpOyBicmVhazsKKyAgICBjYXNlIEVJTlZBTDoKKyAgICAgIGVycm9yIChfKCJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIpLCBkZXYpOyBicmVhazsKKyAgICBjYXNlIEVJTzoKKyAgICAgIGVycm9yIChfKCJ1bW91bnQ6ICVzOiBjYW4ndCB3cml0ZSBzdXBlcmJsb2NrIiksIGRldik7IGJyZWFrOworICAgIGNhc2UgRUJVU1k6CisgICAgIC8qIExldCB1cyBob3BlIGZzdGFiIGhhcyBhIGxpbmUgInByb2MgL3Byb2MgLi4uIgorCWFuZCBub3QgIm5vbmUgL3Byb2MgLi4uIiovCisgICAgICBlcnJvciAoXygidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisJICAgICAgICIgICAgICAgIChJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGFib3V0IHByb2Nlc3NlcyB0aGF0IHVzZVxuIgorCSAgICAgICAiICAgICAgICAgdGhlIGRldmljZSBpcyBmb3VuZCBieSBsc29mKDgpIG9yIGZ1c2VyKDEpKSIpLCBkZXYpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBFTk9FTlQ6CisgICAgICBlcnJvciAoXygidW1vdW50OiAlczogbm90IGZvdW5kIiksIGRldik7IGJyZWFrOworICAgIGNhc2UgRVBFUk06CisgICAgICBlcnJvciAoXygidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IiksIGRldik7IGJyZWFrOworICAgIGNhc2UgRUFDQ0VTOgorICAgICAgZXJyb3IgKF8oInVtb3VudDogJXM6IGJsb2NrIGRldmljZXMgbm90IHBlcm1pdHRlZCBvbiBmcyIpLCBkZXYpOyBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgZXJyb3IgKF8oInVtb3VudDogJXM6ICVzIiksIGRldiwgc3RyZXJyb3IgKGVycikpOyBicmVhazsKKyAgfQorfQorCisvKiBVbW91bnQgYSBzaW5nbGUgZGV2aWNlLiAgUmV0dXJuIGEgc3RhdHVzIGNvZGUsIHNvIGRvbid0IGV4aXQKKyAgIG9uIGEgbm9uLWZhdGFsIGVycm9yLiAgV2UgbG9jay91bmxvY2sgYXJvdW5kIGVhY2ggdW1vdW50LiAgKi8KK3N0YXRpYyBpbnQKK3Vtb3VudF9vbmUgKGNvbnN0IGNoYXIgKnNwZWMsIGNvbnN0IGNoYXIgKm5vZGUsIGNvbnN0IGNoYXIgKnR5cGUsCisJICAgIGNvbnN0IGNoYXIgKm9wdHMsIHN0cnVjdCBtbnRlbnRjaG4gKm1jKSB7CisJaW50IHVtbnRfZXJyID0gMDsKKwlpbnQgaXNyb290OworCWludCByZXM7CisJaW50IHN0YXR1czsKKwljb25zdCBjaGFyICpsb29wZGV2OworCWludCBteWxvb3AgPSAwOworCisJLyogU3BlY2lhbCBjYXNlIGZvciByb290LiAgQXMgb2YgMC45OXBsMTAgd2UgY2FuIChhbG1vc3QpIHVubW91bnQgcm9vdDsKKwkgICB0aGUga2VybmVsIHdpbGwgcmVtb3VudCBpdCByZWFkb25seSBzbyB0aGF0IHdlIGNhbiBjYXJyeSBvbiBydW5uaW5nCisJICAgYWZ0ZXJ3YXJkcy4gIFRoZSByZWFkb25seSByZW1vdW50IGlzIGlsbGVnYWwgaWYgYW55IGZpbGVzIGFyZSBvcGVuZWQKKwkgICBmb3Igd3JpdGluZyBhdCB0aGUgdGltZSwgc28gd2UgY2FuJ3QgdXBkYXRlIG10YWIgZm9yIGFuIHVubW91bnQgb2YKKwkgICByb290LiAgQXMgaXQgaXMgb25seSByZWFsbHkgYSByZW1vdW50LCB0aGlzIGRvZXNuJ3QgbWF0dGVyIHRvbworCSAgIG11Y2guICBbc2N0IE1heSAyOSwgMTk5M10gKi8KKwlpc3Jvb3QgPSAoc3RyZXEgKG5vZGUsICIvIikgfHwgc3RyZXEgKG5vZGUsICJyb290IikKKwkJICB8fCBzdHJlcSAobm9kZSwgInJvb3RmcyIpKTsKKwlpZiAoaXNyb290KQorCQlub210YWIrKzsKKworCS8qCisJICogQ2FsbCB1bW91bnQuVFlQRSBmb3IgdHlwZXMgdGhhdCByZXF1aXJlIGEgc2VwYXJhdGUgdW1vdW50IHByb2dyYW0uCisJICogQWxsIHN1Y2ggc3BlY2lhbCB0aGluZ3MgbXVzdCBvY2N1ciBpc29sYXRlZCBpbiB0aGUgdHlwZXMgc3RyaW5nLgorCSAqLworCWlmIChjaGVja19zcGVjaWFsX3Vtb3VudHByb2coc3BlYywgbm9kZSwgdHlwZSwgJnN0YXR1cykpCisJCXJldHVybiBzdGF0dXM7CisKKwkvKgorCSAqIElnbm9yZSB0aGUgb3B0aW9uICItZCIgZm9yIG5vbi1sb29wIGRldmljZXMgYW5kIGxvb3AgZGV2aWNlcyB3aXRoCisJICogTE9fRkxBR1NfQVVUT0NMRUFSIGZsYWcuCisJICovCisJaWYgKGRlbGxvb3AgJiYgaXNfbG9vcF9kZXZpY2Uoc3BlYykgJiYgIWlzX2xvb3BfYXV0b2NsZWFyKHNwZWMpKQorCQlteWxvb3AgPSAxOworCisJaWYgKGxhenkpIHsKKwkJcmVzID0gdW1vdW50MiAobm9kZSwgTU5UX0RFVEFDSCk7CisJCWlmIChyZXMgPCAwKQorCQkJdW1udF9lcnIgPSBlcnJubzsKKwkJZ290byB3cml0ZW10YWI7CisJfQorCisJaWYgKGZvcmNlKSB7CQkvKiBvbmx5IHN1cHBvcnRlZCBmb3IgTkZTICovCisJCXJlcyA9IHVtb3VudDIgKG5vZGUsIE1OVF9GT1JDRSk7CisJCWlmIChyZXMgPT0gLTEpIHsKKwkJCWludCBlcnJzdiA9IGVycm5vOworCQkJcGVycm9yKCJ1bW91bnQyIik7CisJCQllcnJubyA9IGVycnN2OworCQkJaWYgKGVycm5vID09IEVOT1NZUykgeworCQkJCWlmICh2ZXJib3NlKQorCQkJCQlwcmludGYoXygibm8gdW1vdW50MiwgdHJ5aW5nIHVtb3VudC4uLlxuIikpOworCQkJCXJlcyA9IHVtb3VudCAobm9kZSk7CisJCQl9CisJCX0KKwl9IGVsc2UKKwkJcmVzID0gdW1vdW50IChub2RlKTsKKworCWlmIChyZXMgPCAwKQorCQl1bW50X2VyciA9IGVycm5vOworCisJaWYgKHJlcyA8IDAgJiYgcmVtb3VudCAmJiB1bW50X2VyciA9PSBFQlVTWSkgeworCQkvKiBVbW91bnQgZmFpbGVkIC0gbGV0IHVzIHRyeSBhIHJlbW91bnQgKi8KKwkJcmVzID0gbW91bnQoc3BlYywgbm9kZSwgTlVMTCwKKwkJCSAgICBNU19NR0NfVkFMIHwgTVNfUkVNT1VOVCB8IE1TX1JET05MWSwgTlVMTCk7CisJCWlmIChyZXMgPT0gMCkgeworCQkJc3RydWN0IG15X21udGVudCByZW1udDsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oInVtb3VudDogJXMgYnVzeSAtIHJlbW91bnRlZCByZWFkLW9ubHlcbiIpLAorCQkJCXNwZWMpOworCQkJcmVtbnQubW50X3R5cGUgPSByZW1udC5tbnRfZnNuYW1lID0gTlVMTDsKKwkJCXJlbW50Lm1udF9kaXIgPSB4c3RyZHVwKG5vZGUpOworCQkJcmVtbnQubW50X29wdHMgPSB4c3RyZHVwKCJybyIpOworCQkJaWYgKCFub210YWIpCisJCQkJdXBkYXRlX210YWIobm9kZSwgJnJlbW50KTsKKwkJCXJldHVybiAwOworCQl9IGVsc2UgaWYgKGVycm5vICE9IEVCVVNZKSB7IAkvKiBobW0gLi4uICovCisJCQlwZXJyb3IoInJlbW91bnQiKTsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oInVtb3VudDogY291bGQgbm90IHJlbW91bnQgJXMgcmVhZC1vbmx5XG4iKSwKKwkJCQlzcGVjKTsKKwkJfQorCX0KKworCWxvb3BkZXYgPSAwOworCWlmIChyZXMgPj0gMCkgeworCQkvKiBVbW91bnQgc3VjY2VlZGVkICovCisJCWlmICh2ZXJib3NlKQorCQkJcHJpbnRmIChfKCIlcyB1bW91bnRlZFxuIiksIHNwZWMpOworCisJCS8qIEZyZWUgYW55IGxvb3AgZGV2aWNlcyB0aGF0IHdlIGFsbG9jYXRlZCBvdXJzZWx2ZXMgKi8KKwkJaWYgKG1jKSB7CisJCQljaGFyICpvcHRsOworCisJCQkvKiBvbGQgc3R5bGUgbXRhYiBsaW5lPyAqLworCQkJaWYgKHN0cmVxKG1jLT5tLm1udF90eXBlLCAibG9vcCIpKSB7CisJCQkJbG9vcGRldiA9IHNwZWM7CisJCQkJZ290byBnb3Rsb29wOworCQkJfQorCisJCQkvKiBuZXcgc3R5bGUgbXRhYiBsaW5lPyAqLworCQkJb3B0bCA9IG1jLT5tLm1udF9vcHRzID8geHN0cmR1cChtYy0+bS5tbnRfb3B0cykgOiAiIjsKKwkJCWZvciAob3B0bCA9IHN0cnRvayAob3B0bCwgIiwiKTsgb3B0bDsKKwkJCSAgICAgb3B0bCA9IHN0cnRvayAoTlVMTCwgIiwiKSkgeworCQkJCWlmICghc3RybmNtcChvcHRsLCAibG9vcD0iLCA1KSkgeworCQkJCQlsb29wZGV2ID0gb3B0bCs1OworCQkJCQlnb3RvIGdvdGxvb3A7CisJCQkJfQorCQkJfQorCQl9IGVsc2UgeworCQkJLyoKKwkJCSAqIElmIG9wdGlvbiAiLW8gbG9vcD1zcGVjIiBvY2N1cnMgaW4gbXRhYiwKKwkJCSAqIG5vdGUgdGhlIG1vdW50IHBvaW50LCBhbmQgZGVsZXRlIG10YWIgbGluZS4KKwkJCSAqLworCQkJaWYgKChtYyA9IGdldG1udG9wdGZpbGUgKHNwZWMpKSAhPSBOVUxMKQorCQkJCW5vZGUgPSBtYy0+bS5tbnRfZGlyOworCQl9CisKKwkJLyogQWxzbyBmcmVlIGxvb3AgZGV2aWNlcyB3aGVuIC1kIGZsYWcgaXMgZ2l2ZW4gKi8KKwkJaWYgKG15bG9vcCkKKwkJCWxvb3BkZXYgPSBzcGVjOworCX0KKyBnb3Rsb29wOgorCWlmIChsb29wZGV2KQorCQlkZWxfbG9vcChsb29wZGV2KTsKKworIHdyaXRlbXRhYjoKKwlpZiAoIW5vbXRhYiAmJgorCSAgICAodW1udF9lcnIgPT0gMCB8fCB1bW50X2VyciA9PSBFSU5WQUwgfHwgdW1udF9lcnIgPT0gRU5PRU5UKSkgeworCQl1cGRhdGVfbXRhYiAobm9kZSwgTlVMTCk7CisJfQorCisJaWYgKHJlcyA+PSAwKQorCQlyZXR1cm4gMDsKKwlpZiAodW1udF9lcnIpCisJCWNvbXBsYWluKHVtbnRfZXJyLCBub2RlKTsKKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIHVtb3VudF9vbmVfYnc6IHVubW91bnQgRklMRSB0aGF0IGhhcyBsYXN0IG9jY3VycmVuY2UgTUMwCisgKgorICogV2h5IHRoaXMgbG9vcD8KKyAqIDEuIFBlb3BsZSB3aG8gYm9vdCBhIHN5c3RlbSB3aXRoIGEgYmFkIGZzdGFiIHJvb3QgZW50cnkKKyAqICAgIHdpbGwgZ2V0IGFuIGluY29ycmVjdCAiL2Rldi9mb28gb24gLyIgaW4gbXRhYi4KKyAqICAgIElmIGxhdGVyIC9kZXYvZm9vIGlzIGFjdHVhbGx5IG1vdW50ZWQgZWxzZXdoZXJlLAorICogICAgaXQgd2lsbCBvY2N1ciB0d2ljZSBpbiBtdGFiLgorICogMi4gV2l0aCBvdmVybW91bnRpbmcgb25lIGNhbiBnZXQgdGhlIHNpdHVhdGlvbiB0aGF0CisgKiAgICB0aGUgc2FtZSBmaWxlbmFtZSBpcyB1c2VkIGFzIG1vdW50IHBvaW50IHR3aWNlLgorICogSW4gYm90aCBjYXNlcywgaXQgaXMgYmVzdCB0byB0cnkgdGhlIGxhc3Qgb2NjdXJyZW5jZSBmaXJzdC4KKyAqLworc3RhdGljIGludAordW1vdW50X29uZV9idyAoY29uc3QgY2hhciAqZmlsZSwgc3RydWN0IG1udGVudGNobiAqbWMwKSB7CisJc3RydWN0IG1udGVudGNobiAqbWM7CisJaW50IHJlcyA9IDE7CisKKwltYyA9IG1jMDsKKwl3aGlsZSAocmVzICYmIG1jKSB7CisJCXJlcyA9IHVtb3VudF9vbmUobWMtPm0ubW50X2ZzbmFtZSwgbWMtPm0ubW50X2RpciwKKwkJCQkgbWMtPm0ubW50X3R5cGUsIG1jLT5tLm1udF9vcHRzLCBtYyk7CisJCW1jID0gZ2V0bW50ZGlyYmFja3dhcmQoZmlsZSwgbWMpOworCX0KKwltYyA9IG1jMDsKKwl3aGlsZSAocmVzICYmIG1jKSB7CisJCXJlcyA9IHVtb3VudF9vbmUobWMtPm0ubW50X2ZzbmFtZSwgbWMtPm0ubW50X2RpciwKKwkJCQkgbWMtPm0ubW50X3R5cGUsIG1jLT5tLm1udF9vcHRzLCBtYyk7CisJCW1jID0gZ2V0bW50ZGV2YmFja3dhcmQoZmlsZSwgbWMpOworCX0KKwlyZXR1cm4gcmVzOworfQorCisvKiBVbm1vdW50IGFsbCBmaWxlc3lzdGVtcyBvZiB0eXBlIFZGU1RZUEVTIGZvdW5kIGluIG10YWIuICBTaW5jZSB3ZSBhcmUKKyAgIGNvbmN1cnJlbnRseSB1cGRhdGluZyBtdGFiIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwgdW1vdW50LCB3ZSBoYXZlIHRvCisgICBzbHVycCBpbiB0aGUgZW50aXJlIGZpbGUgYmVmb3JlIHdlIHN0YXJ0LiAgVGhpcyBpc24ndCB0b28gYmFkLCBiZWNhdXNlCisgICBpbiBhbnkgY2FzZSBpdCdzIGltcG9ydGFudCB0byB1bW91bnQgbXRhYiBlbnRyaWVzIGluIHJldmVyc2Ugb3JkZXIKKyAgIHRvIG1vdW50LCBlLmcuIC91c3Ivc3Bvb2wgYmVmb3JlIC91c3IuICAqLworc3RhdGljIGludAordW1vdW50X2FsbCAoY2hhciAqdHlwZXMsIGNoYXIgKnRlc3Rfb3B0cykgeworICAgICBzdHJ1Y3QgbW50ZW50Y2huICptYywgKmhkOworICAgICBpbnQgZXJyb3JzID0gMDsKKworICAgICBoZCA9IG10YWJfaGVhZCgpOworICAgICBpZiAoIWhkLT5wcmV2KQorCSAgZGllICgyLCBfKCJ1bW91bnQ6IGNhbm5vdCBmaW5kIGxpc3Qgb2YgZmlsZXN5c3RlbXMgdG8gdW5tb3VudCIpKTsKKyAgICAgZm9yIChtYyA9IGhkLT5wcmV2OyBtYyAhPSBoZDsgbWMgPSBtYy0+cHJldikgeworCSAgaWYgKG1hdGNoaW5nX3R5cGUgKG1jLT5tLm1udF90eXBlLCB0eXBlcykKKwkgICAgICAmJiBtYXRjaGluZ19vcHRzIChtYy0+bS5tbnRfb3B0cywgdGVzdF9vcHRzKSkgeworCSAgICAgICBlcnJvcnMgfD0gdW1vdW50X29uZSAobWMtPm0ubW50X2ZzbmFtZSwgbWMtPm0ubW50X2RpciwKKwkJCQkgICAgIG1jLT5tLm1udF90eXBlLCBtYy0+bS5tbnRfb3B0cywgbWMpOworCSAgfQorICAgICB9CisKKyAgICAgc3luYyAoKTsKKyAgICAgcmV0dXJuIGVycm9yczsKK30KKworc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9Cit7CisgIHsgImFsbCIsIDAsIDAsICdhJyB9LAorICB7ICJmb3JjZSIsIDAsIDAsICdmJyB9LAorICB7ICJoZWxwIiwgMCwgMCwgJ2gnIH0sCisgIHsgIm5vLW10YWIiLCAwLCAwLCAnbicgfSwKKyAgeyAidGVzdC1vcHRzIiwgMSwgMCwgJ08nIH0sCisgIHsgInZlcmJvc2UiLCAwLCAwLCAndicgfSwKKyAgeyAidmVyc2lvbiIsIDAsIDAsICdWJyB9LAorICB7ICJyZWFkLW9ubHkiLCAwLCAwLCAncicgfSwKKyAgeyAidHlwZXMiLCAxLCAwLCAndCcgfSwKKworICB7ICJuby1jYW5vbmljYWxpemUiLCAwLCAwLCAxNDQgfSwKKyAgeyBOVUxMLCAwLCAwLCAwIH0KK307CisKK3N0YXRpYyB2b2lkCit1c2FnZSAoRklMRSAqZnAsIGludCBuKQoreworICBmcHJpbnRmIChmcCwgXygiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisJICAgICAgICIgICAgICAgdW1vdW50IC1hIFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgdmZzdHlwZXNdIFstTyBvcHRzXVxuIgorCSAgICAgICAiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIpKTsKKyAgZXhpdCAobik7Cit9CisKKy8qCisgKiBMb29rIGZvciBhbiBvcHRpb24gaW4gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdAorICovCitzdGF0aWMgaW50Citjb250YWlucyhjb25zdCBjaGFyICpsaXN0LCBjb25zdCBjaGFyICpzKSB7CisJaW50IG4gPSBzdHJsZW4ocyk7CisKKwl3aGlsZSAobGlzdCAmJiAqbGlzdCkgeworCQlpZiAoc3RybmNtcChsaXN0LCBzLCBuKSA9PSAwICYmCisJCSAgICAobGlzdFtuXSA9PSAwIHx8IGxpc3Rbbl0gPT0gJywnKSkKKwkJCXJldHVybiAxOworCQl3aGlsZSAoKmxpc3QgJiYgKmxpc3QrKyAhPSAnLCcpIDsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBJZiBsaXN0IGNvbnRhaW5zICJ1c2VyPXBldGVyIiBhbmQgd2UgYXNrIGZvciAidXNlcj0iLCByZXR1cm4gInBldGVyIgorICovCitzdGF0aWMgY2hhciAqCitnZXRfdmFsdWUoY29uc3QgY2hhciAqbGlzdCwgY29uc3QgY2hhciAqcykgeworCWNvbnN0IGNoYXIgKnQ7CisJaW50IG4gPSBzdHJsZW4ocyk7CisKKwl3aGlsZSAobGlzdCAmJiAqbGlzdCkgeworCQlpZiAoc3RybmNtcChsaXN0LCBzLCBuKSA9PSAwKSB7CisJCQlzID0gdCA9IGxpc3QrbjsKKwkJCXdoaWxlICgqcyAmJiAqcyAhPSAnLCcpCisJCQkJcysrOworCQkJcmV0dXJuIHhzdHJuZHVwKHQsIHMtdCk7CisJCX0KKwkJd2hpbGUgKCpsaXN0ICYmICpsaXN0KysgIT0gJywnKSA7CisJfQorCXJldHVybiBOVUxMOworfQorCisvKiBjaGVjayBpZiBAbWMgY29udGFpbnMgYSBsb29wIGRldmljZSB3aGljaCBpcyBhc3NvY2lhdGVkCisgKiB3aXRoIHRoZSBAZmlsZSBpbiBmcworICovCitzdGF0aWMgaW50Citpc192YWxpZF9sb29wKHN0cnVjdCBtbnRlbnRjaG4gKm1jLCBzdHJ1Y3QgbW50ZW50Y2huICpmcykKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgb2Zmc2V0ID0gMDsKKwljaGFyICpwOworCisJLyogY2hlY2sgaWYgaXQgYmVnaW5zIHdpdGggL2Rldi9sb29wICovCisJaWYgKHN0cm5jbXAobWMtPm0ubW50X2ZzbmFtZSwgX1BBVEhfREVWX0xPT1AsCisJCQkJc2l6ZW9mKF9QQVRIX0RFVl9MT09QKSAtIDEpKQorCQlyZXR1cm4gMDsKKworCS8qIGNoZWNrIGZvciBsb29wIG9wdGlvbiBpbiBmc3RhYiAqLworCWlmICghY29udGFpbnMoZnMtPm0ubW50X29wdHMsICJsb29wIikpCisJCXJldHVybiAwOworCisJLyogY2hlY2sgZm9yIG9mZnNldCBvcHRpb24gaW4gZnN0YWIgKi8KKwlwID0gZ2V0X3ZhbHVlKGZzLT5tLm1udF9vcHRzLCAib2Zmc2V0PSIpOworCWlmIChwKQorCQlvZmZzZXQgPSBzdHJ0b3VsbChwLCBOVUxMLCAxMCk7CisKKwkvKiBjaGVjayBhc3NvY2lhdGlvbiAqLworCWlmIChsb29wZmlsZV91c2VkX3dpdGgoKGNoYXIgKikgbWMtPm0ubW50X2ZzbmFtZSwKKwkJCQlmcy0+bS5tbnRfZnNuYW1lLCBvZmZzZXQpID09IDEpIHsKKwkJaWYgKHZlcmJvc2UgPiAxKQorCQkJcHJpbnRmKF8oImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIpLAorCQkJICAgICAgIG1jLT5tLm1udF9mc25hbWUsIGZzLT5tLm1udF9mc25hbWUpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAodmVyYm9zZSA+IDEpCisJCXByaW50ZihfKCJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIiksCisJCSAgICAgICBtYy0+bS5tbnRfZnNuYW1lLCBmcy0+bS5tbnRfZnNuYW1lKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAordW1vdW50X2ZpbGUgKGNoYXIgKmFyZykgeworCXN0cnVjdCBtbnRlbnRjaG4gKm1jLCAqZnM7CisJY29uc3QgY2hhciAqZmlsZSwgKm9wdGlvbnM7CisJaW50IGZzdGFiX2hhc191c2VyLCBmc3RhYl9oYXNfdXNlcnMsIGZzdGFiX2hhc19vd25lciwgZnN0YWJfaGFzX2dyb3VwOworCWludCBvazsKKworCWlmICghKmFyZykgewkJLyogIiIgd291bGQgYmUgZXhwYW5kZWQgdG8gYHB3ZGAgKi8KKwkJZGllKDIsIF8oIkNhbm5vdCB1bW91bnQgXCJcIlxuIikpOworCQlyZXR1cm4gMDsKKwl9CisKKwlmaWxlID0gY2Fub25pY2FsaXplKGFyZyk7IC8qIG10YWIgcGF0aHMgYXJlIGNhbm9uaWNhbGl6ZWQgKi8KKwlpZiAodmVyYm9zZSA+IDEpCisJCXByaW50ZihfKCJUcnlpbmcgdG8gdW1vdW50ICVzXG4iKSwgZmlsZSk7CisKKwltYyA9IGdldG1udGRpcmJhY2t3YXJkKGZpbGUsIE5VTEwpOworCWlmICghbWMpIHsKKwkJbWMgPSBnZXRtbnRkZXZiYWNrd2FyZChmaWxlLCBOVUxMKTsKKwkJaWYgKG1jKSB7CisJCQlzdHJ1Y3QgbW50ZW50Y2huICptYzE7CisKKwkJCW1jMSA9IGdldG1udGRpcmJhY2t3YXJkKG1jLT5tLm1udF9kaXIsIE5VTEwpOworCQkJaWYgKCFtYzEpCisJCQkJLyogJ21jMScgbXVzdCBleGlzdCwgdGhvdWdoIG5vdCBuZWNlc3NhcmlseQorCQkJCSAgICBlcXVhbHMgdG8gYG1jJy4gT3RoZXJ3aXNlIHdlIGdvIG1hZC4gKi8KKwkJCQlkaWUoRVhfU09GVFdBUkUsCisJCQkJICAgIF8oInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIpKTsKKworCQkJaWYgKHN0cmNtcChmaWxlLCBtYzEtPm0ubW50X2ZzbmFtZSkpIHsKKwkJCQkvKiBTb21ldGhpbmcgd2FzIHN0YWNrZWQgb3ZlciBgZmlsZScgb24gdGhlCisJCQkJICAgc2FtZSBtb3VudCBwb2ludC4gKi8KKwkJCQlkaWUoRVhfRkFJTCwgXygidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzICIKKwkJCQkgICAgIm1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iKSwKKwkJCQkgICAgZmlsZSwgbWMxLT5tLm1udF9mc25hbWUpOworCQkJfQorCQl9CisJfQorCWlmICghbWMgJiYgdmVyYm9zZSkKKwkJcHJpbnRmKF8oIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIpLCBmaWxlKTsKKworCWlmIChyZXN0cmljdGVkKSB7CisJCWNoYXIgKm10YWJfdXNlciA9IE5VTEw7CisKKwkJaWYgKCFtYykKKwkJCWRpZSgyLAorCQkJICAgIF8oInVtb3VudDogJXMgaXMgbm90IG1vdW50ZWQgKGFjY29yZGluZyB0byBtdGFiKSIpLAorCQkJICAgIGZpbGUpOworCQkvKgorCQkgKiB1aGVscGVyIC0gdW5wcml2aWxlZ2VkIHVtb3VudCBoZWxwZXIKKwkJICogLS0gZXh0ZXJuYWwgdW1vdW50IChmb3IgZXhhbXBsZSBIQUwgbW91bnRzKQorCQkgKi8KKwkJaWYgKGV4dGVybmFsX2FsbG93ZWQpIHsKKwkJCWNoYXIgKnVoZWxwZXIgPSBOVUxMOworCisJCQlpZiAobWMtPm0ubW50X29wdHMpCisJCQkJdWhlbHBlciA9IGdldF92YWx1ZShtYy0+bS5tbnRfb3B0cywgInVoZWxwZXI9Iik7CisJCQlpZiAodWhlbHBlcikgeworCQkJCWludCBzdGF0dXMgPSAwOworCQkJCWlmIChjaGVja19zcGVjaWFsX3Vtb3VudHByb2coYXJnLCBhcmcsCisJCQkJCQkJdWhlbHBlciwgJnN0YXR1cykpCisJCQkJCXJldHVybiBzdGF0dXM7CisJCQl9CisJCX0KKworCQkvKiBUaGUgMi40IGtlcm5lbCB3aWxsIGdlbmVyYWxseSByZWZ1c2UgdG8gbW91bnQgdGhlIHNhbWUKKwkJICAgZmlsZXN5c3RlbSBvbiB0aGUgc2FtZSBtb3VudCBwb2ludCwgYnV0IHdpbGwgYWNjZXB0IE5GUy4KKwkJICAgU28sIHVubW91bnRpbmcgbXVzdCBiZSBwb3NzaWJsZS4gKi8KKwkJaWYgKCFpc19tb3VudGVkX29uY2UoZmlsZSkgJiYgc3RyY21wKG1jLT5tLm1udF90eXBlLCJuZnMiKSkKKwkJCWRpZSgyLAorCQkJICAgIF8oInVtb3VudDogaXQgc2VlbXMgJXMgaXMgbW91bnRlZCBtdWx0aXBsZSB0aW1lcyIpLAorCQkJICAgIGZpbGUpOworCisJCS8qIElmIGZzdGFiIGNvbnRhaW5zIHRoZSB0d28gbGluZXMKKwkJICAgL2Rldi9zZGExIC9tbnQvemlwIGF1dG8gdXNlcixub2F1dG8gIDAgMAorCQkgICAvZGV2L3NkYTQgL21udC96aXAgYXV0byB1c2VyLG5vYXV0byAgMCAwCisJCSAgIHRoZW4gIm1vdW50IC9kZXYvc2RhNCIgZm9sbG93ZWQgYnkgInVtb3VudCAvbW50L3ppcCIKKwkJICAgdXNlZCB0byBmYWlsLiBTbywgd2UgbXVzdCBub3QgbG9vayBmb3IgZmlsZSwgYnV0IGZvcgorCQkgICB0aGUgcGFpciAoZGV2LGZpbGUpIGluIGZzdGFiLiAqLworCQlmcyA9IGdldGZzX2J5X2RldmRpcihtYy0+bS5tbnRfZnNuYW1lLCBtYy0+bS5tbnRfZGlyKTsKKwkJaWYgKCFmcykgeworCQkJZnMgPSBnZXRmc19ieV9kaXIoZmlsZSk7CisJCQlpZiAoIWZzICYmICFnZXRmc19ieV9zcGVjKGZpbGUpKQorCQkJCWRpZSAoMiwKKwkJCQkgICAgIF8oInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAiCisJCQkJICAgICAgICIoYW5kIHlvdSBhcmUgbm90IHJvb3QpIiksCisJCQkJICAgICBmaWxlKTsKKworCQkJLyogc3BlYyBjb3VsZCBiZSBhIGZpbGUgd2hpY2ggaXMgbG9vcCBtb3VudGVkICovCisJCQlpZiAoZnMgJiYgIWlzX3ZhbGlkX2xvb3AobWMsIGZzKSkKKwkJCQlkaWUgKDIsIF8oInVtb3VudDogJXMgbW91bnQgZGlzYWdyZWVzIHdpdGggIgorCQkJCQkgICJ0aGUgZnN0YWIiKSwgZmlsZSk7CisJCX0KKworCQkvKgorCQkgKiBVc2VyIG1vdW50aW5nIGFuZCB1bm1vdW50aW5nIGlzIGFsbG93ZWQgb25seQorCQkgKiBpZiBmc3RhYiBjb250YWlucyBvbmUgb2YgdGhlIG9wdGlvbnMgYHVzZXInLAorCQkgKiBgdXNlcnMnIG9yIGBvd25lcicgb3IgYGdyb3VwJy4KKwkJICoKKwkJICogVGhlIG9wdGlvbiBgdXNlcnMnIGFsbG93cyBhcmJpdHJhcnkgdXNlcnMgdG8gbW91bnQKKwkJICogYW5kIHVubW91bnQgLSB0aGlzIG1heSBiZSBhIHNlY3VyaXR5IHJpc2suCisJCSAqCisJCSAqIFRoZSBvcHRpb25zIGB1c2VyJywgYG93bmVyJyBhbmQgYGdyb3VwJyBvbmx5IGFsbG93CisJCSAqIHVubW91bnRpbmcgYnkgdGhlIHVzZXIgdGhhdCBtb3VudGVkICh2aXNpYmxlIGluIG10YWIpLgorCQkgKi8KKworCQlvcHRpb25zID0gZnMtPm0ubW50X29wdHM7CisJCWlmICghb3B0aW9ucykKKwkJCW9wdGlvbnMgPSAiIjsKKwkJZnN0YWJfaGFzX3VzZXIgPSBjb250YWlucyhvcHRpb25zLCAidXNlciIpOworCQlmc3RhYl9oYXNfdXNlcnMgPSBjb250YWlucyhvcHRpb25zLCAidXNlcnMiKTsKKwkJZnN0YWJfaGFzX293bmVyID0gY29udGFpbnMob3B0aW9ucywgIm93bmVyIik7CisJCWZzdGFiX2hhc19ncm91cCA9IGNvbnRhaW5zKG9wdGlvbnMsICJncm91cCIpOworCQlvayA9IDA7CisKKwkJaWYgKGZzdGFiX2hhc191c2VycykKKwkJCW9rID0gMTsKKworCQlpZiAoIW9rICYmIChmc3RhYl9oYXNfdXNlciB8fCBmc3RhYl9oYXNfb3duZXIgfHwKKwkJCSAgICBmc3RhYl9oYXNfZ3JvdXApKSB7CisJCQljaGFyICp1c2VyID0gZ2V0dXNlcm5hbWUoKTsKKworCQkJb3B0aW9ucyA9IG1jLT5tLm1udF9vcHRzOworCQkJaWYgKCFvcHRpb25zKQorCQkJCW9wdGlvbnMgPSAiIjsKKwkJCW10YWJfdXNlciA9IGdldF92YWx1ZShvcHRpb25zLCAidXNlcj0iKTsKKworCQkJaWYgKHVzZXIgJiYgbXRhYl91c2VyICYmIHN0cmVxICh1c2VyLCBtdGFiX3VzZXIpKQorCQkJCW9rID0gMTsKKwkJfQorCQlpZiAoIW9rKQorCQkJZGllICgyLCBfKCJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIpLAorCQkJICAgICBtdGFiX3VzZXIgPyBtdGFiX3VzZXIgOiAicm9vdCIsCisJCQkgICAgIGZzLT5tLm1udF9mc25hbWUsIGZzLT5tLm1udF9kaXIpOworCX0KKworCWlmIChtYykKKwkJcmV0dXJuIHVtb3VudF9vbmVfYncgKGZpbGUsIG1jKTsKKwllbHNlCisJCXJldHVybiB1bW91bnRfb25lIChhcmcsIGFyZywgYXJnLCBhcmcsIE5VTEwpOworfQorCitpbnQKK21haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKKwlpbnQgYzsKKwlpbnQgYWxsID0gMDsKKwljaGFyICp0eXBlcyA9IE5VTEwsICp0ZXN0X29wdHMgPSBOVUxMLCAqcDsKKwlpbnQgcmVzdWx0ID0gMDsKKworCXNhbml0aXplX2VudigpOworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlwcm9nbmFtZSA9IGFyZ3ZbMF07CisJaWYgKChwID0gc3RycmNocihwcm9nbmFtZSwgJy8nKSkgIT0gTlVMTCkKKwkJcHJvZ25hbWUgPSBwKzE7CisKKwl1bWFzaygwMjIpOworCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcgKGFyZ2MsIGFyZ3YsICJhZGZobG5yaXQ6Tzp2ViIsCisJCQkJIGxvbmdvcHRzLCBOVUxMKSkgIT0gLTEpCisJCXN3aXRjaCAoYykgeworCQljYXNlICdhJzoJCS8qIHVtb3VudCBldmVyeXRoaW5nICovCisJCQkrK2FsbDsKKwkJCWJyZWFrOworCQkJLyogZmFsbCB0aHJvdWdoPyAqLworCQljYXNlICdkJzoJCS8qIGRvIGxvc2V0dXAgLWQgZm9yIHVubW91bnRlZCBsb29wIGRldmljZXMgKi8KKwkJCSsrZGVsbG9vcDsKKwkJCWJyZWFrOworCQljYXNlICdmJzoJCS8qIGZvcmNlIHVtb3VudCAqLworCQkJKytmb3JjZTsKKwkJCWJyZWFrOworCQljYXNlICdoJzoJCS8qIGhlbHAgKi8KKwkJCXVzYWdlIChzdGRvdXQsIDApOworCQkJYnJlYWs7CisJCWNhc2UgJ2wnOgkJLyogbGF6eSB1bW91bnQgKi8KKwkJCSsrbGF6eTsKKwkJCWJyZWFrOworCQljYXNlICduJzoJCS8qIGRvIG5vdCB3cml0ZSBpbiAvZXRjL210YWIgKi8KKwkJCSsrbm9tdGFiOworCQkJYnJlYWs7CisJCWNhc2UgJ08nOgkJLyogc3BlY2lmeSBmaWxlIHN5c3RlbSBvcHRpb25zICovCisJCQl0ZXN0X29wdHMgPSBvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAncic6CQkvKiByZW1vdW50IHJlYWQtb25seSBpZiB1bW91bnQgZmFpbHMgKi8KKwkJCSsrcmVtb3VudDsKKwkJCWJyZWFrOworCQljYXNlICd2JzoJCS8qIG1ha2Ugbm9pc2UgKi8KKwkJCSsrdmVyYm9zZTsKKwkJCWJyZWFrOworCQljYXNlICdWJzoJCS8qIHZlcnNpb24gKi8KKwkJCXByaW50ZiAoInVtb3VudCAoJXMpXG4iLCBQQUNLQUdFX1NUUklORyk7CisJCQlleGl0ICgwKTsKKwkJY2FzZSAndCc6CQkvKiBzcGVjaWZ5IGZpbGUgc3lzdGVtIHR5cGUgKi8KKwkJCXR5cGVzID0gb3B0YXJnOworCQkJYnJlYWs7CisJCWNhc2UgJ2knOgorCQkJZXh0ZXJuYWxfYWxsb3dlZCA9IDA7CisJCQlicmVhazsKKwkJY2FzZSAxNDQ6CisJCQlub2Nhbm9uaWNhbGl6ZSA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAwOgorCQkJYnJlYWs7CisJCWNhc2UgJz8nOgorCQlkZWZhdWx0OgorCQkJdXNhZ2UgKHN0ZGVyciwgMSk7CisJCX0KKworCXsKKwkJY29uc3QgdWlkX3QgcnVpZCA9IGdldHVpZCgpOworCQljb25zdCB1aWRfdCBldWlkID0gZ2V0ZXVpZCgpOworCisJCS8qIGlmIHdlJ3JlIHJlYWxseSByb290IGFuZCBhcmVuJ3QgcnVubmluZyBzZXR1aWQgKi8KKwkJaWYgKCgodWlkX3QpMCA9PSBydWlkKSAmJiAocnVpZCA9PSBldWlkKSkgeworCQkJcmVzdHJpY3RlZCA9IDA7CisJCX0KKwl9CisKKwlpZiAocmVzdHJpY3RlZCAmJgorCSAgICAoYWxsIHx8IHR5cGVzIHx8IG5vbXRhYiB8fCBmb3JjZSB8fCByZW1vdW50IHx8IG5vY2Fub25pY2FsaXplKSkgeworCQlkaWUgKDIsIF8oInVtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IikpOworCX0KKworCWFyZ2MgLT0gb3B0aW5kOworCWFyZ3YgKz0gb3B0aW5kOworCisJYXRleGl0KHVubG9ja19tdGFiKTsKKworCWlmIChhbGwpIHsKKwkJLyogbm9kZXYgc3R1ZmY6IHN5c2ZzLCB1c2Jmcywgb3Byb2ZpbGVmcywgLi4uICovCisJCWlmICh0eXBlcyA9PSBOVUxMKQorCQkJdHlwZXMgPSAibm9wcm9jLG5vZGV2ZnMsbm9kZXZwdHMsbm9zeXNmcyxub3JwY19waXBlZnMsbm9uZnNkIjsKKwkJcmVzdWx0ID0gdW1vdW50X2FsbCAodHlwZXMsIHRlc3Rfb3B0cyk7CisJfSBlbHNlIGlmIChhcmdjIDwgMSkgeworCQl1c2FnZSAoc3RkZXJyLCAyKTsKKwl9IGVsc2Ugd2hpbGUgKGFyZ2MtLSkgeworCQlyZXN1bHQgKz0gdW1vdW50X2ZpbGUoKmFyZ3YrKyk7CisJfQorCWV4aXQgKHJlc3VsdCk7CQkvKiBub256ZXJvIG9uIGF0IGxlYXN0IG9uZSBmYWlsdXJlICovCit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC94bWFsbG9jLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC94bWFsbG9jLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZkMDlmZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3htYWxsb2MuYwpAQCAtMCwwICsxLDQ4IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4JLyogc3RyZHVwKCkgKi8KKyNpbmNsdWRlICJ4bWFsbG9jLmgiCisjaW5jbHVkZSAibmxzLmgiCS8qIF8oKSAqLworI2luY2x1ZGUgInN1bmRyaWVzLmgiCS8qIEVYX1NZU0VSUiAqLworCitzdGF0aWMgdm9pZAorZGllX2lmX251bGwodm9pZCAqdCkgeworCWlmICh0ID09IE5VTEwpCisJCWRpZShFWF9TWVNFUlIsIF8oIm5vdCBlbm91Z2ggbWVtb3J5IikpOworfQorCit2b2lkICoKK3htYWxsb2MgKHNpemVfdCBzaXplKSB7CisJdm9pZCAqdDsKKworCWlmIChzaXplID09IDApCisJCXJldHVybiBOVUxMOworCisJdCA9IG1hbGxvYyhzaXplKTsKKwlkaWVfaWZfbnVsbCh0KTsKKworCXJldHVybiB0OworfQorCit2b2lkICoKK3hyZWFsbG9jICh2b2lkICpwLCBzaXplX3Qgc2l6ZSkgeworCXZvaWQgKnQ7CisKKwl0ID0gcmVhbGxvYyhwLCBzaXplKTsKKwlkaWVfaWZfbnVsbCh0KTsKKworCXJldHVybiB0OworfQorCitjaGFyICoKK3hzdHJkdXAgKGNvbnN0IGNoYXIgKnMpIHsKKwljaGFyICp0OworCisJaWYgKHMgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwl0ID0gc3RyZHVwKHMpOworCWRpZV9pZl9udWxsKHQpOworCisJcmV0dXJuIHQ7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC94bWFsbG9jLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9tb3VudC94bWFsbG9jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZjMGE3ZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL21vdW50L3htYWxsb2MuaApAQCAtMCwwICsxLDE0IEBACisjaWZuZGVmIE1PVU5UX1hNQUxMT0NfSAorI2RlZmluZSBNT1VOVF9YTUFMTE9DX0gKKworZXh0ZXJuIHZvaWQgKnhtYWxsb2Moc2l6ZV90IHNpemUpOworZXh0ZXJuIHZvaWQgKnhyZWFsbG9jKHZvaWQgKnAsIHNpemVfdCBzaXplKTsKK2V4dGVybiBjaGFyICp4c3RyZHVwKGNvbnN0IGNoYXIgKnMpOworCisvKgorICogZnJlZShwKTsgd2hlbiAncCcgaXMgJ2NvbnN0IGNoYXIgKicgbWFrZXMgZ2NjIHVuaGFwcHk6CisgKiAgICB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2Yg4oCYZnJlZeKAmSBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQorICovCisjZGVmaW5lIG15X2ZyZWUoX3ApCWZyZWUoKHZvaWQgKikgX3ApCisKKyNlbmRpZiAgLyogTU9VTlRfWE1BTExPQ19IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9NYWtlZmlsZS5hbSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzOGYzMjIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDE1IEBACitpbmNsdWRlICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KKworaWYgQlVJTERfUEFSVFgKKwordXNyc2Jpbl9leGVjX1BST0dSQU1TID0gYWRkcGFydCBkZWxwYXJ0IHBhcnR4CitwYXJ0eF9TT1VSQ0VTID0gYnNkLmMgZG9zLmMgcGFydHguYyBzb2xhcmlzLmMgdW5peHdhcmUuYyBncHQuYyBjcmMzMi5jIFwKKwkJZWZpLmggZ3B0LmggY3JjMzIuaCBwYXJ0eC5oIGRvcy5oIC4uL2xpYi9ibGtkZXYuYworCitpZiBMSU5VWAorcGFydHhfU09VUkNFUyArPSAuLi9saWIvbGludXhfdmVyc2lvbi5jCitlbmRpZgorCitkaXN0X21hbl9NQU5TID0gYWRkcGFydC44IGRlbHBhcnQuOCBwYXJ0eC44CisKK2VuZGlmCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZTY0MWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDc1MCBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoYW1fX2Rpc3Rfbm9pbnN0X0RBVEFfRElTVCkgJChkaXN0X21hbl9NQU5TKSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorQEJVSUxEX1BBUlRYX1RSVUVAdXNyc2Jpbl9leGVjX1BST0dSQU1TID0gYWRkcGFydCQoRVhFRVhUKSBcCitAQlVJTERfUEFSVFhfVFJVRUAJZGVscGFydCQoRVhFRVhUKSBwYXJ0eCQoRVhFRVhUKQorQEJVSUxEX1BBUlRYX1RSVUVAQExJTlVYX1RSVUVAYW1fX2FwcGVuZF8xID0gLi4vbGliL2xpbnV4X3ZlcnNpb24uYworc3ViZGlyID0gcGFydHgKK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL200L2dldHRleHQubTQgXAorCSQodG9wX3NyY2RpcikvbTQvZ3RrLWRvYy5tNCAkKHRvcF9zcmNkaXIpL200L2ljb252Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1sZC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYi1saW5rLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1wcmVmaXgubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbmxzLm00ICQodG9wX3NyY2RpcikvbTQvcG8ubTQgXAorCSQodG9wX3NyY2RpcikvbTQvcHJvZ3Rlc3QubTQgJCh0b3Bfc3JjZGlyKS9tNC90bHMubTQgXAorCSQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oCitDT05GSUdfQ0xFQU5fRklMRVMgPQorQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpIiBcCisJIiQoREVTVERJUikkKG1hbjhkaXIpIgorUFJPR1JBTVMgPSAkKHVzcnNiaW5fZXhlY19QUk9HUkFNUykKK2FkZHBhcnRfU09VUkNFUyA9IGFkZHBhcnQuYworYWRkcGFydF9PQkpFQ1RTID0gYWRkcGFydC4kKE9CSkVYVCkKK2FkZHBhcnRfTERBREQgPSAkKExEQUREKQorQU1fVl9sdCA9ICQoYW1fX3ZfbHRfJChWKSkKK2FtX192X2x0XyA9ICQoYW1fX3ZfbHRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9sdF8wID0gLS1zaWxlbnQKK2RlbHBhcnRfU09VUkNFUyA9IGRlbHBhcnQuYworZGVscGFydF9PQkpFQ1RTID0gZGVscGFydC4kKE9CSkVYVCkKK2RlbHBhcnRfTERBREQgPSAkKExEQUREKQorYW1fX3BhcnR4X1NPVVJDRVNfRElTVCA9IGJzZC5jIGRvcy5jIHBhcnR4LmMgc29sYXJpcy5jIHVuaXh3YXJlLmMgXAorCWdwdC5jIGNyYzMyLmMgZWZpLmggZ3B0LmggY3JjMzIuaCBwYXJ0eC5oIGRvcy5oIFwKKwkuLi9saWIvYmxrZGV2LmMgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQEJVSUxEX1BBUlRYX1RSVUVAQExJTlVYX1RSVUVAYW1fX29iamVjdHNfMSA9IGxpbnV4X3ZlcnNpb24uJChPQkpFWFQpCitAQlVJTERfUEFSVFhfVFJVRUBhbV9wYXJ0eF9PQkpFQ1RTID0gYnNkLiQoT0JKRVhUKSBkb3MuJChPQkpFWFQpIFwKK0BCVUlMRF9QQVJUWF9UUlVFQAlwYXJ0eC4kKE9CSkVYVCkgc29sYXJpcy4kKE9CSkVYVCkgXAorQEJVSUxEX1BBUlRYX1RSVUVACXVuaXh3YXJlLiQoT0JKRVhUKSBncHQuJChPQkpFWFQpIFwKK0BCVUlMRF9QQVJUWF9UUlVFQAljcmMzMi4kKE9CSkVYVCkgYmxrZGV2LiQoT0JKRVhUKSBcCitAQlVJTERfUEFSVFhfVFJVRUAJJChhbV9fb2JqZWN0c18xKQorcGFydHhfT0JKRUNUUyA9ICQoYW1fcGFydHhfT0JKRUNUUykKK3BhcnR4X0xEQUREID0gJChMREFERCkKK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpCitkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKK2FtX19tdiA9IG12IC1mCitDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitMVENPTVBJTEUgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSBcCisJJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSBcCisJJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorQU1fVl9DQyA9ICQoYW1fX3ZfQ0NfJChWKSkKK2FtX192X0NDXyA9ICQoYW1fX3ZfQ0NfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ18wID0gQGVjaG8gIiAgQ0MgICAgIiAkQDsKK0FNX1ZfYXQgPSAkKGFtX192X2F0XyQoVikpCithbV9fdl9hdF8gPSAkKGFtX192X2F0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfYXRfMCA9IEAKK0NDTEQgPSAkKENDKQorTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorQU1fVl9DQ0xEID0gJChhbV9fdl9DQ0xEXyQoVikpCithbV9fdl9DQ0xEXyA9ICQoYW1fX3ZfQ0NMRF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDTERfMCA9IEBlY2hvICIgIENDTEQgICIgJEA7CitBTV9WX0dFTiA9ICQoYW1fX3ZfR0VOXyQoVikpCithbV9fdl9HRU5fID0gJChhbV9fdl9HRU5fJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9HRU5fMCA9IEBlY2hvICIgIEdFTiAgICIgJEA7CitTT1VSQ0VTID0gYWRkcGFydC5jIGRlbHBhcnQuYyAkKHBhcnR4X1NPVVJDRVMpCitESVNUX1NPVVJDRVMgPSBhZGRwYXJ0LmMgZGVscGFydC5jICQoYW1fX3BhcnR4X1NPVVJDRVNfRElTVCkKK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorICAgICopIGY9JCRwOzsgXAorICBlc2FjOworYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworYW1fX2luc3RhbGxfbWF4ID0gNDAKK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgorYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAorICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKK2FtX19iYXNlX2xpc3QgPSBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKK21hbjhkaXIgPSAkKG1hbmRpcikvbWFuOAorTlJPRkYgPSBucm9mZgorTUFOUyA9ICQoZGlzdF9tYW5fTUFOUykKK2FtX19kaXN0X25vaW5zdF9EQVRBX0RJU1QgPSBhZGRwYXJ0LjggZGVscGFydC44IHBhcnR4LjgKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSBcCisJLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIgorCitBTV9DRkxBR1MgPSAtZnNpZ25lZC1jaGFyCitBTV9MREZMQUdTID0gCisKKyMgQXV0b21ha2UgKGF0IGxlYXN0IHVwIHRvIDEuMTApIG1pc2hhbmRsZXMgZGlzdF9tYW5fTUFOUyBpbnNpZGUgY29uZGl0aW9uYWxzLgorIyBVbmxpa2Ugd2l0aCBvdGhlciBkaXN0IHByaW1hcmllcywgdGhlIGZpbGVzIGFyZSBub3QgZGlzdHJpYnV0ZWQgaWYgdGhlCisjIGNvbmRpdGlvbmFsIGlzIGZhbHNlLgorIyBXb3JrIHRoZSBidWcgYXJvdW5kIHVudGlsIGl0IGlzIGZpeGVkOgorZGlzdF9ub2luc3RfREFUQSA9ICQoZGlzdF9tYW5fTUFOUykKKworIyBQYXRocyB0byBpbi10cmVlIGxpYnJhcmllcyAodXNlIHVsXyBwcmVmaXggdG8gYXZvaWQgcG9zc2libGUgY29sbGlzaW9ucykKKyMKKyMgYmxraWQKK3VsX2xpYmJsa2lkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYwordWxfbGliYmxraWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL2Jsa2lkL3NyYy9saWJibGtpZC5sYQorCisjIGJsa2lkLmggaXMgZ2VuZXJhdGVkIGJ5IC4vY29uZmlndXJlIHNjcmlwdCBhbmQgc3RvcmVkIGluIGJ1aWxkIGRpcmVjdG9yeQordWxfbGliYmxraWRfaW5jZGlyID0gJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworIyB1dWlkCit1bF9saWJ1dWlkX3NyY2RpciA9ICQodG9wX3NyY2Rpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMvbGlidXVpZC5sYQorQEJVSUxEX1BBUlRYX1RSVUVAcGFydHhfU09VUkNFUyA9IGJzZC5jIGRvcy5jIHBhcnR4LmMgc29sYXJpcy5jIFwKK0BCVUlMRF9QQVJUWF9UUlVFQAl1bml4d2FyZS5jIGdwdC5jIGNyYzMyLmMgZWZpLmggZ3B0LmggY3JjMzIuaCBcCitAQlVJTERfUEFSVFhfVFJVRUAJcGFydHguaCBkb3MuaCAuLi9saWIvYmxrZGV2LmMgXAorQEJVSUxEX1BBUlRYX1RSVUVACSQoYW1fX2FwcGVuZF8xKQorQEJVSUxEX1BBUlRYX1RSVUVAZGlzdF9tYW5fTUFOUyA9IGFkZHBhcnQuOCBkZWxwYXJ0LjggcGFydHguOAorYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIHBhcnR4L01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZm9yZWlnbiBwYXJ0eC9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CitpbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TOiAkKHVzcnNiaW5fZXhlY19QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHVzcnNiaW5fZXhlY2RpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikiCisJQGxpc3Q9JyQodXNyc2Jpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyc2Jpbl9leGVjZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorCXNlZCAncy8kKEVYRUVYVCkkJC8vJyB8IFwKKwl3aGlsZSByZWFkIHAgcDE7IGRvIGlmIHRlc3QgLWYgJCRwIHx8IHRlc3QgLWYgJCRwMTsgXAorCSAgdGhlbiBlY2hvICIkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ3A7cywuKi8sLDtuO2gnIC1lICdzfC4qfC58JyBcCisJICAgIC1lICdwO3g7cywuKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pO3MvJCQvJChFWEVFWFQpLycgfCBcCisJc2VkICdOO047TjtzLFxuLCAsZycgfCBcCisJJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIjsgZGlyc1siLiJdID0gMSB9IFwKKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKwkgICAgaWYgKCQkMiA9PSAkJDQpIGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAorCSAgICBlbHNlIHsgcHJpbnQgImYiLCAkJDMgIi8iICQkNCwgJCQxOyB9IH0gXAorCSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAorCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKwkgICAgaWYgdGVzdCAiJCRkaXIiID0gLjsgdGhlbiBkaXI9OyBlbHNlIGRpcj0vJCRkaXI7IGZpOyBcCisJICAgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgJyQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikkJGRpciciOyBcCisJICAgICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtdXNyc2Jpbl9leGVjUFJPR1JBTVM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJCh1c3JzYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCh1c3JzYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworCitjbGVhbi11c3JzYmluX2V4ZWNQUk9HUkFNUzoKKwlAbGlzdD0nJCh1c3JzYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0CithZGRwYXJ0JChFWEVFWFQpOiAkKGFkZHBhcnRfT0JKRUNUUykgJChhZGRwYXJ0X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGFkZHBhcnQkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoYWRkcGFydF9PQkpFQ1RTKSAkKGFkZHBhcnRfTERBREQpICQoTElCUykKK2RlbHBhcnQkKEVYRUVYVCk6ICQoZGVscGFydF9PQkpFQ1RTKSAkKGRlbHBhcnRfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgZGVscGFydCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChkZWxwYXJ0X09CSkVDVFMpICQoZGVscGFydF9MREFERCkgJChMSUJTKQorcGFydHgkKEVYRUVYVCk6ICQocGFydHhfT0JKRUNUUykgJChwYXJ0eF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBwYXJ0eCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChwYXJ0eF9PQkpFQ1RTKSAkKHBhcnR4X0xEQUREKSAkKExJQlMpCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9hZGRwYXJ0LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ibGtkZXYuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2JzZC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY3JjMzIuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2RlbHBhcnQuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2Rvcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZ3B0LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saW51eF92ZXJzaW9uLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9wYXJ0eC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc29sYXJpcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW5peHdhcmUuUG9AYW1fX3F1b3RlQAorCisuYy5vOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyAkPAorCisuYy5vYmo6CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgYCQoQ1lHUEFUSF9XKSAnJDwnYAorCisuYy5sbzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKExUQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKExUQ09NUElMRSkgLWMgLW8gJEAgJDwKKworYmxrZGV2Lm86IC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBibGtkZXYubyAtTUQgLU1QIC1NRiAkKERFUERJUikvYmxrZGV2LlRwbyAtYyAtbyBibGtkZXYubyBgdGVzdCAtZiAnLi4vbGliL2Jsa2Rldi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AuLi9saWIvYmxrZGV2LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2Jsa2Rldi5UcG8gJChERVBESVIpL2Jsa2Rldi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9Jy4uL2xpYi9ibGtkZXYuYycgb2JqZWN0PSdibGtkZXYubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gYmxrZGV2Lm8gYHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2Jsa2Rldi5jCisKK2Jsa2Rldi5vYmo6IC4uL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBibGtkZXYub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS9ibGtkZXYuVHBvIC1jIC1vIGJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvYmxrZGV2LlRwbyAkKERFUERJUikvYmxrZGV2LlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2Jsa2Rldi5jJyBvYmplY3Q9J2Jsa2Rldi5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGJsa2Rldi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9ibGtkZXYuYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvYmxrZGV2LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLy4uL2xpYi9ibGtkZXYuYyc7IGZpYAorCitsaW51eF92ZXJzaW9uLm86IC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbGludXhfdmVyc2lvbi5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9saW51eF92ZXJzaW9uLlRwbyAtYyAtbyBsaW51eF92ZXJzaW9uLm8gYHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYC4uL2xpYi9saW51eF92ZXJzaW9uLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL2xpbnV4X3ZlcnNpb24uVHBvICQoREVQRElSKS9saW51eF92ZXJzaW9uLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgb2JqZWN0PSdsaW51eF92ZXJzaW9uLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGxpbnV4X3ZlcnNpb24ubyBgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYycgfHwgZWNobyAnJChzcmNkaXIpLydgLi4vbGliL2xpbnV4X3ZlcnNpb24uYworCitsaW51eF92ZXJzaW9uLm9iajogLi4vbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsaW51eF92ZXJzaW9uLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvbGludXhfdmVyc2lvbi5UcG8gLWMgLW8gbGludXhfdmVyc2lvbi5vYmogYGlmIHRlc3QgLWYgJy4uL2xpYi9saW51eF92ZXJzaW9uLmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IGZpYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbGludXhfdmVyc2lvbi5UcG8gJChERVBESVIpL2xpbnV4X3ZlcnNpb24uUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPScuLi9saWIvbGludXhfdmVyc2lvbi5jJyBvYmplY3Q9J2xpbnV4X3ZlcnNpb24ub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBsaW51eF92ZXJzaW9uLm9iaiBgaWYgdGVzdCAtZiAnLi4vbGliL2xpbnV4X3ZlcnNpb24uYyc7IHRoZW4gJChDWUdQQVRIX1cpICcuLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8uLi9saWIvbGludXhfdmVyc2lvbi5jJzsgZmlgCisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCitpbnN0YWxsLW1hbjg6ICQoZGlzdF9tYW5fTUFOUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKG1hbjhkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW44ZGlyKSIKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW44ZGlyKSIgfHwgZXhpdCAwOyBcCisJeyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjhbYS16XSokJC9wJzsgXAorCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgXAorCWRvbmUgfCBcCisJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteOF1bMC05YS16XSokJCw4LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnIHwgXAorCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAorCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJGJhc2UiID0gIiQkaW5zdCI7IHRoZW4gbGlzdD0iJCRsaXN0ICQkZmlsZSI7IGVsc2UgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW44ZGlyKS8kJGluc3QnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjhkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuOGRpciknIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobWFuOGRpcikiIHx8IGV4aXQgJCQ/OyB9OyBcCisJZG9uZTsgfQorCit1bmluc3RhbGwtbWFuODoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjhkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1geyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjhbYS16XSokJC9wJzsgXAorCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjhdWzAtOWEtel0qJCQsOCw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKwl0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW44ZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJICBjZCAiJChERVNURElSKSQobWFuOGRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxpc3QiOyB0aGVuIFwKKwkgIGxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgICAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsgXAorCSAgaWYgdGVzdCAtbiAiJCRsaXN0IiAmJiBcCisJICAgIGdyZXAgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0ID4vZGV2L251bGw7IHRoZW4gXAorCSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxgbWlzc2luZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAorCSAgICBncmVwIC1sICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCB8IHNlZCAncy9eLyAgICAgICAgIC8nID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdG8gZml4IHRoZW0sIGluc3RhbGwgaGVscDJtYW4sIHJlbW92ZSBhbmQgcmVnZW5lcmF0ZSB0aGUgbWFuIHBhZ2VzOyIgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWluZXItY2xlYW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAorCSAgICBleGl0IDE7IFwKKwkgIGVsc2UgOjsgZmk7IFwKKwllbHNlIDo7IGZpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykgJChNQU5TKSAkKERBVEEpCitpbnN0YWxsZGlyczoKKwlmb3IgZGlyIGluICIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpIiAiJChERVNURElSKSQobWFuOGRpcikiOyBkbyBcCisJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisJZG9uZQoraW5zdGFsbDogaW5zdGFsbC1hbQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCit1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1hbQorCitjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLXVzcnNiaW5fZXhlY1BST0dSQU1TIFwKKwltb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLWFtCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1hbQorCitodG1sLWFtOgorCitpbmZvOiBpbmZvLWFtCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1tYW4KKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtdXNyc2Jpbl9leGVjUFJPR1JBTVMKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjgKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtYW0KKworcGRmLWFtOgorCitwczogcHMtYW0KKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtdXNyc2Jpbl9leGVjUFJPR1JBTVMKKwordW5pbnN0YWxsLW1hbjogdW5pbnN0YWxsLW1hbjgKKworLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisJY2xlYW4tbGlidG9vbCBjbGVhbi11c3JzYmluX2V4ZWNQUk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAorCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCisJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCisJaW5zdGFsbC1tYW44IGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgXAorCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TIFwKKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1tYW4gdW5pbnN0YWxsLW1hbjggXAorCXVuaW5zdGFsbC11c3JzYmluX2V4ZWNQUk9HUkFNUworCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworJCh1bF9saWJ1dWlkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGlidXVpZF9idWlsZGRpcikKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvYWRkcGFydC44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvYWRkcGFydC44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzODViYTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9hZGRwYXJ0LjgKQEAgLTAsMCArMSw0MCBAQAorLlwiIGFkZHBhcnQuOCAtLQorLlwiIENvcHlyaWdodCAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorLlwiIENvcHlyaWdodCAyMDA3IFJlZCBIYXQsIEluYy4KKy5cIiBNYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisuVEggQUREUEFSVCA4ICIxMSBKYW4gMjAwNyIKKy5TSCBOQU1FCithZGRwYXJ0IFwtCitzaW1wbGUgd3JhcHBlciBhcm91bmQgdGhlICJhZGQgcGFydGl0aW9uIiBpb2N0bAorLlNIIFNZTk9QU0lTCisuQiBhZGRwYXJ0CisuSSBkZXZpY2UgcGFydGl0aW9uIHN0YXJ0IGxlbmd0aAorLlNIIERFU0NSSVBUSU9OCisuQiBhZGRwYXJ0CitpcyBhIHByb2dyYW0gdGhhdCBpbmZvcm1zIHRoZSBMaW51eCBrZXJuZWwgb2YgbmV3IHBhcnRpdGlvbi4KKworVGhpcyBjb21tYW5kIGRvZXNuJ3QgbWFuaXB1bGF0ZSB3aXRoIHBhcnRpdGlvbnMgb24gaGFyZCBkcml2ZS4KKworLlNIIFBBUkFNRVRFUlMKKy5UUAorLkkgZGV2aWNlCitTcGVjaWZ5IHRoZSBkaXNrIGRldmljZS4KKy5UUAorLkkgcGFydGl0aW9uCitTcGVjaWZ5IHRoZSBwYXJ0aXRpb24gbnVtYmVyLgorLlRQCisuSSBzdGFydAorU3BlY2lmeSB0aGUgYmVnaW4gb2YgdGhlIHBhcnRpdGlvbiAoaW4gNTEyLWJ5dGUgc2VjdG9ycykuCisuVFAKKy5JIGxlbmd0aAorU3BlY2lmeSB0aGUgbGVuZ3RoIG9mIHRoZSBwYXJ0aXRpb24gKGluIDUxMi1ieXRlIHNlY3RvcnMpLgorCisuU0ggU0VFIEFMU08KKy5CUiBkZWxwYXJ0ICg4KSwKKy5CUiBmZGlzayAoOCksCisuQlIgcGFydGVkICg4KSwKKy5CUiBwYXJ0cHJvYmUgKDgpLAorLkJSIHBhcnR4ICg4KQorLlNIIEFWQUlMQUJJTElUWQorVGhlIGFkZHBhcnQgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9hZGRwYXJ0LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9hZGRwYXJ0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA0ZmVlNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2FkZHBhcnQuYwpAQCAtMCwwICsxLDQzIEBACisvKiB2ZXJ5IHByaW1pdGl2ZSB3cmFwcGVyIGFyb3VuZCB0aGUgYGFkZCBwYXJ0aXRpb24nIGlvY3RsICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2lmZGVmIEhBVkVfTElOVVhfQ09NUElMRVJfSAorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxsaW51eC9ibGtwZy5oPgorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KXsKKwlpbnQgZmQ7CisJc3RydWN0IGJsa3BnX2lvY3RsX2FyZyBhOworCXN0cnVjdCBibGtwZ19wYXJ0aXRpb24gcDsKKworCWlmIChhcmdjICE9IDUpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJCQkidXNhZ2U6ICVzIGRpc2tkZXZpY2UgcGFydGl0aW9ubnIgc3RhcnQgbGVuZ3RoXG4iLAorCQkJYXJndlswXSk7CisJCWV4aXQoMSk7CisJfQorCWlmICgoZmQgPSBvcGVuKGFyZ3ZbMV0sIE9fUkRPTkxZKSkgPCAwKSB7CisJCXBlcnJvcihhcmd2WzFdKTsKKwkJZXhpdCgxKTsKKwl9CisJcC5wbm8gPSBhdG9pKGFyZ3ZbMl0pOworCXAuc3RhcnQgPSA1MTIgKiAoKGxvbmcgbG9uZykgYXRvbChhcmd2WzNdKSk7CisJcC5sZW5ndGggPSA1MTIgKiAoKGxvbmcgbG9uZykgYXRvbChhcmd2WzRdKSk7CisJcC5kZXZuYW1lWzBdID0gMDsKKwlwLnZvbG5hbWVbMF0gPSAwOworCWEub3AgPSBCTEtQR19BRERfUEFSVElUSU9OOworCWEuZmxhZ3MgPSAwOworCWEuZGF0YWxlbiA9IHNpemVvZihwKTsKKwlhLmRhdGEgPSAmcDsKKworCWlmIChpb2N0bChmZCwgQkxLUEcsICZhKSA9PSAtMSkgeworCQlwZXJyb3IoIkJMS1BHIik7CisJCWV4aXQoMSk7CisJfQorCSAgICAKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2JzZC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvYnNkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDUzMmMzMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2JzZC5jCkBAIC0wLDAgKzEsODMgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgInBhcnR4LmgiCisKKyNkZWZpbmUgQlNEX0RJU0tNQUdJQwkoMHg4MjU2NDU1N1VMKQkvKiBUaGUgZGlzayBtYWdpYyBudW1iZXIgKi8KKyNkZWZpbmUgWEJTRF9NQVhQQVJUSVRJT05TCTE2CisjZGVmaW5lIEJTRF9GU19VTlVTRUQJCTAKKworc3RydWN0IGJzZF9kaXNrbGFiZWwgeworCXVuc2lnbmVkIGludAlkX21hZ2ljOwkvKiB0aGUgbWFnaWMgbnVtYmVyICovCisJc2hvcnQgaW50CWRfdHlwZTsJCS8qIGRyaXZlIHR5cGUgKi8KKwlzaG9ydCBpbnQJZF9zdWJ0eXBlOwkvKiBjb250cm9sbGVyL2RfdHlwZSBzcGVjaWZpYyAqLworCWNoYXIJZF90eXBlbmFtZVsxNl07CQkvKiB0eXBlIG5hbWUsIGUuZy4gImVhZ2xlIiAqLworCWNoYXIJZF9wYWNrbmFtZVsxNl07CQkvKiBwYWNrIGlkZW50aWZpZXIgKi8gCisJdW5zaWduZWQgaW50CWRfc2Vjc2l6ZTsJLyogIyBvZiBieXRlcyBwZXIgc2VjdG9yICovCisJdW5zaWduZWQgaW50CWRfbnNlY3RvcnM7CS8qICMgb2YgZGF0YSBzZWN0b3JzIHBlciB0cmFjayAqLworCXVuc2lnbmVkIGludAlkX250cmFja3M7CS8qICMgb2YgdHJhY2tzIHBlciBjeWxpbmRlciAqLworCXVuc2lnbmVkIGludAlkX25jeWxpbmRlcnM7CS8qICMgb2YgZGF0YSBjeWxpbmRlcnMgcGVyIHVuaXQgKi8KKwl1bnNpZ25lZCBpbnQJZF9zZWNwZXJjeWw7CS8qICMgb2YgZGF0YSBzZWN0b3JzIHBlciBjeWxpbmRlciAqLworCXVuc2lnbmVkIGludAlkX3NlY3BlcnVuaXQ7CS8qICMgb2YgZGF0YSBzZWN0b3JzIHBlciB1bml0ICovCisJdW5zaWduZWQgc2hvcnQJZF9zcGFyZXNwZXJ0cmFjazsvKiAjIG9mIHNwYXJlIHNlY3RvcnMgcGVyIHRyYWNrICovCisJdW5zaWduZWQgc2hvcnQJZF9zcGFyZXNwZXJjeWw7CS8qICMgb2Ygc3BhcmUgc2VjdG9ycyBwZXIgY3lsaW5kZXIgKi8KKwl1bnNpZ25lZCBpbnQJZF9hY3lsaW5kZXJzOwkvKiAjIG9mIGFsdC4gY3lsaW5kZXJzIHBlciB1bml0ICovCisJdW5zaWduZWQgc2hvcnQJZF9ycG07CQkvKiByb3RhdGlvbmFsIHNwZWVkICovCisJdW5zaWduZWQgc2hvcnQJZF9pbnRlcmxlYXZlOwkvKiBoYXJkd2FyZSBzZWN0b3IgaW50ZXJsZWF2ZSAqLworCXVuc2lnbmVkIHNob3J0CWRfdHJhY2tza2V3OwkvKiBzZWN0b3IgMCBza2V3LCBwZXIgdHJhY2sgKi8KKwl1bnNpZ25lZCBzaG9ydAlkX2N5bHNrZXc7CS8qIHNlY3RvciAwIHNrZXcsIHBlciBjeWxpbmRlciAqLworCXVuc2lnbmVkIGludAlkX2hlYWRzd2l0Y2g7CS8qIGhlYWQgc3dpdGNoIHRpbWUsIHVzZWMgKi8KKwl1bnNpZ25lZCBpbnQJZF90cmtzZWVrOwkvKiB0cmFjay10by10cmFjayBzZWVrLCB1c2VjICovCisJdW5zaWduZWQgaW50CWRfZmxhZ3M7CS8qIGdlbmVyaWMgZmxhZ3MgKi8KKwl1bnNpZ25lZCBpbnQJZF9kcml2ZWRhdGFbNV07CS8qIGRyaXZlLXR5cGUgc3BlY2lmaWMgaW5mb3JtYXRpb24gKi8KKwl1bnNpZ25lZCBpbnQJZF9zcGFyZVs1XTsJLyogcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KKwl1bnNpZ25lZCBpbnQJZF9tYWdpYzI7CS8qIHRoZSBtYWdpYyBudW1iZXIgKGFnYWluKSAqLworCXVuc2lnbmVkIHNob3J0CWRfY2hlY2tzdW07CS8qIHhvciBvZiBkYXRhIGluY2wuIHBhcnRpdGlvbnMgKi8KKworCQkJLyogZmlsZXN5c3RlbSBhbmQgcGFydGl0aW9uIGluZm9ybWF0aW9uOiAqLworCXVuc2lnbmVkIHNob3J0CWRfbnBhcnRpdGlvbnM7CS8qIG51bWJlciBvZiBwYXJ0aXRpb25zIGluIGZvbGxvd2luZyAqLworCXVuc2lnbmVkIGludAlkX2Jic2l6ZTsJLyogc2l6ZSBvZiBib290IGFyZWEgYXQgc24wLCBieXRlcyAqLworCXVuc2lnbmVkIGludAlkX3Nic2l6ZTsJLyogbWF4IHNpemUgb2YgZnMgc3VwZXJibG9jaywgYnl0ZXMgKi8KKwlzdHJ1Y3QJYnNkX3BhcnRpdGlvbiB7CQkvKiB0aGUgcGFydGl0aW9uIHRhYmxlICovCisJCXVuc2lnbmVkIGludAlwX3NpemU7CSAgLyogbnVtYmVyIG9mIHNlY3RvcnMgaW4gcGFydGl0aW9uICovCisJCXVuc2lnbmVkIGludAlwX29mZnNldDsgLyogc3RhcnRpbmcgc2VjdG9yICovCisJCXVuc2lnbmVkIGludAlwX2ZzaXplOyAgLyogZmlsZXN5c3RlbSBiYXNpYyBmcmFnbWVudCBzaXplICovCisJCXVuc2lnbmVkIGNoYXIJcF9mc3R5cGU7IC8qIGZpbGVzeXN0ZW0gdHlwZSwgc2VlIGJlbG93ICovCisJCXVuc2lnbmVkIGNoYXIJcF9mcmFnOwkgIC8qIGZpbGVzeXN0ZW0gZnJhZ21lbnRzIHBlciBibG9jayAqLworCQl1bnNpZ25lZCBzaG9ydAlwX2NwZzsJICAvKiBmaWxlc3lzdGVtIGN5bGluZGVycyBwZXIgZ3JvdXAgKi8KKwl9IGRfcGFydGl0aW9uc1tYQlNEX01BWFBBUlRJVElPTlNdOy8qIGFjdHVhbGx5IG1heSBiZSBtb3JlICovCit9OworCitpbnQKK3JlYWRfYnNkX3B0KGludCBmZCwgc3RydWN0IHNsaWNlIGFsbCwgc3RydWN0IHNsaWNlICpzcCwgaW50IG5zKSB7CisJc3RydWN0IGJzZF9kaXNrbGFiZWwgKmw7CisJc3RydWN0IGJzZF9wYXJ0aXRpb24gKnA7CisJdW5zaWduZWQgaW50IG9mZnNldCA9IGFsbC5zdGFydDsKKwlpbnQgbWF4X3BhcnRpdGlvbnM7CisJdW5zaWduZWQgY2hhciAqYnA7CisJaW50IG4gPSAwOworCisJYnAgPSBnZXRibG9jayhmZCwgb2Zmc2V0KzEpOyAJLyogMSBzZWN0b3Igc3VmZmljZXMgKi8KKwlpZiAoYnAgPT0gTlVMTCkKKwkJcmV0dXJuIC0xOworCisJbCA9IChzdHJ1Y3QgYnNkX2Rpc2tsYWJlbCAqKSBicDsKKwlpZiAobC0+ZF9tYWdpYyAhPSBCU0RfRElTS01BR0lDKQorCQlyZXR1cm4gLTE7CisKKwltYXhfcGFydGl0aW9ucyA9IDE2OworCWlmIChsLT5kX25wYXJ0aXRpb25zIDwgbWF4X3BhcnRpdGlvbnMpCisJCW1heF9wYXJ0aXRpb25zID0gbC0+ZF9ucGFydGl0aW9uczsKKwlmb3IgKHAgPSBsLT5kX3BhcnRpdGlvbnM7IHAgLSBsLT5kX3BhcnRpdGlvbnMgPCAgbWF4X3BhcnRpdGlvbnM7IHArKykgeworCQlpZiAocC0+cF9mc3R5cGUgPT0gQlNEX0ZTX1VOVVNFRCkKKwkJCS8qIG5vdGhpbmcgKi87CisJCWVsc2UgaWYgKG4gPCBucykgeworCQkJc3Bbbl0uc3RhcnQgPSBwLT5wX29mZnNldDsKKwkJCXNwW25dLnNpemUgPSBwLT5wX3NpemU7CisJCQluKys7CisJCX0gZWxzZSB7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkiYnNkX3BhcnRpdGlvbjogdG9vIG1hbnkgc2xpY2VzXG4iKTsKKwkJCWJyZWFrOworCQl9CisJfQorCXJldHVybiBuOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvY3JjMzIuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2NyYzMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEyMGY3MgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2NyYzMyLmMKQEAgLTAsMCArMSwzOTMgQEAKKy8qIAorICogY3JjMzIuYworICogVGhpcyBjb2RlIGlzIGluIHRoZSBwdWJsaWMgZG9tYWluOyBjb3B5cmlnaHQgYWJhbmRvbmVkLgorICogTGlhYmlsaXR5IGZvciBub24tcGVyZm9ybWFuY2Ugb2YgdGhpcyBjb2RlIGlzIGxpbWl0ZWQgdG8gdGhlIGFtb3VudAorICogeW91IHBhaWQgZm9yIGl0LiAgU2luY2UgaXQgaXMgZGlzdHJpYnV0ZWQgZm9yIGZyZWUsIHlvdXIgcmVmdW5kIHdpbGwKKyAqIGJlIHZlcnkgdmVyeSBzbWFsbC4gIElmIGl0IGJyZWFrcywgeW91IGdldCB0byBrZWVwIGJvdGggcGllY2VzLgorICovCisKKyNpbmNsdWRlICJjcmMzMi5oIgorCisjaWYgX19HTlVDX18gPj0gMwkvKiAyLnggaGFzICJhdHRyaWJ1dGUiLCBidXQgb25seSAzLjAgaGFzICJwdXJlICovCisjZGVmaW5lIGF0dHJpYnV0ZSh4KSBfX2F0dHJpYnV0ZV9fKHgpCisjZWxzZQorI2RlZmluZSBhdHRyaWJ1dGUoeCkKKyNlbmRpZgorCisvKgorICogVGhlcmUgYXJlIG11bHRpcGxlIDE2LWJpdCBDUkMgcG9seW5vbWlhbHMgaW4gY29tbW9uIHVzZSwgYnV0IHRoaXMgaXMKKyAqICp0aGUqIHN0YW5kYXJkIENSQy0zMiBwb2x5bm9taWFsLCBmaXJzdCBwb3B1bGFyaXplZCBieSBFdGhlcm5ldC4KKyAqIHheMzIreF4yNit4XjIzK3heMjIreF4xNit4XjEyK3heMTEreF4xMCt4XjgreF43K3heNSt4XjQreF4yK3heMSt4XjAKKyAqLworI2RlZmluZSBDUkNQT0xZX0xFIDB4ZWRiODgzMjAKKyNkZWZpbmUgQ1JDUE9MWV9CRSAweDA0YzExZGI3CisKKy8qIEhvdyBtYW55IGJpdHMgYXQgYSB0aW1lIHRvIHVzZS4gIFJlcXVpcmVzIGEgdGFibGUgb2YgNDw8Q1JDX3h4X0JJVFMgYnl0ZXMuICovCisvKiBGb3IgbGVzcyBwZXJmb3JtYW5jZS1zZW5zaXRpdmUsIHVzZSA0ICovCisjZGVmaW5lIENSQ19MRV9CSVRTIDgKKyNkZWZpbmUgQ1JDX0JFX0JJVFMgOAorCisvKgorICogTGl0dGxlLWVuZGlhbiBDUkMgY29tcHV0YXRpb24uICBVc2VkIHdpdGggc2VyaWFsIGJpdCBzdHJlYW1zIHNlbnQKKyAqIGxzYml0LWZpcnN0LiAgQmUgc3VyZSB0byB1c2UgY3B1X3RvX2xlMzIoKSB0byBhcHBlbmQgdGhlIGNvbXB1dGVkIENSQy4KKyAqLworI2lmIENSQ19MRV9CSVRTID4gOCB8fCBDUkNfTEVfQklUUyA8IDEgfHwgQ1JDX0xFX0JJVFMgJiBDUkNfTEVfQklUUy0xCisjIGVycm9yIENSQ19MRV9CSVRTIG11c3QgYmUgYSBwb3dlciBvZiAyIGJldHdlZW4gMSBhbmQgOAorI2VuZGlmCisKKyNpZiBDUkNfTEVfQklUUyA9PSAxCisvKgorICogSW4gZmFjdCwgdGhlIHRhYmxlLWJhc2VkIGNvZGUgd2lsbCB3b3JrIGluIHRoaXMgY2FzZSwgYnV0IGl0IGNhbiBiZQorICogc2ltcGxpZmllZCBieSBpbmxpbmluZyB0aGUgdGFibGUgaW4gPzogZm9ybS4KKyAqLworI2RlZmluZSBjcmMzMmluaXRfbGUoKQorI2RlZmluZSBjcmMzMmNsZWFudXBfbGUoKQorLyoqCisgKiBjcmMzMl9sZSgpIC0gQ2FsY3VsYXRlIGJpdHdpc2UgbGl0dGxlLWVuZGlhbiBFdGhlcm5ldCBBVVRPRElOIElJIENSQzMyCisgKiBAY3JjIC0gc2VlZCB2YWx1ZSBmb3IgY29tcHV0YXRpb24uICB+MCBmb3IgRXRoZXJuZXQsIHNvbWV0aW1lcyAwIGZvcgorICogICAgICAgIG90aGVyIHVzZXMsIG9yIHRoZSBwcmV2aW91cyBjcmMzMiB2YWx1ZSBpZiBjb21wdXRpbmcgaW5jcmVtZW50YWxseS4KKyAqIEBwICAgLSBwb2ludGVyIHRvIGJ1ZmZlciBvdmVyIHdoaWNoIENSQyBpcyBydW4KKyAqIEBsZW4gLSBsZW5ndGggb2YgYnVmZmVyIEBwCisgKiAKKyAqLwordWludDMyX3QgYXR0cmlidXRlKChwdXJlKSkgY3JjMzJfbGUodWludDMyX3QgY3JjLCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpwLCBzaXplX3QgbGVuKQoreworCWludCBpOworCXdoaWxlIChsZW4tLSkgeworCQljcmMgXj0gKnArKzsKKwkJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKKwkJCWNyYyA9IChjcmMgPj4gMSkgXiAoKGNyYyAmIDEpID8gQ1JDUE9MWV9MRSA6IDApOworCX0KKwlyZXR1cm4gY3JjOworfQorI2Vsc2UJCQkJLyogVGFibGUtYmFzZWQgYXBwcm9hY2ggKi8KKworc3RhdGljIHVpbnQzMl90ICpjcmMzMnRhYmxlX2xlOworLyoqCisgKiBjcmMzMmluaXRfbGUoKSAtIGFsbG9jYXRlIGFuZCBpbml0aWFsaXplIExFIHRhYmxlIGRhdGEKKyAqCisgKiBjcmMgaXMgdGhlIGNyYyBvZiB0aGUgYnl0ZSBpOyBvdGhlciBlbnRyaWVzIGFyZSBmaWxsZWQgaW4gYmFzZWQgb24gdGhlCisgKiBmYWN0IHRoYXQgY3JjdGFibGVbaV5qXSA9IGNyY3RhYmxlW2ldIF4gY3JjdGFibGVbal0uCisgKgorICovCitzdGF0aWMgaW50CitjcmMzMmluaXRfbGUodm9pZCkKK3sKKwl1bnNpZ25lZCBpLCBqOworCXVpbnQzMl90IGNyYyA9IDE7CisKKwljcmMzMnRhYmxlX2xlID0KKwkJbWFsbG9jKCgxIDw8IENSQ19MRV9CSVRTKSAqIHNpemVvZih1aW50MzJfdCkpOworCWlmICghY3JjMzJ0YWJsZV9sZSkKKwkJcmV0dXJuIDE7CisJY3JjMzJ0YWJsZV9sZVswXSA9IDA7CisKKwlmb3IgKGkgPSAxIDw8IChDUkNfTEVfQklUUyAtIDEpOyBpOyBpID4+PSAxKSB7CisJCWNyYyA9IChjcmMgPj4gMSkgXiAoKGNyYyAmIDEpID8gQ1JDUE9MWV9MRSA6IDApOworCQlmb3IgKGogPSAwOyBqIDwgMSA8PCBDUkNfTEVfQklUUzsgaiArPSAyICogaSkKKwkJCWNyYzMydGFibGVfbGVbaSArIGpdID0gY3JjIF4gY3JjMzJ0YWJsZV9sZVtqXTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogY3JjMzJjbGVhbnVwX2xlKCk6IGZyZWUgTEUgdGFibGUgZGF0YQorICovCitzdGF0aWMgdm9pZAorY3JjMzJjbGVhbnVwX2xlKHZvaWQpCit7CisJZnJlZShjcmMzMnRhYmxlX2xlKTsKKwljcmMzMnRhYmxlX2xlID0gTlVMTDsKK30KKworLyoqCisgKiBjcmMzMl9sZSgpIC0gQ2FsY3VsYXRlIGJpdHdpc2UgbGl0dGxlLWVuZGlhbiBFdGhlcm5ldCBBVVRPRElOIElJIENSQzMyCisgKiBAY3JjIC0gc2VlZCB2YWx1ZSBmb3IgY29tcHV0YXRpb24uICB+MCBmb3IgRXRoZXJuZXQsIHNvbWV0aW1lcyAwIGZvcgorICogICAgICAgIG90aGVyIHVzZXMsIG9yIHRoZSBwcmV2aW91cyBjcmMzMiB2YWx1ZSBpZiBjb21wdXRpbmcgaW5jcmVtZW50YWxseS4KKyAqIEBwICAgLSBwb2ludGVyIHRvIGJ1ZmZlciBvdmVyIHdoaWNoIENSQyBpcyBydW4KKyAqIEBsZW4gLSBsZW5ndGggb2YgYnVmZmVyIEBwCisgKiAKKyAqLwordWludDMyX3QgYXR0cmlidXRlKChwdXJlKSkgY3JjMzJfbGUodWludDMyX3QgY3JjLCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpwLCBzaXplX3QgbGVuKQoreworCXdoaWxlIChsZW4tLSkgeworIyBpZiBDUkNfTEVfQklUUyA9PSA4CisJCWNyYyA9IChjcmMgPj4gOCkgXiBjcmMzMnRhYmxlX2xlWyhjcmMgXiAqcCsrKSAmIDI1NV07CisjIGVsaWYgQ1JDX0xFX0JJVFMgPT0gNAorCQljcmMgXj0gKnArKzsKKwkJY3JjID0gKGNyYyA+PiA0KSBeIGNyYzMydGFibGVfbGVbY3JjICYgMTVdOworCQljcmMgPSAoY3JjID4+IDQpIF4gY3JjMzJ0YWJsZV9sZVtjcmMgJiAxNV07CisjIGVsaWYgQ1JDX0xFX0JJVFMgPT0gMgorCQljcmMgXj0gKnArKzsKKwkJY3JjID0gKGNyYyA+PiAyKSBeIGNyYzMydGFibGVfbGVbY3JjICYgM107CisJCWNyYyA9IChjcmMgPj4gMikgXiBjcmMzMnRhYmxlX2xlW2NyYyAmIDNdOworCQljcmMgPSAoY3JjID4+IDIpIF4gY3JjMzJ0YWJsZV9sZVtjcmMgJiAzXTsKKwkJY3JjID0gKGNyYyA+PiAyKSBeIGNyYzMydGFibGVfbGVbY3JjICYgM107CisjIGVuZGlmCisJfQorCXJldHVybiBjcmM7Cit9CisjZW5kaWYKKworLyoKKyAqIEJpZy1lbmRpYW4gQ1JDIGNvbXB1dGF0aW9uLiAgVXNlZCB3aXRoIHNlcmlhbCBiaXQgc3RyZWFtcyBzZW50CisgKiBtc2JpdC1maXJzdC4gIEJlIHN1cmUgdG8gdXNlIGNwdV90b19iZTMyKCkgdG8gYXBwZW5kIHRoZSBjb21wdXRlZCBDUkMuCisgKi8KKyNpZiBDUkNfQkVfQklUUyA+IDggfHwgQ1JDX0JFX0JJVFMgPCAxIHx8IENSQ19CRV9CSVRTICYgQ1JDX0JFX0JJVFMtMQorIyBlcnJvciBDUkNfQkVfQklUUyBtdXN0IGJlIGEgcG93ZXIgb2YgMiBiZXR3ZWVuIDEgYW5kIDgKKyNlbmRpZgorCisjaWYgQ1JDX0JFX0JJVFMgPT0gMQorLyoKKyAqIEluIGZhY3QsIHRoZSB0YWJsZS1iYXNlZCBjb2RlIHdpbGwgd29yayBpbiB0aGlzIGNhc2UsIGJ1dCBpdCBjYW4gYmUKKyAqIHNpbXBsaWZpZWQgYnkgaW5saW5pbmcgdGhlIHRhYmxlIGluID86IGZvcm0uCisgKi8KKyNkZWZpbmUgY3JjMzJpbml0X2JlKCkKKyNkZWZpbmUgY3JjMzJjbGVhbnVwX2JlKCkKKworLyoqCisgKiBjcmMzMl9iZSgpIC0gQ2FsY3VsYXRlIGJpdHdpc2UgYmlnLWVuZGlhbiBFdGhlcm5ldCBBVVRPRElOIElJIENSQzMyCisgKiBAY3JjIC0gc2VlZCB2YWx1ZSBmb3IgY29tcHV0YXRpb24uICB+MCBmb3IgRXRoZXJuZXQsIHNvbWV0aW1lcyAwIGZvcgorICogICAgICAgIG90aGVyIHVzZXMsIG9yIHRoZSBwcmV2aW91cyBjcmMzMiB2YWx1ZSBpZiBjb21wdXRpbmcgaW5jcmVtZW50YWxseS4KKyAqIEBwICAgLSBwb2ludGVyIHRvIGJ1ZmZlciBvdmVyIHdoaWNoIENSQyBpcyBydW4KKyAqIEBsZW4gLSBsZW5ndGggb2YgYnVmZmVyIEBwCisgKiAKKyAqLwordWludDMyX3QgYXR0cmlidXRlKChwdXJlKSkgY3JjMzJfYmUodWludDMyX3QgY3JjLCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpwLCBzaXplX3QgbGVuKQoreworCWludCBpOworCXdoaWxlIChsZW4tLSkgeworCQljcmMgXj0gKnArKyA8PCAyNDsKKwkJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKKwkJCWNyYyA9CisJCQkgICAgKGNyYyA8PCAxKSBeICgoY3JjICYgMHg4MDAwMDAwMCkgPyBDUkNQT0xZX0JFIDoKKwkJCQkJICAwKTsKKwl9CisJcmV0dXJuIGNyYzsKK30KKworI2Vsc2UJCQkJLyogVGFibGUtYmFzZWQgYXBwcm9hY2ggKi8KK3N0YXRpYyB1aW50MzJfdCAqY3JjMzJ0YWJsZV9iZTsKKworLyoqCisgKiBjcmMzMmluaXRfYmUoKSAtIGFsbG9jYXRlIGFuZCBpbml0aWFsaXplIEJFIHRhYmxlIGRhdGEKKyAqLworc3RhdGljIGludAorY3JjMzJpbml0X2JlKHZvaWQpCit7CisJdW5zaWduZWQgaSwgajsKKwl1aW50MzJfdCBjcmMgPSAweDgwMDAwMDAwOworCisJY3JjMzJ0YWJsZV9iZSA9CisJCW1hbGxvYygoMSA8PCBDUkNfQkVfQklUUykgKiBzaXplb2YodWludDMyX3QpKTsKKwlpZiAoIWNyYzMydGFibGVfYmUpCisJCXJldHVybiAxOworCWNyYzMydGFibGVfYmVbMF0gPSAwOworCisJZm9yIChpID0gMTsgaSA8IDEgPDwgQ1JDX0JFX0JJVFM7IGkgPDw9IDEpIHsKKwkJY3JjID0gKGNyYyA8PCAxKSBeICgoY3JjICYgMHg4MDAwMDAwMCkgPyBDUkNQT0xZX0JFIDogMCk7CisJCWZvciAoaiA9IDA7IGogPCBpOyBqKyspCisJCQljcmMzMnRhYmxlX2JlW2kgKyBqXSA9IGNyYyBeIGNyYzMydGFibGVfYmVbal07CisJfQorCXJldHVybiAwOworfQorCisvKioKKyAqIGNyYzMyY2xlYW51cF9iZSgpOiBmcmVlIEJFIHRhYmxlIGRhdGEKKyAqLworc3RhdGljIHZvaWQKK2NyYzMyY2xlYW51cF9iZSh2b2lkKQoreworCWZyZWUoY3JjMzJ0YWJsZV9iZSk7CisJY3JjMzJ0YWJsZV9iZSA9IE5VTEw7Cit9CisKKworLyoqCisgKiBjcmMzMl9iZSgpIC0gQ2FsY3VsYXRlIGJpdHdpc2UgYmlnLWVuZGlhbiBFdGhlcm5ldCBBVVRPRElOIElJIENSQzMyCisgKiBAY3JjIC0gc2VlZCB2YWx1ZSBmb3IgY29tcHV0YXRpb24uICB+MCBmb3IgRXRoZXJuZXQsIHNvbWV0aW1lcyAwIGZvcgorICogICAgICAgIG90aGVyIHVzZXMsIG9yIHRoZSBwcmV2aW91cyBjcmMzMiB2YWx1ZSBpZiBjb21wdXRpbmcgaW5jcmVtZW50YWxseS4KKyAqIEBwICAgLSBwb2ludGVyIHRvIGJ1ZmZlciBvdmVyIHdoaWNoIENSQyBpcyBydW4KKyAqIEBsZW4gLSBsZW5ndGggb2YgYnVmZmVyIEBwCisgKiAKKyAqLwordWludDMyX3QgYXR0cmlidXRlKChwdXJlKSkgY3JjMzJfYmUodWludDMyX3QgY3JjLCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpwLCBzaXplX3QgbGVuKQoreworCXdoaWxlIChsZW4tLSkgeworIyBpZiBDUkNfQkVfQklUUyA9PSA4CisJCWNyYyA9IChjcmMgPDwgOCkgXiBjcmMzMnRhYmxlX2JlWyhjcmMgPj4gMjQpIF4gKnArK107CisjIGVsaWYgQ1JDX0JFX0JJVFMgPT0gNAorCQljcmMgXj0gKnArKyA8PCAyNDsKKwkJY3JjID0gKGNyYyA8PCA0KSBeIGNyYzMydGFibGVfYmVbY3JjID4+IDI4XTsKKwkJY3JjID0gKGNyYyA8PCA0KSBeIGNyYzMydGFibGVfYmVbY3JjID4+IDI4XTsKKyMgZWxpZiBDUkNfQkVfQklUUyA9PSAyCisJCWNyYyBePSAqcCsrIDw8IDI0OworCQljcmMgPSAoY3JjIDw8IDIpIF4gY3JjMzJ0YWJsZV9iZVtjcmMgPj4gMzBdOworCQljcmMgPSAoY3JjIDw8IDIpIF4gY3JjMzJ0YWJsZV9iZVtjcmMgPj4gMzBdOworCQljcmMgPSAoY3JjIDw8IDIpIF4gY3JjMzJ0YWJsZV9iZVtjcmMgPj4gMzBdOworCQljcmMgPSAoY3JjIDw8IDIpIF4gY3JjMzJ0YWJsZV9iZVtjcmMgPj4gMzBdOworIyBlbmRpZgorCX0KKwlyZXR1cm4gY3JjOworfQorI2VuZGlmCisKKy8qCisgKiBBIGJyaWVmIENSQyB0dXRvcmlhbC4KKyAqCisgKiBBIENSQyBpcyBhIGxvbmctZGl2aXNpb24gcmVtYWluZGVyLiAgWW91IGFkZCB0aGUgQ1JDIHRvIHRoZSBtZXNzYWdlLAorICogYW5kIHRoZSB3aG9sZSB0aGluZyAobWVzc2FnZStDUkMpIGlzIGEgbXVsdGlwbGUgb2YgdGhlIGdpdmVuCisgKiBDUkMgcG9seW5vbWlhbC4gIFRvIGNoZWNrIHRoZSBDUkMsIHlvdSBjYW4gZWl0aGVyIGNoZWNrIHRoYXQgdGhlCisgKiBDUkMgbWF0Y2hlcyB0aGUgcmVjb21wdXRlZCB2YWx1ZSwgKm9yKiB5b3UgY2FuIGNoZWNrIHRoYXQgdGhlCisgKiByZW1haW5kZXIgY29tcHV0ZWQgb24gdGhlIG1lc3NhZ2UrQ1JDIGlzIDAuICBUaGlzIGxhdHRlciBhcHByb2FjaAorICogaXMgdXNlZCBieSBhIGxvdCBvZiBoYXJkd2FyZSBpbXBsZW1lbnRhdGlvbnMsIGFuZCBpcyB3aHkgc28gbWFueQorICogcHJvdG9jb2xzIHB1dCB0aGUgZW5kLW9mLWZyYW1lIGZsYWcgYWZ0ZXIgdGhlIENSQy4KKyAqCisgKiBJdCdzIGFjdHVhbGx5IHRoZSBzYW1lIGxvbmcgZGl2aXNpb24geW91IGxlYXJuZWQgaW4gc2Nob29sLCBleGNlcHQgdGhhdAorICogLSBXZSdyZSB3b3JraW5nIGluIGJpbmFyeSwgc28gdGhlIGRpZ2l0cyBhcmUgb25seSAwIGFuZCAxLCBhbmQKKyAqIC0gV2hlbiBkaXZpZGluZyBwb2x5bm9taWFscywgdGhlcmUgYXJlIG5vIGNhcnJpZXMuICBSYXRoZXIgdGhhbiBhZGQgYW5kCisgKiAgIHN1YnRyYWN0LCB3ZSBqdXN0IHhvci4gIFRodXMsIHdlIHRlbmQgdG8gZ2V0IGEgYml0IHNsb3BweSBhYm91dAorICogICB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGFkZGluZyBhbmQgc3VidHJhY3RpbmcuCisgKgorICogQSAzMi1iaXQgQ1JDIHBvbHlub21pYWwgaXMgYWN0dWFsbHkgMzMgYml0cyBsb25nLiAgQnV0IHNpbmNlIGl0J3MKKyAqIDMzIGJpdHMgbG9uZywgYml0IDMyIGlzIGFsd2F5cyBnb2luZyB0byBiZSBzZXQsIHNvIHVzdWFsbHkgdGhlIENSQworICogaXMgd3JpdHRlbiBpbiBoZXggd2l0aCB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb21pdHRlZC4gIChJZiB5b3UncmUKKyAqIGZhbWlsaWFyIHdpdGggdGhlIElFRUUgNzU0IGZsb2F0aW5nLXBvaW50IGZvcm1hdCwgaXQncyB0aGUgc2FtZSBpZGVhLikKKyAqCisgKiBOb3RlIHRoYXQgYSBDUkMgaXMgY29tcHV0ZWQgb3ZlciBhIHN0cmluZyBvZiAqYml0cyosIHNvIHlvdSBoYXZlCisgKiB0byBkZWNpZGUgb24gdGhlIGVuZGlhbm5lc3Mgb2YgdGhlIGJpdHMgd2l0aGluIGVhY2ggYnl0ZS4gIFRvIGdldAorICogdGhlIGJlc3QgZXJyb3ItZGV0ZWN0aW5nIHByb3BlcnRpZXMsIHRoaXMgc2hvdWxkIGNvcnJlc3BvbmQgdG8gdGhlCisgKiBvcmRlciB0aGV5J3JlIGFjdHVhbGx5IHNlbnQuICBGb3IgZXhhbXBsZSwgc3RhbmRhcmQgUlMtMjMyIHNlcmlhbCBpcworICogbGl0dGxlLWVuZGlhbjsgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IChzb21ldGltZXMgdXNlZCBmb3IgcGFyaXR5KQorICogaXMgc2VudCBsYXN0LiAgQW5kIHdoZW4gYXBwZW5kaW5nIGEgQ1JDIHdvcmQgdG8gYSBtZXNzYWdlLCB5b3Ugc2hvdWxkCisgKiBkbyBpdCBpbiB0aGUgcmlnaHQgb3JkZXIsIG1hdGNoaW5nIHRoZSBlbmRpYW5uZXNzLgorICoKKyAqIEp1c3QgbGlrZSB3aXRoIG9yZGluYXJ5IGRpdmlzaW9uLCB0aGUgcmVtYWluZGVyIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4KKyAqIHRoZSBkaXZpc29yICh0aGUgQ1JDIHBvbHlub21pYWwpIHlvdSdyZSBkaXZpZGluZyBieS4gIEVhY2ggc3RlcCBvZiB0aGUKKyAqIGRpdmlzaW9uLCB5b3UgdGFrZSBvbmUgbW9yZSBkaWdpdCAoYml0KSBvZiB0aGUgZGl2aWRlbmQgYW5kIGFwcGVuZCBpdAorICogdG8gdGhlIGN1cnJlbnQgcmVtYWluZGVyLiAgVGhlbiB5b3UgZmlndXJlIG91dCB0aGUgYXBwcm9wcmlhdGUgbXVsdGlwbGUKKyAqIG9mIHRoZSBkaXZpc29yIHRvIHN1YnRyYWN0IHRvIGJlaW5nIHRoZSByZW1haW5kZXIgYmFjayBpbnRvIHJhbmdlLgorICogSW4gYmluYXJ5LCBpdCdzIGVhc3kgLSBpdCBoYXMgdG8gYmUgZWl0aGVyIDAgb3IgMSwgYW5kIHRvIG1ha2UgdGhlCisgKiBYT1IgY2FuY2VsLCBpdCdzIGp1c3QgYSBjb3B5IG9mIGJpdCAzMiBvZiB0aGUgcmVtYWluZGVyLgorICoKKyAqIFdoZW4gY29tcHV0aW5nIGEgQ1JDLCB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBxdW90aWVudCwgc28gd2UgY2FuCisgKiB0aHJvdyB0aGUgcXVvdGllbnQgYml0IGF3YXksIGJ1dCBzdWJ0cmFjdCB0aGUgYXBwcm9wcmlhdGUgbXVsdGlwbGUgb2YKKyAqIHRoZSBwb2x5bm9taWFsIGZyb20gdGhlIHJlbWFpbmRlciBhbmQgd2UncmUgYmFjayB0byB3aGVyZSB3ZSBzdGFydGVkLAorICogcmVhZHkgdG8gcHJvY2VzcyB0aGUgbmV4dCBiaXQuCisgKgorICogQSBiaWctZW5kaWFuIENSQyB3cml0dGVuIHRoaXMgd2F5IHdvdWxkIGJlIGNvZGVkIGxpa2U6CisgKiBmb3IgKGkgPSAwOyBpIDwgaW5wdXRfYml0czsgaSsrKSB7CisgKiAJbXVsdGlwbGUgPSByZW1haW5kZXIgJiAweDgwMDAwMDAwID8gQ1JDUE9MWSA6IDA7CisgKiAJcmVtYWluZGVyID0gKHJlbWFpbmRlciA8PCAxIHwgbmV4dF9pbnB1dF9iaXQoKSkgXiBtdWx0aXBsZTsKKyAqIH0KKyAqIE5vdGljZSBob3csIHRvIGdldCBhdCBiaXQgMzIgb2YgdGhlIHNoaWZ0ZWQgcmVtYWluZGVyLCB3ZSBsb29rCisgKiBhdCBiaXQgMzEgb2YgdGhlIHJlbWFpbmRlciAqYmVmb3JlKiBzaGlmdGluZyBpdC4KKyAqCisgKiBCdXQgYWxzbyBub3RpY2UgaG93IHRoZSBuZXh0X2lucHV0X2JpdCgpIGJpdHMgd2UncmUgc2hpZnRpbmcgaW50bworICogdGhlIHJlbWFpbmRlciBkb24ndCBhY3R1YWxseSBhZmZlY3QgYW55IGRlY2lzaW9uLW1ha2luZyB1bnRpbAorICogMzIgYml0cyBsYXRlci4gIFRodXMsIHRoZSBmaXJzdCAzMiBjeWNsZXMgb2YgdGhpcyBhcmUgcHJldHR5IGJvcmluZy4KKyAqIEFsc28sIHRvIGFkZCB0aGUgQ1JDIHRvIGEgbWVzc2FnZSwgd2UgbmVlZCBhIDMyLWJpdC1sb25nIGhvbGUgZm9yIGl0IGF0CisgKiB0aGUgZW5kLCBzbyB3ZSBoYXZlIHRvIGFkZCAzMiBleHRyYSBjeWNsZXMgc2hpZnRpbmcgaW4gemVyb3MgYXQgdGhlCisgKiBlbmQgb2YgZXZlcnkgbWVzc2FnZSwKKyAqCisgKiBTbyB0aGUgc3RhbmRhcmQgdHJpY2sgaXMgdG8gcmVhcnJhZ2UgbWVyZ2luZyBpbiB0aGUgbmV4dF9pbnB1dF9iaXQoKQorICogdW50aWwgdGhlIG1vbWVudCBpdCdzIG5lZWRlZC4gIFRoZW4gdGhlIGZpcnN0IDMyIGN5Y2xlcyBjYW4gYmUgcHJlY29tcHV0ZWQsCisgKiBhbmQgbWVyZ2luZyBpbiB0aGUgZmluYWwgMzIgemVybyBiaXRzIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIENSQyBjYW4gYmUKKyAqIHNraXBwZWQgZW50aXJlbHkuCisgKiBUaGlzIGNoYW5nZXMgdGhlIGNvZGUgdG86CisgKiBmb3IgKGkgPSAwOyBpIDwgaW5wdXRfYml0czsgaSsrKSB7CisgKiAgICAgIHJlbWFpbmRlciBePSBuZXh0X2lucHV0X2JpdCgpIDw8IDMxOworICogCW11bHRpcGxlID0gKHJlbWFpbmRlciAmIDB4ODAwMDAwMDApID8gQ1JDUE9MWSA6IDA7CisgKiAJcmVtYWluZGVyID0gKHJlbWFpbmRlciA8PCAxKSBeIG11bHRpcGxlOworICogfQorICogV2l0aCB0aGlzIG9wdGltaXphdGlvbiwgdGhlIGxpdHRsZS1lbmRpYW4gY29kZSBpcyBzaW1wbGVyOgorICogZm9yIChpID0gMDsgaSA8IGlucHV0X2JpdHM7IGkrKykgeworICogICAgICByZW1haW5kZXIgXj0gbmV4dF9pbnB1dF9iaXQoKTsKKyAqIAltdWx0aXBsZSA9IChyZW1haW5kZXIgJiAxKSA/IENSQ1BPTFkgOiAwOworICogCXJlbWFpbmRlciA9IChyZW1haW5kZXIgPj4gMSkgXiBtdWx0aXBsZTsKKyAqIH0KKyAqCisgKiBOb3RlIHRoYXQgdGhlIG90aGVyIGRldGFpbHMgb2YgZW5kaWFubmVzcyBoYXZlIGJlZW4gaGlkZGVuIGluIENSQ1BPTFkKKyAqICh3aGljaCBtdXN0IGJlIGJpdC1yZXZlcnNlZCkgYW5kIG5leHRfaW5wdXRfYml0KCkuCisgKgorICogSG93ZXZlciwgYXMgbG9uZyBhcyBuZXh0X2lucHV0X2JpdCBpcyByZXR1cm5pbmcgdGhlIGJpdHMgaW4gYSBzZW5zaWJsZQorICogb3JkZXIsIHdlIGNhbiBhY3R1YWxseSBkbyB0aGUgbWVyZ2luZyA4IG9yIG1vcmUgYml0cyBhdCBhIHRpbWUgcmF0aGVyCisgKiB0aGFuIG9uZSBiaXQgYXQgYSB0aW1lOgorICogZm9yIChpID0gMDsgaSA8IGlucHV0X2J5dGVzOyBpKyspIHsKKyAqIAlyZW1haW5kZXIgXj0gbmV4dF9pbnB1dF9ieXRlKCkgPDwgMjQ7CisgKiAJZm9yIChqID0gMDsgaiA8IDg7IGorKykgeworICogCQltdWx0aXBsZSA9IChyZW1haW5kZXIgJiAweDgwMDAwMDAwKSA/IENSQ1BPTFkgOiAwOworICogCQlyZW1haW5kZXIgPSAocmVtYWluZGVyIDw8IDEpIF4gbXVsdGlwbGU7CisgKiAJfQorICogfQorICogT3IgaW4gbGl0dGxlLWVuZGlhbjoKKyAqIGZvciAoaSA9IDA7IGkgPCBpbnB1dF9ieXRlczsgaSsrKSB7CisgKiAJcmVtYWluZGVyIF49IG5leHRfaW5wdXRfYnl0ZSgpOworICogCWZvciAoaiA9IDA7IGogPCA4OyBqKyspIHsKKyAqIAkJbXVsdGlwbGUgPSAocmVtYWluZGVyICYgMSkgPyBDUkNQT0xZIDogMDsKKyAqIAkJcmVtYWluZGVyID0gKHJlbWFpbmRlciA8PCAxKSBeIG11bHRpcGxlOworICogCX0KKyAqIH0KKyAqIElmIHRoZSBpbnB1dCBpcyBhIG11bHRpcGxlIG9mIDMyIGJpdHMsIHlvdSBjYW4gZXZlbiBYT1IgaW4gYSAzMi1iaXQKKyAqIHdvcmQgYXQgYSB0aW1lIGFuZCBpbmNyZWFzZSB0aGUgaW5uZXIgbG9vcCBjb3VudCB0byAzMi4KKyAqCisgKiBZb3UgY2FuIGFsc28gbWl4IGFuZCBtYXRjaCB0aGUgdHdvIGxvb3Agc3R5bGVzLCBmb3IgZXhhbXBsZSBkb2luZyB0aGUKKyAqIGJ1bGsgb2YgYSBtZXNzYWdlIGJ5dGUtYXQtYS10aW1lIGFuZCBhZGRpbmcgYml0LWF0LWEtdGltZSBwcm9jZXNzaW5nCisgKiBmb3IgYW55IGZyYWN0aW9uYWwgYnl0ZXMgYXQgdGhlIGVuZC4KKyAqCisgKiBUaGUgb25seSByZW1haW5pbmcgb3B0aW1pemF0aW9uIGlzIHRvIHRoZSBieXRlLWF0LWEtdGltZSB0YWJsZSBtZXRob2QuCisgKiBIZXJlLCByYXRoZXIgdGhhbiBqdXN0IHNoaWZ0aW5nIG9uZSBiaXQgb2YgdGhlIHJlbWFpbmRlciB0byBkZWNpZGUKKyAqIGluIHRoZSBjb3JyZWN0IG11bHRpcGxlIHRvIHN1YnRyYWN0LCB3ZSBjYW4gc2hpZnQgYSBieXRlIGF0IGEgdGltZS4KKyAqIFRoaXMgcHJvZHVjZXMgYSA0MC1iaXQgKHJhdGhlciB0aGFuIGEgMzMtYml0KSBpbnRlcm1lZGlhdGUgcmVtYWluZGVyLAorICogYnV0IGFnYWluIHRoZSBtdWx0aXBsZSBvZiB0aGUgcG9seW5vbWlhbCB0byBzdWJ0cmFjdCBkZXBlbmRzIG9ubHkgb24KKyAqIHRoZSBoaWdoIGJpdHMsIHRoZSBoaWdoIDggYml0cyBpbiB0aGlzIGNhc2UuICAKKyAqCisgKiBUaGUgbXVsdGlsZSB3ZSBuZWVkIGluIHRoYXQgY2FzZSBpcyB0aGUgbG93IDMyIGJpdHMgb2YgYSA0MC1iaXQKKyAqIHZhbHVlIHdob3NlIGhpZ2ggOCBiaXRzIGFyZSBnaXZlbiwgYW5kIHdoaWNoIGlzIGEgbXVsdGlwbGUgb2YgdGhlCisgKiBnZW5lcmF0b3IgcG9seW5vbWlhbC4gIFRoaXMgaXMgc2ltcGx5IHRoZSBDUkMtMzIgb2YgdGhlIGdpdmVuCisgKiBvbmUtYnl0ZSBtZXNzYWdlLgorICoKKyAqIFR3byBtb3JlIGRldGFpbHM6IG5vcm1hbGx5LCBhcHBlbmRpbmcgemVybyBiaXRzIHRvIGEgbWVzc2FnZSB3aGljaAorICogaXMgYWxyZWFkeSBhIG11bHRpcGxlIG9mIGEgcG9seW5vbWlhbCBwcm9kdWNlcyBhIGxhcmdlciBtdWx0aXBsZSBvZiB0aGF0CisgKiBwb2x5bm9taWFsLiAgVG8gZW5hYmxlIGEgQ1JDIHRvIGRldGVjdCB0aGlzIGNvbmRpdGlvbiwgaXQncyBjb21tb24gdG8KKyAqIGludmVydCB0aGUgQ1JDIGJlZm9yZSBhcHBlbmRpbmcgaXQuICBUaGlzIG1ha2VzIHRoZSByZW1haW5kZXIgb2YgdGhlCisgKiBtZXNzYWdlK2NyYyBjb21lIG91dCBub3QgYXMgemVybywgYnV0IHNvbWUgZml4ZWQgbm9uLXplcm8gdmFsdWUuCisgKgorICogVGhlIHNhbWUgcHJvYmxlbSBhcHBsaWVzIHRvIHplcm8gYml0cyBwcmVwZW5kZWQgdG8gdGhlIG1lc3NhZ2UsIGFuZAorICogYSBzaW1pbGFyIHNvbHV0aW9uIGlzIHVzZWQuICBJbnN0ZWFkIG9mIHN0YXJ0aW5nIHdpdGggYSByZW1haW5kZXIgb2YKKyAqIDAsIGFuIGluaXRpYWwgcmVtYWluZGVyIG9mIGFsbCBvbmVzIGlzIHVzZWQuICBBcyBsb25nIGFzIHlvdSBzdGFydAorICogdGhlIHNhbWUgd2F5IG9uIGRlY29kaW5nLCBpdCBkb2Vzbid0IG1ha2UgYSBkaWZmZXJlbmNlLgorICovCisKKworLyoqCisgKiBpbml0X2NyYzMyKCk6IGdlbmVyYXRlcyBDUkMzMiB0YWJsZXMKKyAqIAorICogT24gc3VjY2Vzc2Z1bCBpbml0aWFsaXphdGlvbiwgdXNlIGNvdW50IGlzIGluY3JlYXNlZC4KKyAqIFRoaXMgZ3VhcmFudGVlcyB0aGF0IHRoZSBsaWJyYXJ5IGZ1bmN0aW9ucyB3aWxsIHN0YXkgcmVzaWRlbnQKKyAqIGluIG1lbW9yeSwgYW5kIHByZXZlbnRzIHNvbWVvbmUgZnJvbSAncm1tb2QgY3JjMzInIHdoaWxlCisgKiBhIGRyaXZlciB0aGF0IG5lZWRzIGl0IGlzIHN0aWxsIGxvYWRlZC4KKyAqIFRoaXMgYWxzbyBncmVhdGx5IHNpbXBsaWZpZXMgZHJpdmVycywgYXMgdGhlcmUncyBubyBuZWVkCisgKiB0byBjYWxsIGFuIGluaXRpYWxpemF0aW9uL2NsZWFudXAgZnVuY3Rpb24gZnJvbSBlYWNoIGRyaXZlci4KKyAqIFNpbmNlIGNyYzMyLm8gaXMgYSBsaWJyYXJ5IG1vZHVsZSwgdGhlcmUncyBubyByZXF1aXJlbWVudAorICogdGhhdCB0aGUgdXNlciBjYW4gdW5sb2FkIGl0LgorICovCitpbnQKK2luaXRfY3JjMzIodm9pZCkKK3sKKwlpbnQgcmMxLCByYzIsIHJjOworCXJjMSA9IGNyYzMyaW5pdF9sZSgpOworCXJjMiA9IGNyYzMyaW5pdF9iZSgpOworCXJjID0gcmMxIHx8IHJjMjsKKwlyZXR1cm4gcmM7Cit9CisKKy8qKgorICogY2xlYW51cF9jcmMzMigpOiBmcmVlcyBjcmMzMiBkYXRhIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZAorICovCit2b2lkCitjbGVhbnVwX2NyYzMyKHZvaWQpCit7CisJY3JjMzJjbGVhbnVwX2xlKCk7CisJY3JjMzJjbGVhbnVwX2JlKCk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9jcmMzMi5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvY3JjMzIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDUwNWI4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvY3JjMzIuaApAQCAtMCwwICsxLDE5IEBACisvKgorICogY3JjMzIuaAorICovCisjaWZuZGVmIF9DUkMzMl9ICisjZGVmaW5lIF9DUkMzMl9ICisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCitleHRlcm4gaW50IGluaXRfY3JjMzIodm9pZCk7CitleHRlcm4gdm9pZCBjbGVhbnVwX2NyYzMyKHZvaWQpOworZXh0ZXJuIHVpbnQzMl90ICBjcmMzMl9sZSh1aW50MzJfdCBjcmMsIHVuc2lnbmVkIGNoYXIgY29uc3QgKnAsIHNpemVfdCBsZW4pOworZXh0ZXJuIHVpbnQzMl90ICBjcmMzMl9iZSh1aW50MzJfdCBjcmMsIHVuc2lnbmVkIGNoYXIgY29uc3QgKnAsIHNpemVfdCBsZW4pOworCisjZGVmaW5lIGNyYzMyKHNlZWQsIGRhdGEsIGxlbmd0aCkgIGNyYzMyX2xlKHNlZWQsICh1bnNpZ25lZCBjaGFyIGNvbnN0ICopZGF0YSwgbGVuZ3RoKQorI2RlZmluZSBldGhlcl9jcmNfbGUobGVuZ3RoLCBkYXRhKSBjcmMzMl9sZSh+MCwgZGF0YSwgbGVuZ3RoKQorI2RlZmluZSBldGhlcl9jcmMobGVuZ3RoLCBkYXRhKSAgICBjcmMzMl9iZSh+MCwgZGF0YSwgbGVuZ3RoKQorCisjZW5kaWYgLyogX0NSQzMyX0ggKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2RlbHBhcnQuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2RlbHBhcnQuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTZkOTljCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvZGVscGFydC44CkBAIC0wLDAgKzEsMzQgQEAKKy5cIiBkZWxwYXJ0LjggLS0KKy5cIiBDb3B5cmlnaHQgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKy5cIiBDb3B5cmlnaHQgMjAwNyBSZWQgSGF0LCBJbmMuCisuXCIgTWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLlRIIERFTFBBUlQgOCAiMTEgSmFuIDIwMDciCisuU0ggTkFNRQorZGVscGFydCBcLQorc2ltcGxlIHdyYXBwZXIgYXJvdW5kIHRoZSAiZGVsIHBhcnRpdGlvbiIgaW9jdGwKKy5TSCBTWU5PUFNJUworLkIgZGVscGFydAorLkkgZGV2aWNlIHBhcnRpdGlvbgorLlNIIERFU0NSSVBUSU9OCisuQiBkZWxwYXJ0CitpcyBhIHByb2dyYW0gdGhhdCBhc2tzIHRoZSBMaW51eCBrZXJuZWwgdG8gcmVtb3ZlIGEgcGFydGl0aW9uLgorCitUaGlzIGNvbW1hbmQgZG9lc24ndCBtYW5pcHVsYXRlIHdpdGggcGFydGl0aW9ucyBvbiBoYXJkIGRyaXZlLgorCisuU0ggT1BUSU9OUworLlRQCisuSSBkZXZpY2UKK1NwZWNpZnkgdGhlIGRpc2sgZGV2aWNlLgorLlRQCisuSSBwYXJ0aXRpb24KK1NwZWNpZnkgdGhlIHBhcnRpdGlvbiBudW1iZXIuCisKKy5TSCBTRUUgQUxTTworLkJSIGFkZHBhcnQgKDgpLAorLkJSIGZkaXNrICg4KSwKKy5CUiBwYXJ0ZWQgKDgpLAorLkJSIHBhcnRwcm9iZSAoOCksCisuQlIgcGFydHggKDgpCisuU0ggQVZBSUxBQklMSVRZCitUaGUgZGVscGFydCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2RlbHBhcnQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2RlbHBhcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGNhNzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvZGVscGFydC5jCkBAIC0wLDAgKzEsNDMgQEAKKy8qIHZlcnkgcHJpbWl0aXZlIHdyYXBwZXIgYXJvdW5kIHRoZSBgZGVsZXRlIHBhcnRpdGlvbicgaW9jdGwgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaWZkZWYgSEFWRV9MSU5VWF9DT01QSUxFUl9ICisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGxpbnV4L2Jsa3BnLmg+CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpeworCWludCBmZDsKKwlzdHJ1Y3QgYmxrcGdfaW9jdGxfYXJnIGE7CisJc3RydWN0IGJsa3BnX3BhcnRpdGlvbiBwOworCisJaWYgKGFyZ2MgIT0gMykgeworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCSJ1c2FnZTogJXMgZGlza2RldmljZSBwYXJ0aXRpb25uclxuIiwKKwkJCWFyZ3ZbMF0pOworCQlleGl0KDEpOworCX0KKwlpZiAoKGZkID0gb3Blbihhcmd2WzFdLCBPX1JET05MWSkpIDwgMCkgeworCQlwZXJyb3IoYXJndlsxXSk7CisJCWV4aXQoMSk7CisJfQorCXAucG5vID0gYXRvaShhcmd2WzJdKTsKKwlwLnN0YXJ0ID0gMDsKKwlwLmxlbmd0aCA9IDA7CisJcC5kZXZuYW1lWzBdID0gMDsKKwlwLnZvbG5hbWVbMF0gPSAwOworCWEub3AgPSBCTEtQR19ERUxfUEFSVElUSU9OOworCWEuZmxhZ3MgPSAwOworCWEuZGF0YWxlbiA9IHNpemVvZihwKTsKKwlhLmRhdGEgPSAmcDsKKworCWlmIChpb2N0bChmZCwgQkxLUEcsICZhKSA9PSAtMSkgeworCQlwZXJyb3IoIkJMS1BHIik7CisJCWV4aXQoMSk7CisJfQorCSAgICAKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2Rvcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvZG9zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk2MmYzNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2Rvcy5jCkBAIC0wLDAgKzEsMTM4IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgImJsa2Rldi5oIgorCisjaW5jbHVkZSAicGFydHguaCIKKyNpbmNsdWRlICJkb3MuaCIKKworc3RhdGljIGludAoraXNfZXh0ZW5kZWQoaW50IHR5cGUpIHsKKwlyZXR1cm4gKHR5cGUgPT0gNSB8fCB0eXBlID09IDB4ZiB8fCB0eXBlID09IDB4ODUpOworfQorCisvKiBhc3NlbWJsZSBiYWRseSBhbGlnbmVkIGxpdHRsZSBlbmRpYW4gaW50ZWdlciAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKK2Fzc2VtYmxlNGxlKHVuc2lnbmVkIGNoYXIgKnApIHsKKwlyZXR1cm4gcFswXSB8IChwWzFdIDw8IDgpIHwgKHBbMl0gPDwgMTYpIHwgKHBbM10gPDwgMjQpOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAorcGFydGl0aW9uX3N0YXJ0KHN0cnVjdCBwYXJ0aXRpb24gKnApIHsKKwlyZXR1cm4gYXNzZW1ibGU0bGUoJihwLT5zdGFydF9zZWN0WzBdKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50CitwYXJ0aXRpb25fc2l6ZShzdHJ1Y3QgcGFydGl0aW9uICpwKSB7CisJcmV0dXJuIGFzc2VtYmxlNGxlKCYocC0+bnJfc2VjdHNbMF0pKTsKK30KKworc3RhdGljIGludAorcmVhZF9leHRlbmRlZF9wYXJ0aXRpb24oaW50IGZkLCBzdHJ1Y3QgcGFydGl0aW9uICplcCwKKwkJCXN0cnVjdCBzbGljZSAqc3AsIGludCBucywgaW50IHNzZikKK3sKKwlzdHJ1Y3QgcGFydGl0aW9uICpwOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGhlcmU7CisJdW5zaWduZWQgY2hhciAqYnA7CisJaW50IGxvb3BjdCA9IDA7CisJaW50IG1vcmV0b2RvID0gMTsKKwlpbnQgaSwgbj0wOworCisJaGVyZSA9IHN0YXJ0ID0gcGFydGl0aW9uX3N0YXJ0KGVwKTs7CisKKwl3aGlsZSAobW9yZXRvZG8pIHsKKwkJbW9yZXRvZG8gPSAwOworCQlpZiAoKytsb29wY3QgPiAxMDApCisJCQlyZXR1cm4gbjsKKworCQlicCA9IGdldGJsb2NrKGZkLCBoZXJlICogc3NmKTsJLyogaW4gNTEyIGJsb2NrcyAqLworCQlpZiAoYnAgPT0gTlVMTCkKKwkJCXJldHVybiBuOworCisJCWlmIChicFs1MTBdICE9IDB4NTUgfHwgYnBbNTExXSAhPSAweGFhKQorCQkJcmV0dXJuIG47CisKKwkJcCA9IChzdHJ1Y3QgcGFydGl0aW9uICopIChicCArIDB4MWJlKTsKKworCQlmb3IgKGk9MDsgaTwyOyBpKyssIHArKykgeworCQkJaWYgKHBhcnRpdGlvbl9zaXplKHApID09IDAgfHwgaXNfZXh0ZW5kZWQocC0+c3lzX3R5cGUpKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKG4gPCBucykgeworCQkJCXNwW25dLnN0YXJ0ID0gKGhlcmUgKyBwYXJ0aXRpb25fc3RhcnQocCkpICogc3NmOworCQkJCXNwW25dLnNpemUgPSBwYXJ0aXRpb25fc2l6ZShwKSAqIHNzZjsKKwkJCQluKys7CisJCQl9IGVsc2UgeworCQkJCWZwcmludGYoc3RkZXJyLAorCQkJCSAgICAiZG9zX2V4dGRfcGFydGl0aW9uOiB0b28gbWFueSBzbGljZXNcbiIpOworCQkJCXJldHVybiBuOworCQkJfQorCQkJbG9vcGN0ID0gMDsKKwkJfQorCisJCXAgLT0gMjsKKwkJZm9yIChpPTA7IGk8MjsgaSsrLCBwKyspIHsKKwkJCWlmIChwYXJ0aXRpb25fc2l6ZShwKSAhPSAwICYmCisJCQkgICAgaXNfZXh0ZW5kZWQocC0+c3lzX3R5cGUpKSB7CisJCQkJaGVyZSA9IHN0YXJ0ICsgcGFydGl0aW9uX3N0YXJ0KHApOworCQkJCW1vcmV0b2RvID0gMTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKwlyZXR1cm4gbjsKK30KKworc3RhdGljIGludAoraXNfZ3B0KGludCB0eXBlKSB7CisJcmV0dXJuICh0eXBlID09IDB4RUUpOworfQorCitpbnQKK3JlYWRfZG9zX3B0KGludCBmZCwgc3RydWN0IHNsaWNlIGFsbCwgc3RydWN0IHNsaWNlICpzcCwgaW50IG5zKSB7CisJc3RydWN0IHBhcnRpdGlvbiAqcDsKKwl1bnNpZ25lZCBsb25nIG9mZnNldCA9IGFsbC5zdGFydDsKKwlpbnQgaSwgbj0wOworCXVuc2lnbmVkIGNoYXIgKmJwOworCWludCBzc2Y7CisKKwlicCA9IGdldGJsb2NrKGZkLCBvZmZzZXQpOworCWlmIChicCA9PSBOVUxMKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoYnBbNTEwXSAhPSAweDU1IHx8IGJwWzUxMV0gIT0gMHhhYSkKKwkJcmV0dXJuIC0xOworCisJLyogbXNkb3MgUFQgZGVwZW5kcyBzZWN0b3Igc2l6ZS4uLiAqLworCWlmIChibGtkZXZfZ2V0X3NlY3Rvcl9zaXplKGZkLCAmc3NmKSAhPSAwKQorCQlzc2YgPSBERUZBVUxUX1NFQ1RPUl9TSVpFOworCisJLyogLi4uIGJ1dCBwYXJ0eCBjb3VudHMgZXZlcnl0aGluZyBpbiA1MTItYnl0ZSBzZWN0b3JzICovCisJc3NmIC89IDUxMjsKKworCXAgPSAoc3RydWN0IHBhcnRpdGlvbiAqKSAoYnAgKyAweDFiZSk7CisJZm9yIChpPTA7IGk8NDsgaSsrKSB7CisJCWlmIChpc19ncHQocC0+c3lzX3R5cGUpKQorCQkJcmV0dXJuIDA7CisJCXArKzsKKwl9CisJcCA9IChzdHJ1Y3QgcGFydGl0aW9uICopIChicCArIDB4MWJlKTsKKwlmb3IgKGk9MDsgaTw0OyBpKyspIHsKKwkJLyogYWx3YXlzIGFkZCwgZXZlbiBpZiB6ZXJvIGxlbmd0aCAqLworCQlpZiAobiA8IG5zKSB7CisJCQlzcFtuXS5zdGFydCA9IHBhcnRpdGlvbl9zdGFydChwKSAqIHNzZjsKKwkJCXNwW25dLnNpemUgPSBwYXJ0aXRpb25fc2l6ZShwKSAqIHNzZjsKKwkJCW4rKzsKKwkJfSBlbHNlIHsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCSJkb3NfcGFydGl0aW9uOiB0b28gbWFueSBzbGljZXNcbiIpOworCQkJYnJlYWs7CisJCX0KKwkJcCsrOworCX0KKwlwID0gKHN0cnVjdCBwYXJ0aXRpb24gKikgKGJwICsgMHgxYmUpOworCWZvciAoaT0wOyBpPDQ7IGkrKykgeworCQlpZiAoaXNfZXh0ZW5kZWQocC0+c3lzX3R5cGUpKQorCQkJbiArPSByZWFkX2V4dGVuZGVkX3BhcnRpdGlvbihmZCwgcCwgc3ArbiwgbnMtbiwgc3NmKTsKKwkJcCsrOworCX0KKwlyZXR1cm4gbjsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2Rvcy5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvZG9zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc3YmVlYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2Rvcy5oCkBAIC0wLDAgKzEsMTMgQEAKKyNpZm5kZWYgRE9TX0hfSU5DTFVERUQKKyNkZWZpbmUgRE9TX0hfSU5DTFVERUQKKworc3RydWN0IHBhcnRpdGlvbiB7CisJdW5zaWduZWQgY2hhciBib290X2luZDsJLyogMHg4MCAtIGFjdGl2ZSAqLworCXVuc2lnbmVkIGNoYXIgYmgsIGJzLCBiYzsKKwl1bnNpZ25lZCBjaGFyIHN5c190eXBlOworCXVuc2lnbmVkIGNoYXIgZWgsIGVzLCBlYzsKKwl1bnNpZ25lZCBjaGFyIHN0YXJ0X3NlY3RbNF07CisJdW5zaWduZWQgY2hhciBucl9zZWN0c1s0XTsKK307CisKKyNlbmRpZgkJCQkvKiBET1NfSF9JTkNMVURFRCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvZWZpLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9lZmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2YyNzQwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvZWZpLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAgZWZpLltjaF0gLSBNYW5pcHVsYXRlcyBFRkkgdmFyaWFibGVzIGFzIGV4cG9ydGVkIGluIC9wcm9jL2VmaS92YXJzCisgCisgIENvcHlyaWdodCAoQykgMjAwMSBEZWxsIENvbXB1dGVyIENvcnBvcmF0aW9uIDxNYXR0X0RvbXNjaEBkZWxsLmNvbT4KKyAKKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2lmbmRlZiBFRklfSAorI2RlZmluZSBFRklfSAorCisvKgorICogRXh0ZW5zaWJsZSBGaXJtd2FyZSBJbnRlcmZhY2UKKyAqIEJhc2VkIG9uICdFeHRlbnNpYmxlIEZpcm13YXJlIEludGVyZmFjZSBTcGVjaWZpY2F0aW9uJworICogICAgICB2ZXJzaW9uIDEuMDIsIDEyIERlY2VtYmVyLCAyMDAwCisgKi8KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKwordHlwZWRlZiBzdHJ1Y3QgeworCXVpbnQ4X3QgIGJbMTZdOworfSBlZmlfZ3VpZF90OworCisjZGVmaW5lIEVGSV9HVUlEKGEsYixjLGQwLGQxLGQyLGQzLGQ0LGQ1LGQ2LGQ3KSBcCisoKGVmaV9ndWlkX3QpIFwKK3t7IChhKSAmIDB4ZmYsICgoYSkgPj4gOCkgJiAweGZmLCAoKGEpID4+IDE2KSAmIDB4ZmYsICgoYSkgPj4gMjQpICYgMHhmZiwgXAorICAoYikgJiAweGZmLCAoKGIpID4+IDgpICYgMHhmZiwgXAorICAoYykgJiAweGZmLCAoKGMpID4+IDgpICYgMHhmZiwgXAorICAoZDApLCAoZDEpLCAoZDIpLCAoZDMpLCAoZDQpLCAoZDUpLCAoZDYpLCAoZDcpIH19KQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdVSURzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBOVUxMX0dVSUQgXAorRUZJX0dVSUQoIDB4MDAwMDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQorCitzdGF0aWMgaW5saW5lIGludAorZWZpX2d1aWRjbXAoZWZpX2d1aWRfdCBsZWZ0LCBlZmlfZ3VpZF90IHJpZ2h0KQoreworCXJldHVybiBtZW1jbXAoJmxlZnQsICZyaWdodCwgc2l6ZW9mIChlZmlfZ3VpZF90KSk7Cit9CisKK3R5cGVkZWYgdWludDE2X3QgZWZpX2NoYXIxNl90OwkJLyogVU5JQ09ERSBjaGFyYWN0ZXIgKi8KKworI2VuZGlmIC8qIEVGSV9IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9ncHQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2dwdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlNjEyZmMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9ncHQuYwpAQCAtMCwwICsxLDUxMCBAQAorLyoKKyAgICBncHQuW2NoXQorCisgICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgRGVsbCBDb21wdXRlciBDb3Jwb3JhdGlvbiA8TWF0dF9Eb21zY2hAZGVsbC5jb20+CisKKyAgICBFRkkgR1VJRCBQYXJ0aXRpb24gVGFibGUgaGFuZGxpbmcKKyAgICBQZXIgSW50ZWwgRUZJIFNwZWNpZmljYXRpb24gdjEuMDIKKyAgICBodHRwOi8vZGV2ZWxvcGVyLmludGVsLmNvbS90ZWNobm9sb2d5L2VmaS9lZmkuaHRtCisKKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSAiYmxrZGV2LmgiCisjaW5jbHVkZSAiY3JjMzIuaCIKKyNpbmNsdWRlICJncHQuaCIKKyNpbmNsdWRlICJwYXJ0eC5oIgorI2luY2x1ZGUgImJpdG9wcy5oIgorCitzdGF0aWMgaW5saW5lIHVpbnQzMl90CitlZmlfY3JjMzIoY29uc3Qgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIGxlbikKK3sKKwlyZXR1cm4gKGNyYzMyKH4wTCwgYnVmLCBsZW4pIF4gfjBMKTsKK30KKworLyoqCisgKiBpc19wbWJyX3ZhbGlkKCk6IHRlc3QgUHJvdGVjdGl2ZSBNQlIgZm9yIHZhbGlkaXR5CisgKiBAbWJyOiBwb2ludGVyIHRvIGEgbGVnYWN5IG1iciBzdHJ1Y3R1cmUKKyAqCisgKiBEZXNjcmlwdGlvbjogUmV0dXJucyAxIGlmIFBNQlIgaXMgdmFsaWQsIDAgb3RoZXJ3aXNlLgorICogVmFsaWRpdHkgZGVwZW5kcyBvbiB0d28gdGhpbmdzOgorICogIDEpIE1TRE9TIHNpZ25hdHVyZSBpcyBpbiB0aGUgbGFzdCB0d28gYnl0ZXMgb2YgdGhlIE1CUgorICogIDIpIE9uZSBwYXJ0aXRpb24gb2YgdHlwZSAweEVFIGlzIGZvdW5kCisgKi8KK3N0YXRpYyBpbnQKK2lzX3BtYnJfdmFsaWQobGVnYWN5X21iciAqbWJyKQoreworCWludCBpLCBmb3VuZCA9IDAsIHNpZ25hdHVyZSA9IDA7CisJaWYgKCFtYnIpCisJCXJldHVybiAwOworCXNpZ25hdHVyZSA9IChsZTE2X3RvX2NwdShtYnItPnNpZ25hdHVyZSkgPT0gTVNET1NfTUJSX1NJR05BVFVSRSk7CisJZm9yIChpID0gMDsgc2lnbmF0dXJlICYmIGkgPCA0OyBpKyspIHsKKwkJaWYgKG1ici0+cGFydGl0aW9uW2ldLnN5c190eXBlID09CisgICAgICAgICAgICAgICAgICAgIEVGSV9QTUJSX09TVFlQRV9FRklfR1BUKSB7CisJCQlmb3VuZCA9IDE7CisJCQlicmVhazsKKwkJfQorCX0KKwlyZXR1cm4gKHNpZ25hdHVyZSAmJiBmb3VuZCk7Cit9CisKK3N0YXRpYyBpbnQKK2dldF9zZWN0b3Jfc2l6ZSAoaW50IGZkKQoreworCWludCBzZWN0b3Jfc2l6ZTsKKworCWlmIChibGtkZXZfZ2V0X3NlY3Rvcl9zaXplKGZkLCAmc2VjdG9yX3NpemUpID09IC0xKQorCQlyZXR1cm4gREVGQVVMVF9TRUNUT1JfU0laRTsKKwlyZXR1cm4gc2VjdG9yX3NpemU7Cit9CisKK3N0YXRpYyB1aW50NjRfdAorZ2V0X251bV9zZWN0b3JzKGludCBmZCkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXM9MDsKKworCWlmIChibGtkZXZfZ2V0X3NpemUoZmQsICZieXRlcykgPT0gLTEpCisJCXJldHVybiAwOworCXJldHVybiBieXRlcyAvIGdldF9zZWN0b3Jfc2l6ZShmZCk7Cit9CisKK3N0YXRpYyB1aW50NjRfdAorbGFzdF9sYmEoaW50IGZpbGVkZXMpCit7CisJaW50IHJjOworCXVpbnQ2NF90IHNlY3RvcnMgPSAwOworCXN0cnVjdCBzdGF0IHM7CisJbWVtc2V0KCZzLCAwLCBzaXplb2YgKHMpKTsKKwlyYyA9IGZzdGF0KGZpbGVkZXMsICZzKTsKKwlpZiAocmMgPT0gLTEpIHsKKwkJZnByaW50ZihzdGRlcnIsICJsYXN0X2xiYSgpIGNvdWxkIG5vdCBzdGF0OiAlc1xuIiwKKwkJCXN0cmVycm9yKGVycm5vKSk7CisJCXJldHVybiAwOworCX0KKworCWlmIChTX0lTQkxLKHMuc3RfbW9kZSkpIHsKKwkJc2VjdG9ycyA9IGdldF9udW1fc2VjdG9ycyhmaWxlZGVzKTsKKwl9IGVsc2UgeworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCSJsYXN0X2xiYSgpOiBJIGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSBmaWxlcyB3aXRoIG1vZGUgJXhcbiIsCisJCQlzLnN0X21vZGUpOworCQlzZWN0b3JzID0gMTsKKwl9CisKKwlyZXR1cm4gc2VjdG9ycyAtIDE7Cit9CisKK3N0YXRpYyBzc2l6ZV90CityZWFkX2xiYShpbnQgZmQsIHVpbnQ2NF90IGxiYSwgdm9pZCAqYnVmZmVyLCBzaXplX3QgYnl0ZXMpCit7CisJaW50IHNlY3Rvcl9zaXplID0gZ2V0X3NlY3Rvcl9zaXplKGZkKTsKKwlvZmZfdCBvZmZzZXQgPSBsYmEgKiBzZWN0b3Jfc2l6ZTsKKworCWxzZWVrKGZkLCBvZmZzZXQsIFNFRUtfU0VUKTsKKwlyZXR1cm4gcmVhZChmZCwgYnVmZmVyLCBieXRlcyk7Cit9CisKKy8qKgorICogYWxsb2NfcmVhZF9ncHRfZW50cmllcygpOiByZWFkcyBwYXJ0aXRpb24gZW50cmllcyBmcm9tIGRpc2sKKyAqIEBmZCAgaXMgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IgdG8gdGhlIHdob2xlIGRpc2sKKyAqIEBncHQgaXMgYSBidWZmZXIgaW50byB3aGljaCB0aGUgR1BUIHdpbGwgYmUgcHV0ICAKKyAqIERlc2NyaXB0aW9uOiBSZXR1cm5zIHB0ZXMgb24gc3VjY2VzcywgIE5VTEwgb24gZXJyb3IuCisgKiBBbGxvY2F0ZXMgc3BhY2UgZm9yIFBURXMgYmFzZWQgb24gaW5mb3JtYXRpb24gZm91bmQgaW4gQGdwdC4KKyAqIE5vdGVzOiByZW1lbWJlciB0byBmcmVlIHB0ZSB3aGVuIHlvdSdyZSBkb25lIQorICovCitzdGF0aWMgZ3B0X2VudHJ5ICoKK2FsbG9jX3JlYWRfZ3B0X2VudHJpZXMoaW50IGZkLCBncHRfaGVhZGVyICogZ3B0KQoreworCWdwdF9lbnRyeSAqcHRlOworICAgICAgICBzaXplX3QgY291bnQgPSBsZTMyX3RvX2NwdShncHQtPm51bV9wYXJ0aXRpb25fZW50cmllcykgKgorICAgICAgICAgICAgICAgIGxlMzJfdG9fY3B1KGdwdC0+c2l6ZW9mX3BhcnRpdGlvbl9lbnRyeSk7CisKKyAgICAgICAgaWYgKCFjb3VudCkgcmV0dXJuIE5VTEw7CisKKwlwdGUgPSAoZ3B0X2VudHJ5ICopbWFsbG9jKGNvdW50KTsKKwlpZiAoIXB0ZSkKKwkJcmV0dXJuIE5VTEw7CisJbWVtc2V0KHB0ZSwgMCwgY291bnQpOworCisJaWYgKCFyZWFkX2xiYShmZCwgbGU2NF90b19jcHUoZ3B0LT5wYXJ0aXRpb25fZW50cnlfbGJhKSwgcHRlLAorICAgICAgICAgICAgICAgICAgICAgIGNvdW50KSkgeworCQlmcmVlKHB0ZSk7CisJCXJldHVybiBOVUxMOworCX0KKwlyZXR1cm4gcHRlOworfQorCisvKioKKyAqIGFsbG9jX3JlYWRfZ3B0X2hlYWRlcigpOiBBbGxvY2F0ZXMgR1BUIGhlYWRlciwgcmVhZHMgaW50byBpdCBmcm9tIGRpc2sKKyAqIEBmZCAgaXMgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IgdG8gdGhlIHdob2xlIGRpc2sKKyAqIEBsYmEgaXMgdGhlIExvZ2ljYWwgQmxvY2sgQWRkcmVzcyBvZiB0aGUgcGFydGl0aW9uIHRhYmxlCisgKiAKKyAqIERlc2NyaXB0aW9uOiByZXR1cm5zIEdQVCBoZWFkZXIgb24gc3VjY2VzcywgTlVMTCBvbiBlcnJvci4gICBBbGxvY2F0ZXMKKyAqIGFuZCBmaWxscyBhIEdQVCBoZWFkZXIgc3RhcnRpbmcgYXQgQCBmcm9tIEBiZGV2LgorICogTm90ZTogcmVtZW1iZXIgdG8gZnJlZSBncHQgd2hlbiBmaW5pc2hlZCB3aXRoIGl0LgorICovCitzdGF0aWMgZ3B0X2hlYWRlciAqCithbGxvY19yZWFkX2dwdF9oZWFkZXIoaW50IGZkLCB1aW50NjRfdCBsYmEpCit7CisJZ3B0X2hlYWRlciAqZ3B0OworCWdwdCA9IChncHRfaGVhZGVyICopCisJICAgIG1hbGxvYyhzaXplb2YgKGdwdF9oZWFkZXIpKTsKKwlpZiAoIWdwdCkKKwkJcmV0dXJuIE5VTEw7CisJbWVtc2V0KGdwdCwgMCwgc2l6ZW9mICgqZ3B0KSk7CisJaWYgKCFyZWFkX2xiYShmZCwgbGJhLCBncHQsIHNpemVvZiAoZ3B0X2hlYWRlcikpKSB7CisJCWZyZWUoZ3B0KTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJcmV0dXJuIGdwdDsKK30KKworLyoqCisgKiBpc19ncHRfdmFsaWQoKSAtIHRlc3RzIG9uZSBHUFQgaGVhZGVyIGFuZCBQVEVzIGZvciB2YWxpZGl0eQorICogQGZkICBpcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciB0byB0aGUgd2hvbGUgZGlzaworICogQGxiYSBpcyB0aGUgbG9naWNhbCBibG9jayBhZGRyZXNzIG9mIHRoZSBHUFQgaGVhZGVyIHRvIHRlc3QKKyAqIEBncHQgaXMgYSBHUFQgaGVhZGVyIHB0ciwgZmlsbGVkIG9uIHJldHVybi4KKyAqIEBwdGVzIGlzIGEgUFRFcyBwdHIsIGZpbGxlZCBvbiByZXR1cm4uCisgKgorICogRGVzY3JpcHRpb246IHJldHVybnMgMSBpZiB2YWxpZCwgIDAgb24gZXJyb3IuCisgKiBJZiB2YWxpZCwgcmV0dXJucyBwb2ludGVycyB0byBuZXdseSBhbGxvY2F0ZWQgR1BUIGhlYWRlciBhbmQgUFRFcy4KKyAqLworc3RhdGljIGludAoraXNfZ3B0X3ZhbGlkKGludCBmZCwgdWludDY0X3QgbGJhLAorICAgICAgICAgICAgIGdwdF9oZWFkZXIgKiogZ3B0LCBncHRfZW50cnkgKiogcHRlcykKK3sKKwlpbnQgcmMgPSAwOwkJLyogZGVmYXVsdCB0byBub3QgdmFsaWQgKi8KKwl1aW50MzJfdCBjcmMsIG9yaWdjcmM7CisKKwlpZiAoIWdwdCB8fCAhcHRlcykKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKwlpZiAoISgqZ3B0ID0gYWxsb2NfcmVhZF9ncHRfaGVhZGVyKGZkLCBsYmEpKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBDaGVjayB0aGUgR1VJRCBQYXJ0aXRpb24gVGFibGUgc2lnbmF0dXJlICovCisJaWYgKGxlNjRfdG9fY3B1KCgqZ3B0KS0+c2lnbmF0dXJlKSAhPSBHUFRfSEVBREVSX1NJR05BVFVSRSkgeworCQkvKiAKKwkJICAgcHJpbnRmKCJHVUlEIFBhcnRpdGlvbiBUYWJsZSBIZWFkZXIgc2lnbmF0dXJlIGlzIHdyb25nOiAlIiBQUkl4NjQiICE9ICUiIFBSSXg2NCAiXG4iLAorCQkgICBsZTY0X3RvX2NwdSgoKmdwdCktPnNpZ25hdHVyZSksIEdVSURfUFRfSEVBREVSX1NJR05BVFVSRSk7CisJCSAqLworCQlmcmVlKCpncHQpOworCQkqZ3B0ID0gTlVMTDsKKwkJcmV0dXJuIHJjOworCX0KKworCS8qIENoZWNrIHRoZSBHVUlEIFBhcnRpdGlvbiBUYWJsZSBIZWFkZXIgQ1JDICovCisJb3JpZ2NyYyA9IGxlMzJfdG9fY3B1KCgqZ3B0KS0+aGVhZGVyX2NyYzMyKTsKKwkoKmdwdCktPmhlYWRlcl9jcmMzMiA9IDA7CisJY3JjID0gZWZpX2NyYzMyKCpncHQsIGxlMzJfdG9fY3B1KCgqZ3B0KS0+aGVhZGVyX3NpemUpKTsKKwlpZiAoY3JjICE9IG9yaWdjcmMpIHsKKwkJLyogcHJpbnRmKCAiR1BUSCBDUkMgY2hlY2sgZmFpbGVkLCAleCAhPSAleC5cbiIsIG9yaWdjcmMsIGNyYyk7ICovCisJCSgqZ3B0KS0+aGVhZGVyX2NyYzMyID0gY3B1X3RvX2xlMzIob3JpZ2NyYyk7CisJCWZyZWUoKmdwdCk7CisJCSpncHQgPSBOVUxMOworCQlyZXR1cm4gMDsKKwl9CisJKCpncHQpLT5oZWFkZXJfY3JjMzIgPSBjcHVfdG9fbGUzMihvcmlnY3JjKTsKKworCS8qIENoZWNrIHRoYXQgdGhlIG15X2xiYSBlbnRyeSBwb2ludHMgdG8gdGhlIExCQQorCSAqIHRoYXQgY29udGFpbnMgdGhlIEdQVCB3ZSByZWFkICovCisJaWYgKGxlNjRfdG9fY3B1KCgqZ3B0KS0+bXlfbGJhKSAhPSBsYmEpIHsKKwkJLyogcHJpbnRmKCAibXlfbGJhICUgUFJJeDY0ICJ4ICE9IGxiYSAlIlBSSXg2NCAieC5cbiIsIGxlNjRfdG9fY3B1KCgqZ3B0KS0+bXlfbGJhKSwgbGJhKTsgKi8KKwkJZnJlZSgqZ3B0KTsKKwkJKmdwdCA9IE5VTEw7CisJCXJldHVybiAwOworCX0KKworCWlmICghKCpwdGVzID0gYWxsb2NfcmVhZF9ncHRfZW50cmllcyhmZCwgKmdwdCkpKSB7CisJCWZyZWUoKmdwdCk7CisJCSpncHQgPSBOVUxMOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKiBDaGVjayB0aGUgR1VJRCBQYXJ0aXRpb24gRW50cnkgQXJyYXkgQ1JDICovCisJY3JjID0gZWZpX2NyYzMyKCpwdGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgbGUzMl90b19jcHUoKCpncHQpLT5udW1fcGFydGl0aW9uX2VudHJpZXMpICoKKwkJCWxlMzJfdG9fY3B1KCgqZ3B0KS0+c2l6ZW9mX3BhcnRpdGlvbl9lbnRyeSkpOworCWlmIChjcmMgIT0gbGUzMl90b19jcHUoKCpncHQpLT5wYXJ0aXRpb25fZW50cnlfYXJyYXlfY3JjMzIpKSB7CisJCS8qIHByaW50ZigiR1VJRCBQYXJ0aXRpdGlvbiBFbnRyeSBBcnJheSBDUkMgY2hlY2sgZmFpbGVkLlxuIik7ICovCisJCWZyZWUoKmdwdCk7CisJCSpncHQgPSBOVUxMOworCQlmcmVlKCpwdGVzKTsKKwkJKnB0ZXMgPSBOVUxMOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKiBXZSdyZSBkb25lLCBhbGwncyB3ZWxsICovCisJcmV0dXJuIDE7Cit9CisvKioKKyAqIGNvbXBhcmVfZ3B0cygpIC0gU2VhcmNoIGRpc2sgZm9yIHZhbGlkIEdQVCBoZWFkZXJzIGFuZCBQVEVzCisgKiBAcGdwdCBpcyB0aGUgcHJpbWFyeSBHUFQgaGVhZGVyCisgKiBAYWdwdCBpcyB0aGUgYWx0ZXJuYXRlIEdQVCBoZWFkZXIKKyAqIEBsYXN0bGJhIGlzIHRoZSBsYXN0IExCQSBudW1iZXIKKyAqIERlc2NyaXB0aW9uOiBSZXR1cm5zIG5vdGhpbmcuICBTYW5pdHkgY2hlY2tzIHBncHQgYW5kIGFncHQgZmllbGRzCisgKiBhbmQgcHJpbnRzIHdhcm5pbmdzIG9uIGRpc2NyZXBhbmNpZXMuCisgKgorICovCitzdGF0aWMgdm9pZAorY29tcGFyZV9ncHRzKGdwdF9oZWFkZXIgKnBncHQsIGdwdF9oZWFkZXIgKmFncHQsIHVpbnQ2NF90IGxhc3RsYmEpCit7CisJaW50IGVycm9yX2ZvdW5kID0gMDsKKwlpZiAoIXBncHQgfHwgIWFncHQpCisJCXJldHVybjsKKwlpZiAobGU2NF90b19jcHUocGdwdC0+bXlfbGJhKSAhPSBsZTY0X3RvX2NwdShhZ3B0LT5hbHRlcm5hdGVfbGJhKSkgeworCQlmcHJpbnRmKHN0ZGVyciwKKwkJICAgICAgICJHUFQ6UHJpbWFyeSBoZWFkZXIgTEJBICE9IEFsdC4gaGVhZGVyIGFsdGVybmF0ZV9sYmFcbiIpOworCQlmcHJpbnRmKHN0ZGVyciwgICJHUFQ6JSIgUFJJeDY0ICJ4ICE9ICUiIFBSSXg2NCAieFxuIiwKKwkJICAgICAgIGxlNjRfdG9fY3B1KHBncHQtPm15X2xiYSksCisJCSAgICAgICBsZTY0X3RvX2NwdShhZ3B0LT5hbHRlcm5hdGVfbGJhKSk7CisJCWVycm9yX2ZvdW5kKys7CisJfQorCWlmIChsZTY0X3RvX2NwdShwZ3B0LT5hbHRlcm5hdGVfbGJhKSAhPSBsZTY0X3RvX2NwdShhZ3B0LT5teV9sYmEpKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkgICAgICAgIkdQVDpQcmltYXJ5IGhlYWRlciBhbHRlcm5hdGVfbGJhICE9IEFsdC4gaGVhZGVyIG15X2xiYVxuIik7CisJCWZwcmludGYoc3RkZXJyLCAgIkdQVDolIiBQUkl4NjQgIiAhPSAlIiBQUkl4NjQgIlxuIiwKKwkJICAgICAgIGxlNjRfdG9fY3B1KHBncHQtPmFsdGVybmF0ZV9sYmEpLAorCQkgICAgICAgbGU2NF90b19jcHUoYWdwdC0+bXlfbGJhKSk7CisJCWVycm9yX2ZvdW5kKys7CisJfQorCWlmIChsZTY0X3RvX2NwdShwZ3B0LT5maXJzdF91c2FibGVfbGJhKSAhPQorICAgICAgICAgICAgbGU2NF90b19jcHUoYWdwdC0+Zmlyc3RfdXNhYmxlX2xiYSkpIHsKKwkJZnByaW50ZihzdGRlcnIsICAiR1BUOmZpcnN0X3VzYWJsZV9sYmFzIGRvbid0IG1hdGNoLlxuIik7CisJCWZwcmludGYoc3RkZXJyLCAgIkdQVDolIiBQUkl4NjQgIiAhPSAlIiBQUkl4NjQgIlxuIiwKKwkJICAgICAgIGxlNjRfdG9fY3B1KHBncHQtPmZpcnN0X3VzYWJsZV9sYmEpLAorCQkgICAgICAgbGU2NF90b19jcHUoYWdwdC0+Zmlyc3RfdXNhYmxlX2xiYSkpOworCQllcnJvcl9mb3VuZCsrOworCX0KKwlpZiAobGU2NF90b19jcHUocGdwdC0+bGFzdF91c2FibGVfbGJhKSAhPQorICAgICAgICAgICAgbGU2NF90b19jcHUoYWdwdC0+bGFzdF91c2FibGVfbGJhKSkgeworCQlmcHJpbnRmKHN0ZGVyciwgICJHUFQ6bGFzdF91c2FibGVfbGJhcyBkb24ndCBtYXRjaC5cbiIpOworCQlmcHJpbnRmKHN0ZGVyciwgICJHUFQ6JSIgUFJJeDY0ICIgIT0gJSIgUFJJeDY0ICJcbiIsCisJCSAgICAgICBsZTY0X3RvX2NwdShwZ3B0LT5sYXN0X3VzYWJsZV9sYmEpLAorCQkgICAgICAgbGU2NF90b19jcHUoYWdwdC0+bGFzdF91c2FibGVfbGJhKSk7CisJCWVycm9yX2ZvdW5kKys7CisJfQorCWlmIChlZmlfZ3VpZGNtcChwZ3B0LT5kaXNrX2d1aWQsIGFncHQtPmRpc2tfZ3VpZCkpIHsKKwkJZnByaW50ZihzdGRlcnIsICAiR1BUOmRpc2tfZ3VpZHMgZG9uJ3QgbWF0Y2guXG4iKTsKKwkJZXJyb3JfZm91bmQrKzsKKwl9CisJaWYgKGxlMzJfdG9fY3B1KHBncHQtPm51bV9wYXJ0aXRpb25fZW50cmllcykgIT0KKyAgICAgICAgICAgIGxlMzJfdG9fY3B1KGFncHQtPm51bV9wYXJ0aXRpb25fZW50cmllcykpIHsKKwkJZnByaW50ZihzdGRlcnIsICAiR1BUOm51bV9wYXJ0aXRpb25fZW50cmllcyBkb24ndCBtYXRjaDogIgorCQkgICAgICAgIjB4JXggIT0gMHgleFxuIiwKKwkJICAgICAgIGxlMzJfdG9fY3B1KHBncHQtPm51bV9wYXJ0aXRpb25fZW50cmllcyksCisJCSAgICAgICBsZTMyX3RvX2NwdShhZ3B0LT5udW1fcGFydGl0aW9uX2VudHJpZXMpKTsKKwkJZXJyb3JfZm91bmQrKzsKKwl9CisJaWYgKGxlMzJfdG9fY3B1KHBncHQtPnNpemVvZl9wYXJ0aXRpb25fZW50cnkpICE9CisgICAgICAgICAgICBsZTMyX3RvX2NwdShhZ3B0LT5zaXplb2ZfcGFydGl0aW9uX2VudHJ5KSkgeworCQlmcHJpbnRmKHN0ZGVyciwKKwkJICAgICAgICJHUFQ6c2l6ZW9mX3BhcnRpdGlvbl9lbnRyeSB2YWx1ZXMgZG9uJ3QgbWF0Y2g6ICIKKwkJICAgICAgICIweCV4ICE9IDB4JXhcbiIsCisJCSAgICAgICBsZTMyX3RvX2NwdShwZ3B0LT5zaXplb2ZfcGFydGl0aW9uX2VudHJ5KSwKKwkJICAgICAgIGxlMzJfdG9fY3B1KGFncHQtPnNpemVvZl9wYXJ0aXRpb25fZW50cnkpKTsKKwkJZXJyb3JfZm91bmQrKzsKKwl9CisJaWYgKGxlMzJfdG9fY3B1KHBncHQtPnBhcnRpdGlvbl9lbnRyeV9hcnJheV9jcmMzMikgIT0KKyAgICAgICAgICAgIGxlMzJfdG9fY3B1KGFncHQtPnBhcnRpdGlvbl9lbnRyeV9hcnJheV9jcmMzMikpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJCSAgICAgICAiR1BUOnBhcnRpdGlvbl9lbnRyeV9hcnJheV9jcmMzMiB2YWx1ZXMgZG9uJ3QgbWF0Y2g6ICIKKwkJICAgICAgICIweCV4ICE9IDB4JXhcbiIsCisJCSAgICAgICBsZTMyX3RvX2NwdShwZ3B0LT5wYXJ0aXRpb25fZW50cnlfYXJyYXlfY3JjMzIpLAorCQkgICAgICAgbGUzMl90b19jcHUoYWdwdC0+cGFydGl0aW9uX2VudHJ5X2FycmF5X2NyYzMyKSk7CisJCWVycm9yX2ZvdW5kKys7CisJfQorCWlmIChsZTY0X3RvX2NwdShwZ3B0LT5hbHRlcm5hdGVfbGJhKSAhPSBsYXN0bGJhKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkgICAgICAgIkdQVDpQcmltYXJ5IGhlYWRlciB0aGlua3MgQWx0LiBoZWFkZXIgaXMgbm90IGF0IHRoZSBlbmQgb2YgdGhlIGRpc2suXG4iKTsKKwkJZnByaW50ZihzdGRlcnIsICAiR1BUOiUiIFBSSXg2NCAiICE9ICUiIFBSSXg2NCAiXG4iLAorCQkgICAgICAgbGU2NF90b19jcHUocGdwdC0+YWx0ZXJuYXRlX2xiYSksIGxhc3RsYmEpOworCQllcnJvcl9mb3VuZCsrOworCX0KKworCWlmIChsZTY0X3RvX2NwdShhZ3B0LT5teV9sYmEpICE9IGxhc3RsYmEpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJCSAgICAgICAiR1BUOkFsdGVybmF0ZSBHUFQgaGVhZGVyIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBkaXNrLlxuIik7CisJCWZwcmludGYoc3RkZXJyLCAgIkdQVDolIiBQUkl4NjQgIiAhPSAlIiBQUkl4NjQgIlxuIiwKKwkJICAgICAgIGxlNjRfdG9fY3B1KGFncHQtPm15X2xiYSksIGxhc3RsYmEpOworCQllcnJvcl9mb3VuZCsrOworCX0KKworCWlmIChlcnJvcl9mb3VuZCkKKwkJZnByaW50ZihzdGRlcnIsCisJCSAgICAgICAiR1BUOiBVc2UgR05VIFBhcnRlZCB0byBjb3JyZWN0IEdQVCBlcnJvcnMuXG4iKTsKKwlyZXR1cm47Cit9CisKKy8qKgorICogZmluZF92YWxpZF9ncHQoKSAtIFNlYXJjaCBkaXNrIGZvciB2YWxpZCBHUFQgaGVhZGVycyBhbmQgUFRFcworICogQGZkICBpcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciB0byB0aGUgd2hvbGUgZGlzaworICogQGdwdCBpcyBhIEdQVCBoZWFkZXIgcHRyLCBmaWxsZWQgb24gcmV0dXJuLgorICogQHB0ZXMgaXMgYSBQVEVzIHB0ciwgZmlsbGVkIG9uIHJldHVybi4KKyAqIERlc2NyaXB0aW9uOiBSZXR1cm5zIDEgaWYgdmFsaWQsIDAgb24gZXJyb3IuCisgKiBJZiB2YWxpZCwgcmV0dXJucyBwb2ludGVycyB0byBuZXdseSBhbGxvY2F0ZWQgR1BUIGhlYWRlciBhbmQgUFRFcy4KKyAqIFZhbGlkaXR5IGRlcGVuZHMgb24gZmluZGluZyBlaXRoZXIgdGhlIFByaW1hcnkgR1BUIGhlYWRlciBhbmQgUFRFcyB2YWxpZCwKKyAqIG9yIHRoZSBBbHRlcm5hdGUgR1BUIGhlYWRlciBhbmQgUFRFcyB2YWxpZCwgYW5kIHRoZSBQTUJSIHZhbGlkLgorICovCitzdGF0aWMgaW50CitmaW5kX3ZhbGlkX2dwdChpbnQgZmQsIGdwdF9oZWFkZXIgKiogZ3B0LCBncHRfZW50cnkgKiogcHRlcykKK3sKKyAgICAgICAgZXh0ZXJuIGludCBmb3JjZV9ncHQ7CisJaW50IGdvb2RfcGdwdCA9IDAsIGdvb2RfYWdwdCA9IDAsIGdvb2RfcG1iciA9IDA7CisJZ3B0X2hlYWRlciAqcGdwdCA9IE5VTEwsICphZ3B0ID0gTlVMTDsKKwlncHRfZW50cnkgKnBwdGVzID0gTlVMTCwgKmFwdGVzID0gTlVMTDsKKwlsZWdhY3lfbWJyICpsZWdhY3ltYnIgPSBOVUxMOworCXVpbnQ2NF90IGxhc3RsYmE7CisJaWYgKCFncHQgfHwgIXB0ZXMpCisJCXJldHVybiAwOworCisJbGFzdGxiYSA9IGxhc3RfbGJhKGZkKTsKKwlnb29kX3BncHQgPSBpc19ncHRfdmFsaWQoZmQsIEdQVF9QUklNQVJZX1BBUlRJVElPTl9UQUJMRV9MQkEsCisJCQkJICZwZ3B0LCAmcHB0ZXMpOworICAgICAgICBpZiAoZ29vZF9wZ3B0KSB7CisJCWdvb2RfYWdwdCA9IGlzX2dwdF92YWxpZChmZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGU2NF90b19jcHUocGdwdC0+YWx0ZXJuYXRlX2xiYSksCisJCQkJCSAmYWdwdCwgJmFwdGVzKTsKKyAgICAgICAgICAgICAgICBpZiAoIWdvb2RfYWdwdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZ29vZF9hZ3B0ID0gaXNfZ3B0X3ZhbGlkKGZkLCBsYXN0bGJhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZ3B0LCAmYXB0ZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBnb29kX2FncHQgPSBpc19ncHRfdmFsaWQoZmQsIGxhc3RsYmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZ3B0LCAmYXB0ZXMpOworICAgICAgICB9CisKKyAgICAgICAgLyogVGhlIG9idmlvdXNseSB1bnN1Y2Nlc3NmdWwgY2FzZSAqLworICAgICAgICBpZiAoIWdvb2RfcGdwdCAmJiAhZ29vZF9hZ3B0KSB7CisgICAgICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICB9CisKKwkvKiBUaGlzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIEVGSSBTcGVjLiBwZXIgSW50ZWwgYWZ0ZXIgdjEuMDIuICovCisgICAgICAgIGxlZ2FjeW1iciA9IG1hbGxvYyhzaXplb2YgKCpsZWdhY3ltYnIpKTsKKyAgICAgICAgaWYgKGxlZ2FjeW1icikgeworICAgICAgICAgICAgICAgIG1lbXNldChsZWdhY3ltYnIsIDAsIHNpemVvZiAoKmxlZ2FjeW1icikpOworICAgICAgICAgICAgICAgIHJlYWRfbGJhKGZkLCAwLCAodWludDhfdCAqKSBsZWdhY3ltYnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mICgqbGVnYWN5bWJyKSk7CisgICAgICAgICAgICAgICAgZ29vZF9wbWJyID0gaXNfcG1icl92YWxpZChsZWdhY3ltYnIpOworICAgICAgICAgICAgICAgIGZyZWUobGVnYWN5bWJyKTsKKyAgICAgICAgICAgICAgICBsZWdhY3ltYnI9TlVMTDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIEZhaWx1cmUgZHVlIHRvIGJhZCBQTUJSICovCisgICAgICAgIGlmICgoZ29vZF9wZ3B0IHx8IGdvb2RfYWdwdCkgJiYgIWdvb2RfcG1iciAmJiAhZm9yY2VfZ3B0KSB7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICAgICIgIFdhcm5pbmc6IERpc2sgaGFzIGEgdmFsaWQgR1BUIHNpZ25hdHVyZSAiCisgICAgICAgICAgICAgICAgICAgICAgICJidXQgaW52YWxpZCBQTUJSLlxuIgorICAgICAgICAgICAgICAgICAgICAgICAiICBBc3N1bWluZyB0aGlzIGRpc2sgaXMgKm5vdCogYSBHUFQgZGlzayBhbnltb3JlLlxuIgorICAgICAgICAgICAgICAgICAgICAgICAiICBVc2UgZ3B0IGtlcm5lbCBvcHRpb24gdG8gb3ZlcnJpZGUuICAiCisgICAgICAgICAgICAgICAgICAgICAgICJVc2UgR05VIFBhcnRlZCB0byBjb3JyZWN0IGRpc2suXG4iKTsKKyAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIH0KKworICAgICAgICAvKiBXb3VsZCBmYWlsIGR1ZSB0byBiYWQgUE1CUiwgYnV0IGZvcmNlIEdQVCBhbnlob3cgKi8KKyAgICAgICAgaWYgKChnb29kX3BncHQgfHwgZ29vZF9hZ3B0KSAmJiAhZ29vZF9wbWJyICYmIGZvcmNlX2dwdCkgeworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIiAgV2FybmluZzogRGlzayBoYXMgYSB2YWxpZCBHUFQgc2lnbmF0dXJlIGJ1dCAiCisgICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIFBNQlIuXG4iCisgICAgICAgICAgICAgICAgICAgICAgICIgIFVzZSBHTlUgUGFydGVkIHRvIGNvcnJlY3QgZGlzay5cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgIiAgZ3B0IG9wdGlvbiB0YWtlbiwgZGlzayB0cmVhdGVkIGFzIEdQVC5cbiIpOworICAgICAgICB9CisKKyAgICAgICAgY29tcGFyZV9ncHRzKHBncHQsIGFncHQsIGxhc3RsYmEpOworCisgICAgICAgIC8qIFRoZSBnb29kIGNhc2VzICovCisgICAgICAgIGlmIChnb29kX3BncHQgJiYgKGdvb2RfcG1iciB8fCBmb3JjZV9ncHQpKSB7CisgICAgICAgICAgICAgICAgKmdwdCAgPSBwZ3B0OworICAgICAgICAgICAgICAgICpwdGVzID0gcHB0ZXM7CisgICAgICAgICAgICAgICAgaWYgKGFncHQpICB7IGZyZWUoYWdwdCk7ICAgYWdwdCA9IE5VTEw7IH0KKyAgICAgICAgICAgICAgICBpZiAoYXB0ZXMpIHsgZnJlZShhcHRlcyk7IGFwdGVzID0gTlVMTDsgfQorICAgICAgICAgICAgICAgIGlmICghZ29vZF9hZ3B0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgCisJCQkgICAgICAgIkFsdGVybmF0ZSBHUFQgaXMgaW52YWxpZCwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2luZyBwcmltYXJ5IEdQVC5cbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChnb29kX2FncHQgJiYgKGdvb2RfcG1iciB8fCBmb3JjZV9ncHQpKSB7CisgICAgICAgICAgICAgICAgKmdwdCAgPSBhZ3B0OworICAgICAgICAgICAgICAgICpwdGVzID0gYXB0ZXM7CisgICAgICAgICAgICAgICAgaWYgKHBncHQpICB7IGZyZWUocGdwdCk7ICAgcGdwdCA9IE5VTEw7IH0KKyAgICAgICAgICAgICAgICBpZiAocHB0ZXMpIHsgZnJlZShwcHRlcyk7IHBwdGVzID0gTlVMTDsgfQorICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIlByaW1hcnkgR1BUIGlzIGludmFsaWQsIHVzaW5nIGFsdGVybmF0ZSBHUFQuXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorCisgZmFpbDoKKyAgICAgICAgaWYgKHBncHQpICB7IGZyZWUocGdwdCk7ICAgcGdwdD1OVUxMOyB9CisgICAgICAgIGlmIChhZ3B0KSAgeyBmcmVlKGFncHQpOyAgIGFncHQ9TlVMTDsgfQorICAgICAgICBpZiAocHB0ZXMpIHsgZnJlZShwcHRlcyk7IHBwdGVzPU5VTEw7IH0KKyAgICAgICAgaWYgKGFwdGVzKSB7IGZyZWUoYXB0ZXMpOyBhcHRlcz1OVUxMOyB9CisgICAgICAgICpncHQgPSBOVUxMOworICAgICAgICAqcHRlcyA9IE5VTEw7CisgICAgICAgIHJldHVybiAwOworfQorCisvKioKKyAqIHJlYWRfZ3B0X3B0KCkgCisgKiBAZmQKKyAqIEBhbGwgLSBzbGljZSB3aXRoIHN0YXJ0L3NpemUgb2Ygd2hvbGUgZGlzaworICoKKyAqICAwIGlmIHRoaXMgaXNuJ3Qgb3VyIHBhcnRpdGlvbiB0YWJsZQorICogIG51bWJlciBvZiBwYXJ0aXRpb25zIGlmIHN1Y2Nlc3NmdWwKKyAqCisgKi8KK2ludAorcmVhZF9ncHRfcHQgKGludCBmZCwgc3RydWN0IHNsaWNlIGFsbCwgc3RydWN0IHNsaWNlICpzcCwgaW50IG5zKQoreworCWdwdF9oZWFkZXIgKmdwdCA9IE5VTEw7CisJZ3B0X2VudHJ5ICpwdGVzID0gTlVMTDsKKwl1aW50MzJfdCBpOworCWludCBuID0gMDsKKyAgICAgICAgaW50IGxhc3RfdXNlZF9pbmRleD0tMTsKKworCWlmICghZmluZF92YWxpZF9ncHQgKGZkLCAmZ3B0LCAmcHRlcykgfHwgIWdwdCB8fCAhcHRlcykgeworCQlmcmVlIChncHQpOworCQlmcmVlIChwdGVzKTsKKwkJcmV0dXJuIDA7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGxlMzJfdG9fY3B1KGdwdC0+bnVtX3BhcnRpdGlvbl9lbnRyaWVzKSAmJiBpIDwgbnM7IGkrKykgeworCQlpZiAoIWVmaV9ndWlkY21wIChOVUxMX0dVSUQsIHB0ZXNbaV0ucGFydGl0aW9uX3R5cGVfZ3VpZCkpIHsKKwkJCXNwW25dLnN0YXJ0ID0gMDsKKwkJCXNwW25dLnNpemUgPSAwOworCQkJbisrOworCQl9IGVsc2UgeworCQkJc3Bbbl0uc3RhcnQgPSBsZTY0X3RvX2NwdShwdGVzW2ldLnN0YXJ0aW5nX2xiYSk7CisJCQlzcFtuXS5zaXplICA9IGxlNjRfdG9fY3B1KHB0ZXNbaV0uZW5kaW5nX2xiYSkgLQorCQkJCWxlNjRfdG9fY3B1KHB0ZXNbaV0uc3RhcnRpbmdfbGJhKSArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3VzZWRfaW5kZXg9bjsKKwkJCW4rKzsKKwkJfQorCX0KKwlmcmVlIChwdGVzKTsKKwlmcmVlIChncHQpOworCXJldHVybiBsYXN0X3VzZWRfaW5kZXgrMTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2dwdC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvZ3B0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk4MTRiNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L2dwdC5oCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICAgIGdwdC5bY2hdCisKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEZWxsIENvbXB1dGVyIENvcnBvcmF0aW9uIDxNYXR0X0RvbXNjaEBkZWxsLmNvbT4gCisKKyAgICBFRkkgR1VJRCBQYXJ0aXRpb24gVGFibGUgaGFuZGxpbmcKKyAgICBQZXIgSW50ZWwgRUZJIFNwZWNpZmljYXRpb24gdjEuMDIKKyAgICBodHRwOi8vZGV2ZWxvcGVyLmludGVsLmNvbS90ZWNobm9sb2d5L2VmaS9lZmkuaHRtCisKKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisqLworCisjaWZuZGVmIF9HUFRfSAorI2RlZmluZSBfR1BUX0gKKworCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlICJwYXJ0eC5oIgorI2luY2x1ZGUgImRvcy5oIgorI2luY2x1ZGUgImVmaS5oIgorCisjZGVmaW5lIEVGSV9QTUJSX09TVFlQRV9FRkkgMHhFRgorI2RlZmluZSBFRklfUE1CUl9PU1RZUEVfRUZJX0dQVCAweEVFCisjZGVmaW5lIE1TRE9TX01CUl9TSUdOQVRVUkUgMHhhYTU1CisjZGVmaW5lIEdQVF9CTE9DS19TSVpFIDUxMgorCisjZGVmaW5lIEdQVF9IRUFERVJfU0lHTkFUVVJFIDB4NTQ1MjQxNTAyMDQ5NDY0NVVMTAorI2RlZmluZSBHUFRfSEVBREVSX1JFVklTSU9OX1YxXzAyIDB4MDAwMTAyMDAKKyNkZWZpbmUgR1BUX0hFQURFUl9SRVZJU0lPTl9WMV8wMCAweDAwMDEwMDAwCisjZGVmaW5lIEdQVF9IRUFERVJfUkVWSVNJT05fVjBfOTkgMHgwMDAwOTkwMAorI2RlZmluZSBHUFRfUFJJTUFSWV9QQVJUSVRJT05fVEFCTEVfTEJBIDEKKwordHlwZWRlZiBzdHJ1Y3QgX2dwdF9oZWFkZXIgeworCXVpbnQ2NF90IHNpZ25hdHVyZTsKKwl1aW50MzJfdCByZXZpc2lvbjsKKwl1aW50MzJfdCBoZWFkZXJfc2l6ZTsKKwl1aW50MzJfdCBoZWFkZXJfY3JjMzI7CisJdWludDMyX3QgcmVzZXJ2ZWQxOworCXVpbnQ2NF90IG15X2xiYTsKKwl1aW50NjRfdCBhbHRlcm5hdGVfbGJhOworCXVpbnQ2NF90IGZpcnN0X3VzYWJsZV9sYmE7CisJdWludDY0X3QgbGFzdF91c2FibGVfbGJhOworCWVmaV9ndWlkX3QgZGlza19ndWlkOworCXVpbnQ2NF90IHBhcnRpdGlvbl9lbnRyeV9sYmE7CisJdWludDMyX3QgbnVtX3BhcnRpdGlvbl9lbnRyaWVzOworCXVpbnQzMl90IHNpemVvZl9wYXJ0aXRpb25fZW50cnk7CisJdWludDMyX3QgcGFydGl0aW9uX2VudHJ5X2FycmF5X2NyYzMyOworCXVpbnQ4X3QgcmVzZXJ2ZWQyW0dQVF9CTE9DS19TSVpFIC0gOTJdOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgZ3B0X2hlYWRlcjsKKwordHlwZWRlZiBzdHJ1Y3QgX2dwdF9lbnRyeV9hdHRyaWJ1dGVzIHsKKwl1aW50NjRfdCByZXF1aXJlZF90b19mdW5jdGlvbjoxOworCXVpbnQ2NF90IHJlc2VydmVkOjQ3OworICAgICAgICB1aW50NjRfdCB0eXBlX2d1aWRfc3BlY2lmaWM6MTY7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBncHRfZW50cnlfYXR0cmlidXRlczsKKwordHlwZWRlZiBzdHJ1Y3QgX2dwdF9lbnRyeSB7CisJZWZpX2d1aWRfdCBwYXJ0aXRpb25fdHlwZV9ndWlkOworCWVmaV9ndWlkX3QgdW5pcXVlX3BhcnRpdGlvbl9ndWlkOworCXVpbnQ2NF90IHN0YXJ0aW5nX2xiYTsKKwl1aW50NjRfdCBlbmRpbmdfbGJhOworCWdwdF9lbnRyeV9hdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CisJZWZpX2NoYXIxNl90IHBhcnRpdGlvbl9uYW1lWzcyIC8gc2l6ZW9mKGVmaV9jaGFyMTZfdCldOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgZ3B0X2VudHJ5OworCisKKy8qIAorICAgVGhlc2UgdmFsdWVzIGFyZSBvbmx5IGRlZmF1bHRzLiAgVGhlIGFjdHVhbCBvbi1kaXNrIHN0cnVjdHVyZXMKKyAgIG1heSBkZWZpbmUgZGlmZmVyZW50IHNpemVzLCBzbyB1c2UgdGhvc2UgdW5sZXNzIGNyZWF0aW5nIGEgbmV3IEdQVCBkaXNrIQorKi8KKworI2RlZmluZSBHUFRfREVGQVVMVF9SRVNFUlZFRF9QQVJUSVRJT05fRU5UUllfQVJSQVlfU0laRSAxNjM4NAorLyogCisgICBOdW1iZXIgb2YgYWN0dWFsIHBhcnRpdGlvbiBlbnRyaWVzIHNob3VsZCBiZSBjYWxjdWxhdGVkCisgICBhczogCisqLworI2RlZmluZSBHUFRfREVGQVVMVF9SRVNFUlZFRF9QQVJUSVRJT05fRU5UUklFUyBcCisgICAgICAgIChHUFRfREVGQVVMVF9SRVNFUlZFRF9QQVJUSVRJT05fRU5UUllfQVJSQVlfU0laRSAvIFwKKyAgICAgICAgIHNpemVvZihncHRfZW50cnkpKQorCisKKy8qIFByb3RlY3RlZCBNYXN0ZXIgQm9vdCBSZWNvcmQgICYgTGVnYWN5IE1CUiBzaGFyZSBzYW1lIHN0cnVjdHVyZSAqLworLyogTmVlZHMgdG8gYmUgcGFja2VkIGJlY2F1c2UgdGhlIHUxNnMgZm9yY2UgbWlzYWxpZ25tZW50LiAqLworCit0eXBlZGVmIHN0cnVjdCBfbGVnYWN5X21iciB7CisJdWludDhfdCBib290Y29kZVs0NDBdOworCXVpbnQzMl90IHVuaXF1ZV9tYnJfc2lnbmF0dXJlOworCXVpbnQxNl90IHVua25vd247CisJc3RydWN0IHBhcnRpdGlvbiBwYXJ0aXRpb25bNF07CisJdWludDE2X3Qgc2lnbmF0dXJlOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgbGVnYWN5X21icjsKKworCisjZGVmaW5lIEVGSV9HUFRfUFJJTUFSWV9QQVJUSVRJT05fVEFCTEVfTEJBIDEKKworLyogRnVuY3Rpb25zICovCitpbnQgcmVhZF9ncHRfcHQgKGludCBmZCwgc3RydWN0IHNsaWNlIGFsbCwgc3RydWN0IHNsaWNlICpzcCwgaW50IG5zKTsKKworCisjZW5kaWYKKworLyoKKyAqIE92ZXJyaWRlcyBmb3IgRW1hY3Mgc28gdGhhdCB3ZSBmb2xsb3cgTGludXMncyB0YWJiaW5nIHN0eWxlLgorICogRW1hY3Mgd2lsbCBub3RpY2UgdGhpcyBzdHVmZiBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlIGFuZCBhdXRvbWF0aWNhbGx5CisgKiBhZGp1c3QgdGhlIHNldHRpbmdzIGZvciB0aGlzIGJ1ZmZlciBvbmx5LiAgVGhpcyBtdXN0IHJlbWFpbiBhdCB0aGUgZW5kCisgKiBvZiB0aGUgZmlsZS4KKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogTG9jYWwgdmFyaWFibGVzOgorICogYy1pbmRlbnQtbGV2ZWw6IDQgCisgKiBjLWJyYWNlLWltYWdpbmFyeS1vZmZzZXQ6IDAKKyAqIGMtYnJhY2Utb2Zmc2V0OiAtNAorICogYy1hcmdkZWNsLWluZGVudDogNAorICogYy1sYWJlbC1vZmZzZXQ6IC00CisgKiBjLWNvbnRpbnVlZC1zdGF0ZW1lbnQtb2Zmc2V0OiA0CisgKiBjLWNvbnRpbnVlZC1icmFjZS1vZmZzZXQ6IDAKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogdGFiLXdpZHRoOiA4CisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L3BhcnR4LjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9wYXJ0eC44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZDA0YzgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9wYXJ0eC44CkBAIC0wLDAgKzEsNTYgQEAKKy5cIiBwYXJ0eC44IC0tCisuXCIgQ29weXJpZ2h0IDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisuXCIgQ29weXJpZ2h0IDIwMDcgUmVkIEhhdCwgSW5jLgorLlwiIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5USCBQQVJUWCA4ICIxMSBKYW4gMjAwNyIKKy5TSCBOQU1FCitwYXJ0eCBcLQordGVsbGluZyB0aGUga2VybmVsIGFib3V0IHByZXNlbmNlIGFuZCBudW1iZXJpbmcgb2Ygb24tZGlzayBwYXJ0aXRpb25zLgorLlNIIFNZTk9QU0lTCisuQiBwYXJ0eAorLlJCIFsgXC1hIHwgXC1kIHwgXC1sIF0KKy5SQiBbIFwtXC10eXBlCisuSVIgVFlQRSBdCisuUkIgWyBcLVwtbnIKKy5JUiBNLU4gXQorLlJJIFsgcGFydGl0aW9uIF0KKy5JIGRpc2sKKy5TSCBERVNDUklQVElPTgorR2l2ZW4gYSBibG9jayBkZXZpY2UgKAorLkIgZGlzaworKSBhbmQgYSBwYXJ0aXRpb24gdGFibGUKKy5CIHR5cGUKKywgdHJ5IHRvIHBhcnNlIHRoZSBwYXJ0aXRpb24gdGFibGUsIGFuZCBsaXN0IHRoZQorY29udGVudHMuIE9wdGlvbmFsbHkgYWRkIG9yIHJlbW92ZSBwYXJ0aXRpb25zLgorCitUaGlzIGlzIG5vdCBhbiBmZGlzayAtIGFkZGluZyBhbmQgcmVtb3ZpbmcgcGFydGl0aW9ucworaXMgbm90IGEgY2hhbmdlIG9mIHRoZSBkaXNrLCBidXQganVzdCB0ZWxsaW5nIHRoZSBrZXJuZWwKK2Fib3V0IHByZXNlbmNlIGFuZCBudW1iZXJpbmcgb2Ygb24tZGlzayBwYXJ0aXRpb25zLgorCisuU0ggT1BUSU9OUworLlRQCisuQiBcLWEKK2FkZCBzcGVjaWZpZWQgcGFydGl0aW9ucyBvciByZWFkIGRpc2sgYW5kIGFkZCBhbGwgcGFydGl0aW9ucworLlRQCisuQiBcLWQKK2RlbGV0ZSBzcGVjaWZpZWQgb3IgYWxsIHBhcnRpdGlvbnMKKy5UUAorLkIgXC1sCitsaXN0IHBhcnRpdGlvbnMuIE5vdGUgdGhhdCB0aGUgYWxsIG51bWJlcnMgYXJlIGluIDUxMi1ieXRlIHNlY3RvcnMuCisuVFAKKy5CSSAtLXR5cGUgIiBUWVBFIgorU3BlY2lmeSB0aGUgcGFydGl0aW9uIHR5cGUgLS0gZG9zLCBic2QsIHNvbGFyaXMsIHVuaXh3YXJlIG9yIGdwdC4KKy5UUAorLkJJIC0tbnIgIiBNLU4iCitTcGVjaWZ5IHRoZSByYW5nZSBvZiBwYXJ0aXRpb25zIChlLmcgLS1uciAyLTQpLgorCisuU0ggU0VFIEFMU08KKy5CUiBhZGRwYXJ0ICg4KSwKKy5CUiBkZWxwYXJ0ICg4KSwKKy5CUiBmZGlzayAoOCksCisuQlIgcGFydGVkICg4KSwKKy5CUiBwYXJ0cHJvYmUgKDgpCisKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBwYXJ0eCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L3BhcnR4LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9wYXJ0eC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ZWExZmEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9wYXJ0eC5jCkBAIC0wLDAgKzEsMzk3IEBACisvKgorICogR2l2ZW4gYSBibG9jayBkZXZpY2UgYW5kIGEgcGFydGl0aW9uIHRhYmxlIHR5cGUsCisgKiB0cnkgdG8gcGFyc2UgdGhlIHBhcnRpdGlvbiB0YWJsZSwgYW5kIGxpc3QgdGhlCisgKiBjb250ZW50cy4gT3B0aW9uYWxseSBhZGQgb3IgcmVtb3ZlIHBhcnRpdGlvbnMuCisgKgorICogW1RoaXMgaXMgbm90IGFuIGZkaXNrIC0gYWRkaW5nIGFuZCByZW1vdmluZyBwYXJ0aXRpb25zCisgKiBpcyBub3QgYSBjaGFuZ2Ugb2YgdGhlIGRpc2ssIGJ1dCBqdXN0IHRlbGxpbmcgdGhlIGtlcm5lbAorICogYWJvdXQgcHJlc2VuY2UgYW5kIG51bWJlcmluZyBvZiBvbi1kaXNrIHBhcnRpdGlvbnMuXQorICoKKyAqIENhbGw6CisgKglwYXJ0eCBbLXtsfGF8ZH1dIFstLXR5cGUgVFlQRV0gWy0tbnIgTS1OXSBbcGFydGl0aW9uXSB3aG9sZWRpc2sKKyAqIHdoZXJlIFRZUEUgaXMge2Rvc3xic2R8c29sYXJpc3x1bml4d2FyZXxncHR9LgorICoKKyAqIFJlYWQgd2hvbGVkaXNrIGFuZCBhZGQgYWxsIHBhcnRpdGlvbnM6CisgKglwYXJ0eCAtYSB3aG9sZWRpc2sKKyAqCisgKiBTdWJkaXZpZGUgYSBwYXJ0aXRpb24gaW50byBzbGljZXMgKGFuZCBkZWxldGUgb3Igc2hyaW5rIHRoZSBwYXJ0aXRpb24pOgorICogW05vdCBlYXN5OiBvbmUgbmVlZHMgdGhlIHBhcnRpdGlvbiBudW1iZXIgb2YgcGFydGl0aW9uIC0KKyAqICB0aGF0IGlzIHRoZSBsYXN0IDQgb3IgNiBiaXRzIG9mIHRoZSBtaW5vcjsgaXQgY2FuIGFsc28gYmUgZm91bmQKKyAqICBpbiAvcHJvYy9wYXJ0aXRpb25zOyBidXQgdGhlcmUgaXMgbm8gZ29vZCBkaXJlY3Qgd2F5Ll0KKyAqCXBhcnR4IC1hIHBhcnRpdGlvbiB3aG9sZWRpc2sKKyAqCisgKiBEZWxldGUgYWxsIHBhcnRpdGlvbnMgZnJvbSB3aG9sZWRpc2s6CisgKglwYXJ0eCAtZCB3aG9sZWRpc2sKKyAqCisgKiBEZWxldGUgcGFydGl0aW9ucyBNLU4gZnJvbSB3aG9sZWRpc2s6CisgKglwYXJ0eCAtZCAtLW5yIE0tTiB3aG9sZWRpc2sKKyAqCisgKiBhZWIsIDIwMDAtMDMtMjEgLS0gc2FoIGlzIDQyIG5vdworICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxsaW51eC9oZHJlZy5oPiAgICAgICAgLyogSERJT19HRVRHRU8gKi8KKyNpZmRlZiBIQVZFX0xJTlVYX0NPTVBJTEVSX0gKKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorI2VuZGlmCisjaW5jbHVkZSA8bGludXgvYmxrcGcuaD4KKworI2luY2x1ZGUgImMuaCIKKyNpbmNsdWRlICJibGtkZXYuaCIKKworI2luY2x1ZGUgInBhcnR4LmgiCisjaW5jbHVkZSAiY3JjMzIuaCIKK3N0YXRpYyB2b2lkIGVycm1lcmdlKGludCBlcnIsIGludCBtLCBjaGFyICptc2cxLCBjaGFyICptc2cyKTsKKworI2RlZmluZSBNQVhUWVBFUwk2NAorI2RlZmluZSBNQVhTTElDRVMJMjU2CisKK3N0cnVjdCBzbGljZSBzbGljZXNbTUFYU0xJQ0VTXTsKKworZW51bSBhY3Rpb24geyBMSVNULCBBREQsIERFTEVURSB9OworCitzdHJ1Y3QgcHQgeworCWNoYXIgKnR5cGU7CisJcHRyZWFkZXIgKmZuOworfSBwdHNbTUFYVFlQRVNdOworaW50IHB0Y3Q7CisKK3N0YXRpYyB2b2lkCithZGRwdHMoY2hhciAqdCwgcHRyZWFkZXIgZikKK3sKKwlpZiAocHRjdCA+PSBNQVhUWVBFUykgeworCQlmcHJpbnRmKHN0ZGVyciwgImFkZHB0czogdG9vIG1hbnkgdHlwZXNcbiIpOworCQlleGl0KDEpOworCX0KKwlwdHNbcHRjdF0udHlwZSA9IHQ7CisJcHRzW3B0Y3RdLmZuID0gZjsKKwlwdGN0Kys7Cit9CisKK3N0YXRpYyB2b2lkCitpbml0cHRzKHZvaWQpCit7CisJYWRkcHRzKCJncHQiLCByZWFkX2dwdF9wdCk7CisJYWRkcHRzKCJkb3MiLCByZWFkX2Rvc19wdCk7CisJYWRkcHRzKCJic2QiLCByZWFkX2JzZF9wdCk7CisJYWRkcHRzKCJzb2xhcmlzIiwgcmVhZF9zb2xhcmlzX3B0KTsKKwlhZGRwdHMoInVuaXh3YXJlIiwgcmVhZF91bml4d2FyZV9wdCk7Cit9CisKK3N0YXRpYyBjaGFyIHNob3J0X29wdHNbXSA9ICJsYWRndm46dDoiOworc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24gbG9uZ19vcHRzW10gPSB7CisJeyAiZ3B0IiwJbm9fYXJndW1lbnQsCSAgICAgICAgTlVMTCwJJ2cnIH0sCisJeyAidHlwZSIsCXJlcXVpcmVkX2FyZ3VtZW50LAlOVUxMLAkndCcgfSwKKwl7ICJuciIsCQlyZXF1aXJlZF9hcmd1bWVudCwJTlVMTCwJJ24nIH0sCisJeyBOVUxMLCAwLCBOVUxMLCAwIH0KK307CisKKy8qIFVzZWQgaW4gZ3B0LmMgKi8KK2ludCBmb3JjZV9ncHQ9MDsKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndil7CisgICAgICAgIGludCBmZCwgZmQyLCBjLCBpLCBqLCBrLCBuOworCXVuc2lnbmVkIGxvbmcgbG9uZyBzaXplOworCXN0cnVjdCBoZF9nZW9tZXRyeSBnOworCXN0cnVjdCBzbGljZSBhbGw7CisgICAgICAgIHN0cnVjdCBibGtwZ19pb2N0bF9hcmcgYTsKKyAgICAgICAgc3RydWN0IGJsa3BnX3BhcnRpdGlvbiBwdDsKKwlzdHJ1Y3QgcHQgKnB0cDsKKwllbnVtIGFjdGlvbiB3aGF0ID0gTElTVDsKKwljaGFyICpwLCAqdHlwZSwgKmRpc2tkZXZpY2UsICpkZXZpY2U7CisJaW50IGxvd2VyLCB1cHBlcjsKKwlpbnQgdmVyYm9zZSA9IDA7CisJaW50IHJldCA9IDA7CisKKwlpbml0cHRzKCk7CisJaW5pdF9jcmMzMigpOworCisJbG93ZXIgPSB1cHBlciA9IDA7CisJdHlwZSA9IGRldmljZSA9IGRpc2tkZXZpY2UgPSBOVUxMOworCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcgKGFyZ2MsIGFyZ3YsIHNob3J0X29wdHMsIGxvbmdfb3B0cywgTlVMTCkpCisJICAgICAgICAhPSAtMSkgc3dpdGNoKGMpIHsKKwljYXNlICdsJzoKKwkJd2hhdCA9IExJU1Q7IGJyZWFrOworCWNhc2UgJ2EnOgorCQl3aGF0ID0gQUREOyBicmVhazsKKwljYXNlICdkJzoKKwkJd2hhdCA9IERFTEVURTsgYnJlYWs7CisJY2FzZSAnZyc6CisJCWZvcmNlX2dwdCA9IDE7IGJyZWFrOworCWNhc2UgJ24nOgorCQlwID0gb3B0YXJnOworCQlsb3dlciA9IGF0b2kocCk7CisJCXAgPSBzdHJjaHIocCwgJy0nKTsKKwkJaWYgKHApCisJCQl1cHBlciA9IGF0b2kocCsxKTsKKwkJZWxzZQorCQkJdXBwZXIgPSBsb3dlcjsKKwkJYnJlYWs7CisJY2FzZSAndCc6CisJCXR5cGUgPSBvcHRhcmc7CisJCWJyZWFrOworCWNhc2UgJ3YnOgorCQl2ZXJib3NlID0gMTsKKwkJYnJlYWs7CisJY2FzZSAnPyc6CisJZGVmYXVsdDoKKwkJZnByaW50ZihzdGRlcnIsICJ1bmtub3duIG9wdGlvblxuIik7CisJCWV4aXQoMSk7CisJfQorCisJaWYgKG9wdGluZCA9PSBhcmdjLTIpIHsKKwkJZGV2aWNlID0gYXJndltvcHRpbmRdOworCQlkaXNrZGV2aWNlID0gYXJndltvcHRpbmQrMV07CisJfSBlbHNlIGlmIChvcHRpbmQgPT0gYXJnYy0xKSB7CisJCWRpc2tkZXZpY2UgPSBkZXZpY2UgPSBhcmd2W29wdGluZF07CisJfSBlbHNlIHsKKwkJZnByaW50ZihzdGRlcnIsICJjYWxsOiBwYXJ0eCAtb3B0cyBbZGV2aWNlXSB3aG9sZWRpc2tcbiIpOworCQlleGl0KDEpOworCX0KKworCWZkID0gb3BlbihkaXNrZGV2aWNlLCBPX1JET05MWSk7CisJaWYgKGZkID09IC0xKSB7CisJCXBlcnJvcihkaXNrZGV2aWNlKTsKKwkJZXhpdCgxKTsKKwl9CisKKwkvKiByZW1vdmUgdGhlIGluZGljYXRlZCBwYXJ0aXRpb25zIGZyb20gdGhlIGtlcm5lbCBwYXJ0aXRpb24gdGFibGVzICovCisJaWYgKHdoYXQgPT0gREVMRVRFKSB7CisJCWlmIChkZXZpY2UgIT0gZGlza2RldmljZSkgeworCQkJZnByaW50ZihzdGRlcnIsCisJCQkJImNhbGw6IHBhcnR4IC1kIFstLW5yIE0tTl0gd2hvbGVkaXNrXG4iKTsKKwkJCWV4aXQoMSk7CisJCX0KKworCQlpZiAoIWxvd2VyKQorCQkJbG93ZXIgPSAxOworCisJCXdoaWxlICh1cHBlciA9PSAwIHx8IGxvd2VyIDw9IHVwcGVyKSB7CisJCQlpbnQgZXJyOworCisJCQlwdC5wbm8gPSBsb3dlcjsKKwkJCXB0LnN0YXJ0ID0gMDsKKwkJCXB0Lmxlbmd0aCA9IDA7CisJCQlwdC5kZXZuYW1lWzBdID0gMDsKKwkJCXB0LnZvbG5hbWVbMF0gPSAwOworCQkJYS5vcCA9IEJMS1BHX0RFTF9QQVJUSVRJT047CisJCQlhLmZsYWdzID0gMDsKKwkJCWEuZGF0YWxlbiA9IHNpemVvZihwdCk7CisJCQlhLmRhdGEgPSAmcHQ7CisJCQlpZiAoaW9jdGwoZmQsIEJMS1BHLCAmYSkgPT0gLTEpCisJCQkgICAgZXJyID0gZXJybm87CisJCQllbHNlCisJCQkgICAgZXJyID0gMDsKKwkJCWVycm1lcmdlKGVyciwgbG93ZXIsCisJCQkJICJlcnJvciBkZWxldGluZyBwYXJ0aXRpb24gJWQ6ICIsCisJCQkJICJlcnJvciBkZWxldGluZyBwYXJ0aXRpb25zICVkLSVkOiAiKTsKKwkJCS8qIGV4cGVjdGVkIGVycm9yczoKKwkJCSAgIEVCVVNZOiBtb3VudGVkIG9yIGluIHVzZSBhcyBzd2FwCisJCQkgICBFTlhJTzogbm8gc3VjaCBub25lbXB0eSBwYXJ0aXRpb24KKwkJCSAgIEVJTlZBTDogbm90IHdob2xlZGlzaywgb3IgYmFkIHBubworCQkJICAgRUFDQ0VTL0VQRVJNOiBwZXJtaXNzaW9uIGRlbmllZAorCQkJKi8KKwkJCWlmIChlcnIgJiYgZXJyICE9IEVCVVNZICYmIGVyciAhPSBFTlhJTykgeworCQkJCXJldCA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoZXJyID09IDAgJiYgdmVyYm9zZSkKKwkJCQlwcmludGYoImRlbGV0ZWQgcGFydGl0aW9uICVkXG4iLCBsb3dlcik7CisJCQlsb3dlcisrOworCQl9CisJCWVycm1lcmdlKDAsIDAsCisJCQkgImVycm9yIGRlbGV0aW5nIHBhcnRpdGlvbiAlZDogIiwKKwkJCSAiZXJyb3IgZGVsZXRpbmcgcGFydGl0aW9ucyAlZC0lZDogIik7CisJCXJldHVybiByZXQ7CisJfQorCisJaWYgKGRldmljZSAhPSBkaXNrZGV2aWNlKSB7CisJCWZkMiA9IG9wZW4oZGV2aWNlLCBPX1JET05MWSk7CisJCWlmIChmZDIgPT0gLTEpIHsKKwkJCXBlcnJvcihkZXZpY2UpOworCQkJZXhpdCgxKTsKKwkJfQorCX0gZWxzZSB7CisJCWZkMiA9IGZkOworCX0KKworCWlmIChpb2N0bChmZCwgSERJT19HRVRHRU8sICZnKSkgeworCQlwZXJyb3IoIkhESU9fR0VUR0VPIik7CisJCWV4aXQoMSk7CisJfQorCWlmIChnLnN0YXJ0ICE9IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICJsYXN0IGFyZyBpcyBub3QgdGhlIHdob2xlIGRpc2tcbiIpOworCQlmcHJpbnRmKHN0ZGVyciwgImNhbGw6IHBhcnR4IC1vcHRzIGRldmljZSB3aG9sZWRpc2tcbiIpOworCQlleGl0KDEpOworCX0KKworCWlmIChpb2N0bChmZDIsIEhESU9fR0VUR0VPLCAmZykpIHsKKwkJcGVycm9yKCJIRElPX0dFVEdFTyIpOworCQlleGl0KDEpOworCX0KKwlhbGwuc3RhcnQgPSBnLnN0YXJ0OworCisJaWYgKGJsa2Rldl9nZXRfc2VjdG9ycyhmZDIsICZzaXplKSAhPSAwKSB7CisJCXBlcnJvcigicGFydHgiKTsKKwkJZXhpdCgxKTsKKwl9CisJYWxsLnNpemUgPSAodW5zaWduZWQgaW50KSBzaXplOworCisJaWYgKHZlcmJvc2UpCisJCXByaW50ZigiZGV2aWNlICVzOiBzdGFydCAlZCBzaXplICVkXG4iLAorCQkgICAgICAgZGV2aWNlLCBhbGwuc3RhcnQsIGFsbC5zaXplKTsKKworCWlmIChhbGwuc2l6ZSA9PSAwKSB7CisJCWZwcmludGYoc3RkZXJyLCAiVGhhdCBkaXNrIHNsaWNlIGhhcyBzaXplIDBcbiIpOworCQlleGl0KDApOworCX0KKwlpZiAoYWxsLnNpemUgPT0gMikKKwkJYWxsLnNpemUgPSAwOwkvKiBwcm9iYWJseSBleHRlbmRlZCBwYXJ0aXRpb24gKi8KKworCS8qIGFkZCB0aGUgaW5kaWNhdGVkIHBhcnRpdGlvbnMgdG8gdGhlIGtlcm5lbCBwYXJ0aXRpb24gdGFibGVzICovCisJaWYgKCFsb3dlcikKKwkJbG93ZXIgPSAxOworCWZvciAoaSA9IDA7IGkgPCBwdGN0OyBpKyspIHsKKwkJcHRwID0gJnB0c1tpXTsKKwkJaWYgKCF0eXBlIHx8ICFzdHJjbXAodHlwZSwgcHRwLT50eXBlKSkgeworCQkJbiA9IHB0cC0+Zm4oZmQsIGFsbCwgc2xpY2VzLCBBUlJBWV9TSVpFKHNsaWNlcykpOworCQkJaWYgKG4gPj0gMCAmJiB2ZXJib3NlKQorCQkJICAgIHByaW50ZigiJXM6ICVkIHNsaWNlc1xuIiwgcHRwLT50eXBlLCBuKTsKKwkJCWlmIChuID4gMCAmJiAodmVyYm9zZSB8fCB3aGF0ID09IExJU1QpKSB7CisJCQkgICAgZm9yIChqPTA7IGo8bjsgaisrKQorCQkJCXByaW50ZigiIyUyZDogJTlkLSU5ZCAoJTlkIHNlY3RvcnMsICU2ZCBNQilcbiIsCisJCQkJICAgICAgIGxvd2VyK2osCisJCQkJICAgICAgIHNsaWNlc1tqXS5zdGFydCwKKwkJCQkgICAgICAgc2xpY2VzW2pdLnN0YXJ0K3NsaWNlc1tqXS5zaXplLTEsCisJCQkJICAgICAgIHNsaWNlc1tqXS5zaXplLAorCQkJCSAgICAgICAoaW50KSgoNTEyICogKGxvbmcgbG9uZykgc2xpY2VzW2pdLnNpemUpCisJCQkJCS8gMTAwMDAwMCkpOworCQkJfQorCQkJaWYgKG4gPiAwICYmIHdoYXQgPT0gQUREKSB7CisJCQkgICAgLyogdGVzdCBmb3Igb3ZlcmxhcCwgYXMgaW4gdGhlIGNhc2Ugb2YgYW4KKwkJCSAgICAgICBleHRlbmRlZCBwYXJ0aXRpb24sIGFuZCByZWR1Y2Ugc2l6ZSAqLworCQkJICAgIGZvciAoaj0wOyBqPG47IGorKykgeworCQkJCWZvciAoaz1qKzE7IGs8bjsgaysrKSB7CisJCQkJICAgIGlmIChzbGljZXNba10uc3RhcnQgPiBzbGljZXNbal0uc3RhcnQgJiYKKwkJCQkJc2xpY2VzW2tdLnN0YXJ0IDwgc2xpY2VzW2pdLnN0YXJ0ICsKKwkJCQkJc2xpY2VzW2pdLnNpemUpIHsKKwkJCQkJICAgIHNsaWNlc1tqXS5zaXplID0gc2xpY2VzW2tdLnN0YXJ0IC0KKwkJCQkJCXNsaWNlc1tqXS5zdGFydDsKKwkJCQkJICAgIGlmICh2ZXJib3NlKQorCQkJCQkJcHJpbnRmKCJyZWR1Y2VkIHNpemUgb2YgIgorCQkJCQkJICAgICAgICJwYXJ0aXRpb24gIyVkIHRvICVkXG4iLAorCQkJCQkJICAgICAgIGxvd2VyK2osCisJCQkJCQkgICAgICAgc2xpY2VzW2pdLnNpemUpOworCQkJCSAgICB9CisJCQkJfQorCQkJICAgIH0KKwkJCSAgICBmb3IgKGo9MDsgajxuOyBqKyspIHsKKwkJCQlwdC5wbm8gPSBsb3dlcitqOworCQkJCXB0LnN0YXJ0ID0gNTEyICogKGxvbmcgbG9uZykgc2xpY2VzW2pdLnN0YXJ0OworCQkJCXB0Lmxlbmd0aCA9IDUxMiAqIChsb25nIGxvbmcpIHNsaWNlc1tqXS5zaXplOworCQkJCXB0LmRldm5hbWVbMF0gPSAwOworCQkJCXB0LnZvbG5hbWVbMF0gPSAwOworCQkJCWEub3AgPSBCTEtQR19BRERfUEFSVElUSU9OOworCQkJCWEuZmxhZ3MgPSAwOworCQkJCWEuZGF0YWxlbiA9IHNpemVvZihwdCk7CisJCQkJYS5kYXRhID0gJnB0OworCQkJCWlmIChpb2N0bChmZCwgQkxLUEcsICZhKSA9PSAtMSkgeworCQkJCSAgICBwZXJyb3IoIkJMS1BHIik7CisJCQkJICAgIGZwcmludGYoc3RkZXJyLAorCQkJCQkgICAgImVycm9yIGFkZGluZyBwYXJ0aXRpb24gJWRcbiIsCisJCQkJCSAgICBsb3dlcitqKTsKKwkJCQl9IGVsc2UgaWYgKHZlcmJvc2UpCisJCQkJICAgIHByaW50ZigiYWRkZWQgcGFydGl0aW9uICVkXG4iLCBsb3dlcitqKTsKKwkJCSAgICB9CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgKgoreG1hbGxvYyAoc2l6ZV90IHNpemUpIHsKKwl2b2lkICp0OworCisJaWYgKHNpemUgPT0gMCkKKwkJcmV0dXJuIE5VTEw7CisJdCA9IG1hbGxvYyAoc2l6ZSk7CisJaWYgKHQgPT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIk91dCBvZiBtZW1vcnlcbiIpOworCQlleGl0KDEpOworCX0KKwlyZXR1cm4gdDsKK30KKworc3RhdGljIGludAorc3NlZWsoaW50IGZkLCB1bnNpZ25lZCBpbnQgc2VjbnIpIHsKKwlsb25nIGxvbmcgaW4sIG91dDsKKwlpbiA9ICgobG9uZyBsb25nKSBzZWNuciA8PCA5KTsKKwlvdXQgPSAxOworCisJaWYgKChvdXQgPSBsc2VlayhmZCwgaW4sIFNFRUtfU0VUKSkgIT0gaW4pCisJeworCQlmcHJpbnRmKHN0ZGVyciwgImxzZWVrIGVycm9yXG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljCitzdHJ1Y3QgYmxvY2sgeworCXVuc2lnbmVkIGludCBzZWNucjsKKwl1bnNpZ25lZCBjaGFyICpibG9jazsKKwlzdHJ1Y3QgYmxvY2sgKm5leHQ7Cit9ICpibG9ja2hlYWQ7CisKK3Vuc2lnbmVkIGNoYXIgKgorZ2V0YmxvY2soaW50IGZkLCB1bnNpZ25lZCBpbnQgc2VjbnIpIHsKKwlzdHJ1Y3QgYmxvY2sgKmJwOworCisJZm9yIChicCA9IGJsb2NraGVhZDsgYnA7IGJwID0gYnAtPm5leHQpCisJCWlmIChicC0+c2VjbnIgPT0gc2VjbnIpCisJCQlyZXR1cm4gYnAtPmJsb2NrOworCWlmIChzc2VlayhmZCwgc2VjbnIpKQorCQlyZXR1cm4gTlVMTDsKKwlicCA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBibG9jaykpOworCWJwLT5zZWNuciA9IHNlY25yOworCWJwLT5uZXh0ID0gYmxvY2toZWFkOworCWJsb2NraGVhZCA9IGJwOworCWJwLT5ibG9jayA9ICh1bnNpZ25lZCBjaGFyICopIHhtYWxsb2MoMTAyNCk7CisJaWYgKHJlYWQoZmQsIGJwLT5ibG9jaywgMTAyNCkgIT0gMTAyNCkgeworCQlmcHJpbnRmKHN0ZGVyciwgInJlYWQgZXJyb3IsIHNlY3RvciAlZFxuIiwgc2VjbnIpOworCQlicC0+YmxvY2sgPSBOVUxMOworCX0KKwlyZXR1cm4gYnAtPmJsb2NrOworfQorCisvKiBjYWxsIHdpdGggZXJybm8gYW5kIGludGVnZXIgbSBhbmQgZXJyb3IgbWVzc2FnZSAqLworLyogbWVyZ2UgdG8gaW50ZXJ2YWwgbS1uICovCitzdGF0aWMgdm9pZAorZXJybWVyZ2UoaW50IGVyciwgaW50IG0sIGNoYXIgKm1zZzEsIGNoYXIgKm1zZzIpIHsKKwlzdGF0aWMgaW50IHByZXZlcnIsIGZpcnN0bSwgcHJldm07CisKKwlpZiAoZXJyICE9IHByZXZlcnIpIHsKKwkJaWYgKHByZXZlcnIpIHsKKwkJCWlmIChmaXJzdG0gPT0gcHJldm0pCisJCQkJZnByaW50ZihzdGRlcnIsIG1zZzEsIGZpcnN0bSk7CisJCQllbHNlCisJCQkJZnByaW50ZihzdGRlcnIsIG1zZzIsIGZpcnN0bSwgcHJldm0pOworCQkJZXJybm8gPSBwcmV2ZXJyOworCQkJcGVycm9yKCJCTEtQRyIpOworCQl9CisJCXByZXZlcnIgPSBlcnI7CisJCWZpcnN0bSA9IHByZXZtID0gbTsKKwl9IGVsc2UKKwkJcHJldm0gPSBtOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvcGFydHguaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L3BhcnR4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk4ZDc3YQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L3BhcnR4LmgKQEAgLTAsMCArMSwzMSBAQAorI2lmbmRlZiBQQVJUWF9IX0lOQ0xVREVECisjZGVmaW5lIFBBUlRYX0hfSU5DTFVERUQKKworLyoKKyAqIEZvciBlYWNoIHBhcnRpdGlvbiB0eXBlIHRoZXJlIGlzIGEgcm91dGluZSB0aGF0IHRha2VzCisgKiBhIGJsb2NrIGRldmljZSBhbmQgYSByYW5nZSwgYW5kIHJldHVybnMgdGhlIGxpc3Qgb2YKKyAqIHNsaWNlcyBmb3VuZCB0aGVyZSBpbiB0aGUgc3VwcGxpZWQgYXJyYXkgU1AgdGhhdCBjYW4KKyAqIGhvbGQgTlMgZW50cmllcy4gVGhlIHJldHVybiB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mCisgKiBlbnRyaWVzIHN0b3JlZCwgb3IgLTEgaWYgdGhlIGFwcHJvcHJpYXRlIHR5cGUgaXMgbm90CisgKiBwcmVzZW50LgorICovCisKKworLyogdW5pdHM6IDUxMiBieXRlIHNlY3RvcnMgKi8KK3N0cnVjdCBzbGljZSB7CisJdW5zaWduZWQgaW50IHN0YXJ0OworCXVuc2lnbmVkIGludCBzaXplOworfTsKKwordHlwZWRlZiBpbnQgKHB0cmVhZGVyKShpbnQgZmQsIHN0cnVjdCBzbGljZSBhbGwsIHN0cnVjdCBzbGljZSAqc3AsIGludCBucyk7CisKK2V4dGVybiBwdHJlYWRlciByZWFkX2Rvc19wdCwgcmVhZF9ic2RfcHQsIHJlYWRfc29sYXJpc19wdCwgcmVhZF91bml4d2FyZV9wdCwgcmVhZF9ncHRfcHQ7CisKK3Vuc2lnbmVkIGNoYXIgKmdldGJsb2NrKGludCBmZCwgdW5zaWduZWQgaW50IHNlY25yKTsKKworc3RhdGljIGlubGluZSBpbnQKK2ZvdXIyaW50KHVuc2lnbmVkIGNoYXIgKnApIHsKKwlyZXR1cm4gcFswXSArIChwWzFdPDw4KSArIChwWzJdPDwxNikgKyAocFszXTw8MjQpOworfQorCisjZW5kaWYgLyogUEFSVFhfSF9JTkNMVURFRCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvc29sYXJpcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcGFydHgvc29sYXJpcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MDc1YWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC9zb2xhcmlzLmMKQEAgLTAsMCArMSw2OSBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dGltZS5oPgkJLyogdGltZV90ICovCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSAicGFydHguaCIKKworI2RlZmluZSBTT0xBUklTX1g4Nl9OVU1TTElDRQk4CisjZGVmaW5lIFNPTEFSSVNfWDg2X1ZUT0NfU0FORQkoMHg2MDBEREVFRVVMKQorCitzdHJ1Y3Qgc29sYXJpc194ODZfc2xpY2UgeworCXVuc2lnbmVkIHNob3J0CXNfdGFnOwkJLyogSUQgdGFnIG9mIHBhcnRpdGlvbiAqLworCXVuc2lnbmVkIHNob3J0CXNfZmxhZzsJCS8qIHBlcm1pc2lvbiBmbGFncyAqLworCWRhZGRyX3QgCXNfc3RhcnQ7CS8qIHN0YXJ0IHNlY3RvciBubyBvZiBwYXJ0aXRpb24gKi8KKwlsb25nCQlzX3NpemU7CQkvKiAjIG9mIGJsb2NrcyBpbiBwYXJ0aXRpb24gKi8KK307CisKK3N0cnVjdCBzb2xhcmlzX3g4Nl92dG9jIHsKKwl1bnNpZ25lZCBsb25nIHZfYm9vdGluZm9bM107CS8qIGluZm8gZm9yIG1ib290ICovCisJdW5zaWduZWQgbG9uZyB2X3Nhbml0eTsJCS8qIHRvIHZlcmlmeSB2dG9jIHNhbml0eSAqLworCXVuc2lnbmVkIGxvbmcgdl92ZXJzaW9uOwkvKiBsYXlvdXQgdmVyc2lvbiAqLworCWNoYXIJdl92b2x1bWVbOF07CQkvKiB2b2x1bWUgbmFtZSAqLworCXVuc2lnbmVkIHNob3J0CXZfc2VjdG9yc3o7CS8qIHNlY3RvciBzaXplIGluIGJ5dGVzICovCisJdW5zaWduZWQgc2hvcnQJdl9ucGFydHM7CS8qIG51bWJlciBvZiBwYXJ0aXRpb25zICovCisJdW5zaWduZWQgbG9uZyB2X3Jlc2VydmVkWzEwXTsJLyogZnJlZSBzcGFjZSAqLworCXN0cnVjdCBzb2xhcmlzX3g4Nl9zbGljZQorCQl2X3NsaWNlW1NPTEFSSVNfWDg2X05VTVNMSUNFXTsgICAvKiBzbGljZSBoZWFkZXJzICovCisJdGltZV90CXRpbWVzdGFtcFtTT0xBUklTX1g4Nl9OVU1TTElDRV07IC8qIHRpbWVzdGFtcCAqLworCWNoYXIJdl9hc2NpaWxhYmVsWzEyOF07CS8qIGZvciBjb21wYXRpYmlsaXR5ICovCit9OworCitpbnQKK3JlYWRfc29sYXJpc19wdChpbnQgZmQsIHN0cnVjdCBzbGljZSBhbGwsIHN0cnVjdCBzbGljZSAqc3AsIGludCBucykgeworCXN0cnVjdCBzb2xhcmlzX3g4Nl92dG9jICp2OworCXN0cnVjdCBzb2xhcmlzX3g4Nl9zbGljZSAqczsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gYWxsLnN0YXJ0OworCWludCBpLCBuOworCXVuc2lnbmVkIGNoYXIgKmJwOworCisJYnAgPSBnZXRibG9jayhmZCwgb2Zmc2V0KzEpOyAJLyogMSBzZWN0b3Igc3VmZmljZXMgKi8KKwlpZiAoYnAgPT0gTlVMTCkKKwkJcmV0dXJuIC0xOworCisJdiA9IChzdHJ1Y3Qgc29sYXJpc194ODZfdnRvYyAqKSBicDsKKwlpZih2LT52X3Nhbml0eSAhPSBTT0xBUklTX1g4Nl9WVE9DX1NBTkUpCisJCXJldHVybiAtMTsKKworCWlmKHYtPnZfdmVyc2lvbiAhPSAxKSB7CisJCWZwcmludGYoc3RkZXJyLCAiQ2Fubm90IGhhbmRsZSBzb2xhcmlzIHZlcnNpb24gJWxkIHZ0b2NcbiIsCisJCSAgICAgICB2LT52X3ZlcnNpb24pOworCQlyZXR1cm4gMDsKKwl9CisKKwlmb3IoaT0wLCBuPTA7IGk8U09MQVJJU19YODZfTlVNU0xJQ0U7IGkrKykgeworCQlzID0gJnYtPnZfc2xpY2VbaV07CisKKwkJaWYgKHMtPnNfc2l6ZSA9PSAwKQorCQkJY29udGludWU7CisJCWlmIChuIDwgbnMpIHsKKwkJCXNwW25dLnN0YXJ0ID0gb2Zmc2V0ICsgcy0+c19zdGFydDsKKwkJCXNwW25dLnNpemUgPSBzLT5zX3NpemU7CisJCQluKys7CisJCX0gZWxzZSB7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkic29sYXJpc194ODZfcGFydGl0aW9uOiB0b28gbWFueSBzbGljZXNcbiIpOworCQkJYnJlYWs7CisJCX0KKwl9CisJcmV0dXJuIG47Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BhcnR4L3VuaXh3YXJlLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC91bml4d2FyZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxMzE0NzUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wYXJ0eC91bml4d2FyZS5jCkBAIC0wLDAgKzEsODMgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgInBhcnR4LmgiCisKKyNkZWZpbmUgVU5JWFdBUkVfRlNfVU5VU0VEICAgICAwCisjZGVmaW5lIFVOSVhXQVJFX05VTVNMSUNFICAgICAgMTYKKyNkZWZpbmUgVU5JWFdBUkVfRElTS01BR0lDICAgICAoMHhDQTVFNjAwRCkKKyNkZWZpbmUgVU5JWFdBUkVfRElTS01BR0lDMiAgICAoMHg2MDBEREVFRSkKKworc3RydWN0IHVuaXh3YXJlX3NsaWNlIHsKKwl1bnNpZ25lZCBzaG9ydCBzX2xhYmVsOwkJLyogbGFiZWwgKi8KKwl1bnNpZ25lZCBzaG9ydCBzX2ZsYWdzOwkJLyogcGVybWlzc2lvbiBmbGFncyAqLworCXVuc2lnbmVkIGludCAgIHN0YXJ0X3NlY3Q7CS8qIHN0YXJ0aW5nIHNlY3RvciAqLworCXVuc2lnbmVkIGludCAgIG5yX3NlY3RzOwkvKiBudW1iZXIgb2Ygc2VjdG9ycyBpbiBzbGljZSAqLworfTsKKworc3RydWN0IHVuaXh3YXJlX2Rpc2tsYWJlbCB7CisJdW5zaWduZWQgaW50ICAgZF90eXBlOwkJLyogZHJpdmUgdHlwZSAqLworCXVuc2lnbmVkIGNoYXIgIGRfbWFnaWNbNF07CS8qIHRoZSBtYWdpYyBudW1iZXIgKi8KKwl1bnNpZ25lZCBpbnQgICBkX3ZlcnNpb247CS8qIHZlcnNpb24gbnVtYmVyICovCisJY2hhciAgICBkX3NlcmlhbFsxMl07CSAgIAkvKiBzZXJpYWwgbnVtYmVyIG9mIHRoZSBkZXZpY2UgKi8KKwl1bnNpZ25lZCBpbnQgICBkX25jeWxpbmRlcnM7CS8qICMgb2YgZGF0YSBjeWxpbmRlcnMgcGVyIGRldmljZSAqLworCXVuc2lnbmVkIGludCAgIGRfbnRyYWNrczsJLyogIyBvZiB0cmFja3MgcGVyIGN5bGluZGVyICovCisJdW5zaWduZWQgaW50ICAgZF9uc2VjdG9yczsJLyogIyBvZiBkYXRhIHNlY3RvcnMgcGVyIHRyYWNrICovCisJdW5zaWduZWQgaW50ICAgZF9zZWNzaXplOwkvKiAjIG9mIGJ5dGVzIHBlciBzZWN0b3IgKi8KKwl1bnNpZ25lZCBpbnQgICBkX3BhcnRfc3RhcnQ7CS8qICMgb2YgZmlyc3Qgc2VjdG9yIG9mIHRoaXMgcGFydGl0aW9uICovCisJdW5zaWduZWQgaW50ICAgZF91bmtub3duMVsxMl07CS8qID8gKi8KKwl1bnNpZ25lZCBpbnQgICBkX2FsdF90Ymw7CS8qIGJ5dGUgb2Zmc2V0IG9mIGFsdGVybmF0ZSB0YWJsZSAqLworCXVuc2lnbmVkIGludCAgIGRfYWx0X2xlbjsJLyogYnl0ZSBsZW5ndGggb2YgYWx0ZXJuYXRlIHRhYmxlICovCisJdW5zaWduZWQgaW50ICAgZF9waHlzX2N5bDsJLyogIyBvZiBwaHlzaWNhbCBjeWxpbmRlcnMgcGVyIGRldmljZSAqLworCXVuc2lnbmVkIGludCAgIGRfcGh5c190cms7CS8qICMgb2YgcGh5c2ljYWwgdHJhY2tzIHBlciBjeWxpbmRlciAqLworCXVuc2lnbmVkIGludCAgIGRfcGh5c19zZWM7CS8qICMgb2YgcGh5c2ljYWwgc2VjdG9ycyBwZXIgdHJhY2sgKi8KKwl1bnNpZ25lZCBpbnQgICBkX3BoeXNfYnl0ZXM7CS8qICMgb2YgcGh5c2ljYWwgYnl0ZXMgcGVyIHNlY3RvciAqLworCXVuc2lnbmVkIGludCAgIGRfdW5rbm93bjI7CS8qID8gKi8KKwl1bnNpZ25lZCBpbnQgICBkX3Vua25vd24zOwkvKiA/ICovCisJdW5zaWduZWQgaW50ICAgZF9wYWRbOF07CS8qIHBhZCAqLworCisJc3RydWN0IHVuaXh3YXJlX3Z0b2MgeworCQl1bnNpZ25lZCBjaGFyICAgdl9tYWdpY1s0XTsJLyogdGhlIG1hZ2ljIG51bWJlciAqLworCQl1bnNpZ25lZCBpbnQgICAgdl92ZXJzaW9uOwkvKiB2ZXJzaW9uIG51bWJlciAqLworCQljaGFyICAgIHZfbmFtZVs4XTsJICAgICAgCS8qIHZvbHVtZSBuYW1lICovCisJCXVuc2lnbmVkIHNob3J0ICB2X25zbGljZXM7CS8qICMgb2Ygc2xpY2VzICovCisJCXVuc2lnbmVkIHNob3J0ICB2X3Vua25vd24xOwkvKiA/ICovCisJCXVuc2lnbmVkIGludCAgICB2X3Jlc2VydmVkWzEwXTsJLyogcmVzZXJ2ZWQgKi8KKwkJc3RydWN0IHVuaXh3YXJlX3NsaWNlCisJCSAgICB2X3NsaWNlW1VOSVhXQVJFX05VTVNMSUNFXTsgLyogc2xpY2UgaGVhZGVycyAqLworCX0gdnRvYzsKKworfTsgIC8qIDQwOCAqLworCitpbnQKK3JlYWRfdW5peHdhcmVfcHQoaW50IGZkLCBzdHJ1Y3Qgc2xpY2UgYWxsLCBzdHJ1Y3Qgc2xpY2UgKnNwLCBpbnQgbnMpIHsKKwlzdHJ1Y3QgdW5peHdhcmVfZGlza2xhYmVsICpsOworCXN0cnVjdCB1bml4d2FyZV9zbGljZSAqcDsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gYWxsLnN0YXJ0OworCXVuc2lnbmVkIGNoYXIgKmJwOworCWludCBuID0gMDsKKworCWJwID0gZ2V0YmxvY2soZmQsIG9mZnNldCsyOSk7IAkvKiAxIHNlY3RvciBzdWZmaWNlcyAqLworCWlmIChicCA9PSBOVUxMKQorCQlyZXR1cm4gLTE7CisKKwlsID0gKHN0cnVjdCB1bml4d2FyZV9kaXNrbGFiZWwgKikgYnA7CisJaWYgKGZvdXIyaW50KGwtPmRfbWFnaWMpICE9IFVOSVhXQVJFX0RJU0tNQUdJQyB8fAorCSAgICBmb3VyMmludChsLT52dG9jLnZfbWFnaWMpICE9IFVOSVhXQVJFX0RJU0tNQUdJQzIpCisJCXJldHVybiAtMTsKKworCXAgPSAmbC0+dnRvYy52X3NsaWNlWzFdOwkvKiBzbGljZSAwIGlzIHRoZSB3aG9sZSBkaXNrLiAqLworCXdoaWxlIChwIC0gJmwtPnZ0b2Mudl9zbGljZVswXSA8IFVOSVhXQVJFX05VTVNMSUNFKSB7CisJCWlmIChwLT5zX2xhYmVsID09IFVOSVhXQVJFX0ZTX1VOVVNFRCkKKwkJCS8qIG5vdGhpbmcgKi87CisJCWVsc2UgaWYgKG4gPCBucykgeworCQkJc3Bbbl0uc3RhcnQgPSBwLT5zdGFydF9zZWN0OworCQkJc3Bbbl0uc2l6ZSA9IHAtPm5yX3NlY3RzOworCQkJbisrOworCQl9IGVsc2UgeworCQkJZnByaW50ZihzdGRlcnIsCisJCQkJInVuaXh3YXJlX3BhcnRpdGlvbjogdG9vIG1hbnkgc2xpY2VzXG4iKTsKKwkJCWJyZWFrOworCQl9CisJCXArKzsKKwl9CisJcmV0dXJuIG47Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9NYWtlZmlsZS5pbi5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL01ha2VmaWxlLmluLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzZWZjNWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9NYWtlZmlsZS5pbi5pbgpAQCAtMCwwICsxLDM2NiBAQAorIyBNYWtlZmlsZSBmb3IgUE8gZGlyZWN0b3J5IGluIGFueSBwYWNrYWdlIHVzaW5nIEdOVSBnZXR0ZXh0LgorIyBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5NywgMjAwMC0yMDA0IGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGdudS5haS5taXQuZWR1PgorIworIyBUaGlzIGZpbGUgY2FuIGJlIGNvcGllZCBhbmQgdXNlZCBmcmVlbHkgd2l0aG91dCByZXN0cmljdGlvbnMuICBJdCBjYW4KKyMgYmUgdXNlZCBpbiBwcm9qZWN0cyB3aGljaCBhcmUgbm90IGF2YWlsYWJsZSB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYnV0IHdoaWNoIHN0aWxsIHdhbnQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGUgR05VIGdldHRleHQKKyMgZnVuY3Rpb25hbGl0eS4KKyMgUGxlYXNlIG5vdGUgdGhhdCB0aGUgYWN0dWFsIGNvZGUgb2YgR05VIGdldHRleHQgaXMgY292ZXJlZCBieSB0aGUgR05VCisjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kIGlzICpub3QqIGluIHRoZSBwdWJsaWMgZG9tYWluLgorIworIyBPcmlnaW46IGdldHRleHQtMC4xNAorCitQQUNLQUdFID0gQFBBQ0tBR0VACitWRVJTSU9OID0gQFZFUlNJT05ACisKK1NIRUxMID0gL2Jpbi9zaAorQFNFVF9NQUtFQAorCitzcmNkaXIgPSBAc3JjZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorVlBBVEggPSBAc3JjZGlyQAorCitwcmVmaXggPSBAcHJlZml4QAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitkYXRhZGlyID0gQGRhdGFkaXJACitsb2NhbGVkaXIgPSAkKGRhdGFkaXIpL2xvY2FsZQorZ2V0dGV4dHNyY2RpciA9ICQoZGF0YWRpcikvZ2V0dGV4dC9wbworCitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQoTUtJTlNUQUxMRElSUykKKworR01TR0ZNVCA9IEBHTVNHRk1UQAorTVNHRk1UID0gQE1TR0ZNVEAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorTVNHTUVSR0UgPSBtc2dtZXJnZQorTVNHTUVSR0VfVVBEQVRFID0gQE1TR01FUkdFQCAtLXVwZGF0ZQorTVNHSU5JVCA9IG1zZ2luaXQKK01TR0NPTlYgPSBtc2djb252CitNU0dGSUxURVIgPSBtc2dmaWx0ZXIKKworUE9GSUxFUyA9IEBQT0ZJTEVTQAorR01PRklMRVMgPSBAR01PRklMRVNACitVUERBVEVQT0ZJTEVTID0gQFVQREFURVBPRklMRVNACitEVU1NWVBPRklMRVMgPSBARFVNTVlQT0ZJTEVTQAorRElTVEZJTEVTLmNvbW1vbiA9IE1ha2VmaWxlLmluLmluIHJlbW92ZS1wb3RjZGF0ZS5zaW4gXAorJChESVNURklMRVMuY29tbW9uLmV4dHJhMSkgJChESVNURklMRVMuY29tbW9uLmV4dHJhMikgJChESVNURklMRVMuY29tbW9uLmV4dHJhMykKK0RJU1RGSUxFUyA9ICQoRElTVEZJTEVTLmNvbW1vbikgTWFrZXZhcnMgUE9URklMRVMuaW4gJChET01BSU4pLnBvdCBzdGFtcC1wbyBcCiskKFBPRklMRVMpICQoR01PRklMRVMpIFwKKyQoRElTVEZJTEVTLmV4dHJhMSkgJChESVNURklMRVMuZXh0cmEyKSAkKERJU1RGSUxFUy5leHRyYTMpCisKK1BPVEZJTEVTID0gXAorCitDQVRBTE9HUyA9IEBDQVRBTE9HU0AKKworIyBNYWtldmFycyBnZXRzIGluc2VydGVkIGhlcmUuIChEb24ndCByZW1vdmUgdGhpcyBsaW5lISkKKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAucG8gLmdtbyAubW8gLnNlZCAuc2luIC5ub3AgLnBvLWNyZWF0ZSAucG8tdXBkYXRlCisKKy5wby5tbzoKKwlAZWNobyAiJChNU0dGTVQpIC1jIC1vICRAICQ8IjsgXAorCSQoTVNHRk1UKSAtYyAtbyB0LSRAICQ8ICYmIG12IHQtJEAgJEAKKworLnBvLmdtbzoKKwlAbGFuZz1gZWNobyAkKiB8IHNlZCAtZSAncywuKi8sLCdgOyBcCisJdGVzdCAiJChzcmNkaXIpIiA9IC4gJiYgY2RjbWQ9IiIgfHwgY2RjbWQ9ImNkICQoc3JjZGlyKSAmJiAiOyBcCisJZWNobyAiJCR7Y2RjbWR9cm0gLWYgJCR7bGFuZ30uZ21vICYmICQoR01TR0ZNVCkgLWMgLS1zdGF0aXN0aWNzIC1vICQke2xhbmd9LmdtbyAkJHtsYW5nfS5wbyI7IFwKKwljZCAkKHNyY2RpcikgJiYgcm0gLWYgJCR7bGFuZ30uZ21vICYmICQoR01TR0ZNVCkgLWMgLS1zdGF0aXN0aWNzIC1vIHQtJCR7bGFuZ30uZ21vICQke2xhbmd9LnBvICYmIG12IHQtJCR7bGFuZ30uZ21vICQke2xhbmd9LmdtbworCisuc2luLnNlZDoKKwlzZWQgLWUgJy9eIy9kJyAkPCA+IHQtJEAKKwltdiB0LSRAICRACisKKworYWxsOiBhbGwtQFVTRV9OTFNACisKK2FsbC15ZXM6IHN0YW1wLXBvCithbGwtbm86CisKKyMgc3RhbXAtcG8gaXMgYSB0aW1lc3RhbXAgZGVub3RpbmcgdGhlIGxhc3QgdGltZSBhdCB3aGljaCB0aGUgQ0FUQUxPR1MgaGF2ZQorIyBiZWVuIGxvb3NlbHkgdXBkYXRlZC4gSXRzIHB1cnBvc2UgaXMgdGhhdCB3aGVuIGEgZGV2ZWxvcGVyIG9yIHRyYW5zbGF0b3IKKyMgY2hlY2tzIG91dCB0aGUgcGFja2FnZSB2aWEgQ1ZTLCBhbmQgdGhlICQoRE9NQUlOKS5wb3QgZmlsZSBpcyBub3QgaW4gQ1ZTLAorIyAibWFrZSIgd2lsbCB1cGRhdGUgdGhlICQoRE9NQUlOKS5wb3QgYW5kIHRoZSAkKENBVEFMT0dTKSwgYnV0IHN1YnNlcXVlbnQKKyMgaW52b2NhdGlvbnMgb2YgIm1ha2UiIHdpbGwgZG8gbm90aGluZy4gVGhpcyB0aW1lc3RhbXAgd291bGQgbm90IGJlIG5lY2Vzc2FyeQorIyBpZiB1cGRhdGluZyB0aGUgJChDQVRBTE9HUykgd291bGQgYWx3YXlzIHRvdWNoIHRoZW07IGhvd2V2ZXIsIHRoZSBydWxlIGZvcgorIyAkKFBPRklMRVMpIGhhcyBiZWVuIGRlc2lnbmVkIHRvIG5vdCB0b3VjaCBmaWxlcyB0aGF0IGRvbid0IG5lZWQgdG8gYmUKKyMgY2hhbmdlZC4KK3N0YW1wLXBvOiAkKHNyY2RpcikvJChET01BSU4pLnBvdAorCXRlc3QgLXogIiQoR01PRklMRVMpIiB8fCAkKE1BS0UpICQoR01PRklMRVMpCisJQGVjaG8gInRvdWNoIHN0YW1wLXBvIgorCUBlY2hvIHRpbWVzdGFtcCA+IHN0YW1wLXBvVAorCUBtdiBzdGFtcC1wb1Qgc3RhbXAtcG8KKworIyBOb3RlOiBUYXJnZXQgJ2FsbCcgbXVzdCBub3QgZGVwZW5kIG9uIHRhcmdldCAnJChET01BSU4pLnBvdC11cGRhdGUnLAorIyBvdGhlcndpc2UgcGFja2FnZXMgbGlrZSBHQ0MgY2FuIG5vdCBiZSBidWlsdCBpZiBvbmx5IHBhcnRzIG9mIHRoZSBzb3VyY2UKKyMgaGF2ZSBiZWVuIGRvd25sb2FkZWQuCisKKyMgVGhpcyB0YXJnZXQgcmVidWlsZHMgJChET01BSU4pLnBvdDsgaXQgaXMgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbi4KKyMgTm90ZSB0aGF0ICQoRE9NQUlOKS5wb3QgaXMgbm90IHRvdWNoZWQgaWYgaXQgZG9lc24ndCBuZWVkIHRvIGJlIGNoYW5nZWQuCiskKERPTUFJTikucG90LXVwZGF0ZTogJChQT1RGSUxFUykgJChzcmNkaXIpL1BPVEZJTEVTLmluIHJlbW92ZS1wb3RjZGF0ZS5zZWQKKwkkKFhHRVRURVhUKSAtLWRlZmF1bHQtZG9tYWluPSQoRE9NQUlOKSAtLWRpcmVjdG9yeT0kKHRvcF9zcmNkaXIpIFwKKwkgIC0tYWRkLWNvbW1lbnRzPVRSQU5TTEFUT1JTOiAkKFhHRVRURVhUX09QVElPTlMpIFwKKwkgIC0tZmlsZXMtZnJvbT0kKHNyY2RpcikvUE9URklMRVMuaW4gXAorCSAgLS1jb3B5cmlnaHQtaG9sZGVyPSckKENPUFlSSUdIVF9IT0xERVIpJyBcCisJICAtLW1zZ2lkLWJ1Z3MtYWRkcmVzcz0nJChNU0dJRF9CVUdTX0FERFJFU1MpJworCXRlc3QgISAtZiAkKERPTUFJTikucG8gfHwgeyBcCisJICBpZiB0ZXN0IC1mICQoc3JjZGlyKS8kKERPTUFJTikucG90OyB0aGVuIFwKKwkgICAgc2VkIC1mIHJlbW92ZS1wb3RjZGF0ZS5zZWQgPCAkKHNyY2RpcikvJChET01BSU4pLnBvdCA+ICQoRE9NQUlOKS4xcG8gJiYgXAorCSAgICBzZWQgLWYgcmVtb3ZlLXBvdGNkYXRlLnNlZCA8ICQoRE9NQUlOKS5wbyA+ICQoRE9NQUlOKS4ycG8gJiYgXAorCSAgICBpZiBjbXAgJChET01BSU4pLjFwbyAkKERPTUFJTikuMnBvID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisJICAgICAgcm0gLWYgJChET01BSU4pLjFwbyAkKERPTUFJTikuMnBvICQoRE9NQUlOKS5wbzsgXAorCSAgICBlbHNlIFwKKwkgICAgICBybSAtZiAkKERPTUFJTikuMXBvICQoRE9NQUlOKS4ycG8gJChzcmNkaXIpLyQoRE9NQUlOKS5wb3QgJiYgXAorCSAgICAgIG12ICQoRE9NQUlOKS5wbyAkKHNyY2RpcikvJChET01BSU4pLnBvdDsgXAorCSAgICBmaTsgXAorCSAgZWxzZSBcCisJICAgIG12ICQoRE9NQUlOKS5wbyAkKHNyY2RpcikvJChET01BSU4pLnBvdDsgXAorCSAgZmk7IFwKKwl9CisKKyMgVGhpcyBydWxlIGhhcyBubyBkZXBlbmRlbmNpZXM6IHdlIGRvbid0IG5lZWQgdG8gdXBkYXRlICQoRE9NQUlOKS5wb3QgYXQKKyMgZXZlcnkgIm1ha2UiIGludm9jYXRpb24sIG9ubHkgY3JlYXRlIGl0IHdoZW4gaXQgaXMgbWlzc2luZy4KKyMgT25seSAibWFrZSAkKERPTUFJTikucG90LXVwZGF0ZSIgb3IgIm1ha2UgZGlzdCIgd2lsbCBmb3JjZSBhbiB1cGRhdGUuCiskKHNyY2RpcikvJChET01BSU4pLnBvdDoKKwkkKE1BS0UpICQoRE9NQUlOKS5wb3QtdXBkYXRlCisKKyMgVGhpcyB0YXJnZXQgcmVidWlsZHMgYSBQTyBmaWxlIGlmICQoRE9NQUlOKS5wb3QgaGFzIGNoYW5nZWQuCisjIE5vdGUgdGhhdCBhIFBPIGZpbGUgaXMgbm90IHRvdWNoZWQgaWYgaXQgZG9lc24ndCBuZWVkIHRvIGJlIGNoYW5nZWQuCiskKFBPRklMRVMpOiAkKHNyY2RpcikvJChET01BSU4pLnBvdAorCUBsYW5nPWBlY2hvICRAIHwgc2VkIC1lICdzLC4qLywsJyAtZSAncy9cLnBvJCQvLydgOyBcCisJaWYgdGVzdCAtZiAiJChzcmNkaXIpLyQke2xhbmd9LnBvIjsgdGhlbiBcCisJICB0ZXN0ICIkKHNyY2RpcikiID0gLiAmJiBjZGNtZD0iIiB8fCBjZGNtZD0iY2QgJChzcmNkaXIpICYmICI7IFwKKwkgIGVjaG8gIiQke2NkY21kfSQoTVNHTUVSR0VfVVBEQVRFKSAkJHtsYW5nfS5wbyAkKERPTUFJTikucG90IjsgXAorCSAgY2QgJChzcmNkaXIpICYmICQoTVNHTUVSR0VfVVBEQVRFKSAkJHtsYW5nfS5wbyAkKERPTUFJTikucG90OyBcCisJZWxzZSBcCisJICAkKE1BS0UpICQke2xhbmd9LnBvLWNyZWF0ZTsgXAorCWZpCisKKworaW5zdGFsbDogaW5zdGFsbC1leGVjIGluc3RhbGwtZGF0YQoraW5zdGFsbC1leGVjOgoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtQFVTRV9OTFNACisJaWYgdGVzdCAiJChQQUNLQUdFKSIgPSAiZ2V0dGV4dC10b29scyI7IHRoZW4gXAorCSAgJChta2luc3RhbGxkaXJzKSAkKERFU1RESVIpJChnZXR0ZXh0c3JjZGlyKTsgXAorCSAgZm9yIGZpbGUgaW4gJChESVNURklMRVMuY29tbW9uKSBNYWtldmFycy50ZW1wbGF0ZTsgZG8gXAorCSAgICAkKElOU1RBTExfREFUQSkgJChzcmNkaXIpLyQkZmlsZSBcCisJCQkgICAgJChERVNURElSKSQoZ2V0dGV4dHNyY2RpcikvJCRmaWxlOyBcCisJICBkb25lOyBcCisJICBmb3IgZmlsZSBpbiBNYWtldmFyczsgZG8gXAorCSAgICBybSAtZiAkKERFU1RESVIpJChnZXR0ZXh0c3JjZGlyKS8kJGZpbGU7IFwKKwkgIGRvbmU7IFwKKwllbHNlIFwKKwkgIDogOyBcCisJZmkKK2luc3RhbGwtZGF0YS1ubzogYWxsCitpbnN0YWxsLWRhdGEteWVzOiBhbGwKKwkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKGRhdGFkaXIpCisJQGNhdGFsb2dzPSckKENBVEFMT0dTKSc7IFwKKwlmb3IgY2F0IGluICQkY2F0YWxvZ3M7IGRvIFwKKwkgIGNhdD1gYmFzZW5hbWUgJCRjYXRgOyBcCisJICBsYW5nPWBlY2hvICQkY2F0IHwgc2VkIC1lICdzL1wuZ21vJCQvLydgOyBcCisJICBkaXI9JChsb2NhbGVkaXIpLyQkbGFuZy9MQ19NRVNTQUdFUzsgXAorCSAgJChta2luc3RhbGxkaXJzKSAkKERFU1RESVIpJCRkaXI7IFwKKwkgIGlmIHRlc3QgLXIgJCRjYXQ7IHRoZW4gcmVhbGNhdD0kJGNhdDsgZWxzZSByZWFsY2F0PSQoc3JjZGlyKS8kJGNhdDsgZmk7IFwKKwkgICQoSU5TVEFMTF9EQVRBKSAkJHJlYWxjYXQgJChERVNURElSKSQkZGlyLyQoRE9NQUlOKS5tbzsgXAorCSAgZWNobyAiaW5zdGFsbGluZyAkJHJlYWxjYXQgYXMgJChERVNURElSKSQkZGlyLyQoRE9NQUlOKS5tbyI7IFwKKwkgIGZvciBsYyBpbiAnJyAkKEVYVFJBX0xPQ0FMRV9DQVRFR09SSUVTKTsgZG8gXAorCSAgICBpZiB0ZXN0IC1uICIkJGxjIjsgdGhlbiBcCisJICAgICAgaWYgKGNkICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nICYmIExDX0FMTD1DIGxzIC1sIC1kICQkbGMgMj4vZGV2L251bGwpIHwgZ3JlcCAnIC0+ICcgPi9kZXYvbnVsbDsgdGhlbiBcCisJICAgICAgICBsaW5rPWBjZCAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZyAmJiBMQ19BTEw9QyBscyAtbCAtZCAkJGxjIHwgc2VkIC1lICdzL14uKiAtPiAvLydgOyBcCisJICAgICAgICBtdiAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGMub2xkOyBcCisJICAgICAgICBta2RpciAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjOyBcCisJICAgICAgICAoY2QgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYy5vbGQgJiYgXAorCSAgICAgICAgIGZvciBmaWxlIGluICo7IGRvIFwKKwkgICAgICAgICAgIGlmIHRlc3QgLWYgJCRmaWxlOyB0aGVuIFwKKwkgICAgICAgICAgICAgbG4gLXMgLi4vJCRsaW5rLyQkZmlsZSAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjLyQkZmlsZTsgXAorCSAgICAgICAgICAgZmk7IFwKKwkgICAgICAgICBkb25lKTsgXAorCSAgICAgICAgcm0gLWYgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYy5vbGQ7IFwKKwkgICAgICBlbHNlIFwKKwkgICAgICAgIGlmIHRlc3QgLWQgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYzsgdGhlbiBcCisJICAgICAgICAgIDo7IFwKKwkgICAgICAgIGVsc2UgXAorCSAgICAgICAgICBybSAtZiAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjOyBcCisJICAgICAgICAgIG1rZGlyICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGM7IFwKKwkgICAgICAgIGZpOyBcCisJICAgICAgZmk7IFwKKwkgICAgICBybSAtZiAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjLyQoRE9NQUlOKS5tbzsgXAorCSAgICAgIGxuIC1zIC4uL0xDX01FU1NBR0VTLyQoRE9NQUlOKS5tbyAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjLyQoRE9NQUlOKS5tbyAyPi9kZXYvbnVsbCB8fCBcCisJICAgICAgbG4gJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvTENfTUVTU0FHRVMvJChET01BSU4pLm1vICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGMvJChET01BSU4pLm1vIDI+L2Rldi9udWxsIHx8IFwKKwkgICAgICBjcCAtcCAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy9MQ19NRVNTQUdFUy8kKERPTUFJTikubW8gJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYy8kKERPTUFJTikubW87IFwKKwkgICAgICBlY2hvICJpbnN0YWxsaW5nICQkcmVhbGNhdCBsaW5rIGFzICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGMvJChET01BSU4pLm1vIjsgXAorCSAgICBmaTsgXAorCSAgZG9uZTsgXAorCWRvbmUKKworaW5zdGFsbC1zdHJpcDogaW5zdGFsbAorCitpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtZXhlYyBpbnN0YWxsZGlycy1kYXRhCitpbnN0YWxsZGlycy1leGVjOgoraW5zdGFsbGRpcnMtZGF0YTogaW5zdGFsbGRpcnMtZGF0YS1AVVNFX05MU0AKKwlpZiB0ZXN0ICIkKFBBQ0tBR0UpIiA9ICJnZXR0ZXh0LXRvb2xzIjsgdGhlbiBcCisJICAkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKGdldHRleHRzcmNkaXIpOyBcCisJZWxzZSBcCisJICA6IDsgXAorCWZpCitpbnN0YWxsZGlycy1kYXRhLW5vOgoraW5zdGFsbGRpcnMtZGF0YS15ZXM6CisJJChta2luc3RhbGxkaXJzKSAkKERFU1RESVIpJChkYXRhZGlyKQorCUBjYXRhbG9ncz0nJChDQVRBTE9HUyknOyBcCisJZm9yIGNhdCBpbiAkJGNhdGFsb2dzOyBkbyBcCisJICBjYXQ9YGJhc2VuYW1lICQkY2F0YDsgXAorCSAgbGFuZz1gZWNobyAkJGNhdCB8IHNlZCAtZSAncy9cLmdtbyQkLy8nYDsgXAorCSAgZGlyPSQobG9jYWxlZGlyKS8kJGxhbmcvTENfTUVTU0FHRVM7IFwKKwkgICQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQkZGlyOyBcCisJICBmb3IgbGMgaW4gJycgJChFWFRSQV9MT0NBTEVfQ0FURUdPUklFUyk7IGRvIFwKKwkgICAgaWYgdGVzdCAtbiAiJCRsYyI7IHRoZW4gXAorCSAgICAgIGlmIChjZCAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZyAmJiBMQ19BTEw9QyBscyAtbCAtZCAkJGxjIDI+L2Rldi9udWxsKSB8IGdyZXAgJyAtPiAnID4vZGV2L251bGw7IHRoZW4gXAorCSAgICAgICAgbGluaz1gY2QgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcgJiYgTENfQUxMPUMgbHMgLWwgLWQgJCRsYyB8IHNlZCAtZSAncy9eLiogLT4gLy8nYDsgXAorCSAgICAgICAgbXYgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYyAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjLm9sZDsgXAorCSAgICAgICAgbWtkaXIgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYzsgXAorCSAgICAgICAgKGNkICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGMub2xkICYmIFwKKwkgICAgICAgICBmb3IgZmlsZSBpbiAqOyBkbyBcCisJICAgICAgICAgICBpZiB0ZXN0IC1mICQkZmlsZTsgdGhlbiBcCisJICAgICAgICAgICAgIGxuIC1zIC4uLyQkbGluay8kJGZpbGUgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYy8kJGZpbGU7IFwKKwkgICAgICAgICAgIGZpOyBcCisJICAgICAgICAgZG9uZSk7IFwKKwkgICAgICAgIHJtIC1mICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGMub2xkOyBcCisJICAgICAgZWxzZSBcCisJICAgICAgICBpZiB0ZXN0IC1kICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGM7IHRoZW4gXAorCSAgICAgICAgICA6OyBcCisJICAgICAgICBlbHNlIFwKKwkgICAgICAgICAgcm0gLWYgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYzsgXAorCSAgICAgICAgICBta2RpciAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjOyBcCisJICAgICAgICBmaTsgXAorCSAgICAgIGZpOyBcCisJICAgIGZpOyBcCisJICBkb25lOyBcCisJZG9uZQorCisjIERlZmluZSB0aGlzIGFzIGVtcHR5IHVudGlsIEkgZm91bmQgYSB1c2VmdWwgYXBwbGljYXRpb24uCitpbnN0YWxsY2hlY2s6CisKK3VuaW5zdGFsbDogdW5pbnN0YWxsLWV4ZWMgdW5pbnN0YWxsLWRhdGEKK3VuaW5zdGFsbC1leGVjOgordW5pbnN0YWxsLWRhdGE6IHVuaW5zdGFsbC1kYXRhLUBVU0VfTkxTQAorCWlmIHRlc3QgIiQoUEFDS0FHRSkiID0gImdldHRleHQtdG9vbHMiOyB0aGVuIFwKKwkgIGZvciBmaWxlIGluICQoRElTVEZJTEVTLmNvbW1vbikgTWFrZXZhcnMudGVtcGxhdGU7IGRvIFwKKwkgICAgcm0gLWYgJChERVNURElSKSQoZ2V0dGV4dHNyY2RpcikvJCRmaWxlOyBcCisJICBkb25lOyBcCisJZWxzZSBcCisJICA6IDsgXAorCWZpCit1bmluc3RhbGwtZGF0YS1ubzoKK3VuaW5zdGFsbC1kYXRhLXllczoKKwljYXRhbG9ncz0nJChDQVRBTE9HUyknOyBcCisJZm9yIGNhdCBpbiAkJGNhdGFsb2dzOyBkbyBcCisJICBjYXQ9YGJhc2VuYW1lICQkY2F0YDsgXAorCSAgbGFuZz1gZWNobyAkJGNhdCB8IHNlZCAtZSAncy9cLmdtbyQkLy8nYDsgXAorCSAgZm9yIGxjIGluIExDX01FU1NBR0VTICQoRVhUUkFfTE9DQUxFX0NBVEVHT1JJRVMpOyBkbyBcCisJICAgIHJtIC1mICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGMvJChET01BSU4pLm1vOyBcCisJICBkb25lOyBcCisJZG9uZQorCitjaGVjazogYWxsCisKK2luZm8gZHZpIHBzIHBkZiBodG1sIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBJRDoKKworbW9zdGx5Y2xlYW46CisJcm0gLWYgcmVtb3ZlLXBvdGNkYXRlLnNlZAorCXJtIC1mIHN0YW1wLXBvVAorCXJtIC1mIGNvcmUgY29yZS4qICQoRE9NQUlOKS5wbyAkKERPTUFJTikuMXBvICQoRE9NQUlOKS4ycG8gKi5uZXcucG8KKwlybSAtZnIgKi5vCisKK2NsZWFuOiBtb3N0bHljbGVhbgorCitkaXN0Y2xlYW46IGNsZWFuCisJcm0gLWYgTWFrZWZpbGUgTWFrZWZpbGUuaW4gUE9URklMRVMgKi5tbworCittYWludGFpbmVyLWNsZWFuOiBkaXN0Y2xlYW4KKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2U7IgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKwlybSAtZiBzdGFtcC1wbyAkKEdNT0ZJTEVTKQorCitkaXN0ZGlyID0gJCh0b3BfYnVpbGRkaXIpLyQoUEFDS0FHRSktJChWRVJTSU9OKS8kKHN1YmRpcikKK2Rpc3QgZGlzdGRpcjoKKwkkKE1BS0UpIHVwZGF0ZS1wbworCUAkKE1BS0UpIGRpc3QyCisjIFRoaXMgaXMgYSBzZXBhcmF0ZSB0YXJnZXQgYmVjYXVzZSAndXBkYXRlLXBvJyBtdXN0IGJlIGV4ZWN1dGVkIGJlZm9yZS4KK2Rpc3QyOiAkKERJU1RGSUxFUykKKwlkaXN0cz0iJChESVNURklMRVMpIjsgXAorCWlmIHRlc3QgIiQoUEFDS0FHRSkiID0gImdldHRleHQtdG9vbHMiOyB0aGVuIFwKKwkgIGRpc3RzPSIkJGRpc3RzIE1ha2V2YXJzLnRlbXBsYXRlIjsgXAorCWZpOyBcCisJaWYgdGVzdCAtZiAkKHNyY2RpcikvQ2hhbmdlTG9nOyB0aGVuIFwKKwkgIGRpc3RzPSIkJGRpc3RzIENoYW5nZUxvZyI7IFwKKwlmaTsgXAorCWZvciBpIGluIDAgMSAyIDMgNCA1IDYgNyA4IDk7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJChzcmNkaXIpL0NoYW5nZUxvZy4kJGk7IHRoZW4gXAorCSAgICBkaXN0cz0iJCRkaXN0cyBDaGFuZ2VMb2cuJCRpIjsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJaWYgdGVzdCAtZiAkKHNyY2RpcikvTElOR1VBUzsgdGhlbiBkaXN0cz0iJCRkaXN0cyBMSU5HVUFTIjsgZmk7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZTsgdGhlbiBcCisJICAgIGNwIC1wICQkZmlsZSAkKGRpc3RkaXIpOyBcCisJICBlbHNlIFwKKwkgICAgY3AgLXAgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpOyBcCisJICBmaTsgXAorCWRvbmUKKwordXBkYXRlLXBvOiBNYWtlZmlsZQorCSQoTUFLRSkgJChET01BSU4pLnBvdC11cGRhdGUKKwl0ZXN0IC16ICIkKFVQREFURVBPRklMRVMpIiB8fCAkKE1BS0UpICQoVVBEQVRFUE9GSUxFUykKKwkkKE1BS0UpIHVwZGF0ZS1nbW8KKworIyBHZW5lcmFsIHJ1bGUgZm9yIGNyZWF0aW5nIFBPIGZpbGVzLgorCisubm9wLnBvLWNyZWF0ZToKKwlAbGFuZz1gZWNobyAkQCB8IHNlZCAtZSAncy9cLnBvLWNyZWF0ZSQkLy8nYDsgXAorCWVjaG8gIkZpbGUgJCRsYW5nLnBvIGRvZXMgbm90IGV4aXN0LiBJZiB5b3UgYXJlIGEgdHJhbnNsYXRvciwgeW91IGNhbiBjcmVhdGUgaXQgdGhyb3VnaCAnbXNnaW5pdCcuIiAxPiYyOyBcCisJZXhpdCAxCisKKyMgR2VuZXJhbCBydWxlIGZvciB1cGRhdGluZyBQTyBmaWxlcy4KKworLm5vcC5wby11cGRhdGU6CisJQGxhbmc9YGVjaG8gJEAgfCBzZWQgLWUgJ3MvXC5wby11cGRhdGUkJC8vJ2A7IFwKKwlpZiB0ZXN0ICIkKFBBQ0tBR0UpIiA9ICJnZXR0ZXh0LXRvb2xzIjsgdGhlbiBQQVRIPWBwd2RgLy4uL3NyYzokJFBBVEg7IGZpOyBcCisJdG1wZGlyPWBwd2RgOyBcCisJZWNobyAiJCRsYW5nOiI7IFwKKwl0ZXN0ICIkKHNyY2RpcikiID0gLiAmJiBjZGNtZD0iIiB8fCBjZGNtZD0iY2QgJChzcmNkaXIpICYmICI7IFwKKwllY2hvICIkJHtjZGNtZH0kKE1TR01FUkdFKSAkJGxhbmcucG8gJChET01BSU4pLnBvdCAtbyAkJGxhbmcubmV3LnBvIjsgXAorCWNkICQoc3JjZGlyKTsgXAorCWlmICQoTVNHTUVSR0UpICQkbGFuZy5wbyAkKERPTUFJTikucG90IC1vICQkdG1wZGlyLyQkbGFuZy5uZXcucG87IHRoZW4gXAorCSAgaWYgY21wICQkbGFuZy5wbyAkJHRtcGRpci8kJGxhbmcubmV3LnBvID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisJICAgIHJtIC1mICQkdG1wZGlyLyQkbGFuZy5uZXcucG87IFwKKwkgIGVsc2UgXAorCSAgICBpZiBtdiAtZiAkJHRtcGRpci8kJGxhbmcubmV3LnBvICQkbGFuZy5wbzsgdGhlbiBcCisJICAgICAgOjsgXAorCSAgICBlbHNlIFwKKwkgICAgICBlY2hvICJtc2dtZXJnZSBmb3IgJCRsYW5nLnBvIGZhaWxlZDogY2Fubm90IG1vdmUgJCR0bXBkaXIvJCRsYW5nLm5ldy5wbyB0byAkJGxhbmcucG8iIDE+JjI7IFwKKwkgICAgICBleGl0IDE7IFwKKwkgICAgZmk7IFwKKwkgIGZpOyBcCisJZWxzZSBcCisJICBlY2hvICJtc2dtZXJnZSBmb3IgJCRsYW5nLnBvIGZhaWxlZCEiIDE+JjI7IFwKKwkgIHJtIC1mICQkdG1wZGlyLyQkbGFuZy5uZXcucG87IFwKKwlmaQorCiskKERVTU1ZUE9GSUxFUyk6CisKK3VwZGF0ZS1nbW86IE1ha2VmaWxlICQoR01PRklMRVMpCisJQDoKKworTWFrZWZpbGU6IE1ha2VmaWxlLmluLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzIEBQT01BS0VGSUxFREVQU0AKKwljZCAkKHRvcF9idWlsZGRpcikgXAorCSAgJiYgQ09ORklHX0ZJTEVTPSQoc3ViZGlyKS8kQC5pbiBDT05GSUdfSEVBREVSUz0gXAorCSAgICAgICAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMKKworZm9yY2U6CisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSBub3QgdG8gZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL01ha2V2YXJzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vTWFrZXZhcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZlMzIwYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL01ha2V2YXJzCkBAIC0wLDAgKzEsNDEgQEAKKyMgTWFrZWZpbGUgdmFyaWFibGVzIGZvciBQTyBkaXJlY3RvcnkgaW4gYW55IHBhY2thZ2UgdXNpbmcgR05VIGdldHRleHQuCisKKyMgVXN1YWxseSB0aGUgbWVzc2FnZSBkb21haW4gaXMgdGhlIHNhbWUgYXMgdGhlIHBhY2thZ2UgbmFtZS4KK0RPTUFJTiA9ICQoUEFDS0FHRSkKKworIyBUaGVzZSB0d28gdmFyaWFibGVzIGRlcGVuZCBvbiB0aGUgbG9jYXRpb24gb2YgdGhpcyBkaXJlY3RvcnkuCitzdWJkaXIgPSBwbwordG9wX2J1aWxkZGlyID0gLi4KKworIyBUaGVzZSBvcHRpb25zIGdldCBwYXNzZWQgdG8geGdldHRleHQuCitYR0VUVEVYVF9PUFRJT05TID0gLS1rZXl3b3JkPV8gLS1rZXl3b3JkPU5fCisKKyMgVGhpcyBpcyB0aGUgY29weXJpZ2h0IGhvbGRlciB0aGF0IGdldHMgaW5zZXJ0ZWQgaW50byB0aGUgaGVhZGVyIG9mIHRoZQorIyAkKERPTUFJTikucG90IGZpbGUuICBTZXQgdGhpcyB0byB0aGUgY29weXJpZ2h0IGhvbGRlciBvZiB0aGUgc3Vycm91bmRpbmcKKyMgcGFja2FnZS4gIChOb3RlIHRoYXQgdGhlIG1zZ3N0ciBzdHJpbmdzLCBleHRyYWN0ZWQgZnJvbSB0aGUgcGFja2FnZSdzCisjIHNvdXJjZXMsIGJlbG9uZyB0byB0aGUgY29weXJpZ2h0IGhvbGRlciBvZiB0aGUgcGFja2FnZS4pICBUcmFuc2xhdG9ycyBhcmUKKyMgZXhwZWN0ZWQgdG8gdHJhbnNmZXIgdGhlIGNvcHlyaWdodCBmb3IgdGhlaXIgdHJhbnNsYXRpb25zIHRvIHRoaXMgcGVyc29uCisjIG9yIGVudGl0eSwgb3IgdG8gZGlzY2xhaW0gdGhlaXIgY29weXJpZ2h0LiAgVGhlIGVtcHR5IHN0cmluZyBzdGFuZHMgZm9yCisjIHRoZSBwdWJsaWMgZG9tYWluOyBpbiB0aGlzIGNhc2UgdGhlIHRyYW5zbGF0b3JzIGFyZSBleHBlY3RlZCB0byBkaXNjbGFpbQorIyB0aGVpciBjb3B5cmlnaHQuCitDT1BZUklHSFRfSE9MREVSID0gS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisKKyMgVGhpcyBpcyB0aGUgZW1haWwgYWRkcmVzcyBvciBVUkwgdG8gd2hpY2ggdGhlIHRyYW5zbGF0b3JzIHNoYWxsIHJlcG9ydAorIyBidWdzIGluIHRoZSB1bnRyYW5zbGF0ZWQgc3RyaW5nczoKKyMgLSBTdHJpbmdzIHdoaWNoIGFyZSBub3QgZW50aXJlIHNlbnRlbmNlcywgc2VlIHRoZSBtYWludGFpbmVyIGd1aWRlbGluZXMKKyMgICBpbiB0aGUgR05VIGdldHRleHQgZG9jdW1lbnRhdGlvbiwgc2VjdGlvbiAnUHJlcGFyaW5nIFN0cmluZ3MnLgorIyAtIFN0cmluZ3Mgd2hpY2ggdXNlIHVuY2xlYXIgdGVybXMgb3IgcmVxdWlyZSBhZGRpdGlvbmFsIGNvbnRleHQgdG8gYmUKKyMgICB1bmRlcnN0b29kLgorIyAtIFN0cmluZ3Mgd2hpY2ggbWFrZSBpbnZhbGlkIGFzc3VtcHRpb25zIGFib3V0IG5vdGF0aW9uIG9mIGRhdGUsIHRpbWUgb3IKKyMgICBtb25leS4KKyMgLSBQbHVyYWxpc2F0aW9uIHByb2JsZW1zLgorIyAtIEluY29ycmVjdCBFbmdsaXNoIHNwZWxsaW5nLgorIyAtIEluY29ycmVjdCBmb3JtYXR0aW5nLgorIyBJdCBjYW4gYmUgeW91ciBlbWFpbCBhZGRyZXNzLCBvciBhIG1haWxpbmcgbGlzdCBhZGRyZXNzIHdoZXJlIHRyYW5zbGF0b3JzCisjIGNhbiB3cml0ZSB0byB3aXRob3V0IGJlaW5nIHN1YnNjcmliZWQsIG9yIHRoZSBVUkwgb2YgYSB3ZWIgcGFnZSB0aHJvdWdoCisjIHdoaWNoIHRoZSB0cmFuc2xhdG9ycyBjYW4gY29udGFjdCB5b3UuCitNU0dJRF9CVUdTX0FERFJFU1MgPSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKworIyBUaGlzIGlzIHRoZSBsaXN0IG9mIGxvY2FsZSBjYXRlZ29yaWVzLCBiZXlvbmQgTENfTUVTU0FHRVMsIGZvciB3aGljaCB0aGUKKyMgbWVzc2FnZSBjYXRhbG9ncyBzaGFsbCBiZSB1c2VkLiAgSXQgaXMgdXN1YWxseSBlbXB0eS4KK0VYVFJBX0xPQ0FMRV9DQVRFR09SSUVTID0KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL1BPVEZJTEVTLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vUE9URklMRVMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNhNjVjOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL1BPVEZJTEVTLmluCkBAIC0wLDAgKzEsMjI5IEBACitkaXNrLXV0aWxzL2Jsb2NrZGV2LmMKK2Rpc2stdXRpbHMvY3JhbWZzX2NvbW1vbi5jCitkaXNrLXV0aWxzL2VsdnR1bmUuYworZGlzay11dGlscy9mZGZvcm1hdC5jCitkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmMKK2Rpc2stdXRpbHMvZnNjay5taW5peC5jCitkaXNrLXV0aWxzL2lzb3NpemUuYworZGlzay11dGlscy9ta2ZzLmJmcy5jCitkaXNrLXV0aWxzL21rZnMuYworZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jCitkaXNrLXV0aWxzL21rZnMubWluaXguYworZGlzay11dGlscy9ta3N3YXAuYworZGlzay11dGlscy9yYXcuYworZmRpc2svY2ZkaXNrLmMKK2ZkaXNrL2ZkaXNrYWl4bGFiZWwuYworZmRpc2svZmRpc2tic2RsYWJlbC5jCitmZGlzay9mZGlzay5jCitmZGlzay9mZGlza21hY2xhYmVsLmMKK2ZkaXNrL2ZkaXNrc2dpbGFiZWwuYworZmRpc2svZmRpc2tzdW5sYWJlbC5jCitmZGlzay9ncHQuYworZmRpc2svaTM4Nl9zeXNfdHlwZXMuYworZmRpc2svcGFydGl0aW9udHlwZS5jCitmZGlzay9wYXJ0bmFtZS5jCitmZGlzay9zZmRpc2suYworZnNjay9iYXNlX2RldmljZS5jCitmc2NrL2ZzY2suYworZ2V0b3B0L2dldG9wdC5jCitod2Nsb2NrL2Nsb2NrLXBwYy5jCitod2Nsb2NrL2Ntb3MuYworaHdjbG9jay9od2Nsb2NrLmMKK2h3Y2xvY2sva2QuYworaHdjbG9jay9ydGMuYworbGliL2Jsa2Rldi5jCitsaWIvY2Fub25pY2FsaXplLmMKK2xpYi9jcmMzMi5jCitsaWIvZW52LmMKK2xpYi9mc3Byb2JlLmMKK2xpYi9pc21vdW50ZWQuYworbGliL2xpbnV4X3ZlcnNpb24uYworbGliL21kNS5jCitsaWIvc2V0cHJvY3RpdGxlLmMKK2xpYi93aG9sZWRpc2suYworbG9naW4tdXRpbHMvYWdldHR5LmMKK2xvZ2luLXV0aWxzL2NoZWNrdHR5LmMKK2xvZ2luLXV0aWxzL2NoZm4uYworbG9naW4tdXRpbHMvY2hzaC5jCitsb2dpbi11dGlscy9pbml0Y3RsLmMKK2xvZ2luLXV0aWxzL2lzbG9jYWwuYworbG9naW4tdXRpbHMvbGFzdC5jCitsb2dpbi11dGlscy9sb2dpbi5jCitsb2dpbi11dGlscy9tZXNnLmMKK2xvZ2luLXV0aWxzL25ld2dycC5jCitsb2dpbi11dGlscy9zZWxpbnV4X3V0aWxzLmMKK2xvZ2luLXV0aWxzL3NldHB3bmFtLmMKK2xvZ2luLXV0aWxzL3NodXRkb3duLmMKK2xvZ2luLXV0aWxzL3NpbXBsZWluaXQuYworbG9naW4tdXRpbHMvdHR5bXNnLmMKK2xvZ2luLXV0aWxzL3ZpcHcuYworbG9naW4tdXRpbHMvd2FsbC5jCittaXNjLXV0aWxzL2Jsa2lkLmMKK21pc2MtdXRpbHMvY2FsLmMKK21pc2MtdXRpbHMvZGRhdGUuYworbWlzYy11dGlscy9maW5kZnMuYworbWlzYy11dGlscy9raWxsLmMKK21pc2MtdXRpbHMvbG9nZ2VyLmMKK21pc2MtdXRpbHMvbG9vay5jCittaXNjLXV0aWxzL21jb29raWUuYworbWlzYy11dGlscy9uYW1laS5jCittaXNjLXV0aWxzL3Byb2NzLmMKK21pc2MtdXRpbHMvcmVuYW1lLmMKK21pc2MtdXRpbHMvc2NyaXB0LmMKK21pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmMKK21pc2MtdXRpbHMvc2V0dGVybS5jCittaXNjLXV0aWxzL3V1aWRkLmMKK21pc2MtdXRpbHMvdXVpZGdlbi5jCittaXNjLXV0aWxzL3doZXJlaXMuYworbWlzYy11dGlscy93aXBlZnMuYworbWlzYy11dGlscy93cml0ZS5jCittb3VudC9kZXZuYW1lLmMKK21vdW50L2ZzdGFiLmMKK21vdW50L2dldHVzZXJuYW1lLmMKK21vdW50L2xvbW91bnQuYworbW91bnQvbW91bnQuYworbW91bnQvbW91bnRfbW50ZW50LmMKK21vdW50L3N1bmRyaWVzLmMKK21vdW50L3N3YXBvbi5jCittb3VudC91bW91bnQuYworbW91bnQveG1hbGxvYy5jCitwYXJ0eC9hZGRwYXJ0LmMKK3BhcnR4L2JzZC5jCitwYXJ0eC9jcmMzMi5jCitwYXJ0eC9kZWxwYXJ0LmMKK3BhcnR4L2Rvcy5jCitwYXJ0eC9ncHQuYworcGFydHgvcGFydHguYworcGFydHgvc29sYXJpcy5jCitwYXJ0eC91bml4d2FyZS5jCitzY2hlZHV0aWxzL2NocnQuYworc2NoZWR1dGlscy9pb25pY2UuYworc2NoZWR1dGlscy90YXNrc2V0LmMKK3NobGlicy9ibGtpZC9zYW1wbGVzL21rZnMuYworc2hsaWJzL2Jsa2lkL3NhbXBsZXMvcGFydGl0aW9ucy5jCitzaGxpYnMvYmxraWQvc2FtcGxlcy9zdXBlcmJsb2Nrcy5jCitzaGxpYnMvYmxraWQvc2FtcGxlcy90b3BvbG9neS5jCitzaGxpYnMvYmxraWQvc3JjL2NhY2hlLmMKK3NobGlicy9ibGtpZC9zcmMvY29uZmlnLmMKK3NobGlicy9ibGtpZC9zcmMvZGV2LmMKK3NobGlicy9ibGtpZC9zcmMvZGV2bmFtZS5jCitzaGxpYnMvYmxraWQvc3JjL2Rldm5vLmMKK3NobGlicy9ibGtpZC9zcmMvZW5jb2RlLmMKK3NobGlicy9ibGtpZC9zcmMvZXZhbHVhdGUuYworc2hsaWJzL2Jsa2lkL3NyYy9nZXRzaXplLmMKK3NobGlicy9ibGtpZC9zcmMvbGxzZWVrLmMKK3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9haXguYworc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL2JzZC5jCitzaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvZG9zLmMKK3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9ncHQuYworc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL21hYy5jCitzaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvbWluaXguYworc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL3BhcnRpdGlvbnMuYworc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL3NnaS5jCitzaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvc29sYXJpc194ODYuYworc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL3N1bi5jCitzaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvdW5peHdhcmUuYworc2hsaWJzL2Jsa2lkL3NyYy9wcm9iZS5jCitzaGxpYnMvYmxraWQvc3JjL3JlYWQuYworc2hsaWJzL2Jsa2lkL3NyYy9yZXNvbHZlLmMKK3NobGlicy9ibGtpZC9zcmMvc2F2ZS5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2FkYXB0ZWNfcmFpZC5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2Jmcy5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2J0cmZzLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvY3JhbWZzLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvZGRmX3JhaWQuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9leHQuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9nZnMuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9oZnMuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9oaWdocG9pbnRfcmFpZC5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2hwZnMuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9pc285NjYwLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvaXN3X3JhaWQuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9qZnMuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9qbWljcm9uX3JhaWQuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saW51eF9yYWlkLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbHNpX3JhaWQuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9sdWtzLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbHZtLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbWluaXguYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9uZXR3YXJlLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbnRmcy5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL252aWRpYV9yYWlkLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvb2Nmcy5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3Byb21pc2VfcmFpZC5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3JlaXNlcmZzLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvcm9tZnMuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9zaWxpY29uX3JhaWQuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9zcXVhc2hmcy5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3N1cGVyYmxvY2tzLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvc3dhcC5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3N5c3YuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy91Ymlmcy5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3VkZi5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3Vmcy5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3ZmYXQuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy92aWFfcmFpZC5jCitzaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3ZtZnMuYworc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy92eGZzLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MveGZzLmMKK3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvemZzLmMKK3NobGlicy9ibGtpZC9zcmMvdGFnLmMKK3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvZG0uYworc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9ldm1zLmMKK3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvaW9jdGwuYworc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9sdm0uYworc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9tZC5jCitzaGxpYnMvYmxraWQvc3JjL3RvcG9sb2d5L3N5c2ZzLmMKK3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvdG9wb2xvZ3kuYworc2hsaWJzL2Jsa2lkL3NyYy90c3RfdHlwZXMuYworc2hsaWJzL2Jsa2lkL3NyYy92ZXJpZnkuYworc2hsaWJzL2Jsa2lkL3NyYy92ZXJzaW9uLmMKK3NobGlicy91dWlkL3NyYy9jbGVhci5jCitzaGxpYnMvdXVpZC9zcmMvY29tcGFyZS5jCitzaGxpYnMvdXVpZC9zcmMvY29weS5jCitzaGxpYnMvdXVpZC9zcmMvZ2VuX3V1aWQuYworc2hsaWJzL3V1aWQvc3JjL2dlbl91dWlkX250LmMKK3NobGlicy91dWlkL3NyYy9pc251bGwuYworc2hsaWJzL3V1aWQvc3JjL3BhY2suYworc2hsaWJzL3V1aWQvc3JjL3BhcnNlLmMKK3NobGlicy91dWlkL3NyYy90c3RfdXVpZC5jCitzaGxpYnMvdXVpZC9zcmMvdW5wYWNrLmMKK3NobGlicy91dWlkL3NyYy91bnBhcnNlLmMKK3NobGlicy91dWlkL3NyYy91dWlkX3RpbWUuYworc3lzLXV0aWxzL2FyY2guYworc3lzLXV0aWxzL2N0cmxhbHRkZWwuYworc3lzLXV0aWxzL2N5dHVuZS5jCitzeXMtdXRpbHMvZG1lc2cuYworc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jCitzeXMtdXRpbHMvZmxvY2suYworc3lzLXV0aWxzL2lwY21rLmMKK3N5cy11dGlscy9pcGNybS5jCitzeXMtdXRpbHMvaXBjcy5jCitzeXMtdXRpbHMvbGRhdHRhY2guYworc3lzLXV0aWxzL2xzY3B1LmMKK3N5cy11dGlscy9waXZvdF9yb290LmMKK3N5cy11dGlscy9yZGV2LmMKK3N5cy11dGlscy9yZWFkcHJvZmlsZS5jCitzeXMtdXRpbHMvcmVuaWNlLmMKK3N5cy11dGlscy9ydGN3YWtlLmMKK3N5cy11dGlscy9zZXRhcmNoLmMKK3N5cy11dGlscy9zZXRzaWQuYworc3lzLXV0aWxzL3N3aXRjaF9yb290LmMKK3N5cy11dGlscy90dW5lbHAuYworc3lzLXV0aWxzL3Vuc2hhcmUuYwordGV4dC11dGlscy9jb2wuYwordGV4dC11dGlscy9jb2xjcnQuYwordGV4dC11dGlscy9jb2xybS5jCit0ZXh0LXV0aWxzL2NvbHVtbi5jCit0ZXh0LXV0aWxzL2NvbnYuYwordGV4dC11dGlscy9kaXNwbGF5LmMKK3RleHQtdXRpbHMvaGV4ZHVtcC5jCit0ZXh0LXV0aWxzL2hleHN5bnRheC5jCit0ZXh0LXV0aWxzL2xpbmUuYwordGV4dC11dGlscy9tb3JlLmMKK3RleHQtdXRpbHMvb2RzeW50YXguYwordGV4dC11dGlscy9wYXJzZS5jCit0ZXh0LXV0aWxzL3BnLmMKK3RleHQtdXRpbHMvcmV2LmMKK3RleHQtdXRpbHMvdGFpbGYuYwordGV4dC11dGlscy91bC5jCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9SdWxlcy1xdW90IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vUnVsZXMtcXVvdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzJhOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vUnVsZXMtcXVvdApAQCAtMCwwICsxLDQ3IEBACisjIFNwZWNpYWwgTWFrZWZpbGUgcnVsZXMgZm9yIEVuZ2xpc2ggbWVzc2FnZSBjYXRhbG9ncyB3aXRoIHF1b3RhdGlvbiBtYXJrcy4KKworRElTVEZJTEVTLmNvbW1vbi5leHRyYTEgPSBxdW90LnNlZCBib2xkcXVvdC5zZWQgZW5AcXVvdC5oZWFkZXIgZW5AYm9sZHF1b3QuaGVhZGVyIGluc2VydC1oZWFkZXIuc2luIFJ1bGVzLXF1b3QKKworLlNVRkZJWEVTOiAuaW5zZXJ0LWhlYWRlciAucG8tdXBkYXRlLWVuCisKK2VuQHF1b3QucG8tY3JlYXRlOgorCSQoTUFLRSkgZW5AcXVvdC5wby11cGRhdGUKK2VuQGJvbGRxdW90LnBvLWNyZWF0ZToKKwkkKE1BS0UpIGVuQGJvbGRxdW90LnBvLXVwZGF0ZQorCitlbkBxdW90LnBvLXVwZGF0ZTogZW5AcXVvdC5wby11cGRhdGUtZW4KK2VuQGJvbGRxdW90LnBvLXVwZGF0ZTogZW5AYm9sZHF1b3QucG8tdXBkYXRlLWVuCisKKy5pbnNlcnQtaGVhZGVyLnBvLXVwZGF0ZS1lbjoKKwlAbGFuZz1gZWNobyAkQCB8IHNlZCAtZSAncy9cLnBvLXVwZGF0ZS1lbiQkLy8nYDsgXAorCWlmIHRlc3QgIiQoUEFDS0FHRSkiID0gImdldHRleHQiOyB0aGVuIFBBVEg9YHB3ZGAvLi4vc3JjOiQkUEFUSDsgR0VUVEVYVExJQkRJUj1gY2QgJCh0b3Bfc3JjZGlyKS9zcmMgJiYgcHdkYDsgZXhwb3J0IEdFVFRFWFRMSUJESVI7IGZpOyBcCisJdG1wZGlyPWBwd2RgOyBcCisJZWNobyAiJCRsYW5nOiI7IFwKKwlsbD1gZWNobyAkJGxhbmcgfCBzZWQgLWUgJ3MvQC4qLy8nYDsgXAorCUxDX0FMTD1DOyBleHBvcnQgTENfQUxMOyBcCisJY2QgJChzcmNkaXIpOyBcCisJaWYgJChNU0dJTklUKSAtaSAkKERPTUFJTikucG90IC0tbm8tdHJhbnNsYXRvciAtbCAkJGxsIC1vIC0gMj4vZGV2L251bGwgfCBzZWQgLWYgJCR0bXBkaXIvJCRsYW5nLmluc2VydC1oZWFkZXIgfCAkKE1TR0NPTlYpIC10IFVURi04IHwgJChNU0dGSUxURVIpIHNlZCAtZiBgZWNobyAkJGxhbmcgfCBzZWQgLWUgJ3MvLipALy8nYC5zZWQgMj4vZGV2L251bGwgPiAkJHRtcGRpci8kJGxhbmcubmV3LnBvOyB0aGVuIFwKKwkgIGlmIGNtcCAkJGxhbmcucG8gJCR0bXBkaXIvJCRsYW5nLm5ldy5wbyA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorCSAgICBybSAtZiAkJHRtcGRpci8kJGxhbmcubmV3LnBvOyBcCisJICBlbHNlIFwKKwkgICAgaWYgbXYgLWYgJCR0bXBkaXIvJCRsYW5nLm5ldy5wbyAkJGxhbmcucG87IHRoZW4gXAorCSAgICAgIDo7IFwKKwkgICAgZWxzZSBcCisJICAgICAgZWNobyAiY3JlYXRpb24gb2YgJCRsYW5nLnBvIGZhaWxlZDogY2Fubm90IG1vdmUgJCR0bXBkaXIvJCRsYW5nLm5ldy5wbyB0byAkJGxhbmcucG8iIDE+JjI7IFwKKwkgICAgICBleGl0IDE7IFwKKwkgICAgZmk7IFwKKwkgIGZpOyBcCisJZWxzZSBcCisJICBlY2hvICJjcmVhdGlvbiBvZiAkJGxhbmcucG8gZmFpbGVkISIgMT4mMjsgXAorCSAgcm0gLWYgJCR0bXBkaXIvJCRsYW5nLm5ldy5wbzsgXAorCWZpCisKK2VuQHF1b3QuaW5zZXJ0LWhlYWRlcjogaW5zZXJ0LWhlYWRlci5zaW4KKwlzZWQgLWUgJy9eIy9kJyAtZSAncy9IRUFERVIvZW5AcXVvdC5oZWFkZXIvZycgJChzcmNkaXIpL2luc2VydC1oZWFkZXIuc2luID4gZW5AcXVvdC5pbnNlcnQtaGVhZGVyCisKK2VuQGJvbGRxdW90Lmluc2VydC1oZWFkZXI6IGluc2VydC1oZWFkZXIuc2luCisJc2VkIC1lICcvXiMvZCcgLWUgJ3MvSEVBREVSL2VuQGJvbGRxdW90LmhlYWRlci9nJyAkKHNyY2RpcikvaW5zZXJ0LWhlYWRlci5zaW4gPiBlbkBib2xkcXVvdC5pbnNlcnQtaGVhZGVyCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1xdW90Cittb3N0bHljbGVhbi1xdW90OgorCXJtIC1mICouaW5zZXJ0LWhlYWRlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vYm9sZHF1b3Quc2VkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vYm9sZHF1b3Quc2VkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiOTM3YWEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ib2xkcXVvdC5zZWQKQEAgLTAsMCArMSwxMCBAQAorcy8iXChbXiJdKlwpIi/igJxcMeKAnS9nCitzL2BcKFteYCddKlwpJy/igJhcMeKAmS9nCitzLyAnXChbXmAnXSpcKScgLyDigJhcMeKAmSAvZworcy8gJ1woW15gJ10qXCknJC8g4oCYXDHigJkvZworcy9eJ1woW15gJ10qXCknIC/igJhcMeKAmSAvZworcy/igJzigJ0vIiIvZworcy/igJwv4oCcG1sxbS9nCitzL+KAnS8bWzBt4oCdL2cKK3Mv4oCYL+KAmBtbMW0vZworcy/igJkvG1swbeKAmS9nCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9jYS5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9jYS5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY2ODJiZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2NhLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9jYS5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2NhLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZDJlNDQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9jYS5wbwpAQCAtMCwwICsxLDEyNzY3IEBACisjIHRyYW5zbGF0aW9uIG9mIHV0aWwtbGludXgucG8gdG8gQ2F0YWxhbgorIyBDb3B5cmlnaHQgwqkgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQW50b25pIEJlbGxhIFBlcmV6IDxiZWxsYTVAdGVsZWxpbmUuZXM+LCAyMDAyLCAyMDAzLgorIyBKb3JkaSBNYWxsYWNoIDxqb3JkaUBnbnUub3JnPiwgMjAwNCwgMjAwNS4KKyMgSm9zZXAgUHVpZ2RlbW9udCA8am9zZXAucHVpZ2RlbW9udEBnbWFpbC5jb20+LCAyMDA1CisjCisjIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBmcmVlbHkgY29weSBhbmQgZGlzdHJpYnV0ZQorIyB0aGlzIGZpbGUgYW5kIG1vZGlmaWVkIHZlcnNpb25zLCBwcm92aWRlZCB0aGF0IHRoaXMKKyMgaGVhZGVyIGlzIG5vdCByZW1vdmVkIGFuZCBtb2RpZmllZCB2ZXJzaW9ucyBhcmUgbWFya2VkCisjIGFzIHN1Y2guCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4IDIuMTMtcHJlM1xuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT5cbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wMy0yMiAwOTozNyswMTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAwNS0wOS0xNyAxMzo0MCswMjAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBKb3NlcCBQdWlnZGVtb250IDxqb3NlcC5wdWlnZGVtb250QGdtYWlsLmNvbT5cbiIKKyJMYW5ndWFnZS1UZWFtOiBDYXRhbGFuIDxjYUBkb2Rkcy5uZXQ+XG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgImVzdGFibGVpeCBhIG5vbcOpcyBsZWN0dXJhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAiZXN0YWJsZWl4IGEgbGVjdHVyYS9lc2NyaXB0dXJhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzYKK21zZ2lkICJnZXQgcmVhZC1vbmx5IgorbXNnc3RyICJhY29uc2VndWVpeCBub23DqXMgbGVjdHVyYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCisjLCBmdXp6eQorbXNnaWQgImdldCBsb2dpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgImFjb25zZWd1ZWl4IGxhIG1pZGEgZGVsIHNlY3RvciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4CisjLCBmdXp6eQorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJhY29uc2VndWVpeCBsYSBtaWRhIGRlbCBzZWN0b3IiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo5NAorbXNnaWQgImdldCBtaW5pbXVtIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKK21zZ2lkICJnZXQgb3B0aW1hbCBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2CisjLCBmdXp6eQorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICJtaWRhIGRlIG5vZGUgZCdpZGVudGlmaWNhY2nDsyBpbmNvcnJlY3RlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTEyCisjLCBmdXp6eQorbXNnaWQgImdldCBtYXggc2VjdG9ycyBwZXIgcmVxdWVzdCIKK21zZ3N0ciAiU2VjdG9ycyBhZGRpY2lvbmFscyBwZXIgY2lsaW5kcmUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTgKK21zZ2lkICJnZXQgYmxvY2tzaXplIgorbXNnc3RyICJhY29uc2VndWVpeCBsYSBtaWRhIGRlbCBibG9jIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAiZXN0YWJsZWl4IGxhIG1pZGEgZGVsIGJsb2MiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzEKK21zZ2lkICJnZXQgMzItYml0IHNlY3RvciBjb3VudCIKK21zZ3N0ciAiYWNvbnNlZ3VlaXggZWwgY29tcHRlIGRlIHNlY3RvcnMgZGUgMzIgYml0cyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICJhY29uc2VndWVpeCBsYSBtaWRhIGVuIG9jdGV0cyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgImVzdGFibGVpeCDCq3JlYWRhaGVhZMK7IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAiYWNvbnNlZ3VlaXggXCJyZWFkYWhlYWRcIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1NworIywgZnV6enkKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgImVzdGFibGVpeCDCq3JlYWRhaGVhZMK7IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTYzCisjLCBmdXp6eQorbXNnaWQgImdldCBmaWxlc3lzdGVtIHJlYWRhaGVhZCIKK21zZ3N0ciAiYWNvbnNlZ3VlaXggXCJyZWFkYWhlYWRcIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgImJ1aWRhIGxhIG1lbcOycmlhIHRlbXBvcmFsIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTcxCittc2dpZCAicmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAidG9ybmEgYSBsbGVnaXIgbGEgdGF1bGEgZGUgcGFydGljaW9ucyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAiRm9ybWEgZCfDunM6XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyAtLXJlcG9ydCBbZGV2aWNlc11cbiIKK21zZ3N0ciAiICAlcyAtLXJlcG9ydCBbZGlzcG9zaXRpdXNdXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyBbLXZ8LXFdIG9yZHJlcyBkaXNwb3NpdGl1c1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBjb21tYW5kczpcbiIKK21zZ3N0ciAiT3JkcmVzIGRpc3BvbmlibGVzOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImdldCBzaXplIGluIDUxMi1ieXRlIHNlY3RvcnMiCittc2dzdHIgImFjb25zZWd1ZWl4IGxhIG1pZGEgZW4gb2N0ZXRzIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIiVzOiBPcmRyZSBkZXNjb25lZ3VkYTogJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgorbXNnc3RyICIlcyByZXF1ZXJlaXggdW4gYXJndW1lbnRcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgZmFpbGVkLlxuIgorbXNnc3RyICJsYSBjZXJjYSBoYSBmYWxsYXQiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3VjY2VlZGVkLlxuIgorbXNnc3RyICIlcyBzJ2hhIGNvbXBsZXRhdCBhbWIgw6h4aXQuXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0MjcgZGlzay11dGlscy9ibG9ja2Rldi5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiJXM6IG5vIGVzIHBvdCBvYnJpciAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpb2N0bCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogcydoYSBwcm9kdcOvdCB1biBlcnJvciBkJ2lvY3RsIGVuICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU3RhcnRTZWMgICAgICAgICAgICBTaXplICAgRGV2aWNlXG4iCittc2dzdHIgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU2VjdEluaWNpICAgIE1pZGEgICAgRGlzcG9zaXRpdVxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAiZm9ybWEgZCfDunM6XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Tk9URTogZWx2dHVuZSBvbmx5IHdvcmtzIHdpdGggMi40IGtlcm5lbHNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInBhcnNlIGVycm9yXG4iCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gY2VyY2FyIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1pc3NpbmcgYmxvY2tkZXZpY2UsIHVzZSAtaCBmb3IgaGVscFxuIgorbXNnc3RyICIlcyBubyDDqXMgY2FwIGRpc3Bvc2l0aXUgZGUgYmxvYyBvIHVuIGZpdHhlclxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImVsdnR1bmUgaXMgb25seSB1c2VmdWwgb24gb2xkZXIga2VybmVscztcbiIKKyJmb3IgMi42IHVzZSBJTyBzY2hlZHVsZXIgc3lzZnMgdHVuYWJsZXMgaW5zdGVhZC4uXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcm1hdHRpbmcgLi4uICIKK21zZ3N0ciAiUydlc3TDoCBmb3JtYXRhbnQuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NDkgZGlzay11dGlscy9mZGZvcm1hdC5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImRvbmVcbiIKK21zZ3N0ciAiZmV0XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAiUydlc3TDoCB2ZXJpZmljYW50Li4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjcxCittc2dpZCAiUmVhZDogIgorbXNnc3RyICJMZWN0dXJhOiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9ibGVtIHJlYWRpbmcgY3lsaW5kZXIgJWQsIGV4cGVjdGVkICVkLCByZWFkICVkXG4iCittc2dzdHIgIiIKKyJIaSBoYSB1biBwcm9ibGVtYSBlbiBsbGVnaXIgZWwgY2lsaW5kcmUgJWQsIHMnZXNwZXJhdmEgJWQgaSBzJ2hhIGxsZWdpdCAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImJhZCBkYXRhIGluIGN5bCAlZFxuIgorIkNvbnRpbnVpbmcgLi4uICIKK21zZ3N0ciAiIgorImRhZGVzIGluY29ycmVjdGVzIGFsIGNpbGluZHJlICVkXG4iCisiUydlc3TDoCBjb250aW51YW50Li4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiAlcyBbIC1uIF0gZGlzcG9zaXRpdVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTE4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODQKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE4MSBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTE0IGRpc2stdXRpbHMvbWtmcy5jOjUyCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODEyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3MgorIzogZGlzay11dGlscy9ta3N3YXAuYzo0ODcgbWlzYy11dGlscy9kZGF0ZS5jOjE3OSBtaXNjLXV0aWxzL3JlbmFtZS5jOjc5CisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE0NyBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCVzKVxuIgorbXNnc3RyICIlcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICIlczogbm8gw6lzIHVuIGRpc3Bvc2l0aXUgZGUgYmxvY1xuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQyCittc2dpZCAiQ291bGQgbm90IGRldGVybWluZSBjdXJyZW50IGZvcm1hdCB0eXBlIgorbXNnc3RyICJObyBlcyBwb3QgZGV0ZXJtaW5hciBsJ2FjdHVhbCB0aXB1cyBkZSBmb3JtYXQiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMtc2lkZWQsICVkIHRyYWNrcywgJWQgc2VjL3RyYWNrLiBUb3RhbCBjYXBhY2l0eSAlZCBrQi5cbiIKK21zZ3N0ciAiQ2FyYSAlcywgJWQgcGlzdGVzLCAlZCBzZWdvbnMvcGlzdGEuIENhcGFjaXRhdCB0b3RhbCAlZCBrQi5cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIkRvdWJsZSIKK21zZ3N0ciAiRG9ibGUiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJTaW5nbGUiCittc2dzdHIgIlNpbXBsZSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaHZdIFsteCBkaXJdIGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisiIC12ICAgICAgICAgYmUgbW9yZSB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB0byB0ZXN0XG4iCittc2dzdHIgIiIKKyJmb3JtYSBkJ8O6czogJXMgWy1odl0gWy14IGRpcl0gZml0eGVyXG4iCisiIC1oICAgICAgICAgbW9zdHJhIGFxdWVzdGEgYWp1ZGFcbiIKKyIgLXggZGlyICAgICBleHRyZXUgZGlucyBkZWwgZGlyZWN0b3JpIGRpclxuIgorIiAtdiAgICAgICAgIG1vc3RyYSBtw6lzIG1pc3NhdGdlc1xuIgorIiBmaXR4ZXIgICAgIGZpdHhlciBhIGNvbXByb3ZhclxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgIihGaXR4ZXIgc2Vnw7xlbnQ6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2NyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIm5vIGhhIGVzdGF0IHBvc3NpYmxlIGV4ZWN1dGFyIG9wZW5wdHlcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgZmFpbGVkOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGRldmljZSBzaXplOiAlcyIKK21zZ3N0ciAiJXM6IGF2w61zOyBubyBlcyBwb3QgZGV0ZXJtaW5hciBsYSBtaWRhIGRlbCBzaXN0ZW1hIGRlIGZpdHhlcnMgXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBhIGJsb2NrIGRldmljZSBvciBmaWxlOiAlcyIKK21zZ3N0ciAiJXMgbm8gw6lzIGNhcCBkaXNwb3NpdGl1IGRlIGJsb2MgbyB1biBmaXR4ZXJcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4NCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI2CisjLCBmdXp6eQorbXNnaWQgImZpbGUgbGVuZ3RoIHRvbyBzaG9ydCIKK21zZ3N0ciAiJXM6IGVsIGNyYW1mcyDDqXMgaW52w6BsaWQsIGxhIGxvbmdpdHVkIGRlbCBmaXR4ZXIgw6lzIG1hc3NhIGN1cnRhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGZhaWxlZDogJXMiCittc2dzdHIgIihGaXR4ZXIgc2Vnw7xlbnQ6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIwNworbXNnaWQgInN1cGVyYmxvY2sgbWFnaWMgbm90IGZvdW5kIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTYKKyMsIGZ1enp5Cittc2dpZCAidW5zdXBwb3J0ZWQgZmlsZXN5c3RlbSBmZWF0dXJlcyIKK21zZ3N0ciAiSW50cm9kdcOvdSBlbCB0aXB1cyBkZWwgc2lzdGVtYSBkZSBmaXR4ZXJzOiAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAiTm9tYnJlIGRlIHNlY3RvcnMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAiQXbDrXM6IGxhIHBhcnRpY2nDsyAlcyBzJ2V4dMOpbiBtw6lzIGVubGzDoCBkZWwgZmluYWwgZGVsIGRpc2NcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogb2xkIGNyYW1mcyBmb3JtYXRcbiIKK21zZ3N0ciAiJXM6IGF2w61zOyBsYSBpbWF0Z2UgY3JhbWZzIMOpcyBhbnRpZ2EsIG5vIHTDqSBDUkNcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI0NgorbXNnaWQgInVuYWJsZSB0byB0ZXN0IENSQzogb2xkIGNyYW1mcyBmb3JtYXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3MiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzM5CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDc3IGxvZ2luLXV0aWxzL2NoZm4uYzo1MjkgbG9naW4tdXRpbHMvY2hzaC5jOjQzOQorIzogbWlzYy11dGlscy93aXBlZnMuYzoxNDEgc3lzLXV0aWxzL2N5dHVuZS5jOjMyMQorbXNnaWQgIm1hbGxvYyBmYWlsZWQiCittc2dzdHIgImwnYXNzaWduYWNpw7MgZGUgbWVtw7JyaWEgKG1hbGxvYykgaGEgZmFsbGF0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjk3CisjLCBmdXp6eQorbXNnaWQgImNyYyBlcnJvciIKK21zZ3N0ciAiLCBlcnJvciIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorIywgZnV6enkKK21zZ2lkICJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiCittc2dzdHIgImVsIG5vZGUgZCdpZGVudGlmaWNhY2nDsyBhcnJlbCBubyDDqXMgdW4gZGlyZWN0b3JpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByb290IG9mZnNldCAoJWx1KSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mzg3Cittc2dpZCAiZGF0YSBibG9jayB0b28gbGFyZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICIgIGZvcmF0IGEgJWxkICglZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyMyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgdW5jb21wcmVzc2luZyBibG9jayBhdCAlbGQgdG8gJWxkICglbGQpXG4iCittc2dzdHIgIiAgcydlc3TDoCBkZXNjb21wcmltaW50IGVsIGJsb2MgZGUgJWxkIGEgJWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAiJXM6IE5vIGJsb2MgKCVsZCkgb2N0ZXRzXG4iCisKKyMgIk5vIG1pZGEiIG5vIMOpcyBnZW5zIGNvcnJlY3RlLi4uIGptCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tc2l6ZSAoJWxkIHZzICVsZCkgYnl0ZXMiCittc2dzdHIgIiVzOiBPY3RldHMgc2Vuc2UgbWlkYSAoJWxkIHZzICVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKEZpdHhlciBzZWfDvGVudDogJXMpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibm8gcydoYSBlc3RhdCBwb3NzaWJsZSBtdW50YXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNob3duIGZhaWxlZDogJXMiCittc2dzdHIgIm5vIHMnaGEgZXN0YXQgcG9zc2libGUgbXVudGFyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ2YWxvciBkJ2V4cGlyYWNpw7MgZXJyb25pOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJta2RpciBmYWlsZWQ6ICVzIgorbXNnc3RyICIvZGV2OiBjaGRpcigpIGhhIGZhbGxhdDogJW0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTEKK21zZ2lkICJmaWxlbmFtZSBsZW5ndGggaXMgemVybyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTE0Cittc2dpZCAiYmFkIGZpbGVuYW1lIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCisjLCBmdXp6eQorbXNnaWQgImJhZCBpbm9kZSBvZmZzZXQiCittc2dzdHIgIm1pZGEgZGUgbm9kZSBkJ2lkZW50aWZpY2FjacOzIGluY29ycmVjdGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MzcKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTQwCittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBzaXplIGFuZCBub24temVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3MQorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzQKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2l6ZSBlcnJvciBpbiBzeW1saW5rOiAlcyIKK21zZ3N0ciAiJXM6IGhpIGhhIHVuIGVycm9yIGVuIGxhIG1pZGEgZGUgbCdlbmxsYcOnIHNpbWLDsmxpYyDCqyVzwrtcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGZlciBmc3luYyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAiJXM6IG1vZGUgZXJyb25pIGEgwqslc8K7ICglbylcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAibm8gcydoYSBlc3RhdCBwb3NzaWJsZSBtdW50YXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Njg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisiJXM6IGVsIGNyYW1mcyDDqXMgaW52w6BsaWQsIGVsIGZpbmFsIGRlIGxlcyBkYWRlcyBhbHMgZGlyZWN0b3JpcyAoJWxkKVxuIgorIsOpcyBkaWZlcmVudCBkZSBsJ2luaWNpIGRlIGxlcyBkYWRlcyBkZWxzIGZpdHhlcnMgKCVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY5MAorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGZpbGUgZGF0YSBvZmZzZXQiCittc2dzdHIgIiIKKyIlczogZWwgY3JhbWZzIMOpcyBpbnbDoGxpZCwgaGkgaGEgdW4gZGVzcGxhw6dhbWVudCBpbnbDoGxpZCBkZSBsZXMgZGFkZXMgZGVscyAiCisiZml0eGVyc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzE0CisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBhbGxvY2F0ZSBvdXRidWZmZXIiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgYXNzaWduYXIgbGEgbWVtw7JyaWEgdGVtcG9yYWwuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MjcKKyMsIGZ1enp5Cittc2dpZCAiY29tcGlsZWQgd2l0aG91dCAteCBzdXBwb3J0IgorbXNnc3RyICIlczogY29tcGlsYXQgc2Vuc2UgaW1wbGVtZW50YXIgLXhcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtZVxuIgorbXNnc3RyICJGb3JtYSBkJ8O6czogJXMgWy1sYXJ2c21mXSAvZGV2L25vbVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIGVzdMOgIG11bnRhdC5cdCAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyNQorbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byBjb250aW51ZSIKK21zZ3N0ciAiRXN0ZXUgc2VndXIgZGUgdm9sZXIgY29udGludWFyPyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgInMnaGEgYXZvcnRhdCBsYSBjb21wcm92YWNpw7MuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJOw7ptZXJvIGRlIHpvbmEgPCBGSVJTVFpPTkUgZW4gZWwgZml0eGVyIMKrJXPCuy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA+PSBaT05FUyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJOw7ptZXJvIGRlIHpvbmEgPj0gWk9ORVMgZW4gZWwgZml0eGVyIMKrJXPCuy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozODAKK21zZ2lkICJSZW1vdmUgYmxvY2siCittc2dzdHIgIkVsaW1pbmEgZWwgYmxvYyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IHVuYWJsZSB0byBzZWVrIHRvIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICIiCisiUydoYSBwcm9kdcOvdCB1biBlcnJvciBkZSBsZWN0dXJhOiBubyBlcyBwb3QgY2VyY2FyIGVsIGJsb2MgYWwgZml0eGVyIMKrJXPCu1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJTJ2hhIHByb2R1w690IHVuIGVycm9yIGRlIGxlY3R1cmE6IGJsb2MgZXJyb25pIGFsIGZpdHhlciDCqyVzwrtcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisiUydoYSBwcm9kdcOvdCB1biBlcnJvciBpbnRlcm46IHMnZXN0w6AgaW50ZW50YW50IGVzY3JpdXJlIHVuIGJsb2MgZXJyb25pXG4iCisiUydoYSBpZ25vcmF0IGxhIHBldGljacOzIGQnZXNjcmlwdHVyYVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA3Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gZmVyIHVuYSBjZXJjYSBlbiB3cml0ZV9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI4CisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRlIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIiIKKyJTJ2hhIHByb2R1w690IHVuIGVycm9yIGQnZXNjcmlwdHVyYTogaGkgaGEgdW4gYmxvYyBpbmNvcnJlY3RlIGFsIGZpdHhlciDCqyVzwrtcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gZmVyIHVuYSBjZXJjYSBlbiB3cml0ZV9zdXBlcl9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAibm8gZXMgcG90IGVzY3JpdXJlIGVsIHN1cGVyYmxvYyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiTm8gZXMgcG90IGVzY3JpdXJlIGVsIG1hcGEgZGUgbm9kZXMgZCdpZGVudGlmaWNhY2nDsyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU4Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJObyBlcyBwb3QgZXNjcml1cmUgZWwgbWFwYSBkZSB6b25hIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJObyBlcyBwb2RlbiBlc2NyaXVyZSBlbHMgbm9kZXMgZCdpZGVudGlmaWNhY2nDsyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTg3Cittc2dpZCAic2VlayBmYWlsZWQiCittc2dzdHIgImxhIGNlcmNhIGhhIGZhbGxhdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGFzc2lnbmFyIG1lbcOycmlhIGludGVybcOoZGlhIHBlciBhbHMgbWFwZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5NAorbXNnaWQgInVuYWJsZSB0byByZWFkIHN1cGVyIGJsb2NrIgorbXNnc3RyICJubyBlcyBwb3QgbGxlZ2lyIGVsIHN1cGVyYmxvYyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjEyCittc2dpZCAiYmFkIG1hZ2ljIG51bWJlciBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAibsO6bWVybyBtw6BnaWMgaW5jb3JyZWN0ZSBlbiBlbCBzdXBlcmJsb2MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNAorbXNnaWQgIk9ubHkgMWsgYmxvY2tzL3pvbmVzIHN1cHBvcnRlZCIKK21zZ3N0ciAiTm9tw6lzIGVzIHN1cG9ydGVuIGJsb2NzIG8gem9uZXMgZGUgMWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJDYW1wIHNfaW1hcF9ibG9ja3MgaW5jb3JyZWN0ZSBhbCBzdXBlcmJsb2MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxOAorbXNnaWQgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJDYW1wIHNfem1hcF9ibG9ja3MgaW5jb3JyZWN0ZSBlbiBlbCBzdXBlcmJsb2MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyNQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIG1hcCIKK21zZ3N0ciAiIgorIk5vIGVzIHBvdCBhc3NpZ25hciBtZW3DsnJpYSBpbnRlcm3DqGRpYSBwZXIgYWwgbWFwYSBkZSBub2RlcyBkJ2lkZW50aWZpY2FjacOzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjgKKyMsIGZ1enp5Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBtYXAiCittc2dzdHIgIiIKKyJObyBlcyBwb3QgYXNzaWduYXIgbWVtw7JyaWEgaW50ZXJtw6hkaWEgcGVyIGFsIG1hcGEgZGUgbm9kZXMgZCdpZGVudGlmaWNhY2nDsyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJObyBlcyBwb3QgYXNzaWduYXIgbWVtw7JyaWEgaW50ZXJtw6hkaWEgcGVyIGFscyBub2RlcyBkJ2lkZW50aWZpY2FjacOzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzYKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBjb3VudCIKK21zZ3N0ciAiIgorIk5vIGVzIHBvdCBhc3NpZ25hciBtZW3DsnJpYSBpbnRlcm3DqGRpYSBwZXIgYWwgbm9tYnJlIGRlIG5vZGVzIGQnaWRlbnRpZmljYWNpw7MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIk5vIGVzIHBvdCBhc3NpZ25hciBtZW3DsnJpYSBpbnRlcm3DqGRpYSBwZXIgYWwgbm9tYnJlIGRlIHpvbmVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDEKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZSBtYXAiCittc2dzdHIgIk5vIGVzIHBvdCBsbGVnaXIgZWwgbWFwYSBkZSBub2RlcyBkJ2lkZW50aWZpY2FjacOzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDMKK21zZ2lkICJVbmFibGUgdG8gcmVhZCB6b25lIG1hcCIKK21zZ3N0ciAiTm8gZXMgcG90IGxsZWdpciBlbCBtYXBhIGRlIHpvbmVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDUKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZXMiCittc2dzdHIgIk5vIGVzIHBvZGVuIGxsZWdpciBlbHMgbm9kZXMgZCdpZGVudGlmaWNhY2nDsyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICJBdGVuY2nDszogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGlub2Rlc1xuIgorbXNnc3RyICIlbGQgbm9kZXMgZCdpZGVudGlmaWNhY2nDs1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIGJsb2NzXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NCBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3RkYXRhem9uZT0lbGQgKCVsZClcbiIKK21zZ3N0ciAiUHJpbWVyYSB6b25hIGRlIGRhZGVzPSVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmVzaXplPSVkXG4iCittc2dzdHIgIk1pZGEgZGUgbGEgem9uYT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF4c2l6ZT0lbGRcbiIKK21zZ3N0ciAiTWlkYSBtw6B4aW1hPSVsZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBzdGF0ZT0lZFxuIgorbXNnc3RyICJFc3RhdCBkZWwgc2lzdGVtYSBkZSBmaXR4ZXJzPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisibG9uZ2l0dWQgZGVsIG5vbT0lZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzMgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1hcmtlZCB1bnVzZWQsIGJ1dCB1c2VkIGZvciBmaWxlICclcydcbiIKK21zZ3N0ciAiIgorIkVsIG5vZGUgZCdpZGVudGlmaWNhY2nDsyAlZCBlc3TDoCBtYXJjYXQgY29tIGEgbm8gdXNhdCwgcGVyw7Igw6lzIHVzYXQgcGVsICIKKyJmaXR4ZXIgwqslc8K7XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjgKK21zZ2lkICJNYXJrIGluIHVzZSIKK21zZ3N0ciAiTWFyY2EnbCBlbiDDunMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iCittc2dzdHIgIkVsIGZpdHhlciDCqyVzwrsgdMOpIGVsIG1vZGUgJTA1b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIkF2w61zOiBlbCBub21icmUgZGUgbm9kZXMgZCdpZGVudGlmaWNhY2nDsyDDqXMgbWFzc2EgZ3Jhbi5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc3NAorbXNnaWQgInJvb3QgaW5vZGUgaXNuJ3QgYSBkaXJlY3RvcnkiCittc2dzdHIgImVsIG5vZGUgZCdpZGVudGlmaWNhY2nDsyBhcnJlbCBubyDDqXMgdW4gZGlyZWN0b3JpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3ODggZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiRWwgYmxvYyBqYSBoYSBlc3RhdCBlbXByYXQgYW50ZXJpb3JtZW50LiBBcmEgZXN0w6AgZW4gZWwgZml0eGVyIFwiJXNcIi4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc5MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjMKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NQorIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjEwCittc2dpZCAiQ2xlYXIiCittc2dzdHIgIk5ldGVqYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICJFbCBibG9jICVkIGVuIGVsIGZpdHhlciBgJXMnIGVzdMOgIG1hcmNhdCBjb20gYSBubyB1c2F0LiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzNQorbXNnaWQgIkNvcnJlY3QiCittc2dzdHIgIkNvcnJlZ2VpeCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGRpcmVjdG9yeSAnJXMnIGNvbnRhaW5zIGEgYmFkIGlub2RlIG51bWJlciBmb3IgZmlsZSAnJS4qcycuIgorbXNnc3RyICIiCisiRWwgZGlyZWN0b3JpIGAlcycgY29udMOpIHVuIG5vbWJyZSBkZSBub2RlcyBkJ2lkZW50aWZpY2FjacOzIGluY29ycmVjdGUgcGVyIGFsICIKKyJmaXR4ZXIgwqslLipzwrsuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBFbGltaW5hIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCittc2dzdHIgIiVzOiBkaXJlY3RvcmkgaW5jb3JyZWN0ZTogwqsuwrsgbm8gw6lzIGVsIHByaW1lclxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiJXM6IGRpcmVjdG9yaSBpbmNvcnJlY3RlOiDCqy4uwrsgbm8gw6lzIGVsIHNlZ29uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTExOQorbXNnaWQgImludGVybmFsIGVycm9yIgorbXNnc3RyICJlcnJvciBpbnRlcm4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogc2l6ZSA8IDMyIgorbXNnc3RyICIlczogZGlyZWN0b3JpIGluY29ycmVjdGU6IG1pZGEgPCAzMiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEzNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGJhZF96b25lIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGNlcmNhciBhIGJhZF96b25lIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ1IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbW9kZSBub3QgY2xlYXJlZC4iCittc2dzdHIgIk5vIHMnaGEgZXNib3JyYXQgZWwgbW9kZSBkZWwgbm9kZSBkJ2lkZW50aWZpY2FjacOzICVkLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjA5CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG5vdCB1c2VkLCBtYXJrZWQgdXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiIgorIkVsIG5vZGUgZCdpZGVudGlmaWNhY2nDsyAlZCBubyBzJ3VzYTsgcydoYSBtYXJjYXQgY29tIGEgdXNhdCBlbiBlbCBtYXBhIGRlICIKKyJiaXRzLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIHVzZWQsIG1hcmtlZCB1bnVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIiIKKyJTJ2VzdMOgIHVzYW50IGVsIG5vZGUgZCdpZGVudGlmaWNhY2nDsyAlZDsgbWFyY2F0IGNvbSBhIGVuIGRlc8O6cyBlbiBlbCBtYXBhIGRlICIKKyJiaXRzLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICJFc3RhYmxlaXgiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgY291bnRlZD0lZC4iCittc2dzdHIgIk5vZGUgZCdpZGVudGlmaWNhY2nDsyAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgY29tcHRhdHM9JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgIkVzdGFibGVpeCBpX25saW5rcyBhbHMgY29tcHRhdHMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICJab25hICVkOiBtYXJjYWRhIGNvbSBhIGVuIMO6czsgY2FwIGZpdHhlciBubyBsJ3V0aWxpdHphLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM2Cittc2dpZCAiVW5tYXJrIgorbXNnc3RyICJFbGltaW5hIGxhIG1hcmNhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlpvbmEgJWQ6IGVuIMO6cywgY29tcHRhZGE9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWm9uYSAlZDogbm8gZW4gw7pzLCBjb21wdGFkYT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg5IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3NworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc5Cittc2dpZCAiYmFkIGlub2RlIHNpemUiCittc2dzdHIgIm1pZGEgZGUgbm9kZSBkJ2lkZW50aWZpY2FjacOzIGluY29ycmVjdGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyOTEKK21zZ2lkICJiYWQgdjIgaW5vZGUgc2l6ZSIKK21zZ3N0ciAibWlkYSBkZSBub2RlIGQnaWRlbnRpZmljYWNpw7MgdjIgaW5jb3JyZWN0ZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMxNworbXNnaWQgIm5lZWQgdGVybWluYWwgZm9yIGludGVyYWN0aXZlIHJlcGFpcnMiCittc2dzdHIgImVzIG5lY2Vzc2l0YSB1biB0ZXJtaW5hbCBwZXIgYSByZXBhcmFjaW9ucyBpbnRlcmFjdGl2ZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICclcyc6ICVzIgorbXNnc3RyICJubyBlcyBwb3Qgb2JyaXIgJyVzJyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBjbGVhbiwgbm8gY2hlY2suXG4iCittc2dzdHIgIiVzIGVzdMOgIG5ldDsgbm8gZXMgY29tcHJvdmEuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9yY2luZyBmaWxlc3lzdGVtIGNoZWNrIG9uICVzLlxuIgorbXNnc3RyICJTJ2VzdMOgIGZvcsOnYW50IGxhIGNvbXByb3ZhY2nDsyBkZWwgc2lzdGVtYSBkZSBmaXR4ZXJzIGEgJXMuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBvbiAlcyBpcyBkaXJ0eSwgbmVlZHMgY2hlY2tpbmcuXG4iCittc2dzdHIgIkhpIGhhIGVsZW1lbnRzIGVzdHJhbnlzIGFsIHNpc3RlbWEgZGUgZml0eGVycyAlcywgcydoYSBkZSBjb21wcm92YXIuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2bGQgaW5vZGVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIiCisiXG4iCisiJTZsZCBub2RlcyBkJ2lkZW50aWZpY2FjacOzIHVzYXRzICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkIHpvbmVzIHVzYWRlcyAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmQgZml0eGVycyBub3JtYWxzXG4iCisiJTZkIGRpcmVjdG9yaXNcbiIKKyIlNmQgZml0eGVycyBkaXNwb3NpdGl1IGRlIGNhcsOgY3RlclxuIgorIiU2ZCBmaXR4ZXJzIGRpc3Bvc2l0aXUgZGUgYmxvY1xuIgorIiU2ZCBlbmxsYcOnb3NcbiIKKyIlNmQgZW5sbGHDp29zIHNpbWLDsmxpY3NcbiIKKyItLS0tLS1cbiIKKyIlNmQgZml0eGVyc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiRklMRSBTWVNURU0gSEFTIEJFRU4gQ0hBTkdFRFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJFTCBTSVNURU1BIERFIEZJVFhFUlMgSEEgQ0FOVklBVFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IHMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gb2JyaXI6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogcydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBjZXJjYXIgYSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IHMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZGUgbGVjdHVyYSBhICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3IgY291bnQ6ICVkLCBzZWN0b3Igc2l6ZTogJWRcbiIKK21zZ3N0ciAiY29tcHRlIGRlIHNlY3RvcnM6ICVkLCBtaWRhIGRlbCBzZWN0b3I6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiBzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGFuYWxpdHphciBsJ29wY2nDs1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLWltYWdlXG4iCittc2dzdHIgIkZvcm1hIGQnw7pzOiAlcyBbLXhdIFstZCA8bsO6bT5dIGltYXRnZS1pc285NjYwXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisiRm9ybWEgZCfDunM6ICVzIFstdl0gWy1OIG5yX2RlX25vZGVzX2QnaWRlbnRpZmljYWNpw7NdIFstViBub21fdm9sdW1dXG4iCisiICAgICAgIFstRiBub21fc2lzLl9maXR4Ll0gZGlzcG9zaXRpdSBbcXVhbnRzX2Jsb2NzXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTMwCittc2dpZCAidm9sdW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgIm5vbSBkZWwgdm9sdW0gbWFzc2EgbGxhcmciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzcKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAibm9tIGRlbCBzaXN0ZW1hIGRlIGZpdHhlcnMgbWFzc2EgbGxhcmciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJubyBlcyBwb3QgZmVyIFwic3RhdFwiIGFsIGRpc3Bvc2l0aXUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIG5vIGVzIHVuIGRpc3Bvc2l0aXUgZGUgYmxvYyBlc3BlY2lhbCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE3MSBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMiCittc2dzdHIgIiVzIG5vIGVzIHBvdCBvYnJpciIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgIm5vIGVzIHBvdCBvYnRlbmlyIGxhIG1pZGEgZGUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImJsb2NrcyBhcmd1bWVudCB0b28gbGFyZ2UsIG1heCBpcyAlbGx1IgorbXNnc3RyICJlbCBub21icmUgZGUgYmxvY3MgZXMgbWFzc2EgZ3JhbiwgZWwgbcOgeGltIMOpcyBkZSAlbHUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMDIKK21zZ2lkICJ0b28gbWFueSBpbm9kZXMgLSBtYXggaXMgNTEyIgorbXNnc3RyICJtYXNzYSBub2RlcyBkJ2lkZW50aWZpY2FjacOzOyBlbCBtw6B4aW0gw6lzIGRlIDUxMiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAibm8gaGkgaGEgcHJvdSBlc3BhaSwgY29tIGEgbcOtbmltIGVzIG5lY2Vzc2l0ZW4gJWx1IGJsb2NzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjIzIGZkaXNrL2ZkaXNrLmM6MjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2U6ICVzXG4iCittc2dzdHIgIkRpc3Bvc2l0aXU6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVm9sdW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiVm9sdW06IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIk5vbV9TaXMuRml0OiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIk1pZGFCbG9jOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluIDEgYmxvY2spXG4iCittc2dzdHIgIk5vZGVzIGQnaWRlbnRpZmljYWNpw7M6ICVkIChhbCAxIGJsb2MpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluICVsbGQgYmxvY2tzKVxuIgorbXNnc3RyICJOb2RlcyBkJ2lkZW50aWZpY2FjacOzOiAlZCAoYWxzICVsZCBibG9jcylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tzOiAlbGxkXG4iCittc2dzdHIgIkJsb2NzOiAlbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAiw5psdGltIG5vZGUgZCdpZGVudGlmaWNhY2nDszogJWQsIERhZGEgZmluYWw6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gZXNjcml1cmUgZWwgc3VwZXJibG9jIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjU5Cittc2dpZCAiZXJyb3Igd3JpdGluZyByb290IGlub2RlIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGVzY3JpdXJlIGVsIG5vZGUgZCdpZGVudGlmaWNhY2nDsyBhcnJlbCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NAorbXNnaWQgImVycm9yIHdyaXRpbmcgaW5vZGUiCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gZXNjcml1cmUgZWwgbm9kZSBkJ2lkZW50aWZpY2FjacOzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBjZXJjYXIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKK21zZ2lkICJlcnJvciB3cml0aW5nIC4gZW50cnkiCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gZXNjcml1cmUgbCdlbnRyYWRhIC4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzcKK21zZ2lkICJlcnJvciB3cml0aW5nIC4uIGVudHJ5IgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGVzY3JpdXJlIGwnZW50cmFkYSAuLiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjbG9zaW5nICVzIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIHRhbmNhciAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICIiCisiRm9ybWEgZCfDunM6IG1rZnMgWy1WXSBbLXQgdGlwdXNfc2lzLl9maXR4Ll0gW29wY2lvbnNfc2lzLl9maXR4Ll0gIGRpc3Bvc2l0aXUgIgorIlttaWRhXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo4OCBkaXNrLXV0aWxzL21rZnMuYzo5NiBmZGlzay9jZmRpc2suYzozNTMKKyM6IGdldG9wdC9nZXRvcHQuYzo4NiBnZXRvcHQvZ2V0b3B0LmM6OTYgbG9naW4tdXRpbHMvd2FsbC5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT3V0IG9mIG1lbW9yeSFcbiIKK21zZ3N0ciAiJXM6IE5vIGhpIGhhIHByb3UgbWVtw7JyaWFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZnMgKCVzKVxuIgorbXNnc3RyICJta2ZzICglcylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjEyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisiZm9ybWEgZCfDunM6ICVzIFstaF0gWy12XSBbLWIgYmxrc3pdIFstZSBlZGljacOzXSBbLWkgZml0eGVyXSBbLW4gbm9tXSBub21fZGlyICIKKyJzb3J0aWRhXG4iCisiIC1oICAgICAgICBtb3N0cmEgYXF1ZXN0YSBhanVkYVxuIgorIiAtdiAgICAgICAgbcOpcyBtaXNzYXRnZXNcbiIKKyIgLUUgICAgICAgIGNvbnZlcnRlaXggZWxzIGF2aXNvcyBlbiBlcnJvcnMgKGVzdGF0IGRlIHNvcnRpZGEgbm8gemVybylcbiIKKyIgLWIgICAgICAgIHV0aWxpdHphIGFxdWVzdGEgbWlkYSBkZSBibG9jLCBoYSBkZSBzZXIgaWd1YWwgcXVlIGxhIG1pZGFcbiIKKyIgICAgICAgICAgIGRlIHDDoGdpbmFcbiIKKyIgLWUgZWRpY2nDsyBlc3RhYmxlaXggZWwgbsO6bWVybyBkJ2VkaWNpw7MgKHBhcnQgZGUgZnNpZClcbiIKKyIgLWkgZml0eGVyIGluc2VyZWl4IHVuYSBpbWF0Z2UgZGUgZml0eGVyIGFsIHNpc3RlbWEgZGUgZml0eGVyc1xuIgorIiAgICAgICAgICAgKHJlcXVlcmVpeCA+PSAyLjQuMClcbiIKKyIgLW4gbm9tICAgIGVzdGFibGVpeCBlbCBub20gZGVsIHNpc3RlbWEgZGUgZml0eGVycyBjcmFtZnNcbiIKKyIgLXAgICAgICAgIGRlc3BsYcOnYSAlZCBvY3RldHMgcGVyIGFsIGNvZGkgZCdhcnJlbmNhZGFcbiIKKyIgLXMgICAgICAgIG9yZGVuYSBsZXMgZW50cmFkZXMgZGUgZGlyZWN0b3JpIChvcGNpw7MgYW50aWdhLCBzJ2lnbm9yYSlcbiIKKyIgLXogICAgICAgIGNyZWEgZm9yYXRzIGV4cGzDrWNpdHMgKHJlcXVlcmVpeCA+PSAyLjMuMzkpXG4iCisiIG5vbV9kaXIgICBhcnJlbCBkZWwgc2lzdGVtYSBkZSBmaXR4ZXJzIHF1ZSBlcyBjb21wcmltaXLDoFxuIgorIiBzb3J0aWRhICAgZml0eGVyIGRlIHNvcnRpZGFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjMzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIlMnaGEgdHJvYmF0IHVuIG5vbSBkZSBmaXR4ZXIgJyUyJHMnIG1vbHQgbGxhcmcgKCUxJHUgb2N0ZXRzKS5cbiIKKyIgSW5jcmVtZW50ZXUgTUFYX0lOUFVUX05BTUVMRU4gYSBta2NyYW1mcy5jIGkgcmVjb21waWxldS1sby4gUydlc3TDoCAiCisic29ydGludC5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICJlbCBzaXN0ZW1hIGRlIGZpdHhlcnMgw6lzIG1hc3NhIGdyYW4uIFMnZXN0w6Agc29ydGludC5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIkVwOiBibG9jIFwiY29tcHJpbWl0XCIgYSA+IDIqbG9uZ2l0dWRkZWxibG9jICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2Qgb2N0ZXRzKVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorImF2w61zOiBzJ2VzdGltYSBxdWUgbGEgbWlkYSByZXF1ZXJpZGEgKGNvdGEgc3VwZXJpb3IpIMOpcyBkICVMZE1CLCBwZXLDsiBsYSAiCisibWlkYSBtw6B4aW1hIGRlIGxhIGltYXRnZSDDqXMgJXVNQi4gRXMgcG9kcmlhIHNvcnRpciBwcmVtYXR1cmFtZW50LlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiUydlc3TDoCBpbmNsb2VudDogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGlyZWN0b3J5IGRhdGE6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJEYWRlcyBkZWwgZGlyZWN0b3JpOiAlZCBvY3RldHNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICJUb3Q6ICVkIGtpbG9vY3RldHNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJTw7pwZXIgYmxvYzogJWQgb2N0ZXRzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICJDUkM6ICV4XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UgYWxsb2NhdGVkIGZvciBST00gaW1hZ2UgKCVsbGQgYWxsb2NhdGVkLCAlenUgdXNlZClcbiIKK21zZ3N0ciAibm8gaGkgaGEgcHJvdSBlc3BhaSBwZXIgYSBsYSBpbWF0Z2UgUk9NIChhc3NpZ25hdHMgJUxkLCBlbXByYXRzICVkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTMzCittc2dpZCAiUk9NIGltYWdlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJPTSBpbWFnZSB3cml0ZSBmYWlsZWQgKCV6ZCAlemQpXG4iCittc2dzdHIgIk5vIMOpcyBwb3NzaWJsZSBlc2NyaXVyZSBsYSBpbWF0Z2UgUk9NICglZCAlZClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlbmFtZXMgdHJ1bmNhdGVkIHRvIDI1NSBieXRlcy5cbiIKK21zZ3N0ciAiYXbDrXM6IGVscyBub21zIGRlIGZpdHhlciBlcyB0cnVucXVlbiBhIDI1NSBvY3RldHMuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iCittc2dzdHIgImF2w61zOiBzJ2hhbiBzYWx0YXQgZml0eGVycyBkZWd1dCBhIGVycm9ycy5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIHNpemVzIHRydW5jYXRlZCB0byAlbHVNQiAobWludXMgMSBieXRlKS5cbiIKK21zZ3N0ciAiYXbDrXM6IGxhIG1pZGEgZGVscyBmaXR4ZXJzIGVzIHRydW5jYSBhICVsdU1CIChtZW55cyAxIG9jdGV0KS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogdWlkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisiYXbDrXM6IGVscyBpZGVudGlmaWNhZG9ycyBkJ3VzdWFyaSAodWlkKSBlcyB0cnVucXVlbiBhICV1IGJpdHMsICAocG9kcmlhIHNlciAiCisidW4gcHJvYmxlbWEgZGUgc2VndXJldGF0KS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ2lkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisiYXbDrXM6IGVscyBpZGVudGlmaWNhZG9ycyBkZSBncnVwIChnaWQpIGVzIHRydW5xdWVuIGEgJXUgYml0cy4gIChQb2RyaWEgc2VyICIKKyJ1biBwcm9ibGVtYSBkZSBzZWd1cmV0YXQpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorIkFWw41TOiBlbHMgbm9tYnJlcyBkZSBkaXNwb3NpdGl1IGVzIHRydW5xdWVuIGEgJXUgYml0cy4gw4lzIGdhaXJlYsOpIHNlZ3VyIHF1ZVxuIgorImFpeMOyIHByb3ZvY2Fyw6AgcXVlIGFsZ3VucyBkaXNwb3NpdGl1cyBkZSBmaXR4ZXJzIHNpZ3VpbiBlcnJvbmlzLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstYyB8IC1sIGZpbGVuYW1lXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICJGb3JtYSBkJ8O6czogJXMgWy1jIHwgLWwgbm9tX2ZpdHhlcl0gWy1uWFhdIFstaVhYXSAvZGV2L25vbSBbYmxvY3NdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiJXMgamEgZXN0w6AgbXVudGF0OyBubyBzJ2hpIGNyZWFyw6AgY2FwIHNpc3RlbWEgZGUgZml0eGVycy4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGNlcmNhciBlbCBibG9jIGQnYXJyZW5jYWRhIGEgd3JpdGVfdGFibGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTAKK21zZ2lkICJ1bmFibGUgdG8gY2xlYXIgYm9vdCBzZWN0b3IiCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgbmV0ZWphciBlbCBzZWN0b3IgZCdhcnJlbmNhZGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MgorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBjZXJjYXIgYSB3cml0ZV90YWJsZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgZXNjcml1cmUgZWwgbWFwYSBkZWxzIG5vZGVzIGQnaWRlbnRpZmljYWNpw7MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBlc2NyaXVyZSBlbCBtYXBhIGRlIHpvbmVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDAKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGVzY3JpdXJlIGVscyBub2RlcyBkJ2lkZW50aWZpY2FjacOzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgZXNjcml1cmUgYSB3cml0ZV9ibG9jayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjE3IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjI5MQorIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MzQwCittc2dpZCAidG9vIG1hbnkgYmFkIGJsb2NrcyIKK21zZ3N0ciAiaGkgaGEgbWFzc2EgYmxvY3MgaW5jb3JyZWN0ZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgIm5vIGhpIGhhIHByb3UgYmxvY3MgY29ycmVjdGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDAKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVycyBmb3IgbWFwcyIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBhc3NpZ25hciBtZW3DsnJpYSBpbnRlcm3DqGRpYSBwZXIgYWxzIG1hcGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgIiIKKyJubyBzJ2hhIHBvZ3V0IGFzc2lnbmFyIG1lbcOycmlhIGludGVybcOoZGlhIHBlciBhbHMgbm9kZXMgZCdpZGVudGlmaWNhY2nDsyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJNYXhzaXplPSVsZFxuIgorIlxuIgorbXNnc3RyICIiCisiTWlkYV9tw6B4Lj0lbGRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDY5Cittc2dpZCAic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGNlcmNhciBkdXJhbnQgbGEgY29tcHJvdmFjacOzIGRlIGJsb2NzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2VpcmQgdmFsdWVzIGluIGRvX2NoZWNrOiBwcm9iYWJseSBidWdzXG4iCittc2dzdHIgIkhpIGhhIHZhbG9ycyBlc3RyYW55cyBhIGRvX2NoZWNrOiBwcm9iYWJsZW1lbnQgaGkgaGEgZXJyb3JzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUwOCBkaXNrLXV0aWxzL21rc3dhcC5jOjMxNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBjZXJjYXIgYSBjaGVja19ibG9ja3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUxNworbXNnaWQgImJhZCBibG9ja3MgYmVmb3JlIGRhdGEtYXJlYTogY2Fubm90IG1ha2UgZnMiCittc2dzdHIgIiIKKyJibG9jcyBpbmNvcnJlY3RlcyBhYmFucyBkZSBsJ8OgcmVhIGRlIGRhZGVzOiBubyBzJ2hhIHBvZ3V0IGNyZWFyIGVsIHNpc3RlbWEgIgorImRlIGZpdHhlcnMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyMyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgYmFkIGJsb2Nrc1xuIgorbXNnc3RyICIlZCBibG9jcyBpbmNvcnJlY3Rlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAidW4gYmxvYyBpbmNvcnJlY3RlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzNQorbXNnaWQgImNhbid0IG9wZW4gZmlsZSBvZiBiYWQgYmxvY2tzIgorbXNnc3RyICJubyBlcyBwb3Qgb2JyaXIgZWwgZml0eGVyIGRlIGJsb2NzIGluY29ycmVjdGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkYmxvY2sgbnVtYmVyIGlucHV0IGVycm9yIG9uIGxpbmUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDAKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IHJlYWQgYmFkYmxvY2tzIGZpbGUiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgbGxlZ2lyIGxhIHVuaXRhdCBkZSBkaXNjIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgImVycm9yIGEgc3RydG9sOiBubyBzJ2hhbiBlc3BlY2lmaWNhdCBlbCBub21icmUgZGUgYmxvY3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAibm8gZXMgcG90IGZlciBzdGF0IHBlciBhICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIm5vIGVzIHBvdCBvYnJpciAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIKK21zZ3N0ciAibm8gZXMgcG90IG9idGVuaXIgbGEgbWlkYSBkZSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrIHNpemUgc21hbGxlciB0aGFuIHBoeXNpY2FsIHNlY3RvciBzaXplIG9mICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzaXplIG9mICVzIgorbXNnc3RyICJubyBlcyBwb3Qgb2J0ZW5pciBsYSBtaWRhIGRlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICJubyBzJ2ludGVudGFyw6AgY3JlYXIgY2FwIHNpc3RlbWEgZGUgZml0eGVycyBhICclcyciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2NQorIywgZnV6enkKK21zZ2lkICJudW1iZXIgb2YgYmxvY2tzIHRvbyBzbWFsbCIKK21zZ3N0ciAiTm9tYnJlIGRlIHNlY3RvcnMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWRcbiIKK21zZ3N0ciAiTGEgbWlkYSBkZSBsYSBww6BnaW5hIHF1ZSBoYSBlc3BlY2lmaWNhdCBsJ3VzdWFyaSwgJWQsIG5vIMOpcyBjb3JyZWN0ZVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiIgorIlMnZXN0w6AgZmVudCBzZXJ2aXIgbGEgbWlkYSBkZSBsYSBww6BnaW5hICVkIGVzcGVjaWZpY2FkYSBwZXIgbCd1c3VhcmksIGVuICIKKyJjb21wdGVzIGRlbHMgdmFsb3JzIGRlbCBzaXN0ZW1hICVkLyVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBzd2FwIGhlYWRlciBzaXplLCBubyBsYWJlbCB3cml0dGVuLlxuIgorbXNnc3RyICIiCisiTGEgbWlkYSBkZSBsYSBjYXDDp2FsZXJhIGQnaW50ZXJjYW52aSDDqXMgZXJyw7JuaWEsIG5vIHMnaGEgZXNjcml0IGNhcCAiCisiZXRpcXVldGEuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxhYmVsIHdhcyB0cnVuY2F0ZWQuXG4iCittc2dzdHIgIlMnaGEgdHJ1bmNhdCBsJ2V0aXF1ZXRhLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICJzZW5zZSBldGlxdWV0YSwgIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1dWlkXG4iCittc2dzdHIgInNlbnNlIHV1aWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyODMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKyJGb3JtYSBkJ8O6czogJXMgWy1jXSBbLXYwfC12MV0gWy1wTUlEQVDDgEddIFstTCBldGlxdWV0YV0gL2Rldi9fbm9tXyBbYmxvY3NdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICJoaSBoYSBtYXNzYSBww6BnaW5lcyBpbmNvcnJlY3RlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMTAgbWlzYy11dGlscy9sb29rLmM6MTgyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExNzkKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMTYgdGV4dC11dGlscy9tb3JlLmM6MjAyNworbXNnaWQgIk91dCBvZiBtZW1vcnkiCittc2dzdHIgIlMnaGEgZXNnb3RhdCBsYSBtZW3DsnJpYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBwYWdlXG4iCittc2dzdHIgInVuYSBww6BnaW5hIGluY29ycmVjdGFcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IGJhZCBwYWdlc1xuIgorbXNnc3RyICIlbHUgcMOgZ2luZXMgaW5jb3JyZWN0ZXNcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MDIgZGlzay11dGlscy9ta3N3YXAuYzo0MzkgZGlzay11dGlscy9ta3N3YXAuYzo2NTkKK21zZ2lkICJ1bmFibGUgdG8gcmV3aW5kIHN3YXAtZGV2aWNlIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IHJlYm9iaW5hciBlbCBkaXNwb3NpdGl1IGQnaW50ZXJjYW52aSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIG5ldyBsaWJibGtpZCBwcm9iZSIKK21zZ3N0ciAiIgorIm5vIHMnaGEgcG9ndXQgYXNzaWduYXIgbWVtw7JyaWEgaW50ZXJtw6hkaWEgcGVyIGFscyBub2RlcyBkJ2lkZW50aWZpY2FjacOzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgbmV0ZWphciBlbCBzZWN0b3IgZCdhcnJlbmNhZGEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogd2FybmluZzogZG9uJ3QgZXJhc2UgYm9vdGJpdHMgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgICglcyBwYXJ0aXRpb24gdGFibGUgZGV0ZWN0ZWQpLiAiCittc2dzdHIgIiAgIHAgICBpbXByaW1laXggbGEgdGF1bGEgZGUgcGFydGljaW9ucyBCU0QiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiICAgcyAgIG1vc3RyYSB0b3RlcyBsZXMgZXRpcXVldGVzIGRlbCBkaXNjIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoY29tcGlsZWQgd2l0aG91dCBsaWJibGtpZCkuICIKK21zZ3N0ciAiICAgcyAgIG1vc3RyYSB0b3RlcyBsZXMgZXRpcXVldGVzIGRlbCBkaXNjIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjUyNAorIywgYy1mb3JtYXQKK21zZ2lkICIlMSRzOiB3YXJuaW5nOiBpZ25vcmUgLVUgKFVVSURzIGFyZSB1bnN1cHBvcnRlZCBieSAlMSRzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZG9lcyBub3Qgc3VwcG9ydCBzd2Fwc3BhY2UgdmVyc2lvbiAlZC5cbiIKK21zZ3N0ciAiJXM6IGVycm9yOiB2ZXJzacOzIGRlc2NvbmVndWRhICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQ4CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBVVUlEIHBhcnNpbmcgZmFpbGVkIgorbXNnc3RyICIiCisiXG4iCisiUydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiB0YW5jYXIgZWwgZml0eGVyXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIKK21zZ3N0ciAiJXM6IGVycm9yOiBubyBlcyBwb3QgZXNwZWNpZmljYXIgbCdlc3BhaSBkJ2ludGVyY2FudmkgZW5sbG9jP1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBlcnJvcjogbGEgbWlkYSAlbHUgZXMgbcOpcyBncmFuIHF1ZSBhIGxhIG1pZGEgZGVsIGRpc3Bvc2l0aXUgJWx1XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHN3YXAgYXJlYSBuZWVkcyB0byBiZSBhdCBsZWFzdCAlbGQgS2lCXG4iCittc2dzdHIgIiVzOiBlcnJvcjogbCdlc3BhaSBkJ2ludGVyY2FudmkgaGEgZGUgdGVuaXIgY29tIGEgbcOtbmltICVsZGtCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd2FybmluZzogdHJ1bmNhdGluZyBzd2FwIGFyZWEgdG8gJWxsdSBLaUJcbiIKK21zZ3N0ciAiJXM6IGF2w61zOiBsJ2VzcGFpIGQnaW50ZXJjYW52aSBzJ2hhIHRydW5jYXQgYSAlbGRrQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiB3aWxsIG5vdCB0cnkgdG8gbWFrZSBzd2FwZGV2aWNlIG9uICclcydcbiIKK21zZ3N0ciAiTm8gcydpbnRlbnRhcsOgIGNyZWFyIGNhcCBkaXNwb3NpdGl1IGQnaW50ZXJjYW52aSBhICclcyciCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6ICVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2Ugc3dhcHNwYWNlLlxuIgorbXNnc3RyICIlcyBqYSBlc3TDoCBtdW50YXQ7IG5vIHMnaGkgY3JlYXLDoCBjYXAgc2lzdGVtYSBkZSBmaXR4ZXJzLiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NDgKK21zZ2lkICJVbmFibGUgdG8gc2V0IHVwIHN3YXAtc3BhY2U6IHVucmVhZGFibGUiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgY29uZmlndXJhciBsJ2VzcGFpIGQnaW50ZXJjYW52aTogbm8gZXMgcG90IGxsZWdpciIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIlMnZXN0w6AgY29uZmlndXJhbnQgbCdlc3BhaSBkJ2ludGVyY2FudmkgdmVyc2nDsyAlZCwgbWlkYSA9ICVsbHUga0JcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBlc2NyaXVyZSBsYSBww6BnaW5hIGRlIGxhIHNpZ25hdHVyYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NzMKK21zZ2lkICJmc3luYyBmYWlsZWQiCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgZmVyIGZzeW5jIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBtYXRjaHBhdGhjb24oKSIKK21zZ3N0ciAibm8gZXMgcG90IGZlciBzdGF0IHBlciBhICVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgZXNjcml1cmUgZWxzIG5vZGVzIGQnaWRlbnRpZmljYWNpw7MiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njk1Cittc2dpZCAiY291bGRuJ3QgY29tcHV0ZSBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo3MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCB0b3JuYXIgYSBub21lbmFyICVzIHBlciAlczogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiAgJXMgIgorbXNnc3RyICJGb3JtYSBkJ8O6czpcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGJsb2NhciBlbCBmaXR4ZXIgZGUgYmxvY2F0ICVzOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgYmxvY2sgZGV2XG4iCittc2dzdHIgIkF2w61zOiAlcyBubyDDqXMgdW4gZGlzcG9zaXRpdSBkZSBibG9jc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gbWFzdGVyIHJhdyBkZXZpY2UgJyIKK21zZ3N0ciAibm8gZXMgcG90IGZlciBcInN0YXRcIiBhbCBkaXNwb3NpdGl1ICVzIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJubyBlcyBwb3QgZmVyIFwic3RhdFwiIGFsIGRpc3Bvc2l0aXUgJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIvZGV2LyVzOiBubyDDqXMgdW4gZGlzcG9zaXRpdSBkZSBjYXLDoGN0ZXIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSByYXcgZGV2XG4iCittc2dzdHIgIiVzIG5vIGVzIHVuIGRpc3Bvc2l0aXUgZGUgYmxvYyBlc3BlY2lhbCIKKworIzogZGlzay11dGlscy9yYXcuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcXVlcnlpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNDEgZGlzay11dGlscy9yYXcuYzoyNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmF3JWQ6XHRib3VuZCB0byBtYWpvciAlZCwgbWlub3IgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igc2V0dGluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBhdHVyYXIgZWwgc2VydmVpOiBcIiVzXCIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM3OCBmZGlzay9jZmRpc2suYzoyMDgzCittc2dpZCAiVW51c2FibGUiCittc2dzdHIgIkludXRpbGl0emFibGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAiRXNwYWkgbGxpdXJlIgorCisjOiBmZGlzay9jZmRpc2suYzozODMKK21zZ2lkICJMaW51eCBleHQyIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9jZmRpc2suYzozODUKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICJMaW51eCBleHQzIgorCisjOiBmZGlzay9jZmRpc2suYzozODcKK21zZ2lkICJMaW51eCBYRlMiCittc2dzdHIgIkxpbnV4IFhGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBKRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIkVsIGRpc2MgcydoYSBtb2RpZmljYXQuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIkFycmVucXVldSBkZSBub3UgZWwgc2lzdGVtYSBwZXIgYSBhc3NlZ3VyYXItdm9zIGRlIHF1ZSBsYSB0YXVsYSBkZSAiCisicGFydGljaW9ucyBzJ2hhIGFjdHVhbGl0emF0IGNvcnJlY3RhbWVudC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBVEVOQ0nDkzogU2kgaGV1IGNyZWF0IG8gbW9kaWZpY2F0IGFsZ3VuYSBwYXJ0aWNpw7NcbiIKKyJET1MgNi54LCBjb25zdWx0ZXUgbGEgcMOgZ2luYSBkZWwgbWFudWFsIGRlIGNmZGlza1xuIgorInBlciBhIGluZm9ybWFjacOzIGFkZGljaW9uYWwuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNgorbXNnaWQgIkZBVEFMIEVSUk9SIgorbXNnc3RyICJFUlJPUiBGQVRBTCIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE3Cittc2dpZCAiUHJlc3MgYW55IGtleSB0byBleGl0IGNmZGlzayIKK21zZ3N0ciAiUHJlbWV1IHVuYSB0ZWNsYSBwZXIgYSBzb3J0aXIgZGVsIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY0IGZkaXNrL2NmZGlzay5jOjU3MgorbXNnaWQgIkNhbm5vdCBzZWVrIG9uIGRpc2sgZHJpdmUiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgY2VyY2FyIGEgbGEgdW5pdGF0IGRlIGRpc2MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgbGxlZ2lyIGxhIHVuaXRhdCBkZSBkaXNjIgorCisjOiBmZGlzay9jZmRpc2suYzo1NzQKK21zZ2lkICJDYW5ub3Qgd3JpdGUgZGlzayBkcml2ZSIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBlc2NyaXVyZSBhIGxhIHVuaXRhdCBkZSBkaXNjIgorCisjOiBmZGlzay9jZmRpc2suYzo5MTcKK21zZ2lkICJUb28gbWFueSBwYXJ0aXRpb25zIgorbXNnc3RyICJIaSBoYSBtYXNzYSBwYXJ0aWNpb25zIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiTGEgcGFydGljacOzIGNvbWVuw6dhIGFiYW5zIGRlbCBzZWN0b3IgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTI3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJMYSBwYXJ0aWNpw7MgYWNhYmEgYWJhbnMgZGVsIHNlY3RvciAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJMYSBwYXJ0aWNpw7MgY29tZW7Dp2EgZGVzcHJlcyBkZSBsYSBmw60gZGVsIGRpc2MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJMYSBwYXJ0aWNpw7MgYWNhYmEgZGVzcHJlcyBkZSBsYSBmw60gZGVsIGRpc2MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk0MgorbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGluIHRoZSBmaW5hbCBwYXJ0aWFsIGN5bGluZGVyIgorbXNnc3RyICJMYSBwYXJ0aWNpw7MgYWNhYmEgZW4gbCfDumx0aW0gY2lsaW5kcmUgcGFyY2lhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY2Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG5vdCBpbiBkaXNrIG9yZGVyIgorbXNnc3RyICJsZXMgcGFydGljaW9ucyBsw7JnaXF1ZXMgbm8gZXN0YW4gZW4gbCdvcmRyZSBkZWwgZGlzYyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgImxlcyBwYXJ0aWNpb25zIGzDsmdpcXVlcyBzJ2VuY2F2YWxxdWVuIgorCisjOiBmZGlzay9jZmRpc2suYzo5NzMKK21zZ2lkICJlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAibGVzIHBhcnRpY2lvbnMgbMOyZ2lxdWVzIGFtcGxpYWRlcyBzJ2VuY2F2YWxxdWVuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICIiCisiISEhISBFcnJvciBpbnRlcm4gZW4gY3JlYXIgdW5hIHVuaXRhdCBsw7JnaWNhIHNlbnNlIHBhcnRpY2nDsyBlc3Rlc2EgISEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAxNCBmZGlzay9jZmRpc2suYzoxMDI2Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbG9naWNhbCBkcml2ZSBoZXJlIC0tIHdvdWxkIGNyZWF0ZSB0d28gZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorIk5vIHMnaGEgcG9ndXQgY3JlYXIgY2FwIHVuaXRhdCBsw7JnaWNhOyBlcyBjcmVhcmFuIGR1ZXMgcGFydGljaW9ucyBlc3Rlc2VzIgorCisjOiBmZGlzay9jZmRpc2suYzoxMTY4Cittc2dpZCAiTWVudSBpdGVtIHRvbyBsb25nLiBNZW51IG1heSBsb29rIG9kZC4iCittc2dzdHIgIkwnZWxlbWVudCBkZWwgbWVuw7ogw6lzIG1hc3NhIGxsYXJnOyBsJ2FzcGVjdGUgZGVsIG1lbsO6IHBvdCBzZXIgZXN0cmFueS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEyMjQKKyMsIGZ1enp5Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiRWwgbWVuw7ogbm8gdMOpIGRpcmVjY2nDszsgbCdvcGNpw7MgcGVyIGRlZmVjdGUgw6lzIGhvcml0em9udGFsLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM1NgorbXNnaWQgIklsbGVnYWwga2V5IgorbXNnc3RyICJUZWNsYSBubyBwZXJtZXNhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIlByZW1ldSB1bmEgdGVjbGEgcGVyIGEgY29udGludWFyIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NgorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIlByaW1hcnkiCittc2dzdHIgIlByaW3DoHJpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNgorbXNnaWQgIkNyZWF0ZSBhIG5ldyBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiQ3JlYSB1bmEgbm92YSBwYXJ0aWNpw7MgcHJpbcOgcmlhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgIkzDsmdpY2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIkNyZWEgdW5hIG5vdmEgcGFydGljacOzIGzDsmdpY2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MyBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiQ2FuY2VsIgorbXNnc3RyICJDYW5jZWzCt2xhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMKK21zZ2lkICJEb24ndCBjcmVhdGUgYSBwYXJ0aXRpb24iCittc2dzdHIgIk5vIGNyZcOvcyBjYXAgcGFydGljacOzIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiISEhIEVycm9yIGludGVybiAhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiTWlkYSAoZW4gTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIlByaW5jaXBpIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBiZWdpbm5pbmcgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiQWZlZ2VpeCBwYXJ0aWNpw7MgYWwgcHJpbmNpcGkgZGUgbCdlc3BhaSBsbGl1cmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJFbmQiCittc2dzdHIgIkZpbmFsIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBlbmQgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiQWZlZ2VpeCBwYXJ0aWNpw7MgYWwgZmluYWwgZGUgbCdlc3BhaSBsbGl1cmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICJObyBoaSBoYSBlc3BhaSBwZXIgY3JlYXIgbGEgcGFydGljacOzIGVzdGVzYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3NAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiTm8gaGkgaGEgY2FwIHRhdWxhIGRlIHBhcnRpY2lvbnMuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzgKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuIFN0YXJ0aW5nIHdpdGggemVybyB0YWJsZS4iCittc2dzdHIgIiIKKyJObyBoaSBoYSBjYXAgdGF1bGEgZGUgcGFydGljaW9ucy4gUydlc3TDoCBjb21lbsOnYW50IGFtYiB1bmEgdGF1bGEgYnVpZGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkxhIHNpZ25hdHVyYSBhIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMgw6lzIGVycsOybmlhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTkyCittc2dpZCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIKK21zZ3N0ciAiRXMgZGVzY29uZWl4IGVsIHRpcHVzIGRlIHRhdWxhIGRlIHBhcnRpY2lvbnMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTQKK21zZ2lkICJEbyB5b3Ugd2lzaCB0byBzdGFydCB3aXRoIGEgemVybyB0YWJsZSBbeS9OXSA/IgorbXNnc3RyICJEZXNpdGdldSBjb21lbsOnYXIgYW1iIHVuYSB0YXVsYSBidWlkYSBbcy9OXT8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NDIKK21zZ2lkICJZb3Ugc3BlY2lmaWVkIG1vcmUgY3lsaW5kZXJzIHRoYW4gZml0IG9uIGRpc2siCittc2dzdHIgIkhldSBlc3BlY2lmaWNhdCBtw6lzIGNpbGluZHJlcyBkZWxzIHF1ZSBjYWJlbiBhbCBkaXNjIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc0Cittc2dpZCAiQ2Fubm90IG9wZW4gZGlzayBkcml2ZSIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBvYnJpciBsYSB1bml0YXQgZGUgZGlzYyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NiBmZGlzay9jZmRpc2suYzoxODY1Cittc2dpZCAiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIKK21zZ3N0ciAiUydoYSBvYmVydCB1biBkaXNjIGRlIG5vbcOpcyBsZWN0dXJhOyBubyB0ZW5pdSBwZXJtw61zIHBlciBhIGVzY3JpdXJlLWhpIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgb2J0ZW5pciBsYSBtaWRhIGRlbCBkaXNjIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJQYXJ0aWNpw7MgcHJpbcOgcmlhIGluY29ycmVjdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3NjIKK21zZ2lkICJCYWQgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIlBhcnRpY2nDsyBsw7JnaWNhIGluY29ycmVjdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4NzcKK21zZ2lkICJXYXJuaW5nISEgIFRoaXMgbWF5IGRlc3Ryb3kgZGF0YSBvbiB5b3VyIGRpc2shIgorbXNnc3RyICJBdsOtczogQWl4w7IgcG90IGRlc3RydWlyIGxlcyBkYWRlcyBkZWwgZGlzYyEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODEKKyMsIGZ1enp5Cittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIiIKKyJFc3RldSBzZWd1ciBxdWUgdm9sZXUgZXNjcml1cmUgbGEgdGF1bGEgZGUgcGFydGljaW9ucyBhbCBkaXNjPyAoc8OtIG8gbm8pOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODcKK21zZ2lkICJubyIKK21zZ3N0ciAibm8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODkKK21zZ2lkICJEaWQgbm90IHdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJObyBzJ2hhIGVzY3JpdCBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zIGFsIGRpc2MiCisKKyMgRklYTUU6IMOpcyBwb3NzaWJsZSBxdWUgbm8gZXMgcHVnYSBpbnRyb2R1aXIgbCdhY2NlbnQuIGptCisjOiBmZGlzay9jZmRpc2suYzoxODkxCittc2dpZCAieWVzIgorbXNnc3RyICJzw60iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTUKK21zZ2lkICJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIKK21zZ3N0ciAiRXNjcml2aXUgwqtzw63CuyBvIMKrbm/CuyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIlMnZXN0w6AgZXNjcml2aW50IGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMgYWwgZGlzYy4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNCBmZGlzay9jZmRpc2suYzoxOTI4Cittc2dpZCAiV3JvdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIlMnaGEgZXNjcml0IGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMgZGVsIGRpc2MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKKyMsIGZ1enp5Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIlMnaGEgZXNjcml0IGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMsIHBlcsOyIG5vIHMnaGEgcG9ndXQgcmVsbGVnaXIuICBBcnJlbnF1ZXUgIgorImRlIG5vdSBwZXIgYWN0dWFsaXR6YXItbGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM2Cittc2dpZCAiTm8gcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJObyBoaSBoYSBwYXJ0aWNpb25zIHByaW3DoHJpZXMgbWFyY2FkZXMgY29tIGEgZCdhcnJlbmNhZGEuIExhIE1CUiBkZWwgRE9TIG5vICIKKyJwb2Ryw6AgYXJyZW5jYXIuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM4Cittc2dpZCAiIgorIk1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisiSGkgaGEgbcOpcyBkJ3VuYSBwYXJ0aWNpw7MgcHJpbcOgcmlhIG1hcmNhZGEgY29tIGEgZCdhcnJlbmNhZGEuIExhIE1CUiBkZWwgRE9TICIKKyJubyBwb2Ryw6AgYXJyZW5jYXIuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICIiCisiRXNjcml2aXUgZWwgbm9tIGRlbCBmaXR4ZXIgbyBwcmVtZXUgbGEgdGVjbGEgZGUgcmV0b3JuIHBlciB2aXN1YWxpdHphci1obyBlbiAiCisicGFudGFsbGE6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAwNSBmZGlzay9jZmRpc2suYzoyMTIzIGZkaXNrL2NmZGlzay5jOjIyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IG9icmlyIGVsIGZpdHhlciAnJXMnIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzXG4iCittc2dzdHIgIlVuaXRhdCBkZSBkaXNjOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNlY3RvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2VjdG9yICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgQ2FwICAgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ3Cittc2dpZCAiICAgUHJpL0xvZyIKK21zZ3N0ciAiICAgUHJpL0zDsmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgICBQcmltw6ByaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIgICBMw7JnaWNhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICJEZXNjb25lZ3V0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk1IGZkaXNrL2NmZGlzay5jOjI1NjMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5Cittc2dpZCAiQm9vdCIKK21zZ3N0ciAiQXJyZW5jYWRhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk5Cittc2dpZCAiTm9uZSIKK21zZ3N0ciAiQ2FwIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM0IGZkaXNrL2NmZGlzay5jOjIyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIFRhYmxlIGZvciAlc1xuIgorbXNnc3RyICJUYXVsYSBkZSBwYXJ0aWNpb25zIHBlciBhICVzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzYKK21zZ2lkICIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iCittc2dzdHIgIiAgICAgICAgICAgICAgIFByaW1lciAgICAgIMOabHRpbVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM3Cittc2dpZCAiIgorIiAjIFR5cGUgICAgICAgU2VjdG9yICAgICAgU2VjdG9yICAgT2Zmc2V0ICAgIExlbmd0aCAgIEZpbGVzeXN0ZW0gVHlwZSAoSUQpICIKKyJGbGFnXG4iCittc2dzdHIgIiIKKyIgIyBUaXB1cyAgICAgIFNlY3RvciAgICAgIFNlY3RvciAgIERlc3BsLiAgICBMb25naXR1ZCAgKElEKSBULiBkZSBzaXN0LiAiCisiZml0eC4gIFNlbnlhbC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzOAorbXNnaWQgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tLS0tLS1cbiIKKyJcbiIKKyItLSAtLS0tLSAgICAgIC0tLS0tLSAgICAgIC0tLS0tLSAgIC0tLS0tLSAgICAtLS0tLS0tLSAgIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIC0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIxCisjLCBmdXp6eQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiAgICAgICAgIC0tLUluaWNpLS0tICAgICAgICAtLS0tRmluYWwtLS0tICAgICAgSW5pY2kgICAgIE5vbWJyZSBkZVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCisjLCBmdXp6eQorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICIgIyBTZW55YWwgQ2FwIFNlYyAgQ2lsICAgSUQgIENhcCAgU2VjICBDaWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjMKKyMsIGZ1enp5Cittc2dpZCAiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCittc2dzdHIgIi0tIC0tLS0tLSAtLS0gLS0tICAtLS0gICAtLSAgLS0tICAtLS0gIC0tLSAgICAgLS0tLS0tICAgIC0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICJDcnVlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgIkltcHJpbWVpeCBsYSB0YXVsYSB1dGlsaXR6YW50IGVsIGZvcm1hdCBkZSBkYWRlcyBjcnVlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NyBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiU2VjdG9ycyIKK21zZ3N0ciAiU2VjdG9ycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIkltcHJpbWVpeCBsYSB0YXVsYSBvcmRlbmFkYSBwZXIgc2VjdG9ycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIlRhYmxlIgorbXNnc3RyICJUYXVsYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiSW1wcmltZWl4IG5vbcOpcyBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICJObyBpbXByaW1laXhlcyBsYSB0YXVsYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgIlBhbnRhbGxhIGQnYWp1ZGEgcGVyIGEgY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg5Cittc2dpZCAiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIgorbXNnc3RyICJBaXjDsiDDqXMgZWwgY2ZkaXNrLCB1biBwcm9ncmFtYSBwZXIgYSBsYSBwYXJ0aWNpw7MgZGUgZGlzY3MgYmFzYXQgZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgImN1cnNlcywgcXVlIHVzIHBlcm1ldCBjcmVhciwgc3VwcmltaXIgaSBtb2RpZmljYXIgcGFydGljaW9ucyBkZWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTEKK21zZ2lkICJkaXNrIGRyaXZlLiIKK21zZ3N0ciAiZGlzYyBkdXIuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkzCittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorbXNnc3RyICJDb3B5cmlnaHQgwqkgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiBpIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJPcmRyZSAgICAgICBTaWduaWZpY2F0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk2Cittc2dpZCAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCittc2dzdHIgIi0tLS0tICAgICAgIC0tLS0tLS0tLS0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTcKK21zZ2lkICIgIGIgICAgICAgICAgVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGIgICAgICAgICAgRml4YSBlbCBzZW55YWxhZG9yIGQnYXJyZW5jYWRhIGEgbGEgcGFydGljacOzIGFjdHVhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgZCAgICAgICAgICBEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGQgICAgICAgICAgU3VwcmltZWl4IGwnYWN0dWFsIHBhcnRpY2nDsyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgZyAgICAgICAgICBDaGFuZ2UgY3lsaW5kZXJzLCBoZWFkcywgc2VjdG9ycy1wZXItdHJhY2sgcGFyYW1ldGVycyIKK21zZ3N0ciAiIgorIiAgZyAgICAgICAgICBDYW52aWEgcGFyw6BtZXRyZXMgZGUgY2lsaW5kcmVzLCBjYXDDp2FscyBpIHNlY3RvcnMgcGVyIHBpc3RhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAwCittc2dpZCAiICAgICAgICAgICAgIFdBUk5JTkc6IFRoaXMgb3B0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgcGVvcGxlIHdobyIKK21zZ3N0ciAiICAgICAgICAgICAgIEF2w61zOiBBcXVlc3RhIG9wY2nDsyBub23DqXMgbCdoYXVyaWEgZCd1c2FyIGFxdWVsbHMgcXVpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAxCittc2dpZCAiICAgICAgICAgICAgIGtub3cgd2hhdCB0aGV5IGFyZSBkb2luZy4iCittc2dzdHIgIiAgICAgICAgICAgICBzYWJlbiBlbCBxdWUgZXMgZmFuLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMgorbXNnaWQgIiAgaCAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICBoICAgICAgICAgIEltcHJpbWVpeCBhcXVlc3RhIHBhbnRhbGxhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAzCittc2dpZCAiICBtICAgICAgICAgIE1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIG0gICAgICAgICAgTWF4aW1pdHphIGxhIHV0aWxpdHphY2nDsyBkZSBkaXNjIGRlIGxhIHBhcnRpY2nDsyBhY3R1YWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgICAgICAgICAgTm90ZTogVGhpcyBtYXkgbWFrZSB0aGUgcGFydGl0aW9uIGluY29tcGF0aWJsZSB3aXRoIgorbXNnc3RyICIgICAgICAgICAgICAgTm90YTogQXF1ZXN0YSBvcGNpw7MgcG90IGZlciBsYSBwYXJ0aWNpw7MgaW5jb21wYXRpYmxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICAgYW1iIERPUywgT1MvMi4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiAgbiAgICAgICAgICBDcmVhIHVuYSBub3ZhIHBhcnRpY2nDsyBkZXMgZGUgbCdlc3BhaSBsbGl1cmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIiCisiICBwICAgICAgICAgIEltcHJpbWVpeCBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zIGEgbGEgcGFudGFsbGEgbyBlbiB1biBmaXR4ZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDgKK21zZ2lkICIgICAgICAgICAgICAgVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IGZvcm1hdHMgZm9yIHRoZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAgICAgICAgICBIaSBoYSBkaXZlcnNvcyBmb3JtYXRzIGRpZmVyZW50cyBwZXIgYSBsYSBwYXJ0aWNpw7MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIGNob29zZSBmcm9tOiIKK21zZ3N0ciAiICAgICAgICAgICAgIGVudHJlIGVscyBxdWFscyBwb2RldSBlc2NvbGxpcjoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgICAgICAgICAgICAgciAtIFJhdyBkYXRhIChleGFjdGx5IHdoYXQgd291bGQgYmUgd3JpdHRlbiB0byBkaXNrKSIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHIgLSBEYWRlcyBjcnVlcyAoZXhhY3RhbWVudCBlbCBxdWUgcydlc2NyaXVyw6AgYWwgZGlzYykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHMgLSBUYXVsYSBvcmRlbmFkYSBwZXIgc2VjdG9ycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMgorbXNnaWQgIiAgICAgICAgICAgICAgICB0IC0gVGFibGUgaW4gcmF3IGZvcm1hdCIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHQgLSBUYXVsYSBlbiBmb3JtYXQgY3J1IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAgU3VydCBkZWwgcHJvZ3JhbWEgc2Vuc2UgZXNjcml1cmUgbGEgdGF1bGEgZGUgcGFydGljaW9ucyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNAorbXNnaWQgIiAgdCAgICAgICAgICBDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAiICB0ICAgICAgICAgIENhbnZpYSBlbCB0aXB1cyBkZWwgc2lzdGVtYSBkZSBmaXR4ZXJzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE1Cittc2dpZCAiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIKK21zZ3N0ciAiICB1ICAgICAgICAgIENhbnZpYSBsZXMgdW5pdGF0cyBkZSBsYSBtaWRhIHZpc3VhbGl0emF2YSBkZSBsYSBwYXJ0aWNpw7MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTYKK21zZ2lkICIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiCittc2dzdHIgIiAgICAgICAgICAgICBBbHRlcm5hIGVudHJlIE1CLCBzZWN0b3JzIGkgY2lsaW5kcmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE3Cittc2dpZCAiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiCittc2dzdHIgIiAgVyAgICAgICAgICBFc2NyaXUgbGEgdGF1bGEgZGUgcGFydGljaW9ucyBhbCBkaXNjIChXIGVuIG1hasO6c2N1bGEpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE4Cittc2dpZCAiICAgICAgICAgICAgIFNpbmNlIHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhIG9uIHRoZSBkaXNrLCB5b3UgbXVzdCIKK21zZ3N0ciAiICAgICAgICAgICAgIENvbSBxdWUgYWl4w7IgZGVzdHJ1aXLDoCBsZXMgZGFkZXMgZGVsIGRpc2MsIGhvIGhhdXJldSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICAgICAgICAgICBlaXRoZXIgY29uZmlybSBvciBkZW55IHRoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciIKK21zZ3N0ciAiICAgICAgICAgICAgIGRlIGNvbmZpcm1hciBvIGRlbmVnYXIgZXNjcml2aW50IMKrc8OtwrsgbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIgICAgICAgICAgICAgIMKrbm/CuyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMQorbXNnaWQgIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIgorbXNnc3RyICJGbGV0eGEgYW11bnQgRGVzcGxhw6dhIGVsIGN1cnNvciBhIGwnYW50ZXJpb3IgcGFydGljacOzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIyCittc2dpZCAiRG93biBBcnJvdyAgIE1vdmUgY3Vyc29yIHRvIHRoZSBuZXh0IHBhcnRpdGlvbiIKK21zZ3N0ciAiRmxldHhhIGF2YWxsIERlc3BsYcOnYSBlbCBjdXJzb3IgYSBsYSBzZWfDvGVudCBwYXJ0aWNpw7MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDdHJsLUwgICAgICAgUmVkaWJ1aXhhIGxhIHBhbnRhbGxhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI0Cittc2dpZCAiICA/ICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgID8gICAgICAgICAgSW1wcmltZWl4IGFxdWVzdGEgcGFudGFsbGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICJOb3RhOiBUb3RlcyBsZXMgb3JkcmVzIGVzIHBvZGVuIGVzY3JpdXJlIGVuIG1hasO6c2N1bGVzIG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgIm1pbsO6c2N1bGVzIChleGNlcHRlIFcgcGVyIGEgZXNjcml1cmUpLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMyCittc2dpZCAiQ3lsaW5kZXJzIgorbXNnc3RyICJDaWxpbmRyZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTgKK21zZ2lkICJDaGFuZ2UgY3lsaW5kZXIgZ2VvbWV0cnkiCittc2dzdHIgIkNhbnZpYSBsYSBnZW9tZXRyaWEgZGVscyBjaWxpbmRyZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMAorbXNnaWQgIkhlYWRzIgorbXNnc3RyICJDYXDDp2FscyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJDYW52aWEgbGEgZ2VvbWV0cmlhIGRlbHMgY2Fww6dhbHMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJDaGFuZ2Ugc2VjdG9yIGdlb21ldHJ5IgorbXNnc3RyICJDYW52aWEgbGEgZ2VvbWV0cmlhIGRlbHMgc2VjdG9ycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MQorbXNnaWQgIkRvbmUiCittc2dzdHIgIkZldCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MQorbXNnaWQgIkRvbmUgd2l0aCBjaGFuZ2luZyBnZW9tZXRyeSIKK21zZ3N0ciAiUydoYSBmaW5hbGl0emF0IGVsIGNhbnZpIGRlIGdlb21ldHJpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM3NAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzOiAiCittc2dzdHIgIkludHJvZHXDr3UgZWwgbm9tYnJlIGRlIGNpbGluZHJlczogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzg1IGZkaXNrL2NmZGlzay5jOjI5NTgKK21zZ2lkICJJbGxlZ2FsIGN5bGluZGVycyB2YWx1ZSIKK21zZ3N0ciAiVmFsb3IgZGVscyBjaWxpbmRyZXMgbm8gcGVybcOocyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAiSW50cm9kdcOvdSBlbCBub21icmUgZGUgY2Fww6dhbHM6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAiVmFsb3IgZGVscyBjYXDDp2FscyBubyBwZXJtw6hzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICJJbnRyb2R1w691IGVsIG5vbWJyZSBkZSBzZWN0b3JzIHBlciBwaXN0YTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDExIGZkaXNrL2NmZGlzay5jOjI5NzUKK21zZ2lkICJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiCittc2dzdHIgIlZhbG9yIGRlbHMgc2VjdG9ycyBubyBwZXJtw6hzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTE0Cittc2dpZCAiRW50ZXIgZmlsZXN5c3RlbSB0eXBlOiAiCittc2dzdHIgIkludHJvZHXDr3UgZWwgdGlwdXMgZGVsIHNpc3RlbWEgZGUgZml0eGVyczogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTMyCittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IgorbXNnc3RyICJObyBlcyBwb3QgY2FudmlhciBlbCB0aXB1cyBkZWwgc2lzdGVtYSBkZSBmaXR4ZXJzIGEgYnVpdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzNAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBleHRlbmRlZCIKK21zZ3N0ciAiTm8gZXMgcG90IGNhbnZpYXIgZWwgdGlwdXMgZGVsIHNpc3RlbWEgZGUgZml0eGVycyBhIGVzdMOocyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIkRlc2MuKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY4IGZkaXNrL2NmZGlzay5jOjI1NzEKK21zZ2lkICIsIE5DIgorbXNnc3RyICIsIE5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTc2IGZkaXNrL2NmZGlzay5jOjI1NzkKK21zZ2lkICJOQyIKK21zZ3N0ciAiTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODcKK21zZ2lkICJQcmkvTG9nIgorbXNnc3RyICJQcmkvTMOyZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAiRGVzY29uZWd1dCAoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXMiCittc2dzdHIgIlVuaXRhdCBkZSBkaXNjOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICJNaWRhOiAlbGxkIG9jdGV0cywgJWxsZCBNQiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgIk1pZGE6ICVsbGQgb2N0ZXRzLCAlbGxkLiVsbGQgR0IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGVhZHM6ICVkICAgU2VjdG9ycyBwZXIgVHJhY2s6ICVkICAgQ3lsaW5kZXJzOiAlbGxkIgorbXNnc3RyICJDYXDDp2FsczogJWQgICBTZWN0b3JzIHBlciBwaXN0YTogJWQgICBDaWxpbmRyZXM6ICVsbGQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIk5vbSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MgorbXNnaWQgIkZsYWdzIgorbXNnc3RyICJTZW55YWxhZG9ycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MworbXNnaWQgIlBhcnQgVHlwZSIKK21zZ3N0ciAiVGlwdXMgcGFydC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODQKK21zZ2lkICJGUyBUeXBlIgorbXNnc3RyICJUaXB1cyBTaXMuRml0eC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODUKK21zZ2lkICJbTGFiZWxdIgorbXNnc3RyICJbRXRpcXVldGFdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgICBTZWN0b3JzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg5Cittc2dpZCAiICBDeWxpbmRlcnMiCittc2dzdHIgIiAgQ2lsaW5kcmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkxCittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIiAgTWlkYSAoTUIpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkzCittc2dpZCAiICBTaXplIChHQikiCittc2dzdHIgIiAgTWlkYSAoR0IpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIkFycmVuY2FibGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIkNvbW11dGEgZWwgc2VueWFsYWRvciBkJ2FycmVuY2FkYSBkZSBsYSBwYXJ0aWNpw7MgYWN0dWFsIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJTdXByaW1laXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJTdXByaW1laXggbGEgcGFydGljacOzIGFjdHVhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkdlb21ldHJ5IgorbXNnc3RyICJHZW9tZXRyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJDaGFuZ2UgZGlzayBnZW9tZXRyeSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiQ2FudmlhIGxhIGdlb21ldHJpYSBkZWwgZGlzYyAobm9tw6lzIHVzdWFyaXMgZXhwZXJ0cykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJIZWxwIgorbXNnc3RyICJBanVkYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICJNb3N0cmEgbGEgcGFudGFsbGEgZCdhanVkYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIgorbXNnc3RyICJNYXhpbWl0emEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiIgorIk1heGltaXR6YSBsYSB1dGlsaXR6YWNpw7MgZGVsIGRpc2MgZW4gbGEgcGFydGljacOzIGFjdHVhbCAobm9tw6lzIHVzdWFyaXMgIgorImV4cGVydHMpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICJOb3ZhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICJDcmVhIHVuYSBub3ZhIHBhcnRpY2nDsyBkZXMgZGUgbCdlc3BhaSBsbGl1cmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiSW1wcmltZWl4IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICJJbXByaW1laXggbGEgdGF1bGEgZGUgcGFydGljaW9ucyBhIGxhIHBhbnRhbGxhIG8gZW4gdW4gZml0eGVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCIKK21zZ3N0ciAiU3VydCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJTdXJ0IGRlbCBwcm9ncmFtYSBzZW5zZSBlc2NyaXVyZSBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAiVGlwdXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSAoRE9TLCBMaW51eCwgT1MvMiBhbmQgc28gb24pIgorbXNnc3RyICJDYW52aWEgZWwgdGlwdXMgZGVsIHNpc3RlbWEgZGUgZml0eGVycyAoRE9TLCBMaW51eCwgT1MvMiwgZXRjLikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAiVW5pdGF0cyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIkNoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSAoTUIsIHNlY3QsIGN5bCkiCittc2dzdHIgIkNhbnZpYSBsZXMgdW5pdGF0cyBkZSBsYSBtaWRhIGRlIGxhIHBhcnRpY2nDsyAoTUIsIHNlY3RvcnMsIGNpbGluZHJlcykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSIKK21zZ3N0ciAiRXNjcml1IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhKSIKK21zZ3N0ciAiRXNjcml1IGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMgYWwgZGlzYyAoYWl4w7IgcG90IGRlc3RydWlyIGxlcyBkYWRlcykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MDUKK21zZ2lkICJDYW5ub3QgbWFrZSB0aGlzIHBhcnRpdGlvbiBib290YWJsZSIKK21zZ3N0ciAiQXF1ZXN0YSBwYXJ0aWNpw7Mgbm8gZXMgcG90IGZlciBhcnJlbmNhYmxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyODE1Cittc2dpZCAiQ2Fubm90IGRlbGV0ZSBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIk5vIGVzIHBvdCBzdXByaW1pciB1bmEgcGFydGljacOzIGJ1aWRhIgorCisjOiBmZGlzay9jZmRpc2suYzoyODM1IGZkaXNrL2NmZGlzay5jOjI4MzcKK21zZ2lkICJDYW5ub3QgbWF4aW1pemUgdGhpcyBwYXJ0aXRpb24iCittc2dzdHIgIk5vIGVzIHBvdCBtYXhpbWl0emFyIGFxdWVzdGEgcGFydGljacOzIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ1Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgdW51c2FibGUiCittc2dzdHIgIkFxdWVzdGEgcGFydGljacOzIMOpcyBpbnV0aWxpdHphYmxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ3Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgYWxyZWFkeSBpbiB1c2UiCittc2dzdHIgIkFxdWVzdGEgcGFydGljacOzIGphIGVzdMOgIGVuIMO6cyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJObyBlcyBwb3QgY2FudmlhciBlbCB0aXB1cyBkJ3VuYSBwYXJ0aWNpw7MgYnVpZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAiTm8gaGkgaGEgbcOpcyBwYXJ0aWNpb25zIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTA0Cittc2dpZCAiSWxsZWdhbCBjb21tYW5kIgorbXNnc3RyICJPcmRyZSBubyBwZXJtZXNhIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorbXNnc3RyICJDb3B5cmlnaHQgwqkgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiBpIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRm9ybWEgZCfDunM6XG4iCisiSW1wcmltZWl4IGxhIHZlcnNpw7M6XG4iCisiICAgICAgICAlcyAtdlxuIgorIkltcHJpbWVpeCBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3BjaW9uc10gZGlzcG9zaXRpdVxuIgorIsOacyBpbnRlcmFjdGl1OlxuIgorIiAgICAgICAgJXMgW29wY2lvbnNdIGRpc3Bvc2l0aXVcbiIKKyJcbiIKKyJPcGNpb25zOlxuIgorIi1hOiAgVXRpbGl0emEgbGEgZmxldHhhIGVuIGNvbXB0ZXMgZGVsIHJlc3NhbHRhdC5cbiIKKyItejogIENvbWVuw6dhIGFtYiB1bmEgdGF1bGEgZGUgcGFydGljaW9ucyBkZXMgZGUgemVybyBlbiBjb21wdGVzIGRlIGxsZWdpci1cbiIKKyIgICAgIGxhIGRlbCBkaXNjLlxuIgorIi1jIEMgLWggSCAtcyBTOiBNb2RpZmljYSBsYSBpZGVhIGRlbCBudWNsaSBzb2JyZSBlbCBub21icmUgZGUgY2lsaW5kcmVzLFxuIgorIiAgICAgICAgICAgICAgICBlbCBub21icmUgZGUgY2Fww6dhbHMgaSBlbCBub21icmUgZGUgc2VjdG9ycyBwZXIgcGlzdGEuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrYWl4bGFiZWwuYzoyNworbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgQUlYIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgTGludXggY2Fubm90IGhhbmRsZSB0aGVzZVxuIgorIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisiXHRhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCisiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorIlx0ICAgdG8gcmVtb3ZlIHRoZSBkaXNrIGxvZ2ljYWxseSBmcm9tIHlvdXIgQUlYXG4iCisiXHQgICBtYWNoaW5lLiAgKE90aGVyd2lzZSB5b3UgYmVjb21lIGFuIEFJWHBlcnQpLiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RW4gYXF1ZXN0IGRpc2MgdGVuaXUgdW5hIGV0aXF1ZXRhIEFJWCB2w6BsaWRhLlxuIgorIlx0QWN0dWFsbWVudCBMaW51eCBubyBwb3QgZ2VzdGlvbmFyIGFxdWVzdHMgZGlzY3MuXG4iCisiXHRUb3QgaSBhaXjDsiwgdGluZ3VldSBlbiBjb21wdGUgYWxndW5zIGNvbnNlbGxzOlxuIgorIlx0MS4gZmRpc2sgZW4gZGVzdHJ1aXLDoCBlbCBjb250aW5ndXQgZW4gZXNjcml1cmUuXG4iCisiXHQyLiBDb21wcm92ZXUgcXVlIGFxdWVzdCBkaXNjIG5vIHNpZ3VpIHVuYSBwYXJ0IHZpdGFsXG4iCisiXHQgICBkJ3VuIGdydXAgZGUgdm9sdW1zLiAoRW4gY2FzIGNvbnRyYXJpIHBvZHLDrWV1XG4iCisiXHQgICBlc2JvcnJhciBlbHMgYWx0cmVzIGRpc2NzLCBzaSBubyBlc3RhbiBkdXBsaWNhdHMuKVxuIgorIlx0My4gQWJhbnMgZCdlc2JvcnJhciBhcXVlc3Qgdm9sdW0gZsOtc2ljLCBlc2JvcnJldVxuIgorIlx0ICAgZWwgZGlzYyBsw7JnaWNhbWVudCBkZSBsYSBtw6BxdWluYSBBSVguXG4iCisiXHQgICAoTyBjb252ZXJ0aXUtdm9zIGVuIHVuIEFJWHBlcnQpLiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQlNEIGxhYmVsIGZvciBkZXZpY2U6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJFdGlxdWV0YSBCU0QgcGVyIGFsIGRpc3Bvc2l0aXU6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjggZmRpc2svZmRpc2suYzozOTQgZmRpc2svZmRpc2suYzo0MTMKKyM6IGZkaXNrL2ZkaXNrLmM6NDMxIGZkaXNrL2ZkaXNrLmM6NDM4IGZkaXNrL2ZkaXNrLmM6NDYxIGZkaXNrL2ZkaXNrLmM6NDc5CisjOiBmZGlzay9mZGlzay5jOjQ5NSBmZGlzay9mZGlzay5jOjUxMQorbXNnaWQgIkNvbW1hbmQgYWN0aW9uIgorbXNnc3RyICJBY2Npw7MgZGUgbCdvcmRyZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOQorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgZXNib3JyYSB1bmEgcGFydGljacOzIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMAorbXNnaWQgIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiCittc2dzdHIgIiAgIGUgICBlZGl0YSBkYWRlcyBkZSBsYSB1bml0YXQiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICBpbnN0YWzCt2xhIGVsIGNhcnJlZ2Fkb3IgZCdhcnJlbmNhZGEiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzIKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBmaWxlc3lzdGVtIHR5cGVzIgorbXNnc3RyICIgICBsICAgbGxpc3RhIGVscyB0aXB1cyBkZSBzaXN0ZW1lcyBkZSBmaXR4ZXJzIGNvbmVndXRzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMzIGZkaXNrL2ZkaXNrLmM6NDAwIGZkaXNrL2ZkaXNrLmM6NDE5CisjOiBmZGlzay9mZGlzay5jOjQzMiBmZGlzay9mZGlzay5jOjQ0NCBmZGlzay9mZGlzay5jOjQ2OSBmZGlzay9mZGlzay5jOjQ4NgorIzogZmRpc2svZmRpc2suYzo1MDIgZmRpc2svZmRpc2suYzo1MjAKK21zZ2lkICIgICBtICAgcHJpbnQgdGhpcyBtZW51IgorbXNnc3RyICIgICBtICAgaW1wcmltZWl4IGFxdWVzdCBtZW7DuiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNAorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIGFmZWdlaXggdW5hIG5vdmEgcGFydGljacOzIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNQorbXNnaWQgIiAgIHAgICBwcmludCBCU0QgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgaW1wcmltZWl4IGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMgQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM2IGZkaXNrL2ZkaXNrLmM6NDA0IGZkaXNrL2ZkaXNrLmM6NDIzCisjOiBmZGlzay9mZGlzay5jOjQzNCBmZGlzay9mZGlzay5jOjQ0OCBmZGlzay9mZGlzay5jOjQ3MSBmZGlzay9mZGlzay5jOjQ4OAorIzogZmRpc2svZmRpc2suYzo1MDQgZmRpc2svZmRpc2suYzo1MjIKK21zZ2lkICIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIgorbXNnc3RyICIgICBxICAgc3VydCBzZW5zZSBkZXNhciBlbHMgY2FudmlzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM3IGZkaXNrL2ZkaXNrLmM6NDcyIGZkaXNrL2ZkaXNrLmM6NDg5CisjOiBmZGlzay9mZGlzay5jOjUwNSBmZGlzay9mZGlzay5jOjUyMworbXNnaWQgIiAgIHIgICByZXR1cm4gdG8gbWFpbiBtZW51IgorbXNnc3RyICIgICByICAgdG9ybmEgYWwgbWVuw7ogcHJpbmNpcGFsIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM4Cittc2dpZCAiICAgcyAgIHNob3cgY29tcGxldGUgZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgbW9zdHJhIHRvdGVzIGxlcyBldGlxdWV0ZXMgZGVsIGRpc2MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzkKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3MgZmlsZXN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgIGNhbnZpYSBsJ2lkZW50aWZpY2Fkb3IgZGVsIHNpc3RlbWEgZGUgZml0eGVycyBkJ3VuYSBwYXJ0aWNpw7MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDAKK21zZ2lkICIgICB1ICAgY2hhbmdlIHVuaXRzIChjeWxpbmRlcnMvc2VjdG9ycykiCittc2dzdHIgIiAgIHUgICBjYW52aWEgbGVzIHVuaXRhdHMgKGNpbGluZHJlcy9zZWN0b3JzKSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgIGVzY3JpdSBsJ2V0aXF1ZXRhIGRlIGRpc2MgYWwgZGlzYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MworbXNnaWQgIiAgIHggICBsaW5rIEJTRCBwYXJ0aXRpb24gdG8gbm9uLUJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIHggICBlbmxsYcOnYSBsYSBwYXJ0aWNpw7MgQlNEIGEgdW5hIHBhcnRpY2nDsyBubyBCU0QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVzIGhhcyBpbnZhbGlkIHN0YXJ0aW5nIHNlY3RvciAwLlxuIgorbXNnc3RyICJMYSBwYXJ0aWNpw7MgJXMgbm8gw6lzIHbDoGxpZGEgcGVycXXDqCBjb21lbsOnYSBwZWwgc2VjdG9yIDAuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICJTJ2VzdMOgIGxsZWdpbnQgbCdldGlxdWV0YSBkZSBkaXNjIGRlICVzIGVuIGVsIHNlY3RvciAlZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAiTm8gaGkgaGEgY2FwIHBhcnRpY2nDsyAqQlNEIGVuICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjAzCittc2dpZCAiQlNEIGRpc2tsYWJlbCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJPcmRyZSBkJ2V0aXF1ZXRhIGRlIGRpc2MgQlNEIChtIHBlciBhIGwnYWp1ZGEpOiAiCisKKyMgUGFybGEgZCdldGlxdWV0ZXMsIHNlZ3VyYW1lbnQgw6lzIGZlbWVuw60KKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyODMgZmRpc2svZmRpc2suYzoyMzI4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzgKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3QgJXMiCittc2dzdHIgIlByaW1lcmEgJXMiCisKKyMgUGFybGEgZCdldGlxdWV0ZXMsIHNlZ3VyYW1lbnQgw6lzIGZlbWVuw60KKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICVzIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsiCittc2dzdHIgIsOabHRpbWEgJXMgbyArbWlkYSBvICttaWRhTSBvICttaWRhSyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlc1xuIgorbXNnc3RyICJ0aXB1czogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICJ0aXB1czogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgImRpc2M6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsYWJlbDogJS4qc1xuIgorbXNnc3RyICJldGlxdWV0YTogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAic2VueWFsYWRvcnM6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiBleHRyYcOvYmxlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiBlY2MiCittc2dzdHIgIiBlY2MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGJhZHNlY3QiCittc2dzdHIgIiBzZWN0b3IgZG9sZW50IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzL3NlY3RvcjogJWxkXG4iCittc2dzdHIgIm9jdGV0cyBwZXIgc2VjdG9yOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAic2VjdG9ycyBwZXIgcGlzdGE6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInBpc3RlcyBwZXIgY2lsaW5kcmU6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJzZWN0b3JzIHBlciBjaWxpbmRyZTogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiY2lsaW5kcmVzOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgInIucC5tLjogJWRcbiIKKworIyBGSVhNRQorIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnRlcmxlYXZlOiAlZFxuIgorbXNnc3RyICJlbnRyZWxsYcOnYXQ6ICVkXG4iCisKKyMgRklYTUUKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tza2V3OiAlZFxuIgorbXNnc3RyICJkZWNhbGF0Z2U6ICVkXG4iCisKKyMgRklYTUUKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJza2V3OiAlZFxuIgorbXNnc3RyICJkZWNhbGF0Z2UgZGVsIGNpbGluZHJlOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJjYW52aSBkZSBjYXDDp2FsOiAlbGRcdFx0IyBtaWzCt2xpc2Vnb25zXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlazogJWxkXHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJyZWNlcmNhIHBpc3RhIGEgcGlzdGE6ICVsZFx0IyBtaWxpc2Vnb25zXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgImRhZGVzIHVuaXRhdDogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgcGFydGljaW9uczpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAibsO6bSAgICAgaW5pY2kgICAgICAgZmluYWwgICAgbWlkYSAgICAgc2lzdC5maXR4LiBbZm1pZGEgYm1pZGEgICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiUydlc3TDoCBlc2NyaXZpbnQgbCdldGlxdWV0YSBkZSBkaXNjIGEgJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MTkgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjb250YWlucyBubyBkaXNrbGFiZWwuXG4iCittc2dzdHIgIiVzIG5vIGNvbnTDqSBjYXAgZXRpcXVldGEgZGUgZGlzYy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJEZXNpdGdldSBjcmVhciB1bmEgZXRpcXVldGEgZGUgZGlzYz8gKHkvbikgIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICJvY3RldHMvc2VjdG9yIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic2VjdG9ycy9waXN0YSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAicGlzdGVzL2NpbGluZHJlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NzQwIGZkaXNrL2ZkaXNrLmM6MTU5MgorIzogZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAiY3lsaW5kZXJzIgorbXNnc3RyICJjaWxpbmRyZXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJzZWN0b3JzL2NpbGluZHJlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgPD0gc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciAoZGVmYXVsdCkuXG4iCittc2dzdHIgIkhhIGRlIHNlciA8PSBzZWN0b3JzL3Bpc3RhICogcGlzdGVzL2NpbGluZHJlICh2YWxvciBwZXIgZGVmZWN0ZSkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODIKK21zZ2lkICJycG0iCittc2dzdHIgInIucC5tLiIKKworIyBGSVhNRQorIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MworbXNnaWQgImludGVybGVhdmUiCittc2dzdHIgImVudHJlbGxhw6dhdCIKKworIyBGSVhNRQorIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAiZGVjYWxhdGdlIGRlIGxlcyBwaXN0ZXMiCisKKyMgRklYTUUKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgImRlY2FsYXRnZSBkZWxzIGNpbGluZHJlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgImNhbnZpIGRlIGNhcMOnYWwiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODcKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrIgorbXNnc3RyICJjZXJjYSBwaXN0YSBhIHBpc3RhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCittc2dzdHIgIkNhcnJlZ2Fkb3I6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIkVsIGNhcnJlZ2Fkb3IgcydlbmNhdmFsY2EgYW1iIGwnZXRpcXVldGEgZGUgZGlzYy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iCittc2dzdHIgIlMnaGEgaW5zdGFswrdsYXQgZWwgY2FycmVnYWRvciBhICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAiUGFydGljacOzIChhLSVjKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIlMnaGEgY3JlYXQgZWwgbcOgeGltIG5vbWJyZSBkZSBwYXJ0aWNpb25zXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMuXG4iCittc2dzdHIgIkFxdWVzdGEgcGFydGljacOzIGphIGV4aXN0ZWl4LlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHRvbyBtYW55IHBhcnRpdGlvbnMgKCVkLCBtYXhpbXVtIGlzICVkKS5cbiIKK21zZ3N0ciAiQXbDrXM6IGhpIGhhIG1hc3NhIHBhcnRpY2lvbnMgKCVkLCBlbCBtw6B4aW0gc8OzbiAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTJ2VzdGFuIHNpbmNyb25pdHphbnQgZWxzIGRpc2NzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NgorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgZmRpc2sgW29wdGlvbnNdIDxkaXNrPiAgICBjaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisiIGZkaXNrIFtvcHRpb25zXSAtbCA8ZGlzaz4gbGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyIgZmRpc2sgLXMgPHBhcnRpdGlvbj4gICAgICBnaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1iIDxzaXplPiAgICAgICAgICAgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGhlbHBcbiIKKyIgLXUgPHNpemU+ICAgICAgICAgICAgICAgICBnaXZlIHNpemVzIGluIHNlY3RvcnMgaW5zdGVhZCBvZiBjeWxpbmRlcnNcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB2ZXJzaW9uXG4iCisiIC1DIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVyc1xuIgorIiAtSCA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBoZWFkc1xuIgorIiAtUyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFja1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgb2JyaXIgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgJXNcbiIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBsbGVnaXIgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNlZWsgb24gJXNcbiIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBjZXJjYXIgZW4gJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlICVzXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXNjcml1cmUgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXNcbiIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBleGVjdXRhciBpb2N0bCBCTEtHRVRTSVpFIGEgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgYXNzaWduYXIgbcOpcyBtZW3DsnJpYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NgorbXNnaWQgIkZhdGFsIGVycm9yXG4iCittc2dzdHIgIkVycm9yIGZhdGFsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgZXN0YWJsZWl4IHVuIHNlbnlhbGFkb3IgZGUgbm9tw6lzIGxlY3R1cmEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk2IGZkaXNrL2ZkaXNrLmM6NDQwCittc2dpZCAiICAgYiAgIGVkaXQgYnNkIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgYiAgIGVkaXRhIGwnZXRpcXVldGEgZGUgZGlzYyBic2QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiAgIGMgICBlc3RhYmxlaXggc2VueWFsYWRvciBkZSBtdW50YWJsZSIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgc3VwcmltZWl4IHVuYSBwYXJ0aWNpw7MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk5IGZkaXNrL2ZkaXNrLmM6NDE4IGZkaXNrL2ZkaXNrLmM6NDQzCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICBsICAgbGxpc3RhIGVscyB0aXB1cyBkZSBwYXJ0aWNpb25zIGNvbmVndWRlcyIKKworIzogZmRpc2svZmRpc2suYzo0MDEgZmRpc2svZmRpc2suYzo0MjAgZmRpc2svZmRpc2suYzo0NDUKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIGFmZWdlaXggdW5hIG5vdmEgcGFydGljacOzIgorCisjOiBmZGlzay9mZGlzay5jOjQwMiBmZGlzay9mZGlzay5jOjQyMSBmZGlzay9mZGlzay5jOjQzMyBmZGlzay9mZGlzay5jOjQ0NgorbXNnaWQgIiAgIG8gICBjcmVhdGUgYSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgbyAgIGNyZWEgdW5hIG5vdmEgdGF1bGEgZGUgcGFydGljaW9ucyBET1MgYnVpZGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorbXNnaWQgIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgaW1wcmltZWl4IGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgY3JlYSB1bmEgZXRpcXVldGEgZGUgZGlzYyBTdW4gbm92YSIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgY2FudmlhIGwnaWRlbnRpZmljYWRvciBkZWwgc2lzdGVtYSBkJ3VuYSBwYXJ0aWNpw7MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA3IGZkaXNrL2ZkaXNrLmM6NDI2IGZkaXNrL2ZkaXNrLmM6NDUxCittc2dpZCAiICAgdSAgIGNoYW5nZSBkaXNwbGF5L2VudHJ5IHVuaXRzIgorbXNnc3RyICIgICB1ICAgY2FudmlhIGxlcyB1bml0YXRzIGRlIHZpc3VhbGl0emFjacOzL2VudHJhZGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA4IGZkaXNrL2ZkaXNrLmM6NDI3IGZkaXNrL2ZkaXNrLmM6NDUyIGZkaXNrL2ZkaXNrLmM6NDc0CisjOiBmZGlzay9mZGlzay5jOjQ5MSBmZGlzay9mZGlzay5jOjUwNyBmZGlzay9mZGlzay5jOjUyNQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgdiAgIHZlcmlmaWNhIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA5IGZkaXNrL2ZkaXNrLmM6NDI4IGZkaXNrL2ZkaXNrLmM6NDUzIGZkaXNrL2ZkaXNrLmM6NDc1CisjOiBmZGlzay9mZGlzay5jOjQ5MiBmZGlzay9mZGlzay5jOjUwOCBmZGlzay9mZGlzay5jOjUyNgorbXNnaWQgIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IgorbXNnc3RyICIgICB3ICAgZXNjcml1IGxhIHRhdWxhIGFsIGRpc2MgaSBzdXJ0IgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgICB4ICAgZnVuY2lvbnMgYWRkaWNpb25hbHMgKG5vbcOpcyBleHBlcnRzKSIKKworIzogZmRpc2svZmRpc2suYzo0MTQKK21zZ2lkICIgICBhICAgc2VsZWN0IGJvb3RhYmxlIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYSAgIHNlbGVjY2lvbmEgbGEgcGFydGljacOzIGQnYXJyZW5jYWRhIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAgZWRpdGEgbCdlbnRyYWRhIGRlbCBmaXR4ZXIgZCdhcnJlbmNhZGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE2Cittc2dpZCAiICAgYyAgIHNlbGVjdCBzZ2kgc3dhcCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGMgICBzZWxlY2Npb25hIGxhIHBhcnRpY2nDsyBkJ2ludGVyY2Fudmkgc2dpIgorCisjOiBmZGlzay9mZGlzay5jOjQzOQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnIgorbXNnc3RyICIgICBhICAgZXN0YWJsZWl4IHVuIHNlbnlhbGFkb3IgZCdhcnJlbmNhZGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICAgYyAgIGVzdGFibGVpeCBlbCBzZW55YWxhZG9yIGRlIGNvbXBhdGliaWxpdGF0IGFtYiBET1MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYyCittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYSAgIGNhbnZpYSBlbCBub21icmUgZGUgY2lsaW5kcmVzIGFsdGVybmF0aXVzIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgIGNhbnZpYSBlbCBub21icmUgZGUgY2lsaW5kcmVzIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NCBmZGlzay9mZGlzay5jOjQ4MiBmZGlzay9mZGlzay5jOjQ5OCBmZGlzay9mZGlzay5jOjUxNAorbXNnaWQgIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZCAgIGltcHJpbWVpeCBsZXMgZGFkZXMgY3J1ZXMgYSBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAgY2FudmlhIGVsIG5vbWJyZSBkZSBzZWN0b3JzIGFkZGljaW9uYWxzIHBlciBjaWxpbmRyZSIKKworIzogZmRpc2svZmRpc2suYzo0NjYgZmRpc2svZmRpc2suYzo0ODUgZmRpc2svZmRpc2suYzo1MDEgZmRpc2svZmRpc2suYzo1MTgKK21zZ2lkICIgICBoICAgY2hhbmdlIG51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiICAgaCAgIGNhbnZpYSBlbCBub21icmUgZGUgY2Fww6dhbHMiCisKKyMgRklYTUUKKyM6IGZkaXNrL2ZkaXNrLmM6NDY3Cittc2dpZCAiICAgaSAgIGNoYW5nZSBpbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiICAgaSAgIGNhbnZpYSBlbCBmYWN0b3IgZCdlbnRyZWxsYcOnYXQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY4Cittc2dpZCAiICAgbyAgIGNoYW5nZSByb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiICAgbyAgIGNhbnZpYSB2ZWxvY2l0YXQgZGUgcm90YWNpw7MgKHIucC5tLikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDczIGZkaXNrL2ZkaXNrLmM6NDkwIGZkaXNrL2ZkaXNrLmM6NTA2IGZkaXNrL2ZkaXNrLmM6NTI0Cittc2dpZCAiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIKK21zZ3N0ciAiICAgcyAgIGNhbnZpYSBlbCBub21icmUgZGUgc2VjdG9ycyBwZXIgcGlzdGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIgICB5ICAgY2FudmlhIGVsIG5vbWJyZSBkZSBjaWxpbmRyZXMgZsOtc2ljcyIKKworIzogZmRpc2svZmRpc2suYzo0ODAgZmRpc2svZmRpc2suYzo0OTYgZmRpc2svZmRpc2suYzo1MTIKK21zZ2lkICIgICBiICAgbW92ZSBiZWdpbm5pbmcgb2YgZGF0YSBpbiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYiAgIGRlc3BsYcOnYSBsZXMgZGFkZXMgZCd1bmEgcGFydGljacOzIGEgbCdpbmljaSIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKK21zZ2lkICIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIgICBlICAgbGxpc3RhIGxlcyBwYXJ0aWNpb25zIGVzdGVzZXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDg0IGZkaXNrL2ZkaXNrLmM6NTAwIGZkaXNrL2ZkaXNrLmM6NTE3Cittc2dpZCAiICAgZyAgIGNyZWF0ZSBhbiBJUklYIChTR0kpIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZyAgIGNyZWEgdW5hIHRhdWxhIGRlIHBhcnRpY2lvbnMgSVJJWCAoU0dJKSIKKworIzogZmRpc2svZmRpc2suYzo1MTYKK21zZ2lkICIgICBmICAgZml4IHBhcnRpdGlvbiBvcmRlciIKK21zZ3N0ciAiICAgZiAgIGFycmVnbGEgbCdvcmRyZSBkZSBsZXMgcGFydGljaW9ucyIKKworIzogZmRpc2svZmRpc2suYzo1MTkKKyMsIGZ1enp5Cittc2dpZCAiICAgaSAgIGNoYW5nZSB0aGUgZGlzayBpZGVudGlmaWVyIgorbXNnc3RyICIgICB1ICAgY2FudmlhIGxlcyB1bml0YXRzIGRlIHZpc3VhbGl0emFjacOzL2VudHJhZGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IHNldCIKK21zZ3N0ciAiSGV1IGRlIGRlZmluaXIgZWxzIgorCisjOiBmZGlzay9mZGlzay5jOjczNgorbXNnaWQgImhlYWRzIgorbXNnc3RyICJjYXDDp2FscyIKKworIzogZmRpc2svZmRpc2suYzo3MzggZmRpc2svZmRpc2suYzoxNTkyIGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgInNlY3RvcnMiCittc2dzdHIgInNlY3RvcnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyVzLlxuIgorIllvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBleHRyYSBmdW5jdGlvbnMgbWVudS5cbiIKK21zZ3N0ciAiIgorIiVzJXMuXG4iCisiUG9kZXUgZmVyIGFpeMOyIGRlcyBkZWwgbWVuw7ogZGUgZnVuY2lvbnMgYWRkaWNpb25hbHMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiBpICIKKworIzogZmRpc2svZmRpc2suYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFRoZSBzaXplIG9mIHRoaXMgZGlzayBpcyAlZC4lZCBUQiAoJWxsdSBieXRlcykuXG4iCisiRE9TIHBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgY2FuIG5vdCBiZSB1c2VkIG9uIGRyaXZlcyBmb3Igdm9sdW1lc1xuIgorImxhcmdlciB0aGFuICglbGx1IGJ5dGVzKSBmb3IgJWQtYnl0ZSBzZWN0b3JzLiBVc2UgcGFydGVkKDEpIGFuZCBHVUlEIFxuIgorInBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgKEdQVCkuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBkZXZpY2UgcHJlc2VudHMgYSBsb2dpY2FsIHNlY3RvciBzaXplIHRoYXQgaXMgc21hbGxlciB0aGFuXG4iCisidGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLiBBbGlnbmluZyB0byBhIHBoeXNpY2FsIHNlY3RvciAob3Igb3B0aW1hbFxuIgorIkkvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG9cbiIKKyIgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG9cbiIKKyIgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IGN5bGluZGVycyBhcyBkaXNwbGF5IHVuaXRzIGFyZSBkZXByZWNhdGVkLiBVc2UgY29tbWFuZCAndScgdG9cbiIKKyIgICAgICAgICBjaGFuZ2UgdW5pdHMgdG8gc2VjdG9ycy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgxOQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgb2Zmc2V0IGluIHByaW1hcnkgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIkRlc3BsYcOnYW1lbnQgaW5jb3JyZWN0ZSBlbiBwYXJ0aWNpb25zIHByaW3DoHJpZXMgZXN0ZXNlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogb21pdHRpbmcgcGFydGl0aW9ucyBhZnRlciAjJWQuXG4iCisiVGhleSB3aWxsIGJlIGRlbGV0ZWQgaWYgeW91IHNhdmUgdGhpcyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKyJBdsOtczogcydlc3RhbiBvbWV0ZW50IGxlcyBwYXJ0aWNpb25zIHBvc3RlcmlvcnMgYSBsYSAjJWQuXG4iCisiUydlbGltaW5hcmFuIHNpIGRlc2V1IGFxdWVzdGEgdGF1bGEgZGUgcGFydGljaW9ucy5cbiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICIiCisiQXbDrXM6IGhpIGhhIHVuIHB1bnRlciBkJ2VubGxhw6cgYWRkaWNpb25hbCBhIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaWdub3JpbmcgZXh0cmEgZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiIgorIkF2w61zOiBzJ2VzdMOgIGlnbm9yYW50IGxlcyBkYWRlcyBhZGRpY2lvbmFscyBkZSBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvbWl0dGluZyBlbXB0eSBwYXJ0aXRpb24gKCVkKVxuIgorbXNnc3RyICJBdsOtczogcGFydGljacOzIGJ1aWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlMnZXN0w6AgY3JlYW50IHVuYSBldGlxdWV0YSBkZSBkaXNjIERPUyBub3ZhLiBFbHMgY2FudmlzIG5vbcOpc1xuIgorInJvbWFuZHJhbiBhIGxhIG1lbcOycmlhIGZpbnMgcXVlIGRlY2lkaXUgZXNjcml1cmUnbHMuIERlc3Byw6lzXG4iCisiZCdhcXVlc3RhIG9wZXJhY2nDsywgbCdhbnRlcmlvciBjb250aW5ndXQgbm8gZXMgcG9kcsOgIHJlY3VwZXJhci5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdGU6IHNlY3RvciBzaXplIGlzICVkIChub3QgJWQpXG4iCittc2dzdHIgIk5vdGE6IGxhIG1pZGEgZGVsIHNlY3RvciDDqXMgJWQgKG5vICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgbm90IGJlIGFibGUgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiTm8gcG9kcmV1IGVzY3JpdXJlIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMuXG4iCisKKyMgTk8gbm9tw6lzIGVzIHZhIGZlciB1bmEgdHJhZHVjY2nDsyBhIHBhcnRpciBkZSBsYSB2ZXJzacOzCisjIGVzcGFueW9sYSwgc2luw7MgcXVlIGEgbcOpcyBhIG3DqXMgZXMgdmEgZmVyIG1hbGFtZW50LgorIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKyJBcXVlc3QgZGlzYyB0w6kgdGFuIG3DoGdpYSBET1MgY29tIEJTRC5cbiIKKyJFbXByZXUgbCdvcmRyZSDCq2LCuyBwZXIgYW5hciBhbCBtb2RlIEJTRC5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisiRWwgZGlzcG9zaXRpdSBubyBjb250w6kgbmkgdGF1bGEgZGUgcGFydGljaW9ucyBET1MgdsOgbGlkYSwgbmkgY2FwIGV0aXF1ZXRhIGRlICIKKyJkaXNjIFN1biwgU0dJIG8gT1NGXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJJbnRlcm5hbCBlcnJvclxuIgorbXNnc3RyICJFcnJvciBpbnRlcm5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJTJ2VzdMOgIGlnbm9yYW50IGxhIHBhcnRpY2nDsyBlc3Rlc2EgYWRkaWNpb25hbCAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGludmFsaWQgZmxhZyAweCUwNHggb2YgcGFydGl0aW9uIHRhYmxlICVkIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHciCisiKHJpdGUpXG4iCittc2dzdHIgIiIKKyJBdsOtczogZWwgc2VueWFsYWRvciAweCUwNHggaW52w6BsaWQgZGUgbGEgdGF1bGEgZGUgcGFydGljaW9ucyAlZCBlcyBjb3JyZWdpcsOgICIKKyJhbWIgdyhlc2NyaXUpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorInMnaGEgb2J0aW5ndXQgRU9GIHRyZXMgdmVnYWRlcyAtIHMnZXN0w6Agc29ydGludC4uLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIkNvZGkgaGV4LiAoZXNjcml2aXUgTCBwZXIgdmV1cmUgbGEgbGxpc3RhIGRlIGNvZGlzKTogIgorCisjOiBmZGlzay9mZGlzay5jOjEzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCV1LSV1LCBkZWZhdWx0ICV1KTogIgorbXNnc3RyICIlcyAoJXUtJXUsIHZhbG9yIHBlciBkZWZlY3RlICV1KTogIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgc3VmZml4OiAnJXMnLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VwcG9ydGVkOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaUJ5dGUpLCBNICAoTWViaUJ5dGUpLCBHICAoR2liaUJ5dGUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGRlZmF1bHQgdmFsdWUgJXVcbiIKK21zZ3N0ciAiUydlc3TDoCB1dGlsaXR6YW50IGVsIHZhbG9yIHBlciBkZWZlY3RlICV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIkVsIHZhbG9yIGVzdMOgIGZvcmEgZGVsIHJhbmcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgIk5vbWJyZSBkZSBwYXJ0aWNpw7MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAiQXbDrXM6IGxhIHBhcnRpY2nDsyAlZCBubyB0w6kgdGlwdXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTUxIGZkaXNrL2ZkaXNrLmM6MTU3NworIywgYy1mb3JtYXQKK21zZ2lkICJTZWxlY3RlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiUydoYSBzZWxlY2Npb25hdCBsYSBwYXJ0aWNpw7MgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiRW5jYXJhIG5vIGhpIGhhIGNhcCBwYXJ0aWNpw7MgZGVmaW5pZGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgcHJpbWFyeSBwYXJ0aXRpb25zIGhhdmUgYmVlbiBkZWZpbmVkIGFscmVhZHkhXG4iCittc2dzdHIgIkphIHMnaGFuIGRlZmluaXQgdG90ZXMgbGVzIHBhcnRpY2lvbnMgcHJpbcOgcmllcy5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAiY3lsaW5kZXIiCittc2dzdHIgImNpbGluZHJlIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJzZWN0b3IiCittc2dzdHIgInNlY3RvciIKKworIzogZmRpc2svZmRpc2suYzoxNTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGRpc3BsYXkvZW50cnkgdW5pdHMgdG8gJXNcbiIKK21zZ3N0ciAiUydlc3TDoCBjYW52aWFudCBsZXMgdW5pdGF0cyBkZSB2aXN1YWxpdHphY2nDsy9lbnRyYWRhIGEgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiQXbDrXM6IGxhIHBhcnRpY2nDsyAlZCDDqXMgdW5hIHBhcnRpY2nDsyBlc3Rlc2FcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgc2V0XG4iCittc2dzdHIgIlMnaGEgZXN0YWJsZXJ0IGVsIHNlbnlhbGFkb3IgZGUgY29tcGF0aWJpbGl0YXQgYW1iIERPU1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBub3Qgc2V0XG4iCittc2dzdHIgIk5vIHMnaGEgZXN0YWJsZXJ0IGVsIHNlbnlhbGFkb3IgZGUgY29tcGF0aWJpbGl0YXQgYW1iIERPU1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiTGEgcGFydGljacOzICVkIGVuY2FyYSBubyBleGlzdGVpeC5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKyJFbCB0aXB1cyAwIHNpZ25pZmljYSBlc3BhaSBsbGl1cmUgcGVyIGEgbW9sdHMgc2lzdGVtZXNcbiIKKyIocGVyw7Igbm8gcGVyIGEgTGludXgpLiBObyDDqXMgYWNvbnNlbGxhYmxlIHRlbmlyXG4iCisicGFydGljaW9ucyBkZWwgdGlwdXMgMC4gTGVzIHBvZGV1IHN1cHJpbWlyIGFtYlxuIgorImwnb3JkcmUgwqtkwrsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTczNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGNhbm5vdCBjaGFuZ2UgYSBwYXJ0aXRpb24gaW50byBhbiBleHRlbmRlZCBvbmUgb3IgdmljZSB2ZXJzYVxuIgorIkRlbGV0ZSBpdCBmaXJzdC5cbiIKK21zZ3N0ciAiIgorIk5vIHBvZGV1IGNvbnZlcnRpciB1bmEgcGFydGljacOzIGEgZXN0ZXNhLCBvIGFsIHJldsOpcywgcHJpbWVyXG4iCisiY2FsIHF1ZSBsJ2VzYm9ycmV1LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiRXMgcmVjb21hbmEgZGVpeGFyIGxhIHBhcnRpY2nDsyAzIGNvbSBhIGRpc2MgY29tcGxldCAoNSksIGphXG4iCisicXVlIGFpeMOtIGhvIGVzcGVyYSBTdW5PUy9Tb2xhcmlzIGkgZmlucyBpIHRvdCDDqXMgYWRlcXVhdCBwZXIgYVxuIgorIkxpbnV4LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5IGFzIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImFuZCBwYXJ0aXRpb24gMTEgYXMgZW50aXJlIHZvbHVtZSAoNiksIGFzIElSSVggZXhwZWN0cyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVzIHJlY29tYW5hIGRlaXhhciBsYSBwYXJ0aWNpw7MgOSBjb20gYSBjYXDDp2FsZXJhIGRlIHZvbHVtICgwKVxuIgorImkgbGEgcGFydGljacOzIDExIGNvbSBhIHZvbHVtIGNvbXBsZXQgKDYpIGphIHF1ZSBJUklYIGFpeMOtIGhvXG4iCisiZXNwZXJhLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICJTJ2hhIGNhbnZpYXQgZWwgdGlwdXMgZGVsIHNpc3RlbWEgZGUgbGEgcGFydGljacOzICVkIHBlciAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICJTJ2hhIGNhbnZpYXQgZWwgdGlwdXMgZGVsIHNpc3RlbWEgZGUgbGEgcGFydGljacOzICVkIHBlciAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyNworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGJlZ2lubmluZ3MgKG5vbi1MaW51eD8pOlxuIgorbXNnc3RyICJMYSBwYXJ0aWNpw7MgJWQgdMOpIGRpZmVyZW50cyBjb21lbsOnYW1lbnRzIGbDrXNpY3MvbMOyZ2ljcyAobm8gTGludXg/KTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI5IGZkaXNrL2ZkaXNrLmM6MTgzNyBmZGlzay9mZGlzay5jOjE4NDYgZmRpc2svZmRpc2suYzoxODU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorbXNnc3RyICIgICAgIGbDrXNpYz0oJWQsICVkLCAlZCkgIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzAgZmRpc2svZmRpc2suYzoxODM4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImzDsmdpYz0oJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAiTGEgcGFydGljacOzICVkIHTDqSBkaWZlcmVudHMgZmluYWxzIGbDrXNpY3MvbMOyZ2ljczpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKK21zZ3N0ciAiTGEgcGFydGljacOzICVpIG5vIGNvbWVuw6dhIGVuIGVsIGzDrW1pdCBkZWwgY2lsaW5kcmU6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgMSlcbiIKK21zZ3N0ciAiaGEgZGUgc2VyICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJMYSBwYXJ0aWNpw7MgJWkgbm8gYWNhYmEgZW4gdW4gbMOtbWl0IGRlIGNpbGluZHJlLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsICVkKVxuIgorbXNnc3RyICJoYSBkZSBzZXIgKCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIHBoeXNpY2FsIHNlY3RvciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiTGEgcGFydGljacOzICVpIG5vIGNvbWVuw6dhIGVuIGVsIGzDrW1pdCBkZWwgY2lsaW5kcmU6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg3NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkIE1CLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNjICVzOiAlbGQgTUIsICVsbGQgb2N0ZXRzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzYyAlczogJWxkLiVsZCBHQiwgJWxsZCBvY3RldHNcbiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlZCBoZWFkcywgJWxsdSBzZWN0b3JzL3RyYWNrLCAlZCBjeWxpbmRlcnMiCittc2dzdHIgIiVkIGNhcMOnYWxzLCAlZCBzZWN0b3JzL3Bpc3RhLCAlZCBjaWxpbmRyZXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NworIywgYy1mb3JtYXQKK21zZ2lkICIsIHRvdGFsICVsbHUgc2VjdG9ycyIKK21zZ3N0ciAiLCB0b3RhbCAlbGx1IHNlY3RvcnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlVuaXRhdHMgPSAlcyBkZSAlZCAqICVkID0gJWQgb2N0ZXRzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6ICV1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICJtaWRhIGRlIG5vZGUgZCdpZGVudGlmaWNhY2nDsyBpbmNvcnJlY3RlIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlJlcyBhIGZlci4gTCdvcmRlbmFtZW50IGphIMOpcyBjb3JyZWN0ZS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEb25lLlxuIgorbXNnc3RyICIiCisiRmV0XG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisiQWl4w7Igbm8gc2VtYmxhIGNhcCB0YXVsYSBkZSBwYXJ0aWNpb25zXG4iCisiUHJvYmFibGVtZW50IGhldSBzZWxlY2Npb25hdCB1biBkaXNwb3NpdGl1IGluY29ycmVjdGUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgQXJyZW5jLiAgIEluaWNpICAgICAgICAgRmluYWwgICAgQmxvY3MgICAgSWQgIFNpc3RlbWFcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5OAorbXNnaWQgIkRldmljZSIKK21zZ3N0ciAiRGlzcG9zaXRpdSIKKworIzogZmRpc2svZmRpc2suYzoyMTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJQYXJ0aXRpb24gdGFibGUgZW50cmllcyBhcmUgbm90IGluIGRpc2sgb3JkZXJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxlcyBlbnRyYWRlcyBhIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMgbm8gZXN0YW4gZW4gbCdvcmRyZSBkZWwgZGlzY1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2MgJXM6ICVkIGNhcMOnYWxzLCAlZCBzZWN0b3JzLCAlZCBjaWxpbmRyZXNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICJOLiBJQSBDYXAgU2VjdCBDaWwgQ2FwIFNlY3QgQ2lsICAgICBJbmljaSAgICAgIE1pZGEgSURcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBjb250YWlucyBzZWN0b3IgMFxuIgorbXNnc3RyICJBdsOtczogbGEgcGFydGljacOzICVkIGNvbnTDqSBlbCBzZWN0b3IgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRpY2nDsyAlZDogZWwgY2Fww6dhbCAlZCBzdXBlcmEgZWwgbcOgeGltICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJQYXJ0aWNpw7MgJWQ6IGVsIHNlY3RvciAlZCBzdXBlcmEgZWwgbcOgeGltICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJQYXJ0aWNpw7MgJWQ6IGVsIGNpbGluZHJlICVkIHN1cGVyYSBlbCBtw6B4aW0gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogcHJldmlvdXMgc2VjdG9ycyAlZCBkaXNhZ3JlZXMgd2l0aCB0b3RhbCAlZFxuIgorbXNnc3RyICJQYXJ0aWNpw7MgJWQ6IHNlY3RvcnMgYW50ZXJpb3JzICVkIGRpZmVyZWl4ZW4gZGVsIHRvdGFsICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiQXbDrXM6IGluaWNpIGRlIGRhZGVzIGluY29ycmVjdGUgZW4gbGEgcGFydGljacOzICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgb3ZlcmxhcHMgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJBdsOtczogbGEgcGFydGljacOzICVkIGNhdmFsY2EgYW1iIGxhIHBhcnRpY2nDsyAlZC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBpcyBlbXB0eVxuIgorbXNnc3RyICJBdsOtczogbGEgcGFydGljacOzICVkIGVzdMOgIGJ1aWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1NgorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIkxhIHBhcnRpY2nDsyBsw7JnaWNhICVkIG5vIGVzdMOgIGludGVncmFkYSBlbiBsYSBwYXJ0aWNpw7MgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlbGx1IGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIkVsIHRvdGFsIGRlIHNlY3RvcnMgYXNzaWduYXRzICVkIHN1cGVyYSBlbCBtw6B4aW0gZGUgJWxsZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJlbWFpbmluZyAlbGxkIHVuYWxsb2NhdGVkICVkLWJ5dGUgc2VjdG9yc1xuIgorbXNnc3RyICIlbGxkIHNlY3RvcnMgbm8gYXNzaWduYXRzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjMwMSBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjIwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGlzIGFscmVhZHkgZGVmaW5lZC4gIERlbGV0ZSBpdCBiZWZvcmUgcmUtYWRkaW5nIGl0LlxuIgorbXNnc3RyICIiCisiTGEgcGFydGljacOzICVkIGphIGVzdMOgIGRlZmluaWRhLiBFc2JvcnJldS1sYSBhYmFucyBkZSB0b3JuYXItbGEgYSBhZmVnaXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVsbHUgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAiRWwgc2VjdG9yICVkIGphIGVzdMOgIGFzc2lnbmF0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBmcmVlIHNlY3RvcnMgYXZhaWxhYmxlXG4iCittc2dzdHIgIk5vIGhpIGhhIGNhcCBzZWN0b3IgbGxpdXJlIGRpc3BvbmlibGVcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJTEkcywgKyUyJHMgb3IgK3NpemV7SyxNLEd9IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBBSVggZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0QXF1ZXN0IGZkaXNrIG5vIHBvdCBnZXN0aW9uYXIgZXRpcXVldGVzIGRlIGRpc2MgQUlYLlxuIgorIlx0U2kgZGVzaXRnZXUgYWZlZ2lyIHBhcnRpY2lvbnMgRE9TLCBjcmVldSB1bmEgbm92YSB0YXVsYSBkZVxuIgorIlx0IHBhcnRpY2lvbnMgRE9TIChVc2V1IG8pLlxuIgorIlx0QXbDrXM6IEFpeMOyIGRlc3RydWlyw6AgZWwgY29udGluZ3V0IGFjdHVhbCBkZWwgZGlzYy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0QXF1ZXN0IGZkaXNrIG5vIHBvdCBnZXN0aW9uYXIgZXRpcXVldGVzIGRlIGRpc2MgQUlYLlxuIgorIlx0U2kgZGVzaXRnZXUgYWZlZ2lyIHBhcnRpY2lvbnMgRE9TLCBjcmVldSB1bmEgbm92YSB0YXVsYSBkZVxuIgorIlx0IHBhcnRpY2lvbnMgRE9TIChVc2V1IG8pLlxuIgorIlx0QXbDrXM6IEFpeMOyIGRlc3RydWlyw6AgZWwgY29udGluZ3V0IGFjdHVhbCBkZWwgZGlzYy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICJQcmltZXIgaGV1IGRlIHN1cHJpbWlyIGFsZ3VuYSBwYXJ0aWNpw7MgaSBhZmVnaXItbmUgdW5hIGQnZXN0ZXNhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgbG9naWNhbCBwYXJ0aXRpb25zIGFyZSBpbiB1c2VcbiIKK21zZ3N0ciAiUyd1c2VuIHRvdGVzIGxlcyBwYXJ0aWNpb25zIGzDsmdpcXVlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nIGEgcHJpbWFyeSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiUydlc3TDoCBhZmVnaW50IHVuYSBwYXJ0aWNpw7MgcHJpbcOgcmlhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29tbWFuZCBhY3Rpb25cbiIKKyIgICAlc1xuIgorIiAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KVxuIgorbXNnc3RyICIiCisiQWNjacOzIGRlIGwnb3JkcmVcbiIKKyIlc1xuIgorIiAgIHAgICBwYXJ0aWNpw7MgcHJpbcOgcmlhICgxLTQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIgorbXNnc3RyICJsICAgbMOyZ2ljYSAoNSBvIHN1cGVyaW9yKSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAgZXN0ZXNhIgorCisjOiBmZGlzay9mZGlzay5jOjI1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXJ0aXRpb24gbnVtYmVyIGZvciB0eXBlIGAlYydcbiIKK21zZ3N0ciAiTm9tYnJlIGRlIHBhcnRpY2nDsyBubyB2w6BsaWQgcGVyIGFsIHRpcHVzIGAlYydcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhXG4iCisiXG4iCittc2dzdHIgIiIKKyJTJ2hhIG1vZGlmaWNhdCBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJTJ2VzdMOgIGNyaWRhbnQgaW9jdGwoKSBwZXIgcmVsbGVnaXIgbGEgdGF1bGEgZGUgcGFydGljaW9ucy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyJUaGUga2VybmVsIHN0aWxsIHVzZXMgdGhlIG9sZCB0YWJsZS4gVGhlIG5ldyB0YWJsZSB3aWxsIGJlIHVzZWQgYXRcbiIKKyJ0aGUgbmV4dCByZWJvb3Qgb3IgYWZ0ZXIgeW91IHJ1biBwYXJ0cHJvYmUoOCkgb3Iga3BhcnR4KDgpXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBdsOtczogTm8gcydoYSBwb2d1dCByZWxsZWdpciBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zLCBzJ2hhIHByb2R1w690IGwnZXJyb3IgJSIKKyJkOiAlcy5cbiIKKyJFbCBudWNsaSBlbmNhcmEgdXNhIGwnYW50aWdhIHRhdWxhLlxuIgorIkxhIHRhdWxhIG5vdmEgcyd1c2Fyw6AgZGVzcHLDqXMgZCdhcnJlbmNhciBkZSBub3UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBdsOtczogU2kgaGV1IGNyZWF0IG8gbW9kaWZpY2F0IGFsZ3VuYSBwYXJ0aWNpw7NcbiIKKyJET1MgNi54LCBtaXJldSBsYSBww6BnaW5hIGRlbCBtYW51YWwgZGUgZmRpc2tcbiIKKyJwZXIgYSBpbmZvcm1hY2nDsyBhZGRpY2lvbmFsLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkVycm9yIGNsb3NpbmcgZmlsZVxuIgorbXNnc3RyICIiCisiXG4iCisiUydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiB0YW5jYXIgZWwgZml0eGVyXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICJTJ2VzdGFuIHNpbmNyb25pdHphbnQgZWxzIGRpc2NzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBubyBkYXRhIGFyZWFcbiIKK21zZ3N0ciAiTGEgcGFydGljacOzICVkIG5vIHTDqSBjYXAgw6ByZWEgZGUgZGFkZXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjU2Cittc2dpZCAiTmV3IGJlZ2lubmluZyBvZiBkYXRhIgorbXNnc3RyICJOb3UgY29tZW7Dp2FtZW50IGRlIGRhZGVzIgorCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiT3JkcmUgZCdleHBlcnQgKG0gcGVyIGEgb2J0ZW5pciBhanVkYSk6ICIKKworIzogZmRpc2svZmRpc2suYzoyNjg1Cittc2dpZCAiTnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiTm9tYnJlIGRlIGNpbGluZHJlcyIKKworIzogZmRpc2svZmRpc2suYzoyNzEwCittc2dpZCAiTnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICJOb21icmUgZGUgY2Fww6dhbHMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczNworbXNnaWQgIk51bWJlciBvZiBzZWN0b3JzIgorbXNnc3RyICJOb21icmUgZGUgc2VjdG9ycyIKKworIzogZmRpc2svZmRpc2suYzoyNzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHNldHRpbmcgc2VjdG9yIG9mZnNldCBmb3IgRE9TIGNvbXBhdGlibGl0eVxuIgorbXNnc3RyICIiCisiQXbDrXM6IHMnZXN0w6AgZXN0YWJsaW50IGVsIGRlc3BsYcOnYW1lbnQgZGVsIHNlY3RvciBwZXIgYSBsYSBjb21wYXRpYmlsaXRhdCAiCisiYW1iIERPU1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAiRWwgZGlzYyAlcyBubyBjb250w6kgdW5hIHRhdWxhIGRlIHBhcnRpY2lvbnMgdsOgbGlkYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiTm8gZXMgcG90IG9icmlyICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg1MCBmZGlzay9zZmRpc2suYzoyNjA4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIm5vIGVzIHBvdCBvYnJpciAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWM6IHVua25vd24gY29tbWFuZFxuIgorbXNnc3RyICIlYzogb3JkcmUgZGVzY29uZWd1ZGFcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICIiCisiQXF1ZXN0IG51Y2xpIHRyb2JhIGxhIG1pZGEgZGVsIHNlY3RvciBhdXRvbcOgdGlhbWVudDsgcydpZ25vcmFyw6AgbCdvcGNpw7MgLWJcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB0aGUgLWIgKHNldCBzZWN0b3Igc2l6ZSkgb3B0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggb25lIHNwZWNpZmllZCAiCisiZGV2aWNlXG4iCittc2dzdHIgIiIKKyJBdsOtczogbCdvcGNpw7MgLWIgKGVzdGFibGVpeCBsYSBtaWRhIGRlbCBzZWN0b3IpIHMnaGEgZCd1c2FyIGFtYiB1biAiCisiZGlzcG9zaXRpdSBlc3BlY8OtZmljXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBhbiBPU0YvMSBkaXNrbGFiZWwgb24gJXMsIGVudGVyaW5nIGRpc2tsYWJlbCBtb2RlLlxuIgorbXNnc3RyICIiCisiRW4gZW50cmFyIGVsIG1vZGUgZCdldGlxdWV0YSwgcydoYSBkZXRlY3RhdCB1bmEgZXRpcXVldGEgZGUgZGlzYyBPU0YvMSBlbiAlIgorInMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIk9yZHJlIChtIHBlciBhIG9idGVuaXIgYWp1ZGEpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiTCdhY3R1YWwgZml0eGVyIGQnYXJyZW5jYWRhIMOpczogJXNcbiIKKworIzogZmRpc2svZmRpc2suYzozMDI4Cittc2dpZCAiUGxlYXNlIGVudGVyIHRoZSBuYW1lIG9mIHRoZSBuZXcgYm9vdCBmaWxlOiAiCittc2dzdHIgIkVudHJldSBlbCBub20gZGVsIG5vdSBmaXR4ZXIgZCdhcnJlbmNhZGE6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiTm8gcydoYSBtb2RpZmljYXQgZWwgZml0eGVyIGQnYXJyZW5jYWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzEwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRTb3JyeSwgbm8gZXhwZXJ0cyBtZW51IGZvciBTR0kgcGFydGl0aW9uIHRhYmxlcyBhdmFpbGFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdE5vIGhpIGhhIG1lbsO6IGQndXN1YXJpIGV4cGVydCBwZXIgYSBsZXMgdGF1bGVzIGRlIHBhcnRpY2lvbnMgU0dJLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKKyMsIGZ1enp5Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBNYWMgbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBmZGlzaygxKSBjYW5ub3QgaGFuZGxlIHRoZXNlIGRpc2tzLlxuIgorIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisiXHROZXZlcnRoZWxlc3Mgc29tZSBhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEVuIGFxdWVzdCBkaXNjIHRlbml1IHVuYSBldGlxdWV0YSBBSVggdsOgbGlkYS5cbiIKKyJcdEFjdHVhbG1lbnQgTGludXggbm8gcG90IGdlc3Rpb25hciBhcXVlc3RzIGRpc2NzLlxuIgorIlx0VG90IGkgYWl4w7IsIHRpbmd1ZXUgZW4gY29tcHRlIGFsZ3VucyBjb25zZWxsczpcbiIKKyJcdDEuIGZkaXNrIGVuIGRlc3RydWlyw6AgZWwgY29udGluZ3V0IGVuIGVzY3JpdXJlLlxuIgorIlx0Mi4gQ29tcHJvdmV1IHF1ZSBhcXVlc3QgZGlzYyBubyBzaWd1aSB1bmEgcGFydCB2aXRhbFxuIgorIlx0ICAgZCd1biBncnVwIGRlIHZvbHVtcy4gKEVuIGNhcyBjb250cmFyaSBwb2Ryw61ldVxuIgorIlx0ICAgZXNib3JyYXIgZWxzIGFsdHJlcyBkaXNjcywgc2kgbm8gZXN0YW4gZHVwbGljYXRzLilcbiIKKyJcdDMuIEFiYW5zIGQnZXNib3JyYXIgYXF1ZXN0IHZvbHVtIGbDrXNpYywgZXNib3JyZXVcbiIKKyJcdCAgIGVsIGRpc2MgbMOyZ2ljYW1lbnQgZGUgbGEgbcOgcXVpbmEgQUlYLlxuIgorIlx0ICAgKE8gY29udmVydGl1LXZvcyBlbiB1biBBSVhwZXJ0KS4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MQorbXNnaWQgIlNHSSB2b2xoZHIiCittc2dzdHIgIlNHSSB2b2xoZHIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MgorbXNnaWQgIlNHSSB0cmtyZXBsIgorbXNnc3RyICJTR0kgdHJrcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgzCittc2dpZCAiU0dJIHNlY3JlcGwiCittc2dzdHIgIlNHSSBzZWNyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODQKK21zZ2lkICJTR0kgcmF3IgorbXNnc3RyICJTR0kgY3J1IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODUKK21zZ2lkICJTR0kgYnNkIgorbXNnc3RyICJTR0kgYnNkIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODYKK21zZ2lkICJTR0kgc3lzdiIKK21zZ3N0ciAiU0dJIHN5c3YiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NworbXNnaWQgIlNHSSB2b2x1bWUiCittc2dzdHIgIlZvbHVtIFNHSSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiU0dJIGVmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIlNHSSBsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIlNHSSBybHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIGVuIHhmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIkludGVyY2FudmkgTGludXgiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTEKK21zZ2lkICJMaW51eCBuYXRpdmUiCittc2dzdHIgIkxpbnV4IG5hdGl2YSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYzCittc2dpZCAiTGludXggTFZNIgorbXNnc3RyICJMaW51eCBMVk0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5OAorbXNnaWQgIkxpbnV4IFJBSUQiCittc2dzdHIgIlJBSUQgTGludXgiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkFjY29yZGluZyB0byBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyB0aGUgTGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gIgorIjUxMiBieXRlc1xuIgorbXNnc3RyICIiCisiU2Vnb25zIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jLiBsJ2V0aXF1ZXRhIG5vIHBvdCBjb250ZW5pciBtw6lzIGRlIDUxMiAiCisib2N0ZXRzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICIiCisiUydoYSBkZXRlY3RhdCB1bmEgZXRpcXVldGEgZGUgZGlzYyBzZ2kgYW1iIHVuYSBzdW1hIGRlIGNvbXByb3ZhY2nDsyAiCisiaW5jb3JyZWN0YS5cbiIKKworIyBGSVhNRQorIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzYyAlcyAoZXRpcXVldGEgZGUgZGlzYyBTR0kpOiAlZCBjYXDDp2FscywgJWQgc2VjdG9yc1xuIgorIiVkIGNpbGluZHJlcywgJWQgY2lsaW5kcmVzIGbDrXNpY3NcbiIKKyIlZCBzZWN0b3JzIHBlciBjaWxpbmRyZSBhZGRpY2lvbmFscywgZW50cmVsbGHDp2F0ICVkOjFcbiIKKyIlc1xuIgorIlVuaXRhdHMgPSAlcyBkZSAlZCAqICVkIG9jdGV0c1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2MgJXMgKGV0aXF1ZXRhIGRlIGRpc2MgU0dJKTogJWQgY2Fww6dhbHMsICVkIHNlY3RvcnMsICVkIGNpbGluZHJlc1xuIgorIlVuaXRhdHMgPSAlcyBkZSAlZCAqICVkIG9jdGV0c1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiLS0tLS0gcGFydGljaW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIEluaWNpICAgICAgIEZpbmFsIFNlY3RvcnMgIElkICBTaXN0ZW1hXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG4iCisiQm9vdGZpbGU6ICVzXG4iCisiLS0tLS0gRGlyZWN0b3J5IEVudHJpZXMgLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIEluZm9ybWFjacOzIGQnYXJyZW5jYWRhIC0tLS0tXG4iCisiRml0eGVyIGQnYXJyZW5jYWRhOiAlc1xuIgorIi0tLS0tIEVudHJhZGVzIGRlIGRpcmVjdG9yaXMgLS0tLS1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiUyZDogJS0xMHMgc2VjdG9yJTV1IG1pZGElOHVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSW52YWxpZCBCb290ZmlsZSFcbiIKKyJcdFRoZSBib290ZmlsZSBtdXN0IGJlIGFuIGFic29sdXRlIG5vbi16ZXJvIHBhdGhuYW1lLFxuIgorIlx0ZS5nLiBcIi91bml4XCIgb3IgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJFbCBmaXR4ZXIgZCdhcnJlbmNhZGEgbm8gw6lzIHbDoGxpZCFcbiIKKyJcdEVsIGZpdHhlciBkJ2FycmVuY2FkYSBoYSBkZSBzZXIgdW4gY2Ftw60gYWJzb2x1dFxuIgorIlx0ZGlmZXJlbnQgZGUgemVybywgcC5lLiBcIi91bml4XCIgbyBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RWwgbm9tIGRlbCBmaXR4ZXIgZCdhcnJlbmNhZGEgw6lzIG1hc3NhIGxsYXJnOiBtw6B4aW0gZGUgMTYgb2N0ZXRzLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIG11c3QgaGF2ZSBhIGZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RWwgZml0eGVyIGQnYXJyZW5jYWRhIGhhIGRlIHRlbmlyIHVuIGNhbcOtIGNvbXBsZXRhbWVudCBxdWFsaWZpY2F0LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdFRpbmd1ZXUgZW4gY29tcHRlIHF1ZSBubyBlcyBjb21wcm92YSBsJ2V4aXN0w6huY2lhIGRlbCBmaXR4ZXIgZCdhcnJlbmNhZGEuXG4iCisiXHRFbCB2YWxvciBwZXIgZGVmZWN0ZSBTR0kgw6lzIFwiL3VuaXhcIiBpIHBlciBhIGxhIGPDsnBpYSBkZSBzZWd1cmV0YXQgXCIvIgorInVuaXguc2F2ZVwiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIGlzIGNoYW5nZWQgdG8gXCIlc1wiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRTJ2hhIGNhbnZpYXQgZWwgZml0eGVyIGQnYXJyZW5jYWRhIGEgXCIlc1wiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1vcmUgdGhhbiBvbmUgZW50aXJlIGRpc2sgZW50cnkgcHJlc2VudC5cbiIKK21zZ3N0ciAiSGkgaGEgcHJlc2VudCBtw6lzIGQndW5hIGVudHJhZGEgZGUgZGlzYyBjb21wbGV0LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDMzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9ucyBkZWZpbmVkXG4iCittc2dzdHIgIk5vIGhpIGhhbiBwYXJ0aWNpb25zIGRlZmluaWRlc1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiUGVyIGEgSVJJWCBlcyByZWNvbWFuYSBxdWUgbGEgcGFydGljacOzIDExIGFiYXN0aSB0b3QgZWwgZGlzYy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBzaG91bGQgc3RhcnQgYXQgYmxvY2sgMCxcbiIKKyJub3QgYXQgZGlza2Jsb2NrICVkLlxuIgorbXNnc3RyICIiCisiTGEgcGFydGljacOzIGRlbCBkaXNjIHNlbmNlciBoYSBkZSBjb21lbsOnYXIgZW4gZWwgYmxvYyAwLFxuIgorIm5vIGVuIGVsIGJsb2MgZGUgZGlzYyAlZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBpcyBvbmx5ICVkIGRpc2tibG9jayBsYXJnZSxcbiIKKyJidXQgdGhlIGRpc2sgaXMgJWQgZGlza2Jsb2NrcyBsb25nLlxuIgorbXNnc3RyICIiCisiTGEgcGFydGljacOzIGRlIGRpc2Mgc2VuY2VyIHNvbHMgdMOpIHVuIG1pZGEgZGUgJWQgYmxvY3MsXG4iCisibWVudHJlIHF1ZSBlbCBkaXNjIHTDqSB1bmEgbG9uZ2l0dWQgZGUgJWQgYmxvY3MuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiT25lIFBhcnRpdGlvbiAoIzExKSBzaG91bGQgY292ZXIgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICJVbmEgcGFydGljacOzICgjMTEpIGhhdXJpYSBkJ2FiYXN0YXIgZWwgZGlzYyBzZW5jZXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJMYSBwYXJ0aWNpw7MgJWQgbm8gY29tZW7Dp2EgZW4gdW4gbMOtbWl0IGRlIGNpbGluZHJlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIkxhIHBhcnRpY2nDsyAlZCBubyBhY2FiYSBlbiB1biBsw61taXQgZGUgY2lsaW5kcmUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIFBhcnRpdGlvbiAlZCBhbmQgJWQgb3ZlcmxhcCBieSAlZCBzZWN0b3JzLlxuIgorbXNnc3RyICJMZXMgcGFydGljaW9ucyAlZCBpICVkIGVzIHNvbGFwZW4gZW4gJWQgc2VjdG9ycy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ4NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgb2YgJTh1IHNlY3RvcnMgLSBzZWN0b3JzICU4dS0ldVxuIgorbXNnc3RyICJIaSBoYSB1biBidWl0IHF1ZSBubyBzJ3VzYSBkZSAlOHUgc2VjdG9ycyAtIHNlY3RvcnMgJTh1LSV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxhIHBhcnRpY2nDsyBkJ2FycmVuY2FkYSBubyBleGlzdGVpeC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiTGEgcGFydGljacOzIGQnaW50ZXJjYW52aSBubyBleGlzdGVpeC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGhhcyBubyBzd2FwIHR5cGUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMYSBwYXJ0aWNpw7MgZCdpbnRlcmNhbnZpIG5vIMOpcyBkZWwgdGlwdXMgZCdpbnRlcmNhbnZpLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iCittc2dzdHIgIlx0SGV1IGVzY29sbGl0IHVuIG5vbSBkZSBmaXR4ZXIgZCdhcnJlbmNhZGEgaW51c3VhbC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzMgorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSBZb3UgbWF5IGNoYW5nZSB0aGUgVGFnIG9mIG5vbi1lbXB0eSBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICJQb2RldSBjYW52aWFyIGwnZXRpcXVldGEgZGUgbGVzIHBhcnRpY2lvbnMgbm8gYnVpZGVzLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJFc3TDoCBhbHRhbWVudCByZWNvbWVuYXQgcXVlIGxhIHBhcnRpY2nDsyBlbiBlbCBkZXNwbGHDp2FtZW50IDBcbiIKKyJzaWd1aSBkZWwgdGlwdXMgXCJTR0kgdm9saGRyXCI7IGVsIHNpc3RlbWEgSVJJWCBsJ3VzYXLDoCBwZXJcbiIKKyJyZWN1cGVyYXIgZGVzIGRlbCBzZXUgZGlyZWN0b3JpIGQndXRpbGl0YXRzIGNvbSBhcmEgc2FzaCBpIGZ4LlxuIgorIk5vbcOpcyBsJ2VudHJhZGEgZGUgZGlzYyBzZW5jZXIgXCJWb2x1bSBTR0lcIiBwb3QgaW5mcmluZ2lyIGFpeMOyLlxuIgorIkVzY3Jpdml1IFPDjSBzaSBlc3RldSBzZWd1ciBxdWUgdm9sZXUgdG9ybmFyIGEgZXRpcXVldGFyIGFxdWVzdGEgcGFydGljacOzLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiU8ONXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiSmEgc2FiZXUgcXVlIGhpIGhhIHVuIGVuY2F2YWxjYW1lbnQgZGUgcGFydGljaW9ucyBhbCBkaXNjP1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAiUydlc3TDoCBpbnRlbnRhbnQgZ2VuZXJhciB1bmEgZW50cmFkYSBkZSBkaXNjIHNlbmNlciBhdXRvbcOgdGljYW1lbnQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkVsIGRpc2Mgc2VuY2VyIGphIGVzdMOgIGNvYmVydCBkZSBwYXJ0aWNpb25zLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICJTJ2hhIHByb2R1w690IHVuIGVuY2F2YWxjYW1lbnQgZGUgcGFydGljaW9ucyBhbCBkaXNjLiBDb3JyZWdpdS1oby5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY0NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCBlbGV2ZW50aCBwYXJ0aXRpb25cbiIKKyJjb3ZlcnMgdGhlIGVudGlyZSBkaXNrIGFuZCBpcyBvZiB0eXBlIGBTR0kgdm9sdW1lJ1xuIgorbXNnc3RyICIiCisiRXMgcmVjb21hbmEgZXNwZWNpYWxtZW50IHF1ZSBsYSBvbnplbmEgcGFydGljacOzXG4iCisiY29icmVpeGkgZWwgZGlzYyBzZW5jZXIgaSBzaWd1aSBkZWwgdGlwdXMgJ3ZvbHVtIFNHSSdcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBnZXQgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICJFcyBwcm9kdWlyw6AgdW4gZW5jYXZhbGNhbWVudCBkZSBwYXJ0aWNpb25zIGFsIGRpc2MuIENvcnJlZ2l1LWhvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiBMYXN0ICVzIgorbXNnc3RyICIgw5psdGltICVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBTR0kgZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuIgorIlxuIgorbXNnc3RyICIiCisiUydlc3TDoCBjb25zdHJ1aW50IHVuYSBub3ZhIGV0aXF1ZXRhIGRlIGRpc2MgU0dJLiBFbHMgY2FudmlzIG5vbcOpcyByb21hbmRyYW5cbiIKKyJhIGxhIG1lbcOycmlhIGZpbnMgcXVlIGRlY2lkaXUgZXNjcml1cmUnbHMuIERlc3Byw6lzIGQnYWl4w7IsIG5vIGVzIHBvZHLDoFxuIgorInJlY3VwZXJhciBsJ2FudGVyaW9yIGNvbnRpbmd1dC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjcxOCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiAgQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXMuICBVc2luZyBnZW9tZXRyeSBjeWxpbmRlciB2YWx1ZSBvZiAlIgorImQuXG4iCisiVGhpcyB2YWx1ZSBtYXkgYmUgdHJ1bmNhdGVkIGZvciBkZXZpY2VzID4gMzMuOCBHQi5cbiIKK21zZ3N0ciAiIgorIkF2w61zOiBubyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIGlvY3RsIEJMS0dFVFNJWkUgYSAlcy4gUydlc3TDoCB1dGlsaXR6YW50IGVsICIKKyJ2YWxvciBkZSBsYSBnZW9tZXRyaWEgZGVsIGNpbGluZHJlICVkLlxuIgorIkFxdWVzdCB2YWxvciBlcyBwb3QgdHJ1bmNhciBwZXIgYSBkaXNwb3NpdGl1cyA+IDMzLjggR0IuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIGtlZXAgcGFyYW1ldGVycyBvZiBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIlMnZXN0w6AgaW50ZW50YW50IG1hbnRlbmlyIGVscyBwYXLDoG1ldHJlcyBkZSBsYSBwYXJ0aWNpw7MgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSUQ9JTAyeFx0U1RBUlQ9JWRcdExFTkdUSD0lZFxuIgorbXNnc3RyICJJRD0lMDJ4XHRJTklDST0lZFx0TE9OR0lUVUQ9JWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4Cittc2dpZCAiVW5hc3NpZ25lZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDAKK21zZ2lkICJTdW5PUyByb290IgorbXNnc3RyICJTdW5PUyBhcnJlbCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1MgZCdpbnRlcmNhbnZpIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIKK21zZ2lkICJTdW5PUyB1c3IiCittc2dzdHIgIlN1bk9TIHVzciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQzCittc2dpZCAiV2hvbGUgZGlzayIKK21zZ3N0ciAiRGlzYyBzZW5jZXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBlc3TDoG5kYXJkIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDUKK21zZ2lkICJTdW5PUyB2YXIiCittc2dzdHIgIlN1bk9TIHZhciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ2Cittc2dpZCAiU3VuT1MgaG9tZSIKK21zZ3N0ciAiU3VuT1MgaG9tZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3CisjLCBmdXp6eQorbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICIlbGxkIHNlY3RvcnMgbm8gYXNzaWduYXRzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorIywgZnV6enkKK21zZ2lkICJTdW5PUyBjYWNoZWZzIgorbXNnc3RyICJTdW5PUyBob21lIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDkKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIlN1bk9TIHVzciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICJBdXRvZGV0ZWNjacOzIFJBSUQgTGludXgiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorIlMnaGEgZGV0ZWN0YXQgdW5hIGV0aXF1ZXRhIGRlIGRpc2MgYW1iIHVuYSBzdW1hIGRlIGNvbXByb3ZhY2nDsyBpbmNvcnJlY3RhLlxuIgorIlByb2JhYmxlbWVudCBoYXVyZXUgZCdlc3RhYmxpciB0b3RzIGVscyB2YWxvcnMsXG4iCisicC5leC4gY2Fww6dhbHMsIHNlY3RvcnMsIGNpbGluZHJlcyBpIHBhcnRpY2lvbnMsIG8gZm9yw6dhclxuIgorInVuYSBub3ZhIGV0aXF1ZXRhIChvcmRyZSBzIGRlbCBtZW7DuiBwcmluY2lwYWwpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICIiCisiUydoYSBkZXRlY3RhdCB1bmEgZXRpcXVldGEgZGUgZGlzYyBzZ2kgYW1iIHVuYSBzdW1hIGRlIGNvbXByb3ZhY2nDsyAiCisiaW5jb3JyZWN0YS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHNhbml0eSBbMHglMDh4XS5cbiIKK21zZ3N0ciAiIgorIlMnaGEgZGV0ZWN0YXQgdW5hIGV0aXF1ZXRhIGRlIGRpc2Mgc2dpIGFtYiB1bmEgc3VtYSBkZSBjb21wcm92YWNpw7MgIgorImluY29ycmVjdGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICIiCisiUydoYSBkZXRlY3RhdCB1bmEgZXRpcXVldGEgZGUgZGlzYyBzZ2kgYW1iIHVuYSBzdW1hIGRlIGNvbXByb3ZhY2nDsyAiCisiaW5jb3JyZWN0YS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJBdsOtczogZWwgc2VueWFsYWRvciAweCUwNHggaW52w6BsaWQgZGUgbGEgdGF1bGEgZGUgcGFydGljaW9ucyAlZCBlcyBjb3JyZWdpcsOgICIKKyJhbWIgdyhlc2NyaXUpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IHN1biBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJTJ2VzdMOgIGNvbnN0cnVpbnQgdW5hIG5vdmEgZXRpcXVldGEgZGUgZGlzYyBzdW4uIEVscyBjYW52aXMgbm9tw6lzIHJvbWFuZHJhblxuIgorImEgbGEgbWVtw7JyaWEgZmlucyBxdWUgZGVjaWRpdSBlc2NyaXVyZSdscy4gRGVzcHLDqXMgZCdhaXjDsiwgbCdhbnRlcmlvclxuIgorImNvbnRpbmd1dCBzZXLDoCBpcnJlY3VwZXJhYmxlLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAiU2VjdG9ycy9waXN0YSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiTGEgcGFydGljacOzICVkIG5vIGFjYWJhIGVuIHVuIGzDrW1pdCBkZSBjaWxpbmRyZVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBvdmVybGFwcyB3aXRoIG90aGVycyBpbiBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIkxhIHBhcnRpY2nDsyAlZCBlbmNhdmFsY2EgYW1iIGQnYWx0cmVzIGVuIGVscyBzZWN0b3JzICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICJCdWl0IG5vIHVzYXQgLSBzZWN0b3JzIDAtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIkJ1aXQgbm8gdXNhdCAtIHNlY3RvcnMgJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3RoZXIgcGFydGl0aW9ucyBhbHJlYWR5IGNvdmVyIHRoZSB3aG9sZSBkaXNrLlxuIgorIkRlbGV0ZSBzb21lL3NocmluayB0aGVtIGJlZm9yZSByZXRyeS5cbiIKK21zZ3N0ciAiIgorIkFsdHJlcyBwYXJ0aWNpb25zIGNvYnJlaXhlbiBlbCBkaXNjIHNlbmNlci5cbiIKKyJBYmFucyBkZSB0b3JuYXItaGkgZXNib3JyZXUtbmUgbyByZWR1w691LW5lIGxhIHNldmEgbWlkYS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSB0aGlyZCBwYXJ0aXRpb24gY292ZXJzIHRoZSB3aG9sZSBkaXNrXG4iCisiYW5kIGlzIG9mIHR5cGUgYFdob2xlIGRpc2snXG4iCittc2dzdHIgIiIKKyJFcyByZWNvbWFuYSBlc3BlY2lhbG1lbnQgcXVlIGxhIG9uemVuYSBwYXJ0aWNpw7NcbiIKKyJjb2JyZWl4aSBlbCBkaXNjIHNlbmNlciBpIHNpZ3VpIGRlbCB0aXB1cyAndm9sdW0gU0dJJ1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZCBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJFbCBzZWN0b3IgJWQgamEgZXN0w6AgYXNzaWduYXRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmVuJ3QgY292ZXJlZCB0aGUgd2hvbGUgZGlzayB3aXRoIHRoZSAzcmQgcGFydGl0aW9uLCBidXQgeW91ciB2YWx1ZVxuIgorIiVkICVzIGNvdmVycyBzb21lIG90aGVyIHBhcnRpdGlvbi4gWW91ciBlbnRyeSBoYXMgYmVlbiBjaGFuZ2VkXG4iCisidG8gJWQgJXNcbiIKK21zZ3N0ciAiIgorIk5vIGhldSBjb2JlcnQgZWwgZGlzYyBzZW5jZXIgYW1iIGxhIHRlcmNlcmEgcGFydGljacOzLCBwZXLDsiBlbFxuIgorInZhbG9yICVkICVzIGVuY2F2YWxjYSBhbWIgZCdhbHRyZXMgcGFydGljaW9ucy4gUydoYSBjYW52aWF0IGwnZW50cmFkYVxuIgorInBlciAlZCAlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyJTaSBkZXNpdGdldSBtYW50ZW5pciBsYSBjb21wYXRpYmlsaXRhdCBhbWIgU3VuT1MvU29sYXJpcywgY29uc2lkZXJldSBkZWl4YXJcbiIKKyJhcXVlc3RhIHBhcnRpY2nDsyBjb20gYSBEaXNjIHNlbmNlciAoNSksIGNvbWVuw6dhbnQgZW4gMCwgYW1iICV1IHNlY3RvcnNcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIkVzIHJlY29tYW5hIGVzcGVjaWFsbWVudCBxdWUgbGEgcGFydGljacOzIGVuIGVsIGRlc3BsYcOnYW1lbnQgMFxuIgorInNpZ3VpIFVGUywgRVhUMkZTIG8gU3VuT1MgZCdpbnRlcmNhbnZpLiBTaSBlcyBwb3NhIExpbnV4XG4iCisiZCdpbnRlcmNhbnZpLCBlcyBwb3QgZGVzdHJ1aXIgbGEgdGF1bGEgZGUgcGFydGljaW9ucyBpIGVsIGJsb2MgZCdhcnJlbmNhZGEuXG4iCisiRXNjcml2aXUgU8ONIHNpIGVzdGV1IHNlZ3VyIHF1ZSBkZXNpdGdldSBxdWUgcydldGlxdWV0aSBsYSBwYXJ0aWNpw7NcbiIKKyJhbWIgZWwgODIgKExpbnV4IGQnaW50ZXJjYW52aSk6ICIKKworIyBGSVhNRQorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNjICVzIChldGlxdWV0YSBkZSBkaXNjIFN1bik6ICVkIGNhcMOnYWxzLCAlZCBzZWN0b3JzLCAlZCByLnAubS5cbiIKKyIlZCBjaWxpbmRyZXMsICVkIGNpbGluZHJlcyBhbHRlcm5hdGl1cywgJWQgY2lsaW5kcmVzIGbDrXNpY3NcbiIKKyIlZCBzZWN0b3JzIHBlciBjaWxpbmRyZSBhZGRpY2lvbmFscywgZW50cmVsbGHDp2F0ICVkOjFcbiIKKyIlc1xuIgorIlVuaXRhdHMgPSAlcyBkZSAlZCAqIDUxMiBvY3RldHNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzYyAlcyAoZXRpcXVldGEgZGUgZGlzYyBTdW4pOiAlZCBjYXDDp2FscywgJWQgc2VjdG9ycywgJWQgY2lsaW5kcmVzXG4iCisiVW5pdGF0cyA9ICVzIGRlICVkICogNTEyIG9jdGV0c1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBTZW55YWwuICBJbmljaSAgICAgIEZpbmFsICAgQmxvY3MgICBJZCAgU2lzdGVtYVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjI1Cittc2dpZCAiTnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIk5vbWJyZSBkZSBjaWxpbmRyZXMgYWx0ZXJuYXRpdXMiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MzcKK21zZ2lkICJFeHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiU2VjdG9ycyBhZGRpY2lvbmFscyBwZXIgY2lsaW5kcmUiCisKKyMgRklYTUUKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NDQKK21zZ2lkICJJbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiRmFjdG9yIGQnZW50cmVsbGHDp2F0IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjUxCittc2dpZCAiUm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIlZlbG9jaXRhdCBkZSByb3RhY2nDsyAoci5wLm0uKSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1OAorbXNnaWQgIk51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIk5vbWJyZSBkZSBjaWxpbmRyZXMgZsOtc2ljcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIkJ1aWRhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcKK21zZ2lkICJGQVQxMiIKK21zZ3N0ciAiRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OAorbXNnaWQgIlhFTklYIHJvb3QiCittc2dzdHIgIlhFTklYIGFycmVsIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkKK21zZ2lkICJYRU5JWCB1c3IiCittc2dzdHIgIlhFTklYIHVzciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMAorbXNnaWQgIkZBVDE2IDwzMk0iCittc2dzdHIgIkZBVDE2IDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTEKK21zZ2lkICJFeHRlbmRlZCIKK21zZ3N0ciAiRXN0ZXNhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIGFycmVuY2FibGUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTYKK21zZ2lkICJPUy8yIEJvb3QgTWFuYWdlciIKK21zZ3N0ciAiR2VzdG9yIGQnYXJyZW5jYWRhIE9TLzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTcKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIlc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOAorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjAKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIlc5NSBFc3Rlc2EgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICJPUFVTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIyCittc2dpZCAiSGlkZGVuIEZBVDEyIgorbXNnc3RyICJGQVQxMiBvY3VsdGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjMKK21zZ2lkICJDb21wYXEgZGlhZ25vc3RpY3MiCittc2dzdHIgIkRpYWduw7JzdGljcyBDb21wYXEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjQKK21zZ2lkICJIaWRkZW4gRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYgPDMyTSBvY3VsdGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjUKK21zZ2lkICJIaWRkZW4gRkFUMTYiCittc2dzdHIgIkZBVDE2IG9jdWx0YSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNgorbXNnaWQgIkhpZGRlbiBIUEZTL05URlMiCittc2dzdHIgIkhQRlMvTlRGUyBvY3VsdGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjcKK21zZ2lkICJBU1QgU21hcnRTbGVlcCIKK21zZ3N0ciAiU21hcnRTbGVlcCBkJ0FTVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIlc5NSBGQVQzMiBvY3VsdGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJXOTUgRkFUMzIgKExCQSkgb2N1bHRhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIG9jdWx0YSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJSZWN1cGVyYWNpw7MgUGFydGl0aW9uTWFnaWMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzQKK21zZ2lkICJWZW5peCA4MDI4NiIKK21zZ3N0ciAiVmVuaXggODAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzUKK21zZ2lkICJQUEMgUFJlUCBCb290IgorbXNnc3RyICJQUEMgYXJyZW5jYWRhIFBSZVAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0Lnggc2Vnb25hIHBhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIlFOWDQueCB0ZXJjZXJhIHBhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDAKK21zZ2lkICJPblRyYWNrIERNIgorbXNnc3RyICJPblRyYWNrIERNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQxCittc2dpZCAiT25UcmFjayBETTYgQXV4MSIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MgorbXNnaWQgIkNQL00iCittc2dzdHIgIkNQL00iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDMKK21zZ2lkICJPblRyYWNrIERNNiBBdXgzIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ0Cittc2dpZCAiT25UcmFja0RNNiIKK21zZ3N0ciAiT25UcmFja0RNNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NQorbXNnaWQgIkVaLURyaXZlIgorbXNnc3RyICJFWi1Ecml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NgorbXNnaWQgIkdvbGRlbiBCb3ciCittc2dzdHIgIkdvbGRlbiBCb3ciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDcKK21zZ2lkICJQcmlhbSBFZGlzayIKK21zZ3N0ciAiUHJpYW0gRWRpc2siCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk5Cittc2dpZCAiU3BlZWRTdG9yIgorbXNnc3RyICJTcGVlZFN0b3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICJHTlUgSFVSRCBvIFN5c1YiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTAKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAyODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MQorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDM4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMzg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUyCittc2dpZCAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorbXNnc3RyICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTMKK21zZ2lkICJQQy9JWCIKK21zZ3N0ciAiUEMvSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTQKK21zZ2lkICJPbGQgTWluaXgiCittc2dzdHIgIk1pbml4IGFudGljIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8gYW50aWMgTGludXgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTYKK21zZ2lkICJMaW51eCBzd2FwIC8gU29sYXJpcyIKK21zZ3N0ciAiSW50ZXJjYW52aSBMaW51eCAvIFNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTgKK21zZ2lkICJPUy8yIGhpZGRlbiBDOiBkcml2ZSIKK21zZ3N0ciAiVW5pdGF0IEM6IG9jdWx0YSBkJ09TLzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTkKK21zZ2lkICJMaW51eCBleHRlbmRlZCIKK21zZ3N0ciAiTGludXggZXN0ZXNhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIkpvYyBkZSB2b2x1bXMgTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorbXNnaWQgIkxpbnV4IHBsYWludGV4dCIKK21zZ3N0ciAiTGludXggdGV4dCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NAorbXNnaWQgIkFtb2ViYSIKK21zZ3N0ciAiQW1vZWJhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY1Cittc2dpZCAiQW1vZWJhIEJCVCIKK21zZ3N0ciAiQW1vZWJhIEJCVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NgorbXNnaWQgIkJTRC9PUyIKK21zZ3N0ciAiQlNEL09TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY3Cittc2dpZCAiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIgorbXNnc3RyICJIaXZlcm5hY2nDsyBkJ0lCTSBUaGlua3BhZCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OAorbXNnaWQgIkZyZWVCU0QiCittc2dzdHIgIkZyZWVCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjkKK21zZ2lkICJPcGVuQlNEIgorbXNnc3RyICJPcGVuQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIk5lWFRTVEVQIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcxCittc2dpZCAiRGFyd2luIFVGUyIKK21zZ3N0ciAiVUZTIGRlIERhcndpbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MgorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiTmV0QlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjczCittc2dpZCAiRGFyd2luIGJvb3QiCittc2dzdHIgIkFycmVuY2FkYSBkZSBEYXJ3aW4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzQKKyMsIGZ1enp5Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc1Cittc2dpZCAiQlNESSBmcyIKK21zZ3N0ciAiUy5mLiBCU0RJIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc2Cittc2dpZCAiQlNESSBzd2FwIgorbXNnc3RyICJJbnRlcmNhbnZpIGRlIEJTREkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIkJvb3QgV2l6YXJkIG9jdWx0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICJBcnJlbmNhZGEgU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJEYWRlcyBzZW5zZSBTLkYuIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg1Cittc2dpZCAiQ1AvTSAvIENUT1MgLyAuLi4iCittc2dzdHIgIkNQL00gLyBDVE9TIC8gLi4uIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg3Cittc2dpZCAiRGVsbCBVdGlsaXR5IgorbXNnc3RyICJVdGlsaXRhdCBEZWxsIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg4Cittc2dpZCAiQm9vdEl0IgorbXNnc3RyICJCb290SXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODkKK21zZ2lkICJET1MgYWNjZXNzIgorbXNnc3RyICJBY2PDqXMgRE9TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkxCittc2dpZCAiRE9TIFIvTyIKK21zZ3N0ciAiRE9TIFIvTyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NAorbXNnaWQgIkJlT1MgZnMiCittc2dzdHIgIlNpcy4gRml0eC4gQmVPUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorIywgZnV6enkKK21zZ2lkICJHUFQiCittc2dzdHIgIkVGSSBHUFQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIkVGSSAoRkFULTEyLzE2LzMyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NworbXNnaWQgIkxpbnV4L1BBLVJJU0MgYm9vdCIKK21zZ3N0ciAiQXJyZW5jYWRhIExpbnV4L1BBLVJJU0MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAwCittc2dpZCAiRE9TIHNlY29uZGFyeSIKK21zZ3N0ciAiU2VjdW5kw6ByaWEgRE9TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGNlcmNhciBhICVzIC0gbm8gZXMgcG90IGNlcmNhciBhICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgIiIKKyJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGNlcmNhcjogcydlc3BlcmF2YSAweCUwOHglMDh4LCBzJ2hhIG9idGluZ3V0IDB4JTA4eCUiCisiMDh4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAicydoYSBlc2dvdGF0IGxhIG1lbcOycmlhIC0gcydlc3TDoCBhYmFuZG9uYW50XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiIgorInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZGUgbGVjdHVyYSBhICVzIC0gbm8gcydoYSBwb2d1dCBsbGVnaXIgZWwgc2VjdG9yICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiRVJST1I6IGVsIHNlY3RvciAlbHUgbm8gdMOpIGNhcCBzaWduYXR1cmEgbXNkb3NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzIC0gY2Fubm90IHdyaXRlIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiIgorInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZCdlc2NyaXB0dXJhIGEgJXMgLSBubyBzJ2hhIHBvZ3V0IGVzY3JpdXJlIGVsIHNlY3RvciAlIgorImx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgb2JyaXIgZWwgc2VjdG9yIGRlIGxhIHBhcnRpY2nDsyBkZWwgZml0eGVyIGRlc2F0ICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzXG4iCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZCdlc2NyaXB0dXJhIGEgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICIiCisibm8gcydoYSBwb2d1dCBleGVjdXRhciBzdGF0IGFsIGZpdHhlciBkZSByZXN0YXVyYWNpw7MgZGUgbGEgcGFydGljacOzICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAiIgorImVsIGZpdHhlciBkZSByZXN0YXVyYWNpw7MgZGUgbGEgcGFydGljacOzIHTDqSB1bmEgbWlkYSBpbmNvcnJlY3RhIC0gbm8gZXMgIgorInJlc3RhdXJhcsOgXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/XG4iCittc2dzdHIgInMnaGEgZXNnb3RhdCBsYSBtZW3DsnJpYT9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJubyBlcyBwb3Qgb2JyaXIgZWwgZml0eGVyIGRlIHJlc3RhdXJhY2nDsyBkZSBsYSBwYXJ0aWNpw7MgKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcmVhZGluZyAlc1xuIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGxsZWdpciAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gZGV2aWNlICVzIGZvciB3cml0aW5nXG4iCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgb2JyaXIgcGVyIGEgZXNjcmlwdHVyYSBlbCBkaXNwb3NpdGl1ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nIHNlY3RvciAlbHUgb24gJXNcbiIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBlc2NyaXVyZSBlbCBzZWN0b3IgJWx1IGVuICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IGdlb21ldHJ5XG4iCittc2dzdHIgIkRpc2MgJXM6IG5vIHMnaGEgcG9ndXQgb2J0ZW5pciBsYSBnZW9tZXRyaWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICJEaXNjICVzIDogbm8gcydoYSBwb2d1dCBvYnRlbmlyIGxhIG1pZGEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc3RhcnQ9JWx1IC0gdGhpcyBsb29rcyBsaWtlIGEgcGFydGl0aW9uIHJhdGhlciB0aGFuXG4iCisidGhlIGVudGlyZSBkaXNrLiBVc2luZyBmZGlzayBvbiBpdCBpcyBwcm9iYWJseSBtZWFuaW5nbGVzcy5cbiIKKyJbVXNlIHRoZSAtLWZvcmNlIG9wdGlvbiBpZiB5b3UgcmVhbGx5IHdhbnQgdGhpc11cbiIKK21zZ3N0ciAiIgorIkF2w61zOiBpbmljaT0lbHUgLSBzZW1ibGEgdW5hIHBhcnRpY2nDsyBpIG5vIHVuIGRpc2Mgc2VuY2VyLlxuIgorIk5vIHTDqSBzZW50aXQgcXVlIGhpIGV4ZWN1dGV1IGZkaXNrLltVc2V1IGwnb3BjacOzIC0tZm9yY2Ugc2kgcmVhbG1lbnQgaG8gIgorImRlc2l0Z2V1Ll1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGhlYWRzXG4iCittc2dzdHIgIkF2w61zOiBIRElPX0dFVEdFTyBpbmRpY2EgcXVlIGhpIGhhICVsdSBjYXDDp2Fsc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgc2VjdG9yc1xuIgorbXNnc3RyICJBdsOtczogSERJT19HRVRHRU8gaW5kaWNhIHF1ZSBoaSBoYSAlbHUgc2VjdG9yc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogQkxLR0VUU0laRS9IRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBjeWxpbmRlcnNcbiIKK21zZ3N0ciAiQXbDrXM6IEhESU9fR0VUR0VPIGluZGljYSBxdWUgaGkgaGEgJWx1IGNpbGluZHJlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJBdsOtczogZWwgbm9tYnJlIGRlIHNlY3RvcnMgw6lzIGltcHJvYmFibGUgKCVsdSk7IG5vcm1hbG1lbnQgY29tIGEgbW9sdCA2M1xuIgorIkFpeMOyIGRvbmFyw6AgcHJvYmxlbWVzIGFtYiBlbCBwcm9ncmFtYXJpIHF1ZSB1c2kgYWRyZWNlcyBDL0gvU1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2MgJXM6ICVsdSBjaWxpbmRyZXMsICVsdSBjYXDDp2FscywgJWx1IHNlY3RvcnMvcGlzdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGhlYWQ6ICVsdSAoc2hvdWxkIGJlIGluIDAtJWx1KVxuIgorbXNnc3RyICIiCisiJXMgZGUgcGFydGljacOzICVzIHTDqSB1biB2YWxvciBpbXBvc3NpYmxlIHBlciBhbCBjYXDDp2FsOiAlbHUgKGhhdXJpYSBkJ2VzdGFyICIKKyJlbnRyZSAwIGkgJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3Igc2VjdG9yOiAlbHUgKHNob3VsZCBiZSBpbiAxLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyBkZSBwYXJ0aWNpw7MgJXMgdMOpIHVuIHZhbG9yIGltcG9zc2libGUgcGVyIGFsIHNlY3RvcjogJWx1IChoYXVyaWEgZCdlc3RhciAiCisiZW50cmUgMSBpICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGN5bGluZGVyczogJWx1IChzaG91bGQgYmUgaW4gMC0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgZGUgcGFydGljacOzICVzIHTDqSB1biB2YWxvciBpbXBvc3NpYmxlIHBlciBhbHMgY2lsaW5kcmVzOiAlbHUgKGhhdXJpYSAiCisiZCdlc3RhciBlbnRyZSAwIGkgJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIiIKKyJJZCAgTm9tXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iCittc2dzdHIgIlMnZXN0w6AgcmVsbGVnaW50IGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCisjLCBmdXp6eQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKyJMJ29yZHJlIHBlciBhIHRvcm5hciBhIGxsZWdpciBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zIGhhIGZhbGxhdFxuIgorIlRvcm5ldSBhIGluaWNpYXIgZWwgc2lzdGVtYSBhcmEsIGFiYW5zIGQndXNhciBta2ZzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxNworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjbG9zaW5nICVzXG4iCittc2dzdHIgIlMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gdGFuY2FyICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IGFxdWVzdGEgcGFydGljacOzIG5vIGV4aXN0ZWl4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg3OAorbXNnaWQgInVucmVjb2duaXplZCBmb3JtYXQgLSB1c2luZyBzZWN0b3JzXG4iCittc2dzdHIgImZvcm1hdCBubyByZWNvbmVndXQ7IHMnZXN0w6AgdXNhbnQgZWxzIHNlY3RvcnNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAiZm9ybWF0IG5vIGltcGxlbWVudGF0OyBzJ2VzdMOgIHVzYW50ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBjeWxpbmRlcnMgb2YgJWx1IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiVW5pdGF0cyA9IGNpbGluZHJlcyBkZSAlbHUgb2N0ZXRzLCBibG9jcyBkZSAxMDI0IG9jdGV0cywgY29udGFudCBkZXMgZGUgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBEaXNwLiBBcnIuICBJbmljaSAgICAgRmluYWwgI2NpbC4gICAgI2Jsb2NzICAgIElkICBTaXN0ZW1hXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiVW5pdGF0cyA9IHNlY3RvcnMgZGUgNTEyIG9jdGV0cywgY29udGFudCBkZXMgZGUgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIERpc3AuIEFyciAgICAgIEluaWNpICAgICAgIEZpbmFsICNzZWN0b3JzICBJZCAgU2lzdGVtYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVuaXRhdHMgPSBibG9jcyBkZSAxMDI0IG9jdGV0cywgY29udGFudCBkZXMgZGUgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgU3RhcnQgICAgICAgRW5kICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIERpc3AuIEFyci4gICAgSW5pY2kgICAgICAgRmluYWwgICAjYmxvY3MgICBJZCAgU2lzdGVtYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gbWViaWJ5dGVzIG9mIDEwNDg1NzYgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJVbml0YXRzID0gbWViaWJ5dGVzIGRlIDEwNDg1NzYgb2N0ZXRzLCBibG9jcyBkZSAxMDI0IG9jdGV0cywgY29tcHRhbnQgZGVzIGRlICIKKyIlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIERpc3AuIEFyci4gIEluaWNpICAgRmluYWwgIE1pQiAgICAjYmxvY3MgICAgSWQuIHNpc3RlbWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTExMworIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0c3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJcdFx0Y29tZW7Dp2E6IChjaWwuLGNhcMOnLixzZWN0LikgZXNwZXJhdCAoJWxkLCVsZCwlbGQpIHRyb2JhdCAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIlx0XHRmaW5hbDogKGNpbC4sY2Fww6cuLHNlY3QuKSBlc3BlcmF0ICglbGQsJWxkLCVsZCkgdHJvYmF0ICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgImxhIHBhcnRpY2nDsyBhY2FiYSBlbiBlbCBjaWxpbmRyZSAlbGQsIG3DqXMgZW5sbMOgIGRlbCBmaW5hbCBkZWwgZGlzY1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTMzCittc2dpZCAiTm8gcGFydGl0aW9ucyBmb3VuZFxuIgorbXNnc3RyICJObyBzJ2hhbiB0cm9iYXQgcGFydGljaW9uc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBUaGUgcGFydGl0aW9uIHRhYmxlIGxvb2tzIGxpa2UgaXQgd2FzIG1hZGVcbiIKKyIgIGZvciBDL0gvUz0qLyVsZC8lbGQgKGluc3RlYWQgb2YgJWxkLyVsZC8lbGQpLlxuIgorIkZvciB0aGlzIGxpc3RpbmcgSSdsbCBhc3N1bWUgdGhhdCBnZW9tZXRyeS5cbiIKK21zZ3N0ciAiIgorIkF2w61zOiBMYSB0YXVsYSBkZSBwYXJ0aWNpb25zIHNlbWJsYSBoYXZlci1zZSBjcmVhdFxuIgorIiAgcGVyIGEgQy9IL1M9Ki8lbGQvJWxkIChlbiBjb21wdGVzIGRlICVsZC8lbGQvJWxkKS5cbiIKKyJQZXIgYSBhcXVlc3QgbGxpc3RhdCBzJ2Fzc3VtaXLDoCBhcXVlc3RhIGdlb21ldHJpYS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4NgorbXNnaWQgIm5vIHBhcnRpdGlvbiB0YWJsZSBwcmVzZW50LlxuIgorbXNnc3RyICJubyBoaSBoYSBjYXAgdGF1bGEgZGUgcGFydGljaW9ucy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIKK21zZ3N0ciAiw6lzIGVzdHJhbnksIG5vbcOpcyBoaSBoYSBkZWZpbmlkZXMgJWQgcGFydGljaW9ucy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBidXQgaXMgbm90IG1hcmtlZCBFbXB0eVxuIgorbXNnc3RyICJBdsOtczogbGEgcGFydGljacOzICVzIHTDqSB1bmEgbWlkYSAwIHBlcsOyIG5vIGVzdMOgIG1hcmNhZGEgY29tIGEgYnVpZGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiQXbDrXM6IGxhIHBhcnRpY2nDsyAlcyB0w6kgdW5hIG1pZGEgMCBpIMOpcyBhcnJlbmNhYmxlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiQXbDrXM6IGxhIHBhcnRpY2nDsyAlcyB0w6kgdW5hIG1pZGEgMCBpIG5vIGNvbWVuw6dhIGVuIHplcm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICJBdsOtczogbGEgcGFydGljacOzICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIgorbXNnc3RyICJubyBlc3TDoCBjb250aW5ndXQgYSBkaW5zIGRlIGxhIHBhcnRpY2nDsyAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbnMgJXMgIgorbXNnc3RyICJBdsOtczogbGVzIHBhcnRpY2lvbnMgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgImkgJXMgZW5jYXZhbHF1ZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogcGFydGl0aW9uICVzIGNvbnRhaW5zIHBhcnQgb2YgdGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisiYW5kIHdpbGwgZGVzdHJveSBpdCB3aGVuIGZpbGxlZFxuIgorbXNnc3RyICIiCisiQXbDrXM6IGxhIHBhcnRpY2nDsyAlcyBjb250w6kgcGFydCBkZSBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zXG4iCisiKHNlY3RvciAlbHUpIGkgbGEgZGVzdHJ1aXLDoCBxdWFuIHMnb21wbGlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgc3RhcnRzIGF0IHNlY3RvciAwXG4iCittc2dzdHIgIkF2w61zOiBsYSBwYXJ0aWNpw7MgJXMgY29tZW7Dp2EgZW4gZWwgc2VjdG9yIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIkF2w61zOiBsYSBwYXJ0aWNpw7MgJXMgcydleHTDqW4gbcOpcyBlbmxsw6AgZGVsIGZpbmFsIGRlbCBkaXNjXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNjkKK21zZ2lkICIiCisiQW1vbmcgdGhlIHByaW1hcnkgcGFydGl0aW9ucywgYXQgbW9zdCBvbmUgY2FuIGJlIGV4dGVuZGVkXG4iCisiIChhbHRob3VnaCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gdW5kZXIgTGludXgpXG4iCittc2dzdHIgIiIKKyJFbnRyZSBsZXMgcGFydGljaW9ucyBwcmltw6ByaWVzLCBhbG1lbnlzIHVuYSBwb3Qgc2VyIGVzdGVzYVxuIgorIiAoZW5jYXJhIHF1ZSBhaXjDsiBubyDDqXMgdW4gcHJvYmxlbWEgZW4gTGludXgpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiQXbDrXM6IGxhIHBhcnRpY2nDsyAlcyBubyBjb21lbsOnYSBhbCBsw61taXQgZCd1biBjaWxpbmRyZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJBdsOtczogbGEgcGFydGljacOzICVzIG5vIGFjYWJhIGFsIGzDrW1pdCBkJ3VuIGNpbGluZHJlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiQXbDrXM6IGhpIGhhIG3DqXMgZCd1bmEgcGFydGljacOzIHByaW3DoHJpYSBtYXJjYWRhIGNvbSBkJ2FycmVuY2FkYSAoYWN0aXZhKVxuIgorIkFpeMOyIG5vIMOpcyBwcm9ibGVtYSBwZXIgYWwgTElMTywgcGVyw7IgbCdNQlIgZGVsIERPUyBubyBhcnJlbmNhcsOgIGFxdWVzdCAiCisiZGlzYy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxOAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1c3VhbGx5IG9uZSBjYW4gYm9vdCBmcm9tIHByaW1hcnkgcGFydGl0aW9ucyBvbmx5XG4iCisiTElMTyBkaXNyZWdhcmRzIHRoZSBgYm9vdGFibGUnIGZsYWcuXG4iCittc2dzdHIgIiIKKyJBdsOtczogbm9ybWFsbWVudCBub23DqXMgZXMgcG90IGFycmVuY2FyIGRlcyBkZSBwYXJ0aWNpb25zIHByaW3DoHJpZXMuXG4iCisiRWwgTElMTyBubyB0aW5kcsOgIGVuIGNvbXB0ZSBlbCBzZW55YWxhZG9yIGQnwqthcnJlbmNhZGHCuy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiQXbDrXM6IG5vIGhpIGhhIGNhcCBwYXJ0aWNpw7MgcHJpbcOgcmlhIG1hcmNhZGEgY29tIGQnYXJyZW5jYWRhIChhY3RpdmEpLlxuIgorIkFpeMOyIG5vIMOpcyBwcm9ibGVtYSBwZXIgYWwgTElMTywgcGVyw7IgZWwgTUJSIGRlIERPUyBubyBhcnJlbmNhcsOgIGFxdWVzdCAiCisiZGlzYy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMzOAorbXNnaWQgInN0YXJ0IgorbXNnc3RyICJpbmljaSIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisicGFydGl0aW9uICVzOiBzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorInBhcnRpY2nDsyAlczogaW5pY2k6IChjaWwuLGNhcMOnLixzZWN0Likgcydlc3BlcmF2YSAoJWxkLCVsZCwlbGQpIHMnaGEgdHJvYmF0ICIKKyIoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgImZpbmFsIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlczogZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisicGFydGljacOzICVzOiBmaW5hbDogKGNpbC4sY2Fww6cuLHNlY3QuKSBzJ2VzcGVyYXZhICglbGQsJWxkLCVsZCkgcydoYSB0cm9iYXQgIgorIiglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgIiIKKyJMYSBwYXJ0aWNpw7MgJXMgYWNhYmEgZW4gZWwgY2lsaW5kcmUgJWxkLCBtw6lzIGVubGzDoCBkZWwgZmluYWwgZGVsIGRpc2NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM3OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc2hpZnRlZCBzdGFydCBvZiB0aGUgZXh0ZCBwYXJ0aXRpb24gZnJvbSAlbGQgdG8gJWxkXG4iCisiKEZvciBsaXN0aW5nIHB1cnBvc2VzIG9ubHkuIERvIG5vdCBjaGFuZ2UgaXRzIGNvbnRlbnRzLilcbiIKK21zZ3N0ciAiIgorIkF2w61zOiBzJ2hhIGRlc3BsYcOnYXQgbCdpbmljaSBkZSBsYSBwYXJ0aWNpw7MgZXN0ZXNhIGRlICVsZCBhICVsZFxuIgorIihOb23DqXMgcGVyIGFsIGxsaXN0YXQsIG5vIGVuIGNhbnZpYSBlbCBjb250aW5ndXQuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiQXbDrXM6IGxhIHBhcnRpY2nDsyBlc3Rlc2Egbm8gY29tZW7Dp2EgYWwgbMOtbWl0IGQndW4gY2lsaW5kcmUuXG4iCisiRWwgRE9TIGkgTGludXggaW50ZXJwcmV0YXJhbiBlbCBjb250aW5ndXQgZGUgbWFuZXJhIGRpZmVyZW50LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICJoaSBoYSBtYXNzYSBwYXJ0aWNpb25zIC0gcydpZ25vcmFyYW4gbGVzIHBvc3RlcmlvcnMgYSBsYTogKCVkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDE3Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICJsJ2FyYnJlIGRlIHBhcnRpY2lvbnM/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAicydoYSBkZXRlY3RhdCBlbCBnZXN0b3IgZGUgZGlzYyAtIG5vIHMnaGEgcG9ndXQgZ2VzdGlvbmFyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgInMnaGEgdHJvYmF0IHVuYSBzaWduYXR1cmEgRE02IC0gcydlc3TDoCBkZWl4YW50IGPDsnJyZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1MgorbXNnaWQgInN0cmFuZ2UuLi4sIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgImVzdHJhbnkuLi4sIHVuYSBwYXJ0aWNpw7MgZXN0ZXNhIGRlIG1pZGEgMD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCittc2dpZCAic3RyYW5nZS4uLiwgYSBCU0QgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAiZXN0cmFueS4uLiwgdW5hIHBhcnRpY2nDsyBCU0QgZGUgbWlkYSAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iCittc2dzdHIgIiAlczogbm8gcydoYSBwb2d1dCByZWNvbsOoaXhlciBlbCB0aXB1cyBkZSBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgInMnaGEgZXNwZWNpZmljYXQgZWwgc2VueWFsYWRvciAtbjogTm8gcydoYSBjYW52aWF0IHJlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjMyCittc2dpZCAiRmFpbGVkIHNhdmluZyB0aGUgb2xkIHNlY3RvcnMgLSBhYm9ydGluZ1xuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGRlc2FyIGVscyBzZWN0b3IgYW50aWNzIC0gcydlc3TDoCBhdm9ydGFudFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjM3IGZkaXNrL3NmZGlzay5jOjE2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHdyaXRpbmcgdGhlIHBhcnRpdGlvbiBvbiAlc1xuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGVzY3JpdXJlIGxhIHBhcnRpY2nDsyBhICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3MTkKK21zZ2lkICJsb25nIG9yIGluY29tcGxldGUgaW5wdXQgbGluZSAtIHF1aXR0aW5nXG4iCittc2dzdHIgImzDrW5pYSBkJ2VudHJhZGEgbGxhcmdhIG8gaW5jb21wbGV0YSAtIHMnZXN0w6Agc29ydGludFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiIgorInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gbCdlbnRyYWRhOiBzJ2VzcGVyYXZhIGA9JyBkZXNwcsOpcyBkZWwgY2FtcCAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzYyCisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiB1bmV4cGVjdGVkIGNoYXJhY3RlciAlYyBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICIiCisicydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBsJ2VudHJhZGE6IG5vIHMnZXNwZXJhdmEgZWwgY2Fyw6BjdGVyICVjIGRlc3Byw6lzIGRlbCAiCisiY2FtcCAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCByZWNvbsOoaXhlciBsJ2VudHJhZGE6ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTAKK21zZ2lkICJudW1iZXIgdG9vIGJpZ1xuIgorbXNnc3RyICJlbCBub21icmUgw6lzIG1hc3NhIGdyYW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxNAorbXNnaWQgInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtYmVyXG4iCittc2dzdHIgImRhZGVzIGVzdHJhbnllcyBkZXNwcsOpcyBkZWwgbm9tYnJlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICJubyBoaSBoYSBlc3BhaSBwZXIgYWwgZGVzY3JpcHRvciBkZSBwYXJ0aWNpw7NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTk3MQorbXNnaWQgImNhbm5vdCBidWlsZCBzdXJyb3VuZGluZyBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBjcmVhciB1bmEgcGFydGljacOzIGVzdGVzYSBhZGp1bnRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwMjIKK21zZ2lkICJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIKK21zZ3N0ciAiaGkgaGEgbWFzc2EgY2FtcHMgYSBsJ2VudHJhZGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA1NgorbXNnaWQgIk5vIHJvb20gZm9yIG1vcmVcbiIKK21zZ3N0ciAiTm8gcXVlZGEgbcOpcyBlc3BhaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIlRpcHVzIG5vIHBlcm3DqHNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIkF2w61zOiBsYSBtaWRhIGluZGljYWRhICglbHUpIGV4Y2VkZWl4IGxhIG3DoHhpbWEgYWNjZXB0YWJsZSAoJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTEzCittc2dpZCAiV2FybmluZzogZW1wdHkgcGFydGl0aW9uXG4iCittc2dzdHIgIkF2w61zOiBwYXJ0aWNpw7MgYnVpZGFcbiIKKworIyBEVUJURQorIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIkF2w61zOiBsJ2luaWNpIGRlIGxhIHBhcnRpY2nDsyBubyDDqXMgY29ycmVjdGUgKG3DrW5pbSAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNDAKK21zZ2lkICJ1bnJlY29nbml6ZWQgYm9vdGFibGUgZmxhZyAtIGNob29zZSAtIG9yICpcbiIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCByZWNvbsOoaXhlciBlbCBzZW55YWxhZG9yIGQnYXJyZW5jYWRhIC0gZXNjb2xsaXUgLSBvICpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1NyBmZGlzay9zZmRpc2suYzoyMTcwCittc2dpZCAicGFydGlhbCBjLGgscyBzcGVjaWZpY2F0aW9uP1xuIgorbXNnc3RyICJlc3BlY2lmaWNhY2nDsyBwYXJjaWFsIGRlIGMsaCxzP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICJMYSBwYXJ0aWNpw7MgZXN0ZXNhIG5vIMOpcyBvbiBzJ2VzcGVyYXZhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMTMKK21zZ2lkICJiYWQgaW5wdXRcbiIKK21zZ3N0ciAiZW50cmFkYSBkb2xlbnRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMzUKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zXG4iCittc2dzdHIgImhpIGhhIG1hc3NhIHBhcnRpY2lvbnNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisiRW50cmFkYSBlbiBlbCBzZWfDvGVudCBmb3JtYXQ7IGVscyBjYW1wcyBhYnNlbnRzIG9idGVuZW4gdW4gdmFsb3IgcGVyICIKKyJkZWZlY3RlLlxuIgorIjxpbmljaT4gPG1pZGE+IDx0aXB1cyBbRSxTLEwsWCxoZXhdPiA8YXJyZW5jYWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiTm9ybWFsbWVudCBub23DqXMgY2FsIGVzcGVjaWZpY2FyIDxpbmljaT4gaSA8bWlkYT4gKGkgcG90c2VyIDx0aXB1cz4pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gZGV2aWNlIC4uLlxuIgorbXNnc3RyICJGb3JtYSBkJ8O6czogJXMgW29wY2lvbnNdIGRpc3Bvc2l0aXUgLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTUKK21zZ2lkICJkZXZpY2U6IHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhIG9yIC9kZXYvc2RhIgorbXNnc3RyICJkaXNwb3NpdGl1OiBzZW1ibGFudCBhIC9kZXYvaGRhIG8gL2Rldi9zZGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgIm9wY2lvbnMgw7p0aWxzOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgICAtcyBbb3IgLS1zaG93LXNpemVdOiBsaXN0IHNpemUgb2YgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAtcyBbbyAtLXNob3ctc2l6ZV06ICBNb3N0cmEgbGEgbWlkYSBkJ3VuYSBwYXJ0aWNpw7MiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTgKK21zZ2lkICIgICAgLWMgW29yIC0taWRdOiAgICAgICAgcHJpbnQgb3IgY2hhbmdlIHBhcnRpdGlvbiBJZCIKK21zZ3N0ciAiIgorIiAgICAtYyBbbyAtLWlkXTogICAgICAgICBJbXByaW1laXggbyBjYW52aWEgbCdpZGVudGlmaWNhZG9yIGRlIGxhIHBhcnRpY2nDsyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgICAtbCBbb3IgLS1saXN0XTogICAgICBsaXN0IHBhcnRpdGlvbnMgb2YgZWFjaCBkZXZpY2UiCittc2dzdHIgIiAgICAtbCBbbyAtLWxpc3RdOiAgICAgICBNb3N0cmEgbGVzIHBhcnRpY2lvbnMgZGUgY2FkYSBkaXNwb3NpdGl1IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAwCittc2dpZCAiICAgIC1kIFtvciAtLWR1bXBdOiAgICAgIGlkZW0sIGJ1dCBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgbGF0ZXIgaW5wdXQiCittc2dzdHIgIiIKKyIgICAgLWQgW28gLS1kdW1wXTogICAgICAgRWwgbWF0ZWl4LCBwZXLDsiBhbWIgdW4gZm9ybWF0IGFkZXF1YXQgcGVyIGEgdW5hXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJhZGEgcG9zdGVyaW9yIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiIKKyIgICAgLWkgW28gLS1pbmNyZW1lbnRdOiAgTm9tYnJlIGRlIGNpbGluZHJlcywgZXRjLiBkZXMgZGUgMSBlbiBjb21wdGVzIGRlIDAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDIKK21zZ2lkICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGFjY2VwdC9yZXBvcnQgaW4gdW5pdHMgb2Ygc2VjdG9ycy9ibG9ja3MvY3lsaW5kZXJzLyIKKyJNQiIKK21zZ3N0ciAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBBY2NlcHRhL3JlcG9ydGEgZW4gdW5pdGF0cyBkZSBzZWN0b3JzL2Jsb2NzLyIKKyJjaWxpbmRyZXMvTUIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDMKK21zZ2lkICIgICAgLVQgW29yIC0tbGlzdC10eXBlc106bGlzdCB0aGUga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICAgLVQgW28gLS1saXN0LXR5cGVzXTogTGxpc3RhIGVscyB0aXB1cyBkZSBwYXJ0aWNpb25zIGNvbmVndWRlcyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAtRCBbb3IgLS1ET1NdOiAgICAgICBmb3IgRE9TLWNvbXBhdGliaWxpdHk6IHdhc3RlIGEgbGl0dGxlIHNwYWNlIgorbXNnc3RyICIiCisiICAgIC1EIFtvIC0tRE9TXTogICAgICAgIFBlciBjb21wYXRpYmlsaXRhdCBhbWIgRE9TOiBlcyBwZXJkIHVuYSBtaWNhIGQnZXNwYWkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgLVIgW29yIC0tcmUtcmVhZF06ICAgbWFrZSBrZXJuZWwgcmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorIiAgICAtUiBbbyAtLXJlLXJlYWRdOiAgICBGYSBxdWUgZWwgbnVjbGkgcmVsbGVnZWl4aSBsYSB0YXVsYSBkZSBwYXJ0aWNpb25zIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA2Cittc2dpZCAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIGNoYW5nZSBvbmx5IHRoZSBwYXJ0aXRpb24gd2l0aCBudW1iZXIgIyIKK21zZ3N0ciAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIE5vbcOpcyBjYW52aWEgbGEgcGFydGljacOzIGFtYiBlbCBuw7ptZXJvICMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBObyBlc2NyaWd1ZXMgcmVhbG1lbnQgYWwgZGlzYyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOAorbXNnaWQgIiIKKyIgICAgLU8gZmlsZSA6ICAgICAgICAgICAgc2F2ZSB0aGUgc2VjdG9ycyB0aGF0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gdG8gZmlsZSIKK21zZ3N0ciAiIgorIiAgICAtTyBmaXR4ZXIgOiAgICAgICAgICBEZXNhIGVscyBzZWN0b3JzIHF1ZSBlcyBzb2JyZWVzY3JpdXJhbiBlbiB1biBmaXR4ZXIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIgICAgLUkgZml0eGVyOiAgICAgICAgICAgUmVzdGF1cmEgYXF1ZXN0cyBzZWN0b3JzIGFsdHJhIHZlZ2FkYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIgorbXNnc3RyICIgICAgLXYgW28gLS12ZXJzaW9uXTogICAgSW1wcmltZWl4IGxhIHZlcnNpw7MiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgLT8gW29yIC0taGVscF06ICAgICAgcHJpbnQgdGhpcyBtZXNzYWdlIgorbXNnc3RyICIgICAgLT8gW28gLS1oZWxwXTogICAgICAgSW1wcmltZWl4IGFxdWVzdCBtaXNzYXRnZSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMgorbXNnaWQgImRhbmdlcm91cyBvcHRpb25zOiIKK21zZ3N0ciAib3BjaW9ucyBwZXJpbGxvc2VzOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIiCisiICAgIC1nIFtvIC0tc2hvdy1nZW9tZXRyeV06ICBJbXByaW1laXggbGEgaWRlYSBxdWUgdMOpIGVsIG51Y2xpIGRlIGxhICIKKyJnZW9tZXRyaWEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTQKK21zZ2lkICIiCisiICAgIC1HIFtvciAtLXNob3ctcHQtZ2VvbWV0cnldOiBwcmludCBnZW9tZXRyeSBndWVzc2VkIGZyb20gdGhlIHBhcnRpdGlvbiAiCisidGFibGUiCittc2dzdHIgIiIKKyIgICAgLUcgW28gLS1zaG93LXB0LWdlb21ldHJ5XTogSW1wcmltZWl4IGxhIGdlb21ldHJpYSBxdWUgcydoYSBlbmRldmluYXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGlyIGRlIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCBbbyAtLXNob3ctZXh0ZW5kZWRdOiAgVGFtYsOpIGxsaXN0YSBsZXMgcGFydGljaW9ucyBlc3Rlc2VzIGEgbGEgIgorInNvcnRpZGFcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gZWxzIGRlc2NyaXB0b3JzIGVzcGVyYXRzIGVuIGwnZW50cmFkYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNworbXNnaWQgIiIKKyIgICAgLUwgIFtvciAtLUxpbnV4XTogICAgICBkbyBub3QgY29tcGxhaW4gYWJvdXQgdGhpbmdzIGlycmVsZXZhbnQgZm9yIExpbnV4IgorbXNnc3RyICIiCisiICAgIC1MICBbbyAtLUxpbnV4XTogICAgICAgTm8gbW9zdHJhIGF2aXNvcyBzb2JyZSBhc3BlY3RlcyBpcnJlbGxldmFudHMgcGVyXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBMaW51eCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAtcSAgW29yIC0tcXVpZXRdOiAgICAgIHN1cHByZXNzIHdhcm5pbmcgbWVzc2FnZXMiCittc2dzdHIgIiAgICAtcSAgW28gLS1xdWlldF06ICAgICAgIFN1cHJpbWVpeCBlbHMgYXZpc29zIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiICAgIFBvZGV1IG1vZGlmaWNhciBsYSBnZW9tZXRyaWEgZGV0ZWN0YWRhIHVzYW50OiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAtQyMgW29yIC0tY3lsaW5kZXJzICNdOnNldCB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyB0byB1c2UiCittc2dzdHIgIiIKKyIgICAgLUMjIFtvIC0tY3lsaW5kZXJzICNdOiBFc3RhYmxlaXggZWwgbm9tYnJlIGRlIGNpbGluZHJlcyBxdWUgcyd1c2FyYW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjEKK21zZ2lkICIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICBzZXQgdGhlIG51bWJlciBvZiBoZWFkcyB0byB1c2UiCittc2dzdHIgIiAgICAtSCMgW28gLS1oZWFkcyAjXTogICAgIEVzdGFibGVpeCBlbCBub21icmUgZGUgY2Fww6dhbHMgcXVlIHMndXNhcmFuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIyCittc2dpZCAiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiCittc2dzdHIgIiAgICAtUyMgW28gLS1zZWN0b3JzICNdOiAgIEVzdGFibGVpeCBlbCBub21icmUgZGUgc2VjdG9ycyBxdWUgcyd1c2FyYW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjMKK21zZ2lkICJZb3UgY2FuIGRpc2FibGUgYWxsIGNvbnNpc3RlbmN5IGNoZWNraW5nIHdpdGg6IgorbXNnc3RyICJQb2RldSBkZXNhY3RpdmFyIHRvdGEgY29tcHJvdmFjacOzIGRlIGNvbnNpc3TDqG5jaWEgYW1iOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIiCisiICAgIC1mICBbbyAtLWZvcmNlXTogICAgICAgRmFyw6AgZWwgcXVlIGxpIGRpZ3VldSwgZW5jYXJhIHF1ZSBzaWd1aSBlc3TDunBpZCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAiRm9ybWEgZCfDunM6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZVx0XHQgbGlzdCBhY3RpdmUgcGFydGl0aW9ucyBvbiBkZXZpY2VcbiIKK21zZ3N0ciAiJXMgZGlzcG9zaXRpdVx0XHQgZW51bWVyYSBsZXMgcGFydGljaW9ucyBhY3RpdmVzIGRlbCBkaXNwb3NpdGl1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIlcyBkaXNwb3NpdGl1IG4xIG4yIC4uLiBhY3RpdmEgcGFydGljaW9ucyBuMSAuLi4sIGRlc2FjdGl2YSBsYSByZXN0YVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIlcyAtVW4gcGVyaWbDqHJpY1x0IGFjdGl2YSBsYSBwYXJ0aWNpw7MgbiwgZGVzYWN0aXZhIGxhIHJlc3RhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiVXNldSBlbCBzZW55YWxhZG9yIC0tZm9yY2UgcGVyIGEgb2J2aWFyIHRvdGVzIGxlcyBjb21wcm92YWNpb25zLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDk1Cittc2dpZCAibm8gY29tbWFuZD9cbiIKK21zZ3N0ciAiY2FwIG9yZHJlP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInRvdGFsOiAlbGx1IGJsb2Nrc1xuIgorbXNnc3RyICJ0b3RhbDogJWxsdSBibG9jc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcwCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLXByaW50LWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiBzZmRpc2sgLS1wcmludC1pZCBkaXNwb3NpdGl1IG7Dum1lcm9fcGFydGljacOzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzIKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tY2hhbmdlLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIElkXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGlzcG9zaXRpdSBuw7ptZXJvX3BhcnRpY2nDsyBJZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAiZm9ybWEgZCfDunM6IHNmZGlzayAtLWlkIGRpc3Bvc2l0aXUgcGFydGljacOzX27Dum1lcm8gW0lkXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjgxCittc2dpZCAiY2FuIHNwZWNpZnkgb25seSBvbmUgZGV2aWNlIChleGNlcHQgd2l0aCAtbCBvciAtcylcbiIKK21zZ3N0ciAibm9tw6lzIHBvZGV1IGVzcGVjaWZpY2FyIHVuIGRpc3Bvc2l0aXUgKGV4Y2VwdGUgYW1iIC1sIG8gLXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgcmVhZC13cml0ZVxuIgorbXNnc3RyICJubyBlcyBwb3Qgb2JyaXIgJXMgcGVyIGEgbGVjdHVyYS1lc2NyaXB0dXJhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIKK21zZ3N0ciAibm8gZXMgcG90IG9icmlyICVzIHBlciBhIGxlY3R1cmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiJXM6IENvcnJlY3RlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3NTMgZmRpc2svc2ZkaXNrLmM6Mjc4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlcyA6ICVsZCBjaWxpbmRyZXMsICVsZCBjYXDDp2FscywgJWxkIHNlY3RvcnMvcGlzdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IHNpemUgb2YgJXNcbiIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBvYnRlbmlyIGxhIG1pZGEgZGUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgIm9jdGV0IGFjdGl1IGluY29ycmVjdGU6IDB4JXggZW4gY29tcHRlcyBkZSAweDgwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkZldFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisiVGVuaXUgJWQgcGFydGljaW9ucyBwcmltw6ByaWVzIGFjdGl2ZXMuIEFpeMOyIG5vIMOpcyBpbXBvcnRhbnQgcGVyIGFsIExJTE8sXG4iCisicGVyw7IgbCdNQlIgZGVsIERPUyBub23DqXMgcG90IGFycmVuY2FyIGRpc2NzIGFtYiB1bmEgcGFydGljacOzIGFjdGl2YS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgImxhIHBhcnRpY2nDsyAlcyB0w6kgbCdpZGVudGlmaWNhZG9yICV4IGkgbm8gZXN0w6Agb2N1bHRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICJJZGVudGlmaWNhZG9yIGRvbGVudCAlbHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAwNAorbXNnaWQgIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlLlxuIgorbXNnc3RyICJBcXVlc3QgZGlzYyBlc3TDoCBhY3R1YWxtZW50IGVuIMO6cy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAiUydoYSBwcm9kdcOvdCB1biBlcnJvciBmYXRhbDogbm8gcydoYSBwb2d1dCB0cm9iYXIgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiQXbDrXM6ICVzIG5vIMOpcyB1biBkaXNwb3NpdGl1IGRlIGJsb2NzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzIKK21zZ2lkICJDaGVja2luZyB0aGF0IG5vLW9uZSBpcyB1c2luZyB0aGlzIGRpc2sgcmlnaHQgbm93IC4uLlxuIgorbXNnc3RyICIiCisiUydlc3TDoCBjb21wcm92YW50IHF1ZSBlbiBhcXVlc3QgbW9tZW50IG5pbmfDuiBlc3RpZ3VpIHVzYW50IGFxdWVzdCBkaXNjLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzQKK21zZ2lkICIiCisiXG4iCisiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UgLSByZXBhcnRpdGlvbmluZyBpcyBwcm9iYWJseSBhIGJhZCBpZGVhLlxuIgorIlVtb3VudCBhbGwgZmlsZSBzeXN0ZW1zLCBhbmQgc3dhcG9mZiBhbGwgc3dhcCBwYXJ0aXRpb25zIG9uIHRoaXMgZGlzay5cbiIKKyJVc2UgdGhlIC0tbm8tcmVyZWFkIGZsYWcgdG8gc3VwcHJlc3MgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkFxdWVzdCBkaXNjIGVzdMOgIGFjdHVhbG1lbnQgZW4gw7pzOyByZXBhcnRpY2lvbmFyLWxvIHByb2JhYmxlbWVudCBzaWd1aVxuIgorInVuYSBtYWxhIGlkZWEuIERlc211bnRldSB0b3RzIGVscyBzaXN0ZW1lcyBkZSBmaXR4ZXJzIGkgZXhlY3V0ZXVcbiIKKyJzd2Fwb2ZmIGVuIHRvdGVzIGxlcyBwYXJ0aWNpb25zIGQnaW50ZXJjYW52aSBkZWwgZGlzYy5cbiIKKyJVc2V1IGVsIHNlbnlhbGFkb3IgLS1uby1yZXJlYWQgcGVyIGEgc3VwcmltaXIgYXF1ZXN0YSBjb21wcm92YWNpw7MuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICJVc2V1IGVsIHNlbnlhbGFkb3IgLS1mb3JjZSBwZXIgYSBvYnZpYXIgdG90ZXMgbGVzIGNvbXByb3ZhY2lvbnMuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICJDb3JyZWN0ZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIk9sZCBzaXR1YXRpb246XG4iCittc2dzdHIgIkFudGlnYSBzaXR1YWNpw7M6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgY2hhbmdlIGl0XG4iCittc2dzdHIgIkxhIHBhcnRpY2nDsyAlZCBubyBleGlzdGVpeDsgbm8gcydoYSBwb2d1dCBjYW52aWFyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiTm92YSBzaXR1YWNpw7M6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjgKK21zZ2lkICIiCisiSSBkb24ndCBsaWtlIHRoZXNlIHBhcnRpdGlvbnMgLSBub3RoaW5nIGNoYW5nZWQuXG4iCisiKElmIHlvdSByZWFsbHkgd2FudCB0aGlzLCB1c2UgdGhlIC0tZm9yY2Ugb3B0aW9uLilcbiIKK21zZ3N0ciAiIgorIkFxdWVzdGVzIHBhcnRpY2lvbnMgbm8gZW0gc2VtYmxlbiBiw6kgLSBubyBzJ2hhIGNhbnZpYXQgcmVzLlxuIgorIihTaSByZWFsbWVudCBkZXNpdGdldSBmZXIgYWl4w7IsIHVzZXUgbCdvcGNpw7MgLS1mb3JjZSkuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzEKK21zZ2lkICJJIGRvbid0IGxpa2UgdGhpcyAtIHByb2JhYmx5IHlvdSBzaG91bGQgYW5zd2VyIE5vXG4iCittc2dzdHIgIk5vIGVtIHNlbWJsYSBiw6kgLSBwcm9iYWJsZW1lbnQgaGFndWV1IGRlIHJlc3BvbmRyZSBOb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICJFc3RldSBzYXRpc2ZldCBhbWIgYWl4w7I/IFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyB5b3Ugd2FudCB0byB3cml0ZSB0aGlzIHRvIGRpc2s/IFt5bnFdICIKK21zZ3N0ciAiRGVzaXRnZXUgZXNjcml1cmUgYWl4w7IgYWwgZGlzYz8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJzZmRpc2s6IHByZW1hdHVyZSBlbmQgb2YgaW5wdXRcbiIKK21zZ3N0ciAiIgorIlxuIgorInNmZGlzazogZmluYWwgcHJlbWF0dXIgZGUgbCdlbnRyYWRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODUKK21zZ2lkICJRdWl0dGluZyAtIG5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICJTJ2VzdMOgIHNvcnRpbnQgLSBubyBzJ2hhIGNhbnZpYXQgcmVzXG4iCisKKyMgRklYTUU6ICd5JywgJ24nLCAncScuIEFyZSB0aGV5IHRyYW5zbGF0YWJsZT8KKyM6IGZkaXNrL3NmZGlzay5jOjMwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGxlYXNlIGFuc3dlciBvbmUgb2YgeSxuLHFcbiIKK21zZ3N0ciAiUmVzcG9uZ3VldSBhbWIgdW5hOiB5LG4scVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdWNjZXNzZnVsbHkgd3JvdGUgdGhlIG5ldyBwYXJ0aXRpb24gdGFibGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlMnaGEgZXNjcml0IGNvcnJlY3RhbWVudCBsYSBub3ZhIHRhdWxhIGRlIHBhcnRpY2lvbnNcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzEwNQorbXNnaWQgIiIKKyJJZiB5b3UgY3JlYXRlZCBvciBjaGFuZ2VkIGEgRE9TIHBhcnRpdGlvbiwgL2Rldi9mb283LCBzYXksIHRoZW4gdXNlIGRkKDEpXG4iCisidG8gemVybyB0aGUgZmlyc3QgNTEyIGJ5dGVzOiAgZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MVxuIgorIihTZWUgZmRpc2soOCkuKVxuIgorbXNnc3RyICIiCisiU2kgaGV1IGNyZWF0IG8gbW9kaWZpY2F0IHVuYSBwYXJ0aWNpw7MgRE9TLCBjb20gL2Rldi9mb283LCB1c2V1IGRkKDEpXG4iCisicGVyIGEgcG9zYXIgYSB6ZXJvIGVscyBwcmltZXJzIDUxMiBvY3RldHM6XG4iCisiXHRkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKE1pcmV1IGZkaXNrKDgpLilcbiIKKworIzogZnNjay9mc2NrLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBjb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICIlczogbm8gcydoYSBwb2d1dCBvYnJpciAlczogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGJhZCBmb3JtYXQgb24gbGluZSAlZCBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjM1MgorbXNnaWQgIiIKKyJXQVJOSU5HOiBZb3VyIC9ldGMvZnN0YWIgZG9lcyBub3QgY29udGFpbiB0aGUgZnNjayBwYXNzbm9cbiIKKyJcdGZpZWxkLiAgSSB3aWxsIGtsdWRnZSBhcm91bmQgdGhpbmdzIGZvciB5b3UsIGJ1dCB5b3VcbiIKKyJcdHNob3VsZCBmaXggeW91ciAvZXRjL2ZzdGFiIGZpbGUgYXMgc29vbiBhcyB5b3UgY2FuLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjQ2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZnNjazogJXM6IG5vdCBmb3VuZFxuIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBubyBzJ2hhIHRyb2JhdCIKKworIzogZnNjay9mc2NrLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZy4uLiAlcyBmb3IgZGV2aWNlICVzIGV4aXRlZCB3aXRoIHNpZ25hbCAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogRXJyb3IgJWQgd2hpbGUgZXhlY3V0aW5nIGZzY2suJXMgZm9yICVzXG4iCittc2dzdHIgIiVzOiBzJ2hhIHByb2R1w690IHVuIGVycm9yICVkIGVuIGRlc2NvbXByaW1pciEgJXAoJWQpXG4iCisKKyM6IGZzY2svZnNjay5jOjcyNAorbXNnaWQgIiIKKyJFaXRoZXIgYWxsIG9yIG5vbmUgb2YgdGhlIGZpbGVzeXN0ZW0gdHlwZXMgcGFzc2VkIHRvIC10IG11c3QgYmUgcHJlZml4ZWRcbiIKKyJ3aXRoICdubycgb3IgJyEnLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjc0MworIywgZnV6enkKK21zZ2lkICJDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpbGVzeXN0ZW0gdHlwZXNcbiIKK21zZ3N0ciAibW91bnQ6IGhhdXJldSBkJ2VzcGVjaWZpY2FyIGVsIHRpcHVzIGRlbCBzaXN0ZW1hIGRlIGZpdHhlcnMiCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6ODkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgbm9uZXhpc3RlbnQgZGV2aWNlXG4iCittc2dzdHIgIiVzOiAlcyBubyDDqXMgdW4gZGlzcG9zaXRpdSBscC5cbiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKKyMsIGZ1enp5Cittc2dpZCAiQ2hlY2tpbmcgYWxsIGZpbGUgc3lzdGVtcy5cbiIKK21zZ3N0ciAiUydlc3TDoCBmb3LDp2FudCBsYSBjb21wcm92YWNpw7MgZGVsIHNpc3RlbWEgZGUgZml0eGVycyBhICVzLlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0td2FpdGluZy0tIChwYXNzICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjEwODUKKyMsIGZ1enp5Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICIiCisiRm9ybWEgZCfDunM6IG1rZnMgWy1WXSBbLXQgdGlwdXNfc2lzLl9maXR4Ll0gW29wY2lvbnNfc2lzLl9maXR4Ll0gIGRpc3Bvc2l0aXUgIgorIlttaWRhXVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgZGV2aWNlc1xuIgorbXNnc3RyICIlczogJXMgbm8gw6lzIHVuIGRpc3Bvc2l0aXUgbHAuXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgb2JyaXIgJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklzIC9wcm9jIG1vdW50ZWQ/XG4iCittc2dzdHIgIiVzIGRlc211bnRhdFxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBmaW5kIG1hdGNoaW5nIGZpbGVzeXN0ZW06ICVzXG4iCittc2dzdHIgIlMnZXN0w6AgZGVzbXVudGFudCBlbHMgc2lzdGVtZXMgZGUgZml0eGVycyByZXN0YW50cy4uLiIKKworIzogZnNjay9mc2NrLmM6MTE1NiBmc2NrL2ZzY2suYzoxMjQyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iCittc2dzdHIgIiVzOiBhcmd1bWVudCBkZXNjb25lZ3V0OiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZGUgJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTI4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZzY2tfcGF0aFxuIgorbXNnc3RyICJObyBlcyBwb3QgYXNzaWduYXIgbWVtw7JyaWEgaW50ZXJtw6hkaWEgcGVyIGFscyBub2RlcyBkJ2lkZW50aWZpY2FjacOzIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MjI5Cittc2dpZCAiVHJ5IGBnZXRvcHQgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiRXNjb2xsaXUgYGdldG9wdCAtLWhlbHAnIHBlciBvYnRlbmlyIG3DqXMgaW5mb3JtYWNpw7MuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyOTUKK21zZ2lkICJlbXB0eSBsb25nIG9wdGlvbiBhZnRlciAtbCBvciAtLWxvbmcgYXJndW1lbnQiCittc2dzdHIgIm9wY2nDsyBsbGFyZ2EgYnVpZGEgZGVzcHLDqXMgZGUgbCdhcmd1bWVudCAtbCBvIC0tbG9uZyIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAiaW50w6hycHJldCBkJ29yZHJlcyBkZXNjb25lZ3V0IGRlc3Byw6lzIGRlIGwnYXJndW1lbnQgLXMgbyAtLXNoZWxsIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIwCittc2dpZCAiVXNhZ2U6IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICJGb3JtYSBkJ8O6czogZ2V0b3B0IGNhZGVuYV9vcGNpb25zIHBhcsOgbWV0cmVzXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjEKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSBbLS1dIG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICBnZXRvcHQgW29wY2lvbnNdIFstLV0gY2FkZW5hX29wY2lvbnMgcGFyw6BtZXRyZXNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbb3BjaW9uc10gLW98LS1vcHRpb25zIGNhZGVuYV9vcGNpb25zIFtvcGNpb25zXSBbLS1dXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjMKK21zZ2lkICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICBwYXLDoG1ldHJlc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI0Cittc2dpZCAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBBbGxvdyBsb25nIG9wdGlvbnMgc3RhcnRpbmcgd2l0aCBzaW5nbGUgLVxuIgorbXNnc3RyICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIFBlcm1ldCBvcGNpb25zIGxsYXJndWVzIGFtYiBub23DqXMgdW4gLVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI1Cittc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRoaXMgc21hbGwgdXNhZ2UgZ3VpZGVcbiIKK21zZ3N0ciAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIEFxdWVzdGEgcGV0aXRhIGd1aWEgZCfDunNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNgorbXNnaWQgIiAgLWwsIC0tbG9uZ29wdGlvbnM9bG9uZ29wdHMgICBMb25nIG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1sLCAtLWxvbmdvcHRpb25zPW9wY19sbGFyZyAgIE9wY2lvbnMgbGxhcmd1ZXMgYSByZWNvbsOoaXhlclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI3Cittc2dpZCAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iCittc2dzdHIgIiIKKyIgIC1uLCAtLW5hbWU9bm9tX3Byb2dyYW1hICAgICAgRWwgbm9tIGFtYiBlbCBxdWUgcydpbmZvcm1hIGRlbHMgZXJyb3JzXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjgKK21zZ2lkICIgIC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLW8sIC0tb3B0aW9ucz1jYWRlbmFfb3BjaW9ucyBPcGNpb25zIGN1cnRlcyBhIHJlY29uw6hpeGVyXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjkKK21zZ2lkICIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgRGlzYWJsZSBlcnJvciByZXBvcnRpbmcgYnkgZ2V0b3B0KDMpXG4iCittc2dzdHIgIiIKKyIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgSW5oYWJpbGl0YSBlbHMgaW5mb3JtZXMgZCdlcnJvciBtaXRqYW7Dp2FudFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRvcHQoMylcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMAorbXNnaWQgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBub3JtYWwgb3V0cHV0XG4iCittc2dzdHIgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBoaSBoYSBzb3J0aWRhIG5vcm1hbFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMxCittc2dpZCAiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVsbCBxdW90aW5nIGNvbnZlbnRpb25zXG4iCittc2dzdHIgIiIKKyIgIC1zLCAtLXNoZWxsPWludMOocnByZXRfb3JkcmVzIEVzdGFibGVpeCBlbHMgbWF0ZWl4b3MgY29udmVuaXMgcXVhbnQgYSBsZXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tZXRlcyBxdWUgbCdpbnRlcnByZXQgZCdvcmRyZXMgaW5kaWNhdFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBQcm92YSBsYSB2ZXJzacOzIGRlbCBnZXRvcHQoMSlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMworbXNnaWQgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUgdGhlIG91dHB1dFxuIgorbXNnc3RyICIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgTm8gZXMgcG9zYXLDoCBsYSBzb3J0aWRhIGVudHJlIGNvbWV0ZXNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzNAorbXNnaWQgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBPdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorbXNnc3RyICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgTW9zdHJhIGxhIGluZm9ybWFjacOzIGRlIGxhIHZlcnNpw7NcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjM4OCBnZXRvcHQvZ2V0b3B0LmM6NDQ3Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgImZhbHRhIGwnYXJndW1lbnQgY2FkZW5hX29wY2lvbnMiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImdldG9wdCAoZW5oYW5jZWQpIDEuMS40XG4iCittc2dzdHIgImdldG9wdCAobWlsbG9yYXQpIDEuMS4zXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0NDEKK21zZ2lkICJpbnRlcm5hbCBlcnJvciwgY29udGFjdCB0aGUgYXV0aG9yLiIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBpbnRlcm47IGNvbnRhY3RldSBhbWIgbCdhdXRvci4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZWQgZnJvbSBNSUxPXG4iCittc2dzdHIgInMnaGEgYXJyZW5jYXQgZGVzIGRlIE1JTE9cbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIlJlbGxvdGdlIEJDRCBSdWZmaWFuXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICJzJ2hhIGFqdXN0YXQgZWwgcG9ydCBkZWwgcmVsbG90Z2UgYSAweCV4XG4iCisKKyMgRklYTUU6IHdoYXQgdGhlIGhlY2sgaXMgdGhpcyBzdXBwb3NlZCB0byB0ZWxsPworIzogaHdjbG9jay9jbW9zLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZ1bmt5IFRPWSFcbiIKK21zZ3N0ciAiZnVua3kgVE9ZIVxuIgorCisjIEZJWE1FOiBhdG9taWMgd2hhdD8KKyM6IGh3Y2xvY2svY21vcy5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXRvbWljICVzIGZhaWxlZCBmb3IgMTAwMCBpdGVyYXRpb25zISIKK21zZ3N0ciAiJXM6IGNvbXByb3ZhY2nDsyBkZSAlcyBhdMOybWljIGhhIGZhbGxhdCBwZXIgMTAwMCBpdGVyYWNpb25zISIKKworIzogaHdjbG9jay9jbW9zLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMwNworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gL2Rldi9wb3J0OiAlcyIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBvYnJpciAvZGV2L3BvcnQ6ICVzIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgb2J0ZW5pciBlbCBwZXJtw61zIHBlcnF1w6ggbm8gcydoYSBpbnRlbnRhdC5cbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIHVuYWJsZSB0byBnZXQgSS9PIHBvcnQgYWNjZXNzOiAgdGhlIGlvcGwoMykgY2FsbCBmYWlsZWQuXG4iCittc2dzdHIgIiIKKyIlcyBubyBwb3QgYWNvbnNlZ3VpciBsJ2FjY8OpcyBhbCBwb3J0IGQnRS9TOiBsYSBjcmlkYSBpb3BsKDMpIGhhIGZhbGxhdC5cbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JhYmx5IHlvdSBuZWVkIHJvb3QgcHJpdmlsZWdlcy5cbiIKK21zZ3N0ciAiUHJvYmFibGVtZW50IG5lY2Vzc2l0ZXUgcHJpdmlsZWdpcyBkZSByb290LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiAlcyB0aW1lLlxuIgorbXNnc3RyICJTJ2VzdMOgIGFzc3VtaW50IHF1ZSBlbCByZWxsb3RnZSBkZWwgbWFxdWluYXJpIG1hbnTDqSBsJ2hvcmEgJXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJVVEMiCittc2dzdHIgIlVUQyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNQorbXNnaWQgImxvY2FsIgorbXNnc3RyICJsb2NhbCIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXYXJuaW5nOiB1bnJlY29nbml6ZWQgdGhpcmQgbGluZSBpbiBhZGp0aW1lIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEF2w61zOiBubyBzJ2hhIHJlY29uZWd1dCBsYSB0ZXJjZXJhIGzDrW5pYSBkZWwgZml0eGVyIGFkanRpbWVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIihFeHBlY3RlZDogYFVUQycgb3IgYExPQ0FMJyBvciBub3RoaW5nLilcbiIKK21zZ3N0ciAiKFMnZXNwZXJhdmE6IGBVVEMnLCBgTE9DQUwnIG8gcmVzKS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiTCfDumx0aW0gYWp1c3QgZGUgZGVzZmFzYW1lbnQgZXMgdmEgZmVyICVsZCBzZWdvbnMgZGVzcHLDqXMgZGUgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBjYWxpYnJhdGlvbiBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiTCfDumx0aW1hIGNhbGlicmFjacOzIGVzIHZhIGZlciAlbGQgc2Vnb25zIGRlc3Byw6lzIGRlIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIkhhcmR3YXJlIGNsb2NrIGlzIG9uICVzIHRpbWVcbiIKK21zZ3N0ciAiRWwgcmVsbG90Z2UgZGVsIG1hcXVpbmFyaSB0w6kgbCdob3JhICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgImRlc2NvbmVndXQiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGZvciBjbG9jayB0aWNrLi4uXG4iCittc2dzdHIgIlMnZXN0w6AgZXNwZXJhbnQgZWwgdGljIGRlbCByZWxsb3RnZS4uLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc3luY2hyb25pemF0aW9uIGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1OAorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5nb3QgY2xvY2sgdGlja1xuIgorbXNnc3RyICIuLi5zJ2hhIHJlYnV0IGVsIHRpYyBkZWwgcmVsbG90Z2VcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIiIKKyJWYWxvcnMgaW5jb3JyZWN0ZXMgZW4gZWwgcmVsbG90Z2UgZGVsIG1hcXVpbmFyaTogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6IgorIiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiSG9yYSBkZWwgbWFxdWluYXJpIDogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWdvbnMgZGVzcHLDqXMgZGUgIgorIjE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIiIKKyJIb3JhIGxsZWdpZGEgZGVsIHJlbGxvdGdlIGRlbCBtYXF1aW5hcmkgOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIEhhcmR3YXJlIENsb2NrIHRvICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiUydlc3TDoCBlc3RhYmxpbnQgbCdob3JhIGRlbCBtYXF1aW5hcmkgZW4gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vnb25zIGRlcyBkZSAiCisiMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIkVsIHJlbGxvdGdlIG5vIHMnaGEgbW9kaWZpY2F0IC0gbm9tw6lzIHMnaGEgcHJvdmF0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1MzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaW1lIGVsYXBzZWQgc2luY2UgcmVmZXJlbmNlIHRpbWUgaGFzIGJlZW4gJS42ZiBzZWNvbmRzLlxuIgorIkRlbGF5aW5nIGZ1cnRoZXIgdG8gcmVhY2ggdGhlIG5ldyB0aW1lLlxuIgorbXNnc3RyICIiCisiRWwgdGVtcHMgdHJhbnNjb3JyZWd1dCBkZXMgZGUgbCdob3JhIGRlIHJlZmVyw6huY2lhIMOpcyBkZSAlLjZmIHNlZ29ucy5cbiIKKyJTJ2hhIGVuZGFycmVyaXQgZWwgbW9tZW50IGVuIHF1w6ggcydhcnJpYmFyw6AgYWwgc2Vnw7xlbnQgc2Vnb24gY29tcGxldC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgcmVnaXN0ZXJzIGNvbnRhaW4gdmFsdWVzIHRoYXQgYXJlIGVpdGhlciBpbnZhbGlkIChlLmcuICIKKyI1MHRoIGRheSBvZiBtb250aCkgb3IgYmV5b25kIHRoZSByYW5nZSB3ZSBjYW4gaGFuZGxlIChlLmcuIFllYXIgMjA5NSkuXG4iCittc2dzdHIgIiIKKyJFbHMgcmVnaXN0cmVzIGRlbCByZWxsb3RnZSBkZWwgbWFxdWluYXJpIGNvbnRlbmVuIHZhbG9yZXMgaW52w6BsaWRzIChwLmV4LiAiCisiZGlhIDUwIGRlbCBtZXMpIG8gZXhjZWRlaXhlbiBlbCByYW5nIHF1ZSBwb2RlbiB1c2FyIChwLmUuIGwnYW55IDIwOTUpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIlcyAgJS42ZiBzZWdvbnNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIC0tZGF0ZSBvcHRpb24gc3BlY2lmaWVkLlxuIgorbXNnc3RyICJObyBzJ2hhIGVzcGVjaWZpY2F0IGwnb3BjacOzIC0tZGF0ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICJhcmd1bWVudCAtLWRhdGUgbWFzc2EgbGxhcmdcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgdmFsdWUgb2YgdGhlIC0tZGF0ZSBvcHRpb24gaXMgbm90IGEgdmFsaWQgZGF0ZS5cbiIKKyJJbiBwYXJ0aWN1bGFyLCBpdCBjb250YWlucyBxdW90YXRpb24gbWFya3MuXG4iCittc2dzdHIgIiIKKyJFbCB2YWxvciBkZSBsJ29wY2nDsyAtLWRhdGUgbm8gw6lzIHVuYSBkYXRhIHbDoGxpZGEuXG4iCisiRW4gY29uY3JldCwgY29udMOpIGNvbWV0ZXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJc3N1aW5nIGRhdGUgY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiUydlc3TDoCBleGVjdXRhbnQgbCdvcmRyZSBkYXRlOiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDAKK21zZ2lkICJVbmFibGUgdG8gcnVuICdkYXRlJyBwcm9ncmFtIGluIC9iaW4vc2ggc2hlbGwuIHBvcGVuKCkgZmFpbGVkIgorbXNnc3RyICIiCisiTm8gcydoYSBwb2d1dCBleGVjdXRhciBlbCBwcm9ncmFtYSDCq2RhdGXCuyBlbiBsJ2ludGVycHJldCBkJ29yZHJlcyAvYmluL3NoLiAiCisicG9wZW4oKSBoYSBmYWxsYXQiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgInJlc3Bvc3RhIGRlIGwnb3JkcmUgZGF0ZSA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKyJMJ29yZHJlIGRhdGUgZXhlY3V0YWRhIHBlciAlcyBoYSByZXRvcm5hdCByZXN1bHRhdHMgaW5lc3BlcmF0cy5cbiIKKyJMJ29yZHJlIGVyYTpcbiIKKyIgICVzXG4iCisiTGEgcmVzcG9zdGEgaGEgZXN0YXQ6XG4iCisiICAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIGludGVnZXIgd2hlcmUgIgorInRoZSBjb252ZXJ0ZWQgdGltZSB2YWx1ZSB3YXMgZXhwZWN0ZWQuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAlc1xuIgorbXNnc3RyICIiCisiTCdvcmRyZSBkYXRlIGV4ZWN1dGFkYSBwZXIgJXMgbm8gaGEgdG9ybmF0IGNhcCB2YWxvciBlbnRlciB0b3QgaSBxdWUgIgorInMnZXNwZXJhdmEgZWwgdmFsb3IgZGUgbCdob3JhIGNvbnZlcnRpZGEuXG4iCisiTCdvcmRyZSBlcmE6XG4iCisiICAlc1xuIgorIkxhIHJlc3Bvc3RhIGhhIGVzdGF0OlxuIgorIiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICJsYSBjYWRlbmEgZGUgbGEgZGF0YSAlcyBlcXVpdmFsIGEgJWxkIHNlZ29ucyBkZXMgZGUgMTk2OS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBzZXQgdGhlICIKKyJTeXN0ZW0gVGltZSBmcm9tIGl0LlxuIgorbXNnc3RyICIiCisiRWwgcmVsbG90Z2UgZGUgbWFxdWluYXJpIG5vIGNvbnTDqSB1bmEgaG9yYSB2w6BsaWRhLCBwZWwgcXVlIG5vIGVzIHBvdCAiCisiZXN0YWJsaXIgbCdob3JhIGRlbCBzaXN0ZW1hIGEgcGFydGlyIGQnYXF1ZXN0IHZhbG9yLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjcgaHdjbG9jay9od2Nsb2NrLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgc2V0dGltZW9mZGF5OlxuIgorbXNnc3RyICJDcmlkYW50IGEgc2V0dGltZW9mZGF5OlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICIiCisiTm8gcydlc3TDoCBjb25maWd1cmFudCBlbCByZWxsb3RnZSBkZWwgc2lzdGVtYSBwZXJxdcOoIHMnZXN0w6AgZXhlY3V0YW50IGVuICIKKyJtb2RlIGRlIHByb3ZhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkhldSBkZSBzZXIgZWwgc3VwZXJ1c3VhcmkgcGVyIGNvbmZpZ3VyYXIgcmVsbG90Z2UgZGVsIHNpc3RlbWEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgInNldHRpbWVvZmRheSgpIGhhIGZhbGxhdCIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkN1cnJlbnQgc3lzdGVtIHRpbWU6ICVsZCA9ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0VVRDOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSB0aGUgSGFyZHdhcmUgQ2xvY2sgcHJldmlvdXNseSBjb250YWluZWQgIgorImdhcmJhZ2UuXG4iCittc2dzdHIgIiIKKyJObyBzJ2hhIGFqdXN0YXQgZWwgZmFjdG9yIGRlIGRlc2Zhc2FtZW50IHBlcnF1w6ggZWwgcmVsbG90Z2UgZGVsIG1hcXVpbmFyaSAiCisiY29udGVuaWEgdmFsb3JzIGRlc3ByZWNpYWJsZXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorIk5vIHMnaGEgYWp1c3RhdCBlbCBmYWN0b3IgZGUgZGVzZmFzYW1lbnQgcGVycXXDqCBsYSBkYXRhIGRlIGwnw7psdGltYVxuIgorImNhbGlicmFjacOzIMOpcyB6ZXJvLCBhaXjDrSBxdWUgbCdoaXN0b3JpYWwgw6lzIGRvbGVudCwgaSDDqXMgbmVjZXNzw6ByaWFcbiIKKyJ1bmEgY2FsaWJyYWNpw7MgZGVzIGRlbCBjb21lbsOnYW1lbnQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBpdCBoYXMgYmVlbiBsZXNzIHRoYW4gYSBkYXkgc2luY2UgdGhlICIKKyJsYXN0IGNhbGlicmF0aW9uLlxuIgorbXNnc3RyICIiCisiTm8gcydhanVzdGEgZWwgZmFjdG9yIGRlIGRlc2Zhc2FtZW50IHBlcnF1w6ggZmEgbWVueXMgZCd1biBkaWEgZGUgbCfDumx0aW1hICIKKyJjYWxpYnJhY2nDsy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yICIKKyJvZiAlZiBzZWNvbmRzL2RheS5cbiIKKyJBZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJ5ICVmIHNlY29uZHMvZGF5XG4iCittc2dzdHIgIiIKKyJFbCByZWxsb3RqZSBzJ2hhIGRlc2Zhc2F0ICUuMWYgc2Vnb25zIGVuIGVscyDDumx0aW1zICVkIHNlZ29ucywgdG90IGkgZW1wcmFyICIKKyJ1biBmYWN0b3IgZGUgZGVzZmFzYW1lbnQgZGUgJWYgc2Vnb25zIGRpYXJpcy5cbiIKKyJTJ2VzdMOgIGFqdXN0YW50IGVsIGZhY3RvciBkZSBkZXNmYXNhbWVudCBhICVmIHNlZ29ucyBkaWFyaXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiSGFuIHRyYW5zY29ycmVndXQgJWQgc2Vnb25zIGRlcyBkZSBsJ8O6bHRpbSBhanVzdFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiIgorIlMnaGFuIGQnaW5zZXJpciAlZCBzZWdvbnMgaSByZWZlcmlyIGVsIHRlbXBzIGFudGVyaW9yIGEgZmEgJS42ZiBzZWdvbnNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIiIKKyJObyBzJ2FjdHVhbGl0emFyw6AgZWwgZml0eGVyIGFkanRpbWUgcGVycXXDqCBzJ2V4ZWN1dGEgZW4gbW9kZSBkZSBwcm92YS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIlMnaGF1cmlhIGVzY3JpdCBlbCBzZWfDvGVudCBhICVzOlxuIgorIiVzIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb3VsZCBub3Qgb3BlbiBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyBpbiBpdCAoJXMpIGZvciAiCisid3JpdGluZyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDA2IGh3Y2xvY2svaHdjbG9jay5jOjEwMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHVwZGF0ZSBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyAoJXMpIGluIGl0IgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJObyBzJ2hhbiBhY3R1YWxpdHphdCBlbHMgcGFyw6BtZXRyZXMgZCdhanVzdGFtZW50IGRlbCBkZXNmYXNhbWVudC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICIiCisiRWwgcmVsbG90amUgZGUgbWFxdWluYXJpIG5vIGNvbnTDqSB1bmEgaG9yYSB2w6BsaWRhLCBpIG5vIGVzIHBvdCBhanVzdGFyLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKyJObyBzJ2hhIGFqdXN0YXQgZWwgZmFjdG9yIGRlIGRlc2Zhc2FtZW50IHBlcnF1w6ggbGEgZGF0YSBkZSBsJ8O6bHRpbWFcbiIKKyJjYWxpYnJhY2nDsyDDqXMgemVybywgYWl4w60gcXVlIGwnaGlzdG9yaWFsIMOpcyBkb2xlbnQsIGkgw6lzIG5lY2Vzc8OgcmlhXG4iCisidW5hIGNhbGlicmFjacOzIGRlcyBkZWwgY29tZW7Dp2FtZW50LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWRlZCBhZGp1c3RtZW50IGlzIGxlc3MgdGhhbiBvbmUgc2Vjb25kLCBzbyBub3Qgc2V0dGluZyBjbG9jay5cbiIKK21zZ3N0ciAiIgorIkwnYWp1c3RhbWVudCBuZWNlc3Nhcmkgw6lzIGluZmVyaW9yIGEgdW4gc2Vnb24sIG5vIHMnYWp1c3RhcsOgIGVsIHJlbGxvdGdlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nICVzLlxuIgorbXNnc3RyICJVc2FudCAlcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNworIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgY2xvY2sgaW50ZXJmYWNlIGZvdW5kLlxuIgorbXNnc3RyICJObyBzJ2hhIHRyb2JhdCBjYXAgaW50ZXJmw61jaWUgZGUgcmVsbG90Z2UgdXNhYmxlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIk5vIGVzIHBvdCBlc3RhYmxpciBlbCByZWxsb3RnZSBkZWwgc2lzdGVtYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBrZWVwcyBhbiBlcG9jaCB2YWx1ZSBmb3IgdGhlIEhhcmR3YXJlIENsb2NrIG9ubHkgb24gYW4gQWxwaGEgIgorIm1hY2hpbmUuXG4iCisiVGhpcyBjb3B5IG9mIGh3Y2xvY2sgd2FzIGJ1aWx0IGZvciBhIG1hY2hpbmUgb3RoZXIgdGhhbiBBbHBoYVxuIgorIihhbmQgdGh1cyBpcyBwcmVzdW1hYmx5IG5vdCBydW5uaW5nIG9uIGFuIEFscGhhIG5vdykuICBObyBhY3Rpb24gdGFrZW4uXG4iCittc2dzdHIgIiIKKyJFbCBudWNsaSBub23DqXMgdMOpIHVuIHZhbG9yIGQnw6hwb2NhIHBlciBhbCByZWxsb3RnZSBkZWwgbWFxdWluYXJpIGVuIGxlcyAiCisibcOgcXVpbmVzIEFscGhhLlxuIgorIkFxdWVzdGEgY8OycGlhIGRlIGh3Y2xvY2sgZXMgdmEgY29tcGlsYXIgcGVyIGEgdW5hIG3DoHF1aW5hIG5vIEFscGhhIChwZWwgcXVlXG4iCisicG9zc2libGVtZW50IGFyYSBubyBzJ2V4ZWN1dGkgZW4gY2FwIG3DoHF1aW5hIEFscGhhKS4gTm8gcydoYSBleGVjdXRhdCBjYXAgIgorImFjY2nDsy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gZ2V0IHRoZSBlcG9jaCB2YWx1ZSBmcm9tIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIk5vIGVzIHBvdCBvYnRlbmlyIGVsIHZhbG9yIGQnw6hwb2NhIGRlbCBudWNsaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJLZXJuZWwgaXMgYXNzdW1pbmcgYW4gZXBvY2ggdmFsdWUgb2YgJWx1XG4iCittc2dzdHIgIkVsIG51Y2xpIGFzc3VtZWl4IHVuIHZhbG9yIGQnw6hwb2NhIGRlICVsdVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBzZXQgdGhlIGVwb2NoIHZhbHVlLCB5b3UgbXVzdCB1c2UgdGhlICdlcG9jaCcgb3B0aW9uIHRvIHRlbGwgdG8gd2hhdCAiCisidmFsdWUgdG8gc2V0IGl0LlxuIgorbXNnc3RyICIiCisiUGVyIGVzdGFibGlyIGVsIHZhbG9yIGQnw6hwb2NhLCBoYXVyZXUgZCd1c2FyIGwnb3BjacOzICdlcG9jaCcgcGVyIGEgaW5kaWNhciBhICIKKyJxdWluIHZhbG9yIHMnaGEgZCdlc3RhYmxpci5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyB0aGUgZXBvY2ggdG8gJWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIk5vIHMnZXN0YWJsaXLDoCBlbCB2YWxvciBkZSBsJ8OocG9jYSBhICAlZCAtIG5vbcOpcyBzJ2VzdMOgIHByb3ZhbnQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiTm8gZXMgcG90IGVzdGFibGlyIGVsIHZhbG9yIGQnw6hwb2NhIGVuIGVsIG51Y2xpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjkwIG1pc2MtdXRpbHMvY2FsLmM6MzQ3IG1pc2MtdXRpbHMva2lsbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiVzIGRlICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorImh3Y2xvY2sgLSBDb25zdWx0YSBpIGNvbmZpZ3VyYSBlbCByZWxsb3RnZSBkZSBtYXF1aW5hcmkgKFJUQylcbiIKKyJcbiIKKyJGb3JtYSBkJ8O6czogaHdjbG9jayBbZnVuY2nDs10gW29wY2lvbnMuLi5dXG4iCisiXG4iCisiRnVuY2lvbnM6XG4iCisiICAtLWhlbHAgICAgICAgIE1vc3RyYSBhcXVlc3RhIGFqdWRhXG4iCisiICAtLXNob3cgICAgICAgIExsZWdlaXggZWwgUlRDIGkgbidpbXByaW1laXggZWwgcmVzdWx0YXRcbiIKKyIgIC0tc2V0ICAgICAgICAgRXN0YWJsZWl4IGVsIFJUQyBhIGwnaG9yYSBwcm9wb3JjaW9uYWRhIGFtYiAtLWRhdGVcbiIKKyIgIC0taGN0b3N5cyAgICAgRXN0YWJsZWl4IGwnaG9yYSBkZWwgc2lzdGVtYSBhIHBhcnRpciBkZWwgUlRDXG4iCisiICAtLXN5c3RvaGMgICAgIEVzdGFibGVpeCBlbCBSVEMgYSBsJ2hvcmEgYWN0dWFsIGRlbCBzaXN0ZW1hXG4iCisiICAtLWFkanVzdCAgICAgIEFqdXN0YSBlbCBSVEMgcGVyIGEgY29tcGVuc2FyIGVsIGRlc2Zhc2FtZW50IHNpc3RlbcOgdGljIGRlcyAiCisiZGUgXG4iCisiICAgICAgICAgICAgICAgIGxhIMO6bHRpbWEgdmVnYWRhIHF1ZSBlcyB2YSBlc3RhYmxpciBvIGFqdXN0YXIgZWwgcmVsbG90Z2VcbiIKKyIgIC0tZ2V0ZXBvY2ggICAgSW1wcmltZWl4IGVsIHZhbG9yIGRlIGwnw6hwb2NhIGRlbCBSVEMgZGVsIG51Y2xpXG4iCisiICAtLXNldGVwb2NoICAgIEVzdGFibGVpeCBlbCB2YWxvciBkZSBsJ8OocG9jYSBkZWwgUlRDIGRlbCBudWNsaSBcbiIKKyIgICAgICAgICAgICAgICAgYWwgdmFsb3IgcHJvcG9yY2lvbmF0IGFtYiAtLWVwb2NoXG4iCisiICAtLXZlcnNpb24gICAgIEltcHJpbWVpeCBsYSB2ZXJzacOzIGRlIGh3Y2xvY2sgYSBsYSBzb3J0aWRhIGVzdMOgbmRhcmRcbiIKKyJcbiIKKyJPcGNpb25zOiBcbiIKKyIgIC0tdXRjICAgICAgICAgRWwgUlRDIGVzdMOgIGVuIHRlbXBzIHVuaXZlcnNhbCBjb29yZGluYXRcbiIKKyIgIC0tbG9jYWx0aW1lICAgRWwgUlRDIHTDqSBsJ2hvcmEgbG9jYWxcbiIKKyIgIC0tZGlyZWN0aXNhICAgQWNjZWRlaXggYWwgYnVzIElTQSBkaXJlY3RhbWVudCBlbiBjb21wdGVzIGRlICVzXG4iCisiICAtLWJhZHllYXIgICAgIElnbm9yYSBsJ2FueSBkZWwgUlRDIGphIHF1ZSBlbCBCSU9TIG5vIGZ1bmNpb25hXG4iCisiICAtLWRhdGUgICAgICAgIEVzcGVjaWZpY2EgZWwgdGVtcHMgZW4gcXXDqCBlcyBkZXNpdGphIGVzdGFibGlyIGVsIFJUQ1xuIgorIiAgLS1lcG9jaD1hbnkgICBFc3BlY2lmaWNhIGwnYW55IHF1ZSBjb3JyZXNwb24gYWwgY29tZW7Dp2FtZW50IGRlbCB2YWxvciBkZVxuIgorIiAgICAgICAgICAgICAgICBsJ8OocG9jYSBkZWwgUlRDXG4iCisiICAtLW5vYWRqZmlsZSAgIE5vIGFjY2VkZWl4aXMgYSAvZXRjL2FkanRpbWUuIFJlcXVlcmVpeCBsJ8O6cyBkZSAtLXV0YyBvIGLDqVxuIgorIiAgICAgICAgICAgICAgICAtLWxvY2FsdGltZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisiICAtLWplbnNlbiwgLS1hcmMsIC0tc3JtLCAtLWZ1bmt5LXRveVxuIgorIiAgICAgICAgICAgICAgICBJbmRpY2EgYWwgUlRDIGVsIHRpcHVzIGQnQWxwaGEgcXVlIHRlbml1ICh2ZWdldSBod2Nsb2NrKDgpKVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNDMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGNvbm5lY3QgdG8gYXVkaXQgc3lzdGVtXG4iCittc2dzdHIgIk5vIGVzIHBvdCBlc3RhYmxpciBlbCByZWxsb3RnZSBkZWwgc2lzdGVtYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMgbm8gYWRtZXQgYXJndW1lbnRzIHF1ZSBubyBzaWd1aW4gb3BjaW9ucy4gSGV1IGVzcGVjaWZpY2F0ICVkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyJIZXUgZXNwZWNpZmljYXQgbcO6bHRpcGxlcyBmdW5jaW9ucy5cbiIKKyJOb23DqXMgcG9kZXUgZmVyLW5lIHVuYSBhIGxhIHZlZ2FkYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBMZXMgb3BjaW9ucyAtLXV0YyBpIC0tbG9jYWx0aW1lIHMnZXhjbG91ZW4gbcO6dHVhbWVudC4gTGVzIGhldSAiCisiZXNwZWNpZmljYXQgdG90ZXMgZHVlcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU3MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkanVzdCBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBMZXMgb3BjaW9ucyAtLWFkanVzdCBpIC0tbm9hZGpmaWxlIHMnZXhjbG91ZW4gbcO6dHVhbWVudC4gTGVzIGhldSAiCisiZXNwZWNpZmljYXQgdG90ZXMgZHVlcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGpmaWxlIGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IExlcyBvcGNpb25zIC0tYWRqdXN0IGkgLS1ub2FkamZpbGUgcydleGNsb3VlbiBtw7p0dWFtZW50LiBMZXMgaGV1ICIKKyJlc3BlY2lmaWNhdCB0b3RlcyBkdWVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIlczogQW1iIC0tbm9hZGpmaWxlLCBoYXVyZXUgZCdlc3BlY2lmaWNhciAtLXV0YyBvIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiIgorIkwnaG9yYSBpbmRpY2FkYSBwZXIgZXN0YWJsaXIgbm8gw6lzIHVzYWJsZS4gTm8gcydoYSB0b2NhdCBlbCByZWxsb3RnZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICJOb23DqXMgZWwgc3VwZXJ1c3VhcmkgcG90IGNhbnZpYXIgZWwgcmVsbG90Z2UgZGVsIG1hcXVpbmFyaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyNAorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIFN5c3RlbSBDbG9jay5cbiIKK21zZ3N0ciAiTm9tw6lzIGVsIHN1cGVydXN1YXJpIHBvcnQgY2FudmlhciBlbCByZWxsb3RnZSBkZWwgc2lzdGVtYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUgIgorImtlcm5lbC5cbiIKK21zZ3N0ciAiIgorIk5vbcOpcyBlbCBzdXBlcnVzdWFyaSBwb3QgY2FudmlhciBlbCB2YWxvciBkZSBsJ8OocG9jYSBkZWwgcmVsbG90Z2UgZGVsICIKKyJtYXF1aW5hcmkgZW4gZWwgbnVjbGkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB0aGUgSGFyZHdhcmUgQ2xvY2sgdmlhIGFueSBrbm93biBtZXRob2QuXG4iCittc2dzdHIgIiIKKyJObyBzJ2hhIHBvZ3V0IGFjY2VkaXIgYWwgcmVsbG90Z2UgZGVsIG1hcXVpbmFyaSBtaXRqYW7Dp2FudCBjYXAgZGVscyBtw6h0b2RlcyAiCisiY29uZWd1dHMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzZSB0aGUgLS1kZWJ1ZyBvcHRpb24gdG8gc2VlIHRoZSBkZXRhaWxzIG9mIG91ciBzZWFyY2ggZm9yIGFuIGFjY2VzcyAiCisibWV0aG9kLlxuIgorbXNnc3RyICIiCisiVXNldSBsJ29wY2nDsyAtLWRlYnVnIHBlciB2ZXVyZSBlbHMgZGV0YWxscyBkZSBsYSByZWNlcmNhIGQndW4gbcOodG9kZSAiCisiZCdhY2PDqXMuXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSBLREdIV0NMSyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiUydlc3TDoCBlc3BlcmFudCBlbiBidWNsZSBhIHF1ZSBjYW52acOvIGwnaG9yYSBkZSBLREdIV0NMS1xuIgorCisjOiBod2Nsb2NrL2tkLmM6NTcKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIGlvY3RsIEtER0hXQ0xLIHBlciBsbGVnaXIgbCdob3JhIgorCisjOiBod2Nsb2NrL2tkLmM6NzUKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIGluIGxvb3AiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgaW9jdGwgS0RHSFdDTEsgcGVyIGxsZWdpciBsJ2hvcmEgZW4gZWwgYnVjbGUiCisKKyM6IGh3Y2xvY2sva2QuYzo4MiBod2Nsb2NrL3J0Yy5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iCittc2dzdHIgIlMnaGEgZXhjZWRpdCBlbCB0ZW1wcyBkJ2VzcGVyYSBwZXIgYSBxdcOoIGNhbnZpw6lzIGwnaG9yYS5cbiIKKworIzogaHdjbG9jay9rZC5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIGZhaWxlZCB0byByZWFkIHRpbWUgZnJvbSAlcyIKK21zZ3N0ciAibm8gaGEgZXN0YXQgcG9zc2libGUgZXhlY3V0YXIgaW9jdGwoKSBwZXIgbGxlZ2lyIGwnaG9yYSBkZSAlcyIKKworIzogaHdjbG9jay9rZC5jOjE0MAorbXNnaWQgImlvY3RsIEtEU0hXQ0xLIGZhaWxlZCIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBleGVjdXRhciBpb2N0bCBLREdIV0NMSyIKKworIzogaHdjbG9jay9rZC5jOjE3NgorbXNnaWQgIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBvYnJpciAvZGV2L3R0eTEgbyAvZGV2L3ZjLzEiCisKKyM6IGh3Y2xvY2sva2QuYzoxODAKK21zZ2lkICJLREdIV0NMSyBpb2N0bCBmYWlsZWQiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgaW9jdGwgS0RHSFdDTEsiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgb3BlbigpIGRlICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHJlYWQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIGlvY3RsKCkgYSAlcyBwZXIgbGxlZ2lyIGwnaG9yYS5cbiIKKworIzogaHdjbG9jay9ydGMuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gJXMgdG8gY2hhbmdlXG4iCittc2dzdHIgIlMnZXN0w6AgZXNwZXJhbnQgZW4gYnVjbGUgcGVyIGEgY2FudmlhciBsJ2hvcmEgZGUgJXNcbiIKKworIzogaHdjbG9jay9ydGMuYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZG9lcyBub3QgaGF2ZSBpbnRlcnJ1cHQgZnVuY3Rpb25zLiAiCittc2dzdHIgIiVzIG5vIHTDqSBmdW5jaW9ucyBkJ2ludGVycnVwY2nDsy4gICIKKworIzogaHdjbG9jay9ydGMuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIHJlYWQoKSBhICVzIHBlciBlc3BlcmFyIGVsIHRpYyBkZWwgcmVsbG90Z2UuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBleGVjdXRhciBzZWxlY3QoKSBhICVzIHBlciBlc3BlcmFyIGVsIHRpYyBkZWwgcmVsbG90Z2UuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIHRpbWVkIG91dFxuIgorbXNnc3RyICIiCisiUydoYSBleGNlZGl0IGVsIHRlbXBzIGQnZXNwZXJhIGVuIGV4ZWN1dGFyIHNlbGVjdCgpIGEgJXMgZW4gZXNwZXJhclxuIgorImVsIHRpYyBkZWwgcmVsbG90Z2UuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIgorbXNnc3RyICIiCisiTm8gcydoYSBwb2d1dCBleGVjdXRhciBpb2N0bCgpIGEgJXMgcGVyIGRlc2FjdGl2YXIgbGVzIGludGVycnVwY2lvbnNcbiIKKyJkJ2FjdHVhbGl0emFjacOzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAiIgorIk5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgaW9jdGwoKSBhICVzIHBlciBhY3RpdmFyIGxlcyBpbnRlcnJ1cGNpb25zXG4iCisiZCdhY3R1YWxpdHphY2nDsywgaGEgZmFsbGF0IGluZXNwZXJhZGFtZW50IgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgaW9jdGwoKSBhICVzIHBlciBlc3RhYmxpciBsJ2hvcmEuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiUydoYSBleGVjdXRhdCBpb2N0bCglcykgc2F0aXNmYWN0w7JyaWFtZW50LlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcGVuIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiUydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBvYnJpciAlcyIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisiUGVyIGEgbW9kaWZpY2FyIGVsIHZhbG9yIGRlIGwnw6hwb2NhIGRlbCBudWNsaSwgaGV1IGQnYWNjZWRpciBhbCBjb250cm9sYWRvciAiCisiZGVsIGRpc3Bvc2l0aXUgwqtydGPCuyBkZSBMaW51eCBtaXRqYW7Dp2FudCBlbCBmaXR4ZXIgZXNwZWNpYWwgZGUgZGlzcG9zaXRpdSAlcy4gIgorIkFxdWVzdCBmaXR4ZXIgbm8gZXhpc3RlaXggZW4gYXF1ZXN0IHNpc3RlbWEuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDE1IGh3Y2xvY2svcnRjLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJObyBlcyBwb3Qgb2JyaXIgJXMiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKFJUQ19FUE9DSF9SRUFEKSB0byAlcyBmYWlsZWQiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgaW9jdGwoUlRDX0VQT0NIX1JFQUQpIGEgJXMiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIndlIGhhdmUgcmVhZCBlcG9jaCAlbGQgZnJvbSAlcyB3aXRoIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorbXNnc3RyICJzJ2hhIGxsZWdpdCBlbCB2YWxvciBkZSBsJ8OocG9jYSAlbGQgZGUgJXMgYW1iIGlvY3RsIFJUQ19FUE9DSF9SRUFELlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIkVsIHZhbG9yIGQnw6hwb2NhIG5vIHBvdCBzZXIgaW5mZXJpb3IgYSAxOTAwLiBIZXUgaW5kaWNhdCAlbGRcbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0dGluZyBlcG9jaCB0byAlbGQgd2l0aCBSVENfRVBPQ0hfU0VUIGlvY3RsIHRvICVzLlxuIgorbXNnc3RyICJzJ2VzdMOgIGVzdGFibGludCBsJ8OocG9jYSBhICVsZCBhbWIgaW9jdGwgUlRDX0VQT0NIX1NFVCBhICVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyBkb2VzIG5vdCBoYXZlIHRoZSBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorbXNnc3RyICIiCisiRWwgY29udHJvbGFkb3IgZGUgZGlzcG9zaXRpdSBkZWwgbnVjbGkgcGVyIGEgJXMgbm8gdMOpIGVsIGlvY3RsICIKKyJSVENfRVBPQ0hfU0VULlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgaW9jdGwoUlRDX0VQT0NIX1NFVCkgYSAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBleGVjICVzOiAlbSIKK21zZ3N0ciAiJXM6IG5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgJXM6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozODMKK21zZ2lkICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBleGVjdXRhciBtYWxsb2MoKSBwZXIgYSBsYSBjYWRlbmEgZCdpbmljaWFsaXR6YWNpw7MiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgdGltZW91dCB2YWx1ZTogJXMiCittc2dzdHIgInZhbG9yIGQnZXhwaXJhY2nDsyBlcnJvbmk6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHNwZWVkOiAlcyIKK21zZ3N0ciAidmVsb2NpdGF0IGluY29ycmVjdGE6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKK21zZ2lkICJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIgorbXNnc3RyICJtYXNzYSB2ZWxvY2l0YXRzIGFsdGVybmF0aXZlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSBoYSBmYWxsYXQ6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogbm90IGEgY2hhcmFjdGVyIGRldmljZSIKK21zZ3N0ciAiL2Rldi8lczogbm8gw6lzIHVuIGRpc3Bvc2l0aXUgZGUgY2Fyw6BjdGVyIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIvZGV2LyVzOiBubyBlcyBwb3Qgb2JyaXIgY29tIGEgZW50cmFkYSBlc3TDoG5kYXJkOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3Qgb3BlbiBmb3IgcmVhZC93cml0ZSIKK21zZ3N0ciAiJXM6IG5vIHMnaGEgb2JlcnQgcGVyIGEgbGVjdHVyYS9lc2NyaXB0dXJhIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGR1cCBwcm9ibGVtOiAlbSIKK21zZ3N0ciAiJXM6IHByb2JsZW1hIGRlIGR1cDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICJ1c3VhcmkiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VycyIKK21zZ3N0ciAidXN1YXJpcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTAzMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZDogJW0iCittc2dzdHIgIiVzOiBsZWN0dXJhOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW5wdXQgb3ZlcnJ1biIKK21zZ3N0ciAiJXM6IGRlc2JvcmRhbWVudCBkZSBsJ2VudHJhZGEiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEyMDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy04aGlMbVV3XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggIgorImxvZ2luX2hvc3RdIGJhdWRfcmF0ZSwuLi4gbGluZSBbdGVybXR5cGVdXG4iCisib3JcdFstaGlMbXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCBsb2dpbl9ob3N0XSAiCisibGluZSBiYXVkX3JhdGUsLi4uIFt0ZXJtdHlwZV1cbiIKK21zZ3N0ciAiIgorIkZvcm1hIGQnw7pzOiAlcyBbLWhpTG13XSBbLWwgcHJvZ3JhbWFfYWNjw6lzXSBbLXQgdGVtcHNfZXNwZXJhXSBbLUkgIgorImNhZGVuYV9pbmljaWFsaXR6YWNpw7NdIFstSCBvcmRpbmFkb3JfYWNjw6lzXSB2ZWxvY2l0YXRfYmF1ZHMsLi4uIGzDrW5pYSAiCisiW3RpcHVzX3Rlcm1pbmFsXVxuIgorIm8gYsOpXG4iCisiXHRbLWhpTG13XSBbLWwgcHJvZ3JhbWFfYWNjw6lzXSBbLXQgdGVtcHNfZXNwZXJhXSBbLUkgY2FkZW5hX2luaWNpYWxpdHphY2nDs10gIgorIlstSCBvcmRpbmFkb3JfYWNjw6lzXSBsw61uaWEgdmVsb2NpdGF0X2JhdWRzLC4uLiBbdGlwdXNfdGVybWluYWxdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImxvZ2luOiBwb2NhIG1lbcOycmlhOyBsJ2FjY8OpcyBwb2RyaWEgZmFsbGFyXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTIKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIHR0eWNsYXNzIgorbXNnc3RyICJubyBlcyBwb3QgZXhlY3V0YXIgbWFsbG9jKCkgcGVyIGEgdHR5Y2xhc3MiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciBncnBsaXN0IgorbXNnc3RyICJubyBlcyBwb3QgZXhlY3V0YXIgbWFsbG9jIHBlciBhIGdycGxpc3QiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkIGJ5IGRlZmF1bHQuXG4iCittc2dzdHIgIlBlciBkZWZlY3RlLCBzJ2hhIGRlbmVnYXQgbCdhY2PDqXMgYSAlcyBkZXMgZGUgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICJTJ2hhIGRlbmVnYXQgbCdhY2PDqXMgYSAlcyBkZXMgZGUgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IGFxdWVzdCB1c3VhcmkgKCVkKSBubyBleGlzdGVpeC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0MCBsb2dpbi11dGlscy9jaHNoLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1c2VyIFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IGwndXN1YXJpIFwiJXNcIiBubyBleGlzdGVpeC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0NSBsb2dpbi11dGlscy9jaHNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4gb25seSBjaGFuZ2UgbG9jYWwgZW50cmllczsgdXNlIHlwJXMgaW5zdGVhZC5cbiIKK21zZ3N0ciAiJXM6IG5vbcOpcyBlcyBwb2RlbiBtb2RpZmljYXIgZW50cmFkZXMgbG9jYWxzOyB1c2V1IHlwJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICJFcyBkZXNjb25laXggZWwgY29udGV4dCBkZSBsJ3VzdWFyaSIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIlczogJXMgbm8gZXN0w6AgYXV0b3JpdHphdCBhIGNhbnZpYXIgbGEgaW5mb3JtYWNpw7MgZGVsIGZpbmdlciBkZSAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTY0IGxvZ2luLXV0aWxzL2Noc2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBkZWZhdWx0IGNvbnRleHQgZm9yIC9ldGMvcGFzc3dkIgorbXNnc3RyICIlczogTm8gcydoYSBwb2d1dCBlc3RhYmxpciBlbCBjb250ZXh0IHBlciBkZWZlY3RlIHBlciBhIC9ldGMvcGFzc3dkIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGZpbmdlciBpbmZvcm1hdGlvbiBmb3IgJXMuXG4iCittc2dzdHIgIlMnZXN0w6AgY2FudmlhbnQgbGEgaW5mb3JtYWNpw7MgZGVsIGZpbmdlciBwZXIgYSBsJ3VzdWFyaSAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJsb2dpbjogUEFNIGhhIGZhbGxhdDsgcydlc3TDoCBhdm9ydGFudDogJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxMiBsb2dpbi11dGlscy9jaHNoLmM6MjExIGxvZ2luLXV0aWxzL2xvZ2luLmM6ODI3CisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo3OSBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQwIG1vdW50L2xvbW91bnQuYzo3NDIKKyM6IG1vdW50L2xvbW91bnQuYzo3NDUKK21zZ2lkICJQYXNzd29yZDogIgorbXNnc3RyICJDb250cmFzZW55YTogIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjE1IGxvZ2luLXV0aWxzL2Noc2guYzoyMTQKK21zZ2lkICJJbmNvcnJlY3QgcGFzc3dvcmQuIgorbXNnc3RyICJMYSBjb250cmFzZW55YSBubyDDqXMgY29ycmVjdGEuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiTm8gcydoYSBjYW52aWF0IGxhIGluZm9ybWFjacOzIGRlbCBmaW5nZXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIkZvcm1hIGQnw7pzOiAlcyBbIC1mIG5vbV9jb21wbGV0IF0gWyAtbyBvZmljaW5hIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJbIC1wIG9mZmljZS1waG9uZSBdXG4iCisiXHRbIC1oIGhvbWUtcGhvbmUgXSAiCittc2dzdHIgIiIKKyJbIC1wIHRlbMOoZm9uX29maWNpbmEgXVxuIgorIlx0WyAtaCB0ZWzDqGZvbl9wYXJ0aWN1bGFyIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc5Cittc2dpZCAiT2ZmaWNlIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozODAKK21zZ2lkICJIb21lIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlMnaGEgYXZvcnRhdC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAiZWwgY2FtcCDDqXMgbWFzc2EgbGxhcmcuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiwqslY8K7IG5vIGVzdMOgIHBlcm3DqHMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiRWxzIGNhcsOgY3RlcnMgZGUgY29udHJvbCBubyBlc3RhbiBwZXJtZXNvcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxMgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiIgorIipOTyogcydoYSBjYW52aWF0IGxhIGluZm9ybWFjacOzIGRlbCBmaW5nZXIuIEludGVudGV1LWhvIGRlIG5vdSBtw6lzICIKKyJlbmRhdmFudC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiUydoYSBjYW52aWF0IGxhIGluZm9ybWFjacOzIGRlbCBmaW5nZXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgc2hlbGwgb2YgJXNcbiIKK21zZ3N0ciAiIgorIiVzOiAlcyBubyBlc3TDoCBhdXRvcml0emF0IGEgY2FudmlhciBsJ2ludMOocnByZXQgZCdvcmRyZXMgZGUgbCd1c3VhcmkgJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogTCdVSUQgZW4gZXhlY3VjacOzIG5vIGNvaW5jaWRlaXggYW1iIGwnVUlEIGRlIGwndXN1YXJpIHF1ZSBzJ2VzdMOgICIKKyJhbHRlcmFudCwgcydoYSBkZW5lZ2F0IGVsIGNhbnZpIGQnaW50w6hycHJldCBkJ29yZHJlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBZb3VyIHNoZWxsIGlzIG5vdCBpbiAvZXRjL3NoZWxscywgc2hlbGwgY2hhbmdlIGRlbmllZFxuIgorbXNnc3RyICIiCisiJXM6IEVsIHZvc3RyZSBpbnTDqHJwcmV0IGQnb3JkcmVzIG5vIGVzdMOgIGEgL2V0Yy9zaGVsbHM7IHMnaGEgZGVuZWdhdCBlbCAiCisiY2FudmkgZCdpbnTDqHJwcmV0IGQnb3JkcmVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgc2hlbGwgZm9yICVzLlxuIgorbXNnc3RyICJTJ2VzdMOgIGNhbnZpYW50IGwnaW50w6hycHJldCBkJ29yZHJlcyBwZXIgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjIKK21zZ2lkICJOZXcgc2hlbGwiCittc2dzdHIgIk5vdSBpbnTDqHJwcmV0IGQnb3JkcmVzIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJObyBzJ2hhIGNhbnZpYXQgbCdpbnTDqHJwcmV0IGQnb3JkcmVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIiIKKyJObyBzJ2hhIGNhbnZpYXQgbCdpbnTDqHJwcmV0IGQnb3JkcmVzLiBJbnRlbnRldS1obyBkZSBub3UgbcOpcyBlbmRhdmFudC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBjaGFuZ2VkLlxuIgorbXNnc3RyICJTJ2hhIGNhbnZpYXQgbCdpbnTDqHJwcmV0IGQnb3JkcmVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIkZvcm1hIGQnw7pzOiAlcyBbIC1zIGludMOocnByZXRfZCdvcmRyZXMgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS0iCisidmVyc2lvbiBdXG4iCisiXHRbIG5vbV91c3VhcmkgXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiBsJ2ludMOocnByZXQgZCdvcmRyZXMgaGEgZGUgc2VyIHVuIGNhbcOtIGNvbXBsZXQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBubyBleGlzdGVpeC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBleGVjdXRhYmxlLlxuIgorbXNnc3RyICIlczogXCIlc1wiIG5vIMOpcyBleGVjdXRhYmxlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogJyVjJyBubyBlc3TDoCBwZXJtw6hzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogRWxzIGNhcsOgY3RlcnMgZGUgY29udHJvbCBubyBlc3RhbiBwZXJtZXNvcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NSBsb2dpbi11dGlscy9jaHNoLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICJBdsOtczogXCIlc1wiIG5vIGVzdMOgIGxsaXN0YXQgYSAvZXRjL3NoZWxscy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIgbm8gZXN0w6AgbGxpc3RhdCBhIC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IHVzZXUgbCdvcGNpw7MgLWwgcGVyIHZldXJlJ24gbGEgbGxpc3RhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNlICVzIC1sIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICJVc2V1ICVzIC1sIHBlciB2ZXVyZSduIGxhIGxsaXN0YS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBrbm93biBzaGVsbHMuXG4iCittc2dzdHIgIk5vIGVzIGNvbmVpeCBjYXAgaW50w6hycHJldCBkJ29yZHJlcy5cbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZywgZXhpdGluZy4iCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgb2JyaXIgJXMgcGVyIGEgbGVjdHVyYSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICIiCisiZm9ybWEgZCfDunM6IGxhc3QgWy0jXSBbLWYgZml0eGVyXSBbLXQgdHR5XSBbLWggbm9tX29yZGluYWRvcl0gW3VzdWFyaSAuLi5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozMDIKK21zZ2lkICIgIHN0aWxsIGxvZ2dlZCBpbiIKK21zZ3N0ciAiICBlbmNhcmEgdGVuaXUgdW5hIHNlc3Npw7MgZW4gZWwgc2lzdGVtYSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wIGNvbWVuw6dhICVzIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzgwIGxvZ2luLXV0aWxzL2xhc3QuYzozOTggbG9naW4tdXRpbHMvbGFzdC5jOjQ0OQorbXNnaWQgImxhc3Q6IG1hbGxvYyBmYWlsdXJlLlxuIgorbXNnc3RyICJsYXN0OiBubyBoYSBlc3RhdCBwb3NzaWJsZSBleGVjdXRhciBtYWxsb2MuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0MjUKK21zZ2lkICJsYXN0OiBnZXRob3N0bmFtZSIKK21zZ3N0ciAibGFzdDogZ2V0aG9zdG5hbWUiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImludGVycnVwdGVkICUxMC4xMHMgJTUuNXMgXG4iCittc2dzdHIgIiIKKyJcbiIKKyJpbnRlcnJvbXB1dCAlMTAuMTBzICU1LjVzIFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIlMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZmF0YWw6IG5vIHMnaGEgcG9ndXQgcmVvYnJpciB0dHk6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6ICVzIGlzIG5vdCBhIHRlcm1pbmFsIgorbXNnc3RyICIlcyBubyBlcyB1biBkaXNwb3NpdGl1IGRlIGJsb2MgZXNwZWNpYWwiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjM4Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgIlMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZmF0YWw6IHRlcm1pbmFsIGVycm9uaSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgImxvZ2luOiBub23DqXMgZWwgc3VwZXJ1c3VhcmkgcG90IGZlciBzZXJ2aXIgLWguXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiBsb2dpbiBbLWZwXSBbbm9tX3VzdWFyaV1cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgaW5pdGlhbGl6ZSBQQU06ICVzIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGluaWNpYWxpdHphciBQQU06ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgImVudHJhZGE6ICIKKworIyBGSVhNRSwgcGxlYXNlIGRlc2NyaWJlIHBhcmFtZXRlcnMKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIlMnSEEgSU5URU5UQVQgQUNDRURJUiBTRU5TRSDDiFhJVCAlZCBWRUdBREVTIERFUyBERSAlcyBQRVIgQSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkwnZW50cmFkYSBubyDDqXMgY29ycmVjdGFcbiIKKyJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIlMnSEEgSU5URU5UQVQgRU5UUkFSIE1BU1NBIFZFR0FERVMgKCVkKSBERVMgREUgJXMgUEVSIEEgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIk5PIFMnSEEgUE9HVVQgSU5JQ0lBUiBMQSBTRVNTScOTIERFUyBERSAlcyBQRVIgQSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIkVudHJhZGEgaW5jb3JyZWN0YVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlMnaGEgcHJvZHXDr3QgdW4gcHJvYmxlbWEgZW4gaW5pY2lhciBsYSBzZXNzacOzLCBzJ2F2b3J0YXLDoC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiTm9tIGQndXN1YXJpIE5VTCBhICVzOiVkLiBTJ2F2b3J0YXLDoC4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdXNlciBuYW1lIFwiJXNcIiBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICJOb20gZCd1c3VhcmkgaW52w6BsaWQgXCIlc1wiIGEgJXM6JWQuIFMnYXZvcnRhcsOgLiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IE91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAibG9naW46IE5vIGhpIGhhIHByb3UgbWVtw7JyaWFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICJOb20gZCd1c3VhcmkgaWzCt2xlZ2FsIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb2dpbiByZWZ1c2VkIG9uIHRoaXMgdGVybWluYWwuXG4iCittc2dzdHIgIlMnaGEgcmVmdXNhdCBsJ2VudHJhZGEgZGUgJXMgZW4gYXF1ZXN0IHRlcm1pbmFsLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIEZST00gJXMgT04gVFRZICVzIgorbXNnc3RyICJTJ0hBIFJFRlVTQVQgTCdFTlRSQURBIERFICVzIERFUyBERSAlcyBBIExBIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiCittc2dzdHIgIlMnSEEgUkVGVVNBVCBMJ0VOVFJBREEgREUgJXMgQSBMQSBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICJFbnRyYWRhIGluY29ycmVjdGFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRJQUxVUCBBVCAlcyBCWSAlcyIKK21zZ3N0ciAiTUFSQ0FUR0UgRElSRUNURSBBICVzIFBFUiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMgRlJPTSAlcyIKK21zZ3N0ciAiRU5UUkFEQSBERUwgUk9PVCBBICVzIERFUyBERSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMiCittc2dzdHIgIkVOVFJBREEgREVMIFJPT1QgQSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIEZST00gJXMiCittc2dzdHIgIkVOVFJBREEgQSAlcyBQRVIgJXMgREVTIERFICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIkVOVFJBREEgQSAlcyBQRVIgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEyOQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBuZXcgbWFpbC5cbiIKK21zZ3N0ciAiVGVuaXUgY29ycmV1IG5vdS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG1haWwuXG4iCittc2dzdHIgIlRlbml1IGNvcnJldS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjogcydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBiaWZ1cmNhcjogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyMgorIywgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiVElPQ1NDVFRZIGhhIGZhbGxhdDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgaGEgZmFsbGF0IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICJObyBoaSBoYSBjYXAgZGlyZWN0b3JpICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dnaW5nIGluIHdpdGggaG9tZSA9IFwiL1wiLlxuIgorbXNnc3RyICJTJ2VzdMOgIGVudHJhbnQgYW1iIGVsIGRpcmVjdG9yaSBpbmljaWFsID0gwqsvwrsuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgIiIKKyJsb2dpbjogbm8gaGkgaGEgcHJvdSBtZW3DsnJpYSBwZXIgYSBsYSBzZXHDvMOobmNpYSBkZSBsJ2ludMOocnByZXQgZCdvcmRyZXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogY291bGRuJ3QgZXhlYyBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorbXNnc3RyICIiCisibG9naW46IG5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgbGEgc2Vxw7zDqG5jYSBkZSBsJ2ludMOocnByZXQgZCdvcmRyZXM6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIHNoZWxsOiAlcy5cbiIKK21zZ3N0ciAibG9naW46IG5vIGhpIGhhIGwnaW50w6hycHJldCBkJ29yZHJlczogJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJXMgbG9naW46ICIKK21zZ3N0ciAiIgorIlxuIgorIkVudHJhZGEgYSAlczogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJlbCBub20gZCdlbnRyYWRhIMOpcyBtYXNzYSBsbGFyZy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAzCittc2dpZCAiTkFNRSB0b28gbG9uZyIKK21zZ3N0ciAiTk9NIMOpcyBtYXNzYSBsbGFyZyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgImVscyBub21zIGQnZW50cmFkYSBubyBwb2RlbiBjb21lbsOnYXIgcGVyIMKrLcK7LlxuIgorCisjIEZJWE1FCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgIm1hc3NhIHNhbHRzIGRlIHDDoGdpbmEgc29saXRhcmlzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjEKK21zZ2lkICJFWENFU1NJVkUgbGluZWZlZWRzIgorbXNnc3RyICJNQVNTQSBzYWx0cyBkZSBww6BnaW5hIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiUydoYSBleGNlZGl0IGVsIHRlbXBzIGQnZXNwZXJhIHBlciBhIGwnZW50cmFkYSBhbCBjYXAgZGUgJWQgc2Vnb25zLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBsb2dpbjogJS4qcyAiCittc2dzdHIgIsOabHRpbWEgZW50cmFkYTogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAiZGVzIGRlICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAiYSAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorbXNnc3RyICJIQSBGQUxMQVQgTCdFTlRSQURBIERFICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICJIQSBGQUxMQVQgTCdFTlRSQURBIEEgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgRlJPTSAlcywgJXMiCittc2dzdHIgIkhBIEZBTExBVCAlZCBWRUdBREVTIEwnRU5UUkFEQSBERVMgREUgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICJIQSBGQUxMQVQgJWQgVkVHQURFUyBMJ0VOVFJBREEgQSAlcywgJXMiCisKKyMgRklYTUUgJ3knIHVudHJhbnNsYXRlYWJsZT8KKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyB5XG4iCittc2dzdHIgIsOpcyB5XG4iCisKKyMgRklYTUUgJ24nIHVudHJhbnNsYXRlYWJsZT8KKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBuXG4iCittc2dzdHIgIsOpcyBuXG4iCisKKyMgRklYTUUgJ3knLCAnbicgdW50cmFuc2xhdGVhYmxlPworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiBtZXNnIFt5IHwgbl1cbiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAibmV3Z3JwOiBRdWkgc291PyIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTA3IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyMQorbXNnaWQgIm5ld2dycDogc2V0Z2lkIgorbXNnc3RyICJuZXdncnA6IHNldGdpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIm5ld2dycDogQXF1ZXN0IGdydXAgbm8gZXhpc3RlaXguIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMjUKK21zZ2lkICJuZXdncnA6IFBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJuZXdncnA6IFMnaGEgZGVuZWdhdCBlbCBwZXJtw61zIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzIKK21zZ2lkICJuZXdncnA6IHNldHVpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXR1aWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzOAorbXNnaWQgIk5vIHNoZWxsIgorbXNnc3RyICJObyBoaSBoYSBpbnTDqHJwcmV0IGQnb3JkcmVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKK21zZ3N0ciAiRm9ybWEgZCfDunM6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnV0c11cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgIlMnaGEgYXZvcnRhdCBlbCBwcm9jw6lzIGQnYXR1cmFkYSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9ubHkgcm9vdCBjYW4gc2h1dCBhIHN5c3RlbSBkb3duLlxuIgorbXNnc3RyICIlczogTm9tw6lzIGwndXN1YXJpIHJvb3QgcG90IGF0dXJhciB1biBzaXN0ZW1hLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGF0IG11c3QgYmUgdG9tb3Jyb3csIGNhbid0IHlvdSB3YWl0IHRpbGwgdGhlbj9cbiIKK21zZ3N0ciAiQWl4w7IgaGEgZGUgc2VyIGRlbcOgLCBubyB1cyBwb2RldSBlc3BlcmFyIGZpbnMgbGxhdm9ycz9cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMTAKK21zZ2lkICJmb3IgbWFpbnRlbmFuY2U7IGJvdW5jZSwgYm91bmNlIgorbXNnc3RyICJwZXIgYWwgbWFudGVuaW1lbnQ7IHNhbHRhbnQsIHNhbHRhbnQiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiRWwgc2lzdGVtYSBzJ2F0dXJhcsOgIGQnYXF1w60gYSA1IG1pbnV0cyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNDMKK21zZ2lkICJMb2dpbiBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4iCittc2dzdHIgIlBlciB0YW50IG5vIGVzIHBlcm1ldCBsJ2VudHJhZGEuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgIiVzIGhhIGFycmVuY2F0IGRlIG5vdTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhhbHRlZCBieSAlczogJXMiCittc2dzdHIgIiVzIGhhIGF0dXJhdDogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDMyCittc2dpZCAiIgorIlxuIgorIldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iCittc2dzdHIgIiIKKyJcbiIKKyJDb20gw6lzIHF1ZSBlbmNhcmEgZXN0aWMgYWN0aXUgZGVzcHLDqXMgZCdhcnJlbmNhciBkZSBub3U/IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzNAorbXNnaWQgIiIKKyJcbiIKKyJOb3cgeW91IGNhbiB0dXJuIG9mZiB0aGUgcG93ZXIuLi4iCittc2dzdHIgIiIKKyJcbiIKKyJBcmEgcG9kZXUgZGVzY29ubmVjdGFyIGxhIGZvbnQgZCdhbGltZW50YWNpw7MuLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICJTJ2VzdMOgIGNyaWRhbnQgZWwgc2lzdGVtYSBkJ2FwYWdhZGEgZGVsIG51Y2xpLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHBvd2VyaW5nIG9mZlx0JXNcbiIKK21zZ3N0ciAiUydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBhcGFnYXJcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCittc2dzdHIgIlMnZXN0w6AgZXhlY3V0YW50IGVsIHByb2dyYW1hIFwiJXNcIiAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nXHQlc1xuIgorbXNnc3RyICJTJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGV4ZWN1dGFyIFx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiVVJHRU5UOiBtaXNzYXRnZSBkZSBkaWZ1c2nDsyBkZSAlczoiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiCittc2dzdHIgIkVsIHNpc3RlbWEgcydhdHVyYXLDoCBkJ2FxdcOtIGEgJWQgaG9yZXMgaSAlZCBtaW51dHMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICJFbCBzaXN0ZW1hIHMnYXR1cmFyYSBkJ2FxdcOtIGEgMSBob3JhIGkgJWQgbWludXRzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBtaW51dGVzXG4iCittc2dzdHIgIkVsIHNpc3RlbWEgcydhdHVyYXLDoCBkJ2FxdcOtIGEgJWQgbWludXRzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgbWludXRlXG4iCittc2dzdHIgIkVsIHNpc3RlbWEgcydhdHVyYXLDoCBkJ2FxdcOtIGEgMSBtaW51dFxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAiRWwgc2lzdGVtYSBzJ2F0dXJhcsOgIElNTUVESUFUQU1FTlQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Li4uICVzIC4uLlxuIgorbXNnc3RyICJcdC4uLiAlcyAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzAKK21zZ2lkICJDYW5ub3QgZm9yayBmb3Igc3dhcG9mZi4gU2hydWchIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGJpZnVyY2FyIHN3YXBvZmYuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIHN3YXBvZmYsIGVzcGVyZW0gcXVlIHVtb3VudCBobyBmYWNpLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1OTcKK21zZ2lkICJDYW5ub3QgZm9yayBmb3IgdW1vdW50LCB0cnlpbmcgbWFudWFsbHkuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGJ1ZnVyY2FyIHVtb3VudCwgcydlc3TDoCBwcm92YW50IG1hbnVhbG1lbnQuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZXhlYyAlcywgdHJ5aW5nIHVtb3VudC5cbiIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBleGVjdXRhciAlcywgcydlc3TDoCBwcm92YW50IHVtb3VudC5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTAKK21zZ2lkICJDYW5ub3QgZXhlYyB1bW91bnQsIGdpdmluZyB1cCBvbiB1bW91bnQuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIHVtb3VudCwgcydlc3TDoCBhYmFuZG9uYW50IGwnb3BlcmFjacOzIHVtb3VudC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjE1Cittc2dpZCAiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIgorbXNnc3RyICJTJ2VzdMOgIGRlc211bnRhbnQgZWxzIHNpc3RlbWVzIGRlIGZpdHhlcnMgcmVzdGFudHMuLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iCittc2dzdHIgInNodXRkb3duOiBObyBzJ2hhIHBvZ3V0IGRlc211bnRhciAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzMgorbXNnaWQgIkJvb3RpbmcgdG8gc2luZ2xlIHVzZXIgbW9kZS5cbiIKK21zZ3N0ciAiUydlc3TDoCBhcnJlbmNhbnQgZW4gZWwgbW9kZSBkJ3VuIHNvbCB1c3VhcmkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJsJ2V4ZWN1Y2nDsyBkZSBsJ2ludMOocnByZXQgZCdvcmRyZXMgZW4gbW9kZSBkJ3VuIHNvbCB1c3VhcmkgaGEgZmFsbGF0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGJpZnVyY2FyIGwnaW50w6hycHJldCBkJ29yZHJlcyBkJ3VuIHNvbCB1c3VhcmlcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIG9icmlyIGZpZm9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIxMgorbXNnaWQgImVycm9yIHNldHRpbmcgY2xvc2Utb24tZXhlYyBvbiAvZGV2L2luaXRjdGwiCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gaW5pY2lhbGl0emFyIGNsb3NlLW9uLWV4ZWMgYSAvZGV2L2luaXRjdGwiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNTkKK21zZ2lkICJlcnJvciBydW5uaW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGV4ZWN1dGFyIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBiaWZ1cmNhciBmaW5hbHByb2dcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0NQorbXNnaWQgIiIKKyJcbiIKKyJXcm9uZyBwYXNzd29yZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkNvbnRyYXNlbnlhIGluY29ycmVjdGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MTgKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIMKrbHN0YXTCuyBhbCBjYW3DrVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2Cittc2dpZCAic3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIMKrc3RhdMK7IGFsIGNhbcOtXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MzQKK21zZ2lkICJvcGVuIG9mIGRpcmVjdG9yeSBmYWlsZWRcbiIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBvYnJpciBlbCBkaXJlY3RvcmlcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwMQorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwYXduaW5nOiBcIiVzXCIgdG9vIGZhc3Q6IHF1ZW5jaGluZyBlbnRyeVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDkKK21zZ2lkICJmb3JrIGZhaWxlZFxuIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGJpZnVyY2FyXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NDAgdGV4dC11dGlscy9tb3JlLmM6MTY2MworbXNnaWQgImV4ZWMgZmFpbGVkXG4iCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgZXhlY1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0Cittc2dpZCAiY2Fubm90IG9wZW4gaW5pdHRhYlxuIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IG9icmlyIGluaXR0YWJcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgIm5vIGhpIGhhIFRFUk0gbyBubyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIHN0YXQgYSBsYSB0dHlcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjkzOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igc3RvcHBpbmcgc2VydmljZTogXCIlc1wiXG4iCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gYXR1cmFyIGVsIHNlcnZlaTogXCIlc1wiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTdG9wcGVkIHNlcnZpY2U6ICVzXG4iCittc2dzdHIgInMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gYXR1cmFyIGVsIHNlcnZlaTogXCIlc1wiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGV4ZWN1dGFyIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAibWFzc2EgaW92IChtb2RpZmlxdWV1IGVsIGNvZGkgYSB3YWxsL3R0eW1zZy5jKSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIKK21zZ3N0ciAibGEgbMOtbmlhIGQnYXJndW1lbnRzIMOpcyBtYXNzYSBsbGFyZ2EiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBiaWZ1cmNhciIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICJiaWZ1cmNhY2nDszogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQkFEIEVSUk9SIgorbXNnc3RyICIlczogRVJST1IgRE9MRU5UIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgcGFzc3dvcmQgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogZWwgZml0eGVyIHBhc3N3b3JkIGVzdMOgIG9jdXBhdC5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIGdyb3VwIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiJXM6IGVsIGZpdHhlciBncm91cCBlc3TDoCBvY3VwYXQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSAlcyBmaWxlIGlzIGJ1c3kgKCVzIHByZXNlbnQpXG4iCittc2dzdHIgIiVzOiBlbCBmaXR4ZXIgJXMgZXN0w6Agb2N1cGF0IChwcmVzZW50YSAlcykuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBubyBzJ2hhIHBvZ3V0IGVubGxhw6dhciAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogTm8gcydoYSBwb2d1dCBvYnRlbmlyIGVsIGNvbnRleHQgcGVyIGEgJXMiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IE5vIHMnaGEgcG9ndXQgZXN0YWJsaXIgZWwgY29udGV4dCBwZXIgYSAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiJXM6IG5vIHMnaGEgcG9ndXQgZGVzYmxvY2FyICVzOiAlcyAoZWxzIGNhbnZpcyBlbmNhcmEgZXN0YW4gYSAlcylcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGZvcmtcbiIKK21zZ3N0ciAiJXM6IE5vIHMnaGEgcG9ndXQgYmlmdXJjYXJcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgdW5jaGFuZ2VkXG4iCittc2dzdHIgIiVzOiAlcyBubyBzJ2hhIG1vZGlmaWNhdFxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBjaGFuZ2VzIG1hZGVcbiIKK21zZ3N0ciAiJXM6IG5vIHMnaGEgZmV0IGNhcCBjYW52aVxuIgorCisjIHNoYWRvdyBwYXN3b3JkcyAtPiBjb250cmFzZW55ZXMgb2N1bHRlcyAoZmVkb3JhKQorIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIkFxdWVzdCBzaXN0ZW1hIHV0aWxpdHphIGdydXBzIG9jdWx0cy5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBwYXNzd29yZHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIkFxdWVzdCBzaXN0ZW1hIHV0aWxpdHphIGNvbnRyYXNlbnllcyBvY3VsdGVzLlxuIgorCisjIEZJWE1FIGhlcmUgd2UgaGF2ZSAneScgYW5kICduJyB0cmFuc2xhdGVkLCBpcyBpdCB0cmFuc2xhdGVhYmxlPworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCB5b3UgbGlrZSB0byBlZGl0ICVzIG5vdyBbeS9uXT8gIgorbXNnc3RyICJEZXNpdGdldSBlZGl0YXIgJXMgYXJhPyBbcy9uXSAiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICJmb3JtYSBkJ8O6czogJXMgW2ZpdHhlcl1cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IG5vIHMnaGEgcG9ndXQgb2JyaXIgZWwgZml0eGVyIHRlbXBvcmFsLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyb2FkY2FzdCBNZXNzYWdlIGZyb20gJXNAJXMiCittc2dzdHIgIk1pc3NhdGdlIGRlIGRpZnVzacOzIGRlICVzQCVzIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3aWxsIG5vdCByZWFkICVzIC0gdXNlIHN0ZGluLlxuIgorbXNnc3RyICIlczogbm8gZXMgbGxlZ2lyw6AgZGUgJXM7IHMndXRpbGl0emFyw6AgbCdlbnRyYWRhIGVzdMOgbmRhcmQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgIiVzOiBubyBzJ2hhIHBvZ3V0IGxsZWdpciAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgc3RhdCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IG5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgc3RhdCBhbCBmaXR4ZXIgdGVtcG9yYWwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBubyBzJ2hhcG9ndXQgbGxlZ2lyIGVsIGZpdHhlciB0ZW1wb3JhbC5cbiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjQgbWlzYy11dGlscy9jYWwuYzozNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZGF5IHZhbHVlOiB1c2UgMS0lZCIKK21zZ3N0ciAiZWwgdmFsb3IgZGUgbCdhbnkgbm8gw6lzIGxlZ2FsOiB1dGlsaXR6ZXUgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICJlbCB2YWxvciBkZWwgbWVzIMOpcyBpbMK3bGVnYWw6IHV0aWxpdHpldSAxLTEyIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM3MgorbXNnaWQgImlsbGVnYWwgeWVhciB2YWx1ZTogdXNlIDEtOTk5OSIKK21zZ3N0ciAiZWwgdmFsb3IgZGUgbCdhbnkgbm8gw6lzIGxlZ2FsOiB1dGlsaXR6ZXUgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJTIkZCBkZSAlMSRzIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjg1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiBjYWwgWy0xM3NtanlWXSBbW21lc10gYW55XVxuIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbK2Zvcm1hdF0gW2RheSBtb250aCB5ZWFyXVxuIgorbXNnc3RyICJmb3JtYSBkJ8O6czogJXMgWytmb3JtYXRdIFtkaWEgbWVzIGFueV1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIkRpYSBkZSBTYW50IFRpYmIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIExBQkVMPTxsYWJlbD58VVVJRD08dXVpZD5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcmVzb2x2ZSAnJXMnIgorbXNnc3RyICJubyBlcyBwb3Qgb2JyaXIgJXMiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXNcbiIKK21zZ3N0ciAiJXM6IHNlbnlhbCBkZXNjb25lZ3V0ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBwcm9jZXNzIFwiJXNcIlxuIgorbXNnc3RyICIlczogbm8gcydoYSBwb2d1dCB0cm9iYXIgZWwgcHJvY8OpcyBcIiVzXCJcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlczsgdmFsaWQgc2lnbmFsczpcbiIKK21zZ3N0ciAiJXM6IHNlbnlhbCBkZXNjb25lZ3V0ICVzOyBzZW55YWxzIHbDoGxpZHM6XG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtcyBzaWduYWwgfCAtcCBdIFsgLWEgXSBwaWQgLi4uXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiAlcyBbIC1zIHNlbnlhbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHNlbnlhbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiZWwgbm9tIGQnZW50cmFkYSDDqXMgbWFzc2EgbGxhcmcuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgIk1pZGFCbG9jOiAlZFxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbm5lY3Q6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogJXM6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6ICVzOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIGZhY2lsaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IG5vIGVzIGNvbmVpeCBlbCBub20gZGUgbGEgZmFjaWxpdGF0OiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIHByaW9yaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IG5vbSBhbWIgcHJpb3JpdGF0IGRlc2NvbmVndWRhOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisiZm9ybWEgZCfDunM6IGxvZ2dlciBbLWlzXSBbLWYgZml0eGVyXSBbLXAgcHJpXSBbLXQgZXRpcXVldGFdIFstdSBzw7Jjb2xdXG4iCisiXHRbIG1pc3NhdGdlIC4uLiBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9vay5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9vayBbLWRmYV0gWy10IGNoYXJdIHN0cmluZyBbZmlsZV1cbiIKK21zZ3N0ciAiZm9ybWEgZCfDunM6IGxvb2sgWy1kZmFdIFstdCBjYXLDoGN0ZXJdIGNhZGVuYSBbZml0eGVyXVxuIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDUgbWlzYy11dGlscy9tY29va2llLmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgb2JyaXIgJXNcbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA5IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICJTJ2hhbiBvYnRpbmd1dCAlZCBvY3RldHMgZGUgJXNcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0CisjLCBmdXp6eQorbXNnaWQgIm91dCBvZiBtZW1vcnk/IgorbXNnc3RyICJzJ2hhIGVzZ290YXQgbGEgbWVtw7JyaWE/XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHN5bWxpbms6ICVzIgorbXNnc3RyICJubyBoYSBlc3RhdCBwb3NzaWJsZSBleGVjdXRhciBpb2N0bCgpIHBlciBsbGVnaXIgbCdob3JhIGRlICVzIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjMxIG1pc2MtdXRpbHMvbmFtZWkuYzoyNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgIm5vIGVzIHBvdCBmZXIgXCJzdGF0XCIgYWwgZGlzcG9zaXRpdSAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gcGF0aG5hbWUgW3BhdGhuYW1lIC4uLl1cbiIKK21zZ3N0ciAiZm9ybWEgZCfDunM6IG5hbWVpIFstbXhdIGNhbcOtIFtjYW3DrSAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgcGFydGljaW9uczpcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXgsIC0tbW91bnRwb2ludHMgICBzaG93IG1vdW50IHBvaW50IGRpcmVjdG9yaWVzIHdpdGggYSAnRCdcbiIKKyIgLW0sIC0tbW9kZXMgICAgICAgICBzaG93IHRoZSBtb2RlIGJpdHMgb2YgZWFjaCBmaWxlXG4iCisiIC1vLCAtLW93bmVycyAgICAgICAgc2hvdyBvd25lciBhbmQgZ3JvdXAgbmFtZSBvZiBlYWNoIGZpbGVcbiIKKyIgLWwsIC0tbG9uZyAgICAgICAgICB1c2UgYSBsb25nIGxpc3RpbmcgZm9ybWF0ICgtbSAtbyAtdikgXG4iCisiIC1uLCAtLW5vc3ltbGlua3MgICAgZG9uJ3QgZm9sbG93IHN5bWxpbmtzXG4iCisiIC12LCAtLXZlcnRpY2FsICAgICAgdmVydGljYWwgYWxpZ24gb2YgbW9kZXMgYW5kIG93bmVyc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBuYW1laSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTIyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdDogJXMiCittc2dzdHIgIm5vIGVzIHBvdCBmZXIgc3RhdCBwZXIgYSAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUzMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXhjZWVkZWQgbGltaXQgb2Ygc3ltbGlua3MiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIlczogbm8gaGkgaGEgcHJvdSBtZW3DsnJpYVxuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZW5hbWluZyAlcyB0byAlcyBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiVzOiBubyBzJ2hhIHBvZ3V0IHJlYW5vbWVuYXIgJXMgYSAlczogJXNcbiIKKworIyBGSVhNRSAiZnJvbSB0byI/Pz8/CisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAiY3JpZGE6ICVzIGRlcyBkZWxzIGZpdHhlcnMuLi5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGAlcycgaXMgYSBsaW5rLlxuIgorIlVzZSBgJXMgW29wdGlvbnNdICVzJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LlxuIgorIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIKK21zZ3N0ciAiIgorIkF2w61zOiDCqyVzwrsgw6lzIHVuIGVubGxhw6cuXG4iCisiVXNldSDCqyVzIFtvcGNpb25zXSAlc8K7IHNpIHJlYWxtZW50IGRlc2l0Z2V1IHVzYXItbG8uXG4iCisiTm8gcydoYSBleGVjdXRhdCBzY3JpcHQuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAiZm9ybWEgZCfDunM6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaXR4ZXJdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlMnaGEgaW5pY2lhdCBsJ2V4ZWN1Y2nDsyBkZSBzY3JpcHQsIGVsIGZpdHhlciDDqXMgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvciAlZDogJXNcbiIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBkJ2VzY3JpcHR1cmEgYSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiUydoYSBpbmljaWF0IGwnZXhlY3VjacOzIGRlIHNjcmlwdCBhICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGQnZXNjcmlwdHVyYSBhICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IG5vIHMnaGEgcG9ndXQgdHJvYmFyIGVsIGRpc3Bvc2l0aXUgcGVyIGEgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNjcmlwdCBkb25lIG9uICVzIgorbXNnc3RyICIiCisiXG4iCisiUydoYSBmaW5hbGl0emF0IGwnZXhlY3VjacOzIGRlIHNjcmlwdCBhICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzNworIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgZG9uZSwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJTJ2hhIGZldCBsYSBzZXHDvMOobmNpYSwgZWwgZml0eGVyIMOpcyAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVucHR5IGZhaWxlZFxuIgorbXNnc3RyICJubyBoYSBlc3RhdCBwb3NzaWJsZSBleGVjdXRhciBvcGVucHR5XG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICJObyBxdWVkZW4gcHR5XG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJleHBlY3RlZCBhIG51bWJlciwgYnV0IGdvdCAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTYgbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXZpc29yICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMDQKKyMsIGZ1enp5Cittc2dpZCAid3JpdGUgdG8gc3Rkb3V0IGZhaWxlZCIKK21zZ3N0ciAiUydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBvYnJpciAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJubyBoYSBlc3RhdCBwb3NzaWJsZSBleGVjdXRhciBpb2N0bCgpIHBlciBsbGVnaXIgbCdob3JhIGRlICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgb2JyaXIgZWwgZml0eGVyICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgb2JyaXIgZWwgZml0eGVyICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAibm8gaGEgZXN0YXQgcG9zc2libGUgZXhlY3V0YXIgaW9jdGwoKSBwZXIgbGxlZ2lyIGwnaG9yYSBkZSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAiJXM6IE5vIHMnZXNwZXJhdmEgRU9GIGVuIGVsIGZpdHhlciAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczogQXJndW1lbnQgZXJyb25pLCBmb3JtYSBkJ8O6c1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorbXNnc3RyICIgIFsgLXRlcm0gbm9tX3Rlcm1pbmFsIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVzZXQgXVxuIgorbXNnc3RyICIgIFsgLXJlc2V0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCittc2dzdHIgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiICBbIC1kZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc5IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODMKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NQorIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorbXNnc3RyICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdG9yZSBdXG4iCittc2dzdHIgIiAgWyAtc3RvcmUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIgIFsgLWJsYW5rIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS1Ow5pNX0NPTlNPTEVTXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGVuZCBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWFwcGVuZCBbMS1Ow5pNX0NPTlNPTEVTXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiICBbIC1maWxlIG5vbV9maXR4ZXJfYm9sY2F0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSBuw7ptZXJvX2ZyZXHDvMOobmNpYSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSBibGFua1xuIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGJpZnVyY2FyIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgdW5ibGFua1xuIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGJpZnVyY2FyIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IGJsYW5rIHN0YXR1c1xuIgorbXNnc3RyICJubyBlcyBwb3Qgb2JyaXIgJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICJubyBlcyBwb3QgKGRlcylhY3RpdmFyIGVsIG1vZGUgZCdlc3RhbHZpIGQnZW5lcmdpYVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTIyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAia2xvZ2N0bCBlcnJvcjogJXNcbiIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBhIGtsb2djdGw6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JpdGluZyBzY3JlZW5kdW1wXG4iCittc2dzdHIgIlMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gZXNjcml1cmUgdW4gYm9sY2F0IGRlIHBhbnRhbGxhXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IHJlYWQgJXNcbiIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBvYnJpciAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6ICRURVJNIG5vIGVzdMOgIGRlZmluaXQuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstZF0gWy1wIHBpZGZpbGVdIFstcyBzb2NrZXRwYXRoXSBbLVQgdGltZW91dF1cbiIKK21zZ3N0ciAiIgorImZvcm1hIGQnw7pzOiBsYXN0IFstI10gWy1mIGZpdHhlcl0gWy10IHR0eV0gWy1oIG5vbV9vcmRpbmFkb3JdIFt1c3VhcmkgLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIFstcnx0XSBbLW4gbnVtXSBbLXMgc29ja2V0cGF0aF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIgICAgICAgJXMgLWwgWyBzZW55YWwgXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTUyCisjLCBmdXp6eQorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgImNvbDogYXJndW1lbnQgLWwgaW5jb3JyZWN0ZSAlcy5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorIywgZnV6enkKK21zZ2lkICJzb2NrZXQiCittc2dzdHIgImNvbm5lY3RvciBuZnMiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNzAKKyMsIGZ1enp5Cittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAiY29ubmV4acOzIG5mcyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE4OQorIywgZnV6enkKK21zZ2lkICJ3cml0ZSIKK21zZ3N0ciAiRXNjcml1IgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTk3CisjLCBmdXp6eQorbXNnaWQgInJlYWQgY291bnQiCittc2dzdHIgInMnaGEgbGxlZ2l0ICVjXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyMDMKK21zZ2lkICJiYWQgcmVzcG9uc2UgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGNyZWF0ZSB1bml4IHN0cmVhbSBzb2NrZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGJpbmQgdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgb2JyaXIgJXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxpc3RlbiBvbiB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBvYnJpciAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcmVhZGluZyBmcm9tIGNsaWVudCwgbGVuID0gJWRcbiIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBsbGVnaXIgJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM3OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb3BlcmF0aW9uICVkXG4iCittc2dzdHIgImlkZW50aWZpY2Fkb3IgaW52w6BsaWQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IHZhbG9yIGluY29ycmVjdGVcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUyNCBtaXNjLXV0aWxzL3V1aWRkLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjYWxsaW5nIHV1aWRkIGRhZW1vbiAoJXMpOiAlc1xuIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGNhbnZpYXIgZWwgbW9kZSBkZSAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCByZXBseSBsZW5ndGggZnJvbSBzZXJ2ZXIgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJLaWxsZWQgdXVpZGQgcnVubmluZyBhdCBwaWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRnZW4uYzozMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJGb3JtYSBkJ8O6czogJXMgW29wY2lvbnNdIGRpc3Bvc2l0aXUgLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpcmVjdG9yaSAuLi4gLWYgXSBub20uLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKKyMsIGZ1enp5Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAibCdhc3NpZ25hY2nDsyBkZSBtZW3DsnJpYSAobWFsbG9jKSBoYSBmYWxsYXQiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTUwCisjLCBmdXp6eQorbXNnaWQgInN0cmR1cCBmYWlsZWQiCittc2dzdHIgIlMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gb2JyaXIgJXMiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICIiCisiXG4iCisiUydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiB0YW5jYXIgZWwgZml0eGVyXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IGFwcGVhcnMgdG8gY29udGFpbiAnJXMnIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiRWwgZGlzYyAlcyBubyBjb250w6kgdW5hIHRhdWxhIGRlIHBhcnRpY2lvbnMgdsOgbGlkYVxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBmb3VuZCBhIG1hZ2ljIHN0cmluZyBhdCBvZmZzZXQgMHglanggLSBpZ25vcmUuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIHNlZWsgdG8gb2Zmc2V0IDB4JWp4IgorbXNnc3RyICIlczogcydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBvYnJpcjogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgIm5vIGhhIGVzdGF0IHBvc3NpYmxlIGV4ZWN1dGFyIG9wZW5wdHlcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiV6ZCBieXRlcyBbIgorbXNnc3RyICJvY3RldHMiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcGVuIGZhaWxlZCIKK21zZ3N0ciAibm8gaGEgZXN0YXQgcG9zc2libGUgZXhlY3V0YXIgb3BlbnB0eVxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxNSBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgJyVzJyB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlZhbG9yIGVzdGFibGVydCBpbnbDoGxpZDogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxkZXZpY2U+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiRm9ybWEgZCfDunM6ICVzIFtvcGNpb25zXSBkaXNwb3NpdGl1IC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1hLCAtLWFsbCAgICAgICAgICAgd2lwZSBhbGwgbWFnaWMgc3RyaW5ncyAoQkUgQ0FSRUZVTCEpXG4iCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLW5vLWFjdCAgICAgICAgZXZlcnl0aGluZyB0byBiZSBkb25lIGV4Y2VwdCBmb3IgdGhlIHdyaXRlKCkgY2FsbFxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCB0byBlcmFzZSwgaW4gYnl0ZXNcbiIKKyIgLXAsIC0tcGFyc2FibGUgICAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgd2lwZWZzKDgpLlxuIgorbXNnc3RyICJTJ2hhIGNhbnZpYXQgbGEgaW5mb3JtYWNpw7MgZGVsIGZpbmdlci5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozODcKK21zZ2lkICItLW9mZnNldCBhbmQgLS1hbGwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZTogbm8gcydoYSBwb2d1dCB0cm9iYXIgZWwgbm9tIGRlIGxhIHZvc3RyYSB0dHlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogdGVuaXUgZWwgcGVybcOtcyBkJ2VzY3JpcHR1cmEgZGVzYWN0aXZhdC5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIG5vIGhhIGVudHJhdCBhICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIHTDqSBlbHMgbWlzc2F0Z2VzIGluaGFiaWxpdGF0cyBhICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHdyaXRlIHVzZXIgW3R0eV1cbiIKK21zZ3N0ciAiZm9ybWEgZCfDunM6IHdyaXRlIHVzdWFyaSBbdHR5XVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlOiAlcyBubyBlc3TDoCBjb25uZWN0YXRcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkXG4iCittc2dzdHIgIndyaXRlOiAlcyB0w6kgZWxzIG1pc3NhdGdlcyBpbmhhYmlsaXRhdHNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbG9nZ2VkIGluIG1vcmUgdGhhbiBvbmNlOyB3cml0aW5nIHRvICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyBlc3TDoCBjb25uZWN0YXQgbcOpcyBkJ3VuYSB2ZWdhZGE7IHMnZXN0w6AgZXNjcml2aW50IGEgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIk1pc3NhdGdlIGRlICVzQCVzIChjb20gYSAlcykgZWwgJXMgYSBsZXMgJXMgLi4uIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIk1pc3NhdGdlIGRlICVzQCVzIGVsICVzIGEgbGVzICVzIC4uLiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgImF2w61zOiBzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGxsZWdpciAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTcyIG1vdW50L2ZzdGFiLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICJhdsOtczogbm8gcydoYSBwb2d1dCBvYnJpciAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjb3VsZCBub3Qgb3BlbiAlcyAtIHVzaW5nICVzIGluc3RlYWRcbiIKK21zZ3N0ciAibW91bnQ6IG5vIHMnaGEgcG9ndXQgb2JyaXIgJXM7IHMndXNhcsOgICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NTkwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGNyZWF0ZSBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyJubyBzJ2hhIHBvZ3V0IGNyZWFyIGVsIGZpdHhlciBkZSBibG9jYXQgJXM6ICVzICh1c2V1IGVsIHNlbnlhbGFkb3IgLW4gcGVyIGEgIgorIm1vZGlmaWNhciBhcXVlc3QgdmFsb3IpIgorCisjOiBtb3VudC9mc3RhYi5jOjYxNgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBsaW5rIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorIm5vIHMnaGEgcG9ndXQgZW5sbGHDp2FyIGVsIGZpdHhlciBkZSBibG9jYXQgJXM6ICVzICh1c2V1IGVsIHNlbnlhbGFkb3IgLW4gcGVyICIKKyJhIG1vZGlmaWNhciBhcXVlc3QgdmFsb3IpIgorCisjOiBtb3VudC9mc3RhYi5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBvcGVuIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorIm5vIHMnaGEgcG9ndXQgb2JyaXIgZWwgZml0eGVyIGRlIGJsb2NhdCAlczogJXMgKHVzZXUgZWwgc2VueWFsYWRvciAtbiBwZXIgYSAiCisibW9kaWZpY2FyIGFxdWVzdCB2YWxvcikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGJsb2NhciBlbCBmaXR4ZXIgZGUgYmxvY2F0ICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXMiCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgYmxvY2FyIGFsIGZpdHhlciBkZSBibG9jYXQgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MworbXNnaWQgInRpbWVkIG91dCIKK21zZ3N0ciAicydoYSBleGhhdXJpdCBlbCB0ZW1wcyBkJ2VzcGVyYSIKKworIzogbW91bnQvZnN0YWIuYzo2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbGluayAlc1xuIgorIlBlcmhhcHMgdGhlcmUgaXMgYSBzdGFsZSBsb2NrIGZpbGU/XG4iCittc2dzdHIgIiIKKyJObyBzJ2hhIHBvZ3V0IGNyZWFyIGwnZW5sbGHDpyAlc1xuIgorIlBvdHNlciBoaSBoYSB1biBmaXR4ZXIgZGUgYmxvY2F0IG9ic29sZXQ/XG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IG9icmlyICVzICglcykgLSBubyBzJ2hhIGFjdHVhbGl0emF0IG10YWIiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGVzY3JpdXJlICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzo4NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXNcbiIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBjYW52aWFyIGVsIG1vZGUgZGUgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBvd25lciBvZiAlczogJXNcbiIKK21zZ3N0ciAicydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBjYW52aWFyIGVsIG1vZGUgZGUgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODk4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCB0b3JuYXIgYSBub21lbmFyICVzIHBlciAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgc2V0IGNhcGFjaXR5IG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogbm8gcydoYSBwb2d1dCBvYnRlbmlyIGluZm9ybWFjacOzIHNvYnJlIGVsIGRpc3Bvc2l0aXUgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBkZXNwbGHDp2FtZW50ICVkIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIsIHNpemVsaW1pdCAlPFBSSXU2ND4iCittc2dzdHIgIiwgbMOtbWl0IGRlIG1pZGEgJWxsZCIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uICVzICh0eXBlICU8UFJJdTMyPikiCittc2dzdHIgIiwgeGlmcmF0Z2UgJXMgKHRpcHVzICVkKSIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMAorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlZCIKK21zZ3N0ciAiLCBkZXNwbGHDp2FtZW50ICVkIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiB0eXBlICVkXG4iCittc2dzdHIgIiwgdGlwdXMgZGUgeGlmcmF0Z2UgJWRcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBnZXQgaW5mbyBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG5vIHMnaGEgcG9ndXQgb2J0ZW5pciBpbmZvcm1hY2nDsyBzb2JyZSBlbCBkaXNwb3NpdGl1ICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDMyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IG9wZW4gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBubyBzJ2hhIHBvZ3V0IG9icmlyIGVsIGRpc3Bvc2l0aXUgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NDggbW91bnQvbG9tb3VudC5jOjQ4MCBtb3VudC9sb21vdW50LmM6NTQyCisjOiBtb3VudC9sb21vdW50LmM6NTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczogbCd1c3VhcmkgXCIlc1wiIG5vIGV4aXN0ZWl4LlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiVzOiBubyB0ZW5pdSBwZXJtaXNvcyBwZXIgbGxlZ2lyIC9kZXYvbG9vcCMiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBmcmVlIGxvb3AgZGV2aWNlIgorbXNnc3RyICIlczogbm8gcydoYSB0cm9iYXQgY2FwIGRpc3Bvc2l0aXUgbG9vcCBsbGl1cmUiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlPyAoSWYgc28sIHJlY29tcGlsZSBvciBgbW9kcHJvYmUgbG9vcCcuKSIKK21zZ3N0ciAiIgorIiVzOiBObyBzJ2hhIHBvZ3V0IHRyb2JhciBjYXAgZGlzcG9zaXRpdSBsb29wLiDDiXMgcG9zc2libGUgcXVlIGFxdWVzdCBudWNsaVxuIgorIiAgICAgICBubyByZWNvbmVndWkgZWxzIGRpc3Bvc2l0aXVzIGxvb3A/IChTaSBlcyBhaXjDrSwgcmVjb21waWxldS1sbyBvIGZldVxuIgorIiAgICAgICDCq21vZHByb2JlIGxvb3DCuy4pIgorCisjOiBtb3VudC9sb21vdW50LmM6NjM2CisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hpbGUgcmVhZGluZyBwYXNzcGhyYXNlIgorbXNnc3RyICIiCisiUydoYSBlc2dvdGF0IGxhIG1lbcOycmlhIGVuIGF1Z21lbnRhciBsYSBtaWRhIGRlIGxhIG1lbcOycmlhIGludGVybcOoZGlhLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlcyBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJFbCBzZWN0b3IgJWQgamEgZXN0w6AgYXNzaWduYXRcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY5NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICIiCisibW91bnQ6ICVzJXMgZXN0w6AgcHJvdGVnaXQgY29udHJhIGVzY3JpcHR1cmE7IGVzIG11bnRhcsOgIGVuIG5vbcOpcyBsZWN0dXJhIgorCisjOiBtb3VudC9sb21vdW50LmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgYmxvY2FyIGVuIG1lbcOycmlhLCBzJ2VzdMOgIHNvcnRpbnQuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgTE9PUF9TRVRfRkQgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAic2V0X2xvb3AoJXMsJXMsJWxsdSk6IMOoeGl0XG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVsX2xvb3AoJXMpOiBzdWNjZXNzXG4iCittc2dzdHIgImRlbF9sb29wKCVzKTogw6h4aXRcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg0MAorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBkZWxldGUgZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBubyBzJ2hhIHBvZ3V0IHN1cHJpbWlyIGVsIGRpc3Bvc2l0aXUgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIkFxdWVzdCBtb3VudCBzJ2hhIGNvbXBpbGF0IHNlbnNlIHN1cG9ydCBwZXIgYSBsb29wLiBSZWNvbXBpbGV1LWxvLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorImZvcm1hIGQnw7pzOlxuIgorIiAgJXMgZGlzcG9zaXRpdV9sb29wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRvbmEgaW5mb3JtYWNpw7NcbiIKKyIgICVzIC1kIGRpc3Bvc2l0aXVfbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBlbGltaW5hXG4iCisiICAlcyAtZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY2VyY2Egbm8gdXNhdHNcbiIKKyIgICVzIFsgLWUgeGlmcmF0Z2UgXSBbIC1vIGRlc3BsYcOnYW1lbnQgXSB7LWZ8ZGlzcF9sb29wfSBmaXR4ZXIgIyBjb25maWd1cmFcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg5NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWUgfCAtLWVuY3J5cHRpb24gPHR5cGU+IGVuYWJsZSBkYXRhIGVuY3J5cHRpb24gd2l0aCBzcGVjaWZpZWQgPG5hbWUvbnVtPlxuIgorIiAtaCB8IC0taGVscCAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1vIHwgLS1vZmZzZXQgPG51bT4gICAgICBzdGFydCBhdCBvZmZzZXQgPG51bT4gaW50byBmaWxlXG4iCisiICAgICAgLS1zaXplbGltaXQgPG51bT4gICBsb29wIGxpbWl0ZWQgdG8gb25seSA8bnVtPiBieXRlcyBvZiB0aGUgZmlsZVxuIgorIiAtcCB8IC0tcGFzcy1mZCA8bnVtPiAgICAgcmVhZCBwYXNzcGhyYXNlIGZyb20gZmlsZSBkZXNjcmlwdG9yIDxudW0+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBzZXR1cCByZWFkLW9ubHkgbG9vcCBkZXZpY2VcbiIKKyIgICAgICAtLXNob3cgICAgICAgICAgICAgIHByaW50IGRldmljZSBuYW1lICh3aXRoIC1mIDxmaWxlPilcbiIKKyIgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgIHZlcmJvc2UgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDM0IG1vdW50L2xvbW91bnQuYzoxMDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJMb29wIGRldmljZSBpcyAlc1xuIgorbXNnc3RyICJsb29wOiBubyBzJ2hhIHBvZ3V0IG9icmlyIGVsIGRpc3Bvc2l0aXUgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDYxCisjLCBjLWZvcm1hdAorbXNnaWQgInN0b2xlbiBsb29wPSVzLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogZGV2aWNlIGlzIGJ1c3kiCittc2dzdHIgInVtb3VudDogJXM6IGRpc3Bvc2l0aXUgb2N1cGF0IgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKyJRdWFuIGVzIHZhIGNvbXBpbGFyIGVsIHN1cG9ydCBwZXIgYSBsb29wIG5vIGVzdGF2YSBkaXNwb25pYmxlLiBSZWNvbXBpbGV1LSIKKyJsby5cbiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIgorbXNnc3RyICJtb3VudDogbm8gcydoYSBwb2d1dCB0cm9iYXIgJXMgYSAlcyBvICVzIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHNlZ29ucyBtdGFiLCAlcyBqYSBlc3TDoCBtdW50YXQgYSAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogc2Vnb25zIG10YWIsICVzIGVzdMOgIG11bnRhdCBhICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlcyBmb3Igd3JpdGluZzogJXMiCittc2dzdHIgIm1vdW50OiBubyBzJ2hhIHBvZ3V0IG9icmlyICVzIHBlciBhIGVzY3JpcHR1cmE6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDogcydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBlc2NyaXVyZSAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IHMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gY2FudmlhciBlbCBtb2RlIGRlICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQgOiBubyBzJ2hhIHBvZ3V0IGVzdGFibGlyIGxhIHZlbG9jaXRhdCBkZTogJXMiCisKKyM6IG1vdW50L21vdW50LmM6Njc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibW91bnQgOiBubyBzJ2hhIHBvZ3V0IGVzdGFibGlyIGxhIHZlbG9jaXRhdCBkZTogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NzE0IG1vdW50L21vdW50LmM6MTg2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJtb3VudDogbm8gcydoYSBwb2d1dCBiaWZ1cmNhcjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyAlc1xuIgorbXNnc3RyICJTJ2VzdMOgIHByb3ZhbnQgYW1iICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIm1vdW50OiBubyBoZXUgZXNwZWNpZmljYXQgY2FwIHRpcHVzIGRlIHNpc3RlbWEgZGUgZml0eGVycyBwZXIgYSAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiAgICAgICBFcyBwcm92YXLDoCBhbWIgdG90cyBlbHMgdGlwdXMgaW5kaWNhdHMgYSAlcyBvICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICIgICAgICAgaSBzZW1ibGEgcXVlIGFpeMOyIMOpcyBlc3BhaSBkJ2ludGVyY2FudmlcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgdHlwZSAlc1xuIgorbXNnc3RyICIgICAgICAgUHJvdmFyw6kgYW1iIGVsIHRpcHVzICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiCittc2dzdHIgIiVzIHNlbWJsYSBlc3BhaSBkJ2ludGVyY2FudmkgLSBubyBzJ2hhIG11bnRhdCIKKworIzogbW91bnQvbW91bnQuYzoxMDAyCittc2dpZCAibW91bnQgZmFpbGVkIgorbXNnc3RyICJubyBzJ2hhIGVzdGF0IHBvc3NpYmxlIG11bnRhciIKKworIzogbW91bnQvbW91bnQuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIgorbXNnc3RyICJtb3VudDogbm9tw6lzIGwndXN1YXJpIHJvb3QgcG90IG11bnRhciAlcyBhICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzQKK21zZ2lkICJtb3VudDogbG9vcCBkZXZpY2Ugc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogZWwgZGlzcG9zaXRpdSBsb29wIGVzdMOgIGVzcGVjaWZpY2F0IGR1ZXMgdmVnYWRlcyIKKworIzogbW91bnQvbW91bnQuYzoxMDc5Cittc2dpZCAibW91bnQ6IHR5cGUgc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogZWwgdGlwdXMgZXN0w6AgZXNwZWNpZmljYXQgZHVlcyB2ZWdhZGVzIgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBzJ2VzdMOgIG9tZXRlbnQgbGEgY29uZmlndXJhY2nDsyBkJ3VuIGRpc3Bvc2l0aXUgbG9vcFxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMgYXMgbG9vcCIKK21zZ3N0ciAibW91bnQ6IHNlZ29ucyBtdGFiLCAlcyBqYSBlc3TDoCBtdW50YXQgYSAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiBzJ3VzYXLDoCBlbCBkaXNwb3NpdGl1IGxvb3AgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzdG9sZW4gbG9vcD0lcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzdG9sZW4gbG9vcD0lcyIKK21zZ3N0ciAidW1vdW50OiAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZmFpbGVkIHNldHRpbmcgdXAgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAibW91bnQ6IG5vIGhhIGVzdGF0IHBvc3NpYmxlIGNvbmZpZ3VyYXIgZWwgZGlzcG9zaXRpdSBsb29wXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE0MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2V0dXAgbG9vcCBkZXZpY2Ugc3VjY2Vzc2Z1bGx5XG4iCittc2dzdHIgIm1vdW50OiBzJ2hhIGNvbmZpZ3VyYXQgZWwgZGlzcG9zaXRpdSBsb29wIGFtYiDDqHhpdFxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vICVzIGZvdW5kIC0gY3JlYXRpbmcgaXQuLlxuIgorbXNnc3RyICJtb3VudDogbm8gcydoYSB0cm9iYXQgJXM7IHMnZXN0w6AgY3JlYW50Li4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgIm1vdW50OiBubyBzJ2hhIHBvZ3V0IG9icmlyICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMjE1Cittc2dpZCAibW91bnQ6IGFyZ3VtZW50IHRvIC1wIG9yIC0tcGFzcy1mZCBtdXN0IGJlIGEgbnVtYmVyIgorbXNnc3RyICJtb3VudDogbCdhcmd1bWVudCBhIC1wIG8gLS1wYXNzLWZkIGhhIGRlIHNlciB1biBub21icmUiCisKKyM6IG1vdW50L21vdW50LmM6MTIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG9wZW4gJXMgZm9yIHNldHRpbmcgc3BlZWQiCittc2dzdHIgIm1vdW50OiBubyBzJ2hhIHBvZ3V0IG9icmlyICVzIHBlciBlc3RhYmxpci1uZSBsYSB2ZWxvY2l0YXQiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50IDogbm8gcydoYSBwb2d1dCBlc3RhYmxpciBsYSB2ZWxvY2l0YXQgZGU6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiBzZWdvbnMgbXRhYiwgJXMgamEgZXN0w6AgbXVudGF0IGEgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTM4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHdhcm5pbmc6ICVzIHNlZW1zIHRvIGJlIG1vdW50ZWQgcmVhZC13cml0ZS5cbiIKK21zZ3N0ciAidW1vdW50OiAlcyBvY3VwYXQgLSBzJ2hhIHRvcm5hdCBhIG11bnRhciBkZSBub23DqXMgbGVjdHVyYVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTMKK21zZ2lkICIiCisibW91bnQ6IEkgY291bGQgbm90IGRldGVybWluZSB0aGUgZmlsZXN5c3RlbSB0eXBlLCBhbmQgbm9uZSB3YXMgc3BlY2lmaWVkIgorbXNnc3RyICIiCisibW91bnQ6IG5vIHMnaGEgcG9ndXQgZGV0ZXJtaW5hciBlbCB0aXB1cyBkZSBzaXN0ZW1hIGRlIGZpdHhlcnMgaSBubyBuJ2hldSAiCisiZXNwZWNpZmljYXQgY2FwIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTYKK21zZ2lkICJtb3VudDogeW91IG11c3Qgc3BlY2lmeSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICJtb3VudDogaGF1cmV1IGQnZXNwZWNpZmljYXIgZWwgdGlwdXMgZGVsIHNpc3RlbWEgZGUgZml0eGVycyIKKworIzogbW91bnQvbW91bnQuYzoxNDE5Cittc2dpZCAibW91bnQ6IG1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQ6IG5vIGhhIGVzdGF0IHBvc3NpYmxlIG11bnRhciIKKworIzogbW91bnQvbW91bnQuYzoxNDI1IG1vdW50L21vdW50LmM6MTQ2MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgbm90IGEgZGlyZWN0b3J5IgorbXNnc3RyICJtb3VudDogZWwgcHVudCBkZSBtdW50YXRnZSAlcyBubyDDqXMgdW4gZGlyZWN0b3JpIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjcKK21zZ2lkICJtb3VudDogcGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm1vdW50OiBzJ2hhIGRlbmVnYXQgZWwgcGVybcOtcyIKKworIzogbW91bnQvbW91bnQuYzoxNDI5Cittc2dpZCAibW91bnQ6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVzZSBtb3VudCIKK21zZ3N0ciAibW91bnQ6IGhhdXJldSBkZSBzZXIgdW4gc3VwZXJ1c3VhcmkgcGVyIGEgdXNhciBtb3VudCIKKworIzogbW91bnQvbW91bnQuYzoxNDMzIG1vdW50L21vdW50LmM6MTQzNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIGVzdMOgIG9jdXBhdCIKKworIzogbW91bnQvbW91bnQuYzoxNDM5Cittc2dpZCAibW91bnQ6IHByb2MgYWxyZWFkeSBtb3VudGVkIgorbXNnc3RyICJtb3VudDogcHJvYyBqYSBlc3TDoCBtdW50YXQiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9yICVzIGJ1c3kiCittc2dzdHIgIm1vdW50OiAlcyBqYSBlc3TDoCBtdW50YXQgbyAlcyBlc3TDoCBvY3VwYXQiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBlbCBwdW50IGRlIG11bnRhdGdlICVzIG5vIGV4aXN0ZWl4IgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICJtb3VudDogZWwgcHVudCBkZSBtdW50YXRnZSAlcyDDqXMgdW4gZW5sbGHDpyBzaW1iw7JsaWMgc2Vuc2UgZGVzdMOtIgorCisjOiBtb3VudC9tb3VudC5jOjE0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogZWwgZGlzcG9zaXRpdSBlc3BlY2lhbCAlcyBubyBleGlzdGVpeCIKKworIzogbW91bnQvbW91bnQuYzoxNDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3RcbiIKKyIgICAgICAgKGEgcGF0aCBwcmVmaXggaXMgbm90IGEgZGlyZWN0b3J5KVxuIgorbXNnc3RyICIiCisibW91bnQ6IGVsIGRpc3Bvc2l0aXUgZXNwZWNpYWwgJXMgbm8gZXhpc3RlaXhcbiIKKyIgICAgICAgKHVuIHByZWZpeCBkZSBjYW3DrSBubyDDqXMgdW4gZGlyZWN0b3JpKVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIG5vdCBtb3VudGVkIGFscmVhZHksIG9yIGJhZCBvcHRpb24iCittc2dzdHIgIm1vdW50OiAlcyBlbmNhcmEgbm8gZXN0w6AgbXVudGF0IG8gdW5hIG9wY2nDsyDDqXMgaW5jb3JyZWN0YSIKKworIzogbW91bnQvbW91bnQuYzoxNDgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorIiAgICAgICBtaXNzaW5nIGNvZGVwYWdlIG9yIGhlbHBlciBwcm9ncmFtLCBvciBvdGhlciBlcnJvciIKK21zZ3N0ciAiIgorIm1vdW50OiBlbCB0aXB1cyBkZSBzaXN0ZW1hIGRlIGZpdHhlcnMgbyDDqXMgY29ycmVjdGUsIGxhIG9wY2nDsyBubyDDqXMgIgorImNvcnJlY3RhLFxuIgorIiAgICAgICBzdXBlcmJsb2MgaW5jb3JyZWN0ZSBhICVzLCBtYW5jYSBsYSBww6BnaW5hIGRlIGNvZGlzIG8gYWxndW4gYWx0cmUgIgorImVycm9yIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKyIgICAgICAgIChwb2RyaWEgc2VyIHF1ZSBhcXVlc3QgZm9zIGVsIGRpc3Bvc2l0aXUgSURFIG9uIHV0aWxpdHpldSBpZGUtc2NzaVxuIgorIiAgICAgICAgZGUgbWFuZXJhIHF1ZSBzcjAgbyBzZGEgbyBzaWd1aW4gbmVjZXNzYXJpcz8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDEKK21zZ2lkICIiCisiICAgICAgIChhcmVuJ3QgeW91IHRyeWluZyB0byBtb3VudCBhbiBleHRlbmRlZCBwYXJ0aXRpb24sXG4iCisiICAgICAgIGluc3RlYWQgb2Ygc29tZSBsb2dpY2FsIHBhcnRpdGlvbiBpbnNpZGU/KSIKK21zZ3N0ciAiIgorIiAgICAgICAgKG5vIGVzdGV1IGludGVudGFudCBtdW50YXIgdW5hIHBhcnRpY2nDsyBlc3Rlc2EsXG4iCisiICAgICAgICBlbiBjb21wdGVzIGQnYWxndW5hIHBhcnRpY2nDsyBsw7JnaWNhIGRlIGRpbnM/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKyIgICAgICAgIEVuIGFsZ3VucyBjYXNvcywgZXMgcG90IHRyb2JhciBpbmZvcm1hY2nDsyDDunRpbCBhIHN5c2xvZyxcbiIKKyIgICAgICAgIHByb3ZldSBkbWVzZyB8IHRhaWwgbyBhaXjDrVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICJsYSB0YXVsYSBkZSBkaXNwb3NpdGl1cyBtdW50YXRzIGVzdMOgIHBsZW5hIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiBjYW4ndCByZWFkIHN1cGVyYmxvY2siCittc2dzdHIgIm1vdW50OiAlczogbm8gcydoYSBwb2d1dCBsbGVnaXIgZWwgc3VwZXJibG9jIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlczogZGlzcG9zaXRpdSBkZXNjb25lZ3V0IgorCisjOiBtb3VudC9tb3VudC5jOjE1MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHVua25vd24gZmlsZXN5c3RlbSB0eXBlICclcyciCittc2dzdHIgIm1vdW50OiBubyBlcyByZWNvbmVpeCBlbCBzaXRlbWEgZGUgZml0eGVycyDCqyVzwrsiCisKKyM6IG1vdW50L21vdW50LmM6MTUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogcHJvYmFibHkgeW91IG1lYW50ICVzIgorbXNnc3RyICJtb3VudDogcHJvYmFibGVtZW50IHZvbMOtZXUgZGlyICVzIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDIKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICdpc285NjYwJz8iCittc2dzdHIgIm1vdW50OiBwb3RzZXIgdm9sw61ldSBkaXIgwqtpc285NjYwwrs/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDUKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICd2ZmF0Jz8iCittc2dzdHIgIm1vdW50OiBwb3RzZXIgdm9sw61ldSBkaXIgwqt2ZmF0wrs/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyB0w6kgdW4gbsO6bWVybyBkZSBkaXNwb3NpdGl1IGluY29ycmVjdGUgbyBlbCB0aXB1cyBkZSBzaXN0ZW1hIGRlICIKKyJmaXR4ZXJzICVzIG5vIGVzdMOgIGltcGxlbWVudGF0IgorCisjOiBtb3VudC9tb3VudC5jOjE1NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSwgYW5kIHN0YXQgZmFpbHM/IgorbXNnc3RyICJtb3VudDogJXMgbm8gw6lzIGNhcCBkaXNwb3NpdGl1IGRlIGJsb2NzLCBpIHN0YXQgZmFsbGE/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogdGhlIGtlcm5lbCBkb2VzIG5vdCByZWNvZ25pemUgJXMgYXMgYSBibG9jayBkZXZpY2VcbiIKKyIgICAgICAgKG1heWJlIGBtb2Rwcm9iZSBkcml2ZXInPykiCittc2dzdHIgIiIKKyJtb3VudDogZWwgbnVjbGkgbm8gcmVjb25laXggJXMgY29tIGEgZGlzcG9zaXRpdSBkZSBibG9jc1xuIgorIiAgICAgICAocG90c2VyIGZlbnQgwqtpbnNtb2QgY29udHJvbGFkb3LCuz8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSAobWF5YmUgdHJ5IGAtbyBsb29wJz8pIgorbXNnc3RyICJtb3VudDogJXMgbm8gw6lzIHVuIGRpc3Bvc2l0aXUgZGUgYmxvY3MgKHByb3ZldSBhbWIgYC1vIGxvb3AnKSIKKworIzogbW91bnQvbW91bnQuYzoxNTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlcyBubyDDqXMgdW4gZGlzcG9zaXRpdSBkZSBibG9jcyIKKworIzogbW91bnQvbW91bnQuYzoxNTY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSB2YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlcyBubyDDqXMgdW4gZGlzcG9zaXRpdSBkZSBibG9jcyB2w6BsaWQiCisKKyM6IG1vdW50L21vdW50LmM6MTU3MgorbXNnaWQgImJsb2NrIGRldmljZSAiCittc2dzdHIgImRpc3Bvc2l0aXUgZGUgYmxvY3MgIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIKK21zZ3N0ciAibW91bnQgOiBubyBzJ2hhIHBvZ3V0IG11bnRhciAlcyVzIGNvbSBhIG5vbcOpcyBkZSBsZWN0dXJhIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkIGJ1dCBleHBsaWNpdCBgLXcnIGZsYWcgZ2l2ZW4iCittc2dzdHIgIiIKKyJtb3VudCA6ICVzJXMgZXN0w6AgcHJvdGVnaXQgY29udHJhIGVzY3JpcHR1cmEgcGVyw7Igc2UgbGkgaGEgZG9uYXQgZWwgIgorInNlbnlhbGFkb3IgZXhwbMOtY2l0IMKrLXfCuyIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIm1vdW50IDogbm8gcydoYSBwb2d1dCBtdW50YXIgJXMlcyBjb20gYSBub23DqXMgZGUgbGVjdHVyYSIKKworIzogbW91bnQvbW91bnQuYzoxNTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCwgbW91bnRpbmcgcmVhZC1vbmx5IgorbXNnc3RyICIiCisibW91bnQ6ICVzJXMgZXN0w6AgcHJvdGVnaXQgY29udHJhIGVzY3JpcHR1cmE7IGVzIG11bnRhcsOgIGVuIG5vbcOpcyBsZWN0dXJhIgorCisjOiBtb3VudC9tb3VudC5jOjE2MDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIm1vdW50OiBubyBzJ2hhIHRyb2JhdCAlczsgcydlc3TDoCBjcmVhbnQuLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxNjEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIgorbXNnc3RyICJtb3VudDogJXMgamEgZXN0w6AgbXVudGF0IGEgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxNjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogJXMgZG9lcyBub3QgY29udGFpbiBTRUxpbnV4IGxhYmVscy5cbiIKKyIgICAgICAgWW91IGp1c3QgbW91bnRlZCBhbiBmaWxlIHN5c3RlbSB0aGF0IHN1cHBvcnRzIGxhYmVscyB3aGljaCBkb2VzIG5vdFxuIgorIiAgICAgICBjb250YWluIGxhYmVscywgb250byBhbiBTRUxpbnV4IGJveC4gSXQgaXMgbGlrZWx5IHRoYXQgY29uZmluZWRcbiIKKyIgICAgICAgYXBwbGljYXRpb25zIHdpbGwgZ2VuZXJhdGUgQVZDIG1lc3NhZ2VzIGFuZCBub3QgYmUgYWxsb3dlZCBhY2Nlc3MgdG9cbiIKKyIgICAgICAgdGhpcyBmaWxlIHN5c3RlbS4gIEZvciBtb3JlIGRldGFpbHMgc2VlIHJlc3RvcmVjb24oOCkgYW5kIG1vdW50KDgpLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTcxMAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiB0aGUgY29sb25cbiIKK21zZ3N0ciAiIgorIm1vdW50OiBubyBzJ2hhIGVzcGVjaWZpY2F0IGNhcCB0aXB1czsgcydhc3N1bWlyw6AgbmZzIHBlciBhbHMgZG9zIHB1bnRzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgY2lmcyBiZWNhdXNlIG9mIHRoZSAvLyBwcmVmaXhcbiIKK21zZ3N0ciAiIgorIm1vdW50OiBubyBzJ2hhIGVzcGVjaWZpY2F0IGNhcCB0aXB1czsgcydhc3N1bWlyw6Agc21iIGEgY2F1c2EgZGVsIHByZWZpeCAvL1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICJtb3VudDogJXMgamEgZXN0w6AgbXVudGF0IGEgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxOTQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKyJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKyIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKyJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKyJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKyJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKyJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorbXNnc3RyICIiCisiZm9ybWEgZCfDunM6IG1vdW50IC1WICAgICAgICAgICAgOiBtb3N0cmEgbGEgdmVyc2nDs1xuIgorIiAgICAgICAgICAgIG1vdW50IC1oICAgICAgICAgICAgOiBtb3N0cmEgYXF1ZXN0YSBhanVkYVxuIgorIiAgICAgICAgICAgIG1vdW50ICAgICAgICAgICAgICAgOiBsbGlzdGEgZWxzIHNpc3RlbWVzIGRlIGZpdHhlcnMgbXVudGF0c1xuIgorIiAgICAgICAgICAgIG1vdW50IC1sICAgICAgICAgICAgOiDDrWRlbSwgaW5jbG9lbiBsZXMgZXRpcXVldGVzIGRlIHZvbHVtXG4iCisiRmlucyBhcXXDrSBsYSBwYXJ0IGluZm9ybWF0aXZhLiBFcyBjb250aW51YSBhbWIgZWwgbXVudGF0Z2UuXG4iCisiTCdvcmRyZSDDqXMgwqttb3VudCBbLXQgdGlwdXNfc2ZdIGFsZ3VuYV9jb3NhIGxsb2PCuy5cbiIKKyJFbHMgZGV0YWxscyBpbmNsb3NvcyBlbiAvZXRjL2ZzdGFiIGVzIHBvZGVuIG9tZXRyZS5cbiIKKyIgICAgICAgICAgICBtb3VudCAtYSBbLXR8LU9dICAgIDogbXVudGEgdG90IGVsIHF1ZSBzJ2hhIGluZGljYXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW4gL2V0Yy9mc3RhYlxuIgorIiAgICAgICAgICAgIG1vdW50IGRpc3Bvc2l0aXUgICAgOiBtdW50YSBlbCBkaXNwb3NpdGl1IGVuIGVsIGxsb2MgY29uZWd1dFxuIgorIiAgICAgICAgICAgIG1vdW50IGRpcmVjdG9yaSAgICAgOiBtdW50YSBlbCBkaXNwb3NpdGl1IGNvbmVndXQgYXF1w61cbiIKKyIgICAgICAgICAgICBtb3VudCAtdCB0aXB1cyBkaXNwIGRpciA6IG9yZHJlIG1vdW50IG9yZGluYXJpYVxuIgorIlRpbmd1ZXUgZW4gY29tcHRlIHF1ZSBubyBtdW50YXJldSByZWFsbWVudCB1biBkaXNwb3NpdGl1LCBzaW7DsyBtw6lzXG4iCisiYXZpYXQgZWwgc2V1IHNpc3RlbWEgZGUgZml0eGVycyAoZWwgdGlwdXMgZG9uYXQpLiBUYW1iw6kgZXMgcG90IG11bnRhclxuIgorInVuIGFyYnJlIGRlIGRpcmVjdG9yaXMgamEgdmlzaWJsZSBlbiB1biBhbHRyZSBsbG9jXG4iCisiICAgICAgICAgICAgbW91bnQgLS1iaW5kIGRpcl9hbnRpYyBkaXJfbm91XG4iCisibyBtb3VyZSB1biBzdWJhcmJyZTpcbiIKKyIgICAgICAgICAgICBtb3VudCAtLW1vdmUgZGlyX2FudGljIGRpcl9ub3VcbiIKKyJFcyBwb3QgZG9uYXIgdW4gZGlzcG9zaXRpdSBtaXRqYW7Dp2FudCBlbCBub20sIHBvc2VtLWhpIC9kZXYvaGRhMSBvXG4iCisiL2Rldi9jZHJvbSBvIG1pdGphbsOnYW50IGwnZXRpcXVldGEsIHVzYW50IC1MIGV0aXF1ZXRhIG8gbWl0amFuw6dhbnQgdXVpZCxcbiIKKyJ1c2FudCAtVSB1dWlkLlxuIgorIkFsdHJlcyBvcGNpb25zOiBbLW5mRnJzdnddIFstbyBvcGNpb25zXSBbLXAgZGZjb250cmFzZW55YV0uXG4iCisiUGVyIGEgbcOpcyBkZXRhbGxzLCBjb25zdWx0ZXUgwqttYW4gOCBtb3VudMK7LlxuIgorCisjOiBtb3VudC9tb3VudC5jOjIyNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQgKGVmZmVjdGl2ZSBVSUQgaXMgJWQpIgorbXNnc3RyICJtb3VudDogbm9tw6lzIGwndXN1YXJpIHJvb3QgcG90IGZlciBhaXjDsiIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6IG5vbcOpcyBsJ3VzdWFyaSByb290IHBvdCBmZXIgYWl4w7IiCisKKyM6IG1vdW50L21vdW50LmM6MjI4OAorbXNnaWQgIm5vdGhpbmcgd2FzIG1vdW50ZWQiCittc2dzdHIgIm5vIHMnaGEgbXVudGF0IHJlcyIKKworIzogbW91bnQvbW91bnQuYzoyMzA2IG1vdW50L21vdW50LmM6MjMzMgorbXNnaWQgIm1vdW50OiBubyBzdWNoIHBhcnRpdGlvbiBmb3VuZCIKK21zZ3N0ciAibW91bnQ6IG5vIHMnaGEgdHJvYmF0IGFxdWVzdGEgcGFydGljacOzIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IGZpbmQgJXMgaW4gJXMgb3IgJXMiCittc2dzdHIgIm1vdW50OiBubyBzJ2hhIHBvZ3V0IHRyb2JhciAlcyBhICVzIG8gJXMiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogd2FybmluZzogbm8gZmluYWwgbmV3bGluZSBhdCB0aGUgZW5kIG9mICVzXG4iCittc2dzdHIgIlttbnRlbnRdOiBhdsOtczogbm8gaGkgaGEgY2FwIG5vdmEgbMOtbmlhIGFsIGZpbmFsIGRlICVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogbGluZSAlZCBpbiAlcyBpcyBiYWQlc1xuIgorbXNnc3RyICJbbW50ZW50XTogbGEgbMOtbmlhICVkIGRlICVzIG5vIMOpcyBjb3JyZWN0YSVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxOQorbXNnaWQgIjsgcmVzdCBvZiBmaWxlIGlnbm9yZWQiCittc2dzdHIgIjsgcydpZ25vcmFyw6AgbGEgcmVzdGEgZGVsIGZpdHhlciIKKworIzogbW91bnQvc3VuZHJpZXMuYzozMgorbXNnaWQgImJ1ZyBpbiB4c3RybmR1cCBjYWxsIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGxhIGNyaWRhIHhzdHJuZHVwIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgIm5vIGhpIGhhIHByb3UgbWVtw7JyaWEiCisKKyM6IG1vdW50L3N3YXBvbi5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgPHNwZWNpYWw+IHBhcmFtZXRlcjpcbiIKKyIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxmaWxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGZpbGUgdG8gYmUgdXNlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCBwcmlvcml0eV0gWy12XSBbLWZdIDxzcGVjaWFsPiAgZW5hYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjEwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBzd2Fwc1xuIgorIiAlMSRzIFstdl0gPHNwZWNpYWw+ICAgICAgICAgICAgICAgZGlzYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiVzOiBObyBzJ2VzcGVyYXZhIEVPRiBlbiBlbCBmaXR4ZXIgJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWluaXRpYWxpemluZyB0aGUgc3dhcC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGJpZnVyY2FyXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIzOQorIywgZnV6enkKK21zZ2lkICJleGVjdiBmYWlsZWQiCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgZXhlY1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNDcKKyMsIGZ1enp5Cittc2dpZCAid2FpdHBpZCBmYWlsZWQiCittc2dzdHIgInNldHVpZCgpIGhhIGZhbGxhdCIKKworIzogbW91bnQvc3dhcG9uLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbHNlZWsgZmFpbGVkIgorbXNnc3RyICJsYSBjZXJjYSBoYSBmYWxsYXQiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgIlMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gb2JyaXIgJXMiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZm91bmQgc3dhcCBzaWduYXR1cmU6IHZlcnNpb24gJWQsIHBhZ2Utc2l6ZSAlZCwgJXMgYnl0ZSBvcmRlciIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJkaWZmZXJlbnQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5CisjLCBmdXp6eQorbXNnaWQgInNhbWUiCittc2dzdHIgIk5vbSIKKworIzogbW91bnQvc3dhcG9uLmM6Mzg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgImxhIGNlcmNhIGhhIGZhbGxhdCIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaW5zZWN1cmUgcGVybWlzc2lvbnMgJTA0bywgJTA0byBzdWdnZXN0ZWQuIgorbXNnc3RyICIiCisiJXM6IGF2w61zOiAlcyB0w6kgZWxzIHBlcm1pc29zICUwNG8gcXVlIHPDs24gaW5zZWd1cnMsIHNlIHN1Z2dlcmVpeCAlMDRvXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQwMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIC0gaXQgYXBwZWFycyB0byBoYXZlIGhvbGVzLiIKK21zZ3N0ciAiJXM6IFMnZXN0w6Agb21ldGVudCBlbCBmaXR4ZXIgJXMgLSBzZW1ibGEgcXVlIHTDqSBmb3JhdHMuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAibGEgY2VyY2EgaGEgZmFsbGF0IgorCisjOiBtb3VudC9zd2Fwb24uYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgc3dhcCBoZWFkZXIgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbGFzdF9wYWdlIDB4JTA4bGx4IGlzIGxhcmdlciB0aGFuIGFjdHVhbCBzaXplIG9mIHN3YXBzcGFjZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4gKFVzZSAtLWZpeHBnc3ogdG8gcmVpbml0aWFsaXplIGl0LikiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuIFJld3JpdGluZyB0aGUgc3dhcCBzaWduYXR1cmUuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ3OCBtb3VudC9zd2Fwb24uYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgb24gJXNcbiIKK21zZ3N0ciAiJXMgYSAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb24gZmFpbGVkIgorbXNnc3RyICJsYSBjZXJjYSBoYSBmYWxsYXQiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzOiBubyBzJ2hhIHBvZ3V0IHRyb2JhciBlbCBkaXNwb3NpdGl1IHBlciBhICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MAorIywgZnV6enkKK21zZ2lkICJOb3Qgc3VwZXJ1c2VyLiIKK21zZ3N0ciAiTm8gc291IGVsIHN1cGVydXN1YXJpLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb2ZmIGZhaWxlZCIKK21zZ3N0ciAibGEgY2VyY2EgaGEgZmFsbGF0IgorCisjOiBtb3VudC9zd2Fwb24uYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyB1bnN1cHBvcnRlZCBwcm9ncmFtIG5hbWUgKG11c3QgYmUgJ3N3YXBvbicgb3IgJ3N3YXBvZmYnKS4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIC1mXG4iCittc2dzdHIgInVtb3VudDogZXN0w6AgY29tcGlsYXQgc2Vuc2Ugc3Vwb3J0IHBlciBhIC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQgOiBubyBzJ2hhIHBvZ3V0IGVzdGFibGlyIGxhIHZlbG9jaXRhdCBkZTogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjExNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJtb3VudCA6IG5vIHMnaGEgcG9ndXQgZXN0YWJsaXIgbGEgdmVsb2NpdGF0IGRlOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJtb3VudDogbm8gcydoYSBwb2d1dCBiaWZ1cmNhcjogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlczogZGlzcG9zaXRpdSBkZSBibG9jcyBubyB2w6BsaWQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIKK21zZ3N0ciAidW1vdW50OiAlczogbm8gZXN0w6AgbXVudGF0IgorCisjOiBtb3VudC91bW91bnQuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogY2FuJ3Qgd3JpdGUgc3VwZXJibG9jayIKK21zZ3N0ciAidW1vdW50OiAlczogbm8gcydoYSBwb2d1dCBlc2NyaXVyZSBlbCBzdXBlcmJsb2MiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgZm91bmQiCittc2dzdHIgInVtb3VudDogJXM6IG5vIHMnaGEgdHJvYmF0IgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBoYXVyZXUgZGUgc2VyIHN1cGVydXN1YXJpIHBlciBwb2RlciB1c2FyIHVtb3VudCIKKworIzogbW91bnQvdW1vdW50LmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGJsb2NrIGRldmljZXMgbm90IHBlcm1pdHRlZCBvbiBmcyIKK21zZ3N0ciAidW1vdW50OiAlczogZGlzcG9zaXRpdXMgZGUgYmxvY3Mgbm8gcGVybWVzb3MgZW4gZWwgc2lzdGVtYSBkZSBmaXR4ZXJzIgorCisjOiBtb3VudC91bW91bnQuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogJXMiCittc2dzdHIgInVtb3VudDogJXM6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdW1vdW50MiwgdHJ5aW5nIHVtb3VudC4uLlxuIgorbXNnc3RyICJ1bW91bnQyIG5vIGV4aXN0ZWl4LCBzJ2VzdMOgIHByb3ZhbnQgYW1iIHVtb3VudC4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBidXN5IC0gcmVtb3VudGVkIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIG9jdXBhdCAtIHMnaGEgdG9ybmF0IGEgbXVudGFyIGRlIG5vbcOpcyBsZWN0dXJhXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvdWxkIG5vdCByZW1vdW50ICVzIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6IG5vIHMnaGEgcG9ndXQgdG9ybmFyIGEgbXVudGFyICVzIGRlIG5vbcOpcyBsZWN0dXJhXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1bW91bnRlZFxuIgorbXNnc3RyICIlcyBkZXNtdW50YXRcbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgIiIKKyJ1bW91bnQ6IG5vIHMnaGEgcG9ndXQgdHJvYmFyIGxhIGxsaXN0YSBkZWxzIHNpc3RlbWVzIGRlIGZpdHhlcnMgYSBkZXNtdW50YXIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKK21zZ3N0ciAiIgorIkZvcm1hIGQnw7pzOiB1bW91bnQgWy1oVl1cbiIKKyIgICAgICAgICAgICB1bW91bnQgLWEgWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgIHRpcHVzX3Npc3QuX2ZpdHguX3ZpcnR1YWxzXVxuIgorIiAgICAgICAgICAgICAgICAgICBbLU8gb3BjaW9uc11cbiIKKyIgICAgICAgICAgICB1bW91bnQgWy1mXSBbLXJdIFstbl0gWy12XSBlc3BlY2lhbCB8IG5vZGUuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIkVsIHNlY3RvciAlZCBqYSBlc3TDoCBhc3NpZ25hdFxuIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBub3QgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIkVsIHNlY3RvciAlZCBqYSBlc3TDoCBhc3NpZ25hdFxuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBkZXNtdW50YXIgwqvCu1xuIgorCisjOiBtb3VudC91bW91bnQuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIHVtb3VudCAlc1xuIgorbXNnc3RyICJTJ2VzdMOgIGludGVudGFudCBkZXNtdW50YXIgJXNcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCB1bW91bnQgJXMgLS0gJXMgaXMgbW91bnRlZCBvdmVyIGl0IG9uIHRoZSBzYW1lIHBvaW50LiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgJXMgaW4gbXRhYlxuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IHRyb2JhciAlcyBhIG10YWJcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IG1vdW50ZWQgKGFjY29yZGluZyB0byBtdGFiKSIKK21zZ3N0ciAidW1vdW50OiAlcyBubyBlc3TDoCBtdW50YXQgKHNlZ29ucyBtdGFiKSIKKworIzogbW91bnQvdW1vdW50LmM6NTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogaXQgc2VlbXMgJXMgaXMgbW91bnRlZCBtdWx0aXBsZSB0aW1lcyIKK21zZ3N0ciAidW1vdW50OiBzZW1ibGEgcXVlICVzIHMnaGEgbXVudGF0IGRpdmVyc2VzIHZlZ2FkZXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBpbiB0aGUgZnN0YWIgKGFuZCB5b3UgYXJlIG5vdCByb290KSIKK21zZ3N0ciAidW1vdW50OiAlcyBubyBlc3TDoCBhbCBmc3RhYiAoaSBubyBzb3UgZWwgcm9vdCkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIG1vdW50IGRpc2FncmVlcyB3aXRoIHRoZSBmc3RhYiIKK21zZ3N0ciAidW1vdW50OiBlbCBtdW50YXRnZSBkZSAlcyBubyBjb25jb3JkYSBhbWIgZWwgZnN0YWIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAidW1vdW50OiBub23DqXMgJXMgcG90IGRlc211bnRhciAlcyBkZXMgZGUgJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjcwMQorbXNnaWQgInVtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICJ1bW91bnQ6IG5vbcOpcyBlbCByb290IHBvdCBmZXIgYWl4w7IiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MuXG4iCisiXG4iCisiU2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIkdldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiXG4iCisiU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX1JSIChkZWZhdWx0KVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgb3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHNob3cgbWluIGFuZCBtYXggdmFsaWQgcHJpb3JpdGllc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKyIgIC1WIHwgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGVzY3JpdXJlIGxhIHBhcnRpY2nDsyBhICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgImRlc2NvbmVndXQiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIGF0dHJpYnV0ZXMiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTE1CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcHJpb3JpdHk6ICVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG1pbi9tYXggcHJpb3JpdHlcdDogJWQvJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIk5GUyBzb2JyZSBUQ1Agbm8gZXN0w6AgaW1wbGVtZW50YXQuXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICIlczogcydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBvYnJpcjogJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjI1CisjLCBmdXp6eQorbXNnaWQgImN1cnJlbnQiCittc2dzdHIgIm5jb3VudCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjMzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBlc2NyaXVyZSBsYSBwYXJ0aWNpw7MgYSAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGVzY3JpdXJlIGxhIHBhcnRpY2nDsyBhICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0MgorIywgZnV6enkKK21zZ2lkICJuZXciCittc2dzdHIgIk5vdmEiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXMiCittc2dzdHIgIm5vIGhhIGVzdGF0IHBvc3NpYmxlIGV4ZWN1dGFyIGlvY3RsKCkgcGVyIGxsZWdpciBsJ2hvcmEgZGUgJXMiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NTcKKyMsIGZ1enp5Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgIm5vIGhhIGVzdGF0IHBvc3NpYmxlIGV4ZWN1dGFyIG9wZW5wdHlcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorIywgZnV6enkKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAibm8gaGEgZXN0YXQgcG9zc2libGUgZXhlY3V0YXIgb3BlbnB0eVxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICIlcyBubyBlcyBwb3Qgb2JyaXIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTUxCittc2dpZCAiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3Igbm9uZSBjbGFzcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1OQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIGlkbGUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHByaW8gY2xhc3MgJWQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxODcKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3ZwIGZhaWxlZCIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBleGVjdXRhciBleGVjXG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgYmUgcm9vdCB0byBzZXQgdGhlIEN0cmwtQWx0LURlbCBiZWhhdmlvdXIuXG4iCittc2dzdHIgIiIKKyJIYXVyZXUgZGUgc2VyIGVsIHJvb3QgcGVyIGEgZXN0YWJsaXIgZWwgY29tcG9ydGFtZW50IGRlIEN0cmwtQWx0LVN1cHIuXG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIkZvcm1hIGQnw7pzOiBjdHJsYWx0ZGVsIG1hcXVpbi58cHJvZ3IuXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiRml0eGVyICVzLCBwZXIgYWwgdmFsb3IgZGVsIGxsaW5kYXIgJWx1LCBlbCBtw6B4aW0gZGUgY2Fyw6BjdGVycyBlbiBmaWZvIGZvdSAiCisiZGUgJWRcbiIKKyJpIGxhIHZlbG9jaXRhdCBkZSB0cmFuc2ZlcsOobmNpYSBtw6B4aW1hIGVuIGNhcmFjdGVyZXMgcGVyIHNlZ29uIGZvdSBkZSAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSBhbmQgdGltcm91dCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyAiCisiaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiRml0eGVyICVzLCBwZXIgYWwgdmFsb3IgZGVsIGxsaW5kYXIgJWx1IGkgZWwgdmFsb3IgZGUgdGVtcHMgZW4gZXNwZXJhICVsdSwgIgorImVsIG3DoHhpbSBkZSBjYXLDoGN0ZXJzIGVuIGZpZm8gZm91IGRlICVkXG4iCisiaSBsYSB2ZWxvY2l0YXQgZGUgdHJhbnNmZXLDqG5jaWEgbcOgeGltYSBlbiBjYXJhY3RlcmVzIHBlciBzZWdvbiBmb3UgZGUgJWZcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGludGVydmFsIHZhbHVlOiAlc1xuIgorbXNnc3RyICJWYWxvciBkJ2ludGVydmFsIGludsOgbGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJWYWxvciBlc3RhYmxlcnQgaW52w6BsaWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJWYWxvciBwZXIgZGVmZWN0ZSBpbnbDoGxpZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJWYWxvciBkZSBsJ2hvcmEgZXN0YWJsZXJ0YSBpbnbDoGxpZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVmFsb3IgZGUgbCdob3JhIHBlciBkZWZlY3RlIGludsOgbGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pICIKKyJbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCittc2dzdHIgIiIKKyJGb3JtYSBkJ8O6czogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsb3JdfFstUyB2YWxvcl0pIChbLXQgdmFsb3JdfFstVCAiCisidmFsb3JdKSBbLWd8LUddIGZpdHhlciBbZml0eGVyLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjUwIHN5cy11dGlscy9jeXR1bmUuYzoyNjkgc3lzLXV0aWxzL2N5dHVuZS5jOjI4OQorIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IG9icmlyICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXN0YWJsaXIgJXMgYWwgbGxpbmRhciAlZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGltZSB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXN0YWJsaXIgJXMgYWwgbGxpbmRhciBkZSBsJ2hvcmEgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyOTQgc3lzLXV0aWxzL2N5dHVuZS5jOjM1MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aHJlc2hvbGQgZm9yICVzOiAlc1xuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IG9idGVuaXIgZWwgbGxpbmRhciBwZXIgYSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwMCBzeXMtdXRpbHMvY3l0dW5lLmM6MzU3IHN5cy11dGlscy9jeXR1bmUuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRpbWVvdXQgZm9yICVzOiAlc1xuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IG9idGVuaXIgZWwgdGVtcHMgZCdlc3BlcmEgcGVyIGEgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIGVsIGxsaW5kYXIgaSAlbGQgZWwgdGVtcHMgZCdlc3BlcmEgYWN0dWFsc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgZGVmYXVsdCB0aHJlc2hvbGQgYW5kICVsZCBkZWZhdWx0IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6ICVsZCBlbCBsbGluZGFyIGkgJWxkIGVsIHRlbXBzIGQnZXNwZXJhIHBlciBkZWZlY3RlXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMjcKK21zZ2lkICJDYW4ndCBzZXQgc2lnbmFsIGhhbmRsZXIiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZGV0ZXJtaW5hciBlbCBnZXN0b3IgZGUgc2VueWFscyIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAibm8gaGEgZXN0YXQgcG9zc2libGUgZXhlY3V0YXIgZ2V0dGltZW9mZGF5IgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzQ0IHN5cy11dGlscy9jeXR1bmUuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZW1ldHJlIENZR0VUTU9OIGEgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IGVudGVycywgJWx1LyVsdSBjYXLDoGN0ZXJzOyBmaWZvOiAlbHUgbGxpbmRhciwgJWx1IHRlbXBzX2VzcGVyYSwgJWx1ICIKKyJtw6B4aW0sICVsdSBhcmFcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiBlbnRlcnMvc2VnLjsgJWYgcmVidXQsICVmIGVudmlhdCAoY2Fyw6BjdGVycy9zZWcuKVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IGVudGVycywgJWx1IGNhcsOgY3RlcnM7IGZpZm86ICVsdSBsbGluZGFyLCAlbHUgdGVtcHNfZXNwZXJhLCAlbHUgIgorIm3DoHhpbSwgJWx1IGFyYVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYyAoY2hhci9zZWMpXG4iCittc2dzdHIgIiAgICVmIGVudGVycy9zZWcuOyAlZiByZWJ1dCAoY2Fyw6BjdGVycy9zZWcuKVxuIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJGb3JtYSBkJ8O6czogJXMgWy1jXSBbLW4gbml2ZWxsXSBbLXMgbWlkYV9tZW3DsnJpYV90ZW1wb3JhbF1cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZmlsZW5hbWU+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiRm9ybWEgZCfDunM6ICVzIFtvcGNpb25zXSBkaXNwb3NpdGl1IC4uLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1rZWVwLXNpemUgICAgIGRvbid0IG1vZGlmeSB0aGUgbGVuZ3RoIG9mIHRoZSBmaWxlXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorIiAtbCwgLS1sZW5ndGggPG51bT4gIGxlbmd0aCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBmYWxsb2NhdGUoMSkuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0NworIywgZnV6enkKK21zZ2lkICJubyBsZW5ndGggYXJndW1lbnQgc3BlY2lmaWVkIgorbXNnc3RyICJNYXNzYSBhcmd1bWVudHMuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDkKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBsZW5ndGggdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJWYWxvciBlc3RhYmxlcnQgaW52w6BsaWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTEKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJWYWxvciBlc3RhYmxlcnQgaW52w6BsaWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKKyMsIGZ1enp5Cittc2dpZCAibm8gZmlsZW5hbWUgc3BlY2lmaWVkLiIKK21zZ3N0ciAiTm8gcydoYSBlc3BlY2lmaWNhdCBsJ29wY2nDsyAtLWRhdGUuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAibm8gaGEgZXN0YXQgcG9zc2libGUgZXhlY3V0YXIgb3BlbnB0eVxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzo2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICUxJHMgWy1zeHVuXVstdyAjXSBmZCNcbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGZpbGUgWy1jXSBjb21tYW5kLi4uXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBkaXJlY3RvcnkgWy1jXSBjb21tYW5kLi4uXG4iCisiICAtcyAgLS1zaGFyZWQgICAgIEdldCBhIHNoYXJlZCBsb2NrXG4iCisiICAteCAgLS1leGNsdXNpdmUgIEdldCBhbiBleGNsdXNpdmUgbG9ja1xuIgorIiAgLXUgIC0tdW5sb2NrICAgICBSZW1vdmUgYSBsb2NrXG4iCisiICAtbiAgLS1ub25ibG9jayAgIEZhaWwgcmF0aGVyIHRoYW4gd2FpdFxuIgorIiAgLXcgIC0tdGltZW91dCAgICBXYWl0IGZvciBhIGxpbWl0ZWQgYW1vdW50IG9mIHRpbWVcbiIKKyIgIC1vICAtLWNsb3NlICAgICAgQ2xvc2UgZmlsZSBkZXNjcmlwdG9yIGJlZm9yZSBydW5uaW5nIGNvbW1hbmRcbiIKKyIgIC1jICAtLWNvbW1hbmQgICAgUnVuIGEgc2luZ2xlIGNvbW1hbmQgc3RyaW5nIHRocm91Z2ggdGhlIHNoZWxsXG4iCisiICAtaCAgLS1oZWxwICAgICAgIERpc3BsYXkgdGhpcyB0ZXh0XG4iCisiICAtViAgLS12ZXJzaW9uICAgIERpc3BsYXkgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjE5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGNvbW1hbmQgYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgcmVxdWVyZWl4IHVuIGFyZ3VtZW50XG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IG5vIHMnaGEgcG9ndXQgb2JyaXIgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBudW1iZXI6ICVzXG4iCittc2dzdHIgIiVzOiB2YWxvciBpbmNvcnJlY3RlXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjI5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGJpZnVyY2FyXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICJGb3JtYSBkJ8O6czogJXMgW29wY2lvbnNdIGRpc3Bvc2l0aXUgLi4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1NIDxzaXplPiAgICAgY3JlYXRlIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBvZiBzaXplIDxzaXplPlxuIgorIiAgLVMgPG5zZW1zPiAgICBjcmVhdGUgc2VtYXBob3JlIGFycmF5IHdpdGggPG5zZW1zPiBlbGVtZW50c1xuIgorIiAgLVEgICAgICAgICAgICBjcmVhdGUgbWVzc2FnZSBxdWV1ZVxuIgorIiAgLXAgPG1vZGU+ICAgICBwZXJtaXNzaW9uIGZvciB0aGUgcmVzb3VyY2UgKGRlZmF1bHQgaXMgMDY0NClcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGlwY21rKDEpLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0MgorbXNnaWQgImNyZWF0ZSBzaGFyZSBtZW1vcnkgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2hhcmVkIG1lbW9yeSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlZ21lbnQgZGUgbGEgbWVtw7JyaWEgY29tcGFydGlkYSBzaG1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIHF1ZXVlIGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisiQ3VhIGRlIG1pc3NhdGdlcyBtc3FpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTgKKyMsIGZ1enp5Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgInNlbcOgZm9ycyBhc3NpZ25hdHMgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorInNlbWlkIGRlIGxhIG1hdHJpdSBkZWwgc2Vtw6Bmb3I9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAiaWQgaW52w6BsaWQgOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAibm8gcydoYSBwb2d1dCBzdXByaW1pciBsJ2lkICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVwcmVjYXRlZCB1c2FnZTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCittc2dzdHIgIsO6cyBkZXNhcHJvdmF0OiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gcmVzb3VyY2UgdHlwZTogJXNcbiIKK21zZ3N0ciAibm8gZXMgcmVjb25laXggZWwgdGlwdXMgZGUgbGEgZm9udDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAiZm9udHMgc3VwcmltaWRlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCittc2dzdHIgIiIKKyJmb3JtYSBkJ8O6czogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiJXM6IG9wY2nDsyBpbMK3bGVnYWwgLS0gJWNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGtleSAoJXMpXG4iCittc2dzdHIgIiVzOiBjbGF1IGlswrdsZWdhbCAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwNiBzeXMtdXRpbHMvaXBjcm0uYzoyMzgKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICJzJ2hhIGRlbmVnYXQgZWwgcGVybcOtcyBwZXIgYSBsYSBjbGF1IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAibGEgY2xhdSBqYSBzJ2hhdmlhIHN1cHJpbWl0IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTIgc3lzLXV0aWxzL2lwY3JtLmM6MjQzCittc2dpZCAiaW52YWxpZCBrZXkiCittc2dzdHIgImNsYXUgaW52w6BsaWRhIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgImVycm9yIGRlc2NvbmVndXQgZW4gbGEgY2xhdSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjM5Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGlkIgorbXNnc3RyICJwZXJtaXNvcyBkZW5lZ2F0cyBwZXIgbCdpZGVudGlmaWNhZG9yIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICJpZGVudGlmaWNhZG9yIGludsOgbGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQgaWQiCittc2dzdHIgImwnaWRlbnRpZmljYWRvciBqYSBzJ2hhdmlhIHN1cHJpbWl0IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICJlcnJvciBkZXNjb25lZ3V0IGVuIGwnaWRlbnRpZmljYWRvciIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiVzOiAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIKK21zZ3N0ciAiJXM6IGFyZ3VtZW50IGRlc2NvbmVndXQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICJmb3JtYSBkJ8O6czogJXMgLWFzbXEgLXRjbHVwIFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKK21zZ3N0ciAiICAgICAgJXMgWy1zIC1tIC1xXSAtaSBpZGVudGlmaWNhZG9yXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIiAgICAgICVzIC1oIHBlciBhIGFqdWRhLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHlvdSBoYXZlIHJlYWQgYWNjZXNzLlxuIgorbXNnc3RyICIiCisiJXMgcHJvcG9yY2lvbmEgaW5mb3JtYWNpw7Mgc29icmUgZWxzIHJlY3Vyc29zIGlwYyBhbHMgcXVlIHRlbml1IGFjY8OpcyBkZSAiCisibGVjdHVyYS5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlJlc291cmNlIFNwZWNpZmljYXRpb246XG4iCisiXHQtbSA6IHNoYXJlZF9tZW1cbiIKKyJcdC1xIDogbWVzc2FnZXNcbiIKK21zZ3N0ciAiIgorIkVzcGVjaWZpY2FjacOzIGRlbHMgcmVjdXJzb3M6XG4iCisiXHQtbSA6IG1lbcOycmlhIGNvbXBhcnRpZGFcbiIKKyJcdC1xIDogbWlzc2F0Z2VzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKyJcdC1zIDogc2Vtw6Bmb3JzXG4iCisiXHQtYSA6IHRvdCAocGVyIGRlZmVjdGUpXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdXRwdXQgRm9ybWF0OlxuIgorIlx0LXQgOiB0aW1lXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhdG9yXG4iCittc2dzdHIgIiIKKyJGb3JtYXQgZGUgbCdlaXhpZGE6XG4iCisiXHQtdCA6IHRlbXBzXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhZG9yXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1sIDogbGltaXRzXG4iCisiXHQtdSA6IHN1bW1hcnlcbiIKK21zZ3N0ciAiIgorIlx0LWwgOiBsw61taXRzXG4iCisiXHQtdSA6IHJlc3VtXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIKK21zZ3N0ciAiIgorIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhbGxzIHNvYnJlIGVscyByZWN1cnNvcyBpZGVudGlmaWNhdHMgcGVyICIKKyJsJ2lkZW50aWZpY2Fkb3JcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iCittc2dzdHIgImVsIG51Y2xpIG5vIGVzdMOgIGNvbmZpZ3VyYXQgcGVyIGEgbWVtw7JyaWEgY29tcGFydGlkYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEzDrW1pdHMgZGUgbGEgbWVtw7JyaWEgY29tcGFydGlkYSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIHNlZ21lbnRzID0gJWx1XG4iCittc2dzdHIgIm3DoHguIG5vbWJyZSBkZSBzZWdtZW50cyA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VnIHNpemUgKGtieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAibWlkYSBtw6B4LiBkZWwgc2VnbWVudCAoa2J5dGVzKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWF4IHRvdGFsIHNoYXJlZCBtZW1vcnkgKGtieXRlcykgPSAlbGx1XG4iCittc2dzdHIgInRvdGFsIG3DoHguIG1lbcOycmlhIGNvbXBhcnRpZGEgKGtieXRlcykgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWluIHNlZyBzaXplIChieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAibWlkYSBtw61uLiBzZWdtZW50IChvY3RldHMpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gRXN0YXQgZGUgbGEgbWVtw7JyaWEgY29tcGFydGlkYSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJzZWdtZW50cyBhbGxvY2F0ZWQgJWRcbiIKK21zZ3N0ciAic2VnbWVudHMgYXNzaWduYXRzICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAicMOgZ2luZXMgYXNzaWduYWRlcyAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgcmVzaWRlbnQgICVsZFxuIgorbXNnc3RyICJww6BnaW5lcyByZXNpZGVudHMgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHN3YXBwZWQgICAlbGRcbiIKK21zZ3N0ciAicMOgZ2luZXMgaW50ZXJjYW52aWFkZXMgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3YXAgcGVyZm9ybWFuY2U6ICVsZCBhdHRlbXB0c1x0ICVsZCBzdWNjZXNzZXNcbiIKK21zZ3N0ciAiUmVuZGltZW50IGRlIGwnaW50ZXJjYW52aTogJWxkIGludGVudHNcdCAlbGQgZW5jZXJ0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLSBDcmVhZG9ycy9Qcm9waWV0YXJpcyBkZWxzIHNlZ21lbnRzIG1lbcOycmlhIGNvbXBhcnRpZGEgLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAic2htaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICJwZXJtcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjdWlkIgorbXNnc3RyICJjdWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImNnaWQiCittc2dzdHIgImNnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAidWlkIgorbXNnc3RyICJ1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiZ2lkIgorbXNnc3RyICJnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IEF0dGFjaC9EZXRhY2gvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tIFRlbXBzIGRlIGNvbm5leGnDsy9kZXNjb25uZXhpw7MvbW9kaWZpY2EuIG1lbS4gY29tcC4gLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEgc3lzLXV0aWxzL2lwY3MuYzozMDcKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTEyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOCBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm93bmVyIgorbXNnc3RyICJwcm9waWV0YXJpIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImF0dGFjaGVkIgorbXNnc3RyICJjb25uZWN0YXQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgImRlc2Nvbm5lY3RhdCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTUKK21zZ2lkICJjaGFuZ2VkIgorbXNnc3RyICJtb2RpZmljYXQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICItLSBDcmVhZG9yL8O6bHRpbSBvcGVyYWRvciBtZW3DsnJpYSBjb21wYXJ0aWRhIC0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiY3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJscGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIFNlZ21lbnRzIGRlIG1lbcOycmlhIGNvbXBhcnRpZGEgLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAiY2xhdSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJieXRlcyIKK21zZ3N0ciAib2N0ZXRzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgIm5hdHRjaCIKK21zZ3N0ciAibmF0dGNoIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAiZXN0YXQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzI5IHN5cy11dGlscy9pcGNzLmM6MzMxIHN5cy11dGlscy9pcGNzLmM6MzMzCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ0NCBzeXMtdXRpbHMvaXBjcy5jOjQ0NiBzeXMtdXRpbHMvaXBjcy5jOjU0NQorIzogc3lzLXV0aWxzL2lwY3MuYzo1NDcgc3lzLXV0aWxzL2lwY3MuYzo1NDkgc3lzLXV0aWxzL2lwY3MuYzo2MDAKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAyIHN5cy11dGlscy9pcGNzLmM6NjMwIHN5cy11dGlscy9pcGNzLmM6NjMyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzNCBzeXMtdXRpbHMvaXBjcy5jOjY1NworbXNnaWQgIk5vdCBzZXQiCittc2dzdHIgIk5vIGVzdGFibGVydCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjEKK21zZ2lkICJkZXN0IgorbXNnc3RyICJkZXN0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MgorbXNnaWQgImxvY2tlZCIKK21zZ3N0ciAiYmxvY2F0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAibnVjbGkgbm8gY29uZmlndXJhdCBwZXIgYWxzIHNlbcOgZm9yc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tLSBMw61taXRzIHNlbcOgZm9yIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2YgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAibcOgeGltIG5vbWJyZSBkZSBtYXRyaXVzID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAibcOgeC4gc2Vtw6Bmb3JzIHBlciBtYXRyaXUgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm3DoHguIHNlbcOgZm9ycyBhbCBzaXN0ZW1hID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG9wcyBwZXIgc2Vtb3AgY2FsbCA9ICVkXG4iCittc2dzdHIgIm3DoHguIG9wZXIuIHBlciBjcmlkYSBzZW1vcCA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbWFwaG9yZSBtYXggdmFsdWUgPSAlZFxuIgorbXNnc3RyICJ2YWxvciBtw6B4aW0gZGVsIHNlbcOgZm9yID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEVzdGF0IGRlbCBzZW3DoGZvciAtLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJtYXRyaXVzIHVzYWRlcyA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBzZW1hcGhvcmVzID0gJWRcbiIKK21zZ3N0ciAic2Vtw6Bmb3JzIGFzc2lnbmF0cyA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLSBDcmVhZG9ycy9wcm9waWV0YXJpcyBtYXRyaXVzIHNlbcOgZm9yIC0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAic2VtaWQiCittc2dzdHIgInNlbWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBPcGVyYXRpb24vQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tIFRlbXBzIG9wZXJhY2nDsy9tb2RpZmljYWNpw7MgbWVtw7JyaWEgY29tcGFydGlkYSAtLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3Qtb3AiCittc2dzdHIgIsO6bHRpbWEgb3BlcmFjacOzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3QtY2hhbmdlZCIKK21zZ3N0ciAiw7psdGltYSBtb2RpZmljYWNpw7MiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBNYXRyaXVzIGRlbCBzZW3DoGZvciAtLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAibnNlbXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3IgbWVzc2FnZSBxdWV1ZXNcbiIKK21zZ3N0ciAiZWwgbnVjbGkgbm8gZXN0w6AgY29uZmlndXJhdCBwZXIgYSBjdWVzIGRlIG1pc3NhdGdlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTWlzc2F0Z2VzOiBsw61taXRzIC0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm5vbWJyZSBtw6B4LiBkZSBjdWVzIGFsIHNpc3RlbWEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2l6ZSBvZiBtZXNzYWdlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJtaWRhIG3DoHguIGRlbCBtaXNzYXRnZSAob2N0ZXRzKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgImRlZmF1bHQgbWF4IHNpemUgb2YgcXVldWUgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgIm1pZGEgbcOgeC4gcGVyIGRlZmVjdGUgZGUgbGEgY3VhIChvY3RldHMpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE1pc3NhdGdlczogZXN0YXQgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHF1ZXVlcyA9ICVkXG4iCittc2dzdHIgImN1ZXMgYXNzaWduYWRlcyA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk5CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgaGVhZGVycyA9ICVkXG4iCittc2dzdHIgImNhcMOnYWxlcmVzIHVzYWRlcyA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIgorbXNnc3RyICJlc3BhaSBlbXByYXQgPSAlZCBvY3RldHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzOiBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tIEN1ZXMgZGUgbWlzc2F0Z2VzOiBjcmVhZG9ycy9wcm9waWV0YXJpcyAtLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgIm1zcWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgU2VuZC9SZWN2L0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0gVGVtcHMgdHJhbWVzYS4vcmVjZXAuL21vZGlmaWMuIGN1ZXMgZGUgbWlzc2F0Z2VzIC0tLVxuIgorCisjIEZJWE1FCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgImVudmlhIgorCisjIEZJWE1FCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInJlY3YiCittc2dzdHIgInJlcCIKKworIyBGSVhNRQorIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJjaGFuZ2UiCittc2dzdHIgIm1vZGlmaWNhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLSBFbHMgUElEIGRlIGxlcyBjdWVzIGRlIG1pc3NhdGdlcyAtLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICJsc3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAibHJwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gQ3VlcyBkZSBtaXNzYXRnZXMgLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJ1c2VkLWJ5dGVzIgorbXNnc3RyICJvY3RldHMgZW1wcmF0cyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAibWlzc2F0Z2VzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU4OQorIywgZnV6enkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGZlciBmc3luYyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiU2VnbWVudCBkZSBsYSBtZW3DsnJpYSBjb21wYXJ0aWRhIHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk2CisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorbXNnc3RyICJvY3RldHM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgImF0dF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImF0dF90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImRldF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImRldF90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAzIHN5cy11dGlscy9pcGNzLmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE1CisjLCBmdXp6eQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgZmVyIGZzeW5jIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiQ3VhIGRlIG1pc3NhdGdlcyBtc3FpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxOAorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKK21zZ3N0ciAiY29jdGV0cz0lbGRcdHFvY3RldHM9JWxkXHRxbsO5bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAic2VuZF90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJjdl90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgInJjdl90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjQ4IHN5cy11dGlscy9pcGNzLmM6NjcwCisjLCBmdXp6eQorbXNnaWQgInNlbWN0bCBmYWlsZWQiCittc2dzdHIgImxhIGNlcmNhIGhhIGZhbGxhdCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisic2VtaWQgZGUgbGEgbWF0cml1IGRlbCBzZW3DoGZvcj0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJuc2VtcyA9ICVsZFxuIgorbXNnc3RyICJuc2VtcyA9ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJvdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgIm90aW1lID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJjdGltZSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAic2VtbnVtIgorbXNnc3RyICJzZW1udW0iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAidmFsdWUiCittc2dzdHIgInZhbG9yIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgIm5jb3VudCIKK21zZ3N0ciAibmNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInpjb3VudCIKK21zZ3N0ciAiemNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInBpZCIKK21zZ3N0ciAicGlkIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFsgLWRoVjc4bmVvMTIgXSBbIC1zIDxzcGVlZD4gXSA8bGRpc2M+IDxkZXZpY2U+XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6OTEKK21zZ2lkICIiCisiXG4iCisiS25vd24gPGxkaXNjPiBuYW1lczpcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgc3BlZWQ6ICVzIgorbXNnc3RyICJpZCBpbnbDoGxpZCA6ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGRhdHRhY2ggZnJvbSAlc1xuIgorbXNnc3RyICIlcyBkZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxODQgdGV4dC11dGlscy90YWlsZi5jOjIwNgorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAiaWRlbnRpZmljYWRvciBpbnbDoGxpZCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGxpbmUgZGlzY2lwbGluZTogJXMiCittc2dzdHIgImlkIGludsOgbGlkIDogJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiJXMgbm8gZXMgdW4gZGlzcG9zaXRpdSBkZSBibG9jIGVzcGVjaWFsIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIm5vIGVzIHBvdCBvYnRlbmlyIGxhIG1pZGEgZGUgJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIm5vIGVzIHBvdCBvYnRlbmlyIGxhIG1pZGEgZGUgJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1MQorIywgZnV6enkKK21zZ2lkICJjYW5ub3Qgc2V0IGxpbmUgZGlzY2lwbGluZSIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBjZXJjYXIgYSBsYSB1bml0YXQgZGUgZGlzYyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3CisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCBkYWVtb25pemUiCittc2dzdHIgIm5vIGVzIHBvdCBvYnRlbmlyIGxhIG1pZGEgZGUgJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0CisjLCBmdXp6eQorbXNnaWQgIm5vbmUiCittc2dzdHIgIkNhcCIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUKK21zZ2lkICJwYXJhIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2Cittc2dpZCAiZnVsbCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxMzcgc3lzLXV0aWxzL2xzY3B1LmM6MTYwIHN5cy11dGlscy9sc2NwdS5jOjQ1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzIgorbXNnc3RyICJFcnJvciBSRToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcGFyc2U6ICVzIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGxsZWdpciAlc1xuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgIlMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gb2JyaXIgJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjI2NworIywgZnV6enkKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICIiCisiXG4iCisiUydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiB0YW5jYXIgZWwgZml0eGVyXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorIywgZnV6enkKK21zZ2lkICJlcnJvcjogbWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibCdhc3NpZ25hY2nDsyBkZSBtZW3DsnJpYSAobWFsbG9jKSBoYSBmYWxsYXQiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXJcbiIKKyIjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElEXG4iCisiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisiIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKK21zZ2lkICJDUFUgb3AtbW9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI1Cittc2dpZCAiVGhyZWFkKHMpIHBlciBjb3JlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzUKK21zZ2lkICJDUFUgZmFtaWx5OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzcKK21zZ2lkICJNb2RlbDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKKyMsIGZ1enp5Cittc2dpZCAiVmlydHVhbGl6YXRpb246IgorbXNnc3RyICJBbnRpZ2Egc2l0dWFjacOzOlxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDkKK21zZ2lkICJIeXBlcnZpc29yIHZlbmRvcjoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUwCittc2dpZCAiVmlydHVhbGl6YXRpb24gdHlwZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNhY2hlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uXVxuIgorbXNnc3RyICJGb3JtYSBkJ8O6czogJXMgW29wY2lvbnNdIGRpc3Bvc2l0aXUgLi4uXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2OQorbXNnaWQgIiIKKyJDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGhlbHBlclxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuXG4iCisiICAtcywgLS1zeXNyb290ICB1c2UgdGhlIGRpcmVjdG9yeSBhcyBhIG5ldyBzeXN0ZW0gcm9vdC5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiBjaGFuZ2Ugd29ya2luZyBkaXJlY3RvcnkgdG8gJXMuIgorbXNnc3RyICJzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGNhbnZpYXIgZWwgbW9kZSBkZSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIiIKKyJmb3JtYSBkJ8O6czogcmRldiBbIC1ydiBdIFsgLW8gREVTUExBw4dBTUVOVCBdIFsgSU1BVEdFIFsgVkFMT1IgIgorIlsgREVTUExBw4dBTUVOVCBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvIHJkZXYgL2xpbnV4LCBldGMuKSBtb3N0cmEgZWwgZGlzcG9zaXRpdSBST09UIGFjdHVhbCIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OQorbXNnaWQgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBzZXRzIFJPT1QgdG8gL2Rldi9oZGEyIgorbXNnc3RyICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgZXN0YWJsZWl4IGVsIFJPT1QgYSAvZGV2L2hkYTIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODAKK21zZ2lkICIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBST09URkxBR1MgKHJlYWRvbmx5IHN0YXR1cykiCittc2dzdHIgIiIKKyIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgZXN0YWJsZWl4IGVscyBST09URkxBR1MgKGVzdGF0IGRlIG5vbcOpcyAiCisibGVjdHVyYSkiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODEKK21zZ2lkICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiCittc2dzdHIgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBlc3RhYmxlaXggbGEgbWlkYSBkZWwgUkFNRElTSyIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiIKKyIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAgZXN0YWJsZWl4IGVsIFZJREVPTU9ERSBkZSBsJ2FycmVuY2FkYSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2FyIGVsIGRlc3BsYcOnYW1lbnQgZCdvY3RldHMgTiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBlbCBtYXRlaXggcXVlIHJkZXYgLVIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODUKK21zZ2lkICIgIHJhbXNpemUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1yIgorbXNnc3RyICIgIHJhbXNpemUgLi4uICAgICAgICAgICAgICAgICAgICAgZWwgbWF0ZWl4IHF1ZSByZGV2IC1yIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg2Cittc2dpZCAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtdiIKK21zZ3N0ciAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIGVsIG1hdGVpeCBxdWUgcmRldiAtdiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisiTm90YTogZWxzIG1vZGVzIGRlIHbDrWRlbyBzw7NuOiAtMz1QcmVndW50YSwgLTI9RXN0w6hzLCAtMT1Ob3JtYWxWZ2EsXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMT10ZWNsYTEsIDI9dGVjbGEyLCAuLi4gIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiIKKyIgICAgICB1c2V1IC1SIDEgcGVyIG11bnRhciBsJ2FycmVsIGRlIG5vbcOpcyBsZWN0dXJhOyAtUiAwIHBlciBhIGxlY3R1cmEvIgorImVzY3JpcHR1cmEuIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjI0NQorbXNnaWQgIm1pc3NpbmcgY29tbWEiCittc2dzdHIgImZhbHRhIHVuYSBjb21hIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo3MiB0ZXh0LXV0aWxzL21vcmUuYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAibm8gaGkgaGEgcHJvdSBtZW3DsnJpYSIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6IFwiJXMgW29wdGlvbnNdXG4iCisiXHQgLW0gPG1hcGZpbGU+ICAoZGVmYXVsdHM6IFwiJXNcIiBhbmRcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsZT4gKGRlZmF1bHQ6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIgdG8gPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBwcmludCBvbmx5IGluZm8gYWJvdXQgdGhlIHNhbXBsaW5nIHN0ZXBcbiIKKyJcdCAtdiAgICAgICAgICAgIHByaW50IHZlcmJvc2UgZGF0YVxuIgorIlx0IC1hICAgICAgICAgICAgcHJpbnQgYWxsIHN5bWJvbHMsIGV2ZW4gaWYgY291bnQgaXMgMFxuIgorIlx0IC1iICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBoaXN0b2dyYW0tYmluIGNvdW50c1xuIgorIlx0IC1zICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBjb3VudGVycyB3aXRoaW4gZnVuY3Rpb25zXG4iCisiXHQgLXIgICAgICAgICAgICByZXNldCBhbGwgdGhlIGNvdW50ZXJzIChyb290IG9ubHkpXG4iCisiXHQgLW4gICAgICAgICAgICBkaXNhYmxlIGJ5dGUgb3JkZXIgYXV0by1kZXRlY3Rpb25cbiIKKyJcdCAtViAgICAgICAgICAgIHByaW50IHZlcnNpb24gYW5kIGV4aXRcbiIKK21zZ3N0ciAiIgorIiVzOiBGb3JtYSBkJ8O6czogXCIlcyBbb3BjaW9uc11cbiIKKyJcdCAtbSA8Zml0eGVyX21hcGE+ICh2YWxvcnMgcHJlZGV0ZXJtaW5hdHMgPSDCqyVzwrsgaVxuIgorIlx0XHRcdFx0ICDCqyVzwrspXG4iCisiXHQgLXAgPGZpdHhlcj4gICh2YWxvciBwcmVkZXRlcm1pbmF0ID0gwqslc8K7KVxuIgorIlx0IC1NIDxtdWx0PiAgICBlc3RhYmxlaXggZWwgbXVsdGlwbGljYWRvciBkZWwgcGVyZmlsIGVuIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICBub23DqXMgbW9zdHJhIGxhIGluZm9ybWFjacOzIHNvYnJlIGVsIHBhcyBkZSBtb3N0cmVpZ1xuIgorIlx0IC12ICAgICAgICAgICBtb3N0cmEgZGFkZXMgZGV0YWxsYWRlc1xuIgorIlx0IC1hICAgICAgICAgICBtb3N0cmEgdG90cyBlbHMgc8OtbWJvbHMsIGZpbnMgaSB0b3Qgc2kgZWwgY29tcHRlIMOpcyAwXG4iCisiXHQgLWIgICAgICAgICAgIG1vc3RyYSBlbHMgaGlzdG9ncmFtZXMgaW5kaXZpZHVhbHMgZGVscyBjb21wdGFkb3JzXG4iCisiXHQgLXIgICAgICAgICAgIHJlc3RhYmxlaXggdG90cyBlbHMgY29tcHRhZG9ycyAobm9tw6lzIGVsIHJvb3QpXG4iCisiXHQgLW4gICAgICAgICAgIGluaGFiaWxpdGEgbGEgZGV0ZWNjacOzIGF1dG9tw6B0aWNhIGRlIGwnb3JkcmUgZGVscyBvY3RldHNcbiIKKyJcdCAtViAgICAgICAgICAgbW9zdHJhIGxhIHZlcnNpw7MgaSBzdXJ0XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjIyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZHByb2ZpbGU6IGVycm9yIHdyaXRpbmcgJXM6ICVzXG4iCittc2dzdHIgIm1vdW50OiBzJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGVzY3JpdXJlICVzOiAlcyIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuIFVzZSAtbiB0byBmb3JjZSBuYXRpdmUgYnl0ZSBvcmRlci5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiUGFzc2EgZGUgcHJvYmVzOiAlaVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMDUgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyglaSk6IHdyb25nIG1hcCBsaW5lXG4iCittc2dzdHIgIiVzOiAlcyglaSk6IGzDrW5pYSBkZWwgbWFwYSBpbmNvcnJlY3RhXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBcIl9zdGV4dFwiIGluICVzXG4iCittc2dzdHIgIiVzOiBubyBzJ2hhIHBvZ3V0IHRyb2JhciBcIl9zdGV4dFwiIGEgJXNcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBwcm9maWxlIGFkZHJlc3Mgb3V0IG9mIHJhbmdlLiBXcm9uZyBtYXAgZmlsZT9cbiIKK21zZ3N0ciAiJXMgYWRyZcOnYSBkZWwgcGVyZmlsIGZvcmEgZGVsIHJhbmcuIEZpdHhlciBgbWFwJyBpbmNvcnJlY3RlP1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo0MTIKK21zZ2lkICJ0b3RhbCIKK21zZ3N0ciAidG90YWwiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5IFstcHwtLXBpZF0gcGlkICBbLi4uIHBpZF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC1nfC0tcGdycCBwZ3JwIFsuLi4gcGdycF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC11fC0tdXNlciB1c2VyIFsuLi4gdXNlcl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZGUgJXNcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiB1bmtub3duIHVzZXJcbiIKK21zZ3N0ciAicmVuaWNlOiAlczogdXN1YXJpIGRlc2NvbmVndXRcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEzNAorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAicmVuaWNlOiAlczogdmFsb3IgaW5jb3JyZWN0ZVxuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTUyIHN5cy11dGlscy9yZW5pY2UuYzoxNjQKK21zZ2lkICJnZXRwcmlvcml0eSIKK21zZ3N0ciAiZ2V0cHJpb3JpdHkiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTcKK21zZ2lkICJzZXRwcmlvcml0eSIKK21zZ3N0ciAic2V0cHJpb3JpdHkiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQ6IG9sZCBwcmlvcml0eSAlZCwgbmV3IHByaW9yaXR5ICVkXG4iCittc2dzdHIgIiVkOiBwcmlvcml0YXQgYW50aWdhICVkLCBub3ZhIHByaW9yaXRhdCAlZFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgW29wdGlvbnNdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGRldmljZT4gICAgc2VsZWN0IHJ0YyBkZXZpY2UgKHJ0YzB8cnRjMXwuLi4pXG4iCisiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIHVzZXMgbG9jYWwgdGltZXpvbmVcbiIKKyIgICAgLW0gfCAtLW1vZGUgICAgICAgICAgICAgICBzdGFuZGJ5fG1lbXwuLi4gc2xlZXAgbW9kZVxuIgorIiAgICAtcyB8IC0tc2Vjb25kcyA8c2Vjb25kcz4gIHNlY29uZHMgdG8gc2xlZXBcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB0aW1lIHRvIHdha2VcbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBSVEMgdXNlcyBVVENcbiIKKyIgICAgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICB2ZXJib3NlIG1lc3NhZ2VzXG4iCisiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgc2hvdyB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDIKK21zZ2lkICJyZWFkIHJ0YyB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQ3Cittc2dpZCAicmVhZCBzeXN0ZW0gdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE2NQorbXNnaWQgImNvbnZlcnQgcnRjIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjQKK21zZ2lkICJzZXQgcnRjIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI4Cittc2dpZCAiZW5hYmxlIHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIzMgorbXNnaWQgInNldCBydGMgd2FrZSBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVucmVjb2duaXplZCBzdXNwZW5kIHN0YXRlICclcydcbiIKK21zZ3N0ciAiICVzOiBubyBzJ2hhIHBvZ3V0IHJlY29uw6hpeGVyIGVsIHRpcHVzIGRlIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGludGVydmFsICVzIHNlY29uZHNcbiIKK21zZ3N0ciAiJXM6IGNsYXUgaWzCt2xlZ2FsICglcylcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIHRpbWVfdCB2YWx1ZSAlc1xuIgorbXNnc3RyICIlczogb3BjacOzIGlswrdsZWdhbCAtLSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM4NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHZlcnNpb24gJXNcbiIKK21zZ3N0ciAiJXMgdmVyc2nDsyAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAiVXNhbnQgJXMuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICJVc2FudCAlcy5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG11c3QgcHJvdmlkZSB3YWtlIHRpbWVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQxNworIywgZnV6enkKK21zZ2lkICJtYWxsb2MoKSBmYWlsZWQiCittc2dzdHIgImwnYXNzaWduYWNpw7MgZGUgbWVtw7JyaWEgKG1hbGxvYykgaGEgZmFsbGF0IgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iCittc2dzdHIgIiVzOiAlcyBubyDDqXMgdW4gZGlzcG9zaXRpdSBscC5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxhcm0gJWxkLCBzeXNfdGltZSAlbGQsIHJ0Y190aW1lICVsZCwgc2Vjb25kcyAldVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aW1lIGRvZXNuJ3QgZ28gYmFja3dhcmQgdG8gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdha2V1cCBmcm9tIFwiJXNcIiB1c2luZyAlcyBhdCAlc1xuIgorbXNnc3RyICJNaXNzYXRnZSBkZSAlc0AlcyBlbCAlcyBhIGxlcyAlcyAuLi4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIGV4ZWN1dGUgJXM6ICVzXG4iCittc2dzdHIgIm5vIHMnaGEgcG9ndXQgdG9ybmFyIGEgbm9tZW5hciAlcyBwZXIgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDk2CisjLCBmdXp6eQorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICIsIGEgcHVudCIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo1MDUKK21zZ2lkICJkaXNhYmxlIHJ0YyBhbGFybSBpbnRlcnJ1cHQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzo1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hpbmcgb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgc2V0YXJjaCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjE0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiRXNjb2xsaXUgYGdldG9wdCAtLWhlbHAnIHBlciBvYnRlbmlyIG3DqXMgaW5mb3JtYWNpw7MuXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjE1IHN5cy11dGlscy9zZXRhcmNoLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5yZWNvZ25pemVkIGFyY2hpdGVjdHVyZSIKK21zZ3N0ciAiICVzOiBubyBzJ2hhIHBvZ3V0IHJlY29uw6hpeGVyIGVsIHRpcHVzIGRlIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnNcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKKyMsIGZ1enp5Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIk1hc3NhIGFyZ3VtZW50cy5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNjUgc3lzLXV0aWxzL3NldGFyY2guYzozMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBzZXQgcGVyc29uYWxpdHkgdG8gJXMiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgZXNjcml1cmUgbGEgcGFydGljacOzIGEgJXNcbiIKKworIzogc3lzLXV0aWxzL3NldHNpZC5jOjI2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBwcm9ncmFtIFthcmcgLi4uXVxuIgorbXNnc3RyICJmb3JtYSBkJ8O6czogJXMgcHJvZ3JhbWEgW2FyZyAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisiRm9ybWEgZCfDunM6ICVzIDxkaXNwb3NpdGl1PiBbIC1pIDxJUlE+IHwgLXQgPFRFTVBTPiB8IC1jIDxDQVLDgENULj4gfCAtdyAiCisiPEVTUEVSQT4gfFxuIgorIiAgICAgICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgIgorInwgXG4iCisiICAgICAgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6OTEKK21zZ2lkICJtYWxsb2MgZXJyb3IiCittc2dzdHIgImVycm9yIGVuIGwnYXNzaWduYWNpw7MgZGUgbWVtw7JyaWEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIlczogdmFsb3IgaW5jb3JyZWN0ZVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgYW4gbHAgZGV2aWNlLlxuIgorbXNnc3RyICIlczogJXMgbm8gw6lzIHVuIGRpc3Bvc2l0aXUgbHAuXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3RhdHVzIGlzICVkIgorbXNnc3RyICJsJ2VzdGF0IGRlICVzIMOpcyAlZCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiwgb2N1cGF0IgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgcmVhZHkiCittc2dzdHIgIiwgYSBwdW50IgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb3V0IG9mIHBhcGVyIgorbXNnc3RyICIsIGZhbHRhIHBhcGVyIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb24tbGluZSIKK21zZ3N0ciAiLCBlbiBsw61uaWEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCBlcnJvciIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI4NQorbXNnaWQgIkxQR0VUSVJRIGVycm9yIgorbXNnc3RyICJlcnJvciBkZSBMUEdFVElSUSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBJUlEgJWRcbiIKK21zZ3N0ciAiJXMgZXN0w6AgdXNhbnQgbGEgSVJRICVkXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgcG9sbGluZ1xuIgorbXNnc3RyICIlcyBlc3TDoCB1c2FudCBlc2NydXRpbmlcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiAlcyBwcm9ncmFtYSBbYXJnIC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2MAorbXNnaWQgIiIKKyJSdW4gcHJvZ3JhbSB3aXRoIHNvbWUgbmFtZXNwYWNlcyB1bnNoYXJlZCBmcm9tIHBhcmVudFxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgICAgdXNhZ2UgaW5mb3JtYXRpb24gKHRoaXMpXG4iCisiICAtbSwgLS1tb3VudCAgICAgICB1bnNoYXJlIG1vdW50cyBuYW1lc3BhY2VcbiIKKyIgIC11LCAtLXV0cyAgICAgICAgIHVuc2hhcmUgVVRTIG5hbWVzcGFjZSAoaG9zdG5hbWUgZXRjKVxuIgorIiAgLWksIC0taXBjICAgICAgICAgdW5zaGFyZSBTeXN0ZW0gViBJUEMgbmFtZXNwYWNlXG4iCisiICAtbiwgLS1uZXQgICAgICAgICB1bnNoYXJlIG5ldHdvcmsgbmFtZXNwYWNlXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1bnNoYXJlKDEpLlxuIgorbXNnc3RyICJTJ2hhIGNhbnZpYXQgbGEgaW5mb3JtYWNpw7MgZGVsIGZpbmdlci5cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTQKKyMsIGZ1enp5Cittc2dpZCAidW5zaGFyZSBmYWlsZWQiCittc2dzdHIgImxhIGNlcmNhIGhhIGZhbGxhdCIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIGV4ZWNcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgImNvbDogYXJndW1lbnQgLWwgaW5jb3JyZWN0ZSAlcy5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKK21zZ3N0ciAiZm9ybWEgZCfDunM6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiBlcnJvciBkJ2VzY3JpcHR1cmEuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd2FybmluZzogY2FuJ3QgYmFjayB1cCAlcy5cbiIKK21zZ3N0ciAiY29sOiBhdsOtczogbm8gcydoYSBwb2d1dCBmZXIgbGEgY8OycGlhIGRlIHNlZ3VyZXRhdCBkZSAlcy5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICJwYXN0IGZpcnN0IGxpbmUiCittc2dzdHIgIm3DqXMgZW5sbMOgIGRlIGxhIHByaW1lcmEgbMOtbmlhIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgIi0tIGxpbmUgYWxyZWFkeSBmbHVzaGVkIgorbXNnc3RyICItLSBsw61uaWEgamEgZXN0w6AgYnVpZGEiCisKKyM6IHRleHQtdXRpbHMvY29sY3J0LmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLSBdIFsgLTIgXSBbIGZpbGUgLi4uIF1cbiIKK21zZ3N0ciAiZm9ybWEgZCfDunM6ICVzIFsgLSBdIFsgLTIgXSBbIGZpdHhlciAuLi4gXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgImzDrW5pYSBtYXNzYSBsbGFyZ2EiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiZm9ybWEgZCfDunM6IGNvbHVtbiBbLXR4XSBbLWMgY29sdW1uZXNdIFtmaXR4ZXIgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBsZW5ndGggdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IHZhbG9yIGRlIGxhIGxvbmdpdHVkIGluY29ycmVjdGUuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IHZhbG9yIGRlbCBzYWx0IGluY29ycmVjdGUuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmbXRdIFstZiBmbXRfZmlsZV0gWy1uIGxlbmd0aF0gWy1zIHNraXBdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZpdHhlcl9mbXRdIFstbiBsb25naXR1ZF0gWy1zIG9tZXRdICIKKyJbZml0eGVyIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiAlcyBbLWRmbHBjc3VdIFsrbsO6bV9sw61uaWVzIHwgKy9wYXRyw7NdIG5vbTEgbm9tMiAuLi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGFzc2lnbmFyIGxhIG1lbcOycmlhIHRlbXBvcmFsLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gb3B0aW9uIFwiLSVjXCJcbiIKK21zZ3N0ciAiJXM6IG9wY2nDsyBkZXNjb25lZ3VkYSDCqy0lY8K7XG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjUxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqICVzOiBkaXJlY3RvcnkgKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yaSAqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKioqKioqKiAlczogTm90IGEgdGV4dCBmaWxlICoqKioqKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKioqICVzOiBObyDDqXMgdW4gZml0eGVyIGRlIHRleHQgKioqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo2NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1VzZSBxIG9yIFEgdG8gcXVpdF0iCittc2dzdHIgIltVc2V1IHEgbyBRIHBlciBhIHNvcnRpcl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICItLU1vcmUtLSIKK21zZ3N0ciAiLS1Nw6lzLS0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICIoTmV4dCBmaWxlOiAlcykiCittc2dzdHIgIihGaXR4ZXIgc2Vnw7xlbnQ6ICVzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyBzcGFjZSB0byBjb250aW51ZSwgJ3EnIHRvIHF1aXQuXSIKK21zZ3N0ciAiW1ByZW1ldSBsYSBiYXJyYSBlc3BhaWFkb3JhIHBlciBjb250aW51YXI7IMKrccK7IHBlciBhIHNvcnRpci5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmJhY2sgJWQgcGFnZXMiCittc2dzdHIgIi4uLnJldHJvY2VkZWl4ICVkIHDDoGdpbmVzIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA4Cittc2dpZCAiLi4uYmFjayAxIHBhZ2UiCittc2dzdHIgIi4uLnJldHJvY2VkZWl4IDEgcMOgZ2luYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICIuLi5zJ2VzdMOgIG9tZXRlbnQgdW5hIGzDrW5pYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MworIywgYy1mb3JtYXQKK21zZ2lkICIuLi5za2lwcGluZyAlZCBsaW5lcyIKK21zZ3N0ciAiLi4ucydlc3TDoCBvbWV0ZW50ICVkIGzDrW5pZXMiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqRW5kYXJyZXJhKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMjgKK21zZ2lkICIiCisiXG4iCisiTW9zdCBjb21tYW5kcyBvcHRpb25hbGx5IHByZWNlZGVkIGJ5IGludGVnZXIgYXJndW1lbnQgay4gIERlZmF1bHRzIGluICIKKyJicmFja2V0cy5cbiIKKyJTdGFyICgqKSBpbmRpY2F0ZXMgYXJndW1lbnQgYmVjb21lcyBuZXcgZGVmYXVsdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxhIG1ham9yaWEgZGUgbGVzIG9yZHJlcyBzw7NuIHByZWNlZGlkZXMgb3BjaW9uYWxtZW50IHBlciB1biBhcmd1bWVudCBrICIKKyJlbnRlci4gRWxzIHZhbG9ycyBwZXIgZGVmZWN0ZSBlc3RhbiBlbnRyZSBwYXLDqG50ZXNpLlxuIgorIkwnYXN0ZXJpc2MgKCopIGluZGljYSBxdWUgbCdhcmd1bWVudCBlc2RldsOpIGVsIG5vdSB2YWxvciBwZXIgZGVmZWN0ZS5cbiIKKworIyBhLmI6IEZhbHRhIGFycmFuamFyIGFpeMOyIGRlICJrdGgiCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzM1Cittc2dpZCAiIgorIjxzcGFjZT4gICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdXG4iCisieiAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV0qXG4iCisiPHJldHVybj4gICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbMV0qXG4iCisiZCBvciBjdHJsLUQgICAgICAgICAgICAgU2Nyb2xsIGsgbGluZXMgW2N1cnJlbnQgc2Nyb2xsIHNpemUsIGluaXRpYWxseSAxMV0qXG4iCisicSBvciBRIG9yIDxpbnRlcnJ1cHQ+ICAgRXhpdCBmcm9tIG1vcmVcbiIKKyJzICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBsaW5lcyBvZiB0ZXh0IFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyJiIG9yIGN0cmwtQiAgICAgICAgICAgICBTa2lwIGJhY2t3YXJkcyBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyInICAgICAgICAgICAgICAgICAgICAgICBHbyB0byBwbGFjZSB3aGVyZSBwcmV2aW91cyBzZWFyY2ggc3RhcnRlZFxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBsaW5lIG51bWJlclxuIgorIi88cmVndWxhciBleHByZXNzaW9uPiAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgcmVndWxhciBleHByZXNzaW9uIFsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgbGFzdCByLmUgWzFdXG4iCisiITxjbWQ+IG9yIDohPGNtZD4gICAgICAgRXhlY3V0ZSA8Y21kPiBpbiBhIHN1YnNoZWxsXG4iCisidiAgICAgICAgICAgICAgICAgICAgICAgU3RhcnQgdXAgL3Vzci9iaW4vdmkgYXQgY3VycmVudCBsaW5lXG4iCisiY3RybC1MICAgICAgICAgICAgICAgICAgUmVkcmF3IHNjcmVlblxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBuZXh0IGZpbGUgWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIHByZXZpb3VzIGZpbGUgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXJcbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICBSZXBlYXQgcHJldmlvdXMgY29tbWFuZFxuIgorbXNnc3RyICIiCisiPGVzcGFpPiAgICAgICAgICAgICAgICAgTW9zdHJhIGxlcyBzZWfDvGVudHMgayBsw61uaWVzIGRlIHRleHQgW2xhIG1pZGEgZGUgbGEgIgorInBhbnRhbGxhXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIE1vc3RyYSBsZXMgc2Vnw7xlbnRzIGsgbMOtbmllcyBkZSB0ZXh0IFtsYSBtaWRhIGRlIGxhICIKKyJwYW50YWxsYV0qXG4iCisiPGludHJvPiAgICAgICAgICAgICAgICAgTW9zdHJhIGxlcyBzZWfDvGVudHMgayBsw61uaWVzIGRlIHRleHQgWzFdKlxuIgorImQgbyBjdHJsLUQgICAgICAgICAgICAgIERlc3BsYcOnYSBrIGzDrW5pZXMgW2FjdHVhbG1lbnQgc8OzbiAxMV0qXG4iCisicSBvIFEgbyA8aW50ZXJydXBjacOzPiAgIFN1cnQgZGUgbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNhbHRhIGVuZGF2YW50IGsgbMOtbmllcyBkZSB0ZXh0IFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFNhbHRhIGVuZGF2YW50IGsgcGFudGFsbGVzIGRlIHRleHQgWzFdXG4iCisiYiBvIGN0cmwtQiAgICAgICAgICAgICAgU2FsdGEgZW5kYXJyZXJhIGsgcGFudGFsbGVzIGRlIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgVmEgYSBvbiB2YSBjb21lbsOnYXIgbCdhbnRlcmlvciByZWNlcmNhXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgTW9zdHJhIGVsIG7Dum1lcm8gZGUgbGEgbMOtbmlhIGFjdHVhbFxuIgorIi88ZXhwcmVzc2nDsyByZWd1bGFyPiAgICBDZXJjYSBsJ29jdXJyw6huY2lhIGstZW7DqHNzaW1hIGRlIGwnZXhwLnJlZy4gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgQ2VyY2EgbCdvY3VycsOobmNpYSBrLWVuw6hzc2ltYSBkZSBsJ8O6bHRpbWEgZXhwLnJlZy4gIgorIlsxXVxuIgorIiE8Y21kPiBvIDohPGNtZD4gICAgICAgIEV4ZWN1dGEgPGNtZD4gZW4gdW4gYWx0cmUgaW50w6hycHJldCBkJ29yZHJlc1xuIgorInYgICAgICAgICAgICAgICAgICAgICAgIEVuZ2VnYSAvdXNyL2Jpbi92aSBhIGxhIGzDrW5pYSBhY3R1YWxcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRpYnVpeGEgbGEgcGFudGFsbGFcbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBWw6lzIGFsIGstZW7DqHNzaW0gZml0eGVyIHNlZ8O8ZW50IFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIFbDqXMgYWwgay1lbsOoc3NpbSBmaXR4ZXIgYW50ZXJpb3IgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgTW9zdHJhIGVsIG5vbSBkZWwgZml0eGVyIGkgZWwgbsO6bWVybyBkZSBsw61uaWFcbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICBSZXBldGVpeCBsJ29yZHJlIGFudGVyaW9yXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0MDQgdGV4dC11dGlscy9tb3JlLmM6MTQwOQorIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3MgJ2gnIGZvciBpbnN0cnVjdGlvbnMuXSIKK21zZ3N0ciAiW1ByZW1ldSDCq2jCuyBwZXIgYSBsZXMgaW5zdHJ1Y2Npb25zLl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIlwiJXNcIiBsw61uaWEgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW05vdCBhIGZpbGVdIGxpbmUgJWQiCittc2dzdHIgIltObyDDqXMgdW4gZml0eGVyXSBsw61uaWEgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiAgRGVzYm9yZGFtZW50XG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIuLi5zJ2VzdMOgIG9tZXRlbnRcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYwNQorbXNnaWQgIlJlZ3VsYXIgZXhwcmVzc2lvbiBib3RjaCIKK21zZ3N0ciAiUydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBsJ2V4cHJlc3Npw7MgcmVndWxhciIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiTm8gcydoYSB0cm9iYXQgZWwgcGF0csOzXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAiTm8gcydoYSB0cm9iYXQgZWwgcGF0csOzIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjc3Cittc2dpZCAiY2FuJ3QgZm9ya1xuIgorbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGJpZnVyY2FyXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MTYKK21zZ2lkICIiCisiXG4iCisiLi4uU2tpcHBpbmcgIgorbXNnc3RyICIiCisiXG4iCisiLi4uUydlc3TDoCBvbWV0ZW50IgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIwCittc2dpZCAiLi4uU2tpcHBpbmcgdG8gZmlsZSAiCittc2dzdHIgIi4uLnMnZXN0w6Agc2FsdGFudCBhbCBmaXR4ZXIgIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAiLi4uUydlc3TDoCByZXRyb2NlZGludCBhbCBmaXR4ZXIgIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiTMOtbmlhIG1hc3NhIGxsYXJnYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIk5vIGhpIGhhIGNhcCBvcmRyZSBwcsOodmlhIGEgc3Vic3RpdHVpciIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJvZDogb2QoMSkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgaGV4ZHVtcCgxKS5cbiIKK21zZ3N0ciAib2Q6IG9kKDEpIGhhIHF1ZWRhdCBvYnNvbGV0IHBlciBhIGhleGR1bXAoMSkuXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IGhleGR1bXAoMSkgY29tcGF0aWJpbGl0eSBkb2Vzbid0IHN1cHBvcnQgdGhlIC0lYyBvcHRpb24lc1xuIgorbXNnc3RyICJvZDogbGEgY29tcGF0aWJpbGl0YXQgYW1iIGhleGR1bXAoMSkgbm8gcGVybWV0IGwnb3BjacOzIC0lYyAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTM0Cittc2dpZCAiOyBzZWUgc3RyaW5ncygxKS4iCittc2dzdHIgIjsgdmVnZXUgc3RyaW5ncygxKS4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBubyBzJ2hhIHBvZ3V0IGxsZWdpciAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgImhleGR1bXA6IGzDrW5pYSBtYXNzYSBsbGFyZ2EuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogbm9tYnJlIHRvdGFsIGQnb2N0ZXRzIGFtYiBkaXZlcnNvcyBjYXLDoGN0ZXJzIGRlIGNvbnZlcnNpw7MuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogbm9tYnJlIHRvdGFsIGQnb2N0ZXRzIGluY29ycmVjdGUgcGVyIGFsIGNhcsOgY3RlciBkZSBjb252ZXJzacOzICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgIiIKKyJoZXhkdW1wOiAlJXMgcmVxdWVyZWl4IHVuIHZhbG9yIGRlIHByZWNpc2nDsyBvIHVuIG5vbWJyZSB0b3RhbCBkJ29jdGV0cy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDogZm9ybWF0IGluY29ycmVjdGUgeyVzfVxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBjb252ZXJzaW9uIGNoYXJhY3RlciAlJSVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBjYXLDoGN0ZXIgZGUgY29udmVyc2nDsyAlJSVzIGluY29ycmVjdGUuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMjMKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJTJ2hhIGVzZ290YXQgbGEgbWVtw7JyaWEiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKyIlczogRm9ybWEgZCfDunM6ICVzIFstbsO6bWVyb10gWy1wIGNhZGVuYV0gWy1jZWZucnNdIFsrbMOtbmlhXSBbKy9wYXRyw7MvXSAiCisiW2ZpdHhlcnNdXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlc1xuIgorbXNnc3RyICIlczogbCdvcGNpw7MgcmVxdWVyZWl4IHVuIGFyZ3VtZW50IC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVzXG4iCittc2dzdHIgIiVzOiBvcGNpw7MgaWzCt2xlZ2FsIC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzAKK21zZ2lkICIuLi5za2lwcGluZyBmb3J3YXJkXG4iCittc2dzdHIgIi4uLnMnZXN0w6Agc2FsdGFudCBlbmRhdmFudFxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcyCittc2dpZCAiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIKK21zZ3N0ciAiLi4ucydlc3TDoCBzYWx0YW50IGVuZGFycmVyYVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJObyBoaSBoYSBjYXAgZml0eGVyIHNlZ8O8ZW50IgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk4Cittc2dpZCAiTm8gcHJldmlvdXMgZmlsZSIKK21zZ3N0ciAiTm8gaGkgaGEgY2FwIGZpdHhlciBhbnRlcmlvciIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IFMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZGUgbGVjdHVyYSBlbiBlbCBmaXR4ZXIgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5leHBlY3RlZCBFT0YgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogTm8gcydlc3BlcmF2YSBFT0YgZW4gZWwgZml0eGVyICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogUydoYSBwcm9kdcOvdCB1biBlcnJvciBkZXNjb25lZ3V0IGVuIGVsIGZpdHhlciAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIlczogTm8gZXMgcG90IGNlcmFyIGVsIGZpdHhlciB0ZW1wb3JhbFxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTA0NCB0ZXh0LXV0aWxzL3BnLmM6MTIxOSB0ZXh0LXV0aWxzL3BnLmM6MTI0NgorbXNnaWQgIlJFIGVycm9yOiAiCittc2dzdHIgIkVycm9yIFJFOiIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMDEKK21zZ2lkICIoRU9GKSIKK21zZ3N0ciAiKEVPRikiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjI3IHRleHQtdXRpbHMvcGcuYzoxMjU0Cittc2dpZCAiTm8gcmVtZW1iZXJlZCBzZWFyY2ggc3RyaW5nIgorbXNnc3RyICJObyBlcyByZWNvcmRhIGxhIGNhZGVuYSBkZSBjZXJjYSIKKworIzogdGV4dC11dGlscy9wZy5jOjEzMTAKK21zZ2lkICJDYW5ub3Qgb3BlbiAiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgb2JyaXIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzU4Cittc2dpZCAic2F2ZWQiCittc2dzdHIgInMnaGEgZGVzYXQiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDY1Cittc2dpZCAiOiAhY29tbWFuZCBub3QgYWxsb3dlZCBpbiByZmxhZyBtb2RlLlxuIgorbXNnc3RyICI6IG5vIGVzIHBlcm1ldCAhb3JkcmUgZW4gZWwgbW9kZSByZmxhZy5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAibm8gaGEgZXN0YXQgcG9zc2libGUgZXhlY3V0YXIgZm9yaygpLCBwcm92ZXUtaG8gbcOpcyBlbmRhdmFudFxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTcwNQorbXNnaWQgIihOZXh0IGZpbGU6ICIKK21zZ3N0ciAiKEZpdHhlciBzZWfDvGVudDogIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjExMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyc3BhY2UiCittc2dzdHIgIk5vIHMnaGEgcG9ndXQgYXNzaWduYXIgZXNwYWkgZGUgbWVtw7JyaWEgaW50ZXJtw6hkaWFcbiIKKworIzogdGV4dC11dGlscy9yZXYuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHJldiBbZmlsZSAuLi5dXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiByZXYgW2ZpdHhlciAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIKK21zZ3N0ciAiTm8gcydoYSBwb2d1dCBvYnJpciDCqyVzwrsgcGVyIGEgbGVjdHVyYVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgXCIlc1wiIgorbXNnc3RyICJubyBlcyBwb3QgZmVyIFwic3RhdFwiIGFsIGRpc3Bvc2l0aXUgJXMiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5jb21wbGV0ZSB3cml0ZSB0byBcIiVzXCIgKHdyaXR0ZW4gJXpkLCBleHBlY3RlZCAlemQpXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoIChsaW1pdCBvZiBpbm90aWZ5IHdhdGNoZXMgd2FzIHJlYWNoZWQpLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2guIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgcmVhZCBpbm90aWZ5IGV2ZW50cyIKK21zZ3N0ciAiJXM6IG5vIGVzIHBvdCBvYnJpciAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgIk5vbWJyZSBpbnbDoGxpZDogJXNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorIywgZnV6enkKK21zZ2lkICJ1c2FnZTogdGFpbGYgWy1uIE4gfCAtTl0gbG9nZmlsZSIKK21zZ3N0ciAiRm9ybWEgZCfDunM6IHRhaWxmIGZpdHhlcl9yZWdpc3RyZVxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgImZvcm1hIGQnw7pzOiAlcyBbIC1pIF0gWyAtdFRlcm1pbmFsIF0gZml0eGVyLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICJoaSBoYSBoYWd1dCB1biBwcm9ibGVtYSBlbiBsbGVnaXIgdGVybWluZm8iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBlc2NhcGUgc2VxdWVuY2UgaW4gaW5wdXQ6ICVvLCAlb1xuIgorbXNnc3RyICJTZXHDvMOobmNpYSBkJ2VzY2FwYW1lbnQgZGVzY29uZWd1ZGEgZW4gbCdlbnRyYWRhOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGFzc2lnbmFyIGxhIG1lbcOycmlhIHRlbXBvcmFsLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIkzDrW5pYSBkJ2VudHJhZGEgbWFzc2EgbGxhcmdhLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAiIgorIlMnaGEgZXNnb3RhdCBsYSBtZW3DsnJpYSBlbiBhdWdtZW50YXIgbGEgbWlkYSBkZSBsYSBtZW3DsnJpYSBpbnRlcm3DqGRpYS5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBDaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICBHaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIEdpdmUgZmRpc2sgdmVyc2lvblxuIgorI34gIkhlcmUgRElTSyBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYiBvciAvZGV2L3NkYVxuIgorI34gImFuZCBQQVJUSVRJT04gaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGdpdmUgU3RhcnQgYW5kIEVuZCBpbiBzZWN0b3IgKGluc3RlYWQgb2YgY3lsaW5kZXIpIHVuaXRzXG4iCisjfiAiLWIgMjA0ODogKGZvciBjZXJ0YWluIE1PIGRpc2tzKSB1c2UgMjA0OC1ieXRlIHNlY3RvcnNcbiIKKyN+IG1zZ3N0ciAiIgorI34gIkZvcm1hIGQnw7pzOiBmZGlzayBbLWIgU1NaXSBbLXVdIERJU0MgQ2FudmlhIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnNcbiIKKyN+ICIgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdIERJU0MgICAgTGxpc3RhIGxlcyB0YXVsZXMgZGUgcGFydGljaW9uc1xuIgorI34gIiAgICAgIGZkaXNrIC1zIFBBUlRJQ0nDkyAgICAgICAgICAgICAgTW9zdHJhIGxhIG1pZGEgZGUgbGEgcGFyY2ljacOzIGVuICIKKyN+ICJibG9jc1xuIgorI34gIiAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgICBNb3N0cmEgbGEgdmVyc2nDsyBkZSBmZGlza1xuIgorI34gIkRJU0Mgw6lzIGRlbCB0aXB1cyAvZGV2L2hkYiBvIC9kZXYvc2RhIGkgUEFSVElDScOTIMOpcyBkZWwgdGlwdXMgL2Rldi9oZGE3XG4iCisjfiAiLXU6IE1vc3RyYSBsJ2luaWNpIGkgZWwgZmluYWwgZGUgbGEgdW5pdGF0IGVuIHNlY3RvcnMgKG5vIGVuIGNpbGluZHJlcylcbiIKKyN+ICItYiAyMDQ4OiAocGVyIGFscyBkaXNjcyBNTykgdXNhIDIwNDggb2N0ZXRzIHBlciBzZWN0b3JcbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGRldmljZVxuIgorI34gIkUuZy46IGZkaXNrIC9kZXYvaGRhICAoZm9yIHRoZSBmaXJzdCBJREUgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3NkYyAgKGZvciB0aGUgdGhpcmQgU0NTSSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvZWRhICAoZm9yIHRoZSBmaXJzdCBQUy8yIEVTREkgZHJpdmUpXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9yZC9jMGQwICBvcjogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKGZvciBSQUlEIGRldmljZXMpXG4iCisjfiAiICAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkZvcm1hIGQnw7pzOiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0gZGlzcG9zaXRpdVxuIgorI34gIlAuZXguOiBmZGlzayAvZGV2L2hkYSAgKHBlciBhbCBwcmltZXIgZGlzYyBJREUpXG4iCisjfiAiICAgIG86IGZkaXNrIC9kZXYvc2RjICAocGVyIGFsIHRlcmNlciBkaXNjIFNDU0kpXG4iCisjfiAiICAgIG86IGZkaXNrIC9kZXYvZWRhICAocGVyIGEgbGEgcHJpbWVyYSB1bml0YXQgUFMvMiBFU0RJKVxuIgorI34gIiAgICBvOiBmZGlzayAvZGV2L3JkL2MwZDAgbzogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKHBlciBhbHMgZGlzcG9zaXRpdXMgIgorI34gIlJBSUQpXG4iCisjfiAiICAuLi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJUaGUgbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkaXNrIGlzIHNldCB0byAlZC5cbiIKKyN+ICJUaGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggdGhhdCwgYnV0IHRoaXMgaXMgbGFyZ2VyIHRoYW4gMTAyNCxcbiIKKyN+ICJhbmQgY291bGQgaW4gY2VydGFpbiBzZXR1cHMgY2F1c2UgcHJvYmxlbXMgd2l0aDpcbiIKKyN+ICIxKSBzb2Z0d2FyZSB0aGF0IHJ1bnMgYXQgYm9vdCB0aW1lIChlLmcuLCBvbGQgdmVyc2lvbnMgb2YgTElMTylcbiIKKyN+ICIyKSBib290aW5nIGFuZCBwYXJ0aXRpb25pbmcgc29mdHdhcmUgZnJvbSBvdGhlciBPU3NcbiIKKyN+ICIgICAoZS5nLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAiRWwgbm9tYnJlIGRlIGNpbGluZHJlcyBwZXIgYSBhcXVlc3QgZGlzYyBlc3TDoCBlc3RhYmxlcnQgZW4gJWQuXG4iCisjfiAiQWl4w7Igbm8gw6lzIGluY29ycmVjdGUsIHBlcsOyIMOpcyBtw6lzIGdyYW4gcXVlIDEwMjQgaSBwb2Ryw61ldVxuIgorI34gInRlbmlyIHByb2JsZW1lcyBhbWIgY2VydGVzIGNvbmZpZ3VyYWNpb25zIGRlOlxuIgorI34gIjEpIFByb2dyYW1hcmkgcXVlIHMnZXhlY3V0YSBkdXJhbnQgZCdhcnJlbmNhZGEgKHAuZXguLCB2ZXJzaW9uc1xuIgorI34gIiAgIGFudGlndWVzIGRlbCBMSUxPKVxuIgorI34gIjIpIEVuIGFycmVuY2FyIGkgcGFydGljaW9uYXIgZGVzIGQndW4gYWx0cmUgU09cbiIKKyN+ICIgICAocC5leC4sIERPUyBGRElTSywgT1MvMiBGRElTSylcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJvdXQgaWYgbWVtb3J5IgorI34gbXNnc3RyICJubyBoaSBoYSBwcm91IG1lbcOycmlhIgorCisjfiBtc2dpZCAiIyBwYXJ0aXRpb24gdGFibGUgb2YgJXNcbiIKKyN+IG1zZ3N0ciAiIyB0YXVsYSBkZSBwYXJ0aWNpb25zIGRlICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gInVuaXQ6IHNlY3RvcnNcbiIKKyN+ICJcbiIKKyN+IG1zZ3N0ciAiJWxsZCBzZWN0b3JzIG5vIGFzc2lnbmF0c1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICJpbmljaSIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAiTWlkYSBtw6B4aW1hPSVsZFxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiwgYm9vdGFibGUiCisjfiBtc2dzdHIgIkFJWCBhcnJlbmNhYmxlIgorCisjLCBmdXp6eQorI34gbXNnaWQgIkNsb2NrIGluIFVUQywgbm90IGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIk5vIHMnaGEgY2FudmlhdCBsJ2ludMOocnByZXQgZCdvcmRyZXMuXG4iCisKKyN+IG1zZ2lkICIlczogZXJyb3I6IGxhYmVsIG9ubHkgd2l0aCB2MSBzd2FwIGFyZWFcbiIKKyN+IG1zZ3N0ciAiJXM6IGVycm9yOiBldGlxdWV0YSBub23DqXMgYW1iIGVzcGFpIGQnaW50ZXJjYW52aSB2MVxuIgorCisjfiBtc2dpZCAiZmF0YWw6IGZpcnN0IHBhZ2UgdW5yZWFkYWJsZSIKKyN+IG1zZ3N0ciAiZmF0YWw6IG5vIGVzIHBvdCBsbGVnaXIgbGEgcHJpbWVyYSBww6BnaW5hIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICIlczogRGV2aWNlICclcycgY29udGFpbnMgYSB2YWxpZCBTdW4gZGlza2xhYmVsLlxuIgorI34gIlRoaXMgcHJvYmFibHkgbWVhbnMgY3JlYXRpbmcgdjAgc3dhcCB3b3VsZCBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlLlxuIgorI34gIk5vIHN3YXAgd2FzIGNyZWF0ZWQuIElmIHlvdSByZWFsbHkgd2FudCB0byBjcmVhdGUgdjAgc3dhcCBvbiB0aGF0ICIKKyN+ICJkZXZpY2UsXG4iCisjfiAidXNlIHRoZSAtZiBvcHRpb24gdG8gZm9yY2UgaXQuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczogZWwgZGlzcG9zaXRpdSAnJXMnIGNvbnTDqSB1bmEgZXRpcXVldGEgZGUgZGlzYyBTdW4gdsOgbGlkYS5cbiIKKyN+ICJBaXjDsiBwcm9iYWJsZW1lbnQgc2lnbmlmaWNhIHF1ZSBzaSBlcyBjcmVhIHVuIGVzcGFpIGQnaW50ZXJjYW52aSB2MCwgZXNcbiIKKyN+ICJkZXN0cnVpcsOgIGxhIHRhdWxhIGRlIHBhcnRpY2lvbnMuXG4iCisjfiAiTm8gcydoYSBjcmVhdCBsJ2VzcGFpIGQnaW50ZXJjYW52aS4gU2kgZGUgcmVhbG1lbnQgdm9sZXUgY3JlYXIgdW4gZXNwYWlcbiIKKyN+ICJkJ2ludGVyY2FudmkgdjAgZW4gYXF1ZXN0IGRpc3Bvc2l0aXUsIHVzZXUgbCdvcGNpw7MgLWYgcGVyIGEgZm9yw6dhci1oby5cbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gZ2V0IGN1cnJlbnQgZGlyZWN0b3J5IC0gJXNcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IG5vIHMnaGEgcG9ndXQgb2J0ZW5pciBlbCBkaXJlY3RvcmkgYWN0dWFsIC0gJXNcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gY2hkaXIgdG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBubyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIGNoZGlyIGEgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IGNoZGlyIHRvIHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBubyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIGNoZGlyIGFsIGRpcmVjdG9yaSBhcnJlbFxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBzdGF0IHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBubyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIHN0YXQgYWwgZGlyZWN0b3JpIGFycmVsXG4iCisKKyN+IG1zZ2lkICJuYW1laTogYnVmIG92ZXJmbG93XG4iCisjfiBtc2dzdHIgIm5hbWVpOiBkZXNib3JkYW1lbnQgZGUgbGEgbWVtw7JyaWEgaW50ZXJtw6hkaWFcbiIKKworI34gbXNnaWQgIiA/IGNvdWxkIG5vdCBjaGRpciBpbnRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyBubyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyIGNoZGlyIGEgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IGhpIGhhIGhhZ3V0IHByb2JsZW1lcyBlbiBsbGVnaXIgbCdlbmxsYcOnIHNpbWLDsmxpYyAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIiAgKioqIEVYQ0VFREVEIFVOSVggTElNSVQgT0YgU1lNTElOS1MgKioqXG4iCisjfiBtc2dzdHIgIiAgKioqIFMnSEEgRVhDRURJVCBFTCBMw41NSVQgRCdFTkxMQcOHT1MgU0lNQsOSTElDUyBERSBVTklYICoqKlxuIgorCisjfiBtc2dpZCAibmFtZWk6IHVua25vd24gZmlsZSB0eXBlIDAlMDZvIG9uIGZpbGUgJXNcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IHRpcHVzIGRlIGZpdHhlciBkZXNjb25lZ3V0IDAlMDZvIGVuIGVsIGZpdHhlciAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBnb2luZyB0byBtb3VudCAlcyBieSAlc1xuIgorI34gbXNnc3RyICJtb3VudDogZXMgbXVudGFyw6AgJXMgcGVyIFVVSURcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJtb3VudDogbm8gTEFCRUw9LCBubyBVVUlEPSwgZ29pbmcgdG8gbW91bnQgJXMgYnkgcGF0aFxuIgorI34gbXNnc3RyICJtb3VudDogZXMgbXVudGFyw6AgJXMgcGVyIGV0aXF1ZXRhXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczogTm8gcydoYSBwb2d1dCBiaWZ1cmNhclxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiB3YWl0cGlkOiAlc1xuIgorI34gbXNnc3RyICIlczogcydoYSBwcm9kdcOvdCB1biBlcnJvciBlbiBvYnJpcjogJXNcbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3Qgc3RhdCAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IG5vIHMnaGEgcG9ndXQgZmVyIHN0YXQgZW4gJXM6ICVzXG4iCisKKyN+IG1zZ2lkICJjb3VsZCBub3QgdW1vdW50ICVzIC0gdHJ5aW5nICVzIGluc3RlYWRcbiIKKyN+IG1zZ3N0ciAibm8gcydoYSBwb2d1dCBleGVjdXRhciB1bW91bnQgZW4gJXMgLSBlcyBwcm92YXLDoCBhbWIgJXNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEycyAlLTEyc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEycyAlLTEyc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgImNoZm46IFBBTSBGYWlsdXJlLCBhYm9ydGluZzogJXNcbiIKKyN+IG1zZ3N0ciAibG9naW46IFBBTSBoYSBmYWxsYXQ7IHMnZXN0w6AgYXZvcnRhbnQ6ICVzXG4iCisKKyN+IG1zZ2lkICJDYW4ndCByZWFkICVzLCBleGl0aW5nLiIKKyN+IG1zZ3N0ciAiTm8gcydoYSBwb2d1dCBsbGVnaXIgJXM7IHMnZXN0w6Agc29ydGludC4iCisKKyN+IG1zZ2lkICJsb2dpbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjogUEFNIGhhIGZhbGxhdDsgcydlc3TDoCBhdm9ydGFudDogJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDogcydlc3TDoCBleGVjdXRhbnQgwqslc8K7IGVuIHNlZ29uIHBsw6BcbiIKKworI34gbXNnaWQgIm1vdW50OiBnaXZpbmcgdXAgXCIlc1wiXG4iCisjfiBtc2dzdHIgIm1vdW50OiBzJ2VzdMOgIGFiYW5kb25hbnQgwqslc8K7XG4iCisKKyN+IG1zZ2lkICJgJXMnOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKKyN+IG1zZ3N0ciAiwqslc8K7OiBkaXJlY3RvcmkgaW5jb3JyZWN0ZTogwqsuwrsgbm8gw6lzIGVsIHByaW1lclxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKKyN+IG1zZ3N0ciAiwqslc8K7OiBkaXJlY3RvcmkgaW5jb3JyZWN0ZTogwqsuLsK7IG5vIMOpcyBlbCBzZWdvblxuIgorCisjfiBtc2dpZCAiY2FsbGluZyBvcGVuX3R0eVxuIgorI34gbXNnc3RyICJzJ2VzdMOgIGNyaWRhbnQgb3Blbl90dHlcbiIKKworI34gbXNnaWQgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKyN+IG1zZ3N0ciAicydlc3TDoCBjcmlkYW50IHRlcm1pb19pbml0XG4iCisKKyN+IG1zZ2lkICJ3cml0aW5nIGluaXQgc3RyaW5nXG4iCisjfiBtc2dzdHIgInMnZXN0w6AgZXNjcml2aW50IGxhIGNhZGVuYSBpbmljaWFsXG4iCisKKyN+IG1zZ2lkICJiZWZvcmUgYXV0b2JhdWRcbiIKKyN+IG1zZ3N0ciAiYWJhbnMgZGVsIG1vZGUgYXV0b2JhdWRcbiIKKworI34gbXNnaWQgIndhaXRpbmcgZm9yIGNyLWxmXG4iCisjfiBtc2dzdHIgInMnZXN0w6AgZXNwZXJhbnQgY3ItbGZcbiIKKworI34gbXNnaWQgInJlYWRpbmcgbG9naW4gbmFtZVxuIgorI34gbXNnc3RyICJzJ2VzdMOgIGxsZWdpbnQgZWwgbm9tIGQnZW50cmFkYVxuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAiZGVzcHLDqXMgZGVsIGJ1Y2xlIGdldG9wdFxuIgorCisjfiBtc2dpZCAiZXhpdGluZyBwYXJzZWFyZ3NcbiIKKyN+IG1zZ3N0ciAicydlc3TDoCB0cmFpZW50IHBhcnNlYXJnc1xuIgorCisjfiBtc2dpZCAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKyN+IG1zZ3N0ciAicydoYSBlbnRyYXQgcGFyc2Vfc3BlZWRzXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlc3BlZWRzXG4iCisjfiBtc2dzdHIgInMnZXN0w6AgdHJhaWVudCBwYXJzZXNwZWVkc1xuIgorCisjfiBtc2dpZCAib3BlbigyKVxuIgorI34gbXNnc3RyICJvcGVuKDIpXG4iCisKKyN+IG1zZ2lkICJkdXBpbmdcbiIKKyN+IG1zZ3N0ciAiZHVwKCkgZW4gY3Vyc1xuIgorCisjfiBtc2dpZCAidGVybV9pbyAyXG4iCisjfiBtc2dzdHIgInRlcm1faW8gMlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgZXJyb3IuIgorI34gbXNnc3RyICJTJ2hhIHByb2R1w690IHVuIGVycm9yIGVuIGxhIGNvbnRyYXNlbnlhLiIKKworI34gbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzXG4iCisjfiBtc2dzdHIgIkF2w61zOiBcIiVzXCIgbm8gZXN0w6AgbGxpc3RhdCBhIC9ldGMvc2hlbGxzXG4iCisKKyN+IG1zZ2lkICJ0aW1lb3V0ID0gJWQsIHF1aWV0ID0gJWQsIHJlYm9vdCA9ICVkXG4iCisjfiBtc2dzdHIgInRpbWVvdXQgPSAlZCwgcXVpZXQgPSAlZCwgcmVib290ID0gJWRcbiIKKworI34gbXNnaWQgImNvdWxkbid0IHJlYWQgJXMsIGFuZCBjYW5ub3QgaW9jdGwgZHVtcFxuIgorI34gbXNnc3RyICIiCisjfiAibm8gcydoYSBwb2d1dCBsbGVnaXIgJXMsIGkgbm8gcydoYSBwb2d1dCBlZmVjdHVhciB1biBib2xjYXQgZCdpb2N0bFxuIgorCisjfiBtc2dpZCAiLCBvZmZzZXQgJWxsZCIKKyN+IG1zZ3N0ciAiLCBkZXNwbGHDp2FtZW50ICVsbGQiCisKKyN+IG1zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGRldmljZSAvZGV2L2xvb3AjIgorI34gbXNnc3RyICIlczogbm8gcydoYSB0cm9iYXQgY2FwIGRpc3Bvc2l0aXUgL2Rldi9sb29wIyIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy1lXSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gWy1wIHByaW9yaXR5XSBzcGVjaWFsfExBQkVMPXZvbHVtZV9uYW1lIC4uLlxuIgorI34gIiAgICAgICAlcyBbLXNdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJmb3JtYSBkJ8O6czogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0YXRdIGVzcGVjaWFsfEVUSVFVRVRBPW5vbV92b2x1bS4uLlxuIgorI34gIiAgICAgICAgICAgICVzIFstc11cbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIHNwZWNpYWwgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJmb3JtYSBkJ8O6czogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICAgICAgJXMgWy12XSBlc3BlY2lhbCAuLi5cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IGNhbm9uaWNhbGl6ZSAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IG5vIHMnaGEgcG9ndXQgb2JyaXIgJXM6ICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6IHJlbmljZSBwcmlvcml0eSBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSB1c2VycyBdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJmb3JtYSBkJ8O6czogcmVuaWNlIHByaW9yaXRhdCBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSAiCisjfiAidXN1YXJpcyBdXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiVW5rbm93biBvcHRpb24gYCVjJyBpZ25vcmVkIgorI34gbXNnc3RyICIlczogb3BjacOzIGRlc2NvbmVndWRhIMKrLSVjwrtcbiIKKworI34gbXNnaWQgIiIKKyN+ICJFeGNlZWRlZCBNQVhFTlRSSUVTLiAgUmFpc2UgdGhpcyB2YWx1ZSBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICAiCisjfiAiRXhpdGluZy5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlMnaGEgZXhjZWRpdCBNQVhFTlRSSUVTLiBJbmNyZW1lbnRldSBhcXVlc3QgdmFsb3IgYSBta2NyYW1mcy5jIGlcbiIKKyN+ICJyZWNvbXBpbGV1LiBTJ2VzdMOgIHNvcnRpbnQuXG4iCisKKyN+IG1zZ2lkICJBc3N1bWluZyBwYWdlcyBvZiBzaXplICVkIChub3QgJWQpXG4iCisjfiBtc2dzdHIgIlMnZXN0w6AgYXNzdW1pbnQgcXVlIGxhIG1pZGEgZGUgbGVzIHDDoGdpbmVzIMOpcyBkZSAlZCAoaSBubyAlZClcbiIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZm91bmQgYSAlcyVzJXNcbiIKKyN+IG1zZ3N0ciAiTGEgY29uZmlndXJhY2nDsyBhdXRvbcOgdGljYSBoYSB0cm9iYXQgdW4gJXMlcyVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRHJpdmUgdHlwZVxuIgorI34gIiAgID8gICBhdXRvIGNvbmZpZ3VyZVxuIgorI34gIiAgIDAgICBjdXN0b20gKHdpdGggaGFyZHdhcmUgZGV0ZWN0ZWQgZGVmYXVsdHMpIgorI34gbXNnc3RyICIiCisjfiAiVGlwdXMgZCd1bml0YXRcbiIKKyN+ICIgICA/ICAgQW1iIGNvbmZpZ3VyYWNpw7MgYXV0b23DoHRpY2FcbiIKKyN+ICIgICAwICAgUGVyc29uYWxpdHphZGEgKGFtYiB2YWxvcnMgcGVyIGRlZmVjdGUgcXVlIGRldGVjdGkgZWwgbWFxdWluYXJpKSIKKworI34gbXNnaWQgIlNlbGVjdCB0eXBlICg/IGZvciBhdXRvLCAwIGZvciBjdXN0b20pOiAiCisjfiBtc2dzdHIgIlNlbGVjY2lvbmV1IGVsIHRpcHVzICg/IGF1dG9tw6B0aWNhLCAwIHBlcnNvbmFsaXR6YWRhKTogIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmYWlsZWQuXG4iCisjfiBtc2dzdHIgIk5vIHMnaGEgcG9ndXQgZmVyIGxhIGNvbmZpZ3VyYWNpw7MgYXV0b23DoHRpY2EuXG4iCisKKyN+IG1zZ2lkICJBbHRlcm5hdGUgY3lsaW5kZXJzIgorI34gbXNnc3RyICJDaWxpbmRyZXMgYWx0ZXJuYXRpdXMiCisKKyN+IG1zZ2lkICJQaHlzaWNhbCBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIkNpbGluZHJlcyBmw61zaWNzIgorCisjfiBtc2dpZCAiWW91IG1heSBjaGFuZ2UgYWxsIHRoZSBkaXNrIHBhcmFtcyBmcm9tIHRoZSB4IG1lbnUiCisjfiBtc2dzdHIgIlBvZGV1IGNhbnZpYXIgdG90cyBlbHMgcGFyw6BtZXRyZXMgZGVsIGRpc2MgZGVzIGRlbCBtZW7DuiB4IgorCisjfiBtc2dpZCAiMyw1XCIgZmxvcHB5IgorI34gbXNnc3RyICJEaXNxdWV0IGRlIDMsNSBwb2x6YWRlcyIKKworI34gbXNnaWQgIkxpbnV4IGN1c3RvbSIKKyN+IG1zZ3N0ciAiTGludXggcGVyc29uYWxpdHphZGEiCisKKyN+IG1zZ2lkICIlcyBmcm9tIHV0aWwtbGludXgtJXNcbiIKKyN+IG1zZ3N0ciAiJXMgZCd1dGlsLWxpbnV4LSVzXG4iCisKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJXMgZGVzIGRlICVzJXNcbiIKKworI34gbXNnaWQgIiVzOiBlcnJvcjogdGhlIGxhYmVsICVzIG9jY3VycyBvbiBib3RoICVzIGFuZCAlc1xuIgorI34gbXNnc3RyICIlczogZXJyb3I6IGwnZXRpcXVldGEgJXMgYXBhcmVpeCBhICVzIGkgJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICIlczogY291bGQgbm90IG9wZW4gJXMsIHNvIFVVSUQgYW5kIExBQkVMIGNvbnZlcnNpb24gY2Fubm90IGJlIGRvbmUuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczogbm8gcydoYSBwb2d1dCBvYnJpciAlcywgamEgcXVlIG5vIGVzIHBvdCBmZXIgbGEgY29udmVyc2nDsyBVVUlEIGkgIgorI34gIkxBQkVMLlxuIgorCisjfiBtc2dpZCAiJXM6IGJhZCBVVUlEIgorI34gbXNnc3RyICIlczogVVVJRCBlcnJvbmkiCisKKyN+IG1zZ2lkICJtb3VudDogZmFpbGVkIHdpdGggbmZzIG1vdW50IHZlcnNpb24gNCwgdHJ5aW5nIDMuLlxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQgOiBubyBoYSBlc3RhdCBwb3NzaWJsZSBtdW50YXIgbGEgdmVyc2nDsyA0IGRlIG5mcywgcydlc3TDoCBpbnRlbnRhbnQgIgorI34gIjMuLi5cbiIKKworI34gbXNnaWQgIm1vdW50OiBtb3VudGluZyAlc1xuIgorI34gbXNnc3RyICJtb3VudDogcydlc3TDoCBtdW50YW50ICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2Fubm90IGZpbmQgJXMgaW4gJXMiCisjfiBtc2dzdHIgIm1vdW50OiBubyBzJ2hhIHBvZ3V0IHRyb2JhciAlcyBhICVzIgorCisjfiBtc2dpZCAibW91bnQ6IGVycm9yIHdoaWxlIGd1ZXNzaW5nIGZpbGVzeXN0ZW0gdHlwZVxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IHMnaGEgcHJvZHXDr3QgdW4gZXJyb3IgZW4gaW50ZW50YXIgZW5kZXZpbmFyIGVsIHRpcHVzIGRlIHNpc3RlbWEgZGUgIgorI34gImZpdHhlcnNcbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIGhvc3Q6ZGlyIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiBhcmd1bWVudCBleGNlc3NpdmFtZW50IGxsYXJnIGhvc3Q6ZGlyXG4iCisKKyN+IG1zZ2lkICJtb3VudDogd2FybmluZzogbXVsdGlwbGUgaG9zdG5hbWVzIG5vdCBzdXBwb3J0ZWRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGF2w61zOiBtw7psdGlwbGVzIG5vbXMgZCdvcmRpbmFkb3Igbm8gZXN0w6AgaW1wbGVtZW50YXRcbiIKKworI34gbXNnaWQgIm1vdW50OiBkaXJlY3RvcnkgdG8gbW91bnQgbm90IGluIGhvc3Q6ZGlyIGZvcm1hdFxuIgorI34gbXNnc3RyICJtb3VudDogZWwgZGlyZWN0b3JpIGEgbXVudGFyIG5vIHTDqSBlbCBmb3JtYXQgb3JkaW5hZG9yOmRpclxuIgorCisjfiBtc2dpZCAibW91bnQ6IGNhbid0IGdldCBhZGRyZXNzIGZvciAlc1xuIgorI34gbXNnc3RyICJtb3VudDogbm8gcydoYSBwb2d1dCBvYnRlbmlyIGwnYWRyZcOnYSBwZXIgYSAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgIm1vdW50OiB2YWxvciBpbmNvcnJlY3RlIHBlciBhIGhwLT5oX2xlbmd0aFxuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgb3B0aW9uIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiBsJ2FyZ3VtZW50IGRlIGwnb3BjacOzIMOpcyBleGNlc3NpdmFtZW50IGxsYXJnXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBVbnJlY29nbml6ZWQgcHJvdG89IG9wdGlvbi5cbiIKKyN+IG1zZ3N0ciAiQXbDrXM6IE9wY2nDsyBkZXNjb25lZ3VkYSBwcm90bz1cbiIKKworI34gbXNnaWQgIldhcm5pbmc6IE9wdGlvbiBuYW1sZW4gaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAiQXbDrXM6IEwnb3BjacOzIG5hbWxlbiBubyBlc3TDoCBpbXBsZW1lbnRhZGEuXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBtb3VudCBwYXJhbWV0ZXI6ICVzPSVkXG4iCisjfiBtc2dzdHIgIm5vIGVzIHJlY29uZWl4IGVsIHBhcsOgbWV0cmUgZGUgbXVudGF0Z2UgZGUgbmZzOiAlcz0lZFxuIgorCisjfiBtc2dpZCAiV2FybmluZzogb3B0aW9uIG5vbG9jayBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICJBdsOtczogbCdvcGNpw7Mgbm9sb2NrIG5vIGVzdMOgIGltcGxlbWVudGFkYS5cbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIG1vdW50IG9wdGlvbjogJXMlc1xuIgorI34gbXNnc3RyICJubyBlcyBjcmVjb25laXggbCdvcGNpw7MgZGUgbXVudGF0Z2UgZGUgbmZzOiAlcyVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGg/XG4iCisjfiBtc2dzdHIgIm1vdW50OiB2YWxvciBpbmNvcnJlY3RlIHBlciBhIGhwLT5oX2xlbmd0aD9cbiIKKworI34gbXNnaWQgIm5mcyBiaW5kcmVzdnBvcnQiCisjfiBtc2dzdHIgIm5mcyBiaW5kcmVzdnBvcnQiCisKKyN+IG1zZ2lkICJuZnMgc2VydmVyIHJlcG9ydGVkIHNlcnZpY2UgdW5hdmFpbGFibGUiCisjfiBtc2dzdHIgImVsIHNlcnZpZG9yIG5mcyBpbmZvcm1hIHF1ZSBlbCBzZXJ2ZWkgbm8gZXN0w6AgZGlzcG9uaWJsZSIKKworI34gbXNnaWQgInVzZWQgcG9ydG1hcHBlciB0byBmaW5kIE5GUyBwb3J0XG4iCisjfiBtc2dzdHIgInMnaGEgdXNhdCBsJ2Fzc2lnbmFkb3IgZGUgcG9ydHMgcGVyIHRyb2JhciBlbCBwb3J0IE5GU1xuIgorCisjfiBtc2dpZCAidXNpbmcgcG9ydCAlZCBmb3IgbmZzIGRlYW1vblxuIgorI34gbXNnc3RyICJzJ2VzdMOgIHVzYW50IGVsIHBvcnQgJWQgcGVyIGFsIGRpbW9uaSBkZSBuZnNcbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIHN0YXR1cyByZXR1cm4gdmFsdWU6ICVkIgorI34gbXNnc3RyICJubyBlcyByZWNvbmVpeCBlbCB2YWxvciBkZSByZXRvcm4gZGUgbCdlc3RhdCBkZSBuZnM6ICVkIgorCisjfiBtc2dpZCAiaG9zdDogJXMsIGRpcmVjdG9yeTogJXNcbiIKKyN+IG1zZ3N0ciAiaG9zdDogJXMsIGRpcmVjdG9yaTogJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgInVtb3VudDogbm8gcydoYSBwb2d1dCBvYnRlbmlyIGwnYWRyZcOnYSBwZXIgYSAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBnb3QgYmFkIGhvc3RwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJ1bW91bnQ6IHZhbG9yIGluY29ycmVjdGUgcGVyIGEgaG9zdHAtPmhfbGVuZ3RoXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWJhZCBwYXRoIGxlbmd0aFxuIgorI34gbXNnc3RyICIlczogZWwgY3JhbWZzIMOpcyBpbnbDoGxpZCwgbGEgbG9uZ2l0dWQgZGVsIGNhbcOtIMOpcyBlcnLDsm5pYVxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS13cm9uZyBtYWdpY1xuIgorI34gbXNnc3RyICIlczogZWwgY3JhbWZzIMOpcyBpbnbDoGxpZCwgbGEgbcOgZ2lhIMOpcyBlcnLDsm5pYVxuIgorCisjfiBtc2dpZCAiJXM6IHdhcm5pbmctLWZpbGUgbGVuZ3RoIHRvbyBsb25nLCBwYWRkZWQgaW1hZ2U/XG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczogYXbDrXM7IGxhIGxvbmdpdHVkIGRlbCBmaXR4ZXIgw6lzIG1hc3NhIGxsYXJnYSwgcG90c2VyIMOpcyB1bmEgaW1hdGdlICIKKyN+ICJhbWIgZmFyY2ltZW50P1xuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1jcmMgZXJyb3JcbiIKKyN+IG1zZ3N0ciAiJXM6IGVsIGNyYW1mcyDDqXMgaW52w6BsaWQsIGVycm9yIGRlIGNyY1xuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1iYWQgc3VwZXJibG9ja1xuIgorI34gbXNnc3RyICIlczogZWwgY3JhbWZzIMOpcyBpbnbDoGxpZCwgZWwgc3VwZXJibG9jIMOpcyBlcnJvbmlcbiIKKworI34gbXNnaWQgImZsb2NrOiB1bmtub3duIG9wdGlvbiwgYWJvcnRpbmcuXG4iCisjfiBtc2dzdHIgImZsb2NrOiBlcyBkZXNjb25laXggbCdvcGNpw7MsIHMnZXN0w6AgYXZvcnRhbnQuXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2UgZmxvY2sgWy0tc2hhcmVkXSBbLS10aW1lb3V0PXNlY29uZHNdIGZpbGVuYW1lIGNvbW1hbmQge2FyZyBhcmcuLi59XG4iCisjfiBtc2dzdHIgIiIKKyN+ICJGb3JtYSBkJ8O6czogZmxvY2sgWy0tc2hhcmVkIHwgLS10aW1lb3V0PXNlZ29uc10gZml0eGVyIG9yZHJlIHthcmcgIgorI34gImFyZy4uLn1cbiIKKworI34gbXNnaWQgIlN5bnRheCBlcnJvcjogJyVzJ1xuIgorI34gbXNnc3RyICJFcnJvciBkZSBzaW50YXhpOiAnJXMnXG4iCisKKyN+IG1zZ2lkICJObyBzdWNoIHBhcmFtZXRlciBzZXQ6ICclcydcbiIKKyN+IG1zZ3N0ciAiTm8gcydoYSBlc3BlY2lmaWNhdCBhcXVldCBwYXLDoG1ldHJlOiAnJXMnXG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1wIF0gZGV2IG5hbWVcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtcCBdIG5vbSBkZWwgZGlzcG9zaXRpdVxuIgorCisjfiBtc2dpZCAiIgorI34gIiAgICVzIFsgLXAgXSBkZXYgc2l6ZSBzZWN0IGhlYWRzIHRyYWNrcyBzdHJldGNoIGdhcCByYXRlIHNwZWMxIGZtdF9nYXBcbiIKKyN+IG1zZ3N0ciAiIgorI34gIiAgICVzIFsgLXAgXSBkaXNwb3NpdGl1IG1pZGEgc2VjdG9ycyBjYXDDp2FscyBwaXN0ZXMgc3RyZXRjaCBnYXAgcmF0ZSAiCisjfiAic3BlYzEgZm10X2dhcFxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGRldlxuIgorI34gbXNnc3RyICIgICAlcyBbIC1jIHwgLXkgfCAtbiB8IC1kIF0gZGlzcG9zaXRpdVxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSBkaXNwb3NpdGl1XG4iCisKKyN+IG1zZ2lkICJ2ZXJzaW9uIgorI34gbXNnc3RyICJ2ZXJzacOzIgorCisjfiBtc2dpZCAiY291bGRuJ3Qgb3BlbiAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgIm5vIGVzIHBvdCBvYnJpciAvZGV2L3VyYW5kb20iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkIHJhbmRvbSBkYXRhIGZyb20gL2Rldi91cmFuZG9tIgorI34gbXNnc3RyICJubyBzJ2hhIHBvZ3V0IGxsZWdpciBsZXMgZGFkZXMgYWxlYXTDsnJpZXMgZGUgL2Rldi91cmFuZG9tIgorCisjfiBtc2dpZCAiY2FuJ3Qgc3RhdCglcykiCisjfiBtc2dzdHIgIm5vIHMnaGEgcG9ndXQgZXhlY3V0YXIgc3RhdCglcykiCisKKyN+IG1zZ2lkICIlcyBkb2Vzbid0IGhhdmUgdGhlIGNvcnJlY3QgZmlsZW1vZGVzIgorI34gbXNnc3RyICIlcyBubyB0w6kgZWxzIG1vZGVzIGRlIGZpdHhlciBjb3JyZWN0ZXMiCisKKyN+IG1zZ2lkICJjYW4ndCByZWFkIGRhdGEgZnJvbSAlcyIKKyN+IG1zZ3N0ciAibm8gcydoYSBwb2d1dCBsbGVnaXIgZGFkZXMgZGUgJXMiCisKKyN+IG1zZ2lkICIiCisjfiAiVG9vIG1hbnkgdXNlcnMgbG9nZ2VkIG9uIGFscmVhZHkuXG4iCisjfiAiVHJ5IGFnYWluIGxhdGVyLlxuIgorI34gbXNnc3RyICIiCisjfiAiSGkgaGEgbWFzc2EgdXN1YXJpcyBlbiBhY3RpdSBlbiBlbCBzaXN0ZW1hLlxuIgorI34gIlByb3ZldS1obyBtw6lzIGVuZGF2YW50LlxuIgorCisjfiBtc2dpZCAiWW91IGhhdmUgdG9vIG1hbnkgcHJvY2Vzc2VzIHJ1bm5pbmcuXG4iCisjfiBtc2dzdHIgIkVzdGV1IGV4ZWN1dGFudCBtYXNzYSBwcm9jZXNzb3MuXG4iCisKKyN+IG1zZ2lkICJUaGUgcGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDYgY2hhcmFjdGVycywgdHJ5IGFnYWluLlxuIgorI34gbXNnc3RyICIiCisjfiAiTGEgY29udHJhc2VueWEgaGEgZGUgdGVuaXIgY29tIGEgbcOtbmltIDYgY2Fyw6BjdGVycywgaW50ZW50ZXUtaG8gZGUgbm91LlxuIgorCisjfiBtc2dpZCAiIgorI34gIlRoZSBwYXNzd29yZCBtdXN0IGNvbnRhaW4gY2hhcmFjdGVycyBvdXQgb2YgdHdvIG9mIHRoZSBmb2xsb3dpbmdcbiIKKyN+ICJjbGFzc2VzOiAgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBub24gYWxwaGFudW1lcmljXG4iCisjfiAiY2hhcmFjdGVycy4gU2VlIHBhc3N3ZCgxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkxhIGNvbnRyYXNlbnlhIGhhIGRlIGNvbnRlbmlyIGNhcsOgY3RlcnMgZCdhbGd1bmEgZGUgbGVzIHNlZ8O8ZW50cyBjbGFzZXM6XG4iCisjfiAibGxldHJlcyBtYWrDunNjdWxlcyBpIG1pbsO6c2N1bGVzLCBkw61naXRzIGkgY2Fyw6BjdGVycyBubyBhbGZhbnVtw6hyaWNzLlxuIgorI34gIlBlciBhIG3DqXMgaW5mb3JtYWNpw7MgY29uc3VsdGV1IHBhc3N3ZCgxKS5cbiIKKworI34gbXNnaWQgIllvdSBjYW5ub3QgcmV1c2UgdGhlIG9sZCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAiTm8gcG9kZXUgdG9ybmFyIGEgdXNhciB1bmEgY29udHJhc2VueWEgYW50aWdhLlxuIgorCisjfiBtc2dpZCAiUGxlYXNlIGRvbid0IHVzZSBzb21ldGhpbmcgbGlrZSB5b3VyIHVzZXJuYW1lIGFzIHBhc3N3b3JkIVxuIgorI34gbXNnc3RyICJObyB1c2V1IHJlcyBzaW1pbGFyIGFsIHZvc3RyZSBub20gZCd1c3VhcmkgcGVyIGNvbnRyYXNlbnlhLlxuIgorCisjfiBtc2dpZCAiUGxlYXNlIGRvbid0IHVzZSBzb21ldGhpbmcgbGlrZSB5b3VyIHJlYWxuYW1lIGFzIHBhc3N3b3JkIVxuIgorI34gbXNnc3RyICJObyB1c2V1IHJlcyBzaW1pbGFyIGFsIHZvc3RyZSBub20gcmVhbCBwZXIgY29udHJhc2VueWEuXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFt1c2VybmFtZSBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICJGb3JtYSBkJ8O6czogcGFzc3dkIFtub21fdXN1YXJpIFtjb250cmFzZW55YV1dXG4iCisKKyN+IG1zZ2lkICJPbmx5IHJvb3QgbWF5IHVzZSB0aGUgb25lIGFuZCB0d28gYXJndW1lbnQgZm9ybXMuXG4iCisjfiBtc2dzdHIgIk5vbcOpcyBsJ3VzdWFyaSByb290IHBvdCB1c2FyIGxlcyBmb3JtZXMgZCd1biBpIGRvcyBhcmd1bWVudHMuXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFstZm9xc3ZWXSBbdXNlciBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICJGb3JtYSBkJ8O6czogcGFzc3dkIFstZm9xc3ZWXSBbdXN1YXJpIFtjb250cmFzZW55YV1dXG4iCisKKyN+IG1zZ2lkICJDYW4ndCBleGVjICVzOiAlc1xuIgorI34gbXNnc3RyICJObyBzJ2hhIHBvZ3V0IGV4ZWN1dGFyICVzOiAlc1xuIgorCisjfiBtc2dpZCAiQ2Fubm90IGZpbmQgbG9naW4gbmFtZSIKKyN+IG1zZ3N0ciAiTm8gcydoYSBwb2d1dCB0cm9iYXIgZWwgbm9tIGQnZW50cmFkYSIKKworI34gbXNnaWQgIk9ubHkgcm9vdCBjYW4gY2hhbmdlIHRoZSBwYXNzd29yZCBmb3Igb3RoZXJzLlxuIgorI34gbXNnc3RyICJOb23DqXMgbCd1c3Vhcmkgcm9vdCBwb3QgY2FudmlhciBsYSBjb250cmFzZW55YSBkJ2FsdHJlcyB1c3VhcmlzLlxuIgorCisjfiBtc2dpZCAiQ2FuJ3QgZmluZCB1c2VybmFtZSBhbnl3aGVyZS4gSXMgYCVzJyByZWFsbHkgYSB1c2VyPyIKKyN+IG1zZ3N0ciAiIgorI34gIk5vIHMnaGEgcG9ndXQgdHJvYmFyIGVubGxvYyBlbCBub20gZCd1c3VhcmkuIGAlcycgw6lzIHJlYWxtZW50IHVuIHVzdWFyaT8iCisKKyN+IG1zZ2lkICJTb3JyeSwgSSBjYW4gb25seSBjaGFuZ2UgbG9jYWwgcGFzc3dvcmRzLiBVc2UgeXBwYXNzd2QgaW5zdGVhZC4iCisjfiBtc2dzdHIgIk5vbcOpcyBlcyBwb2RlbiBjYW52aWFyIGxlcyBjb250cmFzZW55ZXMgbG9jYWxzLiBVc2V1IHlwcGFzc3dkLiIKKworI34gbXNnaWQgIlVJRCBhbmQgdXNlcm5hbWUgZG9lcyBub3QgbWF0Y2gsIGltcG9zdGVyISIKKyN+IG1zZ3N0ciAiRWwgVUlEIGkgZWwgbm9tIGQndXN1YXJpIG5vIGNvaW5jaWRlaXhlbiwgc291IHVuIGltcG9zdG9yLiIKKworI34gbXNnaWQgIkNoYW5naW5nIHBhc3N3b3JkIGZvciAlc1xuIgorI34gbXNnc3RyICJTJ2VzdMOgIGNhbnZpYW50IGxhIGNvbnRyYXNlbnlhIHBlciBhICVzXG4iCisKKyN+IG1zZ2lkICJFbnRlciBvbGQgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiRW50cmV1IGwnYW50aWdhIGNvbnRyYXNlbnlhOiAiCisKKyN+IG1zZ2lkICJJbGxlZ2FsIHBhc3N3b3JkLCBpbXBvc3Rlci4iCisjfiBtc2dzdHIgIkNvbnRyYXNlbnlhIGlswrdsZWdhbCwgaW1wb3N0b3IuIgorCisjfiBtc2dpZCAiRW50ZXIgbmV3IHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIkVudHJldSBsYSBub3ZhIGNvbnRyYXNlbnlhOiAiCisKKyN+IG1zZ2lkICJQYXNzd29yZCBub3QgY2hhbmdlZC4iCisjfiBtc2dzdHIgIk5vIHMnaGEgY2FudmlhdCBsYSBjb250cmFzZW55YS4iCisKKyN+IG1zZ2lkICJSZS10eXBlIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJSZWVzY3Jpdml1IGxhIG5vdmEgY29udHJhc2VueWE6ICIKKworI34gbXNnaWQgIllvdSBtaXNzcGVsbGVkIGl0LiBQYXNzd29yZCBub3QgY2hhbmdlZC4iCisjfiBtc2dzdHIgIkwnaGV1IGVzY3JpdCBtYWxhbWVudC4gTm8gcydoYSBjYW52aWF0LiIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQsIHVzZXIgJXMiCisjfiBtc2dzdHIgInMnaGEgY2FudmlhdCBsYSBjb250cmFzZW55YSwgdXN1YXJpICVzIgorCisjfiBtc2dpZCAiUk9PVCBQQVNTV09SRCBDSEFOR0VEIgorI34gbXNnc3RyICJTJ0hBIENBTlZJQVQgTEEgQ09OVFJBU0VOWUEgREVMIFNVUEVSVVNVQVJJIChST09UKSIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQgYnkgcm9vdCwgdXNlciAlcyIKKyN+IG1zZ3N0ciAiZWwgc3VwZXJ1c3VhcmkgKHJvb3QpIGhhIGNhbnZpYXQgbGEgY29udHJhc2VueWE7IHVzdWFyaSAlcyIKKworI34gbXNnaWQgImNhbGxpbmcgc2V0cHduYW0gdG8gc2V0IHBhc3N3b3JkLlxuIgorI34gbXNnc3RyICJzJ2VzdMOgIGNyaWRhbnQgc2V0cHduYW0gcGVyIGVzdGFibGlyIGxhIGNvbnRyYXNlbnlhLlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKKyN+IG1zZ3N0ciAiKk5PKiBzJ2hhIGNhbnZpYXQgbGEgY29udHJhc2VueWEuIEludGVudGV1LWhvIG3DqXMgZW5kYXZhbnQuXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICJTJ2hhIGNhbnZpYXQgbGEgY29udHJhc2VueWEuXG4iCisKKyN+IG1zZ2lkICJtb3VudDogdGhpcyB2ZXJzaW9uIHdhcyBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIHRoZSB0eXBlIGBuZnMnIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IGFxdWVzdGEgdmVyc2nDsyBoYSBlc3RhdCBjb21waWxhZGEgc2Vuc2Ugc3Vwb3J0IHBlciBhbCB0aXB1cyBgbmZzJyIKKworI34gbXNnaWQgIiVzOiBub3QgY29tcGlsZWQgd2l0aCBtaW5peCB2MiBzdXBwb3J0XG4iCisjfiBtc2dzdHIgIiVzOiBubyBzJ2hhIGNvbXBpbGF0IGFtYiBzdXBvcnQgcGVyIGEgbWluaXggdjJcbiIKKworI34gbXNnaWQgIkJvb3QgKCUwMlgpIgorI34gbXNnc3RyICJBcnJlbi4oJTAyWCkiCisKKyN+IG1zZ2lkICJOb25lICglMDJYKSIKKyN+IG1zZ3N0ciAiQ2FwICglMDJYKSIKKworI34gbXNnaWQgIldhcm5pbmc6IGRlbGV0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgJWRcbiIKKyN+IG1zZ3N0ciAiQXRlbmNpw7M6IHMnZXN0YW4gc3VwcmltaW50IGxlcyBwYXJ0aWNpb25zIGRlc3Byw6lzIGRlICVkXG4iCisKKyN+IG1zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAiRmFsbGEgZGVsIGlvY3RsIEJMS0dFVFNJWkUgcGVyIGEgJXNcbiIKKworI34gbXNnaWQgIiVzOiBbJTA0eF06JWxkICglcykgb2Zmc2V0ICVkLCAlcyBlbmNyeXB0aW9uXG4iCisjfiBtc2dzdHIgIiVzOiBbJTA0eF06JWxkICglcykgZGVzcGxhw6dhbWVudCAlZCwgJXMgZW5jcmlwdGFjacOzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAibW91bnQ6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS5cbiIKKyN+ICIgICAgICAgTWF5YmUgL2Rldi9sb29wIyBoYXMgYSB3cm9uZyBtYWpvciBudW1iZXI/IgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IE5vIGVzIHBvdCB0cm9iYXIgY2FwIGRpc3Bvc2l0aXUgbG9vcC5cbiIKKyN+ICIgICAgICAgUG9kcmlhIHNlciBxdWUgL2Rldi9sb29wIyB0aW5ndWkgdW4gbsO6bWVybyBtYWpvciBpbmNvcnJlY3RlPyIKKworI34gbXNnaWQgIiIKKyN+ICJtb3VudDogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisjfiAiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZSAodGhlbiByZWNvbXBpbGUgb3IgYGluc21vZCBsb29wLm8nKSwgb3JcbiIKKyN+ICIgICAgICAgbWF5YmUgL2Rldi9sb29wIyBoYXMgdGhlIHdyb25nIG1ham9yIG51bWJlcj8iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogTm8gZXMgcG90IHRyb2JhciBjYXAgZGlzcG9zaXRpdSBsb29wLiBQb3RzZXIgYXF1ZXN0IG51Y2xpIG5vXG4iCisjfiAiICAgICAgIGVsIHJlY29uZWd1aSAoc2kgZXMgYWl4w7IsIHJlY29tcGlsZXUgbyBmZXUgYGluc21vZCBsb29wLm8nKVxuIgorI34gIiAgICAgICBvIHRhbWLDqSBwb2RyaWEgc2VyIHF1ZSAvZGV2L2xvb3AjIHRpbmd1aSB1biBuw7ptZXJvIG1ham9yICIKKyN+ICJpbmNvcnJlY3RlLiIKKworI34gbXNnaWQgIkluaXQgKHVwIHRvIDE2IGhleCBkaWdpdHMpOiAiCisjfiBtc2dzdHIgIkluaWNpYWxpdHphY2nDsyAoZmlucyBhIDE2IGTDrWdpdHMgaGV4YWRlY2ltYWxzKTogIgorCisjfiBtc2dpZCAiTm9uLWhleCBkaWdpdCAnJWMnLlxuIgorI34gbXNnc3RyICJEw61naXQgbm8gaGV4YWRlY2ltYWwgJyVjJy5cbiIKKworI34gbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGdldCBrZXkgZm9yIGVuY3J5cHRpb24gc3lzdGVtICVkXG4iCisjfiBtc2dzdHIgIk5vIGNvbmVjIGNvbSBvYnRpbmRyZSBsYSBjbGF1IHBlciBhbCBzaXN0ZW1hIGQnZW5jcmlwdGFjacOzICVkXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIGJ5IGtlcm5lbCIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBlbCB0aXB1cyBkZWwgc2lzdGVtYSBkZSBmaXR4ZXJzICVzIG5vIGVzdMOgIHN1cG9ydGF0IHBlbCBudWNsaSIKKworI34gbXNnaWQgIm1vdW50OiAlcyBkdXBsaWNhdGUgLSBub3QgbW91bnRlZCIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzIGR1cGxpY2FkYTsgbm8gZXMgbXVudGFyw6AiCisKKyN+IG1zZ2lkICJVVUlEIgorI34gbXNnc3RyICJVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IHRoZSBsYWJlbCAlcyBvY2N1cnMgb24gYm90aCAlcyBhbmQgJXMgLSBub3QgbW91bnRlZFxuIgorI34gbXNnc3RyICJtb3VudDogbCdldGlxdWV0YSAlcyBhcGFyZWl4IGVuICVzIGkgJXM7IG5vIHMnaGEgbXVudGF0XG4iCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9jcy5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9jcy5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE5ODVhNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2NzLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9jcy5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2NzLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzZDA2MmIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9jcy5wbwpAQCAtMCwwICsxLDEyNjM4IEBACisjIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBmcmVlbHkgY29weSBhbmQgZGlzdHJpYnV0ZQorIyB0aGlzIGZpbGUgYW5kIG1vZGlmaWVkIHZlcnNpb25zLCBwcm92aWRlZCB0aGF0IHRoaXMKKyMgaGVhZGVyIGlzIG5vdCByZW1vdmVkIGFuZCBtb2RpZmllZCB2ZXJzaW9ucyBhcmUgbWFya2VkCisjIGFzIHN1Y2guCisjCisjIEN6ZWNoIHRyYW5zbGF0aW9uIG9mIHV0aWwtbGludXguIAorIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlLgorIworIyBKacWZw60gUGF2bG92c2vDvSA8cGF2bG92c2tAZmYuY3VuaS5jej4sIDE5OTkgLSAyMDAxLgorIyBQZXRyIFDDrXNhxZkgPHBldHIucGlzYXJAYXRsYXMuY3o+LCAyMDA2LgorIyBWbGFkaW3DrXIgTWljaGwgPHZsYWRpbWlyLm1pY2hsQHNlem5hbS5jej4sIDIwMDcKKyMgUGV0ciBQaXNhciA8cGV0ci5waXNhckBhdGxhcy5jej4sIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAuCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4LW5nIDIuMTcuMS1yYzFcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTAtMDItMTYgMjA6MzgrMDEwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogUGV0ciBQaXNhciA8cGV0ci5waXNhckBhdGxhcy5jej5cbiIKKyJMYW5ndWFnZS1UZWFtOiBDemVjaCA8dHJhbnNsYXRpb24tdGVhbS1jc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgIm5hc3RhdsOtIHBvdXplIHBybyDEjXRlbsOtIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAibmFzdGF2w60gcHJvIMSNdGVuw60vesOhcGlzIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzYKK21zZ2lkICJnZXQgcmVhZC1vbmx5IgorbXNnc3RyICJ6amlzdMOtIHpkYSBqZSB6YWvDoXrDoW4gesOhcGlzIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODIKK21zZ2lkICJnZXQgbG9naWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJ6amlzdMOtIHZlbGlrb3N0IGxvZ2lja8OpaG8gYmxva3UgKHNla3RvcnUpIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKK21zZ2lkICJnZXQgcGh5c2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAiemppc3TDrSB2ZWxpa29zdCBmeXppY2vDqWhvIGJsb2t1IChzZWt0b3J1KSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjk0Cittc2dpZCAiZ2V0IG1pbmltdW0gSS9PIHNpemUiCittc2dzdHIgInpqaXN0w60gbWluaW3DoWxuw60gdmVsaWtvc3QgSS9PIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTAwCittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgInpqaXN0w60gb3B0aW3DoWxuw60gdmVsaWtvc3QgSS9PIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2Cittc2dpZCAiZ2V0IGFsaWdubWVudCBvZmZzZXQiCittc2dzdHIgInpqaXN0w60gcG9zdW4gcHJvIHphcm92bsOhbsOtIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTEyCittc2dpZCAiZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IgorbXNnc3RyICJ6amlzdMOtIG1heGltw6FsbsOtIHBvxI1ldCBzZWt0b3LFryB2wqBwb8W+YWRhdmt1IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTE4Cittc2dpZCAiZ2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAiemppc3TDrSB2ZWxpa29zdCBibG9rdSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEyNQorbXNnaWQgInNldCBibG9ja3NpemUiCittc2dzdHIgIm5hc3RhdsOtIHZlbGlrb3N0IGJsb2t1IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgInpqaXN0w60gcG/EjWV0IHNla3RvcsWvIGpha28gMzJiaXRvdsOpIMSNw61zbG8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAiemppc3TDrSB2ZWxpa29zdCB2wqBiYWp0ZWNoIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTQ0Cittc2dpZCAic2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAibmFzdGF2w60gZG9wxZllZG7DqSDEjXRlbsOtIHNla3RvcsWvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAiemppc3TDrSBuYXN0YXZlbsOtIGRvcMWZZWRuw6lobyDEjXRlbsOtIHNla3RvcsWvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTU3Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJuYXN0YXbDrSBkb3DFmWVkbsOpIG5hxI3DrXTDoW7DrSBwcm8gc291Ym9yb3bDvSBzeXN0w6ltIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTYzCittc2dpZCAiZ2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJ6amlzdMOtIG5hc3RhdmVuw60gZG9wxZllZG7DqWhvIG5hxI3DrXTDoW7DrSBwcm8gc291Ym9yb3bDvSBzeXN0w6ltIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTY3Cittc2dpZCAiZmx1c2ggYnVmZmVycyIKK21zZ3N0ciAidnlwcsOhemRuaXQgYnVmZmVyeSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIm5hxI10ZSB6bm92dSB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOlxuIgorbXNnc3RyICJQb3XFvml0w606XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyAtLXJlcG9ydCBbZGV2aWNlc11cbiIKK21zZ3N0ciAiICAlcyAtLXJlcG9ydCBbWkHFmMONWkVOw43igKZdXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyAgWy12fC1xXSBQxZjDjUtBWuKApiBaQcWYw41aRU7DjeKAplxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBjb21tYW5kczpcbiIKK21zZ3N0ciAiRG9zdHVwbsOpIHDFmcOta2F6eTpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NworbXNnaWQgImdldCBzaXplIGluIDUxMi1ieXRlIHNlY3RvcnMiCittc2dzdHIgInZyw6F0w60gdmVsaWtvc3Qgdnlqw6FkxZllbm91IHbCoDUxMmJhanRvdsO9Y2ggc2VrdG9yZWNoIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIiVzOiBuZXpuw6Ftw70gcMWZw61rYXogJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgorbXNnc3RyICJwxZllcMOtbmHEjSAlcyB2ecW+YWR1amUgYXJndW1lbnRcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgIlDFmcOta2F6IOKAniVz4oCcIHNlbGhhbC5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdWNjZWVkZWQuXG4iCittc2dzdHIgIiVzIHVzcMSbbC5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlczogbmVsemUgb3RldsWZw610OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpb2N0bCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogaW9jdGwgY2h5YmEgbmEgJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIFN0YXJ0U2VjICAgICAgICAgICAgU2l6ZSAgIERldmljZVxuIgorbXNnc3RyICJSTyAgICBSQSAgIFNTWiAgIEJTWiBQcnZuw61TZWt0LiAgICAgICAgVmVsaWtvc3QgWmHFmcOtemVuw61cbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6XG4iCittc2dzdHIgIlBvdcW+aXTDrTpcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHROT1RFOiBlbHZ0dW5lIG9ubHkgd29ya3Mgd2l0aCAyLjQga2VybmVsc1xuIgorbXNnc3RyICJcdFBPWk7DgU1LQTogZWx2dHVuZSBmdW5ndWplIGplbiBzwqBqw6FkcnkgxZlhZHkgMi40XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJzZSBlcnJvclxuIgorbXNnc3RyICJjaHliYSByb3plYsOtcsOhbsOtXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJsb2NrZGV2aWNlLCB1c2UgLWggZm9yIGhlbHBcbiIKK21zZ3N0ciAiY2h5YsOtIGJsb2tvdsOpIHphxZnDrXplbsOtLCBuw6Fwb3bEm2R1IHrDrXNrw6F0ZSBwb21vY8OtIC1oXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZWx2dHVuZSBpcyBvbmx5IHVzZWZ1bCBvbiBvbGRlciBrZXJuZWxzO1xuIgorImZvciAyLjYgdXNlIElPIHNjaGVkdWxlciBzeXNmcyB0dW5hYmxlcyBpbnN0ZWFkLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorImVsdnR1bmUgc2UgaG9kw60gamVuIHBybyBzdGFyxaHDrSBqw6FkcmE7XG4iCisicHJvIMWZYWR1IDIuNiBwb3XFvmlqdGUgc3lzZnMgcm96aHJhbsOtIHBybyBsYWTEm27DrSBwbMOhbm92YcSNZSBJL08uXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIkZvcm3DoXR1amnigKYgIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NDkgZGlzay11dGlscy9mZGZvcm1hdC5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImRvbmVcbiIKK21zZ3N0ciAiaG90b3ZvXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAiT3bEm8WZdWpp4oCmICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjcxCittc2dpZCAiUmVhZDogIgorbXNnc3RyICJDaHliYSBwxZlpIMSNdGVuw606ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAiQ2h5YmEgcMWZaSDEjXRlbsOtIGN5bGluZHJ1ICVkLCBwxZllZHBva2xhZCAlZCwgcMWZZcSNdGVubyAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImJhZCBkYXRhIGluIGN5bCAlZFxuIgorIkNvbnRpbnVpbmcgLi4uICIKK21zZ3N0ciAiIgorImNoeWJuw6EgZGF0YSB2IGN5bGluZHJ1ICVkXG4iCisiUG9rcmHEjXVqaeKApiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgIlBvdcW+aXTDrTogJXMgWy1uXSBaQcWYw41aRU7DjVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTE4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODQKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE4MSBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTE0IGRpc2stdXRpbHMvbWtmcy5jOjUyCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODEyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3MgorIzogZGlzay11dGlscy9ta3N3YXAuYzo0ODcgbWlzYy11dGlscy9kZGF0ZS5jOjE3OSBtaXNjLXV0aWxzL3JlbmFtZS5jOjc5CisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE0NyBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCVzKVxuIgorbXNnc3RyICIlczogKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6IG5lbsOtIGJsb2tvdsOpIHphxZnDrXplbsOtXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDIKK21zZ2lkICJDb3VsZCBub3QgZGV0ZXJtaW5lIGN1cnJlbnQgZm9ybWF0IHR5cGUiCittc2dzdHIgIlR5cCBmb3Jtw6F0dSBuZWx6ZSB6amlzdGl0IgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgInN0cmFuOiAlcywgc3RvcDogJWQsIHNla3Qvc3RvcHUgJWQuIENlbGtvdsOhIGthcGFjaXRhICUnZMKga0IuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIjIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJTaW5nbGUiCittc2dzdHIgIjEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisiUG91xb5pdMOtOiAlcyBbLWh2XSBbLXggQURSRVPDgcWYXSBTT1VCT1JcbiIKKyIgLWggICAgICAgICAgdnlww63FoWUgdHV0byBuw6Fwb3bEm2R1XG4iCisiIC14IEFEUkVTw4HFmCAgZXh0cmFodWplIGRvIEFEUkVTw4HFmEVcbiIKKyIgLXYgICAgICAgICAgcG9kcm9ibsSbasWhw60gaGzDocWha3lcbiIKKyIgU09VQk9SICAgICAga29udHJvbG92YW7DvSBzb3Vib3JcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgInZvbMOhbsOtIHN0YXQgc2VsaGFsbzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgInZvbMOhbsOtIG9wZW4gc2VsaGFsbzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgZmFpbGVkOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGRldmljZSBzaXplOiAlcyIKK21zZ3N0ciAiSU9DVEwgc2VsaGFsbzogdmVsaWtvc3QgemHFmcOtemVuw60gbmVuw60gbW/Fvm7DqSB1csSNaXQ6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBhIGJsb2NrIGRldmljZSBvciBmaWxlOiAlcyIKK21zZ3N0ciAibmVuw60gYmxva292w71tIHphxZnDrXplbsOtbSBhbmkgc291Ym9yZW06ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgImTDqWxrYSBzb3Vib3J1IGplIHDFmcOtbGnFoSBrcsOhdGvDoSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4OSBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTk3CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjU4IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBmYWlsZWQ6ICVzIgorbXNnc3RyICJ2b2zDoW7DrSByZWFkIHNlbGhhbG86ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjA3Cittc2dpZCAic3VwZXJibG9jayBtYWdpYyBub3QgZm91bmQiCittc2dzdHIgIm1hZ2lja8OhIHpuYcSNa2Egc3VwZXJibG9rdSBuZW5hbGV6ZW5hIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2Cittc2dpZCAidW5zdXBwb3J0ZWQgZmlsZXN5c3RlbSBmZWF0dXJlcyIKK21zZ3N0ciAibmVwb2Rwb3JvdmFuw6kgdmxhc3Rub3N0aSBzeXN0w6ltdSBzb3Vib3LFryIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICJzdXBlcmJsb2NrIHNpemUgKCVkKSB0b28gc21hbGwiCittc2dzdHIgInZlbGlrb3N0IHN1cGVyYmxva3UgKCVkKSBqZSBwxZnDrWxpxaEgbWFsw6EiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgIm51bG92w70gcG/EjWV0IHNvdWJvcsWvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgZXh0ZW5kcyBwYXN0IGVuZCBvZiBmaWxlc3lzdGVtXG4iCittc2dzdHIgInZhcm92w6Fuw606IHNvdWJvciBwxZllc2FodWplIHphIGtvbmVjIHNvdWJvcm92w6lobyBzeXN0w6ltdVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgInZhcm92w6Fuw606IHN0YXLDvSBmb3Jtw6F0IGNyYW1mc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiQ1JDIG5lbsOtIG1vxb5uw6kgemtvbnRyb2xvdmF0OiBzdGFyw70gZm9ybcOhdCBjcmFtZnMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzIgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjMzOQorIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ3NyBsb2dpbi11dGlscy9jaGZuLmM6NTI5IGxvZ2luLXV0aWxzL2Noc2guYzo0MzkKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTQxIHN5cy11dGlscy9jeXR1bmUuYzozMjEKK21zZ2lkICJtYWxsb2MgZmFpbGVkIgorbXNnc3RyICJ2b2zDoW7DrSBtYWxsb2Mgc2VsaGFsbyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI5NworbXNnaWQgImNyYyBlcnJvciIKK21zZ3N0ciAiY2h5YmEgQ1JDIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY0Cittc2dpZCAicm9vdCBpbm9kZSBpcyBub3QgZGlyZWN0b3J5IgorbXNnc3RyICJrb8WZZW5vdsO9IGktdXplbCBuZW7DrSBhZHJlc8OhxZllbSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgImNoeWJuw6kgdW3DrXN0xJtuw60ga2/FmWVuZSAoJWx1KSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM4NworbXNnaWQgImRhdGEgYmxvY2sgdG9vIGxhcmdlIgorbXNnc3RyICJwxZnDrWxpxaEgdmVsa8O9IGRhdG92w70gYmxvayIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgImNoeWJhIGRla29tcHJlc2UgJXAoJWQpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICIgIGhvbGUgYXQgJWxkICglemQpXG4iCittc2dzdHIgIiAgZMOtcmEgbmEgJWxkICglemQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjMgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIgorbXNnc3RyICIgIHJvemJhbHVqaSBibG9rIG9kICVsZCBkbyAlbGQgKCVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICJub24tYmxvY2sgKCVsZCkgYnl0ZXMiCittc2dzdHIgIm5lLWJsb2tvdsOpICglbGQpIGJhanR5IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1zaXplICglbGQgdnMgJWxkKSBieXRlcyIKK21zZ3N0ciAibmUtdmVsaWtvc3Ruw60gKCVsZCBtw61zdG8gJWxkKSBiYWp0eSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ2b2zDoW7DrSB3cml0ZSBzZWxoYWxvOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAidm9sw6Fuw60gbGNob3duIHNlbGhhbG86ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDU4CisjLCBjLWZvcm1hdAorbXNnaWQgImNob3duIGZhaWxlZDogJXMiCittc2dzdHIgInZvbMOhbsOtIGNob3duIHNlbGhhbG86ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDY1CisjLCBjLWZvcm1hdAorbXNnaWQgInV0aW1lIGZhaWxlZDogJXMiCittc2dzdHIgInZvbMOhbsOtIHV0aW1lIHNlbGhhbG86ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICJpLXV6ZWwgYWRyZXPDocWZZSBtw6EgbnVsb3ZvdSBwb3ppY2kgYSBuZW51bG92b3UgdmVsaWtvc3Q6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgInZvbMOhbsOtIG1rZGlyIHNlbGhhbG86ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTExCittc2dpZCAiZmlsZW5hbWUgbGVuZ3RoIGlzIHplcm8iCittc2dzdHIgImTDqWxrYSBqbcOpbmEgc291Ym9ydSBqZSBudWxvdsOhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTE0Cittc2dpZCAiYmFkIGZpbGVuYW1lIGxlbmd0aCIKK21zZ3N0ciAiY2h5Ym7DoSBkw6lsa2Egam3DqW5hIHNvdWJvcnUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MjEKK21zZ2lkICJiYWQgaW5vZGUgb2Zmc2V0IgorbXNnc3RyICJjaHlibsOpIHVtw61zdMSbbsOtIGktdXpsdSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUzNworbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplIgorbXNnc3RyICJpLXV6ZWwgc291Ym9ydSBtw6EgbnVsb3ZvdSBwb3ppY2kgYSBuZW51bG92b3UgdmVsaWtvc3QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NDAKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIHNpemUgYW5kIG5vbi16ZXJvIG9mZnNldCIKK21zZ3N0ciAiaS11emVsIHNvdWJvcnUgbcOhIG51bG92b3UgdmVsaWtvc3QgYSBuZW51bG92b3UgcG96aWNpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTcxCittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBvZmZzZXQiCittc2dzdHIgInN5bWJvbGlja8O9IG9ka2F6IG3DoSBudWxvdm91IHBvemljaSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3NAorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gc2l6ZSIKK21zZ3N0ciAic3ltYm9saWNrw70gb2RrYXogbcOhIG51bG92b3UgdmVsaWtvc3QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAic2l6ZSBlcnJvciBpbiBzeW1saW5rOiAlcyIKK21zZ3N0ciAiY2h5YmEgdsKgc3ltYm9saWNrw6ltIG9ka2F6dTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJ2b2zDoW7DrSBzeW1saW5rIHNlbGhhbG86ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWNpYWwgZmlsZSBoYXMgbm9uLXplcm8gb2Zmc2V0OiAlcyIKK21zZ3N0ciAienZsw6HFoXRuw60gc291Ym9yIG3DoSBuZW51bG92b3UgcG96aWNpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiRklGTyBtw6EgbmVudWxvdm91IHZlbGlrb3N0OiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQgaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICJzb2NrZXQgbcOhIG5lbnVsb3ZvdSB2ZWxpa29zdDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAicG9kaXZuw70gbcOzZC9wcsOhdmE6ICVzICglbykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAidm9sw6Fuw60gbWtub2Qgc2VsaGFsbzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorInBvxI3DoXRlayBkYXQgYWRyZXPDocWZZSAoJWxkKSA8IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKSArIHBvxI3DoXRlayAoJWxkKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICJrb25lYyBkYXQgYWRyZXPDocWZZSAoJWxkKSAhPSBwb8SNw6F0ZWsgZGF0IHNvdWJvcnUgKCVsZCkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKK21zZ2lkICJpbnZhbGlkIGZpbGUgZGF0YSBvZmZzZXQiCittc2dzdHIgImNoeWJuw6kgdW3DrXN0xJtuw60gZGF0IHNvdWJvcnUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MTQKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICJvdXRidWZmZXIgbmVsemUgYWxva292YXQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MjcKK21zZ2lkICJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiCittc2dzdHIgInDFmWVsb8W+ZW5vIGJleiBwb2Rwb3J5IHBybyAteCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtZVxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFstbGFydnNtZl0gTsOBWkVWX1pBxZjDjVpFTsONXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiJXMgamUgamnFviBwxZlpcG9qZW5vLlx0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjUKK21zZ2lkICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiCittc2dzdHIgIkNoY2V0ZSBvcHJhdmR1IHBva3JhxI1vdmF0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hlY2sgYWJvcnRlZC5cbiIKK21zZ3N0ciAicHJvaGzDrWRrYSB1a29uxI1lbmEuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIgorbXNnc3RyICLEjMOtc2xvIHrDs255IDwgUFJWTsONX1rDk05BIHbCoHNvdWJvcnUg4oCeJXPigJwuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAixIzDrXNsbyB6w7NueSA+PSBwb8SNZXQgWsOTTiB2wqBzb3Vib3J1IOKAniVz4oCcLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiT2RzdHJhbml0IGJsb2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiQ2h5YmEgcMWZaSDEjXRlbsOtOiBuZWx6ZSBzZSBwb3N1bm91dCBuYSBibG9rIHbCoHNvdWJvcnUg4oCeJXPigJxcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiQ2h5YmEgcMWZaSDEjXRlbsOtOiBjaHlibsO9IGJsb2sgdsKgc291Ym9ydSDigJ4lc+KAnFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyJWbml0xZluw60gY2h5YmE6IHBva3VzIG8gesOhcGlzIGNoeWJuw6lobyBibG9rdS5cbiIKKyLFvcOhZG9zdCBvwqB6w6FwaXMgaWdub3JvdsOhbmEuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAiY2h5YmEgcMWZaSBwb3N1bnUgdWthem92w6F0a2EgdmUgd3JpdGVfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJDaHliYSBwxZlpIHrDoXBpc3U6IGNoeWJuw70gYmxvayB2wqBzb3Vib3J1IOKAniVz4oCcXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICJjaHliYSBwxZlpIHBvc3VudSB1a2F6b3bDoXRrYSB2ZSB3cml0ZV9zdXBlcl9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAic3VwZXJibG9rIG5lbHplIHphcHNhdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAibWFwdSBpLXV6bMWvIG5lbHplIHphcHNhdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU4Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJtYXB1IHrDs24gbmVsemUgemFwc2F0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJpLXV6bHkgbmVsemUgemFwc2F0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1ODcKK21zZ2lkICJzZWVrIGZhaWxlZCIKK21zZ3N0ciAiY2h5YmEgcMWZaSBwb3N1bnUgdWthem92w6F0a2EiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5MSBkaXNrLXV0aWxzL21rZnMubWluaXguYzozOTkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICJidWZmZXIgcHJvIHN1cGVyYmxvayBuZWx6ZSBhbG9rb3ZhdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTk0Cittc2dpZCAidW5hYmxlIHRvIHJlYWQgc3VwZXIgYmxvY2siCittc2dzdHIgInN1cGVyYmxvayBuZWx6ZSDEjcOtc3QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxMgorbXNnaWQgImJhZCBtYWdpYyBudW1iZXIgaW4gc3VwZXItYmxvY2siCittc2dzdHIgInN1cGVyYmxvayBvYnNhaHVqZSBjaHlibsOpIG1hZ2lja8OpIMSNw61zbG8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNAorbXNnaWQgIk9ubHkgMWsgYmxvY2tzL3pvbmVzIHN1cHBvcnRlZCIKK21zZ3N0ciAiUG9kcG9yb3bDoW55IGpzb3UgcG91emUgMWtpbG9iYWp0b3bDqSBibG9reS96w7NueSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE2Cittc2dpZCAiYmFkIHNfaW1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgInN1cGVyYmxvayBvYnNhaHVqZSBjaHlibm91IHBvbG/Fvmt1IHNfaW1hcF9ibG9ja3MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxOAorbXNnaWQgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJzdXBlcmJsb2sgb2JzYWh1amUgY2h5Ym5vdSBwb2xvxb5rdSBzX3ptYXBfYmxvY2tzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjUKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiCittc2dzdHIgIkJ1ZmZlciBwcm8gbWFwdSBpLXV6bMWvIG5lbHplIGFsb2tvdmF0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjgKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAiQnVmZmVyIHBybyBtYXB1IHrDs24gbmVsemUgYWxva292YXQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzMworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiQnVmZmVyIHBybyBpLXV6bHkgbmVsemUgYWxva292YXQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICJCdWZmZXIgcHJvIHBvxI3DrXRhZGxvIGktdXpsxa8gbmVsemUgYWxva292YXQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIkJ1ZmZlciBwcm8gcG/EjcOtdGFkbG8gesOzbiBuZWx6ZSBhbG9rb3ZhdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICJNYXB1IGktdXpsxa8gbmVsemUgxI3DrXN0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDMKK21zZ2lkICJVbmFibGUgdG8gcmVhZCB6b25lIG1hcCIKK21zZ3N0ciAiTWFwdSB6w7NuIG5lbHplIMSNw61zdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ1Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGVzIgorbXNnc3RyICJJLXV6bHkgbmVsemUgxI3DrXN0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIlZhcm92w6Fuw606IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiaS11emzFrzogJWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGJsb2Nrc1xuIgorbXNnc3RyICJibG9rxa86ICVsZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIlBydm7DrV96w7NuYV9kYXQ9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiVmVsaWtvc3RfesOzbnk9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIk1heHZlbGlrb3N0PSVsZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBzdGF0ZT0lZFxuIgorbXNnc3RyICJTdGF2IHN5c3TDqW11IHNvdWJvcsWvPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzMgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1hcmtlZCB1bnVzZWQsIGJ1dCB1c2VkIGZvciBmaWxlICclcydcbiIKK21zZ3N0ciAiSS11emVsICVkIGplIG96bmHEjWVuIGpha28gbmVwb3XFvsOtdmFuw70sIGFsZSBqZSBwb3XFvml0IHBybyBzb3Vib3Ig4oCeJXPigJxcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICJPem5hxI1lbiBqYWtvIHBvdcW+w612YW7DvSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc0OAorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZmlsZSBgJXMnIGhhcyBtb2RlICUwNW9cbiIKK21zZ3N0ciAiVHlwIHNvdWJvcnUg4oCeJXPigJwgamUgJTA1b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIlZhcm92w6Fuw606IHBvxI1ldCBpLXV6bMWvIGplIHDFmcOtbGnFoSB2ZWxpa8O9LlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAicm9vdCBpLXV6ZWwgbmVuw60gYWRyZXPDocWZZW0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc4OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgaGFzIGJlZW4gdXNlZCBiZWZvcmUuIE5vdyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJCbG9rIGJ5bCBwb3XFvml0IGppxb4gcMWZZWR0w61tLiBOeW7DrSB2wqBzb3Vib3J1IOKAniVz4oCcLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzkwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU1CisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTAKK21zZ2lkICJDbGVhciIKK21zZ3N0ciAiU21hemF0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iCittc2dzdHIgIkJsb2sgJWQgdsKgc291Ym9ydSDigJ4lc+KAnCBqZSBvem5hxI1lbiBqYWtvIG5lcG91xb7DrXZhbsO9LiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzNQorbXNnaWQgIkNvcnJlY3QiCittc2dzdHIgIk9wcmF2aXQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiQWRyZXPDocWZIOKAniVz4oCcIG9ic2FodWplIHBybyBzb3Vib3Ig4oCeJS4qc+KAnCBjaHlibsOpIMSNw61zbG8gaS11emx1LiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDQKK21zZ2lkICIgUmVtb3ZlIgorbXNnc3RyICIgT2RzdHJhbml0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCittc2dzdHIgIiVzOiBjaHlibsO9IGFkcmVzw6HFmTog4oCeLuKAnCBuZW7DrSBwcnZuw61cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCittc2dzdHIgIiVzOiBjaHlibsO9IGFkcmVzw6HFmTog4oCeLi7igJwgbmVuw60gZHJ1aMO9XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTExOQorbXNnaWQgImludGVybmFsIGVycm9yIgorbXNnc3RyICJ2bml0xZluw60gY2h5YmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogc2l6ZSA8IDMyIgorbXNnc3RyICIlczogY2h5Ym7DvSBhZHJlc8OhxZk6IHZlbGlrb3N0IDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAiY2h5YmEgcMWZaSBwb3N1bnUgdWthem92w6F0a2EgdiBiYWRfem9uZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICJNw7NkIEktdXpsdSAlZCBuZW7DrSBzbWF6w6FuLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjA5CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG5vdCB1c2VkLCBtYXJrZWQgdXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiSS11emVsICVkIG5lbsOtIHBvdcW+w612w6FuIGEgdiBiaXRtYXDEmyBvem5hxI1lbiBqYWtvIHBvdcW+w612YW7DvS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCB1c2VkLCBtYXJrZWQgdW51c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJJLXV6ZWwgJWQgamUgcG91xb7DrXbDoW4gYSB2IGJpdG1hcMSbIG96bmHEjWVuIGpha28gbmVwb3XFvsOtdmFuw70uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTYKK21zZ2lkICJTZXQiCittc2dzdHIgIk5hc3Rhdml0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJLXV6ZWwgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIG5hcG/EjcOtdMOhbm89JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgIk5hc3Rhdml0IGlfbmxpbmtzIG5hIHBvxI1ldCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG1hcmtlZCBpbiB1c2UsIG5vIGZpbGUgdXNlcyBpdC4iCittc2dzdHIgIlrDs25hICVkaTogamUgb3puYcSNZW5hIGpha28gcG91xb7DrXZhbsOhIGEgxb7DoWRuw6kgc291Ym9yeSBqaSBuZXBvdcW+w612YWrDrS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNgorbXNnaWQgIlVubWFyayIKK21zZ3N0ciAiT2R6bmHEjWl0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlrDs25hICVkOiBqZSBwb3XFvsOtdmFuw6EsIG5hcG/EjcOtdMOhbm89JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWsOzbmEgJWQ6IG5lbsOtIHBvdcW+w612YW7DoSwgbmFwb8SNw610w6Fubz0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg5IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3NworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc5Cittc2dpZCAiYmFkIGlub2RlIHNpemUiCittc2dzdHIgImNoeWJuw6EgdmVsaWtvc3QgaS11emx1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjkxCittc2dpZCAiYmFkIHYyIGlub2RlIHNpemUiCittc2dzdHIgImNoeWJuw6EgdmVsaWtvc3QgdjIgaS11emx1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzE3Cittc2dpZCAibmVlZCB0ZXJtaW5hbCBmb3IgaW50ZXJhY3RpdmUgcmVwYWlycyIKK21zZ3N0ciAib3ByYXZ5IHMgw7rEjWFzdMOtIHXFvml2YXRlbGUgdnnFvmFkdWrDrSB0ZXJtaW7DoWwiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJyVzJzogJXMiCittc2dzdHIgIuKAniVz4oCcIG5lbHplIG90ZXbFmcOtdDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgY2xlYW4sIG5vIGNoZWNrLlxuIgorbXNnc3RyICIlcyBqZSDEjWlzdMOpLCBvdsSbxZlvdsOhbsOtIHZ5bmVjaMOhbm8uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9yY2luZyBmaWxlc3lzdGVtIGNoZWNrIG9uICVzLlxuIgorbXNnc3RyICJLb250cm9sYSBzeXN0w6ltdSBzb3Vib3LFryBuYSAlcyB2eW51Y2VuYS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIG9uICVzIGlzIGRpcnR5LCBuZWVkcyBjaGVja2luZy5cbiIKK21zZ3N0ciAiU3lzdMOpbSBzb3Vib3LFryBuYSAlcyBqZSDFoXBpbmF2w70sIGplIHTFmWViYSBqZWogemtvbnRyb2xvdmF0LlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorIlxuIgorInBvdcW+w612YW7DvWNoIGktdXpsxa86ICU2bGQgKCVsZCUlKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiU2bGQgem9uZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgInBvdcW+w612YW7DvWNoIHrDs246ICU2bGQgKCVsZCUlKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmQgcmVndWxhciBmaWxlc1xuIgorIiU2ZCBkaXJlY3Rvcmllc1xuIgorIiU2ZCBjaGFyYWN0ZXIgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGJsb2NrIGRldmljZSBmaWxlc1xuIgorIiU2ZCBsaW5rc1xuIgorIiU2ZCBzeW1ib2xpYyBsaW5rc1xuIgorIi0tLS0tLVxuIgorIiU2ZCBmaWxlc1xuIgorbXNnc3RyICIiCisiXG4iCisiIG9iecSNZWpuw71jaCBzb3Vib3LFrzogICU2ZFxuIgorIiBhZHJlc8OhxZnFrzogICAgICAgICAgICAlNmRcbiIKKyIgem5ha292w71jaCB6YcWZw616ZW7DrTogICU2ZFxuIgorIiBibG9rb3bDvWNoIHphxZnDrXplbsOtOiAgJTZkXG4iCisiIG9ka2F6xa86ICAgICAgICAgICAgICAlNmRcbiIKKyIgc3ltYm9saWNrw71jaCBvZGthesWvOiAlNmRcbiIKKyItLS0tLS1cbiIKKyJzb3Vib3LFrzogICAgICAgICAgICAgICU2ZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiRklMRSBTWVNURU0gSEFTIEJFRU4gQ0hBTkdFRFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJTWVNUw4lNIFNPVUJPUsWuIEJZTCBaTcSaTsSaTiBcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIG9wZW46ICVzXG4iCittc2dzdHIgIiVzOiAlcyBuZWx6ZSBvdGV2xZnDrXRcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzZWVrIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBjaHliYSB6w6FwaXN1IG5hICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogY2h5YmEgesOhcGlzdSBuYSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9yIGNvdW50OiAlZCwgc2VjdG9yIHNpemU6ICVkXG4iCittc2dzdHIgInBvxI1ldCBzZWt0b3LFrzogJWQsIHZlbGlrb3N0IHNla3RvcnU6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiBjaHliYSBwxZlpIGFuYWzDvXplIHDFmWVww61uYcSNxa9cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLW9icmF6XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisiUG91xb5pdMOtOiAlcyBbLXZdIFstTiBwb8SNZXQgaS11emzFr10gWy1WIG7DoXpldiBzdmF6a3VdXG4iCisiICAgICAgIFstRiBuw6F6ZXYgc3NdIHphxZnDrXplbsOtIFtwb8SNZXQgYmxva8WvXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTMwCittc2dpZCAidm9sdW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgIm7DoXpldiBzdmF6a3UgamUgcMWZw61sacWhIGRsb3Vow70iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzcKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAibsOhemV2IHNzIGplIHDFmcOtbGnFoSBkbG91aMO9IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IGRldmljZSAlcyIKK21zZ3N0ciAidm9sw6Fuw60gc3RhdCBwcm8gemHFmcOtemVuw60gJXMgc2VsaGFsbyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBibG9jayBzcGVjaWFsIGRldmljZSIKK21zZ3N0ciAiJXMgbmVuw60gYmxva292w71tIHphxZnDrXplbsOtbSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE3MSBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMiCittc2dzdHIgIiVzIG5lbHplIG90ZXbFmcOtdCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgIm5lbHplIHpqaXN0aXQgdmVsaWtvc3QgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgImFyZ3VtZW50IHBvxI1ldCBibG9rxa8gamUgcMWZw61sacWhIHZlbGlrw70sIG1heGltdW0gamUgJWxsdSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIwMgorbXNnaWQgInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiCittc2dzdHIgInDFmcOtbGnFoSBtbm9obyBpLXV6bMWvwqDigJMgbWF4aW11bSBqZSA1MTIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAibmVkb3N0YXRlayBtw61zdGEsIGplIHTFmWViYSBhbGVzcG/FiCAlbGx1IGJsb2vFryIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICJaYcWZw616ZW7DrTogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNAorIywgYy1mb3JtYXQKK21zZ2lkICJWb2x1bWU6IDwlLTZzPlxuIgorbXNnc3RyICJTdmF6ZWs6IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIk7DoXpldlNTOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIlZlbGlrb3N0Qmxva3U6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gMSBibG9jaylcbiIKK21zZ3N0ciAiUG/EjWV0IGktdXpsxa86ICVkICh2IDEgYmxva3UpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gJWxsZCBibG9ja3MpXG4iCittc2dzdHIgIkktdXpsxa86ICVkICh2ICVsbGQgYmxvY8OtY2gpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tzOiAlbGxkXG4iCittc2dzdHIgIkJsb2vFrzogJWxsZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlIGVuZDogJWQsIERhdGEgZW5kOiAlZFxuIgorbXNnc3RyICJLb25lYyBpLXV6bMWvOiAlZCwgS29uZWMgZGF0OiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM5Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzdXBlcmJsb2NrIgorbXNnc3RyICJjaHliYSBwxZlpIHrDoXBpc3Ugc3VwZXJibG9rdSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI1OQorbXNnaWQgImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIKK21zZ3N0ciAiY2h5YmEgcMWZaSB6w6FwaXN1IGtvxZllbm92w6lobyBpLXV6bHUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjQKK21zZ2lkICJlcnJvciB3cml0aW5nIGlub2RlIgorbXNnc3RyICJjaHliYSBwxZlpIHrDoXBpc3UgaS11emx1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAidm9sw6Fuw60gc2VlayBzZWxoYWxvIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjczCittc2dpZCAiZXJyb3Igd3JpdGluZyAuIGVudHJ5IgorbXNnc3RyICJjaHliYSBwxZlpIHrDoXBpc3UgLiBwb2xvxb5reSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3NworbXNnaWQgImVycm9yIHdyaXRpbmcgLi4gZW50cnkiCittc2dzdHIgImNoeWJhIHDFmWkgesOhcGlzdSAuLiBwb2xvxb5reSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjbG9zaW5nICVzIgorbXNnc3RyICJDaHliYSBwxZlpIHphdsOtcsOhbsOtICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogbWtmcyBbLVZdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBkZXZpY2UgW3NpemVdXG4iCittc2dzdHIgIlBvdcW+aXTDrTogbWtmcyBbLVZdIFstdCBzc3R5cF0gW3NzLXZvbGJ5XSB6YcWZw616ZW7DrSBbdmVsaWtvc3RdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjg4IGRpc2stdXRpbHMvbWtmcy5jOjk2IGZkaXNrL2NmZGlzay5jOjM1MworIzogZ2V0b3B0L2dldG9wdC5jOjg2IGdldG9wdC9nZXRvcHQuYzo5NiBsb2dpbi11dGlscy93YWxsLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPdXQgb2YgbWVtb3J5IVxuIgorbXNnc3RyICIlczogTmVkb3N0YXRlayBwYW3Em3RpIVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtmcyAoJXMpXG4iCittc2dzdHIgIm1rZnMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1oXSBbLXZdIFstYiBibGtzaXplXSBbLWUgZWRpdGlvbl0gWy1OIGVuZGlhbl0gWy1pIGZpbGVdIFstbiAiCisibmFtZV0gZGlybmFtZSBvdXRmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC12ICAgICAgICAgYmUgdmVyYm9zZVxuIgorIiAtRSAgICAgICAgIG1ha2UgYWxsIHdhcm5pbmdzIGVycm9ycyAobm9uLXplcm8gZXhpdCBzdGF0dXMpXG4iCisiIC1iIGJsa3NpemUgdXNlIHRoaXMgYmxvY2tzaXplLCBtdXN0IGVxdWFsIHBhZ2Ugc2l6ZVxuIgorIiAtZSBlZGl0aW9uIHNldCBlZGl0aW9uIG51bWJlciAocGFydCBvZiBmc2lkKVxuIgorIiAtTiBlbmRpYW4gIHNldCBjcmFtZnMgZW5kaWFubmVzcyAoYmlnfGxpdHRsZXxob3N0KSwgZGVmYXVsdCBob3N0XG4iCisiIC1pIGZpbGUgICAgaW5zZXJ0IGEgZmlsZSBpbWFnZSBpbnRvIHRoZSBmaWxlc3lzdGVtIChyZXF1aXJlcyA+PSAyLjQuMClcbiIKKyIgLW4gbmFtZSAgICBzZXQgbmFtZSBvZiBjcmFtZnMgZmlsZXN5c3RlbVxuIgorIiAtcCAgICAgICAgIHBhZCBieSAlZCBieXRlcyBmb3IgYm9vdCBjb2RlXG4iCisiIC1zICAgICAgICAgc29ydCBkaXJlY3RvcnkgZW50cmllcyAob2xkIG9wdGlvbiwgaWdub3JlZClcbiIKKyIgLXogICAgICAgICBtYWtlIGV4cGxpY2l0IGhvbGVzIChyZXF1aXJlcyA+PSAyLjMuMzkpXG4iCisiIGRpcm5hbWUgICAgcm9vdCBvZiB0aGUgZmlsZXN5c3RlbSB0byBiZSBjb21wcmVzc2VkXG4iCisiIG91dGZpbGUgICAgb3V0cHV0IGZpbGVcbiIKK21zZ3N0ciAiIgorIlBvdcW+aXTDrTogJXMgWy1oXSBbLXZdIFstYiBWRUxJS09TVF9CTE9LVV0gWy1lIFZFUlpFXSBbLU4gRU5ESUFOSVRBXVxuIgorIiAgICAgICAgICAgIFstaSBTT1VCT1JdIFstbiBOw4FaRVZdIE7DgVpFVl9BRFJFU8OBxZhFIFbDnVNUVVBOw41fU09VQk9SXG4iCisiIC1oICAgICAgICAgdnlww63FoWUgdHV0byBuw6Fwb3bEm2R1XG4iCisiIC12ICAgICAgICAgdXBvdsOtZGFuw70gcmXFvmltXG4iCisiIC1FICAgICAgICAgdmFyb3bDoW7DrSAgYnVkb3UgcG92YcW+b3bDoW5hIHphIGNoeWJ5IChuZW51bG92w70gbsOhdnJhdG92w70ga8OzZClcbiIKKyIgLWIgVkVMSUtPU1RfQkxPS1VcbiIKKyIgICAgICAgICAgICBwb3XFvmlqZSB0dXRvIFZFTElLT1NUX0JMT0tVLCBtdXPDrSBiw710IHJvdm5hIHZlbGlrb3N0aSBzdHLDoW5reVxuIgorIiAtZSBWRVJaRSAgIG5hc3RhdsOtIMSNw61zbG8gdmVyemUgW2VkaWNlXSAoc291xI3DoXN0IGZzaWQpXG4iCisiIC1OIEVORElBTklUQVxuIgorIiAgICAgICAgICAgIHZ5YmVyZSBlbmRpYW5pdHUgY3JhbWZzICjigJ5iaWfigJwgW3ZlbGvDoV0gfCDigJ5saXR0bGXigJwgW21hbMOhXSB8XG4iCisiICAgICAgICAgICAg4oCeaG9zdOKAnCBbamFrbyB0ZW50byBzdHJval0pLCBpbXBsaWNpdG7EmyBob3N0XG4iCisiIC1pIFNPVUJPUiAgdmxvxb7DrSBvYnJheiB6ZSBTT1VCT1JVIGRvIHNvdWJvcm92w6lobyBzeXN0w6ltdSAodnnFvmFkdWplID49ICIKKyIyLjQuMClcbiIKKyIgLW4gTsOBWkVWICAgbmFzdGF2w60gbsOhemV2IHNvdWJvcm92w6lobyBzeXN0w6ltdSBjcmFtZnNcbiIKKyIgLXAgICAgICAgICBvZHNhZMOtIG/CoCVkIGJ5dMWvIGt2xa9saSBib290b3ZhY8OtbXUga8OzZHVcbiIKKyIgLXMgICAgICAgICBzZcWZYWTDrSBwb2xvxb5reSB2wqBhZHJlc8OhxZnDrWNoIChzdGFyw6Egdm9sYmEsIGlnbm9yb3bDoW5vKVxuIgorIiAteiAgICAgICAgIHZ5dHZvxZnDrSBleHBsaWNpdG7DrSBkw61yeSAodnnFvmFkdWplID49IDIuMy4zOSlcbiIKKyIgTsOBWkVWX0FEUkVTw4HFmEVcbiIKKyIgICAgICAgICAgICBrb8WZZW4gc291Ym9yb3bDqWhvIHN5c3TDqW11LCBrdGVyw70gbcOhIGLDvXQgemtvbXByaW1vdsOhblxuIgorIiBWw51TVFVQTsONX1NPVUJPUlxuIgorIiAgICAgICAgICAgIHbDvXN0dXBuw60gc291Ym9yXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIkJ5bCBuYWxlemVuIHZlbG1pIGRsb3Vow70gKCV6dSBiYWp0xa8pIG7DoXpldiBzb3Vib3J1IOKAniVz4oCcLlxuIgorIiBQcm9zw61tLCB6dnnFoXRlIE1BWF9JTlBVVF9OQU1FTEVOIHbCoG1rY3JhbWZzLmMgYSB6bm92dSBwxZllbG/FvnRlLiBLb27EjcOtbS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICJTb3Vib3JvdsO9IHN5c3TDqW0gamUgcMWZw61sacWhIHZlbGvDvS4gS29uxI3DrW0uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQUlFRUU6IGJsb2NrIFwiY29tcHJlc3NlZFwiIHRvID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorbXNnc3RyICJBSkFKOiBibG9rIOKAnnprb21wcmltb3bDoW5v4oCcID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2xkIGJ5dMWvKVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ3Vlc3RpbWF0ZSBvZiByZXF1aXJlZCBzaXplICh1cHBlciBib3VuZCkgaXMgJWxsZE1CLCBidXQgbWF4aW11bSAiCisiaW1hZ2Ugc2l6ZSBpcyAldU1CLiAgV2UgbWlnaHQgZGllIHByZW1hdHVyZWx5LlxuIgorbXNnc3RyICIiCisidmFyb3bDoW7DrTogcG/FvmFkb3ZhbsOhIHZlbGlrb3N0IChob3Juw60gaHJhbmljZSkgamUgb2RoYWRvdsOhbmEgbmEgJWxsZMKgTUIsICIKKyJqZW7FvmUgbmVqdsSbdMWhw60gdmVsaWtvc3Qgb2JyYXp1IGplICV1wqBNQi4gTcWvxb5lbWUgemVtxZnDrXQgcMWZZWTEjWFzbsSbLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiTWFwYSBvYnJhenUgUk9NIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiWmFocm51amk6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlyZWN0b3J5IGRhdGE6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJBZHJlc8OhxZlvdsOhIGRhdGE6ICV6ZMKgYmFqdMWvXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICJDZWxrZW06ICV6ZMKga2lsb2JhanTFr1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN1cGVyIGJsb2NrOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiU3VwZXJibG9rOiAlemTCoGJhanTFr1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNSQzogJXhcbiIKK21zZ3N0ciAiQ1JDOiAleFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UgYWxsb2NhdGVkIGZvciBST00gaW1hZ2UgKCVsbGQgYWxsb2NhdGVkLCAlenUgdXNlZClcbiIKK21zZ3N0ciAiIgorIlBybyBvYnJheiBST00gbmVwxZlpZMSbbGVuIGRvc3RhdGVrIHByb3N0b3J1ICglbGxkIHDFmWlkxJtsZW5vLCAlenUgcG91xb5pdG8pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIk9icmF6IFJPTSIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIgorbXNnc3RyICJaw6FwaXMgb2JyYXp1IFJPTSBzZWxoYWwgKCV6ZCAlemQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZW5hbWVzIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMuXG4iCittc2dzdHIgInZhcm92w6Fuw606IGptw6luYSBzb3Vib3LFryB6a3LDoWNlbmEgbmEgMjU2IGJhanTFry5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlcyB3ZXJlIHNraXBwZWQgZHVlIHRvIGVycm9ycy5cbiIKK21zZ3N0ciAidmFyb3bDoW7DrTogc291Ym9yeSBieWx5IHDFmWVza2/EjWVueSBrdsWvbGkgY2h5YsOhbS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIHNpemVzIHRydW5jYXRlZCB0byAlbHVNQiAobWludXMgMSBieXRlKS5cbiIKK21zZ3N0ciAidmFyb3bDoW7DrTogdmVsaWtvc3RpIHNvdWJvcnUgemtyw6FjZW55IG5hICUnbHXCoE1CIChtw61udXMgMcKgYmFqdCkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IHVpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAidmFyb3bDoW7DrTogVUlEIHprcsOhY2VuYSBuYSAldSBiaXTFry4gKE3Fr8W+ZSBtw610IGRvcGFkIG5hIGJlenBlxI1ub3N0LilcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ2lkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICJ2YXJvdsOhbsOtOiBHSUQgemtyw6FjZW5hIG5hICV1IGJpdMWvLiAoTcWvxb5lIG3DrXQgZG9wYWQgbmEgYmV6cGXEjW5vc3QuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorIlZBUk9Ww4FOw406IMSNw61zbGEgemHFmcOtemVuw60gemtyw6FjZW5hIG5hICV1IGJpdMWvLiBUb3RvIGppc3TEmyB6bmFtZW7DoSwgxb5lICIKKyJuxJtrdGVyw6lcbiIKKyJzb3Vib3J5IHphxZnDrXplbsOtIGJ1ZG91IMWhcGF0bsOpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstYyB8IC1sIGZpbGVuYW1lXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFsgLW4gXSBbLWMgfCAtbCBzb3Vib3JdIFstblhYXSBbLWlYWF0gL2Rldi9uw6F6ZXYgW2Jsb2t5XVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBhIGZpbGVzeXN0ZW0gaGVyZSEiCittc2dzdHIgIiVzIGplIHDFmWlwb2plbm87IHN5c3TDqW0gc291Ym9yxa8gemRlIHZ5dHbDocWZZXQgbmVidWR1ISIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTg4Cittc2dpZCAic2VlayB0byBib290IGJsb2NrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgImNoeWJhIHDFmWkgcG9zdW51IHVrYXpvdsOhdGthIG5hIHN0YXJ0b3ZhY8OtIGJsb2sgdmUgd3JpdGVfdGFibGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTAKK21zZ2lkICJ1bmFibGUgdG8gY2xlYXIgYm9vdCBzZWN0b3IiCittc2dzdHIgInN0YXJ0b3ZhY8OtIGJsb2sgbmVsemUgc21hemF0IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTIKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgImNoeWJhIHDFmWkgcG9zdW51IHVrYXpvdsOhdGthIHZlIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk2Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAibWFwdSBpLXV6bMWvIG5lbHplIHphcHNhdCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk4Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJtYXB1IHrDs24gbmVsemUgemFwc2F0IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDAKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJpLXV6bHkgbmVsemUgemFwc2F0IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgImNoeWJhIHDFmWkgesOhcGlzdSB2ZSB3cml0ZV9ibG9jayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjE3IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjI5MQorIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MzQwCittc2dpZCAidG9vIG1hbnkgYmFkIGJsb2NrcyIKK21zZ3N0ciAicMWZw61sacWhIG1ub2hvIGNoeWJuw71jaCBibG9rxa8iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgIm5lZG9zdGF0ZWsga29yZWt0bsOtY2ggYmxva8WvIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDAKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVycyBmb3IgbWFwcyIKK21zZ3N0ciAiYnVmZmVyeSBwcm8gbWFweSBuZWx6ZSBhbG9rb3ZhdCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQ5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJidWZmZXJ5IHBybyBpLXV6bHkgbmVsemUgYWxva292YXQiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTWF4c2l6ZT0lbGRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIk1heHZlbGlrb3N0PSVsZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NjkKK21zZ2lkICJzZWVrIGZhaWxlZCBkdXJpbmcgdGVzdGluZyBvZiBibG9ja3MiCittc2dzdHIgImNoeWJhIHDFmWkgcG9zdW51IHVrYXpvdsOhdGthIHYgcHLFr2LEm2h1IGtvbnRyb2x5IGJsb2vFryIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICJOZXNwcsOhdm7DqSBob2Rub3R5IHYgZG9fY2hlY2s6IHByYXZkxJtwb2RvYm7EmyBjaHlieVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MDggZGlzay11dGlscy9ta3N3YXAuYzozMTUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBjaGVja19ibG9ja3MiCittc2dzdHIgImNoeWJhIHDFmWkgcG9zdW51IHVrYXpvdsOhdGthIHYgY2hlY2tfYmxvY2tzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MTcKK21zZ2lkICJiYWQgYmxvY2tzIGJlZm9yZSBkYXRhLWFyZWE6IGNhbm5vdCBtYWtlIGZzIgorbXNnc3RyICJjaHlibsOpIGJsb2t5IHDFmWVkIGRhdG92b3Ugb2JsYXN0w606IHN5c3TDqW0gc291Ym9yxa8gbmVsemUgdnl0dm/FmWl0IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiY2h5Ym7DvWNoIGJsb2vFrzogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIGJsb2NrXG4iCittc2dzdHIgImNoeWJuw71jaCBibG9rxa86IDFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgInNvdWJvciBjaHlibsO9Y2ggYmxva8WvIG5lbHplIG90ZXbFmcOtdCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgImNoeWJhIHZzdHVwdSB1wqDEjcOtc2xhIMWhcGF0bsOpaG8gYmxva3UgbmEgxZnDoWRrdSAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDAKK21zZ2lkICJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIKK21zZ3N0ciAic291Ym9yIHPCoGNoeWJuw71taSBibG9reSBuZWx6ZSBwxZllxI3DrXN0IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgImNoeWJhIHN0cnRvbDogcG/EjWV0IGJsb2vFryBuZWJ5bCB6YWTDoW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAibyAlcyBuZWx6ZSB6w61za2F0IGluZm9ybWFjZSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICIlcyBuZWx6ZSBvdGV2xZnDrXQiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIKK21zZ3N0ciAibmVsemUgemppc3RpdCB2ZWxpa29zdCBzZWt0b3J1ICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgInZlbGlrb3N0IGJsb2t1IGplIG1lbsWhw60gbmXFviB2ZWxpa29zdCBmeXppY2vDqWhvIHNla3RvcnUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgIm5lbHplIHpqaXN0aXQgdmVsaWtvc3QgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJ3aWxsIG5vdCB0cnkgdG8gbWFrZSBmaWxlc3lzdGVtIG9uICclcyciCittc2dzdHIgIm5lYnVkdSBzZSBwb2tvdcWhZXQgdnl0dm/FmWl0IHN5c3TDqW0gc291Ym9yxa8gbmEg4oCeJXPigJwiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2NQorbXNnaWQgIm51bWJlciBvZiBibG9ja3MgdG9vIHNtYWxsIgorbXNnc3RyICJwb8SNZXQgYmxva8WvIGplIHDFmcOtbGnFoSBtYWzDvSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICJaYWRhbsOhIHZlbGlrb3N0IHN0csOhbmt5ICglZCkgamUgY2h5Ym7DoS5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiUG91xb7DrXbDoW0gemFkYW5vdSB2ZWxpa29zdCBzdHLDoW5reSAlZCBtw61zdG8gc3lzdMOpbW92w6kgaG9kbm90eSAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiQ2h5Ym7DoSB2ZWxpa29zdCBobGF2acSNa3kgb2RrbMOhZGFjw61obyBzb3Vib3J1LCBqbWVub3ZrYSBuZXphcHPDoW5hLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICJMYWJlbCB3YXMgdHJ1bmNhdGVkLlxuIgorbXNnc3RyICJKbWVub3ZrYSBieWxhIHprcsOhY2VuYS5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gbGFiZWwsICIKK21zZ3N0ciAixb7DoWRuw6Egam1lbm92a2EsICIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdXVpZFxuIgorbXNnc3RyICLFvsOhZG7DqSBVVUlEXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKyJQb3XFvml0w606ICVzIFstY10gWy1wVkVMSUtPU1RfU1RSw4FOS1ldIFstTCBKTUVOT1ZLQV0gWy1VIFVVSURdIFpBxZjDjVpFTsONICIKKyJbQkxPS1ldXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICJwxZnDrWxpxaEgbW5vaG8gY2h5Ym7DvWNoIHN0csOhbmVrIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiTmVkb3N0YXRlayBwYW3Em3RpIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIHBhZ2VcbiIKK21zZ3N0ciAiY2h5Ym7DvWNoIHN0csOhbmVrOiAxXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSBiYWQgcGFnZXNcbiIKK21zZ3N0ciAiY2h5Ym7DvWNoIHN0csOhbmVrOiAlbHVcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MDIgZGlzay11dGlscy9ta3N3YXAuYzo0MzkgZGlzay11dGlscy9ta3N3YXAuYzo2NTkKK21zZ2lkICJ1bmFibGUgdG8gcmV3aW5kIHN3YXAtZGV2aWNlIgorbXNnc3RyICJvZGtsw6FkYWPDrSBwcm9zdG9yIG5lbHplIHDFmWV2aW5vdXQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCittc2dpZCAidW5hYmxlIHRvIGFsbG9jIG5ldyBsaWJibGtpZCBwcm9iZSIKK21zZ3N0ciAibmVsemUgYWxva292YXQgbm92w70gdGVzdCBsaWJibGtpZCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTUKK21zZ2lkICJ1bmFibGUgdG8gYXNzaWduIGRldmljZSB0byBsaWJsa2lkIHByb2JlIgorbXNnc3RyICJ6YcWZw616ZW7DrSBuZWx6ZSBwxZlpxZlhZGl0IGRvIHRlc3R1IGxpYmxraWQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQzCittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgInphdsOhZMSbY8OtIGJsb2t5IG5lbHplIHNtYXphdCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB3YXJuaW5nOiBkb24ndCBlcmFzZSBib290Yml0cyBzZWN0b3JzXG4iCittc2dzdHIgIiVzOiAlczogdmFyb3bDoW7DrTogbmVtYcW+dGUgemF2w6FkxJtjw60gc2VrdG9yeVxuIgorCisjIENvbnRpbnVhdGlvbiBvZiBwcmV2aW91cyBtZXNzYWdlCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgICglcyBwYXJ0aXRpb24gdGFibGUgZGV0ZWN0ZWQpLiAiCittc2dzdHIgIiAgICAgICAgKG5hbGV6ZW5hIHRhYnVsa2Egcm96ZMSbbGVuw60gZGlza3UgdHlwdSAlcykuICIKKworIyBBbHRlcm5hdGUgY29udGludWF0aW9uIG9mIHByZXZpb3VzIG1lc3NhZ2UKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgb24gd2hvbGUgZGlzay4gIgorbXNnc3RyICIgICAgICAgIG5hIGNlbMOpbSBkaXNrdS4gIgorCisjIEFsdGVybmF0ZSBjb250aW51YXRpb24gb2YgcHJldmlvdXMgbWVzc2FnZQorIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoY29tcGlsZWQgd2l0aG91dCBsaWJibGtpZCkuICIKK21zZ3N0ciAiICAgICAgICAocMWZZWxvxb5lbm8gYmV6IGxpYmJsa2lkKS4gIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjUyNAorIywgYy1mb3JtYXQKK21zZ2lkICIlMSRzOiB3YXJuaW5nOiBpZ25vcmUgLVUgKFVVSURzIGFyZSB1bnN1cHBvcnRlZCBieSAlMSRzKVxuIgorbXNnc3RyICIlMSRzOiB2YXJvdsOhbsOtOiBpZ25vcnVqaSAtVSAoJTEkcyBuZXBvZHBvcnVqZSBVVUlEKVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZG9lcyBub3Qgc3VwcG9ydCBzd2Fwc3BhY2UgdmVyc2lvbiAlZC5cbiIKK21zZ3N0ciAiJXM6IG5lcG9kcG9ydWplIG9ka2zDoWRhY8OtIHByb3N0b3IgdmVyemUgJWQuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQ4Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgImNoeWJhOiByb3pib3IgVVVJRCBzZWxoYWwiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIKK21zZ3N0ciAiJXM6IGNoeWJhOiBLZGUgbcOhbSB2eXR2b8WZaXQgb2RrbMOhZGFjw60gcHJvc3Rvcj9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBjaHliYTogdmVsaWtvc3QgJWxsdeKAr0tpQiBqZSB2xJt0xaHDrSBuZcW+IHZlbGlrb3N0IHphxZnDrXplbsOtICVsbHXigK9LaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzd2FwIGFyZWEgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJWxkIEtpQlxuIgorbXNnc3RyICIlczogY2h5YmE6IG9ka2zDoWRhY8OtaG8gcHJvc3RvciBwb3TFmWVidWplIGFzcG/FiCAlbGTigK9LaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiB2YXJvdsOhbsOtOiB6a3JhY3VqaSBvZGtsw6FkYWPDrSBwcm9zdG9yIG5hICVsbHXigK9LaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiB3aWxsIG5vdCB0cnkgdG8gbWFrZSBzd2FwZGV2aWNlIG9uICclcydcbiIKK21zZ3N0ciAiJXM6IGNoeWJhOuKAr05lYnVkdSBzZSBwb2tvdcWhZXQgdnl0dm/FmWl0IG9ka2zDoWRhY8OtIHphxZnDrXplbsOtIG5hIOKAniVz4oCcXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBzd2Fwc3BhY2UuXG4iCittc2dzdHIgIiVzOiBjaHliYTogJXMgamUgcMWZaXBvamVubzsgb2RrbMOhZGFjw60gcHJvc3RvciB6ZGUgbmV2eXR2b8WZw61tLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiT2RrbMOhZGFjw60gcHJvc3RvciBuZWx6ZSBuYXN0YXZpdDogbmXEjWl0ZWxuw6kiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIlZ5dHbDocWZw61tIG9ka2zDoWRhY8OtIHByb3N0b3IgdmVyemUgMSwgdmVsaWtvc3QgPSAlbGx14oCvS2lCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiJXM6ICVzOiBzdHLDoW5rdSBzZSBzaWduYXR1cm91IG5lbHplIHphcHNhdDogJXMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICJ2b2zDoW7DrSBmc3luYyBzZWxoYWxvIgorCisjIHNlbGludXggZmlsZSBsYWJlbCAtIHNlbGludXhvdsOhIG7DoWxlcGthL3puYcSNa2EvxaF0w610ZWsgc291Ym9ydT8KKyMgVXDFmWVkbm9zdMWIdWppIHpuYcSNa3UKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIG9idGFpbiBzZWxpbnV4IGZpbGUgbGFiZWw6ICVzXG4iCittc2dzdHIgIiVzOiAlczogbmVsemUgesOtc2thdCBzZWxpbnV4b3ZvdSB6bmHEjWt1IHNvdWJvcnU6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCittc2dpZCAidW5hYmxlIHRvIG1hdGNocGF0aGNvbigpIgorbXNnc3RyICJtYXRjaHBhdGhjb24oKSBuZWx6ZSBwcm92w6lzdCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTMKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIm5vdsO9IGtvbnRleHQgc2VsaW51eHUgbmVsemUgdnl0dm/FmWl0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5NQorbXNnaWQgImNvdWxkbid0IGNvbXB1dGUgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJuZWRva8Ohxb5pIHZ5cG/EjcOtc3Qga29udGV4dCBzZWxpbnV4dSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo3MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byByZWxhYmVsICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICIlcyBuZWx6ZSB6bcSbbml0IGptZW5vdmt1IHrCoCVzIG5hICVzOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgICVzICIKK21zZ3N0ciAiIgorIlBvdcW+aXTDrTpcbiIKKyIgICVzICIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKyJaYcWZw616ZW7DrSDigJ4lc+KAnCBqZSDFmcOtZGljw60gc3lyb3bDqSB6YcWZw616ZW7DrSAocG91xb5panRlIHJhdzxOPiwga2RlIDxOPiBqZSB2xJt0xaHDrSAiCisibmXFviBudWxhKVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIGJsb2NrIGRldmljZSAnJXMnICglcylcbiIKK21zZ3N0ciAiQmxva292w6kgemHFmcOtemVuw60g4oCeJXPigJwgbmVsemUgbmFsw6l6dCAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICJaYcWZw616ZW7DrSDigJ4lc+KAnCBuZW7DrSBibG9rb3bDvW0gemHFmcOtemVuw61tXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIG1hc3RlciByYXcgZGV2aWNlICciCittc2dzdHIgIkhsYXZuw60gc3lyb3bDqSB6YcWZw616ZW7DrSBuZWx6ZSBvdGV2xZnDrXQg4oCeIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIlN5cm92w6kgemHFmcOtemVuw60g4oCeJXPigJwgbmVsemUgbmFsw6l6dCAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iCittc2dzdHIgIlN5cm92w6kgemHFmcOtemVuw60g4oCeJXPigJwgbmVuw60gem5hayB6bmFrb3bDvW0gemHFmcOtemVuw61tXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIHJhdyBkZXZcbiIKK21zZ3N0ciAiWmHFmcOtemVuw60g4oCeJXPigJwgbmVuw60gc3lyb3bDvW0gemHFmcOtemVuw61tXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHF1ZXJ5aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICJDaHliYSBwxZlpIGRvdGF6b3bDoW7DrSBzZSBuYSBzeXJvdsOpIHphxZnDrXplbsOpICglcylcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNDEgZGlzay11dGlscy9yYXcuYzoyNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmF3JWQ6XHRib3VuZCB0byBtYWpvciAlZCwgbWlub3IgJWRcbiIKK21zZ3N0ciAicmF3JWQ6XHRuYXBvamVubyBuYSBobGF2bsOtICVkLCB2ZWRsZWrFocOtICVkXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHNldHRpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIkNoeWJhIHDFmWkgbmFzdGF2b3bDoW7DrSBzeXJvdsOpaG8gemHFmcOtemVuw60gKCVzKVxuIgorCisjOiBmZGlzay9jZmRpc2suYzozNzggZmRpc2svY2ZkaXNrLmM6MjA4MworbXNnaWQgIlVudXNhYmxlIgorbXNnc3RyICJOZXBvdcW+aXRlbG7DqSIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgwIGZkaXNrL2NmZGlzay5jOjIwODUKK21zZ2lkICJGcmVlIFNwYWNlIgorbXNnc3RyICJWb2xuw70gcHJvc3RvciIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgzCittc2dpZCAiTGludXggZXh0MiIKK21zZ3N0ciAiTGludXggZXh0MiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg1Cittc2dpZCAiTGludXggZXh0MyIKK21zZ3N0ciAiTGludXggZXh0MyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg3Cittc2dpZCAiTGludXggWEZTIgorbXNnc3RyICJMaW51eCBYRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4OQorbXNnaWQgIkxpbnV4IEpGUyIKK21zZ3N0ciAiTGludXggSkZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTEKK21zZ2lkICJMaW51eCBSZWlzZXJGUyIKK21zZ3N0ciAiTGludXggUmVpc2VyRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU3Cittc2dpZCAiTGludXgiCittc2dzdHIgIkxpbnV4IgorCisjOiBmZGlzay9jZmRpc2suYzozOTYKK21zZ2lkICJPUy8yIEhQRlMiCittc2dzdHIgIk9TLzIgSFBGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk4Cittc2dpZCAiT1MvMiBJRlMiCittc2dzdHIgIk9TLzIgSUZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MDIKK21zZ2lkICJOVEZTIgorbXNnc3RyICJOVEZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBoYXMgYmVlbiBjaGFuZ2VkLlxuIgorbXNnc3RyICJOYSBkaXNrdSBieWx5IHByb3ZlZGVueSB6bcSbbnkuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIlJlc3RhcnR1anRlIHN5c3TDqW0sIGFieSBieWxhIGppc3RvdGEsIMW+ZSB0YWJ1bGthIHJvemTEm2xlbsOtIGRpc2t1IGJ5bGFcbiIKKyJrb3Jla3RuxJsgem3Em27Em25hLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55XG4iCisiRE9TIDYueCBwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBjZmRpc2sgbWFudWFsXG4iCisicGFnZSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlZBUk9Ww4FOw406IFBva3VkIGpzdGUgdnl0dm/FmWlsIMSNaSB6bcSbbmlsIG7Em2pha8OpXG4iCisiRE9TIDYueCBkaXNrb3bDqSBvZGTDrWx5LCBwxZllxI10xJt0ZSBzaSBwcm9zw61tIG1hbnXDoWxcbiIKKyJwcm9ncmFtdSBjZmRpc2ssIGFieXN0ZSB6w61za2FsIGRvZGF0ZcSNbsOpIGluZm9ybWFjZS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIk9TVURPVsOBIENIWUJBIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTcKK21zZ2lkICJQcmVzcyBhbnkga2V5IHRvIGV4aXQgY2ZkaXNrIgorbXNnc3RyICJTdGlza27Em3RlIGpha291a29saXYga2zDoXZlc3UgcHJvIHVrb27EjWVuw60gcHJvZ3JhbXUgY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzo1NjQgZmRpc2svY2ZkaXNrLmM6NTcyCittc2dpZCAiQ2Fubm90IHNlZWsgb24gZGlzayBkcml2ZSIKK21zZ3N0ciAiTmVsemUgcG9zdW5vdXQgdWthem92w6F0a28gbmEgZGlza3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIlogZGlza3UgbmVsemUgxI3DrXN0IgorCisjOiBmZGlzay9jZmRpc2suYzo1NzQKK21zZ2lkICJDYW5ub3Qgd3JpdGUgZGlzayBkcml2ZSIKK21zZ3N0ciAiTmVsemUgemFwaXNvdmF0IG5hIGRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjkxNworbXNnaWQgIlRvbyBtYW55IHBhcnRpdGlvbnMiCittc2dzdHIgInDFmcOtbGnFoSBtbm9obyBkaXNrb3bDvWNoIG9kZMOtbMWvIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiRGlza292w70gb2Rkw61sIHphxI3DrW7DoSBwxZllZCBzZWt0b3JlbSAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCBrb27EjcOtIHDFmWVkIHNla3RvcmVtIDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCB6YcSNw61uw6EgemEga29uY2VtIGRpc2t1IgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiRGlza292w70gb2Rkw61sIGtvbsSNw60gemEga29uY2VtIGRpc2t1IgorCisjOiBmZGlzay9jZmRpc2suYzo5NDIKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBpbiB0aGUgZmluYWwgcGFydGlhbCBjeWxpbmRlciIKK21zZ3N0ciAiRGlza292w70gb2Rkw61sIGtvbsSNw60gdsKgcG9zbGVkbsOtbSDEjcOhc3RlxI1uw6ltIGN5bGluZHJ1IgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgImxvZ2lja8OpIGRpc2tvdsO9IG9kZMOtbCBqc291IGNoeWJuxJsgc2XFmWF6ZW55IgorCisjOiBmZGlzay9jZmRpc2suYzo5NjkKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAibG9naWNrw6kgZGlza292w6kgb2Rkw61seSBzZSB2esOhamVtbsSbIHDFmWVrcsO9dmFqw60iCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJ6dsSbdMWhZW7DqSBsb2dpY2vDqSBkaXNrb3bDqSBvZGTDrWx5IHNlIHZ6w6FqZW1uxJsgcMWZZWtyw712YWrDrSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAwMworbXNnaWQgIiIKKyIhISEhIEludGVybmFsIGVycm9yIGNyZWF0aW5nIGxvZ2ljYWwgZHJpdmUgd2l0aCBubyBleHRlbmRlZCBwYXJ0aXRpb24gISEhISIKK21zZ3N0ciAiIgorIiEhISEgVm5pdMWZbsOtIGNoeWJhIHDFmWkgdnl0dsOhxZllbsOtIGxvZ2lja8OpaG8gZGlza3UgYmV6IHJvesWhw63FmWVuw71jaCBkaXNrb3bDvWNoICIKKyJvZGTDrWzFryAhISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDE0IGZkaXNrL2NmZGlzay5jOjEwMjYKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisiWmRlIG5lbHplIHZ5dHZvxZlpdCBsb2dpY2vDvSBkaXNrIC0tIHZ6bmlrbHkgYnkgZHZhIHJvesWhw63FmWVuw6kgZGlza292w6kgb2Rkw61seSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICJQb2xvxb5rYSBuYWLDrWRreSBqZSBwxZnDrWxpxaEgZGxvdWjDoS4gTmFiw61ka2EgbcWvxb5lIHZ5cGFkYXQgcG9kaXZuxJsuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMjI0Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiTmFiw61ka2EgYmV6ZSBzbcSbcnUuIFBvdcW+w612w6FtIHZvZG9yb3Zuw70uIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzU2Cittc2dpZCAiSWxsZWdhbCBrZXkiCittc2dzdHIgIkNoeWJuw6Ega2zDoXZlc2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNzkKK21zZ2lkICJQcmVzcyBhIGtleSB0byBjb250aW51ZSIKK21zZ3N0ciAiU3Rpc2tuxJt0ZSBrbMOhdmVzdSBwcm8gcG9rcmHEjW92w6Fuw60iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiUHJpbcOhcm7DrSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNgorbXNnaWQgIkNyZWF0ZSBhIG5ldyBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiVnl0dm/FmWl0IG5vdsO9IHByaW3DoXJuw60gZGlza292w70gb2Rkw61sIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgIkxvZ2lja8O9IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3Cittc2dpZCAiQ3JlYXRlIGEgbmV3IGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICJWeXR2b8WZaXQgbm92w70gbG9naWNrw70gZGlza292w70gb2Rkw61sIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMgZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkNhbmNlbCIKK21zZ3N0ciAiWnJ1xaFpdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICJOZXZ5dHbDocWZZXQgZGlza292w70gb2Rkw61sIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiISEhIFZuaXTFmW7DrSBjaHliYSAhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiVmVsaWtvc3QgKHYgTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIlphxI3DoXRlayIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgYmVnaW5uaW5nIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIlZ5dHZvxZlpdCBkaXNrb3bDvSBvZGTDrWwgbmEgemHEjcOhdGt1IHZvbG7DqWhvIHByb3N0b3J1IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiRW5kIgorbXNnc3RyICJLb25lYyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIlZ5dHZvxZlpdCBkaXNrb3bDvSBvZGTDrWwgbmEga29uY2kgdm9sbsOpaG8gcHJvc3RvcnUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICJQcm8gcm96xaHDrcWZZW7DvSBkaXNrb3bDvSBvZGTDrWwgbmVuw60gZG9zdGF0ZWsgbcOtc3RhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc0Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJOZWJ5bGEgbmFsZXplbmEgxb7DoWRuw6EgdGFidWxrYSByb3pkxJtsZW7DrSBkaXNrdS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3OAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiQ2h5YsOtIHRhYnVsa2Egcm96ZMSbbGVuw60gZGlza3UuIFphxI3DrW7DoW0gc8KgcHLDoXpkbm91IHRhYnVsa291LiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU4OAorbXNnaWQgIkJhZCBzaWduYXR1cmUgb24gcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJDaHlibsOhIHNpZ25hdHVyYSB0YWJ1bGt5IHJvemTEm2xlbsOtIGRpc2t1IgorCisjOiBmZGlzay9jZmRpc2suYzoxNTkyCittc2dpZCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIKK21zZ3N0ciAiTmV6bsOhbcO9IHR5cCB0YWJ1bGt5IHJvemTEm2xlbsOtIGRpc2t1IgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAiUMWZZWpldGUgc2kgemHEjcOtdCBzwqBwcsOhemRub3UgdGFidWxrb3UgW2EvTl0/IgorCisjOiBmZGlzay9jZmRpc2suYzoxNjQyCittc2dpZCAiWW91IHNwZWNpZmllZCBtb3JlIGN5bGluZGVycyB0aGFuIGZpdCBvbiBkaXNrIgorbXNnc3RyICJaYWRhbCBqc3RlIHbEm3TFocOtIHBvxI1ldCBjeWxpbmRyxa8sIG5lxb4gc2UgdmVqZGUgbmEgZGlzay4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzQKK21zZ2lkICJDYW5ub3Qgb3BlbiBkaXNrIGRyaXZlIgorbXNnc3RyICJEaXNrIG5lbHplIG90ZXbFmcOtdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NiBmZGlzay9jZmRpc2suYzoxODY1Cittc2dpZCAiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIKK21zZ3N0ciAiRGlzayBieWwgb3RldsWZZW4gcG91emUgcHJvIMSNdGVuw60gLSBuZW3DoXRlIHByw6F2YSBwcm8gesOhcGlzIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw60hISBEZXRla292w6FuYSBuZXBvZHBvcm92YW7DoSBHUFTigK8oR1VJRCB0YWJ1bGthIHJvemTEm2xlbsOtIGRpc2t1KS4gIgorIlBvdcW+aWp0ZSBHTlUgUGFydGVkLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTcwNgorbXNnaWQgIkNhbm5vdCBnZXQgZGlzayBzaXplIgorbXNnc3RyICJWZWxpa29zdCBkaXNrdSBuZWx6ZSB6amlzdGl0IgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJDaHlibsO9IHByaW3DoXJuw60gZGlza292w70gb2Rkw61sIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzYyCittc2dpZCAiQmFkIGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICJDaHlibsO9IGxvZ2lja8O9IGRpc2tvdsO9IG9kZMOtbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg3NworbXNnaWQgIldhcm5pbmchISAgVGhpcyBtYXkgZGVzdHJveSBkYXRhIG9uIHlvdXIgZGlzayEiCittc2dzdHIgIlZhcm92w6Fuw60hISBUb3RvIG3Fr8W+ZSB2w6lzdCBrZSB6bmnEjWVuw60gZGF0IG5hIFZhxaFlbSBkaXNrdSEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODEKK21zZ2lkICIiCisiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzaz8gKHllcyBvciBubyk6ICIKK21zZ3N0ciAiIgorIkpzdGUgc2kgamlzdCwgxb5lIGNoY2V0ZSB1bG/Fvml0IHRhYnVsa3Ugcm96ZMSbbGVuw60gZGlza3UgbmEgZGlzaz8gKGFubyDEjWkgbmUpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODcKK21zZ2lkICJubyIKK21zZ3N0ciAibmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODkKK21zZ2lkICJEaWQgbm90IHdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJUYWJ1bGthIHJvemTEm2xlbsOtIGRpc2t1IG5lYnlsYSB1bG/FvmVuYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5MQorbXNnaWQgInllcyIKK21zZ3N0ciAiYW5vIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk1Cittc2dpZCAiUGxlYXNlIGVudGVyIGB5ZXMnIG9yIGBubyciCittc2dzdHIgIlphZGVqdGUg4oCeYW5v4oCcIMSNaSDigJ5uZeKAnCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIlVrbMOhZMOhbSB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1IG5hIGRpc2vigKYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJUYWJ1bGthIHJvemTEm2xlbsOtIGRpc2t1IGJ5bGEgdWxvxb5lbmEgbmEgZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNgorbXNnaWQgIiIKKyJXcm90ZSBwYXJ0aXRpb24gdGFibGUsIGJ1dCByZS1yZWFkIHRhYmxlIGZhaWxlZC4gIFJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCIKKyIoOCkgb3IgcmVib290IHRvIHVwZGF0ZSB0YWJsZS4iCittc2dzdHIgIiIKKyJUYWJ1bGthIHJvemTEm2xlbsOtIGRpc2t1IGJ5bGEgdWxvxb5lbmEsIGFsZSBuZXBvZGHFmWlsbyBzZSBqaSB6bm92dSBuYcSNw61zdC5cbiIKKyJBYnkgc2UgdGFidWxrYSBha3R1YWxpem92YWxhLCBzcHVzxaV0ZSBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBuZWJvXG4iCisicmVzdGFydHVqdGUgc3lzdMOpbS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIsW9w6FkbsO9IHByaW3DoXJuw60gZGlza292w70gb2Rkw61sIG5lbsOtIHN0YXJ0b3ZhY8OtLiBET1MgTUJSIHRha3RvIG5lbmFzdGFydHVqZS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJWw61jZSBuZcW+IDEgcHJpbcOhcm7DrSBkaXNrb3bDvSBvZGTDrWwgamUgc3RhcnRvdmFjw60uIERPUyBNQlIgdGFrdG8gbmVuYXN0YXJ0dWplLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTk5NiBmZGlzay9jZmRpc2suYzoyMTE1IGZkaXNrL2NmZGlzay5jOjIxOTkKK21zZ2lkICJFbnRlciBmaWxlbmFtZSBvciBwcmVzcyBSRVRVUk4gdG8gZGlzcGxheSBvbiBzY3JlZW46ICIKK21zZ3N0ciAiWmFkZWp0ZSBuw6F6ZXYgc291Ym9ydSDEjWkgc3Rpc2tuxJt0ZSBSRVRVUk4gcHJvIHpvYnJhemVuw606ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAwNSBmZGlzay9jZmRpc2suYzoyMTIzIGZkaXNrL2NmZGlzay5jOjIyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIgorbXNnc3RyICJTb3Vib3Ig4oCeJXPigJwgbmVsemUgb3RldsWZw610IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzXG4iCittc2dzdHIgIkRpc2s6ICVzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTgKK21zZ2lkICJTZWN0b3IgMDpcbiIKK21zZ3N0ciAiU2VrdG9yIDA6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkOlxuIgorbXNnc3RyICJTZWt0b3IgJWQ6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDUKK21zZ2lkICIgICBOb25lICAgIgorbXNnc3RyICIgIMW9w6FkbsO9ICAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDcKK21zZ2lkICIgICBQcmkvTG9nIgorbXNnc3RyICIgIFByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgIFByaW3DoXJuw60iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIgIExvZ2lja8O9IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICJOZXpuw6Ftw70iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTUgZmRpc2svY2ZkaXNrLmM6MjU2MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkKK21zZ2lkICJCb290IgorbXNnc3RyICJaYXZlZGl0ZWxuw70iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiKCUwMlgpIgorbXNnc3RyICIoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTkKK21zZ2lkICJOb25lIgorbXNnc3RyICJOaWMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIlRhYnVsa2Egcm96ZMSbbGVuw60gZGlza3UgcHJvICVzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzYKK21zZ2lkICIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iCittc2dzdHIgIiAgICAgICAgICAgICBQcnZuw60gICAgICAgUG9zbGVkbsOtXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjIFR5cCAgICAgICBzZWt0b3IgICAgICBzZWt0b3IgICAgUG9zdW4gICAgIETDqWxrYSAgICBJRCBzeXN0w6ltdSBzb3Vib3LFryAgICIKKyJQxZnDrXpcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzOAorbXNnaWQgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiAgICAgICAgIC0tLS1Qb8SNw6F0ZWstLS0tICAgICAgLS0tLS1Lb25lYy0tLS0tICBQb8SNw6F0ZcSNbsOtICAgIFBvxI1ldFxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCittc2dpZCAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCittc2dzdHIgIiAjIFDFmcOtei4gSGxhdiBTZWt0IEN5bC4gICBJRCAgSGxhdiBTZWt0IEN5bC4gICAgIFNla3RvciAgICBTZWt0b3LFr1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIzCittc2dpZCAiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlJhdyIKK21zZ3N0ciAiUMWZw61tw70iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IgorbXNnc3RyICJWeXRpc2tub3V0IHRhYnVsa3UgdiBwxZnDrW3DqW0gZGF0b3bDqW0gZm9ybcOhdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlNla3RvcnkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcKK21zZ2lkICJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICJWeXRpc2tub3V0IHRhYnVsa3Ugc2XFmWF6ZW5vdSBkbGUgc2VrdG9yxa8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAiVGFidWxrYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiVnl0aXNrbm91dCBwb3V6ZSB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICJOZXRpc2tub3V0IHRhYnVsa3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODcKK21zZ2lkICJIZWxwIFNjcmVlbiBmb3IgY2ZkaXNrIgorbXNnc3RyICJOw6Fwb3bEm2RhIHBybyBjZmRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODkKK21zZ2lkICJUaGlzIGlzIGNmZGlzaywgYSBjdXJzZXMgYmFzZWQgZGlzayBwYXJ0aXRpb25pbmcgcHJvZ3JhbSwgd2hpY2giCittc2dzdHIgIlRvdG8gamUgY2ZkaXNrLCBwcm9ncmFtIHBybyB2eXR2w6HFmWVuw60gZGlza292w71jaCBvZGTDrWzFryB6YWxvxb5lbsO9IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkwCittc2dpZCAiYWxsb3dzIHlvdSB0byBjcmVhdGUsIGRlbGV0ZSBhbmQgbW9kaWZ5IHBhcnRpdGlvbnMgb24geW91ciBoYXJkIgorbXNnc3RyICJuYSBrbmlob3ZuxJsgY3Vyc2VzLiBVbW/FvsWIdWplIHZ5dHbDocWZZW7DrSwgbWF6w6Fuw60gYSBtb2RpZmlrYWNpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgImRpc2tvdsO9Y2ggb2Rkw61sxa8gbmEgVmHFoWVtIHBldm7DqW0gZGlza3UuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkzCittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorbXNnc3RyICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTUKK21zZ2lkICJDb21tYW5kICAgICAgTWVhbmluZyIKK21zZ3N0ciAiUMWZw61rYXogICAgICBWw716bmFtIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk2Cittc2dpZCAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCittc2dzdHIgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk3Cittc2dpZCAiICBiICAgICAgICAgIFRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBiICAgICAgICAgIFDFmWVwbmUgYWt0dcOhbG7DrW11IG9kZMOtbHUgcMWZw616bmFrIHphdmVkaXRlbG5vc3RpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk4Cittc2dpZCAiICBkICAgICAgICAgIERlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgZCAgICAgICAgICBTbWHFvmUgYWt0dcOhbG7DrSBvZGTDrWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTkKK21zZ2lkICIgIGcgICAgICAgICAgQ2hhbmdlIGN5bGluZGVycywgaGVhZHMsIHNlY3RvcnMtcGVyLXRyYWNrIHBhcmFtZXRlcnMiCittc2dzdHIgIiAgZyAgICAgICAgICBabcSbbsOtIGdlb21ldHJpaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiAgICAgICAgICAgICBWQVJPVsOBTsONOiBUYXRvIHZvbGJhIGJ5IG3Em2xhIGLDvXQgcG91xb7DrXbDoW5hIHBvdXplIGxpZG1pLCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICAga3RlxZnDrSB2xJtkw60sIGNvIMSNaW7DrS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICBWeXDDrcWhZSB0dXRvIG7DoXBvdsSbZHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgbSAgICAgICAgICBNYXhpbcOhbG7EmyB6dsSbdMWhw60gYWt0dcOhbG7DrSBkaXNrb3bDvSBvZGTDrWwgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA0Cittc2dpZCAiICAgICAgICAgICAgIE5vdGU6IFRoaXMgbWF5IG1ha2UgdGhlIHBhcnRpdGlvbiBpbmNvbXBhdGlibGUgd2l0aCIKK21zZ3N0ciAiICAgICAgICAgICAgIFBvem7DoW1rYTogVG90byBtxa/FvmUgdcSNaW5pdCBvZGTDrWwgbmVrb21wYXRpYmlsbsOtIHMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCittc2dzdHIgIiAgICAgICAgICAgICBET1MsIE9TLzIsIOKApiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiAgbiAgICAgICAgICBWeXR2b8WZaXQgbmEgdm9sbsOpbSBtw61zdMSbIG5vdsO9IG9kZMOtbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgcCAgICAgICAgICBQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIiAgcCAgICAgICAgICBWeXDDrcWhZSB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1IG5hIG9icmF6b3ZrdSDEjWkgZG8gc291Ym9ydSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOAorbXNnaWQgIiAgICAgICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhlIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgICAgICAgICAgIFDFmWkgdsO9cGlzdSB0YWJ1bGt5IHJvemTEm2xlbsOtIGRpc2t1IHNpIG3Fr8W+ZXRlIHp2b2xpdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIgICAgICAgICAgICAgeiBuxJtrb2xpa2EgZm9ybcOhdMWvOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIgICAgICAgICAgICAgICAgciAtIFDFmcOtbcO9IChwxZllc27EmyB0bywgY28gYnkgYnlsbyB6YXBzw6FubyBuYSBkaXNrKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAgICAgICAgICAgICBzIC0gVGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICIgICAgICAgICAgICAgICAgcyAtIFRhYnVsa2Egc2XFmWF6ZW7DoSBkbGUgc2VrdG9yxa8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTIKK21zZ2lkICIgICAgICAgICAgICAgICAgdCAtIFRhYmxlIGluIHJhdyBmb3JtYXQiCittc2dzdHIgIiAgICAgICAgICAgICAgICB0IC0gVGFidWxrYSB2IHDFmcOtbcOpbSBmb3Jtw6F0dSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgcSAgICAgICAgICBRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICBxICAgICAgICAgIFVrb27EjcOtIHByb2dyYW0gYmV6IHVsb8W+ZW7DrSB0YWJ1bGt5IHJvemTEm2xlbsOtIGRpc2t1IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIgIHQgICAgICAgICAgWm3Em27DrSB0eXAgc3lzdMOpbXUgc291Ym9yxa8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIgIHUgICAgICAgICAgWm3Em27DrSBqZWRub3RreSBwcm8gem9icmF6ZW7DrSB2ZWxpa29zdGkgb2Rkw61sdSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNgorbXNnaWQgIiAgICAgICAgICAgICBSb3RhdGVzIHRocm91Z2ggTUIsIHNlY3RvcnMgYW5kIGN5bGluZGVycyIKK21zZ3N0ciAiICAgICAgICAgICAgIEN5a2x1amUgbWV6aSBNQiwgc2VrdG9yeSBhIGN5bGluZHJ5IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE3Cittc2dpZCAiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiCittc2dzdHIgIiAgVyAgICAgICAgICBVbG/FvsOtIHRhYnVsa3Ugcm96ZMSbbGVuw60gZGlza3UgKHBvdXplIHZlbGvDqSBXKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiAgICAgICAgICAgICBKZWxpa2/FviB0byBtxa/FvmUgem5pxI1pdCBuYSBkaXNrdSwgbXVzw610ZSB0byBwb3R2cmRpdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICAgICAgICAgICBlaXRoZXIgY29uZmlybSBvciBkZW55IHRoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciIKK21zZ3N0ciAiICAgICAgICAgICAgIG5lYm8gb2Rtw610bm91dCBuYXBzw6Fuw61tIOKAnnllc+KAnCBuZWJvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIwCittc2dpZCAiICAgICAgICAgICAgIGBubyciCittc2dzdHIgIiAgICAgICAgICAgICDigJ5ub+KAnCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMQorbXNnaWQgIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIgorbXNnc3RyICJOYWhvcnUgICAgICAgUMWZZXN1bmUga3Vyem9yIG5hIHDFmWVkY2jDoXplasOtY8OtIG9kZMOtbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjIKK21zZ2lkICJEb3duIEFycm93ICAgTW92ZSBjdXJzb3IgdG8gdGhlIG5leHQgcGFydGl0aW9uIgorbXNnc3RyICJEb2zFryAgICAgICAgIFDFmWVzdW5lIGt1cnpvciBuYSBkYWzFocOtIG9kZMOtbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDVFJMLUwgICAgICAgUMWZZWtyZXNsw60gb2JyYXpvdmt1IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI0Cittc2dpZCAiICA/ICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgID8gICAgICAgICAgVnlww63FoWUgdHV0byBuw6Fwb3bEm2R1IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI2Cittc2dpZCAiTm90ZTogQWxsIG9mIHRoZSBjb21tYW5kcyBjYW4gYmUgZW50ZXJlZCB3aXRoIGVpdGhlciB1cHBlciBvciBsb3dlciIKK21zZ3N0ciAiUG96bsOhbWthOiBWxaFlY2hueSBwxZnDrWthenkgbW9ob3UgYsO9dCB6YWTDoW55IG1hbMO9bWkgaSB2ZWxrw71taSBww61zbWVueSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNworbXNnaWQgImNhc2UgbGV0dGVycyAoZXhjZXB0IGZvciBXcml0ZXMpLiIKK21zZ3N0ciAiKHPCoHbDvWppbWtvdSB6w6FwaXN1IC0gVykuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzIKK21zZ2lkICJDeWxpbmRlcnMiCittc2dzdHIgIkN5bGluZHJ5IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICJabcSbbsOtIGdlb21ldHJpaSBjeWxpbmRyxa8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMAorbXNnaWQgIkhlYWRzIgorbXNnc3RyICJIbGF2eSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJabcSbbsOtIGdlb21ldHJpaSBobGF2IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAiWm3Em27DrSBnZW9tZXRyaWkgc2VrdG9yxa8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICJIb3Rvdm8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIkdlb21ldHJpZSB6bcSbbsSbbmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNzQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGN5bGluZGVyczogIgorbXNnc3RyICJaYWRlanRlIHBvxI1ldCBjeWxpbmRyxa86ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIkNoeWJuw70gcG/EjWV0IGN5bGluZHLFryIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAiWmFkZWp0ZSBwb8SNZXQgaGxhdjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzk4IGZkaXNrL2NmZGlzay5jOjI5NjgKK21zZ2lkICJJbGxlZ2FsIGhlYWRzIHZhbHVlIgorbXNnc3RyICJDaHlibsO9IHBvxI1ldCBobGF2IgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICJaYWRlanRlIHBvxI1ldCBzZWt0b3LFryBuYSBzdG9wdTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDExIGZkaXNrL2NmZGlzay5jOjI5NzUKK21zZ2lkICJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiCittc2dzdHIgIkNoeWJuw70gcG/EjWV0IHNla3RvcsWvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTE0Cittc2dpZCAiRW50ZXIgZmlsZXN5c3RlbSB0eXBlOiAiCittc2dzdHIgIlphZGVqdGUgdHlwIHN5c3TDqW11IHNvdWJvcsWvOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzIKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZW1wdHkiCittc2dzdHIgIk5lbHplIG5hc3Rhdml0IHR5cCBTUyBuYSBwcsOhemRuw70iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZXh0ZW5kZWQiCittc2dzdHIgIk5lbHplIG5hc3Rhdml0IHR5cCBTUyBuYSByb3rFocOtxZllbsO9IgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuayglMDJYKSIKK21zZ3N0ciAiTmV6KCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY4IGZkaXNrL2NmZGlzay5jOjI1NzEKK21zZ2lkICIsIE5DIgorbXNnc3RyICIsIE5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTc2IGZkaXNrL2NmZGlzay5jOjI1NzkKK21zZ2lkICJOQyIKK21zZ3N0ciAiTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODcKK21zZ2lkICJQcmkvTG9nIgorbXNnc3RyICJQcmkvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICJOZXpuw6Ftw70gKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzIgorbXNnc3RyICJEaXNrOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICJWZWxpa29zdCAlJ2xsZMKgYmFqdMWvLCAlJ2xsZMKgTUIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZC4lbGxkIEdCIgorbXNnc3RyICJWZWxpa29zdCAlJ2xsZMKgYmFqdMWvLCAlJ2xsZCwlbGxkwqBHQiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3NworIywgYy1mb3JtYXQKK21zZ2lkICJIZWFkczogJWQgICBTZWN0b3JzIHBlciBUcmFjazogJWQgICBDeWxpbmRlcnM6ICVsbGQiCittc2dzdHIgIkhsYXY6ICVkICAgU2VrdG9yxa8gbmEgc3RvcHU6ICVkICAgIEN5bGluZHLFrzogJSdsbGQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIk7DoXpldiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MgorbXNnaWQgIkZsYWdzIgorbXNnc3RyICJQxZnDrXpuYWt5IgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgzCittc2dpZCAiUGFydCBUeXBlIgorbXNnc3RyICJUeXAgb2Rkw61sdSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIlR5cCBTUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NQorbXNnaWQgIltMYWJlbF0iCittc2dzdHIgIltQb3Bpc10iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODcKK21zZ2lkICIgICAgU2VjdG9ycyIKK21zZ3N0ciAiICAgIFNla3RvcsWvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg5Cittc2dpZCAiICBDeWxpbmRlcnMiCittc2dzdHIgIiAgQ3lsaW5kcsWvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkxCittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIlZlbGlrLiAoTUIpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkzCittc2dpZCAiICBTaXplIChHQikiCittc2dzdHIgIlZlbGlrLiAoR0IpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIlphdmVkaXQuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJQxZllcG5lIHDFmcOtem5hayB6YXZlZGl0ZWxub3N0aSBha3R1w6FsbsOtbXUgZGlza292w6ltdSBvZGTDrWx1IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJTbWF6YXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJTbWHFvmUgYWt0dcOhbG7DrSBkaXNrb3bDvSBvZGTDrWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJHZW9tZXRyeSIKK21zZ3N0ciAiR2VvbWV0cmllIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiQ2hhbmdlIGRpc2sgZ2VvbWV0cnkgKGV4cGVydHMgb25seSkiCittc2dzdHIgIlptxJtuw60gZ2VvbWV0cmlpIGRpc2t1IChwb3V6ZSBwcm8gb2Rib3Juw61reSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJIZWxwIgorbXNnc3RyICJOw6Fwb3bEm2RhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiUHJpbnQgaGVscCBzY3JlZW4iCittc2dzdHIgIlZ5cMOtxaFlIG7DoXBvdsSbZHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSIKK21zZ3N0ciAiWnbEm3TFoWl0IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIiIKKyJadsSbdMWhw60gdmVsaWtvc3QgYWt0dcOhbG7DrWhvIGRpc2tvdsOpaG8gb2Rkw61sdSBuYSBtYXhpbXVtIChwb3V6ZSBwcm8gb2Rib3Juw61reSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJOZXciCittc2dzdHIgIk5vdsO9IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICJWeXR2b8WZw60gbm92w70gZGlza292w70gb2Rkw61sIHZlIHZvbG7DqW0gcHJvc3RvcnUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiVGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiVnlww63FoWUgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSAobmEgb2JyYXpvdmt1IMSNaSBkbyBzb3Vib3J1KSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIktvbmVjIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlVrb27EjcOtIHByb2dyYW0gYmV6IHVsb8W+ZW7DrSB0YWJ1bGt5IHJvemTEm2xlbsOtIGRpc2t1IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAiRHJ1aCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIkNoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIChET1MsIExpbnV4LCBPUy8yIGFuZCBzbyBvbikiCittc2dzdHIgIlptxJtuw60gdHlwIHN5c3TDqW11IHNvdWJvcsWvIChET1MsIExpbnV4LCBPUy8yIGF0ZC4pIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiVW5pdHMiCittc2dzdHIgIkplZG5vdGt5IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAiWm3Em27DrSBqZWRub3RreSwgdmUga3RlcsO9Y2ggamUgdWTDoXbDoW5hIHZlbGlrb3N0IGRpc2tvdsOpaG8gb2Rkw61sdSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJVbG/Fvml0IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhKSIKK21zZ3N0ciAiVWxvxb7DrSB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1IG5hIGRpc2sgKG3Fr8W+ZSB6bmnEjWl0IGRhdGEpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODA1Cittc2dpZCAiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiCittc2dzdHIgIlRlbnRvIG9kZMOtbCBuZWx6ZSBuYXN0YXZpdCBqYWtvIHphdmVkaXRlbG7DvS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiUHLDoXpkbsO9IGRpc2tvdsO9IG9kZMOtbCBuZWx6ZSBzbWF6YXQuIgorCisjOiBmZGlzay9jZmRpc2suYzoyODM1IGZkaXNrL2NmZGlzay5jOjI4MzcKK21zZ2lkICJDYW5ub3QgbWF4aW1pemUgdGhpcyBwYXJ0aXRpb24iCittc2dzdHIgIlRlbnRvIGRpc2tvdsO9IG9kZMOtbCBuZWx6ZSB6dsSbdMWhaXQuIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ1Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgdW51c2FibGUiCittc2dzdHIgIlRlbnRvIGRpc2tvdsO9IG9kZMOtbCBqZSBuZXBvdcW+aXRlbG7DvS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDcKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyBhbHJlYWR5IGluIHVzZSIKK21zZ3N0ciAiVGVudG8gZGlza292w70gb2Rkw61sIGplIGppxb4gcG91xb7DrXbDoW4uIgorCisjOiBmZGlzay9jZmRpc2suYzoyODY0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSB0aGUgdHlwZSBvZiBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIlR5cCBwcsOhemRuw6lobyBkaXNrb3bDqWhvIG9kZMOtbHUgbmVsemUgem3Em25pdC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAixb3DoWRuw6kgZGFsxaHDrSBkaXNrb3bDqSBvZGTDrWx5IgorCisjOiBmZGlzay9jZmRpc2suYzoyOTA0Cittc2dpZCAiSWxsZWdhbCBjb21tYW5kIgorbXNnc3RyICJDaHlibsO9IHDFmcOta2F6IgorCisjOiBmZGlzay9jZmRpc2suYzoyOTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorbXNnc3RyICJDb3B5cmlnaHQgwqkgMTk5NOKAkzIwMDIgS2V2aW4gRS7CoE1hcnRpbiAmIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiUG91xb5pdMOtOlxuIgorIlZ5cMOtxaFlIGluZm9ybWFjZSBvIHZlcnppOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJWeXDDrcWhZSB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1OlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbcMWZZXDDrW5hxI1lXSB6YcWZw616ZW7DrVxuIgorIkludGVyYWt0aXZuw60gcmXFvmltOlxuIgorIiAgICAgICAgJXMgW3DFmWVww61uYcSNZV0gemHFmcOtemVuw61cbiIKKyJcbiIKKyJQxZllcMOtbmHEjWU6XG4iCisiLWE6IE5hbcOtc3RvIHp2w71yYXrFiG92w6Fuw60gcG91xb5pamUgxaFpcGt1O1xuIgorIi16OiBaYcSNbmUgcyBudWxvdm91IHRhYnVsa291IHJvemTEm2xlbsOtIGRpc2t1IG3DrXN0bywgYWJ5IGppIMSNZXRsIHogZGlza3U7XG4iCisiLWMgQyAtaCBIIC1zIFM6IFphZMOhbsOtIGdlb21ldHJpZSBkaXNrdSAobcOhIHDFmWVkbm9zdCBwxZllZCDDumRhamksIGt0ZXLDqSAiCisidWRyxb51amVcbiIKKyIgICAgICAgICAgICAgICAgasOhZHJvLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza2FpeGxhYmVsLmM6MjcKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIEFJWCBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IExpbnV4IGNhbm5vdCBoYW5kbGUgdGhlc2VcbiIKKyJcdGRpc2tzIGF0IHRoZSBtb21lbnQuICBOZXZlcnRoZWxlc3Mgc29tZVxuIgorIlx0YWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorIlx0My4gQmVmb3JlIGRlbGV0aW5nIHRoaXMgcGh5c2ljYWwgdm9sdW1lIGJlIHN1cmVcbiIKKyJcdCAgIHRvIHJlbW92ZSB0aGUgZGlzayBsb2dpY2FsbHkgZnJvbSB5b3VyIEFJWFxuIgorIlx0ICAgbWFjaGluZS4gIChPdGhlcndpc2UgeW91IGJlY29tZSBhbiBBSVhwZXJ0KS4iCittc2dzdHIgIiIKKyJcbiIKKyJcdE5hIHRvbXRvIGRpc2t1IGplIEFJWCB0YWJ1bGthIHJvemTEm2xlbsOtIGRpc2t1LlxuIgorIlx0TGludXggcyB0xJttaXRvIGRpc2t5IHYgc291xI1hc27DqSBkb2LEmyBuZXVtw60gcHJhY292YXQuXG4iCisiXHROaWNtw6luxJsgbsSba29saWsgcmFkIHBybyBWw6FzOlxuIgorIlx0MS4gcMWZaSB6w6FwaXN1IGZkaXNrIHpuacSNw60gamVqaWNoIG9ic2FoXG4iCisiXHQyLiBVamlzdMSbdGUgc2UsIMW+ZSB0ZW50byBkaXNrIE5FTsONIGTFr2xlxb5pdG91IHNvdcSNw6FzdMOtXG4iCisiXHQgICBza3VwaW55IHN2YXprxa8uIChKaW5hayBtxa/FvmV0ZSBzbWF6YXQsIHBva3VkIG5lanNvdVxuIgorIlx0ICAgenJjYWRsZW55LCBpIG9zdGF0bsOtIGRpc2t5LilcbiIKKyJcdDMuIFDFmWVkdMOtbSwgbmXFviBzbWHFvmV0ZSBmeXppY2vDvSBzdmF6ZWssIHNlIHVqaXN0xJt0ZSwgxb5lXG4iCisiXHQgICBqacW+IG5lbsOtIGxvZ2lja291IHNvdcSNw6FzdMOtIFZhxaFlaG8gQUlYIHN5c3TDqW11LiAoSmluYWtcbiIKKyJcdCAgIHNlIHogVsOhcyBzdMOhdsOhIEFJWHBlcnQpLiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQlNEIGxhYmVsIGZvciBkZXZpY2U6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJCU0QgdGFidWxrYSByb3pkxJtsZW7DrSBkaXNrdSBwcm8gemHFmcOtemVuw606ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjggZmRpc2svZmRpc2suYzozOTQgZmRpc2svZmRpc2suYzo0MTMKKyM6IGZkaXNrL2ZkaXNrLmM6NDMxIGZkaXNrL2ZkaXNrLmM6NDM4IGZkaXNrL2ZkaXNrLmM6NDYxIGZkaXNrL2ZkaXNrLmM6NDc5CisjOiBmZGlzay9mZGlzay5jOjQ5NSBmZGlzay9mZGlzay5jOjUxMQorbXNnaWQgIkNvbW1hbmQgYWN0aW9uIgorbXNnc3RyICJQxZnDrWthenkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjkKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIHNtYXphdCBCU0QgZGlza292w70gb2Rkw61sIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMwCittc2dpZCAiICAgZSAgIGVkaXQgZHJpdmUgZGF0YSIKK21zZ3N0ciAiICAgZSAgIHVwcmF2b3ZhdCBkYXRhIG5hIGRpc2t1IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMxCittc2dpZCAiICAgaSAgIGluc3RhbGwgYm9vdHN0cmFwIgorbXNnc3RyICIgICBpICAgaW5zdGFsb3ZhdCB6YXZhZMSbxI0iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzIKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBmaWxlc3lzdGVtIHR5cGVzIgorbXNnc3RyICIgICBsICAgdnlwc2F0IHpuw6Ftw6kgdHlweSBzeXN0w6ltxa8gc291Ym9yxa8iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICB2eXDDrcWhZSB0dXRvIG5hYsOtZGt1IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM0Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgdnl0dm/FmWl0IG5vdsO9IEJTRCBkaXNrb3bDvSBvZGTDrWwiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIHZ5dGlza25vdXQgQlNEIHRhYnVsa3Ugcm96ZMSbbGVuw60gZGlza3UiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzYgZmRpc2svZmRpc2suYzo0MDQgZmRpc2svZmRpc2suYzo0MjMKKyM6IGZkaXNrL2ZkaXNrLmM6NDM0IGZkaXNrL2ZkaXNrLmM6NDQ4IGZkaXNrL2ZkaXNrLmM6NDcxIGZkaXNrL2ZkaXNrLmM6NDg4CisjOiBmZGlzay9mZGlzay5jOjUwNCBmZGlzay9mZGlzay5jOjUyMgorbXNnaWQgIiAgIHEgICBxdWl0IHdpdGhvdXQgc2F2aW5nIGNoYW5nZXMiCittc2dzdHIgIiAgIHEgICB1a29uxI3DrSBwcm9ncmFtIGJleiB1bG/FvmVuw60gem3Em24iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzcgZmRpc2svZmRpc2suYzo0NzIgZmRpc2svZmRpc2suYzo0ODkKKyM6IGZkaXNrL2ZkaXNrLmM6NTA1IGZkaXNrL2ZkaXNrLmM6NTIzCittc2dpZCAiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiCittc2dzdHIgIiAgIHIgICBuw6F2cmF0IGRvIGhsYXZuw60gbmFiw61ka3kiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzgKK21zZ2lkICIgICBzICAgc2hvdyBjb21wbGV0ZSBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICB6b2JyYXrDrSDDunBsbsO9IHBvcGlzIGRpc2t1IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM5Cittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIGZpbGVzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICB6bcSbbsOtIGlkIHN5c3TDqW11IHNvdWJvcsWvIGRhbsOpaG8gZGlza292w6lobyBvZGTDrWx1IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQwCittc2dpZCAiICAgdSAgIGNoYW5nZSB1bml0cyAoY3lsaW5kZXJzL3NlY3RvcnMpIgorbXNnc3RyICIgICB1ICAgem3Em27DrSBqZWRub3RreSAoY3lsaW5kcnkvc2VrdG9yeSkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDEKK21zZ2lkICIgICB3ICAgd3JpdGUgZGlza2xhYmVsIHRvIGRpc2siCittc2dzdHIgIiAgIHcgICB1bG/FvsOtIHBvcGlzIGRpc2t1IG5hIGRpc2siCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDMKK21zZ2lkICIgICB4ICAgbGluayBCU0QgcGFydGl0aW9uIHRvIG5vbi1CU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICB4ICAgcMWZaXBvasOtIEJTRCBkaXNrb3bDvSBvZGTDrWwgbmEgbmUtQlNEIGRpc2tvdsO9IG9kZMOtbCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCAlcyBtw6EgY2h5Ym7DvSBwb8SNw6F0ZcSNbsOtIHNla3RvciAwLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWRpbmcgZGlza2xhYmVsIG9mICVzIGF0IHNlY3RvciAlZC5cbiIKK21zZ3N0ciAixIx0dSBwb3BpcyBkaXNrdSAlcyB2IHNla3RvcnUgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIk5hICVzIHNlIG5lbmFjaMOhesOtIMW+w6FkbsO9ICpCU0QgZGlza292w70gb2Rkw61sLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjAzCittc2dpZCAiQlNEIGRpc2tsYWJlbCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJQxZnDrWtheiBwcm8gQlNEIHBvcGlzIGRpc2t1IChtIHBybyBuw6Fwb3bEm2R1KTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjgzIGZkaXNrL2ZkaXNrLmM6MjMyOCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM4CisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ICVzIgorbXNnc3RyICJQcnZuw60gJXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICVzIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsiCittc2dzdHIgIlBvc2xlZG7DrSAlcyDEjWkgK3ZlbGlrb3N0IMSNaSArdmVsaWtvc3RNIMSNaSArdmVsaWtvc3RLIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVzXG4iCittc2dzdHIgInR5cDogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICJ0eXA6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlzazogJS4qc1xuIgorbXNnc3RyICJkaXNrOiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibGFiZWw6ICUuKnNcbiIKK21zZ3N0ciAidGFidWxrYTogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAicMWZw616bmFreToiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIHJlbW92YWJsZSIKK21zZ3N0ciAiIHbDvW3Em25uw70iCisKKyMgPz8/CisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiBlY2MiCittc2dzdHIgIiBlY2MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGJhZHNlY3QiCittc2dzdHIgIiBjaHlibsO9c2VrdCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcy9zZWN0b3I6ICVsZFxuIgorbXNnc3RyICJiYWp0xa8vc2VrdG9yOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAic2VrdG9yxa8vc3RvcHU6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInN0b3AvY3lsaW5kcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInNla3RvcsWvL2N5bGluZHI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyczogJWxkXG4iCittc2dzdHIgImN5bGluZHLFrzogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAicnBtOiAlZFxuIgorbXNnc3RyICJvdG06ICVkXG4iCisKKyMgKnNrZXcgPz8/IAorIyB6ZGUgcMWZZWtsYWQgc3DDrcWhZSBvZGhhZHVqaQorIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnRlcmxlYXZlOiAlZFxuIgorbXNnc3RyICJwcm9rbMOhZMOhbsOtOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrc2tldzogJWRcbiIKK21zZ3N0ciAiemFrxZlpdmVuw60gc3RvcHk6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJza2V3OiAlZFxuIgorbXNnc3RyICJ6YWvFmWl2ZW7DrSBjeWxpbmRydTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAicMWZZXN1biBobGF2eTogJWxkXHRcdCMgbWlsaXNla3VuZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQzCisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWs6ICVsZFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAicG9zdW4gc3RvcGEtc3RvcGE6ICVsZFx0IyBtaWxpc2VrdW5kXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgImRpc2tkYXRhOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyJwb8SNZXQgZGlza292w71jaCBvZGTDrWzFryAtICVkOlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiMgICAgICAgc3RhcnQgICAgICAgZW5kICAgICAgc2l6ZSAgICAgZnN0eXBlICAgW2ZzaXplIGJzaXplICAgY3BnXVxuIgorbXNnc3RyICIjICAgICAgIHZlbGlrICAgICAgIGtvbmVjICAgIHZlbGlrb3N0IHNzdHlwICAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRpbmcgZGlza2xhYmVsIHRvICVzLlxuIgorbXNnc3RyICJVa2zDoWTDoW0gcG9waXMgZGlza3UgbmEgJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MTkgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjb250YWlucyBubyBkaXNrbGFiZWwuXG4iCittc2dzdHIgIk5hICVzIHNlIG5lbmFjaMOhesOtIMW+w6FkbsO9IHBvcGlzIGRpc2t1LlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDI2Cittc2dpZCAiRG8geW91IHdhbnQgdG8gY3JlYXRlIGEgZGlza2xhYmVsPyAoeS9uKSAiCittc2dzdHIgIkNoY2V0ZSB2eXR2b8WZaXQgcG9waXMgZGlza3U/ICh5L24pIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICJiYWp0xa8vc2VrdG9yIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic2VrdG9yxa8vc3RvcHUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjgKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXIiCittc2dzdHIgInN0b3AvY3lsaW5kciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAiY3lsaW5kcnkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJzZWt0b3LFry9jeWxpbmRyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgPD0gc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciAoZGVmYXVsdCkuXG4iCittc2dzdHIgIk11c8OtIGLDvXQgPD0gc2VrdG9yxa8vc3RvcHUgKiBzdG9wL2N5bGluZHIgKGltcGxpY2l0bsOtKS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAiby9tIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAicHJva2zDoWTDoW7DrSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAiemFrxZlpdmVuw60gc3RvcHkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgInpha8WZaXZlbsOtIGN5bGluZHJ1IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg2Cittc2dpZCAiaGVhZHN3aXRjaCIKK21zZ3N0ciAicMWZZXN1biBobGF2eSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NworbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWsiCittc2dzdHIgInBvc3VuIHN0b3BhLXN0b3BhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCittc2dzdHIgIlphdmFkxJvEjTogJXNzdGFydCAtPiBzdGFydCVzICglcyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU1MworIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgb3ZlcmxhcHMgd2l0aCBkaXNrIGxhYmVsIVxuIgorbXNnc3RyICJaYXZhZMSbxI0gcMWZZXNhaHVqZSBkbyB0YWJ1bGt5IHJvemTEm2xlbsOtIGRpc2t1IVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIGluc3RhbGxlZCBvbiAlcy5cbiIKK21zZ3N0ciAiWmF2YWTEm8SNIGluc3RhbG92w6FuIG5hICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAiRGlza292w70gb2Rkw61sIChhLSVjKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIkppxb4gYnlsbyB2eXR2b8WZZW5vIG1heGltw6FsbsOtIG1ub8W+c3R2w60gZGlza292w71jaCBvZGTDrWzFry5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiIKK21zZ3N0ciAiVGVudG8gZGlza292w70gb2Rkw61sIGppxb4gZXhpc3R1amUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogdG9vIG1hbnkgcGFydGl0aW9ucyAoJWQsIG1heGltdW0gaXMgJWQpLlxuIgorbXNnc3RyICJWYXJvdsOhbsOtOiBwxZnDrWxpxaEgbW5vaG8gZGlza292w71jaCBvZGTDrWzFryAoJWQsIG1heGltdW0gJWQpLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICIiCisiXG4iCisiU3luY2hyb25penVqw60gc2UgZGlza3kuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKyJQb3XFvml0w606XG4iCisiIGZkaXNrIFtQxZhFUMONTkHEjEVdIDxESVNLPiAgICB6bcSbbsOtIHRhYnVsa3Ugcm96ZMSbbGVuw60gZGlza3VcbiIKKyIgZmRpc2sgW1DFmEVQw41OQcSMRV0gLWwgPERJU0s+IHZ5cMOtxaFlIHRhYnVsa3UoeSkgcm96ZMSbbGVuw60gZGlza3VcbiIKKyIgZmRpc2sgLXMgPE9ERMONTD4gICAgICAgICAgICB2eXDDrcWhZSB2ZWxpa29zdChpKSBkaXNrb3bDqWhvIG9kZMOtbHUgdsKgYmxvY8OtY2hcbiIKKyJcbiIKKyJQxZllcMOtbmHEjWU6XG4iCisiIC1iIDxWRUxJS09TVD4gICAgICAgICAgICAgICB2ZWxpa29zdCBzZWt0b3J1ICg1MTIsIDEwMjQsIDIwNDggbmVibyA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgICAgdnlwbmUgcmXFvmltIGtvbXBhdGliaWxpdHkgc8KgRE9TZW1cbiIKKyIgLWggICAgICAgICAgICAgICAgICAgICAgICAgIHZ5cMOtxaFlIG7DoXBvdsSbZHVcbiIKKyIgLXUgPFZFTElLT1NUPiAgICAgICAgICAgICAgIHZyYWPDrSB2ZWxpa29zdGkgdsKgc2VrdG9yZWNoIG5hbcOtc3RvICIKKyJ2wqBjeWxpbmRyZWNoXG4iCisiIC12ICAgICAgICAgICAgICAgICAgICAgICAgICB2eXDDrcWhZSB2ZXJ6aVxuIgorIiAtQyA8UE/EjEVUPiAgICAgICAgICAgICAgICAgIHVyxI11amUgcG/EjWV0IGN5bGluZHLFr1xuIgorIiAtSCA8UE/EjEVUPiAgICAgICAgICAgICAgICAgIHVyxI11amUgcG/EjWV0IGhsYXZcbiIKKyIgLVMgPFBPxIxFVD4gICAgICAgICAgICAgICAgICB1csSNdWplIHBvxI1ldCBzZWt0b3LFryBuYSBzdG9wdVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlc1xuIgorbXNnc3RyICIlcyBuZWx6ZSBvdGV2xZnDrXRcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgJXNcbiIKK21zZ3N0ciAiJXMgbmVsemUgxI3DrXN0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZWVrIG9uICVzXG4iCittc2dzdHIgIlVrYXpvdsOhdGtvIG5lbHplIHBvc3Vub3V0IG5hICVzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiJXMgbmVsemUgdWxvxb5pdFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlc1xuIgorbXNnc3RyICJ2b2zDoW7DrSBCTEtHRVRTSVpFIGlvY3RsIHBybyAlcyBzZWxoYWxvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGFueSBtb3JlIG1lbW9yeVxuIgorbXNnc3RyICJOZWx6ZSBhbG9rb3ZhdCB2w61jZSBwYW3Em3RpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAiRmF0w6FsbsOtIGNoeWJhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgcMWZZXBuZSBwxZnDrXpuYWsgXCJwb3V6ZSBwcm8gxI10ZW7DrVwiIgorCisjOiBmZGlzay9mZGlzay5jOjM5NiBmZGlzay9mZGlzay5jOjQ0MAorbXNnaWQgIiAgIGIgICBlZGl0IGJzZCBkaXNrbGFiZWwiCittc2dzdHIgIiAgIGIgICDDunByYXZhIGJzZCBwb3Bpc3UgZGlza3UiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiAgIGMgICBwxZllcG5lIHDFmcOtem5hayBcInDFmWlwb2ppdGVsbsO9XCIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIHNtYcW+ZSBkaXNrb3bDvSBvZGTDrWwiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk5IGZkaXNrL2ZkaXNrLmM6NDE4IGZkaXNrL2ZkaXNrLmM6NDQzCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICBsICAgdnlww63FoWUgem7DoW3DqSB0eXB5IGRpc2tvdsO9Y2ggb2Rkw61sxa8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICB2eXR2b8WZw60gbm92w70gZGlza292w70gb2Rkw61sIgorCisjOiBmZGlzay9mZGlzay5jOjQwMiBmZGlzay9mZGlzay5jOjQyMSBmZGlzay9mZGlzay5jOjQzMyBmZGlzay9mZGlzay5jOjQ0NgorbXNnaWQgIiAgIG8gICBjcmVhdGUgYSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgbyAgIHZ5dHZvxZnDrSBwcsOhemRub3UgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrxa8gdHlwdSBJQk0gKERPUykiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorbXNnaWQgIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgdnlww63FoWUgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSIKKworIzogZmRpc2svZmRpc2suYzo0MDUgZmRpc2svZmRpc2suYzo0MjQgZmRpc2svZmRpc2suYzo0MzUgZmRpc2svZmRpc2suYzo0NDkKK21zZ2lkICIgICBzICAgY3JlYXRlIGEgbmV3IGVtcHR5IFN1biBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICB2eXR2b8WZw60gcHLDoXpkbsO9IFN1biBwb3BpcyBkaXNrdSIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgem3Em27DrSBJRCBzeXN0w6ltdSBkaXNrb3bDqWhvIG9kZMOtbHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA3IGZkaXNrL2ZkaXNrLmM6NDI2IGZkaXNrL2ZkaXNrLmM6NDUxCittc2dpZCAiICAgdSAgIGNoYW5nZSBkaXNwbGF5L2VudHJ5IHVuaXRzIgorbXNnc3RyICIgICB1ICAgem3Em27DrSBqZWRub3RreSB2IG5pY2jFviBqc291IHZ5cGlzb3bDoW55IGluZm9ybWFjZSIKKworIzogZmRpc2svZmRpc2suYzo0MDggZmRpc2svZmRpc2suYzo0MjcgZmRpc2svZmRpc2suYzo0NTIgZmRpc2svZmRpc2suYzo0NzQKKyM6IGZkaXNrL2ZkaXNrLmM6NDkxIGZkaXNrL2ZkaXNrLmM6NTA3IGZkaXNrL2ZkaXNrLmM6NTI1Cittc2dpZCAiICAgdiAgIHZlcmlmeSB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICB2ICAgb3bEm8WZw60gdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiAgIHcgICB1bG/FvsOtIHRhYnVsa3Ugcm96ZMSbbGVuw60gZGlza3UgYSB1a29uxI3DrSBwcm9ncmFtIgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgICB4ICAgcm96xaFpxZl1asOtY8OtIGZ1bmtjZSAocG91emUgcHJvIG9kYm9ybsOta3kpIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAgbmFzdGF2w60gc3RhcnRvdmFjw60gZGlza292w70gb2Rkw61sIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAgw7pwcmF2YSBwb2xvxb5reSBzdGFydG92YWPDrWhvIHNvdWJvcnUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE2Cittc2dpZCAiICAgYyAgIHNlbGVjdCBzZ2kgc3dhcCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGMgICBuYXN0YXbDrSBTR0kgb2RrbMOhZGFjw60gZGlza292w70gb2Rkw61sIgorCisjOiBmZGlzay9mZGlzay5jOjQzOQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnIgorbXNnc3RyICIgICBhICAgcMWZZXBuZSBwxZnDrXpuYWsgXCJzdGFydG92YWPDrVwiIgorCisjOiBmZGlzay9mZGlzay5jOjQ0MQorbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciCittc2dzdHIgIiAgIGMgICBwxZllcG5lIHDFmcOtem5hayBcIkRPUyBrb21wYXRpYmlsbsOtXCIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYyCittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYSAgIHptxJtuw60gbW5vxb5zdHbDrSBhbHRlcm5hdGl2bsOtY2ggY3lsaW5kcsWvIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgIHptxJtuw60gbW5vxb5zdHbDrSBjeWxpbmRyxa8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY0IGZkaXNrL2ZkaXNrLmM6NDgyIGZkaXNrL2ZkaXNrLmM6NDk4IGZkaXNrL2ZkaXNrLmM6NTE0Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBkICAgdnlww63FoWUgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSAodGFrIGphayBqZSB1bG/FvmVuYSBuYSBkaXNrdSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY1Cittc2dpZCAiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiAgIGUgICB6bcSbbsOtIG1ub8W+c3R2w60gZXh0cmEgc2VrdG9yxa8gbmEgc3RvcHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY2IGZkaXNrL2ZkaXNrLmM6NDg1IGZkaXNrL2ZkaXNrLmM6NTAxIGZkaXNrL2ZkaXNrLmM6NTE4Cittc2dpZCAiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIiAgIGggICB6bcSbbsOtIG1ub8W+c3R2w60gaGxhdiIKKworIzogZmRpc2svZmRpc2suYzo0NjcKK21zZ2lkICIgICBpICAgY2hhbmdlIGludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICIgICBpICAgem3Em27DrSBwcm9rbMOhZGFjw60gZmFrdG9yIgorCisjOiBmZGlzay9mZGlzay5jOjQ2OAorbXNnaWQgIiAgIG8gICBjaGFuZ2Ugcm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIiAgIG8gICB6bcSbbsOtIHJ5Y2hsb3N0IG90w6HEjWVuw60iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDczIGZkaXNrL2ZkaXNrLmM6NDkwIGZkaXNrL2ZkaXNrLmM6NTA2IGZkaXNrL2ZkaXNrLmM6NTI0Cittc2dpZCAiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIKK21zZ3N0ciAiICAgcyAgIHptxJtuw60gcG/EjWV0IHNla3RvcsWvL3N0b3B1IgorCisjOiBmZGlzay9mZGlzay5jOjQ3NgorbXNnaWQgIiAgIHkgICBjaGFuZ2UgbnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIKK21zZ3N0ciAiICAgeSAgIHptxJtuw60gcG/EjWV0IGZ5emlja8O9Y2ggY3lsaW5kcsWvIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MCBmZGlzay9mZGlzay5jOjQ5NiBmZGlzay9mZGlzay5jOjUxMgorbXNnaWQgIiAgIGIgICBtb3ZlIGJlZ2lubmluZyBvZiBkYXRhIGluIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBiICAgcG9zdW5lIHBvxI3DoXRlayBkYXQgdiBkaXNrb3bDqW0gb2Rkw61sdSIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKK21zZ2lkICIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIgICBlICAgdnlww63FoWUgcm96xaHDrcWZZW7DqSBkaXNrb3bDqSBvZGTDrWx5IgorCisjOiBmZGlzay9mZGlzay5jOjQ4NCBmZGlzay9mZGlzay5jOjUwMCBmZGlzay9mZGlzay5jOjUxNworbXNnaWQgIiAgIGcgICBjcmVhdGUgYW4gSVJJWCAoU0dJKSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGcgICB2eXR2b8WZw60gdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSB0eXB1IElSSVggKFNHSSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE2Cittc2dpZCAiICAgZiAgIGZpeCBwYXJ0aXRpb24gb3JkZXIiCittc2dzdHIgIiAgIGYgICBvcHJhdsOtIMWZYXplbsOtIGRpc2tvdsO9Y2ggb2Rkw61sxa8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5Cittc2dpZCAiICAgaSAgIGNoYW5nZSB0aGUgZGlzayBpZGVudGlmaWVyIgorbXNnc3RyICIgICBpICAgem3Em27DrSBpZGVudGlmaWvDoXRvciBkaXNrdSIKKworIzogZmRpc2svZmRpc2suYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3Qgc2V0IgorbXNnc3RyICJNdXPDrXRlIG5hc3Rhdml0IgorCisjOiBmZGlzay9mZGlzay5jOjczNgorbXNnaWQgImhlYWRzIgorbXNnc3RyICJobGF2eSIKKworIzogZmRpc2svZmRpc2suYzo3MzggZmRpc2svZmRpc2suYzoxNTkyIGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgInNlY3RvcnMiCittc2dzdHIgInNla3RvcnkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyVzLlxuIgorIllvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBleHRyYSBmdW5jdGlvbnMgbWVudS5cbiIKK21zZ3N0ciAiIgorIiVzJXMuXG4iCisiTcWvxb5ldGUgdGFrIHXEjWluaXQgeiBuYWLDrWRreSByb3rFoWnFmXVqw61jw61jaCBmdW5rY8OtLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjc0NQorbXNnaWQgIiBhbmQgIgorbXNnc3RyICIgYSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiVkFST1bDgU7DjTogVmVsaWtvc3QgdG9ob3RvIGRpc2t1IGplICVkLCVkIFRCICglJ2xsdSBiYWp0xa8pLlxuIgorIlRhYnVsa2Egcm96ZMSbbGVuw60gZGlza3UgdHlwdSBET1MgbmVtxa/FvmUgYsO9dCBwb3XFvml0YSBuYSBqZWRub3Rrw6FjaCBzdmF6a8WvXG4iCisidsSbdMWhw61jaCBuZcW+ICglJ2xsdSBiYWp0xa8pIHDFmWkgJWRiYWp0b3bDvWNoIHNla3RvcmVjaC5cbiIKKyJQb3XFvmlqdGUgcGFydGVkKDEpIGEgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSB0eXB1IEdVSUQgKEdQVCkuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlphxZnDrXplbsOtIHV2w6Fkw60sIMW+ZSB2ZWxpa29zdCBsb2dpY2vDqWhvIHNla3RvcnUgamUgbWVuxaHDrSBuZcW+IHZlbGlrb3N0IHNla3RvcnVcbiIKKyJmeXppY2vDqWhvLiBEb3BvcnXEjXVqZSBzZSBkb2Ryxb5ldCB6YXJvdm7DoW7DrSBuYSBocmFuaWNlIGZ5emlja8O9Y2ggc2VrdG9yxa9cbiIKKyIobmVibyBibG9rxa8gb3B0aW3DoWxuw61jaCBwcm8gSS9PKS4gVsKgb3BhxI1uw6ltIHDFmcOtcGFkxJsgbcWvxb5lIHV0cnDEm3QgdsO9a29uLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvXG4iCisiICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIgorbXNnc3RyICIiCisiXG4iCisiUE9aT1I6IFJlxb5pbSBrb21wYXRpYmlsaXR5IHPCoERPU2VtIGplIHphc3RhcmFsw70uIETFr3Jhem7EmyBzZSBkb3BvcnXEjXVqZSAiCisidGVudG9cbiIKKyIgICAgICAgcmXFvmltIHZ5cG5vdXQgKHDFmcOta2F6IOKAnmPigJwpIgorCisjIERvZHLFvmV0IHphcm92bsOhbsOtIHNlIHpwcsOhdm91IOKAnlBPWk9SOiBSZcW+aW0ga29tcGF0aWJpbGl0eeKApuKAnAorIzogZmRpc2svZmRpc2suYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG9cbiIKKyIgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuXG4iCittc2dzdHIgIiIKKyIgYSB6bcSbbml0IGplZG5vdGt5IHbDvXBpc8WvIG5hIHNla3RvcnlcbiIKKyIgICAgICAgKHDFmcOta2F6IOKAnnXigJwpLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisiXG4iCisiUE9aT1I6IGN5bGluZHJ5IGpha2/FvnRvIGplZG5vdGt5IHbDvXBpc8WvIGpzb3UgemFzdGFyYWzDqS4gSmVkbm90a3kgbHplIHptxJtuaXRcbiIKKyIgICAgICAgICBuYSBzZWt0b3J5IHBvbW9jw60gcMWZw61rYXp1IOKAnnXigJwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiQ2h5Ym7DvSBwb3N1biB2IHByaW3DoXJuw61tIGRpc2tvdsOpbSBvZGTDrWx1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw606IHZ5bmVjaMOhdsOhbSBvZGTDrWx5IHBvIMSNw61zbGUgJWQuXG4iCisiUG9rdWQgdHV0byB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1IHVsb8W+w610ZSwgYnVkb3UgenRyYWNlbnkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGV4dHJhIGxpbmsgcG9pbnRlciBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiVmFyb3bDoW7DrTogbmFkYnl0ZcSNbsO9IHVrYXphdGVsIG5hIGxpbmsgdiB0YWJ1bGNlIHJvemTEm2xlbsOtIGRpc2t1ICVkLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjg2MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpZ25vcmluZyBleHRyYSBkYXRhIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJWYXJvdsOhbsOtOiBuYWRieXRlxI1uw6EgZGF0YSB2IHRhYnVsY2Ugcm96ZMSbbGVuw60gZGlza3UgJWQgaWdub3JvdsOhbmEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9taXR0aW5nIGVtcHR5IHBhcnRpdGlvbiAoJWQpXG4iCittc2dzdHIgInZ5bmVjaMOhdsOhbSBwcsOhemRuw70gb2Rkw61sICglZClcbiIKKworIzogZmRpc2svZmRpc2suYzo5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBpZGVudGlmaWVyOiAweCUwOHhcbiIKK21zZ3N0ciAiSWRlbnRpZmlrw6F0b3IgZGlza3U64oCvMHglMDh4XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBkaXNrIGlkZW50aWZpZXIgKGN1cnJlbnQgMHglMDh4KTogIgorbXNnc3RyICJOb3bDvSBpZGVudGlmaWvDoXRvciBkaXNrdSAoc291xI1hc27DvSAweCUwOHgpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlZ5dHbDocWZw61tIG5vdm91IERPU09WT1UgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSBzwqBpZGVudGlmaWvDoXRvcmVtIDB4JTA4eC5cbiIKKyJabcSbbnkgYnVkb3UgdWxvxb5lbnkgcG91emUgdsKgcGFtxJt0aSwgZG9rdWQgc2UgbmVyb3pob2RuZXRlIGplIHVsb8W+aXQgbmEgIgorImRpc2suXG4iCisiUG90w6kgamnFviBuZWJ1ZG91IHN0YXLDoSBkYXRhIHBvY2hvcGl0ZWxuxJsgZG9zdHVwbsOhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAiUG96b3I6IHZlbGlrb3N0IHNla3RvcnUgamUgJWQgKG5pa29saXYgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJOZWJ1ZGV0ZSBtb2NpIHVsb8W+aXQgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKyJUZW50byBkaXNrIG3DoSBtYWdpY2vDqSBzaWduYXR1cnkgRE9TVSBpIEJTRC5cbiIKKyJQcm8gdnN0dXAgZG8gQlNEIHJlxb5pbXUgcG91xb5panRlIHDFmcOta2F6IOKAnmLigJwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGICIKKyJkaXNrbGFiZWxcbiIKK21zZ3N0ciAiIgorIlphxZnDrXplbsOtIG5lb2JzYWh1amUgYW5pIERPU09WT1UgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSwgYW5pIFNVTiDEjWkgU0dJICIKKyJwb3Bpc1xuIgorImRpc2t1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJJbnRlcm5hbCBlcnJvclxuIgorbXNnc3RyICJWbml0xZluw60gY2h5YmFcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJOYWRieXRlxI1uw70gcm96xaHDrcWZZW7DvSBkaXNrb3bDvSBvZGTDrWwgJWQgaWdub3JvdsOhbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHglMDR4IG9mIHBhcnRpdGlvbiB0YWJsZSAlZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3IgorIihyaXRlKVxuIgorbXNnc3RyICIiCisiVmFyb3bDoW7DrTogY2h5Ym7DvSBwxZnDrXpuYWsgMHglMDR4IHRhYnVsa3kgcm96ZMSbbGVuw60gZGlza3UgJWQgYnVkZSBvcHJhdmVuICIKKyJ6w6FwaXNlbSh3KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImdvdCBFT0YgdGhyaWNlIC0gZXhpdGluZy4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJ0xZlpa3LDoXQganNlbSBuYWxlemwgRU9GIC0ga29uxI3DrW0uLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIsWgZXN0bsOhY3Rrb3bEmyAoTCB2eXDDrcWhZSBrw7NkeSk6IgorCisjOiBmZGlzay9mZGlzay5jOjEzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCV1LSV1LCBkZWZhdWx0ICV1KTogIgorbXNnc3RyICIlcyAoJXUtJXUsIGltcGxpY2l0bsSbICV1KTogIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgc3VmZml4OiAnJXMnLlxuIgorbXNnc3RyICJOZXBvZHBvcm92YW7DoSBwxZnDrXBvbmE6IOKAniVz4oCcLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisiUG9kcG9yb3ZhbsOpOiAxMF5OOiBLQiAoa2lsb2JhanQpLCBNQiAobWVnYWJhanQpLCBHQiAoZ2lnYWJhanQpXG4iCisiICAgICAgICAgICAgICAyXk46IEsgIChraWJpYmFqdCksIE0gIChtZWJpYmFqdCksIEcgIChnaWJpYmFqdClcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGRlZmF1bHQgdmFsdWUgJXVcbiIKK21zZ3N0ciAiUG91xb7DrXbDoW0gaW1wbGljaXRuw60gaG9kbm90dSAldVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmFsdWUgb3V0IG9mIHJhbmdlLlxuIgorbXNnc3RyICJIb2Rub3RhIGplIG1pbW8gbWV6ZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNTE4Cittc2dpZCAiUGFydGl0aW9uIG51bWJlciIKK21zZ3N0ciAixIzDrXNsbyBkaXNrb3bDqWhvIG9kZMOtbHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAiVmFyb3bDoW7DrTogZGlza292w70gb2Rkw61sICVkIG5lbcOhIHVyxI1lbiB0eXBcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTUxIGZkaXNrL2ZkaXNrLmM6MTU3NworIywgYy1mb3JtYXQKK21zZ2lkICJTZWxlY3RlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiVnlicsOhbiBvZGTDrWwgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiSmXFoXTEmyBuZWpzb3UgZGVmaW5vdsOhbnkgxb7DoWRuw6kgZGlza292w6kgb2Rkw61seSFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBwcmltYXJ5IHBhcnRpdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeSFcbiIKK21zZ3N0ciAiSmnFviBieWx5IGRlZmlub3bDoW55IHbFoWVjaG55IHByaW3DoXJuw60gZGlza292w6kgb2Rkw61seSFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAiY3lsaW5kZXIiCittc2dzdHIgImN5bGluZHIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgInNlY3RvciIKK21zZ3N0ciAic2VrdG9yIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICJNxJtuw61tIGplZG5vdGt5IHYgbmljaMW+IGpzb3UgdnlwaXNvdsOhbnkgaW5mb3JtYWNlIG5hICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIlZBUk9Ww4FOw406IGRpc2tvdsO9IG9kZMOtbCAlZCBqZSByb3rFocOtxZllbsO9bSBkaXNrb3bDvW0gb2Rkw61sZW1cbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgc2V0XG4iCittc2dzdHIgIlDFmcOtem5hayBET1NPVsOJIGtvbXBhdGliaWxpdHkgamUgbmFzdGF2ZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMgorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXRcbiIKK21zZ3N0ciAiUMWZw616bmFrIERPU09Ww4kga29tcGF0aWJpbGl0eSBuZW7DrSBuYXN0YXZlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCB5ZXQhXG4iCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCAlZCB6YXTDrW0gbmVleGlzdHVqZSFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKyJOYSBtbm9oYSBzeXN0w6ltZWNoIChhbGUgbmUgbmEgTGludXh1KSB0eXAgMCBvem5hxI11amVcbiIKKyJ2b2xuw70gcHJvc3Rvci4gVnl0dsOhxZlldCBkaXNrb3bDqSBvZGTDrWx5IHR5cHUgMCBuZW7DrSBtb3VkcsOpLlxuIgorIkRpc2tvdsO9IG9kZMOtbCBtxa/FvmV0ZSBzbWF6YXQgcG9tb2PDrSBwxZnDrWthenUg4oCeZOKAnC5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgY2Fubm90IGNoYW5nZSBhIHBhcnRpdGlvbiBpbnRvIGFuIGV4dGVuZGVkIG9uZSBvciB2aWNlIHZlcnNhXG4iCisiRGVsZXRlIGl0IGZpcnN0LlxuIgorbXNnc3RyICIiCisiTmVtxa/FvmV0ZSBtxJtuaXQgYsSbxb5uw6kgZGlza292w6kgb2Rkw61seSBuYSByb3rFocOtxZllbsOpIGEgenDEm3QuIE5lamTFmcOtdmUgamVqICIKKyJzbWHFvnRlLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiWnZhxb50ZSB6ZGEgYnkgbmVieWxvIHZob2Ruw6kgcG9uZWNoYXQgZGlza292w70gb2Rkw61sIDMgamFrbyBDZWzDvSBkaXNrICg1KSxcbiIKKyJuZWJvxaUgU3VuT1MvU29sYXJpcyB0byBvxI1la8OhdsOhIGEgaSBMaW51eCB0b211IGTDoXbDoSBwxZllZG5vc3QuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gOSBhcyB2b2x1bWUgaGVhZGVyICgwKSxcbiIKKyJhbmQgcGFydGl0aW9uIDExIGFzIGVudGlyZSB2b2x1bWUgKDYpLCBhcyBJUklYIGV4cGVjdHMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJadmHFvnRlLCB6ZGEgYnkgbmVieWxvIHZob2Ruw6kgcG9uZWNoYXQgb2Rkw61sIDkgamFrbyBobGF2acSNa3Ugc3Zhemt1ICgwKSBhXG4iCisib2Rkw61sIDExIGpha28gY2Vsw70gc3ZhemVrICg2KSwgbmVib8WlIElSSVggdG8gb8SNZWvDoXbDoS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5nZWQgc3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIHRvICV4ICglcylcbiIKK21zZ3N0ciAiVHlwIGRpc2tvdsOpaG8gb2Rkw61sdSAlZCBieWwgem3Em27Em24gbmEgJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICJUeXAgZGlza292w6lobyBvZGTDrWx1ICVkIGplIG5lem3Em27Em246ICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgYmVnaW5uaW5ncyAobm9uLUxpbnV4Pyk6XG4iCittc2dzdHIgIiIKKyJEaXNrb3bDvSBvZGTDrWwgJWQgbcOhIHJvemTDrWxuw70gZnl6aWNrw70gYSBsb2dpY2vDvSB6YcSNw6F0ZWsgKG5lbGludXhvdsO9Pyk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyOSBmZGlzay9mZGlzay5jOjE4MzcgZmRpc2svZmRpc2suYzoxODQ2IGZkaXNrL2ZkaXNrLmM6MTg1NgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKK21zZ3N0ciAiICAgICBmeXo9KCVkLCAlZCwgJWQpICIKKworIzogZmRpc2svZmRpc2suYzoxODMwIGZkaXNrL2ZkaXNrLmM6MTgzOAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpY2FsPSglZCwgJWQsICVkKVxuIgorbXNnc3RyICJsb2dpY2vDvT0oJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAiRGlza292w70gb2Rkw61sICVkIG3DoSByb3pkw61sbsO9IGZ5emlja8O9IGEgbG9naWNrw70ga29uZWM6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCAlaSBuZXphxI3DrW7DoSBuYSBocmFuaWNpIGN5bGluZHJ1OlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgIm3Em2xvIGJ5IGLDvXQgKCVkLCAlZCwgMSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCAlaSBuZWtvbsSNw60gbmEgaHJhbmljaSBjeWxpbmRydS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxODU3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAlZClcbiIKK21zZ3N0ciAibcSbbG8gYnkgYsO9dCAoJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIk9kZMOtbCAlaSBuZXphxI3DrW7DoSBuYSBocmFuaWNpIGZ5emlja8OpaG8gc2VrdG9ydS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxODc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQgTUIsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXM6ICUnbGQgTUIsICUnbGxkIGJhanTFr1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXM6ICUnbGQsJWxkIEdCLCAlJ2xsZCBiYWp0xa9cbiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGhlYWRzLCAlbGx1IHNlY3RvcnMvdHJhY2ssICVkIGN5bGluZGVycyIKK21zZ3N0ciAiaGxhdjogJSdkLCBzZWt0b3LFryBuYSBzdG9wdTogJSdsbHUsIGN5bGluZHLFrzogJSdkIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCB0b3RhbCAlbGx1IHNlY3RvcnMiCittc2dzdHIgIiwgY2Vsa2VtICUnbGx1IHNla3RvcsWvIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiSmVkbm90a3kgPSAlcyBwb8KgJWQgKiAlZCA9ICUnZCBiYWp0ZWNoXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6ICV1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIlZlbGlrb3N0IHNla3RvcnUgKGxvZ2lja8OpaG8vZnl6aWNrw6lobyk6ICV1IGJhanTFryAvICVsdSBiYWp0xa9cbiIKKworIzogZmRpc2svZmRpc2suYzoxODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiVmVsaWtvc3QgSS9PIChtaW5pbcOhbG7DrS9vcHRpbcOhbG7DrSk6ICVsdSBiYWp0xa8gLyAlbHUgYmFqdMWvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5OQorIywgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiWmFyb3Zuw6F2YWPDrSBwb3N1bjogJWx1IGJhanTFr1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkRpc2tvdsOpIG9kZMOtbHkganNvdSBqacW+IHNlxZlhemVueS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvbmUuXG4iCittc2dzdHIgIkhvdG92by5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRvZXNuJ3QgbG9vayBsaWtlIGEgcGFydGl0aW9uIHRhYmxlXG4iCisiUHJvYmFibHkgeW91IHNlbGVjdGVkIHRoZSB3cm9uZyBkZXZpY2UuXG4iCisiXG4iCittc2dzdHIgIiIKKyJUb3RvIG5ldnlwYWTDoSBqYWtvIHRhYnVsa2Egcm96ZMSbbGVuw60gZGlza3UuXG4iCisiUHJhdmTEm3BvZG9ibsSbIGpzdGUgenZvbGlsaSDFoXBhdG7DqSB6YcWZw616ZW7DrS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBCb290ICAgICAgU3RhcnQgICAgICAgICBFbmQgICAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBaYXbDoWTEm3QgICBaYcSNw6F0ZWsgICAgICAgS29uZWMgICAgQmxva3kgICAgSWQgIFN5c3TDqW1cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5OAorbXNnaWQgIkRldmljZSIKK21zZ3N0ciAiWmHFmcOtemVuw60iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjExNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiUGFydGl0aW9uIHRhYmxlIGVudHJpZXMgYXJlIG5vdCBpbiBkaXNrIG9yZGVyXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrb3bDqSBvZGTDrWx5IGpzb3UgY2h5Ym7EmyBzZcWZYXplbnlcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXM6IGhsYXY6ICUnZCwgc2VrdG9yxa86ICUnbGx1LCBjeWxpbmRyxa86ICUnZFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iCittc2dzdHIgIsSMLiBBRiAgSGQgU2VrICBDeWwgIEhkIFNlayAgQ3lsICAgIFphxI3DoXRlayAgICAgVmVsLiBJZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgIlZhcm92w6Fuw606IGRpc2tvdsO9IG9kZMOtbCAlZCBvYnNhaHVqZSBzZWt0b3IgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCAlZDogaGxhdmEgJWQgbcOhIHbEm3TFocOtIMSNw61zbG8gbmXFviBqZSBtYXhpbXVtICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHNlY3RvciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCAlZDogc2VrdG9yICVkIG3DoSB2xJt0xaHDrSDEjcOtc2xvIG5lxb4gamUgbWF4aW11bSAlbGx1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJEaXNrb3bDvSBvZGTDrWwgJWQ6IGN5bGluZHIgJWQgbcOhIHbEm3TFocOtIMSNw61zbG8gbmXFviBqZSBtYXhpbXVtICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHByZXZpb3VzIHNlY3RvcnMgJWQgZGlzYWdyZWVzIHdpdGggdG90YWwgJWRcbiIKK21zZ3N0ciAiRGlza292w70gb2Rkw61sICVkOiBwxZllZGNob3rDrSBzZWt0b3J5ICVkIG5lc291aGxhc8OtIHMgw7pocm5lbSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHN0YXJ0LW9mLWRhdGEgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIlZhcm92w6Fuw606IGNoeWJuw70gcG/EjcOhdGVrIGRhdCB2IGRpc2tvdsOpbSBvZGTDrWx1ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgb3ZlcmxhcHMgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJWYXJvdsOhbsOtOiBkaXNrb3bDvSBvZGTDrWwgJWQgcMWZZXNhaHVqZSBkbyBkaXNrb3bDqWhvIG9kZMOtbHUgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAiVmFyb3bDoW7DrTogZGlza292w70gb2Rkw61sICVkIGplIHByw6F6ZG7DvS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiTG9naWNrw70gZGlza292w70gb2Rkw61sICVkIHDFmWVzYWh1amUgbWltbyBkaXNrb3bDvSBvZGTDrWwgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgYy1mb3JtYXQKK21zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlbGx1IGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIkNlbGtvdsO9IHBvxI1ldCBhbG9rb3ZhbsO9Y2ggc2VrdG9yxa8gJSdsbHUgamUgdsSbdMWhw60gbmXFviBtYXhpbXVtICUnbGx1LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVtYWluaW5nICVsbGQgdW5hbGxvY2F0ZWQgJWQtYnl0ZSBzZWN0b3JzXG4iCittc2dzdHIgIlpiw712w6EgJSdsbGQgbmVhbG9rb3ZhbsO9Y2ggJWRiYWp0b3bDvWNoIHNla3RvcsWvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjMwMSBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjIwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGlzIGFscmVhZHkgZGVmaW5lZC4gIERlbGV0ZSBpdCBiZWZvcmUgcmUtYWRkaW5nIGl0LlxuIgorbXNnc3RyICIiCisiRGlza292w70gb2Rkw61sICVkIGplIGppxb4gZGVmaW5vdsOhbi4gUMWZZWQgb3DEm3Rvdm7DvW0gdnl0dm/FmWVuw61tIGplaiBtdXPDrXRlXG4iCisibmVqcHJ2ZSBzbWF6YXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWt0b3IgJWxsdSBqZSBqacW+IGFsb2tvdsOhblxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICJOZWpzb3Ugxb7DoWRuw6kgdm9sbsOpIHNla3RvcnkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiUG9zbGVkbsOtICUxJHMsICslMiRzIG5lYm8gK3ZlbGlrb3N0e0ssTSxHfSIKKworIzogZmRpc2svZmRpc2suYzoyNDcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIEFJWCBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHRQcm9tacWIdGUsIGFsZSB0ZW50byBwcm9ncmFtIG5ldW3DrSB6YWNow6F6ZXQgcyBBSVhvdsO9bWkgZGlza292w71taVxuIgorIlx0am1lbm92a2FtaS4gQ2hjZXRlLWxpIHDFmWlkYXQgb2Rkw61sIHR5cHUgRE9TLCBuZWpwcnZlIHZ5dHZvxZl0ZVxuIgorIlx0IG5vdnUgcHLDoXpkbm91IERPU09WT1UgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSAocMWZw61rYXog4oCeb+KAnCkuXG4iCisiXHRWQVJPVsOBTsONOiBUw61tdG8gcMWZaWpkZXRlIG8gc291xI1hc27DvSBvYnNhaCBkaXNrdS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIE1hYyBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHRQcm9tacWIdGUsIGFsZSB0ZW50byBmZGlzayBuZXVtw60gemFjaMOhemV0IHPCoG1hY292c2vDvW1pIGRpc2tvdsO9bWlcbiIKKyJcdGptZW5vdmthbWkuIENoY2V0ZS1saSBwxZlpZGF0IG9kZMOtbCB0eXB1IERPUywgbmVqcHJ2ZSB2eXR2b8WZdGVcbiIKKyJcdCBub3Z1IHByw6F6ZG5vdSBET1NPVk9VIHRhYnVsa3Ugcm96ZMSbbGVuw60gZGlza3UgKHDFmcOta2F6IOKAnm/igJwpLlxuIgorIlx0VkFST1bDgU7DjTogVMOtbXRvIHDFmWlqZGV0ZSBvwqBzb3XEjWFzbsO9IG9ic2FoIGRpc2t1LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iCittc2dzdHIgIk11c8OtdGUgbmVqcHJ2ZSBuxJtrdGVyw6kgc21hemF0IGEgcMWZaWRhdCByb3rFocOtxZllbsO9IGRpc2tvdsO9IG9kZMOtbC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICJWxaFlY2hueSBsb2dpY2vDqSBvZGTDrWx5IGpzb3Ugb2JzYXplbnlcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIlDFmWlkw6F2w6FtIHByaW3DoXJuw60gZGlza292w70gb2Rkw61sXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29tbWFuZCBhY3Rpb25cbiIKKyIgICAlc1xuIgorIiAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KVxuIgorbXNnc3RyICIiCisiUMWZw61rYXpcbiIKKyIgICAlc1xuIgorIiAgIHAgICBwcmltw6FybsOtIGRpc2tvdsO9IG9kZMOtbCAoMS00KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJsICAgbG9naWNhbCAoNSBvciBvdmVyKSIKK21zZ3N0ciAibCAgIGxvZ2lja8O9IGRpc2tvdsO9IG9kZMOtbCAoNSBuZWJvIHbDrWNlKSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAgcm96xaHDrcWZZW7DvSBkaXNrb3bDvSBvZGTDrWwiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICJDaHlibsOpIMSNw61zbG8gZGlza292w6lobyBvZGTDrWx1IHBybyB0eXAg4oCeJWPigJwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICJUYWJ1bGthIHJvemTEm2xlbsOtIGRpc2t1IGJ5bGEgem3Em27Em25hIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJWb2zDoW0gaW9jdGwoKSBwcm8gem5vdnVuYcSNdGVuw60gdGFidWxreSByb3pkxJtsZW7DrSBkaXNrdS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorIlxuIgorIlZBUk9Ww4FOw406IFpub3Z1bmHEjXRlbsOtIHRhYnVsa3kgcm96ZMSbbGVuw60gZGlza3Ugc2VsaGFsbyBzwqBjaHlib3UgJWQ6ICVzLlxuIgorIkrDoWRybyBzdMOhbGUgcG91xb7DrXbDoSBzdGFyb3UgdGFidWxrdS4gTm92w6EgdGFidWxrYSBzZSBwb3XFvmlqZSBhxb4gcG8gcMWZw63FoXTDrW1cbiIKKyJyZXN0YXJ0dSBuZWJvIHBvIHTDqSwgY28gc3B1c3TDrXRlIHBhcnRwcm9iZSg4KSBuZWJvIGtwYXJ0eCg4KS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueSBET1MgNi54XG4iCisicGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgZmRpc2sgbWFudWFsIHBhZ2UgZm9yIGFkZGl0aW9uYWxcbiIKKyJpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlZBUk9Ww4FOw406IFBva3VkIGpzdGUgdnl0dm/FmWlsIMSNaSB6bcSbbmlsIG7Em2pha8OpXG4iCisiRE9TIDYueCBkaXNrb3bDqSBvZGTDrWx5LCBwxZllxI10xJt0ZSBzaSBwcm9zw61tIG1hbnXDoWxvdm91XG4iCisic3Ryw6Fua3UgcHJvZ3JhbXUgZmRpc2ssIGFieXN0ZSB6w61za2FsIGRvZGF0ZcSNbsOpIGluZm9ybWFjZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJFcnJvciBjbG9zaW5nIGZpbGVcbiIKK21zZ3N0ciAiIgorIlxuIgorIkNoeWJhIHDFmWkgemF2w61yw6Fuw60gc291Ym9ydVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiU3luY2hyb25penVqw60gc2UgZGlza3kuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICJEaXNrb3bDvSBvZGTDrWwgJWQgbmVvYnNhaHVqZSBkYXRvdm91IG9ibGFzdC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjU2Cittc2dpZCAiTmV3IGJlZ2lubmluZyBvZiBkYXRhIgorbXNnc3RyICJOb3bDvSB6YcSNw6F0ZWsgZGF0IgorCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiUMWZw61rYXogcHJvIG9kYm9ybsOta3kgKG0gcHJvIG7DoXBvdsSbZHUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY4NQorbXNnaWQgIk51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIlBvxI1ldCBjeWxpbmRyxa8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjcxMAorbXNnaWQgIk51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiUG/EjWV0IGhsYXYiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczNworbXNnaWQgIk51bWJlciBvZiBzZWN0b3JzIgorbXNnc3RyICJQb8SNZXQgc2VrdG9yxa8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBzZXR0aW5nIHNlY3RvciBvZmZzZXQgZm9yIERPUyBjb21wYXRpYmxpdHlcbiIKK21zZ3N0ciAiVmFyb3bDoW7DrTogbmFzdGF2ZW4gcG9zdW4gc2VrdG9ydSBrdsWvbGkga29tcGF0aWJpbGl0xJsgcyBET1NFTVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlZBUk9Ww4FOw406IE5hIOKAniVz4oCcIG5hbGV6ZW5hIEdQVOKAryhHVUlE4oCvdGFidWxrYSByb3pkxJtsZW7DrSBkaXNrdSkhIE7DoXN0cm9qIGZkaXNrICIKKyJuZXBvZHBvcnVqZSBHUFQuIFBvdcW+aWp0ZSBHTlXigK9QYXJ0ZWQuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzIGRvZXNuJ3QgY29udGFpbiBhIHZhbGlkIHBhcnRpdGlvbiB0YWJsZVxuIgorbXNnc3RyICJOYSBkaXNrdSAlcyBuZW7DrSBrb3Jla3Ruw60gdGFidWxrYSByb3pkxJtsZW7DrSBkaXNrdS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzIG5lbHplIG90ZXbFmcOtdC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiJXMgbmVsemUgb3RldsWZw610LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWM6IHVua25vd24gY29tbWFuZFxuIgorbXNnc3RyICJwxZnDrWtheiAlYyBuZW7DrSB6bsOhbVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBrZXJuZWwgZmluZHMgdGhlIHNlY3RvciBzaXplIGl0c2VsZiAtIC1iIG9wdGlvbiBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyJUb3RvIGrDoWRybyBkZXRla3VqZSB2ZWxpa29zdCBzZWt0b3J1IGF1dG9tYXRpY2t5IC0gcMWZZXDDrW5hxI0gLWIgaWdub3JvdsOhblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHRoZSAtYiAoc2V0IHNlY3RvciBzaXplKSBvcHRpb24gc2hvdWxkIGJlIHVzZWQgd2l0aCBvbmUgc3BlY2lmaWVkICIKKyJkZXZpY2VcbiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw606IHDFmWVww61uYcSNIC1iIChuYXN0YXZlbsOtIHZlbGlrb3N0aSBzZWt0b3J1KSBieSBtxJtsIGLDvXQgcG91xb5pdCBzICIKKyJqZWRuw61tXG4iCisiICAgICAgICAgIHphZGFuw71tIHphxZnDrXplbsOtbS5cbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIk5hICVzIG5hbGV6ZW4gT1NGLzEgcG9waXMgZGlza3UuIFNwb3XFoXTDrW0gcmXFvmltIHBvcGlzdSBkaXNrdS5cbiIKKworIzogZmRpc2svZmRpc2suYzozMDEwCittc2dpZCAiQ29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiUMWZw61rYXogKG0gcHJvIG7DoXBvdsSbZHUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiQWt0dcOhbG7DrSBzdGFydG92YWPDrSBzb3Vib3I6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJaYWRlanRlIG7DoXpldiBub3bDqWhvIHN0YXJ0b3ZhY8OtaG8gc291Ym9ydTogIgorCisjOiBmZGlzay9mZGlzay5jOjMwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdCBmaWxlIHVuY2hhbmdlZFxuIgorbXNnc3RyICJTdGFydG92YWPDrSBzb3Vib3IgbmVieWwgem3Em27Em24uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzEwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRTb3JyeSwgbm8gZXhwZXJ0cyBtZW51IGZvciBTR0kgcGFydGl0aW9uIHRhYmxlcyBhdmFpbGFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdFBybyBTR0kgZGlza292w6kgb2Rkw61seSBuZWpzb3UgayBkaXNwb3ppY2kgxb7DoWRuw6kgcm96xaFpxZl1asOtY8OtIGZ1bmtjZS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2ttYWNsYWJlbC5jOjMwCittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBNYWMgbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBmZGlzaygxKSBjYW5ub3QgaGFuZGxlIHRoZXNlIGRpc2tzLlxuIgorIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisiXHROZXZlcnRoZWxlc3Mgc29tZSBhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdE5hIHRvbXRvIGRpc2t1IGplIG1hY292c2vDoSB0YWJ1bGthIHJvemTEm2xlbsOtIGRpc2t1LlxuIgorIlx0TmFuZcWhdMSbc3TDrSBmZGlzaygxKSBzIHTEm21pdG8gZGlza3kgbmV1bcOtIHByYWNvdmF0LlxuIgorIlx0VHV0byB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1IG3Fr8W+ZXRlIHVwcmF2aXQgcHJvZ3JhbWVtXG4iCisi4oCecGRpc2vigJwgbmVibyDigJ5wYXJ0ZWTigJwuXG4iCisiXHROaWNtw6luxJsgbsSba29saWsgcmFkIHBybyBWw6FzOlxuIgorIlx0MS4gUMWZaSB6w6FwaXN1IGZkaXNrIHpuacSNw60gamVobyBvYnNhaFxuIgorIlx0Mi4gVWppc3TEm3RlIHNlLCDFvmUgdGVudG8gZGlzayBORU7DjSBkxa9sZcW+aXRvdSBzb3XEjcOhc3TDrVxuIgorIlx0ICAgc2t1cGlueSBzdmF6a8WvLiAoSmluYWsgbcWvxb5ldGUgc21hemF0LCBwb2t1ZCBuZWpzb3VcbiIKKyJcdCAgIHpyY2FkbGVueSwgacKgb3N0YXRuw60gZGlza3kuKVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODEKK21zZ2lkICJTR0kgdm9saGRyIgorbXNnc3RyICJIbGF2acSNa2EgU0dJIHN2YXprdSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgyCittc2dpZCAiU0dJIHRya3JlcGwiCittc2dzdHIgIlNHSSB0cmtyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODMKK21zZ2lkICJTR0kgc2VjcmVwbCIKK21zZ3N0ciAiU0dJIHNlY3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NAorbXNnaWQgIlNHSSByYXciCittc2dzdHIgIlNHSSByYXciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NQorbXNnaWQgIlNHSSBic2QiCittc2dzdHIgIlNHSSBic2QiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NgorbXNnaWQgIlNHSSBzeXN2IgorbXNnc3RyICJTR0kgc3lzdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg3Cittc2dpZCAiU0dJIHZvbHVtZSIKK21zZ3N0ciAiU0dJIHN2YXplayIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiU0dJIGVmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIlNHSSBsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIlNHSSBybHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIFhGUyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIkxpbnV4IHN3YXAiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTEKK21zZ2lkICJMaW51eCBuYXRpdmUiCittc2dzdHIgIkxpbnV4IG5hdGl2bsOtIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJQb3BpcyBuZXNtw60gcG9kbGUgTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMgb2JzYWhvdmF0IHbDrWNlIG5lxb4gNTEyIGJhanTFr1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHNnaSBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKK21zZ3N0ciAiTmFsZXpsIGpzZW0gU0dJIHBvcGlzIGRpc2t1IHMgY2h5Ym7DvW0ga29udHJvbG7DrW0gc291xI10ZW0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoU0dJIHRhYnVsa2Egcm96ZMSbbGVuw60gZGlza3UpOiBobGF2OiAlJ2QsIHNla3RvcsWvOiAlJ2xsdSxcbiIKKyJjeWxpbmRyxa86ICUnZCwgZnl6aWNrw71jaCBjeWxpbmRyxa86ICUnZFxuIgorImV4dHJhIHNla3RvcsWvL2N5bDogJWQsIHByb2tsw6Fkw6Fuw606ICVkOjFcbiIKKyIlc1xuIgorIkplZG5vdGt5ID0gJXMgcG8gJWQgKiAlZCBiYWp0ZWNoXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgdGFidWxrYSByb3pkxJtsZW7DrSBkaXNrdSk6IGhsYXY6ICUnZCwgc2VrdG9yxa86ICUnbGx1LFxuIgorImN5bGluZHLFrzogJSdkXG4iCisiSmVkbm90a3kgPSAlcyBwbyAlZCAqICVkIGJhanRlY2hcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIGRpc2tvdsOpIG9kZMOtbHkgLS0tLS1cbiIKKyJPZCMgJSpzICBJbmZvICAgICAgWmHEjcOhdGVrICAgICBLb25lYyBTZWt0b3J5ICBJZCAgU3lzdMOpbVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSBib290aW5mbyAtLS0tLVxuIgorIlN0YXJ0b3ZhY8OtIHNvdWJvcjogJXNcbiIKKyItLS0tLSBhZHJlc8OhxZlvdsOpIHBvbG/Fvmt5IC0tLS0tXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIgorbXNnc3RyICIlMmQ6ICUtMTBzIHNla3RvciU1dSB2ZWxpa29zdCU4dVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJJbnZhbGlkIEJvb3RmaWxlIVxuIgorIlx0VGhlIGJvb3RmaWxlIG11c3QgYmUgYW4gYWJzb2x1dGUgbm9uLXplcm8gcGF0aG5hbWUsXG4iCisiXHRlLmcuIFwiL3VuaXhcIiBvciBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkNoeWJuw70gc3RhcnRvdmFjw60gc291Ym9yIVxuIgorIlx0U3RhcnRvdmFjw60gc291Ym9yIG11c8OtIGLDvXQgemFkw6FuIHBsbsO9bSBuw6F6dmVtLCBuYXDFmS5cbiIKKyJcdFwiL3VuaXhcIiDEjWkgXCIvdW5peC5zYXZlXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0TmFtZSBvZiBCb290ZmlsZSB0b28gbG9uZzogIDE2IGJ5dGVzIG1heGltdW0uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdE7DoXpldiBzdGFydG92YWPDrWhvIHNvdWJvcnUgamUgcMWZw61sacWhIGRsb3Vow706IDE2IGJhanTFryBqZSBtYXhpbXVtLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIG11c3QgaGF2ZSBhIGZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0U3RhcnRvdmFjw60gc291Ym9yIG11c8OtIGLDvXQgemFkw6FuIHBsbsO9bSBuw6F6dmVtLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVdsSbZG9tdGUgc2ksIMW+ZSBleGlzdGVuY2Ugc3RhcnRvdmFjw61obyBzb3Vib3J1IG5lbsOtIG92xJvFmW92w6FuYS5cbiIKKyJcdEltcGxpY2l0bsSbIHNlIHBvdcW+aWplIFwiL3VuaXhcIiBhIGpha28gesOhbG9oYSBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0U3RhcnRvdmFjw60gc291Ym9yIGJ5bCB6bcSbbsSbbiBuYSBcIiVzXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICJFeGlzdHVqZSB2w61jZSBuZcW+IGplZG5hIHBvbG/FvmthIGNlbMOpaG8gZGlza3UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4MworIywgYy1mb3JtYXQKK21zZ2lkICJObyBwYXJ0aXRpb25zIGRlZmluZWRcbiIKK21zZ3N0ciAiTmVqc291IGRlZmlub3bDoW55IMW+w6FkbsOpIGRpc2tvdsOpIG9kZMOtbHlcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJJUklYIGxpa2VzIHdoZW4gUGFydGl0aW9uIDExIGNvdmVycyB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIklSSVggcHJlZmVydWplLCBrZHnFviBEaXNrb3bDvSBvZGTDrWwgMTEgemF1asOtbcOhIGNlbMO9IGRpc2suXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIkRpc2tvdsO9IG9kZMOtbCB6YXVqw61tYWrDrWPDrSBjZWzDvSBkaXNrIGJ5IG3Em2wgemHEjcOtbmF0IGJsb2tlbSAwLFxuIgorIm5pa29saXYgYmxva2VtICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKyJEaXNrb3bDvSBvZGTDrWwgemF1asOtbWFqw61jw60gY2Vsw70gZGlzayBtw6EgdmVsaWtvc3QgIHYgYmxvY8OtY2ggcG91emUgJWQsXG4iCisiYWxlIHZlbGlrb3N0IGRpc2t1IHYgYmxvY8OtY2ggamUgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiT25lIFBhcnRpdGlvbiAoIzExKSBzaG91bGQgY292ZXIgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICJKZWRlbiBEaXNrb3bDvSBPZGTDrWwgKCMxMSkgYnkgbcSbbCB6YXVqw61tYXQgY2Vsw70gZGlzay5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCAlZCBuZXphxI3DrW7DoSBuYSBocmFuaWNpIGN5bGluZHJ1LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCAlZCBuZWtvbsSNw60gbmEgaHJhbmljaSBjeWxpbmRydS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIkRpc2tvdsOpIG9kZMOtbHkgJWQgYSAlZCBzZSBuYXZ6w6FqZW0gcMWZZWtyw712YWrDrSAlZCBzZWt0b3J5LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDg0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCBvZiAlOHUgc2VjdG9ycyAtIHNlY3RvcnMgJTh1LSV1XG4iCittc2dzdHIgIk5ldnl1xb7DrXZhbsO9IHByb3N0b3Igb8KgdmVsaWtvc3RpICUnOHUgc2VrdG9yxa/CoOKAkyBzZWt0b3J5ICU4dS0ldVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgYm9vdCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTdGFydG92YWPDrSBkaXNrb3bDvSBvZGTDrWwgbmVleGlzdHVqZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlza292w70gb2Rkw61sIHBybyBvZGtsw6FkYWPDrSBwcm9zdG9yIG5lZXhpc3R1amUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlza292w70gb2Rkw61sIHBybyBvZGtsw6FkYWPDrSBwcm9zdG9yIG5lbcOhIHphZMOhbiB0eXAuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiXHRWeWJyYWwganN0ZSBzaSBuZW9idnlrbMO9IG7DoXpldiBwcm8gc3RhcnRvdmFjw60gc291Ym9yLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkxpdHVqaSwgbcWvxb5ldGUgbcSbbml0IHpuYcSNa3UgbmVwcsOhemRuw71jaCBkaXNrb3bDvWNoIG9kZMOtbMWvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJEb3BvcnXEjXVqZSBzZSwgYWJ5IGRpc2tvdsO9IG9kZMOtbCB6YcSNw61uYWrDrWPDrSBuYSBwb3ppY2kgMCBieWwgdHlwdVxuIgorIuKAnlNHSSB2b2xoZHLigJwuIElSSVggamVqIHBvdcW+w612w6Ega8KgcMWZw61zdHVwdSBrIG7DoXN0cm9qxa9tIGpha28gamUgc2FzaFxuIgorImEgZnguIFbDvWppbWtvdSBqZSBwb3V6ZSDigJ5TR0kgc3ZhemVr4oCcIHphdWrDrW1hasOtY8OtIGNlbMO9IGRpc2suXG4iCisiWmFkZWp0ZSBBTk8sIHBva3VkIGpzdGUgc2kgamlzdCwgxb5lIGNoY2V0ZSBvem5hxI1pdCB0ZW50byBkaXNrb3bDvSBvZGTDrWwgIgorImppbmFrLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiQU5PXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiVsOtdGUsIMW+ZSBuYSBWYcWhZW0gZGlza3Ugc2UgZGlza292w6kgb2Rkw61seSBwxZlla3LDvXZhasOtP1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAiUG9rb3XFocOtbSBzZSBhdXRvbWF0aWNreSB2eXR2b8WZaXQgcG9sb8W+a3UgcHJvIGNlbMO9IGRpc2suXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkRpc2tvdsOpIG9kZMOtbHkgamnFviB6YWLDrXJhasOtIGNlbMO9IHByb3N0b3IgZGlza3kuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIkRpc2tvdsOpIG9kZMOtbHkgc2UgcMWZZWtyw712YWrDrS4gTmVqcHJ2ZSB0byBvcHJhdnRlIVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjQ0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IGVsZXZlbnRoIHBhcnRpdGlvblxuIgorImNvdmVycyB0aGUgZW50aXJlIGRpc2sgYW5kIGlzIG9mIHR5cGUgYFNHSSB2b2x1bWUnXG4iCittc2dzdHIgIiIKKyJEb3BvcnXEjXVqZSBzZSwgYWJ5IGplZGVuw6FjdMO9IGRpc2tvdsO9IG9kZMOtbCB6YXVqw61tYWwgY2Vsw71cbiIKKyJwcm9zdG9yIGRpc2t1IGEgYnlsIHR5cHUg4oCeU0dJIHN2YXpla+KAnFxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIGdldCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKyJUYWt0byBzZSBkaXNrb3bDqSBvZGTDrWx5IGJ1ZG91IG5hdnrDoWplbSBwxZlla3LDvXZhdC4gTmVqcHJ2ZSB0byBvcHJhdnRlIVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiBMYXN0ICVzIgorbXNnc3RyICIgUG9zbGVkbsOtICVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBTR0kgZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuIgorIlxuIgorbXNnc3RyICIiCisiVnl0dsOhxZnDrW0gbm92w70gU0dJIHBvcGlzIGRpc2t1LiBabcSbbnkgYnVkb3UgdWxvxb5lbnkgcG91emUgZG8gcGFtxJt0aSxcbiIKKyJkb2t1ZCBzZSBuZXJvemhvZG5ldGUgamUgdWxvxb5pdCBuYSBkaXNrLiBQb3TDqSBqacW+IG5lYnVkb3Ugc3RhcsOhIGRhdGFcbiIKKyJwb2Nob3BpdGVsbsSbIGRvc3R1cG7DoS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjcxOCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiAgQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXMuICBVc2luZyBnZW9tZXRyeSBjeWxpbmRlciB2YWx1ZSBvZiAlIgorImQuXG4iCisiVGhpcyB2YWx1ZSBtYXkgYmUgdHJ1bmNhdGVkIGZvciBkZXZpY2VzID4gMzMuOCBHQi5cbiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw606IGlvY3RsIEJMS0dFVFNJWkUgc2VsaGFsbyBuYSAlcy4gUHJvIGdlb21ldHJpaSBwb3XFvsOtdsOhbSBwb8SNZXRcbiIKKyJjeWxpbmRyxa8gJWQuXG4iCisiVGF0byBob2Rub3RhIG3Fr8W+ZSBiw710IHprcsOhY2VuYSBwcm8gemHFmcOtemVuw60gPiAzMyw4wqBHQi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8ga2VlcCBwYXJhbWV0ZXJzIG9mIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiUG9rb3XFocOtbSBzZSB6YWNob3ZhdCBwYXJhbWV0cnkgZGlza292w6lobyBvZGTDrWx1ICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklEPSUwMnhcdFNUQVJUPSVkXHRMRU5HVEg9JWRcbiIKK21zZ3N0ciAiSUQ9JTAyeFx0WkHEjMOBVEVLPSVkXHREw4lMS0E9JWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4Cittc2dpZCAiVW5hc3NpZ25lZCIKK21zZ3N0ciAiTmVwxZlpxZlhemVubyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiU3VuT1Mgcm9vdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1Mgc3dhcCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIkNlbMO9IGRpc2siCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBzdGFuZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICJTdW5PUyB2YXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICJOw6Foci4gc2VrdG9yeSBTdW5PUyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4Cittc2dpZCAiU3VuT1MgY2FjaGVmcyIKK21zZ3N0ciAiU3VuT1MgY2FjaGVmcyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIlZ5aHJhemVubyBwcm8gU3VuT1MiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMworbXNnaWQgIkxpbnV4IHJhaWQgYXV0b2RldGVjdCIKK21zZ3N0ciAiTGludXggUkFJRCBzYW1vcm96cG96bmF0ZWxuw70iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorIk5hbGV6bCBqc2VtIHN1biBwb3BpcyBkaXNrdSBzIGNoeWJuw71jaCBrb250cm9sbsOtbSBzb3XEjXRlbS5cbiIKKyJQcmF2ZMSbcG9kb2JuxJsgYnVkZXRlIG11c2V0IG5hc3Rhdml0IHbFoWVjaG55IGhvZG5vdHkgamFrbyBobGF2eSwgc2VrdG9yeSxcbiIKKyJjeWxpbmRyeSBhIGRpc2tvdsOpIG9kZMOtbHksIG5lYm8gdnl0dm/FmWl0IG5vdm91IHRhYnVsa3UgKHDFmcOta2F6IHMgdiBobGF2bsOtXG4iCisibmFiw61kY2UpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHZlcnNpb24gWzB4JTA4eF0uXG4iCittc2dzdHIgIk5hbGV6bCBqc2VtIHN1bm92c2vDvSBwb3BpcyBkaXNrdSBzwqBjaHlibm91IHZlcnrDrSBbMHglMDh4XS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1MworIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3Jvbmcgc2FuaXR5IFsweCUwOHhdLlxuIgorbXNnc3RyICJOYWxlemwganNlbSBzdW5vdnNrw70gcG9waXMgZGlza3UgcyBjaHlibsO9bSDigJ5zYW5pdHnigJwgWzB4JTA4eF0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgIk5hbGV6bCBqc2VtIHN1bm92c2vDvSBwb3BpcyBkaXNrdSBzwqBjaHlibsO9bSBwb8SNdGVtX29kZMOtbMWvIFsldV0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJWYXJvdsOhbsOtOiBDaHlibsOpIGhvZG5vdHkgbXVzw60gYsO9dCBvcHJhdmVueSBhIGJ1ZGUgdGFrIHXEjWluxJtubyBwxZlpIHrDoXBpc3UgIgorIih3KVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBzdW4gZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiVnl0dsOhxZnDrW0gbm92b3Ugc3Vub3Zza291IHRhYnVsa3Ugcm96ZMSbbGVuw60gZGlza3UuIFptxJtueSBidWRvdSB1bG/FvmVueSBwb3V6ZVxuIgorImRvIHBhbcSbdGksIGRva3VkIHNlIG5lcm96aG9kbmV0ZSBqZSB1bG/Fvml0IG5hIGRpc2suIFBvdMOpIGppxb4gbmVidWRvdSBzdGFyw6FcbiIKKyJkYXRhIHBvY2hvcGl0ZWxuxJsgZG9zdHVwbsOhLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAiU2VrdG9yxa8vc3RvcHUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXNuJ3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIkRpc2tvdsO9IG9kZMOtbCAlZCBuZWtvbsSNw60gbmEgaHJhbmljaSBjeWxpbmRydS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgb3ZlcmxhcHMgd2l0aCBvdGhlcnMgaW4gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJEaXNrb3bDvSBvZGTDrWwgJWQgcMWZZXNhaHVqZSBkbyBqaW7DvWNoIHYgc2VrdG9yZWNoICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICJOZXZ5dcW+w612YW7DvSBwcm9zdG9yIC0gc2VrdG9yeSAwLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJOZXZ5dcW+w612YW7DvSBwcm9zdG9yIC0gc2VrdG9yeSAlZC0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdGhlciBwYXJ0aXRpb25zIGFscmVhZHkgY292ZXIgdGhlIHdob2xlIGRpc2suXG4iCisiRGVsZXRlIHNvbWUvc2hyaW5rIHRoZW0gYmVmb3JlIHJldHJ5LlxuIgorbXNnc3RyICIiCisiSmluw6kgZGlza292w6kgb2Rkw61seSBqacW+IHphdWrDrW3DoSBjZWzDvSBkaXNrLlxuIgorIlNtYcW+dGUvem1lbsWhZXRlIG7Em2pha8OpIGEgemt1c3RlIHRvIHpub3Z1LlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiVmVsbWkgc2UgZG9wb3J1xI11amUsIGFieSB0xZlldMOtIG9kZMOtbCB6YXVqw61tYWwgY2Vsw70gcHJvc3RvciBkaXNrdVxuIgorImEgYnlsIHR5cHUg4oCeQ2Vsw70gZGlza+KAnFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZCBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWt0b3IgJWQgamUgamnFviBhbG9rb3bDoW5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmVuJ3QgY292ZXJlZCB0aGUgd2hvbGUgZGlzayB3aXRoIHRoZSAzcmQgcGFydGl0aW9uLCBidXQgeW91ciB2YWx1ZVxuIgorIiVkICVzIGNvdmVycyBzb21lIG90aGVyIHBhcnRpdGlvbi4gWW91ciBlbnRyeSBoYXMgYmVlbiBjaGFuZ2VkXG4iCisidG8gJWQgJXNcbiIKK21zZ3N0ciAiIgorIlTFmWV0w60gZGlza292w70gb2Rkw61sIG5lemFiw61yw6EgY2Vsw70gZGlzaywgYWxlIHZhxaFlIGhvZG5vdGEgJWQgJXNcbiIKKyJ6YXVqw61tw6Egamluw6kgZGlza292w6kgb2Rkw61seS4gVmHFoWUgcG9sb8W+a2EgYnlsYSB6bcSbbsSbbmEgbmEgJWQgJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklmIHlvdSB3YW50IHRvIG1haW50YWluIFN1bk9TL1NvbGFyaXMgY29tcGF0aWJpbGl0eSwgY29uc2lkZXIgbGVhdmluZyB0aGlzXG4iCisicGFydGl0aW9uIGFzIFdob2xlIGRpc2sgKDUpLCBzdGFydGluZyBhdCAwLCB3aXRoICV1IHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorIlBva3VkIGNoY2V0ZSB6YWNob3ZhdCBrb21wYXRpYmlsaXR1IHNlIFN1bk9TL1NvbGFyaXNlbSwgenZhxb50ZSBwb25lY2jDoW7DrVxuIgorInRvaG90byBkaXNrb3bDqWhvIG9kZMOtbHUgamFrbyBDZWzDqWhvIGRpc2t1ICg1KSwgemHEjcOtbmFqw61jw61obyBuYSAwIG8gZMOpbGNlXG4iCisidiBzZWt0b3JlY2ggJXVcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIkRvcG9ydcSNdWplIHNlLCBhYnkgZGlza292w70gb2Rkw61sIHphxI3DrW5hasOtY8OtIG5hIHBvc3VudSAwIGJ5bCB0eXB1XG4iCisiVUZTLCBFWFQyRlMgxI1pIFN1bk9TIHN3YXAuIFZ5dHZvxZllbsOtIG9ka2zDoWRhY8OtaG8gcHJvc3RvcnUgcHJvIExpbnV4XG4iCisibmEgdG9tdG8gbcOtc3TEmyBieSBtb2hsbyB6bmnEjWl0IHRhYnVsa3Ugcm96ZMSbbGVuw60gZGlza3UgYSBzdGFydG92YWPDrSBibG9rLlxuIgorIlphZGVqdGUgWUVTLCBwb2t1ZCBqc3RlIHNpIGppc3QsIMW+ZSBjaGNldGUgdGVudG8gZGlza292w70gb2Rkw61sIG96bmHEjWl0IDgyXG4iCisiKG9ka2zDoWRhY8OtIHByb3N0b3IgcHJvIExpbnV4KTogIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIHJwbVxuIgorIiVkIGN5bGluZGVycywgJWQgYWx0ZXJuYXRlIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyJMYWJlbCBJRDogJXNcbiIKKyJWb2x1bWUgSUQ6ICVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoc3Vub3Zza8O9IHRhYnVsa2Egcm96ZMSbbGVuw60gZGlza3UpOiBobGF2OiAlJ2QsIHNla3RvcsWvOiAlJ2xsdSxcbiIKKyJvL206ICUnZCwgY3lsaW5kcsWvOiAlJ2QsIG7DoWhyYWRuw61jaCBjeWxpbmRyxa86ICUnZCwgZnl6aWNrw71jaCBjeWxpbmRyxa86ICUnZFxuIgorImV4dHJhIHNla3RvcsWvL2N5bDogJWQsIHByb2tsw6Fkw6Fuw606ICVkOjFcbiIKKyJJRCBqbWVub3ZreTogJXNcbiIKKyJJRCBzdmF6a3U6ICVzXG4iCisiSmVkbm90a3kgPSAlcyBwbyAlZCAqIDUxMiBiYWp0ZWNoXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoc3Vub3Zza8OhIHRhYnVsa2Egcm96ZMSbbGVuw60gZGlza3UpOiBobGF2OiAlJ2QsIHNla3RvcsWvOiAlJ2xsdSxcbiIKKyJjeWxpbmRyxa86ICUnZFxuIgorIkplZG5vdGt5ID0gJXMgcG8gJWQgKiA1MTIgYmFqdGVjaFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBQxZnDrXpuYWsgWmHEjcOhdGVrICAgICBLb25lYyAgQmxva3kgICAgSWQgIFN5c3TDqW1cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYyNQorbXNnaWQgIk51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICJQb8SNZXQgYWx0ZXJuYXRpdm7DrWNoIGN5bGluZHLFryIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYzNworbXNnaWQgIkV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICJFeHRyYSBzZWt0b3J5IG5hIGN5bGluZHIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NDQKK21zZ2lkICJJbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiSW50ZXJsZWF2ZSBmYWt0b3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTEKK21zZ2lkICJSb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiUnljaGxvc3Qgb3TDocSNZW7DrSAob3RtKSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1OAorbXNnaWQgIk51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIlBvxI1ldCBmeXppY2vDvWNoIGN5bGluZHLFryIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIlByw6F6ZG7DvSBwcm9zdG9yIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcKK21zZ2lkICJGQVQxMiIKK21zZ3N0ciAiRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OAorbXNnaWQgIlhFTklYIHJvb3QiCittc2dzdHIgIlhFTklYIHJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OQorbXNnaWQgIlhFTklYIHVzciIKK21zZ3N0ciAiWEVOSVggdXNyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwCittc2dpZCAiRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMQorbXNnaWQgIkV4dGVuZGVkIgorbXNnc3RyICJSb3rFocOtxZllbsO9IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIHN0YXJ0b3ZhY8OtIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgemF2YWTEm8SNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICJXOTUgUm96xaEuIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIxCittc2dpZCAiT1BVUyIKK21zZ3N0ciAiT1BVUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMgorbXNnaWQgIkhpZGRlbiBGQVQxMiIKK21zZ3N0ciAiU2tyeXTDoSBGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMworbXNnaWQgIkNvbXBhcSBkaWFnbm9zdGljcyIKK21zZ3N0ciAiQ29tcGFxIGRpYWdub3N0aWNzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI0Cittc2dpZCAiSGlkZGVuIEZBVDE2IDwzMk0iCittc2dzdHIgIlNrcnl0w6EgRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNQorbXNnaWQgIkhpZGRlbiBGQVQxNiIKK21zZ3N0ciAiU2tyeXTDoSBGQVQxNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNgorbXNnaWQgIkhpZGRlbiBIUEZTL05URlMiCittc2dzdHIgIlNrcnl0w6EgSFBGUy9OVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI3Cittc2dpZCAiQVNUIFNtYXJ0U2xlZXAiCittc2dzdHIgIkFTVCBTbWFydFNsZWVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI4Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiIKK21zZ3N0ciAiU2tyeXTDoSBXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJTa3J5dMOhIFc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMTYgKExCQSkiCittc2dzdHIgIlNrcnl0w6EgVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMxCittc2dpZCAiTkVDIERPUyIKK21zZ3N0ciAiTkVDIERPUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMgorbXNnaWQgIlBsYW4gOSIKK21zZ3N0ciAiUGxhbiA5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMzCittc2dpZCAiUGFydGl0aW9uTWFnaWMgcmVjb3ZlcnkiCittc2dzdHIgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIlZlbml4IDgwMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM1Cittc2dpZCAiUFBDIFBSZVAgQm9vdCIKK21zZ3N0ciAiUFBDIFBSZVAgQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNgorbXNnaWQgIlNGUyIKK21zZ3N0ciAiU0ZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM3Cittc2dpZCAiUU5YNC54IgorbXNnc3RyICJRTlg0LngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzgKK21zZ2lkICJRTlg0LnggMm5kIHBhcnQiCittc2dzdHIgIlFOWDQueCAyLiDEjcOhc3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIlFOWDQueCAzLiDEjcOhc3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDAKK21zZ2lkICJPblRyYWNrIERNIgorbXNnc3RyICJPblRyYWNrIERNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQxCittc2dpZCAiT25UcmFjayBETTYgQXV4MSIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MgorbXNnaWQgIkNQL00iCittc2dzdHIgIkNQL00iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDMKK21zZ2lkICJPblRyYWNrIERNNiBBdXgzIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ0Cittc2dpZCAiT25UcmFja0RNNiIKK21zZ3N0ciAiT25UcmFja0RNNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NQorbXNnaWQgIkVaLURyaXZlIgorbXNnc3RyICJFWi1Ecml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NgorbXNnaWQgIkdvbGRlbiBCb3ciCittc2dzdHIgIkdvbGRlbiBCb3ciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDcKK21zZ2lkICJQcmlhbSBFZGlzayIKK21zZ3N0ciAiUHJpYW0gRWRpc2siCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk5Cittc2dpZCAiU3BlZWRTdG9yIgorbXNnc3RyICJTcGVlZFN0b3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICJHTlUgSFVSRCDEjWkgU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldFdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0V2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiU3RhcsO9IE1pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8gc3RhcsO9IExpbnV4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2Cittc2dpZCAiTGludXggc3dhcCAvIFNvbGFyaXMiCittc2dzdHIgIkxpbnV4IHN3YXAvU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIHNrcnl0w70gQzogZGlzayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCByb3rFocOtxZllbsO9IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIk5URlMgc3ZhemVrIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYyCittc2dpZCAiTGludXggcGxhaW50ZXh0IgorbXNnc3RyICJMaW51eCBwbGFpbnRleHQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjQKK21zZ2lkICJBbW9lYmEiCittc2dzdHIgIkFtb2ViYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NQorbXNnaWQgIkFtb2ViYSBCQlQiCittc2dzdHIgIkFtb2ViYSBCQlQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjYKK21zZ2lkICJCU0QvT1MiCittc2dzdHIgIkJTRC9PUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NworbXNnaWQgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKK21zZ3N0ciAiSUJNIFRoaW5rcGFkIGhpYmVybmFjZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OAorbXNnaWQgIkZyZWVCU0QiCittc2dzdHIgIkZyZWVCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjkKK21zZ2lkICJPcGVuQlNEIgorbXNnc3RyICJPcGVuQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIk5lWFRTVEVQIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcxCittc2dpZCAiRGFyd2luIFVGUyIKK21zZ3N0ciAiRGFyd2luIFVGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MgorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiTmV0QlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjczCittc2dpZCAiRGFyd2luIGJvb3QiCittc2dzdHIgIkRhcndpbiBib290b3ZhY8OtIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc0Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiSEZTL0hGUysiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzUKK21zZ2lkICJCU0RJIGZzIgorbXNnc3RyICJCU0RJIFNTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc2Cittc2dpZCAiQlNESSBzd2FwIgorbXNnc3RyICJCU0RJIHN3YXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIlNrcnl0w70gQm9vdCBXaXphcmQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIlphdmFkxJvEjSBTb2xhcmlzdSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJkYXRhIG1pbW8gU1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODUKK21zZ2lkICJDUC9NIC8gQ1RPUyAvIC4uLiIKK21zZ3N0ciAiQ1AvTSAvIENUT1MgLyDigKYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODcKK21zZ2lkICJEZWxsIFV0aWxpdHkiCittc2dzdHIgIkRlbGwgVXRpbGl0eSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OAorbXNnaWQgIkJvb3RJdCIKK21zZ3N0ciAiQm9vdEl0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg5Cittc2dpZCAiRE9TIGFjY2VzcyIKK21zZ3N0ciAiRE9TIGFjY2VzcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MQorbXNnaWQgIkRPUyBSL08iCittc2dzdHIgIkRPUyBwcm8gxI10ZW7DrSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NAorbXNnaWQgIkJlT1MgZnMiCittc2dzdHIgIkJlT1MgU1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTUKK21zZ2lkICJHUFQiCittc2dzdHIgIkdQVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NgorbXNnaWQgIkVGSSAoRkFULTEyLzE2LzMyKSIKK21zZ3N0ciAiRUZJIChGQVQtMTIvMTYvMzIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk3Cittc2dpZCAiTGludXgvUEEtUklTQyBib290IgorbXNnc3RyICJ6YXZhZMSbxI0gTGludXgvUEEtUklTQ3UiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAwCittc2dpZCAiRE9TIHNlY29uZGFyeSIKK21zZ3N0ciAiRE9TIHNla3VuZMOhcm7DrSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDEKK21zZ2lkICJWTXdhcmUgVk1GUyIKK21zZ3N0ciAiVk13YXJlIFZNRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIlZNd2FyZSBWTUtDT1JFIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNgorbXNnaWQgIkxBTnN0ZXAiCittc2dzdHIgIkxBTnN0ZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA3Cittc2dpZCAiQkJUIgorbXNnc3RyICJCQlQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yIG9uICVzIC0gY2Fubm90IHNlZWsgdG8gJWx1XG4iCittc2dzdHIgImNoeWJhIHBvc3VudSB1a2F6b3bDoXRrYSBuYSAlcyAtIHVrYXpvdsOhdGtvIG5lbHplIHBvc3Vub3V0IG5hICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgIiIKKyJjaHliYSBwxZlpIHBvc3VudSB1a2F6b3bDoXRrYTogcG/FvmFkYXZlayAweCUwOHglMDh4LCB2w71zbGVkZWsgMHglMDh4JTA4eFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTUKK21zZ2lkICJvdXQgb2YgbWVtb3J5IC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIm5lZG9zdGF0ZWsgcGFtxJt0aSAtIGtvbsSNw61tXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiY2h5YmEgxI10ZW7DrSBuYSAlcyAtIHNla3RvciAlbHUgbmVsemUgxI3DrXN0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJFUlJPUjogc2VjdG9yICVsdSBkb2VzIG5vdCBoYXZlIGFuIG1zZG9zIHNpZ25hdHVyZVxuIgorbXNnc3RyICJDSFlCQTogc2VrdG9yICVsdSBuZW5lc2Ugc3RvcHkgTVMtRE9TVVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXMgLSBjYW5ub3Qgd3JpdGUgc2VjdG9yICVsdVxuIgorbXNnc3RyICJjaHliYSB6w6FwaXN1IG5hICVzIC0gc2VrdG9yICVsdSBuZWx6ZSB6YXBzYXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiBzZWN0b3Igc2F2ZSBmaWxlICglcylcbiIKK21zZ3N0ciAic291Ym9yIHBybyB1bG/FvmVuw60gc2VrdG9yxa8gKCVzKSBuZWx6ZSBvdGV2xZnDrXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzXG4iCittc2dzdHIgImNoeWJhIHrDoXBpc3UgbmEgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJ2b2zDoW7DrSBzdGF0IHBybyBzb3Vib3IgcyB1bG/FvmVuw71taSBzZWt0b3J5ICglcykgc2VsaGFsb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDAKK21zZ2lkICJwYXJ0aXRpb24gcmVzdG9yZSBmaWxlIGhhcyB3cm9uZyBzaXplIC0gbm90IHJlc3RvcmluZ1xuIgorbXNnc3RyICJzb3Vib3IgcyB1bG/FvmVuw71taSBzZWt0b3J5IG3DoSBjaHlibm91IHZlbGlrb3N0IC0gbmVidWRlIG9ibm92ZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQ0Cittc2dpZCAib3V0IG9mIG1lbW9yeT9cbiIKK21zZ3N0ciAibmVkb3N0YXRlayBwYW3Em3RpP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgInNvdWJvciBzIHVsb8W+ZW7DvW1pIHNla3RvcnkgKCVzKSBuZWx6ZSBvdGV2xZnDrXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiY2h5YmEgcMWZaSDEjXRlbsOtICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAiemHFmcOtemVuw60gJXMgbmVsemUgb3RldsWZw610IHBybyB6w6FwaXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICJjaHliYSBwxZlpIHrDoXBpc3Ugc2VrdG9ydSAlbHUgbmEgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgZ2VvbWV0cnlcbiIKK21zZ3N0ciAiRGlzayAlczogZ2VvbWV0cmlpIG5lbHplIHpqaXN0aXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICJEaXNrICVzOiB2ZWxpa29zdCBuZWx6ZSB6amlzdGl0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc3RhcnQ9JWx1IC0gdGhpcyBsb29rcyBsaWtlIGEgcGFydGl0aW9uIHJhdGhlciB0aGFuXG4iCisidGhlIGVudGlyZSBkaXNrLiBVc2luZyBmZGlzayBvbiBpdCBpcyBwcm9iYWJseSBtZWFuaW5nbGVzcy5cbiIKKyJbVXNlIHRoZSAtLWZvcmNlIG9wdGlvbiBpZiB5b3UgcmVhbGx5IHdhbnQgdGhpc11cbiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw606IHphxI3DoXRlaz0lbHUgLSB0byB2eXBhZMOhIHNww63FoWUgamFrbyBkaXNrb3bDvSBvZGTDrWwgbmXFvmxpXG4iCisiY2Vsw70gZGlzay4gUG91xb5pdMOtIGZkaXNrdSBqZSB2IHRvbSBwxZnDrXBhZMSbIHByYXZkxJtwb2RvYm7EmyB6Ynl0ZcSNbsOpXG4iCisiW1BvdcW+aWp0ZSBwxZllcMOtbmHEjSAtLWZvcmNlIHBva3VkIHRvIG9wcmF2ZHUgY2hjZXRlLl1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGhlYWRzXG4iCittc2dzdHIgIlZhcm92w6Fuw606IGRsZSBIRElPX0dFVEdFTyBqZSBwb8SNZXQgaGxhdiAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IHNlY3RvcnNcbiIKK21zZ3N0ciAiVmFyb3bDoW7DrTogZGxlIEhESU9fR0VUR0VPIGplIHBvxI1ldCBzZWt0b3LFryAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIlZhcm92w6Fuw606IGRsZSBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIGplIHBvxI1ldCBjeWxpbmRyxa8gJWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdW5saWtlbHkgbnVtYmVyIG9mIHNlY3RvcnMgKCVsdSkgLSB1c3VhbGx5IGF0IG1vc3QgNjNcbiIKKyJUaGlzIHdpbGwgZ2l2ZSBwcm9ibGVtcyB3aXRoIGFsbCBzb2Z0d2FyZSB0aGF0IHVzZXMgQy9IL1MgYWRkcmVzc2luZy5cbiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw606IHBvZGl2bsO9IHBvxI1ldCBzZWt0b3LFryAoJWx1KSAtIG9idnlrbGUgbmViw712w6EgdsOtY2UgbmXFviA2M1xuIgorIlRvIHpwxa9zb2LDrSBwcm9ibMOpbXkgdsWhZW0gcHJvZ3JhbcWvbSwga3RlcsOpIHBvdcW+w612YWrDrSBDSFMgYWRyZXNvdsOhbsOtLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXM6IGN5bGluZHLFrzogJWx1LCBobGF2OiAlbHUsIHNla3RvcsWvL3N0b3B1OiAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGhlYWQ6ICVsdSAoc2hvdWxkIGJlIGluIDAtJWx1KVxuIgorbXNnc3RyICIlcyBkaXNrb3bDqWhvIG9kZMOtbHUgJXMgbcOhIGNoeWJuw70gcG/EjWV0IGhsYXY6ICVsdSAobcSbbG8gYnkgYsO9dCAwLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgZGlza292w6lobyBvZGTDrWx1ICVzIG3DoSBjaHlibsO9IHBvxI1ldCBzZWt0b3LFrzogJWx1IChtxJtsbyBieSBiw710IDEtJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgY3lsaW5kZXJzOiAlbHUgKHNob3VsZCBiZSBpbiAwLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyBkaXNrb3bDqWhvIG9kZMOtbHUgJXMgbcOhIGNoeWJuw70gcG/EjWV0IGN5bGluZHLFrzogJWx1IChtxJtsbyBieSBiw710IDAtJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIklkICBOw6F6ZXZcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSAuLi5cbiIKK21zZ3N0ciAiTmHEjcOtdMOhbSB6bm92dSB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t14oCmXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxMQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKyJOZXBvZGHFmWlsbyBzZSB6bm92dSBuYcSNw61zdCB0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1LlxuIgorIkTFmcOtdmUgbmXFviBwb3XFvmlqZXRlIG1rZnMsIHNwdXPFpXRlIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIG5lYm8gcmVzdGFydHVqdGVcbiIKKyJzeXN0w6ltLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2xvc2luZyAlc1xuIgorbXNnc3RyICJDaHliYSBwxZlpIHphdsOtcsOhbsOtICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiZGlza292w70gb2Rkw61sICVzIG5lZXhpc3R1amVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODc4Cittc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCAtIHVzaW5nIHNlY3RvcnNcbiIKK21zZ3N0ciAiTmV6bsOhbcO9IGZvcm3DoXQgLSBwb3XFvsOtdsOhbSBzZWt0b3J5XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkyOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmltcGxlbWVudGVkIGZvcm1hdCAtIHVzaW5nICVzXG4iCittc2dzdHIgIm5lcG91xb7DrXZhbsO9IGZvcm3DoXQgLSBwb3XFvsOtdsOhbSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gY3lsaW5kZXJzIG9mICVsdSBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkplZG5vdGt5ID0gY3lsaW5kcnkgcG8gJWx1IGJhanRlY2gsIGJsb2t5IHBvIDEwMjQgYmFqdGVjaCwgcG/EjcOtdMOhbm8gb2QgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICJaYcWZw616ZW7DrSAgQm9vdCBaYcSNw6F0ZWsgICBLb25lYyBDeWxkcsWvICAgQmxva8WvICAgICBJZCAgU3lzdMOpbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gc2VjdG9ycyBvZiA1MTIgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkplZG5vdGt5ID0gc2VrdG9yeSBwbyA1MTIgYmFqdGVjaCwgcG/EjcOtdMOhbm8gb2QgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIlphxZnDrXplbsOtICBCb290ICAgIFphxI3DoXRlayAgICAgS29uZWMgU2VrdG9yxa8gICBJZCAgU3lzdMOpbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkplZG5vdGt5ID0gYmxva3kgcG8gMTAyNCBiYWp0ZWNoLCBwb8SNw610w6FubyBvZCAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICBTdGFydCAgICAgICBFbmQgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiWmHFmcOtemVuw60gIEJvb3QgICBaYcSNw6F0ZWsgICAgIEtvbmVjICBCbG9rxa8gICAgIElkICBTeXN0w6ltXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkplZG5vdGt5ID0gbWViaWJhanR5IHBvIDEwNDg1NzYgYmFqdGVjaCwgYmxva3kgcG8gMTAyNCBiYWp0ZWNoLCBwb8SNw610w6FubyBvZCAlIgorImRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgIE1pQiAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICJaYcWZw616ZW7DrSAgQm9vdCBaYcSNw6F0ZWsgS29uZWMgIE1pQiAgICBCbG9rxa8gICAgIElkICBTeXN0w6ltXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJcdFx0emHEjcOhdGVrOiAoYyxoLHMpIHDFmWVkcG9rbGFkICglbGQsJWxkLCVsZCkgbmFsZXplbm8gKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIlx0XHRrb25lYzogKGMsaCxzKSBwxZllZHBva2xhZCAoJWxkLCVsZCwlbGQpIG5hbGV6ZW5vICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgImRpc2tvdsO9IG9kZMOtbCBrb27EjcOtIG5hIGN5bGluZHJ1ICVsZCwgdC5qLiB6YSBrb25jZW0gZGlza3VcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiTmVieWx5IG5hbGV6ZW55IMW+w6FkbsOpIGRpc2tvdsOpIG9kZMOtbHlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJWYXJvdsOhbsOtOiBaZMOhIHNlLCDFvmUgdGFidWxrYSByb3pkxJtsZW7DrSBkaXNrdSBieWxhIHZ5dHZvxZllbmFcbiIKKyJwcm8gQy9IL1M9Ki8lbGQvJWxkIChtw61zdG8gJWxkLyVsZC8lbGQpLlxuIgorIlpvYnJhenVqaSB6YSBwb3XFvml0w60gdMOpdG8gZ2VvbWV0cmllLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIk5lYnlsYSBuYWxlemVuYSDFvsOhZG7DoSB0YWJ1bGthIHJvemTEm2xlbsOtIGRpc2t1LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg4CisjLCBjLWZvcm1hdAorbXNnaWQgInN0cmFuZ2UsIG9ubHkgJWQgcGFydGl0aW9ucyBkZWZpbmVkLlxuIgorbXNnc3RyICJadmzDocWhdG7DrSAtIHBvxI1ldCBkZWZpbm92YW7DvWNoIGRpc2tvdsO9Y2ggb2Rkw61sxa8gamUgcG91emUgJWQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYnV0IGlzIG5vdCBtYXJrZWQgRW1wdHlcbiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw606IGRpc2tvdsO9IG9kZMOtbCAlcyBtw6EgdmVsaWtvc3QgMCBhIG5lbsOtIG96bmHEjWVuIGpha28gcHLDoXpkbsO9LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBpcyBib290YWJsZVxuIgorbXNnc3RyICJWYXJvdsOhbsOtOiBkaXNrb3bDvSBvZGTDrWwgJXMgbcOhIHZlbGlrb3N0IDAgYSBqZSBzdGFydG92YWPDrS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgbm9uemVybyBzdGFydFxuIgorbXNnc3RyICJWYXJvdsOhbsOtOiBkaXNrb3bDvSBvZGTDrWwgJXMgbcOhIHZlbGlrb3N0IDAgYSBuZW51bG92w70gemHEjcOhdGVrLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyAiCittc2dzdHIgIlZhcm92w6Fuw606IGRpc2tvdsO9IG9kZMOtbCAlcyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgbm90IGNvbnRhaW5lZCBpbiBwYXJ0aXRpb24gJXNcbiIKK21zZ3N0ciAibmVuw60gb2JzYcW+ZW4gdiBkaXNrb3bDqW0gb2Rkw61sdSAlcy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb25zICVzICIKK21zZ3N0ciAiVmFyb3bDoW7DrTogZGlza292w6kgb2Rkw61seSAlcyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiYW5kICVzIG92ZXJsYXBcbiIKK21zZ3N0ciAiYSAlcyBzZSBuYXZ6w6FqZW0gcMWZZWtyw712YWrDrS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogcGFydGl0aW9uICVzIGNvbnRhaW5zIHBhcnQgb2YgdGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisiYW5kIHdpbGwgZGVzdHJveSBpdCB3aGVuIGZpbGxlZFxuIgorbXNnc3RyICIiCisiVmFyb3bDoW7DrTogZGlza292w70gb2Rkw61sICVzIG9ic2FodWplIMSNw6FzdCB0YWJ1bGt5IHJvemTEm2xlbsOtIGRpc2t1IChzZWt0b3IgJSIKKyJsdSlcbiIKKyJhIHYgcMWZw61wYWTEmyB6YXBsbsSbbsOtIGppIHpuacSNw61cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgc3RhcnRzIGF0IHNlY3RvciAwXG4iCittc2dzdHIgIlZhcm92w6Fuw606IGRpc2tvdsO9IG9kZMOtbCAlcyB6YcSNw61uw6EgbmEgc2VrdG9ydSAwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGV4dGVuZHMgcGFzdCBlbmQgb2YgZGlza1xuIgorbXNnc3RyICJWYXJvdsOhbsOtOiBkaXNrb3bDvSBvZGTDrWwgJXMgcMWZZXNhaHVqZSB6YSBrb25lYyBkaXNrdS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorIlBvdXplIGplZGVuIHogcHJpbcOhcm7DrWNoIGRpc2tvdsO9Y2ggb2Rkw61sxa8gbcWvxb5lIGLDvXQgcm96xaHDrcWZZW7DvW0uXG4iCisiIChhxI1rb2xpdiB2IExpbnV4IHRvIG5lbsOtIHByb2Jsw6ltKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIlZhcm92w6Fuw606IGRpc2tvdsO9IG9kZMOtbCAlcyBuZXphxI3DrW7DoSBuYSBocmFuaWNpIGN5bGluZHJ1LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJWYXJvdsOhbsOtOiBkaXNrb3bDvSBvZGTDrWwgJXMgbmVrb27EjcOtIG5hIGhyYW5pY2kgY3lsaW5kcnUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiVmFyb3bDoW7DrTogdsOtY2UgbmXFviBqZWRlbiBwcmltw6FybsOtIGRpc2tvdsO9IG9kZMOtbCBqZSBvem5hxI1lbiBqYWtvIHN0YXJ0b3ZhY8OtLlxuIgorIkxJTFUgdG8gbmXEjWluw60gcHJvYmzDqW15LCBhbGUgRE9TIE1CUiB6IHRvaG90byBkaXNrdSBuZW5hc3RhcnR1amUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTgKK21zZ2lkICIiCisiV2FybmluZzogdXN1YWxseSBvbmUgY2FuIGJvb3QgZnJvbSBwcmltYXJ5IHBhcnRpdGlvbnMgb25seVxuIgorIkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIgorbXNnc3RyICIiCisiVmFyb3bDoW7DrTogb2J5xI1lam7EmyBqZSBtb8W+bsOpIHN0YXJ0b3ZhdCBwb3V6ZSB6IHByaW3DoXJuw61jaCBkaXNrb3bDvWNoIG9kZMOtbHzFry5cbiIKKyJMSUxPIG5lYnVkZSBicsOhdCBvaGxlZCBuYSBwxZnDrXpuYWsgJ3N0YXJ0b3ZhY8OtJy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiVmFyb3bDoW7DrTogxb7DoWRuw70gcHJpbcOhcm7DrSBkaXNrb3bDvSBvZGTDrWwgbmVuw60gb3puYcSNZW4gamFrbyBzdGFydG92YWPDrS5cbiIKKyJMSUxVIHRvIG5lxI1pbsOtIHByb2Jsw6lteSwgYWxlIERPUyB6IHRvaG90byBkaXNrdSBuZW5hc3RhcnR1amUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAiemHEjcOhdGVrIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisiZGlza292w70gb2Rkw61sICVzOiB6YcSNw6F0ZWs6IChjLGgscykgcMWZZWRwb2tsYWQgKCVsZCwlbGQsJWxkKSwgbmFsZXplbm9cbiIKKyIoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgImtvbmVjIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlczogZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisiZGlza292w70gb2Rkw61sICVzOiBrb25lYzogKGMsaCxzKSBwxZllZHBva2xhZCAoJWxkLCVsZCwlbGQpLCBuYWxlemVub1xuIgorIiglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgImRpc2tvdsO9IG9kZMOtbCAlcyBrb27EjcOtIG5hIGN5bGluZHJ1ICVsZCwgdC5qLiB6YSBrb25jZW0gZGlza3VcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM3OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc2hpZnRlZCBzdGFydCBvZiB0aGUgZXh0ZCBwYXJ0aXRpb24gZnJvbSAlbGQgdG8gJWxkXG4iCisiKEZvciBsaXN0aW5nIHB1cnBvc2VzIG9ubHkuIERvIG5vdCBjaGFuZ2UgaXRzIGNvbnRlbnRzLilcbiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw606IHphxI3DoXRlayByb3rFocOtxZllbsOpaG8gZGlza292w6lobyBvZGTDrWx1IHBvc3VudXQgeiAlbGQgbmEgJWxkLlxuIgorIihQb3V6ZSBwcm8gw7rEjWVseSB2w71waXN1LiBOZW3Em8WIdGUgamVobyBvYnNhaC4pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzODQKK21zZ2lkICIiCisiV2FybmluZzogZXh0ZW5kZWQgcGFydGl0aW9uIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnkuXG4iCisiRE9TIGFuZCBMaW51eCB3aWxsIGludGVycHJldCB0aGUgY29udGVudHMgZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJWYXJvdsOhbsOtOiByb3rFocOtxZllbsO9IGRpc2tvdsO9IG9kZMOtbCBuZXphxI3DrW7DoSBuYSBocmFuaWNpIGN5bGluZHJ1LlxuIgorIkRPUyBhIExpbnV4IGJ1ZG91IGplaG8gb2JzYWggaW50ZXJwcmV0b3ZhdCByb3pkw61sbsSbLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICJwxZnDrWxpxaEgbW5vaG8gZGlza292w71jaCBvZGTDrWzFryAtIGlnbm9ydWppID4gJWRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQxNworbXNnaWQgInRyZWUgb2YgcGFydGl0aW9ucz9cbiIKK21zZ3N0ciAic3Ryb20gZGlza292w71jaCBvZGTDrWzFrz9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUyNQorbXNnaWQgImRldGVjdGVkIERpc2sgTWFuYWdlciAtIHVuYWJsZSB0byBoYW5kbGUgdGhhdFxuIgorbXNnc3RyICJuYWxlemVuIERpc2sgTWFuYWdlciAtIHMgdMOtbSBuZXVtw61tIHByYWNvdmF0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIm5hbGV6ZW4gRE02IHBvZHBpcyAtIGtvbsSNw61tXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTIKK21zZ2lkICJzdHJhbmdlLi4uLCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJ6dmzDocWhdG7DreKApiwgcm96xaHDrcWZZW7DvSBkaXNrb3bDvSBvZGTDrWwgbyB2ZWxpa29zdGkgMD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCittc2dpZCAic3RyYW5nZS4uLiwgYSBCU0QgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAienZsw6HFoXRuw63igKYsIEJTRCBkaXNrb3bDvSBvZGTDrWwgbyB2ZWxpa29zdGkgMD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgJXM6IHVucmVjb2duaXplZCBwYXJ0aXRpb24gdGFibGUgdHlwZVxuIgorbXNnc3RyICIgJXM6IG5lcm96cG96bmFuw70gdHlwIHRhYnVsa3kgcm96ZMSbbGVuw60gZGlza3VcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYxNgorbXNnaWQgIi1uIGZsYWcgd2FzIGdpdmVuOiBOb3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiYnlsIHphZMOhbiBwxZllcMOtbmHEjSAtbjogTmljIG5lYnlsbyB6bcSbbsSbbm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzMgorbXNnaWQgIkZhaWxlZCBzYXZpbmcgdGhlIG9sZCBzZWN0b3JzIC0gYWJvcnRpbmdcbiIKK21zZ3N0ciAiQ2h5YmEgcMWZaSB1a2zDoWTDoW7DrSBzdGFyw71jaCBzZWt0b3LFryAtIGtvbsSNw61tXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzcgZmRpc2svc2ZkaXNrLmM6MTY0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgIkNoeWJhIHDFmWkgesOhcGlzdSBuYSBkaXNrb3bDvSBvZGTDrWwgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAicMWZw61sacWhIGRsb3Vow70gxI1pIG5lw7pwbG7DvSDFmcOhZGVrIC0ga29uxI3DrW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc1NQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogYD0nIGV4cGVjdGVkIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgInZzdHVwbsOtIGNoeWJhOiBwbyBwb2xvxb5jZSAlcyBqc2VtIG/EjWVrw6F2YWwgem5hayDigJ494oCcXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IHVuZXhwZWN0ZWQgY2hhcmFjdGVyICVjIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgInZzdHVwbsOtIGNoeWJhOiBuZW/EjWVrw6F2YW7DvSB6bmFrICVjIHBvIHBvbG/FvmNlICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICJuZXJvenBvem5hbsO9IHZzdHVwOiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxODEwCittc2dpZCAibnVtYmVyIHRvbyBiaWdcbiIKK21zZ3N0ciAixI3DrXNsbyBqZSBwxZnDrWxpxaEgdmVsaWvDqVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxODE0Cittc2dpZCAidHJhaWxpbmcganVuayBhZnRlciBudW1iZXJcbiIKK21zZ3N0ciAibmVzbXlzbHkgemEgxI3DrXNsZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTkzOAorbXNnaWQgIm5vIHJvb20gZm9yIHBhcnRpdGlvbiBkZXNjcmlwdG9yXG4iCittc2dzdHIgIm5lbsOtIG3DrXN0byBwcm8gcG9waXMgZGlza292w6lobyBvZGTDrWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5NzEKK21zZ2lkICJjYW5ub3QgYnVpbGQgc3Vycm91bmRpbmcgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIm9rb2xuw60gcm96xaFpxZl1asOtY8OtIGRpc2tvdsO9IG9kZMOtbCBuZWx6ZSB2eXR2b8WZaXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjAyMgorbXNnaWQgInRvbyBtYW55IGlucHV0IGZpZWxkc1xuIgorbXNnc3RyICJwxZnDrWxpxaEgbW5vaG8gdnN0dXBuw61jaCBwb2xvxb5la1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDU2Cittc2dpZCAiTm8gcm9vbSBmb3IgbW9yZVxuIgorbXNnc3RyICJKacW+IG5lanNvdSB2b2xuw6kgYmxva3lcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA3NQorbXNnaWQgIklsbGVnYWwgdHlwZVxuIgorbXNnc3RyICJDaHlibsO9IHR5cFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGdpdmVuIHNpemUgKCVsdSkgZXhjZWVkcyBtYXggYWxsb3dhYmxlIHNpemUgKCVsdSlcbiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw606IHphZGFuw6EgdmVsaWtvc3QoJWx1KSBwxZlla3JhxI11amUgbWF4aW3DoWxuw60gcG92b2xlbm91IHZlbGlrb3N0ICglIgorImx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTEzCittc2dpZCAiV2FybmluZzogZW1wdHkgcGFydGl0aW9uXG4iCittc2dzdHIgIlZhcm92w6Fuw606IHByw6F6ZG7DvSBkaXNrb3bDvSBvZGTDrWxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIlZhcm92w6Fuw606IGNoeWJuw70gemHEjcOhdGVrIGRpc2tvdsOpaG8gb2Rkw61sdSAoZMWZw612xJtqxaHDrSAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNDAKK21zZ2lkICJ1bnJlY29nbml6ZWQgYm9vdGFibGUgZmxhZyAtIGNob29zZSAtIG9yICpcbiIKK21zZ3N0ciAibmVyb3pwb3puYW7DvSBwxZnDrXpuYWsgJ3N0YXJ0b3ZhY8OtJyAtIHp2b2x0ZSAtIMSNaSAqXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNTcgZmRpc2svc2ZkaXNrLmM6MjE3MAorbXNnaWQgInBhcnRpYWwgYyxoLHMgc3BlY2lmaWNhdGlvbj9cbiIKK21zZ3N0ciAibmXDunBsbsOhIGMsaCxzIHNwZWNpZmlrYWNlP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICJSb3rFocOtxZllbsO9IGRpc2tvdsO9IG9kZMOtbCBuYSBuZW/EjWVrw6F2YW7DqW0gbcOtc3TEm1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjEzCittc2dpZCAiYmFkIGlucHV0XG4iCittc2dzdHIgImNoeWJuw70gdnN0dXBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAicMWZw61sacWhIG1ub2hvIGRpc2tvdsO9Y2ggb2Rkw61sxa9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisiVnN0dXAgdiBuw6FzbGVkdWrDrWPDrW0gZm9ybcOhdHU7IGNoeWLEm2rDrWPDrSBwb2xvxb5reSBidWRvdSBuYWhyYXplbnkgIgorImltcGxpY2l0bsOtbWlcbiIKKyJob2Rub3RhbWkuXG4iCisiPHphxI3DoXRlaz4gPHZlbGlrb3N0PiA8dHlwIFtFLFMsTCxYLGhleF0+IDxzdGFydG92YWPDrSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiT2J2eWtsZSBqZSB0xZllYmEgemFkYXQgcG91emUgPHphxI3DoXRlaz4gYSA8dmVsaWtvc3Q+IChhIG1vxb5uw6EgPHR5cD4pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gZGV2aWNlIC4uLlxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFtQxZhFUMONTkHEjEVdIFpBxZjDjVpFTsON4oCmXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTUKK21zZ2lkICJkZXZpY2U6IHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhIG9yIC9kZXYvc2RhIgorbXNnc3RyICJaYcWZw616ZW7DrTogbsSbY28gamFrbyAvZGV2L2hkYSDEjWkgL2Rldi9zZGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgIlXFvml0ZcSNbsOpIHDFmWVww61uYcSNZToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTcKK21zZ2lkICIgICAgLXMgW29yIC0tc2hvdy1zaXplXTogbGlzdCBzaXplIG9mIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICAgLXMgW8SNaSAtLXNob3ctc2l6ZV06IHZ5cMOtxaFlIHZlbGlrb3N0IGRpc2tvdsOpaG8gb2Rkw61sdSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgICAtYyBbb3IgLS1pZF06ICAgICAgICBwcmludCBvciBjaGFuZ2UgcGFydGl0aW9uIElkIgorbXNnc3RyICIgICAgLWMgW8SNaSAtLWlkXTogICAgICAgIHZ5cMOtxaFlIMSNaSB6bcSbbsOtIElkIGRpc2tvdsOpaG8gb2Rkw61sdSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgICAtbCBbb3IgLS1saXN0XTogICAgICBsaXN0IHBhcnRpdGlvbnMgb2YgZWFjaCBkZXZpY2UiCittc2dzdHIgIiAgICAtbCBbxI1pIC0tbGlzdF06ICAgICAga2Uga2HFvmTDqW11IHphxZnDrXplbsOtIHZ5cMOtxaFlIGRpc2tvdsOpIG9kZMOtbHkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAtZCBbxI1pIC0tZHVtcF06ICAgICAgdGFrdMOpxb4sIGFsZSB2ZSBmb3Jtw6F0dSB2aG9kbsOpbSBrIGRhbMWhw61tdSB6cHJhY292w6Fuw60iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgLWkgW29yIC0taW5jcmVtZW50XTogbnVtYmVyIGN5bGluZGVycyBldGMuIGZyb20gMSBpbnN0ZWFkIG9mIGZyb20gMCIKK21zZ3N0ciAiICAgIC1pIFvEjWkgLS1pbmNyZW1lbnRdOiDEjcOtc2x1amUgY3lsaW5kcnkgZXRjLiBvZCAxIG3DrXN0byBvZCAwIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAyCittc2dpZCAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBhY2NlcHQvcmVwb3J0IGluIHVuaXRzIG9mIHNlY3RvcnMvYmxvY2tzL2N5bGluZGVycy8iCisiTUIiCittc2dzdHIgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgamFrbyBqZWRub3RreSBwb3XFvmlqZSBTZWt0b3J5L0Jsb2t5L0N5bGluZHJ5IMSNaSBNQiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgICAtVCBbxI1pIC0tbGlzdC10eXBlc106dnlww63FoWUgem7DoW3DqSB0eXB5IGRpc2tvdsO9Y2ggb2Rkw61sxa8iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiICAgIC1EIFvEjWkgLS1ET1NdOiAgICAgICBwcm8ga29tcGF0aWJpbGl0dSBzIERPU0VNOiB1YsOtcsOhIHRyb2NodSBtw61zdGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgLVIgW29yIC0tcmUtcmVhZF06ICAgbWFrZSBrZXJuZWwgcmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorIiAgICAtUiBbxI1pIC0tcmUtcmVhZF06ICAgZG9udXTDrSBqw6Fkcm8gem5vdnUgbmHEjcOtc3QgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgICAtTiMgOiAgICAgICAgICAgICAgICBjaGFuZ2Ugb25seSB0aGUgcGFydGl0aW9uIHdpdGggbnVtYmVyICMiCittc2dzdHIgIiAgICAtTiMgOiAgICAgICAgICAgICAgICB6bcSbbsOtIHBvdXplIGRpc2tvdsO9IG9kZMOtbCBzIMSNw61zbGVtICMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiAgICAtbiA6ICAgICAgICAgICAgICAgICDFvsOhZG7DqSB6bcSbbnkgbmVidWRvdSB1bG/FvmVueSBuYSBkaXNrIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIgICAgLU8gU09VQk9SIDogICAgICAgICAgdWxvxb7DrSB6bcSbbsSbbsOpIHNla3RvcnkgZG8gU09VQk9SVSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAtSSBmaWxlIDogICAgICAgICAgICByZXN0b3JlIHRoZXNlIHNlY3RvcnMgYWdhaW4iCittc2dzdHIgIiAgICAtSSBTT1VCT1IgOiAgICAgICAgICBvYm5vdsOtIHR5dG8gc2VrdG9yeSB6ZSBTT1VCT1JVIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEwCittc2dpZCAiICAgIC12IFtvciAtLXZlcnNpb25dOiAgIHByaW50IHZlcnNpb24iCittc2dzdHIgIiAgICAtdiBbxI1pIC0tdmVyc2lvbl06ICAgdnlww63FoWUgaW5mb3JtYWNlIG8gdmVyemkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgLT8gW29yIC0taGVscF06ICAgICAgcHJpbnQgdGhpcyBtZXNzYWdlIgorbXNnc3RyICIgICAgLT8gW8SNaSAtLWhlbHBdOiAgICAgIHZ5cMOtxaFlIHR1dG8gbsOhcG92xJtkdSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMgorbXNnaWQgImRhbmdlcm91cyBvcHRpb25zOiIKK21zZ3N0ciAiTmViZXpwZcSNbsOpIHDFmWVww61uYcSNZToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTMKK21zZ2lkICIgICAgLWcgW29yIC0tc2hvdy1nZW9tZXRyeV06IHByaW50IHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBnZW9tZXRyeSIKK21zZ3N0ciAiIgorIiAgICAtZyBbxI1pIC0tc2hvdy1nZW9tZXRyeV06XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgIHZ5cMOtxaFlIGluZm9ybWFjZSBvIGdlb21ldHJpaSwga3RlcsOpIHVkcsW+dWplIGrDoWRybyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorbXNnaWQgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IHByaW50IGdlb21ldHJ5IGd1ZXNzZWQgZnJvbSB0aGUgcGFydGl0aW9uICIKKyJ0YWJsZSIKK21zZ3N0ciAiIgorIiAgICAtRyBbxI1pIC0tc2hvdy1wdC1nZW9tZXRyeV06XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgIHZ5cMOtxaFlIGluZm9ybWFjZSBvIGdlb21ldHJpaSwga3RlcsOhIGJ5bGEgb2RoYWRudXRhXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgIHrCoHRhYnVsa3kgcm96ZMSbbGVuw60gZGlza3UiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCBbxI1pIC0tc2hvdy1leHRlbmRlZF06XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgIHZ5cMOtxaFlIGluZm9ybWFjZSBvIHJvesWhw63FmWVuw71jaCBkaXNrb3bDvWNoXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgIG9kZMOtbGVjaCBhIG5hIHZzdHVwdSBidWRlIG/EjWVrw6F2YXQgamVqaWNoIHBvcGlzIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiIKKyIgICAgLUwgIFvEjWkgLS1MaW51eF06ICAgIHByb2Jsw6lteSBuZXBvZHN0YXRuw6kgcHJvIExpbnV4IGJ1ZG91IGlnbm9yb3bDoW55IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbxI1pIC0tcXVpZXRdOiAgICBuZWJ1ZGUgdnlwaXNvdmF0IHZhcm92bsOpIGhsw6HFoWt5IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiICAgIE5hbGV6ZW5vdSBnZW9tZXRyaWkgbcWvxb5ldGUgcMWZZXBzYXQgcG9tb2PDrToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLUMjIFvEjWkgLS1jeWxpbmRlcnMgI106bmFzdGF2w60gcG/EjWV0IGN5bGluZHLFryIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1IIyBbxI1pIC0taGVhZHMgI106ICAgIG5hc3RhdsOtIHBvxI1ldCBobGF2IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIyCittc2dpZCAiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiCittc2dzdHIgIiAgICAtUyMgW8SNaSAtLXNlY3RvcnMgI106ICBuYXN0YXbDrSBwb8SNZXQgY3lsaW5kcsWvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIzCittc2dpZCAiWW91IGNhbiBkaXNhYmxlIGFsbCBjb25zaXN0ZW5jeSBjaGVja2luZyB3aXRoOiIKK21zZ3N0ciAiT3bEm8WZb3bDoW7DrSBrb256aXN0ZW5jZSBtxa/FvmV0ZSB2eXBub3V0IHBvbW9jw606IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzI0Cittc2dpZCAiICAgIC1mICBbb3IgLS1mb3JjZV06ICAgICAgZG8gd2hhdCBJIHNheSwgZXZlbiBpZiBpdCBpcyBzdHVwaWQiCittc2dzdHIgIiAgICAtZiAgW8SNaSAtLWZvcmNlXTogICAgYWtjZXB0dWplIHZlxaFrZXLDqSAtIGkgbmVzbXlzbG7DqSAtIHBvxb5hZGF2a3kiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzAKK21zZ2lkICJVc2FnZToiCittc2dzdHIgIlBvdcW+aXTDrToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIlcyB6YcWZw616ZW7DrVx0XHQgdnlww63FoWUgYWt0aXZuw60gZGlza292w6kgb2Rkw61seSBuYSBkYW7DqW0gemHFmcOtemVuw61cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2UgbjEgbjIgLi4uIGFjdGl2YXRlIHBhcnRpdGlvbnMgbjEgLi4uLCBpbmFjdGl2YXRlIHRoZSByZXN0XG4iCittc2dzdHIgIiIKKyIlcyB6YcWZw616ZW7DrSBuMSBuMiAuLi4gYWt0aXZ1amUgZGlza292w6kgb2Rkw61seSBuMSAuLi4sIGRlYWt0aXZ1amUgb3N0YXRuw61cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtQW4gZGV2aWNlXHQgYWN0aXZhdGUgcGFydGl0aW9uIG4sIGluYWN0aXZhdGUgdGhlIG90aGVyIG9uZXNcbiIKK21zZ3N0ciAiJXMgLUFuIHphxZnDrXplbsOtXHQgYWt0aXZ1amUgZGlza292w70gb2Rkw61sIG4sIGRlYWt0aXZ1amUgb3N0YXRuw61cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgc2ZkaXNrICIKKyJkb2Vzbid0IHN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlZBUk9Ww4FOw406IE5hIOKAniVz4oCcIG5hbGV6ZW5hIEdQVOKAryhHVUlE4oCvdGFidWxrYSByb3pkxJtsZW7DrSBkaXNrdSkhIE7DoXN0cm9qICIKKyJzZmRpc2sgbmVwb2Rwb3J1amUgR1BULiBQb3XFvmlqdGUgR05V4oCvUGFydGVkLlxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDU2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIkvCoHBvdGxhxI1lbsOtIHTDqXRvIGtvbnRyb2x5IHBvdcW+aWp0ZSBwxZllcMOtbmHEjSAtLWZvcmNlLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDk1Cittc2dpZCAibm8gY29tbWFuZD9cbiIKK21zZ3N0ciAixb7DoWRuw70gcMWZw61rYXo/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAidG90YWw6ICVsbHUgYmxvY2tzXG4iCittc2dzdHIgImNlbGtvdsO9IHBvxI1ldCBibG9rxa86ICUnbGx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzAKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tcHJpbnQtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXJcbiIKK21zZ3N0ciAiUG91xb5pdMOtOiBzZmRpc2sgLS1wcmludC1pZCB6YcWZw616ZW7DrSDEjcOtc2xvIGRpc2tvdsOpaG8gb2Rkw61sdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcyCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWNoYW5nZS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBJZFxuIgorbXNnc3RyICJQb3XFvml0w606IHNmZGlzayAtLWNoYW5nZS1pZCB6YcWZw616ZW7DrSBJZCBkaXNrb3bDqWhvIG9kZMOtbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3NAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBbSWRdXG4iCittc2dzdHIgIlBvdcW+aXTDrTogc2ZkaXNrIC0taWQgemHFmcOtemVuw60gxI3DrXNsbyBkaXNrb3bDqWhvIG9kZMOtbHUgW0lkXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjgxCittc2dpZCAiY2FuIHNwZWNpZnkgb25seSBvbmUgZGV2aWNlIChleGNlcHQgd2l0aCAtbCBvciAtcylcbiIKK21zZ3N0ciAibcWvxb5ldGUgemFkYXQgcG91emUgamVkbm8gemHFmcOtemVuw60gKHbDvWppbWtvdSBqc291IHDFmWVww61uYcSNZSAtbCBhIC1zKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAiJXMgbmVsemUgb3RldsWZw610IHBybyDEjXRlbsOtIGnCoHrDoXBpcy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwOQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyBmb3IgcmVhZGluZ1xuIgorbXNnc3RyICIlcyBuZWx6ZSBvdGV2xZnDrXQgcHJvIMSNdGVuw61cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiJXM6IE9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3NTMgZmRpc2svc2ZkaXNrLmM6Mjc4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlczogJWxkIGN5bGluZHLFrywgJWxkIGhsYXYsICVsZCBzZWt0b3LFry9zdG9wdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgc2l6ZSBvZiAlc1xuIgorbXNnc3RyICJOZWx6ZSB6amlzdGl0IHZlbGlrb3N0ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIGFjdGl2ZSBieXRlOiAweCV4IGluc3RlYWQgb2YgMHg4MFxuIgorbXNnc3RyICJjaHlibsO9IGFrdGl2bsOtIGJhanQ6IDB4JXggbcOtc3RvIDB4ODBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkwMyBmZGlzay9zZmRpc2suYzoyOTU4IGZkaXNrL3NmZGlzay5jOjI5OTEKK21zZ2lkICIiCisiRG9uZVxuIgorIlxuIgorbXNnc3RyICIiCisiSG90b3ZvXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlICVkIGFjdGl2ZSBwcmltYXJ5IHBhcnRpdGlvbnMuIFRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLFxuIgorImJ1dCB0aGUgRE9TIE1CUiB3aWxsIG9ubHkgYm9vdCBhIGRpc2sgd2l0aCAxIGFjdGl2ZSBwYXJ0aXRpb24uXG4iCittc2dzdHIgIiIKKyJQb8SNZXQgYWt0aXZuw61jaCBkaXNrb3bDvWNoIG9kZMOtbMWvIGplICVkLiBMSUxVIHRvIG5lxI1pbsOtIHByb2Jsw6lteSwgYWxlIERPUyAiCisiTUJSXG4iCisibmFzdGFydHVqZSBwb3V6ZSB6IGRpc2t1IHMgamVkbsOtbSBha3Rpdm7DrW0gZGlza292w71tIG9kZMOtbGVtLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBoYXMgaWQgJXggYW5kIGlzIG5vdCBoaWRkZW5cbiIKK21zZ3N0ciAiZGlza292w70gb2Rkw61sICVzIG3DoSBpZCAleCBhIG5lbsOtIHNrcnl0w71cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgSWQgJWx4XG4iCittc2dzdHIgIklkICVseCBqZSBjaHlibsOpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAiVGVudG8gZGlzayBqZSBwcsOhdsSbIHBvdcW+w612w6FuLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhdGFsIGVycm9yOiBjYW5ub3QgZmluZCAlc1xuIgorbXNnc3RyICJGYXTDoWxuw60gY2h5YmE6ICVzIG5lbHplIG5hbMOpenRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiVmFyb3bDoW7DrTogJXMgbmVuw60gYmxva292w71tIHphxZnDrXplbsOtbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAiT3bEm8WZdWppLCB6ZGEgdGVudG8gZGlzayBuZW7DrSBwcsOhdsSbIHBvdcW+w612w6Fu4oCmXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzQKK21zZ2lkICIiCisiXG4iCisiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UgLSByZXBhcnRpdGlvbmluZyBpcyBwcm9iYWJseSBhIGJhZCBpZGVhLlxuIgorIlVtb3VudCBhbGwgZmlsZSBzeXN0ZW1zLCBhbmQgc3dhcG9mZiBhbGwgc3dhcCBwYXJ0aXRpb25zIG9uIHRoaXMgZGlzay5cbiIKKyJVc2UgdGhlIC0tbm8tcmVyZWFkIGZsYWcgdG8gc3VwcHJlc3MgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlRlbnRvIGRpc2sgamUgcHLDoXbEmyBwb3XFvsOtdsOhbiAtIHZ5dHbDocWZZW7DrSBkaXNrb3bDvWNoIG9kZMOtbMWvIG5lbsOtIGRvYnLDvW1cbiIKKyJuw6FwYWRlbS4gT2Rwb2p0ZSB2xaFlY2hueSBzeXN0w6lteSBzb3Vib3LFryBhIHBvbW9jw60gc3dhcG9mZiBkZWFrdGl2dWp0ZVxuIgorInbFoWVjaG55IG9ka2zDoWRhY8OtIHByb3N0b3J5IG5hIHRvbXRvIGRpc2t1LiBLIHBvdGxhxI1lbsOtIHTDqXRvIGtvbnRyb2x5IG3Fr8W+ZXRlXG4iCisicG91xb7DrXQgcMWZZXDDrW5hxI0gLS1uby1yZXJlYWQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICJQb3XFvmlqdGUgcMWZZXDDrW5hxI0gLS1mb3JjZSBrIHBvdGxhxI1lbsOtIHZlxaFrZXLDvWNoIGtvbnRyb2wuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICJPS1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIk9sZCBzaXR1YXRpb246XG4iCittc2dzdHIgIlN0YXLDoSBzaXR1YWNlOlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCwgY2Fubm90IGNoYW5nZSBpdFxuIgorbXNnc3RyICJEaXNrb3bDvSBvZGTDrWwgJWQgbmVleGlzdHVqZS4gTmVsemUgamVqIHptxJtuaXQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiTm92w6Egc2l0dWFjZTpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisiVG90byByb3psb8W+ZW7DrSBkaXNrb3bDvWNoIG9kZMOtbMWvIHNlIG1pIG5lbMOtYsOtIC0gbmljIG5lbcSbbsOtbS5cbiIKKyIoUG9rdWQgamVqIG9wcmF2ZHUgY2hjZXRlIHBvdcW+w610LCBwYWsgemFkZWp0ZSBwxZllcMOtbmHEjSAtLWZvcmNlLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiVG90byBzZSBtaSBuZWzDrWLDrSAtIG3Em2wgYnlzdGUgb2Rwb3bEm2TEm3QgTk9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJBcmUgeW91IHNhdGlzZmllZCB3aXRoIHRoaXM/IFt5bnFdICIKK21zZ3N0ciAiVnlob3Z1amUgVsOhbSB0bz8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIHlvdSB3YW50IHRvIHdyaXRlIHRoaXMgdG8gZGlzaz8gW3lucV0gIgorbXNnc3RyICJVbG/Fvml0IG5hIGRpc2s/IFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisic2ZkaXNrOiBwcmVtYXR1cmUgZW5kIG9mIGlucHV0XG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZmRpc2s6IHDFmWVkxI1hc27DvSBrb25lYyB2c3R1cHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4NQorbXNnaWQgIlF1aXR0aW5nIC0gbm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIktvbsSNw61tIC0gbmVieWx5IHXEjWluxJtueSDFvsOhZG7DqSB6bcSbbnlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIgorbXNnc3RyICJPZHBvdsSbenRlIHByb3PDrW0geSxuIMSNaSBxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisiTm92w6EgdGFidWxrYSByb3pkxJtsZW7DrSBkaXNrdSBieWxhIMO6c3DEm8WhbsSbIHVsb8W+ZW5hLlxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMTA1Cittc2dpZCAiIgorIklmIHlvdSBjcmVhdGVkIG9yIGNoYW5nZWQgYSBET1MgcGFydGl0aW9uLCAvZGV2L2ZvbzcsIHNheSwgdGhlbiB1c2UgZGQoMSlcbiIKKyJ0byB6ZXJvIHRoZSBmaXJzdCA1MTIgYnl0ZXM6ICBkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKFNlZSBmZGlzayg4KS4pXG4iCittc2dzdHIgIiIKKyJQb2t1ZCBqc3RlIHZ5dHZvxZlpbCDEjWkgem3Em25pbCBuxJtqYWvDqSBET1NPVsOJIGRpc2tvdsOpIG9kZMOtbHkgLSBuYXDFmS4gL2Rldi8iCisiYmxhNyxcbiIKKyJwb3XFvmlqdGUgZGQoMSkgayB2eW51bG92w6Fuw60gcHJ2bsOtY2ggNTEyIGJhanTFrzogJ2RkIGlmPS9kZXYvemVybyBvZj0vZGV2LyIKKyJibGE3XG4iCisiYnM9NTEyIGNvdW50PTEnICh2aXogZmRpc2soOCkpLlxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogY291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiVkFST1bDgU7DjTogJXMgc2UgbmVwb2RhxZlpbG8gb3RldsWZw610OiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogYmFkIGZvcm1hdCBvbiBsaW5lICVkIG9mICVzXG4iCittc2dzdHIgIlZBUk9Ww4FOw406IGNoeWJuw70gZm9ybcOhdCBuYSDFmcOhZGt1ICVkIHNvdWJvcnUgJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzUyCittc2dpZCAiIgorIldBUk5JTkc6IFlvdXIgL2V0Yy9mc3RhYiBkb2VzIG5vdCBjb250YWluIHRoZSBmc2NrIHBhc3Nub1xuIgorIlx0ZmllbGQuICBJIHdpbGwga2x1ZGdlIGFyb3VuZCB0aGluZ3MgZm9yIHlvdSwgYnV0IHlvdVxuIgorIlx0c2hvdWxkIGZpeCB5b3VyIC9ldGMvZnN0YWIgZmlsZSBhcyBzb29uIGFzIHlvdSBjYW4uXG4iCisiXG4iCittc2dzdHIgIiIKKyJWQVJPVsOBTsONOiBWw6HFoSAvZXRjL2ZzdGFiIG5lb2JzYWh1amUgcG9sb8W+a3Ugc8KgcG/FmWFkw61tIGtvbnRyb2x5IFtwYXNzbm9dLlxuIgorIlx0TsSbamFrIHNlIHPCoHTDrW0gcG9wZXJ1LCBhbGUgdnkgYnlzdGUgbcSbbGkgL2V0Yy9mc3RhYiBvcHJhdml0XG4iCisiXHRjbyBuZWpkxZnDrXZlLlxuIgorIlxuIgorCisjOiBmc2NrL2ZzY2suYzo0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogJXM6IG5vdCBmb3VuZFxuIgorbXNnc3RyICJmc2NrOiAlczogbmVuYWxlemVub1xuIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIlczogd2FpdDogxb3DoWRuw60gZGFsxaHDrSBwb3RvbWNpPyFcbiIKKworIzogZnNjay9mc2NrLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmcuLi4gJXMgZm9yIGRldmljZSAlcyBleGl0ZWQgd2l0aCBzaWduYWwgJWQuXG4iCittc2dzdHIgIlZhcm92w6Fuw63igKYgJXMgbmFkIHphxZnDrXplbsOtbSAlcyBza29uxI1pbCBzaWduw6FsZW0gJWQuXG4iCisKKyM6IGZzY2svZnNjay5jOjYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlczogc3RhdHVzIGlzICV4LCBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuIgorbXNnc3RyICIlcyAlczogc3RhdHVzIGplICV4LCB0byBieSBuaWtkeSBuZW3Em2xvIHDFmWlob2RpdC5cbiIKKworIzogZnNjay9mc2NrLmM6NjQzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmlzaGVkIHdpdGggJXMgKGV4aXQgc3RhdHVzICVkKVxuIgorbXNnc3RyICIlcyBkb2tvbsSNZW5vIChuw6F2cmF0b3bDvSBrw7NkICVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzIGZvciAlc1xuIgorbXNnc3RyICIlczogQ2h5YmEgJWQgcMWZaSBwcm92w6FkxJtuw60gZnNjay4lcyBuYWQgJXNcbiIKKworIzogZnNjay9mc2NrLmM6NzI0Cittc2dpZCAiIgorIkVpdGhlciBhbGwgb3Igbm9uZSBvZiB0aGUgZmlsZXN5c3RlbSB0eXBlcyBwYXNzZWQgdG8gLXQgbXVzdCBiZSBwcmVmaXhlZFxuIgorIndpdGggJ25vJyBvciAnIScuXG4iCittc2dzdHIgIiIKKyJCdcSPdG8gdsWhZWNobnksIG5lYm8gxb7DoWRuw70gesKgdHlwxa8gc291Ym9yb3bDvWNoIHN5c3TDqW3FryBwxZllZGFuw71jaCB2wqAtdCBtdXPDrVxuIgorImLDvXQgdXZlZGVueSBzwqBwb8SNw6F0ZcSNbsOtbSDigJ5ub+KAnCBuZWJvIOKAniHigJwuXG4iCisKKyM6IGZzY2svZnNjay5jOjc0MworbXNnaWQgIkNvdWxkbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgZmlsZXN5c3RlbSB0eXBlc1xuIgorbXNnc3RyICJQcm8gdHlweSBzb3Vib3JvdsO9Y2ggc3lzdMOpbcWvIG5lYnlsbyBtb8W+bsOpIGFsb2tvdmF0IHBhbcSbxaVcbiIKKworIzogZnNjay9mc2NrLmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc2tpcHBpbmcgYmFkIGxpbmUgaW4gL2V0Yy9mc3RhYjogYmluZCBtb3VudCB3aXRoIG5vbnplcm8gZnNjayBwYXNzICIKKyJudW1iZXJcbiIKK21zZ3N0ciAiIgorIiVzOiBwxZllc2tha3VqaSBjaHlibsO9IMWZw6FkZWsgdsKgL2V0Yy9mc3RhYjogcMWZw61wb2puw70gYm9kIHR5cHUgYmluZFxuIgorInPCoG5lbnVsb3bDvW0gcG/FmWFkw61tIGtvbnRyb2x5XG4iCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgbm9uZXhpc3RlbnQgZGV2aWNlXG4iCittc2dzdHIgIiVzOiBwxZllc2tha3VqZSBzZSBuZWV4aXN0dWrDrWPDrSB6YcWZw616ZW7DrVxuIgorCisjOiBmc2NrL2ZzY2suYzo5MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogY2Fubm90IGNoZWNrICVzOiBmc2NrLiVzIG5vdCBmb3VuZFxuIgorbXNnc3RyICJmc2NrOiAlcyBuZWx6ZSB6a29udHJvbG92YXQ6IGZzY2suJXMgbmVuYWxlemVuXG4iCisKKyM6IGZzY2svZnNjay5jOjk3NAorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIktvbnRyb2x1amkgdsWhZWNobnkgc3lzdMOpbXUgc291Ym9yxa8uXG4iCisKKyM6IGZzY2svZnNjay5jOjEwNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS13YWl0aW5nLS0gKHBhc3MgJWQpXG4iCittc2dzdHIgIuKAk8KgxI1la8OhIHNlwqDigJMgKHByxa9jaG9kICVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICIiCisiUG91xb5pdMOtOiBmc2NrIFstQU1OUFJUVl0gWy1DIFtmZF1dWy10IHR5cF9zc10gW3ZvbGJ5X3NzXSBbc3lzdMOpbV9zb3Vib3LFr+KApl1cbiIKKworIzogZnNjay9mc2NrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgZGV2aWNlc1xuIgorbXNnc3RyICIlczogcMWZw61sacWhIG1ub2hvIHphxZnDrXplbsOtXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiJXMgbmVieWxvIG1vxb5uw6kgb3RldsWZw610OiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIklzIC9wcm9jIG1vdW50ZWQ/XG4iCittc2dzdHIgIkplIC9wcm9jIHDFmWlwb2plbm8/XG4iCisKKyM6IGZzY2svZnNjay5jOjExNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSByb290IHRvIHNjYW4gZm9yIG1hdGNoaW5nIGZpbGVzeXN0ZW1zOiAlc1xuIgorbXNnc3RyICJKZW4gcm9vdCBtxa/FvmUgaGxlZGF0IG9kcG92w61kYWrDrWPDrSBzb3Vib3JvdsOpIHN5c3TDqW15OiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGZpbmQgbWF0Y2hpbmcgZmlsZXN5c3RlbTogJXNcbiIKK21zZ3N0ciAiTmVieWxvIG1vxb5uw6kgbmFsw6l6dCBvZHBvdsOtZGFqw61jw60gc3lzdMOpbSBzb3Vib3LFrzrCoCVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExNTYgZnNjay9mc2NrLmM6MTI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iCittc2dzdHIgIiVzOiBwxZnDrWxpxaEgbW5vaG8gYXJndW1lbnTFr1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2sgZnJvbSAlc1xuIgorbXNnc3RyICJmc2NrIHrCoCVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZzY2tfcGF0aFxuIgorbXNnc3RyICIlczogUGFtxJvFpSBwcm8gZnNja19wYXRoIG5lbHplIGFsb2tvdmF0XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJWw61jZSBpbmZvcm1hY8OtIHrDrXNrw6F0ZSBwxZnDrWthemVtID9nZXRvcHQgLS1oZWxw4oCcLlxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mjk1Cittc2dpZCAiZW1wdHkgbG9uZyBvcHRpb24gYWZ0ZXIgLWwgb3IgLS1sb25nIGFyZ3VtZW50IgorbXNnc3RyICJwcsOhemRuw6EgZGxvdWjDoSB2b2xiYSBwbyBwxZllcMOtbmHEjWkgLWwgxI1pIC0tbG9uZyIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAibmV6bsOhbcO9IHNoZWxsIHBvIHDFmWVww61uYcSNaSAtcyDEjWkgLS1zaGVsbCIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiUG91xb5pdMOtOiBnZXRvcHQgxZlldMSbemVjLXMtdm9sYmFtaSBwxZllcMOtbmHEjWVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMQorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIFstLV0gb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbdm9sYnldIFstLV0gxZlldMSbemVjLXMtdm9sYmFtaSBwxZllcMOtbmHEjWVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbdm9sYnldIC1vfC0tb3B0aW9ucyDFmWV0xJt6ZWMtcy12b2xiYW1pIFt2b2xieV0gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAgYXJndW1lbnR5XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjQKK21zZ2lkICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4iCittc2dzdHIgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWtjZXB0dWplIGRsb3Vow6kgdm9sYnkgemHEjcOtbmFqw61jw60gamVkbsOtbSAtXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjUKK21zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVGhpcyBzbWFsbCB1c2FnZSBndWlkZVxuIgorbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVnlww63FoWUgdHV0byBuw6Fwb3bEm2R1XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbCwgLS1sb25nb3B0aW9ucz1kbG91aHZvbCAgIFJvenBvem7DoXZhbsOpIGRsb3Vow6kgdm9sYnlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNworbXNnaWQgIiIKKyIgIC1uLCAtLW5hbWU9cHJvZ25hbWUgICAgICAgICAgVGhlIG5hbWUgdW5kZXIgd2hpY2ggZXJyb3JzIGFyZSByZXBvcnRlZFxuIgorbXNnc3RyICIiCisiICAtbiwgLS1uYW1lPW7DoXpldnByb2cgICAgICAgICAgTsOhemV2LCBwb2Qga3RlcsO9bSBqc291IG96bmFtb3bDoW55IGNoeWJ5XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjgKK21zZ2lkICIgIC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLW8sIC0tb3B0aW9ucz1rcsOhdHZvbCAgICAgICAgUm96cG96bsOhdmFuw6kga3LDoXRrw6kgdm9sYnlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOQorbXNnaWQgIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBEaXNhYmxlIGVycm9yIHJlcG9ydGluZyBieSBnZXRvcHQoMylcbiIKK21zZ3N0ciAiIgorIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBWeXBuZSBvem5hbW92w6Fuw60gY2h5YiBwb21vY8OtIGdldG9wdCgzKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMwCittc2dpZCAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIE5vIG5vcm1hbCBvdXRwdXRcbiIKK21zZ3N0ciAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIMW9w6FkbsO9IG5vcm3DoWxuw60gdsO9c3R1cFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMxCittc2dpZCAiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVsbCBxdW90aW5nIGNvbnZlbnRpb25zXG4iCittc2dzdHIgIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICBOYXN0YXbDrSBrb252ZW5jZSB1emF2w61yYW7DrVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUZXN0dWplIHZlcnppIGdldG9wdCgxKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMzCittc2dpZCAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIERvIG5vdCBxdW90ZSB0aGUgb3V0cHV0XG4iCittc2dzdHIgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBuZXV6YXbFmWUgdsO9c3R1cCBkbyB1dm96b3Zla1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzM0Cittc2dpZCAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCittc2dzdHIgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBWeXDDrcWhZSBpbmZvcm1hY2UgbyB2ZXJ6aVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mzg4IGdldG9wdC9nZXRvcHQuYzo0NDcKK21zZ2lkICJtaXNzaW5nIG9wdHN0cmluZyBhcmd1bWVudCIKK21zZ3N0ciAiY2h5YsOtIMWZZXTEm3plYy1zLXZvbGJhbWkiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChyb3rFocOtxZllbsOpKSAxLjEuNFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDQxCittc2dpZCAiaW50ZXJuYWwgZXJyb3IsIGNvbnRhY3QgdGhlIGF1dGhvci4iCittc2dzdHIgIlZuaXTFmW7DrSBjaHliYSwgb3puYW10ZSBqaSBhdXRvcm92aS4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZWQgZnJvbSBNSUxPXG4iCittc2dzdHIgInNwdcWhdMSbbiBwb21vY8OtIE1JTE9cbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgImhvZG5vdHkgdWxvxb5lbnkgdiBCQ0QgdHZhcnVcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImNsb2NrcG9ydCBhZGp1c3RlZCB0byAweCV4XG4iCittc2dzdHIgInZzdHVwbsSbL3bDvXN0dXBuw60gcG9ydCBwcm8gcMWZw61zdHVwIGsgaG9kaW7DoW0gbmFzdGF2ZW4gbmEgMHgleFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICJmdW5reSBUT1khXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXRvbWljICVzIGZhaWxlZCBmb3IgMTAwMCBpdGVyYXRpb25zISIKK21zZ3N0ciAiJXM6IDEwMDAgbmXDunNwxJvFoW7DvWNoIHBva3Vzxa8gbyBhdG9taWNrw6kgcHJvdmVkZW7DrSAlcyEiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiY21vc19yZWFkKCk6IHrDoXBpcyBuYSDFmcOtZMOtY8OtIGFkcmVzdSAlWCBzZWxoYWw6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICJjbW9zX3JlYWQoKTogxI10ZW7DrSB6wqBkYXRvdsOpIGFkcmVzeSAlWCBzZWxoYWxvOiAlc1xuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICJjbW9zX3dyaXRlKCk6IHrDoXBpcyBuYSDFmcOtZMOtY8OtIGFkcmVzdSAlWCBzZWxoYWw6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImNtb3Nfd3JpdGUoKTogesOhcGlzIG5hIGRhdG92b3UgYWRyZXN1ICVYIHNlbGhhbDogJXNcbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIi9kZXYvcG9ydCBuZWx6ZSBvdGV2xZnDrXQ6ICVzIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIkplbGlrb8W+IGpzZW0gc2UgbmVzbmHFvmlsLCBuZXBvZGHFmWlsbyBzZSBtaSB6w61za2F0IHByw6F2YSBwcm8gcMWZw61zdHVwLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiJXM6IHDFmcOtc3R1cCBrIHBvcnR1IG5lbHplIHrDrXNrYXQ6ICB2b2zDoW7DrSBpb3BsKDMpIHNlbGhhbG8uXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9iYWJseSB5b3UgbmVlZCByb290IHByaXZpbGVnZXMuXG4iCittc2dzdHIgIlByYXZkxJtwb2RvYm7EmyBqZSB0xZllYmEgbcOtdCBwcsOhdmEgc3VwZXJ1xb5pdmF0ZWxlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiAlcyB0aW1lLlxuIgorbXNnc3RyICJQxZllZHBva2zDoWTDoW0sIMW+ZSBob2RpbnkgcmXDoWxuw6lobyDEjWFzdSBqc291IG5hc3RhdmVueSBuYSAlcyDEjWFzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJncmVlbndpY2hza8O9IgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI1Cittc2dpZCAibG9jYWwiCittc2dzdHIgIm3DrXN0bsOtIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIlczogVmFyb3bDoW7DrTogbmV6bsOhbcO9IGZvcm3DoXQgdMWZZXTDrWhvIMWZw6Fka3UgdiBzb3Vib3J1IGFkanRpbWVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIihFeHBlY3RlZDogYFVUQycgb3IgYExPQ0FMJyBvciBub3RoaW5nLilcbiIKK21zZ3N0ciAiKE/EjWVrw6F2w6FubyDigJ5VVEPigJwsIOKAnkxPQ0FM4oCcIMSNaSBuaWMuKVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBkcmlmdCBhZGp1c3RtZW50IGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJQb3NsZWRuw60gb3ByYXZhIHBvc3VudSBwcm9ixJtobGEgJWxkIHNla3VuZCBvZCByb2t1IDE5NjkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJQb3NsZWRuw60ga2FsaWJyYWNlIHByb2LEm2hsYSAlbGQgc2VrdW5kIG9kIHJva3UgMTk2OS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIkhhcmR3YXJlIGNsb2NrIGlzIG9uICVzIHRpbWVcbiIKK21zZ3N0ciAiSG9kaW55IHJlw6FsbsOpaG8gxI1hc3UganNvdSBuYXN0YXZlbnkgbmEgJXMgxI1hcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAidW5rbm93biIKK21zZ3N0ciAibmV6bsOhbcO9IgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBmb3IgY2xvY2sgdGljay4uLlxuIgorbXNnc3RyICLEjWVrw6FtIG5hIHRpayBob2RpbuKAplxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc3luY2hyb25pemF0aW9uIGZhaWxlZFxuIgorbXNnc3RyICLigKZzeW5jaHJvbml6YWNlIHNlIG5lemRhxZlpbGFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmdvdCBjbG9jayB0aWNrXG4iCittc2dzdHIgIuKApmhvZGlueSB0aWtseVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKK21zZ3N0ciAiIgorIkhvZGlueSByZcOhbG7DqWhvIMSNYXN1IG9ic2FodWrDrSBjaHlibsOpIGhvZG5vdHk6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiSG9kaW55IHJlw6FsbsOpaG8gxI1hc3U6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2VrdW5kIG9kIHJva3UgIgorIjE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIkhvZGlueSByZcOhbG7DqWhvIMSNYXN1IHVrYXp1asOtICU0ZC8lLjJkLyUuMmQgJTAyZDolMDJkOiUwMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKyJOYXN0YXZ1amkgaG9kaW55IHJlw6FsbsOpaG8gxI1hc3UgbmEgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2VrdW5kIG9kIHJva3UgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIlRlc3RvdmFjw60gcmXFvmltIC0gxIxhcyBuZXptxJtuxJtuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRpbWUgZWxhcHNlZCBzaW5jZSByZWZlcmVuY2UgdGltZSBoYXMgYmVlbiAlLjZmIHNlY29uZHMuXG4iCisiRGVsYXlpbmcgZnVydGhlciB0byByZWFjaCB0aGUgbmV3IHRpbWUuXG4iCittc2dzdHIgIiIKKyJQb8SNZXQgc2VrdW5kIHVwbHludWzDvWNoIG9kIHJlZmVyZW7EjW7DrWhvIMSNYXN1OiAlLjZmLlxuIgorIsSMZWvDoW0sIGRva3VkIG5lYnVkZSBkb3Nhxb5lbiBub3bDvSDEjWFzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIlJlZ2lzdHJ5IGhvZGluIHJlw6FsbsOpaG8gxI1hc3Ugb2JzYWh1asOtIGhvZG5vdHksIGt0ZXLDqSBqc291IGJ1xI8gY2h5Ym7DqSAobmFwxZkuXG4iCisiNTB0w70gZGVuIHYgbcSbc8OtY2kpLCDEjWkgbWltbyBwxZnDrXB1c3Ruw70gcm96c2FoIChuYXDFmS4gcm9rIDIwOTUpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIlcyAgJS42ZiBzZWt1bmR5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAiUMWZZXDDrW5hxI0gLS1kYXRlIHZ5xb5hZHVqZSBhcmd1bWVudC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICJhcmd1bWVudCAtLWRhdGUgamUgcMWZw61sacWhIGRsb3Vow71cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgdmFsdWUgb2YgdGhlIC0tZGF0ZSBvcHRpb24gaXMgbm90IGEgdmFsaWQgZGF0ZS5cbiIKKyJJbiBwYXJ0aWN1bGFyLCBpdCBjb250YWlucyBxdW90YXRpb24gbWFya3MuXG4iCittc2dzdHIgIiIKKyJBcmd1bWVudCBwxZllcMOtbmHEjWUgLS1kYXRlIG5lbsOtIHBsYXRuw71tIGRhdGVtLiBLb25rcsOpdG7EmyBvYnNhaHVqZSB1dm96b3ZreS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIklzc3VpbmcgZGF0ZSBjb21tYW5kOiAlc1xuIgorbXNnc3RyICJTcG91xaF0w61tIHDFmcOta2F6ICdkYXRlJzogJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQwCittc2dpZCAiVW5hYmxlIHRvIHJ1biAnZGF0ZScgcHJvZ3JhbSBpbiAvYmluL3NoIHNoZWxsLiBwb3BlbigpIGZhaWxlZCIKK21zZ3N0ciAiUMWZw61rYXogJ2RhdGUnIG5lbHplIHYgc2hlbGx1IC9iaW4vc2ggc3B1c3RpdC4gVm9sw6Fuw60gcG9wZW4oKSBzZWxoYWxvLiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3BvbnNlIGZyb20gZGF0ZSBjb21tYW5kID0gJXNcbiIKK21zZ3N0ciAib2Rwb3bEm8SPIHDFmcOta2F6dSAnZGF0ZScgPSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHVuZXhwZWN0ZWQgcmVzdWx0cy5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICAlc1xuIgorbXNnc3RyICIiCisiT2QgcMWZw61rYXp1ICdkYXRlJyBzcHXFoXTEm27DqWhvIHByb2dyYW1lbSAlcywgcMWZacWhbGEgbmXEjWVrYW7DoSBvZHBvdsSbxI8uXG4iCisiUMWZw61rYXo6XG4iCisiICAlc1xuIgorIk9kcG92xJvEjzpcbiIKKyIgICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gaW50ZWdlciB3aGVyZSAiCisidGhlIGNvbnZlcnRlZCB0aW1lIHZhbHVlIHdhcyBleHBlY3RlZC5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICVzXG4iCittc2dzdHIgIiIKKyJQxZnDrWtheiAnZGF0ZScgc3B1xaF0xJtuw70gcHJvZ3JhbWVtICVzIG3DrXN0byBwxZlldmVkZW7DqWhvIMSNYXN1IHZyw6F0aWwgbsSbY28sXG4iCisiY28gbmVuw60gY2Vsw71tIMSNw61zbGVtLlxuIgorIlDFmcOta2F6OlxuIgorIiAgJXNcbiIKKyJPZHBvdsSbxI86XG4iCisiICAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICJEYXR1bSAlcyBvZHBvdsOtZMOhICVsZCBzZWt1bmTDoW0gb2Qgcm9rdSAxOTY5LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IHNldCB0aGUgIgorIlN5c3RlbSBUaW1lIGZyb20gaXQuXG4iCittc2dzdHIgIiIKKyJTeXN0w6ltb3bDvSDEjWFzIG5lbHplIHBvZGxlIGhvZGluIHJlw6FsbsOpaG8gxI1hc3UgbmFzdGF2aXQsIHByb3Rvxb5lIG5ldWthenVqw61cbiIKKyJwbGF0bsO9IMSNYXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyNyBod2Nsb2NrL2h3Y2xvY2suYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBzZXR0aW1lb2ZkYXk6XG4iCittc2dzdHIgIlZvbMOhbSBzZXR0aW1lb2ZkYXk6XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyOCBod2Nsb2NrL2h3Y2xvY2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKK21zZ3N0ciAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMwIGh3Y2xvY2svaHdjbG9jay5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKK21zZ3N0ciAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMyBod2Nsb2NrL2h3Y2xvY2suYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgc3lzdGVtIGNsb2NrIGJlY2F1c2UgcnVubmluZyBpbiB0ZXN0IG1vZGUuXG4iCittc2dzdHIgIlRlc3RvdmFjw60gcmXFvmltIC0gc3lzdMOpbW92w70gxI1hcyBuZXptxJtuxJtuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIk5hc3Rhdml0IHN5c3TDqW1vdsO9IMSNYXMgbcWvxb5lIHBvdXplIHN1cGVydcW+aXZhdGVsLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDUgaHdjbG9jay9od2Nsb2NrLmM6ODIzCittc2dpZCAic2V0dGltZW9mZGF5KCkgZmFpbGVkIgorbXNnc3RyICJ2b2zDoW7DrSBzZXR0aW1lb2ZkYXkoKSBzZWxoYWxvIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBzeXN0ZW0gdGltZTogJWxkID0gJXNcbiIKK21zZ3N0ciAiU291xI1hc27DvSBzeXN0w6ltb3bDvSDEjWFzOiAlbGQgPSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRVVEM6ICVzXG4iCittc2dzdHIgIlx0VVRDOiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisiTmVvcHJhdnVqaSBtw61ydSBwb3N1bnUsIHByb3Rvxb5lIGhvZGlueSByZcOhbG7DqWhvIMSNYXN1IHBvc2xlZG7EmyBvYnNhaG92YWx5XG4iCisibmVwbGF0bsOpIGhvZG5vdHkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorIk5lb3ByYXZ1amkgbcOtcnUgcG9zdW51LCBwcm90b8W+ZSDEjWFzIHBvc2xlZG7DrSBrYWxpYnJhY2UgamUgbnVsYSwgdGFrxb5lXG4iCisiaGlzdG9yaWUgamUgbmVwb3XFvml0ZWxuw6EgYSBqZSBudXRuw6kgcHJvdsOpenQga2FsaWJyYWNpIHpub3Z1LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorIk5lb3ByYXZ1amkgbcOtcnUgcG9zdW51LCBwcm90b8W+ZSBwb3NsZWRuw60ga2FsaWJyYWNlIGplxaF0xJsgbmV1cGx5bnVsIGNlbMO9ICIKKyJkZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2xvY2sgZHJpZnRlZCAlLjFmIHNlY29uZHMgaW4gdGhlIHBhc3QgJWQgc2Vjb25kcyBpbiBzcGl0ZSBvZiBhIGRyaWZ0IGZhY3RvciAiCisib2YgJWYgc2Vjb25kcy9kYXkuXG4iCisiQWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBieSAlZiBzZWNvbmRzL2RheVxuIgorbXNnc3RyICIiCisiSG9kaW55IHNlIHphIHBvc2xlZG7DrWNoICUyJGQgc2VrdW5kIHJvemXFoWx5IG8gJTEkLjFmIHNla3VuZCwgcMWZZXN0b8W+ZSBtw61yYSAiCisicG9zdW51XG4iCisiamUgbmFzdGF2ZW5hIG5hICUzJGYgc2VrdW5kL2Rlbi5cbiIKKyJPcHJhdnVqaSBtw61ydSBwb3N1bnUgbyAlNCRmIHNla3VuZC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiUG/EjWV0IHNla3VuZCBvZCBwb3NsZWRuw60gb3ByYXZ5OiAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiUG90xZllYm7DoSB6bcSbbmEgxI1hc3U6IHNla3VuZCB2cMWZZWQ6ICVkIDsgc2VrdW5kIHpwxJt0OiAlLjZmXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgdXBkYXRpbmcgYWRqdGltZSBmaWxlIGJlY2F1c2Ugb2YgdGVzdGluZyBtb2RlLlxuIgorbXNnc3RyICJUZXN0b3ZhY8OtIHJlxb5pbSAtIHNvdWJvciBhZGp0aW1lIG5lem3Em27Em24uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV291bGQgaGF2ZSB3cml0dGVuIHRoZSBmb2xsb3dpbmcgdG8gJXM6XG4iCisiJXMiCittc2dzdHIgIiIKKyJEbyAlcyBieSBieWxvIHVsb8W+ZW5vIG7DoXNsZWR1asOtY8OtOlxuIgorIiVzIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb3VsZCBub3Qgb3BlbiBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyBpbiBpdCAoJXMpIGZvciAiCisid3JpdGluZyIKK21zZ3N0ciAiU291Ym9yIHPCoHBhcmFtZXRyeSBwb3N1bnUgaG9kaW4gKCVzKSBzZSBuZXBvZGHFmWlsbyBvdGV2xZnDrXQgcHJvIHrDoXBpcyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwNiBod2Nsb2NrL2h3Y2xvY2suYzoxMDExCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgKCVzKSBpbiBpdCIKK21zZ3N0ciAiU291Ym9yIHPCoHBhcmFtZXRyeSBwb3N1bnUgaG9kaW4gKCVzKSBzZSBuZXBvZGHFmWlsbyBha3R1YWxpem92YXQiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJQYXJhbWV0cnkgb3ByYXZ5IHBvc3VudSBuZXptxJtuxJtueS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICJIb2RpbnkgcmXDoWxuw6lobyDEjWFzdSBvYnNhaHVqw60gbmVwbGF0bsO9IMSNYXMsIHR1ZMOtxb4gamVqIG5lbHplIG9wcmF2aXQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBzZXR0aW5nIGNsb2NrIGJlY2F1c2UgbGFzdCBhZGp1c3RtZW50IHRpbWUgaXMgemVybywgc28gaGlzdG9yeSBpcyBiYWQuIgorbXNnc3RyICIiCisiTmVuYXN0YXZ1amkgaG9kaW55LCBwcm90b8W+ZSDEjWFzIHBvc2xlZG7DrWhvIHBvc3VudSBqZSBudWxhLCB0YWvFvmUgaGlzdG9yaWUgamUgIgorIm5lcG91xb5pdGVsbsOhLiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA4OQorIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkZWQgYWRqdXN0bWVudCBpcyBsZXNzIHRoYW4gb25lIHNlY29uZCwgc28gbm90IHNldHRpbmcgY2xvY2suXG4iCittc2dzdHIgIlBvdMWZZWJuw6Egb3ByYXZhIGplIG1lbsWhw60gbmXFviAxIHNla3VuZGEsIHByb3RvIGhvZGlueSBuZW5hc3RhdnVqaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyAlcy5cbiIKK21zZ3N0ciAiUG91xb7DrXbDoW0gJXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIGNsb2NrIGludGVyZmFjZSBmb3VuZC5cbiIKK21zZ3N0ciAiTmVieWxvIG5hbGV6ZW5vIMW+w6FkbsOpIHBvdcW+aXRlbG7DqSByb3pocmFuw60gayBob2RpbsOhbS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTIyMSBod2Nsb2NrL2h3Y2xvY2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICJTeXN0w6ltb3bDvSDEjWFzIG5lbHplIG5hc3Rhdml0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGtlZXBzIGFuIGVwb2NoIHZhbHVlIGZvciB0aGUgSGFyZHdhcmUgQ2xvY2sgb25seSBvbiBhbiBBbHBoYSAiCisibWFjaGluZS5cbiIKKyJUaGlzIGNvcHkgb2YgaHdjbG9jayB3YXMgYnVpbHQgZm9yIGEgbWFjaGluZSBvdGhlciB0aGFuIEFscGhhXG4iCisiKGFuZCB0aHVzIGlzIHByZXN1bWFibHkgbm90IHJ1bm5pbmcgb24gYW4gQWxwaGEgbm93KS4gIE5vIGFjdGlvbiB0YWtlbi5cbiIKK21zZ3N0ciAiIgorIkrDoWRybyBvYnNhaHVqZSBob2Rub3R1IHBvxI3DoXRrdSBlcG9jaHkgcHJvIGhvZGlueSByZcOhbG7DqWhvIMSNYXN1IHBvdXplIG5hICIKKyJBbHBoYVxuIgorInN5c3TDqW1lY2guXG4iCisiVGVudG8gcHJvZ3JhbSBuZWJ5bCBwxZllbG/FvmVuIHBybyBBbHBoYSBzeXN0w6ltICggYSB0dWTDrcW+IHByYXZkxJtwb2RvYm7EmyBueW7DrVxuIgorIm5lYsSbxb7DrSBuYSBBbHBoxJspLiBJZ25vcm92w6Fuby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gZ2V0IHRoZSBlcG9jaCB2YWx1ZSBmcm9tIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIlBvxI3DoXRlayBlcG9jaHkgbmVsemUgeiBqw6FkcmEgemppc3RpdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJLZXJuZWwgaXMgYXNzdW1pbmcgYW4gZXBvY2ggdmFsdWUgb2YgJWx1XG4iCittc2dzdHIgIkrDoWRybyBwb2tsw6Fkw6EgemEgcG/EjcOhdGVrIGVwb2NoeSAlbHUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIHNldCB0aGUgZXBvY2ggdmFsdWUsIHlvdSBtdXN0IHVzZSB0aGUgJ2Vwb2NoJyBvcHRpb24gdG8gdGVsbCB0byB3aGF0ICIKKyJ2YWx1ZSB0byBzZXQgaXQuXG4iCittc2dzdHIgIlBvxI3DoXRlayBlcG9jaHkgbmFzdGF2w610ZSBwb21vY8OtIHDFmWVww61uYcSNxa8gZXBvY2ggYSBzZXRlcG9jaC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyB0aGUgZXBvY2ggdG8gJWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIlRlc3RvdmFjw60gcmXFvmltIC0gcG/EjcOhdGVrIGVwb2NoeSBuYSAlZCBuZW3Em27DrW0uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiSG9kbm90dSBwb8SNw6F0a3UgZXBvY2h5IHYgasOhZMWZZSBuZWx6ZSBuYXN0YXZpdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI5MCBtaXNjLXV0aWxzL2NhbC5jOjM0NyBtaXNjLXV0aWxzL2tpbGwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBuYSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorImh3Y2xvY2vCoOKAkyB6amnFocWldWplIGEgbmFzdGF2dWplIMSNYXMgaGFyZHdhcm92w71jaCBob2RpbiAoUlRDKVxuIgorIlxuIgorIlBvdcW+aXTDrTogaHdjbG9jayBbRlVOS0NFXSBbVk9MQlnigKZdXG4iCisiXG4iCisiRnVua2NlOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICB1a8Ohxb5lIHR1dG8gbsOhcG92xJtkdVxuIgorIiAgLXIgfCAtLXNob3cgICAgICAgICB6amlzdMOtIGEgdnlww63FoWUgYWt0dcOhbG7DrSBzdGF2IGhvZGluIHJlw6FsbsOpaG8gxI1hc3VcbiIKKyIgICAgICAgLS1zZXQgICAgICAgICAgbmFzdGF2w60gUlRDIG5hIGhvZG5vdHUgemFkYW5vdSB2b2xib3UgLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIG5hc3RhdsOtIHN5c3TDqW1vdsO9IMSNYXMgcG9kbGUgaG9kaW4gcmXDoWxuw6lobyDEjWFzdVxuIgorIiAgLXcgfCAtLXN5c3RvaGMgICAgICBuYXN0YXbDrSBSVEMgcG9kbGUgYWt0dcOhbG7DrWhvIHN5c3TDqW1vdsOpaG8gxI1hc3VcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgbmFzdGF2w60gc3lzdMOpbW92w70gxI1hcyBuYSB6w6FrbGFkxJsgc291xI1hc27DqSDEjWFzb3bDqSB6w7NueVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBvcHJhdsOtIFJUQyBvwqBzeXN0ZW1hdGlja8O9IHBvc3VuLCBrdGVyw70gbmFzdGFsIG9kICIKKyJwb3NsZWRuw61cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgb3ByYXZ5IMSNaSBuYXN0YXZlbsOtIFJUQ1xuIgorIiAgICAgICAtLWdldGVwb2NoICAgICB2eXDDrcWhZSBwb8SNw6F0ZWsgZXBvY2h5IGhvZGluIHJlw6FsbsOpaG8gxI1hc3UgcG9kbGUgasOhZHJhXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIG5hc3RhdsOtIGrDoWRydSBwb8SNw6F0ZWsgZXBvY2h5IGhvZGluIHJlw6FsbsOpaG8gxI1hc3UgbmFcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaG9kbm90dSB6YWRhbm91IHZvbGJvdSAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHZ5cMOtxaFlIHZlcnppIGh3Y2xvY2t1IG5hIHN0YW5kYXJkbsOtIHbDvXN0dXBcbiIKKyJcbiIKKyJWb2xieTogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIGhvZGlueSByZcOhbG7DqWhvIMSNYXN1IGpkb3UgdsKgVVRDXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIGhvZGlueSByZcOhbG7DqWhvIMSNYXN1IGpkb3UgdsKgbcOtc3Ruw61tIMSNYXNlXG4iCisiICAtZiB8IC0tcnRjPUNFU1RBICAgIG5hbcOtc3RvIHbDvWNob3rDrWhvIHphxZnDrXplbsOtIHBvdcW+aWplIHogL2Rldi/igKYgamluw6lcbiIKKyIgICAgICAgLS1kaXJlY3Rpc2EgICAgbcOtc3RvICVzIHBvdcW+aWplIHDFmcOtbW8gSVNBIHNixJtybmljaVxuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcnVqZSByb2sgesKgUlRDLCBwcm90b8W+ZSBCSU9TIGplIHJvemJpdMO9XG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIMSNYXMsIG5hIGt0ZXLDvSBidWRvdSBuYXN0YXZlbnkgaG9kaW55IHJlw6FsbsOpaG8gxI1hc3VcbiIKKyIgICAgICAgLS1lcG9jaD1ST0sgICAgdXLEjXVqZSBwb8SNw6F0ZWsgZXBvY2h5IGhvZGluIHJlw6FsbsOpaG8gxI1hc3VcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgbmVwb3XFvmlqZSAvZXRjL2FkanRpbWUuIFZ5xb5hZHVqZSBwb3XFvml0w60gYnXEjyAtLXV0YyxcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgbmVibyAtLWxvY2FsdGltZVxuIgorIiAgICAgICAtLWFkamZpbGU9Q0VTVEFcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdXLEjXVqZSBjZXN0dSBrwqBzb3Vib3J1IHNlIHN5c3RlbWF0aWNrw71tIHBvc3VuZW1cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgKGltcGxpY2l0bsOtIGplIC9ldGMvYWRqdGltZSlcbiIKKyIgICAgICAgLS10ZXN0ICAgICAgICAgcHJvdmVkZSB2xaFlIGtyb23EmyB2bGFzdG7DrWhvIG5hc3RhdmVuw60gaG9kaW4gcmXDoWxuw6lob1xuIgorIiAgICAgICAgICAgICAgICAgICAgICDEjWFzdSBuZWJvIMSNZWhva29saXYgamluw6lob1xuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBsYWRpY8OtIHJlxb5pbVxuIgorIlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisiXG4iCittc2dzdHIgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgICAgICAgICAgICAgICAgICB1csSNw60gdHlwIHZhxaFlaG8gc3lzdMOpbXUgQWxwaGEgKHZpenRlIGh3Y2xvY2soOCkpXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICIlczrigK9OZWx6ZSBzZSBwxZlpcG9qaXQga2Uga29udHJvbG7DrW11IHN5c3TDqW11XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdGFrZXMgbm8gbm9uLW9wdGlvbiBhcmd1bWVudHMuICBZb3Ugc3VwcGxpZWQgJWQuXG4iCittc2dzdHIgIiIKKyIlcyBha2NlcHR1amUgcG91emUgcMWZZXDDrW5hxI1lLiBaYWTDoW5vIGFyZ3VtZW50xa8sIGt0ZXLDqSBuZWpzb3UgcMWZZXDDrW5hxI1pOiAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyJaYWRhbCBqc3RlIHbDrWNlcm8gZnVua8SNbsOtY2ggcMWZZXDDrW5hxI3Fry5cbiIKKyJQcm9ncmFtIG3Fr8W+ZSBwcm92w6lzdCB2wqBqZWRlbiBva2Ftxb5payBwcsOhdsSbIGplZG51IGZ1bmtjaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiJXM6IFDFmWVww61uYcSNZSAtLXV0YyBhIC0tbG9jYWx0aW1lIG5lbHplIHBvdcW+w610IHrDoXJvdmXFiC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU3MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkanVzdCBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBWb2xieSAtLWFkanVzdCBhIC0tbm9hZGpmaWxlIHNlIHZ6w6FqZW1uxJsgdnlsdcSNdWrDrS4gVnkganN0ZSB2xaFhayBwb3XFvmlsICIKKyJvYsSbLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqZmlsZSBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBWb2xieSAtLWFkamZpbGUgYSAtLW5vYWRqZmlsZSBzZSB2esOhamVtbsSbIHZ5bHXEjXVqw60uIFZ5IGpzdGUgdsWhYWsgcG91xb5pbCIKKyIoYSkgb2LEmy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU4OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2l0aCAtLW5vYWRqZmlsZSwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKK21zZ3N0ciAiJXM6IFNvdcSNYXNuxJsgc8KgLS1ub2FkamZpbGUgbXVzw610ZSBwb3XFvsOtdCBidcSPIC0tdXRjLCBuZWJvIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiTmVieWwgemFkw6FuIHBsYXRuw70gxI1hcywga3RlcsO9IG3DoW0gbmFzdGF2aXQuIEhvZGlueSBuZWx6ZSBuYXN0YXZpdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICJIb2RpbnkgcmXDoWxuw6lobyDEjWFzdSBtxa/FvmUgbmFzdGF2aXQgcG91emUgc3VwZXJ1xb5pdmF0ZWwuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBTeXN0ZW0gQ2xvY2suXG4iCittc2dzdHIgIkhvZGlueSByZcOhbG7DqWhvIMSNYXN1IG3Fr8W+ZSBuYXN0YXZpdCBwb3V6ZSBzdXBlcnXFvml2YXRlbC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUgIgorImtlcm5lbC5cbiIKK21zZ3N0ciAiSG9kbm90dSBwb8SNw6F0a3UgZXBvY2h5IHYgasOhZMWZZSBtxa/FvmUgbmFzdGF2aXQgcG91emUgc3VwZXJ1xb5pdmF0ZWwuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB0aGUgSGFyZHdhcmUgQ2xvY2sgdmlhIGFueSBrbm93biBtZXRob2QuXG4iCittc2dzdHIgIiIKKyLFvcOhZG7DvW0gemUgem7DoW3DvWNoIHpwxa9zb2LFryBuZWx6ZSB6w61za2F0IHDFmcOtc3R1cCBrIGhvZGluw6FtIHJlw6FsbsOpaG8gxI1hc3UuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzZSB0aGUgLS1kZWJ1ZyBvcHRpb24gdG8gc2VlIHRoZSBkZXRhaWxzIG9mIG91ciBzZWFyY2ggZm9yIGFuIGFjY2VzcyAiCisibWV0aG9kLlxuIgorbXNnc3RyICJQcm8gemppxaF0xJtuw60gcG9kcm9ibm9zdMOtIHBvdcW+aWp0ZSBwxZllcMOtbmHEjSAtLWRlYnVnLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gS0RHSFdDTEsgdG8gY2hhbmdlXG4iCittc2dzdHIgIlZlIHNtecSNY2Ugc2UgcG9rb3XFocOtbSB6amlzdGl0IMSNYXMgcG9tb2PDrSBLREdIV0NMSy5cbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAidm9sw6Fuw60gS0RHSFdDTEsgaW9jdGwgc2VsaGFsby4iCisKKyM6IGh3Y2xvY2sva2QuYzo3NQorbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQgaW4gbG9vcCIKK21zZ3N0ciAidm9sw6Fuw60gS0RHSFdDTEsgaW9jdGwgdmUgc215xI1jZSBzZWxoYWxvLiIKKworIzogaHdjbG9jay9rZC5jOjgyIGh3Y2xvY2svcnRjLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWVkIG91dCB3YWl0aW5nIGZvciB0aW1lIGNoYW5nZS5cbiIKK21zZ3N0ciAiViDEjGFzb3bDqW0gbGltaXR1IHNlIG5lcG9kYcWZaWxvIHpqaXN0aXQgxI1hcy5cbiIKKworIzogaHdjbG9jay9rZC5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIGZhaWxlZCB0byByZWFkIHRpbWUgZnJvbSAlcyIKK21zZ3N0ciAixI1hcyBzZSBwb21vY8OtIHZvbMOhbsOtIGlvY3RsKCkgcHJvICVzIG5lcG9kYcWZaWxvIHpqaXN0aXQiCisKKyM6IGh3Y2xvY2sva2QuYzoxNDAKK21zZ2lkICJpb2N0bCBLRFNIV0NMSyBmYWlsZWQiCittc2dzdHIgInZvbMOhbsOtIGlvY3RsIEtEU0hXQ0xLIHNlbGhhbG8iCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIi9kZXYvdHR5MSBhbmkgL2Rldi92Yy8xIG5lbHplIG90ZXbFmcOtdCIKKworIzogaHdjbG9jay9rZC5jOjE4MAorbXNnaWQgIktER0hXQ0xLIGlvY3RsIGZhaWxlZCIKK21zZ3N0ciAidm9sw6Fuw60gaW9jdGwgS0RHSFdDTEsgc2VsaGFsbyIKKworIzogaHdjbG9jay9ydGMuYzoxNDcgaHdjbG9jay9ydGMuYzoyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbigpIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiJXMgbmVsemUgb3RldsWZw610IC0gdm9sw6Fuw60gb3BlbigpIHNlbGhhbG8iCisKKyM6IGh3Y2xvY2svcnRjLmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gcmVhZCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIsSNYXMgc2UgcG9tb2PDrSB2b2zDoW7DrSBpb2N0bCgpIHBybyAlcyBuZXBvZGHFmWlsbyB6amlzdGl0XG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tICVzIHRvIGNoYW5nZVxuIgorbXNnc3RyICLEjGVrw6FtIHZlIHNtecSNY2UgbmEgem3Em251IMSNYXN1IHogJXNcbiIKKworIzogaHdjbG9jay9ydGMuYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZG9lcyBub3QgaGF2ZSBpbnRlcnJ1cHQgZnVuY3Rpb25zLiAiCittc2dzdHIgIiVzIG5lbcOhIHDFmWVydcWhb3ZhY8OtIGZ1bmtjZS4gIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkKCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgInRpa8OhbsOtIGhvZGluIG5lbHplIHogJXMgxI3DrXN0IC0gdm9sw6Fuw60gcmVhZCgpIHNlbGhhbG8iCisKKyM6IGh3Y2xvY2svcnRjLmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICLEjGVrw6Fuw60gbmEgdGlrIGhvZGluIHBvbW9jw60gc2VsZWN0KCkgbmFkICVzIHNlbGhhbCIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAiTmVkb8SNa2FsIGpzZW0gc2UgdGlrdSBob2RpbiBwb21vY8OtIHNlbGVjdCgpIG5hZCAlc1xuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAib2Jub3ZvdmFjw60gcMWZZXJ1xaFlbsOtIG5lbHplIHZ5cG5vdXQgLSB2b2zDoW7DrSBpb2N0bCgpIHBybyAlcyBzZWxoYWxvIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAib2Jub3ZvdmFjw60gcMWZZXJ1xaFlbsOtIG5lbHplIHphcG5vdXQgLSB2b2zDoW7DrSBpb2N0bCgpIHBybyAlcyBzZWxoYWxvIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIsSMYXMgbmVsemUgbmFzdGF2aXQgLSB2b2zDoW7DrSBpb2N0bCgpIHBybyAlcyBzZWxoYWxvLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCglcykgd2FzIHN1Y2Nlc3NmdWwuXG4iCittc2dzdHIgIlZvbMOhbsOtIGlvY3RsKCVzKSBieWxvIMO6c3DEm8WhbsOpLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcGVuIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiJXMgbmVsemUgb3RldsWZw610LiIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisiUHJvIHptxJtudSBob2Rub3R5IHBvxI3DoXRrdSBlcG9jaHkgdiBqw6FkxZllIGplIG51dG7DqSBwb3XFvsOtdCAncnRjJyBvdmxhZGHEjSAiCisicG9tb2PDrVxuIgorInp2bMOhxaF0bsOtaG8gc291Ym9ydSAlcy4gVGVudG8gc291Ym9yIG5hIHRvbXRvIHN5c3TDqW11IHNvdWJvcsWvIG5lZXhpc3R1amUuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDE1IGh3Y2xvY2svcnRjLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICIlcyBuZWx6ZSBvdGV2xZnDrXQiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKFJUQ19FUE9DSF9SRUFEKSB0byAlcyBmYWlsZWQiCittc2dzdHIgInZvbMOhbsOtKFJUQ19FUE9DSF9SRUFEKSBwcm8gJXMgc2VsaGFsbyIKKworIzogaHdjbG9jay9ydGMuYzo0MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2UgaGF2ZSByZWFkIGVwb2NoICVsZCBmcm9tICVzIHdpdGggUlRDX0VQT0NIX1JFQUQgaW9jdGwuXG4iCittc2dzdHIgIiIKKyJaICUyJHMgYnlsIHBvbW9jw60gUlRDX0VQT0NIX1JFQUQgaW9jdGwgemppxaF0xJtuIHBvxI3DoXRlayBlcG9jaHkgKCUxJGxkKS5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVwb2NoIHZhbHVlIG1heSBub3QgYmUgbGVzcyB0aGFuIDE5MDAuICBZb3UgcmVxdWVzdGVkICVsZFxuIgorbXNnc3RyICJIb2Rub3RhIHBvxI3DoXRrdSBlcG9jaHkgbmVzbcOtIGLDvXQgbWVuxaHDrSBuZcW+IDE5MDAgKHBvxb5hZG92w6FubyAlbGQpLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZXR0aW5nIGVwb2NoIHRvICVsZCB3aXRoIFJUQ19FUE9DSF9TRVQgaW9jdGwgdG8gJXMuXG4iCittc2dzdHIgIiIKKyJOYXN0YXZ1amkgcG9tb2PDrSBSVENfRVBPQ0hfU0VUIGlvY3RsIHBybyAlMiRzIHBvxI3DoXRlayBlcG9jaHkgbmEgJTEkbGQuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGRldmljZSBkcml2ZXIgZm9yICVzIGRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCittc2dzdHIgIk92bGFkYcSNIGrDoWRyYSBwcm8gJXMgbmVwb2Rwb3J1amUgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJ2b2zDoW7DrSBpb2N0bChSVENfRVBPQ0hfU0VUKSBwcm8gJXMgc2VsaGFsbyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBleGVjICVzOiAlbSIKK21zZ3N0ciAiJXM6ICVzIG5lbHplIHNwdXN0aXQ6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozODMKK21zZ2lkICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKK21zZ3N0ciAicGFtxJvFpSBwcm8gaW5pY2lhbGl6YcSNbsOtIMWZZXTEm3plYyBuZWx6ZSBhbG9rb3ZhdCIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAiY2h5Ym7DvSDEjWFzb3bDvSBsaW1pdDogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgc3BlZWQ6ICVzIgorbXNnc3RyICJjaHlibsOhIHJ5Y2hsb3N0ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKK21zZ2lkICJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIgorbXNnc3RyICJwxZnDrWxpxaEgbW5vaG8gYWx0ZXJuYXRpdm7DrWNoIHJ5Y2hsb3N0w60iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIi9kZXY6IHZvbMOhbsOtIGNoZGlyKCkgc2VsaGFsbzogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBub3QgYSBjaGFyYWN0ZXIgZGV2aWNlIgorbXNnc3RyICIvZGV2LyVzIG5lbsOtIHpuYWtvdsO9bSB6YcWZw616ZW7DrW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY0MgorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBjYW5ub3Qgb3BlbiBhcyBzdGFuZGFyZCBpbnB1dDogJW0iCittc2dzdHIgIi9kZXYvJXMgbmVsemUgb3RldsWZw610IGpha28gc3RhbmRhcmRuw60gdnN0dXA6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBvcGVuIGZvciByZWFkL3dyaXRlIgorbXNnc3RyICIlczogbmVuw60gb3RldsWZZW5vIHBybyDEjXRlbsOtL3rDoXBpcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkdXAgcHJvYmxlbTogJW0iCittc2dzdHIgIiVzOiB2b2zDoW7DrSBkdXAgc2VsaGFsbzogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICJ1xb5pdmF0ZWwiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VycyIKK21zZ3N0ciAidcW+aXZhdGVsw6kiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQ6ICVtIgorbXNnc3RyICIlczogcMWZZcSNdGVubzogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlucHV0IG92ZXJydW4iCittc2dzdHIgIiVzOiBwxZlldGXEjWVuw60gdnN0dXB1IgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy04aGlMbVV3XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggIgorImxvZ2luX2hvc3RdIGJhdWRfcmF0ZSwuLi4gbGluZSBbdGVybXR5cGVdXG4iCisib3JcdFstaGlMbXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCBsb2dpbl9ob3N0XSAiCisibGluZSBiYXVkX3JhdGUsLi4uIFt0ZXJtdHlwZV1cbiIKK21zZ3N0ciAiIgorIlBvdcW+aXTDrTogJXMgWy04aGlMbVV3XSBbLWwgTE9HSU5fUFJPR1JBTV0gWy10IMSMQVNPVsOdX0xJTUlUXSBbLUkgIgorIklOSUNJQUxJWkHEjE7DjV/FmEVUxJpaRUNdIFstSCBQT8SMw41UQcSMXSBCQVVEX1JBVEUs4oCmIExJTktBIFtUWVBfVEVSTUlOw4FMVV1cbiIKKyLEjWlcdFstaGlMbXddIFstbCBMT0dJTl9QUk9HUkFNXSBbLXQgxIxBU09Ww51fTElNSVRdIFstSSBJTklDSUFMSVpBxIxOw41fxZhFVMSaWkVDXSAiCisiWy1IIFBPxIzDjVRBxIxdIExJTktBIEJBVURfUkFURSzigKYgW1RZUF9URVJNSU7DgUxVXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkxIGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBtZW1vcnkgbG93LCBsb2dpbiBtYXkgZmFpbFxuIgorbXNnc3RyICJsb2dpbjogbmVkb3N0YXRlayBwYW3Em3RpLCBwxZlpaGzDocWhZW7DrSBzZSBuZW11c8OtIHpkYcWZaXRcbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MgorbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgdHR5Y2xhc3MiCittc2dzdHIgInBhbcSbxaUgcHJvIHR0eWNsYXNzIG5lbHplIGFsb2tvdmF0IgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMworbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIKK21zZ3N0ciAicGFtxJvFpSBwcm8gZ3JwbGlzdCBuZWx6ZSBhbG9rb3ZhdCIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiUMWZaWhsw6HFoWVuw60geiAlMiRzIG5hIHR0eSAlMSRzIGltcGxpY2l0bsSbIG9kbcOtdG51dG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICJQxZlpaGzDocWhZW7DrSB6ICQyJXMgbmEgJDElcyBvZG3DrXRudXRvLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTMzIGxvZ2luLXV0aWxzL2Noc2guYzoxMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHlvdSAodXNlciAlZCkgZG9uJ3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiB2eSAodcW+aXZhdGVsICVkKSBuZWV4aXN0dWpldGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDAgbG9naW4tdXRpbHMvY2hzaC5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiB1xb5pdmF0ZWwgXCIlc1wiIG5lZXhpc3R1amUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiVzOiBtxa/FvmUgbcSbbml0IHBvdXplIG3DrXN0bsOtIHBvbG/Fvmt5OyBwb3XFvmlqdGUgeXAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NiBsb2dpbi11dGlscy9jaHNoLmM6MTQyCittc2dpZCAiVW5rbm93biB1c2VyIGNvbnRleHQiCittc2dzdHIgIk5lem7DoW3DvSBrb250ZXh0IHXFvml2YXRlbGUiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgZmluZ2VyIGluZm8gb2YgJXNcbiIKK21zZ3N0ciAiJXM6ICVzIG5lbsOtIGF1dG9yaXpvdsOhbiBtxJtuaXQgZmluZ2VyIGluZm9ybWFjZSBvwqB1xb5pdmF0ZWxpICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiVzOiBOZW1vaHUgbmFzdGF2aXQgdsO9Y2hvesOtIGtvbnRleHQgcHJvIC9ldGMvcGFzc3dkIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGZpbmdlciBpbmZvcm1hdGlvbiBmb3IgJXMuXG4iCittc2dzdHIgIk3Em27DrW0gZmluZ2VyIGluZm9ybWFjZSBvIHXFvml2YXRlbGkgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxODkgbG9naW4tdXRpbHMvY2hzaC5jOjE4OCBsb2dpbi11dGlscy9sb2dpbi5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICIlczogY2h5YmEgUEFNLCBrb27EjcOtbTogJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxMiBsb2dpbi11dGlscy9jaHNoLmM6MjExIGxvZ2luLXV0aWxzL2xvZ2luLmM6ODI3CisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo3OSBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQwIG1vdW50L2xvbW91bnQuYzo3NDIKKyM6IG1vdW50L2xvbW91bnQuYzo3NDUKK21zZ2lkICJQYXNzd29yZDogIgorbXNnc3RyICJIZXNsbzogIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjE1IGxvZ2luLXV0aWxzL2Noc2guYzoyMTQKK21zZ2lkICJJbmNvcnJlY3QgcGFzc3dvcmQuIgorbXNnc3RyICJDaHlibsOpIGhlc2xvLiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIkZpbmdlciBpbmZvcm1hY2UgbmVieWx5IHptxJtuxJtueS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWyAtZiBmdWxsLW5hbWUgXSBbIC1vIG9mZmljZSBdICIKK21zZ3N0ciAiUG91xb5pdMOtOiAlcyBbIC1mIHBsbsOpLWptw6lubyBdIFsgLW8ga2FuY2Vsw6HFmSBdICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWyAtcCBvZmZpY2UtcGhvbmUgXVxuIgorIlx0WyAtaCBob21lLXBob25lIF0gIgorbXNnc3RyICIiCisiWyAtcCB0ZWxlZm9uLWRvLWthbmNlbMOhxZllIF1cbiIKKyJcdFsgLWggdGVsZWZvbi1kb23FryBdICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMzMAorIywgYy1mb3JtYXQKK21zZ2lkICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKK21zZ3N0ciAiWyAtLWhlbHAgXSBbIC0tIHZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICJLYW5jZWzDocWZIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc5Cittc2dpZCAiT2ZmaWNlIFBob25lIgorbXNnc3RyICJUZWxlZm9uIGRvIHByw6FjZSIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIlRlbGVmb24gZG9txa8iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlVrb27EjWVuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDM0CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZWxkIGlzIHRvbyBsb25nLlxuIgorbXNnc3RyICJQb2xvxb5rYSBqZSBwxZnDrWxpxaEgZGxvdWjDoS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0MgorIywgYy1mb3JtYXQKK21zZ2lkICInJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICInJWMnIG5lbsOtIHBvdm9sZW5vLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvbnRyb2wgY2hhcmFjdGVycyBhcmUgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIktvbnRyb2xuw60gem5ha3kgbmVqc291IHBvdm9sZW55LlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICJGaW5nZXIgaW5mb3JtYWNlICpORUJZTFkqIHptxJtuxJtueS4gWmt1c3RlIHRvIG9wxJt0IHBvemTEm2ppLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBjaGFuZ2VkLlxuIgorbXNnc3RyICJGaW5nZXIgaW5mb3JtYWNlIGJ5bHkgem3Em27Em255LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBuZW7DrSBvcHLDoXZuxJtuIG3Em25pdCBzaGVsbCB1xb5pdmF0ZWxlICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBSdW5uaW5nIFVJRCBkb2Vzbid0IG1hdGNoIFVJRCBvZiB1c2VyIHdlJ3JlIGFsdGVyaW5nLCBzaGVsbCBjaGFuZ2UgIgorImRlbmllZFxuIgorbXNnc3RyICIiCisiJXM6IEFrdHXDoWxuw60gVUlEIHNlIG5lc2hvZHVqZSBzwqBVSUQgdcW+aXZhdGVsZSwga3RlcsOpaG8gY2hjZW1lIHptxJtuaXQsXG4iCisiem3Em25hIHNoZWxsdSBvZG3DrXRudXRhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiVzOiBWw6HFoSBzaGVsbCBuZW7DrSB2IC9ldGMvc2hlbGxzLCB6bcSbbmEgc2hlbGx1IG9kbcOtdG51dGFcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBzaGVsbCBmb3IgJXMuXG4iCittc2dzdHIgIk3Em27DrW0gc2hlbGwgcHJvICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJOb3bDvSBzaGVsbCIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyOQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiU2hlbGwgbmVieWwgem3Em27Em24uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiU2hlbGwgKk5FQllMKiB6bcSbbsSbbi4gWmt1c3RlIHRvIG9wxJt0IHBvemTEm2ppLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIGNoYW5nZWQuXG4iCittc2dzdHIgIlNoZWxsIGJ5bCB6bcSbbsSbbi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1c2VybmFtZSBdXG4iCittc2dzdHIgIiIKKyJQb3XFvml0w606ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgICAgICBbIHXFvml2YXRlbHNrw6kgam3DqW5vIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM0OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2hlbGwgbXVzdCBiZSBhIGZ1bGwgcGF0aCBuYW1lLlxuIgorbXNnc3RyICIlczogc2hlbGwgbXVzw60gYsO9dCB6YWTDoW4gw7pwbG7DvW0gam3DqW5lbSBjZXN0eS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogXCIlc1wiIG5lZXhpc3R1amUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgZXhlY3V0YWJsZS5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBuZW7DrSBzcHVzdGl0ZWxuw71tIHNvdWJvcmVtLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogJyVjJyBuZW7DrSBwb3ZvbGVuby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6IEtvbnRyb2xuw60gem5ha3kgbmVqc291IHBvdm9sZW55LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc1IGxvZ2luLXV0aWxzL2Noc2guYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIlZhcm92w6Fuw606IFwiJXNcIiBuZW7DrSB2IC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBuZW7DrSB2IC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVc2UgLWwgb3B0aW9uIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICIlczogU2V6bmFtIHZ5cMOtxaFldGUgcMWZZXDDrW5hxI1lbSAtbC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIlBvdcW+aWp0ZSAlcyAtbCBwcm8gdnlwc8OhbsOtIHNlem5hbXVcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBrbm93biBzaGVsbHMuXG4iCittc2dzdHIgIk5lbsOtIHpuw6FtIMW+w6FkbsO9IHNoZWxsLlxuIgorCisjOiBsb2dpbi11dGlscy9pc2xvY2FsLmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIG9wZW4gJXMgZm9yIHJlYWRpbmcsIGV4aXRpbmcuIgorbXNnc3RyICIlcyBuZWx6ZSBvdGV2xZnDrXQgcHJvIMSNdGVuw60sIGtvbsSNw61tLiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICIiCisiUG91xb5pdMOtOiBsYXN0IFstI10gWy1mIFNPVUJPUl0gWy10IFRUWV0gWy1oIE7DgVpFVl9QT8SMw41UQcSMRV1cbiIKKyIgICAgICAgICAgICAgICAgW1XFvUlWQVRFTOKApl1cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIgIHN0w6FsZSBwxZlpaGzDocWhZW4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInd0bXAgYmVnaW5zICVzIgorbXNnc3RyICIiCisiXG4iCisid3RtcCB6YcSNw61uw6EgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozODAgbG9naW4tdXRpbHMvbGFzdC5jOjM5OCBsb2dpbi11dGlscy9sYXN0LmM6NDQ5Cittc2dpZCAibGFzdDogbWFsbG9jIGZhaWx1cmUuXG4iCittc2dzdHIgImxhc3Q6IHZvbMOhbsOtIG1hbGxvYyBzZWxoYWxvLlxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgImxhc3Q6IGdldGhvc3RuYW1lIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisicMWZZXJ1xaFlbiAlMTAuMTBzICU1LjVzIFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIkZBVMOBTE7DjTogbmVsemUgem5vdnUgb3RldsWZw610IHR0eTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIKK21zZ3N0ciAiRkFUw4FMTsONOiAlcyBuZW7DrSB0ZXJtaW7DoWxlbSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMzgKK21zZ2lkICJGQVRBTDogYmFkIHR0eSIKK21zZ3N0ciAiRkFUw4FMTsONOiDFoXBhdG7DqSB0dHkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICJsb2dpbjogcMWZZXDDrW5hxI0gLWggbcWvxb5lIHBvdcW+w610IHBvdXplIHN1cGVydcW+aXZhdGVsXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgIlBvdcW+aXTDrTogbG9naW4gW2ZwXSBbdcW+aXZhdGVsc2vDqSBqbcOpbm9dXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiUEFNIG5lbHplIGluaWNpYWxpem92YXQ6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgIlDFmWlobGHFoW92YWPDrSBqbcOpbm86IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICIlMSRkLiBDSFlCTsOJIFDFmElITMOBxaBFTsONIFXFvUlWQVRFTEUgJTMkcyBaICUyJHMsICU0JHMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkNoeWJuw6kgcMWZaWhsw6HFoWVuw61cbiIKKyJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIlDFmMONTEnFoCBNTk9ITyAoJTEkZCkgUE9LVVPFriBVxb1JVkFURUxFICUzJHMgTyBQxZhJSEzDgcWgRU7DjSBaICUyJHMsICU0JHMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiBTRVNTSU9OIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiTkXDmlNQxJrFoE7DiSBQxZhJSEzDgcWgRU7DjSBVxb1JVkFURUxFICUyJHMgWiAlMSRzLCAlMyRzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIiIKKyJcbiIKKyJDaHlibsOpIHDFmWlobMOhxaFlbsOtXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkwIGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk3IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIgorbXNnc3RyICIiCisiXG4iCisiUHJvYmzDqW0gYsSbaGVtIG5hc3Rhdm92w6Fuw60gcmVsYWNlLiBQxZllcnXFoXVqaSDEjWlubm9zdC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiTlVMTE9Ww4kgam3DqW5vIHXFvml2YXRlbGUgdsKgJXM6JWQuIFDFmWVydcWhdWppIMSNaW5ub3N0LiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB1c2VyIG5hbWUgXCIlc1wiIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIk5lcGxhdG7DqSBqbcOpbm8gdcW+aXZhdGVsZSDigJ4lc+KAnCB2wqAlczolZC4gUMWZZXJ1xaF1amkgxI1pbm5vc3QuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJsb2dpbjogTmVkb3N0YXRlayBwYW3Em3RpXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzYxCittc2dpZCAiSWxsZWdhbCB1c2VybmFtZSIKK21zZ3N0ciAiQ2h5Ym7DqSB1xb5pdmF0ZWxza8OpIGptw6lubyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9naW4gcmVmdXNlZCBvbiB0aGlzIHRlcm1pbmFsLlxuIgorbXNnc3RyICJwxZlpaGzDocWhZW7DrSB1xb5pdmF0ZWxlICVzIG5hIHRvbXRvIHRlcm1pbsOhbHUgb2Rtw610bnV0b1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIEZST00gJXMgT04gVFRZICVzIgorbXNnc3RyICJQxZhJSEzDgcWgRU7DjSBVxb1JVkFURUxFICVzIFogJXMgTkEgVFRZICVzIE9ETcONVE5VVE8iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgT04gVFRZICVzIgorbXNnc3RyICJQxZhJSEzDgcWgRU7DjSBVxb1JVkFURUxFICVzIE5BIFRUWSAlcyBPRE3DjVROVVRPIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjg2NworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiQ2h5Ym7DqSBwxZlpaGzDocWhZW7DrVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRElBTFVQIEFUICVzIEJZICVzIgorbXNnc3RyICJQxZjDjVNUVVAgVcW9SVZBVEVMRSAlMiRzIFZZVMOBxIxFTk9VIExJTktPVSBOQSBUVFkgJTEkcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMgRlJPTSAlcyIKK21zZ3N0ciAiUMWYSUhMw4HFoEVOw40gVcW9SVZBVEVMRSBST09UIFogJTIkcyBOQSBUVFkgJTEkcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMiCittc2dzdHIgIlDFmElITMOBxaBFTsONIFXFvUlWQVRFTEUgUk9PVCBOQSBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwNQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyBGUk9NICVzIgorbXNnc3RyICJQxZhJSEzDgcWgRU7DjSBVxb1JVkFURUxFICUyJHMgWiAlMyRzIE5BIFRUWSAlMSRzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIlDFmElITMOBxaBFTsONIFXFvUlWQVRFTEUgJTIkcyBOQSBUVFkgJTEkcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG5ldyBtYWlsLlxuIgorbXNnc3RyICJNw6F0ZSBub3ZvdSBwb8WhdHUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEzMQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBtYWlsLlxuIgorbXNnc3RyICJNw6F0ZSBzdGFyb3UgcG/FoXR1LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiCittc2dzdHIgImxvZ2luOiB2b2zDoW7DrSBmb3JrIHNlbGhhbG86ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVElPQ1NDVFRZIGZhaWxlZDogJW0iCittc2dzdHIgIlNlbGhhbG8gVElPQ1NDVFRZOiAlbSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjI4Cittc2dpZCAic2V0dWlkKCkgZmFpbGVkIgorbXNnc3RyICJ2b2zDoW7DrSBzZXR1aWQoKSBzZWxoYWxvIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICJBZHJlc8OhxZkgJXMgbmVleGlzdHVqZSFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2dpbmcgaW4gd2l0aCBob21lID0gXCIvXCIuXG4iCittc2dzdHIgIlDFmWlobGHFoXVqaSBzIGRvbcOhY8OtbSBhZHJlc8OhxZllbSBuYXN0YXZlbsO9bSBuYSBcIi9cIi5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBtZW1vcnkgZm9yIHNoZWxsIHNjcmlwdC5cbiIKK21zZ3N0ciAibG9naW46IG5lZG9zdGF0ZWsgcGFtxJt0aSBwcm8gc2tyaXB0IHNoZWxsdS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBza3JpcHQgc2hlbGx1ICVzIG5lbHplIHNwdXN0aXQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gc2hlbGw6ICVzLlxuIgorbXNnc3RyICJsb2dpbjogxb7DoWRuw70gc2hlbGw6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyJQxZlpaGxhxaFvdmFjw60gam3DqW5vIG5hICVzOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lIG11Y2ggdG9vIGxvbmcuXG4iCittc2dzdHIgInDFmWlobGHFoW92YWPDrSBqbcOpbm8gamUgcMWZw61sacWhIGRsb3Vow6kuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMworbXNnaWQgIk5BTUUgdG9vIGxvbmciCittc2dzdHIgIkpNw4lOTyBqZSBwxZnDrWxpxaEgZGxvdWjDqSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgInDFmWlobGHFoW92YWPDrSBqbcOpbm8gbmVzbcOtIHphxI3DrW5hdCAnLScuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBiYXJlIGxpbmVmZWVkcy5cbiIKK21zZ3N0ciAicMWZw61sacWhIG1ub2hvIHpuYWvFryBMRlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjEKK21zZ2lkICJFWENFU1NJVkUgbGluZWZlZWRzIgorbXNnc3RyICJQxZjDjUxJxaAgbW5vaG8gem5ha8WvIExGIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiVnlwcsWhZWwgxI1hc292w70gbGltaXQgKCVkIHNla3VuZCkgcHJvIHDFmWlobMOhxaFlbsOtLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBsb2dpbjogJS4qcyAiCittc2dzdHIgIlBvc2xlZG7DrSBwxZlpaGzDocWhZW7DrTogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAieiAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvbiAlLipzXG4iCittc2dzdHIgIiUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIkNIWUJOw4kgUMWYSUhMw4HFoEVOw40gVcW9SVZBVEVMRSAlMiRzIFogJTEkcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICJDSFlCTsOJIFDFmElITMOBxaBFTsONIFXFvUlWQVRFTEUgJTIkcyBOQSBUVFkgJTEkcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIgorbXNnc3RyICJQT8SMRVQgQ0hZQk7DnUNIIFDFmElITMOBxaBFTsONIFXFvUlWQVRFTEUgJTMkcyBaICUyJHM6ICUxJGQiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBPTiAlcywgJXMiCittc2dzdHIgIlBPxIxFVCBDSFlCTsOdQ0ggUMWYSUhMw4HFoEVOw40gVcW9SVZBVEVMRSAlMyRzIE5BIFRUWSAlMiRzOiAlMSRkIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICJwxZnDrWplbSB6cHLDoXYgamUgemFwbnV0XG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBuXG4iCittc2dzdHIgInDFmcOtamVtIHpwcsOhdiBqZSB2eXBudXRcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgIlBvdcW+aXTDrTogbWVzZyBbeSB8IG5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjk5Cittc2dpZCAibmV3Z3JwOiBXaG8gYXJlIHlvdT8iCittc2dzdHIgIm5ld2dycDogS2RvIGpzdGU/IgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMDcgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTIxCittc2dpZCAibmV3Z3JwOiBzZXRnaWQiCittc2dzdHIgIm5ld2dycDogc2V0Z2lkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMTQgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE2Cittc2dpZCAibmV3Z3JwOiBObyBzdWNoIGdyb3VwLiIKK21zZ3N0ciAibmV3Z3JwOiDFvcOhZG7DoSB0YWtvdsOhIHNrdXBpbmEgbmVleGlzdHVqZS4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyNQorbXNnaWQgIm5ld2dycDogUGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm5ld2dycDogUMWZw61zdHVwIG9kbcOtdG51dCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTMyCittc2dpZCAibmV3Z3JwOiBzZXR1aWQiCittc2dzdHIgIm5ld2dycDogc2V0dWlkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzgKK21zZ2lkICJObyBzaGVsbCIKK21zZ3N0ciAixb3DoWRuw70gc2hlbGwiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW5zXVxuIgorbXNnc3RyICJQb3XFvml0w606IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnV0eV1cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgIlByb2NlcyBzaHV0ZG93biB1a29uxI1lbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9ubHkgcm9vdCBjYW4gc2h1dCBhIHN5c3RlbSBkb3duLlxuIgorbXNnc3RyICIlczogUG91emUgc3VwZXJ1xb5pdmF0ZWwgbcWvxb5lIHZ5cG5vdXQgc3lzdMOpbS5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIlRvIGJ1ZGUgesOtdHJhLiBUbyBkbyB0w6kgZG9ieSBuZW3Fr8W+ZXRlIHBvxI1rYXQ/XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzEwCittc2dpZCAiZm9yIG1haW50ZW5hbmNlOyBib3VuY2UsIGJvdW5jZSIKK21zZ3N0ciAia3bFr2xpIMO6ZHLFvmLEmyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMzkKK21zZ2lkICJUaGUgc3lzdGVtIGlzIGJlaW5nIHNodXQgZG93biB3aXRoaW4gNSBtaW51dGVzIgorbXNnc3RyICJTeXN0w6ltIGJ1ZGUgemEgNSBtaW51dCB2eXBudXQiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzQzCittc2dpZCAiTG9naW4gaXMgdGhlcmVmb3JlIHByb2hpYml0ZWQuIgorbXNnc3RyICJQxZlpaGxhxaFvdsOhbsOtIGplIHR1ZMOtxb4gemFrw6F6w6Fuby4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY1CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYm9vdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAicmVzdGFydG92w6FubyB1xb5pdmF0ZWxlbSAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhhbHRlZCBieSAlczogJXMiCittc2dzdHIgInphc3RhdmVubyB1xb5pdmF0ZWxlbSAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDMyCittc2dpZCAiIgorIlxuIgorIldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iCittc2dzdHIgIiIKKyJcbiIKKyJQcm/EjSBqc2VtIHBvIHJlc3RhcnR1IHN0w6FsZSBuYcW+aXZ1PyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisiTnluw60gbcWvxb5ldGUgdnlwbm91dCBwcm91ZOKApiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBrZXJuZWwgcG93ZXItb2ZmIGZhY2lsaXR5Li4uXG4iCittc2dzdHIgIlZvbMOhbSB6YcWZw616ZW7DrSBqw6FkcmEgcHJvIHZ5cMOtbsOhbsOtIHByb3VkdeKAplxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIkNoeWJhIHDFmWkgdnlww61uw6Fuw60gcHJvdWR1XHQlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICJFeGVjdXRpbmcgdGhlIHByb2dyYW0gXCIlc1wiIC4uLlxuIgorbXNnc3RyICJTcG91xaF0w61tIHByb2dyYW0g4oCeJXPigJzigKZcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nXHQlc1xuIgorbXNnc3RyICJDaHliYSBwxZlpIHNwdcWhdMSbbsOtXHQlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJVUkdFTlQ6IGJyb2FkY2FzdCBtZXNzYWdlIGZyb20gJXM6IgorbXNnc3RyICJOQUzDiUhBVsOJOiB6cHLDoXZhIHBybyB2xaFlY2hueSBvZCAlczoiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiCittc2dzdHIgIlN5c3TDqW0gYnVkZSB2eXBudXQgemEgJWRoICVkbWluIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAiU3lzdMOpbSBidWRlIHZ5cG51dCB6YSAxaCAlZG1pbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgbWludXRlc1xuIgorbXNnc3RyICJTeXN0w6ltIGJ1ZGUgdnlwbnV0IHphICVkbWluXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgbWludXRlXG4iCittc2dzdHIgIlN5c3TDqW0gYnVkZSB2eXBudXQgemEgMW1pblxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAiU3lzdMOpbSBidWRlIE9LQU3FvUlUxJogdnlwbnV0IVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICJcdC4uLiAlcyAuLi5cbiIKK21zZ3N0ciAiXHQuLi4gJXMgLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTcwCittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHN3YXBvZmYuIFNocnVnISIKK21zZ3N0ciAiU3dhcG9mZiBuZWx6ZSBzcHVzdGl0IC0gdm9sw6Fuw60gZm9yayBzZWxoYWxvLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzgKK21zZ2lkICJDYW5ub3QgZXhlYyBzd2Fwb2ZmLCBob3BpbmcgdW1vdW50IHdpbGwgZG8gdGhlIHRyaWNrLiIKK21zZ3N0ciAiU3dhcG9mZiBuZWx6ZSBzcHVzdGl0IC0gdm9sw6Fuw60gZXhlYyBzZWxoYWxvLiBTbmFkIHBvbcWvxb5lIHVtb3VudC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiVW1vdW50IG5lbHplIHNwdXN0aXQgLSB2b2zDoW7DrSBmb3JrIHNlbGhhbG8sIHprb3XFocOtbSB0byBydcSNbsSbLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGV4ZWMgJXMsIHRyeWluZyB1bW91bnQuXG4iCittc2dzdHIgIiVzIG5lbHplIHNwdXN0aXQgLSB2b2zDoW7DrSBleGVjIHNlbGhhbG8sIHprb3XFocOtbSB1bW91bnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjEwCittc2dpZCAiQ2Fubm90IGV4ZWMgdW1vdW50LCBnaXZpbmcgdXAgb24gdW1vdW50LiIKK21zZ3N0ciAiIgorIlVtb3VudCBuZWx6ZSBzcHVzdGl0IC0gdm9sw6Fuw60gZXhlYyBzZWxoYWxvLCB2emTDoXbDoW0gc25haHUgbyBzcHXFoXTEm27DrSB1bW91bnQuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxNQorbXNnaWQgIlVubW91bnRpbmcgYW55IHJlbWFpbmluZyBmaWxlc3lzdGVtcy4uLiIKK21zZ3N0ciAiT2Rwb2p1amkgdsWhZWNobnkgemLDvXZhasOtY8OtIHN5c3TDqW15IHNvdWJvcsWv4oCmIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJzaHV0ZG93bjogQ291bGRuJ3QgdW1vdW50ICVzOiAlc1xuIgorbXNnc3RyICJzaHV0ZG93bjogJXMgbmVsemUgb2Rwb2ppdDogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzMgorbXNnaWQgIkJvb3RpbmcgdG8gc2luZ2xlIHVzZXIgbW9kZS5cbiIKK21zZ3N0ciAiU3RhcnR1amkgZG8gcmXFvmltdSBwcm8gamVkbm9obyB1xb5pdmF0ZWxlLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTM2Cittc2dpZCAiZXhlYyBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAiIgorIlNwdcWhdMSbbsOtIHNoZWxsdSBwcm8gamVkbm9obyB1xb5pdmF0ZWxlIHNlIG5lemRhxZlpbG8gLSB2b2zDoW7DrSBleGVjIHNlbGhhbG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICIiCisiU3B1xaF0xJtuw60gc2hlbGx1IHBybyBqZWRub2hvIHXFvml2YXRlbGUgc2UgbmV6ZGHFmWlsbyAtIHZvbMOhbsOtIGZvcmsgc2VsaGFsby5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICJDaHliYSBwxZlpIG90ZXbDrXLDoW7DrSBwb2ptZW5vdmFuw6kgcm91cnlcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIxMgorbXNnaWQgImVycm9yIHNldHRpbmcgY2xvc2Utb24tZXhlYyBvbiAvZGV2L2luaXRjdGwiCittc2dzdHIgImNoeWJhIGLEm2hlbSBuYXN0YXZvdsOhbsOtIHphdsWZw610LXDFmWktc3B1xaF0xJtuw60gcMWZw616bmFrdSBuYSAvZGV2L2luaXRjdGwiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNTkKK21zZ2lkICJlcnJvciBydW5uaW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJjaHliYSBwxZlpIGLEm2h1IHrDoXbEm3JlxI1uw6lobyBwcm9ncmFtdVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAidm9sw6Fuw60gZm9yayBwcm8gesOhdsSbcmXEjW7DvSBwcm9ncmFtIHNlbGhhbG9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0NQorbXNnaWQgIiIKKyJcbiIKKyJXcm9uZyBwYXNzd29yZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkNoeWJuw6kgaGVzbG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MTgKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJ2b2zDoW7DrSBsc3RhdCBwcm8gY2VzdHUgc2VsaGFsb1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2Cittc2dpZCAic3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJ2b2zDoW7DrSBzdGF0IHBybyBjZXN0dSBzZWxoYWxvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MzQKK21zZ2lkICJvcGVuIG9mIGRpcmVjdG9yeSBmYWlsZWRcbiIKK21zZ3N0ciAiYWRyZXPDocWZIG5lbHplIG90ZXbFmcOtdFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTAxCisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3Bhd25pbmc6IFwiJXNcIiB0b28gZmFzdDogcXVlbmNoaW5nIGVudHJ5XG4iCittc2dzdHIgIm9ibm92b3bDoW7DrTog4oCeJXPigJwgcMWZw61sacWhIHJ5Y2hsZTogdGx1bcOtbSB6w6F6bmFtXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDkKK21zZ2lkICJmb3JrIGZhaWxlZFxuIgorbXNnc3RyICJ2b2zDoW7DrSBmb3JrIHNlbGhhbG9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU0MCB0ZXh0LXV0aWxzL21vcmUuYzoxNjYzCittc2dpZCAiZXhlYyBmYWlsZWRcbiIKK21zZ3N0ciAidm9sw6Fuw60gZXhlYyBzZWxoYWxvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NjQKK21zZ2lkICJjYW5ub3Qgb3BlbiBpbml0dGFiXG4iCittc2dzdHIgImluaXR0YWIgbmVsemUgb3RldsWZw610XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo2MzEKK21zZ2lkICJubyBURVJNIG9yIGNhbm5vdCBzdGF0IHR0eVxuIgorbXNnc3RyICLFvsOhZG7DvSBURVJNIG5lYm8gc2VsaGFsbyB2b2zDoW7DrSBzdGF0IHBybyB0dHlcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjkzOAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBzdG9wcGluZyBzZXJ2aWNlOiBcIiVzXCJcbiIKK21zZ3N0ciAiY2h5YmEgcMWZaSB6YXN0YXZvdsOhbsOtIHNsdcW+Ynk6IOKAniVz4oCcXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICJaYXN0YXZlbsOhIHNsdcW+Ynk6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMDcwCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJ1bm5pbmcgcHJvZ3JhbW1lOiBcIiVzXCJcbiIKK21zZ3N0ciAiY2h5YmEgcMWZaSBzcG91xaF0xJtuw60gcHJvZ3JhbXU6IOKAniVz4oCcXG4iCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjc1Cittc2dpZCAidG9vIG1hbnkgaW92J3MgKGNoYW5nZSBjb2RlIGluIHdhbGwvdHR5bXNnLmMpIgorbXNnc3RyICJwxZnDrWxpxaEgbW5vaG8gaW92ICh6bcSbxYh0ZSBrw7NkIHYgd2FsbC90dHltc2cuYykiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImV4Y2Vzc2l2ZWx5IGxvbmcgbGluZSBhcmciCittc2dzdHIgInDFmcOtbGnFoSBkbG91aMO9IMWZw6FkZWsgcyBhcmd1bWVudHkiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAidm9sw6Fuw60gZm9yayBzZWxoYWxvIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZm9yazogJXMiCittc2dzdHIgImZvcms6ICVzIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEJBRCBFUlJPUiIKK21zZ3N0ciAiJXM6IFrDgVZBxb1Ow4EgQ0hZQkEiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBzb3Vib3IgcyBoZXNseSBzZSBwcsOhdsSbIHBvdcW+w612w6EuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBncm91cCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBzb3Vib3Igc2Ugc2t1cGluYW1pIHNlIHByw6F2xJsgcG91xb7DrXbDoS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiJXM6ICVzIHNvdWJvciBzZSBwcsOhdsSbIHBvdcW+w612w6EgKG5hbGV6ZW4gJXMpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiVzOiB2b2zDoW7DrSBsaW5rIHBybyAlcyBzZWxoYWxvOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBnZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiBOZWx6ZSB6amlzdGl0IGtvbnRleHQgcHJvICVzIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBzZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiBOZWx6ZSBuYXN0YXZpdCBrb250ZXh0IHBybyAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiJXM6ICVzIG5lbHplIG9kZW1rbm91dDogJXMgKFZhxaFlIHptxJtueSBqc291IHN0w6FsZSB2ICVzKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgZm9ya1xuIgorbXNnc3RyICIlczogdm9sw6Fuw60gZm9yayBzZWxoYWxvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHVuY2hhbmdlZFxuIgorbXNnc3RyICIlczogJXMgbmV6bcSbbsSbbm9cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI5NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gY2hhbmdlcyBtYWRlXG4iCittc2dzdHIgIiVzOiDFvsOhZG7DqSB6bcSbbnlcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIlRlbnRvIHN5c3TDqW0gcG91xb7DrXbDoSBzdMOtbm92w6kgc2t1cGlueS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBwYXNzd29yZHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIlRlbnRvIHN5c3TDqW0gcG91xb7DrXbDoSBzdMOtbm92w6EgaGVzbGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV291bGQgeW91IGxpa2UgdG8gZWRpdCAlcyBub3cgW3kvbl0/ICIKK21zZ3N0ciAiQ2hjZXRlIHRlxI8gZWRpdG92YXQgc291Ym9yICVzIFt5L25dPyIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgW2ZpbGVdXG4iCittc2dzdHIgIlBvdcW+aXTDrTogJXMgW3NvdWJvcl1cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IGRvxI1hc27DvSBzb3Vib3IgbmVsemUgb3RldsWZw610LlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyb2FkY2FzdCBNZXNzYWdlIGZyb20gJXNAJXMiCittc2dzdHIgIlbFoWVvYmVjbsOhIHpwcsOhdmEgb2QgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiBuZWJ1ZHUgxI3DrXN0ICVzIC0gcG91xb5panRlIHN0ZGluLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICIlczogJXMgbmVsemUgxI3DrXN0LlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogdm9sw6Fuw60gc3RhdCBwcm8gZG/EjWFzbsO9IHNvdWJvciBzZWxoYWxvLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogZG/EjWFzbsO9IHNvdWJvciBuZWx6ZSDEjcOtc3QuXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZGF5IHZhbHVlOiB1c2UgMS0lZCIKK21zZ3N0ciAiY2h5Ym7DoSBob2Rub3RhIHBybyBkZW46IHBvdcW+aWp0ZSAx4oCTJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY4Cittc2dpZCAiaWxsZWdhbCBtb250aCB2YWx1ZTogdXNlIDEtMTIiCittc2dzdHIgImNoeWJuw6EgaG9kbm90YSBwcm8gbcSbc8OtYzogcG91xb5panRlIDHigJMxMiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNzIKK21zZ2lkICJpbGxlZ2FsIHllYXIgdmFsdWU6IHVzZSAxLTk5OTkiCittc2dzdHIgImNoeWJuw6EgaG9kbm90YSBwcm8gcm9rOiBwb3XFvmlqdGUgMeKAkzk5OTkiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6NDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVkIgorbXNnc3RyICIlcyAlZCIKKworIzogbWlzYy11dGlscy9jYWwuYzo4NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgIlBvdcW+aXTDrTogY2FsIFstMTNzbWp5Vl0gW1tbREVOXSBNxJpTw41DXSBST0tdXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsrZm9ybWF0XSBbZGF5IG1vbnRoIHllYXJdXG4iCittc2dzdHIgIlBvdcW+aXTDrTogJXMgWytGT1JNw4FUXSBbREVOIE3EmlPDjUMgUk9LXVxuIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjUwCittc2dpZCAiU3QuIFRpYidzIERheSIKK21zZ3N0ciAiRGVuIHN2YXTDqWhvIFRpYmEiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIExBQkVMPTxsYWJlbD58VVVJRD08dXVpZD5cbiIKK21zZ3N0ciAiUG91xb5pdMOtOiAlcyBKTUVOT1ZLQT08Sk1FTk9WS0E+fFVVSUQ9PFVVSUQ+XG4iCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAi4oCeJXPigJwgbmVsemUgcMWZZWxvxb5pdCIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlc1xuIgorbXNnc3RyICIlczogbmV6bsOhbcO9IHNpZ27DoWwgJXNcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIHByb2Nlc3MgXCIlc1wiXG4iCittc2dzdHIgIiVzOiBwcm9jZXMgXCIlc1wiIG5lbHplIG5hbMOpenRcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlczsgdmFsaWQgc2lnbmFsczpcbiIKK21zZ3N0ciAiJXM6IG5lem7DoW3DvSBzaWduw6FsICVzOyBwbGF0bsOpIHNpZ27DoWx5OlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFsgLXMgc2lnbsOhbCB8IC1wIF0gWyAtYSBdIHBpZOKAplxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiICAgICAgICAgJXMgLWwgWyBzaWduw6FsIF1cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo2NworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IG9wZW5sb2c6IHBhdGhuYW1lIHRvbyBsb25nXG4iCittc2dzdHIgInByb3Rva29sb3bDoW7DrTogb3BlbmxvZzogY2VzdGEgamUgcMWZw61sacWhIGRsb3Vow6FcbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQ6ICVzLlxuIgorbXNnc3RyICJzb2NrZXQ6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgImNvbm5lY3Q6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiAlczogJXMuXG4iCisKKyMgJ2ZhY2lsaXR5Jz8gbMOpcGUgYXNpIGpha28gemHFmcOtemVuw60sIHpsZSB0byBieSBzZSBwbGV0bG8gcyAnZGV2aWNlJyAKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBuZXpuw6Ftw6kgcMWZw61zbHXFoWVuc3R2w606ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBwcmlvcml0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBuZXpuw6Ftw70gbsOhemV2IHByaW9yaXR5OiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6IGxvZ2dlciBbLWlzXSBbLWYgZmlsZV0gWy1wIHByaV0gWy10IHRhZ10gWy11IHNvY2tldF0gWyBtZXNzYWdlIC4uLiBdXG4iCittc2dzdHIgIiIKKyJQb3XFvml0w606IGxvZ2dlciBbLWlzXSBbLWYgc291Ym9yXSBbLXAgcHJpXSBbLXQgem5hxI1rYV0gWy11IHNva2V0XSBbenByw6F2YeKApl1cbiIKKworIzogbWlzYy11dGlscy9sb29rLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb29rIFstZGZhXSBbLXQgY2hhcl0gc3RyaW5nIFtmaWxlXVxuIgorbXNnc3RyICJQb3XFvml0w606IGxvb2sgWy1kZmFdIFstdCB6bmFrXSDFmWV0xJt6ZWMgW3NvdWJvcl1cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlcyBuZWx6ZSBuYWzDqXp0XG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwOSBtaXNjLXV0aWxzL21jb29raWUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIKK21zZ3N0ciAiJWRiIHogJXNcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0Cittc2dpZCAib3V0IG9mIG1lbW9yeT8iCittc2dzdHIgIm5lZG9zdGF0ZWsgcGFtxJt0aT8iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgc3ltbGluazogJXMiCittc2dzdHIgIsSNdGVuw60gc3ltYm9saWNrw6lobyBvZGthenUgc2VsaGFsbzogJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyMzEgbWlzYy11dGlscy9uYW1laS5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICJvwqDigJ4lc+KAnCBuZWx6ZSB6w61za2F0IHBvZHJvYm5vc3RpIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQb3XFvml0w606ICVzIFtQxZhFUMONTkHEjEVdIE7DgVpFVl9DRVNUWSBbTsOBWkVWX0NFU1RZ4oCmXVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiUMWZZXDDrW5hxI1lOlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAteCwgLS1tb3VudHBvaW50cyAgIHNob3cgbW91bnQgcG9pbnQgZGlyZWN0b3JpZXMgd2l0aCBhICdEJ1xuIgorIiAtbSwgLS1tb2RlcyAgICAgICAgIHNob3cgdGhlIG1vZGUgYml0cyBvZiBlYWNoIGZpbGVcbiIKKyIgLW8sIC0tb3duZXJzICAgICAgICBzaG93IG93bmVyIGFuZCBncm91cCBuYW1lIG9mIGVhY2ggZmlsZVxuIgorIiAtbCwgLS1sb25nICAgICAgICAgIHVzZSBhIGxvbmcgbGlzdGluZyBmb3JtYXQgKC1tIC1vIC12KSBcbiIKKyIgLW4sIC0tbm9zeW1saW5rcyAgICBkb24ndCBmb2xsb3cgc3ltbGlua3NcbiIKKyIgLXYsIC0tdmVydGljYWwgICAgICB2ZXJ0aWNhbCBhbGlnbiBvZiBtb2RlcyBhbmQgb3duZXJzXG4iCittc2dzdHIgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB6b2JyYXrDrSB0dXRvIG7DoXBvdsSbZHVcbiIKKyIgLXgsIC0tbW91bnRwb2ludHMgICB2eXpuYcSNw60gYWRyZXPDocWZZSBib2TFryBwxZlpcG9qZW7DrSBwb21vY8OtwqDigJ5E4oCcXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgem9icmF6w60gdcKga2HFvmTDqWhvIHNvdWJvcnUgYml0eSBwcsOhdlxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHpvYnJhesOtIHXCoGthxb5kw6lobyBzb3Vib3J1IGptw6lubyB2bGFzdG7DrWthIGEgc2t1cGlueVxuIgorIiAtbCwgLS1sb25nICAgICAgICAgIHBvdcW+aWplIGRsb3Vow70gdHZhciB2w71waXN1ICgtbSAtbyAtdikgXG4iCisiIC1uLCAtLW5vc3ltbGlua3MgICAgbmVuw6FzbGVkdWplIHN5bWJvbGlja8OpIG9ka2F6eVxuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHN2aXNsw6kgemFyb3Zuw6Fuw60gcHLDoXYgYSB2bGFzdG7DrWvFr1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgbmFtZWkoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWw61jZSBpbmZvcm1hY8OtIG5hbGV6bmV0ZSB2wqBuYW1laSgxKS5cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdDogJXMiCittc2dzdHIgInZvbMOhbsOtIHN0YXQgc2VsaGFsbzogJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIlczogb21lemVuw60gc3ltYm9saWNrw71jaCBvZGthesWvIHDFmWVrcm/EjWVubyIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIlczogbmVkb3N0YXRlayBwYW3Em3RpXG4iCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlbmFtaW5nICVzIHRvICVzIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiJXM6ICVzIG5lbHplIHDFmWVqbWVub3ZhdCBuYSAlczogJXNcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYWxsOiAlcyBmcm9tIHRvIGZpbGVzLi4uXG4iCittc2dzdHIgIlBvdcW+aXTDrTogJXMgWiBOQSBTT1VCT1LigKZcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGAlcycgaXMgYSBsaW5rLlxuIgorIlVzZSBgJXMgW29wdGlvbnNdICVzJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LlxuIgorIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIKK21zZ3N0ciAiIgorIlZhcm92w6Fuw606IOKAniVz4oCcIGplIG9ka2F6LlxuIgorIlBva3VkIGplaiBvcHJhdmR1IGNoY2V0ZSBwb3XFvsOtdCwgdGFrIHphZGVqdGUg4oCeJXMgW1DFmEVQw41OQcSMRV0gJXPigJwuXG4iCisiU2NyaXB0IG5lYnlsIHNwdcWhdMSbbi5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorbXNnc3RyICJQb3XFvml0w606IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtTT1VCT1JdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNjcmlwdCBzcHXFoXTEm24uIFNvdWJvciBqZSAlcy5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yICVkOiAlc1xuIgorbXNnc3RyICIlczogY2h5YmEgesOhcGlzdSAlZDogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQgb24gJXMiCittc2dzdHIgIlNjcmlwdCBzcHXFoXTEm24gJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IGNoeWJhIHrDoXBpc3U6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczogc2tyaXB0IHNvdWJvciBuZWx6ZSB6YXBzYXQsIGNoeWJhOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2NyaXB0IGRvbmUgb24gJXMiCittc2dzdHIgIiIKKyJcbiIKKyJTY3JpcHQgdWtvbsSNZW4gJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNjcmlwdCB1dGlscy4gU291Ym9yIGplICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW5wdHkgZmFpbGVkXG4iCittc2dzdHIgInZvbMOhbsOtIG9wZW5wdHkgc2VsaGFsb1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgcHR5J3NcbiIKK21zZ3N0ciAiTmVqc291IMW+w6FkbsOhIGRhbMWhw60gdm9sbsOhIHB0eVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIDx0aW1pbmdmaWxlPiBbPHR5cGVzY3JpcHQ+IFs8ZGl2aXNvcj5dXVxuIgorbXNnc3RyICIlcyA8xIxBU09Ww51fU09VQk9SPiBbPFrDgVpOQU1fVlNUVVBVPiBbPETEmkxJVEVMPl1dXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhwZWN0ZWQgYSBudW1iZXIsIGJ1dCBnb3QgJyVzJyIKK21zZ3N0ciAib8SNZWvDoXbDoW5vIMSNw61zbG8sIGFsZSBvYmRyxb5lbm8g4oCeJXPigJwiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTYgbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXZpc29yICclcyciCittc2dzdHIgImTEm2xpdGVsIOKAniVz4oCcIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorbXNnaWQgIndyaXRlIHRvIHN0ZG91dCBmYWlsZWQiCittc2dzdHIgInrDoXBpcyBuYSBzdGFuZGFyZG7DrSB2w71zdHVwIHNlbGhhbCIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSBvbiAlcyIKK21zZ3N0ciAibmVvxI1la8OhdmFuw70ga29uZWMgc291Ym9ydSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJuYcSNdGVuw60gc291Ym9ydSBzZSB6w6F6bmFtZW0gdnN0dXB1ICVzIHNlbGhhbG8iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICLEjWFzb3bDvSBzb3Vib3IgJXMgbmVsemUgb3RldsWZw610IgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgInNvdWJvciAlcyBzZSB6w6F6bmFtZW0gdnN0dXB1IG5lbHplIG90ZXbFmcOtdCIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIsSNdGVuw60gesKgxI1hc292w6lobyBzb3Vib3J1ICVzIHNlbGhhbG8iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY2CisjLCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAixI1hc292w70gc291Ym9yICVzOiAlbHU6IG5lb8SNZWvDoXZhbsO9IGZvcm3DoXQiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQXJndW1lbnQgZXJyb3IsIHVzYWdlXG4iCittc2dzdHIgIiVzOiBDaHlibsO9IHDFmWVww61uYcSNLCBwb3XFvml0w61cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKK21zZ3N0ciAiICBbIC10ZXJtIG7DoXpldiB0ZXJtaW7DoWx1XVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiAgWyAtcmVzZXQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiICBbIC1pbml0aWFsaXplIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIgIFsgLWRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc1IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NworIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiAgWyAtc3RhbmRvdXQgWyBhdHJpYnV0IF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiICBbIC1zdG9yZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorbXNnc3RyICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsYW5rIFswLTYwfGZvcmNlfHBva2VdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS1QT8SMRVRfS09OWk9Mw41dIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwZW5kIFsxLVBPxIxFVF9LT05aT0zDjV0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1maWxlIGR1bXBmaWxlbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtZmlsZSBzb3Vib3IgcHJvIHVsb8W+ZW7DrSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorbXNnc3RyICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorbXNnc3RyICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCittc2dzdHIgIiAgWyAtYmZyZXEgZnJla3ZlbmNlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgYmxhbmtcbiIKK21zZ3N0ciAicmXFvmltIGJsYW5rIG5lbHplIHZ5bnV0aXRcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgdW5ibGFua1xuIgorbXNnc3RyICJyZcW+aW0gdW5ibGFuayBuZWx6ZSB2eW51dGl0XG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBibGFuayBzdGF0dXNcbiIKK21zZ3N0ciAic3RhdiByZcW+aW11IGJsYW5rIG5lbHplIHpqaXN0aXRcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICLFoWV0xZnDrWPDrSByZcW+aW0gbmVsemUgdnlwbm91dC96YXBub3V0XG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICJjaHliYSBrbG9nY3RsOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIgorbXNnc3RyICJDaHliYSBwxZlpIHVrbMOhZMOhbsOtIG9icmF6dSBvYnJhem92a3lcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIiVzIG5lbHplIG5hxI3DrXN0XG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICRURVJNIGlzIG5vdCBkZWZpbmVkLlxuIgorbXNnc3RyICIlczogcHJvbcSbbm7DoSBURVJNIG5lbsOtIG5hc3RhdmVuYS5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWRdIFstcCBwaWRmaWxlXSBbLXMgc29ja2V0cGF0aF0gWy1UIHRpbWVvdXRdXG4iCittc2dzdHIgIlBvdcW+aXTDrTogJXMgWy1kXSBbLXAgUElEX1NPVUJPUl0gWy1zIENFU1RBX0tfU09DS0VUVV0gWy10IExJTUlUXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIFstcnx0XSBbLW4gbnVtXSBbLXMgc29ja2V0cGF0aF1cbiIKK21zZ3N0ciAiICAgICAgICVzIFstcnx0XSBbLW4gUE/EjF0gWy1zIENFU0tBX0tfU09DS0VUVV1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIgICAgICAgJXMgLWtcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgImNoeWJuw6kgYXJndW1lbnR5IgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTU5Cittc2dpZCAic29ja2V0IgorbXNnc3RyICJzb2NrZXQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNzAKK21zZ2lkICJjb25uZWN0IgorbXNnc3RyICJwxZlpcG9qb3bDoW7DrSIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE4OQorbXNnaWQgIndyaXRlIgorbXNnc3RyICJ6w6FwaXMiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxOTcKK21zZ2lkICJyZWFkIGNvdW50IgorbXNnc3RyICJuYcSNdGVuw60gcG/EjXR1IgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjAzCittc2dpZCAiYmFkIHJlc3BvbnNlIGxlbmd0aCIKK21zZ3N0ciAiY2h5Ym7DoSBkw6lsa2Egb2Rwb3bEm2RpIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgInV1aWRkIGRhZW1vbiBhbHJlYWR5IHJ1bm5pbmcgYXQgcGlkICVzXG4iCittc2dzdHIgIkTDqW1vbiB1dWlkZCBqacW+IGLEm8W+w60gcG9kIFBJROKAryVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtIHNvY2tldDogJXMiCittc2dzdHIgIk5lYnlsbyBtb8W+bsOpIHZ5dHZvxZlpdCB1bml4b3bDvSBwcm91ZG92w70gc29ja2V0OiAlcyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBiaW5kIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICJOZWJ5bG8gbW/Fvm7DqSBzZSBwxZlpbGVwaXQgbmEgdW5peG92w70gc29ja2V0ICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxpc3RlbiBvbiB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiTmVieWxvIG1vxb5uw6kgemFow6FqaXQgbmFzbG91Y2jDoW7DrSBuYSB1bml4b3bDqW0gc29ja2V0dSAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciByZWFkaW5nIGZyb20gY2xpZW50LCBsZW4gPSAlZFxuIgorbXNnc3RyICJDaHliYSBwxZlpIMSNdGVuw60gesKga2xpZW50YSwgZMOpbGthID0gJWRcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIm9wZXJhY2UgJWQsIHDFmcOtY2hvesOtIHBvxI1ldCA9ICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRDogJXNcbiIKK21zZ3N0ciAiVnlnZW5lcm92YW7DqSDEjWFzb3bDqSBVVUlEOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCByYW5kb20gVVVJRDogJXNcbiIKK21zZ3N0ciAiVnlnZW5lcm92YW7DqSBuw6Fob2Ruw6kgVVVJRDogJXNcbiIKKworIyBUT0RPOuKAr3BsdXJhbHMKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIlZ5Z2VuZXJvdmFuw6kgxI1hc292w6kgVVVJRCAlcyBhICVkIG7DoXNsZWR1asOtY8OtY2hcbiIKKworIyBUT0RPOuKAr3BsdXJhbHMKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkICVkIFVVSUQnczpcbiIKK21zZ3N0ciAiVnlnZW5lcm92w6FubyBVVUlEOiAlZDpcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIG9wZXJhdGlvbiAlZFxuIgorbXNnc3RyICJOZXBsYXRuw6Egb3BlcmFjZSAlZFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDY4IG1pc2MtdXRpbHMvdXVpZGQuYzo0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiQ2h5Ym7DqSDEjcOtc2xvOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2FsbGluZyB1dWlkZCBkYWVtb24gKCVzKTogJXNcbiIKK21zZ3N0ciAiQ2h5YmEgcMWZaSB2b2zDoW7DrSBkw6ltb25hIHV1aWRkICglcyk6ICVzXG4iCisKKyMgVE9ETzogcGx1cmFscworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiJXMgYSBuw6FzbGVkdWrDrWPDrSAlZCBVVUlEXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGlzdCBvZiBVVUlEJ3M6XG4iCittc2dzdHIgIlNlem5hbSBVVUlEOlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZXhwZWN0ZWQgcmVwbHkgbGVuZ3RoIGZyb20gc2VydmVyICVkXG4iCittc2dzdHIgIk5lb8SNZWvDoXZhbsOhIGTDqWxrYSBvZHBvdsSbZGkgb2Qgc2VydmVydSAlZFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIlphYsOtdCB1dWlkZCBixJvFvsOtY8OtaG8gcG9kwqBQSUQgJWQgbmVieWxvIG1vxb5uw6k6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgInV1aWRkIGLEm8W+w61jw60gcG9kIFBJRCAlZCBieWwgemFiaXRcbiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFstcl0gWy10XVxuIgorCisjOiBtaXNjLXV0aWxzL3doZXJlaXMuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpciAuLi4gLWYgXSBuYW1lLi4uXG4iCittc2dzdHIgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBhZHJlc8OhxZkgLi4uIC1mIF0gbsOhemV2Li4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTI4Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAiZnVua2NlIGNhbGxvYyBzZWxoYWxhIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE1MAorbXNnaWQgInN0cmR1cCBmYWlsZWQiCittc2dzdHIgImZ1bmtjZSBzdHJkdXAgc2VsaGFsYSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBwcm9iaW5nIGluaXRpYWxpemF0aW9uIGZhaWxlZCIKK21zZ3N0ciAiY2h5YmE6ICVzOiBpbmljaWFsaXphY2UgdGVzdG92w6Fuw60gc2UgbmV6ZGHFmWlsYSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBhcHBlYXJzIHRvIGNvbnRhaW4gJyVzJyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgImNoeWJhOiAlczogemTDoSBzZSwgxb5lIG9ic2FodWplIHRhYnVsa3Ugcm96ZMSbbGVuw60gZGlza3Ug4oCeJXPigJwiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIm5hIHBvemljaSAweCVqeCBuZWJ5bCBuYWxlemVuIG1hZ2lja8O9IMWZZXTEm3plY8Kg4oCTIGlnbm9ydWplIHNlLiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiJXM6IHDFmWVzdW4gbmEgcG96aWNpIDB4JWp4IHNlbGhhbCIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGZhaWxlZCIKK21zZ3N0ciAiJXM6IHrDoXBpcyBzZSBuZXpkYcWZaWwiCisKKyMgVE9ETzogcGx1cmFscworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXpkIGJ5dGVzIFsiCittc2dzdHIgIiV6ZCBiYWp0xa8gWyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiXSBlcmFzZWQgYXQgb2Zmc2V0IDB4JWp4ICglcylcbiIKK21zZ3N0ciAiXSB2eW1hesOhbm8gbmEgcG96aWNpIDB4JWp4ICglcylcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICIlczogb3RldsWZZW7DrSBzZSBuZXpkYcWZaWxvIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxNSBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiemFkw6FuYSBuZXBsYXRuw6EgaG9kbm90YSBwb3ppY2Ug4oCeJXPigJwiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJQb3XFvml0w606ICVzIFtQxZhFUMONTkHEjEVdIDxOw4FaRVZfU09VQk9SVT5cbiIKKyJcbiIKKyJQxZllcMOtbmHEjWU6XG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWEsIC0tYWxsICAgICAgICAgICB3aXBlIGFsbCBtYWdpYyBzdHJpbmdzIChCRSBDQVJFRlVMISlcbiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0tbm8tYWN0ICAgICAgICBldmVyeXRoaW5nIHRvIGJlIGRvbmUgZXhjZXB0IGZvciB0aGUgd3JpdGUoKSBjYWxsXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IHRvIGVyYXNlLCBpbiBieXRlc1xuIgorIiAtcCwgLS1wYXJzYWJsZSAgICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXRcbiIKK21zZ3N0ciAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgICAgem5pxI3DrSB2xaFlY2hueSBtYWdpY2vDqSDFmWV0xJt6Y2UgKEJVxI5URSBPUEFUUk7DjSEpXG4iCisiIC1oLCAtLWhlbHAgICAgICAgICAgICB0YXRvIG7DoXBvdsSbZGFcbiIKKyIgLW4sIC0tbm8tYWN0ICAgICAgICAgIHByb3ZlZGUgdsWhZSBhxb4gbmEgdm9sw6Fuw60gd3JpdGUoKVxuIgorIiAtbywgLS1vZmZzZXQgPMSMw41TTE8+ICBwb3ppY2UgdsKgYmFqdGVjaCwgbmEga3RlcsOpIHNlIGJ1ZGUgbWF6YXRcbiIKKyIgLXAsIC0tcGFyc2FibGUgICAgICAgIHZ5cGlzdWplIHbCoHN0cm9qb3bEmyB6cHJhY292YXRlbG7DqW0gZm9ybcOhdHUgbmFtw61zdG9cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgIHbCoHDFmWVobGVkbsOpIHBvZG9ixJtcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB3aXBlZnMoOCkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWw61jZSBpbmZvcm1hY8OtIG5hbGV6bmV0ZSB2ZSB3aXBlZnMoOCkuXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6Mzg3Cittc2dpZCAiLS1vZmZzZXQgYW5kIC0tYWxsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCittc2dzdHIgIi0tb2Zmc2V0IGEgLS1hbGwgc2UgdnrDoWplbW7EmyB2eWx1xI11asOtIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZTogbsOhemV2IFZhxaFlaG8gdHR5IG5lbHplIHpqaXN0aXRcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogbcOhdGUgdnlwbnV0IHDFmcOtamVtIHpwcsOhdi5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6IHXFvml2YXRlbCAlcyBuZW7DrSBuYSAlcyBwxZlpaGzDocWhZW4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZCBvbiAlc1xuIgorbXNnc3RyICJ3cml0ZTogdcW+aXZhdGVsICVzIG3DoSBuYSAlcyB2eXBudXQgcMWZw61qZW0genByw6F2XG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHdyaXRlIHVzZXIgW3R0eV1cbiIKK21zZ3N0ciAiUG91xb5pdMOtOiB3cml0ZSB1xb5pdmF0ZWwgW3R0eV1cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICJ3cml0ZTogdcW+aXZhdGVsICVzIG5lbsOtIHDFmWlobMOhxaFlblxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6IHXFvml2YXRlbCAlcyBtw6EgdnlwbnV0IHDFmcOtamVtIHpwcsOhdlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBsb2dnZWQgaW4gbW9yZSB0aGFuIG9uY2U7IHdyaXRpbmcgdG8gJXNcbiIKK21zZ3N0ciAid3JpdGluZzogdcW+aXZhdGVsICVzIGplIHDFmWlobMOhxaFlbiB2w61jZWtyw6F0OyBww63FoWkgbmEgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIlpwcsOhdmEgb2QgJXNAJXMgKGpha28gJXMpIG5hICVzIHYgJXMgLi4uIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIlpwcsOhdmEgb2QgJXNAJXMgbmEgJXMgdiAlcyAuLi4iCisKKyM6IG1vdW50L2ZzdGFiLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGVycm9yIHJlYWRpbmcgJXM6ICVzIgorbXNnc3RyICJ2YXJvdsOhbsOtOiBjaHliYSBwxZlpIMSNdGVuw60gJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAidmFyb3bDoW7DrTogJXMgbmVsemUgb3RldsWZw610OiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNvdWxkIG5vdCBvcGVuICVzIC0gdXNpbmcgJXMgaW5zdGVhZFxuIgorbXNnc3RyICJtb3VudDogJXMgbmVsemUgb3RldsWZw610IC0gcG91xb7DrXbDoW0gJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo1OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgY3JlYXRlIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorInphbXlrYWPDrSBzb3Vib3IgJXMgbmVsemUgdnl0dm/FmWl0OiAlc1xuIgorIihwb3XFvmlqdGUgcMWZZXDDrW5hxI0gLW4gcHJvIHZ5bmVjaMOhbsOtIHrDoXBpc3UgZG8gbXRhYikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisidm9sw6Fuw60gbGluayBwcm8gemFteWthY8OtIHNvdWJvciAlcyBzZWxoYWxvOiAlc1xuIgorIihwb3XFvmlqdGUgcMWZZXDDrW5hxI0gLW4gcHJvIHZ5bmVjaMOhbsOtIHrDoXBpc3UgZG8gbXRhYikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisiemFteWthY8OtIHNvdWJvciAlcyBuZWx6ZSBvdGV2xZnDrXQ6ICVzXG4iCisiKHBvdcW+aWp0ZSBwxZllcMOtbmHEjSAtbiBwcm8gdnluZWNow6Fuw60gesOhcGlzdSBkbyBtdGFiKSIKKworIzogbW91bnQvZnN0YWIuYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIlphbXlrYWPDrSBzb3Vib3IgJXMgbmVsemUgemFta25vdXQ6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAiWmFteWthY8OtIHNvdWJvciAlcyBuZWx6ZSB6YW1rbm91dDogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICJ2eXByxaFlbCDEjWFzIgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorIk9ka2F6ICVzIG5lbHplIHZ5dHZvxZlpdC5cbiIKKyJOZW7DrSBuxJtrZGUgemFzdGFyYWzDvSB6YW15a2Fjw60gc291Ym9yP1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjc5MiBtb3VudC9mc3RhYi5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyAoJXMpIC0gbXRhYiBub3QgdXBkYXRlZCIKK21zZ3N0ciAibmVsemUgb3RldsWZw610ICVzICglcykgLSBtdGFiIG5lYnlsIGFrdHVhbGl6b3bDoW4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJjaHliYSBwxZlpIHrDoXBpc3UgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjg3NAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlc1xuIgorbXNnc3RyICJjaHliYSBwxZlpIHptxJtuxJsgbcOzZHUgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG93bmVyIG9mICVzOiAlc1xuIgorbXNnc3RyICJjaHliYSBwxZlpIHptxJtuxJsgdmxhc3Ruw61rYSAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgcmVuYW1lICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICIlcyBuZWx6ZSBwxZllam1lbm92YXQgbmEgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgc2V0IGNhcGFjaXR5IG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogemHFmcOtemVuw60gJXMgbmVsemUgbmFzdGF2aXQga2FwYWNpdHU6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIG9kc2F6ZW7DrSAlPFBSSXU2ND4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIHZlbGlrb3N0bsOtIGxpbWl0ICU8UFJJdTY0PiIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gJXMgKHR5cGUgJTxQUkl1MzI+KSIKK21zZ3N0ciAiLCDFoWlmcm92w6Fuw60gJXMgKHR5cCAlPFBSSXUzMj4pIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICVkIgorbXNnc3RyICIsIG9kc2F6ZW7DrSAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gdHlwZSAlZFxuIgorbXNnc3RyICIsIMWhaWZyb3ZhY8OtIHR5cCAlZFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGdldCBpbmZvIG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogaW5mb3JtYWNlIG8gemHFmcOtemVuw60gJXMgbmVsemUgesOtc2thdDogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogemHFmcOtemVuw60gJXMgbmVsemUgb3RldsWZw610OiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczogYWRyZXPDocWZIC9kZXYgbmVleGlzdHVqZS4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NTkgbW91bnQvbG9tb3VudC5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIlczogY2h5YsOtIG9wcsOhdm7Em27DrSBuYSBwcm9obMOpZG51dMOtIC9kZXYvbG9vcCVzPE4+IgorCisjOiBtb3VudC9sb21vdW50LmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZnJlZSBsb29wIGRldmljZSIKK21zZ3N0ciAiJXM6IMW+w6FkbsOpIHZvbG7DqSBsb29wIHphxZnDrXplbsOtIG5lbHplIG5hasOtdCIKKworIzogbW91bnQvbG9tb3VudC5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yIGBtb2Rwcm9iZSBsb29wJy4pIgorbXNnc3RyICIiCisiJXM6IMW9w6FkbsOpIGxvb3AgemHFmcOtemVuw60gbmVsemUgbmFsw6l6dCBUb3RvIGrDoWRybyBtb8W+bsOhXG4iCisiICAgICAgIG5lem7DoSBsb29wIHphxZnDrXplbsOtPyAoUG9rdWQgamUgdG9tdSB0YWssIHBhayBqZWogem5vdnUgcMWZZWxvxb50ZSxcbiIKKyIgICAgICAgxI1pIHprdXN0ZSDigJ5tb2Rwcm9iZSBsb29w4oCcLikiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MzYKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoaWxlIHJlYWRpbmcgcGFzc3BocmFzZSIKK21zZ3N0ciAiQsSbaGVtIMSNdGVuw60gaGVzbGEgZG/FoWxhIHBhbcSbxaUiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAidmFyb3bDoW7DrTogJXMgamUgamnFviBzcG9qZW5vIHPCoCVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICJ2YXJvdsOhbsOtOiAlczogamUgY2hyw6FuxJtubyBwcm90aSB6w6FwaXN1LCBwxZlpcG9qdWppIHBvdXplIHBybyDEjXRlbsOtLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iCittc2dzdHIgIk5lbHplIHphbWtub3V0IHYgcGFtxJt0aS4gS29uxI3DrW0uXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgTE9PUF9TRVRfRkQgZmFpbGVkOiAlc1xuIgorbXNnc3RyICJzZWxoYWxvIGlvY3RsIExPT1BfU0VUX0ZEOuKAryVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0X2xvb3AoJXMsJXMsJWxsdSwlbGx1KTogc3VjY2Vzc1xuIgorbXNnc3RyICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiDDunNwxJtjaFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IMO6c3DEm2NoXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZGVsZXRlIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogemHFmcOtemVuw60gJXMgbmVsemUgc21hemF0OiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgbW91bnQgd2FzIGNvbXBpbGVkIHdpdGhvdXQgbG9vcCBzdXBwb3J0LiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICJUZW50byBwcm9ncmFtIGJ5bCBwxZllbG/FvmVuIGJleiBwb2Rwb3J5IHBybyBsb29wLiBQxZllbG/FvnRlIGplaiB6bm92dS5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBvdcW+aXTDrTpcbiIKKyIgJTEkcyBMT09QX1pBxZjDjVpFTsONICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnlww63FoWUgaW5mb3JtYWNlXG4iCisiICUxJHMgLWEgfCAtLWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ5cMOtxaFlIHbFoWVjaG5hIHBvdcW+aXTDoVxuIgorIiAlMSRzIC1kIHwgLS1kZXRhY2ggTE9PUF9aQcWYw41aRU7DjSBbTE9PUF9aQcWYw41aRU7DjeKApl0gIHNtYcW+ZSB6YcWZw616ZW7DrVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYWpkZSBuZXBvdcW+aXTDoVxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgTE9PUF9aQcWYw41aRU7DjSAgICAgICAgICAgICB6bcSbbsOtIHZlbGlrb3N0XG4iCisiICUxJHMgLWogfCAtLWFzc29jaWF0ZWQgU09VQk9SIFstbyDEjMONU0xPXSAgICAgICAgICAgdnlww63FoWUgc3BvamVuw6Egc2UgIgorIlNPVUJPUkVNXG4iCisiICUxJHMgW1DFmEVQw41OQcSMRV0gey1mfC0tZmluZHxMT09QX1pBxZjDjVpFTsONfSBTT1VCT1IgIHNlc3Ryb2rDrSB6YcWZw616ZW7DrVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQxZllcMOtbmHEjWU6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIFRZUCAgICB6YXBuZSDFoWlmcm92w6Fuw60gZGF0IHBvbW9jw60gemFkYW7DqWhvIE7DgVpWVS/EjMONU0xBXG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0YXRvIG7DoXBvdsSbZGFcbiIKKyIgLW8gfCAtLW9mZnNldCDEjMONU0xPICAgICAgdsKgU09VQk9SVSB6YcSNbmUgbmEgcG96aWNpIMSMw41TTE9cbiIKKyIgICAgICAtLXNpemVsaW1pdCBQT8SMRVQgICBvbWV6w60gZMOpbGt1IGxvb3B1IG5hIFBPxIxFVCBiYWp0xa8gU09VQk9SVVxuIgorIiAtcCB8IC0tcGFzcy1mZCDEjMONU0xPICAgICBuYcSNdGUgaGVzbG8gesKgZGVza3JpcHRvcnUgc291Ym9ydSDEjMONU0xPXG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBuYXN0YXbDrSBsb29wIHphxZnDrXplbsOtIGplbiBwcm8gxI10ZW7DrVxuIgorIiAtcyB8IC0tc2hvdyAgICAgICAgICAgICAgdnlww63FoWUgbsOhemV2IHphxZnDrXplbsOtIChzcG9sdSBzwqAgLWYgU09VQk9SKVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdXBvdsOtZGFuw70gcmXFvmltXG4iCisiXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDM0IG1vdW50L2xvbW91bnQuYzoxMDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvb3AgZGV2aWNlIGlzICVzXG4iCittc2dzdHIgIkxvb3AgemHFmcOtemVuw60gJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RvbGVuIGxvb3A9JXMuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAidWtyYWRlbsO9IGxvb3A9JXPigKbCoHprb3XFocOtbSB6bm92dVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA3MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICIlczogJXM6IHphxZnDrXplbsOtIHNlIHByw6F2xJsgcG91xb7DrXbDoSIKKworIzogbW91bnQvbG9tb3VudC5jOjEwODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbG9vcCBzdXBwb3J0IHdhcyBhdmFpbGFibGUgYXQgY29tcGlsZSB0aW1lLiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICJQb2Rwb3JhIHBybyBsb29wIG5lYnlsYSBwxZlpIHDFmWVrbGFkdSB6YWTDoW5hLiBQxZllbG/FvnRlIHByb2dyYW0gem5vdnUuXG4iCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIm1vdW50OiBwb3pvcjogRG8gL2V0Yy9tdGFiIG5lbHplIHphcHNhdCAobmFwxZnDrWtsYWQgc3lzdMOpbSBzb3Vib3LFryBqZSBwb3V6ZVxuIgorIiAgICAgICBwcm8gxI10ZW7DrSkuIEplIG1vxb5uw6ksIMW+ZSDDumRhamUgaGzDocWhZW7DqSBuw6FzdHJvamVtIG1vdW50KDgpIG5lYnVkb3VcbiIKKyIgICAgICAgYWt0dcOhbG7DrS4gQWt0dcOhbG7DrSBpbmZvcm1hY2Ugb8KgcMWZw61wb2puw71jaCBib2RlY2ggbHplIHpqaXN0aXRcbiIKKyIgICAgICAgdsKgc291Ym9ydSAvcHJvYy9tb3VudHMuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIm1vdW50OuKAr8WZZXTEm3plYyBwxZllcMOtbmHEjcWvIOKAniVz4oCcIGplIG5lc3Byw6F2bsSbIHV6YXbFmWVuIGRvIHV2b3pvdmVrIgorCisjOiBtb3VudC9tb3VudC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdHJhbnNsYXRlZCAlcyAnJXMnIHRvICclcydcbiIKK21zZ3N0ciAibW91bnQ6ICVzIHDFmWVsb8W+ZW5vIHrCoOKAniVz4oCcIG5hIOKAniVz4oCcXG4iCisKKyM6IG1vdW50L21vdW50LmM6NTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogcG9kbGUgbXRhYiBqZSAlcyBqacW+IHDFmWlwb2plbm8gbmEgJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHBvZGxlIG10YWIgamUgJXMgcMWZaXBvamVubyBuYSAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDogJXMgbmVsemUgb3RldsWZw610IHBybyB6w6FwaXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDogY2h5YmEgcMWZaSB6w6FwaXN1ICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzIgorbXNnc3RyICJtb3VudDogY2h5YmEgcMWZaSB6bcSbbsSbIG3Ds2R1ICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJtb3VudDogxI3DrXNsbyBza3VwaW55IChHSUQpIG5lbHplIG5hc3Rhdml0OiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiDEjcOtc2xvIHXFvml2YXRlbGUgKFVJRCkgbmVsemUgbmFzdGF2aXQ6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjcxNCBtb3VudC9tb3VudC5jOjE4NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAibW91bnQ6IHZvbMOhbsOtIGZvcmsgc2VsaGFsbzogJXMiCisKKyM6IG1vdW50L21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyAlc1xuIgorbXNnc3RyICJQb3XFvsOtdsOhbSAlcy5cbiIKKworIzogbW91bnQvbW91bnQuYzo4NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHlvdSBkaWRuJ3Qgc3BlY2lmeSBhIGZpbGVzeXN0ZW0gdHlwZSBmb3IgJXNcbiIKK21zZ3N0ciAibW91bnQ6IG5lemFkYWwganN0ZSB0eXAgc3lzdMOpbXUgc291Ym9yxa8gcHJvICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IGFsbCB0eXBlcyBtZW50aW9uZWQgaW4gJXMgb3IgJXNcbiIKK21zZ3N0ciAiICAgICAgIFZ5emtvdcWhw61tIHbFoWVjaG55IHR5cHkgdiAlcyDEjWkgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIGFuZCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgc3dhcHNwYWNlXG4iCittc2dzdHIgIiAgICAgICBhIHZ5cGFkw6EgdG8sIMW+ZSBzZSBqZWRuw6EgbyBvZGtsw6FkYWPDrSBwcm9zdG9yXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIKK21zZ3N0ciAiICAgICAgIFZ5emtvdcWhw61tIHR5cCAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb29rcyBsaWtlIHN3YXBzcGFjZSAtIG5vdCBtb3VudGVkIgorbXNnc3RyICIlcyB2eXBhZMOhIGpha28gb2RrbMOhZGFjw60gcHJvc3RvciAtIG5lcMWZaXBvamVubyIKKworIzogbW91bnQvbW91bnQuYzoxMDAyCittc2dpZCAibW91bnQgZmFpbGVkIgorbXNnc3RyICJwxZlpcG9qZW7DrSBzZSBuZXpkYcWZaWxvIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gbW91bnQgJXMgb24gJXMiCittc2dzdHIgIm1vdW50OiBwb3V6ZSBzdXBlcnXFvml2YXRlbCBtxa/FvmUgcMWZaXBvaml0ICVzIG5hICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzQKK21zZ2lkICJtb3VudDogbG9vcCBkZXZpY2Ugc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogemHFmcOtemVuw60gbG9vcCBieWxvIHphZMOhbm8gZHZha3LDoXQiCisKKyM6IG1vdW50L21vdW50LmM6MTA3OQorbXNnaWQgIm1vdW50OiB0eXBlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IHR5cCBieWwgemFkw6FuIGR2YWtyw6F0IgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBwxZllc2tha3VqaSBuYXN0YXZlbsOtIGxvb3AgemHFmcOtemVuw61cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMgYXMgbG9vcCIKK21zZ3N0ciAibW91bnQ6IHBvZGxlIG10YWIgamUgJXMgamnFviBwxZlpcG9qZW5vIG5hICVzIGpha28gbG9vcCIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiBjaHlzdMOhbSBzZSBwb3XFvsOtdCB6YcWZw616ZW7DrSBsb29wICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIm1vdW50OuKAr3VrcmFkZW7DvSBsb29wPSVzIOKApsKgemtvdcWhw61tIHpub3Z1XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgInVtb3VudDogdWtyYWRlbsO9IGxvb3A9JXMiCisKKyM6IG1vdW50L21vdW50LmM6MTEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZmFpbGVkIHNldHRpbmcgdXAgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAibW91bnQ6IG5lcG9kYcWZaWxvIHNlIG5hc3Rhdml0IHphxZnDrXplbsOtIGxvb3BcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzZXR1cCBsb29wIGRldmljZSBzdWNjZXNzZnVsbHlcbiIKK21zZ3N0ciAibW91bnQ6IHphxZnDrXplbsOtIGxvb3AgYnlsbyBrb3Jla3RuxJsgbmFzdGF2ZW5vXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gJXMgZm91bmQgLSBjcmVhdGluZyBpdC4uXG4iCittc2dzdHIgIm1vdW50OiAlcyBuZWJ5bG8gbmFsZXplbm8gLSB2eXR2w6HFmcOtbSBqZWouLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjExOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICJtb3VudDogJXMgbmVsemUgb3RldsWZw610OiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMjE1Cittc2dpZCAibW91bnQ6IGFyZ3VtZW50IHRvIC1wIG9yIC0tcGFzcy1mZCBtdXN0IGJlIGEgbnVtYmVyIgorbXNnc3RyICJtb3VudDogYXJndW1lbnQgcMWZZXDDrW5hxI3FryAtcCBhIC0tcGFzcy1mZCBtdXPDrSBiw710IMSNw61zbG8iCisKKyM6IG1vdW50L21vdW50LmM6MTIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG9wZW4gJXMgZm9yIHNldHRpbmcgc3BlZWQiCittc2dzdHIgIm1vdW50OiAlcyBuZWx6ZSBvdGV2xZnDrXQgemEgw7rEjWVsZW0gbmFzdGF2ZW7DrSByeWNobG9zdGkiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50OiByeWNobG9zdCBuZWx6ZSBuYXN0YXZpdDogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTMyMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICJtb3VudDogcG9kbGUgbXRhYiBqZSAlcyBqacW+IHDFmWlwb2plbm8gZG8gJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxMzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgIm1vdW50OiBwb3pvcjogJXMgc2UgemTDoSBiw710IHDFmWlwb2plbiBwcm8gxI10ZW7DrSBpwqB6w6FwaXMuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQxMworbXNnaWQgIiIKKyJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsIGFuZCBub25lIHdhcyBzcGVjaWZpZWQiCittc2dzdHIgIm1vdW50OiB0eXAgc3lzdMOpbXUgc291Ym9yxa8gbmVieWwgemFkw6FuIGEgYW5pIGplaiBuZWx6ZSB6amlzdGl0IgorCisjOiBtb3VudC9tb3VudC5jOjE0MTYKK21zZ2lkICJtb3VudDogeW91IG11c3Qgc3BlY2lmeSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICJtb3VudDogbXVzw610ZSB6YWRhdCB0eXAgc3lzdMOpbXUgc291Ym9yxa8iCisKKyM6IG1vdW50L21vdW50LmM6MTQxOQorbXNnaWQgIm1vdW50OiBtb3VudCBmYWlsZWQiCittc2dzdHIgIm1vdW50OiBwxZlpcG9qZW7DrSBzZSBuZXpkYcWZaWxvIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIm1vdW50OiBwxZnDrXBvam7DvSBib2QgJXMgbmVuw60gYWRyZXPDocWZZW0iCisKKyM6IG1vdW50L21vdW50LmM6MTQyNworbXNnaWQgIm1vdW50OiBwZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibW91bnQ6IHDFmcOtc3R1cCBvZG3DrXRudXQiCisKKyM6IG1vdW50L21vdW50LmM6MTQyOQorbXNnaWQgIm1vdW50OiBtdXN0IGJlIHN1cGVydXNlciB0byB1c2UgbW91bnQiCittc2dzdHIgIm1vdW50OiBtb3VudCBtxa/FvmUgcG91xb7DrXZhdCBwb3V6ZSBzdXBlcnXFvml2YXRlbCIKKworIzogbW91bnQvbW91bnQuYzoxNDMzIG1vdW50L21vdW50LmM6MTQzNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIHNlIHBvdcW+w612w6EiCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IHByb2MgamUgamnFviBwxZlpcG9qZW5vIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvciAlcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgamUgamnFviBwxZlpcG9qZW5vLCDEjWkgamUgJXMgamnFviBwb3XFvsOtdsOhbm8iCisKKyM6IG1vdW50L21vdW50LmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBwxZnDrXBvam7DvSBib2QgJXMgbmVleGlzdHVqZSIKKworIzogbW91bnQvbW91bnQuYzoxNDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBhIHN5bWJvbGljIGxpbmsgdG8gbm93aGVyZSIKK21zZ3N0ciAibW91bnQ6IHDFmcOtcG9qbsO9IGJvZCAlcyBqZSBzeW1ib2xpY2vDvW0gb2RrYXplbSwgamVuxb4gbmlrYW0gbmV1a2F6dWplIgorCisjOiBtb3VudC9tb3VudC5jOjE0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogc3BlY2nDoWxuw60gemHFmcOtemVuw60gJXMgbmVleGlzdHVqZSIKKworIzogbW91bnQvbW91bnQuYzoxNDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3RcbiIKKyIgICAgICAgKGEgcGF0aCBwcmVmaXggaXMgbm90IGEgZGlyZWN0b3J5KVxuIgorbXNnc3RyICIiCisibW91bnQ6IHNwZWNpw6FsbsOtIHphxZnDrXplbsOtICVzIG5lZXhpc3R1amVcbiIKKyIgICAgICAgICAgICAgIChuw6F6ZXYgY2VzdHkgbmV6YcSNw61uw6EgYWRyZXPDocWZZW0pXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQ3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgbm90IG1vdW50ZWQgYWxyZWFkeSwgb3IgYmFkIG9wdGlvbiIKK21zZ3N0ciAibW91bnQ6ICVzIGplxaF0xJsgbmVuw60gcMWZaXBvamVubyDEjWkgY2h5Ym7DvSBwxZllcMOtbmHEjSIKKworIzogbW91bnQvbW91bnQuYzoxNDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogd3JvbmcgZnMgdHlwZSwgYmFkIG9wdGlvbiwgYmFkIHN1cGVyYmxvY2sgb24gJXMsXG4iCisiICAgICAgIG1pc3NpbmcgY29kZXBhZ2Ugb3IgaGVscGVyIHByb2dyYW0sIG9yIG90aGVyIGVycm9yIgorbXNnc3RyICIiCisibW91bnQ6IGNoeWJuw70gdHlwIFNTLCBjaHlibsO9IHDFmWVww61uYcSNLCBjaHlibsO9IHN1cGVyYmxvayBuYSAlcyxcbiIKKyIgICAgICAgY2h5YsOtIGvDs2RvdsOhIHN0csOhbmthIG5lYm8gcG9tb2Nuw70gcHJvZ3JhbSBuZWJvIGppbsOhIGNoeWJhIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorIiAgICAgICAocHJvIHbEm3TFoWlub3Ugc291Ym9yb3bDvWNoIHN5c3TDqW11IChuYXDFmS4gbmZzLCBjaWZzKSBidWRldGVcbiIKKyIgICAgICAgcG90xZllYm92YXQgcG9tb2Nuw70gcHJvZ3JhbSAvc2Jpbi9tb3VudC48VFlQPikiCisKKyM6IG1vdW50L21vdW50LmM6MTQ5NgorbXNnaWQgIiIKKyIgICAgICAgKGNvdWxkIHRoaXMgYmUgdGhlIElERSBkZXZpY2Ugd2hlcmUgeW91IGluIGZhY3QgdXNlXG4iCisiICAgICAgIGlkZS1zY3NpIHNvIHRoYXQgc3IwIG9yIHNkYSBvciBzbyBpcyBuZWVkZWQ/KSIKK21zZ3N0ciAiIgorIiAgICAgICAobW9obG8gYnkgc2UgamVkbmF0IG/CoElERSB6YcWZw616ZW7DrSwga2RlIHZlIHNrdXRlxI1ub3N0aSBwb3XFvsOtdsOhdGVcbiIKKyIgICAgICAgaWRlLXNjc2ksIHRha8W+ZSBqZSBwb3TFmWViYSBzcjAgbmVibyBzZGEgbmVibyBuxJtjbyBuYSB0ZW4genDFr3NvYj8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDEKK21zZ2lkICIiCisiICAgICAgIChhcmVuJ3QgeW91IHRyeWluZyB0byBtb3VudCBhbiBleHRlbmRlZCBwYXJ0aXRpb24sXG4iCisiICAgICAgIGluc3RlYWQgb2Ygc29tZSBsb2dpY2FsIHBhcnRpdGlvbiBpbnNpZGU/KSIKK21zZ3N0ciAiICAgICAgIChuZXBva291xaHDrXRlIHNlIHDFmWlwb2ppdCByb3rFocOtxZllbsO9IG9kZMOtbCBuYW3DrXN0byBsb2dpY2vDqWhvPykiCisKKyM6IG1vdW50L21vdW50LmM6MTUwOAorbXNnaWQgIiIKKyIgICAgICAgSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBpcyBmb3VuZCBpbiBzeXNsb2cgLSB0cnlcbiIKKyIgICAgICAgZG1lc2cgfCB0YWlsICBvciBzb1xuIgorbXNnc3RyICIiCisiICAgICAgIFbCoGppc3TDvWNoIHDFmcOtcGFkZWNoIGx6ZSBuYWrDrXQgcG90xZllYm7DqSBpbmZvcm1hY2UgdsKgc3lzdMOpbW92w6ltXG4iCisiICAgICAgIHByb3Rva29sdcKg4oCTIHprdXN0ZSBuYXDFmcOta2xhZCDigJ5kbWVzZyB8IHRhaWzigJwgXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTUxNAorbXNnaWQgIm1vdW50IHRhYmxlIGZ1bGwiCittc2dzdHIgInRhYnVsa2EgcMWZaXBvamVuw60gamUgcGxuw6EiCisKKyM6IG1vdW50L21vdW50LmM6MTUxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IGNhbid0IHJlYWQgc3VwZXJibG9jayIKK21zZ3N0ciAibW91bnQ6ICVzOiBzdXBlcmJsb2sgbmVsemUgcMWZZcSNw61zdCIKKworIzogbW91bnQvbW91bnQuYzoxNTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogdW5rbm93biBkZXZpY2UiCittc2dzdHIgInVtb3VudDogYmxva292w6kgemHFmcOtemVuw60gJXMgamUgbmV6bsOhbcOpIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHVua25vd24gZmlsZXN5c3RlbSB0eXBlICclcyciCittc2dzdHIgIm1vdW50OiBuZXpuw6Ftw70gc3lzdMOpbSBzb3Vib3LFryDigJ4lc+KAnCIKKworIzogbW91bnQvbW91bnQuYzoxNTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBwcm9iYWJseSB5b3UgbWVhbnQgJXMiCittc2dzdHIgIm1vdW50OiBwcmF2ZMSbcG9kb2JuxJsganN0ZSBteXNsZWwgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTU0MgorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAibW91bnQ6IG1vxb5uw6EganN0ZSBteXNsZWwg4oCeaXNvOTY2MOKAnD8iCisKKyM6IG1vdW50L21vdW50LmM6MTU0NQorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ3ZmYXQnPyIKK21zZ3N0ciAibW91bnQ6IG1vxb5uw6EganN0ZSBteXNsZWwg4oCedmZhdOKAnD8iCisKKyM6IG1vdW50L21vdW50LmM6MTU0OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaGFzIHdyb25nIGRldmljZSBudW1iZXIgb3IgZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIgorbXNnc3RyICJtb3VudDogJXMgbcOhIGNoeWJuw6kgxI3DrXNsbyB6YcWZw616ZW7DrSwgxI1pIHNzIHR5cCAlcyBuZW7DrSBwb2Rwb3JvdsOhbiIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAibW91bnQ6ICVzIG5lbsOtIGJsb2tvdsO9bSB6YcWZw616ZW7DrW0gYSB2b2zDoW7DrSBzdGF0IHNlbGhhbG8/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorIm1vdW50OiBqw6Fkcm8gbmVyb3pwb3puYWxvICVzIGpha28gYmxva292w6kgemHFmcOtemVuw61cbiIKKyIgICAgICAgKG1vxb5uw6Eg4oCebW9kcHJvYmUgb3ZsYWRhxI3igJw/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UgKG1heWJlIHRyeSBgLW8gbG9vcCc/KSIKK21zZ3N0ciAibW91bnQ6ICVzIG5lbsOtIGJsb2tvdsO9bSB6YcWZw616ZW7DrW0gKG1vxb5uw6EgcG9txa/FvmUg4oCeLW8gbG9vcOKAnD8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIG5lbsOtIGJsb2tvdsO9bSB6YcWZw616ZW7DrW0iCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgbmVuw60gcGxhdG7DvW0gYmxva292w71tIHphxZnDrXplbsOtbSIKKworIzogbW91bnQvbW91bnQuYzoxNTcyCittc2dpZCAiYmxvY2sgZGV2aWNlICIKK21zZ3N0ciAiYmxva292w6kgemHFmcOtemVuw60iCisKKyM6IG1vdW50L21vdW50LmM6MTU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG1vdW50ICVzJXMgcmVhZC1vbmx5IgorbXNnc3RyICJ1bW91bnQ6ICVzJXMgbmVsemUgcMWZaXBvaml0IHYgcmXFvmltdSBwb3V6ZSBwcm8gxI10ZW7DrSIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICJtb3VudDogJXMlcyBqZSBjaHLDoW7Em25vIHByb3RpIHrDoXBpc3UsIHDFmWlwb2p1amkgcG91emUgcHJvIMSNdGVuw60iCisKKyM6IG1vdW50L21vdW50LmM6MTU4MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIiIKKyJ1bW91bnQ6ICVzJXMgbmVsemUgem5vdnUgcMWZaXBvaml0IHBybyDEjXRlbsOtIGnCoHrDoXBpcywgcHJvdG/FvmUgamUgY2hyw6FuxJtuICIKKyJwcm90aSB6w6FwaXN1IgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIGplIGNocsOhbsSbbm8gcHJvdGkgesOhcGlzdSwgcMWZaXBvanVqaSBwb3V6ZSBwcm8gxI10ZW7DrSIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIm1vdW50OuKAr3bCoCVzIG5lbmFsZXplbm8gxb7DoWRuw6kgbcOpZGl1beKApsKgemtvdcWhw61tIHpub3Z1XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIgorbXNnc3RyICJtb3VudDogdsKgJXMgbmVuYWxlemVubyDFvsOhZG7DqSBtw6lkaXVtIgorCisjOiBtb3VudC9tb3VudC5jOjE2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiAlcyBkb2VzIG5vdCBjb250YWluIFNFTGludXggbGFiZWxzLlxuIgorIiAgICAgICBZb3UganVzdCBtb3VudGVkIGFuIGZpbGUgc3lzdGVtIHRoYXQgc3VwcG9ydHMgbGFiZWxzIHdoaWNoIGRvZXMgbm90XG4iCisiICAgICAgIGNvbnRhaW4gbGFiZWxzLCBvbnRvIGFuIFNFTGludXggYm94LiBJdCBpcyBsaWtlbHkgdGhhdCBjb25maW5lZFxuIgorIiAgICAgICBhcHBsaWNhdGlvbnMgd2lsbCBnZW5lcmF0ZSBBVkMgbWVzc2FnZXMgYW5kIG5vdCBiZSBhbGxvd2VkIGFjY2VzcyB0b1xuIgorIiAgICAgICB0aGlzIGZpbGUgc3lzdGVtLiAgRm9yIG1vcmUgZGV0YWlscyBzZWUgcmVzdG9yZWNvbig4KSBhbmQgbW91bnQoOCkuXG4iCittc2dzdHIgIiIKKyJtb3VudDogJXMgbmVvYnNhaHVqZSB6bmHEjWt5IFNFTGludXh1LlxuIgorIiAgICAgICBQcsOhdsSbIGpzdGUgcMWZaXBvamlsaSBzb3Vib3JvdsO9IHN5c3TDqW0sIGt0ZXLDvSB6bmHEjWt5IHBvZHBvcnVqZSwgYWxlXG4iCisiICAgICAgIG5lb2JzYWh1amUgYW5pIGplZG51LCBkbyBzdHJvamUgc8KgcG9kcG9yb3UgU0VMaW51eHUuIEplICIKKyJwcmF2ZMSbcG9kb2Juw6ksXG4iCisiICAgICAgIMW+ZSBvbWV6ZW7DqSBhcGxpa2FjZSBidWRvdSBnZW5lcm92YXQgenByw6F2eSBBVkMgYSBuZWJ1ZGUgamltIGRvdm9sZW5vXG4iCisiICAgICAgIHDFmWlzdG91cGl0IG5hIHRlbnRvIHN5c3TDqW0gc291Ym9yxa8uIERhbMWhw60gcmFkeSBsemUgbmFsw6l6dFxuIgorIiAgICAgICB2wqByZXN0b3JlY29uKDgpIGEgbW91bnQoOCkuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxMAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiB0aGUgY29sb25cbiIKK21zZ3N0ciAibW91bnQ6IG5lYnlsIHphZMOhbiB0eXAgLSBidWR1IHBvdcW+w612YXQgbmZzIGt2xa9saSBkdm9qdGXEjWNlXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICJtb3VudDogbmVieWwgemFkw6FuIHR5cMKgLSBidWR1IHDFmWVkcG9rbMOhZGF0IGNpZnMga3bFr2xpIHDFmWVkcG9uxJsgLy9cbiIKKworIzogbW91bnQvbW91bnQuYzoxODExCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6ICVzIGplIGppxb4gcMWZaXBvamVubyBuYSAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiBtb3VudCAtViAgICAgICAgICAgICAgICAgOiBwcmludCB2ZXJzaW9uXG4iCisiICAgICAgIG1vdW50IC1oICAgICAgICAgICAgICAgICA6IHByaW50IHRoaXMgaGVscFxuIgorIiAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgOiBsaXN0IG1vdW50ZWQgZmlsZXN5c3RlbXNcbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDogaWRlbSwgaW5jbHVkaW5nIHZvbHVtZSBsYWJlbHNcbiIKKyJTbyBmYXIgdGhlIGluZm9ybWF0aW9uYWwgcGFydC4gTmV4dCB0aGUgbW91bnRpbmcuXG4iCisiVGhlIGNvbW1hbmQgaXMgYG1vdW50IFstdCBmc3R5cGVdIHNvbWV0aGluZyBzb21ld2hlcmUnLlxuIgorIkRldGFpbHMgZm91bmQgaW4gL2V0Yy9mc3RhYiBtYXkgYmUgb21pdHRlZC5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDogbW91bnQgYWxsIHN0dWZmIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAgICAgICBtb3VudCBkZXZpY2UgICAgICAgICAgICAgOiBtb3VudCBkZXZpY2UgYXQgdGhlIGtub3duIHBsYWNlXG4iCisiICAgICAgIG1vdW50IGRpcmVjdG9yeSAgICAgICAgICA6IG1vdW50IGtub3duIGRldmljZSBoZXJlXG4iCisiICAgICAgIG1vdW50IC10IHR5cGUgZGV2IGRpciAgICA6IG9yZGluYXJ5IG1vdW50IGNvbW1hbmRcbiIKKyJOb3RlIHRoYXQgb25lIGRvZXMgbm90IHJlYWxseSBtb3VudCBhIGRldmljZSwgb25lIG1vdW50c1xuIgorImEgZmlsZXN5c3RlbSAob2YgdGhlIGdpdmVuIHR5cGUpIGZvdW5kIG9uIHRoZSBkZXZpY2UuXG4iCisiT25lIGNhbiBhbHNvIG1vdW50IGFuIGFscmVhZHkgdmlzaWJsZSBkaXJlY3RvcnkgdHJlZSBlbHNld2hlcmU6XG4iCisiICAgICAgIG1vdW50IC0tYmluZCBvbGRkaXIgbmV3ZGlyXG4iCisib3IgbW92ZSBhIHN1YnRyZWU6XG4iCisiICAgICAgIG1vdW50IC0tbW92ZSBvbGRkaXIgbmV3ZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgbW91bnQgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXVuYmluZGFibGUgZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgYWxsIHRoZSBtb3VudHMgaW4gYSBtb3VudCBzdWJ0cmVlXG4iCisiY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ycHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJ1bmJpbmRhYmxlIGRpclxuIgorIkEgZGV2aWNlIGNhbiBiZSBnaXZlbiBieSBuYW1lLCBzYXkgL2Rldi9oZGExIG9yIC9kZXYvY2Ryb20sXG4iCisib3IgYnkgbGFiZWwsIHVzaW5nICAtTCBsYWJlbCAgb3IgYnkgdXVpZCwgdXNpbmcgIC1VIHV1aWQgLlxuIgorIk90aGVyIG9wdGlvbnM6IFstbmZGcnN2d10gWy1vIG9wdGlvbnNdIFstcCBwYXNzd2RmZF0uXG4iCisiRm9yIG1hbnkgbW9yZSBkZXRhaWxzLCBzYXkgIG1hbiA4IG1vdW50IC5cbiIKK21zZ3N0ciAiIgorIlBvdcW+aXTDrTogbW91bnQgLVYgICAgICAgICAgICAgICA6IHZ5cMOtxaFlIGluZm9ybWFjZSBvIHZlcnppXG4iCisiICAgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICA6IHZ5cMOtxaFlIHR1dG8gbsOhcG92xJtkdVxuIgorIiAgICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgOiB6b2JyYXrDrSBzZXpuYW0gcMWZaXBvamVuw71jaCBzeXN0w6ltxa8gIgorInNvdWJvcsWvXG4iCisiICAgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICA6IHRvdMOpxb4gcGx1cyBqbWVub3ZreSBzdmF6a8WvXG4iCisiVG90byBieWx5IHDFmWVww61uYcSNZSBzbG91xb7DrWPDrSBrwqB6w61za8OhbsOtIGluZm9ybWFjw60uIE55bsOtIGvCoHDFmWVww61uYcSNxa9tICIKKyJzbG91xb7DrWPDrW1cbiIKKyJrwqBwxZlpcG9qb3bDoW7DrSBzeXN0w6ltxa8gc291Ym9yxa8uXG4iCisiU3ludGF4ZSBqZSDigJ5tb3VudCBbLXQgU1NUWVBdIE7EmkNPIE7EmktBTeKAnC5cbiIKKyLDmmRhamUgb2JzYcW+ZW7DqSB2IC9ldGMvZnN0YWIgbW9ob3UgYsO9dCB2eW5lY2jDoW55LlxuIgorIiAgICAgICAgIG1vdW50IC1hIFstdHwtT10g4oCmICAgICA6IHDFmWlwb2rDrSB2ZcWha2Vyw6kgcG9sb8W+a3kgesKgL2V0Yy9mc3RhYlxuIgorIiAgICAgICAgIG1vdW50IFpBxZjDjVpFTsONICAgICAgICAgOiBwxZlpcG9qw60gWkHFmMONWkVOw40gbmEgem7DoW3DqSBtw61zdG9cbiIKKyIgICAgICAgICBtb3VudCBBRFJFU8OBxZggICAgICAgICAgOiBwxZlpcG9qw60gem7DoW3DqSB6YcWZw616ZW7DrSBrwqBBRFJFU8OBxZhJXG4iCisiICAgICAgICAgbW91bnQgLXQgVFlQIFpBxZggQURSICAgOiBixJvFvm7DoSBwb2RvYmEgcMWZw61rYXp1IHBybyBwxZlpcG9qZW7DrVxuIgorIlV2xJtkb210ZSBzaSwgxb5lIHTDrW0sIGNvIHNlIHDFmWlwb2p1amUsIHZlIHNrdXRlxI1ub3N0aSBuZW7DrSB6YcWZw616ZW7DrSwgYWxlICIKKyJzeXN0w6ltXG4iCisic291Ym9yxa8gKGRhbsOpaG8gdHlwdSksIGt0ZXLDvSBzZSBuYSB0b210byB6YcWZw616ZW7DrSBuYWNow6F6w60uXG4iCisiTcWvxb5ldGUgdGFrw6kgcMWZaXBvaml0IGppxb4gcMWZw61zdHVwbsO9IGFkcmVzw6HFmW92w70gc3Ryb20gbmEgamluw6kgbcOtc3RvOlxuIgorIiAgICAgICAgIG1vdW50IC0tYmluZCBTVEFSw51fQURSRVPDgcWYIE5PVsOdX0FEUkVTw4HFmFxuIgorIm5lYm8gcMWZZXN1bm91dCBwb2RzdHJvbTpcbiIKKyIgICAgICAgICBtb3VudCAtLW1vdmUgU1RBUsOdX0FEUkVTw4HFmCBOT1bDnV9BRFJFU8OBxZhcbiIKKyJNxa/FvmV0ZSB6bcSbbml0IHR5cCBwxZlpcG9qZW7DrSBvYnNhaHVqw61jw60gYWRyZXPDocWZIEFEUjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNoYXJlZCBBRFJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIEFEUlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBBRFJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXVuYmluZGFibGUgQURSXG4iCisiTcWvxb5ldGUgem3Em25pdCB0eXAgdsWhZWNoIHDFmWlwb2plbsOtIHYgcG9kc3Ryb211IHDFmWlwb2plbsOtXG4iCisib2JzYWh1asOtY8OtIGFkcmVzw6HFmSBBRFI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIEFEUlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIEFEUlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgQURSXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBBRFJcbiIKKyJaYcWZw616ZW7DrSBtxa/FvmUgYsO9dCB1ZMOhbm8gam3DqW5lbSAobmFwxZkuIC9kZXYvaGRhMSDEjWkgL2Rldi9jZHJvbSksIGptZW5vdmtvdVxuIgorIihwb21vY8OtIHDFmWVww61uYcSNZSAtTCBKTUVOT1ZLQSkgbmVibyBVVUlEIChwb21vY8OtIHDFmWVww61uYcSNZSAtVSBVVUlEKS5cbiIKKyJEYWzFocOtIHDFmWVww61uYcSNZTogWy1uZkZyc3Z3XSBbLW8gVk9MQlldIFstcCBERVNLUklQVE9SX1NfSEVTTEVNXS5cbiIKKyJNbm9obyBkYWzFocOtY2ggaW5mb3JtYWPDrSB6w61za8OhdGUgcMWZw61rYXplbSDigJ5tYW4gOCBtb3VudOKAnC5cbiIKKworIzogbW91bnQvbW91bnQuYzoyMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQgKGVmZmVjdGl2ZSBVSUQgaXMgJWQpIgorbXNnc3RyICJtb3VudDogdG90byBtxa/FvmUgcHJvdsOpc3QgcG91emUgc3VwZXJ1xb5pdmF0ZWwgKGVmZWt0aXZuw60gVUlEIGplICVkKSIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6IHRvdG8gbcWvxb5lIHByb3bDqXN0IHBvdXplIHN1cGVydcW+aXZhdGVsIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJuZWJ5bCBwxZlpcG9qZW4gxb7DoWRuw70gZGlza292w70gb2Rkw61sIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDYgbW91bnQvbW91bnQuYzoyMzMyCittc2dpZCAibW91bnQ6IG5vIHN1Y2ggcGFydGl0aW9uIGZvdW5kIgorbXNnc3RyICJtb3VudDogxb7DoWRuw70gb2Rwb3bDrWRhasOtY8OtIGRpc2tvdsO9IG9kZMOtbCBuZWJ5bCBuYWxlemVuIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IGZpbmQgJXMgaW4gJXMgb3IgJXMiCittc2dzdHIgIm1vdW50OiAlcyBuZWx6ZSBuYWzDqXp0IHYgJXMgYW5pICVzIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IHdhcm5pbmc6IG5vIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiAlc1xuIgorbXNnc3RyICJbbW50ZW50XTogdmFyb3bDoW7DrTogJXMgbmVuw60gdWtvbsSNZW5vIG5vdm91IMWZw6Fka291XG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogbGluZSAlZCBpbiAlcyBpcyBiYWQlc1xuIgorbXNnc3RyICJbbW50ZW50XTogxZnDoWRlayAlZCB2ICVzIGplIGNoeWJuw70lc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTkKK21zZ2lkICI7IHJlc3Qgb2YgZmlsZSBpZ25vcmVkIgorbXNnc3RyICI7IGlnbm9ydWppIHpieXRlayBzb3Vib3J1IgorCisjOiBtb3VudC9zdW5kcmllcy5jOjMyCittc2dpZCAiYnVnIGluIHhzdHJuZHVwIGNhbGwiCittc2dzdHIgImNoeWJhIHZlIHZvbMOhbsOtIHhzdHJuZHVwIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgIk5lZG9zdGF0ZWsgcGFtxJt0aSIKKworIzogbW91bnQvc3dhcG9uLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSA8c3BlY2lhbD4gcGFyYW1ldGVyOlxuIgorIiB7LUwgbGFiZWwgfCBMQUJFTD1sYWJlbH0gICAgICAgICAgICAgTEFCRUwgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIFVVSUQgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGRldmljZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGZpbGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZmlsZSB0byBiZSB1c2VkXG4iCisiXG4iCittc2dzdHIgIiIKKyJQYXJhbWV0ciBaVkzDgcWgVE7DjTpcbiIKKyIgey1MIEpNRU5PVktBIHwgTEFCRUw9Sk1FTk9WS0F9ICAgICAgIHZ5YmVyZSB6YcWZw616ZW7DrSBwb2RsZSBKTUVOT1ZLWVxuIgorIiB7LVUgVVVJRCB8IFVVSUQ9VVVJRH0gICAgICAgICAgICAgICAgdnliZXJlIHphxZnDrXplbsOtIHBvZGxlIFVVSURcbiIKKyIgWkHFmMONWkVOw40gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ5YmVyZSBaQcWYw41aRU7DjVxuIgorIiBTT1VCT1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnliZXJlIFNPVUJPUlxuIgorIlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBvdcW+aXTDrTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICB6YXBuZSB2xaFlY2hueSBvZGtsw6FkYWPDrSBvYmxhc3RpXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dmVkZW7DqSB2wqAvZXRjL2ZzdGFiXG4iCisiICUxJHMgWy1wIFBSSU9SSVRBXSBbLXZdIFstZl0gWlZMw4HFoFROw40gIHphcG5lIHZ5YnJhbm91IG9ka2zDoWRhY8OtIG9ibGFzdFxuIgorIiAlMSRzIC1zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ5cMOtxaFlIHNvdWhybm7DqSBpbmZvcm1hY2UgbyB2eXXFvml0w61cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ka2zDoWRhY8OtY2ggb2JsYXN0w61cbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB2eXDDrcWhZSBuw6Fwb3bEm2R1XG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnlww63FoWUgdmVyemlcbiIKKyJcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIHN3YXBzXG4iCisiICUxJHMgWy12XSA8c3BlY2lhbD4gICAgICAgICAgICAgICBkaXNhYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQb3XFvml0w606XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICB2eXBuZSB2xaFlY2hueSBvZGtsw6FkYWPDrSBvYmxhc3RpXG4iCisiICUxJHMgWy12XSBaVkzDgcWgVE7DjSAgICAgICAgICAgICAgICB2eXBuZSB2eWJyYW5vdSBvZGtsw6FkYWPDrSBvYmxhc3RcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ5cMOtxaFlIG7DoXBvdsSbZHVcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ5cMOtxaFlIHZlcnppXG4iCisiXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5leHBlY3RlZCBmaWxlIGZvcm1hdCIKK21zZ3N0ciAiJXM6IG5lb8SNZWvDoXZhbsO9IGZvcm3DoXQgc291Ym9ydSIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWluaXRpYWxpemluZyB0aGUgc3dhcC4iCittc2dzdHIgIiVzOiByZWluaWNpYWxpenVqaSBvZGtsw6FkYWPDrSBvYmxhc3QuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMjMKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAidm9sw6Fuw60gZm9yayBzZWxoYWxvIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKK21zZ2lkICJleGVjdiBmYWlsZWQiCittc2dzdHIgImZ1bmtjZSBleGVjdiBzZWxoYWxhIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNDcKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAidm9sw6Fuw60gd2FpdHBpZCBzZWxoYWxvIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAiJXM6IHZvbMOhbsOtIGxzZWVrIHNlbGhhbG8iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIKK21zZ3N0ciAiJXM6IHrDoXBpcyBwb2RwaXN1IHNlbGhhbCIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisiJXM6IG5hbGV6ZW4gcG9kcGlzIG9ka2zDoWRhY8OtaG8gcHJvc3RvcnU6IHZlcnplICVkLCB2ZWxpa29zdCBzdHLDoW5reSAlZCwgJXMgIgorIsWZYXplbsOtIGJhanTFryIKKworIyBMYXN0IGFyZ3VtZW50IG9mICJwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJkaWZmZXJlbnQiCittc2dzdHIgIm9kbGnFoW7DqSIKKworIyBMYXN0IGFyZ3VtZW50IG9mICJwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJzYW1lIgorbXNnc3RyICJzdGVqbsOpIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN0YXQgZmFpbGVkIgorbXNnc3RyICIlczogdm9sw6Fuw60gc3RhdCBzZWxoYWxvIgorCisjOiBtb3VudC9zd2Fwb24uYzozOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGluc2VjdXJlIHBlcm1pc3Npb25zICUwNG8sICUwNG8gc3VnZ2VzdGVkLiIKK21zZ3N0ciAiJXM6IHDFmcOtc3R1cG92w6EgcHLDoXZhICUwNG8gbmVqc291IGJlenBlxI1uw6EsICUwNG8gYnkgYnlsYSBsZXDFocOtLiIKKworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyAtIGl0IGFwcGVhcnMgdG8gaGF2ZSBob2xlcy4iCittc2dzdHIgIiVzOiB2eW5lY2jDoXbDoW3CoOKAkyB6ZMOhIHNlLCDFvmUgb2JzYWh1amUgZMOtcnkuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAiJXM6IG5lcG9kYcWZaWxvIHNlIHpqaXN0aXQgdmVsaWtvc3QiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiVzOiBuZXBvZGHFmWlsbyBzZSBuYcSNw61zdCBobGF2acSNa3Ugb2RrbMOhZGFjw60gb2JsYXN0aSIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisiJXM6IGxhc3RfcGFnZSAweCUwOGxseCBqZSB2xJt0xaHDrSBuZcW+IHNvdcSNYXNuw60gdmVsaWtvc3Qgb2RrbMOhZGFjw61obyBwcm9zdG9ydSIKKworIzogbW91bnQvc3dhcG9uLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4iCittc2dzdHIgIiVzOiBmb3Jtw6F0IG9ka2zDoWRhY8OtaG8gcHJvc3RvcnUgc2UgbmVzaG9kdWplIHZlIHZlbGlrb3N0aSBzdHLDoW5reS4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorIiVzOiBmb3Jtw6F0IG9ka2zDoWRhY8OtaG8gcHJvc3RvcnUgc2UgbmVzaG9kdWplIHZlIHZlbGlrb3N0aSBzdHLDoW5reS4gKEx6ZSBqaSAiCisicmVpbmljaWFsaXpvdmF0IHBvbW9jw60gLS1maXhwZ3N6LikiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc29mdHdhcmUgc3VzcGVuZCBkYXRhIGRldGVjdGVkLiBSZXdyaXRpbmcgdGhlIHN3YXAgc2lnbmF0dXJlLiIKK21zZ3N0ciAiIgorIiVzOiBuYWxlemVuYSBkYXRhIHplIHNvZnR3YXJvdsOpaG8gdXNww6Fuw60uIFDFmWVwaXN1amkgcG9kcGlzIG9ka2zDoWRhY8OtIG9ibGFzdGkuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NzggbW91bnQvc3dhcG9uLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIG9uICVzXG4iCittc2dzdHIgIiVzIG5hICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9uIGZhaWxlZCIKK21zZ3N0ciAiJXM6IHN3YXBvbiBzZWxoYWwiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZmluZCB0aGUgZGV2aWNlIGZvciAlcyIKK21zZ3N0ciAibmVsemUgbmFsw6l6dCB6YcWZw616ZW7DrSBwcm8gJXMiCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MAorbXNnaWQgIk5vdCBzdXBlcnVzZXIuIgorbXNnc3RyICJOZWpzdGUgc3VwZXJ1xb5pdmF0ZWwuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvZmYgZmFpbGVkIgorbXNnc3RyICIlczogc3dhcG9mZiBzZWxoYWwiCisKKyM6IG1vdW50L3N3YXBvbi5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIHVuc3VwcG9ydGVkIHByb2dyYW0gbmFtZSAobXVzdCBiZSAnc3dhcG9uJyBvciAnc3dhcG9mZicpLiIKK21zZ3N0ciAiIgorIuKAniVz4oCcIG5lbsOtIG7DoXpldiBwb2Rwb3JvdmFuw6lobyBwcm9ncmFtdSAobXVzw60gYsO9dCDigJ5zd2Fwb27igJwgbmVibyDigJ5zd2Fwb2Zm4oCcKS4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAtZlxuIgorbXNnc3RyICJ1bW91bnQgYnlsIHDFmWVsb8W+ZW4gYmV6IHBvZHBvcnkgcHJvIC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJ1bW91bnQ6IMSNw61zbG8gc2t1cGlueSAoR0lEKSBuZWx6ZSBuYXN0YXZpdDogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjExNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgInVtb3VudDogxI3DrXNsbyB1xb5pdmF0ZWxlIChVSUQpIG5lbHplIG5hc3Rhdml0OiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJ1bW91bnQ6IHZvbMOhbsOtIGZvcmsgc2VsaGFsbzogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiBibG9rb3bDqSB6YcWZw616ZW7DrSAlcyBqZSBjaHlibsOpIgorCisjOiBtb3VudC91bW91bnQuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IG1vdW50ZWQiCittc2dzdHIgInVtb3VudDogJXMgbmVuw60gcMWZaXBvamVubyIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgInVtb3VudDogc3VwZXJibG9rIG5lbHplIG5hICVzIHphcHNhdCIKKworIzogbW91bnQvdW1vdW50LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1bW91bnQ6ICVzOiBkZXZpY2UgaXMgYnVzeS5cbiIKKyIgICAgICAgIChJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGFib3V0IHByb2Nlc3NlcyB0aGF0IHVzZVxuIgorIiAgICAgICAgIHRoZSBkZXZpY2UgaXMgZm91bmQgYnkgbHNvZig4KSBvciBmdXNlcigxKSkiCittc2dzdHIgIiIKKyJ1bW91bnQ6ICVzOiB6YcWZw616ZW7DrSBqZSBwb3XFvsOtdsOhbm8uXG4iCisiICAgICAgICAoVsKgbsSba3RlcsO9Y2ggcMWZw61wYWRlY2ggbHplIHrDrXNrYXQgdcW+aXRlxI1uw6kgaW5mb3JtYWNlIG/CoHByb2Nlc2VjaCxcbiIKKyIgICAgICAgIGt0ZXLDqSBzZSB6YcWZw616ZW7DrW0gcHJhY3Vqw60sIHBvbW9jw60gbsOhc3Ryb2rFryBsc29mKDgpIGEgZnVzZXIoMSkuKSIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAidW1vdW50OiAlcyBuZWx6ZSBuYWrDrXQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBtdXN0IGJlIHN1cGVydXNlciB0byB1bW91bnQiCittc2dzdHIgInVtb3VudDogbXVzw610ZSBiw710IHN1cGVydcW+aXZhdGVsZW0sIGFieXN0ZSBtb2hsIG9kcG9qaXQgJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgInVtb3VudDogJXM6IGJsb2tvdsOhIHphxZnDrXplbsOtIG5lanNvdSBuYSBzeXN0w6ltdSBzb3Vib3LFryBwb3ZvbGVuYSIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHVtb3VudDIsIHRyeWluZyB1bW91bnQuLi5cbiIKK21zZ3N0ciAibmVuYWxlemwganNlbSB1bW91bnQyLCB6a291xaHDrW0gdW1vdW504oCmXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgIiIKKyJ1bW91bnQ6ICVzIGplIHByw6F2xJsgcG91xb7DrXbDoW5vIC0gem5vdnUgcMWZaXBvamVubyB2IHJlxb5pbXUgcHJvIHBvdXplIMSNdGVuw61cbiIKKworIzogbW91bnQvdW1vdW50LmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY291bGQgbm90IHJlbW91bnQgJXMgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogJXMgbmVsemUgem5vdnUgcMWZaXBvaml0IHYgcmXFvmltdSBwb3V6ZSBwcm8gxI10ZW7DrVxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdW1vdW50ZWRcbiIKK21zZ3N0ciAiJXMgb2Rwb2plbm9cbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgInVtb3VudDogc2V6bmFtIHN5c3TDqW3FryBzb3Vib3LFryBuYSBvZHBvamVuw60gbmVsemUgbmFsw6l6dCIKKworIzogbW91bnQvdW1vdW50LmM6Mzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogdW1vdW50IC1oIHwgLVZcbiIKKyIgICAgICAgdW1vdW50IC1hIFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgdmZzdHlwZXNdIFstTyBvcHRzXVxuIgorIiAgICAgICB1bW91bnQgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIHNwZWNpYWwgfCBub2RlLi4uXG4iCittc2dzdHIgIiIKKyJQb3XFvml0w606IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgICAgdW1vdW50IC1hIFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgVFlQWV9WRlNdIFstTyBWT0xCWV1cbiIKKyIgICAgICAgICB1bW91bnQgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFNQRUNJw4FMTsONX1NPVUJPUiB8IFVaRUzigKZcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiemHFmcOtemVuw60gJXMgamUgc3BvamVubyBzwqAlc1xuIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiemHFmcOtemVuw60gJXMgbmVuw60gc3BvamVubyBzwqAlc1xuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAi4oCe4oCcIG5lbHplIG9kcG9qaXRcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byB1bW91bnQgJXNcbiIKK21zZ3N0ciAiWmtvdcWhw61tIG9kcG9qaXQgJXNcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICJ1bW91bnQ6IGFuYWzDvXphIG10YWIgZMOhdsOhIG1hdG91Y8OtIHbDvXNsZWRreSIKKworIzogbW91bnQvdW1vdW50LmM6NTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHVtb3VudCAlcyAtLSAlcyBpcyBtb3VudGVkIG92ZXIgaXQgb24gdGhlIHNhbWUgcG9pbnQuIgorbXNnc3RyICJ1bW91bnQ6ICVzIG5lbHplIG9kcG9qaXTCoOKAkyAlcyBqZSBwxZllcyBuxJtqIHDFmWlwb2plbiBuYSBzdGVqbsOpIG3DrXN0by4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxOAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCAlcyBpbiBtdGFiXG4iCittc2dzdHIgIiVzIG5lbHplIHYgbXRhYiBuYWrDrXRcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IG1vdW50ZWQgKGFjY29yZGluZyB0byBtdGFiKSIKK21zZ3N0ciAidW1vdW50OiBwb2RsZSBtdGFiIG5lbsOtICVzIHDFmWlwb2plbm8iCisKKyM6IG1vdW50L3Vtb3VudC5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGl0IHNlZW1zICVzIGlzIG1vdW50ZWQgbXVsdGlwbGUgdGltZXMiCittc2dzdHIgInVtb3VudDogemTDoSBzZSwgxb5lICVzIGplIHDFmWlwb2plbm8gdsOtY2UgbmXFviBqZWRub3UiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBpbiB0aGUgZnN0YWIgKGFuZCB5b3UgYXJlIG5vdCByb290KSIKK21zZ3N0ciAidW1vdW50OiAlcyBuZW7DrSB2ZSBmc3RhYiAoYSB2eSBuZWpzdGUgcm9vdCkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIG1vdW50IGRpc2FncmVlcyB3aXRoIHRoZSBmc3RhYiIKK21zZ3N0ciAidW1vdW50OiBwxZlpcG9qZW7DrSAlcyBuZW9kcG92w61kw6EgZnN0YWIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAidW5tb3VudDogcG91emUgdcW+aXZhdGVsICVzIG3Fr8W+ZSBvZHBvaml0ICVzIHplICVzIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAidW1vdW50OiB0b3RvIG3Fr8W+ZSBwcm92w6lzdCBwb3V6ZSB1xb5pdmF0ZWwgcm9vdCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImNocnQgLSBtYW5pcHVsYXRlIHJlYWwtdGltZSBhdHRyaWJ1dGVzIG9mIGEgcHJvY2Vzcy5cbiIKKyJcbiIKKyJTZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gPHBvbGljeT4gPHByaW9yaXR5PiB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiR2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJcbiIKKyJTY2hlZHVsaW5nIHBvbGljaWVzOlxuIgorIiAgLWIgfCAtLWJhdGNoICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9CQVRDSFxuIgorIiAgLWYgfCAtLWZpZm8gICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9GSUZPXG4iCisiICAtaSB8IC0taWRsZSAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0lETEVcbiIKKyIgIC1vIHwgLS1vdGhlciAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfT1RIRVJcbiIKKyIgIC1yIHwgLS1yciAgICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfUlIgKGRlZmF1bHQpXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwXG4iCisiICAtcCB8IC0tcGlkICAgICAgICAgICBvcGVyYXRlIG9uIGV4aXN0aW5nIGdpdmVuIHBpZFxuIgorIiAgLW0gfCAtLW1heCAgICAgICAgICAgc2hvdyBtaW4gYW5kIG1heCB2YWxpZCBwcmlvcml0aWVzXG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgICBkaXNwbGF5IHN0YXR1cyBpbmZvcm1hdGlvblxuIgorIiAgLVYgfCAtLXZlcnNpb24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorImNocnTCoOKAkyB6YWNow6F6w60gc8Kgdmxhc3Rub3N0bWkgcHJvY2VzdSB0w71rYWrDrWPDrW1pIHNlIHBsw6Fub3bDoW7DrSB2wqByZcOhbG7DqW0gIgorIsSNYXNlLlxuIgorIlxuIgorIk5hc3RhdsOtIHBvbGl0aWt1OlxuIgorIiAgY2hydCBbUMWYRVDDjU5BxIxFXSA8UE9MSVRJS0E+IDxQUklPUklUQT4gezxQSUQ+IHwgPFDFmMONS0FaPiBbPEFSR1VNRU5UPuKApl19XG4iCisiXG4iCisiWsOtc2vDoSBwb2xpdGlrdTpcbiIKKyIgIGNocnQgW1DFmEVQw41OQcSMRV0gezxQSUQ+IHwgPFDFmMONS0FaPiBbPEFSR1VNRU5UWT7igKZdfVxuIgorIlxuIgorIlxuIgorIlBvbGl0aWt5IHBsw6Fub3bDoW7DrTpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIG5hc3RhdsOtIHBvbGl0aWt1IG5hIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBuYXN0YXbDrSBwb2xpdGlrdSBuYSBTQ0hFRF9GSUZPXG4iCisiICAtaSB8IC0taWRsZSAgICAgICAgICBuYXN0YXbDrSBwb2xpdGlrdSBuYSBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBuYXN0YXbDrSBwb2xpdGlrdSBuYSBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgbmFzdGF2w60gcG9saXRpa3UgbmEgU0NIRURfUlIgKGltcGxpY2l0bsOtKVxuIgorIlxuIgorIlDFmWVww61uYcSNZTpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIHpvYnJhesOtIHR1dG8gbsOhcG92xJtkdVxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgcHJhY3VqZSBuYWQgZXhpc3R1asOtY8OtbSBwcm9jZXNlbSBzwqBQSURcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHpvYnJhesOtIG1pbmltw6FsbsOtIGEgbWF4aW3DoWxuw60gcGxhdG7DqSBwcmlvcml0eVxuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgem9icmF6w60gc3Rhdm92w6kgaW5mb3JtYWNlXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICB2eXDDrcWhZSBpbmZvcm1hY2Ugb8KgdmVyemlcbiIKKyJcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIm5lcG9kYcWZaWxvIHNlIHrDrXNrYXQgcG9saXRpa3UgcHJvY2VzdSAlZCIKKworIyBYWFg6IFNlY29uZCBhcmd1bWVudCBpcyAibmV3IiBvciAiY3VycmVudCIKKyMgRklYTUU6IGkxOG4gIm5ldyIuCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHBvbGljeTogIgorbXNnc3RyICIlMiRzIHBsw6Fub3ZhY8OtIHBvbGl0aWthIHByb2Nlc3UgJTEkZDogIgorCisjIHVua25vd24gcG9saWN5CisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93blxuIgorbXNnc3RyICJuZXpuw6Ftw6FcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIKK21zZ3N0ciAibmVwb2RhxZlpbG8gc2UgesOtc2thdCB2bGFzdG5vc3RpIHByb2Nlc3UgJWQiCisKKyMgWFhYOiBTZWNvbmQgYXJndW1lbnQgaXMgIm5ldyIgb3IgImN1cnJlbnQiCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwcmlvcml0eTogJWRcbiIKK21zZ3N0ciAiJTIkcyBwbMOhbm92YWPDrSBwcmlvcml0YSBwcm9jZXN1ICUxJGQ6ICUzJGRcbiIKKworIyBGaXJzdCBhcmd1bWVudCBqdXN0IGNvbXBsZXRlcyBsaXRlcmFsIHBvbGljeSBuYW1lCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICJTQ0hFRF8lcyBtaW4uL21heC4gcHJpb3JpdGFcdDogJWQvJWRcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIlNDSEVEXyVzIG5lbsOtIHBvZHBvcm92w6FuYT9cbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjAzCittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHBpZCIKK21zZ3N0ciAiUElEIHNlIG5lemRhxZlpbG8gcm96ZWJyYXQiCisKKyMgY3VycmVudCBwb2xpY3kvcHJpb3JpdHkKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIyNQorbXNnaWQgImN1cnJlbnQiCittc2dzdHIgInNvdcSNYXNuw6EiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzMworbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAicHJpb3JpdHUgc2UgbmV6ZGHFmWlsbyByb3plYnJhdCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJwb2xpdGlrdSBwcm9jZXN1ICVkIHNlIG5lcG9kYcWZaWxvIG5hc3Rhdml0IgorCisjIHBpZCAlZCdzIF9uZXdfIHNjaGVkdWxpbmcgcG9saWN5IAorIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCittc2dpZCAibmV3IgorbXNnc3RyICJub3bDoSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBleGVjdXRlICVzIgorbXNnc3RyICJzcHXFoXTEm27DrSAlcyBzZWxoYWxvIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjU3Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgInZvbMOhbsOtIGlvcHJpb19nZXQgc2VsaGFsbyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICJ2b2zDoW7DrSBpb3ByaW9fc2V0IHNlbGhhbG8iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorImlvbmljZcKg4oCTIHpqaXN0w60gbmVibyBuYXN0YXbDrSBwbMOhbm92YWPDrSB0xZnDrWR1IG5lYm8gcHJpb3JpdHUgSS9PLlxuIgorIlxuIgorIlBvdcW+aXTDrTpcbiIKKyIgIGlvbmljZSBbUMWYRVDDjU5BxIxFXSAtcCA8UElEPiBbPFBJRD7igKZdXG4iCisiICBpb25vY2UgW1DFmEVQw41OQcSMRV0gPFDFmMONS0FaPiBbPEFSR1VNRU5UPuKApl1cbiIKKyJcbiIKKyJQxZllcMOtbmHEjWU6XG4iCisiICAtbiA8REFUQV9UxZjDjURZPiAgICAgZGF0YSB0xZnDrWR5ICgw4oCTNywgbWVuxaHDrSDEjcOtc2xvIHpuYW1lbsOhIHZ5xaHFocOtIHByaW9yaXR1KVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBwbMOhbm92YWPDrSB0xZnDrWRhOiAwwqDigJMgxb7DoWRuw6EsIDHCoOKAkyByZcOhbG7DvSDEjWFzLCBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMsKg4oCTIGJlc3QtZWZmb3J0LCAzwqDigJMgemFow6FsZW7DrSBbaWRsZV1cbiIKKyIgIC10ICAgICAgICAgICAgICAgICAgaWdub3JvdmF0IHNlbGjDoW7DrVxuIgorIiAgLWggICAgICAgICAgICAgICAgICB0YXRvIG7DoXBvdsSbZGFcbiIKKyJcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxMTAgc2NoZWR1dGlscy9pb25pY2UuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICLEjcOtc2xvIOKAniVz4oCeIG5lbHplIHJvemVicmF0IgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgInXCoHTFmcOtZHkgxb7DoWRuw6Egc2UgaWdub3J1asOtIHphZGFuw6EgZGF0YSB0xZnDrWR5IgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1OQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIGlkbGUgY2xhc3MiCittc2dzdHIgInXCoHTFmcOtZHkgemFow6FsZW7DrSBbaWRsZV0gc2UgaWdub3J1asOtIHphZGFuw6EgZGF0YSB0xZnDrWR5IgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcHJpbyBjbGFzcyAlZCIKK21zZ3N0ciAiY2h5Ym7DoSBwbMOhbm92YWPDrSB0xZnDrWRhICVkIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE4NworbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgImZ1bmtjZSBleGVjdnAgc2VsaGFsYSIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzoyNworIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBiZSByb290IHRvIHNldCB0aGUgQ3RybC1BbHQtRGVsIGJlaGF2aW91ci5cbiIKK21zZ3N0ciAiUG91emUgdcW+aXZhdGVsIHJvb3QgbcWvxb5lIG5hc3Rhdml0IGNob3bDoW7DrSBDdHJsLUFsdC1EZWwuXG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIlBvdcW+aXTDrTogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjExNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyBpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKyJTb3Vib3IgJXMsIHBybyBwcmFob3ZvdSBob2Rub3R1ICVsdSwgbWF4aW3DoWxuw60gcG/EjWV0IHpuYWvFryB2ZSBmaWZvIGJ5bCAlZFxuIgorImEgbWF4aW3DoWxuw60gcMWZZW5vc292w6EgcnljaGxvc3QgdmUgem5hY8OtY2ggemEgc2VrdW5kdSBieWxhICVmXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1IGFuZCB0aW1yb3V0IHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzICIKKyJpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKyJTb3Vib3IgJXMsIHBybyBwcmFob3ZvdSBob2Rub3R1ICVsdSBhIMSNYXNvdsO9IGxpbWl0ICVsdSwgbWF4aW3DoWxuw60gcG/EjWV0ICIKKyJ6bmFrxa9cbiIKKyJ2ZSBmaWZvIGJ5bCAlZCBhIG1heGltw6FsbsOtIHDFmWVub3NvdsOhIHJ5Y2hsb3N0IHZlIHpuYWPDrWNoIHphIHNla3VuZHUgYnlsYSAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIkNoeWJuw6kgcm96cMSbdMOtOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJDaHlibsOhIGhvZG5vdGE6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJDaHlibsOhIGltcGxpY2l0bsOtIGhvZG5vdGE6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiQ2h5Ym7DvSDEjWFzb3bDvSDDumRhajogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiQ2h5Ym7DvSBpbXBsaWNpdG7DrSDEjWFzb3bDvSDDumRhajogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstcSBbLWkgaW50ZXJ2YWxdXSAoWy1zIHZhbHVlXXxbLVMgdmFsdWVdKSAoWy10IHZhbHVlXXxbLVQgdmFsdWVdKSAiCisiWy1nfC1HXSBmaWxlIFtmaWxlLi4uXVxuIgorbXNnc3RyICIiCisiUG91xb5pdMOtOiAlcyBbLXEgWy1pIGludGVydmFsXV0gKFstcyBob2Rub3RhXXxbLVMgaG9kbm90YV0pIChbLXQgaG9kbm90YV18Wy1UICIKKyJob2Rub3RhXSkgWy1nfC1HXSBzb3Vib3IgW3NvdWJvcuKApl1cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiJXMgbmVsemUgb3RldsWZw610OiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiVzIG5lbHplIG5hc3Rhdml0IG5hIHByYWhvdm91IGhvZG5vdHUgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRpbWUgdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICIlcyBuZWx6ZSBuYXN0YXZpdCBuYSDEjWFzb3bDvSBsaW1pdCAlZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIlByYWhvdm91IGhvZG5vdHUgcHJvICVzIG5lbHplIHpqaXN0aXQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAixIxhc292w70gbGltaXQgcHJvICVzIG5lbHplIHpqaXN0aXQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIHNvdcSNYXNuw6EgcHJhaG92w6EgaG9kbm90YSBhICVsZCBzb3XEjWFzbsO9IMSNYXNvdsO9IGxpbWl0XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIHbDvWNob3rDrSBwcmFob3bDoSBob2Rub3RhIGEgJWxkIHbDvWNob3rDrSDEjWFzb3bDvSBsaW1pdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzI3Cittc2dpZCAiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIgorbXNnc3RyICJacHJhY292w6Fuw60gc2lnbsOhbHUgbmVsemUgbmFzdGF2aXQiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzEgc3lzLXV0aWxzL2N5dHVuZS5jOjM2NgorbXNnaWQgImdldHRpbWVvZmRheSBmYWlsZWQiCittc2dzdHIgInZvbMOhbsOtIGdldHRpbWVvZmRheSBzZWxoYWxvIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzQ0IHN5cy11dGlscy9jeXR1bmUuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iCittc2dzdHIgIkNZR0VUTU9OIG5lbHplIG5hICVzIHByb3bDqXN0OiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdS8lbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6ICVsdSBwxZllcnXFoWVuw60sICVsdS8lbHUgem5ha8WvOyBmaWZvOiAlbHUgcHLDoWgsICVsdSDEjWFzb3bDvSBsaW1pdCwgJWx1IG1heCwgIgorIiVsdSBueW7DrVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYywgJWYgc2VuZCAoY2hhci9zZWMpXG4iCittc2dzdHIgIiAgICVmIHDFmWVyLi9zOyAlZiBwxZnDrWouLCAlZiBvZGVzbC4gKHpuYWsvcylcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6ICVsdSBwxZllcnXFoWVuw60sICVsdSB6bmFrxa87IGZpZm86ICVsdSBwcsOhaCwgJWx1IMSNYXNvdsO9IGxpbWl0LCAlbHUgbWF4LCAlbHUgIgorIm55bsOtXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgcMWZZXIuL3M7ICVmIHDFmcOtai4gKHpuYWsvcylcbiIKKworIzogc3lzLXV0aWxzL2RtZXNnLmM6NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFstY10gWy1uIMO6cm92ZcWIXSBbLXJdIFstcyB2ZWxpa29zdF9idWZmZXJ1XVxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGZpbGVuYW1lPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJQb3XFvml0w606ICVzIFtQxZhFUMONTkHEjEVdIDxOw4FaRVZfU09VQk9SVT5cbiIKKyJcbiIKKyJQxZllcMOtbmHEjWU6XG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLWtlZXAtc2l6ZSAgICAgZG9uJ3QgbW9kaWZ5IHRoZSBsZW5ndGggb2YgdGhlIGZpbGVcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCisiIC1sLCAtLWxlbmd0aCA8bnVtPiAgbGVuZ3RoIG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorbXNnc3RyICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICB0YXRvIG7DoXBvdsSbZGFcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICAgIG5lbcSbbml0IGTDqWxrdSBzb3Vib3J1XG4iCisiIC1vLCAtLW9mZnNldCA8xIzDjVNMTz4gIHBvemljZSBhbG9rYWNlIHbCoGJhanRlY2hcbiIKKyIgLWwsIC0tbGVuZ3RoIDzEjMONU0xPPiAgZMOpbGthIGFsb2thY2UgdsKgYmFqdGVjaFxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBmYWxsb2NhdGUoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWw61jZSBpbmZvcm1hY8OtIG5hbGV6bmV0ZSB2ZSBmYWxsb2NhdGUoMSkuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDcKK21zZ2lkICJubyBsZW5ndGggYXJndW1lbnQgc3BlY2lmaWVkIgorbXNnc3RyICJuZXphZMOhbiBhcmd1bWVudCBzwqBkw6lsa291IgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ5Cittc2dpZCAiaW52YWxpZCBsZW5ndGggdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJ6YWTDoW5hIG5lcGxhdG7DoSBob2Rub3RhIGTDqWxreSIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MQorbXNnaWQgImludmFsaWQgb2Zmc2V0IHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiemFkw6FuYSBuZXBsYXRuw6EgaG9kbm90YSBwb3ppY2UiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICJuZXphZMOhbiBuw6F6ZXYgc291Ym9ydS4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAicmXFvmltIG5lbcSbbm7DqSB2ZWxpa29zdGkgKHDFmWVww61uYcSNIC1uKSBuZW7DrSBwb2Rwb3JvdsOhbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAiJXM6IHZvbMOhbsOtIGZhbGxvY2F0ZSBzZWxoYWxvIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzo2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICUxJHMgWy1zeHVuXVstdyAjXSBmZCNcbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGZpbGUgWy1jXSBjb21tYW5kLi4uXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBkaXJlY3RvcnkgWy1jXSBjb21tYW5kLi4uXG4iCisiICAtcyAgLS1zaGFyZWQgICAgIEdldCBhIHNoYXJlZCBsb2NrXG4iCisiICAteCAgLS1leGNsdXNpdmUgIEdldCBhbiBleGNsdXNpdmUgbG9ja1xuIgorIiAgLXUgIC0tdW5sb2NrICAgICBSZW1vdmUgYSBsb2NrXG4iCisiICAtbiAgLS1ub25ibG9jayAgIEZhaWwgcmF0aGVyIHRoYW4gd2FpdFxuIgorIiAgLXcgIC0tdGltZW91dCAgICBXYWl0IGZvciBhIGxpbWl0ZWQgYW1vdW50IG9mIHRpbWVcbiIKKyIgIC1vICAtLWNsb3NlICAgICAgQ2xvc2UgZmlsZSBkZXNjcmlwdG9yIGJlZm9yZSBydW5uaW5nIGNvbW1hbmRcbiIKKyIgIC1jICAtLWNvbW1hbmQgICAgUnVuIGEgc2luZ2xlIGNvbW1hbmQgc3RyaW5nIHRocm91Z2ggdGhlIHNoZWxsXG4iCisiICAtaCAgLS1oZWxwICAgICAgIERpc3BsYXkgdGhpcyB0ZXh0XG4iCisiICAtViAgLS12ZXJzaW9uICAgIERpc3BsYXkgdmVyc2lvblxuIgorbXNnc3RyICIiCisiUG91xb5pdMOtOiAlMSRzIFstc3h1bl1bLXcgxIxdIEZEXG4iCisiICAgICAgICAgJTEkcyBbLXN4b25dWy13IMSMXSBTT1VCT1IgWy1jXSBQxZjDjUtBWuKAplxuIgorIiAgICAgICAgICUxJHMgWy1zeG9uXVstdyDEjF0gQURSRVPDgcWYIFstY10gUMWYw41LQVrigKZcbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgWsOtc2vDoSBzZMOtbGVuw70gesOhbWVrXG4iCisiICAteCAgLS1leGNsdXNpdmUgIFrDrXNrw6EgdsO9bHXEjW7DvSB6w6FtZWtcbiIKKyIgIC11ICAtLXVubG9jayAgICAgT2RzdHJhbsOtIHrDoW1la1xuIgorIiAgLW4gIC0tbm9uYmxvY2sgICBNw61zdG8gxI1la8OhbsOtIHNlbMW+ZVxuIgorIiAgLXcgIC0tdGltZW91dCAgICDEjGVrw6EgbmVqdsO9xaFlIHphZGFub3UgZG9idVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBQxZllZCBzcHXFoXTEm27DrW0gcMWZw61rYXp1IHV6YXbFmWUgZGVza3JpcHRvciBzb3Vib3J1XG4iCisiICAtYyAgLS1jb21tYW5kICAgIFNwdXN0w60gxZlldMSbemVjIGpha28gamVkaW7DvSBwxZnDrWtheiBzaGVsbHVcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgWm9icmF6w60gdGVudG8gdGV4dFxuIgorIiAgLVYgIC0tdmVyc2lvbiAgICBab2JyYXrDrSB2ZXJ6aVxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoxOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGNvbW1hbmQgYXJndW1lbnRcbiIKK21zZ3N0ciAiJXM6IHDFmWVww61uYcSNICVzIHZ5xb5hZHVqZSBwxZllc27EmyBqZWRlbiBwxZnDrWthem92w70gYXJndW1lbnRcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBzb3Vib3IgesOhbWt1ICVzIG5lbHplIG90ZXbFmcOtdDogJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogY2h5Ym7DqSDEjcOtc2xvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlcXVpcmVzIGZpbGUgZGVzY3JpcHRvciwgZmlsZSBvciBkaXJlY3RvcnlcbiIKK21zZ3N0ciAiJXM6IHZ5xb5hZHVqZSBkZXNrcmlwdG9yIHNvdWJvcnUsIHNvdWJvciBuZWJvIGFkcmVzw6HFmVxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogdm9sw6Fuw60gZm9yayBzZWxoYWxvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiUG91xb5pdMOtOiAlcyBbUMWYRVDDjU5BxIxFXVxuIgorIlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKyIgIC1NIDxWRUxJS09TVD4gIHZ5dHZvxZnDrSBzZMOtbGVuw70gcGFtxJvFpW92w70gc2VnbWVudCBvwqB2ZWxpa29zdCA8VkVMSUtPU1Q+XG4iCisiICAtUyA8UE/EjEVUPiAgICAgdnl0dm/FmcOtIHBvbGUgc2VtYWZvcnUgc8KgUE/EjFRFTSBwcnZrxa9cbiIKKyIgIC1wIDxNw5NEPiAgICAgICBwcsOhdmEgcHJvIHpkcm9qIChpbXBsaWNpdG7DrSBqc291IDA2NDQpXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaXBjbWsoMSkuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWw61jZSBpbmZvcm1hY8OtIG5hbGV6bmV0ZSB2wqBpcGNtaygxKS5cbiIKKyJcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQyCittc2dpZCAiY3JlYXRlIHNoYXJlIG1lbW9yeSBmYWlsZWQiCittc2dzdHIgIm5lcG9kYcWZaWxvIHNlIHZ5dHZvxZlpdCBzZMOtbGVub3UgcGFtxJvFpSIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIklEIHNkw61sZW7DqSBwYW3Em3RpOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgIm5lcG9kYcWZaWxvIHNlIHZ5dHZvxZlpdCBmcm9udHUgenByw6F2IgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBxdWV1ZSBpZDogJWRcbiIKK21zZ3N0ciAiSUQgZnJvbnR5IHpwcsOhdjogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgIm5lcG9kYcWZaWxvIHNlIHZ5dHZvxZlpdCBzZW1hZm9yIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VtYXBob3JlIGlkOiAlZFxuIgorbXNnc3RyICJJROKAr3NlcGFmb3J1OiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo2NAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkOiAlc1xuIgorbXNnc3RyICJjaHlibsOpIElEOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAiaWQgJXMgbmVsemUgb2RzdHJhbml0ICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVwcmVjYXRlZCB1c2FnZTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCittc2dzdHIgIlphdnJob3ZhbsO9IHpwxa9zb2IgcG91xb5pdMOtOiAlcyBbc2htIHwgbXNnIHwgc2VtXSBpZOKAplxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93biByZXNvdXJjZSB0eXBlOiAlc1xuIgorbXNnc3RyICJ0eXAgemRyb2plICVzIG5lbsOtIHpuw6FtXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNvdXJjZShzKSBkZWxldGVkXG4iCittc2dzdHIgInByb3N0xZllZGt5IHNtYXrDoW55XG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiIKKyIgICAgICAgICAgWy1RIG1zZ2tleV0gWy1NIHNobWtleV0gWy1TIHNlbWtleV0gLi4uIF1cbiIKK21zZ3N0ciAiIgorIlBvdcW+aXTDrTogJXMgWyBbLXEgSURfWlBSw4FWWV0gWy1tIElEX1NEw41MRU7DiV9QQU3EmlRJXSBbLXMgSURfU0VNQUZPUlVdXG4iCisiICAgICAgICAgICAgWy1RIEtMw43EjF9aUFLDgVZZXSBbLU0gS0zDjcSMX1NEw41MRU7DiV9QQU3EmlRJXSBbLVMgS0zDjcSMX1NFTUFGT1JVXSAiCisi4oCmIF1cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgorbXNnc3RyICIlczogbmVwb3ZvbGVuw6Egdm9sYmHCoOKAkyAlY1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwga2V5ICglcylcbiIKK21zZ3N0ciAiJXM6IG5lcG92b2xlbsO9IGtsw63EjSAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwNiBzeXMtdXRpbHMvaXBjcm0uYzoyMzgKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICJwcm8gZGFuw70ga2zDrcSNIHDFmcOtc3R1cCBvZG3DrXRudXQiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwOSBzeXMtdXRpbHMvaXBjcm0uYzoyNDgKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQga2V5IgorbXNnc3RyICJqacW+IG9kc3RyYW7Em27DvSBrbMOtxI0iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxMiBzeXMtdXRpbHMvaXBjcm0uYzoyNDMKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAibmVwbGF0bsO9IGtsw63EjSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjE1IHN5cy11dGlscy9pcGNybS5jOjI1MworbXNnaWQgInVua25vd24gZXJyb3IgaW4ga2V5IgorbXNnc3RyICJuZXpuw6Ftw6EgY2h5YmEgdiBrbMOtxI1pIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgInBybyBkYW7DqSBpZCBwxZnDrXN0dXAgb2Rtw610bnV0IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICJuZXBsYXRuw6kgaWQiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0OQorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBpZCIKK21zZ3N0ciAiamnFviBvZHN0cmFuxJtuw6kgaWQiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NAorbXNnaWQgInVua25vd24gZXJyb3IgaW4gaWQiCittc2dzdHIgIm5lem7DoW3DoSBjaHliYSB2wqBpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiVzOiAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIKK21zZ3N0ciAiJXM6IG5lem7DoW3DvSBhcmd1bWVudDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2UgOiAlcyAtYXNtcSAtdGNsdXAgXG4iCittc2dzdHIgIlBvdcW+aXTDrTogJXMgLWFzbXEgLXRjbHVwIFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKK21zZ3N0ciAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIlx0JXMgLWggcHJvIG7DoXBvdsSbZHUuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBpcGMgZmFjaWxpdGllcyBmb3Igd2hpY2ggeW91IGhhdmUgcmVhZCBhY2Nlc3MuXG4iCittc2dzdHIgIiVzIHBvc2t5dHVqZSBpbmZvcm1hY2Ugb8KgSVBDIHByb3N0xZllZGPDrWNoLCBrdGVyw6kgbcWvxb5ldGUgxI3DrXN0LlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisiWmFkw6Fuw60gcHJvc3TFmWVka3U6XG4iCisiXHQtbSA6IHNkw61sZW7DoSBwYW3Em8WlXG4iCisiXHQtcSA6IHpwcsOhdnlcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LXMgOiBzZW1hcGhvcmVzXG4iCisiXHQtYSA6IGFsbCAoZGVmYXVsdClcbiIKK21zZ3N0ciAiIgorIlx0LXMgOiBzZW1hZm9yeVxuIgorIlx0LWEgOiB2xaFlIChpbXBsaWNpdG7DrSlcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk91dHB1dCBGb3JtYXQ6XG4iCisiXHQtdCA6IHRpbWVcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JcbiIKK21zZ3N0ciAiIgorIlbDvXN0dXBuw60gZm9ybcOhdDpcbiIKKyJcdC10IDogxI1hc1xuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDogdHbFr3JjZVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKyJcdC1sIDogb21lemVuw61cbiIKKyJcdC11IDogc2hybnV0w61cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICItaSBpZCBbLXMgLXEgLW1dIDogcG9kcm9ibm9zdGkgbyBwcm9zdMWZZWRrdSB1csSNZW7DqW0gZGxlIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2hhcmVkIG1lbW9yeVxuIgorbXNnc3RyICJqw6Fkcm8gbmVwb2Rwb3J1amUgc2TDrWxlbm91IHBhbcSbxaVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBPbWV6ZW7DrSBwcm8gc2TDrWxlbm91IHBhbcSbxaUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBzZWdtZW50cyA9ICVsdVxuIgorbXNnc3RyICJtYXhpbcOhbG7DrSBwb8SNZXQgc2VnbWVudMWvID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtYXhpbcOhbG7DrSB2ZWxpa29zdCBzZWdtZW50dSAodsKga2lsb2JhanRlY2gpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCB0b3RhbCBzaGFyZWQgbWVtb3J5IChrYnl0ZXMpID0gJWxsdVxuIgorbXNnc3RyICJjZWxrb3bDqSBtYXhpbXVtIHBybyBzZMOtbGVub3UgcGFtxJvFpSAodsKga2lsb2JhanRlY2gpID0gJWxsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtaW5pbcOhbG7DrSB2ZWxpa29zdCBzZWdtZW50dSAodsKgYmFqdGVjaCkgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTdGF2IHNkw61sZW7DqSBwYW3Em3RpIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICJhbG9rb3ZhbsOpIHNlZ21lbnR5ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAiYWxva292YW7DqSBzdHLDoW5reSAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgcmVzaWRlbnQgICVsZFxuIgorbXNnc3RyICJyZXppZGVudG7DrSBzdHLDoW5reSAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgc3dhcHBlZCAgICVsZFxuIgorbXNnc3RyICJzdHLDoW5reSB2IG9ka2zDoWRhY8OtbSBwcm9zdG9ydSAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dhcCBwZXJmb3JtYW5jZTogJWxkIGF0dGVtcHRzXHQgJWxkIHN1Y2Nlc3Nlc1xuIgorbXNnc3RyICJTdGF0aXN0aWthIHBybyBvZGtsw6Fkw6Fuw606IHBva3Vzxa86ICVsZFx0LCB6IHRvaG8gw7pzcMSbxaFuw71jaDogJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBUdsWvcmNpL3ZsYXN0bsOtY2kgc2VnbWVudMWvIHNkw61sZW7DqSBwYW3Em3RpIC0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAic2htaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICJwcsOhdmEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAiY3VpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjZ2lkIgorbXNnc3RyICJjZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAidWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImdpZCIKK21zZ3N0ciAiZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gxIxhc3kgcMWZaXBvamVuw60vb2Rwb2plbsOtL3ptxJtueSBwcm8gc2TDrWxlbm91IHBhbcSbxaUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEgc3lzLXV0aWxzL2lwY3MuYzozMDcKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTEyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOCBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm93bmVyIgorbXNnc3RyICJ2bGFzdG7DrWsiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiYXR0YWNoZWQiCittc2dzdHIgInDFmWlwb2plbsOtIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImRldGFjaGVkIgorbXNnc3RyICJvZHBvamVuw60iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk1Cittc2dpZCAiY2hhbmdlZCIKK21zZ3N0ciAiem3Em25hIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBDcmVhdG9yL0xhc3Qtb3AgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFR2xa9yY2Ugc2TDrWxlbsOpIHBhbcSbdGkvcG9zbGVkbsOtIG9wZXJhY2UgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJjcGlkIgorbXNnc3RyICJjcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImxwaWQiCittc2dzdHIgImxwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZWdtZW50eSBzZMOtbGVuw6kgcGFtxJt0aSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAia2zDrcSNIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgImJ5dGVzIgorbXNnc3RyICJiYWp0eSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJuYXR0Y2giCittc2dzdHIgIm5hdHRjaCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgInN0YXYiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzI5IHN5cy11dGlscy9pcGNzLmM6MzMxIHN5cy11dGlscy9pcGNzLmM6MzMzCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ0NCBzeXMtdXRpbHMvaXBjcy5jOjQ0NiBzeXMtdXRpbHMvaXBjcy5jOjU0NQorIzogc3lzLXV0aWxzL2lwY3MuYzo1NDcgc3lzLXV0aWxzL2lwY3MuYzo1NDkgc3lzLXV0aWxzL2lwY3MuYzo2MDAKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAyIHN5cy11dGlscy9pcGNzLmM6NjMwIHN5cy11dGlscy9pcGNzLmM6NjMyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzNCBzeXMtdXRpbHMvaXBjcy5jOjY1NworbXNnaWQgIk5vdCBzZXQiCittc2dzdHIgIk5lbmFzdGF2ZW5vIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MQorbXNnaWQgImRlc3QiCittc2dzdHIgImPDrWwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICJ6YW3EjWVubyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgImrDoWRybyBuZXBvZHBvcnVqZSBzZW1hZm9yeVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS1PbWV6ZW7DrSBwcm8gc2VtYWZvcnkgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJtYXhpbcOhbG7DrSBwb8SNZXQgcG9sw60gPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBwZXIgYXJyYXkgPSAlZFxuIgorbXNnc3RyICJtYXhpbcOhbG7DrSBwb8SNZXQgc2VtYWZvcsWvIHYgcG9saSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAiY2Vsa292w70gbWF4aW3DoWxuw60gcG/EjWV0IHNlbWFmb3LFryA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBvcHMgcGVyIHNlbW9wIGNhbGwgPSAlZFxuIgorbXNnc3RyICJtYXhpbcOhbG7DrSBwb8SNZXQgb3BlcmFjw60gbmEgamVkbm8gc2Vtb3Agdm9sw6Fuw60gPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJzZW1hcGhvcmUgbWF4IHZhbHVlID0gJWRcbiIKK21zZ3N0ciAibWF4aW3DoWxuw60gaG9kbm90YSBzZW1hZm9ydSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTdGF2IHNlbWFmb3J1IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAicG91xb5pdMOhIHBvbGUgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgc2VtYXBob3JlcyA9ICVkXG4iCittc2dzdHIgImFsb2tvdmFuw6kgc2VtYWZvcnkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFR2xa9yY2kvdmxhc3Ruw61jaSBwb2zDrSBzZW1hZm9yxa8gLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAic2VtaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgT3BlcmF0aW9uL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gxIxhc3kgb3BlcmFjZS96bcSbbnkgc2VtYWZvcnUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICJwb3NsZWRuw60gb3BlcmFjZSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgInBvc2xlZG7DrSB6bcSbbmEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBQb2xlIHNlbWFmb3LFryAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgIm5zZW1zIgorbXNnc3RyICJuc2VtcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBtZXNzYWdlIHF1ZXVlc1xuIgorbXNnc3RyICJqw6Fkcm8gbmVwb2Rwb3J1amUgZnJvbnR5IHpwcsOhdlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gWnByw6F2eTogT21lemVuw60gLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgImNlbGtvdsO9IG1heGltw6FsbsOtIHBvxI1ldCBmcm9udCA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzaXplIG9mIG1lc3NhZ2UgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgIm1heGltw6FsbsOtIHZlbGlrb3N0IHpwcsOhdnkgKHYgYmFqdGVjaCkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJkZWZhdWx0IG1heCBzaXplIG9mIHF1ZXVlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJpbXBsaWNpdG7DrSBtYXhpbcOhbG7DrSB2ZWxpa29zdCBmcm9udHkgKHYgYmFqdGVjaCkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gWnByw6F2eTogU3RhdiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OAorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgcXVldWVzID0gJWRcbiIKK21zZ3N0ciAiYWxva292YW7DqSBmcm9udHkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGhlYWRlcnMgPSAlZFxuIgorbXNnc3RyICJwb3XFvml0w6kgaGxhdmnEjWt5ID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBzcGFjZSA9ICVkIGJ5dGVzXG4iCittc2dzdHIgInBvdcW+aXTDvSBwcm9zdG9yICh2IGJhanRlY2gpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzOiBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEZyb250eSB6cHLDoXY6IFR2xa9yY2kvVmxhc3Ruw61jaSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUxMiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorIzogc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJtc3FpZCIKK21zZ3N0ciAibXNxaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBTZW5kL1JlY3YvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDEjGFzeSBvZGVzbMOhbsOtLnDFmcOtY2hvZHUvem3Em255IHBybyBmcm9udHkgenByw6F2IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAic2VuZCIKK21zZ3N0ciAib2Rlc2zDoW7DrSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJyZWN2IgorbXNnc3RyICJwxZnDrWplbSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJjaGFuZ2UiCittc2dzdHIgInptxJtuYSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFBJRHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFBJRCBwcm8gZnJvbnR5IHpwcsOhdiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICJsc3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAibHJwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gRnJvbnR5IHpwcsOhdiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgInXFvml0w6kgYmFqdHkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAibWVzc2FnZXMiCittc2dzdHIgInpwcsOhdnkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTg5Cittc2dpZCAic2htY3RsIGZhaWxlZCIKK21zZ3N0ciAidm9sw6Fuw60gc2htY3RsIHNlbGhhbG8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTaGFyZWQgbWVtb3J5IFNlZ21lbnQgc2htaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorInNobWlkIHNlZ21lbnR1IHNkw61sZW7DqSBwYW3Em3RpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKK21zZ3N0ciAibcOzZD0lI29cdHDFmcOtc3R1cG92w6EgcHLDoXZhPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcz0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKK21zZ3N0ciAiYmFqdMWvPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJhdHRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJwxZlpcG9qX8SNYXM9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAib2Rwb2pfxI1hcz0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMyBzeXMtdXRpbHMvaXBjcy5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICLEjWFzX3ptxJtueT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgInZvbMOhbsOtIG1zZ2N0bCBzZWxoYWxvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisibXNnaWQgZnJvbnR5IHpwcsOhdj0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxOAorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG3Ds2Q9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKK21zZ3N0ciAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAixI1hcyBvZGVzbMOhbsOtPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJjdl90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIsSNYXMgcMWZw61qbXU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICJ2b2zDoW7DrSBzZW1jdGwgc2VsaGFsbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisic2VtaWQgcG9sZSBzZW1hZm9yxa8gPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJtw7NkPSUjbywgcMWZw61zdHVwb3bDoSBwcsOhdmE9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgIm5zZW1zID0gJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm90aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAixI1hcyBwb3NsZWRuw60gb3BlcmFjZSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImN0aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAixI1hcyB6bcSbbnkgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAic2VtbnVtIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInZhbHVlIgorbXNnc3RyICJob2Rub3RhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgIm5jb3VudCIKK21zZ3N0ciAibmNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInpjb3VudCIKK21zZ3N0ciAiemNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInBpZCIKK21zZ3N0ciAicGlkIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFsgLWRoVjc4bmVvMTIgXSBbIC1zIDxzcGVlZD4gXSA8bGRpc2M+IDxkZXZpY2U+XG4iCittc2dzdHIgIiIKKyJcbiIKKyJQb3XFvml0w606ICVzIFstZGhWNzhuZW8xMl0gWy1zIFJZQ0hMT1NUXSBMRElTQyBaQcWYw41aRU7DjVxuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisiXG4iCisiWm7DoW3DoSBqbcOpbmEgTERJU0MgKGRpc2NpcGzDrW55IGxpbmt5KTpcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgc3BlZWQ6ICVzIgorbXNnc3RyICJjaHlibsOhIHJ5Y2hsb3N0OiAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAibGRhdHRhY2ggesKgJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAibmVwbGF0bsO9IHDFmWVww61uYcSNIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBsaW5lIGRpc2NpcGxpbmU6ICVzIgorbXNnc3RyICJuZXBsYXRuw6EgZGlzY2lwbMOtbmEgbGlua3k6ICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiCittc2dzdHIgIiVzIG5lbsOtIHPDqXJpb3ZvdSBsaW5rb3UiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJuZWx6ZSB6amlzdGl0IHZsYXN0bm9zdGkgdGVybWluw6FsdSAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWVkICVkIHVuc3VwcG9ydGVkIgorbXNnc3RyICJyeWNobG9zdCAlZCBuZXBvZHBvcm92w6FuYSIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgInZsYXN0bm9zdGkgdGVybWluw6FsdSAlcyBuZWx6ZSBuYXN0YXZpdCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjUxCittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgImRpc2NpcGzDrW51IGxpbmt5IG5lbHplIG5hc3Rhdml0IgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTcKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICJuZWx6ZSBzZSBkw6ltb25pem92YXQiCisKKyMgdmlydHVhbGl6YXRpb24gdHlwZQorIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQKK21zZ2lkICJub25lIgorbXNnc3RyICLFvsOhZG7DoSIKKworIyB2aXJ0dWFsaXphdGlvbiB0eXBlCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NQorbXNnaWQgInBhcmEiCittc2dzdHIgInBhcmF2aXJ0dWFsaXphY2UiCisKKyMgdmlydHVhbGl6YXRpb24gdHlwZQorIzogc3lzLXV0aWxzL2xzY3B1LmM6NjYKK21zZ2lkICJmdWxsIgorbXNnc3RyICJwbG7DoSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTM3IHN5cy11dGlscy9sc2NwdS5jOjE2MCBzeXMtdXRpbHMvbHNjcHUuYzo0NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzIgorbXNnc3RyICJjaHliYTogJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgImNoeWJhIHDFmWkgcm96ZWLDrXLDoW7DrTogJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE4NAorbXNnaWQgImVycm9yOiBzdHJkdXAgZmFpbGVkIgorbXNnc3RyICJjaHliYTogZnVua2NlIHN0cmR1cCBzZWxoYWxhIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoyNjcKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICJjaHliYTogdm9sw6Fuw60gdW5hbWUgc2VsaGFsbyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTA2Cittc2dpZCAiZXJyb3I6IG1hbGxvYyBmYWlsZWQiCittc2dzdHIgImNoeWJhOiBmdW5rY2UgbWFsbG9jIHNlbGhhbGEiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICJjaHliYTogc291Ym9yb3bDvSBzeXN0w6ltIC9zeXMgbmVuw60gcMWZw61zdHVwbsO9LiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisiIyBOw6FzbGVkdWplIHNuYWRubyByb3plYnJhdGVsbsO9IGZvcm3DoXQsIGt0ZXLDvSBsemUgcG9zbGF0IGRvIGppbsO9Y2hcbiIKKyIjIHByb2dyYW3Fry4gS2HFvmTDoSByxa96bsOhIHBvbG/FvmthIHbCoGthxb5kw6ltIHNsb3VwY2kgbcOhIGplZGluZcSNbsOpIElELFxuIgorIiMga3RlcsOpIHNlIHBvxI3DrXTDoSBvZCBudWx5LlxuIgorIiMgQ1BVLErDoWRybyxQYXRpY2UsVXplbCIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjE5Cittc2dpZCAiQ1BVIG9wLW1vZGUocyk6IgorbXNnc3RyICJPcGVyYcSNbsOtIHJlxb5pbSh5KSBDUFU6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICJWbMOha2VuIG5hIGrDoWRybzoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNgorbXNnaWQgIkNvcmUocykgcGVyIHNvY2tldDoiCittc2dzdHIgIkphZGVyIG5hIHBhdGljaToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICJQYXRpYyBDUFU6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzEKK21zZ2lkICJOVU1BIG5vZGUocyk6IgorbXNnc3RyICJVemx5IE5VTUE6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzMKK21zZ2lkICJWZW5kb3IgSUQ6IgorbXNnc3RyICJJRCB2w71yb2JjZToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICJSb2RpbmEgQ1BVOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM3Cittc2dpZCAiTW9kZWw6IgorbXNnc3RyICJNb2RlbDoiCisKKyMgPz8/OiBFeGlzdHVqZSDEjWVza8O9IHDFmWVrbGFkPworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICJTdGVwcGluZzoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICJDUFUgTUh6OiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorbXNnaWQgIlZpcnR1YWxpemF0aW9uOiIKK21zZ3N0ciAiVmlydHVhbGl6YWNlOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICJWw71yb2JjZSBoeXBlcnZpem9ydToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1MAorbXNnaWQgIlZpcnR1YWxpemF0aW9uIHR5cGU6IgorbXNnc3RyICJEcnVoIHZpcnR1YWxpemFjZToiCisKKyMgPz8/OuKAr2tlxaEKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjYWNoZToiCittc2dzdHIgIiVzIGNhY2hlOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uXVxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFtQxZhFUMONTkHEjF1cbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisiTsOhc3Ryb2ogcHJvIHBvcGlzIGFyY2hpdGVrdHVyeSBDUFVcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgIG7DoXZvZCBuYSBwb3XFvml0w61cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHZ5cMOtxaFlIHZlIHN0cm9qb3bEmyB6cHJhY292YXRlbG7DqSBwb2RvYsSbIG5hbcOtc3RvIGxpZHNreSAiCisixI1pdGVsbsOpXG4iCisiICAtcywgLS1zeXNyb290ICBwb3XFvmlqZSBhZHJlc8OhxZkgamFrbyBrb8WZZW4gbm92w6lobyBzeXN0w6ltdVxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgImNoeWJhOiB6bcSbbmEgcHJhY292bsOtaG8gYWRyZXPDocWZZSBkbyAlcy4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzcKK21zZ2lkICJ1c2FnZTogcmRldiBbIC1ydiBdIFsgLW8gT0ZGU0VUIF0gWyBJTUFHRSBbIFZBTFVFIFsgT0ZGU0VUIF0gXSBdIgorbXNnc3RyICJQb3XFvml0w606IHJkZXYgWyAtcnYgXSBbIC1vIFBPU1VOIF0gWyBPQlJBWiBbIEhPRE5PVEEgWyBQT1NVTiBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAgKMSNaSByZGV2IC9saW51eCwgZXRjLikgdnlww63FoWUgYWt0dcOhbG7DrSBST09UIHphxZnDrXplbsOtIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc5Cittc2dpZCAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHNldHMgUk9PVCB0byAvZGV2L2hkYTIiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBuYXN0YXbDrSBST09UIG5hIC9kZXYvaGRhMiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiIgorIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBuYXN0YXbDrSBQxZjDjVpOQUtZIFJPT1QgKHBvdXplIHBybyDEjXRlbsOtKSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MQorbXNnaWQgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBzZXQgdGhlIFJBTURJU0sgc2l6ZSIKK21zZ3N0ciAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIG5hc3RhdsOtIHZlbGlrb3N0IFJBTURJU0tVIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgyCittc2dpZCAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgYm9vdHVwIFZJREVPTU9ERSIKK21zZ3N0ciAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIG5hc3RhdsOtIHN0YXJ0b3ZhY8OtIFZJREVPTcOTRCIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICBwb3N1biB2IGJhanRlY2giCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODQKK21zZ2lkICIgIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1SIgorbXNnc3RyICIgIHJvb3QgcMWZw616bmFreSAuLi4gICAgICAgICAgICAgICBzdGVqbsOpIGpha28gcmRldiAtUiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NQorbXNnaWQgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXIiCittc2dzdHIgIiAgdmVsaWtvc3QgcmFtIC4uLiAgICAgICAgICAgICAgICBzdGVqbsOpIGpha28gcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbcOzZCAuLi4gICAgICAgICAgICAgICAgICAgICAgc3Rlam7DqSBqYWtvIHJkZXYgLXYiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODcKK21zZ2lkICIiCisiTm90ZTogdmlkZW8gbW9kZXMgYXJlOiAtMz1Bc2ssIC0yPUV4dGVuZGVkLCAtMT1Ob3JtYWxWZ2EsIDE9a2V5MSwgMj1rZXkyLC4uLiIKK21zZ3N0ciAiIgorIlBvem7DoW1rYTogdmlkZW8gbcOzZHk6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rbMOhdjEsIDI9a2zDoXYyLC4uLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4OAorbXNnaWQgIiAgICAgIHVzZSAtUiAxIHRvIG1vdW50IHJvb3QgcmVhZG9ubHksIC1SIDAgZm9yIHJlYWQvd3JpdGUuIgorbXNnc3RyICIgICAgICAgICAgUG9tb2PDrSAtUiAxIHDFmWlwb2rDrXRlIHBvdXplIHBybyDEjXRlbsOtLCAtUiAwIHVtb8W+bsOtIHrDoXBpcy4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAiY2h5YsOtIMSNw6Fya2EiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjcyIHRleHQtdXRpbHMvbW9yZS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICJuZWRvc3RhdGVrIHBhbcSbdGkiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiBcIiVzIFtvcHRpb25zXVxuIgorIlx0IC1tIDxtYXBmaWxlPiAgKGRlZmF1bHRzOiBcIiVzXCIgYW5kXG4iCisiXHRcdFx0XHQgIFwiJXNcIilcbiIKKyJcdCAtcCA8cHJvLWZpbGU+IChkZWZhdWx0OiBcIiVzXCIpXG4iCisiXHQgLU0gPG11bHQ+ICAgICBzZXQgdGhlIHByb2ZpbGluZyBtdWx0aXBsaWVyIHRvIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICAgcHJpbnQgb25seSBpbmZvIGFib3V0IHRoZSBzYW1wbGluZyBzdGVwXG4iCisiXHQgLXYgICAgICAgICAgICBwcmludCB2ZXJib3NlIGRhdGFcbiIKKyJcdCAtYSAgICAgICAgICAgIHByaW50IGFsbCBzeW1ib2xzLCBldmVuIGlmIGNvdW50IGlzIDBcbiIKKyJcdCAtYiAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgaGlzdG9ncmFtLWJpbiBjb3VudHNcbiIKKyJcdCAtcyAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgY291bnRlcnMgd2l0aGluIGZ1bmN0aW9uc1xuIgorIlx0IC1yICAgICAgICAgICAgcmVzZXQgYWxsIHRoZSBjb3VudGVycyAocm9vdCBvbmx5KVxuIgorIlx0IC1uICAgICAgICAgICAgZGlzYWJsZSBieXRlIG9yZGVyIGF1dG8tZGV0ZWN0aW9uXG4iCisiXHQgLVYgICAgICAgICAgICBwcmludCB2ZXJzaW9uIGFuZCBleGl0XG4iCittc2dzdHIgIiIKKyIlczogUG91xb5pdMOtOiBcIiVzIFtWT0xCWV1cbiIKKyJcdCAtbSA8TUFQU09VQk9SPiAgKGltcGxpY2l0bsOtOiDigJ4lc+KAnCBhXG4iCisiXHRcdFx0XHQgIOKAniVz4oCcKVxuIgorIlx0IC1wIDxQUk8tU09VQk9SPiAoaW1wbGljaXRuw606IOKAniVz4oCcKVxuIgorIlx0IC1NIDxIT0ROT1RBPiAgbmFzdGF2w60gSE9ETk9UVSBwcm9maWxvdmFjw61obyBtdWx0aXBsaWvDoXRvcnVcbiIKKyJcdCAtaSAgICAgICAgICAgIHZ5cMOtxaFlIHBvdXplIGluZm9ybWFjZSBvwqBwcm9maWxvdmFjw61tIGtyb2t1XG4iCisiXHQgLXYgICAgICAgICAgICB2eXDDrcWhZSBwb2Ryb2Juw6kgaW5mb3JtYWNlXG4iCisiXHQgLWEgICAgICAgICAgICB2eXDDrcWhZSB2ZcWha2Vyw6kgc3ltYm9seSBpIHBva3VkIGplIGhvZG5vdGEgxI3DrXRhxI1lIDBcbiIKKyJcdCAtYiAgICAgICAgICAgIHZ5cMOtxaFlIGplZG5vdGxpdsOpIGhpc3RvZ3JhbS1iaW4gxI3DrXRhxI1lXG4iCisiXHQgLXMgICAgICAgICAgICB2eXDDrcWhZSBqZWRub3RsaXbDqSDEjcOtdGHEjWUgdXZuaXTFmSBmdW5rY8OtXG4iCisiXHQgLXIgICAgICAgICAgICB2eW51bHVqZSB2ZcWha2Vyw6kgxI3DrXRhxI1lIChwb3V6ZSByb290KVxuIgorIlx0IC1uICAgICAgICAgICAgemFrw6HFvmUgYXV0b2RldGVrY2kgcG/FmWFkw60gYnl0xa9cbiIKKyJcdCAtViAgICAgICAgICAgIHZ5cMOtxaFlIGluZm9ybWFjZSBvIHZlcnppIGEgc2tvbsSNw61cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJyZWFkcHJvZmlsZTogY2h5YmEgcMWZaSB6w6FwaXN1ICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgcmV2ZXJzZWQgYnl0ZSBvcmRlci4gVXNlIC1uIHRvIGZvcmNlIG5hdGl2ZSBieXRlIG9yZGVyLlxuIgorbXNnc3RyICIiCisiUMWZZWRwb2tsw6Fkw6FtIG9wYcSNbsOpIHBvxZlhZMOtIGJhanTFry4gU3lzdMOpbW92w6kgcG/FmWFkw60gbHplIHZ5bnV0aXQgcG9tb2PDrSAtbi5cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6Mjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCittc2dzdHIgIlByb2ZpbG92YWPDrV9rcm9rOiAlaVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMDUgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyglaSk6IHdyb25nIG1hcCBsaW5lXG4iCittc2dzdHIgIiVzOiAlcyglaSk6IGNoeWJuw70gbWFwIMWZw6FkZWtcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIFwiX3N0ZXh0XCIgaW4gJXNcbiIKK21zZ3N0ciAiJXM6IFwiX3N0ZXh0XCIgbmVsemUgdiAlcyBuYWzDqXp0XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcHJvZmlsZSBhZGRyZXNzIG91dCBvZiByYW5nZS4gV3JvbmcgbWFwIGZpbGU/XG4iCittc2dzdHIgIiVzOiBhZHJlc2EgcHJvZmlsdSBqZSBtaW1vIHJvenNhaC4gQ2h5Ym7DvSBtYXBvdmFjw60gc291Ym9yP1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo0MTIKK21zZ2lkICJ0b3RhbCIKK21zZ3N0ciAiY2Vsa2VtIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSBbLXB8LS1waWRdIHBpZCAgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtZ3wtLXBncnAgcGdycCBbLi4uIHBncnBdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtdXwtLXVzZXIgdXNlciBbLi4uIHVzZXJdXG4iCisiIHJlbmljZSAtaCB8IC0taGVscFxuIgorIiByZW5pY2UgLXYgfCAtLXZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBvdcW+aXTDrTpcbiIKKyIgcmVuaWNlIFstbl0gUFJJT1JJVEEgWy1wfC0tcGlkXSBQSUQgW+KApiBQSURdXG4iCisiIHJlbmljZSBbLW5dIFBSSU9SSVRBICAtZ3wtLXBncnAgUEdSUCBb4oCmIFBHUlBdXG4iCisiIHJlbmljZSBbLW5dIFBSSU9SSVRBICAtdXwtLXVzZXIgVcW9SVZBVEVMIFvigKYgVcW9SVZBVEVMXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICJyZW5pY2UgesKgICVzXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogdW5rbm93biB1c2VyXG4iCittc2dzdHIgInJlbmljZTogJXM6IG5lem7DoW3DvSB1xb5pdmF0ZWxcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEzNAorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAicmVuaWNlOiAlczogY2h5Ym7DoSBob2Rub3RhXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6IHDFr3ZvZG7DrSBwcmlvcml0YSAlZCwgbm92w6EgcHJpb3JpdGEgJWRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisiUG91xb5pdMOtOiAlcyBbUMWYRVDDjU5BxIxFXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxaQcWYw41aRU7DjT4gIHZ5YmVyZSBSVEMgemHFmcOtemVuw60gKHJ0YzB8cnRjMXzigKYpXG4iCisiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIGLEm8W+w60gdsKgbcOtc3Ruw61tIMSNYXNlXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgcmXFvmltIHNww6Fua3Ugc3RhbmRieXxtZW184oCmXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxTRUtVTkQ+ICAga29saWsgc2VrdW5kIGJ1ZGUgc3DDoXRcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICDEjWFzIHByb2J1emVuw61cbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBSVEMgYsSbxb7DrSB2wqBVVENcbiIKKyIgICAgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICBwb2Ryb2Juw6kgenByw6F2eVxuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHpvYnJheml0IHZlcnppXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAixI10ZW7DrSBob2RpbiBSVEMiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQ3Cittc2dpZCAicmVhZCBzeXN0ZW0gdGltZSIKK21zZ3N0ciAixI10ZW7DrSBzeXN0w6ltb3bDvWNoIGhvZGluIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE2NQorbXNnaWQgImNvbnZlcnQgcnRjIHRpbWUiCittc2dzdHIgImtvbnZlcnplIMSNYXN1IFJUQyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjQKK21zZ2lkICJzZXQgcnRjIGFsYXJtIgorbXNnc3RyICJuYXN0YXZlbsOtIGJ1ZMOta3UgUlRDIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyOAorbXNnaWQgImVuYWJsZSBydGMgYWxhcm0iCittc2dzdHIgInphcG51dMOtIGJ1ZMOta3UgUlRDIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIzMgorbXNnaWQgInNldCBydGMgd2FrZSBhbGFybSIKK21zZ3N0ciAibmFzdGF2ZW7DrSBidWTDrWt1IFJUQyBwcm8gcHJvYnV6ZW7DrSIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVucmVjb2duaXplZCBzdXNwZW5kIHN0YXRlICclcydcbiIKK21zZ3N0ciAiJXM6IG5lcm96cG96bmFuw70gc3RhdiB1c3DDoW7DrSDigJ4lc+KAnFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBpbnRlcnZhbCAlcyBzZWNvbmRzXG4iCittc2dzdHIgIiVzOiBuZXBvdm9sZW7DvSBpbnRlcnZhbCAlcyBzZWt1bmRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiAlcyBuZW7DrSBwb3ZvbGVuw6EgaG9kbm90YSB0aW1lX3RcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHZlcnNpb24gJXNcbiIKK21zZ3N0ciAiJXM6IHZlcnplICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhc3N1bWluZyBSVEMgdXNlcyBVVEMgLi4uXG4iCittc2dzdHIgIiVzOuKAr3DFmWVkcG9rbMOhZMOhbSwgxb5lIGhvZGlueSByZcOhbG7DqWhvIMSNYXN1IGLEm8W+w60gdsKgVVRD4oCmXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIFVUQyB0aW1lLlxuIgorbXNnc3RyICJQb3XFvsOtdsOhbSBVVEMgxI1hcy5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgbG9jYWwgdGltZS5cbiIKK21zZ3N0ciAiUG91xb7DrXbDoW0gbcOtc3Ruw60gxI1hcy5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG11c3QgcHJvdmlkZSB3YWtlIHRpbWVcbiIKK21zZ3N0ciAiJXM6IGplIG5lemJ5dG7DqSB1dsOpc3QgZG9idSBwcm9idXplbsOtXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3Cittc2dpZCAibWFsbG9jKCkgZmFpbGVkIgorbXNnc3RyICJ2b2zDoW7DrSBtYWxsb2MoKSBzZWxoYWxvIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGVuYWJsZWQgZm9yIHdha2V1cCBldmVudHNcbiIKK21zZ3N0ciAiJXM6ICVzIG5ldW3DrSB6cHJhY292YXQgcHJvYm91emVjw60gdWTDoWxvc3RpXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAiYnVkw61rICVsZCwgc3lzdMOpbW92w71fxI1hcyAlbGQsIHJlw6FsbsO9X8SNYXMgJWxkLCBzZWt1bmQgJXVcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIlczogaG9kaW55IG5lZG9qZG91IHBvenDDoXRrdSBuYSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIiVzOiBwcm9idXplbsOtIHrCoOKAniVz4oCcIHphIHBvdcW+aXTDrSAlcyB2wqAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIGV4ZWN1dGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiAlcyBuZWx6ZSBzcHVzdGl0OiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ5NgorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICJvZGXEjXRlbsOtIGhvZGluIHJlw6FsbsOpaG8gxI1hc3UiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NTA1Cittc2dpZCAiZGlzYWJsZSBydGMgYWxhcm0gaW50ZXJydXB0IgorbXNnc3RyICJ6YWvDoXrDoW7DrSBwxZllcnXFoWVuw60gYnVkw61rdSBob2RpbiByZcOhbG7DqWhvIMSNYXN1IgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGluZyBvbiAlcy5cbiIKK21zZ3N0ciAiWmFww61uw6FtICVzLlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzJXMgW29wdGlvbnNdIFtwcm9ncmFtIFtwcm9ncmFtIGFyZ3VtZW50c11dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlBvdcW+aXTDrTrigK8lcyVzIFtQxZhFUMONTkHEjEVdIFtQUk9HUkFNIFtBUkdVTUVOVFlfUFJPR1JBTVVdXVxuIgorIlxuIgorIlDFmWVww61uYcSNZTpcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgICB2eXDDrcWhZSB0ZXh0IHTDqXRvIG7DoXBvdsSbZHlcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHZ5cGlzdWplLCBrdGVyw6kgdm9sYnkganNvdSB6YXDDrW7DoW55XG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplICB2eXBuZSB6bsOhaG9kbsSbbsOtIHByb3N0b3J1IHZpcnR1w6FsbsOtY2ggYWRyZXNcbiIKKyIgLUYsIC0tZmRwaWMtZnVuY3B0cnMgICAgIHXEjWluw60gdWthemF0ZWxlIGZ1bmtjw60gdWthenVqw61jw60gbmEgZGVza3JpcHRvcnlcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHphcG5lIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCB6bcSbbsOtIHpwxa9zb2IsIGpha8O9bSBqZSB2aXJ0dcOhbG7DrSBwYW3Em8WlICIKKyJwxZlpZMSbbG92w6FuYVxuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgemFwbmUgUkVBRF9JTVBMSUVTX0VYRUNcbiIKKyIgLUIsIC0tMzJiaXQgICAgICAgICAgICAgIHphcG5lIEFERFJfTElNSVRfMzJCSVRcbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgIHphcG5lIFNIT1JUX0lOT0RFXG4iCisiIC1TLCAtLXdob2xlLXNlY29uZHMgICAgICB6YXBuZSBXSE9MRV9TRUNPTkRTXG4iCisiIC1ULCAtLXN0aWNreS10aW1lb3V0cyAgICB6YXBuZSBTVElDS1lfVElNRU9VVFNcbiIKKyIgLTMsIC0tM2diICAgICAgICAgICAgICAgIG9tZXrDrSBwb3XFvml0w70gYWRyZXNuw60gcHJvc3RvciBocmFuaWPDrSAz4oCvR0JcbiIKKyIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGlnbm9yb3bDoW5vIChqZW4gcHJvIHpwxJt0bm91IGtvbXBhdGliaWxpdHUpXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgc2V0YXJjaCg4KS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlbDrWNlIGluZm9ybWFjw60gbmFsZXpuZXRlIHbCoHNldGFyY2goOCkuXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJXNcbiIKKyJUcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyIlczogJXNcbiIKKyJWw61jZSBpbmZvcm1hY8OtIHrDrXNrw6F0ZSBwxZnDrWthemVtIOKAniVzIC0taGVscOKAnC5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyMTUgc3lzLXV0aWxzL3NldGFyY2guYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVucmVjb2duaXplZCBhcmNoaXRlY3R1cmUiCittc2dzdHIgIiAlczogTmVyb3pwb3puYW7DoSBhcmNoaXRla3R1cmEiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIk3DoWxvIGFyZ3VtZW50xa8iCisKKyMgcGVyc29uYWxpdHkg4oCTwqBjaGFyYWt0ZXJpc3Rpa2EgYXJjaGl0ZWt0dXJ5CisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gc2V0IHBlcnNvbmFsaXR5IHRvICVzIgorbXNnc3RyICJTZWxoYWxvIG5hc3RhdmVuw60gY2hhcmFrdGVyaXN0aWt5IGFyY2hpdGVrdHVyeSBuYSAlcyIKKworIzogc3lzLXV0aWxzL3NldHNpZC5jOjI2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBwcm9ncmFtIFthcmcgLi4uXVxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFBST0dSQU0gW0FSR1VNRU5U4oCmXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyA8ZGV2aWNlPiBbIC1pIDxJUlE+IHwgLXQgPFRJTUU+IHwgLWMgPENIQVJTPiB8IC13IDxXQUlUPiB8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorIlBvdcW+aXTDrTogJXMgPHphxZnDrXplbsOtPiBbIC1pIDxJUlE+IHwgLXQgPMSMQVM+IHwgLWMgPFpOQUtZPiB8IC13IDzEjEVLw4FOw40+IHwgXG4iCisiICAgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8XG4iCisiICAgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6OTEKK21zZ2lkICJtYWxsb2MgZXJyb3IiCittc2dzdHIgImNoeWJhIG1hbGxvYyIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiVzOiBjaHlibsOhIGhvZG5vdGFcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIKK21zZ3N0ciAiJXM6ICVzIG5lbsOtIGxwIHphxZnDrXplbsOtbVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN0YXR1cyBpcyAlZCIKK21zZ3N0ciAic3RhdHVzICVzIGplICVkIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgYnVzeSIKK21zZ3N0ciAiLCB6YW5lcHLDoXpkbsSbbmEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCBwxZlpcHJhdmVuYSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG91dCBvZiBwYXBlciIKK21zZ3N0ciAiLCBkb8WhZWwgcGFww61yIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb24tbGluZSIKK21zZ3N0ciAiLCB6YXBudXRhIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZXJyb3IiCittc2dzdHIgIiwgY2h5YmEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAiY2h5YmEgTFBHRVRJUlEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgSVJRICVkXG4iCittc2dzdHIgIiVzIHBvdcW+w612w6EgSVJRICVkXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgcG9sbGluZ1xuIgorbXNnc3RyICIlcyBwb3XFvsOtdsOhIHBvbGxcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIDxwcm9ncmFtPiBbYXJncy4uLl1cbiIKK21zZ3N0ciAiUG91xb5pdMOtOiAlcyBbUMWYRVDDjU5BxIxFXSA8UFJPR1JBTT4gW0FSR1VNRU5U4oCmXVxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjYwCittc2dpZCAiIgorIlJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB1c2FnZSBpbmZvcm1hdGlvbiAodGhpcylcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgbW91bnRzIG5hbWVzcGFjZVxuIgorIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIFN5c3RlbSBWIElQQyBuYW1lc3BhY2VcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIHVuc2hhcmUgbmV0d29yayBuYW1lc3BhY2VcbiIKK21zZ3N0ciAiIgorIlNwdXN0w60gcHJvZ3JhbSBzwqBuxJtrdGVyw71taSBqbWVubsO9bWkgcHJvc3Rvcnkgb2RkxJtsZW7DvW1pIG9kIHJvZGnEjWVcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIG7DoXZvZCBuYSBwb3XFvml0w60gKHRlbnRvKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgb2RkxJtsw60gam1lbm7DvSBwcm9zdG9yIHDFmcOtcG9qbsO9Y2ggYm9kxa9cbiIKKyIgIC11LCAtLXV0cyAgICAgICAgIG9kZMSbbMOtIGptZW5uw70gcHJvc3RvciBVVFMgKG7DoXpldiBzdHJvamUgYXRkLilcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIG9kZMSbbMOtIGptZW5uw70gcHJvc3RvciBTeXN0ZW0gViBJUENcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIG9kZMSbbMOtIHPDrcWlb3bDvSBqbWVubsO9IHByb3N0b3JcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHVuc2hhcmUoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWw61jZSBpbmZvcm1hY8OtIG5hbGV6bmV0ZSB2wqB1bnNoYXJlKDEpLlxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExNAorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICJ2b2zDoW7DrSB1bnNoYXJlIHNlbGhhbG8iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJzcHXFoXTEm27DrSAlIHNlbGhhbG8iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogYmFkIC1sIGFyZ3VtZW50ICVzLlxuIgorbXNnc3RyICJjb2w6IGNoeWJuw70gYXJndW1lbnQgJXMgcHJvIHDFmWVww61uYcSNIC1sXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmVdXG4iCittc2dzdHIgIlBvdcW+aXTDrTogY29sIFstYmZweF0gWy1sIHBvxI0uIMWZw6Fka8WvXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdyaXRlIGVycm9yLlxuIgorbXNnc3RyICJjb2w6IGNoeWJhIHDFmWkgdWtsw6Fkw6Fuw61cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6IHZhcm92w6Fuw606ICVzIG5lbHplIHphesOhbG9ob3ZhdC5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICJwYXN0IGZpcnN0IGxpbmUiCittc2dzdHIgImpzZW0gemEgcHJ2bsOtbSDFmcOhZGtlbSIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0gxZnDoWRlayBqacW+IG5lbsOtIHYgYnVmcnUiCisKKyM6IHRleHQtdXRpbHMvY29sY3J0LmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLSBdIFsgLTIgXSBbIGZpbGUgLi4uIF1cbiIKK21zZ3N0ciAiUG91xb5pdMOtOiAlcyBbIC0gXSBbIC0yIF0gWyBzb3Vib3IgLi4uIF1cbiIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzoyOTcKK21zZ2lkICJsaW5lIHRvbyBsb25nIgorbXNnc3RyICLFmcOhZGVrIGplIHDFmcOtbGnFoSBkbG91aMO9IgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjM3NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sdW1uIFstdHhdIFstYyBjb2x1bW5zXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIlBvdcW+aXTDrTogY29sdW1uIFstdHhdIFstYyBTTE9VUENFXSBbU09VQk9S4oCmXVxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBsZW5ndGggdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IGNoeWJuw6EgZMOpbGthXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IGNoeWJuw6Egdnpkw6FsZW5vc3RcbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgRk1UXSBbLWYgRk1UX1NPVUJPUl0gWy1uIETDiUxLQV0gWy1zIFZaRMOBTEVOT1NUXSAiCisiW1NPVUJPUuKApl1cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgIlBvdcW+aXTDrTogJXMgWy1kZmxwY3N1XSBbK8SMw41TTE9fxZjDgURLVSB8ICsvVlpPUkVLXSBOw4FaRVYxIE7DgVpFVjLigKZcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBpbml0aWFsaXplIGxpbmUgYnVmZmVyXG4iCittc2dzdHIgIsWZw6Fka292w70gYnVmZmVyIHNlIG5lcG9kYcWZaWxvIGluaWNpYWxpem92YXRcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIG9wdGlvbiBcIi0lY1wiXG4iCittc2dzdHIgIiVzOiBuZXpuw6Ftw6Egdm9sYmEg4oCeLSVj4oCcXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjUxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqICVzOiBkaXJlY3RvcnkgKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKiogJXMgamUgYWRyZXPDocWZICoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKioqKioqICVzOiBOb3QgYSB0ZXh0IGZpbGUgKioqKioqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKioqICVzIG5lbsOtIHRleHRvdsO9bSBzb3Vib3JlbSAqKioqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo2NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1VzZSBxIG9yIFEgdG8gcXVpdF0iCittc2dzdHIgIltTdGlza27Em3RlIHEgxI1pIFEgcHJvIHVrb27EjWVuw61dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1Nb3JlLS0iCittc2dzdHIgIi0tUG9rcmHEjW92w6Fuw60tLSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIihOZXh0IGZpbGU6ICVzKSIKK21zZ3N0ciAiKERhbMWhw60gc291Ym9yOiAlcykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIltTdGlza27Em3RlIG1lemVybsOtayBwcm8gcG9rcmHEjW92w6Fuw60sICdxJyBwcm8gdWtvbsSNZW7DrS5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmJhY2sgJWQgcGFnZXMiCittc2dzdHIgIuKApnDFmWVza2FrdWppIHpwxJt0IG/CoHBvxI1ldCBzdHJhbjogJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAi4oCmcMWZZXNrYWt1amkgenDEm3QgbyAxIHN0cmFudSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICLigKVwxZllc2tha3VqaSBvwqBqZWRlbiDFmcOhZGVrIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICLigKZwxZllc2tha3VqaSBvwqBwb8SNZXQgxZnDoWRrxa86ICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjkwCittc2dpZCAiIgorIlxuIgorIioqKkJhY2sqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKlpwxJt0KioqXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMjgKK21zZ2lkICIiCisiXG4iCisiTW9zdCBjb21tYW5kcyBvcHRpb25hbGx5IHByZWNlZGVkIGJ5IGludGVnZXIgYXJndW1lbnQgay4gIERlZmF1bHRzIGluICIKKyJicmFja2V0cy5cbiIKKyJTdGFyICgqKSBpbmRpY2F0ZXMgYXJndW1lbnQgYmVjb21lcyBuZXcgZGVmYXVsdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlbEm3TFoWluxJsgcMWZw61rYXrFryBtxa/FvmUgamFrbyBhcmd1bWVudCBwxZllZGNow6F6ZXQgY2Vsw6kgxI3DrXNsbyBrLiBJbXBsaWNpdG7DrSAiCisiaG9kbm90eVxuIgorImpzb3UgdiBocmFuYXTDvWNoIHrDoXZvcmvDoWNoLiBIdsSbemRpxI1rYSAoKikgem5hbWVuw6EsIMW+ZSBob2Rub3RhIGFyZ3VtZW50dSBzZVxuIgorInN0YW5lIGltcGxpY2l0bsOtLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzM1Cittc2dpZCAiIgorIjxzcGFjZT4gICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdXG4iCisieiAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV0qXG4iCisiPHJldHVybj4gICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbMV0qXG4iCisiZCBvciBjdHJsLUQgICAgICAgICAgICAgU2Nyb2xsIGsgbGluZXMgW2N1cnJlbnQgc2Nyb2xsIHNpemUsIGluaXRpYWxseSAxMV0qXG4iCisicSBvciBRIG9yIDxpbnRlcnJ1cHQ+ICAgRXhpdCBmcm9tIG1vcmVcbiIKKyJzICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBsaW5lcyBvZiB0ZXh0IFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyJiIG9yIGN0cmwtQiAgICAgICAgICAgICBTa2lwIGJhY2t3YXJkcyBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyInICAgICAgICAgICAgICAgICAgICAgICBHbyB0byBwbGFjZSB3aGVyZSBwcmV2aW91cyBzZWFyY2ggc3RhcnRlZFxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBsaW5lIG51bWJlclxuIgorIi88cmVndWxhciBleHByZXNzaW9uPiAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgcmVndWxhciBleHByZXNzaW9uIFsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgbGFzdCByLmUgWzFdXG4iCisiITxjbWQ+IG9yIDohPGNtZD4gICAgICAgRXhlY3V0ZSA8Y21kPiBpbiBhIHN1YnNoZWxsXG4iCisidiAgICAgICAgICAgICAgICAgICAgICAgU3RhcnQgdXAgL3Vzci9iaW4vdmkgYXQgY3VycmVudCBsaW5lXG4iCisiY3RybC1MICAgICAgICAgICAgICAgICAgUmVkcmF3IHNjcmVlblxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBuZXh0IGZpbGUgWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIHByZXZpb3VzIGZpbGUgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXJcbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICBSZXBlYXQgcHJldmlvdXMgY29tbWFuZFxuIgorbXNnc3RyICIiCisiPG1lemVybsOtaz4gICAgICAgICAgICAgIFpvYnJhesOtIGRhbMWhw61jaCBrIMWZw6Fka8WvIHRleHR1LiBbYWt0dcOhbG7DrSB2ZWxpa29zdFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgIG9icmF6b3ZreV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBab2JyYXrDrSBkYWzFocOtY2ggayDFmcOhZGvFryB0ZXh0dS4gW2FrdHXDoWxuw60gdmVsaWtvc3RcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICBvYnJhem92a3ldKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIFpvYnJhesOtIGRhbMWhw61jaCBrIMWZw6Fka8WvIHRleHR1LiBbMV0qXG4iCisiZCDEjWkgY3RybC1EICAgICAgICAgICAgIFBvc3VuIG8gayDFmcOhZGvFryBbYWt0dcOhbG7DrSB2ZWxpa29zdCBwb3N1bnUsIHBvICIKKyJzcHXFoXTEm27DrVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgIDExXSpcbiIKKyJxIMSNaSBRIMSNaSA8aW50ZXJydXB0PiAgIFVrb27EjWVuw60gcHJvZ3JhbXVcbiIKKyJzICAgICAgICAgICAgICAgICAgICAgICBQb3N1biB2cMWZZWQgbyBrIMWZw6Fka8WvIFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFBvc3VuIHZwxZllZCBvIGsgc3RyYW4gWzFdXG4iCisiYiDEjWkgY3RybC1CICAgICAgICAgICAgIFBvc3VuIHZ6YWQgbyBrIHN0cmFuIFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIFDFmWVza2/EjcOtIG5hIG3DrXN0bywga2RlIGJ5bG8gemFow6FqZW5vIHDFmWVkY2hvesOtICIKKyJobGVkw6Fuw61cbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBab2JyYXrDrSDEjcOtc2xvIGFrdHXDoWxuw61obyDFmcOhZGt1XG4iCisiLzxyZWd1bMOhcm7DrSB2w71yYXo+ICAgICAgSGxlZMOhIGsuIHbDvXNreXQgcmVndWzDoXJuw61obyB2w71yYXp1IFsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgIEhsZWTDoSBrLiB2w71yYXp1IHBvc2xlZG7DrWhvIHJlZ3Vsw6FybsOtaG8gdsO9cmF6dSBbMV1cbiIKKyIhPHDFmcOta2F6PiDEjWkgOiE8cMWZw61rYXo+IFNwdXN0w60gPHDFmcOta2F6PiB2IHBvZHNoZWxsdVxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFNwdXN0w60gL3Vzci9iaW4vdmkgbmEgYWt0dcOhbG7DrW0gxZnDoWRrdVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFDFmWVrcmVzbMOtIG9icmF6b3ZrdVxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIFDFmWVza2/EjcOtIG5hIGsuIG7DoXNsZWR1asOtY8OtIHNvdWJvciBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBQxZllc2tvxI3DrSBuYSBrLiBwxZllZGNow6F6ZWrDrWPDrSBzb3Vib3IgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgVnlww63FoWUgam3DqW5vIGFrdHXDoWxuw61obyBzb3Vib3J1IGEgxI3DrXNsbyBha3R1w6FsbsOtaG8gIgorIsWZw6Fka3VcbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICBab3Bha3VqZSBwxZllZGNow6F6ZWrDrWPDrSBwxZnDrWthelxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIltTdGlza27Em3RlIOKAnmjigJwgcHJvIG7DoXBvdsSbZHUuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0MworIywgYy1mb3JtYXQKK21zZ2lkICJcIiVzXCIgbGluZSAlZCIKK21zZ3N0ciAiXCIlc1wiIMWZw6FkZWsgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW05vdCBhIGZpbGVdIGxpbmUgJWQiCittc2dzdHIgIltOZWplZG7DoSBzZSBvIHNvdWJvcl0gxZnDoWRlayAlZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTUyOQorbXNnaWQgIiAgT3ZlcmZsb3dcbiIKK21zZ3N0ciAiICBQxZlldGXEjWVuw61cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTU3NgorbXNnaWQgIi4uLnNraXBwaW5nXG4iCittc2dzdHIgIuKApnZ5bmVjaMOhdsOhbVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICJDaHliYSB2IHJlZ3Vsw6FybsOtbSB2w71yYXp1IgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjEzCittc2dpZCAiIgorIlxuIgorIlBhdHRlcm4gbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWem9yZWsgbmVieWwgbmFsZXplblxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjE2IHRleHQtdXRpbHMvcGcuYzoxMTI3IHRleHQtdXRpbHMvcGcuYzoxMjc4Cittc2dpZCAiUGF0dGVybiBub3QgZm91bmQiCittc2dzdHIgIlZ6b3JlayBuZWJ5bCBuYWxlemVuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjc3Cittc2dpZCAiY2FuJ3QgZm9ya1xuIgorbXNnc3RyICJ2b2zDoW7DrSBmb3JrIHNlbGhhbG9cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKyJcbiIKKyLigKZWeW5lY2jDoXbDoW0gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIwCittc2dpZCAiLi4uU2tpcHBpbmcgdG8gZmlsZSAiCittc2dzdHIgIuKAplDFmWVjaMOhesOtbSBuYSBzb3Vib3IgIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAi4oCmVnJhY8OtbSBzZSBuYSBzb3Vib3IgIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAixZjDoWRlayBqZSBwxZnDrWxpxaEgZGxvdWjDvSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIk5lZXhpc3R1amUgxb7DoWRuw70gcMWZw61rYXosIGplbsW+IGJ5IGJ5bG8gbW/Fvm5vIG5haHJhZGl0IgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBvZCgxKSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciBoZXhkdW1wKDEpLlxuIgorbXNnc3RyICJvZDogcHJvZ3JhbSBvZCgxKSBqZSB6YXN0YXJhbMO9LCBtw61zdG8gbsSbaiBwb3XFvmlqdGUgaGV4ZHVtcCgxKS5cbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJvZDogaGV4ZHVtcCgxKSBjb21wYXRpYmlsaXR5IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLSVjIG9wdGlvbiVzXG4iCittc2dzdHIgIm9kOiByZcW+aW0ga29tcGF0aWJpbGl0eSBzIGhleGR1bXAoMSkgbmVwb2Rwb3J1amUgLSVjIHZvbGJ1JXNcbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzNAorbXNnaWQgIjsgc2VlIHN0cmluZ3MoMSkuIgorbXNnc3RyICI7IHZpeiBzdHJpbmdzKDEpLiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgImhleGR1bXA6ICVzIG5lbHplIMSNw61zdC5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgImhleGR1bXA6IMWZw6FkZWsgamUgcMWZw61sacWhIGRsb3Vow70uXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogcG/EjWV0IGJhanTFryBzIHbDrWNlIG5lxb4gamVkbsOtbSBrb252ZXJ6bsOtbSB6bmFrZW0uXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBjaHlibsO9IHBvxI1ldCBiYWp0xa8gcHJvIGtvbnZlcnpuw60gem5hayAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiAlJXMgcmVxdWlyZXMgYSBwcmVjaXNpb24gb3IgYSBieXRlIGNvdW50LlxuIgorbXNnc3RyICJoZXhkdW1wOiAlJXMgdnnFvmFkdWplIHV2ZWRlbsOtIHDFmWVzbm9zdGkgxI1pIHBvxI10dSBiYWp0xa8uXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGZvcm1hdCB7JXN9XG4iCittc2dzdHIgImhleGR1bXA6IGNoeWJuw70gZm9ybcOhdCB7JXN9XG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iCittc2dzdHIgImhleGR1bXA6IGNoeWJuw70gem5hayB2IGtvbnZlcnppICUlJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiVsWhZWNobmEgcHLDoXZhIHZ5aHJhemVuYS5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0YXRvIG9icmF6b3ZrYVxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgdWtvbsSNaXQgcHJvZ3JhbVxuIgorIiAgPG5ld2xpbmU+ICAgICAgICAgICAgICAgZGFsxaHDrSBzdHLDoW5rYVxuIgorIiAgZiAgICAgICAgICAgICAgICAgICAgICAgcG9zdW5vdXQgc2Ugb8Kgc3Ryw6Fua3UgdnDFmWVkXG4iCisiICBkIG9yIF5EICAgICAgICAgICAgICAgICBkYWzFocOtIHDFr2xzdHLDoW5rYVxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgZGFsxaHDrSDFmcOhZGVrXG4iCisiICAkICAgICAgICAgICAgICAgICAgICAgICBwb3NsZWRuw60gc3Ryw6Fua2FcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIGhsZWRhdCByZWd1bMOhcm7DrW0gdsO9cmF6ZW0gc23Em3JlbSBkb3DFmWVkdVxuIgorIiAgP3JlZ2V4PyBvciBecmVnZXheICAgICAgaGxlZGF0IHJlZ3Vsw6FybsOtbSB2w71yYXplbSBzbcSbcmVtIGRvemFkdVxuIgorIiAgLiBvciBeTCAgICAgICAgICAgICAgICAgcMWZZWtyZXNsaXQgb2JyYXpvdmt1XG4iCisiICB3IG9yIHogICAgICAgICAgICAgICAgICBuYXN0YXZpdCB2ZWxpa29zdCBzdHLDoW5reSBhIHDFmWVqw610IG5hIGRhbMWhw60gIgorInN0csOhbmt1XG4iCisiICBzIGZpbGVuYW1lICAgICAgICAgICAgICB1bG/Fvml0IHNvdcSNYXNuw70gc291Ym9yIHBvZCBqbcOpbmVtXG4iCisiICAhY29tbWFuZCAgICAgICAgICAgICAgICB1dMOpY3QgZG8gc2hlbGx1XG4iCisiICBwICAgICAgICAgICAgICAgICAgICAgICBwxZllasOtdCBuYSBwxZllZGNob3rDrSBzb3Vib3JcbiIKKyIgIG4gICAgICAgICAgICAgICAgICAgICAgIHDFmWVqw610IG5hIGRhbMWhw60gc291Ym9yXG4iCisiXG4iCisiTW5vaG8gcMWZw61rYXrFryBwxZlpasOtbcOhIHDFmWVkY2jDoXplasOtY8OtIMSNw61zbGEsIG5hIHDFmcOta2xhZDogKzE8bm92w70gxZnDoWRlaz4gIgorIihkYWzFocOtXG4iCisic3Ryw6Fua2EpOyAtMTxub3bDvSDFmcOhZGVrPiAocMWZZWRjaG96w60gc3Ryw6Fua2EpOyAxPG5vdsO9IMWZw6FkZWs+IChwcnZuw60gIgorInN0csOhbmthKS5cbiIKKyJcbiIKKyJQb2Ryb2Jub3N0aSBzZSBsemUgZG96dsSbZMSbdCB6wqBwZygxKS5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMjMKK21zZ2lkICJPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIk5lZG9zdGF0ZWsgcGFtxJt0aVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6ICVzIFstbnVtYmVyXSBbLXAgc3RyaW5nXSBbLWNlZm5yc10gWytsaW5lXSBbKy9wYXR0ZXJuL10gW2ZpbGVzXVxuIgorbXNnc3RyICIiCisiJXM6IFBvdcW+aXTDrTogJXMgWy3EjMONU0xPXSBbLXAgxZhFVMSaWkVDXSBbLWNlZm5yc10gWyvFmMOBREVLXSBbKy9WWk9SRUsvXSAiCisiW1NPVUJPUuKApl1cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjI0NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IC0tICVzXG4iCittc2dzdHIgIiVzOiB2b2xiYSDigJ4lc+KAnCB2ecW+YWR1amUgYXJndW1lbnRcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJXNcbiIKK21zZ3N0ciAiJXM6IG5lcGxhdG7DoSB2b2xiYSAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcwCittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICLigKZza8OhxI11IHZwxZllZFxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcyCittc2dpZCAiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIKK21zZ3N0ciAi4oCmc2vDocSNdSB2emFkXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTQKK21zZ2lkICJObyBuZXh0IGZpbGUiCittc2dzdHIgIsW9w6FkbsO9IG7DoXNsZWR1asOtY8OtIHNvdWJvciIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIsW9w6FkbsO9IHDFmWVkY2hvesOtIHNvdWJvciIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IENoeWJhIMSNdGVuw60gemUgc291Ym9ydSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmV4cGVjdGVkIEVPRiBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBOZW/EjWVrw6F2YW7DoSB6bmHEjWthIGtvbmNlIHNvdWJvcnUgdsKgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBlcnJvciBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBOZXpuw6Ftw6EgY2h5YmEgdsKgc291Ym9ydSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIlczogTmVsemUgdnl0dm/FmWl0IGRvxI1hc27DvSBzb3Vib3JcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwNDQgdGV4dC11dGlscy9wZy5jOjEyMTkgdGV4dC11dGlscy9wZy5jOjEyNDYKK21zZ2lkICJSRSBlcnJvcjogIgorbXNnc3RyICJDaHliYSByZWd1bMOhcm7DrWhvIHbDvXJhenU6ICIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMDEKK21zZ2lkICIoRU9GKSIKK21zZ3N0ciAiKEtPTkVDIFNPVUJPUlUpIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAixb3DoWRuw70gemFwYW1hdG92YW7DvSDFmWV0xJt6ZWMgcHJvIHZ5aGxlZMOhbsOtIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAiTmVsemUgb3RldsWZw610ICIKKworIzogdGV4dC11dGlscy9wZy5jOjEzNTgKK21zZ2lkICJzYXZlZCIKK21zZ3N0ciAidWxvxb5lbm8iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDY1Cittc2dpZCAiOiAhY29tbWFuZCBub3QgYWxsb3dlZCBpbiByZmxhZyBtb2RlLlxuIgorbXNnc3RyICI6ICFwxZnDrWtheiBuZW7DrSBkb3ZvbGVuIHbCoHJlxb5pbXUgcmZsYWcuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDk3Cittc2dpZCAiZm9yaygpIGZhaWxlZCwgdHJ5IGFnYWluIGxhdGVyXG4iCittc2dzdHIgImZvcmsoKSBzZWxoYWwsIHprdXN0ZSB0byBwb3pkxJtqaVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTcwNQorbXNnaWQgIihOZXh0IGZpbGU6ICIKK21zZ3N0ciAiKERhbMWhw60gc291Ym9yOiAiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTEzCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJtw61zdG8gcHJvIGJ1ZmZlciBuZWx6ZSBwxZlpZMSbbGl0IgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiUG91xb5pdMOtOiByZXYgW1NPVUJPUuKApl1cbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjU4IHRleHQtdXRpbHMvdGFpbGYuYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiCittc2dzdHIgIuKAniVz4oCcICBuZWx6ZSBvdGV2xZnDrXQgcHJvIMSNdGVuw60iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo5NiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjE1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IFwiJXNcIiIKK21zZ3N0ciAib8Kg4oCeJXPigJwgbmVsemUgesOtc2thdCBwb2Ryb2Jub3N0aSIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJpbmNvbXBsZXRlIHdyaXRlIHRvIFwiJXNcIiAod3JpdHRlbiAlemQsIGV4cGVjdGVkICV6ZClcbiIKK21zZ3N0ciAibmXDunBsbsO9IHrDoXBpcyBkbyDigJ4lc+KAnCAoemFwc8Ohbm8gJXpkLCBvxI1la8OhdsOhbm8gJXpkKVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2ggKGxpbWl0IG9mIGlub3RpZnkgd2F0Y2hlcyB3YXMgcmVhY2hlZCkuIgorbXNnc3RyICIiCisiJXM6IG5lbHplIHDFmWlkYXQgc2xlZG92w6Fuw60gcG9tb2PDrSBpbm90aWZ5IChwb8SNZXQgc2xlZG92w6Fuw60gaW5vdGlmeSB2ecSNZXJww6FuKS4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaC4iCittc2dzdHIgIiVzOiBuZWx6ZSBwxZlpZGF0IHNsZWRvdsOhbsOtIHBvbW9jw60gaW5vdGZ5LiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiB1ZMOhbG9zdGkgaW5vdGlmeSBuZWx6ZSBwxZllxI3DrXN0IgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKK21zZ2lkICJpbnZhbGlkIG51bWJlciBvZiBsaW5lcyIKK21zZ3N0ciAibmVwbGF0bsO9IHBvxI1ldCDFmcOhZGt1IgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjEwCittc2dpZCAidXNhZ2U6IHRhaWxmIFstbiBOIHwgLU5dIGxvZ2ZpbGUiCittc2dzdHIgIlBvdcW+aXTDrTogdGFpbGYgWy1uIE4gfCAtTl0gU09VQk9SX1NfUFJPVE9LT0xFTSIKKworIzogdGV4dC11dGlscy91bC5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZmlsZS4uLlxuIgorbXNnc3RyICJQb3XFvml0w606ICVzIFstaV0gWy10VEVSTUlOw4FMIF0gU09VQk9S4oCmXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICJjaHliYSBwxZlpIMSNdGVuw60gdGVybWluZm8gZGF0YWLDoXplIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAiTmV6bsOhbcOhIHBvc2xvdXBub3N0IMWZw61kw61jw61jaCB6bmFrxa8gbmEgdnN0dXB1OiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJCdWZmZXIgbmVsemUgbmFhbG9rb3ZhdC5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnB1dCBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJWc3R1cG7DrSDFmcOhZGthIGplIHDFmcOtbGnFoSBkbG91aMOhLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAiTmVkb3N0YXRlayBwYW3Em3RpIHBybyByb3N0b3Vjw60gYnVmZmVyLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWIgU1NaXSBbLXVdIERJU0sgICAgIENoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyN+ICIgICAgICAgZmRpc2sgLWwgWy1iIFNTWl0gWy11XSBESVNLICBMaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorI34gIiAgICAgICBmZGlzayAtcyBQQVJUSVRJT04gICAgICAgICAgIEdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisjfiAiICAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgR2l2ZSBmZGlzayB2ZXJzaW9uXG4iCisjfiAiSGVyZSBESVNLIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRiIG9yIC9kZXYvc2RhXG4iCisjfiAiYW5kIFBBUlRJVElPTiBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYTdcbiIKKyN+ICItdTogZ2l2ZSBTdGFydCBhbmQgRW5kIGluIHNlY3RvciAoaW5zdGVhZCBvZiBjeWxpbmRlcikgdW5pdHNcbiIKKyN+ICItYiAyMDQ4OiAoZm9yIGNlcnRhaW4gTU8gZGlza3MpIHVzZSAyMDQ4LWJ5dGUgc2VjdG9yc1xuIgorI34gbXNnc3RyICIiCisjfiAiUG91xb5pdMOtOiBmZGlzayBbLWIgU1NaXSBbLXVdIERJU0sgICAgIFptxJtuw60gdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdVxuIgorI34gIiAgICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgVnlww63FoWUgdGFidWxrdSByb3pkxJtsZW7DrSBkaXNrdVxuIgorI34gIiAgICAgICAgIGZkaXNrIC1zIE9ERMONTCAgICAgICAgICAgICAgIFZ5cMOtxaFlIHZlbGlrb3N0IGRpc2tvdsOpaG8gb2Rkw61sdVxuIgorI34gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdsKgYmxvY8OtY2hcbiIKKyN+ICIgICAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIFZ5cMOtxaFlIGluZm9ybWFjZSBvIHZlcnppXG4iCisjfiAiRElTSyBqZSBuxJtjbyBqYWtvIC9kZXYvaGRiIMSNaSAvZGV2L3NkYSBhIE9ERMONTCBqZSBuxJtjbyBqYWtvIC9kZXYvaGRhN1xuIgorI34gIi11OiB2cmFjw60gWmHEjcOhdGVrIGEgS29uZWMgdsKgc2VrdG9yZWNoIChtw61zdG8gY3lsaW5kcmVjaClcbiIKKyN+ICItYiAyMDQ4OiAocHJvIG7Em2t0ZXLDqSBNTyBqZWRub3RreSkgcG91xb5pamUgMjA0OGJhanRvdsOpIHNla3RvcnlcbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGRldmljZVxuIgorI34gIkUuZy46IGZkaXNrIC9kZXYvaGRhICAoZm9yIHRoZSBmaXJzdCBJREUgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3NkYyAgKGZvciB0aGUgdGhpcmQgU0NTSSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvZWRhICAoZm9yIHRoZSBmaXJzdCBQUy8yIEVTREkgZHJpdmUpXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9yZC9jMGQwICBvcjogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKGZvciBSQUlEIGRldmljZXMpXG4iCisjfiAiICAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlBvdcW+aXTDrTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIHphxZnDrXplbsOtXG4iCisjfiAiTmFwxZk6IGZkaXNrIC9kZXYvaGRhICAocHJvIHBydm7DrSBJREUgZGlzaylcbiIKKyN+ICIgIMSNaTogZmRpc2sgL2Rldi9zZGMgIChwcm8gdMWZZXTDrSBTQ1NJIGRpc2spXG4iCisjfiAiICDEjWk6IGZkaXNrIC9kZXYvZWRhICAocHJvIHBydm7DrSBQUy8yIEVTREkgZGlzaylcbiIKKyN+ICIgIMSNaTogZmRpc2sgL2Rldi9yZC9jMGQwICDEjWk6IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChwcm8gUkFJRCB6YcWZw616ZW7DrSlcbiIKKyN+ICIgIOKAplxuIgorCisjfiBtc2dpZCAiIgorI34gIlxuIgorI34gIlRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIGZvciB0aGlzIGRpc2sgaXMgc2V0IHRvICVkLlxuIgorI34gIlRoZXJlIGlzIG5vdGhpbmcgd3Jvbmcgd2l0aCB0aGF0LCBidXQgdGhpcyBpcyBsYXJnZXIgdGhhbiAxMDI0LFxuIgorI34gImFuZCBjb3VsZCBpbiBjZXJ0YWluIHNldHVwcyBjYXVzZSBwcm9ibGVtcyB3aXRoOlxuIgorI34gIjEpIHNvZnR3YXJlIHRoYXQgcnVucyBhdCBib290IHRpbWUgKGUuZy4sIG9sZCB2ZXJzaW9ucyBvZiBMSUxPKVxuIgorI34gIjIpIGJvb3RpbmcgYW5kIHBhcnRpdGlvbmluZyBzb2Z0d2FyZSBmcm9tIG90aGVyIE9Tc1xuIgorI34gIiAgIChlLmcuLCBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJcbiIKKyN+ICJQb8SNZXQgY3lsaW5kcsWvIHRvaG90byBkaXNrdSBqZSBuYXN0YXZlbiBuYSAlZC5cbiIKKyN+ICJOYSB0b20gbmVuw60gbmljIMWhcGF0bsOpaG8sIGFsZSBqZWxpa2/FviBqZSB0byB2w61jZSBuZcW+IDEwMjQsXG4iCisjfiAibcWvxb5lIHphIHVyxI1pdMO9Y2ggb2tvbG5vc3TDrSBkb2rDrXQgayBwcm9ibMOpbcWvbTpcbiIKKyN+ICIxKSBzIHByb2dyYW15IHNwb3XFoXTEm27DvW1pIHDFmWkgc3RhcnR1IChuYXDFmS4gc3RhcsOpIHZlcnplIExJTEEpXG4iCisjfiAiMikgcyBwcm9ncmFteSBwcm8gc3Byw6F2dSBkaXNrb3bDvWNoIG9kZMOtbMWvIHogamluw71jaCBPU1xuIgorI34gIiAgIChuYXDFmS4gRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorCisjfiBtc2dpZCAiIgorI34gIldBUk5JTkc6IFRoZSBkZXZpY2UgZG9lcyBub3QgcHJvdmlkZSBjb21wZW5zYXRpb24gKGFsaWdubWVudF9vZmZzZXQpXG4iCisjfiAiZm9yIERPUy1jb21wYXRpYmxlIHBhcnRpdGlvbmluZywgYnV0IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZW5hYmxlZC5cbiIKKyN+ICJVc2UgY29tbWFuZCAnYycgdG8gc3dpdGNoLW9mZiBET1MgbW9kZS5cbiIKKyN+ICJcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlBPWk9SOiBaYcWZw616ZW7DrSBuZXBvc2t5dHVqZSB2eXJvdm7DoW7DrSAoYWxpZ25tZW50X29mZnNldCkgcMWZaSBkxJtsZW7DrSAiCisjfiAiZGlza3VcbiIKKyN+ICJwb2RsZSBET1N1LCBhdsWhYWsgcmXFvmltIGtvbXBhdGliaWxpdHkgc8KgRE9TZW0gamUgemFwbnV0LlxuIgorI34gIlBvdcW+aWp0ZSBwxZnDrWtheiDigJ5j4oCcIG5hIHZ5cG51dMOtIHJlxb5pbXUgRE9TdS5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJXQVJOSU5HOiB0aGUgZGV2aWNlIHByb3ZpZGVzIGFsaWdubWVudF9vZmZzZXQsIGJ1dCB0aGUgb2Zmc2V0IGRvZXMgbm90XG4iCisjfiAibWF0Y2ggd2l0aCBkZXZpY2UgZ2VvbWV0cnkuXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJcbiIKKyN+ICJQT1pPUjogWmHFmcOtemVuw60gcG9za3l0dWplIGFsaWdubWVudF9vZmZzZXQgKHphcm92bsOhdmFjw60gcG9zdW4pLCBhbGUgIgorI34gInBvc3VuXG4iCisjfiAibmVvZHBvdsOtZMOhIGdlb21ldHJpaSB6YcWZw616ZW7DrS5cbiIKKyN+ICJcbiIKKworIyBUT0RPOiBpMThuIHNlY29uZCBhcmd1bWVudAorI34gbXNnaWQgIiVzOiBmb3VuZCAlc3N3YXAgdiVkIHNpZ25hdHVyZSBzdHJpbmcgZm9yICVkIEtpQiBQQUdFX1NJWkVcbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBuYWxlemVuIHBvZHBpcyBvZGtsw6FkYWPDrWhvIHByb3N0b3J1ICVzIHYlZCBwcm/CoCVkS2lCICIKKyN+ICJWRUxJS09TVF9TVFLDgU5LWVxuIgorCisjIEZJWE1FOiBCYWQgbXNnaWQ6IGlmIGlzIHR5cG8KKyN+IG1zZ2lkICJvdXQgaWYgbWVtb3J5IgorI34gbXNnc3RyICJuZWRvc3RhdGVrIHBhbcSbdGkiCisKKyN+IG1zZ2lkICIjIHBhcnRpdGlvbiB0YWJsZSBvZiAlc1xuIgorI34gbXNnc3RyICIjIHRhYnVsa2Egcm96ZMSbbGVuw60gZGlza3UgcHJvICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidW5pdDogc2VjdG9yc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIiCisjfiAiamVkbm90a2E6IHNla3RvcnlcbiIKKyN+ICJcbiIKKworI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICIgemHEjcOhdGVrPSU5bHUiCisKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAiLCB2ZWxpa29zdD0lOWx1IgorCisjfiBtc2dpZCAiLCBib290YWJsZSIKKyN+IG1zZ3N0ciAiLCBzdGFydG92YWPDrSIKKworI34gbXNnaWQgIkNsb2NrIGluIFVUQywgbm90IGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIkhvZGlueSB2wqBVVEMsIG5lem3Em27Em25vLlxuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiBsYWJlbCBvbmx5IHdpdGggdjEgc3dhcCBhcmVhXG4iCisjfiBtc2dzdHIgIiVzOiBjaHliYTogam1lbm92a3UgbHplIHBvdcW+w610IHBvdXplIHXCoHZlcnplIDFcbiIKKworI34gbXNnaWQgImZhdGFsOiBmaXJzdCBwYWdlIHVucmVhZGFibGUiCisjfiBtc2dzdHIgIm9zdWRvdsOhIGNoeWJhOiBwcnZuw60gc3Ryw6Fua2EgamUgbmXEjWl0ZWxuw6EiCisKKyN+IG1zZ2lkICIiCisjfiAiJXM6IERldmljZSAnJXMnIGNvbnRhaW5zIGEgdmFsaWQgU3VuIGRpc2tsYWJlbC5cbiIKKyN+ICJUaGlzIHByb2JhYmx5IG1lYW5zIGNyZWF0aW5nIHYwIHN3YXAgd291bGQgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyN+ICJObyBzd2FwIHdhcyBjcmVhdGVkLiBJZiB5b3UgcmVhbGx5IHdhbnQgdG8gY3JlYXRlIHYwIHN3YXAgb24gdGhhdCAiCisjfiAiZGV2aWNlLFxuIgorI34gInVzZSB0aGUgLWYgb3B0aW9uIHRvIGZvcmNlIGl0LlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6IFphxZnDrXplbsOtIOKAniVz4oCcIG9ic2FodWplIGtvcmVrdG7DrSBTdW4gcG9waXMgZGlza3UuXG4iCisjfiAiVG8gem5hbWVuw6EsIMW+ZSB2eXR2b8WZZW7DrSBvZGtsw6FkYWPDrWhvIHByb3N0b3J1IHYwIGJ5IHByYXZkxJtwb2RvYm7EmyAiCisjfiAiem5pxI1pbG9cbiIKKyN+ICJ0YWJ1bGt1IHJvemTEm2xlbsOtIGRpc2t1LiBPZGtsw6FkYWPDrSBwcm9zdG9yIG5lYnlsIHZ5dHZvxZllbi4gUG9rdWQgb3ByYXZkdVxuIgorI34gImNoY2V0ZSBuYSB0b210byB6YcWZw616ZW7DrSB2eXR2b8WZaXQgb2RrbMOhZGFjw60gcHJvc3RvciB2MCwgdnludcWldGUgc2kgdG9cbiIKKyN+ICJwxZllcMOtbmHEjWVtIC1mLlxuIgorCisjfiBtc2dpZCAibmFtZWk6IHVuYWJsZSB0byBnZXQgY3VycmVudCBkaXJlY3RvcnkgLSAlc1xuIgorI34gbXNnc3RyICJuYW1laTogYWt0dcOhbG7DrSBhZHJlc8OhxZkgbmVsemUgemppc3RpdCAtICVzXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGNoZGlyIHRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICJuYW1laTogZG8gYWRyZXPDocWZZSAlcyBuZWx6ZSBwxZllasOtdCAtICVzICglZClcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3QgY2hkaXIgdG8gcm9vdCFcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGRvIGFkcmVzw6HFmWUgcm9vdCBuZWx6ZSBwxZllasOtdCFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3Qgc3RhdCByb290IVxuIgorI34gbXNnc3RyICJuYW1laTogdm9sw6Fuw60gc3RhdCBwcm8gYWRyZXPDocWZIHJvb3Qgc2VsaGFsbyFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IFDFmWV0ZcSNZW7DrSB2eXJvdm7DoXZhY8OtIHBhbcSbdGlcbiIKKworI34gbXNnaWQgIiA/IGNvdWxkIG5vdCBjaGRpciBpbnRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyBkbyBhZHJlc8OhxZllICVzIG5lbHplIHDFmWVqw610IC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAiID8gcHJvYmxlbXMgcmVhZGluZyBzeW1saW5rICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyBwcm9ibMOpbXkgcMWZaSDEjXRlbsOtIHN5bWJvbGlja8OpaG8gb2RrYXp1ICVzIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAiICAqKiogRVhDRUVERUQgVU5JWCBMSU1JVCBPRiBTWU1MSU5LUyAqKipcbiIKKyN+IG1zZ3N0ciAiICAqKiogUMWYRUtST8SMRU4gVU5JWE9Ww50gTElNSVQgUFJPIFNZTUJPTElDS8OJIE9ES0FaWSAqKipcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmtub3duIGZpbGUgdHlwZSAwJTA2byBvbiBmaWxlICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiB0eXAgMCUwNm8gc291Ym9ydSAlcyBqZSBuZXpuw6Ftw71cbiIKKworI34gbXNnaWQgIm1vdW50OiBnb2luZyB0byBtb3VudCAlcyBieSAlc1xuIgorI34gbXNnc3RyICJtb3VudDogY2h5c3TDoW0gc2UgcMWZaXBvaml0ICVzIHBvZGxlICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogbm8gTEFCRUw9LCBubyBVVUlEPSwgZ29pbmcgdG8gbW91bnQgJXMgYnkgcGF0aFxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IMW+w6FkbsO9IExBQkVMPSwgxb7DoWRuw70gVVVJRD0sIGNoeXN0w6FtIHNlIHDFmWlwb2ppdCAlcyBwb2RsZSBjZXN0eVxuIgorCisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczogc2x1xb5iYSBmb3JrIHNlbGhhbGE6ICVzXG4iCisKKyN+IG1zZ2lkICIlczogd2FpdHBpZDogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IHdhaXRwaWQ6ICVzXG4iCisKKyN+IG1zZ2lkICIlczogY2Fubm90IHN0YXQgJXM6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiBuZWx6ZSB6w61za2F0IGluZm9ybWFjZSBvwqAlczogJXNcbiIKKworI34gbXNnaWQgImNvdWxkIG5vdCB1bW91bnQgJXMgLSB0cnlpbmcgJXMgaW5zdGVhZFxuIgorI34gbXNnc3RyICIlcyBuZWx6ZSBvZHBvaml0IC0gemtvdcWhw61tICVzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEyc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEyc1xuIgorCisjfiBtc2dpZCAiJS04cyAlLTEwcyAlLTI2LjI0cyAlLTI2LjI0c1xuIgorI34gbXNnc3RyICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS04cyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEycyAlLTEyc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEycyAlLTEyc1xuIgorCisjfiBtc2dpZCAiY2FsbGluZyBvcGVuX3R0eVxuIgorI34gbXNnc3RyICJ2b2zDoW0gb3Blbl90dHlcbiIKKworI34gbXNnaWQgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKyN+IG1zZ3N0ciAidm9sw6FtIHRlcm1pb19pbml0XG4iCisKKyN+IG1zZ2lkICJ3cml0aW5nIGluaXQgc3RyaW5nXG4iCisjfiBtc2dzdHIgInphcGlzdWppIGluaWNpYWxpemHEjW7DrSDFmWV0xJt6ZWNcbiIKKworI34gbXNnaWQgImJlZm9yZSBhdXRvYmF1ZFxuIgorI34gbXNnc3RyICJwxZllZCBhdXRvYmF1ZFxuIgorCisjfiBtc2dpZCAid2FpdGluZyBmb3IgY3ItbGZcbiIKKyN+IG1zZ3N0ciAixI1la8OhbSBuYSBjci1sZlxuIgorCisjfiBtc2dpZCAicmVhZGluZyBsb2dpbiBuYW1lXG4iCisjfiBtc2dzdHIgIsSNdHUgcMWZaWhsYcWhb3ZhY8OtIGptw6lub1xuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAicG8genByYWNvdsOhbsOtIGFyZ3VtZW50xa8gcMWZw61rYXpvdsOpIMWZw6Fka3lcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VhcmdzXG4iCisjfiBtc2dzdHIgIm9wb3XFoXTDrW0gZnVua2NpIHBhcnNlYXJnc1xuIgorCisjfiBtc2dpZCAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKyN+IG1zZ3N0ciAidnN0dXB1amkgZG8gZnVua2NlIHBhcnNlX3NwZWVkc1xuIgorCisjfiBtc2dpZCAiZXhpdGluZyBwYXJzZXNwZWVkc1xuIgorI34gbXNnc3RyICJvcG91xaF0w61tIGZ1bmtjaSBwYXJzZXNwZWVkc1xuIgorCisjfiBtc2dpZCAib3BlbigyKVxuIgorI34gbXNnc3RyICJvcGVuKDIpXG4iCisKKyN+IG1zZ2lkICJkdXBpbmdcbiIKKyN+IG1zZ3N0ciAidm9sw6FtIGR1cFxuIgorCisjfiBtc2dpZCAidGVybV9pbyAyXG4iCisjfiBtc2dzdHIgInRlcm1faW8gMlxuIgorCisjfiBtc2dpZCAiY2hmbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJjaGZuOiBjaHliYSBQQU0sIGtvbsSNw61tOiAlc1xuIgorCisjfiBtc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHNcbiIKKyN+IG1zZ3N0ciAiVmFyb3bDoW7DrTogXCIlc1wiIG5lbsOtIHYgL2V0Yy9zaGVsbHNcbiIKKworI34gbXNnaWQgIkNhbid0IHJlYWQgJXMsIGV4aXRpbmcuIgorI34gbXNnc3RyICIlcyBuZWx6ZSDEjcOtc3QsIGtvbsSNw61tLiIKKworI34gbXNnaWQgImxvZ2luOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImxvZ2luOiBjaHliYSBQQU0sIGtvbsSNw61tOiAlc1xuIgorCisjfiBtc2dpZCAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorI34gbXNnc3RyICLEjWFzb3bDvSBsaW1pdCA9ICVkLCBrbGlkID0gJWQsIHJlc3RhcnQgPSAlZFxuIgorCisjfiBtc2dpZCAiY291bGRuJ3QgcmVhZCAlcywgYW5kIGNhbm5vdCBpb2N0bCBkdW1wXG4iCisjfiBtc2dzdHIgIm5lbHplIMSNw61zdCAlcyBhIG5lbHplIHByb3bDqXN0IGR1bXAgcG9tb2PDrSB2b2zDoW7DrSBpb2N0bFxuIgorCisjfiBtc2dpZCAiLCBvZmZzZXQgJWxsZCIKKyN+IG1zZ3N0ciAiLCBvZHNhemVuw60gJSdsbGQiCisKKyN+IG1zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGRldmljZSAvZGV2L2xvb3AjIgorI34gbXNnc3RyICIlczogxb7DoWRuw6kgemHFmcOtemVuw60gL2Rldi9sb29wIyBuZWx6ZSBuYWzDqXp0IgorCisjfiBtc2dpZCAibW91bnQ6IGJhY2tncm91bmRpbmcgXCIlc1wiXG4iCisjfiBtc2dzdHIgIm1vdW50OiBwcmFjdWppIG5hIHBvemFkw60gXCIlc1wiXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ2l2aW5nIHVwIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDoga29uxI3DrW0gXCIlc1wiXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAiUG91xb5pdMOtOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAgICVzIFstdl0gWy1wIFBSSU9SSVRBXSBaVkzDgcWgVE7DjV9TT1VCT1J8TEFCRUw9TsOBWkVWX1NWQVpLVeKAplxuIgorI34gIiAgICAgICAgICVzIFstc11cbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIHNwZWNpYWwgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJQb3XFvml0w606ICVzIFstaFZdXG4iCisjfiAiICAgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAgICVzIFstdl0gWlZMw4HFoFROw41fU09VQk9S4oCmXG4iCisKKyN+IG1zZ2lkICIlczogY2Fubm90IGNhbm9uaWNhbGl6ZSAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6ICVzIG5lbHplIHDFmWV2w6lzdCBuYSBrYW5vbmlja8O9IHR2YXI6ICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6IHJlbmljZSBwcmlvcml0eSBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSB1c2VycyBdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJQb3XFvml0w606IHJlbmljZSBwcmlvcml0YSBbIFsgLXAgXSBwaWQgXSBbWyAtZyBdIHBncnAgXSBbIFsgLXUgXSAiCisjfiAidcW+aXZhdGVsIF1cbiIKKworI34gbXNnaWQgIlx0LSVjXHRFbmFibGUgJXNcbiIKKyN+IG1zZ3N0ciAiXHQtJWNcdFBvdm9sw60gJXNcbiIKKworI34gbXNnaWQgIlVua25vd24gb3B0aW9uIGAlYycgaWdub3JlZCIKKyN+IG1zZ3N0ciAiTmV6bsOhbcO9IHDFmWVww61uYcSNIOKAniVj4oCcIGlnbm9yb3bDoW4iCisKKyN+IG1zZ2lkICJgJXMnOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKKyN+IG1zZ3N0ciAi4oCeJXPigJw6IGNoeWJuw70gYWRyZXPDocWZOiDigJ4u4oCcIG5lbsOtIHBydm7DrVxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKKyN+IG1zZ3N0ciAi4oCeJXPigJw6IGNoeWJuw70gYWRyZXPDocWZOiDigJ4uLuKAnCBuZW7DrSBkcnVow71cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkIGVycm9yLiIKKyN+IG1zZ3N0ciAiQ2h5Ym7DqSBoZXNsby4iCisKKyN+IG1zZ2lkICIiCisjfiAiRXhjZWVkZWQgTUFYRU5UUklFUy4gIFJhaXNlIHRoaXMgdmFsdWUgaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgIgorI34gIkV4aXRpbmcuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJQxZlla3JvxI1lbm8gTUFYRU5UUklFUy4gWnbEm3TFoWV0ZSB0dXRvIGhvZG5vdHUgdsKgbWtjcmFtZnMuYyBhIHpub3Z1ICIKKyN+ICJwxZllbG/FvnRlLlxuIgorI34gIktvbsSNw61tLlxuIgorCisjfiBtc2dpZCAiQXNzdW1pbmcgcGFnZXMgb2Ygc2l6ZSAlZCAobm90ICVkKVxuIgorI34gbXNnc3RyICJQxZllZHBva2zDoWTDoW0gdmVsaWtvc3Qgc3Ryw6FuZWsgJWQgKG5pa29saXYgJWQpXG4iCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZvdW5kIGEgJXMlcyVzXG4iCisjfiBtc2dzdHIgIkF1dG9tYXRpY2vDoSBrb25maWd1cmFjZSBuYWxlemxhICVzJXMlc1xuIgorCisjfiBtc2dpZCAiIgorI34gIkRyaXZlIHR5cGVcbiIKKyN+ICIgICA/ICAgYXV0byBjb25maWd1cmVcbiIKKyN+ICIgICAwICAgY3VzdG9tICh3aXRoIGhhcmR3YXJlIGRldGVjdGVkIGRlZmF1bHRzKSIKKyN+IG1zZ3N0ciAiIgorI34gIlR5cCBkaXNrdVxuIgorI34gIiAgID8gICBhdXRvbWF0aWNrw6Ega29uZmlndXJhY2VcbiIKKyN+ICIgICAwICAgdcW+aXZhdGVsc2vDoSBrb25maWd1cmFjZSAocyBkZXRla292YW7DvW0gaW1wbGljaXRuw61tIG5hc3RhdmVuw61tKSIKKworI34gbXNnaWQgIlNlbGVjdCB0eXBlICg/IGZvciBhdXRvLCAwIGZvciBjdXN0b20pOiAiCisjfiBtc2dzdHIgIlphZGVqdGUgdHlwICg/IHBybyBhdXRvLCAwIHBybyB1xb5pdmF0ZWxza8O9KTogIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmYWlsZWQuXG4iCisjfiBtc2dzdHIgIkF1dG9tYXRpY2vDoSBrb25maWd1cmFjZSBzZWxoYWxhLlxuIgorCisjfiBtc2dpZCAiQWx0ZXJuYXRlIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiQWx0ZXJuYXRpdm7DrSBjeWxpbmRyeSIKKworI34gbXNnaWQgIlBoeXNpY2FsIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiRnl6aWNrw6kgY3lsaW5kcnkiCisKKyN+IG1zZ2lkICJZb3UgbWF5IGNoYW5nZSBhbGwgdGhlIGRpc2sgcGFyYW1zIGZyb20gdGhlIHggbWVudSIKKyN+IG1zZ3N0ciAiVsWhZWNobnkgcGFyYW1ldHJ5IGRpc2t1IG3Fr8W+ZXRlIHptxJtuaXQgeiBuYWLDrWRreSB4IgorCisjfiBtc2dpZCAiMyw1XCIgZmxvcHB5IgorI34gbXNnc3RyICIzLDVcIiBwcnXFvm7DvSBkaXNrIgorCisjfiBtc2dpZCAiTGludXggY3VzdG9tIgorI34gbXNnc3RyICJMaW51eCB1xb5pdmF0ZWxza8O9IgorCisjfiBtc2dpZCAiJXMgZnJvbSB1dGlsLWxpbnV4LSVzXG4iCisjfiBtc2dzdHIgIiVzIHogdXRpbC1saW51eC0lc1xuIgorCisjfiBtc2dpZCAiJXMgZnJvbSAlcyVzXG4iCisjfiBtc2dzdHIgIiVzIHogJXMlc1xuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiB0aGUgbGFiZWwgJXMgb2NjdXJzIG9uIGJvdGggJXMgYW5kICVzXG4iCisjfiBtc2dzdHIgIiVzOiBjaHliYTogam1lbm92a2EgJXMgc2UgbmFjaMOhesOtIGphayBuYSAlcyB0YWsgacKgbmEgJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICIlczogY291bGQgbm90IG9wZW4gJXMsIHNvIFVVSUQgYW5kIExBQkVMIGNvbnZlcnNpb24gY2Fubm90IGJlIGRvbmUuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczogbmVsemUgb3RldsWZw610ICVzLCB0YWvFvmUga29udmVyemUgVVVJRCBhIEpNRU5PVkVLIG5lYnVkZSBwcm92ZWRlbmEuXG4iCisKKyN+IG1zZ2lkICIlczogYmFkIFVVSUQiCisjfiBtc2dzdHIgIiVzOiBjaHlibsOpIFVVSUQiCisKKyN+IG1zZ2lkICJtb3VudDogZmFpbGVkIHdpdGggbmZzIG1vdW50IHZlcnNpb24gNCwgdHJ5aW5nIDMuLlxuIgorI34gbXNnc3RyICJtb3VudDogY2h5YmEgc8KgcMWZaXBvam92w6Fuw61tIE5GUyB2ZXJ6ZSA0LCB6a291xaHDrW0gdmVyemkgM+KAplxuIgorCisjfiBtc2dpZCAibW91bnQ6IG1vdW50aW5nICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiBwxZlpcG9qdWppICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2Fubm90IGZpbmQgJXMgaW4gJXMiCisjfiBtc2dzdHIgIm1vdW50OiAlcyBuZWx6ZSB2ICVzIG5hbMOpenQiCisKKyN+IG1zZ2lkICJtb3VudDogZXJyb3Igd2hpbGUgZ3Vlc3NpbmcgZmlsZXN5c3RlbSB0eXBlXG4iCisjfiBtc2dzdHIgIm1vdW50OiBixJtoZW0gaMOhZMOhbsOtIHR5cHUgc3lzdMOpbXUgc291Ym9yxa8gZG/FoWxvIGvCoGNoeWLEm1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgaG9zdDpkaXIgYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHDFmcOtbGnFoSBkbG91aMO9IGFyZ3VtZW50IHBybyBwb8SNw610YcSNOmFkcmVzw6HFmVxuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IG11bHRpcGxlIGhvc3RuYW1lcyBub3Qgc3VwcG9ydGVkXG4iCisjfiBtc2dzdHIgIm1vdW50OiB2YXJvdsOhbsOtOiB2w61jZW7DoXNvYm7DqSBuw6F6dnkgcG/EjcOtdGHEjcWvIG5lanNvdSBwb2Rwb3JvdsOhbnlcbiIKKworI34gbXNnaWQgIm1vdW50OiBkaXJlY3RvcnkgdG8gbW91bnQgbm90IGluIGhvc3Q6ZGlyIGZvcm1hdFxuIgorI34gbXNnc3RyICJtb3VudDogYWRyZXPDocWZIHBybyBwxZlpcG9qZW7DrSBuZW7DrSB2ZSB0dmFydSBwb8SNw610YcSNOmFkcmVzw6HFmVxuIgorCisjfiBtc2dpZCAibW91bnQ6IGNhbid0IGdldCBhZGRyZXNzIGZvciAlc1xuIgorI34gbXNnc3RyICJtb3VudDogIGFkcmVzdSAlcyBuZWx6ZSB6amlzdGl0XG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IMWhcGF0bsOpIGhwLT5oX2xlbmd0aFxuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgb3B0aW9uIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiBwxZnDrWxpxaEgZGxvdWjDvSBhcmd1bWVudCBwcm8gdm9sYnVcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IFVucmVjb2duaXplZCBwcm90bz0gb3B0aW9uLlxuIgorI34gbXNnc3RyICJWYXJvdsOhbsOtOiBuZXpuw6Ftw6Egdm9sYmEgcHJvIHByb3RvPS5cbiIKKworI34gbXNnaWQgIldhcm5pbmc6IE9wdGlvbiBuYW1sZW4gaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAiVmFyb3bDoW7DrTogdm9sYmEgbmFtbGVuIG5lbsOtIHBvZHBvcm92w6FuYS5cbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIG1vdW50IHBhcmFtZXRlcjogJXM9JWRcbiIKKyN+IG1zZ3N0ciAicGFyYW1ldHIgJXM9JWQgcHJvIHDFmWlwb2plbsOtIG5mcyBuZW7DrSB6bsOhbVxuIgorCisjfiBtc2dpZCAiV2FybmluZzogb3B0aW9uIG5vbG9jayBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICJWYXJvdsOhbsOtOiB2b2xiYSBub2xvY2sgbmVuw60gcG9kcG9yb3bDoW5hLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgb3B0aW9uOiAlcyVzXG4iCisjfiBtc2dzdHIgInZvbGJhICVzJXMgcHJvIHDFmWlwb2plbsOtIG5mcyBqZSBuZXpuw6Ftw6FcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb3QgYmFkIGhwLT5oX2xlbmd0aD9cbiIKKyN+IG1zZ3N0ciAibW91bnQ6IMWhcGF0bsOpIGhwLT5oX2xlbmd0aD9cbiIKKworI34gbXNnaWQgIm5mcyBiaW5kcmVzdnBvcnQiCisjfiBtc2dzdHIgIm5mcyBiaW5kcmVzdnBvcnQiCisKKyN+IG1zZ2lkICJuZnMgc2VydmVyIHJlcG9ydGVkIHNlcnZpY2UgdW5hdmFpbGFibGUiCisjfiBtc2dzdHIgInRhdG8gc2x1xb5iYSBqZSBuYSB0b210byBuZnMgc2VydmVydSBuZWRvc3R1cG7DoSIKKworI34gbXNnaWQgInVzZWQgcG9ydG1hcHBlciB0byBmaW5kIE5GUyBwb3J0XG4iCisjfiBtc2dzdHIgInBybyBuYWxlemVuw60gTkZTIHBvcnR1IGpzZW0gcG91xb5pbCBwb3J0bWFwcGVyXG4iCisKKyN+IG1zZ2lkICJ1c2luZyBwb3J0ICVkIGZvciBuZnMgZGVhbW9uXG4iCisjfiBtc2dzdHIgInBvdcW+w612w6FtIHBvcnQgJWQgcHJvIG5mcyBzZXJ2ZXJcbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIHN0YXR1cyByZXR1cm4gdmFsdWU6ICVkIgorI34gbXNnc3RyICJuw6F2cmF0b3bDoSBob2Rub3RhIG5mcyBzdGF0dXMgJWQgamUgbmV6bsOhbcOhIgorCisjfiBtc2dpZCAiaG9zdDogJXMsIGRpcmVjdG9yeTogJXNcbiIKKyN+IG1zZ3N0ciAicG/EjcOtdGHEjTogJXMsIGFkcmVzw6HFmTogJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgInVtb3VudDogYWRyZXN1ICVzIG5lbHplIHpqaXN0aXRcbiIKKworI34gbXNnaWQgInVtb3VudDogZ290IGJhZCBob3N0cC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiBjaHlibsOhIGhvZG5vdGEgaG9zdHAtPmhfbGVuZ3RoXG4iCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9kYS5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9kYS5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNhZjliOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2RhLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9kYS5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2RhLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5ODhlYzIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9kYS5wbwpAQCAtMCwwICsxLDEyNjE2IEBACisjIERhbnNrZSBiZXNrZWRlciBmb3IgdXRpbC1saW51eC4KKyMgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA0LCAyMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gZnJlZWx5IGNvcHkgYW5kIGRpc3RyaWJ1dGUKKyMgdGhpcyBmaWxlIGFuZCBtb2RpZmllZCB2ZXJzaW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzCisjIGhlYWRlciBpcyBub3QgcmVtb3ZlZCBhbmQgbW9kaWZpZWQgdmVyc2lvbnMgYXJlIG1hcmtlZAorIyBhcyBzdWNoLgorIyBDbGF1cyBIaW5kc2dhdWwgPGNsYXVzX2hAaW1hZ2UuZGs+LCAyMDAxLTIwMDIsIDIwMDQsIDIwMDUuCisjIENsYXVzIFP4cmVuc2VuIDxjc0BrbGlkLmRrPiwgMjAwMC4KKyMgS2VsZCBK+HJuIFNpbW9uc2VuIDxrZWxkQGRrdXVnLmRrPiwgMjAwMC4KKyMKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IHV0aWwtbGludXggMi4xMXlcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDUtMDgtMTUgMjE6MDArMDIwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogQ2xhdXMgSGluZHNnYXVsIDxjbGF1c19oQGltYWdlLmRrPlxuIgorIkxhbmd1YWdlLVRlYW06IERhbmlzaCA8ZGFuc2tAa2xpZC5kaz5cbiIKKyJNSU1FLVZlcnNpb246IDEuMFxuIgorIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCisiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgorIlgtR2VuZXJhdG9yOiBLQmFiZWwgMS45LjFcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjYzCittc2dpZCAic2V0IHJlYWQtb25seSIKK21zZ3N0ciAibWFya2VyZXIgc2tyaXZlYmVza3l0dGV0IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAibWFya2VyZXIgc2tyaXZiYXIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3NgorbXNnaWQgImdldCByZWFkLW9ubHkiCittc2dzdHIgImblIHNrcml2ZWJlc2t5dHRldCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCisjLCBmdXp6eQorbXNnaWQgImdldCBsb2dpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgImblIHNla3RvcnN0+HJyZWxzZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4CisjLCBmdXp6eQorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJm5SBzZWt0b3JzdPhycmVsc2UiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo5NAorbXNnaWQgImdldCBtaW5pbXVtIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKK21zZ2lkICJnZXQgb3B0aW1hbCBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2CisjLCBmdXp6eQorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICJ1Z3lsZGlnIGlub2RlLXN0+HJyZWxzZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExMgorIywgZnV6enkKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgIkVrc3RyYSBzZWt0b3JlciBwZXIgY3lsaW5kZXIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTgKK21zZ2lkICJnZXQgYmxvY2tzaXplIgorbXNnc3RyICJm5SBibG9rc3T4cnJlbHNlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAic+Z0IGJsb2tzdPhycmVsc2UiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzEKK21zZ2lkICJnZXQgMzItYml0IHNlY3RvciBjb3VudCIKK21zZ3N0ciAiZuUgMzItYml0IHNla3RvcmFudGFsIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTM3Cittc2dpZCAiZ2V0IHNpemUgaW4gYnl0ZXMiCittc2dzdHIgImblIHN0+HJyZWxzZSBpIGJ5dGUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNDQKK21zZ2lkICJzZXQgcmVhZGFoZWFkIgorbXNnc3RyICJz5nQgZnJlbWzmc25pbmcgKCdyZWFkYWhlYWQnKSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1MAorbXNnaWQgImdldCByZWFkYWhlYWQiCittc2dzdHIgImblIGZyZW1s5nNuaW5nICgncmVhZGFoZWFkJykiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKKyMsIGZ1enp5Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJz5nQgZnJlbWzmc25pbmcgKCdyZWFkYWhlYWQnKSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2MworIywgZnV6enkKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgImblIGZyZW1s5nNuaW5nICgncmVhZGFoZWFkJykiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjcKK21zZ2lkICJmbHVzaCBidWZmZXJzIgorbXNnc3RyICJ0+G0gYnVmZmVyZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgImdlbmzmcyBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6XG4iCittc2dzdHIgIkJydWc6XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyAtLXJlcG9ydCBbZGV2aWNlc11cbiIKK21zZ3N0ciAiICAlcyAtLXJlcG9ydCBbZW5oZWRlcl1cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIFstdnwtcV0gY29tbWFuZHMgZGV2aWNlc1xuIgorbXNnc3RyICIgICVzIFstdnwtcV0ga29tbWFuZG9lciBlbmhlZGVyXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIgorbXNnc3RyICJUaWxn5m5nZWxpZ2Uga29tbWFuZG9lcjpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NworIywgZnV6enkKK21zZ2lkICJnZXQgc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzIgorbXNnc3RyICJm5SBzdPhycmVsc2UgaSBieXRlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIiVzOiBVa2VuZHQga29tbWFuZG86ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMga3LmdmVyIGVuIHBhcmFtZXRlclxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6Mzc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgInP4Z25pbmcgZmVqbGVkZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdWNjZWVkZWQuXG4iCittc2dzdHIgIiVzIGx5a2tlZGVzLlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDI3IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzOiBrdW5uZSBpa2tlIOVibmUgJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW9jdGwgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGlvY3RsLWZlamwgcOUgJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ4MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKK21zZ3N0ciAiUk8gICAgUkEgICBTU1QgICBCU1QgICBTdGFydFNla3QgICAgU3T4cnIuICBFbmhlZFxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAiYnJ1ZzpcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHROT1RFOiBlbHZ0dW5lIG9ubHkgd29ya3Mgd2l0aCAyLjQga2VybmVsc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAic/hnZWZlamwiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjExMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWlzc2luZyBibG9ja2RldmljZSwgdXNlIC1oIGZvciBoZWxwXG4iCittc2dzdHIgIiVzIGVyIGh2ZXJrZW4gZW4gYmxva2VuaGVkIGVsbGVyIGZpbFxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImVsdnR1bmUgaXMgb25seSB1c2VmdWwgb24gb2xkZXIga2VybmVscztcbiIKKyJmb3IgMi42IHVzZSBJTyBzY2hlZHVsZXIgc3lzZnMgdHVuYWJsZXMgaW5zdGVhZC4uXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcm1hdHRpbmcgLi4uICIKK21zZ3N0ciAiRm9ybWF0dGVyZXIgLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgImbmcmRpZ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmVyaWZ5aW5nIC4uLiAiCittc2dzdHIgIlZlcmlmaWNlcmVyIC4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MQorbXNnaWQgIlJlYWQ6ICIKK21zZ3N0ciAiTOZzOiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9ibGVtIHJlYWRpbmcgY3lsaW5kZXIgJWQsIGV4cGVjdGVkICVkLCByZWFkICVkXG4iCittc2dzdHIgIlByb2JsZW0gdmVkIGzmc25pbmcgYWYgY3lsaW5kZXIgJWQsIHZlbnRlZGUgJWQsIGzmc3RlICVkXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiYmFkIGRhdGEgaW4gY3lsICVkXG4iCisiQ29udGludWluZyAuLi4gIgorbXNnc3RyICIiCisidWd5bGRpZ2UgZGF0YSBpIGN5bCAlZFxuIgorIkZvcnRz5nR0ZXIgLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgImJydWc6ICVzIFsgLW4gXSBlbmhlZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTE4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODQKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE4MSBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTE0IGRpc2stdXRpbHMvbWtmcy5jOjUyCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODEyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3MgorIzogZGlzay11dGlscy9ta3N3YXAuYzo0ODcgbWlzYy11dGlscy9kZGF0ZS5jOjE3OSBtaXNjLXV0aWxzL3JlbmFtZS5jOjc5CisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE0NyBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCVzKVxuIgorbXNnc3RyICIlcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICIlczogZXIgaWtrZSBlbiBibG9rZW5oZWRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiS3VubmUgaWtrZSBiZXN0ZW1tZSBkZXQgZWtzaXN0ZXJlbmRlIGZvcm1hdCIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlcy1zaWRlZCwgJWQgdHJhY2tzLCAlZCBzZWMvdHJhY2suIFRvdGFsIGNhcGFjaXR5ICVkIGtCLlxuIgorbXNnc3RyICIlcy1zaWRldCwgJWQgc3BvciwgJWQgc2VrdC9zcG9yLiBTYW1sZXQga2FwYWNpdGV0ICVkIGtCLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiRG91YmxlIgorbXNnc3RyICJEb2JiZWx0IgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICJFbmtlbHQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisiQnJ1ZzogJXMgWy1odl0gWy14IG1hcHBlXSBmaWxcbiIKKyIgLWggICAgICAgICB2aXMgZGVubmUgaGrmbHBcbiIKKyIgLXggbWFwcGUgICB1ZHBhayB0aWwgbWFwcGVcbiIKKyIgLXYgICAgICAgICB2aXMgZmxlcmUgbWVkZGVsZWxzZXJcbiIKKyIgZmlsZSAgICAgICBmaWwgZGVyIHNrYWwgdGpla2tlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgIihO5nN0ZSBmaWw6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2NyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIm9wZW5wdHkgbWlzbHlra2VkZXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgZmFpbGVkOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGRldmljZSBzaXplOiAlcyIKK21zZ3N0ciAiJXM6IGFkdmFyc2VsLS1rdW5uZSBpa2tlIGJlc3RlbW1lIGZpbHN5c3RlbWV0cyBzdPhycmVsc2UgXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBhIGJsb2NrIGRldmljZSBvciBmaWxlOiAlcyIKK21zZ3N0ciAiJXMgZXIgaHZlcmtlbiBlbiBibG9rZW5oZWQgZWxsZXIgZmlsXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODQgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyNgorIywgZnV6enkKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgIiVzOiB1Z3lsZGlndCBjcmFtZnMtLWZpbGzmbmdkZSBmb3Iga29ydFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg5IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxOTcKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNTggZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCBmYWlsZWQ6ICVzIgorbXNnc3RyICIoTuZzdGUgZmlsOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2CisjLCBmdXp6eQorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIkFuZ2l2IGZpbHN5c3RlbXR5cGU6ICIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3VwZXJibG9jayBzaXplICglZCkgdG9vIHNtYWxsIgorbXNnc3RyICJBbnRhbCBzZWt0b3JlciIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyMworbXNnaWQgInplcm8gZmlsZSBjb3VudCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIGV4dGVuZHMgcGFzdCBlbmQgb2YgZmlsZXN5c3RlbVxuIgorbXNnc3RyICJBZHZhcnNlbDogcGFydGl0aW9uICVzIG7lciB1ZCBvdmVyIGRpc2tlbnMgc2x1dG5pbmdcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogb2xkIGNyYW1mcyBmb3JtYXRcbiIKK21zZ3N0ciAiJXM6IGFkdmFyc2VsLS1nYW1tZWx0IGNyYW1mcy1hZnRyeWssIGluZ2VuIENSQ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjcyIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozMzkKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NzcgbG9naW4tdXRpbHMvY2hmbi5jOjUyOSBsb2dpbi11dGlscy9jaHNoLmM6NDM5CisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE0MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzIxCittc2dpZCAibWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAiaHVrb21tZWxzZXNhbGxva2VyaW5nIG1pc2x5a2tlZGVzIChtYWxsb2MpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjk3CisjLCBmdXp6eQorbXNnaWQgImNyYyBlcnJvciIKK21zZ3N0ciAiLCBmZWpsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY0CisjLCBmdXp6eQorbXNnaWQgInJvb3QgaW5vZGUgaXMgbm90IGRpcmVjdG9yeSIKK21zZ3N0ciAicm9kLWlub2RlIGVyIGlra2UgZW4gbWFwcGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHJvb3Qgb2Zmc2V0ICglbHUpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozODcKK21zZ2lkICJkYXRhIGJsb2NrIHRvbyBsYXJnZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzkxCisjLCBjLWZvcm1hdAorbXNnaWQgImRlY29tcHJlc3Npb24gZXJyb3IgJXAoJWQpOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIGhvbGUgYXQgJWxkICglemQpXG4iCittc2dzdHIgIiAgaHVsIHZlZCAlbGQgKCVkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDIzIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICB1bmNvbXByZXNzaW5nIGJsb2NrIGF0ICVsZCB0byAlbGQgKCVsZClcbiIKK21zZ3N0ciAiICB1ZHBha2tlciBibG9rIGZyYSAlbGQgdGlsICVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tYmxvY2sgKCVsZCkgYnl0ZXMiCittc2dzdHIgIiVzOiBJa2tlLWJsb2sgKCVsZCkgYnl0ZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tc2l6ZSAoJWxkIHZzICVsZCkgYnl0ZXMiCittc2dzdHIgIiVzOiBJa2tlLXN0+HJyZWxzZSAoJWxkIG1vZCAlbGQpIGJ5dGVcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKE7mc3RlIGZpbDogJXMpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibW9udGVyaW5nIG1pc2x5a2tlZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjaG93biBmYWlsZWQ6ICVzIgorbXNnc3RyICJtb250ZXJpbmcgbWlzbHlra2VkZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInV0aW1lIGZhaWxlZDogJXMiCittc2dzdHIgInVneWxkaWcgduZyZGkgZm9yIHRpZHN1ZGz4YjogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ5NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtkaXIgZmFpbGVkOiAlcyIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSBtaXNseWtrZWRlczogJW0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTEKK21zZ2lkICJmaWxlbmFtZSBsZW5ndGggaXMgemVybyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTE0Cittc2dpZCAiYmFkIGZpbGVuYW1lIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCisjLCBmdXp6eQorbXNnaWQgImJhZCBpbm9kZSBvZmZzZXQiCittc2dzdHIgInVneWxkaWcgaW5vZGUtc3T4cnJlbHNlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTM3Cittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU0MAorbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gc2l6ZSBhbmQgbm9uLXplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzEKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTc0Cittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNpemUgZXJyb3IgaW4gc3ltbGluazogJXMiCittc2dzdHIgIiVzOiBzdPhycmVsc2VzZmVqbCBpIHN5bWJvbHNrIGzmbmtlICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJmc3luYyBtaXNseWtrZWRlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAiJXM6IHVneWxkaWcgdGlsc3RhbmQgcOUgJyVzJyAoJW8pXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rbm9kIGZhaWxlZDogJXMiCittc2dzdHIgIm1vbnRlcmluZyBtaXNseWtrZWRlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBzdGFydCAoJWxkKSA8IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKSArIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKyIlczogdWd5bGRpZ3QgY3JhbWZzLS1tYXBwZWRhdGEtYWZzbHV0bmluZyAoJWxkKSAhPSBmaWxkYXRhYmVneW5kZWxzZSAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgZmlsZSBkYXRhIG9mZnNldCIKK21zZ3N0ciAiJXM6IHVneWxkaWd0IGNyYW1mcy0tdWd5bGRpZyBmaWxkYXRhZm9yc2t5ZG5pbmdcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICJLdW5uZSBpa2tlIGFsbG9rZXJlIGJ1ZmZlci5cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworIywgZnV6enkKK21zZ2lkICJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiCittc2dzdHIgIiVzOiBpa2tlIG92ZXJzYXQgbWVkIHVuZGVyc3T4dHRlbHNlIGZvciAteFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCittc2dzdHIgIkJydWc6ICVzIFstbGFydnNtZl0gL2Rldi9uYXZuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiJXMgZXIgbW9udGVyZXQuXHQgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjUKK21zZ2lkICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiCittc2dzdHIgIlZpbCBkdSB2aXJrZWxpZyBmb3J0c+Z0dGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICJjaGVjayBhYm9ydGVkLlxuIgorbXNnc3RyICJ0amVrIGFmYnJ1ZHQuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJab25lIG5yIDwgRklSU1RaT05FIGkgZmlsZW4gJyVzJy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA+PSBaT05FUyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJab25lIG5yID49IFpPTkVTIGkgZmlsZW4gJyVzJy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozODAKK21zZ2lkICJSZW1vdmUgYmxvY2siCittc2dzdHIgIkZqZXJuIGJsb2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiTOZzZWZlamw6IGt1bm5lIGlra2Ugc/hnZSB0aWwgYmxvayBpIGZpbGVuICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiTOZzZWZlamw6IHVneWxkaWcgYmxvayBpIGZpbGVuICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisiSW50ZXJuIGZlamw6IGZvcnP4Z2VyIGF0IHNrcml2ZSB1Z3lsZGlnIGJsb2tcbiIKKyJTa3JpdmVmb3Jz+GcgaWdub3JlcmV0XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAic/hnbmluZyBtaXNseWtrZWRlcyBpIHdyaXRlX2Jsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiU2tyaXZlZmVqbDogdWd5bGRpZyBibG9rIGkgZmlsICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgInP4Z25pbmcgbWlzbHlra2VkZXMgaSB3cml0ZV9zdXBlcl9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAia3VubmUgaWtrZSBza3JpdmUgc3VwZXItYmxvayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiS3VubmUgaWtrZSBza3JpdmUgaW5vZGUtb3ZlcnNpZ3RlbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU4Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJLdW5uZSBpa2tlIHNrcml2ZSB6b25lLW92ZXJzaWd0ZW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU2MAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgIkt1bm5lIGlra2Ugc2tyaXZlIGlub2RlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTg3Cittc2dpZCAic2VlayBmYWlsZWQiCittc2dzdHIgInP4Z25pbmcgZmVqbGVkZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICJrdW5uZSBpa2tlIGFsbG9rZXJlIGJ1ZmZlcmUgdGlsIG92ZXJzaWd0ZXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5NAorbXNnaWQgInVuYWJsZSB0byByZWFkIHN1cGVyIGJsb2NrIgorbXNnc3RyICJrdW5uZSBpa2tlIGzmc2Ugc3VwZXItYmxvayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjEyCittc2dpZCAiYmFkIG1hZ2ljIG51bWJlciBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAidWd5bGRpZ3QgbWFnaXNrIG51bW1lciBpIHN1cGVyLWJsb2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNAorbXNnaWQgIk9ubHkgMWsgYmxvY2tzL3pvbmVzIHN1cHBvcnRlZCIKK21zZ3N0ciAiS3VuIDFrIGJsb2trZS96b25lciB1bmRlcnN0+HR0ZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJ1Z3lsZGlndCBzX2ltYXBfYmxvY2tzLWZlbHQgaSBzdXBlci1ibG9rIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAidWd5bGRpZ3Qgc196bWFwX2Jsb2Nrcy1mZWx0IGkgc3VwZXItYmxvayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI1Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgbWFwIgorbXNnc3RyICJLdW5uZSBpa2tlIGFsbG9rZXJlIGJ1ZmZlciB0aWwgaW5vZGUtb3ZlcnNpZ3QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyOAorIywgZnV6enkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAiS3VubmUgaWtrZSBhbGxva2VyZSBidWZmZXIgdGlsIGlub2RlLW92ZXJzaWd0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgIkt1bm5lIGlra2UgYWxsb2tlcmUgYnVmZmVyIHRpbCBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICJLdW5uZSBpa2tlIGFsbG9rZXJlIGJ1ZmZlciB0aWwgaW5vZGUtb3B05mxsaW5nIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIGNvdW50IgorbXNnc3RyICJLdW5uZSBpa2tlIGFsbG9rZXJlIGJ1ZmZlciB0aWwgem9uZW9wdOZsbGluZyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICJLdW5uZSBpa2tlIGzmc2UgaW5vZGUtb3ZlcnNpZ3QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MworbXNnaWQgIlVuYWJsZSB0byByZWFkIHpvbmUgbWFwIgorbXNnc3RyICJLdW5uZSBpa2tlIGzmc2Ugem9uZW92ZXJzaWd0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDUKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZXMiCittc2dzdHIgIkt1bm5lIGlra2UgbOZzZSBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIKK21zZ3N0ciAiQWR2YXJzZWw6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkIGlub2Rlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIGJsb2trZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIkb4cnN0ZWRhdGF6b25lPSVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmVzaXplPSVkXG4iCittc2dzdHIgIlpvbmVzdPhycmVsc2U9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIk1ha3NzdPhycmVsc2U9JWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIkZpbHN5c3RlbS10aWxzdGFuZD0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIm5hdm5lbOZuZ2RlPSVkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3MyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgYnV0IHVzZWQgZm9yIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJJbm9kZSAlZCBlciBtYXJrZXJldCBzb20gdWJydWd0LCBtZW4gYnJ1Z2VzIGFmIGZpbGVuICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICJNYXJr6XIgaSBicnVnIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIgorbXNnc3RyICJGaWxlbiAnJXMnIGhhciB0aWxzdGFuZCAlMDVvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcwNiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaW5vZGUgY291bnQgdG9vIGJpZy5cbiIKK21zZ3N0ciAiQWR2YXJzZWw6IGlub2RlLW9wdOZsbGluZyBmb3Igc3Rvci5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc3NAorbXNnaWQgInJvb3QgaW5vZGUgaXNuJ3QgYSBkaXJlY3RvcnkiCittc2dzdHIgInJvZC1pbm9kZSBlciBpa2tlIGVuIG1hcHBlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3ODggZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiQmxva2tlIGJsZXYgYnJ1Z3QgdGlkbGlnZXJlLiBOdSBpIGZpbGVuICclcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3OTAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIzCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTUKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxMAorbXNnaWQgIkNsZWFyIgorbXNnc3RyICJTbGV0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iCittc2dzdHIgIkJsb2sgJWQgaSBmaWxlbiAnJXMnIGVyIG1hcmtlcmV0IHNvbSB1YnJ1Z3QuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiS29ycmln6XIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiTWFwcGVuICclcycgaW5kZWhvbGRlciBmb3JrZXJ0IGlub2RlLWFudGFsIGZvciBmaWxlbiAnJS4qcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBGamVybiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTkxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorbXNnc3RyICIlczogdWd5bGRpZyBtYXBwZTogJy4nIGVyIGlra2UgZvhyc3RcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCittc2dzdHIgIiVzOiB1Z3lsZGlnIG1hcHBlOiAnLC4nIGVyIGlra2UgbnVtbWVyIHRvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTExOQorbXNnaWQgImludGVybmFsIGVycm9yIgorbXNnc3RyICJpbnRlcm4gZmVqbCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwNCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiBzaXplIDwgMzIiCittc2dzdHIgIiVzOiB1Z3lsZGlnIG1hcHBlOiBzdPhycmVsc2UgPCAzMiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEzNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGJhZF96b25lIgorbXNnc3RyICJtaXNseWtrZXQgc/hnbmluZyBpIGJhZF96b25lIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ1IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbW9kZSBub3QgY2xlYXJlZC4iCittc2dzdHIgIklub2RlICVkLXRpbHN0YW5kIGlra2Ugc2xldHRldC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIklub2RlICVkIGlra2UgYnJ1Z3QsIG1hcmtlcmV0IHNvbSBicnVndCBpIGJpdG92ZXJzaWd0ZW4uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiSW5vZGUgJWQgaSBicnVnLCBtYXJrZXJldCBzb20gdWJydWd0IGkgYml0b3ZlcnNpZ3Rlbi4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNgorbXNnaWQgIlNldCIKK21zZ3N0ciAiU+Z0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJbm9kZSAlZCAodGlsc3RhbmQgPSAlMDdvKSwgaV9ubGlua3M9JWQsIG9wdGFsdD0lZC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMgorbXNnaWQgIlNldCBpX25saW5rcyB0byBjb3VudCIKK21zZ3N0ciAiU+Z0IGlfbmxpbmtzIHRpbCBkZXQgb3B0YWx0ZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG1hcmtlZCBpbiB1c2UsIG5vIGZpbGUgdXNlcyBpdC4iCittc2dzdHIgIlpvbmUgJWQ6IG1hcmtlcmV0IHNvbSBicnVndCwgaW5nZW4gZmlsZXIgYnJ1Z2VyIGRlbi4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNgorbXNnaWQgIlVubWFyayIKK21zZ3N0ciAiQWZtYXJr6XIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWm9uZSAlZDogaSBicnVnLCBvcHRhbHQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWm9uZSAlZDogaWtrZSBpIGJydWcsIG9wdGFsdD0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg5IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3NworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc5Cittc2dpZCAiYmFkIGlub2RlIHNpemUiCittc2dzdHIgInVneWxkaWcgaW5vZGUtc3T4cnJlbHNlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjkxCittc2dpZCAiYmFkIHYyIGlub2RlIHNpemUiCittc2dzdHIgInVneWxkaWcgdjIgaW5vZGUtc3T4cnJlbHNlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzE3Cittc2dpZCAibmVlZCB0ZXJtaW5hbCBmb3IgaW50ZXJhY3RpdmUgcmVwYWlycyIKK21zZ3N0ciAia3LmdmVyIHRlcm1pbmFsIHRpbCBpbnRlcmFrdGl2ZSByZXBhcmF0aW9uZXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICclcyc6ICVzIgorbXNnc3RyICJrdW5uZSBpa2tlIOVibmUgJyVzJyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBjbGVhbiwgbm8gY2hlY2suXG4iCittc2dzdHIgIiVzIGVyIGkgb3JkZW4sIHRqZWtrZXMgaWtrZS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JjaW5nIGZpbGVzeXN0ZW0gY2hlY2sgb24gJXMuXG4iCittc2dzdHIgIkdlbm5lbXR2aW5nZXIgdGplayBhZiBmaWxzeXN0ZW0gcOUgJXMuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBvbiAlcyBpcyBkaXJ0eSwgbmVlZHMgY2hlY2tpbmcuXG4iCittc2dzdHIgIkZpbHN5c3RlbSBw5SAlcyBlciBt5XNrZSBpa2tlIGkgb3JkZW4sIGty5nZlciBldCB0amVrLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2bGQgaW5vZGVzIGJydWd0ICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkIHpvbmVyIGJydWd0ICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZkIHJlZ3VsYXIgZmlsZXNcbiIKKyIlNmQgZGlyZWN0b3JpZXNcbiIKKyIlNmQgY2hhcmFjdGVyIGRldmljZSBmaWxlc1xuIgorIiU2ZCBibG9jayBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgbGlua3NcbiIKKyIlNmQgc3ltYm9saWMgbGlua3NcbiIKKyItLS0tLS1cbiIKKyIlNmQgZmlsZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2ZCByZWd1bOZyZSBmaWxlclxuIgorIiU2ZCBtYXBwZXJcbiIKKyIlNmQgdGVnbi1lbmhlZHMgZmlsZXJcbiIKKyIlNmQgYmxvay1lbmhlZHMgZmlsZXJcbiIKKyIlNmQgbOZua2VyXG4iCisiJTZkIHN5bWJvbHNrZSBs5m5rZXJcbiIKKyItLS0tLS1cbiIKKyIlNmQgZmlsZXJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkZJTEUgU1lTVEVNIEhBUyBCRUVOIENIQU5HRURcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkZJTFNZU1RFTSBCTEVWIE1PRElGSUNFUkVUXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IEt1bm5lIGlra2Ug5WJuZTogJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzZWVrIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBz+GdlZmVqbCBw5SAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGzmc2VmZWpsIHDlICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3IgY291bnQ6ICVkLCBzZWN0b3Igc2l6ZTogJWRcbiIKK21zZ3N0ciAic2VrdG9yYW50YWw6ICVkLCBzZWt0b3JzdPhycmVsc2U6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiBGb3J0b2xrZXJmZWpsIHZlZCB0aWx2YWxnXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKK21zZ3N0ciAiQnJ1ZzogJXMgWy14XSBbLWQgPGFudGFsPl0gaXNvOTY2MC1iaWxsZWRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisiQnJ1ZzogICVzIFstdl0gWy1OIGFudGFsLWlub2Rlc10gWy1WIGJpbmQtbmF2bl1cbiIKKyIgICAgICAgWy1GIGZzbmF2bl0gZW5oZWQgW2FudGFsLWJsb2trZV1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzMAorbXNnaWQgInZvbHVtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICJiaW5kLW5hdm4gZm9yIGxhbmd0IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgImZzbmF2biBmb3IgbGFuZ3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJrdW5uZSBpa2tlIGZpbmRlIGVuaGVkZW4gJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIGVyIGlra2UgZW4gYmxva2VuaGVkIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAia3VubmUgaWtrZSDlYm5lICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgc2l6ZSBvZiAlcyIKK21zZ3N0ciAiS2FuIGlra2UgZuUgc3T4cnJlbHNlbiBhZiAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgImZvciBtYW5nZSBibG9ra2UgYW5naXZldCwg+HZyZSBncuZuc2UgZXIgJWx1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjAyCittc2dpZCAidG9vIG1hbnkgaW5vZGVzIC0gbWF4IGlzIDUxMiIKK21zZ3N0ciAiZm9yIG1hbmdlIGlub2RlcyAtIPh2cmUgZ3LmbnNlIGVyIDUxMiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAiaWtrZSBwbGFkcyBub2ssIGty5nZlciBtaW5kc3QgJWx1IGJsb2trZSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICJFbmhlZDogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNAorIywgYy1mb3JtYXQKK21zZ2lkICJWb2x1bWU6IDwlLTZzPlxuIgorbXNnc3RyICJCaW5kOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNQorIywgYy1mb3JtYXQKK21zZ2lkICJGU25hbWU6IDwlLTZzPlxuIgorbXNnc3RyICJGU25hdm46IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrU2l6ZTogJWRcbiIKK21zZ3N0ciAiQmxva3N0+HJyZWxzZTogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJJbm9kZXM6ICVkIChpIGVuIGJsb2spXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluICVsbGQgYmxvY2tzKVxuIgorbXNnc3RyICJJbm9kZXM6ICVkIChpICVsZCBibG9ra2UpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrczogJWxsZFxuIgorbXNnc3RyICJCbG9ra2U6ICVsZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlIGVuZDogJWQsIERhdGEgZW5kOiAlZFxuIgorbXNnc3RyICJJbm9kZS1zbHV0OiAlZCwgRGF0YS1zbHV0OiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM5Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzdXBlcmJsb2NrIgorbXNnc3RyICJmZWpsIHVuZGVyIHNrcml2bmluZyBhZiBzdXBlcmJsb2siCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNTkKK21zZ2lkICJlcnJvciB3cml0aW5nIHJvb3QgaW5vZGUiCittc2dzdHIgImZlamwgdW5kZXIgc2tyaXZuaW5nIGFmIHJvZC1pbm9kZSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NAorbXNnaWQgImVycm9yIHdyaXRpbmcgaW5vZGUiCittc2dzdHIgImZlamwgdW5kZXIgc2tyaXZuaW5nIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAic/hnZWZlamwiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKK21zZ2lkICJlcnJvciB3cml0aW5nIC4gZW50cnkiCittc2dzdHIgImZlamwgdW5kZXIgc2tyaXZuaW5nIGFmICcuJy1pbmRnYW5nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6Mjc3Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAiZmVqbCB1bmRlciBza3Jpdm5pbmcgYWYgJy4uJy1pbmRnYW5nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNsb3NpbmcgJXMiCittc2dzdHIgIkZlamwgdW5kZXIgbHVrbmluZyBhZiAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICJCcnVnOiBta2ZzIFstVl0gWy10IGZzdHlwZV0gW2ZzLXRpbHZhbGddIGVuaGVkIFtzdPhycmVsc2VdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjg4IGRpc2stdXRpbHMvbWtmcy5jOjk2IGZkaXNrL2NmZGlzay5jOjM1MworIzogZ2V0b3B0L2dldG9wdC5jOjg2IGdldG9wdC9nZXRvcHQuYzo5NiBsb2dpbi11dGlscy93YWxsLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPdXQgb2YgbWVtb3J5IVxuIgorbXNnc3RyICIlczogSHVrb21tZWxzZSBvcGJydWd0IVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtmcyAoJXMpXG4iCittc2dzdHIgIm1rZnMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MTI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaF0gWy12XSBbLWIgYmxrc2l6ZV0gWy1lIGVkaXRpb25dIFstTiBlbmRpYW5dIFstaSBmaWxlXSBbLW4gIgorIm5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAtdiAgICAgICAgIGJlIHZlcmJvc2VcbiIKKyIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgKG5vbi16ZXJvIGV4aXQgc3RhdHVzKVxuIgorIiAtYiBibGtzaXplIHVzZSB0aGlzIGJsb2Nrc2l6ZSwgbXVzdCBlcXVhbCBwYWdlIHNpemVcbiIKKyIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgY3JhbWZzIGVuZGlhbm5lc3MgKGJpZ3xsaXR0bGV8aG9zdCksIGRlZmF1bHQgaG9zdFxuIgorIiAtaSBmaWxlICAgIGluc2VydCBhIGZpbGUgaW1hZ2UgaW50byB0aGUgZmlsZXN5c3RlbSAocmVxdWlyZXMgPj0gMi40LjApXG4iCisiIC1uIG5hbWUgICAgc2V0IG5hbWUgb2YgY3JhbWZzIGZpbGVzeXN0ZW1cbiIKKyIgLXAgICAgICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIgorIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisiIC16ICAgICAgICAgbWFrZSBleHBsaWNpdCBob2xlcyAocmVxdWlyZXMgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3NlZFxuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCittc2dzdHIgIiIKKyJicnVnOiAlcyBbLXZdIFstYiBibG9rc3RyXSBbLWUgdWRnYXZlXSBbLWkgZmlsXSBbLW4gbmF2bl0gbWFwcGVuYXZuIHVkZmlsXG4iCisiIC1oICAgICAgICAgdmlzIGRlbm5lIGhq5mxwXG4iCisiIC12ICAgICAgICAgduZyIG1lcmUgZm9ya2xhcmVuZGVcbiIKKyIgLUUgICAgICAgICBn+HIgYWxsZSBhZHZhcnNsZXIgdGlsIGZlamwgKGFmc2x1dG5pbmdzc3RhdHVzIG92ZXIgbnVsKVxuIgorIiAtYiBibG9rc3RyIGJlbnl0IGRlbm5lIGJsb2tzdPhycmVsc2UsIHNrYWwgc3ZhcmUgdGlsIHNpZGVzdPhycmVsc2VuXG4iCisiIC1lIHVkZ2F2ZSAgYW5naXYgdWRnYXZlbnVtbWVyIChlbiBkZWwgYWYgZnNpZClcbiIKKyIgLWkgZmlsICAgICBpbmRz5nQgZmlsYWZ0cnlrIGkgZmlsc3lzdGVtZXQgKGty5nZlciA+PSAyLjQuMClcbiIKKyIgLW4gbmF2biAgICBhbmdpdiBuYXZuZXQgcOUgY3JhbWZzLWZpbHN5c3RlbWV0XG4iCisiIC1wICAgICAgICAgaW5kc+Z0ICVkIGJ5dGUgZm9yYW4gb3BzdGFydHNrb2RlblxuIgorIiAtcyAgICAgICAgIHNvcnTpciBtYXBwZWluZGdhbmdlIChnYW1tZWx0IHRpbHZhbGcsIGlnbm9yZXJlcylcbiIKKyIgLXogICAgICAgICBsYXYgZWtzcGxpY2l0dGUgaHVsbGVyIChrcuZ2ZXIgPj0gMi4zLjM5KVxuIgorIiBtYXBwZW5hdm4gIHJvZGVuIGFmIGRldCBmaWxzeXN0ZW0sIGRlciBza2FsIGtvbXByaW1lcmVzXG4iCisiIHVkZmlsICAgICAgdWRkYXRhZmlsXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJWZXJ5IGxvbmcgKCV6dSBieXRlcykgZmlsZW5hbWUgYCVzJyBmb3VuZC5cbiIKKyIgUGxlYXNlIGluY3JlYXNlIE1BWF9JTlBVVF9OQU1FTEVOIGluIG1rY3JhbWZzLmMgYW5kIHJlY29tcGlsZS4gIEV4aXRpbmcuXG4iCittc2dzdHIgIiIKKyJGYW5kdCBtZWdldCBsYW5ndCAoJXUgYnl0ZSkgZmlsbmF2biAnJXMnLlxuIgorIiBGb3L4ZyBNQVhfSU5QVVRfTkFNRUxFTiBpIG1rY3JhbWZzLmMgb2cgZ2Vub3ZlcnPmdC4gIEFmc2x1dHRlci5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICJmb3Igc3RvcnQgZmlsc3lzdGVtLiAgQWZzbHV0dGVyLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFJRUVFOiBibG9jayBcImNvbXByZXNzZWRcIiB0byA+IDIqYmxvY2tsZW5ndGggKCVsZClcbiIKK21zZ3N0ciAiQUFBUkdIOiBibG9rIGJsZXYgXCJrb21wcmltZXJldFwiIHRpbCA+IDIqYmxva2zmbmdkZW4gKCVsZClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJTYuMmYlJSAoJStsZCBieXRlcylcdCVzXG4iCittc2dzdHIgIiU2LjJmJSUgKCUrZCBieXRlKVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorImFkdmFyc2VsOiBldCBn5nQgcOUgZGVuIG74ZHZlbmRpZ2Ugc3T4cnJlbHNlICj4dnJlIGdy5m5zZSkgZXIgJUxkTUIsIG1lbiBkZXQgIgorIm1ha3NpbWFsZSBhZnRyeWtzc3T4cnJlbHNlIGVyICV1TUIuICBWaSBibGl2ZXIgbXVsaWd2aXMgaWtrZSBm5nJkaWdlLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiTWVkdGFnZXI6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRpcmVjdG9yeSBkYXRhOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiTWFwcGVkYXRhOiAlZCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkV2ZXJ5dGhpbmc6ICV6ZCBraWxvYnl0ZXNcbiIKK21zZ3N0ciAiSSBhbHQ6ICVkIGtpbG9ieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN1cGVyIGJsb2NrOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiU3VwZXJibG9rOiAlZCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICJDUkM6ICV4XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UgYWxsb2NhdGVkIGZvciBST00gaW1hZ2UgKCVsbGQgYWxsb2NhdGVkLCAlenUgdXNlZClcbiIKK21zZ3N0ciAiIgorImRlciBlciBmcmlnam9ydCBmb3IgbGlkdCBwbGFkcyB0aWwgUk9NLWFmdHJ5a2tldCAoJUxkIGZyaWdqb3J0LCAlZCBicnVndClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzMworbXNnaWQgIlJPTSBpbWFnZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTM3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIgorbXNnc3RyICJza3Jpdm5pbmcgYWYgUk9NLWFmdHJ5ayBtaXNseWtrZWRlcyAoJWQgJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZW5hbWVzIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMuXG4iCittc2dzdHIgImFkdmFyc2VsOiBmaWxuYXZuZSBhZmtvcnRldCB0aWwgMjU1IGJ5dGUuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iCittc2dzdHIgImFkdmFyc2VsOiBmaWxlciBvdmVyc3BydW5nZXQgcC5nLmEuIGZlamwuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgImFkdmFyc2VsOiBmaWxzdPhycmVsc2VyIGFma29ydGV0IHRpbCAlbHVNQiAobWludXMgMSBieXRlKS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogdWlkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisiYWR2YXJzZWw6IHVpZHMgZm9ya29ydGV0IHRpbCAldSBiaXQuICAoRGV0dGUga2FuIGdpdmUgc2lra2VyaGVkc3Byb2JsZW1lci4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorImFkdmFyc2VsOiBnaWRzIGZvcmtvcnRldCB0aWwgJXUgYml0LiAgKERldHRlIGthbiBnaXZlIHNpa2tlcmhlZHNwcm9ibGVtZXIuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorIkFEVkFSU0VMOiBlbmhlZHNudW1yZSBlciBhZmtvcnRldCB0aWwgJXUgYml0LiAgRGV0IGJldHlkZXIgbuZzdGVuIG1lZCAiCisic2lra2VyaGVkXG4iCisiYXQgbm9nbGUgYWYgZW5oZWRzZmlsZXJuZSB2aWwgduZyZSBmZWpsYmVo5mZ0ZWRlLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstYyB8IC1sIGZpbGVuYW1lXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICJCcnVnOiAlcyBbLWMgfCAtbCBmaWxuYXZuXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmF2biBbYmxva2tlXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBhIGZpbGVzeXN0ZW0gaGVyZSEiCittc2dzdHIgIiVzIGVyIG1vbnRlcmV0OyB2aWwgaWtrZSBvcHJldHRlIGV0IGZpbHN5c3RlbSBoZXIhIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxODgKK21zZ2lkICJzZWVrIHRvIGJvb3QgYmxvY2sgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAibWlzbHlra2V0IHP4Z25pbmcgdGlsIG9wc3RhcnRzYmxvayBpIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkwCittc2dpZCAidW5hYmxlIHRvIGNsZWFyIGJvb3Qgc2VjdG9yIgorbXNnc3RyICJrdW5uZSBpa2tlIHNsZXR0ZSBvcHN0YXJ0c3Nla3RvciIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkyCittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJz+GduaW5nIG1pc2x5a2tlZGVzIGkgd3JpdGVfdGFibGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTYKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJrdW5uZSBpa2tlIHNrcml2ZSBpbm9kZS1vdmVyc2lndCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk4Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJrdW5uZSBpa2tlIHNrcml2ZSB6b25lb3ZlcnNpZ3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwMAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgImt1bm5lIGlra2Ugc2tyaXZlIGlub2RlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA5Cittc2dpZCAid3JpdGUgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJtaXNseWtrZXQgc2tyaXZuaW5nIGkgd3JpdGVfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIxNyBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyOTEKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM0MAorbXNnaWQgInRvbyBtYW55IGJhZCBibG9ja3MiCittc2dzdHIgImZvciBtYW5nZSB1Z3lsZGlnZSBibG9ra2UiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgImlra2Ugbm9rIGd5bGRpZ2UgYmxva2tlIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDAKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVycyBmb3IgbWFwcyIKK21zZ3N0ciAia3VubmUgaWtrZSBhbGxva2VyZSBidWZmZXJlIHRpbCBvdmVyc2lndGVyIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgImt1bm5lIGlra2UgYWxsb2tlcmUgYnVmZmVyZSB0aWwgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk1heHNpemU9JWxkXG4iCisiXG4iCittc2dzdHIgIiIKKyJNYWtzc3T4cnJlbHNlPSVsZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NjkKK21zZ2lkICJzZWVrIGZhaWxlZCBkdXJpbmcgdGVzdGluZyBvZiBibG9ja3MiCittc2dzdHIgInP4Z25pbmcgZmVqbGVkZSB1bmRlciB0ZXN0IGFmIGJsb2trZSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICJNeXN0aXNrZSB25nJkaWVyIGkgZG9fY2hlY2s6IHNhbmRzeW5saWd2aXMgcHJvZ3JhbWZlamxcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTA4IGRpc2stdXRpbHMvbWtzd2FwLmM6MzE1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gY2hlY2tfYmxvY2tzIgorbXNnc3RyICJz+GduaW5nIG1pc2x5a2tlZGVzIGkgY2hlY2tfYmxvY2tzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MTcKK21zZ2lkICJiYWQgYmxvY2tzIGJlZm9yZSBkYXRhLWFyZWE6IGNhbm5vdCBtYWtlIGZzIgorbXNnc3RyICJ1Z3lsZGlnZSBibG9ra2UgZvhyIGRhdGFvbXLlZGU6IGthbiBpa2tlIG9wcmV0dGUgZmlsc3lzdGVtIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWQgdWd5bGRpZ2UgYmxva2tlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBibG9ja1xuIgorbXNnc3RyICJlbiB1Z3lsZGlnIGJsb2tcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgImthbiBpa2tlIOVibmUgZmlsIG1lZCB1Z3lsZGlnZSBibG9ra2UiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWRibG9jayBudW1iZXIgaW5wdXQgZXJyb3Igb24gbGluZSAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0MAorIywgZnV6enkKK21zZ2lkICJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIKK21zZ3N0ciAiS2FuIGlra2UgbOZzZSBkcmV2IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgInN0cnRvbC1mZWpsOiBhbnRhbGxldCBhZiBibG9ra2UgaWtrZSBhbmdpdmV0IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgJXMiCittc2dzdHIgImt1bm5lIGlra2UgZmluZGUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAia3VubmUgaWtrZSDlYm5lICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2VjdG9yIHNpemUgZm9yICVzIgorbXNnc3RyICJLYW4gaWtrZSBm5SBzdPhycmVsc2VuIGFmICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgIkthbiBpa2tlIGblIHN0+HJyZWxzZW4gYWYgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJ3aWxsIG5vdCB0cnkgdG8gbWFrZSBmaWxlc3lzdGVtIG9uICclcyciCittc2dzdHIgInZpbCBpa2tlIGZvcnP4Z2UgYXQgb3ByZXR0ZSBmaWxzeXN0ZW0gcOUgJyVzJyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjY1CisjLCBmdXp6eQorbXNnaWQgIm51bWJlciBvZiBibG9ja3MgdG9vIHNtYWxsIgorbXNnc3RyICJBbnRhbCBzZWt0b3JlciIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICJVZ3lsZGlnIHNpZGVzdPhycmVsc2UgJyVkJyBhbmdpdmV0IGFmIGJydWdlclxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiIgorIkJlbnl0dGVyIGJydWdlci1iZXN0ZW10IHNpZGVzdPhycmVsc2UgJWQgaSBzdGVkZXQgZm9yIHN5c3RlbXbmcmRpZXJuZSAlZC8lZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiVWd5bGRpZyBzdPhyZWxzZSBw5SBzd2FwLWhvdmVkZSwgc2tyZXYgaWtrZSBub2dldCBt5nJrZS5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFiZWwgd2FzIHRydW5jYXRlZC5cbiIKK21zZ3N0ciAiTeZya2UgYWZrb3J0ZXQuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGxhYmVsLCAiCittc2dzdHIgImludGV0IG3mcmtlLCAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHV1aWRcbiIKK21zZ3N0ciAiaW5nZW4gdXVpZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI4MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1wUEFHRVNaXSBbLUwgbGFiZWxdIFstVSBVVUlEXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiQnJ1ZzogJXMgWy1jXSBbLXYwfC12MV0gWy1wU0lERVNUUl0gWy1MIG3mcmtlXSAvZGV2L25hdm4gW2Jsb2trZV1cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyOTcKK21zZ2lkICJ0b28gbWFueSBiYWQgcGFnZXMiCittc2dzdHIgImZvciBtYW5nZSB1Z3lsZGlnZSBzaWRlciIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMTAgbWlzYy11dGlscy9sb29rLmM6MTgyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExNzkKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMTYgdGV4dC11dGlscy9tb3JlLmM6MjAyNworbXNnaWQgIk91dCBvZiBtZW1vcnkiCittc2dzdHIgIkh1a29tbWVsc2Ugb3BicnVndCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBwYWdlXG4iCittc2dzdHIgImVuIHVneWxkaWcgc2lkZVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVsdSB1Z3lsZGlnZSBzaWRlclxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQwMiBkaXNrLXV0aWxzL21rc3dhcC5jOjQzOSBkaXNrLXV0aWxzL21rc3dhcC5jOjY1OQorbXNnaWQgInVuYWJsZSB0byByZXdpbmQgc3dhcC1kZXZpY2UiCittc2dzdHIgImt1bm5lIGlra2Ugc3BvbGUgdGlsYmFnZSBw5SBzd2FwLWVuaGVkZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBuZXcgbGliYmxraWQgcHJvYmUiCittc2dzdHIgImt1bm5lIGlra2UgYWxsb2tlcmUgYnVmZmVyZSB0aWwgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgImt1bm5lIGlra2Ugc2xldHRlIG9wc3RhcnRzc2VrdG9yIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHdhcm5pbmc6IGRvbid0IGVyYXNlIGJvb3RiaXRzIHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoJXMgcGFydGl0aW9uIHRhYmxlIGRldGVjdGVkKS4gIgorbXNnc3RyICIgICBwICAgIHZpcyBCU0QtcGFydGl0aW9uc3RhYmVsIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICBvbiB3aG9sZSBkaXNrLiAiCittc2dzdHIgIiAgIHMgICAgdmlzIGhlbGUgZGlza23mcmthdGV0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoY29tcGlsZWQgd2l0aG91dCBsaWJibGtpZCkuICIKK21zZ3N0ciAiICAgcyAgICB2aXMgaGVsZSBkaXNrbeZya2F0ZXQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkb2VzIG5vdCBzdXBwb3J0IHN3YXBzcGFjZSB2ZXJzaW9uICVkLlxuIgorbXNnc3RyICIlczogZmVqbDogdWtlbmR0IHZlcnNpb24gJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyJGZWpsIHZlZCBsdWtuaW5nIGFmIGZpbFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IE5vd2hlcmUgdG8gc2V0IHVwIHN3YXAgb24/XG4iCittc2dzdHIgIiVzOiBmZWpsOiBJbmdlbiBzdGVkZXIgYXQgb3Bz5nR0ZSBzd2FwP1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBmZWpsOiBzdPhycmVsc2VuICVsdSBlciBzdPhycmUgZW5kIGVuaGVkc3N0+HJyZWxzZW4gJWx1XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHN3YXAgYXJlYSBuZWVkcyB0byBiZSBhdCBsZWFzdCAlbGQgS2lCXG4iCittc2dzdHIgIiVzOiBmZWpsOiBzd2FwLW9tcuVkZSBza2FsIG1pbmRzdCB25nJlIHDlICVsZGtCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd2FybmluZzogdHJ1bmNhdGluZyBzd2FwIGFyZWEgdG8gJWxsdSBLaUJcbiIKK21zZ3N0ciAiJXM6IGZlamw6IGFma29ydGVyIHN3YXAtb21y5WRldCB0aWwgJWxka0JcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogd2lsbCBub3QgdHJ5IHRvIG1ha2Ugc3dhcGRldmljZSBvbiAnJXMnXG4iCittc2dzdHIgIlZpbCBpa2tlIGZvcnP4Z2UgYXQgb3ByZXR0ZSBzd2FwLWVuaGVkIHDlICclcyciCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6ICVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2Ugc3dhcHNwYWNlLlxuIgorbXNnc3RyICIlcyBlciBtb250ZXJldDsgdmlsIGlra2Ugb3ByZXR0ZSBldCBmaWxzeXN0ZW0gaGVyISIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NDgKK21zZ2lkICJVbmFibGUgdG8gc2V0IHVwIHN3YXAtc3BhY2U6IHVucmVhZGFibGUiCittc2dzdHIgIkt1bm5lIGlra2Uga2xhcmf4cmUgc3dhcC1vbXLlZGU6IHVs5nNlbGlndCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIktsYXJn+HJlciBzd2FwLW9tcuVkZSB2ZXJzaW9uICVkLCBzdPhycmVsc2UgPSAlbGx1IGtCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byB3cml0ZSBzaWduYXR1cmUgcGFnZTogJXMiCittc2dzdHIgImt1bm5lIGlra2Ugc2tyaXZlIHNpZ25hdHVyLXNpZGUiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICJmc3luYyBtaXNseWtrZWRlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gb2J0YWluIHNlbGludXggZmlsZSBsYWJlbDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MAorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgImt1bm5lIGlra2UgZmluZGUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgbmV3IHNlbGludXggY29udGV4dCIKK21zZ3N0ciAia3VubmUgaWtrZSBza3JpdmUgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5NQorbXNnaWQgImNvdWxkbid0IGNvbXB1dGUgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NzAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIHJlbGFiZWwgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgImt1bm5lIGlra2Ugb21k+GJlICVzIHRpbCAlczogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiAgJXMgIgorbXNnc3RyICJCcnVnOlxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlICclcycgaXMgY29udHJvbCByYXcgZGV2ICh1c2UgcmF3PE4+IHdoZXJlIDxOPiBpcyBncmVhdGVyIHRoYW4gemVybylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSBibG9jayBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIkt1bm5lIGlra2UgbOVzZSBs5XNlZmlsZW4gJXM6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSBibG9jayBkZXZcbiIKK21zZ3N0ciAiQWR2YXJzZWw6ICVzIGVyIGlra2UgZW4gYmxva2VuaGVkXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBtYXN0ZXIgcmF3IGRldmljZSAnIgorbXNnc3RyICJrdW5uZSBpa2tlIGZpbmRlIGVuaGVkZW4gJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgImt1bm5lIGlra2UgZmluZGUgZW5oZWRlbiAlcyIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iCittc2dzdHIgIi9kZXYvJXM6IGlra2UgZW4gdGVnbmVuaGVkIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgcmF3IGRldlxuIgorbXNnc3RyICIlcyBlciBpa2tlIGVuIGJsb2tlbmhlZCIKKworIzogZGlzay11dGlscy9yYXcuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcXVlcnlpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNDEgZGlzay11dGlscy9yYXcuYzoyNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmF3JWQ6XHRib3VuZCB0byBtYWpvciAlZCwgbWlub3IgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igc2V0dGluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiZmVqbCB2ZWQgZm9yc/hnIHDlIGF0IHN0b3BwZSB0amVuZXN0ZW46IFwiJXNcIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzc4IGZkaXNrL2NmZGlzay5jOjIwODMKK21zZ2lkICJVbnVzYWJsZSIKK21zZ3N0ciAiVWJydWdlbGlnIgorCisjOiBmZGlzay9jZmRpc2suYzozODAgZmRpc2svY2ZkaXNrLmM6MjA4NQorbXNnaWQgIkZyZWUgU3BhY2UiCittc2dzdHIgIkZyaXQgb21y5WRlIgorCisjOiBmZGlzay9jZmRpc2suYzozODMKK21zZ2lkICJMaW51eCBleHQyIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9jZmRpc2suYzozODUKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICJMaW51eCBleHQzIgorCisjOiBmZGlzay9jZmRpc2suYzozODcKK21zZ2lkICJMaW51eCBYRlMiCittc2dzdHIgIkxpbnV4IFhGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBKRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIkRpc2tlbiBlciBibGV2ZXQgdWRza2lmdGV0LlxuIgorCisjOiBmZGlzay9jZmRpc2suYzo0MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVib290IHRoZSBzeXN0ZW0gdG8gZW5zdXJlIHRoZSBwYXJ0aXRpb24gdGFibGUgaXMgY29ycmVjdGx5IHVwZGF0ZWQuXG4iCittc2dzdHIgIiIKKyJHZW5zdGFydCBzeXN0ZW1ldCBmb3IgYXQgc2lrcmUsIGF0IHBhcnRpdGlvbnN0YWJlbGxlbiBlciBvcGRhdGVyZXQga29ycmVrdC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBRFZBUlNFTDogTOZzIHZlbmxpZ3N0IGNmZGlzayBtYW51YWwtc2lkZW4gZm9yXG4iCisieWRlcmxpZ2VyZSBpbmZvcm1hdGlvbiwgaHZpcyBkdSBoYXIgb3ByZXR0ZXQgZWxsZXJcbiIKKyLmbmRyZXQgRE9TIDYueCBwYXJ0aXRpb25lci5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIkZBVEFMIEZFSkwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNworbXNnaWQgIlByZXNzIGFueSBrZXkgdG8gZXhpdCBjZmRpc2siCittc2dzdHIgIlRyeWsgZW4gdGFzdCBmb3IgYXQgYWZzbHV0dGUgY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzo1NjQgZmRpc2svY2ZkaXNrLmM6NTcyCittc2dpZCAiQ2Fubm90IHNlZWsgb24gZGlzayBkcml2ZSIKK21zZ3N0ciAiS2FuIGlra2Ugc/hnZSBw5SBkcmV2IgorCisjOiBmZGlzay9jZmRpc2suYzo1NjYKK21zZ2lkICJDYW5ub3QgcmVhZCBkaXNrIGRyaXZlIgorbXNnc3RyICJLYW4gaWtrZSBs5nNlIGRyZXYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU3NAorbXNnaWQgIkNhbm5vdCB3cml0ZSBkaXNrIGRyaXZlIgorbXNnc3RyICJLYW4gaWtrZSBza3JpdmUgcOUgZHJldiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTE3Cittc2dpZCAiVG9vIG1hbnkgcGFydGl0aW9ucyIKK21zZ3N0ciAiRm9yIG1hbmdlIHBhcnRpdGlvbmVyIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiUGFydGl0aW9uIHN0YXJ0ZXIgZvhyIHNla3RvciAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIlBhcnRpdGlvbiBzbHV0dGVyIGb4ciBzZWt0b3IgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTMyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiUGFydGl0aW9uIHN0YXJ0ZXIgZWZ0ZXIgc2x1dC1w5S1kaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiUGFydGl0aW9uIHNsdXR0ZXIgZWZ0ZXIgc2x1dC1w5S1kaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzo5NDIKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBpbiB0aGUgZmluYWwgcGFydGlhbCBjeWxpbmRlciIKK21zZ3N0ciAiUGFydGl0aW9uZW4gc2x1dHRlciBpIGRlbiBzaWRzdGUgcGFydGlhbGN5bGluZGVyIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgImxvZ2lza2UgcGFydGl0aW9uZXIgaWtrZSBpIGRpc2stcuZra2Vm+GxnZSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgImxvZ2lzayBwYXJ0aXRpb25zLW92ZXJsYXAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJmb3JzdPhycmV0IGxvZ2lzayBwYXJ0aXRpb25zLW92ZXJsYXAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMDMKK21zZ2lkICIiCisiISEhISBJbnRlcm5hbCBlcnJvciBjcmVhdGluZyBsb2dpY2FsIGRyaXZlIHdpdGggbm8gZXh0ZW5kZWQgcGFydGl0aW9uICEhISEiCittc2dzdHIgIiIKKyIhISEhIEludGVybiBmZWpsIHVuZGVyIG9wcmV0dGVsc2UgYWYgbG9naXNrIGRyZXYgdWRlbiB1ZHZpZGV0IHBhcnRpdGlvbiAhISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDE0IGZkaXNrL2NmZGlzay5jOjEwMjYKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisiS2FuIGlra2Ugb3ByZXR0ZSBsb2dpc2sgZHJldiBoZXIgLS0gdmlsbGUgcmVzdWx0ZXJlIGkgdG8gdWR2aWRlZGUgcGFydGl0aW9uZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjExNjgKK21zZ2lkICJNZW51IGl0ZW0gdG9vIGxvbmcuIE1lbnUgbWF5IGxvb2sgb2RkLiIKK21zZ3N0ciAiTWVudXB1bmt0IGZvciBsYW5ndC4gTWVudSBzZXIgbXVsaWd2aXMgbeZya2VsaWd0IHVkLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTIyNAorIywgZnV6enkKK21zZ2lkICJNZW51IHdpdGhvdXQgZGlyZWN0aW9uLiBEZWZhdWx0aW5nIHRvIGhvcml6b250YWwuIgorbXNnc3RyICJNZW51IHVkZW4gcmV0bmluZy4gVuZsZ2VyIHN0YW5kYXJkZW4gaG9yaXNvbnRhbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAiVWd5bGRpZyB0YXN0IgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIlRyeWsgZW4gdGFzdCBmb3IgYXQgZm9ydHPmdHRlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NgorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIlByaW1hcnkiCittc2dzdHIgIlByaW3mciIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNgorbXNnaWQgIkNyZWF0ZSBhIG5ldyBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiT3ByZXQgZW4gbnkgcHJpbeZyIHBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNyBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODUKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJMb2dpY2FsIgorbXNnc3RyICJMb2dpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIk9wcmV0IGVuIG55IGxvZ2lzayBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MyBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiQ2FuY2VsIgorbXNnc3RyICJGb3J0cnlkIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMKK21zZ2lkICJEb24ndCBjcmVhdGUgYSBwYXJ0aXRpb24iCittc2dzdHIgIk9wcmV0IGlra2UgcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiISEhIEludGVybiBmZWpsICEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NworbXNnaWQgIlNpemUgKGluIE1CKTogIgorbXNnc3RyICJTdPhycmVsc2UgKGkgTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIkJlZ3luZGVsc2UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJUaWxm+GogcGFydGl0aW9uIGkgc3RhcnRlbiBhZiBkZXQgZnJpZSBvbXLlZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJFbmQiCittc2dzdHIgIlNsdXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJUaWxm+GogcGFydGl0aW9uIGkgc2x1dG5pbmdlbiBhZiBkZXQgZnJpZSBvbXLlZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICJJa2tlIHBsYWRzIHRpbCBhdCBvcHJldHRlIHVkdmlkZXQgcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc0Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJJbmdlbiBwYXJ0aXRpb25zdGFiZWwuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzgKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuIFN0YXJ0aW5nIHdpdGggemVybyB0YWJsZS4iCittc2dzdHIgIkluZ2VuIHBhcnRpdGlvbnN0YWJlbC4gU3RhcnRlciBtZWQgbnVsc3RpbGxldCB0YWJlbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1ODgKK21zZ2lkICJCYWQgc2lnbmF0dXJlIG9uIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiVWd5bGRpZyBzaWduYXR1ciBpIHBhcnRpdGlvbnN0YWJlbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorbXNnaWQgIlVua25vd24gcGFydGl0aW9uIHRhYmxlIHR5cGUiCittc2dzdHIgIlVrZW5kdCBwYXJ0aXRpb25zdGFiZWwtdHlwZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5NAorbXNnaWQgIkRvIHlvdSB3aXNoIHRvIHN0YXJ0IHdpdGggYSB6ZXJvIHRhYmxlIFt5L05dID8iCittc2dzdHIgIlZpbCBkdSBzdGFydGUgbWVkIG51bHN0aWxsZXQgdGFiZWwgW2ovTl0gPyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAiRHUgYW5nYXYgZmxlcmUgY3lsaW5kcmUgZW5kIGRlciBrYW4gduZyZSBw5SBkaXNrZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzQKK21zZ2lkICJDYW5ub3Qgb3BlbiBkaXNrIGRyaXZlIgorbXNnc3RyICJLYW4gaWtrZSDlYm5lIGRyZXYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzYgZmRpc2svY2ZkaXNrLmM6MTg2NQorbXNnaWQgIk9wZW5lZCBkaXNrIHJlYWQtb25seSAtIHlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gd3JpdGUiCittc2dzdHIgIsVibmVkZSBkcmV2IHNrcml2ZWJlc2t5dHRldCAtIGR1IGhhciBpa2tlIGFkZ2FuZyB0aWwgYXQgc2tyaXZlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIkthbiBpa2tlIGblIGRpc2tzdPhycmVsc2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJVZ3lsZGlnIHByaW3mcnBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiVWd5bGRpZyBsb2dpc2sgcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoxODc3Cittc2dpZCAiV2FybmluZyEhICBUaGlzIG1heSBkZXN0cm95IGRhdGEgb24geW91ciBkaXNrISIKK21zZ3N0ciAiQWR2YXJzZWwhISBEZXR0ZSD4ZGVs5mdnZXIgbXVsaWd2aXMgZGF0YSBw5SBkaW4gZGlzayEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODEKKyMsIGZ1enp5Cittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIiIKKyJFciBkdSBzaWtrZSBw5SwgYXQgZHUgdmlsIHNrcml2ZSBwYXJ0aXRpb25zdGFiZWxsZW4gdGlsIGRpc2tlbj8gKGphIGVsbGVyICIKKyJuZWopOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODcKK21zZ2lkICJubyIKK21zZ3N0ciAibmVqIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg5Cittc2dpZCAiRGlkIG5vdCB3cml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiU2tyZXYgaWtrZSBwYXJ0aXRpb25zdGFiZWxsZW4gdGlsIGRpc2tlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5MQorbXNnaWQgInllcyIKK21zZ3N0ciAiamEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTUKK21zZ2lkICJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIKK21zZ3N0ciAiU2tyaXYgdmVubGlnc3QgJ2phJyBlbGxlciAnbmVqJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIlNrcml2ZXIgcGFydGl0aW9uc3RhYmVsIHRpbCBkaXNrZW4uLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJTa3JldiBwYXJ0aXRpb25zdGFiZWwgdGlsIGRpc2tlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNgorIywgZnV6enkKK21zZ2lkICIiCisiV3JvdGUgcGFydGl0aW9uIHRhYmxlLCBidXQgcmUtcmVhZCB0YWJsZSBmYWlsZWQuICBSdW4gcGFydHByb2JlKDgpLCBrcGFydHgiCisiKDgpIG9yIHJlYm9vdCB0byB1cGRhdGUgdGFibGUuIgorbXNnc3RyICIiCisiU2tyZXYgcGFydGl0aW9uc3RhYmVsLCBtZW4gZ2VuaW5kbOZzbmluZyBtaXNseWtrZWRlcy4gR2Vuc3RhcnQgZm9yIGF0ICIKKyJvcGRhdGVyZSB0YWJlbGxlbi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIkluZ2VuIHByaW3mcnBhcnRpdGlvbmVyIGVyIG1hcmtlcmV0IG9wc3RhcnRiYXIuIERPUyBNQlIgdmlsIGlra2Uga3VubmUgIgorInN0YXJ0ZSBvcC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJEYSBmbGVyZSBwcmlt5nJwYXJ0aXRpb25lciBlciBvcHN0YXJ0YmFyZSwgdmlsIERPUyBNQlIgaWtrZSBrdW5uZSBzdGFydGUgb3AuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICJBbmdpdiBmaWxuYXZuIGVsbGVyIHRyeWsgUkVUVVIgZm9yIGF0IHZpc2UgcOUgc2vmcm1lbjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgIkthbiBpa2tlIOVibmUgZmlsZW4gJyVzJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlc1xuIgorbXNnc3RyICJEcmV2OiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNla3RvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2VrdG9yICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgSW5nZW4gICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NworbXNnaWQgIiAgIFByaS9Mb2ciCittc2dzdHIgIiAgIFByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgICBQcmlt5nIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIgICBMb2dpc2sgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICJVa2VuZHQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTUgZmRpc2svY2ZkaXNrLmM6MjU2MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkKK21zZ2lkICJCb290IgorbXNnc3RyICJPcHN0YXJ0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk5Cittc2dpZCAiTm9uZSIKK21zZ3N0ciAiSW5nZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIlBhcnRpdGlvbnN0YWJlbCBmb3IgJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNgorbXNnaWQgIiAgICAgICAgICAgICAgIEZpcnN0ICAgICAgIExhc3RcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICAgRvhyc3RlICAgICAgU2lkc3RcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNworbXNnaWQgIiIKKyIgIyBUeXBlICAgICAgIFNlY3RvciAgICAgIFNlY3RvciAgIE9mZnNldCAgICBMZW5ndGggICBGaWxlc3lzdGVtIFR5cGUgKElEKSAiCisiRmxhZ1xuIgorbXNnc3RyICIiCisiICMgVHlwZSAgICAgICBTZWt0b3IgICAgICBTZWt0b3IgICBmb3Jza3lkbi4gTOZuZ2RlICAgRmlsc3lzdGVtICBUeXBlIChJRCkgIgorIkZsYWdcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzOAorbXNnaWQgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMQorIywgZnV6enkKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgICAtLS1TdGFydGVyLS0tICAgICAgIC0tLS1FbmRlci0tLS0gICAgIFN0YXJ0ICAgICBBbnRhbFxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCisjLCBmdXp6eQorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICIgIyBGbGFnICBIb3ZkIFNla3QgQ3lsICAgSUQgIEhvdmQgU2VrdCBDeWwgICAgIFNla3RvciAgICBTZWt0b3JlclxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIzCisjLCBmdXp6eQorbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJSYXciCittc2dzdHIgIlLlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIHVzaW5nIHJhdyBkYXRhIGZvcm1hdCIKK21zZ3N0ciAiVmlzIHRhYmVsbGVuIGkgcuV0ZGF0YSBmb3JtYXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlNla3RvcmVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiVmlzIHRhYmVsbGVuIG9yZG5ldCBlZnRlciBzZWt0b3JlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIlRhYmxlIgorbXNnc3RyICJUYWJlbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiVmlzIGt1biBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJEb24ndCBwcmludCB0aGUgdGFibGUiCittc2dzdHIgIlZpcyBpa2tlIHRhYmVsbGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg3Cittc2dpZCAiSGVscCBTY3JlZW4gZm9yIGNmZGlzayIKK21zZ3N0ciAiSGrmbHBlc2vmcm0gZm9yIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4OQorbXNnaWQgIlRoaXMgaXMgY2ZkaXNrLCBhIGN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbmluZyBwcm9ncmFtLCB3aGljaCIKK21zZ3N0ciAiRGV0dGUgZXIgY2ZkaXNrLCBldCBjdXJzZXMtYmFzZXJldCBkaXNrcGFydGl0aW9uZXJpbmdzLXByb2dyYW0sIHNvbSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MAorbXNnaWQgImFsbG93cyB5b3UgdG8gY3JlYXRlLCBkZWxldGUgYW5kIG1vZGlmeSBwYXJ0aXRpb25zIG9uIHlvdXIgaGFyZCIKK21zZ3N0ciAibGFkZXIgZGlnIG9wcmV0dGUsIHNsZXR0ZSBlbGxlciBtb2RpZmljZXJlIHBhcnRpdGlvbmVyIHDlIGRpbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MQorbXNnaWQgImRpc2sgZHJpdmUuIgorbXNnc3RyICJoYXJkZGlzay4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJLb21tYW5kbyAgICAgQmV0eWRuaW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk2Cittc2dpZCAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCittc2dzdHIgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk3Cittc2dpZCAiICBiICAgICAgICAgIFRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBiICAgICAgICAgIFNraWZ0IG9wc3RhcnRiYXItZmxhZ2V0IGZvciBwYXJ0aXRpb25lbiAoJ2Jvb3RhYmxlJykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTgKK21zZ2lkICIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBkICAgICAgICAgIFNsZXQgcGFydGl0aW9uZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTkKK21zZ2lkICIgIGcgICAgICAgICAgQ2hhbmdlIGN5bGluZGVycywgaGVhZHMsIHNlY3RvcnMtcGVyLXRyYWNrIHBhcmFtZXRlcnMiCittc2dzdHIgIiAgZyAgICAgICAgICBSZXQgY3lsaW5kZXIsIGhvdmVkLCBzZWt0b3Jlci1wZXItc3BvciBwYXJhbWV0cmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgICAgICAgICAgV0FSTklORzogVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBwZW9wbGUgd2hvIgorbXNnc3RyICIgICAgICAgICAgICAgQURWQVJTRUw6IERlbm5lIGtvbW1hbmRvIGL4ciBrdW4gYnJ1Z2VzIGFmIGZvbGssIGRlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICAgZXIga2xhciBvdmVyLCBodmFkIGRlIGf4ci4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICBWaXMgZGVubmUgc2vmcm0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgbSAgICAgICAgICBNYWtzaW3pciBwYXJ0aXRpb25lbnMgZGlza2ZvcmJydWciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgICAgICAgICAgTm90ZTogVGhpcyBtYXkgbWFrZSB0aGUgcGFydGl0aW9uIGluY29tcGF0aWJsZSB3aXRoIgorbXNnc3RyICIgICAgICAgICAgICAgQmVt5nJrOiBEZXR0ZSBrYW4gZ/hyZSBwYXJ0aXRpb25lbiBpbmtvbXBhdGliZWwgbWVkIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDYKK21zZ2lkICIgIG4gICAgICAgICAgQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICIgIG4gICAgICAgICAgT3ByZXQgbnkgcGFydGl0aW9uIGkgZnJpdCBvbXLlZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIgIHAgICAgICAgICAgVWRs5nMgcGFydGl0aW9uc3RhYmVsbGVuIHRpbCBza+ZybWVuIGVsbGVyIGVuIGZpbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOAorbXNnaWQgIiAgICAgICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhlIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgICAgICAgICAgIERlciBlciBmbGVyZSBmb3Jza2VsbGlnZSBmb3JtYXRlciBw5SBwYXJ0aXRpb25lbiwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIGNob29zZSBmcm9tOiIKK21zZ3N0ciAiICAgICAgICAgICAgIHNvbSBkdSBrYW4gduZsZ2UgbWVsbGVtOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIgICAgICAgICAgICAgICAgciAtIFLlZGF0YSAobvhqYWd0aWcgZGUsIHNvbSB2aWxsZSBza3JpdmVzIHDlIGRpc2tlbikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHMgLSBUYWJlbCBvcmRuZXQgZWZ0ZXIgc2VrdG9yZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTIKK21zZ2lkICIgICAgICAgICAgICAgICAgdCAtIFRhYmxlIGluIHJhdyBmb3JtYXQiCittc2dzdHIgIiAgICAgICAgICAgICAgICB0IC0gVGFiZWwgaSBy5WRhdGEgZm9ybWF0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAgQWZzbHV0IHByb2dyYW0gdWRlbiBhdCBza3JpdmUgcGFydGl0aW9uc3RhYmVsbGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIgIHQgICAgICAgICAgU2tpZnQgZmlsc3lzdGVtIHR5cGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIgIHUgICAgICAgICAgU2tpZnQgZW5oZWQgZm9yIHZpc25pbmcgYWYgcGFydGl0aW9uc3N0+HJyZWxzZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTYKK21zZ2lkICIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiCittc2dzdHIgIiAgICAgICAgICAgICBTa2lmdGVyIG1lbGxlbSBNQiwgc2VrdG9yZXIgb2cgY3lsaW5kcmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiICBXICAgICAgICAgIFNrcml2IHBhcnRpdGlvbnN0YWJlbGxlbiB0aWwgZGlzayAoc2thbCB25nJlIHN0b3J0IFcpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE4Cittc2dpZCAiICAgICAgICAgICAgIFNpbmNlIHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhIG9uIHRoZSBkaXNrLCB5b3UgbXVzdCIKK21zZ3N0ciAiICAgICAgICAgICAgIFNpZGVuIGRldHRlIGthbiD4ZGVs5mdnZSBkYXRhIHDlIGRpc2tlbiwgc2thbCBkdSBlbnRlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICAgICAgICAgICBlaXRoZXIgY29uZmlybSBvciBkZW55IHRoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciIKK21zZ3N0ciAiICAgICAgICAgICAgIGJla3LmZnRlIGVsbGVyIGFmdmlzZSB2ZWQgYXQgc2tyaXZlIGhlbmhvbGRzdmlzICdqYSciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgICAgICAgICAgYG5vJyIKK21zZ3N0ciAiICAgICAgICAgICAgIGVsbGVyICduZWonIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIxCittc2dpZCAiVXAgQXJyb3cgICAgIE1vdmUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBwYXJ0aXRpb24iCittc2dzdHIgIlBpbCBvcCAgICAgICBGbHl0IG1hcmv4cmVuIHRpbCBmb3JyaWdlIHBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMgorbXNnaWQgIkRvd24gQXJyb3cgICBNb3ZlIGN1cnNvciB0byB0aGUgbmV4dCBwYXJ0aXRpb24iCittc2dzdHIgIlBpbCBuZWQgICAgICBGbHl0IG1hcmv4cmVuIHRpbCBu5nN0ZSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDVFJMLUwgICAgICAgR2VudGVnbmVyIHNr5nJtZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjQKK21zZ2lkICIgID8gICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgPyAgICAgICAgICBWaXMgZGVubmUgc2vmcm0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICJCZW3mcms6IEFsbGUga29tbWFuZG9lcm5lIGthbiBhbmdpdmVzIG1lZCBlbnRlbiBzdG9yZSBlbGxlciBzbeUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgImJvZ3N0YXZlciAodW5kdGFnZW4gVykuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzIKK21zZ2lkICJDeWxpbmRlcnMiCittc2dzdHIgIkN5bGluZHJlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICJTa2lmdCBjeWxpbmRlcmdlb21ldHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzAKK21zZ2lkICJIZWFkcyIKK21zZ3N0ciAiSG92ZWRlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJTa2lmdCBob3ZlZGdlb21ldHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAiU2tpZnQgc2VrdG9yZ2VvbWV0cmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICJG5nJkaWciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIkbmcmRpZyBtZWQgZ2VvbWV0cmnmbmRyaW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzc0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIKK21zZ3N0ciAiQW5naXYgYW50YWxsZXQgYWYgY3lsaW5kcmU6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIlVneWxkaWd0IGN5bGluZGVyYW50YWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTEKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGhlYWRzOiAiCittc2dzdHIgIkFuZ2l2IGFudGFsbGV0IGFmIGhvdmVkZXI6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAiVWd5bGRpZyBob3ZlZGFudGFsIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICJBbmdpdiBhbnRhbGxldCBhZiBzZWt0b3JlciBwZXIgc3BvcjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDExIGZkaXNrL2NmZGlzay5jOjI5NzUKK21zZ2lkICJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiCittc2dzdHIgIlVneWxkaWcgc2VrdG9yYW50YWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MTQKK21zZ2lkICJFbnRlciBmaWxlc3lzdGVtIHR5cGU6ICIKK21zZ3N0ciAiQW5naXYgZmlsc3lzdGVtdHlwZTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTMyCittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IgorbXNnc3RyICJLYW4gaWtrZSDmbmRyZSBmaWxzeXN0ZW10eXBlIHRpbCB0b20iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZXh0ZW5kZWQiCittc2dzdHIgIkthbiBpa2tlIOZuZHJlIGZpbHN5c3RlbXR5cGUgdGlsIHVkdmlkZXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rKCUwMlgpIgorbXNnc3RyICJVa3QoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjggZmRpc2svY2ZkaXNrLmM6MjU3MQorbXNnaWQgIiwgTkMiCittc2dzdHIgIiwgTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NzYgZmRpc2svY2ZkaXNrLmM6MjU3OQorbXNnaWQgIk5DIgorbXNnc3RyICJOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU4NworbXNnaWQgIlByaS9Mb2ciCittc2dzdHIgIlByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biAoJTAyWCkiCittc2dzdHIgIlVrZW5kdCAoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXMiCittc2dzdHIgIkRyZXY6ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQgTUIiCittc2dzdHIgIlN0+HJyZWxzZTogJWxsZCBieXRlLCAlbGxkIE1iIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQuJWxsZCBHQiIKK21zZ3N0ciAiU3T4cnJlbHNlOiAlbGxkIGJ5dGUsICVsbGQuJWxsZCBHYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3NworIywgYy1mb3JtYXQKK21zZ2lkICJIZWFkczogJWQgICBTZWN0b3JzIHBlciBUcmFjazogJWQgICBDeWxpbmRlcnM6ICVsbGQiCittc2dzdHIgIkhvdmVkZXI6ICVkICAgU2VrdG9yZXIgcGVyIHNwb3I6ICVkICAgQ3lsaW5kcmU6ICVsbGQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIk5hdm4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiRmxhZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MworbXNnaWQgIlBhcnQgVHlwZSIKK21zZ3N0ciAiUGFydC10eXBlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg0Cittc2dpZCAiRlMgVHlwZSIKK21zZ3N0ciAiRnMtdHlwZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NQorbXNnaWQgIltMYWJlbF0iCittc2dzdHIgIltN5nJrYXRdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgICBTZWt0b3JlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4OQorbXNnaWQgIiAgQ3lsaW5kZXJzIgorbXNnc3RyICIgIEN5bGluZHJlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkxCittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIiAgU3T4cnJlbHNlIChNQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiICBTdPhycmVsc2UgKEdCKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIkJvb3RhYmxlIgorbXNnc3RyICJPcHN0YXJ0YmFyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJTa2lmdCBvcHN0YXJ0YmFyLWZsYWdldCBmb3IgcGFydGl0aW9uZW4gKCdib290YWJsZScpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJTbGV0IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiU2xldCBwYXJ0aXRpb25lbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkdlb21ldHJ5IgorbXNnc3RyICJHZW9tZXRyaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkNoYW5nZSBkaXNrIGdlb21ldHJ5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICJTa2lmdCBkaXNrZ2VvbWV0cmkgKGt1biBmb3IgZWtzcGVydGVyKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIkhlbHAiCittc2dzdHIgIkhq5mxwIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiUHJpbnQgaGVscCBzY3JlZW4iCittc2dzdHIgIlZpcyBoauZscGVza+ZybSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIgorbXNnc3RyICJNYWtzaW3pciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIChleHBlcnRzIG9ubHkpIgorbXNnc3RyICJNYWtzaW3pciBkaXNrZm9yYnJ1Z2V0IGZvciBwYXJ0aXRpb25lbiAoa3VuIGZvciBla3NwZXJ0ZXIpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICJOeSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIkNyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiT3ByZXQgbnkgcGFydGl0aW9uIGkgZnJpdCBvbXLlZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiVWRs5nMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIlVkbOZzIHBhcnRpdGlvbnN0YWJlbGxlbiB0aWwgc2vmcm1lbiBlbGxlciB0aWwgZW4gZmlsIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCIKK21zZ3N0ciAiQWZzbHV0IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkFmc2x1dCBwcm9ncmFtIHVkZW4gYXQg5m5kcmUgcGFydGl0aW9uc3RhYmVsbGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAiVHlwZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIkNoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIChET1MsIExpbnV4LCBPUy8yIGFuZCBzbyBvbikiCittc2dzdHIgIlNraWZ0IGZpbHN5c3RlbXR5cGUgKERPUywgTGludXgsIE9TLzIgb3N2LikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAiRW5oZWRlciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIkNoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSAoTUIsIHNlY3QsIGN5bCkiCittc2dzdHIgIlNraWZ0IGVuaGVkZXIgZm9yIHZpc25pbmcgYWYgcGFydGl0aW9uc3RhYmVsbGVuIChNQiwgc2VrdCwgY3lsKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJTa3JpdiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrICh0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSkiCittc2dzdHIgIlNrcml2IHBhcnRpdGlvbnN0YWJlbGxlbiB0aWwgZGlzayAoZGV0dGUga2FuIPhkZWzmZ2dlIGRhdGEpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODA1Cittc2dpZCAiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiCittc2dzdHIgIkthbiBpa2tlIGf4cmUgZGVubmUgcGFydGl0aW9uIG9wc3RhcnRiYXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiS2FuIGlra2Ugc2xldHRlIGVuIHRvbSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MzUgZmRpc2svY2ZkaXNrLmM6MjgzNworbXNnaWQgIkNhbm5vdCBtYXhpbWl6ZSB0aGlzIHBhcnRpdGlvbiIKK21zZ3N0ciAiS2FuIGlra2UgbWFrc2ltZXJlIGRlbm5lIHBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NQorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIHVudXNhYmxlIgorbXNnc3RyICJEZW5uZSBwYXJ0aXRpb24gZXIgdWJydWdlbGlnIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ3Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgYWxyZWFkeSBpbiB1c2UiCittc2dzdHIgIkRlbm5lIHBhcnRpdGlvbiBlciBhbGxlcmVkZSBpIGJydWciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NjQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHRoZSB0eXBlIG9mIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiS2FuIGlra2Ug5m5kcmUgZW4gdG9tIHBhcnRpdGlvbnMgdHlwZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg5MSBmZGlzay9jZmRpc2suYzoyODk3Cittc2dpZCAiTm8gbW9yZSBwYXJ0aXRpb25zIgorbXNnc3RyICJJa2tlIGZsZXJlIHBhcnRpdGlvbmVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTA0Cittc2dpZCAiSWxsZWdhbCBjb21tYW5kIgorbXNnc3RyICJVZ3lsZGlnIGtvbW1hbmRvIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorbXNnc3RyICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiUHJpbnQgdmVyc2lvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiUHJpbnQgcGFydGl0aW9uIHRhYmxlOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B0aW9uc10gZGV2aWNlXG4iCisiSW50ZXJhY3RpdmUgdXNlOlxuIgorIiAgICAgICAgJXMgW29wdGlvbnNdIGRldmljZVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiLWE6IFVzZSBhcnJvdyBpbnN0ZWFkIG9mIGhpZ2hsaWdodGluZztcbiIKKyItejogU3RhcnQgd2l0aCBhIHplcm8gcGFydGl0aW9uIHRhYmxlLCBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHB0IGZyb20gZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzogT3ZlcnJpZGUgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMsXG4iCisiICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHRoZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjay5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkJydWc6XG4iCisiVmlzIHZlcnNpb246XG4iCisiICAgICAgICAlcyAtdlxuIgorIlZpIHBhcnRpdGlvbnN0YWJlbGxlbjpcbiIKKyIgICAgICAgICVzIC1QIHtyfHN8dH0gW3RpbHZhbGddIGVuaGVkXG4iCisiSW50ZXJha3RpdnQgYnJ1ZzpcbiIKKyIgICAgICAgICVzIFt0aWx2YWxnXSBlbmhlZFxuIgorIlxuIgorIlRpbHZhbGc6XG4iCisiLWE6IEJydWcgcGlsIGkgc3RlZGV0IGZvciBiYWdncnVuZHNmeWxkO1xuIgorIi16OiBTdGFydCBtZWQgZW4gdG9tIHBhcnRpdGlvbnN0YWJlbCBpIHN0ZWRldCBmb3IgYXQgbOZzZSBkaXNrZW5zO1xuIgorIi1jIEMgLWggSCAtcyBTOiBVbmRlcmtlbmQga2VybmVucyBpZGUgb20gYW50YWxsZXQgYWYgY3lsaW5kcmUsXG4iCisiICAgICAgICAgICAgICAgIGhvdmVkZXIgb2cgc2VrdG9yZXIvc3Bvci5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2thaXhsYWJlbC5jOjI3Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBBSVggbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBMaW51eCBjYW5ub3QgaGFuZGxlIHRoZXNlXG4iCisiXHRkaXNrcyBhdCB0aGUgbW9tZW50LiAgTmV2ZXJ0aGVsZXNzIHNvbWVcbiIKKyJcdGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKKyJcdDMuIEJlZm9yZSBkZWxldGluZyB0aGlzIHBoeXNpY2FsIHZvbHVtZSBiZSBzdXJlXG4iCisiXHQgICB0byByZW1vdmUgdGhlIGRpc2sgbG9naWNhbGx5IGZyb20geW91ciBBSVhcbiIKKyJcdCAgIG1hY2hpbmUuICAoT3RoZXJ3aXNlIHlvdSBiZWNvbWUgYW4gQUlYcGVydCkuIgorbXNnc3RyICIiCisiXG4iCisiXHREZXIgZXIgZXQgZ3lsZGlnIEFJWC1t5nJrYXQgcOUgZGVubmUgZGlzay5cbiIKKyJcdERlc3bmcnJlIGthbiBMaW51eCBlbmRudSBpa2tlIGFyYmVqZGUgbWVkIGRpc3NlXG4iCisiXHRkaXNrZS4gQWxsaWdldmVsIGVyIGhlciBub2dsZSBnb2RlIHLlZDpcbiIKKyJcdDEuIGZkaXNrIHZpbCD4ZGVs5mdnZSBkZW5zIGluZGhvbGQgbuVyIGR1IGdlbW1lci5cbiIKKyJcdDIuIFbmciBzaWtrZXIgcOUgYXQgZGVubmUgZGlzayBJS0tFIGVyIGVuIHZpdGFsXG4iCisiXHQgICBkZWwgYWYgZW4gYmluZC1ncnVwcGUuIChFbGxlcnMga2FuIGR1IG9nc+Ugc2xldHRlXG4iCisiXHQgICBkZSBhbmRyZSBkaXNrZSwgaHZpcyBkZSBpa2tlIGVyIHNwZWpsZWRlLilcbiIKKyJcdDMuIEb4ciBkdSBzbGV0dGVyIGRldHRlIGZ5c2lza2UgYmluZCwgduZyIHNpa2tlciBw5VxuIgorIlx0ICAgYXQgZHUgZmplcm5lIGRpc2tlbiBsb2dpc2sgZnJhIGRpbiBBSVggbWFza2luZS5cbiIKKyJcdCAgIChFbGxlcnMgYmxpdmVyIGR1IGVuIEFJWHBlcnQpLiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQlNEIGxhYmVsIGZvciBkZXZpY2U6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJCU0QtbeZya2F0IGZvciBlbmhlZDogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOCBmZGlzay9mZGlzay5jOjM5NCBmZGlzay9mZGlzay5jOjQxMworIzogZmRpc2svZmRpc2suYzo0MzEgZmRpc2svZmRpc2suYzo0MzggZmRpc2svZmRpc2suYzo0NjEgZmRpc2svZmRpc2suYzo0NzkKKyM6IGZkaXNrL2ZkaXNrLmM6NDk1IGZkaXNrL2ZkaXNrLmM6NTExCittc2dpZCAiQ29tbWFuZCBhY3Rpb24iCittc2dzdHIgIktvbW1hbmRvIGJlc2tyaXZlbHNlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICAgc2xldCBlbiBCU0QtcGFydGl0aW9uIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMwCittc2dpZCAiICAgZSAgIGVkaXQgZHJpdmUgZGF0YSIKK21zZ3N0ciAiICAgZSAgICByZWRpZ+lyIGRyZXYtZGF0YSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgICBpbnN0YWxsZXIgb3BzdGFydHMtaWdhbmdz5nR0ZXIgKCdib290c3RyYXAnKSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMgorbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIGZpbGVzeXN0ZW0gdHlwZXMiCittc2dzdHIgIiAgIGwgICAgdmlzIGxpc3RlIG92ZXIgZmlsc3lzdGVtdHlwZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICAgdmlzIGRlbm5lIG1lbnUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzQKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICAgdGlsZvhqIGVuIG55IEJTRC1wYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgICB2aXMgQlNELXBhcnRpdGlvbnN0YWJlbCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgICBhZnNsdXQgdWRlbiBhdCBnZW1tZSDmbmRyaW5nZXJuZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiICAgciAgICByZXR1cm7pciB0aWwgaG92ZWRtZW51ZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzgKK21zZ2lkICIgICBzICAgc2hvdyBjb21wbGV0ZSBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICAgdmlzIGhlbGUgZGlza23mcmthdGV0IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM5Cittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIGZpbGVzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICAg5m5kciBmaWxzeXN0ZW0taWQgZm9yIGVuIHBhcnRpdGlvbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiICAgdSAgICBza2lmdCBlbmhlZGVyIChjeWxpbmRyZS9zZWt0b3JlcikiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDEKK21zZ2lkICIgICB3ICAgd3JpdGUgZGlza2xhYmVsIHRvIGRpc2siCittc2dzdHIgIiAgIHcgICAgc2tyaXYgZGlza23mcmthdGV0IHRpbCBkaXNrZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDMKK21zZ2lkICIgICB4ICAgbGluayBCU0QgcGFydGl0aW9uIHRvIG5vbi1CU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICB4ICAgbOZuayBlbiBCU0QtcGFydGl0aW9uIHRpbCBlbiBpa2tlLUJTRC1wYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVzIGhhcyBpbnZhbGlkIHN0YXJ0aW5nIHNlY3RvciAwLlxuIgorbXNnc3RyICJQYXJ0aXRpb24gJXMgaGFyIGVuIHVneWxkaWcgc3RhcnRzZWt0b3IgMC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIGRpc2tsYWJlbCBvZiAlcyBhdCBzZWN0b3IgJWQuXG4iCittc2dzdHIgIkzmc2VyIGRpc2tt5nJrYXQgZm9yICVzIGZyYSBzZWt0b3IgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIkRlciBlciBpbmdlbiAqQlNELXBhcnRpdGlvbmVyIHDlICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjAzCittc2dpZCAiQlNEIGRpc2tsYWJlbCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJCU0QtZGlza23mcmthdCBrb21tYW5kbyAobSBmb3IgaGrmbHApOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyODMgZmRpc2svZmRpc2suYzoyMzI4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzgKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3QgJXMiCittc2dzdHIgIkb4cnN0ZSAlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJXMgb3IgK3NpemUgb3IgK3NpemVNIG9yICtzaXplSyIKK21zZ3N0ciAiU2lkc3RlICVzIGVsbGVyICtzdPhycmVsc2UgZWxsZXIgK3N0+HJyZWxzZU0gZWxsZXIgK3N0+HJyZWxzZUsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJXNcbiIKK21zZ3N0ciAidHlwZTogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICJ0eXBlOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpc2s6ICUuKnNcbiIKK21zZ3N0ciAiZGlzazogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxhYmVsOiAlLipzXG4iCittc2dzdHIgIm3mcmthdDogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAiZmxhZzoiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIHJlbW92YWJsZSIKK21zZ3N0ciAiIGZseXRiYXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIGVjYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiIGZqbHNla3QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXMvc2VjdG9yOiAlbGRcbiIKK21zZ3N0ciAiYnl0ZS9zZWt0b3I6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvdHJhY2s6ICVsZFxuIgorbXNnc3RyICJzZWt0b3Jlci9zcG9yOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNAorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJzcG9yL2N5bGluZGVyOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAic2VrdG9yZXIvY3lsaW5kZXI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyczogJWxkXG4iCittc2dzdHIgImN5bGluZHJlOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgIm9tZHIuIHBlciBtaW51dDogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnRlcmxlYXZlOiAlZFxuIgorbXNnc3RyICJpbnRlcmxlYXZlOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrc2tldzogJWRcbiIKK21zZ3N0ciAic3BvcmFmdmlnZWxzZTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnNrZXc6ICVkXG4iCittc2dzdHIgImN5bGluZGVyYWZ2aWdlbHNlOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJob3ZlZHNraWZ0OiAlbGRcdFx0IyBtaWxsaXNla3VuZGVyXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlazogJWxkXHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJzcG9yLXRpbC1zcG9yIHP4Z25pbmc6ICVsZFx0IyBtaWxsaXNla3VuZGVyXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgImRyZXZkYXRhOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpb25lcjpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIyAgICAgICBzdGFydCAgICAgICBzbHV0ICAgICBzdPhyci4gICBmc3R5cGUgICBbZnN0ci4gYnN0ci4gICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiU2tpdmVyIGRpc2tt5nJrYXQgdGlsICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDE5IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorbXNnc3RyICIlcyBoYXIgaW50ZXQgZGlza23mcmthdC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJWaWwgZHUgb3ByZXR0ZSBldCBkaXNrbeZya2F0PyAoai9uKSAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgImJ5dGUvc2VrdG9yIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic2VrdG9yZXIvc3BvciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAic3Bvci9jeWxpbmRlciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAiY3lsaW5kcmUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJzZWt0b3Jlci9jeWxpbmRlciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIDw9IHNlY3RvcnMvdHJhY2sgKiB0cmFja3MvY3lsaW5kZXIgKGRlZmF1bHQpLlxuIgorbXNnc3RyICJTa2FsIHbmcmUgPD0gc2VrdG9yZXIvc3BvciAqIHNwb3IvY3lsaW5kZXIgKHN0YW5kYXJkKS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAib21kci4gcGVyIG1pbnV0IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAiaW50ZXJsZWF2ZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAic3BvcmFmdmlnZWxzZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NQorbXNnaWQgImN5bGluZGVyc2tldyIKK21zZ3N0ciAiY3lsaW5kZXJhZnZpZ2Vsc2UiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODYKK21zZ2lkICJoZWFkc3dpdGNoIgorbXNnc3RyICJob3ZlZHNraWZ0IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg3Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlayIKK21zZ3N0ciAic3Bvci10aWwtc3BvciBz+GduaW5nIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCittc2dzdHIgIk9wc3RhcnRzLWlnYW5nc+Z0dGVyOiAlc29wc3RhcnQgLT4gb3BzdGFydCVzICglcyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU1MworIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgb3ZlcmxhcHMgd2l0aCBkaXNrIGxhYmVsIVxuIgorbXNnc3RyICJPcHN0YXJ0cy1pZ2FuZ3PmdHRlciBvdmVybGFwcGVyIG1lZCBkaXNrbeZya2F0ZXQhXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgaW5zdGFsbGVkIG9uICVzLlxuIgorbXNnc3RyICJPcHN0YXJ0cy1pZ2FuZ3PmdHRlciBpbnN0YWxsZXJldCBw5SAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gKGEtJWMpOiAiCittc2dzdHIgIlBhcnRpdGlvbiAoYS0lYyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYxNyBmZGlzay9mZGlzay5jOjI0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgaGFzIGJlZW4gY3JlYXRlZFxuIgorbXNnc3RyICJEZXQgbWFrc2ltYWxlIGFudGFsIHBhcnRpdGlvbmVyIGVyIGJsZXZldCBvcHJldHRldFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGFscmVhZHkgZXhpc3RzLlxuIgorbXNnc3RyICJEZW5uZSBwYXJ0aXRpb24gZWtzaXN0ZXJlciBhbGxlcmVkZS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIkFkdmFyc2VsOiBmb3IgbWFuZ2UgcGFydGl0aW9uZXIgKCVkLCBtYWtzaW11bSBlciAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTeW5rcm9uaXNlcmVyIGRpc2tlLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NgorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgZmRpc2sgW29wdGlvbnNdIDxkaXNrPiAgICBjaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisiIGZkaXNrIFtvcHRpb25zXSAtbCA8ZGlzaz4gbGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyIgZmRpc2sgLXMgPHBhcnRpdGlvbj4gICAgICBnaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1iIDxzaXplPiAgICAgICAgICAgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGhlbHBcbiIKKyIgLXUgPHNpemU+ICAgICAgICAgICAgICAgICBnaXZlIHNpemVzIGluIHNlY3RvcnMgaW5zdGVhZCBvZiBjeWxpbmRlcnNcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB2ZXJzaW9uXG4iCisiIC1DIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVyc1xuIgorIiAtSCA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBoZWFkc1xuIgorIiAtUyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFja1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzXG4iCittc2dzdHIgIkt1bm5lIGlra2Ug5WJuZSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gcmVhZCAlc1xuIgorbXNnc3RyICJLdW5uZSBpa2tlIGzmc2UgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNlZWsgb24gJXNcbiIKK21zZ3N0ciAiS3VubmUgaWtrZSBz+GdlIHRpbCAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiS3VubmUgaWtrZSBza3JpdmUgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXNcbiIKK21zZ3N0ciAiQkxLR0VUU0laRSBpb2N0bCBtaXNseWtrZWRlcyBw5SAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBhbnkgbW9yZSBtZW1vcnlcbiIKK21zZ3N0ciAiS3VubmUgaWtrZSBhbGxva2VyZSBtZXJlIGh1a29tbWVsc2VcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTYKK21zZ2lkICJGYXRhbCBlcnJvclxuIgorbXNnc3RyICJGYXRhbCBmZWpsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgIHNraWZ0IGV0IHNrcml2ZWJlc2t5dHRlbHNlcy1mbGFnIgorCisjOiBmZGlzay9mZGlzay5jOjM5NiBmZGlzay9mZGlzay5jOjQ0MAorbXNnaWQgIiAgIGIgICBlZGl0IGJzZCBkaXNrbGFiZWwiCittc2dzdHIgIiAgIGIgICAgc2tpZnQgYnNkLWRpc2tt5nJrYXQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiAgIGMgICAgc2tpZnQgbW9udOlyYmFydC1mbGFnIgorCisjOiBmZGlzay9mZGlzay5jOjM5OCBmZGlzay9mZGlzay5jOjQxNyBmZGlzay9mZGlzay5jOjQ0MgorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICAgc2xldCBlbiBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk5IGZkaXNrL2ZkaXNrLmM6NDE4IGZkaXNrL2ZkaXNrLmM6NDQzCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICBsICAgIHZpcyBsaXN0ZSBvdmVyIGtlbmR0ZSBwYXJ0aXRpb25zdHlwZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICAgdGlsZvhqIGVuIG55IHBhcnRpdGlvbiIKKworIzogZmRpc2svZmRpc2suYzo0MDIgZmRpc2svZmRpc2suYzo0MjEgZmRpc2svZmRpc2suYzo0MzMgZmRpc2svZmRpc2suYzo0NDYKK21zZ2lkICIgICBvICAgY3JlYXRlIGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIG8gICAgb3ByZXQgZW4gbnksIHRvbSBET1MtcGFydGl0aW9uc3RhYmVsIgorCisjOiBmZGlzay9mZGlzay5jOjQwMyBmZGlzay9mZGlzay5jOjQyMiBmZGlzay9mZGlzay5jOjQ0NyBmZGlzay9mZGlzay5jOjQ3MAorIzogZmRpc2svZmRpc2suYzo0ODcgZmRpc2svZmRpc2suYzo1MDMgZmRpc2svZmRpc2suYzo1MjEKK21zZ2lkICIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgICB2aXMgcGFydGl0aW9uc3RhYmVsbGVuIgorCisjOiBmZGlzay9mZGlzay5jOjQwNSBmZGlzay9mZGlzay5jOjQyNCBmZGlzay9mZGlzay5jOjQzNSBmZGlzay9mZGlzay5jOjQ0OQorbXNnaWQgIiAgIHMgICBjcmVhdGUgYSBuZXcgZW1wdHkgU3VuIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgICBvcHJldCBlbiBueSwgdG9tIFN1bi1kaXNrbeZya2F0IgorCisjOiBmZGlzay9mZGlzay5jOjQwNiBmZGlzay9mZGlzay5jOjQyNSBmZGlzay9mZGlzay5jOjQ1MAorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICAgc2tpZnQgc3lzdGVtLWlkIGZvciBlbiBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA3IGZkaXNrL2ZkaXNrLmM6NDI2IGZkaXNrL2ZkaXNrLmM6NDUxCittc2dpZCAiICAgdSAgIGNoYW5nZSBkaXNwbGF5L2VudHJ5IHVuaXRzIgorbXNnc3RyICIgICB1ICAgIHNraWZ0IGVuaGVkZXIgZm9yIHZpc25pbmcvaW5kdGFzdG5pbmciCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA4IGZkaXNrL2ZkaXNrLmM6NDI3IGZkaXNrL2ZkaXNrLmM6NDUyIGZkaXNrL2ZkaXNrLmM6NDc0CisjOiBmZGlzay9mZGlzay5jOjQ5MSBmZGlzay9mZGlzay5jOjUwNyBmZGlzay9mZGlzay5jOjUyNQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgdiAgICB2ZXJpZmlj6XIgcGFydGl0aW9uc3RhYmVsbGVuIgorCisjOiBmZGlzay9mZGlzay5jOjQwOSBmZGlzay9mZGlzay5jOjQyOCBmZGlzay9mZGlzay5jOjQ1MyBmZGlzay9mZGlzay5jOjQ3NQorIzogZmRpc2svZmRpc2suYzo0OTIgZmRpc2svZmRpc2suYzo1MDggZmRpc2svZmRpc2suYzo1MjYKK21zZ2lkICIgICB3ICAgd3JpdGUgdGFibGUgdG8gZGlzayBhbmQgZXhpdCIKK21zZ3N0ciAiICAgdyAgICBza3JpdiBwYXJ0aXRpb25zdGFiZWwgdGlsIGRpc2sgb2cgYWZzbHV0IgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgICB4ICAgIGVrc3RyYSBmdW5rdGlvbmFsaXRldCAoa3VuIGZvciBla3NwZXJ0ZXIpIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAgIHbmbGcgZW4gb3BzdGFydGJhciBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE1Cittc2dpZCAiICAgYiAgIGVkaXQgYm9vdGZpbGUgZW50cnkiCittc2dzdHIgIiAgIGIgICAgcmVkaWfpciBpbmRnYW5nIGkgb3BzdGFydHNmaWwiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE2Cittc2dpZCAiICAgYyAgIHNlbGVjdCBzZ2kgc3dhcCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGMgICAgduZsZyBzZ2kgc3dhcC1wYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDM5Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIGJvb3RhYmxlIGZsYWciCittc2dzdHIgIiAgIGEgICAgc2tpZnQgb3BzdGFydGJhci1mbGFnZXQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICAgYyAgICBza2lmdCBET1Mta29tcGF0aWxpdGV0cy1mbGFnZXQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYyCittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYSAgICDmbmRyIGFudGFsbGV0IGFmIGFsdGVybmF0aXZlIGN5bGluZHJlIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgICDmbmRyIGFudGFsbGV0IGFmIGN5bGluZHJlIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NCBmZGlzay9mZGlzay5jOjQ4MiBmZGlzay9mZGlzay5jOjQ5OCBmZGlzay9mZGlzay5jOjUxNAorbXNnaWQgIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZCAgICB2aXMgcuVkYXRhZW5lIGZyYSBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY1Cittc2dpZCAiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiAgIGUgICAg5m5kciBhbnRhbGxldCBhZiBla3N0cmEgc2VrdG9yZXIgcGVyIGN5bGluZGVyIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NiBmZGlzay9mZGlzay5jOjQ4NSBmZGlzay9mZGlzay5jOjUwMSBmZGlzay9mZGlzay5jOjUxOAorbXNnaWQgIiAgIGggICBjaGFuZ2UgbnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICIgICBoICAgIOZuZHIgYW50YWxsZXQgYWYgaG92ZWRlciIKKworIzogZmRpc2svZmRpc2suYzo0NjcKK21zZ2lkICIgICBpICAgY2hhbmdlIGludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICIgICBpICAg5m5kciBpbnRlcmxlYXZlZmFrdG9yIgorCisjOiBmZGlzay9mZGlzay5jOjQ2OAorbXNnaWQgIiAgIG8gICBjaGFuZ2Ugcm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIiAgIG8gICAg5m5kciByb3RhdGlvbnNoYXN0aWdoZWQgKG9tZHIuIHBlciBtaW51dCkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDczIGZkaXNrL2ZkaXNrLmM6NDkwIGZkaXNrL2ZkaXNrLmM6NTA2IGZkaXNrL2ZkaXNrLmM6NTI0Cittc2dpZCAiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIKK21zZ3N0ciAiICAgcyAgICDmbmRyIGFudGFsbGV0IGFmIHNla3RvcmVyL3Nwb3IiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIgICB5ICAg5m5kciBhbnRhbGxldCBhZiBmeXNpc2tlIGN5bGluZHJlIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MCBmZGlzay9mZGlzay5jOjQ5NiBmZGlzay9mZGlzay5jOjUxMgorbXNnaWQgIiAgIGIgICBtb3ZlIGJlZ2lubmluZyBvZiBkYXRhIGluIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBiICAgIGZseXQgc3RhcnRlbiBw5SBkYXRhIGkgZW4gcGFydGl0aW9uIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MyBmZGlzay9mZGlzay5jOjQ5OSBmZGlzay9mZGlzay5jOjUxNQorbXNnaWQgIiAgIGUgICBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiAgIGUgICAgdmlzIHVkdmlkZWRlIHBhcnRpdGlvbmVyIgorCisjOiBmZGlzay9mZGlzay5jOjQ4NCBmZGlzay9mZGlzay5jOjUwMCBmZGlzay9mZGlzay5jOjUxNworbXNnaWQgIiAgIGcgICBjcmVhdGUgYW4gSVJJWCAoU0dJKSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGcgICAgb3ByZXQgZW4gSVJJWCAoU0dJKSBwYXJ0aXRpb25zdGFiZWwiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE2Cittc2dpZCAiICAgZiAgIGZpeCBwYXJ0aXRpb24gb3JkZXIiCittc2dzdHIgIiAgIGYgICAgb3JkbiBwYXJ0aXRpb25zcuZra2Vm+GxnZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5CisjLCBmdXp6eQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgdSAgICBza2lmdCBlbmhlZGVyIGZvciB2aXNuaW5nL2luZHRhc3RuaW5nIgorCisjOiBmZGlzay9mZGlzay5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBzZXQiCittc2dzdHIgIkR1IHNrYWwgYW5naXZlIgorCisjOiBmZGlzay9mZGlzay5jOjczNgorbXNnaWQgImhlYWRzIgorbXNnc3RyICJob3ZlZGVyIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAic2VrdG9yZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyVzLlxuIgorIllvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBleHRyYSBmdW5jdGlvbnMgbWVudS5cbiIKK21zZ3N0ciAiIgorIiVzJXMuXG4iCisiRGV0dGUga2FuIGR1IGf4cmUgZnJhIG1lbnVlbiAnRWtzdHJhIGZ1bmt0aW9uZXInLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjc0NQorbXNnaWQgIiBhbmQgIgorbXNnc3RyICIgb2cgIgorCisjOiBmZGlzay9mZGlzay5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogVGhlIHNpemUgb2YgdGhpcyBkaXNrIGlzICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJET1MgcGFydGl0aW9uIHRhYmxlIGZvcm1hdCBjYW4gbm90IGJlIHVzZWQgb24gZHJpdmVzIGZvciB2b2x1bWVzXG4iCisibGFyZ2VyIHRoYW4gKCVsbHUgYnl0ZXMpIGZvciAlZC1ieXRlIHNlY3RvcnMuIFVzZSBwYXJ0ZWQoMSkgYW5kIEdVSUQgXG4iCisicGFydGl0aW9uIHRhYmxlIGZvcm1hdCAoR1BUKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW5cbiIKKyJ0aGUgcGh5c2ljYWwgc2VjdG9yIHNpemUuIEFsaWduaW5nIHRvIGEgcGh5c2ljYWwgc2VjdG9yIChvciBvcHRpbWFsXG4iCisiSS9PKSBzaXplIGJvdW5kYXJ5IGlzIHJlY29tbWVuZGVkLCBvciBwZXJmb3JtYW5jZSBtYXkgYmUgaW1wYWN0ZWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0b1xuIgorIiAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0b1xuIgorIiAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiVWd5bGRpZyBmb3Jza3lkbmluZyBpIHByaW3mciB1ZHZpZGV0IHBhcnRpdGlvblxuIgorCisjOiBmZGlzay9mZGlzay5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogb21pdHRpbmcgcGFydGl0aW9ucyBhZnRlciAjJWQuXG4iCisiVGhleSB3aWxsIGJlIGRlbGV0ZWQgaWYgeW91IHNhdmUgdGhpcyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKyJBZHZhcnNlbDogdWRlbGFkZXIgcGFydGl0aW9uZXIgZWZ0ZXIgIyVkLlxuIgorIkRlIHZpbCBibGl2ZSBzbGV0dGV0LCBodmlzIGR1IGdlbW1lciBkZW5uZSBwYXJ0aXRpb25zdGFiZWwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGV4dHJhIGxpbmsgcG9pbnRlciBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiQWR2YXJzZWw6IGVrc3RyYSBs5m5rZXBlZ2VyIChsaW5rIHBvaW50ZXIpIGkgcGFydGl0aW9uc3RhYmVsICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIkFkdmFyc2VsOiBpZ25vcmVyZXIgZWtzdHJhIGRhdGEgaSBwYXJ0aXRpb25zdGFiZWwgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm9taXR0aW5nIGVtcHR5IHBhcnRpdGlvbiAoJWQpXG4iCittc2dzdHIgIkFkdmFyc2VsOiB0b20gcGFydGl0aW9uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIk9wcmV0dGVyIGV0IG55IERPUyBkaXNrbeZya2F0LiDGbmRyaW5nZXIgdmlsIGhvbGRlcyBpIGh1a29tbWVsc2VuLFxuIgorImluZHRpbCBkdSBiZXN0ZW1tZXIgZGlnIGZvciBhdCBnZW1tZSBkZW0uIERlcmVmdGVyIGthbiBkZXQgdGlkbGlnZXJlXG4iCisiaW5kaG9sZCBuYXR1cmxpZ3ZpcyBpa2tlIGdlbnNrYWJlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAiQmVt5nJrOiBzZWt0b3JzdPhycmVsc2VuIGVyICVkIChpa2tlICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgbm90IGJlIGFibGUgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiRHUgdmlsIGlra2Uga3VubmUgZ2VtbWUgcGFydGl0aW9uc3RhYmVsbGVuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZGlzayBoYXMgYm90aCBET1MgYW5kIEJTRCBtYWdpYy5cbiIKKyJHaXZlIHRoZSAnYicgY29tbWFuZCB0byBnbyB0byBCU0QgbW9kZS5cbiIKK21zZ3N0ciAiIgorIkRlbm5lIGRpc2sgaGFyIGLlZGUgbWFnaXNrZSBudW1yZSBmb3IgRE9TIFxuIgorIkJTRC4gQnJ1ZyAnYicta29tbWFuZG9lbiBmb3IgYXQgZ+UgaSBCU0QtdGlsc3RhbmQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGICIKKyJkaXNrbGFiZWxcbiIKK21zZ3N0ciAiIgorIkVuaGVkZW4gaW5kZWhvbGRlciBodmVya2VuIGVuIGd5bGRpZyBET1MtcGFydGl0aW9uc3RhYmVsIGVsbGVyIGV0IFN1bi0sIFNHSS0gIgorImVsbGVyIE9TRi1kaXNrbeZya2F0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW50ZXJuYWwgZXJyb3JcbiIKK21zZ3N0ciAiSW50ZXJuIGZlamxcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJJZ25vcmVyZXIgZWtzdHJhIHVkdmlkZXQgcGFydGl0aW9uICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogaW52YWxpZCBmbGFnIDB4JTA0eCBvZiBwYXJ0aXRpb24gdGFibGUgJWQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyIKKyIocml0ZSlcbiIKK21zZ3N0ciAiIgorIkFkdmFyc2VsOiB1Z3lsZGlndCBmbGFnIDB4JTA0eCBmb3IgcGFydGl0aW9uc3RhYmVsICVkIHZpbCBibGl2ZSByZXR0ZXQgbWVkICIKKyIndycgKHNrcml2KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImdvdCBFT0YgdGhyaWNlIC0gZXhpdGluZy4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJmaWsgZmlsc2x1dCAoRU9GKSB0cmUgZ2FuZ2UgLSBhZnNsdXR0ZXIuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIkhleC1rb2RlICh0cnlrIEwgZm9yIGVuIGxpc3RlIG92ZXIga29kZXJuZSk6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiJXMgKCV1LSV1LCBzdGFuZGFyZCAldSk6ICIKKworIzogZmRpc2svZmRpc2suYzoxNDYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuc3VwcG9ydGVkIHN1ZmZpeDogJyVzJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ4OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBkZWZhdWx0IHZhbHVlICV1XG4iCittc2dzdHIgIkJydWdlciBzdGFuZGFyZHbmcmRpICV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIlbmcmRpIHVkZW5mb3Igb21y5WRldC5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNTE4Cittc2dpZCAiUGFydGl0aW9uIG51bWJlciIKK21zZ3N0ciAiUGFydGl0aW9uc251bW1lciIKKworIzogZmRpc2svZmRpc2suYzoxNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXMgZW1wdHkgdHlwZVxuIgorbXNnc3RyICJBZHZhcnNlbDogcGFydGl0aW9uICVkIGVyIGFmIHR5cGVuICd0b20nXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1MSBmZGlzay9mZGlzay5jOjE1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VsZWN0ZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCBlciB2YWxndFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9uIGlzIGRlZmluZWQgeWV0IVxuIgorbXNnc3RyICJJbmdlbiBwYXJ0aXRpb25lciBkZWZpbmVyZXQhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgcHJpbWFyeSBwYXJ0aXRpb25zIGhhdmUgYmVlbiBkZWZpbmVkIGFscmVhZHkhXG4iCittc2dzdHIgIkFsbGUgcHJpbeZyZSBwYXJ0aXRpb25lciBlciBhbGxlcmVkZSBkZWZpbmVyZWRlIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJjeWxpbmRlciIKK21zZ3N0ciAiY3lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgInNlY3RvciIKK21zZ3N0ciAic2VrdG9yIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICJTa2lmdGVyIGVuaGVkZXIgZm9yIHZpc25pbmcvaW5kdGFzdG5pbmcgdGlsICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIkFEVkFSU0VMOiBQYXJ0aXRpb24gJWQgZXIgZW4gdWR2aWRldCBwYXJ0aXRpb25cbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgc2V0XG4iCittc2dzdHIgIkRPUy1rb21wYXRpbGl0ZXRzZmxhZyBlciBzYXRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldFxuIgorbXNnc3RyICJET1Mta29tcGF0aWxpdGV0c2ZsYWcgZXIgaWtrZSBzYXRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCB5ZXQhXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCBla3Npc3RlcmVyIGlra2UgZW5kbnUhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisiVHlwZSAwIGJldHlkZXIgZnJpdCBvbXLlZGUgZm9yIG1hbmdlIHN5c3RlbWVyXG4iCisiKG1lbiBpa2tlIGZvciBMaW51eCkuIEF0IGhhdmUgdHlwZSAwIHBhcnRpdGlvbmVyXG4iCisiZXIgbm9rIHVrbG9ndC4gRHUga2FuIHNsZXR0ZSBlbiBwYXJ0aXRpb24gbWVkXG4iCisiJ2QnLWtvbW1hbmRvZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTczNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGNhbm5vdCBjaGFuZ2UgYSBwYXJ0aXRpb24gaW50byBhbiBleHRlbmRlZCBvbmUgb3IgdmljZSB2ZXJzYVxuIgorIkRlbGV0ZSBpdCBmaXJzdC5cbiIKK21zZ3N0ciAiIgorIkR1IGthbiBpa2tlIOZuZHJlIGVuIHBhcnRpdGlvbiBtZWxsZW0gYXQgduZyZSB1ZHZpZGV0IGVsbGVyIGlra2UtdWR2aWRldFxuIgorIlNsZXQgZGVuIGb4cnN0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiT3ZlcnZlaiBhdCBsYWRlIHBhcnRpdGlvbiAzIHbmcmUgJ0hlbCBkaXNrJyAoNSksIGRhXG4iCisiU3VuT1MvU29sYXJpcyBmb3J2ZW50ZXIgZGV0IG9nIHNlbHYgTGludXggZm9yZXRy5mtrZXIgZGV0LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5IGFzIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImFuZCBwYXJ0aXRpb24gMTEgYXMgZW50aXJlIHZvbHVtZSAoNiksIGFzIElSSVggZXhwZWN0cyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIk92ZXJ2ZWogYXQgbGFkZSBwYXJ0aXRpb24gOSB25nJlIGRpc2staG92ZWRlICgndm9sdW1lIGhlYWRlcicpICgwKSxcbiIKKyJvZyBwYXJ0aXRpb24gMTEgc29tICdlbnRpcmUgdm9sdW1lJyAoNiksIGRhIElSSVggZm9ydmVudGVyIGRldC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5nZWQgc3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIHRvICV4ICglcylcbiIKK21zZ3N0ciAixm5kcmVkZSBzeXN0ZW10eXBlbiBmb3IgcGFydGl0aW9uICVkIHRpbCAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICLGbmRyZWRlIHN5c3RlbXR5cGVuIGZvciBwYXJ0aXRpb24gJWQgdGlsICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgYmVnaW5uaW5ncyAobm9uLUxpbnV4Pyk6XG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCBoYXIgZm9yc2tlbGxpZyBmeXNpc2svbG9naXNrIGJlZ3luZGVsc2UgKGlra2UtTGludXg/KTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI5IGZkaXNrL2ZkaXNrLmM6MTgzNyBmZGlzay9mZGlzay5jOjE4NDYgZmRpc2svZmRpc2suYzoxODU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorbXNnc3RyICIgICAgIGZ5cz0oJWQsICVkLCAlZCkgIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzAgZmRpc2svZmRpc2suYzoxODM4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImxvZ2lzaz0oJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIGhhciBmb3Jza2VsbGlnIGZ5c2lzay9sb2dpc2sgZW5kZWxzZTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVpIHN0YXJ0ZXIgaWtrZSBw5SBlbiBjeWxpbmRlci1ncuZuc2U6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgMSlcbiIKK21zZ3N0ciAiYnVyZGUgduZyZSAoJWQsICVkLCAxKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiUGFydGl0aW9uICVpIHNsdXR0ZXIgaWtrZSBw5SBlbiBjeWxpbmRlcmdy5m5zZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxODU3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAlZClcbiIKK21zZ3N0ciAiYnVyZGUgduZyZSAoJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gcGh5c2ljYWwgc2VjdG9yIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWkgc3RhcnRlciBpa2tlIHDlIGVuIGN5bGluZGVyLWdy5m5zZTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQgTUIsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNYiwgJWxsZCBieXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHYiwgJWxsZCBieXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJWQgaGVhZHMsICVsbHUgc2VjdG9ycy90cmFjaywgJWQgY3lsaW5kZXJzIgorbXNnc3RyICIlZCBob3ZlZGVyLCAlZCBzZWt0b3Jlci9zcG9yLCAlZCBjeWxpbmRyZSIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgdG90YWwgJWxsdSBzZWN0b3JzIgorbXNnc3RyICIsIGkgYWx0ICVsbHUgc2VrdG9yZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIkVuaGVkZXIgPSAlcyBhZiAlZCAqICVkID0gJWQgYnl0ZVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAidWd5bGRpZyBpbm9kZS1zdPhycmVsc2UiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuIgorIlxuIgorbXNnc3RyICIiCisiSW50ZXQgYXQgZ/hyZS4gUuZra2Vm+GxnZW4gZXIgYWxsZXJlZGUga29ycmVrdC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEb25lLlxuIgorbXNnc3RyICIiCisiRuZyZGlnXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisiRGV0dGUgbGlnbmVyIGlra2UgZW4gcGFydGl0aW9uc3RhYmVsXG4iCisiRHUgaGFyIG5vayB2YWxndCBkZW4gZm9ya2VydGUgZW5oZWQuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgT3BzdGFydCAgIFN0YXJ0ICAgICAgICAgU2x1dCAgICAgQmxva2tlICAgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIxMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk4Cittc2dpZCAiRGV2aWNlIgorbXNnc3RyICJFbmhlZCIKKworIzogZmRpc2svZmRpc2suYzoyMTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJQYXJ0aXRpb24gdGFibGUgZW50cmllcyBhcmUgbm90IGluIGRpc2sgb3JkZXJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBhcnRpdGlvbnN0YWJlbGxlbnMgaW5kZ2FuZ2UgZXIgaWtrZSBpIGRpc2stcuZra2Vm+GxnZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhvdmVkZXIsICVkIHNla3RvcmVyLCAlZCBjeWxpbmRyZVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iCittc2dzdHIgIk5yIEFGIEh2ZCBTZWsgIEN5bCBIdmQgU2VrICBDeWwgICAgIFN0YXJ0ICAgICAgU3RyLiBJRFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgIkFkdmFyc2VsOiBwYXJ0aXRpb24gJWQgaW5kZWhvbGRlciBzZWt0b3IgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZDogaG92ZWRldCAlZCBlciBzdPhycmUgZW5kIGRlIG1ha3NpbWFsZSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogc2VjdG9yICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkOiBzZWt0b3IgJWQgZXIgc3T4cnJlIGVuZCBkZSBtYWtzaW1hbGUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbnMgJWQ6IGN5bGluZGVyICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRpdGlvbmVybmUgJWQ6IGN5bGluZGVyICVkIHN0+HJyZSBlbmQgZGUgbWFrc2ltYWxlICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHByZXZpb3VzIHNlY3RvcnMgJWQgZGlzYWdyZWVzIHdpdGggdG90YWwgJWRcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkOiBmb3JyaWdlIHNla3RvcmVyICVkIHN0ZW1tZXIgaWtrZSBtZWQgdG90YWxlbiAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHN0YXJ0LW9mLWRhdGEgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIkFkdmFyc2VsOiB1Z3lsZGlnIHN0YXJ0LXDlLWRhdGEgaSBwYXJ0aXRpb24gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBvdmVybGFwcyBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIkFkdmFyc2VsOiBwYXJ0aXRpb24gJWQgb3ZlcmxhcHBlciBtZWQgcGFydGl0aW9uICVkLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGlzIGVtcHR5XG4iCittc2dzdHIgIkFkdmFyc2VsOiBwYXJ0aXRpb24gJWQgZXIgdG9tXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1NgorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIkxvZ2lzayBwYXJ0aXRpb24gJWQgaWtrZSBmdWxkc3TmbmRpZ3QgaW5kZW5mb3IgcGFydGl0aW9uICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICIiCisiRGV0IHRvdGFsZSBhbnRhbCBhbGxva2VyZWRlIHNla3RvcmVyICVkIGVyIHN0+HJyZSBlbmQgZGUgbWFrc2ltYWxlICVsbGRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSZW1haW5pbmcgJWxsZCB1bmFsbG9jYXRlZCAlZC1ieXRlIHNlY3RvcnNcbiIKK21zZ3N0ciAiJWxsZCBpa2tlLWFsbG9rZXJlZGUgc2VrdG9yZXJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzAxIGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxMQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlIGl0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iCittc2dzdHIgIiIKKyJQYXJ0aXRpb24gJWQgZXIgYWxsZXJlZGUgZGVmaW5lcmV0LiBTbGV0IGRlbiBm+HIgZHUgdGlsZvhqZXIgZGVuIGlnZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVsbHUgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAiU2VrdG9yICVkIGVyIGFsbGVyZWRlIGFsbG9rZXJldFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICJJbmdlbiB0aWxn5m5nZWxpZ2UgZnJpZSBzZWt0b3JlclxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlMSRzLCArJTIkcyBvciArc2l6ZXtLLE0sR30iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNDcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIEFJWCBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHRCZWtsYWdlciwgLSBkZW5uZSBmZGlzayBrYW4gaWtrZSBo5W5kdGVyZSBBSVgtZGlza23mcmthdGVyXG4iCisiXHRPcHJldCBlbiBueSwgc29tIERPUy1wYXJ0aXRpb25zdGFiZWwgZvhyc3QsIGh2aXMgZHUgdmlsXG4iCisiXHR0aWxm+GplIERPUy1wYXJ0aXRpb25lci4gKEJydWcgby4pXG4iCisiXHRBRFZBUlNFTDogRGV0dGUgdmlsIPhkZWzmZ2dlIGRpc2tlbnMgbnV25nJlbmRlIGluZGhvbGQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgTWFjIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyJcdEJla2xhZ2VyLCAtIGRlbm5lIGZkaXNrIGthbiBpa2tlIGjlbmR0ZXJlIEFJWC1kaXNrbeZya2F0ZXJcbiIKKyJcdE9wcmV0IGVuIG55LCBzb20gRE9TLXBhcnRpdGlvbnN0YWJlbCBm+HJzdCwgaHZpcyBkdSB2aWxcbiIKKyJcdHRpbGb4amUgRE9TLXBhcnRpdGlvbmVyLiAoQnJ1ZyBvLilcbiIKKyJcdEFEVkFSU0VMOiBEZXR0ZSB2aWwg+GRlbOZnZ2UgZGlza2VucyBudXbmcmVuZGUgaW5kaG9sZC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICJEdSBt5SBm+HJzdCBzbGV0dGUgZW4gcGFydGl0aW9uIG9nIHRpbGb4amUgZW4gdWR2aWRldCBwYXJ0aXRpb25cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICJTYW10bGlnZSBsb2dpc2tlIHBhcnRpdGlvbmVyIGVyIGkgYnJ1Z1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nIGEgcHJpbWFyeSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiVGlsZvhqZXIgZW4gcHJpbeZycGFydGl0aW9uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29tbWFuZCBhY3Rpb25cbiIKKyIgICAlc1xuIgorIiAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KVxuIgorbXNnc3RyICIiCisiS29tbWFuZG8gYmVza3JpdmVsc2VcbiIKKyIgICAlc1xuIgorIiAgIHAgICAgcHJpbeZyIHBhcnRpdGlvbiAoMS00KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJsICAgbG9naWNhbCAoNSBvciBvdmVyKSIKK21zZ3N0ciAibCAgICBsb2dpc2sgKDUgZWxsZXIgZGVyb3ZlcikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImUgICBleHRlbmRlZCIKK21zZ3N0ciAiZSAgICB1ZHZpZGV0IgorCisjOiBmZGlzay9mZGlzay5jOjI1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXJ0aXRpb24gbnVtYmVyIGZvciB0eXBlIGAlYydcbiIKK21zZ3N0ciAiVWd5bGRpZ3QgcGFydGl0aW9uc251bW1lciBmb3IgdHlwZSAnJWMnXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisiUGFydGl0aW9uc3RhYmVsbGVuIGVyIOZuZHJldCFcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgaW9jdGwoKSB0byByZS1yZWFkIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiS2FsZGVyIGlvY3RsKCkgZm9yIGF0IGdlbmluZGzmc2UgcGFydGl0aW9uc3RhYmVsbGVuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorIlxuIgorIkFEVkFSU0VMOiBHZW5pbmRs5nNuaW5nIGFmIHBhcnRpdGlvbnN0YWJlbCBtaXNseWtrZWRlcyBtZWQgZmVqbGVuICVkOiAlcy5cbiIKKyJEZW5uZSBrZXJuZSBicnVnZXIgc3RhZGlnIGRlbiBnYW1sZSB0YWJlbC5cbiIKKyJEZW4gbnllIHRhYmVsIHZpbCBibGl2ZSBicnVndCBmcmEgbuZzdGUgZ2Vuc3RhcnQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBRFZBUlNFTDogTOZzIHZlbmxpZ3N0IGZkaXNrIG1hbnVhbC1zaWRlbiBmb3JcbiIKKyJ5ZGVybGlnZXJlIGluZm9ybWF0aW9uLCBodmlzIGR1IGhhciBvcHJldHRldCBlbGxlclxuIgorIuZuZHJldCBET1MgNi54IHBhcnRpdGlvbmVyLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkVycm9yIGNsb3NpbmcgZmlsZVxuIgorbXNnc3RyICIiCisiXG4iCisiRmVqbCB2ZWQgbHVrbmluZyBhZiBmaWxcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIlN5bmtyb25pc2VyZXIgZGlza2UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgaGFyIGludGV0IGRhdGFvbXLlZGVcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjU2Cittc2dpZCAiTmV3IGJlZ2lubmluZyBvZiBkYXRhIgorbXNnc3RyICJOeSBiZWd5bmRlbHNlIHDlIGRhdGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY3MgorbXNnaWQgIkV4cGVydCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJFa3NwZXJ0IGtvbW1hbmRvIChtIGZvciBoauZscCk6ICIKKworIzogZmRpc2svZmRpc2suYzoyNjg1Cittc2dpZCAiTnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiQW50YWwgY3lsaW5kcmUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjcxMAorbXNnaWQgIk51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiQW50YWwgaG92ZWRlciIKKworIzogZmRpc2svZmRpc2suYzoyNzM3Cittc2dpZCAiTnVtYmVyIG9mIHNlY3RvcnMiCittc2dzdHIgIkFudGFsIHNla3RvcmVyIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogc2V0dGluZyBzZWN0b3Igb2Zmc2V0IGZvciBET1MgY29tcGF0aWJsaXR5XG4iCittc2dzdHIgIkFkdmFyc2VsOiBz5nR0ZXIgc2VrdG9yZm9yc2t5ZG5pbmcgZm9yIERPUy1rb21wYXRpbGl0ZXRcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBmZGlzayBkb2Vzbid0ICIKKyJzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXMgZG9lc24ndCBjb250YWluIGEgdmFsaWQgcGFydGl0aW9uIHRhYmxlXG4iCittc2dzdHIgIkRpc2sgJXMgaW5kZWhvbGRlciBpa2tlIGVuIGd5bGRpZyBwYXJ0aXRpb25zdGFiZWxcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIkt1bm5lIGlra2Ug5WJuZSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJrdW5uZSBpa2tlIOVibmUgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IHVrZW5kdCBrb21tYW5kb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBrZXJuZWwgZmluZHMgdGhlIHNlY3RvciBzaXplIGl0c2VsZiAtIC1iIG9wdGlvbiBpZ25vcmVkXG4iCittc2dzdHIgIkRlbm5lIGtlcm5lIGZpbmRlciBzZWx2IHNla3RvcnN0+HJyZWxzZXIgLSB0aWx2YWxnZXQgLWIgaWdub3JlcmVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiQWR2YXJzZWw6IHRpbHZhbGdldCAtYiAoYW5naXYgc2VrdG9yc3T4cnJlbHNlKSBrcuZ2ZXIgYW5naXZlbHNlIGFmIGRpc2stIgorImVuaGVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBhbiBPU0YvMSBkaXNrbGFiZWwgb24gJXMsIGVudGVyaW5nIGRpc2tsYWJlbCBtb2RlLlxuIgorbXNnc3RyICJEZXRla3RlcmVkZSBldCBPU0YvMSBkaXNrbeZya2F0IHDlICVzLiBH5XIgaSBkaXNrbeZya2F0LXRpbHN0YW5kLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMTAKK21zZ2lkICJDb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJLb21tYW5kbyAobSBmb3IgaGrmbHApOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGVuIG51duZyZW5kZSBvcHN0YXJ0ZmlsIGVyOiAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMjgKK21zZ2lkICJQbGVhc2UgZW50ZXIgdGhlIG5hbWUgb2YgdGhlIG5ldyBib290IGZpbGU6ICIKK21zZ3N0ciAiQW5naXYgdmVubGlndCBuYXZuZXQgcOUgZGVuIG55IG9wc3RhcnRzZmlsOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAzMAorIywgYy1mb3JtYXQKK21zZ2lkICJCb290IGZpbGUgdW5jaGFuZ2VkXG4iCittc2dzdHIgIk9wc3RhcnRzZmlsIHXmbmRyZXRcbiIKKworIzogZmRpc2svZmRpc2suYzozMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdFNvcnJ5LCBubyBleHBlcnRzIG1lbnUgZm9yIFNHSSBwYXJ0aXRpb24gdGFibGVzIGF2YWlsYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0QmVrbGFnZXIsIGRlciBlciBpbmdlbiBla3NwZXJ0bWVudSBmb3IgU0dJLXBhcnRpdGlvbnN0YWJlbGxlci5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2ttYWNsYWJlbC5jOjMwCisjLCBmdXp6eQorbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgTWFjIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgZmRpc2soMSkgY2Fubm90IGhhbmRsZSB0aGVzZSBkaXNrcy5cbiIKKyJcdFVzZSBlaXRoZXIgcGRpc2sgb3IgcGFydGVkIHRvIG1vZGlmeSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorIlx0TmV2ZXJ0aGVsZXNzIHNvbWUgYWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorbXNnc3RyICIiCisiXG4iCisiXHREZXIgZXIgZXQgZ3lsZGlnIEFJWC1t5nJrYXQgcOUgZGVubmUgZGlzay5cbiIKKyJcdERlc3bmcnJlIGthbiBMaW51eCBlbmRudSBpa2tlIGFyYmVqZGUgbWVkIGRpc3NlXG4iCisiXHRkaXNrZS4gQWxsaWdldmVsIGVyIGhlciBub2dsZSBnb2RlIHLlZDpcbiIKKyJcdDEuIGZkaXNrIHZpbCD4ZGVs5mdnZSBkZW5zIGluZGhvbGQgbuVyIGR1IGdlbW1lci5cbiIKKyJcdDIuIFbmciBzaWtrZXIgcOUgYXQgZGVubmUgZGlzayBJS0tFIGVyIGVuIHZpdGFsXG4iCisiXHQgICBkZWwgYWYgZW4gYmluZC1ncnVwcGUuIChFbGxlcnMga2FuIGR1IG9nc+Ugc2xldHRlXG4iCisiXHQgICBkZSBhbmRyZSBkaXNrZSwgaHZpcyBkZSBpa2tlIGVyIHNwZWpsZWRlLilcbiIKKyJcdDMuIEb4ciBkdSBzbGV0dGVyIGRldHRlIGZ5c2lza2UgYmluZCwgduZyIHNpa2tlciBw5VxuIgorIlx0ICAgYXQgZHUgZmplcm5lIGRpc2tlbiBsb2dpc2sgZnJhIGRpbiBBSVggbWFza2luZS5cbiIKKyJcdCAgIChFbGxlcnMgYmxpdmVyIGR1IGVuIEFJWHBlcnQpLiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgxCittc2dpZCAiU0dJIHZvbGhkciIKK21zZ3N0ciAiU0dJIGJuZGh2ZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgyCittc2dpZCAiU0dJIHRya3JlcGwiCittc2dzdHIgIlNHSSBzcHJyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODMKK21zZ2lkICJTR0kgc2VjcmVwbCIKK21zZ3N0ciAiU0dJIHNla3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NAorbXNnaWQgIlNHSSByYXciCittc2dzdHIgIlNHSSByYXciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NQorbXNnaWQgIlNHSSBic2QiCittc2dzdHIgIlNHSSBic2QiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NgorbXNnaWQgIlNHSSBzeXN2IgorbXNnc3RyICJTR0kgc3lzdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg3Cittc2dpZCAiU0dJIHZvbHVtZSIKK21zZ3N0ciAiU0dJIGJpbmQiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OAorbXNnaWQgIlNHSSBlZnMiCittc2dzdHIgIlNHSSBlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OQorbXNnaWQgIlNHSSBsdm9sIgorbXNnc3RyICJTR0kgbHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkwCittc2dpZCAiU0dJIHJsdm9sIgorbXNnc3RyICJTR0kgcmx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MQorbXNnaWQgIlNHSSB4ZnMiCittc2dzdHIgIlNHSSB4ZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MgorbXNnaWQgIlNHSSB4ZnNsb2ciCittc2dzdHIgIlNHSSB4ZnNsb2ciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MworbXNnaWQgIlNHSSB4bHYiCittc2dzdHIgIlNHSSB4bHYiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NAorbXNnaWQgIlNHSSB4dm0iCittc2dzdHIgIlNHSSB4dm0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NSBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAKK21zZ2lkICJMaW51eCBzd2FwIgorbXNnc3RyICJMaW51eCBzd2FwIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTYgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUxCittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICJMaW51eCcgZWdlbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYzCittc2dpZCAiTGludXggTFZNIgorbXNnc3RyICJMaW51eCBMVk0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5OAorbXNnaWQgIkxpbnV4IFJBSUQiCittc2dzdHIgIkxpbnV4IFJBSUQiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkFjY29yZGluZyB0byBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyB0aGUgTGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gIgorIjUxMiBieXRlc1xuIgorbXNnc3RyICIiCisiSWb4bGdlIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcy4gSW5jLCBt5SBt5nJrYXRldCBpa2tlIGZ5bGRlIG1lcmUgZW5kIDUxMiBieXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJEZXRla3RlcmVkZSBTR0kgZGlza23mcmthdCBtZWQgZm9ya2VydCB0amVrc3VtLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlza23mcmthdCk6ICVkIGhvdmVkZXIsICVkIHNla3RvcmVyXG4iCisiJWQgY3lsaW5kcmUsICVkIGZ5c2lza2UgY3lsaW5kcmVcbiIKKyIlZCBla3N0cmEgc2VrdC9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiRW5oZWRlciA9ICVzIOEgJWQgKiAlZCBieXRlXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBob3ZlZGVyLCAlZCBzZWt0b3JlciwgJWQgY3lsaW5kcmVcbiIKKyJFbmhlZGVyID0gJXMg4SAlZCAqICVkIGJ5dGVcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIHBhcnRpdGlvbmVyIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgU2x1dCAgU2VrdG9yZXIgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSBPcHN0YXJ0c2luZm8gLS0tLS1cbiIKKyJPcHN0YXJ0c2ZpbDogJXNcbiIKKyItLS0tLSBNYXBwZWluZGdhbmdlIC0tLS0tXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIgorbXNnc3RyICIlMmQ6ICUtMTBzIHNla3RvciU1dSBzdPhycmVsc2UlOHVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSW52YWxpZCBCb290ZmlsZSFcbiIKKyJcdFRoZSBib290ZmlsZSBtdXN0IGJlIGFuIGFic29sdXRlIG5vbi16ZXJvIHBhdGhuYW1lLFxuIgorIlx0ZS5nLiBcIi91bml4XCIgb3IgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVZ3lsZGlnIG9wc3RhcnRzZmlsIVxuIgorIlx0T3BzdGFydHNmaWxlbiBza2FsIHbmcmUgZXQgYWJzb2x1dCwgaWtrZS10b210IHN0aW5hdm4sXG4iCisiXHRmLmVrcy4gXCIvdW5peFwiIGVsbGVyIFwiL3VuaXguc2F2ZVwiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Mjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdE5hbWUgb2YgQm9vdGZpbGUgdG9vIGxvbmc6ICAxNiBieXRlcyBtYXhpbXVtLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRGb3IgbGFuZ3QgbmF2biBw5SBvcHN0YXJ0c2ZpbDogaPhqc3QgMTYgYnl0ZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBtdXN0IGhhdmUgYSBmdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdE9wc3RhcnRzZmlsIHNrYWwgaGF2ZSBldCBrb21wbGV0IHN0aW5hdm4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0QmUgYXdhcmUsIHRoYXQgdGhlIGJvb3RmaWxlIGlzIG5vdCBjaGVja2VkIGZvciBleGlzdGVuY2UuXG4iCisiXHRTR0kncyBkZWZhdWx0IGlzIFwiL3VuaXhcIiBhbmQgZm9yIGJhY2t1cCBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0QmVt5nJrLCBhdCBkZXIgaWtrZSB0amVra2VzIGZvciBvcHN0YXJ0c2ZpbGVucyBla3Npc3RlbnMuXG4iCisiXHRTR0lzIHN0YW5kYXJkIGVyIFwiL3VuaXhcIiBvZyBzb20gYmFja3VwIFwiL3VuaXguc2F2ZVwiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIGlzIGNoYW5nZWQgdG8gXCIlc1wiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRPcHN0YXJ0c2ZpbCBlciDmbmRyZXQgdGlsIFwiJXNcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJNb3JlIHRoYW4gb25lIGVudGlyZSBkaXNrIGVudHJ5IHByZXNlbnQuXG4iCittc2dzdHIgIkRlciBlciBtZXJlIGVuZCDpbiBmdWxkc3TmbmRpZyBkaXNraW5kZ2FuZy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJJbmdlbiBwYXJ0aXRpb25lciBkZWZpbmVyZXRcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJJUklYIGxpa2VzIHdoZW4gUGFydGl0aW9uIDExIGNvdmVycyB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIklSSVgga2FuIGxpZGUsIG7lciBwYXJ0aXRpb24gMTEgZnlsZGVyIGhlbGUgZGlza2VuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIHNob3VsZCBzdGFydCBhdCBibG9jayAwLFxuIgorIm5vdCBhdCBkaXNrYmxvY2sgJWQuXG4iCittc2dzdHIgIiIKKyJIZWxlIGRpc2twYXJ0aXRpb25lbiBi+HIgc3RhcnRlIHZlZCBibG9rIDAsXG4iCisiaWtrZSB2ZWQgZGlza2Jsb2sgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gaXMgb25seSAlZCBkaXNrYmxvY2sgbGFyZ2UsXG4iCisiYnV0IHRoZSBkaXNrIGlzICVkIGRpc2tibG9ja3MgbG9uZy5cbiIKK21zZ3N0ciAiIgorIkhlbGUgZGlza3BhcnRpdGlvbmVuIGVyIGt1biAlZCBkaXNrYmxva2tlIHN0b3IsXG4iCisibWVuIGRpc2tlbiBlciBw5SAlZCBkaXNrYmxva2tlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiRW4gcGFydGl0aW9uICgjMTEpIGL4ciBmeWxkZSBoZWxlIGRpc2tlbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCBzdGFydGVyIGlra2UgcOUgZW4gY3lsaW5kZXJncuZuc2UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIHNsdXR0ZXIgaWtrZSBw5SBlbiBjeWxpbmRlcmdy5m5zZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCBvZyAlZCBvdmVybGFwcGVyIGhpbmFuZGVuIGkgJWQgc2VrdG9yZXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0ODQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAiVWJlbnl0dGV0IGh1bCBw5SAlOHUgc2VrdG9yZXIgLSBzZWt0b3IgJTh1LSV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIk9wc3RhcnRwYXJ0aXRpb25lbiBla3Npc3RlcmVyIGlra2UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlN3YXBwYXJ0aXRpb25lbiBla3Npc3RlcmVyIGlra2UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisiU3dhcHBhcnRpdGlvbmVuIGhhciBpa2tlIG5vZ2VuIHN3YXB0eXBlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iCittc2dzdHIgIlx0RHUgaGFyIHZhbGd0IGV0IGlra2Utc3RhbmRhcmQgbmF2biBw5SBvcHN0YXJ0c2ZpbGVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkJla2xhZ2VyLiBEdSBt5SDmbmRyZSBt5nJrZXQgKHRhZykgcOUgaWtrZS10b21tZSBwYXJ0aXRpb25lci5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzOAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgb2YgdHlwZSBcIlNHSSB2b2xoZHJcIiwgdGhlIElSSVggc3lzdGVtIHdpbGwgcmVseSBvbiBpdCB0b1xuIgorInJldHJpZXZlIGZyb20gaXRzIGRpcmVjdG9yeSBzdGFuZGFsb25lIHRvb2xzIGxpa2Ugc2FzaCBhbmQgZnguXG4iCisiT25seSB0aGUgXCJTR0kgdm9sdW1lXCIgZW50aXJlIGRpc2sgc2VjdGlvbiBtYXkgdmlvbGF0ZSB0aGlzLlxuIgorIlR5cGUgWUVTIGlmIHlvdSBhcmUgc3VyZSBhYm91dCB0YWdnaW5nIHRoaXMgcGFydGl0aW9uIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiRGV0IGFuYmVmYWxlcyBrcmFmdGlndCBhdCBwYXJ0aXRpb25lbiBw5SBmb3Jza3lkbmluZyAwXG4iCisiZXIgZW4gXCJTR0kgdm9saGRyXCItdHlwZS4gSVJJWC1zeXN0ZW1ldCB2aWwgYnJ1Z2UgZGVuIHRpbFxuIgorImF0IGhlbnRlIGZyYSBkZXRzIG1hcHBlduZya3T4amVyIHNvbSBzYXNoIG9nIGZ4LlxuIgorIkt1biBcIlNHSSB2b2x1bWVcIiBoZWxlLWRpc2stc2VrdGlvbmVuIGthbiBicnlkZSBkZXR0ZS5cbiIKKyJTa3JpdiBKQSwgaHZpcyBkdSBlciBzaWtrZXIgcOUsIGF0IGR1IHZpbCBt5nJrZSBwYXJ0aXRpb25lbiBhbmRlcmxlZGVzLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiSkFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU2OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBZb3Uga25vdywgWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrP1xuIgorbXNnc3RyICJWZWQgZHUsIGF0IGR1IGhhciBvdmVybGFwcGVuZGUgcGFydGl0aW9uZXIgcOUgZGlza2VuP1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAiRm9yc/hnZXIgYXQgZ2VuZXJlIGhlbGUtZGlzay1pbmRnYW5nIGF1dG9tYXRpc2suXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkhlbGUgZGlza2VuIGVyIGFsbGVyZWRlIGZ5bGR0IG1lZCBwYXJ0aXRpb25lci5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiRHUgaGFyIG92ZXJsYXBwZW5kZSBwYXJ0aXRpb25lciBw5SBkaXNrZW4uIFJldCBkZXQgZvhyc3QhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIkRldCBhbmJlZmFsZXMga3JhZnRpZ3QgYXQgZGVuIGVsbGV2dGUgcGFydGl0aW9uXG4iCisiZnlsZGVyIGhlbGUgZGlza2VuIG9nIGVyIGFmIHR5cGVuICdTR0kgdm9sdW1lJ1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIGdldCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIkR1IHZpbCBm5SBvdmVybGFwcGVuZGUgcGFydGl0aW9uZXIgcOUgZGlza2VuLiBSZXQgZGV0dGUgZvhyc3QhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIExhc3QgJXMiCittc2dzdHIgIiBTaWRzdGUgJXMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IFNHSSBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd2lsbCBiZSB1bnJlY292ZXJhYmx5IGxvc3QuXG4iCisiXG4iCittc2dzdHIgIiIKKyJPcGJ5Z2dlciBldCBueXQgU0dJLWRpc2tt5nJrYXQuIMZuZHJpbmdlciB2aWwgaG9sZGVzIGkgaHVrb21tZWxzZW5cbiIKKyJpbmR0aWwgZHUgYmVzbHV0dGVyIGF0IGdlbW1lIGRlbS4gRGVyZWZ0ZXIgdmlsIGRldCB0aWRsaWdlcmUgaW5kaG9sZFxuIgorIm5hdHVybGlndmlzIGlra2Uga3VubmUgZ2Vuc2thYmVzLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzE4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6ICBCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlcy4gIFVzaW5nIGdlb21ldHJ5IGN5bGluZGVyIHZhbHVlIG9mICUiCisiZC5cbiIKKyJUaGlzIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgZm9yIGRldmljZXMgPiAzMy44IEdCLlxuIgorbXNnc3RyICIiCisiQWR2YXJzZWw6ICBCTEtHRVRTSVpFIGlvY3RsIG1pc2x5a2tlZGVzIHDlICVzLiAgQmVueXR0ZXIgZ2VvbWV0cmktIgorImN5bGluZGVyduZyZGllbiAlZC5cbiIKKyJEZW5uZSB25nJkaSBrYW4gYmxpdmUgYWZrb3J0ZXQgcOUgZW5oZWRlciwgZGVyIGVyIHN0+HJyZSBlbmQgMzMuOCBHQi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8ga2VlcCBwYXJhbWV0ZXJzIG9mIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiRm9yc/hnZXIgYXQgYmliZWhvbGRlIHBhcmFtZXRyZW5lIGZvciBwYXJ0aXRpb24gJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSUQ9JTAyeFx0U1RBUlQ9JWRcdExFTkdUSD0lZFxuIgorbXNnc3RyICJJRD0lMDJ4XHRTVEFSVD0lZFx0TMZOR0RFPSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiU3VuT1Mgcm9vdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1Mgc3dhcCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIldob2xlIGRpc2siCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBzdGFuZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICJTdW5PUyB2YXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworIywgZnV6enkKK21zZ2lkICJTdW5PUyBhbHQgc2VjdG9ycyIKK21zZ3N0ciAiJWxsZCBpa2tlLWFsbG9rZXJlZGUgc2VrdG9yZXJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4CisjLCBmdXp6eQorbXNnaWQgIlN1bk9TIGNhY2hlZnMiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OQorIywgZnV6enkKK21zZ2lkICJTdW5PUyByZXNlcnZlZCIKK21zZ3N0ciAiU3VuT1MgdXNyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDMKK21zZ2lkICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCittc2dzdHIgIkxpbnV4IHJhaWQgYXV0b2RldGVrdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjEzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorIlByb2JhYmx5IHlvdSdsbCBoYXZlIHRvIHNldCBhbGwgdGhlIHZhbHVlcyxcbiIKKyJlLmcuIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMgYW5kIHBhcnRpdGlvbnNcbiIKKyJvciBmb3JjZSBhIGZyZXNoIGxhYmVsIChzIGNvbW1hbmQgaW4gbWFpbiBtZW51KVxuIgorbXNnc3RyICIiCisiT3BkYWdlZGUgU1VOLWRpc2tt5nJrYXQgbWVkIGZvcmtlcnQgdGpla3N1bS5cbiIKKyJEdSBlciBub2sgbvhkdCB0aWwgYXQgYW5naXZlIGFsbGUgduZyZGllcm5lXG4iCisiZHZzLiBob3ZlZGVyLCBzZWt0b3JlciwgY3lsaW5kcmUgb2cgcGFydGl0aW9uZXJcbiIKKyJlbGxlciBnZW5uZW10dmluZ2UgZXQgaGVsdCBueXQgbeZya2F0LlxuIgorIihzLWtvbW1hbmRvZW4gaSBob3ZlZG1lbnVlblxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgdmVyc2lvbiBbMHglMDh4XS5cbiIKK21zZ3N0ciAiRGV0ZWt0ZXJlZGUgU0dJIGRpc2tt5nJrYXQgbWVkIGZvcmtlcnQgdGpla3N1bS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHNhbml0eSBbMHglMDh4XS5cbiIKK21zZ3N0ciAiRGV0ZWt0ZXJlZGUgU0dJIGRpc2tt5nJrYXQgbWVkIGZvcmtlcnQgdGpla3N1bS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgIkRldGVrdGVyZWRlIFNHSSBkaXNrbeZya2F0IG1lZCBmb3JrZXJ0IHRqZWtzdW0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBXcm9uZyB2YWx1ZXMgbmVlZCB0byBiZSBmaXhlZCB1cCBhbmQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyhyaXRlKVxuIgorbXNnc3RyICIiCisiQWR2YXJzZWw6IHVneWxkaWd0IGZsYWcgMHglMDR4IGZvciBwYXJ0aXRpb25zdGFiZWwgJWQgdmlsIGJsaXZlIHJldHRldCBtZWQgIgorIid3JyAoc2tyaXYpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IHN1biBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJPcGJ5Z2dlciBldCBueXQgU1VOLWRpc2tt5nJrYXQuIMZuZHJpbmdlciB2aWwgaG9sZGVzIGkgaHVrb21tZWxzZW5cbiIKKyJpbmR0aWwgZHUgYmVzbHV0dGVyIGF0IGdlbW1lIGRlbS4gRGVyZWZ0ZXIgdmlsIGRldCB0aWRsaWdlcmUgaW5kaG9sZFxuIgorIm5hdHVybGlndmlzIGlra2Uga3VubmUgZ2Vuc2thYmVzLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAiU2VrdG9yZXIvc3BvciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIHNsdXR0ZXIgaWtrZSBw5SBlbiBjeWxpbmRlci1ncuZuc2VcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgb3ZlcmxhcHMgd2l0aCBvdGhlcnMgaW4gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgb3ZlcmxhcHBlciBtZWQgYW5kcmUgaSBzZWt0b3Jlcm5lICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICJVYmVueXR0ZXQgaHVsIC0gc2VrdG9yZXJuZSAwrSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJVYmVueXR0ZXQgaHVsIC0gc2VrdG9yZXJuZSAlZK0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdGhlciBwYXJ0aXRpb25zIGFscmVhZHkgY292ZXIgdGhlIHdob2xlIGRpc2suXG4iCisiRGVsZXRlIHNvbWUvc2hyaW5rIHRoZW0gYmVmb3JlIHJldHJ5LlxuIgorbXNnc3RyICIiCisiRGlza2VuIGVyIGFsbGVyZWRlIGhlbHQgdWRmeWxkdCBtZWQgYW5kcmUgcGFydGl0aW9uZXIuXG4iCisiU2xldCBlbGxlciBmb3JtaW5kc2sgbm9nZW4gYWYgZGVtLCBm+HIgZHUgcHL4dmVyIGlnZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiRGV0IGFuYmVmYWxlcyBrcmFmdGlndCBhdCBkZW4gZWxsZXZ0ZSBwYXJ0aXRpb25cbiIKKyJmeWxkZXIgaGVsZSBkaXNrZW4gb2cgZXIgYWYgdHlwZW4gJ1NHSSB2b2x1bWUnXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIlNla3RvciAlZCBlciBhbGxlcmVkZSBhbGxva2VyZXRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmVuJ3QgY292ZXJlZCB0aGUgd2hvbGUgZGlzayB3aXRoIHRoZSAzcmQgcGFydGl0aW9uLCBidXQgeW91ciB2YWx1ZVxuIgorIiVkICVzIGNvdmVycyBzb21lIG90aGVyIHBhcnRpdGlvbi4gWW91ciBlbnRyeSBoYXMgYmVlbiBjaGFuZ2VkXG4iCisidG8gJWQgJXNcbiIKK21zZ3N0ciAiIgorIkR1IGhhciBpa2tlIHVkZnlsZHQgaGVsZSBkaXNrZW4gbWVkIHRyZWRpZSBwYXJ0aXRpb24sIG1lbiBkaW4gduZyZGlcbiIKKyIlZCAlcyBk5mtrZXIgZW4gYW5kZW4gcGFydGl0aW9uLiBEaW4gaW5kZ2FuZyBlciBibGV2ZXQg5m5kcmV0IHRpbFxuIgorIiVkICVzIFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyJIdmlzIGR1IHZpbCBiZWhvbGRlIFN1bk9TL1NvbGFyaXMta29tcGF0aWxpdGV0LCBi+HIgZHUgYmVob2xkZSBkZW5uZVxuIgorInBhcnRpdGlvbiBzb20gJ1dob2xlIGRpc2snICg1KSwgZGVyIGJlZ3luZGVyIHDlIDAsIG1lZCAldSBzZWt0b3JlclxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBVRlMsIEVYVDJGUyBmaWxlc3lzdGVtIG9yIFN1bk9TIHN3YXAuIFB1dHRpbmcgTGludXggc3dhcFxuIgorInRoZXJlIG1heSBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlIGFuZCBib290YmxvY2suXG4iCisiVHlwZSBZRVMgaWYgeW91J3JlIHZlcnkgc3VyZSB5b3Ugd291bGQgbGlrZSB0aGF0IHBhcnRpdGlvblxuIgorInRhZ2dlZCB3aXRoIDgyIChMaW51eCBzd2FwKTogIgorbXNnc3RyICIiCisiRGV0IGFuYmVmYWxlcyBrcmFmdGlndCBhdCBwYXJ0aXRpb25lbiBtZWQgZm9yc2t5ZG5pbmdlbiAwXG4iCisiZXIgZXQgVUZTLSwgRVhUMkZTLWZpbHN5c3RlbSBlbGxlciBlbiBTdW5PUyBzd2FwLiBWZWQgYXRcbiIKKyJs5mdnZSBlbiBMaW51eCBzd2FwIGRlciwga2FuIGR1IPhkZWzmZ2dlIGRpbiBwYXJ0aXRpb25zdGFiZWxcbiIKKyJvZyBvcHN0YXJ0c2Jsb2suIFNrcml2IEpBIGh2aXMgZHUgZXIgaGVsdCBzaWtrZXIgcOUsIGF0IGR1IHZpbFxuIgorIm1hcmtlcmUgZGVuIHBhcnRpdGlvbiBzb20gTGludXggc3dhcCAoODIpOiAiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIHJwbVxuIgorIiVkIGN5bGluZGVycywgJWQgYWx0ZXJuYXRlIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyJMYWJlbCBJRDogJXNcbiIKKyJWb2x1bWUgSUQ6ICVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoU3VuLWRpc2tt5nJrYXQpOiAlZCBob3ZlZGVyLCAlZCBzZWt0b3JlciwgJWQgb21kci4gcGVyIG1pbnV0XG4iCisiJWQgY3lsaW5kcmUsICVkIGFsdGVybmF0aXZlIGN5bGluZHJlLCAlZCBmeXNpc2tlIGN5bGluZHJlXG4iCisiJWQgZWtzdHJhIHNla3QvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIkVuaGVkZXIgPSAlcyDhICVkICogNTEyIGJ5dGVcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoU3VuLWRpc2tt5nJrYXQpOiAlZCBob3ZlZGVyLCAlZCBzZWt0b3JlciwgJWQgY3lsaW5kcmVcbiIKKyJFbmhlZGVyID0gJXMg4SAlZCAqIDUxMiBieXRlXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEZsYWcgICAgU3RhcnQgICAgICAgRW5kICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIEZsYWcgICAgU3RhcnQgICAgICAgU2x1dCAgIEJsb2trZSAgIElkICBTeXN0ZW1cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYyNQorbXNnaWQgIk51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICJBbnRhbCBhbHRlcm5hdGl2ZSBjeWxpbmRyZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYzNworbXNnaWQgIkV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICJFa3N0cmEgc2VrdG9yZXIgcGVyIGN5bGluZGVyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjQ0Cittc2dpZCAiSW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIkludGVybGVhdmVmYWt0b3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTEKK21zZ2lkICJSb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiUm90YXRpb25zaGFzdGlnaGVkIChvbWRyLiBwZXIgbWludXQpIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjU4Cittc2dpZCAiTnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIKK21zZ3N0ciAiQW50YWwgZnlzaXNrZSBjeWxpbmRyZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIlRvbSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3Cittc2dpZCAiRkFUMTIiCittc2dzdHIgIkZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgKK21zZ2lkICJYRU5JWCByb290IgorbXNnc3RyICJYRU5JWCByb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkKK21zZ2lkICJYRU5JWCB1c3IiCittc2dzdHIgIlhFTklYIHVzciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMAorbXNnaWQgIkZBVDE2IDwzMk0iCittc2dzdHIgIkZBVDE2IDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTEKK21zZ2lkICJFeHRlbmRlZCIKK21zZ3N0ciAiVWR2aWRldCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMgorbXNnaWQgIkZBVDE2IgorbXNnc3RyICJGQVQxNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMworbXNnaWQgIkhQRlMvTlRGUyIKK21zZ3N0ciAiSFBGUy9OVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE0Cittc2dpZCAiQUlYIgorbXNnc3RyICJBSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTUKK21zZ2lkICJBSVggYm9vdGFibGUiCittc2dzdHIgIkFJWCBvcHN0YXJ0YmFyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgT3BzdGFydHNo5W5kdGVyaW5nIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICJ3OTUgdWR2aWRldCAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMQorbXNnaWQgIk9QVVMiCittc2dzdHIgIk9QVVMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjIKK21zZ2lkICJIaWRkZW4gRkFUMTIiCittc2dzdHIgIlNranVsdCBGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMworbXNnaWQgIkNvbXBhcSBkaWFnbm9zdGljcyIKK21zZ3N0ciAiQ29tcGFxIGRpYWdub3N0aWNlcmluZyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICJTa2p1bHQgRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNQorbXNnaWQgIkhpZGRlbiBGQVQxNiIKK21zZ3N0ciAiU2tqdWx0IEZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiU2tqdWx0IEhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJBU1QgU21hcnRTbGVlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIlNranVsdCBXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJTa2p1bHQgVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiU2tqdWx0IFc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJQYXJ0aXRpb25NYWdpYyByZWRuaW5nIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIlZlbml4IDgwMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM1Cittc2dpZCAiUFBDIFBSZVAgQm9vdCIKK21zZ3N0ciAiUFBDIFBSZVAgT3BzdGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNgorbXNnaWQgIlNGUyIKK21zZ3N0ciAiU0ZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM3Cittc2dpZCAiUU5YNC54IgorbXNnc3RyICJRTlg0LngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzgKK21zZ2lkICJRTlg0LnggMm5kIHBhcnQiCittc2dzdHIgIlFOWDQueCAyLiBwYXJ0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM5Cittc2dpZCAiUU5YNC54IDNyZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMy4gcGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MAorbXNnaWQgIk9uVHJhY2sgRE0iCittc2dzdHIgIk9uVHJhY2sgRE0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDEKK21zZ2lkICJPblRyYWNrIERNNiBBdXgxIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgxIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQyCittc2dpZCAiQ1AvTSIKK21zZ3N0ciAiQ1AvTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MworbXNnaWQgIk9uVHJhY2sgRE02IEF1eDMiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDQKK21zZ2lkICJPblRyYWNrRE02IgorbXNnc3RyICJPblRyYWNrRE02IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ1Cittc2dpZCAiRVotRHJpdmUiCittc2dzdHIgIkVaLURyZXYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDYKK21zZ2lkICJHb2xkZW4gQm93IgorbXNnc3RyICJHb2xkZW4gQm93IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ3Cittc2dpZCAiUHJpYW0gRWRpc2siCittc2dzdHIgIlByaWFtIEVkaXNrIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTIKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OQorbXNnaWQgIlNwZWVkU3RvciIKK21zZ3N0ciAiU3BlZWRTdG9yIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ5Cittc2dpZCAiR05VIEhVUkQgb3IgU3lzViIKK21zZ3N0ciAiR05VIEhVUkQgZWxsZXIgU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiR2FtbWVsIE1pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8gZ2FtbWVsIExpbnV4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2Cittc2dpZCAiTGludXggc3dhcCAvIFNvbGFyaXMiCittc2dzdHIgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU4Cittc2dpZCAiT1MvMiBoaWRkZW4gQzogZHJpdmUiCittc2dzdHIgIk9TLzIgc2tqdWx0IEMtZHJldiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCB1ZHZpZGV0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIk5URlMgYmluZC1z5nQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjIKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIkxpbnV4IHLldGVrc3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjQKK21zZ2lkICJBbW9lYmEiCittc2dzdHIgIkFtb2ViYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NQorbXNnaWQgIkFtb2ViYSBCQlQiCittc2dzdHIgIkFtb2ViYSBCQlQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjYKK21zZ2lkICJCU0QvT1MiCittc2dzdHIgIkJTRC9PUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NworbXNnaWQgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKK21zZ3N0ciAiSUJNIFRoaW5rcGFkIGR2YWxlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY4Cittc2dpZCAiRnJlZUJTRCIKK21zZ3N0ciAiRnJlZUJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OQorbXNnaWQgIk9wZW5CU0QiCittc2dzdHIgIk9wZW5CU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzAKK21zZ2lkICJOZVhUU1RFUCIKK21zZ3N0ciAiTmVYVFNURVAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzEKK21zZ2lkICJEYXJ3aW4gVUZTIgorbXNnc3RyICJEYXJ3aW4gVUZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcyCittc2dpZCAiTmV0QlNEIgorbXNnc3RyICJOZXRCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzMKK21zZ2lkICJEYXJ3aW4gYm9vdCIKK21zZ3N0ciAiRGFyd2luIG9wc3RhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzQKKyMsIGZ1enp5Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc1Cittc2dpZCAiQlNESSBmcyIKK21zZ3N0ciAiQlNESSBmcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NgorbXNnaWQgIkJTREkgc3dhcCIKK21zZ3N0ciAiQlNESSBzd2FwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc3Cittc2dpZCAiQm9vdCBXaXphcmQgaGlkZGVuIgorbXNnc3RyICJCb290IFdpemFyZCBza2p1bHQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIlNvbGFyaXMgb3BzdGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJJa2tlLWZpbHN5c3RlbWRhdGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODUKK21zZ2lkICJDUC9NIC8gQ1RPUyAvIC4uLiIKK21zZ3N0ciAiQ1AvTSAvIENUT1MgLyAuLi4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODcKK21zZ2lkICJEZWxsIFV0aWxpdHkiCittc2dzdHIgIkRlbGwgVuZya3T4aiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OAorbXNnaWQgIkJvb3RJdCIKK21zZ3N0ciAiQm9vdEl0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg5Cittc2dpZCAiRE9TIGFjY2VzcyIKK21zZ3N0ciAiRE9TIGFjY2VzcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MQorbXNnaWQgIkRPUyBSL08iCittc2dzdHIgIkRPUyBSL08iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTQKK21zZ2lkICJCZU9TIGZzIgorbXNnc3RyICJCZU9TIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk1CisjLCBmdXp6eQorbXNnaWQgIkdQVCIKK21zZ3N0ciAiRUZJIEdQVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NgorbXNnaWQgIkVGSSAoRkFULTEyLzE2LzMyKSIKK21zZ3N0ciAiRUZJIChGQVQtMTIvMTYvMzIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk3Cittc2dpZCAiTGludXgvUEEtUklTQyBib290IgorbXNnc3RyICJMaW51eC9QQS1SSVNDIG9wc3RhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAwCittc2dpZCAiRE9TIHNlY29uZGFyeSIKK21zZ3N0ciAiRE9TIHNla3VuZOZyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJz+GdlZmVqbCBw5SAlcyAtIGt1bm5lIGlra2Ugc/hnZSB0aWwgJWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2OQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yOiB3YW50ZWQgMHglMDh4JTA4eCwgZ290IDB4JTA4eCUwOHhcbiIKK21zZ3N0ciAic/hnZWZlamw6IPhuc2tlZGUgMHglMDh4JTA4eCwgZmlrIDB4JTA4eCUwOHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1Cittc2dpZCAib3V0IG9mIG1lbW9yeSAtIGdpdmluZyB1cFxuIgorbXNnc3RyICJs+GJldCB0+HIgZm9yIGh1a29tbWVsc2UgLSBvcGdpdmVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAibOZzZWZlamwgcOUgJXMgLSBrdW5uZSBpa2tlIGzmc2Ugc2VrdG9yICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiRkVKTDogc2VrdG9yICVsdSBoYXIgaWtrZSBlbiBNU0RPUy1zaWduYXR1clxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXMgLSBjYW5ub3Qgd3JpdGUgc2VjdG9yICVsdVxuIgorbXNnc3RyICJza3JpdmVmZWpsIHDlICVzIC0ga2FuIGlra2Ugc2tyaXZlIHNla3RvciAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiBzZWN0b3Igc2F2ZSBmaWxlICglcylcbiIKK21zZ3N0ciAia3VubmUgaWtrZSDlYm5lIHBhcnRpdGlvbnNzZWt0b3ItcmVkbmluZ3NmaWwgKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAic2tyaXZlZmVqbCBw5SAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgImt1bm5lIGlra2UgZmluZGUgcGFydGl0aW9ucy1nZW5za2FiZWxzZXNmaWwgKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDAKK21zZ2lkICJwYXJ0aXRpb24gcmVzdG9yZSBmaWxlIGhhcyB3cm9uZyBzaXplIC0gbm90IHJlc3RvcmluZ1xuIgorbXNnc3RyICJwYXJ0aXRpb25zLWdlbnNrYWJlbHNlc2ZpbCBoYXIgZm9ya2VydCBzdPhycmVsc2UgLSBnZW5za2FiZXIgaWtrZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDQKK21zZ2lkICJvdXQgb2YgbWVtb3J5P1xuIgorbXNnc3RyICJs+GJldCB0+HIgZm9yIGh1a29tbWVsc2U/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAia2FuIGlra2Ug5WJuZSBwYXJ0aXRpb25zLWdlbnNrYWJlbHNlc2ZpbGVuICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiZmVqbCB1bmRlciBs5nNuaW5nIGFmICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAia2FuIGlra2Ug5WJuZSBlbmhlZGVuICVzIGZvciBza3Jpdm5pbmdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICJmZWpsIHZlZCBza3Jpdm5pbmcgYWYgc2VrdG9yICVsdSBw5SAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBnZW9tZXRyeVxuIgorbXNnc3RyICJEaXNrICVzOiBrYW4gaWtrZSBiZXN0ZW1tZSBnZW9tZXRyaWVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ1NworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IHNpemVcbiIKK21zZ3N0ciAiRGlzayAlczoga2FuIGlra2UgYmVzdGVtbWUgc3T4cnJlbHNlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHN0YXJ0PSVsdSAtIHRoaXMgbG9va3MgbGlrZSBhIHBhcnRpdGlvbiByYXRoZXIgdGhhblxuIgorInRoZSBlbnRpcmUgZGlzay4gVXNpbmcgZmRpc2sgb24gaXQgaXMgcHJvYmFibHkgbWVhbmluZ2xlc3MuXG4iCisiW1VzZSB0aGUgLS1mb3JjZSBvcHRpb24gaWYgeW91IHJlYWxseSB3YW50IHRoaXNdXG4iCittc2dzdHIgIiIKKyJBZHZhcnNlbDogc3RhcnQ9JWx1IC0gZGV0dGUgbGlnbmVyIG1lcmUgZW4gcGFydGl0aW9uIGVuZCBlblxuIgorImhlbCBkaXNrLiBCcnVnIGFmIGZkaXNrIHDlIGRlbiBlciBzaWtrZXJ0IG1lbmluZ3Ns+HN0LlxuIgorIltCcnVnIHRpbHZhbGdldCAtLWZvcmNlIGh2aXMgZHUgdmlya2VsaWcgZ2VybmUgdmlsXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAiQWR2YXJzZWw6IEhESU9fR0VUR0VPIHNpZ2VyLGF0IGRlciBlciAlbHUgaG92ZWRlclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgc2VjdG9yc1xuIgorbXNnc3RyICJBZHZhcnNlbDogSERJT19HRVRHRU8gc2lnZXIsIGF0IGRlciBlciAlbHUgc2VrdG9yZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIkFkdmFyc2VsOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHNpZ2VyLCBhdCBkZXIgZXIgICVsdSBjeWxpbmRyZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJBZHZhcnNlbDogdXNhbmRzeW5saWd0IGFudGFsIHNla3RvcmVyICglbHUpIC0gbm9ybWFsdCBo+GpzdCA2M1xuIgorIkRldHRlIHZpbCBnaXZlIHByb2JsZW1lciBtZWQgYWwgcHJvZ3JhbW1lbCwgZGVyIGJydWdlciBDL0gvUy1hZHJlc3NlcmluZy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbHUgY3lsaW5kZXJzLCAlbHUgaGVhZHMsICVsdSBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzOiAlbHUgY3lsaW5kcmUsICVsdSBob3ZlZGVyLCAlbHUgc2VrdG9yZXIvc3BvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKyIlcyBmb3IgcGFydGl0aW9uICVzIGhhciB1bXVsaWcgaG92ZWQtduZyZGk6ICVsdSAoYnVyZGUgduZyZSBtZWxsZW0gMC0lbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBzZWN0b3I6ICVsdSAoc2hvdWxkIGJlIGluIDEtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGZvciBwYXJ0aXRpb24gJXMgaGFyIHVtdWxpZyBzZWt0b3ItduZyZGk6ICVsdSAoYnVyZGUgduZyZSBtZWxsZW0gMS0lbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICVsdSAoc2hvdWxkIGJlIGluIDAtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGZvciBwYXJ0aXRpb24gJXMgaGFyIHVtdWxpZyBjeWxpbmRlci125nJkaTogJWx1IChidXJkZSB25nJlIG1lbGxlbSAwLSUiCisibHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWQgIE5hbWVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIklkICBOYXZuXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iCittc2dzdHIgIkdlbmluZGzmc2VyIHBhcnRpdGlvbnN0YWJlbCAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCisjLCBmdXp6eQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKyJLb21tYW5kb2VuIGZvciBnZW5pbmRs5nNuaW5nIGFmIHBhcnRpdGlvbnN0YWJlbGxlbiBtaXNseWtrZWRlc1xuIgorIkdlbnN0YXJ0IGRpdCBzeXN0ZW0gbnUsIGb4ciBkdSBmb3JtYXR0ZXJlciBtZWQgbWtmc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2xvc2luZyAlc1xuIgorbXNnc3RyICJGZWpsIHZlZCBsdWtuaW5nIGFmICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IGluZ2VuIHPlZGFuIHBhcnRpdGlvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4NzgKK21zZ2lkICJ1bnJlY29nbml6ZWQgZm9ybWF0IC0gdXNpbmcgc2VjdG9yc1xuIgorbXNnc3RyICJ1a2VuZHQgZm9ybWF0IC0gYmVueXR0ZXQgc2VrdG9yZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAiaWtrZS1pbXBsZW1lbnRlcmV0IGZvcm1hdCAtIGJlbnl0dGVyICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBjeWxpbmRlcnMgb2YgJWx1IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRW5oZWRlciA9IGN5bGluZHJlIOEgJWx1IGJ5dGUsIGJsb2trZSDhIDEwMjQgYnl0ZSwgdOZsbGVyIGZyYSAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICAgIEVuZCAgICNjeWxzICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIEVuaGVkICBPcHN0IFN0YXJ0ICAgICBTbHV0ICAjY3lsZHIuICNibG9ra2UgICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRW5oZWRlciA9IHNla3RvcmVyIOEgNTEyIGJ5dGUsIHTmbGxlciBmcmEgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIEVuaGVkICBPcHN0YXJ0IFN0YXJ0ICAgICAgIFNsdXQgICNzZWt0b3JlciBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRW5oZWRlciA9IGJsb2trZSDhIDEwMjQgYnl0ZSwgdOZsbGVyIGZyYSAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICBTdGFydCAgICAgICBFbmQgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRW5oZWQgIE9wc3RydCBTdGFydCAgICAgICBTbHV0ICAgI2Jsb2trZSAgIElkICBTeXN0ZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IG1lYmlieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRW5oZWRlciA9IG1lZ2FieXRlIOEgMTA0ODU3NiBieXRlLCBibG9ra2Ug4SAxMDI0IGJ5dGUsIGZyYSAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIEVuaGVkICBPcHN0IFN0YXJ0ICAgU2x1dCAgIE1pQiAgICAjYmxva2tlICAgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdHN0YXJ0OiAoYyxoLHMpIGZvcnZlbnRlZGUgKCVsZCwlbGQsJWxkKSBmYW5kdCAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdHNsdXQ6IChjLGgscykgZm9ydmVudGVkZSAoJWxkLCVsZCwlbGQpIGZhbmR0ICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgInBhcnRpdGlvbmVuIHNsdXR0ZXIgcOUgY3lsaW5kZXIgJWxkLCBlZnRlciBkaXNrZW5zIHNsdXRuaW5nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzMKK21zZ2lkICJObyBwYXJ0aXRpb25zIGZvdW5kXG4iCittc2dzdHIgIkZhbmR0IGluZ2VuIHBhcnRpdGlvbmVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFRoZSBwYXJ0aXRpb24gdGFibGUgbG9va3MgbGlrZSBpdCB3YXMgbWFkZVxuIgorIiAgZm9yIEMvSC9TPSovJWxkLyVsZCAoaW5zdGVhZCBvZiAlbGQvJWxkLyVsZCkuXG4iCisiRm9yIHRoaXMgbGlzdGluZyBJJ2xsIGFzc3VtZSB0aGF0IGdlb21ldHJ5LlxuIgorbXNnc3RyICIiCisiQWR2YXJzZWw6IFBhcnRpdGlvbnN0YWJlbGxlbiBzZXIgdWQgc29tIG9tIGRlbiB2YXIgbGF2ZXRcbiIKKyIgICB0aWwgQy9IL1M9Ki8lbGQvJWxkIChpIHN0ZWRldCBmb3IgJWxkLyVsZC8lbGQpLlxuIgorIkkgZGVubmUgdmlzbmluZyB2aWwgamVnIGflIHVkIGZyYSBkZW5uZSBnZW9tZXRyaS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4NgorbXNnaWQgIm5vIHBhcnRpdGlvbiB0YWJsZSBwcmVzZW50LlxuIgorbXNnc3RyICJkZXIgZXIgaW5nZW4gcGFydGl0aW9uc3RhYmVsLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg4CisjLCBjLWZvcm1hdAorbXNnaWQgInN0cmFuZ2UsIG9ubHkgJWQgcGFydGl0aW9ucyBkZWZpbmVkLlxuIgorbXNnc3RyICJt5nJrZWxpZ3QsIGt1biAlZCBwYXJ0aXRpb25lciBlciBkZWZpbmVyZXQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYnV0IGlzIG5vdCBtYXJrZWQgRW1wdHlcbiIKK21zZ3N0ciAiQWR2YXJzZWw6IHBhcnRpdGlvbiAlcyBoYXIgc3T4cnJlbHNlbiAwLCBtZW4gZXIgaWtrZSBtYXJrZXJldCB0b21cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiQWR2YXJzZWw6IHBhcnRpdGlvbiAlcyBoYXIgc3T4cnJlbHNlbiAwLCBtZW4gZXIgb3BzdGFydGJhclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBub256ZXJvIHN0YXJ0XG4iCittc2dzdHIgIkFkdmFyc2VsOiBwYXJ0aXRpb24gJXMgaGFyIHN0+HJyZWxzZW4gMCwgbWVuIHN0YXJ0ZXIgaWtrZSBpIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICJBZHZhcnNlbDogcGFydGl0aW9uICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIgorbXNnc3RyICJpbmRlaG9sZGVzIGlra2UgaSBwYXJ0aXRpb24gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb25zICVzICIKK21zZ3N0ciAiQWR2YXJzZWw6IHBhcnRpdGlvbmVybmUgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgIm9nICVzIG92ZXJsYXBwZXIgaGluYW5kZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogcGFydGl0aW9uICVzIGNvbnRhaW5zIHBhcnQgb2YgdGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisiYW5kIHdpbGwgZGVzdHJveSBpdCB3aGVuIGZpbGxlZFxuIgorbXNnc3RyICIiCisiQWR2YXJzZWw6IHBhcnRpdGlvbmVuICVzIGluZGVob2xkZXIgZW4gZGVsIGFmIHBhcnRpdGlvbnN0YWJlbGxlbiAoc2VrdG9yICUiCisibHUpLFxuIgorIm9nIHZpbCD4ZGVs5mdnZSBkZW5uZSwgbuVyIGRlciBza3JpdmVzIHRpbCBwYXJ0aXRpb25lbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgc3RhcnRzIGF0IHNlY3RvciAwXG4iCittc2dzdHIgIkFkdmFyc2VsOiBwYXJ0aXRpb24gJXMgc3RhcnRlciBpIHNla3RvciAwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGV4dGVuZHMgcGFzdCBlbmQgb2YgZGlza1xuIgorbXNnc3RyICJBZHZhcnNlbDogcGFydGl0aW9uICVzIG7lciB1ZCBvdmVyIGRpc2tlbnMgc2x1dG5pbmdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorIkt1biDpbiBhZiBwcmlt5nJwYXRpdGlvbmVybmUgbeUgduZyZSB1ZHZpZGV0XG4iCisiIChkZXR0ZSBlciBkb2cgaWtrZSBub2dldCBwcm9ibGVtIHVuZGVyIExpbnV4KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIkFkdmFyc2VsOiBwYXJ0aXRpb24gJXMgc3RhcnRlciBpa2tlIHDlIGVuIGN5bGluZGVyZ3LmbnNlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IGVuZCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIkFkdmFyc2VsOiBwYXJ0aXRpb24gJXMgc2x1dHRlciBpa2tlIHDlIGVuIGN5bGluZGVyZ3LmbnNlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiQWR2YXJzZWw6IGFkc2tpbGxpZ2UgcHJpbeZycGFydGl0aW9uZXIgZXIgbWFya2VyZXQgb3BzdGFydGJhcmUgKGFrdGl2ZSlcbiIKKyJEZXR0ZSBnZW5lcmVyIGlra2UgTElMTywgbWVuIERPUyBNQlIgdmlsIGlra2Uga3VubmUgc3RhcnRlIG9wIGZyYSBkZW5uZSAiCisiZGlzay5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxOAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1c3VhbGx5IG9uZSBjYW4gYm9vdCBmcm9tIHByaW1hcnkgcGFydGl0aW9ucyBvbmx5XG4iCisiTElMTyBkaXNyZWdhcmRzIHRoZSBgYm9vdGFibGUnIGZsYWcuXG4iCittc2dzdHIgIiIKKyJBZHZhcnNlbDogbm9ybWFsdCBrYW4gbWFuIGt1biBzdGFydGUgb3AgZnJhIHByaW3mcnBhcnRpdGlvbmVyXG4iCisiTElMTyBpZ25vcmVyZXIgb3BzdGFydGJhciBmbGFnZXQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMjQKK21zZ2lkICIiCisiV2FybmluZzogbm8gcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorIkFkdmFyc2VsOiBpbmdlbiBwcmlt5nJwYXJ0aXRpb24gZXIgbWFya2VyZXQgb3BzdGFydGJhciAoYWt0aXYpXG4iCisiRGV0IGdlbmVyZXIgaWtrZSBMSUxPLCBtZW4gRE9TIE1CUiB2aWwgaWtrZSBrdW5uZSBzdGFydGUgb3AgZnJhIGRlbm5lIGRpc2suXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAic3RhcnQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInBhcnRpdGlvbiAlczogc3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGZvcnZlbnRlZGUgKCVsZCwlbGQsJWxkKSBmYW5kdCAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgInNsdXQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzOiBlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBmb3J2ZW50ZWRlICglbGQsJWxkLCVsZCkgZmFuZHQgKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAicGFydGl0aW9uICVzIHNsdXR0ZXIgcOUgY3lsaW5kZXIgJWxkLCBlZnRlciBkaXNrZW5zIHNsdXRuaW5nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHNoaWZ0ZWQgc3RhcnQgb2YgdGhlIGV4dGQgcGFydGl0aW9uIGZyb20gJWxkIHRvICVsZFxuIgorIihGb3IgbGlzdGluZyBwdXJwb3NlcyBvbmx5LiBEbyBub3QgY2hhbmdlIGl0cyBjb250ZW50cy4pXG4iCittc2dzdHIgIiIKKyJBZHZhcnNlbDog5m5kcmVkZSBzdGFydGVuIHDlIHVkdmlkZXQgcGFydGl0aW9uIGZyYSAlbGQgdGlsICVsZFxuIgorIihWZWRy+HJlciBrdW4gb3BsaXN0bmluZ2VuLiDGbmRyZXIgaWtrZSBpbmRob2xkZXQuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiQWR2YXJzZWw6IHVkdmlkZXQgcGFydGl0aW9uIHN0YXJ0ZXIgaWtrZSBw5SBlbiBjeWxpbmRlcmdy5m5zZS5cbiIKKyJET1Mgb2cgTGludXggdmlsIG9wZmF0dGUgaW5kaG9sZGV0IGZvcnNrZWxsaWd0LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICJmb3IgbWFuZ2UgcGFydGl0aW9uZXIgLSBpZ25vcmVyZXIgZGVtIGVmdGVyIG5yLiAoJWQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MTcKK21zZ2lkICJ0cmVlIG9mIHBhcnRpdGlvbnM/XG4iCittc2dzdHIgInRy5iBtZWQgcGFydGl0aW9uZXI/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAiZmFuZHQgRGlzayBNYW5hZ2VyIC0ga2FuIGlra2UgaOVuZHRlcmUgc+VkYW4gZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUzMgorbXNnaWQgIkRNNiBzaWduYXR1cmUgZm91bmQgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiZmFuZHQgRE02IHNpZ25hdHVyIC0gb3BnaXZlclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAibeZya2VsaWd0Li4uIGVuIHVkdmlkZXQgcGFydGl0aW9uIG1lZCBzdPhycmVsc2VuIDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTkgZmRpc2svc2ZkaXNrLmM6MTU3MAorbXNnaWQgInN0cmFuZ2UuLi4sIGEgQlNEIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgIm3mcmtlbGlndC4uLiwgZW4gQlNELXBhcnRpdGlvbiBtZWQgc3T4cnJlbHNlbiAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iCittc2dzdHIgIiAlczogdWtlbmR0IHBhcnRpdGlvbnN0YWJlbHR5cGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYxNgorbXNnaWQgIi1uIGZsYWcgd2FzIGdpdmVuOiBOb3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiZmxhZ2V0IC1uIGJsZXYgZ2l2ZXQ6IEludGV0IOZuZHJldFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjMyCittc2dpZCAiRmFpbGVkIHNhdmluZyB0aGUgb2xkIHNlY3RvcnMgLSBhYm9ydGluZ1xuIgorbXNnc3RyICJLdW5uZSBpa2tlIGdlbW1lIGRlIGdhbWxlIHNla3RvcmVyLSBhZmJyeWRlclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjM3IGZkaXNrL3NmZGlzay5jOjE2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHdyaXRpbmcgdGhlIHBhcnRpdGlvbiBvbiAlc1xuIgorbXNnc3RyICJNaXNseWtrZXQgc2tyaXZuaW5nIGFmIHBhcnRpdGlvbiBw5SAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzE5Cittc2dpZCAibG9uZyBvciBpbmNvbXBsZXRlIGlucHV0IGxpbmUgLSBxdWl0dGluZ1xuIgorbXNnc3RyICJsYW5nIGVsbGVyIHVhZnNsdXR0ZXQgaW5kZGF0YWxpbmplIC0gYWZicnlkZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc1NQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogYD0nIGV4cGVjdGVkIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgImluZGRhdGFmZWpsOiBmb3J2ZW50ZXIgJz0nIGVmdGVyICVzLWZlbHRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogdW5leHBlY3RlZCBjaGFyYWN0ZXIgJWMgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiaW5kZGF0YWZlamw6IHV2ZW50ZXQgdGVnbiAlYyBlZnRlciAlcy1mZWx0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICJ1a2VuZHQgaW5kZGF0YTogJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgInRhbCBmb3Igc3RvcnRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxNAorbXNnaWQgInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtYmVyXG4iCittc2dzdHIgInV2ZWRrb21tZW5kZSB0ZWduIGVmdGVyIHRhbGxldFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTM4Cittc2dpZCAibm8gcm9vbSBmb3IgcGFydGl0aW9uIGRlc2NyaXB0b3JcbiIKK21zZ3N0ciAiaWtrZSBwbGFkcyB0aWwgcGFydGl0aW9uc2Jlc2tyaXZlbHNlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5NzEKK21zZ2lkICJjYW5ub3QgYnVpbGQgc3Vycm91bmRpbmcgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgImt1bm5lIGlra2Ugb3BieWdnZSBkZW4gb21naXZlbmRlIHVkdmlkZWRlIHBhcnRpdGlvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDIyCittc2dpZCAidG9vIG1hbnkgaW5wdXQgZmllbGRzXG4iCittc2dzdHIgImZvciBtYW5nZSBpbmRkYXRhZmVsdGVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIklra2UgcGxhZHMgdGlsIG1lcmVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA3NQorbXNnaWQgIklsbGVnYWwgdHlwZVxuIgorbXNnc3RyICJVZ3lsZGlnIHR5cGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIiIKKyJBZHZhcnNlbDogZGVuIGFuZ2l2ZW4gc3T4cnJlbHNlKCVsdSkgb3ZlcnN0aWdlciBkZW4gbWFrc2ltYWx0IHRpbGxhZHRlICglIgorImx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTEzCittc2dpZCAiV2FybmluZzogZW1wdHkgcGFydGl0aW9uXG4iCittc2dzdHIgIkFkdmFyc2VsOiB0b20gcGFydGl0aW9uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHBhcnRpdGlvbiBzdGFydCAoZWFybGllc3QgJWx1KVxuIgorbXNnc3RyICJBZHZhcnNlbDogdWd5bGRpZ3QgcGFydGl0aW9uc2JlZ3luZGVsc2UgKHRpZGxpZ3N0ICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE0MAorbXNnaWQgInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIgorbXNnc3RyICJ1a2VuZHQgb3BzdGFydGJhci1mbGFnLCAgduZsZyAtIGVsbGVyICpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1NyBmZGlzay9zZmRpc2suYzoyMTcwCittc2dpZCAicGFydGlhbCBjLGgscyBzcGVjaWZpY2F0aW9uP1xuIgorbXNnc3RyICJkZWx2aXMgYyxoLHMtc3BlY2lmaWthdGlvbj9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE4MQorbXNnaWQgIkV4dGVuZGVkIHBhcnRpdGlvbiBub3Qgd2hlcmUgZXhwZWN0ZWRcbiIKK21zZ3N0ciAiVWR2aWRldCBwYXJ0aXRpb24gaWtrZSBodm9yIGRlbiBmb3J2ZW50ZWRlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjEzCittc2dpZCAiYmFkIGlucHV0XG4iCittc2dzdHIgInVneWxkaWdlIGluZGRhdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAiZm9yIG1hbmdlIHBhcnRpdGlvbmVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyNjgKK21zZ2lkICIiCisiSW5wdXQgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ7IGFic2VudCBmaWVsZHMgZ2V0IGEgZGVmYXVsdCB2YWx1ZS5cbiIKKyI8c3RhcnQ+IDxzaXplPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorIlVzdWFsbHkgeW91IG9ubHkgbmVlZCB0byBzcGVjaWZ5IDxzdGFydD4gYW5kIDxzaXplPiAoYW5kIHBlcmhhcHMgPHR5cGU+KS5cbiIKK21zZ3N0ciAiIgorIkluZGRhdGEgaSBm+GxnZW5kZSBmb3JtYXQ7IHVkZWxhZHRlIGZlbHRlciB0aWxkZWxlcyBzdGFuZGFyZHbmcmRpLlxuIgorIjxzdGFydD4gPHN0+HJyPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorIkR1IGJlaPh2ZXIgbm9ybWFsdCBrdW4gYXQgYW5naXZlIDxzdGFydD4gb2cgPHN0+HJyPiAob2cgbeVza2UgPHR5cGU+KS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIGRldmljZSAuLi5cbiIKK21zZ3N0ciAiQnJ1ZzogJXMgW3RpbHZhbGddIGVuaGVkIC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAiZW5oZWQ6IG5vZ2V0IGxpZ25lbmRlIC9kZXYvaGRhIGVsbGVyIC9kZXYvc2RhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk2Cittc2dpZCAidXNlZnVsIG9wdGlvbnM6IgorbXNnc3RyICJueXR0aWdlIHRpbHZhbGc6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgIC1zIFtlbGxlciAtLXNob3ctc2l6ZV06IHZpcyBwYXJ0aXRpb25lbnMgc3T4cnJlbHNlIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiAgICAtYyBbZWxsZXIgLS1pZF06ICAgICAgICB2aXMgZWxsZXIg5m5kciBwYXJ0aXRpb25zLWlkIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk5Cittc2dpZCAiICAgIC1sIFtvciAtLWxpc3RdOiAgICAgIGxpc3QgcGFydGl0aW9ucyBvZiBlYWNoIGRldmljZSIKK21zZ3N0ciAiICAgIC1sIFtlbGxlciAtLWxpc3RdOiAgICAgIHZpcyBodmVyIGVuaGVkcyBwYXJ0aXRpb25lciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAtZCBbb3IgLS1kdW1wXTogICAgICBpZGVtLCBidXQgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGxhdGVyIGlucHV0IgorbXNnc3RyICIiCisiICAgIC1kIFtlbGxlciAtLWR1bXBdOiAgICAgIGRldCBzYW1tZSwgbWVuIGkgZXQgZm9ybWF0LCBkZXIgdmlsIHBhc3NlIHRpbCAiCisic2VuZXJlIGluZGRhdGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgLWkgW29yIC0taW5jcmVtZW50XTogbnVtYmVyIGN5bGluZGVycyBldGMuIGZyb20gMSBpbnN0ZWFkIG9mIGZyb20gMCIKK21zZ3N0ciAiIgorIiAgICAtaSBbZWxsZXIgLS1pbmNyZW1lbnRdOiBhbnRhbCBjeWxpbmRyZSBvc3YuIGZyYSAxIGkgc3RlZGV0IGZvciBmcmEgMCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMgorbXNnaWQgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0L3JlcG9ydCBpbiB1bml0cyBvZiBzZWN0b3JzL2Jsb2Nrcy9jeWxpbmRlcnMvIgorIk1CIgorbXNnc3RyICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogICAgIGluZGzmcy92aXMgaSBlbmhlZGVybmUgc2VrdG9yZXIvYmxva2tlL2N5bGluZHJlLyIKKyJNQiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgICAtVCBbZWxsZXIgLS1saXN0LXR5cGVzXTp2aXMga2VuZHRlIHBhcnRpdGlvbnN0eXBlciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAtRCBbb3IgLS1ET1NdOiAgICAgICBmb3IgRE9TLWNvbXBhdGliaWxpdHk6IHdhc3RlIGEgbGl0dGxlIHNwYWNlIgorbXNnc3RyICIgICAgLUQgW2VsbGVyIC0tRE9TXTogICAgICAgRE9TLWtvbXBhdGliaWxpdGV0OiBzcGlsZGVyIGxpZHQgcGxhZHMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgLVIgW29yIC0tcmUtcmVhZF06ICAgbWFrZSBrZXJuZWwgcmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgIC1SIFtlbGxlciAtLXJlLXJlYWRdOiAgIGxhZCBrZXJuZW4gZ2VuaW5kbOZzZSBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDYKK21zZ2lkICIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIgorbXNnc3RyICIgICAgLU4jIDogICAgICAgICAgICAgICAgICAgcmV0IGt1biBwYXJ0aXRpb25lbiBtZWQgbnVtbWVyICMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiAgICAtbiA6ICAgICAgICAgICAgICAgICAgICB1bmRsYWQgYXQgc2tyaXZlIOZuZHJpbmdlcm5lIHRpbCBkaXNrZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDgKK21zZ2lkICIiCisiICAgIC1PIGZpbGUgOiAgICAgICAgICAgIHNhdmUgdGhlIHNlY3RvcnMgdGhhdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHRvIGZpbGUiCittc2dzdHIgIiAgICAtTyBmaWwgOiAgICAgICAgICAgICAgICBnZW0gZGUgc2VrdG9yZXIsIGRlciBvdmVyc2tyaXZlcywgaSBlbiBmaWwiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIgICAgLUkgZmlsIDogICAgICAgICAgICAgICAgZ2Vuc2thYiBkaXNzZSBzZWt0b3JlciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIgorbXNnc3RyICIgICAgLXYgW2VsbGVyIC0tdmVyc2lvbl06ICAgdmlzIHZlcnNpb24iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgLT8gW29yIC0taGVscF06ICAgICAgcHJpbnQgdGhpcyBtZXNzYWdlIgorbXNnc3RyICIgICAgLT8gW2VsbGVyIC0taGVscF06ICAgICAgdmlzIGRlbm5lIGJlc2tlZCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMgorbXNnaWQgImRhbmdlcm91cyBvcHRpb25zOiIKK21zZ3N0ciAiZmFybGlnZSB0aWx2YWxnOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIgICAgLWcgW2VsbGVyIC0tc2hvdy1nZW9tZXRyeV06IHZpcyBrZXJuZW5zIGJ1ZCBw5SBkZW4gZ2VvbWV0cmkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTQKK21zZ2lkICIiCisiICAgIC1HIFtvciAtLXNob3ctcHQtZ2VvbWV0cnldOiBwcmludCBnZW9tZXRyeSBndWVzc2VkIGZyb20gdGhlIHBhcnRpdGlvbiAiCisidGFibGUiCittc2dzdHIgIiIKKyIgICAgLUcgW2VsbGVyIC0tc2hvdy1nZW9tZXRyeV06IHZpcyBrZXJuZW5zIGJ1ZCBw5SBkZW4gZ2VvbWV0cmkgdWQgZnJhICIKKyJwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCBbZWxsZXIgLS1zaG93LWV4dGVuZGVkXTogbWVkdGFnIHVkdmlkZWRlIHBhcnRpdGlvbmVyIGkgdWRkYXRhXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGxlciBmb3J2ZW50IGRlc2tyaXB0b3JlciBmb3IgZGVtIGkgaW5kZGF0YSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNworbXNnaWQgIiIKKyIgICAgLUwgIFtvciAtLUxpbnV4XTogICAgICBkbyBub3QgY29tcGxhaW4gYWJvdXQgdGhpbmdzIGlycmVsZXZhbnQgZm9yIExpbnV4IgorbXNnc3RyICIgICAgLUwgIFtlbGxlciAtLUxpbnV4XTogICAgICBnaXYgaWtrZSBy5WQsIGRlciBpa2tlIHZlZHL4cmVyIExpbnV4IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbZWxsZXIgLS1xdWlldF06ICAgICAgdW5kZXJ0cnlrIGFkdmFyc2xlciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZXRlY3RlZCBnZW9tZXRyeSB1c2luZzoiCittc2dzdHIgIiAgICBEdSBrYW4gdGlsc2lkZXPmdHRlIGRlbiBkZXRla3RlcmVkZSBnZW9tZXRyaSBtZWQ6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIwCittc2dpZCAiICAgIC1DIyBbb3IgLS1jeWxpbmRlcnMgI106c2V0IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1DIyBbZWxsZXIgLS1jeWxpbmRlcnMgI106YW5naXYgZGV0IGN5bGluZGVyYW50YWwsIGRlciBza2FsIGJydWdlcyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1IIyBbZWxsZXIgLS1oZWFkcyAjXTogICAgYW5naXYgZGV0IGhvdmVkYW50YWwsIGRlciBza2FsIGJydWdlcyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLVMjIFtlbGxlciAtLXNlY3RvcnMgI106ICBhbmdpdiBkZXQgc2VrdG9yYW50YWwsIGRlciBza2FsIGJydWdlcyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMworbXNnaWQgIllvdSBjYW4gZGlzYWJsZSBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcgd2l0aDoiCittc2dzdHIgIkR1IGthbiB1bmRlcnRyeWtrZSBhbGxlIGZvcmVuZWxpZ2hlZHN0amVrIG1lZDoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjQKK21zZ2lkICIgICAgLWYgIFtvciAtLWZvcmNlXTogICAgICBkbyB3aGF0IEkgc2F5LCBldmVuIGlmIGl0IGlzIHN0dXBpZCIKK21zZ3N0ciAiICAgIC1mICBbZWxsZXIgLS1mb3JjZV06ICAgICAgZ/hyIGh2YWQgamVnIHNpZ2VyLCBzZWx2b20gZGV0IGVyIGR1bXQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzAKK21zZ2lkICJVc2FnZToiCittc2dzdHIgIkJydWc6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZVx0XHQgbGlzdCBhY3RpdmUgcGFydGl0aW9ucyBvbiBkZXZpY2VcbiIKK21zZ3N0ciAiJXMgZW5oZWRcdFx0IHZpcyBha3RpdmUgcGFydGl0aW9uZXIgcOUgZW5oZWRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2UgbjEgbjIgLi4uIGFjdGl2YXRlIHBhcnRpdGlvbnMgbjEgLi4uLCBpbmFjdGl2YXRlIHRoZSByZXN0XG4iCittc2dzdHIgIiVzIGVuaGVkIG4xIG4yIC4uLiBha3RpdulyIHBhcnRpdGlvbmVybmUgcOUgbjEgLi4uLCBkZWFrdGl26XIgcmVzdGVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLUFuIGRldmljZVx0IGFjdGl2YXRlIHBhcnRpdGlvbiBuLCBpbmFjdGl2YXRlIHRoZSBvdGhlciBvbmVzXG4iCittc2dzdHIgIiVzIC1BbiBlbmhlZFx0IGFrdGl26XIgcGFydGl0aW9uIG4sIGRlYWt0aXbpciBkZSBhbmRyZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBzZmRpc2sgIgorImRvZXNuJ3Qgc3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIkJydWcgZmxhZ2V0IC0tZm9yY2UgZm9yIGF0IHVuZGVydHJ5a2tlIGFsbGUgdGplay5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgImluZ2VuIGtvbW1hbmRvP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInRvdGFsOiAlbGx1IGJsb2Nrc1xuIgorbXNnc3RyICJpIGFsdDogJWxsdSBibG9ra2VcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1wcmludC1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlclxuIgorbXNnc3RyICJicnVnOiBzZmRpc2sgLS1wcmludC1pZCBlbmhlZCBwYXJ0aXRpb25zbnVtbWVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzIKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tY2hhbmdlLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIElkXG4iCittc2dzdHIgImJydWc6IHNmZGlzayAtLWNoYW5nZS1pZCBlbmhlZCBwYXJ0aXRpb25zbnVtbWVyIGlkXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzQKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0taWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgW0lkXVxuIgorbXNnc3RyICJicnVnOiBzZmRpc2sgLS1pZCBlbmhlZCBwYXJ0aXRpb25zbnVtbWVyIFtpZF1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY4MQorbXNnaWQgImNhbiBzcGVjaWZ5IG9ubHkgb25lIGRldmljZSAoZXhjZXB0IHdpdGggLWwgb3IgLXMpXG4iCittc2dzdHIgImR1IGthbiBrdW4gYW5naXZlIOluIGVuaGVkICh1bmR0YWdlbiBtZWQgLWwgZWxsZXIgLXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgcmVhZC13cml0ZVxuIgorbXNnc3RyICJrdW5uZSBpa2tlIOVibmUgJXMgZm9yIHNrcml2bmluZ1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgImt1bm5lIGlra2Ug5WJuZSAlcyBmb3IgbOZzbmluZ1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczogTy5rLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzUzIGZkaXNrL3NmZGlzay5jOjI3ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjeWxpbmRlcnMsICVsZCBoZWFkcywgJWxkIHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiJXM6ICVsZCBjeWxpbmRyZSwgJWxkIGhvdmVkZXIsICVsZCBzZWt0b3Jlci9zcG9yXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGdldCBzaXplIG9mICVzXG4iCittc2dzdHIgIkthbiBpa2tlIGblIHN0+HJyZWxzZW4gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgInVneWxkaWcgYWt0aXYtYnl0ZTogMHgleCBpIHN0ZWRldCBmb3IgMHg4MFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTAzIGZkaXNrL3NmZGlzay5jOjI5NTggZmRpc2svc2ZkaXNrLmM6Mjk5MQorbXNnaWQgIiIKKyJEb25lXG4iCisiXG4iCittc2dzdHIgIiIKKyJG5nJkaWdcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgJWQgYWN0aXZlIHByaW1hcnkgcGFydGl0aW9ucy4gVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sXG4iCisiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIKK21zZ3N0ciAiIgorIkR1IGhhciAlZCBha3RpdmUgcHJpbeZycGFydGl0aW9uZXIuIERldHRlIGdlbmVyZXIgaWtrZSBMSUxPLFxuIgorIm1lbiBET1MgTUJSIHZpbCBrdW4ga3VubmUgc3RhcnRlIG9wIGZyYSBlbiBkaXNrIG1lZCDpbiBha3RpdiBwYXJ0aXRpb24uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGhhcyBpZCAleCBhbmQgaXMgbm90IGhpZGRlblxuIgorbXNnc3RyICJwYXJ0aXRpb24gJXMgaGFyIGlkICV4IG9nIGVyIGlra2Ugc2tqdWx0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICJVZ3lsZGlnIGlkICVseFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDA0Cittc2dpZCAiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UuXG4iCittc2dzdHIgIkRlbm5lIGRpc2sgZXIgaSBicnVnIGZvciD4amVibGlra2V0LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhdGFsIGVycm9yOiBjYW5ub3QgZmluZCAlc1xuIgorbXNnc3RyICJGYXRhbCBmZWpsOiBrdW5uZSBpa2tlIGZpbmRlICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIkFkdmFyc2VsOiAlcyBlciBpa2tlIGVuIGJsb2tlbmhlZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAiVGpla2tlciwgYXQgaW5nZW4gYmVueXR0ZXIgZGVubmUgZGlzayBmb3Ig+GplYmxpa2tldC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM0Cittc2dpZCAiIgorIlxuIgorIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlIC0gcmVwYXJ0aXRpb25pbmcgaXMgcHJvYmFibHkgYSBiYWQgaWRlYS5cbiIKKyJVbW91bnQgYWxsIGZpbGUgc3lzdGVtcywgYW5kIHN3YXBvZmYgYWxsIHN3YXAgcGFydGl0aW9ucyBvbiB0aGlzIGRpc2suXG4iCisiVXNlIHRoZSAtLW5vLXJlcmVhZCBmbGFnIHRvIHN1cHByZXNzIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEZW5uZSBkaXNrIGVyIGZvciD4amVibGlra2V0IGkgYnJ1ZyAtIGdlbnBhcnRpdGlvbmVyaW5nIGVyIG5vayBpIGTlcmxpZyAiCisiaWTpLlxuIgorIkFmbW9udGVyIGFsbGUgZmlsc3lzdGVtZXIgb2cgJ3N3YXBvZmYnIGFsbGUgc3dhcHBhcnRpdGlvbmVyIHDlIGRlbm5lIGRpc2suXG4iCisiQnJ1ZyBmbGFnZXQgLS1uby1yZXJlYWQgZm9yIGF0IHVuZGVydHJ5a2tlIGRldHRlIHRqZWsuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICJCcnVnIGZsYWdldCAtLWZvcmNlIGZvciBhdCB1bmRlcnRyeWtrZSBhbGxlIHRqZWsuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICJPLmsuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2xkIHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiR2FtbWVsIHNpdHVhdGlvbjpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCBjaGFuZ2UgaXRcbiIKK21zZ3N0ciAiUGFydGl0aW9uZW4gJWQgZWtzaXN0ZXJlciBpa2tlLiBLYW4gaWtrZSDmbmRyZSBkZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJOeSBzaXR1YXRpb246XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjgKK21zZ2lkICIiCisiSSBkb24ndCBsaWtlIHRoZXNlIHBhcnRpdGlvbnMgLSBub3RoaW5nIGNoYW5nZWQuXG4iCisiKElmIHlvdSByZWFsbHkgd2FudCB0aGlzLCB1c2UgdGhlIC0tZm9yY2Ugb3B0aW9uLilcbiIKK21zZ3N0ciAiIgorIkplZyBrYW4gaWtrZSBsaWRlIGRpc3NlIHBhcnRpdGlvbmVyIC0gaW50ZXQgYmxldiDmbmRyZXQuXG4iCisiKEh2aXMgZHUgdmlya2VsaWcg+G5za2VyIGRldCwga2FuIGR1IGJydWdlIGZsYWdldCAtLWZvcmNlLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiSmVnIGthbiBpa2tlIGxpZGUgZGV0dGVoZXIgLSBkdSBi+HIgbm9rIHN2YXJlIE5lalxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICJFciBkdSB0aWxmcmVkcyBtZWQgZGV0dGU/IFtqbmFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyB5b3Ugd2FudCB0byB3cml0ZSB0aGlzIHRvIGRpc2s/IFt5bnFdICIKK21zZ3N0ciAiVmlsIGR1IHZpcmtlbGlnIHNrcml2ZSBkZXR0ZSB0aWwgZGlza2VuPyBbam5hXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGVuZCBvZiBpbnB1dFxuIgorbXNnc3RyICIiCisiXG4iCisic2ZkaXNrOiBpbmRkYXRhIHNsdXR0ZWRlIGZvciB0aWRsaWd0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODUKK21zZ2lkICJRdWl0dGluZyAtIG5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICJBZnNsdXR0ZXIgLSBpbnRldCBibGV2IOZuZHJldFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBsZWFzZSBhbnN3ZXIgb25lIG9mIHksbixxXG4iCittc2dzdHIgIlN2YXIgdmVubGlnc3QgaixuLGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VjY2Vzc2Z1bGx5IHdyb3RlIHRoZSBuZXcgcGFydGl0aW9uIHRhYmxlXG4iCisiXG4iCittc2dzdHIgIiIKKyJTa3Jpdm5pbmcgYWYgbnkgcGFydGl0aW9uc3RhYmVsIGx5a2tlZGVzXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorIkh2aXMgZHUgb3ByZXR0ZWRlIGVsbGVyIOZuZHJlZGUgZW4gRE9TLXBhcnRpdGlvbiwgZi5la3MuIC9kZXYveHh4Nywgc+UgYnJ1Z1xuIgorImRkKDEpIHRpbCBhdCBudWxzdGlsbGUgZGUgZvhyc3RlIDUxMiBieXRlOlxuIgorIidkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi94eHg3IGJzPTUxMiBjb3VudD0xJyAgKHNlIGZkaXNrKDgpKVxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiVzOiBrdW5uZSBpa2tlIOVibmUgJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBiYWQgZm9ybWF0IG9uIGxpbmUgJWQgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozNTIKK21zZ2lkICIiCisiV0FSTklORzogWW91ciAvZXRjL2ZzdGFiIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZzY2sgcGFzc25vXG4iCisiXHRmaWVsZC4gIEkgd2lsbCBrbHVkZ2UgYXJvdW5kIHRoaW5ncyBmb3IgeW91LCBidXQgeW91XG4iCisiXHRzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo0NjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZzY2s6ICVzOiBub3QgZm91bmRcbiIKK21zZ3N0ciAidW1vdW50OiAlczogaWtrZSBmdW5kZXQiCisKKyM6IGZzY2svZnNjay5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FpdDogTm8gbW9yZSBjaGlsZCBwcm9jZXNzPyE/XG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmcuLi4gJXMgZm9yIGRldmljZSAlcyBleGl0ZWQgd2l0aCBzaWduYWwgJWQuXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVzOiBzdGF0dXMgaXMgJXgsIHNob3VsZCBuZXZlciBoYXBwZW4uXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NjQzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmlzaGVkIHdpdGggJXMgKGV4aXQgc3RhdHVzICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjcwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzIGZvciAlc1xuIgorbXNnc3RyICIlczogZmVqbCAlZCB1bmRlciB1ZHBha25pbmchICVwKCVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKKyMsIGZ1enp5Cittc2dpZCAiQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBmaWxlc3lzdGVtIHR5cGVzXG4iCittc2dzdHIgIm1vdW50OiBkdSBza2FsIGFuZ2l2ZSBmaWxzeXN0ZW10eXBlbiIKKworIzogZnNjay9mc2NrLmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc2tpcHBpbmcgYmFkIGxpbmUgaW4gL2V0Yy9mc3RhYjogYmluZCBtb3VudCB3aXRoIG5vbnplcm8gZnNjayBwYXNzICIKKyJudW1iZXJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo4OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyBub25leGlzdGVudCBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6ICVzIGlra2UgZW4gcHJpbnRlcmVuaGVkLlxuIgorCisjOiBmc2NrL2ZzY2suYzo5MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogY2Fubm90IGNoZWNrICVzOiBmc2NrLiVzIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjk3NAorIywgZnV6enkKK21zZ2lkICJDaGVja2luZyBhbGwgZmlsZSBzeXN0ZW1zLlxuIgorbXNnc3RyICJHZW5uZW10dmluZ2VyIHRqZWsgYWYgZmlsc3lzdGVtIHDlICVzLlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0td2FpdGluZy0tIChwYXNzICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjEwODUKKyMsIGZ1enp5Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICJCcnVnOiBta2ZzIFstVl0gWy10IGZzdHlwZV0gW2ZzLXRpbHZhbGddIGVuaGVkIFtzdPhycmVsc2VdXG4iCisKKyM6IGZzY2svZnNjay5jOjExMjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzOiAlcyBpa2tlIGVuIHByaW50ZXJlbmhlZC5cbiIKKworIzogZnNjay9mc2NrLmM6MTEzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiS3VubmUgaWtrZSDlYm5lICVzOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJcyAvcHJvYyBtb3VudGVkP1xuIgorbXNnc3RyICIlcyBhZm1vbnRlcmV0XG4iCisKKyM6IGZzY2svZnNjay5jOjExNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSByb290IHRvIHNjYW4gZm9yIG1hdGNoaW5nIGZpbGVzeXN0ZW1zOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGZpbmQgbWF0Y2hpbmcgZmlsZXN5c3RlbTogJXNcbiIKK21zZ3N0ciAiQWZtb250ZXJlciByZXN0ZXJlbmRlIGZpbHN5c3RlbWVyLi4uIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBhcmd1bWVudHNcbiIKK21zZ3N0ciAiJXM6IHVrZW5kdCB0aWx2YWxnOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZnJhICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiS3VubmUgaWtrZSBhbGxva2VyZSBtZXJlIGh1a29tbWVsc2VcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjIyOQorbXNnaWQgIlRyeSBgZ2V0b3B0IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIkJydWcgJ2dldG9wdCAtLWhlbHAnIGZvciBmbGVyZSBkZXRhbGplci5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAidG9tdCAnbG9uZyetdGlsdmFsZyBlZnRlciAtbCBlbGxlciAtLWxvbmciCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMTUKK21zZ2lkICJ1bmtub3duIHNoZWxsIGFmdGVyIC1zIG9yIC0tc2hlbGwgYXJndW1lbnQiCittc2dzdHIgInVrZW5kdCBza2FsIGVmdGVyIC1zIGVsbGVyIC0tc2hlbGwiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjAKK21zZ2lkICJVc2FnZTogZ2V0b3B0IG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIkJydWc6IGdldG9wdCB0aWx2YWxnc3N0cmVuZyBwYXJhbWV0cmVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMQorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIFstLV0gb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbdGlsdmFsZ10gWy0tXSB0aWx2YWxnc3N0cmVuZyBwYXJhbWV0cmVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbdGlsdmFsZ10gLW98LS1vcHRpb25zIHRpbHZhbGdzc3RyZW5nIFt0aWx2YWxnXSBbLS1dXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjMKK21zZ2lkICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICBwYXJhbWV0cmVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNAorbXNnaWQgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggc2luZ2xlIC1cbiIKK21zZ3N0ciAiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIFRpbGxhZCBsYW5nZSB0aWx2YWxnIG1lZCBlbmtlbHQgLVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI1Cittc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRoaXMgc21hbGwgdXNhZ2UgZ3VpZGVcbiIKK21zZ3N0ciAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIERlbm5lIGxpbGxlIGJydWdzbWFudWFsXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbCwgLS1sb25nb3B0aW9ucz1sYW5ndGlsdmFsZyAgTGFuZ2UgdGlsdmFsZywgZGVyIHNrYWwgZ2Vua2VuZGVzXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjcKK21zZ2lkICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1lIHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIKK21zZ3N0ciAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmF2biAgICAgICAgICBOYXZuZXQgc29tIGZlamwgc2thbCByYXBwb3J0ZXJlcyB1bmRlclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI4Cittc2dpZCAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIFNob3J0IG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1vLCAtLW9wdGlvbnM9dGlsdmFsZ3NzdHJlbmcgS29ydGUgdGlsdmFsZywgZGVyIHNrYWwgZ2Vua2VuZGVzXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjkKK21zZ2lkICIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgRGlzYWJsZSBlcnJvciByZXBvcnRpbmcgYnkgZ2V0b3B0KDMpXG4iCittc2dzdHIgIiIKKyIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgVW5kZXJ0cnlrIGZlamxyYXBwb3J0ZXJpbmcgZnJhIGdldG9wdCgzKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMwCittc2dpZCAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIE5vIG5vcm1hbCBvdXRwdXRcbiIKK21zZ3N0ciAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIEluZ2VuIG5vcm1hbGUgdWRkYXRhXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiICAtcywgLS1zaGVsbD1za2FsICAgICAgICAgICAgIEFuZ2l2IGtvbnZlbnRpb25lciBmb3IgYW5m+HJzZWxzdGVnblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUamVrIGdldG9wdCgxKSB2ZXJzaW9uXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzMKK21zZ2lkICIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgRG8gbm90IHF1b3RlIHRoZSBvdXRwdXRcbiIKK21zZ3N0ciAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIEluZHNreWQgaWtrZSBhbmb4cnNlbHN0ZWduIGkgdWRkYXRhXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIFZpcyB2ZXJzaW9uc2luZm9ybWF0aW9uXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozODggZ2V0b3B0L2dldG9wdC5jOjQ0NworbXNnaWQgIm1pc3Npbmcgb3B0c3RyaW5nIGFyZ3VtZW50IgorbXNnc3RyICJtYW5nbGVyIHRpbHZhbGdzdHJlbmctcGFyYW1ldGVyIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJnZXRvcHQgKGVuaGFuY2VkKSAxLjEuNFxuIgorbXNnc3RyICJnZXRvcHQgKHVkdmlkZXQpIDEuMS4zXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0NDEKK21zZ2lkICJpbnRlcm5hbCBlcnJvciwgY29udGFjdCB0aGUgYXV0aG9yLiIKK21zZ3N0ciAiaW50ZXJuIGZlamwsIGtvbnRha3QgcHJvZ3JhbW34cmVuLiIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAic3RhcnRlZGUgb3AgbWVkIE1JTE9cbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIidSdWZmaWFuJyBCQ0QtdXJcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImNsb2NrcG9ydCBhZGp1c3RlZCB0byAweCV4XG4iCittc2dzdHIgInVycG9ydCBqdXN0ZXJldCB0aWwgMHgleFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICInZnVua3kgVE9ZJyAodGlkLXDlLeVyZXQpIVxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGF0b21pYyAlcyBmYWlsZWQgZm9yIDEwMDAgaXRlcmF0aW9ucyEiCittc2dzdHIgIiVzOiBtb21lbnRhbiAlcyBtaXNseWtrZWRlcyBpIDEwMDAgaXRlcmF0aW9uZXIhIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiByZWFkIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAvZGV2L3BvcnQ6ICVzIgorbXNnc3RyICJLYW4gaWtrZSDlYm5lIC9kZXYvcG9ydDogJXMiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAiSmVnIGt1bm5lIGlra2UgZuUgYWRnYW5nIGZvcmRpIGplZyBpa2tlIGZvcnP4Z3RlLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiJXMga2FuIGlra2UgZuUgYWRnYW5nIHRpbCBJL08tcG9ydDoga2FsZGV0ICdpb3BsKDMpJyBtaXNseWtrZWRlcy5cbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JhYmx5IHlvdSBuZWVkIHJvb3QgcHJpdmlsZWdlcy5cbiIKK21zZ3N0ciAiRHUgYmVo+HZlciBub2sgcm9vdC1yZXR0aWdoZWRlci5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gJXMgdGltZS5cbiIKK21zZ3N0ciAiQW50YWdlciBhdCBtYXNraW51cmV0IGhvbGRlcyBpICVzIHRpZC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgIlVUQyIKK21zZ3N0ciAiR01UIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI1Cittc2dpZCAibG9jYWwiCittc2dzdHIgImxva2FsIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIlczogQWR2YXJzZWw6IHVrZW5kdCB0cmVkaWUgbGluamUgaSBhZGp0aW1lLWZpbFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiKEV4cGVjdGVkOiBgVVRDJyBvciBgTE9DQUwnIG9yIG5vdGhpbmcuKVxuIgorbXNnc3RyICIoRm9ydmVudGV0OiAnVVRDJyAoR01UKSwgJ0xPQ0FMJyBlbGxlciBpbmdlbnRpbmcuKVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBkcmlmdCBhZGp1c3RtZW50IGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJTaWRzdGUgaGFzdGlnaGVkc2p1c3RlcmluZyBibGV2IGdqb3J0ICVsZCBzZWt1bmRlciBlZnRlciAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJTaWRzdGUga2FsaWJyZXJpbmcgYmxldiBmb3JldGFnZXQgJWxkIHNla3VuZGVyIGVmdGVyIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIkhhcmR3YXJlIGNsb2NrIGlzIG9uICVzIHRpbWVcbiIKK21zZ3N0ciAiTWFza2ludXJldCBlciBpICVzLXRpZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJ1bmtub3duIgorbXNnc3RyICJ1a2VuZHQiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGZvciBjbG9jayB0aWNrLi4uXG4iCittc2dzdHIgIlZlbnRlciBw5SBldCB1ci10aWsuLi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiLi4uZmFuZ2VkZSB1ci10aWtcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIlVneWxkaWdlIHbmcmRpZXIgaSBtYXNraW51cjogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIk1hc2tpbnVyLXRpZDogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWt1bmRlciBzaWRlbiAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHJlYWQgZnJvbSBIYXJkd2FyZSBDbG9jazogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorbXNnc3RyICJUaWQgbOZzdCBmcmEgbWFza2ludXJldDogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyBIYXJkd2FyZSBDbG9jayB0byAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiU+Z0dGVyIG1hc2tpbnVyZXQgdGlsICUuMmQ6JS4yZDolLjJkID0gJWxkIHNla3VuZGVyIHNpZGVuIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb2NrIG5vdCBjaGFuZ2VkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJVcmV0IHXmbmRyZXQgLSB0ZXN0ZWRlIGt1bi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIkRlciBlciBn5WV0ICUuNmYgc2VrdW5kZXIgc2lkZW4gcmVmZXJlbmNldGlkZW4uXG4iCisiVWRza3lkZXIgeWRlcmxpZ2VyZSBmb3IgYXQgbuUgdGlsIG7mc3RlIGhlbGUgc2VrdW5kLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIk1hc2tpbnVyZXRzIHJlZ2lzdHJlIGluZGVob2xkZXIgduZyZGllciwgZGVyIGVudGVuIGVyIHVneWxkaWdlIChmLmVrcy4gNTAuICIKKyJkYWcgaSBt5W5lZGVuKSBlbGxlciB1ZGVuZm9yIGRldCBvbXLlZGUsIHZpIGthbiBo5W5kdGVyZSAoZi5la3MuIOVyIDIwOTUpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIlcyAgJS42ZiBzZWt1bmRlclxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gLS1kYXRlIG9wdGlvbiBzcGVjaWZpZWQuXG4iCittc2dzdHIgIkludGV0IC0tZGF0ZSB0aWx2YWxnIGFuZ2l2ZXQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLWRhdGUgYXJndW1lbnQgdG9vIGxvbmdcbiIKK21zZ3N0ciAicGFyYW1ldHJldCB0aWwgLS1kYXRlIGVyIGZvciBsYW5ndFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiBpcyBub3QgYSB2YWxpZCBkYXRlLlxuIgorIkluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHF1b3RhdGlvbiBtYXJrcy5cbiIKK21zZ3N0ciAiIgorIlbmcmRpZW4gYWYgLS1kYXRlIHRpbHZhbGdldCBlciBpa2tlIGVuIGd5bGRpZyBkYXRvLlxuIgorIk1lcmUgc3BlY2lmaWt0LCBpbmRlaG9sZGVyIGRlbiBhbmb4cnNlbHN0ZWduLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIlVkZvhyZXIgJ2RhdGUnLWtvbW1hbmRvZW46ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0MAorbXNnaWQgIlVuYWJsZSB0byBydW4gJ2RhdGUnIHByb2dyYW0gaW4gL2Jpbi9zaCBzaGVsbC4gcG9wZW4oKSBmYWlsZWQiCittc2dzdHIgIiIKKyJLdW5uZSBpa2tlIGv4cmUgJ2RhdGUnLXByb2dyYW1tZXQgaSAvYmluL3NoIHNrYWxsZW4uIHBvcGVuKCkgbWlzbHlra2VkZXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgInN2YXIgZnJhICdkYXRlJy1rb21tYW5kb2VuID0gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdHMuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAgJXNcbiIKK21zZ3N0ciAiIgorIidkYXRlJy1rb21tYW5kb2VuIHNlbmR0IGFmICVzIHJldHVybmVyZWRlIHV2ZW50ZWRlIHJlc3VsdGF0ZXIuXG4iCisiS29tbWFuZG9lbiB2YXI6XG4iCisiICAlc1xuIgorIlN2YXJldCB2YXI6XG4iCisiICAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIGludGVnZXIgd2hlcmUgIgorInRoZSBjb252ZXJ0ZWQgdGltZSB2YWx1ZSB3YXMgZXhwZWN0ZWQuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAlc1xuIgorbXNnc3RyICIiCisiJ2RhdGUnLWtvbW1hbmRvZW4gc2VuZHQgYWYgJXMgcmV0dXJuZXJlZGUgbm9nZXQgYW5kZXQgZW5kIGV0IGhlbHRhbCwgaHZvciAiCisiZGVuIGtvbnZlcnRlcmVkZSB0aWQgZm9ydmVudGVkZXMuXG4iCisiS29tbWFuZG9lbiB2YXI6XG4iCisiICAlc1xuIgorIlN2YXJldCB2YXI6XG4iCisiICAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICJEYXRvdGVrc3RlbiAlcyBzdmFyZXIgdGlsICVsZCBzZWt1bmRlciBzaWRlbiAxOTY5LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IHNldCB0aGUgIgorIlN5c3RlbSBUaW1lIGZyb20gaXQuXG4iCittc2dzdHIgIiIKKyJNYXNraW51cmV0IGluZGVob2xkZXIgaWtrZSBlbiBneWxkaWcgdGlkLCBz5SB2aSBrYW4gaWtrZSBz5nR0ZSBzeXN0ZW11cmV0ICIKKyJtZWQgZGV0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjcgaHdjbG9jay9od2Nsb2NrLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgc2V0dGltZW9mZGF5OlxuIgorbXNnc3RyICJLYWxkZXIgJ3NldHRpbWVvZmRheSc6XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyOCBod2Nsb2NrL2h3Y2xvY2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKK21zZ3N0ciAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMwIGh3Y2xvY2svaHdjbG9jay5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKK21zZ3N0ciAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMyBod2Nsb2NrL2h3Y2xvY2suYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgc3lzdGVtIGNsb2NrIGJlY2F1c2UgcnVubmluZyBpbiB0ZXN0IG1vZGUuXG4iCittc2dzdHIgIlPmdHRlciBpa2tlIHN5c3RlbXVyZXQsIGRhIGRlciBr+HJlcyBpIHRlc3R0aWxzdGFuZC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQyIGh3Y2xvY2svaHdjbG9jay5jOjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIHN1cGVydXNlciB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICJTa2FsIHbmcmUgc3VwZXJicnVnZXIgZm9yIGF0IHPmdHRlIHN5c3RlbXVyZXQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgInNldHRpbWVvZmRheSgpIG1pc2x5a2tlZGVzIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBzeXN0ZW0gdGltZTogJWxkID0gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRVVEM6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIHRoZSBIYXJkd2FyZSBDbG9jayBwcmV2aW91c2x5IGNvbnRhaW5lZCAiCisiZ2FyYmFnZS5cbiIKK21zZ3N0ciAiIgorIkp1c3RlcmVkZSBpa2tlIGhhc3RpZ2hlZHNmYWt0b3JlbiwgZGEgbWFza2ludXJldCB0aWRsaWdlcmUgaGF2ZGUgZW4gdWd5bGRpZyAiCisiduZyZGkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorIkp1c3RlcmVyIGlra2UgZHJpdmVmYWt0b3IgZGEgc2lkc3RlIGthbGlicmVyaW5nc3RpZCBlciBudWwgXG4iCisib2cga2FuIGRlcmZvciBpa2tlIGJydWdlcy4gRGV0IGVyIG74ZHZlbmRpZ3QgYXQgc3RhcnRlIFxuIgorImthbGlicmVyaW5nZW4gZm9yZnJhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorIkp1c3RlcmVkZSBpa2tlIGhhc3RpZ2hlZHNmYWt0b3JlbiwgZGEgZGV0IGVyIG1pbmRyZSBlbiBldCBk+GduIHNpZGVuIHNpZHN0ZSAiCisia2FsaWJyZXJpbmcuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2xvY2sgZHJpZnRlZCAlLjFmIHNlY29uZHMgaW4gdGhlIHBhc3QgJWQgc2Vjb25kcyBpbiBzcGl0ZSBvZiBhIGRyaWZ0IGZhY3RvciAiCisib2YgJWYgc2Vjb25kcy9kYXkuXG4iCisiQWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBieSAlZiBzZWNvbmRzL2RheVxuIgorbXNnc3RyICIiCisiVXJldCBkcmV2ICUuMWYgc2VrdW5kZXIgaSBs+GJldCBhZiBkZSBzaWRzdGUgJWQgc2VrdW5kZXIgcOUgdHJvZHMgYWYgZW4gIgorImhhc3RpZ2hlZHNmYWt0b3IgcOUgJWYgc2VrdW5kZXIvZPhnbi5cbiIKKyJKdXN0ZXJlciBoYXN0aWdoZWRzZmFrdG9yZW4gbWVkICVmIHNla3VuZGVyL2T4Z25cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiJWQgc2VrdW5kZXIgc2lkZW4gc2lkc3RlIGp1c3RlcmluZ1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiU2thbCBpbmRz5nR0ZSAlZCBzZWt1bmRlciBvZyBzdGlsbGUgdXJldCAlLjZmIHNla3VuZGVyIHRpbGJhZ2VcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIk9wZGF0ZXJlciBpa2tlIGFkanRpbWUtZmlsZW4sIGRhIGRlciBr+HJlcyBpIHRlc3R0aWxzdGFuZC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIlZpbGxlIGhhdmUgc2tyZXZldCBm+GxnZW5kZSB0aWwgJXM6XG4iCisiJXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAxNworIywgYy1mb3JtYXQKK21zZ2lkICJEcmlmdCBhZGp1c3RtZW50IHBhcmFtZXRlcnMgbm90IHVwZGF0ZWQuXG4iCittc2dzdHIgIkhhc3RpZ2hlZHNqdXN0ZXJpbmdlbiBibGV2IGlra2Ugb3BkYXRlcmV0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBhZGp1c3QgaXQuXG4iCittc2dzdHIgIiIKKyJNYXNraW51cmV0IGluZGVob2xkZXIgaWtrZSBlbiBneWxkaWcgdGlkLCBz5SB2aSBrYW4gaWtrZSBqdXN0ZXJlIGRldC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBzZXR0aW5nIGNsb2NrIGJlY2F1c2UgbGFzdCBhZGp1c3RtZW50IHRpbWUgaXMgemVybywgc28gaGlzdG9yeSBpcyBiYWQuIgorbXNnc3RyICIiCisiSnVzdGVyZXIgaWtrZSBkcml2ZWZha3RvciBkYSBzaWRzdGUga2FsaWJyZXJpbmdzdGlkIGVyIG51bCBcbiIKKyJvZyBrYW4gZGVyZm9yIGlra2UgYnJ1Z2VzLiBEZXQgZXIgbvhkdmVuZGlndCBhdCBzdGFydGUgXG4iCisia2FsaWJyZXJpbmdlbiBmb3JmcmEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICIiCisiRGVuIGty5nZlZGUganVzdGVyaW5nIGVyIG1pbmRyZSBlbmQg6XQgc2VrdW5kLCBz5SB2aSBz5nR0ZXIgaWtrZSB1cmV0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nICVzLlxuIgorbXNnc3RyICJCcnVnZXIgJXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIGNsb2NrIGludGVyZmFjZSBmb3VuZC5cbiIKK21zZ3N0ciAiRmFuZHQgaW5nZW4gYnJ1Z2JhcmUgdXItZ3LmbnNlZmxhZGVyLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkt1bm5lIGlra2Ugc+Z0dGUgc3lzdGVtdXJldC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBrZWVwcyBhbiBlcG9jaCB2YWx1ZSBmb3IgdGhlIEhhcmR3YXJlIENsb2NrIG9ubHkgb24gYW4gQWxwaGEgIgorIm1hY2hpbmUuXG4iCisiVGhpcyBjb3B5IG9mIGh3Y2xvY2sgd2FzIGJ1aWx0IGZvciBhIG1hY2hpbmUgb3RoZXIgdGhhbiBBbHBoYVxuIgorIihhbmQgdGh1cyBpcyBwcmVzdW1hYmx5IG5vdCBydW5uaW5nIG9uIGFuIEFscGhhIG5vdykuICBObyBhY3Rpb24gdGFrZW4uXG4iCittc2dzdHIgIiIKKyJLZXJuZW4gaG9sZGVyIGVuIGVwb2tlduZyZGkgZm9yIG1hc2tpbnVyZXQgcOUgQWxwaGEtbWFza2luZXJcbiIKKyJEZW5uZSBrb3BpIGFmIGh3Y2xvY2sgYmxldiBrb21waWxlcmV0IHRpbCBlbiBhbmRlbiBtYXNraW5lIGVuZCBBbHBoYVxuIgorIihvZyBr+HJlciBkZXJmb3Igc2FuZHN5bmxpZ3ZpcyBpa2tlIHDlIGVuIEFscGhhIG51KS4gSW50ZXQgYmxldiBnam9ydC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gZ2V0IHRoZSBlcG9jaCB2YWx1ZSBmcm9tIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIkt1bm5lIGlra2UgaGVudGUgZW4gZXBva2V25nJkaSBmcmEga2VybmVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAiS2VybmVuIGflciB1ZCBmcmEgZW4gZXBva2V25nJkaSBw5SAlbHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSAnZXBvY2gnIG9wdGlvbiB0byB0ZWxsIHRvIHdoYXQgIgorInZhbHVlIHRvIHNldCBpdC5cbiIKK21zZ3N0ciAiIgorIkZvciBhdCBz5nR0ZSBlcG9rZXbmcmRpZW4sIHNrYWwgZHUgYnJ1Z2UgdGlsdmFsZ2V0ICdlcG9jaCcgZm9yIGF0IGFuZ2l2ZSAiCisiaHZpbGtlbiB25nJkaSwgZGVuIHNrYWwgc+Z0dGVzIHRpbFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHRoZSBlcG9jaCB0byAlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiU+Z0dGVyIElLS0UgZXBva2V25nJkaWVuIHRpbCAlZCAtIHRlc3RlciBiYXJlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIkt1bm5lIGlra2Ugc+Z0dGUgZXBva2V25nJkaWVuIGkga2VybmVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjkwIG1pc2MtdXRpbHMvY2FsLmM6MzQ3IG1pc2MtdXRpbHMva2lsbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiVzIGZyYSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiaHdjbG9jayAtIHF1ZXJ5IGFuZCBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIChSVEMpXG4iCisiXG4iCisiVXNhZ2U6IGh3Y2xvY2sgW2Z1bmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGdW5jdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHNob3cgdGhpcyBoZWxwXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgdGhlIHJ0YyB0byB0aGUgdGltZSBnaXZlbiB3aXRoIC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBhZGp1c3QgdGhlIHJ0YyB0byBhY2NvdW50IGZvciBzeXN0ZW1hdGljIGRyaWZ0IHNpbmNlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgcHJpbnQgb3V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICBzZXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlIHRvIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHByaW50IG91dCB0aGUgdmVyc2lvbiBvZiBod2Nsb2NrIHRvIHN0ZG91dFxuIgorIlxuIgorIk9wdGlvbnM6IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICBzcGVjaWFsIC9kZXYvLi4uIGZpbGUgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdFxuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICBhY2Nlc3MgdGhlIElTQSBidXMgZGlyZWN0bHkgaW5zdGVhZCBvZiAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorIiAgICAgICAtLWRhdGUgICAgICAgICBzcGVjaWZpZXMgdGhlIHRpbWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLWVwb2NoPXllYXIgICBzcGVjaWZpZXMgdGhlIHllYXIgd2hpY2ggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZG8gbm90IGFjY2VzcyAvZXRjL2FkanRpbWUuIFJlcXVpcmVzIHRoZSB1c2Ugb2ZcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICBkbyBldmVyeXRoaW5nIGV4Y2VwdCBhY3R1YWxseSB1cGRhdGluZyB0aGUgaGFyZHdhcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBkZWJ1ZyBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJod2Nsb2NrIC0gbOZzIG9nIHPmdCBtYXNraW51cmV0IChSVEMpXG4iCisiXG4iCisiQnJ1ZzogaHdjbG9jayBbZnVua3Rpb25dIFt0aWx2YWxnLi4uXVxuIgorIlxuIgorIkZ1bmt0aW9uZXI6XG4iCisiICAtLWhlbHAgICAgICAgIHZpcyBkZW5uZSBoauZscFxuIgorIiAgLS1zaG93ICAgICAgICBhZmzmcyBtYXNraW51cmV0IG9nIHZpcyByZXN1bHRhdGV0XG4iCisiICAtLXNldCAgICAgICAgIHPmdCB1cmV0IHRpbCB0aWRlbiBhbmdpdmV0IG1lZCAtLWRhdGVcbiIKKyIgIC0taGN0b3N5cyAgICAgc+Z0IHN5c3RlbXVyZXQgdGlsIG1hc2tpbnVyZXRzIHRpZFxuIgorIiAgLS1zeXN0b2hjICAgICBz5nQgbWFza2ludXJldCB0aWwgc3lzdGVtdXJldHMgdGlkXG4iCisiICAtLWFkanVzdCAgICAgIGthbGliculyIHN5c3RlbXVyZXQsIHPlIGRldCB0YWdlciBo+GpkZSBmb3Igc3lzdGVtYXRpc2tcbiIKKyIgICAgICAgICAgICAgICAgaGFzdGlnaGVkc2Zlamwgc2lkZW4gdXJldCBzaWRzdCBibGV2IHNhdCBlbGxlciBqdXN0ZXJldFxuIgorIiAgLS1nZXRlcG9jaCAgICB2aXMga2VybmVucyBlcG9rZXbmcmRpIGZvciBtYXNraW51cmV0XG4iCisiICAtLXNldGVwb2NoICAgIHPmdCBlcG9rZXbmcmRpZW4gZm9yIGtlcm5lbnMgbWFza2ludXIgdGlsIGRlbiB25nJkaSxcbiIKKyIgICAgICAgICAgICAgICAgZGVyIGFuZ2l2ZXMgbWVkIC0tZXBvY2hcbiIKKyIgIC0tdmVyc2lvbiAgICAgdWRs5nMgaHdjbG9jaydzIHZlcnNpb24gdGlsIHN0YW5kYXJkLXVkXG4iCisiXG4iCisiVGlsdmFsZzogXG4iCisiICAtLXV0YyAgICAgICAgIG1hc2tpbnVyZXQgaG9sZGVzIGkgR01UIChrb29yZGluZXJldCB1bml2ZXJzZWwgdGlkKVxuIgorIiAgLS1sb2NhbHRpbWUgICBtYXNraW51cmV0IGhvbGRlcyBpIGxva2FsIHRpZFxuIgorIiAgLS1kaXJlY3Rpc2EgICB0aWxn5SBJU0EtYnVzc2VuIGRpcmVrdGUgaSBzdGVkZXQgZm9yICVzXG4iCisiICAtLWJhZHllYXIgICAgIGlnbm9y6XIgbWFza2ludXJldHMg5XJzdGFsLCBkYSBiaW9zJ2VuIGVyIGZlamxiZWjmZnRldFxuIgorIiAgLS1kYXRlICAgICAgICBhbmdpdmVyIHRpZGVuLCBzb20gbWFza2ludXJldCBza2FsIHPmdHRlcyB0aWxcbiIKKyIgIC0tZXBvY2g95XIgICAgYW5naXZlciBkZXQg5XIsIHNvbSBlciBiZWd5bmRlbHNlbiBw5SBtYXNraW51cmV0c1xuIgorIiAgICAgICAgICAgICAgICBlcG9rZXbmcmRpXG4iCisiICAtLW5vYWRqZmlsZSAgIHRpbGflIGlra2UgL2V0Yy9hZGp0aW1lLiBEZXQga3LmdmVyLCBhdCBkZXIgYnJ1Z2VzXG4iCisiICAgICAgICAgICAgICAgIGVudGVuIC0tdXRjIGVsbGVyIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisiXG4iCittc2dzdHIgIiIKKyIgIC0tamVuc2VuLCAtLWFyYywgLS1zcm0sIC0tZnVua3ktdG95XG4iCisiICAgICAgICAgICAgICAgIGFuZ2l2IGh2aWxrZW4gc2xhZ3MgYWxwaGEgZHUgaGFyIChzZSBod2Nsb2NrKDgpKVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNDMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGNvbm5lY3QgdG8gYXVkaXQgc3lzdGVtXG4iCittc2dzdHIgIkt1bm5lIGlra2Ugc+Z0dGUgc3lzdGVtdXJldC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMgYWNjZXB0ZXJlciBpbmdlbiBwYXJhbWV0cmUuIER1IGFuZ2F2IHBhcmFtZXRlcmVuICVkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyJEdSBoYXIgYW5naXZldCBmbGVyZSBmdW5rdGlvbnN0aWx2YWxnLlxuIgorIkR1IGthbiBrdW4gdWRm+HJlIOluIGZ1bmt0aW9uIGFkIGdhbmdlbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBUaWx2YWxnZW5lIC0tdXRjIG9nIC0tbG9jYWx0aW1lIHVkZWx1a2tlciBoaW5hbmRlbi4gRHUgYW5nYXYgYmVnZ2UuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGp1c3QgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogVGlsdmFsZ2VuZSAtLWFkanVzdCBvZyAtLW5vYWRqZmlsZSB1ZGVsdWtrZXIgaGluYW5kZW4uIER1IGFuZ2F2IGJlZ2dlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogVGlsdmFsZ2VuZSAtLWFkanVzdCBvZyAtLW5vYWRqZmlsZSB1ZGVsdWtrZXIgaGluYW5kZW4uIER1IGFuZ2F2IGJlZ2dlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIlczogLS1ub2FkamZpbGUga3LmdmVyIGVudGVuIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiSW5nZW4gYnJ1Z2JhciBzZXQtdGlsLXRpZC4gS2FuIGlra2Ugc+Z0dGUgdXJldC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICJCZWtsYWdlciwga3VuIHN1cGVyYnJ1Z2VyZW4ga2FuIOZuZHJlIG1hc2tpbnVyZXQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBTeXN0ZW0gQ2xvY2suXG4iCittc2dzdHIgIkJla2xhZ2VyLCBrdW4gc3VwZXJicnVnZXJlbiBrYW4g5m5kcmUgc3lzdGVtdXJldC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUgIgorImtlcm5lbC5cbiIKK21zZ3N0ciAiIgorIkJla2xhZ2VyLCBrdW4gc3VwZXJicnVnZXJlbiBrYW4g5m5kcmUgbWFza2ludXJldHMgZXBva2V25nJkaSBpIGtlcm5lbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgYW55IGtub3duIG1ldGhvZC5cbiIKK21zZ3N0ciAiS2FuIGlra2UgdGlsZ+UgbWFza2ludXJldCBtZWQgbm9nZW4ga2VuZHQgbWV0b2RlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2UgdGhlIC0tZGVidWcgb3B0aW9uIHRvIHNlZSB0aGUgZGV0YWlscyBvZiBvdXIgc2VhcmNoIGZvciBhbiBhY2Nlc3MgIgorIm1ldGhvZC5cbiIKK21zZ3N0ciAiIgorIkJlbnl0IHRpbHZhbGdldCAtLWRlYnVnIGZvciBhdCBzZSBkZXRhbGplcm5lIGZyYSB2b3JlcyBz+GduaW5nIGVmdGVyIGVuICIKKyJ0aWxnYW5nc21ldG9kZS5cbiIKKworIzogaHdjbG9jay9rZC5jOjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tIEtER0hXQ0xLIHRvIGNoYW5nZVxuIgorbXNnc3RyICJWZW50ZXIgaSBlbiBs+GtrZSBmb3IgYXQgdGlkZW4gZnJhIEtER0hXQ0xLIOZuZHJlc1xuIgorCisjOiBod2Nsb2NrL2tkLmM6NTcKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIgorbXNnc3RyICJLREdIV0NMSyBpb2N0bCBmb3IgYXQgYWZs5nNlIHRpZGVuIG1pc2x5a2tlZGVzIgorCisjOiBod2Nsb2NrL2tkLmM6NzUKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIGluIGxvb3AiCittc2dzdHIgIktER0hXQ0xLIGlvY3RsIGZvciBhdCBhZmzmc2UgdGlkZW4gbWlzbHlra2VkZXMgaSBs+GtrZSIKKworIzogaHdjbG9jay9rZC5jOjgyIGh3Y2xvY2svcnRjLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWVkIG91dCB3YWl0aW5nIGZvciB0aW1lIGNoYW5nZS5cbiIKK21zZ3N0ciAiVGlkc3VkbPhiIG1lbnMgZGVyIHZlbnRlZGVzIHDlIHRpZHPmbmRyaW5nLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6MTA0CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgZmFpbGVkIHRvIHJlYWQgdGltZSBmcm9tICVzIgorbXNnc3RyICJpb2N0bCgpIGt1bm5lIGlra2UgYWZs5nNlIHRpZGVuIGZyYSAlcyIKKworIzogaHdjbG9jay9rZC5jOjE0MAorbXNnaWQgImlvY3RsIEtEU0hXQ0xLIGZhaWxlZCIKK21zZ3N0ciAiS0RHSFdDTEstaW9jdGwgbWlzbHlra2VkZXMiCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIkt1bm5lIGlra2Ug5WJuZSAvZGV2L3R0eTEgZWxsZXIgL2Rldi92Yy8xIgorCisjOiBod2Nsb2NrL2tkLmM6MTgwCittc2dpZCAiS0RHSFdDTEsgaW9jdGwgZmFpbGVkIgorbXNnc3RyICJLREdIV0NMSyBpb2N0bCBtaXNseWtrZWRlcyIKKworIzogaHdjbG9jay9ydGMuYzoxNDcgaHdjbG9jay9ydGMuYzoyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbigpIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAib3BlbigpIGFmICVzIG1pc2x5a2tlZGVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHJlYWQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJpb2N0bCgpIHRpbCAlcyBmb3IgYXQgYWZs5nNlIHRpZGVuIG1pc2x5a2tlZGVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiVmVudGVyIGkgbPhra2UgcOUgYXQgdGlkZW4gZnJhICVzIOZuZHJlc1xuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIKK21zZ3N0ciAiJXMgaGFyIGluZ2VuIGludGVycnVwdC1mdW5rdGlvbmVyLiAiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAicmVhZCgpIGFmICVzIGZvciBhdCBhZnZlbnRlIGV0IHVyLXRpayBtaXNseWtrZWRlcyIKKworIzogaHdjbG9jay9ydGMuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgInNlbGVjdCgpIHRpbCAlcyBmb3IgYXQgYWZ2ZW50ZSBldCB1ci10aWsgbWlzbHlra2VkZXMiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgdGltZWQgb3V0XG4iCittc2dzdHIgInNlbGVjdCgpIGFmICVzIGZvciBhdCBhZnZlbnRlIHDlIGVuIHVyLXRpayB1ZGz4YlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoKSB0aWwgJXMgZm9yIGF0IGFmYnJ5ZGUgb3BkYXRlcmluZ3MtaW50ZXJydXB0cyBtaXNseWtrZWRlcyIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgIiIKKyJpb2N0bCgpIHRpbCAlcyBmb3IgYXQgYWZicnlkZSBvcGRhdGVyaW5ncy1pbnRlcnJ1cHRzIG1pc2x5a2tlZGVzIHV2ZW50ZXQiCisKKyM6IGh3Y2xvY2svcnRjLmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gc2V0IHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAiaW9jdGwoKSB0aWwgJXMgZm9yIGF0IHPmdHRlIHRpZGVuIG1pc2x5a2tlZGVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCglcykgd2FzIHN1Y2Nlc3NmdWwuXG4iCittc2dzdHIgImlvY3RsKCVzKSBseWtrZWRlcy5cbiIKKworIzogaHdjbG9jay9ydGMuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3BlbiBvZiAlcyBmYWlsZWQiCittc2dzdHIgIsVibmluZyBhZiAlcyBtaXNseWtrZWRlcyIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisiRm9yIGF0IG1hbmlwdWxlcmUgZXBva2V25nJkaWVuIGkga2VybmVuLCBza2FsIHZpIGhhdmUgYWRnYW5nIHRpbCBMaW51eCcgIgorIm1hc2tpbnVyc2VuaGVkIHZpYSBlbmhlZHNzcGVjaWFsZmlsZW4gJyVzJy4gRGVubmUgZmlsIGVrc2lzdGVyZXIgaWtrZSBw5SAiCisiZGV0dGUgc3lzdGVtLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxNSBod2Nsb2NrL3J0Yy5jOjQ1OQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiS3VubmUgaWtrZSDlYm5lICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdGlsICVzIG1pc2x5a2tlZGVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAidmkgaGFyIGFmbOZzdCBlcG9rZXbmcmRpICVsZCBmcmEgJXMgbWVkIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIkVwb2tlduZyZGllbiBt5SBpa2tlIHbmcmUgbWluZHJlIGVuZCAxOTAwLiBEdSBiYWQgb20gJWxkXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNldHRpbmcgZXBvY2ggdG8gJWxkIHdpdGggUlRDX0VQT0NIX1NFVCBpb2N0bCB0byAlcy5cbiIKK21zZ3N0ciAic+Z0dGVyIGVwb2tlduZyZGllbiB0aWwgJWxkIG1lZCBlbiBSVENfRVBPQ0hfU0VUIGlvY3RsIHRpbCAlcy5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwgZGV2aWNlIGRyaXZlciBmb3IgJXMgZG9lcyBub3QgaGF2ZSB0aGUgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKK21zZ3N0ciAiS2VybmVucyBlbmhlZHMtZHJpdmVyIGZvciAlcyBoYXIgaWtrZSBlbiBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgImlvY3RsKFJUQ19FUE9DSF9TRVQpIHRpbCAlcyBtaXNseWtrZWRlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBleGVjICVzOiAlbSIKK21zZ3N0ciAiJXM6IGt1bm5lIGlra2UgdWRm+HJlICVzOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCittc2dzdHIgImt1bm5lIGlra2UgYWxsb2tlcmUgcGxhZHMgdGlsIGluaXR0ZWtzdCAobWFsbG9jKSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAidWd5bGRpZyB25nJkaSBmb3IgdGlkc3VkbPhiOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgInVneWxkaWcgaGFzdGlnaGVkOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI3Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAiZm9yIG1hbmdlIGZvcnNrZWxsaWdlIGhhc3RpZ2hlZGVyIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2RldjogY2hkaXIoKSBmYWlsZWQ6ICVtIgorbXNnc3RyICIvZGV2OiBjaGRpcigpIG1pc2x5a2tlZGVzOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIi9kZXYvJXM6IGlra2UgZW4gdGVnbmVuaGVkIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIvZGV2LyVzOiBrYW4gaWtrZSDlYm5lIHNvbSBzdGFuZGFyZC1pbmQ6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBvcGVuIGZvciByZWFkL3dyaXRlIgorbXNnc3RyICIlczogaWtrZSDlYmVuIGZvciBs5nNuaW5nL3Nrcml2bmluZyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkdXAgcHJvYmxlbTogJW0iCittc2dzdHIgIiVzOiBkdXAgcHJvYmxlbTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICJicnVnZXIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VycyIKK21zZ3N0ciAiYnJ1Z2VyZSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTAzMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZDogJW0iCittc2dzdHIgIiVzOiBs5nN0OiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW5wdXQgb3ZlcnJ1biIKK21zZ3N0ciAiJXM6IGluZGRhdGFvdmVybPhiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMjA2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstOGhpTG1Vd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IICIKKyJsb2dpbl9ob3N0XSBiYXVkX3JhdGUsLi4uIGxpbmUgW3Rlcm10eXBlXVxuIgorIm9yXHRbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggbG9naW5faG9zdF0gIgorImxpbmUgYmF1ZF9yYXRlLC4uLiBbdGVybXR5cGVdXG4iCittc2dzdHIgIiIKKyJCcnVnOiAlcyBbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpZHN1ZGz4Yl0gWy1JIGluaXRzdHJlbmddIFstSCAiCisibG9naW5fduZydF0gYmF1ZF9yYXRlLC4uLiBsaW5qZSBbdGVybXR5cGVdXG4iCisiZWxsZXJcdFstaGlMbXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGlkc3VkbPhiXSBbLUkgaW5pdHN0cmVuZ10gWy1IICIKKyJsb2dpbl925nJ0XSBsaW5qZSBiYXVkX3JhdGUsLi4uIFt0ZXJtdHlwZV1cbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MSBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbWVtb3J5IGxvdywgbG9naW4gbWF5IGZhaWxcbiIKK21zZ3N0ciAibG9naW46IGlra2UgbWVnZW4gaHVrb21tZWxzZSwgbG9naW4ga2FuIG1pc2x5a2tlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAia3VubmUgaWtrZSBhbGxva2VyZSBodWtvbW1lbHNlIGZvciB0dHljbGFzcyAobWFsbG9jKSIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTMKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCittc2dzdHIgImt1bm5lIGlra2UgYWxsb2tlcmUgaHVrb21tZWxzZSBmb3IgZ3JwbGlzdCAobWFsbG9jKSIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiTG9naW4gcOUgJXMgZnJhICVzIGFmdmlzZXMgc29tIHN0YW5kYXJkLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZC5cbiIKK21zZ3N0ciAiTG9naW4gcOUgJXMgZnJhICVzIGFmdmlzdC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjEzMyBsb2dpbi11dGlscy9jaHNoLmM6MTE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB5b3UgKHVzZXIgJWQpIGRvbid0IGV4aXN0LlxuIgorbXNnc3RyICIlczogZHUgKGJydWdlciAlZCkgZWtzaXN0ZXJlciBpa2tlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogYnJ1Z2VyIFwiJXNcIiBla3Npc3RlcmVyIGlra2UuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiVzOiBrYW4ga3VuIOZuZHJlIGxva2FsZSBpbmRnYW5nZTsgYnJ1ZyB5cCVzIGkgc3RlZGV0XG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICJVa2VuZHQgZmVqbCBpIGJydWdlcmtvbnRla3N0IgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIGZpbmdlciBpbmZvIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBlciBpa2tlIGF1dG9yaXNlcmV0IHRpbCBhdCDmbmRyZSBmaW5nZXItb3BseXNuaW5nZXIgZm9yICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiVzOiBLYW4gaWtrZSBz5nR0ZSBzdGFuZGFyZGtvbnRla3N0IGZvciAvZXRjL3Bhc3N3ZCIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBmaW5nZXIgaW5mb3JtYXRpb24gZm9yICVzLlxuIgorbXNnc3RyICLGbmRyZXIgZmluZ2VyLWluZm9ybWF0aW9uIGZvciAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJsb2dpbjogUEFNLWZlamwsIGFmYnJ5ZGVyOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjEyIGxvZ2luLXV0aWxzL2Noc2guYzoyMTEgbG9naW4tdXRpbHMvbG9naW4uYzo4MjcKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjc5IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDAgbW91bnQvbG9tb3VudC5jOjc0MgorIzogbW91bnQvbG9tb3VudC5jOjc0NQorbXNnaWQgIlBhc3N3b3JkOiAiCittc2dzdHIgIkFkZ2FuZ3Nrb2RlOiAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTUgbG9naW4tdXRpbHMvY2hzaC5jOjIxNAorbXNnaWQgIkluY29ycmVjdCBwYXNzd29yZC4iCittc2dzdHIgIlVneWxkaWcgYWRnYW5nc2tvZGUuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiRmluZ2VyLWluZm9ybWF0aW9uZXIgaWtrZSDmbmRyZXQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIkJydWc6ICVzIFsgLWYgZnVsZGUtbmF2biBdIFsgLW8ga29udG9yIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJbIC1wIG9mZmljZS1waG9uZSBdXG4iCisiXHRbIC1oIGhvbWUtcGhvbmUgXSAiCittc2dzdHIgIiIKKyJbIC1wIGtvbnRvci10ZWxlZm9uIF1cbiIKKyJcdFsgLWggcHJpdmF0LXRlbGVmb24gXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQwMSBsb2dpbi11dGlscy9jaHNoLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJBYm9ydGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiQWZicnVkdC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAiZmVsdCBlciBmb3IgbGFuZ3QuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJyVjJyBlciBpa2tlIHRpbGxhZHQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiS29udHJvbHRlZ24gZXIgaWtrZSB0aWxsYWR0ZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxMgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiRmluZ2VyLWluZm9ybWF0aW9uZXIgKklLS0UqIOZuZHJldC4gUHL4diBpZ2VuIHNlbmVyZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiRmluZ2VyLWluZm9ybWF0aW9uZXIg5m5kcmV0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBlciBpa2tlIGF1dG9yaXNlcmV0IHRpbCBhdCDmbmRyZSBza2FsbGVuIGZvciAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogUnVubmluZyBVSUQgZG9lc24ndCBtYXRjaCBVSUQgb2YgdXNlciB3ZSdyZSBhbHRlcmluZywgc2hlbGwgY2hhbmdlICIKKyJkZW5pZWRcbiIKK21zZ3N0ciAiIgorIiVzOiBEZW4ga/hyZW5kZSBVSUQgc3ZhcmVyIGlra2UgdGlsIGRlbiBVSUQsIHZpIHVkZvhyZXIg5m5kcmluZ2VyIGZvciwgIgorInNrYWzmbmRyaW5nIG7mZ3Rlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBZb3VyIHNoZWxsIGlzIG5vdCBpbiAvZXRjL3NoZWxscywgc2hlbGwgY2hhbmdlIGRlbmllZFxuIgorbXNnc3RyICIlczogRGluIHNrYWwgZXIgaWtrZSBpIC9ldGMvc2hlbGxzLCB1ZHNraWZ0bmluZyBhZiBza2FsIGFmdmlzdFxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiVWRza2lmdGVyIHNrYWwgZm9yICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJOeSBza2FsIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJTa2FsIGlra2UgdWRza2lmdGV0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIlNrYWwgKklLS0UqIHVkc2tpZnRldC4gUHL4diBpZ2VuIHNlbmVyZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBjaGFuZ2VkLlxuIgorbXNnc3RyICJTa2FsIHVkc2tpZnRldC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1c2VybmFtZSBdXG4iCittc2dzdHIgIiIKKyJCcnVnOiAlcyBbIC1zIHNrYWwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICBbIGJydWdlcm5hdm4gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiBza2FsbGVuIHNrYWwgYW5naXZlcyBtZWQgaGVsIHN0aS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogXCIlc1wiIGVrc2lzdGVyZXIgaWtrZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBleGVjdXRhYmxlLlxuIgorbXNnc3RyICIlczogXCIlc1wiIGVyIGlra2Uga/hyYmFyLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogJyVjJyBlciBpa2tlIHRpbGxhZHQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENvbnRyb2wgY2hhcmFjdGVycyBhcmUgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiVzOiBLb250cm9sdGVnbiBlciBpa2tlIHRpbGxhZHQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzUgbG9naW4tdXRpbHMvY2hzaC5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiQWR2YXJzZWw6IFwiJXNcIiBpa2tlIG1lZCBpIC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBlciBpa2tlIG1lZCBpIC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IGJydWcgdGlsdmFsZ2V0IC1sIGZvciBhdCBzZSBlbiBsaXN0ZVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSAlcyAtbCB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiQnJ1ZyAlcyAtbCBmb3IgYXQgc2UgZW4gbGlzdGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICJJbmdlbiBrZW5kdGUgc2thbGxlci5cbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZywgZXhpdGluZy4iCittc2dzdHIgImt1bm5lIGlra2Ug5WJuZSBmb3IgbOZzbmluZyBhZiAlcyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICJicnVnOiBsYXN0IFstI10gWy1mIGZpbF0gWy10IHR0eV0gWy1oIHbmcnRdIFticnVnZXIgLi4uXVxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzAyCittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIiAgc3RhZGlnIGxvZ2dldCBw5SIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wIHN0YXJ0ZXIgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozODAgbG9naW4tdXRpbHMvbGFzdC5jOjM5OCBsb2dpbi11dGlscy9sYXN0LmM6NDQ5Cittc2dpZCAibGFzdDogbWFsbG9jIGZhaWx1cmUuXG4iCittc2dzdHIgImxhc3Q6IGh1a29tbWVsc2VzYWxsb2tlcmluZ3MtZmVqbCAobWFsbG9jKS5cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQyNQorbXNnaWQgImxhc3Q6IGdldGhvc3RuYW1lIgorbXNnc3RyICJsYXN0OiBnZXRob3N0bmFtZSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW50ZXJydXB0ZWQgJTEwLjEwcyAlNS41cyBcbiIKK21zZ3N0ciAiIgorIlxuIgorImFmYnJ1ZHQgJTEwLjEwcyAlNS41cyBcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6IGNhbid0IHJlb3BlbiB0dHk6ICVzIgorbXNnc3RyICJGQVRBTFQ6IGt1bm5lIGlra2UgZ2Vu5WJuZSB0dHk6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6ICVzIGlzIG5vdCBhIHRlcm1pbmFsIgorbXNnc3RyICIlcyBlciBpa2tlIGVuIGJsb2tlbmhlZCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMzgKK21zZ2lkICJGQVRBTDogYmFkIHR0eSIKK21zZ3N0ciAiRkFUQUxUOiB1Z3lsZGlnIHR0eSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgImxvZ2luOiAtaCBlciBrdW4gZm9yIHN1cGVyYnJ1Z2VyZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgImJydWc6IGxvZ2luIFstZnBdIFticnVnZXJuYXZuXVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBpbml0aWFsaXplIFBBTTogJXMiCittc2dzdHIgIkt1bm5lIGlra2Uga2xhcmf4cmUgUEFNOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1OTUKK21zZ2lkICJsb2dpbjogIgorbXNnc3RyICJsb2dpbjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJNSVNMWUtLRVQgTE9HSU4gJWQgRlJBICVzIEZPUiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkxvZ2luIHVneWxkaWd0XG4iCisiXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRPTyBNQU5ZIExPR0lOIFRSSUVTICglZCkgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJGT1IgTUFOR0UgTE9HSU5GT1JT2EcgKCVkKSBGUkEgJXMgRk9SICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJNSVNMWUtLRVQgTE9HSU5TRVNTSU9OIEZSQSAlcyBGT1IgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIiIKKyJcbiIKKyJMb2dpbiB1Z3lsZGlndFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlByb2JsZW0gbWVkIHNlc3Npb25zLW9wc+Z0bmluZywgYWZicnlkZXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5VTEwgdXNlciBuYW1lIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIlRPTVQgYnJ1Z2VybmF2biBpICVzOiAlZC4gQWZicnlkZXIuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVzZXIgbmFtZSBcIiVzXCIgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiVWd5bGRpZ3QgYnJ1Z2VybmF2biBcIiVzXCIgaSAlczolZC4gQWZicnlkZXIuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJsb2dpbjogSHVrb21tZWxzZSBvcGJydWd0XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzYxCittc2dpZCAiSWxsZWdhbCB1c2VybmFtZSIKK21zZ3N0ciAiVWd5bGRpZ3QgYnJ1Z2VybmF2biIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9naW4gcmVmdXNlZCBvbiB0aGlzIHRlcm1pbmFsLlxuIgorbXNnc3RyICIlcyBsb2dpbiBhZnZpc3QgcOUgZGVubmUgdGVybWluYWwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgRlJPTSAlcyBPTiBUVFkgJXMiCittc2dzdHIgIkxPR0lOICVzIEFGVklTVCBGUkEgJXMgUMUgVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiTE9HSU4gJXMgQUZWSVNUIFDFIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIkxvZ2luIHVneWxkaWd0XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgIk9QUklOR05JTkcgS0xPS0tFTiAlcyBBRiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMgRlJPTSAlcyIKK21zZ3N0ciAiUk9PVCBMT0dJTiBQxSAlcyBGUkEgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIgorbXNnc3RyICJST09UIExPR0lOIFDFICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAiTE9HSU4gUMUgJXMgQUYgJXMgRlJBICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIkxPR0lOIFDFICVzIEFGICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbmV3IG1haWwuXG4iCittc2dzdHIgIkR1IGhhciBueSBwb3N0LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAiRHUgaGFyIHBvc3QuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogZmFpbHVyZSBmb3JraW5nOiAlcyIKK21zZ3N0ciAibG9naW46IG1pc2x5a2tldCBmb3JncmVuaW5nOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRJT0NTQ1RUWSBmYWlsZWQ6ICVtIgorbXNnc3RyICJUSU9DU0NUVFkgbWlzbHlra2VkZXM6ICVtIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjgKK21zZ2lkICJzZXR1aWQoKSBmYWlsZWQiCittc2dzdHIgInNldHVpZCgpIG1pc2x5a2tlZGVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICJJbmdlbiBtYXBwZSAlcyFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2dpbmcgaW4gd2l0aCBob21lID0gXCIvXCIuXG4iCittc2dzdHIgIkxvZ2dlciBpbmQgbWVkIGhqZW1tZW1hcHBlID0gXCIvXCIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgImxvZ2luOiBpbmdlbiBodWtvbW1lbHNlIGZvciBza2FsLXNrcmlwdC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBrdW5uZSBpa2tlIGv4cmUgc2thbC1za3JpcHQ6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIHNoZWxsOiAlcy5cbiIKK21zZ3N0ciAibG9naW46IGluZ2VuIHNrYWw6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyIlcyBsb2dpbjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJsb2dpbm5hdm4gYWx0IGZvciBsYW5ndC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAzCittc2dpZCAiTkFNRSB0b28gbG9uZyIKK21zZ3N0ciAiZm9yIGxhbmd0IE5BVk4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMxMAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lcyBtYXkgbm90IHN0YXJ0IHdpdGggJy0nLlxuIgorbXNnc3RyICJsb2dpbm5hdm5lIG3lIGlra2Ugc3RhcnRlIG1lZCAnLScuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBiYXJlIGxpbmVmZWVkcy5cbiIKK21zZ3N0ciAiZm9yIG1hbmdlIHRvbW1lIGxpbmplc2tpZnQsXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIlZPTERTT01UIE1BTkdFIGxpbmplc2tpZnQiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJMb2dpbiB1ZGz4YiBlZnRlciAlZCBzZWt1bmRlclxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBsb2dpbjogJS4qcyAiCittc2dzdHIgIlNpZHN0ZSBsb2dpbjogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAiZnJhICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAicOUgJS4qc1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gRkFJTFVSRSBGUk9NICVzLCAlcyIKK21zZ3N0ciAiTE9HSU5GRUpMIEZSQSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAiTE9HSU5GRUpMIHDlICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIgorbXNnc3RyICIlZCBMT0dJTkZFSkwgZnJhICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIE9OICVzLCAlcyIKK21zZ3N0ciAiJWQgTE9HSU5GRUpMIFDFICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgImlzIHlcbiIKK21zZ3N0ciAiZXIgalxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgblxuIgorbXNnc3RyICJlciBuXG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IG1lc2cgW3kgfCBuXVxuIgorbXNnc3RyICJicnVnOiBtZXNnIFtqIHwgbl1cbiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAibmV3Z3JwOiBIdmVtIGVyIGR1PyIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTA3IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyMQorbXNnaWQgIm5ld2dycDogc2V0Z2lkIgorbXNnc3RyICJuZXdncnA6IHNldGdpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIm5ld2dycDogSW5nZW4gc+VkYW4gZ3J1cHBlLiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiBO5md0ZXQgYWRnYW5nIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzIKK21zZ2lkICJuZXdncnA6IHNldHVpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXR1aWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzOAorbXNnaWQgIk5vIHNoZWxsIgorbXNnc3RyICJJbmdlbiBza2FsIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKK21zZ3N0ciAiQnJ1Zzogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgIk5lZGx1a25pbmdzcHJvY2VzIGFmYnJ1ZHQiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPbmx5IHJvb3QgY2FuIHNodXQgYSBzeXN0ZW0gZG93bi5cbiIKK21zZ3N0ciAiJXM6IEt1biByb290IGthbiBsdWtrZSBzeXN0ZW1ldCBuZWQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoYXQgbXVzdCBiZSB0b21vcnJvdywgY2FuJ3QgeW91IHdhaXQgdGlsbCB0aGVuP1xuIgorbXNnc3RyICJEZXQgbeUgduZyZSBpIG1vcmdlbi4gS2FuIGR1IGlra2UgdmVudGUgc+UgbOZuZ2U/XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzEwCittc2dpZCAiZm9yIG1haW50ZW5hbmNlOyBib3VuY2UsIGJvdW5jZSIKK21zZ3N0ciAiZm9yIHZlZGxpZ2Vob2xkZWxzZTsgaG9wIGFmLCBob3AgYWYiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiU3lzdGVtZXQgbHVra2VzIGluZGVuZm9yIDUgbWludXR0ZXIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzQzCittc2dpZCAiTG9naW4gaXMgdGhlcmVmb3JlIHByb2hpYml0ZWQuIgorbXNnc3RyICJEZXJmb3IgZXIgbG9naW4gc3DmcnJldC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY1CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYm9vdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiZ2Vuc3RhcnRldCBhZiAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhhbHRlZCBieSAlczogJXMiCittc2dzdHIgInN0YW5kc2V0IGFmICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzIKK21zZ2lkICIiCisiXG4iCisiV2h5IGFtIEkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVib290PyIKK21zZ3N0ciAiIgorIlxuIgorIkh2b3Jmb3Iga/hyZXIgamVnIHN0YWRpZyBlZnRlciBnZW5zdGFydD8iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDM0Cittc2dpZCAiIgorIlxuIgorIk5vdyB5b3UgY2FuIHR1cm4gb2ZmIHRoZSBwb3dlci4uLiIKK21zZ3N0ciAiIgorIlxuIgorIkR1IGthbiBudSBzbHVra2UgZm9yIHN0cvhtbWVuLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGtlcm5lbCBwb3dlci1vZmYgZmFjaWxpdHkuLi5cbiIKK21zZ3N0ciAiS2FsZGVyIGtlcm5lbnMgc2x1a25pbmdzLWZhY2lsaXRldC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIkZlamwgdmVkIHNsdWtuaW5nXHQlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICJFeGVjdXRpbmcgdGhlIHByb2dyYW0gXCIlc1wiIC4uLlxuIgorbXNnc3RyICJL+HJlciBwcm9ncmFtbWV0IFwiJXNcIiAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nXHQlc1xuIgorbXNnc3RyICJGZWpsIHZlZCBr+HJzZWwgYWZcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiCittc2dzdHIgIkhBU1RFUjogcnVuZHNlbmR0IGJlc2tlZCBmcmEgJXM6IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBob3VycyAlZCBtaW51dGVzIgorbXNnc3RyICJTeXN0ZW1ldCBsdWtrZXMgbmVkIG9tICVkIHRpbWVyIG9nICVkIG1pbnV0dGVyIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAiU3lzdGVtZXQgbHVra2VzIG5lZCBvbSAxIHRpbWUgb2cgJWQgbWludXR0ZXIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiU3lzdGVtZXQgbHVra2VzIG5lZCBvbSAlZCBtaW51dHRlclxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwNgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIG1pbnV0ZVxuIgorbXNnc3RyICJTeXN0ZW1ldCBsdWtrZXMgbmVkIG9tIDEgbWludXRcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gSU1NRURJQVRFTFkhXG4iCittc2dzdHIgIlN5c3RlbWV0IGx1a2tlcyBuZWQg2EpFQkxJS0tFTElHVCFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx0Li4uICVzIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIkt1bm5lIGlra2UgZm9yZ3JlbmUgZm9yIHN3YXBvZmYuIFN1ayEiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTc4Cittc2dpZCAiQ2Fubm90IGV4ZWMgc3dhcG9mZiwgaG9waW5nIHVtb3VudCB3aWxsIGRvIHRoZSB0cmljay4iCittc2dzdHIgIkt1bm5lIGlra2UgdWRm+HJlIHN3YXBvZmYuIEjlYmVyLCBhdCB1bW91bnQgdmlsIGtsYXJlIGRldC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiS3VubmUgaWtrZSBmb3JncmVuZSB1bW91bnQsIGZvcnP4Z2VyIHNlbHYuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZXhlYyAlcywgdHJ5aW5nIHVtb3VudC5cbiIKK21zZ3N0ciAiS2FuIGlra2UgdWRm+HJlICVzLCBmb3Jz+GdlciBhZm1vbnRlcmluZyBtZWQgdW1vdW50LlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgIkt1bm5lIGlra2UgdWRm+HJlIHVtb3VudCwgb3BnaXZlciBhZm1vbnRlcmluZy4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjE1Cittc2dpZCAiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIgorbXNnc3RyICJBZm1vbnRlcmVyIHJlc3RlcmVuZGUgZmlsc3lzdGVtZXIuLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iCittc2dzdHIgInNodXRkb3duOiBLdW5uZSBpa2tlIGFmbW9udGVyZSAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzMgorbXNnaWQgIkJvb3RpbmcgdG8gc2luZ2xlIHVzZXIgbW9kZS5cbiIKK21zZ3N0ciAiU3RhcnRlciBvcCBpIGVua2VsdGJydWdlcnRpbHN0YW5kLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTM2Cittc2dpZCAiZXhlYyBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAidWRm+HJlbHNlIGFmIGVua2VsdGJydWdlci1za2FsIG1pc2x5a2tlZGVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJmb3JncmVuaW5nIGFmIGVua2VsdGJydWdlci1za2FsIG1pc2x5a2tlZGVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMDgKK21zZ2lkICJlcnJvciBvcGVuaW5nIGZpZm9cbiIKK21zZ3N0ciAiZmVqbCB2ZWQg5WJuaW5nIGFmIGZpZm9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIxMgorbXNnaWQgImVycm9yIHNldHRpbmcgY2xvc2Utb24tZXhlYyBvbiAvZGV2L2luaXRjdGwiCittc2dzdHIgImZlamwgdW5kZXIgc+Z0bmluZyBhZiBjbG9zZS1vbi1leGVjIHDlIC9kZXYvaW5pdGN0bCIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI1OQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImZlamwgdmVkIGv4cnNlbCBhZiBmaW5hbHByb2dcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI2MworbXNnaWQgImVycm9yIGZvcmtpbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImZlamwgdmVkIGZvcnP4ZyBw5SBhdCBzcGFsdGUgcHJvY2Vzc2VuIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQ1Cittc2dpZCAiIgorIlxuIgorIldyb25nIHBhc3N3b3JkLlxuIgorbXNnc3RyICIiCisiXG4iCisiRm9ya2VydCBwYXNzd29yZC5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgImt1bm5lIGlra2UgZmluZGUgc3RpIG1lZCBsc3RhdFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2Cittc2dpZCAic3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJrdW5uZSBpa2tlIGZpbmRlIHN0aVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgImt1bm5lIGlra2Ug5WJuZSBtYXBwZVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTAxCisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3Bhd25pbmc6IFwiJXNcIiB0b28gZmFzdDogcXVlbmNoaW5nIGVudHJ5XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwOQorbXNnaWQgImZvcmsgZmFpbGVkXG4iCittc2dzdHIgImZvcmdyZW5pbmcgbWlzbHlra2VkZXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU0MCB0ZXh0LXV0aWxzL21vcmUuYzoxNjYzCittc2dpZCAiZXhlYyBmYWlsZWRcbiIKK21zZ3N0ciAicHJvZ3JhbWv4cnNlbCBtaXNseWtrZWRlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0Cittc2dpZCAiY2Fubm90IG9wZW4gaW5pdHRhYlxuIgorbXNnc3RyICJrdW5uZSBpa2tlIOVibmUgaW5pdHRhYlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NjMxCittc2dpZCAibm8gVEVSTSBvciBjYW5ub3Qgc3RhdCB0dHlcbiIKK21zZ3N0ciAiaW5nZW4gVEVSTSBlbGxlciBrdW5uZSBpa2tlIGZpbmRlIHR0eVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTM4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBzdG9wcGluZyBzZXJ2aWNlOiBcIiVzXCJcbiIKK21zZ3N0ciAiZmVqbCB2ZWQgZm9yc/hnIHDlIGF0IHN0b3BwZSB0amVuZXN0ZW46IFwiJXNcIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjk1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICJmZWpsIHZlZCBmb3Jz+GcgcOUgYXQgc3RvcHBlIHRqZW5lc3RlbjogXCIlc1wiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJmZWpsIHZlZCBr+HJzZWwgYWYgZmluYWxwcm9nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjc1Cittc2dpZCAidG9vIG1hbnkgaW92J3MgKGNoYW5nZSBjb2RlIGluIHdhbGwvdHR5bXNnLmMpIgorbXNnc3RyICJmb3IgbWFuZ2UgaW92J2VyICjmbmRyIGtvZGUgaSB3YWxsL3R0eW1zZy5jKSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIKK21zZ3N0ciAidXRyb2xpZ3QgbGFuZyBsaW5qZXBhcmFtZXRlciIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JrIgorbXNnc3RyICJrdW5uZSBpa2tlIGZvcmdyZW5lIChmb3JrKSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICJmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiBVR1lMRElHIEZFSkwiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBhZGdhbmdza29kZWZpbGVuIGVyIG9wdGFnZXQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBncm91cCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBncnVwcGVmaWxlbiBlciBvcHRhZ2V0LlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgJXMgZmlsZSBpcyBidXN5ICglcyBwcmVzZW50KVxuIgorbXNnc3RyICIlczogZmlsZW4gJXMgZXIgb3B0YWdldC4gKCVzIGVrc2lzdGVyZXIpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBrdW5uZSBpa2tlIGzmbmtlICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBnZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiBLYW4gaWtrZSBm5SBrb250ZWtzdCBmb3IgJXMiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IEthbiBpa2tlIHPmdHRlIGtvbnRla3N0IGZvciAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiIgorIiVzOiBrdW5uZSBpa2tlIGZqZXJuZSBs5XNlbiBw5SAlczogJXMgKGRpbmUg5m5kcmluZ2VyIGVyIHN0YWRpZyBpICVzKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgZm9ya1xuIgorbXNnc3RyICIlczogS3VubmUgaWtrZSBmb3JncmVuZSAoZm9yaylcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgdW5jaGFuZ2VkXG4iCittc2dzdHIgIiVzOiAlcyB15m5kcmV0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIgorbXNnc3RyICIlczogaW50ZXQg5m5kcmV0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgZ3JvdXBzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJEdSBicnVnZXIgc2t5Z2dlZ3J1cHBlciAoc2hhZG93IGdyb3VwcykgcOUgZGV0dGUgc3lzdGVtLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IHBhc3N3b3JkcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiRHUgYnJ1Z2VyIHNreWdnZS1hZGdhbmdza29kZXIgKHNoYWRvdyBwYXNzd29yZHMpIHDlIGRldHRlIHN5c3RlbS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCB5b3UgbGlrZSB0byBlZGl0ICVzIG5vdyBbeS9uXT8gIgorbXNnc3RyICJWaWwgZHUgcmVkaWdlcmUgJXMgbnUgW2ovbl0/ICIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgW2ZpbGVdXG4iCittc2dzdHIgImJydWc6ICVzIFtmaWxdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBrdW5uZSBpa2tlIOVibmUgbWlkbGVydGlkaWcgZmlsLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyb2FkY2FzdCBNZXNzYWdlIGZyb20gJXNAJXMiCittc2dzdHIgIlJ1bmRzZW5kdCBtZWRkZWxlbHNlIGZyYSAlc0AlcyIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2lsbCBub3QgcmVhZCAlcyAtIHVzZSBzdGRpbi5cbiIKK21zZ3N0ciAiJXM6IGthbiBpa2tlIGzmc2UgJXMgLSBicnVnIHN0YW5kYXJkLWluZGRhdGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgIiVzOiBrdW5uZSBpa2tlIGzmc2UgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHN0YXQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBrdW5uZSBpa2tlIGZpbmRlIG1pZGxlcnRpZGlnIGZpbC5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IGt1bm5lIGlra2UgbOZzZSBtaWRsZXJ0aWRpZyBmaWwuXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgInVneWxkaWcg5XJzduZyZGk6IGJydWcgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICJ1Z3lsZGlnIG3lbmVkc3bmcmRpOiBicnVnIDEtMTIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzcyCittc2dpZCAiaWxsZWdhbCB5ZWFyIHZhbHVlOiB1c2UgMS05OTk5IgorbXNnc3RyICJ1Z3lsZGlnIOVyc3bmcmRpOiBicnVnIDEtOTk5OSIKKworIzogbWlzYy11dGlscy9jYWwuYzo0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJWQiCittc2dzdHIgIiVzICVkIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjg1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgImJydWc6IGNhbCBbLTEzc21qeVZdIFtbbeVuZWRdIOVyXVxuIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbK2Zvcm1hdF0gW2RheSBtb250aCB5ZWFyXVxuIgorbXNnc3RyICJicnVnOiAlcyBbK2Zvcm1hdF0gW2RhZyBt5W5lZCDlcl1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIlN0LiBUaWJzLWRhZyIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgTEFCRUw9PGxhYmVsPnxVVUlEPTx1dWlkPlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byByZXNvbHZlICclcyciCittc2dzdHIgImt1bm5lIGlra2Ug5WJuZSAlcyIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlc1xuIgorbXNnc3RyICIlczogdWtlbmR0IHNpZ25hbCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgcHJvY2VzcyBcIiVzXCJcbiIKK21zZ3N0ciAiJXM6IGt1bm5lIGlra2UgZmluZGUgcHJvY2Vzc2VuIFwiJXNcIlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzOyB2YWxpZCBzaWduYWxzOlxuIgorbXNnc3RyICIlczogdWtlbmR0IHNpZ25hbCAlczsgZ3lsZGlnZSBzaWduYWxlcjpcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKK21zZ3N0ciAiYnJ1ZzogJXMgWyAtcyBzaWduYWwgfCAtcCBdIFsgLWEgXSBwaWQgLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgLWwgWyBzaWduYWwgXVxuIgorbXNnc3RyICIgICAgICAgJXMgLWwgWyBzaWduYWwgXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IG9wZW5sb2c6IHBhdGhuYW1lIHRvbyBsb25nXG4iCittc2dzdHIgImxvZ2lubmF2biBhbHQgZm9yIGxhbmd0LlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQ6ICVzLlxuIgorbXNnc3RyICJCbG9rc3T4cnJlbHNlOiAlZFxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbm5lY3Q6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogJXM6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6ICVzOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIGZhY2lsaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IHVrZW5kdCBmYWNpbGl0ZXRzbmF2bjogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBwcmlvcml0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiB1a2VuZHQgcHJpb3JpdGV0c25hdm46ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6IGxvZ2dlciBbLWlzXSBbLWYgZmlsZV0gWy1wIHByaV0gWy10IHRhZ10gWy11IHNvY2tldF0gWyBtZXNzYWdlIC4uLiBdXG4iCittc2dzdHIgIiIKKyJicnVnOiBsb2dnZXIgWy1pc10gWy1mIGZpbF0gWy1wIHByaV0gWy10IG3mcmtlXSBbLXUgc29ra2VsXSBbIGJlc2tlZCAuLi4gXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgImJydWc6IGxvb2sgWy1kZmFdIFstdCB0ZWduXSBzdHJlbmcgW2ZpbF1cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJLdW5uZSBpa2tlIOVibmUgJXNcbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA5IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICJGaWsgJWQgYnl0ZSBmcmEgJXNcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0CisjLCBmdXp6eQorbXNnaWQgIm91dCBvZiBtZW1vcnk/IgorbXNnc3RyICJs+GJldCB0+HIgZm9yIGh1a29tbWVsc2U/XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHN5bWxpbms6ICVzIgorbXNnc3RyICJpb2N0bCgpIGt1bm5lIGlra2UgYWZs5nNlIHRpZGVuIGZyYSAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjIzMSBtaXNjLXV0aWxzL25hbWVpLmM6MjU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICJrdW5uZSBpa2tlIGZpbmRlIGVuaGVkZW4gJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgImJydWc6IG5hbWVpIFstbXhdIHN0aSBbc3RpIC4uLl1cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpb25lcjpcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXgsIC0tbW91bnRwb2ludHMgICBzaG93IG1vdW50IHBvaW50IGRpcmVjdG9yaWVzIHdpdGggYSAnRCdcbiIKKyIgLW0sIC0tbW9kZXMgICAgICAgICBzaG93IHRoZSBtb2RlIGJpdHMgb2YgZWFjaCBmaWxlXG4iCisiIC1vLCAtLW93bmVycyAgICAgICAgc2hvdyBvd25lciBhbmQgZ3JvdXAgbmFtZSBvZiBlYWNoIGZpbGVcbiIKKyIgLWwsIC0tbG9uZyAgICAgICAgICB1c2UgYSBsb25nIGxpc3RpbmcgZm9ybWF0ICgtbSAtbyAtdikgXG4iCisiIC1uLCAtLW5vc3ltbGlua3MgICAgZG9uJ3QgZm9sbG93IHN5bWxpbmtzXG4iCisiIC12LCAtLXZlcnRpY2FsICAgICAgdmVydGljYWwgYWxpZ24gb2YgbW9kZXMgYW5kIG93bmVyc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBuYW1laSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTIyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdDogJXMiCittc2dzdHIgImt1bm5lIGlra2UgZmluZGUgJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiJXM6IGh1a29tbWVsc2Ugb3BicnVndFxuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZW5hbWluZyAlcyB0byAlcyBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiVzOiBrdW5uZSBpa2tlIG9tZPhiZSAlcyB0aWwgJXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FsbDogJXMgZnJvbSB0byBmaWxlcy4uLlxuIgorbXNnc3RyICJrYWxkOiAlcyBmcmEgdGlsIGZpbGVyLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBgJXMnIGlzIGEgbGluay5cbiIKKyJVc2UgYCVzIFtvcHRpb25zXSAlcycgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC5cbiIKKyJTY3JpcHQgbm90IHN0YXJ0ZWQuXG4iCittc2dzdHIgIiIKKyJBZHZhcnNlbDogJyVzJyBlciBlbiBs5m5rZS5cbiIKKyJCcnVnICclcyBbdGlsdmFsZ10gJXMnLCBodmlzIGR1IHZpcmtlbGlnIHZpbCBicnVnZSBkZW4uXG4iCisiU2tyaXB0IGJsZXYgaWtrZSBzdGFydGV0LlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2ZpbGVdXG4iCittc2dzdHIgImJydWc6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNrcmlwdCBw5WJlZ3luZHQsIGZpbGVuIGVyICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MjQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3IgJWQ6ICVzXG4iCittc2dzdHIgInNrcml2ZWZlamwgcOUgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQgb24gJXMiCittc2dzdHIgIlNrcmlwdCBw5WJlZ3luZHQgcOUgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3I6ICVzXG4iCittc2dzdHIgInNrcml2ZWZlamwgcOUgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczoga3VubmUgaWtrZSBmaW5kZSBlbmhlZGVuIGZvciAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2NyaXB0IGRvbmUgb24gJXMiCittc2dzdHIgIiIKKyJcbiIKKyJTa3JpcHQga/hydCBw5SAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IGRvbmUsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiU2tyaXB0IGbmcmRpZ3QsIGZpbGVuIGVyICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW5wdHkgZmFpbGVkXG4iCittc2dzdHIgIm9wZW5wdHkgbWlzbHlra2VkZXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIHB0eSdzXG4iCittc2dzdHIgIkz4YmV0IHT4ciBmb3IgcHR5LWVyXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJleHBlY3RlZCBhIG51bWJlciwgYnV0IGdvdCAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTYgbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXZpc29yICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMDQKKyMsIGZ1enp5Cittc2dpZCAid3JpdGUgdG8gc3Rkb3V0IGZhaWxlZCIKK21zZ3N0ciAixWJuaW5nIGFmICVzIG1pc2x5a2tlZGVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgImlvY3RsKCkga3VubmUgaWtrZSBhZmzmc2UgdGlkZW4gZnJhICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIkthbiBpa2tlIOVibmUgZmlsZW4gJyVzJyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiS2FuIGlra2Ug5WJuZSBmaWxlbiAnJXMnIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGltaW5nIGZpbGUgJXMiCittc2dzdHIgImlvY3RsKCkga3VubmUgaWtrZSBhZmzmc2UgdGlkZW4gZnJhICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IgorbXNnc3RyICIlczogVXZlbnRldCBmaWxhZnNsdXRuaW5nIGkgJXMtZmlsXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQXJndW1lbnQgZXJyb3IsIHVzYWdlXG4iCittc2dzdHIgIiVzOiBQYXJhbWV0ZXJmZWpsLCBicnVnXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRlcm0gdGVybWluYWxfbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYXZuIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVzZXQgXVxuIgorbXNnc3RyICIgIFsgLXJlc2V0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCittc2dzdHIgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiICBbIC1kZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc5IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODMKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NQorIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorbXNnc3RyICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdG9yZSBdXG4iCittc2dzdHIgIiAgWyAtc3RvcmUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIgIFsgLWJsYW5rIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS1BTlRBTF9LT05TT0xMRVJdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwZW5kIFsxLUFOVEFMX0tPTlNPTExFUl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1maWxlIGR1bXBmaWxlbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtZmlsZSBkdW1wZmlsbmF2biBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorbXNnc3RyICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorbXNnc3RyICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCittc2dzdHIgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSBibGFua1xuIgorbXNnc3RyICJrdW5uZSBpa2tlIGZvcmdyZW5lIChmb3JrKSIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIHVuYmxhbmtcbiIKK21zZ3N0ciAia3VubmUgaWtrZSBmb3JncmVuZSAoZm9yaykiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgImt1bm5lIGlra2Ug5WJuZSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCAodW4pc2V0IHBvd2Vyc2F2ZSBtb2RlXG4iCittc2dzdHIgImthbiBpa2tlIOZuZHJlIHN0cvhtc3BhcmV0aWxzdGFuZFxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTIyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAia2xvZ2N0bCBlcnJvcjogJXNcbiIKK21zZ3N0ciAia2xvZ2N0bCBmZWpsOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIgorbXNnc3RyICJGZWpsIHZlZCBza3Jpdm5pbmcgYWYgc2vmcm1rb3BpXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IHJlYWQgJXNcbiIKK21zZ3N0ciAiS3VubmUgaWtrZSDlYm5lICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICRURVJNIGlzIG5vdCBkZWZpbmVkLlxuIgorbXNnc3RyICIlczogJFRFUk0gZXIgaWtrZSBkZWZpbmVyZXQuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstZF0gWy1wIHBpZGZpbGVdIFstcyBzb2NrZXRwYXRoXSBbLVQgdGltZW91dF1cbiIKK21zZ3N0ciAiYnJ1ZzogbGFzdCBbLSNdIFstZiBmaWxdIFstdCB0dHldIFstaCB25nJ0XSBbYnJ1Z2VyIC4uLl1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyBbLXJ8dF0gWy1uIG51bV0gWy1zIHNvY2tldHBhdGhdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgLWtcbiIKK21zZ3N0ciAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorIywgZnV6enkKK21zZ2lkICJiYWQgYXJndW1lbnRzIgorbXNnc3RyICJjb2w6IHVneWxkaWd0IC1sIHBhcmFtZXRlciAlcy5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorIywgZnV6enkKK21zZ2lkICJzb2NrZXQiCittc2dzdHIgIk5GUy1zb2trZWwiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNzAKKyMsIGZ1enp5Cittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAiTkZTLWZvcmJpbmRlbHNlIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTg5CisjLCBmdXp6eQorbXNnaWQgIndyaXRlIgorbXNnc3RyICJTa3JpdiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE5NworIywgZnV6enkKK21zZ2lkICJyZWFkIGNvdW50IgorbXNnc3RyICJs5nMgJWNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjIwMworbXNnaWQgImJhZCByZXNwb25zZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1dWlkZCBkYWVtb24gYWxyZWFkeSBydW5uaW5nIGF0IHBpZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtIHNvY2tldDogJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgYmluZCB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiS3VubmUgaWtrZSDlYm5lICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsaXN0ZW4gb24gdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIkt1bm5lIGlra2Ug5WJuZSAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcmVhZGluZyBmcm9tIGNsaWVudCwgbGVuID0gJWRcbiIKK21zZ3N0ciAiRmVqbCB2ZWQgbOZzbmluZyBhZiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZXJhdGlvbiAlZCwgaW5jb21pbmcgbnVtID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEICVzIGFuZCAlZCBmb2xsb3dpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCAlZCBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBvcGVyYXRpb24gJWRcbiIKK21zZ3N0ciAidWd5bGRpZ3QgaWQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IHVneWxkaWcgduZyZGlcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUyNCBtaXNjLXV0aWxzL3V1aWRkLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjYWxsaW5nIHV1aWRkIGRhZW1vbiAoJXMpOiAlc1xuIgorbXNnc3RyICJmZWpsIHZlZCDmbmRyaW5nIGFmIGZpbHRpbHN0YW5kIGZvciAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCByZXBseSBsZW5ndGggZnJvbSBzZXJ2ZXIgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJLaWxsZWQgdXVpZGQgcnVubmluZyBhdCBwaWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRnZW4uYzozMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJCcnVnOiAlcyBbdGlsdmFsZ10gZW5oZWQgLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIG1hcHBlIC4uLiAtZiBdIG5hdm4uLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKKyMsIGZ1enp5Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAiaHVrb21tZWxzZXNhbGxva2VyaW5nIG1pc2x5a2tlZGVzIChtYWxsb2MpIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE1MAorIywgZnV6enkKK21zZ2lkICJzdHJkdXAgZmFpbGVkIgorbXNnc3RyICLFYm5pbmcgYWYgJXMgbWlzbHlra2VkZXMiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICIiCisiXG4iCisiRmVqbCB2ZWQgbHVrbmluZyBhZiBmaWxcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJEaXNrICVzIGluZGVob2xkZXIgaWtrZSBlbiBneWxkaWcgcGFydGl0aW9uc3RhYmVsXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gc2VlayB0byBvZmZzZXQgMHglangiCittc2dzdHIgIiVzOiBLdW5uZSBpa2tlIOVibmU6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IG1pc2x5a2tlZGVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlemQgYnl0ZXMgWyIKK21zZ3N0ciAiYnl0ZSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiXSBlcmFzZWQgYXQgb2Zmc2V0IDB4JWp4ICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI5MiBtb3VudC9zd2Fwb24uYzoxOTggbW91bnQvc3dhcG9uLmM6MjY2CisjOiBtb3VudC9zd2Fwb24uYzo0MTEgbW91bnQvc3dhcG9uLmM6NTcwIG1vdW50L3N3YXBvbi5jOjc3MgorIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IG1pc2x5a2tlZGVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiVWd5bGRpZyBzYXQgduZyZGk6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIkJydWc6ICVzIFt0aWx2YWxnXSBlbmhlZCAuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIKK21zZ3N0ciAiRmluZ2VyLWluZm9ybWF0aW9uZXIg5m5kcmV0LlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjM4NworbXNnaWQgIi0tb2Zmc2V0IGFuZCAtLWFsbCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IGNhbid0IGZpbmQgeW91ciB0dHkncyBuYW1lXG4iCittc2dzdHIgIndyaXRlOiBrdW5uZSBpa2tlIGZpbmRlIGRpbiB0dHkncyBuYXZuXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IHlvdSBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdHVybmVkIG9mZi5cbiIKK21zZ3N0ciAid3JpdGU6IGR1IGhhciBzbOVldCBza3JpdmVhZGdhbmcgZnJhLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluIG9uICVzLlxuIgorbXNnc3RyICJ3cml0ZTogJXMgZXIgaWtrZSBsb2dnZXQgaW5kIHDlICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGhhciBkZWFrdGl2ZXJldCBiZXNrZWRlciBw5SAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiB3cml0ZSB1c2VyIFt0dHldXG4iCittc2dzdHIgImJydWc6IHdyaXRlIGJydWdlciBbdHR5XVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlOiAlcyBlciBpa2tlIGxvZ2dldCBw5VxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGhhciBkZWFrdGl2ZXJldCBiZXNrZWRlclxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBsb2dnZWQgaW4gbW9yZSB0aGFuIG9uY2U7IHdyaXRpbmcgdG8gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGVyIGxvZ2dldCBw5SBmbGVyZSBnYW5nZTsgc2tyaXZlciB0aWwgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIkJlc2tlZCBmcmEgJXNAJXMgKHNvbSAlcykgcOUgJXMga2xva2tlbiAlcyAuLi4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiQmVza2VkIGZyYSAlc0AlcyBw5SAlcyBrbG9ra2VuICVzIC4uLiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgImFkdmFyc2VsOiBmZWpsIHZlZCBs5nNuaW5nIGFmICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzIgbW91bnQvZnN0YWIuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgImFkdmFyc2VsOiBrdW5uZSBpa2tlIOVibmUgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY291bGQgbm90IG9wZW4gJXMgLSB1c2luZyAlcyBpbnN0ZWFkXG4iCittc2dzdHIgIm1vdW50OiBrdW5uZSBpa2tlIOVibmUgJXMgLSBicnVnZXIgJXMgaSBzdGVkZXRcbiIKKworIzogbW91bnQvZnN0YWIuYzo1OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgY3JlYXRlIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAia3VubmUgaWtrZSBvcHJldHRlIGzlc2VmaWwgJXM6ICVzIChnZW5uZW10dmluZyBtZWQgZmxhZ2V0IC1uKSIKKworIzogbW91bnQvZnN0YWIuYzo2MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbGluayBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgImt1bm5lIGlra2UgbOZua2UgbOVzZWZpbGVuICVzOiAlcyAoZ2VubmVtdHZpbmcgbWVkIGZsYWdldCAtbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICJrdW5uZSBpa2tlIOVibmUgbOVzZWZpbGVuICVzOiAlcyAoZ2VubmVtdHZpbmcgbWVkIGZsYWdldCAtbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICJLdW5uZSBpa2tlIGzlc2UgbOVzZWZpbGVuICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXMiCittc2dzdHIgImt1bm5lIGlra2UgbOVzZSBs5XNlZmlsZW4gJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MworbXNnaWQgInRpbWVkIG91dCIKK21zZ3N0ciAidGlkc292ZXJs+GIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxpbmsgJXNcbiIKKyJQZXJoYXBzIHRoZXJlIGlzIGEgc3RhbGUgbG9jayBmaWxlP1xuIgorbXNnc3RyICIiCisiS3VubmUgaWtrZSBvcHJldHRlIGzmbmtlbiAlc1xuIgorIk3lc2tlIGVyIGRlciBlbiBlZnRlcmxhZHQgbOVzZWZpbD9cbiIKKworIzogbW91bnQvZnN0YWIuYzo3OTIgbW91bnQvZnN0YWIuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgKCVzKSAtIG10YWIgbm90IHVwZGF0ZWQiCittc2dzdHIgImt1bm5lIGlra2Ug5WJuZSAlcyAoJXMpIC0gbXRhYiBpa2tlIG9wZGF0ZXJldCIKKworIzogbW91bnQvZnN0YWIuYzo4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgImZlamwgdmVkIHNrcml2bmluZyBhZiAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODc0CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzXG4iCittc2dzdHIgImZlamwgdmVkIOZuZHJpbmcgYWYgZmlsdGlsc3RhbmQgZm9yICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iCittc2dzdHIgImZlamwgdmVkIOZuZHJpbmcgYWYgZmlsdGlsc3RhbmQgZm9yICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg5OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCByZW5hbWUgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgImt1bm5lIGlra2Ugb21k+GJlICVzIHRpbCAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgc2V0IGNhcGFjaXR5IG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDoga3VubmUgaWtrZSBm5SBvcGx5c25pbmdlciBvbSBlbmhlZGVuICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlPFBSSXU2ND4iCittc2dzdHIgIiwgZm9yc2t5ZG5pbmcgJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzozODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgc2l6ZWxpbWl0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBzdPhycmVsc2VzZ3LmbnNlICVsbGQiCisKKyM6IG1vdW50L2xvbW91bnQuYzozOTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiAlcyAodHlwZSAlPFBSSXUzMj4pIgorbXNnc3RyICIsIGtyeXB0ZXJpbmcgJXMgKHR5cGUgJWQpIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICVkIgorbXNnc3RyICIsIGZvcnNreWRuaW5nICVkIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiB0eXBlICVkXG4iCittc2dzdHIgIiwga3J5cHRlcmluZ3N0eXBlICVkXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBrdW5uZSBpa2tlIGblIG9wbHlzbmluZ2VyIG9tIGVuaGVkZW4gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgb3BlbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IGt1bm5lIGlra2Ug5WJuZSBlbmhlZGVuICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IC9kZXYgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LiIKK21zZ3N0ciAiJXM6IGJydWdlciBcIiVzXCIgZWtzaXN0ZXJlciBpa2tlLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiVzOiBoYXIgaWtrZSByZXR0aWdoZWRlciB0aWwgYXQga2lnZ2UgaSAvZGV2L2xvb3AjIgorCisjOiBtb3VudC9sb21vdW50LmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZnJlZSBsb29wIGRldmljZSIKK21zZ3N0ciAiJXM6IGt1bm5lIGlra2UgZmluZGUgbm9nZW4gbGVkaWcgbG9vcC1lbmhlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yIGBtb2Rwcm9iZSBsb29wJy4pIgorbXNnc3RyICIiCisiJXM6IEt1bm5lIGlra2UgZmluZGUgbm9nZW4gbG9vcC1lbmhlZC4gTeVza2Uga2VuZGVyIGRlbm5lIGtlcm5lIGlra2UgdGlsXG4iCisiICAgICAgIGxvb3AtZW5oZWRlcj8gKEkgc+UgZmFsZCwgZ2Vub3ZlcnPmdCBlbGxlciAnbW9kcHJvYmUgbG9vcC5vJy4pIgorCisjOiBtb3VudC9sb21vdW50LmM6NjM2CisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hpbGUgcmVhZGluZyBwYXNzcGhyYXNlIgorbXNnc3RyICJM+GIgdPhyIGZvciBodWtvbW1lbHNlIHVuZGVyIGZvcnN0+HJyaW5nIGFmIGJ1ZmZlci5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiU2VrdG9yICVkIGVyIGFsbGVyZWRlIGFsbG9rZXJldFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njk1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iCittc2dzdHIgIm1vdW50OiAlcyVzIGVyIHNrcml2ZWJlc2t5dHRldCwgbW9udGVyZXIgc2tyaXZlYmVza3l0dGV0IgorCisjOiBtb3VudC9sb21vdW50LmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iCittc2dzdHIgIkt1bm5lIGlra2UgbOVzZSBpbmQgaSBodWtvbW1lbHNlbiwgYWZzbHV0dGVyLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVsbHUpOiBseWtrZWRlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IGx5a2tlZGVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZGVsZXRlIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDoga3VubmUgaWtrZSBzbGV0dGUgZW5oZWRlbiAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIG1vdW50IHdhcyBjb21waWxlZCB3aXRob3V0IGxvb3Agc3VwcG9ydC4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiIgorIkRlbm5lICdtb3VudCcgZXIgb3ZlcnNhdCB1ZGVuIGxvb3AtdW5kZXJzdPh0dGVsc2UuIEdlbm92ZXJz5nQgdmVubGlnc3QuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyBsb29wX2RldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2l2ZSBpbmZvXG4iCisiICUxJHMgLWEgfCAtLWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgYWxsIHVzZWRcbiIKKyIgJTEkcyAtZCB8IC0tZGV0YWNoIDxsb29wZGV2PiBbPGxvb3BkZXY+IC4uLl0gZGVsZXRlXG4iCisiICUxJHMgLWYgfCAtLWZpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmQgdW51c2VkXG4iCisiICUxJHMgLWMgfCAtLXNldC1jYXBhY2l0eSA8bG9vcGRldj4gICAgICAgICAgIHJlc2l6ZVxuIgorIiAlMSRzIC1qIHwgLS1hc3NvY2lhdGVkIDxmaWxlPiBbLW8gPG51bT5dICAgICBsaXN0IGFsbCBhc3NvY2lhdGVkIHdpdGggIgorIjxmaWxlPlxuIgorIiAlMSRzIFsgb3B0aW9ucyBdIHstZnwtLWZpbmR8bG9vcGRldn0gPGZpbGU+ICBzZXR1cFxuIgorbXNnc3RyICIiCisiYnJ1ZzpcbiIKKyIgICVzIGxvb3BfZW5oZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHZpcyBpbmZvXG4iCisiICAlcyAtZCBsb29wX2VuaGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzbGV0XG4iCisiICAlcyAtZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmaW5kIHViZW55dHRldFxuIgorIiAgJXMgWyAtZSBrcnlwdGVyaW5nIF0gWyAtbyBmb3Jza3lkbmluZyBdIHstZnxsb29wX2VuaGVkfSBmaWwgIyBrbGFyZ/hyXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIDx0eXBlPiBlbmFibGUgZGF0YSBlbmNyeXB0aW9uIHdpdGggc3BlY2lmaWVkIDxuYW1lL251bT5cbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbyB8IC0tb2Zmc2V0IDxudW0+ICAgICAgc3RhcnQgYXQgb2Zmc2V0IDxudW0+IGludG8gZmlsZVxuIgorIiAgICAgIC0tc2l6ZWxpbWl0IDxudW0+ICAgbG9vcCBsaW1pdGVkIHRvIG9ubHkgPG51bT4gYnl0ZXMgb2YgdGhlIGZpbGVcbiIKKyIgLXAgfCAtLXBhc3MtZmQgPG51bT4gICAgIHJlYWQgcGFzc3BocmFzZSBmcm9tIGZpbGUgZGVzY3JpcHRvciA8bnVtPlxuIgorIiAtciB8IC0tcmVhZC1vbmx5ICAgICAgICAgc2V0dXAgcmVhZC1vbmx5IGxvb3AgZGV2aWNlXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICBwcmludCBkZXZpY2UgbmFtZSAod2l0aCAtZiA8ZmlsZT4pXG4iCisiIC12IHwgLS12ZXJib3NlICAgICAgICAgICB2ZXJib3NlIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTAzNCBtb3VudC9sb21vdW50LmM6MTA3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTG9vcCBkZXZpY2UgaXMgJXNcbiIKK21zZ3N0ciAibG9vcDoga3VubmUgaWtrZSDlYm5lIGVuaGVkZW4gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDYxCisjLCBjLWZvcm1hdAorbXNnaWQgInN0b2xlbiBsb29wPSVzLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogZGV2aWNlIGlzIGJ1c3kiCittc2dzdHIgInVtb3VudDogJXM6IGVuaGVkIG9wdGFnZXQiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDg4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGxvb3Agc3VwcG9ydCB3YXMgYXZhaWxhYmxlIGF0IGNvbXBpbGUgdGltZS4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiIgorIkRlciB2YXIgaW5nZW4gbG9vcC11bmRlcnN0+HR0ZWxzZSB0aWxn5m5nZWxpZyB2ZWQgb3ZlcnPmdHRlbHNlbi4gR2Vub3ZlcnPmdCAiCisidmVubGlnc3QuXG4iCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogaW1wcm9wZXJseSBxdW90ZWQgb3B0aW9uIHN0cmluZyAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdHJhbnNsYXRlZCAlcyAnJXMnIHRvICclcydcbiIKK21zZ3N0ciAibW91bnQ6IGt1bm5lIGlra2UgZmluZGUgJXMgaSAlcyBlbGxlciAlcyIKKworIzogbW91bnQvbW91bnQuYzo1MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMiCittc2dzdHIgIm1vdW50OiBpZvhsZ2UgbXRhYiBlciAlcyBhbGxlcmVkZSBtb250ZXJldCBzb20gJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IGlm+GxnZSBtdGFiIGVyICVzIG1vbnRlcmV0IHNvbSAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDoga3VubmUgaWtrZSDlYm5lICVzIGZvciBza3Jpdm5pbmc6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDogZmVqbCB2ZWQgc2tyaXZuaW5nIHRpbCAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGZlamwgdmVkIOZuZHJpbmcgYWYgZmlsdGlsc3RhbmQgZm9yICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGt1bm5lIGlra2Ugc+Z0dGUgaGFzdGlnaGVkZW46ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiBrdW5uZSBpa2tlIHPmdHRlIGhhc3RpZ2hlZGVuOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBrdW5uZSBpa2tlIGZvcmdyZW5lOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIkZvcnP4Z2VyICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIm1vdW50OiBkdSBhbmdhdiBpa2tlIGZpbHN5c3RlbXR5cGUgZm9yICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IGFsbCB0eXBlcyBtZW50aW9uZWQgaW4gJXMgb3IgJXNcbiIKK21zZ3N0ciAiICAgICAgIEplZyB2aWwgZm9yc/hnZSBhbGxlIHR5cGVybmUsIGRlciBu5nZuZXMgaSAlcyBlbGxlciAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgYW5kIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyBzd2Fwc3BhY2VcbiIKK21zZ3N0ciAiICAgICAgIG9nIGRldCBzZXIgdWQgdGlsLCBhdCBkZXR0ZSBlciBzd2Fwb21y5WRlXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIKK21zZ3N0ciAiICAgICAgIEplZyB2aWwgZm9yc/hnZSB0eXBlICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiCittc2dzdHIgIiVzIGxpZ25lciBldCBzd2FwLW9tcuVkZSAtIGlra2UgbW9udGVyZXQiCisKKyM6IG1vdW50L21vdW50LmM6MTAwMgorbXNnaWQgIm1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW9udGVyaW5nIG1pc2x5a2tlZGVzIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gbW91bnQgJXMgb24gJXMiCittc2dzdHIgIm1vdW50OiBrdW4gcm9vdCBrYW4gbW9udGVyZSAlcyBzb20gJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTA3NAorbXNnaWQgIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiBsb29wLWVuaGVkZW4gYW5naXZldCB0byBnYW5nZSIKKworIzogbW91bnQvbW91bnQuYzoxMDc5Cittc2dpZCAibW91bnQ6IHR5cGUgc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogdHlwZSBhbmdpdmV0IHRvIGdhbmdlIgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBkcm9wcGVyIG9wc+Z0bmluZyBhZiBsb29wLWVuaGVkXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICJtb3VudDogaWb4bGdlIG10YWIgZXIgJXMgYWxsZXJlZGUgbW9udGVyZXQgc29tICVzIgorCisjOiBtb3VudC9tb3VudC5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGdvaW5nIHRvIHVzZSB0aGUgbG9vcCBkZXZpY2UgJXNcbiIKK21zZ3N0ciAibW91bnQ6IHNrYWwgdGlsIGF0IGJlbnl0dGUgbG9vcC1lbmhlZGVuICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgInVtb3VudDogJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjExMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBrbGFyZ/hyaW5nIGFmIGxvb3AtZW5oZWQgbWlzbHlra2VkZXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzZXR1cCBsb29wIGRldmljZSBzdWNjZXNzZnVsbHlcbiIKK21zZ3N0ciAibW91bnQ6IGtsYXJn+HJpbmdlbiBhZiBsb29wLWVuaGVkIGx5a2tlZGVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gJXMgZm91bmQgLSBjcmVhdGluZyBpdC4uXG4iCittc2dzdHIgIm1vdW50OiBpbmdlbiAlcyBmdW5kZXQgLSBvcHJldHRlciBkZW4uLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjExOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICJtb3VudDoga3VubmUgaWtrZSDlYm5lICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMjE1Cittc2dpZCAibW91bnQ6IGFyZ3VtZW50IHRvIC1wIG9yIC0tcGFzcy1mZCBtdXN0IGJlIGEgbnVtYmVyIgorbXNnc3RyICJtb3VudDogYXJndW1lbnRldCB0aWwgLXAgZWxsZXIgLS1wYXNzLWZkIHNrYWwgduZyZSBldCB0YWwiCisKKyM6IG1vdW50L21vdW50LmM6MTIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG9wZW4gJXMgZm9yIHNldHRpbmcgc3BlZWQiCittc2dzdHIgIm1vdW50OiBrdW5uZSBpa2tlIOVibmUgJXMgZm9yIGF0IHPmdHRlIGhhc3RpZ2hlZGVuIgorCisjOiBtb3VudC9tb3VudC5jOjEyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgc3BlZWQ6ICVzIgorbXNnc3RyICJtb3VudDoga3VubmUgaWtrZSBz5nR0ZSBoYXN0aWdoZWRlbjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTMyMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IGlm+GxnZSBtdGFiIGVyICVzIGFsbGVyZWRlIG1vbnRlcmV0IHNvbSAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMzgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogd2FybmluZzogJXMgc2VlbXMgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlLlxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIG9wdGFnZXQgLSBnZW5tb250ZXJldCBza3JpdmViZXNreXR0ZXRcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDEzCittc2dpZCAiIgorIm1vdW50OiBJIGNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGZpbGVzeXN0ZW0gdHlwZSwgYW5kIG5vbmUgd2FzIHNwZWNpZmllZCIKK21zZ3N0ciAibW91bnQ6IEplZyBrdW5uZSBpa2tlIGJlc3RlbW1lIGZpbHN5c3RlbXR5cGVuLCBvZyBpbmdlbiB2YXIgYW5naXZldCIKKworIzogbW91bnQvbW91bnQuYzoxNDE2Cittc2dpZCAibW91bnQ6IHlvdSBtdXN0IHNwZWNpZnkgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAibW91bnQ6IGR1IHNrYWwgYW5naXZlIGZpbHN5c3RlbXR5cGVuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudDogbW9udGVyaW5nIG1pc2x5a2tlZGVzIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIm1vdW50OiBtb250ZXJpbmdzcHVua3QgJXMgZXIgaWtrZSBlbiBtYXBwZSIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJtb3VudDogYWRnYW5nIG7mZ3RldCIKKworIzogbW91bnQvbW91bnQuYzoxNDI5Cittc2dpZCAibW91bnQ6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVzZSBtb3VudCIKK21zZ3N0ciAibW91bnQ6IHNrYWwgduZyZSBzdXBlcmJydWdlciBmb3IgYXQgYnJ1Z2UgJ21vdW50JyIKKworIzogbW91bnQvbW91bnQuYzoxNDMzIG1vdW50L21vdW50LmM6MTQzNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIGVyIG9wdGFnZXQiCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IHByb2MgZXIgYWxsZXJlZGUgbW9udGVyZXQiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9yICVzIGJ1c3kiCittc2dzdHIgIm1vdW50OiBlbnRlbiBlciAlcyBhbGxlcmVkZSBtb250ZXJldCBlbGxlciAlcyBvcHRhZ2V0IgorCisjOiBtb3VudC9tb3VudC5jOjE0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogbW9udGVyaW5nc3B1bmt0ICVzIGVrc2lzdGVyZXIgaWtrZSIKKworIzogbW91bnQvbW91bnQuYzoxNDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBhIHN5bWJvbGljIGxpbmsgdG8gbm93aGVyZSIKK21zZ3N0ciAibW91bnQ6IG1vbnRlcmluZ3NwdW5rdCAlcyBlciBlbiBzeW1ib2xzayBs5m5rZSB1ZCBpIGluZ2VudGluZyIKKworIzogbW91bnQvbW91bnQuYzoxNDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6IHNwZWNpYWxlbmhlZCAlcyBla3Npc3RlcmVyIGlra2UiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorIm1vdW50OiBzcGVjaWFsZW5oZWQgJXMgZWtzaXN0ZXJlciBpa2tlXG4iCisiICAgICAgIChlbiBzdGkgZXIgaWtrZSBlbiBtYXBwZSlcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICJtb3VudDogJXMgaWtrZSBhbGxlcmVkZSBtb250ZXJldCwgZWxsZXIgZm9ya2VydCB0aWx2YWxnIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogd3JvbmcgZnMgdHlwZSwgYmFkIG9wdGlvbiwgYmFkIHN1cGVyYmxvY2sgb24gJXMsXG4iCisiICAgICAgIG1pc3NpbmcgY29kZXBhZ2Ugb3IgaGVscGVyIHByb2dyYW0sIG9yIG90aGVyIGVycm9yIgorbXNnc3RyICIiCisibW91bnQ6IGZvcmtlcnQgZmlsc3lzdGVtdHlwZSwgZm9ya2VydCB0aWx2YWxnLCB1Z3lsZGlnIHN1cGVyYmxvayBw5SAlcyxcbiIKKyIgICAgICAgbWFuZ2xlbmRlIHRlZ25z5nQgZWxsZXIgYW5kZW4gZmVqbCIKKworIzogbW91bnQvbW91bnQuYzoxNDg3Cittc2dpZCAiIgorIiAgICAgICAoZm9yIHNldmVyYWwgZmlsZXN5c3RlbXMgKGUuZy4gbmZzLCBjaWZzKSB5b3UgbWlnaHRcbiIKKyIgICAgICAgbmVlZCBhIC9zYmluL21vdW50Ljx0eXBlPiBoZWxwZXIgcHJvZ3JhbSkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDk2Cittc2dpZCAiIgorIiAgICAgICAoY291bGQgdGhpcyBiZSB0aGUgSURFIGRldmljZSB3aGVyZSB5b3UgaW4gZmFjdCB1c2VcbiIKKyIgICAgICAgaWRlLXNjc2kgc28gdGhhdCBzcjAgb3Igc2RhIG9yIHNvIGlzIG5lZWRlZD8pIgorbXNnc3RyICIiCisiICAgICAgIChrYW4gZGV0dGUgduZyZSBlbiBJREUtZW5oZWQsIGh2b3IgZHUgaSB2aXJrZWxpZ2hlZGVuIGJydWdlclxuIgorIiAgICAgICBpZGUtc2NzaSwgc+Ugc3IwLCBzZGEgZWxsZXIgbGlnbmVuZGUgZXIgcOVrcuZ2ZXQ/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTAxCittc2dpZCAiIgorIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorIiAgICAgICBpbnN0ZWFkIG9mIHNvbWUgbG9naWNhbCBwYXJ0aXRpb24gaW5zaWRlPykiCittc2dzdHIgIiIKKyIgICAgICAgKHBy+HZlciBkdSBpa2tlIHDlIGF0IG1vbnRlcmUgZW4gdWR2aWRldCBwYXJ0aXRpb24gaSBzdGVkZXRcbiIKKyIgICAgICAgZm9yIGVuIGxvZ2lzayBwYXJ0aXRpb24gaW5kZW5pPykiCisKKyM6IG1vdW50L21vdW50LmM6MTUwOAorbXNnaWQgIiIKKyIgICAgICAgSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBpcyBmb3VuZCBpbiBzeXNsb2cgLSB0cnlcbiIKKyIgICAgICAgZG1lc2cgfCB0YWlsICBvciBzb1xuIgorbXNnc3RyICIiCisiICAgICAgIEkgbm9nbGUgdGlsZuZsZGUgdmlsIGR1IGZpbmRlIG55dHRpZ2Ugb3BseXNuaW5nZXIgaSBzeXN0ZW1sb2dnZ2VuXG4iCisiICAgICAgIC0gcHL4diAnZG1lc2cgfCB0YWlsJyAgZWxsZXIgbGlnbmVuZGVcbiIKKworIzogbW91bnQvbW91bnQuYzoxNTE0Cittc2dpZCAibW91bnQgdGFibGUgZnVsbCIKK21zZ3N0ciAibW9udGVyaW5nc3RhYmVsbGVuIGVyIGZ1bGQiCisKKyM6IG1vdW50L21vdW50LmM6MTUxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IGNhbid0IHJlYWQgc3VwZXJibG9jayIKK21zZ3N0ciAibW91bnQ6ICVzOiBrdW5uZSBpa2tlIGzmc2Ugc3VwZXJibG9ra2VuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzOiB1a2VuZHQgZW5oZWQiCisKKyM6IG1vdW50L21vdW50LmM6MTUyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdW5rbm93biBmaWxlc3lzdGVtIHR5cGUgJyVzJyIKK21zZ3N0ciAibW91bnQ6IHVrZW5kdCBmaWxzeXN0ZW10eXBlJyVzJyIKKworIzogbW91bnQvbW91bnQuYzoxNTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBwcm9iYWJseSB5b3UgbWVhbnQgJXMiCittc2dzdHIgIm1vdW50OiBkdSBtZW50ZSBzaWtrZXJ0ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDIKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICdpc285NjYwJz8iCittc2dzdHIgIm1vdW50OiBt5XNrZSBtZW50ZSBkdSAnaXNvOTY2MCc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDUKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICd2ZmF0Jz8iCittc2dzdHIgIm1vdW50OiBt5XNrZSBtZW50ZSBkdSAndmZhdCc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyBoYXIgZm9ya2VydCBlbmhlZHNudW1tZXIgZWxsZXIgZmlsc3lzdGVtdHlwZW4gJXMgdW5kZXJzdPh0dGVzIGlra2UiCisKKyM6IG1vdW50L21vdW50LmM6MTU1NgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlLCBhbmQgc3RhdCBmYWlscz8iCittc2dzdHIgIm1vdW50OiAlcyBlciBpa2tlIGVuIGJsb2tlbmhlZCwgb2cgJ3N0YXQnIGZlamxlcj8iCisKKyM6IG1vdW50L21vdW50LmM6MTU1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorIm1vdW50OiBrZXJuZW4gZ2Vua2VuZGVyIGlra2UgJXMgc29tIGVuIGJsb2tlbmhlZFxuIgorIiAgICAgICAobeVza2UgaGrmbHBlciAnaW5zbW9kIGVuaGVkcy1kcml2ZXInPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIm1vdW50OiAlcyBlciBpa2tlIGVuIGJsb2tlbmhlZCAoYnJ1ZyBldmVudHVlbHQgJy1vIGxvb3AnPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgZXIgaWtrZSBlbiBibG9rZW5oZWQiCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgZXIgaWtrZSBlbiBneWxkaWcgYmxva2VuaGVkIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzIKK21zZ2lkICJibG9jayBkZXZpY2UgIgorbXNnc3RyICJibG9rZW5oZWQgIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIKK21zZ3N0ciAibW91bnQ6IGt1bm5lIGlra2UgbW9udGVyZSAlcyVzIHNrcml2ZWJlc2t5dHRldCIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICJtb3VudDogJXMlcyBlciBza3JpdmViZXNreXR0ZXQsIG1lbiBla3NwbGljaXQgJy13Jy10aWx2YWxnIGJsZXYgZ2l2ZXQiCisKKyM6IG1vdW50L21vdW50LmM6MTU4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCByZW1vdW50ICVzJXMgcmVhZC13cml0ZSwgaXMgd3JpdGUtcHJvdGVjdGVkIgorbXNnc3RyICJtb3VudDoga3VubmUgaWtrZSBtb250ZXJlICVzJXMgc2tyaXZlYmVza3l0dGV0IgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIGVyIHNrcml2ZWJlc2t5dHRldCwgbW9udGVyZXIgc2tyaXZlYmVza3l0dGV0IgorCisjOiBtb3VudC9tb3VudC5jOjE2MDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIm1vdW50OiBpbmdlbiAlcyBmdW5kZXQgLSBvcHJldHRlciBkZW4uLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjE2MTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMiCittc2dzdHIgIm1vdW50OiAlcyBlciBhbGxlcmVkZSBtb250ZXJldCBzb20gJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxNjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogJXMgZG9lcyBub3QgY29udGFpbiBTRUxpbnV4IGxhYmVscy5cbiIKKyIgICAgICAgWW91IGp1c3QgbW91bnRlZCBhbiBmaWxlIHN5c3RlbSB0aGF0IHN1cHBvcnRzIGxhYmVscyB3aGljaCBkb2VzIG5vdFxuIgorIiAgICAgICBjb250YWluIGxhYmVscywgb250byBhbiBTRUxpbnV4IGJveC4gSXQgaXMgbGlrZWx5IHRoYXQgY29uZmluZWRcbiIKKyIgICAgICAgYXBwbGljYXRpb25zIHdpbGwgZ2VuZXJhdGUgQVZDIG1lc3NhZ2VzIGFuZCBub3QgYmUgYWxsb3dlZCBhY2Nlc3MgdG9cbiIKKyIgICAgICAgdGhpcyBmaWxlIHN5c3RlbS4gIEZvciBtb3JlIGRldGFpbHMgc2VlIHJlc3RvcmVjb24oOCkgYW5kIG1vdW50KDgpLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTcxMAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiB0aGUgY29sb25cbiIKK21zZ3N0ciAibW91bnQ6IGluZ2VuIHR5cGUgYmxldiBhbmdpdmUgLSBKZWcgYW50YWdlciBuZnMgcOUgZ3J1bmQgYWYga29sb25uZXRcbiIKKworIzogbW91bnQvbW91bnQuYzoxNzE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICIiCisibW91bnQ6IGluZ2VuIHR5cGUgYmxldiBhbmdpdmV0IC0gSmVnIGFudGFnZXIgc21iZnMgcC5nLmEuIGRldCAiCisiZm9yYW5zdGlsbGVkZSAvL1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICJtb3VudDogJXMgZXIgYWxsZXJlZGUgbW9udGVyZXQgc29tICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiBtb3VudCAtViAgICAgICAgICAgICAgICAgOiBwcmludCB2ZXJzaW9uXG4iCisiICAgICAgIG1vdW50IC1oICAgICAgICAgICAgICAgICA6IHByaW50IHRoaXMgaGVscFxuIgorIiAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgOiBsaXN0IG1vdW50ZWQgZmlsZXN5c3RlbXNcbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDogaWRlbSwgaW5jbHVkaW5nIHZvbHVtZSBsYWJlbHNcbiIKKyJTbyBmYXIgdGhlIGluZm9ybWF0aW9uYWwgcGFydC4gTmV4dCB0aGUgbW91bnRpbmcuXG4iCisiVGhlIGNvbW1hbmQgaXMgYG1vdW50IFstdCBmc3R5cGVdIHNvbWV0aGluZyBzb21ld2hlcmUnLlxuIgorIkRldGFpbHMgZm91bmQgaW4gL2V0Yy9mc3RhYiBtYXkgYmUgb21pdHRlZC5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDogbW91bnQgYWxsIHN0dWZmIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAgICAgICBtb3VudCBkZXZpY2UgICAgICAgICAgICAgOiBtb3VudCBkZXZpY2UgYXQgdGhlIGtub3duIHBsYWNlXG4iCisiICAgICAgIG1vdW50IGRpcmVjdG9yeSAgICAgICAgICA6IG1vdW50IGtub3duIGRldmljZSBoZXJlXG4iCisiICAgICAgIG1vdW50IC10IHR5cGUgZGV2IGRpciAgICA6IG9yZGluYXJ5IG1vdW50IGNvbW1hbmRcbiIKKyJOb3RlIHRoYXQgb25lIGRvZXMgbm90IHJlYWxseSBtb3VudCBhIGRldmljZSwgb25lIG1vdW50c1xuIgorImEgZmlsZXN5c3RlbSAob2YgdGhlIGdpdmVuIHR5cGUpIGZvdW5kIG9uIHRoZSBkZXZpY2UuXG4iCisiT25lIGNhbiBhbHNvIG1vdW50IGFuIGFscmVhZHkgdmlzaWJsZSBkaXJlY3RvcnkgdHJlZSBlbHNld2hlcmU6XG4iCisiICAgICAgIG1vdW50IC0tYmluZCBvbGRkaXIgbmV3ZGlyXG4iCisib3IgbW92ZSBhIHN1YnRyZWU6XG4iCisiICAgICAgIG1vdW50IC0tbW92ZSBvbGRkaXIgbmV3ZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgbW91bnQgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXVuYmluZGFibGUgZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgYWxsIHRoZSBtb3VudHMgaW4gYSBtb3VudCBzdWJ0cmVlXG4iCisiY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ycHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJ1bmJpbmRhYmxlIGRpclxuIgorIkEgZGV2aWNlIGNhbiBiZSBnaXZlbiBieSBuYW1lLCBzYXkgL2Rldi9oZGExIG9yIC9kZXYvY2Ryb20sXG4iCisib3IgYnkgbGFiZWwsIHVzaW5nICAtTCBsYWJlbCAgb3IgYnkgdXVpZCwgdXNpbmcgIC1VIHV1aWQgLlxuIgorIk90aGVyIG9wdGlvbnM6IFstbmZGcnN2d10gWy1vIG9wdGlvbnNdIFstcCBwYXNzd2RmZF0uXG4iCisiRm9yIG1hbnkgbW9yZSBkZXRhaWxzLCBzYXkgIG1hbiA4IG1vdW50IC5cbiIKK21zZ3N0ciAiIgorIkJydWc6ICBtb3VudCAtViAgICAgICAgICAgICAgICAgOiB2aXMgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiB2aXMgZGVubmUgaGrmbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogdmlzIG1vbnRlcmVkZSBmaWxzeXN0ZW1lclxuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBkZXQgc2FtbWUsIGluY2wuIG3mcmthdGVyXG4iCisiVGlsdmFsZ2VuZSBvdmVuZm9yIGdpdmVyIG9wbHlzbmluZ2VyLiBEZSBu5nN0ZSB2ZWRy+HJlciBtb250ZXJpbmcuXG4iCisiS29tbWFuZG9lbiBseWRlciAnbW91bnQgWy10IGZzdHlwZV0gbm9nZXQgc3RlZCcuXG4iCisiRGV0YWxqZXIsIGRlciBzdOVyIGkgL2V0Yy9mc3RhYiwga2FuIHVkZWxhZGVzLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dICAgICAgICAgOiBtb2506XIgYWx0LCBkZXIgYmVza3JpdmVzIGkgL2V0Yy9mc3RhYlxuIgorIiAgICAgICBtb3VudCBlbmhlZCAgICAgICAgICAgICAgOiBtb2506XIgZW5oZWQgcOUgZGV0cyBzdGFuZGFyZHBsYWRzXG4iCisiICAgICAgIG1vdW50IG1hcHBlICAgICAgICAgICAgICA6IG1vbnTpciBlbmhlZGVuLCB0aWxo+HJlbmRlIG1hcHBlXG4iCisiICAgICAgIG1vdW50IC10IHR5cGUgZW5oIG1hcHBlICA6IGFsbWluZGVsaWcgbW91bnQta29tbWFuZG9cbiIKKyJCZW3mcmsgYXQgbWFuIGkgdmlya2VsaWdoZWRlbiBpa2tlIG1vbnRlcmVyIGVuIGVuaGVkLiBNYW4gbW9udGVyZXJcbiIKKyJkZXQgZmlsc3lzdGVtIChhZiBlbiBnaXZlbiB0eXBlKSwgc29tIGZpbmRlcyBw5SBlbmhlZGVuLlxuIgorIk1hbiBrYW4gZ29kdCBtb250ZXJlIGVuIGFsbGVyZWRlIHN5bmxpZyBtYXBwZSBldCBhbmRldCBzdGVkOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgZ2xtYXBwZSBueW1hcHBlXG4iCisiZWxsZXIgZmx5dCBldCB1bmRlcnRy5jpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIGdsbWFwcGUgbnltYXBwZVxuIgorIkVuIGVuaGVkIGthbiBhbmdpdmVzIHZlZCBuYXZuLCBmLmVrcy4gL2Rldi9oZGExIGVsbGVyIC9kZXYvY2Ryb20sXG4iCisiZWxsZXIgdmVkIG3mcmthdCBtZWQgLUwgbeZya2F0LCBlbGxlciB2ZWQgdXVpZCBtZWQgLVUgdXVpZCAuXG4iCisiQW5kcmUgdGlsdmFsZzogWy1uZkZyc3Z3XSBbLW8gdGlsdmFsZ10gWy1wIGFkZ2FuZ3Nrb2RlZmRdLlxuIgorInNlIG1hbmdlIGZsZXJlIGRldGFsamVyIG1lZCAnbWFuIDggbW91bnQnLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjIyNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQgKGVmZmVjdGl2ZSBVSUQgaXMgJWQpIgorbXNnc3RyICJtb3VudDogZGV0dGUga2FuIGt1biByb290IGf4cmUiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIm1vdW50OiBkZXR0ZSBrYW4ga3VuIHJvb3QgZ/hyZSIKKworIzogbW91bnQvbW91bnQuYzoyMjg4Cittc2dpZCAibm90aGluZyB3YXMgbW91bnRlZCIKK21zZ3N0ciAiaW50ZXQgYmxldiBtb250ZXJldCIKKworIzogbW91bnQvbW91bnQuYzoyMzA2IG1vdW50L21vdW50LmM6MjMzMgorbXNnaWQgIm1vdW50OiBubyBzdWNoIHBhcnRpdGlvbiBmb3VuZCIKK21zZ3N0ciAibW91bnQ6IGZhbmR0IGluZ2VuIHPlZGFuIHBhcnRpdGlvbiIKKworIzogbW91bnQvbW91bnQuYzoyMzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBmaW5kICVzIGluICVzIG9yICVzIgorbXNnc3RyICJtb3VudDoga3VubmUgaWtrZSBmaW5kZSAlcyBpICVzIGVsbGVyICVzIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IHdhcm5pbmc6IG5vIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiAlc1xuIgorbXNnc3RyICIiCisiW21udGVudF06IGFkdmFyc2VsOiBpbnRldCBhZnNsdXR0ZW5kZSBsaW5qZXNraWZ0IHZlZCBzbHV0bmluZ2VuIGFmICVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogbGluZSAlZCBpbiAlcyBpcyBiYWQlc1xuIgorbXNnc3RyICJbbW50ZW50XTogbGluamUgJWQgaSAlcyBlciB1Z3lsZGlnJXNcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE5Cittc2dpZCAiOyByZXN0IG9mIGZpbGUgaWdub3JlZCIKK21zZ3N0ciAiOyByZXN0ZW4gYWYgZmlsZW4gYmxldiBpZ25vcmVyZXQiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAicHJvZ3JhbWZlamwgaSB4c3RybmR1cC1rYWxkIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgImlra2Ugbm9rIGh1a29tbWVsc2UiCisKKyM6IG1vdW50L3N3YXBvbi5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgPHNwZWNpYWw+IHBhcmFtZXRlcjpcbiIKKyIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxmaWxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGZpbGUgdG8gYmUgdXNlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCBwcmlvcml0eV0gWy12XSBbLWZdIDxzcGVjaWFsPiAgZW5hYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjEwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBzd2Fwc1xuIgorIiAlMSRzIFstdl0gPHNwZWNpYWw+ICAgICAgICAgICAgICAgZGlzYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiVzOiBVdmVudGV0IGZpbGFmc2x1dG5pbmcgaSAlcy1maWxcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWluaXRpYWxpemluZyB0aGUgc3dhcC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICJmb3JncmVuaW5nIG1pc2x5a2tlZGVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIzOQorIywgZnV6enkKK21zZ2lkICJleGVjdiBmYWlsZWQiCittc2dzdHIgInByb2dyYW1r+HJzZWwgbWlzbHlra2VkZXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjQ3CisjLCBmdXp6eQorbXNnaWQgIndhaXRwaWQgZmFpbGVkIgorbXNnc3RyICJzZXR1aWQoKSBtaXNseWtrZWRlcyIKKworIzogbW91bnQvc3dhcG9uLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbHNlZWsgZmFpbGVkIgorbXNnc3RyICJz+GduaW5nIGZlamxlZGUiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgIsVibmluZyBhZiAlcyBtaXNseWtrZWRlcyIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKKyMsIGZ1enp5Cittc2dpZCAic2FtZSIKK21zZ3N0ciAiTmF2biIKKworIzogbW91bnQvc3dhcG9uLmM6Mzg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgInP4Z25pbmcgZmVqbGVkZSIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaW5zZWN1cmUgcGVybWlzc2lvbnMgJTA0bywgJTA0byBzdWdnZXN0ZWQuIgorbXNnc3RyICIlczogYWR2YXJzZWw6ICVzIGhhciB1c2lrcmUgZmlscmV0dGlnaGVkZXIgJTA0bywgJTA0byBhbmJlZmFsZXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgLSBpdCBhcHBlYXJzIHRvIGhhdmUgaG9sZXMuIgorbXNnc3RyICIlczogRHJvcHBlciBmaWxlbiAlcyAtIGRlbiBsYWRlciB0aWwgYXQgduZyZSBmcmFnbWVudGVyZXQuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAic/hnbmluZyBmZWpsZWRlIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgc3dhcCBoZWFkZXIgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbGFzdF9wYWdlIDB4JTA4bGx4IGlzIGxhcmdlciB0aGFuIGFjdHVhbCBzaXplIG9mIHN3YXBzcGFjZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4gKFVzZSAtLWZpeHBnc3ogdG8gcmVpbml0aWFsaXplIGl0LikiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuIFJld3JpdGluZyB0aGUgc3dhcCBzaWduYXR1cmUuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ3OCBtb3VudC9zd2Fwb24uYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgb24gJXNcbiIKK21zZ3N0ciAiJXMgcOUgJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9uIGZhaWxlZCIKK21zZ3N0ciAiZm9yZ3JlbmluZyBtaXNseWtrZWRlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmaW5kIHRoZSBkZXZpY2UgZm9yICVzIgorbXNnc3RyICIlczoga3VubmUgaWtrZSBmaW5kZSBlbmhlZGVuIGZvciAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDAKKyMsIGZ1enp5Cittc2dpZCAiTm90IHN1cGVydXNlci4iCittc2dzdHIgIklra2Ugc3VwZXJicnVnZXIuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvZmYgZmFpbGVkIgorbXNnc3RyICJmb3JncmVuaW5nIG1pc2x5a2tlZGVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIHVuc3VwcG9ydGVkIHByb2dyYW0gbmFtZSAobXVzdCBiZSAnc3dhcG9uJyBvciAnc3dhcG9mZicpLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgLWZcbiIKK21zZ3N0ciAidW1vdW50OiBvdmVyc2F0IHVkZW4gdW5kZXJzdPh0dGVsc2UgYWYgdGlsdmFsZ2V0IC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGt1bm5lIGlra2Ugc+Z0dGUgaGFzdGlnaGVkZW46ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGt1bm5lIGlra2Ugc+Z0dGUgaGFzdGlnaGVkZW46ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgInVtb3VudDoga3VubmUgaWtrZSBmb3JncmVuZTogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlczogdWd5bGRpZyBibG9rZW5oZWQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIKK21zZ3N0ciAidW1vdW50OiAlczogaWtrZSBtb250ZXJldCIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgInVtb3VudDogJXM6IGt1bm5lIGlra2Ugc2tyaXZlIHN1cGVyYmxvayIKKworIzogbW91bnQvdW1vdW50LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1bW91bnQ6ICVzOiBkZXZpY2UgaXMgYnVzeS5cbiIKKyIgICAgICAgIChJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGFib3V0IHByb2Nlc3NlcyB0aGF0IHVzZVxuIgorIiAgICAgICAgIHRoZSBkZXZpY2UgaXMgZm91bmQgYnkgbHNvZig4KSBvciBmdXNlcigxKSkiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAidW1vdW50OiAlczogaWtrZSBmdW5kZXQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBtdXN0IGJlIHN1cGVydXNlciB0byB1bW91bnQiCittc2dzdHIgInVtb3VudDogJXM6IHNrYWwgduZyZSBzdXBlcmJydWdlciBmb3IgYXQgYWZtb250ZXJlIgorCisjOiBtb3VudC91bW91bnQuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogYmxvY2sgZGV2aWNlcyBub3QgcGVybWl0dGVkIG9uIGZzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBibG9rZW5oZWRlciB0aWxsYWRlcyBpa2tlIHDlIGRldHRlIGZzIgorCisjOiBtb3VudC91bW91bnQuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogJXMiCittc2dzdHIgInVtb3VudDogJXM6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdW1vdW50MiwgdHJ5aW5nIHVtb3VudC4uLlxuIgorbXNnc3RyICJpbmdlbiB1bW91bnQyLCBmb3Jz+GdlciB1bW91bnQuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6MjUyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgYnVzeSAtIHJlbW91bnRlZCByZWFkLW9ubHlcbiIKK21zZ3N0ciAidW1vdW50OiAlcyBvcHRhZ2V0IC0gZ2VubW9udGVyZXQgc2tyaXZlYmVza3l0dGV0XG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvdWxkIG5vdCByZW1vdW50ICVzIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6IGt1bm5lIGlra2UgbW9udGVyZSAlcyBza3JpdmViZXNreXR0ZXRcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiVzIGFmbW9udGVyZXRcbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgIiIKKyJ1bW91bnQ6IGt1bm5lIGlra2UgZmluZGUgbGlzdGVuIG92ZXIgZmlsc3lzdGVtZXIsIGRlciBza3VsbGUgYWZtb250ZXJlcyIKKworIzogbW91bnQvdW1vdW50LmM6Mzk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisiQnJ1ZzogdW1vdW50IFstaFZdXG4iCisiICAgICAgdW1vdW50IC1hIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVyXSBbLU8gdGlsdmFsZ11cbiIKKyIgICAgICB1bW91bnQgWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWVsIHwga251ZGUuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIlNla3RvciAlZCBlciBhbGxlcmVkZSBhbGxva2VyZXRcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJTZWt0b3IgJWQgZXIgYWxsZXJlZGUgYWxsb2tlcmV0XG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ4NworbXNnaWQgIkNhbm5vdCB1bW91bnQgXCJcIlxuIgorbXNnc3RyICJLYW4gaWtrZSBhZm1vbnRlcmUgXCJcIlxuIgorCisjOiBtb3VudC91bW91bnQuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIHVtb3VudCAlc1xuIgorbXNnc3RyICJGb3Jz+GdlciBhdCBhZm1vbnRlcmUgJXNcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCB1bW91bnQgJXMgLS0gJXMgaXMgbW91bnRlZCBvdmVyIGl0IG9uIHRoZSBzYW1lIHBvaW50LiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgJXMgaW4gbXRhYlxuIgorbXNnc3RyICJLdW5uZSBpa2tlIGZpbmRlICVzIGkgbXRhYlxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6ICVzIGVyIGlra2UgbW9udGVyZXQgKGlm+GxnZSBtdGFiKSIKKworIzogbW91bnQvdW1vdW50LmM6NTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogaXQgc2VlbXMgJXMgaXMgbW91bnRlZCBtdWx0aXBsZSB0aW1lcyIKK21zZ3N0ciAidW1vdW50OiBkZXQgbGFkZXIgdGlsLCBhdCAlcyBlciBtb250ZXJldCBmbGVyZSBnYW5nZSIKKworIzogbW91bnQvdW1vdW50LmM6NTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAoYW5kIHlvdSBhcmUgbm90IHJvb3QpIgorbXNnc3RyICJ1bW91bnQ6ICVzIGVyIGlra2UgaSBmc3RhYiAob2cgZHUgZXIgaWtrZSByb290KSIKKworIzogbW91bnQvdW1vdW50LmM6NTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgbW91bnQgZGlzYWdyZWVzIHdpdGggdGhlIGZzdGFiIgorbXNnc3RyICJ1bW91bnQ6ICVzIG1vbnRlcmluZyBzdGVtbWVyIGlra2UgbWVkIGZzdGFiIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBvbmx5ICVzIGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCittc2dzdHIgInVtb3VudDoga3VuICVzIGthbiBhZm1vbnRlcmUgJXMgZnJhICVzIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAidW1vdW50OiBkZXR0ZSBrYW4ga3VuIHJvb3QgZ/hyZSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImNocnQgLSBtYW5pcHVsYXRlIHJlYWwtdGltZSBhdHRyaWJ1dGVzIG9mIGEgcHJvY2Vzcy5cbiIKKyJcbiIKKyJTZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gPHBvbGljeT4gPHByaW9yaXR5PiB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiR2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJcbiIKKyJTY2hlZHVsaW5nIHBvbGljaWVzOlxuIgorIiAgLWIgfCAtLWJhdGNoICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9CQVRDSFxuIgorIiAgLWYgfCAtLWZpZm8gICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9GSUZPXG4iCisiICAtaSB8IC0taWRsZSAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0lETEVcbiIKKyIgIC1vIHwgLS1vdGhlciAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfT1RIRVJcbiIKKyIgIC1yIHwgLS1yciAgICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfUlIgKGRlZmF1bHQpXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwXG4iCisiICAtcCB8IC0tcGlkICAgICAgICAgICBvcGVyYXRlIG9uIGV4aXN0aW5nIGdpdmVuIHBpZFxuIgorIiAgLW0gfCAtLW1heCAgICAgICAgICAgc2hvdyBtaW4gYW5kIG1heCB2YWxpZCBwcmlvcml0aWVzXG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgICBkaXNwbGF5IHN0YXR1cyBpbmZvcm1hdGlvblxuIgorIiAgLVYgfCAtLXZlcnNpb24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIk1pc2x5a2tldCBza3Jpdm5pbmcgYWYgcGFydGl0aW9uIHDlICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgInVrZW5kdCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwcmlvcml0eTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbm90IHN1cHBvcnRlZD9cbiIKK21zZ3N0ciAiTkZTIHZpYSBUQ1AgdW5kZXJzdPh0dGVzIGlra2UuXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICIlczogS3VubmUgaWtrZSDlYm5lOiAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMjUKKyMsIGZ1enp5Cittc2dpZCAiY3VycmVudCIKK21zZ3N0ciAibmFudGFsIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzMKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHByaW9yaXR5IgorbXNnc3RyICJNaXNseWtrZXQgc2tyaXZuaW5nIGFmIHBhcnRpdGlvbiBw5SAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJNaXNseWtrZXQgc2tyaXZuaW5nIGFmIHBhcnRpdGlvbiBw5SAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyNDIKKyMsIGZ1enp5Cittc2dpZCAibmV3IgorbXNnc3RyICJOeSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBrdW5uZSBpa2tlIGFmbOZzZSB0aWRlbiBmcmEgJXMiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NTcKKyMsIGZ1enp5Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgbWlzbHlra2VkZXNcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorIywgZnV6enkKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBtaXNseWtrZWRlc1xuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICJrdW5uZSBpa2tlIOVibmUgJXMiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTUxCittc2dpZCAiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3Igbm9uZSBjbGFzcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1OQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIGlkbGUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHByaW8gY2xhc3MgJWQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxODcKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3ZwIGZhaWxlZCIKK21zZ3N0ciAicHJvZ3JhbWv4cnNlbCBtaXNseWtrZWRlc1xuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICJEdSBza2FsIHbmcmUgcm9vdCBmb3IgYXQgc+Z0dGUgQ3RybC1BbHQtRGVsLW9wZvhyc2xlbi5cbiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzo0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKK21zZ3N0ciAiQnJ1ZzogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjExNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyBpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKyJGaWxlbiAlcywgRm9yIGdy5m5zZXbmcmRpICVsdSwgTWFrc2ltYWxlIGFudGFsIHRlZ24gaSBmaWZvIHZhciAlZCxcbiIKKyJvZyBkZW4gbWFrc2ltYWxlIG92ZXJm+HJzZWxzaGFzdGlnaGVkIHZhciAlZiB0ZWduL3Nla3VuZFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSBhbmQgdGltcm91dCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyAiCisiaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiRmlsZW4gJXMsIEZvciBncuZuc2V25nJkaSAlbHUgb2cgdGlkc292ZXJs+GJzduZyZGkgJWx1LCBNYWtzaW1hbGUgYW50YWwgdGVnbiAiCisiaSBmaWZvIHZhciAlZCxcbiIKKyJvZyBkZW4gbWFrc2ltYWxlIG92ZXJm+HJzZWxzaGFzdGlnaGVkIHZhciAlZiB0ZWduL3Nla3VuZFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIlVneWxkaWcgaW50ZXJ2YWx25nJkaTogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVWd5bGRpZyBzYXQgduZyZGk6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJVZ3lsZGlnIHN0YW5kYXJkduZyZGk6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVWd5bGRpZyBzYXQgdGlkc3bmcmRpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJVZ3lsZGlnIHN0YW5kYXJkIHRpZHN25nJkaTogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstcSBbLWkgaW50ZXJ2YWxdXSAoWy1zIHZhbHVlXXxbLVMgdmFsdWVdKSAoWy10IHZhbHVlXXxbLVQgdmFsdWVdKSAiCisiWy1nfC1HXSBmaWxlIFtmaWxlLi4uXVxuIgorbXNnc3RyICIiCisiQnJ1ZzogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgduZyZGldfFstUyB25nJkaV0pIChbLXQgduZyZGldfFstVCB25nJkaV0pICIKKyJbLWd8LUddIGZpbCBbZmlsLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjUwIHN5cy11dGlscy9jeXR1bmUuYzoyNjkgc3lzLXV0aWxzL2N5dHVuZS5jOjI4OQorIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJLdW5uZSBpa2tlIOVibmUgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiS3VubmUgaWtrZSBz5nR0ZSAlcyB0aWwgZ3LmbnNlbiAlZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGltZSB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIkt1bm5lIGlra2Ugc+Z0dGUgJXMgdGlsIHRpZHNncuZuc2VuICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjk0IHN5cy11dGlscy9jeXR1bmUuYzozNTEgc3lzLXV0aWxzL2N5dHVuZS5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGhyZXNob2xkIGZvciAlczogJXNcbiIKK21zZ3N0ciAiS3VubmUgaWtrZSBm5SBncuZuc2VuIGZvciAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwMCBzeXMtdXRpbHMvY3l0dW5lLmM6MzU3IHN5cy11dGlscy9jeXR1bmUuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRpbWVvdXQgZm9yICVzOiAlc1xuIgorbXNnc3RyICJLdW5uZSBpa2tlIGblIHRpZHNvdmVybPhiZXQgZm9yICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3VycmVudCB0aHJlc2hvbGQgYW5kICVsZCBjdXJyZW50IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6ICVsZCBha3R1ZWxsZSBncuZuc2Ugb2cgJWxkIGFrdHVlbGxlIHRpZHNvdmVybPhiXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIHN0YW5kYXJkIGdy5m5zZSBvZyAlbGQgc3RhbmRhcmQgdGlkc292ZXJs+GJcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMyNworbXNnaWQgIkNhbid0IHNldCBzaWduYWwgaGFuZGxlciIKK21zZ3N0ciAiS3VubmUgaWtrZSBz5nR0ZSBzaWduYWxo5W5kdGVyaW5nZW4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzEgc3lzLXV0aWxzL2N5dHVuZS5jOjM2NgorbXNnaWQgImdldHRpbWVvZmRheSBmYWlsZWQiCittc2dzdHIgImdldHRpbWVvZmRheSAoYWZs5nNuaW5nIGFmIHVyKSBtaXNseWtrZWRlcyIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjM0NCBzeXMtdXRpbHMvY3l0dW5lLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGlzc3VlIENZR0VUTU9OIG9uICVzOiAlc1xuIgorbXNnc3RyICJLdW5uZSBpa2tlIHVkZvhyZSBDWUdFVE1PTiBw5SAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorIiVzOiAlbHUgaHRhbCwgJWx1LyVsdSB0ZWduOyBmaWZvOiAlbHUgZ3LmbnNlLCAlbHUgdC1vdmwsICVsdSBtYWtzLCAlbHUgbnVcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiB0YWwvc2VrOyAlZiBmbHQsICVmIHNlbmQgKHRlZ24vc2VrKVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IGh0YWwsICVsdSB0ZWduOyBmaWZvOiAlbHUgZ3LmbnNlLCAlbHUgdC1vdmwsICVsdSBtYWtzLCAlbHUgbnVcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiB0YWwvc2VrOyAlZiBmbHQgKHRlZ24vc2VrKVxuIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJCcnVnOiAlcyBbLWNdIFstbiBsZXZlbF0gWy1zIGJ1ZnN0ci5dXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGZpbGVuYW1lPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIkJydWc6ICVzIFt0aWx2YWxnXSBlbmhlZCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgZmFsbG9jYXRlKDEpLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDcKKyMsIGZ1enp5Cittc2dpZCAibm8gbGVuZ3RoIGFyZ3VtZW50IHNwZWNpZmllZCIKK21zZ3N0ciAiRm9yIG1hbmdlIHBhcmFtZXRyZS5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0OQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGxlbmd0aCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlVneWxkaWcgc2F0IHbmcmRpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgb2Zmc2V0IHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiVWd5bGRpZyBzYXQgduZyZGk6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKKyMsIGZ1enp5Cittc2dpZCAibm8gZmlsZW5hbWUgc3BlY2lmaWVkLiIKK21zZ3N0ciAiSW50ZXQgLS1kYXRlIHRpbHZhbGcgYW5naXZldC5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3MworbXNnaWQgImtlZXAgc2l6ZSBtb2RlICgtbiBvcHRpb24pIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWxsb2NhdGUgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IG1pc2x5a2tlZGVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MTkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgcmVxdWlyZXMgZXhhY3RseSBvbmUgY29tbWFuZCBhcmd1bWVudFxuIgorbXNnc3RyICIlcyBrcuZ2ZXIgZW4gcGFyYW1ldGVyXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IGt1bm5lIGlra2Ug5WJuZSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IHVneWxkaWcgduZyZGlcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZXF1aXJlcyBmaWxlIGRlc2NyaXB0b3IsIGZpbGUgb3IgZGlyZWN0b3J5XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6Mjk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZm9yayBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImZvcmdyZW5pbmcgbWlzbHlra2VkZXNcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdXG4iCisiXG4iCittc2dzdHIgIkJydWc6ICVzIFt0aWx2YWxnXSBlbmhlZCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLU0gPHNpemU+ICAgICBjcmVhdGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IG9mIHNpemUgPHNpemU+XG4iCisiICAtUyA8bnNlbXM+ICAgIGNyZWF0ZSBzZW1hcGhvcmUgYXJyYXkgd2l0aCA8bnNlbXM+IGVsZW1lbnRzXG4iCisiICAtUSAgICAgICAgICAgIGNyZWF0ZSBtZXNzYWdlIHF1ZXVlXG4iCisiICAtcCA8bW9kZT4gICAgIHBlcm1pc3Npb24gZm9yIHRoZSByZXNvdXJjZSAoZGVmYXVsdCBpcyAwNjQ0KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaXBjbWsoMSkuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQyCittc2dpZCAiY3JlYXRlIHNoYXJlIG1lbW9yeSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaGFyZWQgbWVtb3J5IGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisiRGVsdCBodWtvbW1lbHNlc3NlZ21lbnQgZGhzaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUwCittc2dpZCAiY3JlYXRlIG1lc3NhZ2UgcXVldWUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBxdWV1ZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIkJlc2tlZGv4IGJr+GlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1OAorIywgZnV6enkKK21zZ2lkICJjcmVhdGUgc2VtYXBob3JlIGZhaWxlZCIKK21zZ3N0ciAiYWxsb2tlcmVkZSBzZW1hZm9yZXIgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlbWFmb3J0YWJlbCBzZW1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo2NAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkOiAlc1xuIgorbXNnc3RyICJ1Z3lsZGlndCBpZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlbW92ZSBpZCAlcyAoJXMpXG4iCittc2dzdHIgImt1bm5lIGlra2UgZmplcm5lIGlkICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVwcmVjYXRlZCB1c2FnZTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCittc2dzdHIgImZvcuZsZGV0IGJydWc6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93biByZXNvdXJjZSB0eXBlOiAlc1xuIgorbXNnc3RyICJ1a2VuZHQgcmVzc291cmNldHlwZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzb3VyY2UocykgZGVsZXRlZFxuIgorbXNnc3RyICJyZXNzb3VyY2Uocikgc2xldHRldFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCittc2dzdHIgIiIKKyJicnVnOiAlcyBbIFstcSBiZXNra/hpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgWy1RIGJla3Nu+GdsZV0gWy1NIHNobW74Z2xlXSBbLVMgc2VtbvhnbGVdIC4uLiBdXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiJXM6IHVneWxkaWd0IHRpbHZhbGcgLS0gJWNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGtleSAoJXMpXG4iCittc2dzdHIgIiVzOiB1Z3lsZGlnIG74Z2xlICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBrZXkiCittc2dzdHIgImFkZ2FuZyB0aWwgbvhnbGUgbuZndGV0IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAiaGFyIGFsbGVyZWRlIGZqZXJuZXQgbvhnbGUiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxMiBzeXMtdXRpbHMvaXBjcm0uYzoyNDMKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAidWd5bGRpZyBu+GdsZSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjE1IHN5cy11dGlscy9pcGNybS5jOjI1MworbXNnaWQgInVua25vd24gZXJyb3IgaW4ga2V5IgorbXNnc3RyICJ1a2VuZHQgZmVqbCBpIG74Z2xlIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgImFkZ2FuZyB0aWwgaWQgbuZndGV0IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICJ1Z3lsZGlndCBpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ5Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGlkIgorbXNnc3RyICJpZCBhbGxlcmVkZSBmamVybmV0IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICJ1a2VuZHQgZmVqbCBpIGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzICglcylcbiIKK21zZ3N0ciAiJXM6ICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIGFyZ3VtZW50OiAlc1xuIgorbXNnc3RyICIlczogdWtlbmR0IHRpbHZhbGc6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICJicnVnIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKK21zZ3N0ciAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIlx0JXMgLWggZm9yIGhq5mxwLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHlvdSBoYXZlIHJlYWQgYWNjZXNzLlxuIgorbXNnc3RyICIlcyB2aXNlciBvcGx5c25pbmdlciBvbSBkZSBpcGMtZmFjaWxpdGV0ZXIsIGR1IGhhciBs5nNlYWRnYW5nIHRpbC5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlJlc291cmNlIFNwZWNpZmljYXRpb246XG4iCisiXHQtbSA6IHNoYXJlZF9tZW1cbiIKKyJcdC1xIDogbWVzc2FnZXNcbiIKK21zZ3N0ciAiIgorIlJlc3NvdXJjZXNwZWNpZmljYXRpb246XG4iCisiXHQtbSA6IGRlbHRfaHVrb21tZWxzZVxuIgorIlx0LXEgOiBiZXNrZWRlclxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtcyA6IHNlbWFwaG9yZXNcbiIKKyJcdC1hIDogYWxsIChkZWZhdWx0KVxuIgorbXNnc3RyICIiCisiXHQtcyA6IHNlbWFmb3JlclxuIgorIlx0LWEgOiBhbGxlIChzdGFuZGFyZClcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk91dHB1dCBGb3JtYXQ6XG4iCisiXHQtdCA6IHRpbWVcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JcbiIKK21zZ3N0ciAiIgorIlVkZGF0YWZvcm1hdDpcbiIKKyJcdC10IDogdGlkXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBza2FiZXJcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LWwgOiBsaW1pdHNcbiIKKyJcdC11IDogc3VtbWFyeVxuIgorbXNnc3RyICIiCisiXHQtbCA6IGdy5m5zZXJcbiIKKyJcdC11IDogc2FtbWVuZHJhZ1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICItaSBpZCBbLXMgLXEgLW1dIDogZGV0YWlscyBvbiByZXNvdXJjZSBpZGVudGlmaWVkIGJ5IGlkXG4iCittc2dzdHIgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhbGplciBvbSByZXNzb3VyY2VuIGFuZ2l2ZXQgdmVkIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2hhcmVkIG1lbW9yeVxuIgorbXNnc3RyICJrZXJuZW4gZXIgaWtrZSBrb25maWd1cmVyZXQgdGlsIGJydWcgYWYgZGVsdCBodWtvbW1lbHNlXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIEdy5m5zZXIgZm9yIGRlbHQgaHVrb21tZWxzZSAtLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBzZWdtZW50cyA9ICVsdVxuIgorbXNnc3RyICJtYWtzIGFudGFsIHNlZ21lbnRlcj0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtYWtzIHNlZy1zdPhyLiAoa2J5dGUpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAibWFrcyB0b3RhbCBkZWx0IGh1a29tbWVsc2UgKHNpZGVyKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtaW4gc2VnLXN0+HIuIChieXRlKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLSBTdGF0dXMgZm9yIGRlbHQgaHVrb21tZWxzZSAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICJhbGxva2VyZWRlIHNlZ21lbnRlciAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBhbGxvY2F0ZWQgJWxkXG4iCittc2dzdHIgImFsbG9rZXJlZGUgc2lkZXIgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc5CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHJlc2lkZW50ICAlbGRcbiIKK21zZ3N0ciAic2lkZXIgaSByYW0gICAgICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgInNpZGVyIGkgc3dhcCdldCAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dhcCBwZXJmb3JtYW5jZTogJWxkIGF0dGVtcHRzXHQgJWxkIHN1Y2Nlc3Nlc1xuIgorbXNnc3RyICJTd2FwIHBy5nN0YXRpb246ICVsZCBmb3Jz+GdcdCAlbGQgc3VjY2Vzc2VyXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gRGVsdGUgaHVrb21tZWxzZXNzZWdtZW50ZXJzIHNrYWJlcmUvZWplcmUgLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgInNobWlkIgorbXNnc3RyICJkdGhpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MDgKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAicGVybXMiCittc2dzdHIgInJ0Z2hkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImN1aWQiCittc2dzdHIgImN1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY2dpZCIKK21zZ3N0ciAiY2dpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJ1aWQiCittc2dzdHIgInVpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJnaWQiCittc2dzdHIgImdpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQXR0YWNoL0RldGFjaC9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tIERlbHQgaHVrb21tZWxzZSBUaWwtL2Fma29ibGluZ3MtL+ZuZHJpbmdzdGlkZXIgLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEgc3lzLXV0aWxzL2lwY3MuYzozMDcKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTEyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOCBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm93bmVyIgorbXNnc3RyICJlamVyIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImF0dGFjaGVkIgorbXNnc3RyICJ0aWxrb2JsZXQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgImFma29ibGV0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorbXNnaWQgImNoYW5nZWQiCittc2dzdHIgIuZuZHJldCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQ3JlYXRvci9MYXN0LW9wIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tIERlbHQgaHVrb21tZWxzZSBza2FiZXIvU2lkc3RlLW9wIC0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImNwaWQiCittc2dzdHIgImNwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAibHBpZCIKK21zZ3N0ciAibHBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0gRGVsdGUgaHVrb21tZWxzZXNzZWdtZW50ZXIgLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJrZXkiCittc2dzdHIgIm74Z2xlIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgImJ5dGVzIgorbXNnc3RyICJieXRlIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgIm5hdHRjaCIKK21zZ3N0ciAiYXRsa2JsIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAic3RhdHVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMyOSBzeXMtdXRpbHMvaXBjcy5jOjMzMSBzeXMtdXRpbHMvaXBjcy5jOjMzMworIzogc3lzLXV0aWxzL2lwY3MuYzo0NDQgc3lzLXV0aWxzL2lwY3MuYzo0NDYgc3lzLXV0aWxzL2lwY3MuYzo1NDUKKyM6IHN5cy11dGlscy9pcGNzLmM6NTQ3IHN5cy11dGlscy9pcGNzLmM6NTQ5IHN5cy11dGlscy9pcGNzLmM6NjAwCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMiBzeXMtdXRpbHMvaXBjcy5jOjYzMCBzeXMtdXRpbHMvaXBjcy5jOjYzMgorIzogc3lzLXV0aWxzL2lwY3MuYzo2MzQgc3lzLXV0aWxzL2lwY3MuYzo2NTcKK21zZ2lkICJOb3Qgc2V0IgorbXNnc3RyICJJa2tlIHNhdCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjEKK21zZ2lkICJkZXN0IgorbXNnc3RyICJt5WwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICJs5XN0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAia2VybmVuIGlra2Uga29uZmlndXJlcmV0IHRpbCBzZW1hZm9yZXJcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tLS0gU2VtYWZvcmdy5m5zZXIgIC0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJtYWtzIGFudGFsIHRhYmVsbGVyID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAibWFrcyBzZW1hZm9yZXIgcGVyIHRhYmVsID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICJtYWtzIHNlbWFmb3JlciBpIGhlbGUgc3lzdGVtZXQgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAibWFrcyBvcHMgcGVyIHNlbW9wLWthbGQgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJzZW1hcGhvcmUgbWF4IHZhbHVlID0gJWRcbiIKK21zZ3N0ciAic2VtYWZvciBtYWtzduZyZGkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tLSBTZW1hZm9yc3RhdHVzICAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGFycmF5cyA9ICVkXG4iCittc2dzdHIgImJydWd0ZSB0YWJlbGxlciA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBzZW1hcGhvcmVzID0gJWRcbiIKK21zZ3N0ciAiYWxsb2tlcmVkZSBzZW1hZm9yZXIgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tLSBTZW1hZm9ydGFiZWxsZXJzIHNrYWJlcmUvZWplcmUgLS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAic2VtaWQiCittc2dzdHIgInNlbWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBPcGVyYXRpb24vQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gRGVsdCBodWtvbW1lbHNlIG9wZXJhdGlvbnMtL+ZuZHJpbmdzdGlkZXIgLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICJzaWRzdG9wIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3QtY2hhbmdlZCIKK21zZ3N0ciAic2lkc3Qt5m5kcmV0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tLSBTZW1hZm9ydGFiZWxsZXIgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAibnNlbWYiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3IgbWVzc2FnZSBxdWV1ZXNcbiIKK21zZ3N0ciAia2VybmVuIGVyIGlra2Uga29uZmlndXJlcmV0IHRpbCBiZXNrZWRr+GVyXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBCZXNrZWRlcjogR3LmbnNlciAtLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICJtYWtzIGv4ZXIgcOUgc3lzdGVtZXQgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2l6ZSBvZiBtZXNzYWdlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJtYWtzLXN0+HJyZWxzZSBhZiBiZXNrZWQgKGJ5dGUpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVmYXVsdCBtYXggc2l6ZSBvZiBxdWV1ZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAic3RhbmRhcmQgbWFrcy1zdPhycmVsc2UgYWYga/ggKGJ5dGUpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEJlc2tlZGVyOiBTdGF0dXMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHF1ZXVlcyA9ICVkXG4iCittc2dzdHIgImFsbG9rZXJlZGUga/hlcj0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBoZWFkZXJzID0gJWRcbiIKK21zZ3N0ciAiYnJ1Z3RlIGhvdmVkZXIgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIHNwYWNlID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiYnJ1Z3QgcGxhZHMgPSAlZCBieXRlXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLS0tLSBCZXNrZWRr+GVyOiBza2FiZXJlL2VqZXJlICAtLS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTEyIHN5cy11dGlscy9pcGNzLmM6NTE4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm1zcWlkIgorbXNnc3RyICJia/hpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEJlc2tlZGv4ZXIgc2VuZC9tb2R0YWcv5m5kcmluZ3MtdGlkZXIgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJzZW5kIgorbXNnc3RyICJzZW5kIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInJlY3YiCittc2dzdHIgIm1vZHQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAiY2hhbmdlIgorbXNnc3RyICLmbmRybmciCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBQSURzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBCZXNrZWRr+GVycyBQSURlciAgLS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgImxzcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxycGlkIgorbXNnc3RyICJscnBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLS0tIEJlc2tlZGv4ZXIgLS0tLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgImJydWd0ZS1ieXRlIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgIm1lc3NhZ2VzIgorbXNnc3RyICJiZXNrZWRlciIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1ODkKKyMsIGZ1enp5Cittc2dpZCAic2htY3RsIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMgbWlzbHlra2VkZXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTaGFyZWQgbWVtb3J5IFNlZ21lbnQgc2htaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRlbHQgaHVrb21tZWxzZXNzZWdtZW50IGRoc2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgInRpbHN0YW5kPSUjb1x0YWRnYW5nc19yZXR0PSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcz0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKK21zZ3N0ciAiYnl0ZT0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYXR0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAidGlsa190aWQ9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiZnJha190aWQ9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDMgc3lzLXV0aWxzL2lwY3MuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hhbmdlX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAi5m5kcmluZ3NfdGlkPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE1CisjLCBmdXp6eQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgImZzeW5jIG1pc2x5a2tlZGVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiQmVza2Vka/ggYmv4aWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHR0aWxzdGFuZD0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICJjYnl0ZT0lbGRcdGv4Ynl0ZT0lbGRcdGthbnQ9JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VuZF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgInNlbmRfdGlkPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJjdl90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIm1vZHRfdGlkPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjQ4IHN5cy11dGlscy9pcGNzLmM6NjcwCisjLCBmdXp6eQorbXNnaWQgInNlbWN0bCBmYWlsZWQiCittc2dzdHIgInP4Z25pbmcgZmVqbGVkZSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiU2VtYWZvcnRhYmVsIHNlbWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgInRpbHN0YW5kPSUjbywgYWRnYW5nc19yZXR0PSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJuc2VtcyA9ICVsZFxuIgorbXNnc3RyICJuc2lnbiA9ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJvdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgIm90aWQgID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICLmdGlkID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJzZW1udW0iCittc2dzdHIgInNpZ2FudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAiduZyZGkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAibmNvdW50IgorbXNnc3RyICJuYW50YWwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICJ6YW50YWwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAicGlkIgorbXNnc3RyICJwaWQiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBzcGVlZDogJXMiCittc2dzdHIgInVneWxkaWd0IGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZnJhICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE4NCB0ZXh0LXV0aWxzL3RhaWxmLmM6MjA2CisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgb3B0aW9uIgorbXNnc3RyICJ1Z3lsZGlndCBpZCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGxpbmUgZGlzY2lwbGluZTogJXMiCittc2dzdHIgInVneWxkaWd0IGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIHNlcmlhbCBsaW5lIgorbXNnc3RyICIlcyBlciBpa2tlIGVuIGJsb2tlbmhlZCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJLYW4gaWtrZSBm5SBzdPhycmVsc2VuIGFmICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlZWQgJWQgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJLYW4gaWtrZSBm5SBzdPhycmVsc2VuIGFmICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgIkthbiBpa2tlIHP4Z2UgcOUgZHJldiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3CisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCBkYWVtb25pemUiCittc2dzdHIgIkthbiBpa2tlIGblIHN0+HJyZWxzZW4gYWYgJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0CisjLCBmdXp6eQorbXNnaWQgIm5vbmUiCittc2dzdHIgIkluZ2VuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NQorbXNnaWQgInBhcmEiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjYKK21zZ2lkICJmdWxsIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjEzNyBzeXMtdXRpbHMvbHNjcHUuYzoxNjAgc3lzLXV0aWxzL2xzY3B1LmM6NDU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgIlJFIGZlamw6ICIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgImZlamwgdW5kZXIgbOZzbmluZyBhZiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgIsVibmluZyBhZiAlcyBtaXNseWtrZWRlcyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MjY3CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiB1bmFtZSBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyJGZWpsIHZlZCBsdWtuaW5nIGFmIGZpbFxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MDYKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IG1hbGxvYyBmYWlsZWQiCittc2dzdHIgImh1a29tbWVsc2VzYWxsb2tlcmluZyBtaXNseWtrZWRlcyAobWFsbG9jKSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTIxCittc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzYWJsZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNgorbXNnaWQgIkNvcmUocykgcGVyIHNvY2tldDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMxCittc2dpZCAiTlVNQSBub2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzMKK21zZ2lkICJWZW5kb3IgSUQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzkKK21zZ2lkICJTdGVwcGluZzoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQxCittc2dpZCAiQ1BVIE1IejoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorIywgZnV6enkKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIkdhbW1lbCBzaXR1YXRpb246XG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIkJydWc6ICVzIFt0aWx2YWxnXSBlbmhlZCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjcxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgImZlamwgdmVkIOZuZHJpbmcgYWYgZmlsdGlsc3RhbmQgZm9yICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc3Cittc2dpZCAidXNhZ2U6IHJkZXYgWyAtcnYgXSBbIC1vIE9GRlNFVCBdIFsgSU1BR0UgWyBWQUxVRSBbIE9GRlNFVCBdIF0gXSIKK21zZ3N0ciAiIgorImJydWc6IHJkZXYgWyAtcnYgXSBbIC1vIEZPUlNLWUROSU5HIF0gWyBCSUxMRURFIFsgVsZSREkgWyBGT1JTS1lETklORyBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChlbGxlciByZGV2IC9saW51eCwgb3N2LikgdmlzZXIgZGVuIG51duZyZW5kZSByb2QtZW5oZWQiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHPmdHRlciBmaWxzeXN0ZW1yb2RlbiB0aWwgL2Rldi9oZGEyIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgwCittc2dpZCAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgUk9PVEZMQUdTIChyZWFkb25seSBzdGF0dXMpIgorbXNnc3RyICIiCisiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIHPmdHRlciBST09URkxBR1MgKHNrcml2ZWJlc2t5dHRlbHNlc3N0YXR1cykiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODEKK21zZ2lkICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiCittc2dzdHIgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBhbmdpdiBSQU1ESVNLLXN0+HJyZWxzZW4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODIKK21zZ2lkICIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBib290dXAgVklERU9NT0RFIgorbXNnc3RyICIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAgYW5naXYgb3BzdGFydHMtc2vmcm10aWxzdGFuZCIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICBicnVnIGJ5dGVmb3Jza3lkbmluZyBOIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg0Cittc2dpZCAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtUiIKK21zZ3N0ciAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbW1lIHNvbSByZGV2IC1SIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbW1lIHNvbSByZGV2IC1yIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg2Cittc2dpZCAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtdiIKK21zZ3N0ciAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbW1lIHNvbSByZGV2IC12IgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg3Cittc2dpZCAiIgorIk5vdGU6IHZpZGVvIG1vZGVzIGFyZTogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLCAxPWtleTEsIDI9a2V5MiwuLi4iCittc2dzdHIgIiIKKyJCZW3mcms6IHNr5nJtdGlsc3RhbmRlIGVyOiAtMz1TcPhyZywgLTI9VWR2aWRldCwgLTE9Tm9ybWFsVkdBLCAxPW74Z2xlMSwgIgorIjI9bvhnbGUyLC4uLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4OAorbXNnaWQgIiAgICAgIHVzZSAtUiAxIHRvIG1vdW50IHJvb3QgcmVhZG9ubHksIC1SIDAgZm9yIHJlYWQvd3JpdGUuIgorbXNnc3RyICIgICAgICBicnVnIC1SIDEgZm9yIGF0IG1vbnRlcmUgc2tyaXZlYmVza3l0dGV0LCAtUiAwIGZvciBza3JpdmVhZGdhbmcuIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjI0NQorbXNnaWQgIm1pc3NpbmcgY29tbWEiCittc2dzdHIgIm1hbmdsZW5kZSBrb21tYSIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NzIgdGV4dC11dGlscy9tb3JlLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIm91dCBvZiBtZW1vcnkiCittc2dzdHIgImz4YmV0IHT4ciBmb3IgaHVrb21tZWxzZSIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6IFwiJXMgW29wdGlvbnNdXG4iCisiXHQgLW0gPG1hcGZpbGU+ICAoZGVmYXVsdHM6IFwiJXNcIiBhbmRcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsZT4gKGRlZmF1bHQ6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIgdG8gPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBwcmludCBvbmx5IGluZm8gYWJvdXQgdGhlIHNhbXBsaW5nIHN0ZXBcbiIKKyJcdCAtdiAgICAgICAgICAgIHByaW50IHZlcmJvc2UgZGF0YVxuIgorIlx0IC1hICAgICAgICAgICAgcHJpbnQgYWxsIHN5bWJvbHMsIGV2ZW4gaWYgY291bnQgaXMgMFxuIgorIlx0IC1iICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBoaXN0b2dyYW0tYmluIGNvdW50c1xuIgorIlx0IC1zICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBjb3VudGVycyB3aXRoaW4gZnVuY3Rpb25zXG4iCisiXHQgLXIgICAgICAgICAgICByZXNldCBhbGwgdGhlIGNvdW50ZXJzIChyb290IG9ubHkpXG4iCisiXHQgLW4gICAgICAgICAgICBkaXNhYmxlIGJ5dGUgb3JkZXIgYXV0by1kZXRlY3Rpb25cbiIKKyJcdCAtViAgICAgICAgICAgIHByaW50IHZlcnNpb24gYW5kIGV4aXRcbiIKK21zZ3N0ciAiIgorIiVzOiBCcnVnOiBcIiVzIFt0aWx2YWxnXVxuIgorIlx0IC1tIDxvdmVyc2lndHNmaWw+IChzdGFuZGFyZGVyOiBcIiVzXCIgb2dcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsPiAgICAgIChzdGFuZGFyZDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgICAgIHPmdCBwcm9maWxlcmluZ3NtdWx0aXBsaWthdG9yIHRpbCA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgICAgICB2aXMga3VuIG9wbHlzbmluZ2VyIG9tIHNhbXBsZS1za3JpZHRcbiIKKyJcdCAtdiAgICAgICAgICAgICAgICBtZWR0YWcgZmxlcmUgZGV0YWxqZXJcbiIKKyJcdCAtYSAgICAgICAgICAgICAgICB2aXMgYWxsZSBzeW1ib2xlciwgc2Vsdm9tIGRlIGlra2UgYnJ1Z2VzXG4iCisiXHQgLWIgICAgICAgICAgICAgICAgdmlzIGluZGl2aWR1ZWxsZSBoaXN0b2dyYW1z+GpsZS1hbnRhbFxuIgorIlx0IC1yICAgICAgICAgICAgICAgIG51bHN0aWwgYWxsZSB05mxsZXJlIChrdW4gcm9vdClcbiIKKyJcdCAtbiAgICAgICAgICAgICAgICBkZWFrdGl26XIgYXV0b21hdGlzayBiZXN0ZW1tZWxzZSBhZiBieXRlcuZra2Vm+GxnZVxuIgorIlx0IC1WICAgICAgICAgICAgICAgIHZpcyB2ZXJzaW9uIG9nIGFmc2x1dFxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJtb3VudDogZmVqbCB2ZWQgc2tyaXZuaW5nIHRpbCAlczogJXMiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyByZXZlcnNlZCBieXRlIG9yZGVyLiBVc2UgLW4gdG8gZm9yY2UgbmF0aXZlIGJ5dGUgb3JkZXIuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6Mjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCittc2dzdHIgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMwNSBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzKCVpKTogd3JvbmcgbWFwIGxpbmVcbiIKK21zZ3N0ciAiJXM6ICVzKCVpKTogZm9ya2VydCBvdmVyc2lndGxpbmplXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBcIl9zdGV4dFwiIGluICVzXG4iCittc2dzdHIgIiVzOiBrdW5uZSBpa2tlIGZpbmRlIFwiX3N0ZXh0XCIgaSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIlczogcHJvZmlsYWRyZXNzZSB1ZGVuZm9yIG9tcuVkZXQuIEZvcmtlcnQgbWFwLWZpbD9cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NDEyCittc2dpZCAidG90YWwiCittc2dzdHIgInRvdGFsIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSBbLXB8LS1waWRdIHBpZCAgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtZ3wtLXBncnAgcGdycCBbLi4uIHBncnBdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtdXwtLXVzZXIgdXNlciBbLi4uIHVzZXJdXG4iCisiIHJlbmljZSAtaCB8IC0taGVscFxuIgorIiByZW5pY2UgLXYgfCAtLXZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlbmljZSBmcm9tICVzXG4iCittc2dzdHIgIiVzIGZyYSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiB1a2VuZHQgYnJ1Z2VyXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IHVneWxkaWcgduZyZGlcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1MiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY0Cittc2dpZCAiZ2V0cHJpb3JpdHkiCittc2dzdHIgImzmc3ByaW9yaXRldCIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJz5nRwcmlvcml0ZXQiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQ6IG9sZCBwcmlvcml0eSAlZCwgbmV3IHByaW9yaXR5ICVkXG4iCittc2dzdHIgIiVkOiBnYW1tZWwgcHJpb3JpdGV0ICVkLCBueSBwcmlvcml0ZXQgJWRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0NworbXNnaWQgInJlYWQgc3lzdGVtIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI0Cittc2dpZCAic2V0IHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyOAorbXNnaWQgImVuYWJsZSBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMzIKK21zZ2lkICJzZXQgcnRjIHdha2UgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIiAlczogdWtlbmR0IHBhcnRpdGlvbnN0YWJlbHR5cGVcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGludGVydmFsICVzIHNlY29uZHNcbiIKK21zZ3N0ciAiJXM6IHVneWxkaWcgbvhnbGUgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM2OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiB1Z3lsZGlndCB0aWx2YWxnIC0tICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIlcyB2ZXJzaW9uICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhc3N1bWluZyBSVEMgdXNlcyBVVEMgLi4uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIFVUQyB0aW1lLlxuIgorbXNnc3RyICJCcnVnZXIgJXMuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICJCcnVnZXIgJXMuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBtdXN0IHByb3ZpZGUgd2FrZSB0aW1lXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MTcKKyMsIGZ1enp5Cittc2dpZCAibWFsbG9jKCkgZmFpbGVkIgorbXNnc3RyICJodWtvbW1lbHNlc2FsbG9rZXJpbmcgbWlzbHlra2VkZXMgKG1hbGxvYykiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGVuYWJsZWQgZm9yIHdha2V1cCBldmVudHNcbiIKK21zZ3N0ciAiJXM6ICVzIGlra2UgZW4gcHJpbnRlcmVuaGVkLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIkJlc2tlZCBmcmEgJXNAJXMgcOUgJXMga2xva2tlbiAlcyAuLi4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIGV4ZWN1dGUgJXM6ICVzXG4iCittc2dzdHIgImt1bm5lIGlra2Ugb21k+GJlICVzIHRpbCAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0OTYKKyMsIGZ1enp5Cittc2dpZCAicnRjIHJlYWQiCittc2dzdHIgIiwga2xhciIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo1MDUKK21zZ2lkICJkaXNhYmxlIHJ0YyBhbGFybSBpbnRlcnJ1cHQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzo1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hpbmcgb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgc2V0YXJjaCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjE0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiQnJ1ZyAnZ2V0b3B0IC0taGVscCcgZm9yIGZsZXJlIGRldGFsamVyLlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjIxNSBzeXMtdXRpbHMvc2V0YXJjaC5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVucmVjb2duaXplZCBhcmNoaXRlY3R1cmUiCittc2dzdHIgIiAlczogdWtlbmR0IHBhcnRpdGlvbnN0YWJlbHR5cGVcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKKyMsIGZ1enp5Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIkZvciBtYW5nZSBwYXJhbWV0cmUuXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjY1IHN5cy11dGlscy9zZXRhcmNoLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gc2V0IHBlcnNvbmFsaXR5IHRvICVzIgorbXNnc3RyICJNaXNseWtrZXQgc2tyaXZuaW5nIGFmIHBhcnRpdGlvbiBw5SAlc1xuIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgImJydWc6ICVzIHByb2dyYW0gW3BhcmFtZXRyZSAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisiQnJ1ZzogJXMgPGVuaGVkPiBbIC1pIDxJUlE+IHwgLXQgPFRJRD4gfCAtYyA8VEVHTj4gfCAtdyA8VkVOVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo5MQorbXNnaWQgIm1hbGxvYyBlcnJvciIKK21zZ3N0ciAiZmVqbCB2ZWQgaHVrb21tZWxzZXNhbGxva2VyaW5nIChtYWxsb2MpIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAiJXM6IHVneWxkaWcgduZyZGlcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIKK21zZ3N0ciAiJXM6ICVzIGlra2UgZW4gcHJpbnRlcmVuaGVkLlxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN0YXR1cyBpcyAlZCIKK21zZ3N0ciAiJXMgc3RhdHVzIGVyICVkIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgYnVzeSIKK21zZ3N0ciAiLCBvcHRhZ2V0IgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgcmVhZHkiCittc2dzdHIgIiwga2xhciIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG91dCBvZiBwYXBlciIKK21zZ3N0ciAiLCBpa2tlIG1lcmUgcGFwaXIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvbi1saW5lIgorbXNnc3RyICIsIGtsYXIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCBmZWpsIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6Mjg1Cittc2dpZCAiTFBHRVRJUlEgZXJyb3IiCittc2dzdHIgIkxQR0VUSVJRIGZlamwiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgSVJRICVkXG4iCittc2dzdHIgIiVzIHZlZCBicnVnIGFmIElSUSAlZFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMgYnJ1Z2VyIG92ZXJ25WduaW5nIChwb2xsaW5nKVxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIDxwcm9ncmFtPiBbYXJncy4uLl1cbiIKK21zZ3N0ciAiYnJ1ZzogJXMgcHJvZ3JhbSBbcGFyYW1ldHJlIC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2MAorbXNnaWQgIiIKKyJSdW4gcHJvZ3JhbSB3aXRoIHNvbWUgbmFtZXNwYWNlcyB1bnNoYXJlZCBmcm9tIHBhcmVudFxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgICAgdXNhZ2UgaW5mb3JtYXRpb24gKHRoaXMpXG4iCisiICAtbSwgLS1tb3VudCAgICAgICB1bnNoYXJlIG1vdW50cyBuYW1lc3BhY2VcbiIKKyIgIC11LCAtLXV0cyAgICAgICAgIHVuc2hhcmUgVVRTIG5hbWVzcGFjZSAoaG9zdG5hbWUgZXRjKVxuIgorIiAgLWksIC0taXBjICAgICAgICAgdW5zaGFyZSBTeXN0ZW0gViBJUEMgbmFtZXNwYWNlXG4iCisiICAtbiwgLS1uZXQgICAgICAgICB1bnNoYXJlIG5ldHdvcmsgbmFtZXNwYWNlXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1bnNoYXJlKDEpLlxuIgorbXNnc3RyICJGaW5nZXItaW5mb3JtYXRpb25lciDmbmRyZXQuXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE0CisjLCBmdXp6eQorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICJz+GduaW5nIGZlamxlZGUiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJleGVjICVzIGZhaWxlZCIKK21zZ3N0ciAicHJvZ3JhbWv4cnNlbCBtaXNseWtrZWRlc1xuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IGJhZCAtbCBhcmd1bWVudCAlcy5cbiIKK21zZ3N0ciAiY29sOiB1Z3lsZGlndCAtbCBwYXJhbWV0ZXIgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmVdXG4iCittc2dzdHIgImJydWc6IGNvbCBbLWJmcHhdIFstbCBhbnRsaW5qZXJdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd3JpdGUgZXJyb3IuXG4iCittc2dzdHIgImNvbDogc2tyaXZlZmVqbC5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6IGFkdmFyc2VsOiBrYW4gaWtrZSBzaWtrZXJoZWRza29waWVyZSAlcy5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICJwYXN0IGZpcnN0IGxpbmUiCittc2dzdHIgImZvcmJpIGb4cnN0ZSBsaW5qZSIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0gbGluamUgYWxsZXJlZGUgc2tyZXZldCB1ZCIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICJicnVnOiAlcyBbIC0gXSBbIC0yIF0gWyBmaWwgLi4uIF1cbiIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzoyOTcKK21zZ2lkICJsaW5lIHRvbyBsb25nIgorbXNnc3RyICJmb3IgbGFuZyBsaW5qZSIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzozNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbHVtbiBbLXR4XSBbLWMgY29sdW1uc10gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJicnVnOiBjb2x1bW4gWy10eF0gWy1jIHP4amxlcl0gW2ZpbCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogZm9ya2VydCBs5m5nZGV25nJkaS5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgc2tpcCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdWd5bGRpZyBvdmVyc3ByaW5ncy125nJkaS5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbF0gWy1uIGzmbmdkZV0gWy1zIG92ZXJzcHJpbmddICIKKyJbZmlsIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgImJydWc6ICVzIFstZGZscGNzdV0gWytsaW5qZWFudGFsIHwgKy9t+G5zdGVyXSBuYXZuMSBuYXZuMiAuLi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICJLdW5uZSBpa2tlIGFsbG9rZXJlIGJ1ZmZlci5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIG9wdGlvbiBcIi0lY1wiXG4iCittc2dzdHIgIiVzOiB1a2VuZHQgdGlsdmFsZyBcIi0lY1wiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjUxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqICVzOiBkaXJlY3RvcnkgKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKiogJXM6IG1hcHBlICoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKioqKioqICVzOiBOb3QgYSB0ZXh0IGZpbGUgKioqKioqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKioqKioqICVzOiBJa2tlIGVuIHRla3N0ZmlsICoqKioqKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjY2NAorIywgYy1mb3JtYXQKK21zZ2lkICJbVXNlIHEgb3IgUSB0byBxdWl0XSIKK21zZ3N0ciAiW0JydWcgcSBlbGxlciBRIGZvciBhdCBhZnNsdXR0ZV0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICItLU1vcmUtLSIKK21zZ3N0ciAiLS1NZXJlLS0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICIoTmV4dCBmaWxlOiAlcykiCittc2dzdHIgIihO5nN0ZSBmaWw6ICVzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyBzcGFjZSB0byBjb250aW51ZSwgJ3EnIHRvIHF1aXQuXSIKK21zZ3N0ciAiW1RyeWsgbWVsbGVtcnVtIGZvciBhdCBmb3J0c+Z0dGUsICdxJyBmb3IgYXQgYWZzbHV0dGUuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi5iYWsgJWQgc2lkZXIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiLi4uYmFrIDEgc2lkZSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICIuLi5vdmVyc3ByaW5nZXIgZW4gbGluamUiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc2tpcHBpbmcgJWQgbGluZXMiCittc2dzdHIgIi4uLm92ZXJzcHJpbmdlciAlZCBsaW5qZXIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqVGlsYmFnZSoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzI4Cittc2dpZCAiIgorIlxuIgorIk1vc3QgY29tbWFuZHMgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBpbnRlZ2VyIGFyZ3VtZW50IGsuICBEZWZhdWx0cyBpbiAiCisiYnJhY2tldHMuXG4iCisiU3RhciAoKikgaW5kaWNhdGVzIGFyZ3VtZW50IGJlY29tZXMgbmV3IGRlZmF1bHQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEZSBmbGVzdGUga29tbWFuZG9lciBrYW4gZWZ0ZXJm+GxnZXMgYWYgZXQgaGVsdGFsIGsuIFN0YW5kYXJkduZyZGllciBpICIKKyJrbGFtbWVyLlxuIgorIlN0amVybmUgKCopIGJldHlkZXIgYXQgcGFyYW1ldGVyZW4gYmxpdmVyIGRlbiBueWUgc3RhbmRhcmR25nJkaS5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMzNQorbXNnaWQgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIKK21zZ3N0ciAiIgorIjxtZWxsZW1ydW0+ICAgICAgICAgICAgIFZpcyBkZSBu5nN0ZSBrIGxpbmplciB0ZWtzdCBbYWt0dWVsbGUgIgorInNr5nJtc3T4cnJlbHNlXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIFZpcyBkZSBu5nN0ZSBrIGxpbmplciB0ZWtzdCBbYWt0dWVsbGUgc2vmcm1zdPhycmVsc2VdIgorIipcbiIKKyI8cmV0dXI+ICAgICAgICAgICAgICAgICBWaXMgZGUgbuZzdGUgayBsaW5qZXIgdGVrc3QgWzFdKlxuIgorImQgZWxsZXIgY3RybC1EICAgICAgICAgIFJ1bCBrIGxpbmplciBbYWt0dWVsbGUgcnVsbGVzdPhycmVsc2UsIHN0YW5kYXJkIDExXSIKKyIqXG4iCisicSBlbGxlciBRIGVsbGVyIDxpbnRlcnJ1cHQ+ICAgQWZzbHV0IG1vcmVcbiIKKyJzICAgICAgICAgICAgICAgICAgICAgICBIb3AgayBsaW5qZXIgZnJlbSBpIHRla3N0ZW4gWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgSG9wIGsgc2vmcm1mdWxkZSBmcmVtIGkgdGVrc3RlbiBbMV1cbiIKKyJiIGVsbGVyIGN0cmwtQiAgICAgICAgICBIb3AgayBza+ZybWZ1bGRlIHRpbGJhZ2UgaSB0ZWtzdGVuIFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEflIHRpbCBkZXQgc3RlZCwgaHZvciBzaWRzdGUgc/hnbmluZyBzdGFydGVkZVxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIFZpcyBha3R1ZWxsZSBsaW5qZW51bW1lclxuIgorIi88cmVndWzmcnQgdWR0cnlrPiAgICAgIFP4ZyBlZnRlciBrJ25lIHRpbGbmbGRlIGFmIHJhZ3Vs5nJ0IHVkdHJ5ayBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBT+GcgZWZ0ZXIgayduZSB0aWxm5mxkZSBhZiBzZW5lc3RlIHJlZ3Vs5nJlIHVkdHJ5ayAiCisiWzFdXG4iCisiITxrbWQ+IGVsbGVyIDohPGttZD4gICAgVWRm+HIgPGttZD4gaSBlbiB1bmRlcnNrYWxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFyIC91c3IvYmluL3ZpIHDlIGFrdHVlbGxlIGxpbmplXG4iCisiY3RybC1MICAgICAgICAgICAgICAgICAgR2Vub3B0ZWduIHNr5nJtXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR+UgdGlsIGsnbmUgbuZzdGUgZmlsIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEflIHRpbCBrJ25lIGZvcnJpZ2UgZmlsIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIFZpcyBha3R1ZWxsZSBmaWxuYXZuIG9nIGxpbmplbnVtbWVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgR2VudGFnIHNlbmVzdGUga29tbWFuZG9cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQwNCB0ZXh0LXV0aWxzL21vcmUuYzoxNDA5CisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyAnaCcgZm9yIGluc3RydWN0aW9ucy5dIgorbXNnc3RyICJbVHJ5ayAnaCcgZm9yIGluc3RydWt0aW9uZXIuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0MworIywgYy1mb3JtYXQKK21zZ2lkICJcIiVzXCIgbGluZSAlZCIKK21zZ3N0ciAiXCIlc1wiIGxpbmplICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbSWtrZSBlbiBmaWxdIGxpbmplICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTI5Cittc2dpZCAiICBPdmVyZmxvd1xuIgorbXNnc3RyICIgIE92ZXJs+GJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTU3NgorbXNnaWQgIi4uLnNraXBwaW5nXG4iCittc2dzdHIgIi4uLm92ZXJzcHJpbmdlclxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICJGb3JrbHVkcmV0IHJlZ3Vs5nJ0IHVkdHJ5ayIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiTfhuc3RlciBpa2tlIGZ1bmRldFxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjE2IHRleHQtdXRpbHMvcGcuYzoxMTI3IHRleHQtdXRpbHMvcGcuYzoxMjc4Cittc2dpZCAiUGF0dGVybiBub3QgZm91bmQiCittc2dzdHIgIk34bnN0ZXIgaWtrZSBmdW5kZXQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2NzcKK21zZ2lkICJjYW4ndCBmb3JrXG4iCittc2dzdHIgImt1bm5lIGlra2UgZm9yZ3JlbmUgKGZvcmspXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MTYKK21zZ2lkICIiCisiXG4iCisiLi4uU2tpcHBpbmcgIgorbXNnc3RyICIiCisiXG4iCisiLi4uT3ZlcnNwcmluZ2VyICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMAorbXNnaWQgIi4uLlNraXBwaW5nIHRvIGZpbGUgIgorbXNnc3RyICIuLi5TcHJpbmdlciB0aWwgZmlsZW4gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAiLi4uU3ByaW5nZXIgdGlsYmFnZSB0aWwgZmlsZW4gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiRm9yIGxhbmcgbGluamUiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwNDMKK21zZ2lkICJObyBwcmV2aW91cyBjb21tYW5kIHRvIHN1YnN0aXR1dGUgZm9yIgorbXNnc3RyICJJbmdlbiB0aWRsaWdlcmUga29tbWFuZG8gYXQgZXJzdGF0dGUgbWVkIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBvZCgxKSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciBoZXhkdW1wKDEpLlxuIgorbXNnc3RyICJvZDogb2QoMSkgZXIgYmxldmV0IGVyc3RhdHRldCBhZiBoZXhkdW1wKDEpLlxuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBoZXhkdW1wKDEpIGNvbXBhdGliaWxpdHkgZG9lc24ndCBzdXBwb3J0IHRoZSAtJWMgb3B0aW9uJXNcbiIKK21zZ3N0ciAib2Q6IGhleGR1bXAoMSkga29tcGF0aWJpbGl0ZXQgdW5kZXJzdPh0dGVyIGlra2UgLSVjIHRpbHZhbGclc1xuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTM0Cittc2dpZCAiOyBzZWUgc3RyaW5ncygxKS4iCittc2dzdHIgIjsgc2Ugc3RyaW5ncygxKS4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBrdW5uZSBpa2tlIGzmc2UgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJoZXhkdW1wOiBmb3IgbGFuZyBsaW5qZS5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBieXRlYW50YWwgbWVkIGZsZXJlIGtvbnZlcnRlcmluZ3N0ZWduLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBieXRlIGNvdW50IGZvciBjb252ZXJzaW9uIGNoYXJhY3RlciAlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdWd5bGRpZyBieXRlYW50YWwgdGlsIGtvbnZlcnRlcmluZ3N0ZWduICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgImhleGR1bXA6ICUlcyBrcuZ2ZXIgZW4gcHLmY2lzaW9uIGVsbGVyIGV0IGJ5dGVhbnRhbC5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdWd5bGRpZ3QgZm9ybWF0IHslc31cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdWd5bGRpZyBrb252ZXJ0ZXJpbmdzdGVnbiAlJSVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ1Cittc2dpZCAiIgorIkFsbCByaWdodHMgcmVzZXJ2ZWQuXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIiAgaCAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBzY3JlZW5cbiIKKyIgIHEgb3IgUSAgICAgICAgICAgICAgICAgIHF1aXQgcHJvZ3JhbVxuIgorIiAgPG5ld2xpbmU+ICAgICAgICAgICAgICAgbmV4dCBwYWdlXG4iCisiICBmICAgICAgICAgICAgICAgICAgICAgICBza2lwIGEgcGFnZSBmb3J3YXJkXG4iCisiICBkIG9yIF5EICAgICAgICAgICAgICAgICBuZXh0IGhhbGZwYWdlXG4iCisiICBsICAgICAgICAgICAgICAgICAgICAgICBuZXh0IGxpbmVcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgcGFnZVxuIgorIiAgL3JlZ2V4LyAgICAgICAgICAgICAgICAgc2VhcmNoIGZvcndhcmQgZm9yIHJlZ2V4XG4iCisiICA/cmVnZXg/IG9yIF5yZWdleF4gICAgICBzZWFyY2ggYmFja3dhcmQgZm9yIHJlZ2V4XG4iCisiICAuIG9yIF5MICAgICAgICAgICAgICAgICByZWRyYXcgc2NyZWVuXG4iCisiICB3IG9yIHogICAgICAgICAgICAgICAgICBzZXQgcGFnZSBzaXplIGFuZCBnbyB0byBuZXh0IHBhZ2VcbiIKKyIgIHMgZmlsZW5hbWUgICAgICAgICAgICAgIHNhdmUgY3VycmVudCBmaWxlIHRvIGZpbGVuYW1lXG4iCisiICAhY29tbWFuZCAgICAgICAgICAgICAgICBzaGVsbCBlc2NhcGVcbiIKKyIgIHAgICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIHByZXZpb3VzIGZpbGVcbiIKKyIgIG4gICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIG5leHQgZmlsZVxuIgorIlxuIgorIk1hbnkgY29tbWFuZHMgYWNjZXB0IHByZWNlZGluZyBudW1iZXJzLCBmb3IgZXhhbXBsZTpcbiIKKyIrMTxuZXdsaW5lPiAobmV4dCBwYWdlKTsgLTE8bmV3bGluZT4gKHByZXZpb3VzIHBhZ2UpOyAxPG5ld2xpbmU+IChmaXJzdCAiCisicGFnZSkuXG4iCisiXG4iCisiU2VlIHBnKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiSHVrb21tZWxzZSBvcGJydWd0IgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6ICVzIFstbnVtYmVyXSBbLXAgc3RyaW5nXSBbLWNlZm5yc10gWytsaW5lXSBbKy9wYXR0ZXJuL10gW2ZpbGVzXVxuIgorbXNnc3RyICIiCisiJXM6IEJydWc6ICVzIFstdGFsXSBbLXAgc3RyZW5nXSBbLWNlZm5yc10gWytsaW5qZV0gWysvbfhuc3Rlci9dIFtmaWxlcl1cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjI0NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IC0tICVzXG4iCittc2dzdHIgIiVzOiB0aWx2YWxnZXQga3LmdmVyIGV0IHBhcmFtZXRlciAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczogdWd5bGRpZ3QgdGlsdmFsZyAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcwCittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICIuLi5ob3BwZXIgZnJlbWFkXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzIKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIuLi5zcHJpbmdlciBiYWd1ZFxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJJbmdlbiBu5nN0ZSBmaWwiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTgKK21zZ2lkICJObyBwcmV2aW91cyBmaWxlIgorbXNnc3RyICJJbmdlbiBmb3JyaWdlIGZpbCIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEzmc2VmZWpsIGZyYSAlcy1maWxcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5leHBlY3RlZCBFT0YgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogVXZlbnRldCBmaWxhZnNsdXRuaW5nIGkgJXMtZmlsXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogVWtlbmR0IGZlamwgaSAlcy1maWxcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBjcmVhdGUgdGVtcGZpbGVcbiIKK21zZ3N0ciAiJXM6IEt1bm5lIGlra2Ugb3ByZXR0ZSBtaWRsZXJ0aWRpZyBmaWwuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDQ0IHRleHQtdXRpbHMvcGcuYzoxMjE5IHRleHQtdXRpbHMvcGcuYzoxMjQ2Cittc2dpZCAiUkUgZXJyb3I6ICIKK21zZ3N0ciAiUkUgZmVqbDogIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIwMQorbXNnaWQgIihFT0YpIgorbXNnc3RyICIoRmlsYWZzbHV0bmluZykiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjI3IHRleHQtdXRpbHMvcGcuYzoxMjU0Cittc2dpZCAiTm8gcmVtZW1iZXJlZCBzZWFyY2ggc3RyaW5nIgorbXNnc3RyICJJbmdlbiBnYW1tZWwgc/hnZXN0cmVuZyIKKworIzogdGV4dC11dGlscy9wZy5jOjEzMTAKK21zZ2lkICJDYW5ub3Qgb3BlbiAiCittc2dzdHIgIkt1bm5lIGlra2Ug5WJuZSAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzU4Cittc2dpZCAic2F2ZWQiCittc2dzdHIgImdlbXRlIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ2NQorbXNnaWQgIjogIWNvbW1hbmQgbm90IGFsbG93ZWQgaW4gcmZsYWcgbW9kZS5cbiIKK21zZ3N0ciAiOiAha29tbWFuZG8gaWtrZSB0aWxsYWR0IGkgcmZsYWctdGlsc3RhbmQuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDk3Cittc2dpZCAiZm9yaygpIGZhaWxlZCwgdHJ5IGFnYWluIGxhdGVyXG4iCittc2dzdHIgImZvcmsoKSBtaXNseWtrZWRlcywgcHL4diBzZW5lcmVcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIihO5nN0ZSBmaWw6ICIKKworIzogdGV4dC11dGlscy9yZXYuYzoxMTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJLdW5uZSBpa2tlIGFsbG9rZXJlIGJ1ZmZlcnBsYWRzXG4iCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiByZXYgW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJicnVnOiByZXYgW2ZpbCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIKK21zZ3N0ciAiS2FuIGlra2Ug5WJuZSAlcyBmb3IgbOZzbmluZ1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgXCIlc1wiIgorbXNnc3RyICJrdW5uZSBpa2tlIGZpbmRlIGVuaGVkZW4gJXMiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5jb21wbGV0ZSB3cml0ZSB0byBcIiVzXCIgKHdyaXR0ZW4gJXpkLCBleHBlY3RlZCAlemQpXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoIChsaW1pdCBvZiBpbm90aWZ5IHdhdGNoZXMgd2FzIHJlYWNoZWQpLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2guIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgcmVhZCBpbm90aWZ5IGV2ZW50cyIKK21zZ3N0ciAiJXM6IGt1bm5lIGlra2Ug5WJuZSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgIlVneWxkaWd0IHRhbDogJXNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorIywgZnV6enkKK21zZ2lkICJ1c2FnZTogdGFpbGYgWy1uIE4gfCAtTl0gbG9nZmlsZSIKK21zZ3N0ciAiQnJ1ZzogdGFpbGYgbG9nZmlsXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLWkgXSBbIC10VGVybSBdIGZpbGUuLi5cbiIKK21zZ3N0ciAiYnJ1ZzogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZmlsLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICJwcm9ibGVtZXIgdmVkIGzmc25pbmcgYWYgJ3Rlcm1pbmZvJyIKKworIzogdGV4dC11dGlscy91bC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIGVzY2FwZSBzZXF1ZW5jZSBpbiBpbnB1dDogJW8sICVvXG4iCittc2dzdHIgIlVrZW5kdCB1bmR2aWdlbHNlc3Nla3ZlbnMgaSBpbmRkYXRhOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJLdW5uZSBpa2tlIGFsbG9rZXJlIGJ1ZmZlci5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnB1dCBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJGb3IgbGFuZyBpbmRkYXRhbGluamUuXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGVuIGdyb3dpbmcgYnVmZmVyLlxuIgorbXNnc3RyICJM+GIgdPhyIGZvciBodWtvbW1lbHNlIHVuZGVyIGZvcnN0+HJyaW5nIGFmIGJ1ZmZlci5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBDaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICBHaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIEdpdmUgZmRpc2sgdmVyc2lvblxuIgorI34gIkhlcmUgRElTSyBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYiBvciAvZGV2L3NkYVxuIgorI34gImFuZCBQQVJUSVRJT04gaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGdpdmUgU3RhcnQgYW5kIEVuZCBpbiBzZWN0b3IgKGluc3RlYWQgb2YgY3lsaW5kZXIpIHVuaXRzXG4iCisjfiAiLWIgMjA0ODogKGZvciBjZXJ0YWluIE1PIGRpc2tzKSB1c2UgMjA0OC1ieXRlIHNlY3RvcnNcbiIKKyN+IG1zZ3N0ciAiIgorI34gIkJydWc6IGZkaXNrIFstYiBTU1pdIFstdV0gRElTSyAgICAgU2tpZnQgcGFydGl0aW9uc3RhYmVsXG4iCisjfiAiICAgICAgZmRpc2sgLWwgWy1iIFNTWl0gWy11XSBESVNLICBWaXMgcGFydGl0aW9uc3RhYmVsKGxlcilcbiIKKyN+ICIgICAgICBmZGlzayAtcyBQQVJUSVRJT04gICAgICAgICAgIFZpcyBwYXJ0aXRpb25zc3T4cnJlbHNlciBpIGJsb2trZVxuIgorI34gIiAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgVmlzIGZkaXNrcyB2ZXJzaW9uXG4iCisjfiAiRElTSyBlciBmLmVrcy4gL2Rldi9oZGIgZWxsZXIgL2Rldi9zZGFcbiIKKyN+ICJQQVJUSVRJT04gZXIgZi5la3MuIC9kZXYvaGRhN1xuIgorI34gIi11OiBhbmdpdiBzdGFydCBvZyBzbHV0IHNvbSBzZWt0b3JudW1yZSAoaSBzdGVkZXQgZm9yIGN5bGluZGVybnVtcmUpXG4iCisjfiAiLWIgMjA0ODogKGZvciB2aXNzZSBNTy1kcmV2KSBicnVnIHNla3RvcmVyIHDlIDIwNDggYnl0ZVxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0gZGV2aWNlXG4iCisjfiAiRS5nLjogZmRpc2sgL2Rldi9oZGEgIChmb3IgdGhlIGZpcnN0IElERSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvc2RjICAoZm9yIHRoZSB0aGlyZCBTQ1NJIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9lZGEgIChmb3IgdGhlIGZpcnN0IFBTLzIgRVNESSBkcml2ZSlcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3JkL2MwZDAgIG9yOiBmZGlzayAvZGV2L2lkYS9jMGQwICAoZm9yIFJBSUQgZGV2aWNlcylcbiIKKyN+ICIgIC4uLlxuIgorI34gbXNnc3RyICIiCisjfiAiQnJ1ZzogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGVuaGVkXG4iCisjfiAiRi5la3MuOiBmZGlzayAvZGV2L2hkYSAgKGZvciBkZW4gZvhyc3RlIElERS1kaXNrKVxuIgorI34gIiBlbGxlcjogZmRpc2sgL2Rldi9zZGMgIChmb3IgZGVuIHRyZWRpZSBTQ1NJLWRpc2spXG4iCisjfiAiIGVsbGVyOiBmZGlzayAvZGV2L2VkYSAgKGZvciBkZXQgZvhyc3RlIFBTLzIgRVNESS1kcmV2KVxuIgorI34gIiBlbGxlcjogZmRpc2sgL2Rldi9yZC9jMGQwICBlbGxlcjogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKGZvciBSQUlELSIKKyN+ICJlbmhlZGVyKVxuIgorI34gIiAgLi4uXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiXG4iCisjfiAiVGhlIG51bWJlciBvZiBjeWxpbmRlcnMgZm9yIHRoaXMgZGlzayBpcyBzZXQgdG8gJWQuXG4iCisjfiAiVGhlcmUgaXMgbm90aGluZyB3cm9uZyB3aXRoIHRoYXQsIGJ1dCB0aGlzIGlzIGxhcmdlciB0aGFuIDEwMjQsXG4iCisjfiAiYW5kIGNvdWxkIGluIGNlcnRhaW4gc2V0dXBzIGNhdXNlIHByb2JsZW1zIHdpdGg6XG4iCisjfiAiMSkgc29mdHdhcmUgdGhhdCBydW5zIGF0IGJvb3QgdGltZSAoZS5nLiwgb2xkIHZlcnNpb25zIG9mIExJTE8pXG4iCisjfiAiMikgYm9vdGluZyBhbmQgcGFydGl0aW9uaW5nIHNvZnR3YXJlIGZyb20gb3RoZXIgT1NzXG4iCisjfiAiICAgKGUuZy4sIERPUyBGRElTSywgT1MvMiBGRElTSylcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlxuIgorI34gIkFudGFsbGV0IGFmIGN5bGluZHJlIGVyIHNhdCB0aWwgJWQgZm9yIGRlbm5lIGRpc2suXG4iCisjfiAiRGV0IGVyIGRlciBpbnRldCBnYWx0IG1lZCwgbWVuIGRhIGRldCBlciBzdPhycmUgZW5kIDEwMjQsXG4iCisjfiAia2FuIGRldCBpIHZpc3NlIG9wc+Z0bmluZ2VyIGdpdmUgcHJvYmxlbWVyIG1lZDpcbiIKKyN+ICIxKSBwcm9ncmFtbWVyLCBkZXIga/hyZXIgdGlkbGlndCBpIG9wc3RhcnRlbiAoYmwuYS4gZ2FtbGUgTElMTy0iCisjfiAidmVyc2lvbmVyKVxuIgorI34gIjIpIG9wc3RhcnRzLSBvZyBwYXJ0aXRpb25lcmluZ3Nwcm9ncmFtbWVyIGZyYSBhbmRyZSBPUydlclxuIgorI34gIiAgIChCbC5hLiBET1MgRkRJU0sgb2cgT1MvMiBGRElTSylcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJvdXQgaWYgbWVtb3J5IgorI34gbXNnc3RyICJs+GJldCB0+HIgZm9yIGh1a29tbWVsc2UiCisKKyN+IG1zZ2lkICIjIHBhcnRpdGlvbiB0YWJsZSBvZiAlc1xuIgorI34gbXNnc3RyICIjIHBhcnRpdGlvbnN0YWJlbCBmb3IgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAidW5pdDogc2VjdG9yc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIlbGxkIGlra2UtYWxsb2tlcmVkZSBzZWt0b3JlclxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICJzdGFydCIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAiTWFrc3N0+HJyZWxzZT0lbGRcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIGJvb3RhYmxlIgorI34gbXNnc3RyICJBSVggb3BzdGFydGJhciIKKworIywgZnV6enkKKyN+IG1zZ2lkICJDbG9jayBpbiBVVEMsIG5vdCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICJTa2FsIGlra2UgdWRza2lmdGV0LlxuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiBsYWJlbCBvbmx5IHdpdGggdjEgc3dhcCBhcmVhXG4iCisjfiBtc2dzdHIgIiVzOiBmZWpsOiBt5nJrZSBtZWQga3VuIHYxLXN3YXBvbXLlZGVcbiIKKworI34gbXNnaWQgImZhdGFsOiBmaXJzdCBwYWdlIHVucmVhZGFibGUiCisjfiBtc2dzdHIgImZhdGFsdDogZvhyc3RlIHNpZGUga2FuIGlra2UgbOZzZXMiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gIiVzOiBEZXZpY2UgJyVzJyBjb250YWlucyBhIHZhbGlkIFN1biBkaXNrbGFiZWwuXG4iCisjfiAiVGhpcyBwcm9iYWJseSBtZWFucyBjcmVhdGluZyB2MCBzd2FwIHdvdWxkIGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUuXG4iCisjfiAiTm8gc3dhcCB3YXMgY3JlYXRlZC4gSWYgeW91IHJlYWxseSB3YW50IHRvIGNyZWF0ZSB2MCBzd2FwIG9uIHRoYXQgIgorI34gImRldmljZSxcbiIKKyN+ICJ1c2UgdGhlIC1mIG9wdGlvbiB0byBmb3JjZSBpdC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBFbmhlZCAnJXMnIHVuZGVob2xkZXIgZW4gZ3lsZGlnIFN1biBkaXNrbWFya/hyLlxuIgorI34gIkRldCBiZXR5ZGVyIHNpa2tlcnQgYXQgZGV0IHZpbGxlIPhkZWzmZ2dlIGRpbiBwYXJ0aXRpb25zdGFiZWwsIGh2aXMgZHVcbiIKKyN+ICJvcHJldHRlciBlbiB2MCBzd2FwLiBJbmdlbiBzd2FwIG9wcmV0dGV0LiBIdmlzIGR1IHZpcmtlbGlnIHZpbCBvcHJldHRlICIKKyN+ICJlblxuIgorI34gInYwIHN3YXAgcOUgZGVubmUgZW5oZWQsIGthbiBkdSBnZW5uZW10dmluZ2UgZGV0IG1lZCB0aWx2YWxnZXQgLWYuXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBrdW5uZSBpa2tlIGJlc3RlbW1lIGFrdHVlbGxlIG1hcHBlIC0gJXNcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gY2hkaXIgdG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBrdW5uZSBpa2tlIHNraWZ0ZSB0aWwgbWFwcGVuICVzIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBjaGRpciB0byByb290IVxuIgorI34gbXNnc3RyICJuYW1laToga3VubmUgaWtrZSBza2lmdGUgdGlsIHJvZG1hcHBlbiFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3Qgc3RhdCByb290IVxuIgorI34gbXNnc3RyICJuYW1laToga3VubmUgaWtrZSBmaW5kZSByb2RtYXBwZW4hXG4iCisKKyN+IG1zZ2lkICJuYW1laTogYnVmIG92ZXJmbG93XG4iCisjfiBtc2dzdHIgIm5hbWVpOiBidWZmZXJvdmVybPhiXG4iCisKKyN+IG1zZ2lkICIgPyBjb3VsZCBub3QgY2hkaXIgaW50byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAiID8ga3VubmUgaWtrZSBza2lmdGUgdGlsIG1hcHBlbiAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIiA/IHByb2JsZW1zIHJlYWRpbmcgc3ltbGluayAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAiID8gcHJvYmxlbSB2ZWQgbOZzbmluZyBhZiBzeW1ib2xzayBs5m5rZSAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIiAgKioqIEVYQ0VFREVEIFVOSVggTElNSVQgT0YgU1lNTElOS1MgKioqXG4iCisjfiBtc2dzdHIgIiAgKioqIE9WRVJTS1JFRCBVTklYJyBHUsZOU0UgRk9SIEFOVEFMTEVUIEFGIFNZTUJPTFNLRSBMxk5LRVIgKioqXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5rbm93biBmaWxlIHR5cGUgMCUwNm8gb24gZmlsZSAlc1xuIgorI34gbXNnc3RyICJuYW1laTogdWtlbmR0IGZpbHR5cGUgMCUwNm8gZm9yIGZpbCAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBnb2luZyB0byBtb3VudCAlcyBieSAlc1xuIgorI34gbXNnc3RyICJtb3VudDogdmlsIG1vbnRlcmUgJXMgZWZ0ZXIgVVVJRFxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBubyBMQUJFTD0sIG5vIFVVSUQ9LCBnb2luZyB0byBtb3VudCAlcyBieSBwYXRoXG4iCisjfiBtc2dzdHIgIm1vdW50OiB2aWwgbW9udGVyZSAlcyBlZnRlciBt5nJrYXRcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IGZvcms6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiBLdW5uZSBpa2tlIGZvcmdyZW5lIChmb3JrKVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiB3YWl0cGlkOiAlc1xuIgorI34gbXNnc3RyICIlczogS3VubmUgaWtrZSDlYm5lOiAlc1xuIgorCisjfiBtc2dpZCAiJXM6IGNhbm5vdCBzdGF0ICVzOiAlc1xuIgorI34gbXNnc3RyICIlczoga2FuIGlra2UgZmluZGUgJXM6ICVzXG4iCisKKyN+IG1zZ2lkICJjb3VsZCBub3QgdW1vdW50ICVzIC0gdHJ5aW5nICVzIGluc3RlYWRcbiIKKyN+IG1zZ3N0ciAia3VubmUgaWtrZSBhZm1vbnRlcmUgJXMgbWVkIHVtb3VudCAtIGZvcnP4Z2VyICVzIGkgc3RlZGV0XG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEyc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEyc1xuIgorCisjfiBtc2dpZCAiJS04cyAlLTEwcyAlLTI2LjI0cyAlLTI2LjI0c1xuIgorI34gbXNnc3RyICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS04cyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEycyAlLTEyc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEycyAlLTEyc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgImNoZm46IFBBTSBGYWlsdXJlLCBhYm9ydGluZzogJXNcbiIKKyN+IG1zZ3N0ciAibG9naW46IFBBTS1mZWpsLCBhZmJyeWRlcjogJXNcbiIKKworI34gbXNnaWQgIkNhbid0IHJlYWQgJXMsIGV4aXRpbmcuIgorI34gbXNnc3RyICJLdW5uZSBpa2tlIGzmc2UgJXMsIGFmYnJ5ZGVyLiIKKworI34gbXNnaWQgImxvZ2luOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImxvZ2luOiBQQU0tZmVqbCwgYWZicnlkZXI6ICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogYmFja2dyb3VuZGluZyBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGv4cmVyIFwiJXNcIiBpIGJhZ2dydW5kZW5cbiIKKworI34gbXNnaWQgIm1vdW50OiBnaXZpbmcgdXAgXCIlc1wiXG4iCisjfiBtc2dzdHIgIm1vdW50OiBvcGdpdmVyIFwiJXNcIlxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCisjfiBtc2dzdHIgIiclcyc6IHVneWxkaWcgbWFwcGU6ICcuJyBlciBpa2tlIGb4cnN0XG4iCisKKyN+IG1zZ2lkICJgJXMnOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorI34gbXNnc3RyICInJXMnOiB1Z3lsZGlnIG1hcHBlOiAnLC4nIGVyIGlra2UgbnVtbWVyIHRvXG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIG9wZW5fdHR5XG4iCisjfiBtc2dzdHIgImthbGRlciAnb3Blbl90dHknXG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIHRlcm1pb19pbml0XG4iCisjfiBtc2dzdHIgImthbGRlciAndGVybWlvX2luaXQnXG4iCisKKyN+IG1zZ2lkICJ3cml0aW5nIGluaXQgc3RyaW5nXG4iCisjfiBtc2dzdHIgInNrcml2ZXIgaW5pdC1zdHJlbmdcbiIKKworI34gbXNnaWQgImJlZm9yZSBhdXRvYmF1ZFxuIgorI34gbXNnc3RyICJm+HIgJ2F1dG9iYXVkJ1xuIgorCisjfiBtc2dpZCAid2FpdGluZyBmb3IgY3ItbGZcbiIKKyN+IG1zZ3N0ciAidmVudGVyIHDlIGNyLWxmXG4iCisKKyN+IG1zZ2lkICJyZWFkaW5nIGxvZ2luIG5hbWVcbiIKKyN+IG1zZ3N0ciAibOZzZXIgbG9naW5uYXZuXG4iCisKKyN+IG1zZ2lkICJhZnRlciBnZXRvcHQgbG9vcFxuIgorI34gbXNnc3RyICJlZnRlciAnZ2V0b3B0Jy1s+GtrZVxuIgorCisjfiBtc2dpZCAiZXhpdGluZyBwYXJzZWFyZ3NcbiIKKyN+IG1zZ3N0ciAiYWZzbHV0dGVyICdwYXJzZWFyZ3MnXG4iCisKKyN+IG1zZ2lkICJlbnRlcmVkIHBhcnNlX3NwZWVkc1xuIgorI34gbXNnc3RyICJrb20gdGlsICdwYXJzZV9zcGVlZHMnXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlc3BlZWRzXG4iCisjfiBtc2dzdHIgImFmc2x1dHRlciAncGFyc2VzcGVlZHMnXG4iCisKKyN+IG1zZ2lkICJvcGVuKDIpXG4iCisjfiBtc2dzdHIgIm9wZW4oMilcbiIKKworI34gbXNnaWQgImR1cGluZ1xuIgorI34gbXNnc3RyICJkdXBsaWtlcmVyXG4iCisKKyN+IG1zZ2lkICJ0ZXJtX2lvIDJcbiIKKyN+IG1zZ3N0ciAidGVybV9pbyAyXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBlcnJvci4iCisjfiBtc2dzdHIgIkZlamwgaSBhZGdhbmdza29kZS4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxsc1xuIgorI34gbXNnc3RyICJBZHZhcnNlbDogXCIlc1wiIGVyIGlra2UgbWVkIGkgL2V0Yy9zaGVsbHNcbiIKKworI34gbXNnaWQgInRpbWVvdXQgPSAlZCwgcXVpZXQgPSAlZCwgcmVib290ID0gJWRcbiIKKyN+IG1zZ3N0ciAidGlkc3VkbPhiID0gJWQsIHN0aWxsZSA9ICVkLCBnZW5zdGFydCA9ICVkXG4iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkICVzLCBhbmQgY2Fubm90IGlvY3RsIGR1bXBcbiIKKyN+IG1zZ3N0ciAia3VubmUgaHZlcmtlbiBs5nNlICVzIGVsbGVyIHVkZvhyZSBpb2N0bCBkdW1wXG4iCisKKyN+IG1zZ2lkICIsIG9mZnNldCAlbGxkIgorI34gbXNnc3RyICIsIGZvcnNreWRuaW5nICVsbGQiCisKKyN+IG1zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGRldmljZSAvZGV2L2xvb3AjIgorI34gbXNnc3RyICIlczoga3VubmUgaWtrZSBmaW5kZSBub2dlbiAvZGV2L2xvb3AjIGVuaGVkIgorCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgJXMgWy12XSBbLXAgcHJpb3JpdHldIHNwZWNpYWx8TEFCRUw9dm9sdW1lX25hbWUgLi4uXG4iCisjfiAiICAgICAgICVzIFstc11cbiIKKyN+IG1zZ3N0ciAiIgorI34gImJydWc6ICVzIFstaFZdXG4iCisjfiAiICAgICAgJXMgLWEgWy1lXSBbLXZdXG4iCisjfiAiICAgICAgJXMgWy12XSBbLXAgcHJpb3JpdGV0XSBzcGVjaWVsfExBQkVMPWJpbmRuYXZuIC4uLlxuIgorI34gIiAgICAgICVzIFstc11cbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIHNwZWNpYWwgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJicnVnOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICVzIC1hIFstdl1cbiIKKyN+ICIgICAgICAlcyBbLXZdIHNwZWNpZWwgLi4uXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBjYW5vbmljYWxpemUgJXM6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiBrdW5uZSBpa2tlIOVibmUgJXM6ICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6IHJlbmljZSBwcmlvcml0eSBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSB1c2VycyBdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJicnVnOiByZW5pY2UgcHJpb3JpdGV0IFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwciBdIFsgWyAtdSBdICIKKyN+ICJicnVnZXJlIF1cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJVbmtub3duIG9wdGlvbiBgJWMnIGlnbm9yZWQiCisjfiBtc2dzdHIgIiVzOiB1a2VuZHQgdGlsdmFsZyBcIi0lY1wiXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRXhjZWVkZWQgTUFYRU5UUklFUy4gIFJhaXNlIHRoaXMgdmFsdWUgaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgIgorI34gIkV4aXRpbmcuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJPdmVyc2tyaWRlciBNQVhFTlRSSUVTLiAgRm9y+GcgZGVubmUgduZyZGkgaSBta2NyYW1mcy5jIG9nIGdlbm92ZXJz5nQgICIKKyN+ICJBZnNsdXR0ZXIuXG4iCisKKyN+IG1zZ2lkICJBc3N1bWluZyBwYWdlcyBvZiBzaXplICVkIChub3QgJWQpXG4iCisjfiBtc2dzdHIgIkFudGFnZXIgc2lkZXIgbWVkIHN0+HJyZWxzZW4gJWQgKGlra2UgJWQpXG4iCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZvdW5kIGEgJXMlcyVzXG4iCisjfiBtc2dzdHIgIkF1dG9rb25maWd1cmVyaW5nIGZhbmR0IGVuICVzJXMlc1xuIgorCisjfiBtc2dpZCAiIgorI34gIkRyaXZlIHR5cGVcbiIKKyN+ICIgICA/ICAgYXV0byBjb25maWd1cmVcbiIKKyN+ICIgICAwICAgY3VzdG9tICh3aXRoIGhhcmR3YXJlIGRldGVjdGVkIGRlZmF1bHRzKSIKKyN+IG1zZ3N0ciAiIgorI34gIkRyZXZ0eXBlXG4iCisjfiAiICAgPyAgIGF1dG9rb25maWd1cmVyaW5nXG4iCisjfiAiICAgMCAgIGJydWdlcmFuZ2l2ZXQgKG1lZCBtYXNraW5lbnMgZnVuZG5lIHN0YW5kYXJkduZyZGllcikiCisKKyN+IG1zZ2lkICJTZWxlY3QgdHlwZSAoPyBmb3IgYXV0bywgMCBmb3IgY3VzdG9tKTogIgorI34gbXNnc3RyICJW5mxnIHR5cGUgKD8gZm9yIGF1dG8uoDAgZm9yIGJydWdlcmFuZ2l2ZXQpOiAiCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZhaWxlZC5cbiIKKyN+IG1zZ3N0ciAiQXV0b2tvbmZpZ3VyZXJpbmcgbWlzbHlra2VkZXMuXG4iCisKKyN+IG1zZ2lkICJBbHRlcm5hdGUgY3lsaW5kZXJzIgorI34gbXNnc3RyICJBbHRlcm5hdGl2ZSBjeWxpbmRyZSIKKworI34gbXNnaWQgIlBoeXNpY2FsIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiRnlzaXNrZSBjeWxpbmRyZSIKKworI34gbXNnaWQgIllvdSBtYXkgY2hhbmdlIGFsbCB0aGUgZGlzayBwYXJhbXMgZnJvbSB0aGUgeCBtZW51IgorI34gbXNnc3RyICJEdSBrYW4g5m5kcmUgYWxsZSBkaXNrcGFyYW1ldHJlbmUgZnJhIHgtbWVudWVuIgorCisjfiBtc2dpZCAiMyw1XCIgZmxvcHB5IgorI34gbXNnc3RyICIzLDVcIiBkaXNrZXR0ZSIKKworI34gbXNnaWQgIkxpbnV4IGN1c3RvbSIKKyN+IG1zZ3N0ciAiTGludXgnIGVnZW4iCisKKyN+IG1zZ2lkICIlcyBmcm9tIHV0aWwtbGludXgtJXNcbiIKKyN+IG1zZ3N0ciAiJXMgZnJhIHV0aWwtbGludXgtJXNcbiIKKworI34gbXNnaWQgIiVzIGZyb20gJXMlc1xuIgorI34gbXNnc3RyICIlcyBmcmEgJXMlc1xuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiB0aGUgbGFiZWwgJXMgb2NjdXJzIG9uIGJvdGggJXMgYW5kICVzXG4iCisjfiBtc2dzdHIgIiVzOiBmZWpsOiBt5nJrZXQgJXMgb3B0cuZkZXIgcOUgYuVkZSAlcyBvZyAlc1xuIgorCisjfiBtc2dpZCAiIgorI34gIiVzOiBjb3VsZCBub3Qgb3BlbiAlcywgc28gVVVJRCBhbmQgTEFCRUwgY29udmVyc2lvbiBjYW5ub3QgYmUgZG9uZS5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBrdW5uZSBpa2tlIOVibmUgJXMsIHPlIFVVSUQtIG9nIE3GUktFrS1rb252ZXJ0ZXJpbmcga2FuIGlra2UgIgorI34gImdlbm5lbWb4cmVzLlxuIgorCisjfiBtc2dpZCAiJXM6IGJhZCBVVUlEIgorI34gbXNnc3RyICIlczogdWd5bGRpZyBVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IGZhaWxlZCB3aXRoIG5mcyBtb3VudCB2ZXJzaW9uIDQsIHRyeWluZyAzLi5cbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG1vbnRlcmluZyBhZiBuZnMgdmVyc2lvbiA0IG1pc2x5a2tlZGVzLCBwcvh2ZXIgdmVyc2lvbiAzLi5cbiIKKworI34gbXNnaWQgIm1vdW50OiBtb3VudGluZyAlc1xuIgorI34gbXNnc3RyICJtb3VudDogbW9udGVyZXIgJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW5ub3QgZmluZCAlcyBpbiAlcyIKKyN+IG1zZ3N0ciAibW91bnQ6IGt1bm5lIGlra2UgZmluZGUgJXMgaSAlcyIKKworI34gbXNnaWQgIm1vdW50OiBlcnJvciB3aGlsZSBndWVzc2luZyBmaWxlc3lzdGVtIHR5cGVcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGZlamwgdmVkIGfmdCBhZiBmaWxzeXN0ZW10eXBlXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBob3N0OmRpciBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogdm9sZHNvbXQgbGFuZ3QgJ3bmcnQ6bWFwcGUnLXBhcmFtZXRlclxuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IG11bHRpcGxlIGhvc3RuYW1lcyBub3Qgc3VwcG9ydGVkXG4iCisjfiBtc2dzdHIgIm1vdW50OiBhZHZhcnNlbDogYW5naXZlbHNlIGFmIGZsZXJlIHbmcnRzbmF2bmUgdW5kZXJzdPh0dGVzIGlra2VcbiIKKworI34gbXNnaWQgIm1vdW50OiBkaXJlY3RvcnkgdG8gbW91bnQgbm90IGluIGhvc3Q6ZGlyIGZvcm1hdFxuIgorI34gbXNnc3RyICJtb3VudDogbWFwcGUsIGRlciBtb250ZXJlcywgZXIgaWtrZSBpIGZvcm1hdGV0ICd25nJ0Om1hcHBlJ1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGNhbid0IGdldCBhZGRyZXNzIGZvciAlc1xuIgorI34gbXNnc3RyICJtb3VudDoga3VubmUgaWtrZSBm5SBhZHJlc3NlbiBw5SAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgIm1vdW50OiBmaWsgdWd5bGRpZyBocC0+aF9sZW5ndGhcbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIG9wdGlvbiBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogdm9sZHNvbXQgbGFuZ3QgdGlsdmFsZ3NwYXJhbWV0ZXJcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IFVucmVjb2duaXplZCBwcm90bz0gb3B0aW9uLlxuIgorI34gbXNnc3RyICJBZHZhcnNlbDogVWtlbmR0IHByb3RvPSB0aWx2YWxnLlxuIgorCisjfiBtc2dpZCAiV2FybmluZzogT3B0aW9uIG5hbWxlbiBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICJBZHZhcnNlbDogVGlsdmFsZ2V0ICduYW1sZW4nIHVuZGVyc3T4dHRlcyBpa2tlLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgcGFyYW1ldGVyOiAlcz0lZFxuIgorI34gbXNnc3RyICJ1a2VuZHQgTkZTLW1vbnRhZ2VwYXJhbWV0ZXI6ICVzPSVkXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBvcHRpb24gbm9sb2NrIGlzIG5vdCBzdXBwb3J0ZWQuXG4iCisjfiBtc2dzdHIgIkFkdmFyc2VsOiB0aWx2YWxnZXQgJ25vbG9jaycgdW5kZXJzdPh0dGVzIGlra2UuXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBtb3VudCBvcHRpb246ICVzJXNcbiIKKyN+IG1zZ3N0ciAidWtlbmR0IE5GUy1tb250YWdlcGFyYW1ldGVyOiAlcyVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGg/XG4iCisjfiBtc2dzdHIgIm1vdW50OiBmaWsgdWd5bGRpZyBocC0+aF9sZW5ndGg/XG4iCisKKyN+IG1zZ2lkICJuZnMgYmluZHJlc3Zwb3J0IgorI34gbXNnc3RyICJuZnMgYmluZHJlc3Zwb3J0IgorCisjfiBtc2dpZCAibmZzIHNlcnZlciByZXBvcnRlZCBzZXJ2aWNlIHVuYXZhaWxhYmxlIgorI34gbXNnc3RyICJORlMtdGplbmVyIGFuZ2F2LCBhdCB0amVuZXN0ZW4gaWtrZSB2YXIgdGlsZ+ZuZ2VsaWciCisKKyN+IG1zZ2lkICJ1c2VkIHBvcnRtYXBwZXIgdG8gZmluZCBORlMgcG9ydFxuIgorI34gbXNnc3RyICJiZW55dHRlZGUgcG9ydG1hcHBlciB0aWwgYXQgZmluZGUgTkZTLXBvcnRcbiIKKworI34gbXNnaWQgInVzaW5nIHBvcnQgJWQgZm9yIG5mcyBkZWFtb25cbiIKKyN+IG1zZ3N0ciAiYnJ1Z2VyIHBvcnQgJWQgdGlsIE5GUy1k5m1vbmVuXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBzdGF0dXMgcmV0dXJuIHZhbHVlOiAlZCIKKyN+IG1zZ3N0ciAidWtlbmR0IE5GUy1zdGF0dXN25nJkaTogJWQiCisKKyN+IG1zZ2lkICJob3N0OiAlcywgZGlyZWN0b3J5OiAlc1xuIgorI34gbXNnc3RyICJ25nJ0OiAlcywgbWFwcGU6ICVzXG4iCisKKyN+IG1zZ2lkICJ1bW91bnQ6IGNhbid0IGdldCBhZGRyZXNzIGZvciAlc1xuIgorI34gbXNnc3RyICJ1bW91bnQ6IGt1bm5lIGlra2UgZuUgYWRyZXNzZW4gcOUgJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogZ290IGJhZCBob3N0cC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiBmaWsgdWd5bGRpZyBob3N0cC0+aF9sZW5ndGhcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHBhdGggbGVuZ3RoXG4iCisjfiBtc2dzdHIgIiVzOiB1Z3lsZGlndCBjcmFtZnMtLWZvcmtlcnQgc3RpbOZuZ2RlXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLXdyb25nIG1hZ2ljXG4iCisjfiBtc2dzdHIgIiVzOiB1Z3lsZGlndCBjcmFtZnMtLWZvcmtlcnQgbWFnaXNrIG51bW1lclxuIgorCisjfiBtc2dpZCAiJXM6IHdhcm5pbmctLWZpbGUgbGVuZ3RoIHRvbyBsb25nLCBwYWRkZWQgaW1hZ2U/XG4iCisjfiBtc2dzdHIgIiVzOiBhZHZhcnNlbC0tZmlsbOZuZ2RlIGZvciBsYW5nLCBlciBkZXQgZXQgZWZ0ZXJmeWxkdCBhZnRyeWs/XG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWNyYyBlcnJvclxuIgorI34gbXNnc3RyICIlczogdWd5bGRpZ3QgY3JhbWZzLS1jcmMtZmVqbFxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1iYWQgc3VwZXJibG9ja1xuIgorI34gbXNnc3RyICIlczogdWd5bGRpZ3QgY3JhbWZzLS11Z3lsZGlnIHN1cGVyYmxva1xuIgorCisjfiBtc2dpZCAibWtmcyB2ZXJzaW9uICVzICglcylcbiIKKyN+IG1zZ3N0ciAibWtmcyB2ZXJzaW9uICVzICglcylcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJmbG9jazogdW5rbm93biBvcHRpb24sIGFib3J0aW5nLlxuIgorI34gbXNnc3RyICIlczogdWtlbmR0IHNpZ25hbCAlc1xuIgorCisjfiBtc2dpZCAiU3ludGF4IGVycm9yOiAnJXMnXG4iCisjfiBtc2dzdHIgIlN5bnRha3NmZWpsOiAnJXMnXG4iCisKKyN+IG1zZ2lkICJObyBzdWNoIHBhcmFtZXRlciBzZXQ6ICclcydcbiIKKyN+IG1zZ3N0ciAiSW5nZW4gc+VkYW4gcGFyYW1ldGVyIHNhdDogJyVzJ1xuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtcCBdIGRldiBuYW1lXG4iCisjfiBtc2dzdHIgIiAgICVzIFsgLXAgXSBlbmggbmF2blxuIgorCisjfiBtc2dpZCAiIgorI34gIiAgICVzIFsgLXAgXSBkZXYgc2l6ZSBzZWN0IGhlYWRzIHRyYWNrcyBzdHJldGNoIGdhcCByYXRlIHNwZWMxIGZtdF9nYXBcbiIKKyN+IG1zZ3N0ciAiIgorI34gIiAgICVzIFsgLXAgXSBlbmggc3RyIHNla3QgaG92ZWRlciBzcG9yIHN0cuZrIGdhYiByYXRlIHNwZWMxIGZtdF9nYWJcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLWMgfCAteSB8IC1uIHwgLWQgXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGVuaFxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSBlbmhcbiIKKworI34gbXNnaWQgInZlcnNpb24iCisjfiBtc2dzdHIgInZlcnNpb24iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCBvcGVuIC9kZXYvdXJhbmRvbSIKKyN+IG1zZ3N0ciAia3VubmUgaWtrZSDlYm5lIC9kZXYvdXJhbmRvbSIKKworI34gbXNnaWQgImNvdWxkbid0IHJlYWQgcmFuZG9tIGRhdGEgZnJvbSAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgImt1bm5lIGlra2UgbOZzZSB0aWxm5mxkaWdlIGRhdGEgZnJhIC9kZXYvdXJhbmRvbSIKKworI34gbXNnaWQgImNhbid0IHN0YXQoJXMpIgorI34gbXNnc3RyICJrdW5uZSBpa2tlIHN0YXQoJXMpIgorCisjfiBtc2dpZCAiJXMgZG9lc24ndCBoYXZlIHRoZSBjb3JyZWN0IGZpbGVtb2RlcyIKKyN+IG1zZ3N0ciAiJXMgaGFyIGlra2UgZGUga29ycmVrdGUgZmlsbW9kaSIKKworI34gbXNnaWQgImNhbid0IHJlYWQgZGF0YSBmcm9tICVzIgorI34gbXNnc3RyICJrdW5uZSBpa2tlIGzmc2UgZGF0YSBmcmEgJXMiCisKKyN+IG1zZ2lkICIiCisjfiAiVG9vIG1hbnkgdXNlcnMgbG9nZ2VkIG9uIGFscmVhZHkuXG4iCisjfiAiVHJ5IGFnYWluIGxhdGVyLlxuIgorI34gbXNnc3RyICIiCisjfiAiRm9yIG1hbmdlIGJydWdlcmUgZXIgYWxsZXJlZGUgbG9nZ2V0IHDlLlxuIgorI34gIlBy+HYgaWdlbiBzZW5lcmUuXG4iCisKKyN+IG1zZ2lkICJZb3UgaGF2ZSB0b28gbWFueSBwcm9jZXNzZXMgcnVubmluZy5cbiIKKyN+IG1zZ3N0ciAiRHUgaGFyIGZvciBtYW5nZSBwcm9jZXNzZXIga/hyZW5kZS5cbiIKKworI34gbXNnaWQgIlRoZSBwYXNzd29yZCBtdXN0IGhhdmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzLCB0cnkgYWdhaW4uXG4iCisjfiBtc2dzdHIgIkFkZ2FuZ3Nrb2RlbiBza2FsIGJlc3TlIGFmIG1pbmRzdCA2IHRlZ24uIFBy+HYgaWdlbi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJUaGUgcGFzc3dvcmQgbXVzdCBjb250YWluIGNoYXJhY3RlcnMgb3V0IG9mIHR3byBvZiB0aGUgZm9sbG93aW5nXG4iCisjfiAiY2xhc3NlczogIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgbm9uIGFscGhhbnVtZXJpY1xuIgorI34gImNoYXJhY3RlcnMuIFNlZSBwYXNzd2QoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJBZGdhbmdza29kZW4gc2thbCBpbmRlaG9sZGUgdGVnbiBmcmEgdG8gYWYgZvhsZ2VuZGUga2xhc3NlcjpcbiIKKyN+ICJzdG9yZSBvZyBzbeUgYm9nc3RhdmVyLCB0YWwgb2cgaWtrZS1hbGZhbnVtZXJpc2tlIHRlZ24uXG4iCisjfiAiU2UgcGFzc3dkKDEpIGZvciBmbGVyZSBvcGx5c25pbmdlci5cbiIKKworI34gbXNnaWQgIllvdSBjYW5ub3QgcmV1c2UgdGhlIG9sZCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAiRHUga2FuIGlra2UgZ2VuYnJ1Z2UgZGVuIGdhbWxlIGFkZ2FuZ3Nrb2RlLlxuIgorCisjfiBtc2dpZCAiUGxlYXNlIGRvbid0IHVzZSBzb21ldGhpbmcgbGlrZSB5b3VyIHVzZXJuYW1lIGFzIHBhc3N3b3JkIVxuIgorI34gbXNnc3RyICJCcnVnIHZlbmxpZ3N0IGlra2UgYnJ1Z2VybmF2biBvZyBsaWduZW5kZSBzb20gYWRnYW5nc2tvZGUhXG4iCisKKyN+IG1zZ2lkICJQbGVhc2UgZG9uJ3QgdXNlIHNvbWV0aGluZyBsaWtlIHlvdXIgcmVhbG5hbWUgYXMgcGFzc3dvcmQhXG4iCisjfiBtc2dzdHIgIkJydWcgdmVubGlnc3QgaWtrZSBkaXQgcmlndGlnZSBuYXZuIG9nIGxpZ25lbmRlIHNvbSBhZGdhbmdza29kZSFcbiIKKworI34gbXNnaWQgIlVzYWdlOiBwYXNzd2QgW3VzZXJuYW1lIFtwYXNzd29yZF1dXG4iCisjfiBtc2dzdHIgIkJydWc6IHBhc3N3ZCBbYnJ1Z2VybmF2biBbYWRnYW5nc2tvZGVdXVxuIgorCisjfiBtc2dpZCAiT25seSByb290IG1heSB1c2UgdGhlIG9uZSBhbmQgdHdvIGFyZ3VtZW50IGZvcm1zLlxuIgorI34gbXNnc3RyICJLdW4gcm9vdCBrYW4gYnJ1Z2UgZXQtIG9nIHRvLXBhcmFtZXRlciBmb3JtYXRlci5cbiIKKworI34gbXNnaWQgIlVzYWdlOiBwYXNzd2QgWy1mb3FzdlZdIFt1c2VyIFtwYXNzd29yZF1dXG4iCisjfiBtc2dzdHIgIkJydWc6IHBhc3N3ZCBbLWZvcXN2Vl0gW2JydWdlciBbYWRnYW5nc2tvZGVdXVxuIgorCisjfiBtc2dpZCAiQ2FuJ3QgZXhlYyAlczogJXNcbiIKKyN+IG1zZ3N0ciAiS3VubmUgaWtrZSB1ZGb4cmUgJXM6ICVzXG4iCisKKyN+IG1zZ2lkICJDYW5ub3QgZmluZCBsb2dpbiBuYW1lIgorI34gbXNnc3RyICJLdW5uZSBpa2tlIGZpbmRlIGxvZ2lubmF2biIKKworI34gbXNnaWQgIk9ubHkgcm9vdCBjYW4gY2hhbmdlIHRoZSBwYXNzd29yZCBmb3Igb3RoZXJzLlxuIgorI34gbXNnc3RyICJLdW4gcm9vdCBrYW4g5m5kcmUgYWRnYW5nc2tvZGVyIGZvciBhbmRyZS5cbiIKKworI34gbXNnaWQgIkNhbid0IGZpbmQgdXNlcm5hbWUgYW55d2hlcmUuIElzIGAlcycgcmVhbGx5IGEgdXNlcj8iCisjfiBtc2dzdHIgIiIKKyN+ICJLYW4gaWtrZSBmaW5kZSBicnVnZXJuYXZuZXQgbm9nZW4gc3RlZGVyLiBFciAnJXMnIHZpcmtlbGlnIGVuIGJydWdlcj8iCisKKyN+IG1zZ2lkICJTb3JyeSwgSSBjYW4gb25seSBjaGFuZ2UgbG9jYWwgcGFzc3dvcmRzLiBVc2UgeXBwYXNzd2QgaW5zdGVhZC4iCisjfiBtc2dzdHIgIiIKKyN+ICJCZWtsYWdlciwgamVnIGthbiBrdW4g5m5kcmUgbG9rYWxlIGFkZ2FuZ3Nrb2Rlci4gQnJ1ZyAneXBwYXNzd2QnIGkgc3RlZGV0LiIKKworI34gbXNnaWQgIlVJRCBhbmQgdXNlcm5hbWUgZG9lcyBub3QgbWF0Y2gsIGltcG9zdGVyISIKKyN+IG1zZ3N0ciAiVUlEIG9nIGJydWdlcm5hdm4gcGFzc2VyIGlra2Ugc2FtbWVuLiIKKworI34gbXNnaWQgIkNoYW5naW5nIHBhc3N3b3JkIGZvciAlc1xuIgorI34gbXNnc3RyICLGbmRyZXIgYWRnYW5nc2tvZGUgZm9yICVzXG4iCisKKyN+IG1zZ2lkICJFbnRlciBvbGQgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiSW5kdGFzdCBnYW1tZWwgYWRnYW5nc2tvZGU6ICIKKworI34gbXNnaWQgIklsbGVnYWwgcGFzc3dvcmQsIGltcG9zdGVyLiIKKyN+IG1zZ3N0ciAiVWd5bGRpZyBhZGdhbmdza29kZS4iCisKKyN+IG1zZ2lkICJFbnRlciBuZXcgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiSW5kdGFzdCBueSBhZGdhbmdza29kZTogIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgbm90IGNoYW5nZWQuIgorI34gbXNnc3RyICJBZGdhbmdza29kZSBpa2tlIOZuZHJldC4iCisKKyN+IG1zZ2lkICJSZS10eXBlIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJHZW50YWcgbnkgYWRnYW5nc2tvZGU6ICIKKworI34gbXNnaWQgIllvdSBtaXNzcGVsbGVkIGl0LiBQYXNzd29yZCBub3QgY2hhbmdlZC4iCisjfiBtc2dzdHIgIkR1IHN0YXZlZGUgZm9ya2VydC4gQWRnYW5nc2tvZGVuIGJsZXYgaWtrZSDmbmRyZXQuIgorCisjfiBtc2dpZCAicGFzc3dvcmQgY2hhbmdlZCwgdXNlciAlcyIKKyN+IG1zZ3N0ciAiYWRnYW5nc2tvZGUg5m5kcmV0LCBicnVnZXIgJXMiCisKKyN+IG1zZ2lkICJST09UIFBBU1NXT1JEIENIQU5HRUQiCisjfiBtc2dzdHIgIlJPT1QtQURHQU5HU0tPREUgxk5EUkVUIgorCisjfiBtc2dpZCAicGFzc3dvcmQgY2hhbmdlZCBieSByb290LCB1c2VyICVzIgorI34gbXNnc3RyICJhZGdhbmdza29kZW4g5m5kcmV0IGFmIHJvb3QsIGJydWdlciAlcyIKKworI34gbXNnaWQgImNhbGxpbmcgc2V0cHduYW0gdG8gc2V0IHBhc3N3b3JkLlxuIgorI34gbXNnc3RyICJrYWxkZXIgc2V0cHduYW0gZm9yIGF0IOZuZHJlIGFkZ2FuZ3Nrb2Rlbi5cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIkFkZ2FuZ3Nrb2RlICpJS0tFKiDmbmRyZXQuIFBy+HYgaWdlbiBzZW5lcmUuXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICJBZGdhbmdza29kZSDmbmRyZXQuXG4iCisKKyN+IG1zZ2lkICJtb3VudDogdGhpcyB2ZXJzaW9uIHdhcyBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIHRoZSB0eXBlIGBuZnMnIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IGRlbm5lIHZlcnNpb24gYmxldiBvdmVyc2F0IHVkZW4gdW5kZXJzdPh0dGVsc2UgZm9yICduZnMnLXR5cGVuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIldhcm5pbmc6IG9taXR0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgJWRcbiIKKyN+IG1zZ3N0ciAiQWR2YXJzZWw6IHNsZXR0ZXIgcGFydGl0aW9uZXIgZWZ0ZXIgJWRcbiIKKworI34gbXNnaWQgIm1vdW50OiBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQgYnkga2VybmVsIgorI34gbXNnc3RyICJtb3VudDogZmlsc3lzdGVtdHlwZSAlcyB1bmRlcnN0+HR0ZXMgaWtrZSBhZiBrZXJuZW4iCisKKyN+IG1zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAiQkxLR0VUU0laRSBpb2N0bCBtaXNseWtrZWRlcyBmb3IgJXNcbiIKKworI34gbXNnaWQgIiVzOiBub3QgY29tcGlsZWQgd2l0aCBtaW5peCB2MiBzdXBwb3J0XG4iCisjfiBtc2dzdHIgIiVzOiBpa2tlIG92ZXJzYXQgbWVkIHVuZGVyc3T4dHRlbHNlIGZvciBtaW5peCB2MlxuIgorCisjfiBtc2dpZCAiQm9vdCAoJTAyWCkiCisjfiBtc2dzdHIgIk9wc3RhcnQgKCUwMlgpIgorCisjfiBtc2dpZCAiTm9uZSAoJTAyWCkiCisjfiBtc2dzdHIgIkluZ2VuICglMDJYKSIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogWyUwNGxseF06JWxsdSAoJXMpIG9mZnNldCAlbGx1LCAlcyBlbmNyeXB0aW9uXG4iCisjfiBtc2dzdHIgIiVzOiBbJTA0eF06JWxkICglcykgZm9yc2t5ZG5pbmcgJWQsICVzIGtyeXB0ZXJpbmdcbiIKKworI34gbXNnaWQgIiIKKyN+ICJtb3VudDogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLlxuIgorI34gIiAgICAgICBNYXliZSAvZGV2L2xvb3AjIGhhcyBhIHdyb25nIG1ham9yIG51bWJlcj8iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogS3VubmUgaWtrZSBmaW5kZSBub2dlbiBsb29wLWVuaGVkLlxuIgorI34gIiAgICAgICBN5XNrZSBoYXIgL2Rldi9sb29wIyBmb3JrZXJ0IGhvdmVkbnVtbWVyPyIKKworI34gbXNnaWQgIiIKKyN+ICJtb3VudDogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisjfiAiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZSAodGhlbiByZWNvbXBpbGUgb3IgYGluc21vZCBsb29wLm8nKSwgb3JcbiIKKyN+ICIgICAgICAgbWF5YmUgL2Rldi9sb29wIyBoYXMgdGhlIHdyb25nIG1ham9yIG51bWJlcj8iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogS3VubmUgaWtrZSBmaW5kZSBub2dlbiBsb29wLWVuaGVkZXIuIE3lc2tlIGtlbmRlciBkZW5uZSBrZXJuZSAiCisjfiAiaWtrZVxuIgorI34gIiAgICAgICB0aWwgbG9vcC1lbmhlZGVyIChpIHPlIGZhbGQgZ2Vub3ZlcnPmdCBrZXJuZW4sIGVsbGVyICdpbnNtb2QgbG9vcC4iCisjfiAibycpLFxuIgorI34gIiAgICAgICBlbGxlciBoYXIgL2Rldi9sb29wIyBiYXJlIGV0IGZvcmtlcnQgaG92ZWRudW1tZXI/IgorCisjLCBmdXp6eQorI34gbXNnaWQgIkVycm9yOiB1bmFibGUgdG8gb3BlbiAlcyBmb3IgcmVhZGluZ1xuIgorI34gbXNnc3RyICJrdW5uZSBpa2tlIOVibmUgJXMgZm9yIGzmc25pbmdcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJSZXR5cGUgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiR2VudGFnIG55IGFkZ2FuZ3Nrb2RlOiAiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiRXJyb3I6IGdwZyBrZXkgZmlsZSBkZWNyeXB0aW9uIGZhaWxlZFxuIgorI34gbXNnc3RyICJrdW5uZSBpa2tlIOVibmUga2F0YWxvZ1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIkVycm9yOiBQYXNzd29yZCBtdXN0IGJlIGF0IGxlYXN0ICVkIGNoYXJhY3RlcnMuXG4iCisjfiBtc2dzdHIgIkFkZ2FuZ3Nrb2RlbiBza2FsIGJlc3TlIGFmIG1pbmRzdCA2IHRlZ24uIFBy+HYgaWdlbi5cbiIKKworI34gbXNnaWQgIkluaXQgKHVwIHRvIDE2IGhleCBkaWdpdHMpOiAiCisjfiBtc2dzdHIgIkluaXQgKG9wIHRpbCAxNiBoZXgtY2lmcmUpOiAiCisKKyN+IG1zZ2lkICJOb24taGV4IGRpZ2l0ICclYycuXG4iCisjfiBtc2dzdHIgIklra2UtaGV4IGNpZmZlciAnJWMnLlxuIgorCisjfiBtc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZ2V0IGtleSBmb3IgZW5jcnlwdGlvbiBzeXN0ZW0gJWRcbiIKKyN+IG1zZ3N0ciAiVmVkIGlra2UsIGh2b3JkYW4gbWFuIGblciBlbiBu+GdsZSB0aWwga3J5cHRlcmluZ3NzeXN0ZW0gJWRcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJFcnJvcjogdW5hYmxlIHRvIG9wZW4gL2V0Yy9mc3RhYiBmb3IgcmVhZGluZ1xuIgorI34gbXNnc3RyICJrdW5uZSBpa2tlIOVibmUgJXMgZm9yIGzmc25pbmdcbiIKKworI34gbXNnaWQgIm1vdW50OiAlcyBkdXBsaWNhdGUgLSBub3QgbW91bnRlZCIKKyN+IG1zZ3N0ciAidW1vdW50OiAlcyBnZW50YWdldCAtIGlra2UgbW9udGVyZXQiCisKKyN+IG1zZ2lkICJVVUlEIgorI34gbXNnc3RyICJVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IHRoZSBsYWJlbCAlcyBvY2N1cnMgb24gYm90aCAlcyBhbmQgJXMgLSBub3QgbW91bnRlZFxuIgorI34gbXNnc3RyICJtb3VudDogbeZya2V0ICVzIG9wdHLmZGUgYuVkZSBw5SAlcyBvZyAlcyAtIGlra2UgbW9udGVyZXRcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJzd2Fwb246IGludmFsaWQgbG9vcCBkZXZpY2UgbmFtZVxuIgorI34gbXNnc3RyICJ1bW91bnQ6ICVzOiB1Z3lsZGlnIGJsb2tlbmhlZCIKKworIywgZnV6enkKKyN+IG1zZ2lkICJzd2Fwb246IHVuYWJsZSB0byBvcGVuIGxvb3AgZGV2aWNlICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiBza2FsIHRpbCBhdCBiZW55dHRlIGxvb3AtZW5oZWRlbiAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgInN3YXBvbjogbG9vcCBkZXZpY2UgJXMgYWxyZWFkeSBpbiB1c2VcbiIKKyN+IG1zZ3N0ciAiRGVubmUgcGFydGl0aW9uIGVyIGFsbGVyZWRlIGkgYnJ1ZyIKKworIywgZnV6enkKKyN+IG1zZ2lkICJzd2Fwb246IHVuYWJsZSB0byBvcGVuIHN3YXAgZGV2aWNlICVzXG4iCisjfiBtc2dzdHIgImt1bm5lIGlra2Ugc3BvbGUgdGlsYmFnZSBw5SBzd2FwLWVuaGVkZW4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAic3dhcG9uOiB1bmFibGUgdG8gb3BlbiAvZGV2L3VyYW5kb21cbiIKKyN+IG1zZ3N0ciAia3VubmUgaWtrZSDlYm5lIC9kZXYvdXJhbmRvbSIKKworIywgZnV6enkKKyN+IG1zZ2lkICJzd2Fwb246IHVuYWJsZSB0byBjcmVhdGUgcGlwZVxuIgorI34gbXNnc3RyICJrdW5uZSBpa2tlIHNrcml2ZSBpbm9kZXMiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAic3dhcG9uOiByYW5kb20gcGFzc3dvcmQgZm9yICVzIGlzICVzIgorI34gbXNnc3RyICLGbmRyZXIgYWRnYW5nc2tvZGUgZm9yICVzXG4iCisKKyN+IG1zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorI34gbXNnc3RyICJQYXJ0aXRpb24gJWkgc2x1dHRlciBpa2tlIHDlIGVuIGN5bGluZGVyLWdy5m5zZTpcbiIKKworI34gbXNnaWQgIkNhbid0IG9wZW4gaGVscCBmaWxlIgorI34gbXNnc3RyICJLdW5uZSBpa2tlIOVibmUgaGrmbHBlZmlsZW4iCisKKyN+IG1zZ2lkICIiCisjfiAiXG4iCisjfiAiRGlzayAlczogJWQgaGVhZHMsICVkIHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorI34gIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAiRGlzayAlczogJWQgaG92ZWRlciwgJWQgc2VrdG9yZXIsICVkIGN5bGluZHJlXG4iCisjfiAiRW5oZWRlciA9ICVzIOEgJWQgKiAlZCBieXRlXG4iCisjfiAiXG4iCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9kZS5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9kZS5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg5NmRkMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2RlLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9kZS5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2RlLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MWFkOTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9kZS5wbwpAQCAtMCwwICsxLDEzMDU5IEBACisjIEdlcm1hbiB0cmFuc2xhdGlvbiBmb3IgdXRpbC1saW51eC4KKyMgQ29weXJpZ2h0IMKpIDE5OTksIDIwMDAsIDIwMDEgRWxyb25kIDxFbHJvbmRAV3VuZGVyLU5ldHQub3JnPgorIyBDb3B5cmlnaHQgwqkgMjAwMSwgMjAwMiBLYXJsIEVpY2h3YWxkZXIuCisjIENvcHlyaWdodCDCqSBNaWNoYWVsIFBpZWZlbCA8cGllZmVsQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPiwgMjAwMiwgMjAwNCwgMjAwNSwgMjAwNywgMjAwOC4KKyMKKyMgTm90ZToKKyMgPT09PT0KKyMgQ2hhbmdlcyBkb25lIGJ5IEthcmwgRWljaHdhbGRlciBhcmUgcHV0IGludG8gdGhlIFB1YmxpYyBEb21haW4uCisjIE1pbmUgdG9vLiBNUGkKKyMKKyMgQXMgcmVxdWVzdGVkIGhlcmUgaXMgdGhlIHVubW9kaWZpZWQgaGVhZGVyOgorIworIyAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0gY3V0IGhlcmUgLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCisjIEdlcm1hbiB0cmFuc2xhdGlvbiBmb3IgdXRpbC1saW51eC4KKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxIEVscm9uZCA8RWxyb25kQFd1bmRlci1OZXR0Lm9yZz4uCisjIEVscm9uZCA8RWxyb25kQFd1bmRlci1OZXR0Lm9yZz4sIDE5OTktMjAwMS4KKyMKKyMgJFJldmlzaW9uOiAxLjQyICQKKyMKKyMgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGZyZWVseSBjb3B5IGFuZCBkaXN0cmlidXRlCisjIHRoaXMgZmlsZSBhbmQgbW9kaWZpZWQgdmVyc2lvbnMsIHByb3ZpZGVkLCB0aGF0IHRoaXMKKyMgaGVhZGVyIGlzIG5vdCByZW1vdmVkIGFuZCBtb2RpZmllZCB2ZXJzaW9ucyBhcmUgbWFya2VkCisjIGFzIHN1Y2guCisjCisjIElmIHlvdSBoYXZlIGFkZGl0aW9ucy9jaGFuZ2VzL290aGVyIHJlcXVlc3RzLCBwbGVhc2UKKyMgc2VuZCB0aGVtIHRvIG1lIChFbHJvbmQgPEVscm9uZEBXdW5kZXItTmV0dC5vcmc+KSEKKyMKKyMgUGVvcGxlIHdobyBoZWxwZWQgb3IgY29udHJpYnV0ZWQgKGluIGhpc3RvcmljYWwgb3JkZXIpOgorIyAgIE1hcnRpbiBTY2h1bHplIDxqb2V5QGluZm9kcm9tLm5vcnRoLmRlPgorIyAgIERhbmllbCBFZ2dlciA8RGFuaWVsLkVnZ2VyQHN1c2UuZGU+CisjICAgZGVsaUEgPGRlbGlBQFd1bmRlci1OZXR0Lm9yZz4KKyMKKyMgU3VibWl0dGVkIHRvIHRoZSBUUCAyMDAxLTA3LTE4IDE0OjMyOjQ3IENFU1QgLWtlLQorIworIyAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0gY3V0IGhlcmUgLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCisjCisjIEhpbndlaXNlIHp1ciDDnGJlcnNldHp1bmc6CisjID09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgY29tbWFuZCDigJMgQmVmZWhsCisjIGJhZCAgICAg4oCTIGJlc2Now6RkaWd0ICh6LiBCLiDigJ5iZXNjaMOkZGlndGUgQmzDtmNrZeKAnCkKKyMgICAgICAgICAgIGJ6dy4gdW5nw7xsdGlnICh6LiBCLiDigJ51bmfDvGx0aWdlIOKAmm1hZ2ljIG51bWJlcuKAmCBpbSBTdXBlcmJsb2Nr4oCcKQorIworbXNnaWQgIiIKK21zZ3N0ciAiIgorIlByb2plY3QtSWQtVmVyc2lvbjogdXRpbC1saW51eC1uZyAyLjEzLjEtcmMxXG4iCisiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPlxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEwLTAzLTIyIDA5OjM3KzAxMDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDA4LTAxLTA5IDE3OjM4KzAyMDBcbiIKKyJMYXN0LVRyYW5zbGF0b3I6IE1pY2hhZWwgUGllZmVsIDxwaWVmZWxAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+XG4iCisiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDx0cmFuc2xhdGlvbi10ZWFtLWRlQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKKyJNSU1FLVZlcnNpb246IDEuMFxuIgorIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOFxuIgorIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjYzCittc2dpZCAic2V0IHJlYWQtb25seSIKK21zZ3N0ciAiTnVyLUxlc2VuIHNldHplbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjcwCittc2dpZCAic2V0IHJlYWQtd3JpdGUiCittc2dzdHIgIkxlc2VuLVNjaHJlaWJlbiBzZXR6ZW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3NgorbXNnaWQgImdldCByZWFkLW9ubHkiCittc2dzdHIgIk51ci1MZXNlbiBlcm1pdHRlbG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo4MgorIywgZnV6enkKK21zZ2lkICJnZXQgbG9naWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJTZWt0b3JncsO2w59lIGVybWl0dGVsbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4CisjLCBmdXp6eQorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJTZWt0b3JncsO2w59lIGVybWl0dGVsbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjk0Cittc2dpZCAiZ2V0IG1pbmltdW0gSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwMAorbXNnaWQgImdldCBvcHRpbWFsIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDYKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGFsaWdubWVudCBvZmZzZXQiCittc2dzdHIgInVuZ8O8bHRpZ2UgSU5vZGUtR3LDtsOfZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExMgorIywgZnV6enkKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgIkV4dHJhLVNla3RvcmVuIHBybyBaeWxpbmRlciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExOAorbXNnaWQgImdldCBibG9ja3NpemUiCittc2dzdHIgIkJsb2NrZ3LDtsOfZSBlcm1pdHRlbG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMjUKK21zZ2lkICJzZXQgYmxvY2tzaXplIgorbXNnc3RyICJCbG9ja2dyw7bDn2Ugc2V0emVuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgIjMyLUJpdC1TZWt0b3ItWsOkaGxlciBlcm1pdHRlbG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAiR3LDtsOfZSBpbiBCeXRlcyBlcm1pdHRlbG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNDQKK21zZ2lkICJzZXQgcmVhZGFoZWFkIgorbXNnc3RyICJSZWFkYWhlYWQgKHZvcmF1c3NjaGF1ZW5kZXMgTGVzZW4pIHNldHplbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1MAorbXNnaWQgImdldCByZWFkYWhlYWQiCittc2dzdHIgIlJlYWRhaGVhZCBlcm1pdHRlbG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgIlJlYWRhaGVhZCAodm9yYXVzc2NoYXVlbmRlcyBMZXNlbikgZsO8ciBEYXRlaXN5c3RlbSBzZXR6ZW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgIlJlYWRhaGVhZCBmw7xyIERhdGVpc3lzdGVtIGVybWl0dGVsbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgIlB1ZmZlciBsZWVyZW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJQYXJ0aXRpb25zdGFiZWxsZSBlcm5ldXQgbGVzZW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6XG4iCittc2dzdHIgIkF1ZnJ1ZjpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFtHZXLDpHRlXVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgWy12fC1xXSBjb21tYW5kcyBkZXZpY2VzXG4iCittc2dzdHIgIiAlcyBbLXZ8LXFdIEJlZmVobGUgR2Vyw6R0ZVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBjb21tYW5kczpcbiIKK21zZ3N0ciAiVmVyZsO8Z2JhcmUgQmVmZWhsZTpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NworIywgZnV6enkKK21zZ2lkICJnZXQgc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzIgorbXNnc3RyICJHcsO2w59lIGluIEJ5dGVzIGVybWl0dGVsbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBjb21tYW5kOiAlc1xuIgorbXNnc3RyICIlczogVW5iZWthbm50ZXIgQmVmZWhsOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIGVyd2FydGV0IGVpbiBBcmd1bWVudFxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6Mzc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgIuKAnnNlZWvigJwgZ2VzY2hlaXRlcnQuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN1Y2NlZWRlZC5cbiIKK21zZ3N0ciAiJXMgZXJmb2xncmVpY2ggYmVlbmRldC5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlczogS29ubnRlICVzIG5pY2h0IMO2ZmZuZW5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW9jdGwgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IElPQ1RMLUZlaGxlciBiZWkgJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ4MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKK21zZ3N0ciAiTnVyTCAgUkEgICBTR3IgICBCR3IgICBTdGFydHNlayAgICAgR3LDtsOfZSAgIEdlcsOkdFxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAiQXVmcnVmOlxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJcdE5PVEU6IGVsdnR1bmUgb25seSB3b3JrcyB3aXRoIDIuNCBrZXJuZWxzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJwYXJzZSBlcnJvclxuIgorbXNnc3RyICJTZWVrLUZlaGxlciIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJsb2NrZGV2aWNlLCB1c2UgLWggZm9yIGhlbHBcbiIKK21zZ3N0ciAiJXMgaXN0IGtlaW4gYmxvY2tvcmllbnRpZXJ0ZXMgR2Vyw6R0IG9kZXIgRGF0ZWlcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJlbHZ0dW5lIGlzIG9ubHkgdXNlZnVsIG9uIG9sZGVyIGtlcm5lbHM7XG4iCisiZm9yIDIuNiB1c2UgSU8gc2NoZWR1bGVyIHN5c2ZzIHR1bmFibGVzIGluc3RlYWQuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIkZvcm1hdGllcmVuIOKApiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo0OSBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJCZWVuZGV0XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAiw5xiZXJwcsO8ZmVuIOKApiAiCisKKyMgVGhpcyBpcyBmcm9tIGEgcGVycm9yKCkKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MQorbXNnaWQgIlJlYWQ6ICIKK21zZ3N0ciAiTGVzZW46ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAiIgorIlByb2JsZW0gYmVpbSBMZXNlbiB2b24gWnlsaW5kZXIgJWQsIGVzIHd1cmRlICVkIGVyd2FydGV0LCBhYmVyICVkIGdlbGVzZW5cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJiYWQgZGF0YSBpbiBjeWwgJWRcbiIKKyJDb250aW51aW5nIC4uLiAiCittc2dzdHIgIiIKKyJCZXNjaMOkZGlndGUgRGF0ZW4gYmVpIFp5bGluZGVyICVkXG4iCisiT3BlcmF0aW9uIHdpcmQgZm9ydGdlc2V0enQg4oCmICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgIkF1ZnJ1ZjogJXMgWyAtbiBdIEdlcsOkdFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTE4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODQKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE4MSBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTE0IGRpc2stdXRpbHMvbWtmcy5jOjUyCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODEyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3MgorIzogZGlzay11dGlscy9ta3N3YXAuYzo0ODcgbWlzYy11dGlscy9kZGF0ZS5jOjE3OSBtaXNjLXV0aWxzL3JlbmFtZS5jOjc5CisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE0NyBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCVzKVxuIgorbXNnc3RyICIlcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICIlczoga2VpbiBibG9ja29yaWVudGllcnRlcyBHZXLDpHRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiS29ubnRlIGRhcyBha3R1ZWxsZSBGb3JtYXQgbmljaHQgZmVzdHN0ZWxsZW4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMtc2lkZWQsICVkIHRyYWNrcywgJWQgc2VjL3RyYWNrLiBUb3RhbCBjYXBhY2l0eSAlZCBrQi5cbiIKK21zZ3N0ciAiJXNzZWl0aWcsICVkIFNwdXJlbiwgJWQgU2VrdG9yZW4vU3B1ciwgVG90YWxlIEthcGF6aXTDpHQ6ICVka0IuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIkRvcHBlbCIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIlNpbmdsZSIKK21zZ3N0ciAiRWluZmFjaCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaHZdIFsteCBkaXJdIGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisiIC12ICAgICAgICAgYmUgbW9yZSB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB0byB0ZXN0XG4iCittc2dzdHIgIiIKKyJBdWZydWY6ICVzIFstaHZdIFsteCBWZXJ6XSBEYXRlaVxuIgorIiAtaCAgICAgICAgIGRpZXNlIEhpbGZlIGF1c2dlYmVuXG4iCisiIC14IFZlcnogICAgaW4gVmVyemVpY2huaXMgZXh0cmFoaWVyZW5cbiIKKyIgLXYgICAgICAgICBnZXNwcsOkY2hpZ2VyIHNlaW5cbiIKKyIgRGF0ZWkgICAgICB6dSB0ZXN0ZW5kZSBEYXRlaVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgIihOw6RjaHN0ZSBEYXRlaTogJXMpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTY3IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm9wZW4gZmFpbGVkOiAlcyIKK21zZ3N0ciAi4oCeb3BlbnB0eeKAnCBpc3QgZmVobGdlc2NobGFnZW5cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgZmFpbGVkOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGRldmljZSBzaXplOiAlcyIKK21zZ3N0ciAiJXM6IFdhcm51bmcg4oCTIGthbm4gRGF0ZWlzeXN0ZW1ncsO2w59lIG5pY2h0IGJlc3RpbW1lblxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgYSBibG9jayBkZXZpY2Ugb3IgZmlsZTogJXMiCittc2dzdHIgIiVzIGlzdCBrZWluIGJsb2Nrb3JpZW50aWVydGVzIEdlcsOkdCBvZGVyIERhdGVpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODQgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyNgorIywgZnV6enkKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgIiVzOiB1bmfDvGx0aWdlcyBjcmFtZnMg4oCTIERhdGVpbMOkbmdlIHp1IGt1cnpcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4OSBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTk3CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjU4IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKE7DpGNoc3RlIERhdGVpOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2CisjLCBmdXp6eQorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIkdlYmVuIFNpZSBkZW4gRGF0ZWlzeXN0ZW10eXAgZWluOiAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAiQW56YWhsIGRlciBTZWt0b3JlbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyMworbXNnaWQgInplcm8gZmlsZSBjb3VudCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIGV4dGVuZHMgcGFzdCBlbmQgb2YgZmlsZXN5c3RlbVxuIgorbXNnc3RyICJXYXJudW5nOiBQYXJ0aXRpb24gJXMgcmVpY2h0IMO8YmVyIGRhcyBFbmRlIGRlciBQbGF0dGUgaGluYXVzXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIiVzOiBXYXJudW5nIOKAkyBhbHRlcyBjcmFtZnMtQWJiaWxkLCBrZWluIENSQ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjcyIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozMzkKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NzcgbG9naW4tdXRpbHMvY2hmbi5jOjUyOSBsb2dpbi11dGlscy9jaHNoLmM6NDM5CisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE0MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzIxCittc2dpZCAibWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAi4oCebWFsbG9j4oCcIHNjaGx1ZyBmZWhsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjk3CisjLCBmdXp6eQorbXNnaWQgImNyYyBlcnJvciIKK21zZ3N0ciAiLCBGZWhsZXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjQKKyMsIGZ1enp5Cittc2dpZCAicm9vdCBpbm9kZSBpcyBub3QgZGlyZWN0b3J5IgorbXNnc3RyICLigJ5yb290IGlub2Rl4oCcIGlzdCBrZWluIFZlcnplaWNobmlzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByb290IG9mZnNldCAoJWx1KSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mzg3Cittc2dpZCAiZGF0YSBibG9jayB0b28gbGFyZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICIgTG9jaCBiZWkgJWxkICglZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyMyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgdW5jb21wcmVzc2luZyBibG9jayBhdCAlbGQgdG8gJWxkICglbGQpXG4iCittc2dzdHIgIiAgZW50cGFja2UgQmxvY2sgYmVpICVsZCBuYWNoICVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tYmxvY2sgKCVsZCkgYnl0ZXMiCittc2dzdHIgIiVzOiBOaWNodC1CbG9jayAoJWxkKSBCeXRlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tc2l6ZSAoJWxkIHZzICVsZCkgYnl0ZXMiCittc2dzdHIgIiVzOiBOaWNodC1HcsO2w59lICglbGQgdnMgJWxkKSBCeXRlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBmYWlsZWQ6ICVzIgorbXNnc3RyICIoTsOkY2hzdGUgRGF0ZWk6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGNob3duIGZhaWxlZDogJXMiCittc2dzdHIgIm1vdW50IGlzdCBmZWhsZ2VzY2hsYWdlbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibW91bnQgaXN0IGZlaGxnZXNjaGxhZ2VuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ1bmfDvGx0aWdlciBBdXN6ZWl0LVdlcnQ6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0OTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgIktvbm50ZSBuaWNodCBpbiBkYXMgVmVyemVpY2huaXMgL2RldiB3ZWNoc2VsbjogJW0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTEKK21zZ2lkICJmaWxlbmFtZSBsZW5ndGggaXMgemVybyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTE0Cittc2dpZCAiYmFkIGZpbGVuYW1lIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCisjLCBmdXp6eQorbXNnaWQgImJhZCBpbm9kZSBvZmZzZXQiCittc2dzdHIgInVuZ8O8bHRpZ2UgSU5vZGUtR3LDtsOfZSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUzNworbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NDAKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIHNpemUgYW5kIG5vbi16ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTcxCittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3NAorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICIlczogR3LDtsOfZW5mZWhsZXIgYmVpIHN5bWJvbGlzY2hlciBWZXJrbsO8cGZ1bmcg4oCeJXPigJxcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJBdWZydWYgdm9uIOKAnmZzeW5j4oCcIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWNpYWwgZmlsZSBoYXMgbm9uLXplcm8gb2Zmc2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjI1CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZm8gaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAic29ja2V0IGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJib2d1cyBtb2RlOiAlcyAoJW8pIgorbXNnc3RyICIlczogdW5zaW5uaWdlciBNb2R1cyBhdWYg4oCeJXPigJwgKCVvKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJta25vZCBmYWlsZWQ6ICVzIgorbXNnc3RyICJtb3VudCBpc3QgZmVobGdlc2NobGFnZW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Njg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisiJXM6IHVuZ8O8bHRpZ2VzIGNyYW1mcyDigJMgVmVyemVpY2huaXNkYXRlbmVuZGUgKCVsZCkgIT0gRGF0ZWlkYXRlbmFuZmFuZyAoJSIKKyJsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY5MAorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGZpbGUgZGF0YSBvZmZzZXQiCittc2dzdHIgIiVzOiB1bmfDvGx0aWdlcyBjcmFtZnMg4oCTIHVuZ8O8bHRpZ2VzIERhdGVpZGF0ZW5vZmZzZXRcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICJLb25udGUga2VpbmVuIFNwZWljaGVyIGbDvHIgZWluZW4gUHVmZmVyIHJlc2VydmllcmVuLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzI3CisjLCBmdXp6eQorbXNnaWQgImNvbXBpbGVkIHdpdGhvdXQgLXggc3VwcG9ydCIKK21zZ3N0ciAiJXM6IERpZSBVbnRlcnN0w7x0enVuZyBmw7xyIC14IHd1cmRlIG5pY2h0IG1pdCDDvGJlcnNldHp0XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1sYXJ2c21mXSAvZGV2L25hbWVcbiIKK21zZ3N0ciAiQXVmcnVmOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIGlzdCBlaW5nZWjDpG5ndC5cdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI1Cittc2dpZCAiRG8geW91IHJlYWxseSB3YW50IHRvIGNvbnRpbnVlIgorbXNnc3RyICJNw7ZjaHRlbiBTaWUgd2lya2xpY2ggZm9ydGZhaHJlbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgIsOcYmVycHLDvGZ1bmcgYWJnZWJyb2NoZW4uIFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNDggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiWm9uZW5udW1tZXIgPCBGSVJTVFpPTkUgaW4gRGF0ZWkg4oCeJXPigJwuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiWm9uZW5udW1tZXIgPj0gWk9ORVMgaW4gRGF0ZWkg4oCeJXPigJwuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzgwCittc2dpZCAiUmVtb3ZlIGJsb2NrIgorbXNnc3RyICJCbG9jayBlbnRmZXJuZW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiTGVzZWZlaGxlcjoga2FubiBuaWNodCB6dSBCbG9jayBzcHJpbmdlbiBpbiBEYXRlaSDigJ4lc+KAnFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJGZWhsZXIgYmVpbSBMZXNlbjogYmVzY2jDpGRpZ3RlciBCbG9jayBpbiBEYXRlaSDigJ4lc+KAnFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyJJbnRlcm5lciBGZWhsZXI6IGJlaW0gVmVyc3VjaCBlaW5lbiBiZXNjaMOkZGlndGVuIEJsb2NrIHp1IHNjaHJlaWJlblxuIgorIlNjaHJlaWJhbndlaXN1bmcgw7xiZXJnYW5nZW5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICLigJ5zZWVr4oCcIGZlaGxnZXNjaGxhZ2VuIGluIHdyaXRlX2Jsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gU2NocmVpYmVuOiBiZXNjaMOkZGlndGVyIEJsb2NrIGluIERhdGVpIOKAniVz4oCcXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICLigJ5zZWVr4oCcIGZhaWxlZCBpbiB3cml0ZV9zdXBlcl9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAiS29ubnRlIGRlbiBTdXBlcmJsb2NrIG5pY2h0IHNjaHJlaWJlbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiS29ubnRlIGRpZSDigJ5pbm9kZSBtYXDigJwgbmljaHQgc2NocmVpYmVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgIktvbm50ZSBkaWUg4oCeem9uZSBtYXDigJwgbmljaHQgc2NocmVpYmVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJLb25udGUgZGllIOKAnmlub2Rlc+KAnCBuaWNodCBzY2hyZWliZW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU4NworbXNnaWQgInNlZWsgZmFpbGVkIgorbXNnc3RyICLigJ5zZWVr4oCcIGdlc2NoZWl0ZXJ0LiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICJrYW5uIFB1ZmZlciBmw7xyIFRhYmVsbGVuIG5pY2h0IHJlc2VydmllcmVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAiS29ubnRlIGRlbiBTdXBlcmJsb2NrIG5pY2h0IGxlc2VuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJVbmfDvGx0aWdlIOKAnm1hZ2ljIG51bWJlcuKAnCBpbSBTdXBlcmJsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTQKK21zZ2lkICJPbmx5IDFrIGJsb2Nrcy96b25lcyBzdXBwb3J0ZWQiCittc2dzdHIgIkVzIHdlcmRlbiBudXIgQmzDtmNrZS9ab25lbiB2b24gMWsgR3LDtsOfZSB1bnRlcnN0w7x0enQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJVbmfDvGx0aWdlciBXZXJ0IGltIEZlbGQg4oCec19pbWFwX2Jsb2Nr4oCcIGltIFN1cGVyYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxOAorbXNnaWQgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJVbmfDvGx0aWdlciBXZXJ0IGltIEZlbGQg4oCec196bWFwX2Jsb2Nr4oCcIGltIFN1cGVyYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyNQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIG1hcCIKK21zZ3N0ciAiS2VpbiBTcGVpY2hlcnBsYXR6IGbDvHIg4oCeaW5vZGUgbWFw4oCcIHZlcmbDvGdiYXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyOAorIywgZnV6enkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAiS2VpbiBTcGVpY2hlcnBsYXR6IGbDvHIg4oCeaW5vZGUgbWFw4oCcIHZlcmbDvGdiYXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzMworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiS2VpbiBTcGVpY2hlcnBsYXR6IGbDvHIg4oCeaW5vZGVz4oCcIHZlcmbDvGdiYXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICJLZWluIFNwZWljaGVycGxhdHogZsO8ciDigJ5pbm9kZSBjb3VudOKAnCB2ZXJmw7xnYmFyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIGNvdW50IgorbXNnc3RyICJLZWluIFNwZWljaGVycGxhdHogZsO8ciDigJ56b25lIGNvdW504oCcIHZlcmbDvGdiYXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlIG1hcCIKK21zZ3N0ciAiS2FubiDigJ5pbm9kZSBtYXDigJwgbmljaHQgbGVzZW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MworbXNnaWQgIlVuYWJsZSB0byByZWFkIHpvbmUgbWFwIgorbXNnc3RyICJLYW5uIOKAnnpvbmUgbWFw4oCcIG5pY2h0IGxlc2VuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDUKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZXMiCittc2dzdHIgIkthbm4g4oCeaW5vZGVz4oCcIG5pY2h0IGxlc2VuLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICJXYXJudW5nOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgaW5vZGVzXG4iCittc2dzdHIgIiVsZCBpbm9kZXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgYmxvY2tzXG4iCittc2dzdHIgIiVsZCBCbMO2Y2tlXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NCBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3RkYXRhem9uZT0lbGQgKCVsZClcbiIKK21zZ3N0ciAiRmlyc3RkYXRhem9uZT0lbGQgKCVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lc2l6ZT0lZFxuIgorbXNnc3RyICJab25lc2l6ZT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF4c2l6ZT0lbGRcbiIKK21zZ3N0ciAiTWF4c2l6ZT0lbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKK21zZ3N0ciAiRmlsZXN5c3RlbSBzdGF0ZT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjczIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtYXJrZWQgdW51c2VkLCBidXQgdXNlZCBmb3IgZmlsZSAnJXMnXG4iCittc2dzdHIgIiIKKyJJbm9kZSAlZCBpc3QgYWxzIHVuYmVudXR6dCBnZWtlbm56ZWljaG5ldCwgYWJlciBEYXRlaSDigJ4lc+KAnCBiZW51dHp0IHNpZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI4Cittc2dpZCAiTWFyayBpbiB1c2UiCittc2dzdHIgIklub2RlIGFscyBiZW51dHp0IGtlbm56ZWljaG5lbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc0OAorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZmlsZSBgJXMnIGhhcyBtb2RlICUwNW9cbiIKK21zZ3N0ciAiRGllIERhdGVpIOKAniVz4oCcIGhhdCBNb2RlICUwNW9cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzA2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpbm9kZSBjb3VudCB0b28gYmlnLlxuIgorbXNnc3RyICJXYXJudW5nOiDigJ5pbm9kZSBjb3VudOKAnCB6dSBncm/Dny5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc3NAorbXNnaWQgInJvb3QgaW5vZGUgaXNuJ3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIuKAnnJvb3QgaW5vZGXigJwgaXN0IGtlaW4gVmVyemVpY2huaXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc4OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgaGFzIGJlZW4gdXNlZCBiZWZvcmUuIE5vdyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJCbG9jayB3dXJkZSB6dXZvciBiZW51dHp0LiBOdW4gaW4gRGF0ZWkg4oCeJXPigJwuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3OTAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIzCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTUKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxMAorbXNnaWQgIkNsZWFyIgorbXNnc3RyICJadXLDvGNrc2V0emVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iCittc2dzdHIgIkJsb2NrICVkIGluIERhdGVpIOKAniVz4oCcIGlzdCBhbHMgdW5iZW51dHp0IG1hcmtpZXJ0LiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzNQorbXNnaWQgIkNvcnJlY3QiCittc2dzdHIgIktvcnJpZ2llcmVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZGlyZWN0b3J5ICclcycgY29udGFpbnMgYSBiYWQgaW5vZGUgbnVtYmVyIGZvciBmaWxlICclLipzJy4iCittc2dzdHIgIiIKKyJEYXMgVmVyemVpY2huaXMg4oCeJXPigJwgZW50aMOkbHQgZWluZSB1bmfDvGx0aWdlIElub2RlLU51bW1lciBmw7xyIERhdGVpIOKAniUuKnPigJwuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBFbnRmZXJuZW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKK21zZ3N0ciAiJXM6IHVuZ8O8bHRpZ2VzIFZlcnplaWNobmlzOiDigJ4u4oCcIGtvbW10IG5pY2h0IHp1ZXJzdFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiJXM6IHVuZ8O8bHRpZ2VzIFZlcnplaWNobmlzOiDigJ4uLuKAnCBrb21tdCBuaWNodCBhbHMgendlaXRlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMTkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAiaW50ZXJuZXIgRmVobGVyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTA0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiJXM6IHVuZ8O8bHRpZ2VzIFZlcnplaWNobmlzOiBHcsO2w59lIDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAic2VlayBpbiBiYWRfem9uZSBmZWhsZ2VzY2hsYWdlbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICJJbm9kZSAlZCBNb2R1cyBuaWNodCB6dXLDvGNrZ2VzZXR6dC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIklub2RlICVkIG5pY2h0IGJlbnV0enQsIGluIEJpdG1hcCBhbHMgYmVudXR6dCBtYXJraWVydC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCB1c2VkLCBtYXJrZWQgdW51c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJJbm9kZSAlZCBiZW51dHp0LCBpbiBCaXRtYXAgYWxzIHVuYmVudXR6dCBtYXJraWVydC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNgorbXNnaWQgIlNldCIKK21zZ3N0ciAiU2V0emVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJbm9kZSAlZCAoTW9kdXMgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGdlesOkaGx0PSVkLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIyCittc2dpZCAiU2V0IGlfbmxpbmtzIHRvIGNvdW50IgorbXNnc3RyICJTZXR6ZSBpX25saW5rcyBhdWYgY291bnQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICJab25lICVkOiBhbHMgYmVudXR6dCBtYXJraWVydCwga2VpbmUgRGF0ZWkgYmVudXR6dCBzaWUuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIk1hcmsuIGVudGYuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlpvbmUgJWQ6IGluIEJlbnV0enVuZywgZ2V6w6RobHQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWm9uZSAlZDogbmljaHQgaW4gQmVudXR6dW5nLCBnZXrDpGhsdD0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg5IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3NworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc5Cittc2dpZCAiYmFkIGlub2RlIHNpemUiCittc2dzdHIgInVuZ8O8bHRpZ2UgSU5vZGUtR3LDtsOfZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI5MQorbXNnaWQgImJhZCB2MiBpbm9kZSBzaXplIgorbXNnc3RyICJ1bmfDvGx0aWdlIFYyLUlOb2RlLUdyw7bDn2UiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMTcKK21zZ2lkICJuZWVkIHRlcm1pbmFsIGZvciBpbnRlcmFjdGl2ZSByZXBhaXJzIgorbXNnc3RyICJCcmF1Y2hlIFRlcm1pbmFsIGbDvHIgaW50ZXJha3RpdmUgUmVwYXJhdHVyZW4uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzIxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIKK21zZ3N0ciAiS29ubnRlIOKAniVz4oCcIG5pY2h0IMO2ZmZuZW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgY2xlYW4sIG5vIGNoZWNrLlxuIgorbXNnc3RyICIlcyBpc3QgaW4gT3JkbnVuZywga2VpbmUgw5xiZXJwcsO8ZnVuZy5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JjaW5nIGZpbGVzeXN0ZW0gY2hlY2sgb24gJXMuXG4iCittc2dzdHIgIsOcYmVycHLDvGZ1bmcgZGVzIERhdGVpc3lzdGVtIGF1ZiAlcyBlcnp3dW5nZW4uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBvbiAlcyBpcyBkaXJ0eSwgbmVlZHMgY2hlY2tpbmcuXG4iCittc2dzdHIgIkRhdGVpc3lzdGVtIGF1ZiAlcyBpc3QgZ2VzdMO2cnQgKGRpcnR5KSwgw5xiZXJwcsO8ZnVuZyBlcmZvcmRlcmxpY2guXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2bGQgaW5vZGVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIiCisiXG4iCisiJTZsZCBJTm9kZXMgYmVudXR6dGVuICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkIHpvbmVzIGJlbnV0enRlbiAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmQgcmVndWzDpHJlIERhdGVpZW5cbiIKKyIlNmQgVmVyemVpY2huaXNzZVxuIgorIiU2ZCB6ZWljaGVub3JpZW50aWVydGUgR2Vyw6R0ZVxuIgorIiU2ZCBibG9ja29yaWVudGllcnRlIEdlcsOkdGVcbiIKKyIlNmQgVmVya27DvHBmdW5nZW5cbiIKKyIlNmQgc3ltYm9saXNjaGUgVmVya27DvHBmdW5nZW5cbiIKKyItLS0tLS1cbiIKKyIlNmQgRGF0ZWllblxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiRklMRSBTWVNURU0gSEFTIEJFRU4gQ0hBTkdFRFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiREFURUlTWVNURU0gV1VSREUgR0XDhE5ERVJUXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IGZlaGxzY2hsYWdlbmVzIMOWZmZuZW4gdm9uOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNlZWsgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IEZlaGxlciBiZWltIFNlZWsgYXVmICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogRmVobGVyIGJlaW0gTGVzZW4gYXVmICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3IgY291bnQ6ICVkLCBzZWN0b3Igc2l6ZTogJWRcbiIKK21zZ3N0ciAiU2VrdG9yYW56YWhsOiAlZCwgU2VrdG9yZ3LDtsOfZTogJWRcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAiJXM6IEZlaGxlciBiZWltIFBhcnNlbiBkZXIgT3B0aW9uXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKK21zZ3N0ciAiQXVmcnVmOiAlcyBbLXhdIFstZCA8WmFobD5dIGlzbzk2NjAtSW1hZ2VcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy12XSBbLU4gbnItb2YtaW5vZGVzXSBbLVYgdm9sdW1lLW5hbWVdXG4iCisiICAgICAgIFstRiBmc25hbWVdIGRldmljZSBbYmxvY2stY291bnRdXG4iCittc2dzdHIgIiIKKyJBdWZydWY6ICVzIFstdl0gWy1OIHphaGwtZGVyLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICAgWy1GIGZzbmFtZV0gZ2Vyw6R0IFtibG9jay1hbnphaGxdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAidm9sdW1lLU5hbWUgaXN0IHp1IGxhbmciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzcKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAiZnNuYW1lIGlzdCB6dSBsYW5nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IGRldmljZSAlcyIKK21zZ3N0ciAia2FubiBuaWNodCBhdWYgR2Vyw6R0ICVzIHp1Z3JlaWZlbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBibG9jayBzcGVjaWFsIGRldmljZSIKK21zZ3N0ciAiJXMgaXN0IGtlaW4gYmxvY2tvcmllbnRpZXJ0ZXMgR2Vyw6R0IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAiZXMgaXN0IG5pY2h0IG3DtmdsaWNoLCAlcyB6dSDDtmZmbmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgc2l6ZSBvZiAlcyIKK21zZ3N0ciAiZXMgaXN0IG5pY2h0IG3DtmdsaWNoLCBkaWUgR3LDtsOfZSB2b24gJXMgZmVzdHp1c3RlbGxlbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgIuKAnmJsb2Nrc+KAnC1Bcmd1bWVudCB6dSBncm/DnywgbWF4IGlzdCAlbHUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMDIKK21zZ2lkICJ0b28gbWFueSBpbm9kZXMgLSBtYXggaXMgNTEyIgorbXNnc3RyICJ6dSB2aWVsZSBJbm9kZXMg4oCTIE1heGltdW0gaXN0IDUxMiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAibmljaHQgZ2Vuw7xnZW5kIFBsYXR6OyBlcyB3ZXJkZW4gd2VuaWdzdGVucyAlbHUgQmzDtmNrZSBiZW7DtnRpZ3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjMgZmRpc2svZmRpc2suYzoyNjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZTogJXNcbiIKK21zZ3N0ciAiR2Vyw6R0OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlZvbHVtZTogPCUtNnM+XG4iCittc2dzdHIgIlZvbHVtZTogPCUtNnM+XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRlNuYW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiRFNOYW1lOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIkJsb2NrZ3LDtsOfZTogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJJbm9kZXM6ICVkIChpbiAxIEJsb2NrKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAlbGxkIGJsb2NrcylcbiIKK21zZ3N0ciAiSW5vZGVzOiAlZCAoaW4gJWxkIEJsw7Zja2VuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJCbG9ja3M6ICVsbGRcbiIKK21zZ3N0ciAiQmzDtmNrZTogJWxkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgZW5kOiAlZCwgRGF0YSBlbmQ6ICVkXG4iCittc2dzdHIgIklub2RlLUVuZGU6ICVkLCBEYXRlbmVuZGU6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgIkZlaGxlciBiZWltIFNjaHJlaWJlbiBkZXMgU3VwZXJibG9ja3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNTkKK21zZ2lkICJlcnJvciB3cml0aW5nIHJvb3QgaW5vZGUiCittc2dzdHIgIkZlaGxlciBiZWltIFNjaHJlaWJlbiBkZXIgUm9vdC1Jbm9kZSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NAorbXNnaWQgImVycm9yIHdyaXRpbmcgaW5vZGUiCittc2dzdHIgIkZlaGxlciBiZWltIFNjaHJlaWJlbiBkZXIgSW5vZGUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjcKK21zZ2lkICJzZWVrIGVycm9yIgorbXNnc3RyICJTZWVrLUZlaGxlciIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3MworbXNnaWQgImVycm9yIHdyaXRpbmcgLiBlbnRyeSIKK21zZ3N0ciAiRmVobGVyIGJlaW0gU2NocmVpYmVuIGRlcyDigJ4u4oCcLUVpbnRyYWdzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6Mjc3Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAiRmVobGVyIGJlaW0gU2NocmVpYmVuIGRlcyDigJ4uLuKAnC1FaW50cmFncyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjbG9zaW5nICVzIgorbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hsaWXDn2VuIHZvbiAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICJBdWZydWY6IG1rZnMgWy1WXSBbLXQgRlMtVHlwXSBbRlMtT3B0aW9uZW5dIEdlcsOkdCBbR3LDtsOfZV1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6ODggZGlzay11dGlscy9ta2ZzLmM6OTYgZmRpc2svY2ZkaXNrLmM6MzUzCisjOiBnZXRvcHQvZ2V0b3B0LmM6ODYgZ2V0b3B0L2dldG9wdC5jOjk2IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE91dCBvZiBtZW1vcnkhXG4iCittc2dzdHIgIiVzOiBTcGVpY2hlciBpc3QgYXVmZ2VicmF1Y2h0IVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtmcyAoJXMpXG4iCittc2dzdHIgIm1rZnMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MTI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaF0gWy12XSBbLWIgYmxrc2l6ZV0gWy1lIGVkaXRpb25dIFstTiBlbmRpYW5dIFstaSBmaWxlXSBbLW4gIgorIm5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAtdiAgICAgICAgIGJlIHZlcmJvc2VcbiIKKyIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgKG5vbi16ZXJvIGV4aXQgc3RhdHVzKVxuIgorIiAtYiBibGtzaXplIHVzZSB0aGlzIGJsb2Nrc2l6ZSwgbXVzdCBlcXVhbCBwYWdlIHNpemVcbiIKKyIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgY3JhbWZzIGVuZGlhbm5lc3MgKGJpZ3xsaXR0bGV8aG9zdCksIGRlZmF1bHQgaG9zdFxuIgorIiAtaSBmaWxlICAgIGluc2VydCBhIGZpbGUgaW1hZ2UgaW50byB0aGUgZmlsZXN5c3RlbSAocmVxdWlyZXMgPj0gMi40LjApXG4iCisiIC1uIG5hbWUgICAgc2V0IG5hbWUgb2YgY3JhbWZzIGZpbGVzeXN0ZW1cbiIKKyIgLXAgICAgICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIgorIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisiIC16ICAgICAgICAgbWFrZSBleHBsaWNpdCBob2xlcyAocmVxdWlyZXMgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3NlZFxuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCittc2dzdHIgIiIKKyJBdWZydWY6ICVzIFstaF0gWy12XSBbLWIgYmxrZ3JdIFstZSBlZGl0aW9uXSBbLWkgZGF0ZWldIFstbiBuYW1lXSB2ZXJ6bmFtZSAiCisiYXVzZGF0ZWlcbiIKKyIgLWggICAgICAgICBkaWVzZSBIaWxmZSBhdXNnZWJlblxuIgorIiAtdiAgICAgICAgIHdvcnRyZWljaCBzZWluXG4iCisiIC1FICAgICAgICAgYWxsZSBXYXJudW5nZW4genUgRmVobGVybiBtYWNoZW4gKHZvbiAwIHZlcnNjaC4gRXhpdC1TdGF0dXMpXG4iCisiIC1iIGJsa2dyICAgZGllc2UgQmxvY2tncsO2w59lIHZlcndlbmRlbiwgbXVzcyBnbGVpY2ggZGVyIFNlaXRlbmdyw7bDn2Ugc2VpblxuIgorIiAtZSBlZGl0aW9uIEVkaXRpb24tTnVtbWVyIHNldHplbiAoVGVpbCB2b24gZnNpZClcbiIKKyIgLWkgZGF0ZWkgICBlaW4gRGF0ZWlhYmJpbGQgaW4gZGFzIERhdGVpc3lzdGVtIGVpbmbDvGdlbiAoYmVuw7Z0aWd0ID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIG5hbWUgZGVzIGNyYW1mcy1EYXRlaXN5c3RlbXMgc2V0emVuXG4iCisiIC1wICAgICAgICAgbWl0ICVkIEJ5dGVzIGbDvHIgQm9vdC1Db2RlIGF1ZmbDvGxsZW5cbiIKKyIgLXMgICAgICAgICBWZXJ6ZWljaG5pc2VpbnRyw6RnZSBzb3J0aWVyZW4gKGFsdGUgT3B0aW9uLCBpZ25vcmllcnQpXG4iCisiIC16ICAgICAgICAgZXhwbGl6aXRlIEzDtmNoZXIgbWFjaGVuIChiZW7DtnRpZ3QgPj0gMi4zLjM5KVxuIgorIiB2ZXJ6bmFtZSAgIFd1cnplbCBkZXMgenUga29tcHJpbWllcmVuZGVuIERhdGVpc3lzdGVtc1xuIgorIiBhdXNkYXRlaSAgIEF1c2dhYmVkYXRlaVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MzM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVmVyeSBsb25nICglenUgYnl0ZXMpIGZpbGVuYW1lIGAlcycgZm91bmQuXG4iCisiIFBsZWFzZSBpbmNyZWFzZSBNQVhfSU5QVVRfTkFNRUxFTiBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICBFeGl0aW5nLlxuIgorbXNnc3RyICIiCisiU2VociBsYW5nZXIgKCV1IEJ5dGVzKSBEYXRlaW5hbWUg4oCeJXPigJwgZ2VmdW5kZW4uXG4iCisiIEJpdHRlIHNldHplbiBTaWUgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBob2NoIHVuZCDDvGJlcnNldHplbiBTaWVcbiIKKyIgZXJuZXV0LiBCcmVjaGUgamV0enQgYWIuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo0NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlsZXN5c3RlbSB0b28gYmlnLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiRGF0ZWlzeXN0ZW0genUgZ3Jvw58uIEJyZWNoZSBqZXR6dCBhYi5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIkFJRUVFOiBCbG9jayBhdWYgPiAyw5dCbG9ja2zDpG5nZSAoJWxkKSDigJ5rb21wcmltaWVydOKAnFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiJTYuMmYlJSAoJStkIEJ5dGVzKVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorIldhcm51bmc6IEdyb2JzY2jDpHR6dW5nIGRlciBiZW7DtnRpZ3RlbiBHcsO2w59lIChvYmVyZSBTY2hyYW5rZSkgaXN0ICVMZE1CLCBhYmVyICIKKyJtYXhpbWFsZSBBYmJpbGQtR3LDtsOfZSBpc3QgJXVNQi4gV2lyIGvDtm5udGVuIGZyw7xoemVpdGlnIHN0ZXJiZW4uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4ODAKK21zZ2lkICJST00gaW1hZ2UgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5jbHVkaW5nOiAlc1xuIgorbXNnc3RyICJFaW5zY2hsaWXDn2xpY2g6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRpcmVjdG9yeSBkYXRhOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiVmVyemVpY2huaXNkYXRlbjogJWQgQnl0ZXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICJBbGxlczogJWQgS2lsb2J5dGVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN1cGVyIGJsb2NrOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiU3VwZXJibG9jazogJWQgQnl0ZXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDUkM6ICV4XG4iCittc2dzdHIgIkNSQzogJXhcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICIiCisibmljaHQgZ2VudWcgUmF1bSBmw7xyIFJPTS1BYmJpbGQgYmVyZWl0Z2VzdGVsbHQgKCVMZCBiZXJlaXRnZXN0ZWxsdCwgJWQgIgorImJlbnV0enQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiU2NocmVpYmVuIGRlcyBST00tQWJiaWxkcyBmZWhsZ2VzY2hsYWdlbiAoJWQgJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZW5hbWVzIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMuXG4iCittc2dzdHIgIldhcm51bmc6IERhdGVpbmFtZSBhdWYgMjU1IEJ5dGVzIGFiZ2VzY2huaXR0ZW4uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iCittc2dzdHIgIldhcm51bmc6IERhdGVpZW4gd3VyZGVuIHdlZ2VuIEZlaGxlcm4gw7xiZXJzcHJ1bmdlbi5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIHNpemVzIHRydW5jYXRlZCB0byAlbHVNQiAobWludXMgMSBieXRlKS5cbiIKK21zZ3N0ciAiV2FybnVuZzogRGF0ZWlncsO2w59lbiBhYmdlc2Nobml0dGVuIGF1ZiAlbHVNQiAobWludXMgMSBCeXRlKS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogdWlkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisiV2FybnVuZzogVUlEcyBhYmdlc2Nobml0dGVuIGF1ZiAldSBCaXRzLiAgKERpZXMga8O2bm50ZSBlaW4gU2ljaGVyaGVpdHNyaXNpa28gIgorInNlaW4uKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBnaWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKyJXYXJudW5nOiBHSURzIGFiZ2VzY2huaXR0ZW4gYXVmICV1IEJpdHMuICAoRGllcyBrw7ZubnRlIGVpbiBTaWNoZXJoZWl0c3Jpc2lrbyAiCisic2Vpbi4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisiV0FSTlVORzogR2Vyw6R0ZW51bW1lcm4gYWJnZXNjaG5pdHRlbiBhdWYgJXUgQml0cy4gRGFzIGJlZGV1dGV0IGJlaW5haGUgbWl0XG4iCisiU2ljaGVyaGVpdCwgZGFzcyBlaW5pZ2UgR2Vyw6R0ZWRhdGVpZW4gZmFsc2NoIHNpbmQuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIkF1ZnJ1ZjogJXMgWy1jIHwgLWwgRGF0ZWldIFstblhYXSBbLWlYWF0gL2Rldi9OYW1lIFtCbMO2Y2tlXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBhIGZpbGVzeXN0ZW0gaGVyZSEiCittc2dzdHIgIiVzIGlzdCBlaW5nZWjDpG5ndDsgZXMgd2lyZCBoaWVyIGtlaW4gRGF0ZWlzeXN0ZW0gYW5nZWxlZ3QhIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxODgKK21zZ2lkICJzZWVrIHRvIGJvb3QgYmxvY2sgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAiU2VlayBhdWYgQm9vdGJsb2NrIGZlaGxnZXNjaGxhZ2VuIGluIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkwCittc2dpZCAidW5hYmxlIHRvIGNsZWFyIGJvb3Qgc2VjdG9yIgorbXNnc3RyICJrYW5uIEJvb3RzZWt0b3IgbmljaHQgbMO2c2NoZW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MgorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAiU2VlayBmZWhsZ2VzY2hsYWdlbiBpbiB3cml0ZV90YWJsZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgImthbm4gSW5vZGUtVGFiZWxsZW4gbmljaHQgc2NocmVpYmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTgKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgImthbm4gWm9uZW50YWJlbGxlIG5pY2h0IHNjaHJlaWJlbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjAwCittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAia2FubiBJbm9kZXMgbmljaHQgc2NocmVpYmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgIlNjaHJlaWJlbiBmZWhsZ2VzY2hsYWdlbiBpbiB3cml0ZV9ibG9jayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjE3IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjI5MQorIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MzQwCittc2dpZCAidG9vIG1hbnkgYmFkIGJsb2NrcyIKK21zZ3N0ciAienUgdmllbGUgYmVzY2jDpGRpZ3RlIEJsw7Zja2UiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgIm5pY2h0IGdlbsO8Z2VuZCBndXRlIEJsw7Zja2UiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0MAorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzIGZvciBtYXBzIgorbXNnc3RyICJrYW5uIFB1ZmZlciBmw7xyIFRhYmVsbGVuIG5pY2h0IHJlc2VydmllcmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgImthbm4gUHVmZmVyIGbDvHIgSW5vZGVzIG5pY2h0IHJlc2VydmllcmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk1heHNpemU9JWxkXG4iCisiXG4iCittc2dzdHIgIiIKKyJNYXhncsO2w59lPSVsZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NjkKK21zZ2lkICJzZWVrIGZhaWxlZCBkdXJpbmcgdGVzdGluZyBvZiBibG9ja3MiCittc2dzdHIgIlNlZWsgZmVobGdlc2NobGFnZW4gd8OkaHJlbmQgQmxvY2vDvGJlcnByw7xmdW5nIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2VpcmQgdmFsdWVzIGluIGRvX2NoZWNrOiBwcm9iYWJseSBidWdzXG4iCittc2dzdHIgIk1lcmt3w7xyZGlnZSBXZXJ0ZSBpbiBkb19jaGVjazogd2FocnNjaGVpbmxpY2ggRmVobGVyXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUwOCBkaXNrLXV0aWxzL21rc3dhcC5jOjMxNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIKK21zZ3N0ciAiU2VlayBmZWhsZ2VzY2hsYWdlbiBpbiBjaGVja19ibG9ja3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUxNworbXNnaWQgImJhZCBibG9ja3MgYmVmb3JlIGRhdGEtYXJlYTogY2Fubm90IG1ha2UgZnMiCittc2dzdHIgIiIKKyJiZXNjaMOkZGlndGUgQmzDtmNrZSB2b3IgZGVtIERhdGVuYmVyZWljaDoga2FubiBrZWluIERhdGVpc3lzdGVtIGhlcnN0ZWxsZW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyMyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgYmFkIGJsb2Nrc1xuIgorbXNnc3RyICIlZCBiZXNjaMOkZGlndGUgQmzDtmNrZVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAiZWluIGJlc2Now6RkaWd0ZXIgQmxvY2tcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgImthbm4gRGF0ZWkgbWl0IGJlc2Now6RkaWd0ZW4gQmzDtmNrZW4gbmljaHQgw7ZmZm5lbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQwCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJLb25udGUgbmljaHQgdm9uIGRlciBGZXN0cGxhdHRlIGxlc2VuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgInN0cnRvbC1GZWhsZXI6IEFuemFobCBkZXIgQmzDtmNrZSBuaWNodCBhbmdlZ2ViZW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAia2FubiBrZWluIOKAnnN0YXTigJwgYXVmICVzIGFud2VuZGVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgImthbm4gJXMgbmljaHQgw7ZmZm5lbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIKK21zZ3N0ciAiZXMgaXN0IG5pY2h0IG3DtmdsaWNoLCBkaWUgR3LDtsOfZSB2b24gJXMgZmVzdHp1c3RlbGxlbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrIHNpemUgc21hbGxlciB0aGFuIHBoeXNpY2FsIHNlY3RvciBzaXplIG9mICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzaXplIG9mICVzIgorbXNnc3RyICJlcyBpc3QgbmljaHQgbcO2Z2xpY2gsIGRpZSBHcsO2w59lIHZvbiAlcyBmZXN0enVzdGVsbGVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICJFcyB3aXJkIG5pY2h0IHZlcnN1Y2h0LCBlaW4gRGF0ZWlzeXN0ZW0gYXVmIOKAniVz4oCcIHp1IGVyemV1Z2VuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjUKKyMsIGZ1enp5Cittc2dpZCAibnVtYmVyIG9mIGJsb2NrcyB0b28gc21hbGwiCittc2dzdHIgIkFuemFobCBkZXIgU2VrdG9yZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWRcbiIKK21zZ3N0ciAiVW5nw7xsdGlnZSBudXR6ZXJkZWZpbmllcnRlIFNlaXRlbmdyw7bDn2UgJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiQmVudXR6ZSBudXR6ZXJkZWZpbmllcnRlIFNlaXRlbmdyw7bDn2UgJWQgYW5zdGVsbGUgZGVyIFN5c3RlbXdlcnRlICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBzd2FwIGhlYWRlciBzaXplLCBubyBsYWJlbCB3cml0dGVuLlxuIgorbXNnc3RyICJVbmfDvGx0aWdlIFN3YXAtSGVhZGVyZ3LDtsOfZSwga2VpbiBMYWJlbCBnZXNjaHJpZWJlbi5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFiZWwgd2FzIHRydW5jYXRlZC5cbiIKK21zZ3N0ciAiTGFiZWwgd3VyZGUgYWJnZXNjaG5pdHRlbi5cbiIKKworIyBkaXRvCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICJrZWluIExhYmVsLCAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHV1aWRcbiIKK21zZ3N0ciAia2VpbmUgVVVJRFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI4MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1wUEFHRVNaXSBbLUwgbGFiZWxdIFstVSBVVUlEXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiIgorIkF1ZnJ1ZjogJXMgWy1jXSBbLXYwfC12MV0gWy1wU0VJVEVOR1LDllNTRV0gWy1MIExhYmVsXSAvZGV2L05hbWUgW0Jsw7Zja2VdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICJadSB2aWVsZSBiZXNjaMOkZGlndGUg4oCeU2VpdGVu4oCcIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiU3BlaWNoZXIgaXN0IGF1ZmdlYnJhdWNodCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBwYWdlXG4iCittc2dzdHIgIkVpbmUgYmVzY2jDpGRpZ3RlIOKAnlNlaXRl4oCcXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSBiYWQgcGFnZXNcbiIKK21zZ3N0ciAiJWx1IGJlc2Now6RkaWd0ZSBTZWl0ZW5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MDIgZGlzay11dGlscy9ta3N3YXAuYzo0MzkgZGlzay11dGlscy9ta3N3YXAuYzo2NTkKK21zZ2lkICJ1bmFibGUgdG8gcmV3aW5kIHN3YXAtZGV2aWNlIgorbXNnc3RyICJrYW5uIFN3YXAtR2Vyw6R0IG5pY2h0IHp1csO8Y2tzcHVsZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBuZXcgbGliYmxraWQgcHJvYmUiCittc2dzdHIgImthbm4gUHVmZmVyIGbDvHIgSW5vZGVzIG5pY2h0IHJlc2VydmllcmVuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgImthbm4gQm9vdHNla3RvciBuaWNodCBsw7ZzY2hlbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB3YXJuaW5nOiBkb24ndCBlcmFzZSBib290Yml0cyBzZWN0b3JzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKCVzIHBhcnRpdGlvbiB0YWJsZSBkZXRlY3RlZCkuICIKK21zZ3N0ciAiICAgcCAgIERpZSBCU0QtUGFydGl0aW9uc3RhYmVsbGUgYW56ZWlnZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiICAgcyAgIGtvbXBsZXR0ZXMgRGlza2xhYmVsIHplaWdlbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKGNvbXBpbGVkIHdpdGhvdXQgbGliYmxraWQpLiAiCittc2dzdHIgIiAgIHMgICBrb21wbGV0dGVzIERpc2tsYWJlbCB6ZWlnZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkb2VzIG5vdCBzdXBwb3J0IHN3YXBzcGFjZSB2ZXJzaW9uICVkLlxuIgorbXNnc3RyICIlczogRmVobGVyOiB1bmJla2FubnRlIFZlcnNpb24gJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyJGZWhsZXIgYmVpbSBTY2hsaWXDn2VuIHZvbiBEYXRlaVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IE5vd2hlcmUgdG8gc2V0IHVwIHN3YXAgb24/XG4iCittc2dzdHIgIiIKKyIlczogRXMgd3VyZGUgbmljaHQgYW5nZWdlYmVuLCB3byBkZXIgU3dhcGJlcmVpY2ggYW5nZWxlZ3Qgd2VyZGVuIHNvbGwuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHNpemUgJWxsdSBLaUIgaXMgbGFyZ2VyIHRoYW4gZGV2aWNlIHNpemUgJWxsdSBLaUJcbiIKK21zZ3N0ciAiIgorIiVzOiBGZWhsZXI6IERpZSBhbmdlZ2ViZW5lIEdyw7bDn2UgJWx1IGlzdCBncsO2w59lciBhbHMgZGllIGRlcyBHZXLDpHRlczogJWx1XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHN3YXAgYXJlYSBuZWVkcyB0byBiZSBhdCBsZWFzdCAlbGQgS2lCXG4iCittc2dzdHIgIiVzOiBGZWhsZXI6IERlciBTd2FwYmVyZWljaCBtdXNzIG1pbmRlc3RlbnMgJWxka0IgZ3Jvw58gc2VpblxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBXYXJudW5nOiBEZXIgU3dhcGJlcmVpY2ggd2lyZCBudXIgbWl0IGRlciBHcsO2w59lICVsZGtCIGFuZ2VsZWd0XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogd2lsbCBub3QgdHJ5IHRvIG1ha2Ugc3dhcGRldmljZSBvbiAnJXMnXG4iCittc2dzdHIgIiVzOiBGZWhsZXI6IEVzIHdpcmQgbmljaHQgdmVyc3VjaHQsIFN3YXAgYXVmIOKAmiVz4oCYIGFuenVsZWdlblxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6ICVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2Ugc3dhcHNwYWNlLlxuIgorbXNnc3RyICIlczogRmVobGVyOiAlcyBpc3QgZWluZ2Vow6RuZ3Q7IGVzIHdpcmQgaGllciBrZWluIFN3YXAgYW5nZWxlZ3QuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjQ4Cittc2dpZCAiVW5hYmxlIHRvIHNldCB1cCBzd2FwLXNwYWNlOiB1bnJlYWRhYmxlIgorbXNnc3RyICJFcyBpc3QgbmljaHQgbcO2Z2xpY2gsIGVpbmVuIFN3YXBiZXJlaWNoIGVpbnp1cmljaHRlbjogbmljaHQgbGVzYmFyIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyB1cCBzd2Fwc3BhY2UgdmVyc2lvbiAxLCBzaXplID0gJWxsdSBLaUJcbiIKK21zZ3N0ciAiU3dhcGJlcmVpY2ggVmVyc2lvbiAlZCB3aXJkIGFuZ2VsZWd0LCBHcsO2w59lICVsbHUgS0J5dGVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byB3cml0ZSBzaWduYXR1cmUgcGFnZTogJXMiCittc2dzdHIgImthbm4gU2lnbmF0dXJzZWl0ZSBuaWNodCBzY2hyZWliZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICJBdWZydWYgdm9uIOKAnmZzeW5j4oCcIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBtYXRjaHBhdGhjb24oKSIKK21zZ3N0ciAia2FubiBrZWluIOKAnnN0YXTigJwgYXVmICVzIGFud2VuZGVuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MworbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgbmV3IHNlbGludXggY29udGV4dCIKK21zZ3N0ciAia2FubiBrZWluZW4gbmV1ZW4gU0UtTGludXgtS29udGV4dCBhbmxlZ2VuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5NQorbXNnaWQgImNvdWxkbid0IGNvbXB1dGUgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJrb25udGUgU0UtTGludXgtS29udGV4dCBuaWNodCBiZXJlY2huZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NzAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiJXM6IGtvbm50ZSAlcyBuaWNodCBpbiAlcyB1bWJlbmVubmVuOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiICAlcyAiCittc2dzdHIgIkF1ZnJ1ZjpcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKworIyBUaGlzIG9uZSBzaG91bGQgYmUgbWVyZ2VkIHdpdGggdGhlIG5leHQgb25lIGJ5IHVzaW5nCisjIGVycm9yKCkgaW5zdGVhZCBvZiBwcmludGYoKQorIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJLb25udGUgZGllIExvY2stRGF0ZWkgJXMgbmljaHQgc3BlcnJlbjogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICJXYXJudW5nOiAlcyBpc3Qga2VpbiBibG9ja29yaWVudGllcnRlcyBHZXLDpHRcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIG1hc3RlciByYXcgZGV2aWNlICciCittc2dzdHIgImthbm4gbmljaHQgYXVmIEdlcsOkdCAlcyB6dWdyZWlmZW4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgImthbm4gbmljaHQgYXVmIEdlcsOkdCAlcyB6dWdyZWlmZW4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIvZGV2LyVzIGlzdCBrZWluIHplaWNoZW5vcmllbnRpZXJ0ZXMgR2Vyw6R0IgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgcmF3IGRldlxuIgorbXNnc3RyICIlcyBpc3Qga2VpbiBibG9ja29yaWVudGllcnRlcyBHZXLDpHQiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHF1ZXJ5aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjQxIGRpc2stdXRpbHMvcmF3LmM6MjYxCisjLCBjLWZvcm1hdAorbXNnaWQgInJhdyVkOlx0Ym91bmQgdG8gbWFqb3IgJWQsIG1pbm9yICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHNldHRpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIkZlaGxlciBiZWltIFN0b3BwZW4gZGVzIFNlcnZpY2Ug4oCeJXPigJwiCisKKyMgIlVuYnJhdWNoYmFyIgorIzogZmRpc2svY2ZkaXNrLmM6Mzc4IGZkaXNrL2NmZGlzay5jOjIwODMKK21zZ2lkICJVbnVzYWJsZSIKK21zZ3N0ciAiVW5iZW51dHpiYXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAiRnJlaWVyIEJlcmVpY2giCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MworbXNnaWQgIkxpbnV4IGV4dDIiCittc2dzdHIgIkxpbnV4IGV4dDIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NQorbXNnaWQgIkxpbnV4IGV4dDMiCittc2dzdHIgIkxpbnV4IGV4dDMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NworbXNnaWQgIkxpbnV4IFhGUyIKK21zZ3N0ciAiTGludXggWEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozODkKK21zZ2lkICJMaW51eCBKRlMiCittc2dzdHIgIkxpbnV4IEpGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkxCittc2dpZCAiTGludXggUmVpc2VyRlMiCittc2dzdHIgIkxpbnV4IFJlaXNlckZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NworbXNnaWQgIkxpbnV4IgorbXNnc3RyICJMaW51eCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk2Cittc2dpZCAiT1MvMiBIUEZTIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5OAorbXNnaWQgIk9TLzIgSUZTIgorbXNnc3RyICJPUy8yIElGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDAyCittc2dpZCAiTlRGUyIKK21zZ3N0ciAiTlRGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaGFzIGJlZW4gY2hhbmdlZC5cbiIKK21zZ3N0ciAiRmVzdHBsYXR0ZSB3dXJkZSB2ZXLDpG5kZXJ0LlxuIgorCisjOiBmZGlzay9jZmRpc2suYzo0MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVib290IHRoZSBzeXN0ZW0gdG8gZW5zdXJlIHRoZSBwYXJ0aXRpb24gdGFibGUgaXMgY29ycmVjdGx5IHVwZGF0ZWQuXG4iCittc2dzdHIgIiIKKyJSZWJvb3RlbiBTaWUgZGFzIFN5c3RlbSwgdW0gc2ljaGVyenVzdGVsbGVuLCBkYXNzIGRpZSBQYXJ0aXRpb25zdGFiZWxsZSBuZXUgIgorImdlbGVzZW4gd2lyZC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJXQVJOVU5HOiBXZW5uIFNpZSBlaW5lIERPUy02LngtUGFydGl0aW9uIGFuZ2VsZWd0XG4iCisib2RlciB2ZXLDpG5kZXJ0IGhhYmVuLCBkYW5uIHNjaGF1ZW4gU2llIGJpdHRlIGluIGRpZVxuIgorImNmZGlzay1tYW51YWwtU2VpdGUgbmFjaCB3ZWl0ZXJlbiBJbmZvcm1hdGlvbmVuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNgorbXNnaWQgIkZBVEFMIEVSUk9SIgorbXNnc3RyICJGQVRBTEVSIEZFSExFUiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE3Cittc2dpZCAiUHJlc3MgYW55IGtleSB0byBleGl0IGNmZGlzayIKK21zZ3N0ciAiRWluZSBUYXN0ZSBkcsO8Y2tlbiwgdW0gY2ZkaXNrIHp1IGJlZW5kZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NCBmZGlzay9jZmRpc2suYzo1NzIKK21zZ2lkICJDYW5ub3Qgc2VlayBvbiBkaXNrIGRyaXZlIgorbXNnc3RyICJLb25udGUg4oCec2Vlaygp4oCcIG5pY2h0IGF1ZiBkZXIgRmVzdHBsYXR0ZSBiZW51dHplbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY2Cittc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIKK21zZ3N0ciAiS29ubnRlIG5pY2h0IHZvbiBkZXIgRmVzdHBsYXR0ZSBsZXNlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIktvbm50ZSBuaWNodCBhdWYgZGllIEZlc3RwbGF0dGUgc2NocmVpYmVuIgorCisjOiBmZGlzay9jZmRpc2suYzo5MTcKK21zZ2lkICJUb28gbWFueSBwYXJ0aXRpb25zIgorbXNnc3RyICJadSB2aWVsZSBQYXJ0aXRpb25lbiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTIyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIlBhcnRpdGlvbiBmw6RuZ3Qgdm9yIFNla3RvciAwIGFuIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIlBhcnRpdGlvbiBlbmRldCB2b3IgU2VrdG9yIDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIlBhcnRpdGlvbiBmw6RuZ3QgaGludGVyIGRlbSBFbmRlIGRlciBGZXN0cGxhdHRlIGFuIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiUGFydGl0aW9uIGVuZGV0IGhpbnRlciBkZW0gRW5kZSBkZXIgRmVzdHBsYXR0ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgIlBhcnRpdGlvbiBlbmRldCBpbSBsZXR6dGVuIHRlaWx3ZWlzZW4gWnlsaW5kZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2NgorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBub3QgaW4gZGlzayBvcmRlciIKK21zZ3N0ciAibG9naXNjaGUgUGFydGl0aW9uZW4gbmljaHQgaW4gUGxhdHRlbi1SZWloZW5mb2xnZSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgImxvZ2lzY2hlIFBhcnRpdGlvbmVuIMO8YmVybGFwcGVuIgorCisjOiBmZGlzay9jZmRpc2suYzo5NzMKK21zZ2lkICJlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAidmVyZ3LDtsOfZXJ0ZSBsb2dpc2NoZSBQYXJ0aXRpb25lbiDDvGJlcmxhcHBlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAwMworbXNnaWQgIiIKKyIhISEhIEludGVybmFsIGVycm9yIGNyZWF0aW5nIGxvZ2ljYWwgZHJpdmUgd2l0aCBubyBleHRlbmRlZCBwYXJ0aXRpb24gISEhISIKK21zZ3N0ciAiIgorIiEhIEludGVybmVyIEZlaGxlciBiZWltIEVyemV1Z2VuIGVpbmVyIGxvZy4gUGFydC4gb2huZSBlaW5lIGVydy4gUGFydC4gISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMTQgZmRpc2svY2ZkaXNrLmM6MTAyNgorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxvZ2ljYWwgZHJpdmUgaGVyZSAtLSB3b3VsZCBjcmVhdGUgdHdvIGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiIKKyJLYW5uIGhpZXIga2VpbmUgbG9nLiBQYXJ0LiBhbmxlZ2VuIC0tIGVpbmUgendlaXRlIGVydy4gbcO8c3N0ZSBlcnpldWd0IHdlcmRlbi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjExNjgKK21zZ2lkICJNZW51IGl0ZW0gdG9vIGxvbmcuIE1lbnUgbWF5IGxvb2sgb2RkLiIKK21zZ3N0ciAiTWVuw7xlaW50cmFnIGlzdCB6dSBsYW5nLiBEYXMgTWVuw7wga8O2bm50ZSB1bmdld8O2aG5saWNoIGF1c3NlaGVuIgorCisjICJBdXNyaWNodHVuZyIgIk5laG1lIGhvcml6b250YWxlIFZvcmVpbnN0ZWxsdW5nLiIKKyM6IGZkaXNrL2NmZGlzay5jOjEyMjQKKyMsIGZ1enp5Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiTWVuw7wgb2huZSBSaWNodHVuZywgdmVyd2VuZGUgaG9yaXpvbnRhbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAiRGllc2UgVGFzdGUgaXN0IGhpZXIgbmljaHQgdmVyd2VuZGJhciIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM3OQorbXNnaWQgIlByZXNzIGEga2V5IHRvIGNvbnRpbnVlIgorbXNnc3RyICJFaW5lIFRhc3RlIGRyw7xja2VuLCB1bSBmb3J0enVmYWhyZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiUHJpbcOkcmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYKK21zZ2lkICJDcmVhdGUgYSBuZXcgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIkVyemV1Z2UgZWluZSBuZXVlIHByaW3DpHJlIFBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNyBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODUKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJMb2dpY2FsIgorbXNnc3RyICJMb2dpc2NoZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNworbXNnaWQgIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiRXJ6ZXVnZSBlaW5lIG5ldWUgbG9naXNjaGUgUGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMgZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkNhbmNlbCIKK21zZ3N0ciAiQWJicnVjaCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICJFcnpldWdlIGtlaW5lIG5ldWUgUGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiISEhIEludGVybmVyIEZlaGxlciAhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiR3LDtsOfZSAoaW4gTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIkFuZmFuZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgYmVnaW5uaW5nIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkVyemV1Z2UgUGFydGl0aW9uIGFtIEFuZmFuZyBkZXMgZnJlaWVuIEJlcmVpY2hlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkVuZCIKK21zZ3N0ciAiRW5kZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkVyemV1Z2UgUGFydGl0aW9uIGFtIEVuZGUgZGVzIGZyZWllbiBCZXJlaWNoZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICJLZWluIFBsYXR6LCB1bSBkaWUgZXJ3ZWl0ZXJ0ZSBQYXJ0aXRpb24gYW56dWxlZ2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc0Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJLZWluZSBQYXJ0aXRpb25zdGFiZWxsZS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3OAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiS2VpbmUgUGFydGl0aW9uc3RhYmVsbGUuIEZhbmdlIG1pdCBOdWxsLVRhYmVsbGUgYW4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlVuZ8O8bHRpZ2UgU2lnbmF0dXIgYW4gUGFydGl0aW9uc3RhYmVsbGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTIKK21zZ2lkICJVbmtub3duIHBhcnRpdGlvbiB0YWJsZSB0eXBlIgorbXNnc3RyICJVbmJla2FubnRlciBQYXJ0aXRpb25zdGFiZWxsZW50eXAiCisKKyMgSWYgcnBtYXRjaCBpcyBhdmFpbGFibGUsIOKAmGrigJkgZm9yIOKAnGph4oCdIHdpbGwgZG8uIElmIG5vdCwgbXkgdHJhbnNsYXRpb24KKyMgaXMgd3JvbmcuIEFueXdheSwgSSBvcHQgZm9yIGEgZnVsbC1mZWF0dXJlZCBDIGxpYnJhcnkuCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAiTcO2Y2h0ZW4gU2llIG1pdCBlaW5lciBOdWxsLVRhYmVsbGUgYmVnaW5uZW4gW2ovTl0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NDIKK21zZ2lkICJZb3Ugc3BlY2lmaWVkIG1vcmUgY3lsaW5kZXJzIHRoYW4gZml0IG9uIGRpc2siCittc2dzdHIgIlNpZSBoYWJlbiBtZWhyIFp5bGluZGVyIGFuZ2VnZWJlbiwgYWxzIGF1ZiBkaWUgRmVzdHBsYXR0ZSBwYXNzZW4iCisKKyMgVGhhdCdzIG5vdCBhIGRpcmVjdCB0cmFuc2xhdGlvbiwgYnV0IEkndmUgdHJpZWQgdG8gYmUKKyMgbW9yZSBpbmZvcm1hdGl2ZS4KKyM6IGZkaXNrL2NmZGlzay5jOjE2NzQKK21zZ2lkICJDYW5ub3Qgb3BlbiBkaXNrIGRyaXZlIgorbXNnc3RyICJLb25udGUgbmljaHQgYXVmIGRpZSBGZXN0cGxhdHRlIHp1Z3JlaWZlbiIKKworIyAiTnVyIGxlc2VuZGVyIFp1Z3JpZmYgbcO2Z2xpY2gg4oCTIFNpZSBoYWJlbiBrZWluZSBTY2hyZWliYmVyZWNodGlndW5nIiAoam9leSkKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzYgZmRpc2svY2ZkaXNrLmM6MTg2NQorbXNnaWQgIk9wZW5lZCBkaXNrIHJlYWQtb25seSAtIHlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gd3JpdGUiCittc2dzdHIgIiIKKyJQbGF0dGUgd3VyZGUgbnVyIHp1bSBMZXNlbiBnZcO2ZmZuZXQg4oCTIFNpZSBoYWJlbiBrZWluZSBSZWNodGUgenVtIFNjaHJlaWJlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY4NworbXNnaWQgIiIKKyJXYXJuaW5nISEgIFVuc3VwcG9ydGVkIEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkLiBVc2UgR05VIFBhcnRlZC4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTcwNgorbXNnaWQgIkNhbm5vdCBnZXQgZGlzayBzaXplIgorbXNnc3RyICJLb25udGUgZGllIEdyw7bDn2UgZGVyIEZlc3RwbGF0dGUgbmljaHQgZmVzdHN0ZWxsZW4iCisKKyMgIlVuZ8O8bHRpZ2UgcHJpbcOkcmUgUGFydGl0aW9uIgorIzogZmRpc2svY2ZkaXNrLmM6MTczMgorbXNnaWQgIkJhZCBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiQmVzY2jDpGRpZ3RlIHByaW3DpHJlIFBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiQmVzY2jDpGRpZ3RlIGxvZ2lzY2hlIFBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg3NworbXNnaWQgIldhcm5pbmchISAgVGhpcyBtYXkgZGVzdHJveSBkYXRhIG9uIHlvdXIgZGlzayEiCittc2dzdHIgIldhcm51bmchISAgRGllcyBrYW5uIERhdGVuIGF1ZiBkZXIgRmVzdHBsYXR0ZSB6ZXJzdMO2cmVuISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4MQorbXNnaWQgIiIKKyJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrPyAoeWVzIG9yIG5vKTogIgorbXNnc3RyICIiCisiU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBkaWUgUGFydGl0aW9uc3RhYmVsbGUgc2NocmVpYmVuIHdvbGxlbj9cbiIKKyIo4oCeamHigJwgb2RlciDigJ5uZWlu4oCcKTogIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg3Cittc2dpZCAibm8iCittc2dzdHIgIm5laW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODkKK21zZ2lkICJEaWQgbm90IHdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJEaWUgUGFydGl0aW9uc3RhYmVsbGUgd3VyZGUgbmljaHQgYXVmIGRpZSBGZXN0cGxhdHRlIGdlc2NocmllYmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoxODkxCittc2dpZCAieWVzIgorbXNnc3RyICJqYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5NQorbXNnaWQgIlBsZWFzZSBlbnRlciBgeWVzJyBvciBgbm8nIgorbXNnc3RyICJCaXR0ZSDigJ5qYeKAnCBvZGVyIOKAnm5laW7igJwgZWluZ2ViZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTkKK21zZ2lkICJXcml0aW5nIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrLi4uIgorbXNnc3RyICJEaWUgUGFydGl0aW9uc3RhYmVsbGUgd2lyZCBhdWYgZGllIEZlc3RwbGF0dGUgZ2VzY2hyaWViZW7igKYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJEaWUgUGFydGl0aW9uc3RhYmVsbGUgd3VyZGUgYXVmIGRpZSBGZXN0cGxhdHRlIGdlc2NocmllYmVuIgorCisjIFRoYXQncyBub3QgYSBnb29kIHRyYW5zbGF0aW9uLCBidXQgSSBndWVzcywgSSBjYW4ndCBtYWtlIGl0IGxvbmdlci4KKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKKyMsIGZ1enp5Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIkRpZSBUYWJlbGxlIHd1cmRlIGdlc2Noci4sIGFiZXIgZGFzIE5ldWVpbmxlc2VuIHNjaGx1ZyBmZWhsLiAgUmVib290ZW4gU2llLiIKKworIyBUaGlzIG9uZSBpc24ndCByZWFsbHkgY29ycmVjdC4KKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIktlaW5lIHByaW3DpHJlIFBhcnRpdGlvbiBhbHMgYm9vdGbDpGhpZyBtYXJraWVydDsgZGVyIERPUy1NQlIga2FubiBuaWNodCAiCisiYm9vdGVuLiIKKworIyBUaGlzIG9uZSBpc24ndCByZWFsbHkgY29ycmVjdC4KKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJNZWhyZXJlIFBhcnRpdGlvbmVuIHNpbmQgYWxzIGJvb3Rmw6RoaWcgbWFya2llcnQ7IGRlciBET1MtTUJSIGthbm4gbmljaHQgIgorImJvb3Rlbi4iCisKKyMgIkdlYmVuIHNpZSBlaW5lbiBEYXRlaW5hbWVuIGVpbiBvZGVyIGRyw7xja2VuIFNpZSBSZXR1cm4sIHVtIGVzIGF1ZiBkZW0gQmlsZHNjaGlybSBhbnp1emVpZ2VuOiAiCisjIGlzIHRvbyBsb25nCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICJEYXRlaW5hbWUgb2RlciBSZXR1cm4gdW0gZXMgYXVmIGRlbSBCaWxkc2NoaXJtIGFuenV6ZWlnZW46ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAwNSBmZGlzay9jZmRpc2suYzoyMTIzIGZkaXNrL2NmZGlzay5jOjIyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIgorbXNnc3RyICJLb25udGUg4oCeJXPigJwgbmljaHQgw7ZmZm5lbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlc1xuIgorbXNnc3RyICJGZXN0cGxhdHRlOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNla3RvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2VrdG9yICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgS2VpbmUgICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NworbXNnaWQgIiAgIFByaS9Mb2ciCittc2dzdHIgIiAgIFByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgICBQcmltw6RyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA1MQorbXNnaWQgIiAgIExvZ2ljYWwiCittc2dzdHIgIiAgTG9naXNjaGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwODkgZmRpc2svZmRpc2suYzoxNzY3IGZkaXNrL2ZkaXNrLmM6MjEwNgorIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIyNyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjE2IGZkaXNrL3NmZGlzay5jOjYzOAorbXNnaWQgIlVua25vd24iCittc2dzdHIgIlVuYmVrYW5udCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NSBmZGlzay9jZmRpc2suYzoyNTYzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOQorbXNnaWQgIkJvb3QiCittc2dzdHIgIkJvb3QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiKCUwMlgpIgorbXNnc3RyICIoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTkKK21zZ2lkICJOb25lIgorbXNnc3RyICJLZWluIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM0IGZkaXNrL2NmZGlzay5jOjIyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIFRhYmxlIGZvciAlc1xuIgorbXNnc3RyICJQYXJ0aXRpb25zdGFiZWxsZSB2b24gJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNgorbXNnaWQgIiAgICAgICAgICAgICAgIEZpcnN0ICAgICAgIExhc3RcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICAgRXJzdGVyICAgTGV0enRlclxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM3Cittc2dpZCAiIgorIiAjIFR5cGUgICAgICAgU2VjdG9yICAgICAgU2VjdG9yICAgT2Zmc2V0ICAgIExlbmd0aCAgIEZpbGVzeXN0ZW0gVHlwZSAoSUQpICIKKyJGbGFnXG4iCittc2dzdHIgIiIKKyIgIyBUeXAgICAgICAgIFNla3RvciAgICAgIFNla3RvciAgIE9mZnNldCAgICBMw6RuZ2UgICAgRGF0ZWlzeXN0ZW10eXAgKElEKSAgIgorIkZsYWdzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIxCisjLCBmdXp6eQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiAgICAgICAgIC0tLUFuZmFuZ3MtLS0tICAgICAgLS0tLS1FbmQtLS0tLS0gICBBbmZhbmdzLSAgIEFuemFobCBkZXJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMgorIywgZnV6enkKK21zZ2lkICIgIyBGbGFncyBIZWFkIFNlY3QgIEN5bCAgIElEICBIZWFkIFNlY3QgIEN5bCAgICAgU2VjdG9yICAgIFNlY3RvcnNcbiIKK21zZ3N0ciAiICMgRmxhZ3MgS29wZiBTZWt0IFp5bC4gIElEICBLb3BmIFNla3QgWnlsICAgIFNla3RvciAgICAgU2VrdG9yZW5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworIywgZnV6enkKK21zZ2lkICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICLigJ5Sb2jigJwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IgorbXNnc3RyICJEaWUg4oCecm9oZW7igJwgRGF0ZW4gZGVyIFRhYmVsbGUgYXVzZ2ViZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlNla3RvcmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiRGllIFRhYmVsbGUgbmFjaCBTZWt0b3JlbiBzb3J0aWVydCBhdXNnZWJlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIlRhYmxlIgorbXNnc3RyICJUYWJlbGxlIgorCisjICJOdXIgZGllIFBhcnRpdGlvbnN0YWJlbGxlIGF1c2dlYmVuIiAoam9leSkKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkVpbmZhY2ggZGllIFRhYmVsbGUgYXVzZ2ViZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJEb24ndCBwcmludCB0aGUgdGFibGUiCittc2dzdHIgIlplaWdlIGRpZSBUYWJlbGxlIG5pY2h0IGFuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg3Cittc2dpZCAiSGVscCBTY3JlZW4gZm9yIGNmZGlzayIKK21zZ3N0ciAiSGlsZmUgZsO8ciBjZmRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODkKK21zZ2lkICJUaGlzIGlzIGNmZGlzaywgYSBjdXJzZXMgYmFzZWQgZGlzayBwYXJ0aXRpb25pbmcgcHJvZ3JhbSwgd2hpY2giCittc2dzdHIgIkRpZXMgaXN0IGNmZGlzaywgZWluIFByb2dyYW1tIGRhcyBjdXJzZXMgYmVudXR6dCB1bmQgZXMgaWhuZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgImVybGF1YnQsIGF1ZiBJaHJlbiBGZXN0cGxhdHRlbiBQYXJ0aXRpb25lbiBhbnp1bGVnZW4sIHp1IGzDtnNjaGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgInVuZCB6dSB2ZXLDpG5kZXJuLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MworbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKK21zZ3N0ciAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorCisjICJCZWZlaGwiCisjOiBmZGlzay9jZmRpc2suYzoyMjk1Cittc2dpZCAiQ29tbWFuZCAgICAgIE1lYW5pbmciCittc2dzdHIgIkJlZmVobCAgICAgQmVkZXV0dW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk2Cittc2dpZCAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCittc2dzdHIgIi0tLS0tLS0tICAgICAtLS0tLS0tLS0iCisKKyMgIiAgYiAgICAgICAgICBXZWNoc2VsdCB6d2lzY2hlbiBib290ZsOkaGlnIHVuZCBuaWNodCBib290ZsOkaGlnLiIKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTcKK21zZ2lkICIgIGIgICAgICAgICAgVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIiCisiICBiICAgICAgICAgIChEZSlBa3RpdmllcmVuIGRlcyBib290ZsOkaGlnLWZsYWdzIGRlciBha3R1ZWxsZW4gUGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk4Cittc2dpZCAiICBkICAgICAgICAgIERlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgZCAgICAgICAgICBEaWUgYWt0dWVsbGUgUGFydGl0aW9uIGzDtnNjaGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIiCisiICBnICAgICAgICAgIERpZSBBbnphaGwgZGVyIFp5bGluZGVyLCBLw7ZwZmUgdW5kIFNla3RvcmVuIHBybyBTcHVyIMOkbmRlcm4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgICAgICAgICAgV0FSTklORzogVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBwZW9wbGUgd2hvIgorbXNnc3RyICIgICAgICAgICAgICAgV0FSTlVORzogRGllc2UgRnVua3Rpb24gc29sbHRlIG51ciB2b24gTGV1dGVuIGJlbnV0enQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgICAgICAgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLiIKK21zZ3N0ciAiICAgICAgICAgICAgIHdlcmRlbiwgZGllIHdpc3Nlbiwgd2FzIHNpZSB0dW4uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAyCittc2dpZCAiICBoICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgIGggICAgICAgICAgRGllc2UgSGlsZmUgYW56ZWlnZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgbSAgICAgICAgICBNYXhpbWllcmVuIGRlciBOdXR6dW5nIGRlciBha3R1ZWxsZW4gUGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA0Cittc2dpZCAiICAgICAgICAgICAgIE5vdGU6IFRoaXMgbWF5IG1ha2UgdGhlIHBhcnRpdGlvbiBpbmNvbXBhdGlibGUgd2l0aCIKK21zZ3N0ciAiIgorIiAgICAgICAgICAgICBCZWFjaHRlbiBTaWUsIGRhc3MgZGllcyBkaWUgUGFydGl0aW9uIG5pY2h0IG1laHIga29tcGF0aWJlbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAgICAgICAgICBET1MsIE9TLzIsIC4uLiIKK21zZ3N0ciAiICAgICAgICAgICAgIHp1IERPUywgT1MvMiwg4oCmIG1hY2hlbiBrYW5uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA2Cittc2dpZCAiICBuICAgICAgICAgIENyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiICBuICAgICAgICAgIEF1cyBkZW0gZnJlaWVuIEJlcmVpY2ggZWluZSBuZXVlIFBhcnRpdGlvbiBlcnpldWdlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgcCAgICAgICAgICBQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIiIKKyIgIHAgICAgICAgICAgRGllIFBhcnRpdGlvbnN0YWIuIGF1ZiBkZW0gQmlsZHNjaGlybSBvZGVyIGluIGVpbmUgRGF0ZWkgIgorImF1c2dlYmVuIgorCisjICJ2ZXJzY2hpZWRlbmUiCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICAgRXMgZ2lidCBtZWhyZXJlIEZvcm1hdGUgZsO8ciBkaWUgUGFydGl0aW9uc3RhYmVsbGUsIGF1cyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIgICAgICAgICAgICAgZGVuZW4gbWFuIHfDpGhsZW4ga2FubiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIiCisiICAgICAgICAgICAgICAgIHIg4oCTIOKAnlJvaGXigJwgRGF0ZW4gKHdhcyBhdWYgZGllIEZlc3RwbGF0dGUgZ2VzY2hyaWViZW4gd8O8cmRlKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAgICAgICAgICAgICBzIC0gVGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICIgICAgICAgICAgICAgICAgcyDigJMgVGFiZWxsZSBuYWNoIFNla3RvcmVuIHNvcnRpZXJ0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEyCittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICIgICAgICAgICAgICAgICAgdCDigJMgVGFiZWxsZSBtaXQgZGVuIHJlaW5lbiBEYXRlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgcSAgICAgICAgICBRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorIiAgcSAgICAgICAgICBEYXMgUHJvZ3JhbW0gYmVlbmRlbiBvaG5lIGRpZSBQYXJ0aXRpb25zdGFiZWxsZSB6dSBzY2hyZWliZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTQKK21zZ2lkICIgIHQgICAgICAgICAgQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIiAgdCAgICAgICAgICBEZW4gRGF0ZWlzeXN0ZW10eXAgw6RuZGVybiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNQorbXNnaWQgIiAgdSAgICAgICAgICBDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkiCittc2dzdHIgIiAgdSAgICAgICAgICBFaW5oZWl0IGbDvHIgZGllIEdyw7bDn2VuYW56ZWlnZSDDpG5kZXJuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE2Cittc2dpZCAiICAgICAgICAgICAgIFJvdGF0ZXMgdGhyb3VnaCBNQiwgc2VjdG9ycyBhbmQgY3lsaW5kZXJzIgorbXNnc3RyICIgICAgICAgICAgICAgV2VjaHNlbHQgendpc2NoZW4gTUIsIFNla3RvcmVuIHVuZCBaeWxpbmRlcm4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiIgorIiAgVyAgICAgICAgICBEaWUgUGFydGl0aW9uc3RhYmVsbGUgYXVmIGRpZSBGZXN0cGxhdHRlIHNjaHJlaWJlbiAoZ3Jvw59lcyBXKSIKKworIyBvciAiRGEgZGllc2VzIOKApiIgPworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiAgICAgICAgICAgICBEYSBkaWVzIERhdGVuIGF1ZiBkZXIgRmVzdHBsYXR0ZSB6ZXJzdMO2cmVuIGthbm4sIG3DvHNzZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgICAgICAgICAgZWl0aGVyIGNvbmZpcm0gb3IgZGVueSB0aGUgd3JpdGUgYnkgZW50ZXJpbmcgYHllcycgb3IiCittc2dzdHIgIiAgICAgICAgICAgICBTaWUgZGFzIFNjaHJlaWJlbiBtaXQg4oCeeWVz4oCcIG9kZXIg4oCebm/igJwgYmVzdMOkdGlnZW4gb2RlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIgICAgICAgICAgICAgYWJsZWhuZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjEKK21zZ2lkICJVcCBBcnJvdyAgICAgTW92ZSBjdXJzb3IgdG8gdGhlIHByZXZpb3VzIHBhcnRpdGlvbiIKK21zZ3N0ciAiUGZlaWwtaG9jaCAgIERlbiBDdXJzb3IgenVyIHZvcmhlcmlnZW4gUGFydGl0aW9uIGJld2VnZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjIKK21zZ2lkICJEb3duIEFycm93ICAgTW92ZSBjdXJzb3IgdG8gdGhlIG5leHQgcGFydGl0aW9uIgorbXNnc3RyICJQZmVpbC1ydW50ZXIgRGVuIEN1cnNvciB6dXIgbsOkY2hzdGVuIFBhcnRpdGlvbiBiZXdlZ2VuIgorCisjICJCYXV0IGRlbiBCaWxkc2NoaXJtIG5ldSBhdWYiCisjOiBmZGlzay9jZmRpc2suYzoyMzIzCittc2dpZCAiQ1RSTC1MICAgICAgIFJlZHJhd3MgdGhlIHNjcmVlbiIKK21zZ3N0ciAiU3RyZy1MICAgICAgIFplaWNobmV0IGRlbiBCaWxkc2NoaXJtIGVybmV1dCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICA/ICAgICAgICAgIERpZXNlIEhpbGZlIGFuemVpZ2VuIgorCisjICJIaW53ZWlzIgorIzogZmRpc2svY2ZkaXNrLmM6MjMyNgorbXNnaWQgIk5vdGU6IEFsbCBvZiB0aGUgY29tbWFuZHMgY2FuIGJlIGVudGVyZWQgd2l0aCBlaXRoZXIgdXBwZXIgb3IgbG93ZXIiCittc2dzdHIgIkhpbndlaXM6IEFsbGUgQmVmZWhsZSBrw7ZubmVuIG1pdCBLbGVpbi0gb2RlciBHcm/Dn2J1Y2hzdGFiZW4gIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI3Cittc2dpZCAiY2FzZSBsZXR0ZXJzIChleGNlcHQgZm9yIFdyaXRlcykuIgorbXNnc3RyICJlaW5nZWdlYmVuIHdlcmRlbiAoYXXDn2VyIFcgenVtIFNjaHJlaWJlbikuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzIKK21zZ2lkICJDeWxpbmRlcnMiCittc2dzdHIgIiBaeWxpbmRlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OAorbXNnaWQgIkNoYW5nZSBjeWxpbmRlciBnZW9tZXRyeSIKK21zZ3N0ciAiRGllIEFuemFobCBkZXIgWnlsaW5kZXIgw6RuZGVybiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OSBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMwCittc2dpZCAiSGVhZHMiCittc2dzdHIgIkvDtnBmZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJEaWUgQW56YWhsIGRlciBLw7ZwZmUgw6RuZGVybiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiCittc2dzdHIgIkRpZSBBbnphaGwgZGVyIFNla3RvcmVuIHBybyBTcHVyIMOkbmRlcm4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICJGZXJ0aWciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIsOEbmRlcm4gZGVyIEdlb21ldHJpZSBiZWVuZGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzc0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIKK21zZ3N0ciAiR2ViZW4gU2llIGRpZSBBbnphaGwgZGVyIFp5bGluZGVyIGVpbjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzg1IGZkaXNrL2NmZGlzay5jOjI5NTgKK21zZ2lkICJJbGxlZ2FsIGN5bGluZGVycyB2YWx1ZSIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgV2VydCBmw7xyIGRpZSBBbnphaGwgZGVyIFp5bGluZGVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzkxCittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBoZWFkczogIgorbXNnc3RyICJHZWJlbiBTaWUgZGllIEFuemFobCBkZXIgS8O2cGZlIGVpbjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzk4IGZkaXNrL2NmZGlzay5jOjI5NjgKK21zZ2lkICJJbGxlZ2FsIGhlYWRzIHZhbHVlIgorbXNnc3RyICJVbmfDvGx0aWdlciBXZXJ0IGbDvHIgZGllIEFuemFobCBkZXIgS8O2cGZlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICJHZWJlbiBTaWUgZGllIEFuemFobCBkZXIgU2VrdG9yZW4gcHJvIFNwdXIgZWluOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MTEgZmRpc2svY2ZkaXNrLmM6Mjk3NQorbXNnaWQgIklsbGVnYWwgc2VjdG9ycyB2YWx1ZSIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgV2VydCBmw7xyIGRpZSBBbnphaGwgZGVyIFNla3RvcmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTE0Cittc2dpZCAiRW50ZXIgZmlsZXN5c3RlbSB0eXBlOiAiCittc2dzdHIgIkdlYmVuIFNpZSBkZW4gRGF0ZWlzeXN0ZW10eXAgZWluOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzIKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZW1wdHkiCittc2dzdHIgIkRlciBEYXRlaXN5c3RlbXR5cCBrYW5uIG5pY2h0IGF1ZiDigJ5sZWVy4oCcIGdlc2V0enQgd2VyZGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICJEZXIgRGF0ZWlzeXN0ZW10eXAga2FubiBuaWNodCBhdWYg4oCeZXJ3ZWl0ZXJ04oCcIGdlc2V0enQgd2VyZGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuayglMDJYKSIKK21zZ3N0ciAiVW5iKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY4IGZkaXNrL2NmZGlzay5jOjI1NzEKK21zZ2lkICIsIE5DIgorbXNnc3RyICIsIE5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTc2IGZkaXNrL2NmZGlzay5jOjI1NzkKK21zZ2lkICJOQyIKK21zZ3N0ciAiTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODcKK21zZ2lkICJQcmkvTG9nIgorbXNnc3RyICJQcmkvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICJVbmJla2FubnQgKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzIgorbXNnc3RyICJGZXN0cGxhdHRlOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICJHcsO2w59lOiAlbGxkIEJ5dGVzLCAlbGxkIE1CIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQuJWxsZCBHQiIKK21zZ3N0ciAiR3LDtsOfZTogJWxsZCBCeXRlcywgJWxsZCwlbGxkIEdCIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAiS8O2cGZlOiAlZCAgIFNla3RvcmVuIHBybyBTcHVyOiAlZCAgIFp5bGluZGVyOiAlbGxkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgxIGxvZ2luLXV0aWxzL2NoZm4uYzozNzcKK21zZ2lkICJOYW1lIgorbXNnc3RyICJOYW1lIgorCisjIEkgY3VycmVudGx5IGRvbid0IGtub3cgYSBiZXR0ZXIgdHJhbnNsYXRpb24KKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiRmxhZ3MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIlBhcnQuIFR5cCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIkRhdGVpc3lzdGVtdHlwIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg1Cittc2dpZCAiW0xhYmVsXSIKK21zZ3N0ciAiW0JlemVpY2huZXJdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgIFNla3RvcmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg5Cittc2dpZCAiICBDeWxpbmRlcnMiCittc2dzdHIgIiAgIFp5bGluZGVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkxCittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIiBHcsO2w59lIChNQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiIEdyw7bDn2UgKEdCKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIkJvb3RhYmxlIgorbXNnc3RyICIgQm9vdGJhciIKKworIyAiQm9vdGbDpGhpZ2tlaXQgZGVyIGFrdHVlbGxlbiBQYXJ0aXRpb24gw6RuZGVybiIgKGpvZXkpCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIoRGUpQWt0aXZpZXJlbiBkZXMgYm9vdGbDpGhpZy1mbGFncyBkZXIgYWt0dWVsbGVuIFBhcnRpdGlvbiIKKworIyAiTMO2c2NoZW4iCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJMw7ZzY2hlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIkRpZSBha3R1ZWxsZSBQYXJ0aXRpb24gbMO2c2NoZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJHZW9tZXRyeSIKK21zZ3N0ciAiR2VvbWV0cmllIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiQ2hhbmdlIGRpc2sgZ2VvbWV0cnkgKGV4cGVydHMgb25seSkiCittc2dzdHIgIkRpZSBGZXN0cGxhdHRlbmdlb21ldHJpZXBhcmFtZXRlciDDpG5kZXJuIChudXIgZsO8ciBFeHBlcnRlbikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJIZWxwIgorbXNnc3RyICJIaWxmZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICJEaWUgSGlsZmUgYW56ZWlnZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSIKK21zZ3N0ciAiTWF4aW0uIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIk1heGltaWVyZW4gZGVyIE51dHp1bmcgZGVyIGFrdHVlbGxlbiBQYXJ0aXRpb24gKG51ciBmw7xyIEV4cGVydGVuKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAiTmV1ZSIKKworIyAiRXJ6ZXVnZSBhdXMgZGVtIGZyZWllbiBCZXJlaWNoIGVpbmUgbmV1ZSBQYXJ0aXRpb24iCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICJOZXVlIFBhcnRpdGlvbiBpbSBmcmVpZW0gQmVyZWljaCBhbmxlZ2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQiCittc2dzdHIgIkF1c2dhYmUiCisKKyMgIkdpYiBkaWUgUGFydGl0aW9uc3RhYmVsbGUgYXVmIGRlbSBCaWxkc2NoaXJtIG9kZXIgaW4gZWluZSBEYXRlaSBhdXMiCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICJQYXJ0aXRpb25zdGFiZWxsZSBhdWYgZGVtIEJpbGRzY2hpcm0gb2RlciBpbiBEYXRlaSBhdXNnZWJlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIkVuZGUiCisKKyMgIkJlZW5kZSBkYXMgUHJvZ3JhbW0gb2huZSBkaWUgUGFydGl0aW9uc3RhYmVsbGUgenUgc2NocmVpYmVuIgorIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJEYXMgUHJvZ3JhbW0gYmVlbmRlbiwgb2huZSBkaWUgUGFydGl0aW9uc3RhYmVsbGUgenUgc3BlaWNoZXJuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAiVHlwIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAiRGVuIFR5cCBkZXMgRGF0ZWlzeXN0ZW1zIChET1MsIExpbnV4LCBPUy8yLCBldGMuKSDDpG5kZXJuIgorCisjIE1heWJlIHdpdGhvdXQgdGhlIGRvdC4KKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAiRWluaGVpdC4iCisKKyMgIsOEbmRlcnQgZGllIEVpbmhlaXRlbiBkZXIgR3LDtsOfZW5hbnplaWdlICgiCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAiIgorIlp3aXNjaGVuIGRlbiBFaW5oZWl0ZW4gZsO8ciBkaWUgR3LDtsOfZW5hbnplaWdlIHdlY2hzZWxuIChNQiwgU2VrdC4sIFp5bC4pIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUiCittc2dzdHIgIlNjaHJlaWIuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhKSIKK21zZ3N0ciAiRGllIFBhcnRpdGlvbnN0YWJlbGxlIHNjaHJlaWJlbiAoZGllcyBrYW5uIERhdGVuIHplcnN0w7ZyZW4pIgorCisjOiBmZGlzay9jZmRpc2suYzoyODA1Cittc2dpZCAiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiCittc2dzdHIgIkRpZXNlIFBhcnRpdGlvbiBrYW5uIG5pY2h0IGFscyBib290ZsOkaGlnIG1hcmtpZXJ0IHdlcmRlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgxNQorbXNnaWQgIkNhbm5vdCBkZWxldGUgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJFaW5lIGxlZXJlIFBhcnRpdGlvbiBrYW5uIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MzUgZmRpc2svY2ZkaXNrLmM6MjgzNworbXNnaWQgIkNhbm5vdCBtYXhpbWl6ZSB0aGlzIHBhcnRpdGlvbiIKK21zZ3N0ciAiRGllIE51dHp1bmcgZGllc2VyIFBhcnRpdGlvbiBrYW5uIG5pY2h0IG1heGltaWVydCB3ZXJkZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDUKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIKK21zZ3N0ciAiRGllc2UgUGFydGl0aW9uIGlzdCB1bmJlbnV0emJhciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJEaWVzZSBQYXJ0aXRpb24gaXN0IGJlcmVpdHMgaW4gQmVudXR6dW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyODY0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSB0aGUgdHlwZSBvZiBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIkRlciBEYXRlaXN5c3RlbXR5cCBlaW5lciBsZWVyZW4gUGFydGl0aW9uIGthbm4gbmljaHQgZ2XDpG5kZXJ0IHdlcmRlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg5MSBmZGlzay9jZmRpc2suYzoyODk3Cittc2dpZCAiTm8gbW9yZSBwYXJ0aXRpb25zIgorbXNnc3RyICJLZWluZSB3ZWl0ZXJlbiBQYXJ0aXRpb25lbiIKKworIyAiVW5nw7xsdGlnZSBUYXN0ZSIKKyM6IGZkaXNrL2NmZGlzay5jOjI5MDQKK21zZ2lkICJJbGxlZ2FsIGNvbW1hbmQiCittc2dzdHIgIlVuenVsw6Rzc2lnZXIgQmVmZWhsIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorbXNnc3RyICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiUHJpbnQgdmVyc2lvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiUHJpbnQgcGFydGl0aW9uIHRhYmxlOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B0aW9uc10gZGV2aWNlXG4iCisiSW50ZXJhY3RpdmUgdXNlOlxuIgorIiAgICAgICAgJXMgW29wdGlvbnNdIGRldmljZVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiLWE6IFVzZSBhcnJvdyBpbnN0ZWFkIG9mIGhpZ2hsaWdodGluZztcbiIKKyItejogU3RhcnQgd2l0aCBhIHplcm8gcGFydGl0aW9uIHRhYmxlLCBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHB0IGZyb20gZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzogT3ZlcnJpZGUgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMsXG4iCisiICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHRoZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjay5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkF1ZnJ1ZjpcbiIKKyJBdXNnYWJlIGRlciBWZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJBdXNnYWJlIGRlciBQYXJ0aXRpb25zdGFiZWxsZTpcbiIKKyIgICAgICAgICVzIC1QIHtyfHN8dH0gW09wdGlvbmVuXSBHRVLDhFRFREFURUlcbiIKKyJJbnRlcmFrdGl2ZSBCZW51dHp1bmc6XG4iCisiICAgICAgICAlcyBbT3B0aW9uZW5dIEdFUsOEVEVEQVRFSVxuIgorIlxuIgorIk9wdGlvbmVuOlxuIgorIi1hOiBVc2UgYXJyb3cgaW5zdGVhZCBvZiBoaWdobGlnaHRpbmc7XG4iCisiLXo6IFN0YXJ0IHdpdGggYSB6ZXJvIHBhcnRpdGlvbiB0YWJsZSwgaW5zdGVhZCBvZiByZWFkaW5nIHRoZSBwdCBmcm9tIGRpc2s7XG4iCisiLWMgQyAtaCBIIC1zIFM6IE92ZXJyaWRlIHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzLFxuIgorIiAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIGhlYWRzIGFuZCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2suXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrYWl4bGFiZWwuYzoyNworbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgQUlYIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgTGludXggY2Fubm90IGhhbmRsZSB0aGVzZVxuIgorIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisiXHRhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCisiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorIlx0ICAgdG8gcmVtb3ZlIHRoZSBkaXNrIGxvZ2ljYWxseSBmcm9tIHlvdXIgQUlYXG4iCisiXHQgICBtYWNoaW5lLiAgKE90aGVyd2lzZSB5b3UgYmVjb21lIGFuIEFJWHBlcnQpLiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RXMgZ2lidCBlaW4gQUlYLUxhYmVsIGF1ZiBkaWVzZXIgUGxhdHRlLlxuIgorIlx0RGllc2Uga8O2bm5lbiBsZWlkZXIgdm9uIExpbnV4IG1vbWVudGFuIG5pY2h0XG4iCisiXHRnZWhhbmRoYWJ0IHdlcmRlbi4gRGVubm9jaCBlaW5pZ2UgSGlud2Vpc2U6XG4iCisiXHQxLiBmZGlzayB3aXJkIGRlbiBJbmhhbHQgYmVpbSBTY2hyZWliZW4gemVyc3TDtnJlblxuIgorIlx0Mi4gU3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZXNlIFBsYXR0ZSBOSUNIVCBub2NoXG4iCisiXHQgICBpbW1lciBlaW4gd2ljaHRpZ2VyIFRlaWwgZWluZXIgUGxhdHRlbmdydXBwZSBpc3QuXG4iCisiXHQgICAoQW5kZXJlbmZhbGxzIGvDtm5udGUgZGllc2UgUGxhdHRlbiBtaXRnZWzDtnNjaHRcbiIKKyJcdCAgIHdlcmRlbiwgd2VubiBzaWUgbmljaHQgZ2VzcGllZ2VsdCB3ZXJkZW4uKVxuIgorIlx0My4gQmV2b3IgU2llIGRpZXNlIHBoeXNpc2NoZSBQbGF0dGUgbMO2c2NoZW4sIGVudGZlcm5lblxuIgorIlx0ICAgU2llIHNpZSB1bmJlZGluZ3QgbG9naXNjaCBhdXMgSWhyZXIgQUlYLU1hc2NoaW5lLlxuIgorIlx0ICAgKEFuZGVyZW5mYWxscyB3ZXJkZW4gU2llIGVpbiBBSVhwZXJ0ZS4pIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIuKAnkJTRCBsYWJlbOKAnCBmw7xyIEdlcsOkdDogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOCBmZGlzay9mZGlzay5jOjM5NCBmZGlzay9mZGlzay5jOjQxMworIzogZmRpc2svZmRpc2suYzo0MzEgZmRpc2svZmRpc2suYzo0MzggZmRpc2svZmRpc2suYzo0NjEgZmRpc2svZmRpc2suYzo0NzkKKyM6IGZkaXNrL2ZkaXNrLmM6NDk1IGZkaXNrL2ZkaXNrLmM6NTExCittc2dpZCAiQ29tbWFuZCBhY3Rpb24iCittc2dzdHIgIkJlZmVobCAgQmVkZXV0dW5nIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICBFaW5lIEJTRC1QYXJ0aXRpb24gbMO2c2NoZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzAKK21zZ2lkICIgICBlICAgZWRpdCBkcml2ZSBkYXRhIgorbXNnc3RyICIgICBlICAgUGxhdHRlbmRhdGVuIGVkaXRpZXJlbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgIEJvb3RzdHJhcCBpbnN0YWxsaWVyZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzIKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBmaWxlc3lzdGVtIHR5cGVzIgorbXNnc3RyICIgICBsICAgRGllIGJla2FubnRlbiBEYXRlaXN5c3RlbXR5cGVuIGFuemVpZ2VuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMzIGZkaXNrL2ZkaXNrLmM6NDAwIGZkaXNrL2ZkaXNrLmM6NDE5CisjOiBmZGlzay9mZGlzay5jOjQzMiBmZGlzay9mZGlzay5jOjQ0NCBmZGlzay9mZGlzay5jOjQ2OSBmZGlzay9mZGlzay5jOjQ4NgorIzogZmRpc2svZmRpc2suYzo1MDIgZmRpc2svZmRpc2suYzo1MjAKK21zZ2lkICIgICBtICAgcHJpbnQgdGhpcyBtZW51IgorbXNnc3RyICIgICBtICAgRGllc2VzIE1lbsO8IGFuemVpZ2VuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM0Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgRWluZSBuZXVlIEJTRC1QYXJ0aXRpb24gYW5sZWdlbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNQorbXNnaWQgIiAgIHAgICBwcmludCBCU0QgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgRGllIEJTRC1QYXJ0aXRpb25zdGFiZWxsZSBhbnplaWdlbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgIEVuZGUgb2huZSBTcGVpY2hlcm4gZGVyIMOEbmRlcnVuZ2VuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM3IGZkaXNrL2ZkaXNrLmM6NDcyIGZkaXNrL2ZkaXNrLmM6NDg5CisjOiBmZGlzay9mZGlzay5jOjUwNSBmZGlzay9mZGlzay5jOjUyMworbXNnaWQgIiAgIHIgICByZXR1cm4gdG8gbWFpbiBtZW51IgorbXNnc3RyICIgICByICAgWnVyw7xjayB6dW0gSGF1cHRtZW7DvCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOAorbXNnaWQgIiAgIHMgICBzaG93IGNvbXBsZXRlIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgIGtvbXBsZXR0ZXMgRGlza2xhYmVsIHplaWdlbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgRGVuIERhdGVpc3lzdGVtdHlwIGVpbmVyIFBhcnRpdGlvbiDDpG5kZXJuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQwCittc2dpZCAiICAgdSAgIGNoYW5nZSB1bml0cyAoY3lsaW5kZXJzL3NlY3RvcnMpIgorbXNnc3RyICIgICB1ICAgRWluaGVpdGVuIMOkbmRlcm4gKFp5bGluZGVyL1Nla3RvcmVuKSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgIERpc2tsYWJlbCBhdWYgUGxhdHRlIHNjaHJlaWJlbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MworbXNnaWQgIiAgIHggICBsaW5rIEJTRCBwYXJ0aXRpb24gdG8gbm9uLUJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIHggICBCU0QtUGFydGl0aW9uIG1pdCBOaWNodC1CU0QtUGFydGl0aW9uIHZlcmtuw7xwZmVuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlcyBoYXMgaW52YWxpZCBzdGFydGluZyBzZWN0b3IgMC5cbiIKK21zZ3N0ciAiUGFydGl0aW9uICVzIGhhdCBlaW5lbiB1bmfDvGx0aWdlbiBTdGFydHNla3RvciAwLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWRpbmcgZGlza2xhYmVsIG9mICVzIGF0IHNlY3RvciAlZC5cbiIKK21zZ3N0ciAiTGVzZSBEaXNrbGFiZWwgdm9uICVzIGJlaSBTZWt0b3IgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIkVzIGdpYnQga2VpbmUgKkJTRC1QYXJ0aXRpb24gYXVmICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjAzCittc2dpZCAiQlNEIGRpc2tsYWJlbCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICLigJ5CU0QgZGlza2xhYmVs4oCcIEJlZmVobCAobSBmw7xyIEhpbGZlKTogIgorCisjICVzIGNhbiBiZSAiU2VrdG9yIiBvciAiWnlsaW5kZXIiLgorIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI4MyBmZGlzay9mZGlzay5jOjIzMjggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzOAorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdCAlcyIKK21zZ3N0ciAiRXJzdGVyICVzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlcyBvciArc2l6ZSBvciArc2l6ZU0gb3IgK3NpemVLIgorbXNnc3RyICJMZXR6dGVyICVzIG9kZXIgK0dyw7bDn2UsICtHcsO2w59lSyBvZGVyICtHcsO2w59lTSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlc1xuIgorbXNnc3RyICJUeXA6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJWRcbiIKK21zZ3N0ciAiVHlwOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpc2s6ICUuKnNcbiIKK21zZ3N0ciAiRmVzdHBsYXR0ZTogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxhYmVsOiAlLipzXG4iCittc2dzdHIgIkxhYmVsOiAlLipzXG4iCisKKyMgSSBjdXJyZW50bHkgZG9uJ3Qga25vdyBhIGJldHRlciB0cmFuc2xhdGlvbgorIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmbGFnczoiCittc2dzdHIgIkZsYWdzOiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgcmVtb3ZhYmxlIgorbXNnc3RyICIgZW50ZmVybmJhciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNgorIywgYy1mb3JtYXQKK21zZ2lkICIgZWNjIgorbXNnc3RyICIgZWNjIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiBiYWRzZWN0IgorbXNnc3RyICIgYmFkc2VjdCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcy9zZWN0b3I6ICVsZFxuIgorbXNnc3RyICJCeXRlcy9TZWt0b3I6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvdHJhY2s6ICVsZFxuIgorbXNnc3RyICJTZWt0b3Jlbi9TcHVyOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNAorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJTcHVyZW4vWnlsaW5kZXI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJTZWt0b3Jlbi9aeWxpbmRlcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiWnlsaW5kZXI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM3CisjLCBjLWZvcm1hdAorbXNnaWQgInJwbTogJWRcbiIKK21zZ3N0ciAiVS9taW46ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW50ZXJsZWF2ZTogJWRcbiIKK21zZ3N0ciAiSW50ZXJsZWF2ZTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgIlNwdXJhYndlaWNodW5nOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAiWnlsaW5kZXJhYndlaWNodW5nOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJLb3Bmd2VjaHNlbDogJWxkXHRcdCMgTWlsbGlzZWt1bmRlblxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQzCisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWs6ICVsZFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiU3B1ci16dS1TcHVyLVdlY2hzZWw6ICVsZFx0IyBNaWxsaXNla3VuZGVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgImRyaXZlZGF0YTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgUGFydGl0aW9uZW46XG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIyAgICAgICBzdGFydCAgICAgICBlbmQgICAgICBzaXplICAgICBmc3R5cGUgICBbZnNpemUgYnNpemUgICBjcGddXG4iCittc2dzdHIgIiMgICAgICAgQW5mYW5nICAgICAgRW5kZSAgICAgR3LDtsOfZSAgICBUeXAgICAgICBbZnNpemUgYnNpemUgICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiU2NocmVpYmUg4oCeZGlza2xhYmVs4oCcIGF1ZiAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQxOSBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIKK21zZ3N0ciAiJXMgZW50aMOkbHQga2VpbmVuIOKAnmRpc2tsYWJlbOKAnC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJXb2xsZW4gU2llIGVpbmVuIOKAnmRpc2tsYWJlbOKAnCBhbmxlZ2VuICh5L24pPyAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgIkJ5dGVzL1Nla3RvciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NworbXNnaWQgInNlY3RvcnMvdHJhY2siCittc2dzdHIgIlNla3RvcmVuL1NwdXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjgKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXIiCittc2dzdHIgIlNwdXJlbi9aeWxpbmRlciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAiWnlsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJTZWt0b3Jlbi9aeWxpbmRlciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIDw9IHNlY3RvcnMvdHJhY2sgKiB0cmFja3MvY3lsaW5kZXIgKGRlZmF1bHQpLlxuIgorbXNnc3RyICJNdXNzIDw9IFNla3RvcmVuL1NwdXIgw5cgU3B1cmVuL1p5bGluZGVyIHNlaW4gKFZvcmVpbnN0ZWxsdW5nKS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAiVS9taW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODMKK21zZ2lkICJpbnRlcmxlYXZlIgorbXNnc3RyICJJbnRlcmxlYXZlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICJTcHVydmVyc2NoaWVidW5nIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg1Cittc2dpZCAiY3lsaW5kZXJza2V3IgorbXNnc3RyICJaeWxpbmRlcnZlcnNjaGllYnVuZyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgIktvcGZ3ZWNoc2VsIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg3Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlayIKK21zZ3N0ciAiU3B1cuKAkHp14oCQU3B1cuKAkFdlY2hzZWwiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKK21zZ3N0ciAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU1MworIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgb3ZlcmxhcHMgd2l0aCBkaXNrIGxhYmVsIVxuIgorbXNnc3RyICJCb290c3RyYXAgw7xiZXJsYXBwdCBtaXQgRGlza2xhYmVsIVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIGluc3RhbGxlZCBvbiAlcy5cbiIKK21zZ3N0ciAiQm9vdHN0cmFwIGF1ZiAlcyBpbnN0YWxsaWVydC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gKGEtJWMpOiAiCittc2dzdHIgIlBhcnRpdGlvbiAoYS0lYyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYxNyBmZGlzay9mZGlzay5jOjI0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgaGFzIGJlZW4gY3JlYXRlZFxuIgorbXNnc3RyICJEaWUgbWF4aW1hbGUgQW56YWhsIHZvbiBQYXJ0aXRpb25lbiB3dXJkZSBlcnpldWd0XG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMuXG4iCittc2dzdHIgIkRpZXNlIFBhcnRpdGlvbiBleGlzdGllcnQgYmVyZWl0cy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIldhcm51bmc6IHp1IHZpZWxlIFBhcnRpdGlvbmVuICglZCwgTWF4aW11bSBpc3QgJWQpLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICIiCisiXG4iCisiU3luY2hyb25pc2llcmUgUGxhdHRlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTYKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiIGZkaXNrIFtvcHRpb25zXSA8ZGlzaz4gICAgY2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorIiBmZGlzayBbb3B0aW9uc10gLWwgPGRpc2s+IGxpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisiIGZkaXNrIC1zIDxwYXJ0aXRpb24+ICAgICAgZ2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtYiA8c2l6ZT4gICAgICAgICAgICAgICAgIHNlY3RvciBzaXplICg1MTIsIDEwMjQsIDIwNDggb3IgNDA5NilcbiIKKyIgLWMgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggb2ZmIERPUy1jb21wYXRpYmxlIG1vZGVcbiIKKyIgLWggICAgICAgICAgICAgICAgICAgICAgICBwcmludCBoZWxwXG4iCisiIC11IDxzaXplPiAgICAgICAgICAgICAgICAgZ2l2ZSBzaXplcyBpbiBzZWN0b3JzIGluc3RlYWQgb2YgY3lsaW5kZXJzXG4iCisiIC12ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgdmVyc2lvblxuIgorIiAtQyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBjeWxpbmRlcnNcbiIKKyIgLUggPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgaGVhZHNcbiIKKyIgLVMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2tcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlc1xuIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gcmVhZCAlc1xuIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgbGVzZW5cbiIKKworIyAiS29ubnRlIGluICVzIG5pY2h0IHBvc2l0aW9uaWVyZW4iCisjOiBmZGlzay9mZGlzay5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2VlayBvbiAlc1xuIgorbXNnc3RyICJLb25udGUgaW4gJXMgbmljaHQgcG9zaXRpb25pZXJlblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiS29ubnRlICVzIG5pY2h0IHNjaHJlaWJlblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlc1xuIgorbXNnc3RyICJCTEtHRVRTSVpFLUlPQ1RMIGZlaGxnZXNjaGxhZ2VuIGJlaSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBhbnkgbW9yZSBtZW1vcnlcbiIKK21zZ3N0ciAiS29ubnRlIGtlaW5lbiB3ZWl0ZXJlbiBTcGVpY2hlciByZXNlcnZpZXJlblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NgorbXNnaWQgIkZhdGFsIGVycm9yXG4iCittc2dzdHIgIkZhdGFsZXIgRmVobGVyXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgKERlKUFrdGl2aWVyZW4gZWluZXMgTnVyLUxlc2UtRmxhZ3MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk2IGZkaXNrL2ZkaXNrLmM6NDQwCittc2dpZCAiICAgYiAgIGVkaXQgYnNkIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgYiAgIOKAnmJzZCBkaXNrbGFiZWzigJwgYmVhcmJlaXRlbiIKKworIzogZmRpc2svZmRpc2suYzozOTcKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBtb3VudGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYyAgIChEZSlBa3RpdmllcmVuIGRlcyBNb3VudGFibGUoRWluaMOkbmdiYXJrZWl0KS1GbGFncyIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgRWluZSBQYXJ0aXRpb24gbMO2c2NoZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk5IGZkaXNrL2ZkaXNrLmM6NDE4IGZkaXNrL2ZkaXNrLmM6NDQzCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICBsICAgRGllIGJla2FubnRlbiBEYXRlaXN5c3RlbXR5cGVuIGFuemVpZ2VuIgorCisjOiBmZGlzay9mZGlzay5jOjQwMSBmZGlzay9mZGlzay5jOjQyMCBmZGlzay9mZGlzay5jOjQ0NQorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgRWluZSBuZXVlIFBhcnRpdGlvbiBhbmxlZ2VuIgorCisjOiBmZGlzay9mZGlzay5jOjQwMiBmZGlzay9mZGlzay5jOjQyMSBmZGlzay9mZGlzay5jOjQzMyBmZGlzay9mZGlzay5jOjQ0NgorbXNnaWQgIiAgIG8gICBjcmVhdGUgYSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgbyAgIEVpbmUgbmV1ZSBsZWVyZSBET1MgUGFydGl0aW9uc3RhYmVsbGUgYW5sZWdlbiIKKworIzogZmRpc2svZmRpc2suYzo0MDMgZmRpc2svZmRpc2suYzo0MjIgZmRpc2svZmRpc2suYzo0NDcgZmRpc2svZmRpc2suYzo0NzAKKyM6IGZkaXNrL2ZkaXNrLmM6NDg3IGZkaXNrL2ZkaXNrLmM6NTAzIGZkaXNrL2ZkaXNrLmM6NTIxCittc2dpZCAiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBEaWUgUGFydGl0aW9uc3RhYmVsbGUgYW56ZWlnZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgRWluZW4gbmV1ZW4gbGVlcmVuIOKAnlN1biBkaXNrbGFiZWzigJwgYW5sZWdlbiIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgRGVuIERhdGVpc3lzdGVtdHlwIGVpbmVyIFBhcnRpdGlvbiDDpG5kZXJuIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIERpZSBFaW5oZWl0IGbDvHIgZGllIEFuemVpZ2UvRWluZ2FiZSDDpG5kZXJuIgorCisjOiBmZGlzay9mZGlzay5jOjQwOCBmZGlzay9mZGlzay5jOjQyNyBmZGlzay9mZGlzay5jOjQ1MiBmZGlzay9mZGlzay5jOjQ3NAorIzogZmRpc2svZmRpc2suYzo0OTEgZmRpc2svZmRpc2suYzo1MDcgZmRpc2svZmRpc2suYzo1MjUKK21zZ2lkICIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHYgICBEaWUgUGFydGl0aW9uc3RhYmVsbGUgw7xiZXJwcsO8ZmVuIgorCisjOiBmZGlzay9mZGlzay5jOjQwOSBmZGlzay9mZGlzay5jOjQyOCBmZGlzay9mZGlzay5jOjQ1MyBmZGlzay9mZGlzay5jOjQ3NQorIzogZmRpc2svZmRpc2suYzo0OTIgZmRpc2svZmRpc2suYzo1MDggZmRpc2svZmRpc2suYzo1MjYKK21zZ2lkICIgICB3ICAgd3JpdGUgdGFibGUgdG8gZGlzayBhbmQgZXhpdCIKK21zZ3N0ciAiIgorIiAgIHcgICBEaWUgVGFiZWxsZSBhdWYgZGllIEZlc3RwbGF0dGUgc2NocmVpYmVuIHVuZCBkYXMgUHJvZ3JhbW0gYmVlbmRlbiIKKworIzogZmRpc2svZmRpc2suYzo0MTAgZmRpc2svZmRpc2suYzo0NTQKK21zZ2lkICIgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiICAgeCAgIFp1c8OkdHpsaWNoZSBGdW5rdGlvbmVuIChudXIgZsO8ciBFeHBlcnRlbikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0Cittc2dpZCAiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGEgICBXw6RobGVuIGRlciBib290ZsOkaGlnZW4gUGFydGl0aW9uIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAgQmVhcmJlaXRlbiBkZXMg4oCeYm9vdGZpbGXigJwtRWludHJhZ3MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE2Cittc2dpZCAiICAgYyAgIHNlbGVjdCBzZ2kgc3dhcCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGMgICBEaWUgc2dpLXN3YXAtUGFydGl0aW9uIGF1c3fDpGhsZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDM5Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIGJvb3RhYmxlIGZsYWciCittc2dzdHIgIiAgIGEgICAoRGUpQWt0aXZpZXJlbiBkZXMgYm9vdGbDpGhpZy1GbGFncyIKKworIzogZmRpc2svZmRpc2suYzo0NDEKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBkb3MgY29tcGF0aWJpbGl0eSBmbGFnIgorbXNnc3RyICIgICBjICAgKERlKUFrdGl2aWVyZW4gZGVzIERPUyBLb21wYXRpYmlsaXTDpHRzZmxhZ3MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYyCittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYSAgIERpZSBBbnphaGwgZGVyIGFsdGVybmllcmVuZGVuIFp5bGluZGVyIMOkbmRlcm4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYzIGZkaXNrL2ZkaXNrLmM6NDgxIGZkaXNrL2ZkaXNrLmM6NDk3IGZkaXNrL2ZkaXNrLmM6NTEzCittc2dpZCAiICAgYyAgIGNoYW5nZSBudW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICIgICBjICAgRGllIEFuemFobCBkZXIgWnlsaW5kZXIgw6RuZGVybiIKKworIyBYWFgKKyM6IGZkaXNrL2ZkaXNrLmM6NDY0IGZkaXNrL2ZkaXNrLmM6NDgyIGZkaXNrL2ZkaXNrLmM6NDk4IGZkaXNrL2ZkaXNrLmM6NTE0Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBkICAgRGllIOKAnnJhd+KAnC1EYXRlbiBkZXIgUGFydGl0aW9uc3RhYmVsbGUgYW56ZWlnZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY1Cittc2dpZCAiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiAgIGUgICBEaWUgQW56YWhsIGRlciBFeHRyYS1TZWt0b3JlbiBwcm8gWnlsaW5kZXIgw6RuZGVybiIKKworIzogZmRpc2svZmRpc2suYzo0NjYgZmRpc2svZmRpc2suYzo0ODUgZmRpc2svZmRpc2suYzo1MDEgZmRpc2svZmRpc2suYzo1MTgKK21zZ2lkICIgICBoICAgY2hhbmdlIG51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiICAgaCAgIERpZSBBbnphaGwgZGVyIEvDtnBmZSDDpG5kZXJuIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NworbXNnaWQgIiAgIGkgICBjaGFuZ2UgaW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiAgIGkgICBEZW4gSW50ZXJsZWF2ZS1GYWt0b3Igw6RuZGVybiIKKworIzogZmRpc2svZmRpc2suYzo0NjgKK21zZ2lkICIgICBvICAgY2hhbmdlIHJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIgICBvICAgVW1kcmVodW5nc2dlc2Nod2luZGlna2VpdCDDpG5kZXJuIChVL21pbikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDczIGZkaXNrL2ZkaXNrLmM6NDkwIGZkaXNrL2ZkaXNrLmM6NTA2IGZkaXNrL2ZkaXNrLmM6NTI0Cittc2dpZCAiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIKK21zZ3N0ciAiICAgcyAgIERpZSBBbnphaGwgZGVyIFNla3RvcmVuL1NwdXIgw6RuZGVybiIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICBEaWUgQW56YWhsIGRlciBwaHlzaXNjaGVuIFp5bGluZGVyIMOkbmRlcm4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGIgICBEZW4gRGF0ZW5hbmZhbmcgZWluZXIgUGFydGl0aW9uIHZlcnNjaGllYmVuIgorCisjIFhYWCDigJMgT3Igc2hvdWxkIHRoaXMgYmUgImxvZ2ljYWwiIGluc3RlYWQgb2YgImV4dGVuZGVkIiA/CisjOiBmZGlzay9mZGlzay5jOjQ4MyBmZGlzay9mZGlzay5jOjQ5OSBmZGlzay9mZGlzay5jOjUxNQorbXNnaWQgIiAgIGUgICBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiAgIGUgICBFcndlaXRlcnRlIFBhcnRpdGlvbmVuIGFuemVpZ2VuIgorCisjOiBmZGlzay9mZGlzay5jOjQ4NCBmZGlzay9mZGlzay5jOjUwMCBmZGlzay9mZGlzay5jOjUxNworbXNnaWQgIiAgIGcgICBjcmVhdGUgYW4gSVJJWCAoU0dJKSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGcgICBFaW5lIElSSVgtUGFydGl0aW9uc3RhYmVsbGUgKFNHSSkgYW5sZWdlbiIKKworIzogZmRpc2svZmRpc2suYzo1MTYKK21zZ2lkICIgICBmICAgZml4IHBhcnRpdGlvbiBvcmRlciIKK21zZ3N0ciAiICAgZiAgIFBhcnRpdGlvbnNyZWloZW5mb2xnZSBrb3JyaWdpZXJlbiIKKworIzogZmRpc2svZmRpc2suYzo1MTkKKyMsIGZ1enp5Cittc2dpZCAiICAgaSAgIGNoYW5nZSB0aGUgZGlzayBpZGVudGlmaWVyIgorbXNnc3RyICIgICBpICAgRGllIEVpbmhlaXQgZsO8ciBkaWUgQW56ZWlnZS9FaW5nYWJlIMOkbmRlcm4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IHNldCIKK21zZ3N0ciAiU2llIG3DvHNzZW4gYW5nZWJlbiIKKworIzogZmRpc2svZmRpc2suYzo3MzYKK21zZ2lkICJoZWFkcyIKK21zZ3N0ciAiS8O2cGZlIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAiU2VrdG9yZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyVzLlxuIgorIllvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBleHRyYSBmdW5jdGlvbnMgbWVudS5cbiIKK21zZ3N0ciAiIgorIiVzJXMuXG4iCisiU2llIGvDtm5uZW4gZGllcyBpbSBadXNhdHpmdW5rdGlvbnNtZW7DvCB0dW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiB1bmQgIgorCisjOiBmZGlzay9mZGlzay5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogVGhlIHNpemUgb2YgdGhpcyBkaXNrIGlzICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJET1MgcGFydGl0aW9uIHRhYmxlIGZvcm1hdCBjYW4gbm90IGJlIHVzZWQgb24gZHJpdmVzIGZvciB2b2x1bWVzXG4iCisibGFyZ2VyIHRoYW4gKCVsbHUgYnl0ZXMpIGZvciAlZC1ieXRlIHNlY3RvcnMuIFVzZSBwYXJ0ZWQoMSkgYW5kIEdVSUQgXG4iCisicGFydGl0aW9uIHRhYmxlIGZvcm1hdCAoR1BUKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW5cbiIKKyJ0aGUgcGh5c2ljYWwgc2VjdG9yIHNpemUuIEFsaWduaW5nIHRvIGEgcGh5c2ljYWwgc2VjdG9yIChvciBvcHRpbWFsXG4iCisiSS9PKSBzaXplIGJvdW5kYXJ5IGlzIHJlY29tbWVuZGVkLCBvciBwZXJmb3JtYW5jZSBtYXkgYmUgaW1wYWN0ZWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0b1xuIgorIiAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0b1xuIgorIiAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiVW5nw7xsdGlnZXMgT2Zmc2V0IGluIHByaW3DpHJlciBlcndlaXRlcnRlciBQYXJ0aXRpb25cbiIKKworIzogZmRpc2svZmRpc2suYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IG9taXR0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgIyVkLlxuIgorIlRoZXkgd2lsbCBiZSBkZWxldGVkIGlmIHlvdSBzYXZlIHRoaXMgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICIiCisiV2FybnVuZzogTGFzc2UgUGFydGl0aW9uIGhpbnRlciAjJWQgYXVzLlxuIgorIlNpZSB3ZXJkZW4gZ2Vsw7ZzY2h0LCB3ZW5uIFNpZSBkaWVzZSBQYXJ0aXRpb25zdGFiZWxsZSBzY2hyZWliZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGV4dHJhIGxpbmsgcG9pbnRlciBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiV2FybnVuZzogenVzw6R0emxpY2hlciBMaW5rLVBvaW50ZXIgaW4gUGFydGl0aW9uc3RhYmVsbGUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaWdub3JpbmcgZXh0cmEgZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiV2FybnVuZzogaWdub3JpZXJlIHdlaXRlcmUgRGF0ZW4gaW4gUGFydGl0aW9uc3RhYmVsbGUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm9taXR0aW5nIGVtcHR5IHBhcnRpdGlvbiAoJWQpXG4iCittc2dzdHIgIldhcm51bmc6IGxlZXJlIFBhcnRpdGlvblxuIgorCisjOiBmZGlzay9mZGlzay5jOjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGlkZW50aWZpZXI6IDB4JTA4eFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBkaXNrIGlkZW50aWZpZXIgKGN1cnJlbnQgMHglMDh4KTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTQwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgRE9TIGRpc2tsYWJlbCB3aXRoIGRpc2sgaWRlbnRpZmllciAweCUwOHguXG4iCisiQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLlxuIgorIkFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJFcnN0ZWxsZSBuZXVlIERPUy1Cb290c2VrdG9yZW4uIERpZSDDhG5kZXJ1bmdlbiB3ZXJkZW4gdm9yZXJzdCBudXIgaW0gIgorIlNwZWljaGVyXG4iCisiZ2VtYWNodCwgYmlzIFNpZSBzaWNoIGVudHNjaGVpZGVuLCBzaWUgenUgc2NocmVpYmVuLiBEYW5hY2ggaXN0IG5hdMO8cmxpY2ggIgorImRlclxuIgorInZvcmhlcmlnZSBJbmhhbHQgdW5yZXR0YmFyIHZlcmxvcmVuLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAiSGlud2VpczogRGllIFNla3Rvcmdyw7bDn2UgaXN0ICVkIChuaWNodCAlZClcbiIKKworIyBYWFgKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJTaWUgd2VyZGVuIGRpZSBQYXJ0aXRpb25zdGFiZWxsZSBuaWNodCBzY2hyZWliZW4ga8O2bm5lbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKyJEaWVzZSBQbGF0dGUgaGF0IHNvd29obCBET1MtIGFscyBhdWNoIEJTRC1NYWdpYy5cbiIKKyJOdXR6ZW4gU2llIGRlbiDigJ5i4oCcLUJlZmVobCwgdW0gaW4gZGVuIEJTRC1Nb2R1cyB6dSBnZWhlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisiRGFzIEdlcsOkdCBlbnRow6RsdCB3ZWRlciBlaW5lIGfDvGx0aWdlIERPUy1QYXJ0aXRpb25zdGFiZWxsZSxcbiIKKyJub2NoIGVpbmVuIOKAnlN1buKAnCwg4oCeU0dJ4oCcIG9kZXIg4oCeT1NGIGRpc2tsYWJlbOKAnFxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW50ZXJuYWwgZXJyb3JcbiIKK21zZ3N0ciAiSW50ZXJuZXIgRmVobGVyXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI4MworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmluZyBleHRyYSBleHRlbmRlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiRGllIHp1c8OkdHpsaWNoZSBlcndlaXRlcnRlIFBhcnRpdGlvbiAlZCBpZ25vcmllcmVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogaW52YWxpZCBmbGFnIDB4JTA0eCBvZiBwYXJ0aXRpb24gdGFibGUgJWQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyIKKyIocml0ZSlcbiIKK21zZ3N0ciAiIgorIldhcm51bmc6IFNjaHJlaWJlbiB3aXJkIHVuZ8O8bHRpZ2VzIEZsYWcgMHglMDR4IGluIFBhcnQuLXRhYmVsbGUgJWQgIgorImtvcnJpZ2llcmVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorImRyZWltYWxpZyBFT0YgYmVrb21tZW4g4oCTIGJlZW5kZeKAplxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIkhleCBjb2RlIChMIHVtIGVpbmUgTGlzdGUgYW56dXplaWdlbik6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiJXMgKCV1LSV1LCBWb3JnYWJlOiAldSk6ICIKKworIzogZmRpc2svZmRpc2suYzoxNDYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuc3VwcG9ydGVkIHN1ZmZpeDogJyVzJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ4OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBkZWZhdWx0IHZhbHVlICV1XG4iCittc2dzdHIgIkJlbnV0emUgZGVuIFN0YW5kYXJkd2VydCAldVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmFsdWUgb3V0IG9mIHJhbmdlLlxuIgorbXNnc3RyICJXZXJ0IGF1w59lcmhhbGIgZGVzIEJlcmVpY2hzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1MTgKK21zZ2lkICJQYXJ0aXRpb24gbnVtYmVyIgorbXNnc3RyICJQYXJ0aXRpb25zbnVtbWVyIgorCisjOiBmZGlzay9mZGlzay5jOjE1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGhhcyBlbXB0eSB0eXBlXG4iCittc2dzdHIgIldhcm51bmc6IFBhcnRpdGlvbiAlZCBoYXQgbGVlcmVuIFR5cFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgYXVzZ2V3w6RobHRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiTm9jaCBrZWluZSBQYXJ0aXRpb24gZGVmaW5pZXJ0IVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIHByaW1hcnkgcGFydGl0aW9ucyBoYXZlIGJlZW4gZGVmaW5lZCBhbHJlYWR5IVxuIgorbXNnc3RyICJBbGxlIHByaW3DpHJlbiBQYXJ0aXRpb25lbiBzaW5kIHNjaG9uIGRlZmluaWVydCB3b3JkZW4hXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgImN5bGluZGVyIgorbXNnc3RyICJaeWxpbmRlciIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICJTZWt0b3IiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIkRpZSBFaW5oZWl0IGbDvHIgZGllIEFuemVpZ2UvRWluZ2FiZSBpc3QgbnVuICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIldBUk5VTkc6IFBhcnRpdGlvbiAlZCBpc3QgZWluZSBlcndlaXRlcnRlIFBhcnRpdGlvblxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIKK21zZ3N0ciAiRE9TLUtvbXBhdGliaWxpdMOkdHNmbGFnIGlzdCBnZXNldHp0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMgorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXRcbiIKK21zZ3N0ciAiRE9TLUtvbXBhdGliaWxpdMOkdHNmbGFnIGlzdCBuaWNodCBnZXNldHp0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyMworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgZXhpc3RpZXJ0IG5vY2ggbmljaHQhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisiVHlwIDAgYmVkZXV0ZXQgZsO8ciB2aWVsZSBTeXN0ZW1lIChhbGxlcmRpbmdzIG5pY2h0XG4iCisiTGludXgpIGZyZWllbiBQbGF0ei4gUGFydGl0aW9uZW4gbWl0IFR5cCAwIHp1IGhhYmVuXG4iCisiaXN0IHdhaHJzY2hlaW5saWNoIHVua2x1Zy4gU2llIGvDtm5uZW4gZWluZSBQYXJ0aXRpb25cbiIKKyJtaXQgZGVtIOKAnmTigJwtS29tbWFuZG8gbMO2c2NoZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTczNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGNhbm5vdCBjaGFuZ2UgYSBwYXJ0aXRpb24gaW50byBhbiBleHRlbmRlZCBvbmUgb3IgdmljZSB2ZXJzYVxuIgorIkRlbGV0ZSBpdCBmaXJzdC5cbiIKK21zZ3N0ciAiIgorIkVzIGlzdCBuaWNodCBtw7ZnbGljaCwgZWluZSBQYXJ0aXRpb24gaW4gZWluZSBFcndlaXRlcnRlIHp1IMOkbmRlcm4gb2RlclxuIgorInVtZ2VrZWhydC4gIEJpdHRlIGzDtnNjaGVuIFNpZSBkaWUgUGFydGl0aW9uIHp1ZXJzdC5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiAzIGFzIFdob2xlIGRpc2sgKDUpLFxuIgorImFzIFN1bk9TL1NvbGFyaXMgZXhwZWN0cyBpdCBhbmQgZXZlbiBMaW51eCBsaWtlcyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlppZWhlbiBTaWUgaW4gQmV0cmFjaHQsIFBhcnRpdGlvbiAzIGFscyDigJ5XaG9sZSBkaXNr4oCcIChnYW56ZSBQbGF0dGUsIDUpXG4iCisienUgbGFzc2VuLCB3aWUgZXMgU3VuT1MvU29sYXJpcyBlcndhcnRldCB1bmQgc29nYXIgTGludXggZXMgbWFnLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5IGFzIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImFuZCBwYXJ0aXRpb24gMTEgYXMgZW50aXJlIHZvbHVtZSAoNiksIGFzIElSSVggZXhwZWN0cyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlppZWhlbiBTaWUgaW4gQmV0cmFjaHQsIFBhcnRpdGlvbiA5IGFscyDigJ5Wb2x1bWUgSGVhZGVy4oCcICg1KSB1bmQgUGFydGl0aW9uICIKKyIxMVxuIgorImFscyBnZXNhbXRlIFBsYXR0ZSB6dSBsYXNzZW4sIHdpZSBlcyBJUklYIGVyd2FydGV0LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICJEZXIgRGF0ZWlzeXN0ZW10eXAgZGVyIFBhcnRpdGlvbiAlZCBpc3QgbnVuICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgaXMgdW5jaGFuZ2VkOiAleCAoJXMpXG4iCittc2dzdHIgIkRlciBEYXRlaXN5c3RlbXR5cCBkZXIgUGFydGl0aW9uICVkIGlzdCBudW4gJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIGhhdCB1bnRlcnNjaGllZGxpY2hlIHBoeXMuL2xvZy4gQW5mw6RuZ2UgKG5pY2h0LUxpbnV4Pyk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyOSBmZGlzay9mZGlzay5jOjE4MzcgZmRpc2svZmRpc2suYzoxODQ2IGZkaXNrL2ZkaXNrLmM6MTg1NgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKK21zZ3N0ciAiICAgICBwaHlzPSglZCwgJWQsICVkKSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzMCBmZGlzay9mZGlzay5jOjE4MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naWNhbD0oJWQsICVkLCAlZClcbiIKK21zZ3N0ciAibG9naXNjaD0oJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIGhhdCB1bnRlcnNjaGllZGxpY2hlIHBoeXMuL2xvZy4gRW5kZW46XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCittc2dzdHIgIlBhcnRpdGlvbiAlaSBiZWdpbm50IG5pY2h0IGFuIGVpbmVyIFp5bGluZGVyZ3JlbnplOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgInNvbGx0ZSBzZWluICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWkgZW5kZXQgbmljaHQgYW4gZWluZXIgWnlsaW5kZXJncmVuemUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgJWQpXG4iCittc2dzdHIgInNvbGx0ZSBzZWluICglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlaSBiZWdpbm50IG5pY2h0IGFuIGVpbmVyIFp5bGluZGVyZ3JlbnplOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiUGxhdHRlICVzOiAlbGQgTUJ5dGUsICVsbGQgQnl0ZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBsYXR0ZSAlczogJWxkLiVsZCBHQnl0ZSwgJWxsZCBCeXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBoZWFkcywgJWxsdSBzZWN0b3JzL3RyYWNrLCAlZCBjeWxpbmRlcnMiCittc2dzdHIgIiVkIEvDtnBmZSwgJWxsdSBTZWt0b3Jlbi9TcHVyLCAlZCBaeWxpbmRlciIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgdG90YWwgJWxsdSBzZWN0b3JzIgorbXNnc3RyICIsIHp1c2FtbWVuICVsbHUgU2VrdG9yZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbml0cyA9ICVzIG9mICVkICogJWQgPSAlZCBieXRlc1xuIgorbXNnc3RyICJFaW5oZWl0ZW4gPSAlcyB2b24gJWQgw5cgJWQgPSAlZCBCeXRlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAidW5nw7xsdGlnZSBJTm9kZS1HcsO2w59lIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIktlaW5lIMOEbmRlcnVuZ2VuIG5vdHdlbmRpZy4gIERpZSBBbm9yZG51bmcgaXN0IHNjaG9uIGtvcnJla3QuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRG9uZS5cbiIKK21zZ3N0ciAiIgorIkZlcnRpZ1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZG9lc24ndCBsb29rIGxpa2UgYSBwYXJ0aXRpb24gdGFibGVcbiIKKyJQcm9iYWJseSB5b3Ugc2VsZWN0ZWQgdGhlIHdyb25nIGRldmljZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkRhcyBzaWVodCBuaWNodCB3aWUgZWluZSBQYXJ0aXRpb25zdGFiZWxsZSBhdXMuXG4iCisiU2llIGhhYmVuIHdhaHJzY2hlaW5saWNoIGRhcyBmYWxzY2hlIEdlcsOkdCBhdXNnZXfDpGhsdC5cbiIKKyJcbiIKKworIyBhZGQgMSBzcGFjZSB0byBsaW5lIHVwOgorIyAiICAgRGV2aWNlIgorIyAiICAgIEdlcsOkdCIKKyMgMjAwMi0wNS0xMCAxMjoxNToxMyBDRVNUIC1rZS0KKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgIGJvb3QuICAgICBBbmZhbmcgICAgICAgIEVuZGUgICAgIEJsw7Zja2UgICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3OCBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjEwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTgKK21zZ2lkICJEZXZpY2UiCittc2dzdHIgIkdlcsOkdCIKKworIzogZmRpc2svZmRpc2suYzoyMTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJQYXJ0aXRpb24gdGFibGUgZW50cmllcyBhcmUgbm90IGluIGRpc2sgb3JkZXJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBhcnRpdGlvbnN0YWJlbGxlbmVpbnRyw6RnZSBzaW5kIG5pY2h0IGluIFBsYXR0ZW4tUmVpaGVuZm9sZ2VcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkZlc3RwbGF0dGUgJXM6ICVkIEvDtnBmZSwgJWxsdSBTZWt0b3JlbiwgJWQgWnlsaW5kZXJcbiIKKyJcbiIKKworIyBJc3QgIktwIiBlaW5lIGd1dGUgQWJrw7xyenVuZyBmw7xyICJLb3BmIiA/CisjIEtmIGlzdCBiZXNzZXIgKDIwMDEtMTEtMjQgMjE6MzA6NTEgQ0VUIC1rZS0pCisjOiBmZGlzay9mZGlzay5jOjIxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iCittc2dzdHIgIk5yIEFGICBLcCBTZWsgIFp5bCAgS3AgU2VrICBaeWwgICAgIEFuZmFuZyAgICAgR3LDtsOfZSBJRFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgIldhcm51bmc6IFBhcnRpdGlvbiAlZCBlbnRow6RsdCBTZWt0b3IgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZDogS29wZiAlZCBncsO2w59lciBhbHMgTWF4aW11bSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQ6IFNla3RvciAlZCBncsO2w59lciBhbHMgTWF4aW11bSAlbGx1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQ6IFp5bGluZGVyICVkIGdyw7bDn2VyIGFscyBNYXhpbXVtICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHByZXZpb3VzIHNlY3RvcnMgJWQgZGlzYWdyZWVzIHdpdGggdG90YWwgJWRcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkOiB2ZXJoZXJpZ2VyIFNla3RvciAlZCB3aWRlcnNwcmljaHQgc2ljaCBtaXQgZ2VzYW10ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiV2FybnVuZzogdW5nw7xsdGlnZXIgQW5mYW5nLWRlci1EYXRlbiBpbiBQYXJ0aXRpb24gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBvdmVybGFwcyBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIldhcm51bmc6IFBhcnRpdGlvbiAlZCDDvGJlcmxhcHB0IG1pdCBQYXJ0aXRpb24gJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAiV2FybnVuZzogUGFydGl0aW9uICVkIGlzdCBsZWVyXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1NgorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIiIKKyJMb2dpc2NoZSBQYXJ0aXRpb24gJWQgaXN0IG5pY2h0IHZvbGxzdMOkbmRpZyBpbiBQYXJ0aXRpb24gJWQgZW50aGFsdGVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJHZXNhbXRhbnphaGwgYmVsZWd0ZXIgU2VrdG9yZW4gJWxkIGdyw7bDn2VyIGFscyBNYXhpbXVtICVsbGRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSZW1haW5pbmcgJWxsZCB1bmFsbG9jYXRlZCAlZC1ieXRlIHNlY3RvcnNcbiIKK21zZ3N0ciAiJWxsZCB1bmJlbnV0enRlIFNla3RvcmVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjMwMSBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjIwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGlzIGFscmVhZHkgZGVmaW5lZC4gIERlbGV0ZSBpdCBiZWZvcmUgcmUtYWRkaW5nIGl0LlxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgaXN0IHNjaG9uIGZlc3RnZWxlZ3QuICBWb3IgV2llZGVyYW5sZWdlbiBiaXR0ZSBsw7ZzY2hlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlbGx1IGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIlNla3RvciAlbGx1IHdpcmQgYmVyZWl0cyBiZW51dHp0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBmcmVlIHNlY3RvcnMgYXZhaWxhYmxlXG4iCittc2dzdHIgIkVzIHNpbmQga2VpbmUgZnJlaWVuIFNla3RvcmVuIHZlcmbDvGdiYXJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJTEkcywgKyUyJHMgb3IgK3NpemV7SyxNLEd9IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBBSVggZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0VHV0IG1pciBsZWlkLCBkaWVzZXMgZmRpc2sga2FubiBuaWNodCBtaXQgQUlYLURpc2tsYWJlbHMgdW1nZWhlbi5cbiIKKyJcdFdlbm4gU2llIFBhcnRpdGlvbmVuIHZvbSBUeXAgRE9TIGhpbnp1ZsO8Z2VuIHdvbGxlbiwgZXJzdGVsbGVuIFNpZVxuIgorIlx0enVlcnN0IGVpbmUgbmV1ZSwgbGVlcmUgRE9TLVBhcnRpdGlvbnN0YWJlbGxlIChtaXQgbykuXG4iCisiXHRXQVJOVU5HOiBEYXMgemVyc3TDtnJ0IGRlbiBtb21lbnRhbmVuIEluaGFsdCBJaHJlciBQbGF0dGUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgTWFjIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyJcdFR1dCBtaXIgbGVpZCwgZGllc2VzIGZkaXNrIGthbm4gbmljaHQgbWl0IEFJWC1EaXNrbGFiZWxzIHVtZ2VoZW4uXG4iCisiXHRXZW5uIFNpZSBQYXJ0aXRpb25lbiB2b20gVHlwIERPUyBoaW56dWbDvGdlbiB3b2xsZW4sIGVyc3RlbGxlbiBTaWVcbiIKKyJcdHp1ZXJzdCBlaW5lIG5ldWUsIGxlZXJlIERPUy1QYXJ0aXRpb25zdGFiZWxsZSAobWl0IG8pLlxuIgorIlx0V0FSTlVORzogRGFzIHplcnN0w7ZydCBkZW4gbW9tZW50YW5lbiBJbmhhbHQgSWhyZXIgUGxhdHRlLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iCittc2dzdHIgIlNpZSBtw7xzc2VuIGVyc3QgZWluZSBQYXJ0aW9uIGzDtnNjaGVuIHVuZCBlaW5lIGVyd2VpdGVydGUgYW5sZWdlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICJBbGxlIGxvZ2lzY2hlbiBQYXJ0aXRpb25lbiBzaW5kIGluIEJlbnV0enVuZ1xuIgorCisjICJVbmfDvGx0aWdlIHByaW3DpHJlIFBhcnRpdGlvbiIKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJBZGRpbmcgYSBwcmltYXJ5IHBhcnRpdGlvblxuIgorbXNnc3RyICJGw7xnZSBwcmltw6RyZSBQYXJ0aXRpb24gaGluenVcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKyJCZWZlaGwgIEFrdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgICAgIFByaW3DpHJlIFBhcnRpdGlvbiAoMS00KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJsICAgbG9naWNhbCAoNSBvciBvdmVyKSIKK21zZ3N0ciAibCAgICAgIExvZ2lzY2hlIFBhcnRpdGlvbiAoNSBvZGVyIGdyw7bDn2VyKSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAgICAgRXJ3ZWl0ZXJ0ZSIKKworIzogZmRpc2svZmRpc2suYzoyNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgcGFydGl0aW9uIG51bWJlciBmb3IgdHlwZSBgJWMnXG4iCittc2dzdHIgIlVuZ8O8bHRpZ2UgUGFydGl0aW9uc251bW1lciBmw7xyIGRlbiBUeXAg4oCeJWPigJxcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhXG4iCisiXG4iCittc2dzdHIgIiIKKyJEaWUgUGFydGl0aW9uc3RhYmVsbGUgd3VyZGUgdmVyw6RuZGVydCFcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgaW9jdGwoKSB0byByZS1yZWFkIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiUnVmZSBpb2N0bCgpIHVtIFBhcnRpdGlvbnN0YWJlbGxlIG5ldSBlaW56dWxlc2VuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorIlxuIgorIldBUk5VTkc6IE5ldWVpbmxlc2VuIGRlciBQYXJ0aXRpb25zdGFiZWxsZSBmw7xocnRlIHp1IEZlaGxlciAlZDogJXMuXG4iCisiRGVyIEtlcm5lbCBiZW51dHp0IG5vY2ggZGllIGFsdGUgVGFiZWxsZS5cbiIKKyJEaWUgbmV1ZSBUYWJlbGxlIHdpcmQgYmVpbSBuw6RjaHN0ZW4gTmV1c3RhcnQgdmVyd2VuZGV0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55IERPUyA2LnhcbiIKKyJwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBmZGlzayBtYW51YWwgcGFnZSBmb3IgYWRkaXRpb25hbFxuIgorImluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiV0FSTlVORzogV2VubiBTaWUgZWluZSBET1MgNi54IFBhcnRpdGlvbiBhbmdlbGVndFxuIgorIm9kZXIgdmVyw6RuZGVydCBoYWJlbiwgZGFubiBzY2hhdWVuIFNpZSBiaXR0ZSBpbiBkaWVcbiIKKyJmZGlzay1tYW51YWwtU2VpdGUgbmFjaCB3ZWl0ZXJlbiBJbmZvcm1hdGlvbmVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRXJyb3IgY2xvc2luZyBmaWxlXG4iCittc2dzdHIgIiIKKyJcbiIKKyJGZWhsZXIgYmVpbSBTY2hsaWXDn2VuIHZvbiBEYXRlaVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiU3luY2hyb25pc2llcmUgUGxhdHRlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgbm8gZGF0YSBhcmVhXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCBoYXQga2VpbmVuIERhdGVuYmVyZWljaFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTYKK21zZ2lkICJOZXcgYmVnaW5uaW5nIG9mIGRhdGEiCittc2dzdHIgIk5ldWVyIERhdGVuYW5mYW5nIgorCisjIFRoYXQgc291bmRzIHByZXR0eSB1bW1t4oCmCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiRXhwZXJ0ZW5rb21tYW5kbyAobSBmw7xyIEhpbGZlKTogIgorCisjOiBmZGlzay9mZGlzay5jOjI2ODUKK21zZ2lkICJOdW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICJBbnphaGwgZGVyIFp5bGluZGVyIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIkFuemFobCBkZXIgS8O2cGZlIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzcKK21zZ2lkICJOdW1iZXIgb2Ygc2VjdG9ycyIKK21zZ3N0ciAiQW56YWhsIGRlciBTZWt0b3JlbiIKKworIzogZmRpc2svZmRpc2suYzoyNzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHNldHRpbmcgc2VjdG9yIG9mZnNldCBmb3IgRE9TIGNvbXBhdGlibGl0eVxuIgorbXNnc3RyICJXYXJudW5nOiBzZXR6ZSBTZWt0b3Jlbi1PZmZzZXQgZsO8ciBET1MtS29tcGF0aWJpbGl0w6R0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgZmRpc2sgZG9lc24ndCAiCisic3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzIGRvZXNuJ3QgY29udGFpbiBhIHZhbGlkIHBhcnRpdGlvbiB0YWJsZVxuIgorbXNnc3RyICJGZXN0cGxhdHRlICVzIGVudGjDpGx0IGtlaW5lIGfDvGx0aWdlIFBhcnRpdGlvbnN0YWJlbGxlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgzMQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWM6IHVua25vd24gY29tbWFuZFxuIgorbXNnc3RyICIlYzogVW5iZWthbm50ZXIgQmVmZWhsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIGtlcm5lbCBmaW5kcyB0aGUgc2VjdG9yIHNpemUgaXRzZWxmIC0gLWIgb3B0aW9uIGlnbm9yZWRcbiIKK21zZ3N0ciAiRGllc2VyIEtlcm5lbCBzdGVsbHQgU2VrdG9yZW5ncsO2w59lIHNlbGJzdCBmZXN0IOKAkyBPcHRpb24gLWIgaWdub3JpZXJ0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiV2FybnVuZzogT3B0aW9uIC1iIChTZWt0b3Jlbmdyw7bDn2Ugc2V0emVuKSBzb2xsdGUgbnVyIG1pdCBlaW5lbVxuIgorImFuZ2VnZWJlbmVuIEdlcsOkdCBiZW51dHp0IHdlcmRlblxuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgYW4gT1NGLzEgZGlza2xhYmVsIG9uICVzLCBlbnRlcmluZyBkaXNrbGFiZWwgbW9kZS5cbiIKK21zZ3N0ciAiRWluIE9ERi8xLURpc2tsYWJlbCBhdWYgJXMgZW50ZGVja3QsIGdlaGUgaW4gRGlza2xhYmVsLU1vZHVzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMTAKK21zZ2lkICJDb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJCZWZlaGwgKG0gZsO8ciBIaWxmZSk6ICIKKworIzogZmRpc2svZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgY3VycmVudCBib290IGZpbGUgaXM6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJNb21lbnRhbmUgQm9vdGRhdGVpIGlzdDogJXNcbiIKKworIzogZmRpc2svZmRpc2suYzozMDI4Cittc2dpZCAiUGxlYXNlIGVudGVyIHRoZSBuYW1lIG9mIHRoZSBuZXcgYm9vdCBmaWxlOiAiCittc2dzdHIgIkJpdHRlIGdlYmVuIFNpZSBkZW4gTmFtZW4gZGVyIG5ldWVuIEJvb3QtRGF0ZWkgYW46ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiQm9vdC1EYXRlaSB1bnZlcsOkbmRlcnRcbiIKKworIzogZmRpc2svZmRpc2suYzozMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdFNvcnJ5LCBubyBleHBlcnRzIG1lbnUgZm9yIFNHSSBwYXJ0aXRpb24gdGFibGVzIGF2YWlsYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0VHV0IG1pciBsZWlkLCBrZWluIEV4cGVydGVuLU1lbsO8IGbDvHIgU0dJLVBhcnRpdGlvbnN0YWJlbGxlbiB2ZXJmw7xnYmFyLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKKyMsIGZ1enp5Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBNYWMgbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBmZGlzaygxKSBjYW5ub3QgaGFuZGxlIHRoZXNlIGRpc2tzLlxuIgorIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisiXHROZXZlcnRoZWxlc3Mgc29tZSBhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEVzIGdpYnQgZWluIEFJWC1MYWJlbCBhdWYgZGllc2VyIFBsYXR0ZS5cbiIKKyJcdERpZXNlIGvDtm5uZW4gbGVpZGVyIHZvbiBMaW51eCBtb21lbnRhbiBuaWNodFxuIgorIlx0Z2VoYW5kaGFidCB3ZXJkZW4uIERlbm5vY2ggZWluaWdlIEhpbndlaXNlOlxuIgorIlx0MS4gZmRpc2sgd2lyZCBkZW4gSW5oYWx0IGJlaW0gU2NocmVpYmVuIHplcnN0w7ZyZW5cbiIKKyJcdDIuIFN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWVzZSBQbGF0dGUgTklDSFQgbm9jaFxuIgorIlx0ICAgaW1tZXIgZWluIHdpY2h0aWdlciBUZWlsIGVpbmVyIFBsYXR0ZW5ncnVwcGUgaXN0LlxuIgorIlx0ICAgKEFuZGVyZW5mYWxscyBrw7ZubnRlIGRpZXNlIFBsYXR0ZW4gbWl0Z2Vsw7ZzY2h0XG4iCisiXHQgICB3ZXJkZW4sIHdlbm4gc2llIG5pY2h0IGdlc3BpZWdlbHQgd2VyZGVuLilcbiIKKyJcdDMuIEJldm9yIFNpZSBkaWVzZSBwaHlzaXNjaGUgUGxhdHRlIGzDtnNjaGVuLCBlbnRmZXJuZW5cbiIKKyJcdCAgIFNpZSBzaWUgdW5iZWRpbmd0IGxvZ2lzY2ggYXVzIElocmVyIEFJWC1NYXNjaGluZS5cbiIKKyJcdCAgIChBbmRlcmVuZmFsbHMgd2VyZGVuIFNpZSBlaW4gQUlYcGVydGUuKSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgxCittc2dpZCAiU0dJIHZvbGhkciIKK21zZ3N0ciAiU0dJIHZvbGhkciIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgyCittc2dpZCAiU0dJIHRya3JlcGwiCittc2dzdHIgIlNHSSB0cmtyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODMKK21zZ2lkICJTR0kgc2VjcmVwbCIKK21zZ3N0ciAiU0dJIHNlY3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NAorbXNnaWQgIlNHSSByYXciCittc2dzdHIgIlNHSSByYXciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NQorbXNnaWQgIlNHSSBic2QiCittc2dzdHIgIlNHSSBic2QiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NgorbXNnaWQgIlNHSSBzeXN2IgorbXNnc3RyICJTR0kgc3lzdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg3Cittc2dpZCAiU0dJIHZvbHVtZSIKK21zZ3N0ciAiU0dJIHZvbHVtZSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiU0dJIGVmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIlNHSSBsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIlNHSSBybHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIHhmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIkxpbnV4IFN3YXAiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTEKK21zZ2lkICJMaW51eCBuYXRpdmUiCittc2dzdHIgIkxpbnV4IG5hdGl2ZSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYzCittc2dpZCAiTGludXggTFZNIgorbXNnc3RyICJMaW51eCBMVk0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5OAorbXNnaWQgIkxpbnV4IFJBSUQiCittc2dzdHIgIkxpbnV4IFJBSUQiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkFjY29yZGluZyB0byBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyB0aGUgTGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gIgorIjUxMiBieXRlc1xuIgorbXNnc3RyICIiCisiTGF1dCBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyBkYXJmIGRhcyBMYWJlbCBow7ZjaHN0ZW5zIDUxMiBCeXRlcyAiCisiZW50aGFsdGVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJTR0ktRGlza2xhYmVsIG1pdCBmYWxzY2hlciBQcsO8ZnN1bW1lIGVudGRlY2t0LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQbGF0dGUgJXMgKOKAnlNHSSBEaXNrbGFiZWzigJwpOiAlZCBLw7ZwZmUsICVkIFNla3RvcmVuXG4iCisiJWQgWnlsaW5kZXIsICVkIHBoeXNpc2NoZSBaeWxpbmRlclxuIgorIiVkIEV4dHJhc2VrdC4vWnlsLCBJbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIkVpbmhlaXRlbiA9ICVzIG1pdCAlZCDDlyAlZCBCeXRlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiUGxhdHRlICVzICjigJ5TR0kgZGlza2xhYmVs4oCcKTogJWQgS8O2cGZlLCAlbGx1IFNla3RvcmVuLCAlZCBaeWxpbmRlclxuIgorIkVpbmhlaXRlbjogJXMgbWl0ICVkIMOXICVkIEJ5dGVzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIHBhcnRpdGlvbnMgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgICBTdGFydCAgICAgICBFbmQgICBTZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKyItLS0tLSBQYXJ0aXRpb25lbiAtLS0tLVxuIgorIk5yLiAlKnMgIEluZm8gICAgIEFuZmFuZyAgICAgIEVuZGUgIFNla3RvcmVuIElkICBTeXN0ZW1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gQm9vdGluZm8gLS0tLS1cbiIKKyJCb290ZmlsZTogJXNcbiIKKyItLS0tLSBEaXJlY3RvcnkgRW50cmllcyAtLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0gQm9vdGluZm8gLS0tLS1cbiIKKyJCb290ZGF0ZWk6ICVzXG4iCisiLS0tLS0gVmVyemVpY2huaXNlaW50csOkZ2UgLS0tLS1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiUyZDogJS0xMHMgU2VrdG9yJTV1IEdyw7bDn2UlOHVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSW52YWxpZCBCb290ZmlsZSFcbiIKKyJcdFRoZSBib290ZmlsZSBtdXN0IGJlIGFuIGFic29sdXRlIG5vbi16ZXJvIHBhdGhuYW1lLFxuIgorIlx0ZS5nLiBcIi91bml4XCIgb3IgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVbmfDvGx0aWdlIEJvb3RkYXRlaSFcbiIKKyJcdERpZSBCb290ZGF0ZWkgbXVzcyBlaW4gYWJzb2x1dGVyLCBuaWNodGxlZXJlciBQZmFkbmFtZSBzZWluLFxuIgorIlx0ei4gQi4g4oCeL3VuaXjigJwgb2RlciDigJ4vdW5peC5zYXZl4oCcLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Mjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdE5hbWUgb2YgQm9vdGZpbGUgdG9vIGxvbmc6ICAxNiBieXRlcyBtYXhpbXVtLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHROYW1lIGRlciBCb290ZGF0ZWkgenUgbGFuZzogaMO2Y2hzdGVucyAxNiBCeXRlcy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBtdXN0IGhhdmUgYSBmdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEJvb3RkYXRlaSBtdXNzIGVpbmVuIHZvbGwgcXVhbGlmaXppZXJ0ZW4gUGZhZG5hbWVuIGhhYmVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdFZvcnNpY2h0LCBkaWUgRXhpc3RlbnogZGVyIEJvb3RkYXRlaSB3aXJkIG5pY2h0IGdlcHLDvGZ0LlxuIgorIlx0U0dJcyBWb3JlaW5zdGVsbHVuZyBpc3Qg4oCeL3VuaXjigJwgdW5kIGFscyBTaWNoZXJ1bmcg4oCeL3VuaXguc2F2ZeKAnC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0Qm9vdGRhdGVpIGdlw6RuZGVydCBhdWYg4oCeJXPigJwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICJNZWhyIGFscyBlaW4gRWludHJhZyBmw7xyIOKAmmdlc2FtdGUgUGxhdHRl4oCYIHZvcmhhbmRlbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJLZWluZSBQYXJ0aXRpb25lbiBkZWZpbmllcnRcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJJUklYIGxpa2VzIHdoZW4gUGFydGl0aW9uIDExIGNvdmVycyB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIklSSVggbWFnIGVzLCB3ZW5uIFBhcnRpdGlvbiAxMSBkaWUgZ2FuemUgUGxhdHRlIHVtZmFzc3QuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIkRpZSBQYXJ0aXRpb24gZsO8ciBkaWUgZ2FuemUgUGxhdHRlIHNvbGx0ZSBiZWkgQmxvY2sgMCBiZWdpbm5lbixcbiIKKyJuaWNodCBiZWkgUGxhdHRlbmJsb2NrICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKyJEaWUgUGFydGl0aW9uIGbDvHIgZGllIGdhbnplIFBsYXR0ZSBpc3QgbnVyICVkIEJsw7Zja2UgZ3Jvw58sXG4iCisiZGllIFBsYXR0ZSBhbGxlcmRpbmdzIHVtZmFzc3QgJWQgQmzDtmNrZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJPbmUgUGFydGl0aW9uICgjMTEpIHNob3VsZCBjb3ZlciB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIkVpbmUgUGFydGl0aW9uICgjMTEpIHNvbGx0ZSBkaWUgZ2FuemUgUGxhdHRlIHVtZmFzc2VuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIGJlZ2lubnQgbmljaHQgYW4gZWluZXIgWnlsaW5kZXJncmVuemUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIGVuZGV0IG5pY2h0IGFuIGVpbmVyIFp5bGluZGVyZ3JlbnplLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBQYXJ0aXRpb24gJWQgYW5kICVkIG92ZXJsYXAgYnkgJWQgc2VjdG9ycy5cbiIKK21zZ3N0ciAiUGFydGl0aW9uZW4gJWQgdW5kICVkIMO8YmVybGFwcGVuIHNpY2ggbWl0ICVkIFNla3RvcmVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDg0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCBvZiAlOHUgc2VjdG9ycyAtIHNlY3RvcnMgJTh1LSV1XG4iCittc2dzdHIgIlVuYmVudXR6dGUgTMO8Y2tlIHZvbiAlOHUgU2VrdG9yZW4g4oCTIFNla3RvciAlOHUtJXVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGJvb3QgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiRGllIEJvb3RwYXJ0aXRpb24gZXhpc3RpZXJ0IG5pY2h0LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaWUgU3dhcHBhcnRpdGlvbiBleGlzdGllcnQgbmljaHQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisiRGllIFN3YXBwYXJ0aXRpb24gaGF0IGtlaW5lbiBTd2FwLVR5cC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMworIywgYy1mb3JtYXQKK21zZ2lkICJcdFlvdSBoYXZlIGNob3NlbiBhbiB1bnVzdWFsIGJvb3QgZmlsZSBuYW1lLlxuIgorbXNnc3RyICJcdFNpZSBoYWJlbiBlaW5lbiB1bsO8YmxpY2hlbiBCb290LURhdGVpbmFtZW4gZ2V3w6RobHQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnkgWW91IG1heSBjaGFuZ2UgdGhlIFRhZyBvZiBub24tZW1wdHkgcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAiVHV0IG1pciBsZWlkLCBTaWUga8O2bm5lbiBkYXMgVGFnIG5pY2h0LWxlZXJlciBQYXJ0aXRpb25lbiDDpG5kZXJuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJFcyBpc3QgaMO2Y2hzdCBlbXBmZWhsZW5zd2VydCwgZGllIFBhcnRpdGlvbiBhbiBQb3NpdGlvbiAwIHZpbSBUeXBlIOKAnlNHSSAiCisidm9saGRy4oCcXG4iCisic2VpbiB6dSBsYXNzZW4sIGRhIGRhcyBJUklYLVN5c3RlbSBzaWNoIGRhcmF1ZiB2ZXJsw6Rzc3QsIHVtIGF1cyBpaHJlbVxuIgorIlZlcnplaWNobmlzIGFsbGVpbnN0ZWhlbmRlIFByb2dyYW1tZSB3aWUgc2FzaCB1bmQgZnggenUgaG9sZW4uIE51ciBkaWUgIgorIlNla3Rpb25cbiIKKyLigJ5TR0kgdm9sdW1l4oCcIGbDvHIgZGllIGdhbnplIFBsYXR0ZSBkYXJmIGRpZXNlIEZvcmRlcnVuZyB2ZXJsZXR6ZW4uXG4iCisiR2ViZW4gU2llIEpBV09ITCBlaW4sIHdlbm4gU2llIHNpY2hlciBzaW5kLCBkaWVzZVxuIgorIlBhcnRpdGlvbiB2b24gYW5kZXJlbSBUeXAgc2VpbiBsYXNzZW4genUgd29sbGVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiSkFXT0hMXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiIgorIldpc3NlbiBTaWUsIGRhc3MgU2llIGVpbmUgUGFydGl0aW9uZW7DvGJlcmxhcHB1bmcgYXVmIGRlciBQbGF0dGUgaGFiZW4/XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBlbnRpcmUgZGlzayBlbnRyeSBhdXRvbWF0aWNhbGx5LlxuIgorbXNnc3RyICIiCisiVmVyc3VjaGUsIGRlbiBFaW50cmFnIGbDvHIg4oCaZ2VzYW10ZSBQbGF0dGXigJggYXV0b21hdGlzY2ggenUgZ2VuZXJpZXJlbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZW50aXJlIGRpc2sgaXMgYWxyZWFkeSBjb3ZlcmVkIHdpdGggcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAiRXMgd2lyZCBzY2hvbiBkaWUgZ2FuemUgUGxhdHRlIHZvbiBQYXJ0aXRpb25lbiBhYmdlZGVja3QuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKyJTaWUgaGFiZW4gZWluZSBQYXJ0aXRpb25lbsO8YmVybGFwcHVuZyBhdWYgZGVyIFBsYXR0ZS4gQml0dGVcbiIKKyJiZXNlaXRpZ2VuIFNpZSBkaWVzZSB6dWVyc3QhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIkVzIGlzdCBow7ZjaHN0IGVtcGZlaGxlbnN3ZXJ0LCBkaWUgZWxmdGUgUGFydGl0aW9uIGRpZSBnYW56ZVxuIgorIlBsYXR0ZSDDvGJlcmRlY2tlbiB1bmQgc2llIHZvbSBUeXAg4oCeU0dJIHZvbHVtZeKAnCBzZWluIHp1IGxhc3Nlbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBnZXQgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICIiCisiU2llIHdlcmRlbiBlaW5lIFBhcnRpdGlvbmVuw7xiZXJsYXBwdW5nIGF1ZiBkZXIgUGxhdHRlIGVyaGFsdGVuLiBCaXR0ZVxuIgorImJlc2VpdGlnZW4gU2llIGRpZXNlIHp1ZXJzdCFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgTGFzdCAlcyIKK21zZ3N0ciAiIExldHp0ZSAlcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgU0dJIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3aWxsIGJlIHVucmVjb3ZlcmFibHkgbG9zdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVyc3RlbGxlIG5ldWUgU0dJLUJvb3RzZWt0b3Jlbi4gRGllIMOEbmRlcnVuZ2VuIHdlcmRlbiB2b3JlcnN0IG51ciBpbSAiCisiU3BlaWNoZXJcbiIKKyJnZW1hY2h0LCBiaXMgU2llIHNpY2ggZW50c2NoZWlkZW4sIHNpZSB6dSBzY2hyZWliZW4uIERhbmFjaCBpc3QgbmF0w7xybGljaCAiCisiZGVyXG4iCisidm9yaGVyaWdlIEluaGFsdCB1bnJldHRiYXIgdmVybG9yZW4uXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKyJXYXJudW5nOiAgQkxLR0VUU0laRS1Jb2N0bCBmZWhsZ2VzY2hsYWdlbiBhdWYgJXMuIEJlbnV0emUgIgorIkdlb21ldHJpZXp5bGluZGVyd2VydFxuIgorInZvbiAlZC4gRGllc2VyIFdlcnQga2FubiBmw7xyIEdlcsOkdGUgPiAzMyw4IEdCIGFiZ2VzY2huaXR0ZW4gc2Vpbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8ga2VlcCBwYXJhbWV0ZXJzIG9mIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiVmVyc3VjaGUsIFBhcmFtZXRlciBkZXIgUGFydGl0aW9uICVkIHp1IGVyaGFsdGVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklEPSUwMnhcdFNUQVJUPSVkXHRMRU5HVEg9JWRcbiIKK21zZ3N0ciAiSUQ9JTAyeFx0QU5GQU5HPSVkXHRMw4ROR0U9JWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4Cittc2dpZCAiVW5hc3NpZ25lZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDAKK21zZ2lkICJTdW5PUyByb290IgorbXNnc3RyICJTdW5PUyByb290IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDEKK21zZ2lkICJTdW5PUyBzd2FwIgorbXNnc3RyICJTdW5PUyBTd2FwIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIKK21zZ2lkICJTdW5PUyB1c3IiCittc2dzdHIgIlN1bk9TIHVzciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQzCittc2dpZCAiV2hvbGUgZGlzayIKK21zZ3N0ciAiR2VzYW10ZSBQbGF0dGUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBzdGFuZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICJTdW5PUyB2YXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICJTdW5PUyBhbHQgc2VjdG9ycyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4Cittc2dpZCAiU3VuT1MgY2FjaGVmcyIKK21zZ3N0ciAiU3VuT1MgY2FjaGVmcyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIlN1bk9TIHJlc2VydmVkIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDMKK21zZ2lkICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCittc2dzdHIgIkxpbnV4IHJhaWQgYXV0b2RldGVjdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjEzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorIlByb2JhYmx5IHlvdSdsbCBoYXZlIHRvIHNldCBhbGwgdGhlIHZhbHVlcyxcbiIKKyJlLmcuIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMgYW5kIHBhcnRpdGlvbnNcbiIKKyJvciBmb3JjZSBhIGZyZXNoIGxhYmVsIChzIGNvbW1hbmQgaW4gbWFpbiBtZW51KVxuIgorbXNnc3RyICIiCisiU3VuLURpc2tsYWJlbCBtaXQgZmFsc2NoZW4gUHLDvGZzdW1tZSBlbnRkZWNrdC5cbiIKKyJTaWUgd2VyZGVuIHdhaHJzY2hlaW5saWNoIGFsbGUgV2VydGUsIGFsc28gS8O2cGZlLCBTZWt0b3JlbixcbiIKKyJaeWxpbmRlciB1bmQgUGFydGl0aW9uZW4sIHNldHplbiBtw7xzc2VuIG9kZXIgbWl0IGVpbmVtXG4iCisiZnJpc2NoZW4gTGFiZWwgYmVnaW5uZW4gKHMgaW0gSGF1cHRtZW7DvCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICJTR0ktRGlza2xhYmVsIG1pdCBmYWxzY2hlciBQcsO8ZnN1bW1lIGVudGRlY2t0LlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTUzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3Jvbmcgc2FuaXR5IFsweCUwOHhdLlxuIgorbXNnc3RyICJTR0ktRGlza2xhYmVsIG1pdCBmYWxzY2hlciBQcsO8ZnN1bW1lIGVudGRlY2t0LlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgbnVtX3BhcnRpdGlvbnMgWyV1XS5cbiIKK21zZ3N0ciAiU0dJLURpc2tsYWJlbCBtaXQgZmFsc2NoZXIgUHLDvGZzdW1tZSBlbnRkZWNrdC5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJXYXJudW5nOiBTY2hyZWliZW4gd2lyZCB1bmfDvGx0aWdlcyBGbGFnIDB4JTA0eCBpbiBQYXJ0Li10YWJlbGxlICVkICIKKyJrb3JyaWdpZXJlblxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBzdW4gZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiRXJzdGVsbGUgbmV1ZSBTdW4tQm9vdHNla3RvcmVuLiBEaWUgw4RuZGVydW5nZW4gd2VyZGVuIHZvcmVyc3QgbnVyIGltICIKKyJTcGVpY2hlclxuIgorImdlbWFjaHQsIGJpcyBTaWUgc2ljaCBlbnRzY2hlaWRlbiwgc2llIHp1IHNjaHJlaWJlbi4gRGFuYWNoIGlzdCBuYXTDvHJsaWNoICIKKyJkZXJcbiIKKyJ2b3JoZXJpZ2UgSW5oYWx0IHVucmV0dGJhciB2ZXJsb3Jlbi5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMQorbXNnaWQgIlNlY3RvcnMvdHJhY2siCittc2dzdHIgIlNla3RvcmVuL1NwdXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXNuJ3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCBlbmRldCBuaWNodCBhbiBlaW5lciBaeWxpbmRlcmdyZW56ZVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBvdmVybGFwcyB3aXRoIG90aGVycyBpbiBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCDDvGJlcmxhcHB0IG1pdCBhbmRlcmVuIGluIFNla3RvcmVuICVk4oCTJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAwLSVkXG4iCittc2dzdHIgIlVuYmVudXR6dGVyIEJlcmVpY2gg4oCTIFNla3RvciAw4oCTJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIlVuYmVudXR6dGVyIEJlcmVpY2gg4oCTIFNla3RvciAlZOKAkyVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKyJBbmRlcmUgUGFydGl0aW9uIMO8YmVyZGVja2VuIGJlcmVpdHMgZGllIGdhbnplIFBsYXR0ZS5cbiIKKyJMw7ZzY2hlbi92ZXJrbGVpbmVybiBTaWUgc2llIHZvciBlaW5lbSBlcm5ldXRlbiBWZXJzdWNoLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHRoaXJkIHBhcnRpdGlvbiBjb3ZlcnMgdGhlIHdob2xlIGRpc2tcbiIKKyJhbmQgaXMgb2YgdHlwZSBgV2hvbGUgZGlzaydcbiIKK21zZ3N0ciAiIgorIkVzIGlzdCBow7ZjaHN0IGVtcGZlaGxlbnN3ZXJ0LCBkaWUgZWxmdGUgUGFydGl0aW9uIGRpZSBnYW56ZVxuIgorIlBsYXR0ZSDDvGJlcmRlY2tlbiB1bmQgc2llIHZvbSBUeXAg4oCeU0dJIHZvbHVtZeKAnCBzZWluIHp1IGxhc3Nlbi5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAiU2VrdG9yICVkIHdpcmQgYmVyZWl0cyBiZW51dHp0XG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlbid0IGNvdmVyZWQgdGhlIHdob2xlIGRpc2sgd2l0aCB0aGUgM3JkIHBhcnRpdGlvbiwgYnV0IHlvdXIgdmFsdWVcbiIKKyIlZCAlcyBjb3ZlcnMgc29tZSBvdGhlciBwYXJ0aXRpb24uIFlvdXIgZW50cnkgaGFzIGJlZW4gY2hhbmdlZFxuIgorInRvICVkICVzXG4iCittc2dzdHIgIiIKKyJTaWUgaGFiZW4gbmljaHQgZGllIGdhbnplIFBsYXR0ZSBtaXQgZGVyIGRyaXR0ZW4gUGFydGl0aW9uIMO8YmVyZGVja3QsIGFiZXJcbiIKKyJJaHIgV2VydCAlZCAlcyDDvGJlcmRlY2t0IGVpbmlnZSBhbmRlcmUgUGFydGl0aW9uZW4uIElociBFaW50cmFnIHd1cmRlIGF1ZlxuIgorIiVkICVzIGdlw6RuZGVydFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyJXZW5uIFNpZSBTdW5PUy9Tb2xhcmlzLUtvbXBhdGliaWxpdMOkdCBiZWliZWhhbHRlbiB3b2xsZW4sIHNvbGx0ZW4gU2llIGluXG4iCisiQmV0cmFjaHQgemllaGVuLCBkaWVzZSBQYXJ0aXRpb24gYWxzIOKAnkdlc2FtdGUgUGxhdHRl4oCcICg1KSB6dSBsYXNzZW4sIG1pdCAiCisiZGVtXG4iCisiQmVnaW5uIGJlaSAwIHVuZCAldSBTZWt0b3Jlbi5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIkVzIHdpcmQgZHJpbmdlbmQgZW1wZm9obGVuLCBkYXNzIGRpZSBQYXJ0aXRpb24gYmVpIE9mZnNldCAwIGVudHdlZGVyXG4iCisiVUZTLCBFeHQyRlMgb2RlciDigJ5TdW5PUyBTd2Fw4oCcIGlzdC4gRG9ydCDigJ5MaW51eCBTd2Fw4oCcIHp1IGVyc3RlbGxlbiBrYW5uXG4iCisiSWhyZSBQYXJ0aXRpb25zdGFiZWxsZSB1bmQgSWhyZW4gQm9vdGJsb2NrIHplcnN0w7ZyZW4uXG4iCisiR2ViZW4gU2llIEpBV09ITCBlaW4sIHdlbm4gU2llIHNpY2ggZ2FueiBzaWNoZXIgc2luZCwgZGFzcyBTaWUgZGllc2VcbiIKKyJQYXJ0aXRpb24gYWxzIDgyIChMaW51eCBTd2FwKSBtYXJraWVyZW4gbcO2Y2h0ZW46ICIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJGZXN0cGxhdHRlICVzICjigJ5TdW4gZGlza2xhYmVs4oCcKTogJWQgS8O2cGZlLCAlZCBTZWt0b3JlbiwgJWQgVS9taW5cbiIKKyIlZCBaeWxpbmRlciwgJWQgYWx0ZXJuYXRpdmUgWnlsaW5kZXIsICVkIFBoeXNpc2NoZSBaeWxpbmRlclxuIgorIiVkIEV4dHJhLVNla3RvcmVuL1p5bGluZGVuLCBJbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIkVpbmhlaXRlbiA9ICVzIG9mICVkIMOXIDUxMiBCeXRlXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRmVzdHBsYXR0ZSAlcyAo4oCeU3VuIGRpc2tsYWJlbOKAnCk6ICVkIEvDtnBmZSwgJWxsdSBTZWt0b3JlbiwgJWQgWnlsaW5kZXJcbiIKKyJFaW5oZWl0ZW46ICVzIG1pdCAlZCDDlyA1MTIgQnl0ZVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZGUgICBCbMO2Y2tlICAgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjI1Cittc2dpZCAiTnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIkFuemFobCBkZXIgYWx0ZXJuaWVyZW5kZW4gWnlsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MzcKK21zZ2lkICJFeHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiRXh0cmEtU2VrdG9yZW4gcHJvIFp5bGluZGVyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjQ0Cittc2dpZCAiSW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIkludGVybGVhdmUtRmFrdG9yIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjUxCittc2dpZCAiUm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIlJvdGF0aW9uc2dlc2Nod2luZGlna2VpdCAoVS9taW4pIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjU4Cittc2dpZCAiTnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIKK21zZ3N0ciAiQW56YWhsIGRlciBwaHlzaWthbGlzY2hlbiBaeWxpbmRlciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIkxlZXIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICJGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4Cittc2dpZCAiWEVOSVggcm9vdCIKK21zZ3N0ciAiWEVOSVggcm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5Cittc2dpZCAiWEVOSVggdXNyIgorbXNnc3RyICJYRU5JWCB1c3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAKK21zZ2lkICJGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjExCittc2dpZCAiRXh0ZW5kZWQiCittc2dzdHIgIkVyd2VpdGVydGUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTIKK21zZ2lkICJGQVQxNiIKK21zZ3N0ciAiRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTMKK21zZ2lkICJIUEZTL05URlMiCittc2dzdHIgIkhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNAorbXNnaWQgIkFJWCIKK21zZ3N0ciAiQUlYIgorCisjICJib290ZsOkaGlnIgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIGJvb3Rmw6RoaWciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTYKK21zZ2lkICJPUy8yIEJvb3QgTWFuYWdlciIKK21zZ3N0ciAiT1MvMiBCb290bWFuYWdlciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNworbXNnaWQgIlc5NSBGQVQzMiIKK21zZ3N0ciAiVzk1IEZBVDMyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE4Cittc2dpZCAiVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJXOTUgRkFUMzIgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTkKK21zZ2lkICJXOTUgRkFUMTYgKExCQSkiCittc2dzdHIgIlc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMAorbXNnaWQgIlc5NSBFeHQnZCAoTEJBKSIKK21zZ3N0ciAiVzk1IEVydy4gKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICJPUFVTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIyCittc2dpZCAiSGlkZGVuIEZBVDEyIgorbXNnc3RyICJWZXJzdC4gRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjMKK21zZ2lkICJDb21wYXEgZGlhZ25vc3RpY3MiCittc2dzdHIgIkNvbXBhcSBEaWFnbm9zdGljcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICJWZXJzdC4gRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNQorbXNnaWQgIkhpZGRlbiBGQVQxNiIKK21zZ3N0ciAiVmVyc3QuIEZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiVmVyc3QuIEhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJBU1QgU21hcnRTbGVlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIlZlcnN0LiBXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJWZXJzdC4gVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVmVyc3QuIFc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNAorbXNnaWQgIlZlbml4IDgwMjg2IgorbXNnc3RyICJWZW5peCA4MDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNQorbXNnaWQgIlBQQyBQUmVQIEJvb3QiCittc2dzdHIgIlBQQyBQUmVQIEJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMm5kIHBhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIlFOWDQueCAzcmQgcGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MAorbXNnaWQgIk9uVHJhY2sgRE0iCittc2dzdHIgIk9uVHJhY2sgRE0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDEKK21zZ2lkICJPblRyYWNrIERNNiBBdXgxIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgxIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQyCittc2dpZCAiQ1AvTSIKK21zZ3N0ciAiQ1AvTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MworbXNnaWQgIk9uVHJhY2sgRE02IEF1eDMiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDQKK21zZ2lkICJPblRyYWNrRE02IgorbXNnc3RyICJPblRyYWNrRE02IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ1Cittc2dpZCAiRVotRHJpdmUiCittc2dzdHIgIkVaLURyaXZlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ2Cittc2dpZCAiR29sZGVuIEJvdyIKK21zZ3N0ciAiR29sZGVuIEJvdyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NworbXNnaWQgIlByaWFtIEVkaXNrIgorbXNnc3RyICJQcmlhbSBFZGlzayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkyCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTkKK21zZ2lkICJTcGVlZFN0b3IiCittc2dzdHIgIlNwZWVkU3RvciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OQorbXNnaWQgIkdOVSBIVVJEIG9yIFN5c1YiCittc2dzdHIgIkdOVSBIVVJEIC8gU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiT2xkIE1pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8gb2xkIExpbnV4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2Cittc2dpZCAiTGludXggc3dhcCAvIFNvbGFyaXMiCittc2dzdHIgIkxpbnV4IFN3YXAgLyBTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU4Cittc2dpZCAiT1MvMiBoaWRkZW4gQzogZHJpdmUiCittc2dzdHIgIk9TLzIgdmVyc3QuIEM6LUx3LiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCBlcndlaXRlcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjAgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MQorbXNnaWQgIk5URlMgdm9sdW1lIHNldCIKK21zZ3N0ciAiTlRGUyB2b2x1bWUgc2V0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYyCittc2dpZCAiTGludXggcGxhaW50ZXh0IgorbXNnc3RyICJMaW51eCBQbGFpbnRleHQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjQKK21zZ2lkICJBbW9lYmEiCittc2dzdHIgIkFtb2ViYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NQorbXNnaWQgIkFtb2ViYSBCQlQiCittc2dzdHIgIkFtb2ViYSBCQlQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjYKK21zZ2lkICJCU0QvT1MiCittc2dzdHIgIkJTRC9PUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NworbXNnaWQgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKK21zZ3N0ciAiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY4Cittc2dpZCAiRnJlZUJTRCIKK21zZ3N0ciAiRnJlZUJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OQorbXNnaWQgIk9wZW5CU0QiCittc2dzdHIgIk9wZW5CU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzAKK21zZ2lkICJOZVhUU1RFUCIKK21zZ3N0ciAiTmVYVFNURVAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzEKK21zZ2lkICJEYXJ3aW4gVUZTIgorbXNnc3RyICJEYXJ3aW4gVUZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcyCittc2dpZCAiTmV0QlNEIgorbXNnc3RyICJOZXRCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzMKK21zZ2lkICJEYXJ3aW4gYm9vdCIKK21zZ3N0ciAiRGFyd2luIGJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzQKKyMsIGZ1enp5Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc1Cittc2dpZCAiQlNESSBmcyIKK21zZ3N0ciAiQlNESSBmcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NgorbXNnaWQgIkJTREkgc3dhcCIKK21zZ3N0ciAiQlNESSBzd2FwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc3Cittc2dpZCAiQm9vdCBXaXphcmQgaGlkZGVuIgorbXNnc3RyICJCb290IFdpemFyZCB2ZXJzdGVja3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIlNvbGFyaXMgYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJOaWNodC1EUy1EYXRlbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NQorbXNnaWQgIkNQL00gLyBDVE9TIC8gLi4uIgorbXNnc3RyICJDUC9NIC8gQ1RPUyAvIOKApiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NworbXNnaWQgIkRlbGwgVXRpbGl0eSIKK21zZ3N0ciAiRGVsbCBVdGlsaXR5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg4Cittc2dpZCAiQm9vdEl0IgorbXNnc3RyICJCb290SXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODkKK21zZ2lkICJET1MgYWNjZXNzIgorbXNnc3RyICJET1MgYWNjZXNzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkxCittc2dpZCAiRE9TIFIvTyIKK21zZ3N0ciAiRE9TIFIvTyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NAorbXNnaWQgIkJlT1MgZnMiCittc2dzdHIgIkJlT1MgZnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTUKKyMsIGZ1enp5Cittc2dpZCAiR1BUIgorbXNnc3RyICJFRkkgR1BUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk2Cittc2dpZCAiRUZJIChGQVQtMTIvMTYvMzIpIgorbXNnc3RyICJFRkkgKEZBVC0xMi8xNi8zMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTcKK21zZ2lkICJMaW51eC9QQS1SSVNDIGJvb3QiCittc2dzdHIgIkxpbnV4L1BBLVJJU0MgYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1Mgc2VrdW5kw6RyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJTZWVrLUZlaGxlciBhdWYgJXMg4oCTIGthbm4gbmljaHQgbmFjaCAlbHUgc3ByaW5nZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3I6IHdhbnRlZCAweCUwOHglMDh4LCBnb3QgMHglMDh4JTA4eFxuIgorbXNnc3RyICJTZWVrLUZlaGxlcjogd29sbHRlIDB4JTA4eCUwOHgsIGJla2FtIDB4JTA4eCUwOHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1Cittc2dpZCAib3V0IG9mIG1lbW9yeSAtIGdpdmluZyB1cFxuIgorbXNnc3RyICJTcGVpY2hlciBpc3QgYXVmZ2VicmF1Y2h0IOKAkyBBYmJydWNoXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gTGVzZW4gdm9uICVzIOKAkyBTZWt0b3IgJWx1IGtvbm50ZSBuaWNodCBnZWxlc2VuIHdlcmRlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiRkVITEVSOiBTZWt0b3IgJWx1IGhhdCBrZWluZSBNUy1ET1MtU2lnbmF0dXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzIC0gY2Fubm90IHdyaXRlIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiIgorIkZlaGxlciBiZWltIFNjaHJlaWJlbiBhdWYgJXMg4oCTIGRlciBTZWt0b3IgJWx1IGtvbm50ZSBuaWNodCBnZXNjaHJpZWJlbiAiCisid2VyZGVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIkthbm4gUGFydGl0aW9uc3Nla3Rvci1TaWNoZXJ1bmdzZGF0ZWkgKCVzKSBuaWNodCDDtmZmbmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hyZWliZW4gYXVmICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAiS2FubiBhdWYgUGFydGl0aW9ucy1XaWVkZXJoZXJzdGVsbHVuZ3NkYXRlaSAoJXMpIG5pY2h0IHp1Z3JlaWZlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDAKK21zZ2lkICJwYXJ0aXRpb24gcmVzdG9yZSBmaWxlIGhhcyB3cm9uZyBzaXplIC0gbm90IHJlc3RvcmluZ1xuIgorbXNnc3RyICIiCisiUGFydGl0aW9ucy1XaWVkZXJoZXJzdGVsbHVuZ3NkYXRlaSBoYXQgZmFsc2NoZSBHcsO2w59lIOKAkyBzdGVsbGUgbmljaHQgd2llZGVyICIKKyJoZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQ0Cittc2dpZCAib3V0IG9mIG1lbW9yeT9cbiIKK21zZ3N0ciAiU3BlaWNoZXIgYXVmZ2VicmF1Y2h0P1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIkthbm4gUGFydGl0aW9ucy1XaWVkZXJoZXJzdGVsbHVuZ3NkYXRlaSAoJXMpIG5pY2h0IMO2ZmZuZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gTGVzZW4gdm9uICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAiS29ubnRlIGRhcyBHZXLDpHQgJXMgbmljaHQgenVtIFNjaHJlaWJlbiDDtmZmbmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nIHNlY3RvciAlbHUgb24gJXNcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gU2NocmVpYmVuIGRlcyBTZWt0b3JzICVsdSBhdWYgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgZ2VvbWV0cnlcbiIKK21zZ3N0ciAiRmVzdHBsYXR0ZSAlczogRGllIEdlb21ldHJpZSBrb25udGUgbmljaHQgZmVzdGdlc3RlbGx0IHdlcmRlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBzaXplXG4iCittc2dzdHIgIkZlc3RwbGF0dGUgJXM6IEthbm4gR3LDtsOfZSBuaWNodCBlcm1pdHRlbG5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzdGFydD0lbHUgLSB0aGlzIGxvb2tzIGxpa2UgYSBwYXJ0aXRpb24gcmF0aGVyIHRoYW5cbiIKKyJ0aGUgZW50aXJlIGRpc2suIFVzaW5nIGZkaXNrIG9uIGl0IGlzIHByb2JhYmx5IG1lYW5pbmdsZXNzLlxuIgorIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIgorbXNnc3RyICIiCisiV2FybnVuZzogc3RhcnQ9JWx1IOKAkyBkYXMgc2llaHQgZWhlciB3aWUgZWluZSBQYXJ0aXRpb24gYXVzIHN0YXR0IGVpbmVyXG4iCisiZ2FuemVuIFBsYXR0ZS4gRGllIEJlbnV0enVuZyB2b24gZmRpc2sgZGFyYXVmIGlzIHZlcm11dGxpY2ggc2lubmxvcy5cbiIKKyJbQmVudXR6ZW4gU2llIGRpZSBPcHRpb24gLS1mb3JjZSwgd2VubiBTaWUgZGFzIHdpcmtsaWNoIHdvbGxlbi5dXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBoZWFkc1xuIgorbXNnc3RyICJXYXJudW5nOiBIRElPX0dFVEdFTyBlcmdpYnQsIGRhc3MgZXMgJWx1IEvDtnBmZSBnaWJ0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iCittc2dzdHIgIldhcm51bmc6IEhESU9fR0VUR0VPIGVyZ2lidCwgZGFzcyBlcyAlbHUgU2VrdG9yZW4gZ2lidFxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogQkxLR0VUU0laRS9IRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBjeWxpbmRlcnNcbiIKK21zZ3N0ciAiV2FybnVuZzogQkxLR0VUU0laRS9IRElPX0dFVEdFTyBlcmdpYnQsIGRhc3MgZXMgJWx1IFp5bGluZGVyIGdpYnRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1bmxpa2VseSBudW1iZXIgb2Ygc2VjdG9ycyAoJWx1KSAtIHVzdWFsbHkgYXQgbW9zdCA2M1xuIgorIlRoaXMgd2lsbCBnaXZlIHByb2JsZW1zIHdpdGggYWxsIHNvZnR3YXJlIHRoYXQgdXNlcyBDL0gvUyBhZGRyZXNzaW5nLlxuIgorbXNnc3RyICIiCisiV2FybnVuZzogdW53YWhyc2NoZWlubGljaGUgQW56YWhsIFNla3RvcmVuICglbHUpIOKAkyBub3JtYWxlcndlaXNlIGjDtmNoc3RlbnMgIgorIjYzLlxuIgorIkRpZXMgd2lyZCBQcm9ibGVtZSBiZWkgU29mdHdhcmUgdmVydXJzYWNoZW4sIGRpZSBkYXMgQy9IL1MtIgorIkFkcmVzc2llcnVuZ3NzY2hlbWFcbiIKKyJ2ZXJ3ZW5kZXQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWx1IGN5bGluZGVycywgJWx1IGhlYWRzLCAlbHUgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIiCisiXG4iCisiRmVzdHBsYXR0ZSAlczogJWx1IFp5bGluZGVyLCAlbHUgS8O2cGZlLCAlbHUgU2VrdG9yZW4vU3B1clxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKyIlcyB2b24gUGFydGl0aW9uICVzIGhhdCB1bm3DtmdsaWNoZW4gV2VydCBmw7xyIEtvcGY6ICVsdSAoc29sbHRlIDDigJMlbHUgc2VpbilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgdm9uIFBhcnRpdGlvbiAlcyBoYXQgdW5tw7ZnbGljaGVuIFdlcnQgZsO8ciBTZWt0b3I6ICVsdSAoc29sbHRlIDHigJMlbHUgIgorInNlaW4pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICVsdSAoc2hvdWxkIGJlIGluIDAtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIHZvbiBQYXJ0aXRpb24gJXMgaGF0IHVubcO2Z2xpY2hlbiBXZXJ0IGbDvHIgWnlsaW5kZXI6ICVsdSAoc29sbHRlIDDigJMlbHUgIgorInNlaW4pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWQgIE5hbWVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIklkICBOYW1lXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iCittc2dzdHIgIkRpZSBQYXJ0aXRpb25zdGFiZWxsZSB3aXJkIGVybmV1dCBnZWxlc2Vu4oCmXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxMQorIywgZnV6enkKK21zZ2lkICIiCisiVGhlIGNvbW1hbmQgdG8gcmUtcmVhZCB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZC5cbiIKKyJSdW4gcGFydHByb2JlKDgpLCBrcGFydHgoOCkgb3IgcmVib290IHlvdXIgc3lzdGVtIG5vdyxcbiIKKyJiZWZvcmUgdXNpbmcgbWtmc1xuIgorbXNnc3RyICIiCisiRGVyIEJlZmVobCB6dW0gTmV1ZWlubGVzZW4gZGVyIFBhcnRpdGlvbnN0YWJlbGxlIHNjaGx1ZyBmZWhsLlxuIgorIlN0YXJ0ZW4gU2llIElociBTeXN0ZW0gamV0enQgbmV1LCBiZXZvciBTaWUgbWtmcyB2ZXJ3ZW5kZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxNworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjbG9zaW5nICVzXG4iCittc2dzdHIgIkZlaGxlciBiZWltIFNjaGxpZcOfZW4gdm9uICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IGVzIGdpYnQga2VpbmUgZGVyYXJ0aWdlIFBhcnRpdGlvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4NzgKK21zZ2lkICJ1bnJlY29nbml6ZWQgZm9ybWF0IC0gdXNpbmcgc2VjdG9yc1xuIgorbXNnc3RyICJuaWNodCBlcmthbm50ZXMgRm9ybWF0IOKAkyBiZW51dHplIFNla3RvcmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkyOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmltcGxlbWVudGVkIGZvcm1hdCAtIHVzaW5nICVzXG4iCittc2dzdHIgIm5pY2h0IGltcGxlbWVudGllcnRlcyBGb3JtYXQg4oCTIGJlbnV0emUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJFaW5oZWl0ID0gWnlsaW5kZXIgdm9uICVsdSBCeXRlcywgQmzDtmNrZSB2b24gMTAyNCBCeXRlcywgWsOkaGx1bmcgYmVnaW5udCBiZWkgIgorIiVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgR2Vyw6R0ICBib290LiBBbmZhbmcgICBFbmRlICAjWnlsLiAgICAjQmzDtmNrZSAgIElkICBTeXN0ZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IHNlY3RvcnMgb2YgNTEyIGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJFaW5oZWl0ID0gU2VrdG9yZW4gdm9uIDUxMiBCeXRlcywgWsOkaGx1bmcgYmVnaW5udCBiZWkgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIEdlcsOkdCAgYm9vdC4gICBBbmZhbmcgICAgICBFbmRlICAjU2VrdG9yZW4gSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVpbmhlaXQgPSBCbMO2Y2tlIHZvbiAxMDI0IEJ5dGVzLCBaw6RobHVuZyBiZWdpbm50IGJlaSAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICBTdGFydCAgICAgICBFbmQgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgR2Vyw6R0ICBib290LiAgQW5mYW5nICAgICAgRW5kZSAgICNCbMO2Y2tlICAgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gbWViaWJ5dGVzIG9mIDEwNDg1NzYgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJFaW5oZWl0ID0gTWViaWJ5dGVzIHZvbiAxMDQ4NTc2IEJ5dGVzLCBCbMO2Y2tlIHZvbiAxMDI0IEJ5dGVzLCBaw6RobHVuZyAiCisiYmVnaW5udCBiZWkgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgIE1pQiAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBHZXLDpHQgIGJvb3QuIEFuZmFuZyBFbmRlICAgTWlCICAgICNCbMO2Y2tlICAgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdEFuZmFuZzogKGMsaCxzKSBlcndhcnRldCAoJWxkLCVsZCwlbGQpIGdlZnVuZGVuICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMAorIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0ZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJcdFx0RW5kZTogKGMsaCxzKSBlcndhcnRldCAoJWxkLCVsZCwlbGQpIGdlZnVuZGVuICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgIlBhcnRpdGlvbiBlbmRldCBhdWYgWnlsaW5kZXIgJWxkLCBoaW50ZXIgZGVtIEVuZGUgZGVyIEZlc3RwbGF0dGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiS2VpbmUgUGFydGl0aW9uZW4gZ2VmdW5kZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJXYXJudW5nOiBEaWUgUGFydGl0aW9uIHNpZWh0IGF1cywgYWxzIHNpZSBnZW1hY2h0IHdvcmRlblxuIgorIiAgZsO8ciBDL0gvUz0qLyVsZC8lbGQgKGFuc3RlbGxlIHZvbiAlbGQvJWxkLyVsZCkuXG4iCisiRsO8ciBkaWVzZSBBdWZsaXN0dW5nIG5laG1lIGljaCBkaWVzZSBHZW9tZXRyaWUgYW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAiRXMgZ2lidCBrZWluZSBQYXJ0aXRpb25zdGFiZWxsZS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIKK21zZ3N0ciAiTWVya3fDvHJkaWcsIGVzIHNpbmQgbnVyICVkIFBhcnRpdGlvbmVuIGRlZmluaWVydC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBidXQgaXMgbm90IG1hcmtlZCBFbXB0eVxuIgorbXNnc3RyICJXYXJudW5nOiBQYXJ0aXRpb24gJXMgaGF0IEdyw7bDn2UgMCwgaXN0IGFiZXIgbmljaHQgYWxzIGxlZXIgbWFya2llcnRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiV2FybnVuZzogUGFydGl0aW9uICVzIGhhdCBHcsO2w59lIDAgdW5kIGlzdCBib290ZsOkaGlnXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiV2FybnVuZzogUGFydGl0aW9uICVzIGhhdCBHcsO2w59lIDAgdW5kIGJlZ2lubnQgbmljaHQgYmVpIE51bGxcbiIKKworIyBYWFgg4oCTIE1lcmdlIHdpdGggbmV4dCBzdHJpbmdzLgorIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICJXYXJudW5nOiBQYXJ0aXRpb24gJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5vdCBjb250YWluZWQgaW4gcGFydGl0aW9uICVzXG4iCittc2dzdHIgImlzIG5pY2h0IGVudGhhbHRlbiBpbiBQYXJ0aXRpb24gJXNcbiIKKworIyBYWFgg4oCTIE1lcmdlIHdpdGggbmV4dCBzdHJpbmdzLgorIzogZmRpc2svc2ZkaXNrLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb25zICVzICIKK21zZ3N0ciAiV2FybnVuZzogUGFydGl0aW9uZW4gJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgImFuZCAlcyDDvGJlcmxhcHBlbiBzaWNoXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorIldhcm51bmc6IFBhcnRpdGlvbiAlcyBlbnRow6RsdCBlaW5lbiBUZWlsIGRlciBQYXJ0aXRpb25zdGFiZWxsZVxuIgorIihTZWt0b3IgJWx1KSB1bmQgd2lyZCBkaWVzZSB6ZXJzdMO2cmVuLCB3ZW5uIHNpZSBnZWbDvGxsdCB3aXJkLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAiV2FybnVuZzogUGFydGl0aW9uICVzIGbDpG5ndCBiZWkgU2VrdG9yIDAgYW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIldhcm51bmc6IFBhcnRpdGlvbiAlcyByZWljaHQgw7xiZXIgZGFzIEVuZGUgZGVyIFBsYXR0ZSBoaW5hdXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorIlVudGVyIGRlbiBwcmltw6RyZW4gUGFydGl0aW9uZW4ga2FubiBow7ZjaHN0ZW5zIGVpbmUgZXJ3ZWl0ZXJ0ZSBzZWluLlxuIgorIiAoQXVjaCB3ZW5uIGRhcyB1bnRlciBMaW51eCBrZWluIFByb2JsZW0gaXN0LilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJXYXJudW5nOiBQYXJ0aXRpb24gJXMgYmVnaW5udCBuaWNodCBhbiBlaW5lciBaeWxpbmRlcmdyZW56ZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJXYXJudW5nOiBQYXJ0aXRpb24gJXMgZW5kZXQgbmljaHQgYW4gZWluZXIgWnlsaW5kZXJncmVuemVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxMQorbXNnaWQgIiIKKyJXYXJuaW5nOiBtb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJXYXJudW5nOiBNZWhyIGFscyBlaW5lIHByaW3DpHJlIFBhcnRpdGlvbiB3dXJkZSBhbHMgYm9vdGbDpGhpZyAoYWt0aXYpICIKKyJtYXJraWVydC5cbiIKKyIgICAgICAgICBEaWVzIHNwaWVsdCBiZWkgTElMTyBrZWluZSBSb2xsZSwgYWJlciBkZXIgRE9TLU1CUiB3aXJkIGRpZXNlXG4iCisiICAgICAgICAgRmVzdHBsYXR0ZSBuaWNodCBib290ZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTgKK21zZ2lkICIiCisiV2FybmluZzogdXN1YWxseSBvbmUgY2FuIGJvb3QgZnJvbSBwcmltYXJ5IHBhcnRpdGlvbnMgb25seVxuIgorIkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIgorbXNnc3RyICIiCisiV2FybnVuZzogTm9ybWFsZXJ3ZWlzZSBrYW5uIG1hbiBudXIgdm9uIHByaW3DpHJlIFBhcnRpdGlvbmVuIGJvb3Rlbi5cbiIKKyJMSUxPIGlnbm9yaWVydCBkaWUg4oCeYm9vdGbDpGhpZ+KAnC1FaW5zdGVsbHVuZyBrb21wbGV0dC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiV2FybnVuZzogS2VpbmUgcHJpbcOkcmUgUGFydGl0aW9uIHd1cmRlIGFscyBib290ZsOkaGlnIChha3RpdikgbWFya2llcnQuXG4iCisiICAgICAgICAgRGllcyBzcGllbHQgYmVpIExJTE8ga2VpbmUgUm9sbGUsIGFiZXIgZGVyIERPUy1NQlIgd2lyZCBhdWZcbiIKKyIgICAgICAgICBkaWVzZXIgRmVzdHBsYXR0ZSBuaWNodCBib290ZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAiQW5mYW5nIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisiUGFydGl0aW9uICVzOiBBbmZhbmc6IChjLGgscykgZXJ3YXJ0ZXQgKCVsZCwlbGQsJWxkKSBnZWZ1bmRlbiAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgIkVuZGUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzOiBlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJQYXJ0aXRpb24gJXM6IEVuZGU6IChjLGgscykgZXJ3YXJ0ZXQgKCVsZCwlbGQsJWxkKSBnZWZ1bmRlbiAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJQYXJ0aXRpb24gJXMgZW5kZXQgYW0gWnlsaW5kZXIgJWxkLCBoaW50ZXIgZGVtIEVuZGUgZGVyIFBsYXR0ZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzaGlmdGVkIHN0YXJ0IG9mIHRoZSBleHRkIHBhcnRpdGlvbiBmcm9tICVsZCB0byAlbGRcbiIKKyIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorbXNnc3RyICIiCisiV2FybnVuZzogQW5mYW5nIGRlciBlcndlaXRlcnRlbiBQYXJ0aXRpb24gdm9uICVsZCBhdWYgJWxkIHZlcnNjaG9iZW4uXG4iCisiKE51ciB6dW0gWndlY2tlIGRlciBBdWZsaXN0dW5nLiBOaWNodCBkZW4gSW5oYWx0IMOkbmRlcm4uKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiV2FybnVuZzogZXJ3ZWl0ZXJ0ZSBQYXJ0aXRpb24gYmVnaW5udCBuaWNodCBhbiBlaW5lciBaeWxpbmRlcmdyZW56ZVxuIgorIkRPUyB1bmQgTGludXggd2VyZGVuIGRlbiBJbmhhbHQgdW50ZXJzY2hpZWRsaWNoIGludGVycHJldGllcmVuLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICJadSB2aWVsZSBQYXJ0aXRpb25lbiAtIGlnbm9yaWVyZSBhbGxlIGhpbnRlciBOci4gKCVkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDE3Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICJQYXJ0aXRpb25zYmF1bT9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUyNQorbXNnaWQgImRldGVjdGVkIERpc2sgTWFuYWdlciAtIHVuYWJsZSB0byBoYW5kbGUgdGhhdFxuIgorbXNnc3RyICJEaXNrIE1hbmFnZXIgZXJrYW5udCDigJMga2FubiBkYXMgbmljaHQgaGFuZGhhYmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIkRNNi1TaWduYXR1ciBnZWZ1bmRlbiDigJMgZ2ViZSBhdWZcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1MgorbXNnaWQgInN0cmFuZ2UuLi4sIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgIm1lcmt3w7xyZGln4oCmIGVpbmUgZXJ3ZWl0ZXJ0ZSBQYXJ0aXRpb24gZGVyIEdyw7bDn2UgMD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCittc2dpZCAic3RyYW5nZS4uLiwgYSBCU0QgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAibWVya3fDvHJkaWfigKYgZWluZSBCU0QtUGFydGl0aW9uIGRlciBHcsO2w59lIDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzOiB1bnJlY29nbml6ZWQgcGFydGl0aW9uIHRhYmxlIHR5cGVcbiIKK21zZ3N0ciAiICVzOiBuaWNodCBlcmthbm50ZSBQYXJ0aXRpb250YWJlbGxlbnR5cFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjE2Cittc2dpZCAiLW4gZmxhZyB3YXMgZ2l2ZW46IE5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICJEaWUgT3B0aW9uIOKAni1u4oCcIHd1cmRlIHZlcndlbmRldDogRXMgd3VyZGUgbmljaHRzIHZlcsOkbmRlcnRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzMgorbXNnaWQgIkZhaWxlZCBzYXZpbmcgdGhlIG9sZCBzZWN0b3JzIC0gYWJvcnRpbmdcbiIKK21zZ3N0ciAiU3BlaWNoZXJuIGRlciBhbHRlbiBTZWt0b3JlbiBmZWhsZ2VzY2hsYWdlbiDigJMgQWJicnVjaFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjM3IGZkaXNrL3NmZGlzay5jOjE2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHdyaXRpbmcgdGhlIHBhcnRpdGlvbiBvbiAlc1xuIgorbXNnc3RyICJTY2hyZWliZW4gZGVyIFBhcnRpdGlvbiBhdWYgJXMgZmVobGdlc2NobGFnZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAiTGFuZ2Ugb2RlciB1bnZvbGxzdMOkbmRpZ2UgRWluZ2FiZXplaWxlbiDigJMgYmVlbmRlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IGA9JyBleHBlY3RlZCBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICJFaW5nYWJlZmVobGVyOiDigJ494oCcIGVyd2FydGV0IG5hY2ggJXMtRmVsZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzYyCisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiB1bmV4cGVjdGVkIGNoYXJhY3RlciAlYyBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICJFaW5nYWJlZmVobGVyOiB1bmVyd2FydGV0ZXMgWmVpY2hlbiAlYyBuYWNoICVzLUZlbGRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bnJlY29nbml6ZWQgaW5wdXQ6ICVzXG4iCittc2dzdHIgIm5pY2h0IGVya2FubnRlIEVpbmdhYmU6ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTAKK21zZ2lkICJudW1iZXIgdG9vIGJpZ1xuIgorbXNnc3RyICJaYWhsIHp1IGdyb8OfXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICJhYnNjaGxpZcOfZW5kZXIgTcO8bGwgaGludGVyIFphaGxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTkzOAorbXNnaWQgIm5vIHJvb20gZm9yIHBhcnRpdGlvbiBkZXNjcmlwdG9yXG4iCittc2dzdHIgImtlaW4gUGxhdHogZsO8ciBQYXJ0aXRpb25zZGVza3JpcHRvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTcxCittc2dpZCAiY2Fubm90IGJ1aWxkIHN1cnJvdW5kaW5nIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJrYW5uIHVtZ2ViZW5kZSBlcndlaXRlcnRlIFBhcnRpdGlvbiBuaWNodCBhbmxlZ2VuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwMjIKK21zZ2lkICJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIKK21zZ3N0ciAienUgdmllbGUgRWluZ2FiZWZlbGRlclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDU2Cittc2dpZCAiTm8gcm9vbSBmb3IgbW9yZVxuIgorbXNnc3RyICJGw7xyIG1laHIga2VpbiBQbGF0elxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIklsbGVnYWxlciBUeXBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIiIKKyJXYXJudW5nOiBnZWdlYmVuZSBHcsO2w59lICglbHUpIMO8YmVyc2NocmVpdGV0IG1heGltYWwgZXJsYXVidGUgR3LDtsOfZSAoJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTEzCittc2dpZCAiV2FybmluZzogZW1wdHkgcGFydGl0aW9uXG4iCittc2dzdHIgIldhcm51bmc6IGxlZXJlIFBhcnRpdGlvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBwYXJ0aXRpb24gc3RhcnQgKGVhcmxpZXN0ICVsdSlcbiIKK21zZ3N0ciAiV2FybnVuZzogdW5nw7xsdGlnZXIgUGFydGl0aW9uc2FuZmFuZyAoa2xlaW5zdG3DtmdsaWNoICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE0MAorbXNnaWQgInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIgorbXNnc3RyICJuaWNodCBlcmthbm50ZXMgQm9vZsOkaGlnLUZsYWcg4oCTIHfDpGhsZW4gU2llIC0gb2RlciAqXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNTcgZmRpc2svc2ZkaXNrLmM6MjE3MAorbXNnaWQgInBhcnRpYWwgYyxoLHMgc3BlY2lmaWNhdGlvbj9cbiIKK21zZ3N0ciAicGFydGllbGxlIGMsaCxzLVNwZXppZmlrYXRpb24/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxODEKK21zZ2lkICJFeHRlbmRlZCBwYXJ0aXRpb24gbm90IHdoZXJlIGV4cGVjdGVkXG4iCittc2dzdHIgIkVyd2VpdGVydGUgUGFydGl0aW9uIG5pY2h0IGRvcnQsIHdvIGVyd2FydGV0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMTMKK21zZ2lkICJiYWQgaW5wdXRcbiIKK21zZ3N0ciAidW5nw7xsdGlnZSBFaW5nYWJlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMzUKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zXG4iCittc2dzdHIgIlp1IHZpZWxlIFBhcnRpdGlvbmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyNjgKK21zZ2lkICIiCisiSW5wdXQgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ7IGFic2VudCBmaWVsZHMgZ2V0IGEgZGVmYXVsdCB2YWx1ZS5cbiIKKyI8c3RhcnQ+IDxzaXplPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorIlVzdWFsbHkgeW91IG9ubHkgbmVlZCB0byBzcGVjaWZ5IDxzdGFydD4gYW5kIDxzaXplPiAoYW5kIHBlcmhhcHMgPHR5cGU+KS5cbiIKK21zZ3N0ciAiIgorIkVpbmdhYmUgaW0gZm9sZ2VuZGVuIEZvcm1hdDsgYWJ3ZXNlbmRlIEZlbGRlciBlcmhhbHRlbiBlaW5lbiBWb3JnYWJld2VydC5cbiIKKyI8YW5mYW5nPiA8Z3LDtsOfZT4gPHR5cCBbRSxTLEwsWCxoZXhdPiA8Ym9vdGbDpGhpZyBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiTm9ybWFsZXJ3ZWlzZSBicmF1Y2hlbiBTaWUgbnVyIDxhbmZhbmc+IHVuZCA8Z3LDtsOfZT4gYW56dWdlYmVuICh1bmRcbiIKKyJ2aWVsbGVpY2h0IDx0eXA+KS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIGRldmljZSAuLi5cbiIKK21zZ3N0ciAiQXVmcnVmOiAlcyBbT3B0aW9uZW5dIGdlcsOkdCDigKZcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NQorbXNnaWQgImRldmljZTogc29tZXRoaW5nIGxpa2UgL2Rldi9oZGEgb3IgL2Rldi9zZGEiCittc2dzdHIgImdlcsOkdDogZXR3YXMgd2llIC9kZXYvaGRhIG9kZXIgL2Rldi9zZGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgIm7DvHR6bGljaGUgT3B0aW9uZW46IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgIC1zIFtvZGVyIC0tc2hvdy1zaXplXTogR3LDtsOfZSBlaW5lciBQYXJ0aXRpb24gYW56ZWlnZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTgKK21zZ2lkICIgICAgLWMgW29yIC0taWRdOiAgICAgICAgcHJpbnQgb3IgY2hhbmdlIHBhcnRpdGlvbiBJZCIKK21zZ3N0ciAiICAgIC1jIFtvZGVyIC0taWRdOiAgICAgICAgUGFydGl0aW9ucy1JZCBhdXNnZWJlbiBvZGVyIMOkbmRlcm4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIgICAgLWwgW29kZXIgLS1saXN0XTogICAgICBQYXJ0aXRpb25lbiBqZWRlcyBHZXLDpHRzIGF1Zmxpc3RlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAtZCBbb3IgLS1kdW1wXTogICAgICBpZGVtLCBidXQgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGxhdGVyIGlucHV0IgorbXNnc3RyICIiCisiICAgIC1kIFtvZGVyIC0tZHVtcF06ICAgICAgZ2VuYXVzbywgYWJlciBpbiBlaW5lbSBmw7xyIHNww6R0ZXJlcyAiCisiV2llZGVyZWlubGVzZW5cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlZWlnbmV0ZW4gRm9ybWF0IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiAgICAtaSBbb2RlciAtLWluY3JlbWVudF06IFp5bGluZGVyIHVzdy4gdm9uIDEgc3RhdHQgdm9uIDAgYW4gesOkaGxlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMgorbXNnaWQgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0L3JlcG9ydCBpbiB1bml0cyBvZiBzZWN0b3JzL2Jsb2Nrcy9jeWxpbmRlcnMvIgorIk1CIgorbXNnc3RyICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogICAgaW4gRWluaGVpdGVuIHZvbiBTZWt0b3Jlbi9CbMO2Y2tlbi9aeWxpbmRlcm4vTUJcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgYWt6ZXB0aWVyZW4vYXVzZ2ViZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDMKK21zZ2lkICIgICAgLVQgW29yIC0tbGlzdC10eXBlc106bGlzdCB0aGUga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICAgLVQgW29kZXIgLS1saXN0LXR5cGVzXTpiZWthbm50ZSBQYXJ0aXRpb25zdHlwZW4gYXVmbGlzdGVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA0Cittc2dpZCAiICAgIC1EIFtvciAtLURPU106ICAgICAgIGZvciBET1MtY29tcGF0aWJpbGl0eTogd2FzdGUgYSBsaXR0bGUgc3BhY2UiCittc2dzdHIgIiIKKyIgICAgLUQgW29kZXIgLS1ET1NdOiAgICAgICBmw7xyIERPUy1Lb21wYXRpYmlsaXTDpHQ6IGVpbiB3ZW5pZyBQbGF0eiAiCisidmVyc2Nod2VuZGVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA1Cittc2dpZCAiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIG1ha2Uga2VybmVsIHJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKyItUiBbb2RlciAtLXJlLXJlYWRdOiAgIGRlbiBLZXJuZWwgenVtIE5ldWVpbmxlc2VuIGRlciBQYXJ0aXRpb25zdGFiZWxsZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJhbmxhc3NlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgICAtTiMgOiAgICAgICAgICAgICAgICBjaGFuZ2Ugb25seSB0aGUgcGFydGl0aW9uIHdpdGggbnVtYmVyICMiCittc2dzdHIgIiAgICAtTiMgOiAgICAgICAgICAgICAgICAgIG51ciBkaWUgUGFydGl0aW9uIE51bW1lciAjIMOkbmRlcm4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiAgICAtbiA6ICAgICAgICAgICAgICAgICAgIG5pY2h0IHdpcmtsaWNoIGF1ZiBQbGF0dGUgc2NocmVpYmVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIiCisiICAgIC1PIGRhdGVpIDogICAgICAgICAgICAgZGllIHp1IMO8YmVyc2NocmVpYmVuZGVuIFNla3RvcmVuIGluIERhdGVpICIKKyJzcGVpY2hlcm4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIgICAgLUkgZGF0ZWkgOiAgICAgICAgICAgICBkaWVzZSBTZWt0b3JlbiB3aWVkZXIgaGVyc3RlbGxlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIgorbXNnc3RyICIgICAgLXYgW29kZXIgLS12ZXJzaW9uXTogICBWZXJzaW9uIGF1c2dlYmVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzExCittc2dpZCAiICAgIC0/IFtvciAtLWhlbHBdOiAgICAgIHByaW50IHRoaXMgbWVzc2FnZSIKK21zZ3N0ciAiICAgIC0/IFtvZGVyIC0taGVscF06ICAgICAgZGllc2UgTWVsZHVuZyBhdXNnZWJlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMgorbXNnaWQgImRhbmdlcm91cyBvcHRpb25zOiIKK21zZ3N0ciAiZ2Vmw6RocmxpY2hlIE9wdGlvbmVuOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIiCisiICAgIC1nIFtvZGVyIC0tc2hvdy1nZW9tZXRyeV06IGRpZSBWb3JzdGVsbHVuZ2VuIGRlcyBLZXJuZWxzIHp1ciBHZW9tZXRyaWVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXNnZWJlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorbXNnaWQgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IHByaW50IGdlb21ldHJ5IGd1ZXNzZWQgZnJvbSB0aGUgcGFydGl0aW9uICIKKyJ0YWJsZSIKK21zZ3N0ciAiIgorIiAgICAtRyBbb2RlciAtLXNob3ctcHQtZ2VvbWV0cnldOiBhdXMgZGVyIFBhcnRpdGlvbnN0YWJlbGxlIGdlcmF0ZW5lICIKKyJHZW9tZXRyaWVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXNnZWJlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNQorbXNnaWQgIiIKKyIgICAgLXggW29yIC0tc2hvdy1leHRlbmRlZF06IGFsc28gbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIG9uIG91dHB1dFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZXhwZWN0IGRlc2NyaXB0b3JzIGZvciB0aGVtIG9uIGlucHV0IgorbXNnc3RyICIiCisiICAgIC14IFtvZGVyIC0tc2hvdy1leHRlbmRlZF06IGF1Y2ggZGllIGVyd2VpdGVydGVuIFBhcnRpdGlvbmVuIG1pdCAiCisiYXVmbGlzdGVuXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6dy4gYmVpIEVpbmdhYmUgRGVza3JpcHRvcmVuIGbDvHIgc2llIGVyd2FydGVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiIKKyIgICAgLUwgIFtvZGVyIC0tTGludXhdOiAgICAgICAgbmljaHQgw7xiZXIgZsO8ciBMaW51eCBpcnJlbGV2YW50ZSBEaW5nZSAiCisiYmVzY2h3ZXJlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAtcSAgW29yIC0tcXVpZXRdOiAgICAgIHN1cHByZXNzIHdhcm5pbmcgbWVzc2FnZXMiCittc2dzdHIgIiAgICAtcSAgW29kZXIgLS1xdWlldF06ICAgICAgICBXYXJubWVsZHVuZ2VuIHVudGVyZHLDvGNrZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgWW91IGNhbiBvdmVycmlkZSB0aGUgZGV0ZWN0ZWQgZ2VvbWV0cnkgdXNpbmc6IgorbXNnc3RyICIgICAgU2llIGvDtm5uZW4gZGllIGVya2FubnRlIEdlb21ldHJpZSDDvGJlcnN0aW1tZW46IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIwCittc2dpZCAiICAgIC1DIyBbb3IgLS1jeWxpbmRlcnMgI106c2V0IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1DIyBbb2RlciAtLWN5bGluZGVycyAjXTogIFphaGwgZGVyIFp5bGluZGVyIHNldHplbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1IIyBbb2RlciAtLWhlYWRzICNdOiAgICAgIFphaGwgZGVyIEvDtnBmZSBzZXR6ZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjIKK21zZ2lkICIgICAgLVMjIFtvciAtLXNlY3RvcnMgI106ICBzZXQgdGhlIG51bWJlciBvZiBzZWN0b3JzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1TIyBbb2RlciAtLXNlY3RvcnMgI106ICAgIFphaGwgZGVyIFNla3RvcmVuIHNldHplbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMworbXNnaWQgIllvdSBjYW4gZGlzYWJsZSBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcgd2l0aDoiCittc2dzdHIgIlNpZSBrw7ZubmVuIGplZ2xpY2hlIEtvbnNpc3RlbnpwcsO8ZnVuZ2VuIGFic2NoYWx0ZW4gbWl0OiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIgICAgLWYgIFtvZGVyIC0tZm9yY2VdOiAgICAgICAgbWFjaCB3YXMgaWNoIHNhZywgYXVjaCB3ZW5u4oCZcyBkdW1tIGlzdCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAiQXVmcnVmOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2VcdFx0IGxpc3QgYWN0aXZlIHBhcnRpdGlvbnMgb24gZGV2aWNlXG4iCittc2dzdHIgIiVzIEdlcsOkdFx0XHQgYWt0aXZlIFBhcnRpdGlvbmVuIGF1ZiBHZXLDpHQgYXVmbGlzdGVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIlcyBHZXLDpHQgbjEgbjIg4oCmIGFrdGl2ZSBQYXJ0aXRpb25lbiBuMSDigKYsIGRlciBSZXN0IGRlYWt0aXZpZXJlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIlcyAtQW4gR2Vyw6R0XHQgYWt0aXZpZXJlIFBhcnRpdGlvbiBuLCBkZXZpY2UgZGllIGFuZGVyZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgc2ZkaXNrICIKKyJkb2Vzbid0IHN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDU2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIiIKKyJCZW51dHplbiBTaWUgZGllIE9wdGlvZW4gLS1mb3JjZSwgdW0gZGllc2Ugw5xiZXJwcsO8ZnVuZyB6dSB1bnRlcmJpbmRlbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgImtlaW4gQmVmZWhsP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInRvdGFsOiAlbGx1IGJsb2Nrc1xuIgorbXNnc3RyICJ6dXNhbW1lbjogJWxsdSBCbMO2Y2tlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzAKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tcHJpbnQtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXJcbiIKK21zZ3N0ciAiQXVmcnVmOiBzZmRpc2sgLS1wcmludC1pZCBHZXLDpHQgUGFydGl0aW9uc251bW1lclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcyCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWNoYW5nZS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBJZFxuIgorbXNnc3RyICJBdWZydWY6IHNmZGlzayAtLWNoYW5nZS1pZCBHZXLDpHQgUGFydGl0aW9uc251bW1lciBJZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAiQXVmcnVmOiBzZmRpc2sgLS1pZCBHZXLDpHQgUGFydGl0aW9uc251bW1lciBbSWRdXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2ODEKK21zZ2lkICJjYW4gc3BlY2lmeSBvbmx5IG9uZSBkZXZpY2UgKGV4Y2VwdCB3aXRoIC1sIG9yIC1zKVxuIgorbXNnc3RyICJNYW4ga2FubiBudXIgZWluIEdlcsOkdCBhbmdlYmVuIChhdcOfZXIgbWl0IC1sIG9kZXIgLXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgcmVhZC13cml0ZVxuIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgenVtIExlc2VuL1NjaHJlaWJlbiDDtmZmbmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIKK21zZ3N0ciAiS29ubnRlICVzIG5pY2h0IHp1bSBMZXNlbiDDtmZmbmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9LXG4iCittc2dzdHIgIiVzOiBPS1xuIgorCisjIEFuZCBhZ2FpbiBvbmUgZm9yIHNob3dfZ2VvbWV0cnkoKeKApgorIzogZmRpc2svc2ZkaXNrLmM6Mjc1MyBmZGlzay9zZmRpc2suYzoyNzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3lsaW5kZXJzLCAlbGQgaGVhZHMsICVsZCBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiVzOiAlbGQgWnlsaW5kZXIsICVsZCBLw7ZwZmUsICVsZCBTZWt0b3Jlbi9TcHVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGdldCBzaXplIG9mICVzXG4iCittc2dzdHIgIkthbm4gZGllIEdyw7bDn2Ugdm9uICVzIG5pY2h0IGZlc3RzdGVsbGVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIGFjdGl2ZSBieXRlOiAweCV4IGluc3RlYWQgb2YgMHg4MFxuIgorbXNnc3RyICJ1bmfDvGx0aWdlcyBBa3Rpdi1CeXRlOiAweCV4IGFuc3RlbGxlIHZvbiAweDgwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkZlcnRpZ1xuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisiU2llIGhhYmVuICVkIGFrdGl2ZSBwcmltw6RyZSBQYXJ0aXRpb25lbi4gIERpZXMgc3BpZWx0IGJlaSBMSUxPIGtlaW5lIFJvbGxlLFxuIgorImFiZXIgZGVyIERPUy1NQlIgYm9vdGV0IG51ciBGZXN0cGxhdHRlbiBtaXQgZWluZXIgYWt0aXZlbiBQYXJ0aXRpb24uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGhhcyBpZCAleCBhbmQgaXMgbm90IGhpZGRlblxuIgorbXNnc3RyICJQYXJ0aXRpb24gJXMgaGF0IElEICV4IHVuZCBpc3QgbmljaHQgdmVyc3RlY2t0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICJVbmfDvGx0aWdlIElEICVseFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDA0Cittc2dpZCAiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UuXG4iCittc2dzdHIgIkRpZXNlIFBsYXR0ZSBpc3QgbW9tZW50YW4gaW4gQmVudXR6dW5nLlxuIgorCisjIFRoaXMgaXMgYSBzdGF0KCkKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmF0YWwgZXJyb3I6IGNhbm5vdCBmaW5kICVzXG4iCittc2dzdHIgIlNjaHdlcndpZWdlbmRlciBGZWhsZXI6IGthbm4gJXMgbmljaHQgZmluZGVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIldhcm51bmc6ICVzIGlzdCBrZWluIGJsb2Nrb3JpZW50aWVydGVzIEdlcsOkdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAiw5xiZXJwcsO8ZmUsIGRhc3MgbmllbWFuZCBkaWVzZSBGZXN0cGxhdHRlIHp1ciBaZWl0IGJlbnV0enQg4oCmXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzQKK21zZ2lkICIiCisiXG4iCisiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UgLSByZXBhcnRpdGlvbmluZyBpcyBwcm9iYWJseSBhIGJhZCBpZGVhLlxuIgorIlVtb3VudCBhbGwgZmlsZSBzeXN0ZW1zLCBhbmQgc3dhcG9mZiBhbGwgc3dhcCBwYXJ0aXRpb25zIG9uIHRoaXMgZGlzay5cbiIKKyJVc2UgdGhlIC0tbm8tcmVyZWFkIGZsYWcgdG8gc3VwcHJlc3MgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpZXNlIEZlc3RwbGF0dGUgaXN0IHp1ciBaZWl0IGluIEJlbnV0enVuZyDigJMgTmV1cGFydGl0aW9uaWVydW5nIGlzdCAiCisidmVybXV0bGljaFxuIgorImVpbmUgc2NobGVjaHRlIElkZWUuIEjDpG5nZW4gU2llIGFsbGUgRGF0ZWlzeXN0ZW1lIGF1ZiBkaWVzZXIgUGxhdHRlIGF1cyB1bmRcbiIKKyJkZWFrdGl2aWVyZW4gU2llIGFsbGUgU3dhcC1QYXJ0aXRpb25lbiAobWl0IHN3YXBvZmYpLlxuIgorIkJlbnV0emVuIFNpZSAtLW5vLXJlcmVhZCwgdW0gZGllc2Ugw5xiZXJwcsO8ZnVuZyB6dSB1bnRlcmJpbmRlbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzOAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIGFsbCBjaGVja3MuXG4iCittc2dzdHIgIiIKKyJCZW51dHplbiBTaWUgZGllIE9wdGlvZW4gLS1mb3JjZSwgdW0gYWxsZSDDnGJlcnByw7xmdW5nZW4genUgdW50ZXJiaW5kZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICJPS1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIk9sZCBzaXR1YXRpb246XG4iCittc2dzdHIgIkFsdGUgQXVmdGVpbHVuZzpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCBjaGFuZ2UgaXRcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIGV4aXN0aWVydCBuaWNodCwga2FubiBzaWUgbmljaHQgw6RuZGVyblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBzaXR1YXRpb246XG4iCittc2dzdHIgIk5ldWUgQXVmdGVpbHVuZzpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisiTWlyIGdlZmFsbGVuIGRpZXNlIFBhcnRpdGlvbmVuIG5pY2h0IOKAkyBuaWNodHMgZ2XDpG5kZXJ0LlxuIgorIihXZW5uIFNpZSBkYXMgd2lya2xpY2ggd29sbGVuLCBiZW51dHplbiBTaWUgZGllIE9wdGlvbiAtLWZvcmNlLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiTWlyIGdlZsOkbGx0IGRhcyBuaWNodCDigJMgU2llIHNvbGx0ZW4gYW0gYmVzdGVuIG1pdCDigJ5OZWlu4oCcIGFudHdvcnRlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICJTaW5kIFNpZSBkYW1pdCB6dWZyaWVkZW4/IFt5IOKAkyBqYSwgbiDigJMgbmVpbiwgcSDigJMgYXVmaMO2cmVuXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiCittc2dzdHIgIldvbGxlbiBTaWUgZGFzIGF1ZiBQbGF0dGUgc2NocmVpYmVuPyBbeSDigJMgamEsIG4g4oCTIG5laW4sIHEg4oCTIGF1ZmjDtnJlbl0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJzZmRpc2s6IHByZW1hdHVyZSBlbmQgb2YgaW5wdXRcbiIKK21zZ3N0ciAiIgorIlxuIgorInNmZGlzazogdm9yemVpdGlnZXMgRW5kZSBkZXIgRWluZ2FiZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiSMO2cmUgYXVmIOKAkyBuaWNodHMgZ2XDpG5kZXJ0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGxlYXNlIGFuc3dlciBvbmUgb2YgeSxuLHFcbiIKK21zZ3N0ciAiQml0dGUgYW50d29ydGVuIFNpZSBtaXQgeSwgbiBvZGVyIHFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VjY2Vzc2Z1bGx5IHdyb3RlIHRoZSBuZXcgcGFydGl0aW9uIHRhYmxlXG4iCisiXG4iCittc2dzdHIgIiIKKyJEaWUgbmV1ZSBQYXJ0aXRpb25zdGFiZWxsZSB3dXJkZSBlcmZvbGdyZWljaCBnZXNjaHJpZWJlblxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMTA1Cittc2dpZCAiIgorIklmIHlvdSBjcmVhdGVkIG9yIGNoYW5nZWQgYSBET1MgcGFydGl0aW9uLCAvZGV2L2ZvbzcsIHNheSwgdGhlbiB1c2UgZGQoMSlcbiIKKyJ0byB6ZXJvIHRoZSBmaXJzdCA1MTIgYnl0ZXM6ICBkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKFNlZSBmZGlzayg4KS4pXG4iCittc2dzdHIgIiIKKyJXZW5uIFNpZSBlaW5lIERPUy1QYXJ0aXRpb24gYW5nZWxlZ3Qgb2RlciBnZcOkbmRlcnQgaGFiZW4sIHouIEIuIC9kZXYvZm9vNyxcbiIKKyJkYW5uIG5laG1lbiBTaWUgZGQoMSksIHVtIGRpZSBlcnN0ZW4gNTEyIEJ5dGVzIGF1ZiAwIHp1IHNldHplbjpcbiIKKyLigJ5kZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0x4oCcIChzaWVoZSBmZGlzayg4KSkuXG4iCisKKyM6IGZzY2svZnNjay5jOjMyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogY291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiJXM6IEtvbm50ZSAlcyBuaWNodCDDtmZmbmVuOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogYmFkIGZvcm1hdCBvbiBsaW5lICVkIG9mICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MzUyCittc2dpZCAiIgorIldBUk5JTkc6IFlvdXIgL2V0Yy9mc3RhYiBkb2VzIG5vdCBjb250YWluIHRoZSBmc2NrIHBhc3Nub1xuIgorIlx0ZmllbGQuICBJIHdpbGwga2x1ZGdlIGFyb3VuZCB0aGluZ3MgZm9yIHlvdSwgYnV0IHlvdVxuIgorIlx0c2hvdWxkIGZpeCB5b3VyIC9ldGMvZnN0YWIgZmlsZSBhcyBzb29uIGFzIHlvdSBjYW4uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NDYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiAlczogbm90IGZvdW5kXG4iCittc2dzdHIgInVtb3VudDogJXM6IE5pY2h0IGdlZnVuZGVuIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlczogc3RhdHVzIGlzICV4LCBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjY0MworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCB3aXRoICVzIChleGl0IHN0YXR1cyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiJXM6IEZlaGxlciAlZCBiZWltIEVudHBhY2tlbiEgJXAoJWQpXG4iCisKKyM6IGZzY2svZnNjay5jOjcyNAorbXNnaWQgIiIKKyJFaXRoZXIgYWxsIG9yIG5vbmUgb2YgdGhlIGZpbGVzeXN0ZW0gdHlwZXMgcGFzc2VkIHRvIC10IG11c3QgYmUgcHJlZml4ZWRcbiIKKyJ3aXRoICdubycgb3IgJyEnLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjc0MworIywgZnV6enkKK21zZ2lkICJDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpbGVzeXN0ZW0gdHlwZXNcbiIKK21zZ3N0ciAibW91bnQ6IFNpZSBtw7xzc2VuIGRlbiBEYXRlaXN5c3RlbXR5cCBhbmdlYmVuIgorCisjOiBmc2NrL2ZzY2suYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBza2lwcGluZyBiYWQgbGluZSBpbiAvZXRjL2ZzdGFiOiBiaW5kIG1vdW50IHdpdGggbm9uemVybyBmc2NrIHBhc3MgIgorIm51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIgorbXNnc3RyICIlczogJXMgaXN0IGtlaW4gbHAtR2Vyw6R0LlxuIgorCisjOiBmc2NrL2ZzY2suYzo5MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogY2Fubm90IGNoZWNrICVzOiBmc2NrLiVzIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjk3NAorIywgZnV6enkKK21zZ2lkICJDaGVja2luZyBhbGwgZmlsZSBzeXN0ZW1zLlxuIgorbXNnc3RyICLDnGJlcnByw7xmdW5nIGRlcyBEYXRlaXN5c3RlbSBhdWYgJXMgZXJ6d3VuZ2VuLlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0td2FpdGluZy0tIChwYXNzICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjEwODUKKyMsIGZ1enp5Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICJBdWZydWY6IG1rZnMgWy1WXSBbLXQgRlMtVHlwXSBbRlMtT3B0aW9uZW5dIEdlcsOkdCBbR3LDtsOfZV1cbiIKKworIzogZnNjay9mc2NrLmM6MTEyMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGRldmljZXNcbiIKK21zZ3N0ciAiJXM6ICVzIGlzdCBrZWluIGxwLUdlcsOkdC5cbiIKKworIzogZnNjay9mc2NrLmM6MTEzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiS29ubnRlICVzIG5pY2h0IMO2ZmZuZW46ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklzIC9wcm9jIG1vdW50ZWQ/XG4iCittc2dzdHIgIiVzIGF1c2dlaMOkbmd0XG4iCisKKyM6IGZzY2svZnNjay5jOjExNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSByb290IHRvIHNjYW4gZm9yIG1hdGNoaW5nIGZpbGVzeXN0ZW1zOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGZpbmQgbWF0Y2hpbmcgZmlsZXN5c3RlbTogJXNcbiIKK21zZ3N0ciAiQXVzaMOkbmdlbiBhbGxlciByZXN0bGljaGVuIERhdGVpc3lzdGVtZeKApiIKKworIzogZnNjay9mc2NrLmM6MTE1NiBmc2NrL2ZzY2suYzoxMjQyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iCittc2dzdHIgIiVzOiBVbmJla2FubnRlcyBBcmd1bWVudDogJXNcbiIKKworIyAibWtmcyBhdXMgdXRpbC1saW51eC0yLjEwZCIKKyMgIm1rZnMgdm9uIHV0aWwtbGludXgtMi4xMGQiCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgdm9uICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiS2VpbiBTcGVpY2hlcnBsYXR6IGbDvHIg4oCeaW5vZGVz4oCcIHZlcmbDvGdiYXIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICLigJ5nZXRvcHQgLS1oZWxw4oCcIGdpYnQgd2VpdGVyZSBJbmZvcm1hdGlvbmVuLlxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mjk1Cittc2dpZCAiZW1wdHkgbG9uZyBvcHRpb24gYWZ0ZXIgLWwgb3IgLS1sb25nIGFyZ3VtZW50IgorbXNnc3RyICJsZWVyZSBsYW5nZSBPcHRpb24gbmFjaCAtbCBvZGVyIC0tbG9uZyIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAiVW5iZWthbm50ZSBTaGVsbCBhbHMgQXJndW1lbnQgdm9uIC1zIG9kZXIgLS1zaGVsbCIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiQXVmcnVmOiBnZXRvcHQgT3B0aW9uc3plaWNoZW5rZXR0ZSBQYXJhbWV0ZXJcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMQorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIFstLV0gb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgICBnZXRvcHQgW09wdGlvbmVuXSBbLS1dIE9wdGlvbnN6ZWljaGVua2V0dGUgUGFyYW1ldGVyXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjIKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSAtb3wtLW9wdGlvbnMgb3B0c3RyaW5nIFtvcHRpb25zXSBbLS1dXG4iCittc2dzdHIgIiIKKyIgICAgICAgIGdldG9wdCBbT3B0aW9uZW5dIC1vfC0tb3B0aW9ucyBPcHRpb25zemVpY2hlbmtldHRlIFtPcHRpb25lbl0gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAgIFBhcmFtZXRlclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI0Cittc2dpZCAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBBbGxvdyBsb25nIG9wdGlvbnMgc3RhcnRpbmcgd2l0aCBzaW5nbGUgLVxuIgorbXNnc3RyICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICBsYW5nZSBPcHRpb25lbiBkw7xyZmVuIGF1Y2ggbWl0IGVpbmZhY2hlbSAtICIKKyJiZWdpbm5lblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI1Cittc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRoaXMgc21hbGwgdXNhZ2UgZ3VpZGVcbiIKK21zZ3N0ciAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICBkaWVzZXIga2xlaW5lIEhpbGZlXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbCwgLS1sb25nb3B0aW9ucz1sb3B0ICAgICB6dSBlcmtlbm5lbmRlIGxhbmdlIE9wdGlvbmVuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjcKK21zZ2lkICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1lIHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIKK21zZ3N0ciAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgZGVyIE5hbWUsIGRlciBpbiBGZWhsZXJtZWxkdW5nZW4gYmVudXR6dCB3aXJkXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjgKK21zZ2lkICIgIC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLW8sIC0tb3B0aW9ucz1PcHRaS2V0dGUgICAgenUgZXJrZW5uZW5kZSBrdXJ6ZSBPcHRpb25lblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIiCisiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICBGZWhsZXJtZWxkdW5nZW4gdm9uIGdldG9wdCgzKSB1bnRlcmRyw7xja2VuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgIGtlaW5lIG5vcm1hbGUgQXVzZ2FiZVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMxCittc2dpZCAiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVsbCBxdW90aW5nIGNvbnZlbnRpb25zXG4iCittc2dzdHIgIiAgLXMsIC0tc2hlbGw9U2hlbGwgICAgICAgICAgS29udmVudGlvbmVuIGbDvHIgU2hlbGwtUXVvdGluZyBzZXR6ZW5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMgorbXNnaWQgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUZXN0IGZvciBnZXRvcHQoMSkgdmVyc2lvblxuIgorbXNnc3RyICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgIGF1ZiBnZXRvcHQoMSktVmVyc2lvbiB0ZXN0ZW5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMworbXNnaWQgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUgdGhlIG91dHB1dFxuIgorbXNnc3RyICIgIC11LCAtLXVucXVvdGUgICAgICAgICAgICAgIGRpZSBBdXNnYWJlIG5pY2h0IHF1b3RlblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzM0Cittc2dpZCAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCittc2dzdHIgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgVmVyc2lvbnNpbmZvcm1hdGlvbiBhdXNnZWJlblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mzg4IGdldG9wdC9nZXRvcHQuYzo0NDcKK21zZ2lkICJtaXNzaW5nIG9wdHN0cmluZyBhcmd1bWVudCIKK21zZ3N0ciAiZmVobGVuZGVzIE9wdGlvbnN6ZWljaGVua2V0dGVuYXJndW1lbnQiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICJJbnRlcm5lciBGZWhsZXIsIGtvbnRha3RpZXJlbiBTaWUgZGVuIEF1dG9yLiIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAidm9uIE1JTE8gZ2Vib290ZXRcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIkLDtnNhcnRpZ2UgQkNELVVoclxuIgorCisjIEVnZ2VyCisjOiBod2Nsb2NrL2Ntb3MuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2xvY2twb3J0IGFkanVzdGVkIHRvIDB4JXhcbiIKK21zZ3N0ciAiVWhycG9ydCBhdWYgMHgleCBnZXN0ZWxsdFxuIgorCisjIGRlYnVnCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICLigJ5mdW5reSBUT1nigJwhXG4iCisKKyMgVGhlIHNlY29uZCAlcyBjYW4gYmU6CisjICJjbG9jayByZWFkIgorIyAic2V0IHRpbWUiCisjOiBod2Nsb2NrL2Ntb3MuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGF0b21pYyAlcyBmYWlsZWQgZm9yIDEwMDAgaXRlcmF0aW9ucyEiCittc2dzdHIgIiVzOiBhdG9tYXJlcyDigJ4lc+KAnCBzY2hsdWcgYmVpIDEwMDAgSXRlcmF0aW9uZW4gZmVobCEiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHJlYWQgZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIktvbm50ZSAvZGV2L3BvcnQgbmljaHQgw7ZmZm5lbjogJXMiCisKKyMgRWdnZXIsIG5vdCByZWFsbHkgbmljZQorIzogaHdjbG9jay9jbW9zLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkkgZmFpbGVkIHRvIGdldCBwZXJtaXNzaW9uIGJlY2F1c2UgSSBkaWRuJ3QgdHJ5LlxuIgorbXNnc3RyICJJY2ggYmVrYW0ga2VpbmUgRXJsYXVibmlzLCB3ZWlsIGljaCBlcyBuaWNodCB2ZXJzdWNodCBoYWJlLlxuIgorCisjIEVnZ2VyCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiIgorIiVzIGthbm4gbmljaHQgYXVmIEkvTy1Qb3J0IHp1Z3JlaWZlbjogZGVyIGlvcGwoMykgQXVmcnVmIHNjaGx1ZyBmZWhsLlxuIgorCisjIFRoaXMgaXMgbm90IHRoZSBjb3JyZWN0IHRyYW5zbGF0aW9uLCBidXQgaXQKKyMgZXhwbGFpbnMgdGhlIHNpdHVhdGlvbiBiZXR0ZXIuCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICJTaWUgYmVuw7Z0aWdlbiByb290LVJlY2h0ZS5cbiIKKworIyBkZWJ1ZworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gJXMgdGltZS5cbiIKK21zZ3N0ciAiRGllIEhhcmR3YXJldWhyIGzDpHVmdCB2ZXJtdXRsaWNoIGluICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAibG9rYWxlciBaZWl0IgorCisjIG1lcmdlIHdpdGggbmV4dAorIzogaHdjbG9jay9od2Nsb2NrLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXYXJuaW5nOiB1bnJlY29nbml6ZWQgdGhpcmQgbGluZSBpbiBhZGp0aW1lIGZpbGVcbiIKK21zZ3N0ciAiJXM6IFdhcm51bmc6IFVuYmVrYW5udGUgZHJpdHRlIFplaWxlIGluIGRlciBhZGp0aW1lLURhdGVpXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIihFcndhcnRldDog4oCeVVRD4oCcIG9kZXIg4oCeTE9DQUzigJwgb2RlciBuaWNodHMuKVxuIgorCisjIFhYWAorIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiTGV0enRlIEFid2VpY2h1bmdza29ycmVrdHVyIHZvcmdlbm9tbWVuIGJlaSAlbGQgU2VrdW5kZW4gbmFjaCAxOTY5XG4iCisKKyMgWFhYCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBjYWxpYnJhdGlvbiBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiTGV0enRlIEthbGlicmllcnVuZyB2b3JnZW5vbW1lbiBiZWkgJWxkIFNla3VuZGVuIG5hY2ggMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICJIYXJkd2FyZXVociBnZWh0IG5hY2ggJXMgWmVpdFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJ1bmtub3duIgorbXNnc3RyICJ1bmJla2FubnRlciIKKworIyBkZWJ1ZworIyBtbWjigKYuIHNlaHIgZ2VlaHJ0ZXIgdXNlcuKApiBkaWVzZXMgaXN0IGtlaW5lIHdlcmJldW50ZXJicmVjaHVuZyB1bmQKKyMgICBrZWluIHNlbmRlYXVzZmFsbOKApiBpY2ggd2FydCBudXIgYXVmIGRhcyBhbmJyZWNoZW4gZGVyIG7DpGNoc3RlbiBmw7xyIG1pY2gKKyMgICByZWxldmFudGVuIHplaXRlaW5oZWl0LgorIyBFZ2dlcgorIzogaHdjbG9jay9od2Nsb2NrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgZm9yIGNsb2NrIHRpY2suLi5cbiIKK21zZ3N0ciAiV2FydGUgYXVmIFVocnRpY2vigKZcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjIEVnZ2VyCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAi4oCmIGVyaGllbHQgVWhydGlja1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKK21zZ3N0ciAiVW5nw7xsdGlnZSBXZXJ0ZSBpbiBIYXJkd2FyZXVocjogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKyJaZWl0IGRlciBIYXJkd2FyZXVocjogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBTZWt1bmRlbiBzZWl0IDE5NjlcbiIKKworIyBFZ2dlcgorIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIlplaXQgZ2VsZXNlbiBhdXMgSGFyZHdhcmV1aHI6ICU0ZC8lLjJkLyUuMmQgJTAyZDolMDJkOiUwMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIlN0ZWxsZSBkaWUgSGFyZHdhcmV1aHIgYXVmICUuMmQ6JS4yZDolLjJkID0gJWxkIFNla3VuZGVuIHNlaXQgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIkRpZSBVaHJ6ZWl0IGRlciBIYXJkd2FyZXVociB3dXJkZSBuaWNodCB2ZXJzdGVsbHQg4oCTIFRlc3Rtb2R1cy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIkRpZSB2ZXJnYW5nZW5lIFplaXQgc2VpdCBkZXIgUmVmZXJlbnp6ZWl0IHdhcmVuICUuNmYgU2VrdW5kZW4uXG4iCisiRXMgd2lyZCB3ZWl0ZXIgZ2V3YXJ0ZXQsIHVtIGRpZSBuw6RjaHN0ZSBnYW56ZSBTZWt1bmRlIHp1IGVycmVpY2hlbi5cbiIKKworIyBEaWUgUmVnaXN0ZXJlaW50csOkZ2UgZGVyIEhhcmR3YXJldWhyIGVudGhhbHRlbiBXZXJ0ZSwgZGllIHVuZ8O8bHRpZworIyAgIHNpbmQgKHouQi4gZGVyIDUwLiBUYWcgZGVzIE1vbmF0cykgb2RlciBhdcOfZXJoYWxiIGRlcyB1bnRlcnN0w7x0emVuCisjICAgQmVyZWljaGVzICh6LkIuIGRhcyBKYWhyIDIwOTUpIGxpZWdlbi4KKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIHJlZ2lzdGVycyBjb250YWluIHZhbHVlcyB0aGF0IGFyZSBlaXRoZXIgaW52YWxpZCAoZS5nLiAiCisiNTB0aCBkYXkgb2YgbW9udGgpIG9yIGJleW9uZCB0aGUgcmFuZ2Ugd2UgY2FuIGhhbmRsZSAoZS5nLiBZZWFyIDIwOTUpLlxuIgorbXNnc3RyICIiCisiRGllIEhhcmR3YXJldWhyIGVudGjDpGx0IGVudHdlZGVyIHVuZ8O8bHRpZ2UgV2VydGUgKHouQi4gZGVuIDUwLiBUYWcgZGVzXG4iCisiTW9uYXRzKSwgb2RlciBkaWUgV2VydGUgbGllZ2VuIGF1w59lcmhhbGIgZGVzIEJlcmVpY2hlcywgZGVyIHVudGVyc3TDvHR6dFxuIgorIndpcmQgKHouQi4gZGFzIEphaHIgMjA5NSkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAgJS42ZiBzZWNvbmRzXG4iCittc2dzdHIgIiVzICAlLjZmIFNla3VuZGVuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAiRXMgd3VyZGUga2VpbmUg4oCeLS1kYXRl4oCcLU9wdGlvbiBhbmdlZ2ViZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLWRhdGUgYXJndW1lbnQgdG9vIGxvbmdcbiIKK21zZ3N0ciAiLS1kYXRlLUFyZ3VtZW50IHp1IGxhbmdcbiIKKworIyBUaGUgZW5nbGlzaCB2ZXJzaW9uIGlzIGFscmVhZHkgYSBsaXR0bGUgbWlzbGVhZGluZy4KKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisiRGVyIFdlcnQgZGVyIOKAni0tZGF0ZeKAnC1PcHRpb24gaXN0IGtlaW4gZ8O8bHRpZ2VzIERhdHVtLlxuIgorIkVzIGRhcmYga2VpbiBBbmbDvGhydW5nc3plaWNoZW4gZW50aGFsdGVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIkRlciDigJ5kYXRl4oCcLUJlZmVobCB3aXJkIGF1ZmdlcnVmZW46ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0MAorbXNnaWQgIlVuYWJsZSB0byBydW4gJ2RhdGUnIHByb2dyYW0gaW4gL2Jpbi9zaCBzaGVsbC4gcG9wZW4oKSBmYWlsZWQiCittc2dzdHIgIktvbm50ZSDigJ5kYXRl4oCcIG5pY2h0IGluIGRlciAvYmluL3NoLVNoZWxsIHN0YXJ0ZW4uIHBvcGVuKCkgc2NobHVnIGZlaGwiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgIkF1c2dhYmUgZGVzIOKAnmRhdGXigJwtQmVmZWhsczogJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdHMuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAgJXNcbiIKK21zZ3N0ciAiIgorIkRlciDigJ5kYXRl4oCcLUJlZmVobCwgZGVyIHZvbiAlcyBhdWZnZXJ1ZmVuIHd1cmRlLCBsaWVmZXJ0ZVxuIgorInVuZXJ3YXJ0ZXRlIEVyZ2Vibmlzc2UuXG4iCisiRGVyIEJlZmVobCB3YXI6XG4iCisiICAlc1xuIgorIkRpZSBBdXNnYWJlIHdhcjpcbiIKKyIgICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gaW50ZWdlciB3aGVyZSAiCisidGhlIGNvbnZlcnRlZCB0aW1lIHZhbHVlIHdhcyBleHBlY3RlZC5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICVzXG4iCittc2dzdHIgIiIKKyJEZXIg4oCeZGF0ZeKAnC1CZWZlaGwsIGRlciB2b24gJXMgYXVmZ2VydWZlbiB3dXJkZSwgbGllZmVydGUga2VpbmUgZ2FuemUgWmFobCwgIgorIndvIGRpZSB1bWdld2FuZGVsdGUgWmVpdCBlcndhcnRldCB3dXJkZS5cbiIKKyJEZXIgQmVmZWhsIHdhcjpcbiIKKyIgICVzXG4iCisiRGllIEF1c2dhYmUgd2FyOlxuIgorIiAgJXNcbiIKKworIyBFZ2dlciwgZml4ZWQgJXMtPiVkCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICJEaWUgWmVpY2hlbmtldHRlICVzIGVudHNwcmljaHQgJWxkIFNla3VuZGVuIHNlaXQgMTk2OS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBzZXQgdGhlICIKKyJTeXN0ZW0gVGltZSBmcm9tIGl0LlxuIgorbXNnc3RyICIiCisiRGllIEhhcmR3YXJldWhyIGVudGjDpGx0IGVpbmUgdW5nw7xsdGlnZSBaZWl0YW5nYWJlOyBhdXMgZGllc2VtIEdydW5kIGlzdFxuIgorImVzIG5pY2h0IG3DtmdsaWNoLCBkaWUgU3lzdGVtemVpdCB6dSBzZXR6ZW4uXG4iCisKKyMgZGVidWcKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyNyBod2Nsb2NrL2h3Y2xvY2suYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBzZXR0aW1lb2ZkYXk6XG4iCittc2dzdHIgInNldHRpbWVvZmRheSgpIHdpcmQgYXVmZ2VydWZlbjpcbiIKKworIyBub3QgbXVjaCB0byB0cmFuc2xhdGUKKyMgZGVidWcKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyOCBod2Nsb2NrL2h3Y2xvY2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKK21zZ3N0ciAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKKworIyBub3QgbXVjaCB0byB0cmFuc2xhdGUKKyMgZGVidWcKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICJLZWluZSDDhG5kZXJ1bmcgYW4gZGVyIFN5c3RlbXVociB2b3JnZW5vbW1lbiDigJMgVGVzdG1vZHVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIlNpZSBtw7xzc2VuIHJvb3Qgc2VpbiwgdW0gZGllIFN5c3RlbXVociB6dSB2ZXLDpG5kZXJuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDUgaHdjbG9jay9od2Nsb2NrLmM6ODIzCittc2dpZCAic2V0dGltZW9mZGF5KCkgZmFpbGVkIgorbXNnc3RyICJzZXR0aW1lb2ZkYXkoKSBzY2hsdWcgZmVobCIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzgxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICJTeXN0ZW0tWmVpdCBsZXNlbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0VVRDOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSB0aGUgSGFyZHdhcmUgQ2xvY2sgcHJldmlvdXNseSBjb250YWluZWQgIgorImdhcmJhZ2UuXG4iCittc2dzdHIgIiIKKyJEZXIgRHJpZnRmYWt0b3Igd2lyZCBuaWNodCB2ZXLDpG5kZXJ0LCBkYSBkaWUgSGFyZHdhcmV1aHIgdm9yaGVyIGtlaW5lbiAiCisic2lubnZvbGxlbiBXZXJ0IGVudGhpZWx0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgbGFzdCBjYWxpYnJhdGlvbiB0aW1lIGlzIHplcm8sXG4iCisic28gaGlzdG9yeSBpcyBiYWQgYW5kIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciBpcyBuZWNlc3NhcnkuXG4iCittc2dzdHIgIiIKKyJEZXIgRHJpZnRmYWt0b3Igd2lyZCBuaWNodCB2ZXLDpG5kZXJ0LCBkYSBkaWUgWmVpdCBkZXIgbGV0enRlbiBLYWxpYnJpZXJ1bmcgIgorIk51bGxcbiIKKyJpc3QsIGFsc28gZGllIEF1ZnplaWNobnVuZ2VuIGJlc2Now6RkaWd0IHNpbmQgdW5kIGRpZSBLYWxpYnJpZXJ1bmcgdm9uIG5ldWVtXG4iCisic3RhcnRlbiBtdXNzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorIkRlciBEcmlmdGZha3RvciB3aXJkIG5pY2h0IHZlcsOkbmRlcnQsIGRhIHdlbmlnZXIgYWxzIGVpbiBUYWcgc2VpdCBkZXIgIgorImxldHp0ZW4gS2FsaWJyaWVydW5nIHZlcmdhbmdlbiBpc3QuXG4iCisKKyMgRWdnZXIKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2xvY2sgZHJpZnRlZCAlLjFmIHNlY29uZHMgaW4gdGhlIHBhc3QgJWQgc2Vjb25kcyBpbiBzcGl0ZSBvZiBhIGRyaWZ0IGZhY3RvciAiCisib2YgJWYgc2Vjb25kcy9kYXkuXG4iCisiQWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBieSAlZiBzZWNvbmRzL2RheVxuIgorbXNnc3RyICIiCisiRGllIFVociB3aWNoIGluIGRlbiB2ZXJnYW5nZW5lbiAlMiRkIFNla3VuZGVuIHRyb3R6IGVpbmVzIERyaWZ0ZmFrdG9ycyB2b24gJTMiCisiJGYgU2VrdW5kZW4vVGFnIHVtICUxJC4xZiBTZWt1bmRlbiBhYi5cbiIKKyJEZXIgRmFrdG9yIHdpcmQgdW0gJTQkZiBTZWt1bmRlbi9UYWcgZ2XDpG5kZXJ0LlxuIgorCisjIEVnZ2VyCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJFcyB2ZXJnaW5nZW4gJWQgU2VrdW5kZW4gc2VpdCBkZXIgbGV0enRlbiBBbnBhc3N1bmcuXG4iCisKKyMgRWdnZXIKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkIHRvIGluc2VydCAlZCBzZWNvbmRzIGFuZCByZWZlciB0aW1lIGJhY2sgJS42ZiBzZWNvbmRzIGFnb1xuIgorbXNnc3RyICIiCisiRXMgbcO8c3NlbiAlZCBTZWt1bmRlbiBlaW5nZWbDvGd0IHdlcmRlbiB1bmQgZXMgbXVzcyBhdWYgZGllIFplaXQgdm9yICUuNmYgIgorIlNla3VuZGVuIHp1Z2VncmlmZmVuIHdlcmRlblxuIgorCisjIG1lcmdlIHdpdGggbmV4dAorIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIkRpZSBhZGp0aW1lIERhdGVpIHdpcmQgbmljaHQgYWt0dWFsaXNpZXJ0IOKAkyBUZXN0bW9kdXMgXG4iCisKKyMgIkjDpHR0ZSBkYXMgZm9sZ2VuZGUgaW4gZGllIERhdGVpICVzIGdlc2NocmllYmVuOlxuIgorIyBwYXNzaXYsIEtvbmp1bmt0aXYgaW4gZGVyIFVtc2NocmVpYnVuZ3Nmb3JtCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldvdWxkIGhhdmUgd3JpdHRlbiB0aGUgZm9sbG93aW5nIHRvICVzOlxuIgorIiVzIgorbXNnc3RyICIiCisiRm9sZ2VuZGVzIHfDpHJlIGluIGRpZSBEYXRlaSAlcyBnZXNjaHJpZWJlbiB3b3JkZW46XG4iCisiJXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIiIKKworIyAiQWJ3ZWljaHVuZ3NwYXJhbWV0ZXIiCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRyaWZ0IGFkanVzdG1lbnQgcGFyYW1ldGVycyBub3QgdXBkYXRlZC5cbiIKK21zZ3N0ciAiRGllIEFid2VpY2h1bmdzcGFyYW1ldGVyIHd1cmRlbiBuaWNodCB2ZXLDpG5kZXJ0LlxuIgorCisjICJhbnBhc3NlbiIKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IGFkanVzdCBpdC5cbiIKK21zZ3N0ciAiIgorIkRpZSBIYXJkd2FyZXVociBlbnRow6RsdCBrZWluZSBnw7xsdGlnZSBaZWl0LCBkZXNoYWxiIGthbm4gc2llIG5pY2h0IGFuZ2VwYXNzdCAiCisid2VyZGVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKyJEZXIgRHJpZnRmYWt0b3Igd2lyZCBuaWNodCB2ZXLDpG5kZXJ0LCBkYSBkaWUgWmVpdCBkZXIgbGV0enRlbiBLYWxpYnJpZXJ1bmcgIgorIk51bGxcbiIKKyJpc3QsIGFsc28gZGllIEF1ZnplaWNobnVuZ2VuIGJlc2Now6RkaWd0IHNpbmQgdW5kIGRpZSBLYWxpYnJpZXJ1bmcgdm9uIG5ldWVtXG4iCisic3RhcnRlbiBtdXNzLlxuIgorCisjICJKdXN0aWVydW5nIgorIzogaHdjbG9jay9od2Nsb2NrLmM6MTA4OQorIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkZWQgYWRqdXN0bWVudCBpcyBsZXNzIHRoYW4gb25lIHNlY29uZCwgc28gbm90IHNldHRpbmcgY2xvY2suXG4iCittc2dzdHIgIiIKKyJEYSBkaWUgQW5wYXNzdW5nIHdlbmlnZXIgYWxzIGVpbmUgU2VrdW5kZSBiZXRyYWdlbiBow6R0dGUsIHdpcmQgc2llIG5pY2h0ICIKKyJkdXJjaGdlZsO8aHJ0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nICVzLlxuIgorbXNnc3RyICJCZW51dHplICVzLlxuIgorCisjICJTY2huaXR0c3RlbGxlIgorIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNworIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgY2xvY2sgaW50ZXJmYWNlIGZvdW5kLlxuIgorbXNnc3RyICJLZWluZSBicmF1Y2hiYXJlIFVocnNjaG5pdHRzdGVsbGUgZ2VmdW5kZW4uXG4iCisKKyMgInN0ZWxsZW4iCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIktvbm50ZSBkaWUgU3lzdGVtdWhyIG5pY2h0IHN0ZWxsZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisiRGVyIEtlcm5lbCBoZWJ0IG51ciBhdWYgQWxwaGEtTWFzY2hpbmVuIGVpbmVuIEVwb2NoZW4tV2VydCBmw7xyIGRpZSBIYXJkd2FyZS0iCisiVWhyXG4iCisiYXVmLiBEaWVzZXMgaHdjbG9jayB3dXJkZSBmw7xyIGVpbmUgYW5kZXJlIE1hc2NoaW5lIGFscyBBbHBoYSDDvGJlcnNldHp0ICh1bmRcbiIKKyJsw6R1ZnQgZGFoZXIgdmVybXV0bGljaCBnZXJhZGUgbmljaHQgYXVmIGVpbmVyIEFscGhhKS4gRXMgd2lyZCBuaWNodHMgIgorImdlbWFjaHQuXG4iCisKKyMgRWdnZXIKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGdldCB0aGUgZXBvY2ggdmFsdWUgZnJvbSB0aGUga2VybmVsLlxuIgorbXNnc3RyICJLYW5uIGRlbiBFcG9jaGVud2VydCBuaWNodCB2b20gS2VybmVsIGJla29tbWVuLlxuIgorCisjIEVnZ2VyCisjICJFcG9jaGVud2VydCIKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2VybmVsIGlzIGFzc3VtaW5nIGFuIGVwb2NoIHZhbHVlIG9mICVsdVxuIgorbXNnc3RyICJLZXJuZWwgZ2VodCB2b24gZWluZW0gRXBvY2hlbndlcnQgdm9uICVsdSBhdXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIHNldCB0aGUgZXBvY2ggdmFsdWUsIHlvdSBtdXN0IHVzZSB0aGUgJ2Vwb2NoJyBvcHRpb24gdG8gdGVsbCB0byB3aGF0ICIKKyJ2YWx1ZSB0byBzZXQgaXQuXG4iCittc2dzdHIgIiIKKyJVbSBkZW4gRXBvY2hlbndlcnQgenUgw6RuZGVybiwgbcO8c3NlbiBzaWUgZGllIOKAnmVwb2No4oCcLU9wdGlvbiBiZW51dHplbiwgdW0gIgorImFuenVnZWJlbiBhdWYgd2VsY2hlbiBXZXJ0IGVyIGdlc2V0enQgd2VyZGVuIHNvbGwuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJEZXIgRXBvY2hlbndlcnQgd2lyZCBuaWNodCBhdWYgJWQgZ2VzZXR6dCDigJMgVGVzdG1vZHVzLlxuIgorCisjIEVnZ2VyCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIkthbm4gZGVuIEVwb2NoZW53ZXJ0IGltIEtlcm5lbCBuaWNodCDDpG5kZXJuLlxuIgorCisjICJta2ZzIGF1cyB1dGlsLWxpbnV4LTIuMTBkIgorIyAibWtmcyB2b24gdXRpbC1saW51eC0yLjEwZCIKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyOTAgbWlzYy11dGlscy9jYWwuYzozNDcgbWlzYy11dGlscy9raWxsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgdm9uICVzXG4iCisKKyMgIlVuaXZlcnNhbHplaXQiCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiaHdjbG9jayAtIHF1ZXJ5IGFuZCBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIChSVEMpXG4iCisiXG4iCisiVXNhZ2U6IGh3Y2xvY2sgW2Z1bmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGdW5jdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHNob3cgdGhpcyBoZWxwXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgdGhlIHJ0YyB0byB0aGUgdGltZSBnaXZlbiB3aXRoIC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBhZGp1c3QgdGhlIHJ0YyB0byBhY2NvdW50IGZvciBzeXN0ZW1hdGljIGRyaWZ0IHNpbmNlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgcHJpbnQgb3V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICBzZXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlIHRvIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHByaW50IG91dCB0aGUgdmVyc2lvbiBvZiBod2Nsb2NrIHRvIHN0ZG91dFxuIgorIlxuIgorIk9wdGlvbnM6IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICBzcGVjaWFsIC9kZXYvLi4uIGZpbGUgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdFxuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICBhY2Nlc3MgdGhlIElTQSBidXMgZGlyZWN0bHkgaW5zdGVhZCBvZiAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorIiAgICAgICAtLWRhdGUgICAgICAgICBzcGVjaWZpZXMgdGhlIHRpbWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLWVwb2NoPXllYXIgICBzcGVjaWZpZXMgdGhlIHllYXIgd2hpY2ggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZG8gbm90IGFjY2VzcyAvZXRjL2FkanRpbWUuIFJlcXVpcmVzIHRoZSB1c2Ugb2ZcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICBkbyBldmVyeXRoaW5nIGV4Y2VwdCBhY3R1YWxseSB1cGRhdGluZyB0aGUgaGFyZHdhcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBkZWJ1ZyBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJod2Nsb2NrIOKAkyBEaWUgSGFyZHdhcmV1aHIgKFJUQykgc2V0emVuIHVuZCBhYmZyYWdlblxuIgorIlxuIgorIkF1ZnJ1ZjogaHdjbG9jayBbRnVua3Rpb25dIFtPcHRpb25lbuKApl1cbiIKKyJcbiIKKyJGdW5rdGlvbmVuOlxuIgorIiAgLS1oZWxwICAgICAgICBkaWVzZSBIaWxmZSB6ZWlnZW5cbiIKKyIgIC0tc2hvdyAgICAgICAgWmVpdCBkZXIgSGFyZHdhcmV1aHIgYW56ZWlnZW5cbiIKKyIgIC0tc2V0ICAgICAgICAgZGllIEhhcmR3YXJldWhyIGF1ZiBkaWUgWmVpdCBzZXR6ZW4sIGRpZSBtaXQgZGVyXG4iCisiICAgICAgICAgICAgICAgICAg4oCeLS1kYXRl4oCcLU9wdGlvbiBhbmdlZ2ViZW4gd3VyZGVcbiIKKyIgIC0taGN0b3N5cyAgICAgZGllIFN5c3RlbXplaXQgdm9uIGRlciBIYXJkd2FyZXVociBzZXR6ZW5cbiIKKyIgIC0tc3lzdG9oYyAgICAgZGllIEhhcmR3YXJldWhyIGF1ZiBkaWUgU3lzdGVtemVpdCBzZXR6ZW5cbiIKKyIgIC0tYWRqdXN0ICAgICAgZGllIEhhcmR3YXJldWhyIGFucGFzc2VuLCB1bSBzeXN0ZW1hdGlzY2hlIGJlZGluZ3RlICIKKyJBYndlaWNodW5nZW5cbiIKKyIgICAgICAgICAgICAgICAgICBzZWl0IGRlbSBsZXR6dGVuIFNldHplbiBvZGVyIEFucGFzc2VuIGF1c3p1Z2xlaWNoZW5cbiIKKyIgIC0tZ2V0ZXBvY2ggICAgZGVuIEVwb2NoZW53ZXJ0IGRlciBIYXJkd2FyZXVociBhbnplaWdlblxuIgorIiAgLS1zZXRlcG9jaCAgICBkZW4gRXBvY2hlbndlcnQgZGVyIEhhcmR3YXJldWhyIGF1ZiBkZW4gV2VydCBzdGVsbGVuLFxuIgorIiAgICAgICAgICAgICAgICAgIGRlciBtaXQgZGVyIOKAni0tZXBvY2jigJwtT3B0aW9uIGFuZ2VnZWJlbiB3dXJkZVxuIgorIiAgLS12ZXJzaW9uICAgICBkaWUgVmVyc2lvbiB2b24gaHdjbG9jayBhbnplaWdlbiBcbiIKKyJcbiIKKyJPcHRpb25lbjogXG4iCisiICAtLXV0YyAgICAgICAgIGRpZSBIYXJkd2FyZXVociBsw6R1ZnQgbmFjaCBVbml2ZXJzYWx6ZWl0IChVVEMpXG4iCisiICAtLWxvY2FsdGltZSAgIGRpZSBIYXJkd2FyZXVociBsw6R1ZnQgbmFjaCBsb2thbGVyIFplaXRcbiIKKyIgIC0tcnRjPXBhdGggICAgc3BlemllbGxlIEdlcsOkdGVkYXRlaSwgYW5zdGVsbGUgZGVyIFZvcmVpbnN0ZWxsdW5nXG4iCisiICAtLWRpcmVjdGlzYSAgIGRlbiBJU0EgQnVzIGRpcmVrdCBhbnN0ZWxsZSB2b24gJXMgdmVyd2VuZGVuXG4iCisiICAtLWJhZHllYXIgICAgIGRpZSBKYWhyZXN6YWhsIGRlciBIYXJkd2FyZXVociBpZ25vcmllcmVuLCB3ZWlsIEJJT1Mga2FwdXR0ICIKKyJpc3RcbiIKKyIgIC0tZGF0ZSAgICAgICAgZGllc2UgWmVpdCB6dW0gc2V0emVuIGRlciBIYXJkd2FyZXVociB2ZXJ3ZW5kZW5cbiIKKyIgIC0tZXBvY2g9eWVhciAgZGllc2VuIFdlcnQgYWxzIEVwb2NoZW53ZXJ0IGRlciBIYXJkd2FyZXVociB2ZXJ3ZW5kZW5cbiIKKyIgIC0tbm9hZGpmaWxlICAgbmljaHQgYXVmIC9ldGMvYWRqdGltZSB6dWdyZWlmZW47IGVyZm9yZGVydCBCZW51dHp1bmcgdm9uXG4iCisiICAgICAgICAgICAgICAgICBlbnR3ZWRlciAtLXV0YyBvZGVyIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisiXG4iCittc2dzdHIgIiIKKyIgIC0tamVuc2VuLCAtLWFyYywgLS1zcm0sIC0tZnVua3ktdG95XG4iCisiICAgICAgICAgICAgICAgIGh3Y2xvY2sgbWl0dGVpbGVuLCB1bSB3ZWxjaGVuIEFscGhhLVR5cCBlcyBzaWNoIGhhbmRlbHRcbiIKKyIgICAgICAgICAgICAgICAgICAoc2llaGUgaHdjbG9jayg4KSlcbiIKKworIyAic3RlbGxlbiIKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gY29ubmVjdCB0byBhdWRpdCBzeXN0ZW1cbiIKK21zZ3N0ciAiS29ubnRlIGRpZSBTeXN0ZW11aHIgbmljaHQgc3RlbGxlbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMgbmltbXQga2VpbmUgTmljaHQtT3B0aW9ucy1Bcmd1bWVudGUuIFNpZSBnYWJlbiAlZC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgc3BlY2lmaWVkIG11bHRpcGxlIGZ1bmN0aW9ucy5cbiIKKyJZb3UgY2FuIG9ubHkgcGVyZm9ybSBvbmUgZnVuY3Rpb24gYXQgYSB0aW1lLlxuIgorbXNnc3RyICIiCisiU2llIGhhYmVuIG1laHJlcmUgRnVua3Rpb25lbiBhbmdlZm9yZGVydC5cbiIKKyJTaWUga8O2bm5lbiBpbW1lciBudXIgZWluZSBGdW5rdGlvbiBnbGVpY2h6ZWl0aWcgYXVzZsO8aHJlbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBEaWUgT3B0aW9uZW4gLS11dGMgdW5kIC0tbG9jYWx0aW1lIHNjaGxpZcOfZW4gc2ljaCBhdXMuIFNpZSBnYWJlbiBiZWlkZSAiCisiYW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGp1c3QgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogRGllIE9wdGlvbmVuIC0tYWRqdXN0IHVuZCAtLW5vYWRqZmlsZSBzY2hsaWXDn2VuIHNpY2ggYXVzLiBTaWUgZ2FiZW4gIgorImJlaWRlIGFuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogRGllIE9wdGlvbmVuIC0tYWRqdXN0IHVuZCAtLW5vYWRqZmlsZSBzY2hsaWXDn2VuIHNpY2ggYXVzLiBTaWUgZ2FiZW4gIgorImJlaWRlIGFuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIiCisiJXM6IE9obmUgLS1ub2FkamZpbGUgbcO8c3NlbiBTaWUgZW50d2VkZXIgLS11dGMgb2RlciAtLWxvY2FsdGltZSBhbmdlYmVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBzZXQtdG8gdGltZS4gIENhbm5vdCBzZXQgY2xvY2suXG4iCittc2dzdHIgIktlaW5lIGJyYXVjaGJhcmUgWmVpdGFuZ2FiZS4gS2FubiBVaHIgbmljaHQgc3RlbGxlbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICJTaWUgbcO8c3NlbiByb290IHNlaW4sIHVtIGRpZSBIYXJkd2FyZXVociB6dSDDpG5kZXJuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgU3lzdGVtIENsb2NrLlxuIgorbXNnc3RyICJTaWUgbcO8c3NlbiByb290IHNlaW4sIHVtIGRpZSBTeXN0ZW11aHIgenUgw6RuZGVybi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUgIgorImtlcm5lbC5cbiIKK21zZ3N0ciAiU2llIG3DvHNzZW4gcm9vdCBzZWluLCB1bSBkZW4g4oCeZXBvY2jigJwtV2VydCB6dSDDpG5kZXJuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBhY2Nlc3MgdGhlIEhhcmR3YXJlIENsb2NrIHZpYSBhbnkga25vd24gbWV0aG9kLlxuIgorbXNnc3RyICIiCisiRXMgd3VyZGUga2VpbmUgWnVncmlmZnNhcnQgZ2VmdW5kZW4sIG1pdCBkZXIgYXVmIGRpZSBIYXJkd2FyZXVociB6dWdlZ3JpZmZlbiAiCisid2VyZGVuIGtvbm50ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIiIKKyJCZW51dHplbiBTaWUgZGllIOKAni0tZGVidWfigJwtT3B0aW9uIHVtIGRpZSB2ZXJzdWNodGVuIFp1Z3JpZmZzYXJ0ZW4gIgorImFuenV6ZWlnZW4uXG4iCisKKyMgZGVidWcKKyM6IGh3Y2xvY2sva2QuYzo1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSBLREdIV0NMSyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiV2FydGUgaW4gU2NobGVpZmUgYXVmIMOEbmRlcnVuZyBkZXIgWmVpdCB2b24gS0RHSFdDTEtcbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAiS0RHSFdDTEstSW9jdGwgc2NoZWl0ZXJ0ZSBiZWltIEF1c2xlc2VuIGRlciBaZWl0LiIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICJLREdIV0NMSy1Jb2N0bCBzY2hlaXRlcnRlIGluIFNjaGxlaWZlIGJlaW0gQXVzbGVzZW4gZGVyIFplaXQuIgorCisjOiBod2Nsb2NrL2tkLmM6ODIgaHdjbG9jay9ydGMuYzoyMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRpbWUgY2hhbmdlLlxuIgorbXNnc3RyICJaZWl0w7xiZXJzY2hyZWl0dW5nIGJlaW0gV2FydGVuIGF1ZiBaZWl0w6RuZGVydW5nLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6MTA0CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgZmFpbGVkIHRvIHJlYWQgdGltZSBmcm9tICVzIgorbXNnc3RyICJpb2N0bCgpIGtvbm50ZSBaZWl0IG5pY2h0IHZvbiAlcyBsZXNlbi4iCisKKyM6IGh3Y2xvY2sva2QuYzoxNDAKK21zZ2lkICJpb2N0bCBLRFNIV0NMSyBmYWlsZWQiCittc2dzdHIgIklvY3RsIEtEU0hXQ0xLIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBod2Nsb2NrL2tkLmM6MTc2Cittc2dpZCAiQ2FuJ3Qgb3BlbiAvZGV2L3R0eTEgb3IgL2Rldi92Yy8xIgorbXNnc3RyICJLb25udGUgL2Rldi90dHkxIG9kZXIgL2Rldi92Yy8xIG5pY2h0IMO2ZmZuZW4iCisKKyM6IGh3Y2xvY2sva2QuYzoxODAKK21zZ2lkICJLREdIV0NMSyBpb2N0bCBmYWlsZWQiCittc2dzdHIgIktER0hXQ0xLLUlvY3RsIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE0NyBod2Nsb2NrL3J0Yy5jOjI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuKCkgb2YgJXMgZmFpbGVkIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lbiIKKworIzogaHdjbG9jay9ydGMuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAiaW9jdGwoKSBhdWYgJXMsIHVtIGRpZSBaZWl0IHp1IGxlc2VuLCBmZWhsZ2VzY2hsYWdlbi5cbiIKKworIzogaHdjbG9jay9ydGMuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gJXMgdG8gY2hhbmdlXG4iCittc2dzdHIgIldhcnRlIGluIFNjaGxlaWZlIGF1ZiDDhG5kZXJ1bmcgZGVyIFplaXQgYXVzICVzXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRvZXMgbm90IGhhdmUgaW50ZXJydXB0IGZ1bmN0aW9ucy4gIgorbXNnc3RyICIlcyBoYXQga2VpbmUgSW50ZXJydXB0LUZ1bmt0aW9uZW4uICIKKworIzogaHdjbG9jay9ydGMuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJyZWFkKCkgYXVmICVzLCB1bSBhdWYgWmVpdHRpY2sgenUgd2FydGVuLCBmZWhsZ2VzY2hsYWdlbi4iCisKKyM6IGh3Y2xvY2svcnRjLmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJzZWxlY3QoKSBhdWYgJXMsIHVtIGF1ZiBaZWl0dGljayB6dSB3YXJ0ZW4sIGZlaGxnZXNjaGxhZ2VuLiIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAic2VsZWN0KCkgYXVmICVzLCB1bSBhdWYgWmVpdHRpY2sgenUgd2FydGVuLCBaZWl0IGFiZ2VsYXVmZW4uXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIgorbXNnc3RyICJpb2N0bCgpIGF1ZiAlcywgdW0gVXBkYXRlLUludGVycnVwdHMgYWJ6dXNjaGFsdGVuLCBmZWhsZ2VzY2hsYWdlbi4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvbiB1cGRhdGUgaW50ZXJydXB0cyBmYWlsZWQgdW5leHBlY3RlZGx5IgorbXNnc3RyICJpb2N0bCgpIGF1ZiAlcywgdW0gVXBkYXRlLUludGVycnVwdHMgZWluenVzY2hhbHRlbiwgZmVobGdlc2NobGFnZW4uIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImlvY3RsKCkgYXVmICVzLCB1bSBkaWUgWmVpdCB6dSBzZXR6ZW4sIGZlaGxnZXNjaGxhZ2VuLlxuIgorCisjIGRlYnVnCisjOiBod2Nsb2NrL3J0Yy5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCglcykgd2FzIHN1Y2Nlc3NmdWwuXG4iCittc2dzdHIgIuKAnmlvY3RsKCVzKeKAnCB3YXIgZXJmb2xncmVpY2guXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lbiIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisiWnVtIE1hbmlwdWxpZXJlbiBkZXMgRXBvY2gtV2VydGVzIGltIEtlcm5lbCBtw7xzc2VuIHdpciBkZW4gTGludXgtIgorIkdlcsOkdGV0cmVpYmVyIOKAmnJ0Y+KAmCBtaXR0ZWxzIGRlciBHZXLDpHRlZGF0ZWkgJXMgYW5zcHJlY2hlbi4gRGllc2UgRGF0ZWkgIgorImV4aXN0aWVydCBhdWYgZGllc2VtIFN5c3RlbSBuaWNodC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0MTUgaHdjbG9jay9ydGMuYzo0NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIktvbm50ZSAlcyBuaWNodCDDtmZmbmVuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgYXVmICVzIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAiV2lyIGhhYmVuIEVwb2NoZSAlbGQgYXVzICVzIG1pdCBkZW0gUlRDX0VQT0NIX1JFQUQtSW9jdGwgZ2VsZXNlbi5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVwb2NoIHZhbHVlIG1heSBub3QgYmUgbGVzcyB0aGFuIDE5MDAuICBZb3UgcmVxdWVzdGVkICVsZFxuIgorbXNnc3RyICIiCisiRGVyIEVwb2NoZW53ZXJ0IGRhcmYgbmljaHQga2xlaW5lciBhbHMgMTkwMCBzZWluLiBTaWUgZm9yZGVydGVuICVsZCBhbi5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0dGluZyBlcG9jaCB0byAlbGQgd2l0aCBSVENfRVBPQ0hfU0VUIGlvY3RsIHRvICVzLlxuIgorbXNnc3RyICJTZXR6ZSBFcG9jaGUgYXVmICVsZCBtaXQgUlRDX0VQT0NIX1NFVC1Jb2N0bCBhdWYgJXMuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGRldmljZSBkcml2ZXIgZm9yICVzIGRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCittc2dzdHIgIkRlciBLZXJuZWwtR2Vyw6R0ZXRyZWliZXIgZsO8ciAlcyBoYXQga2VpbmVuIFJUQ19FUE9DSF9TRVQtSW9jdGwuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKFJUQ19FUE9DSF9TRVQpIHRvICVzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgYXVmICVzIGZlaGx0IgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIgorbXNnc3RyICIlczogRmVobGVyIGJlaW0gQXVzZsO8aHJlbiB2b24gJXM6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozODMKK21zZ2lkICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKK21zZ3N0ciAiS29ubnRlIGtlaW5lbiBTcGVpY2hlciBmw7xyIGRlbiDigJ5pbml0c3RyaW5n4oCcIHJlc2VydmllcmVuIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIgorbXNnc3RyICJ1bmfDvGx0aWdlciBBdXN6ZWl0LVdlcnQ6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHNwZWVkOiAlcyIKK21zZ3N0ciAiZmFsc2NoZSBHZXNjaHdpbmRpZ2tlaXQ6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKK21zZ2lkICJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIgorbXNnc3RyICJ6dSB2aWVsZSBhbHRlcm5hdGl2ZSBHZXNjaHdpbmRpZ2tlaXRlbiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiS29ubnRlIG5pY2h0IGluIGRhcyBWZXJ6ZWljaG5pcyAvZGV2IHdlY2hzZWxuOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIi9kZXYvJXMgaXN0IGtlaW4gemVpY2hlbm9yaWVudGllcnRlcyBHZXLDpHQiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY0MgorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBjYW5ub3Qgb3BlbiBhcyBzdGFuZGFyZCBpbnB1dDogJW0iCittc2dzdHIgIktvbm50ZSAvZGV2LyVzIG5pY2h0IGFscyBTdGFuZGFyZGVpbmdhYmUgw7ZmZm5lbjogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiCittc2dzdHIgIiVzOiBuaWNodCBvZmZlbiBmw7xyIExlc2VuL1NjaHJlaWJlbiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkdXAgcHJvYmxlbTogJW0iCittc2dzdHIgIiVzOiBkdXDigJBQcm9ibGVtOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXIiCittc2dzdHIgIkJlbnV0emVyIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlcnMiCittc2dzdHIgIkJlbnV0emVyIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiJXM6IGdlbGVzZW46ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnB1dCBvdmVycnVuIgorbXNnc3RyICIlczogRWluZ2FiZeKAkMOcYmVybGF1ZiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTIwNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiQXVmcnVmOiAlcyBbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbW1dIFstdCB6ZWl0bGltaXRdIFstSSBpbml0c3RyaW5nXSBbLUggIgorImxvZ2luX2hvc3RdIGJhdWRfcmF0ZSzigKYgemVpbGUgW3Rlcm10eXBlXVxuIgorIiBvZGVyOiAgIFstaGlMbXddIFstbCBsb2dpbl9wcm9ncmFtbV0gWy10IHplaXRsaW1pdF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gemVpbGUgYmF1ZF9yYXRlLOKApiBbdGVybXR5cGVdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImxvZ2luOiB3ZW5pZyBTcGVpY2hlciwgRWlubG9nZ2VuIGvDtm5udGUgZmVobHNjaGxhZ2VuXG4iCisKKyMgRGFzIGdlaHQgaW5zIFN5c2xvZyDigJMgaWNoIMO8YmVyc2V0emUgZXMgbmljaHQuIChNUGkpCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKKworIyBEYXMgZ2VodCBpbnMgU3lzbG9nIOKAkyBpY2ggw7xiZXJzZXR6ZSBlcyBuaWNodC4gKE1QaSkKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciBncnBsaXN0IgorbXNnc3RyICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkIGJ5IGRlZmF1bHQuXG4iCittc2dzdHIgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkIGJ5IGRlZmF1bHQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjEzMyBsb2dpbi11dGlscy9jaHNoLmM6MTE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB5b3UgKHVzZXIgJWQpIGRvbid0IGV4aXN0LlxuIgorbXNnc3RyICIlczogU2llIChOdXRlciAlZCkgZXhpc3RpZXJlbiBuaWNodC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0MCBsb2dpbi11dGlscy9jaHNoLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1c2VyIFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IE51dHplciDigJ4lc+KAnCBleGlzdGllcnQgbmljaHQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiVzOiBrYW5uIG51ciBsb2thbGUgRWludHLDpGdlIMOkbmRlcm47IHN0YXR0ZGVzc2VuIHlwJXMgYmVudXR6ZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICJ1bmJla2FubnRlciBOdXR6ZXJrb250ZXh0IgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIGZpbmdlciBpbmZvIG9mICVzXG4iCittc2dzdHIgIiIKKyIlczogJXMgaXN0IG5pY2h0IGF1dG9yaXNpZXJ0LCBkaWUgRmluZ2VyLUluZm9ybWF0aW9uZW4gZsO8ciAlcyB6dSDDpG5kZXJuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiVzOiBLYW5uIGtlaW5lbiB2b3JlaW5nZXN0ZWxsdGVuIEtvbnRleHQgZsO8ciAvZXRjL3Bhc3N3ZCBzZXR6ZW4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZmluZ2VyIGluZm9ybWF0aW9uIGZvciAlcy5cbiIKK21zZ3N0ciAiw4RuZGVyZSBmaW5nZXItSW5mb3JtYXRpb24gZsO8ciAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJsb2dpbjogUEFNLUZlaGxzY2hsYWcsIGJyZWNoZSBhYjogJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxMiBsb2dpbi11dGlscy9jaHNoLmM6MjExIGxvZ2luLXV0aWxzL2xvZ2luLmM6ODI3CisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo3OSBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQwIG1vdW50L2xvbW91bnQuYzo3NDIKKyM6IG1vdW50L2xvbW91bnQuYzo3NDUKK21zZ2lkICJQYXNzd29yZDogIgorbXNnc3RyICJQYXNzd29ydDogIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjE1IGxvZ2luLXV0aWxzL2Noc2guYzoyMTQKK21zZ2lkICJJbmNvcnJlY3QgcGFzc3dvcmQuIgorbXNnc3RyICJJbmtvcnJla3RlcyBQYXNzd29ydC4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJGaW5nZXItSW5mb3JtYXRpb24gbmljaHQgdmVyw6RuZGVydC5cbiIKKworIyBYWFggLSBNZXJnZSB3aXRoIG5leHQgc3RyaW5ncy4KKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIkF1ZnJ1ZjogJXMgWyAtZiBnYW56ZXJfTmFtZSBdIFsgLW8gQnVyZWF1IF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJbIC1wIG9mZmljZS1waG9uZSBdXG4iCisiXHRbIC1oIGhvbWUtcGhvbmUgXSAiCittc2dzdHIgIiIKKyJbIC1wIELDvHJvLVRlbGVmb24gXVxuIgorIlx0WyAtaCBIZWltLVRlbGVmb24gXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQwMSBsb2dpbi11dGlscy9jaHNoLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJBYm9ydGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiQWJnZWJyb2NoZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmllbGQgaXMgdG9vIGxvbmcuXG4iCittc2dzdHIgIkZlbGQgaXN0IHp1IGxhbmcuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAi4oCeJWPigJwgaXN0IG5pY2h0IGVybGF1YnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiU3RldWVyemVpY2hlbiBzaW5kIG5pY2h0IGVybGF1YnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIkZpbmdlci1JbmZvcm1hdGlvbiAqTklDSFQqIGdlw6RuZGVydC4gU3DDpHRlciBlcm5ldXQgdmVyc3VjaGVuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBjaGFuZ2VkLlxuIgorbXNnc3RyICJGaW5nZXItSW5mb3JtYXRpb24gZ2XDpG5kZXJ0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiDigJ4lc+KAnCBpc3QgbmljaHQgYXV0b3Jpc2llcnQsIGRpZSBTaGVsbCBmw7xyICVzIHp1IMOkbmRlcm5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogTGF1ZmVuZGUgVUlEIHN0aW1tdCBuaWNodCBtaXQgZGVyIFVJRCBkZXMgenUgw6RuZGVybmRlbiBOdXR6ZXJzIMO8YmVyZWluLFxuIgorIlNoZWxsLcOEbmRlcnVuZyBhYmdlbGVobnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogSWhyZSBTaGVsbCBmZWhsdCBpbiAvZXRjL3NoZWxscywgU2hlbGwtw4RuZGVydW5nIGlzdCBmZWhsZ2VzY2hsYWdlblxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiU2hlbGwgZsO8ciAlcyDDpG5kZXJuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJOZXVlIFNoZWxsIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJTaGVsbCBuaWNodCBnZcOkbmRlcnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiU2hlbGwgKk5JQ0hUKiBnZcOkbmRlcnQuIFNww6R0ZXIgbm9jaG1hbCB2ZXJzdWNoZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgY2hhbmdlZC5cbiIKK21zZ3N0ciAiU2hlbGwgZ2XDpG5kZXJ0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIkF1ZnJ1ZjogJXMgWyAtcyBTaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICAgWyBCZW51dHplcm5hbWUgXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiBTaGVsbCBtdXNzIGVpbiB2b2xsZXIgUGZhZG5hbWUgc2Vpbi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczog4oCeJXPigJwgZXhpc3RpZXJ0IG5pY2h0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGV4ZWN1dGFibGUuXG4iCittc2dzdHIgIiVzOiDigJ4lc+KAnCBpc3QgbmljaHQgYXVzZsO8aHJiYXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiVzOiDigLolY+KAuSBpc3QgbmljaHQgZXJsYXVidC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6IFN0ZXVlcnVuZ3N6ZWljaGVuIHNpbmQgbmljaHQgZXJsYXVidC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NSBsb2dpbi11dGlscy9jaHNoLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICJXYXJudW5nOiDigJ4lc+KAnCBpc3QgbmljaHQgaW4gL2V0Yy9zaGVsbHMgYXVmZ2Vmw7xocnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICIlczog4oCeJXPigJwgaXN0IG5pY2h0IGluIC9ldGMvc2hlbGxzIGF1ZmdlZsO8aHJ0XG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVc2UgLWwgb3B0aW9uIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICIlczogQmVudXR6ZW4gU2llIGRpZSBPcHRpb24gLWwgZsO8ciBlaW5lIExpc3RlXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNlICVzIC1sIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICJSdWZlbiBTaWUg4oCeJXMgLWzigJwgYXVmLCB1bSBkaWUgTGlzdGUgenUgc2VoZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICJLZWluZSBiZWthbm50ZW4gU2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9pc2xvY2FsLmM6ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuICVzIGZvciByZWFkaW5nLCBleGl0aW5nLiIKK21zZ3N0ciAiS29ubnRlICVzIG5pY2h0IHp1bSBMZXNlbiDDtmZmbmVuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MTQ4Cittc2dpZCAidXNhZ2U6IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXNlciAuLi5dXG4iCittc2dzdHIgIkF1ZnJ1ZjogbGFzdCBbLSNdIFstZiBkYXRlaV0gWy10IHR0eV0gWy1oIGhvc3RhbWVdIFtudXR6ZXIg4oCmXVxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzAyCittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIiAgbm9jaCBpbW1lciBlaW5nZWxvZ2d0IgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJ3dG1wIGJlZ2lucyAlcyIKK21zZ3N0ciAiIgorIlxuIgorInd0bXAgYmVnaW5udCAlcyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjM4MCBsb2dpbi11dGlscy9sYXN0LmM6Mzk4IGxvZ2luLXV0aWxzL2xhc3QuYzo0NDkKK21zZ2lkICJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIKK21zZ3N0ciAibGFzdDogbWFsbG9jLUZlaGxzY2hsYWcuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0MjUKK21zZ2lkICJsYXN0OiBnZXRob3N0bmFtZSIKK21zZ3N0ciAibGFzdDogZ2V0aG9zdG5hbWUiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImludGVycnVwdGVkICUxMC4xMHMgJTUuNXMgXG4iCittc2dzdHIgIiIKKyJcbiIKKyJ1bnRlcmJyb2NoZW4gJTEwLjEwcyAlNS41cyBcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6IGNhbid0IHJlb3BlbiB0dHk6ICVzIgorbXNnc3RyICJGQVRBTDoga2FubiBUVFkgbmljaHQgZXJuZXV0IMO2ZmZuZW46ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6ICVzIGlzIG5vdCBhIHRlcm1pbmFsIgorbXNnc3RyICIlcyBpc3Qga2VpbiBibG9ja29yaWVudGllcnRlcyBHZXLDpHQiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjM4Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgIkZBVEFMOiB1bmfDvGx0aWdlcyBUVFkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICJsb2dpbjogLWggbnVyIGbDvHIgZGVuIFN1cGVydXNlci5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvZ2luIFstZnBdIFt1c2VybmFtZV1cbiIKK21zZ3N0ciAiQXVmcnVmOiBsb2dpbiBbLWZwXSBbQmVudXR6ZXJuYW1lXVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBpbml0aWFsaXplIFBBTTogJXMiCittc2dzdHIgIktvbm50ZSBQQU0gbmljaHQgaW5pdGlhbGlzaWVyZW46ICVzIgorCisjIHVudGVuIG5vY2htYWwgbWl0IE5MCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgIkFubWVsZHVuZzogIgorCisjIERhcyBnZWh0IGlucyBTeXNsb2cg4oCTIGljaCDDvGJlcnNldHplIGVzIG5pY2h0LiAoTVBpKQorIzogbG9naW4tdXRpbHMvbG9naW4uYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOICVkIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiRkFJTEVEIExPR0lOICVkIEZST00gJXMgRk9SICVzLCAlcyIKKworIyB1bnRlbiBub2NoIHp3ZWkgbWFsIG1pdCBhbmRlcmVuIE5MCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTG9naW4gaW5jb3JyZWN0XG4iCisiXG4iCittc2dzdHIgIiIKKyJMb2dpbiBpbmtvcnJla3RcbiIKKyJcbiIKKworIyBEYXMgZ2VodCBpbnMgU3lzbG9nIOKAkyBpY2ggw7xiZXJzZXR6ZSBlcyBuaWNodC4gKE1QaSkKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRPTyBNQU5ZIExPR0lOIFRSSUVTICglZCkgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJUT08gTUFOWSBMT0dJTiBUUklFUyAoJWQpIEZST00gJXMgRk9SICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NICVzIEZPUiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxvZ2luIGlua29ycmVrdFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlByb2JsZW0gYmVpbSBBdWZzZXR6ZW4gZGVyIFNpdHp1bmcsIEFiYnJ1Y2guXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5VTEwgdXNlciBuYW1lIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIkxlZXJlciBCZW51dHplcm5hbWUgaW4gJXM6JWQuIEFiYnJ1Y2guIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVzZXIgbmFtZSBcIiVzXCIgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgTnV0emVybmFtZSDigJ4lc+KAnCBpbiAlczolZC4gQWJicnVjaC4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzE3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgImxvZ2luOiBTcGVpY2hlciBpc3QgYWxsZSFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICJVbmfDvGx0aWdlciBOdXR6ZXJuYW1lIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb2dpbiByZWZ1c2VkIG9uIHRoaXMgdGVybWluYWwuXG4iCittc2dzdHIgIiVzIExvZ2luIGF1ZiBkaWVzZW0gVGVybWluYWwgdmVyd2VpZ2VydC5cbiIKKworIyBEYXMgZ2VodCBpbnMgU3lzbG9nIOKAkyBpY2ggw7xiZXJzZXR6ZSBlcyBuaWNodC4gKE1QaSkKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgRlJPTSAlcyBPTiBUVFkgJXMiCittc2dzdHIgIkxPR0lOICVzIFJFRlVTRUQgRlJPTSAlcyBPTiBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgT04gVFRZICVzIgorbXNnc3RyICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIkxvZ2luIGlua29ycmVrdFxuIgorCisjIERhcyBnZWh0IGlucyBTeXNsb2cg4oCTIGljaCDDvGJlcnNldHplIGVzIG5pY2h0LiAoTVBpKQorIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRJQUxVUCBBVCAlcyBCWSAlcyIKK21zZ3N0ciAiRElBTFVQIEFUICVzIEJZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIgorbXNnc3RyICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIgorbXNnc3RyICJST09UIExPR0lOIE9OICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIgorbXNnc3RyICJMT0dJTiBPTiAlcyBCWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG5ldyBtYWlsLlxuIgorbXNnc3RyICJTaWUgaGFiZW4gbmV1ZSBFLU1haWwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEzMQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBtYWlsLlxuIgorbXNnc3RyICJTaWUgaGFiZW4gRS1NYWlsLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiCittc2dzdHIgImxvZ2luOiBLYW5uIGtlaW5lbiBuZXVlbiBQcm96ZXNzIGVyemV1Z2VuOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRJT0NTQ1RUWSBmYWlsZWQ6ICVtIgorbXNnc3RyICJUSU9DU0NUVFkgZmVobGdlc2NobGFnZW46ICVtIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjgKK21zZ2lkICJzZXR1aWQoKSBmYWlsZWQiCittc2dzdHIgInNldHVpZCgpIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICJLb25udGUgbmljaHQgaW4gZGFzIFZlcnplaWNobmlzICVzIHdlY2hzZWxuIVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9nZ2luZyBpbiB3aXRoIGhvbWUgPSBcIi9cIi5cbiIKK21zZ3N0ciAiTG9nZ2UgZWluIG1pdCBIZWltYXR2ZXJ6ZWljaG5pcyA9IOKAni/igJwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgImxvZ2luOiBrZWluIFNwZWljaGVyIGbDvHIgU2hlbGxza2lwdC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBrb25udGUgU2hlbGxza2lwdCBuaWNodCBhdXNmw7xocmVuOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBrZWluZSBTaGVsbDogJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJXMgbG9naW46ICIKK21zZ3N0ciAiIgorIlxuIgorIiVzIEFubWVsZHVuZzogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJMb2dpbi1OYW1lIHZpZWwgenUgbGFuZy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAzCittc2dpZCAiTkFNRSB0b28gbG9uZyIKK21zZ3N0ciAiTkFNRSB6dSBsYW5nIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoICctJy5cbiIKK21zZ3N0ciAiQmVudXR6ZXJuYW1lbiBkw7xyZmVuIG5pY2h0IG1pdCBlaW5lbSDigJ4t4oCcIGFuZmFuZ2VuLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgInp1IHZpZWxlIG5hY2t0ZSBaZWlsZW52b3JzY2jDvGJlXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIkVYWkVTU0lWIHZpZWxlIFplaWxlbnZvcnNjaMO8YmUiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJMb2dpbiBuYWNoICVkIFNla3VuZGVuIGFiZ2Vicm9jaGVuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGxvZ2luOiAlLipzICIKK21zZ3N0ciAiTGV0enRlIEFubWVsZHVuZzogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAidm9uICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAiYXVmICUuKnNcbiIKKworIyBEYXMgZ2VodCBpbnMgU3lzbG9nIOKAkyBpY2ggw7xiZXJzZXR6ZSBlcyBuaWNodC4gKE1QaSkKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorbXNnc3RyICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorCisjIERhcyBnZWh0IGlucyBTeXNsb2cg4oCTIGljaCDDvGJlcnNldHplIGVzIG5pY2h0LiAoTVBpKQorIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKKworIyBEYXMgZ2VodCBpbnMgU3lzbG9nIOKAkyBpY2ggw7xiZXJzZXR6ZSBlcyBuaWNodC4gKE1QaSkKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBGUk9NICVzLCAlcyIKK21zZ3N0ciAiJWQgTE9HSU4gRkFJTFVSRVMgRlJPTSAlcywgJXMiCisKKyMgRGFzIGdlaHQgaW5zIFN5c2xvZyDigJMgaWNoIMO8YmVyc2V0emUgZXMgbmljaHQuIChNUGkpCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICIlZCBMT0dJTiBGQUlMVVJFUyBPTiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyB5XG4iCittc2dzdHIgImlzdCB5XG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBuXG4iCittc2dzdHIgImlzIG5cbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgIkF1ZnJ1ZjogbWVzZyBbeSB8IG5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjk5Cittc2dpZCAibmV3Z3JwOiBXaG8gYXJlIHlvdT8iCittc2dzdHIgIm5ld2dycDogV2VyIHNpbmQgU2llPyIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTA3IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyMQorbXNnaWQgIm5ld2dycDogc2V0Z2lkIgorbXNnc3RyICJuZXdncnA6IHNldGdpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIm5ld2dycDogS2VpbmUgc29sY2hlIEdydXBwZS4iCisKKyMgbGliYy5wbzogIktlaW5lIEJlcmVjaHRpZ3VuZyIKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyNQorbXNnaWQgIm5ld2dycDogUGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm5ld2dycDogS2VpbmUgQmVyZWNodGlndW5nIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzIKK21zZ2lkICJuZXdncnA6IHNldHVpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXR1aWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzOAorbXNnaWQgIk5vIHNoZWxsIgorbXNnc3RyICJLZWluZSBTaGVsbCIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCittc2dzdHIgIkF1ZnJ1Zjogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgIlNodXRkb3duLVByb3plc3MgYWJnZWJyb2NoZW4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPbmx5IHJvb3QgY2FuIHNodXQgYSBzeXN0ZW0gZG93bi5cbiIKK21zZ3N0ciAiJXM6IE51ciByb290IGthbm4gZWluIFN5c3RlbSBoZXJ1bnRlcmZhaHJlbi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIkRhcyBtdXNzIG1vcmdlbiBzZWluLCBrw7ZubmVuIFNpZSBuaWNodCBiaXMgZGFubiB3YXJ0ZW4/XG4iCisKKyMgV2hhdCB0aGUgZuKApiAoTVBpKQorIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMTAKK21zZ2lkICJmb3IgbWFpbnRlbmFuY2U7IGJvdW5jZSwgYm91bmNlIgorbXNnc3RyICJ6dXIgU3lzdGVtcGZsZWdlOyBib3VuY2UsIGJvdW5jZSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMzkKK21zZ2lkICJUaGUgc3lzdGVtIGlzIGJlaW5nIHNodXQgZG93biB3aXRoaW4gNSBtaW51dGVzIgorbXNnc3RyICJEYXMgU3lzdGVtIHdpcmQgaW5uZXJoYWxiIGRlciBuw6RjaHN0ZW4gNSBNaW51dGVuIGhlcnVudGVyZ2VmYWhyZW4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzQzCittc2dpZCAiTG9naW4gaXMgdGhlcmVmb3JlIHByb2hpYml0ZWQuIgorbXNnc3RyICJEYXMgRWlubG9nZ2VuIGlzdCBkYWhlciB1bnRlcnNhZ3QuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgIm5ldSBnZXN0YXJ0ZXQgZHVyY2ggJXM6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoYWx0ZWQgYnkgJXM6ICVzIgorbXNnc3RyICJhbmdlaGFsdGVuIGR1cmNoICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzIKK21zZ2lkICIiCisiXG4iCisiV2h5IGFtIEkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVib290PyIKK21zZ3N0ciAiIgorIlxuIgorIldhcnVtIGJpbiBpY2ggbmFjaCBkZW0gTmV1c3RhcnQgbm9jaCBhbSBMZWJlbj8iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDM0Cittc2dpZCAiIgorIlxuIgorIk5vdyB5b3UgY2FuIHR1cm4gb2ZmIHRoZSBwb3dlci4uLiIKK21zZ3N0ciAiIgorIlxuIgorIlNpZSBrw7ZubmVuIGRlbiBSZWNobmVyIGpldHp0IGFic2NoYWx0ZW7igKYiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICJSdWZlIGRpZSBBYnNjaGFsdGZ1bmt0aW9uIGRlcyBLZXJuZWxz4oCmXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHBvd2VyaW5nIG9mZlx0JXNcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gQWJzY2hhbHRlblx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAiRsO8aHJlIFByb2dyYW1tIOKAniVz4oCcIGF1c+KAplxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBleGVjdXRpbmdcdCVzXG4iCittc2dzdHIgIkZlaGxlciBiZWltIEF1c2bDvGhyZW5cdCVzXG4iCisKKyMgWFhYIC0gSGF2ZSB0byBsb29rIGF0IG90aGVyIE9TcyB0cmFuc2xhdGlvbiBmb3IgQnJvYWRjYXN0CisjIE1lc3NhZ2UKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiCittc2dzdHIgIkRSSU5HRU5EOiBSdW5kc2VuZGVuYWNocmljaHQgdm9uICVzOiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgaG91cnMgJWQgbWludXRlcyIKK21zZ3N0ciAiU3lzdGVtIGbDpGhydCBpbiAlZCBTdHVuZGVuIHVuZCAlZCBNaW51dGVuIGhlcnVudGVyIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAiU3lzdGVtIGbDpGhydCBpbiBlaW5lciBTdHVuZGUgdW5kICVkIE1pbnV0ZW4gaGVydW50ZXIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiU3lzdGVtIGbDpGhydCBpbiAlZCBNaW51dGVuIGhlcnVudGVyXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgbWludXRlXG4iCittc2dzdHIgIlN5c3RlbSBmw6RocnQgaW4gZWluZXIgTWludXRlIGhlcnVudGVyXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIgorbXNnc3RyICJTeXN0ZW0gZsOkaHJ0IFNPRk9SVCBoZXJ1bnRlciFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx04oCmICVzIOKAplxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIkthbm4gbmljaHQgaW4gc3dhcG9mZiB2ZXJ6d2VpZ2VuLiBTY2h1bHRlcnp1Y2shIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICIiCisiS2FubiBzd2Fwb2ZmIG5pY2h0IGF1c2bDvGhyZW4sIHZlcnN1Y2hlIGVzIG1hbCBtaXQgdW1vdW50IHp1bSBBdXNow6RuZ2VuLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1OTcKK21zZ2lkICJDYW5ub3QgZm9yayBmb3IgdW1vdW50LCB0cnlpbmcgbWFudWFsbHkuIgorbXNnc3RyICJLYW5uIG5pY2h0IGluIHVtb3VudCB2ZXJ6d2VpZ2VuLCB2ZXJzdWNoZSBlcyB2b24gSGFuZC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICJLYW5uICVzIG5pY2h0IGF1c2bDvGhyZW4sIHZlcnN1Y2hlIHVtb3VudCB6dW0gQXVzaMOkbmdlbi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTAKK21zZ2lkICJDYW5ub3QgZXhlYyB1bW91bnQsIGdpdmluZyB1cCBvbiB1bW91bnQuIgorbXNnc3RyICJLYW5uIHVtb3VudCBuaWNodCBhdXNmw7xocmVuLCBnZWJlIGVzIG1pdCBkZW0gQXVzaMOkbmdlbiBhdWYuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxNQorbXNnaWQgIlVubW91bnRpbmcgYW55IHJlbWFpbmluZyBmaWxlc3lzdGVtcy4uLiIKK21zZ3N0ciAiQXVzaMOkbmdlbiBhbGxlciByZXN0bGljaGVuIERhdGVpc3lzdGVtZeKApiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAic2h1dGRvd246IENvdWxkbid0IHVtb3VudCAlczogJXNcbiIKK21zZ3N0ciAic2h1dGRvd246IGtvbm50ZSAlcyBuaWNodCBhdXNow6RuZ2VuOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICJCb290ZSB6dW0gU2luZ2xlLVVzZXItTW9kdXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICLigJ5leGVj4oCcIGRlciBTaW5nbGUtVXNlci1TaGVsbCBmZWhsZ2VzY2hsYWdlblxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTQwCittc2dpZCAiZm9yayBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAi4oCeZm9ya+KAnCBkZXIgU2luZ2xlLVVzZXItU2hlbGwgZmVobGdlc2NobGFnZW5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICJGZWhsZXIgYmVpbSDDlmZmbmVuIGRlciDigJ5maWZv4oCcXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMTIKK21zZ2lkICJlcnJvciBzZXR0aW5nIGNsb3NlLW9uLWV4ZWMgb24gL2Rldi9pbml0Y3RsIgorbXNnc3RyICJGZWhsZXIgYmVpbSBTZXR6ZW4gdm9uIOKAnmNsb3NlLW9uLWV4ZWPigJwgYXVmIC9kZXYvaW5pdGN0bCIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI1OQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgIkZlaGxlciBiZWltIOKAnmV4ZWPigJwgdm9uIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0g4oCeZm9ya+KAnCB2b24gZmluYWxwcm9nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDUKK21zZ2lkICIiCisiXG4iCisiV3JvbmcgcGFzc3dvcmQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJGYWxzY2hlcyBQYXNzd29ydC5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgIuKAnmxzdGF04oCcIGRlcyBQZmFkZXMgZmVobGdlc2NobGFnZW5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQyNgorbXNnaWQgInN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAi4oCec3RhdOKAnCBkZXMgUGZhZGVzIGZlaGxnZXNjaGxhZ2VuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MzQKK21zZ2lkICJvcGVuIG9mIGRpcmVjdG9yeSBmYWlsZWRcbiIKK21zZ3N0ciAiw5ZmZm5lbiBkZXMgVmVyemVpY2huaXNzZXMgZmVobGdlc2NobGFnZW5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwMQorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwYXduaW5nOiBcIiVzXCIgdG9vIGZhc3Q6IHF1ZW5jaGluZyBlbnRyeVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDkKK21zZ2lkICJmb3JrIGZhaWxlZFxuIgorbXNnc3RyICLigJ5mb3Jr4oCcIGZlaGxnZXNjaGxhZ2VuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NDAgdGV4dC11dGlscy9tb3JlLmM6MTY2MworbXNnaWQgImV4ZWMgZmFpbGVkXG4iCittc2dzdHIgIuKAnmV4ZWPigJwgZmVobGdlc2NobGFnZW5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU2NAorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAiS29ubnRlIGluaXR0YWIgbmljaHQgw7ZmZm5lblxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NjMxCittc2dpZCAibm8gVEVSTSBvciBjYW5ub3Qgc3RhdCB0dHlcbiIKK21zZ3N0ciAia2VpbiBURVJNIG9kZXIga2FubiBuaWNodCBhdWYgVFRZIHp1Z3JlaWZlblxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTM4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBzdG9wcGluZyBzZXJ2aWNlOiBcIiVzXCJcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gU3RvcHBlbiBkZXMgU2VydmljZSDigJ4lc+KAnCIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjk1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICJGZWhsZXIgYmVpbSBTdG9wcGVuIGRlcyBTZXJ2aWNlIOKAniVz4oCcIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJGZWhsZXIgYmVpbSDigJ5leGVj4oCcIHZvbiBmaW5hbHByb2dcbiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6NzUKK21zZ2lkICJ0b28gbWFueSBpb3YncyAoY2hhbmdlIGNvZGUgaW4gd2FsbC90dHltc2cuYykiCittc2dzdHIgInp1IHZpZWxlIElPVnMgKENvZGUgaW4gd2FsbC90dHltc2cuYyDDpG5kZXJuKSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIKK21zZ3N0ciAiw7xiZXJtw6TDn2lnIGxhbmdlcyBaZWlsZW5hcmd1bWVudCIKKworIyBUaGlzIGlzIG9ubHkgdXNlZCB3aGVuIHN0cmVycm9yKGVycm5vKSBpcyBtdWNoIHRvbyBsb25nCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgIkthbm4ga2VpbmVuIG5ldWVuIFByb3plc3MgZXJ6ZXVnZW4gKGZvcmspIgorCisjIFRoaXMgaXMgdXNlZCBub3JtYWx5CisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZm9yazogJXMiCittc2dzdHIgIlByb3plc3NlcnpldWd1bmcgKGZvcmspOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiBCQUQgRVJST1IiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBkaWUgUGFzc3dvcnRkYXRlaSBpc3QgaW4gQmVudXR6dW5nLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgZ3JvdXAgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogZGllIEdydXBwZW5kYXRlaSBpc3QgaW4gQmVudXR6dW5nLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgJXMgZmlsZSBpcyBidXN5ICglcyBwcmVzZW50KVxuIgorbXNnc3RyICIlczogZGllIERhdGVpICVzIGlzdCBpbiBCZW51dHp1bmcgKCVzIGV4aXN0aWVydCkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBrYW5uICVzIG5pY2h0IHZlcmxpbmtlbjogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogS29ubnRlIEtvbnRleHQgZsO8ciAlcyBuaWNodCBiZWtvbW1lbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogS29ubnRlIEtvbnRleHQgZsO8ciAlcyBuaWNodCBzZXR6ZW4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHVubG9jayAlczogJXMgKHlvdXIgY2hhbmdlcyBhcmUgc3RpbGwgaW4gJXMpXG4iCittc2dzdHIgIiVzOiBrYW5uICVzIG5pY2h0IGVudHNwZXJyZW46ICVzIChJaHJlIMOEbmRlcnVuZ2VuIHNpbmQgbm9jaCBpbiAlcylcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGZvcmtcbiIKK21zZ3N0ciAiJXM6IEthbm4ga2VpbmVuIG5ldWVuIFByb3plc3MgZXJ6ZXVnZW4gKGZvcmspXG4iCisKKyMgIm5pY2h0IGdlw6RuZGVydCIKKyMgInd1cmRlIG5pY2h0IGdlw6RuZGVydCIKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHVuY2hhbmdlZFxuIgorbXNnc3RyICIlczogJXMgdW52ZXLDpG5kZXJ0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIgorbXNnc3RyICIlczoga2VpbmUgw4RuZGVydW5nZW4gZHVyY2hnZWbDvGhydFxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IGdyb3VwcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiU2llIGJlbnV0emVuIFNoYWRvdy1HcnVwcGVuIGF1ZiBkaWVzZW0gU3lzdGVtLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IHBhc3N3b3JkcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiU2llIGJlbnV0emVuIFNoYWRvdy1QYXNzd8O2cnRlciBhdWYgZGllc2VtIFN5c3RlbS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCB5b3UgbGlrZSB0byBlZGl0ICVzIG5vdyBbeS9uXT8gIgorbXNnc3RyICJXw7xyZGVuIFNpZSBqZXR6dCBnZXJuZSAlcyBiZWFyYmVpdGVuIFtqL25dPyAiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICJBdWZydWY6ICVzIFtEYXRlaV1cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IEtvbm50ZSBlaW5lIHRlbXBvcsOkcmUgRGF0ZWkgbmljaHQgw7ZmZm5lbi5cbiIKKworIyBYWFgg4oCTIEhhdmUgdG8gbG9vayBhdCBvdGhlciBPU3MgdHJhbnNsYXRpb24gZm9yIEJyb2FkY2FzdAorIyBNZXNzYWdlCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyb2FkY2FzdCBNZXNzYWdlIGZyb20gJXNAJXMiCittc2dzdHIgIlJ1bmRzZW5kZW5hY2hyaWNodCB2b24gJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiB3ZXJkZSBuaWNodCBhdXMgJXMgbGVzZW4g4oCTIGJlbnV0emUgU3RhbmRhcmRlaW5nYWJlLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICIlczogS29ubnRlICVzIG5pY2h0IGxlc2VuLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogS29ubnRlIOKAnnN0YXTigJwgbmljaHQgYXVmIGVpbmUgdGVtcG9yw6RyZSBEYXRlaSBhbndlbmRlbi5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IEtvbm50ZSBlaW5lIHRlbXBvcsOkcmUgRGF0ZWkgbmljaHQgbGVzZW4uXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgImlsbGVnYWxlciBXZXJ0IGbDvHIgSmFocjogYmVudXR6ZW4gU2llIDEtOTk5OSIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjgKK21zZ2lkICJpbGxlZ2FsIG1vbnRoIHZhbHVlOiB1c2UgMS0xMiIKK21zZ3N0ciAiaWxsZWdhbGVyIFdlcnQgZsO8ciBNb25hdDogYmVudXR6ZW4gU2llIDEtMTIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzcyCittc2dpZCAiaWxsZWdhbCB5ZWFyIHZhbHVlOiB1c2UgMS05OTk5IgorbXNnc3RyICJpbGxlZ2FsZXIgV2VydCBmw7xyIEphaHI6IGJlbnV0emVuIFNpZSAxLTk5OTkiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6NDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVkIgorbXNnc3RyICIlcyAlZCIKKworIzogbWlzYy11dGlscy9jYWwuYzo4NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIgorbXNnc3RyICJBdWZydWY6IGNhbCBbLTEzc21qeVZdIFtbTW9uYXRdIEphaHJdXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsrZm9ybWF0XSBbZGF5IG1vbnRoIHllYXJdXG4iCittc2dzdHIgIkF1ZnJ1ZjogJXMgWytGb3JtYXRdIFtUYWcgTW9uYXQgSmFocl1cbiIKKworIyBUaGUgcmVzdCBpcyB1bnRyYW5zbGF0ZWQsIGxlYXZlIGl0IChNUGkpCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjUwCittc2dpZCAiU3QuIFRpYidzIERheSIKK21zZ3N0ciAiU3QuIFRpYuKAmXMgRGF5IgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzo1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAia2FubiAlcyBuaWNodCDDtmZmbmVuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzXG4iCittc2dzdHIgIiVzOiBVbmJla2FubnRlcyBTaWduYWwgJXNcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIHByb2Nlc3MgXCIlc1wiXG4iCittc2dzdHIgIiVzOiBLb25udGUgZGVuIFByb3plc3Mg4oCeJXPigJwgbmljaHQgZmluZGVuLlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzOyB2YWxpZCBzaWduYWxzOlxuIgorbXNnc3RyICIlczogVW5iZWthbm50ZXMgU2lnbmFsICVzOyBnw7xsdGlnZSBTaWduYWxlOlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorbXNnc3RyICJBdWZydWY6ICVzIFsgLXMgU2lnbmFsIHwgLXAgXSBbIC1hIF0gUElEIOKAplxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiICAgICAgICAlcyAtbCBbIFNpZ25hbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiTG9naW4tTmFtZSB2aWVsIHp1IGxhbmcuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgIkJsb2NrZ3LDtsOfZTogJWRcbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb25uZWN0OiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBLb25udGUgJXMgbmljaHQgw7ZmZm5lbjogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBVbmJla2FubnRlciDigJ5GYWNpbGl0eeKAnC1OYW1lOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIHByaW9yaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IFVuYmVrYW5udGVyIFByaW9yaXTDpHRzbmFtZTogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogbG9nZ2VyIFstaXNdIFstZiBmaWxlXSBbLXAgcHJpXSBbLXQgdGFnXSBbLXUgc29ja2V0XSBbIG1lc3NhZ2UgLi4uIF1cbiIKK21zZ3N0ciAiIgorIkF1ZnJ1ZjogbG9nZ2VyIFstaXNdIFstZiBEYXRlaV0gWy1wIFByaV0gWy10IFRhZ10gWy11IFNvY2tldF0gWyBNZWxkdW5nIOKApiBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9vay5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9vayBbLWRmYV0gWy10IGNoYXJdIHN0cmluZyBbZmlsZV1cbiIKK21zZ3N0ciAiQXVmcnVmOiBsb29rIFstZGZhXSBbLXQgRW5kemVpY2hlbl0gWmVpY2hlbmtldHRlIFtEYXRlaV1cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lblxuIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDkgbWlzYy11dGlscy9tY29va2llLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdvdCAlZCBieXRlcyBmcm9tICVzXG4iCittc2dzdHIgIiVkIEJ5dGVzIGF1cyAlcyBnZWxlc2VuXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxNDMgbWlzYy11dGlscy9uYW1laS5jOjE5OCBtaXNjLXV0aWxzL25hbWVpLmM6MjI1CisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjQ1IG1pc2MtdXRpbHMvbmFtZWkuYzoyNTIgbWlzYy11dGlscy9uYW1laS5jOjI5NAorIywgZnV6enkKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAiU3BlaWNoZXIgYXVmZ2VicmF1Y2h0P1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCBzeW1saW5rOiAlcyIKK21zZ3N0ciAiaW9jdGwoKSBrb25udGUgWmVpdCBuaWNodCB2b24gJXMgbGVzZW4uIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjMxIG1pc2MtdXRpbHMvbmFtZWkuYzoyNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgImthbm4gbmljaHQgYXVmIEdlcsOkdCAlcyB6dWdyZWlmZW4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgIkF1ZnJ1ZjogbmFtZWkgWy1teF0gRGF0ZWluYW1lIFtEYXRlaW5hbWUg4oCmXVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkIFBhcnRpdGlvbmVuOlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAteCwgLS1tb3VudHBvaW50cyAgIHNob3cgbW91bnQgcG9pbnQgZGlyZWN0b3JpZXMgd2l0aCBhICdEJ1xuIgorIiAtbSwgLS1tb2RlcyAgICAgICAgIHNob3cgdGhlIG1vZGUgYml0cyBvZiBlYWNoIGZpbGVcbiIKKyIgLW8sIC0tb3duZXJzICAgICAgICBzaG93IG93bmVyIGFuZCBncm91cCBuYW1lIG9mIGVhY2ggZmlsZVxuIgorIiAtbCwgLS1sb25nICAgICAgICAgIHVzZSBhIGxvbmcgbGlzdGluZyBmb3JtYXQgKC1tIC1vIC12KSBcbiIKKyIgLW4sIC0tbm9zeW1saW5rcyAgICBkb24ndCBmb2xsb3cgc3ltbGlua3NcbiIKKyIgLXYsIC0tdmVydGljYWwgICAgICB2ZXJ0aWNhbCBhbGlnbiBvZiBtb2RlcyBhbmQgb3duZXJzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ2MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBuYW1laSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkbDvHIgd2VpdGVyZSBJbmZvcm1hdGlvbmVuIHNpZWhlIHNldGFyY2goOCkuXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzdGF0OiAlcyIKK21zZ3N0ciAia2FubiBrZWluIOKAnnN0YXTigJwgYXVmICVzIGFud2VuZGVuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBleGNlZWRlZCBsaW1pdCBvZiBzeW1saW5rcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiVzOiBTcGVpY2hlciBpc3QgYWxsZSFcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogS29ubnRlICVzIG5pY2h0IGluICVzIHVtYmVuZW5uZW46ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FsbDogJXMgZnJvbSB0byBmaWxlcy4uLlxuIgorbXNnc3RyICJBdWZydWY6ICVzIHZvbiBuYWNoIERhdGVpZW7igKZcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGAlcycgaXMgYSBsaW5rLlxuIgorIlVzZSBgJXMgW29wdGlvbnNdICVzJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LlxuIgorIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIKK21zZ3N0ciAiIgorIldhcm51bmc6IOKAniVz4oCcIGlzdCBlaW5lIFZlcmtuw7xwZnVuZy5cbiIKKyJCZW51dHplbiBTaWUg4oCeJXMgW29wdGlvbmVuXSAlc+KAnCwgd2VubiBTaWUgZXMgdGF0c8OkY2hsaWNoIHN0YXJ0ZW4gd29sbGVuLlxuIgorIlNjcmlwdCBuaWNodCBnZXN0YXJ0ZXQuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAiQXVmcnVmOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbRGF0ZWldXG4iCisKKyMgTm90IHJlYWxseSBuaWNl4oCmCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJTY3JpcHQgd3VyZGUgZ2VzdGFydGV0LCBkaWUgRGF0ZWkgaXN0ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MjQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3IgJWQ6ICVzXG4iCittc2dzdHIgIkZlaGxlciBiZWltIFNjaHJlaWJlbiBhdWYgJXNcbiIKKworIyBUaGUgJXMgbXVzdCBiZSBhdCB0aGUgZW5kLCAnY2F1c2UgaXQgY29udGFpbnMgdGhlIFxuCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiU2NyaXB0IHd1cmRlIGdlc3RhcnRldDogJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3I6ICVzXG4iCittc2dzdHIgIkZlaGxlciBiZWltIFNjaHJlaWJlbiBhdWYgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczogS29ubnRlIGRhcyBHZXLDpHQgZsO8ciAlcyBuaWNodCBmaW5kZW5cbiIKKworIyBUaGUgJXMgbXVzdCBiZSBhdCB0aGUgZW5kLCAnY2F1c2UgaXQgY29udGFpbnMgdGhlIFxuCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2NyaXB0IGRvbmUgb24gJXMiCittc2dzdHIgIiIKKyJcbiIKKyJTY3JpcHQgYmVlbmRldDogJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNjcmlwdCB3dXJkZSBiZWVuZGV0LCBkaWUgRGF0ZWkgaXN0ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW5wdHkgZmFpbGVkXG4iCittc2dzdHIgIuKAnm9wZW5wdHnigJwgaXN0IGZlaGxnZXNjaGxhZ2VuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICJLZWluZSBwdHlzIG1laHIuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJleHBlY3RlZCBhIG51bWJlciwgYnV0IGdvdCAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTYgbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXZpc29yICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMDQKKyMsIGZ1enp5Cittc2dpZCAid3JpdGUgdG8gc3Rkb3V0IGZhaWxlZCIKK21zZ3N0ciAiS29ubnRlICVzIG5pY2h0IMO2ZmZuZW4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBrb25udGUgWmVpdCBuaWNodCB2b24gJXMgbGVzZW4uIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIktvbm50ZSDigJ4lc+KAnCBuaWNodCDDtmZmbmVuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJLb25udGUg4oCeJXPigJwgbmljaHQgw7ZmZm5lbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICJpb2N0bCgpIGtvbm50ZSBaZWl0IG5pY2h0IHZvbiAlcyBsZXNlbi4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ0aW1pbmdzIGZpbGUgJXM6ICVsdTogdW5leHBlY3RlZCBmb3JtYXQiCittc2dzdHIgIiVzOiB1bmVyd2FydGV0ZXMgRGF0ZWllbmRlIGluICVzLURhdGVpXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQXJndW1lbnQgZXJyb3IsIHVzYWdlXG4iCittc2dzdHIgIiVzOiBGZWhsZXIgYmVpIGRlbiBBcmd1bWVudGVuOyBBdWZydWY6XG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRlcm0gdGVybWluYWxfbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtdGVybSBUZXJtaW5hbG5hbWUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiAgWyAtcmVzZXQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiICBbIC1pbml0aWFsaXplIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIgIFsgLWRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc1IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NworIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiAgWyAtc3RhbmRvdXQgWyBBdHRyaWJ1dCBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdG9yZSBdXG4iCittc2dzdHIgIiAgWyAtc3RvcmUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyDigKYgXSBdICAgICAgKHRhYk4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyDigKYgXSBdICAgKHRhYk4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIgIFsgLWJsYW5rIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS1BbnphaGxfS29uc29sZW5dIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwZW5kIFsxLUFuemFobF9Lb25zb2xlbl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1maWxlIGR1bXBmaWxlbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtZmlsZSBEdW1wZGF0ZWluYW1lIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSBGcmVxbnVtbWVyIF1cbiIKKworIyBUaGlzIGlzIG9ubHkgdXNlZCB3aGVuIHN0cmVycm9yKGVycm5vKSBpcyBtdWNoIHRvbyBsb25nCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDYxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgYmxhbmtcbiIKK21zZ3N0ciAiS2FubiBrZWluZW4gbmV1ZW4gUHJvemVzcyBlcnpldWdlbiAoZm9yaykiCisKKyMgVGhpcyBpcyBvbmx5IHVzZWQgd2hlbiBzdHJlcnJvcihlcnJubykgaXMgbXVjaCB0b28gbG9uZworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIHVuYmxhbmtcbiIKK21zZ3N0ciAiS2FubiBrZWluZW4gbmV1ZW4gUHJvemVzcyBlcnpldWdlbiAoZm9yaykiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgIktvbm50ZSAlcyBuaWNodCDDtmZmbmVuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90ICh1bilzZXQgcG93ZXJzYXZlIG1vZGVcbiIKK21zZ3N0ciAia2FubiBTdHJvbXNwYXJtb2R1cyBuaWNodCAoenVyw7xjaylzZXR6ZW5cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEyMiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTMwCisjLCBjLWZvcm1hdAorbXNnaWQgImtsb2djdGwgZXJyb3I6ICVzXG4iCittc2dzdHIgIuKAnmtsb2djdGzigJwgRmVobGVyOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIgorbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hyZWliZW4gZGVzIEJpbGRzY2hpcm1kdW1wc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIktvbm50ZSAlcyBuaWNodCDDtmZmbmVuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICRURVJNIGlzIG5vdCBkZWZpbmVkLlxuIgorbXNnc3RyICIlczogRGllIFVtZ2VidW5nc3ZhcmlhYmxlIFRFUk0gaXN0IG5pY2h0IGdlc2V0enQuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstZF0gWy1wIHBpZGZpbGVdIFstcyBzb2NrZXRwYXRoXSBbLVQgdGltZW91dF1cbiIKK21zZ3N0ciAiQXVmcnVmOiBsYXN0IFstI10gWy1mIGRhdGVpXSBbLXQgdHR5XSBbLWggaG9zdGFtZV0gW251dHplciDigKZdXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgWy1yfHRdIFstbiBudW1dIFstcyBzb2NrZXRwYXRoXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiAgICAgICAgJXMgLWwgWyBTaWduYWwgXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTUyCisjLCBmdXp6eQorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgImNvbDogVW5nw7xsdGlnZXMgQXJndW1lbnQgJXMgZsO8ciBkaWUgT3B0aW9uIOKAni1s4oCcLlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTU5CisjLCBmdXp6eQorbXNnaWQgInNvY2tldCIKK21zZ3N0ciAiTkZTLVNvY2tldCIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE3MAorIywgZnV6enkKK21zZ2lkICJjb25uZWN0IgorbXNnc3RyICJORlMtVmVyYmluZHVuZyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE4OQorIywgZnV6enkKK21zZ2lkICJ3cml0ZSIKK21zZ3N0ciAiU2NocmVpYi4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxOTcKKyMsIGZ1enp5Cittc2dpZCAicmVhZCBjb3VudCIKK21zZ3N0ciAicmVhZCAlY1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjAzCittc2dpZCAiYmFkIHJlc3BvbnNlIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgInV1aWRkIGRhZW1vbiBhbHJlYWR5IHJ1bm5pbmcgYXQgcGlkICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBjcmVhdGUgdW5peCBzdHJlYW0gc29ja2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBiaW5kIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lbjogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbGlzdGVuIG9uIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lbjogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcmVhZGluZyBmcm9tIGNsaWVudCwgbGVuID0gJWRcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gTGVzZW4gdm9uICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlcmF0aW9uICVkLCBpbmNvbWluZyBudW0gPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCByYW5kb20gVVVJRDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQgJXMgYW5kICVkIGZvbGxvd2luZ1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkICVkIFVVSUQnczpcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIG9wZXJhdGlvbiAlZFxuIgorbXNnc3RyICJ1bmfDvGx0aWdlIElEIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDY4IG1pc2MtdXRpbHMvdXVpZGQuYzo0ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJhZCBudW1iZXI6ICVzXG4iCittc2dzdHIgIiVzOiBVbmfDvGx0aWdlciBXZXJ0XG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MjQgbWlzYy11dGlscy91dWlkZC5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2FsbGluZyB1dWlkZCBkYWVtb24gKCVzKTogJXNcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gw4RuZGVybiBkZXIgWnVncmlmZnNyZWNodGUgdm9uICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGFuZCBzdWJzZXF1ZW50ICVkIFVVSUQnc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGlzdCBvZiBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmV4cGVjdGVkIHJlcGx5IGxlbmd0aCBmcm9tIHNlcnZlciAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qga2lsbCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIktpbGxlZCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGdlbi5jOjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1yXSBbLXRdXG4iCittc2dzdHIgIkF1ZnJ1ZjogJXMgW09wdGlvbmVuXSBnZXLDpHQg4oCmXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIFZlcnplaWNobmlzIOKApiAtZiBdIE5hbWXigKZcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKKyMsIGZ1enp5Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAi4oCebWFsbG9j4oCcIHNjaGx1ZyBmZWhsIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE1MAorIywgZnV6enkKK21zZ2lkICJzdHJkdXAgZmFpbGVkIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogcHJvYmluZyBpbml0aWFsaXphdGlvbiBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyJGZWhsZXIgYmVpbSBTY2hsaWXDn2VuIHZvbiBEYXRlaVxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBhcHBlYXJzIHRvIGNvbnRhaW4gJyVzJyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkZlc3RwbGF0dGUgJXMgZW50aMOkbHQga2VpbmUgZ8O8bHRpZ2UgUGFydGl0aW9uc3RhYmVsbGVcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgZm91bmQgYSBtYWdpYyBzdHJpbmcgYXQgb2Zmc2V0IDB4JWp4IC0gaWdub3JlLiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiJXM6IGZlaGxzY2hsYWdlbmVzIMOWZmZuZW4gdm9uOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGZhaWxlZCIKK21zZ3N0ciAi4oCeb3BlbnB0eeKAnCBpc3QgZmVobGdlc2NobGFnZW5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiV6ZCBieXRlcyBbIgorbXNnc3RyICJCeXRlcyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiXSBlcmFzZWQgYXQgb2Zmc2V0IDB4JWp4ICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI5MiBtb3VudC9zd2Fwb24uYzoxOTggbW91bnQvc3dhcG9uLmM6MjY2CisjOiBtb3VudC9zd2Fwb24uYzo0MTEgbW91bnQvc3dhcG9uLmM6NTcwIG1vdW50L3N3YXBvbi5jOjc3MgorIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICLigJ5vcGVucHR54oCcIGlzdCBmZWhsZ2VzY2hsYWdlblxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxNSBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgJyVzJyB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlVuZ8O8bHRpZ2VyIFdlcnQgenUgc2V0emVuOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGRldmljZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICJBdWZydWY6ICVzIFtPcHRpb25lbl0gZ2Vyw6R0IOKAplxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1hLCAtLWFsbCAgICAgICAgICAgd2lwZSBhbGwgbWFnaWMgc3RyaW5ncyAoQkUgQ0FSRUZVTCEpXG4iCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLW5vLWFjdCAgICAgICAgZXZlcnl0aGluZyB0byBiZSBkb25lIGV4Y2VwdCBmb3IgdGhlIHdyaXRlKCkgY2FsbFxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCB0byBlcmFzZSwgaW4gYnl0ZXNcbiIKKyIgLXAsIC0tcGFyc2FibGUgICAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgd2lwZWZzKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiRsO8ciB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4gc2llaGUgc2V0YXJjaCg4KS5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozODcKK21zZ2lkICItLW9mZnNldCBhbmQgLS1hbGwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZToga2FubiBkZW4gTmFtZW4gSWhyZXMgVFRZcyBuaWNodCBmZXN0c3RlbGxlblxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiB5b3UgaGF2ZSB3cml0ZSBwZXJtaXNzaW9uIHR1cm5lZCBvZmYuXG4iCittc2dzdHIgIndyaXRlOiBJaHIgU2NocmVpYnp1Z3JpZmYgaXN0IGFiZ2VzY2hhbHRldC5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIGlzdCBuaWNodCBhdWYgJXMgZWluZ2Vsb2dndC5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyBoYXQgQmVuYWNocmljaHRpZ3VuZyBhdWYgJXMgZGVha3RpdmllcnRcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICJBdWZydWY6IHdyaXRlIE51dHplciBbVFRZXVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlOiAlcyBpc3QgbmljaHQgZWluZ2Vsb2dndFxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGhhdCBCZW5hY2hyaWNodGlndW5nIGRlYWt0aXZpZXJ0XG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIGxvZ2dlZCBpbiBtb3JlIHRoYW4gb25jZTsgd3JpdGluZyB0byAlc1xuIgorbXNnc3RyICJ3cml0ZTogJXMgaXN0IG1laHIgYWxzIGVpbm1hbCBlaW5nZWxvZ2d0OyBzY2hyZWliZSBhdWYgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIk5hY2hyaWNodCB2b24gJXNAJXMgKGFscyAlcykgYXVmICVzIHVtICVzIOKApiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICJOYWNocmljaHQgdm9uICVzQCVzIGF1ZiAlcyB1bSAlcyDigKYiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGVycm9yIHJlYWRpbmcgJXM6ICVzIgorbXNnc3RyICJXYXJudW5nOiBGZWhsZXIgYmVpbSBMZXNlbiB2b24gJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAiV2FybnVuZzogS29ubnRlICVzIG5pY2h0IMO2ZmZuZW46ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY291bGQgbm90IG9wZW4gJXMgLSB1c2luZyAlcyBpbnN0ZWFkXG4iCittc2dzdHIgIm1vdW50OiBLb25udGUgJXMgbmljaHQgw7ZmZm5lbiDigJMgYmVudXR6ZSAlcyBzdGF0dGRlc3NlblxuIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisiS29ubnRlIGRpZSBMb2NrLURhdGVpICVzIG5pY2h0IGFubGVnZW46ICVzIChiZW51dHplbiBTaWUgZGllIE9wdGlvbiAtbiwgdW0gIgorImRpZXMgenUgdW1nZWhlbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisiS29ubnRlIGtlaW5lbiBMaW5rIGbDvHIgZGllIExvY2stRGF0ZWkgJXMgYW5sZWdlbjogJXMgKGJlbnV0emVuIFNpZSBkaWUgIgorIk9wdGlvbiAtbiwgdW0gZGllcyB6dSB1bWdlaGVuKSIKKworIzogbW91bnQvZnN0YWIuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyJLb25udGUgZGllIExvY2stRGF0ZWkgJXMgbmljaHQgw7ZmZm5lbjogJXMgKGJlbnV0emVuIFNpZSBkaWUgT3B0aW9uIC1uLCB1bSAiCisiZGllcyB6dSB1bWdlaGVuKSIKKworIyBUaGlzIG9uZSBzaG91bGQgYmUgbWVyZ2VkIHdpdGggdGhlIG5leHQgb25lIGJ5IHVzaW5nCisjIGVycm9yKCkgaW5zdGVhZCBvZiBwcmludGYoKQorIzogbW91bnQvZnN0YWIuYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIktvbm50ZSBkaWUgTG9jay1EYXRlaSAlcyBuaWNodCBzcGVycmVuOiAlc1xuIgorCisjIHNwZXJyZW4KKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAiS29ubnRlIGRpZSBMb2NrLURhdGVpICVzIG5pY2h0IHNwZXJyZW46ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MworbXNnaWQgInRpbWVkIG91dCIKK21zZ3N0ciAiWmVpdMO8YmVyc2NocmVpdHVuZyIKKworIzogbW91bnQvZnN0YWIuYzo2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbGluayAlc1xuIgorIlBlcmhhcHMgdGhlcmUgaXMgYSBzdGFsZSBsb2NrIGZpbGU/XG4iCittc2dzdHIgIiIKKyJLb25udGUgVmVya27DvHBmdW5nICVzIG5pY2h0IGFubGVnZW5cbiIKKyJWaWVsbGVpY2h0IGdpYnQgZXMgbm9jaCBlaW5lIGFiZ2VsYXVmZW5lIExvY2stRGF0ZWk/XG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lbiAoJXMpIOKAkyBtdGFiIG5pY2h0IGFrdHVhbGlzaWVydCIKKworIzogbW91bnQvZnN0YWIuYzo4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIkZlaGxlciBiZWltIFNjaHJlaWJlbiB2b24gJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjg3NAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlc1xuIgorbXNnc3RyICJGZWhsZXIgYmVpbSDDhG5kZXJuIGRlciBadWdyaWZmc3JlY2h0ZSB2b24gJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBvd25lciBvZiAlczogJXNcbiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gw4RuZGVybiBkZXIgWnVncmlmZnNyZWNodGUgdm9uICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg5OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCByZW5hbWUgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgIktvbm50ZSAlcyBuaWNodCBpbiAlcyB1bWJlbmVubmVuOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6MzYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBzZXQgY2FwYWNpdHkgb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBLb25udGUga2VpbmUgSW5mb3JtYXRpb25lbiDDvGJlciBkYXMgR2Vyw6R0ICVzIGVyaGFsdGVuOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlPFBSSXU2ND4iCittc2dzdHIgIiwgT2Zmc2V0ICVkIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIsIHNpemVsaW1pdCAlPFBSSXU2ND4iCittc2dzdHIgIiwgR3LDtsOfZW5iZXNjaHLDpG5rdW5nICVsbGQiCisKKyMgVmVyc2NobMO8c3NlbHVuZ3N0eXAKKyM6IG1vdW50L2xvbW91bnQuYzozOTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiAlcyAodHlwZSAlPFBSSXUzMj4pIgorbXNnc3RyICIsIFZlcnNjaGzDvHNzZWx1bmdzbWV0aG9kZSAlcyAoVHlwICVkKSIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMAorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlZCIKK21zZ3N0ciAiLCBPZmZzZXQgJWQiCisKKyMgVmVyc2NobMO8c3NlbHVuZ3N0eXAKKyM6IG1vdW50L2xvbW91bnQuYzo0MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiLCBWZXJzY2hsw7xzc2VsdW5nc3R5cCAlZFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGdldCBpbmZvIG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogS29ubnRlIGtlaW5lIEluZm9ybWF0aW9uZW4gw7xiZXIgZGFzIEdlcsOkdCAlcyBlcmhhbHRlbjogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogS29ubnRlIGRhcyBHZXLDpHQgJXMgbmljaHQgw7ZmZm5lbjogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ0OCBtb3VudC9sb21vdW50LmM6NDgwIG1vdW50L2xvbW91bnQuYzo1NDIKKyM6IG1vdW50L2xvbW91bnQuYzo1ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iCittc2dzdHIgIiVzOiBOdXR6ZXIg4oCeJXPigJwgZXhpc3RpZXJ0IG5pY2h0LlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiVzOiBLZWluZSBadWdyaWZmc3JlY2h0ZSwgdW0gYXVmIC9kZXYvbG9vcCMgenUgc2NoYXVlbiIKKworIzogbW91bnQvbG9tb3VudC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGZyZWUgbG9vcCBkZXZpY2UiCittc2dzdHIgIiVzOiBLb25udGUga2VpbiBmcmVpZXMg4oCebG9vcOKAnC1HZXLDpHQgZmluZGVuIgorCisjOiBtb3VudC9sb21vdW50LmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZT8gKElmIHNvLCByZWNvbXBpbGUgb3IgYG1vZHByb2JlIGxvb3AnLikiCittc2dzdHIgIiIKKyIlczogS29ubnRlIGtlaW4g4oCebG9vcOKAnC1HZXLDpHQgZmluZGVuLiBWaWVsbGVpY2h0IGtlbm50IGRpZXNlciBLZXJuZWxcbiIKKyIgICAgICAga2VpbiDigJ5sb29w4oCcLUdlcsOkdD8gKFdlbm4gZGllcyBkZXIgRmFsbCBpc3QsIGRhbm4gc29sbHRlbiBTaWUgZGVuXG4iCisiICAgICAgIEtlcm5lbCBuZXUga29tcGlsaWVyZW4gb2RlciDigJ5tb2Rwcm9iZSBsb29w4oCcIGF1c2bDvGhyZW4uKSIKKworIzogbW91bnQvbG9tb3VudC5jOjYzNgorIywgZnV6enkKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoaWxlIHJlYWRpbmcgcGFzc3BocmFzZSIKK21zZ3N0ciAiU3BlaWNoZXIgaXN0IGFsbGUgYmVpbSBWZXJncsO2w59lcm4gZWluZXMgUHVmZmVycy5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiU2VrdG9yICVkIHdpcmQgYmVyZWl0cyBiZW51dHp0XG4iCisKKyMgVGhhdCBzb3VuZHMgc29tZWhvdyBkdW1iLgorIzogbW91bnQvbG9tb3VudC5jOjY5NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICJtb3VudDogJXMlcyBpc3Qgc2NocmVpYmdlc2Now7x0enQsIHdpcmQgZWluZ2Vow6RuZ3QgaW0gTnVyLUxlc2UtTW9kdXMiCisKKyM6IG1vdW50L2xvbW91bnQuYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbG9jayBpbnRvIG1lbW9yeSwgZXhpdGluZy5cbiIKK21zZ3N0ciAiS29ubnRlIGtlaW4gTG9jayBpbSBTcGVpY2hlciBiZWtvbW1lbiwgYmVlbmRlLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVsbHUpOiBFcmZvbGdcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgzNgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWxfbG9vcCglcyk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAiZGVsX2xvb3AoJXMpOiBFcmZvbGdcbiIKKworIyB0aGlzIGlzIGFjdHVhbGx5IGFuIG9wZW4oKeKApgorIzogbW91bnQvbG9tb3VudC5jOjg0MAorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBkZWxldGUgZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBLb25udGUgZGFzIEdlcsOkdCAlcyBuaWNodCBsw7ZzY2hlbjogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIG1vdW50IHdhcyBjb21waWxlZCB3aXRob3V0IGxvb3Agc3VwcG9ydC4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiIgorIkRpZXNlcyBtb3VudCB3dXJkZSBvaG5lIExvb3AtVW50ZXJzdMO8dHp1bmcgw7xiZXJzZXR6dC4gQml0dGUgbmV1IMO8YmVyc2V0emVuLlxuIgorCisjIFNldHVwCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorIkF1ZnJ1ZjpcbiIKKyIgIEluZm9ybWF0aW9uZW4gYW56ZWlnZW46XG4iCisiICAgICVzIGxvb3AtR2Vyw6R0XG4iCisiICBMw7ZzY2hlbjpcbiIKKyIgICAgJXMgLWQgbG9vcC1HZXLDpHRcbiIKKyIgIFVuYmVudXR6dGUgZmluZGVuOlxuIgorIiAgICAlcyAtZlxuIgorIiAgU2V0dXA6XG4iCisiICAgICVzIFsgLWUgVmVyc2NobMO8c3NlbHVuZyBdIFsgLW8gT2Zmc2V0IF0gey1mfGxvb3AtR2Vyw6R0fSBEYXRlaVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwMzQgbW91bnQvbG9tb3VudC5jOjEwNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkxvb3AgZGV2aWNlIGlzICVzXG4iCittc2dzdHIgImxvb3A6IEtvbm50ZSBkYXMgR2Vyw6R0ICVzIG5pY2h0IMO2ZmZuZW46ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDYxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogbG9vcD0lcyBnZXN0b2hsZW4g4oCmdmVyc3VjaGUgZXMgZXJuZXV0XG4iCisKKyMgWFhYIC0gSSBkaWQgaGF2ZSBhIGJldHRlciBvbmUgZm9yIGJ1c3kKKyMgbGliYy5wbzoKKyMgIkRldmljZSBvciByZXNvdXJjZSBidXN5IgorIyAiRGFzIEdlcsOkdCBvZGVyIGRpZSBSZXNzb3VyY2UgaXN0IGJlbGVndCIKKyM6IG1vdW50L2xvbW91bnQuYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBEYXMgR2Vyw6R0IHdpcmQgbW9tZW50YW4gbm9jaCBiZW51dHp0IgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKyJadXIgw5xiZXJzZXR6dW5nc3plaXQgd2FyIGtlaW5lIExvb3AtVW50ZXJzdMO8dHp1bmcgdmVyZsO8Z2Jhci4gQml0dGUgbmV1ICIKKyLDvGJlcnNldHplbi5cbiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHRyYW5zbGF0ZWQgJXMgJyVzJyB0byAnJXMnXG4iCittc2dzdHIgIm1vdW50OiDDvGJlcnNldHp0ZSAlcyDigJ4lc+KAnCBpbiDigJ4lc+KAnFxuIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IExhdXQgbXRhYiBpc3QgJXMgc2Nob24gYXVmICVzIGVpbmdlaMOkbmd0IgorCisjOiBtb3VudC9tb3VudC5jOjU0MAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIG1vdW50ZWQgb24gJXMiCittc2dzdHIgIm1vdW50OiBMYXV0IG10YWIgaXN0ICVzIGF1ZiAlcyBlaW5nZWjDpG5ndCIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDogS29ubnRlICVzIG5pY2h0IHp1bSBTY2hyZWliZW4gw7ZmZm5lbjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTgxIG1vdW50L21vdW50LmM6MTE5OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIm1vdW50OiBGZWhsZXIgYmVpbSBTY2hyZWliZW4gdm9uICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzIgorbXNnc3RyICJtb3VudDogRmVobGVyIGJlaW0gw4RuZGVybiBkZXIgWnVncmlmZnNyZWNodGUgdm9uICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IEthbm4gZGllIEdlc2Nod2luZGlna2VpdCBuaWNodCBzZXR6ZW46ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiBLYW5uIGRpZSBHZXNjaHdpbmRpZ2tlaXQgbmljaHQgc2V0emVuOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBLYW5uIGtlaW5lbiBuZXVlbiBQcm96ZXNzIGVyemV1Z2VuOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIlZlcnN1Y2hlICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIm1vdW50OiBFcyB3dXJkZSBrZWluIERhdGVpc3lzdGVtdHlwIGbDvHIgJXMgYW5nZWdlYmVuXG4iCisKKyMgTWF5YmU6CisjICIgICAgICAgRXMgd2VyZGVuIGFsbGUgRGF0ZWlzeXN0ZW10eXBlbiBhdXNwcm9iaWVydCwgZGllXG4iCisjICIgICAgICAgaW4gJXMgb2RlciAlcyBhdWZnZWxpc3RldCBzaW5kXG4iCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiIKKyIgICAgICAgV2VyZGUgYWxsZSBEYXRlaXN5c3RlbXR5cGVuIHByb2JpZXJlbiwgZGllIGluICVzIG9kZXJcbiIKKyIgICAgICAgJXMgYXVmZ2VsaXN0ZXQgc2luZFxuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgYW5kIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyBzd2Fwc3BhY2VcbiIKK21zZ3N0ciAiICAgICAgIHVuZCBlcyBzaWVodCBzbyBhdXMsIGFscyBzZWkgZGllcyBTd2FwLUJlcmVpY2hcbiIKKworIyBNYXliZTogIiAgICAgICBFcyB3aXJkIGRlciBUeXAgJXMgYXVzcHJvYmllcnRcbiIKKyMgb3IgICA6IOKApiAicHJvYmllcmVuIgorIzogbW91bnQvbW91bnQuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgdHlwZSAlc1xuIgorbXNnc3RyICIgICAgICAgV2VyZGUgZGVuIFR5cCAlcyB2ZXJzdWNoZW5cbiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiJXMgc2llaHQgd2llIGVpbiBTd2FwLUJlcmVpY2ggYXVzIOKAkyBuaWNodCBlaW5nZWjDpG5ndCIKKworIzogbW91bnQvbW91bnQuYzoxMDAyCittc2dpZCAibW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudCBpc3QgZmVobGdlc2NobGFnZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTAwNAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBtb3VudCAlcyBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IG51ciDigJ5yb2904oCcIGthbm4gJXMgYXVmICVzIGVpbmjDpG5nZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTA3NAorbXNnaWQgIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiBkYXMg4oCebG9vcOKAnC1HZXLDpHQgd3VyZGUgendlaW1hbCBhbmdlZ2ViZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTA3OQorbXNnaWQgIm1vdW50OiB0eXBlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IGRlciBUeXAgd3VyZGUgZG9wcGVsdCBhbmdlZ2ViZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2tpcHBpbmcgdGhlIHNldHVwIG9mIGEgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAibW91bnQ6IMO8YmVyc3ByaW5nZSBBdWZzZXR6ZW4gZGVzIOKAnmxvb3DigJwtR2Vyw6R0c1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMgYXMgbG9vcCIKK21zZ3N0ciAibW91bnQ6IExhdXQgbXRhYiBpc3QgJXMgc2Nob24gYXVmICVzIGVpbmdlaMOkbmd0IgorCisjOiBtb3VudC9tb3VudC5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGdvaW5nIHRvIHVzZSB0aGUgbG9vcCBkZXZpY2UgJXNcbiIKK21zZ3N0ciAibW91bnQ6IHdlcmRlIGRhcyDigJ5sb29w4oCcLUdlcsOkdCAlcyB2ZXJ3ZW5kZW5cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzdG9sZW4gbG9vcD0lcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAibW91bnQ6IGxvb3A9JXMgZ2VzdG9obGVuIOKApnZlcnN1Y2hlIGVzIGVybmV1dFxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIgorbXNnc3RyICJtb3VudDogbG9vcD0lcyBnZXN0b2hsZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZmFpbGVkIHNldHRpbmcgdXAgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAibW91bnQ6IEF1ZnNldHplbiBkZXMg4oCebG9vcOKAnC1HZXLDpHRzIGZlaGxnZXNjaGxhZ2VuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE0MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2V0dXAgbG9vcCBkZXZpY2Ugc3VjY2Vzc2Z1bGx5XG4iCittc2dzdHIgIm1vdW50OiDigJ5sb29w4oCcLUdlcsOkdCBlcmZvbGdyZWljaCBhdWZnZXNldHp0XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gJXMgZm91bmQgLSBjcmVhdGluZyBpdC4uXG4iCittc2dzdHIgIm1vdW50OiAlcyBuaWNodCBnZWZ1bmRlbiDigJMgRXJ6ZXVnZSBzaWXigKZcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IEtvbm50ZSAlcyBuaWNodCDDtmZmbmVuOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMjE1Cittc2dpZCAibW91bnQ6IGFyZ3VtZW50IHRvIC1wIG9yIC0tcGFzcy1mZCBtdXN0IGJlIGEgbnVtYmVyIgorbXNnc3RyICJtb3VudDogQXJndW1lbnQgZsO8ciAtcCBvZGVyIC0tcGFzcy1mZCBtdXNzIGVpbmUgWmFobCBzZWluIgorCisjOiBtb3VudC9tb3VudC5jOjEyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBvcGVuICVzIGZvciBzZXR0aW5nIHNwZWVkIgorbXNnc3RyICJtb3VudDogS2FubiAlcyBuaWNodCB6dW0gU2V0emVuIGRlciBHZXNjaHdpbmRpZ2tlaXQgw7ZmZm5lbiIKKworIzogbW91bnQvbW91bnQuYzoxMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHNwZWVkOiAlcyIKK21zZ3N0ciAibW91bnQ6IEthbm4gZGllIEdlc2Nod2luZGlna2VpdCBuaWNodCBzZXR6ZW46ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IExhdXQgbXRhYiBpc3QgJXMgc2Nob24gYXVmICVzIGVpbmdlaMOkbmd0XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTM4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHdhcm5pbmc6ICVzIHNlZW1zIHRvIGJlIG1vdW50ZWQgcmVhZC13cml0ZS5cbiIKK21zZ3N0ciAiIgorInVtb3VudDogJXMgd2lyZCBtb21lbnRhbiBub2NoIGJlbnV0enQg4oCTIGltIE51ci1MZXNlLU1vZHVzIHdpZWRlcmVpbmdlaMOkbmd0XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQxMworbXNnaWQgIiIKKyJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsIGFuZCBub25lIHdhcyBzcGVjaWZpZWQiCittc2dzdHIgIiIKKyJtb3VudDoga29ubnRlIERhdGVpc3lzdGVtdHlwIG5pY2h0IGZlc3RzdGVsbGVuLCB1bmQgZXMgd3VyZGUga2VpbmVyIGFuZ2VnZWJlbiIKKworIzogbW91bnQvbW91bnQuYzoxNDE2Cittc2dpZCAibW91bnQ6IHlvdSBtdXN0IHNwZWNpZnkgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAibW91bnQ6IFNpZSBtw7xzc2VuIGRlbiBEYXRlaXN5c3RlbXR5cCBhbmdlYmVuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudDogRWluaMOkbmdlbiBpc3QgZmVobGdlc2NobGFnZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTQyNSBtb3VudC9tb3VudC5jOjE0NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIG5vdCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAibW91bnQ6IEVpbmjDpG5nZXB1bmt0ICVzIGlzdCBrZWluIFZlcnplaWNobmlzIgorCisjICJtb3VudDogWnVncmlmZiB2ZXJ3ZWlnZXJ0IgorIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJtb3VudDoga2VpbmUgQmVyZWNodGlndW5nIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjkKK21zZ2lkICJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IgorbXNnc3RyICJtb3VudDogbXVzcyBTdXBlcnVzZXIgc2VpbiwgdW0gbW91bnQgenUgdmVyd2VuZGVuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MzMgbW91bnQvbW91bnQuYzoxNDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgd2lyZCBnZXJhZGUgYmVudXR6dCIKKworIzogbW91bnQvbW91bnQuYzoxNDM5Cittc2dpZCAibW91bnQ6IHByb2MgYWxyZWFkeSBtb3VudGVkIgorbXNnc3RyICJtb3VudDogcHJvYyBpc3QgYmVyZWl0cyBlaW5nZWjDpG5ndCIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIGlzdCBiZXJlaXRzIGVpbmdlaMOkbmd0IG9kZXIgJXMgd2lyZCBnZXJhZGUgYmVudXR6dCIKKworIzogbW91bnQvbW91bnQuYzoxNDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6IEVpbmjDpG5nZXB1bmt0ICVzIGV4aXN0aWVydCBuaWNodCIKKworIzogbW91bnQvbW91bnQuYzoxNDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBhIHN5bWJvbGljIGxpbmsgdG8gbm93aGVyZSIKK21zZ3N0ciAibW91bnQ6IEVpbmjDpG5nZXB1bmt0ICVzIGlzdCBlaW5lIHN5bWJvbGlzY2hlIFZlcmtuw7xwZnVuZyBhdWYgbmlyZ2VuZHdvIgorCisjOiBtb3VudC9tb3VudC5jOjE0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogR2Vyw6R0ZWRhdGVpICVzIGV4aXN0aWVydCBuaWNodCIKKworIzogbW91bnQvbW91bnQuYzoxNDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3RcbiIKKyIgICAgICAgKGEgcGF0aCBwcmVmaXggaXMgbm90IGEgZGlyZWN0b3J5KVxuIgorbXNnc3RyICIiCisibW91bnQ6IFNwZXppYWxnZXLDpHQgJXMgZXhpc3RpZXJ0IG5pY2h0XG4iCisiICAgICAgIChlaW4gUGZhZHByw6RmaXggaXN0IGtlaW4gVmVyemVpY2huaXMpXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQ3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgbm90IG1vdW50ZWQgYWxyZWFkeSwgb3IgYmFkIG9wdGlvbiIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyBpc3Qgbm9jaCBuaWNodCBlaW5nZWjDpG5ndCBvZGVyIGVzIHd1cmRlblxuIgorIiAgICAgICB1bmfDvGx0aWdlIE9wdGlvbmVuIGFuZ2VnZWJlbiIKKworIzogbW91bnQvbW91bnQuYzoxNDgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorIiAgICAgICBtaXNzaW5nIGNvZGVwYWdlIG9yIGhlbHBlciBwcm9ncmFtLCBvciBvdGhlciBlcnJvciIKK21zZ3N0ciAiIgorIm1vdW50OiBGYWxzY2hlciBEYXRlaXN5c3RlbXR5cCwgdW5nw7xsdGlnZSBPcHRpb25lbiwgZGVyXG4iCisiICAgICAgIFN1cGVyYmxvY2sgdm9uICVzIGlzdCBiZXNjaMOkZGlndCwgZmVobGVuZGVcbiIKKyIgICAgICAgS29kaWVydW5nc3NlaXRlIG9kZXIgZWluIGFuZGVyZXIgRmVobGVyIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKyIgICAgICAgKElzdCBkaWVzIHZpZWxsZWljaHQgZGFzIElERS1HZXLDpHQsIGFuIHdlbGNoZW0gU2llIGVpZ2VudGxpY2hcbiIKKyIgICAgICAgaWRlLXNjc2kgYmVudXR6ZW4sIHNvIGRhc3Mgc3IwIG9kZXIgc2RhIG9kZXIgc28gZ2VicmF1Y2h0IHdpcmQ/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTAxCittc2dpZCAiIgorIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorIiAgICAgICBpbnN0ZWFkIG9mIHNvbWUgbG9naWNhbCBwYXJ0aXRpb24gaW5zaWRlPykiCittc2dzdHIgIiIKKyIgICAgICAgKFZlcnN1Y2hlbiBTaWUgbmljaHQgZWluZSBlcndlaXRlcnRlIFBhcnRpdGlvbiBlaW56dWjDpG5nZW5cbiIKKyIgICAgICAgc3RhdHQgZWluZXIgZGVyIGxvZ2lzY2hlbiBQYXJ0aXRpb25lbiBkYXJpbj8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDgKK21zZ2lkICIiCisiICAgICAgIEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gaXMgZm91bmQgaW4gc3lzbG9nIC0gdHJ5XG4iCisiICAgICAgIGRtZXNnIHwgdGFpbCAgb3Igc29cbiIKK21zZ3N0ciAiIgorIiAgICAgICBNYW5jaG1hbCBsaWVmZXJ0IGRhcyBTeXNsb2cgd2VydHZvbGxlIEluZm9ybWF0aW9uZW4g4oCTIHZlcnN1Y2hlblxuIgorIiAgICAgICBTaWUgIGRtZXNnIHwgdGFpbCAgb2RlciBzb1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICJFaW5ow6RuZ2V0YWJlbGxlIGlzdCB2b2xsIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiBjYW4ndCByZWFkIHN1cGVyYmxvY2siCittc2dzdHIgIm1vdW50OiAlczogS29ubnRlIGRlbiBTdXBlcmJsb2NrIG5pY2h0IGxlc2VuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlczogdW5iZWthbm50ZXMgR2Vyw6R0IgorCisjOiBtb3VudC9tb3VudC5jOjE1MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHVua25vd24gZmlsZXN5c3RlbSB0eXBlICclcyciCittc2dzdHIgIm1vdW50OiB1bmJla2FubnRlciBEYXRlaXN5c3RlbXR5cCDigJ4lc+KAnCIKKworIzogbW91bnQvbW91bnQuYzoxNTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBwcm9iYWJseSB5b3UgbWVhbnQgJXMiCittc2dzdHIgIm1vdW50OiBXYWhyc2NoZWlubGljaCBtZWludGVuIHNpZSDigJ4lc+KAnCIKKworIzogbW91bnQvbW91bnQuYzoxNTQyCittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAnaXNvOTY2MCc/IgorbXNnc3RyICJtb3VudDogVmllbGxlaWNodCBtZWludGVuIFNpZSDigJ5pc285NjYw4oCcPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDogVmllbGxlaWNodCBtZWludGVuIFNpZSDigJ52ZmF04oCcPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBoYXMgd3JvbmcgZGV2aWNlIG51bWJlciBvciBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKyJtb3VudDogJXMgaGF0IGVpbmUgZmFsc2NoZSBHZXLDpHRlLU51bW1lciBvZGVyIGRlclxuIgorIiAgICAgICBEYXRlaXN5c3RlbXR5cCAlcyB3aXJkIG5pY2h0IHVudGVyc3TDvHR6dCIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAibW91bnQ6ICVzIGlzdCBrZWluIGJsb2Nrb3JpZW50aWVydGVzIEdlcsOkdCB1bmQg4oCec3RhdOKAnCBzY2hsw6RndCBmZWhsPyIKKworIzogbW91bnQvbW91bnQuYzoxNTU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHRoZSBrZXJuZWwgZG9lcyBub3QgcmVjb2duaXplICVzIGFzIGEgYmxvY2sgZGV2aWNlXG4iCisiICAgICAgIChtYXliZSBgbW9kcHJvYmUgZHJpdmVyJz8pIgorbXNnc3RyICIiCisibW91bnQ6IERhcyBLZXJuZWwgZXJrZW5udCAlcyBuaWNodCBhbHMgYmxvY2tvcmllbnRpZXJ0ZXNcbiIKKyIgICAgICAgR2Vyw6R0IChWaWVsbGVpY2h0IGhpbGZ0IOKAnmluc21vZCBUcmVpYmVy4oCcPykiCisKKyMgInZlcnN1Y2hlbiIKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIiIKKyJtb3VudDogJXMgaXN0IGtlaW4gYmxvY2tvcmllbnRpZXJ0ZXMgR2Vyw6R0XG4iCisiICAgICAgIChWaWVsbGVpY2h0IHByb2JpZXJlbiBTaWUg4oCeLW8gbG9vcOKAnD8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIGlzdCBrZWluIGJsb2Nrb3JpZW50aWVydGVzIEdlcsOkdCIKKworIzogbW91bnQvbW91bnQuYzoxNTY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSB2YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlcyBpc3Qga2VpbiBnw7xsdGlnZXMgYmxvY2tvcmllbnRpZXJ0ZXMgR2Vyw6R0IgorCisjOiBtb3VudC9tb3VudC5jOjE1NzIKK21zZ2lkICJibG9jayBkZXZpY2UgIgorbXNnc3RyICJibG9ja29yaWVudGllcnRlcyBHZXLDpHQgIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIKK21zZ3N0ciAibW91bnQ6IEtvbm50ZSAlcyVzIG5pY2h0IGltIE51ci1MZXNlLU1vZHVzIGVpbmjDpG5nZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQgYnV0IGV4cGxpY2l0IGAtdycgZmxhZyBnaXZlbiIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyVzIGlzdCBzY2hyZWliZ2VzY2jDvHR6dCwgZG9jaCBPcHRpb24g4oCeLXfigJwgaXN0IGV4cGxpeml0IGdlZ2ViZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTU4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCByZW1vdW50ICVzJXMgcmVhZC13cml0ZSwgaXMgd3JpdGUtcHJvdGVjdGVkIgorbXNnc3RyICJtb3VudDogS29ubnRlICVzJXMgbmljaHQgaW0gTnVyLUxlc2UtTW9kdXMgZWluaMOkbmdlbiIKKworIyBUaGF0IHNvdW5kcyBzb21laG93IGR1bWIuCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIGlzdCBzY2hyZWliZ2VzY2jDvHR6dCwgd2lyZCBlaW5nZWjDpG5ndCBpbSBOdXItTGVzZS1Nb2R1cyIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogbG9vcD0lcyBnZXN0b2hsZW4g4oCmdmVyc3VjaGUgZXMgZXJuZXV0XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIGlzdCBiZXJlaXRzIGF1ZiAlcyBlaW5nZWjDpG5ndFxuIgorCisjOiBtb3VudC9tb3VudC5jOjE2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiAlcyBkb2VzIG5vdCBjb250YWluIFNFTGludXggbGFiZWxzLlxuIgorIiAgICAgICBZb3UganVzdCBtb3VudGVkIGFuIGZpbGUgc3lzdGVtIHRoYXQgc3VwcG9ydHMgbGFiZWxzIHdoaWNoIGRvZXMgbm90XG4iCisiICAgICAgIGNvbnRhaW4gbGFiZWxzLCBvbnRvIGFuIFNFTGludXggYm94LiBJdCBpcyBsaWtlbHkgdGhhdCBjb25maW5lZFxuIgorIiAgICAgICBhcHBsaWNhdGlvbnMgd2lsbCBnZW5lcmF0ZSBBVkMgbWVzc2FnZXMgYW5kIG5vdCBiZSBhbGxvd2VkIGFjY2VzcyB0b1xuIgorIiAgICAgICB0aGlzIGZpbGUgc3lzdGVtLiAgRm9yIG1vcmUgZGV0YWlscyBzZWUgcmVzdG9yZWNvbig4KSBhbmQgbW91bnQoOCkuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtIEknbGwgYXNzdW1lIG5mcyBiZWNhdXNlIG9mIHRoZSBjb2xvblxuIgorbXNnc3RyICIiCisibW91bnQ6IGtlaW4gVHlwIGFuZ2VnZWJlbiDigJMgYXVmZ3J1bmQgZGVzIERvcHBlbHB1bmt0cyB3aXJkIE5GUyBhbmdlbm9tbWVuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICIiCisibW91bnQ6IGtlaW4gVHlwIGFuZ2VnZWJlbiDigJMgYXVmZ3J1bmQgZGVzIC8vLVByw6RmaXhlcyB3aXJkIGNpZnMgYW5nZW5vbW1lblxuIgorCisjOiBtb3VudC9tb3VudC5jOjE4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICJtb3VudDogJXMgaXN0IGJlcmVpdHMgYXVmICVzIGVpbmdlaMOkbmd0XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKyJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKyIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKyJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKyJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKyJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKyJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorbXNnc3RyICIiCisiQXVmcnVmOiBtb3VudCAtViAgICAgICAgICAgICAgICAgOiBWZXJzaW9uIGF1c2dlYmVuXG4iCisiICAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBEaWVzZSBIaWxmZSBhdXNnZWJlblxuIgorIiAgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogZWluZ2Vow6RuZ3RlIERhdGVpc3lzdGVtZSBhdWZsaXN0ZW5cbiIKKyIgICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGRpdG8sIGlua2x1c2l2ZSBWb2x1bWUtTGFiZWxcbiIKKyJTbyB3ZWl0IG1pdCBkZW0gaW5mb3JtYXRpdmVuIFBhcnQuIEFscyBuw6RjaHN0ZXMgZGFzIEVpbmjDpG5nZW4uXG4iCisiRGVyIEJlZmVobCBsYXV0ZXQg4oCebW91bnQgWy10IGZzdHlwZV0gaXJnZW5kd2FzIGlyZ2VuZHdv4oCcLlxuIgorIkRldGFpbHMsIGRpZSBpbiAvZXRjL2ZzdGFiIHN0ZWhlbiwga8O2bm5lbiB3ZWdnZWxhc3NlbiB3ZXJkZW4uXG4iCisiICAgICAgICBtb3VudCAtYSBbLXR8LU9dIOKApiAgICAgICA6IGFsbGVzIGF1cyBkZXIgL2V0Yy9mc3RhYiBlaW5ow6RuZ2VuXG4iCisiICAgICAgICBtb3VudCBnZXLDpHQgICAgICAgICAgICAgIDogR2Vyw6R0IGFuIGJla2FubnRlbSBPcnQgZWluaMOkbmdlblxuIgorIiAgICAgICAgbW91bnQgdmVyemVpY2huaXMgICAgICAgIDogaGllciBiZWthbm50ZXMgR2Vyw6R0IGVpbmjDpG5nZW5cbiIKKyIgICAgICAgIG1vdW50IC10IHR5cCBnZXIgdmVyeiAgICA6IG5vcm1hbGVyIE1vdW50LUJlZmVobFxuIgorIkJlYWNodGVuIFNpZSwgZGFzcyBtYW4gbmljaHQgd2lya2xpY2ggZWluIEdlcsOkdCBlaW5ow6RuZ3QsIHNvbmRlcm4gdmllbG1laHJcbiIKKyJlaW4gRGF0ZWlzeXN0ZW0gKHZvbSBnZWdlYmVuZW4gVHlwKSwgZGFzcyBzaWNoIGF1ZiBkZW0gR2Vyw6R0IGJlZmluZGV0LlxuIgorIk1hbiBrYW5uIGF1Y2ggZWluZW4gc2Nob24gc2ljaHRiYXJlbiBWZXJ6ZWljaG5pc2JhdW0gd29hbmRlcnMgZWluaMOkbmdlbjpcbiIKKyIgICAgICAgIG1vdW50IC0tYmluZCBhbHRlc1ZlcnogbmV1ZXNWZXJ6XG4iCisib2RlciBlaW5lbiBVbnRlcmJhdW0gdmVyc2NoaWViZW46XG4iCisiICAgICAgICBtb3VudCAtLW1vdmUgYWx0ZXNWZXJ6IG5ldWVzVmVyelxuIgorIkRpZSBFaW5ow6RuZ2VhcnQgaW4gZWluZW0gVmVyemVpY2huaXMga2FubiBnZcOkbmRlcnQgd2VyZGVuOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIHZlcnpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIHZlcnpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgdmVyelxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSB2ZXJ6XG4iCisiVW5kIGRhcyBnYW56ZSByZWt1cnNpdjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzaGFyZWQgdmVyelxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIHZlcnpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIHZlcnpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJ1bmJpbmRhYmxlIHZlcnpcbiIKKyJFaW4gR2Vyw6R0IGthbm4gw7xiZXIgc2VpbmVuIE5hbWVuLCBhbHNvIC9kZXYvaGRhMSBvZGVyIC9kZXYvY2Ryb20sIGdlZ2ViZW5cbiIKKyJ3ZXJkZW4sIG9kZXIgw7xiZXIgc2VpbiBMYWJlbCwgbWl0dGVscyAtTCBMYWJlbCwgb2RlciDDvGJlciBkaWUgVVVJRCwgbWl0IC1VICIKKyJVVUlELlxuIgorIldlaXRlcmUgT3B0aW9uZW46IFstbmZGcnN2d10gWy1vIG9wdGlvbmVuXSBbLXAgcGFzc3dkZmRdLlxuIgorIkbDvHIgdmllbGUgd2VpdGVyZSBEZXRhaWxzOiBtYW4gOCBtb3VudC5cbiIKKworIzogbW91bnQvbW91bnQuYzoyMjc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IChlZmZlY3RpdmUgVUlEIGlzICVkKSIKK21zZ3N0ciAibW91bnQ6IE51ciDigJ5yb2904oCcIGthbm4gZGllcyB0dW4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIm1vdW50OiBOdXIg4oCecm9vdOKAnCBrYW5uIGRpZXMgdHVuIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJuaWNodHMgd3VyZGUgZWluZ2Vow6RuZ3QiCisKKyM6IG1vdW50L21vdW50LmM6MjMwNiBtb3VudC9tb3VudC5jOjIzMzIKK21zZ2lkICJtb3VudDogbm8gc3VjaCBwYXJ0aXRpb24gZm91bmQiCittc2dzdHIgIm1vdW50OiBrZWluZSBwYXNzZW5kZSBQYXJ0aXRpb24gZ2VmdW5kZW4iCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6IEtvbm50ZSAlcyBuaWNodCBpbiAlcyBvZGVyICVzIGZpbmRlbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiB3YXJuaW5nOiBubyBmaW5hbCBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgJXNcbiIKK21zZ3N0ciAiIgorIlttbnRlbnRdOiBXYXJudW5nOiBBbSBFbmRlIGRlciBEYXRlaSAlcyBmZWhsdCBlaW4gYWJzY2hsaWXDn2VuZGVyICIKKyJaZWlsZW52b3JzY2h1Yi5cbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiBsaW5lICVkIGluICVzIGlzIGJhZCVzXG4iCittc2dzdHIgIlttbnRlbnRdOiBaZWlsZSAlZCBpbiAlcyBpc3QgZmVobGVyaGFmdCVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxOQorbXNnaWQgIjsgcmVzdCBvZiBmaWxlIGlnbm9yZWQiCittc2dzdHIgIjsgZGVyIFJlc3QgZGVyIERhdGVpIHd1cmRlIGlnbm9yaWVydCIKKworIzogbW91bnQvc3VuZHJpZXMuYzozMgorbXNnaWQgImJ1ZyBpbiB4c3RybmR1cCBjYWxsIgorbXNnc3RyICJGZWhsZXIgaW0gQXVmcnVmIHZvbiB4c3RybmR1cCIKKworIzogbW91bnQvc3VuZHJpZXMuYzoyMjUgbW91bnQvc3VuZHJpZXMuYzoyODEgbW91bnQvc3VuZHJpZXMuYzoyOTYKKyM6IG1vdW50L3htYWxsb2MuYzoxMQorbXNnaWQgIm5vdCBlbm91Z2ggbWVtb3J5IgorbXNnc3RyICJOaWNodCBnZW7DvGdlbmQgU3BlaWNoZXIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgPHNwZWNpYWw+IHBhcmFtZXRlcjpcbiIKKyIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxmaWxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGZpbGUgdG8gYmUgdXNlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCBwcmlvcml0eV0gWy12XSBbLWZdIDxzcGVjaWFsPiAgZW5hYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjEwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBzd2Fwc1xuIgorIiAlMSRzIFstdl0gPHNwZWNpYWw+ICAgICAgICAgICAgICAgZGlzYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiVzOiB1bmVyd2FydGV0ZXMgRGF0ZWllbmRlIGluICVzLURhdGVpXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIyMworIywgZnV6enkKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAi4oCeZm9ya+KAnCBmZWhsZ2VzY2hsYWdlblxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3YgZmFpbGVkIgorbXNnc3RyICLigJ5leGVj4oCcIGZlaGxnZXNjaGxhZ2VuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI0NworIywgZnV6enkKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgZmVobGdlc2NobGFnZW4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAi4oCec2Vla+KAnCBnZXNjaGVpdGVydC4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgIktvbm50ZSAlcyBuaWNodCDDtmZmbmVuIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvdW5kIHN3YXAgc2lnbmF0dXJlOiB2ZXJzaW9uICVkLCBwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5Cittc2dpZCAiZGlmZmVyZW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorIywgZnV6enkKK21zZ2lkICJzYW1lIgorbXNnc3RyICJOYW1lIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzdGF0IGZhaWxlZCIKK21zZ3N0ciAi4oCec2Vla+KAnCBnZXNjaGVpdGVydC4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjM5NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGluc2VjdXJlIHBlcm1pc3Npb25zICUwNG8sICUwNG8gc3VnZ2VzdGVkLiIKK21zZ3N0ciAiIgorIiVzOiBXYXJudW5nOiAlcyBoYXQgdW5zaWNoZXJlIFp1Z3JpZmZzcmVjaHRlICUwNG8sICUwNG8gd2lyZCBlbXBmb2hsZW5cbiIKKworIyBob2xlcworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgLSBpdCBhcHBlYXJzIHRvIGhhdmUgaG9sZXMuIgorbXNnc3RyICIlczogw5xiZXJzcHJpbmdlIGRpZSBEYXRlaSAlcyDigJMgc2llIHNjaGVpbnQgTMO2Y2hlciB6dSBlbnRoYWx0ZW4uXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAi4oCec2Vla+KAnCBnZXNjaGVpdGVydC4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKworIyBUaGUgZmlyc3QgJXMgaXMgc3dhcG9uL3N3YXBvZmYKKyM6IG1vdW50L3N3YXBvbi5jOjQ3OCBtb3VudC9zd2Fwb24uYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgb24gJXNcbiIKK21zZ3N0ciAiJXMgZsO8ciAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb24gZmFpbGVkIgorbXNnc3RyICLigJ5zZWVr4oCcIGdlc2NoZWl0ZXJ0LiIKKworIzogbW91bnQvc3dhcG9uLmM6NTA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZmluZCB0aGUgZGV2aWNlIGZvciAlcyIKK21zZ3N0ciAiJXM6IEtvbm50ZSBkYXMgR2Vyw6R0IGbDvHIgJXMgbmljaHQgZmluZGVuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MAorIywgZnV6enkKK21zZ2lkICJOb3Qgc3VwZXJ1c2VyLiIKK21zZ3N0ciAiTmljaHQgU3VwZXJ1c2VyLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb2ZmIGZhaWxlZCIKK21zZ3N0ciAi4oCec2Vla+KAnCBnZXNjaGVpdGVydC4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIHVuc3VwcG9ydGVkIHByb2dyYW0gbmFtZSAobXVzdCBiZSAnc3dhcG9uJyBvciAnc3dhcG9mZicpLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgLWZcbiIKK21zZ3N0ciAidW1vdW50OiBEaWUgVW50ZXJzdMO8dHp1bmcgZsO8ciAtZiB3dXJkZSBuaWNodCBtaXQgw7xiZXJzZXR6dFxuIgorCisjOiBtb3VudC91bW91bnQuYzoxMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIm1vdW50OiBLYW5uIGRpZSBHZXNjaHdpbmRpZ2tlaXQgbmljaHQgc2V0emVuOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiBLYW5uIGRpZSBHZXNjaHdpbmRpZ2tlaXQgbmljaHQgc2V0emVuOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJ1bW91bnQ6IEthbm4ga2VpbmVuIG5ldWVuIFByb3plc3MgZXJ6ZXVnZW46ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogaW52YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgInVtb3VudDogJXM6IGtlaW4gZ8O8bHRpZ2VzIGJsb2Nrb3JpZW50aWVydGVzIEdlcsOkdCIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICJ1bW91bnQ6ICVzIGlzdCBuaWNodCBlaW5nZWjDpG5ndCIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgInVtb3VudDogJXM6IEtvbm50ZSBkZW4g4oCeU3VwZXJibG9ja+KAnCBuaWNodCBzY2hyZWliZW4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgZm91bmQiCittc2dzdHIgInVtb3VudDogJXM6IE5pY2h0IGdlZnVuZGVuIgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBudXIgZGVyIFN1cGVydXNlciBrYW5uIHVtb3VudCBkdXJjaGbDvGhyZW4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgInVtb3VudDogJXM6IEJsb2NrZ2Vyw6R0ZSBhdWYgRGF0ZWlzeXN0ZW0gbmljaHQgZXJsYXVidCIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHVtb3VudDIsIHRyeWluZyB1bW91bnQuLi5cbiIKK21zZ3N0ciAia2VpbiB1bW91bnQyLCB2ZXJzdWNoZSB1bW91bnTigKZcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjUyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgYnVzeSAtIHJlbW91bnRlZCByZWFkLW9ubHlcbiIKK21zZ3N0ciAiIgorInVtb3VudDogJXMgd2lyZCBtb21lbnRhbiBub2NoIGJlbnV0enQg4oCTIGltIE51ci1MZXNlLU1vZHVzIHdpZWRlcmVpbmdlaMOkbmd0XG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvdWxkIG5vdCByZW1vdW50ICVzIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6IGtvbm50ZSAlcyBuaWNodCBpbSBOdXItTGVzZS1Nb2R1cyB3aWVkZXIgZWluaMOkbmdlblxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdW1vdW50ZWRcbiIKK21zZ3N0ciAiJXMgYXVzZ2Vow6RuZ3RcbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgInVtb3VudDogS2FubiBkaWUgTGlzdGUgZGVyIERhdGVpc3lzdGVtZSB6dW0gQXVzaMOkbmdlbiBuaWNodCBmaW5kZW4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKK21zZ3N0ciAiIgorIkF1ZnJ1ZjogdW1vdW50IFstaFZdXG4iCisiICAgICAgICB1bW91bnQgLWEgWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgVkZTLVR5cGVuXSBbLU8gb3B0aW9uZW5dXG4iCisiICAgICAgICB1bW91bnQgWy1mXSBbLXJdIFstbl0gWy12XSBTcGV6aWFsZGF0ZWkgfCBWZXJ6ZWljaG5pcyDigKZcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIlNla3RvciAlZCB3aXJkIGJlcmVpdHMgYmVudXR6dFxuIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBub3QgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIlNla3RvciAlZCB3aXJkIGJlcmVpdHMgYmVudXR6dFxuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAiS2FubiBcIlwiIG5pY2h0IGF1c2jDpG5nZW5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byB1bW91bnQgJXNcbiIKK21zZ3N0ciAiVmVyc3VjaGUsICVzIGF1c3p1aMOkbmdlblxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MDYKK21zZ2lkICJ1bW91bnQ6IGNvbmZ1c2VkIHdoZW4gYW5hbHl6aW5nIG10YWIiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHVtb3VudCAlcyAtLSAlcyBpcyBtb3VudGVkIG92ZXIgaXQgb24gdGhlIHNhbWUgcG9pbnQuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxOAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCAlcyBpbiBtdGFiXG4iCittc2dzdHIgIktvbm50ZSAlcyBuaWNodCBpbiDigJ5tdGFi4oCcIGZpbmRlblxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6ICVzIGlzdCBsYXV0IOKAnm10YWLigJwgbmljaHQgZWluZ2Vow6RuZ3QiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGl0IHNlZW1zICVzIGlzIG1vdW50ZWQgbXVsdGlwbGUgdGltZXMiCittc2dzdHIgInVtb3VudDogJXMgc2NoZWludCBtZWhyZmFjaCBlaW5nZWjDpG5ndCB6dSBzZWluIgorCisjOiBtb3VudC91bW91bnQuYzo1NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgaW4gdGhlIGZzdGFiIChhbmQgeW91IGFyZSBub3Qgcm9vdCkiCittc2dzdHIgInVtb3VudDogZnN0YWIgZW50aMOkbHQgJXMgbmljaHQgKE51ciByb290IGthbm4gZXMgYXVzaMOkbmdlbikiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIG1vdW50IGRpc2FncmVlcyB3aXRoIHRoZSBmc3RhYiIKK21zZ3N0ciAidW1vdW50OiAlcyBtb3VudCB1bmQgZnN0YWIgc3RpbW1lbiBuaWNodCDDvGJlcmVpbiIKKworIzogbW91bnQvdW1vdW50LmM6NjEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogb25seSAlcyBjYW4gdW5tb3VudCAlcyBmcm9tICVzIgorbXNnc3RyICJ1bW91bnQ6IE51ciAlcyBrYW5uICVzIHZvbiAlcyB1bm1vdW50ZW4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjcwMQorbXNnaWQgInVtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICJ1bW91bnQ6IE51ciDigJ5yb2904oCcIGthbm4gZGllcyB0dW4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MuXG4iCisiXG4iCisiU2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIkdldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiXG4iCisiU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX1JSIChkZWZhdWx0KVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgb3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHNob3cgbWluIGFuZCBtYXggdmFsaWQgcHJpb3JpdGllc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKyIgIC1WIHwgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJLb25udGUgUGVyc8O2bmxpY2hrZWl0IG5pY2h0IGF1ZiAlcyBzZXR6ZW4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgInVuYmVrYW5udGVyIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBhdHRyaWJ1dGVzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHByaW9yaXR5OiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBtaW4vbWF4IHByaW9yaXR5XHQ6ICVkLyVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBub3Qgc3VwcG9ydGVkP1xuIgorbXNnc3RyICJORlMgw7xiZXIgVENQIHdpcmQgbmljaHQgdW50ZXJzdMO8dHp0LlxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHBpZCIKK21zZ3N0ciAiJXM6IGZlaGxzY2hsYWdlbmVzIMOWZmZuZW4gdm9uOiAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMjUKKyMsIGZ1enp5Cittc2dpZCAiY3VycmVudCIKK21zZ3N0ciAibmNvdW50IgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzMKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHByaW9yaXR5IgorbXNnc3RyICJLb25udGUgUGVyc8O2bmxpY2hrZWl0IG5pY2h0IGF1ZiAlcyBzZXR6ZW4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHNldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIktvbm50ZSBQZXJzw7ZubGljaGtlaXQgbmljaHQgYXVmICVzIHNldHplbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCisjLCBmdXp6eQorbXNnaWQgIm5ldyIKK21zZ3N0ciAiTmV1ZSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBrb25udGUgWmVpdCBuaWNodCB2b24gJXMgbGVzZW4uIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjU3CisjLCBmdXp6eQorbXNnaWQgImlvcHJpb19nZXQgZmFpbGVkIgorbXNnc3RyICLigJ5vcGVucHR54oCcIGlzdCBmZWhsZ2VzY2hsYWdlblxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjc1CisjLCBmdXp6eQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICLigJ5vcGVucHR54oCcIGlzdCBmZWhsZ2VzY2hsYWdlblxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICJlcyBpc3QgbmljaHQgbcO2Z2xpY2gsICVzIHp1IMO2ZmZuZW4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTUxCittc2dpZCAiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3Igbm9uZSBjbGFzcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1OQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIGlkbGUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHByaW8gY2xhc3MgJWQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxODcKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3ZwIGZhaWxlZCIKK21zZ3N0ciAi4oCeZXhlY+KAnCBmZWhsZ2VzY2hsYWdlblxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICJOdXIgcm9vdCBrYW5uIGRhcyBWZXJoYWx0ZW4gdm9uIFN0cmctQWx0LUVudGYgw6RuZGVybi5cbiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzo0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKK21zZ3N0ciAiQXVmcnVmOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkRhdGVpICVzLCBmw7xyIFNjaHdlbGxlbndlcnQgJWx1LCBtYXhpbWFsZSBaZWljaGVuemFobCBpbiBGSUZPIHdhciAlZFxuIgorInVuZCBkaWUgbWF4aW1hbGUgVHJhbnNmZXJyYXRlIGluIFplaWNoZW4vU2VrdW5kZSB3YXIgJWZcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkRhdGVpICVzLCBmw7xyIFNjaHdlbGxlbndlcnQgJWx1IHVuZCBBdXN6ZWl0LVdlcnQgJWx1LCBtYXhpbWFsZSBaZWljaGVuemFobCAiCisiaW4gRklGTyB3YXIgJWRcbiIKKyJ1bmQgZGllIG1heGltYWxlIFRyYW5zZmVycmF0ZSBpbiBaZWljaGVuL1Nla3VuZGUgd2FyICVmXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBpbnRlcnZhbCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgaW50ZXJuZXIgV2VydDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgV2VydCB6dSBzZXR6ZW46ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJVbmfDvGx0aWdlciB2b3JlaW5nZXN0ZWxsdGVyIFdlcnQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgWmVpdC1XZXJ0IHp1IHNldHplbjogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgdm9yZWluZ2VzdGVsbHRlciBaZWl0LVdlcnQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXEgWy1pIGludGVydmFsXV0gKFstcyB2YWx1ZV18Wy1TIHZhbHVlXSkgKFstdCB2YWx1ZV18Wy1UIHZhbHVlXSkgIgorIlstZ3wtR10gZmlsZSBbZmlsZS4uLl1cbiIKK21zZ3N0ciAiIgorIkF1ZnJ1ZjogJXMgWy1xIFstaSBJbnRlcnZhbGxdXSAoWy1zIFdlcnRdfFstUyBXZXJ0XSkgKFstdCBXZXJ0XXxbLVQgV2VydF0pIFstIgorImd8LUddIERhdGVpIFtEYXRlaeKApl1cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiS29ubnRlICVzIG5pY2h0IMO2ZmZuZW46ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiS2FubiAlcyBuaWNodCBhdWYgU2Nod2VsbGUgJWQgc2V0emVuOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aW1lIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiS2FubiAlcyBuaWNodCBhdWYgWmVpdHNjaHdlbGxlICVkIHNldHplbjogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIkthbm4gU2Nod2VsbGUgZsO8ciAlcyBuaWNodCBlcm1pdHRlbG46ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiS2FubiBBdXN6ZWl0IGbDvHIgJXMgbmljaHQgZXJtaXR0ZWxuOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3VycmVudCB0aHJlc2hvbGQgYW5kICVsZCBjdXJyZW50IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6ICVsZCBha3R1ZWxsZSBTY2h3ZWxsZSB1bmQgJWxkIGFrdHVlbGxlIEF1c3plaXRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGRlZmF1bHQgdGhyZXNob2xkIGFuZCAlbGQgZGVmYXVsdCB0aW1lb3V0XG4iCittc2dzdHIgIiVzOiAlbGQgdm9yZWluZ2VzdGVsbHRlIFNjaHdlbGxlIHVuZCAlbGQgdm9yZWluZ2VzdGVsbHRlIEF1c3plaXRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMyNworbXNnaWQgIkNhbid0IHNldCBzaWduYWwgaGFuZGxlciIKK21zZ3N0ciAiS2FubiBTaWduYWxoYW5kbGVyIG5pY2h0IGVybWl0dGVsbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAi4oCeZ2V0dGltZW9mZGF54oCcIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzQ0IHN5cy11dGlscy9jeXR1bmUuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iCittc2dzdHIgIkthbm4ga2VpbiBDWUdFVE1PTiBhdWYgJXMgYXVzbMO2c2VuOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdS8lbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKKworIyAiTGV2ZWwiCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJBdWZydWY6ICVzIFstY10gWy1uIExldmVsXSBbLXMgUHVmZmVyZ3LDtsOfZV1cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZmlsZW5hbWU+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiQXVmcnVmOiAlcyBbT3B0aW9uZW5dIGdlcsOkdCDigKZcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkbDvHIgd2VpdGVyZSBJbmZvcm1hdGlvbmVuIHNpZWhlIHNldGFyY2goOCkuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDcKKyMsIGZ1enp5Cittc2dpZCAibm8gbGVuZ3RoIGFyZ3VtZW50IHNwZWNpZmllZCIKK21zZ3N0ciAiTmljaHQgZ2VudWcgQXJndW1lbnRlIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ5CisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgbGVuZ3RoIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgV2VydCB6dSBzZXR6ZW46ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTEKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJVbmfDvGx0aWdlciBXZXJ0IHp1IHNldHplbjogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MworIywgZnV6enkKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICJFcyB3dXJkZSBrZWluZSDigJ4tLWRhdGXigJwtT3B0aW9uIGFuZ2VnZWJlbi5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3MworbXNnaWQgImtlZXAgc2l6ZSBtb2RlICgtbiBvcHRpb24pIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWxsb2NhdGUgZmFpbGVkIgorbXNnc3RyICLigJ5vcGVucHR54oCcIGlzdCBmZWhsZ2VzY2hsYWdlblxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzo2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICUxJHMgWy1zeHVuXVstdyAjXSBmZCNcbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGZpbGUgWy1jXSBjb21tYW5kLi4uXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBkaXJlY3RvcnkgWy1jXSBjb21tYW5kLi4uXG4iCisiICAtcyAgLS1zaGFyZWQgICAgIEdldCBhIHNoYXJlZCBsb2NrXG4iCisiICAteCAgLS1leGNsdXNpdmUgIEdldCBhbiBleGNsdXNpdmUgbG9ja1xuIgorIiAgLXUgIC0tdW5sb2NrICAgICBSZW1vdmUgYSBsb2NrXG4iCisiICAtbiAgLS1ub25ibG9jayAgIEZhaWwgcmF0aGVyIHRoYW4gd2FpdFxuIgorIiAgLXcgIC0tdGltZW91dCAgICBXYWl0IGZvciBhIGxpbWl0ZWQgYW1vdW50IG9mIHRpbWVcbiIKKyIgIC1vICAtLWNsb3NlICAgICAgQ2xvc2UgZmlsZSBkZXNjcmlwdG9yIGJlZm9yZSBydW5uaW5nIGNvbW1hbmRcbiIKKyIgIC1jICAtLWNvbW1hbmQgICAgUnVuIGEgc2luZ2xlIGNvbW1hbmQgc3RyaW5nIHRocm91Z2ggdGhlIHNoZWxsXG4iCisiICAtaCAgLS1oZWxwICAgICAgIERpc3BsYXkgdGhpcyB0ZXh0XG4iCisiICAtViAgLS12ZXJzaW9uICAgIERpc3BsYXkgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjE5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGNvbW1hbmQgYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgZXJ3YXJ0ZXQgZWluIEFyZ3VtZW50XG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IEtvbm50ZSAlcyBuaWNodCDDtmZmbmVuOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogVW5nw7xsdGlnZXIgV2VydFxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlcXVpcmVzIGZpbGUgZGVzY3JpcHRvciwgZmlsZSBvciBkaXJlY3RvcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3JrIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAi4oCeZm9ya+KAnCBmZWhsZ2VzY2hsYWdlblxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyJcbiIKK21zZ3N0ciAiQXVmcnVmOiAlcyBbT3B0aW9uZW5dIGdlcsOkdCDigKZcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLU0gPHNpemU+ICAgICBjcmVhdGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IG9mIHNpemUgPHNpemU+XG4iCisiICAtUyA8bnNlbXM+ICAgIGNyZWF0ZSBzZW1hcGhvcmUgYXJyYXkgd2l0aCA8bnNlbXM+IGVsZW1lbnRzXG4iCisiICAtUSAgICAgICAgICAgIGNyZWF0ZSBtZXNzYWdlIHF1ZXVlXG4iCisiICAtcCA8bW9kZT4gICAgIHBlcm1pc3Npb24gZm9yIHRoZSByZXNvdXJjZSAoZGVmYXVsdCBpcyAwNjQ0KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGlwY21rKDEpLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRsO8ciB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4gc2llaGUgc2V0YXJjaCg4KS5cbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQyCittc2dpZCAiY3JlYXRlIHNoYXJlIG1lbW9yeSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaGFyZWQgbWVtb3J5IGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisiR2VtZWluc2FtZXIgU3BlaWNoZXIgU2VnbWVudCBzaG1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIHF1ZXVlIGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisiTmFjaHJpY2h0ZW53YXJ0ZXNjaGxhbmdlIG1zcWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1OAorIywgZnV6enkKK21zZ2lkICJjcmVhdGUgc2VtYXBob3JlIGZhaWxlZCIKK21zZ3N0ciAienVnZXdpZXNlbmUgU2VtYXBob3JlbiA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2VtYXBob3JlIGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisiU2VtYXBob3JlbmZlbGQgc2VtaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAidW5nw7xsdGlnZSBJRDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlbW92ZSBpZCAlcyAoJXMpXG4iCittc2dzdHIgImthbm4gSUQgJXMgKCVzKSBuaWNodCBlbnRmZXJuZW5cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVwcmVjYXRlZCB1c2FnZTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCittc2dzdHIgInZlcmFsdGV0ZXIsIG5pY2h0IGVtcGZvaGxlbmVyLCBBdWZydWY6ICVzIHtzaG0gfCBtc2cgfCBzZW19IElkIOKAplxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93biByZXNvdXJjZSB0eXBlOiAlc1xuIgorbXNnc3RyICJ1bmJla2FubnRlciBSZXNzb3VyY2VudHlwOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzb3VyY2UocykgZGVsZXRlZFxuIgorbXNnc3RyICJSZXNzb3VyY2UobikgZ2Vsw7ZzY2h0XG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiIKKyIgICAgICAgICAgWy1RIG1zZ2tleV0gWy1NIHNobWtleV0gWy1TIHNlbWtleV0gLi4uIF1cbiIKK21zZ3N0ciAiIgorIkF1ZnJ1ZjogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICAgWy1RIG1zZ2tleV0gWy1NIHNobWtleV0gWy1TIHNlbWtleV0g4oCmIF1cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgorbXNnc3RyICIlczogdW56dWzDpHNzaWdlIE9wdGlvbiAtLSAlY1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwga2V5ICglcylcbiIKK21zZ3N0ciAiJXM6IHVuenVsw6Rzc2lnZXIgU2NobMO8c3NlbCAoJXMpXG4iCisKKyMgbGliYy5wbzogIktlaW5lIEJlcmVjaHRpZ3VuZyIKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwNiBzeXMtdXRpbHMvaXBjcm0uYzoyMzgKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICJLZWluZSBCZXJlY2h0aWd1bmcgZsO8ciBTY2hsw7xzc2VsIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAiU2NobMO8c3NlbCBzY2hvbiBlbnRmZXJudCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjEyIHN5cy11dGlscy9pcGNybS5jOjI0MworbXNnaWQgImludmFsaWQga2V5IgorbXNnc3RyICJ1bmfDvGx0aWdlciBTY2hsw7xzc2VsIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgInVuYmVrYW5udGVyIEZlaGxlciBpbSBTY2hsw7xzc2VsIgorCisjIGxpYmMucG86ICJLZWluZSBCZXJlY2h0aWd1bmciCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgIktlaW5lIEJlcmVjaHRpZ3VuZyBmw7xyIElEIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICJ1bmfDvGx0aWdlIElEIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQgaWQiCittc2dzdHIgIklEIHNjaG9uIGVudGZlcm50IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICJ1bmJla2FubnRlciBGZWhsZXIgaW4gSUQiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgKCVzKVxuIgorbXNnc3RyICIlczogJXMgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gYXJndW1lbnQ6ICVzXG4iCittc2dzdHIgIiVzOiBVbmJla2FubnRlcyBBcmd1bWVudDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2UgOiAlcyAtYXNtcSAtdGNsdXAgXG4iCittc2dzdHIgIkF1ZnJ1ZjogJXMgLWFzbXEgLXRjbHVwIFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKK21zZ3N0ciAiXHQlcyBbLXMgLW0gLXFdIC1pIElkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIlx0JXMgLWggZsO8ciB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBpcGMgZmFjaWxpdGllcyBmb3Igd2hpY2ggeW91IGhhdmUgcmVhZCBhY2Nlc3MuXG4iCittc2dzdHIgIiIKKyIlcyBsaWVmZXJ0IEluZm9ybWF0aW9uZW4gw7xiZXIgRWlucmljaHR1bmdlbiB2b24gSVBDIChJbnRlciBQcm9jZXNzXG4iCisiQ29tbXVuaWNhdGlvbiksIGF1ZiBkaWUgU2llIExlc2V6dWdyaWZmIGhhYmVuLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisiUmVzc291cmNlbnNwZXppZmlrYXRpb246XG4iCisiXHQtbSA6IGdlbWVpbnNhbWVyIFNwZWljaGVyXG4iCisiXHQtcSA6IE5hY2hyaWNodGVuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKyJcdC1zIDogU2VtYXBob3JlblxuIgorIlx0LWEgOiBhbGxlcyAoVm9yZWluc3RlbGx1bmcpXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdXRwdXQgRm9ybWF0OlxuIgorIlx0LXQgOiB0aW1lXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhdG9yXG4iCittc2dzdHIgIiIKKyJBdXNnYWJlZm9ybWF0OlxuIgorIlx0LXQgOiBaZWl0XG4iCisiXHQtcCA6IFBpZFxuIgorIlx0LWMgOiBFcnpldWdlclxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKyJcdC1sIDogR3JlbnplblxuIgorIlx0LXUgOiBadXNhbW1lbmZhc3N1bmdcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICItaSBJZCBbLXMgLXEgLW1dIDogRGV0YWlscyDDvGJlciBtaXQgSWQgaWRlbnRpZml6aWVydGUgUmVzc291cmNlXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2hhcmVkIG1lbW9yeVxuIgorbXNnc3RyICIiCisiRGVyIEtlcm5lbCBpc3QgbmljaHQga29uZmlndXJpZXJ0LCBnZW1laW5zYW1lbiBTcGVpY2hlciB6dSB1bnRlcnN0w7x0emVuLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEdlbWVpbnNhbWVyIFNwZWljaGVyOiBHcmVuemVuIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAiTWF4aW1hbGUgQW56YWhsIGRlciBTZWdtZW50ZSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VnIHNpemUgKGtieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAiTWF4aW1hbGUgU2VnbWVudGdyw7bDn2UgKEtCeXRlKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAiTWF4aW1hbGVyIGdlc2FtdGVyIGdlbWVpbnNhbWVyIFNwZWljaGVyIChrQnl0ZXMpID0gJWxsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJNaW5pbWFsZSBTZWdtZW50Z3LDtsOfZSAoQnl0ZXMpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gR2VtZWluc2FtZXIgU3BlaWNoZXI6IFN0YXR1cyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJzZWdtZW50cyBhbGxvY2F0ZWQgJWRcbiIKK21zZ3N0ciAiYWxsb3ppZXJ0ZSBTZWdtZW50ZSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBhbGxvY2F0ZWQgJWxkXG4iCittc2dzdHIgImFsbG96aWVydGUgU2VpdGVuICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyByZXNpZGVudCAgJWxkXG4iCittc2dzdHIgInJlc2lkZW50ZSBTZWl0ZW4gICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgImdlc3dhcHB0ZSBTZWl0ZW4gICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJTd2FwIHBlcmZvcm1hbmNlOiAlbGQgYXR0ZW1wdHNcdCAlbGQgc3VjY2Vzc2VzXG4iCittc2dzdHIgIlN3YXBsZWlzdHVuZzogJWxkIFZlcnN1Y2hlXHQgJWxkRXJmb2xnZVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gR2VtZWluc2FtZXIgU3BlaWNoZXI6IEVyemV1Z2VyL0Jlc2l0emVyIGRlciBTZWdtZW50ZSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAic2htaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICJSZWNodGUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAiY3VpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjZ2lkIgorbXNnc3RyICJjZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAidWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImdpZCIKK21zZ3N0ciAiZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gR2VtZWluc2FtZXIgU3BlaWNoZXI6IEF0dGFjaC9EZXRhY2gvQ2hhbmdlLVplaXRlbiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgIkJlc2l0emVyIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImF0dGFjaGVkIgorbXNnc3RyICJBdHRhY2giCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgIkRldGFjaCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTUKK21zZ2lkICJjaGFuZ2VkIgorbXNnc3RyICJDaGFuZ2UiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gR2VtZWluc2FtZXIgU3BlaWNoZXI6IEVyemV1Z2VyL0xhc3QtT3AgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJjcGlkIgorbXNnc3RyICJjcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImxwaWQiCittc2dzdHIgImxwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBHZW1laW5zYW1lciBTcGVpY2hlcjogU2VnbWVudGUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJrZXkiCittc2dzdHIgIlNjaGzDvHNzZWwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAiYnl0ZXMiCittc2dzdHIgIkJ5dGVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgIm5hdHRjaCIKK21zZ3N0ciAibmF0dGNoIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAiU3RhdHVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMyOSBzeXMtdXRpbHMvaXBjcy5jOjMzMSBzeXMtdXRpbHMvaXBjcy5jOjMzMworIzogc3lzLXV0aWxzL2lwY3MuYzo0NDQgc3lzLXV0aWxzL2lwY3MuYzo0NDYgc3lzLXV0aWxzL2lwY3MuYzo1NDUKKyM6IHN5cy11dGlscy9pcGNzLmM6NTQ3IHN5cy11dGlscy9pcGNzLmM6NTQ5IHN5cy11dGlscy9pcGNzLmM6NjAwCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMiBzeXMtdXRpbHMvaXBjcy5jOjYzMCBzeXMtdXRpbHMvaXBjcy5jOjYzMgorIzogc3lzLXV0aWxzL2lwY3MuYzo2MzQgc3lzLXV0aWxzL2lwY3MuYzo2NTcKK21zZ2lkICJOb3Qgc2V0IgorbXNnc3RyICJOaWNodCBnZXNldHp0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MQorbXNnaWQgImRlc3QiCittc2dzdHIgInplcnN0w7ZydCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjIKK21zZ2lkICJsb2NrZWQiCittc2dzdHIgImdlc3BlcnJ0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAiS2VybmVsIG5pY2h0IGbDvHIgU2VtYXBob3JlbiBrb25maWd1cmllcnRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNlbWFwaG9yZW5ncmVuemVuIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2YgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAibWF4aW1hbGUgQW56YWhsIHZvbiBGZWxkZXJuID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAibWF4aW1hbGUgU2VtYXBob3JlbiBwcm8gRmVsZCA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAibWF4aW1hbGUgU2VtYXBob3JlbiBzeXN0ZW13ZWl0ID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG9wcyBwZXIgc2Vtb3AgY2FsbCA9ICVkXG4iCittc2dzdHIgIm1heGltYWxlIE9wZXJhdGlvbnMgcHJvIFNlbW9wLVJ1ZiA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbWFwaG9yZSBtYXggdmFsdWUgPSAlZFxuIgorbXNnc3RyICJtYXhpbWFsZXIgU2VtYXBob3JlbndlcnQgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VtYXBob3JlbnN0YXR1cyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGFycmF5cyA9ICVkXG4iCittc2dzdHIgImJlbnV0enRlIEZlbGRlciA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBzZW1hcGhvcmVzID0gJWRcbiIKK21zZ3N0ciAienVnZXdpZXNlbmUgU2VtYXBob3JlbiA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VtYXBob3JlbmZlbGRlcjogRXJ6ZXVnZXIvQmVzaXR6ZXIgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAiU2VtSUQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgT3BlcmF0aW9uL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VtYXBob3JlLU9wZXJhdGlvbnMvw4RuZGVydW5ncy1aZWl0ZW4gLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICJsYXN0LW9wIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3QtY2hhbmdlZCIKK21zZ3N0ciAibGFzdC1jaGFuZ2VkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VtYXBob3JlbmZlbGRlciAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgIm5zZW1zIgorbXNnc3RyICJuc2VtcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBtZXNzYWdlIHF1ZXVlc1xuIgorbXNnc3RyICJLZXJuZWwgbmljaHQgZsO8ciBOYWNocmljaHRlbnNjaGxhbmdlbiBrb25maWd1cmllcnRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE5hY2hyaWNodGVuOiBHcmVuemVuIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICJtYXhpbWFsZSBXYXJ0ZXNjaGxhbmdlbiBzeXN0ZW13ZWl0ID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNpemUgb2YgbWVzc2FnZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAibWF4aW1hbGUgR3LDtsOfZSBkZXIgTmFjaHJpY2h0IChCeXRlcykgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJkZWZhdWx0IG1heCBzaXplIG9mIHF1ZXVlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJub3JtYWxlIG1heGltYWxlIEdyw7bDn2UgZGVyIFdhcnRlc2NobGFuZ2UgKEJ5dGVzKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBOYWNocmljaHRlbjogU3RhdHVzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk4CisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBxdWV1ZXMgPSAlZFxuIgorbXNnc3RyICJ6dWdld2llc2VuZSBXYXJ0ZXNjaGxhbmdlbiA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk5CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgaGVhZGVycyA9ICVkXG4iCittc2dzdHIgImJlbnV0enRlIEvDtnBmZSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIgorbXNnc3RyICJiZW51dHp0ZXIgUGxhdHogPSAlZCBCeXRlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXM6IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTmFjaHJpY2h0ZW53YXJ0ZXNjaGxhbmdlbjogRXJ6ZXVnZXIvQmVzaXR6ZXIgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgIm1zcWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgU2VuZC9SZWN2L0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0tIE5hY2hyaWNodGVud2FydGVzY2hsYW5nZW46IFZlcnNhbmQvRW1wZmFuZy/DhG5kZXJ1bmctWmVpdGVuIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAic2VuZCIKK21zZ3N0ciAiVmVyc2FuZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJyZWN2IgorbXNnc3RyICJFbXBmYW5nIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgImNoYW5nZSIKK21zZ3N0ciAiw4RuZGVydW5nIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTmFjaHJpY2h0ZW53YXJ0ZXNjaGxhbmdlbjogUElEcyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICJsc3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAibHJwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTmFjaHJpY2h0ZW53YXJ0ZXNjaGxhbmdlbiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgIkJlbnV0enQtQnl0ZXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAibWVzc2FnZXMiCittc2dzdHIgIk5hY2hyaWNodGVuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU4OQorIywgZnV6enkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICJBdWZydWYgdm9uIOKAnmZzeW5j4oCcIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2hhcmVkIG1lbW9yeSBTZWdtZW50IHNobWlkPSVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJHZW1laW5zYW1lciBTcGVpY2hlciBTZWdtZW50IHNobWlkPSVkXG4iCisKKyMgc2ltaWxpYXIgbWVzc2FnZSBiZWxvdy4KKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCisKKyMgc2ltaWxpYXIgbWVzc2FnZSBiZWxvdy4KKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk2CisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorbXNnc3RyICJieXRlcz0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYXR0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiYXR0X3RpbWUgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJkZXRfdGltZSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAzIHN5cy11dGlscy9pcGNzLmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIsOEbmRlcnVuZ3N6ZWl0ID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTUKKyMsIGZ1enp5Cittc2dpZCAibXNnY3RsIGZhaWxlZCIKK21zZ3N0ciAiQXVmcnVmIHZvbiDigJ5mc3luY+KAnCBmZWhsZ2VzY2hsYWdlbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk1lc3NhZ2UgUXVldWUgbXNxaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIk5hY2hyaWNodGVud2FydGVzY2hsYW5nZSBtc3FpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxOAorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKK21zZ3N0ciAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiU2VuZGV6ZWl0ID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmN2X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiRW1wZmFuZ3N6ZWl0ID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKKyMsIGZ1enp5Cittc2dpZCAic2VtY3RsIGZhaWxlZCIKK21zZ3N0ciAi4oCec2Vla+KAnCBnZXNjaGVpdGVydC4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZW1hcGhvcmUgQXJyYXkgc2VtaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlbWFwaG9yZW5mZWxkIHNlbWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgIm5zZW1zID0gJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm90aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAib3RpbWUgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICJjdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgImN0aW1lID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJzZW1udW0iCittc2dzdHIgIlNlbW51bSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAiV2VydCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJuY291bnQiCittc2dzdHIgIm5jb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ6Y291bnQiCittc2dzdHIgInpjb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJwaWQiCittc2dzdHIgIlBpZCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjkxCittc2dpZCAiIgorIlxuIgorIktub3duIDxsZGlzYz4gbmFtZXM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHNwZWVkOiAlcyIKK21zZ3N0ciAidW5nw7xsdGlnZSBJRDogJXNcbiIKKworIyAibWtmcyBhdXMgdXRpbC1saW51eC0yLjEwZCIKKyMgIm1rZnMgdm9uIHV0aWwtbGludXgtMi4xMGQiCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgdm9uICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE4NCB0ZXh0LXV0aWxzL3RhaWxmLmM6MjA2CisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgb3B0aW9uIgorbXNnc3RyICJ1bmfDvGx0aWdlIElEIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgbGluZSBkaXNjaXBsaW5lOiAlcyIKK21zZ3N0ciAidW5nw7xsdGlnZSBJRDogJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiJXMgaXN0IGtlaW4gYmxvY2tvcmllbnRpZXJ0ZXMgR2Vyw6R0IgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgImVzIGlzdCBuaWNodCBtw7ZnbGljaCwgZGllIEdyw7bDn2Ugdm9uICVzIGZlc3R6dXN0ZWxsZW4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgImVzIGlzdCBuaWNodCBtw7ZnbGljaCwgZGllIEdyw7bDn2Ugdm9uICVzIGZlc3R6dXN0ZWxsZW4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1MQorIywgZnV6enkKK21zZ2lkICJjYW5ub3Qgc2V0IGxpbmUgZGlzY2lwbGluZSIKK21zZ3N0ciAiS29ubnRlIOKAnnNlZWsoKeKAnCBuaWNodCBhdWYgZGVyIEZlc3RwbGF0dGUgYmVudXR6ZW4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworIywgZnV6enkKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICJlcyBpc3QgbmljaHQgbcO2Z2xpY2gsIGRpZSBHcsO2w59lIHZvbiAlcyBmZXN0enVzdGVsbGVuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NAorIywgZnV6enkKK21zZ2lkICJub25lIgorbXNnc3RyICJLZWluIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NQorbXNnaWQgInBhcmEiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjYKK21zZ2lkICJmdWxsIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjEzNyBzeXMtdXRpbHMvbHNjcHUuYzoxNjAgc3lzLXV0aWxzL2xzY3B1LmM6NDU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgIkZlaGxlciBpbiByZWd1bMOkcmVtIEF1c2RydWNrOiAiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcGFyc2U6ICVzIgorbXNnc3RyICJGZWhsZXIgYmVpbSBMZXNlbiB2b24gJXNcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTg0CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBzdHJkdXAgZmFpbGVkIgorbXNnc3RyICJLb25udGUgJXMgbmljaHQgw7ZmZm5lbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MjY3CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiB1bmFtZSBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyJGZWhsZXIgYmVpbSBTY2hsaWXDn2VuIHZvbiBEYXRlaVxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MDYKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IG1hbGxvYyBmYWlsZWQiCittc2dzdHIgIuKAnm1hbGxvY+KAnCBzY2hsdWcgZmVobCIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTIxCittc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzYWJsZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNgorbXNnaWQgIkNvcmUocykgcGVyIHNvY2tldDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMxCittc2dpZCAiTlVNQSBub2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzMKK21zZ2lkICJWZW5kb3IgSUQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzkKK21zZ2lkICJTdGVwcGluZzoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQxCittc2dpZCAiQ1BVIE1IejoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorIywgZnV6enkKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIkFsdGUgQXVmdGVpbHVuZzpcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1MAorbXNnaWQgIlZpcnR1YWxpemF0aW9uIHR5cGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjYWNoZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbl1cbiIKK21zZ3N0ciAiQXVmcnVmOiAlcyBbT3B0aW9uZW5dIGdlcsOkdCDigKZcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjcxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgIkZlaGxlciBiZWltIMOEbmRlcm4gZGVyIFp1Z3JpZmZzcmVjaHRlIHZvbiAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIkF1ZnJ1ZjogcmRldiBbIC1ydiBdIFsgLW8gT0ZGU0VUIF0gWyBCSUxEIFsgV0VSVCBbIE9GRlNFVCBdIF0gXSIKKworIyBPaCB3ZWxsLCAiUk9PVC1HZXLDpHQiIHNvdW5kcyBzb29vIHN0dXBpZAorIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvZGVyIHJkZXYgL2xpbnV4IGV0Yy4pIGRhcyBha3R1ZWxsZSBST09ULUdlcsOkdCBhbnplaWdlbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OQorbXNnaWQgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBzZXRzIFJPT1QgdG8gL2Rldi9oZGEyIgorbXNnc3RyICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgUk9PVCBhdWYgL2Rldi9oZGEyIHNldHplbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIFJPT1RGTEFHUyBzZXR6ZW4gKE51ci1MZXNlLVN0YXR1cykiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODEKK21zZ2lkICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiCittc2dzdHIgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBHcsO2w59lIGRlciBSQU1ESVNLIHNldHplbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBWSURFT01PREUgYmVpIEJvb3RlbiBzZXR6ZW4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODMKK21zZ2lkICIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAgdXNlIHRoZSBieXRlIG9mZnNldCBOIgorbXNnc3RyICIgIHJkZXYgLW8gTiDigKYgICAgICAgICAgICAgICAgICAgICBCeXRlLU9mZnNldCBOIGJlbnV0emVuIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg0Cittc2dpZCAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtUiIKK21zZ3N0ciAiICByb290ZmxhZ3Mg4oCmICAgICAgICAgICAgICAgICAgICAgZGFzIGdsZWljaGUgd2llIHJkZXYgLVIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODUKK21zZ2lkICIgIHJhbXNpemUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1yIgorbXNnc3RyICIgIHJhbXNpemUg4oCmICAgICAgICAgICAgICAgICAgICAgICBkYXMgZ2xlaWNoZSB3aWUgcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSDigKYgICAgICAgICAgICAgICAgICAgICAgIGRhcyBnbGVpY2hlIHdpZSByZGV2IC12IgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg3Cittc2dpZCAiIgorIk5vdGU6IHZpZGVvIG1vZGVzIGFyZTogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLCAxPWtleTEsIDI9a2V5MiwuLi4iCittc2dzdHIgIiIKKyJCZW0uOiBWaWRlb21vZGkgc2luZDogLTM9ZnJhZ2VuLCAtMj1FcndlaXRlcnQsIC0xPU5vcm1hbFZHQSwgMT1zY2hsw7xzc2VsMSwg4oCmIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiIKKyIgICAgICBuZWhtZW4gU2llIC1SIDEsIHVtIGltIE51ci1MZXNlbi1Nb2R1cyBlaW56dWjDpG5nZW4sIC1SIDAgZsO8ciBsZXNlbi8iCisic2NocmVpYmVuLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzoyNDUKK21zZ2lkICJtaXNzaW5nIGNvbW1hIgorbXNnc3RyICJmZWhsZW5kZXMgS29tbWEiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjcyIHRleHQtdXRpbHMvbW9yZS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICJTcGVpY2hlciBpc3QgYWxsZSIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6IFwiJXMgW29wdGlvbnNdXG4iCisiXHQgLW0gPG1hcGZpbGU+ICAoZGVmYXVsdHM6IFwiJXNcIiBhbmRcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsZT4gKGRlZmF1bHQ6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIgdG8gPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBwcmludCBvbmx5IGluZm8gYWJvdXQgdGhlIHNhbXBsaW5nIHN0ZXBcbiIKKyJcdCAtdiAgICAgICAgICAgIHByaW50IHZlcmJvc2UgZGF0YVxuIgorIlx0IC1hICAgICAgICAgICAgcHJpbnQgYWxsIHN5bWJvbHMsIGV2ZW4gaWYgY291bnQgaXMgMFxuIgorIlx0IC1iICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBoaXN0b2dyYW0tYmluIGNvdW50c1xuIgorIlx0IC1zICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBjb3VudGVycyB3aXRoaW4gZnVuY3Rpb25zXG4iCisiXHQgLXIgICAgICAgICAgICByZXNldCBhbGwgdGhlIGNvdW50ZXJzIChyb290IG9ubHkpXG4iCisiXHQgLW4gICAgICAgICAgICBkaXNhYmxlIGJ5dGUgb3JkZXIgYXV0by1kZXRlY3Rpb25cbiIKKyJcdCAtViAgICAgICAgICAgIHByaW50IHZlcnNpb24gYW5kIGV4aXRcbiIKK21zZ3N0ciAiIgorIiVzOiBBdWZydWY6ICVzIFtvcHRpb25lbl1cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChWb3JlaW5zdGVsbHVuZyA9IOKAniVz4oCcXG4iCisiXHQgICAgICAgICAgICAgICAgIHVuZCDigJ4lc+KAnClcbiIKKyJcdCAtcCA8cHJvLWZpbGU+IChWb3JlaW5zdGVsbHVuZyA9IOKAniVz4oCcKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgUHJvZmlsaW5nLU11bHRpcGxpZXIgYXVmIDxtdWx0PiBzZXR6ZW5cbiIKKyJcdCAtaSAgICAgICAgICAgIG51ciBJbmZvcm1hdGlvbmVuIMO8YmVyIGRpZSBTY2hyaXR0d2VpdGUgYXVzZ2ViZW5cbiIKKyJcdCAtdiAgICAgICAgICAgIGF1c2bDvGhybGljaGUgRGF0ZW4gYXVzZ2ViZW5cbiIKKyJcdCAtYSAgICAgICAgICAgIGFsbGUgU3ltYm9sZSBhdXNnZWJlbiwgYXVjaCB3ZW5uIFrDpGhsZXIgMCBpc3RcbiIKKyJcdCAtYiAgICAgICAgICAgIGVpbnplbG5lIEhpc3RvZ3JhbW0tRWltZXItWsOkaGxlciBhdXNnZWJlblxuIgorIlx0IC1zICAgICAgICAgICAgZWluemVsbmUgWsOkaGxlciBpbm5lcmhhbGIgdm9uIEZ1bmt0aW9uZW4gYXVzZ2ViZW5cbiIKKyJcdCAtciAgICAgICAgICAgIGFsbGUgWsOkaGxlciB6dXLDvGNrc2V0emVuIChudXIgcm9vdClcbiIKKyJcdCAtbiAgICAgICAgICAgIEJ5dGUtQW5vcmRudW5ncy1Fcmtlbm51bmcgYWJzY2hhbHRlblxuIgorIlx0IC1WICAgICAgICAgICAgVmVyc2lvbnNpbmZvcm1hdGlvbiBhdXNnZWJlbiB1bmQgYmVlbmRlblxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJtb3VudDogRmVobGVyIGJlaW0gU2NocmVpYmVuIHZvbiAlczogJXMiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyByZXZlcnNlZCBieXRlIG9yZGVyLiBVc2UgLW4gdG8gZm9yY2UgbmF0aXZlIGJ5dGUgb3JkZXIuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6Mjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCittc2dzdHIgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMwNSBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzKCVpKTogd3JvbmcgbWFwIGxpbmVcbiIKK21zZ3N0ciAiJXM6ICVzKCVpKTogZmFsc2NoZSBUYWJlbGxlbi1aZWlsZVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIgorbXNnc3RyICIlczogS29ubnRlIOKAnl9zdGV4dOKAnCBuaWNodCBpbiAlcyBmaW5kZW5cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBwcm9maWxlIGFkZHJlc3Mgb3V0IG9mIHJhbmdlLiBXcm9uZyBtYXAgZmlsZT9cbiIKK21zZ3N0ciAiJXM6IFByb2ZpbC1BZHJlc3NlIGF1w59lcmhhbGIgZGVzIEJlcmVpY2hzLiBGYWxzY2hlIE1hcC1EYXRlaT9cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NDEyCittc2dpZCAidG90YWwiCittc2dzdHIgImdlc2FtdCIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIyAibWtmcyBhdXMgdXRpbC1saW51eC0yLjEwZCIKKyMgIm1rZnMgdm9uIHV0aWwtbGludXgtMi4xMGQiCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlbmljZSBmcm9tICVzXG4iCittc2dzdHIgIiVzIHZvbiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6IFVuYmVrYW5udGVyIEJlbnV0emVyOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTM0CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICJyZW5pY2U6IFVuZ8O8bHRpZ2VyIFdlcnQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6IEFsdGUgUHJpb3JpdMOkdDogJWQsIG5ldWUgUHJpb3JpdMOkdDogJWRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisiQXVmcnVmOiAlcyBbb3B0aW9uZW5dXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGdlcsOkdD4gICAgIHp1IGJlbnV0emVuZGVzIFJUQy1HZXLDpHQgKHJ0YzB8cnRjMXzigKYpXG4iCisiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIGJlbnV0enQgbG9rYWxlIFplaXR6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW184oCmIFNjaGxhZm1vZHVzXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxzZWt1bmRlPiAgenUgc2NobGFmZW5kZSBTZWt1bmRlblxuIgorIiAgICAtdCB8IC0tdGltZSA8dGltZV90PiAgICAgIFplaXQgenVtIEF1ZndhY2hlblxuIgorIiAgICAtdSB8IC0tdXRjICAgICAgICAgICAgICAgIFJUQyBiZW51dHp0IFVUQ1xuIgorIiAgICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgIGF1c2bDvGhybGljaGUgTmFjaHJpY2h0ZW5cbiIKKyIgICAgLVYgfCAtLXZlcnNpb24gICAgICAgICAgICBWZXJzaW9uIGFuemVpZ2VuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAiUlRDLVplaXQgbGVzZW4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQ3Cittc2dpZCAicmVhZCBzeXN0ZW0gdGltZSIKK21zZ3N0ciAiU3lzdGVtLVplaXQgbGVzZW4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTY1Cittc2dpZCAiY29udmVydCBydGMgdGltZSIKK21zZ3N0ciAiUlRDLVplaXQga29udmVydGllcmVuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyNAorbXNnaWQgInNldCBydGMgYWxhcm0iCittc2dzdHIgIlJUQy1BbGFybSBzZXR6ZW4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI4Cittc2dpZCAiZW5hYmxlIHJ0YyBhbGFybSIKK21zZ3N0ciAiUlRDLUFsYXJtIGFrdGl2aWVyZW4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjMyCittc2dpZCAic2V0IHJ0YyB3YWtlIGFsYXJtIgorbXNnc3RyICJSVEMtV2Vjay1BbGFybSBzZXR6ZW4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIiAlczogbmljaHQgZXJrYW5udGVyIEVuZXJnaWVzcGFybW9kdXMg4oCeJXPigJxcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICIlczogdW56dWzDpHNzaWdlcyBJbnRlcnZhbGwgJXMgU2VrdW5kZW5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiB1bnp1bMOkc3NpZ2UgdGltZV90LVdlcnQgJXNcbiIKKworIyBjLWZvcm1hdAorIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHZlcnNpb24gJXNcbiIKK21zZ3N0ciAiJXM6IFZlcnNpb24gJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGFzc3VtaW5nIFJUQyB1c2VzIFVUQyAuLi5cbiIKK21zZ3N0ciAiJXM6IGludGVycHJldGllcmUgUlRDIGFscyBVVEMg4oCmXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAiQmVudXR6ZSAlcy1aZWl0LlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgbG9jYWwgdGltZS5cbiIKK21zZ3N0ciAiQmVudXR6ZSAlcy1aZWl0LlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIgorbXNnc3RyICIlczogV2Vja3plaXQgbXVzcyBhbmdlZ2ViZW4gd2VyZGVuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3Cittc2dpZCAibWFsbG9jKCkgZmFpbGVkIgorbXNnc3RyICLigJ5tYWxsb2PigJwgc2NobHVnIGZlaGwiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgZW5hYmxlZCBmb3Igd2FrZXVwIGV2ZW50c1xuIgorbXNnc3RyICIlczogJXMgbmljaHQgZsO8ciBXZWNrZXJlaWduaXNzZSBnZWVpZ25ldFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgIkFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIFNla3VuZGVuICV1XG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aW1lIGRvZXNuJ3QgZ28gYmFja3dhcmQgdG8gJXNcbiIKK21zZ3N0ciAiJXM6IFplaXQgZ2VodCBuaWNodCByw7xja3fDpHJ0cyB6dSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIiVzOiBXZWNrZXJlaWduaXMgdm9uIOKAniVz4oCcLCBiZW51dHplICVzIGJlaSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIlczoga29ubnRlICVzIG5pY2h0IGluICVzIHVtYmVuZW5uZW46ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDk2Cittc2dpZCAicnRjIHJlYWQiCittc2dzdHIgIlJUQyBnZWxlc2VuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjUwNQorbXNnaWQgImRpc2FibGUgcnRjIGFsYXJtIGludGVycnVwdCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGluZyBvbiAlcy5cbiIKK21zZ3N0ciAiU2NoYWx0ZSBhdWYgJXMuXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMlcyBbb3B0aW9uc10gW3Byb2dyYW0gW3Byb2dyYW0gYXJndW1lbnRzXV1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiQXVmcnVmOiAlcyVzIFtvcHRpb25lbl0gW3Byb2dyYW1tIFtwcm9ncmFtbS1hcmd1bWVudGVdXVxuIgorIlxuIgorIk9wdGlvbmVuOlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAtdiwgLS12ZXJib3NlICAgICAgICAgICAgc2F5cyB3aGF0IG9wdGlvbnMgYXJlIGJlaW5nIHN3aXRjaGVkIG9uXG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplICBkaXNhYmxlcyByYW5kb21pemF0aW9uIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3MgIgorInNwYWNlXG4iCisiIC1GLCAtLWZkcGljLWZ1bmNwdHJzICAgICBtYWtlcyBmdW5jdGlvbiBwb2ludGVycyBwb2ludCB0byBkZXNjcmlwdG9yc1xuIgorIiAtWiwgLS1tbWFwLXBhZ2UtemVybyAgICAgdHVybnMgb24gTU1BUF9QQUdFX1pFUk9cbiIKKyIgLUwsIC0tYWRkci1jb21wYXQtbGF5b3V0IGNoYW5nZXMgdGhlIHdheSB2aXJ0dWFsIG1lbW9yeSBpcyBhbGxvY2F0ZWRcbiIKKyIgLVgsIC0tcmVhZC1pbXBsaWVzLWV4ZWMgIHR1cm5zIG9uIFJFQURfSU1QTElFU19FWEVDXG4iCisiIC1CLCAtLTMyYml0ICAgICAgICAgICAgICB0dXJucyBvbiBBRERSX0xJTUlUXzMyQklUXG4iCisiIC1JLCAtLXNob3J0LWlub2RlICAgICAgICB0dXJucyBvbiBTSE9SVF9JTk9ERVxuIgorIiAtUywgLS13aG9sZS1zZWNvbmRzICAgICAgdHVybnMgb24gV0hPTEVfU0VDT05EU1xuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgdHVybnMgb24gU1RJQ0tZX1RJTUVPVVRTXG4iCisiIC0zLCAtLTNnYiAgICAgICAgICAgICAgICBsaW1pdHMgdGhlIHVzZWQgYWRkcmVzcyBzcGFjZSB0byBhIG1heGltdW0gb2YgMyAiCisiR0JcbiIKKyIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGlnbm9yZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiRsO8ciB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4gc2llaGUgc2V0YXJjaCg4KS5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIiVzOiAlc1xuIgorIuKAniVzIC0taGVscOKAnCBnaWJ0IHdlaXRlcmUgSW5mb3JtYXRpb25lbi5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyMTUgc3lzLXV0aWxzL3NldGFyY2guYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVucmVjb2duaXplZCBhcmNoaXRlY3R1cmUiCittc2dzdHIgIiVzOiBuaWNodCBlcmthbm50ZSBBcmNoaXRla3R1ciIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKK21zZ2lkICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK21zZ3N0ciAiTmljaHQgZ2VudWcgQXJndW1lbnRlIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gc2V0IHBlcnNvbmFsaXR5IHRvICVzIgorbXNnc3RyICJLb25udGUgUGVyc8O2bmxpY2hrZWl0IG5pY2h0IGF1ZiAlcyBzZXR6ZW4iCisKKyM6IHN5cy11dGlscy9zZXRzaWQuYzoyNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIKK21zZ3N0ciAiQXVmcnVmOiAlcyBQcm9ncmFtbSBbQXJndW1lbnQg4oCmXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyA8ZGV2aWNlPiBbIC1pIDxJUlE+IHwgLXQgPFRJTUU+IHwgLWMgPENIQVJTPiB8IC13IDxXQUlUPiB8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorIkF1ZnJ1ZjogJXMgPGdlcsOkdD4gWyAtaSA8SVJRPiB8IC10IDxaRUlUPiB8IC1jIDxaRUlDSEVOPiB8IC13IDxXQVJURU4+IHwgXG4iCisiICAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo5MQorbXNnaWQgIm1hbGxvYyBlcnJvciIKK21zZ3N0ciAiRmVobGVyIGJlaSBtYWxsb2MiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIlczogVW5nw7xsdGlnZXIgV2VydFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgYW4gbHAgZGV2aWNlLlxuIgorbXNnc3RyICIlczogJXMgaXN0IGtlaW4gbHAtR2Vyw6R0LlxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN0YXR1cyBpcyAlZCIKK21zZ3N0ciAiRGVyIFN0YXR1cyB2b24gJXMgaXN0ICVkIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgYnVzeSIKK21zZ3N0ciAiLCBiZWxlZ3QiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCBiZXJlaXQiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiwga2VpbiBQYXBpZXIiCisKKyMgdGw6ICJiZXRyaWVic2JlcmVpdCIKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvbi1saW5lIgorbXNnc3RyICIsIG9uLWxpbmUiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCBGZWhsZXIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAi4oCeTFBHRVRJUlHigJwgRmVobGVyIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIlcyBiZW51dHp0IElSUSAlZFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMgYmVudXR6dCBQb2xsaW5nXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gPHByb2dyYW0+IFthcmdzLi4uXVxuIgorbXNnc3RyICJBdWZydWY6ICVzIFByb2dyYW1tIFtBcmd1bWVudCDigKZdXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjAKK21zZ2lkICIiCisiUnVuIHByb2dyYW0gd2l0aCBzb21lIG5hbWVzcGFjZXMgdW5zaGFyZWQgZnJvbSBwYXJlbnRcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgdW5zaGFyZSBtb3VudHMgbmFtZXNwYWNlXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIFVUUyBuYW1lc3BhY2UgKGhvc3RuYW1lIGV0YylcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorIiAgLW4sIC0tbmV0ICAgICAgICAgdW5zaGFyZSBuZXR3b3JrIG5hbWVzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdW5zaGFyZSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkbDvHIgd2VpdGVyZSBJbmZvcm1hdGlvbmVuIHNpZWhlIHNldGFyY2goOCkuXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE0CisjLCBmdXp6eQorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICLigJ5zZWVr4oCcIGdlc2NoZWl0ZXJ0LiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICLigJ5leGVj4oCcIGZlaGxnZXNjaGxhZ2VuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogYmFkIC1sIGFyZ3VtZW50ICVzLlxuIgorbXNnc3RyICJjb2w6IFVuZ8O8bHRpZ2VzIEFyZ3VtZW50ICVzIGbDvHIgZGllIE9wdGlvbiDigJ4tbOKAnC5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKK21zZ3N0ciAiQXVmcnVmOiBjb2wgWy1iZnB4XSBbLWwgQW56YWhsWmVpbGVuXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdyaXRlIGVycm9yLlxuIgorbXNnc3RyICJjb2w6IEZlaGxlciBiZWltIFNjaHJlaWJlbi5cbiIKKworIyAlcyBjYW4gYmUgb25lIG9mIHRoZSB0d28gZm9sbG93aW5nIHRleHRzLgorIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6IFdhcm51bmc6IGthbm4gbmljaHQgenVyw7xjayAlcy5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICJwYXN0IGZpcnN0IGxpbmUiCittc2dzdHIgIsO8YmVyIGVyc3RlIFplaWxlIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgIi0tIGxpbmUgYWxyZWFkeSBmbHVzaGVkIgorbXNnc3RyICItLSBaZWlsZSBzY2hvbiBnZXNjaHJpZWJlbiIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICJBdWZydWY6ICVzIFsgLSBdIFsgLTIgXSBbIERhdGVpIOKApiBdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mjk3Cittc2dpZCAibGluZSB0b28gbG9uZyIKK21zZ3N0ciAiWmVpbGUgaXN0IHp1IGxhbmciCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiQXVmcnVmOiBjb2x1bW4gWy10eF0gWy1jIFNwYWx0ZW5dIFtEYXRlaSDigKZdXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdW5nw7xsdGlnZXIgTMOkbmdlbndlcnQuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IHVuZ8O8bHRpZ2VyIMOcYmVyc3ByaW5nLVdlcnQuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmbXRdIFstZiBmbXRfZmlsZV0gWy1uIGxlbmd0aF0gWy1zIHNraXBdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9kYXRlaV0gWy1uIGzDpG5nZV0gWy1zIMO8YmVyc3ByaW5nZW5dICIKKyJbZGF0ZWkg4oCmXVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSBuYW1lMSBuYW1lMiAuLi5cbiIKK21zZ3N0ciAiIgorIkF1ZnJ1ZjogJXMgWy1kZmxwY3N1XSBbK1plaWxlbm51bW1lciB8ICsvTXVzdGVyXSBEYXRlaW5hbWUxIERhdGVpbmFtZTIg4oCmXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGluaXRpYWxpemUgbGluZSBidWZmZXJcbiIKK21zZ3N0ciAiS29ubnRlIGtlaW5lbiBTcGVpY2hlciBmw7xyIGVpbmVuIFB1ZmZlciByZXNlcnZpZXJlbi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIG9wdGlvbiBcIi0lY1wiXG4iCittc2dzdHIgIiVzOiBVbmJla2FubnRlIE9wdGlvbiDigJ4tJWPigJxcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczogVmVyemVpY2huaXMgKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjU2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqKioqKiogJXM6IE5vdCBhIHRleHQgZmlsZSAqKioqKioqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqKioqKiogJXM6IEtlaW5lIFRleHRkYXRlaSAqKioqKioqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo2NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1VzZSBxIG9yIFEgdG8gcXVpdF0iCittc2dzdHIgIltCZW51dHplbiBTaWUgcSBvZGVyIFEgenVtIEJlZW5kZW5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1Nb3JlLS0iCittc2dzdHIgIi0tTWVoci0tIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiKE5leHQgZmlsZTogJXMpIgorbXNnc3RyICIoTsOkY2hzdGUgRGF0ZWk6ICVzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyBzcGFjZSB0byBjb250aW51ZSwgJ3EnIHRvIHF1aXQuXSIKK21zZ3N0ciAiW0xlZXJ0YXN0ZSB6dW0gRm9ydGZhaHJlbiwg4oC6ceKAuSB6dW0gQmVlbmRlbi5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmJhY2sgJWQgcGFnZXMiCittc2dzdHIgIuKApiAlZCBTZWl0ZW4genVyw7xjayIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwOAorbXNnaWQgIi4uLmJhY2sgMSBwYWdlIgorbXNnc3RyICLigKYgZWluZSBTZWl0ZSB6dXLDvGNrIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUxCittc2dpZCAiLi4uc2tpcHBpbmcgb25lIGxpbmUiCittc2dzdHIgIuKApsO8YmVyc3ByaW5nZSBlaW5lIFplaWxlIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICLigKbDvGJlcnNwcmluZ2UgJWQgWmVpbGVuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjkwCittc2dpZCAiIgorIlxuIgorIioqKkJhY2sqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKlp1csO8Y2sqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMyOAorbXNnaWQgIiIKKyJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgRGVmYXVsdHMgaW4gIgorImJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisiXG4iCisiRGVuIG1laXN0ZW4gQmVmZWhsZW4ga2FubiBvcHRpb25hbCBlaW4gR2FuenphaGxhcmd1bWVudCBrIHZvcmF1c2dlaGVuOyBkaWVcbiIKKyJWb3JlaW5zdGVsbHVuZyBpbiBLbGFtbWVybi4gU3Rlcm5jaGVuICgqKSBiZWRldXRldCwgZGFzcyBkYXMgQXJndW1lbnQgZGllICIKKyJuZXVlXG4iCisiVm9yZWluc3RlbGx1bmcgd2lyZC5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMzNQorbXNnaWQgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIKK21zZ3N0ciAiIgorIjxMZWVydGFzdGU+ICAgICAgICAgICAgIGRpZSBuw6RjaHN0ZW4gayBaZWlsZW4gVGV4dCB6ZWlnZW4gW0JpbGRzY2hpcm1ncsO2w59lXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIGRpZSBuw6RjaHN0ZW4gayBaZWlsZW4gVGV4dCB6ZWlnZW4gW0JpbGRzY2hpcm1ncsO2w59lXSIKKyIqXG4iCisiPEVpbmdhYmU+ICAgICAgICAgICAgICAgZGllIG7DpGNoc3RlbiBrIFplaWxlbiBUZXh0IHplaWdlbiBbMV0qXG4iCisiZCBvZGVyIFN0cmctRCAgICAgICAgICAgayBaZWlsZW4gcm9sbGVuIFttb21lbnRhbmUgUm9sbGdyw7bDn2UsIGFuZmFuZ3MgMTFdKlxuIgorInEgb2RlciBRIG9kZXIgPFVudGJyPiAgIG1vcmUgYmVlbmRlblxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIGsgWmVpbGVuIFRleHQgdm9yd8OkcnRzc3ByaW5nZW4gWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgayBCaWxkc2NoaXJtZSBUZXh0IHZvcnfDpHJ0c3NwcmluZ2VuIFsxXVxuIgorImIgb2RlciBTdHJnLUIgICAgICAgICAgIGsgQmlsZHNjaGlybWUgVGV4dCByw7xja3fDpHJ0c3NwcmluZ2VuIFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIHp1bSBBbmZhbmcgZGVyIGxldHp0ZW4gU3VjaGUgZ2VoZW5cbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBtb21lbnRhbmUgWmVpbGVubnVtbWVyIHplaWdlblxuIgorIi88cmVndWzDpHJlciBBdXNkcnVjaz4gICBuYWNoIGt0ZW0gQXVmdHJldGVuIGRlcyByZWd1bMOkcmVuIEF1c2RydWNrcyBzdWNoZW4gIgorIlsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgIG5hY2gga3RlbSBBdWZ0cmV0ZW4gZGVzIGxldHp0ZW4gcmVnLiBBdXNkci4gc3VjaGVuICIKKyJbMV1cbiIKKyIhPGJlZj4gb2RlciA6ITxiZWY+ICAgICA8YmVmPiBpbiBlaW5lciBVbnRlcnNoZWxsIGF1c2bDvGhyZW5cbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICAvdXNyL2Jpbi92aSBhbiBtb21lbnRhbmVyIFplaWxlIHN0YXJ0ZW5cbiIKKyJTdHJnLUwgICAgICAgICAgICAgICAgICBTY2hpcm0gbmV1emVpY2huZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICB6dXIga3RlbiBuw6RjaHN0ZW4gRGF0ZWkgZ2VoZW4gWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAgenVyIGt0ZW4gdm9yaWdlbiBEYXRlaSBnZWhlbiBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBtb21lbnRhbmVuIERhdGVpbmFtZW4gdW5kIFplaWxlbm51bW1lciB6ZWlnZW5cbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICBsZXR6dGVuIEJlZmVobCB3aWVkZXJob2xlblxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIltEcsO8Y2tlbiBTaWUg4oC6aOKAuSBmw7xyIEhpbGZlLl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIuKAniVz4oCcIFplaWxlICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbS2VpbmUgRGF0ZWldIFplaWxlICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTI5Cittc2dpZCAiICBPdmVyZmxvd1xuIgorbXNnc3RyICIgIMOcYmVybGF1ZlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTc2Cittc2dpZCAiLi4uc2tpcHBpbmdcbiIKK21zZ3N0ciAi4oCmw5xiZXJzcHJpbmdlXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MDUKK21zZ2lkICJSZWd1bGFyIGV4cHJlc3Npb24gYm90Y2giCittc2dzdHIgIkZlaGxlciBiZWltIEF1c2bDvGhyZW4gdm9uIOKAnnJlX2V4ZWMoKeKAnCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiTXVzdGVyIHd1cmRlIG5pY2h0IGdlZnVuZGVuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAiTXVzdGVyIHd1cmRlIG5pY2h0IGdlZnVuZGVuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjc3Cittc2dpZCAiY2FuJ3QgZm9ya1xuIgorbXNnc3RyICJLYW5uIGtlaW5lbiBuZXVlbiBQcm96ZXNzIGVyemV1Z2VuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MTYKK21zZ2lkICIiCisiXG4iCisiLi4uU2tpcHBpbmcgIgorbXNnc3RyICIiCisiXG4iCisi4oCmw5xiZXJzcHJpbmdlICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMAorbXNnaWQgIi4uLlNraXBwaW5nIHRvIGZpbGUgIgorbXNnc3RyICLigKZTcHJpbmdlIHp1IERhdGVpIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAi4oCmU3ByaW5nZSB6dXLDvGNrIHp1IERhdGVpICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjAwMAorbXNnaWQgIkxpbmUgdG9vIGxvbmciCittc2dzdHIgIlplaWxlIGlzdCB6dSBsYW5nIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDQzCittc2dpZCAiTm8gcHJldmlvdXMgY29tbWFuZCB0byBzdWJzdGl0dXRlIGZvciIKK21zZ3N0ciAiS2VpbiB2b3JoZXJpZ2VyIEJlZmVobCwgZGVyIGVpbmdlZsO8Z3Qgd2VyZGVuIGvDtm5udGUiCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IG9kKDEpIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGhleGR1bXAoMSkuXG4iCittc2dzdHIgIm9kOiB2b24gb2QoMSkgd2lyZCB6dWd1bnN0ZW4gdm9uIGhleGR1bXAoMSkgYWJnZXJhdGVuLlxuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBoZXhkdW1wKDEpIGNvbXBhdGliaWxpdHkgZG9lc24ndCBzdXBwb3J0IHRoZSAtJWMgb3B0aW9uJXNcbiIKK21zZ3N0ciAib2Q6IEtvbXBhdGliaWxpdMOkdCBtaXQgaGV4ZHVtcCgxKSB1bnRlcnN0w7x0enQgZGllIE9wdGlvbiAtJWMgbmljaHQlc1xuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTM0Cittc2dpZCAiOyBzZWUgc3RyaW5ncygxKS4iCittc2dzdHIgIjsgc2llaGUgc3RyaW5ncygxKS4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBLb25udGUgJXMgbmljaHQgbGVzZW4uXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJoZXhkdW1wOiBaZWlsZSBpc3QgenUgbGFuZy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBCeXRlesOkaGxlciBtaXQgbWVocmVyZW4gS29udmVydGllcnVuZ3N6ZWljaGVuLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBieXRlIGNvdW50IGZvciBjb252ZXJzaW9uIGNoYXJhY3RlciAlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdW5nw7xsdGlnZXIgQnl0ZXrDpGhsZXIgZsO8ciBVbXdhbmRsdW5nc3plaWNoZW4gJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogJSVzIHJlcXVpcmVzIGEgcHJlY2lzaW9uIG9yIGEgYnl0ZSBjb3VudC5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogJSVzIGJlbsO2dGlndCBlaW5lbiBQcsOkemlzaW9ucy0gb2RlciBCeXRlesOkaGxlci5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDogVW5nw7xsdGlnZXMgRm9ybWF0IHslc31cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdW5nw7xsdGlnZXMgVW13YW5kbHVuZ3N6ZWljaGVuICUlJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMjMKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJTcGVpY2hlciBpc3QgYXVmZ2VicmF1Y2h0IgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6ICVzIFstbnVtYmVyXSBbLXAgc3RyaW5nXSBbLWNlZm5yc10gWytsaW5lXSBbKy9wYXR0ZXJuL10gW2ZpbGVzXVxuIgorbXNnc3RyICIiCisiJXM6IEF1ZnJ1ZjogJXMgWy16YWhsXSBbLXAgemtldHRlXSBbLWNlZm5yc10gWyt6ZWlsZV0gWysvbXVzdGVyL10gW2RhdGVpZW5dXG4iCisKKyMgbGliYzogIkRpZSBPcHRpb24g4oCeJXPigJwgZXJmb3JkZXJ0IGVpbiBBcmd1bWVudFxuIgorIzogdGV4dC11dGlscy9wZy5jOjI0NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IC0tICVzXG4iCittc2dzdHIgIiVzOiBPcHRpb24gZXJmb3JkZXJ0IGVpbiBBcmd1bWVudCAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczogdW56dWzDpHNzaWdlIE9wdGlvbiAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcwCittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICLigKZzcHJpbmdlIHZvcnfDpHJ0c1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcyCittc2dpZCAiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIKK21zZ3N0ciAi4oCmc3ByaW5nZSByw7xja3fDpHJ0c1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJLZWluZSBuw6RjaHN0ZSBEYXRlaSIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIktlaW4gdm9yaGVyZ2VoZW5kZSBEYXRlaSIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEZlaGxlciBiZWltIExlc2VuIGF1cyAlcy1EYXRlaVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmV4cGVjdGVkIEVPRiBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiB1bmVyd2FydGV0ZXMgRGF0ZWllbmRlIGluICVzLURhdGVpXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogdW5iZWthbm50ZXIgRmVobGVyIGluICVzLURhdGVpXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgY3JlYXRlIHRlbXBmaWxlXG4iCittc2dzdHIgIiVzOiBLb25udGUga2VpbmUgdGVtcG9yw6RyZSBEYXRlaSBhbmxlZ2VuLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTA0NCB0ZXh0LXV0aWxzL3BnLmM6MTIxOSB0ZXh0LXV0aWxzL3BnLmM6MTI0NgorbXNnaWQgIlJFIGVycm9yOiAiCittc2dzdHIgIkZlaGxlciBpbiByZWd1bMOkcmVtIEF1c2RydWNrOiAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIihEYXRlaWVuZGUpIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAiS2VpbiBnZW1lcmt0ZXIgU3VjaHRleHQiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICJLYW5uIG5pY2h0IMO2ZmZuZW4gIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICJnZXNwZWljaGVydCIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIjogIWJlZmVobCBpbSByZmxhZy1Nb2R1cyBuaWNodCBlcmxhdWJ0LlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ5NworbXNnaWQgImZvcmsoKSBmYWlsZWQsIHRyeSBhZ2FpbiBsYXRlclxuIgorbXNnc3RyICJmb3JrKCkgZmVobGdlc2NobGFnZW4sIHNww6R0ZXIgdmVyc3VjaGVuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNzA1Cittc2dpZCAiKE5leHQgZmlsZTogIgorbXNnc3RyICIoTsOkY2hzdGUgRGF0ZWk6ICIKKworIzogdGV4dC11dGlscy9yZXYuYzoxMTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJLb25udGUga2VpbmVuIFNwZWljaGVyIGbDvHIgZWluZW4gUHVmZmVyIHJlc2VydmllcmVuLlxuIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiQXVmcnVmOiByZXYgW0RhdGVpIOKApl1cbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjU4IHRleHQtdXRpbHMvdGFpbGYuYzo5MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gXCIlc1wiIGZvciByZWFkIgorbXNnc3RyICJLb25udGUg4oCeJXPigJwgbmljaHQgenVtIExlc2VuIMO2ZmZuZW5cbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjk2IHRleHQtdXRpbHMvdGFpbGYuYzoyMTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IFwiJXNcIiIKK21zZ3N0ciAia2FubiBuaWNodCBhdWYgR2Vyw6R0ICVzIHp1Z3JlaWZlbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJpbmNvbXBsZXRlIHdyaXRlIHRvIFwiJXNcIiAod3JpdHRlbiAlemQsIGV4cGVjdGVkICV6ZClcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2ggKGxpbWl0IG9mIGlub3RpZnkgd2F0Y2hlcyB3YXMgcmVhY2hlZCkuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaC4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCByZWFkIGlub3RpZnkgZXZlbnRzIgorbXNnc3RyICIlczogS29ubnRlICVzIG5pY2h0IMO2ZmZuZW5cbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE5OSB0ZXh0LXV0aWxzL3RhaWxmLmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIGxpbmVzIgorbXNnc3RyICJVbmfDvGx0aWdlIE51bW1lcjogJXNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorIywgZnV6enkKK21zZ2lkICJ1c2FnZTogdGFpbGYgWy1uIE4gfCAtTl0gbG9nZmlsZSIKK21zZ3N0ciAiQXVmcnVmOiB0YWlsZiBMb2dkYXRlaVxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgIkF1ZnJ1ZjogJXMgWyAtaSBdIFsgLXQgVGVybWluYWxuYW1lIF0gRGF0ZWkg4oCmXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICJQcm9ibGVtZSBiZWltIExlc2VuIGRlciB0ZXJtaW5mby1EYXRlbmJhbmsiCisKKyM6IHRleHQtdXRpbHMvdWwuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBlc2NhcGUgc2VxdWVuY2UgaW4gaW5wdXQ6ICVvLCAlb1xuIgorbXNnc3RyICJVbmJla2FubnRlIEVzY2FwZS1TZXF1ZW56IGluIGRlciBFaW5nYWJlOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJLb25udGUga2VpbmVuIFNwZWljaGVyIGbDvHIgZWluZW4gUHVmZmVyIHJlc2VydmllcmVuLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIkVpbmdhYmV6ZWlsZSBpc3QgenUgbGFuZy5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoZW4gZ3Jvd2luZyBidWZmZXIuXG4iCittc2dzdHIgIlNwZWljaGVyIGlzdCBhbGxlIGJlaW0gVmVyZ3LDtsOfZXJuIGVpbmVzIFB1ZmZlcnMuXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstYiBTU1pdIFstdV0gRElTSyAgICAgQ2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorI34gIiAgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdIERJU0sgIExpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisjfiAiICAgICAgIGZkaXNrIC1zIFBBUlRJVElPTiAgICAgICAgICAgR2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyN+ICIgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICBHaXZlIGZkaXNrIHZlcnNpb25cbiIKKyN+ICJIZXJlIERJU0sgaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGIgb3IgL2Rldi9zZGFcbiIKKyN+ICJhbmQgUEFSVElUSU9OIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhN1xuIgorI34gIi11OiBnaXZlIFN0YXJ0IGFuZCBFbmQgaW4gc2VjdG9yIChpbnN0ZWFkIG9mIGN5bGluZGVyKSB1bml0c1xuIgorI34gIi1iIDIwNDg6IChmb3IgY2VydGFpbiBNTyBkaXNrcykgdXNlIDIwNDgtYnl0ZSBzZWN0b3JzXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJBdWZydWY6IGZkaXNrIFstYiBTU1pdIFstdV0gRkVTVFBMQVRURSAgICAgUGFydGl0aW9uc3RhYmVsbGUgYmVhcmJlaXRlblxuIgorI34gIiAgICAgICAgZmRpc2sgLWwgWy1iIFNTWl0gWy11XSBGRVNUUExBVFRFICBQYXJ0aXRpb25zdGFiZWxsZShuKSBhdXNnZWJlblxuIgorI34gIiAgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICAgICAgICBHcsO2w59lIGVpbmVyIFBhcnRpdGlvbiBpbiAiCisjfiAiQmzDtmNrZW5cbiIKKyN+ICIgICAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiBhbnplaWdlblxuIgorI34gIlxuIgorI34gIkZFU1RQTEFUVEUgaXN0IHp1bSBCZWlzcGllbCAvZGV2L2hkYSBvZGVyIC9kZXYvc2RhXG4iCisjfiAiUEFSVElUSU9OIGlzdCB6dW0gQmVpc3BpZWwgL2Rldi9oZGE3XG4iCisjfiAiXG4iCisjfiAiLXU6IOKAnkFuZmFuZ+KAnCB1bmQg4oCeRW5kZeKAnCB3ZXJkZW4gaW4gU2VrdG9yZW4gc3RhdHQgaW4gWnlsaW5kZXJuIGFuZ2VnZWJlblxuIgorI34gIi1iIDIwNDg6IChmw7xyIGJlc3RpbW10ZSBNTy1HZXLDpHRlKSAyMDQ4LUJ5dGUtU2VrdG9yZW4gYmVudXR6ZW5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGRldmljZVxuIgorI34gIkUuZy46IGZkaXNrIC9kZXYvaGRhICAoZm9yIHRoZSBmaXJzdCBJREUgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3NkYyAgKGZvciB0aGUgdGhpcmQgU0NTSSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvZWRhICAoZm9yIHRoZSBmaXJzdCBQUy8yIEVTREkgZHJpdmUpXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9yZC9jMGQwICBvcjogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKGZvciBSQUlEIGRldmljZXMpXG4iCisjfiAiICAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkF1ZnJ1ZjogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIEdlcsOkdFxuIgorI34gIlp1bSBCZWlzcGllbDogZmRpc2sgL2Rldi9oZGEgICAgICAgKGRpZSBlcnN0ZSBJREUtRmVzdHBsYXR0ZSlcbiIKKyN+ICIgICAgICAgIG9kZXI6IGZkaXNrIC9kZXYvc2RjICAgICAgIChkaWUgZHJpdHRlIFNDU0ktRmVzdHBsYXR0ZSlcbiIKKyN+ICIgICAgICAgIG9kZXI6IGZkaXNrIC9kZXYvZWRhICAgICAgIChkaWUgZXJzdGUgUFMvMiBFU0RJLUZlc3RwbGF0dGUpXG4iCisjfiAiICAgICAgICBvZGVyOiBmZGlzayAvZGV2L3JkL2MwZDBcbiIKKyN+ICIgICAgICAgIG9kZXI6IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChSQUlELUZlc3RwbGF0dGVuKVxuIgorI34gIiAgICAgICAg4oCmXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiXG4iCisjfiAiVGhlIG51bWJlciBvZiBjeWxpbmRlcnMgZm9yIHRoaXMgZGlzayBpcyBzZXQgdG8gJWQuXG4iCisjfiAiVGhlcmUgaXMgbm90aGluZyB3cm9uZyB3aXRoIHRoYXQsIGJ1dCB0aGlzIGlzIGxhcmdlciB0aGFuIDEwMjQsXG4iCisjfiAiYW5kIGNvdWxkIGluIGNlcnRhaW4gc2V0dXBzIGNhdXNlIHByb2JsZW1zIHdpdGg6XG4iCisjfiAiMSkgc29mdHdhcmUgdGhhdCBydW5zIGF0IGJvb3QgdGltZSAoZS5nLiwgb2xkIHZlcnNpb25zIG9mIExJTE8pXG4iCisjfiAiMikgYm9vdGluZyBhbmQgcGFydGl0aW9uaW5nIHNvZnR3YXJlIGZyb20gb3RoZXIgT1NzXG4iCisjfiAiICAgKGUuZy4sIERPUyBGRElTSywgT1MvMiBGRElTSylcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlxuIgorI34gIkRpZSBBbnphaGwgZGVyIFp5bGluZGVyIGbDvHIgZGllc2UgUGxhdHRlIGlzdCBhdWYgJWQgZ2VzZXR6dC5cbiIKKyN+ICJEYXJhbiBpc3QgbmljaHRzIHZlcmtlaHJ0LCBhYmVyIGRhcyBpc3QgZ3LDtsOfZXIgYWxzIDEwMjQgdW5kIGthbm5cbiIKKyN+ICJpbiBiZXN0aW1tdGVuIEtvbmZpZ3VyYXRpb25lbiBQcm9ibGVtZSBoZXJ2b3JydWZlbiBtaXQ6XG4iCisjfiAiMSkgU29mdHdhcmUsIGRpZSB6dW0gQm9vdHplaXRwdW5rdCBsw6R1ZnQgKHouIEIuIMOkbHRlcmUgTElMTy1WZXJzaW9uZW4pXG4iCisjfiAiMikgQm9vdC0gdW5kIFBhcnRpdGlvbmllcnVuZ3Nzb2Z0d2FyZSBhbmRlcmVyIEJldHJpZWJzc3lzdGVtZVxuIgorI34gIiAgICh6LiBCLiBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAib3V0IGlmIG1lbW9yeSIKKyN+IG1zZ3N0ciAiU3BlaWNoZXIgaXN0IGFsbGUiCisKKyN+IG1zZ2lkICIjIHBhcnRpdGlvbiB0YWJsZSBvZiAlc1xuIgorI34gbXNnc3RyICIjIFBhcnRpdGlvbnN0YWJlbGxlIHZvbiAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICJ1bml0OiBzZWN0b3JzXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgIlN1bk9TIGFsdCBzZWN0b3JzIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICJBbmZhbmciCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBzaXplPSU5bHUiCisjfiBtc2dzdHIgIk1heHNpemU9JWxkXG4iCisKKyMgImJvb3Rmw6RoaWciCisjLCBmdXp6eQorI34gbXNnaWQgIiwgYm9vdGFibGUiCisjfiBtc2dzdHIgIkFJWCBib290ZsOkaGlnIgorCisjLCBmdXp6eQorI34gbXNnaWQgIkNsb2NrIGluIFVUQywgbm90IGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIlNoZWxsIG5pY2h0IGdlw6RuZGVydC5cbiIKKworI34gbXNnaWQgIiVzOiBlcnJvcjogbGFiZWwgb25seSB3aXRoIHYxIHN3YXAgYXJlYVxuIgorI34gbXNnc3RyICIlczogRmVobGVyOiBMYWJlbCBudXIgbWl0IFYxLVN3YXBiZXJlaWNoXG4iCisKKyN+IG1zZ2lkICJmYXRhbDogZmlyc3QgcGFnZSB1bnJlYWRhYmxlIgorI34gbXNnc3RyICJmYXRhbDogZXJzdGUgU2VpdGUgbmljaHQgbGVzYmFyIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICIlczogRGV2aWNlICclcycgY29udGFpbnMgYSB2YWxpZCBTdW4gZGlza2xhYmVsLlxuIgorI34gIlRoaXMgcHJvYmFibHkgbWVhbnMgY3JlYXRpbmcgdjAgc3dhcCB3b3VsZCBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlLlxuIgorI34gIk5vIHN3YXAgd2FzIGNyZWF0ZWQuIElmIHlvdSByZWFsbHkgd2FudCB0byBjcmVhdGUgdjAgc3dhcCBvbiB0aGF0ICIKKyN+ICJkZXZpY2UsXG4iCisjfiAidXNlIHRoZSAtZiBvcHRpb24gdG8gZm9yY2UgaXQuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczogRGFzIEdlcsOkdCAlcyBlbnRow6RsdCBlaW5lbiBnw7xsdGlnZW4g4oCeU3VuIGRpc2tsYWJlbOKAnC5cbiIKKyN+ICJEYXMgYmVkZXV0ZXQgd2FocnNjaGVpbmxpY2gsIGRhc3MgZGFzIEFubGVnZW4gZWluZXMgdjDigJBTd2FwYmVyZWljaGVzIGRpZVxuIgorI34gIlBhcnRpdGlvbnN0YWJlbGxlIHplcnN0w7ZyZW4gd2lyZC5cbiIKKyN+ICJFcyB3aXJkIGtlaW4gU3dhcGJlcmVpY2ggYW5nZWxlZ3QuIFdlbm4gU2llIHdpcmtsaWNoIGVpbmVuIFN3YXBiZXJlaWNoXG4iCisjfiAiYW5sZWdlbiB3b2xsZW4sIHNvIGJlbnV0emVuIFNpZSBkaWUgT3B0aW9uIC1mLlxuIgorCisjfiBtc2dpZCAibmFtZWk6IHVuYWJsZSB0byBnZXQgY3VycmVudCBkaXJlY3RvcnkgLSAlc1xuIgorI34gbXNnc3RyICJuYW1laTogS29ubnRlIGRhcyBha3R1ZWxsZSBWZXJ6ZWljaG5pcyBuaWNodCBmZXN0c3RlbGxlbjogJXNcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gY2hkaXIgdG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBLb25udGUgbmljaHQgaW4gZGFzIFZlcnplaWNobmlzICVzIHdlY2hzZWxuIOKAkyAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IGNoZGlyIHRvIHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBLb25udGUgbmljaHQgaW4gZGFzIHJvb3QtVmVyemVpY2huaXMgd2VjaHNlbG4hXG4iCisKKyMgWFhYCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBzdGF0IHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBLb25udGUgbmljaHQgYXVmIFd1cnplbHZlcnplaWNobmlzIHp1Z3JlaWZlbiFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IFB1ZmZlci3DnGJlcmxhdWZcbiIKKworI34gbXNnaWQgIiA/IGNvdWxkIG5vdCBjaGRpciBpbnRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyBLb25udGUgbmljaHQgaW4gZGFzIFZlcnplaWNobmlzICVzIHdlY2hzZWxuIOKAkyAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IFByb2JsZW1lIGJlaW0gTGVzZW4gZGVyIHN5bWJvbGlzY2hlbiBWZXJrbsO8cGZ1bmcgJXMg4oCTICVzICglZClcbiIKKworI34gbXNnaWQgIiAgKioqIEVYQ0VFREVEIFVOSVggTElNSVQgT0YgU1lNTElOS1MgKioqXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIgICoqKiBEaWUgbWF4aW1hbGUgWmFobCBkZXIgc3ltYm9saXNjaGVuIFZlcmtuw7xwZnVuZ2VuIHd1cmRlICIKKyN+ICLDvGJlcnNjaHJpdHRlbiAqKipcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmtub3duIGZpbGUgdHlwZSAwJTA2byBvbiBmaWxlICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBVbmJla2FubnRlciBEYXRlaXR5cCAwJTA2byBkZXIgRGF0ZWkgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJtb3VudDogZ29pbmcgdG8gbW91bnQgJXMgYnkgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHdlcmRlICVzIG1pdHRlbHMgVVVJRCBlaW5ow6RuZ2VuXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAibW91bnQ6IG5vIExBQkVMPSwgbm8gVVVJRD0sIGdvaW5nIHRvIG1vdW50ICVzIGJ5IHBhdGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHdlcmRlICVzIG1pdHRlbHMgTGFiZWwgZWluaMOkbmdlblxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBjYW5ub3QgZm9yazogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IEthbm4ga2VpbmVuIG5ldWVuIFByb3plc3MgZXJ6ZXVnZW4gKGZvcmspXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IHdhaXRwaWQ6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiBmZWhsc2NobGFnZW5lcyDDlmZmbmVuIHZvbjogJXNcbiIKKworIyBzdGF0CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBzdGF0ICVzOiAlc1xuIgorI34gbXNnc3RyICIlczogS29ubnRlIOKAnnN0YXTigJwgbmljaHQgYXVmICVzIGFud2VuZGVuOiAlc1xuIgorCisjfiBtc2dpZCAiY291bGQgbm90IHVtb3VudCAlcyAtIHRyeWluZyAlcyBpbnN0ZWFkXG4iCisjfiBtc2dzdHIgImtvbm50ZSAlcyBuaWNodCBhdXNow6RuZ2VuIOKAkyB2ZXJzdWNoZSBzdGF0dGRlc3NlbiAlc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTI2LjI0cyAlLTI2LjI0c1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJjaGZuOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImxvZ2luOiBQQU0tRmVobHNjaGxhZywgYnJlY2hlIGFiOiAlc1xuIgorCisjfiBtc2dpZCAiQ2FuJ3QgcmVhZCAlcywgZXhpdGluZy4iCisjfiBtc2dzdHIgIkthbm4gJXMgbmljaHQgbGVzZW4sIGJlZW5kZS4iCisKKyN+IG1zZ2lkICJsb2dpbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjogUEFNLUZlaGxzY2hsYWcsIGJyZWNoZSBhYjogJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDog4oCeJXPigJwgd2lyZCBpbSBIaW50ZXJncnVuZCBmb3J0Z2VzZXR6dFxuIgorCisjIE5vdCByZWFsbHkgbmljZQorI34gbXNnaWQgIm1vdW50OiBnaXZpbmcgdXAgXCIlc1wiXG4iCisjfiBtc2dzdHIgIm1vdW50OiDigJ4lc+KAnCBzY2hsdWcgZmVobFxuIgorCisjIERlYnVnLVpldWdzCisjfiBtc2dpZCAiY2FsbGluZyBvcGVuX3R0eVxuIgorI34gbXNnc3RyICJjYWxsaW5nIG9wZW5fdHR5XG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIHRlcm1pb19pbml0XG4iCisjfiBtc2dzdHIgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKworI34gbXNnaWQgIndyaXRpbmcgaW5pdCBzdHJpbmdcbiIKKyN+IG1zZ3N0ciAid3JpdGluZyBpbml0IHN0cmluZ1xuIgorCisjfiBtc2dpZCAiYmVmb3JlIGF1dG9iYXVkXG4iCisjfiBtc2dzdHIgImJlZm9yZSBhdXRvYmF1ZFxuIgorCisjfiBtc2dpZCAid2FpdGluZyBmb3IgY3ItbGZcbiIKKyN+IG1zZ3N0ciAid2FpdGluZyBmb3IgY3ItbGZcbiIKKworI34gbXNnaWQgInJlYWRpbmcgbG9naW4gbmFtZVxuIgorI34gbXNnc3RyICJyZWFkaW5nIGxvZ2luIG5hbWVcbiIKKworI34gbXNnaWQgImFmdGVyIGdldG9wdCBsb29wXG4iCisjfiBtc2dzdHIgImFmdGVyIGdldG9wdCBsb29wXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlYXJnc1xuIgorI34gbXNnc3RyICJleGl0aW5nIHBhcnNlYXJnc1xuIgorCisjfiBtc2dpZCAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKyN+IG1zZ3N0ciAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VzcGVlZHNcbiIKKyN+IG1zZ3N0ciAiZXhpdGluZyBwYXJzZXNwZWVkc1xuIgorCisjIGRlYnVnCisjfiBtc2dpZCAib3BlbigyKVxuIgorI34gbXNnc3RyICJvcGVuKDIpXG4iCisKKyN+IG1zZ2lkICJkdXBpbmdcbiIKKyN+IG1zZ3N0ciAiZHVwaW5nXG4iCisKKyN+IG1zZ2lkICJ0ZXJtX2lvIDJcbiIKKyN+IG1zZ3N0ciAidGVybV9pbyAyXG4iCisKKyMgVW50ZW4gbm9jaCBtYWwgbWl0IFB1bmt0CisjfiBtc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHNcbiIKKyN+IG1zZ3N0ciAiV2FybnVuZzog4oCeJXPigJwgaXN0IG5pY2h0IGluIC9ldGMvc2hlbGxzIGF1ZmdlZsO8aHJ0XG4iCisKKyMgZGVidWcKKyN+IG1zZ2lkICJ0aW1lb3V0ID0gJWQsIHF1aWV0ID0gJWQsIHJlYm9vdCA9ICVkXG4iCisjfiBtc2dzdHIgInRpbWVvdXQgPSAlZCwgcXVpZXQgPSAlZCwgcmVib290ID0gJWRcbiIKKworI34gbXNnaWQgImNvdWxkbid0IHJlYWQgJXMsIGFuZCBjYW5ub3QgaW9jdGwgZHVtcFxuIgorI34gbXNnc3RyICJrb25udGUgJXMgbmljaHQgbHNlc24sIHVuZCBrYW5uIElvY3RsLUR1bXAgbmljaHQgZHVyY2hmw7xocmVuXG4iCisKKyN+IG1zZ2lkICIsIG9mZnNldCAlbGxkIgorI34gbXNnc3RyICIsIE9mZnNldCAlbGxkIgorCisjfiBtc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBkZXZpY2UgL2Rldi9sb29wIyIKKyN+IG1zZ3N0ciAiJXM6IEtvbm50ZSBrZWluIEdlcsOkdCAvZGV2L2xvb3AjIGZpbmRlbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy1lXSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gWy1wIHByaW9yaXR5XSBzcGVjaWFsfExBQkVMPXZvbHVtZV9uYW1lIC4uLlxuIgorI34gIiAgICAgICAlcyBbLXNdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJBdWZydWY6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgICVzIFstdl0gWy1wIFByaW9yaXTDpHRdIFNwZXppYWxkYXRlaXxMQUJFTD1Wb2x1bWVfTmFtZSDigKZcbiIKKyN+ICIgICAgICAgICVzIFstc11cbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIHNwZWNpYWwgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJBdWZydWY6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICAlcyBbLXZdIFNwZXppYWxkYXRlaSDigKZcbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3QgY2Fub25pY2FsaXplICVzOiAlc1xuIgorI34gbXNnc3RyICIlczoga2FubiAlcyBuaWNodCBrYW5vbmlzaWVyZW46ICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6IHJlbmljZSBwcmlvcml0eSBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSB1c2VycyBdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJBdWZydWY6IHJlbmljZSBQcmlvcml0w6R0IFtbLXBdIFBJRHMgXSBbWy1nXSBQR1JQcyBdIFtbLXVdICIKKyN+ICJCZW51dHplcm5hbWVuIF1cbiIKKworI34gbXNnaWQgIlx0LSVjXHRFbmFibGUgJXNcbiIKKyN+IG1zZ3N0ciAiXHQtJWNcdEFrdGl2aWVyZSAlc1xuIgorCisjfiBtc2dpZCAiVW5rbm93biBvcHRpb24gYCVjJyBpZ25vcmVkIgorI34gbXNnc3RyICJVbmJla2FubnRlIE9wdGlvbiDigJ4tJWPigJwgaWdub3JpZXJ0IgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCisjfiBtc2dzdHIgIuKAniVz4oCcOiB1bmfDvGx0aWdlcyBWZXJ6ZWljaG5pczog4oCeLuKAnCBrb21tdCBuaWNodCB6dWVyc3RcbiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCisjfiBtc2dzdHIgIuKAniVz4oCcOiB1bmfDvGx0aWdlcyBWZXJ6ZWljaG5pczog4oCeLi7igJwga29tbXQgbmljaHQgYWxzIHp3ZWl0ZXNcbiIKKworI34gbXNnaWQgIlBhc3N3b3JkIGVycm9yLiIKKyN+IG1zZ3N0ciAiUGFzc3dvcnTigJBGZWhsZXIuIgorCisjfiBtc2dpZCAiQXNzdW1pbmcgcGFnZXMgb2Ygc2l6ZSAlZCAobm90ICVkKVxuIgorI34gbXNnc3RyICJFcyB3aXJkIGVpbmUgU2VpdGVuZ3LDtsOfZSB2b24gJWQgKG5pY2h0ICVkKSBhbmdlbm9tbWVuLlxuIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmb3VuZCBhICVzJXMlc1xuIgorI34gbXNnc3RyICJBdXRvY29uZmlndXJlIGdlZnVuZGVuIGJlaSAlcyVzJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJEcml2ZSB0eXBlXG4iCisjfiAiICAgPyAgIGF1dG8gY29uZmlndXJlXG4iCisjfiAiICAgMCAgIGN1c3RvbSAod2l0aCBoYXJkd2FyZSBkZXRlY3RlZCBkZWZhdWx0cykiCisjfiBtc2dzdHIgIiIKKyN+ICJMYXVmd2Vya3N0eXBcbiIKKyN+ICIgICA/ICAgQXV0by1Lb25maWd1cmF0aW9uXG4iCisjfiAiICAgMCAgIHZvbiBIYW5kIChtaXQgVm9yZWluc3RlbGx1bmdlbiBhdXMgZGVyIEhhcmR3YXJlZXJrZW5udW5nKSIKKworI34gbXNnaWQgIlNlbGVjdCB0eXBlICg/IGZvciBhdXRvLCAwIGZvciBjdXN0b20pOiAiCisjfiBtc2dzdHIgIlR5cCB3w6RobGVuICg/IGbDvHIgQXV0bywgMCBmw7xyIHZvbiBIYW5kKTogIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmYWlsZWQuXG4iCisjfiBtc2dzdHIgIkF1dG8tS29uZmlndXJhdGlvbiBmZWhsZ2VzY2hsYWdlbi5cbiIKKworIyBYWFggT2RlciBhYndlY2hzZWxuZGU/CisjfiBtc2dpZCAiQWx0ZXJuYXRlIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiQWx0ZXJuYXRpdmUgWnlsaW5kZXIiCisKKyN+IG1zZ2lkICJQaHlzaWNhbCBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIlBoeXNpa2FsaXNjaGUgWnlsaW5kZXIiCisKKyN+IG1zZ2lkICJZb3UgbWF5IGNoYW5nZSBhbGwgdGhlIGRpc2sgcGFyYW1zIGZyb20gdGhlIHggbWVudSIKKyN+IG1zZ3N0ciAiU2llIGvDtm5uZW4gYWxsZSBQbGF0dGVucGFyYW1ldGVyIGF1cyBkZW0geC1NZW7DvCBoZXJhdXMgw6RuZGVybiIKKworI34gbXNnaWQgIjMsNVwiIGZsb3BweSIKKyN+IG1zZ3N0ciAiMyw14oCzLURpc2tldHRlIgorCisjfiBtc2dpZCAiTGludXggY3VzdG9tIgorI34gbXNnc3RyICJMaW51eCBjdXN0b20iCisKKyMgIm1rZnMgYXVzIHV0aWwtbGludXgtMi4xMGQiCisjICJta2ZzIHZvbiB1dGlsLWxpbnV4LTIuMTBkIgorI34gbXNnaWQgIiVzIGZyb20gdXRpbC1saW51eC0lc1xuIgorI34gbXNnc3RyICIlcyBhdXMgdXRpbC1saW51eC0lc1xuIgorCisjICJta2ZzIGF1cyB1dGlsLWxpbnV4LTIuMTBkIgorIyAibWtmcyB2b24gdXRpbC1saW51eC0yLjEwZCIKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJXMgYXVzICVzJXNcbiIKKworI34gbXNnaWQgIiVzOiBlcnJvcjogdGhlIGxhYmVsICVzIG9jY3VycyBvbiBib3RoICVzIGFuZCAlc1xuIgorI34gbXNnc3RyICIlczogRmVobGVyOiBkYXMgTGFiZWwgJXMgZ2lidCBlcyBzb3dvaGwgYXVmICVzIGFscyBhdWNoIGF1ZiAlc1xuIgorCisjfiBtc2dpZCAiIgorI34gIiVzOiBjb3VsZCBub3Qgb3BlbiAlcywgc28gVVVJRCBhbmQgTEFCRUwgY29udmVyc2lvbiBjYW5ub3QgYmUgZG9uZS5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBrb25udGUgJXMgbmljaHQgw7ZmZm5lbiwgYWxzbyBrw7ZubmVuIFVVSUQtIHVuZCBMYWJlbC1Lb252ZXJ0aWVydW5nICAiCisjfiAibmljaHQgZHVyY2hnZWbDvGhydCB3ZXJkZW4uXG4iCisKKyN+IG1zZ2lkICIlczogYmFkIFVVSUQiCisjfiBtc2dzdHIgIiVzOiB1bmfDvGx0aWdlIFVVSUQiCisKKyN+IG1zZ2lkICJtb3VudDogZmFpbGVkIHdpdGggbmZzIG1vdW50IHZlcnNpb24gNCwgdHJ5aW5nIDMuLlxuIgorI34gbXNnc3RyICJtb3VudDogTWl0IE5GUyBWZXJzaW9uIDQgZmVobGdlc2NobGFnZW4sIHZlcnN1Y2hlIFZlcnNpb24gM+KAplxuIgorCisjfiBtc2dpZCAibW91bnQ6IG1vdW50aW5nICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiBIw6RuZ2UgJXMgZWluXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2Fubm90IGZpbmQgJXMgaW4gJXMiCisjfiBtc2dzdHIgIm1vdW50OiBLb25udGUgJXMgbmljaHQgaW4gJXMgZmluZGVuIgorCisjfiBtc2dpZCAibW91bnQ6IGVycm9yIHdoaWxlIGd1ZXNzaW5nIGZpbGVzeXN0ZW0gdHlwZVxuIgorI34gbXNnc3RyICJtb3VudDogRmVobGVyIGJlaW0gRXJyYXRlbiBkZXMgRGF0ZWlzeXN0ZW10eXBzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBob3N0OmRpciBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogw7xiZXJtw6TDn2lnIGxhbmdlcyBob3N0OmRpci1Bcmd1bWVudFxuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IG11bHRpcGxlIGhvc3RuYW1lcyBub3Qgc3VwcG9ydGVkXG4iCisjfiBtc2dzdHIgIm1vdW50OiBNZWhyZXJlIFJlY2huZXJuYW1lbiB3ZXJkZW4gbmljaHQgdW50ZXJzdMO8dHp0XG4iCisKKyN+IG1zZ2lkICJtb3VudDogZGlyZWN0b3J5IHRvIG1vdW50IG5vdCBpbiBob3N0OmRpciBmb3JtYXRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGVpbnp1aMOkbmdlbmRlcyBWZXJ6ZWljaG5pcyBuaWNodCBpbSBob3N0OmRpci1Gb3JtYXRcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IEtvbm50ZSBkaWUgQWRyZXNzZSB2b24gJXMgbmljaHQgaGVyYXVzZmluZGVuXG4iCisKKyMgdW50ZW4gbm9jaG1hbCBhbHMgRnJhZ2UsIHVuZCBmw7xyIHVtb3VudAorI34gbXNnaWQgIm1vdW50OiBnb3QgYmFkIGhwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJtb3VudDogdW5nw7xsdGlnZSBocC0+aF9sZW5ndGggYmVrb21tZW5cbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIG9wdGlvbiBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogw7xiZXJtw6TDn2lnIGxhbmdlcyBPcHRpb25zLUFyZ3VtZW50XG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBVbnJlY29nbml6ZWQgcHJvdG89IG9wdGlvbi5cbiIKKyN+IG1zZ3N0ciAiV2FybnVuZzogdW5iZWthbm50ZSDigJ5wcm90bz3igJwtT3B0aW9uLlxuIgorCisjfiBtc2dpZCAiV2FybmluZzogT3B0aW9uIG5hbWxlbiBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICJXYXJudW5nOiBEaWUgT3B0aW9uIOKAnm5hbWxlbuKAnCB3aXJkIG5pY2h0IHVudGVyc3TDvHR6dC5cbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIG1vdW50IHBhcmFtZXRlcjogJXM9JWRcbiIKKyN+IG1zZ3N0ciAiVW5iZWthbm50ZXIgbmZzLU1vdW50LVBhcmFtZXRlcjogJXM9JWRcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IG9wdGlvbiBub2xvY2sgaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAiV2FybnVuZzogRGllIE9wdGlvbiDigJ5ub2xvY2vigJwgd2lyZCBuaWNodCB1bnRlcnN0w7x0enQuXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBtb3VudCBvcHRpb246ICVzJXNcbiIKKyN+IG1zZ3N0ciAidW5iZWthbm50ZSBuZnMtTW91bnQtT3B0aW9uOiAlcyVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGg/XG4iCisjfiBtc2dzdHIgIm1vdW50OiB1bmfDvGx0aWdlIGhwLT5oX2xlbmd0aCBiZWtvbW1lbj9cbiIKKworI34gbXNnaWQgIm5mcyBiaW5kcmVzdnBvcnQiCisjfiBtc2dzdHIgIk5GUy1iaW5kcmVzdnBvcnQiCisKKyN+IG1zZ2lkICJuZnMgc2VydmVyIHJlcG9ydGVkIHNlcnZpY2UgdW5hdmFpbGFibGUiCisjfiBtc2dzdHIgIk5GUy1TZXJ2ZXIgbWVsZGV0ZSBTZXJ2aWNlIGFscyBuaWNodCB2ZXJmw7xnYmFyIgorCisjfiBtc2dpZCAidXNlZCBwb3J0bWFwcGVyIHRvIGZpbmQgTkZTIHBvcnRcbiIKKyN+IG1zZ3N0ciAiUG9ydG1hcHBlciBiZW51dHp0IHVtIE5GUy1Qb3J0IHp1IGZpbmRlblxuIgorCisjfiBtc2dpZCAidXNpbmcgcG9ydCAlZCBmb3IgbmZzIGRlYW1vblxuIgorI34gbXNnc3RyICJiZW51dHplIFBvcnQgJWQgZsO8ciBORlMtRMOkbW9uZW5cbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIHN0YXR1cyByZXR1cm4gdmFsdWU6ICVkIgorI34gbXNnc3RyICJ1bmJla2FubnRlciBORlMtU3RhdHVzLVLDvGNrZ2FiZXdlcnQ6ICVkIgorCisjfiBtc2dpZCAiaG9zdDogJXMsIGRpcmVjdG9yeTogJXNcbiIKKyN+IG1zZ3N0ciAiUmVjaG5lcjogJXMsIFZlcnplaWNobmlzOiAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiBLb25udGUgZGllIEFkcmVzc2Ugdm9uICVzIG5pY2h0IGhlcmF1c2ZpbmRlblxuIgorCisjfiBtc2dpZCAidW1vdW50OiBnb3QgYmFkIGhvc3RwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJ1bW91bnQ6IHVuZ8O8bHRpZ2UgaHAtPmhfbGVuZ3RoIGJla29tbWVuXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWJhZCBwYXRoIGxlbmd0aFxuIgorI34gbXNnc3RyICIlczogdW5nw7xsdGlnZXMgY3JhbWZzIOKAkyB1bmfDvGx0aWdlIFBmYWRsw6RuZ2VcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0td3JvbmcgbWFnaWNcbiIKKyN+IG1zZ3N0ciAiJXM6IHVuZ8O8bHRpZ2VzIGNyYW1mcyDigJMgZmFsc2NoZSBNYWdpZVxuIgorCisjfiBtc2dpZCAiJXM6IHdhcm5pbmctLWZpbGUgbGVuZ3RoIHRvbyBsb25nLCBwYWRkZWQgaW1hZ2U/XG4iCisjfiBtc2dzdHIgIiVzOiBXYXJudW5nIOKAkyBEYXRlaWzDpG5nZSB6dSBsYW5nLCBhdWZnZWbDvGxsdGVzIEFiYmlsZD9cbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tY3JjIGVycm9yXG4iCisjfiBtc2dzdHIgIiVzOiB1bmfDvGx0aWdlcyBjcmFtZnMgLS0gQ1JDLUZlaGxlclxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1iYWQgc3VwZXJibG9ja1xuIgorI34gbXNnc3RyICIlczogdW5nw7xsdGlnZXMgY3JhbWZzIOKAkyB1bmfDvGx0aWdlciBTdXBlcmJsb2NrXG4iCisKKyN+IG1zZ2lkICJTeW50YXggZXJyb3I6ICclcydcbiIKKyN+IG1zZ3N0ciAiU3ludGF4ZmVobGVyOiDigJ4lc+KAnFxuIgorCisjfiBtc2dpZCAiTm8gc3VjaCBwYXJhbWV0ZXIgc2V0OiAnJXMnXG4iCisjfiBtc2dzdHIgIktlaW5lIHNvbGNoZSBQYXJhbWV0ZXJtZW5nZTog4oCeJXPigJxcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLXAgXSBkZXYgbmFtZVxuIgorI34gbXNnc3RyICIgICAlcyBbIC1wIF0gR2Vyw6R0IE5hbWVcbiIKKworI34gbXNnaWQgIiIKKyN+ICIgICAlcyBbIC1wIF0gZGV2IHNpemUgc2VjdCBoZWFkcyB0cmFja3Mgc3RyZXRjaCBnYXAgcmF0ZSBzcGVjMSBmbXRfZ2FwXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIgICAlcyBbIC1wIF0gZ2Vyw6R0IGdyw7bDn2Ugc2VrdCBrw7ZwZmUgc3B1cmVuIHN0cmV0Y2ggbMO8Y2tlIHJhdGUgc3BlYzEgIgorI34gImZtdF9sw7xja2VcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLWMgfCAteSB8IC1uIHwgLWQgXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIEdlcsOkdFxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSBHZXLDpHRcbiIKKworI34gbXNnaWQgImNvdWxkbid0IG9wZW4gL2Rldi91cmFuZG9tIgorI34gbXNnc3RyICJLb25udGUgL2Rldi91cmFuZG9tIG5pY2h0IMO2ZmZuZW4iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkIHJhbmRvbSBkYXRhIGZyb20gL2Rldi91cmFuZG9tIgorI34gbXNnc3RyICJrb25udGUga2VpbmUgenVmw6RsbGlnZW4gRGF0ZW4gYXVzIC9kZXYvdXJhbmRvbSBsZXNlbiIKKworI34gbXNnaWQgImNhbid0IHN0YXQoJXMpIgorI34gbXNnc3RyICJzdGF0KCVzKSBmZWhsZ2VzY2hsYWdlbiIKKworI34gbXNnaWQgIiVzIGRvZXNuJ3QgaGF2ZSB0aGUgY29ycmVjdCBmaWxlbW9kZXMiCisjfiBtc2dzdHIgIiVzIGhhdCBuaWNodCBkZW4ga29ycmVrdGVuIERhdGVpbW9kdXMiCisKKyN+IG1zZ2lkICJjYW4ndCByZWFkIGRhdGEgZnJvbSAlcyIKKyN+IG1zZ3N0ciAia2FubiBrZWluZSBEYXRlbiB2b24gJXMgbGVzZW4iCisKKyN+IG1zZ2lkICIiCisjfiAiVG9vIG1hbnkgdXNlcnMgbG9nZ2VkIG9uIGFscmVhZHkuXG4iCisjfiAiVHJ5IGFnYWluIGxhdGVyLlxuIgorI34gbXNnc3RyICIiCisjfiAiQmVyZWl0cyB6dSB2aWVsZSBOdXR6ZXIgZWluZ2Vsb2dndC5cbiIKKyN+ICJWZXJzdWNoZW4gU2llIGVzIHNww6R0ZXIgd2llZGVyLlxuIgorCisjfiBtc2dpZCAiWW91IGhhdmUgdG9vIG1hbnkgcHJvY2Vzc2VzIHJ1bm5pbmcuXG4iCisjfiBtc2dzdHIgIlNpZSBoYWJlbiB6dSB2aWVsZSBQcm96ZXNzZSBhbSBMYXVmZW4uXG4iCisKKyN+IG1zZ2lkICJUaGUgcGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDYgY2hhcmFjdGVycywgdHJ5IGFnYWluLlxuIgorI34gbXNnc3RyICJEYXMgUGFzc3dvcnQgbXVzcyBtaW5kZXN0ZW4gNiBaZWljaGVuIGhhYmVuLCBub2NobWFsIGJpdHRlLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlRoZSBwYXNzd29yZCBtdXN0IGNvbnRhaW4gY2hhcmFjdGVycyBvdXQgb2YgdHdvIG9mIHRoZSBmb2xsb3dpbmdcbiIKKyN+ICJjbGFzc2VzOiAgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBub24gYWxwaGFudW1lcmljXG4iCisjfiAiY2hhcmFjdGVycy4gU2VlIHBhc3N3ZCgxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkRhcyBQYXNzd29ydCBtdXNzIFplaWNoZW4gYXVzIHp3ZWkgZGVyIGZvbGdlbmRlbiBLbGFzc2VuIGVudGhhbHRlbjpcbiIKKyN+ICJHcm/Dny0gdW5kIEtsZWluYnVjaHN0YWJlbiwgWmlmZmVybiB1bmQgbmljaHQtYWxwaGFudW1lcmlzY2hlIFplaWNoZW4uXG4iCisjfiAiU2llaGUgYXVjaCBwYXNzd2QoMSkgZsO8ciB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4uXG4iCisKKyN+IG1zZ2lkICJZb3UgY2Fubm90IHJldXNlIHRoZSBvbGQgcGFzc3dvcmQuXG4iCisjfiBtc2dzdHIgIlNpZSBrw7ZubmVuIGRhcyBhbHRlIFBhc3N3b3J0IG5pY2h0IHdpZWRlcmJlbnV0emVuLlxuIgorCisjfiBtc2dpZCAiUGxlYXNlIGRvbid0IHVzZSBzb21ldGhpbmcgbGlrZSB5b3VyIHVzZXJuYW1lIGFzIHBhc3N3b3JkIVxuIgorI34gbXNnc3RyICIiCisjfiAiQmVudXR6ZW4gU2llIGJpdHRlIG5pY2h0IGV0d2FzIHdpZSBJaHJlbiBOdXR6ZXJuYW1lbiBhbHMgUGFzc3dvcnQhXG4iCisKKyN+IG1zZ2lkICJQbGVhc2UgZG9uJ3QgdXNlIHNvbWV0aGluZyBsaWtlIHlvdXIgcmVhbG5hbWUgYXMgcGFzc3dvcmQhXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJCZW51dHplbiBTaWUgYml0dGUgbmljaHQgZXR3YXMgd2llIElocmVuIGVjaHRlbiBOYW1lbiBhbHMgUGFzc3dvcnQhXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFt1c2VybmFtZSBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICJBdWZydWY6IHBhc3N3ZCBbbnV0emVybmFtZSBbcGFzc3dvcnRdXVxuIgorCisjfiBtc2dpZCAiT25seSByb290IG1heSB1c2UgdGhlIG9uZSBhbmQgdHdvIGFyZ3VtZW50IGZvcm1zLlxuIgorI34gbXNnc3RyICJOdXIgcm9vdCBrYW5uIGRpZSBlaW4tIHVuZCB6d2VpYXJndW1lbnRpZ2VuIEZvcm1lbiBiZW51dHplbi5cbiIKKworI34gbXNnaWQgIlVzYWdlOiBwYXNzd2QgWy1mb3FzdlZdIFt1c2VyIFtwYXNzd29yZF1dXG4iCisjfiBtc2dzdHIgIkF1ZnJ1ZjogcGFzc3dkIFstZm9xc3ZWXSBbbnV0emVyIFtwYXNzd29ydF1dXG4iCisKKyN+IG1zZ2lkICJDYW4ndCBleGVjICVzOiAlc1xuIgorI34gbXNnc3RyICJLYW5uICVzIG5pY2h0IGF1c2bDvGhyZW46ICVzXG4iCisKKyN+IG1zZ2lkICJDYW5ub3QgZmluZCBsb2dpbiBuYW1lIgorI34gbXNnc3RyICJLYW5uIExvZ2luLW5hbWVuIG5pY2h0IGZpbmRlbiIKKworI34gbXNnaWQgIk9ubHkgcm9vdCBjYW4gY2hhbmdlIHRoZSBwYXNzd29yZCBmb3Igb3RoZXJzLlxuIgorI34gbXNnc3RyICJOdXIgcm9vdCBrYW5uIGRhcyBQYXNzd29ydCBmw7xyIGFuZGVyZSDDpG5kZXJuLlxuIgorCisjfiBtc2dpZCAiQ2FuJ3QgZmluZCB1c2VybmFtZSBhbnl3aGVyZS4gSXMgYCVzJyByZWFsbHkgYSB1c2VyPyIKKyN+IG1zZ3N0ciAiS2FubiBOdXR6ZXJuYW1lbiBuaXJnZW5kcyBmaW5kZW4uIElzdCDigJ4lc+KAnCB3aXJrbGljaCBlaW4gTnV0emVyPyIKKworI34gbXNnaWQgIlNvcnJ5LCBJIGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBwYXNzd29yZHMuIFVzZSB5cHBhc3N3ZCBpbnN0ZWFkLiIKKyN+IG1zZ3N0ciAiIgorI34gIlR1dCBtaXIgbGVpZCwgaWNoIGthbm4gbnVyIGxva2FsZSBQYXNzd8O2cnRlciDDpG5kZXJuLiBCaXR0ZSB5cHBhc3N3ZCAiCisjfiAiYmVudXR6ZW4uIgorCisjfiBtc2dpZCAiVUlEIGFuZCB1c2VybmFtZSBkb2VzIG5vdCBtYXRjaCwgaW1wb3N0ZXIhIgorI34gbXNnc3RyICJVSUQgdW5kIE51dHplcm5hbWUgc3RpbW1lbiBuaWNodCDDvGJlcmVpbiwgSG9jaHN0YXBsZXIhIgorCisjfiBtc2dpZCAiQ2hhbmdpbmcgcGFzc3dvcmQgZm9yICVzXG4iCisjfiBtc2dzdHIgIsOEbmRlcmUgUGFzc3dvcnQgZsO8ciAlc1xuIgorCisjfiBtc2dpZCAiRW50ZXIgb2xkIHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIkFsdGVzIFBhc3N3b3J0OiAiCisKKyN+IG1zZ2lkICJJbGxlZ2FsIHBhc3N3b3JkLCBpbXBvc3Rlci4iCisjfiBtc2dzdHIgIklsbGVnYWxlcyBQYXNzd29ydCwgSG9jaHN0YXBsZXIuIgorCisjfiBtc2dpZCAiRW50ZXIgbmV3IHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIk5ldWVzIFBhc3N3b3J0OiAiCisKKyN+IG1zZ2lkICJQYXNzd29yZCBub3QgY2hhbmdlZC4iCisjfiBtc2dzdHIgIlBhc3N3b3J0IG5pY2h0IGdlw6RuZGVydC4iCisKKyN+IG1zZ2lkICJSZS10eXBlIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJOZXVlcyBQYXNzd29ydCB3aWVkZXJob2xlbjogIgorCisjfiBtc2dpZCAiWW91IG1pc3NwZWxsZWQgaXQuIFBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAiU2llIGhhYmVuIHNpY2ggdmVydGlwcHQuIFBhc3N3b3J0IG5pY2h0IGdlw6RuZGVydC4iCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkLCB1c2VyICVzIgorI34gbXNnc3RyICJQYXNzd29ydCBnZcOkbmRlcnQsIE51dHplciAlcyIKKworI34gbXNnaWQgIlJPT1QgUEFTU1dPUkQgQ0hBTkdFRCIKKyN+IG1zZ3N0ciAiUk9PVC1QQVNTV09SVCBHRcOETkRFUlQiCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkIGJ5IHJvb3QsIHVzZXIgJXMiCisjfiBtc2dzdHIgIlBhc3N3b3J0IGR1cmNoIHJvb3QgZ2XDpG5kZXJ0LCBOdXR6ZXIgJXMiCisKKyN+IG1zZ2lkICJjYWxsaW5nIHNldHB3bmFtIHRvIHNldCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAicnVmZSBzZXRwd25hbSwgdW0gUGFzc3dvcnQgenUgc2V0emVuLlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKKyN+IG1zZ3N0ciAiUGFzc3dvcnQgKk5JQ0hUKiBnZcOkbmRlcnQuIFNww6R0ZXIgZXJuZXV0IHZlcnN1Y2hlbi5cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkIGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIlBhc3N3b3J0IGdlw6RuZGVydC5cbiIKKworI34gbXNnaWQgIm1vdW50OiB0aGlzIHZlcnNpb24gd2FzIGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgdGhlIHR5cGUgYG5mcyciCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogRGllc2UgVmVyc2lvbiB3dXJkZSBvaG5lIFVudGVyc3TDvHR6dW5nIGbDvHIgZGVuIFR5cCDigJ5uZnPigJwga29tcGlsaWVydCIKKworI34gbXNnaWQgImZsb2NrOiB1bmtub3duIG9wdGlvbiwgYWJvcnRpbmcuXG4iCisjfiBtc2dzdHIgImZsb2NrOiBVbmJla2FubnRlIE9wdGlvbiwgYnJlY2hlIGFiLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlIGZsb2NrIFstLXNoYXJlZCB8IC0tdGltZW91dD1zZWNvbmRzXSBmaWxlbmFtZSBjb21tYW5kIHthcmcgYXJnLi4ufVxuIgorI34gbXNnc3RyICIiCisjfiAiQXVmcnVmOiBmbG9jayBbLS1zaGFyZWQgfCAtLXRpbWVvdXQ9U2VrdW5kZW5dIERhdGVpbmFtZSBCZWZlaGwge0FyZyAiCisjfiAiQXJn4oCmfVxuIgorCisjfiBtc2dpZCAiV2FybmluZzogb21pdHRpbmcgcGFydGl0aW9ucyBhZnRlciAlZFxuIgorI34gbXNnc3RyICJXYXJudW5nOiBsYXNzZSBQYXJ0aXRpb25lbiBoaW50ZXIgJWQgYXVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIGJ5IGtlcm5lbCIKKyN+IG1zZ3N0ciAibW91bnQ6IERlciBEYXRlaXN5c3RlbXR5cCDigJ4lc+KAnCB3aXJkIG5pY2h0IHZvbSBLZXJuZWwgdW50ZXJzdMO8dHp0IgorCisjfiBtc2dpZCAibW91bnQ6ICVzIGR1cGxpY2F0ZSAtIG5vdCBtb3VudGVkIgorI34gbXNnc3RyICJtb3VudDogJXMgZG9wcGVsdCDigJMgbmljaHQgZWluZ2Vow6RuZ3QiCisKKyMgSSB0aGluayB0aGlzIHNob3VsZCBub3QgYmUgdHJhbnNsYXRlZAorI34gbXNnaWQgIlVVSUQiCisjfiBtc2dzdHIgIlVVSUQiCisKKyN+IG1zZ2lkICJtb3VudDogdGhlIGxhYmVsICVzIG9jY3VycyBvbiBib3RoICVzIGFuZCAlcyAtIG5vdCBtb3VudGVkXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogZGFzIExhYmVsICVzIGdpYnQgZXMgc293b2hsIGF1ZiAlcyBhbHMgYXVjaFxuIgorI34gIiAgICAgICBhdWYgJXMg4oCTIG5pY2h0IGVpbmdlaMOkbmd0XG4iCisKKyN+IG1zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gdW5tb3VudCAlcyBmcm9tICVzIgorI34gbXNnc3RyICJ1bW91bnQ6IE51ciDigJ5yb2904oCcIGthbm4gJXMgdm9uICVzIGF1c2jDpG5nZW4iCisKKyN+IG1zZ2lkICJCb290ICglMDJYKSIKKyN+IG1zZ3N0ciAiQm9vdCAoJTAyWCkiCisKKyN+IG1zZ2lkICJOb25lICglMDJYKSIKKyN+IG1zZ3N0ciAiS2VpbmUgKCUwMlgpIgorCisjfiBtc2dpZCAiIgorI34gIm1vdW50OiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuXG4iCisjfiAiICAgICAgIE1heWJlIC9kZXYvbG9vcCMgaGFzIGEgd3JvbmcgbWFqb3IgbnVtYmVyPyIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBLb25udGUga2VpbiDigJ5sb29w4oCcLUdlcsOkdCBmaW5kZW4uXG4iCisjfiAiICAgICAgIFZpZWxsZWljaHQgaGF0IC9kZXYvbG9vcCMgZWluZSBmYWxzY2hlIE1ham9yLU51bW1lcj8iCisKKyN+IG1zZ2lkICIiCisjfiAibW91bnQ6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorI34gIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2UgKHRoZW4gcmVjb21waWxlIG9yIGBpbnNtb2QgbG9vcC5vJyksIG9yXG4iCisjfiAiICAgICAgIG1heWJlIC9kZXYvbG9vcCMgaGFzIHRoZSB3cm9uZyBtYWpvciBudW1iZXI/IgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IEtvbm50ZSBrZWluIOKAnmxvb3DigJwtR2Vyw6R0IGZpbmRlbi4gVmllbGVpY2h0IHVudGVyc3TDvHR6dFxuIgorI34gIiAgICAgICBkaWVzZXMgS2VybmVsIGtlaW5lIOKAnmxvb3DigJwtR2Vyw6R0ZSAod2VubiBkaWVzIGRlciBGYWxsXG4iCisjfiAiICAgICAgIGlzdCwgZGFubiBzb2xsdGVuIFNpZSBkYXMgS2VybmVsIG5ldSBrb21waWxpZXJlbiBvZGVyXG4iCisjfiAiICAgICAgIOKAnmluc21vZCBsb29wLm/igJwgYXVzZsO8aHJlbikgT2RlciB2aWVsZWljaHQgaGF0IC9kZXYvbG9vcCNcbiIKKyN+ICIgICAgICAgZWluZSBmYWxzY2hlIE1ham9yLU51bW1lcj8iCisKKyN+IG1zZ2lkICJJbml0ICh1cCB0byAxNiBoZXggZGlnaXRzKTogIgorI34gbXNnc3RyICJJbml0aWFsaXNpZXJ1bmcgKGJpcyB6dSAxNiBIZXhhZGV6aW1hbHppZmZlcm4pOiAiCisKKyMgIlppZmZlciIgPworI34gbXNnaWQgIk5vbi1oZXggZGlnaXQgJyVjJy5cbiIKKyN+IG1zZ3N0ciAiRGFzIFplaWNoZW4g4oCeJWPigJwgaXN0IGtlaW5lIGhleGFkZXppbWFsZSBaaWZmZXIuXG4iCisKKyN+IG1zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorI34gbXNnc3RyICJQYXJ0aXRpb24gJWkgZW5kZXQgbmljaHQgYW4gZWluZXIgWnlsaW5kZXJncmVuemU6XG4iCisKKyN+IG1zZ2lkICJDYW4ndCBvcGVuIGhlbHAgZmlsZSIKKyN+IG1zZ3N0ciAiS29ubnRlIGRpZSBIaWxmZWRhdGVpIG5pY2h0IMO2ZmZuZW4iCisKKyN+IG1zZ2lkICJudW1iZXIgYCVzJyB0byBgJXMnIG91dCBvZiByYW5nZVxuIgorI34gbXNnc3RyICJEZXIgV2VydCDigJ4lc+KAnCBmw7xyIOKAniVz4oCcIGlzdCBhdcOfZXJoYWxiIGRlcyBCZXJlaWNoZXNcbiIKKworI34gbXNnaWQgInVucmVjb2duaXplZCBvcHRpb24gYCVzJ1xuIgorI34gbXNnc3RyICJ1bmJla2FubnRlIE9wdGlvbiDigJ4lc+KAnFxuIgorCisjfiBtc2dpZCAiIgorI34gIlJlLXJlYWQgdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorI34gIlJlYm9vdCB5b3VyIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyB1cGRhdGVkLlxuIgorI34gbXNnc3RyICIiCisjfiAiRGFzIEtlcm5lbCBrb25udGUgZGllIFBhcnRpdGlvbnN0YWJlbGxlIG5pY2h0IGVybmV1dCBsZXNlbiAoRmVobGVyICVkKTpcbiIKKyN+ICIlc1xuIgorI34gIlJlYm9vdGVuIFNpZSBkYXMgU3lzdGVtLCB1bSBzaWNoZXJ6dXN0ZWxsZW4sIGRhc3MgZGllIFBhcnRpdGlvbnN0YWJlbGxlICIKKyN+ICJuZXUgZ2VsZXNlbiB3aXJkLlxuIgorCisjfiBtc2dpZCAiQVNUIFdpbmRvd3Mgc3dhcGZpbGUiCisjfiBtc2dzdHIgIkFTVCBXaW5kb3dzIHN3YXBmaWxlIgorCisjfiBtc2dpZCAidXNhZ2U6IGJhbm5lciBbLXcgd2lkdGhdXG4iCisjfiBtc2dzdHIgIkF1ZnJ1ZjogYmFubmVyIFstdyBCcmVpdGVdXG4iCisKKyN+IG1zZ2lkICJUaGUgY2hhcmFjdGVyICclYycgaXMgbm90IGluIG15IGNoYXJhY3RlciBzZXQiCisjfiBtc2dzdHIgIkRhcyBaZWljaGVuIOKAniVj4oCcIGlzdCBuaWNodCBpbSBaZWljaGVuc2F0eiB2b3JoYW5kZW4iCisKKyN+IG1zZ2lkICJNZXNzYWdlICclcycgaXMgT0tcbiIKKyN+IG1zZ3N0ciAiTWVsZHVuZyDigJ4lc+KAnCBpc3QgaW4gT3JkbnVuZ1xuIgorCisjIFhYWCDigJMgTWVyZ2Ugd2l0aCBuZXh0IHN0cmluZ3MuCisjfiBtc2dpZCAiVXNhZ2U6ICVzIFsgLXMgc2hlbGwgXSAiCisjfiBtc2dzdHIgIkF1ZnJ1ZjogJXMgWyAtcyBTaGVsbCBdICIKKworI34gbXNnaWQgIlsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorI34gbXNnc3RyICJbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworI34gbXNnaWQgIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKKyN+IG1zZ3N0ciAiICAgICAgICBbIEJlbnV0emVybmFtZSBdXG4iCisKKyN+IG1zZ2lkICJub3QgbW91bnRlZCBhbnl0aGluZyIKKyN+IG1zZ3N0ciAiRXMgd3VyZGUgbmljaHRzIGVpbmdlaMOkbmd0IgorCisjfiBtc2dpZCAiICBzd2FwZGV2IC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtcyIKKyN+IG1zZ3N0ciAiICBzd2FwZGV2IOKApiAgICAgICAgICAgICAgICAgICAgIERhcyBnbGVpY2hlIHdpZSByZGV2IC1zIgorCisjfiBtc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICUyZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKyN+IG1zZ3N0ciAiVW5nw7xsdGlnZSBXZXJ0ZSBpbiBIYXJkd2FyZXVocjogJTJkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorCisjfiBtc2dpZCAiIgorI34gIkh3IGNsb2NrIHRpbWUgOiAlMmQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCisjfiBtc2dzdHIgIiIKKyN+ICJaZWl0IGRlciBIYXJkd2FyZXVocjogJTJkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVkIFNla3VuZGVuIHNlaXQgIgorI34gIjE5NjlcbiIKKworIyBFZ2dlcgorI34gbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlMDJkOiUwMmQ6JTAyZFxuIgorI34gbXNnc3RyICJaZWl0IGdlbGVzZW4gYXVzIEhhcmR3YXJldWhyOiAlMDJkOiUwMmQ6JTAyZFxuIgorCisjfiBtc2dpZCAiaW9jdGwoKSB0byBvcGVuIC9kZXYvdHR5MSBmYWlsZWQiCisjfiBtc2dzdHIgImlvY3RsKCkga29ubnRlIC9kZXYvdHR5MSBuaWNodCDDtmZmbmVuLiIKKworI34gbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstdjB8LXYxXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKKyN+IG1zZ3N0ciAiQXVmcnVmOiAlcyBbLWNdIFstdjB8LXYxXSAvZGV2L05hbWUgW0dyw7bDn2UgaW4ga0JdXG4iCisKKyN+IG1zZ2lkICIlczogb3BlbiBmb3IgdXBkYXRlOiAlbSIKKyN+IG1zZ3N0ciAiS29ubnRlICVzIG5pY2h0IHp1bSBBa3R1YWxpc2llcmVuIMO2ZmZuZW46ICVtIgorCisjfiBtc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFtmaWxlXVxuIgorI34gbXNnc3RyICJBdWZydWY6IHNjcmlwdCBbLWFdIFtEYXRlaV1cbiIKKworI34gbXNnaWQgInVzYWdlOiB0c29ydCBbIGlucHV0ZmlsZSBdXG4iCisjfiBtc2dzdHIgIkF1ZnJ1ZjogdHNvcnQgWyBFaW5nYWJlZGF0ZWkgXVxuIgorCisjfiBtc2dpZCAidHNvcnQ6IGN5Y2xlIGluIGRhdGEuXG4iCisjfiBtc2dzdHIgInRzb3J0OiBaeWtsdXMgaW4gZGVuIERhdGVuLlxuIgorCisjfiBtc2dpZCAidHNvcnQ6IGludGVybmFsIGVycm9yIC0tIGNvdWxkIG5vdCBmaW5kIGN5Y2xlLlxuIgorI34gbXNnc3RyICJ0c29ydDogSW50ZXJuZXIgRmVobGVyIC0tIGtvbm50ZSBkZW4gWnlrbHVzIG5pY2h0IGZpbmRlbi5cbiIKKworI34gbXNnaWQgIm1vdW50OiB3YXJuaW5nOiBjYW5ub3QgY2hhbmdlIG1vdW50ZWQgZGV2aWNlIHdpdGggYSByZW1vdW50XG4iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogV2FybnVuZzogRGFzIEdlcsOkdCBrYW5uIG5pY2h0IG1pdCBlaW5lbSDigJ5yZW1vdW504oCcIGdlw6RuZGVydCB3ZXJkZW5cbiIKKworI34gbXNnaWQgIm1vdW50OiB3YXJuaW5nOiBjYW5ub3QgY2hhbmdlIGZpbGVzeXN0ZW0gdHlwZSB3aXRoIGEgcmVtb3VudFxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IERlciBEYXRlaXN5c3RlbXR5cCBrYW5uIG5pY2h0IG1pdCBlaW5lbSDigJ5yZW1vdW504oCcIGdlw6RuZGVydCB3ZXJkZW5cbiIKKworI34gbXNnaWQgIkNhbm5vdCBnZXQgbG9vcCBpbmZvIgorI34gbXNnc3RyICJLb25udGUga2VpbmUgSW5mb3JtYXRpb25lbiDDvGJlciBkYXMg4oCebG9vcOKAnC1HZXLDpHQgZXJoYWx0ZW4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IG1vdW50IFstaFZdXG4iCisjfiAiICAgICAgIG1vdW50IC1hIFstbmZGcnN2d10gWy10IHZmc3R5cGVzXVxuIgorI34gIiAgICAgICBtb3VudCBbLW5mcnN2d10gWy1vIG9wdGlvbnNdIHNwZWNpYWwgfCBub2RlXG4iCisjfiAiICAgICAgIG1vdW50IFstbmZyc3Z3XSBbLXQgdmZzdHlwZV0gWy1vIG9wdGlvbnNdIHNwZWNpYWwgbm9kZVxuIgorI34gIiAgICAgICBBIHNwZWNpYWwgZGV2aWNlIGNhbiBiZSBpbmRpY2F0ZWQgYnkgIC1MIGxhYmVsICBvciAgLVUgdXVpZCAuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJBdWZydWY6IG1vdW50IFstaFZdXG4iCisjfiAiICAgICAgICBtb3VudCAtYSBbLW5mRnJzdnddIFstdCBWRlMtVHlwZW5dXG4iCisjfiAiICAgICAgICBtb3VudCBbLW5mcnN2d10gWy1vIE9wdGlvbmVuXSBTcGV6aWFsZGF0ZWkgfCBWZXJ6ZWljaG5pc1xuIgorI34gIiAgICAgICAgbW91bnQgWy1uZnJzdnddIFstdCBWRlMtVHlwXSBbLW8gT3B0aW9uZW5dIEdlcsOkdCBWZXJ6ZWljaG5pc1xuIgorI34gIiAgICAgICAgRGFzIEdlcsOkdCBrYW5uIGF1Y2ggZHVyY2ggLUwgTGFiZWwgb2RlciAtVSBVVUlEIGFuZ2VnZWJlbiAiCisjfiAid2VyZGVuLlxuIgorCisjIFRoaXMgb25lIGlzIGZvciBEZWJpYW4KKyN+IG1zZ2lkICJub3QgbW91bnRpbmcgYW55dGhpbmciCisjfiBtc2dzdHIgIkVzIHdpcmQgbmljaHRzIGVpbmdlaMOkbmd0IgorCisjfiBtc2dpZCAic2VuZF90aW1lPSVzcmN2X3RpbWU9JXNjaGFuZ2VfdGltZT0lcyIKKyN+IG1zZ3N0ciAiU2VuZGV6ZWl0ID0gJXNFbXBmYW5nc3plaXQgPSAlc8OEbmRlcnVuZ3N6ZWl0ID0gJXMiCisKKyN+IG1zZ2lkICJ1c2FnZTogJXMgWy1kZmxuXSBbK2xpbmVudW0gfCArL3BhdHRlcm5dIG5hbWUxIG5hbWUyIC4uLlxuIgorI34gbXNnc3RyICIiCisjfiAiQXVmcnVmOiAlcyBbLWRmbG5dIFsrWmVpbGVubnVtbWVyIHwgKy9NdXN0ZXJdIERhdGVpbmFtZTEgRGF0ZWluYW1lMiDigKZcbiIKKworI34gbXNnaWQgIlR5cGVtYXRpYyBSYXRlIHNldCB0byAlLjFmIGNwcyAoZGVsYXkgPSAlZCBtcylcbiIKKyN+IG1zZ3N0ciAiIgorI34gIkRpZSBUYXN0YXR1cndpZWRlcmhvbHJhdGUgd3VyZGUgYXVmICUuMWYgY3BzIGdlc2V0enRcbiIKKyN+ICJEaWUgVmVyesO2Z2VydW5nc3plaXQgd3VyZGUgYXVmICVkbXMgZ2VzZXR6dFxuIgorCisjfiBtc2dpZCAiVXNhZ2U6IGtiZHJhdGUgWy1WXSBbLXNdIFstciByYXRlXSBbLWQgZGVsYXldXG4iCisjfiBtc2dzdHIgIkF1ZnJ1Zjoga2JkcmF0ZSBbLVZdIFstc10gWy1yIFJhdGVdIFstZCBWZXJ6w7ZnZXJ1bmdzemVpdF1cbiIKKworI34gbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydCIKKyN+IG1zZ3N0ciAiS29ubnRlIC9kZXYvcG9ydCBuaWNodCDDtmZmbmVuIgorCisjfiBtc2dpZCAiVW5hYmxlIHRvIG9wZW4gL2Rldi9ydGMiCisjfiBtc2dzdHIgIktvbm50ZSAvZGV2L3J0YyBuaWNodCDDtmZmbmVuIgorCisjfiBtc2dpZCAiJXMlZCBjb250YWlucyBubyBkaXNrbGFiZWwuXG4iCisjfiBtc2dzdHIgIiVzJWQgZW50aMOkbHQga2VpbmVuIOKAnmRpc2tsYWJlbOKAnC5cbiIKKworI34gbXNnaWQgIm1vdW50OiAlcyBoYXMgd3JvbmcgbWFqb3Igb3IgbWlub3IgbnVtYmVyIgorI34gbXNnc3RyICJtb3VudDogJXMgaGF0IGVpbmUgZmFsc2NoZSBNYWpvciBvZGVyIE1pbm9yIEdlcsOkdGUtTnVtbWVyIgorCisjfiBtc2dpZCAibW91bnQ6ICVzOiVzIGZhaWxlZCwgcmVhc29uIGdpdmVuIGJ5IHNlcnZlcjogJXNcbiIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiAlczolcyBzY2hsdWcgZmVobCwgRGVyIGZvbGdlbmRlIEdydW5kIHd1cmRlIHZvbSBTZXJ2ZXIgYW5nZWdlYmVuOlxuIgorI34gIiAgICAgICAlc1xuIgorCisjfiBtc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSBnZW9tZXRyeSIKKyN+IG1zZ3N0ciAiS29ubnRlIGRpZSBGZXN0cGxhdHRlbmdlb21ldHJpZSBuaWNodCBsZXNlbiIKKworI34gbXNnaWQgIkNhbm5vdCBkZXJpdmUgYSBnZW9tZXRyeSBmcm9tIGFuIGVtcHR5IHBhcnRpdGlvbiB0YWJsZSIKKyN+IG1zZ3N0ciAiIgorI34gIktvbm50ZSBkaWUgR2VvbWV0cmllIG5pY2h0IGF1cyBlaW5lciBsZWVyZW4gUGFydGl0aW9uc3RhYmVsbGUgYWJsZWl0ZW4iCisKKyN+IG1zZ2lkICInLycgaW4gXCIlc1wiIgorI34gbXNnc3RyICLigJ4lc+KAnCBlbnRow6RsdCBlaW5lbiDigJ4v4oCcIgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZW5AYm9sZHF1b3QuaGVhZGVyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZW5AYm9sZHF1b3QuaGVhZGVyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlZGI2YTAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9lbkBib2xkcXVvdC5oZWFkZXIKQEAgLTAsMCArMSwyNSBAQAorIyBBbGwgdGhpcyBjYXRhbG9nICJ0cmFuc2xhdGVzIiBhcmUgcXVvdGF0aW9uIGNoYXJhY3RlcnMuCisjIFRoZSBtc2dpZHMgbXVzdCBiZSBBU0NJSSBhbmQgdGhlcmVmb3JlIGNhbm5vdCBjb250YWluIHJlYWwgcXVvdGF0aW9uCisjIGNoYXJhY3RlcnMsIG9ubHkgc3Vic3RpdHV0ZXMgbGlrZSBncmF2ZSBhY2NlbnQgKDB4NjApLCBhcG9zdHJvcGhlICgweDI3KQorIyBhbmQgZG91YmxlIHF1b3RlICgweDIyKS4gVGhlc2Ugc3Vic3RpdHV0ZXMgbG9vayBzdHJhbmdlOyBzZWUKKyMgaHR0cDovL3d3dy5jbC5jYW0uYWMudWsvfm1nazI1L3Vjcy9xdW90ZXMuaHRtbAorIworIyBUaGlzIGNhdGFsb2cgdHJhbnNsYXRlcyBncmF2ZSBhY2NlbnQgKDB4NjApIGFuZCBhcG9zdHJvcGhlICgweDI3KSB0bworIyBsZWZ0IHNpbmdsZSBxdW90YXRpb24gbWFyayAoVSsyMDE4KSBhbmQgcmlnaHQgc2luZ2xlIHF1b3RhdGlvbiBtYXJrIChVKzIwMTkpLgorIyBJdCBhbHNvIHRyYW5zbGF0ZXMgcGFpcnMgb2YgYXBvc3Ryb3BoZSAoMHgyNykgdG8KKyMgbGVmdCBzaW5nbGUgcXVvdGF0aW9uIG1hcmsgKFUrMjAxOCkgYW5kIHJpZ2h0IHNpbmdsZSBxdW90YXRpb24gbWFyayAoVSsyMDE5KQorIyBhbmQgcGFpcnMgb2YgcXVvdGF0aW9uIG1hcmsgKDB4MjIpIHRvCisjIGxlZnQgZG91YmxlIHF1b3RhdGlvbiBtYXJrIChVKzIwMUMpIGFuZCByaWdodCBkb3VibGUgcXVvdGF0aW9uIG1hcmsgKFUrMjAxRCkuCisjCisjIFdoZW4gb3V0cHV0IHRvIGFuIFVURi04IHRlcm1pbmFsLCB0aGUgcXVvdGF0aW9uIGNoYXJhY3RlcnMgYXBwZWFyIHBlcmZlY3RseS4KKyMgV2hlbiBvdXRwdXQgdG8gYW4gSVNPLTg4NTktMSB0ZXJtaW5hbCwgdGhlIHNpbmdsZSBxdW90YXRpb24gbWFya3MgYXJlCisjIHRyYW5zbGl0ZXJhdGVkIHRvIGFwb3N0cm9waGVzIChieSBpY29udiBpbiBnbGliYyAyLjIgb3IgbmV3ZXIpIG9yIHRvCisjIGdyYXZlL2FjdXRlIGFjY2VudCAoYnkgbGliaWNvbnYpLCBhbmQgdGhlIGRvdWJsZSBxdW90YXRpb24gbWFya3MgYXJlCisjIHRyYW5zbGl0ZXJhdGVkIHRvIDB4MjIuCisjIFdoZW4gb3V0cHV0IHRvIGFuIEFTQ0lJIHRlcm1pbmFsLCB0aGUgc2luZ2xlIHF1b3RhdGlvbiBtYXJrcyBhcmUKKyMgdHJhbnNsaXRlcmF0ZWQgdG8gYXBvc3Ryb3BoZXMsIGFuZCB0aGUgZG91YmxlIHF1b3RhdGlvbiBtYXJrcyBhcmUKKyMgdHJhbnNsaXRlcmF0ZWQgdG8gMHgyMi4KKyMKKyMgVGhpcyBjYXRhbG9nIGZ1cnRoZXJtb3JlIGRpc3BsYXlzIHRoZSB0ZXh0IGJldHdlZW4gdGhlIHF1b3RhdGlvbiBtYXJrcyBpbgorIyBib2xkIGZhY2UsIGFzc3VtaW5nIHRoZSBWVDEwMC9YVGVybSBlc2NhcGUgc2VxdWVuY2VzLgorIwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZW5AcXVvdC5oZWFkZXIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9lbkBxdW90LmhlYWRlcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTY0N2ZjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZW5AcXVvdC5oZWFkZXIKQEAgLTAsMCArMSwyMiBAQAorIyBBbGwgdGhpcyBjYXRhbG9nICJ0cmFuc2xhdGVzIiBhcmUgcXVvdGF0aW9uIGNoYXJhY3RlcnMuCisjIFRoZSBtc2dpZHMgbXVzdCBiZSBBU0NJSSBhbmQgdGhlcmVmb3JlIGNhbm5vdCBjb250YWluIHJlYWwgcXVvdGF0aW9uCisjIGNoYXJhY3RlcnMsIG9ubHkgc3Vic3RpdHV0ZXMgbGlrZSBncmF2ZSBhY2NlbnQgKDB4NjApLCBhcG9zdHJvcGhlICgweDI3KQorIyBhbmQgZG91YmxlIHF1b3RlICgweDIyKS4gVGhlc2Ugc3Vic3RpdHV0ZXMgbG9vayBzdHJhbmdlOyBzZWUKKyMgaHR0cDovL3d3dy5jbC5jYW0uYWMudWsvfm1nazI1L3Vjcy9xdW90ZXMuaHRtbAorIworIyBUaGlzIGNhdGFsb2cgdHJhbnNsYXRlcyBncmF2ZSBhY2NlbnQgKDB4NjApIGFuZCBhcG9zdHJvcGhlICgweDI3KSB0bworIyBsZWZ0IHNpbmdsZSBxdW90YXRpb24gbWFyayAoVSsyMDE4KSBhbmQgcmlnaHQgc2luZ2xlIHF1b3RhdGlvbiBtYXJrIChVKzIwMTkpLgorIyBJdCBhbHNvIHRyYW5zbGF0ZXMgcGFpcnMgb2YgYXBvc3Ryb3BoZSAoMHgyNykgdG8KKyMgbGVmdCBzaW5nbGUgcXVvdGF0aW9uIG1hcmsgKFUrMjAxOCkgYW5kIHJpZ2h0IHNpbmdsZSBxdW90YXRpb24gbWFyayAoVSsyMDE5KQorIyBhbmQgcGFpcnMgb2YgcXVvdGF0aW9uIG1hcmsgKDB4MjIpIHRvCisjIGxlZnQgZG91YmxlIHF1b3RhdGlvbiBtYXJrIChVKzIwMUMpIGFuZCByaWdodCBkb3VibGUgcXVvdGF0aW9uIG1hcmsgKFUrMjAxRCkuCisjCisjIFdoZW4gb3V0cHV0IHRvIGFuIFVURi04IHRlcm1pbmFsLCB0aGUgcXVvdGF0aW9uIGNoYXJhY3RlcnMgYXBwZWFyIHBlcmZlY3RseS4KKyMgV2hlbiBvdXRwdXQgdG8gYW4gSVNPLTg4NTktMSB0ZXJtaW5hbCwgdGhlIHNpbmdsZSBxdW90YXRpb24gbWFya3MgYXJlCisjIHRyYW5zbGl0ZXJhdGVkIHRvIGFwb3N0cm9waGVzIChieSBpY29udiBpbiBnbGliYyAyLjIgb3IgbmV3ZXIpIG9yIHRvCisjIGdyYXZlL2FjdXRlIGFjY2VudCAoYnkgbGliaWNvbnYpLCBhbmQgdGhlIGRvdWJsZSBxdW90YXRpb24gbWFya3MgYXJlCisjIHRyYW5zbGl0ZXJhdGVkIHRvIDB4MjIuCisjIFdoZW4gb3V0cHV0IHRvIGFuIEFTQ0lJIHRlcm1pbmFsLCB0aGUgc2luZ2xlIHF1b3RhdGlvbiBtYXJrcyBhcmUKKyMgdHJhbnNsaXRlcmF0ZWQgdG8gYXBvc3Ryb3BoZXMsIGFuZCB0aGUgZG91YmxlIHF1b3RhdGlvbiBtYXJrcyBhcmUKKyMgdHJhbnNsaXRlcmF0ZWQgdG8gMHgyMi4KKyMKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2VzLmdtbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2VzLmdtbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDMxZjFjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZXMuZ21vCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2VzLnBvIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZXMucG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM2ZDFmYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2VzLnBvCkBAIC0wLDAgKzEsMTI5OTggQEAKKyMgTWVuc2FqZXMgZW4gZXNwYfFvbCBwYXJhIHV0aWwtbGludXguCisjIENvcHlyaWdodCAoQykgMjAwMCBCZXRoIFBvd2VsbCA8YnBvd2VsbEB0dXJib2xpbnV4LmNvbT4uCisjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMyBTYW50aWFnbyBWaWxhIERvbmNlbCA8c2FudmlsYUB1bmV4LmVzPi4KKyMgQmV0aCBQb3dlbGwgPGJwb3dlbGxAdHVyYm9saW51eC5jb20+LCAyMDAwLgorIyBTYW50aWFnbyBWaWxhIERvbmNlbCA8c2FudmlsYUB1bmV4LmVzPiwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNC4KKyMKKyMgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGZyZWVseSBjb3B5IGFuZCBkaXN0cmlidXRlCisjIHRoaXMgZmlsZSBhbmQgbW9kaWZpZWQgdmVyc2lvbnMsIHByb3ZpZGVkIHRoYXQgdGhpcworIyBoZWFkZXIgaXMgbm90IHJlbW92ZWQgYW5kIG1vZGlmaWVkIHZlcnNpb25zIGFyZSBtYXJrZWQKKyMgYXMgc3VjaC4KKyMKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IHV0aWwtbGludXggMi4xMm1cbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDQtMTItMjIgMDE6MzErMDEwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogU2FudGlhZ28gVmlsYSBEb25jZWwgPHNhbnZpbGFAdW5leC5lcz5cbiIKKyJMYW5ndWFnZS1UZWFtOiBTcGFuaXNoIDxlc0BsaS5vcmc+XG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgorIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjYzCittc2dpZCAic2V0IHJlYWQtb25seSIKK21zZ3N0ciAiZXN0YWJsZWNlIHPzbG8gbGVjdHVyYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjcwCittc2dpZCAic2V0IHJlYWQtd3JpdGUiCittc2dzdHIgImVzdGFibGVjZSBsZWN0dXJhL2VzY3JpdHVyYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjc2Cittc2dpZCAiZ2V0IHJlYWQtb25seSIKK21zZ3N0ciAib2J0aWVuZSBz82xvIGxlY3R1cmEiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo4MgorIywgZnV6enkKK21zZ2lkICJnZXQgbG9naWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJvYnRpZW5lIGVsIHRhbWHxbyBkZWwgc2VjdG9yIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IHBoeXNpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgIm9idGllbmUgZWwgdGFtYfFvIGRlbCBzZWN0b3IiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo5NAorbXNnaWQgImdldCBtaW5pbXVtIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKK21zZ2lkICJnZXQgb3B0aW1hbCBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2CisjLCBmdXp6eQorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICJ0YW1h8W8gZGUgbm9kby1pIGluY29ycmVjdG8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTIKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IgorbXNnc3RyICJTZWN0b3JlcyBhZGljaW9uYWxlcyBwb3IgY2lsaW5kcm8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTgKK21zZ2lkICJnZXQgYmxvY2tzaXplIgorbXNnc3RyICJvYnRpZW5lIGVsIHRhbWHxbyBkZWwgYmxvcXVlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAiZXN0YWJsZWNlIGVsIHRhbWHxbyBkZWwgYmxvcXVlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgIm9idGllbmUgZWwgY29udGFkb3IgZGUgc2VjdG9yZXMgZGUgMzIgYml0cyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICJvYnRpZW5lIGVsIHRhbWHxbyBlbiBieXRlcyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgImVzdGFibGVjZSBgcmVhZGFoZWFkJyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1MAorbXNnaWQgImdldCByZWFkYWhlYWQiCittc2dzdHIgIm9idGllbmUgYHJlYWRhaGVhZCciCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKKyMsIGZ1enp5Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJlc3RhYmxlY2UgYHJlYWRhaGVhZCciCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJvYnRpZW5lIGByZWFkYWhlYWQnIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTY3Cittc2dpZCAiZmx1c2ggYnVmZmVycyIKK21zZ3N0ciAidmFj7WEgbG9zIGL6ZmVyZXMiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJ2dWVsdmUgYSBsZWVyIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOlxuIgorbXNnc3RyICJVc286XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyAtLXJlcG9ydCBbZGV2aWNlc11cbiIKK21zZ3N0ciAiICAlcyAtLXJlcG9ydCBbZGlzcG9zaXRpdm9zXVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgWy12fC1xXSBjb21tYW5kcyBkZXZpY2VzXG4iCittc2dzdHIgIiAgJXMgWy12fC1xXSDzcmRlbmVzIGRpc3Bvc2l0aXZvc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBjb21tYW5kczpcbiIKK21zZ3N0ciAi03JkZW5lcyBkaXNwb25pYmxlczpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NworIywgZnV6enkKK21zZ2lkICJnZXQgc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzIgorbXNnc3RyICJvYnRpZW5lIGVsIHRhbWHxbyBlbiBieXRlcyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBjb21tYW5kOiAlc1xuIgorbXNnc3RyICIlczogT3JkZW4gZGVzY29ub2NpZGE6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgbmVjZXNpdGEgdW4gYXJndW1lbnRvXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozNzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzIGZhaWxlZC5cbiIKK21zZ3N0ciAiRXJyb3IgZGUgYvpzcXVlZGEiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3VjY2VlZGVkLlxuIgorbXNnc3RyICIlcyBoYSB0ZW5pZG8g6XhpdG8uXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0MjcgZGlzay11dGlscy9ibG9ja2Rldi5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiJXM6IG5vIHNlIHB1ZWRlIGFicmlyICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBlcnJvciBkZSBpb2N0bCBlbiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDgxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIFN0YXJ0U2VjICAgICAgICAgICAgU2l6ZSAgIERldmljZVxuIgorbXNnc3RyICJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIFN0YXJ0U2VjICAgICBTaXplICAgIERldmljZVxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAidXNvOlxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJcdE5PVEU6IGVsdnR1bmUgb25seSB3b3JrcyB3aXRoIDIuNCBrZXJuZWxzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJwYXJzZSBlcnJvclxuIgorbXNnc3RyICJlcnJvciBkZSBi+nNxdWVkYSIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJsb2NrZGV2aWNlLCB1c2UgLWggZm9yIGhlbHBcbiIKK21zZ3N0ciAiJXMgbm8gZXMgdW4gZGlzcG9zaXRpdm8gZGUgYmxvcXVlcyBvIHVuIGZpY2hlcm9cbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJlbHZ0dW5lIGlzIG9ubHkgdXNlZnVsIG9uIG9sZGVyIGtlcm5lbHM7XG4iCisiZm9yIDIuNiB1c2UgSU8gc2NoZWR1bGVyIHN5c2ZzIHR1bmFibGVzIGluc3RlYWQuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIkZvcm1hdGVhbmRvLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgImZpbmFsaXphZG9cbiIKKworIyBOb3RhOiBBbCBwYXJlY2VyLCBlbiBlc3Bh8W9sIG5vIHNlIHBvbmUgZXNwYWNpbyBhbnRlcyBkZSAuLi4KKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAiVmVyaWZpY2FuZG8uLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIkxlZXI6ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAiUHJvYmxlbWEgZGUgbGVjdHVyYSBlbiBlbCBjaWxpbmRybyAlZCwgc2UgZXNwZXJhYmEgJWQsIHNlIGxlefMgJWRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJiYWQgZGF0YSBpbiBjeWwgJWRcbiIKKyJDb250aW51aW5nIC4uLiAiCittc2dzdHIgIiIKKyJEYXRvcyBpbmNvcnJlY3RvcyBlbiBlbCBjaWxpbmRybyAlZFxuIgorIkNvbnRpbnVhbmRvLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgInVzbzogJXMgWyAtbiBdIGRpc3Bvc2l0aXZvXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMTggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4NAorIzogZGlzay11dGlscy9pc29zaXplLmM6MTgxIGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMTQgZGlzay11dGlscy9ta2ZzLmM6NTIKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4MTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTcyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ4NyBtaXNjLXV0aWxzL2RkYXRlLmM6MTc5IG1pc2MtdXRpbHMvcmVuYW1lLmM6NzkKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTQ3IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjE5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgKCVzKVxuIgorbXNnc3RyICIlczogJXMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6IG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGRlIGJsb3F1ZXNcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZGV0ZXJtaW5hciBlbCB0aXBvIGRlIGZvcm1hdG8gYWN0dWFsIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgIiVzIGNhcmFzLCAlZCBwaXN0YXMsICVkIHNlY3RvcmVzL3Bpc3RhLiBDYXBhY2lkYWQgdG90YWwgJWQga0IuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIkRvYmxlIGRlbnNpZGFkIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICJTaW1wbGUgZGVuc2lkYWQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisibW9kbyBkZSBlbXBsZW86ICVzIFstaHZdIFsteCBkaXJdIGZpY2hlcm9cbiIKKyIgLWggICAgICAgICBtdWVzdHJhIGVzdGEgYXl1ZGFcbiIKKyIgLXggZGlyICAgICBleHRyYWUgZW4gZGlyXG4iCisiIC12ICAgICAgICAgZXMgbeFzIGV4cGxpY2F0aXZvXG4iCisiIGZpY2hlcm8gICAgZmljaGVybyBxdWUgc2UgY29tcHJ1ZWJhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN0YXQgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKFNpZ3VpZW50ZSBmaWNoZXJvOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib3BlbiBmYWlsZWQ6ICVzIgorbXNnc3RyICJvcGVucHR5IGhhIGZhbGxhZG9cbiIKKworIyBGSVhNRTogU29icmEgZWwgZXNwYWNpbyBmaW5hbAorIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgZmFpbGVkOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGRldmljZSBzaXplOiAlcyIKK21zZ3N0ciAiIgorIiVzOiBhdGVuY2nzbiwgbm8gc2UgcHVlZGUgZGV0ZXJtaW5hciBlbCB0YW1h8W8gZGVsIHNpc3RlbWEgZGUgZmljaGVyb3NcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIlcyBubyBlcyB1biBkaXNwb3NpdGl2byBkZSBibG9xdWVzIG8gdW4gZmljaGVyb1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKKyMsIGZ1enp5Cittc2dpZCAiZmlsZSBsZW5ndGggdG9vIHNob3J0IgorbXNnc3RyICIlczogY3JhbWZzIGluduFsaWRvLCBsb25naXR1ZCBkZSBmaWNoZXJvIGRlbWFzaWFkbyBjb3J0YVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg5IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxOTcKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNTggZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCBmYWlsZWQ6ICVzIgorbXNnc3RyICIoU2lndWllbnRlIGZpY2hlcm86ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIwNworbXNnaWQgInN1cGVyYmxvY2sgbWFnaWMgbm90IGZvdW5kIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTYKKyMsIGZ1enp5Cittc2dpZCAidW5zdXBwb3J0ZWQgZmlsZXN5c3RlbSBmZWF0dXJlcyIKK21zZ3N0ciAiRXNjcmliYSBlbCB0aXBvIGRlIHNpc3RlbWEgZGUgZmljaGVyb3M6ICIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3VwZXJibG9jayBzaXplICglZCkgdG9vIHNtYWxsIgorbXNnc3RyICJO+m1lcm8gZGUgc2VjdG9yZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKKyMsIGZ1enp5Cittc2dpZCAiemVybyBmaWxlIGNvdW50IgorbXNnc3RyICJhbCBmaWNoZXJvICIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAiQXRlbmNp8246IGxhIHBhcnRpY2nzbiAlcyBmaW5hbGl6YSBt4XMgYWxs4SBkZWwgZmluYWwgZGVsIGRpc2NvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIiVzOiBhdGVuY2nzbiwgaW1hZ2VuIGNyYW1mcyBhbnRpZ3VhLCBzaW4gQ1JDXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNDYKK21zZ2lkICJ1bmFibGUgdG8gdGVzdCBDUkM6IG9sZCBjcmFtZnMgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzIgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjMzOQorIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ3NyBsb2dpbi11dGlscy9jaGZuLmM6NTI5IGxvZ2luLXV0aWxzL2Noc2guYzo0MzkKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTQxIHN5cy11dGlscy9jeXR1bmUuYzozMjEKK21zZ2lkICJtYWxsb2MgZmFpbGVkIgorbXNnc3RyICJMYSBhc2lnbmFjafNuIGRlIG1lbW9yaWEgKG1hbGxvYykgaGEgZmFsbGFkbyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI5NworIywgZnV6enkKK21zZ2lkICJjcmMgZXJyb3IiCittc2dzdHIgIiwgZXJyb3IiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjQKKyMsIGZ1enp5Cittc2dpZCAicm9vdCBpbm9kZSBpcyBub3QgZGlyZWN0b3J5IgorbXNnc3RyICJFbCBub2RvLWkgcmHteiBubyBlcyB1biBkaXJlY3RvcmlvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByb290IG9mZnNldCAoJWx1KSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mzg3Cittc2dpZCAiZGF0YSBibG9jayB0b28gbGFyZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICIgIGh1ZWNvIGVuICVsZCAoJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjMgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIgorbXNnc3RyICIgIGRlc2NvbXByaW1pZW5kbyBibG9xdWUgZW4gJWxkIGEgJWxkICglbGQpXG4iCisKKyMgTm8gbWUgZ3VzdGEuIFNlIGFkbWl0ZW4gc3VnZXJlbmNpYXMuCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tYmxvY2sgKCVsZCkgYnl0ZXMiCittc2dzdHIgIiVzOiBObyBibG9xdWUgKCVsZCkgYnl0ZXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICIlczogTm8gdGFtYfFvICglbGQgdnMgJWxkKSBieXRlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBmYWlsZWQ6ICVzIgorbXNnc3RyICIoU2lndWllbnRlIGZpY2hlcm86ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGNob3duIGZhaWxlZDogJXMiCittc2dzdHIgIm1vbnRhamUgZXJy825lbyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibW9udGFqZSBlcnLzbmVvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJiYWQgdGltZW91dCB2YWx1ZTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ5NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtkaXIgZmFpbGVkOiAlcyIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSBoYSBmYWxsYWRvOiAlbSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTQKK21zZ2lkICJiYWQgZmlsZW5hbWUgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MjEKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGlub2RlIG9mZnNldCIKK21zZ3N0ciAidGFtYfFvIGRlIG5vZG8taSBpbmNvcnJlY3RvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTM3Cittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU0MAorbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gc2l6ZSBhbmQgbm9uLXplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzEKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTc0Cittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNpemUgZXJyb3IgaW4gc3ltbGluazogJXMiCittc2dzdHIgIiVzOiBlcnJvciBkZSB0YW1h8W8gZW4gZWwgZW5sYWNlIHNpbWLzbGljbyBgJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN5bWxpbmsgZmFpbGVkOiAlcyIKK21zZ3N0ciAiZnN5bmMgaGEgZmFsbGFkbyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAiJXM6IG1vZG8gZmFsc28gZW4gYCVzJyAoJW8pXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rbm9kIGZhaWxlZDogJXMiCittc2dzdHIgIm1vbnRhamUgZXJy825lbyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBzdGFydCAoJWxkKSA8IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKSArIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKyIlczogY3JhbWZzIGluduFsaWRvLCBlbCBmaW5hbCBkZSBsb3MgZGF0b3MgZGUgZGlyZWN0b3Jpb3MgKCVsZClcbiIKKyJlcyBkaXN0aW50byBkZWwgY29taWVuem8gZGUgbG9zIGRhdG9zIGRlIGZpY2hlcm9zICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBmaWxlIGRhdGEgb2Zmc2V0IgorbXNnc3RyICIiCisiJXM6IGNyYW1mcyBpbnbhbGlkbywgZGVzcGxhemFtaWVudG8gaW524WxpZG8gZGUgbG9zIGRhdG9zIGRlIGZpY2hlcm9zXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MTQKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlIG91dGJ1ZmZlciIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYXNpZ25hciBlbCBi+mZlci5cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworIywgZnV6enkKK21zZ2lkICJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiCittc2dzdHIgIiVzOiBzZSBoYSBjb21waWxhZG8gc2luIHNvcG9ydGUgcGFyYSAteFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCittc2dzdHIgIlVzbzogJXMgWy1sYXJ2c21mXSAvZGV2L25vbWJyZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIGVzdOEgbW9udGFkby5cdCAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyNQorbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byBjb250aW51ZSIKK21zZ3N0ciAiv0VzdOEgc2VndXJvIGRlIHF1ZSBkZXNlYSBjb250aW51YXI/IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hlY2sgYWJvcnRlZC5cbiIKK21zZ3N0ciAiY29tcHJvYmFjafNuIGFudWxhZGEuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJO+m1lcm8gZGUgem9uYSA8IEZJUlNUWk9ORSBlbiBlbCBmaWNoZXJvIGAlcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiTvptZXJvIGRlIHpvbmEgPj0gWk9ORVMgZW4gZWwgZmljaGVybyBgJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiRWxpbWluYXIgYmxvcXVlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogdW5hYmxlIHRvIHNlZWsgdG8gYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIkVycm9yIGRlIGxlY3R1cmE6IG5vIHNlIHB1ZWRlIGJ1c2NhciBlbiB1biBibG9xdWUgZW4gZWwgZmljaGVybyAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIkVycm9yIGRlIGxlY3R1cmE6IGJsb3F1ZSBpbmNvcnJlY3RvIGVuIGVsIGZpY2hlcm8gJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyJFcnJvciBpbnRlcm5vOiBzZSBlc3ThIGludGVudGFuZG8gZXNjcmliaXIgdW4gYmxvcXVlIGluY29ycmVjdG9cbiIKKyJMYSBwZXRpY2nzbiBkZSBlc2NyaXR1cmEgbm8gc2UgdGllbmUgZW4gY3VlbnRhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAiRXJyb3IgZGUgYvpzcXVlZGEgZW4gd3JpdGVfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJFcnJvciBkZSBlc2NyaXR1cmE6IGJsb3F1ZSBpbmNvcnJlY3RvIGVuIGVsIGZpY2hlcm8gJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NDQKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9zdXBlcl9ibG9jayIKK21zZ3N0ciAiRXJyb3IgZGUgYvpzcXVlZGEgZW4gd3JpdGVfc3VwZXJfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgc3VwZXItYmxvY2siCittc2dzdHIgIk5vIHNlIHB1ZWRlIGVzY3JpYmlyIGVsIHN1cGVyYmxvcXVlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTYKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJObyBzZSBwdWVkZSBlc2NyaWJpciBsYSB0YWJsYSBkZSBub2Rvcy1pIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGVzY3JpYmlyIGxhIHRhYmxhIGRlIHpvbmFzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJObyBzZSBwdWVkZW4gZXNjcmliaXIgbm9kb3MtaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTg3Cittc2dpZCAic2VlayBmYWlsZWQiCittc2dzdHIgIkVycm9yIGRlIGL6c3F1ZWRhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTEgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6Mzk5CisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBidWZmZXIgZm9yIHN1cGVyYmxvY2siCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFzaWduYXIgYvpmZXJlcyBwYXJhIG1hcGFzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgbGVlciBlbCBzdXBlcmJsb3F1ZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjEyCittc2dpZCAiYmFkIG1hZ2ljIG51bWJlciBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiTvptZXJvIG3hZ2ljbyBpbmNvcnJlY3RvIGVuIGVsIHN1cGVyYmxvcXVlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTQKK21zZ2lkICJPbmx5IDFrIGJsb2Nrcy96b25lcyBzdXBwb3J0ZWQiCittc2dzdHIgIlPzbG8gc2UgZGEgc29wb3J0ZSBhIGJsb3F1ZXMgbyB6b25hcyBkZSAxayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE2Cittc2dpZCAiYmFkIHNfaW1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgIkNhbXBvIHNfaW1hcF9ibG9ja3MgaW5jb3JyZWN0byBlbiBzdXBlcmJsb3F1ZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE4Cittc2dpZCAiYmFkIHNfem1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgIkNhbXBvIHNfem1hcF9ibG9ja3MgaW5jb3JyZWN0byBlbiBzdXBlcmJsb3F1ZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI1Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgbWFwIgorbXNnc3RyICJObyBzZSBwdWVkZSBhc2lnbmFyIGL6ZmVyIHBhcmEgbGEgdGFibGEgZGUgbm9kb3MtaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI4CisjLCBmdXp6eQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgbWFwIgorbXNnc3RyICJObyBzZSBwdWVkZSBhc2lnbmFyIGL6ZmVyIHBhcmEgbGEgdGFibGEgZGUgbm9kb3MtaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJObyBzZSBwdWVkZSBhc2lnbmFyIGL6ZmVyIHBhcmEgbG9zIG5vZG9zLWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICJObyBzZSBwdWVkZSBhc2lnbmFyIGL6ZmVyIHBhcmEgZWwgbvptZXJvIGRlIG5vZG9zLWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFzaWduYXIgYvpmZXIgcGFyYSBlbCBu+m1lcm8gZGUgem9uYXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlIG1hcCIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgbGVlciBsYSB0YWJsYSBkZSBub2Rvcy1pIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDMKK21zZ2lkICJVbmFibGUgdG8gcmVhZCB6b25lIG1hcCIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgbGVlciBsYSB0YWJsYSBkZSB6b25hcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ1Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGVzIgorbXNnc3RyICJObyBzZSBwdWVkZW4gbGVlciBsb3Mgbm9kb3MtaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICJBdGVuY2nzbjogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGlub2Rlc1xuIgorbXNnc3RyICIlbGQgbm9kb3MtaVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIGJsb3F1ZXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU0IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdGRhdGF6b25lPSVsZCAoJWxkKVxuIgorbXNnc3RyICJQcmltZXJhIHpvbmEgZGUgZGF0b3M9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiVGFtYfFvIGRlIHpvbmE9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIlRhbWHxbyBt4XhpbW89JWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIkVzdGFkbyBkZWwgc2lzdGVtYSBkZSBmaWNoZXJvcz0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkxvbmdpdHVkIGRlIG5vbWJyZT0lZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzMgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1hcmtlZCB1bnVzZWQsIGJ1dCB1c2VkIGZvciBmaWxlICclcydcbiIKK21zZ3N0ciAiIgorIkVsIG5vZG8taSAlZCBzZSBoYSBtYXJjYWRvIGNvbW8gbm8gdXRpbGl6YWRvLCBwZXJvIHNlIHV0aWxpemEgcGFyYVxuIgorImVsIGZpY2hlcm8gJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI4Cittc2dpZCAiTWFyayBpbiB1c2UiCittc2dzdHIgIk1hcmNhciBlbiB1c28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iCittc2dzdHIgIkVsIGZpY2hlcm8gYCVzJyB0aWVuZSBlbCBtb2RvICUwNW9cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzA2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpbm9kZSBjb3VudCB0b28gYmlnLlxuIgorbXNnc3RyICJBdGVuY2nzbjogbvptZXJvIGRlIG5vZG9zLWkgZGVtYXNpYWRvIGVsZXZhZG8uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NzQKK21zZ2lkICJyb290IGlub2RlIGlzbid0IGEgZGlyZWN0b3J5IgorbXNnc3RyICJFbCBub2RvLWkgcmHteiBubyBlcyB1biBkaXJlY3RvcmlvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3ODggZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiIgorIkVsIGJsb3F1ZSB5YSBzZSBoYSB1dGlsaXphZG8gYW50ZXJpb3JtZW50ZS5cbiIKKyJBaG9yYSBlc3ThIGVuIGVsIGZpY2hlcm8gYCVzJy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc5MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjMKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NQorIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjEwCittc2dpZCAiQ2xlYXIiCittc2dzdHIgIkJvcnJhciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICJFbCBibG9xdWUgJWQgZW4gZWwgZmljaGVybyBgJXMnIGVzdOEgbWFyY2FkbyBjb21vIG5vIHV0aWxpemFkby4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzUKK21zZ2lkICJDb3JyZWN0IgorbXNnc3RyICJDb3JyZWN0byIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGRpcmVjdG9yeSAnJXMnIGNvbnRhaW5zIGEgYmFkIGlub2RlIG51bWJlciBmb3IgZmlsZSAnJS4qcycuIgorbXNnc3RyICIiCisiRWwgZGlyZWN0b3JpbyBgJXMnIGNvbnRpZW5lIHVuIG76bWVybyBkZSBub2RvLWkgaW5jb3JyZWN0b1xuIgorInBhcmEgZWwgZmljaGVybyAnJS4qcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBFbGltaW5hciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTkxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorbXNnc3RyICIlczogZGlyZWN0b3JpbyBpbmNvcnJlY3RvOiAnLicgbm8gZXMgZWwgcHJpbWVyb1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiJXM6IGRpcmVjdG9yaW8gaW5jb3JyZWN0bzogJy4uJyBubyBlcyBlbCBzZWd1bmRvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTExOQorbXNnaWQgImludGVybmFsIGVycm9yIgorbXNnc3RyICJFcnJvciBpbnRlcm5vIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTA0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiJXM6IGRpcmVjdG9yaW8gaW5jb3JyZWN0bzogdGFtYfFvIDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAiRXJyb3IgZGUgYvpzcXVlZGEgZW4gYmFkX3pvbmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDUgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtb2RlIG5vdCBjbGVhcmVkLiIKK21zZ3N0ciAiTm8gc2UgaGEgYm9ycmFkbyBlbCBtb2RvIGRlbCBub2RvLWkgJWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbm90IHVzZWQsIG1hcmtlZCB1c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJFbCBub2RvLWkgJWQgbm8gZXN04SBlbiB1c287IG1hcmNhZG8gY29tbyBlbiB1c28gZW4gZWwgbWFwYSBkZSBiaXRzLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIHVzZWQsIG1hcmtlZCB1bnVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIkVsIG5vZG8taSAlZCBlc3ThIGVuIHVzbzsgbWFyY2FkbyBjb21vIG5vIGVuIHVzbyBlbiBlbCBtYXBhIGRlIGJpdHMuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTYKK21zZ2lkICJTZXQiCittc2dzdHIgIkVzdGFibGVjZXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgY291bnRlZD0lZC4iCittc2dzdHIgIk5vZG8taSAlZCAobW9kbyA9ICUwN28pLCBpX25saW5rcz0lZCwgY29udGFkb3M9JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgIkVzdGFibGVjZSBpX25saW5rcyBlbiBu+m1lcm8gY29udGFkbyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG1hcmtlZCBpbiB1c2UsIG5vIGZpbGUgdXNlcyBpdC4iCittc2dzdHIgIlpvbmEgJWQ6IG1hcmNhZGEgY29tbyBlbiB1c287IG5pbmf6biBmaWNoZXJvIGxhIHV0aWxpemEuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIkVsaW1pbmFyIG1hcmNhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlpvbmEgJWQ6IGVuIHVzbywgY29udGFkb3M9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWm9uYSAlZDogbm8gZW4gdXNvLCBjb250YWRvcz0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg5IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3NworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc5Cittc2dpZCAiYmFkIGlub2RlIHNpemUiCittc2dzdHIgInRhbWHxbyBkZSBub2RvLWkgaW5jb3JyZWN0byIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI5MQorbXNnaWQgImJhZCB2MiBpbm9kZSBzaXplIgorbXNnc3RyICJ0YW1h8W8gZGUgbm9kby1pIHYyIGluY29ycmVjdG8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMTcKK21zZ2lkICJuZWVkIHRlcm1pbmFsIGZvciBpbnRlcmFjdGl2ZSByZXBhaXJzIgorbXNnc3RyICJTZSBuZWNlc2l0YSB0ZXJtaW5hbCBwYXJhIHJlcGFyYWNpb25lcyBpbnRlcmFjdGl2YXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICclcyc6ICVzIgorbXNnc3RyICJObyBzZSBwdWVkZSBhYnJpciAnJXMnIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiJXMgZXN04SBsaW1waW87IG5vIHNlIGNvbXBydWViYS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JjaW5nIGZpbGVzeXN0ZW0gY2hlY2sgb24gJXMuXG4iCittc2dzdHIgIkZvcnphbmRvIGNvbXByb2JhY2nzbiBkZWwgc2lzdGVtYSBkZSBmaWNoZXJvcyBlbiAlcy5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIG9uICVzIGlzIGRpcnR5LCBuZWVkcyBjaGVja2luZy5cbiIKK21zZ3N0ciAiIgorIkVsIHNpc3RlbWEgZGUgZmljaGVyb3MgZW4gJXMgY29udGllbmUgZWxlbWVudG9zIGV4dHJh8W9zOyBkZWJlIGNvbXByb2JhcnNlLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2bGQgbm9kb3MtaSB1dGlsaXphZG9zICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkIHpvbmFzIHV0aWxpemFkYXMgKCVsZCUlKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmQgcmVndWxhciBmaWxlc1xuIgorIiU2ZCBkaXJlY3Rvcmllc1xuIgorIiU2ZCBjaGFyYWN0ZXIgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGJsb2NrIGRldmljZSBmaWxlc1xuIgorIiU2ZCBsaW5rc1xuIgorIiU2ZCBzeW1ib2xpYyBsaW5rc1xuIgorIi0tLS0tLVxuIgorIiU2ZCBmaWxlc1xuIgorbXNnc3RyICIiCisiXG4iCisiJTZkIGZpY2hlcm9zIG5vcm1hbGVzXG4iCisiJTZkIGRpcmVjdG9yaW9zXG4iCisiJTZkIGZpY2hlcm9zIGRlIGRpc3Bvc2l0aXZvcyBkZSBjYXJhY3RlcmVzXG4iCisiJTZkIGZpY2hlcm9zIGRlIGRpc3Bvc2l0aXZvcyBkZSBibG9xdWVzXG4iCisiJTZkIGVubGFjZXNcbiIKKyIlNmQgZW5sYWNlcyBzaW1i82xpY29zXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpY2hlcm9zXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkVMIFNJU1RFTUEgREUgRklDSEVST1MgSEEgQ0FNQklBRE9cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIG9wZW46ICVzXG4iCittc2dzdHIgIiVzOiBmYWxsbyBhbCBhYnJpciAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNlZWsgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGVycm9yIGRlIGL6c3F1ZWRhIGVuICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogZXJyb3IgZGUgbGVjdHVyYSBlbiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9yIGNvdW50OiAlZCwgc2VjdG9yIHNpemU6ICVkXG4iCittc2dzdHIgIm76bWVybyBkZSBzZWN0b3JlczogJWQsIHRhbWHxbyBkZWwgc2VjdG9yOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiBwYXJzZSBlcnJvclxuIgorbXNnc3RyICIlczogZXJyb3IgYWwgYW5hbGl6YXIgbGEgb3BjafNuXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKK21zZ3N0ciAiVXNvOiAlcyBbLXhdIFstZCA8bvptPl0gaW1hZ2VuLWlzbzk2NjBcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy12XSBbLU4gbnItb2YtaW5vZGVzXSBbLVYgdm9sdW1lLW5hbWVdXG4iCisiICAgICAgIFstRiBmc25hbWVdIGRldmljZSBbYmxvY2stY291bnRdXG4iCittc2dzdHIgIiIKKyJVc286ICVzIFstdl0gWy1OIG76bWVyby1kZS1ub2Rvcy1pXSBbLVYgbm9tYnJlLWRlbC12b2x1bWVuXVxuIgorIiAgICAgWy1GIG5vbWJyZS1zaXN0LWZpY2hlcm9zXSBkaXNwb3NpdGl2byBbbvptZXJvLWRlLWJsb3F1ZXNdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAibm9tYnJlIGRlIHZvbHVtZW4gZGVtYXNpYWRvIGxhcmdvIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgIm5vbWJyZSBkZWwgc2lzdGVtYSBkZSBmaWNoZXJvcyBkZW1hc2lhZG8gbGFyZ28iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJObyBzZSBwdWVkZSBlZmVjdHVhciBgc3RhdCcgc29icmUgZWwgZGlzcG9zaXRpdm8gJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGRlIGJsb3F1ZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNzEgc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIgorbXNnc3RyICJubyBzZSBwdWVkZSBhYnJpciAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgIm5vIHNlIHB1ZWRlIG9idGVuZXIgZWwgdGFtYfFvIGRlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIKK21zZ3N0ciAiZWwgbvptZXJvIGRlIGJsb3F1ZXMgZXMgZGVtYXNpYWRvIGdyYW5kZSwgZWwgbeF4aW1vIGVzICVsdSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIwMgorbXNnaWQgInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiCittc2dzdHIgImRlbWFzaWFkb3Mgbm9kb3MtaTsgZWwgbeF4aW1vIGVzIDUxMiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAibm8gaGF5IHN1ZmljaWVudGUgZXNwYWNpbywgc2UgbmVjZXNpdGFuIGFsIG1lbm9zICVsdSBibG9xdWVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjIzIGZkaXNrL2ZkaXNrLmM6MjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2U6ICVzXG4iCittc2dzdHIgIkRpc3Bvc2l0aXZvOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlZvbHVtZTogPCUtNnM+XG4iCittc2dzdHIgIlZvbHVtZW46IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIk5vbWJyZURlbFNGOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIlRhbWHxb0RlbEJsb3F1ZTogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJOb2Rvcy1pOiAlZCAoZW4gMSBibG9xdWUpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluICVsbGQgYmxvY2tzKVxuIgorbXNnc3RyICJOb2Rvcy1pOiAlZCAoZW4gJWxkIGJsb3F1ZXMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrczogJWxsZFxuIgorbXNnc3RyICJCbG9xdWVzOiAlbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAiRmluIGRlIGxvcyBub2Rvcy1pOiAlZCwgZmluIGRlIGxvcyBkYXRvczogJWRmXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgImVycm9yIGFsIGVzY3JpYmlyIGVsIHN1cGVyYmxvcXVlIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjU5Cittc2dpZCAiZXJyb3Igd3JpdGluZyByb290IGlub2RlIgorbXNnc3RyICJlcnJvciBhbCBlc2NyaWJpciBlbCBub2RvLWkgcmHteiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NAorbXNnaWQgImVycm9yIHdyaXRpbmcgaW5vZGUiCittc2dzdHIgImVycm9yIGFsIGVzY3JpYmlyIHVuIG5vZG8taSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NworbXNnaWQgInNlZWsgZXJyb3IiCittc2dzdHIgImVycm9yIGRlIGL6c3F1ZWRhIgorCisjIExvIHBvbmdvIGVudHJlIGBjb21pdGFzJyBwb3JxdWUgZXN04SBhbCBmaW5hbC4KKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKK21zZ2lkICJlcnJvciB3cml0aW5nIC4gZW50cnkiCittc2dzdHIgImVycm9yIGFsIGVzY3JpYmlyIGxhIGVudHJhZGEgYC4nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6Mjc3Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAiZXJyb3IgYWwgZXNjcmliaXIgbGEgZW50cmFkYSBgLi4nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNsb3NpbmcgJXMiCittc2dzdHIgImVycm9yIGFsIGNlcnJhciAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICJVc286IG1rZnMgWy1WXSBbLXQgdGlwb19zZl0gW29wY2lvbmVzX3NmXSBkaXNwb3NpdGl2byBbdGFtYfFvXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo4OCBkaXNrLXV0aWxzL21rZnMuYzo5NiBmZGlzay9jZmRpc2suYzozNTMKKyM6IGdldG9wdC9nZXRvcHQuYzo4NiBnZXRvcHQvZ2V0b3B0LmM6OTYgbG9naW4tdXRpbHMvd2FsbC5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT3V0IG9mIG1lbW9yeSFcbiIKK21zZ3N0ciAiJXM6IKFObyBxdWVkYSBtZW1vcmlhIVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rZnMgKCVzKVxuIgorbXNnc3RyICJta2ZzIHZlcnNp824gJXMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MTI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaF0gWy12XSBbLWIgYmxrc2l6ZV0gWy1lIGVkaXRpb25dIFstTiBlbmRpYW5dIFstaSBmaWxlXSBbLW4gIgorIm5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAtdiAgICAgICAgIGJlIHZlcmJvc2VcbiIKKyIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgKG5vbi16ZXJvIGV4aXQgc3RhdHVzKVxuIgorIiAtYiBibGtzaXplIHVzZSB0aGlzIGJsb2Nrc2l6ZSwgbXVzdCBlcXVhbCBwYWdlIHNpemVcbiIKKyIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgY3JhbWZzIGVuZGlhbm5lc3MgKGJpZ3xsaXR0bGV8aG9zdCksIGRlZmF1bHQgaG9zdFxuIgorIiAtaSBmaWxlICAgIGluc2VydCBhIGZpbGUgaW1hZ2UgaW50byB0aGUgZmlsZXN5c3RlbSAocmVxdWlyZXMgPj0gMi40LjApXG4iCisiIC1uIG5hbWUgICAgc2V0IG5hbWUgb2YgY3JhbWZzIGZpbGVzeXN0ZW1cbiIKKyIgLXAgICAgICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIgorIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisiIC16ICAgICAgICAgbWFrZSBleHBsaWNpdCBob2xlcyAocmVxdWlyZXMgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3NlZFxuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCittc2dzdHIgIiIKKyJ1c286ICVzIFstaF0gWy12XSBbLWIgdGFtYmxvcV0gWy1lIGVkaWNp825dIFstaSBmaWNoXSBbLW4gbm9tYnJlXSBub21icmVkaXIgIgorImZzYWxpZGFcbiIKKyIgLWggICAgICAgICBtdWVzdHJhIGVzdGEgYXl1ZGFcbiIKKyIgLXYgICAgICAgICBz6SBleHBsaWNhdGl2b1xuIgorIiAtRSAgICAgICAgIGNvbnZpZXJ0ZSBlbiBlcnJvcmVzIHRvZG9zIGxvcyBhdmlzb3MgKGVzdGFkbyBkZSBzYWxpZGEgbm8gIgorImNlcm8pXG4iCisiIC1iIHRhbWJsb3EgdXRpbGl6YSBlc3RlIHRhbWHxbyBkZSBibG9xdWUsIGRlYmUgc2VyIGVsIHRhbWHxbyBkZSBw4WdpbmFcbiIKKyIgLWUgZWRpY2nzbiBlc3RhYmxlY2UgZWwgbvptZXJvIGRlIGVkaWNp824gKHBhcnRlIGRlIGZzaWQpXG4iCisiIC1pIGZpY2ggICAgaW5zZXJ0YSBsYSBpbWFnZW4gZGUgdW4gZmljaGVybyBkZW50cm8gZGVsIHNpc3RlbWEgZGUgZmljaGVyb3NcbiIKKyIgICAgICAgICAgICAobmVjZXNpdGEgTGludXggPj0gMi40LjApXG4iCisiIC1uIG5vbWJyZSAgZXN0YWJsZWNlIGVsIG5vbWJyZSBkZWwgc2lzdGVtYSBkZSBmaWNoZXJvcyBjcmFtZnNcbiIKKyIgLXAgICAgICAgICBkZXNwbGF6YSAlZCBieXRlcyBwYXJhIGVsIGPzZGlnbyBkZSBhcnJhbnF1ZTxcbiIKKyIgLXMgICAgICAgICBvcmRlbmEgbGFzIGVudHJhZGFzIGRlIGRpcmVjdG9yaW8gKG9wY2nzbiBhbnRpZ3VhLCBzaW4gZWZlY3RvKVxuIgorIiAteiAgICAgICAgIGNyZWEgaHVlY29zIGV4cGztY2l0b3MgKG5lY2VzaXRhIExpbnV4ID49IDIuMy4zOSlcbiIKKyIgbm9tYnJlZGlyICByYe16IGRlbCBzaXN0ZW1hIGRlIGZpY2hlcm9zIHF1ZSBzZSB2YSBhIGNvbXByaW1pclxuIgorIiBmc2FsaWRhICAgIGZpY2hlcm8gZGUgc2FsaWRhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJWZXJ5IGxvbmcgKCV6dSBieXRlcykgZmlsZW5hbWUgYCVzJyBmb3VuZC5cbiIKKyIgUGxlYXNlIGluY3JlYXNlIE1BWF9JTlBVVF9OQU1FTEVOIGluIG1rY3JhbWZzLmMgYW5kIHJlY29tcGlsZS4gIEV4aXRpbmcuXG4iCittc2dzdHIgIiIKKyJTZSBlbmNvbnRy8yB1biBub21icmUgZGUgZmljaGVybyBgJTIkcycgZGVtYXNpYWRvIGxhcmdvICglMSR1IGJ5dGVzKS5cbiIKKyIgUG9yIGZhdm9yIGluY3JlbWVudGUgTUFYX0lOUFVUX05BTUVMRU4gZW4gbWtjcmFtZnMuYyB5IHJlY29tcGlsZS4gIgorIlNhbGllbmRvLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImZpbGVzeXN0ZW0gdG9vIGJpZy4gIEV4aXRpbmcuXG4iCittc2dzdHIgInNpc3RlbWEgZGUgZmljaGVyb3MgZGVtYXNpYWRvIGdyYW5kZS4gU2FsaWVuZG8uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQUlFRUU6IGJsb2NrIFwiY29tcHJlc3NlZFwiIHRvID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorbXNnc3RyICJZRVBBOiBibG9xdWUgXCJjb21wcmltaWRvXCIgYSA+IDIqbG9uZ2l0dWRkZWxibG9xdWUgKCVsZClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJTYuMmYlJSAoJStsZCBieXRlcylcdCVzXG4iCittc2dzdHIgIiU2LjJmJSUgKCUrZCBieXRlcylcdCVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4NTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBndWVzdGltYXRlIG9mIHJlcXVpcmVkIHNpemUgKHVwcGVyIGJvdW5kKSBpcyAlbGxkTUIsIGJ1dCBtYXhpbXVtICIKKyJpbWFnZSBzaXplIGlzICV1TUIuICBXZSBtaWdodCBkaWUgcHJlbWF0dXJlbHkuXG4iCittc2dzdHIgIiIKKyJhdGVuY2nzbjogbGEgZXN0aW1hY2nzbiBkZWwgdGFtYfFvIHJlcXVlcmlkbyAoY290YSBzdXBlcmlvcikgZXMgJUxkTUIsIHBlcm9cbiIKKyJlbCB0YW1h8W8gbeF4aW1vIGRlIGxhIGltYWdlbiBlcyAldU1CLiBQb2Ry7WEgYWJvcnRhcnNlIHByZW1hdHVyYW1lbnRlLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiSW5jbHV5ZW5kbzogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGlyZWN0b3J5IGRhdGE6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJEYXRvcyBkZSBkaXJlY3RvcmlvczogJWQgYnl0ZXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICJUb2RvOiAlZCBraWxvYnl0ZXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJTdXBlcmJsb3F1ZTogJWQgYnl0ZXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDUkM6ICV4XG4iCittc2dzdHIgIkNSQzogJXhcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICIiCisibm8gaGF5IHN1ZmljaWVudGUgZXNwYWNpbyBwYXJhIGxhIGltYWdlbiBST00gKGFzaWduYWRvICVMZCwgdXNhZG8gJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiZmFsbPMgbGEgZXNjcml0dXJhIGRlIGxhIGltYWdlbiBST00gKCVkICVkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICJhdGVuY2nzbjogbG9zIG5vbWJyZXMgZGUgZmljaGVyb3Mgc2UgdHJ1bmNhbiBhIDI1NSBieXRlcy5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlcyB3ZXJlIHNraXBwZWQgZHVlIHRvIGVycm9ycy5cbiIKK21zZ3N0ciAiYXRlbmNp8246IHNlIHNhbHRhcm9uIGZpY2hlcm9zIGRlYmlkbyBhIGVycm9yZXMuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgIiIKKyJhdGVuY2nzbjogbG9zIHRhbWHxb3MgZGUgbG9zIGZpY2hlcm9zIHNlIHRydW5jYW4gYSAlbHVNQiAobWVub3MgMSBieXRlKS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogdWlkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisiYXRlbmNp8246IGxvcyB1aWRzIHNlIHRydW5jYW4gYSAldSBiaXRlcy4gIChFc3RvIHBvZHLtYSBzZXIgdW4gcHJvYmxlbWFcbiIKKyJkZSBzZWd1cmlkYWQuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBnaWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKyJhdGVuY2nzbjogbG9zIGdpZHMgc2UgdHJ1bmNhbiBhICV1IGJpdHMuIChFc3RvIHBvZHLtYSBzZXIgdW4gcHJvYmxlbWFcbiIKKyJkZSBzZWd1cmlkYWQpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorIkFURU5DSdNOOiBsb3MgbvptZXJvcyBkZSBkaXNwb3NpdGl2byBzZSB0cnVuY2FuIGEgJXUgYml0cy4gRXN0b1xuIgorInNpZ25pZmljYSBjYXNpIGNvbiBjZXJ0ZXphIHF1ZSBhbGd1bm9zIGZpY2hlcm9zIGRlIGRpc3Bvc2l0aXZvcyBzZXLhbiAiCisiZXJy825lb3MuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIlVzbzogJXMgWy1jIHwgLWwgbm9tYnJlZmljaGVyb10gWy1uWFhdIFstaVhYXSAvZGV2L25vbWJyZSBbYmxvcXVlc11cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2UgYSBmaWxlc3lzdGVtIGhlcmUhIgorbXNnc3RyICIlcyBlc3ThIG1vbnRhZG87IG5vIHNlIGNyZWFy4SB1biBzaXN0ZW1hIGRlIGZpY2hlcm9zIGFxde0iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJFcnJvciBkZSBi+nNxdWVkYSBkZSBibG9xdWUgZGUgaW5pY2lvIGVuIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkwCittc2dpZCAidW5hYmxlIHRvIGNsZWFyIGJvb3Qgc2VjdG9yIgorbXNnc3RyICJObyBzZSBwdWVkZSBib3JyYXIgZWwgc2VjdG9yIGRlIGluaWNpbyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkyCittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJFcnJvciBkZSBi+nNxdWVkYSBlbiB3cml0ZV90YWJsZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGVzY3JpYmlyIGxhIHRhYmxhIGRlIG5vZG9zLWkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZXNjcmliaXIgbGEgdGFibGEgZGUgem9uYXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwMAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgIk5vIHNlIHB1ZWRlbiBlc2NyaWJpciBsb3Mgbm9kb3MtaSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA5Cittc2dpZCAid3JpdGUgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJFcnJvciBkZSBlc2NyaXR1cmEgZW4gd3JpdGVfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIxNyBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyOTEKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM0MAorbXNnaWQgInRvbyBtYW55IGJhZCBibG9ja3MiCittc2dzdHIgIkhheSBkZW1hc2lhZG9zIGJsb3F1ZXMgaW5jb3JyZWN0b3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgIk5vIGhheSBzdWZpY2llbnRlcyBibG9xdWVzIGNvcnJlY3RvcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQwCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFzaWduYXIgYvpmZXJlcyBwYXJhIG1hcGFzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFzaWduYXIgYvpmZXIgcGFyYSBsb3Mgbm9kb3MtaSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJNYXhzaXplPSVsZFxuIgorIlxuIgorbXNnc3RyICIiCisiVGFtYfFvIG3heGltbz0lbGRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDY5Cittc2dpZCAic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIgorbXNnc3RyICJFcnJvciBkZSBi+nNxdWVkYSBkdXJhbnRlIGNvbXByb2JhY2nzbiBkZSBibG9xdWVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2VpcmQgdmFsdWVzIGluIGRvX2NoZWNrOiBwcm9iYWJseSBidWdzXG4iCittc2dzdHIgIlZhbG9yZXMgZXh0cmHxb3MgZW4gZG9fY2hlY2s6IHByb2JhYmxlbWVudGUgZXhpc3RhbiBlcnJvcmVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUwOCBkaXNrLXV0aWxzL21rc3dhcC5jOjMxNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIKK21zZ3N0ciAiRXJyb3IgZGUgYvpzcXVlZGEgZW4gY2hlY2tfYmxvY2tzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MTcKK21zZ2lkICJiYWQgYmxvY2tzIGJlZm9yZSBkYXRhLWFyZWE6IGNhbm5vdCBtYWtlIGZzIgorbXNnc3RyICIiCisiQmxvcXVlcyBpbmNvcnJlY3RvcyBhbnRlcyBkZWwg4XJlYSBkZSBkYXRvczogbm8gc2UgcHVlZGUgY3JlYXJcbiIKKyJlbCBzaXN0ZW1hIGRlIGZpY2hlcm9zIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWQgYmxvcXVlcyBpbmNvcnJlY3Rvc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAiVW4gYmxvcXVlIGluY29ycmVjdG9cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyIGVsIGZpY2hlcm8gZGUgYmxvcXVlcyBpbmNvcnJlY3RvcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQwCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJObyBzZSBwdWVkZSBsZWVyIGxhIHVuaWRhZCBkZSBkaXNjbyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgInN0cnRvbCBlcnJvcjogbnVtYmVyIG9mIGJsb2NrcyBub3Qgc3BlY2lmaWVkIgorbXNnc3RyICJlcnJvciBkZSBzdHJ0b2w6IG5vIHNlIGhhIGVzcGVjaWZpY2FkbyBlbCBu+m1lcm8gZGUgYmxvcXVlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBzdGF0ICVzIgorbXNnc3RyICJObyBzZSBwdWVkZSBlamVjdXRhciBgc3RhdCcgc29icmUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzZWN0b3Igc2l6ZSBmb3IgJXMiCittc2dzdHIgIm5vIHNlIHB1ZWRlIG9idGVuZXIgZWwgdGFtYfFvIGRlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgIm5vIHNlIHB1ZWRlIG9idGVuZXIgZWwgdGFtYfFvIGRlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICJObyBzZSBpbnRlbnRhcuEgY3JlYXIgZWwgc2lzdGVtYSBkZSBmaWNoZXJvcyBlbiAnJXMnIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjUKKyMsIGZ1enp5Cittc2dpZCAibnVtYmVyIG9mIGJsb2NrcyB0b28gc21hbGwiCittc2dzdHIgIk76bWVybyBkZSBzZWN0b3JlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICJFbCB0YW1h8W8gZGUgcOFnaW5hICVkIGVzcGVjaWZpY2FkbyBwb3IgZWwgdXN1YXJpbyBlcyBpbmNvcnJlY3RvXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWQsIGluc3RlYWQgb2YgdGhlIHN5c3RlbSB2YWx1ZSAlZFxuIgorbXNnc3RyICIiCisiU2UgdXRpbGl6YSBlbCB0YW1h8W8gZGUgcOFnaW5hICVkIGVzcGVjaWZpY2FkbyBwb3IgZWwgdXN1YXJpbyxcbiIKKyJlbiBsdWdhciBkZSBsb3MgdmFsb3JlcyBkZWwgc2lzdGVtYSAlZC8lZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICJMYWJlbCB3YXMgdHJ1bmNhdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICJldGlxdWV0YSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdXVpZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jXSBbLXBQQUdFU1pdIFstTCBsYWJlbF0gWy1VIFVVSURdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICJVc286ICVzIFstY10gWy12MHwtdjFdIFstcFRBTVDBR10gL2Rldi9ub21icmUgW2Jsb3F1ZXNdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICJIYXkgZGVtYXNpYWRhcyBw4WdpbmFzIGluY29ycmVjdGFzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiTm8gcXVlZGEgbWVtb3JpYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBwYWdlXG4iCittc2dzdHIgIlVuYSBw4WdpbmEgaW5jb3JyZWN0YVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVsdSBw4WdpbmFzIGluY29ycmVjdGFzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDAyIGRpc2stdXRpbHMvbWtzd2FwLmM6NDM5IGRpc2stdXRpbHMvbWtzd2FwLmM6NjU5Cittc2dpZCAidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgcmVib2JpbmFyIGVsIGRpc3Bvc2l0aXZvIGRlIGludGVyY2FtYmlvIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgbmV3IGxpYmJsa2lkIHByb2JlIgorbXNnc3RyICJObyBzZSBwdWVkZSBhc2lnbmFyIGL6ZmVyIHBhcmEgbG9zIG5vZG9zLWkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDE1Cittc2dpZCAidW5hYmxlIHRvIGFzc2lnbiBkZXZpY2UgdG8gbGlibGtpZCBwcm9iZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0MworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gZXJhc2UgYm9vdGJpdHMgc2VjdG9ycyIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYm9ycmFyIGVsIHNlY3RvciBkZSBpbmljaW8iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogd2FybmluZzogZG9uJ3QgZXJhc2UgYm9vdGJpdHMgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgICglcyBwYXJ0aXRpb24gdGFibGUgZGV0ZWN0ZWQpLiAiCittc2dzdHIgIiAgIHAgICBJbXByaW1lIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzIEJTRCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgb24gd2hvbGUgZGlzay4gIgorbXNnc3RyICIgICBzICAgTXVlc3RyYSBsYSBldGlxdWV0YSBkZWwgZGlzY28gY29tcGxldGEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICBzICAgTXVlc3RyYSBsYSBldGlxdWV0YSBkZWwgZGlzY28gY29tcGxldGEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkb2VzIG5vdCBzdXBwb3J0IHN3YXBzcGFjZSB2ZXJzaW9uICVkLlxuIgorbXNnc3RyICIlczogZXJyb3I6IHZlcnNp824gZGVzY29ub2NpZGEgJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyJFcnJvciBhbCBjZXJyYXIgZWwgZmljaGVyb1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IE5vd2hlcmUgdG8gc2V0IHVwIHN3YXAgb24/XG4iCittc2dzdHIgIiIKKyIlczogZXJyb3I6IG5vIHNlIGhhIGVzcGVjaWZpY2FkbyBk825kZSBjb25maWd1cmFyIGVsIGVzcGFjaW8gZGUgaW50ZXJjYW1iaW9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc2l6ZSAlbGx1IEtpQiBpcyBsYXJnZXIgdGhhbiBkZXZpY2Ugc2l6ZSAlbGx1IEtpQlxuIgorbXNnc3RyICIlczogZXJyb3I6IGVsIHRhbWHxbyAlbHUgZXMgc3VwZXJpb3IgYWwgdGFtYfFvIGRlbCBkaXNwb3NpdGl2byAlbHVcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc3dhcCBhcmVhIG5lZWRzIHRvIGJlIGF0IGxlYXN0ICVsZCBLaUJcbiIKK21zZ3N0ciAiJXM6IGVycm9yOiBlbCDhcmVhIGRlIGludGVyY2FtYmlvIGRlYmUgdGVuZXIgY29tbyBt7W5pbW8gJWxka0JcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YXJuaW5nOiB0cnVuY2F0aW5nIHN3YXAgYXJlYSB0byAlbGx1IEtpQlxuIgorbXNnc3RyICIlczogYXRlbmNp8246IGVsIOFyZWEgZGUgaW50ZXJjYW1iaW8gc2UgdHJ1bmNhIGEgJWxka0JcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogd2lsbCBub3QgdHJ5IHRvIG1ha2Ugc3dhcGRldmljZSBvbiAnJXMnXG4iCittc2dzdHIgIk5vIHNlIGludGVudGFy4SBjcmVhciBlbCBkaXNwb3NpdGl2byBkZSBpbnRlcmNhbWJpbyBlbiAnJXMnIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYzMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiAlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIHN3YXBzcGFjZS5cbiIKK21zZ3N0ciAiJXMgZXN04SBtb250YWRvOyBubyBzZSBjcmVhcuEgdW4gc2lzdGVtYSBkZSBmaWNoZXJvcyBhcXXtIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgY29uZmlndXJhciBlbCBlc3BhY2lvIGRlIGludGVyY2FtYmlvOiBubyBzZSBwdWVkZSBsZWVyIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyB1cCBzd2Fwc3BhY2UgdmVyc2lvbiAxLCBzaXplID0gJWxsdSBLaUJcbiIKK21zZ3N0ciAiQ29uZmlndXJhbmRvIGVzcGFjaW8gZGUgaW50ZXJjYW1iaW8gdmVyc2nzbiAlZCwgdGFtYfFvID0gJWxsdSBrQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gd3JpdGUgc2lnbmF0dXJlIHBhZ2U6ICVzIgorbXNnc3RyICJObyBzZSBwdWVkZSBlc2NyaWJpciBsYSBw4WdpbmEgZGUgZmlybWEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICJmc3luYyBoYSBmYWxsYWRvIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBtYXRjaHBhdGhjb24oKSIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZWplY3V0YXIgYHN0YXQnIHNvYnJlICVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIk5vIHNlIHB1ZWRlbiBlc2NyaWJpciBsb3Mgbm9kb3MtaSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTUKK21zZ2lkICJjb3VsZG4ndCBjb21wdXRlIHNlbGludXggY29udGV4dCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjcwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byByZWxhYmVsICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICJObyBzZSBwdWVkZSBjYW1iaWFyIGVsIG5vbWJyZSAlcyBwb3IgJXM6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgICVzICIKK21zZ3N0ciAiVXNvOlxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlICclcycgaXMgY29udHJvbCByYXcgZGV2ICh1c2UgcmF3PE4+IHdoZXJlIDxOPiBpcyBncmVhdGVyIHRoYW4gemVybylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSBibG9jayBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGJsb3F1ZWFyIGVsIGZpY2hlcm8gZGUgYmxvcXVlbyAlczogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICJBdGVuY2nzbjogJXMgbm8gZXMgdW4gZGlzcG9zaXRpdm8gZGUgYmxvcXVlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gbWFzdGVyIHJhdyBkZXZpY2UgJyIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZWZlY3R1YXIgYHN0YXQnIHNvYnJlIGVsIGRpc3Bvc2l0aXZvICVzIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBlZmVjdHVhciBgc3RhdCcgc29icmUgZWwgZGlzcG9zaXRpdm8gJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIvZGV2LyVzOiBubyBlcyB1biBkaXNwb3NpdGl2byBkZSBjYXJhY3RlcmVzIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgcmF3IGRldlxuIgorbXNnc3RyICIlcyBubyBlcyB1biBkaXNwb3NpdGl2byBkZSBibG9xdWVzIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBxdWVyeWluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBzZXR0aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICJlcnJvciBhbCBkZXRlbmVyIGVsIHNlcnZpY2lvOiBcIiVzXCIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM3OCBmZGlzay9jZmRpc2suYzoyMDgzCittc2dpZCAiVW51c2FibGUiCittc2dzdHIgIkludXRpbGl6YWJsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgwIGZkaXNrL2NmZGlzay5jOjIwODUKK21zZ2lkICJGcmVlIFNwYWNlIgorbXNnc3RyICJFc3BhY2lvIGxpYnJlIgorCisjOiBmZGlzay9jZmRpc2suYzozODMKK21zZ2lkICJMaW51eCBleHQyIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9jZmRpc2suYzozODUKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICJMaW51eCBleHQzIgorCisjOiBmZGlzay9jZmRpc2suYzozODcKK21zZ2lkICJMaW51eCBYRlMiCittc2dzdHIgIkxpbnV4IFhGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBKRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIlNlIGhhIG1vZGlmaWNhZG8gZWwgZGlzY28uXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIlJlaW5pY2llIGVsIHNpc3RlbWEgcGFyYSBhc2VndXJhcnNlIGRlIHF1ZSBsYSB0YWJsYSBkZSBwYXJ0aWNpb25lcyBlc3TpICIKKyJiaWVuXG4iCisiYWN0dWFsaXphZGEuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnlcbiIKKyJET1MgNi54IHBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGNmZGlzayBtYW51YWxcbiIKKyJwYWdlIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiQVRFTkNJ0046IFNpIGhhIGNyZWFkbyBvIG1vZGlmaWNhZG8gYWxndW5hIGRlIGxhc1xuIgorInBhcnRpY2lvbmVzIERPUyA2LngsIGNvbnN1bHRlIGxhIHDhZ2luYSBkZSBtYW51YWwgZGUgY2ZkaXNrXG4iCisicGFyYSBvYnRlbmVyIG3hcyBpbmZvcm1hY2nzbi5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIkVSUk9SIE1VWSBHUkFWRSIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE3Cittc2dpZCAiUHJlc3MgYW55IGtleSB0byBleGl0IGNmZGlzayIKK21zZ3N0ciAiUHVsc2UgdW5hIHRlY2xhIHBhcmEgc2FsaXIgZGUgY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzo1NjQgZmRpc2svY2ZkaXNrLmM6NTcyCittc2dpZCAiQ2Fubm90IHNlZWsgb24gZGlzayBkcml2ZSIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYnVzY2FyIGVuIGxhIHVuaWRhZCBkZSBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY2Cittc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgbGVlciBsYSB1bmlkYWQgZGUgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjU3NAorbXNnaWQgIkNhbm5vdCB3cml0ZSBkaXNrIGRyaXZlIgorbXNnc3RyICJObyBzZSBwdWVkZSBlc2NyaWJpciBlbiBsYSB1bmlkYWQgZGUgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjkxNworbXNnaWQgIlRvbyBtYW55IHBhcnRpdGlvbnMiCittc2dzdHIgIkhheSBkZW1hc2lhZGFzIHBhcnRpY2lvbmVzIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiTGEgcGFydGljafNuIGVtcGllemEgYW50ZXMgZGVsIHNlY3RvciAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIkxhIHBhcnRpY2nzbiB0ZXJtaW5hIGFudGVzIGRlbCBzZWN0b3IgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTMyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiTGEgcGFydGljafNuIGVtcGllemEgZGVzcHXpcyBkZWwgZmluIGRlIGRpc2NvIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiTGEgcGFydGljafNuIHRlcm1pbmEgZGVzcHXpcyBkZWwgZmluIGRlIGRpc2NvIgorCisjOiBmZGlzay9jZmRpc2suYzo5NDIKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBpbiB0aGUgZmluYWwgcGFydGlhbCBjeWxpbmRlciIKK21zZ3N0ciAiTGEgcGFydGljafNuIHRlcm1pbmEgZW4gZWwg+mx0aW1vIGNpbGluZHJvIHBhcmNpYWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2NgorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBub3QgaW4gZGlzayBvcmRlciIKK21zZ3N0ciAiTGFzIHBhcnRpY2lvbmVzIGzzZ2ljYXMgbm8gZXN04W4gZW4gb3JkZW4gZGUgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2OQorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJTb2xhcGFtaWVudG8gZGUgcGFydGljaW9uZXMgbPNnaWNhcyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTczCittc2dpZCAiZW5sYXJnZWQgbG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgIlNvbGFwYW1pZW50byBkZSBwYXJ0aWNpb25lcyBs82dpY2FzIGFtcGxpYWRhcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAwMworbXNnaWQgIiIKKyIhISEhIEludGVybmFsIGVycm9yIGNyZWF0aW5nIGxvZ2ljYWwgZHJpdmUgd2l0aCBubyBleHRlbmRlZCBwYXJ0aXRpb24gISEhISIKK21zZ3N0ciAioaGhoSBFcnJvciBpbnRlcm5vIGFsIGNyZWFyIHVuaWRhZCBs82dpY2Egc2luIHBhcnRpY2nzbiBleHRlbmRpZGEgISEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAxNCBmZGlzay9jZmRpc2suYzoxMDI2Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbG9naWNhbCBkcml2ZSBoZXJlIC0tIHdvdWxkIGNyZWF0ZSB0d28gZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorIk5vIHNlIHB1ZWRlIGNyZWFyIHVuYSB1bmlkYWQgbPNnaWNhIGFxde07IHNlIGNyZWFy7WFuIGRvcyBwYXJ0aWNpb25lcyAiCisiZXh0ZW5kaWRhcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICIiCisiRWxlbWVudG8gZGUgbWVu+iBkZW1hc2lhZG8gbGFyZ287IGxhIGFwYXJpZW5jaWEgZGVsIG1lbvogcHVlZGUgc2VyIGV4dHJh8WEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMjI0CisjLCBmdXp6eQorbXNnaWQgIk1lbnUgd2l0aG91dCBkaXJlY3Rpb24uIERlZmF1bHRpbmcgdG8gaG9yaXpvbnRhbC4iCittc2dzdHIgIk1lbvogc2luIGRpcmVjY2nzbjsgbGEgb3BjafNuIHByZWRldGVybWluYWRhIGVzIGhvcml6b250YWwuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzU2Cittc2dpZCAiSWxsZWdhbCBrZXkiCittc2dzdHIgIlRlY2xhIG5vIHBlcm1pdGlkYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM3OQorbXNnaWQgIlByZXNzIGEga2V5IHRvIGNvbnRpbnVlIgorbXNnc3RyICJQdWxzZSB1bmEgdGVjbGEgcGFyYSBjb250aW51YXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiUHJpbWFyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYKK21zZ2lkICJDcmVhdGUgYSBuZXcgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIkNyZWEgdW5hIG51ZXZhIHBhcnRpY2nzbiBwcmltYXJpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNyBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODUKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJMb2dpY2FsIgorbXNnc3RyICJM82dpY2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIkNyZWEgdW5hIG51ZXZhIHBhcnRpY2nzbiBs82dpY2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MyBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiQ2FuY2VsIgorbXNnc3RyICJDYW5jZWxhciIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICJObyBjcmVhIG5pbmd1bmEgcGFydGljafNuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAioaGhoSBFcnJvciBpbnRlcm5vICEhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiVGFtYfFvIChlbiBNQik6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkJlZ2lubmluZyIKK21zZ3N0ciAiUHJpbmNpcGlvIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBiZWdpbm5pbmcgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiQfFhZGUgbGEgcGFydGljafNuIGFsIHByaW5jaXBpbyBkZWwgZXNwYWNpbyBsaWJyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkVuZCIKK21zZ3N0ciAiRmluYWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJB8WFkZSBsYSBwYXJ0aWNp824gYWwgZmluYWwgZGVsIGVzcGFjaW8gbGlicmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICJObyBoYXkgZXNwYWNpbyBwYXJhIGNyZWFyIGxhIHBhcnRpY2nzbiBleHRlbmRpZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIk5vIGhheSB0YWJsYSBkZSBwYXJ0aWNpb25lcy5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3OAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiTm8gaGF5IHRhYmxhIGRlIHBhcnRpY2lvbmVzLiBTZSBjb21pZW56YSBjb24gdW5hIHRhYmxhIHZhY+1hLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU4OAorbXNnaWQgIkJhZCBzaWduYXR1cmUgb24gcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJGaXJtYSBlcnLzbmVhIGVuIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTkyCittc2dpZCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIKK21zZ3N0ciAiVGlwbyBkZSB0YWJsYSBkZSBwYXJ0aWNpb25lcyBkZXNjb25vY2lkbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5NAorbXNnaWQgIkRvIHlvdSB3aXNoIHRvIHN0YXJ0IHdpdGggYSB6ZXJvIHRhYmxlIFt5L05dID8iCittc2dzdHIgIr9RdWllcmUgY29tZW56YXIgY29uIHVuYSB0YWJsYSB2YWPtYT8gW3kvTl0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NDIKK21zZ2lkICJZb3Ugc3BlY2lmaWVkIG1vcmUgY3lsaW5kZXJzIHRoYW4gZml0IG9uIGRpc2siCittc2dzdHIgIkhhIGVzcGVjaWZpY2FkbyBt4XMgY2lsaW5kcm9zIGRlIGxvcyBxdWUgY2FiZW4gZW4gZWwgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzQKK21zZ2lkICJDYW5ub3Qgb3BlbiBkaXNrIGRyaXZlIgorbXNnc3RyICJObyBzZSBwdWVkZSBhYnJpciBsYSB1bmlkYWQgZGUgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzYgZmRpc2svY2ZkaXNrLmM6MTg2NQorbXNnaWQgIk9wZW5lZCBkaXNrIHJlYWQtb25seSAtIHlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gd3JpdGUiCittc2dzdHIgIiIKKyJFbCBkaXNjbyBhYmllcnRvIGVzIGRlIHPzbG8gbGVjdHVyYTsgbm8gdGllbmUgcGVybWlzbyBwYXJhIGVzY3JpYmlyIGVuIOlsIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIk5vIHNlIHB1ZWRlIG9idGVuZXIgZWwgdGFtYfFvIGRlbCBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTczMgorbXNnaWQgIkJhZCBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiUGFydGljafNuIHByaW1hcmlhIGluY29ycmVjdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3NjIKK21zZ2lkICJCYWQgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIlBhcnRpY2nzbiBs82dpY2EgaW5jb3JyZWN0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg3NworbXNnaWQgIldhcm5pbmchISAgVGhpcyBtYXkgZGVzdHJveSBkYXRhIG9uIHlvdXIgZGlzayEiCittc2dzdHIgIqFBdGVuY2nzbiE6IGVzdGEgb3BlcmFjafNuIHB1ZWRlIGRlc3RydWlyIGRhdG9zIGRlbCBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4MQorIywgZnV6enkKK21zZ2lkICIiCisiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzaz8gKHllcyBvciBubyk6ICIKK21zZ3N0ciAiIgorIr9Fc3ThIHNlZ3VybyBkZSBxdWUgZGVzZWEgZXNjcmliaXIgbGEgdGFibGEgZGUgcGFydGljaW9uZXMgZW4gZWwgZGlzY28/XG4iCisiICAgICAoc+0gbyBubyk6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4NworbXNnaWQgIm5vIgorbXNnc3RyICJubyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4OQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIk5vIHNlIGhhIGVzY3JpdG8gbGEgdGFibGEgZGUgcGFydGljaW9uZXMgZW4gZWwgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTEKK21zZ2lkICJ5ZXMiCittc2dzdHIgInPtIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk1Cittc2dpZCAiUGxlYXNlIGVudGVyIGB5ZXMnIG9yIGBubyciCittc2dzdHIgIlBvciBmYXZvciBlc2NyaWJhIGBz7ScgKGNvbiBhY2VudG8pIG8gYG5vJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIlNlIGVzdOEgZXNjcmliaWVuZG8gbGEgdGFibGEgZGUgcGFydGljaW9uZXMgZW4gZWwgZGlzY28uLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJTZSBoYSBlc2NyaXRvIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzIGVuIGVsIGRpc2NvIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI2CisjLCBmdXp6eQorbXNnaWQgIiIKKyJXcm90ZSBwYXJ0aXRpb24gdGFibGUsIGJ1dCByZS1yZWFkIHRhYmxlIGZhaWxlZC4gIFJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCIKKyIoOCkgb3IgcmVib290IHRvIHVwZGF0ZSB0YWJsZS4iCittc2dzdHIgIiIKKyJTZSBoYSBlc2NyaXRvIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzLCBwZXJvIGxhIG51ZXZhIGxlY3R1cmEgZGUgbGEgdGFibGFcbiIKKyJoYSBmYWxsYWRvLiBSZWluaWNpZSBwYXJhIGFjdHVhbGl6YXIgbGEgdGFibGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM2Cittc2dpZCAiTm8gcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJOaW5ndW5hIHBhcnRpY2nzbiBwcmltYXJpYSBlc3ThIG1hcmNhZGEgY29tbyBpbmljaWFibGUuXG4iCisiRWwgTUJSIGRlIERPUyBubyBwb2Ry4SBpbmljaWFyIGVzdG8uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM4Cittc2dpZCAiIgorIk1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisiSGF5IG1hcmNhZGEgY29tbyBpbmljaWFibGUgbeFzIGRlIHVuYSBwYXJ0aWNp824gcHJpbWFyaWEuXG4iCisiRWwgTUJSIGRlIERPUyBubyBwdWVkZSBpbmljaWFyIGVzdG8uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICIiCisiRXNjcmliYSBlbCBub21icmUgZGUgZmljaGVybyBvIHB1bHNlIEludHJvIHBhcmEgdmlzdWFsaXphciBlbiBwYW50YWxsYTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyIGVsIGZpY2hlcm8gJyVzJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlc1xuIgorbXNnc3RyICJVbmlkYWQgZGUgZGlzY286ICVzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTgKK21zZ2lkICJTZWN0b3IgMDpcbiIKK21zZ3N0ciAiU2VjdG9yIDA6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkOlxuIgorbXNnc3RyICJTZWN0b3IgJWQ6XG4iCisKKyMgTWFzY3VsaW5vLCBwb3JxdWUgc2UgcmVmaWVyZSBhIHVuIHRpcG8gZGUgcGFydGljafNuLgorIzogZmRpc2svY2ZkaXNrLmM6MjA0NQorbXNnaWQgIiAgIE5vbmUgICAiCittc2dzdHIgIiAgIE5pbmd1bm8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDcKK21zZ2lkICIgICBQcmkvTG9nIgorbXNnc3RyICIgICBQcmkvTPNnIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ5Cittc2dpZCAiICAgUHJpbWFyeSIKK21zZ3N0ciAiICAgUHJpbWFyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIgICBM82dpY2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwODkgZmRpc2svZmRpc2suYzoxNzY3IGZkaXNrL2ZkaXNrLmM6MjEwNgorIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIyNyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjE2IGZkaXNrL3NmZGlzay5jOjYzOAorbXNnaWQgIlVua25vd24iCittc2dzdHIgIkRlc2Nvbm9jaWRvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk1IGZkaXNrL2NmZGlzay5jOjI1NjMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5Cittc2dpZCAiQm9vdCIKK21zZ3N0ciAiSW5pY2lvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiKCUwMlgpIgorCisjIE1hc2N1bGlubywgcG9ycXVlIHNlIHJlZmllcmUgYSAiSW5kaWNhZG9yZXMiCisjOiBmZGlzay9jZmRpc2suYzoyMDk5Cittc2dpZCAiTm9uZSIKK21zZ3N0ciAiTmluZ3VubyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNCBmZGlzay9jZmRpc2suYzoyMjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiBUYWJsZSBmb3IgJXNcbiIKK21zZ3N0ciAiVGFibGEgZGUgcGFydGljaW9uZXMgcGFyYSAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM2Cittc2dpZCAiICAgICAgICAgICAgICAgRmlyc3QgICAgICAgTGFzdFxuIgorbXNnc3RyICIgICAgICAgICAgICAgIFByaW1lciAgICAg2mx0aW1vXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIk66IFRpcG8gICAgICAgU2VjdG9yICAgICAgU2VjdG9yICAgRGVzcGwuICBMb25naXR1ZCAgVGlwbyBzaXN0LiBmaWNoLiAoSUQpICIKKyJJbmRpY2FkLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM4Cittc2dpZCAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCittc2dzdHIgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIxCisjLCBmdXp6eQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiAgICAgICAgIC0tLS1JbmljaW8tLS0tICAgICAgLS0tLS1GaW5hbC0tLS0gICBDb21pZW56byAgIE76bWVybyBkZVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCisjLCBmdXp6eQorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICJOuiBJbmQuICBDYWIuIFNlYy4gQ2lsLiAgSUQgIENhYi4gU2VjLiBDaWwuICAgIFNlY3RvciAgICBTZWN0b3Jlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIzCisjLCBmdXp6eQorbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJSYXciCittc2dzdHIgIkVuIGJydXRvIChyYXcpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIHVzaW5nIHJhdyBkYXRhIGZvcm1hdCIKK21zZ3N0ciAiSW1wcmltZSBsYSB0YWJsYSB1dGlsaXphbmRvIGVsIGZvcm1hdG8gZGUgZGF0b3MgZW4gYnJ1dG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlNlY3RvcmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiSW1wcmltZSBsYSB0YWJsYSBvcmRlbmFkYSBwb3Igc2VjdG9yZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAiVGFibGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlPzbG8gaW1wcmltZSBsYSB0YWJsYSBkZSBwYXJ0aWNpb25lcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkRvbid0IHByaW50IHRoZSB0YWJsZSIKK21zZ3N0ciAiTm8gaW1wcmltZSBsYSB0YWJsYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgIlBhbnRhbGxhIGRlIGF5dWRhIHBhcmEgY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg5Cittc2dpZCAiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIgorbXNnc3RyICJjZmRpc2sgZXMgdW4gcHJvZ3JhbWEgZGUgcGFydGljaW9uZXMgZGUgZGlzY28gYmFzYWRvIGVuIGN1cnNlcyBxdWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgInBlcm1pdGUgY3JlYXIsIHN1cHJpbWlyIHkgbW9kaWZpY2FyIHBhcnRpY2lvbmVzIGVuIGxhIHVuaWRhZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MQorbXNnaWQgImRpc2sgZHJpdmUuIgorbXNnc3RyICJkZSBkaXNjbyBkdXJvLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MworbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKK21zZ3N0ciAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk1Cittc2dpZCAiQ29tbWFuZCAgICAgIE1lYW5pbmciCittc2dzdHIgIk9yZGVuICAgICAgICBTaWduaWZpY2FkbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICItLS0tLSAgICAgICAgLS0tLS0tLS0tLS0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTcKK21zZ2lkICIgIGIgICAgICAgICAgVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGIgICAgICAgICAgQ29ubXV0YSBlbCBpbmRpY2Fkb3IgZGUgaW5pY2lhYmxlIGRlIGxhIHBhcnRpY2nzbiBhY3R1YWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTgKK21zZ2lkICIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBkICAgICAgICAgIFN1cHJpbWUgbGEgcGFydGljafNuIGFjdHVhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgZyAgICAgICAgICBDaGFuZ2UgY3lsaW5kZXJzLCBoZWFkcywgc2VjdG9ycy1wZXItdHJhY2sgcGFyYW1ldGVycyIKK21zZ3N0ciAiIgorIiAgZyAgICAgICAgICBDYW1iaWEgbG9zIHBhcuFtZXRyb3MgZGUgY2lsaW5kcm9zLCBjYWJlemFzIHkgc2VjdG9yZXMgcG9yIHBpc3RhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAwCittc2dpZCAiICAgICAgICAgICAgIFdBUk5JTkc6IFRoaXMgb3B0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgcGVvcGxlIHdobyIKK21zZ3N0ciAiICAgICAgICAgICAgIEFURU5DSdNOOiBTZSByZWNvbWllbmRhIHV0aWxpemFyIGVzdGEgb3BjafNuIPpuaWNhbWVudGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgICAgICAgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLiIKK21zZ3N0ciAiICAgICAgICAgICAgIHNpIHNlIGNvbm9jZSBlbCBmdW5jaW9uYW1pZW50byBkZSBsYSBtaXNtYS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICBJbXByaW1lIGVzdGEgcGFudGFsbGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgbSAgICAgICAgICBNYXhpbWl6YSBsYSB1dGlsaXphY2nzbiBkZWwgZGlzY28gZGUgbGEgcGFydGljafNuIGFjdHVhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAgICAgICAgICBOb3RlOiBUaGlzIG1heSBtYWtlIHRoZSBwYXJ0aXRpb24gaW5jb21wYXRpYmxlIHdpdGgiCittc2dzdHIgIiAgICAgICAgICAgICBOb3RhOiBFc3RhIG9wY2nzbiBwdWVkZSBoYWNlciBxdWUgbGEgcGFydGljafNuIHNlYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAgICAgICAgICBET1MsIE9TLzIsIC4uLiIKK21zZ3N0ciAiICAgICAgICAgICAgIGluY29tcGF0aWJsZSBjb24gRE9TLCBPUy8yLC4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiAgbiAgICAgICAgICBDcmVhIHVuYSBudWV2YSBwYXJ0aWNp824gYSBwYXJ0aXIgZGVsIGVzcGFjaW8gbGlicmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIiCisiICBwICAgICAgICAgIEltcHJpbWUgbGEgdGFibGEgZGUgcGFydGljaW9uZXMgZW4gbGEgcGFudGFsbGEgbyBlbiB1biBmaWNoZXJvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICAgSGF5IHZhcmlvcyBmb3JtYXRvcyBkaXN0aW50b3MgcGFyYSBsYSBwYXJ0aWNp824iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIGNob29zZSBmcm9tOiIKK21zZ3N0ciAiICAgICAgICAgICAgIGVudHJlIGxvcyBxdWUgcHVlZGUgZWxlZ2lyOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIiCisiICAgICAgICAgICAgICAgIHIgLSBEYXRvcyBlbiBicnV0byAoZXhhY3RhbWVudGUgbG8gcXVlIGVzY3JpYmly7WEgZW4gZWwgIgorImRpc2NvKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAgICAgICAgICAgICBzIC0gVGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICIgICAgICAgICAgICAgICAgcyAtIFRhYmxhIG9yZGVuYWRhIHBvciBzZWN0b3JlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMgorbXNnaWQgIiAgICAgICAgICAgICAgICB0IC0gVGFibGUgaW4gcmF3IGZvcm1hdCIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHQgLSBUYWJsYSBjb24gZm9ybWF0byBlbiBicnV0byIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgcSAgICAgICAgICBRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICBxICAgICAgICAgIFNhbGUgZGVsIHByb2dyYW1hIHNpbiBlc2NyaWJpciBsYSB0YWJsYSBkZSBwYXJ0aWNpb25lcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNAorbXNnaWQgIiAgdCAgICAgICAgICBDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAiICB0ICAgICAgICAgIENhbWJpYSBlbCB0aXBvIGRlIHNpc3RlbWEgZGUgZmljaGVyb3MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIiCisiICB1ICAgICAgICAgIENhbWJpYSBsYXMgdW5pZGFkZXMgZGUgdmlzdWFsaXphY2nzbiBkZWwgdGFtYfFvIGRlIGxhIHBhcnRpY2nzbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNgorbXNnaWQgIiAgICAgICAgICAgICBSb3RhdGVzIHRocm91Z2ggTUIsIHNlY3RvcnMgYW5kIGN5bGluZGVycyIKK21zZ3N0ciAiICAgICAgICAgICAgIEFsdGVybmEgZW50cmUgTUIsIHNlY3RvcmVzIHkgY2lsaW5kcm9zIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE3Cittc2dpZCAiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiCittc2dzdHIgIiIKKyIgIFcgICAgICAgICAgRXNjcmliZSBsYSB0YWJsYSBkZSBwYXJ0aWNpb25lcyBlbiBlbCBkaXNjbyAoVyBlbiBtYXn6c2N1bGFzKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiAgICAgICAgICAgICBFc3RhIG9wZXJhY2nzbiBkZSBlc2NyaXR1cmEgcHVlZGUgY2F1c2FyIGxhIGRlc3RydWNjafNuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE5Cittc2dpZCAiICAgICAgICAgICAgIGVpdGhlciBjb25maXJtIG9yIGRlbnkgdGhlIHdyaXRlIGJ5IGVudGVyaW5nIGB5ZXMnIG9yIgorbXNnc3RyICIiCisiICAgICAgICAgICAgIGRlIGRhdG9zIGRlbCBkaXNjbywgcG9yIGxvIHF1ZSBkZWJlIGNvbmZpcm1hcmxhIG8gcmVjaGF6YXJsYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIgICAgICAgICAgICAgZXNjcmliaWVuZG8gYHPtJyBvIGBubyciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjEKK21zZ2lkICJVcCBBcnJvdyAgICAgTW92ZSBjdXJzb3IgdG8gdGhlIHByZXZpb3VzIHBhcnRpdGlvbiIKK21zZ3N0ciAiRmxlY2hhIGFycmliYSAgRGVzcGxhemEgZWwgY3Vyc29yIGEgbGEgcGFydGljafNuIGFudGVyaW9yIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIyCittc2dpZCAiRG93biBBcnJvdyAgIE1vdmUgY3Vyc29yIHRvIHRoZSBuZXh0IHBhcnRpdGlvbiIKK21zZ3N0ciAiRmxlY2hhIGFiYWpvICAgRGVzcGxhemEgZWwgY3Vyc29yIGEgbGEgcGFydGljafNuIHNpZ3VpZW50ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMworbXNnaWQgIkNUUkwtTCAgICAgICBSZWRyYXdzIHRoZSBzY3JlZW4iCittc2dzdHIgIkN0cmwtTCAgICAgICBWdWVsdmUgYSBkaWJ1amFyIGxhIHBhbnRhbGxhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI0Cittc2dpZCAiICA/ICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgID8gICAgICAgICAgSW1wcmltZSBlc3RhIHBhbnRhbGxhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI2Cittc2dpZCAiTm90ZTogQWxsIG9mIHRoZSBjb21tYW5kcyBjYW4gYmUgZW50ZXJlZCB3aXRoIGVpdGhlciB1cHBlciBvciBsb3dlciIKK21zZ3N0ciAiTm90YTogdG9kYXMgbGFzIPNyZGVuZXMgcHVlZGVuIGVzY3JpYmlyc2UgZW4gbWF5+nNjdWxhcyBvIG1pbvpzY3VsYXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgIihzYWx2byBXIHBhcmEgb3BlcmFjaW9uZXMgZGUgZXNjcml0dXJhKS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAiQ2lsaW5kcm9zIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICJDYW1iaWEgbGEgZ2VvbWV0cu1hIGRlIGNpbGluZHJvcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OSBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMwCittc2dpZCAiSGVhZHMiCittc2dzdHIgIkNhYmV6YXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkKK21zZ2lkICJDaGFuZ2UgaGVhZCBnZW9tZXRyeSIKK21zZ3N0ciAiQ2FtYmlhciBnZW9tZXRy7WEgZGUgY2FiZXphcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiCittc2dzdHIgIkNhbWJpYXIgZ2VvbWV0cu1hIGRlIHNlY3RvcmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAiRmluIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICJIYSBmaW5hbGl6YWRvIGxhIG9wZXJhY2nzbiBkZSBjYW1iaW8gZGUgZ2VvbWV0cu1hIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzc0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIKK21zZ3N0ciAiRXNjcmliYSBlbCBu+m1lcm8gZGUgY2lsaW5kcm9zOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzODUgZmRpc2svY2ZkaXNrLmM6Mjk1OAorbXNnaWQgIklsbGVnYWwgY3lsaW5kZXJzIHZhbHVlIgorbXNnc3RyICJWYWxvciBkZSBjaWxpbmRyb3Mgbm8gcGVybWl0aWRvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzkxCittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBoZWFkczogIgorbXNnc3RyICJFc2NyaWJhIGVsIG76bWVybyBkZSBjYWJlemFzOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTggZmRpc2svY2ZkaXNrLmM6Mjk2OAorbXNnaWQgIklsbGVnYWwgaGVhZHMgdmFsdWUiCittc2dzdHIgIlZhbG9yIGRlIGNhYmV6YXMgbm8gcGVybWl0aWRvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICJFc2NyaWJhIGVsIG76bWVybyBkZSBzZWN0b3JlcyBwb3IgcGlzdGE6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQxMSBmZGlzay9jZmRpc2suYzoyOTc1Cittc2dpZCAiSWxsZWdhbCBzZWN0b3JzIHZhbHVlIgorbXNnc3RyICJWYWxvciBkZSBzZWN0b3JlcyBubyBwZXJtaXRpZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MTQKK21zZ2lkICJFbnRlciBmaWxlc3lzdGVtIHR5cGU6ICIKK21zZ3N0ciAiRXNjcmliYSBlbCB0aXBvIGRlIHNpc3RlbWEgZGUgZmljaGVyb3M6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzMgorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBlbXB0eSIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgY2FtYmlhciBlbCB0aXBvIGRlIHNpc3RlbWEgZGUgZmljaGVyb3MgYSB2YWPtbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzNAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBleHRlbmRlZCIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgY2FtYmlhciBlbCB0aXBvIGRlIHNpc3RlbWEgZGUgZmljaGVyb3MgYSBleHRlbmRpZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rKCUwMlgpIgorbXNnc3RyICJEZXNjLiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiLCBOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIk5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAiUHJpL0zzZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAiRGVzY29ub2NpZG8gKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzIgorbXNnc3RyICJVbmlkYWQgZGUgZGlzY286ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQgTUIiCittc2dzdHIgIlRhbWHxbzogJWxsZCBieXRlcywgJWxsZCBNQiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgIlRhbWHxbzogJWxsZCBieXRlcywgJWxsZC4lbGxkIEdCIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAiQ2FiZXphczogJWQgICBTZWN0b3JlcyBwb3IgcGlzdGE6ICVkICAgQ2lsaW5kcm9zOiAlbGxkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgxIGxvZ2luLXV0aWxzL2NoZm4uYzozNzcKK21zZ2lkICJOYW1lIgorbXNnc3RyICJOb21icmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiSW5kaWNhZG9yZXMiCisKKyMgRXN0ZSBlc3BhY2lvIGluaWNpYWwgZXMgcGFyYSBxdWUgbm8gc2UgcGVndWUgY29uIGxhIHMgZGUgSW5kaWNhZG9yZXMKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIiBUaXBvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg0Cittc2dpZCAiRlMgVHlwZSIKK21zZ3N0ciAiVGlwbyBkZSBTLkYuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg1Cittc2dpZCAiW0xhYmVsXSIKK21zZ3N0ciAiW0V0aXF1ZXRhXSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NworbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICIgICBTZWN0b3JlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4OQorbXNnaWQgIiAgQ3lsaW5kZXJzIgorbXNnc3RyICIgIENpbGluZHJvcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MQorbXNnaWQgIiAgU2l6ZSAoTUIpIgorbXNnc3RyICIgVGFtYfFvKE1CKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MworbXNnaWQgIiAgU2l6ZSAoR0IpIgorbXNnc3RyICJUYW1h8W8gKEdCKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIkJvb3RhYmxlIgorbXNnc3RyICJJbmljaWFibGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIkNvbm11dGEgZWwgaW5kaWNhZG9yIGRlIGluaWNpYWJsZSBkZSBsYSBwYXJ0aWNp824gYWN0dWFsIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJTdXByaW1pciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIlN1cHJpbWUgbGEgcGFydGljafNuIGFjdHVhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkdlb21ldHJ5IgorbXNnc3RyICJHZW9tZXRy7WEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJDaGFuZ2UgZGlzayBnZW9tZXRyeSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiQ2FtYmlhIGxhIGdlb21ldHLtYSBkZWwgZGlzY28gKHPzbG8gcGFyYSB1c3VhcmlvcyBhdmFuemFkb3MpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiQXl1ZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJQcmludCBoZWxwIHNjcmVlbiIKK21zZ3N0ciAiSW1wcmltZSBlc3RhIHBhbnRhbGxhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUiCittc2dzdHIgIk1heGltaXphciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIiCisiTWF4aW1pemEgZWwgdXNvIGRlIGRpc2NvIGRlIGxhIHBhcnRpY2nzbiBhY3R1YWwgKHPzbG8gdXN1YXJpb3MgYXZhbnphZG9zKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAiTnVldmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIkNyZWEgdW5hIG51ZXZhIHBhcnRpY2nzbiBhIHBhcnRpciBkZWwgZXNwYWNpbyBsaWJyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IgorbXNnc3RyICJJbXByaW1pciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiSW1wcmltZSBsYSB0YWJsYSBkZSBwYXJ0aWNpb25lcyBlbiBsYSBwYW50YWxsYSBvIGVuIHVuIGZpY2hlcm8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IgorbXNnc3RyICJTYWxpciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJTYWxlIGRlbCBwcm9ncmFtYSBzaW4gZXNjcmliaXIgbGEgdGFibGEgZGUgcGFydGljaW9uZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJUeXBlIgorbXNnc3RyICJUaXBvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAiQ2FtYmlhIGVsIHRpcG8gZGUgc2lzdGVtYSBkZSBmaWNoZXJvcyAoRE9TLCBMaW51eCwgT1MvMiwgZXRjLikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAiVW5pZGFkZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkgKE1CLCBzZWN0LCBjeWwpIgorbXNnc3RyICJDYW1iaWEgbGFzIHVuaWRhZGVzIHBhcmEgZWwgdGFtYfFvIGRlIGxhIHBhcnRpY2nzbiAoTUIsIHNlY3QuLCBjaWwuKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJFc2NyaWJpciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrICh0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSkiCittc2dzdHIgIiIKKyJFc2NyaWJlIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzIGVuIGVsIGRpc2NvIChwdWVkZSBkZXN0cnVpcnNlIGluZm9ybWFjafNuKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgwNQorbXNnaWQgIkNhbm5vdCBtYWtlIHRoaXMgcGFydGl0aW9uIGJvb3RhYmxlIgorbXNnc3RyICJObyBzZSBwdWVkZSBjb252ZXJ0aXIgZXN0YSBwYXJ0aWNp824gZW4gdW5hIHBhcnRpY2nzbiBpbmljaWFibGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgc3VwcmltaXIgdW5hIHBhcnRpY2nzbiB2YWPtYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICJObyBzZSBwdWVkZSBtYXhpbWl6YXIgZXN0YSBwYXJ0aWNp824iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDUKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIKK21zZ3N0ciAiRXN0YSBwYXJ0aWNp824gc2UgZW5jdWVudHJhIGVuIGVzdGFkbyBpbnV0aWxpemFibGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDcKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyBhbHJlYWR5IGluIHVzZSIKK21zZ3N0ciAiRXN0YSBwYXJ0aWNp824geWEgZXN04SBlbiB1c28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NjQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHRoZSB0eXBlIG9mIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgY2FtYmlhciBlbCB0aXBvIGRlIHVuYSBwYXJ0aWNp824gdmFj7WEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAiTm8gaGF5IG3hcyBwYXJ0aWNpb25lcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAiT3JkZW4gaWxlZ2FsIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorbXNnc3RyICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiUHJpbnQgdmVyc2lvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiUHJpbnQgcGFydGl0aW9uIHRhYmxlOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B0aW9uc10gZGV2aWNlXG4iCisiSW50ZXJhY3RpdmUgdXNlOlxuIgorIiAgICAgICAgJXMgW29wdGlvbnNdIGRldmljZVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiLWE6IFVzZSBhcnJvdyBpbnN0ZWFkIG9mIGhpZ2hsaWdodGluZztcbiIKKyItejogU3RhcnQgd2l0aCBhIHplcm8gcGFydGl0aW9uIHRhYmxlLCBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHB0IGZyb20gZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzogT3ZlcnJpZGUgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMsXG4iCisiICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHRoZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjay5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlVzbzpcbiIKKyJJbXByaW1pciB2ZXJzafNuOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJJbXByaW1pciB0YWJsYSBkZSBwYXJ0aWNpb25lczpcbiIKKyIgICAgICAgICVzIC1QIHtyfHN8dH0gW29wY2lvbmVzXSBkaXNwb3NpdGl2b1xuIgorIlVzbyBpbnRlcmFjdGl2bzpcbiIKKyIgICAgICAgICVzIFtvcGNpb25lc10gZGlzcG9zaXRpdm9cbiIKKyJcbiIKKyJPcGNpb25lczpcbiIKKyItYTogVXRpbGl6YSBmbGVjaGEgZW4gbHVnYXIgZGUgcmVzYWx0YWRvLlxuIgorIi16OiBFbXBpZXphIGNvbiB0YWJsYSBkZSBwYXJ0aWNpb25lcyBkZSBjZXJvIGVuIGx1Z2FyIGRlIGxlZXJsYSBkZWwgZGlzY28uXG4iCisiLWMgQyAtaCBIIC1zIFM6IE1vZGlmaWNhIGxhIGlkZWEgZGVsIG76Y2xlbyBzb2JyZSBlbCBu+m1lcm8gZGUgY2lsaW5kcm9zLFxuIgorIiAgICAgICAgICAgICAgICBlbCBu+m1lcm8gZGUgY2FiZXphcyB5IGVsIG76bWVybyBkZSBzZWN0b3JlcyBwb3IgcGlzdGEuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrYWl4bGFiZWwuYzoyNworbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgQUlYIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgTGludXggY2Fubm90IGhhbmRsZSB0aGVzZVxuIgorIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisiXHRhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCisiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorIlx0ICAgdG8gcmVtb3ZlIHRoZSBkaXNrIGxvZ2ljYWxseSBmcm9tIHlvdXIgQUlYXG4iCisiXHQgICBtYWNoaW5lLiAgKE90aGVyd2lzZSB5b3UgYmVjb21lIGFuIEFJWHBlcnQpLiIKK21zZ3N0ciAiIgorIlxuIgorIlx0SGF5IHVuYSBldGlxdWV0YSBBSVggduFsaWRhIGVuIGVzdGUgZGlzY28uXG4iCisiXHRMaW51eCBubyBwdWVkZSBtYW5lamFyIGVzdG9zIGRpc2Nvc1xuIgorIlx0YWN0dWFsbWVudGUuIE5vIG9ic3RhbnRlLCB0ZW5nYSBlbiBjdWVudGFcbiIKKyJcdGFsZ3Vub3MgY29uc2Vqb3M6XG4iCisiXHQxLiBmZGlzayBkZXN0cnVpcuEgc3UgY29udGVuaWRvIGFsIGVzY3JpYmlyLlxuIgorIlx0Mi4gQ29tcHJ1ZWJlIHF1ZSBlc3RlIGRpc2NvIG5vIHNlYSB1bmEgcGFydGUgdml0YWxcbiIKKyJcdCAgIGRlIHVuIGdydXBvIGRlIHZvbPptZW5lcy4gKERlIGxvIGNvbnRyYXJpbyBwdWVkZSBib3JyYXJcbiIKKyJcdCAgIHRhbWJp6W4gbG9zIGRlbeFzIGRpc2Nvcywgc2kgbm8gZXN04W4gZHVwbGljYWRvcy4pXG4iCisiXHQzLiBBbnRlcyBkZSBzdXByaW1pciBlc3RlIHZvbHVtZW4gZu1zaWNvLCBlbGltaW5lXG4iCisiXHQgICBlbCBkaXNjbyBs82dpY2FtZW50ZSBkZSBsYSBt4XF1aW5hIEFJWC5cbiIKKyJcdCAgIChPIHNlIHRlbmRy4SBxdWUgY29udmVydGlyIGVuIHVuIEFJWHBlcnRvKS4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkJTRCBsYWJlbCBmb3IgZGV2aWNlOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRXRpcXVldGEgQlNEIHBhcmEgZWwgZGlzcG9zaXRpdm86ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjggZmRpc2svZmRpc2suYzozOTQgZmRpc2svZmRpc2suYzo0MTMKKyM6IGZkaXNrL2ZkaXNrLmM6NDMxIGZkaXNrL2ZkaXNrLmM6NDM4IGZkaXNrL2ZkaXNrLmM6NDYxIGZkaXNrL2ZkaXNrLmM6NDc5CisjOiBmZGlzay9mZGlzay5jOjQ5NSBmZGlzay9mZGlzay5jOjUxMQorbXNnaWQgIkNvbW1hbmQgYWN0aW9uIgorbXNnc3RyICJPcmRlbiAgQWNjafNuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICBTdXByaW1lIHVuYSBwYXJ0aWNp824gQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMwCittc2dpZCAiICAgZSAgIGVkaXQgZHJpdmUgZGF0YSIKK21zZ3N0ciAiICAgZSAgIE1vZGlmaWNhIGxvcyBkYXRvcyBkZSBsYSB1bmlkYWQiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICBJbnN0YWxhIHNlY3VlbmNpYSBkZSBpbmljaW8iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzIKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBmaWxlc3lzdGVtIHR5cGVzIgorbXNnc3RyICIgICBsICAgTGlzdGEgbG9zIHRpcG9zIGRlIHNpc3RlbWFzIGRlIGZpY2hlcm9zIGNvbm9jaWRvcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMyBmZGlzay9mZGlzay5jOjQwMCBmZGlzay9mZGlzay5jOjQxOQorIzogZmRpc2svZmRpc2suYzo0MzIgZmRpc2svZmRpc2suYzo0NDQgZmRpc2svZmRpc2suYzo0NjkgZmRpc2svZmRpc2suYzo0ODYKKyM6IGZkaXNrL2ZkaXNrLmM6NTAyIGZkaXNrL2ZkaXNrLmM6NTIwCittc2dpZCAiICAgbSAgIHByaW50IHRoaXMgbWVudSIKK21zZ3N0ciAiICAgbSAgIEltcHJpbWUgZXN0ZSBtZW76IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM0Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgQfFhZGUgdW5hIG51ZXZhIHBhcnRpY2nzbiBCU0QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIEltcHJpbWUgbGEgdGFibGEgZGUgcGFydGljaW9uZXMgQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM2IGZkaXNrL2ZkaXNrLmM6NDA0IGZkaXNrL2ZkaXNrLmM6NDIzCisjOiBmZGlzay9mZGlzay5jOjQzNCBmZGlzay9mZGlzay5jOjQ0OCBmZGlzay9mZGlzay5jOjQ3MSBmZGlzay9mZGlzay5jOjQ4OAorIzogZmRpc2svZmRpc2suYzo1MDQgZmRpc2svZmRpc2suYzo1MjIKK21zZ2lkICIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIgorbXNnc3RyICIgICBxICAgU2FsZSBzaW4gZ3VhcmRhciBsb3MgY2FtYmlvcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiICAgciAgIFZ1ZWx2ZSBhbCBtZW76IHByaW5jaXBhbCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOAorbXNnaWQgIiAgIHMgICBzaG93IGNvbXBsZXRlIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgIE11ZXN0cmEgbGEgZXRpcXVldGEgZGVsIGRpc2NvIGNvbXBsZXRhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM5Cittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIGZpbGVzeXN0ZW0gaWQiCittc2dzdHIgIiIKKyIgICB0ICAgQ2FtYmlhIGVsIGlkZW50aWZpY2Fkb3IgZGVsIHNpc3RlbWEgZGUgZmljaGVyb3MgZGUgdW5hIHBhcnRpY2nzbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiICAgdSAgIENhbWJpYSBsYXMgdW5pZGFkZXMgKGNpbGluZHJvcy9zZWN0b3JlcykiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDEKK21zZ2lkICIgICB3ICAgd3JpdGUgZGlza2xhYmVsIHRvIGRpc2siCittc2dzdHIgIiAgIHcgICBFc2NyaWJlIGxhIGV0aXF1ZXRhIGRlIGRpc2NvIGVuIGVsIGRpc2NvIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQzCittc2dpZCAiICAgeCAgIGxpbmsgQlNEIHBhcnRpdGlvbiB0byBub24tQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgeCAgIEVubGF6YSBsYSBwYXJ0aWNp824gQlNEIGNvbiB1bmEgcGFydGljafNuIG5vIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIkxhIHBhcnRpY2nzbiAlcyB0aWVuZSB1biBzZWN0b3IgMCBkZSBpbmljaW8gaW524WxpZG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICJMZXllbmRvIGV0aXF1ZXRhIGRlIGRpc2NvIGRlICVzIGVuIHNlY3RvciAlZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAiTm8gaGF5IG5pbmd1bmEgcGFydGljafNuICpCU0QgZW4gJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyMDMKK21zZ2lkICJCU0QgZGlza2xhYmVsIGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIk9yZGVuIGRlIGV0aXF1ZXRhIGRlIGRpc2NvIEJTRCAobSBwYXJhIG9idGVuZXIgYXl1ZGEpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyODMgZmRpc2svZmRpc2suYzoyMzI4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzgKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3QgJXMiCittc2dzdHIgIlByaW1lciAlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJXMgb3IgK3NpemUgb3IgK3NpemVNIG9yICtzaXplSyIKK21zZ3N0ciAi2mx0aW1vICVzIG8gK3RhbWHxbyBvICt0YW1h8W9NIG8gK3RhbWHxb0siCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJXNcbiIKK21zZ3N0ciAidGlwbzogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICJ0aXBvOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpc2s6ICUuKnNcbiIKK21zZ3N0ciAiZGlzY286ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsYWJlbDogJS4qc1xuIgorbXNnc3RyICJldGlxdWV0YTogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAiaW5kaWNhZG9yZXM6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiByZW1vdmFibGUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIGVjYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiIGJhZHNlY3QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXMvc2VjdG9yOiAlbGRcbiIKK21zZ3N0ciAiYnl0ZXMgcG9yIHNlY3RvcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy90cmFjazogJWxkXG4iCittc2dzdHIgInNlY3RvcmVzIHBvciBwaXN0YTogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAicGlzdGFzIHBvciBjaWxpbmRybzogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInNlY3RvcmVzIHBvciBjaWxpbmRybzogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiY2lsaW5kcm9zOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgInIucC5tLjogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnRlcmxlYXZlOiAlZFxuIgorbXNnc3RyICJpbnRlcmxlYXZlOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrc2tldzogJWRcbiIKK21zZ3N0ciAidHJhY2tza2V3OiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAiY3lsaW5kZXJza2V3OiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxpc2VndW5kb3NcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgImL6c3F1ZWRhIHBpc3RhIGEgcGlzdGE6ICVsZFx0IyBtaWxpc2VndW5kb3NcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0NQorIywgYy1mb3JtYXQKK21zZ2lkICJkcml2ZWRhdGE6ICIKK21zZ3N0ciAiZHJpdmVkYXRhOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0aWNpb25lczpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIyAgICAgIGNvbWllbnpvICAgIGZpbmFsICAgIHRhbWHxbyBzZmljaGVyb3MgICBbdGFtZiAgIHRhbWIgICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiRXNjcmliaWVuZG8gZXRpcXVldGEgZGUgZGlzY28gZW4gJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MTkgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjb250YWlucyBubyBkaXNrbGFiZWwuXG4iCittc2dzdHIgIiVzIG5vIGNvbnRpZW5lIG5pbmd1bmEgZXRpcXVldGEgZGUgZGlzY28uXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjYKK21zZ2lkICJEbyB5b3Ugd2FudCB0byBjcmVhdGUgYSBkaXNrbGFiZWw/ICh5L24pICIKK21zZ3N0ciAiv0Rlc2VhIGNyZWFyIHVuYSBldGlxdWV0YSBkZSBkaXNjbz8gKHkvbikgIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICJieXRlcy9zZWN0b3IiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjcKK21zZ2lkICJzZWN0b3JzL3RyYWNrIgorbXNnc3RyICJzZWN0b3Jlcy9waXN0YSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAicGlzdGFzL2NpbGluZHJvIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NzQwIGZkaXNrL2ZkaXNrLmM6MTU5MgorIzogZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAiY3lsaW5kZXJzIgorbXNnc3RyICJjaWxpbmRyb3MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJzZWN0b3Jlcy9jaWxpbmRybyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIDw9IHNlY3RvcnMvdHJhY2sgKiB0cmFja3MvY3lsaW5kZXIgKGRlZmF1bHQpLlxuIgorbXNnc3RyICJEZWJlIHNlciA8PSBzZWN0b3Jlcy9waXN0YSAqIHBpc3Rhcy9jaWxpbmRybyAodmFsb3IgcHJlZGV0ZXJtaW5hZG8pLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgyCittc2dpZCAicnBtIgorbXNnc3RyICJyLnAubS4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODMKK21zZ2lkICJpbnRlcmxlYXZlIgorbXNnc3RyICJpbnRlcmxlYXZlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICJ0cmFja3NrZXciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgImN5bGluZGVyc2tldyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgImhlYWRzd2l0Y2giCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODcKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrIgorbXNnc3RyICJi+nNxdWVkYSBwaXN0YSBhIHBpc3RhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCittc2dzdHIgIlNlY3VlbmNpYSBkZSBpbmljaW86ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIlNvbGFwYW1pZW50b3MgZGUgc2VjdWVuY2lhIGRlIGluaWNpbyBjb24gZXRpcXVldGEgZGUgZGlzY29cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iCittc2dzdHIgIlNlY3VlbmNpYSBkZSBpbmljaW8gaW5zdGFsYWRhIGVuICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAiUGFydGljafNuIChhLSVjKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIlNlIGhhIGNyZWFkbyBlbCBu+m1lcm8gbeF4aW1vIGRlIHBhcnRpY2lvbmVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMuXG4iCittc2dzdHIgIkVzdGEgcGFydGljafNuIHlhIGV4aXN0ZS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIkF0ZW5jafNuOiBkZW1hc2lhZGFzIHBhcnRpY2lvbmVzICglZCwgZWwgdmFsb3IgbeF4aW1vIGVzICVkKS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlIGVzdOFuIHNpbmNyb25pemFuZG8gbG9zIGRpc2Nvcy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTYKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiIGZkaXNrIFtvcHRpb25zXSA8ZGlzaz4gICAgY2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorIiBmZGlzayBbb3B0aW9uc10gLWwgPGRpc2s+IGxpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisiIGZkaXNrIC1zIDxwYXJ0aXRpb24+ICAgICAgZ2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtYiA8c2l6ZT4gICAgICAgICAgICAgICAgIHNlY3RvciBzaXplICg1MTIsIDEwMjQsIDIwNDggb3IgNDA5NilcbiIKKyIgLWMgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggb2ZmIERPUy1jb21wYXRpYmxlIG1vZGVcbiIKKyIgLWggICAgICAgICAgICAgICAgICAgICAgICBwcmludCBoZWxwXG4iCisiIC11IDxzaXplPiAgICAgICAgICAgICAgICAgZ2l2ZSBzaXplcyBpbiBzZWN0b3JzIGluc3RlYWQgb2YgY3lsaW5kZXJzXG4iCisiIC12ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgdmVyc2lvblxuIgorIiAtQyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBjeWxpbmRlcnNcbiIKKyIgLUggPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgaGVhZHNcbiIKKyIgLVMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2tcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlc1xuIgorbXNnc3RyICJObyBzZSBwdWVkZSBhYnJpciAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gcmVhZCAlc1xuIgorbXNnc3RyICJObyBzZSBwdWVkZSBsZWVyICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZWVrIG9uICVzXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGJ1c2NhciBlbiAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZXNjcmliaXIgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXNcbiIKK21zZ3N0ciAiaW9jdGwgQkxLR0VUU0laRSBoYSBmYWxsYWRvIGVuICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGFueSBtb3JlIG1lbW9yeVxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBhc2lnbmFyIG3hcyBtZW1vcmlhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAiRXJyb3IgbXV5IGdyYXZlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgQ29ubXV0YSBlbCBpbmRpY2Fkb3IgZGUgc/NsbyBsZWN0dXJhIgorCisjOiBmZGlzay9mZGlzay5jOjM5NiBmZGlzay9mZGlzay5jOjQ0MAorbXNnaWQgIiAgIGIgICBlZGl0IGJzZCBkaXNrbGFiZWwiCittc2dzdHIgIiAgIGIgICBNb2RpZmljYSBsYSBldGlxdWV0YSBkZSBkaXNjbyBic2QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiAgIGMgICBDb25tdXRhIGluZGljYWRvciBkZSBtb250YWJsZSIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgU3VwcmltZSB1bmEgcGFydGljafNuIgorCisjOiBmZGlzay9mZGlzay5jOjM5OSBmZGlzay9mZGlzay5jOjQxOCBmZGlzay9mZGlzay5jOjQ0MworbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIExpc3RhIGxvcyB0aXBvcyBkZSBwYXJ0aWNpb25lcyBjb25vY2lkb3MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICBB8WFkZSB1bmEgbnVldmEgcGFydGljafNuIgorCisjOiBmZGlzay9mZGlzay5jOjQwMiBmZGlzay9mZGlzay5jOjQyMSBmZGlzay9mZGlzay5jOjQzMyBmZGlzay9mZGlzay5jOjQ0NgorbXNnaWQgIiAgIG8gICBjcmVhdGUgYSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgbyAgIENyZWEgdW5hIG51ZXZhIHRhYmxhIGRlIHBhcnRpY2lvbmVzIERPUyB2YWPtYSIKKworIzogZmRpc2svZmRpc2suYzo0MDMgZmRpc2svZmRpc2suYzo0MjIgZmRpc2svZmRpc2suYzo0NDcgZmRpc2svZmRpc2suYzo0NzAKKyM6IGZkaXNrL2ZkaXNrLmM6NDg3IGZkaXNrL2ZkaXNrLmM6NTAzIGZkaXNrL2ZkaXNrLmM6NTIxCittc2dpZCAiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBJbXByaW1lIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzIgorCisjOiBmZGlzay9mZGlzay5jOjQwNSBmZGlzay9mZGlzay5jOjQyNCBmZGlzay9mZGlzay5jOjQzNSBmZGlzay9mZGlzay5jOjQ0OQorbXNnaWQgIiAgIHMgICBjcmVhdGUgYSBuZXcgZW1wdHkgU3VuIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgIENyZWEgdW5hIG51ZXZhIGV0aXF1ZXRhIGRlIGRpc2NvIFN1biIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgQ2FtYmlhIGVsIGlkZW50aWZpY2Fkb3IgZGUgc2lzdGVtYSBkZSB1bmEgcGFydGljafNuIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIENhbWJpYSBsYXMgdW5pZGFkZXMgZGUgdmlzdWFsaXphY2nzbi9lbnRyYWRhIgorCisjOiBmZGlzay9mZGlzay5jOjQwOCBmZGlzay9mZGlzay5jOjQyNyBmZGlzay9mZGlzay5jOjQ1MiBmZGlzay9mZGlzay5jOjQ3NAorIzogZmRpc2svZmRpc2suYzo0OTEgZmRpc2svZmRpc2suYzo1MDcgZmRpc2svZmRpc2suYzo1MjUKK21zZ2lkICIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHYgICBWZXJpZmljYSBsYSB0YWJsYSBkZSBwYXJ0aWNpb25lcyIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiAgIHcgICBFc2NyaWJlIGxhIHRhYmxhIGVuIGVsIGRpc2NvIHkgc2FsZSIKKworIzogZmRpc2svZmRpc2suYzo0MTAgZmRpc2svZmRpc2suYzo0NTQKK21zZ2lkICIgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiICAgeCAgIEZ1bmNpb25lcyBhZGljaW9uYWxlcyAoc/NsbyBwYXJhIHVzdWFyaW9zIGF2YW56YWRvcykiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0Cittc2dpZCAiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGEgICBTZWxlY2Npb25hIHBhcnRpY2nzbiBpbmljaWFibGUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE1Cittc2dpZCAiICAgYiAgIGVkaXQgYm9vdGZpbGUgZW50cnkiCittc2dzdHIgIiAgIGIgICBNb2RpZmljYSBlbnRyYWRhIGRlIGZpY2hlcm8gZGUgaW5pY2lvIgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIgICBjICAgU2VsZWNjaW9uYSBwYXJ0aWNp824gZGUgaW50ZXJjYW1iaW8gc2dpIgorCisjOiBmZGlzay9mZGlzay5jOjQzOQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnIgorbXNnc3RyICIgICBhICAgQ29ubXV0YSBlbCBpbmRpY2Fkb3IgZGUgaW5pY2lhYmxlIgorCisjOiBmZGlzay9mZGlzay5jOjQ0MQorbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciCittc2dzdHIgIiAgIGMgICBDb25tdXRhIGVsIGluZGljYWRvciBkZSBjb21wYXRpYmlsaWRhZCBjb24gRE9TIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MgorbXNnaWQgIiAgIGEgICBjaGFuZ2UgbnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGEgICBDYW1iaWEgZWwgbvptZXJvIGRlIGNpbGluZHJvcyBhbHRlcm5hdGl2b3MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYzIGZkaXNrL2ZkaXNrLmM6NDgxIGZkaXNrL2ZkaXNrLmM6NDk3IGZkaXNrL2ZkaXNrLmM6NTEzCittc2dpZCAiICAgYyAgIGNoYW5nZSBudW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICIgICBjICAgQ2FtYmlhIGVsIG76bWVybyBkZSBjaWxpbmRyb3MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY0IGZkaXNrL2ZkaXNrLmM6NDgyIGZkaXNrL2ZkaXNrLmM6NDk4IGZkaXNrL2ZkaXNrLmM6NTE0Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBkICAgSW1wcmltZSBsb3MgZGF0b3MgZW4gYnJ1dG8gZGUgbGEgdGFibGEgZGUgcGFydGljaW9uZXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY1Cittc2dpZCAiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiAgIGUgICBDYW1iaWEgZWwgbvptZXJvIGRlIHNlY3RvcmVzIGFkaWNpb25hbGVzIHBvciBjaWxpbmRybyIKKworIzogZmRpc2svZmRpc2suYzo0NjYgZmRpc2svZmRpc2suYzo0ODUgZmRpc2svZmRpc2suYzo1MDEgZmRpc2svZmRpc2suYzo1MTgKK21zZ2lkICIgICBoICAgY2hhbmdlIG51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiICAgaCAgIENhbWJpYSBlbCBu+m1lcm8gZGUgY2FiZXphcyIKKworIzogZmRpc2svZmRpc2suYzo0NjcKK21zZ2lkICIgICBpICAgY2hhbmdlIGludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICIgICBpICAgQ2FtYmlhIGVsIGZhY3RvciBkZSBpbnRlcmxlYXZlIgorCisjOiBmZGlzay9mZGlzay5jOjQ2OAorbXNnaWQgIiAgIG8gICBjaGFuZ2Ugcm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIiAgIG8gICBDYW1iaWEgbGEgdmVsb2NpZGFkIGRlIHJvdGFjafNuIChyLnAubS4pIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorbXNnaWQgIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siCittc2dzdHIgIiAgIHMgICBDYW1iaWEgZWwgbvptZXJvIGRlIHNlY3RvcmVzIHBvciBwaXN0YSIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICBDYW1iaWEgZWwgbvptZXJvIGRlIGNpbGluZHJvcyBm7XNpY29zIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MCBmZGlzay9mZGlzay5jOjQ5NiBmZGlzay9mZGlzay5jOjUxMgorbXNnaWQgIiAgIGIgICBtb3ZlIGJlZ2lubmluZyBvZiBkYXRhIGluIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBiICAgTXVldmUgZWwgcHJpbmNpcGlvIGRlIGxvcyBkYXRvcyBkZSB1bmEgcGFydGljafNuIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MyBmZGlzay9mZGlzay5jOjQ5OSBmZGlzay9mZGlzay5jOjUxNQorbXNnaWQgIiAgIGUgICBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiAgIGUgICBMaXN0YSBsYXMgcGFydGljaW9uZXMgZXh0ZW5kaWRhcyIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgQ3JlYSB1bmEgdGFibGEgZGUgcGFydGljaW9uZXMgSVJJWCAoU0dJKSIKKworIzogZmRpc2svZmRpc2suYzo1MTYKK21zZ2lkICIgICBmICAgZml4IHBhcnRpdGlvbiBvcmRlciIKK21zZ3N0ciAiICAgZiAgIENvcnJpZ2UgZWwgb3JkZW4gZGUgbGFzIHBhcnRpY2lvbmVzIgorCisjOiBmZGlzay9mZGlzay5jOjUxOQorIywgZnV6enkKK21zZ2lkICIgICBpICAgY2hhbmdlIHRoZSBkaXNrIGlkZW50aWZpZXIiCittc2dzdHIgIiAgIHUgICBDYW1iaWEgbGFzIHVuaWRhZGVzIGRlIHZpc3VhbGl6YWNp824vZW50cmFkYSIKKworIzogZmRpc2svZmRpc2suYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3Qgc2V0IgorbXNnc3RyICJEZWJlIGVzdGFibGVjZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM2Cittc2dpZCAiaGVhZHMiCittc2dzdHIgImNhYmV6YXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM4IGZkaXNrL2ZkaXNrLmM6MTU5MiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJzZWN0b3JzIgorbXNnc3RyICJzZWN0b3JlcyIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisiJXMlcy5cbiIKKyJQdWVkZSBlZmVjdHVhciBlc3RhIG9wZXJhY2nzbiBkZXNkZSBlbCBtZW76IGRlIGZ1bmNpb25lcyBhZGljaW9uYWxlcy5cbiIKKworIzogZmRpc2svZmRpc2suYzo3NDUKK21zZ2lkICIgYW5kICIKK21zZ3N0ciAiIHkgIgorCisjOiBmZGlzay9mZGlzay5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogVGhlIHNpemUgb2YgdGhpcyBkaXNrIGlzICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJET1MgcGFydGl0aW9uIHRhYmxlIGZvcm1hdCBjYW4gbm90IGJlIHVzZWQgb24gZHJpdmVzIGZvciB2b2x1bWVzXG4iCisibGFyZ2VyIHRoYW4gKCVsbHUgYnl0ZXMpIGZvciAlZC1ieXRlIHNlY3RvcnMuIFVzZSBwYXJ0ZWQoMSkgYW5kIEdVSUQgXG4iCisicGFydGl0aW9uIHRhYmxlIGZvcm1hdCAoR1BUKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW5cbiIKKyJ0aGUgcGh5c2ljYWwgc2VjdG9yIHNpemUuIEFsaWduaW5nIHRvIGEgcGh5c2ljYWwgc2VjdG9yIChvciBvcHRpbWFsXG4iCisiSS9PKSBzaXplIGJvdW5kYXJ5IGlzIHJlY29tbWVuZGVkLCBvciBwZXJmb3JtYW5jZSBtYXkgYmUgaW1wYWN0ZWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0b1xuIgorIiAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0b1xuIgorIiAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiRGVzcGxhemFtaWVudG8gaW5jb3JyZWN0byBlbiBwYXJ0aWNpb25lcyBleHRlbmRpZGFzIHByaW1hcmlhc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogb21pdHRpbmcgcGFydGl0aW9ucyBhZnRlciAjJWQuXG4iCisiVGhleSB3aWxsIGJlIGRlbGV0ZWQgaWYgeW91IHNhdmUgdGhpcyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKyJBdGVuY2nzbjogc2Ugb21pdGVuIGxhcyBwYXJ0aWNpb25lcyBkZXNwdelzIGRlIGxhIG76bWVybyAlZC5cbiIKKyJTZSBib3JyYXLhbiBzaSBndWFyZGEgZXN0YSB0YWJsYSBkZSBwYXJ0aWNpb25lcy5cbiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJBdGVuY2nzbjogcHVudGVybyBkZSBlbmxhY2UgYWRpY2lvbmFsIGVuIHRhYmxhIGRlIHBhcnRpY2lvbmVzICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIiIKKyJBdGVuY2nzbjogbm8gc2UgdGllbmVuIGVuIGN1ZW50YSBsb3MgZGF0b3MgYWRpY2lvbmFsZXMgZGUgbGEgdGFibGEgZGUgIgorInBhcnRpY2lvbmVzICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvbWl0dGluZyBlbXB0eSBwYXJ0aXRpb24gKCVkKVxuIgorbXNnc3RyICJBdGVuY2nzbjogcGFydGljafNuIHZhY+1hXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlNlIGVzdOEgY3JlYW5kbyB1bmEgbnVldmEgZXRpcXVldGEgZGUgZGlzY28gRE9TLiBMb3MgY2FtYmlvcyBz82xvXG4iCisicGVybWFuZWNlcuFuIGVuIGxhIG1lbW9yaWEsIGhhc3RhIHF1ZSBkZWNpZGEgZXNjcmliaXJsb3MuIFRyYXMgZXNhXG4iCisib3BlcmFjafNuLCBlbCBjb250ZW5pZG8gYW50ZXJpb3Igbm8gc2UgcG9kcuEgcmVjdXBlcmFyLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAiTm90YTogZWwgdGFtYfFvIGRlbCBzZWN0b3IgZXMgJWQgKG5vICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgbm90IGJlIGFibGUgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiTm8gcG9kcuEgZXNjcmliaXIgbGEgdGFibGEgZGUgcGFydGljaW9uZXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkaXNrIGhhcyBib3RoIERPUyBhbmQgQlNEIG1hZ2ljLlxuIgorIkdpdmUgdGhlICdiJyBjb21tYW5kIHRvIGdvIHRvIEJTRCBtb2RlLlxuIgorbXNnc3RyICIiCisiRXN0ZSBkaXNjbyB0aWVuZSB0YW50byBtYWdpYSBET1MgY29tbyBCU0QuXG4iCisiVXRpbGljZSBsYSBvcmRlbiAnYicgcGFyYSBpciBhbCBtb2RvIEJTRC5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisiRWwgZGlzcG9zaXRpdm8gbm8gY29udGllbmUgdW5hIHRhYmxhIGRlIHBhcnRpY2lvbmVzIERPUyB24WxpZGEgbmkgdW5hICIKKyJldGlxdWV0YSBkZSBkaXNjbyBTdW4gbyBTR0kgbyBPU0ZcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgIkludGVybmFsIGVycm9yXG4iCittc2dzdHIgIkVycm9yIGludGVybm9cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJObyBzZSB0aWVuZSBlbiBjdWVudGEgbGEgcGFydGljafNuIGV4dGVuZGlkYSBhZGljaW9uYWwgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHglMDR4IG9mIHBhcnRpdGlvbiB0YWJsZSAlZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3IgorIihyaXRlKVxuIgorbXNnc3RyICIiCisiQXRlbmNp8246IGVsIGluZGljYWRvciAweCUwNHggaW524WxpZG8gZGUgbGEgdGFibGEgZGUgcGFydGljaW9uZXMgJWQgc2UgIgorImNvcnJlZ2ly4SBtZWRpYW50ZSB3KHJpdGUpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorInNlIGhhIGRldGVjdGFkbyBFT0YgdHJlcyB2ZWNlcyAtIHNhbGllbmRvLi4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM2MAorbXNnaWQgIkhleCBjb2RlICh0eXBlIEwgdG8gbGlzdCBjb2Rlcyk6ICIKK21zZ3N0ciAiQ/NkaWdvIGhleGFkZWNpbWFsIChlc2NyaWJhIEwgcGFyYSB2ZXIgbG9zIGPzZGlnb3MpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXUtJXUsIGRlZmF1bHQgJXUpOiAiCittc2dzdHIgIiVzICgldS0ldSwgdmFsb3IgcHJlZGV0ZXJtaW5hZG8gJXUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnN1cHBvcnRlZCBzdWZmaXg6ICclcycuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdXBwb3J0ZWQ6IDEwXk46IEtCIChLaWxvQnl0ZSksIE1CIChNZWdhQnl0ZSksIEdCIChHaWdhQnl0ZSlcbiIKKyIgICAgICAgICAgICAyXk46IEsgIChLaWJpQnl0ZSksIE0gIChNZWJpQnl0ZSksIEcgIChHaWJpQnl0ZSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgZGVmYXVsdCB2YWx1ZSAldVxuIgorbXNnc3RyICJTZSBlc3ThIHV0aWxpemFuZG8gZWwgdmFsb3IgcHJlZGV0ZXJtaW5hZG8gJXVcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlZhbHVlIG91dCBvZiByYW5nZS5cbiIKK21zZ3N0ciAiRWwgdmFsb3IgZXN04SBmdWVyYSBkZWwgcmFuZ28uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgIk76bWVybyBkZSBwYXJ0aWNp824iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAiQXRlbmNp8246IGxhIHBhcnRpY2nzbiAlZCBlcyBkZSB0aXBvIHZhY+1vXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1MSBmZGlzay9mZGlzay5jOjE1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VsZWN0ZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIlNlIGhhIHNlbGVjY2lvbmFkbyBsYSBwYXJ0aWNp824gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAioU5vIGhheSBuaW5ndW5hIHBhcnRpY2nzbiBkZWZpbmlkYSFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBwcmltYXJ5IHBhcnRpdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeSFcbiIKK21zZ3N0ciAioVlhIHNlIGhhbiBkZWZpbmlkbyB0b2RhcyBsYXMgcGFydGljaW9uZXMgcHJpbWFyaWFzIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJjeWxpbmRlciIKK21zZ3N0ciAiY2lsaW5kcm8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgInNlY3RvciIKK21zZ3N0ciAic2VjdG9yIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICJTZSBjYW1iaWFuIGxhcyB1bmlkYWRlcyBkZSB2aXN1YWxpemFjafNuL2VudHJhZGEgYSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogUGFydGl0aW9uICVkIGlzIGFuIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJBVEVOQ0nTTjogbGEgcGFydGljafNuICVkIGVzIHVuYSBwYXJ0aWNp824gZXh0ZW5kaWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIHNldFxuIgorbXNnc3RyICJFbCBpbmRpY2Fkb3IgZGUgY29tcGF0aWJpbGlkYWQgY29uIERPUyBlc3ThIGVzdGFibGVjaWRvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMgorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXRcbiIKK21zZ3N0ciAiRWwgaW5kaWNhZG9yIGRlIGNvbXBhdGliaWxpZGFkIGNvbiBET1Mgbm8gZXN04SBlc3RhYmxlY2lkb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiTGEgcGFydGljafNuICVkIHRvZGF27WEgbm8gZXhpc3RlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisiRWwgdGlwbyAwIHNpZ25pZmljYSBlc3BhY2lvIGxpYnJlIHBhcmEgbXVjaG9zIHNpc3RlbWFzXG4iCisiKHBlcm8gbm8gcGFyYSBMaW51eCkuIFByb2JhYmxlbWVudGUgbm8gc2VhIHNlbnNhdG9cbiIKKyJ0ZW5lciBwYXJ0aWNpb25lcyBkZSB0aXBvIDAuIFB1ZWRlIHN1cHJpbWlyIHVuYVxuIgorInBhcnRpY2nzbiBjb24gbGEgb3JkZW4gYGQnLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8gYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKyJEZWxldGUgaXQgZmlyc3QuXG4iCittc2dzdHIgIiIKKyJObyBwdWVkZSBjb252ZXJ0aXIgdW5hIHBhcnRpY2nzbiBlbiBleHRlbmRpZGEgbmkgdmljZXZlcnNhLlxuIgorIlByaW1lcm8gZGViZSBzdXByaW1pcmxhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiU2UgcmVjb21pZW5kYSBkZWphciBsYSBwYXJ0aWNp824gMyBjb21vIGRpc2NvIGNvbXBsZXRvICg1KSxcbiIKKyJ5YSBxdWUgYXPtIGxvIHByZXbpIFN1bk9TL1NvbGFyaXMgZSBpbmNsdXNvIGVzIGFkZWN1YWRvIHBhcmEgTGludXguXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDkgYXMgdm9sdW1lIGhlYWRlciAoMCksXG4iCisiYW5kIHBhcnRpdGlvbiAxMSBhcyBlbnRpcmUgdm9sdW1lICg2KSwgYXMgSVJJWCBleHBlY3RzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiU2UgcmVjb21pZW5kYSBkZWphciBsYSBwYXJ0aWNp824gOSBjb21vIGNhYmVjZXJhIGRlIHZvbHVtZW4gKDApXG4iCisieSBsYSBwYXJ0aWNp824gMTEgY29tbyB2b2x1bWVuIGNvbXBsZXRvICg2KSB5YSBxdWUgSVJJWCBhc+0gbG8gZXNwZXJhLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICJTZSBoYSBjYW1iaWFkbyBlbCB0aXBvIGRlIHNpc3RlbWEgZGUgbGEgcGFydGljafNuICVkIHBvciAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICJTZSBoYSBjYW1iaWFkbyBlbCB0aXBvIGRlIHNpc3RlbWEgZGUgbGEgcGFydGljafNuICVkIHBvciAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyNworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGJlZ2lubmluZ3MgKG5vbi1MaW51eD8pOlxuIgorbXNnc3RyICIiCisiTGEgcGFydGljafNuICVkIHRpZW5lIGRpc3RpbnRvcyBwcmluY2lwaW9zIGbtc2ljb3MvbPNnaWNvcyAov25vIExpbnV4Pyk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyOSBmZGlzay9mZGlzay5jOjE4MzcgZmRpc2svZmRpc2suYzoxODQ2IGZkaXNrL2ZkaXNrLmM6MTg1NgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKK21zZ3N0ciAiIGbtc2ljb3M9KCVkLCAlZCwgJWQpICIKKworIzogZmRpc2svZmRpc2suYzoxODMwIGZkaXNrL2ZkaXNrLmM6MTgzOAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpY2FsPSglZCwgJWQsICVkKVxuIgorbXNnc3RyICJs82dpY29zPSglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBlbmRpbmdzOlxuIgorbXNnc3RyICJMYSBwYXJ0aWNp824gJWQgdGllbmUgZGlzdGludG9zIGZpbmFsZXMgZu1zaWNvcy9s82dpY29zOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICJMYSBwYXJ0aWNp824gJWkgbm8gZW1waWV6YSBlbiBlbCBs7W1pdGUgZGVsIGNpbGluZHJvOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgImRlYmUgc2VyICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJMYSBwYXJ0aWNp824gJWkgbm8gdGVybWluYSBlbiB1biBs7W1pdGUgZGUgY2lsaW5kcm8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImRlYmUgc2VyICglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIkxhIHBhcnRpY2nzbiAlaSBubyBlbXBpZXphIGVuIGVsIGztbWl0ZSBkZWwgY2lsaW5kcm86XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg3NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkIE1CLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNjbyAlczogJWxkIE1CLCAlbGxkIGJ5dGVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlZCBoZWFkcywgJWxsdSBzZWN0b3JzL3RyYWNrLCAlZCBjeWxpbmRlcnMiCittc2dzdHIgIiVkIGNhYmV6YXMsICVkIHNlY3RvcmVzL3Bpc3RhLCAlZCBjaWxpbmRyb3MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NworIywgYy1mb3JtYXQKK21zZ2lkICIsIHRvdGFsICVsbHUgc2VjdG9ycyIKK21zZ3N0ciAiLCAlbGx1IHNlY3RvcmVzIGVuIHRvdGFsIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVuaXRzID0gJXMgb2YgJWQgKiAlZCA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJVbmlkYWRlcyA9ICVzIGRlICVkICogJWQgPSAlZCBieXRlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAidGFtYfFvIGRlIG5vZG8taSBpbmNvcnJlY3RvIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIk5vIGhheSBuYWRhIHF1ZSBoYWNlci4gRWwgb3JkZW4geWEgZXMgY29ycmVjdG8uXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRG9uZS5cbiIKK21zZ3N0ciAiIgorIkZpblxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZG9lc24ndCBsb29rIGxpa2UgYSBwYXJ0aXRpb24gdGFibGVcbiIKKyJQcm9iYWJseSB5b3Ugc2VsZWN0ZWQgdGhlIHdyb25nIGRldmljZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVzdG8gbm8gcGFyZWNlIHVuYSB0YWJsYSBkZSBwYXJ0aWNpb25lc1xuIgorIlByb2JhYmxlbWVudGUgaGEgc2VsZWNjaW9uYWRvIGVsIGRpc3Bvc2l0aXZvIHF1ZSBubyBlcmEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgSW5pY2lvICAgIENvbWllbnpvICAgICAgRmluICAgICAgQmxvcXVlcyAgSWQgIFNpc3RlbWFcbiIKKworIyBOb3RhOiBzaSBzZSBwb25lIERpc3Bvc2l0aXZvIG5vIHF1ZWRhIGJpZW4gZWwgcmVzdG8gZGUgbGEgbO1uZWEuCisjOiBmZGlzay9mZGlzay5jOjIwNzggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIxMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk4Cittc2dpZCAiRGV2aWNlIgorbXNnc3RyICJEaXNwb3NpdC4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjExNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiUGFydGl0aW9uIHRhYmxlIGVudHJpZXMgYXJlIG5vdCBpbiBkaXNrIG9yZGVyXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMYXMgZW50cmFkYXMgZGUgbGEgdGFibGEgZGUgcGFydGljaW9uZXMgbm8gZXN04W4gZW4gZWwgb3JkZW4gZGVsIGRpc2NvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXM6ICVkIGNhYmV6YXMsICVkIHNlY3RvcmVzLCAlZCBjaWxpbmRyb3NcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICJOuiBJQSBDYWIgU2VjdCBDaWwgQ2FiIFNlY3QgQ2lsICAgICBJbmljaW8gICAgVGFtYfFvIElEXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIKK21zZ3N0ciAiQXRlbmNp8246IGxhIHBhcnRpY2nzbiAlZCBjb250aWVuZSBlbCBzZWN0b3IgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRpY2nzbiAlZDogZWwgY2FiZXphICVkIHN1cGVyYSBlbCBt4XhpbW8gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHNlY3RvciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIlBhcnRpY2nzbiAlZDogZWwgc2VjdG9yICVkIHN1cGVyYSBlbCBt4XhpbW8gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbnMgJWQ6IGN5bGluZGVyICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRpY2nzbiAlZDogZWwgY2lsaW5kcm8gJWQgc3VwZXJhIGVsIG3heGltbyAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBwcmV2aW91cyBzZWN0b3JzICVkIGRpc2FncmVlcyB3aXRoIHRvdGFsICVkXG4iCittc2dzdHIgIlBhcnRpY2nzbiAlZDogc2VjdG9yZXMgYW50ZXJpb3JlcyAlZCBubyBjb25jdWVyZGFuIGNvbiB0b3RhbCAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHN0YXJ0LW9mLWRhdGEgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIkF0ZW5jafNuOiBpbmljaW8gZGUgZGF0b3MgaW5jb3JyZWN0byBlbiBwYXJ0aWNp824gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBvdmVybGFwcyBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIkF0ZW5jafNuOiBsYSBwYXJ0aWNp824gJWQgc2Ugc29sYXBhIGNvbiBsYSBwYXJ0aWNp824gJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAiQXRlbmNp8246IGxhIHBhcnRpY2nzbiAlZCBlc3ThIHZhY+1hXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1NgorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIkxhIHBhcnRpY2nzbiBs82dpY2EgJWQgbm8gZXN04SBwb3IgY29tcGxldG8gZW4gbGEgcGFydGljafNuICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJFbCB0b3RhbCBkZSBzZWN0b3JlcyBhc2lnbmFkb3MgJWQgc3VwZXJhIGVsIG3heGltbyAlbGxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUmVtYWluaW5nICVsbGQgdW5hbGxvY2F0ZWQgJWQtYnl0ZSBzZWN0b3JzXG4iCittc2dzdHIgIiVsbGQgc2VjdG9yZXMgbm8gYXNpZ25hZG9zXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjMwMSBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjIwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGlzIGFscmVhZHkgZGVmaW5lZC4gIERlbGV0ZSBpdCBiZWZvcmUgcmUtYWRkaW5nIGl0LlxuIgorbXNnc3RyICIiCisiTGEgcGFydGljafNuICVkIHlhIGVzdOEgZGVmaW5pZGEuIFN1cHLtbWFsYSBhbnRlcyBkZSB2b2x2ZXIgYSBh8WFkaXJsYS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJFbCBzZWN0b3IgJWQgeWEgZXN04SBhc2lnbmFkb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICJObyBoYXkgZGlzcG9uaWJsZSBuaW5n+m4gc2VjdG9yIGxpYnJlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgQUlYIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyIgICAgICAgIExvIHNpZW50byAtIGVzdGUgZmRpc2sgbm8gcHVlZGUgbWFuZWphciBldGlxdWV0YXMgZGUgZGlzY28gQUlYLlxuIgorIiAgICAgICAgU2kgcXVpZXJlIGHxYWRpciBwYXJ0aWNpb25lcyBkZSB0aXBvIERPUywgY3JlZSB1bmEgbnVldmFcbiIKKyIgICAgICAgIHRhYmxhIGRlIHBhcnRpY2lvbmVzIERPUyB2YWPtYSBwcmltZXJvLiAoVXNlIG8uKVxuIgorIiAgICAgICAgQVRFTkNJ0046IEVzdG8gZGVzdHJ1aXLhIGVsIGNvbnRlbmlkbyBkZSBlc3RlIGRpc2NvLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIE1hYyBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiICAgICAgICBMbyBzaWVudG8gLSBlc3RlIGZkaXNrIG5vIHB1ZWRlIG1hbmVqYXIgZXRpcXVldGFzIGRlIGRpc2NvIEFJWC5cbiIKKyIgICAgICAgIFNpIHF1aWVyZSBh8WFkaXIgcGFydGljaW9uZXMgZGUgdGlwbyBET1MsIGNyZWUgdW5hIG51ZXZhXG4iCisiICAgICAgICB0YWJsYSBkZSBwYXJ0aWNpb25lcyBET1MgdmFj7WEgcHJpbWVyby4gKFVzZSBvLilcbiIKKyIgICAgICAgIEFURU5DSdNOOiBFc3RvIGRlc3RydWly4SBlbCBjb250ZW5pZG8gZGUgZXN0ZSBkaXNjby5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICIiCisiUHJpbWVybyBkZWJlIHN1cHJpbWlyIGFsZ3VuYSBwYXJ0aWNp824geSBh8WFkaXIgdW5hIHBhcnRpY2nzbiBleHRlbmRpZGFcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICJTZSBlc3ThbiB1c2FuZG8gdG9kYXMgbGFzIHBhcnRpY2lvbmVzIGzzZ2ljYXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIlNlIGHxYWRlIHVuYSBwYXJ0aWNp824gcHJpbWFyaWFcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKyJBY2Np824gZGUgbGEgb3JkZW5cbiIKKyIlc1xuIgorIiAgIHAgICBQYXJ0aWNp824gcHJpbWFyaWEgKDEtNClcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAibCAgIGxvZ2ljYWwgKDUgb3Igb3ZlcikiCittc2dzdHIgImwgICBQYXJ0aWNp824gbPNnaWNhICg1IG8gc3VwZXJpb3IpIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJlICAgZXh0ZW5kZWQiCittc2dzdHIgImUgICBQYXJ0aWNp824gZXh0ZW5kaWRhIgorCisjOiBmZGlzay9mZGlzay5jOjI1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXJ0aXRpb24gbnVtYmVyIGZvciB0eXBlIGAlYydcbiIKK21zZ3N0ciAiTvptZXJvIGRlIHBhcnRpY2nzbiBpbnbhbGlkbyBwYXJhIGVsIHRpcG8gYCVjJ1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBwYXJ0aXRpb24gdGFibGUgaGFzIGJlZW4gYWx0ZXJlZCFcbiIKKyJcbiIKK21zZ3N0ciAiIgorIqFTZSBoYSBtb2RpZmljYWRvIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzIVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJMbGFtYW5kbyBhIGlvY3RsKCkgcGFyYSB2b2x2ZXIgYSBsZWVyIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorIlxuIgorIkFURU5DSdNOOiBMYSByZWxlY3R1cmEgZGUgbGEgdGFibGEgZGUgcGFydGljaW9uZXMgZmFsbPMgY29uIGVsXG4iCisiZXJyb3IgJWQ6ICVzLlxuIgorIkVsIG76Y2xlbyB0b2Rhdu1hIHVzYSBsYSB0YWJsYSBhbnRpZ3VhLlxuIgorIkxhIG51ZXZhIHRhYmxhIHNlIHVzYXLhIGVuIGVsIHBy83hpbW8gcmVpbmljaW8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBVEVOQ0nTTjogU2kgaGEgY3JlYWRvIG8gbW9kaWZpY2FkbyBhbGd1bmEgZGUgbGFzXG4iCisicGFydGljaW9uZXMgRE9TIDYueCwgY29uc3VsdGUgbGEgcOFnaW5hIG1hbiBkZSBmZGlza1xuIgorInBhcmEgdmVyIGluZm9ybWFjafNuIGFkaWNpb25hbC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJFcnJvciBjbG9zaW5nIGZpbGVcbiIKK21zZ3N0ciAiIgorIlxuIgorIkVycm9yIGFsIGNlcnJhciBlbCBmaWNoZXJvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICJTZSBlc3ThbiBzaW5jcm9uaXphbmRvIGxvcyBkaXNjb3MuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICJMYSBwYXJ0aWNp824gJWQgbm8gdGllbmUgbmluZ3VuYSDhcmVhIGRlIGRhdG9zXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiTnVldm8gcHJpbmNpcGlvIGRlIGRhdG9zIgorCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiT3JkZW4gYXZhbnphZGEgKG0gcGFyYSBvYnRlbmVyIGF5dWRhKTogIgorCisjOiBmZGlzay9mZGlzay5jOjI2ODUKK21zZ2lkICJOdW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICJO+m1lcm8gZGUgY2lsaW5kcm9zIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIk76bWVybyBkZSBjYWJlemFzIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzcKK21zZ2lkICJOdW1iZXIgb2Ygc2VjdG9ycyIKK21zZ3N0ciAiTvptZXJvIGRlIHNlY3RvcmVzIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogc2V0dGluZyBzZWN0b3Igb2Zmc2V0IGZvciBET1MgY29tcGF0aWJsaXR5XG4iCittc2dzdHIgIiIKKyJBdGVuY2nzbjogZXN0YWJsZWNpZW5kbyBkZXNwbGF6YW1pZW50byBkZSBzZWN0b3IgcGFyYSBjb21wYXRpYmlsaWRhZCBjb24gIgorIkRPU1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAiRWwgZGlzY28gJXMgbm8gY29udGllbmUgdW5hIHRhYmxhIGRlIHBhcnRpY2lvbmVzIHbhbGlkYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IG9yZGVuIGRlc2Nvbm9jaWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIGtlcm5lbCBmaW5kcyB0aGUgc2VjdG9yIHNpemUgaXRzZWxmIC0gLWIgb3B0aW9uIGlnbm9yZWRcbiIKK21zZ3N0ciAiIgorIkVzdGUgbvpjbGVvIGVuY3VlbnRyYSBlbCB0YW1h8W8gZGVsIHNlY3RvciBwb3Igc+0gbWlzbW87IG5vIHNlIHRpZW5lIGVuICIKKyJjdWVudGEgbGEgb3BjafNuIC1iXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiQXRlbmNp8246IGxhIG9wY2nzbiAtYiAoZXN0YWJsZWNlciB0YW1h8W8gZGUgc2VjdG9yKSBkZWJlIHV0aWxpemFyc2UgY29uIHVuICIKKyJkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG9cbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIiIKKyJTZSBoYSBkZXRlY3RhZG8gdW5hIGV0aXF1ZXRhIGRlIGRpc2NvIE9TRi8xIGVuICVzLCBlbnRyYW5kbyBlbiBlbCBtb2RvIGRlXG4iCisiZXRpcXVldGEgZGUgZGlzY28uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIk9yZGVuIChtIHBhcmEgb2J0ZW5lciBheXVkYSk6ICIKKworIzogZmRpc2svZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgY3VycmVudCBib290IGZpbGUgaXM6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJFbCBmaWNoZXJvIGRlIGluaWNpbyBhY3R1YWwgZXM6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJFc2NyaWJhIGVsIG5vbWJyZSBkZWwgbnVldm8gZmljaGVybyBkZSBpbmljaW86ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiTm8gc2UgaGEgbW9kaWZpY2FkbyBlbCBmaWNoZXJvIGRlIGluaWNpb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjMxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJIHBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRObyBoYXkgbWVu+iBwYXJhIHVzdWFyaW9zIGF2YW56YWRvcyBwYXJhIGxhcyB0YWJsYXMgZGUgcGFydGljaW9uZXMgU0dJLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKKyMsIGZ1enp5Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBNYWMgbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBmZGlzaygxKSBjYW5ub3QgaGFuZGxlIHRoZXNlIGRpc2tzLlxuIgorIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisiXHROZXZlcnRoZWxlc3Mgc29tZSBhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEhheSB1bmEgZXRpcXVldGEgQUlYIHbhbGlkYSBlbiBlc3RlIGRpc2NvLlxuIgorIlx0TGludXggbm8gcHVlZGUgbWFuZWphciBlc3RvcyBkaXNjb3NcbiIKKyJcdGFjdHVhbG1lbnRlLiBObyBvYnN0YW50ZSwgdGVuZ2EgZW4gY3VlbnRhXG4iCisiXHRhbGd1bm9zIGNvbnNlam9zOlxuIgorIlx0MS4gZmRpc2sgZGVzdHJ1aXLhIHN1IGNvbnRlbmlkbyBhbCBlc2NyaWJpci5cbiIKKyJcdDIuIENvbXBydWViZSBxdWUgZXN0ZSBkaXNjbyBubyBzZWEgdW5hIHBhcnRlIHZpdGFsXG4iCisiXHQgICBkZSB1biBncnVwbyBkZSB2b2z6bWVuZXMuIChEZSBsbyBjb250cmFyaW8gcHVlZGUgYm9ycmFyXG4iCisiXHQgICB0YW1iaeluIGxvcyBkZW3hcyBkaXNjb3MsIHNpIG5vIGVzdOFuIGR1cGxpY2Fkb3MuKVxuIgorIlx0My4gQW50ZXMgZGUgc3VwcmltaXIgZXN0ZSB2b2x1bWVuIGbtc2ljbywgZWxpbWluZVxuIgorIlx0ICAgZWwgZGlzY28gbPNnaWNhbWVudGUgZGUgbGEgbeFxdWluYSBBSVguXG4iCisiXHQgICAoTyBzZSB0ZW5kcuEgcXVlIGNvbnZlcnRpciBlbiB1biBBSVhwZXJ0bykuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODEKK21zZ2lkICJTR0kgdm9saGRyIgorbXNnc3RyICJTR0kgdm9saGRyIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODIKK21zZ2lkICJTR0kgdHJrcmVwbCIKK21zZ3N0ciAiU0dJIHRya3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MworbXNnaWQgIlNHSSBzZWNyZXBsIgorbXNnc3RyICJTR0kgc2VjcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg0Cittc2dpZCAiU0dJIHJhdyIKK21zZ3N0ciAiU0dJIHJhdyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg1Cittc2dpZCAiU0dJIGJzZCIKK21zZ3N0ciAiU0dJIGJzZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg2Cittc2dpZCAiU0dJIHN5c3YiCittc2dzdHIgIlNHSSBzeXN2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODcKK21zZ2lkICJTR0kgdm9sdW1lIgorbXNnc3RyICJTR0kgdm9sdW1lIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODgKK21zZ2lkICJTR0kgZWZzIgorbXNnc3RyICJTR0kgZWZzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODkKK21zZ2lkICJTR0kgbHZvbCIKK21zZ3N0ciAiU0dJIGx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MAorbXNnaWQgIlNHSSBybHZvbCIKK21zZ3N0ciAiU0dJIHJsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTEKK21zZ2lkICJTR0kgeGZzIgorbXNnc3RyICJTR0kgeGZzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTIKK21zZ2lkICJTR0kgeGZzbG9nIgorbXNnc3RyICJTR0kgeGZzbG9nIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTMKK21zZ2lkICJTR0kgeGx2IgorbXNnc3RyICJTR0kgeGx2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTQKK21zZ2lkICJTR0kgeHZtIgorbXNnc3RyICJTR0kgeHZtIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTUgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwCittc2dpZCAiTGludXggc3dhcCIKK21zZ3N0ciAiTGludXggc3dhcCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk2IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MQorbXNnaWQgIkxpbnV4IG5hdGl2ZSIKK21zZ3N0ciAiTGludXggbmF0aXZlIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJTZWf6biBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYy4gbGEgZXRpcXVldGEgcHVlZGUgY29udGVuZXIgY29tbyBt4XhpbW8gNTEyICIKKyJieXRlc1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHNnaSBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKK21zZ3N0ciAiIgorIlNlIGhhIGRldGVjdGFkbyB1bmEgZXRpcXVldGEgZGUgZGlzY28gc2dpIGNvbiBzdW1hIGRlIGNvbXByb2JhY2nzbiAiCisiaW5jb3JyZWN0YS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXMgKGV0aXF1ZXRhIGRlIGRpc2NvIFNHSSk6ICVkIGNhYmV6YXMsICVkIHNlY3RvcmVzXG4iCisiJWQgY2lsaW5kcm9zLCAlZCBjaWxpbmRyb3MgZu1zaWNvc1xuIgorIiVkIHNlY3RvcmVzIHBvciBjaWxpbmRybyBhZGljaW9uYWxlcywgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbmlkYWRlcyA9ICVzIGRlICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNjbyAlcyAoZXRpcXVldGEgZGUgZGlzY28gU0dJKTogJWQgY2FiZXphcywgJWQgc2VjdG9yZXMsICVkIGNpbGluZHJvc1xuIgorIlVuaWRhZGVzID0gJXMgZGUgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiLS0tLS0gcGFydGljaW9uZXMgLS0tLS1cbiIKKyJQdC4gJSpzICBJbmZvICAgICAgUHJpbmNpcGlvICAgRmluICAgU2VjdG9yZXMgSWQgIFNpc3RlbWFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gQm9vdGluZm8gLS0tLS1cbiIKKyJCb290ZmlsZTogJXNcbiIKKyItLS0tLSBEaXJlY3RvcnkgRW50cmllcyAtLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0gSW5mbyBpbmljaW8gLS0tLS1cbiIKKyJGaWNoZXJvIGRlIGluaWNpbzogJXNcbiIKKyItLS0tLSBFbnRyYWRhcyBkZSBkaXJlY3RvcmlvIC0tLS0tXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIgorbXNnc3RyICIlMmQ6ICUtMTBzIHNlY3RvciU1dSB0YW1h8W8lOHVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSW52YWxpZCBCb290ZmlsZSFcbiIKKyJcdFRoZSBib290ZmlsZSBtdXN0IGJlIGFuIGFic29sdXRlIG5vbi16ZXJvIHBhdGhuYW1lLFxuIgorIlx0ZS5nLiBcIi91bml4XCIgb3IgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJGaWNoZXJvIGRlIGluaWNpbyBpbnbhbGlkb1xuIgorIlx0RWwgZmljaGVybyBkZSBpbmljaW8gZGViZSBzZXIgdW4gbm9tYnJlIGRlIHJ1dGEgYWJzb2x1dG9cbiIKKyJcdGRpc3RpbnRvIGRlIGNlcm8sIGNvbW8gcG9yIGVqZW1wbG8gXCIvdW5peFwiIG8gXCIvdW5peC5zYXZlXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0TmFtZSBvZiBCb290ZmlsZSB0b28gbG9uZzogIDE2IGJ5dGVzIG1heGltdW0uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdE5vbWJyZSBkZWwgZmljaGVybyBkZSBpbmljaW8gZGVtYXNpYWRvIGxhcmdvOiAxNiBieXRlcyBjb21vIG3heGltby5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBtdXN0IGhhdmUgYSBmdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEVsIGZpY2hlcm8gZGUgaW5pY2lvIGRlYmUgdGVuZXIgdW4gbm9tYnJlIGRlIHJ1dGEgdG90YWxtZW50ZSBjYWxpZmljYWRvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdFRlbmdhIGVuIGN1ZW50YSBxdWUgbm8gc2UgY29tcHJ1ZWJhIGxhIGV4aXN0ZW5jaWEgZGVsIGZpY2hlcm8gZGUgaW5pY2lvLlxuIgorIlx0RWwgdmFsb3IgcHJlZGV0ZXJtaW5hZG8gZGUgU0dJIGVzIFwiL3VuaXhcIiB5IHBhcmEgbGEgY29waWEgZGUgc2VndXJpZGFkICIKKyJcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RWwgZmljaGVybyBkZSBpbmljaW8gc2UgY2FtYmlhIGEgXCIlc1wiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1vcmUgdGhhbiBvbmUgZW50aXJlIGRpc2sgZW50cnkgcHJlc2VudC5cbiIKK21zZ3N0ciAiRXhpc3RlIG3hcyBkZSB1bmEgZW50cmFkYSBkZSBkaXNjbyBjb21wbGV0by5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJObyBoYXkgbmluZ3VuYSBwYXJ0aWNp824gZGVmaW5pZGFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJJUklYIGxpa2VzIHdoZW4gUGFydGl0aW9uIDExIGNvdmVycyB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIiIKKyJQYXJhIElSSVggc2UgcmVjb21pZW5kYSBxdWUgbGEgcGFydGljafNuIDExIGFiYXJxdWUgZWwgZGlzY28gY29tcGxldG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIkxhIHBhcnRpY2nzbiBkZSBkaXNjbyBjb21wbGV0byBkZWJlIGVtcGV6YXIgZW4gZWwgYmxvcXVlIDAsXG4iCisibm8gZW4gZWwgYmxvcXVlIGRlIGRpc2NvICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKyJMYSBwYXJ0aWNp824gZGUgZGlzY28gY29tcGxldG8gc/NsbyB0aWVuZSB1biB0YW1h8W8gZGUgJWQgYmxvcXVlcyBkZSBkaXNjbyxcbiIKKyJtaWVudHJhcyBxdWUgZWwgZGlzY28gdGllbmUgdW5hIGxvbmdpdHVkIGRlICVkIGJsb3F1ZXMgZGUgZGlzY28uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiT25lIFBhcnRpdGlvbiAoIzExKSBzaG91bGQgY292ZXIgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICJVbmEgcGFydGljafNuICgxMSkgZGViZSBhYmFyY2FyIGVsIGRpc2NvIGNvbXBsZXRvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiTGEgcGFydGljafNuICVkIG5vIGVtcGllemEgZW4gdW4gbO1taXRlIGRlIGNpbGluZHJvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIkxhIHBhcnRpY2nzbiAlZCBubyB0ZXJtaW5hIGVuIHVuIGztbWl0ZSBkZSBjaWxpbmRyby5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIkxhcyBwYXJ0aWNpb25lcyAlZCB5ICVkIHNlIHNvbGFwYW4gZW4gJWQgc2VjdG9yZXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0ODQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAiRXNwYWNpbyBubyB1dGlsaXphZG8gZGUgJTh1IHNlY3RvcmVzIC0gc2VjdG9yZXMgJTh1LSV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxhIHBhcnRpY2nzbiBkZSBpbmljaW8gbm8gZXhpc3RlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMYSBwYXJ0aWNp824gZGUgaW50ZXJjYW1iaW8gbm8gZXhpc3RlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gaGFzIG5vIHN3YXAgdHlwZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxhIHBhcnRpY2nzbiBkZSBpbnRlcmNhbWJpbyBubyB0aWVuZSB1biB0aXBvIGRlIGludGVyY2FtYmlvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iCittc2dzdHIgIlx0SGEgZWxlZ2lkbyB1biBub21icmUgZGUgZmljaGVybyBkZSBpbmljaW8gbm8gaGFiaXR1YWwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnkgWW91IG1heSBjaGFuZ2UgdGhlIFRhZyBvZiBub24tZW1wdHkgcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAiU/NsbyBwdWVkZSBjYW1iaWFyIGxhIGV0aXF1ZXRhIGRlIGxhcyBwYXJ0aWNpb25lcyBubyB2YWPtYXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzgKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIG9mIHR5cGUgXCJTR0kgdm9saGRyXCIsIHRoZSBJUklYIHN5c3RlbSB3aWxsIHJlbHkgb24gaXQgdG9cbiIKKyJyZXRyaWV2ZSBmcm9tIGl0cyBkaXJlY3Rvcnkgc3RhbmRhbG9uZSB0b29scyBsaWtlIHNhc2ggYW5kIGZ4LlxuIgorIk9ubHkgdGhlIFwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrIHNlY3Rpb24gbWF5IHZpb2xhdGUgdGhpcy5cbiIKKyJUeXBlIFlFUyBpZiB5b3UgYXJlIHN1cmUgYWJvdXQgdGFnZ2luZyB0aGlzIHBhcnRpdGlvbiBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIlNlIHJlY29taWVuZGEgcXVlIGxhIHBhcnRpY2nzbiBlbiBlbCBkZXNwbGF6YW1pZW50byAwXG4iCisic2VhIGRlbCB0aXBvIFwiU0dJIHZvbGhkclwiOyBlbCBzaXN0ZW1hIElSSVggbGEgdXRpbGl6YXLhIHBhcmFcbiIKKyJyZWN1cGVyYXIgZGUgc3UgZGlyZWN0b3JpbyBoZXJyYW1pZW50YXMgYXV0825vbWFzIGNvbW8gc2FzaCB5IGZ4LlxuIgorIlPzbG8gbGEgc2VjY2nzbiBkZSBkaXNjbyBjb21wbGV0byBcIlNHSSB2b2x1bWVcIiBwdWVkZSBpbmZyaW5naXIgZXN0YSAiCisicmVnbGEuXG4iCisiRXNjcmliYSBTzSBzaSBlc3ThIHNlZ3VybyBkZSBxdWVyZXIgZGFyIHVuYSBldGlxdWV0YSBkaXN0aW50YSBhIGVzdGEgIgorInBhcnRpY2nzbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIlPNXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiU2UgaGEgcHJvZHVjaWRvIHVuIHNvbGFwYW1pZW50byBkZSBwYXJ0aWNp824gZW4gZWwgZGlzY28uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBlbnRpcmUgZGlzayBlbnRyeSBhdXRvbWF0aWNhbGx5LlxuIgorbXNnc3RyICIiCisiU2UgZXN04SBpbnRlbnRhbmRvIGdlbmVyYXIgdW5hIGVudHJhZGEgZGUgZGlzY28gY29tcGxldG8gYXV0b23hdGljYW1lbnRlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlbnRpcmUgZGlzayBpcyBhbHJlYWR5IGNvdmVyZWQgd2l0aCBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICJZYSBleGlzdGVuIHBhcnRpY2lvbmVzIHF1ZSBhYmFyY2FuIGVsIGRpc2NvIGNvbXBsZXRvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICIiCisiU2UgaGEgcHJvZHVjaWRvIHVuIHNvbGFwYW1pZW50byBkZSBwYXJ0aWNpb25lcyBlbiBlbCBkaXNjby4gQ29ycu1qYWxvIGFudGVzICIKKyJkZSBjb250aW51YXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIlNlIHJlY29taWVuZGEgcXVlIGxhIHBhcnRpY2nzbiAxMVxuIgorImFiYXJxdWUgZWwgZGlzY28gY29tcGxldG8geSBzZWEgZGVsIHRpcG8gYFNHSSB2b2x1bWUnXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgZ2V0IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiIgorIlNlIHByb2R1Y2ly4SB1biBzb2xhcGFtaWVudG8gZGUgcGFydGljaW9uZXMgZW4gZWwgZGlzY28uIENvcnLtamFsbyBhbnRlcyBkZSAiCisiY29udGludWFyLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiBMYXN0ICVzIgorbXNnc3RyICIg2mx0aW1vICVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBTR0kgZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuIgorIlxuIgorbXNnc3RyICIiCisiU2UgZXN04SBjcmVhbmRvIHVuYSBudWV2YSBldGlxdWV0YSBkZSBkaXNjbyBTR0kuIExvcyBjYW1iaW9zIHPzbG9cbiIKKyJwZXJtYW5lY2Vy4W4gZW4gbGEgbWVtb3JpYSwgaGFzdGEgcXVlIGRlY2lkYSBlc2NyaWJpcmxvcy4gVHJhcyBlc2FcbiIKKyJvcGVyYWNp824sIGVsIGNvbnRlbmlkbyBhbnRlcmlvciBzZSBoYWJy4SBwZXJkaWRvIGRlIGZvcm1hIGlycmVjdXBlcmFibGUuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKyJBdGVuY2nzbjogRWwgaW9jdGwgZGUgQkxLR0VUU0laRSBmYWxs8yBlbiAlcy4gU2UgdXNhcuEgdW4gdmFsb3IgcGFyYVxuIgorImxhIGdlb21ldHLtYSBkZWwgY2lsaW5kcm8gZGUgJWQuIEVzdGUgdmFsb3IgcG9kcu1hIGVzdGFyIHRydW5jYWRvIHBhcmFcbiIKKyJkaXNwb3NpdGl2b3MgPiAzMy44IEdCLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byBrZWVwIHBhcmFtZXRlcnMgb2YgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJJbnRlbnRhbmRvIGNvbnNlcnZhciBsb3MgcGFy4W1ldHJvcyBkZSBsYSBwYXJ0aWNp824gJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSUQ9JTAyeFx0U1RBUlQ9JWRcdExFTkdUSD0lZFxuIgorbXNnc3RyICJJRD0lMDJ4XHRQUklOQ0lQSU89JWRcdExPTkdJVFVEPSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiU3VuT1Mgcm9vdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1Mgc3dhcCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIkRpc2NvIGNvbXBsZXRvIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQKK21zZ2lkICJTdW5PUyBzdGFuZCIKK21zZ3N0ciAiU3VuT1Mgc3RhbmQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NQorbXNnaWQgIlN1bk9TIHZhciIKK21zZ3N0ciAiU3VuT1MgdmFyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDYKK21zZ2lkICJTdW5PUyBob21lIgorbXNnc3RyICJTdW5PUyBob21lIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIiVsbGQgc2VjdG9yZXMgbm8gYXNpZ25hZG9zXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorIywgZnV6enkKK21zZ2lkICJTdW5PUyBjYWNoZWZzIgorbXNnc3RyICJTdW5PUyBob21lIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDkKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIlN1bk9TIHVzciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorIlNlIGhhIGRldGVjdGFkbyB1bmEgZXRpcXVldGEgZGUgZGlzY28gc3VuIGNvbiBzdW1hIGRlIGNvbXByb2JhY2nzbiAiCisiaW5jb3JyZWN0YS5cbiIKKyJQcm9iYWJsZW1lbnRlIHRlbmRy4SBxdWUgZXN0YWJsZWNlciB0b2RvcyBsb3MgdmFsb3JlcyxcbiIKKyJjb21vIGNhYmV6YXMsIHNlY3RvcmVzLCBjaWxpbmRyb3MgeSBwYXJ0aWNpb25lc1xuIgorIm8gZm9yemFyIHVuYSBudWV2YSBldGlxdWV0YSAob3JkZW4gcyBlbiBtZW76IHByaW5jaXBhbClcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHZlcnNpb24gWzB4JTA4eF0uXG4iCittc2dzdHIgIiIKKyJTZSBoYSBkZXRlY3RhZG8gdW5hIGV0aXF1ZXRhIGRlIGRpc2NvIHNnaSBjb24gc3VtYSBkZSBjb21wcm9iYWNp824gIgorImluY29ycmVjdGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBzYW5pdHkgWzB4JTA4eF0uXG4iCittc2dzdHIgIiIKKyJTZSBoYSBkZXRlY3RhZG8gdW5hIGV0aXF1ZXRhIGRlIGRpc2NvIHNnaSBjb24gc3VtYSBkZSBjb21wcm9iYWNp824gIgorImluY29ycmVjdGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICIiCisiU2UgaGEgZGV0ZWN0YWRvIHVuYSBldGlxdWV0YSBkZSBkaXNjbyBzZ2kgY29uIHN1bWEgZGUgY29tcHJvYmFjafNuICIKKyJpbmNvcnJlY3RhLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogV3JvbmcgdmFsdWVzIG5lZWQgdG8gYmUgZml4ZWQgdXAgYW5kIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSlcbiIKK21zZ3N0ciAiIgorIkF0ZW5jafNuOiBlbCBpbmRpY2Fkb3IgMHglMDR4IGluduFsaWRvIGRlIGxhIHRhYmxhIGRlIHBhcnRpY2lvbmVzICVkIHNlICIKKyJjb3JyZWdpcuEgbWVkaWFudGUgdyhyaXRlKVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBzdW4gZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiU2UgZXN04SBjcmVhbmRvIHVuYSBudWV2YSBldGlxdWV0YSBkZSBkaXNjbyBzdW4uIExvcyBjYW1iaW9zIHPzbG9cbiIKKyJwZXJtYW5lY2Vy4W4gZW4gbGEgbWVtb3JpYSwgaGFzdGEgcXVlIGRlY2lkYSBlc2NyaWJpcmxvcy4gVHJhcyBlc2FcbiIKKyJvcGVyYWNp824sIGVsIGNvbnRlbmlkbyBhbnRlcmlvciBubyBzZSBwb2Ry4SByZWN1cGVyYXIuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICJTZWN0b3Jlcy9waXN0YSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiTGEgcGFydGljafNuICVkIG5vIHRlcm1pbmEgZW4gdW4gbO1taXRlIGRlIGNpbGluZHJvXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiTGEgcGFydGljafNuICVkIHNlIHNvbGFwYSBjb24gb3RyYXMgZW4gbG9zIHNlY3RvcmVzICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICJFc3BhY2lvIG5vIHV0aWxpemFkbyAtIHNlY3RvcmVzIDAtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIkVzcGFjaW8gbm8gdXRpbGl6YWRvIC0gc2VjdG9yZXMgJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3RoZXIgcGFydGl0aW9ucyBhbHJlYWR5IGNvdmVyIHRoZSB3aG9sZSBkaXNrLlxuIgorIkRlbGV0ZSBzb21lL3NocmluayB0aGVtIGJlZm9yZSByZXRyeS5cbiIKK21zZ3N0ciAiIgorIllhIGhheSBvdHJhcyBwYXJ0aWNpb25lcyBxdWUgYWJhcmNhbiBlbCBkaXNjbyBjb21wbGV0by5cbiIKKyJTdXByaW1hIGFsZ3VuYXMgbyByZWR1emNhIHN1IHRhbWHxbyBhbnRlcyBkZSB2b2x2ZXIgYSBpbnRlbnRhcmxvLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHRoaXJkIHBhcnRpdGlvbiBjb3ZlcnMgdGhlIHdob2xlIGRpc2tcbiIKKyJhbmQgaXMgb2YgdHlwZSBgV2hvbGUgZGlzaydcbiIKK21zZ3N0ciAiIgorIlNlIHJlY29taWVuZGEgcXVlIGxhIHBhcnRpY2nzbiAxMVxuIgorImFiYXJxdWUgZWwgZGlzY28gY29tcGxldG8geSBzZWEgZGVsIHRpcG8gYFNHSSB2b2x1bWUnXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIkVsIHNlY3RvciAlZCB5YSBlc3ThIGFzaWduYWRvXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlbid0IGNvdmVyZWQgdGhlIHdob2xlIGRpc2sgd2l0aCB0aGUgM3JkIHBhcnRpdGlvbiwgYnV0IHlvdXIgdmFsdWVcbiIKKyIlZCAlcyBjb3ZlcnMgc29tZSBvdGhlciBwYXJ0aXRpb24uIFlvdXIgZW50cnkgaGFzIGJlZW4gY2hhbmdlZFxuIgorInRvICVkICVzXG4iCittc2dzdHIgIiIKKyJObyBoYSBhYmFyY2FkbyBlbCBkaXNjbyBjb21wbGV0byBjb24gbGEgdGVyY2VyYSBwYXJ0aWNp824sIHBlcm9cbiIKKyJlbCB2YWxvciAlZCAlcyBxdWUgaGEgZXNwZWNpZmljYWRvIHNlIHNvbGFwYSBjb24gb3RyYSBwYXJ0aWNp824uXG4iCisiTGEgZW50cmFkYSBxdWUgaGEgcmVhbGl6YWRvIHNlIGhhIGNhbWJpYWRvIHBvciAlZCAlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyJTaSBkZXNlYSBtYW50ZW5lciBsYSBjb21wYXRpYmlsaWRhZCBjb24gU3VuT1MvU29sYXJpcywgc2UgcmVjb21pZW5kYSBkZWphclxuIgorImVzdGEgcGFydGljafNuIGNvbW8gZGlzY28gY29tcGxldG8gKDUpLCBjb24gcHJpbmNpcGlvIGVuIDAsIGNvbiAldSBzZWN0b3Jlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBVRlMsIEVYVDJGUyBmaWxlc3lzdGVtIG9yIFN1bk9TIHN3YXAuIFB1dHRpbmcgTGludXggc3dhcFxuIgorInRoZXJlIG1heSBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlIGFuZCBib290YmxvY2suXG4iCisiVHlwZSBZRVMgaWYgeW91J3JlIHZlcnkgc3VyZSB5b3Ugd291bGQgbGlrZSB0aGF0IHBhcnRpdGlvblxuIgorInRhZ2dlZCB3aXRoIDgyIChMaW51eCBzd2FwKTogIgorbXNnc3RyICIiCisiU2UgcmVjb21pZW5kYSBxdWUgbGEgcGFydGljafNuIGVuIGVsIGRlc3BsYXphbWllbnRvIDBcbiIKKyJzZWEgVUZTLCBFWFQyRlMgbyBTdW5PUyBzd2FwLiBVdGlsaXphciBMaW51eCBzd2FwXG4iCisicHVlZGUgZGVzdHJ1aXIgbGEgdGFibGEgZGUgcGFydGljaW9uZXMgeSBlbCBibG9xdWUgZGUgaW5pY2lvLlxuIgorIkVzY3JpYmEgU80gc2kgZXN04SBzZWd1cm8gZGUgcXVlIGRlc2VhIHF1ZSBsYSBwYXJ0aWNp825cbiIKKyJlc3TpIG1hcmNhZGEgY29uIDgyIChMaW51eCBzd2FwKTogIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBycG1cbiIKKyIlZCBjeWxpbmRlcnMsICVkIGFsdGVybmF0ZSBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiTGFiZWwgSUQ6ICVzXG4iCisiVm9sdW1lIElEOiAlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2NvICVzIChldGlxdWV0YSBkZSBkaXNjbyBTdW4pOiAlZCBjYWJlemFzLCAlZCBzZWN0b3JlcywgJWQgci5wLm0uXG4iCisiJWQgY2lsaW5kcm9zLCAlZCBjaWxpbmRyb3MgYWx0ZXJuYXRpdm9zLCAlZCBjaWxpbmRyb3MgZu1zaWNvc1xuIgorIiVkIHNlY3RvcmVzIHBvciBjaWxpbmRybyBhZGljaW9uYWxlcywgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbmlkYWRlcyA9ICVzIGRlICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2NvICVzIChldGlxdWV0YSBkZSBkaXNjbyBTdW4pOiAlZCBjYWJlemFzLCAlZCBzZWN0b3JlcywgJWQgY2lsaW5kcm9zXG4iCisiVW5pZGFkZXMgPSAlcyBkZSAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBJbmRpYy4gIFByaW5jaXBpbyAgIEZpbiAgICBCbG9xdWVzICBJZCAgU2lzdGVtYVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjI1Cittc2dpZCAiTnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIk76bWVybyBkZSBjaWxpbmRyb3MgYWx0ZXJuYXRpdm9zIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjM3Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIlNlY3RvcmVzIGFkaWNpb25hbGVzIHBvciBjaWxpbmRybyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY0NAorbXNnaWQgIkludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICJGYWN0b3IgZGUgaW50ZXJsZWF2ZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1MQorbXNnaWQgIlJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICJWZWxvY2lkYWQgZGUgcm90YWNp824gKHIucC5tLikiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTgKK21zZ2lkICJOdW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICJO+m1lcm8gZGUgY2lsaW5kcm9zIGbtc2ljb3MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICJWYWPtYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3Cittc2dpZCAiRkFUMTIiCittc2dzdHIgIkZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgKK21zZ2lkICJYRU5JWCByb290IgorbXNnc3RyICJYRU5JWCByb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkKK21zZ2lkICJYRU5JWCB1c3IiCittc2dzdHIgIlhFTklYIHVzciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMAorbXNnaWQgIkZBVDE2IDwzMk0iCittc2dzdHIgIkZBVDE2IDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTEKK21zZ2lkICJFeHRlbmRlZCIKK21zZ3N0ciAiRXh0ZW5kaWRhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIGJvb3RhYmxlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgQm9vdCBNYW5hZ2VyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICJXOTUgRXh0J2QgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICJPUFVTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIyCittc2dpZCAiSGlkZGVuIEZBVDEyIgorbXNnc3RyICJGQVQxMiBvY3VsdGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjMKK21zZ2lkICJDb21wYXEgZGlhZ25vc3RpY3MiCittc2dzdHIgIkNvbXBhcSBkaWFnbm9zdGljcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiBvY3VsdGEgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNQorbXNnaWQgIkhpZGRlbiBGQVQxNiIKK21zZ3N0ciAiRkFUMTYgb2N1bHRhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiSFBGUy9OVEZTIG9jdWx0YSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJTbWFydFNsZWVwIGRlIEFTVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIkhpZGRlbiBXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNAorbXNnaWQgIlZlbml4IDgwMjg2IgorbXNnc3RyICJWZW5peCA4MDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNQorbXNnaWQgIlBQQyBQUmVQIEJvb3QiCittc2dzdHIgIlBQQyBQUmVQIEJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0Lnggc2VndW5kYSBwYXJ0ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IHRlcmNlcmEgcGFydGUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDAKK21zZ2lkICJPblRyYWNrIERNIgorbXNnc3RyICJPblRyYWNrIERNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQxCittc2dpZCAiT25UcmFjayBETTYgQXV4MSIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MgorbXNnaWQgIkNQL00iCittc2dzdHIgIkNQL00iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDMKK21zZ2lkICJPblRyYWNrIERNNiBBdXgzIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ0Cittc2dpZCAiT25UcmFja0RNNiIKK21zZ3N0ciAiT25UcmFja0RNNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NQorbXNnaWQgIkVaLURyaXZlIgorbXNnc3RyICJFWi1Ecml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NgorbXNnaWQgIkdvbGRlbiBCb3ciCittc2dzdHIgIkdvbGRlbiBCb3ciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDcKK21zZ2lkICJQcmlhbSBFZGlzayIKK21zZ3N0ciAiUHJpYW0gRWRpc2siCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk5Cittc2dpZCAiU3BlZWRTdG9yIgorbXNnc3RyICJTcGVlZFN0b3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICJHTlUgSFVSRCBvIFN5c1YiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTAKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAyODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MQorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDM4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMzg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUyCittc2dpZCAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorbXNnc3RyICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTMKK21zZ2lkICJQQy9JWCIKK21zZ3N0ciAiUEMvSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTQKK21zZ2lkICJPbGQgTWluaXgiCittc2dzdHIgIk9sZCBNaW5peCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NQorbXNnaWQgIk1pbml4IC8gb2xkIExpbnV4IgorbXNnc3RyICJNaW5peCAvIG9sZCBMaW51eCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eCBzd2FwIC8gU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJVbmlkYWQgQzogb2N1bHRhIGRlIE9TLzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTkKK21zZ2lkICJMaW51eCBleHRlbmRlZCIKK21zZ3N0ciAiTGludXggZXh0ZW5kaWRhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIkNvbmp1bnRvIGRlIHZvbPptZW5lcyBOVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYyCittc2dpZCAiTGludXggcGxhaW50ZXh0IgorbXNnc3RyICJMaW51eCBwbGFpbnRleHQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjQKK21zZ2lkICJBbW9lYmEiCittc2dzdHIgIkFtb2ViYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NQorbXNnaWQgIkFtb2ViYSBCQlQiCittc2dzdHIgIkFtb2ViYSBCQlQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjYKK21zZ2lkICJCU0QvT1MiCittc2dzdHIgIkJTRC9PUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NworbXNnaWQgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKK21zZ3N0ciAiSGliZXJuYWNp824gZGUgSUJNIFRoaW5rcGFkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY4Cittc2dpZCAiRnJlZUJTRCIKK21zZ3N0ciAiRnJlZUJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OQorbXNnaWQgIk9wZW5CU0QiCittc2dzdHIgIk9wZW5CU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzAKK21zZ2lkICJOZVhUU1RFUCIKK21zZ3N0ciAiTmVYVFNURVAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzEKK21zZ2lkICJEYXJ3aW4gVUZTIgorbXNnc3RyICJVRlMgZGUgRGFyd2luIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcyCittc2dpZCAiTmV0QlNEIgorbXNnc3RyICJOZXRCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzMKK21zZ2lkICJEYXJ3aW4gYm9vdCIKK21zZ3N0ciAiYXJyYW5xdWUgZGUgRGFyd2luIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc0CisjLCBmdXp6eQorbXNnaWQgIkhGUyAvIEhGUysiCittc2dzdHIgIk9TLzIgSFBGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NQorbXNnaWQgIkJTREkgZnMiCittc2dzdHIgIkJTREkgZnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIkJTREkgc3dhcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NworbXNnaWQgIkJvb3QgV2l6YXJkIGhpZGRlbiIKK21zZ3N0ciAiQm9vdCBXaXphcmQgaGlkZGVuIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICJhcnJhbnF1ZSBkZSBTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc5Cittc2dpZCAiU29sYXJpcyIKK21zZ3N0ciAiU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MAorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTEyKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgxCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODIKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTE2KSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MworbXNnaWQgIlN5cmlueCIKK21zZ3N0ciAiU3lyaW54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg0Cittc2dpZCAiTm9uLUZTIGRhdGEiCittc2dzdHIgIkRhdG9zIHNpbiBTRiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NQorbXNnaWQgIkNQL00gLyBDVE9TIC8gLi4uIgorbXNnc3RyICJDUC9NIC8gQ1RPUyAvIC4uLiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NworbXNnaWQgIkRlbGwgVXRpbGl0eSIKK21zZ3N0ciAiVXRpbGlkYWQgRGVsbCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OAorbXNnaWQgIkJvb3RJdCIKK21zZ3N0ciAiQm9vdEl0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg5Cittc2dpZCAiRE9TIGFjY2VzcyIKK21zZ3N0ciAiRE9TIGFjY2VzcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MQorbXNnaWQgIkRPUyBSL08iCittc2dzdHIgIkRPUyBSL08iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTQKK21zZ2lkICJCZU9TIGZzIgorbXNnc3RyICJCZU9TIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk1CisjLCBmdXp6eQorbXNnaWQgIkdQVCIKK21zZ3N0ciAiRUZJIEdQVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NgorbXNnaWQgIkVGSSAoRkFULTEyLzE2LzMyKSIKK21zZ3N0ciAiRUZJIChGQVQtMTIvMTYvMzIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk3Cittc2dpZCAiTGludXgvUEEtUklTQyBib290IgorbXNnc3RyICJpbmljaW8gTGludXgvUEEtUklTQyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1Mgc2Vjb25kYXJ5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJFcnJvciBkZSBi+nNxdWVkYSBlbiAlczsgbm8gc2UgcHVlZGUgYnVzY2FyIGVuICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgIkVycm9yIGRlIGL6c3F1ZWRhOiBzZSBlc3BlcmFiYSAweCUwOHglMDh4LCBzZSBoYSBvYnRlbmlkbyAweCUwOHglMDh4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiTm8gcXVlZGEgbWVtb3JpYTsgc2UgYWJhbmRvbmEgZWwgaW50ZW50b1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjAgZmRpc2svc2ZkaXNrLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZXJyb3Igb24gJXMgLSBjYW5ub3QgcmVhZCBzZWN0b3IgJWx1XG4iCittc2dzdHIgIkVycm9yIGRlIGxlY3R1cmEgZW4gJXM7IG5vIHNlIHB1ZWRlIGxlZXIgZWwgc2VjdG9yICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiRVJST1I6IGVsIHNlY3RvciAlbHUgbm8gdGllbmUgdW5hIGZpcm1hIG1zZG9zXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgIkVycm9yIGRlIGVzY3JpdHVyYSBlbiAlczsgbm8gc2UgcHVlZGUgZXNjcmliaXIgZWwgc2VjdG9yICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHNlY3RvciBzYXZlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBhYnJpciBlbCBmaWNoZXJvIGRlIGd1YXJkYXIgc2VjdG9yIGRlIHBhcnRpY2nzbiAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICJFcnJvciBkZSBlc2NyaXR1cmEgZW4gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBlamVjdXRhciBzdGF0IHBhcmEgZmljaGVybyBkZSByZXN0YXVyYXIgcGFydGljafNuICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAiIgorIlRhbWHxbyBpbmNvcnJlY3RvIGRlIGZpY2hlcm8gZGUgcmVzdGF1cmFyIHBhcnRpY2nzbjsgbm8gc2UgZWZlY3T6YSAiCisicmVzdGF1cmFjafNuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/XG4iCittc2dzdHIgIr9ObyBxdWVkYSBtZW1vcmlhP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyIGZpY2hlcm8gZGUgcmVzdGF1cmFyIHBhcnRpY2nzbiAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciByZWFkaW5nICVzXG4iCittc2dzdHIgIkVycm9yIGFsIGxlZXIgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIGRldmljZSAlcyBmb3Igd3JpdGluZ1xuIgorbXNnc3RyICJObyBzZSBwdWVkZSBhYnJpciBlbCBkaXNwb3NpdGl2byAlcyBwYXJhIGVzY3JpYmlyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nIHNlY3RvciAlbHUgb24gJXNcbiIKK21zZ3N0ciAiRXJyb3IgYWwgZXNjcmliaXIgZWwgc2VjdG9yICVsdSBlbiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBnZW9tZXRyeVxuIgorbXNnc3RyICJEaXNjbyAlczogbm8gc2UgcHVlZGUgb2J0ZW5lciBsYSBnZW9tZXRy7WFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICJEaXNjbyAlczogbm8gc2UgcHVlZGUgb2J0ZW5lciBlbCB0YW1h8W9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzdGFydD0lbHUgLSB0aGlzIGxvb2tzIGxpa2UgYSBwYXJ0aXRpb24gcmF0aGVyIHRoYW5cbiIKKyJ0aGUgZW50aXJlIGRpc2suIFVzaW5nIGZkaXNrIG9uIGl0IGlzIHByb2JhYmx5IG1lYW5pbmdsZXNzLlxuIgorIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIgorbXNnc3RyICIiCisiQXRlbmNp8246IHByaW5jaXBpbz0lbHUgLSBwYXJlY2Ugc2VyIHVuYSBwYXJ0aWNp824geSBubyB1blxuIgorImRpc2NvIGVudGVyby4gVXNhciBmZGlzayBjb24gZWxsYSBwcm9iYWJsZW1lbnRlIG5vIHRpZW5lIHNlbnRpZG8uXG4iCisiW1VzZSBsYSBvcGNp824gLS1mb3JjZSBzaSByZWFsbWVudGUgZGVzZWEgcmVhbGl6YXIgZXN0YSBvcGVyYWNp824uXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAiQXRlbmNp8246IEhESU9fR0VUR0VPIGluZGljYSBxdWUgaGF5ICVsdSBjYWJlemFzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iCittc2dzdHIgIkF0ZW5jafNuOiBIRElPX0dFVEdFTyBpbmRpY2EgcXVlIGhheSAlbHUgc2VjdG9yZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIkF0ZW5jafNuOiBIRElPX0dFVEdFTyBpbmRpY2EgcXVlIGhheSAlbHUgY2lsaW5kcm9zXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdW5saWtlbHkgbnVtYmVyIG9mIHNlY3RvcnMgKCVsdSkgLSB1c3VhbGx5IGF0IG1vc3QgNjNcbiIKKyJUaGlzIHdpbGwgZ2l2ZSBwcm9ibGVtcyB3aXRoIGFsbCBzb2Z0d2FyZSB0aGF0IHVzZXMgQy9IL1MgYWRkcmVzc2luZy5cbiIKK21zZ3N0ciAiIgorIkF0ZW5jafNuOiBu+m1lcm8gaW1wcm9iYWJsZSBkZSBzZWN0b3JlcyAoJWx1KTsgbm9ybWFsbWVudGUgNjMgY29tbyBt4XhpbW9cbiIKKyJFc3RvIGNhdXNhcuEgcHJvYmxlbWFzIGNvbiBlbCBzb2Z0d2FyZSBxdWUgZGlyZWNjaW9uZSBjb24gQ2lsLi9DYWIuL1NlY3RvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2NvICVzOiAlbHUgY2lsaW5kcm9zLCAlbHUgY2FiZXphcywgJWx1IHNlY3RvcmVzL3Bpc3RhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRlIHBhcnRpY2nzbiAlcyB0aWVuZSB1biB2YWxvciBpbXBvc2libGUgcGFyYSBjYWJlemE6ICVsdVxuIgorIihkZWJlIGVzdGFyIGVudHJlIDAgeSAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBzZWN0b3I6ICVsdSAoc2hvdWxkIGJlIGluIDEtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRlIHBhcnRpY2nzbiAlcyB0aWVuZSB1biB2YWxvciBpbXBvc2libGUgcGFyYSBzZWN0b3I6ICVsdVxuIgorIihkZWJlIGVzdGFyIGVudHJlIDEgeSAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICVsdSAoc2hvdWxkIGJlIGluIDAtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRlIHBhcnRpY2nzbiAlcyB0aWVuZSB1biB2YWxvciBpbXBvc2libGUgcGFyYSBjaWxpbmRyb3M6ICVsdVxuIgorIihkZWJlIGVzdGFyIGVudHJlIDAgeSAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWQgIE5hbWVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIklkICBOb21icmVcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSAuLi5cbiIKK21zZ3N0ciAiVm9sdmllbmRvIGEgbGVlciBsYSB0YWJsYSBkZSBwYXJ0aWNpb25lcy4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTEKKyMsIGZ1enp5Cittc2dpZCAiIgorIlRoZSBjb21tYW5kIHRvIHJlLXJlYWQgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQuXG4iCisiUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIG9yIHJlYm9vdCB5b3VyIHN5c3RlbSBub3csXG4iCisiYmVmb3JlIHVzaW5nIG1rZnNcbiIKK21zZ3N0ciAiIgorIkxhIG9yZGVuIHBhcmEgdm9sdmVyIGEgbGVlciBsYSB0YWJsYSBkZSBwYXJ0aWNpb25lcyBoYSBmYWxsYWRvLlxuIgorIlJlaW5pY2llIGVsIHNpc3RlbWEgYWhvcmEsIGFudGVzIGRlIHV0aWxpemFyIG1rZnMuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxNworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjbG9zaW5nICVzXG4iCittc2dzdHIgIkVycm9yIGFsIGNlcnJhciAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo4NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIHN1Y2ggcGFydGl0aW9uXG4iCittc2dzdHIgIiVzOiBlc3RhIHBhcnRpY2nzbiBubyBleGlzdGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODc4Cittc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCAtIHVzaW5nIHNlY3RvcnNcbiIKK21zZ3N0ciAiRm9ybWF0byBubyByZWNvbm9jaWRvOyB1dGlsaXphbmRvIHNlY3RvcmVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkyOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmltcGxlbWVudGVkIGZvcm1hdCAtIHVzaW5nICVzXG4iCittc2dzdHIgImZvcm1hdG8gbm8gaW1wbGVtZW50YWRvOyB1dGlsaXphbmRvICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBjeWxpbmRlcnMgb2YgJWx1IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiVW5pZGFkZXMgPSBjaWxpbmRyb3MgZGUgJWx1IGJ5dGVzLCBibG9xdWVzIGRlIDEwMjQgYnl0ZXMsIGNvbnRhbmRvIGRlc2RlICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRGlzcC4gIEluaWMuIFByaW5jLiAgIEZpbiAgIE66Y2lsICAgIE66YmxvcS4gICBJZCAgU2lzdGVtYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gc2VjdG9ycyBvZiA1MTIgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVuaWRhZGVzID0gc2VjdG9yZXMgZGUgNTEyIGJ5dGVzLCBjb250YW5kbyBkZXNkZSAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICAgU3RhcnQgICAgICAgRW5kICAgI3NlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRGlzcC4gIEluaWNpbyAgUHJpbmNpcGlvICAgRmluICAgTrogc2VjdC4gIElkICBTaXN0ZW1hXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiVW5pZGFkZXMgPSBibG9xdWVzIGRlIDEwMjQgYnl0ZXMsIGNvbnRhbmRvIGRlc2RlICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgIFN0YXJ0ICAgICAgIEVuZCAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBEaXNwLiAgSW5pYy4gIFByaW5jaXBpbyAgIEZpbiAgICBOumJsb3F1ZXMgSWQgIFNpc3RlbWFcbiIKKworIyBGSVhNRTogv1F16SBlcyB1biBtZWJpYnl0ZT8KKyM6IGZkaXNrL3NmZGlzay5jOjk1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVuaWRhZGVzID0gbWVnYWJ5dGVzIGRlIDEwNDg1NzYgYnl0ZXMsIGJsb3F1ZXMgZGUgMTAyNCBieXRlcywgY29udGFuZG8gZGVzZGUgIgorIiVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgIEVuZCAgICBNaUIgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRGlzcC4gIEluaWMgUHJpbmMuICBGaW4gICAgTWlCICAgIE66YmxvcXVlcyBJZCAgU2lzdGVtYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIlx0XHRwcmluY2lwaW86IChjaWwuLGNhYi4sc2VjdC4pIGVzcGVyYWRvICglbGQsJWxkLCVsZCkgZGV0ZWN0YWRvICglbGQsJWxkLCUiCisibGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIlx0XHRmaW46IChjaWwuLGNhYi4sc2VjdC4pIGVzcGVyYWRvICglbGQsJWxkLCVsZCkgZGV0ZWN0YWRvICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgIiIKKyJMYSBwYXJ0aWNp824gdGVybWluYSBlbiBlbCBjaWxpbmRybyAlbGQsIG3hcyBhbGzhIGRlbCBmaW5hbCBkZWwgZGlzY29cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiTm8gc2UgaGEgZW5jb250cmFkbyBuaW5ndW5hIHBhcnRpY2nzblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBUaGUgcGFydGl0aW9uIHRhYmxlIGxvb2tzIGxpa2UgaXQgd2FzIG1hZGVcbiIKKyIgIGZvciBDL0gvUz0qLyVsZC8lbGQgKGluc3RlYWQgb2YgJWxkLyVsZC8lbGQpLlxuIgorIkZvciB0aGlzIGxpc3RpbmcgSSdsbCBhc3N1bWUgdGhhdCBnZW9tZXRyeS5cbiIKK21zZ3N0ciAiIgorIkF0ZW5jafNuOiBMYSB0YWJsYSBkZSBwYXJ0aWNpb25lcyBwYXJlY2UgaGFiZXJzZSBjcmVhZG9cbiIKKyIgIHBhcmEgQ2lsLi9DYWIuL1NlY3QuPSovJWxkLyVsZCAoZW4gbHVnYXIgZGUgJWxkLyVsZC8lbGQpLlxuIgorIlBhcmEgZXN0ZSBsaXN0YWRvIHNlIHByZXN1cG9uZHLhIGVzdGEgZ2VvbWV0cu1hLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIk5vIGV4aXN0ZSBuaW5ndW5hIHRhYmxhIGRlIHBhcnRpY2lvbmVzLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg4CisjLCBjLWZvcm1hdAorbXNnaWQgInN0cmFuZ2UsIG9ubHkgJWQgcGFydGl0aW9ucyBkZWZpbmVkLlxuIgorbXNnc3RyICJFeHRyYfFhbWVudGUgc/NsbyBoYXkgJWQgcGFydGljaW9uZXMgZGVmaW5pZGFzLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iCittc2dzdHIgIiIKKyJBdGVuY2nzbjogbGEgcGFydGljafNuICVzIHRpZW5lIHRhbWHxbyAwIHBlcm8gbm8gZXN04SBtYXJjYWRhIGNvbW8gdmFj7WFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiQXRlbmNp8246IGxhIHBhcnRpY2nzbiAlcyB0aWVuZSB0YW1h8W8gMCB5IGVzIGluaWNpYWJsZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBub256ZXJvIHN0YXJ0XG4iCittc2dzdHIgIiIKKyJBdGVuY2nzbjogbGEgcGFydGljafNuICVzIHRpZW5lIHRhbWHxbyAwIHkgcHJpbmNpcGlvIGRpc3RpbnRvIGRlIGNlcm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICJBdGVuY2nzbjogbGEgcGFydGljafNuICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIgorbXNnc3RyICJubyBzZSBlbmN1ZW50cmEgZGVudHJvIGRlIGxhIHBhcnRpY2nzbiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbnMgJXMgIgorbXNnc3RyICJBdGVuY2nzbjogbGFzIHBhcnRpY2lvbmVzICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICJ5ICVzIHNlIHNvbGFwYW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogcGFydGl0aW9uICVzIGNvbnRhaW5zIHBhcnQgb2YgdGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisiYW5kIHdpbGwgZGVzdHJveSBpdCB3aGVuIGZpbGxlZFxuIgorbXNnc3RyICIiCisiQXRlbmNp8246IGxhIHBhcnRpY2nzbiAlcyBjb250aWVuZSBwYXJ0ZSBkZSBsYSB0YWJsYSBkZSBwYXJ0aWNpb25lc1xuIgorIihzZWN0b3IgJWx1KSwgeSBsYSBkZXN0cnVpcuEgY3VhbmRvIHNlIGxsZW5lXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIHN0YXJ0cyBhdCBzZWN0b3IgMFxuIgorbXNnc3RyICJBdGVuY2nzbjogbGEgcGFydGljafNuICVzIGVtcGllemEgZW4gZWwgc2VjdG9yIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIkF0ZW5jafNuOiBsYSBwYXJ0aWNp824gJXMgZmluYWxpemEgbeFzIGFsbOEgZGVsIGZpbmFsIGRlbCBkaXNjb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjY5Cittc2dpZCAiIgorIkFtb25nIHRoZSBwcmltYXJ5IHBhcnRpdGlvbnMsIGF0IG1vc3Qgb25lIGNhbiBiZSBleHRlbmRlZFxuIgorIiAoYWx0aG91Z2ggdGhpcyBpcyBub3QgYSBwcm9ibGVtIHVuZGVyIExpbnV4KVxuIgorbXNnc3RyICIiCisiQ29tbyBt4XhpbW8gdW5hIGRlIGxhcyBwYXJ0aWNpb25lcyBwcmltYXJpYXMgcHVlZGUgc2VyIGV4dGVuZGlkYVxuIgorIiAoYXVucXVlIGVzdG8gbm8gZXMgdW4gcHJvYmxlbWEgYmFqbyBMaW51eClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJBdGVuY2nzbjogbGEgcGFydGljafNuICVzIG5vIGVtcGllemEgZW4gdW4gbO1taXRlIGRlIGNpbGluZHJvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IGVuZCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIkF0ZW5jafNuOiBsYSBwYXJ0aWNp824gJXMgbm8gdGVybWluYSBlbiB1biBs7W1pdGUgZGUgY2lsaW5kcm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxMQorbXNnaWQgIiIKKyJXYXJuaW5nOiBtb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJBdGVuY2nzbjogaGF5IG3hcyBkZSB1bmEgcGFydGljafNuIHByaW1hcmlhIG1hcmNhZGEgY29tbyBpbmljaWFibGUgKGFjdGl2YSlcbiIKKyJFc3RvIG5vIGVzIHBvYmxlbWEgcGFyYSBMSUxPLCBwZXJvIGVsIE1CUiBkZSBET1Mgbm8gc2UgaW5pY2lhcuEgY29uIGVzdGUgIgorImRpc2NvLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzE4Cittc2dpZCAiIgorIldhcm5pbmc6IHVzdWFsbHkgb25lIGNhbiBib290IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zIG9ubHlcbiIKKyJMSUxPIGRpc3JlZ2FyZHMgdGhlIGBib290YWJsZScgZmxhZy5cbiIKK21zZ3N0ciAiIgorIkF0ZW5jafNuOiBub3JtYWxtZW50ZSBz82xvIGVzIHBvc2libGUgaW5pY2lhciBkZXNkZSBwYXJ0aWNpb25lcyBwcmltYXJpYXMuXG4iCisiTElMTyBubyB0aWVuZSBlbiBjdWVudGEgZWwgaW5kaWNhZG9yIGRlIGluaWNpYWJsZS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiQXRlbmNp8246IG5vIGhheSBuaW5ndW5hIHBhcnRpY2nzbiBwcmltYXJpYSBtYXJjYWRhIGNvbW8gaW5pY2lhYmxlICIKKyIoYWN0aXZhKS5cbiIKKyJFc3RvIG5vIGVzIHByb2JsZW1hIHBhcmEgTElMTywgcGVybyBlbCBNQlIgZGUgRE9TIG5vIGluaWNpYXLhIGNvbiBlc3RlICIKKyJkaXNjby5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMzOAorbXNnaWQgInN0YXJ0IgorbXNnc3RyICJjb21pZW56byIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisicGFydGl0aW9uICVzOiBzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIlBhcnRpY2nzbiAlczogcHJpbmNpcGlvOiAoY2lsLixjYWIuLHNlY3QuKSBlc3BlcmFkbyAoJWxkLCVsZCwlbGQpIGRldGVjdGFkbyAiCisiKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQ3Cittc2dpZCAiZW5kIgorbXNnc3RyICJmaW5hbCIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIlBhcnRpY2nzbiAlczogZmluOiAoY2lsLixjYWIuLHNlY3QuKSBlc3BlcmFkbyAoJWxkLCVsZCwlbGQpIGRldGVjdGFkbyAoJWxkLCUiCisibGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAiIgorIkxhIHBhcnRpY2nzbiAlcyB0ZXJtaW5hIGVuIGVsIGNpbGluZHJvICVsZCwgbeFzIGFsbOEgZGVsIGZpbmFsIGRlbCBkaXNjb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzaGlmdGVkIHN0YXJ0IG9mIHRoZSBleHRkIHBhcnRpdGlvbiBmcm9tICVsZCB0byAlbGRcbiIKKyIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorbXNnc3RyICIiCisiQXRlbmNp8246IHNlIGRlc3BsYXphIGVsIGNvbWllbnpvIGRlIGxhIHBhcnRpY2nzbiBleHRkIGRlICVsZCBhICVsZFxuIgorIihTb2xhbWVudGUgcGFyYSB2aXN1YWxpemFybG8uIE5vIHNlIGNhbWJpYSBzdSBjb250ZW5pZG8uKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiQXRlbmNp8246IGxhIHBhcnRpY2nzbiBleHRlbmRpZGEgbm8gZW1waWV6YSBlbiB1biBs7W1pdGUgZGUgY2lsaW5kcm8uXG4iCisiRE9TIHkgTGludXggaW50ZXJwcmV0YXLhbiBlbCBjb250ZW5pZG8gZGUgZm9ybWEgZGlmZXJlbnRlLlxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICJkZW1hc2lhZGFzIHBhcnRpY2lvbmVzIC0gc2UgaWdub3JhbiBsYXMgcG9zdGVyaW9yZXMgYWwgbrogKCVkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDE3Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICK/4XJib2wgZGUgcGFydGljaW9uZXM/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAiQWRtaW5pc3RyYWRvciBkZSBkaXNjbyBkZXRlY3RhZG87IG5vIHNlIHB1ZWRlIHRyYXRhciBlc3RvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIkRldGVjdGFkYSBmaXJtYSBETTYgLSBhYmFuZG9uYW5kb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAiU2l0dWFjafNuIGFu821hbGE6IL9wYXJ0aWNp824gZXh0ZW5kaWRhIGRlIHRhbWHxbyAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJTaXR1YWNp824gYW7zbWFsYTogv3BhcnRpY2nzbiBCU0QgZGUgdGFtYfFvIDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzOiB1bnJlY29nbml6ZWQgcGFydGl0aW9uIHRhYmxlIHR5cGVcbiIKK21zZ3N0ciAiICVzOiB0aXBvIGRlIHRhYmxhIGRlIHBhcnRpY2lvbmVzIG5vIHJlY29ub2NpZG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYxNgorbXNnaWQgIi1uIGZsYWcgd2FzIGdpdmVuOiBOb3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiU2UgaGEgZXNwZWNpZmljYWRvIGVsIGluZGljYWRvciAtbjogbm8gc2UgaGEgcHJvZHVjaWRvIG5pbmf6biBjYW1iaW9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzMgorbXNnaWQgIkZhaWxlZCBzYXZpbmcgdGhlIG9sZCBzZWN0b3JzIC0gYWJvcnRpbmdcbiIKK21zZ3N0ciAiRXJyb3IgYWwgZ3VhcmRhciBsb3Mgc2VjdG9yZXMgYW50aWd1b3M7IGFudWxhbmRvIGxhIG9wZXJhY2nzblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjM3IGZkaXNrL3NmZGlzay5jOjE2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHdyaXRpbmcgdGhlIHBhcnRpdGlvbiBvbiAlc1xuIgorbXNnc3RyICJFcnJvciBhbCBlc2NyaWJpciBsYSBwYXJ0aWNp824gZW4gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAiTO1uZWEgZGUgZW50cmFkYSBsYXJnYSBvIGluY29tcGxldGE7IHNlIGFiYW5kb25hIGxhIG9wZXJhY2nzblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiRXJyb3IgZGUgZW50cmFkYTogc2UgZXNwZXJhYmEgYD0nIGRlc3B16XMgZGVsIGNhbXBvICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IHVuZXhwZWN0ZWQgY2hhcmFjdGVyICVjIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgIkVycm9yIGRlIGVudHJhZGE6IGNhcuFjdGVyIGluZXNwZXJhZG8gJWMgdHJhcyBjYW1wbyAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAiRW50cmFkYSBubyByZWNvbm9jaWRhOiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxODEwCittc2dpZCAibnVtYmVyIHRvbyBiaWdcbiIKK21zZ3N0ciAiTvptZXJvIGRlbWFzaWFkbyBlbGV2YWRvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICJEYXRvcyBleHRyYfFvcyB0cmFzIGVsIG76bWVyb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTM4Cittc2dpZCAibm8gcm9vbSBmb3IgcGFydGl0aW9uIGRlc2NyaXB0b3JcbiIKK21zZ3N0ciAiTm8gaGF5IGVzcGFjaW8gcGFyYSBkZXNjcmlwdG9yIGRlIHBhcnRpY2nzblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTcxCittc2dpZCAiY2Fubm90IGJ1aWxkIHN1cnJvdW5kaW5nIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBjcmVhciBwYXJ0aWNp824gZXh0ZW5kaWRhIGFkeWFjZW50ZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDIyCittc2dpZCAidG9vIG1hbnkgaW5wdXQgZmllbGRzXG4iCittc2dzdHIgIkRlbWFzaWFkb3MgY2FtcG9zIGRlIGVudHJhZGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA1NgorbXNnaWQgIk5vIHJvb20gZm9yIG1vcmVcbiIKK21zZ3N0ciAiTm8gcXVlZGEgbeFzIGVzcGFjaW9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA3NQorbXNnaWQgIklsbGVnYWwgdHlwZVxuIgorbXNnc3RyICJUaXBvIG5vIHBlcm1pdGlkb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGdpdmVuIHNpemUgKCVsdSkgZXhjZWVkcyBtYXggYWxsb3dhYmxlIHNpemUgKCVsdSlcbiIKK21zZ3N0ciAiIgorIkF0ZW5jafNuOiBlbCB0YW1h8W8gZGFkbyAoJWx1KSBzdXBlcmEgZWwgdGFtYfFvIG3heGltbyBwZXJtaXRpZG8gKCVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjExMworbXNnaWQgIldhcm5pbmc6IGVtcHR5IHBhcnRpdGlvblxuIgorbXNnc3RyICJBdGVuY2nzbjogcGFydGljafNuIHZhY+1hXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHBhcnRpdGlvbiBzdGFydCAoZWFybGllc3QgJWx1KVxuIgorbXNnc3RyICJBdGVuY2nzbjogcHJpbmNpcGlvIGRlIHBhcnRpY2nzbiBpbmNvcnJlY3RvIChhbnRlcyAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNDAKK21zZ2lkICJ1bnJlY29nbml6ZWQgYm9vdGFibGUgZmxhZyAtIGNob29zZSAtIG9yICpcbiIKK21zZ3N0ciAiSW5kaWNhZG9yIGRlIGluaWNpYWJsZSBubyByZWNvbm9jaWRvOyBlbGlqYSAtIG8gKlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTU3IGZkaXNrL3NmZGlzay5jOjIxNzAKK21zZ2lkICJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iCittc2dzdHIgIr9Fc3BlY2lmaWNhY2nzbiBwYXJjaWFsIGRlIGNpbCxjYWIsc2VjdD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE4MQorbXNnaWQgIkV4dGVuZGVkIHBhcnRpdGlvbiBub3Qgd2hlcmUgZXhwZWN0ZWRcbiIKK21zZ3N0ciAiUGFydGljafNuIGV4dGVuZGlkYSBlbiB1YmljYWNp824gbm8gZXNwZXJhZGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIxMworbXNnaWQgImJhZCBpbnB1dFxuIgorbXNnc3RyICJFbnRyYWRhIGluY29ycmVjdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAiSGF5IGRlbWFzaWFkYXMgcGFydGljaW9uZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisiRW50cmFkYSBjb24gZWwgZm9ybWF0byBzaWd1aWVudGU7IGxvcyBjYW1wb3MgYXVzZW50ZXMgdXRpbGl6YW4gZWwgdmFsb3IgIgorInByZWRldGVybWluYWRvLlxuIgorIjxwcmluY2lwaW8+IDx0YW1h8W8+IDx0aXBvIFtFLFMsTCxYLGhleF0+IDxpbmljaWFibGUgWy0sKl0+IDxjaWwsY2FiLHNlYz4gIgorIjxjaWwsY2FiLHNlYz5cbiIKKyJOb3JtYWxtZW50ZSBz82xvIGRlYmUgZXNwZWNpZmljYXIgPHByaW5jaXBpbz4geSA8dGFtYfFvPiAoeSBxdWl64XMgPHRpcG8+KS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIGRldmljZSAuLi5cbiIKK21zZ3N0ciAiVXNvOiAlcyBbb3BjaW9uZXNdIGRpc3Bvc2l0aXZvIC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAiZGlzcG9zaXRpdm86IHNpbWlsYXIgYSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NgorbXNnaWQgInVzZWZ1bCBvcHRpb25zOiIKK21zZ3N0ciAib3BjaW9uZXMg+nRpbGVzOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgICAtcyBbb3IgLS1zaG93LXNpemVdOiBsaXN0IHNpemUgb2YgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAtcyBbbyAtLXNob3ctc2l6ZV06ICBNdWVzdHJhIGVsIHRhbWHxbyBkZSB1bmEgcGFydGljafNuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiIKKyIgICAgLWMgW28gLS1pZF06ICAgICAgICAgSW1wcmltZSBvIGNhbWJpYSBlbCBpZGVudGlmaWNhZG9yIGRlIHBhcnRpY2nzbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgICAtbCBbb3IgLS1saXN0XTogICAgICBsaXN0IHBhcnRpdGlvbnMgb2YgZWFjaCBkZXZpY2UiCittc2dzdHIgIiAgICAtbCBbbyAtLWxpc3RdOiAgICAgICBNdWVzdHJhIGxhcyBwYXJ0aWNpb25lcyBkZSBjYWRhIGRpc3Bvc2l0aXZvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAwCittc2dpZCAiICAgIC1kIFtvciAtLWR1bXBdOiAgICAgIGlkZW0sIGJ1dCBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgbGF0ZXIgaW5wdXQiCittc2dzdHIgIiIKKyIgICAgLWQgW28gLS1kdW1wXTogICAgICAgSWd1YWwsIHBlcm8gY29uIHVuIGZvcm1hdG8gYWRlY3VhZG8gcGFyYSBlbnRyYWRhXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RlcmlvciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAtaSBbb3IgLS1pbmNyZW1lbnRdOiBudW1iZXIgY3lsaW5kZXJzIGV0Yy4gZnJvbSAxIGluc3RlYWQgb2YgZnJvbSAwIgorbXNnc3RyICIiCisiICAgIC1pIFtvIC0taW5jcmVtZW50XTogIE76bWVybyBkZSBjaWxpbmRyb3MsIGV0Yy4gZGVzZGUgMSB5IG5vIGRlc2RlIDAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDIKK21zZ2lkICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGFjY2VwdC9yZXBvcnQgaW4gdW5pdHMgb2Ygc2VjdG9ycy9ibG9ja3MvY3lsaW5kZXJzLyIKKyJNQiIKK21zZ3N0ciAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBBY2VwdGEvbXVlc3RyYSBlbiB1bmlkYWRlcyBkZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0b3Jlcy9ibG9xdWVzL2NpbGluZHJvcy9NQiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgICAtVCBbbyAtLWxpc3QtdHlwZXNdOiBNdWVzdHJhIGxvcyB0aXBvcyBkZSBwYXJ0aWNpb25lcyBjb25vY2lkb3MiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorIiAgICAtRCBbbyAtLURPU106ICAgICAgICBQYXJhIGNvbXBhdGliaWxpZGFkIGNvbiBET1M6IHNlIHBpZXJkZSBhbGdvIGRlICIKKyJlc3BhY2lvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA1Cittc2dpZCAiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIG1ha2Uga2VybmVsIHJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKyIgICAgLVIgW28gLS1yZS1yZWFkXTogICAgSGFjZSBxdWUgZWwgbvpjbGVvIHZ1ZWx2YSBhIGxlZXIgbGEgdGFibGEgZGVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGljaW9uZXMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDYKK21zZ2lkICIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIgorbXNnc3RyICIiCisiICAgIC1OIyA6ICAgICAgICAgICAgICAgIENhbWJpYSD6bmljYW1lbnRlIGxhIHBhcnRpY2nzbiBjb24gZWwgbvptZXJvICMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBObyBlc2NyaWJlIHJlYWxtZW50ZSBlbiBlbCBkaXNjbyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOAorbXNnaWQgIiIKKyIgICAgLU8gZmlsZSA6ICAgICAgICAgICAgc2F2ZSB0aGUgc2VjdG9ycyB0aGF0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gdG8gZmlsZSIKK21zZ3N0ciAiIgorIiAgICAtTyBmaWNoZXJvIDogICAgICAgICBHdWFyZGEgbG9zIHNlY3RvcmVzIHF1ZSBzZSB2YW4gYSBzb2JyZWVzY3JpYmlyXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgIGVuIGBmaWNoZXJvJyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAtSSBmaWxlIDogICAgICAgICAgICByZXN0b3JlIHRoZXNlIHNlY3RvcnMgYWdhaW4iCittc2dzdHIgIiAgICAtSSBmaWNoZXJvOiAgICAgICAgICBSZXN0YXVyYSBlc3RvcyBzZWN0b3JlcyBkZSBudWV2byIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIgorbXNnc3RyICIgICAgLXYgW28gLS12ZXJzaW9uXTogICAgSW1wcmltZSBsYSB2ZXJzafNuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzExCittc2dpZCAiICAgIC0/IFtvciAtLWhlbHBdOiAgICAgIHByaW50IHRoaXMgbWVzc2FnZSIKK21zZ3N0ciAiICAgIC0/IFtvIC0taGVscF06ICAgICAgIEltcHJpbWUgZXN0ZSBtZW5zYWplIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEyCittc2dpZCAiZGFuZ2Vyb3VzIG9wdGlvbnM6IgorbXNnc3RyICJvcGNpb25lcyBwZWxpZ3Jvc2FzOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIiCisiICAgIC1nIFtvIC0tc2hvdy1nZW9tZXRyeV06ICBJbXByaW1lIGxhIGlkZWEgZGVsIG76Y2xlbyBzb2JyZSBsYSBnZW9tZXRy7WEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTQKKyMsIGZ1enp5Cittc2dpZCAiIgorIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gIgorInRhYmxlIgorbXNnc3RyICIiCisiICAgIC1nIFtvIC0tc2hvdy1nZW9tZXRyeV06ICBJbXByaW1lIGxhIGlkZWEgZGVsIG76Y2xlbyBzb2JyZSBsYSBnZW9tZXRy7WEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCBbbyAtLXNob3ctZXh0ZW5kZWRdOiAgTXVlc3RyYSB0YW1iaeluIGxhcyBwYXJ0aWNpb25lcyBleHRlbmRpZGFzIGVuXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWxpZGEgbyBlc3BlcmEgc3VzIGRlc2NyaXB0b3JlcyBlbiBlbnRyYWRhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiIKKyIgICAgLUwgIFtvIC0tTGludXhdOiAgICAgICBObyBtdWVzdHJhIGF2aXNvcyBzb2JyZSBhc3BlY3RvcyBpcnJlbGV2YW50ZXMgIgorInBhcmFcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW51eCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAtcSAgW29yIC0tcXVpZXRdOiAgICAgIHN1cHByZXNzIHdhcm5pbmcgbWVzc2FnZXMiCittc2dzdHIgIiAgICAtcSAgW28gLS1xdWlldF06ICAgICAgIFN1cHJpbWUgbWVuc2FqZXMgZGUgYXZpc28iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgWW91IGNhbiBvdmVycmlkZSB0aGUgZGV0ZWN0ZWQgZ2VvbWV0cnkgdXNpbmc6IgorbXNnc3RyICIgICAgUHVlZGUgbW9kaWZpY2FyIGxhIGdlb21ldHLtYSBkZXRlY3RhZGEgdXRpbGl6YW5kbzoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIiCisiICAgIC1DIyBbbyAtLWN5bGluZGVycyAjXTogRXN0YWJsZWNlIGVsIG76bWVybyBkZSBjaWxpbmRyb3MgcXVlIHNlIHV0aWxpemFy4W4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjEKK21zZ2lkICIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICBzZXQgdGhlIG51bWJlciBvZiBoZWFkcyB0byB1c2UiCittc2dzdHIgIiIKKyIgICAgLUgjIFtvIC0taGVhZHMgI106ICAgICBFc3RhYmxlY2UgZWwgbvptZXJvIGRlIGNhYmV6YXMgcXVlIHNlIHV0aWxpemFy4W4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjIKK21zZ2lkICIgICAgLVMjIFtvciAtLXNlY3RvcnMgI106ICBzZXQgdGhlIG51bWJlciBvZiBzZWN0b3JzIHRvIHVzZSIKK21zZ3N0ciAiIgorIiAgICAtUyMgW28gLS1zZWN0b3JzICNdOiAgIEVzdGFibGVjZSBlbCBu+m1lcm8gZGUgc2VjdG9yZXMgcXVlIHNlIHV0aWxpemFy4W4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjMKK21zZ2lkICJZb3UgY2FuIGRpc2FibGUgYWxsIGNvbnNpc3RlbmN5IGNoZWNraW5nIHdpdGg6IgorbXNnc3RyICJQdWVkZSBkZXNhY3RpdmFyIHRvZGEgY29tcHJvYmFjafNuIGRlIGNvaGVyZW5jaWEgY29uOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIiCisiICAgIC1mICBbbyAtLWZvcmNlXTogICAgICAgSGFjZSBsbyBxdWUgb3JkZW5lIGVsIHVzdWFyaW8sIGF1bnF1ZSBzZWEgaWzzZ2ljbyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAiVXNvOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2VcdFx0IGxpc3QgYWN0aXZlIHBhcnRpdGlvbnMgb24gZGV2aWNlXG4iCittc2dzdHIgIiVzIGRpc3Bvc2l0aXZvXHRcdCBFbnVtZXJhIGxhcyBwYXJ0aWNpb25lcyBhY3RpdmFzIGRlbCBkaXNwb3NpdGl2b1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZSBuMSBuMiAuLi4gYWN0aXZhdGUgcGFydGl0aW9ucyBuMSAuLi4sIGluYWN0aXZhdGUgdGhlIHJlc3RcbiIKK21zZ3N0ciAiIgorIiVzIGRpc3Bvc2l0aXZvIG4xIG4yIC4uLiBhY3RpdmFyIHBhcnRpY2lvbmVzIG4xIC4uLiwgZGVzYWN0aXZhciBlbCByZXN0b1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIlcyAtQW4gZGlzcG9zaXRpdm9cdCBhY3RpdmEgbGEgcGFydGljafNuIG4sIGRlc2FjdGl2YSBlbCByZXN0b1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBzZmRpc2sgIgorImRvZXNuJ3Qgc3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIlV0aWxpY2UgZWwgaW5kaWNhZG9yIC0tZm9yY2UgcGFyYSBlbHVkaXIgdG9kYXMgbGFzIGNvbXByb2JhY2lvbmVzLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDk1Cittc2dpZCAibm8gY29tbWFuZD9cbiIKK21zZ3N0ciAiv25pbmd1bmEgb3JkZW4/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAidG90YWw6ICVsbHUgYmxvY2tzXG4iCittc2dzdHIgInRvdGFsOiAlbGx1IGJsb3F1ZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1wcmludC1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlclxuIgorbXNnc3RyICJ1c286IHNmZGlzayAtLXByaW50LWlkIGRpc3Bvc2l0aXZvIG76bWVyby1wYXJ0aWNp825cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MgorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgSWRcbiIKK21zZ3N0ciAidXNvOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGlzcG9zaXRpdm8gbvptZXJvLXBhcnRpY2nzbiBJZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAidXNvOiBzZmRpc2sgLS1pZCBkaXNwb3NpdGl2byBu+m1lcm8tcGFydGljafNuIFtJZF1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY4MQorbXNnaWQgImNhbiBzcGVjaWZ5IG9ubHkgb25lIGRldmljZSAoZXhjZXB0IHdpdGggLWwgb3IgLXMpXG4iCittc2dzdHIgInB1ZWRlIGVzcGVjaWZpY2FyIHPzbG8gdW4gZGlzcG9zaXRpdm8gKHNhbHZvIGNvbiAtbCBvIC1zKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgJXMgcGFyYSBsZWN0dXJhLWVzY3JpdHVyYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyICVzIHBhcmEgbGVjdHVyYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczogQ29ycmVjdG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjc1MyBmZGlzay9zZmRpc2suYzoyNzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3lsaW5kZXJzLCAlbGQgaGVhZHMsICVsZCBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiVzOiAlbGQgY2lsaW5kcm9zLCAlbGQgY2FiZXphcywgJWxkIHNlY3RvcmVzIHBvciBwaXN0YVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgc2l6ZSBvZiAlc1xuIgorbXNnc3RyICJObyBzZSBwdWVkZSBvYnRlbmVyIGVsIHRhbWHxbyBkZSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODg1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBhY3RpdmUgYnl0ZTogMHgleCBpbnN0ZWFkIG9mIDB4ODBcbiIKK21zZ3N0ciAiYnl0ZSBhY3Rpdm8gaW5jb3JyZWN0bzogMHgleCBlbiBsdWdhciBkZSAweDgwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkZpblxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisiVGllbmUgJWQgcGFydGljaW9uZXMgcHJpbWFyaWFzIGFjdGl2YXMuIE5vIHRpZW5lIGltcG9ydGFuY2lhIHBhcmEgTElMTyxcbiIKKyJwZXJvIGVsIE1CUiBkZSBET1Mgc/NsbyBwdWVkZSBpbmljaWFyIGRpc2NvcyBjb24gdW5hIHBhcnRpY2nzbiBhY3RpdmEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGhhcyBpZCAleCBhbmQgaXMgbm90IGhpZGRlblxuIgorbXNnc3RyICJsYSBwYXJ0aWNp824gJXMgdGllbmUgZWwgaWRlbnRpZmljYWRvciAleCB5IG5vIGVzdOEgb2N1bHRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICJJZGVudGlmaWNhZG9yICVseCBpbmNvcnJlY3RvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAiQWN0dWFsbWVudGUgZXN0ZSBkaXNjbyBlc3ThIGVuIHVzby5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAiRXJyb3IgbXV5IGdyYXZlOiBubyBzZSBwdWVkZSBlbmNvbnRyYXIgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiQXRlbmNp8246ICVzIG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGRlIGJsb3F1ZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzMgorbXNnaWQgIkNoZWNraW5nIHRoYXQgbm8tb25lIGlzIHVzaW5nIHRoaXMgZGlzayByaWdodCBub3cgLi4uXG4iCittc2dzdHIgIkNvbXByb2JhbmRvIHF1ZSBuYWRpZSBlc3TpIHV0aWxpemFuZG8gZXN0ZSBkaXNjbyBlbiBlc3RlIG1vbWVudG8uLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisiXG4iCisiRXN0ZSBkaXNjbyBlc3ThIGFjdHVhbG1lbnRlIGVuIHVzbzsgbm8gc2UgYWNvbnNlamEgdm9sdmVyIGEgY3JlYXIgIgorInBhcnRpY2lvbmVzLlxuIgorIkRlc21vbnRlIHRvZG9zIGxvcyBzaXN0ZW1hcyBkZSBmaWNoZXJvcyB5IGRlc2hhZ2EgdG9kYXMgbGFzIHBhcnRpY2lvbmVzIGRlXG4iCisiaW50ZXJjYW1iaW8gZGUgZXN0ZSBkaXNjby4gVXRpbGljZSBlbCBpbmRpY2Fkb3IgLS1uby1yZXJlYWQgcGFyYSBlbGltaW5hciAiCisiZXN0YVxuIgorImNvbXByb2JhY2nzbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzOAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIGFsbCBjaGVja3MuXG4iCittc2dzdHIgIlV0aWxpY2UgZWwgaW5kaWNhZG9yIC0tZm9yY2UgcGFyYSBlbHVkaXIgdG9kYXMgbGFzIGNvbXByb2JhY2lvbmVzLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDQyCittc2dpZCAiT0tcbiIKK21zZ3N0ciAiQ29ycmVjdG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1MQorIywgYy1mb3JtYXQKK21zZ2lkICJPbGQgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJTaXR1YWNp824gYW50ZXJpb3I6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgY2hhbmdlIGl0XG4iCittc2dzdHIgIkxhIHBhcnRpY2nzbiAlZCBubyBleGlzdGU7IG5vIHNlIHB1ZWRlIGNhbWJpYXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJTaXR1YWNp824gbnVldmE6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjgKK21zZ2lkICIiCisiSSBkb24ndCBsaWtlIHRoZXNlIHBhcnRpdGlvbnMgLSBub3RoaW5nIGNoYW5nZWQuXG4iCisiKElmIHlvdSByZWFsbHkgd2FudCB0aGlzLCB1c2UgdGhlIC0tZm9yY2Ugb3B0aW9uLilcbiIKK21zZ3N0ciAiIgorIkVsIHNpc3RlbWEgbm8gZW5jdWVudHJhIGFkZWN1YWRhcyBlc3RhcyBwYXJ0aWNpb25lczsgbm8gc2UgaGEgY2FtYmlhZG8gIgorIm5hZGEuXG4iCisiKFNpIHJlYWxtZW50ZSBkZXNlYSByZWFsaXphciBlc3RhIG9wZXJhY2nzbiwgdXNlIGxhIG9wY2nzbiAtLWZvcmNlLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiIgorIkVsIHNpc3RlbWEgbm8gZW5jdWVudHJhIGFkZWN1YWRhIGVzdGEgb3BlcmFjafNuOyBwcm9iYWJsZW1lbnRlIGRlYmEgIgorInJlc3BvbmRlciBOb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICK/RXN04SBzYXRpc2ZlY2hvIGNvbiBlc3RhIG9wZXJhY2nzbj8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIHlvdSB3YW50IHRvIHdyaXRlIHRoaXMgdG8gZGlzaz8gW3lucV0gIgorbXNnc3RyICK/RGVzZWEgZXNjcmliaXIgZXN0YSBpbmZvcm1hY2nzbiBlbiBlbCBkaXNjbz8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJzZmRpc2s6IHByZW1hdHVyZSBlbmQgb2YgaW5wdXRcbiIKK21zZ3N0ciAiIgorIlxuIgorInNmZGlzazogZmluYWwgZGUgZW50cmFkYSBhbnRlcyBkZSBsbyBwcmV2aXN0b1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiU2UgZXN04SBzYWxpZW5kbzsgbm8gc2UgaGEgY2FtYmlhZG8gbmFkYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBsZWFzZSBhbnN3ZXIgb25lIG9mIHksbixxXG4iCittc2dzdHIgIlJlc3BvbmRhIGNvbiB1bmEgZGUgbGFzIGVudHJhZGFzIHNpZ3VpZW50ZXM6IHksbixxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisiTGEgbnVldmEgdGFibGEgZGUgcGFydGljaW9uZXMgc2UgaGEgZXNjcml0byBjb3JyZWN0YW1lbnRlXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorIlNpIGhhIGNyZWFkbyBvIG1vZGlmaWNhZG8gdW5hIHBhcnRpY2nzbiBET1MsIGNvbW8gL2Rldi9mb283LCB1dGlsaWNlIGRkKDEpXG4iCisicGFyYSBwb25lciBhIGNlcm8gbG9zIDUxMiBwcmltZXJvcyBieXRlczogZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyAiCisiYnM9NTEyIGNvdW50PTFcbiIKKyIoVulhc2UgZmRpc2soOCkuKVxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBhYnJpciAlczogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGJhZCBmb3JtYXQgb24gbGluZSAlZCBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjM1MgorbXNnaWQgIiIKKyJXQVJOSU5HOiBZb3VyIC9ldGMvZnN0YWIgZG9lcyBub3QgY29udGFpbiB0aGUgZnNjayBwYXNzbm9cbiIKKyJcdGZpZWxkLiAgSSB3aWxsIGtsdWRnZSBhcm91bmQgdGhpbmdzIGZvciB5b3UsIGJ1dCB5b3VcbiIKKyJcdHNob3VsZCBmaXggeW91ciAvZXRjL2ZzdGFiIGZpbGUgYXMgc29vbiBhcyB5b3UgY2FuLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjQ2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZnNjazogJXM6IG5vdCBmb3VuZFxuIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBubyBzZSBoYSBlbmNvbnRyYWRvIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlczogc3RhdHVzIGlzICV4LCBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjY0MworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCB3aXRoICVzIChleGl0IHN0YXR1cyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiJXM6IKFlcnJvciAlZCBhbCBkZXNjb21wcmltaXIhICVwKCVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKKyMsIGZ1enp5Cittc2dpZCAiQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBmaWxlc3lzdGVtIHR5cGVzXG4iCittc2dzdHIgIm1vdW50OiBkZWJlIGVzcGVjaWZpY2FyIGVsIHRpcG8gZGUgc2lzdGVtYSBkZSBmaWNoZXJvcyIKKworIzogZnNjay9mc2NrLmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc2tpcHBpbmcgYmFkIGxpbmUgaW4gL2V0Yy9mc3RhYjogYmluZCBtb3VudCB3aXRoIG5vbnplcm8gZnNjayBwYXNzICIKKyJudW1iZXJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo4OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyBub25leGlzdGVudCBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6ICVzIG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGxwLlxuIgorCisjOiBmc2NrL2ZzY2suYzo5MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogY2Fubm90IGNoZWNrICVzOiBmc2NrLiVzIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjk3NAorIywgZnV6enkKK21zZ2lkICJDaGVja2luZyBhbGwgZmlsZSBzeXN0ZW1zLlxuIgorbXNnc3RyICJGb3J6YW5kbyBjb21wcm9iYWNp824gZGVsIHNpc3RlbWEgZGUgZmljaGVyb3MgZW4gJXMuXG4iCisKKyM6IGZzY2svZnNjay5jOjEwNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS13YWl0aW5nLS0gKHBhc3MgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTA4NQorIywgZnV6enkKK21zZ2lkICIiCisiVXNhZ2U6IGZzY2sgWy1BTU5QUlRWXSBbIC1DIFsgZmQgXSBdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBbZmlsZXN5cyAuLi5dXG4iCittc2dzdHIgIlVzbzogbWtmcyBbLVZdIFstdCB0aXBvX3NmXSBbb3BjaW9uZXNfc2ZdIGRpc3Bvc2l0aXZvIFt0YW1h8W9dXG4iCisKKyM6IGZzY2svZnNjay5jOjExMjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzOiAlcyBubyBlcyB1biBkaXNwb3NpdGl2byBscC5cbiIKKworIzogZnNjay9mc2NrLmM6MTEzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklzIC9wcm9jIG1vdW50ZWQ/XG4iCittc2dzdHIgIlNlIGhhIGVqZWN1dGFkbyB1bW91bnQgZW4gJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIHJvb3QgdG8gc2NhbiBmb3IgbWF0Y2hpbmcgZmlsZXN5c3RlbXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTE0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgZmluZCBtYXRjaGluZyBmaWxlc3lzdGVtOiAlc1xuIgorbXNnc3RyICJEZXNtb250YW5kbyBsb3Mgc2lzdGVtYXMgZGUgZmljaGVyb3MgcmVzdGFudGVzLi4uIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBhcmd1bWVudHNcbiIKK21zZ3N0ciAiJXM6IGFyZ3VtZW50byBkZXNjb25vY2lkbzogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTI3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZnNjayBmcm9tICVzXG4iCittc2dzdHIgIiVzIGRlICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYXNpZ25hciBi+mZlciBwYXJhIGxvcyBub2Rvcy1pIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MjI5Cittc2dpZCAiVHJ5IGBnZXRvcHQgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiRXNjcmliYSBgZ2V0b3B0IC0taGVscCcgcGFyYSBvYnRlbmVyIG3hcyBpbmZvcm1hY2nzbi5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAiT3BjafNuIGxhcmdhIHZhY+1hIHRyYXMgYXJndW1lbnRvIC1sIG8gLS1sb25nIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzE1Cittc2dpZCAidW5rbm93biBzaGVsbCBhZnRlciAtcyBvciAtLXNoZWxsIGFyZ3VtZW50IgorbXNnc3RyICJTaGVsbCBkZXNjb25vY2lkbyB0cmFzIGFyZ3VtZW50byAtcyBvIC0tc2hlbGwiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjAKK21zZ2lkICJVc2FnZTogZ2V0b3B0IG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIlVzbzogZ2V0b3B0IGNhZGVuYW9wY2lvbmVzIHBhcuFtZXRyb3NcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMQorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIFstLV0gb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbb3BjaW9uZXNdIFstLV0gY2FkZW5hb3BjaW9uZXMgcGFy4W1ldHJvc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIyCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B0aW9uc10gWy0tXVxuIgorbXNnc3RyICIgICAgICAgZ2V0b3B0IFtvcGNpb25lc10gLW98LS1vcHRpb25zIGNhZGVuYW9wY2lvbmVzIFtvcGNpb25lc10gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAgcGFy4W1ldHJvc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI0Cittc2dpZCAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBBbGxvdyBsb25nIG9wdGlvbnMgc3RhcnRpbmcgd2l0aCBzaW5nbGUgLVxuIgorbXNnc3RyICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIFBlcm1pdGUgb3BjaW9uZXMgbGFyZ2FzIGNvbiB1biBzb2xvIC0gIgorImluaWNpYWxcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNQorbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBUaGlzIHNtYWxsIHVzYWdlIGd1aWRlXG4iCittc2dzdHIgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBFc3RhIHBlcXVl8WEgZ3XtYSBkZSB1c29cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNgorbXNnaWQgIiAgLWwsIC0tbG9uZ29wdGlvbnM9bG9uZ29wdHMgICBMb25nIG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1sLCAtLWxvbmdvcHRpb25zPW9wY2xhcmdhcyAgT3BjaW9uZXMgbGFyZ2FzIHBhcmEgcmVjb25vY2VyXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjcKK21zZ2lkICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1lIHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIKK21zZ3N0ciAiIgorIiAgLW4sIC0tbmFtZT1ub21icmVwcm9ncmFtYSAgICBFbCBub21icmUgY29uIGVsIHF1ZSBzZSBpbmZvcm1hIGRlIGxvcyAiCisiZXJyb3Jlc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI4Cittc2dpZCAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIFNob3J0IG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1vLCAtLW9wdGlvbnM9Y2FkZW5hb3BjaW9uZXMgT3BjaW9uZXMgY29ydGFzIHF1ZSBzZSByZWNvbm9jZW5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOQorbXNnaWQgIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBEaXNhYmxlIGVycm9yIHJlcG9ydGluZyBieSBnZXRvcHQoMylcbiIKK21zZ3N0ciAiIgorIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBEZXNhY3RpdmEgaW5mb3JtYWNp824gZGUgZXJyb3JlcyBtZWRpYW50ZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRvcHQoMylcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMAorbXNnaWQgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBub3JtYWwgb3V0cHV0XG4iCittc2dzdHIgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBoYXkgc2FsaWRhIG5vcm1hbFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMxCittc2dpZCAiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVsbCBxdW90aW5nIGNvbnZlbnRpb25zXG4iCittc2dzdHIgIiIKKyIgIC1zLCAtLXNoZWxsPWludOlycHIu83JkZW5lcyAgRGVmaW5lIGxhcyBjb252ZW5jaW9uZXMgZGUgY2l0YSBkZWwgIgorImludOlycHJldGVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMgorbXNnaWQgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUZXN0IGZvciBnZXRvcHQoMSkgdmVyc2lvblxuIgorbXNnc3RyICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgUHJ1ZWJhIHBhcmEgbGEgdmVyc2nzbiBkZSBnZXRvcHQoMSlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMworbXNnaWQgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUgdGhlIG91dHB1dFxuIgorbXNnc3RyICIgIC11LCAtLXVucXVvdGUgICAgICAgICAgICAgICAgTm8gZW50cmVjb21pbGxhIGVsIHJlc3VsdGFkb1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzM0Cittc2dpZCAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCittc2dzdHIgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBNdWVzdHJhIGluZm9ybWFjafNuIGRlIHZlcnNp825cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjM4OCBnZXRvcHQvZ2V0b3B0LmM6NDQ3Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgIkZhbHRhIGVsIGFyZ3VtZW50byBjYWRlbmFvcGNpb25lcyIKKworIyBGSVhNRTogv1F16SBoYWNlIHVuIG76bWVybyBkZSB2ZXJzafNuIGVuIHVuYSBjYWRlbmEgcGFyYSBzZXIgdHJhZHVjaWRhPworIzogZ2V0b3B0L2dldG9wdC5jOjQzNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChtZWpvcmFkbykgMS4xLjNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICJFcnJvciBpbnRlcm5vOyBjb250YWN0ZSBjb24gZWwgZGVzYXJyb2xsYWRvci4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZWQgZnJvbSBNSUxPXG4iCittc2dzdHIgImluaWNpYWRvIGRlc2RlIE1JTE9cbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIlJlbG9qIEJDRCBSdWZmaWFuXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICJwdWVydG8gZGUgcmVsb2ogYWp1c3RhZG8gYSAweCV4XG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJmdW5reSBUT1khXG4iCittc2dzdHIgImZ1bmt5IFRPWSFcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhdG9taWMgJXMgZmFpbGVkIGZvciAxMDAwIGl0ZXJhdGlvbnMhIgorbXNnc3RyICIlczogJXMgYXTzbWljbyBoYSBmYWxsYWRvIHBhcmEgMTAwMCBpdGVyYWNpb25lcy4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHJlYWQgZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyIC9kZXYvcG9ydDogJXMiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAiTm8gc2UgaGEgcG9kaWRvIG9idGVuZXIgcGVybWlzbyBwb3JxdWUgbm8gc2UgaGEgaW50ZW50YWRvLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiIgorIiVzIG5vIHB1ZWRlIG9idGVuZXIgYWNjZXNvIGFsIHB1ZXJ0byBkZSBFL1M6IGxhIGxsYW1hZGEgaW9wbCgzKSBoYSBmYWxsYWRvLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICJQcm9iYWJsZW1lbnRlIHNvbiBuZWNlc2FyaW9zIGxvcyBwcml2aWxlZ2lvcyBkZSB1c3VhcmlvIHJvb3QuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluICVzIHRpbWUuXG4iCittc2dzdHIgIlNlIHByZXN1cG9uZSBxdWUgZWwgcmVsb2ogZGUgaGFyZHdhcmUgdGllbmUgbGEgaG9yYSAlcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgIlVUQyIKK21zZ3N0ciAiVVRDIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI1Cittc2dpZCAibG9jYWwiCittc2dzdHIgImxvY2FsIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIlczogYXRlbmNp8246IHRlcmNlcmEgbO1uZWEgbm8gcmVjb25vY2lkYSBlbiBlbCBmaWNoZXJvIGFkanRpbWVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIihFeHBlY3RlZDogYFVUQycgb3IgYExPQ0FMJyBvciBub3RoaW5nLilcbiIKK21zZ3N0ciAiKFNlIGVzcGVyYWJhOiBgVVRDJywgYExPQ0FMJyBvIG5hZGEuKVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBkcmlmdCBhZGp1c3RtZW50IGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICLabHRpbW8gYWp1c3RlIGRlIGRlc2Zhc2UgcmVhbGl6YWRvICVsZCBzZWd1bmRvcyBkZXNwdelzIGRlIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgY2FsaWJyYXRpb24gZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgItpsdGltYSBjYWxpYnJhY2nzbiByZWFsaXphZGEgJWxkIHNlZ3VuZG9zIGRlc3B16XMgZGUgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICJFbCByZWxvaiBkZSBoYXJkd2FyZSB0aWVuZSBsYSBob3JhICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgImRlc2Nvbm9jaWRvIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBmb3IgY2xvY2sgdGljay4uLlxuIgorbXNnc3RyICJFc3BlcmFuZG8gc2XxYWwgZGUgcmVsb2ouLi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiLi4ucmVjaWJpZGEgc2XxYWwgZGUgcmVsb2pcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIlZhbG9yZXMgaW524WxpZG9zIGVuIHJlbG9qIGRlIGhhcmR3YXJlOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQyMAorIywgYy1mb3JtYXQKK21zZ2lkICJIdyBjbG9jayB0aW1lIDogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiIgorIkhvcmEgZGVsIHJlbG9qIGRlIGhhcmR3YXJlOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlZ3VuZG9zICIKKyJkZXNkZSAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHJlYWQgZnJvbSBIYXJkd2FyZSBDbG9jazogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorbXNnc3RyICJIb3JhIGxl7WRhIGRlbCByZWxvaiBkZSBoYXJkd2FyZTogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyBIYXJkd2FyZSBDbG9jayB0byAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiIgorIkVzdGFibGVjaWVuZG8gcmVsb2ogZGUgaGFyZHdhcmUgZW4gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2VndW5kb3MgZGVzZGUgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIkVsIHJlbG9qIG5vIHNlIGhhIG1vZGlmaWNhZG87IHPzbG8gc2UgZXN04SBwcm9iYW5kby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIkVsIHRpZW1wbyB0cmFuc2N1cnJpZG8gZGVzZGUgbGEgaG9yYSBkZSByZWZlcmVuY2lhIGVzIGRlICUuNmYgc2VndW5kb3MuXG4iCisiQXVtZW50YW5kbyBlbCByZXRhcmRvIGhhc3RhIGVsIHNpZ3VpZW50ZSBzZWd1bmRvIGNvbXBsZXRvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIkxvcyByZWdpc3Ryb3MgZGVsIHJlbG9qIGRlIGhhcmR3YXJlIGNvbnRpZW5lbiB2YWxvcmVzIHF1ZSBubyBzb24gduFsaWRvc1xuIgorIihwb3IgZWplbXBsbywgZO1hIDUwIGRlbCBtZXMpIG8gZXhjZWRlbiBlbCByYW5nbyBxdWUgcHVlZGUgdXRpbGl6YXJzZVxuIgorIihwb3IgZWplbXBsbywgZWwgYfFvIDIwOTUpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIlcyAgJS42ZiBzZWd1bmRvc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gLS1kYXRlIG9wdGlvbiBzcGVjaWZpZWQuXG4iCittc2dzdHIgIk5vIHNlIGhhIGVzcGVjaWZpY2FkbyBsYSBvcGNp824gLS1kYXRlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1kYXRlIGFyZ3VtZW50IHRvbyBsb25nXG4iCittc2dzdHIgImFyZ3VtZW50byAtLWRhdGUgZGVtYXNpYWRvIGxhcmdvXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisiRWwgdmFsb3IgZGUgbGEgb3BjafNuIC0tZGF0ZSBubyBlcyB1bmEgZmVjaGEgduFsaWRhLlxuIgorIkVuIGNvbmNyZXRvLCBjb250aWVuZSBjb21pbGxhcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIklzc3VpbmcgZGF0ZSBjb21tYW5kOiAlc1xuIgorbXNnc3RyICJFamVjdXRhbmRvIG9yZGVuIGRhdGU6ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0MAorbXNnaWQgIlVuYWJsZSB0byBydW4gJ2RhdGUnIHByb2dyYW0gaW4gL2Jpbi9zaCBzaGVsbC4gcG9wZW4oKSBmYWlsZWQiCittc2dzdHIgIiIKKyJObyBzZSBwdWVkZSBlamVjdXRhciBlbCBwcm9ncmFtYSAnZGF0ZScgZW4gaW506XJwcmV0ZSBkZSDzcmRlbmVzIC9iaW4vc2guICIKKyJwb3BlbigpIGhhIGZhbGxhZG8iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgInJlc3B1ZXN0YSBkZSBsYSBvcmRlbiBkYXRlID0gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdHMuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAgJXNcbiIKK21zZ3N0ciAiIgorIkxhIG9yZGVuIGRhdGUgZWplY3V0YWRhIHBvciAlcyBoYSBkZXZ1ZWx0byByZXN1bHRhZG9zIGluZXNwZXJhZG9zLlxuIgorIkxhIG9yZGVuIGZ1ZTpcbiIKKyIlc1xuIgorIkxhIHJlc3B1ZXN0YSBmdWU6XG4iCisiJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIkxhIG9yZGVuIGRhdGUgZW1pdGlkbyBwb3IgJXMgaGEgZGV2dWVsdG8gdW4gdmFsb3Igbm8gZW50ZXJvIGN1YW5kbyBzZSAiCisiZXNwZXJhYmEgZWwgdmFsb3IgZGUgaG9yYSBjb252ZXJ0aWRhLlxuIgorIkxhIG9yZGVuIGZ1ZTpcbiIKKyIgICVzXG4iCisiTGEgcmVzcHVlc3RhIGZ1ZTpcbiIKKyIgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgImRhdGUgc3RyaW5nICVzIGVxdWF0ZXMgdG8gJWxkIHNlY29uZHMgc2luY2UgMTk2OS5cbiIKK21zZ3N0ciAiTGEgY2FkZW5hIGRlIGZlY2hhICVzIGVxdWl2YWxlIGEgJWxkIHNlZ3VuZG9zIGRlc2RlIDE5NjkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorIkVsIHJlbG9qIGRlIGhhcmR3YXJlIG5vIGNvbnRpZW5lIHVuYSBob3JhIHbhbGlkYSwgcG9yIGxvIHF1ZSBubyBzZSBwdWVkZSAiCisiZXN0YWJsZWNlciBsYSBob3JhIGRlbCBzaXN0ZW1hIGEgcGFydGlyIGRlIGVzZSB2YWxvci5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI3IGh3Y2xvY2svaHdjbG9jay5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIHNldHRpbWVvZmRheTpcbiIKK21zZ3N0ciAiU2UgZXN04SBsbGFtYW5kbyBzZXR0aW1lb2ZkYXk6XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyOCBod2Nsb2NrL2h3Y2xvY2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKK21zZ3N0ciAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMwIGh3Y2xvY2svaHdjbG9jay5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKK21zZ3N0ciAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMyBod2Nsb2NrL2h3Y2xvY2suYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgc3lzdGVtIGNsb2NrIGJlY2F1c2UgcnVubmluZyBpbiB0ZXN0IG1vZGUuXG4iCittc2dzdHIgIiIKKyJObyBzZSBlc3RhYmxlY2UgZWwgcmVsb2ogZGVsIHNpc3RlbWEgeWEgcXVlIGxhIGVqZWN1Y2nzbiBlcyBlbiBtb2RvIGRlICIKKyJwcnVlYmEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0MiBod2Nsb2NrL2h3Y2xvY2suYzo4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSBzdXBlcnVzZXIgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiRGViZSBzZXIgc3VwZXJ1c3VhcmlvIHBhcmEgZXN0YWJsZWNlciBlbCByZWxvaiBkZWwgc2lzdGVtYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQ1IGh3Y2xvY2svaHdjbG9jay5jOjgyMworbXNnaWQgInNldHRpbWVvZmRheSgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dGltZW9mZGF5KCkgaGEgZmFsbGFkbyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkN1cnJlbnQgc3lzdGVtIHRpbWU6ICVsZCA9ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0VVRDOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSB0aGUgSGFyZHdhcmUgQ2xvY2sgcHJldmlvdXNseSBjb250YWluZWQgIgorImdhcmJhZ2UuXG4iCittc2dzdHIgIiIKKyJObyBzZSBhanVzdGEgZWwgZmFjdG9yIGRlIGRlc2Zhc2UgZGViaWRvIGEgcXVlIGVsIHJlbG9qIGRlIGhhcmR3YXJlXG4iCisiY29udGVu7WEgYW50ZXJpb3JtZW50ZSBkYXRvcyBleHRyYfFvcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGxhc3QgY2FsaWJyYXRpb24gdGltZSBpcyB6ZXJvLFxuIgorInNvIGhpc3RvcnkgaXMgYmFkIGFuZCBjYWxpYnJhdGlvbiBzdGFydG92ZXIgaXMgbmVjZXNzYXJ5LlxuIgorbXNnc3RyICIiCisiTm8gc2UgYWp1c3RhIGVsIGZhY3RvciBkZSBkZXNmYXNlIGRlYmlkbyBhIHF1ZSBsYSBmZWNoYSBkZSD6bHRpbWFcbiIKKyJjYWxpYnJhY2nzbiBlcyBjZXJvLCBhc+0gcXVlIGVsIGhpc3RvcmlhbCBlcyBlcnLzbmVvIHkgZXMgbmVjZXNhcmlhIHVuYVxuIgorImNhbGlicmFjafNuIGRlc2RlIGVsIHByaW5jaXBpby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGl0IGhhcyBiZWVuIGxlc3MgdGhhbiBhIGRheSBzaW5jZSB0aGUgIgorImxhc3QgY2FsaWJyYXRpb24uXG4iCittc2dzdHIgIiIKKyJObyBzZSBhanVzdGEgZWwgZmFjdG9yIGRlIGRlc2Zhc2UgZGViaWRvIGEgcXVlIGhhY2UgbWVub3MgZGUgdW4gZO1hIHF1ZSBzZVxuIgorInJlYWxpevMgbGEg+mx0aW1hIGNhbGlicmFjafNuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNsb2NrIGRyaWZ0ZWQgJS4xZiBzZWNvbmRzIGluIHRoZSBwYXN0ICVkIHNlY29uZHMgaW4gc3BpdGUgb2YgYSBkcmlmdCBmYWN0b3IgIgorIm9mICVmIHNlY29uZHMvZGF5LlxuIgorIkFkanVzdGluZyBkcmlmdCBmYWN0b3IgYnkgJWYgc2Vjb25kcy9kYXlcbiIKK21zZ3N0ciAiIgorIkVsIHJlbG9qIHNlIGhhIGRlc2Zhc2FkbyAlLjFmIHNlZ3VuZG9zIGVuIGxvcyD6bHRpbW9zICVkIHNlZ3VuZG9zIGEgcGVzYXIgIgorImRlXG4iCisidXRpbGl6YXIgdW4gZmFjdG9yIGRlIGRlc2Zhc2UgZGUgJWYgc2VndW5kb3MgcG9yIGTtYS4gU2UgYWp1c3RhIGVsIGZhY3RvciAiCisiZGVcbiIKKyJkZXNmYXNlIGVuICVmIHNlZ3VuZG9zIHBvciBk7WFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiRWwgdGllbXBvIHRyYW5zY3VycmlkbyBkZXNkZSBlbCD6bHRpbW8gYWp1c3RlIGVzIGRlICVkIHNlZ3VuZG9zXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkIHRvIGluc2VydCAlZCBzZWNvbmRzIGFuZCByZWZlciB0aW1lIGJhY2sgJS42ZiBzZWNvbmRzIGFnb1xuIgorbXNnc3RyICIiCisiRXMgcHJlY2lzbyBpbnNlcnRhciAlZCBzZWd1bmRvcyB5IGVzdGFibGVjZXIgY29tbyByZWZlcmVuY2lhIGxhIGhvcmEgJS42ZiAiCisic2VndW5kb3MgaGFjaWEgYXRy4XNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIk5vIHNlIGVzdOEgYWN0dWFsaXphbmRvIGVsIGZpY2hlcm8gYWRqdGltZSBkZWJpZG8gYWwgbW9kbyBkZSBwcnVlYmEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV291bGQgaGF2ZSB3cml0dGVuIHRoZSBmb2xsb3dpbmcgdG8gJXM6XG4iCisiJXMiCittc2dzdHIgIiIKKyJTZSBoYWJy7WEgZXNjcml0byBsbyBzaWd1aWVudGUgZW4gJXM6XG4iCisiJXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAxNworIywgYy1mb3JtYXQKK21zZ2lkICJEcmlmdCBhZGp1c3RtZW50IHBhcmFtZXRlcnMgbm90IHVwZGF0ZWQuXG4iCittc2dzdHIgIlBhcuFtZXRyb3MgZGUgYWp1c3RlIGRlbCBkZXNmYXNlIG5vIGFjdHVhbGl6YWRvcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICIiCisiRWwgcmVsb2ogZGUgaGFyZHdhcmUgbm8gY29udGllbmUgdW5hIGhvcmEgduFsaWRhLCBwb3IgbG8gcXVlIG5vIHNlIHB1ZWRlICIKKyJhanVzdGFyLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKyJObyBzZSBhanVzdGEgZWwgZmFjdG9yIGRlIGRlc2Zhc2UgZGViaWRvIGEgcXVlIGxhIGZlY2hhIGRlIPpsdGltYVxuIgorImNhbGlicmFjafNuIGVzIGNlcm8sIGFz7SBxdWUgZWwgaGlzdG9yaWFsIGVzIGVycvNuZW8geSBlcyBuZWNlc2FyaWEgdW5hXG4iCisiY2FsaWJyYWNp824gZGVzZGUgZWwgcHJpbmNpcGlvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWRlZCBhZGp1c3RtZW50IGlzIGxlc3MgdGhhbiBvbmUgc2Vjb25kLCBzbyBub3Qgc2V0dGluZyBjbG9jay5cbiIKK21zZ3N0ciAiIgorIkVsIGFqdXN0ZSBuZWNlc2FyaW8gZXMgaW5mZXJpb3IgYSB1biBzZWd1bmRvLCBwb3IgbG8gcXVlIG5vIHNlIGVzdGFibGVjZSBlbCAiCisicmVsb2ouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgIlV0aWxpemFuZG8gJXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIGNsb2NrIGludGVyZmFjZSBmb3VuZC5cbiIKK21zZ3N0ciAiTm8gc2UgaGEgZW5jb250cmFkbyBuaW5ndW5hIGludGVyZmF6IGRlIHJlbG9qIHV0aWxpemFibGUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyMjEgaHdjbG9jay9od2Nsb2NrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZXN0YWJsZWNlciBlbCByZWxvaiBkZWwgc2lzdGVtYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBrZWVwcyBhbiBlcG9jaCB2YWx1ZSBmb3IgdGhlIEhhcmR3YXJlIENsb2NrIG9ubHkgb24gYW4gQWxwaGEgIgorIm1hY2hpbmUuXG4iCisiVGhpcyBjb3B5IG9mIGh3Y2xvY2sgd2FzIGJ1aWx0IGZvciBhIG1hY2hpbmUgb3RoZXIgdGhhbiBBbHBoYVxuIgorIihhbmQgdGh1cyBpcyBwcmVzdW1hYmx5IG5vdCBydW5uaW5nIG9uIGFuIEFscGhhIG5vdykuICBObyBhY3Rpb24gdGFrZW4uXG4iCittc2dzdHIgIiIKKyJFbCBu+mNsZW8gdGllbmUgdW4gdmFsb3IgZGUg6XBvY2EgcGFyYSBlbCByZWxvaiBkZSBoYXJkd2FyZSBz82xvIGVuIGxhc1xuIgorIm3hcXVpbmFzIEFscGhhLiBFc3RhIGNvcGlhIGRlIGh3Y2xvY2sgc2UgY29tcGls8yBwYXJhIHVuYSBt4XF1aW5hIHF1ZSBubyBlc1xuIgorIkFscGhhIChwb3IgbG8gcXVlIHBvc2libGVtZW50ZSBubyBzZSBlc3ThIGVqZWN1dGFuZG8gZW4gdW5hIG3hcXVpbmEgQWxwaGEpLlxuIgorIk5vIHNlIGVmZWN0+mEgbmluZ3VuYSBhY2Np824uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGdldCB0aGUgZXBvY2ggdmFsdWUgZnJvbSB0aGUga2VybmVsLlxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBvYnRlbmVyIGVsIHZhbG9yIGRlIOlwb2NhIGRlbCBu+mNsZW8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2VybmVsIGlzIGFzc3VtaW5nIGFuIGVwb2NoIHZhbHVlIG9mICVsdVxuIgorbXNnc3RyICJFbCBu+mNsZW8gcHJlc3Vwb25lIGVsIHZhbG9yIGRlIOlwb2NhICVsdVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBzZXQgdGhlIGVwb2NoIHZhbHVlLCB5b3UgbXVzdCB1c2UgdGhlICdlcG9jaCcgb3B0aW9uIHRvIHRlbGwgdG8gd2hhdCAiCisidmFsdWUgdG8gc2V0IGl0LlxuIgorbXNnc3RyICIiCisiUGFyYSBlc3RhYmxlY2VyIGVsIHZhbG9yIGRlIOlwb2NhLCBkZWJlIHV0aWxpemFyIGxhIG9wY2nzbiAnZXBvY2gnIHBhcmEgIgorImluZGljYXIgZW4gcXXpIHZhbG9yIGRlYmUgZGVmaW5pcnNlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHRoZSBlcG9jaCB0byAlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiIgorIk5vIHNlIGVzdOEgZXN0YWJsZWNpZW5kbyBlbCB2YWxvciBkZSDpcG9jYSBlbiAlZDsgc/NsbyBzZSBlc3ThIHByb2JhbmRvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGVzdGFibGVjZXIgZWwgdmFsb3IgZGUg6XBvY2EgZW4gZWwgbvpjbGVvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjkwIG1pc2MtdXRpbHMvY2FsLmM6MzQ3IG1pc2MtdXRpbHMva2lsbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiVzIGRlICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorImh3Y2xvY2sgLSBDb25zdWx0YSB5IGVzdGFibGVjZSBlbCByZWxvaiBkZSBoYXJkd2FyZSAoUlRDKVxuIgorIlxuIgorIlVzbzogaHdjbG9jayBbZnVuY2nzbl0gW29wY2lvbmVzLi4uXVxuIgorIlxuIgorIkZ1bmNpb25lczpcbiIKKyIgIC0taGVscCAgICAgICAgTXVlc3RyYSBlc3RhIGF5dWRhXG4iCisiICAtLXNob3cgICAgICAgIExlZSBlbCByZWxvaiBkZSBoYXJkd2FyZSBlIGltcHJpbWUgZWwgcmVzdWx0YWRvXG4iCisiICAtLXNldCAgICAgICAgIEVzdGFibGVjZSBlbCBSVEMgZW4gbGEgaG9yYSBwcm9wb3JjaW9uYWRhIGNvbiAtLWRhdGVcbiIKKyIgIC0taGN0b3N5cyAgICAgRXN0YWJsZWNlIGxhIGhvcmEgZGVsIHNpc3RlbWEgYSBwYXJ0aXIgZGVsIHJlbG9qIGRlICIKKyJoYXJkd2FyZVxuIgorIiAgLS1zeXN0b2hjICAgICBFc3RhYmxlY2UgZWwgcmVsb2ogZGUgaGFyZHdhcmUgZW4gbGEgaG9yYSBhY3R1YWwgZGVsICIKKyJzaXN0ZW1hXG4iCisiICAtLWFkanVzdCAgICAgIEFqdXN0YSBlbCBSVEMgcGFyYSBjb21wZW5zYXIgZWwgZGVzZmFzZSBzaXN0ZW3hdGljbyBkZXNkZSBcbiIKKyIgICAgICAgICAgICAgICAgbGEg+mx0aW1hIHZleiBxdWUgc2UgZXN0YWJsZWNp8yBvIGFqdXN08yBlbCByZWxvalxuIgorIiAgLS1nZXRlcG9jaCAgICBJbXByaW1lIGVsIHZhbG9yIGRlIOlwb2NhIGRlbCByZWxvaiBkZSBoYXJkd2FyZSBkZWwgbvpjbGVvXG4iCisiICAtLXNldGVwb2NoICAgIEVzdGFibGVjZSBlbCB2YWxvciBkZSDpcG9jYSBkZWwgcmVsb2ogZGUgaGFyZHdhcmUgZGVsICIKKyJu+mNsZW8gXG4iCisiICAgICAgICAgICAgICAgIGVuIGVsIHZhbG9yIHByb3BvcmNpb25hZG8gZW4gLS1lcG9jaFxuIgorIiAgLS12ZXJzaW9uICAgICBJbXByaW1lIGxhIHZlcnNp824gZGUgaHdjbG9jayBlbiBsYSBzYWxpZGEgZXN04W5kYXJcbiIKKyJcbiIKKyJPcGNpb25lczogXG4iCisiICAtLXV0YyAgICAgICAgIEVsIHJlbG9qIGRlIGhhcmR3YXJlIGVzdOEgZW4gVGllbXBvIFVuaXZlcnNhbCBDb29yZGluYWRvICIKKyIoVVRDKVxuIgorIiAgLS1sb2NhbHRpbWUgICBFbCByZWxvaiBkZSBoYXJkd2FyZSB0aWVuZSBsYSBob3JhIGxvY2FsXG4iCisiICAtLWRpcmVjdGlzYSAgIEFjY2VkZSBhbCBidXMgSVNBIGRpcmVjdGFtZW50ZSBlbiBsdWdhciBkZSBhICVzXG4iCisiICAtLWJhZHllYXIgICAgIEhhY2UgY2FzbyBvbWlzbyBkZWwgYfFvIGRlbCBSVEMgeWEgcXVlIGVsIEJJT1Mgbm8gZnVuY2lvbmFcbiIKKyIgIC0tZGF0ZSAgICAgICAgRXNwZWNpZmljYSBsYSBmZWNoYS9ob3JhIGVuIHF1ZSBzZSBkZXNlYSBlc3RhYmxlY2VyIGVsICIKKyJyZWxvalxuIgorIiAgICAgICAgICAgICAgICBkZSBoYXJkd2FyZVxuIgorIiAgLS1lcG9jaD1h8W8gICBFc3BlY2lmaWNhIGVsIGHxbyBxdWUgY29ycmVzcG9uZGUgYWwgcHJpbmNpcGlvIGRlbCB2YWxvciBkZVxuIgorIiAgICAgICAgICAgICAgICDpcG9jYSBkZWwgcmVsb2ogZGUgaGFyZHdhcmVcbiIKKyIgIC0tbm9hZGpmaWxlICAgTm8gYWNjZWRlIGEgL2V0Yy9hZGp0aW1lLiBOZWNlc2l0YSBkZWwgdXNvIGRlIC0tdXRjXG4iCisiICAgICAgICAgICAgICAgIG8gZGUgLS1sb2NhbHRpbWVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLUp8LS1qZW5zZW4sIC1BfC0tYXJjLCAtU3wtLXNybSwgLUZ8LS1mdW5reS10b3lcbiIKKyIgICAgICAgdGVsbCBod2Nsb2NrIHRoZSB0eXBlIG9mIGFscGhhIHlvdSBoYXZlIChzZWUgaHdjbG9jayg4KSlcbiIKKyJcbiIKK21zZ3N0ciAiIgorIiAgLS1qZW5zZW4sIC0tYXJjLCAtLXNybSwgLS1mdW5reS10b3lcbiIKKyIgICAgICAgICAgICAgICAgSW5kaWNhIGFsIHJlbG9qIGRlIGhhcmR3YXJlIGVsIHRpcG8gZGUgQWxwaGEgKHZlciBod2Nsb2NrIgorIig4KSlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTQzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBlc3RhYmxlY2VyIGVsIHJlbG9qIGRlbCBzaXN0ZW1hLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHRha2VzIG5vIG5vbi1vcHRpb24gYXJndW1lbnRzLiAgWW91IHN1cHBsaWVkICVkLlxuIgorbXNnc3RyICIlcyBubyBhZG1pdGUgYXJndW1lbnRvcyBxdWUgbm8gc2VhbiBvcGNpb25lcy4gSGEgZXNwZWNpZmljYWRvICVkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyJIYSBlc3BlY2lmaWNhZG8gdmFyaWFzIGZ1bmNpb25lcy5cbiIKKyJT82xvIHB1ZWRlIGxsZXZhciBhIGNhYm8gdW5hIGZ1bmNp824gYSBsYSB2ZXouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS11dGMgYW5kIC0tbG9jYWx0aW1lIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSBzcGVjaWZpZWQgIgorImJvdGguXG4iCittc2dzdHIgIiIKKyIlczogbGFzIG9wY2lvbmVzIC0tdXRjIHkgLS1sb2NhbHRpbWUgc2UgZXhjbHV5ZW4gbXV0dWFtZW50ZS4gSGEgZXNwZWNpZmljYWRvICIKKyJhbWJhcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU3MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkanVzdCBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBsYXMgb3BjaW9uZXMgLS1hZGp1c3QgeSAtLW5vYWRqZmlsZSBzZSBleGNsdXllbiBtdXR1YW1lbnRlLiBIYSAiCisiZXNwZWNpZmljYWRvIGFtYmFzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogbGFzIG9wY2lvbmVzIC0tYWRqdXN0IHkgLS1ub2FkamZpbGUgc2UgZXhjbHV5ZW4gbXV0dWFtZW50ZS4gSGEgIgorImVzcGVjaWZpY2FkbyBhbWJhcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU4OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2l0aCAtLW5vYWRqZmlsZSwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKK21zZ3N0ciAiIgorIiVzOiBDb24gLS1ub2FkamZpbGUsIGRlYmUgZXNwZWNpZmljYXJzZSBvIGJpZW4gLS11dGMgbyBiaWVuIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiSG9yYSBubyB1dGlsaXphYmxlLiBObyBzZSBwdWVkZSBlc3RhYmxlY2VyIGVsIHJlbG9qLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2suXG4iCittc2dzdHIgItpuaWNhbWVudGUgZWwgc3VwZXJ1c3VhcmlvIHB1ZWRlIGNhbWJpYXIgZWwgcmVsb2ogZGUgaGFyZHdhcmUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBTeXN0ZW0gQ2xvY2suXG4iCittc2dzdHIgItpuaWNhbWVudGUgZWwgc3VwZXJ1c3VhcmlvIHB1ZWRlIGNhbWJpYXIgZWwgcmVsb2ogZGVsIHNpc3RlbWEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2sgZXBvY2ggaW4gdGhlICIKKyJrZXJuZWwuXG4iCittc2dzdHIgIiIKKyJT82xvIGVsIHN1cGVydXN1YXJpbyBwdWVkZSBjYW1iaWFyIGVsIHZhbG9yIGRlIOlwb2NhIGRlbCByZWxvaiBkZSBoYXJkd2FyZSAiCisiZGVsIG76Y2xlby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgYW55IGtub3duIG1ldGhvZC5cbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWNjZWRlciBhbCByZWxvaiBkZSBoYXJkd2FyZSBwb3IgbmluZ/puIG3pdG9kbyBjb25vY2lkby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIiIKKyJVdGlsaWNlIGxhIG9wY2nzbiAtLWRlYnVnIHBhcmEgdmVyIGxvcyBkZXRhbGxlcyBkZSBsYSBi+nNxdWVkYSBwYXJhIHVuICIKKyJt6XRvZG8gZGUgYWNjZXNvLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gS0RHSFdDTEsgdG8gY2hhbmdlXG4iCittc2dzdHIgIkVzcGVyYW5kbyBlbiBidWNsZSBxdWUgY2FtYmllIGxhIGhvcmEgZGUgS0RHSFdDTEtcbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAiRXJyb3IgZGUgaW9jdGwgS0RHSFdDTEsgYWwgbGVlciBsYSBob3JhIgorCisjOiBod2Nsb2NrL2tkLmM6NzUKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIGluIGxvb3AiCittc2dzdHIgIkVycm9yIGVuIGJ1Y2xlIGRlIGlvY3RsIEtER0hXQ0xLIGFsIGxlZXIgbGEgaG9yYSIKKworIzogaHdjbG9jay9rZC5jOjgyIGh3Y2xvY2svcnRjLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWVkIG91dCB3YWl0aW5nIGZvciB0aW1lIGNoYW5nZS5cbiIKK21zZ3N0ciAiU2UgaGEgZXhjZWRpZG8gZWwgdGllbXBvIGRlIGVzcGVyYSBkZWwgY2FtYmlvIGRlIGhvcmEuXG4iCisKKyM6IGh3Y2xvY2sva2QuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSBmYWlsZWQgdG8gcmVhZCB0aW1lIGZyb20gJXMiCittc2dzdHIgImlvY3RsKCkgbm8gaGEgcG9kaWRvIGxlZXIgbGEgaG9yYSBkZSAlcyIKKworIzogaHdjbG9jay9rZC5jOjE0MAorbXNnaWQgImlvY3RsIEtEU0hXQ0xLIGZhaWxlZCIKK21zZ3N0ciAiRXJyb3IgZGUgaW9jdGwgS0RHSFdDTEsiCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyIC9kZXYvdHR5MSBvIC9kZXYvdmMvMSIKKworIzogaHdjbG9jay9rZC5jOjE4MAorbXNnaWQgIktER0hXQ0xLIGlvY3RsIGZhaWxlZCIKK21zZ3N0ciAiRXJyb3IgZGUgaW9jdGwgS0RHSFdDTEsiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgIkVycm9yIGRlIG9wZW4oKSBkZSAlcyIKKworIzogaHdjbG9jay9ydGMuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAiRXJyb3IgZGUgaW9jdGwoKSBjb24gJXMgYWwgbGVlciBsYSBob3JhLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiRXNwZXJhbmRvIGVuIGJ1Y2xlIHF1ZSBjYW1iaWUgbGEgaG9yYSBkZSAlc1xuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIKK21zZ3N0ciAiJXMgbm8gdGllbmUgZnVuY2lvbmVzIGRlIGludGVycnVwY2nzbi4gIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkKCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgIkVycm9yIGRlIHJlYWQoKSBkZSAlcyBhbCBlc3BlcmFyIHNl8WFsIGRlIHJlbG9qIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAiTGEgZWplY3VjafNuIGRlIHNlbGVjdCgpIGEgJXMgcGFyYSBlc3BlcmFyIHVuYSBzZfFhbCBkZSByZWxvaiBmYWxs8yIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAiTGEgZWplY3VjafNuIGRlIHNlbGVjdCgpIGEgJXMgcGFyYSBlc3BlcmFyIHVuYSBzZfFhbCBkZSByZWxvaiBleHBpcvNcbiIKKworIzogaHdjbG9jay9ydGMuYzozMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9mZiB1cGRhdGUgaW50ZXJydXB0cyBmYWlsZWQiCittc2dzdHIgIkVycm9yIGRlIGlvY3RsKCkgY29uICVzIGFsIGRlc2FjdGl2YXIgaW50ZXJydXBjaW9uZXMgZGUgYWN0dWFsaXphY2nzbiIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgIiIKKyJFcnJvciBpbmVzcGVyYWRvIGRlIGlvY3RsKCkgY29uICVzIGFsIGFjdGl2YXIgaW50ZXJydXBjaW9uZXMgZGUgYWN0dWFsaXphY2nzbiIKKworIzogaHdjbG9jay9ydGMuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byBzZXQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJFcnJvciBkZSBpb2N0bCgpIGNvbiAlcyBhbCBlc3RhYmxlY2VyIGxhIGhvcmEuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiaW9jdGwoJXMpIGhhIGZpbmFsaXphZG8gY29ycmVjdGFtZW50ZS5cbiIKKworIzogaHdjbG9jay9ydGMuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3BlbiBvZiAlcyBmYWlsZWQiCittc2dzdHIgIkVycm9yIGFsIGFicmlyICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxMCBod2Nsb2NrL3J0Yy5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gbWFuaXB1bGF0ZSB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbCwgd2UgbXVzdCBhY2Nlc3MgdGhlIExpbnV4ICdydGMnICIKKyJkZXZpY2UgZHJpdmVyIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwgZmlsZSAlcy4gIFRoaXMgZmlsZSBkb2VzIG5vdCBleGlzdCBvbiAiCisidGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKyJQYXJhIG1vZGlmaWNhciBlbCB2YWxvciBkZSDpcG9jYSBkZWwgbvpjbGVvLCBzZSBkZWJlIGFjY2VkZXIgYWwgY29udHJvbGFkb3IgIgorImRlXG4iCisiZGlzcG9zaXRpdm8gJ3J0YycgZGUgTGludXggbWVkaWFudGUgZWwgZmljaGVybyBlc3BlY2lhbCBkZSBkaXNwb3NpdGl2byAlcy5cbiIKKyJFc3RlIGZpY2hlcm8gbm8gZXhpc3RlIGVuIGVzdGUgc2lzdGVtYS5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0MTUgaHdjbG9jay9ydGMuYzo0NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJFcnJvciBkZSBpb2N0bChSVENfRVBPQ0hfUkVBRCkgY29uICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAiU2UgaGEgbGXtZG8gZWwgdmFsb3IgZGUg6XBvY2EgJWxkIGRlICVzIGNvbiBpb2N0bCBSVENfRVBPQ0hfUkVBRC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVwb2NoIHZhbHVlIG1heSBub3QgYmUgbGVzcyB0aGFuIDE5MDAuICBZb3UgcmVxdWVzdGVkICVsZFxuIgorbXNnc3RyICJFbCB2YWxvciBkZSDpcG9jYSBubyBwdWVkZSBzZXIgaW5mZXJpb3IgYSAxOTAwLiBIYSBzb2xpY2l0YWRvICVsZFxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZXR0aW5nIGVwb2NoIHRvICVsZCB3aXRoIFJUQ19FUE9DSF9TRVQgaW9jdGwgdG8gJXMuXG4iCittc2dzdHIgIkVzdGFibGVjaWVuZG8g6XBvY2EgZW4gJWxkIGNvbiBpb2N0bCBSVENfRVBPQ0hfU0VUIGVuICVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyBkb2VzIG5vdCBoYXZlIHRoZSBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorbXNnc3RyICIiCisiRWwgY29udHJvbGFkb3IgZGUgZGlzcG9zaXRpdm8gZGVsIG76Y2xlbyBwYXJhICVzIG5vIHRpZW5lIGxhIGlvY3RsICIKKyJSVENfRVBPQ0hfU0VULlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgIkVycm9yIGRlIGlvY3RsKFJUQ19FUE9DSF9TRVQpIGRlICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIgorbXNnc3RyICIlczogY2FuJ3QgZXhlYyAlczogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM4MworbXNnaWQgImNhbid0IG1hbGxvYyBpbml0c3RyaW5nIgorbXNnc3RyICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHNwZWVkOiAlcyIKK21zZ3N0ciAiYmFkIHNwZWVkOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI3Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSBoYSBmYWxsYWRvOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIi9kZXYvJXM6IG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGRlIGNhcmFjdGVyZXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY0MgorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBjYW5ub3Qgb3BlbiBhcyBzdGFuZGFyZCBpbnB1dDogJW0iCittc2dzdHIgIi9kZXYvJXM6IG5vIHNlIHB1ZWRlIGFicmlyIGNvbW8gZW50cmFkYSBlc3ThbmRhcjogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiCittc2dzdHIgIiVzOiBubyBhYmllcnRvIHBhcmEgbGVjdHVyYS9lc2NyaXR1cmEiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZHVwIHByb2JsZW06ICVtIgorbXNnc3RyICIlczogcHJvYmxlbWEgZGUgZHVwOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXIiCittc2dzdHIgInVzdWFyaW8iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VycyIKK21zZ3N0ciAidXN1YXJpb3MiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQ6ICVtIgorbXNnc3RyICIlczogbGVjdHVyYTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlucHV0IG92ZXJydW4iCittc2dzdHIgIiVzOiBkZXNib3JkYW1pZW50byBkZSBlbnRyYWRhIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMjA2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstOGhpTG1Vd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IICIKKyJsb2dpbl9ob3N0XSBiYXVkX3JhdGUsLi4uIGxpbmUgW3Rlcm10eXBlXVxuIgorIm9yXHRbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggbG9naW5faG9zdF0gIgorImxpbmUgYmF1ZF9yYXRlLC4uLiBbdGVybXR5cGVdXG4iCittc2dzdHIgIiIKKyJVc286ICVzIFstaGlMbXddIFstbCBwcm9ncmFtYV9pbmljaW9fc2VzafNuXSBbLXQgdGllbXBvX2VzcGVyYV0gWy1JICIKKyJjYWRlbmFpbmljaWFsaXphY2nzbl0gWy1IIGhvc3RfaW5pY2lvX3Nlc2nzbl0gdmVsb2NpZGFkX2JhdWRpb3MsLi4uIGztbmVhICIKKyJbdGlwb190ZXJtaW5hbF1cbiIKKyJvIGJpZW5cdFstaGlMbXddIFstbCBwcm9ncmFtYV9pbmljaW9fc2VzafNuXSBbLXQgdGllbXBvX2VzcGVyYV0gWy1JICIKKyJjYWRlbmFfaW5pY2lhbGl6YWNp825dIFstSCBob3N0X2luaWNpb19zZXNp825dbO1uZWEgdmVsb2NpZGFkX2JhdWRpb3MsLi4uICIKKyJbdGlwb190ZXJtaW5hbF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MSBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbWVtb3J5IGxvdywgbG9naW4gbWF5IGZhaWxcbiIKK21zZ3N0ciAibG9naW46IHBvY2EgbWVtb3JpYTsgZWwgaW5pY2lvIGRlIHNlc2nzbiBwdWVkZSBmYWxsYXJcbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MgorbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgdHR5Y2xhc3MiCittc2dzdHIgIk5vIHNlIHB1ZWRlIHJlYWxpemFyIGFzaWduYWNp824gZGUgbWVtb3JpYSBwYXJhIHR0eWNsYXNzIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMworbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgcmVhbGl6YXIgYXNpZ25hY2nzbiBkZSBtZW1vcmlhIHBhcmEgZ3JwbGlzdCIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiSW5pY2lvIGRlIHNlc2nzbiBlbiAlcyBkZXNkZSAlcyBkZW5lZ2FkbyBkZSBmb3JtYSBwcmVkZXRlcm1pbmFkYS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQuXG4iCittc2dzdHIgIkluaWNpbyBkZSBzZXNp824gZW4gJXMgZGVzZGUgJXMgZGVuZWdhZG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IGVsIHVzdWFyaW8gJWQgbm8gZXhpc3RlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogZWwgdXN1YXJpbyBcIiVzXCIgbm8gZXhpc3RlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQ1IGxvZ2luLXV0aWxzL2Noc2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBlbnRyaWVzOyB1c2UgeXAlcyBpbnN0ZWFkLlxuIgorbXNnc3RyICIiCisiJXM6IHPzbG8gc2UgcHVlZGVuIG1vZGlmaWNhciBlbnRyYWRhcyBsb2NhbGVzOyB1dGlsaWNlIHlwJXMgZW4gc3UgbHVnYXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICJDb250ZXh0byBkZSB1c3VhcmlvIGRlc2Nvbm9jaWRvIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIGZpbmdlciBpbmZvIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBubyBlc3ThIGF1dG9yaXphZG8gYSBjYW1iaWFyIGxhIGluZm9ybWFjafNuIGRlIGZpbmdlciBkZSAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTY0IGxvZ2luLXV0aWxzL2Noc2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBkZWZhdWx0IGNvbnRleHQgZm9yIC9ldGMvcGFzc3dkIgorbXNnc3RyICIlczogTm8gc2UgcHVlZGUgZXN0YWJsZWNlciBlbCBjb250ZXh0byBwcmVkZXRlcm1pbmFkbyBwYXJhIC9ldGMvcGFzc3dkIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGZpbmdlciBpbmZvcm1hdGlvbiBmb3IgJXMuXG4iCittc2dzdHIgIkNhbWJpYW5kbyBpbmZvcm1hY2nzbiBkZSBmaW5nZXIgcGFyYSAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJsb2dpbjogZXJyb3IgZGUgUEFNOyBhbnVsYW5kbzogJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxMiBsb2dpbi11dGlscy9jaHNoLmM6MjExIGxvZ2luLXV0aWxzL2xvZ2luLmM6ODI3CisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo3OSBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQwIG1vdW50L2xvbW91bnQuYzo3NDIKKyM6IG1vdW50L2xvbW91bnQuYzo3NDUKK21zZ2lkICJQYXNzd29yZDogIgorbXNnc3RyICJDb250cmFzZfFhOiAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTUgbG9naW4tdXRpbHMvY2hzaC5jOjIxNAorbXNnaWQgIkluY29ycmVjdCBwYXNzd29yZC4iCittc2dzdHIgIkNvbnRyYXNl8WEgaW5jb3JyZWN0YS4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJObyBzZSBoYSBjYW1iaWFkbyBsYSBpbmZvcm1hY2nzbiBkZSBmaW5nZXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIlVzbzogJXMgWyAtZiBub21icmUtY29tcGxldG8gXSBbIC1vIG9maWNpbmEgXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlsgLXAgb2ZmaWNlLXBob25lIF1cbiIKKyJcdFsgLWggaG9tZS1waG9uZSBdICIKK21zZ3N0ciAiIgorIlsgLXAgdGVs6WZvbm8tb2ZpY2luYSBdXG4iCisiXHRbIC1oIHRlbOlmb25vLXBhcnRpY3VsYXIgXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQwMSBsb2dpbi11dGlscy9jaHNoLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJBYm9ydGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiT3BlcmFjafNuIGFudWxhZGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmllbGQgaXMgdG9vIGxvbmcuXG4iCittc2dzdHIgIkNhbXBvIGRlbWFzaWFkbyBsYXJnby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0MgorIywgYy1mb3JtYXQKK21zZ2lkICInJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICInJWMnIG5vIGVzdOEgcGVybWl0aWRvLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvbnRyb2wgY2hhcmFjdGVycyBhcmUgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIkxvcyBjYXJhY3RlcmVzIGRlIGNvbnRyb2wgbm8gZXN04W4gcGVybWl0aWRvcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxMgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiIgorIipOTyogc2UgaGEgY2FtYmlhZG8gbGEgaW5mb3JtYWNp824gZGUgZmluZ2VyLiBJbnTpbnRlbG8gZGUgbnVldm8gbeFzICIKKyJhZGVsYW50ZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiU2UgaGEgY2FtYmlhZG8gbGEgaW5mb3JtYWNp824gZGUgZmluZ2VyLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBubyBlc3ThIGF1dG9yaXphZG8gYSBjYW1iaWFyIGVsIHNoZWxsIGRlICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBSdW5uaW5nIFVJRCBkb2Vzbid0IG1hdGNoIFVJRCBvZiB1c2VyIHdlJ3JlIGFsdGVyaW5nLCBzaGVsbCBjaGFuZ2UgIgorImRlbmllZFxuIgorbXNnc3RyICIiCisiJXM6IEVsIFVJRCBlbiBlamVjdWNp824gbm8gY29pbmNpZGUgY29uIGVsIFVJRCBkZWwgdXN1YXJpbyBxdWUgc2UgZXN04VxuIgorImFsdGVyYW5kbywgY2FtYmlvIGRlIHNoZWxsIGRlbmVnYWRvXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogZWwgaW506XJwcmV0ZSBkZSDzcmRlbmVzIG5vIGVzdOEgZW4gL2V0Yy9zaGVsbHM7IGNhbWJpbyBkZSBpbnTpcnByZXRlIGRlICIKKyLzcmRlbmVzIGRlbmVnYWRvXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgc2hlbGwgZm9yICVzLlxuIgorbXNnc3RyICJDYW1iaWFuZG8gaW506XJwcmV0ZSBkZSDzcmRlbmVzIHBhcmEgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjIKK21zZ2lkICJOZXcgc2hlbGwiCittc2dzdHIgIk51ZXZvIGludOlycHJldGUgZGUg83JkZW5lcyIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyOQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiTm8gc2UgaGEgY2FtYmlhZG8gZWwgaW506XJwcmV0ZSBkZSDzcmRlbmVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIiIKKyIqTk8qIHNlIGhhIGNhbWJpYWRvIGVsIGludOlycHJldGUgZGUg83JkZW5lcy4gSW506W50ZWxvIGRlIG51ZXZvIG3hcyAiCisiYWRlbGFudGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgY2hhbmdlZC5cbiIKK21zZ3N0ciAiU2UgaGEgY2FtYmlhZG8gZWwgaW506XJwcmV0ZSBkZSDzcmRlbmVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIlVzbzogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgWyBub21icmVkZXVzdWFyaW8gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiBlbCBpbnTpcnByZXRlIGRlIPNyZGVuZXMgZGViZSBzZXIgdW4gbm9tYnJlIGRlIHJ1dGEgY29tcGxldG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBubyBleGlzdGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgZXhlY3V0YWJsZS5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBubyBlcyBlamVjdXRhYmxlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogJyVjJyBubyBlc3ThIHBlcm1pdGlkby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6IGxvcyBjYXJhY3RlcmVzIGRlIGNvbnRyb2wgbm8gZXN04W4gcGVybWl0aWRvcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NSBsb2dpbi11dGlscy9jaHNoLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICJBdGVuY2nzbjogXCIlc1wiIG5vIGZpZ3VyYSBlbiAvZXRjL3NoZWxscy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIgbm8gZmlndXJhIGVuIC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IHV0aWxpY2UgbGEgb3BjafNuIC1sIHBhcmEgdmVyIHVuYSBsaXN0YVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSAlcyAtbCB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiVXRpbGljZSAlcyAtbCBwYXJhIHZlciB1bmEgbGlzdGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICJObyBoYXkgbmluZ/puIGludOlycHJldGUgZGUg83JkZW5lcyBjb25vY2lkby5cbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZywgZXhpdGluZy4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyICVzIHBhcmEgbGVjdHVyYSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICJ1c286IGxhc3QgWy0jXSBbLWYgZmljaGVyb10gWy10IHR0eV0gWy1oIG5vbWJyZWhvc3RdIFt1c3VhcmlvIC4uLl1cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIgIHRvZGF27WEgdGllbmUgaW5pY2lhZGEgbGEgc2VzafNuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJ3dG1wIGJlZ2lucyAlcyIKK21zZ3N0ciAiIgorIlxuIgorInd0bXAgZW1waWV6YSAlcyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjM4MCBsb2dpbi11dGlscy9sYXN0LmM6Mzk4IGxvZ2luLXV0aWxzL2xhc3QuYzo0NDkKK21zZ2lkICJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIKK21zZ3N0ciAibGFzdDogZXJyb3IgZGUgYXNpZ25hY2nzbiBkZSBtZW1vcmlhIChtYWxsb2MpLlxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgImxhc3Q6IGdldGhvc3RuYW1lIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisiaW50ZXJydW1waWRvICUxMC4xMHMgJTUuNXMgXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiBjYW4ndCByZW9wZW4gdHR5OiAlcyIKK21zZ3N0ciAiRXJyb3IgZmF0YWw6IG5vIHNlIHB1ZWRlIHJlYWJyaXIgbGEgdGVybWluYWw6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6ICVzIGlzIG5vdCBhIHRlcm1pbmFsIgorbXNnc3RyICIlcyBubyBlcyB1biBkaXNwb3NpdGl2byBkZSBibG9xdWVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIzOAorbXNnaWQgIkZBVEFMOiBiYWQgdHR5IgorbXNnc3RyICJFUlJPUiBGQVRBTDogVGVybWluYWwgZXJy825lYSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgImxvZ2luOiAtaCBz82xvIHBhcmEgc3VwZXJ1c3VhcmlvLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ4OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9naW4gWy1mcF0gW3VzZXJuYW1lXVxuIgorbXNnc3RyICJ1c286IGxvZ2luIFstZnBdIFtub21icmV1c3VhcmlvXVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBpbml0aWFsaXplIFBBTTogJXMiCittc2dzdHIgIk5vIHNlIGhhIHBvZGlkbyBpbmljaWFsaXphciBQQU06ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgIkluaWNpbyBkZSBzZXNp8246ICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOICVkIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiRXJyb3IgZGUgaW5pY2lvIGRlIHNlc2nzbiAlZCBkZXNkZSAlcyBwYXJhICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkxvZ2luIGluY29ycmVjdFxuIgorIlxuIgorbXNnc3RyICIiCisiSW5pY2lvIGRlIHNlc2nzbiBpbmNvcnJlY3RvXG4iCisiXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRPTyBNQU5ZIExPR0lOIFRSSUVTICglZCkgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJEZW1hc2lhZG9zIGludGVudG9zIGRlIGluaWNpbyBkZSBzZXNp824gKCVkKSBkZXNkZSAlcyBwYXJhICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJFcnJvciBkZSBzZXNp824gZGUgaW5pY2lvIGRlIHNlc2nzbiBkZXNkZSAlcyBwYXJhICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICIiCisiXG4iCisiSW5pY2lvIGRlIHNlc2nzbiBpbmNvcnJlY3RvXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkwIGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk3IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIgorbXNnc3RyICIiCisiXG4iCisiUHJvYmxlbWEgYWwgaW5pY2lhciBsYSBzZXNp824sIGFib3J0YWRvLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MQorIywgYy1mb3JtYXQKK21zZ2lkICJOVUxMIHVzZXIgbmFtZSBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICJub21icmUgZGUgdXN1YXJpbyBOVUxPIGVuICVzOiVkLiBBYm9ydGFkby4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdXNlciBuYW1lIFwiJXNcIiBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICJOb21icmUgZGUgdXN1YXJpbyBpbnbhbGlkbyBcIiVzXCIgZW4gJXM6JWQuIEFib3J0YWRvLiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IE91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAibG9naW46IE5vIHF1ZWRhIG1lbW9yaWFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICJOb21icmUgZGUgdXN1YXJpbyBubyBwZXJtaXRpZG8iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvZ2luIHJlZnVzZWQgb24gdGhpcyB0ZXJtaW5hbC5cbiIKK21zZ3N0ciAiSW5pY2lvIGRlIHNlc2nzbiAlcyByZWNoYXphZG8gZW4gZXN0ZSB0ZXJtaW5hbC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiSW5pY2lvIGRlIHNlc2nzbiAlcyByZWNoYXphZG8gZGVzZGUgJXMgZW4gdHR5ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiSW5pY2lvIGRlIHNlc2nzbiAlcyByZWNoYXphZG8gZW4gdHR5ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjg2NworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiSW5pY2lvIGRlIHNlc2nzbiBpbmNvcnJlY3RvXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgIkNvbmV4afNuIHRlbGVm825pY2EgZW4gJXMgcG9yICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIgorbXNnc3RyICJJbmljaW8gZGUgc2VzafNuIGNvbiByb290IGVuICVzIGRlc2RlICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyIKK21zZ3N0ciAiSW5pY2lvIGRlIHNlc2nzbiBjb24gcm9vdCBlbiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIEZST00gJXMiCittc2dzdHIgIkluaWNpbyBkZSBzZXNp824gZW4gJXMgcG9yICVzIGRlc2RlICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIkluaWNpbyBkZSBzZXNp824gZW4gJXMgcG9yICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbmV3IG1haWwuXG4iCittc2dzdHIgIlRpZW5lIGNvcnJlbyBudWV2by5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG1haWwuXG4iCittc2dzdHIgIlRpZW5lIGNvcnJlby5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjogZXJyb3IgZW4gZm9yazogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyMgorIywgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiRmFsbG8gZW4gVElPQ1NDVFRZOiAlbSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjI4Cittc2dpZCAic2V0dWlkKCkgZmFpbGVkIgorbXNnc3RyICJzZXR1aWQoKSBoYSBmYWxsYWRvIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICJObyBoYXkgbmluZ/puIGRpcmVjdG9yaW8gJXNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2dpbmcgaW4gd2l0aCBob21lID0gXCIvXCIuXG4iCittc2dzdHIgIkluaWNpYW5kbyBsYSBzZXNp824gY29uIGRpcmVjdG9yaW8gZGUgaW5pY2lvID0gXCIvXCIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgImxvZ2luOiBubyBxdWVkYSBtZW1vcmlhIHBhcmEgc2NyaXB0IGRlIGludOlycHJldGUgZGUg83JkZW5lcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iCittc2dzdHIgIiIKKyJsb2dpbjogbm8gc2UgaGEgcG9kaWRvIGVqZWN1dGFyIGVsIHNjcmlwdCBkZSBpbnTpcnByZXRlIGRlIPNyZGVuZXM6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIHNoZWxsOiAlcy5cbiIKK21zZ3N0ciAibG9naW46IG5vIGhheSBpbnTpcnByZXRlIGRlIPNyZGVuZXM6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyJJbmljaW8gZGUgc2VzafNuIGRlICVzOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lIG11Y2ggdG9vIGxvbmcuXG4iCittc2dzdHIgIk5vbWJyZSBkZSBpbmljaW8gZGUgc2VzafNuIGRlbWFzaWFkbyBsYXJnby5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAzCittc2dpZCAiTkFNRSB0b28gbG9uZyIKK21zZ3N0ciAiTm9tYnJlIGRlbWFzaWFkbyBsYXJnbyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgIkxvcyBub21icmVzIGRlIGluaWNpbyBkZSBzZXNp824gbm8gcHVlZGVuIGVtcGV6YXIgcG9yICctJy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIwCisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IGJhcmUgbGluZWZlZWRzLlxuIgorbXNnc3RyICJEZW1hc2lhZG9zIGF2YW5jZXMgZGUgbO1uZWEgc29sb3MuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIkV4Y2VzaXZvcyBhdmFuY2VzIGRlIGztbmVhIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiRWwgaW5pY2lvIGRlIHNlc2nzbiBoYSBzdXBlcmFkbyBlbCB0aWVtcG8gZGUgZXNwZXJhIHRyYXMgJWQgc2VndW5kb3NcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgbG9naW46ICUuKnMgIgorbXNnc3RyICLabHRpbW8gaW5pY2lvIGRlIHNlc2nzbjogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAiZGVzZGUgJS4qc1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib24gJS4qc1xuIgorbXNnc3RyICJlbiAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorbXNnc3RyICJFcnJvciBkZSBpbmljaW8gZGUgc2VzafNuIGRlc2RlICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICJFcnJvciBkZSBpbmljaW8gZGUgc2VzafNuIGVuICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIgorbXNnc3RyICIlZCBlcnJvcmVzIGRlIGluaWNpbyBkZSBzZXNp824gZGVzZGUgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICIlZCBlcnJvcmVzIGRlIGluaWNpbyBkZSBzZXNp824gZW4gJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICJlcyB5XG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBuXG4iCittc2dzdHIgImVzIG5cbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgInVzbzogbWVzZyBbeSB8IG5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjk5Cittc2dpZCAibmV3Z3JwOiBXaG8gYXJlIHlvdT8iCittc2dzdHIgIm5ld2dycDogv3F1aeluIGVzIHVzdGVkPyIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTA3IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyMQorbXNnaWQgIm5ld2dycDogc2V0Z2lkIgorbXNnc3RyICJuZXdncnA6IHNldGdpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIm5ld2dycDogZXN0ZSBncnVwbyBubyBleGlzdGUuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMjUKK21zZ2lkICJuZXdncnA6IFBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJuZXdncnA6IHBlcm1pc28gZGVuZWdhZG8iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIk5vIGhheSBuaW5n+m4gaW506XJwcmV0ZSBkZSDzcmRlbmVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKK21zZ3N0ciAiVXNvOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW51dG9zXVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjEzNAorbXNnaWQgIlNodXRkb3duIHByb2Nlc3MgYWJvcnRlZCIKK21zZ3N0ciAiUHJvY2VzbyBkZSBzaHV0ZG93biBhbnVsYWRvIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiVzOiBz82xvIGVsIHVzdWFyaW8gcm9vdCBwdWVkZSBjZXJyYXIgdW4gc2lzdGVtYS5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIkVzdGEgb3BlcmFjafNuIHNlIHJlYWxpemFy4SBtYfFhbmE7IL9wdWVkZSBlc3BlcmFyIGhhc3RhIGVudG9uY2VzP1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMxMAorbXNnaWQgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCittc2dzdHIgIlBhcmEgbWFudGVuaW1pZW50bzsgYm91bmNlLCBib3VuY2UiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiRWwgc2lzdGVtYSBzZSBjZXJyYXLhIGRlbnRybyBkZSA1IG1pbnV0b3MiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzQzCittc2dpZCAiTG9naW4gaXMgdGhlcmVmb3JlIHByb2hpYml0ZWQuIgorbXNnc3RyICJQb3IgY29uc2lndWllbnRlIGVsIGluaWNpbyBkZSBzZXNp824gZXN04SBwcm9oaWJpZG8uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgInJlaW5pY2lhZG8gcG9yICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiZGV0ZW5pZG8gcG9yICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzIKK21zZ2lkICIiCisiXG4iCisiV2h5IGFtIEkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVib290PyIKK21zZ3N0ciAiIgorIlxuIgorIr9Qb3IgcXXpIHNpZ3VlIGFjdGl2byBlbCBwcm9jZXNvIHRyYXMgbGEgb3BlcmFjafNuIGRlIHJlaW5pY2lvPyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisiQWhvcmEgcHVlZGUgZGVzY29uZWN0YXIgbGEgYWxpbWVudGFjafNuLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGtlcm5lbCBwb3dlci1vZmYgZmFjaWxpdHkuLi5cbiIKK21zZ3N0ciAiTGxhbWFuZG8gYSByZWN1cnNvIGRlIGFwYWdhZG8gZGVsIG76Y2xlby4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIkVycm9yIGFsIGFwYWdhclx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAiRWplY3V0YW5kbyBlbCBwcm9ncmFtYSBcIiVzXCIgLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGV4ZWN1dGluZ1x0JXNcbiIKK21zZ3N0ciAiRXJyb3IgYWwgZWplY3V0YXIgXHQlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJVUkdFTlQ6IGJyb2FkY2FzdCBtZXNzYWdlIGZyb20gJXM6IgorbXNnc3RyICJVUkdFTlRFOiBtZW5zYWplIGRlIGRpZnVzafNuIGdlbmVyYWwgKGJyb2FkY2FzdCkgZGUgJXM6IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBob3VycyAlZCBtaW51dGVzIgorbXNnc3RyICJFbCBzaXN0ZW1hIHNlIGFwYWdhcuEgZGVudHJvIGRlICVkIGhvcmFzIHkgJWQgbWludXRvcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBob3VyICVkIG1pbnV0ZXMiCittc2dzdHIgIkVsIHNpc3RlbWEgc2UgYXBhZ2Fy4SBkZW50cm8gZGUgMSBob3JhIHkgJWQgbWludXRvKHMpIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBtaW51dGVzXG4iCittc2dzdHIgIkVsIHNpc3RlbWEgc2UgYXBhZ2Fy4SBkZW50cm8gZGUgJWQgbWludXRvc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwNgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIG1pbnV0ZVxuIgorbXNnc3RyICJFbCBzaXN0ZW1hIHNlIGFwYWdhcuEgZGVudHJvIGRlIDEgbWludXRvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIgorbXNnc3RyICKhRWwgc2lzdGVtYSBzZSBhcGFnYXLhIElOTUVESUFUQU1FTlRFIVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICJcdC4uLiAlcyAuLi5cbiIKK21zZ3N0ciAiXHQuLi4gJXMgLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTcwCittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHN3YXBvZmYuIFNocnVnISIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgcmVhbGl6YXIgdW5hIG9wZXJhY2nzbiBmb3JrIHBhcmEgZWplY3V0YXIgc3dhcG9mZi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTc4Cittc2dpZCAiQ2Fubm90IGV4ZWMgc3dhcG9mZiwgaG9waW5nIHVtb3VudCB3aWxsIGRvIHRoZSB0cmljay4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGVqZWN1dGFyIHN3YXBvZmY7IHNlIGludGVudGEgY29uIHVtb3VudC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiIgorIk5vIHNlIHB1ZWRlIHJlYWxpemFyIHVuYSBvcGVyYWNp824gZm9yayBwYXJhIGVqZWN1dGFyIHVtb3VudDsgc2UgaW50ZW50YSAiCisibWFudWFsbWVudGUuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZXhlYyAlcywgdHJ5aW5nIHVtb3VudC5cbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZWplY3V0YXIgJXM7IHNlIGludGVudGEgdW1vdW50LlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGVqZWN1dGFyIHVtb3VudDsgc2UgYWJhbmRvbmEgbGEgb3BlcmFjafNuIHVtb3VudC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjE1Cittc2dpZCAiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIgorbXNnc3RyICJEZXNtb250YW5kbyBsb3Mgc2lzdGVtYXMgZGUgZmljaGVyb3MgcmVzdGFudGVzLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJzaHV0ZG93bjogQ291bGRuJ3QgdW1vdW50ICVzOiAlc1xuIgorbXNnc3RyICJzaHV0ZG93bjogTm8gc2UgcHVlZGUgZWplY3V0YXIgdW1vdW50ICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICJJbmljaWFuZG8gZW4gbW9kbyBkZSB1biBzb2xvIHVzdWFyaW8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICIiCisiTGEgZWplY3VjafNuIChleGVjKSBkZSBpbnTpcnByZXRlIGRlIPNyZGVuZXMgZGUgdW4gc29sbyB1c3VhcmlvIGhhIGZhbGxhZG9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjE0MAorbXNnaWQgImZvcmsgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgIiIKKyJMYSBiaWZ1cmNhY2nzbiAoZm9yaykgZGUgaW506XJwcmV0ZSBkZSDzcmRlbmVzIGRlIHVuIHNvbG8gdXN1YXJpbyBoYSAiCisiZmFsbGFkb1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjA4Cittc2dpZCAiZXJyb3Igb3BlbmluZyBmaWZvXG4iCittc2dzdHIgImVycm9yIGFsIGFicmlyIGBmaWZvJ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjEyCittc2dpZCAiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIKK21zZ3N0ciAiZXJyb3IgYWwgZXN0YWJsZWNlciBjbG9zZS1vbi1leGVjIHNvYnJlIC9kZXYvaW5pdGN0bCIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI1OQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImVycm9yIGFsIGVqZWN1dGFyIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAiZXJyb3IgYWwgZWZlY3R1YXIgYGZvcmsnIGNvbiBmaW5hbHByb2dcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0NQorbXNnaWQgIiIKKyJcbiIKKyJXcm9uZyBwYXNzd29yZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkNvbnRyYXNl8WEgaW5jb3JyZWN0YS5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgImZhbGzzIGxhIGxsYW1hZGEgYSBgbHN0YXQnIHNvYnJlIGxhIHJ1dGFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQyNgorbXNnaWQgInN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAiZmFsbPMgbGEgbGxhbWFkYSBhIGBzdGF0JyBzb2JyZSBsYSBydXRhXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MzQKK21zZ2lkICJvcGVuIG9mIGRpcmVjdG9yeSBmYWlsZWRcbiIKK21zZ3N0ciAiTGEgYXBlcnR1cmEgZGVsIGRpcmVjdG9yaW8gaGEgZmFsbGFkb1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTAxCisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3Bhd25pbmc6IFwiJXNcIiB0b28gZmFzdDogcXVlbmNoaW5nIGVudHJ5XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwOQorbXNnaWQgImZvcmsgZmFpbGVkXG4iCittc2dzdHIgIkxhIGJpZnVyY2FjafNuIChmb3JrKSBoYSBmYWxsYWRvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NDAgdGV4dC11dGlscy9tb3JlLmM6MTY2MworbXNnaWQgImV4ZWMgZmFpbGVkXG4iCittc2dzdHIgIkxhIGVqZWN1Y2nzbiAoZXhlYykgaGEgZmFsbGFkb1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0Cittc2dpZCAiY2Fubm90IG9wZW4gaW5pdHRhYlxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBhYnJpciBpbml0dGFiXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo2MzEKK21zZ2lkICJubyBURVJNIG9yIGNhbm5vdCBzdGF0IHR0eVxuIgorbXNnc3RyICJTaW4gVEVSTSBvIG5vIHNlIHB1ZWRlIGVqZWN1dGFyIHN0YXQgcGFyYSB0dHlcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjkzOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igc3RvcHBpbmcgc2VydmljZTogXCIlc1wiXG4iCittc2dzdHIgImVycm9yIGFsIGRldGVuZXIgZWwgc2VydmljaW86IFwiJXNcIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjk1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICJlcnJvciBhbCBkZXRlbmVyIGVsIHNlcnZpY2lvOiBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMDcwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBydW5uaW5nIHByb2dyYW1tZTogXCIlc1wiXG4iCittc2dzdHIgImVycm9yIGFsIGVqZWN1dGFyIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAiRGVtYXNpZG9zIGlvdiAobW9kaWZpY2FyIGPzZGlnbyBlbiB3YWxsL3R0eW1zZy5jKSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIKK21zZ3N0ciAiQXJndW1lbnRvIGRlIGztbmVhIGRlbWFzaWFkbyBsYXJnbyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JrIgorbXNnc3RyICJObyBzZSBwdWVkZSBiaWZ1cmNhciAoZm9yaykiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJmb3JrOiAlcyIKK21zZ3N0ciAiZm9yazogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQkFEIEVSUk9SIgorbXNnc3RyICIlczogZXJyb3IgaW5jb3JyZWN0byIKKworIyBGSVhNRTogRWwgZmljaGVybyBzZSBsbGFtYSAicGFzc3dkIiwgbm8gInBhc3N3b3JkIgorIyBDb211bmljYXIgYWwgYXV0b3IuCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgcGFzc3dvcmQgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogZWwgZmljaGVybyBgcGFzc3dkJyBlc3ThIG9jdXBhZG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBncm91cCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBlbCBmaWNoZXJvIGBncm91cCcgZXN04SBvY3VwYWRvLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgJXMgZmlsZSBpcyBidXN5ICglcyBwcmVzZW50KVxuIgorbXNnc3RyICIlczogZWwgZmljaGVybyAlcyBlc3ThIG9jdXBhZG8gKCVzIHByZXNlbnRlKS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgbGluayAlczogJXNcbiIKK21zZ3N0ciAiJXM6IG5vIHNlIHB1ZWRlIGVubGF6YXIgJXM6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IGdldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IE5vIHNlIHB1ZWRlIG9idGVuZXIgZWwgY29udGV4dG8gZGUgJXMiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IE5vIHNlIHB1ZWRlIGVzdGFibGVjZXIgZWwgY29udGV4dG8gZGUgJXMiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHVubG9jayAlczogJXMgKHlvdXIgY2hhbmdlcyBhcmUgc3RpbGwgaW4gJXMpXG4iCittc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBkZXNibG9xdWVhciAlczogJXMgKGxvcyBjYW1iaW9zIHRvZGF27WEgZXN04W4gZW4gJXMpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBiaWZ1cmNhciAoZm9yaylcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgdW5jaGFuZ2VkXG4iCittc2dzdHIgIiVzOiAlcyBubyBzZSBoYSBtb2RpZmljYWRvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIgorbXNnc3RyICIlczogbm8gc2UgaGEgZWZlY3R1YWRvIG5pbmf6biBjYW1iaW9cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIkVzdOEgdXRpbGl6YW5kbyBncnVwb3Mgb2N1bHRvcyBlbiBlc3RlIHNpc3RlbWEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJFc3RhIHV0aWxpemFuZG8gY29uYnRyYXNl8WFzIG9jdWx0YXMgZW4gZXN0ZSBzaXN0ZW1hLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldvdWxkIHlvdSBsaWtlIHRvIGVkaXQgJXMgbm93IFt5L25dPyAiCittc2dzdHIgIr9RdWllcmUgZWRpdGFyICVzIGFob3JhPyBbeS9uXSAiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICJ1c286ICVzIFtmaWNoZXJvXVxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBvcGVuIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogbm8gc2UgcHVlZGUgYWJyaXIgZWwgZmljaGVybyB0ZW1wb3JhbC5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICJNZW5zYWplIGRlIGRpZnVzafNuIGdlbmVyYWwgKGJyb2FkY2FzdCkgZGUgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBsZWVyICVzIC0gdXNlIGxhIGVudHJhZGEgZXN04W5kYXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBsZWVyICVzLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogbm8gc2UgcHVlZGUgZWplY3V0YXIgc3RhdCBwYXJhIGZpY2hlcm8gdGVtcG9yYWwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBsZWVyIGVsIGZpY2hlcm8gdGVtcG9yYWwuXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgIlZhbG9yIGRlIGHxbyBubyBwZXJtaXRpZG86IHV0aWxpY2UgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICJWYWxvciBkZSBtZXMgbm8gcGVybWl0aWRvOiB1dGlsaWNlIDEtMTIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzcyCittc2dpZCAiaWxsZWdhbCB5ZWFyIHZhbHVlOiB1c2UgMS05OTk5IgorbXNnc3RyICJWYWxvciBkZSBh8W8gbm8gcGVybWl0aWRvOiB1dGlsaWNlIDEtOTk5OSIKKworIzogbWlzYy11dGlscy9jYWwuYzo0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJWQiCittc2dzdHIgIiVzIGRlICVkIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjg1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgInVzbzogY2FsIFstMTNzbWp5Vl0gW1ttZXNdIGHxb11cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIKK21zZ3N0ciAidXNvOiAlcyBbK2Zvcm1hdG9dIFtk7WEgbWVzIGHxb11cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIkTtYSBkZSBTYW4gVGliYiIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgTEFCRUw9PGxhYmVsPnxVVUlEPTx1dWlkPlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byByZXNvbHZlICclcyciCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyICVzIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzXG4iCittc2dzdHIgIiVzOiBzZfFhbCBkZXNjb25vY2lkYSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgcHJvY2VzcyBcIiVzXCJcbiIKK21zZ3N0ciAiJXM6IG5vIHNlIHB1ZWRlIGVuY29udHJhciBlbCBwcm9jZXNvIFwiJXNcIlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzOyB2YWxpZCBzaWduYWxzOlxuIgorbXNnc3RyICIlczogc2XxYWwgZGVzY29ub2NpZGEgJXM7IHNl8WFsZXMgduFsaWRhczpcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKK21zZ3N0ciAidXNvOiAlcyBbIC1zIHNl8WFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiICAgICAgICVzIC1sIFsgc2XxYWwgXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IG9wZW5sb2c6IHBhdGhuYW1lIHRvbyBsb25nXG4iCittc2dzdHIgIk5vbWJyZSBkZSBpbmljaW8gZGUgc2VzafNuIGRlbWFzaWFkbyBsYXJnby5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic29ja2V0OiAlcy5cbiIKK21zZ3N0ciAiVGFtYfFvRGVsQmxvcXVlOiAlZFxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbm5lY3Q6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogJXM6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6ICVzOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIGZhY2lsaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IG5vbWJyZSBkZSByZWN1cnNvIGRlc2Nvbm9jaWRvOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIHByaW9yaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IG5vbWJyZSBkZSBwcmlvcmlkYWQgZGVzY29ub2NpZGE6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6IGxvZ2dlciBbLWlzXSBbLWYgZmlsZV0gWy1wIHByaV0gWy10IHRhZ10gWy11IHNvY2tldF0gWyBtZXNzYWdlIC4uLiBdXG4iCittc2dzdHIgIiIKKyJ1c286IGxvZ2dlciBbLWlzXSBbLWYgZmljaGVyb10gWy1wIHByaV0gWy10IGV0aXF1ZXRhXSBbLXUgc29ja2V0XSAiCisiWyBtZW5zYWplIC4uLiBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9vay5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9vayBbLWRmYV0gWy10IGNoYXJdIHN0cmluZyBbZmlsZV1cbiIKK21zZ3N0ciAidXNvOiBsb29rIFstZGZhXSBbLXQgY2Fy4WN0ZXJdIGNhZGVuYSBbZmljaGVyb11cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJObyBzZSBoYSBwb2RpZG8gYWJyaXIgJXNcbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA5IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICJTZSBoYW4gb2J0ZW5pZG8gJWQgYnl0ZXMgZGUgJXNcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0CisjLCBmdXp6eQorbXNnaWQgIm91dCBvZiBtZW1vcnk/IgorbXNnc3RyICK/Tm8gcXVlZGEgbWVtb3JpYT9cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgc3ltbGluazogJXMiCittc2dzdHIgImlvY3RsKCkgbm8gaGEgcG9kaWRvIGxlZXIgbGEgaG9yYSBkZSAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjIzMSBtaXNjLXV0aWxzL25hbWVpLmM6MjU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICJObyBzZSBwdWVkZSBlZmVjdHVhciBgc3RhdCcgc29icmUgZWwgZGlzcG9zaXRpdm8gJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgInVzbzogbmFtZWkgWy1teF0gbm9tYnJlcnV0YSBbbm9tYnJlcnV0YSAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgcGFydGljaW9uZXM6XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgbmFtZWkoMSkuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQ6ICVzIgorbXNnc3RyICJObyBzZSBwdWVkZSBlamVjdXRhciBgc3RhdCcgc29icmUgJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiJXM6IG5vIHF1ZWRhIG1lbW9yaWFcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogZmFsbG8gYWwgY2FtYmlhciBlbCBub21icmUgZGUgJXMgYSAlczogJXNcbiIKKworIyBJbnRyYWR1Y2libGUgc2luIGVsIGNvbnRleHRvLgorIzogbWlzYy11dGlscy9yZW5hbWUuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYWxsOiAlcyBmcm9tIHRvIGZpbGVzLi4uXG4iCittc2dzdHIgImxsYW1hZGE6ICVzIGRlIGxvcyBmaWNoZXJvcy4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisiQXRlbmNp8246IGAlcycgZXMgdW4gZW5sYWNlLlxuIgorIlV0aWxpY2UgYCVzIFtvcGNpb25lc10gJXMnIHNpIHF1aWVyZSB1dGlsaXphcmxvIGRlIHZlcmRhZC5cbiIKKyJObyBzZSBpbmljaWEgbGEgdHJhbnNjcmlwY2nzbi5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorbXNnc3RyICJ1c286IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWNoZXJvXVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJTY3JpcHQgaW5pY2lhZG87IGVsIGZpY2hlcm8gZXMgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvciAlZDogJXNcbiIKK21zZ3N0ciAiRXJyb3IgZGUgZXNjcml0dXJhIGVuICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkIG9uICVzIgorbXNnc3RyICJTY3JpcHQgaW5pY2lhZG8gKCVzKSIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIKK21zZ3N0ciAiRXJyb3IgZGUgZXNjcml0dXJhIGVuICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IG5vIHNlIHB1ZWRlIGVuY29udHJhciBcIl9zdGV4dFwiIGVuICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorIlxuIgorIlNjcmlwdCB0ZXJtaW5hZG8gKCVzKSIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IGRvbmUsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiU2NyaXB0IHRlcm1pbmFkbzsgZWwgZmljaGVybyBlcyAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVucHR5IGZhaWxlZFxuIgorbXNnc3RyICJvcGVucHR5IGhhIGZhbGxhZG9cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIHB0eSdzXG4iCittc2dzdHIgIk5vIHF1ZWRhbiBwdHlcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyA8dGltaW5nZmlsZT4gWzx0eXBlc2NyaXB0PiBbPGRpdmlzb3I+XV1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorIywgZnV6enkKK21zZ2lkICJ3cml0ZSB0byBzdGRvdXQgZmFpbGVkIgorbXNnc3RyICJFcnJvciBhbCBhYnJpciAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJpb2N0bCgpIG5vIGhhIHBvZGlkbyBsZWVyIGxhIGhvcmEgZGUgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgZWwgZmljaGVybyAnJXMnIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJObyBzZSBwdWVkZSBhYnJpciBlbCBmaWNoZXJvICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBubyBoYSBwb2RpZG8gbGVlciBsYSBob3JhIGRlICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IgorbXNnc3RyICIlczogRU9GIGluZXNwZXJhZG8gZW4gZWwgZmljaGVybyAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczogZXJyb3IgZGUgYXJndW1lbnRvLCB1c29cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKK21zZ3N0ciAiICBbIC10ZXJtIG5vbWJyZV90ZXJtaW5hbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlc2V0IF1cbiIKK21zZ3N0ciAiICBbIC1yZXNldCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWluaXRpYWxpemUgXVxuIgorbXNnc3RyICIgIFsgLWluaXRpYWxpemUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1hcHBjdXJzb3JrZXlzIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1hcHBjdXJzb3JrZXlzIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzczCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZGVmYXVsdCBdXG4iCittc2dzdHIgIiAgWyAtZGVmYXVsdCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzUgbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc3CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGV8ZGVmYXVsdCBdXG4iCittc2dzdHIgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGV8ZGVmYXVsdCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJhY2tncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWJhY2tncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODEgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgzCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCittc2dzdHIgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKK21zZ3N0ciAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWludmVyc2VzY3JlZW4gW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWludmVyc2VzY3JlZW4gW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ib2xkIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ib2xkIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmV2ZXJzZSBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmV2ZXJzZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RvcmUgXVxuIgorbXNnc3RyICIgIFsgLXN0b3JlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xlYXIgW2FsbHxyZXN0XSBdXG4iCittc2dzdHIgIiAgWyAtY2xlYXIgW2FsbHxyZXN0XSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKK21zZ3N0ciAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKK21zZ3N0ciAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsYW5rIFswLTYwfGZvcmNlfHBva2VdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGFuayBbMC02MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kdW1wICAgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1kdW1wICAgWzEtTlVNX0NPTlNPTEFTXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGVuZCBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWFwcGVuZCBbMS1OVU1fQ09OU09MQVNdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZmlsZSBkdW1wZmlsZW5hbWUgXVxuIgorbXNnc3RyICIgIFsgLWZpbGUgbm9tYnJlZmljaGVyb3Z1ZWxjbyBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorbXNnc3RyICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorbXNnc3RyICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCittc2dzdHIgIiAgWyAtYmZyZXEgbvptZXJvZnJlY3VlbmNpYSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSBibGFua1xuIgorbXNnc3RyICJObyBzZSBwdWVkZSBiaWZ1cmNhciAoZm9yaykiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGJpZnVyY2FyIChmb3JrKSIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBibGFuayBzdGF0dXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgJXMgJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICJObyBzZSBwdWVkZSAoZGVzKWFjdGl2YXIgZWwgbW9kbyBkZSBhaG9ycm8gZGUgYWxpbWVudGFjafNuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICJFcnJvciBkZSBrbG9nY3RsOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIgorbXNnc3RyICJFcnJvciBhbCBlc2NyaWJpciB2dWVsY28gZGUgcGFudGFsbGFcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTIwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgcmVhZCAlc1xuIgorbXNnc3RyICJObyBzZSBoYSBwb2RpZG8gYWJyaXIgJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJFRFUk0gaXMgbm90IGRlZmluZWQuXG4iCittc2dzdHIgIiVzOiAkVEVSTSBubyBlc3ThIGRlZmluaWRvLlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWRdIFstcCBwaWRmaWxlXSBbLXMgc29ja2V0cGF0aF0gWy1UIHRpbWVvdXRdXG4iCittc2dzdHIgInVzbzogbGFzdCBbLSNdIFstZiBmaWNoZXJvXSBbLXQgdHR5XSBbLWggbm9tYnJlaG9zdF0gW3VzdWFyaW8gLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIFstcnx0XSBbLW4gbnVtXSBbLXMgc29ja2V0cGF0aF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIgICAgICAgJXMgLWwgWyBzZfFhbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTIKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGFyZ3VtZW50cyIKK21zZ3N0ciAiY29sOiBhcmd1bWVudG8gLWwgaW5jb3JyZWN0byAlcy5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorIywgZnV6enkKK21zZ2lkICJzb2NrZXQiCittc2dzdHIgIm5mcyBzb2NrZXQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNzAKKyMsIGZ1enp5Cittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAibmZzIGNvbm5lY3QiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxODkKKyMsIGZ1enp5Cittc2dpZCAid3JpdGUiCittc2dzdHIgIkVzY3JpYmlyIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTk3CisjLCBmdXp6eQorbXNnaWQgInJlYWQgY291bnQiCittc2dzdHIgInJlYWQgJWNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjIwMworbXNnaWQgImJhZCByZXNwb25zZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1dWlkZCBkYWVtb24gYWxyZWFkeSBydW5uaW5nIGF0IHBpZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtIHNvY2tldDogJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgYmluZCB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgJXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxpc3RlbiBvbiB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgJXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHJlYWRpbmcgZnJvbSBjbGllbnQsIGxlbiA9ICVkXG4iCittc2dzdHIgIkVycm9yIGFsIGxlZXIgJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM3OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb3BlcmF0aW9uICVkXG4iCittc2dzdHIgImlkZW50aWZpY2Fkb3IgaW524WxpZG8iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiTvptZXJvIGluduFsaWRvOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNhbGxpbmcgdXVpZGQgZGFlbW9uICglcyk6ICVzXG4iCittc2dzdHIgIkVycm9yIGFsIGNhbWJpYXIgZWwgbW9kbyBkZSAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCByZXBseSBsZW5ndGggZnJvbSBzZXJ2ZXIgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJLaWxsZWQgdXVpZGQgcnVubmluZyBhdCBwaWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRnZW4uYzozMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJVc286ICVzIFtvcGNpb25lc10gZGlzcG9zaXRpdm8gLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpciAuLi4gLWYgXSBub21icmUuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKKyMsIGZ1enp5Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAiTGEgYXNpZ25hY2nzbiBkZSBtZW1vcmlhIChtYWxsb2MpIGhhIGZhbGxhZG8iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTUwCisjLCBmdXp6eQorbXNnaWQgInN0cmR1cCBmYWlsZWQiCittc2dzdHIgIkVycm9yIGFsIGFicmlyICVzIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBwcm9iaW5nIGluaXRpYWxpemF0aW9uIGZhaWxlZCIKK21zZ3N0ciAiIgorIlxuIgorIkVycm9yIGFsIGNlcnJhciBlbCBmaWNoZXJvXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IGFwcGVhcnMgdG8gY29udGFpbiAnJXMnIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiRWwgZGlzY28gJXMgbm8gY29udGllbmUgdW5hIHRhYmxhIGRlIHBhcnRpY2lvbmVzIHbhbGlkYVxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBmb3VuZCBhIG1hZ2ljIHN0cmluZyBhdCBvZmZzZXQgMHglanggLSBpZ25vcmUuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIHNlZWsgdG8gb2Zmc2V0IDB4JWp4IgorbXNnc3RyICIlczogZmFsbG8gYWwgYWJyaXIgJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgaGEgZmFsbGFkb1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXpkIGJ5dGVzIFsiCittc2dzdHIgImJ5dGVzIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJdIGVyYXNlZCBhdCBvZmZzZXQgMHglanggKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjkyIG1vdW50L3N3YXBvbi5jOjE5OCBtb3VudC9zd2Fwb24uYzoyNjYKKyM6IG1vdW50L3N3YXBvbi5jOjQxMSBtb3VudC9zd2Fwb24uYzo1NzAgbW91bnQvc3dhcG9uLmM6NzcyCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTU5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogb3BlbiBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgaGEgZmFsbGFkb1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxNSBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgJyVzJyB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlZhbG9yIGVzdGFibGVjaWRvIGluduFsaWRvOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGRldmljZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICJVc286ICVzIFtvcGNpb25lc10gZGlzcG9zaXRpdm8gLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWEsIC0tYWxsICAgICAgICAgICB3aXBlIGFsbCBtYWdpYyBzdHJpbmdzIChCRSBDQVJFRlVMISlcbiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0tbm8tYWN0ICAgICAgICBldmVyeXRoaW5nIHRvIGJlIGRvbmUgZXhjZXB0IGZvciB0aGUgd3JpdGUoKSBjYWxsXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IHRvIGVyYXNlLCBpbiBieXRlc1xuIgorIiAtcCwgLS1wYXJzYWJsZSAgICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB3aXBlZnMoOCkuXG4iCittc2dzdHIgIlNlIGhhIGNhbWJpYWRvIGxhIGluZm9ybWFjafNuIGRlIGZpbmdlci5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozODcKK21zZ2lkICItLW9mZnNldCBhbmQgLS1hbGwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZTogbm8gc2UgcHVlZGUgZW5jb250cmFyIGVsIG5vbWJyZSBkZSB0dHlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogdGllbmUgZWwgcGVybWlzbyBkZSBlc2NyaXR1cmEgZGVzYWN0aXZhZG8uXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIG5vdCBsb2dnZWQgaW4gb24gJXMuXG4iCittc2dzdHIgIndyaXRlOiAlcyBubyB0aWVuZSB1bmEgc2VzafNuIGluaWNpYWRhIGVuICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIHRpZW5lIGxvcyBtZW5zYWplcyBkZXNhY3RpdmFkb3MgZW4gJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICJ1c286IHdyaXRlIHVzdWFyaW8gW3R0eV1cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICJ3cml0ZTogJXMgbm8gdGllbmUgaW5pY2lhZGEgdW5hIHNlc2nzblxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIHRpZW5lIGxvcyBtZW5zYWplcyBkZXNhY3RpdmFkb3NcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbG9nZ2VkIGluIG1vcmUgdGhhbiBvbmNlOyB3cml0aW5nIHRvICVzXG4iCittc2dzdHIgIiIKKyJ3cml0ZTogJXMgdGllbmUgaW5pY2lhZGEgdW5hIHNlc2nzbiBt4XMgZGUgdW5hIHZlejsgZXNjcmliaWVuZG8gZW4gJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIk1lbnNhamUgZGUgJXNAJXMgKGNvbW8gJXMpIGVuICVzIGEgbGFzICVzIC4uLiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICJNZW5zYWplIGRlICVzQCVzIGVsICVzIGEgbGFzICVzIC4uLiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgImF0ZW5jafNuOiBlcnJvciBhbCBsZWVyICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzIgbW91bnQvZnN0YWIuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgImF0ZW5jafNuOiBubyBzZSBwdWVkZSBhYnJpciAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjb3VsZCBub3Qgb3BlbiAlcyAtIHVzaW5nICVzIGluc3RlYWRcbiIKK21zZ3N0ciAibW91bnQ6IG5vIHNlIGhhIHBvZGlkbyBhYnJpciAlczsgZW4gc3UgbHVnYXIgc2UgdXRpbGl6YSAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisiTm8gc2UgcHVlZGUgY3JlYXIgZWwgZmljaGVybyBkZSBibG9xdWVvICVzOiAlcyAodXRpbGljZSAtbiBwYXJhIG1vZGlmaWNhciAiCisiZXN0ZSB2YWxvcikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisiTm8gc2UgcHVlZGUgZW5sYXphciBlbCBmaWNoZXJvIGRlIGJsb3F1ZW8gJXM6ICVzICh1dGlsaWNlIC1uIHBhcmEgbW9kaWZpY2FyICIKKyJlc3RlIHZhbG9yKSIKKworIzogbW91bnQvZnN0YWIuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyJObyBzZSBwdWVkZSBhYnJpciBlbCBmaWNoZXJvIGRlIGJsb3F1ZW8gJXM6ICVzICh1dGlsaWNlIC1uIHBhcmEgbW9kaWZpY2FyICIKKyJlc3RlIHZhbG9yKSIKKworIzogbW91bnQvZnN0YWIuYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGJsb3F1ZWFyIGVsIGZpY2hlcm8gZGUgYmxvcXVlbyAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo2NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzIgorbXNnc3RyICJObyBzZSBwdWVkZSBibG9xdWVhciBlbCBmaWNoZXJvIGRlIGJsb3F1ZW8gJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MworbXNnaWQgInRpbWVkIG91dCIKK21zZ3N0ciAiVGllbXBvIGRlIGVzcGVyYSBleGNlZGlkbyIKKworIzogbW91bnQvZnN0YWIuYzo2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbGluayAlc1xuIgorIlBlcmhhcHMgdGhlcmUgaXMgYSBzdGFsZSBsb2NrIGZpbGU/XG4iCittc2dzdHIgIiIKKyJObyBzZSBwdWVkZSBjcmVhciBlbmxhY2UgJXNcbiIKKyJQdWVkZSBxdWUgaGF5YSB1biBmaWNoZXJvIGRlIGJsb3F1ZW8gb2Jzb2xldG8uXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICJObyBzZSBwdWVkZSBhYnJpciAlcyAoJXMpIC0gbXRhYiBubyBhY3R1YWxpemFkbyIKKworIzogbW91bnQvZnN0YWIuYzo4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIkVycm9yIGFsIGVzY3JpYmlyICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzo4NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXNcbiIKK21zZ3N0ciAiRXJyb3IgYWwgY2FtYmlhciBlbCBtb2RvIGRlICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iCittc2dzdHIgIkVycm9yIGFsIGNhbWJpYXIgZWwgbW9kbyBkZSAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgcmVuYW1lICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICJObyBzZSBwdWVkZSBjYW1iaWFyIGVsIG5vbWJyZSAlcyBwb3IgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IHNldCBjYXBhY2l0eSBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG5vIHNlIHB1ZWRlIG9idGVuZXIgaW5mb3JtYWNp824gc29icmUgZWwgZGlzcG9zaXRpdm8gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBkZXNwbGF6YW1pZW50byAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjM4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIHRhbWHxbyBs7W1pdGUgJWxsZCIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uICVzICh0eXBlICU8UFJJdTMyPikiCittc2dzdHIgIiwgY2lmcmFkbyAlcyAodGlwbyAlZCkiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJWQiCittc2dzdHIgIiwgZGVzcGxhemFtaWVudG8gJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiLCB0aXBvIGRlIGNpZnJhZG8gJWRcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBnZXQgaW5mbyBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG5vIHNlIHB1ZWRlIG9idGVuZXIgaW5mb3JtYWNp824gc29icmUgZWwgZGlzcG9zaXRpdm8gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgb3BlbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG5vIHNlIHB1ZWRlIGFicmlyIGVsIGRpc3Bvc2l0aXZvICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IC9kZXYgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LiIKK21zZ3N0ciAiJXM6IGVsIHVzdWFyaW8gXCIlc1wiIG5vIGV4aXN0ZS5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ1OSBtb3VudC9sb21vdW50LmM6NjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIlczogbm8gZXhpc3RlIHBlcm1pc28gcGFyYSBtaXJhciBlbiAvZGV2L2xvb3AjIgorCisjOiBtb3VudC9sb21vdW50LmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZnJlZSBsb29wIGRldmljZSIKK21zZ3N0ciAiJXM6IG5vIHNlIGhhIGVuY29udHJhZG8gbmluZ/puIGRpc3Bvc2l0aXZvIGRlIGJ1Y2xlIGxpYnJlIgorCisjOiBtb3VudC9sb21vdW50LmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZT8gKElmIHNvLCByZWNvbXBpbGUgb3IgYG1vZHByb2JlIGxvb3AnLikiCittc2dzdHIgIiIKKyIlczogTm8gc2UgcHVlZGUgZW5jb250cmFyIG5pbmf6biBkaXNwb3NpdGl2byBkZSBidWNsZS4gv1B1ZWRlIHF1ZSBlc3RlXG4iCisiICAgICAgIG76Y2xlbyBubyBzZXBhIGFjZXJjYSBkZWwgZGlzcG9zaXRpdm8gZGUgYnVjbGU/IChFbiB0YWwgY2FzbywgdnVlbHZhICIKKyJhXG4iCisiICAgICAgIHJlYWxpemFyIGxhIGNvbXBpbGFjafNuIG8gYG1vZHByb2JlIGxvb3AnLikiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MzYKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGlsZSByZWFkaW5nIHBhc3NwaHJhc2UiCittc2dzdHIgIk5vIHF1ZWRhIG1lbW9yaWEgYWwgYXVtZW50YXIgZWwgdGFtYfFvIGRlbCBi+mZlci5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiRWwgc2VjdG9yICVkIHlhIGVzdOEgYXNpZ25hZG9cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY5NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICIiCisibW91bnQ6ICVzJXMgZXN04SBwcm90ZWdpZG8gY29udHJhIGVzY3JpdHVyYTsgc2UgbW9udGEgY29tbyBz82xvIGxlY3R1cmEiCisKKyM6IG1vdW50L2xvbW91bnQuYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbG9jayBpbnRvIG1lbW9yeSwgZXhpdGluZy5cbiIKK21zZ3N0ciAiTm8gc2UgcHVkbyBibG9xdWVhciBlbiBtZW1vcmlhLCBzYWxpZW5kby5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBMT09QX1NFVF9GRCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjgxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2V0X2xvb3AoJXMsJXMsJWxsdSwlbGx1KTogc3VjY2Vzc1xuIgorbXNnc3RyICJzZXRfbG9vcCglcywlcywlbGx1KTogZWplY3VjafNuIGNvcnJlY3RhXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVsX2xvb3AoJXMpOiBzdWNjZXNzXG4iCittc2dzdHIgImRlbF9sb29wKCVzKTogZWplY3VjafNuIGNvcnJlY3RhXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZGVsZXRlIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogbm8gc2UgcHVlZGUgc3VwcmltaXIgZWwgZGlzcG9zaXRpdm8gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKyJFc3RlIG1vbnRhamUgc2UgaGEgY29tcGlsYWRvIHNpbiBzb3BvcnRlIGRlIGJ1Y2xlLiBWdWVsdmEgYSByZWFsaXphciBsYSAiCisiY29tcGlsYWNp824uXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyBsb29wX2RldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2l2ZSBpbmZvXG4iCisiICUxJHMgLWEgfCAtLWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgYWxsIHVzZWRcbiIKKyIgJTEkcyAtZCB8IC0tZGV0YWNoIDxsb29wZGV2PiBbPGxvb3BkZXY+IC4uLl0gZGVsZXRlXG4iCisiICUxJHMgLWYgfCAtLWZpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmQgdW51c2VkXG4iCisiICUxJHMgLWMgfCAtLXNldC1jYXBhY2l0eSA8bG9vcGRldj4gICAgICAgICAgIHJlc2l6ZVxuIgorIiAlMSRzIC1qIHwgLS1hc3NvY2lhdGVkIDxmaWxlPiBbLW8gPG51bT5dICAgICBsaXN0IGFsbCBhc3NvY2lhdGVkIHdpdGggIgorIjxmaWxlPlxuIgorIiAlMSRzIFsgb3B0aW9ucyBdIHstZnwtLWZpbmR8bG9vcGRldn0gPGZpbGU+ICBzZXR1cFxuIgorbXNnc3RyICIiCisidXNvOlxuIgorIiAgJXMgZGlzcG9zaXRpdm9fYnVjbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZGFyIGluZm9ybWFjafNuXG4iCisiICAlcyAtZCBkaXNwb3NpdGl2b19idWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBlbGltaW5hclxuIgorIiAgJXMgLWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZW5jdWVudHJhIG5vICIKKyJ1c2Fkb3NcbiIKKyIgICVzIFsgLWUgY2lmcmFkbyBdIFsgLW8gZGVzcGwgXSB7LWZ8ZGlzcF9idWNsZX0gZmljaGVybyAjIGNvbmZpZ3VyYXJcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg5NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWUgfCAtLWVuY3J5cHRpb24gPHR5cGU+IGVuYWJsZSBkYXRhIGVuY3J5cHRpb24gd2l0aCBzcGVjaWZpZWQgPG5hbWUvbnVtPlxuIgorIiAtaCB8IC0taGVscCAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1vIHwgLS1vZmZzZXQgPG51bT4gICAgICBzdGFydCBhdCBvZmZzZXQgPG51bT4gaW50byBmaWxlXG4iCisiICAgICAgLS1zaXplbGltaXQgPG51bT4gICBsb29wIGxpbWl0ZWQgdG8gb25seSA8bnVtPiBieXRlcyBvZiB0aGUgZmlsZVxuIgorIiAtcCB8IC0tcGFzcy1mZCA8bnVtPiAgICAgcmVhZCBwYXNzcGhyYXNlIGZyb20gZmlsZSBkZXNjcmlwdG9yIDxudW0+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBzZXR1cCByZWFkLW9ubHkgbG9vcCBkZXZpY2VcbiIKKyIgICAgICAtLXNob3cgICAgICAgICAgICAgIHByaW50IGRldmljZSBuYW1lICh3aXRoIC1mIDxmaWxlPilcbiIKKyIgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgIHZlcmJvc2UgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDM0IG1vdW50L2xvbW91bnQuYzoxMDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJMb29wIGRldmljZSBpcyAlc1xuIgorbXNnc3RyICJsb29wOiBubyBzZSBwdWVkZSBhYnJpciBlbCBkaXNwb3NpdGl2byAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RvbGVuIGxvb3A9JXMuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiBkZXZpY2UgaXMgYnVzeSIKK21zZ3N0ciAidW1vdW50OiAlczogZGlzcG9zaXRpdm8gb2N1cGFkbyIKKworIzogbW91bnQvbG9tb3VudC5jOjEwODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbG9vcCBzdXBwb3J0IHdhcyBhdmFpbGFibGUgYXQgY29tcGlsZSB0aW1lLiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisiQWwgY29tcGlsYXIgbm8gaGFi7WEgc29wb3J0ZSBkZSBidWNsZSBkaXNwb25pYmxlLiBWdWVsdmEgYSByZWFsaXphciBsYSAiCisiY29tcGlsYWNp824uXG4iCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogaW1wcm9wZXJseSBxdW90ZWQgb3B0aW9uIHN0cmluZyAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdHJhbnNsYXRlZCAlcyAnJXMnIHRvICclcydcbiIKK21zZ3N0ciAibW91bnQ6IG5vIHNlIHB1ZWRlIGVuY29udHJhciAlcyBlbiAlcyBvICVzIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHNlZ/puIG10YWIsICVzIHlhIGVzdOEgbW9udGFkbyBlbiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogc2Vn+m4gbXRhYiwgJXMgZXN04SBtb250YWRvIGVuICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlcyBmb3Igd3JpdGluZzogJXMiCittc2dzdHIgIm1vdW50OiBubyBzZSBwdWVkZSBhYnJpciAlcyBwYXJhIGVzY3JpdHVyYTogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTgxIG1vdW50L21vdW50LmM6MTE5OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIm1vdW50OiBlcnJvciBhbCBlc2NyaWJpciAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGVycm9yIGFsIGNhbWJpYXIgZWwgbW9kbyBkZSAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NjcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIm1vdW50OiBubyBzZSBwdWVkZSBlc3RhYmxlY2VyIGxhIHZlbG9jaWRhZDogJXMiCisKKyM6IG1vdW50L21vdW50LmM6Njc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IG5vIHNlIHB1ZWRlIGVzdGFibGVjZXIgbGEgdmVsb2NpZGFkOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBubyBzZSBwdWVkZSBiaWZ1cmNhciAoZm9yayk6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgJXNcbiIKK21zZ3N0ciAiUHJvYmFuZG8gY29uICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIm1vdW50OiBubyBoYSBlc3BlY2lmaWNhZG8gbmluZ/puIHRpcG8gZGUgc2lzdGVtYSBkZSBmaWNoZXJvcyBwYXJhICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IGFsbCB0eXBlcyBtZW50aW9uZWQgaW4gJXMgb3IgJXNcbiIKK21zZ3N0ciAiICAgICAgIFNlIHByb2JhcuEgY29uIHRvZG9zIGxvcyB0aXBvcyBpbmRpY2Fkb3MgZW4gJXMgbyAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgYW5kIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyBzd2Fwc3BhY2VcbiIKK21zZ3N0ciAiICAgICAgIHkgcGFyZWNlIHF1ZSBzZWEgdW4gZXNwYWNpbyBkZSBpbnRlcmNhbWJpb1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSB0eXBlICVzXG4iCittc2dzdHIgIiAgICAgICBTZSBwcm9iYXLhIGNvbiBlbCB0aXBvICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiCittc2dzdHIgIiVzIHBhcmVjZSBlc3BhY2lvIGRlIGludGVyY2FtYmlvIC0gbm8gbW9udGFkbyIKKworIzogbW91bnQvbW91bnQuYzoxMDAyCittc2dpZCAibW91bnQgZmFpbGVkIgorbXNnc3RyICJtb250YWplIGVycvNuZW8iCisKKyM6IG1vdW50L21vdW50LmM6MTAwNAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBtb3VudCAlcyBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHPzbG8gZWwgdXN1YXJpbyByb290IHB1ZWRlIG1vbnRhciAlcyBlbiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMDc0Cittc2dpZCAibW91bnQ6IGxvb3AgZGV2aWNlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IGRpc3Bvc2l0aXZvIGRlIGJ1Y2xlIGVzcGVjaWZpY2FkbyBkb3MgdmVjZXMiCisKKyM6IG1vdW50L21vdW50LmM6MTA3OQorbXNnaWQgIm1vdW50OiB0eXBlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IHRpcG8gZXNwZWNpZmljYWRvIGRvcyB2ZWNlcyIKKworIzogbW91bnQvbW91bnQuYzoxMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBza2lwcGluZyB0aGUgc2V0dXAgb2YgYSBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDogb21pdGllbmRvIGxhIGNvbmZpZ3VyYWNp824gZGUgdW4gZGlzcG9zaXRpdm8gZGUgYnVjbGVcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIGFzIGxvb3AiCittc2dzdHIgIm1vdW50OiBzZWf6biBtdGFiLCAlcyB5YSBlc3ThIG1vbnRhZG8gZW4gJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTExMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZ29pbmcgdG8gdXNlIHRoZSBsb29wIGRldmljZSAlc1xuIgorbXNnc3RyICJtb3VudDogc2UgdmEgYSB1dGlsaXphciBlbCBkaXNwb3NpdGl2byBkZSBidWNsZSAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBmYWlsZWQgc2V0dGluZyB1cCBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDogZXJyb3IgYWwgY29uZmlndXJhciBkaXNwb3NpdGl2byBkZSBidWNsZVxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNldHVwIGxvb3AgZGV2aWNlIHN1Y2Nlc3NmdWxseVxuIgorbXNnc3RyICJtb3VudDogY29uZmlndXJhY2nzbiBjb3JyZWN0YSBkZSBkaXNwb3NpdGl2byBkZSBidWNsZVxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vICVzIGZvdW5kIC0gY3JlYXRpbmcgaXQuLlxuIgorbXNnc3RyICJtb3VudDogbm8gc2UgaGEgZW5jb250cmFkbyAlczsgc2UgZXN04SBjcmVhbmRvLi4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgIm1vdW50OiBubyBzZSBwdWVkZSBhYnJpciAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTIxNQorbXNnaWQgIm1vdW50OiBhcmd1bWVudCB0byAtcCBvciAtLXBhc3MtZmQgbXVzdCBiZSBhIG51bWJlciIKK21zZ3N0ciAibW91bnQ6IGVsIGFyZ3VtZW50byBwYXJhIC1wIG8gLS1wYXNzLWZkIGRlYmUgc2VyIHVuIG76bWVybyIKKworIzogbW91bnQvbW91bnQuYzoxMjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgb3BlbiAlcyBmb3Igc2V0dGluZyBzcGVlZCIKK21zZ3N0ciAibW91bnQ6IG5vIHNlIHB1ZWRlIGFicmlyICVzIHBhcmEgZXN0YWJsZWNlciBsYSB2ZWxvY2lkYWQiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50OiBubyBzZSBwdWVkZSBlc3RhYmxlY2VyIGxhIHZlbG9jaWRhZDogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTMyMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IHNlZ/puIG10YWIsICVzIHlhIGVzdOEgbW9udGFkbyBlbiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMzgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogd2FybmluZzogJXMgc2VlbXMgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlLlxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIG9jdXBhZG87IHNlIGhhIHZ1ZWx0byBhIG1vbnRhciBjb21vIGRlIHPzbG8gbGVjdHVyYVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTMKK21zZ2lkICIiCisibW91bnQ6IEkgY291bGQgbm90IGRldGVybWluZSB0aGUgZmlsZXN5c3RlbSB0eXBlLCBhbmQgbm9uZSB3YXMgc3BlY2lmaWVkIgorbXNnc3RyICIiCisibW91bnQ6IG5vIHNlIGhhIHBvZGlkbyBkZXRlcm1pbmFyIGVsIHRpcG8gZGUgc2lzdGVtYSBkZSBmaWNoZXJvcyB5IG5vIHNlIGhhXG4iCisiZXNwZWNpZmljYWRvIG5pbmd1bm8iCisKKyM6IG1vdW50L21vdW50LmM6MTQxNgorbXNnaWQgIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIm1vdW50OiBkZWJlIGVzcGVjaWZpY2FyIGVsIHRpcG8gZGUgc2lzdGVtYSBkZSBmaWNoZXJvcyIKKworIzogbW91bnQvbW91bnQuYzoxNDE5Cittc2dpZCAibW91bnQ6IG1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQ6IG1vbnRhamUgZXJy825lbyIKKworIzogbW91bnQvbW91bnQuYzoxNDI1IG1vdW50L21vdW50LmM6MTQ2MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgbm90IGEgZGlyZWN0b3J5IgorbXNnc3RyICJtb3VudDogZWwgcHVudG8gZGUgbW9udGFqZSAlcyBubyBlcyB1biBkaXJlY3RvcmlvIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjcKK21zZ2lkICJtb3VudDogcGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm1vdW50OiBwZXJtaXNvIGRlbmVnYWRvIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjkKK21zZ2lkICJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IgorbXNnc3RyICJtb3VudDogZGViZSBzZXIgc3VwZXJ1c3VhcmlvIHBhcmEgdXRpbGl6YXIgbW91bnQiCisKKyM6IG1vdW50L21vdW50LmM6MTQzMyBtb3VudC9tb3VudC5jOjE0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIGJ1c3kiCittc2dzdHIgIm1vdW50OiAlcyBlc3ThIG9jdXBhZG8iCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IHByb2MgeWEgZXN04SBtb250YWRvIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvciAlcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgeWEgZXN04SBtb250YWRvIG8gJXMgZXN04SBvY3VwYWRvIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogZWwgcHVudG8gZGUgbW9udGFqZSAlcyBubyBleGlzdGUiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgYSBzeW1ib2xpYyBsaW5rIHRvIG5vd2hlcmUiCittc2dzdHIgIm1vdW50OiBlbCBwdW50byBkZSBtb250YWplICVzIGVzIHVuIGVubGFjZSBzaW1i82xpY28gc2luIGRlc3Rpbm8iCisKKyM6IG1vdW50L21vdW50LmM6MTQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBlbCBkaXNwb3NpdGl2byBlc3BlY2lhbCAlcyBubyBleGlzdGUiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorIm1vdW50OiBlbCBkaXNwb3NpdGl2byBlc3BlY2lhbCAlcyBubyBleGlzdGVcbiIKKyIgICAgICAgKHVuIHByZWZpam8gZGUgcnV0YSBubyBlcyB1biBkaXJlY3RvcmlvKVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIG5vdCBtb3VudGVkIGFscmVhZHksIG9yIGJhZCBvcHRpb24iCittc2dzdHIgIm1vdW50OiAlcyBubyBlc3ThIG1vbnRhZG8gdG9kYXbtYSBvIHVuYSBvcGNp824gZXMgaW5jb3JyZWN0YSIKKworIzogbW91bnQvbW91bnQuYzoxNDgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorIiAgICAgICBtaXNzaW5nIGNvZGVwYWdlIG9yIGhlbHBlciBwcm9ncmFtLCBvciBvdGhlciBlcnJvciIKK21zZ3N0ciAiIgorIm1vdW50OiB0aXBvIGRlIHNpc3RlbWEgZGUgZmljaGVyb3MgaW5jb3JyZWN0bywgb3BjafNuIGluY29ycmVjdGEsXG4iCisiICAgICAgIHN1cGVyYmxvcXVlIGluY29ycmVjdG8gZW4gJXMsIGZhbHRhIGxhIHDhZ2luYSBkZSBj82RpZ29zLFxuIgorIiAgICAgICBvIGFsZ/puIG90cm8gZXJyb3IiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4NworbXNnaWQgIiIKKyIgICAgICAgKGZvciBzZXZlcmFsIGZpbGVzeXN0ZW1zIChlLmcuIG5mcywgY2lmcykgeW91IG1pZ2h0XG4iCisiICAgICAgIG5lZWQgYSAvc2Jpbi9tb3VudC48dHlwZT4gaGVscGVyIHByb2dyYW0pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ5NgorbXNnaWQgIiIKKyIgICAgICAgKGNvdWxkIHRoaXMgYmUgdGhlIElERSBkZXZpY2Ugd2hlcmUgeW91IGluIGZhY3QgdXNlXG4iCisiICAgICAgIGlkZS1zY3NpIHNvIHRoYXQgc3IwIG9yIHNkYSBvciBzbyBpcyBuZWVkZWQ/KSIKK21zZ3N0ciAiIgorIiAgICAgICAov3B1ZWRlIHF1ZSBlc3RlIHNlYSBlbCBkaXNwb3NpdGl2byBJREUgZG9uZGUgZXN04VxuIgorIiAgICAgICB1c2FuZG8gaWRlLXNjc2kgZGUgZm9ybWEgcXVlIHNlIG5lY2VzaXRlIHNyMCBvIHNkYT8iCisKKyM6IG1vdW50L21vdW50LmM6MTUwMQorbXNnaWQgIiIKKyIgICAgICAgKGFyZW4ndCB5b3UgdHJ5aW5nIHRvIG1vdW50IGFuIGV4dGVuZGVkIHBhcnRpdGlvbixcbiIKKyIgICAgICAgaW5zdGVhZCBvZiBzb21lIGxvZ2ljYWwgcGFydGl0aW9uIGluc2lkZT8pIgorbXNnc3RyICIiCisiICAgICAgICi/bm8gZXN0YXLhIGludGVudGFuZG8gbW9udGFyIHVuYSBwYXJ0aWNp824gZXh0ZW5kaWRhLFxuIgorIiAgICAgICBlbiBsdWdhciBkZSBhbGd1bmEgcGFydGljafNuIGzzZ2ljYSBxdWUgaGF5YSBkZW50cm8/IgorCisjOiBtb3VudC9tb3VudC5jOjE1MDgKK21zZ2lkICIiCisiICAgICAgIEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gaXMgZm91bmQgaW4gc3lzbG9nIC0gdHJ5XG4iCisiICAgICAgIGRtZXNnIHwgdGFpbCAgb3Igc29cbiIKK21zZ3N0ciAiIgorIiAgIEVuIGFsZ3Vub3MgY2Fzb3Mgc2UgZW5jdWVudHJhIGluZm9ybWFjafNuIGVuIHN5c2xvZywgcHJ1ZWJlXG4iCisiICAgZG1lc2cgfCB0YWlsICAgbyBhbGdvIHBhcmVjaWRvXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTUxNAorbXNnaWQgIm1vdW50IHRhYmxlIGZ1bGwiCittc2dzdHIgInRhYmxhIGRlIGRpc3Bvc2l0aXZvcyBtb250YWRvcyBjb21wbGV0YSIKKworIzogbW91bnQvbW91bnQuYzoxNTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogY2FuJ3QgcmVhZCBzdXBlcmJsb2NrIgorbXNnc3RyICJtb3VudDogJXM6IG5vIHNlIHB1ZWRlIGxlZXIgZWwgc3VwZXJibG9xdWUiCisKKyM6IG1vdW50L21vdW50LmM6MTUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IHVua25vd24gZGV2aWNlIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBkaXNwb3NpdGl2byBkZXNjb25vY2lkbyIKKworIzogbW91bnQvbW91bnQuYzoxNTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB1bmtub3duIGZpbGVzeXN0ZW0gdHlwZSAnJXMnIgorbXNnc3RyICJtb3VudDogdGlwbyBkZSBzaXN0ZW1hIGRlIGZpY2hlcm9zICclcycgZGVzY29ub2NpZG8iCisKKyM6IG1vdW50L21vdW50LmM6MTUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogcHJvYmFibHkgeW91IG1lYW50ICVzIgorbXNnc3RyICJtb3VudDogcHJvYmFibGVtZW50ZSBxdWVy7WEgcmVmZXJpcnNlIGEgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTU0MgorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAibW91bnQ6IL9xdWllcmUgZGVjaXIgJ2lzbzk2NjA/JyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDogv3F1aWVyZSBkZWNpciAndmZhdCc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyBjb24gbvptZXJvIGRlIGRpc3Bvc2l0aXZvIGluY29ycmVjdG8gbyB0aXBvIGRlIHNpc3RlbWEgZGUgZmljaGVyb3MgIgorIiVzIG5vIHNvcG9ydGFkbyIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAibW91bnQ6ICVzIG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGRlIGJsb3F1ZXMgeSC/c3RhdCBmYWxsYT8iCisKKyM6IG1vdW50L21vdW50LmM6MTU1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorIm1vdW50OiBlbCBu+mNsZW8gbm8gcmVjb25vY2UgJXMgY29tbyBkaXNwb3NpdGl2byBkZSBibG9xdWVzXG4iCisiICAgICAgICi/dGFsIHZleiBgaW5zbW9kIGRyaXZlcic/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UgKG1heWJlIHRyeSBgLW8gbG9vcCc/KSIKK21zZ3N0ciAibW91bnQ6ICVzIG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGRlIGJsb3F1ZXMgKHBydWViZSBgLW8gbG9vcCcpIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGRlIGJsb3F1ZXMiCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgbm8gZXMgdW4gZGlzcG9zaXRpdm8gZGUgYmxvcXVlcyB24WxpZG8iCisKKyM6IG1vdW50L21vdW50LmM6MTU3MgorbXNnaWQgImJsb2NrIGRldmljZSAiCittc2dzdHIgImRpc3Bvc2l0aXZvIGRlIGJsb3F1ZXMgIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIKK21zZ3N0ciAidW1vdW50OiBubyBzZSBwdWVkZSBtb250YXIgJXMlcyBkZSBz82xvIGxlY3R1cmEiCisKKyM6IG1vdW50L21vdW50LmM6MTU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQgYnV0IGV4cGxpY2l0IGAtdycgZmxhZyBnaXZlbiIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyVzIGVzdOEgcHJvdGVnaWRvIGNvbnRyYSBlc2NyaXR1cmEgcGVybyBzZSBoYSBkYWRvIGxhIG9wY2nzbiBgLXcnIgorCisjOiBtb3VudC9tb3VudC5jOjE1ODIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgcmVtb3VudCAlcyVzIHJlYWQtd3JpdGUsIGlzIHdyaXRlLXByb3RlY3RlZCIKK21zZ3N0ciAidW1vdW50OiBubyBzZSBwdWVkZSBtb250YXIgJXMlcyBkZSBz82xvIGxlY3R1cmEiCisKKyM6IG1vdW50L21vdW50LmM6MTU5NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQsIG1vdW50aW5nIHJlYWQtb25seSIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyVzIGVzdOEgcHJvdGVnaWRvIGNvbnRyYSBlc2NyaXR1cmE7IHNlIG1vbnRhIGNvbW8gc/NsbyBsZWN0dXJhIgorCisjOiBtb3VudC9tb3VudC5jOjE2MDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIm1vdW50OiBubyBzZSBoYSBlbmNvbnRyYWRvICVzOyBzZSBlc3ThIGNyZWFuZG8uLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxNjEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIgorbXNnc3RyICJtb3VudDogJXMgeWEgZXN04SBtb250YWRvIGVuICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIiIKKyJtb3VudDogbm8gc2UgaGEgZXNwZWNpZmljYWRvIG5pbmf6biB0aXBvOyBzZSBwcmVzdXBvbmUgbmZzIHBvciBsb3MgZG9zICIKKyJwdW50b3NcbiIKKworIzogbW91bnQvbW91bnQuYzoxNzE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICIiCisibW91bnQ6IG5vIHNlIGhhIGVzcGVjaWZpY2FkbyBuaW5n+m4gdGlwbzsgc2UgcHJlc3Vwb25lIHNtYmZzIHBvciBlbCAiCisicHJlZmlqbyAvL1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICJtb3VudDogJXMgeWEgZXN04SBtb250YWRvIGVuICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiBtb3VudCAtViAgICAgICAgICAgICAgICAgOiBwcmludCB2ZXJzaW9uXG4iCisiICAgICAgIG1vdW50IC1oICAgICAgICAgICAgICAgICA6IHByaW50IHRoaXMgaGVscFxuIgorIiAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgOiBsaXN0IG1vdW50ZWQgZmlsZXN5c3RlbXNcbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDogaWRlbSwgaW5jbHVkaW5nIHZvbHVtZSBsYWJlbHNcbiIKKyJTbyBmYXIgdGhlIGluZm9ybWF0aW9uYWwgcGFydC4gTmV4dCB0aGUgbW91bnRpbmcuXG4iCisiVGhlIGNvbW1hbmQgaXMgYG1vdW50IFstdCBmc3R5cGVdIHNvbWV0aGluZyBzb21ld2hlcmUnLlxuIgorIkRldGFpbHMgZm91bmQgaW4gL2V0Yy9mc3RhYiBtYXkgYmUgb21pdHRlZC5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDogbW91bnQgYWxsIHN0dWZmIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAgICAgICBtb3VudCBkZXZpY2UgICAgICAgICAgICAgOiBtb3VudCBkZXZpY2UgYXQgdGhlIGtub3duIHBsYWNlXG4iCisiICAgICAgIG1vdW50IGRpcmVjdG9yeSAgICAgICAgICA6IG1vdW50IGtub3duIGRldmljZSBoZXJlXG4iCisiICAgICAgIG1vdW50IC10IHR5cGUgZGV2IGRpciAgICA6IG9yZGluYXJ5IG1vdW50IGNvbW1hbmRcbiIKKyJOb3RlIHRoYXQgb25lIGRvZXMgbm90IHJlYWxseSBtb3VudCBhIGRldmljZSwgb25lIG1vdW50c1xuIgorImEgZmlsZXN5c3RlbSAob2YgdGhlIGdpdmVuIHR5cGUpIGZvdW5kIG9uIHRoZSBkZXZpY2UuXG4iCisiT25lIGNhbiBhbHNvIG1vdW50IGFuIGFscmVhZHkgdmlzaWJsZSBkaXJlY3RvcnkgdHJlZSBlbHNld2hlcmU6XG4iCisiICAgICAgIG1vdW50IC0tYmluZCBvbGRkaXIgbmV3ZGlyXG4iCisib3IgbW92ZSBhIHN1YnRyZWU6XG4iCisiICAgICAgIG1vdW50IC0tbW92ZSBvbGRkaXIgbmV3ZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgbW91bnQgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXVuYmluZGFibGUgZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgYWxsIHRoZSBtb3VudHMgaW4gYSBtb3VudCBzdWJ0cmVlXG4iCisiY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ycHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJ1bmJpbmRhYmxlIGRpclxuIgorIkEgZGV2aWNlIGNhbiBiZSBnaXZlbiBieSBuYW1lLCBzYXkgL2Rldi9oZGExIG9yIC9kZXYvY2Ryb20sXG4iCisib3IgYnkgbGFiZWwsIHVzaW5nICAtTCBsYWJlbCAgb3IgYnkgdXVpZCwgdXNpbmcgIC1VIHV1aWQgLlxuIgorIk90aGVyIG9wdGlvbnM6IFstbmZGcnN2d10gWy1vIG9wdGlvbnNdIFstcCBwYXNzd2RmZF0uXG4iCisiRm9yIG1hbnkgbW9yZSBkZXRhaWxzLCBzYXkgIG1hbiA4IG1vdW50IC5cbiIKK21zZ3N0ciAiIgorIlVzbzogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogbXVlc3RyYSBsYSB2ZXJzafNuXG4iCisiICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBtdWVzdHJhIGVzdGEgYXl1ZGFcbiIKKyIgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IG11ZXN0cmEgbG9zIHNpc3RlbWFzIGRlIGZpY2hlcm9zICBtb250YWRvc1xuIgorIiAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDog7WRlbSwgaW5jbHV5ZW5kbyBldGlxdWV0YXMgZGUgdm9sdW1lblxuIgorIkhhc3RhIGFxde0gbGEgcGFydGUgaW5mb3JtYXRpdmEuIFZheWFtb3MgYWwgbW9udGFqZS5cbiIKKyJMYSBvcmRlbiBlcyBgbW91bnQgWy10IHRpcG9zZl0gY29zYSBzaXRpby5cbiIKKyJMb3MgZGV0YWxsZXMgcXVlIHNlIGVuY3VlbnRyYW4gZW4gL2V0Yy9mc3RhYiBzZSBwdWVkZW4gb21pdGlyLlxuIgorIiAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDogbW9udGEgdG9kbyBsbyBxdWUgaGF5IGVuIC9ldGMvZnN0YWJcbiIKKyIgICAgIG1vdW50IGRpc3Bvc2l0aXZvICAgICAgICA6IG1vbnRhIGVsIGRpc3Bvc2l0aXZvIGVuIGVsIHNpdGlvIGNvbm9jaWRvXG4iCisiICAgICBtb3VudCBkaXJlY3RvcmlvICAgICAgICAgOiBtb250YSBlbCBkaXNwb3NpdGl2byBjb25vY2lkbyBhcXXtXG4iCisiICAgICBtb3VudCAtdCB0aXBvIGRpc3AgZGlyICAgOiBvcmRlbiBtb3VudCBvcmRpbmFyaWFcbiIKKyJUZW5nYSBlbiBjdWVudGEgcXVlIHVubyBubyBtb250YSByZWFsbWVudGUgdW4gZGlzcG9zaXRpdm8sIHVubyBtb250YSB1blxuIgorInNpc3RlbWEgZGUgZmljaGVyb3MgKGRlbCB0aXBvIGRhZG8pIHF1ZSBzZSBlbmN1ZW50cmEgZW4gZWwgZGlzcG9zaXRpdm8uXG4iCisiVGFtYmnpbiBzZSBwdWVkZSBtb250YXIgdW4g4XJib2wgZGUgZGlyZWN0b3Jpb3MgeWEgdmlzaWJsZSBlbiBvdHJvIHNpdGlvOlxuIgorIiAgICAgbW91bnQgLS1iaW5kIGRpcmFudGlndW8gZGlybnVldm9cbiIKKyJvIG1vdmVyIHVuIHN1YuFyYm9sOlxuIgorIiAgICAgbW91bnQgLS1tb3ZlIGRpcmFudGlndW8gZGlybnVldm9cbiIKKyJTZSBwdWVkZSBkYXIgdW4gZGlzcG9zaXRpdm8gbWVkaWFudGUgZWwgbm9tYnJlLCBkaWdhbW9zIC9kZXYvaGRhMSBvIC9kZXYvIgorImNkcm9tLFxuIgorIm8gbWVkaWFudGUgbGEgZXRpcXVldGEsIHV0aWxpemFuZG8gLUwgZXRpcXVldGEsIG8gbWVkaWFudGUgdXVpZCwgbWVkaWFudGUgLVUgIgorInV1aWQuXG4iCisiT3RyYXMgb3BjaW9uZXM6IFstbmZGcnN2d10gWy1vIG9wY2lvbmVzXSBbLXAgcGFzc3dkZmRdLlxuIgorIkVzY3JpYmEgbWFuIDggbW91bnQgcGFyYSBzYWJlciBtdWNobyBt4XMuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiBz82xvIGVsIHVzdWFyaW8gcm9vdCBwdWVkZSBlZmVjdHVhciBlc3RhIGFjY2nzbiIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6IHPzbG8gZWwgdXN1YXJpbyByb290IHB1ZWRlIGVmZWN0dWFyIGVzdGEgYWNjafNuIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJubyBzZSBoYSBtb250YWRvIG5hZGEiCisKKyM6IG1vdW50L21vdW50LmM6MjMwNiBtb3VudC9tb3VudC5jOjIzMzIKK21zZ2lkICJtb3VudDogbm8gc3VjaCBwYXJ0aXRpb24gZm91bmQiCittc2dzdHIgIm1vdW50OiBubyBzZSBoYSBlbmNvbnRyYWRvIGVzdGEgcGFydGljafNuIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IGZpbmQgJXMgaW4gJXMgb3IgJXMiCittc2dzdHIgIm1vdW50OiBubyBzZSBwdWVkZSBlbmNvbnRyYXIgJXMgZW4gJXMgbyAlcyIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiB3YXJuaW5nOiBubyBmaW5hbCBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgJXNcbiIKK21zZ3N0ciAiW21udGVudF06IGF0ZW5jafNuOiBubyBoYXkgbmluZ3VuYSBudWV2YSBs7W5lYSBmaW5hbCBhbCBmaW5hbCBkZSAlc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiW21udGVudF06IGxhIGztbmVhICVkIGRlICVzIGVzIGluY29ycmVjdGElc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTkKK21zZ2lkICI7IHJlc3Qgb2YgZmlsZSBpZ25vcmVkIgorbXNnc3RyICI7IGVsIHJlc3RvIGRlbCBmaWNoZXJvIG5vIHNlIHRpZW5lIGVuIGN1ZW50YSIKKworIzogbW91bnQvc3VuZHJpZXMuYzozMgorbXNnaWQgImJ1ZyBpbiB4c3RybmR1cCBjYWxsIgorbXNnc3RyICJFcnJvciBlbiBsYSBsbGFtYWRhIHhzdHJuZHVwIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgIk5vIGhheSBzdWZpY2llbnRlIG1lbW9yaWEiCisKKyM6IG1vdW50L3N3YXBvbi5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgPHNwZWNpYWw+IHBhcmFtZXRlcjpcbiIKKyIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxmaWxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGZpbGUgdG8gYmUgdXNlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCBwcmlvcml0eV0gWy12XSBbLWZdIDxzcGVjaWFsPiAgZW5hYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjEwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBzd2Fwc1xuIgorIiAlMSRzIFstdl0gPHNwZWNpYWw+ICAgICAgICAgICAgICAgZGlzYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiVzOiBFT0YgaW5lc3BlcmFkbyBlbiBlbCBmaWNoZXJvICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIyMworIywgZnV6enkKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAiTGEgYmlmdXJjYWNp824gKGZvcmspIGhhIGZhbGxhZG9cbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjM5CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2IGZhaWxlZCIKK21zZ3N0ciAiTGEgZWplY3VjafNuIChleGVjKSBoYSBmYWxsYWRvXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI0NworIywgZnV6enkKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgaGEgZmFsbGFkbyIKKworIzogbW91bnQvc3dhcG9uLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbHNlZWsgZmFpbGVkIgorbXNnc3RyICJFcnJvciBkZSBi+nNxdWVkYSIKKworIzogbW91bnQvc3dhcG9uLmM6Mjc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIKK21zZ3N0ciAiRXJyb3IgYWwgYWJyaXIgJXMiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZm91bmQgc3dhcCBzaWduYXR1cmU6IHZlcnNpb24gJWQsIHBhZ2Utc2l6ZSAlZCwgJXMgYnl0ZSBvcmRlciIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJkaWZmZXJlbnQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5CisjLCBmdXp6eQorbXNnaWQgInNhbWUiCittc2dzdHIgIk5vbWJyZSIKKworIzogbW91bnQvc3dhcG9uLmM6Mzg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgIkVycm9yIGRlIGL6c3F1ZWRhIgorCisjOiBtb3VudC9zd2Fwb24uYzozOTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgIiIKKyJzd2Fwb246IGF0ZW5jafNuOiAlcyB0aWVuZSBwZXJtaXNvcyAlMDRvIHF1ZSBubyBzb24gc2VndXJvcywgc2Ugc3VnaWVyZSAlIgorIjA0b1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyAtIGl0IGFwcGVhcnMgdG8gaGF2ZSBob2xlcy4iCittc2dzdHIgInN3YXBvbjogb21pdGllbmRvIGVsIGZpY2hlcm8gJXM7IHBhcmVjZSBxdWUgdGllbmUgaHVlY29zLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBnZXQgc2l6ZSBmYWlsZWQiCittc2dzdHIgIkVycm9yIGRlIGL6c3F1ZWRhIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgc3dhcCBoZWFkZXIgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbGFzdF9wYWdlIDB4JTA4bGx4IGlzIGxhcmdlciB0aGFuIGFjdHVhbCBzaXplIG9mIHN3YXBzcGFjZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4gKFVzZSAtLWZpeHBnc3ogdG8gcmVpbml0aWFsaXplIGl0LikiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuIFJld3JpdGluZyB0aGUgc3dhcCBzaWduYXR1cmUuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ3OCBtb3VudC9zd2Fwb24uYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgb24gJXNcbiIKK21zZ3N0ciAiJXMgZW4gJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9uIGZhaWxlZCIKK21zZ3N0ciAiRXJyb3IgZGUgYvpzcXVlZGEiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBlbmNvbnRyYXIgXCJfc3RleHRcIiBlbiAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDAKKyMsIGZ1enp5Cittc2dpZCAiTm90IHN1cGVydXNlci4iCittc2dzdHIgIk5vIGVzIGVsIHN1cGVydXN1YXJpby5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgIkVycm9yIGRlIGL6c3F1ZWRhIgorCisjOiBtb3VudC9zd2Fwb24uYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyB1bnN1cHBvcnRlZCBwcm9ncmFtIG5hbWUgKG11c3QgYmUgJ3N3YXBvbicgb3IgJ3N3YXBvZmYnKS4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIC1mXG4iCittc2dzdHIgInVtb3VudDogY29tcGlsYWRvIHNpbiBzb3BvcnRlIHBhcmEgLWZcbiIKKworIzogbW91bnQvdW1vdW50LmM6MTExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJtb3VudDogbm8gc2UgcHVlZGUgZXN0YWJsZWNlciBsYSB2ZWxvY2lkYWQ6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IG5vIHNlIHB1ZWRlIGVzdGFibGVjZXIgbGEgdmVsb2NpZGFkOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJ1bW91bnQ6IG5vIHNlIHB1ZWRlIGJpZnVyY2FyIChmb3JrKTogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlczogZGlzcG9zaXRpdm8gZGUgYmxvcXVlcyBpbnbhbGlkbyIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBubyBtb250YWRvIgorCisjOiBtb3VudC91bW91bnQuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogY2FuJ3Qgd3JpdGUgc3VwZXJibG9jayIKK21zZ3N0ciAidW1vdW50OiAlczogbm8gc2UgcHVlZGUgZXNjcmliaXIgZWwgc3VwZXJibG9xdWUiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgZm91bmQiCittc2dzdHIgInVtb3VudDogJXM6IG5vIHNlIGhhIGVuY29udHJhZG8iCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBtdXN0IGJlIHN1cGVydXNlciB0byB1bW91bnQiCittc2dzdHIgInVtb3VudDogJXM6IGRlYmUgc2VyIHN1cGVydXN1YXJpbyBwYXJhIHV0aWxpemFyIHVtb3VudCIKKworIzogbW91bnQvdW1vdW50LmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGJsb2NrIGRldmljZXMgbm90IHBlcm1pdHRlZCBvbiBmcyIKK21zZ3N0ciAiIgorInVtb3VudDogJXM6IGRpc3Bvc2l0aXZvcyBkZSBibG9xdWVzIG5vIHBlcm1pdGlkb3MgZW4gc2lzdGVtYSBkZSBmaWNoZXJvcyIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHVtb3VudDIsIHRyeWluZyB1bW91bnQuLi5cbiIKK21zZ3N0ciAidW1vdW50MiBubyBleGlzdGU7IHNlIGVzdOEgcHJvYmFuZG8gY29uIHVtb3VudC4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBidXN5IC0gcmVtb3VudGVkIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIG9jdXBhZG87IHNlIGhhIHZ1ZWx0byBhIG1vbnRhciBjb21vIGRlIHPzbG8gbGVjdHVyYVxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb3VsZCBub3QgcmVtb3VudCAlcyByZWFkLW9ubHlcbiIKK21zZ3N0ciAidW1vdW50OiBubyBzZSBoYSBwb2RpZG8gdm9sdmVyIGEgbW9udGFyICVzIGNvbW8gZGUgc/NsbyBsZWN0dXJhXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1bW91bnRlZFxuIgorbXNnc3RyICJTZSBoYSBlamVjdXRhZG8gdW1vdW50IGVuICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjM2NworbXNnaWQgInVtb3VudDogY2Fubm90IGZpbmQgbGlzdCBvZiBmaWxlc3lzdGVtcyB0byB1bm1vdW50IgorbXNnc3RyICIiCisidW1vdW50OiBubyBzZSBwdWVkZSBlbmNvbnRyYXIgbGlzdGEgZGUgc2lzdGVtYXMgZGUgZmljaGVyb3MgcGFyYSBkZXNtb250YXIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKK21zZ3N0ciAiIgorIlVzbzogICB1bW91bnQgWy1oVl1cbiIKKyIgICAgICAgdW1vdW50IC1hIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3BjaW9uZXNdXG4iCisiICAgICAgIHVtb3VudCBbLWZdIFstcl0gWy1uXSBbLXZdIHNwZWNpYWwgfCBub2RlLi4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ2OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJFbCBzZWN0b3IgJWQgeWEgZXN04SBhc2lnbmFkb1xuIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBub3QgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIkVsIHNlY3RvciAlZCB5YSBlc3ThIGFzaWduYWRvXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ4NworbXNnaWQgIkNhbm5vdCB1bW91bnQgXCJcIlxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBkZXNtb250YXIgXCJcIlxuIgorCisjOiBtb3VudC91bW91bnQuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIHVtb3VudCAlc1xuIgorbXNnc3RyICJTZSBlc3ThIGludGVudGFuZG8gZWplY3V0YXIgdW1vdW50IGVuICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZW5jb250cmFyICVzIGVuIG10YWJcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IG1vdW50ZWQgKGFjY29yZGluZyB0byBtdGFiKSIKK21zZ3N0ciAidW1vdW50OiAlcyBubyBlc3ThIG1vbnRhZG8gKHNlZ/puIG10YWIpIgorCisjOiBtb3VudC91bW91bnQuYzo1NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBpdCBzZWVtcyAlcyBpcyBtb3VudGVkIG11bHRpcGxlIHRpbWVzIgorbXNnc3RyICJ1bW91bnQ6IHBhcmVjZSBxdWUgJXMgc2UgaGEgbW9udGFkbyB2YXJpYXMgdmVjZXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBpbiB0aGUgZnN0YWIgKGFuZCB5b3UgYXJlIG5vdCByb290KSIKK21zZ3N0ciAidW1vdW50OiAlcyBubyBlc3ThIGVuIGZzdGFiICh5IHVzdGVkIG5vIGVzIGVsIHVzdWFyaW8gcm9vdCkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIG1vdW50IGRpc2FncmVlcyB3aXRoIHRoZSBmc3RhYiIKK21zZ3N0ciAidW1vdW50OiBtb250YWplIGRlICVzIG5vIGNvbmN1ZXJkYSBjb24gZnN0YWIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAidW1vdW50OiBz82xvICVzIHB1ZWRlIGRlc21vbnRhciAlcyBkZXNkZSAlcyIKKworIzogbW91bnQvdW1vdW50LmM6NzAxCittc2dpZCAidW1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgInVtb3VudDogc/NsbyBlbCB1c3VhcmlvIHJvb3QgcHVlZGUgZWZlY3R1YXIgZXN0YSBhY2Np824iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MuXG4iCisiXG4iCisiU2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIkdldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiXG4iCisiU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX1JSIChkZWZhdWx0KVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgb3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHNob3cgbWluIGFuZCBtYXggdmFsaWQgcHJpb3JpdGllc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKyIgIC1WIHwgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJFcnJvciBhbCBlc2NyaWJpciBsYSBwYXJ0aWNp824gZW4gJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwb2xpY3k6ICIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVua25vd25cbiIKK21zZ3N0ciAiZGVzY29ub2NpZG8iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIGF0dHJpYnV0ZXMiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTE1CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcHJpb3JpdHk6ICVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG1pbi9tYXggcHJpb3JpdHlcdDogJWQvJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIk5GUyBzb2JyZSBUQ1Agbm8gZXN04SBzb3BvcnRhZG8uXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICIlczogZmFsbG8gYWwgYWJyaXIgJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjI1Cittc2dpZCAiY3VycmVudCIKK21zZ3N0ciAiYWN0dWFsIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzMKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHByaW9yaXR5IgorbXNnc3RyICJFcnJvciBhbCBlc2NyaWJpciBsYSBwYXJ0aWNp824gZW4gJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAiRXJyb3IgYWwgZXNjcmliaXIgbGEgcGFydGljafNuIGVuICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0MgorIywgZnV6enkKK21zZ2lkICJuZXciCittc2dzdHIgIm51ZXZvICIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBubyBoYSBwb2RpZG8gbGVlciBsYSBob3JhIGRlICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjU3CisjLCBmdXp6eQorbXNnaWQgImlvcHJpb19nZXQgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IGhhIGZhbGxhZG9cbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorIywgZnV6enkKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBoYSBmYWxsYWRvXG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImlvbmljZSAtIHNldHMgb3IgZ2V0cyBwcm9jZXNzIGlvIHNjaGVkdWxpbmcgY2xhc3MgYW5kIHByaW9yaXR5LlxuIgorIlxuIgorIlVzYWdlOlxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIC1wIDxwaWQ+IFs8cGlkPiAuLi5dXG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gPGNvbW1hbmQ+IFs8YXJnPiAuLi5dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1uIDxjbGFzc2RhdGE+ICAgICAgY2xhc3MgZGF0YSAoMC03LCBsb3dlciBiZWluZyBoaWdoZXIgcHJpbylcbiIKKyIgIC1jIDxjbGFzcz4gICAgICAgICAgc2NoZWR1bGluZyBjbGFzc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAwOiBub25lLCAxOiByZWFsdGltZSwgMjogYmVzdC1lZmZvcnQsIDM6IGlkbGVcbiIKKyIgIC10ICAgICAgICAgICAgICAgICAgaWdub3JlIGZhaWx1cmVzXG4iCisiICAtaCAgICAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEwIHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcGFyc2UgbnVtYmVyICclcyciCittc2dzdHIgIm5vIHNlIHB1ZWRlIGFicmlyICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgIkxhIGVqZWN1Y2nzbiAoZXhlYykgaGEgZmFsbGFkb1xuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICIiCisiRGViZSBzZXIgZWwgdXN1YXJpbyByb290IHBhcmEgZGVmaW5pciBlbCBjb21wb3J0YW1pZW50byBkZSBDdHJsLUFsdC1TdXByLlxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorbXNnc3RyICJVc286IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiRmljaGVybyAlcywgcGFyYSB2YWxvciBkZSB1bWJyYWwgJWx1LCBt4XhpbW8gZGUgY2FyYWN0ZXJlcyBlbiBmaWZvIGZ1ZSAlZFxuIgorInkgdmVsb2NpZGFkIGRlIHRyYW5zZmVyZW5jaWEgbeF4aW1hIGVuIGNhcmFjdGVyZXMgcG9yIHNlZ3VuZG8gZnVlICVmXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1IGFuZCB0aW1yb3V0IHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzICIKKyJpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKyJGaWNoZXJvICVzLCBwYXJhIHZhbG9yIGRlIHVtYnJhbCAlbHUgeSB2YWxvciBkZSB0aWVtcG8gZGUgZXNwZXJhICVsdSwgbeF4aW1vICIKKyJkZSBjYXJhY3RlcmVzIGVuIGZpZm8gZnVlICVkXG4iCisieSB2ZWxvY2lkYWQgZGUgdHJhbnNmZXJlbmNpYSBt4XhpbWEgZW4gY2FyYWN0ZXJlcyBwb3Igc2VndW5kbyBmdWUgJWZcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGludGVydmFsIHZhbHVlOiAlc1xuIgorbXNnc3RyICJWYWxvciBkZSBpbnRlcnZhbG8gaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZhbG9yIGVzdGFibGVjaWRvIGluduFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVmFsb3IgcHJlZGV0ZXJtaW5hZG8gaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVmFsb3IgZGUgaG9yYSBlc3RhYmxlY2lkbyBpbnbhbGlkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVmFsb3IgZGUgaG9yYSBwcmVkZXRlcm1pbmFkbyBpbnbhbGlkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstcSBbLWkgaW50ZXJ2YWxdXSAoWy1zIHZhbHVlXXxbLVMgdmFsdWVdKSAoWy10IHZhbHVlXXxbLVQgdmFsdWVdKSAiCisiWy1nfC1HXSBmaWxlIFtmaWxlLi4uXVxuIgorbXNnc3RyICIiCisiVXNvOiAlcyBbLXEgWy1pIGludGVydmFsb11dIChbLXMgdmFsb3JdfFstUyB2YWxvcl0pIChbLXQgdmFsb3JdfFstVCB2YWxvcl0pICIKKyJbLWd8LUddIGZpY2hlcm8gW2ZpY2hlcm8uLi5dXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTAgc3lzLXV0aWxzL2N5dHVuZS5jOjI2OSBzeXMtdXRpbHMvY3l0dW5lLmM6Mjg5CisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIGVzdGFibGVjZXIgJXMgZW4gZWwgdW1icmFsICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aW1lIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZXN0YWJsZWNlciAlcyBlbiBlbCB1bWJyYWwgZGUgaG9yYSAlZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIk5vIHNlIHB1ZWRlIG9idGVuZXIgZWwgdW1icmFsIHBhcmEgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgb2J0ZW5lciBlbCB0aWVtcG8gZGUgZXNwZXJhIHBhcmEgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIHVtYnJhbCBhY3R1YWwgeSAlbGQgdGllbXBvIGRlIGVzcGVyYSBhY3R1YWxcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGRlZmF1bHQgdGhyZXNob2xkIGFuZCAlbGQgZGVmYXVsdCB0aW1lb3V0XG4iCittc2dzdHIgIiVzOiAlbGQgdW1icmFsIHByZWRldGVybWluYWRvIHkgJWxkIHRpZW1wbyBkZSBlc3BlcmEgcHJlZGV0ZXJtaW5hZG9cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMyNworbXNnaWQgIkNhbid0IHNldCBzaWduYWwgaGFuZGxlciIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZXN0YWJsZWNlciBlbCBtYW5lamFkb3IgZGUgc2XxYWxlcyIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAiZ2V0dGltZW9mZGF5IGhhIGZhbGxhZG8iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozNDQgc3lzLXV0aWxzL2N5dHVuZS5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBpc3N1ZSBDWUdFVE1PTiBvbiAlczogJXNcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgZW1pdGlyIENZR0VUTU9OIGVuICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdS8lbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6ICVsdSBlbnRlcm9zLCAlbHUvJWx1IGNhcmFjdGVyZXM7IGZpZm86ICVsdSB1bWJyYWwsICVsdSB0aWVtcG9fZXNwZXJhLCAlIgorImx1IG3heGltbywgJWx1IGFob3JhXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgZW50ZXJvcy9zZWcuOyAlZiByZWNlcGNp824sICVmIGVudu1vIChjYXJhY3RlcmVzL3NlZy4pXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorIiVzOiAlbHUgZW50ZXJvcywgJWx1IGNhcmFjdGVyZXM7IGZpZm86ICVsdSB1bWJyYWwsICVsdSB0aWVtcG9fZXNwZXJhLCAlbHUgIgorIm3heGltbywgJWx1IGFob3JhXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgZW50ZXJvcy9zZWcuOyAlZiByZWNlcGNp824gKGNhcmFjdGVyZXMvc2VnLilcbiIKKworIzogc3lzLXV0aWxzL2RtZXNnLmM6NDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstbiBsZXZlbF0gWy1yXSBbLXMgYnVmc2l6ZV1cbiIKK21zZ3N0ciAiVXNvOiAlcyBbLWNdIFstbiBuaXZlbF0gWy1zIHRhbWHxb2L6ZmVyXVxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxmaWxlbmFtZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICJVc286ICVzIFtvcGNpb25lc10gZGlzcG9zaXRpdm8gLi4uXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLWtlZXAtc2l6ZSAgICAgZG9uJ3QgbW9kaWZ5IHRoZSBsZW5ndGggb2YgdGhlIGZpbGVcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCisiIC1sLCAtLWxlbmd0aCA8bnVtPiAgbGVuZ3RoIG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3CisjLCBmdXp6eQorbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgIkhheSBkZW1hc2lhZG9zIGFyZ3VtZW50b3MuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDkKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBsZW5ndGggdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJWYWxvciBlc3RhYmxlY2lkbyBpbnbhbGlkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9mZnNldCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlZhbG9yIGVzdGFibGVjaWRvIGluduFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUzCisjLCBmdXp6eQorbXNnaWQgIm5vIGZpbGVuYW1lIHNwZWNpZmllZC4iCittc2dzdHIgIk5vIHNlIGhhIGVzcGVjaWZpY2FkbyBsYSBvcGNp824gLS1kYXRlLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTczCittc2dpZCAia2VlcCBzaXplIG1vZGUgKC1uIG9wdGlvbikgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhbGxvY2F0ZSBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgaGEgZmFsbGFkb1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzo2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICUxJHMgWy1zeHVuXVstdyAjXSBmZCNcbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGZpbGUgWy1jXSBjb21tYW5kLi4uXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBkaXJlY3RvcnkgWy1jXSBjb21tYW5kLi4uXG4iCisiICAtcyAgLS1zaGFyZWQgICAgIEdldCBhIHNoYXJlZCBsb2NrXG4iCisiICAteCAgLS1leGNsdXNpdmUgIEdldCBhbiBleGNsdXNpdmUgbG9ja1xuIgorIiAgLXUgIC0tdW5sb2NrICAgICBSZW1vdmUgYSBsb2NrXG4iCisiICAtbiAgLS1ub25ibG9jayAgIEZhaWwgcmF0aGVyIHRoYW4gd2FpdFxuIgorIiAgLXcgIC0tdGltZW91dCAgICBXYWl0IGZvciBhIGxpbWl0ZWQgYW1vdW50IG9mIHRpbWVcbiIKKyIgIC1vICAtLWNsb3NlICAgICAgQ2xvc2UgZmlsZSBkZXNjcmlwdG9yIGJlZm9yZSBydW5uaW5nIGNvbW1hbmRcbiIKKyIgIC1jICAtLWNvbW1hbmQgICAgUnVuIGEgc2luZ2xlIGNvbW1hbmQgc3RyaW5nIHRocm91Z2ggdGhlIHNoZWxsXG4iCisiICAtaCAgLS1oZWxwICAgICAgIERpc3BsYXkgdGhpcyB0ZXh0XG4iCisiICAtViAgLS12ZXJzaW9uICAgIERpc3BsYXkgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjE5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGNvbW1hbmQgYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgbmVjZXNpdGEgdW4gYXJndW1lbnRvXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IG5vIHNlIHB1ZWRlIGFicmlyICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICJO+m1lcm8gaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjI5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICJMYSBiaWZ1cmNhY2nzbiAoZm9yaykgaGEgZmFsbGFkb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyJcbiIKK21zZ3N0ciAiVXNvOiAlcyBbb3BjaW9uZXNdIGRpc3Bvc2l0aXZvIC4uLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDIKK21zZ2lkICJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTZWdtZW50byBkZSBtZW1vcmlhIGNvbXBhcnRpZGEgc2htaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUwCittc2dpZCAiY3JlYXRlIG1lc3NhZ2UgcXVldWUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBxdWV1ZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIkNvbGEgZGUgbWVuc2FqZXMgbXNxaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4CisjLCBmdXp6eQorbXNnaWQgImNyZWF0ZSBzZW1hcGhvcmUgZmFpbGVkIgorbXNnc3RyICJzZW3hZm9yb3MgYXNpZ25hZG9zID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZW1hcGhvcmUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZW1pZCBkZSBtYXRyaXogZGUgc2Vt4WZvcm9zPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjY0CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWQ6ICVzXG4iCittc2dzdHIgImlkZW50aWZpY2Fkb3IgaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCByZW1vdmUgaWQgJXMgKCVzKVxuIgorbXNnc3RyICJubyBzZSBwdWVkZSBlbGltaW5hciBlbCBpZGVudGlmaWNhZG9yICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVwcmVjYXRlZCB1c2FnZTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCittc2dzdHIgInVzbyBvYnNvbGV0bzogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duIHJlc291cmNlIHR5cGU6ICVzXG4iCittc2dzdHIgInRpcG8gZGUgcmVjdXJzbyBkZXNjb25vY2lkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAicmVjdXJzbyhzKSBlbGltaW5hZG9cbiIKKworIyBGYWx0YXLtYSB2ZXIgY/NtbyBkZWJlIHRyYWR1Y2lyc2UgIm1zcSIsICJzaG0iIHkgInNlbSIuCisjIEVzdOEgZXhwbGljYWRvIGVuIGlwY3MoOCksIHBlcm8gbG8gdm95IGEgZGVqYXIgYXPtIGRlIG1vbWVudG8uCisjIEZJWE1FOiBQb3NpYmxlIGluY29uc2lzdGVuY2lhIG1zcWlkIC0+IG1zZ2lkCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCittc2dzdHIgIiIKKyJ1c286ICVzIFsgWy1xIGlkLW1zcV0gWy1tIGlkLXNobV0gWy1zIGlkLXNlbV1cbiIKKyIgICAgICAgIFstUSBjbGF2ZS1tc2ddIFstTSBjbGF2ZS1zaG1dIFstUyBjbGF2ZS1zZW1dIC4uLiBdXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiJXM6IG9wY2nzbiBpbGVnYWwgLS0gJWNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGtleSAoJXMpXG4iCittc2dzdHIgIiVzOiBjbGF2ZSBpbGVnYWwgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDYgc3lzLXV0aWxzL2lwY3JtLmM6MjM4Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGtleSIKK21zZ3N0ciAicGVybWlzbyBkZW5lZ2FkbyBwYXJhIGxhIGNsYXZlIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAiY2xhdmUgeWEgZWxpbWluYWRhIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTIgc3lzLXV0aWxzL2lwY3JtLmM6MjQzCittc2dpZCAiaW52YWxpZCBrZXkiCittc2dzdHIgImNsYXZlIGluduFsaWRhIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgImVycm9yIGRlc2Nvbm9jaWRvIGVuIGxhIGNsYXZlIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgInBlcm1pc28gZGVuZWdhZG8gcGFyYSBlbCBpZGVudGlmaWNhZG9yIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICJpZGVudGlmaWNhZG9yIGluduFsaWRvIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQgaWQiCittc2dzdHIgImlkZW50aWZpY2Fkb3IgeWEgZWxpbWluYWRvIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICJlcnJvciBkZXNjb25vY2lkbyBlbiBlbCBpZGVudGlmaWNhZG9yIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzICglcylcbiIKK21zZ3N0ciAiJXM6ICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIGFyZ3VtZW50OiAlc1xuIgorbXNnc3RyICIlczogYXJndW1lbnRvIGRlc2Nvbm9jaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZSA6ICVzIC1hc21xIC10Y2x1cCBcbiIKK21zZ3N0ciAidXNvOiAlcyAtYXNtcSAtdGNsdXAgXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorbXNnc3RyICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyAtaCBmb3IgaGVscC5cbiIKK21zZ3N0ciAiXHQlcyAtaCBwYXJhIG9idGVuZXIgYXl1ZGEuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBpcGMgZmFjaWxpdGllcyBmb3Igd2hpY2ggeW91IGhhdmUgcmVhZCBhY2Nlc3MuXG4iCittc2dzdHIgIiIKKyIlcyBmYWNpbGl0YSBpbmZvcm1hY2nzbiBzb2JyZSBsb3MgcmVjdXJzb3MgaXBjIHBhcmEgbG9zIGN1YWxlcyB0aWVuZVxuIgorImFjY2VzbyBkZSBsZWN0dXJhLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisiRXNwZWNpZmljYWNp824gZGUgcmVjdXJzb3M6XG4iCisiXHQtbSA6IG1lbW9yaWEgY29tcGFydGlkYVxuIgorIlx0LXEgOiBtZW5zYWplc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtcyA6IHNlbWFwaG9yZXNcbiIKKyJcdC1hIDogYWxsIChkZWZhdWx0KVxuIgorbXNnc3RyICIiCisiXHQtcyA6IHNlbeFmb3Jvc1xuIgorIlx0LWEgOiB0b2RvICh2YWxvciBwcmVkZXRlcm1pbmFkbylcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk91dHB1dCBGb3JtYXQ6XG4iCisiXHQtdCA6IHRpbWVcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JcbiIKK21zZ3N0ciAiIgorIkZvcm1hdG8gZGUgc2FsaWRhOlxuIgorIlx0LXQgOiB0aWVtcG9cbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWFkb3JcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LWwgOiBsaW1pdHNcbiIKKyJcdC11IDogc3VtbWFyeVxuIgorbXNnc3RyICIiCisiXHQtbCA6IGztbWl0ZXNcbiIKKyJcdC11IDogcmVzdW1lblxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICItaSBpZCBbLXMgLXEgLW1dIDogZGV0YWlscyBvbiByZXNvdXJjZSBpZGVudGlmaWVkIGJ5IGlkXG4iCittc2dzdHIgIiIKKyItaSBpZCBbLXMgLXEgLW1dIDogaW5mb3JtYWNp824gZGV0YWxsYWRhIHNvYnJlIGxvcyByZWN1cnNvcyBpZGVudGlmaWNhZG9zICIKKyJwb3IgaWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iCittc2dzdHIgImVsIG76Y2xlbyBubyBlc3ThIGNvbmZpZ3VyYWRvIHBhcmEgbWVtb3JpYSBjb21wYXJ0aWRhXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIEztbWl0ZXMgbWVtb3JpYSBjb21wYXJ0aWRhIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBzZWdtZW50cyA9ICVsdVxuIgorbXNnc3RyICJu+m1lcm8gbeF4LiBzZWdtZW50b3MgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlZyBzaXplIChrYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgInRhbWHxbyBt4XguIHNlZ21lbnRvIChrYnl0ZXMpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAidG90YWwgbeF4LiBtZW1vcmlhIGNvbXBhcnRpZGEgKGtieXRlcykgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWluIHNlZyBzaXplIChieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAidGFtYfFvIG3tbi4gc2VnbWVudG8gKGJ5dGVzKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0gRXN0YWRvIG1lbW9yaWEgY29tcGFydGlkYSAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICJzZWdtZW50b3MgYXNpZ25hZG9zICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAicOFnaW5hcyBhc2lnbmFkYXMgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc5CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHJlc2lkZW50ICAlbGRcbiIKK21zZ3N0ciAicOFnaW5hcyByZXNpZGVudGVzICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgInDhZ2luYXMgaW50ZXJjYW1iaWFkYXMgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3YXAgcGVyZm9ybWFuY2U6ICVsZCBhdHRlbXB0c1x0ICVsZCBzdWNjZXNzZXNcbiIKK21zZ3N0ciAiUmVuZGltaWVudG8gZGUgaW50ZXJjYW1iaW86ICVsZCBpbnRlbnRvc1x0ICVsZCBjb3JyZWN0b3NcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudCBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0gQ3JlYWRvcmVzL3Byb3BpZXRhcmlvcyBzZWdtZW50byBtZW0uIGNvbXBhcnRpZGEgLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAic2htaWQiCittc2dzdHIgInNobWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAicGVybXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAiY3VpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjZ2lkIgorbXNnc3RyICJjZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAidWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImdpZCIKK21zZ3N0ciAiZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLSBUaWVtcG9zIGNvbmV4afNuL2Rlc2NvbmV4afNuL21vZGlmaWNhYy4gbWVtLiBjb21wLiAtLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgInByb3BpZXRhcmlvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImF0dGFjaGVkIgorbXNnc3RyICJjb25lY3RhZG8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgImRlc2NvbmVjdGFkbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTUKK21zZ2lkICJjaGFuZ2VkIgorbXNnc3RyICJtb2RpZmljYWRvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBDcmVhdG9yL0xhc3Qtb3AgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLSBDcmVhZG9yL/psdGltbyBvcC4gbWVtb3JpYSBjb21wYXJ0LiAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiY3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJscGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIFNlZ21lbnRvcyBtZW1vcmlhIGNvbXBhcnRpZGEgLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAia2V5IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgImJ5dGVzIgorbXNnc3RyICJieXRlcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJuYXR0Y2giCittc2dzdHIgIm5hdHRjaCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgImVzdGFkbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMjkgc3lzLXV0aWxzL2lwY3MuYzozMzEgc3lzLXV0aWxzL2lwY3MuYzozMzMKKyM6IHN5cy11dGlscy9pcGNzLmM6NDQ0IHN5cy11dGlscy9pcGNzLmM6NDQ2IHN5cy11dGlscy9pcGNzLmM6NTQ1CisjOiBzeXMtdXRpbHMvaXBjcy5jOjU0NyBzeXMtdXRpbHMvaXBjcy5jOjU0OSBzeXMtdXRpbHMvaXBjcy5jOjYwMAorIzogc3lzLXV0aWxzL2lwY3MuYzo2MDIgc3lzLXV0aWxzL2lwY3MuYzo2MzAgc3lzLXV0aWxzL2lwY3MuYzo2MzIKKyM6IHN5cy11dGlscy9pcGNzLmM6NjM0IHN5cy11dGlscy9pcGNzLmM6NjU3Cittc2dpZCAiTm90IHNldCIKK21zZ3N0ciAiTm8gZXN0YWJsZWNpZG8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAiZGVzdCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjIKK21zZ2lkICJsb2NrZWQiCittc2dzdHIgImJsb3F1ZWFkbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgImVsIG76Y2xlbyBubyBlc3ThIGNvbmZpZ3VyYWRvIHBhcmEgc2Vt4WZvcm9zXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBM7W1pdGVzIHNlbeFmb3JvIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2YgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAibvptZXJvIG3heGltbyBkZSBtYXRyaWNlcyA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHBlciBhcnJheSA9ICVkXG4iCittc2dzdHIgIm3heC4gc2Vt4WZvcm9zIHBvciBtYXRyaXogPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm3heC4gc2Vt4WZvcm9zIHNpc3RlbWEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAibeF4LiBvcGVyLiBwb3IgbGxhbWFkYSBzZW1vcCA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbWFwaG9yZSBtYXggdmFsdWUgPSAlZFxuIgorbXNnc3RyICJ2YWxvciBt4XguIHNlbeFmb3JvID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEVzdGFkbyBzZW3hZm9ybyAtLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJtYXRyaWNlcyB1dGlsaXphZGFzID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHNlbWFwaG9yZXMgPSAlZFxuIgorbXNnc3RyICJzZW3hZm9yb3MgYXNpZ25hZG9zID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gQ3JlYWRvcmVzL3Byb3BpZXRhcmlvcyBtYXRyaWNlcyBzZW3hZi4gLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjQxNCBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgInNlbWlkIgorbXNnc3RyICJzZW1pZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgT3BlcmF0aW9uL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0gVGllbXBvcyBvcGVyYWNp824vbW9kaWZpY2FjafNuIG1lbW9yaWEgY29tcC4gLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1vcCIKK21zZ3N0ciAi+mx0aW1hIG9wZXJhY2nzbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgIvpsdGltYSBtb2RpZmljYWNp824iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBNYXRyaWNlcyBzZW3hZm9ybyAtLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAibnNlbXMiCittc2dzdHIgIm5zZW1zIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIG1lc3NhZ2UgcXVldWVzXG4iCittc2dzdHIgImVsIG76Y2xlbyBubyBlc3ThIGNvbmZpZ3VyYWRvIHBhcmEgY29sYXMgZGUgbWVuc2FqZXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE1lbnNhamVzOiBs7W1pdGVzIC0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm3heC4gY29sYXMgc2lzdGVtYSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzaXplIG9mIG1lc3NhZ2UgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgInRhbWHxbyBt4XguIG1lbnNhamUgKGJ5dGVzKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgImRlZmF1bHQgbWF4IHNpemUgb2YgcXVldWUgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgInRhbWHxbyBt4XguIHByZWRldGVybWluYWRvIGNvbGEgKGJ5dGVzKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBNZW5zYWplczogZXN0YWRvIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk4CisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBxdWV1ZXMgPSAlZFxuIgorbXNnc3RyICJjb2xhcyBhc2lnbmFkYXMgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGhlYWRlcnMgPSAlZFxuIgorbXNnc3RyICJjYWJlY2VyYXMgdXRpbGl6YWRhcyA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIgorbXNnc3RyICJlc3BhY2lvIHV0aWxpemFkbyA9ICVkIGJ5dGVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tIENvbGFzIGRlIG1lbnNhamVzOiBjcmVhZG9yZXMvcHJvcGlldGFyaW9zIC0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTEyIHN5cy11dGlscy9pcGNzLmM6NTE4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm1zcWlkIgorbXNnc3RyICJtc3FpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tIFRpZW1wb3MgZW527W8vcmVjZXAuL21vZGlmaWMuIGNvbGFzIG1lbnNhamVzIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJzZW5kIgorbXNnc3RyICJlbnbtbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJyZWN2IgorbXNnc3RyICJyZWNlcGNp824iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAiY2hhbmdlIgorbXNnc3RyICJtb2RpZmljYWNp824iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBQSURzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tIFBJRCBkZSBjb2xhcyBkZSBtZW5zYWplcyAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgImxzcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxycGlkIgorbXNnc3RyICJscnBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBDb2xhcyBkZSBtZW5zYWplcyAtLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgImJ5dGVzIHV0aWxpemFkb3MiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAibWVzc2FnZXMiCittc2dzdHIgIm1lbnNhamVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU4OQorIywgZnV6enkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICJmc3luYyBoYSBmYWxsYWRvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2hhcmVkIG1lbW9yeSBTZWdtZW50IHNobWlkPSVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTZWdtZW50byBkZSBtZW1vcmlhIGNvbXBhcnRpZGEgc2htaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKK21zZ3N0ciAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCittc2dzdHIgImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJhdHRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJhdHRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJkZXRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMyBzeXMtdXRpbHMvaXBjcy5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNQorIywgZnV6enkKK21zZ2lkICJtc2djdGwgZmFpbGVkIgorbXNnc3RyICJmc3luYyBoYSBmYWxsYWRvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiQ29sYSBkZSBtZW5zYWplcyBtc3FpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxOAorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKK21zZ3N0ciAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAic2VuZF90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJjdl90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgInJjdl90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjQ4IHN5cy11dGlscy9pcGNzLmM6NjcwCisjLCBmdXp6eQorbXNnaWQgInNlbWN0bCBmYWlsZWQiCittc2dzdHIgIkVycm9yIGRlIGL6c3F1ZWRhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2VtYXBob3JlIEFycmF5IHNlbWlkPSVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZW1pZCBkZSBtYXRyaXogZGUgc2Vt4WZvcm9zPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgIm5zZW1zID0gJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm90aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAib3RpbWUgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICJjdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgImN0aW1lID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJzZW1udW0iCittc2dzdHIgInNlbW51bSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAidmFsdWUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAibmNvdW50IgorbXNnc3RyICJuY291bnQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICJ6Y291bnQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAicGlkIgorbXNnc3RyICJwaWQiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBzcGVlZDogJXMiCittc2dzdHIgImlkZW50aWZpY2Fkb3IgaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGRhdHRhY2ggZnJvbSAlc1xuIgorbXNnc3RyICIlcyBkZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxODQgdGV4dC11dGlscy90YWlsZi5jOjIwNgorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAiaWRlbnRpZmljYWRvciBpbnbhbGlkbyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGxpbmUgZGlzY2lwbGluZTogJXMiCittc2dzdHIgImlkZW50aWZpY2Fkb3IgaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiCittc2dzdHIgIiVzIG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGRlIGJsb3F1ZXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAibm8gc2UgcHVlZGUgb2J0ZW5lciBlbCB0YW1h8W8gZGUgJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIm5vIHNlIHB1ZWRlIG9idGVuZXIgZWwgdGFtYfFvIGRlICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGJ1c2NhciBlbiBsYSB1bmlkYWQgZGUgZGlzY28iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworIywgZnV6enkKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICJubyBzZSBwdWVkZSBvYnRlbmVyIGVsIHRhbWHxbyBkZSAlcyIKKworIyBNYXNjdWxpbm8sIHBvcnF1ZSBzZSByZWZpZXJlIGEgIkluZGljYWRvcmVzIgorIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQKKyMsIGZ1enp5Cittc2dpZCAibm9uZSIKK21zZ3N0ciAiTmluZ3VubyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUKK21zZ2lkICJwYXJhIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2Cittc2dpZCAiZnVsbCIKK21zZ3N0ciAiIgorCisjIL9Rdekgc2lnbmlmaWNhPworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTM3IHN5cy11dGlscy9sc2NwdS5jOjE2MCBzeXMtdXRpbHMvbHNjcHUuYzo0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlcyIKK21zZ3N0ciAiUkUgZXJyb3I6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHBhcnNlOiAlcyIKK21zZ3N0ciAiRXJyb3IgYWwgbGVlciAlc1xuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgIkVycm9yIGFsIGFicmlyICVzIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoyNjcKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHVuYW1lIGZhaWxlZCIKK21zZ3N0ciAiIgorIlxuIgorIkVycm9yIGFsIGNlcnJhciBlbCBmaWNoZXJvXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorIywgZnV6enkKK21zZ2lkICJlcnJvcjogbWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAiTGEgYXNpZ25hY2nzbiBkZSBtZW1vcmlhIChtYWxsb2MpIGhhIGZhbGxhZG8iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXJcbiIKKyIjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElEXG4iCisiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisiIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKK21zZ2lkICJDUFUgb3AtbW9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI1Cittc2dpZCAiVGhyZWFkKHMpIHBlciBjb3JlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzUKK21zZ2lkICJDUFUgZmFtaWx5OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzcKK21zZ2lkICJNb2RlbDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKKyMsIGZ1enp5Cittc2dpZCAiVmlydHVhbGl6YXRpb246IgorbXNnc3RyICJTaXR1YWNp824gYW50ZXJpb3I6XG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIlVzbzogJXMgW29wY2lvbmVzXSBkaXNwb3NpdGl2byAuLi5cbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjcxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgIkVycm9yIGFsIGNhbWJpYXIgZWwgbW9kbyBkZSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIiIKKyJ1c286IHJkZXYgWyAtcnYgXSBbIC1vIERFU1BMQVpBTUlFTlRPIF0gWyBJTUFHRU4gWyBWQUxPUiAiCisiWyBERVNQTEFaQU1JRU5UTyBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvIHJkZXYgL2xpbnV4LCBldGMuKSBtdWVzdHJhIGVsIGRpc3Bvc2l0aXZvIFJPT1QgYWN0dWFsIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc5Cittc2dpZCAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHNldHMgUk9PVCB0byAvZGV2L2hkYTIiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBFc3RhYmxlY2UgUk9PVCBlbiAvZGV2L2hkYTIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODAKK21zZ2lkICIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBST09URkxBR1MgKHJlYWRvbmx5IHN0YXR1cykiCittc2dzdHIgIiIKKyIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgRXN0YWJsZWNlIFJPT1RGTEFHUyAoZXN0YWRvIGRlIHPzbG8gIgorImxlY3R1cmEpIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgxCittc2dpZCAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIHNldCB0aGUgUkFNRElTSyBzaXplIgorbXNnc3RyICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgRXN0YWJsZWNlIHRhbWHxbyBkZSBSQU1ESVNLIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgyCittc2dpZCAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgYm9vdHVwIFZJREVPTU9ERSIKK21zZ3N0ciAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIEVzdGFibGVjZSBWSURFT01PREUgZGUgaW5pY2lvIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgzCittc2dpZCAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHVzZSB0aGUgYnl0ZSBvZmZzZXQgTiIKK21zZ3N0ciAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIFV0aWxpemEgZGVzcGxhemFtaWVudG8gZGUgYnl0ZXMgTiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBJZ3VhbCBxdWUgcmRldiAtUiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NQorbXNnaWQgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXIiCittc2dzdHIgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBJZ3VhbCBxdWUgcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBJZ3VhbCBxdWUgcmRldiAtdiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisiTm90YTogbG9zIG1vZG9zIGRlIHbtZGVvIHNvbjogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLFxuIgorIiAgICAgICAgMT1rZXkxLCAyPWtleTIsLi4uIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiIKKyIgICAgICBVdGlsaWNlIC1SIDEgcGFyYSBtb250YXIgcm9vdCBjb21vIGRlIHPzbG8gbGVjdHVyYTtcbiIKKyIgICAgICAgICAgICAgIC1SIDAgcGFyYSBsZWN0dXJhL2VzY3JpdHVyYS4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAiZmFsdGEgdW5hIGNvbWEiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjcyIHRleHQtdXRpbHMvbW9yZS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICJubyBxdWVkYSBtZW1vcmlhIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogXCIlcyBbb3B0aW9uc11cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChkZWZhdWx0czogXCIlc1wiIGFuZFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAoZGVmYXVsdDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgc2V0IHRoZSBwcm9maWxpbmcgbXVsdGlwbGllciB0byA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorIlx0IC12ICAgICAgICAgICAgcHJpbnQgdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICBwcmludCBhbGwgc3ltYm9scywgZXZlbiBpZiBjb3VudCBpcyAwXG4iCisiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgIHJlc2V0IGFsbCB0aGUgY291bnRlcnMgKHJvb3Qgb25seSlcbiIKKyJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorIlx0IC1WICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorbXNnc3RyICIiCisiJXM6IFVzbzogXCIlcyBbb3BjaW9uZXNdXG4iCisiICAgICAgICAgLW0gPGFyY2htYXBhPiAoVmFsb3JlcyBwcmVkZXRlcm1pbmFkb3M6IFwiJXNcIiB5XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJXNcIilcbiIKKyIgICAgICAgICAtcCA8ZmljaGVybz4gIChWYWxvciBwcmVkZXRlcm1pbmFkbzogXCIlc1wiKVxuIgorIiAgICAgICAgIC1NIDxtdWx0PiAgICAgRXN0YWJsZWNlIGVsIG11bHRpcGxpY2Fkb3IgZGUgcGVyZmlsIGVuIDxtdWx0PlxuIgorIiAgICAgICAgIC1pICAgICAgICAgICAgTXVlc3RyYSBz82xvIGluZm9ybWFjafNuIHNvYnJlIHBhc28gZGUgbXVlc3RyZW9cbiIKKyIgICAgICAgICAtdiAgICAgICAgICAgIE11ZXN0cmEgZGF0b3MgZGV0YWxsYWRvc1xuIgorIiAgICAgICAgIC1hICAgICAgICAgICAgTXVlc3RyYSB0b2RvcyBsb3Mgc+1tYm9sb3MsIGluY2x1c28gc2kgbvptZXJvIHRvdGFsICIKKyJlcyAwXG4iCisiICAgICAgICAgLWIgICAgICAgICAgICBNdWVzdHJhIGhpc3RvZ3JhbWFzIGluZGl2aWR1YWxlcyBkZSBsb3MgY29udGFkb3Jlc1xuIgorIiAgICAgICAgIC1zICAgICAgICAgICAgTXVlc3RyYSBjb250YWRvcmVzIGluZGl2aWR1YWxlcyBkZW50cm8gZGUgY2FkYSAiCisiZnVuY2nzblxuIgorIiAgICAgICAgIC1yICAgICAgICAgICAgUmVzdGFibGVjZSB0b2RvcyBsb3MgY29udGFkb3JlcyAoc/NsbyByb290KVxuIgorIiAgICAgICAgIC1uICAgICAgICAgICAgRGVzYWN0aXZhIGxhIGRldGVjY2nzbiBhdXRvbeF0aWNhIGRlbCBvcmRlbiBkZSBsb3MgIgorImJ5dGVzXG4iCisiICAgICAgICAgLVYgICAgICAgICAgICBNdWVzdHJhIGxhIHZlcnNp824geSBzYWxlXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjIyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZHByb2ZpbGU6IGVycm9yIHdyaXRpbmcgJXM6ICVzXG4iCittc2dzdHIgIm1vdW50OiBlcnJvciBhbCBlc2NyaWJpciAlczogJXMiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyByZXZlcnNlZCBieXRlIG9yZGVyLiBVc2UgLW4gdG8gZm9yY2UgbmF0aXZlIGJ5dGUgb3JkZXIuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6Mjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCittc2dzdHIgIlBhc28gZGUgc29uZGVvOiAlaVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMDUgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyglaSk6IHdyb25nIG1hcCBsaW5lXG4iCittc2dzdHIgIiVzOiAlcyglaSk6IGztbmVhIGRlIG1hcGEgaW5jb3JyZWN0YVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIgorbXNnc3RyICIlczogbm8gc2UgcHVlZGUgZW5jb250cmFyIFwiX3N0ZXh0XCIgZW4gJXNcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBwcm9maWxlIGFkZHJlc3Mgb3V0IG9mIHJhbmdlLiBXcm9uZyBtYXAgZmlsZT9cbiIKK21zZ3N0ciAiJXMgZGlyZWNjafNuIGRlbCBwZXJmaWwgZnVlcmEgZGUgcmFuZ28uIL9GaWNoZXJvIGBtYXAnIGluY29ycmVjdG8/XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjQxMgorbXNnaWQgInRvdGFsIgorbXNnc3RyICJ0b3RhbCIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBkZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiB1c3VhcmlvIGRlc2Nvbm9jaWRvXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IHZhbG9yIGluY29ycmVjdG9cbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1MiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY0Cittc2dpZCAiZ2V0cHJpb3JpdHkiCittc2dzdHIgImdldHByaW9yaXR5IgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTU3Cittc2dpZCAic2V0cHJpb3JpdHkiCittc2dzdHIgInNldHByaW9yaXR5IgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkOiBvbGQgcHJpb3JpdHkgJWQsIG5ldyBwcmlvcml0eSAlZFxuIgorbXNnc3RyICIlZDogcHJpb3JpZGFkIGFudGlndWEgJWQsIG51ZXZhIHByaW9yaWRhZCAlZFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgW29wdGlvbnNdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGRldmljZT4gICAgc2VsZWN0IHJ0YyBkZXZpY2UgKHJ0YzB8cnRjMXwuLi4pXG4iCisiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIHVzZXMgbG9jYWwgdGltZXpvbmVcbiIKKyIgICAgLW0gfCAtLW1vZGUgICAgICAgICAgICAgICBzdGFuZGJ5fG1lbXwuLi4gc2xlZXAgbW9kZVxuIgorIiAgICAtcyB8IC0tc2Vjb25kcyA8c2Vjb25kcz4gIHNlY29uZHMgdG8gc2xlZXBcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB0aW1lIHRvIHdha2VcbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBSVEMgdXNlcyBVVENcbiIKKyIgICAgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICB2ZXJib3NlIG1lc3NhZ2VzXG4iCisiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgc2hvdyB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDIKKyMsIGZ1enp5Cittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAibGVjdHVyYS9lc2NyaXR1cmEiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQ3Cittc2dpZCAicmVhZCBzeXN0ZW0gdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE2NQorbXNnaWQgImNvbnZlcnQgcnRjIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjQKK21zZ2lkICJzZXQgcnRjIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI4Cittc2dpZCAiZW5hYmxlIHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIzMgorbXNnaWQgInNldCBydGMgd2FrZSBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVucmVjb2duaXplZCBzdXNwZW5kIHN0YXRlICclcydcbiIKK21zZ3N0ciAiICVzOiB0aXBvIGRlIHRhYmxhIGRlIHBhcnRpY2lvbmVzIG5vIHJlY29ub2NpZG9cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGludGVydmFsICVzIHNlY29uZHNcbiIKK21zZ3N0ciAiJXM6IGNsYXZlIGlsZWdhbCAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCB0aW1lX3QgdmFsdWUgJXNcbiIKK21zZ3N0ciAiJXM6IG9wY2nzbiBpbGVnYWwgLS0gJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB2ZXJzaW9uICVzXG4iCittc2dzdHIgIiVzIHZlcnNp824gJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGFzc3VtaW5nIFJUQyB1c2VzIFVUQyAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgVVRDIHRpbWUuXG4iCittc2dzdHIgIlV0aWxpemFuZG8gJXMuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICJVdGlsaXphbmRvICVzLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3CisjLCBmdXp6eQorbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAiTGEgYXNpZ25hY2nzbiBkZSBtZW1vcmlhIChtYWxsb2MpIGhhIGZhbGxhZG8iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGVuYWJsZWQgZm9yIHdha2V1cCBldmVudHNcbiIKK21zZ3N0ciAiJXM6ICVzIG5vIGVzIHVuIGRpc3Bvc2l0aXZvIGxwLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIk1lbnNhamUgZGUgJXNAJXMgZWwgJXMgYSBsYXMgJXMgLi4uIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICJObyBzZSBwdWVkZSBjYW1iaWFyIGVsIG5vbWJyZSAlcyBwb3IgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDk2CisjLCBmdXp6eQorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICIsIHByZXBhcmFkbyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo1MDUKK21zZ2lkICJkaXNhYmxlIHJ0YyBhbGFybSBpbnRlcnJ1cHQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzo1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hpbmcgb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgc2V0YXJjaCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjE0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiRXNjcmliYSBgZ2V0b3B0IC0taGVscCcgcGFyYSBvYnRlbmVyIG3hcyBpbmZvcm1hY2nzbi5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyMTUgc3lzLXV0aWxzL3NldGFyY2guYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIgJXM6IHRpcG8gZGUgdGFibGEgZGUgcGFydGljaW9uZXMgbm8gcmVjb25vY2lkb1xuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI0OSBzeXMtdXRpbHMvc2V0YXJjaC5jOjI1NgorIywgZnV6enkKK21zZ2lkICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK21zZ3N0ciAiSGF5IGRlbWFzaWFkb3MgYXJndW1lbnRvcy5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNjUgc3lzLXV0aWxzL3NldGFyY2guYzozMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBzZXQgcGVyc29uYWxpdHkgdG8gJXMiCittc2dzdHIgIkVycm9yIGFsIGVzY3JpYmlyIGxhIHBhcnRpY2nzbiBlbiAlc1xuIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgInVzbzogJXMgcHJvZ3JhbWEgW2FyZyAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisiVXNvOiAlcyA8ZGlzcG9zaXRpdm8+IFsgLWkgPElSUT4gfCAtdCA8VElFTVBPPiB8IC1jIDxDQVJBQ1RFUkVTPiB8XG4iCisiICAgICAgICAgIC13IDxFU1BFUkE+IHwgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHxcbiIKKyIgICAgICAgICAgLXEgW29ufG9mZl0gfCAtcyB8IC1UIFtvbnxvZmZdIF1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICJFcnJvciBkZSBhc2lnbmFjafNuIGRlIG1lbW9yaWEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIlczogdmFsb3IgaW5jb3JyZWN0b1xuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgYW4gbHAgZGV2aWNlLlxuIgorbXNnc3RyICIlczogJXMgbm8gZXMgdW4gZGlzcG9zaXRpdm8gbHAuXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3RhdHVzIGlzICVkIgorbXNnc3RyICJFbCBlc3RhZG8gZGUgJXMgZXMgJWQiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBidXN5IgorbXNnc3RyICIsIG9jdXBhZG8iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCBwcmVwYXJhZG8iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiwgZmFsdGEgcGFwZWwiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvbi1saW5lIgorbXNnc3RyICIsIGVuIGztbmVhIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZXJyb3IiCittc2dzdHIgIiwgZXJyb3IiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAiZXJyb3IgZGUgTFBHRVRJUlEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgSVJRICVkXG4iCittc2dzdHIgIiVzIHV0aWxpemFuZG8gSVJRICVkXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgcG9sbGluZ1xuIgorbXNnc3RyICIlcyB1dGlsaXphbmRvIHNvbmRlb1xuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIDxwcm9ncmFtPiBbYXJncy4uLl1cbiIKK21zZ3N0ciAidXNvOiAlcyBwcm9ncmFtYSBbYXJnIC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2MAorbXNnaWQgIiIKKyJSdW4gcHJvZ3JhbSB3aXRoIHNvbWUgbmFtZXNwYWNlcyB1bnNoYXJlZCBmcm9tIHBhcmVudFxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgICAgdXNhZ2UgaW5mb3JtYXRpb24gKHRoaXMpXG4iCisiICAtbSwgLS1tb3VudCAgICAgICB1bnNoYXJlIG1vdW50cyBuYW1lc3BhY2VcbiIKKyIgIC11LCAtLXV0cyAgICAgICAgIHVuc2hhcmUgVVRTIG5hbWVzcGFjZSAoaG9zdG5hbWUgZXRjKVxuIgorIiAgLWksIC0taXBjICAgICAgICAgdW5zaGFyZSBTeXN0ZW0gViBJUEMgbmFtZXNwYWNlXG4iCisiICAtbiwgLS1uZXQgICAgICAgICB1bnNoYXJlIG5ldHdvcmsgbmFtZXNwYWNlXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1bnNoYXJlKDEpLlxuIgorbXNnc3RyICJTZSBoYSBjYW1iaWFkbyBsYSBpbmZvcm1hY2nzbiBkZSBmaW5nZXIuXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE0CisjLCBmdXp6eQorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICJFcnJvciBkZSBi+nNxdWVkYSIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJMYSBlamVjdWNp824gKGV4ZWMpIGhhIGZhbGxhZG9cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgImNvbDogYXJndW1lbnRvIC1sIGluY29ycmVjdG8gJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmVdXG4iCittc2dzdHIgInVzbzogY29sIFstYmZweF0gWy1sIG5s7W5lYV1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiBlcnJvciBkZSBlc2NyaXR1cmEuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd2FybmluZzogY2FuJ3QgYmFjayB1cCAlcy5cbiIKK21zZ3N0ciAiY29sOiBhdGVuY2nzbjogbm8gc2UgcHVlZGUgaGFjZXIgY29waWEgZGUgc2VndXJpZGFkIGRlICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgInBhc3QgZmlyc3QgbGluZSIKK21zZ3N0ciAibeFzIGFsbOEgZGUgcHJpbWVyYSBs7W5lYSIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0gbO1uZWEgeWEgdmFjaWFkYSIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICJ1c286ICVzIFsgLSBdIFsgLTIgXSBbIGZpY2hlcm8gLi4uIF1cbiIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzoyOTcKK21zZ2lkICJsaW5lIHRvbyBsb25nIgorbXNnc3RyICJs7W5lYSBkZW1hc2lhZG8gbGFyZ2EiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAidXNvOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbmFzXSBbZmljaGVybyAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdmFsb3IgZGUgbG9uZ2l0dWQgaW5jb3JyZWN0by5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgc2tpcCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdmFsb3IgZGUgc2FsdG8gaW5jb3JyZWN0by5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZmljaGVyb19mbXRdIFstbiBsb25naXR1ZF0gWy1zIG9taXRpcl0gIgorIltmaWNoZXJvIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgInVzbzogJXMgWy1kZmxwY3N1XSBbK276bWztbmVhcyB8ICsvcGF0cvNuXSBub21icmUxIG5vbWJyZTIgLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGluaXRpYWxpemUgbGluZSBidWZmZXJcbiIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYXNpZ25hciBlbCBi+mZlci5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIG9wdGlvbiBcIi0lY1wiXG4iCittc2dzdHIgIiVzOiBvcGNp824gZGVzY29ub2NpZGEgXCItJWNcIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKiAlczogZGlyZWN0b3J5ICoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqICVzOiBkaXJlY3RvcmlvICoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKioqKioqICVzOiBOb3QgYSB0ZXh0IGZpbGUgKioqKioqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczogTm8gZXMgdW4gZmljaGVybyBkZSB0ZXh0byAqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIltVc2UgcSBvciBRIHRvIHF1aXRdIgorbXNnc3RyICJbVXRpbGl6YXIgcSBvIFEgcGFyYSBzYWxpcl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICItLU1vcmUtLSIKK21zZ3N0ciAiLS1N4XMtLSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIihOZXh0IGZpbGU6ICVzKSIKK21zZ3N0ciAiKFNpZ3VpZW50ZSBmaWNoZXJvOiAlcykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIltQdWxzZSBsYSBiYXJyYSBlc3BhY2lhZG9yYSBwYXJhIGNvbnRpbnVhcjsgJ3EnIHBhcmEgc2FsaXIuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi5yZXRyb2NlZGVyICVkIHDhZ2luYXMiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiLi4ucmV0cm9jZWRlciAxIHDhZ2luYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICIuLi5vbWl0aWVuZG8gdW5hIGztbmVhIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICIuLi5vbWl0aWVuZG8gJWQgbO1uZWFzIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjkwCittc2dpZCAiIgorIlxuIgorIioqKkJhY2sqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKkF0cuFzKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMjgKK21zZ2lkICIiCisiXG4iCisiTW9zdCBjb21tYW5kcyBvcHRpb25hbGx5IHByZWNlZGVkIGJ5IGludGVnZXIgYXJndW1lbnQgay4gIERlZmF1bHRzIGluICIKKyJicmFja2V0cy5cbiIKKyJTdGFyICgqKSBpbmRpY2F0ZXMgYXJndW1lbnQgYmVjb21lcyBuZXcgZGVmYXVsdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxhIG1heW9y7WEgZGUgbGFzIPNyZGVuZXMgcHVlZGVuIGVzdGFyIHByZWNlZGlkYXMgcG9yIHVuIGFyZ3VtZW50byBlbnRlcm8gIgorImsuXG4iCisiTG9zIHZhbG9yZXMgcHJlZGV0ZXJtaW5hZG9zIGVzdOFuIGVudHJlIGNvcmNoZXRlcy5cbiIKKyJVbiBhc3RlcmlzY28gKCopIGluZGljYSBxdWUgZWwgYXJndW1lbnRvIHNlcuEgZWwgbnVldm8gdmFsb3IgIgorInByZWRldGVybWluYWRvLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzM1Cittc2dpZCAiIgorIjxzcGFjZT4gICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdXG4iCisieiAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV0qXG4iCisiPHJldHVybj4gICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbMV0qXG4iCisiZCBvciBjdHJsLUQgICAgICAgICAgICAgU2Nyb2xsIGsgbGluZXMgW2N1cnJlbnQgc2Nyb2xsIHNpemUsIGluaXRpYWxseSAxMV0qXG4iCisicSBvciBRIG9yIDxpbnRlcnJ1cHQ+ICAgRXhpdCBmcm9tIG1vcmVcbiIKKyJzICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBsaW5lcyBvZiB0ZXh0IFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyJiIG9yIGN0cmwtQiAgICAgICAgICAgICBTa2lwIGJhY2t3YXJkcyBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyInICAgICAgICAgICAgICAgICAgICAgICBHbyB0byBwbGFjZSB3aGVyZSBwcmV2aW91cyBzZWFyY2ggc3RhcnRlZFxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBsaW5lIG51bWJlclxuIgorIi88cmVndWxhciBleHByZXNzaW9uPiAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgcmVndWxhciBleHByZXNzaW9uIFsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgbGFzdCByLmUgWzFdXG4iCisiITxjbWQ+IG9yIDohPGNtZD4gICAgICAgRXhlY3V0ZSA8Y21kPiBpbiBhIHN1YnNoZWxsXG4iCisidiAgICAgICAgICAgICAgICAgICAgICAgU3RhcnQgdXAgL3Vzci9iaW4vdmkgYXQgY3VycmVudCBsaW5lXG4iCisiY3RybC1MICAgICAgICAgICAgICAgICAgUmVkcmF3IHNjcmVlblxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBuZXh0IGZpbGUgWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIHByZXZpb3VzIGZpbGUgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXJcbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICBSZXBlYXQgcHJldmlvdXMgY29tbWFuZFxuIgorbXNnc3RyICIiCisiPGVzcGFjaW8+ICAgICAgICAgICAgICAgTXVlc3RyYSBsYXMgc2lndWllbnRlcyBrIGztbmVhcyBkZSB0ZXh0b1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAgIFtwb3Igb21pc2nzbiwgZWwgdGFtYfFvIGFjdHVhbCBkZSBsYSB2ZW50YW5hXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIE11ZXN0cmEgbGFzIHNpZ3VpZW50ZXMgayBs7W5lYXMgZGUgdGV4dG9cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICBbcG9yIG9taXNp824sIGVsIHRhbWHxbyBhY3R1YWwgZGUgbGEgdmVudGFuYV0qXG4iCisiPGludHJvPiAgICAgICAgICAgICAgICAgTXVlc3RyYSBsYXMgc2lndWllbnRlcyBrIGztbmVhcyBkZSB0ZXh0byBbMV0qXG4iCisiZCBvIGN0cmwtRCAgICAgICAgICAgICAgRGVzcGxhemEgayBs7W5lYXMgW3RhbWHxbyBkZSBkZXNwbGF6byBhY3R1YWwsXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICBpbmljaWFsbWVudGUgMTFdKlxuIgorInEgbyBRIG8gPGludGVycj4gICAgICAgIFNhbGUgZGUgbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNhbHRhIGhhY2lhIGFkZWxhbnRlIGsgbO1uZWFzIGRlIHRleHRvIFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFNhbHRhIGhhY2lhIGFkZWxhbnRlIGsgcGFudGFsbGFzIGRlIHRleHRvIFsxXVxuIgorImIgbyBjdHJsLUIgICAgICAgICAgICAgIFNhbHRhIGhhY2lhIGF0cuFzIGsgcGFudGFsbGFzIGRlIHRleHRvIFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIFZhIGFsIHNpdGlvIGRvbmRlIGNvbWVuevMgbGEgYvpzcXVlZGEgYW50ZXJpb3JcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBNdWVzdHJhIGVsIG76bWVybyBkZSBsYSBs7W5lYSBhY3R1YWxcbiIKKyIvPGV4cHJlc2nzbiByZWd1bGFyPiAgICBCdXNjYSBsYSBrLelzaW1hIGFwYXJpY2nzbiBkZSBsYSBleHByZXNp824gcmVndWxhciAiCisiWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgQnVzY2EgbGEgay3pc2ltYSBhcGFyaWNp824gZGUgbGEg+mx0aW1hIGUuci4gWzFdXG4iCisiITxvcmRlbj4gbyA6ITxvcmRlbj4gICAgRWplY3V0YSA8b3JkZW4+IGVuIHVuIHN1YnNoZWxsXG4iCisidiAgICAgICAgICAgICAgICAgICAgICAgSW5pY2lhIC91c3IvYmluL3ZpIGVuIGxhIGztbmVhIGFjdHVhbFxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZGlidWphIGxhIHBhbnRhbGxhXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgVmEgYWwgay3pc2ltbyBmaWNoZXJvIHNpZ3VpZW50ZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBWYSBhbCBrLelzaW1vIGZpY2hlcm8gYW50ZXJpb3IgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgTXVlc3RyYSBlbCBmaWNoZXJvIGFjdHVhbCB5IGVsIG76bWVybyBkZSBs7W5lYVxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGl0ZSBsYSBvcmRlbiBhbnRlcmlvclxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIltQdWxzZSAnaCcgcGFyYSBjb25zdWx0YXIgbGFzIGluc3RydWNjaW9uZXMuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0MworIywgYy1mb3JtYXQKK21zZ2lkICJcIiVzXCIgbGluZSAlZCIKK21zZ3N0ciAiXCIlc1wiIGztbmVhICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbTm8gZXMgdW4gZmljaGVyb10gbO1uZWEgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiAgRGVzYm9yZGFtaWVudG9cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTU3NgorbXNnaWQgIi4uLnNraXBwaW5nXG4iCittc2dzdHIgIi4uLm9taXRpZW5kb1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICJFcnJvciBlbiBleHByZXNp824gcmVndWxhciIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiUGF0cvNuIG5vIGVuY29udHJhZG9cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxNiB0ZXh0LXV0aWxzL3BnLmM6MTEyNyB0ZXh0LXV0aWxzL3BnLmM6MTI3OAorbXNnaWQgIlBhdHRlcm4gbm90IGZvdW5kIgorbXNnc3RyICJQYXRy824gbm8gZW5jb250cmFkbyIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTY3NworbXNnaWQgImNhbid0IGZvcmtcbiIKK21zZ3N0ciAibm8gc2UgcHVlZGUgYmlmdXJjYXJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKyJcbiIKKyIuLi5TYWx0YW5kbyAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiLi4uU2FsdGFuZG8gYWwgZmljaGVybyAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjIKK21zZ2lkICIuLi5Ta2lwcGluZyBiYWNrIHRvIGZpbGUgIgorbXNnc3RyICIuLi5SZXRyb2NlZGllbmRvIGFsIGZpY2hlcm8gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiTO1uZWEgZGVtYXNpYWRvIGxhcmdhIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDQzCittc2dpZCAiTm8gcHJldmlvdXMgY29tbWFuZCB0byBzdWJzdGl0dXRlIGZvciIKK21zZ3N0ciAiTm8gaGF5IG5pbmf6biBjb21hbmRvIGFudGVyaW9yIHBhcmEgc3VzdGl0dWlyIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBvZCgxKSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciBoZXhkdW1wKDEpLlxuIgorbXNnc3RyICJvZDogb2QoMSkgaGEgcXVlZGFkbyBvYnNvbGV0byBwYXJhIGhleGR1bXAoMSkuXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IGhleGR1bXAoMSkgY29tcGF0aWJpbGl0eSBkb2Vzbid0IHN1cHBvcnQgdGhlIC0lYyBvcHRpb24lc1xuIgorbXNnc3RyICJvZDogbGEgY29tcGF0aWJpbGlkYWQgY29uIGhleGR1bXAoMSkgbm8gcGVybWl0ZSBsYSBvcGNp824gLSVjICVzXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzQKK21zZ2lkICI7IHNlZSBzdHJpbmdzKDEpLiIKK21zZ3N0ciAiOyB26WFzZSBzdHJpbmdzKDEpLiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IG5vIHNlIHB1ZWRlIGxlZXIgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJoZXhkdW1wOiBs7W5lYSBkZW1hc2lhZG8gbGFyZ2EuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogbvptZXJvIHRvdGFsIGRlIGJ5dGVzIGNvbiB2YXJpb3MgY2FyYWN0ZXJlcyBkZSBjb252ZXJzafNuLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBieXRlIGNvdW50IGZvciBjb252ZXJzaW9uIGNoYXJhY3RlciAlcy5cbiIKK21zZ3N0ciAiIgorImhleGR1bXA6IG76bWVybyB0b3RhbCBkZSBieXRlcyBpbmNvcnJlY3RvIHBhcmEgY2Fy4WN0ZXIgZGUgY29udmVyc2nzbiAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiAlJXMgcmVxdWlyZXMgYSBwcmVjaXNpb24gb3IgYSBieXRlIGNvdW50LlxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogJSVzIHJlcXVpZXJlIHVuIHZhbG9yIGRlIHByZWNpc2nzbiBvIHVuIG76bWVybyB0b3RhbCBkZSBieXRlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDogZm9ybWF0byBpbmNvcnJlY3RvIHslc31cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogY2Fy4WN0ZXIgZGUgY29udmVyc2nzbiAlJSVzIGluY29ycmVjdG8uXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMjMKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJObyBxdWVkYSBtZW1vcmlhIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6ICVzIFstbnVtYmVyXSBbLXAgc3RyaW5nXSBbLWNlZm5yc10gWytsaW5lXSBbKy9wYXR0ZXJuL10gW2ZpbGVzXVxuIgorbXNnc3RyICIiCisiJXM6IFVzbzogJXMgWy1u+m1lcm9dIFstcCBjYWRlbmFdIFstY2Vmcm5zXSBbK2ztbmVhXSBbKy9wYXRy824vXSBbZmljaGVyb3NdXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlc1xuIgorbXNnc3RyICIlczogbGEgb3BjafNuIG5lY2VzaXRhIHVuIGFyZ3VtZW50byAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczogb3BjafNuIGlsZWdhbCAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcwCittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICIuLi5zYWx0YW5kbyBoYWNpYSBhZGVsYW50ZVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcyCittc2dpZCAiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIKK21zZ3N0ciAiLi4uc2FsdGFuZG8gaGFjaWEgYXRy4XNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM5NAorbXNnaWQgIk5vIG5leHQgZmlsZSIKK21zZ3N0ciAiTm8gaGF5IG5pbmf6biBmaWNoZXJvIHNpZ3VpZW50ZSIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIk5vIGhheSBuaW5n+m4gZmljaGVybyBhbnRlcmlvciIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEVycm9yIGRlIGxlY3R1cmEgZW4gZWwgZmljaGVybyAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmV4cGVjdGVkIEVPRiBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBFT0YgaW5lc3BlcmFkbyBlbiBlbCBmaWNoZXJvICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogRXJyb3IgZGVzY29ub2NpZG8gZW4gZWwgZmljaGVybyAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIlczogTm8gc2UgcHVlZGUgY3JlYXIgdW4gZmljaGVybyB0ZW1wb3JhbC5cbiIKKworIyC/UXXpIHNpZ25pZmljYT8KKyM6IHRleHQtdXRpbHMvcGcuYzoxMDQ0IHRleHQtdXRpbHMvcGcuYzoxMjE5IHRleHQtdXRpbHMvcGcuYzoxMjQ2Cittc2dpZCAiUkUgZXJyb3I6ICIKK21zZ3N0ciAiUkUgZXJyb3I6IgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIwMQorbXNnaWQgIihFT0YpIgorbXNnc3RyICIoRU9GKSIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMjcgdGV4dC11dGlscy9wZy5jOjEyNTQKK21zZ2lkICJObyByZW1lbWJlcmVkIHNlYXJjaCBzdHJpbmciCittc2dzdHIgIk5vIHNlIHJlY3VlcmRhIG5pbmd1bmEgY2FkZW5hIGRlIGL6c3F1ZWRhIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICJndWFyZGFkbyIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIjogbm8gc2UgcGVybWl0ZSAhb3JkZW4gZW4gZWwgbW9kbyByZmxhZy5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiZmFsbPMgbGEgbGxhbWFkYSBhbCBzaXN0ZW1hIGZvcmsoKSwgaW506W50ZWxvIGRlIG51ZXZvIG3hcyBhZGVsYW50ZVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTcwNQorbXNnaWQgIihOZXh0IGZpbGU6ICIKK21zZ3N0ciAiKFNpZ3VpZW50ZSBmaWNoZXJvOiAiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzcGFjZSIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYXNpZ25hciBlc3BhY2lvIGRlIGL6ZmVyXG4iCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiByZXYgW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJ1c286IHJldiBbZmljaGVybyAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIKK21zZ3N0ciAiTm8gc2UgcHVlZGUgYWJyaXIgJXMgcGFyYSBsZWN0dXJhXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo5NiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBcIiVzXCIiCittc2dzdHIgIk5vIHNlIHB1ZWRlIGVmZWN0dWFyIGBzdGF0JyBzb2JyZSBlbCBkaXNwb3NpdGl2byAlcyIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJpbmNvbXBsZXRlIHdyaXRlIHRvIFwiJXNcIiAod3JpdHRlbiAlemQsIGV4cGVjdGVkICV6ZClcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2ggKGxpbWl0IG9mIGlub3RpZnkgd2F0Y2hlcyB3YXMgcmVhY2hlZCkuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaC4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCByZWFkIGlub3RpZnkgZXZlbnRzIgorbXNnc3RyICIlczogbm8gc2UgcHVlZGUgYWJyaXIgJXNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE5OSB0ZXh0LXV0aWxzL3RhaWxmLmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIGxpbmVzIgorbXNnc3RyICJO+m1lcm8gYCVzJyBpbnbhbGlkb1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjEwCisjLCBmdXp6eQorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICJ1c286ICVzIFtmaWNoZXJvXVxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgInVzbzogJXMgWyAtaSBdIFsgLXRUZXJtaW5hbCBdIGZpY2hlcm8uLi5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ0cm91YmxlIHJlYWRpbmcgdGVybWluZm8iCittc2dzdHIgIlByb2JsZW1hcyBhbCBsZWVyIHRlcm1pbmZvIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAiU2VjdWVuY2lhIGRlIGVzY2FwZSBkZXNjb25vY2lkYSBlbiBlbnRyYWRhOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJObyBzZSBwdWVkZSBhc2lnbmFyIGVsIGL6ZmVyLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIkztbmVhIGRlIGVudHJhZGEgZGVtYXNpYWRvIGxhcmdhLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAiTm8gcXVlZGEgbWVtb3JpYSBhbCBhdW1lbnRhciBlbCB0YW1h8W8gZGVsIGL6ZmVyLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWIgU1NaXSBbLXVdIERJU0sgICAgIENoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyN+ICIgICAgICAgZmRpc2sgLWwgWy1iIFNTWl0gWy11XSBESVNLICBMaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorI34gIiAgICAgICBmZGlzayAtcyBQQVJUSVRJT04gICAgICAgICAgIEdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisjfiAiICAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgR2l2ZSBmZGlzayB2ZXJzaW9uXG4iCisjfiAiSGVyZSBESVNLIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRiIG9yIC9kZXYvc2RhXG4iCisjfiAiYW5kIFBBUlRJVElPTiBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYTdcbiIKKyN+ICItdTogZ2l2ZSBTdGFydCBhbmQgRW5kIGluIHNlY3RvciAoaW5zdGVhZCBvZiBjeWxpbmRlcikgdW5pdHNcbiIKKyN+ICItYiAyMDQ4OiAoZm9yIGNlcnRhaW4gTU8gZGlza3MpIHVzZSAyMDQ4LWJ5dGUgc2VjdG9yc1xuIgorI34gbXNnc3RyICIiCisjfiAiVXNvOiAgIGZkaXNrIFstYiBTU1pdIFstdV0gRElTQ08gICAgQ2FtYmlhIHRhYmxhIGRlIHBhcnRpY2lvbmVzXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTQ08gTGlzdGEgdGFibGEocykgZGUgcGFydGljaW9uZXNcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElDSdNOICAgICAgICAgICBPYnRpZW5lIHRhbWHxbyBkZSBwYXJ0aWNpb25lcyBlbiAiCisjfiAiYmxvcXVlc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIE9idGllbmUgdmVyc2nzbiBkZSBmZGlza1xuIgorI34gIkVsIHZhbG9yIGRlIERJU0NPIHRpZW5lIGVsIGZvcm1hdG8gL2Rldi9oZGIgbyAvZGV2L3NkYVxuIgorI34gInkgZWwgdmFsb3IgZGUgUEFSVElDSdNOIHRpZW5lIGVsIGZvcm1hdG8gL2Rldi9oZGE3XG4iCisjfiAiLXU6IE9idGVuZXIgUHJpbmNpcGlvIHkgRmluYWwgZW4gc2VjdG9yZXMgKGVuIGx1Z2FyIGRlIGNpbGluZHJvcylcbiIKKyN+ICItYiAyMDQ4OiAoUGFyYSBhbGd1bmFzIHVuaWRhZGVzIE1PKSBVdGlsaXphciBzZWN0b3JlcyBkZSAyMDQ4IGJ5dGVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstbF0gWy1iIFNTWl0gWy11XSBkZXZpY2VcbiIKKyN+ICJFLmcuOiBmZGlzayAvZGV2L2hkYSAgKGZvciB0aGUgZmlyc3QgSURFIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9zZGMgIChmb3IgdGhlIHRoaXJkIFNDU0kgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L2VkYSAgKGZvciB0aGUgZmlyc3QgUFMvMiBFU0RJIGRyaXZlKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvcmQvYzBkMCAgb3I6IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChmb3IgUkFJRCBkZXZpY2VzKVxuIgorI34gIiAgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJVc286IGZkaXNrIFstbF0gWy1iIFNTWl0gWy11XSBkaXNwb3NpdGl2b1xuIgorI34gIkVqLjogIGZkaXNrIC9kZXYvaGRhICAocGFyYSBlbCBwcmltZXIgZGlzY28gSURFKVxuIgorI34gIiAgbzogIGZkaXNrIC9kZXYvc2RjICAocGFyYSBlbCB0ZXJjZXIgZGlzY28gU0NTSSlcbiIKKyN+ICIgIG86ICBmZGlzayAvZGV2L2VkYSAgKHBhcmEgbGEgcHJpbWVyYSB1bmlkYWQgUFMvMiBFU0RJKVxuIgorI34gIiAgbzogIGZkaXNrIC9kZXYvcmQvYzBkMCAgbyBmZGlzayAvZGV2L2lkYS9jMGQwICAocGFyYSBkaXNwb3NpdGl2b3MgIgorI34gIlJBSUQpXG4iCisjfiAiICAuLi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJUaGUgbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkaXNrIGlzIHNldCB0byAlZC5cbiIKKyN+ICJUaGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggdGhhdCwgYnV0IHRoaXMgaXMgbGFyZ2VyIHRoYW4gMTAyNCxcbiIKKyN+ICJhbmQgY291bGQgaW4gY2VydGFpbiBzZXR1cHMgY2F1c2UgcHJvYmxlbXMgd2l0aDpcbiIKKyN+ICIxKSBzb2Z0d2FyZSB0aGF0IHJ1bnMgYXQgYm9vdCB0aW1lIChlLmcuLCBvbGQgdmVyc2lvbnMgb2YgTElMTylcbiIKKyN+ICIyKSBib290aW5nIGFuZCBwYXJ0aXRpb25pbmcgc29mdHdhcmUgZnJvbSBvdGhlciBPU3NcbiIKKyN+ICIgICAoZS5nLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAiRWwgbvptZXJvIGRlIGNpbGluZHJvcyBwYXJhIGVzdGUgZGlzY28gZXN04SBlc3RhYmxlY2lkbyBlbiAlZC5cbiIKKyN+ICJObyBoYXkgbmFkYSBtYWxvIGVuIGVsbG8sIHBlcm8gZXMgbWF5b3IgcXVlIDEwMjQsIHkgZW4gYWxndW5vcyBjYXNvc1xuIgorI34gInBvZHLtYSBjYXVzYXIgcHJvYmxlbWFzIGNvbjpcbiIKKyN+ICIxKSBzb2Z0d2FyZSBxdWUgZnVuY2lvbmEgZW4gZWwgaW5pY2lvIChwLmVqLiB2ZXJzaW9uZXMgYW50aWd1YXMgZGUgTElMTylcbiIKKyN+ICIyKSBzb2Z0d2FyZSBkZSBhcnJhbnF1ZSBvIHBhcnRpY2lvbmFtaWVudG8gZGUgb3Ryb3Mgc2lzdGVtYXMgb3BlcmF0aXZvc1xuIgorI34gIiAgIChwLmVqLiBGRElTSyBkZSBET1MsIEZESVNLIGRlIE9TLzIpXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAib3V0IGlmIG1lbW9yeSIKKyN+IG1zZ3N0ciAibm8gcXVlZGEgbWVtb3JpYSIKKworI34gbXNnaWQgIiMgcGFydGl0aW9uIHRhYmxlIG9mICVzXG4iCisjfiBtc2dzdHIgIiMgdGFibGEgZGUgcGFydGljaW9uZXMgZGUgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAidW5pdDogc2VjdG9yc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIlbGxkIHNlY3RvcmVzIG5vIGFzaWduYWRvc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICJjb21pZW56byIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAiVGFtYfFvIG3heGltbz0lbGRcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIGJvb3RhYmxlIgorI34gbXNnc3RyICJBSVggYm9vdGFibGUiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiQ2xvY2sgaW4gVVRDLCBub3QgY2hhbmdlZC5cbiIKKyN+IG1zZ3N0ciAiTm8gc2UgaGEgY2FtYmlhZG8gZWwgaW506XJwcmV0ZSBkZSDzcmRlbmVzLlxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBlcnJvcjogbGFiZWwgb25seSB3aXRoIHYxIHN3YXAgYXJlYVxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6IGVycm9yOiBubyBzZSBoYSBlc3BlY2lmaWNhZG8gZPNuZGUgY29uZmlndXJhciBlbCBlc3BhY2lvIGRlICIKKyN+ICJpbnRlcmNhbWJpb1xuIgorCisjfiBtc2dpZCAiZmF0YWw6IGZpcnN0IHBhZ2UgdW5yZWFkYWJsZSIKKyN+IG1zZ3N0ciAibXV5IGdyYXZlOiBubyBzZSBwdWVkZSBsZWVyIGxhIHByaW1lcmEgcOFnaW5hIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICIlczogRGV2aWNlICclcycgY29udGFpbnMgYSB2YWxpZCBTdW4gZGlza2xhYmVsLlxuIgorI34gIlRoaXMgcHJvYmFibHkgbWVhbnMgY3JlYXRpbmcgdjAgc3dhcCB3b3VsZCBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlLlxuIgorI34gIk5vIHN3YXAgd2FzIGNyZWF0ZWQuIElmIHlvdSByZWFsbHkgd2FudCB0byBjcmVhdGUgdjAgc3dhcCBvbiB0aGF0ICIKKyN+ICJkZXZpY2UsXG4iCisjfiAidXNlIHRoZSAtZiBvcHRpb24gdG8gZm9yY2UgaXQuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczogZWwgZGlzcG9zaXRpdm8gJyVzJyBjb250aWVuZSB1bmEgZXRpcXVldGEgZGUgZGlzY28gU3VuIHbhbGlkYS5cbiIKKyN+ICJFc3RvIHByb2JhYmxlbWVudGUgc2lnbmlmaWNhIHF1ZSBjcmVhciB1biBlc3BhY2lvIGRlIGludGVyY2FtYmlvIHYwICIKKyN+ICJkZXN0cnVpcuFcbiIKKyN+ICJsYSB0YWJsYSBkZSBwYXJ0aWNpb25lcy4gTm8gc2UgaGEgY3JlYWRvIGVsIGVzcGFjaW8gZGUgaW50ZXJjYW1iaW8uXG4iCisjfiAiU2kgcmVhbG1lbnRlIGRlc2VhIGNyZWFyIGVsIGVzcGFjaW8gZGUgaW50ZXJjYW1iaW8gc3dhcCB2MCBlbiBkaWNob1xuIgorI34gImRpc3Bvc2l0aXZvLCB1dGlsaWNlIGxhIG9wY2nzbiAtZiBwYXJhIGZvcnphciBsYSBvcGVyYWNp824uXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBubyBzZSBwdWVkZSBvYnRlbmVyIGVsIGRpcmVjdG9yaW8gYWN0dWFsIC0gJXNcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gY2hkaXIgdG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBubyBzZSBwdWVkZSBlamVjdXRhciBjaGRpciBwYXJhICVzIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBjaGRpciB0byByb290IVxuIgorI34gbXNnc3RyICJuYW1laTogbm8gc2UgcHVlZGUgZWplY3V0YXIgY2hkaXIgcGFyYSBkaXJlY3RvcmlvIHJh7XpcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3Qgc3RhdCByb290IVxuIgorI34gbXNnc3RyICJuYW1laTogbm8gc2UgcHVlZGUgZWplY3V0YXIgc3RhdCBwYXJhIGVsIGRpcmVjdG9yaW8gcmHtelxuIgorCisjfiBtc2dpZCAibmFtZWk6IGJ1ZiBvdmVyZmxvd1xuIgorI34gbXNnc3RyICJuYW1laTogZGVzYm9yZGFtaWVudG8gZGUgYvpmZXJcbiIKKworI34gbXNnaWQgIiA/IGNvdWxkIG5vdCBjaGRpciBpbnRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyBubyBzZSBwdWVkZSBlamVjdXRhciBjaGRpciBwYXJhICVzIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAiID8gcHJvYmxlbXMgcmVhZGluZyBzeW1saW5rICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyBwcm9ibGVtYXMgYWwgbGVlciBlbCBlbmxhY2Ugc2ltYvNsaWNvICVzIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAiICAqKiogRVhDRUVERUQgVU5JWCBMSU1JVCBPRiBTWU1MSU5LUyAqKipcbiIKKyN+IG1zZ3N0ciAiICAqKiogU2UgaGEgc3VwZXJhZG8gbO1taXRlIGRlIGVubGFjZXMgc2ltYvNsaWNvcyBkZSBVbml4ICoqKlxuIgorCisjfiBtc2dpZCAibmFtZWk6IHVua25vd24gZmlsZSB0eXBlIDAlMDZvIG9uIGZpbGUgJXNcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IHRpcG8gZGUgZmljaGVybyBkZXNjb25vY2lkbyAwJTA2byBlbiBlbCBmaWNoZXJvICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAibW91bnQ6IGdvaW5nIHRvIG1vdW50ICVzIGJ5ICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiBzZSBtb250YXLhICVzIG1lZGlhbnRlICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAibW91bnQ6IG5vIExBQkVMPSwgbm8gVVVJRD0sIGdvaW5nIHRvIG1vdW50ICVzIGJ5IHBhdGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHNlIG1vbnRhcuEgJXMgbWVkaWFudGUgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IGZvcms6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBiaWZ1cmNhciAoZm9yaylcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogd2FpdHBpZDogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IGZhbGxvIGFsIGFicmlyICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBzdGF0ICVzOiAlc1xuIgorI34gbXNnc3RyICJzd2Fwb246IG5vIHNlIHB1ZWRlIGVqZWN1dGFyIHN0YXQgcGFyYSAlczogJXNcbiIKKworI34gbXNnaWQgImNvdWxkIG5vdCB1bW91bnQgJXMgLSB0cnlpbmcgJXMgaW5zdGVhZFxuIgorI34gbXNnc3RyICIiCisjfiAibm8gc2UgaGEgcG9kaWRvIGVqZWN1dGFyIHVtb3VudCBlbiAlczsgZW4gc3UgbHVnYXIgc2UgcHJ1ZWJhIGNvbiAlc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTI2LjI0cyAlLTI2LjI0c1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiY2hmbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjogZXJyb3IgZGUgUEFNOyBhbnVsYW5kbzogJXNcbiIKKworI34gbXNnaWQgIkNhbid0IHJlYWQgJXMsIGV4aXRpbmcuIgorI34gbXNnc3RyICJObyBzZSBwdWVkZSBsZWVyICVzOyBzYWxpZW5kby4iCisKKyN+IG1zZ2lkICJsb2dpbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjogZXJyb3IgZGUgUEFNOyBhbnVsYW5kbzogJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDogZWplY3V0YW5kbyBlbiBzZWd1bmRvIHBsYW5vIFwiJXNcIlxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdpdmluZyB1cCBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHNlIGFiYW5kb25hIFwiJXNcIlxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCisjfiBtc2dzdHIgImAlcyc6IGRpcmVjdG9yaW8gaW5jb3JyZWN0bzogJy4nIG5vIGVzIGVsIHByaW1lcm9cbiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCisjfiBtc2dzdHIgImAlcyc6IGRpcmVjdG9yaW8gaW5jb3JyZWN0bzogJy4uJyBubyBlcyBlbCBzZWd1bmRvXG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIG9wZW5fdHR5XG4iCisjfiBtc2dzdHIgImNhbGxpbmcgb3Blbl90dHlcbiIKKworI34gbXNnaWQgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKyN+IG1zZ3N0ciAiY2FsbGluZyB0ZXJtaW9faW5pdFxuIgorCisjfiBtc2dpZCAid3JpdGluZyBpbml0IHN0cmluZ1xuIgorI34gbXNnc3RyICJ3cml0aW5nIGluaXQgc3RyaW5nXG4iCisKKyN+IG1zZ2lkICJiZWZvcmUgYXV0b2JhdWRcbiIKKyN+IG1zZ3N0ciAiYmVmb3JlIGF1dG9iYXVkXG4iCisKKyN+IG1zZ2lkICJ3YWl0aW5nIGZvciBjci1sZlxuIgorI34gbXNnc3RyICJ3YWl0aW5nIGZvciBjci1sZlxuIgorCisjfiBtc2dpZCAicmVhZGluZyBsb2dpbiBuYW1lXG4iCisjfiBtc2dzdHIgInJlYWRpbmcgbG9naW4gbmFtZVxuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VhcmdzXG4iCisjfiBtc2dzdHIgImV4aXRpbmcgcGFyc2VhcmdzXG4iCisKKyN+IG1zZ2lkICJlbnRlcmVkIHBhcnNlX3NwZWVkc1xuIgorI34gbXNnc3RyICJlbnRlcmVkIHBhcnNlX3NwZWVkc1xuIgorCisjfiBtc2dpZCAiZXhpdGluZyBwYXJzZXNwZWVkc1xuIgorI34gbXNnc3RyICJleGl0aW5nIHBhcnNlc3BlZWRzXG4iCisKKyN+IG1zZ2lkICJvcGVuKDIpXG4iCisjfiBtc2dzdHIgIm9wZW4oMilcbiIKKworI34gbXNnaWQgImR1cGluZ1xuIgorI34gbXNnc3RyICJkdXBpbmdcbiIKKworI34gbXNnaWQgInRlcm1faW8gMlxuIgorI34gbXNnc3RyICJ0ZXJtX2lvIDJcbiIKKworI34gbXNnaWQgIlBhc3N3b3JkIGVycm9yLiIKKyN+IG1zZ3N0ciAiRXJyb3IgZGUgY29udHJhc2XxYS4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxsc1xuIgorI34gbXNnc3RyICJBdGVuY2nzbjogXCIlc1wiIG5vIGZpZ3VyYSBlbiAvZXRjL3NoZWxsc1xuIgorCisjfiBtc2dpZCAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorI34gbXNnc3RyICJ0aW1lb3V0ID0gJWQsIHF1aWV0ID0gJWQsIHJlYm9vdCA9ICVkXG4iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkICVzLCBhbmQgY2Fubm90IGlvY3RsIGR1bXBcbiIKKyN+IG1zZ3N0ciAiTm8gc2UgaGEgcG9kaWRvIGxlZXIgJXMgeSBubyBzZSBwdWVkZSBlZmVjdHVhciB2dWVsY28gZGUgaW9jdGxcbiIKKworI34gbXNnaWQgIiwgb2Zmc2V0ICVsbGQiCisjfiBtc2dzdHIgIiwgZGVzcGxhemFtaWVudG8gJWxsZCIKKworI34gbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZGV2aWNlIC9kZXYvbG9vcCMiCisjfiBtc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBlbmNvbnRyYXIgbmluZ/puIGRpc3Bvc2l0aXZvIC9kZXYvbG9vcCMiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgJXMgWy12XSBbLXAgcHJpb3JpdHldIHNwZWNpYWx8TEFCRUw9dm9sdW1lX25hbWUgLi4uXG4iCisjfiAiICAgICAgICVzIFstc11cbiIKKyN+IG1zZ3N0ciAiIgorI34gInVzbzogICAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgJXMgWy12XSBbLXAgcHJpb3JpZGFkXSBlc3BlY2lhbCAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gInVzbzogICAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gZXNwZWNpYWwgLi4uXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBjYW5vbmljYWxpemUgJXM6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiBubyBzZSBwdWVkZSBhYnJpciAlczogJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogcmVuaWNlIHByaW9yaXR5IFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwcyBdIFsgWyAtdSBdIHVzZXJzIF1cbiIKKyN+IG1zZ3N0ciAiIgorI34gInVzbzogcmVuaWNlIHByaW9yaWRhZCBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSAiCisjfiAidXN1YXJpb3MgXVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIlVua25vd24gb3B0aW9uIGAlYycgaWdub3JlZCIKKyN+IG1zZ3N0ciAiJXM6IG9wY2nzbiBkZXNjb25vY2lkYSBcIi0lY1wiXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRXhjZWVkZWQgTUFYRU5UUklFUy4gIFJhaXNlIHRoaXMgdmFsdWUgaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgIgorI34gIkV4aXRpbmcuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJTZSBleGNlZGnzIE1BWEVOVFJJRVMuIEluY3JlbWVudGUgZXN0ZSB2YWxvciBlbiBta2NyYW1mcy5jIHkgcmVjb21waWxlLlxuIgorI34gIlNhbGllbmRvLlxuIgorCisjfiBtc2dpZCAiQXNzdW1pbmcgcGFnZXMgb2Ygc2l6ZSAlZCAobm90ICVkKVxuIgorI34gbXNnc3RyICJQcmVzdXBvbmllbmRvIHDhZ2luYXMgZGUgdGFtYfFvICVkIChubyAlZClcbiIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZm91bmQgYSAlcyVzJXNcbiIKKyN+IG1zZ3N0ciAiTGEgY29uZmlndXJhY2nzbiBhdXRvbeF0aWNhIGhhIGVuY29udHJhZG8gJXMlcyVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRHJpdmUgdHlwZVxuIgorI34gIiAgID8gICBhdXRvIGNvbmZpZ3VyZVxuIgorI34gIiAgIDAgICBjdXN0b20gKHdpdGggaGFyZHdhcmUgZGV0ZWN0ZWQgZGVmYXVsdHMpIgorI34gbXNnc3RyICIiCisjfiAiVGlwbyBkZSB1bmlkYWRcbiIKKyN+ICIgICA/ICAgQ29uIGNvbmZpZ3VyYWNp824gYXV0b23hdGljYVxuIgorI34gIiAgIDAgICBQZXJzb25hbGl6YWRhIChjb24gdmFsb3JlcyBwcmVkZXRlcm1pbmFkb3MgZGV0ZWN0YWRvcyBwb3IgaGFyZHdhcmUpIgorCisjfiBtc2dpZCAiU2VsZWN0IHR5cGUgKD8gZm9yIGF1dG8sIDAgZm9yIGN1c3RvbSk6ICIKKyN+IG1zZ3N0ciAiU2VsZWNjaW9uYXIgdGlwbyAoPyBwYXJhIGF1dG9t4XRpY28sIDAgcGFyYSBwZXJzb25hbGl6YWRvKTogIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmYWlsZWQuXG4iCisjfiBtc2dzdHIgIkVycm9yIGRlIGNvbmZpZ3VyYWNp824gYXV0b23hdGljYS5cbiIKKworI34gbXNnaWQgIkFsdGVybmF0ZSBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIkNpbGluZHJvcyBhbHRlcm5hdGl2b3MiCisKKyN+IG1zZ2lkICJQaHlzaWNhbCBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIkNpbGluZHJvcyBm7XNpY29zIgorCisjfiBtc2dpZCAiWW91IG1heSBjaGFuZ2UgYWxsIHRoZSBkaXNrIHBhcmFtcyBmcm9tIHRoZSB4IG1lbnUiCisjfiBtc2dzdHIgIlB1ZWRlIGNhbWJpYXIgdG9kb3MgbG9zIHBhcuFtZXRyb3MgZGUgZGlzY28gZGVzZGUgZWwgbWVu+iB4IgorCisjfiBtc2dpZCAiMyw1XCIgZmxvcHB5IgorI34gbXNnc3RyICJEaXNxdWV0ZSAzLDUgcHVsZy4iCisKKyN+IG1zZ2lkICJMaW51eCBjdXN0b20iCisjfiBtc2dzdHIgIkxpbnV4IHBlcnNvbmFsaXphZG8iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXMgZnJvbSB1dGlsLWxpbnV4LSVzXG4iCisjfiBtc2dzdHIgIiVzIGRlICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXMgZnJvbSAlcyVzXG4iCisjfiBtc2dzdHIgIiVzIGRlICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGVycm9yOiB0aGUgbGFiZWwgJXMgb2NjdXJzIG9uIGJvdGggJXMgYW5kICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiBsYSBldGlxdWV0YSAlcyBhcGFyZWNlIHRhbnRvIGVuICVzIGNvbW8gZW4gJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAiJXM6IGNvdWxkIG5vdCBvcGVuICVzLCBzbyBVVUlEIGFuZCBMQUJFTCBjb252ZXJzaW9uIGNhbm5vdCBiZSBkb25lLlxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IG5vIHNlIGhhIHBvZGlkbyBhYnJpciAlczsgYXPtIHF1ZSBubyBzZSBwdWVkZSBlZmVjdHVhciBsYSAiCisjfiAiY29udmVyc2nzblxuIgorI34gImRlIFVVSUQgeSBFVElRVUVUQVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBiYWQgVVVJRCIKKyN+IG1zZ3N0ciAibW91bnQ6IFVVSUQgaW5jb3JyZWN0byIKKworIyBGSVhNRTogRmFsdGEgdW4gLiBlbiBlbCBvcmlnaW5hbC4KKyN+IG1zZ2lkICJtb3VudDogZmFpbGVkIHdpdGggbmZzIG1vdW50IHZlcnNpb24gNCwgdHJ5aW5nIDMuLlxuIgorI34gbXNnc3RyICJtb3VudDogZmFsbPMgY29uIGxhIHZlcnNp824gNCBkZSBuZnMgbW91bnQsIHByb2JhbmRvIGNvbiBsYSAzLi4uXG4iCisKKyN+IG1zZ2lkICJtb3VudDogbW91bnRpbmcgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG1vbnRhbmRvICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2Fubm90IGZpbmQgJXMgaW4gJXMiCisjfiBtc2dzdHIgIm1vdW50OiBubyBzZSBwdWVkZSBlbmNvbnRyYXIgJXMgZW4gJXMiCisKKyN+IG1zZ2lkICJtb3VudDogZXJyb3Igd2hpbGUgZ3Vlc3NpbmcgZmlsZXN5c3RlbSB0eXBlXG4iCisjfiBtc2dzdHIgIm1vdW50OiBlcnJvciBhbCBpbnRlbnRhciBhZGl2aW5hciBlbCB0aXBvIGRlIHNpc3RlbWEgZGUgZmljaGVyb3NcbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIGhvc3Q6ZGlyIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiBhcmd1bWVudG8gaG9zdDpkaXIgZGVtYXNpYWRvIGxhcmdvXG4iCisKKyN+IG1zZ2lkICJtb3VudDogd2FybmluZzogbXVsdGlwbGUgaG9zdG5hbWVzIG5vdCBzdXBwb3J0ZWRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGF0ZW5jafNuOiB2YXJpb3Mgbm9tYnJlcyBkZSBob3N0IG5vIHNvcG9ydGFkb3NcbiIKKworI34gbXNnaWQgIm1vdW50OiBkaXJlY3RvcnkgdG8gbW91bnQgbm90IGluIGhvc3Q6ZGlyIGZvcm1hdFxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IGVsIGRpcmVjdG9yaW8gcXVlIHNlIGRlYmUgbW9udGFyIG5vIHRpZW5lIGVsIGZvcm1hdG8gaG9zdDpkaXJcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG5vIHNlIHB1ZWRlIG9idGVuZXIgbGEgZGlyZWNjafNuIHBhcmEgJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb3QgYmFkIGhwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJtb3VudDogdmFsb3IgaW5jb3JyZWN0byBwYXJhIGhwLT5oX2xlbmd0aFxuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgb3B0aW9uIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiBhcmd1bWVudG8gZGUgb3BjafNuIGRlbWFzaWFkbyBsYXJnb1xuIgorCisjfiBtc2dpZCAiV2FybmluZzogVW5yZWNvZ25pemVkIHByb3RvPSBvcHRpb24uXG4iCisjfiBtc2dzdHIgIkF0ZW5jafNuOiBvcGNp824gcHJvdG89IG5vIHJlY29ub2NpZGEuXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBPcHRpb24gbmFtbGVuIGlzIG5vdCBzdXBwb3J0ZWQuXG4iCisjfiBtc2dzdHIgIkF0ZW5jafNuOiBsYSBvcGNp824gbmFtbGVuIG5vIGVzdOEgc29wb3J0YWRhLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgcGFyYW1ldGVyOiAlcz0lZFxuIgorI34gbXNnc3RyICJQYXLhbWV0cm8gZGUgbW9udGFqZSBuZnMgZGVzY29ub2NpZG86ICVzPSVkXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBvcHRpb24gbm9sb2NrIGlzIG5vdCBzdXBwb3J0ZWQuXG4iCisjfiBtc2dzdHIgIkF0ZW5jafNuOiBsYSBvcGNp824gbm9sb2NrIG5vIGVzdOEgc29wb3J0YWRhLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgb3B0aW9uOiAlcyVzXG4iCisjfiBtc2dzdHIgIk9wY2nzbiBkZSBtb250YWplIG5mcyBkZXNjb25vY2lkYTogJXMlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoP1xuIgorI34gbXNnc3RyICJtb3VudDogv3ZhbG9yIGluY29ycmVjdG8gcGFyYSBocC0+aF9sZW5ndGg/XG4iCisKKyN+IG1zZ2lkICJuZnMgYmluZHJlc3Zwb3J0IgorI34gbXNnc3RyICJuZnMgYmluZHJlc3Zwb3J0IgorCisjfiBtc2dpZCAibmZzIHNlcnZlciByZXBvcnRlZCBzZXJ2aWNlIHVuYXZhaWxhYmxlIgorI34gbXNnc3RyICJlbCBzZXJ2aWRvciBuZnMgaW5mb3JtYSBkZSBxdWUgZWwgc2VydmljaW8gbm8gZXN04SBkaXNwb25pYmxlIgorCisjfiBtc2dpZCAidXNlZCBwb3J0bWFwcGVyIHRvIGZpbmQgTkZTIHBvcnRcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlNlIGhhIHV0aWxpemFkbyBlbCBhc2lnbmFkb3IgZGUgcHVlcnRvcyBwYXJhIGVuY29udHJhciBlbCBwdWVydG8gTkZTXG4iCisKKyN+IG1zZ2lkICJ1c2luZyBwb3J0ICVkIGZvciBuZnMgZGVhbW9uXG4iCisjfiBtc2dzdHIgIlV0aWxpemFuZG8gcHVlcnRvICVkIHBhcmEgZGFlbW9uIGRlIG5mc1xuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgc3RhdHVzIHJldHVybiB2YWx1ZTogJWQiCisjfiBtc2dzdHIgIlZhbG9yIGRlIHJldG9ybm8gZGUgbmZzIHN0YXR1cyBkZXNjb25vY2lkbzogJWQiCisKKyN+IG1zZ2lkICJob3N0OiAlcywgZGlyZWN0b3J5OiAlc1xuIgorI34gbXNnc3RyICJob3N0OiAlcywgZGlyZWN0b3JpbzogJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgInVtb3VudDogbm8gc2UgcHVlZGUgb2J0ZW5lciBsYSBkaXJlY2Np824gcGFyYSAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBnb3QgYmFkIGhvc3RwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJ1bW91bnQ6IHZhbG9yIGluY29ycmVjdG8gcGFyYSBob3N0cC0+aF9sZW5ndGhcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHBhdGggbGVuZ3RoXG4iCisjfiBtc2dzdHIgIiVzOiBjcmFtZnMgaW524WxpZG8sIGxvbmdpdHVkIGRlIHJ1dGEgZXJy825lYVxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS13cm9uZyBtYWdpY1xuIgorI34gbXNnc3RyICIlczogY3JhbWZzIGluduFsaWRvLCBtYWdpYSBlcnLzbmVhXG4iCisKKyN+IG1zZ2lkICIlczogd2FybmluZy0tZmlsZSBsZW5ndGggdG9vIGxvbmcsIHBhZGRlZCBpbWFnZT9cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBhdGVuY2nzbiwgbG9uZ2l0dWQgZGUgZmljaGVybyBkZW1hc2lhZG8gZ3JhbmRlLCC/aW1hZ2VuIGRlc3BsYXphZGE/XG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWNyYyBlcnJvclxuIgorI34gbXNnc3RyICIlczogZXJyb3IgZGUgY3JjLCBjcmFtZnMgaW524WxpZG9cbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHN1cGVyYmxvY2tcbiIKKyN+IG1zZ3N0ciAiJXM6IGNyYW1mcyBpbnbhbGlkbywgc3Vwb2VyYmxvcXVlIGVycvNuZW9cbiIKKworI34gbXNnaWQgIlN5bnRheCBlcnJvcjogJyVzJ1xuIgorI34gbXNnc3RyICJFcnJvciBkZSBzaW50YXhpczogJyVzJ1xuIgorCisjfiBtc2dpZCAiTm8gc3VjaCBwYXJhbWV0ZXIgc2V0OiAnJXMnXG4iCisjfiBtc2dzdHIgIkVzdGUgcGFy4W1ldHJvIG5vIGVzdOEgZXN0YWJsZWNpZG86ICclcydcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLXAgXSBkZXYgbmFtZVxuIgorI34gbXNnc3RyICIgICAlcyBbIC1wIF0gZGlzcG9zaXRpdm8gbm9tYnJlXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiICAgJXMgWyAtcCBdIGRldiBzaXplIHNlY3QgaGVhZHMgdHJhY2tzIHN0cmV0Y2ggZ2FwIHJhdGUgc3BlYzEgZm10X2dhcFxuIgorI34gbXNnc3RyICIiCisjfiAiICAgJXMgWyAtcCBdIGRpc3AuIHRhbWHxbyBzZWN0LiBjYWJlei4gcGlzdGFzIHN0cmV0Y2ggZ2FwIHJhdGUgc3BlYzEgIgorI34gImZtdF9nYXBcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLWMgfCAteSB8IC1uIHwgLWQgXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGRpc3Bvc2l0aXZvXG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1jIHwgLXkgfCAtbiBdIGRldlxuIgorI34gbXNnc3RyICIgICAlcyBbIC1jIHwgLXkgfCAtbiBdIGRpc3Bvc2l0aXZvXG4iCisKKyN+IG1zZ2lkICJ2ZXJzaW9uIgorI34gbXNnc3RyICJ2ZXJzafNuIgorCisjfiBtc2dpZCAiY291bGRuJ3Qgb3BlbiAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgIk5vIHNlIGhhIHBvZGlkbyBhYnJpciAvZGV2L3VyYW5kb20iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkIHJhbmRvbSBkYXRhIGZyb20gL2Rldi91cmFuZG9tIgorI34gbXNnc3RyICJObyBzZSBoYW4gcG9kaWRvIGxlZXIgZGF0b3MgYWxlYXRvcmlvcyBkZSAvZGV2L3VyYW5kb20iCisKKyN+IG1zZ2lkICJjYW4ndCBzdGF0KCVzKSIKKyN+IG1zZ3N0ciAiTm8gc2UgcHVlZGUgcmVhbGl6YXIgc3RhdCglcykiCisKKyN+IG1zZ2lkICIlcyBkb2Vzbid0IGhhdmUgdGhlIGNvcnJlY3QgZmlsZW1vZGVzIgorI34gbXNnc3RyICIlcyBubyB0aWVuZSBsb3MgbW9kb3MgZGUgZmljaGVybyBjb3JyZWN0b3MiCisKKyN+IG1zZ2lkICJjYW4ndCByZWFkIGRhdGEgZnJvbSAlcyIKKyN+IG1zZ3N0ciAiTm8gc2UgcHVlZGUgbGVlciBkYXRvcyBkZSAlcyIKKworI34gbXNnaWQgIiIKKyN+ICJUb28gbWFueSB1c2VycyBsb2dnZWQgb24gYWxyZWFkeS5cbiIKKyN+ICJUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJZYSBoYXkgZGVtYXNpYWRvcyB1c3VhcmlvcyBjb24gdW5hIHNlc2nzbiBpbmljaWFkYS5cbiIKKyN+ICJJbnTpbnRlbG8gZGUgbnVldm8gbeFzIGFkZWxhbnRlLlxuIgorCisjfiBtc2dpZCAiWW91IGhhdmUgdG9vIG1hbnkgcHJvY2Vzc2VzIHJ1bm5pbmcuXG4iCisjfiBtc2dzdHIgIlRpZW5lIGRlbWFzaWFkb3MgcHJvY2Vzb3MgZW4gZWplY3VjafNuLlxuIgorCisjfiBtc2dpZCAiVGhlIHBhc3N3b3JkIG11c3QgaGF2ZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMsIHRyeSBhZ2Fpbi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkxhIGNvbnRyYXNl8WEgZGViZSB0ZW5lciBjb21vIG3tbmltbyA2IGNhcmFjdGVyZXM7IGludOludGVsbyBkZSBudWV2by5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJUaGUgcGFzc3dvcmQgbXVzdCBjb250YWluIGNoYXJhY3RlcnMgb3V0IG9mIHR3byBvZiB0aGUgZm9sbG93aW5nXG4iCisjfiAiY2xhc3NlczogIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgbm9uIGFscGhhbnVtZXJpY1xuIgorI34gImNoYXJhY3RlcnMuIFNlZSBwYXNzd2QoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJMYSBjb250cmFzZfFhIGRlYmUgY29udGVuZXIgY2FyYWN0ZXJlcyBkZSBhbCBtZW5vcyBkb3MgZGUgbGFzIHNpZ3VpZW50ZXNcbiIKKyN+ICJjbGFzZXM6IGxldHJhcyBtYXn6c2N1bGFzIHkgbWlu+nNjdWxhcywgZO1naXRvcywgeSBjYXJhY3RlcmVzIG5vICIKKyN+ICJhbGZhbnVt6XJpY29zLlxuIgorI34gIkNvbnN1bHRlIHBhc3N3ZCgxKSBwYXJhIG3hcyBpbmZvcm1hY2nzbi5cbiIKKworI34gbXNnaWQgIllvdSBjYW5ub3QgcmV1c2UgdGhlIG9sZCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAiTm8gcHVlZGUgdm9sdmVyIGEgdXRpbGl6YXIgbGEgYW50aWd1YSBjb250cmFzZfFhLlxuIgorCisjfiBtc2dpZCAiUGxlYXNlIGRvbid0IHVzZSBzb21ldGhpbmcgbGlrZSB5b3VyIHVzZXJuYW1lIGFzIHBhc3N3b3JkIVxuIgorI34gbXNnc3RyICIiCisjfiAiTm8gdXRpbGljZSB1biB2YWxvciBjb21vIHBvciBlamVtcGxvIGVsIG5vbWJyZSBkZSB1c3VhcmlvIGNvbW8gIgorI34gImNvbnRyYXNl8WEuXG4iCisKKyN+IG1zZ2lkICJQbGVhc2UgZG9uJ3QgdXNlIHNvbWV0aGluZyBsaWtlIHlvdXIgcmVhbG5hbWUgYXMgcGFzc3dvcmQhXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJObyB1dGlsaWNlIHVuIHZhbG9yIGNvbW8gcG9yIGVqZW1wbG8gc3Ugbm9tYnJlIHJlYWwgY29tbyBjb250cmFzZfFhLlxuIgorCisjfiBtc2dpZCAiVXNhZ2U6IHBhc3N3ZCBbdXNlcm5hbWUgW3Bhc3N3b3JkXV1cbiIKKyN+IG1zZ3N0ciAiVXNvOiBwYXNzd2QgW25vbWJyZXVzdWFyaW8gW2NvbnRyYXNl8WFdXVxuIgorCisjfiBtc2dpZCAiT25seSByb290IG1heSB1c2UgdGhlIG9uZSBhbmQgdHdvIGFyZ3VtZW50IGZvcm1zLlxuIgorI34gbXNnc3RyICIiCisjfiAiU/NsbyBlbCB1c3VhcmlvIHJvb3QgcHVlZGUgdXRpbGl6YXIgbG9zIGZvcm1hdG9zIGRlIHVubyB5IGRvcyAiCisjfiAiYXJndW1lbnRvcy5cbiIKKworI34gbXNnaWQgIlVzYWdlOiBwYXNzd2QgWy1mb3FzdlZdIFt1c2VyIFtwYXNzd29yZF1dXG4iCisjfiBtc2dzdHIgIlVzbzogcGFzc3dkIFstZm9xc3ZWXSBbdXN1YXJpbyBbY29udHJhc2XxYV1dXG4iCisKKyN+IG1zZ2lkICJDYW4ndCBleGVjICVzOiAlc1xuIgorI34gbXNnc3RyICJObyBzZSBwdWVkZSBlamVjdXRhciAlczogJXNcbiIKKworI34gbXNnaWQgIkNhbm5vdCBmaW5kIGxvZ2luIG5hbWUiCisjfiBtc2dzdHIgIk5vIHNlIHB1ZWRlIGVuY29udHJhciBlbCBub21icmUgZGUgaW5pY2lvIGRlIHNlc2nzbiIKKworI34gbXNnaWQgIk9ubHkgcm9vdCBjYW4gY2hhbmdlIHRoZSBwYXNzd29yZCBmb3Igb3RoZXJzLlxuIgorI34gbXNnc3RyICIiCisjfiAiU/NsbyBlbCB1c3VhcmlvIHJvb3QgcHVlZGUgY2FtYmlhciBsYSBjb250cmFzZfFhIGRlIG90cm9zIHVzdWFyaW9zLlxuIgorCisjfiBtc2dpZCAiQ2FuJ3QgZmluZCB1c2VybmFtZSBhbnl3aGVyZS4gSXMgYCVzJyByZWFsbHkgYSB1c2VyPyIKKyN+IG1zZ3N0ciAiIgorI34gIk5vIHNlIHB1ZWRlIGVuY29udHJhciBlbCBub21icmUgZGUgdXN1YXJpby4gv2AlcycgZXMgcmVhbG1lbnRlIHVuIHVzdWFyaW8/IgorCisjfiBtc2dpZCAiU29ycnksIEkgY2FuIG9ubHkgY2hhbmdlIGxvY2FsIHBhc3N3b3Jkcy4gVXNlIHlwcGFzc3dkIGluc3RlYWQuIgorI34gbXNnc3RyICIiCisjfiAiRXN0ZSBjb21hbmRvIHPzbG8gcHVlZGUgY2FtYmlhciBsYXMgY29udHJhc2XxYXMgbG9jYWxlcy4gVXRpbGljZSB5cHBhc3N3ZCAiCisjfiAiZW4gc3UgbHVnYXIuIgorCisjfiBtc2dpZCAiVUlEIGFuZCB1c2VybmFtZSBkb2VzIG5vdCBtYXRjaCwgaW1wb3N0ZXIhIgorI34gbXNnc3RyICJFbCBVSUQgeSBlbCBub21icmUgZGUgdXN1YXJpbyBubyBjb2luY2lkZW4uIgorCisjfiBtc2dpZCAiQ2hhbmdpbmcgcGFzc3dvcmQgZm9yICVzXG4iCisjfiBtc2dzdHIgIkNhbWJpYW5kbyBjb250cmFzZfFhIHBhcmEgJXNcbiIKKworI34gbXNnaWQgIkVudGVyIG9sZCBwYXNzd29yZDogIgorI34gbXNnc3RyICJFc2NyaWJhIGxhIGNvbnRyYXNl8WEgYW50aWd1YTogIgorCisjfiBtc2dpZCAiSWxsZWdhbCBwYXNzd29yZCwgaW1wb3N0ZXIuIgorI34gbXNnc3RyICJDb250cmFzZfFhIG5vIHBlcm1pdGlkYS4iCisKKyN+IG1zZ2lkICJFbnRlciBuZXcgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiRXNjcmliYSBsYSBudWV2YSBjb250cmFzZfFhOiAiCisKKyN+IG1zZ2lkICJQYXNzd29yZCBub3QgY2hhbmdlZC4iCisjfiBtc2dzdHIgIk5vIHNlIGhhIGNhbWJpYWRvIGxhIGNvbnRyYXNl8WEuIgorCisjfiBtc2dpZCAiUmUtdHlwZSBuZXcgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiVnVlbHZhIGEgZXNjcmliaXIgbGEgbnVldmEgY29udHJhc2XxYTogIgorCisjfiBtc2dpZCAiWW91IG1pc3NwZWxsZWQgaXQuIFBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAiSGEgZXNjcml0byBkZSBmb3JtYSBpbmNvcnJlY3RhIGxhIGNvbnRyYXNl8WEuIE5vIHNlIGhhIGNhbWJpYWRvLiIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQsIHVzZXIgJXMiCisjfiBtc2dzdHIgIkxhIGNvbnRyYXNl8WEgaGEgY2FtYmlhZG87IHVzdWFyaW8gJXMiCisKKyN+IG1zZ2lkICJST09UIFBBU1NXT1JEIENIQU5HRUQiCisjfiBtc2dzdHIgIkNvbnRyYXNl8WEgZGUgdXN1YXJpbyByb290IGNhbWJpYWRhIgorCisjfiBtc2dpZCAicGFzc3dvcmQgY2hhbmdlZCBieSByb290LCB1c2VyICVzIgorI34gbXNnc3RyICJDb250cmFzZfFhIGNhbWJpYWRhIHBvciB1c3VhcmlvIHJvb3Q7IHVzdWFyaW8gJXMiCisKKyN+IG1zZ2lkICJjYWxsaW5nIHNldHB3bmFtIHRvIHNldCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAiTGxhbWFuZG8gYSBzZXRwd25hbSBwYXJhIGVzdGFibGVjZXIgY29udHJhc2XxYS5cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIqTk8qIHNlIGhhIGNhbWJpYWRvIGxhIGNvbnRyYXNl8WEuIEludOludGVsbyBkZSBudWV2byBt4XMgYWRlbGFudGUuXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICJTZSBoYSBjYW1iaWFkbyBsYSBjb250cmFzZfFhLlxuIgorCisjfiBtc2dpZCAibW91bnQ6IHRoaXMgdmVyc2lvbiB3YXMgY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciB0aGUgdHlwZSBgbmZzJyIKKyN+IG1zZ3N0ciAibW91bnQ6IGVzdGEgdmVyc2nzbiBzZSBoYSBjb21waWxhZG8gc2luIHNvcG9ydGUgcGFyYSBlbCB0aXBvIGBuZnMnIgorCisjfiBtc2dpZCAiJXM6IG5vdCBjb21waWxlZCB3aXRoIG1pbml4IHYyIHN1cHBvcnRcbiIKKyN+IG1zZ3N0ciAiJXM6IG5vIHNlIGhhIGNvbXBpbGFkbyBjb24gc29wb3J0ZSBwYXJhIG1pbml4IHYyXG4iCisKKyN+IG1zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAiRXJyb3IgZGUgaW9jdGwgQkxLR0VUU0laRSBwYXJhICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIGJ5IGtlcm5lbCIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBlbCB0aXBvIGRlIHNpc3RlbWEgZGUgZmljaGVyb3MgJXMgbm8gZXN04SBzb3BvcnRhZG8gcG9yIGVsIG76Y2xlbyIKKworI34gbXNnaWQgIm1vdW50OiAlcyBkdXBsaWNhdGUgLSBub3QgbW91bnRlZCIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzIGR1cGxpY2FkbyAtIG5vIHNlIG1vbnRhIgorCisjfiBtc2dpZCAiVVVJRCIKKyN+IG1zZ3N0ciAiVVVJRCIKKworI34gbXNnaWQgIm1vdW50OiB0aGUgbGFiZWwgJXMgb2NjdXJzIG9uIGJvdGggJXMgYW5kICVzIC0gbm90IG1vdW50ZWRcbiIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBsYSBldGlxdWV0YSAlcyBhcGFyZWNlIHRhbnRvIGVuICVzIGNvbW8gZW4gJXMgLSBubyBzZSBtb250YVxuIgorCisjfiBtc2dpZCAidW1vdW50OiBvbmx5IHJvb3QgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKKyN+IG1zZ3N0ciAidW1vdW50OiBz82xvIGVsIHVzdWFyaW8gcm9vdCBwdWVkZSBkZXNtb250YXIgJXMgZGVzZGUgJXMiCisKKyN+IG1zZ2lkICIlczogWyUwNHhdOiVsZCAoJXMpIG9mZnNldCAlZCwgJXMgZW5jcnlwdGlvblxuIgorI34gbXNnc3RyICIlczogWyUwNHhdOiVsZCAoJXMpIGRlc3BsYXphbWllbnRvICVkLCAlcyBjaWZyYWRvXG4iCisKKyN+IG1zZ2lkICIiCisjfiAibW91bnQ6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS5cbiIKKyN+ICIgICAgICAgTWF5YmUgL2Rldi9sb29wIyBoYXMgYSB3cm9uZyBtYWpvciBudW1iZXI/IgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IE5vIHNlIHB1ZWRlIGVuY29udHJhciBuaW5n+m4gZGlzcG9zaXRpdm8gZGUgYnVjbGUuXG4iCisjfiAiICAgICAgIFB1ZWRlIHF1ZSAvZGV2L2xvb3AjIHRlbmdhIHVuIG76bWVybyBwcmluY2lwYWwgaW5jb3JyZWN0by4iCisKKyN+IG1zZ2lkICIiCisjfiAibW91bnQ6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorI34gIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2UgKHRoZW4gcmVjb21waWxlIG9yIGBpbnNtb2QgbG9vcC5vJyksIG9yXG4iCisjfiAiICAgICAgIG1heWJlIC9kZXYvbG9vcCMgaGFzIHRoZSB3cm9uZyBtYWpvciBudW1iZXI/IgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IE5vIHNlIGhhIGVuY29udHJhZG8gbmluZ/puIGRpc3Bvc2l0aXZvIGRlIGJ1Y2xlLiBUYWwgdmV6IGVzdGUgIgorI34gIm76Y2xlbyBub1xuIgorI34gIiAgICAgICBjb25vemNhIGVsIGRpc3Bvc2l0aXZvIGRlIGJ1Y2xlICh2dWVsdmEgYSBjb21waWxhciBvIGBpbnNtb2QgbG9vcC4iCisjfiAibycpXG4iCisjfiAiICAgICAgIG8gdGFsIHZleiAvZGV2L2xvb3AjIHRlbmdhIGVsIG76bWVybyBwcmluY2lwYWwgaW5jb3JyZWN0by4iCisKKyN+IG1zZ2lkICJJbml0ICh1cCB0byAxNiBoZXggZGlnaXRzKTogIgorI34gbXNnc3RyICJJbmljaWFsaXphY2nzbiAoaGFzdGEgMTYgZO1naXRvcyBoZXhhZGVjaW1hbGVzKTogIgorCisjfiBtc2dpZCAiTm9uLWhleCBkaWdpdCAnJWMnLlxuIgorI34gbXNnc3RyICJE7WdpdG8gbm8gaGV4YWRlY2ltYWwgJyVjJy5cbiIKKworI34gbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGdldCBrZXkgZm9yIGVuY3J5cHRpb24gc3lzdGVtICVkXG4iCisjfiBtc2dzdHIgIk5vIHNlIHNhYmUgY/NtbyBvYnRlbmVyIGxhIGNsYXZlIHBhcmEgZWwgc2lzdGVtYSBkZSBjaWZyYWRvICVkXG4iCisKKyN+IG1zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorI34gbXNnc3RyICJMYSBwYXJ0aWNp824gJWkgbm8gdGVybWluYSBlbiBlbCBs7W1pdGUgZGVsIGNpbGluZHJvOlxuIgorCisjfiBtc2dpZCAiQ2FuJ3Qgb3BlbiBoZWxwIGZpbGUiCisjfiBtc2dzdHIgIk5vIHNlIHB1ZWRlIGFicmlyIGVsIGZpY2hlcm8iCisKKyN+IG1zZ2lkICJudW1iZXIgYCVzJyB0byBgJXMnIG91dCBvZiByYW5nZVxuIgorI34gbXNnc3RyICJFbCBu+m1lcm8gZGUgYCVzJyBhIGAlcycgZXN04SBmdWVyYSBkZSByYW5nb1xuIgorCisjfiBtc2dpZCAidW5yZWNvZ25pemVkIG9wdGlvbiBgJXMnXG4iCisjfiBtc2dzdHIgIk9wY2nzbiBgJXMnIG5vIHJlY29ub2NpZGFcbiIKKworI34gbXNnaWQgIm9wdGlvbiBgJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAiTGEgb3BjafNuIGAlcycgbm8gYWRtaXRlIG5pbmf6biBhcmd1bWVudG9cbiIKKworI34gbXNnaWQgInVucmVjb2duaXplZCBvcHRpb24gYC0lYydcbiIKKyN+IG1zZ3N0ciAiT3BjafNuIGAtJWMnIG5vIHJlY29ub2NpZGFcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisKKyN+IG1zZ2lkICJmb3IgcmVhZGluZyIKKyN+IG1zZ3N0ciAicGFyYSBsZWN0dXJhIgorCisjfiBtc2dpZCAiVGhlIHBhc3N3b3JkIG11c3QgY29udGFpbiBjaGFyYWN0ZXJzIG91dCBvZiB0d28gb2YgdGhlIGZvbGxvd2luZ1xuIgorI34gbXNnc3RyICIiCisjfiAiTGEgY29udHJhc2XxYSBkZWJlIGNvbnRlbmVyIGNhcmFjdGVyZXMgZGUgZG9zIGRlIGxvcyB0aXBvcyBzaWd1aWVudGVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiY2xhc3NlczogIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgbm9uIGFscGhhbnVtZXJpY1xuIgorI34gbXNnc3RyICJjbGFzZXM6IGxldHJhcyBtYXn6c2N1bGFzIHkgbWlu+nNjdWxhcywgZO1naXRvcyB5IGNhcmFjdGVyZXNcbiIKKworI34gbXNnaWQgImNoYXJhY3RlcnMuIFNlZSBwYXNzd2QoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisjfiBtc2dzdHIgIm5vIGFsZmFudW3pcmljb3MuIFbpYXNlIHBhc3N3ZCgxKSBwYXJhIG9idGVuZXIgbeFzIGluZm9ybWFjafNuLlxuIgorCisjfiBtc2dpZCAicmVib290ZWQiCisjfiBtc2dzdHIgInJlaW5pY2lhZG8iCisKKyN+IG1zZ2lkICJoYWx0ZWQiCisjfiBtc2dzdHIgImRldGVuaWRvIgorCisjfiBtc2dpZCAiZGVmYXVsdCIKKyN+IG1zZ3N0ciAicHJlZGV0ZXJtaW5hZG8iCisKKyN+IG1zZ2lkICIlczogJWx1IGludHMsICVsdS8lbHUgY2hhcnM7ICIKKyN+IG1zZ3N0ciAiJXM6ICVsdSBlbnRlcm9zLCAlbHUvJWx1IGNhcmFjdGVyZXM7ICIKKworI34gbXNnaWQgImZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgIgorI34gbXNnc3RyICJmaWZvOiAlbHUgdW1icmFsLCAlbHUgdGllbXBvIGVzcGVyYSwgIgorCisjfiBtc2dpZCAiJWx1IG1heCwgJWx1IG5vd1xuIgorI34gbXNnc3RyICIlbHUgbeF4LCAlbHUgYWhvcmFcbiIKKworI34gbXNnaWQgIiB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKKyN+IG1zZ3N0ciAiIGxvcyBxdWUgdGllbmUgYWNjZXNvIGRlIGxlY3R1cmEuXG4iCisKKyN+IG1zZ2lkICJ1c2FnZTogYmFubmVyIFstdyB3aWR0aF1cbiIKKyN+IG1zZ3N0ciAidXNvOiBiYW5uZXIgWy13IGFuY2h1cmFdXG4iCisKKyN+IG1zZ2lkICJNZXNzYWdlOiAiCisjfiBtc2dzdHIgIk1lbnNhamU6ICIKKworI34gbXNnaWQgIlRoZSBjaGFyYWN0ZXIgJyVjJyBpcyBub3QgaW4gbXkgY2hhcmFjdGVyIHNldCIKKyN+IG1zZ3N0ciAiRWwgY2Fy4WN0ZXIgJyVjJyBubyBwZXJ0ZW5lY2UgYWwganVlZ28gZGUgY2FyYWN0ZXJlcyBkZWwgc2lzdGVtYSIKKworI34gbXNnaWQgIk1lc3NhZ2UgJyVzJyBpcyBPS1xuIgorI34gbXNnc3RyICJFbCBtZW5zYWplICclcycgZXMgY29ycmVjdG9cbiIKKworI34gbXNnaWQgImlvY3RsKCkgdG8gb3BlbiAvZGV2L3R0eTEgZmFpbGVkIgorI34gbXNnc3RyICJpb2N0bCgpIG5vIGhhIHBvZGlkbyBhYnJpciAvZGV2L3R0eTEiCisKKyN+IG1zZ2lkICI6IGJhZCBkaXJlY3Rvcnk6IHNpemU8MzIiCisjfiBtc2dzdHIgIjogZGlyZWN0b3JpbyBpbmNvcnJlY3RvOiB0YW1h8W8gPCAzMiIKKworI34gbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXMgYW4gb2RkIG51bWJlciBvZiBzZWN0b3JzLlxuIgorI34gbXNnc3RyICJBdGVuY2nzbjogbGEgcGFydGljafNuICVkIHRpZW5lIHVuIG76bWVybyBkZSBzZWN0b3JlcyBpbXBhci5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJSZS1yZWFkIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyN+ICJSZWJvb3QgeW91ciBzeXN0ZW0gdG8gZW5zdXJlIHRoZSBwYXJ0aXRpb24gdGFibGUgaXMgdXBkYXRlZC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkxhIG51ZXZhIGxlY3R1cmEgZGUgbGEgdGFibGEgZGUgcGFydGljaW9uZXMgaGEgZmFsbGFkbyBjb24gZWwgZXJyb3IgJWQ6ICUiCisjfiAicy5cbiIKKyN+ICJSZWluaWNpZSBlbCBzaXN0ZW1hIHBhcmEgYXNlZ3VyYXJzZSBkZSBxdWUgbGEgdGFibGEgZGUgcGFydGljaW9uZXMgc2UgIgorI34gImFjdHVhbGljZS5cbiIKKworI34gbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mICIKKyN+IG1zZ3N0ciAiQXRlbmNp8246IGxhIHBhcnRpY2nzbiAlcyBjb250aWVuZSBwYXJ0ZSBkZSAiCisKKyN+IG1zZ2lkICJ0aGUgcGFydGl0aW9uIHRhYmxlIChzZWN0b3IgJWx1KSxcbiIKKyN+IG1zZ3N0ciAibGEgdGFibGEgZGUgcGFydGljaW9uZXMgKHNlY3RvciAlbHUpLFxuIgorCisjfiBtc2dpZCAiYW5kIHdpbGwgZGVzdHJveSBpdCB3aGVuIGZpbGxlZFxuIgorI34gbXNnc3RyICJ5IGxhIGRlc3RydWly4SBhbCByZWxsZW5hcmxhXG4iCisKKyN+IG1zZ2lkICIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKKyN+IG1zZ3N0ciAiIChhdW5xdWUgZXN0byBubyBzdXBvbmUgdW4gcHJvYmxlbWEgZW4gTGludXgpXG4iCisKKyN+IG1zZ2lkICIlczogb3BlbiBmb3IgdXBkYXRlOiAlbSIKKyN+IG1zZ3N0ciAiJXM6IGFiaWVydG8gcGFyYSBhY3R1YWxpemFjafNuOiAlbSIKKworI34gbXNnaWQgIiVzOiBubyB1dG1wIGVudHJ5IgorI34gbXNnc3RyICIlczogbm8gaGF5IG5pbmd1bmEgZW50cmFkYSBkZSB1dG1wIgorCisjfiBtc2dpZCAiYmFkbG9naW46ICVzXG4iCisjfiBtc2dzdHIgIkluaWNpbyBkZSBzZXNp824gaW5jb3JyZWN0bzogJXNcbiIKKworI34gbXNnaWQgInNsZWVwZXhpdCAlZFxuIgorI34gbXNnc3RyICJzbGVlcGV4aXQgJWRcbiIKKworI34gbXNnaWQgIlVzYWdlOiAlcyBbIC1zIHNoZWxsIF0gIgorI34gbXNnc3RyICJVc286ICVzIFsgLXMgaW506XJwcmV0ZV/zcmRlbmVzIF0gIgorCisjfiBtc2dpZCAiICAgICAgIFsgdXNlcm5hbWUgXVxuIgorI34gbXNnc3RyICIgICAgICAgWyBub21icmVfdXN1YXJpbyBdXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBubyBLZXJiZXJvcyB0aWNrZXRzIGlzc3VlZFxuIgorI34gbXNnc3RyICJBdGVuY2nzbjogbm8gc2UgaGFuIGVtaXRpZG8gdGlja2V0cyBkZSBLZXJiZXJvc1xuIgorCisjfiBtc2dpZCAiU29ycnkgLS0geW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZC5cbiIKKyN+IG1zZ3N0ciAiTGEgY29udHJhc2XxYSBoYSBjYWR1Y2Fkby5cbiIKKworI34gbXNnaWQgIldhcm5pbmc6IHlvdXIgcGFzc3dvcmQgZXhwaXJlcyBvbiAlZCAlcyAlZC5cbiIKKyN+IG1zZ3N0ciAiQXRlbmNp8246IGxhIGNvbnRyYXNl8WEgY2FkdWNhIGVuICVkICVzIGRlbCBh8W8gJWQuXG4iCisKKyN+IG1zZ2lkICJTb3JyeSAtLSB5b3VyIGFjY291bnQgaGFzIGV4cGlyZWQuXG4iCisjfiBtc2dzdHIgIkxhIGN1ZW50YSBoYSBjYWR1Y2Fkby5cbiIKKworI34gbXNnaWQgIldhcm5pbmc6IHlvdXIgYWNjb3VudCBleHBpcmVzIG9uICVkICVzICVkLlxuIgorI34gbXNnc3RyICJBdGVuY2nzbjogbGEgY3VlbnRhIGNhZHVjYSBlbiAlZCAlcyBkZWwgYfFvICVkLlxuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IGNhbm5vdCBjaGFuZ2UgbW91bnRlZCBkZXZpY2Ugd2l0aCBhIHJlbW91bnRcbiIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBhdGVuY2nzbjogbm8gc2UgcHVlZGUgY2FtYmlhciBlbCBkaXNwb3NpdGl2byBtb250YWRvIGNvbiB1biBudWV2byAiCisjfiAibW9udGFqZVxuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IGNhbm5vdCBjaGFuZ2UgZmlsZXN5c3RlbSB0eXBlIHdpdGggYSByZW1vdW50XG4iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogYXRlbmNp8246IG5vIHNlIHB1ZWRlIGNhbWJpYXIgZWwgc2lzdGVtYSBkZSBmaWNoZXJvcyBjb24gdW4gbnVldm8gIgorI34gIm1vbnRhamVcbiIKKworI34gbXNnaWQgIm5vdCBtb3VudGVkIGFueXRoaW5nIgorI34gbXNnc3RyICJObyBzZSBoYSBtb250YWRvIG5hZGEiCisKKyN+IG1zZ2lkICJzZW5kX3RpbWU9JXNyY3ZfdGltZT0lc2NoYW5nZV90aW1lPSVzIgorI34gbXNnc3RyICJzZW5kX3RpbWU9JXNyY3ZfdGltZT0lc2NoYW5nZV90aW1lPSVzIgorCisjfiBtc2dpZCAiTm90IFNldFxuIgorI34gbXNnc3RyICJObyBlc3RhYmxlY2lkb1xuIgorCisjfiBtc2dpZCAiICByZGV2IC1zIC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgIHNldCB0aGUgU1dBUCBkZXZpY2UiCisjfiBtc2dzdHIgIiAgcmRldiAtcyAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICBFc3RhYmxlY2VyIGRpc3Bvc2l0aXZvIFNXQVAiCisKKyN+IG1zZ2lkICIgIHN3YXBkZXYgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1zIgorI34gbXNnc3RyICIgIHN3YXBkZXYgLi4uICAgICAgICAgICAgICAgICAgICAgSWd1YWwgcXVlIHJkZXYgLXMiCisKKyN+IG1zZ2lkICJhbnl0aGluZ1xuIgorI34gbXNnc3RyICJjdWFscXVpZXIgY29zYVxuIgorCisjfiBtc2dpZCAiVHlwZW1hdGljIFJhdGUgc2V0IHRvICUuMWYgY3BzIChkZWxheSA9ICVkIG1zKVxuIgorI34gbXNnc3RyICJWZWxvY2lkYWQgZGVsIHRlY2xhZG8gZXN0YWJsZWNpZGEgZW4gJS4xZiBjcHMgKHJldGFyZG8gPSAlZCBtcylcbiIKKworI34gbXNnaWQgIlVzYWdlOiBrYmRyYXRlIFstVl0gWy1zXSBbLXIgcmF0ZV0gWy1kIGRlbGF5XVxuIgorI34gbXNnc3RyICJVc286IGtiZHJhdGUgWy1WXSBbLXNdIFstciB2ZWxvY2lkYWRdIFstZCByZXRhcmRvXVxuIgorCisjfiBtc2dpZCAiQ2Fubm90IG9wZW4gL2Rldi9wb3J0IgorI34gbXNnc3RyICJObyBzZSBwdWVkZSBhYnJpciAvZGV2L3BvcnQiCisKKyN+IG1zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcyVkLlxuIgorI34gbXNnc3RyICJFc2NyaWJpZW5kbyBldGlxdWV0YSBkZSBkaXNjbyBlbiAlcyVkLlxuIgorCisjfiBtc2dpZCAiJXMlZCBjb250YWlucyBubyBkaXNrbGFiZWwuXG4iCisjfiBtc2dzdHIgIiVzJWQgbm8gY29udGllbmUgbmluZ3VuYSBldGlxdWV0YSBkZSBkaXNjby5cbiIKKworI34gbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMlZC5cbiIKKyN+IG1zZ3N0ciAiU2VjdWVuY2lhIGRlIGluaWNpbyBpbnN0YWxhZGEgZW4gJXMlZC5cbiIKKworI34gbXNnaWQgIiVzOiB1bmtub3duIGdlb21ldHJ5XG4iCisjfiBtc2dzdHIgIiVzOiBnZW9tZXRy7WEgZGVzY29ub2NpZGFcbiIKKworI34gbXNnaWQgImV4ZWMgcmMgZmFpbGVkXG4iCisjfiBtc2dzdHIgIkxhIGVqZWN1Y2nzbiAoZXhlYykgZGUgcmMgaGEgZmFsbGFkb1xuIgorCisjfiBtc2dpZCAiZm9yayBvZiByYyBzaGVsbCBmYWlsZWRcbiIKKyN+IG1zZ3N0ciAiTGEgYmlmdXJjYWNp824gKGZvcmspIGRlIGludOlycHJldGUgZGUg83JkZW5lcyBkZSByYyBoYSBmYWxsYWRvXG4iCisKKyN+IG1zZ2lkICJDYW5ub3QgZ2V0IGxvb3AgaW5mbyIKKyN+IG1zZ3N0ciAiTm8gc2UgcHVlZGUgb2J0ZW5lciBsYSBpbmZvcm1hY2nzbiBkZSBsb29wIgorCisjfiBtc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBtYWpvciBvciBtaW5vciBudW1iZXIiCisjfiBtc2dzdHIgIm1vdW50OiAlcyB0aWVuZSB1biBu+m1lcm8gcHJpbmNpcGFsIG8gc2VjdW5kYXJpbyBpbmNvcnJlY3RvIgorCisjfiBtc2dpZCAibW91bnQ6IGJsb2NrIGRldmljZSAlcyBpcyBub3QgcGVybWl0dGVkIG9uIGl0cyBmaWxlc3lzdGVtIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IGRpc3Bvc2l0aXZvIGRlIGJsb3F1ZXMgJXMgbm8gcGVybWl0aWRvIGVuIGVzdGUgc2lzdGVtYSBkZSBmaWNoZXJvcyIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogbW91bnQgWy1oVl1cbiIKKyN+ICIgICAgICAgbW91bnQgLWEgWy1uZkZyc3Z3XSBbLXQgdmZzdHlwZXNdXG4iCisjfiAiICAgICAgIG1vdW50IFstbmZyc3Z3XSBbLW8gb3B0aW9uc10gc3BlY2lhbCB8IG5vZGVcbiIKKyN+ICIgICAgICAgbW91bnQgWy1uZnJzdnddIFstdCB2ZnN0eXBlXSBbLW8gb3B0aW9uc10gc3BlY2lhbCBub2RlXG4iCisjfiAiICAgICAgIEEgc3BlY2lhbCBkZXZpY2UgY2FuIGJlIGluZGljYXRlZCBieSAgLUwgbGFiZWwgIG9yICAtVSB1dWlkIC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlVzbzogICBtb3VudCBbLWhWXVxuIgorI34gIiAgICAgICBtb3VudCAtYSBbLW5mRnJzdnddIFstdCB2ZnN0eXBlc11cbiIKKyN+ICIgICAgICAgbW91bnQgWy1uZnJzdnddIFstbyBvcGNpb25lc10gc3BlY2lhbCB8IG5vZGVcbiIKKyN+ICIgICAgICAgbW91bnQgWy1uZnJzdnddIFstdCB2ZnN0eXBlXSBbLW8gb3BjaW9uZXNdIHNwZWNpYWwgbm9kZVxuIgorI34gIiAgICAgICBVbiBkaXNwb3NpdGl2byBlc3BlY2lhbCBwdWVkZSBpbmRpY2Fyc2UgbWVkaWFudGUgLUwgZXRpcXVldGEgbyAtVSAiCisjfiAidXVpZFxuIgorCisjfiBtc2dpZCAibW91bnQ6ICVzOiVzIGZhaWxlZCwgcmVhc29uIGdpdmVuIGJ5IHNlcnZlcjogJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzOiVzIGhhIGZhbGxhZG87IG1vdGl2byBpbmRpY2FkbyBwb3Igc2Vydmlkb3I6ICVzXG4iCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ldC5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ldC5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmMxZjAxYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2V0LmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ldC5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2V0LnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExZDdlNWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ldC5wbwpAQCAtMCwwICsxLDEyMDgxIEBACisjIEVzdG9uaWFuIHRyYW5zbGF0aW9ucyBmb3IgdXRpbC1saW51eAorIyBDb3B5cmlnaHQgKEMpIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMjAwMiBNZWVsaXMgUm9vcyA8bXJvb3NAbGludXguZWU+CisjIE1lZWxpcyBSb29zIDxtcm9vc0BsaW51eC5lZT4sIDIwMDIKKyMKKyMgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGZyZWVseSBjb3B5IGFuZCBkaXN0cmlidXRlCisjIHRoaXMgZmlsZSBhbmQgbW9kaWZpZWQgdmVyc2lvbnMsIHByb3ZpZGVkIHRoYXQgdGhpcworIyBoZWFkZXIgaXMgbm90IHJlbW92ZWQgYW5kIG1vZGlmaWVkIHZlcnNpb25zIGFyZSBtYXJrZWQKKyMgYXMgc3VjaC4KKyMKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IHV0aWwtbGludXggMi4xMXJcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDItMDUtMTkgMjA6MDRHTVQrMDMwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogTWVlbGlzIFJvb3MgPG1yb29zQGxpbnV4LmVlPlxuIgorIkxhbmd1YWdlLVRlYW06IEVzdG9uaWFuIDxldEBsaS5vcmc+XG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMTVcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjcwCittc2dpZCAic2V0IHJlYWQtd3JpdGUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjc2Cittc2dpZCAiZ2V0IHJlYWQtb25seSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODIKK21zZ2lkICJnZXQgbG9naWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo4OAorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo5NAorbXNnaWQgImdldCBtaW5pbXVtIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKK21zZ2lkICJnZXQgb3B0aW1hbCBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2CisjLCBmdXp6eQorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICJ2aWdhbmUgaS1raXJqZSBzdXVydXMiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTIKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IgorbXNnc3RyICJMaXNhc2VrdG9yZWlkIHNpbGluZHJpbCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExOAorbXNnaWQgImdldCBibG9ja3NpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEyNQorbXNnaWQgInNldCBibG9ja3NpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzMQorbXNnaWQgImdldCAzMi1iaXQgc2VjdG9yIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTQ0Cittc2dpZCAic2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTU3Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAia2FzdXRhbWluZTpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBjb21tYW5kczpcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3Cittc2dpZCAiZ2V0IHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9ycyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozNzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzIGZhaWxlZC5cbiIKK21zZ3N0ciAic2VlayBlaSD1bm5lc3R1bnVkIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN1Y2NlZWRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDI3IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzOiBFaSBzdXVkYSBhdmFkYSBmYWlsaSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpb2N0bCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAiS2FzdXRhbWluZTpcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHROT1RFOiBlbHZ0dW5lIG9ubHkgd29ya3Mgd2l0aCAyLjQga2VybmVsc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAicG9zaXRzaW9uZWVyaW1pc2UgdmlnYSIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pc3NpbmcgYmxvY2tkZXZpY2UsIHVzZSAtaCBmb3IgaGVscFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZWx2dHVuZSBpcyBvbmx5IHVzZWZ1bCBvbiBvbGRlciBrZXJuZWxzO1xuIgorImZvciAyLjYgdXNlIElPIHNjaGVkdWxlciBzeXNmcyB0dW5hYmxlcyBpbnN0ZWFkLi5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9ybWF0dGluZyAuLi4gIgorbXNnc3RyICJGb3JtYWFkaW4gLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgInZhbG1pc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmVyaWZ5aW5nIC4uLiAiCittc2dzdHIgIktvbnRyb2xsaW4gLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjcxCittc2dpZCAiUmVhZDogIgorbXNnc3RyICJyZWFkOiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9ibGVtIHJlYWRpbmcgY3lsaW5kZXIgJWQsIGV4cGVjdGVkICVkLCByZWFkICVkXG4iCittc2dzdHIgIlByb2JsZWVtIHNpbGluZHJpbHQgJWQgbHVnZW1pc2VsLCBsb290c2luICVkLCBzYWluICVkXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiYmFkIGRhdGEgaW4gY3lsICVkXG4iCisiQ29udGludWluZyAuLi4gIgorbXNnc3RyICIiCisiSGFsdmFkIGFuZG1lZCBzaWxpbmRyaWwgJWRcbiIKKyJK5HRrYW4gLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgIkthc3V0YW1pbmU6ICVzIFsgLW4gXSBzZWFkZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTE4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODQKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE4MSBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTE0IGRpc2stdXRpbHMvbWtmcy5jOjUyCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODEyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3MgorIzogZGlzay11dGlscy9ta3N3YXAuYzo0ODcgbWlzYy11dGlscy9kZGF0ZS5jOjE3OSBtaXNjLXV0aWxzL3JlbmFtZS5jOjc5CisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE0NyBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxOTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzICglcylcbiIKK21zZ3N0ciAiJXM6ICVzICglcylcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICIlcyBwb2xlIGZsb3Bpc2VhZGVcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiRWkgc3V1ZGEga2luZGxha3MgdGVoYSBmb3JtYWF0aW1pc2UgcGFyYW1lZXRyZWlkIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgIiVzcG9vbG5lLCAlZCByYWRhLCAlZCBzZWt0b3JpdCByYWphbC4gS29ndW1haHQgJWQga0JcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIkRvdWJsZSIKK21zZ3N0ciAiS2FoZSIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIlNpbmdsZSIKK21zZ3N0ciAi3GhlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1odl0gWy14IGRpcl0gZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAteCBkaXIgICAgIGV4dHJhY3QgaW50byBkaXJcbiIKKyIgLXYgICAgICAgICBiZSBtb3JlIHZlcmJvc2VcbiIKKyIgZmlsZSAgICAgICBmaWxlIHRvIHRlc3RcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgIiVzOiBBdmFtaW5lIGVpIPVubmVzdHVudWQ6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib3BlbiBmYWlsZWQ6ICVzIgorbXNnc3RyICJFaSBzdXVkYSBhdmFkYSBmYWlsaSBgJXMnIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTcyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIGZhaWxlZDogdW5hYmxlIHRvIGRldGVybWluZSBkZXZpY2Ugc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIlcyBwb2xlIGZsb3Bpc2VhZGVcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4NCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI2Cittc2dpZCAiZmlsZSBsZW5ndGggdG9vIHNob3J0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGZhaWxlZDogJXMiCittc2dzdHIgInZpZ2FuZSBraWlydXM6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjA3Cittc2dpZCAic3VwZXJibG9jayBtYWdpYyBub3QgZm91bmQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxNgorIywgZnV6enkKK21zZ2lkICJ1bnN1cHBvcnRlZCBmaWxlc3lzdGVtIGZlYXR1cmVzIgorbXNnc3RyICJTaXNlc3RhZ2UgZmFpbGlz/HN0ZWVtaSB0/PxiaSBudW1iZXI6ICIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3VwZXJibG9jayBzaXplICglZCkgdG9vIHNtYWxsIgorbXNnc3RyICJTaXNldGFnZSBzZWt0b3JpdGUgYXJ2IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjIzCittc2dpZCAiemVybyBmaWxlIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgZXh0ZW5kcyBwYXN0IGVuZCBvZiBmaWxlc3lzdGVtXG4iCittc2dzdHIgIkhvaWF0dXM6IHBhcnRpdHNpb29uICVzIHP1aWRhYiD8bGUga2V0dGEgb3RzYVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI0NgorbXNnaWQgInVuYWJsZSB0byB0ZXN0IENSQzogb2xkIGNyYW1mcyBmb3JtYXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3MiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzM5CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDc3IGxvZ2luLXV0aWxzL2NoZm4uYzo1MjkgbG9naW4tdXRpbHMvY2hzaC5jOjQzOQorIzogbWlzYy11dGlscy93aXBlZnMuYzoxNDEgc3lzLXV0aWxzL2N5dHVuZS5jOjMyMQorbXNnaWQgIm1hbGxvYyBmYWlsZWQiCittc2dzdHIgIk3kbHUgc2FpIG90c2EiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyOTcKKyMsIGZ1enp5Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICJwb3NpdHNpb25lZXJpbWlzZSB2aWdhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY0CisjLCBmdXp6eQorbXNnaWQgInJvb3QgaW5vZGUgaXMgbm90IGRpcmVjdG9yeSIKK21zZ3N0ciAianV1cmthdGFsb29naSBpLWtpcmplIGVpIGtpcmplbGRhIGthdGFsb29naSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM4NworbXNnaWQgImRhdGEgYmxvY2sgdG9vIGxhcmdlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVjb21wcmVzc2lvbiBlcnJvciAlcCglZCk6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgaG9sZSBhdCAlbGQgKCV6ZClcbiIKK21zZ3N0ciAicGVha3Mgb2xlbWEgKCVkLCAlZCwgJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjMgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLWJsb2NrICglbGQpIGJ5dGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGZhaWxlZDogJXMiCittc2dzdHIgIiVzIGF2YW1pbmUgZWkg9W5uZXN0dW51ZCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGNob3duIGZhaWxlZDogJXMiCittc2dzdHIgImxvZ2luOiBWaWdhIGZvcmsnaW1pc2VsOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiY2hkaXIgKCkga2F0YWxvb2dpIC9kZXYgZWkg9W5uZXN0dW51ZDogJW0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInV0aW1lIGZhaWxlZDogJXMiCittc2dzdHIgInZpZ2FuZSB0YWltYWRpIHbk5HJ0dXM6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0OTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgImNoZGlyICgpIGthdGFsb29naSAvZGV2IGVpIPVubmVzdHVudWQ6ICVtIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTExCittc2dpZCAiZmlsZW5hbWUgbGVuZ3RoIGlzIHplcm8iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxNAorbXNnaWQgImJhZCBmaWxlbmFtZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUyMQorIywgZnV6enkKK21zZ2lkICJiYWQgaW5vZGUgb2Zmc2V0IgorbXNnc3RyICJ2aWdhbmUgaS1raXJqZSBzdXVydXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MzcKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTQwCittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBzaXplIGFuZCBub24temVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3MQorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzQKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2l6ZSBlcnJvciBpbiBzeW1saW5rOiAlcyIKK21zZ3N0ciAiS2lyanV0YW1pc2UgdmlnYSBzZWFkbWVsICVzXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN5bWxpbmsgZmFpbGVkOiAlcyIKK21zZ3N0ciAiZnN5bmMgZWkg9W5uZXN0dW51ZCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJib2d1cyBtb2RlOiAlcyAoJW8pIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rbm9kIGZhaWxlZDogJXMiCittc2dzdHIgIk3kbHUgc2FpIG90c2EiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Njg1CisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY5MAorbXNnaWQgImludmFsaWQgZmlsZSBkYXRhIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzE0CisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBhbGxvY2F0ZSBvdXRidWZmZXIiCittc2dzdHIgImVpIGrkdGt1IG3kbHUga2FhcnRpZGUgcHVodnJpdGVsZSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworIywgZnV6enkKK21zZ2lkICJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiCittc2dzdHIgIiVzIHBvbGUga29tcGlsZWVyaXR1ZCBtaW5peCB2MiB0b2VnYVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCittc2dzdHIgIkthc3V0YW1pbmU6ICVzIFstbGFydnNtZl0gL2Rldi9zZWFkZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIG9uIG1vbnRlZXJpdHVkLiAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyNQorbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byBjb250aW51ZSIKK21zZ3N0ciAiS2FzIFRlIHNvb3ZpdGUgdPVlc3RpIGrkdGthdGEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICJjaGVjayBhYm9ydGVkLlxuIgorbXNnc3RyICJrYXRrZXN0YW4ga29udHJvbGxpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJUc29vbmkgbnIuIDwgRklSU1RaT05FIGZhaWxpcyBgJXMnIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiVHNvb25pIG5yLiA+PSBaT05FUyBmYWlsaXMgYCVzJyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiS2FzIGVlbWFsZGFkYSBwbG9rayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IHVuYWJsZSB0byBzZWVrIHRvIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJWaWdhIGx1Z2VtaXNlbDogZWkgc3V1ZGEgc2Vla2lkYSBwbG9raWxlIGZhaWxpcyBgJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIlZpZ2EgbHVnZW1pc2VsOiB2aWdhbmUgcGxva2sgZmFpbGlzIGAlcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisiU2lzZW1pbmUgdmlnYToga2F0c2Uga2lyanV0YWRhIHZpZ2FzZXNzZSBwbG9ra2lcbiIKKyJLaXJqdXRhbWlzZSBrYXRzZXQgaWdub3JlZXJpdGlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJzZWVrIGVpIPVubmVzdHVudWQgcGxva2kga2lyanV0YW1pc2VsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiVmlnYSBraXJqdXRhbWlzZWw6IHZpZ2FuZSBwbG9rayBmYWlsaXMgYCVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NDQKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9zdXBlcl9ibG9jayIKK21zZ3N0ciAic2VlayBlaSD1bm5lc3R1bnVkIHN1cGVycGxva2kga2lyanV0YW1pc2VsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NDYgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk0Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHN1cGVyLWJsb2NrIgorbXNnc3RyICJlaSBzdXVkYSBraXJqdXRhZGEgc3VwZXJwbG9ra2kiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1NgorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgImVpIHN1dWRhIGtpcmp1dGFkYSBpLWtpcmpldGUga2FhcnRpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgImVpIHN1dWRhIGtpcmp1dGFkYSB0c29vbmlkZSBrYWFydGkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU2MAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgImVpIHN1dWRhIGtpcmp1dGFkYSBpLWtpcmplaWQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU4NworbXNnaWQgInNlZWsgZmFpbGVkIgorbXNnc3RyICJzZWVrIGVpIPVubmVzdHVudWQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5MSBkaXNrLXV0aWxzL21rZnMubWluaXguYzozOTkKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIGJ1ZmZlciBmb3Igc3VwZXJibG9jayIKK21zZ3N0ciAiZWkgauR0a3UgbeRsdSBrYWFydGlkZSBwdWh2cml0ZWxlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAiZWkgc3V1ZGEgbHVnZWRhIHN1cGVycGxva2tpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJ2aWdhbmUgbWFhZ2lsaW5lIG51bWJlciBzdXBlcnBsb2tpcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE0Cittc2dpZCAiT25seSAxayBibG9ja3Mvem9uZXMgc3VwcG9ydGVkIgorbXNnc3RyICJBaW51bHQgMWsgcGxva2lkIGphIHRzb29uaWQgb24gdG9ldGF0dWQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJ2aWdhbmUgc19pbWFwX2Jsb2NrcyB25GxpIHN1cGVycGxva2lzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAidmlnYW5lIHNfem1hcF9ibG9ja3MgduRsaSBzdXBlcnBsb2tpcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI1Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgbWFwIgorbXNnc3RyICJlaSBq5HRrdSBt5Gx1IGkta2lyamV0ZSBrYWFyZGlsZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI4CisjLCBmdXp6eQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgbWFwIgorbXNnc3RyICJlaSBq5HRrdSBt5Gx1IGkta2lyamV0ZSBrYWFyZGlsZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJlaSBq5HRrdSBt5Gx1IGkta2lyamV0ZSBwdWh2cmlsZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjM2Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgY291bnQiCittc2dzdHIgImVpIGrkdGt1IG3kbHUgaS1raXJqZXRlIGxvZW5kdXJpbGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgImVpIGrkdGt1IG3kbHUgdHNvb25pZGUgbG9lbmR1cmlsZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICJlaSBzdXVkYSBsdWdlZGEgaS1raXJqZXRlIGthYXJ0aSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgImVpIHN1dWRhIGx1Z2VkYSB0c29vbmlkZSBrYWFydGkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlcyIKK21zZ3N0ciAiZWkgc3V1ZGEgbHVnZWRhIGkta2lyamVpZCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICJIb2lhdHVzOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgaW5vZGVzXG4iCittc2dzdHIgIiVsZCBpLWtpcmpldFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIHBsb2traVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIkVzaW1lbmUgYW5kbWV0ZSB0c29vbj0lbGQgKCVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lc2l6ZT0lZFxuIgorbXNnc3RyICJUc29vbmkgc3V1cnVzPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJNYXhzaXplPSVsZFxuIgorbXNnc3RyICJNYXguIHN1dXJ1cz0lbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKK21zZ3N0ciAiRmFpbGlz/HN0ZWVtaSBvbGVrPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisibmltZSBwaWtrdXM9JWRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjczIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtYXJrZWQgdW51c2VkLCBidXQgdXNlZCBmb3IgZmlsZSAnJXMnXG4iCittc2dzdHIgIkkta2lyamUgJWQgb24gbeRyZ2l0dWQgbWl0dGVrYXN1dGF0dWtzLCBhZ2Ega2FzdXRhdHVkIGZhaWxpcyBgJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjgKK21zZ2lkICJNYXJrIGluIHVzZSIKK21zZ3N0ciAiTeRya2lkYSBrYXN1dGF0dWtzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIgorbXNnc3RyICJGYWlsIGAlcycgb24gbW9vZGlnYSAlMDVvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcwNiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaW5vZGUgY291bnQgdG9vIGJpZy5cbiIKK21zZ3N0ciAiSG9pYXR1czogaS1raXJqZXRlIGFydiBvbiBsaWlnYSBzdXVyXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NzQKK21zZ2lkICJyb290IGlub2RlIGlzbid0IGEgZGlyZWN0b3J5IgorbXNnc3RyICJqdXVya2F0YWxvb2dpIGkta2lyamUgZWkga2lyamVsZGEga2F0YWxvb2dpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3ODggZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiUGxva2sgb24ganViYSBrYXN1dGF0dWQsIGt1aWQgbGVpZHVzIHV1ZXN0aSBmYWlsaXMgYCVzJy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc5MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjMKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NQorIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjEwCittc2dpZCAiQ2xlYXIiCittc2dzdHIgIkthcyBwdWhhc3RhZGEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgJWQgaW4gZmlsZSBgJXMnIGlzIG1hcmtlZCBub3QgaW4gdXNlLiIKK21zZ3N0ciAiUGxva2sgJWQgZmFpbGlzIGAlcycgb24gbeRyZ2l0dWQgbWl0dGVrYXN1dGF0dWtzLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzNQorbXNnaWQgIkNvcnJlY3QiCittc2dzdHIgIkthcyBwYXJhbmRhZGEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiS2F0YWxvb2cgYCVzJyBzaXNhbGRhYiB2aWdhc3QgaS1raXJqZSBudW1icml0IGZhaWxpbGUgYCUuKnMnIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBLYXMgZWVtYWxkYWRhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCittc2dzdHIgImAlcyc6IHZpZ2FuZSBrYXRhbG9vZzogYC4nIHBvbGUgZXNpbWVuZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiYCVzJzogdmlnYW5lIGthdGFsb29nOiBgLi4nIHBvbGUgdGVpbmVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTE5Cittc2dpZCAiaW50ZXJuYWwgZXJyb3IiCittc2dzdHIgInNpc2VtaW5lIHZpZ2EiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogc2l6ZSA8IDMyIgorbXNnc3RyICJgJXMnOiB2aWdhbmUga2F0YWxvb2c6IHN1dXJ1cyA8IDMyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTM1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gYmFkX3pvbmUiCittc2dzdHIgInNlZWsgZWkg9W5uZXN0dW51ZCBmdW5rdHNpb29uaXMgYmFkX3pvbmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDUgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtb2RlIG5vdCBjbGVhcmVkLiIKK21zZ3N0ciAiSS1raXJqZSAlZCBtb29kaSBlaSBwdWhhc3RhdHVkLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjA5CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG5vdCB1c2VkLCBtYXJrZWQgdXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiSS1raXJqZSAlZCBwb2xlIGthc3V0dXNlbCwgbeRyZ2l0dWQga2FzdXRhdHVrcyBiaXRtYXBpcy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCB1c2VkLCBtYXJrZWQgdW51c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJJLWtpcmplICVkIG9uIGthc3V0dXNlbCwgbeRyZ2l0dWQgbWl0dGVrYXN1dGF0dWtzIGJpdG1hcGlzLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICJTZWFkYSBiaXR0IGJpdG1hcGlzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJLWtpcmplICVkIChtb29kID0gJTA3byksIGlfbmxpbmtzPSVkLCBsb2VuZGF0dWQ9JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgIlNlYWRhIGlfbmxpbmtzIGxvZW5kYXR1ZCBhcnZ1a3MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICJUc29vbiAlZDsgbeRyZ2l0dWQga2FzdXRhdHVrcywga3VpZCD8a3NraSBmYWlsIGVpIGthc3V0YSBzZWRhLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM2Cittc2dpZCAiVW5tYXJrIgorbXNnc3RyICJN5HJraWRhIG1pdHRla2FzdXRhdHVrcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJUc29vbiAlZDoga2FzdXR1c2VsLCBsb2VuZGF0dWQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiVHNvb24gJWQ6IGthc3V0dXNlbCwgbG9lbmRhdHVkPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODkgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc3CisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzkKK21zZ2lkICJiYWQgaW5vZGUgc2l6ZSIKK21zZ3N0ciAidmlnYW5lIGkta2lyamUgc3V1cnVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjkxCittc2dpZCAiYmFkIHYyIGlub2RlIHNpemUiCittc2dzdHIgInZpZ2FuZSB2MiBpLWtpcmplIHN1dXJ1cyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMxNworbXNnaWQgIm5lZWQgdGVybWluYWwgZm9yIGludGVyYWN0aXZlIHJlcGFpcnMiCittc2dzdHIgImludGVyYWt0aWl2c2VrcyBwYXJhbmRhbWlzZWtzIG9uIHZhamEgdGVybWluYWxpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzIxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIKK21zZ3N0ciAiZWkgc3V1ZGEgYXZhZGEgc2VhZGV0ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiJXMgb24gcHVoYXMgZWdhIHZhamEga29udHJvbGxpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9yY2luZyBmaWxlc3lzdGVtIGNoZWNrIG9uICVzLlxuIgorbXNnc3RyICJQZWFsZXN1bm5pdHVkIGtvbnRyb2xsIGZhaWxpc/xzdGVlbWlsICVzXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBvbiAlcyBpcyBkaXJ0eSwgbmVlZHMgY2hlY2tpbmcuXG4iCittc2dzdHIgIkZhaWxpc/xzdGVlbSAlcyBvbiBcIm11c3RcIiBqYSB2YWphYiBrb250cm9sbGlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZsZCBpbm9kZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmxkIGkta2lyamV0IGthc3V0dXNlbCAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTZsZCB6b25lcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiJTZsZCB0c29vbmkga2FzdXR1c2VsICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZkIHJlZ3VsYXIgZmlsZXNcbiIKKyIlNmQgZGlyZWN0b3JpZXNcbiIKKyIlNmQgY2hhcmFjdGVyIGRldmljZSBmaWxlc1xuIgorIiU2ZCBibG9jayBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgbGlua3NcbiIKKyIlNmQgc3ltYm9saWMgbGlua3NcbiIKKyItLS0tLS1cbiIKKyIlNmQgZmlsZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2ZCB0YXZhbGlzdCBmYWlsaVxuIgorIiU2ZCBrYXRhbG9vZ2lcbiIKKyIlNmQgc/xtYm9sc2VhZGV0XG4iCisiJTZkIHBsb2trc2VhZGV0XG4iCisiJTZkIHZpaWRldFxuIgorIiU2ZCBuaW1ldmlpZGV0XG4iCisiLS0tLS0tXG4iCisiJTZkIGZhaWxpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGQUlMSVPcU1RFRU1JIFNBSSBNVVVERVRVRFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIG9wZW46ICVzXG4iCittc2dzdHIgIiVzOiBBdmFtaW5lIGVpIPVubmVzdHVudWQ6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogc2Vla2ltaXNlIHZpZ2EgZmFpbGlzICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogbHVnZW1pc2UgdmlnYSBmYWlsaXMgJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvciBjb3VudDogJWQsIHNlY3RvciBzaXplOiAlZFxuIgorbXNnc3RyICJzZWt0b3JpdGUgYXJ2OiAlZCwgc2VrdG9yaSBzdXVydXM6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiB2aWdhIHb1dG1ldGUgYW5hbPz8c2ltaXNlbFxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLWltYWdlXG4iCittc2dzdHIgIkthc3V0YW1pbmU6ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLWltYWdlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisiS2FzdXRhbWluZTogJXMgWy12XSBbLU4gaS1raXJqZXRlLWFydl0gWy1WIGv2aXRlLW5pbWldXG4iCisiICAgICAgIFstRiBmc25pbWldIHNlYWRlIFtwbG9ra2lkZS1hcnZdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAia/ZpdGUgbmltaSBvbiBsaWlnYSBwaWtrIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgImZzLW5pbWkgb24gbGlpZ2EgcGlrayIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBkZXZpY2UgJXMiCittc2dzdHIgInN0YXQoJXMpIGVpIPVubmVzdHVudWQiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIHBvbGUgcGxva2tzZWFkZSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE3MSBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMiCittc2dzdHIgImVpIHN1dWRhIGF2YWRhIHNlYWRldCAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgImVpIHN1dWRhIGtpbmRsYWtzIHRlaGEgc2VhZG1lICVzIG1haHR1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIKK21zZ3N0ciAicGxva2tpZGUgYXJ2dSBhcmd1bWVudCBvbiBsaWlnYSBzdXVyLCBtYWtzaW11bSBvbiAlbHUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMDIKK21zZ2lkICJ0b28gbWFueSBpbm9kZXMgLSBtYXggaXMgNTEyIgorbXNnc3RyICJsaWlnYSBwYWxqdSBpLWtpcmplaWQgLSBtYWtzaW11bSBvbiA1MTIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UsIG5lZWQgYXQgbGVhc3QgJWxsdSBibG9ja3MiCittc2dzdHIgInBvbGUgcGlpc2F2YWx0IHZhYmEgcnV1bWksIHZhamEgb2xla3MgduRoZW1hbHQgJWx1IHBsb2traSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICJTZWFkZTogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNAorIywgYy1mb3JtYXQKK21zZ2lkICJWb2x1bWU6IDwlLTZzPlxuIgorbXNnc3RyICJL9mlkZTogPCUtNnM+XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRlNuYW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiRlNuaW1pOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIlBsb2tpIHN1dXJ1czogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJJLWtpcmplaWQ6ICVkICgxIHBsb2tpcylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gJWxsZCBibG9ja3MpXG4iCittc2dzdHIgIkkta2lyamVpZDogJWQgKCVsZCBwbG9raXMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrczogJWxsZFxuIgorbXNnc3RyICJQbG9ra2U6ICVsZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlIGVuZDogJWQsIERhdGEgZW5kOiAlZFxuIgorbXNnc3RyICJJLWtpcmpldGUgbPVwcDogJWQsIGFuZG1ldGUgbPVwcDogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzOQorbXNnaWQgImVycm9yIHdyaXRpbmcgc3VwZXJibG9jayIKK21zZ3N0ciAidmlnYSBzdXBlcnBsb2tpIGtpcmp1dGFtaXNlbCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI1OQorbXNnaWQgImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIKK21zZ3N0ciAidmlnYSB0aXBtaXNlIGkta2lyamUga2lyanV0YW1pc2VsIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBpbm9kZSIKK21zZ3N0ciAidmlnYSBpLWtpcmplIGtpcmp1dGFtaXNlbCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NworbXNnaWQgInNlZWsgZXJyb3IiCittc2dzdHIgInBvc2l0c2lvbmVlcmltaXNlIHZpZ2EiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKK21zZ2lkICJlcnJvciB3cml0aW5nIC4gZW50cnkiCittc2dzdHIgInZpZ2EgLiBraXJqZSBraXJqdXRhbWlzZWwiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzcKK21zZ2lkICJlcnJvciB3cml0aW5nIC4uIGVudHJ5IgorbXNnc3RyICJ2aWdhIC4uIGtpcmplIGtpcmp1dGFtaXNlbCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjbG9zaW5nICVzIgorbXNnc3RyICJ2aWdhICVzIHN1bGdlbWlzZWwiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBta2ZzIFstVl0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIGRldmljZSBbc2l6ZV1cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogbWtmcyBbLVZdIFstdCBmc3T8/HBdIFtmcy129XRtZWRdIHNlYWRlIFtzdXVydXNdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjg4IGRpc2stdXRpbHMvbWtmcy5jOjk2IGZkaXNrL2NmZGlzay5jOjM1MworIzogZ2V0b3B0L2dldG9wdC5jOjg2IGdldG9wdC9nZXRvcHQuYzo5NiBsb2dpbi11dGlscy93YWxsLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPdXQgb2YgbWVtb3J5IVxuIgorbXNnc3RyICIlczogTeRsdSBzYWkgb3RzYVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rZnMgKCVzKVxuIgorbXNnc3RyICJta2ZzIHZlcnNpb29uICVzICglcylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaF0gWy12XSBbLWIgYmxrc2l6ZV0gWy1lIGVkaXRpb25dIFstTiBlbmRpYW5dIFstaSBmaWxlXSBbLW4gIgorIm5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAtdiAgICAgICAgIGJlIHZlcmJvc2VcbiIKKyIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgKG5vbi16ZXJvIGV4aXQgc3RhdHVzKVxuIgorIiAtYiBibGtzaXplIHVzZSB0aGlzIGJsb2Nrc2l6ZSwgbXVzdCBlcXVhbCBwYWdlIHNpemVcbiIKKyIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgY3JhbWZzIGVuZGlhbm5lc3MgKGJpZ3xsaXR0bGV8aG9zdCksIGRlZmF1bHQgaG9zdFxuIgorIiAtaSBmaWxlICAgIGluc2VydCBhIGZpbGUgaW1hZ2UgaW50byB0aGUgZmlsZXN5c3RlbSAocmVxdWlyZXMgPj0gMi40LjApXG4iCisiIC1uIG5hbWUgICAgc2V0IG5hbWUgb2YgY3JhbWZzIGZpbGVzeXN0ZW1cbiIKKyIgLXAgICAgICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIgorIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisiIC16ICAgICAgICAgbWFrZSBleHBsaWNpdCBob2xlcyAocmVxdWlyZXMgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3NlZFxuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVmVyeSBsb25nICglenUgYnl0ZXMpIGZpbGVuYW1lIGAlcycgZm91bmQuXG4iCisiIFBsZWFzZSBpbmNyZWFzZSBNQVhfSU5QVVRfTkFNRUxFTiBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICBFeGl0aW5nLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo0NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlsZXN5c3RlbSB0b28gYmlnLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFJRUVFOiBibG9jayBcImNvbXByZXNzZWRcIiB0byA+IDIqYmxvY2tsZW5ndGggKCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbmNsdWRpbmc6ICVzXG4iCittc2dzdHIgIlZpZ2FuZSBhcnY6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlyZWN0b3J5IGRhdGE6ICV6ZCBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICJIb2lhdHVzOiBpLWtpcmpldGUgYXJ2IG9uIGxpaWdhIHN1dXJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlcyB3ZXJlIHNraXBwZWQgZHVlIHRvIGVycm9ycy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTUyCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgc2l6ZXMgdHJ1bmNhdGVkIHRvICVsdU1CIChtaW51cyAxIGJ5dGUpLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IHVpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBnaWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV0FSTklORzogZGV2aWNlIG51bWJlcnMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICBUaGlzIGFsbW9zdCBjZXJ0YWlubHkgbWVhbnNcbiIKKyJ0aGF0IHNvbWUgZGV2aWNlIGZpbGVzIHdpbGwgYmUgd3JvbmcuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWMgfCAtbCBmaWxlbmFtZV0gWy1uWFhdIFstaVhYXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogJXMgWy1jIHwgLWwgZmFpbGluaW1pXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmltaSBbcGxva2tlXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBhIGZpbGVzeXN0ZW0gaGVyZSEiCittc2dzdHIgIiVzIG9uIG1vbnRlZXJpdHVkIC0gc2lpYSBmYWlsaXP8c3RlZW1pIGVpIHRlZSEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJib290LXBsb2traSBzZWVraW1pbmUgdGFiZWxpdGUga2lyanV0YW1pc2VsIGVpIPVubmVzdHVudWQiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MAorbXNnaWQgInVuYWJsZSB0byBjbGVhciBib290IHNlY3RvciIKK21zZ3N0ciAiZWkgc3V1ZGEgcHVoYXN0YWRhIGJvb3Qtc2VrdG9yaXQiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MgorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAic2VlayBlaSD1bm5lc3R1bnVkIHRhYmVsaXRlIGtpcmp1dGFtaXNlbCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk2Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiZWkgc3V1ZGEga2lyanV0YWRhIGkta2lyamV0ZSBrYWFydGkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiZWkgc3V1ZGEga2lyanV0YWRhIHRzb29uaWRlIGthYXJ0aSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjAwCittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiZWkgc3V1ZGEga2lyanV0YWRhIGkta2lyamVpZCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA5Cittc2dpZCAid3JpdGUgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJwbG9raSBraXJqdXRhbWluZSBlaSD1bm5lc3R1bnVkIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMTcgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjkxCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzozNDAKK21zZ2lkICJ0b28gbWFueSBiYWQgYmxvY2tzIgorbXNnc3RyICJsaWlnYSBwYWxqdSB2aWdhc2VpZCBwbG9ra2UiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgImxpaWdhIHbkaGUga29ycmFzIHBsb2trZSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQwCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiCittc2dzdHIgImVpIGrkdGt1IG3kbHUga2FhcnRpZGUgcHVodnJpdGVsZSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQ5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJlaSBq5HRrdSBt5Gx1IGkta2lyamV0ZSBwdWh2cmlsZSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJNYXhzaXplPSVsZFxuIgorIlxuIgorbXNnc3RyICIiCisiTWF4LiBzdXVydXM9JWxkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ2OQorbXNnaWQgInNlZWsgZmFpbGVkIGR1cmluZyB0ZXN0aW5nIG9mIGJsb2NrcyIKK21zZ3N0ciAic2VlayBlaSD1bm5lc3R1bnVkIHBsb2traWRlIHRlc3RpbWlzZWwiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJXZWlyZCB2YWx1ZXMgaW4gZG9fY2hlY2s6IHByb2JhYmx5IGJ1Z3NcbiIKK21zZ3N0ciAiSW1lbGlrdWQgduTkcnR1c2VkIGZ1bmt0c2lvb25pcyBkb19jaGVjayAtIGlsbXNlbHQgYnVnaWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTA4IGRpc2stdXRpbHMvbWtzd2FwLmM6MzE1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gY2hlY2tfYmxvY2tzIgorbXNnc3RyICJzZWVrIGVpIPVubmVzdHVudWQgcGxva2tpZGUga29udHJvbGxpbWlzZWwiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUxNworbXNnaWQgImJhZCBibG9ja3MgYmVmb3JlIGRhdGEtYXJlYTogY2Fubm90IG1ha2UgZnMiCittc2dzdHIgInZpZ2FzZWQgcGxva2lkIGVubmUgYW5kbWVwaWlya29uZGEgLSBlaSBzdXVkYSBmYWlsaXP8c3RlZW1pIHRla2l0YWRhIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWQgdmlnYXN0IHBsb2traVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAi/GtzIHZpZ2FuZSBwbG9ra1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzUKK21zZ2lkICJjYW4ndCBvcGVuIGZpbGUgb2YgYmFkIGJsb2NrcyIKK21zZ3N0ciAiZWkgc3V1ZGEgdmlnYXN0ZSBwbG9ra2lkZSBmYWlsaSBhdmFkYSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQwCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJFaSBzdXVkYSBrZXR0YWx0IGx1Z2VkYSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgInN0cnRvbCBlcnJvcjogbnVtYmVyIG9mIGJsb2NrcyBub3Qgc3BlY2lmaWVkIgorbXNnc3RyICJzdHJ0b2wgdmlnYTogcGxva2tpZGUgYXJ2dSBwb2xlIGFudHVkIgorCisjIFhYWCBzdGF0J2lkYQorIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBzdGF0ICVzIgorbXNnc3RyICJlaSBzdXVkYSBzdGF0J2lkYSBzZWFkZXQgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiZWkgc3V1ZGEgYXZhZGEgc2VhZGV0ICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2VjdG9yIHNpemUgZm9yICVzIgorbXNnc3RyICJlaSBzdXVkYSBraW5kbGFrcyB0ZWhhIHNlYWRtZSAlcyBtYWh0dSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrIHNpemUgc21hbGxlciB0aGFuIHBoeXNpY2FsIHNlY3RvciBzaXplIG9mICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzaXplIG9mICVzIgorbXNnc3RyICJlaSBzdXVkYSBraW5kbGFrcyB0ZWhhIHNlYWRtZSAlcyBtYWh0dSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIndpbGwgbm90IHRyeSB0byBtYWtlIGZpbGVzeXN0ZW0gb24gJyVzJyIKK21zZ3N0ciAiZWkg/HJpdGEgbHV1YSBmYWlsaXP8c3RlZW1pIHNlYWRtZWxlIGAlcyciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2NQorIywgZnV6enkKK21zZ2lkICJudW1iZXIgb2YgYmxvY2tzIHRvbyBzbWFsbCIKK21zZ3N0ciAiU2lzZXRhZ2Ugc2VrdG9yaXRlIGFydiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICJWaWdhbmUga2FzdXRhamEgcG9vbHQgbeTkcmF0dWQgbGVoZWv8bGplIHN1dXJ1cyAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiS2FzdXRhbiBldHRlYW50dWQgbGVoZWv8bGplIHN1dXJ1c3QgJWQsIG1pdHRlIHP8c3RlZW1zZWlkICVkLyVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBzd2FwIGhlYWRlciBzaXplLCBubyBsYWJlbCB3cml0dGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxhYmVsIHdhcyB0cnVuY2F0ZWQuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gbGFiZWwsICIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1dWlkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyODMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIkthc3V0YW1pbmU6ICVzIFstY10gWy12MHwtdjFdIFstcExLU1VVUlVTXSAvZGV2L25pbWkgW3Bsb2trZV1cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyOTcKK21zZ2lkICJ0b28gbWFueSBiYWQgcGFnZXMiCittc2dzdHIgImxpaWdhIHBhbGp1IHZpZ2FzZWlkIGxlaGVr/GxnaSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMTAgbWlzYy11dGlscy9sb29rLmM6MTgyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExNzkKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMTYgdGV4dC11dGlscy9tb3JlLmM6MjAyNworbXNnaWQgIk91dCBvZiBtZW1vcnkiCittc2dzdHIgIk3kbHUgc2FpIG90c2EiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICL8a3MgdmlnYW5lIGxlaGVr/GxnXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVkIHZpZ2FzdCBsZWhla/xsZ2VcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MDIgZGlzay11dGlscy9ta3N3YXAuYzo0MzkgZGlzay11dGlscy9ta3N3YXAuYzo2NTkKK21zZ2lkICJ1bmFibGUgdG8gcmV3aW5kIHN3YXAtZGV2aWNlIgorbXNnc3RyICJlaSBzdXVkYSB0YWdhc2kga2VyaWRhIHNhYWxpbWlzc2VhZGV0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgbmV3IGxpYmJsa2lkIHByb2JlIgorbXNnc3RyICJlaSBq5HRrdSBt5Gx1IGkta2lyamV0ZSBwdWh2cmlsZSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTUKK21zZ2lkICJ1bmFibGUgdG8gYXNzaWduIGRldmljZSB0byBsaWJsa2lkIHByb2JlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBlcmFzZSBib290Yml0cyBzZWN0b3JzIgorbXNnc3RyICJlaSBzdXVkYSBwdWhhc3RhZGEgYm9vdC1zZWt0b3JpdCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB3YXJuaW5nOiBkb24ndCBlcmFzZSBib290Yml0cyBzZWN0b3JzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKCVzIHBhcnRpdGlvbiB0YWJsZSBkZXRlY3RlZCkuICIKK21zZ3N0ciAiICAgcCAgIG7kaWRhdGEgQlNEIHBhcnRpdHNpb29uaXRhYmVsaXQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiICAgcyAgIG7kaWRhdGEgdORpZWxpa2t1IHBhcnRpdHNpb29uaXRhYmVsaXQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICBzICAgbuRpZGF0YSB05GllbGlra3UgcGFydGl0c2lvb25pdGFiZWxpdCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTEkczogd2FybmluZzogaWdub3JlIC1VIChVVUlEcyBhcmUgdW5zdXBwb3J0ZWQgYnkgJTEkcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IHN1cHBvcnQgc3dhcHNwYWNlIHZlcnNpb24gJWQuXG4iCittc2dzdHIgIiVzOiBWaWdhIC0gdHVuZG1hdHUgdmVyc2lvb24gJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgIlZpZ2EgJXMgc3VsZ2VtaXNlbFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IE5vd2hlcmUgdG8gc2V0IHVwIHN3YXAgb24/XG4iCittc2dzdHIgIiVzOiBWaWdhIC0gZWkgb2xlIPZlbGR1ZCwga3VodSBzYWFsaW1pc2FsYSB0ZWtpdGFkYVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBWaWdhIC0gc3V1cnVzICVsZCBvbiBzdXVyZW0ga3VpIHNlYWRtZSBtYWh0ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHN3YXAgYXJlYSBuZWVkcyB0byBiZSBhdCBsZWFzdCAlbGQgS2lCXG4iCittc2dzdHIgIiVzOiBWaWdhIC0gc2FhbGltaXNhbGEgcGVhYiBvbGVtYSB25GhlbWFsdCAlbGRrQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBIb2lhdHVzIC0gcGlpcmFuIHNhYWxpbWlzYWxhICVsZCBrQi1nYVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiB3aWxsIG5vdCB0cnkgdG8gbWFrZSBzd2FwZGV2aWNlIG9uICclcydcbiIKK21zZ3N0ciAiZWkg/HJpdGEgbHV1YSBzYWFsaW1pc2FsYSBzZWFkbWVsZSBgJXMnIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYzMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiAlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIHN3YXBzcGFjZS5cbiIKK21zZ3N0ciAiJXMgb24gbW9udGVlcml0dWQgLSBzaWlhIGZhaWxpc/xzdGVlbWkgZWkgdGVlISIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NDgKK21zZ2lkICJVbmFibGUgdG8gc2V0IHVwIHN3YXAtc3BhY2U6IHVucmVhZGFibGUiCittc2dzdHIgIkVpIHN1dWRhIHNhYWxpbWlzYWxhIHRla2l0YWRhOiBzZWFkZSBwb2xlIGxvZXRhdiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIlRla2l0YW4gc2FhbGltaXNhbGEgdmVyc2lvb25pZ2EgJWQsIHN1dXJ1cyA9ICVsdSBLaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiZWkgc3V1ZGEga2lyanV0YWRhIHNpZ25hdHV1cmlnYSBsZWhla/xsZ2UiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICJmc3luYyBlaSD1bm5lc3R1bnVkIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIiCisKKyMgWFhYIHN0YXQnaWRhCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MAorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgImVpIHN1dWRhIHN0YXQnaWRhIHNlYWRldCAlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBuZXcgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJlaSBzdXVkYSBraXJqdXRhZGEgaS1raXJqZWlkIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5NQorbXNnaWQgImNvdWxkbid0IGNvbXB1dGUgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NzAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIHJlbGFiZWwgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgIiVzOiAlcyD8bWJlciBuaW1ldGFtaW5lICVzIC1rcyBlaSD1bm5lc3RudWQ6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgICVzICIKK21zZ3N0ciAia2FzdXRhbWluZTpcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICIlcyBwb2xlIGZsb3Bpc2VhZGVcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICJIb2lhdHVzOiAlcyBwb2xlIHBsb2trc2VhZGVcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIG1hc3RlciByYXcgZGV2aWNlICciCittc2dzdHIgInN0YXQoJXMpIGVpIPVubmVzdHVudWQiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgInN0YXQoJXMpIGVpIPVubmVzdHVudWQiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIvZGV2LyVzIHBvbGUgc/xtYm9sc2VhZGUiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSByYXcgZGV2XG4iCittc2dzdHIgIiVzIHBvbGUgcGxva2tzZWFkZSIKKworIzogZGlzay11dGlscy9yYXcuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcXVlcnlpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNDEgZGlzay11dGlscy9yYXcuYzoyNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmF3JWQ6XHRib3VuZCB0byBtYWpvciAlZCwgbWlub3IgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igc2V0dGluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAidmlnYSB0ZWVudXNlIHBlYXRhbWlzZWw6ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzozNzggZmRpc2svY2ZkaXNrLmM6MjA4MworbXNnaWQgIlVudXNhYmxlIgorbXNnc3RyICJLYXN1dGFtYXR1IgorCisjOiBmZGlzay9jZmRpc2suYzozODAgZmRpc2svY2ZkaXNrLmM6MjA4NQorbXNnaWQgIkZyZWUgU3BhY2UiCittc2dzdHIgIlZhYmEgcnV1bSIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgzCittc2dpZCAiTGludXggZXh0MiIKK21zZ3N0ciAiTGludXggZXh0MiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg1Cittc2dpZCAiTGludXggZXh0MyIKK21zZ3N0ciAiTGludXggZXh0MyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg3Cittc2dpZCAiTGludXggWEZTIgorbXNnc3RyICJMaW51eCBYRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4OQorIywgZnV6enkKK21zZ2lkICJMaW51eCBKRlMiCittc2dzdHIgIkxpbnV4IFhGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkxCittc2dpZCAiTGludXggUmVpc2VyRlMiCittc2dzdHIgIkxpbnV4IFJlaXNlckZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NworbXNnaWQgIkxpbnV4IgorbXNnc3RyICJMaW51eCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk2Cittc2dpZCAiT1MvMiBIUEZTIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5OAorbXNnaWQgIk9TLzIgSUZTIgorbXNnc3RyICJPUy8yIElGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDAyCittc2dpZCAiTlRGUyIKK21zZ3N0ciAiTlRGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaGFzIGJlZW4gY2hhbmdlZC5cbiIKK21zZ3N0ciAiS2V0YXN0IHNhaSBtdXVkZXR1ZFxuIgorCisjOiBmZGlzay9jZmRpc2suYzo0MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVib290IHRoZSBzeXN0ZW0gdG8gZW5zdXJlIHRoZSBwYXJ0aXRpb24gdGFibGUgaXMgY29ycmVjdGx5IHVwZGF0ZWQuXG4iCittc2dzdHIgIlRlaGtlIGFsZ2vkaXZpdHVzLCBldCB1dWVuZHVzZWQgbfVqdW1hIGhha2tha3NpZFxuIgorCisjOiBmZGlzay9jZmRpc2suYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55XG4iCisiRE9TIDYueCBwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBjZmRpc2sgbWFudWFsXG4iCisicGFnZSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkhPSUFUVVM6IEt1aSBUZSB0ZWtpdGFzaXRlIHb1aSBtdXV0c2l0ZSBET1MgNi54XG4iCisicGFydGl0c2lvb25lLCBsdWdlZ2UgcGFsdW4gY2ZkaXNrJ2kgbWFudWFsaVxuIgorImxpc2FpbmZvcm1hdHNpb29uaSBoYW5raW1pc2Vrcy5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIkZBVEFBTE5FIFZJR0EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNworbXNnaWQgIlByZXNzIGFueSBrZXkgdG8gZXhpdCBjZmRpc2siCittc2dzdHIgIlZhanV0YSBt9W5kYSBrbGFodmkgY2ZkaXNraXN0IHbkbGp1bWlzZWtzIgorCisjOiBmZGlzay9jZmRpc2suYzo1NjQgZmRpc2svY2ZkaXNrLmM6NTcyCittc2dpZCAiQ2Fubm90IHNlZWsgb24gZGlzayBkcml2ZSIKK21zZ3N0ciAiRWkgc3V1ZGEga2V0dGFsIHNlZWtpZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIkVpIHN1dWRhIGtldHRhbHQgbHVnZWRhIgorCisjOiBmZGlzay9jZmRpc2suYzo1NzQKK21zZ2lkICJDYW5ub3Qgd3JpdGUgZGlzayBkcml2ZSIKK21zZ3N0ciAiRWkgc3V1ZGEga2V0dGFsZSBraXJqdXRhZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkxNworbXNnaWQgIlRvbyBtYW55IHBhcnRpdGlvbnMiCittc2dzdHIgIkxpaWdhIHBhbGp1IHBhcnRpdHNpb29uZSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTIyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIlBhcnRpdHNpb29uIGFsZ2FiIGVubmUgc2VrdG9yaXQgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTI3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJQYXJ0aXRzaW9vbiBs9XBwZWIgZW5uZSBzZWt0b3JpdCAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJQYXJ0aXRzaW9vbiBhbGdhYiBw5HJhc3Qga2V0dGEgbPVwcHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJQYXJ0aXRzaW9vbiBs9XBwZWIgcORyYXN0IGtldHRhIGz1cHB1IgorCisjOiBmZGlzay9jZmRpc2suYzo5NDIKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBpbiB0aGUgZmluYWwgcGFydGlhbCBjeWxpbmRlciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgIkxvb2dpbGlzZWQgcGFydGl0c2lvb25pZCBvbiBm/PxzaWxpc2VzdCBlcmluZXZhcyBq5HJqZXN0dXNlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgIkxvb2dpbGlzZWQgcGFydGl0c2lvb25pZCBrYXR0dXZhZCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTczCittc2dpZCAiZW5sYXJnZWQgbG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgIlN1dXJlbmRhdHVkIGxvb2dpbGlzZWQgcGFydGl0c2lvb25pZCBrYXR0dXZhZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAwMworbXNnaWQgIiIKKyIhISEhIEludGVybmFsIGVycm9yIGNyZWF0aW5nIGxvZ2ljYWwgZHJpdmUgd2l0aCBubyBleHRlbmRlZCBwYXJ0aXRpb24gISEhISIKK21zZ3N0ciAiIgorIlNpc2VtaW5lIHZpZ2E6IGxvb2dpbGlzZSBwYXJ0aXRzaW9vbmkgbG9vbWlzZWwgcHV1ZHViIGV4dGVuZGVkLXBhcnRpdHNpb29uIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDE0IGZkaXNrL2NmZGlzay5jOjEwMjYKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisiU2lpYSBlaSBzYWEgbG9vZ2lsaXN0IHBhcnRpdHNpb29uaSBsdXVhIC0gc2VlIHRla2l0YWtzZSB0ZWlzZSBleHRlbmRlZCdpIgorCisjOiBmZGlzay9jZmRpc2suYzoxMTY4Cittc2dpZCAiTWVudSBpdGVtIHRvbyBsb25nLiBNZW51IG1heSBsb29rIG9kZC4iCittc2dzdHIgIk1lbvz8a2lyamUgb24gbGlpZ2EgcGlray4gTWVu/PwgdvVpYiBuYWxqYWthcyB25GxqYSBu5GhhLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTIyNAorIywgZnV6enkKK21zZ2lkICJNZW51IHdpdGhvdXQgZGlyZWN0aW9uLiBEZWZhdWx0aW5nIHRvIGhvcml6b250YWwuIgorbXNnc3RyICJNZW78/CBpbG1hIHN1dW5hdGEsIGVlbGRhbiBob3Jpc29udGFhbHNldCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM1NgorbXNnaWQgIklsbGVnYWwga2V5IgorbXNnc3RyICJWYWxlIGtsYWh2IgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIlZhanV0YSBt9W5kYSBrbGFodmkgauR0a2FtaXNla3MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiUHJpbWFhcm5lIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2Cittc2dpZCAiQ3JlYXRlIGEgbmV3IHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJMb28gdXVzIHByaW1hYXJuZSBwYXJ0aXRzaW9vbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNyBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODUKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJMb2dpY2FsIgorbXNnc3RyICJMb29naWxpbmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIkxvbyB1dXMgbG9vZ2lsaW5lIHBhcnRpdHNpb29uIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMgZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkNhbmNlbCIKK21zZ3N0ciAiVPxoaXN0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICLEcmEgbG9vIHBhcnRpdHNpb29uaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NAorbXNnaWQgIiEhISBJbnRlcm5hbCBlcnJvciAhISEiCittc2dzdHIgIiEhISBTaXNlbWluZSB2aWdhICEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NworbXNnaWQgIlNpemUgKGluIE1CKTogIgorbXNnc3RyICJTdXVydXMgKE1CKTogIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQmVnaW5uaW5nIgorbXNnc3RyICJCZWdpbm5pbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJMaXNhZGEgcGFydGl0c2lvb24gdmFiYSBydXVtaSBhbGd1c3NlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiRW5kIgorbXNnc3RyICJFbmQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJMaXNhZGEgcGFydGl0c2lvb24gdmFiYSBydXVtaSBs9XBwdSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTUwMAorbXNnaWQgIk5vIHJvb20gdG8gY3JlYXRlIHRoZSBleHRlbmRlZCBwYXJ0aXRpb24iCittc2dzdHIgIlBvbGUgcnV1bWkgZXh0ZW5kZWQtcGFydGl0c2lvb25pIHRlZ2VtaXNla3MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKKyMsIGZ1enp5Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbml0YWJlbGl0IGVpIG9sZVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc4CisjLCBmdXp6eQorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiUHV1ZHV2IHBhcnRpdHNpb29uaXRhYmVsIHb1aSB2YWxlIHNpZ25hdHV1ciBwYXJ0aXRzaW9vbml0YWJlbGlzIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4CisjLCBmdXp6eQorbXNnaWQgIkJhZCBzaWduYXR1cmUgb24gcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJUcvxra2lkYSBsaWh0c2FsdCB0YWJlbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorIywgZnV6enkKK21zZ2lkICJVbmtub3duIHBhcnRpdGlvbiB0YWJsZSB0eXBlIgorbXNnc3RyICJQYXJ0aXRzaW9vbml0YWJlbGl0IGVpIG9sZVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAiS2FzIHNvb3ZpdGUgYWx1c3RhZGEgdPxoamEgdGFiZWxpZ2EgW3kvTl0gPyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAiVGUgYW5kaXN0ZSBzdXVyZW1hIHNpbGluZHJpdGUgYXJ2dSBrdWkga2V0dGFsZSBtYWh1YiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NAorbXNnaWQgIkNhbm5vdCBvcGVuIGRpc2sgZHJpdmUiCittc2dzdHIgIkVpIHN1dWRhIGF2YWRhIGtldHRhc2VhZGV0IgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc2IGZkaXNrL2NmZGlzay5jOjE4NjUKK21zZ2lkICJPcGVuZWQgZGlzayByZWFkLW9ubHkgLSB5b3UgaGF2ZSBubyBwZXJtaXNzaW9uIHRvIHdyaXRlIgorbXNnc3RyICJBdmFzaW4ga2V0dGEgYWludWx0IGx1Z2VtaXNla3MgLSBraXJqdXRhbWlzZWtzIHBvbGUg9WlndXN0IgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIkVpIHN1dWRhIGtpbmRsYWtzIHRlaGEga2V0dGEgbWFodHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MzIKK21zZ2lkICJCYWQgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIlZpZ2FuZSBwcmltYWFybmUgcGFydGl0c2lvb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3NjIKK21zZ2lkICJCYWQgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIlZpZ2FuZSBsb29naWxpbmUgcGFydGl0c2lvb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4NzcKK21zZ2lkICJXYXJuaW5nISEgIFRoaXMgbWF5IGRlc3Ryb3kgZGF0YSBvbiB5b3VyIGRpc2shIgorbXNnc3RyICJIb2lhdHVzISEgIFNlZSB29WliIFRlaWUga2V0dGFsIGFuZG1laWQgaOR2aXRhZGEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxODgxCisjLCBmdXp6eQorbXNnaWQgIiIKKyJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrPyAoeWVzIG9yIG5vKTogIgorbXNnc3RyICJPbGV0ZSBraW5kZWwsIGV0IHNvb3ZpdGUgc2FsdmVzdGFkYSBwYXJ0aXRzaW9vbml0YWJlbGl0PyAoamFoIHb1aSBlaSk6IgorCisjOiBmZGlzay9jZmRpc2suYzoxODg3Cittc2dpZCAibm8iCittc2dzdHIgImVpIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg5Cittc2dpZCAiRGlkIG5vdCB3cml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiRWkga2lyanV0YW51ZCBwYXJ0aXRzaW9vbml0YWJlbGl0IGtldHRhbGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTEKK21zZ2lkICJ5ZXMiCittc2dzdHIgImphaCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5NQorbXNnaWQgIlBsZWFzZSBlbnRlciBgeWVzJyBvciBgbm8nIgorbXNnc3RyICJQYWx1biBzaXNlc3RhZ2UgYGphaCcgdvVpIGBlaSciCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTkKK21zZ2lkICJXcml0aW5nIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrLi4uIgorbXNnc3RyICJLaXJqdXRhbiBwYXJ0aXRzaW9vbml0YWJlbGl0IGtldHRhbGUuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJLaXJqdXRhc2luIHBhcnRpdHNpb29uaXRhYmVsaSBrZXR0YWxlIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI2CisjLCBmdXp6eQorbXNnaWQgIiIKKyJXcm90ZSBwYXJ0aXRpb24gdGFibGUsIGJ1dCByZS1yZWFkIHRhYmxlIGZhaWxlZC4gIFJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCIKKyIoOCkgb3IgcmVib290IHRvIHVwZGF0ZSB0YWJsZS4iCittc2dzdHIgIiIKKyJLaXJqdXRhc2luIHBhcnRpdHNpb29uaXRhYmVsaSwgYWdhIHRhZ2FzaSBsdWdlbWluZSBlYmH1bm5lc3R1cy4gUmVib290IGFiaWtzLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzNgorbXNnaWQgIk5vIHByaW1hcnkgcGFydGl0aW9ucyBhcmUgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisi3Gtza2kgcHJpbWFhcm5lIHBhcnRpdHNpb29uIHBvbGUgbeRyZ2l0dWQgYnV1dGl2YWtzLiBET1NpIE1CUiBlaSBzdXVkYSBzaWl0ICIKKyJidXV0aWRhLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzOAorbXNnaWQgIiIKKyJNb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIlJvaGtlbSBrdWkg/GtzIHByaW1hYXJuZSBwYXJ0aXRzaW9vbiBvbiBt5HJnaXR1ZCBidXV0aXZha3MuIERPU2kgTUJSIGVpICIKKyJzdXVkYSBzaWl0IGJ1dXRpZGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICJTaXNldGEgZmFpbGluaW1pIHb1aSB2YWp1dGEgUkVUVVJOIGVrcmFhbmlsIG7kaXRhbWlzZWtzOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMDUgZmRpc2svY2ZkaXNrLmM6MjEyMyBmZGlzay9jZmRpc2suYzoyMjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIGZpbGUgJyVzJyIKK21zZ3N0ciAiRWkgc3V1ZGEgYXZhZGEgZmFpbGkgYCVzJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlc1xuIgorbXNnc3RyICJLZXR0YXNlYWRlOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNla3RvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2VrdG9yICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgVmFiYSAgICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NworbXNnaWQgIiAgIFByaS9Mb2ciCittc2dzdHIgIiAgIFByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgUHJpbWFhcm5lIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiIExvb2dpbGluZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA4OSBmZGlzay9mZGlzay5jOjE3NjcgZmRpc2svZmRpc2suYzoyMTA2CisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjI3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MTYgZmRpc2svc2ZkaXNrLmM6NjM4Cittc2dpZCAiVW5rbm93biIKK21zZ3N0ciAiVHVuZG1hdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTUgZmRpc2svY2ZkaXNrLmM6MjU2MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkKK21zZ2lkICJCb290IgorbXNnc3RyICJCdXV0aXYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiVHVuZG1hdHUgKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk5CisjLCBmdXp6eQorbXNnaWQgIk5vbmUiCittc2dzdHIgInZhbG1pcyAoRCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIlBhcnRpdHNpb29uaXRhYmVsIGtldHRhbCAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM2CisjLCBmdXp6eQorbXNnaWQgIiAgICAgICAgICAgICAgIEZpcnN0ICAgICAgIExhc3RcbiIKK21zZ3N0ciAiICAgICAgICAgICAgRXNpbWVuZSAgVmlpbWFuZVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM3CisjLCBmdXp6eQorbXNnaWQgIiIKKyIgIyBUeXBlICAgICAgIFNlY3RvciAgICAgIFNlY3RvciAgIE9mZnNldCAgICBMZW5ndGggICBGaWxlc3lzdGVtIFR5cGUgKElEKSAiCisiRmxhZ1xuIgorbXNnc3RyICIiCisiICMgVPz8cCAgICAgU2VrdG9yICAgU2VrdG9yICAgT2Zmc2V0ICBQaWtrdXMgICBGYWlsaXP8c3QuIHT8/HAgKElEKSAgIExpcHVkXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKKyMsIGZ1enp5Cittc2dpZCAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCittc2dzdHIgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIxCisjLCBmdXp6eQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiAgICAgICAgIC0tLS1BbGd1cy0tLS0tICAgICAgLS0tLS1M9XBwLS0tLS0gIEVzaW1lbmUgU2VrdG9yaXRlXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjIKKyMsIGZ1enp5Cittc2dpZCAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCittc2dzdHIgIiAjIExpcHVkIFBlYSAgU2VrdCBTaWwgICBJRCAgUGVhICBTZWt0IFNpbCAgICBzZWt0b3IgICAgYXJ2XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjMKKyMsIGZ1enp5Cittc2dpZCAiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCittc2dzdHIgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0tLS0gLS0tLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJSYXciCittc2dzdHIgInRvb1JlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgIlRy/GtraWRhIHRhYmVsIHRvb3JlcyBmb3JtYWFkaXMgKGJhaXRoYWF2YWwpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJTZWN0b3JzIgorbXNnc3RyICJTZWt0b3JpZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIlRy/GtraWRhIHRhYmVsIGrkcmplc3RhdHVuYSBzZWt0b3JpdGUgauRyZ2kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAiVGFiZWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlRy/GtraWRhIGxpaHRzYWx0IHRhYmVsIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICJFaSB0cvxraSBtaWRhZ2kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODcKK21zZ2lkICJIZWxwIFNjcmVlbiBmb3IgY2ZkaXNrIgorbXNnc3RyICJjZmRpc2tpIGFiaWluZm8gZWtyYWFuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg5Cittc2dpZCAiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIgorbXNnc3RyICJTZWUgb24gY2ZkaXNrLCBjdXJzZXMnaWwgYmFzZWVydXYga2V0dGEgcGFydGl0c2lvbmVlcmltaXNlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkwCittc2dpZCAiYWxsb3dzIHlvdSB0byBjcmVhdGUsIGRlbGV0ZSBhbmQgbW9kaWZ5IHBhcnRpdGlvbnMgb24geW91ciBoYXJkIgorbXNnc3RyICJwcm9ncmFtbSwgbWlzIGx1YmFiIGx1dWEsIGt1c3R1dGFkYSBqYSBtdXV0YSBwYXJ0aXRzaW9vbmUgVGVpZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MQorbXNnaWQgImRpc2sgZHJpdmUuIgorbXNnc3RyICJhcnZ1dGkga/V2YWtldHRhbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJL5HNrICAgICAgICBU5GhlbmR1cyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICItLS0tLS0tICAgICAgLS0tLS0tLSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgYiAgICAgICAgICBUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgYiAgICAgICAgICBWYWhldGFkYSBidXVkaXRhdnVzZSBsaXBwdSBqb29rc3ZhbCBwYXJ0aXRzaW9vbmlsIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk4Cittc2dpZCAiICBkICAgICAgICAgIERlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgZCAgICAgICAgICBLdXN0dXRhZGEgam9va3NldiBwYXJ0aXRzaW9vbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgZyAgICAgICAgICBDaGFuZ2UgY3lsaW5kZXJzLCBoZWFkcywgc2VjdG9ycy1wZXItdHJhY2sgcGFyYW1ldGVycyIKK21zZ3N0ciAiICBnICAgICAgICAgIE11dXRhIHNpbGluZHJpdGUsIHBlYWRlIGphIHJhamFsIG9sZXZhdGUgc2VrdG9yaXRlIGFydnUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgICAgICAgICAgV0FSTklORzogVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBwZW9wbGUgd2hvIgorbXNnc3RyICIgICAgICAgICAgICAgSE9JQVRVUzogU2VlIGvkc2sgb24gYWludWx0IG5laWxlLCBrZXMgdGVhdmFkLCBtaWRhICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICAgbmFkIHRlZXZhZC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICBO5GlkYXRhIHNlZGFzYW1hIGVrcmFhbmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgbSAgICAgICAgICBNYWtzaW1pc2VlcmlkYSBqb29rc3ZhIHBhcnRpdHNpb29uaSBrZXR0YWthc3V0dXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgICAgICAgICAgTm90ZTogVGhpcyBtYXkgbWFrZSB0aGUgcGFydGl0aW9uIGluY29tcGF0aWJsZSB3aXRoIgorbXNnc3RyICIgICAgICAgICAgICAgTeRya3VzOiBzZWUgdvVpYiB0ZWhhIGtldHRhIG1pdHRl/GhpbGR1dmFrcyBET1NpLCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAgICAgICAgICBET1MsIE9TLzIsIC4uLiIKK21zZ3N0ciAiICAgICAgICAgICAgIE9TLzIgamEgbXV1ZGUgb3BlcmF0c2lvb25pc/x0ZWVtaWRlZ2EuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA2Cittc2dpZCAiICBuICAgICAgICAgIENyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiICBuICAgICAgICAgIEx1dWEgdXVzIHBhcnRpdHNpb29uIHZhYmEgcnV1bWkgc2lzc2UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIgIHAgICAgICAgICAgVuRsamFzdGFkYSBwYXJ0aXRzaW9vbml0YWJlbCBla3JhYW5pbGUgdvVpIGZhaWxpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICAgVuRsamFzdGFtaXNlbCB29Wl0ZSB2YWxpZGEgbWl0bWUgZm9ybWFhZGkgdmFoZWw6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA5Cittc2dpZCAiICAgICAgICAgICAgIHRoYXQgeW91IGNhbiBjaG9vc2UgZnJvbToiCittc2dzdHIgIiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgICAgICAgICAgICAgciAtIFJhdyBkYXRhIChleGFjdGx5IHdoYXQgd291bGQgYmUgd3JpdHRlbiB0byBkaXNrKSIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHIgLSB0b29SZXMgLSBzZWUgYmFpZGlqYWRhLCBtaXMga2V0dGFsZSBraXJqdXRhdGFrcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAgICAgICAgICAgICBzIC0gVGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICIgICAgICAgICAgICAgICAgcyAtIFNla3Rvcml0ZSBq5HJnaSBq5HJqZXN0YXR1ZCB0YWJlbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMgorbXNnaWQgIiAgICAgICAgICAgICAgICB0IC0gVGFibGUgaW4gcmF3IGZvcm1hdCIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHQgLSBUYWJlbCB0ZWtzdGkga3VqdWwgKHVtYmVzIG5hZ3UgcGVhZWtyYWFuaWwpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAgVuRsanVkYSBwcm9ncmFtbWlzdCBpbGFtIG11dXR1c2kgc2FsdmVzdGFtYXRhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIgIHQgICAgICAgICAgTXV1dGEgam9va3N2YSBwYXJ0aXRzaW9vbmkgZmFpbGlz/HN0ZWVtaSB0/PxwaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNQorbXNnaWQgIiAgdSAgICAgICAgICBDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkiCittc2dzdHIgIiAgdSAgICAgICAgICBNdXV0YSBwYXJ0aXRzaW9vbmlkZSBzdXVydXNlIGphIGFzdWtvaGEg/Ghpa3VpZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNgorbXNnaWQgIiAgICAgICAgICAgICBSb3RhdGVzIHRocm91Z2ggTUIsIHNlY3RvcnMgYW5kIGN5bGluZGVycyIKK21zZ3N0ciAiICAgICAgICAgICAgIFZhcmlhbmRpZCBvbiBNQiwgc2VrdG9yaWQgamEgc2lsaW5kcmlkIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE3Cittc2dpZCAiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiCittc2dzdHIgIiAgVyAgICAgICAgICBLaXJqdXRhZGEgcGFydGl0c2lvb25pdGFiZWwga2V0dGFsZSAoamFoLCBzdXVydORodCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIgICAgICAgICAgICAgS3VuYSBzZWUgdvVpYiBrZXR0YWx0IGFuZG1laWQgaOR2aXRhZGEsIGv8c2l0YWtzZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICAgICAgICAgICBlaXRoZXIgY29uZmlybSBvciBkZW55IHRoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciIKK21zZ3N0ciAiICAgICAgICAgICAgIGVubmUga2lyanV0YW1pc3Qga2lubml0dXN0LiBWYXN0YXRhIHR1bGViIGVlc3Rpa2VlbHNlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIwCittc2dpZCAiICAgICAgICAgICAgIGBubyciCittc2dzdHIgIiAgICAgICAgICAgICB05Glzc/VuYWdhIChgamFoJyB29WkgYGVpJykuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIxCittc2dpZCAiVXAgQXJyb3cgICAgIE1vdmUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBwYXJ0aXRpb24iCittc2dzdHIgIk5vb2wg/GxlcyAgICBWaWlhIGt1cnNvciBlZWxtaXNlbGUgcmVhbGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjIKK21zZ2lkICJEb3duIEFycm93ICAgTW92ZSBjdXJzb3IgdG8gdGhlIG5leHQgcGFydGl0aW9uIgorbXNnc3RyICJOb29sIGFsbGEgICAgVmlpYSBrdXJzb3IgauRyZ21pc2VsZSByZWFsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMworbXNnaWQgIkNUUkwtTCAgICAgICBSZWRyYXdzIHRoZSBzY3JlZW4iCittc2dzdHIgIkNUUkwtTCAgICAgICBKb29uaXN0YWRhIGVrcmFhbiD8bGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjQKK21zZ2lkICIgID8gICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgPyAgICAgICAgICBO5GlkYXRhIHNlZGFzYW1hIGVrcmFhbmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICJN5HJrdXM6IGv1aWtpIG5laWQga+Rza2Ugc2FhYiBzaXNlc3RhZGEgbmlpIHN1dXItIGt1aSB25GlrZXTkaHRlZGVuYSwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgInbkbGphIGFydmF0dWQgc3V1ciBXLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMyCittc2dpZCAiQ3lsaW5kZXJzIgorbXNnc3RyICJzaWxpbmRyaWQgKEMpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICJNdXV0YSBzaWxpbmRyaXRlIGFydnUgZ2VvbWVldHJpYXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMAorbXNnaWQgIkhlYWRzIgorbXNnc3RyICJwZWFkIChIKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJNdXV0YSBwZWFkZSBhcnZ1IGdlb21lZXRyaWFzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAiTXV1dGEgc2VrdG9yaXRlIGFydnUgZ2VvbWVldHJpYXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICJ2YWxtaXMgKEQpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICJNdXV0dXNlZCBnZW9tZWV0cmlhcyBvbiB0ZWh0dWQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNzQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGN5bGluZGVyczogIgorbXNnc3RyICJTaXNlc3RhZ2Ugc2lsaW5kcml0ZSBhcnY6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIlZpZ2FuZSBzaWxpbmRyaXRlIGFydiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAiU2lzZXRhZ2UgcGVhZGUgYXJ2OiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTggZmRpc2svY2ZkaXNrLmM6Mjk2OAorbXNnaWQgIklsbGVnYWwgaGVhZHMgdmFsdWUiCittc2dzdHIgIlZpZ2FuZSBwZWFkZSBhcnYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MDQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrOiAiCittc2dzdHIgIlNpc2VzdGFnZSBzZWt0b3JpdGUgYXJ2IHJhamFsOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MTEgZmRpc2svY2ZkaXNrLmM6Mjk3NQorbXNnaWQgIklsbGVnYWwgc2VjdG9ycyB2YWx1ZSIKK21zZ3N0ciAiVmlnYW5lIHNla3Rvcml0ZSBhcnYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MTQKK21zZ2lkICJFbnRlciBmaWxlc3lzdGVtIHR5cGU6ICIKK21zZ3N0ciAiU2lzZXN0YWdlIGZhaWxpc/xzdGVlbWkgdPz8YmkgbnVtYmVyOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzIKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZW1wdHkiCittc2dzdHIgIkZhaWxpc/xzdGVlbWkgdPz8cGkgZWkgc2FhIG11dXRhIHT8aGpha3MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZXh0ZW5kZWQiCittc2dzdHIgIkZhaWxpc/xzdGVlbWkgdPz8cGkgZWkgc2FhIG11dXRhIGV4dGVuZGVkJ2lrcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIlR1bmRtYXR1ICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiLCBOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIk5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAiUHJpL0xvZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAiVHVuZG1hdHUgKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzIgorbXNnc3RyICJLZXR0YXNlYWRlOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZCBNQiIKK21zZ3N0ciAiTWFodDogJWxsZCBiYWl0aSwgJWxkIE1CIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjczCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgIk1haHQ6ICVsbGQgYmFpdGksICVsZC4lbGQgR0IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAiUORpZDogJWQgICAgU2VrdG9yZWlkIHJhamFsOiAlZCAgICBTaWxpbmRyZWlkOiAlZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MSBsb2dpbi11dGlscy9jaGZuLmM6Mzc3Cittc2dpZCAiTmFtZSIKK21zZ3N0ciAiTmltaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MgorbXNnaWQgIkZsYWdzIgorbXNnc3RyICJMaXB1ZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MworbXNnaWQgIlBhcnQgVHlwZSIKK21zZ3N0ciAiVPz8cCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIkZTIHT8/HAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODUKK21zZ2lkICJbTGFiZWxdIgorbXNnc3RyICJbTGFiZWxdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3CisjLCBmdXp6eQorbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICJTZWt0b3JlaWQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKKyMsIGZ1enp5Cittc2dpZCAiICBDeWxpbmRlcnMiCittc2dzdHIgInNpbGluZHJpZCAoQykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTEKKyMsIGZ1enp5Cittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIk1haHQgKE1CKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MworIywgZnV6enkKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiTWFodCAoR0IpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIkJ1dXRpdiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIlRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiVmFoZXRhZGEgYnV1ZGl0YXZ1c2UgbGlwcHUgam9va3N2YWwgcGFydGl0c2lvb25pbCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSIKK21zZ3N0ciAia3VzdHV0YURhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiS3VzdHV0YWRhIGpvb2tzZXYgcGFydGl0c2lvb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJHZW9tZXRyeSIKK21zZ3N0ciAiR2VvbWVldHJpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkNoYW5nZSBkaXNrIGdlb21ldHJ5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICJNdXV0YSBrZXR0YSBnZW9tZWV0cmlhdCAoYWludWx0IGVrc3BlcnRpZGVsZSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJIZWxwIgorbXNnc3RyICJIZWxwIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiUHJpbnQgaGVscCBzY3JlZW4iCittc2dzdHIgIk7kaWRhdGEgYWJpaW5mb3QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSIKK21zZ3N0ciAiTWFrc2ltaXNlZXJpZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiTWFrc2ltaXNlZXJpZGEgam9va3N2YSBwYXJ0aXRzaW9vbmkga2V0dGFrYXN1dHVzIChhaW51bHQgZWtzcGVydGlkZWxlKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAidXVzIChOKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIkNyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiTHV1YSB1dXMgcGFydGl0c2lvb24gdmFiYSBydXVtaSBzaXNzZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IgorbXNnc3RyICJQcmluZGkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIlbkbGphc3RhZGEgcGFydGl0c2lvb25pdGFiZWwgZWtyYWFuaWxlIHb1aSBmYWlsaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIlbkbGphIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlbkbGp1ZGEgcHJvZ3JhbW1pc3QgaWxhbSBtdXV0dXNpIHNhbHZlc3RhbWF0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIlR5cGUiCittc2dzdHIgIlT8/HAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSAoRE9TLCBMaW51eCwgT1MvMiBhbmQgc28gb24pIgorbXNnc3RyICJNdXV0YSBmYWlsaXP8c3RlZW1pIHT8/HBpIChET1MsIExpbnV4LCBPUy8yIGpuZSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAiVWhpa3VkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAiIgorIk11dXRhIHBhcnRpdHNpb29uaWRlIHN1dXJ1c2UgbuRpdGFtaXNlIPxoaWt1aWQgKE1CLCBzZWt0b3JpZCwgc2lsaW5kcmlkKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJzYWx2ZXN0YSAoVykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIgorbXNnc3RyICJLaXJqdXRhZGEgcGFydGl0c2lvb25pdGFiZWwga2V0dGFsZSAodvVpYiBo5HZpdGFkYSBhbmRtZWQpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODA1Cittc2dpZCAiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiCittc2dzdHIgIlNlZGEgcGFydGl0c2lvb25pIGVpIHNhYSBidXV0aXZha3MgdGVoYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgxNQorbXNnaWQgIkNhbm5vdCBkZWxldGUgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJU/GhqYSBwYXJ0aXRzaW9vbmkgZWkgc2FhIGt1c3R1dGFkYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICJTZWRhIHBhcnRpdHNpb29uaSBlaSBzYWEgbWFrc2ltaXNlZXJpZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDUKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIKK21zZ3N0ciAiU2VlIHBhcnRpdHNpb29uIHBvbGUga2FzdXRhdGF2IgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ3Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgYWxyZWFkeSBpbiB1c2UiCittc2dzdHIgIlNlZSBwYXJ0aXRzaW9vbiBvbiBqdWJhIG9sZW1hcyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJU/GhqYSBwYXJ0aXRzaW9vbmkgdPz8cGkgZWkgc2FhIG11dXRhIgorCisjOiBmZGlzay9jZmRpc2suYzoyODkxIGZkaXNrL2NmZGlzay5jOjI4OTcKK21zZ2lkICJObyBtb3JlIHBhcnRpdGlvbnMiCittc2dzdHIgIlJvaGtlbSBwYXJ0aXRzaW9vbmUgZWkgb2xlIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTA0Cittc2dpZCAiSWxsZWdhbCBjb21tYW5kIgorbXNnc3RyICJWaWdhbmUga+RzayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkxNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAwIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiS2FzdXRhbWluZTpcbiIKKyJWZXJzaW9vbmkgdHL8a2tpbWluZTpcbiIKKyIgICAgICAgICVzIC12IFxuIgorIlBhcnRpdHNpb29uaXRhYmVsaSB0cvxra2ltaW5lOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbdvV0bWVkXSBzZWFkZVxuIgorIkludGVyYWt0aWl2bmUga2FzdXRhbWluZTpcbiIKKyIgICAgICAgICVzIFt29XRtZWRdIHNlYWRlXG4iCisiXG4iCisiVvV0bWVkOlxuIgorIi1hOiBLYXN1dGFkYSBub29sdCBpbnZlcnRlZXJpdHVkIHRla3N0aSBhc2VtZWxcbiIKKyItejogQWx1c3RhZGEgdPxoamEgcGFydGl0c2lvb25pdGFiZWxpZ2EsIGFydmVzdGFtYXRhIHRhYmVsaSB2YW5hIHNpc3VcbiIKKyItYyBDIC1oIEggLXMgUzogQW5kYSBr5HNpdHNpIGV0dGUgc2lsaW5kcml0ZSwgcGVhZGUgamEgcmFqYWwgb2xldmF0ZVxuIgorIiAgICAgICAgICAgICAgICBzZWt0b3JpdGUgYXJ2dWRcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2thaXhsYWJlbC5jOjI3Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBBSVggbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBMaW51eCBjYW5ub3QgaGFuZGxlIHRoZXNlXG4iCisiXHRkaXNrcyBhdCB0aGUgbW9tZW50LiAgTmV2ZXJ0aGVsZXNzIHNvbWVcbiIKKyJcdGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKKyJcdDMuIEJlZm9yZSBkZWxldGluZyB0aGlzIHBoeXNpY2FsIHZvbHVtZSBiZSBzdXJlXG4iCisiXHQgICB0byByZW1vdmUgdGhlIGRpc2sgbG9naWNhbGx5IGZyb20geW91ciBBSVhcbiIKKyJcdCAgIG1hY2hpbmUuICAoT3RoZXJ3aXNlIHlvdSBiZWNvbWUgYW4gQUlYcGVydCkuIgorbXNnc3RyICIiCisiXG4iCisiXHRTZWxsZWwgc2VhZG1lbCBvbiBBSVggcGFydGl0c2lvb25pdGFiZWwuXG4iCisiXHRLYWhqdWtzIGVpIHN1dWRhIExpbnV4IHNlZGEgaGV0a2VsIHRvZXRhZGEuXG4iCisiXHRTZWxsZWdpcG9vbGVzdCwgbmF0dWtlIG71dWFuZGVpZDpcbiIKKyJcdDEuIGZkaXNrIGjkdml0YWIga2lyanV0YW1pc2VsIHNlbGxlIHRhYmVsaVxuIgorIlx0Mi4gT2xnZSBlbm5lIGtpbmRsYWQsIGV0IHNlZSBrZXRhcyBlaSBvbGVrcyBvc2FcbiIKKyJcdCAgIG31bmVzdCBr9mlkZXRlICh2b2x1bWUpIGdydXBpc3QgLSB2YXN0YXNlbCBqdWh1bFxuIgorIlx0ICAgdvVpdGUga2Ega/ZpdGUgdGVpc2VkIG9zYWQga3VzdHV0YWRhLFxuIgorIlx0ICAga3VpIG5hZCBqdXN0IHBlZWdlbGRhdHVkIHBvbGUuXHQzLiBFbm5lIGb8/HNpbGlzZSBrZXR0YSBrdXN0dXRhbWlzdCAiCisia3VzdHV0YWdlXG4iCisiXHQgICBrZXRhcyBsb29naWxpc2VsdCBvbWEgQUlYIG1hc2luYXN0XG4iCisiXHQgICAobXVpZHUgc2FhYiBUZWlzdCBBSVhwZXJ0KS4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkJTRCBsYWJlbCBmb3IgZGV2aWNlOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiQlNEIHBhcnRpdHNpb29uaXRhYmVsIHNlYWRtZWwgJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOCBmZGlzay9mZGlzay5jOjM5NCBmZGlzay9mZGlzay5jOjQxMworIzogZmRpc2svZmRpc2suYzo0MzEgZmRpc2svZmRpc2suYzo0MzggZmRpc2svZmRpc2suYzo0NjEgZmRpc2svZmRpc2suYzo0NzkKKyM6IGZkaXNrL2ZkaXNrLmM6NDk1IGZkaXNrL2ZkaXNrLmM6NTExCittc2dpZCAiQ29tbWFuZCBhY3Rpb24iCittc2dzdHIgIkvkc2sgICAgVORoZW5kdXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjkKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIGt1c3R1dGFkYSBCU0QgcGFydGl0c2lvb24iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzAKK21zZ2lkICIgICBlICAgZWRpdCBkcml2ZSBkYXRhIgorbXNnc3RyICIgICBlICAgcmVkaWdlZXJpZGEgc2VkYW1lIGFuZG1laWQiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICBpbnN0YWxsZWVyaWRhIGJvb3RzdHJhcCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMgorbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIGZpbGVzeXN0ZW0gdHlwZXMiCittc2dzdHIgIiAgIGwgICBhbmRhIG5pbWVraXJpIHR1bnR1ZCBmYWlsaXP8c3RlZW1pZGUgdPz8cGlkZXN0IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMzIGZkaXNrL2ZkaXNrLmM6NDAwIGZkaXNrL2ZkaXNrLmM6NDE5CisjOiBmZGlzay9mZGlzay5jOjQzMiBmZGlzay9mZGlzay5jOjQ0NCBmZGlzay9mZGlzay5jOjQ2OSBmZGlzay9mZGlzay5jOjQ4NgorIzogZmRpc2svZmRpc2suYzo1MDIgZmRpc2svZmRpc2suYzo1MjAKK21zZ2lkICIgICBtICAgcHJpbnQgdGhpcyBtZW51IgorbXNnc3RyICIgICBtICAgbuRpZGF0YSBzZWRhc2FtYSBtZW78/GQiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzQKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICBsaXNhZGEgdXVzIEJTRCBwYXJ0aXRzaW9vbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNQorbXNnaWQgIiAgIHAgICBwcmludCBCU0QgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgbuRpZGF0YSBCU0QgcGFydGl0c2lvb25pdGFiZWxpdCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgIHbkbGp1ZGEgc2FsdmV0c2FtYXRhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM3IGZkaXNrL2ZkaXNrLmM6NDcyIGZkaXNrL2ZkaXNrLmM6NDg5CisjOiBmZGlzay9mZGlzay5jOjUwNSBmZGlzay9mZGlzay5jOjUyMworbXNnaWQgIiAgIHIgICByZXR1cm4gdG8gbWFpbiBtZW51IgorbXNnc3RyICIgICByICAgdGFnYXNpIHBlYW1lbvz8c3NlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM4Cittc2dpZCAiICAgcyAgIHNob3cgY29tcGxldGUgZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgbuRpZGF0YSB05GllbGlra3UgcGFydGl0c2lvb25pdGFiZWxpdCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgbXV1dGEgcGFydGl0c2lvb25pIGZhaWxpc/xzdGVlbWkgdPz8cGkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDAKK21zZ2lkICIgICB1ICAgY2hhbmdlIHVuaXRzIChjeWxpbmRlcnMvc2VjdG9ycykiCittc2dzdHIgIiAgIHUgICBtdXV0YSD8aGlrdWlkIChzaWxpbmRyaWQvc2VrdG9yaWQpIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQxCittc2dpZCAiICAgdyAgIHdyaXRlIGRpc2tsYWJlbCB0byBkaXNrIgorbXNnc3RyICIgICB3ICAga2lyanV0YWRhIHRhYmVsIGtldHRhbGUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDMKK21zZ2lkICIgICB4ICAgbGluayBCU0QgcGFydGl0aW9uIHRvIG5vbi1CU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICB4ICAgc2lkdWRhIEJTRCBwYXJ0aXRzaW9vbiBtaXR0ZS1CU0QgcGFydGl0c2lvb25pZ2EiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVzIGhhcyBpbnZhbGlkIHN0YXJ0aW5nIHNlY3RvciAwLlxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbiAlcyBzaXNhbGRhYiB2aWdhc3QgYWxnc2VrdG9yaXQgMFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWRpbmcgZGlza2xhYmVsIG9mICVzIGF0IHNlY3RvciAlZC5cbiIKK21zZ3N0ciAiTG9lbiBwYXJ0aXRzaW9vbml0YWJlbGl0IHNlYWRtZWx0ICVzIHNla3RvcmlzdCAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZXJlIGlzIG5vICpCU0QgcGFydGl0aW9uIG9uICVzLlxuIgorbXNnc3RyICJTZWFkbWVsICVzIGVpIG9sZSBCU0QgcGFydGl0c2lvb25pXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyMDMKK21zZ2lkICJCU0QgZGlza2xhYmVsIGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIkJTRCBwYXJ0aXRzaW9vbml0YWJlbGkga+RzayAobSBhbm5hYiBhYmlpbmZvdCk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI4MyBmZGlzay9mZGlzay5jOjIzMjggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzOAorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdCAlcyIKK21zZ3N0ciAiRXNpbWVuZSAlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJXMgb3IgK3NpemUgb3IgK3NpemVNIG9yICtzaXplSyIKK21zZ3N0ciAiVmlpbWFuZSAlcyB29WkgK3N1dXJ1cyB29WkgK3N1dXJ1c00gdvVpICtzdXVydXNLIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVzXG4iCittc2dzdHIgInT8/HA6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJWRcbiIKK21zZ3N0ciAidPz8cDogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgImtldGFzOiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibGFiZWw6ICUuKnNcbiIKK21zZ3N0ciAibeRyZ2VuZDogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAibGlwdWQ6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiBlZW1hbGRhdGF2IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiBlY2MiCittc2dzdHIgIiBlY2MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGJhZHNlY3QiCittc2dzdHIgIiBiYWRzZWN0IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzL3NlY3RvcjogJWxkXG4iCittc2dzdHIgImJhaXRlIHNla3RvcmlzOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAic2VrdG9yZWlkIHJhamFsOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNAorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJyYWR1IHNpbGluZHJpczogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInNla3RvcmVpZCBzaWxpbmRyaXM6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyczogJWxkXG4iCittc2dzdHIgInNpbGluZHJlaWQ6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM3CisjLCBjLWZvcm1hdAorbXNnaWQgInJwbTogJWRcbiIKK21zZ3N0ciAicnBtOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgImludGVybGVhdmU6ICVkXG4iCittc2dzdHIgImludGVybGVhdmU6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tza2V3OiAlZFxuIgorbXNnc3RyICJ0cmFja3NrZXc6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJza2V3OiAlZFxuIgorbXNnc3RyICJjeWxpbmRlcnNrZXc6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgInBlYWRlIHZhaGV0dXM6ICVsZFx0XHQjIG1pbGxpc2VrdW5kaXRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgIiIKKyJyYWphbHQgcmFqYWxlIHNlZWs6ICVsZFxuIgorIiMgbWlsbGlzZWt1bmRpdFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImRyaXZlZGF0YTogIgorbXNnc3RyICJzZWFkbWUgYW5kbWVkOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0aXRzaW9vbmk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIyAgICAgICBzdGFydCAgICAgICBlbmQgICAgICBzaXplICAgICBmc3R5cGUgICBbZnNpemUgYnNpemUgICBjcGddXG4iCittc2dzdHIgIiMgICAgICAgYWxndXMgICAgICAgbPVwcCAgICAgbWFodCAgICAgZnN0/PxwICAgW2ZtYWh0IGJtYWh0ICAgY3BnXVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGluZyBkaXNrbGFiZWwgdG8gJXMuXG4iCittc2dzdHIgIktpcmp1dGFuIHBhcnRpdHNpb29uaXRhYmVsaXQgc2VhZG1lbGUgJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQxOSBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIKK21zZ3N0ciAiJXMgZWkgc2lzYWxkYSBwYXJ0aXRzaW9vbml0YWJlbGl0XG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjYKK21zZ2lkICJEbyB5b3Ugd2FudCB0byBjcmVhdGUgYSBkaXNrbGFiZWw/ICh5L24pICIKK21zZ3N0ciAiS2FzIHNvb3ZpdGUgbHV1YSBwYXJ0aXRzaW9vbml0YWJlbGl0PyAoeS9uKSAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgImJhaXRpIHNla3RvcmlzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic2VrdG9yaXQgcmFqYWwiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjgKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXIiCittc2dzdHIgInJhZGEgc2lsaW5kcmlzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NzQwIGZkaXNrL2ZkaXNrLmM6MTU5MgorIzogZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAiY3lsaW5kZXJzIgorbXNnc3RyICJzaWxpbmRyaXQiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJzZWt0b3JpdCBzaWxpbmRyaXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSA8PSBzZWN0b3JzL3RyYWNrICogdHJhY2tzL2N5bGluZGVyIChkZWZhdWx0KS5cbiIKK21zZ3N0ciAiUGVhYiBvbGVtYSA8PSBzZWt0b3JpdGVzdCByYWphbCAqIHJhZGFkZXN0IHNpbGluZHJpbCAodmFpa2ltaXNpKVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgyCittc2dpZCAicnBtIgorbXNnc3RyICJycG0iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODMKK21zZ2lkICJpbnRlcmxlYXZlIgorbXNnc3RyICJpbnRlcmxlYXZlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICJ0cmFja3NrZXciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgImN5bGluZGVyc2tldyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgImhlYWRzd2l0Y2giCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODcKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrIgorbXNnc3RyICJyYWphbHQgcmFqYWxlIHNlZWsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKK21zZ3N0ciAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU1MworIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgb3ZlcmxhcHMgd2l0aCBkaXNrIGxhYmVsIVxuIgorbXNnc3RyICJCb290c3RyYXAga2F0dHViIHBhcnRpdHNpb29uaXRhYmVsaWdhIVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIGluc3RhbGxlZCBvbiAlcy5cbiIKK21zZ3N0ciAiQm9vdHN0cmFwIHNhaSBpbnN0YWxsaXR1ZCBzZWFkbWVsZSAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAiUGFydGl0c2lvb24gKGEtJWMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MTcgZmRpc2svZmRpc2suYzoyNDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJ0aXRpb25zIGhhcyBiZWVuIGNyZWF0ZWRcbiIKK21zZ3N0ciAiTWFrc2ltYWFsbmUgYXJ2IHBhcnRpdHNpb29uZSBvbiBqdWJhIGxvb2R1ZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGFscmVhZHkgZXhpc3RzLlxuIgorbXNnc3RyICJTZWUgcGFydGl0c2lvb24gb24ganViYSBvbGVtYXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIkhvaWF0dXM6IGxpaWdhIHBhbGp1IHBhcnRpdHNpb29uZSAoJWQsIG1ha3NpbXVtIG9uICVkKVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICIiCisiXG4iCisiS2lyanV0YW4gcHVodnJlaWQga2V0dGFsZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NgorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgZmRpc2sgW29wdGlvbnNdIDxkaXNrPiAgICBjaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisiIGZkaXNrIFtvcHRpb25zXSAtbCA8ZGlzaz4gbGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyIgZmRpc2sgLXMgPHBhcnRpdGlvbj4gICAgICBnaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1iIDxzaXplPiAgICAgICAgICAgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGhlbHBcbiIKKyIgLXUgPHNpemU+ICAgICAgICAgICAgICAgICBnaXZlIHNpemVzIGluIHNlY3RvcnMgaW5zdGVhZCBvZiBjeWxpbmRlcnNcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB2ZXJzaW9uXG4iCisiIC1DIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVyc1xuIgorIiAtSCA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBoZWFkc1xuIgorIiAtUyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFja1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzXG4iCittc2dzdHIgIkVpIHN1dWRhIGF2YWRhIHNlYWRldCAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gcmVhZCAlc1xuIgorbXNnc3RyICJFaSBzdXVkYSBsdWdlZGEgc2VhZGV0ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZWVrIG9uICVzXG4iCittc2dzdHIgIkVpIHN1dWRhIHNlZWtpZGEgc2VhZG1lbCAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiRWkgc3V1ZGEga2lyanV0YWRhIHNlYWRtZWxlICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzXG4iCittc2dzdHIgIkJMS0dFVFNJWkUgaW9jdGwgZWkg9W5uZXN0dW51ZCBzZWFkbWVsICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGFueSBtb3JlIG1lbW9yeVxuIgorbXNnc3RyICJN5Gx1IHNhaSBvdHNhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAiRmF0YWFsbmUgdmlnYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjM5NQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSByZWFkIG9ubHkgZmxhZyIKK21zZ3N0ciAiICAgYSAgIGz8bGl0YWRhIGtpcmp1dHVza2FpdHNlIGxpcHAgc2lzc2UvduRsamEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk2IGZkaXNrL2ZkaXNrLmM6NDQwCittc2dpZCAiICAgYiAgIGVkaXQgYnNkIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgYiByZWRpZ2VlcmlkYSBOU0QgcGFydGl0c2lvb25pdGFiZWxpdCIKKworIzogZmRpc2svZmRpc2suYzozOTcKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBtb3VudGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYyAgIGz8bGl0YWRhIG1vbnRlZXJpdGF2dXNlIGxpcHAgc2lzc2UvduRsamEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIGt1c3R1dGFkYSBwYXJ0aXRzaW9vbiIKKworIzogZmRpc2svZmRpc2suYzozOTkgZmRpc2svZmRpc2suYzo0MTggZmRpc2svZmRpc2suYzo0NDMKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgIGwgICBhbmRhIG5pbWVraXJpIHR1bnR1ZCBwYXJ0aXRzaW9vbml0/PxwaWRlc3QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICBsaXNhZGEgdXVzIHBhcnRpdHNpb29uIgorCisjOiBmZGlzay9mZGlzay5jOjQwMiBmZGlzay9mZGlzay5jOjQyMSBmZGlzay9mZGlzay5jOjQzMyBmZGlzay9mZGlzay5jOjQ0NgorbXNnaWQgIiAgIG8gICBjcmVhdGUgYSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgbyAgIGx1dWEgdXVzIHT8aGkgRE9TaSBwYXJ0aXRzaW9vbml0YWJlbCIKKworIzogZmRpc2svZmRpc2suYzo0MDMgZmRpc2svZmRpc2suYzo0MjIgZmRpc2svZmRpc2suYzo0NDcgZmRpc2svZmRpc2suYzo0NzAKKyM6IGZkaXNrL2ZkaXNrLmM6NDg3IGZkaXNrL2ZkaXNrLmM6NTAzIGZkaXNrL2ZkaXNrLmM6NTIxCittc2dpZCAiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBu5GlkYXRhIHBhcnRpdHNpb29uaXRhYmVsaXQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgbHV1YSB1dXMgdPxoaSBTdW4naSBwYXJ0aXRzaW9vbml0YWJlbCIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgbXV1dGEgcGFydGl0c2lvb25pIHT8/HBpIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIG11dXRhIHNpc2VzdGFtaXNlIGphIHRhYmVsaSBu5Gl0YW1pc2Ug/Ghpa3VpZCIKKworIzogZmRpc2svZmRpc2suYzo0MDggZmRpc2svZmRpc2suYzo0MjcgZmRpc2svZmRpc2suYzo0NTIgZmRpc2svZmRpc2suYzo0NzQKKyM6IGZkaXNrL2ZkaXNrLmM6NDkxIGZkaXNrL2ZkaXNrLmM6NTA3IGZkaXNrL2ZkaXNrLmM6NTI1Cittc2dpZCAiICAgdiAgIHZlcmlmeSB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICB2ICAga29udHJvbGxpZGEgcGFydGl0c2lvb25pdGFiZWxpdCIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiAgIHcgICBraXJqdXRhZGEgdGFiZWwga2V0dGFsZSBqYSB25GxqdWRhIgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgICB4ICAgbGlzYWZ1bmt0c2lvbmFhbHN1cyAoYWludWx0IGVrc3BlcnRpZGVsZSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0Cittc2dpZCAiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGEgICB2YWxpZGEgYnV1dGl2IHBhcnRpdHNpb29uIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAgcmVkaWdlZXJpZGEgYnV1dGZhaWxpIGtpcmpldCIKKworIzogZmRpc2svZmRpc2suYzo0MTYKK21zZ2lkICIgICBjICAgc2VsZWN0IHNnaSBzd2FwIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYyAgIHZhbGlkYSBTR0kgc2FhbGltaXNwYXJ0aXRzaW9vbiIKKworIzogZmRpc2svZmRpc2suYzo0MzkKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgYm9vdGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYSAgIGz8bGl0YWRhIGJ1dWRpdGF2dXNlIGxpcHAgc2lzc2UvduRsamEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICAgYyAgIGz8bGl0YWRhIERPU2lnYSD8aGlsZHV2dXNlIHJlemhpaW0gc2lzc2UvduRsamEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYyCittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYSAgIG11dXRhIGFsdGVybmF0aWl2c2V0ZSBzaWxpbmRyaXRlIGFydnUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYzIGZkaXNrL2ZkaXNrLmM6NDgxIGZkaXNrL2ZkaXNrLmM6NDk3IGZkaXNrL2ZkaXNrLmM6NTEzCittc2dpZCAiICAgYyAgIGNoYW5nZSBudW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICIgICBjICAgbXV1dGEgc2lsaW5kcml0ZSBhcnZ1IgorCisjOiBmZGlzay9mZGlzay5jOjQ2NCBmZGlzay9mZGlzay5jOjQ4MiBmZGlzay9mZGlzay5jOjQ5OCBmZGlzay9mZGlzay5jOjUxNAorbXNnaWQgIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZCAgIG7kaWRhdGEgcGFydGl0c2lvb25pdGFiZWxpdCBiYWlkaWthdXBhIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAgbXV1dGEgbGlzYXNla3Rvcml0ZSBhcnZ1IHNpbGluZHJpbCIKKworIzogZmRpc2svZmRpc2suYzo0NjYgZmRpc2svZmRpc2suYzo0ODUgZmRpc2svZmRpc2suYzo1MDEgZmRpc2svZmRpc2suYzo1MTgKK21zZ2lkICIgICBoICAgY2hhbmdlIG51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiICAgaCAgIG11dXRhIHBlYWRlIGFydnUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY3Cittc2dpZCAiICAgaSAgIGNoYW5nZSBpbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiICAgaSAgIG11dXRhIGludGVybGVhdmUtdGVndXJpdCIKKworIzogZmRpc2svZmRpc2suYzo0NjgKK21zZ2lkICIgICBvICAgY2hhbmdlIHJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIgICBvICAgbXV1dGEgcPb2cmxlbWlzZSBraWlydXN0IChycG0pIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorbXNnaWQgIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siCittc2dzdHIgIiAgIHMgICBtdXV0YSBzZWt0b3JpdGUgYXJ2dSByYWphbCIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICBtdXV0YSBm/PxzaWxpc3RlIHNpbGluZHJpdGUgYXJ2dSIKKworIzogZmRpc2svZmRpc2suYzo0ODAgZmRpc2svZmRpc2suYzo0OTYgZmRpc2svZmRpc2suYzo1MTIKK21zZ2lkICIgICBiICAgbW92ZSBiZWdpbm5pbmcgb2YgZGF0YSBpbiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYiAgIGxpaWd1dGFkYSBhbmRtZXRlIGFsZ3VzdCBwYXJ0aXRzaW9vbmlzIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MyBmZGlzay9mZGlzay5jOjQ5OSBmZGlzay9mZGlzay5jOjUxNQorbXNnaWQgIiAgIGUgICBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiAgIGUgICBu5GlkYXRhIGV4dGVuZGVkLXBhcnRpdHNpb29uaWRlIG5pbWVraXJqYSIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgbHV1YSBJUklYaSAoU0dJKSBwYXJ0aXRzaW9vbml0YWJlbCIKKworIzogZmRpc2svZmRpc2suYzo1MTYKK21zZ2lkICIgICBmICAgZml4IHBhcnRpdGlvbiBvcmRlciIKK21zZ3N0ciAiICAgZiAgIHBhcmFuZGFkYSBwYXJ0aXRzaW9vbmlkZSBq5HJqZWtvcmQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5CisjLCBmdXp6eQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgdSAgIG11dXRhIHNpc2VzdGFtaXNlIGphIHRhYmVsaSBu5Gl0YW1pc2Ug/Ghpa3VpZCIKKworIzogZmRpc2svZmRpc2suYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3Qgc2V0IgorbXNnc3RyICJUZSBwZWF0ZSBt5ORyYW1hLCBldCBla3Npc3RlZXJpYiBuaWktamEtbmlpLW1pdHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM2Cittc2dpZCAiaGVhZHMiCittc2dzdHIgInBlYWQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM4IGZkaXNrL2ZkaXNrLmM6MTU5MiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJzZWN0b3JzIgorbXNnc3RyICJzZWt0b3JpdCIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisiJXMlcy5cbiIKKyJUZSBzYWF0ZSBzZWRhIHRlaGEgbGlzYWZ1bmt0c2lvbmFhbHN1c2UgbWVu/PxzdC5cbiIKKworIzogZmRpc2svZmRpc2suYzo3NDUKK21zZ2lkICIgYW5kICIKK21zZ3N0ciAiIGphICIKKworIzogZmRpc2svZmRpc2suYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFRoZSBzaXplIG9mIHRoaXMgZGlzayBpcyAlZC4lZCBUQiAoJWxsdSBieXRlcykuXG4iCisiRE9TIHBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgY2FuIG5vdCBiZSB1c2VkIG9uIGRyaXZlcyBmb3Igdm9sdW1lc1xuIgorImxhcmdlciB0aGFuICglbGx1IGJ5dGVzKSBmb3IgJWQtYnl0ZSBzZWN0b3JzLiBVc2UgcGFydGVkKDEpIGFuZCBHVUlEIFxuIgorInBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgKEdQVCkuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBkZXZpY2UgcHJlc2VudHMgYSBsb2dpY2FsIHNlY3RvciBzaXplIHRoYXQgaXMgc21hbGxlciB0aGFuXG4iCisidGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLiBBbGlnbmluZyB0byBhIHBoeXNpY2FsIHNlY3RvciAob3Igb3B0aW1hbFxuIgorIkkvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG9cbiIKKyIgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG9cbiIKKyIgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IGN5bGluZGVycyBhcyBkaXNwbGF5IHVuaXRzIGFyZSBkZXByZWNhdGVkLiBVc2UgY29tbWFuZCAndScgdG9cbiIKKyIgICAgICAgICBjaGFuZ2UgdW5pdHMgdG8gc2VjdG9ycy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgxOQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgb2Zmc2V0IGluIHByaW1hcnkgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIlZpZ2FuZSBvZmZzZXQgcHJpbWFhcnNlcyBleHRlbmRlZC1wYXJ0aXRzaW9vbmlzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBleHRyYSBsaW5rIHBvaW50ZXIgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIkhvaWF0dXM6IPxsZWxpaWduZSAnbGluayBwb2ludGVyJyBwYXJ0aXRzaW9vbml0YWJlbGlzICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIkhvaWF0dXM6IGlnbm9yZWVyaW4g/GxlbGlpZ3NlaWQgYW5kbWVpZCBwYXJ0aXRzaW9vbml0YWJlbGlzICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvbWl0dGluZyBlbXB0eSBwYXJ0aXRpb24gKCVkKVxuIgorbXNnc3RyICJIb2lhdHVzOiB0/GhpIHBhcnRpdHNpb29uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIktvb3N0YW4gdXVlIERPU2kgcGFydGl0c2lvb25pdGFiZWxpLiBNdXV0dXNlZCBq5OR2YWQgYWludWx0IG3kbGx1LFxuIgorImt1bmkgVGUgaXNlIG90c3VzdGF0ZSBuZWVkIGtldHRhbGUga2lyanV0YWRhLiBQ5HJhc3Qgc2VkYSBwb2xlIHZhbmEgc2lzdVxuIgorImxvb211bGlrdWx0IGVuYW0gdGFhc3RhdGF2LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAiTeRya3VzOiBzZWt0b3JpIHN1dXJ1cyBvbiAlZCAobWl0dGUgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbml0YWJlbGl0IGVpIHNhYSBzYWx2ZXN0YWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkaXNrIGhhcyBib3RoIERPUyBhbmQgQlNEIG1hZ2ljLlxuIgorIkdpdmUgdGhlICdiJyBjb21tYW5kIHRvIGdvIHRvIEJTRCBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGICIKKyJkaXNrbGFiZWxcbiIKK21zZ3N0ciAiU2VhZGUgZWkgc2lzYWxkYSBlaSBET1NpLCBTdW5pLCBTR0kgZWdhIE9ERiBwYXJ0aXRzaW9vbml0YWJlbGl0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJJbnRlcm5hbCBlcnJvclxuIgorbXNnc3RyICJTaXNlbWluZSB2aWdhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI4MworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmluZyBleHRyYSBleHRlbmRlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiSWdub3JlZXJpbiBsaXNhLWV4dGVuZGVkIHBhcnRpc3RzaW9vbmkgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHglMDR4IG9mIHBhcnRpdGlvbiB0YWJsZSAlZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3IgorIihyaXRlKVxuIgorbXNnc3RyICIiCisiSG9pYXR1czogdmlnYW5lIGxpcHAgMHglMDR4IChwYXJ0aXRzaW9vbml0YWJlbGlzICVkKSBwYXJhbmRhdGFrc2VcbiIKKyJraXJqdXRhbWlzZWwgKHcpIORyYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImdvdCBFT0YgdGhyaWNlIC0gZXhpdGluZy4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTYWluIEVPRi1pIGtvbG0ga29yZGEgauRyamVzdCAtIGFpdGFiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM2MAorbXNnaWQgIkhleCBjb2RlICh0eXBlIEwgdG8gbGlzdCBjb2Rlcyk6ICIKK21zZ3N0ciAiS3V1ZXRlaXN0a/xtbmVuZHP8c3RlZW1pcyBrb29kIChMIG7kaXRhYiBrb29kaWRlIG5pbWVraXJqYSk6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXUtJXUsIGRlZmF1bHQgJXUpOiAiCittc2dzdHIgIiVzICglZC0lZCwgdmFpa2ltaXNpICVkKTogIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgc3VmZml4OiAnJXMnLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VwcG9ydGVkOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaUJ5dGUpLCBNICAoTWViaUJ5dGUpLCBHICAoR2liaUJ5dGUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBkZWZhdWx0IHZhbHVlICV1XG4iCittc2dzdHIgIkthc3V0YW4gdmFpa2ltaXNpIHbk5HJ0dXN0ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIlbk5HJ0dXMgb24gcGlpcmlkZXN0IHbkbGphc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE1MTgKK21zZ2lkICJQYXJ0aXRpb24gbnVtYmVyIgorbXNnc3RyICJQYXJ0aXRzaW9vbmkgbnVtYmVyIgorCisjOiBmZGlzay9mZGlzay5jOjE1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGhhcyBlbXB0eSB0eXBlXG4iCittc2dzdHIgIkhvaWF0dXM6IHBhcnRpdHNpb29uaWwgJWQgb24gdPxoaSB0/PxwXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1MSBmZGlzay9mZGlzay5jOjE1NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJJZ25vcmVlcmluIGxpc2EtZXh0ZW5kZWQgcGFydGlzdHNpb29uaSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAi3Gh0ZWdpIHBhcnRpdHNpb29uaSBwb2xlIGRlZmluZWVyaXR1ZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIHByaW1hcnkgcGFydGl0aW9ucyBoYXZlIGJlZW4gZGVmaW5lZCBhbHJlYWR5IVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgImN5bGluZGVyIgorbXNnc3RyICJzaWxpbmRlciIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICJzZWt0b3IiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIlNpc2VzdGFtaXNlbCBqYSBu5Gl0YW1pc2VsIG9uIG78/GQg/Ghpa3V0ZWtzICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIkhvaWF0dXM6IHBhcnRpdHNpb29uICVkIG9uIGV4dGVuZGVkLXBhcnRpdHNpb29uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIHNldFxuIgorbXNnc3RyICJET1NpZ2Eg/GhpbGR1dnVzZSBsaXBwIG9uIHD8c3RpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMgorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXRcbiIKK21zZ3N0ciAiRE9TaWdhIPxoaWxkdXZ1c2UgbGlwcCBwb2xlIHD8c3RpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyMworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbmkgJWQgcG9sZSB2ZWVsIG9sZW1hcyFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKyJU/PxwIDAgdORoZW5kYWIgcGFsanVkZWxlIHP8c3RlZW1pZGVsZSB2YWJhXG4iCisicnV1bWkgKGFnYSBtaXR0ZSBMaW51eGlsZSkuIElsbXNlbHQgZWkgb2xlIG31aXN0bGlrXG4iCisidGVraXRhZGEgdPz8cGkgMCBwYXJ0aXRzaW9vbmUuIFRlIHNhYXRlIHBhcnRpdHNpb29uaVxuIgorImt1c3R1dGFkYSBr5HN1Z2EgJ2QnLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8gYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKyJEZWxldGUgaXQgZmlyc3QuXG4iCittc2dzdHIgIiIKKyJQYXJ0aXRzaW9vbmkgZWkgc2FhIG11dXRhIGV4dGVuZGVkJ2lrcyBlZ2EgZXh0ZW5kZWRpc3QgaGFyaWxpa3Vrcy5cbiIKKyJTZWxsZSBhc2VtZWwgdHVsZWIgcGFydGl0c2lvb24ga3VzdHV0YWRhIGphIHV1cyBsdXVhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiU29vdml0YXYgb24gauR0dGEgcGFydGl0c2lvb24gMyB0ZXJ2ZWtzIGtldHRha3MgKDUpLFxuIgorInNlc3QgU3VuT3MvU29sYXJpcyBlZWxkYWIgc2VkYSBqYSBzZWUgbWVlbGRpYiBpc2VnaSBMaW51eGlsZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gOSBhcyB2b2x1bWUgaGVhZGVyICgwKSxcbiIKKyJhbmQgcGFydGl0aW9uIDExIGFzIGVudGlyZSB2b2x1bWUgKDYpLCBhcyBJUklYIGV4cGVjdHMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJLYWFsdWdlIHBhcnRpdHNpb29uaSA5IGrkdG1pc3Qga/ZpdGUgcORpc2VrcyAoMCkgamFcbiIKKyJwYXJ0aXRzaW9vbmkgMTEgauR0bWlzdCB0ZXJ2ZWtzIGtldHRha3MgKDYpIG5hZ3UgSVJJWCBzZWRhIGVlbGRhYlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbmkgJWQgdPz8cCBvbiBu/PxkICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgaXMgdW5jaGFuZ2VkOiAleCAoJXMpXG4iCittc2dzdHIgIlBhcnRpdHNpb29uaSAlZCB0/PxwIG9uIG78/GQgJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAiIgorIlBhcnRpdHNpb29uaSAlZCBm/PxzaWxpbmUgamEgbG9vZ2lsaW5lIGFsZ3VzIGVpIGxhbmdlIGtva2t1OlxuIgorIihQb2xlIExpbnV4aSBvbWE/KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjkgZmRpc2svZmRpc2suYzoxODM3IGZkaXNrL2ZkaXNrLmM6MTg0NiBmZGlzay9mZGlzay5jOjE4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICBwaHlzPSglZCwgJWQsICVkKSAiCittc2dzdHIgIiAgICAgZvz8cz0oJWQsICVkLCAlZCkgIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzAgZmRpc2svZmRpc2suYzoxODM4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImxvb2dpbGluZT0oJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAiUGFydGl0c2lvb25pICVkIGb8/HNpbGluZSBqYSBsb29naWxpbmUgbPVwcCBlaSBsYW5nZSBrb2trdTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKK21zZ3N0ciAiUGFydGl0c2lvb24gJWkgZWkgYWxnYSBzaWxpbmRyaSBwaWlyaWx0OlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgInBlYWtzIG9sZW1hICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiUGFydGl0c2lvb24gJWQgZWkgbPVwcGUgc2lsaW5kcmkgcGlpcmlsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgJWQpXG4iCittc2dzdHIgInBlYWtzIG9sZW1hICglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnRpdHNpb29uICVpIGVpIGFsZ2Egc2lsaW5kcmkgcGlpcmlsdDpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQgTUIsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQuJWxkIEdCLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJLZXRhcyAlczogJWQgcGVhZCwgJWQgc2VrdG9yaXQgcmFqYWwsICVkIHNpbGluZHJpdFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVkIGhlYWRzLCAlbGx1IHNlY3RvcnMvdHJhY2ssICVkIGN5bGluZGVycyIKK21zZ3N0ciAiIgorIlxuIgorIktldGFzICVzOiAlZCBwZWFkLCAlZCBzZWt0b3JpdCByYWphbCwgJWQgc2lsaW5kcml0XG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NworIywgYy1mb3JtYXQKK21zZ2lkICIsIHRvdGFsICVsbHUgc2VjdG9ycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVuaXRzID0gJXMgb2YgJWQgKiAlZCA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJLZXRhcyAlczogJWQgcGVhZCwgJWQgc2VrdG9yaXQgcmFqYWwsICVkIHNpbGluZHJpdFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAidmlnYW5lIGkta2lyamUgc3V1cnVzIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIk1pZGFnaSBwb2xlIHZhamEgdGVoYSwgauRyamVzdHVzIG9uIGp1YmEg9WlnZVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRvbmUuXG4iCittc2dzdHIgIiIKKyJWYWxtaXNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRvZXNuJ3QgbG9vayBsaWtlIGEgcGFydGl0aW9uIHRhYmxlXG4iCisiUHJvYmFibHkgeW91IHNlbGVjdGVkIHRoZSB3cm9uZyBkZXZpY2UuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMDc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgQm9vdCAgICBBbGd1cyAgICAgICBM9XBwICAgUGxva2tlICAgSWQgIFP8c3RlZW1cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5OAorbXNnaWQgIkRldmljZSIKK21zZ3N0ciAiU2VhZGUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjExNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiUGFydGl0aW9uIHRhYmxlIGVudHJpZXMgYXJlIG5vdCBpbiBkaXNrIG9yZGVyXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQYXJ0aXRzaW9vbml0YWJlbGkga2lyamVkIG9uIGb8/HNpbGlzZXN0IGVyaW5ldmFzIGrkcmpla29ycmFzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiS2V0YXMgJXM6ICVkIHBlYWQsICVkIHNla3Rvcml0IHJhamFsLCAlZCBzaWxpbmRyaXRcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJOciBBRiAgSGQgU2VjICBDeWwgIEhkIFNlYyAgQ3lsICAgICBTdGFydCAgICAgIFNpemUgSURcbiIKK21zZ3N0ciAiTnIgQUYgIFDkIFNlayAgU2lsICBQ5CBTZWsgIFNpbCAgICBBbGd1cyAgICAgTWFodCBJRFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgIkhvaWF0dXM6IHBhcnRpdHNpb29uICVkIHNpc2FsZGFiIHNla3Rvcml0IDBcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogaGVhZCAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbiAlZDogcGVhICVkIG9uIHN1dXJlbSBrdWkgcGVhZGUgYXJ2ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbiAlZDogc2VrdG9yICVkIG9uIHN1dXJlbSBrdWkgc2VrdHJvaXRlIGFydiByYWphbCAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9ucyAlZDogY3lsaW5kZXIgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAiUGFydGl0c2lvb24gJWQ6IHNpbGluZGVyICVkIG9uIHN1dXJlbSBrdWkgc2lsaW5kcml0ZSBhcnYgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogcHJldmlvdXMgc2VjdG9ycyAlZCBkaXNhZ3JlZXMgd2l0aCB0b3RhbCAlZFxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbiAlZDogZWVsbmV2YXRlIHNla3Rvcml0ZSBhcnYgJWQgZWkga2xhcGkgc3VtbWFyc2VnYSAoJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiSG9pYXR1czogcGFydGl0c2lvb25pcyAlZCBvbiBhbmRtZXRlIGFsZ3VzIHZpZ2FuZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIG92ZXJsYXBzIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiSG9pYXR1czogcGFydGl0c2lvb24gJWQga2F0dHViIHBhcnRpdHNpb29uaWdhICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAiSG9pYXR1czogcGFydGl0c2lvb24gJWQgb24gdPxoaVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naWNhbCBwYXJ0aXRpb24gJWQgbm90IGVudGlyZWx5IGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJMb29naWxpbmUgcGFydGl0c2lvb24gJWQgcG9sZSD8bGVuaSBwYXJ0aXRzaW9vbmlzICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJLb2d1IGthc3V0YXRhdWQgc2VrdG9yaXRlIGFydiAlZCBvbiBzdXVyZW0ga3VpIHNla3Rvcml0ZSBrb2d1YXJ2ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUmVtYWluaW5nICVsbGQgdW5hbGxvY2F0ZWQgJWQtYnl0ZSBzZWN0b3JzXG4iCittc2dzdHIgIiVkIHZhYmEgc2VrdG9yaXRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzAxIGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxMQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlIGl0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iCittc2dzdHIgIlBhcnRpdHNpb29uICVkIG9uIGp1YmEgb2xlbWFzLiBLdXN0dXRhZ2Ugc2VlIGVubmUgdXVlc3RpIGxpc2FtaXN0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVsbHUgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAiU2VrdG9yJWQgb24ganViYSBrYXN1dHVzZWxcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGZyZWUgc2VjdG9ycyBhdmFpbGFibGVcbiIKK21zZ3N0ciAiVmFiYWQgc2VrdG9yaWQgb24gb3RzYXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJTEkcywgKyUyJHMgb3IgK3NpemV7SyxNLEd9IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBBSVggZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0VmFiYW5kdXN0IC0gc2VlIGZkaXNraSB2ZXJzaW9vbiBlaSBzYWEgaGFra2FtYSBBSVhpXG4iCisiXHRwYXJ0aXRzaW9vbml0YWJlbGlnYS4gS3VpIFRlIHNvb3ZpdGUgbGlzYWRhIERPU2kgdPz8cGlcbiIKKyJcdHBhcnRpdHNpb29uZSwgbG9vZ2Uga/VpZ2VwZWFsdCB1dXMgRE9TaSBwYXJ0aXRzaW9vbml0YWJlbFxuIgorIlx0KGvkc3VnYSBvKS5cbiIKKyJcdEhPSUFUVVM6IHNlZSBo5HZpdGFiIGtldHRhIHByYWVndXNlIHNpc3UhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgTWFjIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyJcdFZhYmFuZHVzdCAtIHNlZSBmZGlza2kgdmVyc2lvb24gZWkgc2FhIGhha2thbWEgQUlYaVxuIgorIlx0cGFydGl0c2lvb25pdGFiZWxpZ2EuIEt1aSBUZSBzb292aXRlIGxpc2FkYSBET1NpIHT8/HBpXG4iCisiXHRwYXJ0aXRzaW9vbmUsIGxvb2dlIGv1aWdlcGVhbHQgdXVzIERPU2kgcGFydGl0c2lvb25pdGFiZWxcbiIKKyJcdChr5HN1Z2EgbykuXG4iCisiXHRIT0lBVFVTOiBzZWUgaOR2aXRhYiBrZXR0YSBwcmFlZ3VzZSBzaXN1IVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iCittc2dzdHIgIiIKKyJUZSBwZWF0ZSBr9WlnZXBlYWx0IG31bmUgcGFydGl0c2lvb25pIGt1c3R1dGFtYSBqYSBhc2VtZWxlXG4iCisiZXh0ZW5kZWQgcGFydGl0c2lvb25pIHRlZ2VtYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICJMb29naWxpc2VkIHBhcnRpdHNpb29uaWQgb24gZvz8c2lsaXNlc3QgZXJpbmV2YXMgauRyamVzdHVzZXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nIGEgcHJpbWFyeSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiVmlnYW5lIHByaW1hYXJuZSBwYXJ0aXRzaW9vbiIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKyJL5HNrIHRlZ2V2dXNcbiIKKyIgICAlc1xuIgorIiAgIHAgICBwcmltYWFyc2UgcGFydGl0c2lvb25pICgxLTQpIGxvb21pbmVcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAibCAgIGxvZ2ljYWwgKDUgb3Igb3ZlcikiCittc2dzdHIgImwgICBsb29naWxpc2UgcGFydGl0c2lvb25pICg1LS4uLikgbG9vbWluZSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAgZXh0ZW5kZWQgcGFydGl0c2lvb25pIGxvb21pbmUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICJWaWdhbmUgcGFydGl0c2lvb25pIG51bWJlciB0/PxiaWxlIGAlYydcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhXG4iCisiXG4iCittc2dzdHIgIiIKKyJQYXJ0aXRzaW9vbml0YWJlbGl0IG9uIG11dWRldHVkIVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJLYXN1dGFuIGlvY3RsKCkgcGFydGl0c2lvb25pdGFiZWxpIHV1ZXN0aSBsdWdlbWlzZWtzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQgd2l0aCBlcnJvciAlZDogJXMuXG4iCisiVGhlIGtlcm5lbCBzdGlsbCB1c2VzIHRoZSBvbGQgdGFibGUuIFRoZSBuZXcgdGFibGUgd2lsbCBiZSB1c2VkIGF0XG4iCisidGhlIG5leHQgcmVib290IG9yIGFmdGVyIHlvdSBydW4gcGFydHByb2JlKDgpIG9yIGtwYXJ0eCg4KVxuIgorbXNnc3RyICIiCisiXG4iCisiSE9JQVRVUzogUGFydGl0c2lvb25pdGFiZWxpIHV1ZXN0aSBsdWdlbWluZSBlaSD1bm5lc3R1bnVkLFxuIgorInR1bGkgdmlnYSAlZDogJXNcbiIKKyJUdXVtIGthc3V0YWIgZW5kaXNlbHQgdmFuYSB0YWJlbGl0LFxuIgorInV1cyB0YWJlbCBoYWtrYWIga2VodGltYSBq5HJnbWlzZXN0IGJ1dWRpc3QgYWxhdGVzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55IERPUyA2LnhcbiIKKyJwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBmZGlzayBtYW51YWwgcGFnZSBmb3IgYWRkaXRpb25hbFxuIgorImluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiSE9JQVRVUzogS3VpIFRlIHRla2l0YXNpdGUgdvVpIG11dXRzaXRlIERPUyA2LnhcbiIKKyJwYXJ0aXRzaW9vbmUsIGx1Z2VnZSBwYWx1biBmZGlzaydpIG1hbnVhbGlcbiIKKyJsaXNhaW5mb3JtYXRzaW9vbmkgamFva3MuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkVycm9yIGNsb3NpbmcgZmlsZVxuIgorbXNnc3RyICJWaWdhICVzIHN1bGdlbWlzZWxcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIktpcmp1dGFuIHB1aHZyZWlkIGtldHRhbGVcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgbm8gZGF0YSBhcmVhXG4iCittc2dzdHIgIlBhcnRpdHNpb29uaWwgJWQgcG9sZSBhbmRtZXRlbGUgcnV1bWkgZXJhbGRhdHVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiQW5kbWV0ZSB1dXMgYWxndXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY3MgorbXNnaWQgIkV4cGVydCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJFa3NwZXJkaSBr5HNrIChtIGFubmFiIGFiaWluZm90KTogIgorCisjOiBmZGlzay9mZGlzay5jOjI2ODUKK21zZ2lkICJOdW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICJTaXNlc3RhZ2Ugc2lsaW5kcml0ZSBhcnYiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjcxMAorbXNnaWQgIk51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiU2lzZXRhZ2UgcGVhZGUgYXJ2IgorCisjOiBmZGlzay9mZGlzay5jOjI3MzcKK21zZ2lkICJOdW1iZXIgb2Ygc2VjdG9ycyIKK21zZ3N0ciAiU2lzZXRhZ2Ugc2VrdG9yaXRlIGFydiIKKworIzogZmRpc2svZmRpc2suYzoyNzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHNldHRpbmcgc2VjdG9yIG9mZnNldCBmb3IgRE9TIGNvbXBhdGlibGl0eVxuIgorbXNnc3RyICJIb2lhdHVzOiBzZWFuIHNla3Rvcml0ZSBvZmZzZXRpIERPU2lnYSD8aGlsZHV2dXNlIGphb2tzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgZmRpc2sgZG9lc24ndCAiCisic3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzIGRvZXNuJ3QgY29udGFpbiBhIHZhbGlkIHBhcnRpdGlvbiB0YWJsZVxuIgorbXNnc3RyICJTZWFkZSAlcyBlaSBzaXNhbGRhIORyYXR1bnRhdmF0IHBhcnRpdHNpb29uaXRhYmVsaXRcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIkVpIHN1dWRhIGF2YWRhIHNlYWRtZWZhaWxpICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg1MCBmZGlzay9zZmRpc2suYzoyNjA4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIkVpIHN1dWRhIGF2YWRhIGZhaWxpICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlYzogdW5rbm93biBjb21tYW5kXG4iCittc2dzdHIgIiVjOiB0dW5kbWF0dSBr5HNrXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIGtlcm5lbCBmaW5kcyB0aGUgc2VjdG9yIHNpemUgaXRzZWxmIC0gLWIgb3B0aW9uIGlnbm9yZWRcbiIKK21zZ3N0ciAiS2FzdXRhdGF2IHR1dW0gbGVpYWIgc2VrdG9yaSBzdXVydXNlIGlzZSAtIGlnbm9yZWVyaW4gLWIgdvV0aXRcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB0aGUgLWIgKHNldCBzZWN0b3Igc2l6ZSkgb3B0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggb25lIHNwZWNpZmllZCAiCisiZGV2aWNlXG4iCittc2dzdHIgIiIKKyJIb2lhdHVzOiAtYiB29XRpdCAoc2VrdG9yaSBzdXVydXNlIHNlYWRtaW5lKSB0dWxla3Mga2FzdXRhZGEgYWludWx0IPxoZSAiCisidORwc2VsdCBt5ORyYXR1ZCBzZWFkbWVnYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIiIKKyJMZWlkaXNuIHNlYWRtZWx0ICVzIE9TRi8xIHBhcnRpdHNpb29uaXRhYmVsaSwgbORoZW4gT1NGLzEgcmV6aGlpbWkuXG4iCisiRE9TaSBwYXJ0aXRzaW9vbml0YWJlbGkgcmV6aGlpbWkgbmFhc21pc2VrcyBrYXN1dGFnZSBr5HNrdSBgcicuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIkvkc2sgKG0gYW5uYWIgYWJpaW5mb3QpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiQWt0aWl2bmUgYnV1dGZhaWwgb24gJXNcbiIKKworIzogZmRpc2svZmRpc2suYzozMDI4Cittc2dpZCAiUGxlYXNlIGVudGVyIHRoZSBuYW1lIG9mIHRoZSBuZXcgYm9vdCBmaWxlOiAiCittc2dzdHIgIlBhbHVuIHNpc2VzdGFnZSB1dWUgYnV1dGZhaWxpIG5pbWk6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiQnV1dGZhaWwgauRpIHNhbWFrc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjMxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJIHBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRWYWJhbmR1c3QsIFNHSSBwYXJ0aXRzaW9vbml0YWJlbGkgamFva3MgcG9sZSBla3NwZXJ0bWVu/PxkXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrbWFjbGFiZWwuYzozMAorIywgZnV6enkKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIE1hYyBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IGZkaXNrKDEpIGNhbm5vdCBoYW5kbGUgdGhlc2UgZGlza3MuXG4iCisiXHRVc2UgZWl0aGVyIHBkaXNrIG9yIHBhcnRlZCB0byBtb2RpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyJcdE5ldmVydGhlbGVzcyBzb21lIGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0U2VsbGVsIHNlYWRtZWwgb24gQUlYIHBhcnRpdHNpb29uaXRhYmVsLlxuIgorIlx0S2FoanVrcyBlaSBzdXVkYSBMaW51eCBzZWRhIGhldGtlbCB0b2V0YWRhLlxuIgorIlx0U2VsbGVnaXBvb2xlc3QsIG5hdHVrZSBu9XVhbmRlaWQ6XG4iCisiXHQxLiBmZGlzayBo5HZpdGFiIGtpcmp1dGFtaXNlbCBzZWxsZSB0YWJlbGlcbiIKKyJcdDIuIE9sZ2UgZW5uZSBraW5kbGFkLCBldCBzZWUga2V0YXMgZWkgb2xla3Mgb3NhXG4iCisiXHQgICBt9W5lc3Qga/ZpZGV0ZSAodm9sdW1lKSBncnVwaXN0IC0gdmFzdGFzZWwganVodWxcbiIKKyJcdCAgIHb1aXRlIGthIGv2aXRlIHRlaXNlZCBvc2FkIGt1c3R1dGFkYSxcbiIKKyJcdCAgIGt1aSBuYWQganVzdCBwZWVnZWxkYXR1ZCBwb2xlLlx0My4gRW5uZSBm/PxzaWxpc2Uga2V0dGEga3VzdHV0YW1pc3QgIgorImt1c3R1dGFnZVxuIgorIlx0ICAga2V0YXMgbG9vZ2lsaXNlbHQgb21hIEFJWCBtYXNpbmFzdFxuIgorIlx0ICAgKG11aWR1IHNhYWIgVGVpc3QgQUlYcGVydCkuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODEKK21zZ2lkICJTR0kgdm9saGRyIgorbXNnc3RyICJTR0kgdm9saGRyIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODIKK21zZ2lkICJTR0kgdHJrcmVwbCIKK21zZ3N0ciAiU0dJIHRya3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MworbXNnaWQgIlNHSSBzZWNyZXBsIgorbXNnc3RyICJTR0kgc2VjcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg0Cittc2dpZCAiU0dJIHJhdyIKK21zZ3N0ciAiU0dJIHJhdyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg1Cittc2dpZCAiU0dJIGJzZCIKK21zZ3N0ciAiU0dJIGJzZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg2Cittc2dpZCAiU0dJIHN5c3YiCittc2dzdHIgIlNHSSBzeXN2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODcKK21zZ2lkICJTR0kgdm9sdW1lIgorbXNnc3RyICJTR0kgdm9sdW1lIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODgKK21zZ2lkICJTR0kgZWZzIgorbXNnc3RyICJTR0kgZWZzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODkKK21zZ2lkICJTR0kgbHZvbCIKK21zZ3N0ciAiU0dJIGx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MAorbXNnaWQgIlNHSSBybHZvbCIKK21zZ3N0ciAiU0dJIHJ2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MQorbXNnaWQgIlNHSSB4ZnMiCittc2dzdHIgIlNHSSB4ZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MgorbXNnaWQgIlNHSSB4ZnNsb2ciCittc2dzdHIgIlNHSSB4ZnNsb2ciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MworbXNnaWQgIlNHSSB4bHYiCittc2dzdHIgIlNHSSB4bHYiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NAorbXNnaWQgIlNHSSB4dm0iCittc2dzdHIgIlNHSSB4dm0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NSBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAKK21zZ2lkICJMaW51eCBzd2FwIgorbXNnc3RyICJMaW51eGkgc3dhcCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk2IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MQorbXNnaWQgIkxpbnV4IG5hdGl2ZSIKK21zZ3N0ciAiTGludXhpIGFuZG1lZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYzCittc2dpZCAiTGludXggTFZNIgorbXNnc3RyICJMaW51eCBMVk0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5OAorbXNnaWQgIkxpbnV4IFJBSUQiCittc2dzdHIgIkxpbnV4IFJBSUQiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkFjY29yZGluZyB0byBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyB0aGUgTGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gIgorIjUxMiBieXRlc1xuIgorbXNnc3RyICIiCisiVmFzdGF2YWx0IE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHNwZXRzaWZpa2F0c2lvb25pZGVsZSBlaSB0b2hpXG4iCisicGFydGl0c2lvb25pdGFiZWwgb2xsYSBzdXVyZW0ga3VpIDUxMiBiYWl0aVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHNnaSBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKK21zZ3N0ciAiTGVpZHNpbiB2YWxlIGtvbnRyb2xsc3VtbWFnYSBTR0kgcGFydGl0c2lvb25pdGFiZWxpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnNcbiIKKyIlZCBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIktldGFzICVzIChTR0kgcGFydGl0c2lvb25pdGFiZWwpOiAlZCBwZWFkLCAlZCBzZWt0b3JpdFxuIgorIiVkIHNpbGluZHJpdCwgJWQgZvz8c2lsaXN0IHNpbGluZHJpdFxuIgorIiVkIGxpc2FzZWt0b3JpdCByYWphbCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyLcaGlrdWQgPSAlcyBzdXVydXNlZ2EgJWQgKiA1MTIgYmFpdGlcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJLZXRhcyAlcyAoU0dJIHBhcnRpdHNpb29uaXRhYmVsKTogJWQgcGVhZCwgJWQgc2VrdG9yaXQsICVkIHNpbGluZHJpdFxuIgorItxoaWt1ZCA9ICVzIHN1dXJ1c2VnYSAlZCAqIDUxMiBiYWl0aVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiLS0tLS0gcGFydGl0c2lvb25pZCAtLS0tLVxuIgorIk5yIyAlKnMgIEluZm8gICAgIEFsZ3VzICAgICAgIEz1cHAgU2VrdG9yZWlkIElkICBT/HN0ZWVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG4iCisiQm9vdGZpbGU6ICVzXG4iCisiLS0tLS0gRGlyZWN0b3J5IEVudHJpZXMgLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIEJ1dXRpbmZvIC0tLS0tXG4iCisiQnV1dGZhaWw6ICVzXG4iCisiLS0tLS0gS2F0YWxvb2dpa2lyamVkIC0tLS0tXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIgorbXNnc3RyICIlMmQ6ICUtMTBzIHNla3RvciAlNXUgcGlra3VzICU4dVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJJbnZhbGlkIEJvb3RmaWxlIVxuIgorIlx0VGhlIGJvb3RmaWxlIG11c3QgYmUgYW4gYWJzb2x1dGUgbm9uLXplcm8gcGF0aG5hbWUsXG4iCisiXHRlLmcuIFwiL3VuaXhcIiBvciBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlZpZ2FuZSBidXV0ZmFpbCFcbiIKKyJcdEJ1dXRmYWlsIHBlYWIgb2xlbWEgYWJzb2x1dXRzZSB0ZWVnYSBtaXR0ZXT8aGkgc3RyaW5nLFxuIgorIlx0buRpdGVrcyBcIi91bml4XCIgdvVpIFwiL3VuaXguc2F2ZVwiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0TmFtZSBvZiBCb290ZmlsZSB0b28gbG9uZzogIDE2IGJ5dGVzIG1heGltdW0uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEJ1dXRmYWlsaSBuaW1pIG9uIGxpaWdhIHBpa2s6IDE2IGJhaXRpIG9uIG1ha3NpbXVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRCdXV0ZmFpbCB0dWxlYiBhbmRhIHTkaXN0ZWVnYVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEV0dGV2YWF0dXN0LCBidXV0ZmFpbGkgb2xlbWFzb2x1IGVpIGtvbnRyb2xsaXRhLlxuIgorIlx0U0dJIHZhaWtlduTkcnR1cyBvbiBcIi91bml4XCIgamEgdmFydXbk5HJ0dXMgXCIvdW5peC5zYXZlXCJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0VXVla3MgYnV1dGZhaWxpa3Mgb24gXCIlc1wiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICJUYWJlbGlzIG9uIHJvaGVrbSBrdWkg/GtzIHRlcnZlIGtldHRhIGtpcmplXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4MworIywgYy1mb3JtYXQKK21zZ2lkICJObyBwYXJ0aXRpb25zIGRlZmluZWRcbiIKK21zZ3N0ciAi3Gh0ZWdpIHBhcnRpdHNpb29uaSBwb2xlIGRlZmluZWVyaXR1ZFxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiSVJJWGlsZSBtZWVsZGliLCBldCBwYXJ0aXRzaW9vbiAxMSBrYXRhYiBrb2d1IGtldHRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIlRlcnZldCBrZXRhc3Qga2F0dGV2IHBhcnRpdHNpb29uIHBlYWIgYWxnYW1hIGtldHRhcGxva2lzdCAwLCBtaXR0ZSAlZFxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKyJUZXJ2ZXQga2V0YXN0IGthdHRldiBwYXJ0aXRzaW9vbiBvbiBhaW51bHQgJWQgcGxva2tpIHBpa2ssXG4iCisiYWdhIGtldGFzIGlzZSBvbiAlZCBwbG9ra2kgcGlra1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiTWluZ2kgcGFydGl0c2lvb24gKHNvb3ZpdGF2YWx0IG51bWJlciAxMSkgcGVhYiBrYXRtYSBrb2d1IGtldHRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbiAlZCBlaSBhbGdhIHNpbGluZHJpIHBpaXJpbHRcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQYXJ0aXRzaW9vbiAlZCBlaSBs9XBwZSBzaWxpbmRyaSBwaWlyaWxcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIlBhcnRpdHNpb29uaWQgJWQgamEgJWQga2F0dHV2YWQgJWQgc2VrdG9yaSB1bGF0dXNlc1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDg0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgb2YgJTh1IHNlY3RvcnMgLSBzZWN0b3JzICU4dS0ldVxuIgorbXNnc3RyICJLYXN1dGFtYXRhIGF1ayAlOGQgc2VrdG9yaXN0IC0gc2VrdG9yaWQgJThkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkJ1dXRwYXJ0aXRzaW9vbmkgZWkgZWtzaXN0ZWVyaVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTYWFsaW1pc3BhcnRpdHNpb29uaSBlaSBla3Npc3RlZXJpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisiU2FhbGltaXNwYXJ0aXRzaW9vbmlsIHBvbGUgc2FhbGltaXNwYXJ0aXRzaW9vbmkgdPz8cFxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iCittc2dzdHIgIlx0VGUgb2xldGUgdmFsaW51ZCBlYmFoYXJpbGlrdSBidXV0ZmFpbGkgbmltZVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIlT8/HBpIHNhYWIgbXV1dGEgYWludWx0IG1pdHRldPxoamFkZWwgcGFydGl0c2lvb25pZGVsXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzgKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIG9mIHR5cGUgXCJTR0kgdm9saGRyXCIsIHRoZSBJUklYIHN5c3RlbSB3aWxsIHJlbHkgb24gaXQgdG9cbiIKKyJyZXRyaWV2ZSBmcm9tIGl0cyBkaXJlY3Rvcnkgc3RhbmRhbG9uZSB0b29scyBsaWtlIHNhc2ggYW5kIGZ4LlxuIgorIk9ubHkgdGhlIFwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrIHNlY3Rpb24gbWF5IHZpb2xhdGUgdGhpcy5cbiIKKyJUeXBlIFlFUyBpZiB5b3UgYXJlIHN1cmUgYWJvdXQgdGFnZ2luZyB0aGlzIHBhcnRpdGlvbiBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIk9uIPxsaW1hbHQgc29vdml0YXYsIGV0IHBhcnRpdHNpb29uIGFsYXRlcyBwbG9raXN0IDAgb2xla3NcbiIKKyJ0/PxwaSBcIlNHSSB2b2xoZHJcIiwgc2VzdCBJUklYaWwgc/VsdHViIHNlbGxlc3Qgb21hIGJ1dXRpbWlzYWVnc2V0ZVxuIgorInV0aWxpaXRpZGUgKHNhc2gsIGZ4LCBpZGUpIGvkdHRlIHNhYW1pbmUuIEFpbnVsdCBcIlNHSSB2b2x1bWVcIiB0/PxwaVxuIgorInRlcnZlIGtldHRhIGtpcmplIHRvaGliIHNlZGEgcmVlZ2xpdCByaWtrdWRhLlxuIgorIkt1aSBvbGV0ZSBraW5kZWwsIGV0IHNvb3ZpdGUgc2VkYSB0/PxwaSBtdXV0YSwga2lyanV0YWdlIFlFU1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiWUVTXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiS2FzIHRlYXRlLCBldCBt9W5lZCBwYXJ0aXRzaW9vbmlkIGthdHR1dmFkIG9tYXZhaGVsP1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAi3HJpdGFuIGdlbmVyZWVyaWRhIHRlcnZlIGtldHRhIGtpcmpldCBhdXRvbWFhdHNlbHRcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZW50aXJlIGRpc2sgaXMgYWxyZWFkeSBjb3ZlcmVkIHdpdGggcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAiVGVydmUga2V0YXMgb24ganViYSBwYXJ0aXRzaW9vbmlkZWdhIGthZXR1ZFxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICJLZXR0YWwgb24gcGFydGl0c2lvb25pZGUga2F0dHVtaW5lLiBQYXJhbmRhZ2Ugc2VlIGv1aWdlcGVhbHQhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIk9uIPxsaW1hbHQgc29vdml0YXYsIGV0IDExLiBwYXJ0aXRzaW9vbiBrYXRha3Mga29ndSBrZXR0YVxuIgorImphIG9sZWtzIHT8/HBpIFwiU0dJIHZvbHVtZVwiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgZ2V0IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiVGUgYWpha3NpdGUgcGFydGl0c2lvb25pZCBrYXR0dW1hISBQYXJhbmRhZ2Ugc2VlIGv1aWdlcGVhbHQg5HJhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIExhc3QgJXMiCittc2dzdHIgIlZpaW1hbmUgJXMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IFNHSSBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd2lsbCBiZSB1bnJlY292ZXJhYmx5IGxvc3QuXG4iCisiXG4iCittc2dzdHIgIiIKKyJLb29zdGFuIHV1ZSBTR0kgcGFydGl0c2lvb25pdGFiZWxpLiBNdXV0dXNlZCBq5OR2YWQgYWludWx0IG3kbGx1LFxuIgorImt1bmkgVGUgaXNlIG90c3VzdGF0ZSBuZWVkIGtldHRhbGUga2lyanV0YWRhLiBQ5HJhc3Qgc2VkYSBwb2xlIHZhbmEgc2lzdVxuIgorImxvb211bGlrdWx0IGVuYW0gdGFhc3RhdGF2LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzE4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6ICBCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlcy4gIFVzaW5nIGdlb21ldHJ5IGN5bGluZGVyIHZhbHVlIG9mICUiCisiZC5cbiIKKyJUaGlzIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgZm9yIGRldmljZXMgPiAzMy44IEdCLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIGtlZXAgcGFyYW1ldGVycyBvZiBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgItxyaXRhbiBz5GlsaXRhZGEgcGFydGl0c2lvb25pICVkIHBhcmFtZWV0cmlkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSUQ9JTAyeFx0U1RBUlQ9JWRcdExFTkdUSD0lZFxuIgorbXNnc3RyICJJRD0lMDJ4XHRTVEFSVD0lZFx0TEVOR1RIPSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiU3VuT1Mgcm9vdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1Mgc3dhcCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIlRlcnZlIGtldGFzIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQKK21zZ2lkICJTdW5PUyBzdGFuZCIKK21zZ3N0ciAiU3VuT1Mgc3RhbmQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NQorbXNnaWQgIlN1bk9TIHZhciIKK21zZ3N0ciAiU3VuT1MgdmFyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDYKK21zZ2lkICJTdW5PUyBob21lIgorbXNnc3RyICJTdW5PUyBob21lIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIiVkIHZhYmEgc2VrdG9yaXRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4CisjLCBmdXp6eQorbXNnaWQgIlN1bk9TIGNhY2hlZnMiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OQorIywgZnV6enkKK21zZ2lkICJTdW5PUyByZXNlcnZlZCIKK21zZ3N0ciAiU3VuT1MgdXNyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDMKK21zZ2lkICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCittc2dzdHIgIkxpbnV4aSBpc2VhdmFzdHV2IHJhaWQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorIkxlaWRzaW4gdmFsZSBrb250cm9sbHN1bW1hZ2EgU3VuaSBwYXJ0aXRzaW9vbml0YWJlbGkuXG4iCisiVPVlbuRvbGlzZWx0IHR1bGViIFRlaWwgc2VhZGEga/VpayB25ORydHVzZWQsIHMudC5cbiIKKyJwZWFkZSwgc2VrdG9yaXRlIGphIHNpbGluZHJpdGUgYXJ2IG5pbmcgcGFydGl0c2lvb25pZFxuIgorInb1aSBsdXVhIHV1cyB0YWJlbCAoa+RzdWdhIHMgcPVoaW1lbvz8c3QpLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgdmVyc2lvbiBbMHglMDh4XS5cbiIKK21zZ3N0ciAiTGVpZHNpbiB2YWxlIGtvbnRyb2xsc3VtbWFnYSBTR0kgcGFydGl0c2lvb25pdGFiZWxpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBzYW5pdHkgWzB4JTA4eF0uXG4iCittc2dzdHIgIkxlaWRzaW4gdmFsZSBrb250cm9sbHN1bW1hZ2EgU0dJIHBhcnRpdHNpb29uaXRhYmVsaVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgbnVtX3BhcnRpdGlvbnMgWyV1XS5cbiIKK21zZ3N0ciAiTGVpZHNpbiB2YWxlIGtvbnRyb2xsc3VtbWFnYSBTR0kgcGFydGl0c2lvb25pdGFiZWxpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBXcm9uZyB2YWx1ZXMgbmVlZCB0byBiZSBmaXhlZCB1cCBhbmQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyhyaXRlKVxuIgorbXNnc3RyICIiCisiSG9pYXR1czogdmlnYW5lIGxpcHAgMHglMDR4IChwYXJ0aXRzaW9vbml0YWJlbGlzICVkKSBwYXJhbmRhdGFrc2VcbiIKKyJraXJqdXRhbWlzZWwgKHcpIORyYVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBzdW4gZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiS29vc3RhbiB1dWUgU3VuaSBwYXJ0aXRzaW9vbml0YWJlbGkuIE11dXR1c2VkIGrk5HZhZCBhaW51bHQgbeRsbHUsXG4iCisia3VuaSBUZSBpc2Ugb3RzdXN0YXRlIG5lZWQga2V0dGFsZSBraXJqdXRhZGEuIFDkcmFzdCBzZWRhIHBvbGUgdmFuYSBzaXN1XG4iCisibG9vbXVsaWt1bHQgZW5hbSB0YWFzdGF0YXYuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICJTZWt0b3JlaWQgcmFqYWwiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXNuJ3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIlBhcnRpdHNpb29uICVkIGVpIGz1cHBlIHNpbGluZHJpIHBpaXJpbFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBvdmVybGFwcyB3aXRoIG90aGVycyBpbiBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIlBhcnRpdHNpb29uICVkIGthdHR1YiB0ZWlzdGVnYSBzZWt0b3JpdGVzICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICJLYXN1dGFtYXRhIHZhaGVtaWsgLSBzZWt0b3JpZCAwLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJLYXN1dGFtYXRhIHZhaGVtaWsgLSBzZWt0b3JpZCAlZC0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdGhlciBwYXJ0aXRpb25zIGFscmVhZHkgY292ZXIgdGhlIHdob2xlIGRpc2suXG4iCisiRGVsZXRlIHNvbWUvc2hyaW5rIHRoZW0gYmVmb3JlIHJldHJ5LlxuIgorbXNnc3RyICIiCisiVGVpc2VkIHBhcnRpdHNpb29uaWQga2F0YXZhZCBqdWJhIGtvZ3Uga2V0dGEuXG4iCisiS3VzdHV0YWdlIHb1aSB25GhlbmRhZ2UgbmVpc3QgbfVuZGEgamEgcHJvb3ZpZ2UgdXVlc3RpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiT24g/GxpbWFsdCBzb292aXRhdiwgZXQgMTEuIHBhcnRpdHNpb29uIGthdGFrcyBrb2d1IGtldHRhXG4iCisiamEgb2xla3MgdPz8cGkgXCJTR0kgdm9sdW1lXCJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAiU2VrdG9yJWQgb24ganViYSBrYXN1dHVzZWxcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmVuJ3QgY292ZXJlZCB0aGUgd2hvbGUgZGlzayB3aXRoIHRoZSAzcmQgcGFydGl0aW9uLCBidXQgeW91ciB2YWx1ZVxuIgorIiVkICVzIGNvdmVycyBzb21lIG90aGVyIHBhcnRpdGlvbi4gWW91ciBlbnRyeSBoYXMgYmVlbiBjaGFuZ2VkXG4iCisidG8gJWQgJXNcbiIKK21zZ3N0ciAiIgorIktvbG1hcyBwYXJ0aXRzaW9vbiBlaSBrYXRhIGtvZ3Uga2V0YXN0LCBhZ2Egc2lzZXNhdHVkIHbk5HJ0dXMgJWQgJXNcbiIKKyJrYXRhYiBtaW5naSBtdXUgcGFydGl0c2lvb25pLiBTaXNlc3RhdHVkIGtpcmplIHV1ZWtzIHbk5HJ0dXNla3Mgb24gJWQgJXNcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWYgeW91IHdhbnQgdG8gbWFpbnRhaW4gU3VuT1MvU29sYXJpcyBjb21wYXRpYmlsaXR5LCBjb25zaWRlciBsZWF2aW5nIHRoaXNcbiIKKyJwYXJ0aXRpb24gYXMgV2hvbGUgZGlzayAoNSksIHN0YXJ0aW5nIGF0IDAsIHdpdGggJXUgc2VjdG9yc1xuIgorbXNnc3RyICIiCisiS3VpIHNvb3ZpdGUgaG9pZGEg/GhpbGR1dnVzdCBTdW5PUydpL1NvbGFyaXNlZ2EsIGrkdGtlIHNlZSBwYXJ0aXRzaW9vblxuIgorImtvZ3Uga2V0YXN0IGthdG1hICg1KSwgYWxndXNla3MgMCwgcGlra3VzZWtzICV1IHNla3Rvcml0XG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIFVGUywgRVhUMkZTIGZpbGVzeXN0ZW0gb3IgU3VuT1Mgc3dhcC4gUHV0dGluZyBMaW51eCBzd2FwXG4iCisidGhlcmUgbWF5IGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUgYW5kIGJvb3RibG9jay5cbiIKKyJUeXBlIFlFUyBpZiB5b3UncmUgdmVyeSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRoYXQgcGFydGl0aW9uXG4iCisidGFnZ2VkIHdpdGggODIgKExpbnV4IHN3YXApOiAiCittc2dzdHIgIiIKKyJPbiD8bGltYWx0IHNvb3ZpdGF2LCBldCBwYXJ0aXRzaW9vbiwgbWlzIGFsZ2FiIDAuIHNla3RvcmlzdFxuIgorIm9sZWtzIFVGUywgRVhUMkZTIHb1aSBTdW5PU2kgc2FhbGltaXNhbGEuIExpbnV4aSBzYWFsaW1pc2FsYVxuIgorInNpbm5hIGtpcmp1dGFtaW5lIHb1aWIgaOR2aXRhZGEgcGFydGl0c2lvb25pdGFiZWxpIGphIGFsZ2xhYWRlcGxva2kuXG4iCisic2lzZXN0YWdlIFlFUywga3VpIG9sZXRlIHT1ZGVzdGkga2luZGxhZCwgZXQgdGFoYXRlIHBhcnRpdHNpb29uaSB0/PxiaWtzXG4iCisicGFubmEgODIgKExpbnV4aSBzYWFsaW1pc2FsYSk6IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBycG1cbiIKKyIlZCBjeWxpbmRlcnMsICVkIGFsdGVybmF0ZSBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiTGFiZWwgSUQ6ICVzXG4iCisiVm9sdW1lIElEOiAlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIktldGFzICVzIChTdW5pIHBhcnRpdHNpb29uaXRhYmVsKTogJWQgcGVhZCwgJWQgc2VrdG9yaXQsICVkIHJwbVxuIgorIiVkIHNpbGluZHJpdCwgJWQgYWx0ZXJuYXRpaXZzZXQgc2lsaW5kcml0LCAlZCBm/PxzaWxpc3Qgc2lsaW5kcml0XG4iCisiJWQgbGlzYXNla3Rvcml0IHNpbGluZHJpbCwgdmFoZWxlauR0dCAlZDoxXG4iCisiJXNcbiIKKyLcaGlrdWQgPSAlcyBzdXVydXNlZ2EgJWQgKiA1MTIgYmFpdGlcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiS2V0YXMgJXMgKFN1bmkgcGFydGl0c2lvb25pdGFiZWwpOiAlZCBwZWFkLCAlZCBzZWt0b3JpdCwgJWQgc2lsaW5kcml0XG4iCisi3Ghpa3VkID0gJXMgc3V1cnVzZWdhICVkICogNTEyIGJhaXRpXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEZsYWcgICAgU3RhcnQgICAgICAgRW5kICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIExpcHAgICAgQWxndXMgICAgICAgTPVwcCAgIFBsb2trZSAgIElEICBT/HN0ZWVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MjUKK21zZ2lkICJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiQWx0ZXJuYXRpaXZzZXRlIHNpbGluZHJpdGUgYXJ2IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjM3Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIkxpc2FzZWt0b3JlaWQgc2lsaW5kcmlsIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjQ0Cittc2dpZCAiSW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIlZhaGVsZWrkdHUgdGVndXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTEKK21zZ2lkICJSb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiUPb2cmxlbWlza2lpcnVzIChycG0pIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjU4Cittc2dpZCAiTnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIKK21zZ3N0ciAiRvz8c2lsaXN0ZSBzaWxpbmRyaXRlIGFydiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIlT8aGkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICJGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4Cittc2dpZCAiWEVOSVggcm9vdCIKK21zZ3N0ciAiWEVOSVggcm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5Cittc2dpZCAiWEVOSVggdXNyIgorbXNnc3RyICJYRU5JWCB1c3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAKK21zZ2lkICJGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjExCittc2dpZCAiRXh0ZW5kZWQiCittc2dzdHIgIkV4dGVuZGVkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIGJ1dXRpdiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNgorbXNnaWQgIk9TLzIgQm9vdCBNYW5hZ2VyIgorbXNnc3RyICJPUy8yIEJvb3QgTWFuYWdlciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNworIywgZnV6enkKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIldpbjk1IEZBVDMyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE4CisjLCBmdXp6eQorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiV2luOTUgRkFUMzIgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTkKKyMsIGZ1enp5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJXaW45NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMAorIywgZnV6enkKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIldpbjk1IEV4dCdkIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIxCittc2dpZCAiT1BVUyIKK21zZ3N0ciAiT1BVUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMgorbXNnaWQgIkhpZGRlbiBGQVQxMiIKK21zZ3N0ciAiUGVpZGV0dWQgRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjMKK21zZ2lkICJDb21wYXEgZGlhZ25vc3RpY3MiCittc2dzdHIgIkNvbXBhcSBkaWFnbm9zdGlrYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICJQZWlkZXR1ZCBGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI1Cittc2dpZCAiSGlkZGVuIEZBVDE2IgorbXNnc3RyICJQZWlkZXR1ZCBGQVQxNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNgorbXNnaWQgIkhpZGRlbiBIUEZTL05URlMiCittc2dzdHIgIlBlaWRldHVkIEhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJBU1QgU21hcnRTbGVlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorIywgZnV6enkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIgorbXNnc3RyICJQZWlkZXR1ZCBXaW45NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOQorIywgZnV6enkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJQZWlkZXR1ZCBXaW45NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMAorIywgZnV6enkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJQZWlkZXR1ZCBXaW45NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNAorbXNnaWQgIlZlbml4IDgwMjg2IgorbXNnc3RyICJWZW5peCA4MDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNQorbXNnaWQgIlBQQyBQUmVQIEJvb3QiCittc2dzdHIgIlBQQyBQcmVQIEJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMi4gcGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDMuIHBhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDAKK21zZ2lkICJPblRyYWNrIERNIgorbXNnc3RyICJPblRyYWNrIERNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQxCittc2dpZCAiT25UcmFjayBETTYgQXV4MSIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MgorbXNnaWQgIkNQL00iCittc2dzdHIgIkNQL00iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDMKK21zZ2lkICJPblRyYWNrIERNNiBBdXgzIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ0Cittc2dpZCAiT25UcmFja0RNNiIKK21zZ3N0ciAiT25UcmFjayBETTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDUKK21zZ2lkICJFWi1Ecml2ZSIKK21zZ3N0ciAiRVotRHJpdmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDYKK21zZ2lkICJHb2xkZW4gQm93IgorbXNnc3RyICJHb2xkZW4gQm93IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ3Cittc2dpZCAiUHJpYW0gRWRpc2siCittc2dzdHIgIlByaWFtIEVkaXNrIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTIKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OQorbXNnaWQgIlNwZWVkU3RvciIKK21zZ3N0ciAiU3BlZWRTdG9yIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ5Cittc2dpZCAiR05VIEhVUkQgb3IgU3lzViIKK21zZ3N0ciAiR05VIEhVUkQgdvVpIFN5c1YiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTAKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAyODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MQorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDM4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMzg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUyCittc2dpZCAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorbXNnc3RyICJEaXNjU2VjdXJlIE11bHRpLUJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTMKK21zZ2lkICJQQy9JWCIKK21zZ3N0ciAiUEMvSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTQKK21zZ2lkICJPbGQgTWluaXgiCittc2dzdHIgIlZhbmEgTWluaXgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTUKK21zZ2lkICJNaW5peCAvIG9sZCBMaW51eCIKK21zZ3N0ciAiTWluaXggLyB2YW5hIExpbnV4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2CisjLCBmdXp6eQorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eGkgc3dhcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIHBlaWRldHVkIEM6IGtldGFzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU5Cittc2dpZCAiTGludXggZXh0ZW5kZWQiCittc2dzdHIgIkxpbnV4IGV4dGVuZGVkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIk5URlMgdm9sdW1lIHNldCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorIywgZnV6enkKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIkxpbnV4IGV4dDMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjQKK21zZ2lkICJBbW9lYmEiCittc2dzdHIgIkFtb2ViYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NQorbXNnaWQgIkFtb2ViYSBCQlQiCittc2dzdHIgIkFtb2ViYSBCQlQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjYKK21zZ2lkICJCU0QvT1MiCittc2dzdHIgIkJTRC9PUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NworbXNnaWQgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKK21zZ3N0ciAiSUJNIFRoaW5rcGFkIGhpYmVybmF0c2lvb24iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjgKK21zZ2lkICJGcmVlQlNEIgorbXNnc3RyICJGcmVlQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY5Cittc2dpZCAiT3BlbkJTRCIKK21zZ3N0ciAiT3BlbkJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MAorbXNnaWQgIk5lWFRTVEVQIgorbXNnc3RyICJOZVhUU1RFUCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MQorbXNnaWQgIkRhcndpbiBVRlMiCittc2dzdHIgIkRhcndpbiBVRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzIKK21zZ2lkICJOZXRCU0QiCittc2dzdHIgIk5ldEJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MworbXNnaWQgIkRhcndpbiBib290IgorbXNnc3RyICJEYXJ3aW4gYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NAorIywgZnV6enkKK21zZ2lkICJIRlMgLyBIRlMrIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzUKK21zZ2lkICJCU0RJIGZzIgorbXNnc3RyICJCU0RJIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc2Cittc2dpZCAiQlNESSBzd2FwIgorbXNnc3RyICJCU0RJIHN3YXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIkJvb3QgV2l6YXJkIHBlaWRldHVkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICJTb2xhcmlzIGJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzkKKyMsIGZ1enp5Cittc2dpZCAiU29sYXJpcyIKK21zZ3N0ciAiU29sYXJpcyBib290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgwCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTIpIgorbXNnc3RyICJEUkRPUyBzZWt1bmQuIChGQVQtMTIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgxCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorbXNnc3RyICJEUkRPUyBzZWt1bmQuIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUyBzZWt1bmQuIChGQVQtMTYpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgzCittc2dpZCAiU3lyaW54IgorbXNnc3RyICJTeXJpbngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODQKK21zZ2lkICJOb24tRlMgZGF0YSIKK21zZ3N0ciAiTWl0dGUtRlMgYW5kbWVkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg1Cittc2dpZCAiQ1AvTSAvIENUT1MgLyAuLi4iCittc2dzdHIgIkNQL00gLyBDVE9TIC8gLi4uIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg3Cittc2dpZCAiRGVsbCBVdGlsaXR5IgorbXNnc3RyICJEZWxsIFV0aWxpdHkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODgKK21zZ2lkICJCb290SXQiCittc2dzdHIgIkJvb3RJdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OQorbXNnaWQgIkRPUyBhY2Nlc3MiCittc2dzdHIgIkRPUyBhY2Nlc3MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTEKK21zZ2lkICJET1MgUi9PIgorbXNnc3RyICJET1MgUi9PIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk0Cittc2dpZCAiQmVPUyBmcyIKK21zZ3N0ciAiQmVPUyBmcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorIywgZnV6enkKK21zZ2lkICJHUFQiCittc2dzdHIgIkVGSSBHUFQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIkVGSSAoRkFULTEyL0ZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTcKK21zZ2lkICJMaW51eC9QQS1SSVNDIGJvb3QiCittc2dzdHIgIkxpbnV4L1BBLVJJU0MgYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1Mgc2VrdW5kYWFybmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAxCittc2dpZCAiVk13YXJlIFZNRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDIKK21zZ2lkICJWTXdhcmUgVk1LQ09SRSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNgorbXNnaWQgIkxBTnN0ZXAiCittc2dzdHIgIkxBTnN0ZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA3Cittc2dpZCAiQkJUIgorbXNnc3RyICJCQlQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yIG9uICVzIC0gY2Fubm90IHNlZWsgdG8gJWx1XG4iCittc2dzdHIgIlBvc3Rpc2lvbmVlcmltaXNlIHZpZ2Egc2VhZG1lbCAlcyAtIGVpIHNhYSBtaW5uYSBwb3NpdHNpb29uaWxlICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgIlBvc2l0c2lvbmVlcmltaXNlIHZpZ2E6IHRhaHRzaW4gMHglMDh4JTA4eCwgc2FpbiAweCUwOHglMDh4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiTeRsdSBzYWkgb3RzYSAtIGFubmFuIGFsbGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIwIGZkaXNrL3NmZGlzay5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGVycm9yIG9uICVzIC0gY2Fubm90IHJlYWQgc2VjdG9yICVsdVxuIgorbXNnc3RyICJMdWdlbWlzdmlnYSBzZWFkbWVsICVzIC0gZWkgc2FhIGx1Z2VkYSBzZWt0b3JpdCAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkVSUk9SOiBzZWN0b3IgJWx1IGRvZXMgbm90IGhhdmUgYW4gbXNkb3Mgc2lnbmF0dXJlXG4iCittc2dzdHIgIlZJR0E6IHNla3RvciAlbHUgZWkgc2lzYWxkYSBtc2RvcydpIHNpZ25hdHV1cmlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzIC0gY2Fubm90IHdyaXRlIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiS2lyanV0YW1pc3ZpZ2Egc2VhZG1lbCAlcyAtIGVpIHNhYSBraXJqdXRhZGEgc2VrdG9yaXQgJWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIkVpIHN1dWRhIGF2YWRhIHBhcnRpdHNpb29uaXRhYmVsaSBzYWx2ZXN0dXNmYWlsaSAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICJLaXJqdXRhbWlzZSB2aWdhIHNlYWRtZWwgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJFaSBzYWEgbHVnZWRhIHBhcnRpdHNpb29uaXRhYmVsaSBzYWx2ZXN0dXNmYWlsaSBzdGFhdHVzdCAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0MAorbXNnaWQgInBhcnRpdGlvbiByZXN0b3JlIGZpbGUgaGFzIHdyb25nIHNpemUgLSBub3QgcmVzdG9yaW5nXG4iCittc2dzdHIgIlBhcnRpdHNpb29uaXRhYmVsaSBzYWx2ZXN0dXNmYWlsIG9uIHZhbGUgcGlra3VzZWdhIC0gZWkgdGFhc3RhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/XG4iCittc2dzdHIgIk3kbHUgc2FpIG90c2FcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJFaSBzYWEgYXZhZGEgcGFydGl0c2lvb25pdGFiZWxpIHNhbHZlc3R1c2ZhaWxpICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiVmlnYSAlcyBsdWdlbWlzZWxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIGRldmljZSAlcyBmb3Igd3JpdGluZ1xuIgorbXNnc3RyICJlaSBzdXVkYSBhdmFkYSBzZWFkZXQgJXMga2lyanV0YW1pc2Vrc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzZWN0b3IgJWx1IG9uICVzXG4iCittc2dzdHIgIlZpZ2Egc2VrdG9yaSAlbHUga2lyanV0YW1pc2VsIHNlYWRtZWxlICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IGdlb21ldHJ5XG4iCittc2dzdHIgIktldGFzICVzOiBlaSBzdXVkYSBnZW9tZWV0cmlhdCBraW5kbGFrcyB0ZWhhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ1NworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IHNpemVcbiIKK21zZ3N0ciAiS2V0YXMgJXM6IGVpIHN1dWRhIG1haHR1IGtpbmRsYWtzIHRlaGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzdGFydD0lbHUgLSB0aGlzIGxvb2tzIGxpa2UgYSBwYXJ0aXRpb24gcmF0aGVyIHRoYW5cbiIKKyJ0aGUgZW50aXJlIGRpc2suIFVzaW5nIGZkaXNrIG9uIGl0IGlzIHByb2JhYmx5IG1lYW5pbmdsZXNzLlxuIgorIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIgorbXNnc3RyICIiCisiSG9pYXR1czogc3RhcnQ9JWx1IC0gc2VlIHBhaXN0YWIgb2xldmF0IHBpZ2VtIHBhcnRpdHNpb29uIGt1aVxuIgorInRlcnZlIGtldGFzLiBmZGlza2kga2FzdXRhbWluZSBvbiBpbG1zZWx0IG31dHRldHUuXG4iCisiS2FzdXRhZ2UgLS1mb3JjZSB29XRpdCwga3VpIHT1ZXN0aSB0YWhhdGUgc2VkYSB0ZWhhLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAiSG9pYXR1czogSERJT19HRVRHRU8g/HRsZXMsIGV0IHNlYWRtZWwgb24gJWx1IHBlYWRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IHNlY3RvcnNcbiIKK21zZ3N0ciAiSG9pYXR1czogSERJT19HRVRHRU8g/HRsZXMsIGV0IHNlYWRtZWwgb24gJWx1IHNla3Rvcml0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGN5bGluZGVyc1xuIgorbXNnc3RyICJIb2lhdHVzOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIPx0bGVzLCBldCBzZWFkbWVsIG9uICVsdSBzaWxpbmRyaXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1bmxpa2VseSBudW1iZXIgb2Ygc2VjdG9ycyAoJWx1KSAtIHVzdWFsbHkgYXQgbW9zdCA2M1xuIgorIlRoaXMgd2lsbCBnaXZlIHByb2JsZW1zIHdpdGggYWxsIHNvZnR3YXJlIHRoYXQgdXNlcyBDL0gvUyBhZGRyZXNzaW5nLlxuIgorbXNnc3RyICIiCisiSG9pYXR1czogZWJhdPVlbuRvbGluZSBzZWt0b3JpdGUgYXJ2IHJhamFsICglbHUpIC0gaGFyaWxpa3VsdCBrdW5pIDYzXG4iCisiU2VlIHRla2l0YWIgcHJvYmxlZW1lIGv1aWdpIHByb2dyYW1taWRlZ2EsIG1pcyD8cml0YXZhZCBrYXN1dGFkYVxuIgorIkMvSC9TIChzaWxpbmRlci9wZWEvc2VrdG9yKSBhZHJlc3NlZXJpbWlzdC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbHUgY3lsaW5kZXJzLCAlbHUgaGVhZHMsICVsdSBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiIKKyJcbiIKKyJLZXRhcyAlczogJWx1IHNpbGluZHJpdCwgJWx1IHBlYWQsICVsdSBzZWt0b3JpdCByYWphbFxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKyIlcyBwYXJ0aXRzaW9vbmlsICVzIHNpc2FsZGFiIHZpZ2FzdCBwZWFkIG51bWJyaXQ6ICVsdSAocGVha3Mgb2xlbWEgMC0lbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBzZWN0b3I6ICVsdSAoc2hvdWxkIGJlIGluIDEtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIHBhcnRpdHNpb29uaWwgJXMgc2lzYWxkYWIgdmlnYXN0IHNla3RvcmkgduTkcnR1c3Q6ICVsdSAocGVha3Mgb2xlbWEgMS0lIgorImx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgY3lsaW5kZXJzOiAlbHUgKHNob3VsZCBiZSBpbiAwLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyBwYXJ0aXRzaW9vbmlsICVzIHNpc2FsZGFiIHZpZ2FzdCBzaWxpbmRyaSB25ORydHVzdDogJWx1IChwZWFrcyBvbGVtYSAwLSUiCisibHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWQgIE5hbWVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIklEICBOaW1pXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iCittc2dzdHIgIkxvZW4gdXVlc3RpIHBhcnRpdHNpb29uaXRhYmVsaXQuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCisjLCBmdXp6eQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKyJQYXJ0aXRzaW9vbml0YWJlbGkg/GxlbHVnZW1pbmUgZWkg9W5uZXN0dW51ZFxuIgorIlRlaGtlIGFydnV0aWxlIGtvaGUgYWxnbGFhZGltaW5lLCBlbm5lIG1rZnMga2FzdXRhbWlzdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2xvc2luZyAlc1xuIgorbXNnc3RyICJWaWdhICVzIHN1bGdlbWlzZWxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBzdWNoIHBhcnRpdGlvblxuIgorbXNnc3RyICIlczogc2VsbGlzdCBwYXJ0aXRzaW9vbmkgZWkgb2xlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg3OAorbXNnaWQgInVucmVjb2duaXplZCBmb3JtYXQgLSB1c2luZyBzZWN0b3JzXG4iCittc2dzdHIgIlR1bmRtYXR1IGZvcm1hYXQgLSBrYXN1dGFuIHNla3RvcmVpZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5pbXBsZW1lbnRlZCBmb3JtYXQgLSB1c2luZyAlc1xuIgorbXNnc3RyICJTZWRhIGZvcm1hYXRpIHBvbGUgdmVlbCByZWFsaXNlZXJpdHVkIC0ga2FzdXRhbiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gY3lsaW5kZXJzIG9mICVsdSBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorItxoaWt1ZCA9IHNpbGluZHJpZCAlbHUgYmFpZGlnYSwgcGxva2lkIDEwMjQgYmFpZGlnYSwgbG9lbmRhbiBhbGF0ZXMgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBTZWFkZSAgQnV1dCBBbGd1cyAgICAgTPVwcCAgICNzaWwgICAgICNwbG9ra2UgICBJRCAgU/xzdGVlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gc2VjdG9ycyBvZiA1MTIgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorItxoaWt1ZCA9IHNla3RvcmlkIDUxMiBiYWlkaWdhLCBsb2VuZGFuIGFsYXRlcyAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICAgU3RhcnQgICAgICAgRW5kICAgI3NlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgU2VhZGUgIEJ1dXQgICAgQWxndXMgICAgICBM9XBwICAgI3Nla3RvcnMgIElEICBT/HN0ZWVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisi3Ghpa3VkID0gMTAyNC1iYWlkaXNlZCBwbG9raWQsIGxvZW5kYW4gYWxhdGVzICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgIFN0YXJ0ICAgICAgIEVuZCAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBTZWFkZSAgQnV1dCAgIEFsZ3VzICAgICAgTPVwcCAgICAjcGxva2tlICAgSUQgIFP8c3RlZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorItxoaWt1ZCA9IG1lZ2FiYWlkaWQgKDEwNDg1NzYgYmFpdGkpLCBwbG9raWQgKDEwMjQgYmFpdGkpLCBsb2VuZGFuIGFsYXRlcyAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgIE1pQiAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBTZWFkZSAgQnV1dCBBbGd1cyAgIEz1cHAgICAgTUIgICAgI3Bsb2trZSAgIElEICBT/HN0ZWVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJcdFx0YWxndXM6IChjLGgscykgb290YXNpbiAoJWxkLCVsZCwlbGQpLCBzYWluICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMAorIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0ZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJcdFx0bPVwcDogKGMsaCxzKSBvb3Rhc2luICglbGQsJWxkLCVsZCksIHNhaW4gKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAiUGFydGl0c2lvb24gbPVwZWIgc2lsaW5kcmlsICVsZCwgdGFnYXBvb2wga2V0dGEgbPVwcHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiRWkgbGVpZG51ZCD8aHRlZ2kgcGFydGl0c2lvb25pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFRoZSBwYXJ0aXRpb24gdGFibGUgbG9va3MgbGlrZSBpdCB3YXMgbWFkZVxuIgorIiAgZm9yIEMvSC9TPSovJWxkLyVsZCAoaW5zdGVhZCBvZiAlbGQvJWxkLyVsZCkuXG4iCisiRm9yIHRoaXMgbGlzdGluZyBJJ2xsIGFzc3VtZSB0aGF0IGdlb21ldHJ5LlxuIgorbXNnc3RyICIiCisiSG9pYXR1czogdHVuZHViLCBldCBzZWUgcGFydGl0c2lvb25pdGFiZWwgdGVodGkgZ2VvbWVldHJpYVxuIgorIkMvSC9TPSovJWxkLyVsZCBqYW9rcyAobWl0dGUgJWxkLyVsZC8lbGQpLlxuIgorIkVlbGRhbiBzZWRhIGdlb21lZXRyaWF0IG5pbWVraXJqYSBu5Gl0YW1pc2VsLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIlBhcnRpdHNpb29uaXRhYmVsaXQgZWkgb2xlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RyYW5nZSwgb25seSAlZCBwYXJ0aXRpb25zIGRlZmluZWQuXG4iCittc2dzdHIgIkltZWxpaywgYWludWx0ICAlZCBwYXJ0aXRzaW9vbmkgb24gZGVmaW5lZXJpdWRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBidXQgaXMgbm90IG1hcmtlZCBFbXB0eVxuIgorbXNnc3RyICJIb2lhdHVzOiBwYXJ0aXRzaW9vbiAlcyBvbiBzdXVydXNlZ2EgMCwgYWdhIHBvbGUgbeRyZ2l0dWQgdPxoamFrc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBpcyBib290YWJsZVxuIgorbXNnc3RyICJIb2lhdHVzOiBwYXJ0aXRzaW9vbiAlcyBvbiBzdXVydXNlZ2EgMCwga3VpZCBvbiBt5HJnaXR1ZCBidXV0aXZha3NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgbm9uemVybyBzdGFydFxuIgorbXNnc3RyICJIb2lhdHVzOiBwYXJ0aXRzaW9vbiAlcyBvbiBzdXVydXNlZ2EgMCwga3VpZCBhbGd1cyBwb2xlIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICJIb2lhdHVzOiBwYXJ0aXRzaW9vbiAlcyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgbm90IGNvbnRhaW5lZCBpbiBwYXJ0aXRpb24gJXNcbiIKK21zZ3N0ciAiZWkgc2lzYWxkdSBwYXJ0aXRzaW9vbmlzICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9ucyAlcyAiCittc2dzdHIgIkhvaWF0dXM6IHBhcnRpdHNpb29uaWQgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgImphICVzIGthdHR1dmFkXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorIkhvaWF0dXM6IHBhcnRpdHNpb29uICVzIHNpc2FsZGFiIG9zYSBwYXJ0aXRzaW9vbml0YWJlbGlzdCAoc2VrdG9yICVsdSlcbiIKKyJqYSBo5HZpdGFiIHNlbGxlLCBrdWkgdGEgYW5kbWV0ZWdhIHTkaWRldGFrc2VcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgc3RhcnRzIGF0IHNlY3RvciAwXG4iCittc2dzdHIgIkhvaWF0dXM6IHBhcnRpdHNpb29uICVzIGFsZ2FiIHNla3RvcmlsdCAwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGV4dGVuZHMgcGFzdCBlbmQgb2YgZGlza1xuIgorbXNnc3RyICJIb2lhdHVzOiBwYXJ0aXRzaW9vbiAlcyBz9WlkYWIg/GxlIGtldHRhIG90c2FcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorIkFpbnVsdCD8a3MgcHJpbWFhcnNldGVzdCBwYXJ0aXRzaW9vbmlkZXN0IHRvaGliIG9sbGEgZXh0ZW5kZWRcbiIKKyIoa3VpZ2kgc2VlIHBvbGUgTGludXhpcyBwcm9ibGVlbWlrcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJIb2lhdHVzOiBwYXJ0aXRzaW9vbiAlcyBlaSBhbGdhIHNpbGluZHJpIHBpaXJpbHRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI5MworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3QgZW5kIGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiSG9pYXR1czogcGFydGl0c2lvb24gJXMgZWkgbPVwcGUgc2lsaW5kcmkgcGlpcmlsXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiSG9pYXR1czogcm9oa2VtIGt1aSD8a3MgcHJpbWFhcm5lIHBhcnRpdHNpb29uIG9uIG3kcmdpdHVkIGJ1dXRpdmFrcyAiCisiKGFrdGlpdnNla3MpLlxuIgorIkxJTE8gamFva3MgcG9sZSBzZWUgb2x1bGluZSwgYWdhIERPUy1pIE1CUiB29WliIGJ1dXRpbWlzZWwgcmFza3VzdGVzc2UgIgorInNhdHR1ZGEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTgKK21zZ2lkICIiCisiV2FybmluZzogdXN1YWxseSBvbmUgY2FuIGJvb3QgZnJvbSBwcmltYXJ5IHBhcnRpdGlvbnMgb25seVxuIgorIkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIgorbXNnc3RyICIiCisiSG9pYXR1czogaGFyaWxpa3VsdCBzYWFiIGJ1dXRpZGEgYWludWx0IHByaW1hYXJzZXRlbHQgcGFydGl0c2lvb25pZGVsdCxcbiIKKyJhaW51bHQgTElMTyBpZ25vcmVlcmliIGJ1dWRpdGF2dXNlIGxpcHB1LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzI0Cittc2dpZCAiIgorIldhcm5pbmc6IG5vIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJIb2lhdHVzOiD8a3NraSBwcmltYWFybmUgcGFydGl0c2lvb24gcG9sZSBt5HJnaXR1ZCBidXV0aXZha3MgKGFrdGlpdnNla3MpLlxuIgorIlNlZSBwb2xlIExJTE8gamFva3Mgb2x1bGluZSwgYWdhIERPUy1pIE1CUiBlaSBzdXVkYSBzaWl0IGtldHRhbHQgYnV1dGlkYS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMzOAorbXNnaWQgInN0YXJ0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInBhcnRpdGlvbiAlczogc3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0NworIywgZnV6enkKK21zZ2lkICJlbmQiCittc2dzdHIgIkVuZCIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzaGlmdGVkIHN0YXJ0IG9mIHRoZSBleHRkIHBhcnRpdGlvbiBmcm9tICVsZCB0byAlbGRcbiIKKyIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzODQKK21zZ2lkICIiCisiV2FybmluZzogZXh0ZW5kZWQgcGFydGl0aW9uIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnkuXG4iCisiRE9TIGFuZCBMaW51eCB3aWxsIGludGVycHJldCB0aGUgY29udGVudHMgZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJIb2lhdHVzOiBleHRlbmRlZCBwYXJ0aXRzaW9vbiBlaSBhbGdhIHNpbGluZHJpIHBpaXJpbHQuXG4iCisiRE9TIGphIExpbnV4IGludGVycHJldGVlcml2YWQgc2VsbGUgc2lzdSBlcmluZXZhbHQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MDIgZmRpc2svc2ZkaXNrLmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zIC0gaWdub3JpbmcgdGhvc2UgcGFzdCBuciAoJWQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQxNworbXNnaWQgInRyZWUgb2YgcGFydGl0aW9ucz9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTI1Cittc2dpZCAiZGV0ZWN0ZWQgRGlzayBNYW5hZ2VyIC0gdW5hYmxlIHRvIGhhbmRsZSB0aGF0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUzMgorbXNnaWQgIkRNNiBzaWduYXR1cmUgZm91bmQgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iCittc2dzdHIgIlBhcnRpdHNpb29uaXRhYmVsaXQgZWkgb2xlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzMgorbXNnaWQgIkZhaWxlZCBzYXZpbmcgdGhlIG9sZCBzZWN0b3JzIC0gYWJvcnRpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjM3IGZkaXNrL3NmZGlzay5jOjE2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHdyaXRpbmcgdGhlIHBhcnRpdGlvbiBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3MTkKK21zZ2lkICJsb25nIG9yIGluY29tcGxldGUgaW5wdXQgbGluZSAtIHF1aXR0aW5nXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc1NQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogYD0nIGV4cGVjdGVkIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogdW5leHBlY3RlZCBjaGFyYWN0ZXIgJWMgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxODEwCittc2dpZCAibnVtYmVyIHRvbyBiaWdcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxODE0Cittc2dpZCAidHJhaWxpbmcganVuayBhZnRlciBudW1iZXJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTM4Cittc2dpZCAibm8gcm9vbSBmb3IgcGFydGl0aW9uIGRlc2NyaXB0b3JcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTcxCittc2dpZCAiY2Fubm90IGJ1aWxkIHN1cnJvdW5kaW5nIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwMjIKK21zZ2lkICJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDU2Cittc2dpZCAiTm8gcm9vbSBmb3IgbW9yZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNzUKK21zZ2lkICJJbGxlZ2FsIHR5cGVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGdpdmVuIHNpemUgKCVsdSkgZXhjZWVkcyBtYXggYWxsb3dhYmxlIHNpemUgKCVsdSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTEzCittc2dpZCAiV2FybmluZzogZW1wdHkgcGFydGl0aW9uXG4iCittc2dzdHIgIkhvaWF0dXM6IHT8aGkgcGFydGl0c2lvb25cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE0MAorbXNnaWQgInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNTcgZmRpc2svc2ZkaXNrLmM6MjE3MAorbXNnaWQgInBhcnRpYWwgYyxoLHMgc3BlY2lmaWNhdGlvbj9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMTMKK21zZ2lkICJiYWQgaW5wdXRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjM1Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9uc1xuIgorbXNnc3RyICJMaWlnYSBwYWxqdSBwYXJ0aXRzaW9vbmVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBkZXZpY2UgLi4uXG4iCittc2dzdHIgIkthc3V0YW1pbmU6ICVzIFsgdvV0bWVkIF0gc2VhZGUgLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTUKK21zZ2lkICJkZXZpY2U6IHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhIG9yIC9kZXYvc2RhIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgICAtcyBbb3IgLS1zaG93LXNpemVdOiBsaXN0IHNpemUgb2YgYSBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgICAtYyBbb3IgLS1pZF06ICAgICAgICBwcmludCBvciBjaGFuZ2UgcGFydGl0aW9uIElkIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMgorbXNnaWQgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0L3JlcG9ydCBpbiB1bml0cyBvZiBzZWN0b3JzL2Jsb2Nrcy9jeWxpbmRlcnMvIgorIk1CIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDMKK21zZ2lkICIgICAgLVQgW29yIC0tbGlzdC10eXBlc106bGlzdCB0aGUga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA1Cittc2dpZCAiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIG1ha2Uga2VybmVsIHJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgICAtTiMgOiAgICAgICAgICAgICAgICBjaGFuZ2Ugb25seSB0aGUgcGFydGl0aW9uIHdpdGggbnVtYmVyICMiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBkbyBub3QgYWN0dWFsbHkgd3JpdGUgdG8gZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgLXYgW29yIC0tdmVyc2lvbl06ICAgcHJpbnQgdmVyc2lvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzExCittc2dpZCAiICAgIC0/IFtvciAtLWhlbHBdOiAgICAgIHByaW50IHRoaXMgbWVzc2FnZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEyCittc2dpZCAiZGFuZ2Vyb3VzIG9wdGlvbnM6IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTMKK21zZ2lkICIgICAgLWcgW29yIC0tc2hvdy1nZW9tZXRyeV06IHByaW50IHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBnZW9tZXRyeSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE0Cittc2dpZCAiIgorIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gIgorInRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAtcSAgW29yIC0tcXVpZXRdOiAgICAgIHN1cHByZXNzIHdhcm5pbmcgbWVzc2FnZXMiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZXRlY3RlZCBnZW9tZXRyeSB1c2luZzoiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAtQyMgW29yIC0tY3lsaW5kZXJzICNdOnNldCB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyB0byB1c2UiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIyCittc2dpZCAiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMworbXNnaWQgIllvdSBjYW4gZGlzYWJsZSBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcgd2l0aDoiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzAKK21zZ2lkICJVc2FnZToiCittc2dzdHIgImthc3V0YW1pbmU6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZVx0XHQgbGlzdCBhY3RpdmUgcGFydGl0aW9ucyBvbiBkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZSBuMSBuMiAuLi4gYWN0aXZhdGUgcGFydGl0aW9ucyBuMSAuLi4sIGluYWN0aXZhdGUgdGhlIHJlc3RcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0OTUKK21zZ2lkICJubyBjb21tYW5kP1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2MjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRvdGFsOiAlbGx1IGJsb2Nrc1xuIgorbXNnc3RyICJrb2trdTogJWQgcGxva2tpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzAKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tcHJpbnQtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcyCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWNoYW5nZS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBJZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzQKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0taWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgW0lkXVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2ODEKK21zZ2lkICJjYW4gc3BlY2lmeSBvbmx5IG9uZSBkZXZpY2UgKGV4Y2VwdCB3aXRoIC1sIG9yIC1zKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgcmVhZC13cml0ZVxuIgorbXNnc3RyICJlaSBzdXVkYSBhdmFkYSBzZWFkZXQgJXMgbHVnZW1pc2VrcyBqYSBraXJqdXRhbWlzZWtzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIKK21zZ3N0ciAiZWkgc3V1ZGEgYXZhZGEgc2VhZGV0ICVzIGx1Z2VtaXNla3NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzUzIGZkaXNrL3NmZGlzay5jOjI3ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjeWxpbmRlcnMsICVsZCBoZWFkcywgJWxkIHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyODA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IHNpemUgb2YgJXNcbiIKK21zZ3N0ciAiZWkgc3V1ZGEga2luZGxha3MgdGVoYSBzZWFkbWUgJXMgbWFodHUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIGFjdGl2ZSBieXRlOiAweCV4IGluc3RlYWQgb2YgMHg4MFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlZhbG1pc1xuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGhhcyBpZCAleCBhbmQgaXMgbm90IGhpZGRlblxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhdGFsIGVycm9yOiBjYW5ub3QgZmluZCAlc1xuIgorbXNnc3RyICJGYXRhYWxuZSB2aWdhOiBlaSBzdXVkYSBsZWlkYSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICJIb2lhdHVzOiAlcyBwb2xlIHBsb2trc2VhZGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzMgorbXNnaWQgIkNoZWNraW5nIHRoYXQgbm8tb25lIGlzIHVzaW5nIHRoaXMgZGlzayByaWdodCBub3cgLi4uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2xkIHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCwgY2Fubm90IGNoYW5nZSBpdFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDY4Cittc2dpZCAiIgorIkkgZG9uJ3QgbGlrZSB0aGVzZSBwYXJ0aXRpb25zIC0gbm90aGluZyBjaGFuZ2VkLlxuIgorIihJZiB5b3UgcmVhbGx5IHdhbnQgdGhpcywgdXNlIHRoZSAtLWZvcmNlIG9wdGlvbi4pXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisic2ZkaXNrOiBwcmVtYXR1cmUgZW5kIG9mIGlucHV0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4NQorbXNnaWQgIlF1aXR0aW5nIC0gbm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIgorbXNnc3RyICJQYWx1biBzaXNlc3RhZ2UgeSwgbiB29WkgcVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdWNjZXNzZnVsbHkgd3JvdGUgdGhlIG5ldyBwYXJ0aXRpb24gdGFibGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMTA1Cittc2dpZCAiIgorIklmIHlvdSBjcmVhdGVkIG9yIGNoYW5nZWQgYSBET1MgcGFydGl0aW9uLCAvZGV2L2ZvbzcsIHNheSwgdGhlbiB1c2UgZGQoMSlcbiIKKyJ0byB6ZXJvIHRoZSBmaXJzdCA1MTIgYnl0ZXM6ICBkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKFNlZSBmZGlzayg4KS4pXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBjb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJzaHV0ZG93bjogRWkgc3V1ZGEgbGFodGkgbW9udGVlcmlkYSBrYXRhbG9vZ2kgJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBiYWQgZm9ybWF0IG9uIGxpbmUgJWQgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozNTIKK21zZ2lkICIiCisiV0FSTklORzogWW91ciAvZXRjL2ZzdGFiIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZzY2sgcGFzc25vXG4iCisiXHRmaWVsZC4gIEkgd2lsbCBrbHVkZ2UgYXJvdW5kIHRoaW5ncyBmb3IgeW91LCBidXQgeW91XG4iCisiXHRzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogJXM6IG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FpdDogTm8gbW9yZSBjaGlsZCBwcm9jZXNzPyE/XG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmcuLi4gJXMgZm9yIGRldmljZSAlcyBleGl0ZWQgd2l0aCBzaWduYWwgJWQuXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVzOiBzdGF0dXMgaXMgJXgsIHNob3VsZCBuZXZlciBoYXBwZW4uXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NjQzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmlzaGVkIHdpdGggJXMgKGV4aXQgc3RhdHVzICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjcwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogRXJyb3IgJWQgd2hpbGUgZXhlY3V0aW5nIGZzY2suJXMgZm9yICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzI0Cittc2dpZCAiIgorIkVpdGhlciBhbGwgb3Igbm9uZSBvZiB0aGUgZmlsZXN5c3RlbSB0eXBlcyBwYXNzZWQgdG8gLXQgbXVzdCBiZSBwcmVmaXhlZFxuIgorIndpdGggJ25vJyBvciAnIScuXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzQzCittc2dpZCAiQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBmaWxlc3lzdGVtIHR5cGVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc2tpcHBpbmcgYmFkIGxpbmUgaW4gL2V0Yy9mc3RhYjogYmluZCBtb3VudCB3aXRoIG5vbnplcm8gZnNjayBwYXNzICIKKyJudW1iZXJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo4OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjkxOAorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiBjYW5ub3QgY2hlY2sgJXM6IGZzY2suJXMgbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6OTc0CisjLCBmdXp6eQorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIlBlYWxlc3Vubml0dWQga29udHJvbGwgZmFpbGlz/HN0ZWVtaWwgJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1CisjLCBmdXp6eQorbXNnaWQgIiIKKyJVc2FnZTogZnNjayBbLUFNTlBSVFZdIFsgLUMgWyBmZCBdIF0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIFtmaWxlc3lzIC4uLl1cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogbWtmcyBbLVZdIFstdCBmc3T8/HBdIFtmcy129XRtZWRdIHNlYWRlIFtzdXVydXNdXG4iCisKKyM6IGZzY2svZnNjay5jOjExMjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzIHBvbGUgZmxvcGlzZWFkZVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJFaSBzdXV0bnVkIGF2YWRhICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBmaW5kIG1hdGNoaW5nIGZpbGVzeXN0ZW06ICVzXG4iCittc2dzdHIgIk1vbnRlZXJpbiBsYWh0aSBr9WlrIGFsbGVzauTkbnVkIGZhaWxpc/xzdGVlbWlkIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBhcmd1bWVudHNcbiIKK21zZ3N0ciAiJXM6IFR1bmRtYXR1IGFyZ3VtZW50OiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgcGFrZXRpc3QgJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTI4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZzY2tfcGF0aFxuIgorbXNnc3RyICJlaSBq5HRrdSBt5Gx1IGkta2lyamV0ZSBwdWh2cmlsZSIKKworIzogZ2V0b3B0L2dldG9wdC5jOjIyOQorbXNnaWQgIlRyeSBgZ2V0b3B0IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzE1Cittc2dpZCAidW5rbm93biBzaGVsbCBhZnRlciAtcyBvciAtLXNoZWxsIGFyZ3VtZW50IgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjAKK21zZ2lkICJVc2FnZTogZ2V0b3B0IG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMQorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIFstLV0gb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIyCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B0aW9uc10gWy0tXVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjMKK21zZ2lkICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI0Cittc2dpZCAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBBbGxvdyBsb25nIG9wdGlvbnMgc3RhcnRpbmcgd2l0aCBzaW5nbGUgLVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjUKK21zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVGhpcyBzbWFsbCB1c2FnZSBndWlkZVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI3Cittc2dpZCAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOAorbXNnaWQgIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBTaG9ydCBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMworbXNnaWQgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUgdGhlIG91dHB1dFxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mzg4IGdldG9wdC9nZXRvcHQuYzo0NDcKK21zZ2lkICJtaXNzaW5nIG9wdHN0cmluZyBhcmd1bWVudCIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgImdldG9wdCAoZW5oYW5jZWQpIDEuMS40XG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZWQgZnJvbSBNSUxPXG4iCittc2dzdHIgImJ1dWRpdHVkIE1JTE8nc3RcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIlJ1ZmZpYW5pIEJDRCBrZWxsXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICJrZWxsYSBwb3J0IHBhcmFuZGF0dWQgYWFkcmVzc2lrcyAweCV4XG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJmdW5reSBUT1khXG4iCittc2dzdHIgIlZpbmdlIG1hc2luIVxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGF0b21pYyAlcyBmYWlsZWQgZm9yIDEwMDAgaXRlcmF0aW9ucyEiCittc2dzdHIgIiVzOiBhdG9tYWFybmUgJyVzJyBlaSD1bm5lc3R1bnVkIDEwMDAga2F0c2Ugam9va3N1bCEiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHJlYWQgZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIkVpIHN1dWRhIGF2YWRhIHNlYWRldCAvZGV2L3BvcnQ6ICVzIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIkVpIHNhYW51ZCBsdWJhLCBzZXN0IGVpIGv8c2ludWRraVxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiJXMgZWkgc2FhbnVkIEkvTyBwb3J0aWRlbGUgbGlnaTogaW9wbCgzKSBlaSD1bm5lc3R1bnVkXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9iYWJseSB5b3UgbmVlZCByb290IHByaXZpbGVnZXMuXG4iCittc2dzdHIgIklsbXNlbHQgb24gdmFqYSByb29kdSD1aWd1c2lcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gJXMgdGltZS5cbiIKK21zZ3N0ciAiRWVsZGFuLCBldCByaWlzdGF2YWxpc2VzIGtlbGxhcyBvbiBrYXN1dHVzZWwgJXMgYWVnXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJVVEMiCittc2dzdHIgIlVUQyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNQorbXNnaWQgImxvY2FsIgorbXNnc3RyICJrb2hhbGlrIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIlczogSG9pYXR1czogYXJ1c2FhbWF0dSBrb2xtYXMgcmlkYSBhZGp0aW1lIGZhaWxpc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiKEV4cGVjdGVkOiBgVVRDJyBvciBgTE9DQUwnIG9yIG5vdGhpbmcuKVxuIgorbXNnc3RyICIoT290YXNpbjogYFVUQycgdvVpIGBMT0NBTCcgdvVpIG1pdHRlIG1pZGFnaSlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiVmlpbWFuZSB1anVtaXNlIHZhc3RhbmUgcGFyYW5kdXMgdGVodGkgJWxkIHNla3VuZGl0IHDkcmFzdCAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJWaWltYW5lIGthbGlicmVlcmltaW5lIHRlaHRpICVsZCBzZWt1bmRpdCBw5HJhc3QgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICJSaWlzdHZhcmFsaXNlcyBrZWxsYXMgb24ga2FzdXR1c2VsICVzIGFlZ1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJ1bmtub3duIgorbXNnc3RyICJ0dW5kbWF0dSIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgZm9yIGNsb2NrIHRpY2suLi5cbiIKK21zZ3N0ciAiT290YW4ga2VsbGEgdGlrc3UuLi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiLi4uc2FpbiB0aWtzdVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKK21zZ3N0ciAiIgorIlZpZ2FzZWQgduTkcnR1c2VkIHJpaXN0dmFyYWxpc2VzIGtlbGxhczogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKyJSaWlzdHZhcmFsaXNlIGtlbGxhIGFlZzogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWt1bmRpdCBw5HJhc3QgIgorIjE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIlJpaXN0dmFyYWxpc2VzdCBrZWxsYXN0IGxvZXR1ZCBhZWc6ICU0ZC8lLjJkLyUuMmQgJTAyZDolMDJkOiUwMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKyJTZWFuIHJpaXN0YXZhcmFsaXNlIGtlbGxhIG7kaWR1a3MgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2VrdW5kaXQgcORyYXN0IDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb2NrIG5vdCBjaGFuZ2VkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJFaSBtdXV0bnVkIGtlbGxhIC0gdGVzdGltZSBhaW51bHRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIlNlYXRhdmFzdCBrZWxsYWFqYXN0IG9uIG329mRhcyAlLjZmIHNla3VuZGl0LlxuIgorIk9vdGFuIGVkYXNpIHTkaXNzZWt1bmRpbmkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIHJlZ2lzdGVycyBjb250YWluIHZhbHVlcyB0aGF0IGFyZSBlaXRoZXIgaW52YWxpZCAoZS5nLiAiCisiNTB0aCBkYXkgb2YgbW9udGgpIG9yIGJleW9uZCB0aGUgcmFuZ2Ugd2UgY2FuIGhhbmRsZSAoZS5nLiBZZWFyIDIwOTUpLlxuIgorbXNnc3RyICIiCisiUmlpc3R2YXJhbGlzZSBrZWxsYSByZWdpc3RyaXRlcyBvbiBrYXMgdmlnYXNlZCB25ORydHVzZWQgKG7kaXRla3MgNTAuICIKKyJrdXVw5GV2KSB29Wkgb24gbmFkIHbkbGphc3Bvb2wgbWVpZSBwb29sdCBrYXN1dGF0YXZhdCBhamF2YWhlbWlra3UgKG7kaXRla3MgIgorImFhc3RhIDIwMDUpXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAgJS42ZiBzZWNvbmRzXG4iCittc2dzdHIgIiVzICAlLjZmIHNla3VuZGl0XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAiLS1kYXRlIHBhcmFtZWV0ZXIgb24gcHV1ZHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICItLWRhdGUgYXJndW1lbnQgb24gbGlpZ2EgcGlra1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiBpcyBub3QgYSB2YWxpZCBkYXRlLlxuIgorIkluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHF1b3RhdGlvbiBtYXJrcy5cbiIKK21zZ3N0ciAiIgorIi0tZGF0ZSBzdXZhbmRpZ2EgYW50dWQga2VsbGFhZWcgb24gdmlnYW5lLlxuIgorIlTkcHNlbWFsdCD2ZWxkZXMgc2lzYWxkYWIgdGEganV0dW3kcmtlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIkFubmFuIGBkYXRlJyBr5HN1OiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDAKK21zZ2lkICJVbmFibGUgdG8gcnVuICdkYXRlJyBwcm9ncmFtIGluIC9iaW4vc2ggc2hlbGwuIHBvcGVuKCkgZmFpbGVkIgorbXNnc3RyICJFaSBzdXVkYSBr5Gl2YXRhZGEgJ2RhdGUnIHByb2dyYW1taSAvYmluL3NoIHNoZWxsaWdhIC0gcG9wZW4oKSBzYWkgdmVhIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcG9uc2UgZnJvbSBkYXRlIGNvbW1hbmQgPSAlc1xuIgorbXNnc3RyICJkYXRlLWvkc3UgdHVsZW11cyA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKyIlcyBwb29sdCBr5Gl2aXRhdHVkIGRhdGUta+RzayBhbmRpcyBvb3RhbWF0dSB0dWxlbXVzZS5cbiIKKyJL5HNrIG9saTpcbiIKKyIgICVzXG4iCisiVmFzdHVzIG9saTpcbiIKKyIgICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gaW50ZWdlciB3aGVyZSAiCisidGhlIGNvbnZlcnRlZCB0aW1lIHZhbHVlIHdhcyBleHBlY3RlZC5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICVzXG4iCittc2dzdHIgIiIKKyIlcyBwb29sdCBr5Gl2aXRhdHVkIGRhdGUta+RzayB0YWdhc3RhcyB25GxqYXN0YXVkIGFqYSBzZWVzIG1pZGFnaSwgbWlzIGVpICIKKyJvbGUgdORpc2Fydi5cbiIKKyJL5HNrIG9saTpcbiIKKyIgICVzXG4iCisiVmFzdHVzIG9saTpcbiIKKyIgICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJkYXRlIHN0cmluZyAlcyBlcXVhdGVzIHRvICVsZCBzZWNvbmRzIHNpbmNlIDE5NjkuXG4iCittc2dzdHIgImt1dXDkZXZhc3RyaW5nICVzIHb1cmR1YiAlbGQgc2VrdW5kaWdhIHDkcmFzdCAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorIlJpaXN0YXZhbGluZSBrZWxsIGVpIHNpc2FsZGEga29ycmVrdHNldCBhZWdhLCBzZWVnYSBtZSBlaSBzYWEgc2VhZGEgIgorInP8c3RlZW1pa2VsbGEgc2VsbGUgauRyZ2lcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI3IGh3Y2xvY2svaHdjbG9jay5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIHNldHRpbWVvZmRheTpcbiIKK21zZ3N0ciAia3V0c3VuIHbkbGphIHNldHRpbWVvZmRheTpcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI4IGh3Y2xvY2svaHdjbG9jay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorbXNnc3RyICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzAgaHdjbG9jay9od2Nsb2NrLmM6ODA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorbXNnc3RyICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMzIGh3Y2xvY2svaHdjbG9jay5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBzeXN0ZW0gY2xvY2sgYmVjYXVzZSBydW5uaW5nIGluIHRlc3QgbW9kZS5cbiIKK21zZ3N0ciAiRWkgc2VhIHP8c3RlZW1pa2VsbGEsIHNlc3QgdGVndSBvbiB0ZXN0aW1pc2VnYVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIktlbGxhIHNlYWRtaXNla3MgcGVhYiBvbGVtYSByb290XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgInNldHRpbWVvZmRheSgpIGVpIPVubmVzdHVudWQiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc4MQorIywgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisiRWkgcGFyYW5kYSBrb3JyaWdlZXJpbWlzdGVndXJpdCwga3VuYSByaWlzdHZhcmFsaW5lIGtlbGwgc2lzYWxkYXMgc29kaVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGxhc3QgY2FsaWJyYXRpb24gdGltZSBpcyB6ZXJvLFxuIgorInNvIGhpc3RvcnkgaXMgYmFkIGFuZCBjYWxpYnJhdGlvbiBzdGFydG92ZXIgaXMgbmVjZXNzYXJ5LlxuIgorbXNnc3RyICIiCisiRWkgcGFyYW5kYSBrb3JyaWdlZXJpbWlzdGVndXJpdCwga3VuYSB2aWltYW5lIGthbGlicmVlcmltaW5lIHRvaW11cyB25GhlbSAiCisia3VpIPb2cORldiB0YWdhc2lcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGl0IGhhcyBiZWVuIGxlc3MgdGhhbiBhIGRheSBzaW5jZSB0aGUgIgorImxhc3QgY2FsaWJyYXRpb24uXG4iCittc2dzdHIgIiIKKyJFaSBwYXJhbmRhIGtvcnJpZ2VlcmltaXN0ZWd1cml0LCBrdW5hIHZpaW1hbmUga2FsaWJyZWVyaW1pbmUgdG9pbXVzIHbkaGVtICIKKyJrdWkg9vZw5GV2IHRhZ2FzaVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yICIKKyJvZiAlZiBzZWNvbmRzL2RheS5cbiIKKyJBZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJ5ICVmIHNlY29uZHMvZGF5XG4iCittc2dzdHIgIiIKKyJLZWxsIG9uIHVqdW51ZCAlZCBzZWt1bmRpdCB2aWltYXNlICVkIHNla3VuZGkgam9va3N1bCB2YWF0YW1hdGEgIgorImtvcnJpZ2VlcmltaXN0ZWd1cmlsZSAlZiBzZWt1bmRpdCBw5GV2YXMuXG4iCisiUGFyYW5lbiBrb3JyaWdlZXJpbWlzZmFrdG9yaWtzICVmIHNla3VuZGl0IHDkZXZhcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiVmlpbWFzZXN0IGtlbGxhYWphIGtvcnJpZ2Vlcm1pc2VzdCBvbiBt9vZkdW51ZCAlZCBzZWt1bmRpdFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiIgorIlZhamEgb2IgdmFoZWxlIGxpc2FkYSAlZCBzZWt1bmRpdCBuaW5nIHZpaWRhdGEgYWphbGUgJS42ZiBzZWt1bmRpdCB0YWdhc2lcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIkVpIHV1ZW5kYSBhZGp0aW1lIGZhaWxpLCBzZXN0IHRlZ3Ugb24gdGVzdGltaXNlZ2FcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIk9sZWtzIGtpcmp1dGFudWQgZmFpbGkgJXMgauRyZ21pc3Q6XG4iCisiJXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAxNworIywgYy1mb3JtYXQKK21zZ2lkICJEcmlmdCBhZGp1c3RtZW50IHBhcmFtZXRlcnMgbm90IHVwZGF0ZWQuXG4iCittc2dzdHIgIlVqdW1pc2Uga29tcGVuc2VlcmltaXNlIHBhcmFtZWV0cmVpZCBlaSB1dWVuZGF0dWRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICIiCisiUmlpc3R2YXJhbGluZSBrZWxsIGVpIHNpc2FsZGEga29ycmVrdHNldCBhZWdhLCBzZWVnYSBtZSBlaSBzYWEgc2lubmEgIgorInBhcmFuZHVzdCBsaXNhZGFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBzZXR0aW5nIGNsb2NrIGJlY2F1c2UgbGFzdCBhZGp1c3RtZW50IHRpbWUgaXMgemVybywgc28gaGlzdG9yeSBpcyBiYWQuIgorbXNnc3RyICIiCisiRWkgcGFyYW5kYSBrb3JyaWdlZXJpbWlzdGVndXJpdCwga3VuYSB2aWltYW5lIGthbGlicmVlcmltaW5lIHRvaW11cyB25GhlbSAiCisia3VpIPb2cORldiB0YWdhc2lcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA4OQorIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkZWQgYWRqdXN0bWVudCBpcyBsZXNzIHRoYW4gb25lIHNlY29uZCwgc28gbm90IHNldHRpbmcgY2xvY2suXG4iCittc2dzdHIgIlZhamFsaWsgcGFyYW5kdXMgb24gYWxsYSBzZWt1bmRpLCBzZWVnYSBrZWxsYSBlaSBzZWFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyAlcy5cbiIKK21zZ3N0ciAiS2FzdXRhbiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIkVpIGxlaWRudWQga2FzdXRhdGF2YXQga2VsbGFsaWlkZXN0XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyMjEgaHdjbG9jay9od2Nsb2NrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiU/xzdGVlbWlrZWxsYSBzZWFkbWluZSBlaSD1bm5lc3R1bnVkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisiVHV1bSBob2lhYiBlcG9oaGkgduTkcnR1c3Qgcmlpc3R2YXJhbGlzZXMga2VsbGFzIGFpbnVsdCBBbHBoYSBtYXNpbmF0ZWwuXG4iCisiU2VlIGtvb3BpYSBod2Nsb2NrJ2lzdCBvbiBrb21waWxlZXJpdHVkIHT29nRhbWEgbXV1bCBtYXNpbmFsIChqYSBzZWVnYVxuIgorImlsbXNlbHQgZWkgdPb2dGEgaGV0a2VsIEFscGhhIHBlYWwpLiBFaSB29XRhIG1pZGFnaSBldHRlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBnZXQgdGhlIGVwb2NoIHZhbHVlIGZyb20gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiRWkgc2FhbnVkIHR1dW1hbHQgZXBvaGhpIHbk5HJ0dXN0IGvkdHRlXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2VybmVsIGlzIGFzc3VtaW5nIGFuIGVwb2NoIHZhbHVlIG9mICVsdVxuIgorbXNnc3RyICJUdXVtIGthc3V0YWIgZXBvaGhpIHbk5HJ0dXN0ICVsdVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBzZXQgdGhlIGVwb2NoIHZhbHVlLCB5b3UgbXVzdCB1c2UgdGhlICdlcG9jaCcgb3B0aW9uIHRvIHRlbGwgdG8gd2hhdCAiCisidmFsdWUgdG8gc2V0IGl0LlxuIgorbXNnc3RyICIiCisiRXBvaGhpIHbk5HJ0dXNlIHNlYWRtaXNla3MgcGVhdGUga2FzdXRhbWEgYGVwb2NoJyB29XRpdCB1dWUgduTkcnR1c2UgIgorImFuZG1pc2Vrc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHRoZSBlcG9jaCB0byAlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiRWkgcGFubnVkIGVwb2hoaWtzICVkIC0gdGVzdGltZSBhaW51bHRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLlxuIgorbXNnc3RyICJFcG9oaGkgduTkcnR1c2Ugc2VhZG1pbmUgZWkg9W5uZXN0dW51ZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjkwIG1pc2MtdXRpbHMvY2FsLmM6MzQ3IG1pc2MtdXRpbHMva2lsbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiVzIHBha2V0aXN0ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorImh3Y2xvY2sgLS0gcmlpc3R2YXJhbGlzZSBrZWxsYSAoUlRDKSB25ORydHVzZSB2YWF0YW1pc2VrcyBqYSBzZWFkbWlzZWtzXG4iCisiXG4iCisiS2FzdXRhbWluZTogaHdjbG9jayBbZnVua3RzaW9vbl0gW3b1dG1lZC4uLl1cbiIKKyJcbiIKKyJGdW5rdHNpb29uaWQ6XG4iCisiICAtLWhlbHAgICAgICAgIG7kaWRhdGEgc2VkYSB0ZWtzdGlcbiIKKyIgIC0tc2hvdyAgICAgICAgbHVnZWRhIGphIHbkbGphc3RhZGEgcmlpc3R2YXJhbGlzZSBrZWxsYSBu5Gl0XG4iCisiICAtLXNldCAgICAgICAgIHNlYWRhIHJpaXN0dmFyYWxpc2Uga2VsbGEgbuRpZHVrcyAtLWRhdGUgdvV0bWUgduTkcnR1c1xuIgorIiAgLS1oY3Rvc3lzICAgICBzZWFkYSBz/HN0ZWVtaSBhZWcgc2FtYWtzLCBtaXMgcmlpc3R2YXJhbGlzZWwga2VsbGFsXG4iCisiICAtLXN5c3RvaGMgICAgIHNlYWRhIHJpaXN0dmFyYWxpbmUga2VsbCBzYW1ha3MsIG1pcyBz/HN0ZWVtaSBhZWdcbiIKKyIgIC0tYWRqdXN0ICAgICAga29ycmlnZWVyaWRhIHJpaXN0dmFyYWxpc2Uga2VsbGEgbuRpdHUsIGV0IGFydmVzdGFkYVxuIgorIiAgICAgICAgICAgICAgICBz/HN0ZW1hYXRsaXN0IG5paGV0IGFsYXRlcyB2aWltYXNlc3Qga29ycmlnZWVyaW1pc2VzdFxuIgorIiAgLS1nZXRlcG9jaCAgICB25GxqYXN0YWRhIHJpaXN0dmFyYWxpc2Uga2VsbGEgZXBvaGhpIHbk5HJ0dXNcbiIKKyIgIC0tc2V0ZXBvY2ggICAgc2VhZGEgcmlpc3R2YXJhbGlzZSBrZWxsYSBlcG9oaGkgduTkcnR1c2VrcyAtLWVwb2NoXG4iCisiICAgICAgICAgICAgICAgIHb1dG1lZ2EgYW50dWQgduTkcnR1c1xuIgorIiAgLS12ZXJzaW9uICAgICB25GxqYXN0YWRhIGh3Y2xvY2snaSB2ZXJzaW9vblxuIgorIlxuIgorIlb1dG1lZDpcbiIKKyIgIC0tdXRjICAgICAgICAgcmlpc3R2YXJhbGlzdCBrZWxsYSBob2l0YWtzZSBHcmVlbndpY2hpIGFqYXNcbiIKKyIgIC0tbG9jYWx0aW1lICAgcmlpc3R2YXJhbGlzdCBrZWxsYSBob2l0YWtzZSBrb2hhbGlrdXMgYWphc1xuIgorIiAgLS1kaXJlY3Rpc2EgICBw9vZyZHVkYSBJU0Egc2lpbmkgcG9vbGUgb3RzZSAoJXMgYXNlbWVsKVxuIgorIiAgLS1iYWR5ZWFyICAgICBpZ25vcmVlcmlkYSBSVEMgYWFzdGFudW1icml0LCBrdW5hIEJJT1Mgb24ga2F0a2luZVxuIgorIiAgLS1kYXRlICAgICAgICBhbm5hYiBhamEsIG1pcyByaWlzdHZhcmFsaXNlIGtlbGxhIHbk5HJ0dXNla3MgcGFubmFcbiIKKyIgIC0tZXBvY2g9YWFzdGEgYW5uYWIgYWFzdGEsIG1pZGEgaGFrYXRhIGx1Z2VtYSByaWlzdHZhcmFsaXNlIGtlbGxhXG4iCisiICAgICAgICAgICAgICAgIGVwb2hoaSBhbGd1c2Vrc1xuIgorIiAgLS1ub2FkamZpbGUgICBtaXR0ZSBrYXN1dGFkYSBmYWlsaSAvZXRjL2FkanRpbWUuIFZhamFiIGthcyAtLXV0YyB29WlcbiIKKyIgICAgICAgICAgICAgICAgLS1sb2NhbHRpbWUgdvV0aXRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLUp8LS1qZW5zZW4sIC1BfC0tYXJjLCAtU3wtLXNybSwgLUZ8LS1mdW5reS10b3lcbiIKKyIgICAgICAgdGVsbCBod2Nsb2NrIHRoZSB0eXBlIG9mIGFscGhhIHlvdSBoYXZlIChzZWUgaHdjbG9jayg4KSlcbiIKKyJcbiIKK21zZ3N0ciAiIgorIiAgLS1qZW5zZW4sIC0tYXJjLCAtLXNybSwgLS1mdW5reS10b3lcbiIKKyIgICAgICAgICAgICAgICAg/HRsZWIgaHdjbG9jaydpbGUsIG1pcyB0/PxwaSBBbHBoYWdhIG9uIHRlZ2VtaXN0XG4iCisiICAgICAgICAgICAgICAgIFZ0LiBod2Nsb2NrKDgpIGzkaGVtYSBpbmZvIGphb2tzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gY29ubmVjdCB0byBhdWRpdCBzeXN0ZW1cbiIKK21zZ3N0ciAiU/xzdGVlbWlrZWxsYSBzZWFkbWluZSBlaSD1bm5lc3R1bnVkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdGFrZXMgbm8gbm9uLW9wdGlvbiBhcmd1bWVudHMuICBZb3Ugc3VwcGxpZWQgJWQuXG4iCittc2dzdHIgIiVzIGVpIHRhaGEgbWl0dGUtdvV0bWVsaXNpIGFyZ3VtZW50ZS4gJWQgb24g/GxlbGlpZ25lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIktvcnJhZ2Egc2FhYiBrYXN1dGFkYSBhaW51bHQg/Gh0ZSBmdW5rdHNpb29uaVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tdXRjIGFuZCAtLWxvY2FsdGltZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3Ugc3BlY2lmaWVkICIKKyJib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IC0tdXRjIGphIC0tbG9jYWx0aW1lIHb1dG1lZCBvbiB0ZWluZXRlaXN0IHbkbGlzdGF2YWQuIFRlaWUga2FzdXRhc2l0ZSAiCisibfVsZW1hdCBrb3JyYWdhXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGp1c3QgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiVzOiBW9XRtZWQgLS1hZGp1c3QgamEgLS1ub2FkamZpbGUgb24gdmFzdGFzdGlra3UgduRsaXN0YXZhZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiVzOiBW9XRtZWQgLS1hZGp1c3QgamEgLS1ub2FkamZpbGUgb24gdmFzdGFzdGlra3UgduRsaXN0YXZhZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIiCisiJXM6IEtvb3MgdvV0bWVnYSAtLW5vYWRqZmlsZSB0dWxlYiBhbmRhIGthIGthcyAtLXV0YyB29WkgLS1sb2NhbHRpbWUgdvV0aVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBzZXQtdG8gdGltZS4gIENhbm5vdCBzZXQgY2xvY2suXG4iCittc2dzdHIgIkVpIHNhYW51ZCBrYXN1dGF0YXZhdCBhZWdhLCBlaSBrZWVyYSBrZWxsYVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2suXG4iCittc2dzdHIgIkthaGp1a3Mgc2FhYiBhaW51bHQgcm9vdCByaWlzdHZhcmFsaXN0IGtlbGxhIGtlZXJhdGFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyNAorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIFN5c3RlbSBDbG9jay5cbiIKK21zZ3N0ciAiS2FoanVrcyBzYWJhIGFpbnVsdCByb290IHP8c3RlZW1pa2VsYWwga2VlcmF0YVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIGluIHRoZSAiCisia2VybmVsLlxuIgorbXNnc3RyICJLYWhqdWtzIHNhYWIgYWludWx0IHJvb3Qgcmlpc3R2YXJhbGlzZSBrZWxsYSBlcG9oaGkgc2VhZGFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgYW55IGtub3duIG1ldGhvZC5cbiIKK21zZ3N0ciAiRWkgc3V1ZGEg/GhlZ2kgdHVudHVkIG1lZXRvZGlnYSByaWlzdHZhcmFsaXN0IGtlbGxhIGvkdHRlIHNhYWRhXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzZSB0aGUgLS1kZWJ1ZyBvcHRpb24gdG8gc2VlIHRoZSBkZXRhaWxzIG9mIG91ciBzZWFyY2ggZm9yIGFuIGFjY2VzcyAiCisibWV0aG9kLlxuIgorbXNnc3RyICIiCisiS2FzdXRhZ2UgLS1kZWJ1ZyB29XRpdCwgZXQgbuRoYSBvdHNpbmd1IGRldGFpbGUganV1cmRlcOTkc3Ugb3RzaW1pc2VsXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSBLREdIV0NMSyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiT290YW4gdHP8a2lscywga3VuaSBLREdIV0NMSyBhYmlsIHNhYWR1ZCBhZWcgZWRhc2kgbORoZWJcbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAiS0RHSFdDTEsgaW9jdGwga2VsbGEgbHVnZW1pc2VrcyBlaSD1bm5lc3R1bnVkIgorCisjOiBod2Nsb2NrL2tkLmM6NzUKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIGluIGxvb3AiCittc2dzdHIgIktER0hXQ0xLIGlvY3RsIGtlbGxhIGx1Z2VtaXNla3MgZWkg9W5uZXN0dW51ZCB0c/xraWxzIgorCisjOiBod2Nsb2NrL2tkLmM6ODIgaHdjbG9jay9ydGMuYzoyMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRpbWUgY2hhbmdlLlxuIgorbXNnc3RyICJUYWltYXV0IG9vZGF0ZXMga2VsbGFhamEgbXV1dHVtaXN0XG4iCisKKyM6IGh3Y2xvY2sva2QuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSBmYWlsZWQgdG8gcmVhZCB0aW1lIGZyb20gJXMiCittc2dzdHIgImlvY3RsKCkgYWJpbCBrZWxsYSBsdWdlbWluZSAlcyBrYXVkdSBlaSD1bm5lc3R1bnVkIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICJLRFNIV0NMSyBpb2N0bCBlaSD1bm5lc3R1bnVkIgorCisjOiBod2Nsb2NrL2tkLmM6MTc2Cittc2dpZCAiQ2FuJ3Qgb3BlbiAvZGV2L3R0eTEgb3IgL2Rldi92Yy8xIgorbXNnc3RyICJFaSBzdXVkYSBhdmFkYSBzZWFkZXQgL2Rldi90dHkxIHb1aSAvZGV2L3ZjLzEiCisKKyM6IGh3Y2xvY2sva2QuYzoxODAKK21zZ2lkICJLREdIV0NMSyBpb2N0bCBmYWlsZWQiCittc2dzdHIgIktER0hXQ0xLIGlvY3RsIGVpIPVubmVzdHVudWQiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgIiVzIGF2YW1pbmUgZWkg9W5uZXN0dW51ZCIKKworIzogaHdjbG9jay9ydGMuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAiaW9jdGwoKSBhYmlsIGtlbGxhIGx1Z2VtaW5lICVzIGthdWR1IGVpIPVubmVzdG51ZFxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiT290YW4gdHP8a2lscywga3VuaSAlcyBrYXVkdSBzYWFkdWQgYWVnIGVkYXNpIGzkaGViXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRvZXMgbm90IGhhdmUgaW50ZXJydXB0IGZ1bmN0aW9ucy4gIgorbXNnc3RyICIlcyBlaSBwYWt1IGthdGtlc3R1c2Z1bmt0c2lvb25lLiAiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAiJXMgbHVnZW1pbmUga2VsbGEgdGlrc3Ugb290YW1pc2VsIGVpIPVubmVzdHVudWQiCisKKyM6IGh3Y2xvY2svcnRjLmM6Mjg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAiJXMgbHVnZW1pbmUga2VsbGEgdGlrc3Ugb290YW1pc2VsIGVpIPVubmVzdHVudWQiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjkxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIHRpbWVkIG91dFxuIgorbXNnc3RyICIlcyBsdWdlbWluZSBrZWxsYSB0aWtzdSBvb3RhbWlzZWwgZWkg9W5uZXN0dW51ZCIKKworIzogaHdjbG9jay9ydGMuYzozMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9mZiB1cGRhdGUgaW50ZXJydXB0cyBmYWlsZWQiCittc2dzdHIgIiVzIGlvY3RsKCkgYWJpbCBlaSD1bm5lc3R1bnVkIHbkbGphIGz8bGl0YWRhIGtlbGxhIGthdGtlc3R1c2kiCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvbiB1cGRhdGUgaW50ZXJydXB0cyBmYWlsZWQgdW5leHBlY3RlZGx5IgorbXNnc3RyICIlcyBpb2N0bCgpIGFiaWwgZWkg9W5uZXN0dW51ZCBzaXNzZSBs/GxpdGFkYSBrZWxsYSBrYXRrZXN0dXNpIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImlvY3RsKCkgJXMga2F1ZHUga2VsbGEgc2VhZG1pc2VrcyBlaSD1bm5lc3R1bnVkXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiaW9jdGwoJXMpIPVubmVzdHVzXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICIlcyBhdmFtaW5lIGVpIPVubmVzdHVudWQiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDEwIGh3Y2xvY2svcnRjLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBtYW5pcHVsYXRlIHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLCB3ZSBtdXN0IGFjY2VzcyB0aGUgTGludXggJ3J0YycgIgorImRldmljZSBkcml2ZXIgdmlhIHRoZSBkZXZpY2Ugc3BlY2lhbCBmaWxlICVzLiAgVGhpcyBmaWxlIGRvZXMgbm90IGV4aXN0IG9uICIKKyJ0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiIgorIkVwb2hoaSB25ORydHVzZSBtYW5pcHVsZWVyaW1pc2VrcyB0dWxlYiBrYXN1dGFkYSAncnRjJyBkcmFpdmVyaXQgc2VhZG1lZmFpbGkgIgorIiVzIGthdWR1LiBBbnR1ZCBz/HN0ZWVtaXMgc2VkYSBmYWlsaSBlaSBsZWlkdVxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxNSBod2Nsb2NrL3J0Yy5jOjQ1OQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiRWkgc3V1ZGEgYXZhZGEgc2VhZGV0ICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICIlcyBpb2N0bChSVENfRVBPQ0hfUkVBRCkgZWkg9W5uZXN0dW51ZCIKKworIzogaHdjbG9jay9ydGMuYzo0MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2UgaGF2ZSByZWFkIGVwb2NoICVsZCBmcm9tICVzIHdpdGggUlRDX0VQT0NIX1JFQUQgaW9jdGwuXG4iCittc2dzdHIgImx1Z2VzaW1lIGVwb2hoaSAlbGQgJXMga2F1ZHUgUlRDX0VQT0NIX1JFQUQgaW9jdGwgYWJpbFxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIkVwb2hoaSB25ORydHVzIGVpIHRvaGkgb2xsYSBhbGxhIDE5MDAuIFRlaWUgYW5kc2l0ZSAlbGRcbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0dGluZyBlcG9jaCB0byAlbGQgd2l0aCBSVENfRVBPQ0hfU0VUIGlvY3RsIHRvICVzLlxuIgorbXNnc3RyICJzZWFuIGVwb2hoaWtzICVsZCAlcyBSVENfRVBPQ0hfU0VUIGlvY3RsIGFiaWxcbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwgZGV2aWNlIGRyaXZlciBmb3IgJXMgZG9lcyBub3QgaGF2ZSB0aGUgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKK21zZ3N0ciAiVHV1bWEgZHJhaXZlciAlcyBqYW9rcyBlaSB0b2V0YSBSVENfRVBPQ0hfU0VUIGlvY3RsJ2lcbiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICIlcyBpb2N0bChSVENfRVBPQ0hfU0VUKSBlaSD1bm5lc3R1bnVkIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIgorbXNnc3RyICIlczogZWkgc3V1ZGEga+Rpdml0YWRhIHByb2dyYW1taSAlczogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM4MworbXNnaWQgImNhbid0IG1hbGxvYyBpbml0c3RyaW5nIgorbXNnc3RyICJpbml0LXN0cmluZ2kgamFva3MgZWkgauR0a3UgbeRsdSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAidmlnYW5lIHRhaW1hZGkgduTkcnR1czogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgc3BlZWQ6ICVzIgorbXNnc3RyICJ2aWdhbmUga2lpcnVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI3Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAibGlpZ2EgcGFsanUgYWx0ZXJuYXRpaXZzZWlkIGtpaXJ1c2kiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgImNoZGlyICgpIGthdGFsb29naSAvZGV2IGVpIPVubmVzdHVudWQ6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogbm90IGEgY2hhcmFjdGVyIGRldmljZSIKK21zZ3N0ciAiL2Rldi8lcyBwb2xlIHP8bWJvbHNlYWRlIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICJlaSBzYWFudWQgYXZhZGEgL2Rldi8lcyBzdGFuZGFyZHNpc2VuZGluYTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiCittc2dzdHIgIiVzIHBvbGUgYXZhdHVkIGx1Z2VtaXNla3MgX2phXyBraXJqdXRhbWlzZWtzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGR1cCBwcm9ibGVtOiAlbSIKK21zZ3N0ciAicHJvYmxlZW0gJXMgZHVibGVlcmltaXNlbDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICJrYXN1dGFqYSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXJzIgorbXNnc3RyICJrYXN1dGFqYXQiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQ6ICVtIgorbXNnc3RyICIlczogcmVhZDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlucHV0IG92ZXJydW4iCittc2dzdHIgIiVzOiBzaXNlbmRpIPxsZXTkaXR1bWluZSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTIwNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiS2FzdXRhbWluZTpcbiIKKyIlcyBbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbW1dIFstdCB0YWltYXV0XSBbLUkgaW5pdC1zdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBzZWFkZSBbdGVybWluYWxpX3T8/HBdXG4iCisidvVpXG4iCisiICAgICAgIFstaGlMbXddIFstbCBsb2dpbl9wcm9ncmFtbV0gWy10IHRhaW1hdXRdIFstSSBpbml0LXN0cmluZ10gWy1IICIKKyJsb2dpbl9ob3N0XSBzZWFkZSBiYXVkX3JhdGUsLi4uIFt0ZXJtaW5hbGl0/PxwXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkxIGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBtZW1vcnkgbG93LCBsb2dpbiBtYXkgZmFpbFxuIgorbXNnc3RyICJsb2dpbjogbeRsdSBvbiB25GhlLCBzaXNzZSBsb2dpbWluZSBlaSB0YXJ2aXRzZSD1bm5lc3R1ZGFcbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MgorbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgdHR5Y2xhc3MiCittc2dzdHIgImVpIGrkdGt1IG3kbHUgdHR5Y2xhc3MnaWxlIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMworbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIKK21zZ3N0ciAiZWkgauR0a3UgbeRsdSBncnBsaXN0J2lsZSIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiU2lzc2Vsb2dpbWlzZXN0IGxpaW5pbCAlcyBtYXNpbmFzdCAlcyBrZWVsZHV0YWtzZSB2YWlrZXJlZWdsaSB09XR0dVxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZC5cbiIKK21zZ3N0ciAiU2lzc2Vsb2dpbWlzZXN0IGxpaW5pbCAlcyBtYXNpbmFzdCAlcyBrZWVsZHV0YWtzZVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTMzIGxvZ2luLXV0aWxzL2Noc2guYzoxMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHlvdSAodXNlciAlZCkgZG9uJ3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiBUZWlkIChrYXN1dGFqYXQgJWQpIHBvbGUgb2xlbWFzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDAgbG9naW4tdXRpbHMvY2hzaC5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiBLYXN1dGFqYXQgXCIlc1wiIHBvbGUgb2xlbWFzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiVzOiBhaW51bHQgbG9rYWFsc2VpZCBraXJqZWlkIHNhYWIgbXV1dGEgLSBrYXN1dGFnZSBwcm9ncmFtbWkgeXAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU2IGxvZ2luLXV0aWxzL2Noc2guYzoxNDIKK21zZ2lkICJVbmtub3duIHVzZXIgY29udGV4dCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIGZpbmdlciBpbmZvIG9mICVzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE2NCBsb2dpbi11dGlscy9jaHNoLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBzZXQgZGVmYXVsdCBjb250ZXh0IGZvciAvZXRjL3Bhc3N3ZCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGZpbmdlciBpbmZvcm1hdGlvbiBmb3IgJXMuXG4iCittc2dzdHIgIk11dWRhbiBrYXN1dGFqYSAlcyBrb2h0YSBr5Gl2YXQgaW5mb3JtYXRzaW9vbmlcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJsb2dpbjogUEFNIHZpZ2EsIGthdGtlc3RhbjogJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxMiBsb2dpbi11dGlscy9jaHNoLmM6MjExIGxvZ2luLXV0aWxzL2xvZ2luLmM6ODI3CisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo3OSBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQwIG1vdW50L2xvbW91bnQuYzo3NDIKKyM6IG1vdW50L2xvbW91bnQuYzo3NDUKK21zZ2lkICJQYXNzd29yZDogIgorbXNnc3RyICJQYXJvb2w6ICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxNSBsb2dpbi11dGlscy9jaHNoLmM6MjE0Cittc2dpZCAiSW5jb3JyZWN0IHBhc3N3b3JkLiIKK21zZ3N0ciAiVmFsZSBwYXJvb2wiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJLYXN1dGFqYSBpbmZvcm1hdHNpb29uIGVpIG11dXR1bnVkXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIkthc3V0YW1pbmU6ICVzIFsgLWYgcORyaXNuaW1pIF0gWyAtbyBrb250b3JdICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWyAtcCBvZmZpY2UtcGhvbmUgXVxuIgorIlx0WyAtaCBob21lLXBob25lIF0gIgorbXNnc3RyICIiCisiWyAtcCB09vZ0ZWxlZm9uXVxuIgorIlx0WyAtaCBrb2R1bmUgdGVsZWZvbl0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc5Cittc2dpZCAiT2ZmaWNlIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozODAKK21zZ2lkICJIb21lIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkthdGtlc3RhdHVkXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmllbGQgaXMgdG9vIGxvbmcuXG4iCittc2dzdHIgInbkbGkgb24gbGlpZ2EgcGlra1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiclYycgZWkgb2xlIGx1YmF0dWRcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICJKdXR0c/xtYm9saWQgZWkgb2xlIGx1YmF0dWRcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxMgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiS2FzdXRhamEgaW5mb3JtYXRzaW9vbmkgZWkgbXV1ZGV0dWQuIFByb292aWdlIGhpbGplbSB1dWVzdGlcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiS2FzdXRhamEgaW5mb3JtYXRzaW9vbiBvbiBtdXVkZXR1ZFxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBzaGVsbCBvZiAlc1xuIgorbXNnc3RyICIlczogXCIlc1wiIHBvbGUga2lyamFzIGZhaWxpcyAvZXRjL3NoZWxsc1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogUnVubmluZyBVSUQgZG9lc24ndCBtYXRjaCBVSUQgb2YgdXNlciB3ZSdyZSBhbHRlcmluZywgc2hlbGwgY2hhbmdlICIKKyJkZW5pZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBZb3VyIHNoZWxsIGlzIG5vdCBpbiAvZXRjL3NoZWxscywgc2hlbGwgY2hhbmdlIGRlbmllZFxuIgorbXNnc3RyICIlczogVGVpZSBzaGVsbCBwb2xlIGtpcmphcyBmYWlsaXMgL2V0Yy9zaGVsbHMsIHNoZWxsaSBlaSBtdXVkYVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiTXV1ZGFtZSBrYXN1dGFqYSAlcyBzaGVsbGlcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyMgorbXNnaWQgIk5ldyBzaGVsbCIKK21zZ3N0ciAiVXVzIHNoZWxsIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJTaGVsbCBq5Gkgc2FtYWtzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiU2hlbGxpIGVpIG11dWRldHVkLCBwcm9vdmlnZSBoaWxqZW0gdXVlc3RpXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgY2hhbmdlZC5cbiIKK21zZ3N0ciAiU2hlbGwgb24gbXV1ZGV0dWRcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1c2VybmFtZSBdXG4iCittc2dzdHIgIiIKKyJLYXN1dGFtaW5lOiAlcyBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyBrYXN1dGFqYW5pbWkgXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiBzaGVsbGkgcGVhYiBhbmRtYSBrb29zIHTkaWVsaWt1IHRlZWdhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBlaSBla3Npc3RlZXJpXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgZXhlY3V0YWJsZS5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBlaSBvbGUgdORpZGV0YXZcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6ICclYycgZWkgb2xlIGx1YmF0dWRcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6IEp1aHRz/G1ib2xpZCBlaSBvbGUgbHViYXR1ZFxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc1IGxvZ2luLXV0aWxzL2Noc2guYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIkhvaWF0dXM6IFwiJXNcIiBwb2xlIGtpcmphcyBmYWlsaXMgL2V0Yy9zaGVsbHNcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIgcG9sZSBraXJqYXMgZmFpbGlzIC9ldGMvc2hlbGxzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVc2UgLWwgb3B0aW9uIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICIlczoga2FzdXRhZ2UgLWwgbHViYXR1ZCBzaGVsbGlkZSBuaW1la2lyamEgdmFhdGFtaXNla3NcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIkthc3V0YWdlICVzIC1sIGx1YmF0dWQgc2hlbGxpZGUgbmltZWtpcmphIHZhYXRhbWlzZWtzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICJFaSBsZWlkdSD8aHRlZ2kgbHViYXR1ZCBzaGVsbGlcbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZywgZXhpdGluZy4iCittc2dzdHIgImVpIHN1dWRhIGF2YWRhIGZhaWxpICVzIGx1Z2VtaXNla3MiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzoxNDgKK21zZ2lkICJ1c2FnZTogbGFzdCBbLSNdIFstZiBmaWxlXSBbLXQgdHR5XSBbLWggaG9zdG5hbWVdIFt1c2VyIC4uLl1cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogWy0jXSBbLWYgZmFpbF0gWy10IHR0eV0gWy1oIGhvc3RpbmltaV0gW2thc3V0YWphIC4uLl1cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIgIHZlZWwgbWFzaW5hcyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wIGFsZ2FiICVzIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzgwIGxvZ2luLXV0aWxzL2xhc3QuYzozOTggbG9naW4tdXRpbHMvbGFzdC5jOjQ0OQorbXNnaWQgImxhc3Q6IG1hbGxvYyBmYWlsdXJlLlxuIgorbXNnc3RyICJsYXN0OiBN5Gx1IHNhaSBvdHNhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0MjUKK21zZ2lkICJsYXN0OiBnZXRob3N0bmFtZSIKK21zZ3N0ciAibGFzdDogZ2V0aG9zdG5hbWUiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImludGVycnVwdGVkICUxMC4xMHMgJTUuNXMgXG4iCittc2dzdHIgIiIKKyJcbiIKKyJrYXRrZXN0YXR1ZCAlMTAuMTBzICU1LjVzIFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIlNhYXR1c2xpayB2aWdhOiBlaSBzdXVkYSB0YWFzYXZhZGEgdGVybWluYWxpOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIKK21zZ3N0ciAiJXMgcG9sZSBwbG9ra3NlYWRlIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIzOAorbXNnaWQgIkZBVEFMOiBiYWQgdHR5IgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICJsb2dpbjogLWggb24gYWludWx0IHN1cGVya2FzdXRhamFsZVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ4OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9naW4gWy1mcF0gW3VzZXJuYW1lXVxuIgorbXNnc3RyICJLYXN1dGFtaW5lOiBsb2dpbiBbLWZwXSBba2FzdXRhamFuaW1pXVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBpbml0aWFsaXplIFBBTTogJXMiCittc2dzdHIgIkVpIHN1dXRudWQgaW5pdHNpYWxpc2VlcmlkYSBQQU0naTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTk1Cittc2dpZCAibG9naW46ICIKK21zZ3N0ciAibG9naW46ICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOICVkIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiRkFJTEVEIExPR0lOICVkIEZST00gJXMgRk9SICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkxvZ2luIGluY29ycmVjdFxuIgorIlxuIgorbXNnc3RyICIiCisiTG9naW4gaW5jb3JyZWN0XG4iCisiXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRPTyBNQU5ZIExPR0lOIFRSSUVTICglZCkgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJUT08gTUFOWSBMT0dJTiBUUklFUyAoJWQpIEZST00gJXMgRk9SICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NICVzIEZPUiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxvZ2luIGluY29ycmVjdFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MQorIywgYy1mb3JtYXQKK21zZ2lkICJOVUxMIHVzZXIgbmFtZSBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdXNlciBuYW1lIFwiJXNcIiBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzE3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgImxvZ2luOiBN5Gx1IHNhaSBvdHNhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzYxCittc2dpZCAiSWxsZWdhbCB1c2VybmFtZSIKK21zZ3N0ciAiVmlnYW5lIGthc3V0YWphbmltaSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9naW4gcmVmdXNlZCBvbiB0aGlzIHRlcm1pbmFsLlxuIgorbXNnc3RyICJLYXN1dGFqYSAlcyBlaSB0b2hpIHNlbGxlbHQgdGVybWluYWxpbHRzaXNzZSBsb2dpZGFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiCittc2dzdHIgIkxPR0lOICVzIFJFRlVTRUQgT04gVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjg2NworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiTG9naW4gaW5jb3JyZWN0XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgIkRJQUxVUCBBVCAlcyBCWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMgRlJPTSAlcyIKK21zZ3N0ciAiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyIKK21zZ3N0ciAiUk9PVCBMT0dJTiBPTiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIEZST00gJXMiCittc2dzdHIgIkxPR0lOIE9OICVzIEJZICVzIEZST00gJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwOAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyIKK21zZ3N0ciAiTE9HSU4gT04gJXMgQlkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEyOQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBuZXcgbWFpbC5cbiIKK21zZ3N0ciAiVGVpbGUgb24gdXVzaSBraXJqdVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAiVGVpbGUgb24ga2lyanVcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjogVmlnYSBmb3JrJ2ltaXNlbDogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyMgorIywgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiVElPQ1NDVFRZIGVpIPVubmVzdHVudWQ6ICVtIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjgKK21zZ2lkICJzZXR1aWQoKSBmYWlsZWQiCittc2dzdHIgInNldHVpZCgpIGVpIPVubmVzdHVudWQiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBkaXJlY3RvcnkgJXMhXG4iCittc2dzdHIgIkthdGFsb29naSAlcyBwb2xlIVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9nZ2luZyBpbiB3aXRoIGhvbWUgPSBcIi9cIi5cbiIKK21zZ3N0ciAiTG9naW4gc2lzc2Uga29kdWthdGFsb29naWdhIFwiL1wiXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgImxvZ2luOiBFaSBq5HRrdSBt5Gx1IHNoZWxsLXNrcmlwdGlsZVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGNvdWxkbid0IGV4ZWMgc2hlbGwgc2NyaXB0OiAlcy5cbiIKK21zZ3N0ciAibG9naW46IEVpIHN1dXRudWQga+Rpdml0YWRhIHNoZWxsIHNrcmlwdGk6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gc2hlbGw6ICVzLlxuIgorbXNnc3RyICJsb2dpbjogc2hlbGxpIHBvbGU6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJXMgbG9naW46ICIKK21zZ3N0ciAiIgorIlxuIgorIiVzIGxvZ2luOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lIG11Y2ggdG9vIGxvbmcuXG4iCittc2dzdHIgIkthc3V0YWphbmltaSBvbiBsaWlnYSBwaWtrXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMworbXNnaWQgIk5BTUUgdG9vIGxvbmciCittc2dzdHIgIk5pbWkgb24gbGlpZ2EgcGlrayIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgIkthc3V0YWphbmltZWQgZWkgdG9oaSBhbGF0YSBtaWludXNlZ2FcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIwCisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IGJhcmUgbGluZWZlZWRzLlxuIgorbXNnc3RyICJMaWlnYSBwYWxqdSB0/GhqZSByaWR1XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIlRPSFVUVUxUIHJlYXZhaGV0dXNpIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgbG9naW46ICUuKnMgIgorbXNnc3RyICJWaWltYXRpIGxvZ2ludWQ6ICUuKnMgIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnJvbSAlLipzXG4iCittc2dzdHIgIm1hc2luYXN0ICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAidGVybWluYWxpbCAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorbXNnc3RyICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gRkFJTFVSRSBPTiAlcywgJXMiCittc2dzdHIgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgRlJPTSAlcywgJXMiCittc2dzdHIgIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICIlZCBMT0dJTiBGQUlMVVJFUyBPTiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyB5XG4iCittc2dzdHIgIm9uIHNpc3NlIGz8bGl0YXR1ZCAoeSlcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5cbiIKK21zZ3N0ciAib24gduRsamEgbPxsaXRhdHVkIChuKVxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBtZXNnIFt5IHwgbl1cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogbWVzZyBbeSB8IG5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjk5Cittc2dpZCAibmV3Z3JwOiBXaG8gYXJlIHlvdT8iCittc2dzdHIgIm5ld2dycDogS2VzIFRlIG5paXN1Z3VuZSBvbGV0ZT8iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEwNyBsb2dpbi11dGlscy9uZXdncnAuYzoxMjEKK21zZ2lkICJuZXdncnA6IHNldGdpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXRnaWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNCBsb2dpbi11dGlscy9uZXdncnAuYzoxMTYKK21zZ2lkICJuZXdncnA6IE5vIHN1Y2ggZ3JvdXAuIgorbXNnc3RyICJuZXdncnA6IFNlbGxpc3QgZ3J1cHBpIHBvbGUiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyNQorbXNnaWQgIm5ld2dycDogUGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm5ld2dycDogUG9sZSD1aWd1c2kiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIlBvbGUgc2hlbGxpIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3x0dDptbXwrbWluXVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjEzNAorbXNnaWQgIlNodXRkb3duIHByb2Nlc3MgYWJvcnRlZCIKK21zZ3N0ciAiU2Vpc2thbWlzZSBwcm90c2VzcyBrYXRrZXN0YXRpIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiVzOiBBaW51bHQgcm9vdCBzYWFiIHP8c3RlZW1pIHNlaXNhdGFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIlNlZSBwYWlzdGFiIG9sZXZhdCBob21tZSwga2VzIHT1ZXN0aSBlaSBzYWEgbmlpa2F1YSBvb2RhdGE/XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzEwCittc2dpZCAiZm9yIG1haW50ZW5hbmNlOyBib3VuY2UsIGJvdW5jZSIKK21zZ3N0ciAiaG9vbGR1c2UgamFva3MgKG5hZ3UgaWtrYSkiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiU/xzdGVlbSBs5GhlYiBtYWhhIDUgbWludXRpIHDkcmFzdCIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNDMKK21zZ2lkICJMb2dpbiBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4iCittc2dzdHIgIlNpc3NlIGxvZ2ltaW5lIG9uIHNlZXT1dHR1IGtlZWxhdHVkIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgImJ1dXRpcyAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhhbHRlZCBieSAlczogJXMiCittc2dzdHIgInNlaXNrYXMgJXM6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzMgorbXNnaWQgIiIKKyJcbiIKKyJXaHkgYW0gSSBzdGlsbCBhbGl2ZSBhZnRlciByZWJvb3Q/IgorbXNnc3RyICIiCisiXG4iCisiTWlrcyBtYSBw5HJhc3QgcmVib290aSB2ZWVsIGVsdXMgb2xlbj8iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDM0Cittc2dpZCAiIgorIlxuIgorIk5vdyB5b3UgY2FuIHR1cm4gb2ZmIHRoZSBwb3dlci4uLiIKK21zZ3N0ciAiIgorIlxuIgorIk78/GQgdvVpYiB2b29sdSB25GxqYSBs/GxpdGFkYS4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBrZXJuZWwgcG93ZXItb2ZmIGZhY2lsaXR5Li4uXG4iCittc2dzdHIgIkt1dHN1biB25GxqYSB0dXVtYSB25GxqYWz8bGl0YW1pc2UgbWVldG9kaS4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIlZpZ2EgduRsamEgbPxsaXRhbWlzZWxcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCittc2dzdHIgIlTkaWRhbiBwcm9ncmFtbWkgXCIlc1wiIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBleGVjdXRpbmdcdCVzXG4iCittc2dzdHIgIlZpZ2EgJXMgdORpdG1pc2VsXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiCittc2dzdHIgIktJSVJFOiB0ZWFkZSBr9WlnaWxlIGthc3V0YWphbHQgJXM6IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBob3VycyAlZCBtaW51dGVzIgorbXNnc3RyICJT/HN0ZWVtIGzkaGViIG1haGEgJWQgdHVubmkgamEgJWQgbWludXRpIHDkcmFzdCIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBob3VyICVkIG1pbnV0ZXMiCittc2dzdHIgIlP8c3RlZW0gbORoZWIgbWFoYSAxIHR1bm5pIGphICVkIG1pbnV0aSBw5HJhc3QiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiU/xzdGVlbSBs5GhlYiBtYWhhICVkIG1pbnV0aSBw5HJhc3RcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBtaW51dGVcbiIKK21zZ3N0ciAiU/xzdGVlbSBs5GhlYiBtYWhhIDEgbWludXRpIHDkcmFzdFxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAic/xzdGVlbSBs5GhlYiBtYWhhIE9UU0VLT0hFIVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICJcdC4uLiAlcyAuLi5cbiIKK21zZ3N0ciAiXHQuLi4gJXMgLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTcwCittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHN3YXBvZmYuIFNocnVnISIKK21zZ3N0ciAiRWkgc2FhIHRlaGEgdXV0IHByb3RzZXNzaSBzYWFsaW1pc2UgduRsamEgbPxsaXRhbWlzZWtzLiBPZWghIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICJFaSBzYWEga+Rpdml0YWRhIHN3YXBvZmYnaSwgZWhrIHVtb3VudCB0ZWViIHNlbGxlIORyYSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1OTcKK21zZ2lkICJDYW5ub3QgZm9yayBmb3IgdW1vdW50LCB0cnlpbmcgbWFudWFsbHkuIgorbXNnc3RyICJFaSBzYWEgZm9ya2lkYSB1bW91bnRpIGvkaXZpdGFtaXNla3MsIHByb292aW4ga+RzaXRzaSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGV4ZWMgJXMsIHRyeWluZyB1bW91bnQuXG4iCittc2dzdHIgIkVpIHN1dWRhIGvkaXZpdGFkYSBwcm9ncmFtbWkgJXMsIHByb292aW4gdW1vdW50J2lcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTAKK21zZ2lkICJDYW5ub3QgZXhlYyB1bW91bnQsIGdpdmluZyB1cCBvbiB1bW91bnQuIgorbXNnc3RyICJFaSBzdXVkYSBr5Gl2aXRhZGEgdW1vdW50J2ksIGFubmFuIGFsbGEgdW1vdW50J2lnYSB0ZWdlbGVtaXNlbCIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTUKK21zZ2lkICJVbm1vdW50aW5nIGFueSByZW1haW5pbmcgZmlsZXN5c3RlbXMuLi4iCittc2dzdHIgIk1vbnRlZXJpbiBsYWh0aSBr9WlrIGFsbGVzauTkbnVkIGZhaWxpc/xzdGVlbWlkIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJzaHV0ZG93bjogQ291bGRuJ3QgdW1vdW50ICVzOiAlc1xuIgorbXNnc3RyICJzaHV0ZG93bjogRWkgc3V1ZGEgbGFodGkgbW9udGVlcmlkYSBrYXRhbG9vZ2kgJXM6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzIKK21zZ2lkICJCb290aW5nIHRvIHNpbmdsZSB1c2VyIG1vZGUuXG4iCittc2dzdHIgIkJ1dWRpbiD8aGVrYXN1dGFqYXJlemhpaW1pXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICLcaGVrYXN1dGFqYXJlemhpaW1pIHNoZWxsaSBlaSD1bm5lc3R1bnVkIGvkaXZpdGFkYVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTQwCittc2dpZCAiZm9yayBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAi3Ghla2FzdXRhamFyZXpoaWltaSBzaGVsbGkgamFva3MgZWkg9W5uZXN0dW51ZCBmb3JrJ2lkYVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjA4Cittc2dpZCAiZXJyb3Igb3BlbmluZyBmaWZvXG4iCittc2dzdHIgInZpZ2EgRklGTyBhdmFtaXNlbFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjEyCittc2dpZCAiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjU5Cittc2dpZCAiZXJyb3IgcnVubmluZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAidmlnYSBmaW5hbHByb2cnaSBr5Gl2aXRhbWlzZWxcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI2MworbXNnaWQgImVycm9yIGZvcmtpbmcgZmluYWxwcm9nXG4iCittc2dzdHIgInZpZ2EgZmluYWxwcm9nJ2kga+Rpdml0YW1pc2VsXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDUKK21zZ2lkICIiCisiXG4iCisiV3JvbmcgcGFzc3dvcmQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWYWxlIHBhcm9vbFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDE4Cittc2dpZCAibHN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAia2F0YWxvb2dpIGxzdGF0KCkgZWkg9W5uZXN0dW51ZFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2Cittc2dpZCAic3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJrYXRhbG9vZ2kgc3RhdCgpIGVpIPVubmVzdHVudWRcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQzNAorbXNnaWQgIm9wZW4gb2YgZGlyZWN0b3J5IGZhaWxlZFxuIgorbXNnc3RyICJrYXRhbG9vZ2kgYXZhbWluZSBlaSD1bm5lc3R1bnVkXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcGF3bmluZzogXCIlc1wiIHRvbyBmYXN0OiBxdWVuY2hpbmcgZW50cnlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAiZm9yayBlaSD1bm5lc3R1bnVkXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NDAgdGV4dC11dGlscy9tb3JlLmM6MTY2MworbXNnaWQgImV4ZWMgZmFpbGVkXG4iCittc2dzdHIgImV4ZWMgZWkg9W5uZXN0dW51ZFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0Cittc2dpZCAiY2Fubm90IG9wZW4gaW5pdHRhYlxuIgorbXNnc3RyICJFaSBzdXVkYSBhdmFkYSBpbml0dGFiJ2lcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgIlRFUk0gcG9sZSBzZWF0dWQgdvVpIHN0YXQgKHR0eSkgZWkg9W5uZXN0bnVkXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5MzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJ2aWdhIHRlZW51c2UgcGVhdGFtaXNlbDogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAidmlnYSB0ZWVudXNlIHBlYXRhbWlzZWw6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJ2aWdhIGZpbmFscHJvZydpIGvkaXZpdGFtaXNlbFxuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAibGlpZ2EgcGFsanUgaW92J3NpZCAobXV1dGtlIGZhaWxpIGxvZ2luLXV0aWxzL3R0eW1zZy5jKSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIKK21zZ3N0ciAiduRnYSBwaWtrIGFyZ3VtZW50IgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgImZvcmsgZWkg9W5uZXN0dW51ZCIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICJmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiBWaWdhbmUgdmVha29vZCIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIHBhc3N3b3JkIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgZ3JvdXAgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIiCisKKyMgWFhYIGJ1ZworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiIgorCisjIFhYWCBidWcKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCB1bmxvY2sgJXM6ICVzICh5b3VyIGNoYW5nZXMgYXJlIHN0aWxsIGluICVzKVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgdW5jaGFuZ2VkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI5NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gY2hhbmdlcyBtYWRlXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBwYXNzd29yZHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCB5b3UgbGlrZSB0byBlZGl0ICVzIG5vdyBbeS9uXT8gIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICJLYXN1dGFtaW5lOiAlcyBbZmFpbF1cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IGVpIHN1dWRhIGF2YWRhIGFqdXRpc3QgZmFpbGlcbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICJUZWFkZSBr9WlnaWxlIGthc3V0YWphbHQgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiBlaSBoYWtrYSAlcyBsdWdlbWEsIGthc3V0YSBzdGFuZGFyZHNpc2VuZGl0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgIiVzOiBlaSBzdXVkYSBsdWdlZGEgJXNcbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgc3RhdCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IGVpIHN1dWRhIGx1Z2VkYSBhanV0aXNlIGZhaWxpIHN0YWF0dXN0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBlaSBzdXVkYSBsdWdlZGEgYWp1dGlzdCBmYWlsaVxuIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2NCBtaXNjLXV0aWxzL2NhbC5jOjM3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkYXkgdmFsdWU6IHVzZSAxLSVkIgorbXNnc3RyICJWaWdhbmUgYWFzdGEgbnVtYmVyLCBsdWJhdHVkIG9uIDEtOTk5OSIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjgKK21zZ2lkICJpbGxlZ2FsIG1vbnRoIHZhbHVlOiB1c2UgMS0xMiIKK21zZ3N0ciAiVmlnYW5lIGt1dSBudW1iZXIsIGx1YmF0dWQgb24gMS0xMiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNzIKK21zZ2lkICJpbGxlZ2FsIHllYXIgdmFsdWU6IHVzZSAxLTk5OTkiCittc2dzdHIgIlZpZ2FuZSBhYXN0YSBudW1iZXIsIGx1YmF0dWQgb24gMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJXMgJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY2FsIFstMTNzbWp5Vl0gW1tbZGF5XSBtb250aF0geWVhcl1cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogY2FsIFstMTNzbWp5Vl0gW1trdXVdIGFhc3RhXVxuIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbK2Zvcm1hdF0gW2RheSBtb250aCB5ZWFyXVxuIgorbXNnc3RyICJLYXN1dGFtaW5lOiAlc1srZm9ybWFhdF0gW2t1dXDkZXYga3V1IGFhc3RhXVxuIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjUwCittc2dpZCAiU3QuIFRpYidzIERheSIKK21zZ3N0ciAiUPxoYSBUaWInaSBw5GV2IgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzo1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAiZWkgc3V1ZGEgYXZhZGEgc2VhZGV0ICVzIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzXG4iCittc2dzdHIgIiVzOiB0dW5kbWF0dSBzaWduYWFsICVzXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBwcm9jZXNzIFwiJXNcIlxuIgorbXNnc3RyICIlczogZWkgbGVpYSBwcm90c2Vzc2kgXCIlc1wiXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjMxNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXM7IHZhbGlkIHNpZ25hbHM6XG4iCittc2dzdHIgIiVzOiB0dW5kbWF0dSBzaWduYWFsICVzLCB0dW50dWQgc2lnbmFhbGlkOlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorbXNnc3RyICJLYXN1dGFtaW5lOiAlcyBbIC1zIHNpZ25hYWwgfCAtcCBdIFsgLWEgXSBwaWQgLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgLWwgWyBzaWduYWwgXVxuIgorbXNnc3RyICIgICAgICAgICAgICAgJXMgLWwgWyBzaWduYWFsIF1cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiBvcGVubG9nOiBwYXRobmFtZSB0b28gbG9uZ1xuIgorbXNnc3RyICJLYXN1dGFqYW5pbWkgb24gbGlpZ2EgcGlra1xuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQ6ICVzLlxuIgorbXNnc3RyICJQbG9raSBzdXVydXM6ICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiAlczogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogJXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiB0dW5kbWF0dSBrYXRlZ29vcmlhIG5pbWk6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBwcmlvcml0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiB0dW5kbWF0dSBwcmlvcml0ZWVkaSBuaW1pOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6IGxvZ2dlciBbLWlzXSBbLWYgZmlsZV0gWy1wIHByaV0gWy10IHRhZ10gWy11IHNvY2tldF0gWyBtZXNzYWdlIC4uLiBdXG4iCittc2dzdHIgIiIKKyJLYXN1dGFtaW5lOiBsb2dnZXIgWy1pc10gWy1mIGZhaWxdIFstcCBwcmldIFstdCBuaW1pXSBbLXUgc29ra2VsXSAiCisiWyB0ZWFkZSAuLi4gXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgIkthc3V0YW1pbmU6IGxvb2sgWy1kZmFdIFstdCBt5HJrXSBzdHJpbmcgW2ZhaWxdXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwNSBtaXNjLXV0aWxzL21jb29raWUuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiRWkgc3V1dG51ZCBhdmFkYSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDkgbWlzYy11dGlscy9tY29va2llLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdvdCAlZCBieXRlcyBmcm9tICVzXG4iCittc2dzdHIgIlNhaW4gJWQgYmFpdGkgJXMgc2Vlc3RcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0CisjLCBmdXp6eQorbXNnaWQgIm91dCBvZiBtZW1vcnk/IgorbXNnc3RyICJN5Gx1IHNhaSBvdHNhXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHN5bWxpbms6ICVzIgorbXNnc3RyICJpb2N0bCgpIGFiaWwga2VsbGEgbHVnZW1pbmUgJXMga2F1ZHUgZWkg9W5uZXN0dW51ZCIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjIzMSBtaXNjLXV0aWxzL25hbWVpLmM6MjU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICJzdGF0KCVzKSBlaSD1bm5lc3R1bnVkIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDQ5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXSBwYXRobmFtZSBbcGF0aG5hbWUgLi4uXVxuIgorbXNnc3RyICJLYXN1dGFtaW5lOiAlcyBbIHb1dG1lZCBdIHNlYWRlIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkIHBhcnRpdHNpb29uaTpcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXgsIC0tbW91bnRwb2ludHMgICBzaG93IG1vdW50IHBvaW50IGRpcmVjdG9yaWVzIHdpdGggYSAnRCdcbiIKKyIgLW0sIC0tbW9kZXMgICAgICAgICBzaG93IHRoZSBtb2RlIGJpdHMgb2YgZWFjaCBmaWxlXG4iCisiIC1vLCAtLW93bmVycyAgICAgICAgc2hvdyBvd25lciBhbmQgZ3JvdXAgbmFtZSBvZiBlYWNoIGZpbGVcbiIKKyIgLWwsIC0tbG9uZyAgICAgICAgICB1c2UgYSBsb25nIGxpc3RpbmcgZm9ybWF0ICgtbSAtbyAtdikgXG4iCisiIC1uLCAtLW5vc3ltbGlua3MgICAgZG9uJ3QgZm9sbG93IHN5bWxpbmtzXG4iCisiIC12LCAtLXZlcnRpY2FsICAgICAgdmVydGljYWwgYWxpZ24gb2YgbW9kZXMgYW5kIG93bmVyc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBuYW1laSgxKS5cbiIKK21zZ3N0ciAiIgorCisjIFhYWCBzdGF0J2lkYQorIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQ6ICVzIgorbXNnc3RyICJlaSBzdXVkYSBzdGF0J2lkYSBzZWFkZXQgJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiJXM6IE3kbHUgc2FpIG90c2FcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogJXMg/G1iZXIgbmltZXRhbWluZSAlcyAta3MgZWkg9W5uZXN0bnVkOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogJXMga3VzdCBrdWh1IGZhaWxpZC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2ZhaWxdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvciAlZDogJXNcbiIKK21zZ3N0ciAiS2lyanV0YW1pc2UgdmlnYSBzZWFkbWVsICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3I6ICVzXG4iCittc2dzdHIgIktpcmp1dGFtaXNlIHZpZ2Egc2VhZG1lbCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCB3cml0ZSBzY3JpcHQgZmlsZSwgZXJyb3I6ICVzXG4iCittc2dzdHIgInN0YXQoJXMpIGVpIPVubmVzdHVudWQiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzNworIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgZG9uZSwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW5wdHkgZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIHB0eSdzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyA8dGltaW5nZmlsZT4gWzx0eXBlc2NyaXB0PiBbPGRpdmlzb3I+XV1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorIywgZnV6enkKK21zZ2lkICJ3cml0ZSB0byBzdGRvdXQgZmFpbGVkIgorbXNnc3RyICIlcyBhdmFtaW5lIGVpIPVubmVzdHVudWQiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBhYmlsIGtlbGxhIGx1Z2VtaW5lICVzIGthdWR1IGVpIPVubmVzdHVudWQiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiRWkgc3V1ZGEgYXZhZGEgZmFpbGkgYCVzJyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiRWkgc3V1ZGEgYXZhZGEgZmFpbGkgYCVzJyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICJpb2N0bCgpIGFiaWwga2VsbGEgbHVnZW1pbmUgJXMga2F1ZHUgZWkg9W5uZXN0dW51ZCIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQXJndW1lbnQgZXJyb3IsIHVzYWdlXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzUgbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc3CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGV8ZGVmYXVsdCBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGVuZCBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcmRvd24gWzAtNjBdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDYxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgYmxhbmtcbiIKK21zZ3N0ciAiZm9yayBlaSD1bm5lc3R1bnVkIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgdW5ibGFua1xuIgorbXNnc3RyICJmb3JrIGVpIPVubmVzdHVudWQiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgIkVpIHN1dWRhIGF2YWRhIGZhaWxpICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90ICh1bilzZXQgcG93ZXJzYXZlIG1vZGVcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTIyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAia2xvZ2N0bCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IHJlYWQgJXNcbiIKK21zZ3N0ciAiRWkgc3V1dG51ZCBhdmFkYSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWRdIFstcCBwaWRmaWxlXSBbLXMgc29ja2V0cGF0aF0gWy1UIHRpbWVvdXRdXG4iCittc2dzdHIgIkthc3V0YW1pbmU6IFstI10gWy1mIGZhaWxdIFstdCB0dHldIFstaCBob3N0aW5pbWldIFtrYXN1dGFqYSAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgWy1yfHRdIFstbiBudW1dIFstcyBzb2NrZXRwYXRoXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiAgICAgICAgICAgICAlcyAtbCBbIHNpZ25hYWwgXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTUyCisjLCBmdXp6eQorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgIiVzOiBUdW5kbWF0dSBhcmd1bWVudDogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorIywgZnV6enkKK21zZ2lkICJzb2NrZXQiCittc2dzdHIgIlBsb2tpIHN1dXJ1czogJWRcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE3MAorbXNnaWQgImNvbm5lY3QiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE4OQorIywgZnV6enkKK21zZ2lkICJ3cml0ZSIKK21zZ3N0ciAic2FsdmVzdGEgKFcpIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTk3CisjLCBmdXp6eQorbXNnaWQgInJlYWQgY291bnQiCittc2dzdHIgImx1Z2VzaW4gJWNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjIwMworbXNnaWQgImJhZCByZXNwb25zZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1dWlkZCBkYWVtb24gYWxyZWFkeSBydW5uaW5nIGF0IHBpZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtIHNvY2tldDogJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgYmluZCB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiRWkgc3V1dG51ZCBhdmFkYSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsaXN0ZW4gb24gdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIkVpIHN1dXRudWQgYXZhZGEgJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciByZWFkaW5nIGZyb20gY2xpZW50LCBsZW4gPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlcmF0aW9uICVkLCBpbmNvbWluZyBudW0gPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCByYW5kb20gVVVJRDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQgJXMgYW5kICVkIGZvbGxvd2luZ1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkICVkIFVVSUQnczpcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIG9wZXJhdGlvbiAlZFxuIgorbXNnc3RyICJ2aWdhbmUgaWRlbnRpZmlrYWF0b3IiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IGx1Z2VtaXNlIHZpZ2EgZmFpbGlzICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MjQgbWlzYy11dGlscy91dWlkZC5jOjU1MQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjYWxsaW5nIHV1aWRkIGRhZW1vbiAoJXMpOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgYW5kIHN1YnNlcXVlbnQgJWQgVVVJRCdzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNgorIywgYy1mb3JtYXQKK21zZ2lkICJMaXN0IG9mIFVVSUQnczpcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZXhwZWN0ZWQgcmVwbHkgbGVuZ3RoIGZyb20gc2VydmVyICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXJdIFstdF1cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogJXMgWyB29XRtZWQgXSBzZWFkZSAuLi5cbiIKKworIzogbWlzYy11dGlscy93aGVyZWlzLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBkaXIgLi4uIC1mIF0gbmFtZS4uLlxuIgorbXNnc3RyICJLYXN1dGFtaW5lOiB3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0ga2F0YWxvb2cgLi4uIC1mIF0gbmltaS4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjEyOAorIywgZnV6enkKK21zZ2lkICJjYWxsb2MgZmFpbGVkIgorbXNnc3RyICJN5Gx1IHNhaSBvdHNhIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE1MAorIywgZnV6enkKK21zZ2lkICJzdHJkdXAgZmFpbGVkIgorbXNnc3RyICIlcyBhdmFtaW5lIGVpIPVubmVzdHVudWQiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICJWaWdhICVzIHN1bGdlbWlzZWxcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJTZWFkZSAlcyBlaSBzaXNhbGRhIORyYXR1bnRhdmF0IHBhcnRpdHNpb29uaXRhYmVsaXRcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgZm91bmQgYSBtYWdpYyBzdHJpbmcgYXQgb2Zmc2V0IDB4JWp4IC0gaWdub3JlLiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiJXM6IEF2YW1pbmUgZWkg9W5uZXN0dW51ZDogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgInNlZWsgZWkg9W5uZXN0dW51ZCIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXpkIGJ5dGVzIFsiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiXSBlcmFzZWQgYXQgb2Zmc2V0IDB4JWp4ICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI5MiBtb3VudC9zd2Fwb24uYzoxOTggbW91bnQvc3dhcG9uLmM6MjY2CisjOiBtb3VudC9zd2Fwb24uYzo0MTEgbW91bnQvc3dhcG9uLmM6NTcwIG1vdW50L3N3YXBvbi5jOjc3MgorIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICJzZWVrIGVpIPVubmVzdHVudWQiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgb2Zmc2V0ICclcycgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIkthc3V0YW1pbmU6ICVzIFsgdvV0bWVkIF0gc2VhZGUgLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWEsIC0tYWxsICAgICAgICAgICB3aXBlIGFsbCBtYWdpYyBzdHJpbmdzIChCRSBDQVJFRlVMISlcbiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0tbm8tYWN0ICAgICAgICBldmVyeXRoaW5nIHRvIGJlIGRvbmUgZXhjZXB0IGZvciB0aGUgd3JpdGUoKSBjYWxsXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IHRvIGVyYXNlLCBpbiBieXRlc1xuIgorIiAtcCwgLS1wYXJzYWJsZSAgICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB3aXBlZnMoOCkuXG4iCittc2dzdHIgIkthc3V0YWphIGluZm9ybWF0c2lvb24gb24gbXV1ZGV0dWRcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozODcKK21zZ2lkICItLW9mZnNldCBhbmQgLS1hbGwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZTogZWkgbGVpYSBTaW51IHRlcm1pbmFsaXNlYWRtZSBuaW1lXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IHlvdSBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdHVybmVkIG9mZi5cbiIKK21zZ3N0ciAid3JpdGU6IFN1bCBvbiBraXJqdXRhbWlz9WlndXMgduRsamEgbPxsaXRhdHVkXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIG5vdCBsb2dnZWQgaW4gb24gJXMuXG4iCittc2dzdHIgIndyaXRlOiAlcyBwb2xlIHRlcm1pbmFsaWx0ICVzIHNpc3NlIGxvZ2l0dWRcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyBrZWVsZHViIHRlYWRldGVzdCB0ZXJtaW5hbGlsICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHdyaXRlIHVzZXIgW3R0eV1cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogd3JpdGUga2FzdXRhamEgW3R0eV1cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICJ3cml0ZTogJXMgcG9sZSBzaXNzZSBsb2dpdHVkXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZFxuIgorbXNnc3RyICJ3cml0ZTogJXMga2VlbGR1YiB0ZWFkZXRlc3RcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbG9nZ2VkIGluIG1vcmUgdGhhbiBvbmNlOyB3cml0aW5nIHRvICVzXG4iCittc2dzdHIgIiIKKyJ3cml0ZTogJXMgb24gc2lzc2UgbG9naXR1ZCByb2hrZW0ga3VpIPxoZXN0IGtvaGFzdCwga2FzdXRhbiB0ZW1hIHRlcm1pbmFsaSAlIgorInNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIlRlYWRlIGthc3V0YWphbHQgJXNAJXMgKCVzKSB0ZXJtaW5hbGlsICVzIGtlbGwgJXMuLi4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiVGVhZGUga2FzdXRhamFsdCAlc0AlcyB0ZXJtaW5hbGlsICVzIGtlbGwgJXMuLi4iCisKKyM6IG1vdW50L2ZzdGFiLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGVycm9yIHJlYWRpbmcgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTcyIG1vdW50L2ZzdGFiLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjb3VsZCBub3Qgb3BlbiAlcyAtIHVzaW5nICVzIGluc3RlYWRcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MworbXNnaWQgInRpbWVkIG91dCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjc5MiBtb3VudC9mc3RhYi5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyAoJXMpIC0gbXRhYiBub3QgdXBkYXRlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjg1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjg3NAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG93bmVyIG9mICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODk4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MzYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBzZXQgY2FwYWNpdHkgb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJzdGF0KCVzKSBlaSD1bm5lc3R1bnVkIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgc2l6ZWxpbWl0ICU8UFJJdTY0PiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiAlcyAodHlwZSAlPFBSSXUzMj4pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gdHlwZSAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgb3BlbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ0OCBtb3VudC9sb21vdW50LmM6NDgwIG1vdW50L2xvbW91bnQuYzo1NDIKKyM6IG1vdW50L2xvbW91bnQuYzo1ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iCittc2dzdHIgIiVzOiBLYXN1dGFqYXQgXCIlc1wiIHBvbGUgb2xlbWFzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NTkgbW91bnQvbG9tb3VudC5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZnJlZSBsb29wIGRldmljZSIKK21zZ3N0ciAiJXMgcG9sZSBmbG9waXNlYWRlXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlPyAoSWYgc28sIHJlY29tcGlsZSBvciBgbW9kcHJvYmUgbG9vcCcuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6NjM2Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGlsZSByZWFkaW5nIHBhc3NwaHJhc2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjY3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiU2VrdG9yJWQgb24ganViYSBrYXN1dHVzZWxcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb2NrIGludG8gbWVtb3J5LCBleGl0aW5nLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgTE9PUF9TRVRfRkQgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0X2xvb3AoJXMsJXMsJWxsdSwlbGx1KTogc3VjY2Vzc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVsX2xvb3AoJXMpOiBzdWNjZXNzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjg0MAorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBkZWxldGUgZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwMzQgbW91bnQvbG9tb3VudC5jOjEwNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkxvb3AgZGV2aWNlIGlzICVzXG4iCittc2dzdHIgIlNlYWRlOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogZGV2aWNlIGlzIGJ1c3kiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbG9vcCBzdXBwb3J0IHdhcyBhdmFpbGFibGUgYXQgY29tcGlsZSB0aW1lLiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogaW1wcm9wZXJseSBxdW90ZWQgb3B0aW9uIHN0cmluZyAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlcyBmb3Igd3JpdGluZzogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo1ODEgbW91bnQvbW91bnQuYzoxMTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjU4OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAiZm9yayBlaSD1bm5lc3R1bnVkIgorCisjOiBtb3VudC9tb3VudC5jOjY3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgImZvcmsgZWkg9W5uZXN0dW51ZCIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHlvdSBkaWRuJ3Qgc3BlY2lmeSBhIGZpbGVzeXN0ZW0gdHlwZSBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIGFuZCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgc3dhcHNwYWNlXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgdHlwZSAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMDAyCittc2dpZCAibW91bnQgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTAwNAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBtb3VudCAlcyBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzQKK21zZ2lkICJtb3VudDogbG9vcCBkZXZpY2Ugc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTA3OQorbXNnaWQgIm1vdW50OiB0eXBlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMgYXMgbG9vcCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGdvaW5nIHRvIHVzZSB0aGUgbG9vcCBkZXZpY2UgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBmYWlsZWQgc2V0dGluZyB1cCBsb29wIGRldmljZVxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTE0MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2V0dXAgbG9vcCBkZXZpY2Ugc3VjY2Vzc2Z1bGx5XG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyAlcyBmb3VuZCAtIGNyZWF0aW5nIGl0Li5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTIxNQorbXNnaWQgIm1vdW50OiBhcmd1bWVudCB0byAtcCBvciAtLXBhc3MtZmQgbXVzdCBiZSBhIG51bWJlciIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBvcGVuICVzIGZvciBzZXR0aW5nIHNwZWVkIgorbXNnc3RyICJtb3VudDogZWkgc3V1ZGEgYXZhZGEgc2VhZGV0ICVzIGtpaXJ1c2Ugc2VhZG1pc2VrcyIKKworIzogbW91bnQvbW91bnQuYzoxMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHNwZWVkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHdhcm5pbmc6ICVzIHNlZW1zIHRvIGJlIG1vdW50ZWQgcmVhZC13cml0ZS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTMKK21zZ2lkICIiCisibW91bnQ6IEkgY291bGQgbm90IGRldGVybWluZSB0aGUgZmlsZXN5c3RlbSB0eXBlLCBhbmQgbm9uZSB3YXMgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQxNgorbXNnaWQgIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDE5Cittc2dpZCAibW91bnQ6IG1vdW50IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQyOQorbXNnaWQgIm1vdW50OiBtdXN0IGJlIHN1cGVydXNlciB0byB1c2UgbW91bnQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDMzIG1vdW50L21vdW50LmM6MTQzNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgYnVzeSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MzkKK21zZ2lkICJtb3VudDogcHJvYyBhbHJlYWR5IG1vdW50ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgYSBzeW1ib2xpYyBsaW5rIHRvIG5vd2hlcmUiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdFxuIgorIiAgICAgICAoYSBwYXRoIHByZWZpeCBpcyBub3QgYSBkaXJlY3RvcnkpXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorIiAgICAgICBtaXNzaW5nIGNvZGVwYWdlIG9yIGhlbHBlciBwcm9ncmFtLCBvciBvdGhlciBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTAxCittc2dpZCAiIgorIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorIiAgICAgICBpbnN0ZWFkIG9mIHNvbWUgbG9naWNhbCBwYXJ0aXRpb24gaW5zaWRlPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTE0Cittc2dpZCAibW91bnQgdGFibGUgZnVsbCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiBjYW4ndCByZWFkIHN1cGVyYmxvY2siCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogdW5rbm93biBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdW5rbm93biBmaWxlc3lzdGVtIHR5cGUgJyVzJyIKK21zZ3N0ciAiICAgbCAgIGFuZGEgbmltZWtpcmkgdHVudHVkIGZhaWxpc/xzdGVlbWlkZSB0/PxwaWRlc3QiCisKKyM6IG1vdW50L21vdW50LmM6MTUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogcHJvYmFibHkgeW91IG1lYW50ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU0MgorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDUKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICd2ZmF0Jz8iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBoYXMgd3JvbmcgZGV2aWNlIG51bWJlciBvciBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSAobWF5YmUgdHJ5IGAtbyBsb29wJz8pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU3MgorbXNnaWQgImJsb2NrIGRldmljZSAiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgbW91bnQgJXMlcyByZWFkLW9ubHkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCByZW1vdW50ICVzJXMgcmVhZC13cml0ZSwgaXMgd3JpdGUtcHJvdGVjdGVkIgorbXNnc3RyICJtb3VudDogZWkgc3V1ZGEgYXZhZGEgc2VhZGV0ICVzIGtpaXJ1c2Ugc2VhZG1pc2VrcyIKKworIzogbW91bnQvbW91bnQuYzoxNTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCwgbW91bnRpbmcgcmVhZC1vbmx5IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTYwNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAiZm9yayBlaSD1bm5lc3R1bnVkIgorCisjOiBtb3VudC9tb3VudC5jOjE2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiAlcyBkb2VzIG5vdCBjb250YWluIFNFTGludXggbGFiZWxzLlxuIgorIiAgICAgICBZb3UganVzdCBtb3VudGVkIGFuIGZpbGUgc3lzdGVtIHRoYXQgc3VwcG9ydHMgbGFiZWxzIHdoaWNoIGRvZXMgbm90XG4iCisiICAgICAgIGNvbnRhaW4gbGFiZWxzLCBvbnRvIGFuIFNFTGludXggYm94LiBJdCBpcyBsaWtlbHkgdGhhdCBjb25maW5lZFxuIgorIiAgICAgICBhcHBsaWNhdGlvbnMgd2lsbCBnZW5lcmF0ZSBBVkMgbWVzc2FnZXMgYW5kIG5vdCBiZSBhbGxvd2VkIGFjY2VzcyB0b1xuIgorIiAgICAgICB0aGlzIGZpbGUgc3lzdGVtLiAgRm9yIG1vcmUgZGV0YWlscyBzZWUgcmVzdG9yZWNvbig4KSBhbmQgbW91bnQoOCkuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtIEknbGwgYXNzdW1lIG5mcyBiZWNhdXNlIG9mIHRoZSBjb2xvblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxOTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogcHJpbnQgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBwcmludCB0aGlzIGhlbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdCBtb3VudGVkIGZpbGVzeXN0ZW1zXG4iCisiICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1ZGluZyB2b2x1bWUgbGFiZWxzXG4iCisiU28gZmFyIHRoZSBpbmZvcm1hdGlvbmFsIHBhcnQuIE5leHQgdGhlIG1vdW50aW5nLlxuIgorIlRoZSBjb21tYW5kIGlzIGBtb3VudCBbLXQgZnN0eXBlXSBzb21ldGhpbmcgc29tZXdoZXJlJy5cbiIKKyJEZXRhaWxzIGZvdW5kIGluIC9ldGMvZnN0YWIgbWF5IGJlIG9taXR0ZWQuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IG1vdW50IGFsbCBzdHVmZiBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgIDogbW91bnQgZGV2aWNlIGF0IHRoZSBrbm93biBwbGFjZVxuIgorIiAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICAgOiBtb3VudCBrbm93biBkZXZpY2UgaGVyZVxuIgorIiAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICAgOiBvcmRpbmFyeSBtb3VudCBjb21tYW5kXG4iCisiTm90ZSB0aGF0IG9uZSBkb2VzIG5vdCByZWFsbHkgbW91bnQgYSBkZXZpY2UsIG9uZSBtb3VudHNcbiIKKyJhIGZpbGVzeXN0ZW0gKG9mIHRoZSBnaXZlbiB0eXBlKSBmb3VuZCBvbiB0aGUgZGV2aWNlLlxuIgorIk9uZSBjYW4gYWxzbyBtb3VudCBhbiBhbHJlYWR5IHZpc2libGUgZGlyZWN0b3J5IHRyZWUgZWxzZXdoZXJlOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIm9yIG1vdmUgYSBzdWJ0cmVlOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgb2xkZGlyIG5ld2RpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIG1vdW50IGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBkaXJcbiIKKyJBIGRldmljZSBjYW4gYmUgZ2l2ZW4gYnkgbmFtZSwgc2F5IC9kZXYvaGRhMSBvciAvZGV2L2Nkcm9tLFxuIgorIm9yIGJ5IGxhYmVsLCB1c2luZyAgLUwgbGFiZWwgIG9yIGJ5IHV1aWQsIHVzaW5nICAtVSB1dWlkIC5cbiIKKyJPdGhlciBvcHRpb25zOiBbLW5mRnJzdnddIFstbyBvcHRpb25zXSBbLXAgcGFzc3dkZmRdLlxuIgorIkZvciBtYW55IG1vcmUgZGV0YWlscywgc2F5ICBtYW4gOCBtb3VudCAuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQgKGVmZmVjdGl2ZSBVSUQgaXMgJWQpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyMjg4Cittc2dpZCAibm90aGluZyB3YXMgbW91bnRlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDYgbW91bnQvbW91bnQuYzoyMzMyCittc2dpZCAibW91bnQ6IG5vIHN1Y2ggcGFydGl0aW9uIGZvdW5kIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IHdhcm5pbmc6IG5vIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogbGluZSAlZCBpbiAlcyBpcyBiYWQlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxOQorbXNnaWQgIjsgcmVzdCBvZiBmaWxlIGlnbm9yZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3VuZHJpZXMuYzozMgorbXNnaWQgImJ1ZyBpbiB4c3RybmR1cCBjYWxsIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MjI1IG1vdW50L3N1bmRyaWVzLmM6MjgxIG1vdW50L3N1bmRyaWVzLmM6Mjk2CisjOiBtb3VudC94bWFsbG9jLmM6MTEKK21zZ2lkICJub3QgZW5vdWdoIG1lbW9yeSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICBMQUJFTCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgICAgVVVJRCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZGV2aWNlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZmlsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBmaWxlIHRvIGJlIHVzZWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstdl0gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZSBhbGwgc3dhcHNcbiIKKyIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGRpc2FibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWluaXRpYWxpemluZyB0aGUgc3dhcC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICJmb3JrIGVpIPVubmVzdHVudWRcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjM5CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2IGZhaWxlZCIKK21zZ3N0ciAiZXhlYyBlaSD1bm5lc3R1bnVkXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI0NworIywgZnV6enkKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgZWkg9W5uZXN0dW51ZCIKKworIzogbW91bnQvc3dhcG9uLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbHNlZWsgZmFpbGVkIgorbXNnc3RyICJzZWVrIGVpIPVubmVzdHVudWQiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgIiVzIGF2YW1pbmUgZWkg9W5uZXN0dW51ZCIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKKyMsIGZ1enp5Cittc2dpZCAic2FtZSIKK21zZ3N0ciAiTmltaSIKKworIzogbW91bnQvc3dhcG9uLmM6Mzg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgInNlZWsgZWkg9W5uZXN0dW51ZCIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyAtIGl0IGFwcGVhcnMgdG8gaGF2ZSBob2xlcy4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZ2V0IHNpemUgZmFpbGVkIgorbXNnc3RyICJzZWVrIGVpIPVubmVzdHVudWQiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDc4IG1vdW50L3N3YXBvbi5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvbiBmYWlsZWQiCittc2dzdHIgInNlZWsgZWkg9W5uZXN0dW51ZCIKKworIzogbW91bnQvc3dhcG9uLmM6NTA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZmluZCB0aGUgZGV2aWNlIGZvciAlcyIKK21zZ3N0ciAic3RhdCglcykgZWkg9W5uZXN0dW51ZCIKKworIzogbW91bnQvc3dhcG9uLmM6NTQwCittc2dpZCAiTm90IHN1cGVydXNlci4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgInNlZWsgZWkg9W5uZXN0dW51ZCIKKworIzogbW91bnQvc3dhcG9uLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgdW5zdXBwb3J0ZWQgcHJvZ3JhbSBuYW1lIChtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAtZlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAiZm9yayBlaSD1bm5lc3R1bnVkIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAiZm9yayBlaSD1bm5lc3R1bnVkIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJmb3JrIGVpIPVubmVzdHVudWQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IG1vdW50ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1bW91bnQ6ICVzOiBkZXZpY2UgaXMgYnVzeS5cbiIKKyIgICAgICAgIChJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGFib3V0IHByb2Nlc3NlcyB0aGF0IHVzZVxuIgorIiAgICAgICAgIHRoZSBkZXZpY2UgaXMgZm91bmQgYnkgbHNvZig4KSBvciBmdXNlcigxKSkiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1bW91bnQyLCB0cnlpbmcgdW1vdW50Li4uXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MjUyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgYnVzeSAtIHJlbW91bnRlZCByZWFkLW9ubHlcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb3VsZCBub3QgcmVtb3VudCAlcyByZWFkLW9ubHlcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoyNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdW1vdW50ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzozNjcKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBmaW5kIGxpc3Qgb2YgZmlsZXN5c3RlbXMgdG8gdW5tb3VudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzozOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0NjgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiU2VrdG9yJWQgb24ganViYSBrYXN1dHVzZWxcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJTZWt0b3IlZCBvbiBqdWJhIGthc3V0dXNlbFxuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKKyMsIGZ1enp5Cittc2dpZCAiQ2Fubm90IHVtb3VudCBcIlwiXG4iCittc2dzdHIgIkVpIHN1dWRhIGF2YWRhIHNlYWRtZWZhaWxpICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCB1bW91bnQgJXMgLS0gJXMgaXMgbW91bnRlZCBvdmVyIGl0IG9uIHRoZSBzYW1lIHBvaW50LiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgJXMgaW4gbXRhYlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBtb3VudGVkIChhY2NvcmRpbmcgdG8gbXRhYikiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogaXQgc2VlbXMgJXMgaXMgbW91bnRlZCBtdWx0aXBsZSB0aW1lcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgaW4gdGhlIGZzdGFiIChhbmQgeW91IGFyZSBub3Qgcm9vdCkiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgbW91bnQgZGlzYWdyZWVzIHdpdGggdGhlIGZzdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiY2hydCAtIG1hbmlwdWxhdGUgcmVhbC10aW1lIGF0dHJpYnV0ZXMgb2YgYSBwcm9jZXNzLlxuIgorIlxuIgorIlNldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSA8cG9saWN5PiA8cHJpb3JpdHk+IHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJHZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIlxuIgorIlNjaGVkdWxpbmcgcG9saWNpZXM6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0ZJRk9cbiIKKyIgIC1pIHwgLS1pZGxlICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9SUiAoZGVmYXVsdClcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHBcbiIKKyIgIC1wIHwgLS1waWQgICAgICAgICAgIG9wZXJhdGUgb24gZXhpc3RpbmcgZ2l2ZW4gcGlkXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBzaG93IG1pbiBhbmQgbWF4IHZhbGlkIHByaW9yaXRpZXNcbiIKKyIgIC12IHwgLS12ZXJib3NlICAgICAgIGRpc3BsYXkgc3RhdHVzIGluZm9ybWF0aW9uXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgInR1bmRtYXR1IgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBhdHRyaWJ1dGVzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHByaW9yaXR5OiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBtaW4vbWF4IHByaW9yaXR5XHQ6ICVkLyVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwaWQiCittc2dzdHIgIiVzOiBBdmFtaW5lIGVpIPVubmVzdHVudWQ6ICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIyNQorbXNnaWQgImN1cnJlbnQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjMzCittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHByaW9yaXR5IgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzOQorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyNDIKKyMsIGZ1enp5Cittc2dpZCAibmV3IgorbXNnc3RyICJ1dXMgKE4pIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBleGVjdXRlICVzIgorbXNnc3RyICJpb2N0bCgpIGFiaWwga2VsbGEgbHVnZW1pbmUgJXMga2F1ZHUgZWkg9W5uZXN0dW51ZCIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo1NworIywgZnV6enkKK21zZ2lkICJpb3ByaW9fZ2V0IGZhaWxlZCIKK21zZ3N0ciAiZm9yayBlaSD1bm5lc3R1bnVkXG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NzUKKyMsIGZ1enp5Cittc2dpZCAiaW9wcmlvX3NldCBmYWlsZWQiCittc2dzdHIgItxodGVnaSBwYXJ0aXRzaW9vbmkgcG9sZSBkZWZpbmVlcml0dWRcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisiXG4iCisiVXNhZ2U6XG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSA8Y29tbWFuZD4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBzY2hlZHVsaW5nIGNsYXNzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIDA6IG5vbmUsIDE6IHJlYWx0aW1lLCAyOiBiZXN0LWVmZm9ydCwgMzogaWRsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxMTAgc2NoZWR1dGlscy9pb25pY2UuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBwYXJzZSBudW1iZXIgJyVzJyIKK21zZ3N0ciAiZWkgc3V1ZGEgYXZhZGEgc2VhZGV0ICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgImV4ZWMgZWkg9W5uZXN0dW51ZFxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjExNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyBpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pICIKKyJbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGltZSB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwMCBzeXMtdXRpbHMvY3l0dW5lLmM6MzU3IHN5cy11dGlscy9jeXR1bmUuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRpbWVvdXQgZm9yICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMjcKK21zZ2lkICJDYW4ndCBzZXQgc2lnbmFsIGhhbmRsZXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzQ0IHN5cy11dGlscy9jeXR1bmUuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYywgJWYgc2VuZCAoY2hhci9zZWMpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJLYXN1dGFtaW5lOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmFpbF1cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZmlsZW5hbWU+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogJXMgWyB29XRtZWQgXSBzZWFkZSAuLi5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgZmFsbG9jYXRlKDEpLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDcKKyMsIGZ1enp5Cittc2dpZCAibm8gbGVuZ3RoIGFyZ3VtZW50IHNwZWNpZmllZCIKK21zZ3N0ciAiTGlpZ2EgcGFsanUgYXJndW1lbnRlXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDkKK21zZ2lkICJpbnZhbGlkIGxlbmd0aCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MQorbXNnaWQgImludmFsaWQgb2Zmc2V0IHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUzCisjLCBmdXp6eQorbXNnaWQgIm5vIGZpbGVuYW1lIHNwZWNpZmllZC4iCittc2dzdHIgIi0tZGF0ZSBwYXJhbWVldGVyIG9uIHB1dWR1XG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAic2VlayBlaSD1bm5lc3R1bnVkIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzo2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICUxJHMgWy1zeHVuXVstdyAjXSBmZCNcbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGZpbGUgWy1jXSBjb21tYW5kLi4uXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBkaXJlY3RvcnkgWy1jXSBjb21tYW5kLi4uXG4iCisiICAtcyAgLS1zaGFyZWQgICAgIEdldCBhIHNoYXJlZCBsb2NrXG4iCisiICAteCAgLS1leGNsdXNpdmUgIEdldCBhbiBleGNsdXNpdmUgbG9ja1xuIgorIiAgLXUgIC0tdW5sb2NrICAgICBSZW1vdmUgYSBsb2NrXG4iCisiICAtbiAgLS1ub25ibG9jayAgIEZhaWwgcmF0aGVyIHRoYW4gd2FpdFxuIgorIiAgLXcgIC0tdGltZW91dCAgICBXYWl0IGZvciBhIGxpbWl0ZWQgYW1vdW50IG9mIHRpbWVcbiIKKyIgIC1vICAtLWNsb3NlICAgICAgQ2xvc2UgZmlsZSBkZXNjcmlwdG9yIGJlZm9yZSBydW5uaW5nIGNvbW1hbmRcbiIKKyIgIC1jICAtLWNvbW1hbmQgICAgUnVuIGEgc2luZ2xlIGNvbW1hbmQgc3RyaW5nIHRocm91Z2ggdGhlIHNoZWxsXG4iCisiICAtaCAgLS1oZWxwICAgICAgIERpc3BsYXkgdGhpcyB0ZXh0XG4iCisiICAtViAgLS12ZXJzaW9uICAgIERpc3BsYXkgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjE5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGNvbW1hbmQgYXJndW1lbnRcbiIKK21zZ3N0ciAidvV0aSBgJXMnIHZhamFiIGFyZ3VtZW50aVxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBFaSBzdXVkYSBhdmFkYSBmYWlsaSAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogbHVnZW1pc2UgdmlnYSBmYWlsaXMgJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZXF1aXJlcyBmaWxlIGRlc2NyaXB0b3IsIGZpbGUgb3IgZGlyZWN0b3J5XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6Mjk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZm9yayBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImZvcmsgZWkg9W5uZXN0dW51ZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyJcbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogJXMgWyB29XRtZWQgXSBzZWFkZSAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLU0gPHNpemU+ICAgICBjcmVhdGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IG9mIHNpemUgPHNpemU+XG4iCisiICAtUyA8bnNlbXM+ICAgIGNyZWF0ZSBzZW1hcGhvcmUgYXJyYXkgd2l0aCA8bnNlbXM+IGVsZW1lbnRzXG4iCisiICAtUSAgICAgICAgICAgIGNyZWF0ZSBtZXNzYWdlIHF1ZXVlXG4iCisiICAtcCA8bW9kZT4gICAgIHBlcm1pc3Npb24gZm9yIHRoZSByZXNvdXJjZSAoZGVmYXVsdCBpcyAwNjQ0KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaXBjbWsoMSkuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQyCittc2dpZCAiY3JlYXRlIHNoYXJlIG1lbW9yeSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUwCittc2dpZCAiY3JlYXRlIG1lc3NhZ2UgcXVldWUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIHF1ZXVlIGlkOiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1OAorbXNnaWQgImNyZWF0ZSBzZW1hcGhvcmUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJTZW1hcGhvcmUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJkZXByZWNhdGVkIHVzYWdlOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93biByZXNvdXJjZSB0eXBlOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNvdXJjZShzKSBkZWxldGVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwga2V5ICglcylcbiIKK21zZ3N0ciAiJXM6IHZpZ2FuZSB29XRpICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBrZXkiCittc2dzdHIgInb1dG1lbGUgcG9sZSD1aWd1c2kiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwOSBzeXMtdXRpbHMvaXBjcm0uYzoyNDgKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQga2V5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxMiBzeXMtdXRpbHMvaXBjcm0uYzoyNDMKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAidmlnYW5lIHb1dGkiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxNSBzeXMtdXRpbHMvaXBjcm0uYzoyNTMKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgImlkZW50aWZpa2FhdG9yaWxlIHBvbGUg9WlndXNpIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICJ2aWdhbmUgaWRlbnRpZmlrYWF0b3IiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0OQorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgKCVzKVxuIgorbXNnc3RyICIlczogJXMgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gYXJndW1lbnQ6ICVzXG4iCittc2dzdHIgIiVzOiBUdW5kbWF0dSBhcmd1bWVudDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2UgOiAlcyAtYXNtcSAtdGNsdXAgXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyAtaCBmb3IgaGVscC5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHlvdSBoYXZlIHJlYWQgYWNjZXNzLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJSZXNvdXJjZSBTcGVjaWZpY2F0aW9uOlxuIgorIlx0LW0gOiBzaGFyZWRfbWVtXG4iCisiXHQtcSA6IG1lc3NhZ2VzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LXMgOiBzZW1hcGhvcmVzXG4iCisiXHQtYSA6IGFsbCAoZGVmYXVsdClcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3V0cHV0IEZvcm1hdDpcbiIKKyJcdC10IDogdGltZVxuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDogY3JlYXRvclxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1sIDogbGltaXRzXG4iCisiXHQtdSA6IHN1bW1hcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICItaSBpZCBbLXMgLXEgLW1dIDogZGV0YWlscyBvbiByZXNvdXJjZSBpZGVudGlmaWVkIGJ5IGlkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBzZWdtZW50cyA9ICVsdVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCB0b3RhbCBzaGFyZWQgbWVtb3J5IChrYnl0ZXMpID0gJWxsdVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pbiBzZWcgc2l6ZSAoYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VnbWVudHMgYWxsb2NhdGVkICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgYWxsb2NhdGVkICVsZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc5CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHJlc2lkZW50ICAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dhcCBwZXJmb3JtYW5jZTogJWxkIGF0dGVtcHRzXHQgJWxkIHN1Y2Nlc3Nlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAic2htaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MDgKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAicGVybXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjdWlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY2dpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImdpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxIHN5cy11dGlscy9pcGNzLmM6MzA3CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNCBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUxMgorIzogc3lzLXV0aWxzL2lwY3MuYzo1MTggc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJvd25lciIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImF0dGFjaGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTUKK21zZ2lkICJjaGFuZ2VkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImxwaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgImJ5dGVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAibmF0dGNoIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAic3RhdHVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzI5IHN5cy11dGlscy9pcGNzLmM6MzMxIHN5cy11dGlscy9pcGNzLmM6MzMzCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ0NCBzeXMtdXRpbHMvaXBjcy5jOjQ0NiBzeXMtdXRpbHMvaXBjcy5jOjU0NQorIzogc3lzLXV0aWxzL2lwY3MuYzo1NDcgc3lzLXV0aWxzL2lwY3MuYzo1NDkgc3lzLXV0aWxzL2lwY3MuYzo2MDAKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAyIHN5cy11dGlscy9pcGNzLmM6NjMwIHN5cy11dGlscy9pcGNzLmM6NjMyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzNCBzeXMtdXRpbHMvaXBjcy5jOjY1NworbXNnaWQgIk5vdCBzZXQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjEKK21zZ2lkICJkZXN0IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2VtYXBob3Jlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBhcnJheXMgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHBlciBhcnJheSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBvcHMgcGVyIHNlbW9wIGNhbGwgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbWFwaG9yZSBtYXggdmFsdWUgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBhcnJheXMgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBzZW1hcGhvcmVzID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjQxNCBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgInNlbWlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgT3BlcmF0aW9uL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1vcCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3QtY2hhbmdlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAibnNlbXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBtZXNzYWdlIHF1ZXVlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNpemUgb2YgbWVzc2FnZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJkZWZhdWx0IG1heCBzaXplIG9mIHF1ZXVlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHF1ZXVlcyA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBoZWFkZXJzID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIHNwYWNlID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXM6IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTEyIHN5cy11dGlscy9pcGNzLmM6NTE4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm1zcWlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBTZW5kL1JlY3YvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJzZW5kIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAicmVjdiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgImNoYW5nZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU4OQorIywgZnV6enkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICJmc3luYyBlaSD1bm5lc3R1bnVkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2hhcmVkIG1lbW9yeSBTZWdtZW50IHNobWlkPSVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjb1x0YWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk2CisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgImF0dF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMyBzeXMtdXRpbHMvaXBjcy5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE1CisjLCBmdXp6eQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgImZzeW5jIGVpIPVubmVzdHVudWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJNZXNzYWdlIFF1ZXVlIG1zcWlkPSVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJjdl90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKKyMsIGZ1enp5Cittc2dpZCAic2VtY3RsIGZhaWxlZCIKK21zZ3N0ciAic2VlayBlaSD1bm5lc3R1bnVkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2VtYXBob3JlIEFycmF5IHNlbWlkPSVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHQgZ2lkPSVkXHQgY3VpZD0lZFx0IGNnaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAib3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImN0aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInZhbHVlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAibmNvdW50IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAicGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBzcGVlZDogJXMiCittc2dzdHIgInZpZ2FuZSBraWlydXM6ICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgcGFrZXRpc3QgJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvcHRpb24iCittc2dzdHIgInZpZ2FuZSBpZGVudGlmaWthYXRvciIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGxpbmUgZGlzY2lwbGluZTogJXMiCittc2dzdHIgInZpZ2FuZSBhcnY6ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiCittc2dzdHIgIiVzIHBvbGUgcGxva2tzZWFkZSIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJlaSBzdXVkYSBraW5kbGFrcyB0ZWhhIHNlYWRtZSAlcyBtYWh0dSIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWVkICVkIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHNldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiZWkgc3V1ZGEga2luZGxha3MgdGVoYSBzZWFkbWUgJXMgbWFodHUiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1MQorIywgZnV6enkKK21zZ2lkICJjYW5ub3Qgc2V0IGxpbmUgZGlzY2lwbGluZSIKK21zZ3N0ciAiRWkgc3V1ZGEga2V0dGFsIHNlZWtpZGEiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworIywgZnV6enkKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICJlaSBzdXVkYSBraW5kbGFrcyB0ZWhhIHNlYWRtZSAlcyBtYWh0dSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQKKyMsIGZ1enp5Cittc2dpZCAibm9uZSIKK21zZ3N0ciAidmFsbWlzIChEKSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUKK21zZ2lkICJwYXJhIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2Cittc2dpZCAiZnVsbCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxMzcgc3lzLXV0aWxzL2xzY3B1LmM6MTYwIHN5cy11dGlscy9sc2NwdS5jOjQ1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzIgorbXNnc3RyICJwb3NpdHNpb25lZXJpbWlzZSB2aWdhIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHBhcnNlOiAlcyIKK21zZ3N0ciAiVmlnYSAlcyBsdWdlbWlzZWxcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTg0CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBzdHJkdXAgZmFpbGVkIgorbXNnc3RyICIlcyBhdmFtaW5lIGVpIPVubmVzdHVudWQiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjI2NworIywgZnV6enkKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICJWaWdhICVzIHN1bGdlbWlzZWxcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTA2CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBtYWxsb2MgZmFpbGVkIgorbXNnc3RyICJN5Gx1IHNhaSBvdHNhIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MjEKK21zZ2lkICJlcnJvcjogL3N5cyBmaWxlc3lzdGVtIGlzIG5vdCBhY2Nlc3NhYmxlLiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiMgVGhlIGZvbGxvd2luZyBpcyB0aGUgcGFyc2FibGUgZm9ybWF0LCB3aGljaCBjYW4gYmUgZmVkIHRvIG90aGVyXG4iCisiIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRFxuIgorIiMgc3RhcnRpbmcgZnJvbSB6ZXJvLlxuIgorIiMgQ1BVLENvcmUsU29ja2V0LE5vZGUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjE5Cittc2dpZCAiQ1BVIG9wLW1vZGUocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNQorbXNnaWQgIlRocmVhZChzKSBwZXIgY29yZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI2Cittc2dpZCAiQ29yZShzKSBwZXIgc29ja2V0OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjcKK21zZ2lkICJDUFUgc29ja2V0KHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzEKK21zZ2lkICJOVU1BIG5vZGUocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMworbXNnaWQgIlZlbmRvciBJRDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM1Cittc2dpZCAiQ1BVIGZhbWlseToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM3Cittc2dpZCAiTW9kZWw6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzOQorbXNnaWQgIlN0ZXBwaW5nOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDEKK21zZ2lkICJDUFUgTUh6OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDQgc3lzLXV0aWxzL2xzY3B1LmM6NjQ2Cittc2dpZCAiVmlydHVhbGl6YXRpb246IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIkthc3V0YW1pbmU6ICVzIFsgdvV0bWVkIF0gc2VhZGUgLi4uXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2OQorbXNnaWQgIiIKKyJDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGhlbHBlclxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuXG4iCisiICAtcywgLS1zeXNyb290ICB1c2UgdGhlIGRpcmVjdG9yeSBhcyBhIG5ldyBzeXN0ZW0gcm9vdC5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiBjaGFuZ2Ugd29ya2luZyBkaXJlY3RvcnkgdG8gJXMuIgorbXNnc3RyICJWaWdhIHNla3RvcmkgJWx1IGtpcmp1dGFtaXNlbCBzZWFkbWVsZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc3Cittc2dpZCAidXNhZ2U6IHJkZXYgWyAtcnYgXSBbIC1vIE9GRlNFVCBdIFsgSU1BR0UgWyBWQUxVRSBbIE9GRlNFVCBdIF0gXSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc4Cittc2dpZCAiIgorIiAgcmRldiAvZGV2L2ZkMCAgKG9yIHJkZXYgL2xpbnV4LCBldGMuKSBkaXNwbGF5cyB0aGUgY3VycmVudCBST09UIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc5Cittc2dpZCAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHNldHMgUk9PVCB0byAvZGV2L2hkYTIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgxCittc2dpZCAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIHNldCB0aGUgUkFNRElTSyBzaXplIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODIKK21zZ2lkICIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBib290dXAgVklERU9NT0RFIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODMKK21zZ2lkICIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAgdXNlIHRoZSBieXRlIG9mZnNldCBOIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODQKK21zZ2lkICIgIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1SIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODUKK21zZ2lkICIgIHJhbXNpemUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1yIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODYKK21zZ2lkICIgIHZpZG1vZGUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC12IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODcKK21zZ2lkICIiCisiTm90ZTogdmlkZW8gbW9kZXMgYXJlOiAtMz1Bc2ssIC0yPUV4dGVuZGVkLCAtMT1Ob3JtYWxWZ2EsIDE9a2V5MSwgMj1rZXkyLC4uLiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzoyNDUKK21zZ2lkICJtaXNzaW5nIGNvbW1hIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjcyIHRleHQtdXRpbHMvbW9yZS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICJN5Gx1IHNhaSBvdHNhIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogXCIlcyBbb3B0aW9uc11cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChkZWZhdWx0czogXCIlc1wiIGFuZFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAoZGVmYXVsdDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgc2V0IHRoZSBwcm9maWxpbmcgbXVsdGlwbGllciB0byA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorIlx0IC12ICAgICAgICAgICAgcHJpbnQgdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICBwcmludCBhbGwgc3ltYm9scywgZXZlbiBpZiBjb3VudCBpcyAwXG4iCisiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgIHJlc2V0IGFsbCB0aGUgY291bnRlcnMgKHJvb3Qgb25seSlcbiIKKyJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorIlx0IC1WICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjIyNworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkcHJvZmlsZTogZXJyb3Igd3JpdGluZyAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgcmV2ZXJzZWQgYnl0ZSBvcmRlci4gVXNlIC1uIHRvIGZvcmNlIG5hdGl2ZSBieXRlIG9yZGVyLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI4NAorIywgYy1mb3JtYXQKK21zZ2lkICJTYW1wbGluZ19zdGVwOiAlaVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMwNSBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzKCVpKTogd3JvbmcgbWFwIGxpbmVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcHJvZmlsZSBhZGRyZXNzIG91dCBvZiByYW5nZS4gV3JvbmcgbWFwIGZpbGU/XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NDEyCittc2dpZCAidG90YWwiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBwYWtldGlzdCAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1MiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY0Cittc2dpZCAiZ2V0cHJpb3JpdHkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQ6IG9sZCBwcmlvcml0eSAlZCwgbmV3IHByaW9yaXR5ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0NworbXNnaWQgInJlYWQgc3lzdGVtIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI0Cittc2dpZCAic2V0IHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyOAorbXNnaWQgImVuYWJsZSBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMzIKK21zZ2lkICJzZXQgcnRjIHdha2UgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIlBhcnRpdHNpb29uaXRhYmVsaXQgZWkgb2xlXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBpbnRlcnZhbCAlcyBzZWNvbmRzXG4iCittc2dzdHIgIiVzOiB2aWdhbmUgdvV0aSAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCB0aW1lX3QgdmFsdWUgJXNcbiIKK21zZ3N0ciAiJXM6IHZpZ2FuZSB29XRpICglcylcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB2ZXJzaW9uICVzXG4iCittc2dzdHIgIiVzIHBha2V0aXN0ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhc3N1bWluZyBSVEMgdXNlcyBVVEMgLi4uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIFVUQyB0aW1lLlxuIgorbXNnc3RyICJLYXN1dGFuICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICJLYXN1dGFuICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBtdXN0IHByb3ZpZGUgd2FrZSB0aW1lXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MTcKKyMsIGZ1enp5Cittc2dpZCAibWFsbG9jKCkgZmFpbGVkIgorbXNnc3RyICJN5Gx1IHNhaSBvdHNhIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iCittc2dzdHIgIiVzIHBvbGUgZmxvcGlzZWFkZVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIlRlYWRlIGthc3V0YWphbHQgJXNAJXMgdGVybWluYWxpbCAlcyBrZWxsICVzLi4uIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIlczogJXMg/G1iZXIgbmltZXRhbWluZSAlcyAta3MgZWkg9W5uZXN0bnVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ5NgorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NTA1Cittc2dpZCAiZGlzYWJsZSBydGMgYWxhcm0gaW50ZXJydXB0IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dpdGNoaW5nIG9uICVzLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMlcyBbb3B0aW9uc10gW3Byb2dyYW0gW3Byb2dyYW0gYXJndW1lbnRzXV1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBzYXlzIHdoYXQgb3B0aW9ucyBhcmUgYmVpbmcgc3dpdGNoZWQgb25cbiIKKyIgLVIsIC0tYWRkci1uby1yYW5kb21pemUgIGRpc2FibGVzIHJhbmRvbWl6YXRpb24gb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyAiCisic3BhY2VcbiIKKyIgLUYsIC0tZmRwaWMtZnVuY3B0cnMgICAgIG1ha2VzIGZ1bmN0aW9uIHBvaW50ZXJzIHBvaW50IHRvIGRlc2NyaXB0b3JzXG4iCisiIC1aLCAtLW1tYXAtcGFnZS16ZXJvICAgICB0dXJucyBvbiBNTUFQX1BBR0VfWkVST1xuIgorIiAtTCwgLS1hZGRyLWNvbXBhdC1sYXlvdXQgY2hhbmdlcyB0aGUgd2F5IHZpcnR1YWwgbWVtb3J5IGlzIGFsbG9jYXRlZFxuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgdHVybnMgb24gUkVBRF9JTVBMSUVTX0VYRUNcbiIKKyIgLUIsIC0tMzJiaXQgICAgICAgICAgICAgIHR1cm5zIG9uIEFERFJfTElNSVRfMzJCSVRcbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgIHR1cm5zIG9uIFNIT1JUX0lOT0RFXG4iCisiIC1TLCAtLXdob2xlLXNlY29uZHMgICAgICB0dXJucyBvbiBXSE9MRV9TRUNPTkRTXG4iCisiIC1ULCAtLXN0aWNreS10aW1lb3V0cyAgICB0dXJucyBvbiBTVElDS1lfVElNRU9VVFNcbiIKKyIgLTMsIC0tM2diICAgICAgICAgICAgICAgIGxpbWl0cyB0aGUgdXNlZCBhZGRyZXNzIHNwYWNlIHRvIGEgbWF4aW11bSBvZiAzICIKKyJHQlxuIgorIiAgICAgLS00Z2IgICAgICAgICAgICAgICAgaWdub3JlZCAoZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seSlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHNldGFyY2goOCkuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjIxNSBzeXMtdXRpbHMvc2V0YXJjaC5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVucmVjb2duaXplZCBhcmNoaXRlY3R1cmUiCittc2dzdHIgIlBhcnRpdHNpb29uaXRhYmVsaXQgZWkgb2xlXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2CisjLCBmdXp6eQorbXNnaWQgIk5vdCBlbm91Z2ggYXJndW1lbnRzIgorbXNnc3RyICJMaWlnYSBwYWxqdSBhcmd1bWVudGVcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNjUgc3lzLXV0aWxzL3NldGFyY2guYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBhbiBscCBkZXZpY2UuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdGF0dXMgaXMgJWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHJlYWR5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICIsIG9uLWxpbmUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGVycm9yIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgcG9sbGluZ1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gPHByb2dyYW0+IFthcmdzLi4uXVxuIgorbXNnc3RyICJLYXN1dGFtaW5lOiAlcyBbIHb1dG1lZCBdIHNlYWRlIC4uLlxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjYwCittc2dpZCAiIgorIlJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB1c2FnZSBpbmZvcm1hdGlvbiAodGhpcylcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgbW91bnRzIG5hbWVzcGFjZVxuIgorIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIFN5c3RlbSBWIElQQyBuYW1lc3BhY2VcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIHVuc2hhcmUgbmV0d29yayBuYW1lc3BhY2VcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHVuc2hhcmUoMSkuXG4iCittc2dzdHIgIkthc3V0YWphIGluZm9ybWF0c2lvb24gb24gbXV1ZGV0dWRcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTQKKyMsIGZ1enp5Cittc2dpZCAidW5zaGFyZSBmYWlsZWQiCittc2dzdHIgInNlZWsgZWkg9W5uZXN0dW51ZCIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJleGVjIGVpIPVubmVzdHVudWRcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKK21zZ3N0ciAiS2FzdXRhbWluZTogY29sIFstYmZweF0gWy1sIHJpZGFkZWFydl1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdhcm5pbmc6IGNhbid0IGJhY2sgdXAgJXMuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICJwYXN0IGZpcnN0IGxpbmUiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbGNydC5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC0gXSBbIC0yIF0gWyBmaWxlIC4uLiBdXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzoyOTcKK21zZ2lkICJsaW5lIHRvbyBsb25nIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBsZW5ndGggdmFsdWUuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgc2tpcCB2YWx1ZS5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbGVdIFstbiBsZW5ndGhdIFstcyBza2lwXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICJlaSBq5HRrdSBt5Gx1IGthYXJ0aWRlIHB1aHZyaXRlbGUiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjQ4NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gb3B0aW9uIFwiLSVjXCJcbiIKK21zZ3N0ciAiJXM6IHR1bmRtYXR1IHNpZ25hYWwgJXNcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKioqKioqICVzOiBOb3QgYSB0ZXh0IGZpbGUgKioqKioqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo2NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1VzZSBxIG9yIFEgdG8gcXVpdF0iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tTW9yZS0tIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICIoTmV4dCBmaWxlOiAlcykiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyBzcGFjZSB0byBjb250aW51ZSwgJ3EnIHRvIHF1aXQuXSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmJhY2sgJWQgcGFnZXMiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwOAorbXNnaWQgIi4uLmJhY2sgMSBwYWdlIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTEKK21zZ2lkICIuLi5za2lwcGluZyBvbmUgbGluZSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMjgKK21zZ2lkICIiCisiXG4iCisiTW9zdCBjb21tYW5kcyBvcHRpb25hbGx5IHByZWNlZGVkIGJ5IGludGVnZXIgYXJndW1lbnQgay4gIERlZmF1bHRzIGluICIKKyJicmFja2V0cy5cbiIKKyJTdGFyICgqKSBpbmRpY2F0ZXMgYXJndW1lbnQgYmVjb21lcyBuZXcgZGVmYXVsdC5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzM1Cittc2dpZCAiIgorIjxzcGFjZT4gICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdXG4iCisieiAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV0qXG4iCisiPHJldHVybj4gICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbMV0qXG4iCisiZCBvciBjdHJsLUQgICAgICAgICAgICAgU2Nyb2xsIGsgbGluZXMgW2N1cnJlbnQgc2Nyb2xsIHNpemUsIGluaXRpYWxseSAxMV0qXG4iCisicSBvciBRIG9yIDxpbnRlcnJ1cHQ+ICAgRXhpdCBmcm9tIG1vcmVcbiIKKyJzICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBsaW5lcyBvZiB0ZXh0IFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyJiIG9yIGN0cmwtQiAgICAgICAgICAgICBTa2lwIGJhY2t3YXJkcyBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyInICAgICAgICAgICAgICAgICAgICAgICBHbyB0byBwbGFjZSB3aGVyZSBwcmV2aW91cyBzZWFyY2ggc3RhcnRlZFxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBsaW5lIG51bWJlclxuIgorIi88cmVndWxhciBleHByZXNzaW9uPiAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgcmVndWxhciBleHByZXNzaW9uIFsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgbGFzdCByLmUgWzFdXG4iCisiITxjbWQ+IG9yIDohPGNtZD4gICAgICAgRXhlY3V0ZSA8Y21kPiBpbiBhIHN1YnNoZWxsXG4iCisidiAgICAgICAgICAgICAgICAgICAgICAgU3RhcnQgdXAgL3Vzci9iaW4vdmkgYXQgY3VycmVudCBsaW5lXG4iCisiY3RybC1MICAgICAgICAgICAgICAgICAgUmVkcmF3IHNjcmVlblxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBuZXh0IGZpbGUgWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIHByZXZpb3VzIGZpbGUgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXJcbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICBSZXBlYXQgcHJldmlvdXMgY29tbWFuZFxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0MDQgdGV4dC11dGlscy9tb3JlLmM6MTQwOQorIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3MgJ2gnIGZvciBpbnN0cnVjdGlvbnMuXSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQzCisjLCBjLWZvcm1hdAorbXNnaWQgIlwiJXNcIiBsaW5lICVkIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW05vdCBhIGZpbGVdIGxpbmUgJWQiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTUyOQorbXNnaWQgIiAgT3ZlcmZsb3dcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTc2Cittc2dpZCAiLi4uc2tpcHBpbmdcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTMKK21zZ2lkICIiCisiXG4iCisiUGF0dGVybiBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjE2IHRleHQtdXRpbHMvcGcuYzoxMTI3IHRleHQtdXRpbHMvcGcuYzoxMjc4Cittc2dpZCAiUGF0dGVybiBub3QgZm91bmQiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTY3NworbXNnaWQgImNhbid0IGZvcmtcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzE2Cittc2dpZCAiIgorIlxuIgorIi4uLlNraXBwaW5nICIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIwCittc2dpZCAiLi4uU2tpcHBpbmcgdG8gZmlsZSAiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMgorbXNnaWQgIi4uLlNraXBwaW5nIGJhY2sgdG8gZmlsZSAiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjAwMAorbXNnaWQgIkxpbmUgdG9vIGxvbmciCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJvZDogb2QoMSkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgaGV4ZHVtcCgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBoZXhkdW1wKDEpIGNvbXBhdGliaWxpdHkgZG9lc24ndCBzdXBwb3J0IHRoZSAtJWMgb3B0aW9uJXNcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTM0Cittc2dpZCAiOyBzZWUgc3RyaW5ncygxKS4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogJSVzIHJlcXVpcmVzIGEgcHJlY2lzaW9uIG9yIGEgYnl0ZSBjb3VudC5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDk2CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBmb3JtYXQgeyVzfVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NQorbXNnaWQgIiIKKyJBbGwgcmlnaHRzIHJlc2VydmVkLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyIgIGggICAgICAgICAgICAgICAgICAgICAgIHRoaXMgc2NyZWVuXG4iCisiICBxIG9yIFEgICAgICAgICAgICAgICAgICBxdWl0IHByb2dyYW1cbiIKKyIgIDxuZXdsaW5lPiAgICAgICAgICAgICAgIG5leHQgcGFnZVxuIgorIiAgZiAgICAgICAgICAgICAgICAgICAgICAgc2tpcCBhIHBhZ2UgZm9yd2FyZFxuIgorIiAgZCBvciBeRCAgICAgICAgICAgICAgICAgbmV4dCBoYWxmcGFnZVxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBsaW5lXG4iCisiICAkICAgICAgICAgICAgICAgICAgICAgICBsYXN0IHBhZ2VcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIHNlYXJjaCBmb3J3YXJkIGZvciByZWdleFxuIgorIiAgP3JlZ2V4PyBvciBecmVnZXheICAgICAgc2VhcmNoIGJhY2t3YXJkIGZvciByZWdleFxuIgorIiAgLiBvciBeTCAgICAgICAgICAgICAgICAgcmVkcmF3IHNjcmVlblxuIgorIiAgdyBvciB6ICAgICAgICAgICAgICAgICAgc2V0IHBhZ2Ugc2l6ZSBhbmQgZ28gdG8gbmV4dCBwYWdlXG4iCisiICBzIGZpbGVuYW1lICAgICAgICAgICAgICBzYXZlIGN1cnJlbnQgZmlsZSB0byBmaWxlbmFtZVxuIgorIiAgIWNvbW1hbmQgICAgICAgICAgICAgICAgc2hlbGwgZXNjYXBlXG4iCisiICBwICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBwcmV2aW91cyBmaWxlXG4iCisiICBuICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBuZXh0IGZpbGVcbiIKKyJcbiIKKyJNYW55IGNvbW1hbmRzIGFjY2VwdCBwcmVjZWRpbmcgbnVtYmVycywgZm9yIGV4YW1wbGU6XG4iCisiKzE8bmV3bGluZT4gKG5leHQgcGFnZSk7IC0xPG5ld2xpbmU+IChwcmV2aW91cyBwYWdlKTsgMTxuZXdsaW5lPiAoZmlyc3QgIgorInBhZ2UpLlxuIgorIlxuIgorIlNlZSBwZygxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjIyMworIywgZnV6enkKK21zZ2lkICJPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIk3kbHUgc2FpIG90c2EiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjI0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlc1xuIgorbXNnc3RyICJ29XRpIGAlcycgdmFqYWIgYXJndW1lbnRpXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczogdmlnYW5lIHb1dGkgKCVzKVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcwCittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzIKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTQKK21zZ2lkICJObyBuZXh0IGZpbGUiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorIywgZnV6enkKK21zZ2lkICJObyBwcmV2aW91cyBmaWxlIgorbXNnc3RyICLcaHRlZ2kgcGFydGl0c2lvb25pIHBvbGUgZGVmaW5lZXJpdHVkXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBSZWFkIGVycm9yIGZyb20gJXMgZmlsZVxuIgorbXNnc3RyICIlczogbHVnZW1pc2UgdmlnYSBmYWlsaXMgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5leHBlY3RlZCBFT0YgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGVycm9yIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IHNlZWtpbWlzZSB2aWdhIGZhaWxpcyAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBjcmVhdGUgdGVtcGZpbGVcbiIKK21zZ3N0ciAiJXM6IGVpIHN1dWRhIGx1Z2VkYSBhanV0aXN0IGZhaWxpXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDQ0IHRleHQtdXRpbHMvcGcuYzoxMjE5IHRleHQtdXRpbHMvcGcuYzoxMjQ2CisjLCBmdXp6eQorbXNnaWQgIlJFIGVycm9yOiAiCittc2dzdHIgInBvc2l0c2lvbmVlcmltaXNlIHZpZ2EiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMjcgdGV4dC11dGlscy9wZy5jOjEyNTQKK21zZ2lkICJObyByZW1lbWJlcmVkIHNlYXJjaCBzdHJpbmciCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjEzMTAKKyMsIGZ1enp5Cittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICJFaSBzdXVkYSBhdmFkYSBzZWFkbWVmYWlsaSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDY1Cittc2dpZCAiOiAhY29tbWFuZCBub3QgYWxsb3dlZCBpbiByZmxhZyBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDk3CisjLCBmdXp6eQorbXNnaWQgImZvcmsoKSBmYWlsZWQsIHRyeSBhZ2FpbiBsYXRlclxuIgorbXNnc3RyICJQYXJvb2xpIEVJIG11dWRldHVkIC0gcHJvb3ZpZ2UgaGlsamVtIHV1ZXN0aVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTcwNQorbXNnaWQgIihOZXh0IGZpbGU6ICIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjExMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyc3BhY2UiCittc2dzdHIgImVpIGrkdGt1IG3kbHUga2FhcnRpZGUgcHVodnJpdGVsZSIKKworIzogdGV4dC11dGlscy9yZXYuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHJldiBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjU4IHRleHQtdXRpbHMvdGFpbGYuYzo5MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gXCIlc1wiIGZvciByZWFkIgorbXNnc3RyICJlaSBzdXVkYSBhdmFkYSBzZWFkZXQgJXMgbHVnZW1pc2Vrc1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgXCIlc1wiIgorbXNnc3RyICJzdGF0KCVzKSBlaSD1bm5lc3R1bnVkIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgImluY29tcGxldGUgd3JpdGUgdG8gXCIlc1wiICh3cml0dGVuICV6ZCwgZXhwZWN0ZWQgJXpkKVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAobGltaXQgb2YgaW5vdGlmeSB3YXRjaGVzIHdhcyByZWFjaGVkKS4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiBFaSBzdXVkYSBhdmFkYSBmYWlsaSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgInZpZ2FuZSBhcnY6ICVzXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoyMTAKKyMsIGZ1enp5Cittc2dpZCAidXNhZ2U6IHRhaWxmIFstbiBOIHwgLU5dIGxvZ2ZpbGUiCittc2dzdHIgIkthc3V0YW1pbmU6ICVzIFtmYWlsXVxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy91bC5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ0cm91YmxlIHJlYWRpbmcgdGVybWluZm8iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy91bC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIGVzY2FwZSBzZXF1ZW5jZSBpbiBpbnB1dDogJW8sICVvXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5wdXQgbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAiIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWIgU1NaXSBbLXVdIERJU0sgICAgIENoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyN+ICIgICAgICAgZmRpc2sgLWwgWy1iIFNTWl0gWy11XSBESVNLICBMaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorI34gIiAgICAgICBmZGlzayAtcyBQQVJUSVRJT04gICAgICAgICAgIEdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisjfiAiICAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgR2l2ZSBmZGlzayB2ZXJzaW9uXG4iCisjfiAiSGVyZSBESVNLIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRiIG9yIC9kZXYvc2RhXG4iCisjfiAiYW5kIFBBUlRJVElPTiBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYTdcbiIKKyN+ICItdTogZ2l2ZSBTdGFydCBhbmQgRW5kIGluIHNlY3RvciAoaW5zdGVhZCBvZiBjeWxpbmRlcikgdW5pdHNcbiIKKyN+ICItYiAyMDQ4OiAoZm9yIGNlcnRhaW4gTU8gZGlza3MpIHVzZSAyMDQ4LWJ5dGUgc2VjdG9yc1xuIgorI34gbXNnc3RyICIiCisjfiAiS2FzdXRhbWluZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICAgTXV1dGEgcGFydGl0c2lvb25pdGFiZWxpdFxuIgorI34gIiAgICAgICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgIE7kaWRhdGEgcGFydGl0c2lvb25pdGFiZWxpICIKKyN+ICJzaXN1XG4iCisjfiAiICAgICAgICAgICAgZmRpc2sgLXMgUEFSVElUU0lPT04gICAgICAgICAgTuRpZGF0YSBwYXJ0aXRzaW9vbmkgbWFodHUgIgorI34gInBsb2traWRlc1xuIgorI34gIiAgICAgICAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgIE7kaWRhdGEgZmRpc2tpIHZlcnNpb29uaVxuIgorI34gIlNpaW4gRElTSyBvbiBzZWFkbWVmYWlsIChu5Gl0ZWtzIC9kZXYvaGRhIHb1aSAvZGV2L3NkYSlcbiIKKyN+ICJqYSBQQVJUSVRTSU9PTiBvbiBtaWRhZ2kgc3RpaWxpcyAvZGV2L2hkYTdcbiIKKyN+ICItdTogbuRpZGF0YSBwYXJ0aXRzaW9vbmlkZSBhbGd1c3QgamEgbPVwcHUgc2lsaW5kcml0ZSBhc2VtZWwgc2VrdG9yaXRlc1xuIgorI34gIi1iIDIwNDg6IGthc3V0YWRhIDIwNDgtYmFpZGlzZWlkIHNla3RvcmVpZCAodmFqYWxpayBu5Gl0ZWtzIG31bmVsIE1PICIKKyN+ICJzZWFkbWVsKVxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0gZGV2aWNlXG4iCisjfiAiRS5nLjogZmRpc2sgL2Rldi9oZGEgIChmb3IgdGhlIGZpcnN0IElERSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvc2RjICAoZm9yIHRoZSB0aGlyZCBTQ1NJIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9lZGEgIChmb3IgdGhlIGZpcnN0IFBTLzIgRVNESSBkcml2ZSlcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3JkL2MwZDAgIG9yOiBmZGlzayAvZGV2L2lkYS9jMGQwICAoZm9yIFJBSUQgZGV2aWNlcylcbiIKKyN+ICIgIC4uLlxuIgorI34gbXNnc3RyICIiCisjfiAiS2FzdXRhbWluZTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIHNlYWRlXG4iCisjfiAiTuRpdGVrczogICAgZmRpc2sgL2Rldi9oZGEgIChlc2ltZXNlIElERSBrZXR0YSBqYW9rcylcbiIKKyN+ICIgICAgICAgICAgICBmZGlzayAvZGV2L3NkYyAgKGtvbG1hbmRhIFNDU0kga2V0dGEgamFva3MpXG4iCisjfiAiICAgICAgICAgICAgZmRpc2sgL2Rldi9lZGEgIChlc2ltZXNlIFBTLzIgRVNESSBrZXR0YSBqYW9rcylcbiIKKyN+ICIgICAgICAgICAgICBmZGlzayAvZGV2L3JkL2MwZDAgdvVpIGZkaXNrIC9kZXYvaWRhL2MwZDAgKFJBSUQgc2VhZG1ldGUgIgorI34gImphb2tzKVxuIgorI34gIiAgICAgICAgICAgIC4uLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlxuIgorI34gIlRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIGZvciB0aGlzIGRpc2sgaXMgc2V0IHRvICVkLlxuIgorI34gIlRoZXJlIGlzIG5vdGhpbmcgd3Jvbmcgd2l0aCB0aGF0LCBidXQgdGhpcyBpcyBsYXJnZXIgdGhhbiAxMDI0LFxuIgorI34gImFuZCBjb3VsZCBpbiBjZXJ0YWluIHNldHVwcyBjYXVzZSBwcm9ibGVtcyB3aXRoOlxuIgorI34gIjEpIHNvZnR3YXJlIHRoYXQgcnVucyBhdCBib290IHRpbWUgKGUuZy4sIG9sZCB2ZXJzaW9ucyBvZiBMSUxPKVxuIgorI34gIjIpIGJvb3RpbmcgYW5kIHBhcnRpdGlvbmluZyBzb2Z0d2FyZSBmcm9tIG90aGVyIE9Tc1xuIgorI34gIiAgIChlLmcuLCBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJcbiIKKyN+ICJLZXR0YSBzaWxpbmRyaXRlIGFydnVrcyBvbiBzZWF0dWQgJWQuIFNlbGxlcyBlaSBvbGUgaXNlZW5lc2VzdFxuIgorI34gIm1pZGFnaSBoYWxiYSwgYWdhIHNlZSBvbiBzdXVyZW0ga3VpIDEwMjQgbmluZyB29WliIHNlZWdhIHD1aGp1c3RhZGFcbiIKKyN+ICJ0ZWF0dWQgc2l0dWF0c2lvb25pZGVzIHByb2JsZWVtZTpcbiIKKyN+ICIxKSB0YXJrdmFyYWdhLCBtaXMga+Rpdml0dWIgYnV1dGltaXNlIGFqYWwgKG7kaXRla3MgdmFuYSB2ZXJzaW9vbiAiCisjfiAiTElMT3N0KVxuIgorI34gIjIpIG11dWRlIG9wZXJhdHNpb29uaXP8c3RlZW1pZGUgYnV1dGltaXNlIGphIHBhcnRpdHNpb25lZXJpbWlzZVxuIgorI34gInRhcmt2YXJhZ2EgKG7kaXRla3MgRE9TaSBGRElTSywgT1MvMiBGRElTSylcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJvdXQgaWYgbWVtb3J5IgorI34gbXNnc3RyICJN5Gx1IHNhaSBvdHNhIgorCisjfiBtc2dpZCAiIyBwYXJ0aXRpb24gdGFibGUgb2YgJXNcbiIKKyN+IG1zZ3N0ciAiIyAlcyBwYXJ0aXRzaW9vbml0YWJlbFxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICJ1bml0OiBzZWN0b3JzXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgIiVkIHZhYmEgc2VrdG9yaXRcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAiTWF4LiBzdXVydXM9JWxkXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBib290YWJsZSIKKyN+IG1zZ3N0ciAiQUlYIGJ1dXRpdiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJDbG9jayBpbiBVVEMsIG5vdCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICJTaGVsbCBq5Gkgc2FtYWtzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGVycm9yOiBsYWJlbCBvbmx5IHdpdGggdjEgc3dhcCBhcmVhXG4iCisjfiBtc2dzdHIgIiVzOiBWaWdhIC0gZWkgb2xlIPZlbGR1ZCwga3VodSBzYWFsaW1pc2FsYSB0ZWtpdGFkYVxuIgorCisjfiBtc2dpZCAiZmF0YWw6IGZpcnN0IHBhZ2UgdW5yZWFkYWJsZSIKKyN+IG1zZ3N0ciAiZmF0YWFsbmUgdmlnYTogZXNpbWVuZSBsZWhr/GxnIHBvbGUga+R0dGVzYWFkYXYiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gIiVzOiBEZXZpY2UgJyVzJyBjb250YWlucyBhIHZhbGlkIFN1biBkaXNrbGFiZWwuXG4iCisjfiAiVGhpcyBwcm9iYWJseSBtZWFucyBjcmVhdGluZyB2MCBzd2FwIHdvdWxkIGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUuXG4iCisjfiAiTm8gc3dhcCB3YXMgY3JlYXRlZC4gSWYgeW91IHJlYWxseSB3YW50IHRvIGNyZWF0ZSB2MCBzd2FwIG9uIHRoYXQgIgorI34gImRldmljZSxcbiIKKyN+ICJ1c2UgdGhlIC1mIG9wdGlvbiB0byBmb3JjZSBpdC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBTZWFkZSBgJXMnIHNpc2FsZGFiIHBlYWx0buRoYSBrb3JyYWxpa2t1IFN1bidpIHBhcnRpdHNpb29uaXRhYmVsaXQuXG4iCisjfiAiU2VlIHTkaGVuZGFiIGlsbXNlbHQsIGV0IHYwIHNhYWxpbWlzYWxhIHRlZ2VtaW5lIGjkdml0YWtzICIKKyN+ICJwYXJ0aXRzaW9vbml0YWJlbGkuXG4iCisjfiAiU2FhbGltaXNhbGEgZWkgdGVraXRhdGF1ZC4gS3VpIFRlIHT1ZXN0aSBzb292aXRlIHNlbGxlbGUgc2VhZG1lbGVcbiIKKyN+ICJ2MCBzYWFsaW1pc2FsYSB0ZWtpdGFkYSwga2FzdXRhZ2UgLWYgdvV0aXQgc2VsbGUgc3VuZGltaXNla3MuXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAibW91bnQ6IGdvaW5nIHRvIG1vdW50ICVzIGJ5ICVzXG4iCisjfiBtc2dzdHIgInNodXRkb3duOiBFaSBzdXVkYSBsYWh0aSBtb250ZWVyaWRhIGthdGFsb29naSAlczogJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IGZvcms6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiBFaSBzdXVkYSBhdmFkYSBmYWlsaSAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiB3YWl0cGlkOiAlc1xuIgorI34gbXNnc3RyICIlczogQXZhbWluZSBlaSD1bm5lc3R1bnVkOiAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBjYW5ub3Qgc3RhdCAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IEVpIHN1dWRhIGF2YWRhIGZhaWxpICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiY2hmbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjogUEFNIHZpZ2EsIGthdGtlc3RhbjogJXNcbiIKKworI34gbXNnaWQgIkNhbid0IHJlYWQgJXMsIGV4aXRpbmcuIgorI34gbXNnc3RyICJFaSBzdXVkYSBsdWdlZGEgZmFpbGkgJXMsIGthdGtlc3RhbiIKKworI34gbXNnaWQgImxvZ2luOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImxvZ2luOiBQQU0gdmlnYSwga2F0a2VzdGFuOiAlc1xuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCisjfiBtc2dzdHIgImAlcyc6IHZpZ2FuZSBrYXRhbG9vZzogYC4nIHBvbGUgZXNpbWVuZVxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKKyN+IG1zZ3N0ciAiYCVzJzogdmlnYW5lIGthdGFsb29nOiBgLi4nIHBvbGUgdGVpbmVcbiIKKworI34gbXNnaWQgImNhbGxpbmcgb3Blbl90dHlcbiIKKyN+IG1zZ3N0ciAia3V0c3VuIHbkbGphIGZ1bmt0c2lvb25pIG9wZW5fdHR5XG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIHRlcm1pb19pbml0XG4iCisjfiBtc2dzdHIgImt1dHN1biB25GxqYSBmdW5rdHNpb29uaSB0ZXJtaW9faW5pdFxuIgorCisjfiBtc2dpZCAid3JpdGluZyBpbml0IHN0cmluZ1xuIgorI34gbXNnc3RyICJraXJqdXRhbiBpbml0LXN0cmluZ2lcbiIKKworI34gbXNnaWQgImJlZm9yZSBhdXRvYmF1ZFxuIgorI34gbXNnc3RyICJlbm5lIGF1dG9iYXVkaW1pc3RcbiIKKworI34gbXNnaWQgIndhaXRpbmcgZm9yIGNyLWxmXG4iCisjfiBtc2dzdHIgIm9vdGFuIHJlYXZhaGV0dXN0IChDUitMRilcbiIKKworI34gbXNnaWQgInJlYWRpbmcgbG9naW4gbmFtZVxuIgorI34gbXNnc3RyICJsb2VuIGthc3V0YWphbmltZVxuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAicORyYXN0IGdldG9wdC10c/xrbGl0XG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlYXJnc1xuIgorI34gbXNnc3RyICJ25GxqdW4gZnVua3RzaW9vbmlzdCBwYXJzZWFyZ3NcbiIKKworI34gbXNnaWQgImVudGVyZWQgcGFyc2Vfc3BlZWRzXG4iCisjfiBtc2dzdHIgInNpc2VuZXNpbiBmdW5rdHNpb29uaSBwYXJzZV9zcGVlZHNcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VzcGVlZHNcbiIKKyN+IG1zZ3N0ciAiduRsanVuIGZ1bmt0c2lvb25pc3QgcGFyc2VzcGVlZFxuIgorCisjfiBtc2dpZCAib3BlbigyKVxuIgorI34gbXNnc3RyICJvcGVuKDIpXG4iCisKKyN+IG1zZ2lkICJkdXBpbmdcbiIKKyN+IG1zZ3N0ciAiZHVibGVlcmluIHNva2xlaWRcbiIKKworI34gbXNnaWQgInRlcm1faW8gMlxuIgorI34gbXNnc3RyICJ0ZXJtX2lvIDJcbiIKKworI34gbXNnaWQgIlBhc3N3b3JkIGVycm9yLiIKKyN+IG1zZ3N0ciAiTWlza2kgZWkga2xhcGkiCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxsc1xuIgorI34gbXNnc3RyICJIb2lhdHVzOiBcIiVzXCIgcG9sZSBraXJqYXMgZmFpbGlzIC9ldGMvc2hlbGxzXG4iCisKKyN+IG1zZ2lkICJ0aW1lb3V0ID0gJWQsIHF1aWV0ID0gJWQsIHJlYm9vdCA9ICVkXG4iCisjfiBtc2dzdHIgInRpbWVvdXQgPSAlZCwgcXVpZXQgPSAlZCwgcmVib290ID0gJWRcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJVbmtub3duIG9wdGlvbiBgJWMnIGlnbm9yZWQiCisjfiBtc2dzdHIgIiVzOiB0dW5kbWF0dSBzaWduYWFsICVzXG4iCisKKyN+IG1zZ2lkICJBc3N1bWluZyBwYWdlcyBvZiBzaXplICVkIChub3QgJWQpXG4iCisjfiBtc2dzdHIgIkVlbGRhbiBsZWhla/xsamUgc3V1cnVzZWtzICVkIChtaXR0ZSAlZClcbiIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZm91bmQgYSAlcyVzJXNcbiIKKyN+IG1zZ3N0ciAiQXV0b21hYXRuZSBrb25maWd1cmVlcmltaW5lIGxlaWRpcyAlcyVzJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJEcml2ZSB0eXBlXG4iCisjfiAiICAgPyAgIGF1dG8gY29uZmlndXJlXG4iCisjfiAiICAgMCAgIGN1c3RvbSAod2l0aCBoYXJkd2FyZSBkZXRlY3RlZCBkZWZhdWx0cykiCisjfiBtc2dzdHIgIiIKKyN+ICJLZXR0YXNlYWRtZSB0/PxwXG4iCisjfiAiICAgPyAgIGF1dG9tYWF0bmUga29uZmlndXJlZXJpbWluZVxuIgorI34gIiAgIDAgICBrb2hhbmRhdHVkICh2YWlrZXbk5HJ0dXN0ZWdhIHJpaXN0YXZhcmx0KSIKKworI34gbXNnaWQgIlNlbGVjdCB0eXBlICg/IGZvciBhdXRvLCAwIGZvciBjdXN0b20pOiAiCisjfiBtc2dzdHIgIlZhbGlnZSB0/PxwICg/IHTkaGVuZGFiIGF1dG9tYWF0c2V0LCAwIGtvaGFuZGF0dXQpOiAiCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZhaWxlZC5cbiIKKyN+IG1zZ3N0ciAiQXV0b21hYXRuZSBrb25maWd1cmVlcmltaW5lIGVpIPVubmVzdHVudWRcbiIKKworI34gbXNnaWQgIkFsdGVybmF0ZSBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIkFsdGVybmF0aWl2c2VpZCBzaWxpbmRyZWlkIgorCisjfiBtc2dpZCAiUGh5c2ljYWwgY3lsaW5kZXJzIgorI34gbXNnc3RyICJG/PxzaWxpc2kgc2lsaW5kcmVpZCIKKworI34gbXNnaWQgIllvdSBtYXkgY2hhbmdlIGFsbCB0aGUgZGlzayBwYXJhbXMgZnJvbSB0aGUgeCBtZW51IgorI34gbXNnc3RyICJL9WlraSBrZXR0YXNlYWRtZSBwYXJhbWVldHJlaWQgc2FhYiBtdXV0YSB4IG1lbvz8c3QiCisKKyN+IG1zZ2lkICIzLDVcIiBmbG9wcHkiCisjfiBtc2dzdHIgIjMsNVwiIGZsb3BwaSIKKworI34gbXNnaWQgIkxpbnV4IGN1c3RvbSIKKyN+IG1zZ3N0ciAiTGludXhpIG9tYSIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlcyBmcm9tIHV0aWwtbGludXgtJXNcbiIKKyN+IG1zZ3N0ciAiJXMgcGFrZXRpc3QgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJXMgcGFrZXRpc3QgJXNcbiIKKworI34gbXNnaWQgIlN5bnRheCBlcnJvcjogJyVzJ1xuIgorI34gbXNnc3RyICJT/G50YWtzaXZpZ2E6IGAlc7RcbiIKKworI34gbXNnaWQgIk5vIHN1Y2ggcGFyYW1ldGVyIHNldDogJyVzJ1xuIgorI34gbXNnc3RyICJFaSB0dW5uZSBwYXJhbWVldHJpdGUga29tcGxla3RpIGAlcydcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLXAgXSBkZXYgbmFtZVxuIgorI34gbXNnc3RyICIlcyBbIC1wIF0gc2VhZGUgbmltaVxuIgorCisjfiBtc2dpZCAiIgorI34gIiAgICVzIFsgLXAgXSBkZXYgc2l6ZSBzZWN0IGhlYWRzIHRyYWNrcyBzdHJldGNoIGdhcCByYXRlIHNwZWMxIGZtdF9nYXBcbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzIFsgLXAgXSBzZWFkZSBtYWh0IHNla3QgcORpZCByYWR1IHN0cmV0Y2ggZ2FwIHJhdGUgc3BlYzEgZm10X2dhcFxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGRldlxuIgorI34gbXNnc3RyICIlcyBbIC1jIHwgLXkgfCAtbiB8IC1kIF0gc2VhZGVcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLWMgfCAteSB8IC1uIF0gZGV2XG4iCisjfiBtc2dzdHIgIiVzIFsgLWMgfCAteSB8IC1uIF0gc2VhZGVcbiIKKworI34gbXNnaWQgIkJvb3QgKCUwMlgpIgorI34gbXNnc3RyICJCdXV0aXYgKCUwMlgpIgorCisjfiBtc2dpZCAiTm9uZSAoJTAyWCkiCisjfiBtc2dzdHIgIlBvbGUgKCUwMlgpIgorCisjfiBtc2dpZCAiV2FybmluZzogZGVsZXRpbmcgcGFydGl0aW9ucyBhZnRlciAlZFxuIgorI34gbXNnc3RyICJIb2lhdHVzOiBrdXN0dXRhbiBwYXJ0aXRzaW9vbmlkIHDkcmFzdCAlZFxuIgorCisjfiBtc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKKyN+IG1zZ3N0ciAiUGFydGl0c2lvb24gJWkgZWkgbPVwcGUgc2lsaW5kcmkgcGlpcmlsOlxuIgorCisjfiBtc2dpZCAiIgorI34gIlxuIgorI34gIkRpc2sgJXM6ICVkIGhlYWRzLCAlZCBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyN+ICJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyN+ICJcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlxuIgorI34gIktldGFzICVzOiAlZCBwZWFkLCAlZCBzZWt0b3JpdCByYWphbCwgJWQgc2lsaW5kcml0XG4iCisjfiAi3Ghpa3VkID0gJXMgc3V1cnVzZWdhICVkICogJWQgYmFpdGlcbiIKKyN+ICJcbiIKKworI34gbXNnaWQgIm51bWJlciBgJXMnIHRvIGAlcycgb3V0IG9mIHJhbmdlXG4iCisjfiBtc2dzdHIgImFydiBgJXMnIHb1dG1lbGUgYCVzJyBvbiB25GxqYXNwb29sIGx1YmF0dWQgdmFoZW1pa2t1XG4iCisKKyN+IG1zZ2lkICJ1bnJlY29nbml6ZWQgb3B0aW9uIGAlcydcbiIKKyN+IG1zZ3N0ciAidHVuZG1hdHUgdvV0aSBgJXMnXG4iCisKKyN+IG1zZ2lkICJvcHRpb24gYCVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgInb1dGkgYCVzJyBlaSBsdWJhIGFyZ3VtZW50ZVxuIgorCisjfiBtc2dpZCAidW5yZWNvZ25pemVkIG9wdGlvbiBgLSVjJ1xuIgorI34gbXNnc3RyICJ0dW5kbWF0dSB29XRpIGAtJWMnXG4iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCBvcGVuIC9kZXYvdXJhbmRvbSIKKyN+IG1zZ3N0ciAiZWkgc3V1ZGEgYXZhZGEgbHVnZW1pc2VrcyBzZWFkZXQgL2Rldi91cmFuZG9tIgorCisjfiBtc2dpZCAiY291bGRuJ3QgcmVhZCByYW5kb20gZGF0YSBmcm9tIC9kZXYvdXJhbmRvbSIKKyN+IG1zZ3N0ciAiZWkgc3V1ZGEgbHVnZWRhIGp1aHVzdCBzZWFkbWVsdCAvZGV2L3VyYW5kb20iCisKKyN+IG1zZ2lkICJjYW4ndCBzdGF0KCVzKSIKKyN+IG1zZ3N0ciAic3RhdCglcykgZWkg9W5uZXN0dW51ZCIKKworI34gbXNnaWQgIiVzIGRvZXNuJ3QgaGF2ZSB0aGUgY29ycmVjdCBmaWxlbW9kZXMiCisjfiBtc2dzdHIgImZhaWxpbCAlcyBvbiB2YWxlZCBqdXVyZGVw5ORzdfVpZ3VzZWQiCisKKyN+IG1zZ2lkICJjYW4ndCByZWFkIGRhdGEgZnJvbSAlcyIKKyN+IG1zZ3N0ciAiZWkgc3V1ZGEgbHVnZWRhIGZhaWxpICVzIgorCisjfiBtc2dpZCAiIgorI34gIlRvbyBtYW55IHVzZXJzIGxvZ2dlZCBvbiBhbHJlYWR5LlxuIgorI34gIlRyeSBhZ2FpbiBsYXRlci5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkxpaWdhIHBhbGp1IGthc3V0YWphaWQgb24ganViYSBzaXNzZSBsb2dpbnVkLlxuIgorI34gIlByb292aWdlIGhpbGplbSB1dWVzdGkuXG4iCisKKyN+IG1zZ2lkICJZb3UgaGF2ZSB0b28gbWFueSBwcm9jZXNzZXMgcnVubmluZy5cbiIKKyN+IG1zZ3N0ciAiVGVpbCBvbiBsaWlnYSBwYWxqdSBwcm90c2Vzc2UgdPb2dGFtYXNcbiIKKworI34gbXNnaWQgIlRoZSBwYXNzd29yZCBtdXN0IGhhdmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzLCB0cnkgYWdhaW4uXG4iCisjfiBtc2dzdHIgIlBhcm9vbCBwZWFiIG9sZW1hIHbkaGVtYWx0IDYgc/xtYm9saXQuIFByb292aWdlIHV1ZXN0aVxuIgorCisjfiBtc2dpZCAiIgorI34gIlRoZSBwYXNzd29yZCBtdXN0IGNvbnRhaW4gY2hhcmFjdGVycyBvdXQgb2YgdHdvIG9mIHRoZSBmb2xsb3dpbmdcbiIKKyN+ICJjbGFzc2VzOiAgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBub24gYWxwaGFudW1lcmljXG4iCisjfiAiY2hhcmFjdGVycy4gU2VlIHBhc3N3ZCgxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlBhcm9vbCBwZWFiIHNpc2FsZGFtYSBt5HJrZSB25GhlbWFsdCBrYWhlc3QgauRyZ25ldmFzdCBrbGFzc2lzdDpcbiIKKyN+ICJzdXVyLSBqYSB25GlrZXTkaGVkLCBudW1icmlkIGphIG11dWQgc/xtYm9saWQuIFZhYWRha2UgcGFzc3dkKDEpICIKKyN+ICJsaXNhaW5mb2tzXG4iCisKKyN+IG1zZ2lkICJZb3UgY2Fubm90IHJldXNlIHRoZSBvbGQgcGFzc3dvcmQuXG4iCisjfiBtc2dzdHIgIlZhbmEgcGFyb29saSBlaSBzYWEgdXVlc3RpIGthc3V0YWRhXG4iCisKKyN+IG1zZ2lkICJQbGVhc2UgZG9uJ3QgdXNlIHNvbWV0aGluZyBsaWtlIHlvdXIgdXNlcm5hbWUgYXMgcGFzc3dvcmQhXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLEcmdlIHBhbHVuIHBhbmdlIHBhcm9vbGlrcyBtaWRhZ2ksIG1pcyBzYXJuYW5lYiBUZWllIGthc3V0YWphbmltZWdhIVxuIgorCisjfiBtc2dpZCAiUGxlYXNlIGRvbid0IHVzZSBzb21ldGhpbmcgbGlrZSB5b3VyIHJlYWxuYW1lIGFzIHBhc3N3b3JkIVxuIgorI34gbXNnc3RyICLEcmdlIHBhbHVuIHBhbmdlIHBhcm9vbGlrcyBtaWRhZ2ksIG1pcyBzYXJuYW5lYiBUZWllIHDkcmlzbmltZWdhIVxuIgorCisjfiBtc2dpZCAiVXNhZ2U6IHBhc3N3ZCBbdXNlcm5hbWUgW3Bhc3N3b3JkXV1cbiIKKyN+IG1zZ3N0ciAiS2FzdXRhbWluZTogcGFzc3dkIFtrYXN1dGFqYW5pbWkgW3Bhcm9vbF1dXG4iCisKKyN+IG1zZ2lkICJPbmx5IHJvb3QgbWF5IHVzZSB0aGUgb25lIGFuZCB0d28gYXJndW1lbnQgZm9ybXMuXG4iCisjfiBtc2dzdHIgIkFpbnVsdCBzdXBlcmthc3V0YWphIHRvaGliIGthIGFyZ3VtZW50ZSBrYXN1dGFkYVxuIgorCisjfiBtc2dpZCAiVXNhZ2U6IHBhc3N3ZCBbLWZvcXN2Vl0gW3VzZXIgW3Bhc3N3b3JkXV1cbiIKKyN+IG1zZ3N0ciAiS2FzdXRhbWluZTogcGFzc3dkIFstZm9xc3ZWXSBba2FzdXRhamFuaW1pIFtwYXJvb2xdXVxuIgorCisjfiBtc2dpZCAiQ2FuJ3QgZXhlYyAlczogJXNcbiIKKyN+IG1zZ3N0ciAiRWkgc3V1ZGEga+Rpdml0YWRhIHByb2dyYW1taSAlczogJXNcbiIKKworI34gbXNnaWQgIkNhbm5vdCBmaW5kIGxvZ2luIG5hbWUiCisjfiBtc2dzdHIgIkVpIHN1dWRhIGtpbmRsYWtzIHRlaGEgVGVpZSBrYXN1dGFqYW5pbWUiCisKKyN+IG1zZ2lkICJPbmx5IHJvb3QgY2FuIGNoYW5nZSB0aGUgcGFzc3dvcmQgZm9yIG90aGVycy5cbiIKKyN+IG1zZ3N0ciAiQWludWx0IHN1cGVya2FzdXRhamEgdG9oaWIgdGVpc3RlIHBhcm9vbGUgbXV1dGFcbiIKKworI34gbXNnaWQgIkNhbid0IGZpbmQgdXNlcm5hbWUgYW55d2hlcmUuIElzIGAlcycgcmVhbGx5IGEgdXNlcj8iCisjfiBtc2dzdHIgIkVpIHN1dWRhIGxlaWRhIHNlbGxpc3Qga2FzdXRhamF0LiBLYXMgYCVzJyBvbiBpa2thIGthc3V0YWphPyIKKworI34gbXNnaWQgIlNvcnJ5LCBJIGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBwYXNzd29yZHMuIFVzZSB5cHBhc3N3ZCBpbnN0ZWFkLiIKKyN+IG1zZ3N0ciAiIgorI34gIlNlbGxlIHByb2dyYW1taWdhIHNhYWIgbXV1dGEgYWludWx0IGxva2FhbHNlaWQgcGFyb29sZS5cbiIKKyN+ICJFaGsgYWl0YWIgcHJvZ3JhbW1pIHlwcGFzc3dkIGthc3V0YW1pbmUuIgorCisjfiBtc2dpZCAiVUlEIGFuZCB1c2VybmFtZSBkb2VzIG5vdCBtYXRjaCwgaW1wb3N0ZXIhIgorI34gbXNnc3RyICJVSUQgamEga2FzdXRhamFuaW1pIGVpIGxhbmdlIGtva2t1IC0gcGV0aXMgbmlpc3VndW5lISIKKworI34gbXNnaWQgIkNoYW5naW5nIHBhc3N3b3JkIGZvciAlc1xuIgorI34gbXNnc3RyICJNdXVkYW1lIGthc3V0YWphICVzIHBhcm9vbGlcbiIKKworI34gbXNnaWQgIkVudGVyIG9sZCBwYXNzd29yZDogIgorI34gbXNnc3RyICJWYW5hIHBhcm9vbDogIgorCisjfiBtc2dpZCAiSWxsZWdhbCBwYXNzd29yZCwgaW1wb3N0ZXIuIgorI34gbXNnc3RyICJWYWxlIHBhcm9vbCIKKworI34gbXNnaWQgIkVudGVyIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJVdXMgcGFyb29sOiAiCisKKyN+IG1zZ2lkICJQYXNzd29yZCBub3QgY2hhbmdlZC4iCisjfiBtc2dzdHIgIkVpIG11dXRudWQgcGFyb29saS4iCisKKyN+IG1zZ2lkICJSZS10eXBlIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJVdXMgcGFyb29sIHV1ZXN0aTogIgorCisjfiBtc2dpZCAiWW91IG1pc3NwZWxsZWQgaXQuIFBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAiUGFyb29saWQgZWkga2xhcGkgLSB0aXBwaXNpdGUgaWxtc2VsdCB2YWxlc3RpLiBQYXJvb2wgauRpIG11dXRtYXRhLiIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQsIHVzZXIgJXMiCisjfiBtc2dzdHIgIm11dWRldGkga2FzdXRhamEgJXMgcGFyb29sIgorCisjfiBtc2dpZCAiUk9PVCBQQVNTV09SRCBDSEFOR0VEIgorI34gbXNnc3RyICJST09EVSBQQVJPT0wgTVVVREVUSSIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQgYnkgcm9vdCwgdXNlciAlcyIKKyN+IG1zZ3N0ciAia2FzdXRhamEgJXMgbXV1dGlzIHJvb2R1IHBhcm9vbGkiCisKKyN+IG1zZ2lkICJjYWxsaW5nIHNldHB3bmFtIHRvIHNldCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAia3V0c3VuIHbkbGphIGZ1bmt0c2lvb25pIHNldHB3bmFtIHBhcm9vbGkgc2VhZG1pc2Vrc1xuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgY2hhbmdlZC5cbiIKKyN+IG1zZ3N0ciAiUGFyb29sIG9uIG78/GQgbXV1ZGV0dWRcbiIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2V1LmdtbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2V1LmdtbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWU3MmNjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZXUuZ21vCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2V1LnBvIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZXUucG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjUxZDkyMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2V1LnBvCkBAIC0wLDAgKzEsMTE0NDQgQEAKKyMgQmFzcXVlIHRyYW5zbGF0aW9uIG9mIHV0aWwtbGludXgtbmcuCisjIENvcHlyaWdodCAoQykgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZS4KKyMgTWlrZWwgT2xhc2FnYXN0aSBVcmFuZ2EgPGhleV9uZWtlbkBtdW5kdXJhdC5uZXQ+LCAyMDA1LCAyMDA5LCAyMDEwLgorIyAsIGZ1enp5CisjCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4LW5nIDIuMTcuMS1yYzFcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTAtMDItMTYgMTk6NTgrMDEwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogTWlrZWwgT2xhc2FnYXN0aSBVcmFuZ2EgPGhleV9uZWtlbkBtdW5kdXJhdC5uZXQ+XG4iCisiTGFuZ3VhZ2UtVGVhbTogQmFzcXVlIDx0cmFuc2xhdGlvbi10ZWFtLWV1QGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKKyJNSU1FLVZlcnNpb246IDEuMFxuIgorIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xXG4iCisiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NjMKK21zZ2lkICJzZXQgcmVhZC1vbmx5IgorbXNnc3RyICJlemFycmkgaXJha3VydHpla28gc29pbGlrIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAiZXphcnJpIGlyYWt1cmtldGEtaWRhemtldGFyYWtvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzYKK21zZ2lkICJnZXQgcmVhZC1vbmx5IgorbXNnc3RyICJsb3J0dSBpcmFrdXJrZXRhIHNvaWxpayIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAibG9ydHUgYmxva2UgbG9naWtvYXJlbiAoc2VrdG9yZWEpIHRhbWFpbnVhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKK21zZ2lkICJnZXQgcGh5c2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAibG9ydHUgYmxva2UgZmlzaWtvYXJlbiAoc2VrdG9yZWEpIHRhbWFpbnVhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6OTQKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IG1pbmltdW0gSS9PIHNpemUiCittc2dzdHIgIiVzOiBnZXQgc2l6ZSBlZ2l0ZXJha29hbiBodXRzIGVnaW4gZGEiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgIiVzOiBnZXQgc2l6ZSBlZ2l0ZXJha29hbiBodXRzIGVnaW4gZGEiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDYKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGFsaWdubWVudCBvZmZzZXQiCittc2dzdHIgImxvcnR1IGlyYWt1cmtldGEgc29pbGlrIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTEyCittc2dpZCAiZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTgKK21zZ2lkICJnZXQgYmxvY2tzaXplIgorbXNnc3RyICJsb3J0dSBibG9rZS10YW1haW51YSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEyNQorbXNnaWQgInNldCBibG9ja3NpemUiCittc2dzdHIgImV6YXJyaSBibG9rZS10YW1haW51YSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzMQorbXNnaWQgImdldCAzMi1iaXQgc2VjdG9yIGNvdW50IgorbXNnc3RyICJsb3J0dSAzMiBiaXQtZWtvIHNla3RvcmUga29wdXJ1YSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICJsb3J0dSB0YW1haW51YSBieXRlLXRhbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgImV6YXJyaSByZWFkYWhlYWQiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTAKK21zZ2lkICJnZXQgcmVhZGFoZWFkIgorbXNnc3RyICJsb3J0dSByZWFkYWhlYWQiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgImV6YXJyaSBgcmVhZGFoZWFkJyBmaXR4YXRlZ2kgc2lzdGVtYXJpIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTYzCittc2dpZCAiZ2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJsb3J0dSBmaXR4YXRlZ2kgc2lzdGVtYXJlbiBgcmVhZGFoZWFkJy1hIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTY3Cittc2dpZCAiZmx1c2ggYnVmZmVycyIKK21zZ3N0ciAiaHVzdHUgYnVmZmVycmFrIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTcxCittc2dpZCAicmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiYmVyaXJha3VycmkgcGFydGl6aW8gdGF1bGEiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6XG4iCittc2dzdHIgIkVyYWJpbGVyYTpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFtnYWlsdWFrXVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgWy12fC1xXSBjb21tYW5kcyBkZXZpY2VzXG4iCittc2dzdHIgIiAgJXMgWy12fC1xXSBrb21hbmRvYWsgZ2FpbHVha1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBjb21tYW5kczpcbiIKK21zZ3N0ciAiRXJhYmlsZ2FycmkgZGF1ZGVuIGtvbWFuZG9hazpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NworbXNnaWQgImdldCBzaXplIGluIDUxMi1ieXRlIHNlY3RvcnMiCittc2dzdHIgImxvcnR1IHRhbWFpbnVhIDUxMiBieXRlLWVrbyBzZWt0b3JlZXRhbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBjb21tYW5kOiAlc1xuIgorbXNnc3RyICIlczogS29tYW5kbyBlemV6YWd1bmE6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCittc2dzdHIgImNvbDogLWwgYmFsaW9nYWJla28gYXJndW1lbnR1YSAlcy5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgIiVzLShlKWsgaHV0cyBlZ2luIGR1LlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN1Y2NlZWRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDI3IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJFemluIGRhIGlyZWtpIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaW9jdGwgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKK21zZ3N0ciAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6XG4iCittc2dzdHIgImVyYWJpbGVyYTpcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHROT1RFOiBlbHZ0dW5lIG9ubHkgd29ya3Mgd2l0aCAyLjQga2VybmVsc1xuIgorbXNnc3RyICJcdE9IQVJSQTogZWx2dHVuZS1rIDIuNCBrZXJuZWwtZWtpbiBiYWthcnJpayBmdW50emlvbmF0emVuIGR1XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAiY3JjIGVycm9yZWEiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJsb2NrZGV2aWNlLCB1c2UgLWggZm9yIGhlbHBcbiIKK21zZ3N0ciAiYmxva2UtZ2FpbHVhIGZhbHRhIGRhLCBlcmFiaWxpIC1oIGxhZ3VudHphcmFrb1xuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImVsdnR1bmUgaXMgb25seSB1c2VmdWwgb24gb2xkZXIga2VybmVscztcbiIKKyJmb3IgMi42IHVzZSBJTyBzY2hlZHVsZXIgc3lzZnMgdHVuYWJsZXMgaW5zdGVhZC4uXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcm1hdHRpbmcgLi4uICIKK21zZ3N0ciAiRm9ybWF0ZWF0emVuIC4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo0OSBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJlZ2luZGFcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlZlcmlmeWluZyAuLi4gIgorbXNnc3RyICJFZ2lhenRhdHplbiAuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIklyYWt1cnJpOiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImJhZCBkYXRhIGluIGN5bCAlZFxuIgorIkNvbnRpbnVpbmcgLi4uICIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLW4gXSBkZXZpY2VcbiIKK21zZ3N0ciAiZXJhYmlsZXJhOiAlcyBbIC1uXSBnYWlsdWFcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjExOCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg0CisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxODEgZGlzay11dGlscy9ta2ZzLmJmcy5jOjExNCBkaXNrLXV0aWxzL21rZnMuYzo1MgorIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjgxMiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzIKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDg3IG1pc2MtdXRpbHMvZGRhdGUuYzoxNzkgbWlzYy11dGlscy9yZW5hbWUuYzo3OQorIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNDcgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICglcylcbiIKK21zZ3N0ciAiJXMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIkVyYWJpbGVyYTogJXMgW2F1a2VyYWtdIGdhaWx1YSAuLi5cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIkRvdWJsZSIKK21zZ3N0ciAiQmlrb2l0emEiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJTaW5nbGUiCittc2dzdHIgIkJha2FycmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICJzdGF0LWVrIGh1dHMgZWdpbiBkdTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIm9wZW4tZWsgaHV0cyBlZ2luIGR1OiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBmYWlsZWQ6IHVuYWJsZSB0byBkZXRlcm1pbmUgZGV2aWNlIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODQgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyNgorbXNnaWQgImZpbGUgbGVuZ3RoIHRvbyBzaG9ydCIKK21zZ3N0ciAiZml0eGF0ZWdpIGx1emVlcmEgbW90eGVnaWEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZmFpbGVkOiAlcyIKK21zZ3N0ciAicmVhZC1layBodXRzIGVnaW4gZHU6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjA3Cittc2dpZCAic3VwZXJibG9jayBtYWdpYyBub3QgZm91bmQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxNgorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgImZpdHhhdGVnaSBzaXN0ZW1hcmVuIGV1c2thcnJpcmlrIGdhYmVrbyBlemF1Z2FycmlhayIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICJzdXBlcmJsb2NrIHNpemUgKCVkKSB0b28gc21hbGwiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyMworIywgZnV6enkKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgIkV6aW4gZGEgJyVzJyBmaXR4YXRlZ2lhIGlyZWtpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgZXh0ZW5kcyBwYXN0IGVuZCBvZiBmaWxlc3lzdGVtXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBvbGQgY3JhbWZzIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNDYKK21zZ2lkICJ1bmFibGUgdG8gdGVzdCBDUkM6IG9sZCBjcmFtZnMgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzIgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjMzOQorIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ3NyBsb2dpbi11dGlscy9jaGZuLmM6NTI5IGxvZ2luLXV0aWxzL2Noc2guYzo0MzkKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTQxIHN5cy11dGlscy9jeXR1bmUuYzozMjEKK21zZ2lkICJtYWxsb2MgZmFpbGVkIgorbXNnc3RyICJtYWxsb2MtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjk3Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICJjcmMgZXJyb3JlYSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorbXNnaWQgInJvb3QgaW5vZGUgaXMgbm90IGRpcmVjdG9yeSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByb290IG9mZnNldCAoJWx1KSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mzg3Cittc2dpZCAiZGF0YSBibG9jayB0b28gbGFyZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGVjb21wcmVzc2lvbiBlcnJvciAlcCglZCk6ICVzIgorbXNnc3RyICJjcmMgZXJyb3JlYSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICIgIGhvbGUgYXQgJWxkICglemQpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyMyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgdW5jb21wcmVzc2luZyBibG9jayBhdCAlbGQgdG8gJWxkICglbGQpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm9uLWJsb2NrICglbGQpIGJ5dGVzIgorbXNnc3RyICJTdXBlciBibG9rZWE6ICV6ZCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZmFpbGVkOiAlcyIKK21zZ3N0ciAid3JpdGUtayBodXRzIGVnaW4gZHU6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgImxjaG93biBmYWlsZWQ6ICVzIgorbXNnc3RyICJsY2hvd24tKGUpayBodXRzIGVnaW4gZHU6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDU4CisjLCBjLWZvcm1hdAorbXNnaWQgImNob3duIGZhaWxlZDogJXMiCittc2dzdHIgImNob3duLShlKWsgaHV0cyBlZ2luIGR1OiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ1dGltZS0oZSlrIGh1dHMgZWdpbiBkdTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ5NAorIywgYy1mb3JtYXQKK21zZ2lkICJta2RpciBmYWlsZWQ6ICVzIgorbXNnc3RyICJta2Rpci0oZSlrIGh1dHMgZWdpbiBkdTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTEKK21zZ2lkICJmaWxlbmFtZSBsZW5ndGggaXMgemVybyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTE0Cittc2dpZCAiYmFkIGZpbGVuYW1lIGxlbmd0aCIKK21zZ3N0ciAiZml0eGF0ZWdpIGx1emVlcmEgb2tlcnJhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCisjLCBmdXp6eQorbXNnaWQgImJhZCBpbm9kZSBvZmZzZXQiCittc2dzdHIgImZpdHhhdGVnaSBsdXplZXJhIG9rZXJyYSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUzNworbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NDAKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIHNpemUgYW5kIG5vbi16ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTcxCittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3NAorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICJsb3J0dSB0YW1haW51YSBieXRlLXRhbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJzeW1saW5rIGZhaWxlZDogJXMiCittc2dzdHIgInN5bWxpbmstZWsgaHV0cyBlZ2luIGR1OiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAiYCVzJyBmaXR4YXRlZ2lhayAlMDVvIG1vZHVhIGRhdWthXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAibWtub2QtKGUpayBodXRzIGVnaW4gZHU6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIHN0YXJ0ICglbGQpIDwgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKK21zZ2lkICJpbnZhbGlkIGZpbGUgZGF0YSBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICJodXRzIGVnaW4gZGEgbGVycm8gYnVmZmVyLWEgaGFzaWVyYXR6ZW5cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworIywgZnV6enkKK21zZ2lkICJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiCittc2dzdHIgIiAgICAgICAgKGxpYmJsa2lkIGdhYmUga29ucGlsYXR1YSkuICIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtZVxuIgorbXNnc3RyICJFcmFiaWxlcmE6ICVzIFstbGFydnNtZl0gL2Rldi9pemVuYVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIG1vbnRhdHVhIGRhZ28uXHQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyNQorbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byBjb250aW51ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hlY2sgYWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNDggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzgwCisjLCBmdXp6eQorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiZXppbiBkYSAlcyBpZC1hIGV6YWJhdHUgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogdW5hYmxlIHRvIHNlZWsgdG8gYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgc3VwZXItYmxvY2siCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTYwCisjLCBmdXp6eQorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgIiAgIHcgICBpZGF0emkgZGlza29hcmVuIGV0aWtldGEgZGlza29hbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTg3Cittc2dpZCAic2VlayBmYWlsZWQiCittc2dzdHIgInNlZWstZWsgaHV0cyBlZ2luIGR1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTEgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6Mzk5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIGJ1ZmZlciBmb3Igc3VwZXJibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNAorbXNnaWQgIk9ubHkgMWsgYmxvY2tzL3pvbmVzIHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTYKK21zZ2lkICJiYWQgc19pbWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjUKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI4Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MworbXNnaWQgIlVuYWJsZSB0byByZWFkIHpvbmUgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NQorIywgZnV6enkKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZXMiCittc2dzdHIgImV6aW4gZGlyYSBib290Yml0IHNla3RvcmVhayBlemFiYXR1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICJPaGFycmE6IGlub2RvIGtvcHVydWEgaGFuZGllZ2lhLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkIGlub2RvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGJsb2Nrc1xuIgorbXNnc3RyICIlbGQgYmxva2VcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU0IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdGRhdGF6b25lPSVsZCAoJWxkKVxuIgorbXNnc3RyICJMZWhlbiBkYXRhIHpvbmE9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiWm9uYXJlbiB0YW1haW51YT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF4c2l6ZT0lbGRcbiIKK21zZ3N0ciAiR2VoaWVuZXprbyB0YW1haW51YT0lbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKK21zZ3N0ciAiRml0eGF0ZWdpIHNpc3RlbWFyZW4gZWdvZXJhPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisiaXplbiBsdXplZXJhPSVkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3MyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgYnV0IHVzZWQgZm9yIGZpbGUgJyVzJ1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjgKK21zZ2lkICJNYXJrIGluIHVzZSIKK21zZ3N0ciAiTWFya2F0dSBlcmFiaWxpYSBkYWdvZWxhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIgorbXNnc3RyICJgJXMnIGZpdHhhdGVnaWFrICUwNW8gbW9kdWEgZGF1a2FcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzA2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpbm9kZSBjb3VudCB0b28gYmlnLlxuIgorbXNnc3RyICJPaGFycmE6IGlub2RvIGtvcHVydWEgaGFuZGllZ2lhLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAiZXJybyBpbm9kb2EgZXogZGEgZGlyZWt0b3Jpb2EiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc4OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgaGFzIGJlZW4gdXNlZCBiZWZvcmUuIE5vdyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc5MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjMKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NQorIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjEwCittc2dpZCAiQ2xlYXIiCittc2dzdHIgIkdhcmJpYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzUKK21zZ2lkICJDb3JyZWN0IgorbXNnc3RyICJadXplbmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBFemFiYXR1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorbXNnc3RyICJlcnJvIGlub2RvYSBleiBkYSBkaXJla3RvcmlvYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorbXNnc3RyICJlcnJvIGlub2RvYSBleiBkYSBkaXJla3RvcmlvYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTE5Cittc2dpZCAiaW50ZXJuYWwgZXJyb3IiCittc2dzdHIgImJhcm5lIGVycm9yZWEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogc2l6ZSA8IDMyIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ1IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbW9kZSBub3QgY2xlYXJlZC4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjA5CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG5vdCB1c2VkLCBtYXJrZWQgdXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTYKK21zZ2lkICJTZXQiCittc2dzdHIgIkV6YXJyaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIChtb2RlID0gJTA3byksIGlfbmxpbmtzPSVkLCBjb3VudGVkPSVkLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG1hcmtlZCBpbiB1c2UsIG5vIGZpbGUgdXNlcyBpdC4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM2Cittc2dpZCAiVW5tYXJrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlBhcnRpemlvIGhhdSBkYWdvZW5la28gZXJhYmlsaXRhIGRhZ28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBub3QgaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorIywgZnV6enkKK21zZ2lkICJiYWQgaW5vZGUgc2l6ZSIKK21zZ3N0ciAiVGFtYWludWEgKE1CdGFuKTogIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjkxCittc2dpZCAiYmFkIHYyIGlub2RlIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMxNworbXNnaWQgIm5lZWQgdGVybWluYWwgZm9yIGludGVyYWN0aXZlIHJlcGFpcnMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMyMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJyVzJzogJXMiCittc2dzdHIgImV6aW4gZGlyYSBib290Yml0IHNla3RvcmVhayBlemFiYXR1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBjbGVhbiwgbm8gY2hlY2suXG4iCittc2dzdHIgIkV6IGRhZ28gKkJTRCBwYXJ0aXppb3JpayAlcy0oZSluLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcmNpbmcgZmlsZXN5c3RlbSBjaGVjayBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gb24gJXMgaXMgZGlydHksIG5lZWRzIGNoZWNraW5nLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiJTZsZCB6b25hIGVyYWJpbGl0YSAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTZsZCB6b25lcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiJTZsZCB6b25hIGVyYWJpbGl0YSAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkZJTEUgU1lTVEVNIEhBUyBCRUVOIENIQU5HRURcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiRklUWEFURUdJIFNJU1RFTUEgQUxEQVRVIERBXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiaHV0cyBlZ2luIGRhIGxlcnJvIGJ1ZmZlci1hIGhhc2llcmF0emVuXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNlZWsgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiRXppbiBkYSBiaWxhdHUgZGlza28gdW5pdGF0ZWFuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiAgICAgICAgZGlza28gZ3V6dGlhbi4gIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNlY3RvciBjb3VudDogJWQsIHNlY3RvciBzaXplOiAlZFxuIgorbXNnc3RyICJsb3J0dSBibG9rZSBsb2dpa29hcmVuIChzZWt0b3JlYSkgdGFtYWludWEiCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiBwYXJzZSBlcnJvclxuIgorbXNnc3RyICJlcnJvcmVhOiBtYWxsb2MtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLWltYWdlXG4iCittc2dzdHIgIkVyYWJpbGVyYTogJXMgWy14XSBbLWQgPHplbmJha2lhPl0gaXNvOTY2MC1pcnVkaWFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy12XSBbLU4gbnItb2YtaW5vZGVzXSBbLVYgdm9sdW1lLW5hbWVdXG4iCisiICAgICAgIFstRiBmc25hbWVdIGRldmljZSBbYmxvY2stY291bnRdXG4iCittc2dzdHIgIiIKKyJFcmFiaWxlcmE6ICVzIFstdl0gWy1OIGlub2RvLWtvcHVydWFdIFstViBib2x1bWVuLWl6ZW5hXVxuIgorIiAgICAgICBbLUYgZnMtaXplbmFdIGdhaWx1YSBbYmxva2Uta29wdXJ1YV1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzMAorIywgZnV6enkKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAiLS1kYXRlIGFyZ3VtZW50dWEgbHV6ZWVnaWEgZGFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzNworIywgZnV6enkKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAiLS1kYXRlIGFyZ3VtZW50dWEgbHV6ZWVnaWEgZGFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJFemluIGRhICclcycgKCVzKSByYXcgbW9ldGFrbyBnYWlsdWEgYXVya2l0dVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIGJsb2NrIHNwZWNpYWwgZGV2aWNlIgorbXNnc3RyICIlcyBleiBkYSBibG9rZSBnYWlsdSBiZXJlemlhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAiZXppbiBkYSAlcyBpcmVraSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBzaXplIG9mICVzIgorbXNnc3RyICJFemluIGRhIGRpc2tvYXJlbiB0YW1haW51YSBsb3J0dSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgYy1mb3JtYXQKK21zZ2lkICJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIKK21zZ3N0ciAiYmxva2UgYXJndW1lbnR1IGx1emVlZ2lhLCBnZWhpZW5lemtvYSAlbGx1IGRhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjAyCittc2dpZCAidG9vIG1hbnkgaW5vZGVzIC0gbWF4IGlzIDUxMiIKK21zZ3N0ciAiaW5vZG8gZ2VoaWVnaSAtIGdlaGllbmV6a29hIDUxMiBkYSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlLCBuZWVkIGF0IGxlYXN0ICVsbHUgYmxvY2tzIgorbXNnc3RyICJleiBkYWdvIG5haGlrb2EgbGVrdSwgJWxsdSBibG9rZSBiZWhhciBkaXJhIGd1dHhpZW5leiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICJHYWlsdWE6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVm9sdW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiQm9sdW1lbmE6IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIkZTaXplbmE6IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrU2l6ZTogJWRcbiIKK21zZ3N0ciAiQmxva2UgdGFtYWluYTogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gMSBibG9jaylcbiIKK21zZ3N0ciAiTWFya2F0dSBlcmFiaWxpYSBkYWdvZWxhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluICVsbGQgYmxvY2tzKVxuIgorbXNnc3RyICJJbm9kb2FrOiAlZCAoJWxsZCBibG9rZWV0YW4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tzOiAlbGxkXG4iCittc2dzdHIgIkJsb2tlYWs6ICVsbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgZW5kOiAlZCwgRGF0YSBlbmQ6ICVkXG4iCittc2dzdHIgIiAgIGUgICBkaXNrb2FyZW4gZGF0YSBlZGl0YXR1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM5Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzdXBlcmJsb2NrIgorbXNnc3RyICJlcnJvcmVhIHN1cGVyYmxva2VhIGlkYXp0ZW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNTkKK21zZ2lkICJlcnJvciB3cml0aW5nIHJvb3QgaW5vZGUiCittc2dzdHIgImVycm9yZWEgZXJybyBpbm9kb2EgaWRhenRlbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NAorIywgZnV6enkKK21zZ2lkICJlcnJvciB3cml0aW5nIGlub2RlIgorbXNnc3RyICJEaXNrbyBldGlrZXRhIGlkYXp0ZW4gJXMtKGUpcmkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjcKKyMsIGZ1enp5Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAiY3JjIGVycm9yZWEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuIGVudHJ5IgorbXNnc3RyICJEaXNrbyBldGlrZXRhIGlkYXp0ZW4gJXMtKGUpcmkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzcKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAiRGlza28gZXRpa2V0YSBpZGF6dGVuICVzLShlKXJpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNsb3NpbmcgJXMiCittc2dzdHIgImVycm9yZWEgJXMgaXR4aXR6ZXJha29hbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICIiCisiRXJhYmlsZXJhOiBta2ZzIFstVl0gWy10IGZpdHhhdGVnaSBzaXN0ZW1hIG1vZXRhXSBbZml0eGF0ZWdpIHNpc3RlbWFyZW4gIgorImF1a2VyYWtdIGdhaWx1YSBbdGFtYWludWFdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjg4IGRpc2stdXRpbHMvbWtmcy5jOjk2IGZkaXNrL2NmZGlzay5jOjM1MworIzogZ2V0b3B0L2dldG9wdC5jOjg2IGdldG9wdC9nZXRvcHQuYzo5NiBsb2dpbi11dGlscy93YWxsLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPdXQgb2YgbWVtb3J5IVxuIgorbXNnc3RyICIlczogTWVtb3JpYXoga2FucG8hXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICJta2ZzICglcylcbiIKK21zZ3N0ciAibWtmcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImZpbGVzeXN0ZW0gdG9vIGJpZy4gIEV4aXRpbmcuXG4iCittc2dzdHIgImZpdHhhdGVnaSBzaXN0ZW1hIGhhbmRpZWdpYS4gSXJ0ZXRlbi5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiJTYuMmYlJSAoJStsZCBieXRlcylcdCVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiUk9NIGlydWRpIG1hcGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5jbHVkaW5nOiAlc1xuIgorbXNnc3RyICJCYXJuZSBoYXJ0emVuOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpcmVjdG9yeSBkYXRhOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiRGlyZWt0b3Jpb2FyZW4gZGF0YTogJXpkIGJ5dGVcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgYy1mb3JtYXQKK21zZ2lkICJFdmVyeXRoaW5nOiAlemQga2lsb2J5dGVzXG4iCittc2dzdHIgIkd1enRpYWs6ICV6ZCBraWxvYnl0ZVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN1cGVyIGJsb2NrOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiU3VwZXIgYmxva2VhOiAlemQgYnl0ZVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNSQzogJXhcbiIKK21zZ3N0ciAiQ1JDOiAleFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UgYWxsb2NhdGVkIGZvciBST00gaW1hZ2UgKCVsbGQgYWxsb2NhdGVkLCAlenUgdXNlZClcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTMzCittc2dpZCAiUk9NIGltYWdlIgorbXNnc3RyICJST00gaXJ1ZGlhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPTSBpbWFnZSB3cml0ZSBmYWlsZWQgKCV6ZCAlemQpXG4iCittc2dzdHIgIlJPTSBpcnVkaWEgaWRhenRlYWsgaHV0cyBlZ2luIGR1ICglemQgJXpkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIHNpemVzIHRydW5jYXRlZCB0byAlbHVNQiAobWludXMgMSBieXRlKS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiB1aWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ2lkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKyJFcmFiaWxlcmE6ICVzIFstYyB8IC1sIGZpdHhhdGVnaS1pemVuYV0gWy1uWFhdIFstaVhYXSAvZGV2L2l6ZW5hIFtibG9rZWFrXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBhIGZpbGVzeXN0ZW0gaGVyZSEiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTg4Cittc2dpZCAic2VlayB0byBib290IGJsb2NrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkwCittc2dpZCAidW5hYmxlIHRvIGNsZWFyIGJvb3Qgc2VjdG9yIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MgorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTYKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDAKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiICAgdyAgIGlkYXR6aSBkaXNrb2FyZW4gZXRpa2V0YSBkaXNrb2FuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjE3IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjI5MQorIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MzQwCittc2dpZCAidG9vIG1hbnkgYmFkIGJsb2NrcyIKK21zZ3N0ciAiYmxva2Ugb2tlciBnZWhlaWdpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMjUKK21zZ2lkICJub3QgZW5vdWdoIGdvb2QgYmxvY2tzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0MAorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzIGZvciBtYXBzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0OQorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJNYXhzaXplPSVsZFxuIgorIlxuIgorbXNnc3RyICJHZWhpZW5lemtvIHRhbWFpbnVhPSVsZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NjkKK21zZ2lkICJzZWVrIGZhaWxlZCBkdXJpbmcgdGVzdGluZyBvZiBibG9ja3MiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUwOCBkaXNrLXV0aWxzL21rc3dhcC5jOjMxNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MTcKK21zZ2lkICJiYWQgYmxvY2tzIGJlZm9yZSBkYXRhLWFyZWE6IGNhbm5vdCBtYWtlIGZzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyMyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIGJsb2tlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAib3JyaSBva2VyIGJhdFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzUKK21zZ2lkICJjYW4ndCBvcGVuIGZpbGUgb2YgYmFkIGJsb2NrcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkYmxvY2sgbnVtYmVyIGlucHV0IGVycm9yIG9uIGxpbmUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDAKK21zZ2lkICJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIKK21zZ3N0ciAiZXppbiBkYSBiYWRibG9ja3MgZml0eGF0ZWdpYSBpcmFrdXJyaSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgInN0cnRvbCBlcnJvcjogbnVtYmVyIG9mIGJsb2NrcyBub3Qgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgJXMiCittc2dzdHIgImV6aW4gZGlyYSBib290Yml0IHNla3RvcmVhayBlemFiYXR1IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgImV6aW4gZGEgJXMgaXJla2kiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgIkV6aW4gZGEgZGlza29hcmVuIHRhbWFpbnVhIGxvcnR1IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2NQorbXNnaWQgIm51bWJlciBvZiBibG9ja3MgdG9vIHNtYWxsIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWQsIGluc3RlYWQgb2YgdGhlIHN5c3RlbSB2YWx1ZSAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBzd2FwIGhlYWRlciBzaXplLCBubyBsYWJlbCB3cml0dGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJMYWJlbCB3YXMgdHJ1bmNhdGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiQlNEIGV0aWtldGEgZ2FpbHVhcmVudHphdDogJXNcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gbGFiZWwsICIKK21zZ3N0ciAiZXRpa2V0YSBnYWJlYSwgIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1dWlkXG4iCittc2dzdHIgInV1aWQtcmlrIGV6XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKyJFcmFiaWxlcmE6ICVzIFstY10gWy1wT1JSSVRBTUFJTlVBXSBbLUwgZXRpa2V0YV0gWy1VIFVVSURdIC9kZXYvaXplbmEgIgorIltibG9rZWFrXVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI5NworbXNnaWQgInRvbyBtYW55IGJhZCBwYWdlcyIKK21zZ3N0ciAib3JyaSB0eGFyIGdlaGllZ2kiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzEwIG1pc2MtdXRpbHMvbG9vay5jOjE4MiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTc5CisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDE2IHRleHQtdXRpbHMvbW9yZS5jOjIwMjcKK21zZ2lkICJPdXQgb2YgbWVtb3J5IgorbXNnc3RyICJNZW1vcmlhcmlrIGV6IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIHBhZ2VcbiIKK21zZ3N0ciAib3JyaSBva2VyIGJhdFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVsdSBvcnJpIG9rZXJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MDIgZGlzay11dGlscy9ta3N3YXAuYzo0MzkgZGlzay11dGlscy9ta3N3YXAuYzo2NTkKK21zZ2lkICJ1bmFibGUgdG8gcmV3aW5kIHN3YXAtZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCittc2dpZCAidW5hYmxlIHRvIGFsbG9jIG5ldyBsaWJibGtpZCBwcm9iZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKK21zZ2lkICJ1bmFibGUgdG8gZXJhc2UgYm9vdGJpdHMgc2VjdG9ycyIKK21zZ3N0ciAiZXppbiBkaXJhIGJvb3RiaXQgc2VrdG9yZWFrIGV6YWJhdHUiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHdhcm5pbmc6IGRvbid0IGVyYXNlIGJvb3RiaXRzIHNlY3RvcnNcbiIKK21zZ3N0ciAiZXppbiBkaXJhIGJvb3RiaXQgc2VrdG9yZWFrIGV6YWJhdHUiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKCVzIHBhcnRpdGlvbiB0YWJsZSBkZXRlY3RlZCkuICIKK21zZ3N0ciAiICAgICAgICAoJXMgcGFydGl6aW8gdGFibGEgYXR6ZW1hbiBkYSkuICIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICBvbiB3aG9sZSBkaXNrLiAiCittc2dzdHIgIiAgICAgICAgZGlza28gZ3V6dGlhbi4gIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICAgICAgIChsaWJibGtpZCBnYWJlIGtvbnBpbGF0dWEpLiAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IHN1cHBvcnQgc3dhcHNwYWNlIHZlcnNpb24gJWQuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKK21zZ2lkICJlcnJvcjogVVVJRCBwYXJzaW5nIGZhaWxlZCIKK21zZ3N0ciAiZXJyb3JlYTogVVVJRGEgaXJha3VydHplYW4gaHV0cyBlZ2luIGRhIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IE5vd2hlcmUgdG8gc2V0IHVwIHN3YXAgb24/XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzd2FwIGFyZWEgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJWxkIEtpQlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YXJuaW5nOiB0cnVuY2F0aW5nIHN3YXAgYXJlYSB0byAlbGx1IEtpQlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogd2lsbCBub3QgdHJ5IHRvIG1ha2Ugc3dhcGRldmljZSBvbiAnJXMnXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiAlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIHN3YXBzcGFjZS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIHVwIHN3YXBzcGFjZSB2ZXJzaW9uIDEsIHNpemUgPSAlbGx1IEtpQlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY3MworbXNnaWQgImZzeW5jIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBtYXRjaHBhdGhjb24oKSIKK21zZ3N0ciAiZXppbiBkaXJhIGJvb3RiaXQgc2VrdG9yZWFrIGV6YWJhdHUiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBuZXcgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njk1Cittc2dpZCAiY291bGRuJ3QgY29tcHV0ZSBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo3MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiZXppbiBkaXJhIGJvb3RiaXQgc2VrdG9yZWFrIGV6YWJhdHUiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiAgJXMgIgorbXNnc3RyICIiCisiRXJhYmlsZXJhOlxuIgorIiAgJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgJyVzJyBpcyBjb250cm9sIHJhdyBkZXYgKHVzZSByYXc8Tj4gd2hlcmUgPE4+IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTQ1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIGJsb2NrIGRldmljZSAnJXMnICglcylcbiIKK21zZ3N0ciAiRXppbiBkYSAnJXMnICglcykgcmF3IG1vZXRha28gZ2FpbHVhIGF1cmtpdHVcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgYmxvY2sgZGV2XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoxODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gbWFzdGVyIHJhdyBkZXZpY2UgJyIKK21zZ3N0ciAiRXppbiBkYSAgcmF3IGdhaWx1IG5hZ3VzaWEgaXJla2kgJyIKKworIzogZGlzay11dGlscy9yYXcuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJFemluIGRhICclcycgKCVzKSByYXcgbW9ldGFrbyBnYWlsdWEgYXVya2l0dVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIHJhdyBkZXZcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcXVlcnlpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIkV6aW4gZGEgJyVzJyAoJXMpIHJhdyBtb2V0YWtvIGdhaWx1YSBhdXJraXR1XG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjQxIGRpc2stdXRpbHMvcmF3LmM6MjYxCisjLCBjLWZvcm1hdAorbXNnaWQgInJhdyVkOlx0Ym91bmQgdG8gbWFqb3IgJWQsIG1pbm9yICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHNldHRpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIkV6aW4gZGEgJyVzJyAoJXMpIHJhdyBtb2V0YWtvIGdhaWx1YSBhdXJraXR1XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjM3OCBmZGlzay9jZmRpc2suYzoyMDgzCittc2dpZCAiVW51c2FibGUiCittc2dzdHIgIkV6aW4gZXJhYmlsaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgwIGZkaXNrL2NmZGlzay5jOjIwODUKK21zZ2lkICJGcmVlIFNwYWNlIgorbXNnc3RyICJMZWt1IGxpYnJlYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgzCittc2dpZCAiTGludXggZXh0MiIKK21zZ3N0ciAiTGludXggZXh0MiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg1Cittc2dpZCAiTGludXggZXh0MyIKK21zZ3N0ciAiTGludXggZXh0MyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg3Cittc2dpZCAiTGludXggWEZTIgorbXNnc3RyICJMaW51eCBYRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4OQorbXNnaWQgIkxpbnV4IEpGUyIKK21zZ3N0ciAiTGludXggSkZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTEKK21zZ2lkICJMaW51eCBSZWlzZXJGUyIKK21zZ3N0ciAiTGludXggUmVpc2VyRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU3Cittc2dpZCAiTGludXgiCittc2dzdHIgIkxpbnV4IgorCisjOiBmZGlzay9jZmRpc2suYzozOTYKK21zZ2lkICJPUy8yIEhQRlMiCittc2dzdHIgIk9TLzIgSFBGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk4Cittc2dpZCAiT1MvMiBJRlMiCittc2dzdHIgIk9TLzIgSUZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MDIKK21zZ2lkICJOVEZTIgorbXNnc3RyICJOVEZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBoYXMgYmVlbiBjaGFuZ2VkLlxuIgorbXNnc3RyICJEaXNrb2EgYWxkYXR1IGVnaW4gZGEuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55XG4iCisiRE9TIDYueCBwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBjZmRpc2sgbWFudWFsXG4iCisicGFnZSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIk9IQVJSQTogRE9TIDYueCBwYXJ0aXppb3JlbiBiYXQgc29ydHUgZWRvIG1vZmlkaWthdHUgYmFkdXp1LFxuIgorIm1lc2VkZXogaWt1c2kgY2ZkaXNrLWVuIGVza3VsaWJ1cnVhXG4iCisiaW5mb3JtYXppbyBnZWhpYWdvcmFrLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTYKK21zZ2lkICJGQVRBTCBFUlJPUiIKK21zZ3N0ciAiRVJST1JFIExBUlJJQSIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE3Cittc2dpZCAiUHJlc3MgYW55IGtleSB0byBleGl0IGNmZGlzayIKK21zZ3N0ciAiU2FrYXR1IHRla2xhIGJhdCBjZmRpc2stZXRpayBpcnRldGVrbyIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY0IGZkaXNrL2NmZGlzay5jOjU3MgorbXNnaWQgIkNhbm5vdCBzZWVrIG9uIGRpc2sgZHJpdmUiCittc2dzdHIgIkV6aW4gZGEgYmlsYXR1IGRpc2tvIHVuaXRhdGVhbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY2Cittc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIKK21zZ3N0ciAiRXppbiBkYSBkaXNrbyB1bml0YXRlYSBpcmFrdXJyaSIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIkV6aW4gZGEgZGlza28gdW5pdGF0ZWFuIGlkYXR6aSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTE3Cittc2dpZCAiVG9vIG1hbnkgcGFydGl0aW9ucyIKK21zZ3N0ciAiUGFydGl6aW8gZ2VoaWVnaSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTIyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIlBhcnRpemlvYSAwIHNla3RvcmVhIGJhaW5hIGxlaGVuYWdvIGhhc3RlbiBkYSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTI3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJQYXJ0aXppb2EgMCBzZWt0b3JlYXJlbiBvbmRvcmVuIGFtYWl0emVuIGRhIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJQYXJ0aXppb2EgZGlza28tYW1haWVyYSBiYWluYSBsZWhlbmFnbyBoYXN0ZW4gZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJQYXJ0aXppb2EgZGlza28tYW1haWVyYSBiYWluYSBsZWhlbmFnbyBhbWFpdHplbiBkYSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgIlBhcnRpemlvYSBhemtlbiBwYXJ0aXppbyB6aWxpbmRyb2FuIGFtYWl0emVuIGRhIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgInBhcnRpemlvIGxvZ2lrb2FrIGV6IGRhdWRlIGRpc2tvIG9yZGVuZWFuIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjkKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAicGFydGl6aW8gbG9naWtvZW4gdGVpbGFrYXBlbmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworIywgZnV6enkKK21zZ2lkICJlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAicGFydGl6aW8gbG9naWtvYWsgZXogZGF1ZGUgZGlza28gb3JkZW5lYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMDMKK21zZ2lkICIiCisiISEhISBJbnRlcm5hbCBlcnJvciBjcmVhdGluZyBsb2dpY2FsIGRyaXZlIHdpdGggbm8gZXh0ZW5kZWQgcGFydGl0aW9uICEhISEiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAxNCBmZGlzay9jZmRpc2suYzoxMDI2Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbG9naWNhbCBkcml2ZSBoZXJlIC0tIHdvdWxkIGNyZWF0ZSB0d28gZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxMTY4Cittc2dpZCAiTWVudSBpdGVtIHRvbyBsb25nLiBNZW51IG1heSBsb29rIG9kZC4iCittc2dzdHIgIk1lbnUgZWxlbWVudHUgbHV6ZWVnaWEuIE1lbnVhayBhcnJhcm9hIGVtYW4gZGV6YWtlLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTIyNAorbXNnaWQgIk1lbnUgd2l0aG91dCBkaXJlY3Rpb24uIERlZmF1bHRpbmcgdG8gaG9yaXpvbnRhbC4iCittc2dzdHIgIk5vcmFiaWRlIGdhYmVrbyBtZW51YS4gSG9yaXpvbnRhbGEgbGVoZW5ldHNpa28gZGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzU2Cittc2dpZCAiSWxsZWdhbCBrZXkiCittc2dzdHIgIkJhbGlvZ2FiZWtvIHRla2xhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIlNha2F0dSBlZG96ZWluIHRla2xhIGphcnJhaXR6ZWtvIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NgorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIlByaW1hcnkiCittc2dzdHIgIlByaW1hcmlvYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNgorbXNnaWQgIkNyZWF0ZSBhIG5ldyBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiU29ydHUgcGFydGl6aW8gcHJpbWFyaW8gYmVycmkgYmF0IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgIkxvZ2lrb2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIlNvcnR1IHBhcnRpemlvIGxvZ2lrbyBiZXJyaSBiYXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MyBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiQ2FuY2VsIgorbXNnc3RyICJVdHppIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMKK21zZ2lkICJEb24ndCBjcmVhdGUgYSBwYXJ0aXRpb24iCittc2dzdHIgIkV6IHNvcnR1IHBhcnRpemlvIGJhdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NAorbXNnaWQgIiEhISBJbnRlcm5hbCBlcnJvciAhISEiCittc2dzdHIgIkJhcm5lIGVycm9yZWEgISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ3Cittc2dpZCAiU2l6ZSAoaW4gTUIpOiAiCittc2dzdHIgIlRhbWFpbnVhIChNQnRhbik6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkJlZ2lubmluZyIKK21zZ3N0ciAiSGFzaWVyYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJHZWhpdHUgcGFydGl6aW9hIGxla3UgbGlicmVhcmVuIGhhc2llcmFuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiRW5kIgorbXNnc3RyICJBbWFpZXJhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCisjLCBmdXp6eQorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkdlaGl0dSBwYXJ0aXppb2EgbGVrdSBsaWJyZWFyZW4gaGFzaWVyYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkV6IGRhZ28gcGFydGl6aW8gdGF1bGFyaWsuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzgKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuIFN0YXJ0aW5nIHdpdGggemVybyB0YWJsZS4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU4OAorbXNnaWQgIkJhZCBzaWduYXR1cmUgb24gcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTIKK21zZ2lkICJVbmtub3duIHBhcnRpdGlvbiB0YWJsZSB0eXBlIgorbXNnc3RyICJQYXJ0aXppbyB0YXVsYSBtb2V0YSBlemV6YWd1bmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTQKK21zZ2lkICJEbyB5b3Ugd2lzaCB0byBzdGFydCB3aXRoIGEgemVybyB0YWJsZSBbeS9OXSA/IgorbXNnc3RyICJaZXJvIHRhdWxhIGJhdGVraW4gaGFzaSBuYWhpIGR1enUgW2IvRV0gPyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc0Cittc2dpZCAiQ2Fubm90IG9wZW4gZGlzayBkcml2ZSIKK21zZ3N0ciAiRXppbiBkYSBkaXNrbyB1bml0YXRlYSBpcmVraSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NiBmZGlzay9jZmRpc2suYzoxODY1Cittc2dpZCAiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIkV6aW4gZGEgZGlza29hcmVuIHRhbWFpbnVhIGxvcnR1IgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJQYXJ0aXppbyBwcmltYXJpbyB0eGFycmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3NjIKK21zZ2lkICJCYWQgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIlBhcnRpemlvIGxvZ2lrbyB0eGFycmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4NzcKK21zZ2lkICJXYXJuaW5nISEgIFRoaXMgbWF5IGRlc3Ryb3kgZGF0YSBvbiB5b3VyIGRpc2shIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODEKK21zZ2lkICIiCisiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzaz8gKHllcyBvciBubyk6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg3Cittc2dpZCAibm8iCittc2dzdHIgImV6IgorCisjOiBmZGlzay9jZmRpc2suYzoxODg5CisjLCBmdXp6eQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIiAgVyAgICAgICAgICBQYXJ0aXppbyB0YXVsYSBkaXNrb2FuIGlkYXR6aSAoVyBsZXRyYSBsYXJyaXopIgorCisjOiBmZGlzay9jZmRpc2suYzoxODkxCittc2dpZCAieWVzIgorbXNnc3RyICJiYWkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTUKK21zZ2lkICJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIKK21zZ3N0ciAiTWVzZWRleiBzYXJ0dSBgYmFpJyBlZG8gYGV6JyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIlBhcnRpemlvIHRhdWxhIGRpc2tvYW4gaWRhenRlbi4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNCBmZGlzay9jZmRpc2suYzoxOTI4Cittc2dpZCAiV3JvdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIlBhcnRpemlvIHRhdWxhIGRpc2tvYW4gaWRhdHppIGRhIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI2Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIlBhcnRpemlvIHRhdWxhIGlkYXR6aSBkYSwgYmFpbmEgdGF1bGFyZW4gYmVyaXJha3Vya2V0YWsgaHV0cyBlZ2luIGR1LiBTYWlhdHUgIgorInBhcnRwcm9iZSg4KSBlZG8ga3BhcnR4KDgpLXJla2luIGVkbyBiZXJyYWJpYXJhemkgc2lzdGVtYSB0YXVsYSBiZXJyaXR6ZWtvLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzNgorbXNnaWQgIk5vIHByaW1hcnkgcGFydGl0aW9ucyBhcmUgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTk5NiBmZGlzay9jZmRpc2suYzoyMTE1IGZkaXNrL2NmZGlzay5jOjIxOTkKK21zZ2lkICJFbnRlciBmaWxlbmFtZSBvciBwcmVzcyBSRVRVUk4gdG8gZGlzcGxheSBvbiBzY3JlZW46ICIKK21zZ3N0ciAiU2FydHUgZml0eGF0ZWdpIGl6ZW5hIGVkbyBzYWthdHUgSU5UUk8gcGFudGFpbGFuIGVyYWt1c3Rla286IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgIkV6aW4gZGEgJyVzJyBmaXR4YXRlZ2lhIGlyZWtpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzXG4iCittc2dzdHIgIkRpc2tvIHVuaXRhdGVhOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIjAgc2VrdG9yZWE6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkOlxuIgorbXNnc3RyICIlZCBzZWt0b3JlYTpcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NQorbXNnaWQgIiAgIE5vbmUgICAiCittc2dzdHIgIiAgIEV6ZXIgICAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDcKK21zZ2lkICIgICBQcmkvTG9nIgorbXNnc3RyICIgICBQcmkvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ5Cittc2dpZCAiICAgUHJpbWFyeSIKK21zZ3N0ciAiICAgUHJpbWFyaW9hIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiICAgTG9naWtvYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA4OSBmZGlzay9mZGlzay5jOjE3NjcgZmRpc2svZmRpc2suYzoyMTA2CisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjI3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MTYgZmRpc2svc2ZkaXNrLmM6NjM4Cittc2dpZCAiVW5rbm93biIKK21zZ3N0ciAiRXplemFndW5hIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk1IGZkaXNrL2NmZGlzay5jOjI1NjMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5Cittc2dpZCAiQm9vdCIKK21zZ3N0ciAiQWJpbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorbXNnaWQgIk5vbmUiCittc2dzdHIgIkV6ZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIiVzLShyKWVuIHBhcnRpemlvIHRhdWxhXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzYKK21zZ2lkICIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iCittc2dzdHIgIiAgICAgICAgICAgICAgIExlaGVuYSAgICAgQXprZW5hXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjIE1vZXRhICAgICBTZWt0by4gICAgICBTZWt0by4gICBPZmZzZXQtYSBMdXplZXJhICAgRml0eC4gU2lzdC4gTW9ldGEoSUQpICIKKyJBZGllcmF6bGVhXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgICAtLS0tSGFzaWVyYS0tLS0gICAgICAtLS0tQW1haWVyYS0tLS0gICAgSGFzaSAgICAgIEtvcHVydWFcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMgorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICIgIyBGbGFncyBIZWFkIFNlY3QgIEN5bCAgIElEICBIZWFkIFNlY3QgIEN5bCAgICAgU2VrdG9yZWEgIFNla3RvcmVha1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIzCittc2dpZCAiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlJhdyIKK21zZ3N0ciAiUmF3IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIHVzaW5nIHJhdyBkYXRhIGZvcm1hdCIKK21zZ3N0ciAiSW5wcmltYXR1IHRhdWxhIHJhdyBkYXR1IGZvcm1hdHVhIGVyYWJpbGl6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJTZWN0b3JzIgorbXNnc3RyICJTZWt0b3JlYWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcKK21zZ2lkICJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICJJbnByaW1hdHUgdGF1bGEgc2VrdG9yZSBiaWRleiBvcmRlbmF0dWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAiVGF1bGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlNvaWxpayBwYXJ0aXppbyB0YXVsYSBpbnByaW1hdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJEb24ndCBwcmludCB0aGUgdGFibGUiCittc2dzdHIgIkV6IGlucHJpbWF0dSB0YXVsYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgImNmZGlzay1lbnR6YXQgbGFndW50emEgcGFudGFpbGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODkKK21zZ2lkICJUaGlzIGlzIGNmZGlzaywgYSBjdXJzZXMgYmFzZWQgZGlzayBwYXJ0aXRpb25pbmcgcHJvZ3JhbSwgd2hpY2giCittc2dzdHIgIiIKKyJIYXUgY2ZkaXNrIGRhLCBjdXJzZXMtZW4gb2luYXJyaXR1dGFrbyBkaXNrbyBwYXJ0aXppb25hdHplIHByb2dyYW1hLCBub24gIgorImhvbmVrIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkwCittc2dpZCAiYWxsb3dzIHlvdSB0byBjcmVhdGUsIGRlbGV0ZSBhbmQgbW9kaWZ5IHBhcnRpdGlvbnMgb24geW91ciBoYXJkIgorbXNnc3RyICIiCisienVyZSBkaXNrb2V0YW4gcGFydGl6aW9hayBzb3J0dSwgZXphYmF0dSBldGEgbW9kaWZpa2F0emVrbyBhdWtlcmEgZW1hdGVuIGRpenUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTEKK21zZ2lkICJkaXNrIGRyaXZlLiIKK21zZ3N0ciAiZGlza28gdW5pdGF0ZWV0YW4uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkzCittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorbXNnc3RyICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTUKK21zZ2lkICJDb21tYW5kICAgICAgTWVhbmluZyIKK21zZ3N0ciAiS29tYW5kb2FrICAgICBFc2FuYWhpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICItLS0tLS0tICAgICAgLS0tLS0tLSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgYiAgICAgICAgICBUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgYiAgICAgICAgICBVbmVrbyBwYXJ0aXppb2FyaSBhYmlhcmF6Z2FycmkgYWRpZXJhemxlYSBqYXJyaSBlZG8ga2VuZHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTgKK21zZ2lkICIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBkICAgICAgICAgIFVuZWtvIHBhcnRpemlvYSBlemFiYXR1IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIgIGcgICAgICAgICAgQWxkYXR1LCB6aWxpbmRybywgYnVydSBldGEgc2VrdG9yZWFrLXBpc3Rha28gcGFyYW1ldHJvYWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgICAgICAgICAgV0FSTklORzogVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBwZW9wbGUgd2hvIgorbXNnc3RyICIgICAgICAgICAgICAgQUJJU1VBOiBBdWtlcmEgaGF1IGFsZGFrZXRhayB6ZXIgZWthciBkZXpha2VlbiBkYWtpdGVuZWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgICAgICAgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLiIKK21zZ3N0ciAiICAgICAgICAgICAgIGVyYWJpbGkgYmVoYXJrbyBsdWtldGUgc29pbGlrLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMgorbXNnaWQgIiAgaCAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICBoICAgICAgICAgIFBhbnRhaWxhIGhhdSBlcmFrdXRzaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgbSAgICAgICAgICBNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBtICAgICAgICAgIFVuZWtvIHBhcnRpemlvYXJlbiBkaXNrbyBlcmFiaWxlcmEgbWF4aW1vcmEgaGFuZGl0dSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAgICAgICAgICBOb3RlOiBUaGlzIG1heSBtYWtlIHRoZSBwYXJ0aXRpb24gaW5jb21wYXRpYmxlIHdpdGgiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgT2hhcnJhOiBIb25layBET1MsIE9TLzIgZXRhIGJlc3RlIHBhcnRpemlvIG1vZXRhIGJhdHp1ZWtpbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAgICAgICAgICBET1MsIE9TLzIsIC4uLiIKK21zZ3N0ciAiICAgICAgICAgICAgIGJhdGVyYWdhcnJpdGFzdW5hIGtlbmR1IGRlemFrZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiAgbiAgICAgICAgICBTb3J0dSBwYXJ0aXppbyBiZXJyaWEgbGlicmUgZGFnb2VuIGVzcGF6aW90aWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIiCisiICBwICAgICAgICAgIEVyYWt1dHNpIHBhcnRpemlvIHRhdWxhIHBhbnRhaWxhbiBlZG8gaWRhdHppIGZpdHhhdGVnaXJlbiBiYXRlYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDgKK21zZ2lkICIgICAgICAgICAgICAgVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IGZvcm1hdHMgZm9yIHRoZSBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgICAgICAgICAgICAgciAtIFJhdyBkYXRhIChleGFjdGx5IHdoYXQgd291bGQgYmUgd3JpdHRlbiB0byBkaXNrKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzExCisjLCBmdXp6eQorbXNnaWQgIiAgICAgICAgICAgICAgICBzIC0gVGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICJJbnByaW1hdHUgdGF1bGEgc2VrdG9yZSBiaWRleiBvcmRlbmF0dWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTIKKyMsIGZ1enp5Cittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICJJbnByaW1hdHUgdGF1bGEgcmF3IGRhdHUgZm9ybWF0dWEgZXJhYmlsaXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTMKK21zZ2lkICIgIHEgICAgICAgICAgUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgcSAgICAgICAgICBJcnRlbiBhcGxpa2F6aW90aWsgcGFydGl6aW8gdGF1bGEgaWRhdHppIGdhYmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTQKK21zZ2lkICIgIHQgICAgICAgICAgQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIiAgdCAgICAgICAgICBBbGRhdHUgZml0eGF0ZWdpIHNpc3RlbWEgbW9ldGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIgIHUgICAgICAgICAgQWxkYXR1IGVyYWt1c3RlbiBkZW4gcGFydGl6aW9hcmVuIHRhbWFpbnUgdW5pdGF0ZWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTYKK21zZ2lkICIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiCittc2dzdHIgIiAgICAgICAgICAgICBNQiwgc2VrdG9yZSBldGEgemlsaW5kcm8gYXVrZXJhayBlcmFrdXRzaWtvIGRpdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiICBXICAgICAgICAgIFBhcnRpemlvIHRhdWxhIGRpc2tvYW4gaWRhdHppIChXIGxldHJhIGxhcnJpeikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIgICAgICAgICAgICAgSG9uZWsgZGlza29hcmVuIGRhdHUgZ3V6dGlhayBzdW50c2l0dSBkaXR6YXprZWVuZXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgICAgICAgICAgZWl0aGVyIGNvbmZpcm0gb3IgZGVueSB0aGUgd3JpdGUgYnkgZW50ZXJpbmcgYHllcycgb3IiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAga29uZmlybWF6aW8gYmF0IGVza2F0dWtvIGRhIGhhdWV0YWtvIGF1a2VyYSBiYXQgZXJhYmlsaWF6OiAiCisiYHllcycgZWRvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIwCittc2dpZCAiICAgICAgICAgICAgIGBubyciCittc2dzdHIgIiAgICAgICAgICAgICBgZXonIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIxCittc2dpZCAiVXAgQXJyb3cgICAgIE1vdmUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBwYXJ0aXRpb24iCittc2dzdHIgIkdvcmEgZ2V6aWEgICAgTXVnaXR1IGt1cnRzb3JlYSBhdXJyZWtvIHBhcnRpemlvcmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjIKK21zZ2lkICJEb3duIEFycm93ICAgTW92ZSBjdXJzb3IgdG8gdGhlIG5leHQgcGFydGl0aW9uIgorbXNnc3RyICJCZWhlcmEgZ2V6aWEgIE11Z2l0dSBrdXJ0c29yZWEgaHVycmVuZ28gcGFydGl6aW9yYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMworbXNnaWQgIkNUUkwtTCAgICAgICBSZWRyYXdzIHRoZSBzY3JlZW4iCittc2dzdHIgIkNUUkwtTCAgICAgICBQYW50YWlsYSBmcmVza2F0dSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICA/ICAgICAgICAgIFBhbnRhaWxhIGhhdSBpbnByaW1hdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICJPaGFycmE6IGtvbWFuZG8gZ3V6dGlhayBsZXRyYSBoYW5kaXogZWRvIHR4aWtpeiBzYXJ0dSBkYWl0ZXprZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNworbXNnaWQgImNhc2UgbGV0dGVycyAoZXhjZXB0IGZvciBXcml0ZXMpLiIKK21zZ3N0ciAibGV0cmEgeGVoZWFrIChpZGF6a2V0ZXRhcmFrbyBlemlrKS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAiWmlsaW5kcm9hayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OAorbXNnaWQgIkNoYW5nZSBjeWxpbmRlciBnZW9tZXRyeSIKK21zZ3N0ciAiQWxkYXR1IHppbGluZHJvIGdlb21ldHJpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OSBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMwCittc2dpZCAiSGVhZHMiCittc2dzdHIgIkJ1cnVhayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJBbGRhdHUgYnVydSBnZW9tZXRyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJDaGFuZ2Ugc2VjdG9yIGdlb21ldHJ5IgorbXNnc3RyICJBbGRhdHUgc2VrdG9yZSBnZW9tZXRyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICJFZ2luZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIkdlb21ldHJpYSBhbGRha2V0YSBlZ2luYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM3NAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzOiAiCittc2dzdHIgIlNhcnR1IHppbGluZHJvIGtvcHVydWE6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzg1IGZkaXNrL2NmZGlzay5jOjI5NTgKK21zZ2lkICJJbGxlZ2FsIGN5bGluZGVycyB2YWx1ZSIKK21zZ3N0ciAiQmFsaW9nYWJla28gemlsaW5kcm8gYmFsb3JlYWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTEKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGhlYWRzOiAiCittc2dzdHIgIlNhcnR1IGJ1cnUga29wdXJ1YToiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTggZmRpc2svY2ZkaXNrLmM6Mjk2OAorbXNnaWQgIklsbGVnYWwgaGVhZHMgdmFsdWUiCittc2dzdHIgIkJhbGlvZ2FiZW9rIGJ1cnUgYmFsb3JlYWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MDQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrOiAiCittc2dzdHIgIlNhcnR1IHBpc3Rha28gemVuYmF0IHNla3RvcmUga29wdXJ1YToiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MTEgZmRpc2svY2ZkaXNrLmM6Mjk3NQorbXNnaWQgIklsbGVnYWwgc2VjdG9ycyB2YWx1ZSIKK21zZ3N0ciAiQmFsaW9nYWJla28gc2VrdG9yZSBiYWxvcmVhayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUxNAorbXNnaWQgIkVudGVyIGZpbGVzeXN0ZW0gdHlwZTogIgorbXNnc3RyICJTYXJ0dSBmaXR4YXRlZ2kgc2lzdGVtYSBtb2V0YTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTMyCittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IgorbXNnc3RyICJFemluIGRhIEYuUy4gbW9ldGEgYWxkYXR1IGV6ZXJyZXJhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICJFemluIGRhIEYuUy4gbW9ldGEgYWxkYXR1IHphYmFsZHVyYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIkV6ZXphZ3VuYSglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiLCBOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIk5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAiUHJpL0xvZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAiRXplemFndW5hICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAiRGlza28gdW5pdGF0ZWE6ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQgTUIiCittc2dzdHIgIlRhbWFpbnVhOiAlbGxkIGJ5dGUsICVsbGQgTUIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZC4lbGxkIEdCIgorbXNnc3RyICJUYW1haW51YTogJWxsZCBieXRlLCAlbGxkLiVsbGQgR0IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGVhZHM6ICVkICAgU2VjdG9ycyBwZXIgVHJhY2s6ICVkICAgQ3lsaW5kZXJzOiAlbGxkIgorbXNnc3RyICJCdXJ1YWs6ICVkICAgU2VrdG9yZWFrIHBpc3Rha286ICVkICAgWmlsaW5kcm9hazogJWxsZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MSBsb2dpbi11dGlscy9jaGZuLmM6Mzc3Cittc2dpZCAiTmFtZSIKK21zZ3N0ciAiSXplbmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiQmFuZGVyYWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIlBhcnRpemlvIG1vZXRhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg0Cittc2dpZCAiRlMgVHlwZSIKK21zZ3N0ciAiUy5FLiBtb2V0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NQorbXNnaWQgIltMYWJlbF0iCittc2dzdHIgIltFdGlrZXRhXSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NworbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICIgICAgU2VrdG9yZWFrIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg5Cittc2dpZCAiICBDeWxpbmRlcnMiCittc2dzdHIgIiAgWmlsaW5kcm9hayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MQorbXNnaWQgIiAgU2l6ZSAoTUIpIgorbXNnc3RyICIgIFRhbWFpbnVhIChNQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiICBUYW1haW51YSAoR0IpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIkFiaW9nYXJyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIlVuZWtvIHBhcnRpemlvYXJlbiBhYmlhcmF6Z2FycmkgYWRpZXJhemxlYSBhbGRhdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUiCittc2dzdHIgIkV6YWJhdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJFemFiYXR1IHVuZWtvIHBhcnRpemlvYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkdlb21ldHJ5IgorbXNnc3RyICJHZW9tZXRyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJDaGFuZ2UgZGlzayBnZW9tZXRyeSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiQWxkYXR1IGRpc2tvYXJlbiBnZW9tZXRyaWEgKGVyYWJpbHR6YWlsZSBhdXJyZXJhdHVhayBzb2lsaWspIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiTGFndW50emEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJQcmludCBoZWxwIHNjcmVlbiIKK21zZ3N0ciAiSW5wcmltYXR1IGxhZ3VudHphIHBhbnRhaWxhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUiCittc2dzdHIgIk1heGltaXphdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiIgorIlVuZWtvIHBhcnRpemlvYXJlbiBkaXNrbyBlcmFiaWxlcmEgbWF4aW1vcmEgaGFuZGl0dSAoZXJhYmlsdHphaWxlICIKKyJhdXJyZXJhdHVhayBzb2lsaWspIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICJCZXJyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIlNvcnR1IHBhcnRpemlvIGJlcnJpYSBsaWJyZSBkYWdvZW4gZXNwYXppb3RpayIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IgorbXNnc3RyICJJbnByaW1hdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIkVyYWt1dHNpIHBhcnRpemlvIHRhdWxhIHBhbnRhaWxhbiBlZG8gaWRhdHppIGZpdHhhdGVnaXJlbiBiYXRlYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IgorbXNnc3RyICJJcnRlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJJcnRlbiBwcm9ncmFtYXRpayBwYXJ0aXppbyB0YXVsYSBpZGF0emkgZ2FiZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIlR5cGUiCittc2dzdHIgIk1vZXRhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAiQWxkYXR1IGZpdHhhdGVnaS1zaXN0ZW1hIG1vZXRhIChET1MsIExpbnV4LCBPUy8yIGV0YSBhYmFyKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIlVuaXRzIgorbXNnc3RyICJVbml0YXRlYWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkgKE1CLCBzZWN0LCBjeWwpIgorbXNnc3RyICJBbGRhdHUgcGFydGl6aW9hcmVuIHRhbWFpbnUgdW5pdGF0ZWFrIChNQiwgc2VrdG9yZWFrLCB6aWxpbmRyb2FrKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJJZGF0emkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIgorbXNnc3RyICJJZGF0emkgcGFydGl6aW8gdGF1bGEgZGlza29yYSAoZGF0dSBndXp0aWFrIHN1bnRzaXR1IGRpdHphemtlKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgwNQorbXNnaWQgIkNhbm5vdCBtYWtlIHRoaXMgcGFydGl0aW9uIGJvb3RhYmxlIgorbXNnc3RyICJFemluIGRhIHBhcnRpemlvIGhhdSBhYmlhZ2FycmlhIGVnaW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiRXppbiBkYSBwYXJ0aXp1IGh1dHMgYmF0IGV6YWJhdHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MzUgZmRpc2svY2ZkaXNrLmM6MjgzNworbXNnaWQgIkNhbm5vdCBtYXhpbWl6ZSB0aGlzIHBhcnRpdGlvbiIKK21zZ3N0ciAiRXppbiBkYSBwYXJ0aXppbyBoYXUgbWF4aW1pemF0dSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NQorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIHVudXNhYmxlIgorbXNnc3RyICJQYXJ0aXppbyBoYXUgZXppbiBkYSBlcmFiaWxpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ3Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgYWxyZWFkeSBpbiB1c2UiCittc2dzdHIgIlBhcnRpemlvIGhhdSBkYWdvZW5la28gZXJhYmlsaXRhIGRhZ28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NjQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHRoZSB0eXBlIG9mIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiRXppbiBkYSBodXRzaWsgZGFnb2VuIHBhcnRpemlvIGJhdGVuIG1vZXRhIGFsZGF0dSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg5MSBmZGlzay9jZmRpc2suYzoyODk3Cittc2dpZCAiTm8gbW9yZSBwYXJ0aXRpb25zIgorbXNnc3RyICJFeiBkYWdvIHBhcnRpemlvIGdlaGlhZ28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MDQKK21zZ2lkICJJbGxlZ2FsIGNvbW1hbmQiCittc2dzdHIgIktvbWFuZG8gYmFsaW9nYWJlYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkxNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKK21zZ3N0ciAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIlByaW50IHZlcnNpb246XG4iCisiICAgICAgICAlcyAtdlxuIgorIlByaW50IHBhcnRpdGlvbiB0YWJsZTpcbiIKKyIgICAgICAgICVzIC1QIHtyfHN8dH0gW29wdGlvbnNdIGRldmljZVxuIgorIkludGVyYWN0aXZlIHVzZTpcbiIKKyIgICAgICAgICVzIFtvcHRpb25zXSBkZXZpY2VcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIi1hOiBVc2UgYXJyb3cgaW5zdGVhZCBvZiBoaWdobGlnaHRpbmc7XG4iCisiLXo6IFN0YXJ0IHdpdGggYSB6ZXJvIHBhcnRpdGlvbiB0YWJsZSwgaW5zdGVhZCBvZiByZWFkaW5nIHRoZSBwdCBmcm9tIGRpc2s7XG4iCisiLWMgQyAtaCBIIC1zIFM6IE92ZXJyaWRlIHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzLFxuIgorIiAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIGhlYWRzIGFuZCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2suXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJFcmFiaWxlcmE6XG4iCisiRXJha3V0c2kgYmVydHNpb2E6XG4iCisiICAgICAgICAlcyAtdlxuIgorIkVyYWt1dHNpIHBhcnRpemlvIHRhdWxhOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbYXVrZXJha10gZ2FpbHVhXG4iCisiRXJhYmlsZXJhIGludGVyYWt0aWJvYTpcbiIKKyIgICAgICAgICVzIFthdWtlcmFrXSBnYWlsdWFcbiIKKyJcbiIKKyJBdWtlcmFrOlxuIgorIi1hOiBHZXppYSBlcmFiaWxpIG5hYmFybWVuZHUgYmVoYXJyZWFuO1xuIgorIi16OiBQYXJ0aXppbyB0YXVsYSBodXRzIGJhdGVraW4gaGFzaSwgcGFydGl6aW8gdGF1bGEgaXJha3VycmkgYmVoYXJlcmFuO1xuIgorIi1jIEMgLWggSCAtcyBTOiBFeiBlZ2luIGphcmFtb25payBrZXJuZWwtYWsgZXNhdGVuIGR1ZW4gemlsaW5kcm8ga29wdXJ1LFxuIgorIiAgICAgICAgICAgICAgICBidXJ1IGtvcHVydSBldGEgc2VrdG9yZS9waXN0YSBrb3B1cnVhcmkgYnVydXouXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrYWl4bGFiZWwuYzoyNworbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgQUlYIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgTGludXggY2Fubm90IGhhbmRsZSB0aGVzZVxuIgorIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisiXHRhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCisiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorIlx0ICAgdG8gcmVtb3ZlIHRoZSBkaXNrIGxvZ2ljYWxseSBmcm9tIHlvdXIgQUlYXG4iCisiXHQgICBtYWNoaW5lLiAgKE90aGVyd2lzZSB5b3UgYmVjb21lIGFuIEFJWHBlcnQpLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkJTRCBldGlrZXRhIGdhaWx1YXJlbnR6YXQ6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjggZmRpc2svZmRpc2suYzozOTQgZmRpc2svZmRpc2suYzo0MTMKKyM6IGZkaXNrL2ZkaXNrLmM6NDMxIGZkaXNrL2ZkaXNrLmM6NDM4IGZkaXNrL2ZkaXNrLmM6NDYxIGZkaXNrL2ZkaXNrLmM6NDc5CisjOiBmZGlzay9mZGlzay5jOjQ5NSBmZGlzay9mZGlzay5jOjUxMQorbXNnaWQgIkNvbW1hbmQgYWN0aW9uIgorbXNnc3RyICJLb21hbmRvYXJlbiBla2ludHphIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICBCU0QgcGFydGl6aW8gYmF0IGV6YWJhdHUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzAKK21zZ2lkICIgICBlICAgZWRpdCBkcml2ZSBkYXRhIgorbXNnc3RyICIgICBlICAgZGlza29hcmVuIGRhdGEgZWRpdGF0dSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgIGluc3RhbGF0dSBoYXNpZXJha28gc2VrdWVudHppYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMgorbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIGZpbGVzeXN0ZW0gdHlwZXMiCittc2dzdHIgIiAgIGwgICB6ZXJyZW5kYXR1IGV6YWd1dHplbiBkaXJlbiBmaXR4YXRlZ2kgc2lzdGVtYSBtb2V0YWsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICBtZW51IGhhdSBlcmFrdXRzaSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNAorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIEJTRCBwYXJ0aXppbyBiZXJyaSBiYXQgZ2VoaXR1IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM1Cittc2dpZCAiICAgcCAgIHByaW50IEJTRCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBCU0QgcGFydGl6aW8gdGF1bGEgZXJha3V0c2kiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzYgZmRpc2svZmRpc2suYzo0MDQgZmRpc2svZmRpc2suYzo0MjMKKyM6IGZkaXNrL2ZkaXNrLmM6NDM0IGZkaXNrL2ZkaXNrLmM6NDQ4IGZkaXNrL2ZkaXNrLmM6NDcxIGZkaXNrL2ZkaXNrLmM6NDg4CisjOiBmZGlzay9mZGlzay5jOjUwNCBmZGlzay9mZGlzay5jOjUyMgorbXNnaWQgIiAgIHEgICBxdWl0IHdpdGhvdXQgc2F2aW5nIGNoYW5nZXMiCittc2dzdHIgIiAgIHEgICBpcnRlbiBhbGRha2V0YWsgZ29yZGUgZ2FiZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiICAgciAgIG1lbnUgbmFndXNpcmEgaXR6dWxpIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM4Cittc2dpZCAiICAgcyAgIHNob3cgY29tcGxldGUgZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgZXJha3V0c2kgZGlza29hcmVuIGV0aWtldGEgZ3V6dGlhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM5Cittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIGZpbGVzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICBhbGRhdHUgcGFyaXR6aW9hcmVuIGZpdHhhdGVnaSBzaXN0ZW1hIElEYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiICAgdSAgIGFsZGF0dSB1bml0YXRlYWsgKHppbGluZHJvYWsvc2VrdG9yZWFrKSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgIGlkYXR6aSBkaXNrb2FyZW4gZXRpa2V0YSBkaXNrb2FuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQzCittc2dpZCAiICAgeCAgIGxpbmsgQlNEIHBhcnRpdGlvbiB0byBub24tQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgeCAgIGVzdGVrYXR1IEJTRCBwYXJ0aXppb2EgQlNEIGV6IGRlbiBwYXJ0aXppbyBiYXRpIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlcyBoYXMgaW52YWxpZCBzdGFydGluZyBzZWN0b3IgMC5cbiIKK21zZ3N0ciAiJXMgcGFydGl6aW9hayBoYXNpZXJha28gMCBzZWt0b3JlIGJhbGlvZ2FiZWEgZGF1a2EuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICIlcy0ocillbiBkaXNrbyBldGlrZXRhIGlyYWt1cnR6ZW4gJWQgc2VrdG9yZWFuLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZXJlIGlzIG5vICpCU0QgcGFydGl0aW9uIG9uICVzLlxuIgorbXNnc3RyICJFeiBkYWdvICpCU0QgcGFydGl6aW9yaWsgJXMtKGUpbi5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjIwMworbXNnaWQgIkJTRCBkaXNrbGFiZWwgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQlNEIGRpc2tvIGV0aWtldGEga29tYW5kb2EgKG0gbGFndW50emEgZXJha3VzdGVrbyk6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjgzIGZkaXNrL2ZkaXNrLmM6MjMyOCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM4CisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ICVzIgorbXNnc3RyICJMZWhlbmVuZ28gJXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICVzIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsiCittc2dzdHIgIkF6a2VuICVzLShlKWEgZWRvICt0YW1haW51YSBlZG8gK3RhbWFpbnVhTSBlZG8gK3RhbWFpbnVhSyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlc1xuIgorbXNnc3RyICJtb2V0YTogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICJtb2V0YTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgImRpc2tvYTogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxhYmVsOiAlLipzXG4iCittc2dzdHIgImV0aWtldGE6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmbGFnczoiCittc2dzdHIgImFkaWVyYXpnYXJyaWFrOiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgcmVtb3ZhYmxlIgorbXNnc3RyICIga2VuZ2FycmlhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiBlY2MiCittc2dzdHIgIiBlY2MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGJhZHNlY3QiCittc2dzdHIgIiBiYWRzZWN0IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzL3NlY3RvcjogJWxkXG4iCittc2dzdHIgImJ5dGUtYWsgc2VrdG9yZWtvOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAic2VrdG9yZWFrIHBpc3Rha286ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInBpc3RhayB6aWxpbmRyb2tvOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAic2VrdG9yZWFrL3ppbGluZHJvYTogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiemlsaW5kcm9hazogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAicnBtOiAlZFxuIgorbXNnc3RyICJycG06ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW50ZXJsZWF2ZTogJWRcbiIKK21zZ3N0ciAidGFydGVrYXR6ZWE6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tza2V3OiAlZFxuIgorbXNnc3RyICJwaXN0YSBza2V3LWVhOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAiemlsaW5kcm8gc2tldy1lYTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsaXNlZ3VuZHVcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgInBpc3RhdGlrIHBpc3RhcmEgYmlsYWtldGE6ICVsZFx0IyBtaWxpc2VndW5kdVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImRyaXZlZGF0YTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0aXppbzpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGluZyBkaXNrbGFiZWwgdG8gJXMuXG4iCittc2dzdHIgIkRpc2tvIGV0aWtldGEgaWRhenRlbiAlcy0oZSlyaS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQxOSBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIKK21zZ3N0ciAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDI2Cittc2dpZCAiRG8geW91IHdhbnQgdG8gY3JlYXRlIGEgZGlza2xhYmVsPyAoeS9uKSAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NgorbXNnaWQgImJ5dGVzL3NlY3RvciIKK21zZ3N0ciAiYnl0ZSBrb3B1cnVhIHNla3RvcmVrbyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NworbXNnaWQgInNlY3RvcnMvdHJhY2siCittc2dzdHIgInNla3RvcmVhayBwaXN0YWtvIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY4Cittc2dpZCAidHJhY2tzL2N5bGluZGVyIgorbXNnc3RyICJwaXN0YWsgemlsaW5kcm9rbyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAiemlsaW5kcm9hayIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ3NgorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXIiCittc2dzdHIgInNla3RvcmVhayB6aWxpbmRyb2tvIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgPD0gc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciAoZGVmYXVsdCkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAicnBtIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCisjLCBmdXp6eQorbXNnaWQgImludGVybGVhdmUiCittc2dzdHIgInRhcnRla2F0emVhOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0CisjLCBmdXp6eQorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAicGlzdGEgc2tldy1lYTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NQorIywgZnV6enkKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgInppbGluZHJvIHNrZXctZWE6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODYKKyMsIGZ1enp5Cittc2dpZCAiaGVhZHN3aXRjaCIKK21zZ3N0ciAiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsaXNlZ3VuZHVcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NworIywgZnV6enkKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrIgorbXNnc3RyICJwaXN0YXRpayBwaXN0YXJhIGJpbGFrZXRhOiAlbGRcdCMgbWlsaXNlZ3VuZHVcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjUyOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKK21zZ3N0ciAiT1MvMiBCb290IE1hbmFnZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIG92ZXJsYXBzIHdpdGggZGlzayBsYWJlbCFcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iCittc2dzdHIgIiAgICAgICAgZGlza28gZ3V6dGlhbi4gIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gKGEtJWMpOiAiCittc2dzdHIgImJlcmlyYWt1cnJpIHBhcnRpemlvIHRhdWxhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIkdlaGllbmV6a28gcGFydGl6aW8ga29wdXJ1YSBzb3J0dSBkYVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiIKK21zZ3N0ciAiUGFydGl6aW8gaGF1IGRhZ29lbmVrbyBlcmFiaWxpdGEgZGFnbyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIkFiaXN1YTogcGFydGl6aW8gZ2VoaWVnaSAoJWQsIGdlaGllbmV6a29hICVkIGRhKS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2thayBzaW5rcm9uaXphdHplbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTYKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiIGZkaXNrIFtvcHRpb25zXSA8ZGlzaz4gICAgY2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorIiBmZGlzayBbb3B0aW9uc10gLWwgPGRpc2s+IGxpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisiIGZkaXNrIC1zIDxwYXJ0aXRpb24+ICAgICAgZ2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtYiA8c2l6ZT4gICAgICAgICAgICAgICAgIHNlY3RvciBzaXplICg1MTIsIDEwMjQsIDIwNDggb3IgNDA5NilcbiIKKyIgLWMgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggb2ZmIERPUy1jb21wYXRpYmxlIG1vZGVcbiIKKyIgLWggICAgICAgICAgICAgICAgICAgICAgICBwcmludCBoZWxwXG4iCisiIC11IDxzaXplPiAgICAgICAgICAgICAgICAgZ2l2ZSBzaXplcyBpbiBzZWN0b3JzIGluc3RlYWQgb2YgY3lsaW5kZXJzXG4iCisiIC12ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgdmVyc2lvblxuIgorIiAtQyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBjeWxpbmRlcnNcbiIKKyIgLUggPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgaGVhZHNcbiIKKyIgLVMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2tcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIKK21zZ3N0ciAiZXppbiBkaXJhIGJvb3RiaXQgc2VrdG9yZWFrIGV6YWJhdHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gcmVhZCAlc1xuIgorbXNnc3RyICJlemluIGRpcmEgYm9vdGJpdCBzZWt0b3JlYWsgZXphYmF0dSIKKworIzogZmRpc2svZmRpc2suYzoyODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZWVrIG9uICVzXG4iCittc2dzdHIgIkV6aW4gZGEgYmlsYXR1IGRpc2tvIHVuaXRhdGVhbiIKKworIzogZmRpc2svZmRpc2suYzoyODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSAlc1xuIgorbXNnc3RyICIgICB3ICAgaWRhdHppIGRpc2tvYXJlbiBldGlrZXRhIGRpc2tvYW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyOTYKK21zZ2lkICJGYXRhbCBlcnJvclxuIgorbXNnc3RyICJFcnJvcmUgbGFycmlhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1CisjLCBmdXp6eQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSByZWFkIG9ubHkgZmxhZyIKK21zZ3N0ciAiICBiICAgICAgICAgIFVuZWtvIHBhcnRpemlvYXJpIGFiaWFyYXpnYXJyaSBhZGllcmF6bGVhIGphcnJpIGVkbyBrZW5kdSIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKKyMsIGZ1enp5Cittc2dpZCAiICAgYiAgIGVkaXQgYnNkIGRpc2tsYWJlbCIKK21zZ3N0ciAiQlNEIGRpc2tvIGV0aWtldGEga29tYW5kb2EgKG0gbGFndW50emEgZXJha3VzdGVrbyk6IgorCisjOiBmZGlzay9mZGlzay5jOjM5NworIywgZnV6enkKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBtb3VudGFibGUgZmxhZyIKK21zZ3N0ciAiICBiICAgICAgICAgIFVuZWtvIHBhcnRpemlvYXJpIGFiaWFyYXpnYXJyaSBhZGllcmF6bGVhIGphcnJpIGVkbyBrZW5kdSIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKKyMsIGZ1enp5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICBkICAgICAgICAgIFVuZWtvIHBhcnRpemlvYSBlemFiYXR1IgorCisjOiBmZGlzay9mZGlzay5jOjM5OSBmZGlzay9mZGlzay5jOjQxOCBmZGlzay9mZGlzay5jOjQ0MworIywgZnV6enkKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgIGwgICB6ZXJyZW5kYXR1IGV6YWd1dHplbiBkaXJlbiBmaXR4YXRlZ2kgc2lzdGVtYSBtb2V0YWsiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1CisjLCBmdXp6eQorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgQlNEIHBhcnRpemlvIGJlcnJpIGJhdCBnZWhpdHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAyIGZkaXNrL2ZkaXNrLmM6NDIxIGZkaXNrL2ZkaXNrLmM6NDMzIGZkaXNrL2ZkaXNrLmM6NDQ2Cittc2dpZCAiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorIywgZnV6enkKK21zZ2lkICIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiU29pbGlrIHBhcnRpemlvIHRhdWxhIGlucHJpbWF0dSIKKworIzogZmRpc2svZmRpc2suYzo0MDUgZmRpc2svZmRpc2suYzo0MjQgZmRpc2svZmRpc2suYzo0MzUgZmRpc2svZmRpc2suYzo0NDkKK21zZ2lkICIgICBzICAgY3JlYXRlIGEgbmV3IGVtcHR5IFN1biBkaXNrbGFiZWwiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKKyMsIGZ1enp5Cittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIHN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgIGFsZGF0dSBwYXJpdHppb2FyZW4gZml0eGF0ZWdpIHNpc3RlbWEgSURhIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorIywgZnV6enkKK21zZ2lkICIgICB1ICAgY2hhbmdlIGRpc3BsYXkvZW50cnkgdW5pdHMiCittc2dzdHIgIiAgdSAgICAgICAgICBBbGRhdHUgZXJha3VzdGVuIGRlbiBwYXJ0aXppb2FyZW4gdGFtYWludSB1bml0YXRlYSIKKworIzogZmRpc2svZmRpc2suYzo0MDggZmRpc2svZmRpc2suYzo0MjcgZmRpc2svZmRpc2suYzo0NTIgZmRpc2svZmRpc2suYzo0NzQKKyM6IGZkaXNrL2ZkaXNrLmM6NDkxIGZkaXNrL2ZkaXNrLmM6NTA3IGZkaXNrL2ZkaXNrLmM6NTI1CisjLCBmdXp6eQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiYmVyaXJha3VycmkgcGFydGl6aW8gdGF1bGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA5IGZkaXNrL2ZkaXNrLmM6NDI4IGZkaXNrL2ZkaXNrLmM6NDUzIGZkaXNrL2ZkaXNrLmM6NDc1CisjOiBmZGlzay9mZGlzay5jOjQ5MiBmZGlzay9mZGlzay5jOjUwOCBmZGlzay9mZGlzay5jOjUyNgorbXNnaWQgIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDEwIGZkaXNrL2ZkaXNrLmM6NDU0CisjLCBmdXp6eQorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICJBbGRhdHUgZGlza29hcmVuIGdlb21ldHJpYSAoZXJhYmlsdHphaWxlIGF1cnJlcmF0dWFrIHNvaWxpaykiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0CisjLCBmdXp6eQorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgIGIgICAgICAgICAgVW5la28gcGFydGl6aW9hcmkgYWJpYXJhemdhcnJpIGFkaWVyYXpsZWEgamFycmkgZWRvIGtlbmR1IgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorIywgZnV6enkKK21zZ2lkICIgICBiICAgZWRpdCBib290ZmlsZSBlbnRyeSIKK21zZ3N0ciAiICAgZSAgIGRpc2tvYXJlbiBkYXRhIGVkaXRhdHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE2CisjLCBmdXp6eQorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIiCisiXG4iCisiRXogZGEgc3dhcCBwYXJ0aXppb3JpayBleGlzdGl0emVuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjQzOQorIywgZnV6enkKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgYm9vdGFibGUgZmxhZyIKK21zZ3N0ciAiICBiICAgICAgICAgIFVuZWtvIHBhcnRpemlvYXJpIGFiaWFyYXpnYXJyaSBhZGllcmF6bGVhIGphcnJpIGVkbyBrZW5kdSIKKworIzogZmRpc2svZmRpc2suYzo0NDEKKyMsIGZ1enp5Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICBiICAgICAgICAgIFVuZWtvIHBhcnRpemlvYXJpIGFiaWFyYXpnYXJyaSBhZGllcmF6bGVhIGphcnJpIGVkbyBrZW5kdSIKKworIzogZmRpc2svZmRpc2suYzo0NjIKKyMsIGZ1enp5Cittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiICAgdSAgIGFsZGF0dSB1bml0YXRlYWsgKHppbGluZHJvYWsvc2VrdG9yZWFrKSIKKworIzogZmRpc2svZmRpc2suYzo0NjMgZmRpc2svZmRpc2suYzo0ODEgZmRpc2svZmRpc2suYzo0OTcgZmRpc2svZmRpc2suYzo1MTMKKyMsIGZ1enp5Cittc2dpZCAiICAgYyAgIGNoYW5nZSBudW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICJTYXJ0dSB6aWxpbmRybyBrb3B1cnVhOiIKKworIzogZmRpc2svZmRpc2suYzo0NjQgZmRpc2svZmRpc2suYzo0ODIgZmRpc2svZmRpc2suYzo0OTggZmRpc2svZmRpc2suYzo1MTQKKyMsIGZ1enp5Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJJbnByaW1hdHUgdGF1bGEgcmF3IGRhdHUgZm9ybWF0dWEgZXJhYmlsaXoiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY1Cittc2dpZCAiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0NjYgZmRpc2svZmRpc2suYzo0ODUgZmRpc2svZmRpc2suYzo1MDEgZmRpc2svZmRpc2suYzo1MTgKKyMsIGZ1enp5Cittc2dpZCAiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIlNhcnR1IGJ1cnUga29wdXJ1YToiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY3CisjLCBmdXp6eQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgaW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiAgdCAgICAgICAgICBBbGRhdHUgZml0eGF0ZWdpIHNpc3RlbWEgbW9ldGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY4Cittc2dpZCAiICAgbyAgIGNoYW5nZSByb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorIywgZnV6enkKK21zZ2lkICIgICBzICAgY2hhbmdlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrIgorbXNnc3RyICJTYXJ0dSBwaXN0YWtvIHplbmJhdCBzZWt0b3JlIGtvcHVydWE6IgorCisjOiBmZGlzay9mZGlzay5jOjQ3NgorIywgZnV6enkKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHUgICBhbGRhdHUgdW5pdGF0ZWFrICh6aWxpbmRyb2FrL3Nla3RvcmVhaykiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKKyMsIGZ1enp5Cittc2dpZCAiICAgZSAgIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiUGFydGl6aW8gZ2VoaWVnaSIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE2CisjLCBmdXp6eQorbXNnaWQgIiAgIGYgICBmaXggcGFydGl0aW9uIG9yZGVyIgorbXNnc3RyICJiZXJpcmFrdXJyaSBwYXJ0aXppbyB0YXVsYSIKKworIzogZmRpc2svZmRpc2suYzo1MTkKKyMsIGZ1enp5Cittc2dpZCAiICAgaSAgIGNoYW5nZSB0aGUgZGlzayBpZGVudGlmaWVyIgorbXNnc3RyICJBbGRhdHUgZGlza29hcmVuIGdlb21ldHJpYSAoZXJhYmlsdHphaWxlIGF1cnJlcmF0dWFrIHNvaWxpaykiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IHNldCIKK21zZ3N0ciAiRXphcnJpIGVnaW4gYmVoYXIgZHV6dSIKKworIzogZmRpc2svZmRpc2suYzo3MzYKK21zZ2lkICJoZWFkcyIKK21zZ3N0ciAiYnVydWFrIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAic2VrdG9yZWFrIgorCisjOiBmZGlzay9mZGlzay5jOjc0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMlcy5cbiIKKyJZb3UgY2FuIGRvIHRoaXMgZnJvbSB0aGUgZXh0cmEgZnVuY3Rpb25zIG1lbnUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3NDUKK21zZ2lkICIgYW5kICIKK21zZ3N0ciAiIGV0YSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvXG4iCisiICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvXG4iCisiICAgICAgICAgc2VjdG9ycyAoY29tbWFuZCAndScpLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBjeWxpbmRlcnMgYXMgZGlzcGxheSB1bml0cyBhcmUgZGVwcmVjYXRlZC4gVXNlIGNvbW1hbmQgJ3UnIHRvXG4iCisiICAgICAgICAgY2hhbmdlIHVuaXRzIHRvIHNlY3RvcnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG9mZnNldCBpbiBwcmltYXJ5IGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBleHRyYSBsaW5rIHBvaW50ZXIgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaWdub3JpbmcgZXh0cmEgZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjg5MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib21pdHRpbmcgZW1wdHkgcGFydGl0aW9uICglZClcbiIKK21zZ3N0ciAiRXppbiBkYSBwYXJ0aXp1IGh1dHMgYmF0IGV6YWJhdHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIkRpc2tvIGlkZW50aWZpa2F0emFpbGVhOiAweCUwOHhcbiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IERPUyBkaXNrbGFiZWwgd2l0aCBkaXNrIGlkZW50aWZpZXIgMHglMDh4LlxuIgorIkNoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksIHVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS5cbiIKKyJBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3RlOiBzZWN0b3Igc2l6ZSBpcyAlZCAobm90ICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkaXNrIGhhcyBib3RoIERPUyBhbmQgQlNEIG1hZ2ljLlxuIgorIkdpdmUgdGhlICdiJyBjb21tYW5kIHRvIGdvIHRvIEJTRCBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGICIKKyJkaXNrbGFiZWxcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW50ZXJuYWwgZXJyb3JcbiIKK21zZ3N0ciAiQmFybmUgZXJyb3JlYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSWdub3JpbmcgZXh0cmEgZXh0ZW5kZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxMjk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHglMDR4IG9mIHBhcnRpdGlvbiB0YWJsZSAlZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3IgorIihyaXRlKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIktvZGUgaGV4YWRlemltYWxhIChzYWthdHUgTCBrb2RlYWsgemVycmVuZGF0emVrbyk6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVuc3VwcG9ydGVkIHN1ZmZpeDogJyVzJy5cbiIKK21zZ3N0ciAiZml0eGF0ZWdpIHNpc3RlbWFyZW4gZXVza2FycmlyaWsgZ2FiZWtvIGV6YXVnYXJyaWFrIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgZGVmYXVsdCB2YWx1ZSAldVxuIgorbXNnc3RyICJCYWxpb2dhYmVrbyB6aWxpbmRybyBiYWxvcmVhayIKKworIzogZmRpc2svZmRpc2suYzoxNDkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIm1lbW9yaWF0aWsga2FucG8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgIlBhcnRpemlvIHplbmJha2lhIgorCisjOiBmZGlzay9mZGlzay5jOjE1MjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXMgZW1wdHkgdHlwZVxuIgorbXNnc3RyICJFemluIGRhIGh1dHNpayBkYWdvZW4gcGFydGl6aW8gYmF0ZW4gbW9ldGEgYWxkYXR1IgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZWxlY3RlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiYmVyaXJha3VycmkgcGFydGl6aW8gdGF1bGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9uIGlzIGRlZmluZWQgeWV0IVxuIgorbXNnc3RyICJFeiBkYWdvICpCU0QgcGFydGl6aW9yaWsgJXMtKGUpbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBwcmltYXJ5IHBhcnRpdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeSFcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJjeWxpbmRlciIKK21zZ3N0ciAiemlsaW5kcm9hIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJzZWN0b3IiCittc2dzdHIgInNla3RvcmVhIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogUGFydGl0aW9uICVkIGlzIGFuIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJQYXJ0aXppbyBoYXUgZXppbiBkYSBlcmFiaWxpIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIKK21zZ3N0ciAiRE9TIGJhdGVyYWdhcnJpdGFzdW4gbWFya2EgZXphcnJpdGEgZGFnb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBub3Qgc2V0XG4iCittc2dzdHIgIkRPUyBiYXRlcmFnYXJyaXRhc3VuIG1hcmthIGV6IGRhZ28gZXphcnJpdGFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICIiCisiXG4iCisiRXogZGEgc3dhcCBwYXJ0aXppb3JpayBleGlzdGl0emVuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlR5cGUgMCBtZWFucyBmcmVlIHNwYWNlIHRvIG1hbnkgc3lzdGVtc1xuIgorIihidXQgbm90IHRvIExpbnV4KS4gSGF2aW5nIHBhcnRpdGlvbnMgb2ZcbiIKKyJ0eXBlIDAgaXMgcHJvYmFibHkgdW53aXNlLiBZb3UgY2FuIGRlbGV0ZVxuIgorImEgcGFydGl0aW9uIHVzaW5nIHRoZSBgZCcgY29tbWFuZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8gYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKyJEZWxldGUgaXQgZmlyc3QuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiAzIGFzIFdob2xlIGRpc2sgKDUpLFxuIgorImFzIFN1bk9TL1NvbGFyaXMgZXhwZWN0cyBpdCBhbmQgZXZlbiBMaW51eCBsaWtlcyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDkgYXMgdm9sdW1lIGhlYWRlciAoMCksXG4iCisiYW5kIHBhcnRpdGlvbiAxMSBhcyBlbnRpcmUgdm9sdW1lICg2KSwgYXMgSVJJWCBleHBlY3RzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc2OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2VkIHN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCB0byAleCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNzcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCBpcyB1bmNoYW5nZWQ6ICV4ICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjkgZmRpc2svZmRpc2suYzoxODM3IGZkaXNrL2ZkaXNrLmM6MTg0NiBmZGlzay9mZGlzay5jOjE4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICBwaHlzPSglZCwgJWQsICVkKSAiCittc2dzdHIgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzAgZmRpc2svZmRpc2suYzoxODM4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImxvZ2lrb2E9KCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzNQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGVuZGluZ3M6XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODU3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIiVzIHBhcnRpemlvYWsgaGFzaWVyYWtvIDAgc2VrdG9yZSBiYWxpb2dhYmVhIGRhdWthLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBoZWFkcywgJWxsdSBzZWN0b3JzL3RyYWNrLCAlZCBjeWxpbmRlcnMiCittc2dzdHIgIiVkIGJ1cnUsICVsbHUgc2VrdG9yZSBwaXN0YWtvLCAlZCB6aWxpbmRybyIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgdG90YWwgJWxsdSBzZWN0b3JzIgorbXNnc3RyICIsIGd1enRpcmEgJWxsdSBzZWt0b3JlIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiVW5pdGF0ZWFrOiAlcyAlZC0oZSl0aWsgKiAlZCA9ICVkIGJ5dGVcbiIKKworIzogZmRpc2svZmRpc2suYzoxODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciBzaXplIChsb2dpY2FsL3BoeXNpY2FsKTogJXUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSS9PIHNpemUgKG1pbmltdW0vb3B0aW1hbCk6ICVsdSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5OQorIywgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIwMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG9uZS5cbiIKK21zZ3N0ciAiRWdpbmRhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZG9lc24ndCBsb29rIGxpa2UgYSBwYXJ0aXRpb24gdGFibGVcbiIKKyJQcm9iYWJseSB5b3Ugc2VsZWN0ZWQgdGhlIHdyb25nIGRldmljZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEJvb3QgICAgICBTdGFydCAgICAgICAgIEVuZCAgICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIxMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk4Cittc2dpZCAiRGV2aWNlIgorbXNnc3RyICJHYWlsdWEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjExNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiUGFydGl0aW9uIHRhYmxlIGVudHJpZXMgYXJlIG5vdCBpbiBkaXNrIG9yZGVyXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVzIGRpc2tvYTogJWQgYnVydSwgJWxsdSBzZWt0b3JlLCAlZCB6aWxpbmRyb1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIKK21zZ3N0ciAiUGFydGl6aW9hIDAgc2VrdG9yZWEgYmFpbmEgbGVoZW5hZ28gaGFzdGVuIGRhIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogc2VjdG9yICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9ucyAlZDogY3lsaW5kZXIgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBwcmV2aW91cyBzZWN0b3JzICVkIGRpc2FncmVlcyB3aXRoIHRvdGFsICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMjIzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBzdGFydC1vZi1kYXRhIGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIG92ZXJsYXBzIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiYmVyaXJha3VycmkgcGFydGl6aW8gdGF1bGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGlzIGVtcHR5XG4iCittc2dzdHIgIkV6aW4gZGEgcGFydGl6dSBodXRzIGJhdCBlemFiYXR1IgorCisjOiBmZGlzay9mZGlzay5jOjIyNTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAicGFydGl6aW8gbG9naWtvYWsgZXogZGF1ZGUgZGlza28gb3JkZW5lYW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgYy1mb3JtYXQKK21zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlbGx1IGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlbWFpbmluZyAlbGxkIHVuYWxsb2NhdGVkICVkLWJ5dGUgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjMwMSBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjIwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGlzIGFscmVhZHkgZGVmaW5lZC4gIERlbGV0ZSBpdCBiZWZvcmUgcmUtYWRkaW5nIGl0LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBmcmVlIHNlY3RvcnMgYXZhaWxhYmxlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMzkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiQXprZW4gJXMtKGUpYSBlZG8gK3RhbWFpbnVhIGVkbyArdGFtYWludWFNIGVkbyArdGFtYWludWFLIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgQUlYIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIE1hYyBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBkZWxldGUgc29tZSBwYXJ0aXRpb24gYW5kIGFkZCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gZmlyc3RcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIGxvZ2ljYWwgcGFydGl0aW9ucyBhcmUgaW4gdXNlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBZGRpbmcgYSBwcmltYXJ5IHBhcnRpdGlvblxuIgorbXNnc3RyICJQYXJ0aXppbyBwcmltYXJpbyB0eGFycmEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbW1hbmQgYWN0aW9uXG4iCisiICAgJXNcbiIKKyIgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNClcbiIKK21zZ3N0ciAiU29ydHUgcGFydGl6aW8gcHJpbWFyaW8gYmVycmkgYmF0IgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKKyMsIGZ1enp5Cittc2dpZCAibCAgIGxvZ2ljYWwgKDUgb3Igb3ZlcikiCittc2dzdHIgInBhcnRpemlvIGxvZ2lrb2VuIHRlaWxha2FwZW5hIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKKyMsIGZ1enp5Cittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCBleHRlbmRlZCIKKworIzogZmRpc2svZmRpc2suYzoyNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgcGFydGl0aW9uIG51bWJlciBmb3IgdHlwZSBgJWMnXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgaW9jdGwoKSB0byByZS1yZWFkIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQgd2l0aCBlcnJvciAlZDogJXMuXG4iCisiVGhlIGtlcm5lbCBzdGlsbCB1c2VzIHRoZSBvbGQgdGFibGUuIFRoZSBuZXcgdGFibGUgd2lsbCBiZSB1c2VkIGF0XG4iCisidGhlIG5leHQgcmVib290IG9yIGFmdGVyIHlvdSBydW4gcGFydHByb2JlKDgpIG9yIGtwYXJ0eCg4KVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNjAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRXJyb3IgY2xvc2luZyBmaWxlXG4iCittc2dzdHIgIkV6aW4gZGEgJyVzJyBmaXR4YXRlZ2lhIGlyZWtpIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiRGlza2FrIHNpbmtyb25pemF0emVuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgbm8gZGF0YSBhcmVhXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTd2FwIHBhcnRpemlvYWsgZXogZGEgc3dhcCBtb2V0YWtvYS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjU2CisjLCBmdXp6eQorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiICAgZSAgIGRpc2tvYXJlbiBkYXRhIGVkaXRhdHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY3MgorIywgZnV6enkKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQlNEIGRpc2tvIGV0aWtldGEga29tYW5kb2EgKG0gbGFndW50emEgZXJha3VzdGVrbyk6IgorCisjOiBmZGlzay9mZGlzay5jOjI2ODUKK21zZ2lkICJOdW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICJaaWxpbmRybyBrb3B1cnVhIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIkJ1cnUga29wdXJ1YSIKKworIzogZmRpc2svZmRpc2suYzoyNzM3Cittc2dpZCAiTnVtYmVyIG9mIHNlY3RvcnMiCittc2dzdHIgIlNla3RvcmUga29wdXJ1YSBwaXN0YWtvIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogc2V0dGluZyBzZWN0b3Igb2Zmc2V0IGZvciBET1MgY29tcGF0aWJsaXR5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBmZGlzayBkb2Vzbid0ICIKKyJzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXMgZG9lc24ndCBjb250YWluIGEgdmFsaWQgcGFydGl0aW9uIHRhYmxlXG4iCittc2dzdHIgIiVzIGRpc2thayBleiBkYXVrYSBwYXJ0aXppbyB0YXVsYSB6dXplbmFcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIkV6aW4gZGEgJXMgaXJla2lcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiZXppbiBkYSAlcyBpcmVraVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NzAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJXM6IEtvbWFuZG8gZXplemFndW5hOiAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBrZXJuZWwgZmluZHMgdGhlIHNlY3RvciBzaXplIGl0c2VsZiAtIC1iIG9wdGlvbiBpZ25vcmVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyOTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB0aGUgLWIgKHNldCBzZWN0b3Igc2l6ZSkgb3B0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggb25lIHNwZWNpZmllZCAiCisiZGV2aWNlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozMDEwCittc2dpZCAiQ29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiS29tYW5kb2EgKG0gbGFndW50emEgZXJha3VzdGVrbykiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiVW5la28gYWJpbyBmaXR4YXRlZ2lhOiAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMjgKK21zZ2lkICJQbGVhc2UgZW50ZXIgdGhlIG5hbWUgb2YgdGhlIG5ldyBib290IGZpbGU6ICIKK21zZ3N0ciAiTWVzZWRleiBzYXJ0dSBhYmlvIGZpdHhhdGVnaSBiZXJyaWFyZW4gaXplbmE6IgorCisjOiBmZGlzay9mZGlzay5jOjMwMzAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiRXppbiBkYSAnJXMnIGZpdHhhdGVnaWEgaXJla2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzEwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRTb3JyeSwgbm8gZXhwZXJ0cyBtZW51IGZvciBTR0kgcGFydGl0aW9uIHRhYmxlcyBhdmFpbGFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2ttYWNsYWJlbC5jOjMwCittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBNYWMgbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBmZGlzaygxKSBjYW5ub3QgaGFuZGxlIHRoZXNlIGRpc2tzLlxuIgorIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisiXHROZXZlcnRoZWxlc3Mgc29tZSBhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgxCittc2dpZCAiU0dJIHZvbGhkciIKK21zZ3N0ciAiU0dJIHZvbGhkciIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgyCittc2dpZCAiU0dJIHRya3JlcGwiCittc2dzdHIgIlNHSSB0cmtyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODMKK21zZ2lkICJTR0kgc2VjcmVwbCIKK21zZ3N0ciAiU0dJIHNlY3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NAorbXNnaWQgIlNHSSByYXciCittc2dzdHIgIlNHSSByYXciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NQorbXNnaWQgIlNHSSBic2QiCittc2dzdHIgIlNHSSBic2QiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NgorbXNnaWQgIlNHSSBzeXN2IgorbXNnc3RyICJTR0kgc3lzdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg3Cittc2dpZCAiU0dJIHZvbHVtZSIKK21zZ3N0ciAiU0dJIHZvbHVtZSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiU0dJIGVmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIlNHSSBsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIlNHSSBybHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIHhmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIkxpbnV4IHN3YXAiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTEKKyMsIGZ1enp5Cittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzZ2kgZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE4OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG4iCisiQm9vdGZpbGU6ICVzXG4iCisiLS0tLS0gRGlyZWN0b3J5IEVudHJpZXMgLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiUyZDogJS0xMHMgc2VjdG9yJTV1IHNpemUlOHVcbiIKK21zZ3N0ciAiJTJkOiAlLTEwcyBzZWt0b3JlJTV1IHRhbWFpbnVhJTh1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0TmFtZSBvZiBCb290ZmlsZSB0b28gbG9uZzogIDE2IGJ5dGVzIG1heGltdW0uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBtdXN0IGhhdmUgYSBmdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMxMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCZSBhd2FyZSwgdGhhdCB0aGUgYm9vdGZpbGUgaXMgbm90IGNoZWNrZWQgZm9yIGV4aXN0ZW5jZS5cbiIKKyJcdFNHSSdzIGRlZmF1bHQgaXMgXCIvdW5peFwiIGFuZCBmb3IgYmFja3VwIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgaXMgY2hhbmdlZCB0byBcIiVzXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEFiaW8gZml0eGF0ZWdpYSBcIiVzXCItKGUpcmEgYWxkYXR1IGRhLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1vcmUgdGhhbiBvbmUgZW50aXJlIGRpc2sgZW50cnkgcHJlc2VudC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDMzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9ucyBkZWZpbmVkXG4iCittc2dzdHIgIkV6IGRhIHBhcnRpemlvcmlrIGRlZmluaXR1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSVJJWCBsaWtlcyB3aGVuIFBhcnRpdGlvbiAxMSBjb3ZlcnMgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJPbmUgUGFydGl0aW9uICgjMTEpIHNob3VsZCBjb3ZlciB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIFBhcnRpdGlvbiAlZCBhbmQgJWQgb3ZlcmxhcCBieSAlZCBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0ODQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGJvb3QgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiRXogZGEgc3dhcCBwYXJ0aXppb3JpayBleGlzdGl0emVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJFeiBkYSBzd2FwIHBhcnRpemlvcmlrIGV4aXN0aXR6ZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisiU3dhcCBwYXJ0aXppb2FrIGV6IGRhIHN3YXAgbW9ldGFrb2EuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiXHRPaGl6IGthbnBva28gYWJpbyBmaXR4YXRlZ2kgaXplbmEgYXVrZXJhdHUgZHV6dS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzMgorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSBZb3UgbWF5IGNoYW5nZSB0aGUgVGFnIG9mIG5vbi1lbXB0eSBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzgKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIG9mIHR5cGUgXCJTR0kgdm9saGRyXCIsIHRoZSBJUklYIHN5c3RlbSB3aWxsIHJlbHkgb24gaXQgdG9cbiIKKyJyZXRyaWV2ZSBmcm9tIGl0cyBkaXJlY3Rvcnkgc3RhbmRhbG9uZSB0b29scyBsaWtlIHNhc2ggYW5kIGZ4LlxuIgorIk9ubHkgdGhlIFwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrIHNlY3Rpb24gbWF5IHZpb2xhdGUgdGhpcy5cbiIKKyJUeXBlIFlFUyBpZiB5b3UgYXJlIHN1cmUgYWJvdXQgdGFnZ2luZyB0aGlzIHBhcnRpdGlvbiBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiQkFJXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlbnRpcmUgZGlzayBpcyBhbHJlYWR5IGNvdmVyZWQgd2l0aCBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY0NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCBlbGV2ZW50aCBwYXJ0aXRpb25cbiIKKyJjb3ZlcnMgdGhlIGVudGlyZSBkaXNrIGFuZCBpcyBvZiB0eXBlIGBTR0kgdm9sdW1lJ1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgZ2V0IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiBMYXN0ICVzIgorbXNnc3RyICIgQXprZW4gJXMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IFNHSSBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd2lsbCBiZSB1bnJlY292ZXJhYmx5IGxvc3QuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjcxOCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiAgQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXMuICBVc2luZyBnZW9tZXRyeSBjeWxpbmRlciB2YWx1ZSBvZiAlIgorImQuXG4iCisiVGhpcyB2YWx1ZSBtYXkgYmUgdHJ1bmNhdGVkIGZvciBkZXZpY2VzID4gMzMuOCBHQi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byBrZWVwIHBhcmFtZXRlcnMgb2YgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSUQ9JTAyeFx0U1RBUlQ9JWRcdExFTkdUSD0lZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIkV6YXJyaSBnYWJlYSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiU3VuT1Mgcm9vdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1Mgc3dhcCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIkRpc2tvIG9zb2EiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBzdGFuZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICJTdW5PUyB2YXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICJTdW5PUyBhbHQgc2VjdG9ycyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4Cittc2dpZCAiU3VuT1MgY2FjaGVmcyIKK21zZ3N0ciAiU3VuT1MgY2FjaGVmcyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIlN1bk9TIHJlc2VydmVkIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDMKK21zZ2lkICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCittc2dzdHIgIkF1dG9tYXRpa29raSBhdHplbWFuIExpbnV4IHJhaWQtYWsiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHNhbml0eSBbMHglMDh4XS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAiU2VrdG9yZWFrIHBpc3Rha28iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXNuJ3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgb3ZlcmxhcHMgd2l0aCBvdGhlcnMgaW4gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzIDAtJWRcbiIKK21zZ3N0ciAiQmFsaW9nYWJla28gc2VrdG9yZSBiYWxvcmVhayIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJCYWxpb2dhYmVrbyBzZWt0b3JlIGJhbG9yZWFrIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdGhlciBwYXJ0aXRpb25zIGFscmVhZHkgY292ZXIgdGhlIHdob2xlIGRpc2suXG4iCisiRGVsZXRlIHNvbWUvc2hyaW5rIHRoZW0gYmVmb3JlIHJldHJ5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSB0aGlyZCBwYXJ0aXRpb24gY292ZXJzIHRoZSB3aG9sZSBkaXNrXG4iCisiYW5kIGlzIG9mIHR5cGUgYFdob2xlIGRpc2snXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIlBhcnRpemlvIGhhdSBkYWdvZW5la28gZXJhYmlsaXRhIGRhZ28iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlbid0IGNvdmVyZWQgdGhlIHdob2xlIGRpc2sgd2l0aCB0aGUgM3JkIHBhcnRpdGlvbiwgYnV0IHlvdXIgdmFsdWVcbiIKKyIlZCAlcyBjb3ZlcnMgc29tZSBvdGhlciBwYXJ0aXRpb24uIFlvdXIgZW50cnkgaGFzIGJlZW4gY2hhbmdlZFxuIgorInRvICVkICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWYgeW91IHdhbnQgdG8gbWFpbnRhaW4gU3VuT1MvU29sYXJpcyBjb21wYXRpYmlsaXR5LCBjb25zaWRlciBsZWF2aW5nIHRoaXNcbiIKKyJwYXJ0aXRpb24gYXMgV2hvbGUgZGlzayAoNSksIHN0YXJ0aW5nIGF0IDAsIHdpdGggJXUgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIFVGUywgRVhUMkZTIGZpbGVzeXN0ZW0gb3IgU3VuT1Mgc3dhcC4gUHV0dGluZyBMaW51eCBzd2FwXG4iCisidGhlcmUgbWF5IGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUgYW5kIGJvb3RibG9jay5cbiIKKyJUeXBlIFlFUyBpZiB5b3UncmUgdmVyeSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRoYXQgcGFydGl0aW9uXG4iCisidGFnZ2VkIHdpdGggODIgKExpbnV4IHN3YXApOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBycG1cbiIKKyIlZCBjeWxpbmRlcnMsICVkIGFsdGVybmF0ZSBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiTGFiZWwgSUQ6ICVzXG4iCisiVm9sdW1lIElEOiAlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYyNQorIywgZnV6enkKK21zZ2lkICJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiU2FydHUgemlsaW5kcm8ga29wdXJ1YToiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MzcKKyMsIGZ1enp5Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIlNhcnR1IHBpc3Rha28gemVuYmF0IHNla3RvcmUga29wdXJ1YToiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NDQKK21zZ2lkICJJbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjUxCittc2dpZCAiUm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIkJpcmEgbWludXR1a28gKHJwbSkiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTgKKyMsIGZ1enp5Cittc2dpZCAiTnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIKK21zZ3N0ciAiU2FydHUgemlsaW5kcm8ga29wdXJ1YToiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICJIdXRzaWsiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICJGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4Cittc2dpZCAiWEVOSVggcm9vdCIKK21zZ3N0ciAiWEVOSVggcm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5Cittc2dpZCAiWEVOSVggdXNyIgorbXNnc3RyICJYRU5JWCB1c3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAKK21zZ2lkICJGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjExCittc2dpZCAiRXh0ZW5kZWQiCittc2dzdHIgIkV4dGVuZGVkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIGJvb3RhYmxlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgQm9vdCBNYW5hZ2VyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICJXOTUgRXh0J2QgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICJPUFVTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIyCittc2dpZCAiSGlkZGVuIEZBVDEyIgorbXNnc3RyICJIaWRkZW4gRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjMKK21zZ2lkICJDb21wYXEgZGlhZ25vc3RpY3MiCittc2dzdHIgIkNvbXBhcSBkaWFnbm9zdGljcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICJIaWRkZW4gRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNQorbXNnaWQgIkhpZGRlbiBGQVQxNiIKK21zZ3N0ciAiSGlkZGVuIEZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiSGlkZGVuIEhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJBU1QgU21hcnRTbGVlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIkhpZGRlbiBXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNAorbXNnaWQgIlZlbml4IDgwMjg2IgorbXNnc3RyICJWZW5peCA4MDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNQorbXNnaWQgIlBQQyBQUmVQIEJvb3QiCittc2dzdHIgIlBQQyBQUmVQIEJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMm5kIHBhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIlFOWDQueCAzcmQgcGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MAorbXNnaWQgIk9uVHJhY2sgRE0iCittc2dzdHIgIk9uVHJhY2sgRE0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDEKK21zZ2lkICJPblRyYWNrIERNNiBBdXgxIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgxIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQyCittc2dpZCAiQ1AvTSIKK21zZ3N0ciAiQ1AvTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MworbXNnaWQgIk9uVHJhY2sgRE02IEF1eDMiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDQKK21zZ2lkICJPblRyYWNrRE02IgorbXNnc3RyICJPblRyYWNrRE02IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ1Cittc2dpZCAiRVotRHJpdmUiCittc2dzdHIgIkVaLURyaXZlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ2Cittc2dpZCAiR29sZGVuIEJvdyIKK21zZ3N0ciAiR29sZGVuIEJvdyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NworbXNnaWQgIlByaWFtIEVkaXNrIgorbXNnc3RyICJQcmlhbSBFZGlzayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkyCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTkKK21zZ2lkICJTcGVlZFN0b3IiCittc2dzdHIgIlNwZWVkU3RvciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OQorbXNnaWQgIkdOVSBIVVJEIG9yIFN5c1YiCittc2dzdHIgIkdOVSBIVVJEIG9yIFN5c1YiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTAKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAyODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MQorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDM4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMzg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUyCittc2dpZCAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorbXNnc3RyICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTMKK21zZ2lkICJQQy9JWCIKK21zZ3N0ciAiUEMvSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTQKK21zZ2lkICJPbGQgTWluaXgiCittc2dzdHIgIk9sZCBNaW5peCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NQorbXNnaWQgIk1pbml4IC8gb2xkIExpbnV4IgorbXNnc3RyICJNaW5peCAvIG9sZCBMaW51eCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eCBzd2FwIC8gU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIGhpZGRlbiBDOiBkcml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCBleHRlbmRlZCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYxCittc2dpZCAiTlRGUyB2b2x1bWUgc2V0IgorbXNnc3RyICJOVEZTIHZvbHVtZSBzZXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjIKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIkxpbnV4IHBsYWludGV4dCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NAorbXNnaWQgIkFtb2ViYSIKK21zZ3N0ciAiQW1vZWJhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY1Cittc2dpZCAiQW1vZWJhIEJCVCIKK21zZ3N0ciAiQW1vZWJhIEJCVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NgorbXNnaWQgIkJTRC9PUyIKK21zZ3N0ciAiQlNEL09TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY3Cittc2dpZCAiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIgorbXNnc3RyICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjgKK21zZ2lkICJGcmVlQlNEIgorbXNnc3RyICJGcmVlQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY5Cittc2dpZCAiT3BlbkJTRCIKK21zZ3N0ciAiT3BlbkJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MAorbXNnaWQgIk5lWFRTVEVQIgorbXNnc3RyICJOZVhUU1RFUCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MQorbXNnaWQgIkRhcndpbiBVRlMiCittc2dzdHIgIkRhcndpbiBVRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzIKK21zZ2lkICJOZXRCU0QiCittc2dzdHIgIk5ldEJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MworbXNnaWQgIkRhcndpbiBib290IgorbXNnc3RyICJEYXJ3aW4gYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NAorbXNnaWQgIkhGUyAvIEhGUysiCittc2dzdHIgIkhGUyAvIEhGUysiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzUKK21zZ2lkICJCU0RJIGZzIgorbXNnc3RyICJCU0RJIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc2Cittc2dpZCAiQlNESSBzd2FwIgorbXNnc3RyICJCU0RJIHN3YXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIkJvb3QgV2l6YXJkIGV6a3V0dWEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIlNvbGFyaXMgYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJOb24tRlMgZGF0YSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NQorbXNnaWQgIkNQL00gLyBDVE9TIC8gLi4uIgorbXNnc3RyICJDUC9NIC8gQ1RPUyAvIC4uLiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NworbXNnaWQgIkRlbGwgVXRpbGl0eSIKK21zZ3N0ciAiRGVsbCBVdGlsaXR5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg4Cittc2dpZCAiQm9vdEl0IgorbXNnc3RyICJCb290SXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODkKK21zZ2lkICJET1MgYWNjZXNzIgorbXNnc3RyICJET1MgYWNjZXNzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkxCittc2dpZCAiRE9TIFIvTyIKK21zZ3N0ciAiRE9TIFIvTyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NAorbXNnaWQgIkJlT1MgZnMiCittc2dzdHIgIkJlT1MgZnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTUKK21zZ2lkICJHUFQiCittc2dzdHIgIkdQVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NgorbXNnaWQgIkVGSSAoRkFULTEyLzE2LzMyKSIKK21zZ3N0ciAiRUZJIChGQVQtMTIvMTYvMzIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk3Cittc2dpZCAiTGludXgvUEEtUklTQyBib290IgorbXNnc3RyICJMaW51eC9QQS1SSVNDIGJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAwCittc2dpZCAiRE9TIHNlY29uZGFyeSIKK21zZ3N0ciAiRE9TIHNlY29uZGFyeSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDEKK21zZ2lkICJWTXdhcmUgVk1GUyIKK21zZ3N0ciAiVk13YXJlIFZNRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIlZNd2FyZSBWTUtDT1JFIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNgorbXNnaWQgIkxBTnN0ZXAiCittc2dzdHIgIkxBTnN0ZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA3Cittc2dpZCAiQkJUIgorbXNnc3RyICJCQlQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yIG9uICVzIC0gY2Fubm90IHNlZWsgdG8gJWx1XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3I6IHdhbnRlZCAweCUwOHglMDh4LCBnb3QgMHglMDh4JTA4eFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAibWVtb3JpYXJpayBleiAtIHV6dGVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXMgLSBjYW5ub3Qgd3JpdGUgc2VjdG9yICVsdVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzXG4iCittc2dzdHIgImlkYXprZXRhIGVycm9yZWEgJXMtKGUpblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozNDQKK21zZ2lkICJvdXQgb2YgbWVtb3J5P1xuIgorbXNnc3RyICJtZW1vcmlhcmlrIGV6P1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiaXJha3Vya2V0YSBlcnJvcmVhICVzLShlKW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAiRXppbiBkYSAgcmF3IGdhaWx1IG5hZ3VzaWEgaXJla2kgJyIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ0MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBnZW9tZXRyeVxuIgorbXNnc3RyICJFemluIGRhIGRpc2tvYXJlbiB0YW1haW51YSBsb3J0dSIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IHNpemVcbiIKK21zZ3N0ciAiRXppbiBkYSBkaXNrb2FyZW4gdGFtYWludWEgbG9ydHUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc3RhcnQ9JWx1IC0gdGhpcyBsb29rcyBsaWtlIGEgcGFydGl0aW9uIHJhdGhlciB0aGFuXG4iCisidGhlIGVudGlyZSBkaXNrLiBVc2luZyBmZGlzayBvbiBpdCBpcyBwcm9iYWJseSBtZWFuaW5nbGVzcy5cbiIKKyJbVXNlIHRoZSAtLWZvcmNlIG9wdGlvbiBpZiB5b3UgcmVhbGx5IHdhbnQgdGhpc11cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGN5bGluZGVyc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdW5saWtlbHkgbnVtYmVyIG9mIHNlY3RvcnMgKCVsdSkgLSB1c3VhbGx5IGF0IG1vc3QgNjNcbiIKKyJUaGlzIHdpbGwgZ2l2ZSBwcm9ibGVtcyB3aXRoIGFsbCBzb2Z0d2FyZSB0aGF0IHVzZXMgQy9IL1MgYWRkcmVzc2luZy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbHUgY3lsaW5kZXJzLCAlbHUgaGVhZHMsICVsdSBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIkJ1cnVhazogJWQgICBTZWt0b3JlYWsgcGlzdGFrbzogJWQgICBaaWxpbmRyb2FrOiAlbGxkIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICVsdSAoc2hvdWxkIGJlIGluIDAtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIiIKKyJJZCAgSXplbmFcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSAuLi5cbiIKK21zZ3N0ciAiUGFydGl6aW8gdGF1bGEgYmVycml6IGlyYWt1cnR6ZW4gLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxMQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNsb3NpbmcgJXNcbiIKK21zZ3N0ciAiRXJyb3JlYSAlcyBpdHhpdHplcmFrb2FuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IGV6IGRhZ28gaG9ycmVsYWtvIHBhcnRpemlvcmlrXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg3OAorIywgZnV6enkKK21zZ2lkICJ1bnJlY29nbml6ZWQgZm9ybWF0IC0gdXNpbmcgc2VjdG9yc1xuIgorbXNnc3RyICJJbnByaW1hdHUgdGF1bGEgcmF3IGRhdHUgZm9ybWF0dWEgZXJhYmlsaXoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjkyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5pbXBsZW1lbnRlZCBmb3JtYXQgLSB1c2luZyAlc1xuIgorbXNnc3RyICJVVEMgb3JkdWEgZXJhYmlsdHplbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgICBTdGFydCAgICAgICBFbmQgICAjc2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgIFN0YXJ0ICAgICAgIEVuZCAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTExMworIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0c3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMAorIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0ZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzMKKyMsIGZ1enp5Cittc2dpZCAiTm8gcGFydGl0aW9ucyBmb3VuZFxuIgorbXNnc3RyICJFeiBkYWdvIHBhcnRpemlvIGdlaGlhZ28iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFRoZSBwYXJ0aXRpb24gdGFibGUgbG9va3MgbGlrZSBpdCB3YXMgbWFkZVxuIgorIiAgZm9yIEMvSC9TPSovJWxkLyVsZCAoaW5zdGVhZCBvZiAlbGQvJWxkLyVsZCkuXG4iCisiRm9yIHRoaXMgbGlzdGluZyBJJ2xsIGFzc3VtZSB0aGF0IGdlb21ldHJ5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKKyMsIGZ1enp5Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIlBhcnRpemlvIHRhdWxhIG1vZXRhIGV6ZXphZ3VuYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBub256ZXJvIHN0YXJ0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzICIKK21zZ3N0ciAiYmVyaXJha3VycmkgcGFydGl6aW8gdGF1bGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlzIG5vdCBjb250YWluZWQgaW4gcGFydGl0aW9uICVzXG4iCittc2dzdHIgIlBhcnRpemlvIGhhdSBkYWdvZW5la28gZXJhYmlsaXRhIGRhZ28iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbnMgJXMgIgorbXNnc3RyICJQYXJ0aXppbyBnZWhpZWdpIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICJwYXJ0aXppbyBsb2dpa29lbiB0ZWlsYWthcGVuYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogcGFydGl0aW9uICVzIGNvbnRhaW5zIHBhcnQgb2YgdGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisiYW5kIHdpbGwgZGVzdHJveSBpdCB3aGVuIGZpbGxlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIHN0YXJ0cyBhdCBzZWN0b3IgMFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGV4dGVuZHMgcGFzdCBlbmQgb2YgZGlza1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNjkKK21zZ2lkICIiCisiQW1vbmcgdGhlIHByaW1hcnkgcGFydGl0aW9ucywgYXQgbW9zdCBvbmUgY2FuIGJlIGV4dGVuZGVkXG4iCisiIChhbHRob3VnaCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gdW5kZXIgTGludXgpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IGVuZCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxMQorbXNnaWQgIiIKKyJXYXJuaW5nOiBtb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxOAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1c3VhbGx5IG9uZSBjYW4gYm9vdCBmcm9tIHByaW1hcnkgcGFydGl0aW9ucyBvbmx5XG4iCisiTElMTyBkaXNyZWdhcmRzIHRoZSBgYm9vdGFibGUnIGZsYWcuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAiaGFzaWVyYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisicGFydGl0aW9uICVzOiBzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQ3Cittc2dpZCAiZW5kIgorbXNnc3RyICJhbWFpZXJhIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlczogZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHNoaWZ0ZWQgc3RhcnQgb2YgdGhlIGV4dGQgcGFydGl0aW9uIGZyb20gJWxkIHRvICVsZFxuIgorIihGb3IgbGlzdGluZyBwdXJwb3NlcyBvbmx5LiBEbyBub3QgY2hhbmdlIGl0cyBjb250ZW50cy4pXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM4NAorbXNnaWQgIiIKKyJXYXJuaW5nOiBleHRlbmRlZCBwYXJ0aXRpb24gZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeS5cbiIKKyJET1MgYW5kIExpbnV4IHdpbGwgaW50ZXJwcmV0IHRoZSBjb250ZW50cyBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MTcKKyMsIGZ1enp5Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICJQYXJ0aXppbyBnZWhpZWdpIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTI1Cittc2dpZCAiZGV0ZWN0ZWQgRGlzayBNYW5hZ2VyIC0gdW5hYmxlIHRvIGhhbmRsZSB0aGF0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUzMgorbXNnaWQgIkRNNiBzaWduYXR1cmUgZm91bmQgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCisjLCBmdXp6eQorbXNnaWQgInN0cmFuZ2UuLi4sIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgIiAgdSAgICAgICAgICBBbGRhdHUgZXJha3VzdGVuIGRlbiBwYXJ0aXppb2FyZW4gdGFtYWludSB1bml0YXRlYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCisjLCBmdXp6eQorbXNnaWQgInN0cmFuZ2UuLi4sIGEgQlNEIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgIiAgIG4gICBCU0QgcGFydGl6aW8gYmVycmkgYmF0IGdlaGl0dSIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICVzOiB1bnJlY29nbml6ZWQgcGFydGl0aW9uIHRhYmxlIHR5cGVcbiIKK21zZ3N0ciAiUGFydGl6aW8gdGF1bGEgbW9ldGEgZXplemFndW5hIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjE2Cittc2dpZCAiLW4gZmxhZyB3YXMgZ2l2ZW46IE5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzIKK21zZ2lkICJGYWlsZWQgc2F2aW5nIHRoZSBvbGQgc2VjdG9ycyAtIGFib3J0aW5nXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzNyBmZGlzay9zZmRpc2suYzoxNjQyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgIlBhcnRpemlvIHRhdWxhIGRpc2tvYW4gaWRhenRlbi4uLiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzYyCisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiB1bmV4cGVjdGVkIGNoYXJhY3RlciAlYyBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAic2FycmVyYSBva2VycmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgInplbmJha2kgaGFuZGllZ2lhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5NzEKK21zZ2lkICJjYW5ub3QgYnVpbGQgc3Vycm91bmRpbmcgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjAyMgorIywgZnV6enkKK21zZ2lkICJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIKK21zZ3N0ciAib3JyaSB0eGFyIGdlaGllZ2kiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA3NQorbXNnaWQgIklsbGVnYWwgdHlwZVxuIgorbXNnc3RyICJCYWxpb2dhYmVrbyBtb2V0YVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGdpdmVuIHNpemUgKCVsdSkgZXhjZWVkcyBtYXggYWxsb3dhYmxlIHNpemUgKCVsdSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTEzCisjLCBmdXp6eQorbXNnaWQgIldhcm5pbmc6IGVtcHR5IHBhcnRpdGlvblxuIgorbXNnc3RyICJFemluIGRhIHBhcnRpenUgaHV0cyBiYXQgZXphYmF0dSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE0MAorbXNnaWQgInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNTcgZmRpc2svc2ZkaXNrLmM6MjE3MAorbXNnaWQgInBhcnRpYWwgYyxoLHMgc3BlY2lmaWNhdGlvbj9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMTMKK21zZ2lkICJiYWQgaW5wdXRcbiIKK21zZ3N0ciAic2FycmVyYSBva2VycmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAicGFydGl6aW8gZ2VoaWVnaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjY4Cittc2dpZCAiIgorIklucHV0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OyBhYnNlbnQgZmllbGRzIGdldCBhIGRlZmF1bHQgdmFsdWUuXG4iCisiPHN0YXJ0PiA8c2l6ZT4gPHR5cGUgW0UsUyxMLFgsaGV4XT4gPGJvb3RhYmxlIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyJVc3VhbGx5IHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSA8c3RhcnQ+IGFuZCA8c2l6ZT4gKGFuZCBwZXJoYXBzIDx0eXBlPikuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIGRldmljZSAuLi5cbiIKK21zZ3N0ciAiRXJhYmlsZXJhOiAlcyBbYXVrZXJha10gZ2FpbHVhIC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAiZ2FpbHVhOiAvZGV2L2hkYSBlZG8gL2Rldi9zZGEgbW9kdWtvIHplcmJhaXQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgImF1a2VyYSBiYWxpb2dhcnJpYWs6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4CisjLCBmdXp6eQorbXNnaWQgIiAgICAtYyBbb3IgLS1pZF06ICAgICAgICBwcmludCBvciBjaGFuZ2UgcGFydGl0aW9uIElkIgorbXNnc3RyICIiCisiICBwICAgICAgICAgIEVyYWt1dHNpIHBhcnRpemlvIHRhdWxhIHBhbnRhaWxhbiBlZG8gaWRhdHppIGZpdHhhdGVnaXJlbiBiYXRlYW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMgorbXNnaWQgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0L3JlcG9ydCBpbiB1bml0cyBvZiBzZWN0b3JzL2Jsb2Nrcy9jeWxpbmRlcnMvIgorIk1CIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDMKK21zZ2lkICIgICAgLVQgW29yIC0tbGlzdC10eXBlc106bGlzdCB0aGUga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA1Cittc2dpZCAiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIG1ha2Uga2VybmVsIHJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgICAtTiMgOiAgICAgICAgICAgICAgICBjaGFuZ2Ugb25seSB0aGUgcGFydGl0aW9uIHdpdGggbnVtYmVyICMiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBkbyBub3QgYWN0dWFsbHkgd3JpdGUgdG8gZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTAKKyMsIGZ1enp5Cittc2dpZCAiICAgIC12IFtvciAtLXZlcnNpb25dOiAgIHByaW50IHZlcnNpb24iCittc2dzdHIgIkV6IGlucHJpbWF0dSB0YXVsYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMgorIywgZnV6enkKK21zZ2lkICJkYW5nZXJvdXMgb3B0aW9uczoiCittc2dzdHIgImF1a2VyYSBiYWxpb2dhcnJpYWs6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEzCittc2dpZCAiICAgIC1nIFtvciAtLXNob3ctZ2VvbWV0cnldOiBwcmludCB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgZ2VvbWV0cnkiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorbXNnaWQgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IHByaW50IGdlb21ldHJ5IGd1ZXNzZWQgZnJvbSB0aGUgcGFydGl0aW9uICIKKyJ0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE1Cittc2dpZCAiIgorIiAgICAteCBbb3IgLS1zaG93LWV4dGVuZGVkXTogYWxzbyBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMgb24gb3V0cHV0XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBleHBlY3QgZGVzY3JpcHRvcnMgZm9yIHRoZW0gb24gaW5wdXQiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNworbXNnaWQgIiIKKyIgICAgLUwgIFtvciAtLUxpbnV4XTogICAgICBkbyBub3QgY29tcGxhaW4gYWJvdXQgdGhpbmdzIGlycmVsZXZhbnQgZm9yIExpbnV4IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgLXEgIFtvciAtLXF1aWV0XTogICAgICBzdXBwcmVzcyB3YXJuaW5nIG1lc3NhZ2VzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgWW91IGNhbiBvdmVycmlkZSB0aGUgZGV0ZWN0ZWQgZ2VvbWV0cnkgdXNpbmc6IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjEKK21zZ2lkICIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICBzZXQgdGhlIG51bWJlciBvZiBoZWFkcyB0byB1c2UiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjMKK21zZ2lkICJZb3UgY2FuIGRpc2FibGUgYWxsIGNvbnNpc3RlbmN5IGNoZWNraW5nIHdpdGg6IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjQKK21zZ2lkICIgICAgLWYgIFtvciAtLWZvcmNlXTogICAgICBkbyB3aGF0IEkgc2F5LCBldmVuIGlmIGl0IGlzIHN0dXBpZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMwCittc2dpZCAiVXNhZ2U6IgorbXNnc3RyICJFcmFiaWxlcmE6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZVx0XHQgbGlzdCBhY3RpdmUgcGFydGl0aW9ucyBvbiBkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZSBuMSBuMiAuLi4gYWN0aXZhdGUgcGFydGl0aW9ucyBuMSAuLi4sIGluYWN0aXZhdGUgdGhlIHJlc3RcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0OTUKKyMsIGZ1enp5Cittc2dpZCAibm8gY29tbWFuZD9cbiIKK21zZ3N0ciAiJXM6IEtvbWFuZG8gZXplemFndW5hOiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInRvdGFsOiAlbGx1IGJsb2Nrc1xuIgorbXNnc3RyICJndXp0aXJhOiAlbGx1IGJsb2tlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzAKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tcHJpbnQtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcyCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWNoYW5nZS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBJZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzQKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0taWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgW0lkXVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2ODEKK21zZ2lkICJjYW4gc3BlY2lmeSBvbmx5IG9uZSBkZXZpY2UgKGV4Y2VwdCB3aXRoIC1sIG9yIC1zKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAiZXppbiBkYSBcIiVzXCIgaXJla2kgaXJha3Vya2V0YXJha28iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgImV6aW4gZGEgXCIlc1wiIGlyZWtpIGlyYWt1cmtldGFyYWtvIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczogT0tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjc1MyBmZGlzay9zZmRpc2suYzoyNzg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlZCBidXJ1LCAlbGx1IHNla3RvcmUgcGlzdGFrbywgJWQgemlsaW5kcm8iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4MDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgc2l6ZSBvZiAlc1xuIgorbXNnc3RyICJFemluIGRhIGRpc2tvYXJlbiB0YW1haW51YSBsb3J0dSIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkwMyBmZGlzay9zZmRpc2suYzoyOTU4IGZkaXNrL3NmZGlzay5jOjI5OTEKK21zZ2lkICIiCisiRG9uZVxuIgorIlxuIgorbXNnc3RyICIiCisiRWdpbmRhXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlICVkIGFjdGl2ZSBwcmltYXJ5IHBhcnRpdGlvbnMuIFRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLFxuIgorImJ1dCB0aGUgRE9TIE1CUiB3aWxsIG9ubHkgYm9vdCBhIGRpc2sgd2l0aCAxIGFjdGl2ZSBwYXJ0aXRpb24uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICJlemluIGRhICVzIGlkLWEgZXphYmF0dSAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKKyMsIGZ1enp5Cittc2dpZCAiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UuXG4iCittc2dzdHIgIlBhcnRpemlvIGhhdSBkYWdvZW5la28gZXJhYmlsaXRhIGRhZ28iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmF0YWwgZXJyb3I6IGNhbm5vdCBmaW5kICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM0Cittc2dpZCAiIgorIlxuIgorIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlIC0gcmVwYXJ0aXRpb25pbmcgaXMgcHJvYmFibHkgYSBiYWQgaWRlYS5cbiIKKyJVbW91bnQgYWxsIGZpbGUgc3lzdGVtcywgYW5kIHN3YXBvZmYgYWxsIHN3YXAgcGFydGl0aW9ucyBvbiB0aGlzIGRpc2suXG4iCisiVXNlIHRoZSAtLW5vLXJlcmVhZCBmbGFnIHRvIHN1cHByZXNzIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzOAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIGFsbCBjaGVja3MuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA0MgorbXNnaWQgIk9LXG4iCittc2dzdHIgIk9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2xkIHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiRWdvZXJhIHphaGFycmE6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgY2hhbmdlIGl0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJFZ29lcmEgYmVycmlhOlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDY4Cittc2dpZCAiIgorIkkgZG9uJ3QgbGlrZSB0aGVzZSBwYXJ0aXRpb25zIC0gbm90aGluZyBjaGFuZ2VkLlxuIgorIihJZiB5b3UgcmVhbGx5IHdhbnQgdGhpcywgdXNlIHRoZSAtLWZvcmNlIG9wdGlvbi4pXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisic2ZkaXNrOiBwcmVtYXR1cmUgZW5kIG9mIGlucHV0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4NQorbXNnaWQgIlF1aXR0aW5nIC0gbm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIklydGV0ZW4gLSBleiBkYSBlemVyIGFsZGF0dVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBsZWFzZSBhbnN3ZXIgb25lIG9mIHksbixxXG4iCittc2dzdHIgIk1lc2VkZXogZXJhbnR6dW4geSxuIGVkbyBxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdWNjZXNzZnVsbHkgd3JvdGUgdGhlIG5ldyBwYXJ0aXRpb24gdGFibGVcbiIKKyJcbiIKK21zZ3N0ciAiUGFydGl6aW8gdGF1bGEgZGlza29hbiBpZGF0emkgZGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIkV6aW4gZGEgJyVzJyBmaXR4YXRlZ2lhIGlyZWtpIgorCisjOiBmc2NrL2ZzY2suYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogYmFkIGZvcm1hdCBvbiBsaW5lICVkIG9mICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MzUyCittc2dpZCAiIgorIldBUk5JTkc6IFlvdXIgL2V0Yy9mc3RhYiBkb2VzIG5vdCBjb250YWluIHRoZSBmc2NrIHBhc3Nub1xuIgorIlx0ZmllbGQuICBJIHdpbGwga2x1ZGdlIGFyb3VuZCB0aGluZ3MgZm9yIHlvdSwgYnV0IHlvdVxuIgorIlx0c2hvdWxkIGZpeCB5b3VyIC9ldGMvZnN0YWIgZmlsZSBhcyBzb29uIGFzIHlvdSBjYW4uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NDYwCisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6ICVzOiBub3QgZm91bmRcbiIKK21zZ3N0ciAiZnNjazogJXM6IGV6IGRhIGF1cmtpdHVcbiIKKworIzogZnNjay9mc2NrLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZy4uLiAlcyBmb3IgZGV2aWNlICVzIGV4aXRlZCB3aXRoIHNpZ25hbCAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKK21zZ2lkICJDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpbGVzeXN0ZW0gdHlwZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBza2lwcGluZyBiYWQgbGluZSBpbiAvZXRjL2ZzdGFiOiBiaW5kIG1vdW50IHdpdGggbm9uemVybyBmc2NrIHBhc3MgIgorIm51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIgorbXNnc3RyICJFcmFiaWxlcmE6ICVzIFthdWtlcmFrXSBnYWlsdWEgLi4uXG4iCisKKyM6IGZzY2svZnNjay5jOjkxOAorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiBjYW5ub3QgY2hlY2sgJXM6IGZzY2suJXMgbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6OTc0Cittc2dpZCAiQ2hlY2tpbmcgYWxsIGZpbGUgc3lzdGVtcy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiT3JkdWxhcmlhcmVuIHRpY2stYXJpIGl0eGFyb3RlblxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGRldmljZXNcbiIKK21zZ3N0ciAiJXM6IGdhaWx1IGdlaGllZ2lcbiIKKworIzogZnNjay9mc2NrLmM6MTEzNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJFemluIGRhICVzIGlyZWtpOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIklzIC9wcm9jIG1vdW50ZWQ/XG4iCittc2dzdHIgIi9wcm9jIG1vbnRhdHVhIGRhZ28/XG4iCisKKyM6IGZzY2svZnNjay5jOjExNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSByb290IHRvIHNjYW4gZm9yIG1hdGNoaW5nIGZpbGVzeXN0ZW1zOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgZmluZCBtYXRjaGluZyBmaWxlc3lzdGVtOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExNTYgZnNjay9mc2NrLmM6MTI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iCittc2dzdHIgIiVzOiBhcmd1bWVudHUgZ2VoaWVnaVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMtKGUpdGlrIHJlbmljZS1lYVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MjI5Cittc2dpZCAiVHJ5IGBnZXRvcHQgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mjk1Cittc2dpZCAiZW1wdHkgbG9uZyBvcHRpb24gYWZ0ZXIgLWwgb3IgLS1sb25nIGFyZ3VtZW50IgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMTUKK21zZ2lkICJ1bmtub3duIHNoZWxsIGFmdGVyIC1zIG9yIC0tc2hlbGwgYXJndW1lbnQiCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIxCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjIKKyMsIGZ1enp5Cittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B0aW9uc10gWy0tXVxuIgorbXNnc3RyICJFcmFiaWxlcmE6ICVzIFthdWtlcmFrXSBnYWlsdWEgLi4uXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjMKK21zZ2lkICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI0Cittc2dpZCAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBBbGxvdyBsb25nIG9wdGlvbnMgc3RhcnRpbmcgd2l0aCBzaW5nbGUgLVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjUKK21zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVGhpcyBzbWFsbCB1c2FnZSBndWlkZVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI3Cittc2dpZCAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOAorbXNnaWQgIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBTaG9ydCBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMworbXNnaWQgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUgdGhlIG91dHB1dFxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mzg4IGdldG9wdC9nZXRvcHQuYzo0NDcKKyMsIGZ1enp5Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgImNvbDogLWwgYmFsaW9nYWJla28gYXJndW1lbnR1YSAlcy5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICJnZXRvcHQgKGVuaGFuY2VkKSAxLjEuNFxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0NDEKK21zZ2lkICJpbnRlcm5hbCBlcnJvciwgY29udGFjdCB0aGUgYXV0aG9yLiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9vdGVkIGZyb20gTUlMT1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJSdWZmaWFuIEJDRCBjbG9ja1xuIgorbXNnc3RyICJSdWZmaWFuIEJDRCBlcmxvanVhXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJmdW5reSBUT1khXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhdG9taWMgJXMgZmFpbGVkIGZvciAxMDAwIGl0ZXJhdGlvbnMhIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHJlYWQgZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIkV6aW4gZGEgL2Rldi9wb3J0IGlyZWtpOiAlcyIKKworIzogaHdjbG9jay9jbW9zLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkkgZmFpbGVkIHRvIGdldCBwZXJtaXNzaW9uIGJlY2F1c2UgSSBkaWRuJ3QgdHJ5LlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyB1bmFibGUgdG8gZ2V0IEkvTyBwb3J0IGFjY2VzczogIHRoZSBpb3BsKDMpIGNhbGwgZmFpbGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9iYWJseSB5b3UgbmVlZCByb290IHByaXZpbGVnZXMuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gJXMgdGltZS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAibG9rYWxhIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBjYWxpYnJhdGlvbiBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICJIYXJkd2FyZWFyZW4gb3JkdWxhcmlhayAlcyBkYXRhIGRhdWthXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgImV6ZXphZ3VuYSIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgZm9yIGNsb2NrIHRpY2suLi5cbiIKK21zZ3N0ciAiT3JkdWxhcmlhcmVuIHRpY2stYXJpIGl0eGFyb3RlblxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc3luY2hyb25pemF0aW9uIGZhaWxlZFxuIgorbXNnc3RyICIuLi5zaW5rcm9uaXphemlvYWsgaHV0cyBlZ2luIGR1XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiT3JkdWxhcmlhcmVuIHRpY2stYXJpIGl0eGFyb3RlblxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb2NrIG5vdCBjaGFuZ2VkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIlcyAgJS42ZiBzZWd1bmR1XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAiRXogZGEgLS1kYXRlIGF1a2VyYXJpayB6ZWhhenR1LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1kYXRlIGFyZ3VtZW50IHRvbyBsb25nXG4iCittc2dzdHIgIi0tZGF0ZSBhcmd1bWVudHVhIGx1emVlZ2lhIGRhXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIkV6IGRhIC0tZGF0ZSBhdWtlcmFyaWsgemVoYXp0dS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQwCittc2dpZCAiVW5hYmxlIHRvIHJ1biAnZGF0ZScgcHJvZ3JhbSBpbiAvYmluL3NoIHNoZWxsLiBwb3BlbigpIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcG9uc2UgZnJvbSBkYXRlIGNvbW1hbmQgPSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjcgaHdjbG9jay9od2Nsb2NrLmM6ODA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIHNldHRpbWVvZmRheTpcbiIKK21zZ3N0ciAic2V0dGltZW9mZGF5KCktZWsgaHV0cyBlZ2luIGR1IgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMwIGh3Y2xvY2svaHdjbG9jay5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0MiBod2Nsb2NrL2h3Y2xvY2suYzo4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSBzdXBlcnVzZXIgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDUgaHdjbG9jay9od2Nsb2NrLmM6ODIzCittc2dpZCAic2V0dGltZW9mZGF5KCkgZmFpbGVkIgorbXNnc3RyICJzZXR0aW1lb2ZkYXkoKS1layBodXRzIGVnaW4gZHUiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc4MQorIywgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNsb2NrIGRyaWZ0ZWQgJS4xZiBzZWNvbmRzIGluIHRoZSBwYXN0ICVkIHNlY29uZHMgaW4gc3BpdGUgb2YgYSBkcmlmdCBmYWN0b3IgIgorIm9mICVmIHNlY29uZHMvZGF5LlxuIgorIkFkanVzdGluZyBkcmlmdCBmYWN0b3IgYnkgJWYgc2Vjb25kcy9kYXlcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkIHRvIGluc2VydCAlZCBzZWNvbmRzIGFuZCByZWZlciB0aW1lIGJhY2sgJS42ZiBzZWNvbmRzIGFnb1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgdXBkYXRpbmcgYWRqdGltZSBmaWxlIGJlY2F1c2Ugb2YgdGVzdGluZyBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV291bGQgaGF2ZSB3cml0dGVuIHRoZSBmb2xsb3dpbmcgdG8gJXM6XG4iCisiJXMiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ291bGQgbm90IG9wZW4gZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgaW4gaXQgKCVzKSBmb3IgIgorIndyaXRpbmciCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwNiBod2Nsb2NrL2h3Y2xvY2suYzoxMDExCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgKCVzKSBpbiBpdCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRyaWZ0IGFkanVzdG1lbnQgcGFyYW1ldGVycyBub3QgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBhZGp1c3QgaXQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA4OQorIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkZWQgYWRqdXN0bWVudCBpcyBsZXNzIHRoYW4gb25lIHNlY29uZCwgc28gbm90IHNldHRpbmcgY2xvY2suXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyAlcy5cbiIKK21zZ3N0ciAiJXMgZXJhYmlsdHplblxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTIyMSBod2Nsb2NrL2h3Y2xvY2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGdldCB0aGUgZXBvY2ggdmFsdWUgZnJvbSB0aGUga2VybmVsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2VybmVsIGlzIGFzc3VtaW5nIGFuIGVwb2NoIHZhbHVlIG9mICVsdVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIHNldCB0aGUgZXBvY2ggdmFsdWUsIHlvdSBtdXN0IHVzZSB0aGUgJ2Vwb2NoJyBvcHRpb24gdG8gdGVsbCB0byB3aGF0ICIKKyJ2YWx1ZSB0byBzZXQgaXQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyB0aGUgZXBvY2ggdG8gJWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyOTAgbWlzYy11dGlscy9jYWwuYzozNDcgbWlzYy11dGlscy9raWxsLmM6MTg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiVzLShlKXRpayByZW5pY2UtZWFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaHdjbG9jayAtIHF1ZXJ5IGFuZCBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIChSVEMpXG4iCisiXG4iCisiVXNhZ2U6IGh3Y2xvY2sgW2Z1bmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGdW5jdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHNob3cgdGhpcyBoZWxwXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgdGhlIHJ0YyB0byB0aGUgdGltZSBnaXZlbiB3aXRoIC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBhZGp1c3QgdGhlIHJ0YyB0byBhY2NvdW50IGZvciBzeXN0ZW1hdGljIGRyaWZ0IHNpbmNlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgcHJpbnQgb3V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICBzZXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlIHRvIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHByaW50IG91dCB0aGUgdmVyc2lvbiBvZiBod2Nsb2NrIHRvIHN0ZG91dFxuIgorIlxuIgorIk9wdGlvbnM6IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICBzcGVjaWFsIC9kZXYvLi4uIGZpbGUgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdFxuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICBhY2Nlc3MgdGhlIElTQSBidXMgZGlyZWN0bHkgaW5zdGVhZCBvZiAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorIiAgICAgICAtLWRhdGUgICAgICAgICBzcGVjaWZpZXMgdGhlIHRpbWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLWVwb2NoPXllYXIgICBzcGVjaWZpZXMgdGhlIHllYXIgd2hpY2ggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZG8gbm90IGFjY2VzcyAvZXRjL2FkanRpbWUuIFJlcXVpcmVzIHRoZSB1c2Ugb2ZcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICBkbyBldmVyeXRoaW5nIGV4Y2VwdCBhY3R1YWxseSB1cGRhdGluZyB0aGUgaGFyZHdhcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBkZWJ1ZyBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdGFrZXMgbm8gbm9uLW9wdGlvbiBhcmd1bWVudHMuICBZb3Ugc3VwcGxpZWQgJWQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgc3BlY2lmaWVkIG11bHRpcGxlIGZ1bmN0aW9ucy5cbiIKKyJZb3UgY2FuIG9ubHkgcGVyZm9ybSBvbmUgZnVuY3Rpb24gYXQgYSB0aW1lLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS11dGMgYW5kIC0tbG9jYWx0aW1lIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSBzcGVjaWZpZWQgIgorImJvdGguXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU3MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkanVzdCBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqZmlsZSBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2suXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyNAorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIFN5c3RlbSBDbG9jay5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIGluIHRoZSAiCisia2VybmVsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB0aGUgSGFyZHdhcmUgQ2xvY2sgdmlhIGFueSBrbm93biBtZXRob2QuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tIEtER0hXQ0xLIHRvIGNoYW5nZVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2sva2QuYzo1NworbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2sva2QuYzo4MiBod2Nsb2NrL3J0Yy5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIGZhaWxlZCB0byByZWFkIHRpbWUgZnJvbSAlcyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICJpb2N0bCBLRFNIV0NMSy1layBodXRzIGVnaW4gZHUiCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjE4MAorbXNnaWQgIktER0hXQ0xLIGlvY3RsIGZhaWxlZCIKK21zZ3N0ciAiS0RHSFdDTEsgaW9jdGwtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBod2Nsb2NrL3J0Yy5jOjE0NyBod2Nsb2NrL3J0Yy5jOjI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuKCkgb2YgJXMgZmFpbGVkIgorbXNnc3RyICIlcy0ocillbmdhbiBvcGVuKCkgZWdpdGVhayBodXRzIGVnaW4gZHUiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gcmVhZCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gJXMgdG8gY2hhbmdlXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoyNTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzIGRvZXMgbm90IGhhdmUgaW50ZXJydXB0IGZ1bmN0aW9ucy4gIgorbXNnc3RyICIiCisiXG4iCisiRXogZGEgc3dhcCBwYXJ0aXppb3JpayBleGlzdGl0emVuLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkKCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoJXMpIHdhcyBzdWNjZXNzZnVsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICIlcy0oZSlyZW4gaXJla2llcmFrIGh1dHMgZWdpbiBkdSIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDE1IGh3Y2xvY2svcnRjLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJFemluIGRhICVzIGlyZWtpIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIndlIGhhdmUgcmVhZCBlcG9jaCAlbGQgZnJvbSAlcyB3aXRoIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlcG9jaCB2YWx1ZSBtYXkgbm90IGJlIGxlc3MgdGhhbiAxOTAwLiAgWW91IHJlcXVlc3RlZCAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZXR0aW5nIGVwb2NoIHRvICVsZCB3aXRoIFJUQ19FUE9DSF9TRVQgaW9jdGwgdG8gJXMuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwgZGV2aWNlIGRyaXZlciBmb3IgJXMgZG9lcyBub3QgaGF2ZSB0aGUgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBleGVjICVzOiAlbSIKK21zZ3N0ciAiJXM6IGV6aW4gZGEgJXMtKHIpZW5nYW4gZXhlYyBlZ2luOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCisjLCBmdXp6eQorbXNnaWQgImNhbid0IG1hbGxvYyBpbml0c3RyaW5nIgorbXNnc3RyICJlcnJvcmVhOiBtYWxsb2MtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo0NDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAicmVuaWNlOiAlczogYmFsaW8gb2tlcnJhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgc3BlZWQ6ICVzIgorbXNnc3RyICJhYmlhZHVyYSBva2VycmE6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKKyMsIGZ1enp5Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAib3JyaSB0eGFyIGdlaGllZ2kiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIi9kZXY6IGNoZGlyKCktZWsgaHV0cyBlZ2luIGR1OiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IGNhbm5vdCBvcGVuIGFzIHN0YW5kYXJkIGlucHV0OiAlbSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBvcGVuIGZvciByZWFkL3dyaXRlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZHVwIHByb2JsZW06ICVtIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICJlcmFiaWx0emFpbGVhIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlcnMiCittc2dzdHIgImVyYWJpbHR6YWlsZWFrIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiJXM6IGlyYWt1cnJpOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTA3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlucHV0IG92ZXJydW4iCittc2dzdHIgInNhcnJlcmEgb2tlcnJhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MgorbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgdHR5Y2xhc3MiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTMKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTMzIGxvZ2luLXV0aWxzL2Noc2guYzoxMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHlvdSAodXNlciAlZCkgZG9uJ3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0MCBsb2dpbi11dGlscy9jaHNoLmM6MTI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJFeiBkYSBzd2FwIHBhcnRpemlvcmlrIGV4aXN0aXR6ZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NiBsb2dpbi11dGlscy9jaHNoLmM6MTQyCisjLCBmdXp6eQorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICJyZW5pY2U6ICVzOiBlcmFiaWx0emFpbGUgZXplemFndW5hXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgZmluZ2VyIGluZm8gb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTY0IGxvZ2luLXV0aWxzL2Noc2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBkZWZhdWx0IGNvbnRleHQgZm9yIC9ldGMvcGFzc3dkIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZmluZ2VyIGluZm9ybWF0aW9uIGZvciAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTg5IGxvZ2luLXV0aWxzL2Noc2guYzoxODggbG9naW4tdXRpbHMvbG9naW4uYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFBBTSBmYWlsdXJlLCBhYm9ydGluZzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjEyIGxvZ2luLXV0aWxzL2Noc2guYzoyMTEgbG9naW4tdXRpbHMvbG9naW4uYzo4MjcKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjc5IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDAgbW91bnQvbG9tb3VudC5jOjc0MgorIzogbW91bnQvbG9tb3VudC5jOjc0NQorbXNnaWQgIlBhc3N3b3JkOiAiCittc2dzdHIgIlBhc2FoaXR6YTogIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjE1IGxvZ2luLXV0aWxzL2Noc2guYzoyMTQKK21zZ2lkICJJbmNvcnJlY3QgcGFzc3dvcmQuIgorbXNnc3RyICJQYXNhaGl0eiBva2VycmEuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlsgLXAgb2ZmaWNlLXBob25lIF1cbiIKKyJcdFsgLWggaG9tZS1waG9uZSBdICIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiQnVsZWdvYSIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OQorbXNnaWQgIk9mZmljZSBQaG9uZSIKK21zZ3N0ciAiQnVsZWdva28gdGVsZWZvbm8gemVuYmFraWEiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozODAKK21zZ2lkICJIb21lIFBob25lIgorbXNnc3RyICJFdHhla28gdGVsZWZvbm8gemVuYmFraWEiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkFib3J0YXR1YS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAiZXJlbXVhIGx1emVlZ2lhIGRhLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiclYycgZXogZGFnbyBvbmFydHV0YS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIGNoYW5nZWQuXG4iCittc2dzdHIgIklydGV0ZW4gLSBleiBkYSBlemVyIGFsZGF0dVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogWW91ciBzaGVsbCBpcyBub3QgaW4gL2V0Yy9zaGVsbHMsIHNoZWxsIGNoYW5nZSBkZW5pZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBzaGVsbCBmb3IgJXMuXG4iCittc2dzdHIgIiVzLShyKWVuIHBhcnRpemlvIHRhdWxhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjIKKyMsIGZ1enp5Cittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJFZ29lcmEgYmVycmlhOlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiSXJ0ZXRlbiAtIGV6IGRhIGV6ZXIgYWxkYXR1XG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBjaGFuZ2VkLlxuIgorbXNnc3RyICJJcnRldGVuIC0gZXogZGEgZXplciBhbGRhdHVcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1c2VybmFtZSBdXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM0OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2hlbGwgbXVzdCBiZSBhIGZ1bGwgcGF0aCBuYW1lLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgImZzY2s6ICVzOiBleiBkYSBhdXJraXR1XG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGV4ZWN1dGFibGUuXG4iCittc2dzdHIgIiclYycgZXogZGFnbyBvbmFydHV0YS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiclYycgZXogZGFnbyBvbmFydHV0YS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc1IGxvZ2luLXV0aWxzL2Noc2guYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIltFcmFiaWxpIHEgZWRvIFEgaXJ0ZXRla29dIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6NDA2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJObyBrbm93biBzaGVsbHMuXG4iCittc2dzdHIgIkV6IGRhZ28gcGFydGl6aW8gdGF1bGFyaWsuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2lzbG9jYWwuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZywgZXhpdGluZy4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozMDIKKyMsIGZ1enp5Cittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIk1hcmthdHUgZXJhYmlsaWEgZGFnb2VsYSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInd0bXAgYmVnaW5zICVzIgorbXNnc3RyICJQYXJ0aXppb2EgMCBzZWt0b3JlYSBiYWluYSBsZWhlbmFnbyBoYXN0ZW4gZGEiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozODAgbG9naW4tdXRpbHMvbGFzdC5jOjM5OCBsb2dpbi11dGlscy9sYXN0LmM6NDQ5CisjLCBmdXp6eQorbXNnaWQgImxhc3Q6IG1hbGxvYyBmYWlsdXJlLlxuIgorbXNnc3RyICJlcnJvcmVhOiBtYWxsb2MtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1CisjLCBmdXp6eQorbXNnaWQgImxhc3Q6IGdldGhvc3RuYW1lIgorbXNnc3RyICIgICAgICAgICAgICAgICBMZWhlbmEgICAgIEF6a2VuYVxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiBjYW4ndCByZW9wZW4gdHR5OiAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogJXMgaXMgbm90IGEgdGVybWluYWwiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMzgKKyMsIGZ1enp5Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgImZpdHhhdGVnaSBsdXplZXJhIG9rZXJyYSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvZ2luIFstZnBdIFt1c2VybmFtZV1cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU3OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgaW5pdGlhbGl6ZSBQQU06ICVzIgorbXNnc3RyICJodXRzIGVnaW4gZGEgbGVycm8gYnVmZmVyLWEgaGFzaWVyYXR6ZW5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1OTUKK21zZ2lkICJsb2dpbjogIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiUGFzYWhpdHogb2tlcnJhLiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIlBhc2FoaXR6IG9rZXJyYS4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkwIGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk3IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5VTEwgdXNlciBuYW1lIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB1c2VyIG5hbWUgXCIlc1wiIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3MTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIm1lbW9yaWF0aWsga2FucG8iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzYxCisjLCBmdXp6eQorbXNnaWQgIklsbGVnYWwgdXNlcm5hbWUiCittc2dzdHIgIkJhbGlvZ2FiZWtvIHRla2xhIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb2dpbiByZWZ1c2VkIG9uIHRoaXMgdGVybWluYWwuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjg2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIlBhc2FoaXR6IG9rZXJyYS4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRElBTFVQIEFUICVzIEJZICVzIgorbXNnc3RyICIlcy0ocillbiBkaXNrbyBldGlrZXRhIGlyYWt1cnR6ZW4gJWQgc2VrdG9yZWFuLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwNQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyBGUk9NICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIiAgICAgICAgZGlza28gZ3V6dGlhbi4gIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbmV3IG1haWwuXG4iCittc2dzdHIgIlBvc3RhIGVsZWt0cm9uaWtvIGJlcnJpYSBkdXp1LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjIyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAic3RhdC1layBodXRzIGVnaW4gZHU6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjgKK21zZ2lkICJzZXR1aWQoKSBmYWlsZWQiCittc2dzdHIgInNldHVpZCgpLWsgaHV0cyBlZ2luIGR1IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk5vIGRpcmVjdG9yeSAlcyFcbiIKK21zZ3N0ciAiPGk+IChleiBkYWdvIGlyYWRva2l6dW5paykgPC9pPiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2dpbmcgaW4gd2l0aCBob21lID0gXCIvXCIuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBtZW1vcnkgZm9yIHNoZWxsIHNjcmlwdC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGNvdWxkbid0IGV4ZWMgc2hlbGwgc2NyaXB0OiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgIkV6IGRhZ28gcGFydGl6aW8gdGF1bGFyaWsuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJXMgbG9naW46ICIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMworbXNnaWQgIk5BTUUgdG9vIGxvbmciCittc2dzdHIgIklaRU5BIGx1emVlZ2lhIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoICctJy5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IGJhcmUgbGluZWZlZWRzLlxuIgorbXNnc3RyICJvcnJpIHR4YXIgZ2VoaWVnaSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIxCittc2dpZCAiRVhDRVNTSVZFIGxpbmVmZWVkcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgbG9naW46ICUuKnMgIgorbXNnc3RyICIgICAgICAgICAgICAgICBMZWhlbmEgICAgIEF6a2VuYVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZyb20gJS4qc1xuIgorbXNnc3RyICIlcy0oZSl0aWsgcmVuaWNlLWVhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib24gJS4qc1xuIgorbXNnc3RyICIgICAgICAgIGRpc2tvIGd1enRpYW4uICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBGUk9NICVzLCAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIE9OICVzLCAlcyIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICIlcyBtb250YXR1YSBkYWdvLlx0IgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlzIG5cbiIKK21zZ3N0ciAiJXMgbW9udGF0dWEgZGFnby5cdCIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IG1lc2cgW3kgfCBuXVxuIgorbXNnc3RyICJlcmFiaWxlcmE6ICVzIFsgLW5dIGdhaWx1YVxuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo5OQorbXNnaWQgIm5ld2dycDogV2hvIGFyZSB5b3U/IgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEwNyBsb2dpbi11dGlscy9uZXdncnAuYzoxMjEKK21zZ2lkICJuZXdncnA6IHNldGdpZCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMTQgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE2Cittc2dpZCAibmV3Z3JwOiBObyBzdWNoIGdyb3VwLiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMjUKK21zZ2lkICJuZXdncnA6IFBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4CisjLCBmdXp6eQorbXNnaWQgIk5vIHNoZWxsIgorbXNnc3RyICI8aT4gKGV6IGRhZ28gaXJhZG9raXp1bmlrKSA8L2k+IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjEzNAorbXNnaWQgIlNodXRkb3duIHByb2Nlc3MgYWJvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMTAKKyMsIGZ1enp5Cittc2dpZCAiZm9yIG1haW50ZW5hbmNlOyBib3VuY2UsIGJvdW5jZSIKK21zZ3N0ciAiJXMtKHIpZW4gcGFydGl6aW8gdGF1bGFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMzkKK21zZ2lkICJUaGUgc3lzdGVtIGlzIGJlaW5nIHNodXQgZG93biB3aXRoaW4gNSBtaW51dGVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzQzCittc2dpZCAiTG9naW4gaXMgdGhlcmVmb3JlIHByb2hpYml0ZWQuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY1CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYm9vdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoYWx0ZWQgYnkgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDMyCittc2dpZCAiIgorIlxuIgorIldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgImVycm9yZWE6IG1hbGxvYy1layBodXRzIGVnaW4gZHUiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGV4ZWN1dGluZ1x0JXNcbiIKK21zZ3N0ciAiY3JjIGVycm9yZWEiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgaG91cnMgJWQgbWludXRlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBtaW51dGVzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBtaW51dGVcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICJcdC4uLiAlcyAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzgKK21zZ2lkICJDYW5ub3QgZXhlYyBzd2Fwb2ZmLCBob3BpbmcgdW1vdW50IHdpbGwgZG8gdGhlIHRyaWNrLiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU5NworbXNnaWQgIkNhbm5vdCBmb3JrIGZvciB1bW91bnQsIHRyeWluZyBtYW51YWxseS4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGV4ZWMgJXMsIHRyeWluZyB1bW91bnQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTAKK21zZ2lkICJDYW5ub3QgZXhlYyB1bW91bnQsIGdpdmluZyB1cCBvbiB1bW91bnQuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjE1Cittc2dpZCAiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzMgorbXNnaWQgIkJvb3RpbmcgdG8gc2luZ2xlIHVzZXIgbW9kZS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTM2Cittc2dpZCAiZXhlYyBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTQwCittc2dpZCAiZm9yayBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjA4CisjLCBmdXp6eQorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICJlcnJvcmVhOiBtYWxsb2MtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjEyCittc2dpZCAiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjU5CisjLCBmdXp6eQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImVycm9yZWE6IG1hbGxvYy1layBodXRzIGVnaW4gZHUiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNjMKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAiZXJyb3JlYTogbWFsbG9jLWVrIGh1dHMgZWdpbiBkdSIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0NQorbXNnaWQgIiIKKyJcbiIKKyJXcm9uZyBwYXNzd29yZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlBhc2FoaXR6IG9rZXJyYS5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorIywgZnV6enkKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICIlczogZ2V0IHNpemUgZWdpdGVyYWtvYW4gaHV0cyBlZ2luIGRhIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2CisjLCBmdXp6eQorbXNnaWQgInN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAiJXM6IGdldCBzaXplIGVnaXRlcmFrb2FuIGh1dHMgZWdpbiBkYSIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQzNAorIywgZnV6enkKK21zZ2lkICJvcGVuIG9mIGRpcmVjdG9yeSBmYWlsZWRcbiIKK21zZ3N0ciAiJXM6IGdldCBzaXplIGVnaXRlcmFrb2FuIGh1dHMgZWdpbiBkYSIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwMQorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwYXduaW5nOiBcIiVzXCIgdG9vIGZhc3Q6IHF1ZW5jaGluZyBlbnRyeVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDkKK21zZ2lkICJmb3JrIGZhaWxlZFxuIgorbXNnc3RyICJmb3JrLWVrIGh1dHMgZWdpbiBkdVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTQwIHRleHQtdXRpbHMvbW9yZS5jOjE2NjMKK21zZ2lkICJleGVjIGZhaWxlZFxuIgorbXNnc3RyICJleGVjLWVrIGh1dHMgZWdpbiBkdVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0CisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAiRXppbiBkYSAnJXMnIGZpdHhhdGVnaWEgaXJla2kiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo2MzEKK21zZ2lkICJubyBURVJNIG9yIGNhbm5vdCBzdGF0IHR0eVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5MzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJlcnJvcmVhOiBtYWxsb2MtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAiR2VsZGl0dXRha28gZ2FpbHVhOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJlcnJvcmVhOiBtYWxsb2MtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIKK21zZ3N0ciAiaGV4ZHVtcDogbGVycm9hIGx1emVlZ2lhIGRhLlxuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgImV6aW4gZGEgZm9yayBlZ2luIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZm9yazogJXMiCittc2dzdHIgImZvcms6ICVzIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgImNyYyBlcnJvcmVhIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgcGFzc3dvcmQgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBncm91cCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBsaW5rICVzOiAlc1xuIgorbXNnc3RyICIlczogZXppbiBkYSAlcyBlc3Rla2F0dTogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCB1bmxvY2sgJXM6ICVzICh5b3VyIGNoYW5nZXMgYXJlIHN0aWxsIGluICVzKVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiVzOiBlemluIGRhIGZvcmsgZWdpblxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjk3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gY2hhbmdlcyBtYWRlXG4iCittc2dzdHIgIkV6IGRhZ28gcGFydGl6aW8gdGF1bGFyaWsuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgZ3JvdXBzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV291bGQgeW91IGxpa2UgdG8gZWRpdCAlcyBub3cgW3kvbl0/ICIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbZmlsZV1cbiIKK21zZ3N0ciAiZXJhYmlsZXJhOiAlcyBbZml0eGF0ZWdpYV1cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgImV6aW4gZGEgJXMgYHRpbWluZycgZml0eGF0ZWdpYSBpcmVraSIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IGV6aW4gZGEgJXMgIGlyYWt1cnJpLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICJlemluIGRhIGJhZGJsb2NrcyBmaXR4YXRlZ2lhIGlyYWt1cnJpIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2NCBtaXNjLXV0aWxzL2NhbC5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgImJhbGlvZ2FiZWtvIGVndW4gYmFsb3JlYTogZXJhYmlsaSAxLSVkIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzcyCittc2dpZCAiaWxsZWdhbCB5ZWFyIHZhbHVlOiB1c2UgMS05OTk5IgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6NDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsrZm9ybWF0XSBbZGF5IG1vbnRoIHllYXJdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorIywgZnV6enkKK21zZ2lkICJTdC4gVGliJ3MgRGF5IgorbXNnc3RyICJiYWxpb2dhYmVrbyBlZ3VuIGJhbG9yZWE6IGVyYWJpbGkgMS0lZCIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgTEFCRUw9PGxhYmVsPnxVVUlEPTx1dWlkPlxuIgorbXNnc3RyICJFcmFiaWxlcmE6ICVzIExBQkVMPTxldGlrZXRhPnxVVUlEPTx1dWlkPlxuIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcmVzb2x2ZSAnJXMnIgorbXNnc3RyICJlemluIGRpcmEgYm9vdGJpdCBzZWt0b3JlYWsgZXphYmF0dSIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlc1xuIgorbXNnc3RyICIlczogJXMgc2VpbmFsZSBlemV6YWd1bmFcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIHByb2Nlc3MgXCIlc1wiXG4iCittc2dzdHIgIiVzOiBlemluIGRhIFwiJXNcIiBwcm96ZXN1YSBhdXJraXR1XG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjMxNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXM7IHZhbGlkIHNpZ25hbHM6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKK21zZ3N0ciAiZXJhYmlsZXJhOiAlcyBbIC1zIHNlaW5hbGVhIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjY3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgInNvY2tldDogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiAlczogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIGZhY2lsaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBwcmlvcml0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6IGxvZ2dlciBbLWlzXSBbLWYgZmlsZV0gWy1wIHByaV0gWy10IHRhZ10gWy11IHNvY2tldF0gWyBtZXNzYWdlIC4uLiBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb29rLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb29rIFstZGZhXSBbLXQgY2hhcl0gc3RyaW5nIFtmaWxlXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwNSBtaXNjLXV0aWxzL21jb29raWUuYzoxMzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzXG4iCittc2dzdHIgIkV6aW4gZGEgJyVzJyBmaXR4YXRlZ2lhIGlyZWtpIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDkgbWlzYy11dGlscy9tY29va2llLmM6MTI4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0Cittc2dpZCAib3V0IG9mIG1lbW9yeT8iCittc2dzdHIgIm1lbW9yaWF0aWsga2FucG8/IgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCBzeW1saW5rOiAlcyIKK21zZ3N0ciAiaHV0cyBlZ2luIGRhIGxlcnJvIGJ1ZmZlci1hIGhhc2llcmF0emVuXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyMzEgbWlzYy11dGlscy9uYW1laS5jOjI1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IHN0YXQgJyVzJyIKK21zZ3N0ciAiZnNjazogJXM6IGV6IGRhIGF1cmtpdHVcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gcGF0aG5hbWUgW3BhdGhuYW1lIC4uLl1cbiIKK21zZ3N0ciAiRXJhYmlsZXJhOiAlcyBbYXVrZXJha10gZ2FpbHVhIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgbmFtZWkoMSkuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQ6ICVzIgorbXNnc3RyICJodXRzIGVnaW4gZGEgbGVycm8gYnVmZmVyLWEgaGFzaWVyYXR6ZW5cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUzMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXhjZWVkZWQgbGltaXQgb2Ygc3ltbGlua3MiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzozOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiJXM6IE1lbW9yaWF6IGthbnBvIVxuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICJodXRzIGVnaW4gZGEgbGVycm8gYnVmZmVyLWEgaGFzaWVyYXR6ZW5cbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYWxsOiAlcyBmcm9tIHRvIGZpbGVzLi4uXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGAlcycgaXMgYSBsaW5rLlxuIgorIlVzZSBgJXMgW29wdGlvbnNdICVzJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LlxuIgorIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2ZpbGVdXG4iCittc2dzdHIgImVyYWJpbGVyYTogc2NyaXB0LWEgWy1hXSBbLWZdIFstcV0gWy10XSBbZml0eGF0ZWdpYV1cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjI0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yICVkOiAlc1xuIgorbXNnc3RyICJjcmMgZXJyb3JlYSIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkIG9uICVzIgorbXNnc3RyICIgICAgICAgIGRpc2tvIGd1enRpYW4uICIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIKK21zZ3N0ciAiY3JjIGVycm9yZWEiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2NyaXB0IGRvbmUgb24gJXMiCittc2dzdHIgIiAgICAgICAgZGlza28gZ3V6dGlhbi4gIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzNworIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgZG9uZSwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvcGVucHR5IGZhaWxlZFxuIgorbXNnc3RyICJzdGF0LWVrIGh1dHMgZWdpbiBkdTogJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgcHR5J3NcbiIKK21zZ3N0ciAiJXM6IE1lbW9yaWF6IGthbnBvIVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjM4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyA8dGltaW5nZmlsZT4gWzx0eXBlc2NyaXB0PiBbPGRpdmlzb3I+XV1cbiIKK21zZ3N0ciAiZXppbiBkYSAlcyBgdHlwZXNjcmlwdCcgZml0eGF0ZWdpYSBpcmVraSIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJleHBlY3RlZCBhIG51bWJlciwgYnV0IGdvdCAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTYgbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXZpc29yICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMDQKK21zZ2lkICJ3cml0ZSB0byBzdGRvdXQgZmFpbGVkIgorbXNnc3RyICJodXRzIGVnaW4gZGEgc3Rkb3V0LWVyYSBpZGF6dGVuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiZXppbiBkYSAlcyBgdGltaW5nJyBmaXR4YXRlZ2lhIGlyZWtpIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgImV6aW4gZGEgJXMgYHR5cGVzY3JpcHQnIGZpdHhhdGVnaWEgaXJla2kiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY2CisjLCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBBcmd1bWVudCBlcnJvciwgdXNhZ2VcbiIKK21zZ3N0ciAiRXJhYmlsZXJhOiAlcyBbYXVrZXJha10gZ2FpbHVhIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlc2V0IF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgICAgICAgIGRpc2tvIGd1enRpYW4uICIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgICAgICAgIGRpc2tvIGd1enRpYW4uICIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODEgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgzCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgICAgICAgZGlza28gZ3V6dGlhbi4gIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgICAgICAgZGlza28gZ3V6dGlhbi4gIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICAgICAgICBkaXNrbyBndXp0aWFuLiAiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgICAgICAgIGRpc2tvIGd1enRpYW4uICIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RvcmUgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZHVtcCAgIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiKEh1cnJlbmdvIGZpdHhhdGVnaWE6ICVzKSIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgICAgICAgZGlza28gZ3V6dGlhbi4gIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxlbmd0aCBbMC0yMDAwXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIGJsYW5rXG4iCittc2dzdHIgIkV6aW4gZGEgJyVzJyBmaXR4YXRlZ2lhIGlyZWtpIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgdW5ibGFua1xuIgorbXNnc3RyICJFemluIGRhICclcycgZml0eGF0ZWdpYSBpcmVraSIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBibGFuayBzdGF0dXNcbiIKK21zZ3N0ciAiRXppbiBkYSBkaXNrb2FyZW4gdGFtYWludWEgbG9ydHUiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90ICh1bilzZXQgcG93ZXJzYXZlIG1vZGVcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTIyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMzAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImtsb2djdGwgZXJyb3I6ICVzXG4iCittc2dzdHIgImNyYyBlcnJvcmVhIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciB3cml0aW5nIHNjcmVlbmR1bXBcbiIKK21zZ3N0ciAiRGlza28gZXRpa2V0YSBpZGF6dGVuICVzLShlKXJpLlxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgInJlYWQtZWsgaHV0cyBlZ2luIGR1OiAlcyIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJFRFUk0gaXMgbm90IGRlZmluZWQuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWRdIFstcCBwaWRmaWxlXSBbLXMgc29ja2V0cGF0aF0gWy1UIHRpbWVvdXRdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyBbLXJ8dF0gWy1uIG51bV0gWy1zIHNvY2tldHBhdGhdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTIKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGFyZ3VtZW50cyIKK21zZ3N0ciAic2FycmVyYSBva2VycmFcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorbXNnaWQgInNvY2tldCIKK21zZ3N0ciAic29ja2V0IgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTcwCittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTg5Cittc2dpZCAid3JpdGUiCittc2dzdHIgImlkYXR6aSIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE5NworIywgZnV6enkKK21zZ2lkICJyZWFkIGNvdW50IgorbXNnc3RyICJyZWFkLWVrIGh1dHMgZWdpbiBkdTogJXMiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiYmFkIHJlc3BvbnNlIGxlbmd0aCIKK21zZ3N0ciAiZml0eGF0ZWdpIGx1emVlcmEgb2tlcnJhIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgInV1aWRkIGRhZW1vbiBhbHJlYWR5IHJ1bm5pbmcgYXQgcGlkICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBjcmVhdGUgdW5peCBzdHJlYW0gc29ja2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGJpbmQgdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsaXN0ZW4gb24gdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciByZWFkaW5nIGZyb20gY2xpZW50LCBsZW4gPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlcmF0aW9uICVkLCBpbmNvbWluZyBudW0gPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIiVzOiBiYWxpb2dhYmVrbyAlcyB0aW1lX3QgYmFsb3JlYVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgImVycm9yZWE6IFVVSURhIGlyYWt1cnR6ZWFuIGh1dHMgZWdpbiBkYSIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEICVzIGFuZCAlZCBmb2xsb3dpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICJ1dWlkLXJpayBlelxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb3BlcmF0aW9uICVkXG4iCittc2dzdHIgIiVkIGJhbGlvZ2FiZWtvIGVraW50emFcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2OCBtaXNjLXV0aWxzL3V1aWRkLmM6NDg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJCYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICJzYXJyZXJhIG9rZXJyYVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2FsbGluZyB1dWlkZCBkYWVtb24gKCVzKTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiZXJyb3JlYTogVVVJRGEgaXJha3VydHplYW4gaHV0cyBlZ2luIGRhIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICJVVUlEIHplcnJlbmRhOlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZXhwZWN0ZWQgcmVwbHkgbGVuZ3RoIGZyb20gc2VydmVyICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJFcmFiaWxlcmE6ICVzIFstcl0gWy10XVxuIgorCisjOiBtaXNjLXV0aWxzL3doZXJlaXMuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpciAuLi4gLWYgXSBuYW1lLi4uXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKK21zZ2lkICJjYWxsb2MgZmFpbGVkIgorbXNnc3RyICJjYWxsb2MtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE1MAorbXNnaWQgInN0cmR1cCBmYWlsZWQiCittc2dzdHIgInN0cmR1cC1layBodXRzIGVnaW4gZHUiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICIlczogZ2V0IHNpemUgZWdpdGVyYWtvYW4gaHV0cyBlZ2luIGRhIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IGFwcGVhcnMgdG8gY29udGFpbiAnJXMnIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBmb3VuZCBhIG1hZ2ljIHN0cmluZyBhdCBvZmZzZXQgMHglanggLSBpZ25vcmUuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gc2VlayB0byBvZmZzZXQgMHglangiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGZhaWxlZCIKK21zZ3N0ciAiICVzOiB3cml0ZS1rIGh1dHMgZWdpbiBkdSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXpkIGJ5dGVzIFsiCittc2dzdHIgIiV6ZCBieXRlIFsiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICIlczogb3Blbi1layBodXRzIGVnaW4gZHUiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgb2Zmc2V0ICclcycgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIkVyYWJpbGVyYTogJXMgW2F1a2VyYWtdIGdhaWx1YSAuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgd2lwZWZzKDgpLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6Mzg3Cittc2dpZCAiLS1vZmZzZXQgYW5kIC0tYWxsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogY2FuJ3QgZmluZCB5b3VyIHR0eSdzIG5hbWVcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiB5b3UgaGF2ZSB3cml0ZSBwZXJtaXNzaW9uIHR1cm5lZCBvZmYuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiB3cml0ZSB1c2VyIFt0dHldXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIGxvZ2dlZCBpbiBtb3JlIHRoYW4gb25jZTsgd3JpdGluZyB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIChhcyAlcykgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgImVycm9yZWE6IG1hbGxvYy1layBodXRzIGVnaW4gZHUiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTcyIG1vdW50L2ZzdGFiLmM6MTk3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAiRXppbiBkYSAnJXMnIGZpdHhhdGVnaWEgaXJla2kiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjb3VsZCBub3Qgb3BlbiAlcyAtIHVzaW5nICVzIGluc3RlYWRcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IGV6aW4gZGEgJXMgYmxva2VvIGZpdHhhdGVnaWEgaXJla2k6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXMiCittc2dzdHIgIiVzOiBlemluIGRhICVzIGJsb2tlbyBmaXR4YXRlZ2lhIGlyZWtpOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MworIywgZnV6enkKK21zZ2lkICJ0aW1lZCBvdXQiCittc2dzdHIgIiVzOiBNZW1vcmlheiBrYW5wbyFcbiIKKworIzogbW91bnQvZnN0YWIuYzo2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbGluayAlc1xuIgorIlBlcmhhcHMgdGhlcmUgaXMgYSBzdGFsZSBsb2NrIGZpbGU/XG4iCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzo3OTIgbW91bnQvZnN0YWIuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgKCVzKSAtIG10YWIgbm90IHVwZGF0ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzo4NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJjcmMgZXJyb3JlYSIKKworIzogbW91bnQvZnN0YWIuYzo4NzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzXG4iCittc2dzdHIgImVycm9yZWE6IG1hbGxvYy1layBodXRzIGVnaW4gZHUiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBvd25lciBvZiAlczogJXNcbiIKK21zZ3N0ciAiZXJyb3JlYTogbWFsbG9jLWVrIGh1dHMgZWdpbiBkdSIKKworIzogbW91bnQvZnN0YWIuYzo4OTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiR2VoaXR1IFwiJXNcIiBoaXp0ZWdpYXJpIgorCisjOiBtb3VudC9sb21vdW50LmM6MzYyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IHNldCBjYXBhY2l0eSBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlPFBSSXU2ND4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjM4OQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHNpemVsaW1pdCAlPFBSSXU2ND4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uICVzICh0eXBlICU8UFJJdTMyPikiCittc2dzdHIgIiAgdCAgICAgICAgICBBbGRhdHUgZml0eGF0ZWdpIHNpc3RlbWEgbW9ldGEiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiUGFydGl6aW8gbW9ldGEiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IG9wZW4gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJFemluIGRhICByYXcgZ2FpbHUgbmFndXNpYSBpcmVraSAnIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IC9kZXYgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LiIKK21zZ3N0ciAiIgorIlxuIgorIkV6IGRhIHN3YXAgcGFydGl6aW9yaWsgZXhpc3RpdHplbi5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ1OSBtb3VudC9sb21vdW50LmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGZyZWUgbG9vcCBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yIGBtb2Rwcm9iZSBsb29wJy4pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MzYKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoaWxlIHJlYWRpbmcgcGFzc3BocmFzZSIKK21zZ3N0ciAiTWVtb3JpYXoga2FucG8gcGFzYWhpdHphIGlyYWt1cnR6ZW4gemVuIGJpdGFydGVhbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlcyBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbG9jayBpbnRvIG1lbW9yeSwgZXhpdGluZy5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBjLWZvcm1hdAorbXNnaWQgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZWxfbG9vcCglcyk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAiTG9vcCBnYWlsdWEgJXMgZGFcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg0MAorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBkZWxldGUgZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwMzQgbW91bnQvbG9tb3VudC5jOjEwNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9vcCBkZXZpY2UgaXMgJXNcbiIKK21zZ3N0ciAiTG9vcCBnYWlsdWEgJXMgZGFcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RvbGVuIGxvb3A9JXMuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA3MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICIlczogJXM6IGdhaWx1YSBva3VwYXR1YSBkYWdvIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIgorbXNnc3RyICJHZWhpdHUgXCIlc1wiIGhpenRlZ2lhcmkiCisKKyM6IG1vdW50L21vdW50LmM6NTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlcyBmb3Igd3JpdGluZzogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo1ODEgbW91bnQvbW91bnQuYzoxMTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGVycm9yZWEgJXMgaWRhenRlbjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjY3MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo2NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBlemluIGRhIGZvcmsgZWdpbjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgYWxsIHR5cGVzIG1lbnRpb25lZCBpbiAlcyBvciAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIKK21zZ3N0ciAiICAgICAgICVzIG1vZXRhcmVraW4gc2FpYXR1a28gZGFcbiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDIKK21zZ2lkICJtb3VudCBmYWlsZWQiCittc2dzdHIgIm1vdW50LWVrIGh1dHMgZWdpbiBkdSIKKworIzogbW91bnQvbW91bnQuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTA3NAorbXNnaWQgIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMDc5Cittc2dpZCAibW91bnQ6IHR5cGUgc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2tpcHBpbmcgdGhlIHNldHVwIG9mIGEgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTExMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZ29pbmcgdG8gdXNlIHRoZSBsb29wIGRldmljZSAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgIkxvb3AgZ2FpbHVhICVzIGRhXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZmFpbGVkIHNldHRpbmcgdXAgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNldHVwIGxvb3AgZGV2aWNlIHN1Y2Nlc3NmdWxseVxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gJXMgZm91bmQgLSBjcmVhdGluZyBpdC4uXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGV6aW4gZGEgJXMgaXJla2k6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgb3BlbiAlcyBmb3Igc2V0dGluZyBzcGVlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHNwZWVkOiAlcyIKK21zZ3N0ciAiZXppbiBkYSBsZXJyb2FyZW4gZGlzemlwbGluYSBlemFycmkiCisKKyM6IG1vdW50L21vdW50LmM6MTMyMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogd2FybmluZzogJXMgc2VlbXMgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQxMworbXNnaWQgIiIKKyJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsIGFuZCBub25lIHdhcyBzcGVjaWZpZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDE2Cittc2dpZCAibW91bnQ6IHlvdSBtdXN0IHNwZWNpZnkgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudDogbW91bnQtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQyOQorbXNnaWQgIm1vdW50OiBtdXN0IGJlIHN1cGVydXNlciB0byB1c2UgbW91bnQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDMzIG1vdW50L21vdW50LmM6MTQzNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIG9rdXBhdHVhIGRhZ28iCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvciAlcyBidXN5IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiAlcyBtdW50YXUgcHVudHVhIGV6IGRhIGV4aXN0aXR6ZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgYSBzeW1ib2xpYyBsaW5rIHRvIG5vd2hlcmUiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdFxuIgorIiAgICAgICAoYSBwYXRoIHByZWZpeCBpcyBub3QgYSBkaXJlY3RvcnkpXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorIiAgICAgICBtaXNzaW5nIGNvZGVwYWdlIG9yIGhlbHBlciBwcm9ncmFtLCBvciBvdGhlciBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTAxCittc2dpZCAiIgorIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorIiAgICAgICBpbnN0ZWFkIG9mIHNvbWUgbG9naWNhbCBwYXJ0aXRpb24gaW5zaWRlPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTE0Cittc2dpZCAibW91bnQgdGFibGUgZnVsbCIKK21zZ3N0ciAibXVudGFpIHRhdWxhIGJldGV0YSIKKworIzogbW91bnQvbW91bnQuYzoxNTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogY2FuJ3QgcmVhZCBzdXBlcmJsb2NrIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAiRXJhYmlsZXJhOiAlcyBbYXVrZXJha10gZ2FpbHVhIC4uLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB1bmtub3duIGZpbGVzeXN0ZW0gdHlwZSAnJXMnIgorbXNnc3RyICJQYXJ0aXppbyB0YXVsYSBtb2V0YSBlemV6YWd1bmEiCisKKyM6IG1vdW50L21vdW50LmM6MTUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogcHJvYmFibHkgeW91IG1lYW50ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU0MgorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDUKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICd2ZmF0Jz8iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBoYXMgd3JvbmcgZGV2aWNlIG51bWJlciBvciBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSAobWF5YmUgdHJ5IGAtbyBsb29wJz8pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU3MgorbXNnaWQgImJsb2NrIGRldmljZSAiCittc2dzdHIgImJsb2tlIGdhaWx1YSIKKworIzogbW91bnQvbW91bnQuYzoxNTc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG1vdW50ICVzJXMgcmVhZC1vbmx5IgorbXNnc3RyICJlemluIGRhIGJhZGJsb2NrcyBmaXR4YXRlZ2lhIGlyYWt1cnJpIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkIGJ1dCBleHBsaWNpdCBgLXcnIGZsYWcgZ2l2ZW4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgcmVtb3VudCAlcyVzIHJlYWQtd3JpdGUsIGlzIHdyaXRlLXByb3RlY3RlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogJXMgZG9lcyBub3QgY29udGFpbiBTRUxpbnV4IGxhYmVscy5cbiIKKyIgICAgICAgWW91IGp1c3QgbW91bnRlZCBhbiBmaWxlIHN5c3RlbSB0aGF0IHN1cHBvcnRzIGxhYmVscyB3aGljaCBkb2VzIG5vdFxuIgorIiAgICAgICBjb250YWluIGxhYmVscywgb250byBhbiBTRUxpbnV4IGJveC4gSXQgaXMgbGlrZWx5IHRoYXQgY29uZmluZWRcbiIKKyIgICAgICAgYXBwbGljYXRpb25zIHdpbGwgZ2VuZXJhdGUgQVZDIG1lc3NhZ2VzIGFuZCBub3QgYmUgYWxsb3dlZCBhY2Nlc3MgdG9cbiIKKyIgICAgICAgdGhpcyBmaWxlIHN5c3RlbS4gIEZvciBtb3JlIGRldGFpbHMgc2VlIHJlc3RvcmVjb24oOCkgYW5kIG1vdW50KDgpLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTcxMAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiB0aGUgY29sb25cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgY2lmcyBiZWNhdXNlIG9mIHRoZSAvLyBwcmVmaXhcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKyJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKyIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKyJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKyJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKyJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKyJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IChlZmZlY3RpdmUgVUlEIGlzICVkKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjIyNzcKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjI4OAorbXNnaWQgIm5vdGhpbmcgd2FzIG1vdW50ZWQiCittc2dzdHIgImV6IGRhIGV6ZXIgbXVudGF0dSIKKworIzogbW91bnQvbW91bnQuYzoyMzA2IG1vdW50L21vdW50LmM6MjMzMgorbXNnaWQgIm1vdW50OiBubyBzdWNoIHBhcnRpdGlvbiBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IGZpbmQgJXMgaW4gJXMgb3IgJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiB3YXJuaW5nOiBubyBmaW5hbCBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTkKKyMsIGZ1enp5Cittc2dpZCAiOyByZXN0IG9mIGZpbGUgaWdub3JlZCIKK21zZ3N0ciAiRXppbiBkYSAnJXMnIGZpdHhhdGVnaWEgaXJla2kiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgImV6IGRhZ28gbmFoaWtvYSBtZW1vcmlhIgorCisjOiBtb3VudC9zd2Fwb24uYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICBMQUJFTCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgICAgVVVJRCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZGV2aWNlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZmlsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBmaWxlIHRvIGJlIHVzZWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstdl0gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZSBhbGwgc3dhcHNcbiIKKyIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGRpc2FibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0IgorbXNnc3RyICJFemluIGRhICclcycgZml0eGF0ZWdpYSBpcmVraSIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICJMaW51eCBzd2FwIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMjMKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAiZm9yay1layBodXRzIGVnaW4gZHUiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIzOQorbXNnaWQgImV4ZWN2IGZhaWxlZCIKK21zZ3N0ciAiZXhlY3YtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBtb3VudC9zd2Fwb24uYzoyNDcKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAid2FpdHBpZC1layBodXRzIGVnaW4gZHUiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbHNlZWsgZmFpbGVkIgorbXNnc3RyICIlczogbHNlZWstZWsgaHV0cyBlZ2luIGR1IgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBzaWduYXR1cmUgZmFpbGVkIgorbXNnc3RyICIlczogZ2V0IHNpemUgZWdpdGVyYWtvYW4gaHV0cyBlZ2luIGRhIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvdW5kIHN3YXAgc2lnbmF0dXJlOiB2ZXJzaW9uICVkLCBwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5Cittc2dpZCAiZGlmZmVyZW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgInNhbWUiCittc2dzdHIgImJlcmRpbmEiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgIiVzOiBzdGF0LWVrIGh1dHMgZWdpbiBkdSIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyAtIGl0IGFwcGVhcnMgdG8gaGF2ZSBob2xlcy4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBnZXQgc2l6ZSBmYWlsZWQiCittc2dzdHIgIiVzOiBnZXQgc2l6ZSBlZ2l0ZXJha29hbiBodXRzIGVnaW4gZGEiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDc4IG1vdW50L3N3YXBvbi5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBvbiAlc1xuIgorbXNnc3RyICIlcyAlcy0oZSktblxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvbiBmYWlsZWQiCittc2dzdHIgIiVzOiBzd2Fwb24tZWsgaHV0cyBlZ2luIGR1IgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmaW5kIHRoZSBkZXZpY2UgZm9yICVzIgorbXNnc3RyICIiCisiXG4iCisiQlNEIGV0aWtldGEgZ2FpbHVhcmVudHphdDogJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQwCittc2dpZCAiTm90IHN1cGVydXNlci4iCittc2dzdHIgIkV6IHphcmEgc3VwZXItZXJhYmlsdHphaWxlYSIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb2ZmIGZhaWxlZCIKK21zZ3N0ciAiJXM6IHN3YXBvZmYtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBtb3VudC9zd2Fwb24uYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyB1bnN1cHBvcnRlZCBwcm9ncmFtIG5hbWUgKG11c3QgYmUgJ3N3YXBvbicgb3IgJ3N3YXBvZmYnKS4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIC1mXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgInVtb3VudDogZXppbiBkYSBmb3JrIGVnaW46ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogaW52YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBleiBkYWdvIG1vbnRhdHV0YSIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1bW91bnQ6ICVzOiBkZXZpY2UgaXMgYnVzeS5cbiIKKyIgICAgICAgIChJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGFib3V0IHByb2Nlc3NlcyB0aGF0IHVzZVxuIgorIiAgICAgICAgIHRoZSBkZXZpY2UgaXMgZm91bmQgYnkgbHNvZig4KSBvciBmdXNlcigxKSkiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAidW1vdW50OiBleiBkYSAlcyBhdXJraXR1IgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1bW91bnQyLCB0cnlpbmcgdW1vdW50Li4uXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MjUyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgYnVzeSAtIHJlbW91bnRlZCByZWFkLW9ubHlcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb3VsZCBub3QgcmVtb3VudCAlcyByZWFkLW9ubHlcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoyNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdW1vdW50ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzozNjcKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBmaW5kIGxpc3Qgb2YgZmlsZXN5c3RlbXMgdG8gdW5tb3VudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzozOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ4NworbXNnaWQgIkNhbm5vdCB1bW91bnQgXCJcIlxuIgorbXNnc3RyICJFemluIGRhIFwiXCIgZGVzbW9udGF0dVxuIgorCisjOiBtb3VudC91bW91bnQuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIHVtb3VudCAlc1xuIgorbXNnc3RyICIlcyBkZXNtdW50YXR6ZW4gc2FpYXR6ZW5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCB1bW91bnQgJXMgLS0gJXMgaXMgbW91bnRlZCBvdmVyIGl0IG9uIHRoZSBzYW1lIHBvaW50LiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgJXMgaW4gbXRhYlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBtb3VudGVkIChhY2NvcmRpbmcgdG8gbXRhYikiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogaXQgc2VlbXMgJXMgaXMgbW91bnRlZCBtdWx0aXBsZSB0aW1lcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgaW4gdGhlIGZzdGFiIChhbmQgeW91IGFyZSBub3Qgcm9vdCkiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgbW91bnQgZGlzYWdyZWVzIHdpdGggdGhlIGZzdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiY2hydCAtIG1hbmlwdWxhdGUgcmVhbC10aW1lIGF0dHJpYnV0ZXMgb2YgYSBwcm9jZXNzLlxuIgorIlxuIgorIlNldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSA8cG9saWN5PiA8cHJpb3JpdHk+IHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJHZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIlxuIgorIlNjaGVkdWxpbmcgcG9saWNpZXM6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0ZJRk9cbiIKKyIgIC1pIHwgLS1pZGxlICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9SUiAoZGVmYXVsdClcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHBcbiIKKyIgIC1wIHwgLS1waWQgICAgICAgICAgIG9wZXJhdGUgb24gZXhpc3RpbmcgZ2l2ZW4gcGlkXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBzaG93IG1pbiBhbmQgbWF4IHZhbGlkIHByaW9yaXRpZXNcbiIKKyIgIC12IHwgLS12ZXJib3NlICAgICAgIGRpc3BsYXkgc3RhdHVzIGluZm9ybWF0aW9uXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd25cbiIKK21zZ3N0ciAiZXplemFndW5hXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIGF0dHJpYnV0ZXMiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTE1CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcHJpb3JpdHk6ICVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG1pbi9tYXggcHJpb3JpdHlcdDogJWQvJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgImZzY2s6ICVzOiBleiBkYSBhdXJraXR1XG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICJodXRzIGVnaW4gZGEgbGVycm8gYnVmZmVyLWEgaGFzaWVyYXR6ZW5cbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjI1Cittc2dpZCAiY3VycmVudCIKK21zZ3N0ciAidW5la29hIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzMKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHByaW9yaXR5IgorbXNnc3RyICJodXRzIGVnaW4gZGEgbGVycm8gYnVmZmVyLWEgaGFzaWVyYXR6ZW5cbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0MgorbXNnaWQgIm5ldyIKK21zZ3N0ciAiYmVycmlhIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXMiCittc2dzdHIgImh1dHMgZWdpbiBkYSAlcyBleGVrdXRhdHplbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo1NworbXNnaWQgImlvcHJpb19nZXQgZmFpbGVkIgorbXNnc3RyICJpb3ByaW8tZ2V0LWVrIGh1dHMgZWdpbiBkdSIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICJpb3ByaW8tc2V0LWVrIGh1dHMgZWdpbiBkdSIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisiXG4iCisiVXNhZ2U6XG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSA8Y29tbWFuZD4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBzY2hlZHVsaW5nIGNsYXNzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIDA6IG5vbmUsIDE6IHJlYWx0aW1lLCAyOiBiZXN0LWVmZm9ydCwgMzogaWRsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxMTAgc2NoZWR1dGlscy9pb25pY2UuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICJFemluIGRhICclcycgemVuYmFraWEgaXJha3VycmkiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTUxCittc2dpZCAiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3Igbm9uZSBjbGFzcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1OQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIGlkbGUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICJmaXR4YXRlZ2kgbHV6ZWVyYSBva2VycmEiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3Cittc2dpZCAiZXhlY3ZwIGZhaWxlZCIKK21zZ3N0ciAiZXhlY3ZwLWVrIGh1dHMgZWdpbiBkdSIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzoyNworIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBiZSByb290IHRvIHNldCB0aGUgQ3RybC1BbHQtRGVsIGJlaGF2aW91ci5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1IGFuZCB0aW1yb3V0IHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzICIKKyJpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBpbnRlcnZhbCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiQmFsaW9nYWJla28gemlsaW5kcm8gYmFsb3JlYWsiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJCYWxpb2dhYmVrbyB6aWxpbmRybyBiYWxvcmVhayIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJCYWxpb2dhYmVrbyB6aWxpbmRybyBiYWxvcmVhayIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXEgWy1pIGludGVydmFsXV0gKFstcyB2YWx1ZV18Wy1TIHZhbHVlXSkgKFstdCB2YWx1ZV18Wy1UIHZhbHVlXSkgIgorIlstZ3wtR10gZmlsZSBbZmlsZS4uLl1cbiIKK21zZ3N0ciAiZXJhYmlsZXJhOiB6dXRhYmVhIFstdHhdIFstYyB6dXRhYmVha10gW2ZpdHhhdGVnaWEgLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjUwIHN5cy11dGlscy9jeXR1bmUuYzoyNjkgc3lzLXV0aWxzL2N5dHVuZS5jOjI4OQorIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJFemluIGRhICVzIGlyZWtpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGltZSB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwMCBzeXMtdXRpbHMvY3l0dW5lLmM6MzU3IHN5cy11dGlscy9jeXR1bmUuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRpbWVvdXQgZm9yICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMjcKK21zZ2lkICJDYW4ndCBzZXQgc2lnbmFsIGhhbmRsZXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAiZ2V0dGltZW9mZGF5LWVrIGh1dHMgZWdpbiBkdSIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjM0NCBzeXMtdXRpbHMvY3l0dW5lLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGlzc3VlIENZR0VUTU9OIG9uICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYyAoY2hhci9zZWMpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2RtZXNnLmM6NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJFcmFiaWxlcmE6ICVzIFstY10gWy1uIG1haWxhXSBbLXJdIFstcyBidWZmZXItYXJlbiB0YW1haW51YV1cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxmaWxlbmFtZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLWtlZXAtc2l6ZSAgICAgZG9uJ3QgbW9kaWZ5IHRoZSBsZW5ndGggb2YgdGhlIGZpbGVcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCisiIC1sLCAtLWxlbmd0aCA8bnVtPiAgbGVuZ3RoIG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3CisjLCBmdXp6eQorbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgIkV6IGRhIC0tZGF0ZSBhdWtlcmFyaWsgemVoYXp0dS5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0OQorbXNnaWQgImludmFsaWQgbGVuZ3RoIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKKyMsIGZ1enp5Cittc2dpZCAibm8gZmlsZW5hbWUgc3BlY2lmaWVkLiIKK21zZ3N0ciAiRXogZGEgLS1kYXRlIGF1a2VyYXJpayB6ZWhhenR1LlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTczCittc2dpZCAia2VlcCBzaXplIG1vZGUgKC1uIG9wdGlvbikgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAiJXM6IGZhbGxvY2F0ZS1rIGh1dHMgZWdpbiBkdSIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlMSRzIFstc3h1bl1bLXcgI10gZmQjXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBmaWxlIFstY10gY29tbWFuZC4uLlxuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZGlyZWN0b3J5IFstY10gY29tbWFuZC4uLlxuIgorIiAgLXMgIC0tc2hhcmVkICAgICBHZXQgYSBzaGFyZWQgbG9ja1xuIgorIiAgLXggIC0tZXhjbHVzaXZlICBHZXQgYW4gZXhjbHVzaXZlIGxvY2tcbiIKKyIgIC11ICAtLXVubG9jayAgICAgUmVtb3ZlIGEgbG9ja1xuIgorIiAgLW4gIC0tbm9uYmxvY2sgICBGYWlsIHJhdGhlciB0aGFuIHdhaXRcbiIKKyIgIC13ICAtLXRpbWVvdXQgICAgV2FpdCBmb3IgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lXG4iCisiICAtbyAgLS1jbG9zZSAgICAgIENsb3NlIGZpbGUgZGVzY3JpcHRvciBiZWZvcmUgcnVubmluZyBjb21tYW5kXG4iCisiICAtYyAgLS1jb21tYW5kICAgIFJ1biBhIHNpbmdsZSBjb21tYW5kIHN0cmluZyB0aHJvdWdoIHRoZSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBEaXNwbGF5IHRoaXMgdGV4dFxuIgorIiAgLVYgIC0tdmVyc2lvbiAgICBEaXNwbGF5IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoxOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGNvbW1hbmQgYXJndW1lbnRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IGV6aW4gZGEgJXMgYmxva2VvIGZpdHhhdGVnaWEgaXJla2k6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IHplbmJha2kgb2tlcnJhOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlcXVpcmVzIGZpbGUgZGVzY3JpcHRvciwgZmlsZSBvciBkaXJlY3RvcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogZm9yay1layBodXRzIGVnaW4gZHU6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICJhdWtlcmEgYmFsaW9nYXJyaWFrOiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLU0gPHNpemU+ICAgICBjcmVhdGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IG9mIHNpemUgPHNpemU+XG4iCisiICAtUyA8bnNlbXM+ICAgIGNyZWF0ZSBzZW1hcGhvcmUgYXJyYXkgd2l0aCA8bnNlbXM+IGVsZW1lbnRzXG4iCisiICAtUSAgICAgICAgICAgIGNyZWF0ZSBtZXNzYWdlIHF1ZXVlXG4iCisiICAtcCA8bW9kZT4gICAgIHBlcm1pc3Npb24gZm9yIHRoZSByZXNvdXJjZSAoZGVmYXVsdCBpcyAwNjQ0KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaXBjbWsoMSkuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQyCittc2dpZCAiY3JlYXRlIHNoYXJlIG1lbW9yeSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaGFyZWQgbWVtb3J5IGlkOiAlZFxuIgorbXNnc3RyICJlemluIGRhICVzIGlkLWEgZXphYmF0dSAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MAorbXNnaWQgImNyZWF0ZSBtZXNzYWdlIHF1ZXVlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgImV6aW4gZGEgJXMgaWQtYSBlemFiYXR1ICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4CisjLCBmdXp6eQorbXNnaWQgImNyZWF0ZSBzZW1hcGhvcmUgZmFpbGVkIgorbXNnc3RyICIlczogZ2V0IHNpemUgZWdpdGVyYWtvYW4gaHV0cyBlZ2luIGRhIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VtYXBob3JlIGlkOiAlZFxuIgorbXNnc3RyICJTZW1hZm9ybyBpZC1hOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo2NAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkOiAlc1xuIgorbXNnc3RyICJiYWxpb2dhYmVrbyBpZC1hOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAiZXppbiBkYSAlcyBpZC1hIGV6YWJhdHUgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJkZXByZWNhdGVkIHVzYWdlOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gcmVzb3VyY2UgdHlwZTogJXNcbiIKK21zZ3N0ciAiUGFydGl6aW8gdGF1bGEgbW9ldGEgZXplemFndW5hIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzb3VyY2UocykgZGVsZXRlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiIKKyIgICAgICAgICAgWy1RIG1zZ2tleV0gWy1NIHNobWtleV0gWy1TIHNlbWtleV0gLi4uIF1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCittc2dzdHIgIiVzOiBiYWxpb2dhYmVrbyBhdWtlcmEgLS0gJWNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTkxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBrZXkgKCVzKVxuIgorbXNnc3RyICJCYWxpb2dhYmVrbyB0ZWtsYSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBrZXkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA5IHN5cy11dGlscy9pcGNybS5jOjI0OAorIywgZnV6enkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQga2V5IgorbXNnc3RyICJTYWthdHUgZWRvemVpbiB0ZWtsYSBqYXJyYWl0emVrbyIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjEyIHN5cy11dGlscy9pcGNybS5jOjI0MworIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAiQmFsaW9nYWJla28gdGVrbGEiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxNSBzeXMtdXRpbHMvaXBjcm0uYzoyNTMKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ0Cittc2dpZCAiaW52YWxpZCBpZCIKK21zZ3N0ciAiYmFsaW9nYWJla28gaWQtYSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ5CisjLCBmdXp6eQorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBpZCIKK21zZ3N0ciAiZXppbiBkYSAlcyBpZC1hIGV6YWJhdHUgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gYXJndW1lbnQ6ICVzXG4iCittc2dzdHIgIiVzOiBLb21hbmRvIGV6ZXphZ3VuYTogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2UgOiAlcyAtYXNtcSAtdGNsdXAgXG4iCittc2dzdHIgImVyYWJpbGVyYSA6ICVzIC1hc21xIC10Y2x1cCBcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorbXNnc3RyICJiYWxpb2dhYmVrbyBpZC1hOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIC1oIGZvciBoZWxwLlxuIgorbXNnc3RyICJcdCVzIC1oIGxhZ3VudHphcmFrby5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzIGZvciB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk91dHB1dCBGb3JtYXQ6XG4iCisiXHQtdCA6IHRpbWVcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2hhcmVkIG1lbW9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAibWVtb3JpYXRpayBrYW5wbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBzZWdtZW50cyA9ICVsdVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCB0b3RhbCBzaGFyZWQgbWVtb3J5IChrYnl0ZXMpID0gJWxsdVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pbiBzZWcgc2l6ZSAoYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICJtZW1vcmlhdGlrIGthbnBvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJzZWdtZW50cyBhbGxvY2F0ZWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgYWxsb2NhdGVkICVsZFxuIgorbXNnc3RyICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHJlc2lkZW50ICAlbGRcbiIKK21zZ3N0ciAiJTYuMmYlJSAoJStsZCBieXRlcylcdCVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJTd2FwIHBlcmZvcm1hbmNlOiAlbGQgYXR0ZW1wdHNcdCAlbGQgc3VjY2Vzc2VzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudCBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAic2htaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICJwZXJtcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjdWlkIgorbXNnc3RyICJjdWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImNnaWQiCittc2dzdHIgImNnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAidWlkIgorbXNnc3RyICJ1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiZ2lkIgorbXNnc3RyICJnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IEF0dGFjaC9EZXRhY2gvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEgc3lzLXV0aWxzL2lwY3MuYzozMDcKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTEyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOCBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm93bmVyIgorbXNnc3RyICJqYWJlYSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAia29uZWt0YXR1dGEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgImRlc2tvbmVrdGF0dXRhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorbXNnaWQgImNoYW5nZWQiCittc2dzdHIgImFsZGF0dXRhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBDcmVhdG9yL0xhc3Qtb3AgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImNwaWQiCittc2dzdHIgImNwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAibHBpZCIKK21zZ3N0ciAibHBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iCittc2dzdHIgIm1lbW9yaWF0aWsga2FucG8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTI0CisjLCBmdXp6eQorbXNnaWQgImtleSIKK21zZ3N0ciAiQmFsaW9nYWJla28gdGVrbGEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3CisjLCBmdXp6eQorbXNnaWQgImJ5dGVzIgorbXNnc3RyICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJuYXR0Y2giCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMjkgc3lzLXV0aWxzL2lwY3MuYzozMzEgc3lzLXV0aWxzL2lwY3MuYzozMzMKKyM6IHN5cy11dGlscy9pcGNzLmM6NDQ0IHN5cy11dGlscy9pcGNzLmM6NDQ2IHN5cy11dGlscy9pcGNzLmM6NTQ1CisjOiBzeXMtdXRpbHMvaXBjcy5jOjU0NyBzeXMtdXRpbHMvaXBjcy5jOjU0OSBzeXMtdXRpbHMvaXBjcy5jOjYwMAorIzogc3lzLXV0aWxzL2lwY3MuYzo2MDIgc3lzLXV0aWxzL2lwY3MuYzo2MzAgc3lzLXV0aWxzL2lwY3MuYzo2MzIKKyM6IHN5cy11dGlscy9pcGNzLmM6NjM0IHN5cy11dGlscy9pcGNzLmM6NjU3Cittc2dpZCAiTm90IHNldCIKK21zZ3N0ciAiRXphcnJpZ2FiZWEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MgorbXNnaWQgImxvY2tlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgIlNhcnR1IHppbGluZHJvIGtvcHVydWE6IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBwZXIgYXJyYXkgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2VtYXBob3JlIG1heCB2YWx1ZSA9ICVkXG4iCittc2dzdHIgIkJhbGlvZ2FiZWtvIHppbGluZHJvIGJhbG9yZWFrIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGFycmF5cyA9ICVkXG4iCittc2dzdHIgIiU2bGQgem9uYSBlcmFiaWxpdGEgKCVsZCUlKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgc2VtYXBob3JlcyA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorIywgZnV6enkKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICIgICAgICAgICAgICAgICBMZWhlbmEgICAgIEF6a2VuYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorIywgZnV6enkKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgIiAgICAgICAgICAgICAgIExlaGVuYSAgICAgQXprZW5hXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIG1lc3NhZ2UgcXVldWVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggcXVldWVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWF4IHNpemUgb2YgbWVzc2FnZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAibG9ydHUgdGFtYWludWEgYnl0ZS10YW4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgImRlZmF1bHQgbWF4IHNpemUgb2YgcXVldWUgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OAorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgcXVldWVzID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNlZCBoZWFkZXJzID0gJWRcbiIKK21zZ3N0ciAiJTZsZCB6b25hIGVyYWJpbGl0YSAoJWxkJSUpXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIHNwYWNlID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiJTYuMmYlJSAoJStsZCBieXRlcylcdCVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJyZWN2IgorbXNnc3RyICJyZWN2IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgImNoYW5nZSIKK21zZ3N0ciAiYWxkYXR1IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorIywgZnV6enkKK21zZ2lkICJ1c2VkLWJ5dGVzIgorbXNnc3RyICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU4OQorbXNnaWQgInNobWN0bCBmYWlsZWQiCittc2dzdHIgInNobWN0bC1layBodXRzIGVnaW4gZHUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTaGFyZWQgbWVtb3J5IFNlZ21lbnQgc2htaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjb1x0YWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJgJXMnIGZpdHhhdGVnaWFrICUwNW8gbW9kdWEgZGF1a2FcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYXR0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAzIHN5cy11dGlscy9pcGNzLmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTUKK21zZ2lkICJtc2djdGwgZmFpbGVkIgorbXNnc3RyICJtc2djdGwtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRtb2RlPSUjb1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjQ4IHN5cy11dGlscy9pcGNzLmM6NjcwCittc2dpZCAic2VtY3RsIGZhaWxlZCIKK21zZ3N0ciAic2VtY3RsLWVrIGh1dHMgZWdpbiBkdSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgImAlcycgZml0eGF0ZWdpYWsgJTA1byBtb2R1YSBkYXVrYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibnNlbXMgPSAlbGRcbiIKK21zZ3N0ciAiJWxkIGlub2RvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm90aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICJjdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJzZW1udW0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAiYmFsaW9hIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgIm5jb3VudCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInpjb3VudCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInBpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFsgLWRoVjc4bmVvMTIgXSBbIC1zIDxzcGVlZD4gXSA8bGRpc2M+IDxkZXZpY2U+XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6OTEKK21zZ2lkICIiCisiXG4iCisiS25vd24gPGxkaXNjPiBuYW1lczpcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBzcGVlZDogJXMiCittc2dzdHIgImJhbGlvZ2FiZWtvIGFiaWFkdXJhOiAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsZGF0dGFjaCBmcm9tICVzXG4iCittc2dzdHIgIiVzLShlKXRpayByZW5pY2UtZWFcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAiYmFsaW9nYWJla28gYXVrZXJhIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgbGluZSBkaXNjaXBsaW5lOiAlcyIKK21zZ3N0ciAiZXppbiBkYSBsZXJyb2FyZW4gZGlzemlwbGluYSBlemFycmkiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlZWQgJWQgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiVkIGFiaWFkdXJhayBleiBkdSBldXNrYXJyaXJpayIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjUxCittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgImV6aW4gZGEgbGVycm9hcmVuIGRpc3ppcGxpbmEgZXphcnJpIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTcKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IGRhZW1vbml6ZSIKK21zZ3N0ciAiRXppbiBkYSBpcmVraSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQKK21zZ2lkICJub25lIgorbXNnc3RyICJleiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUKK21zZ2lkICJwYXJhIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2Cittc2dpZCAiZnVsbCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxMzcgc3lzLXV0aWxzL2xzY3B1LmM6MTYwIHN5cy11dGlscy9sc2NwdS5jOjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgImVycm9yZWE6ICVzIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHBhcnNlOiAlcyIKK21zZ3N0ciAiY3JjIGVycm9yZWEiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE4NAorbXNnaWQgImVycm9yOiBzdHJkdXAgZmFpbGVkIgorbXNnc3RyICJlcnJvcmVhOiBzdHJkdXAtZWsgaHV0cyBlZ2luIGR1IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoyNjcKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICJlcnJvcmVhOiB1bmFtZS1rIGh1dHMgZWdpbiBkdSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTA2Cittc2dpZCAiZXJyb3I6IG1hbGxvYyBmYWlsZWQiCittc2dzdHIgImVycm9yZWE6IG1hbGxvYy1layBodXRzIGVnaW4gZHUiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXJcbiIKKyIjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElEXG4iCisiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisiIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKK21zZ2lkICJDUFUgb3AtbW9kZShzKToiCittc2dzdHIgIkNQVWFyZW4gb3AtbW9kdWEoayk6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICJDb3JlIGJha29pdHpla28gaGFyaSBrb3B1cnVhOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI2Cittc2dpZCAiQ29yZShzKSBwZXIgc29ja2V0OiIKK21zZ3N0ciAiU29ja2V0IGJha29pdHpla28gY29yZSBrb3B1cnVhOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIkNQVSBzb2NrZXRhazoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIk5VTUEgbm9kdWFrOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiRmFicmlrYXR6YWlsZWFyZW4gSURhOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM1Cittc2dpZCAiQ1BVIGZhbWlseToiCittc2dzdHIgIkNQVSBmYW1pbGlhOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM3Cittc2dpZCAiTW9kZWw6IgorbXNnc3RyICJNb2RlbG9hOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICJTdGVwcGluZy1hOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQxCittc2dpZCAiQ1BVIE1IejoiCittc2dzdHIgIkNQVSBNSHo6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDQgc3lzLXV0aWxzL2xzY3B1LmM6NjQ2Cittc2dpZCAiVmlydHVhbGl6YXRpb246IgorbXNnc3RyICJCaXJ0dWFsaXphemlvYToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiSHlwZXJ2aXNvci1lYXJlbiBmYWJyaWthdHphaWxlYToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1MAorbXNnaWQgIlZpcnR1YWxpemF0aW9uIHR5cGU6IgorbXNnc3RyICJCaXJ0dWFsaXphemlvIG1vZXRhOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNhY2hlOiIKK21zZ3N0ciAiJXMgY2FjaGVhOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uXVxuIgorbXNnc3RyICJFcmFiaWxlcmE6ICVzIFthdWtlcmFdXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2OQorbXNnaWQgIiIKKyJDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGhlbHBlclxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuXG4iCisiICAtcywgLS1zeXNyb290ICB1c2UgdGhlIGRpcmVjdG9yeSBhcyBhIG5ldyBzeXN0ZW0gcm9vdC5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OQorbXNnaWQgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBzZXRzIFJPT1QgdG8gL2Rldi9oZGEyIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODAKK21zZ2lkICIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBST09URkxBR1MgKHJlYWRvbmx5IHN0YXR1cykiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MQorbXNnaWQgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBzZXQgdGhlIFJBTURJU0sgc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgyCittc2dpZCAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgYm9vdHVwIFZJREVPTU9ERSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgzCittc2dpZCAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHVzZSB0aGUgYnl0ZSBvZmZzZXQgTiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg0Cittc2dpZCAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtUiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg2Cittc2dpZCAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtdiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg3Cittc2dpZCAiIgorIk5vdGU6IHZpZGVvIG1vZGVzIGFyZTogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLCAxPWtleTEsIDI9a2V5MiwuLi4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4OAorbXNnaWQgIiAgICAgIHVzZSAtUiAxIHRvIG1vdW50IHJvb3QgcmVhZG9ubHksIC1SIDAgZm9yIHJlYWQvd3JpdGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAia29tYSBmYWx0YSBkYSIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NzIgdGV4dC11dGlscy9tb3JlLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIm91dCBvZiBtZW1vcnkiCittc2dzdHIgIm1lbW9yaWFyaWsgZXoiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiBcIiVzIFtvcHRpb25zXVxuIgorIlx0IC1tIDxtYXBmaWxlPiAgKGRlZmF1bHRzOiBcIiVzXCIgYW5kXG4iCisiXHRcdFx0XHQgIFwiJXNcIilcbiIKKyJcdCAtcCA8cHJvLWZpbGU+IChkZWZhdWx0OiBcIiVzXCIpXG4iCisiXHQgLU0gPG11bHQ+ICAgICBzZXQgdGhlIHByb2ZpbGluZyBtdWx0aXBsaWVyIHRvIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICAgcHJpbnQgb25seSBpbmZvIGFib3V0IHRoZSBzYW1wbGluZyBzdGVwXG4iCisiXHQgLXYgICAgICAgICAgICBwcmludCB2ZXJib3NlIGRhdGFcbiIKKyJcdCAtYSAgICAgICAgICAgIHByaW50IGFsbCBzeW1ib2xzLCBldmVuIGlmIGNvdW50IGlzIDBcbiIKKyJcdCAtYiAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgaGlzdG9ncmFtLWJpbiBjb3VudHNcbiIKKyJcdCAtcyAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgY291bnRlcnMgd2l0aGluIGZ1bmN0aW9uc1xuIgorIlx0IC1yICAgICAgICAgICAgcmVzZXQgYWxsIHRoZSBjb3VudGVycyAocm9vdCBvbmx5KVxuIgorIlx0IC1uICAgICAgICAgICAgZGlzYWJsZSBieXRlIG9yZGVyIGF1dG8tZGV0ZWN0aW9uXG4iCisiXHQgLVYgICAgICAgICAgICBwcmludCB2ZXJzaW9uIGFuZCBleGl0XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJyZWFkcHJvZmlsZTogZXJyb3JlYSAlcyBpZGF6dGVuOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgcmV2ZXJzZWQgYnl0ZSBvcmRlci4gVXNlIC1uIHRvIGZvcmNlIG5hdGl2ZSBieXRlIG9yZGVyLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI4NAorIywgYy1mb3JtYXQKK21zZ2lkICJTYW1wbGluZ19zdGVwOiAlaVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMwNSBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyglaSk6IHdyb25nIG1hcCBsaW5lXG4iCittc2dzdHIgImxlcnJvIGx1emVlZ2lhIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcHJvZmlsZSBhZGRyZXNzIG91dCBvZiByYW5nZS4gV3JvbmcgbWFwIGZpbGU/XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NDEyCittc2dpZCAidG90YWwiCittc2dzdHIgImd1enRpcmEiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5IFstcHwtLXBpZF0gcGlkICBbLi4uIHBpZF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC1nfC0tcGdycCBwZ3JwIFsuLi4gcGdycF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC11fC0tdXNlciB1c2VyIFsuLi4gdXNlcl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICIlcy0oZSl0aWsgcmVuaWNlLWVhXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogdW5rbm93biB1c2VyXG4iCittc2dzdHIgInJlbmljZTogJXM6IGVyYWJpbHR6YWlsZSBlemV6YWd1bmFcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEzNAorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAicmVuaWNlOiAlczogYmFsaW8gb2tlcnJhXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6ICVkIHByaW9yaXRhdGUgemFoYXJyYSwgJWQgcHJpb3JpdGF0ZSBiZXJyaWFcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAiaXJha3VycmkgcnRjIG9yZHVhIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0NworbXNnaWQgInJlYWQgc3lzdGVtIHRpbWUiCittc2dzdHIgImlyYWt1cnJpIHNpc3RlbWFyZW4gb3JkdWEiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTY1CisjLCBmdXp6eQorbXNnaWQgImNvbnZlcnQgcnRjIHRpbWUiCittc2dzdHIgIiVzOiBiYWxpb2dhYmVrbyAlcyB0aW1lX3QgYmFsb3JlYVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyNAorbXNnaWQgInNldCBydGMgYWxhcm0iCittc2dzdHIgImV6YXJyaSBydGMgYWxhcm1hIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyOAorbXNnaWQgImVuYWJsZSBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMzIKK21zZ2lkICJzZXQgcnRjIHdha2UgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVucmVjb2duaXplZCBzdXNwZW5kIHN0YXRlICclcydcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICJCYWxpb2dhYmVrbyB6aWxpbmRybyBiYWxvcmVhayIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiBiYWxpb2dhYmVrbyAlcyB0aW1lX3QgYmFsb3JlYVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhc3N1bWluZyBSVEMgdXNlcyBVVEMgLi4uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgVVRDIHRpbWUuXG4iCittc2dzdHIgIlVUQyBvcmR1YSBlcmFiaWx0emVuLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICJPcmR1IGxva2FsYSBlcmFiaWx0emVuLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3Cittc2dpZCAibWFsbG9jKCkgZmFpbGVkIgorbXNnc3RyICJtYWxsb2MoKS1layBodXRzIGVnaW4gZHUiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgZW5hYmxlZCBmb3Igd2FrZXVwIGV2ZW50c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGltZSBkb2Vzbid0IGdvIGJhY2t3YXJkIHRvICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdha2V1cCBmcm9tIFwiJXNcIiB1c2luZyAlcyBhdCAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIGV4ZWN1dGUgJXM6ICVzXG4iCittc2dzdHIgImV6aW4gZGlyYSBib290Yml0IHNla3RvcmVhayBlemFiYXR1IgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ5NgorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICJydGMgaXJha3Vycml0YSIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo1MDUKK21zZ2lkICJkaXNhYmxlIHJ0YyBhbGFybSBpbnRlcnJ1cHQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3dpdGNoaW5nIG9uICVzLlxuIgorbXNnc3RyICIgICAgICAgIGRpc2tvIGd1enRpYW4uICIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJFcmFiaWxlcmE6ICVzJXMgW2F1a2VyYWtdIFthcGxpa2F6aW9hIFthcGxpa2F6aW9hIGFyZ3VtZW50dWFrXV1cbiIKKyJcbiIKKyJBdWtlcmFrOlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAtdiwgLS12ZXJib3NlICAgICAgICAgICAgc2F5cyB3aGF0IG9wdGlvbnMgYXJlIGJlaW5nIHN3aXRjaGVkIG9uXG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplICBkaXNhYmxlcyByYW5kb21pemF0aW9uIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3MgIgorInNwYWNlXG4iCisiIC1GLCAtLWZkcGljLWZ1bmNwdHJzICAgICBtYWtlcyBmdW5jdGlvbiBwb2ludGVycyBwb2ludCB0byBkZXNjcmlwdG9yc1xuIgorIiAtWiwgLS1tbWFwLXBhZ2UtemVybyAgICAgdHVybnMgb24gTU1BUF9QQUdFX1pFUk9cbiIKKyIgLUwsIC0tYWRkci1jb21wYXQtbGF5b3V0IGNoYW5nZXMgdGhlIHdheSB2aXJ0dWFsIG1lbW9yeSBpcyBhbGxvY2F0ZWRcbiIKKyIgLVgsIC0tcmVhZC1pbXBsaWVzLWV4ZWMgIHR1cm5zIG9uIFJFQURfSU1QTElFU19FWEVDXG4iCisiIC1CLCAtLTMyYml0ICAgICAgICAgICAgICB0dXJucyBvbiBBRERSX0xJTUlUXzMyQklUXG4iCisiIC1JLCAtLXNob3J0LWlub2RlICAgICAgICB0dXJucyBvbiBTSE9SVF9JTk9ERVxuIgorIiAtUywgLS13aG9sZS1zZWNvbmRzICAgICAgdHVybnMgb24gV0hPTEVfU0VDT05EU1xuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgdHVybnMgb24gU1RJQ0tZX1RJTUVPVVRTXG4iCisiIC0zLCAtLTNnYiAgICAgICAgICAgICAgICBsaW1pdHMgdGhlIHVzZWQgYWRkcmVzcyBzcGFjZSB0byBhIG1heGltdW0gb2YgMyAiCisiR0JcbiIKKyIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGlnbm9yZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJXNcbiIKKyJUcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyMTUgc3lzLXV0aWxzL3NldGFyY2guYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVucmVjb2duaXplZCBhcmNoaXRlY3R1cmUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKKyMsIGZ1enp5Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIiVzOiBhcmd1bWVudHUgZ2VoaWVnaVxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiaHV0cyBlZ2luIGRhIGxlcnJvIGJ1ZmZlci1hIGhhc2llcmF0emVuXG4iCisKKyM6IHN5cy11dGlscy9zZXRzaWQuYzoyNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIKK21zZ3N0ciAiZXJhYmlsZXJhOiAlcyBhcGxpa2F6aW9hIFthcmd1bWVudHVhIC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKyJFcmFiaWxlcmE6ICVzIDxnYWlsdWE+IFsgLWkgPElSUWE+IHwgLXQgPERFTkJPUkE+IHwgLWMgPEtBUkFLVEVSRUFLPiB8IC13ICIKKyI8SVRYQVJPVEUgREVOQk9SQT4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo5MQorbXNnaWQgIm1hbGxvYyBlcnJvciIKK21zZ3N0ciAiZXJyb3JlYSBtZW1vcmlhIGVzbGVpdHplbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiVzOiBiYWxpbyBva2VycmFcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIKK21zZ3N0ciAiJXM6ICVzIGV6IGRhIGxwIGdhaWx1YS5cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdGF0dXMgaXMgJWQiCittc2dzdHIgIiVzLShyKWVuIGVnb2VyYSAlZCBkYS4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBidXN5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCBwcmVzdCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG91dCBvZiBwYXBlciIKK21zZ3N0ciAiLCBwYXBlcmlrIGdhYmUiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvbi1saW5lIgorbXNnc3RyICIsIGxpbmVhbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGVycm9yIgorbXNnc3RyICIsIGVycm9yZWEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAiTFBHRVRJUlEgZXJyb3JlYSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBJUlEgJWRcbiIKK21zZ3N0ciAiJXMgJWQgSVJRLWEgZXJhYmlsdHplblxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMgYXp0ZXJrZXRhIGVyYWJpbHR6ZW5cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIDxwcm9ncmFtPiBbYXJncy4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjYwCittc2dpZCAiIgorIlJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB1c2FnZSBpbmZvcm1hdGlvbiAodGhpcylcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgbW91bnRzIG5hbWVzcGFjZVxuIgorIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIFN5c3RlbSBWIElQQyBuYW1lc3BhY2VcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIHVuc2hhcmUgbmV0d29yayBuYW1lc3BhY2VcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdW5zaGFyZSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExNAorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICJ1bnNoYXJlZC1layBodXRzIGVnaW4gZHUiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJleGVjICVzLShlKWsgaHV0cyBlZ2luIGR1IgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IGJhZCAtbCBhcmd1bWVudCAlcy5cbiIKK21zZ3N0ciAiY29sOiAtbCBiYWxpb2dhYmVrbyBhcmd1bWVudHVhICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sIFstYmZweF0gWy1sIG5saW5lXVxuIgorbXNnc3RyICJ1c2FnZTogenV0YWJlYSBbLWJmcHhdIFstbCBsZXJybyB6ZW5iYWtpYV1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiBpZGF6a2V0YSBlcnJvcmVhLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdhcm5pbmc6IGNhbid0IGJhY2sgdXAgJXMuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICJwYXN0IGZpcnN0IGxpbmUiCittc2dzdHIgImxlaGVuIGxlcnJvYXJlbiBvbmRvcmVuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgIi0tIGxpbmUgYWxyZWFkeSBmbHVzaGVkIgorbXNnc3RyICItLSBsZXJyb2EgZGFnb2VuZWtvIGdhcmJpdHV0YSIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICJlcmFiaWxlcmE6ICVzIFsgLSBdIFsgLTIgXSBbIGZpdHhhdGVnaWEgLi4uIF1cbiIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzoyOTcKK21zZ2lkICJsaW5lIHRvbyBsb25nIgorbXNnc3RyICJsZXJybyBsdXplZWdpYSIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzozNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbHVtbiBbLXR4XSBbLWMgY29sdW1uc10gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJlcmFiaWxlcmE6IHp1dGFiZWEgWy10eF0gWy1jIHp1dGFiZWFrXSBbZml0eGF0ZWdpYSAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBza2lwIHZhbHVlLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmbXRdIFstZiBmbXRfZmlsZV0gWy1uIGxlbmd0aF0gWy1zIHNraXBdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSBuYW1lMSBuYW1lMiAuLi5cbiIKK21zZ3N0ciAiIgorImVyYWJpbGVyYTogJXMgWy1kZmxwY3N1XSBbK2xlcnJvemVuYmFraWEgfCArL3BhdHJvaWFdIGl6ZW5hMSBpemVuYTIgLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI5MAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICJodXRzIGVnaW4gZGEgbGVycm8gYnVmZmVyLWEgaGFzaWVyYXR6ZW5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIG9wdGlvbiBcIi0lY1wiXG4iCittc2dzdHIgIiVzOiBcIi0lY1wiIGF1a2VyYSBlemV6YWd1bmFcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczogZGlyZWt0b3Jpb2EgKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjU2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqKioqKiogJXM6IE5vdCBhIHRleHQgZmlsZSAqKioqKioqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqKioqKiogJXM6IEV6IGRhIHRlc3R1IGZpdHhhdGVnaWEgKioqKioqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIltVc2UgcSBvciBRIHRvIHF1aXRdIgorbXNnc3RyICJbRXJhYmlsaSBxIGVkbyBRIGlydGV0ZWtvXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tTW9yZS0tIgorbXNnc3RyICItLUdlaGlhZ28tLSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIihOZXh0IGZpbGU6ICVzKSIKK21zZ3N0ciAiKEh1cnJlbmdvIGZpdHhhdGVnaWE6ICVzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyBzcGFjZSB0byBjb250aW51ZSwgJ3EnIHRvIHF1aXQuXSIKK21zZ3N0ciAiW1Nha2F0dSB6dXJpdW5lLWJhcnJhIGphcnJhaXR6ZWtvLCAncScgaXJ0ZXRla28uXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi4gJWQgb3JyaSBhdHplcmEiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiLi4ub3JyaSBiYXQgYXR6ZXJhIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUxCittc2dpZCAiLi4uc2tpcHBpbmcgb25lIGxpbmUiCittc2dzdHIgIi4uLnNhbHRhdHUgbGVycm8gYmF0IgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICIuLi5zYWx0YXR1ICVkIGxlcnJvIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjkwCittc2dpZCAiIgorIlxuIgorIioqKkJhY2sqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKkF0emVyYSoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzI4Cittc2dpZCAiIgorIlxuIgorIk1vc3QgY29tbWFuZHMgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBpbnRlZ2VyIGFyZ3VtZW50IGsuICBEZWZhdWx0cyBpbiAiCisiYnJhY2tldHMuXG4iCisiU3RhciAoKikgaW5kaWNhdGVzIGFyZ3VtZW50IGJlY29tZXMgbmV3IGRlZmF1bHQuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMzNQorbXNnaWQgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIltTYWthdHUgJ2gnIGFyZ2liaWRlZW50emF0Ll0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIlwiJXNcIiAlZCBsZXJyb2EiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW05vdCBhIGZpbGVdIGxpbmUgJWQiCittc2dzdHIgIltFeiBkYSBmaXR4YXRlZ2lhXSAlZCBsZXJyb2EiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiBHYWluZXprYXR6ZWFcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTU3NgorbXNnaWQgIi4uLnNraXBwaW5nXG4iCittc2dzdHIgIi4uLnNhbHRvIGVnaXRlblxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTMKK21zZ2lkICIiCisiXG4iCisiUGF0dGVybiBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBhdHJvaWEgZXogZGEgYXVya2l0dVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjE2IHRleHQtdXRpbHMvcGcuYzoxMTI3IHRleHQtdXRpbHMvcGcuYzoxMjc4Cittc2dpZCAiUGF0dGVybiBub3QgZm91bmQiCittc2dzdHIgIlBhdHJvaWEgZXogZGEgYXVya2l0dSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTY3NworbXNnaWQgImNhbid0IGZvcmtcbiIKK21zZ3N0ciAiZXppbiBkYSBmb3JrIGVnaW5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKyJcbiIKKyIuLi5zYWx0byBlZ2l0ZW4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiLi4uZml0eGF0ZWdpcmEgc2FsdG8gZWdpdGVuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAiLi4uYXR6ZXJhIGZpdHhhdGVnaXJhIHNhbHRvIGVnaXRlbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjAwMAorbXNnaWQgIkxpbmUgdG9vIGxvbmciCittc2dzdHIgIkxlcnJvYSBsdXplZWdpYSBkYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJvZDogb2QoMSkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgaGV4ZHVtcCgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBoZXhkdW1wKDEpIGNvbXBhdGliaWxpdHkgZG9lc24ndCBzdXBwb3J0IHRoZSAtJWMgb3B0aW9uJXNcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTM0Cittc2dpZCAiOyBzZWUgc3RyaW5ncygxKS4iCittc2dzdHIgIjsgaWt1c2kgc3RyaW5ncygxKS4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBlemluIGRhICVzICBpcmFrdXJyaS5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgImhleGR1bXA6IGxlcnJvYSBsdXplZWdpYSBkYS5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogJSVzIHJlcXVpcmVzIGEgcHJlY2lzaW9uIG9yIGEgYnl0ZSBjb3VudC5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDk2CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBmb3JtYXQgeyVzfVxuIgorbXNnc3RyICJoZXhkdW1wOiB7JXN9IGZvcm1hdHUgb2tlcnJhXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NQorbXNnaWQgIiIKKyJBbGwgcmlnaHRzIHJlc2VydmVkLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyIgIGggICAgICAgICAgICAgICAgICAgICAgIHRoaXMgc2NyZWVuXG4iCisiICBxIG9yIFEgICAgICAgICAgICAgICAgICBxdWl0IHByb2dyYW1cbiIKKyIgIDxuZXdsaW5lPiAgICAgICAgICAgICAgIG5leHQgcGFnZVxuIgorIiAgZiAgICAgICAgICAgICAgICAgICAgICAgc2tpcCBhIHBhZ2UgZm9yd2FyZFxuIgorIiAgZCBvciBeRCAgICAgICAgICAgICAgICAgbmV4dCBoYWxmcGFnZVxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBsaW5lXG4iCisiICAkICAgICAgICAgICAgICAgICAgICAgICBsYXN0IHBhZ2VcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIHNlYXJjaCBmb3J3YXJkIGZvciByZWdleFxuIgorIiAgP3JlZ2V4PyBvciBecmVnZXheICAgICAgc2VhcmNoIGJhY2t3YXJkIGZvciByZWdleFxuIgorIiAgLiBvciBeTCAgICAgICAgICAgICAgICAgcmVkcmF3IHNjcmVlblxuIgorIiAgdyBvciB6ICAgICAgICAgICAgICAgICAgc2V0IHBhZ2Ugc2l6ZSBhbmQgZ28gdG8gbmV4dCBwYWdlXG4iCisiICBzIGZpbGVuYW1lICAgICAgICAgICAgICBzYXZlIGN1cnJlbnQgZmlsZSB0byBmaWxlbmFtZVxuIgorIiAgIWNvbW1hbmQgICAgICAgICAgICAgICAgc2hlbGwgZXNjYXBlXG4iCisiICBwICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBwcmV2aW91cyBmaWxlXG4iCisiICBuICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBuZXh0IGZpbGVcbiIKKyJcbiIKKyJNYW55IGNvbW1hbmRzIGFjY2VwdCBwcmVjZWRpbmcgbnVtYmVycywgZm9yIGV4YW1wbGU6XG4iCisiKzE8bmV3bGluZT4gKG5leHQgcGFnZSk7IC0xPG5ld2xpbmU+IChwcmV2aW91cyBwYWdlKTsgMTxuZXdsaW5lPiAoZmlyc3QgIgorInBhZ2UpLlxuIgorIlxuIgorIlNlZSBwZygxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjIyMworbXNnaWQgIk91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiTWVtb3JpYXRpayBrYW5wb1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6ICVzIFstbnVtYmVyXSBbLXAgc3RyaW5nXSBbLWNlZm5yc10gWytsaW5lXSBbKy9wYXR0ZXJuL10gW2ZpbGVzXVxuIgorbXNnc3RyICIiCisiJXM6IEVyYWJpbGVyYTogJXMgWy16ZW5iYWtpYV0gWy1wIGthdGVhXSBbLWNlZm5yc10gWytsZXJyb2FdIFsrL3BhdHJvaWEvXSAiCisiW2ZpdHhhdGVnaWFrXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IGF1a2VyYWsgYXJndW1lbnR1YSBiZWhhciBkdSAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczogYmFpbWVuaWsgZ2FiZWtvIGF1a2VyYSAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcwCittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICIuLi5hdXJyZXJhIHNhbHRhdHplblxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcyCittc2dpZCAiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIKK21zZ3N0ciAiLi4uYXR6ZXJhIHNhbHRhdHplblxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJFeiBkYSB0ZXN0dSBmaXR4YXRlZ2lhIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk4Cittc2dpZCAiTm8gcHJldmlvdXMgZmlsZSIKK21zZ3N0ciAiRXogZGFnbyBhdXJyZWtvIGZpdHhhdGVnaXJpayIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEVycm9yZWEgJXMgZml0eGF0ZWdpYSBpcmFrdXJ0emVuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuZXhwZWN0ZWQgRU9GIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGVycm9yIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIlczogRXppbiBkYSBhbGRpIGJhdGVyYWtvIGZpdHhhdGVnaWEgc29ydHVcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwNDQgdGV4dC11dGlscy9wZy5jOjEyMTkgdGV4dC11dGlscy9wZy5jOjEyNDYKK21zZ2lkICJSRSBlcnJvcjogIgorbXNnc3RyICJSRSBlcnJvcmVhOiAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIihFT0YpIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAiRXppbiBkYSBpcmVraSIKKworIzogdGV4dC11dGlscy9wZy5jOjEzNTgKK21zZ2lkICJzYXZlZCIKK21zZ3N0ciAiZ29yZGV0YSIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiZm9yaygpLWVrIGh1dHMgZWdpbiBkdSwgc2FpYXR1IGJlcmFuZHVhZ29cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIihIdXJyZW5nbyBmaXR4YXRlZ2lhOiAiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTEzCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJlemluIGl6YW4gZGEgbmFoaWtvYSBidWZmZXIgbWVtb3JpYSBlc2xlaXR1IgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiZXJhYmlsZXJhOiByZXYgW2ZpdHhhdGVnaWEgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6NTggdGV4dC11dGlscy90YWlsZi5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIKK21zZ3N0ciAiZXppbiBkYSBcIiVzXCIgaXJla2kgaXJha3Vya2V0YXJha28iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo5NiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjE1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IFwiJXNcIiIKK21zZ3N0ciAiZXppbiBkYSBgc3RhdCcgZWdpbiBcIiVzXCItKHIpZW5nYW4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5jb21wbGV0ZSB3cml0ZSB0byBcIiVzXCIgKHdyaXR0ZW4gJXpkLCBleHBlY3RlZCAlemQpXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoIChsaW1pdCBvZiBpbm90aWZ5IHdhdGNoZXMgd2FzIHJlYWNoZWQpLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2guIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCByZWFkIGlub3RpZnkgZXZlbnRzIgorbXNnc3RyICIlczogZXppbiBkaXJhIGlub3RpZnkgZ2VydGFlcmFrIGlyYWt1cnJpIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKK21zZ2lkICJpbnZhbGlkIG51bWJlciBvZiBsaW5lcyIKK21zZ3N0ciAiYmFsaW9nYWJla28gbGVycm8ga29wdXJ1YSIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICJlcmFiaWxlcmE6IHRhaWxmIFstbiBOIHwgLU5dIGZpdHhhdGVnaWEiCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLWkgXSBbIC10VGVybSBdIGZpbGUuLi5cbiIKK21zZ3N0ciAiZXJhYmlsZXJhOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaXR4YXRlZ2lhLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICJhcmF6b2EgdGVybWluZm8gaXJha3VydHplbiIKKworIzogdGV4dC11dGlscy91bC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIGVzY2FwZSBzZXF1ZW5jZSBpbiBpbnB1dDogJW8sICVvXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJIdXRzIGVnaW4gZGEgYnVmZmVyLWEgaGFzaWVyYXR6ZW4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5wdXQgbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiU2FycmVyYSBsZXJybyBsdXplZWdpYS5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoZW4gZ3Jvd2luZyBidWZmZXIuXG4iCittc2dzdHIgIk1lbW9yaWFyaWsgZXogYnVmZmVyLWEgaGF6dGVyYWtvYW4uXG4iCisKKyN+IG1zZ2lkICJvdXQgaWYgbWVtb3J5IgorI34gbXNnc3RyICJtZW1vcmlhdGlrIGthbnBvIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgZXJyb3IuIgorI34gbXNnc3RyICJQYXNhaGl0eiBlcnJvcmVhLiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIzLDVcIiBmbG9wcHkiCisjfiBtc2dzdHIgIjMsNVwiIGRpc2tldGVhIgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZmkuZ21vIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZmkuZ21vCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2Yzg2YWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9maS5nbW8KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZmkucG8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9maS5wbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGE5YmZlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZmkucG8KQEAgLTAsMCArMSwxMjYzMiBAQAorIyBGaW5uaXNoIG1lc3NhZ2VzIGZvciB1dGlsLWxpbnV4CisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UuCisjIENvcHlyaWdodCDCqSAyMDAyLTIwMDMsIDIwMDUsIDIwMDctMjAwOSBMYXVyaSBOdXJtaSA8bGFudXJtaUBpa2kuZmk+CisjIExhdXJpIE51cm1pIDxsYW51cm1pQGlraS5maT4sIDIwMDItMjAwMywgMjAwNSwgMjAwNy0yMDA5LgorIworIyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gZnJlZWx5IGNvcHkgYW5kIGRpc3RyaWJ1dGUKKyMgdGhpcyBmaWxlIGFuZCBtb2RpZmllZCB2ZXJzaW9ucywgcHJvdmlkZWQsIHRoYXQgdGhpcworIyBoZWFkZXIgaXMgbm90IHJlbW92ZWQgYW5kIG1vZGlmaWVkIHZlcnNpb25zIGFyZSBtYXJrZWQKKyMgYXMgc3VjaC4KKyMKKyMgVMOkdMOkIHRpZWRvc3RvYSBqYSBtdXV0ZXR0dWphIHZlcnNpb2l0YSBzYWEga29waW9pZGEKKyMgamEgbGV2aXR0w6TDpCB2YXBhYXN0aSBlZGVsbHl0dMOkZW4sIGV0dMOkIHTDpHTDpCBvdHNpa2tvYQorIyBlaSBwb2lzdGV0YSwgamEgbXV1dGV0dXQgdmVyc2lvdCBtZXJraXTDpMOkbiBtdXV0ZXR1aWtzaS4KKyMKKyMgKioqCisjICJzaWduYXR1cmUiIHRhcnZpdHNlZSBwYXJlbW1hbiBzdW9tZW5ub2tzZW4ga3VpbiAiYWxsZWtpcmpvaXR1cyIuCisjICoqKgorbXNnaWQgIiIKK21zZ3N0ciAiIgorIlByb2plY3QtSWQtVmVyc2lvbjogdXRpbC1saW51eC1uZyAyLjE3LXJjM1xuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT5cbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wMy0yMiAwOTozNyswMTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAwOS0xMi0xNiAyMTozMCswMjAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBMYXVyaSBOdXJtaSA8bGFudXJtaUBpa2kuZmk+XG4iCisiTGFuZ3VhZ2UtVGVhbTogRmlubmlzaCA8dHJhbnNsYXRpb24tdGVhbS1maUBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgImFzZXRhIHZhaW4gbHVrdSAtdGlsYWFuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAiYXNldGEgbHVrdS1raXJqb2l0dXMtdGlsYWFuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzYKK21zZ2lkICJnZXQgcmVhZC1vbmx5IgorbXNnc3RyICJoYWUgdmFpbiBsdWt1IC10aWxhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODIKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAiaGFlIHNla3Rvcmlrb2tvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IHBoeXNpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgImhhZSBzZWt0b3Jpa29rbyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjk0Cittc2dpZCAiZ2V0IG1pbmltdW0gSS9PIHNpemUiCittc2dzdHIgImhhZSB2w6RoaW1tw6Rpcy1JL08ta29rbyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwMAorbXNnaWQgImdldCBvcHRpbWFsIEkvTyBzaXplIgorbXNnc3RyICJoYWUgcGFyYXMgSS9PLWtva28iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDYKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGFsaWdubWVudCBvZmZzZXQiCittc2dzdHIgInZpcmhlZWxsaW5lbiBpLXNvbG11biBrb2tvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTEyCisjLCBmdXp6eQorbXNnaWQgImdldCBtYXggc2VjdG9ycyBwZXIgcmVxdWVzdCIKK21zZ3N0ciAiWWxpbcOkw6Ryw6Rpc2nDpCBzZWt0b3JlaXRhIHN5bGludGVyaWxsw6QiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTgKK21zZ2lkICJnZXQgYmxvY2tzaXplIgorbXNnc3RyICJoYWUgbG9oa29rb2tvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAiYXNldGEgbG9oa29rb2tvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgImhhZSAzMi1iaXR0aW5lbiBzZWt0b3JpbcOkw6Ryw6QiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAiaGFlIGtva28gdGF2dWluYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgImFzZXRhIGx1a3Vlbm5ha2tvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAiaGFlIGx1a3Vlbm5ha2tvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTU3Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJhc2V0YSB0aWVkb3N0b2rDpHJqZXN0ZWxtw6RuIGx1a3Vlbm5ha2tvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTYzCittc2dpZCAiZ2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJoYWUgdGllZG9zdG9qw6RyamVzdGVsbcOkbiBsdWt1ZW5uYWtrbyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgInR5aGplbm7DpCBwdXNrdXJpdCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgImx1ZSBvc2lvdGF1bHUgdXVkZWxsZWVuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOlxuIgorbXNnc3RyICJLw6R5dHTDtjpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFtsYWl0dGVldF1cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIFstdnwtcV0gY29tbWFuZHMgZGV2aWNlc1xuIgorbXNnc3RyICIgICVzIFstdnwtcV0ga29tZW5ub3QgbGFpdHRlZXRcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJBdmFpbGFibGUgY29tbWFuZHM6XG4iCittc2dzdHIgIkvDpHl0ZXR0w6R2aXNzw6Qgb2xldmF0IGtvbWVubm90OlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3Cittc2dpZCAiZ2V0IHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9ycyIKK21zZ3N0ciAiaGFlIGtva28gNTEyLXRhdnVpc2luYSBzZWt0b3JlaW5hIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIiVzOiBUdW50ZW1hdG9uIGtvbWVudG86ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgdmFhdGlpIGFyZ3VtZW50aW5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgIiVzIGVww6Rvbm5pc3R1aS5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdWNjZWVkZWQuXG4iCittc2dzdHIgIiVzIG9ubmlzdHVpLlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDI3IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzOiB0aWVkb3N0b2EgJXMgZWkgdm9pIGF2YXRhXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBpb2N0bC12aXJoZSBsYWl0dGVlc3NhICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKK21zZ3N0ciAiUk8gICAgUkEgICBTU1ogICBCU1ogICBBbGt1U2VrdCAgICAgICAgICAgIEtva28gICBMYWl0ZVxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAia8OkeXR0w7Y6XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Tk9URTogZWx2dHVuZSBvbmx5IHdvcmtzIHdpdGggMi40IGtlcm5lbHNcbiIKK21zZ3N0ciAiXHROT1RFOiBlbHZ0dW5lIHRvaW1paSB2YWluIDIuNC1zYXJqYW4geXRpbWlsbMOkXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAic2lpcnR5bWlzdmlyaGUiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjExMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWlzc2luZyBibG9ja2RldmljZSwgdXNlIC1oIGZvciBoZWxwXG4iCittc2dzdHIgIiVzIGVpIG9sZSBsb2hrb2xhaXRlIGVpa8OkIHRpZWRvc3RvXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZWx2dHVuZSBpcyBvbmx5IHVzZWZ1bCBvbiBvbGRlciBrZXJuZWxzO1xuIgorImZvciAyLjYgdXNlIElPIHNjaGVkdWxlciBzeXNmcyB0dW5hYmxlcyBpbnN0ZWFkLi5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9ybWF0dGluZyAuLi4gIgorbXNnc3RyICJBbHVzdGV0YWFuLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgInZhbG1pc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmVyaWZ5aW5nIC4uLiAiCittc2dzdHIgIlZhcm1pc3RldGFhbi4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MQorbXNnaWQgIlJlYWQ6ICIKK21zZ3N0ciAiTHVrdTogIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmxlbSByZWFkaW5nIGN5bGluZGVyICVkLCBleHBlY3RlZCAlZCwgcmVhZCAlZFxuIgorbXNnc3RyICJPbmdlbG1hIGx1ZXR0YWVzc2Egc3lsaW50ZXJpw6QgJWQsIG9kb3RldHRpaW4gJWQsIGx1ZXR0aWluICVkXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiYmFkIGRhdGEgaW4gY3lsICVkXG4iCisiQ29udGludWluZyAuLi4gIgorbXNnc3RyICIiCisidmlhbGxpc3RhIGRhdGFhIHN5bGludGVyaXNzw6QgJWRcbiIKKyJKYXRrZXRhYW4uLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLW4gXSBkZXZpY2VcbiIKK21zZ3N0ciAia8OkeXR0w7Y6ICVzIFsgLW4gXSBsYWl0ZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTE4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODQKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE4MSBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTE0IGRpc2stdXRpbHMvbWtmcy5jOjUyCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODEyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3MgorIzogZGlzay11dGlscy9ta3N3YXAuYzo0ODcgbWlzYy11dGlscy9kZGF0ZS5jOjE3OSBtaXNjLXV0aWxzL3JlbmFtZS5jOjc5CisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE0NyBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCVzKVxuIgorbXNnc3RyICIlcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICIlczogZWkgb2xlIGxvaGtvbGFpdGVcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiTnlreWlzdMOkIGFsdXN0dXN0eXlwcGnDpCBlaSB2b2kgbcOkw6RyaXR0w6TDpCIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlcy1zaWRlZCwgJWQgdHJhY2tzLCAlZCBzZWMvdHJhY2suIFRvdGFsIGNhcGFjaXR5ICVkIGtCLlxuIgorbXNnc3RyICIlc3B1b2xlaW5lbiwgJWQgdXJhYSwgJWQgc2VrdG9yaWEvdXJhLiBLb2tvbmFpc3RpbGEgJWQga3QuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIktha3NpIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICJZa3NpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1odl0gWy14IGRpcl0gZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAteCBkaXIgICAgIGV4dHJhY3QgaW50byBkaXJcbiIKKyIgLXYgICAgICAgICBiZSBtb3JlIHZlcmJvc2VcbiIKKyIgZmlsZSAgICAgICBmaWxlIHRvIHRlc3RcbiIKK21zZ3N0ciAiIgorImvDpHl0dMO2OiAlcyBbLWh2XSBbLXggaGFrXSB0aWVkb3N0b1xuIgorIiAtaCAgICAgICAgIG7DpHl0w6QgdMOkbcOkIG9oamVcbiIKKyIgLXggaGFrICAgICBwdXJhIGhha2VtaXN0b29uIGhha1xuIgorIiAtdiAgICAgICAgIG1vbmlzYW5haXN1dXNcbiIKKyIgdGllZG9zdG8gICB0YXJraXN0ZXR0YXZhIHRpZWRvc3RvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICJzdGF0IGVww6Rvbm5pc3R1aTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib3BlbiBmYWlsZWQ6ICVzIgorbXNnc3RyICJvcGVucHR5IGVww6Rvbm5pc3R1aVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBmYWlsZWQ6IHVuYWJsZSB0byBkZXRlcm1pbmUgZGV2aWNlIHNpemU6ICVzIgorbXNnc3RyICIlczogdmFyb2l0dXMtLXRpZWRvc3RvasOkcmplc3RlbG3DpG4ga29rb2EgZWkgdm9pIG3DpMOkcml0dMOkw6QgXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICJlaSBvbGUgbG9oa29sYWl0ZSBlaWvDpCB0aWVkb3N0bzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODQgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyNgorbXNnaWQgImZpbGUgbGVuZ3RoIHRvbyBzaG9ydCIKK21zZ3N0ciAidGllZG9zdG8gb24gbGlpYW4gbHloeXQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZmFpbGVkOiAlcyIKK21zZ3N0ciAibHVrZW1pbmVuIGVww6Rvbm5pc3R1aTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAic3VwZXJsb2hrb24gdGFpa2FsdWt1YSBlaSBsw7Z5dHlueXQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTYKKyMsIGZ1enp5Cittc2dpZCAidW5zdXBwb3J0ZWQgZmlsZXN5c3RlbSBmZWF0dXJlcyIKK21zZ3N0ciAiQW5uYSB0aWVkb3N0b2rDpHJqZXN0ZWxtw6RuIHR5eXBwaTogIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAic3VwZXJsb2hrb24ga29rbyAoJWQpIG9uIGxpaWFuIHBpZW5pIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjIzCittc2dpZCAiemVybyBmaWxlIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAidmFyb2l0dXM6IHRpZWRvc3RvIGphdGt1dSB0aWVkb3N0b2rDpHJqZXN0ZWxtw6RuIGxvcHVuIHlsaVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI0NgorbXNnaWQgInVuYWJsZSB0byB0ZXN0IENSQzogb2xkIGNyYW1mcyBmb3JtYXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3MiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzM5CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDc3IGxvZ2luLXV0aWxzL2NoZm4uYzo1MjkgbG9naW4tdXRpbHMvY2hzaC5jOjQzOQorIzogbWlzYy11dGlscy93aXBlZnMuYzoxNDEgc3lzLXV0aWxzL2N5dHVuZS5jOjMyMQorbXNnaWQgIm1hbGxvYyBmYWlsZWQiCittc2dzdHIgIm1hbGxvYyBlcMOkb25uaXN0dWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyOTcKK21zZ2lkICJjcmMgZXJyb3IiCittc2dzdHIgImNyYy12aXJoZSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorbXNnaWQgInJvb3QgaW5vZGUgaXMgbm90IGRpcmVjdG9yeSIKK21zZ3N0ciAianV1cmVuIGktc29sbXUgZWkgb2xlIGhha2VtaXN0byIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM4NworbXNnaWQgImRhdGEgYmxvY2sgdG9vIGxhcmdlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVjb21wcmVzc2lvbiBlcnJvciAlcCglZCk6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICIgIHJlaWvDpCBrb2hkYXNzYSAlbGQgKCV6ZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyMyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgdW5jb21wcmVzc2luZyBibG9jayBhdCAlbGQgdG8gJWxkICglbGQpXG4iCittc2dzdHIgIiAgcHVyZXRhYW4gcGFpa2thYW4gJTIkbGQgbG9oa29hICUxJGxkICglMyRsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICJub24tYmxvY2sgKCVsZCkgYnl0ZXMiCittc2dzdHIgImVpLWxvaGtvICglbGQpIHRhdnVhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1zaXplICglbGQgdnMgJWxkKSBieXRlcyIKK21zZ3N0ciAiZWkta29rbyAoJWxkIHZzICVsZCkgdGF2dWEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZmFpbGVkOiAlcyIKK21zZ3N0ciAia2lyam9pdHRhbWluZW4gZXDDpG9ubmlzdHVpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibGNob3duIGVww6Rvbm5pc3R1aTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiY2hvd24gZXDDpG9ubmlzdHVpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ1dGltZSBlcMOkb25uaXN0dWk6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtkaXIgZmFpbGVkOiAlcyIKK21zZ3N0ciAibWtkaXIgZXDDpG9ubmlzdHVpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICJ0aWVkb3N0b25pbWVuIHBpdHV1cyBvbiBub2xsYSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxNAorbXNnaWQgImJhZCBmaWxlbmFtZSBsZW5ndGgiCittc2dzdHIgInZpcmhlZWxsaW5lbiB0aWVkb3N0b25pbWVuIHBpdHV1cyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUyMQorbXNnaWQgImJhZCBpbm9kZSBvZmZzZXQiCittc2dzdHIgInZpcmhlZWxsaW5lbiBpLXNvbG11biBzaWlydHltw6QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MzcKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZSIKK21zZ3N0ciAidGllZG9zdG9uIGktc29sbXVuIHNpaXJ0eW3DpCBvbiBub2xsYSBtdXR0YSBrb2tvIGVpIG9sZSBub2xsYSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU0MAorbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gc2l6ZSBhbmQgbm9uLXplcm8gb2Zmc2V0IgorbXNnc3RyICJ0aWVkb3N0b24gaS1zb2xtdW4ga29rbyBvbiBub2xsYSBtdXR0YSBzaWlydHltw6QgZWkgb2xlIG5vbGxhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTcxCittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBvZmZzZXQiCittc2dzdHIgInN5bWJvbGlzZW4gbGlua2luIHNpaXJ0eW3DpCBvbiBub2xsYSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3NAorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gc2l6ZSIKK21zZ3N0ciAic3ltYm9saXNlbiBsaW5raW4ga29rbyBvbiBub2xsYSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICJrb2tvdmlyaGUgc3ltbGlua2lzc8OkOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJmc3luYyBlcMOkb25uaXN0dWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlY2lhbCBmaWxlIGhhcyBub24temVybyBvZmZzZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlmbyBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQgaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICJwaXN0b2trZWVuIGtva28gZWkgb2xlIG5vbGxhOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJib2d1cyBtb2RlOiAlcyAoJW8pIgorbXNnc3RyICJ2aXJoZWVsbGluZW4gdGlsYTogJXMgKCVvKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgYy1mb3JtYXQKK21zZ2lkICJta25vZCBmYWlsZWQ6ICVzIgorbXNnc3RyICJta25vZCBlcMOkb25uaXN0dWk6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIHN0YXJ0ICglbGQpIDwgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgZW5kICglbGQpICE9IGZpbGUgZGF0YSBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorIiVzOiB2aXJoZWVsbGluZW4gY3JhbWZzLS1oYWtlbWlzdG9kYXRhbiBsb3BwdSAoJWxkKSAhPSB0aWVkb3N0b2RhdGFuIGFsa3UgKCUiCisibGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBmaWxlIGRhdGEgb2Zmc2V0IgorbXNnc3RyICIlczogdmlyaGVlbGxpbmVuIGNyYW1mcy0tdmlyaGVlbGxpbmVuIHRpZWRvc3RvZGF0YW4gc2lpcnR5bcOkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MTQKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlIG91dGJ1ZmZlciIKK21zZ3N0ciAiUHVza3VyaWEgZWkgdm9pIHZhcmF0YS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworbXNnaWQgImNvbXBpbGVkIHdpdGhvdXQgLXggc3VwcG9ydCIKK21zZ3N0ciAia8Okw6RubmV0dHkgaWxtYW4gLXgtdHVrZWEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1sYXJ2c21mXSAvZGV2L25hbWVcbiIKK21zZ3N0ciAiS8OkeXR0w7Y6ICVzIFstbGFydnNtZl0gL2Rldi9uaW1pXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiJXMgb24gbGlpdGV0dHkuXHQgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjUKK21zZ2lkICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiCittc2dzdHIgIkhhbHVhdGtvIHZhcm1hc3RpIGphdGthYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgInRhcmtpc3R1cyBrZXNrZXl0ZXR0eS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzQ4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yIDwgRklSU1RaT05FIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIlZ5w7ZoeWtlbnVtZXJvIDwgRklSU1RaT05FIHRpZWRvc3Rvc3NhIOKAnSVz4oCdLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzUyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yID49IFpPTkVTIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIlZ5w7ZoeWtlbnVtZXJvIOKJpSBaT05FUyB0aWVkb3N0b3NzYSDigJ0lc+KAnS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozODAKK21zZ2lkICJSZW1vdmUgYmxvY2siCittc2dzdHIgIlBvaXN0YSBsb2hrbyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IHVuYWJsZSB0byBzZWVrIHRvIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJMdWt1dmlyaGU6IHNpaXJ0eW1pbmVuIGxvaGtvb24gZWkgb25uaXN0dSB0aWVkb3N0b3NzYSDigJ0lc+KAnVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJMdWt1dmlyaGU6IHZpYWxsaW5lbiBsb2hrbyB0aWVkb3N0b3NzYSDigJ0lc+KAnVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyJTaXPDpGluZW4gdmlyaGU6IHlyaXRldMOkw6RuIGtpcmpvaXR0YWEgdmlhbGxpc3RhIGxvaGtvYVxuIgorIktpcmpvaXR1c3B5eW50w7bDpCBlaSBodW9taW9pZGFcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJzaWlydHltaW5lbiBlcMOkb25uaXN0dWkgZnVua3Rpb3NzYSB3cml0ZV9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI4CisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRlIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIktpcmpvaXR1c3ZpcmhlOiB2aWFsbGluZW4gbG9oa28gdGllZG9zdG9zc2Eg4oCdJXPigJ1cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgInNpaXJ0eW1pbmVuIGVww6Rvbm5pc3R1aSBmdW5rdGlvc3NhIHdyaXRlX3N1cGVyX2Jsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NDYgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk0Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHN1cGVyLWJsb2NrIgorbXNnc3RyICJzdXBlcmxvaGtvbiBraXJqb2l0dXMgZWkgb25uaXN0dSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiSS1zb2xtdWthcnR0YWEgZWkgdm9pIGtpcmpvaXR0YWEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1OAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiVnnDtmh5a2VrYXJ0YW4ga2lyam9pdHVzIGVpIG9ubmlzdHUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU2MAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgIkktc29sbXVqYSBlaSB2b2kga2lyam9pdHRhYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTg3Cittc2dpZCAic2VlayBmYWlsZWQiCittc2dzdHIgInNpaXJ0eW1pbmVuIGVww6Rvbm5pc3R1aSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICJrYXJ0b2lsbGUgZWkgdm9pIHZhcmF0YSBwdXNrdXJlaXRhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAic3VwZXJsb2hrb2EgZWkgdm9pIGx1a2VhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJ2aXJoZWVsbGluZW4gdGFpa2FsdWt1IHN1cGVybG9oa29zc2EiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNAorbXNnaWQgIk9ubHkgMWsgYmxvY2tzL3pvbmVzIHN1cHBvcnRlZCIKK21zZ3N0ciAiVmFpbiAxay1sb2hrb3QvdnnDtmh5a2tlZXQgb3ZhdCB0dWV0dHVqYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE2Cittc2dpZCAiYmFkIHNfaW1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgInZpcmhlZWxsaW5lbiBzX2ltYXBfYmxvY2tzLWtlbnR0w6Qgc3VwZXJsb2hrb3NzYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE4Cittc2dpZCAiYmFkIHNfem1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgInZpcmhlZWxsaW5lbiBzX3ptYXBfYmxvY2tzLWtlbnR0w6Qgc3VwZXJsb2hrb3NzYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI1Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgbWFwIgorbXNnc3RyICJJLXNvbG11a2FydGFsbGUgZWkgdm9pIHZhcmF0YSBwdXNrdXJpYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI4Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBtYXAiCittc2dzdHIgIlZ5w7ZoeWtla2FydGFsbGUgZWkgdm9pIHZhcmF0YSBwdXNrdXJpYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJJLXNvbG11aWxsZSBlaSB2b2kgdmFyYXRhIHB1c2t1cmlhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzYKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBjb3VudCIKK21zZ3N0ciAiSS1zb2xtdWplbiBsYXNrZW1pc2VlbiBlaSB2b2kgdmFyYXRhIHB1c2t1cmlhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIGNvdW50IgorbXNnc3RyICJWecO2aHlra2VlbiBsYXNrZW1pc2VlbiBlaSB2b2kgdmFyYXRhIHB1c2t1cmlhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDEKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZSBtYXAiCittc2dzdHIgIkktc29sbXVrYXJ0dGFhIGVpIHZvaSBsdWtlYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgIlZ5w7ZoeWtla2FydHRhYSBlaSB2b2kgbHVrZWEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlcyIKK21zZ3N0ciAiSS1zb2xtdWphIGVpIHZvaSBsdWtlYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICJWYXJvaXR1czogRW5zaW1tw6RpbmVudnnDtmh5a2UgIT0gTm9ybV9lbnNpbW3DpGluZW52ecO2aHlrZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkIGktc29sbXVhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGJsb2Nrc1xuIgorbXNnc3RyICIlbGQgbG9oa29hXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NCBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3RkYXRhem9uZT0lbGQgKCVsZClcbiIKK21zZ3N0ciAiRW5zaW1tw6RpbmVuZGF0YXZ5w7ZoeWtlPSVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmVzaXplPSVkXG4iCittc2dzdHIgIlZ5w7ZoeWtla29rbz0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF4c2l6ZT0lbGRcbiIKK21zZ3N0ciAiTWF4a29rbz0lbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKK21zZ3N0ciAiVGllZC5qw6Ryai4gdGlsYT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIm5pbWVucGl0dXVzPSVkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3MyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgYnV0IHVzZWQgZm9yIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJLw6R5dHTDpG3DpHR0w7Ztw6Rrc2kgbWVya2l0dHnDpCBpLXNvbG11YSAlZCBrw6R5dGV0w6TDpG4gdGllZG9zdG9vbiDigJ0lc+KAnVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI4Cittc2dpZCAiTWFyayBpbiB1c2UiCittc2dzdHIgIk1lcmtpdHNlIGvDpHl0dMO2w7ZuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIgorbXNnc3RyICJUaWVkb3N0b2xsYSDigJ0lc+KAnSBvbiB0aWxhICUwNW9cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzA2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpbm9kZSBjb3VudCB0b28gYmlnLlxuIgorbXNnc3RyICJWYXJvaXR1cyBpLXNvbG11amVuIG3DpMOkcsOkIG9uIGxpaWFuIHN1dXJpLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAianV1cmVuIGktc29sbXUgZWkgb2xlIGhha2VtaXN0byIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzg4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMQorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayBoYXMgYmVlbiB1c2VkIGJlZm9yZS4gTm93IGluIGZpbGUgYCVzJy4iCittc2dzdHIgIkxvaGtvYSBvbiBrw6R5dGV0dHkgYWlrYWlzZW1taW4uIE55dCB0aWVkb3N0b3NzYSDigJ0lc+KAnS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc5MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjMKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NQorIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjEwCittc2dpZCAiQ2xlYXIiCittc2dzdHIgIlR5aGplbm7DpCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICJMb2hrbyAlZCB0aWVkb3N0b3NzYSDigJ0lc+KAnSBvbiBtZXJraXR0eSBrw6R5dHTDpG3DpHR0w7Ztw6Rrc2kuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiS29yamFhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZGlyZWN0b3J5ICclcycgY29udGFpbnMgYSBiYWQgaW5vZGUgbnVtYmVyIGZvciBmaWxlICclLipzJy4iCittc2dzdHIgIiIKKyJIYWtlbWlzdG8g4oCdJXPigJ0gc2lzw6RsdMOkw6QgdmlyaGVlbGxpc2VuIGktc29sbXVudW1lcm9uIHRpZWRvc3RvbGxlIOKAnSUuKnPigJ0uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBQb2lzdGEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKK21zZ3N0ciAiJXM6IHZpYWxsaW5lbiBoYWtlbWlzdG86IOKAnS7igJ0gZWkgb2xlIGVuc2ltbcOkaXNlbsOkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorbXNnc3RyICIlczogdmlhbGxpbmVuIGhha2VtaXN0bzog4oCdLi7igJ0gZWkgb2xlIHRvaXNlbmFcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTE5Cittc2dpZCAiaW50ZXJuYWwgZXJyb3IiCittc2dzdHIgInNpc8OkaW5lbiB2aXJoZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwNCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiBzaXplIDwgMzIiCittc2dzdHIgIiVzOiB2aWFsbGluZW4gaGFrZW1pc3RvOiBrb2tvIDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAic2lpcnR5bWluZW4gZXDDpG9ubmlzdHVpIGZ1bmt0aW9zc2EgYmFkX3pvbmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDUgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtb2RlIG5vdCBjbGVhcmVkLiIKK21zZ3N0ciAiSS1zb2xtdW4gJWQgdGlsYSBlaSBvbGUgdHloamVubmV0dHkuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbm90IHVzZWQsIG1hcmtlZCB1c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJJLXNvbG11YSAlZCBlaSBrw6R5dGV0w6QsIG1lcmtpdHR5IGvDpHl0ZXR5a3NpIGJpdHRpa2FydGFzc2EuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiSS1zb2xtdSAlZCBrw6R5dMO2c3PDpCwgbWVya2l0dHkga8OkeXR0w6Rtw6R0dMO2bcOka3NpIGJpdHRpa2FydGFzc2EuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTYKK21zZ2lkICJTZXQiCittc2dzdHIgIkFzZXRhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJLXNvbG11ICVkICh0aWxhID0gJTA3byksIGlfbGlua2tpbcOkw6Ryw6Q9JWQsIGxhc2tldHR1PSVkLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIyCittc2dpZCAiU2V0IGlfbmxpbmtzIHRvIGNvdW50IgorbXNnc3RyICJBc2V0YSBpX2xpbmtraW3DpMOkcsOkIGxhc2tldHVuIG11a2Fpc2Vrc2kiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICJWecO2aHlrZSAlZDogbWVya2l0dHkga8OkeXR0w7bDtm4sIG11dHRhIG1pa8Okw6RuIHRpZWRvc3RvIGVpIGvDpHl0w6Qgc2l0w6QuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIlBvaXN0YSBtZXJraW50w6QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiVnnDtmh5a2UgJWQ6IGvDpHl0w7Zzc8OkLCBsYXNrZXR0dT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbm90IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJWecO2aHlrZSAlZDogZWkga8OkeXTDtnNzw6QsIGxhc2tldHR1PSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODkgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc3CisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzkKK21zZ2lkICJiYWQgaW5vZGUgc2l6ZSIKK21zZ3N0ciAidmlyaGVlbGxpbmVuIGktc29sbXVuIGtva28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyOTEKK21zZ2lkICJiYWQgdjIgaW5vZGUgc2l6ZSIKK21zZ3N0ciAidmlyaGVlbGxpbmVuIHYyIGktc29sbXVuIGtva28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMTcKK21zZ2lkICJuZWVkIHRlcm1pbmFsIGZvciBpbnRlcmFjdGl2ZSByZXBhaXJzIgorbXNnc3RyICJ2dW9yb3ZhaWt1dHRlaXNpaW4ga29yamF1a3NpaW4gdGFydml0YWFuIHDDpMOkdGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJyVzJzogJXMiCittc2dzdHIgImxhaXRldHRhIOKAnSVz4oCdIGVpIHZvaSBhdmF0YTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgY2xlYW4sIG5vIGNoZWNrLlxuIgorbXNnc3RyICIlcyBvbiBwdWhkYXMsIGVpIHRhcmtpc3R1c3RhLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcmNpbmcgZmlsZXN5c3RlbSBjaGVjayBvbiAlcy5cbiIKK21zZ3N0ciAiUGFrb3RldGFhbiB0aWVkb3N0b2rDpHJqZXN0ZWxtw6RuIHRhcmtpc3R1cyBsYWl0dGVlbGxhICVzLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gb24gJXMgaXMgZGlydHksIG5lZWRzIGNoZWNraW5nLlxuIgorbXNnc3RyICJUaWVkb3N0b2rDpHJqZXN0ZWxtw6QgbGFpdHRlZWxsYSAlcyBvbiBsaWthaW5lbiwgdmFhdGlpIHRhcmtpc3R1a3Nlbi5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZsZCBpbm9kZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmxkIGktc29sbXVhIGvDpHl0ZXR0eSAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTZsZCB6b25lcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiJTZsZCB2ecO2aHlrZXR0w6Qga8OkeXRldHR5ICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZkIHJlZ3VsYXIgZmlsZXNcbiIKKyIlNmQgZGlyZWN0b3JpZXNcbiIKKyIlNmQgY2hhcmFjdGVyIGRldmljZSBmaWxlc1xuIgorIiU2ZCBibG9jayBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgbGlua3NcbiIKKyIlNmQgc3ltYm9saWMgbGlua3NcbiIKKyItLS0tLS1cbiIKKyIlNmQgZmlsZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2ZCB0YXZhbGxpc3RhIHRpZWRvc3RvYVxuIgorIiU2ZCBoYWtlbWlzdG9hXG4iCisiJTZkIG1lcmtraWxhaXRldGllZG9zdG9hXG4iCisiJTZkIGxvaGtvbGFpdGV0aWVkb3N0b2FcbiIKKyIlNmQgbGlua2tpw6RcbiIKKyIlNmQgc3ltYm9saXN0YSBsaW5ra2nDpFxuIgorIi0tLS0tLVxuIgorIiU2ZCB0aWVkb3N0b2FcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkZJTEUgU1lTVEVNIEhBUyBCRUVOIENIQU5HRURcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIlRJRURPU1RPSsOEUkpFU1RFTE3DhMOEIE9OIE1VVVRFVFRVXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IGF2YWFtaW5lbiBlcMOkb25uaXN0dWk6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogdmlyaGUgc2lpcnJ5dHTDpGVzc8OkIHRpZWRvc3Rvc3NhICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogdmlyaGUgbHVldHRhZXNzYSB0aWVkb3N0b2EgJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvciBjb3VudDogJWQsIHNlY3RvciBzaXplOiAlZFxuIgorbXNnc3RyICJzZWt0b3JpbcOkw6Ryw6Q6ICVkLCBzZWt0b3Jpa29rbzogJWRcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAiJXM6IHZpcmhlIHZhbGl0c2ltaWVuIGrDpHNlbm55a3Nlc3PDpFxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLWltYWdlXG4iCittc2dzdHIgIkvDpHl0dMO2OiAlcyBbLXhdIFstZCA8bnJvPl0gaXNvOTY2MC12ZWRvc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXZdIFstTiBuci1vZi1pbm9kZXNdIFstViB2b2x1bWUtbmFtZV1cbiIKKyIgICAgICAgWy1GIGZzbmFtZV0gZGV2aWNlIFtibG9jay1jb3VudF1cbiIKK21zZ3N0ciAiIgorIkvDpHl0dMO2OiAlcyBbLXZdIFstTiBpLXNvbG11bcOkw6Ryw6RdIFstViBvc2lvbmltaV1cbiIKKyIgICAgICAgWy1GIHRpZWQuasOkcmoubmltaV0gbGFpdGUgW2xvaGtvbcOkw6Ryw6RdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAib3Npb25pbWkgb24gbGlpYW4gcGl0a8OkIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgInRpZWRvc3RvasOkcmplc3RlbG3DpG4gbmltaSBvbiBsaWlhbiBwaXRrw6QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJsYWl0dGVlbiAlcyB0aWxhYSBlaSB2b2kgbHVrZWEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIGVpIG9sZSBsb2hrb2xhaXRlIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAibGFpdGV0dGEgJXMgZWkgdm9pIGF2YXRhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgc2l6ZSBvZiAlcyIKK21zZ3N0ciAibGFpdHRlZW4gJXMga29rb2EgZWkgdm9pIGhha2VhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTg3CisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrcyBhcmd1bWVudCB0b28gbGFyZ2UsIG1heCBpcyAlbGx1IgorbXNnc3RyICJibG9ja3MtYXJndW1lbnR0aSBvbiBsaWlhbiBzdXVyaSwgbWFrc2ltaSBvbiAlbGx1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjAyCittc2dpZCAidG9vIG1hbnkgaW5vZGVzIC0gbWF4IGlzIDUxMiIKK21zZ3N0ciAibGlpYW4gbW9udGEgaS1zb2xtdWEg4oCTIG1ha3NpbWkgb24gNTEyIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UsIG5lZWQgYXQgbGVhc3QgJWxsdSBibG9ja3MiCittc2dzdHIgInRpbGEgZWkgcmlpdMOkLCB2YWFkaXRhYW4gdsOkaGludMOkw6RuICVsbHUgbG9oa29hIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjIzIGZkaXNrL2ZkaXNrLmM6MjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2U6ICVzXG4iCittc2dzdHIgIkxhaXRlOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlZvbHVtZTogPCUtNnM+XG4iCittc2dzdHIgIk9zaW86IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIlRpZWRqw6Ryai5uaW1pOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIkxvaGtvS29rbzogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJJLXNvbG11amE6ICVkICgxIGxvaGtvc3NhKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluICVsbGQgYmxvY2tzKVxuIgorbXNnc3RyICJJLXNvbG11amE6ICVkICglbGxkIGxvaGtvc3NhKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrczogJWxsZFxuIgorbXNnc3RyICJMb2hrb3Q6ICVsbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAiSS1zb2xtdW4gbG9wcHU6ICVkLCBEYXRhbiBsb3BwdTogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzOQorbXNnaWQgImVycm9yIHdyaXRpbmcgc3VwZXJibG9jayIKK21zZ3N0ciAidmlyaGUga2lyam9pdGV0dGFlc3NhIHN1cGVybG9oa29hIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjU5Cittc2dpZCAiZXJyb3Igd3JpdGluZyByb290IGlub2RlIgorbXNnc3RyICJ2aXJoZSBraXJqb2l0ZXR0YWVzc2EganV1cmVuIGktc29sbXVhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBpbm9kZSIKK21zZ3N0ciAidmlyaGUga2lyam9pdGV0dGFlc3NhIGktc29sbXVhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAic2lpcnR5bWlzdmlyaGUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKK21zZ2lkICJlcnJvciB3cml0aW5nIC4gZW50cnkiCittc2dzdHIgInZpcmhlIGtpcmpvaXRldHRhZXNzYSDigJ0u4oCdLW1lcmtpbnTDpMOkIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6Mjc3Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAidmlyaGUga2lyam9pdGV0dGFlc3NhIOKAnS4u4oCdLW1lcmtpbnTDpMOkIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNsb3NpbmcgJXMiCittc2dzdHIgInZpcmhlIHN1bGpldHRhZXNzYSBsYWl0ZXR0YSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICIiCisiS8OkeXR0w7Y6IG1rZnMgWy1WXSBbLXQgdGllZC5qw6Ryai4gdHl5cHBpXSBbdGllZC5qw6Ryai52YWxpdHNpbWV0XSBsYWl0ZSAiCisiW2tva29dXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjg4IGRpc2stdXRpbHMvbWtmcy5jOjk2IGZkaXNrL2NmZGlzay5jOjM1MworIzogZ2V0b3B0L2dldG9wdC5jOjg2IGdldG9wdC9nZXRvcHQuYzo5NiBsb2dpbi11dGlscy93YWxsLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPdXQgb2YgbWVtb3J5IVxuIgorbXNnc3RyICIlczogTXVpc3RpIGxvcHVzc2EhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICJta2ZzICglcylcbiIKK21zZ3N0ciAibWtmcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisia8OkeXR0w7Y6ICVzIFstaF0gWy12XSBbLWIgbGtva29dIFstZSBsYWl0b3NdIFstTiB0YXZ1asOkcmpdIFstaSB0aWVkXSBbLW4gIgorIm5pbWldIGhha25pbWkgdHVsb3N0aWVkXG4iCisiIC1oICAgICAgICAgIG7DpHl0w6QgdMOkbcOkIG9oamVcbiIKKyIgLXYgICAgICAgICAgbW9uaXNhbmFpc3V1c1xuIgorIiAtRSAgICAgICAgICBrw6RzaXR0ZWxlIHZhcm9pdHVrc2V0IHZpcmhlaW7DpCAobm9sbGFzdGEgcG9pa2tlYXZhIHBhbHV1YXJ2bylcbiIKKyIgLWIgbGtva28gICAga8OkeXTDpCB0w6R0w6QgbG9oa29rb2tvYSwgb24gb2x0YXZhIHNhbWEga3VpbiBzaXZ1a29rb1xuIgorIiAtZSBsYWl0b3MgICBhc2V0YSBsYWl0b3NudW1lcm8gKG9zYSB0aWVkLmrDpHJqLWlkOnTDpClcbiIKKyIgLU4gdGF2dWrDpHJqIGFzZXRhIGNyYW1mczpuIHRhdnVqw6RyamVzdHlzIChiaWd8bGl0dGxlfGhvc3QpLCBvbGV0dXMgaG9zdFxuIgorIiAtaSB0aWVkICAgICBzaXPDpGxseXTDpCB0aWVkb3N0b3ZlZG9zIHRpZWRvc3RvasOkcmplc3RlbG3DpMOkbiAodmFhdGlpIOKJpSAyLjQuMDoiCisibilcbiIKKyIgLW4gbmltaSAgICAgYXNldGEgY3JhbWZzLXRpZWRvc3RvasOkcmplc3RlbG3DpG4gbmltaVxuIgorIiAtcCAgICAgICAgICB0YXNhYSAlZCB0YXZ1bGxhIGvDpHlubmlzdHlza29vZGlhIHZhcnRlblxuIgorIiAtcyAgICAgICAgICBsYWppdHRlbGUgaGFrZW1pc3RvbWVya2lubsOkdCAodmFuaGEgdmFsaXRzaW4sIGVpIGh1b21pb2lkYSlcbiIKKyIgLXogICAgICAgICAgdGVlIHJlaWtpw6QgKHZhYXRpaSDiiaUgMi4zLjM5Om4pXG4iCisiIGhha25pbWkgICAgIHRpaXZpc3RldHTDpHbDpG4gdGllZG9zdG9qw6RyamVzdGVsbcOkbiBqdXVyaVxuIgorIiB0dWxvc3RpZWQgICB0dWxvc3RpZWRvc3RvXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIkzDtnl0eWkgaHl2aW4gcGl0a8OkIHRpZWRvc3RvbmltaSDigJ0lMiRz4oCdICglMSR6dSB0YXZ1YSkuXG4iCisiIEthc3ZhdGEgTUFYX0lOUFVUX05BTUVMRU4tYXJ2b2EgdGllZG9zdG9zc2EgbWtjcmFtZnMuYyBqYSBrw6TDpG5uw6QgdXVkZWxsZWVuLiAiCisiUG9pc3R1dGFhbi5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICJ0aWVkb3N0b2rDpHJqZXN0ZWxtw6Qgb24gbGlpYW4gc3V1cmkuIFBvaXN0dXRhYW4uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQUlFRUU6IGJsb2NrIFwiY29tcHJlc3NlZFwiIHRvID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorbXNnc3RyICJBSUVFRTog4oCddGlpdmlzdGV0eW7igJ0gbG9oa29uIGtva28gPiAyKmxvaGtva29rbyAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2xkIHRhdnVhKVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ3Vlc3RpbWF0ZSBvZiByZXF1aXJlZCBzaXplICh1cHBlciBib3VuZCkgaXMgJWxsZE1CLCBidXQgbWF4aW11bSAiCisiaW1hZ2Ugc2l6ZSBpcyAldU1CLiAgV2UgbWlnaHQgZGllIHByZW1hdHVyZWx5LlxuIgorbXNnc3RyICIiCisidmFyb2l0dXM6IGFydmlva29rbyAoeWzDpHJhamEpIG9uICVsbGQgTXQsIG11dHRhIHZlZG9rc2VuIGVuaW1tw6Rpc2tva28gb24gJXUgIgorIk10LiBQcm9zZXNzaSBzYWF0dGFhIHDDpMOkdHR5w6QgZW5uZW5haWthaXNlc3RpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiU2lzw6RsbHl0ZXTDpMOkbjogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXJlY3RvcnkgZGF0YTogJXpkIGJ5dGVzXG4iCittc2dzdHIgIkhha2VtaXN0b2RhdGE6ICV6ZCB0YXZ1YVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkV2ZXJ5dGhpbmc6ICV6ZCBraWxvYnl0ZXNcbiIKK21zZ3N0ciAiS2Fpa2tpOiAlemQga2lsb3RhdnVhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJTdXBlcmxvaGtvOiAlemQgdGF2dWFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDUkM6ICV4XG4iCittc2dzdHIgIkNSQzogJXhcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyNQorIywgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlIGFsbG9jYXRlZCBmb3IgUk9NIGltYWdlICglbGxkIGFsbG9jYXRlZCwgJXp1IHVzZWQpXG4iCittc2dzdHIgIiIKKyJST00tdmVkb2tzZWxsZSBlaSBvbGUgdmFyYXR0dSByaWl0dMOkdsOkc3RpIHRpbGFhICglbGxkIHZhcmF0dHUsICV6dSAiCisia8OkeXRldHR5KVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTMzCittc2dpZCAiUk9NIGltYWdlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiUk9NLXZlZG9rc2VuIGtpcmpvaXR1cyBlcMOkb25uaXN0dWkgKCV6ZCAlemQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZW5hbWVzIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMuXG4iCittc2dzdHIgInZhcm9pdHVzOiB0aWVkb3N0b25pbWV0IHR5cGlzdGV0w6TDpG4gMjU1IHRhdnV1bi5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlcyB3ZXJlIHNraXBwZWQgZHVlIHRvIGVycm9ycy5cbiIKK21zZ3N0ciAidmFyb2l0dXM6IHRpZWRvc3RvamEgb2hpdGV0dGlpbiB2aXJoZWlkZW4gdGFraWEuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgIiIKKyJ2YXJvaXR1czogdGllZG9zdG9qZW4ga29vdCB0eXBpc3RldHR5ICVsdSBtZWdhdGF2dXVuIChtaWludXMgMSB0YXZ1KS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogdWlkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICJ2YXJvaXR1czogdWlkOnQgdHlwaXN0ZXR0eSAldSBiaXR0aWluLiAoVMOkbcOkIHZvaSBvbGxhIHR1cnZhb25nZWxtYS4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAidmFyb2l0dXM6IGdpZDp0IHR5cGlzdGV0dHkgJXUgYml0dGlpbi4gKFTDpG3DpCB2b2kgb2xsYSB0dXJ2YW9uZ2VsbWEuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorIlZBUk9JVFVTOiBsYWl0ZW51bWVyb3QgdHlwaXN0ZXR0eSAldSBiaXR0aWluLiBUw6Rtw6QgdGFya29pdHRhYSBsw6RoZXNcbiIKKyJ2YXJtYXN0aSwgZXR0w6Qgam90a3V0IGxhaXRldGllZG9zdG90IG92YXQgdsOkw6RyaW4uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIkvDpHl0dMO2OiAlcyBbLWMgfCAtbCB0aWVkb3N0b25pbWldIFstblhYXSBbLWlYWF0gL2Rldi9uaW1pIFtsb2hrb3RdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiJXMgb24gbGlpdGV0dHk7IGVpIHRlaGTDpCB0aWVkb3N0b2rDpHJqZXN0ZWxtw6TDpCB0w6Row6RuISIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTg4Cittc2dpZCAic2VlayB0byBib290IGJsb2NrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgInNpaXJ0eW1pbmVuIGvDpHlubmlzdHlzbG9oa29vbiBlcMOkb25uaXN0dWkgZnVua3Rpb3NzYSB3cml0ZV90YWJsZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MAorbXNnaWQgInVuYWJsZSB0byBjbGVhciBib290IHNlY3RvciIKK21zZ3N0ciAia8OkeW5uaXN0eXNzZWt0b3JpbiB0eWhqZW50w6RtaW5lbiBlaSBvbm5pc3R1IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTIKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgInNpaXJ0eW1pbmVuIGVww6Rvbm5pc3R1aSBmdW5rdGlvc3NhIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk2Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiaS1zb2xtdWthcnR0YWEgZWkgdm9pIGtpcmpvaXR0YWEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAidnnDtmh5a2VrYXJ0dGFhIGVpIHZvaSBraXJqb2l0dGFhIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDAKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJpLXNvbG11amEgZWkgdm9pIGtpcmpvaXR0YWEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwOQorbXNnaWQgIndyaXRlIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAia2lyam9pdHVzIGVww6Rvbm5pc3R1aSBmdW5rdGlvc3NhIHdyaXRlX2Jsb2NrIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMTcgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjkxCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzozNDAKK21zZ2lkICJ0b28gbWFueSBiYWQgYmxvY2tzIgorbXNnc3RyICJsaWlhbiBtb250YSB2aWFsbGlzdGEgbG9oa29hIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMjUKK21zZ2lkICJub3QgZW5vdWdoIGdvb2QgYmxvY2tzIgorbXNnc3RyICJlaSByaWl0dMOkdsOkc3RpIGVoamnDpCBsb2hrb2phIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDAKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVycyBmb3IgbWFwcyIKK21zZ3N0ciAia2FydG9pbGxlIGVpIHZvaSB2YXJhdGEgcHVza3VyZWl0YSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQ5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJpLXNvbG11aWxsZSBlaSB2b2kgdmFyYXRhIHB1c2t1cmVpdGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTWF4c2l6ZT0lbGRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIk1heGtva289JWxkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ2OQorbXNnaWQgInNlZWsgZmFpbGVkIGR1cmluZyB0ZXN0aW5nIG9mIGJsb2NrcyIKK21zZ3N0ciAic2lpcnR5bWluZW4gZXDDpG9ubmlzdHVpIGxvaGtvamVuIHRlc3RhdWtzZW4gYWlrYW5hIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2VpcmQgdmFsdWVzIGluIGRvX2NoZWNrOiBwcm9iYWJseSBidWdzXG4iCittc2dzdHIgIk91dG9qYSBhcnZvamEgZnVua3Rpb3NzYSBkb19jaGVjazogdG9kZW5uw6Rrw7Zpc2VzdGkgb2hqZWxtaXN0b3Zpa29qYVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MDggZGlzay11dGlscy9ta3N3YXAuYzozMTUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBjaGVja19ibG9ja3MiCittc2dzdHIgInNpaXJ0eW1pbmVuIGVww6Rvbm5pc3R1aSBmdW5rdGlvc3NhIGNoZWNrX2Jsb2NrcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTE3Cittc2dpZCAiYmFkIGJsb2NrcyBiZWZvcmUgZGF0YS1hcmVhOiBjYW5ub3QgbWFrZSBmcyIKK21zZ3N0ciAiIgorInZpcmhlZWxsaXNpw6QgbG9oa29qYSBlbm5lbiBkYXRhLWFsdWV0dGE6IHRpZWRvc3RvasOkcmplc3RlbG3DpMOkIGVpIHZvaSBsdW9kYSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTIzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBiYWQgYmxvY2tzXG4iCittc2dzdHIgIiVkIHZpYWxsaXN0YSBsb2hrb2FcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIGJsb2NrXG4iCittc2dzdHIgInlrc2kgdmlhbGxpbmVuIGxvaGtvXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzNQorbXNnaWQgImNhbid0IG9wZW4gZmlsZSBvZiBiYWQgYmxvY2tzIgorbXNnc3RyICJ2aWFsbGlzZXQgbG9oa290IHNpc8OkbHTDpHbDpMOkIHRpZWRvc3RvYSBlaSB2b2kgYXZhdGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWRibG9jayBudW1iZXIgaW5wdXQgZXJyb3Igb24gbGluZSAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0MAorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJiYWRibG9ja3MtdGllZG9zdG9hIGVpIHZvaSBsdWtlYSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgInN0cnRvbCBlcnJvcjogbnVtYmVyIG9mIGJsb2NrcyBub3Qgc3BlY2lmaWVkIgorbXNnc3RyICJzdHJ0b2wtdmlyaGU6IGxvaGtvamVuIG3DpMOkcsOkw6QgZWkgb2xlIGFubmV0dHUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAidGllZG9zdG9uICVzIHRpbGFhIGVpIHZvaSBsdWtlYSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJsYWl0ZXR0YSAlcyBlaSB2b2kgYXZhdGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIKK21zZ3N0ciAibGFpdHRlZW4gJXMgc2VrdG9yaWtva29hIGVpIHZvaWRhIHDDpMOkdGVsbMOkIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgImxhaXR0ZWVuICVzIGtva29hIGVpIHZvaSBoYWtlYSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIndpbGwgbm90IHRyeSB0byBtYWtlIGZpbGVzeXN0ZW0gb24gJyVzJyIKK21zZ3N0ciAiZWkgeXJpdGV0w6QgbHVvZGEgdGllZG9zdG9qw6RyamVzdGVsbcOkw6Qga29odGVlc2VlbiDigJ0lc+KAnSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjY1CisjLCBmdXp6eQorbXNnaWQgIm51bWJlciBvZiBibG9ja3MgdG9vIHNtYWxsIgorbXNnc3RyICJTZWt0b3JpZW4gbcOkw6Ryw6QiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWRcbiIKK21zZ3N0ciAiS8OkeXR0w6Rqw6RuIGFudGFtYSBzaXZ1a29rbyAlZCBvbiB2aXJoZWVsbGluZW5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiIgorIkvDpHl0ZXTDpMOkbiBrw6R5dHTDpGrDpG4gYW50YW1hYSBzaXZ1a29rb2EgJWQgasOkcmplc3RlbG3DpG4gYXJ2b24gJWQgc2lqYWFuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBzd2FwIGhlYWRlciBzaXplLCBubyBsYWJlbCB3cml0dGVuLlxuIgorbXNnc3RyICJWaXJoZWVsbGluZW4gc2l2dXR1c290c2Fra2VlbiBrb2tvLCBuaW1pw7Z0w6QgZWkga2lyam9pdGV0dHUuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxhYmVsIHdhcyB0cnVuY2F0ZWQuXG4iCittc2dzdHIgIk5pbWnDtnTDpCBseWhlbm5ldHRpaW4uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGxhYmVsLCAiCittc2dzdHIgImVpIG5pbWnDtnTDpCwgIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1dWlkXG4iCittc2dzdHIgImVpIHV1aWQ6dMOkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIkvDpHl0dMO2OiAlcyBbLWNdIFstcFNJVlVLT0tPXSBbLUwgbmltacO2XSBbLVUgVVVJRF0gL2Rldi9uaW1pIFtsb2hrb3RdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICJsaWlhbiBtb250YSB2aWFsbGlzdGEgc2l2dWEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzEwIG1pc2MtdXRpbHMvbG9vay5jOjE4MiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTc5CisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDE2IHRleHQtdXRpbHMvbW9yZS5jOjIwMjcKK21zZ2lkICJPdXQgb2YgbWVtb3J5IgorbXNnc3RyICJNdWlzdGkgbG9wdXNzYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBwYWdlXG4iCittc2dzdHIgInlrc2kgdmlhbGxpbmVuIHNpdnVcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IGJhZCBwYWdlc1xuIgorbXNnc3RyICIlbHUgdmlhbGxpc3RhIHNpdnVhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDAyIGRpc2stdXRpbHMvbWtzd2FwLmM6NDM5IGRpc2stdXRpbHMvbWtzd2FwLmM6NjU5Cittc2dpZCAidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIKK21zZ3N0ciAic2l2dXR1c2xhaXR0ZWVsbGEgZWkgdm9pIHNpaXJ0ecOkIHRhYWtzZXDDpGluIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgbmV3IGxpYmJsa2lkIHByb2JlIgorbXNnc3RyICJpLXNvbG11aWxsZSBlaSB2b2kgdmFyYXRhIHB1c2t1cmVpdGEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDE1Cittc2dpZCAidW5hYmxlIHRvIGFzc2lnbiBkZXZpY2UgdG8gbGlibGtpZCBwcm9iZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0MworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gZXJhc2UgYm9vdGJpdHMgc2VjdG9ycyIKK21zZ3N0ciAia8OkeW5uaXN0eXNzZWt0b3JpbiB0eWhqZW50w6RtaW5lbiBlaSBvbm5pc3R1IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHdhcm5pbmc6IGRvbid0IGVyYXNlIGJvb3RiaXRzIHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoJXMgcGFydGl0aW9uIHRhYmxlIGRldGVjdGVkKS4gIgorbXNnc3RyICIgICBwICAgIG7DpHl0w6QgQlNELW9zaW90YXVsdSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgb24gd2hvbGUgZGlzay4gIgorbXNnc3RyICIgICBzICAgIG7DpHl0w6QgdMOkeWRlbGxpbmVuIGxldnluaW1pw7YiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICBzICAgIG7DpHl0w6QgdMOkeWRlbGxpbmVuIGxldnluaW1pw7YiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkb2VzIG5vdCBzdXBwb3J0IHN3YXBzcGFjZSB2ZXJzaW9uICVkLlxuIgorbXNnc3RyICIlczogdmlyaGU6IHR1bnRlbWF0b24gdmVyc2lvICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQ4Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgInZpcmhlOiBVVUlEOm4gasOkc2VubnlzIGVww6Rvbm5pc3R1aSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBOb3doZXJlIHRvIHNldCB1cCBzd2FwIG9uP1xuIgorbXNnc3RyICIlczogdmlyaGU6IFNpdnV0dXN0aWxhbiBrb2hkZT9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc2l6ZSAlbGx1IEtpQiBpcyBsYXJnZXIgdGhhbiBkZXZpY2Ugc2l6ZSAlbGx1IEtpQlxuIgorbXNnc3RyICIlczogdmlyaGU6IGtva28gJWx1IEtpQiBvbiBzdXVyZW1waSBrdWluIGxhaXR0ZWVuIGtva28gJWx1IEtpQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHN3YXAgYXJlYSBuZWVkcyB0byBiZSBhdCBsZWFzdCAlbGQgS2lCXG4iCittc2dzdHIgIiVzOiB2aXJoZTogc2l2dXR1c2FsdWVlbiBvbiBvbHRhdmEgdsOkaGludMOkw6RuICVsZCBLaUI6biBrb2tvaW5lblxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiB2YXJvaXR1czogdHlwaXN0ZXTDpMOkbiBzaXZ1dHVzYWx1ZSBrb2tvb24gJWxkIEtpQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHdpbGwgbm90IHRyeSB0byBtYWtlIHN3YXBkZXZpY2Ugb24gJyVzJ1xuIgorbXNnc3RyICIlczogdmlyaGU6IGVpIHlyaXRldMOkIGx1b2RhIHNpdnV0dXNsYWl0ZXR0YSBrb2h0ZWVzZWVuIOKAnSVz4oCdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBzd2Fwc3BhY2UuXG4iCittc2dzdHIgIiVzOiB2aXJoZTogJXMgb24gbGlpdGV0dHk7IGVpIHRlaGTDpCBzaXZ1dHVzdGlsYWEuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjQ4Cittc2dpZCAiVW5hYmxlIHRvIHNldCB1cCBzd2FwLXNwYWNlOiB1bnJlYWRhYmxlIgorbXNnc3RyICJTaXZ1dHVzdGlsYWEgZWkgdm9pIGx1b2RhOiBlaSBsdWV0dGF2aXNzYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIkFzZXRldGFhbiBzaXZ1dHVzdGlsYSwgdmVyc2lvICVkLCBrb2tvID0gJWxsdSBLaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gd3JpdGUgc2lnbmF0dXJlIHBhZ2U6ICVzIgorbXNnc3RyICIlczogJXM6IGFsbGVraXJqb2l0dXNzaXZ1YSBlaSB2b2kga2lyam9pdHRhYTogJXMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICJmc3luYyBlcMOkb25uaXN0dWkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIG9idGFpbiBzZWxpbnV4IGZpbGUgbGFiZWw6ICVzXG4iCittc2dzdHIgIiVzOiAlczogc2VsaW51eC10aWVkb3N0b25pbWnDtm4gaGFrZW1pbmVuIGVpIG9ubmlzdHU6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBtYXRjaHBhdGhjb24oKSIKK21zZ3N0ciAidGllZG9zdG9uICVzIHRpbGFhIGVpIHZvaSBsdWtlYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTMKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgInV1ZGVuIHNlbGludXgta29udGVrc3RpbiBsdW9taW5lbiBlaSBvbm5pc3R1IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5NQorbXNnaWQgImNvdWxkbid0IGNvbXB1dGUgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJzZWxpbnV4LWtvbnRla3N0aW4gbGFza2VtaW5lbiBlaSBvbm5pc3R1bnV0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjcwMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIHJlbGFiZWwgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgIiVzOiB1dWRlbGxlZW5uaW1lw6RtaW5lbiAlcyDihpIgJXMgZWkgb25uaXN0dTogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzo1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiICAlcyAiCittc2dzdHIgIiIKKyJLw6R5dHTDtjpcbiIKKyIgICVzICIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJMdWtrb3RpZWRvc3RvYSAlcyBlaSB2b2kgbHVraXRhOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgYmxvY2sgZGV2XG4iCittc2dzdHIgIlZhcm9pdHVzOiAlcyBlaSBvbGUgbG9oa29sYWl0ZVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gbWFzdGVyIHJhdyBkZXZpY2UgJyIKK21zZ3N0ciAibGFpdHRlZW4gJXMgdGlsYWEgZWkgdm9pIGx1a2VhIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJsYWl0dGVlbiAlcyB0aWxhYSBlaSB2b2kgbHVrZWEiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIvZGV2LyVzOiBlaSBvbGUgbWVya2tpbGFpdGUiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSByYXcgZGV2XG4iCittc2dzdHIgIiVzIGVpIG9sZSBsb2hrb2xhaXRlIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBxdWVyeWluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBzZXR0aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICJ2aXJoZSBweXPDpHl0ZXR0w6Rlc3PDpCBwYWx2ZWx1YTog4oCdJXPigJ0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjM3OCBmZGlzay9jZmRpc2suYzoyMDgzCittc2dpZCAiVW51c2FibGUiCittc2dzdHIgIkVpIGvDpHl0ZXR0w6R2aXNzw6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAiVmFwYWEgdGlsYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgzCittc2dpZCAiTGludXggZXh0MiIKK21zZ3N0ciAiTGludXggZXh0MiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg1Cittc2dpZCAiTGludXggZXh0MyIKK21zZ3N0ciAiTGludXggZXh0MyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg3Cittc2dpZCAiTGludXggWEZTIgorbXNnc3RyICJMaW51eCBYRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4OQorbXNnaWQgIkxpbnV4IEpGUyIKK21zZ3N0ciAiTGludXggSkZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTEKK21zZ2lkICJMaW51eCBSZWlzZXJGUyIKK21zZ3N0ciAiTGludXggUmVpc2VyRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU3Cittc2dpZCAiTGludXgiCittc2dzdHIgIkxpbnV4IgorCisjOiBmZGlzay9jZmRpc2suYzozOTYKK21zZ2lkICJPUy8yIEhQRlMiCittc2dzdHIgIk9TLzIgSFBGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk4Cittc2dpZCAiT1MvMiBJRlMiCittc2dzdHIgIk9TLzIgSUZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MDIKK21zZ2lkICJOVEZTIgorbXNnc3RyICJOVEZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBoYXMgYmVlbiBjaGFuZ2VkLlxuIgorbXNnc3RyICJMZXZ5IG9uIHZhaWhkZXR0dS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYm9vdCB0aGUgc3lzdGVtIHRvIGVuc3VyZSB0aGUgcGFydGl0aW9uIHRhYmxlIGlzIGNvcnJlY3RseSB1cGRhdGVkLlxuIgorbXNnc3RyICIiCisiSsOkcmplc3RlbG3DpCBvbiBzeXl0w6Qga8OkeW5uaXN0w6TDpCB1dWRlbGxlZW4gb3Npb3RhdWx1biBww6Rpdml0dHltaXNlbiAiCisidmFybWlzdGFtaXNla3NpLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55XG4iCisiRE9TIDYueCBwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBjZmRpc2sgbWFudWFsXG4iCisicGFnZSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlZBUk9JVFVTOiBKb3MgRE9TIDYueCAtb3Npb2l0YSBsdW90aWluIHRhaSBtdXV0ZXR0aWluLFxuIgorImthdHNvIGxpc8OkdGlldG9qYSBjZmRpc2tpbiBtYW51YWFsaXNpdnVsdGEuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNgorbXNnaWQgIkZBVEFMIEVSUk9SIgorbXNnc3RyICJWQUtBVkEgVklSSEUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNworbXNnaWQgIlByZXNzIGFueSBrZXkgdG8gZXhpdCBjZmRpc2siCittc2dzdHIgIlBhaW5hIG1pdMOkIHRhaGFuc2EgbsOkcHDDpGludMOkIHBvaXN0dWFrc2VzaSBjZmRpc2tpc3TDpCIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY0IGZkaXNrL2NmZGlzay5jOjU3MgorbXNnaWQgIkNhbm5vdCBzZWVrIG9uIGRpc2sgZHJpdmUiCittc2dzdHIgIkxldnlhc2VtYWxsYSBlaSB2b2kgc2lpcnR5w6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIkxldnlhc2VtYWEgZWkgdm9pIGx1a2VhIgorCisjOiBmZGlzay9jZmRpc2suYzo1NzQKK21zZ2lkICJDYW5ub3Qgd3JpdGUgZGlzayBkcml2ZSIKK21zZ3N0ciAiTGV2eWFzZW1hbGxlIGVpIHZvaSBraXJqb2l0dGFhIgorCisjOiBmZGlzay9jZmRpc2suYzo5MTcKK21zZ2lkICJUb28gbWFueSBwYXJ0aXRpb25zIgorbXNnc3RyICJMaWlhbiBtb250YSBvc2lvdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJPc2lvbiBhbGt1IG9uIGVubmVuIHNla3RvcmlhIDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiT3Npb24gbG9wcHUgb24gZW5uZW4gc2VrdG9yaWEgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTMyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiT3Npb24gYWxrdSBvbiBsZXZ5biBsb3B1biBqw6Rsa2VlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTM3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIk9zaW9uIGxvcHB1IG9uIGxldnluIGxvcHVuIGrDpGxrZWVuIgorCisjOiBmZGlzay9jZmRpc2suYzo5NDIKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBpbiB0aGUgZmluYWwgcGFydGlhbCBjeWxpbmRlciIKK21zZ3N0ciAiT3Npb24gbG9wcHUgb24gdmlpbWVpc2VsbMOkIG9zaXR0YWlzZWxsYSBzeWxpbnRlcmlsbMOkIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgImxvb2dpc2V0IG9zaW90IGVpdsOkdCBvbGUgbGV2eWrDpHJqZXN0eWtzZXNzw6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2OQorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJsb29naXNldCBvc2lvdCBvdmF0IHDDpMOkbGxla2vDpGlzZXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJzdXVyZW5uZXR1dCBsb29naXNldCBvc2lvdCBvdmF0IHDDpMOkbGxla2vDpGlzZXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMDMKK21zZ2lkICIiCisiISEhISBJbnRlcm5hbCBlcnJvciBjcmVhdGluZyBsb2dpY2FsIGRyaXZlIHdpdGggbm8gZXh0ZW5kZWQgcGFydGl0aW9uICEhISEiCittc2dzdHIgIiIKKyIhISEhIFNpc8OkaW5lbiB2aXJoZSBsdW90YWVzc2EgbG9vZ2lzdGEgYXNlbWFhIGlsbWFuIGxhYWplbm5ldHR1YSBvc2lvdGEgISEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAxNCBmZGlzay9jZmRpc2suYzoxMDI2Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbG9naWNhbCBkcml2ZSBoZXJlIC0tIHdvdWxkIGNyZWF0ZSB0d28gZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorIlTDpGjDpG4gZWkgdm9pIGx1b2RhIGxvb2dpc3RhIGFzZW1hYSDigJMgbHVvdGFpc2lpbiBrYWtzaSBsYWFqZW5uZXR0dWEgb3Npb3RhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMTY4Cittc2dpZCAiTWVudSBpdGVtIHRvbyBsb25nLiBNZW51IG1heSBsb29rIG9kZC4iCittc2dzdHIgIkxpaWFuIHBpdGvDpCB2YWxpa29uIGtvaHRhLiBWYWxpa2tvIHZvaSBuw6R5dHTDpMOkIG91ZG9sdGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMjI0Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiVmFsaWtrbyBpbG1hbiBzdXVudGFhLiBLw6R5dGV0w6TDpG4gb2xldHVrc2VuYSB2YWFrYXN1dW50YWEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzU2Cittc2dpZCAiSWxsZWdhbCBrZXkiCittc2dzdHIgIlbDpMOkcsOkIG7DpHBww6RpbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM3OQorbXNnaWQgIlByZXNzIGEga2V5IHRvIGNvbnRpbnVlIgorbXNnc3RyICJQYWluYSBuw6RwcMOkaW50w6QgamF0a2Fha3Nlc2kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiRW5zacO2IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2Cittc2dpZCAiQ3JlYXRlIGEgbmV3IHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJMdW8gdXVzaSBlbnNpw7Zvc2lvIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgIkxvb2dpbmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3Cittc2dpZCAiQ3JlYXRlIGEgbmV3IGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICJMdW8gdXVzaSBsb29naW5lbiBvc2lvIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMgZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkNhbmNlbCIKK21zZ3N0ciAiUGVydXV0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICLDhGzDpCBsdW8gb3Npb3RhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiISEhIFNpc8OkaW5lbiB2aXJoZSAhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiS29rbyAoTXQpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIkFsa3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJMaXPDpMOkIG9zaW8gdHloasOkbiB0aWxhbiBhbGt1dW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJFbmQiCittc2dzdHIgIkxvcHB1IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBlbmQgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiTGlzw6TDpCBvc2lvIHR5aGrDpG4gdGlsYW4gbG9wcHV1biIKKworIzogZmRpc2svY2ZkaXNrLmM6MTUwMAorbXNnaWQgIk5vIHJvb20gdG8gY3JlYXRlIHRoZSBleHRlbmRlZCBwYXJ0aXRpb24iCittc2dzdHIgIkxhYWplbm5ldHVuIG9zaW9uIGx1b21pc2VlbiBlaSBvbGUgdGlsYWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkVpIG9zaW90YXVsdWEuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzgKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuIFN0YXJ0aW5nIHdpdGggemVybyB0YWJsZS4iCittc2dzdHIgIkVpIG9zaW90YXVsdWEuIEFsb2l0ZXRhYW4gdHloasOkbGzDpCB0YXVsdWxsYS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1ODgKK21zZ2lkICJCYWQgc2lnbmF0dXJlIG9uIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiT3Npb3RhdWx1biBhbGxla2lyam9pdHVzIG9uIHZpcmhlZWxsaW5lbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorbXNnaWQgIlVua25vd24gcGFydGl0aW9uIHRhYmxlIHR5cGUiCittc2dzdHIgIlR1bnRlbWF0b24gb3Npb3RhdWx1biB0eXlwcGkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTQKK21zZ2lkICJEbyB5b3Ugd2lzaCB0byBzdGFydCB3aXRoIGEgemVybyB0YWJsZSBbeS9OXSA/IgorbXNnc3RyICJIYWx1YXRrbyBhbG9pdHRhYSB0eWhqw6RsbMOkIG9zaW90YXVsdWxsYSBbeS9OXT8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NDIKK21zZ2lkICJZb3Ugc3BlY2lmaWVkIG1vcmUgY3lsaW5kZXJzIHRoYW4gZml0IG9uIGRpc2siCittc2dzdHIgIkFubmV0dHUgc3lsaW50ZXJpbcOkw6Ryw6QgZWkgbWFoZHUgbGV2eWxsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NAorbXNnaWQgIkNhbm5vdCBvcGVuIGRpc2sgZHJpdmUiCittc2dzdHIgIkxldnlhc2VtYWEgZWkgdm9pIGF2YXRhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc2IGZkaXNrL2NmZGlzay5jOjE4NjUKK21zZ2lkICJPcGVuZWQgZGlzayByZWFkLW9ubHkgLSB5b3UgaGF2ZSBubyBwZXJtaXNzaW9uIHRvIHdyaXRlIgorbXNnc3RyICJMZXZ5IGF2YXR0aWluIHZhaW4gbHVrdSAtdGlsYXNzYSDigJMgc2ludWxsYSBlaSBvbGUga2lyam9pdHVzb2lrZXV0dGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2ODcKK21zZ2lkICIiCisiV2FybmluZyEhICBVbnN1cHBvcnRlZCBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZC4gVXNlIEdOVSBQYXJ0ZWQuIgorbXNnc3RyICIiCisiVmFyb2l0dXMhISBIYXZhaXR0dSBlaS10dWV0dHUgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkuIEvDpHl0w6QgR05VIFBhcnRlZGlhLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTcwNgorbXNnaWQgIkNhbm5vdCBnZXQgZGlzayBzaXplIgorbXNnc3RyICJMZXZ5biBrb2tvYSBlaSB2b2kgaGFrZWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MzIKK21zZ2lkICJCYWQgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIlZpYWxsaW5lbiBlbnNpw7Zvc2lvIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzYyCittc2dpZCAiQmFkIGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICJWaWFsbGluZW4gbG9vZ2luZW4gb3NpbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg3NworbXNnaWQgIldhcm5pbmchISAgVGhpcyBtYXkgZGVzdHJveSBkYXRhIG9uIHlvdXIgZGlzayEiCittc2dzdHIgIlZhcm9pdHVzISEgVMOkbcOkIHZvaSB0dWhvdGEgZGF0YWEgbGV2eWx0w6QhIgorCisjOiBmZGlzay9jZmRpc2suYzoxODgxCittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIkhhbHVhdGtvIHZhcm1hc3RpIGtpcmpvaXR0YWEgb3Npb3RhdWx1biBsZXZ5bGxlPyAoamFhIHRhaSBlaSk6IgorCisjOiBmZGlzay9jZmRpc2suYzoxODg3Cittc2dpZCAibm8iCittc2dzdHIgImVpIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg5Cittc2dpZCAiRGlkIG5vdCB3cml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiT3Npb3RhdWx1YSBlaSBraXJqb2l0ZXR0dSBsZXZ5bGxlIgorCisjOiBmZGlzay9jZmRpc2suYzoxODkxCittc2dpZCAieWVzIgorbXNnc3RyICJqYWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTUKK21zZ2lkICJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIKK21zZ3N0ciAiS2lyam9pdGEg4oCdamFh4oCdIHRhaSDigJ1laeKAnSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIktpcmpvaXRldGFhbiBvc2lvdGF1bHVhIGxldnlsbGUuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJPc2lvdGF1bHUga2lyam9pdGV0dGlpbiBsZXZ5bGxlIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI2Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIk9zaW90YXVsdSBraXJqb2l0ZXR0aWluLCBtdXR0YSB1dWRlbGxlZW5sdWt1IGVww6Rvbm5pc3R1aS4gQWphIHBhcnRwcm9iZSg4KSwgIgorImtwYXJ0eCg4KSB0YWkga8OkeW5uaXN0w6QgdGlldG9rb25lIHV1ZGVsbGVlbiwgam90dGEgdGF1bHUgcMOkaXZpdHR5eS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIllodMOkw6RuIGVuc2nDtm9zaW90YSBlaSBvbGUgbWVya2l0dHkga8OkeW5uaXN0ZXR0w6R2w6Rrc2kuIERPUyBNQlIgZWkga8OkeW5uaXN0w6QgIgorInTDpHTDpC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJVc2VhbXBpIGt1aW4geWtzaSBlbnNpw7Zvc2lvIG9uIG1lcmtpdHR5IGvDpHlubmlzdGV0dMOkdsOka3NpLiBET1MgTUJSIGVpICIKKyJrw6R5bm5pc3TDpCB0w6R0w6QuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICJTecO2dMOkIHRpZWRvc3RvbmltaSB0YWkgcGFpbmEgUkVUVVJOIHNhYWRha3Nlc2kgbsOkeXTDtmxsZTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgIlRpZWRvc3RvYSDigJ0lc+KAnSBlaSB2b2kgYXZhdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXNcbiIKK21zZ3N0ciAiTGV2eWFzZW1hOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNla3RvcmkgMDpcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAyNQorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQ6XG4iCittc2dzdHIgIlNla3RvcmkgJWQ6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDUKK21zZ2lkICIgICBOb25lICAgIgorbXNnc3RyICIgICBFaSBtaXTDpMOkbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NworbXNnaWQgIiAgIFByaS9Mb2ciCittc2dzdHIgIiAgIEVucy9Mb29nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ5Cittc2dpZCAiICAgUHJpbWFyeSIKK21zZ3N0ciAiICAgRW5zacO2IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiICAgTG9vZ2luZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwODkgZmRpc2svZmRpc2suYzoxNzY3IGZkaXNrL2ZkaXNrLmM6MjEwNgorIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIyNyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjE2IGZkaXNrL3NmZGlzay5jOjYzOAorbXNnaWQgIlVua25vd24iCittc2dzdHIgIlR1bnRlbWF0b24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTUgZmRpc2svY2ZkaXNrLmM6MjU2MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkKK21zZ2lkICJCb290IgorbXNnc3RyICJLw6R5bm5pc3RldHTDpHbDpCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorbXNnaWQgIk5vbmUiCittc2dzdHIgIkVpIG1pdMOkw6RuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM0IGZkaXNrL2NmZGlzay5jOjIyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIFRhYmxlIGZvciAlc1xuIgorbXNnc3RyICJMYWl0dGVlbiAlcyBvc2lvdGF1bHVcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNgorbXNnaWQgIiAgICAgICAgICAgICAgIEZpcnN0ICAgICAgIExhc3RcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICAgQWxrdS0gICAgICBMb3BwdS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNworbXNnaWQgIiIKKyIgIyBUeXBlICAgICAgIFNlY3RvciAgICAgIFNlY3RvciAgIE9mZnNldCAgICBMZW5ndGggICBGaWxlc3lzdGVtIFR5cGUgKElEKSAiCisiRmxhZ1xuIgorbXNnc3RyICIiCisiICMgVHl5cHBpICAgIHNla3RvcmkgICAgIHNla3RvcmkgICBTaWlydC4gICAgUGl0dXVzICAgVGllZC5qw6Ryai4gdHl5cHBpIChJRCkgIgorIkxpcHV0XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgICAgLS0tLUFsa3UtLS0tICAgICAgICAgLS0tLUxvcHB1LS0tLSAgICAgQWxrdS0gICAgIFNla3RvcmllblxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCittc2dpZCAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCittc2dzdHIgIiAjIExpcHV0IFDDpMOkdCBTZWt0ICBTeWwgICBJRCAgUMOkw6R0IFNla3QgIFN5bCAgICAgc2VrdG9yaSAgIG3DpMOkcsOkXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjMKK21zZ2lkICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlJhdyIKK21zZ3N0ciAiUmFha2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IgorbXNnc3RyICJOw6R5dMOkIHRhdWx1IHJhYSdhc3NhIGRhdGFtdW9kb3NzYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NyBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiU2VjdG9ycyIKK21zZ3N0ciAiU2VrdG9yaXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcKK21zZ2lkICJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICJOw6R5dMOkIHRhdWx1IGrDpHJqZXN0ZXR0eW7DpCBzZWt0b3JlaWRlbiBtdWthYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAiVGF1bHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIk7DpHl0w6Qgb3Npb3RhdWx1IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICLDhGzDpCBuw6R5dMOkIHRhdWx1YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgIkNmZGlza2luIG9oamVydXV0dSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4OQorbXNnaWQgIlRoaXMgaXMgY2ZkaXNrLCBhIGN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbmluZyBwcm9ncmFtLCB3aGljaCIKK21zZ3N0ciAiVMOkbcOkIG9uIGNmZGlzaywgY3Vyc2VzLXBvaGphaW5lbiBsZXZ5bm9zaW9pbnRpb2hqZWxtYSwgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkwCittc2dpZCAiYWxsb3dzIHlvdSB0byBjcmVhdGUsIGRlbGV0ZSBhbmQgbW9kaWZ5IHBhcnRpdGlvbnMgb24geW91ciBoYXJkIgorbXNnc3RyICJqb2xsYSB2b2kgbHVvZGEsIHBvaXN0YWEgamEgbXV1dHRhYSBraWludG9sZXZ5bGzDpCAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTEKK21zZ2lkICJkaXNrIGRyaXZlLiIKK21zZ3N0ciAib2xldmlhIG9zaW9pdGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkzCittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorbXNnc3RyICJDb3B5cmlnaHQgwqkgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJLb21lbnRvICAgICAgTWVya2l0eXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTYKK21zZ2lkICItLS0tLS0tICAgICAgLS0tLS0tLSIKK21zZ3N0ciAiLS0tLS0tLSAgICAgIC0tLS0tLS0tIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk3Cittc2dpZCAiICBiICAgICAgICAgIFRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBiICAgICAgICAgIEFzZXRhIG55a3lpc2VuIG9zaW9uIGvDpHlubmlzdGV0dMOkdnl5c2xpcHB1IHDDpMOkbGxlL3BvaXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTgKK21zZ2lkICIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBkICAgICAgICAgIFBvaXN0YSBueWt5aW5lbiBvc2lvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIgIGcgICAgICAgICAgTXV1dGEgc3lsaW50ZXJpLSwgcMOkw6QtIGphIHNla3RvcmlwYXJhbWV0cmVqYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiAgICAgICAgICAgICBWQVJPSVRVUzogVMOkdMOkIHZhbGl0c2ludGEgdHVsZWUga8OkeXR0w6TDpCB2YWluIG5paWRlbiwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgICAgICAgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLiIKK21zZ3N0ciAiICAgICAgICAgICAgIGpvdGthIHRpZXTDpHbDpHQgbWl0w6Qgb3ZhdCB0ZWtlbcOkc3PDpC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICBOw6R5dMOkIHTDpG3DpCBvaGplcnV1dHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgbSAgICAgICAgICBNYWtzaW1vaSBueWt5aXNlbiBvc2lvbiBsZXZ5bmvDpHl0dMO2IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA0Cittc2dpZCAiICAgICAgICAgICAgIE5vdGU6IFRoaXMgbWF5IG1ha2UgdGhlIHBhcnRpdGlvbiBpbmNvbXBhdGlibGUgd2l0aCIKK21zZ3N0ciAiICAgICAgICAgICAgIEh1b206IFTDpG3DpCBzYWF0dGFhIHRlaGTDpCBvc2lvc3RhIGVww6R5aHRlZW5zb3BpdmFuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICAgbW0uIERPU2luIGphIE9TLzI6biBrYW5zc2EuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA2Cittc2dpZCAiICBuICAgICAgICAgIENyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiICBuICAgICAgICAgIEx1byB1dXNpIG9zaW8gdHloasOkc3TDpCB0aWxhc3RhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA3Cittc2dpZCAiICBwICAgICAgICAgIFByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiICBwICAgICAgICAgIFR1bG9zdGEgb3Npb3RhdWx1IHJ1dWR1bGxlIHRhaSB0aWVkb3N0b29uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICAgT3Npb2lsbGUgb24gdXNlaXRhIGVyaWxhaXNpYSBtdW90b2phLCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIgICAgICAgICAgICAgam9pc3RhIHZvaXQgdmFsaXRhOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIiCisiICAgICAgICAgICAgICAgIHIg4oCTIFJhYWthIGRhdGEgKHRhc2FuIHNlLCBtaXTDpCBsZXZ5bGxlIGtpcmpvaXRldHRhaXNpaW4pIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzExCittc2dpZCAiICAgICAgICAgICAgICAgIHMgLSBUYWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIiAgICAgICAgICAgICAgICBzIOKAkyBTZWt0b3JlaXR0YWluIGrDpHJqZXN0ZXR0eSB0YXVsdSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMgorbXNnaWQgIiAgICAgICAgICAgICAgICB0IC0gVGFibGUgaW4gcmF3IGZvcm1hdCIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHQg4oCTIFRhdWx1IHJhYSdhc3NhIG11b2Rvc3NhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAgTG9wZXRhIG9oamVsbWEga2lyam9pdHRhbWF0dGEgb3Npb3RhdWx1YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNAorbXNnaWQgIiAgdCAgICAgICAgICBDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAiICB0ICAgICAgICAgIE11dXRhIHRpZWRvc3RvasOkcmplc3RlbG3DpG4gdHl5cHBpw6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIgIHUgICAgICAgICAgTXV1dGEgb3Npb2tva29uw6RreW3DpG4geWtzaWvDtml0w6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTYKK21zZ2lkICIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiCittc2dzdHIgIiAgICAgICAgICAgICBWYWlodGFhIG1lZ2F0YXZ1amVuLCBzZWt0b3JlaWRlbiBqYSBzeWxpbnRlcmllbiB2w6RsaWxsw6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiICBXICAgICAgICAgIEtpcmpvaXRhIG9zaW90YXVsdSBsZXZ5bGxlIChvbiBhbm5ldHRhdmEgaXNvIGtpcmphaW4gVykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIgICAgICAgICAgICAgS29za2EgdMOkbcOkIHNhYXR0YWEgdHVob3RhIGxldnlsbMOkIG9sZXZhYSBkYXRhYSwga2lyam9pdHVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE5Cittc2dpZCAiICAgICAgICAgICAgIGVpdGhlciBjb25maXJtIG9yIGRlbnkgdGhlIHdyaXRlIGJ5IGVudGVyaW5nIGB5ZXMnIG9yIgorbXNnc3RyICIiCisiICAgICAgICAgICAgIG9uIGpva28gdmFybWlzdGV0dGF2YSB0YWkgcGVydXR0YXZhIGtpcmpvaXR0YW1hbGxhIOKAnWphYeKAnSB0YWkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgICAgICAgICAgYG5vJyIKK21zZ3N0ciAiICAgICAgICAgICAgIOKAnWVp4oCdIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIxCittc2dpZCAiVXAgQXJyb3cgICAgIE1vdmUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBwYXJ0aXRpb24iCittc2dzdHIgIk51b2xpIHlsw7ZzICAgU2lpcnLDpCBvc29pdGluIGVkZWxsaXNlZW4gb3Npb29uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIyCittc2dpZCAiRG93biBBcnJvdyAgIE1vdmUgY3Vyc29yIHRvIHRoZSBuZXh0IHBhcnRpdGlvbiIKK21zZ3N0ciAiTnVvbGkgYWxhcyAgIFNpaXJyw6Qgb3NvaXRpbiBzZXVyYWF2YWFuIG9zaW9vbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMworbXNnaWQgIkNUUkwtTCAgICAgICBSZWRyYXdzIHRoZSBzY3JlZW4iCittc2dzdHIgIkN0cmwtTCAgICAgICBQaWlydMOkw6QgcnV1ZHVuIHV1ZGVsbGVlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICA/ICAgICAgICAgIE7DpHl0w6QgdMOkbcOkIG9oamVydXV0dSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNgorbXNnaWQgIk5vdGU6IEFsbCBvZiB0aGUgY29tbWFuZHMgY2FuIGJlIGVudGVyZWQgd2l0aCBlaXRoZXIgdXBwZXIgb3IgbG93ZXIiCittc2dzdHIgIkh1b206IEthaWtraSBrb21lbm5vdCB2b2kgYW50YWEgam9rbyBpc29pbGxhIHRhaSBwaWVuaWxsw6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgImtpcmphaW1pbGxhIChwYWl0c2kgdGF1bHVuIGtpcmpvaXR1cyAoVykgKS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAiU3lsaW50ZXJpdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OAorbXNnaWQgIkNoYW5nZSBjeWxpbmRlciBnZW9tZXRyeSIKK21zZ3N0ciAiTXV1dGEgc3lsaW50ZXJpZ2VvbWV0cmlhYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OSBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMwCittc2dpZCAiSGVhZHMiCittc2dzdHIgIlDDpMOkdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJWYWloZGEgcMOkw6RnZW9tZXRyaWFhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAiVmFpaGRhIHNla3RvcmlnZW9tZXRyaWFhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAiVmFsbWlzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICJHZW9tZXRyaWFuIG11dXRvcyB2YWxtaXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNzQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGN5bGluZGVyczogIgorbXNnc3RyICJBbm5hIHN5bGludGVyaWVuIG3DpMOkcsOkOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzODUgZmRpc2svY2ZkaXNrLmM6Mjk1OAorbXNnaWQgIklsbGVnYWwgY3lsaW5kZXJzIHZhbHVlIgorbXNnc3RyICJWaXJoZWVsbGluZW4gc3lsaW50ZXJpYXJ2byIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAiQW5uYSBww6RpZGVuIG3DpMOkcsOkOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTggZmRpc2svY2ZkaXNrLmM6Mjk2OAorbXNnaWQgIklsbGVnYWwgaGVhZHMgdmFsdWUiCittc2dzdHIgIlZpcmhlZWxsaW5lbiBww6TDpGFydm8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MDQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrOiAiCittc2dzdHIgIkFubmEgc2VrdG9yaWVuIG3DpMOkcsOkIHVyYWEga29oZGVuOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MTEgZmRpc2svY2ZkaXNrLmM6Mjk3NQorbXNnaWQgIklsbGVnYWwgc2VjdG9ycyB2YWx1ZSIKK21zZ3N0ciAiVmlyaGVlbGxpbmVuIHNla3Rvcmltw6TDpHLDpCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUxNAorbXNnaWQgIkVudGVyIGZpbGVzeXN0ZW0gdHlwZTogIgorbXNnc3RyICJBbm5hIHRpZWRvc3RvasOkcmplc3RlbG3DpG4gdHl5cHBpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzIKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZW1wdHkiCittc2dzdHIgIlRpZWRvc3RvasOkcmplc3RlbG3DpG4gdHl5cHBpw6QgZWkgdm9pIG11dXR0YWEgdHloasOka3NpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICJUaWVkb3N0b2rDpHJqZXN0ZWxtw6RuIHR5eXBwacOkIGVpIHZvaSBtdXV0dGFhIGxhYWplbm5ldHVrc2kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rKCUwMlgpIgorbXNnc3RyICJUdW50KCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY4IGZkaXNrL2NmZGlzay5jOjI1NzEKK21zZ2lkICIsIE5DIgorbXNnc3RyICIsIE5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTc2IGZkaXNrL2NmZGlzay5jOjI1NzkKK21zZ2lkICJOQyIKK21zZ3N0ciAiTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODcKK21zZ2lkICJQcmkvTG9nIgorbXNnc3RyICJFbnMvTG9vZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAiVHVudGVtYXRvbiAoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXMiCittc2dzdHIgIkxldnlhc2VtYTogJXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZCBNQiIKK21zZ3N0ciAiS29rbzogJWxsZCB0YXZ1YSwgJWxsZCBNdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgIktva286ICVsbGQgdGF2dWEsICVsbGQuJWxsZCBHdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3NworIywgYy1mb3JtYXQKK21zZ2lkICJIZWFkczogJWQgICBTZWN0b3JzIHBlciBUcmFjazogJWQgICBDeWxpbmRlcnM6ICVsbGQiCittc2dzdHIgIlDDpMOkdDogJWQgICBTZWt0b3JpdC91cmE6ICVkICAgU3lsaW50ZXJpdDogJWxsZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MSBsb2dpbi11dGlscy9jaGZuLmM6Mzc3Cittc2dpZCAiTmFtZSIKK21zZ3N0ciAiTmltaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MgorbXNnaWQgIkZsYWdzIgorbXNnc3RyICJMaXB1dCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MworbXNnaWQgIlBhcnQgVHlwZSIKK21zZ3N0ciAiT3Npb3R5eXBwaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIlRpZWQuasOkcmoudHl5cHBpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg1Cittc2dpZCAiW0xhYmVsXSIKK21zZ3N0ciAiW05pbWnDtl0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODcKK21zZ2lkICIgICAgU2VjdG9ycyIKK21zZ3N0ciAiICAgU2VrdG9yaXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKK21zZ2lkICIgIEN5bGluZGVycyIKK21zZ3N0ciAiIFN5bGludGVyaXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTEKK21zZ2lkICIgIFNpemUgKE1CKSIKK21zZ3N0ciAiIEtva28gKE10KSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MworbXNnaWQgIiAgU2l6ZSAoR0IpIgorbXNnc3RyICIgS29rbyAoR3QpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIkvDpHlubmlzdGV0dMOkdsOkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJBc2V0YSBueWt5aXNlbiBvc2lvbiBrw6R5bm5pc3RldHTDpHZ5eXNsaXBwdSBww6TDpGxsZS9wb2lzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJQb2lzdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJQb2lzdGEgbnlreWluZW4gb3NpbyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkdlb21ldHJ5IgorbXNnc3RyICJHZW9tZXRyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJDaGFuZ2UgZGlzayBnZW9tZXRyeSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiTXV1dGEgbGV2eW4gZ2VvbWV0cmlhYSAodmFpbiBhc2lhbnR1bnRpam9pbGxlKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIkhlbHAiCittc2dzdHIgIk9oamUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJQcmludCBoZWxwIHNjcmVlbiIKK21zZ3N0ciAiTsOkeXTDpCBvaGplcnV1dHUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSIKK21zZ3N0ciAiTWFrc2ltb2kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiTWFrc2ltb2kgbnlreWlzZW4gb3Npb24gdGlsYW5rw6R5dHTDtiAodmFpbiBhc2lhbnR1bnRpam9pbGxlKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAiVXVzaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIkNyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiTHVvIHV1c2kgb3NpbyB0eWhqw6RzdMOkIHRpbGFzdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiTsOkeXTDpCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiVHVsb3N0YSBvc2lvdGF1bHUgcnV1ZHVsbGUgdGFpIHRpZWRvc3Rvb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IgorbXNnc3RyICJMb3BldGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiTG9wZXRhIG9oamVsbWEga2lyam9pdHRhbWF0dGEgb3Npb3RhdWx1YSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIlR5cGUiCittc2dzdHIgIlR5eXBwaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIkNoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIChET1MsIExpbnV4LCBPUy8yIGFuZCBzbyBvbikiCittc2dzdHIgIlZhaWhkYSB0aWVkb3N0b2rDpHJqZXN0ZWxtw6RuIHR5eXBwaSAoRE9TLCBMaW51eCwgT1MvMiwgam5lKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIlVuaXRzIgorbXNnc3RyICJZa3Npa8O2dCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIkNoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSAoTUIsIHNlY3QsIGN5bCkiCittc2dzdHIgIlZhaWhkYSBvc2lva29rb27DpHl0w7ZuIHlrc2lrw7Z0IChNdCwgc2VrdCwgc3lsKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJLaXJqb2l0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrICh0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSkiCittc2dzdHIgIktpcmpvaXRhIG9zaW90YXVsdSBsZXZ5bGxlICh0w6Rtw6Qgc2FhdHRhYSB0dWhvdGEgZGF0YWEpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODA1Cittc2dpZCAiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiCittc2dzdHIgIlTDpHN0w6Qgb3Npb3N0YSBlaSB2b2kgdGVoZMOkIGvDpHlubmlzdGV0dMOkdsOkw6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiVHloasOkw6Qgb3Npb3RhIGVpIHZvaSBwb2lzdGFhIgorCisjOiBmZGlzay9jZmRpc2suYzoyODM1IGZkaXNrL2NmZGlzay5jOjI4MzcKK21zZ2lkICJDYW5ub3QgbWF4aW1pemUgdGhpcyBwYXJ0aXRpb24iCittc2dzdHIgIlTDpHTDpCBvc2lvdGEgZWkgdm9pIG1ha3NpbW9pZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDUKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIKK21zZ3N0ciAiVMOkbcOkIG9zaW8gb24gZWkgb2xlIGvDpHl0ZXR0w6R2aXNzw6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDcKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyBhbHJlYWR5IGluIHVzZSIKK21zZ3N0ciAiVMOkbcOkIG9zaW8gb24gam8ga8OkeXTDtnNzw6QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NjQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHRoZSB0eXBlIG9mIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiVHloasOkbiBvc2lvbiB0eXlwcGnDpCBlaSB2b2kgdmFpaHRhYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg5MSBmZGlzay9jZmRpc2suYzoyODk3Cittc2dpZCAiTm8gbW9yZSBwYXJ0aXRpb25zIgorbXNnc3RyICJFaSBlbmVtcMOkw6Qgb3Npb2l0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAiVmlyaGVlbGxpbmVuIGtvbWVudG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkNvcHlyaWdodCDCqSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIlByaW50IHZlcnNpb246XG4iCisiICAgICAgICAlcyAtdlxuIgorIlByaW50IHBhcnRpdGlvbiB0YWJsZTpcbiIKKyIgICAgICAgICVzIC1QIHtyfHN8dH0gW29wdGlvbnNdIGRldmljZVxuIgorIkludGVyYWN0aXZlIHVzZTpcbiIKKyIgICAgICAgICVzIFtvcHRpb25zXSBkZXZpY2VcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIi1hOiBVc2UgYXJyb3cgaW5zdGVhZCBvZiBoaWdobGlnaHRpbmc7XG4iCisiLXo6IFN0YXJ0IHdpdGggYSB6ZXJvIHBhcnRpdGlvbiB0YWJsZSwgaW5zdGVhZCBvZiByZWFkaW5nIHRoZSBwdCBmcm9tIGRpc2s7XG4iCisiLWMgQyAtaCBIIC1zIFM6IE92ZXJyaWRlIHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzLFxuIgorIiAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIGhlYWRzIGFuZCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2suXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJLw6R5dHTDtjpcbiIKKyJOw6R5dMOkIHZlcnNpbzpcbiIKKyIgICAgICAgICVzIC12XG4iCisiTsOkeXTDpCBvc2lvdGF1bHU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFt2YWxpdHNpbWV0XSBsYWl0ZVxuIgorIlZ1b3JvdmFpa3V0dGVpbmVuIGvDpHl0dMO2OlxuIgorIiAgICAgICAgJXMgW3ZhbGl0c2ltZXRdIGxhaXRlXG4iCisiXG4iCisiVmFsaXRzaW1ldDpcbiIKKyItYTogS8OkeXTDpCBudW9sdGEga29yb3N0dWtzZW4gYXNlbWVzdGE7XG4iCisiLXo6IEFsb2l0YSB0eWhqw6RsbMOkIG9zaW90YXVsdWxsYSwgb3Npb3RhdWx1YSBlaSBsdWV0YSBsZXZ5bHTDpDtcbiIKKyItYyBDIC1oIEggLXMgUzogT2hpdGEgeXRpbWVuIG1pZWxpcGlkZSBzeWxpbnRlcmllbiBqYSBww6RpZGVuIG3DpMOkcsOkc3TDpCxcbiIKKyIgICAgICAgICAgICAgICAgc2Vrw6Qgc2VrdG9yZWl0YS91cmEtbcOkw6Ryw6RzdMOkLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza2FpeGxhYmVsLmM6MjcKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIEFJWCBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IExpbnV4IGNhbm5vdCBoYW5kbGUgdGhlc2VcbiIKKyJcdGRpc2tzIGF0IHRoZSBtb21lbnQuICBOZXZlcnRoZWxlc3Mgc29tZVxuIgorIlx0YWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorIlx0My4gQmVmb3JlIGRlbGV0aW5nIHRoaXMgcGh5c2ljYWwgdm9sdW1lIGJlIHN1cmVcbiIKKyJcdCAgIHRvIHJlbW92ZSB0aGUgZGlzayBsb2dpY2FsbHkgZnJvbSB5b3VyIEFJWFxuIgorIlx0ICAgbWFjaGluZS4gIChPdGhlcndpc2UgeW91IGJlY29tZSBhbiBBSVhwZXJ0KS4iCittc2dzdHIgIiIKKyJcbiIKKyJcdFTDpGxsw6QgbGV2eWxsw6Qgb24ga2Vsdm9sbGluZW4gQUlYLW5pbWnDti5cbiIKKyJcdFZhbGl0ZXR0YXZhc3RpIExpbnV4IGVpIHRvaXN0YWlzZWtzaSBvc2FhIFxuIgorIlx0a8Okc2l0ZWxsw6QgdMOkbGxhaXNpYSBsZXZ5asOkLlxuIgorIlx0Sm9pdGFraW4gbmV1dm9qYTpcbiIKKyJcdDEuIGZkaXNrIHR1aG9hYSBsZXZ5biB0aWVkb3Qga2lyam9pdGV0dGFlc3NhLlxuIgorIlx0Mi4gVmFybWlzdGEsIGV0dMOkIHTDpG3DpCBsZXZ5IEVJIG9sZSBlbsOkw6QgZWxpbnTDpHJrZcOkXG4iCisiXHQgICBvc2Egb3Npb3J5aG3DpMOkLiAoSm9zIG9uLCBtdXV0a2luIGxldnl0IHNhYXR0YXZhdFxuIgorIlx0ICAgdHloamVudHnDpCwgZWxsZWkgbmlpdMOkIG9sZSBwZWlsYXR0dS4pXG4iCisiXHQzLiBWYXJtaXN0YSBlbm5lbiB0w6Rtw6RuIGZ5eXNpc2VuIG9zaW9uIHR1aG9hbWlzdGEsXG4iCisiXHQgICBldHTDpCBsZXZ5IG9uIGxvb2dpc2VzdGkgcG9pc3RldHR1IEFJWC1rb25lZXN0YS5cbiIKKyJcdCAgIChNdXVzc2EgdGFwYXVrc2Vzc2Egc2ludXN0YSB0dWxlZSBBSVhwZXJ0dGkpLiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQlNEIGxhYmVsIGZvciBkZXZpY2U6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJCU0QtbmltacO2IGxhaXR0ZWVsbGU6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjggZmRpc2svZmRpc2suYzozOTQgZmRpc2svZmRpc2suYzo0MTMKKyM6IGZkaXNrL2ZkaXNrLmM6NDMxIGZkaXNrL2ZkaXNrLmM6NDM4IGZkaXNrL2ZkaXNrLmM6NDYxIGZkaXNrL2ZkaXNrLmM6NDc5CisjOiBmZGlzay9mZGlzay5jOjQ5NSBmZGlzay9mZGlzay5jOjUxMQorbXNnaWQgIkNvbW1hbmQgYWN0aW9uIgorbXNnc3RyICJLb21lbnRvICBtZXJraXR5cyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOQorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgIHBvaXN0YSBCU0Qtb3NpbyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMAorbXNnaWQgIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiCittc2dzdHIgIiAgIGUgICAgbXVva2thYSBhc2VtYW4gZGF0YWEiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICAgYXNlbm5hIGVzaWxhdGF1c29oamVsbWEiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzIKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBmaWxlc3lzdGVtIHR5cGVzIgorbXNnc3RyICIgICBsICAgIGxpc3RhYSB0dW5uZXR1dCB0aWVkb3N0b2rDpHJqZXN0ZWxtw6R0eXlwaXQiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICAgbsOkeXTDpCB0w6Rtw6QgdmFsaWtrbyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNAorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgICBsaXPDpMOkIHV1c2kgQlNELW9zaW8iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgICBuw6R5dMOkIEJTRC1vc2lvdGF1bHUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzYgZmRpc2svZmRpc2suYzo0MDQgZmRpc2svZmRpc2suYzo0MjMKKyM6IGZkaXNrL2ZkaXNrLmM6NDM0IGZkaXNrL2ZkaXNrLmM6NDQ4IGZkaXNrL2ZkaXNrLmM6NDcxIGZkaXNrL2ZkaXNrLmM6NDg4CisjOiBmZGlzay9mZGlzay5jOjUwNCBmZGlzay9mZGlzay5jOjUyMgorbXNnaWQgIiAgIHEgICBxdWl0IHdpdGhvdXQgc2F2aW5nIGNoYW5nZXMiCittc2dzdHIgIiAgIHEgICAgbG9wZXRhIHRhbGxlbnRhbWF0dGEgbXV1dG9rc2lhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM3IGZkaXNrL2ZkaXNrLmM6NDcyIGZkaXNrL2ZkaXNrLmM6NDg5CisjOiBmZGlzay9mZGlzay5jOjUwNSBmZGlzay9mZGlzay5jOjUyMworbXNnaWQgIiAgIHIgICByZXR1cm4gdG8gbWFpbiBtZW51IgorbXNnc3RyICIgICByICAgIHBhbGFhIHDDpMOkdmFsaWtrb29uIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM4Cittc2dpZCAiICAgcyAgIHNob3cgY29tcGxldGUgZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgIG7DpHl0w6QgdMOkeWRlbGxpbmVuIGxldnluaW1pw7YiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzkKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3MgZmlsZXN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgICB2YWloZGEgb3Npb24gdGllZG9zdG9qw6RyamVzdGVsbcOkLWlkOnTDpCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiICAgdSAgICB2YWloZGEgeWtzaWvDtnQgKHN5bGludGVyaXQvc2VrdG9yaXQpIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQxCittc2dpZCAiICAgdyAgIHdyaXRlIGRpc2tsYWJlbCB0byBkaXNrIgorbXNnc3RyICIgICB3ICAgIGtpcmpvaXRhIGxldnluaW1pw7YgbGV2eWxsZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MworbXNnaWQgIiAgIHggICBsaW5rIEJTRCBwYXJ0aXRpb24gdG8gbm9uLUJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIHggICAgbGlua2l0w6QgQlNELW9zaW8gZWktQlNELW9zaW9vbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIk9zaW9sbGEgJXMgb24gdmlyaGVlbGxpbmVuIGFsa3VzZWt0b3JpIDAuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICJMdWV0YWFuIGxhaXR0ZWVuICVzIGxldnluaW1pw7Z0w6Qgc2VrdG9yaWx0YSAlZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAiTGFpdHRlZWxsYSAlcyBlaSBvbGUgKkJTRC1vc2lvdGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyMDMKK21zZ2lkICJCU0QgZGlza2xhYmVsIGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIkJTRC1sZXZ5bmltacO2a29tZW50byAobSBhbnRhYSBvaGplZW4pOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyODMgZmRpc2svZmRpc2suYzoyMzI4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzgKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3QgJXMiCittc2dzdHIgIkVuc2ltbcOkaW5lbiAlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJXMgb3IgK3NpemUgb3IgK3NpemVNIG9yICtzaXplSyIKK21zZ3N0ciAiVmlpbWVpbmVuICVzIHRhaSAra29rbyB0YWkgK2tva29NIHRhaSAra29rb0siCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJXNcbiIKK21zZ3N0ciAidHl5cHBpOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE5CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVkXG4iCittc2dzdHIgInR5eXBwaTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgImxldnk6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsYWJlbDogJS4qc1xuIgorbXNnc3RyICJuaW1pw7Y6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmbGFnczoiCittc2dzdHIgImxpcHV0OiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgcmVtb3ZhYmxlIgorbXNnc3RyICIgc2lpcnJldHTDpHbDpCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNgorIywgYy1mb3JtYXQKK21zZ2lkICIgZWNjIgorbXNnc3RyICIgZWNjIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiBiYWRzZWN0IgorbXNnc3RyICIgYmFkc2VjdCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcy9zZWN0b3I6ICVsZFxuIgorbXNnc3RyICJ0YXZ1amEvc2VrdG9yaSAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAic2VrdG9yZWl0YS91cmE6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInVyaWEvc3lsaW50ZXJpOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAic2VrdG9yZWl0YS9zeWxpbnRlcmk6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyczogJWxkXG4iCittc2dzdHIgInN5bGludGVyZWl0w6Q6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM3CisjLCBjLWZvcm1hdAorbXNnaWQgInJwbTogJWRcbiIKK21zZ3N0ciAicnBtOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgImludGVybGVhdmU6ICVkXG4iCittc2dzdHIgImxvbWl0dXM6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tza2V3OiAlZFxuIgorbXNnc3RyICJ1cmF2w6TDpHJpc3R5bcOkOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAic3lsaW50ZXJpdsOkw6RyaXN0eW3DpDogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAicMOkw6RudmFpaHRvOiAlbGRcdFx0IyBtaWxsaXNla3VudGlhXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlazogJWxkXHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJyYWlkYWx0YSByYWlkYWxsZSBzaWlydHltaW5lbjogJWxkXHQjbWlsbGlzZWt1bnRpYVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImRyaXZlZGF0YTogIgorbXNnc3RyICJhc2VtYWRhdGE6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJWQgcGFydGl0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkIG9zaW90YTpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIyAgICAgICBhbGt1ICAgICAgICBsb3BwdSAgICBrb2tvICAgICB0eXlwcGkgICBbZmtva28gYmtva28gICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiS2lyam9pdGV0YWFuIGxldnluaW1pw7Z0w6QgbGFpdHRlZWxsZSAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQxOSBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIKK21zZ3N0ciAiTGFpdHRlZWxsYSAlcyBlaSBvbGUgbGV2eW5pbWnDtnTDpC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJIYWx1YXRrbyBsdW9kYSBsZXZ5bmltacO2bj8gKHkvbikgIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICJ0YXZ1YS9zZWt0b3JpIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic2VrdG9yaWEvdXJhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY4Cittc2dpZCAidHJhY2tzL2N5bGluZGVyIgorbXNnc3RyICJ1cmFhL3N5bGludGVyaSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAic3lsaW50ZXJpdCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ3NgorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXIiCittc2dzdHIgInNla3RvcmlhL3N5bGludGVyaSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIDw9IHNlY3RvcnMvdHJhY2sgKiB0cmFja3MvY3lsaW5kZXIgKGRlZmF1bHQpLlxuIgorbXNnc3RyICJPbiBvbHRhdmEg4omkIHNla3RvcmlhL3VyYSAqIHVyYWEvc3lsaW50ZXJpIChvbGV0dXMpLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgyCittc2dpZCAicnBtIgorbXNnc3RyICJycG0iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODMKK21zZ2lkICJpbnRlcmxlYXZlIgorbXNnc3RyICJsb21pdHVzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICJ1cmF2w6TDpHJpc3R5bcOkIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg1Cittc2dpZCAiY3lsaW5kZXJza2V3IgorbXNnc3RyICJzeWxpbnRlcml2w6TDpHJpc3R5bcOkIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg2Cittc2dpZCAiaGVhZHN3aXRjaCIKK21zZ3N0ciAicMOkw6RudmFpaHRvIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg3Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlayIKK21zZ3N0ciAicmFpZGFsdGEgcmFpZGFsbGUgc2lpcnR5bWluZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKK21zZ3N0ciAiRXNpbGF0YXVzb2hqZWxtYTogJXNib290IOKGkiBib290JXMgKCVzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIkVzaWxhdGF1c29oamVsbWEgb24gcMOkw6RsbGVra8OkaW5lbiBsZXZ5bmltacO2biBrYW5zc2EhXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgaW5zdGFsbGVkIG9uICVzLlxuIgorbXNnc3RyICJFc2lsYXRhdXNvaGplbG1hIGFzZW5uZXR0dSBsYWl0dGVlbGxlICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAiT3NpbyAoYS0lYyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYxNyBmZGlzay9mZGlzay5jOjI0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgaGFzIGJlZW4gY3JlYXRlZFxuIgorbXNnc3RyICJNYWtzaW1pbcOkw6Ryw6Qgb3Npb2l0YSBvbiBsdW90dVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGFscmVhZHkgZXhpc3RzLlxuIgorbXNnc3RyICJUw6Rtw6Qgb3NpbyBvbiBqbyBvbGVtYXNzYS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIlZhcm9pdHVzOiBsaWlhbiBtb250YSBvc2lvdGEgKCVkLCBtYWtzaW1pIG9uICVkKS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlN5bmtyb25vaWRhYW4gbGV2eXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIKK21zZ3N0ciAiTGFpdGV0dGEgJXMgZWkgdm9pIGF2YXRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byByZWFkICVzXG4iCittc2dzdHIgIkxhaXRldHRhICVzIGVpIHZvaSBsdWtlYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2VlayBvbiAlc1xuIgorbXNnc3RyICJMYWl0dGVlbGxhICVzIGVpIHZvaSBzaWlydHnDpFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiTGFpdHRlZWxsZSAlcyBlaSB2b2kga2lyam9pdHRhYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlc1xuIgorbXNnc3RyICJCTEtHRVRTSVpFLWlvY3RsIGVww6Rvbm5pc3R1aSBsYWl0dGVlbGxlICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGFueSBtb3JlIG1lbW9yeVxuIgorbXNnc3RyICJNdWlzdGlhIGVpIHZvaSB2YXJhdGEgZW5lbXDDpMOkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAiVmFrYXZhIHZpcmhlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgIGFzZXRhIHZhaW4gbHVrdSAtbGlwcHUgcMOkw6RsbGUvcG9pcyIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAgIG11b2trYWEgYnNkLWxldnluaW1pw7Z0w6QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiAgIGMgICAgYXNldGEgbGlpdGV0dMOkdnl5c2xpcHB1IHDDpMOkbGxlL3BvaXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgICBwb2lzdGEgb3NpbyIKKworIzogZmRpc2svZmRpc2suYzozOTkgZmRpc2svZmRpc2suYzo0MTggZmRpc2svZmRpc2suYzo0NDMKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgIGwgICAgbGlzdGFhIHR1bm5ldHV0IG9zaW90eXlwaXQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICAgbGlzw6TDpCB1dXNpIG9zaW8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAyIGZkaXNrL2ZkaXNrLmM6NDIxIGZkaXNrL2ZkaXNrLmM6NDMzIGZkaXNrL2ZkaXNrLmM6NDQ2Cittc2dpZCAiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBvICAgIGx1byB1dXNpIHR5aGrDpCBET1Mtb3Npb3RhdWx1IgorCisjOiBmZGlzay9mZGlzay5jOjQwMyBmZGlzay9mZGlzay5jOjQyMiBmZGlzay9mZGlzay5jOjQ0NyBmZGlzay9mZGlzay5jOjQ3MAorIzogZmRpc2svZmRpc2suYzo0ODcgZmRpc2svZmRpc2suYzo1MDMgZmRpc2svZmRpc2suYzo1MjEKK21zZ2lkICIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgICBuw6R5dMOkIG9zaW90YXVsdSIKKworIzogZmRpc2svZmRpc2suYzo0MDUgZmRpc2svZmRpc2suYzo0MjQgZmRpc2svZmRpc2suYzo0MzUgZmRpc2svZmRpc2suYzo0NDkKK21zZ2lkICIgICBzICAgY3JlYXRlIGEgbmV3IGVtcHR5IFN1biBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICAgbHVvIHV1c2kgdHloasOkIFN1bi1sZXZ5bmltacO2IgorCisjOiBmZGlzay9mZGlzay5jOjQwNiBmZGlzay9mZGlzay5jOjQyNSBmZGlzay9mZGlzay5jOjQ1MAorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICAgdmFpaGRhIG9zaW9uIGrDpHJqZXN0ZWxtw6QtaWQ6dMOkIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgICB2YWloZGEgbsOka3ltw6Qvc3nDtnRleWtzaWvDtnQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA4IGZkaXNrL2ZkaXNrLmM6NDI3IGZkaXNrL2ZkaXNrLmM6NDUyIGZkaXNrL2ZkaXNrLmM6NDc0CisjOiBmZGlzay9mZGlzay5jOjQ5MSBmZGlzay9mZGlzay5jOjUwNyBmZGlzay9mZGlzay5jOjUyNQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgdiAgICB2YXJtaXN0YSBvc2lvdGF1bHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA5IGZkaXNrL2ZkaXNrLmM6NDI4IGZkaXNrL2ZkaXNrLmM6NDUzIGZkaXNrL2ZkaXNrLmM6NDc1CisjOiBmZGlzay9mZGlzay5jOjQ5MiBmZGlzay9mZGlzay5jOjUwOCBmZGlzay9mZGlzay5jOjUyNgorbXNnaWQgIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IgorbXNnc3RyICIgICB3ICAgIGtpcmpvaXRhIHRhdWx1IGxldnlsbGUgamEgcG9pc3R1IgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgICB4ICAgIGxpc8OkdG9pbWlubm90ICh2YWluIGFzaWFudHVudGlqb2lsbGUpIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAgIHZhbGl0c2Uga8OkeW5uaXN0ZXR0w6R2w6Qgb3NpbyIKKworIzogZmRpc2svZmRpc2suYzo0MTUKK21zZ2lkICIgICBiICAgZWRpdCBib290ZmlsZSBlbnRyeSIKK21zZ3N0ciAiICAgYiAgICBtdW9ra2FhIGvDpHlubmlzdHlzdGllZG9zdG9tZXJraW50w6TDpCIKKworIzogZmRpc2svZmRpc2suYzo0MTYKK21zZ2lkICIgICBjICAgc2VsZWN0IHNnaSBzd2FwIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYyAgICB2YWxpdHNlIHNnaS1zaXZ1dHVzb3NpbyIKKworIzogZmRpc2svZmRpc2suYzo0MzkKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgYm9vdGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYSAgICBhc2V0YSBrw6R5bm5pc3RldHTDpHZ5eXNsaXBwdSBww6TDpGxsZS9wb2lzIgorCisjOiBmZGlzay9mZGlzay5jOjQ0MQorbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciCittc2dzdHIgIiAgIGMgICAgYXNldGEgZG9zLXlodGVlbnNvcGl2dXVzbGlwcHUgcMOkw6RsbGUvcG9pcyIKKworIzogZmRpc2svZmRpc2suYzo0NjIKK21zZ2lkICIgICBhICAgY2hhbmdlIG51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICIgICBhICAgIG11dXRhIHZhaWh0b2VodG9pc3RlbiBzeWxpbnRlcmllbiBtw6TDpHLDpMOkIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgICBtdXV0YSBzeWxpbnRlcmllbiBtw6TDpHLDpMOkIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NCBmZGlzay9mZGlzay5jOjQ4MiBmZGlzay9mZGlzay5jOjQ5OCBmZGlzay9mZGlzay5jOjUxNAorbXNnaWQgIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZCAgICBuw6R5dMOkIG9zaW90YXVsdW4gcmFha2EgZGF0YSIKKworIzogZmRpc2svZmRpc2suYzo0NjUKK21zZ2lkICIgICBlICAgY2hhbmdlIG51bWJlciBvZiBleHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiICAgZSAgICBtdXV0YSBzeWxpbnRlcmlrb2h0YWlzdGVuIGxpc8Okc2VrdG9yaWVuIG3DpMOkcsOkw6QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY2IGZkaXNrL2ZkaXNrLmM6NDg1IGZkaXNrL2ZkaXNrLmM6NTAxIGZkaXNrL2ZkaXNrLmM6NTE4Cittc2dpZCAiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIiAgIGggICAgbXV1dGEgcMOkaWRlbiBtw6TDpHLDpMOkIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NworbXNnaWQgIiAgIGkgICBjaGFuZ2UgaW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiAgIGkgICAgbXV1dGEgbG9taXR1c2tlcnJvaW50YSIKKworIzogZmRpc2svZmRpc2suYzo0NjgKK21zZ2lkICIgICBvICAgY2hhbmdlIHJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIgICBvICAgIG11dXRhIHB5w7ZyaW1pc25vcGV1dHRhIChycG0pIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorbXNnaWQgIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siCittc2dzdHIgIiAgIHMgICAgbXV1dGEgc2VrdG9yaWVuIG3DpMOkcsOkw6QgdXJhYSBrb2hkZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIgICB5ICAgIG11dXRhIGZ5eXNpc3RlbiBzeWxpbnRlcmVpZGVuIG3DpMOkcsOkw6QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGIgICAgc2lpcnLDpCBkYXRhbiBhbGt1YSBvc2lvc3NhIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MyBmZGlzay9mZGlzay5jOjQ5OSBmZGlzay9mZGlzay5jOjUxNQorbXNnaWQgIiAgIGUgICBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiAgIGUgICAgbGlzdGFhIGxhYWplbm5ldHV0IG9zaW90IgorCisjOiBmZGlzay9mZGlzay5jOjQ4NCBmZGlzay9mZGlzay5jOjUwMCBmZGlzay9mZGlzay5jOjUxNworbXNnaWQgIiAgIGcgICBjcmVhdGUgYW4gSVJJWCAoU0dJKSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGcgICAgbHVvIElSSVggKFNHSSkgLW9zaW90YXVsdSIKKworIzogZmRpc2svZmRpc2suYzo1MTYKK21zZ2lkICIgICBmICAgZml4IHBhcnRpdGlvbiBvcmRlciIKK21zZ3N0ciAiICAgZiAgICBrb3JqYWEgb3Npb2rDpHJqZXN0eXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5Cittc2dpZCAiICAgaSAgIGNoYW5nZSB0aGUgZGlzayBpZGVudGlmaWVyIgorbXNnc3RyICIgICBpICAgIG11dXRhIGxldnluIHR1bm5pc3RldHRhIgorCisjOiBmZGlzay9mZGlzay5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBzZXQiCittc2dzdHIgIk9uIGFzZXRldHRhdmEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM2Cittc2dpZCAiaGVhZHMiCittc2dzdHIgInDDpMOkdCIKKworIzogZmRpc2svZmRpc2suYzo3MzggZmRpc2svZmRpc2suYzoxNTkyIGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgInNlY3RvcnMiCittc2dzdHIgInNla3Rvcml0IgorCisjOiBmZGlzay9mZGlzay5jOjc0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMlcy5cbiIKKyJZb3UgY2FuIGRvIHRoaXMgZnJvbSB0aGUgZXh0cmEgZnVuY3Rpb25zIG1lbnUuXG4iCittc2dzdHIgIiIKKyIlcyVzLlxuIgorIlTDpG3DpG4gdm9pIHRlaGTDpCBsaXPDpHRvaW1pbnRvdmFsaWtvc3RhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjc0NQorbXNnaWQgIiBhbmQgIgorbXNnc3RyICIgamEgIgorCisjOiBmZGlzay9mZGlzay5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogVGhlIHNpemUgb2YgdGhpcyBkaXNrIGlzICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJET1MgcGFydGl0aW9uIHRhYmxlIGZvcm1hdCBjYW4gbm90IGJlIHVzZWQgb24gZHJpdmVzIGZvciB2b2x1bWVzXG4iCisibGFyZ2VyIHRoYW4gKCVsbHUgYnl0ZXMpIGZvciAlZC1ieXRlIHNlY3RvcnMuIFVzZSBwYXJ0ZWQoMSkgYW5kIEdVSUQgXG4iCisicGFydGl0aW9uIHRhYmxlIGZvcm1hdCAoR1BUKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW5cbiIKKyJ0aGUgcGh5c2ljYWwgc2VjdG9yIHNpemUuIEFsaWduaW5nIHRvIGEgcGh5c2ljYWwgc2VjdG9yIChvciBvcHRpbWFsXG4iCisiSS9PKSBzaXplIGJvdW5kYXJ5IGlzIHJlY29tbWVuZGVkLCBvciBwZXJmb3JtYW5jZSBtYXkgYmUgaW1wYWN0ZWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0b1xuIgorIiAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0b1xuIgorIiAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiVmlyaGVlbGxpbmVuIHNpaXJ0eW3DpCBsYWFqZW5uZXR1c3NhIGVuc2nDtm9zaW9zc2FcbiIKKworIzogZmRpc2svZmRpc2suYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IG9taXR0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgIyVkLlxuIgorIlRoZXkgd2lsbCBiZSBkZWxldGVkIGlmIHlvdSBzYXZlIHRoaXMgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICIiCisiVmFyb2l0dXM6IGVpIGh1b21pb2lkYSAjJWQ6biBqw6Rsa2Vpc2nDpCBvc2lvaXRhLlxuIgorIk5lIHR1aG90YWFuIGpvcyB0w6Rtw6Qgb3Npb3RhdWx1IHRhbGxlbm5ldGFhbi5cbiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJWYXJvaXR1czogeWxpbcOkw6Ryw6RpbmVuIGxpbmtraW9zb2l0aW4gb3Npb3RhdWx1c3NhICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIlZhcm9pdHVzOiBqw6R0ZXTDpMOkbiBodW9taW90dGEgeWxpbcOkw6Ryw6RpbmVuIGRhdGEgb3Npb3RhdWx1c3NhICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvbWl0dGluZyBlbXB0eSBwYXJ0aXRpb24gKCVkKVxuIgorbXNnc3RyICJWYXJvaXR1czogdHloasOkIG9zaW9cbiIKKworIzogZmRpc2svZmRpc2suYzo5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBpZGVudGlmaWVyOiAweCUwOHhcbiIKK21zZ3N0ciAiTGV2eW4gdHVubmlzdGU6IDB4JTA4eFxuIgorCisjOiBmZGlzay9mZGlzay5jOjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgZGlzayBpZGVudGlmaWVyIChjdXJyZW50IDB4JTA4eCk6ICIKK21zZ3N0ciAiTGV2eW4gdXVzaSB0dW5uaXN0ZSAobnlreWluZW4gMHglMDh4KTogIgorCisjOiBmZGlzay9mZGlzay5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgRE9TIGRpc2tsYWJlbCB3aXRoIGRpc2sgaWRlbnRpZmllciAweCUwOHguXG4iCisiQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLlxuIgorIkFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJNdW9kb3N0ZXRhYW4gdXVzaSBET1MtbGV2eW5pbWnDtiwgdHVubmlzdGUgMHglMDh4LlxuIgorIk11dXRva3NldCBwaWRldMOkw6RuIHZhaW4ga8OkeXR0w7ZtdWlzdGlzc2EsIGt1bm5lcyBww6TDpHTDpHQga2lyam9pdHRhYSBuZVxuIgorImxldnlsbGUuIFNlbiBqw6Rsa2VlbiBlZGVsbGlzdMOkIHNpc8OkbHTDtsOkIGVpIHRpZXRlbmvDpMOkbiB2b2lkYSBlbsOkw6RcbiIKKyJwYWxhdXR0YWEuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3RlOiBzZWN0b3Igc2l6ZSBpcyAlZCAobm90ICVkKVxuIgorbXNnc3RyICJIdW9tOiBzZWt0b3Jpa29rbyBvbiAlZCAoZWkgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJFdCBweXN0eSBraXJqb2l0dGFtYWFuIG9zaW90YXVsdWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkaXNrIGhhcyBib3RoIERPUyBhbmQgQlNEIG1hZ2ljLlxuIgorIkdpdmUgdGhlICdiJyBjb21tYW5kIHRvIGdvIHRvIEJTRCBtb2RlLlxuIgorbXNnc3RyICIiCisiVMOkbGzDpCBsZXZ5bGzDpCBvbiBzZWvDpCBET1MtLCBldHTDpCBCU0QtdGFpa2F0YXZ1dC5cbiIKKyJTaWlycnkgQlNELXRpbGFhbiDigJ1i4oCdLWtvbWVubm9sbGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGICIKKyJkaXNrbGFiZWxcbiIKK21zZ3N0ciAiTGFpdHRlZWxsYSBlaSBvbGUga2Vsdm9sbGlzdGEgRE9TLSwgU3VuLSwgU0dJLSBlaWvDpCBPU0YtbGV2eW5pbWnDtnTDpFxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW50ZXJuYWwgZXJyb3JcbiIKK21zZ3N0ciAiU2lzw6RpbmVuIHZpcmhlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI4MworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmluZyBleHRyYSBleHRlbmRlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiWWxpbcOkw6Ryw6Rpc3TDpCBsYWFqZW5uZXR0dWEgb3Npb3RhICVkIGVpIGh1b21pb2lkYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGludmFsaWQgZmxhZyAweCUwNHggb2YgcGFydGl0aW9uIHRhYmxlICVkIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHciCisiKHJpdGUpXG4iCittc2dzdHIgIiIKKyJWYXJvaXR1czogb3Npb3RhdWx1biAlMiRkIHZpcmhlZWxsaW5lbiBsaXBwdSAweCUxJDA0eCBrb3JqYXRhYW4gIgorImtpcmpvaXRldHRhZXNzYSAodylcbiIKKworIzogZmRpc2svZmRpc2suYzoxMzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJnb3QgRU9GIHRocmljZSAtIGV4aXRpbmcuLlxuIgorbXNnc3RyICIiCisiXG4iCisic2FhdGlpbiBFT0Yga29sbWVzdGkg4oCTIHBvaXN0dXRhYW4uLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIkhla3Nha29vZGkgKEwgbGlzdGFhIGtvb2RpdCk6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiJXMgKCV1LSV1LCBvbGV0dXMgJXUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnN1cHBvcnRlZCBzdWZmaXg6ICclcycuXG4iCittc2dzdHIgIlR1bnRlbWF0b24gasOkbGtpbGlpdGU6IOKAnSVz4oCdLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisiVHVubmV0dXQ6ICAxMF5OOiBLQiAoa2lsb3RhdnUpLCBNQiAobWVnYXRhdnUpLCBHQiAoZ2lnYXRhdnUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoa2liaXRhdnUpLCBNICAobWViaXRhdnUpLCBHICAoZ2liaXRhdnUpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ4OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBkZWZhdWx0IHZhbHVlICV1XG4iCittc2dzdHIgIkvDpHl0ZXTDpMOkbiBvbGV0dXNhcnZvYSAldVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmFsdWUgb3V0IG9mIHJhbmdlLlxuIgorbXNnc3RyICJBcnZvIHNhbGxpdHVuIHbDpGxpbiB1bGtvcHVvbGVsbGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgIk9zaW9udW1lcm8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAiVmFyb2l0dXM6IG9zaW9sbGEgJWQgb24gdHloasOkIHR5eXBwaVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJWYWxpdHRpaW4gb3NpbyAlZFxuIgorCisjCisjOiBmZGlzay9mZGlzay5jOjE1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9uIGlzIGRlZmluZWQgeWV0IVxuIgorbXNnc3RyICJPc2lvaXRhIGVpIG9sZSB2aWVsw6QgbcOkw6RyaXRlbHR5IVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIHByaW1hcnkgcGFydGl0aW9ucyBoYXZlIGJlZW4gZGVmaW5lZCBhbHJlYWR5IVxuIgorbXNnc3RyICJLYWlra2kgZW5zacO2b3Npb3Qgb24gam8gbcOkw6RyaXRlbHR5IVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJjeWxpbmRlciIKK21zZ3N0ciAic3lsaW50ZXJpIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJzZWN0b3IiCittc2dzdHIgInNla3RvcmkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIlZhaWhkZXRhYW4gbsOka3ltw6Qvc3nDtnRleWtzaWvDtmlrc2kgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiVkFST0lUVVM6IE9zaW8gJWQgb24gbGFhamVubmV0dHUgb3Npb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIKK21zZ3N0ciAiRE9TLXlodGVlbnNvcGl2dXVzbGlwcHUgb24gYXNldGV0dHVcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldFxuIgorbXNnc3RyICJET1MteWh0ZWVuc29waXZ1dXNsaXBwdWEgZWkgb2xlIGFzZXRldHR1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyMworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICJPc2lvdGEgJWQgZWkgb2xlIHZpZWzDpCBvbGVtYXNzYSFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKyJUeXlwcGkgMCBtZXJraXRzZWUgdHloasOkw6QgdGlsYWEgdXNlaXNzYSBqw6RyamVzdGVsbWlzc8OkXG4iCisiKG11dHRhIGVpIExpbnV4aXNzYSkuIFR5eXBwacOkIDAgb2xldmllbiBvc2lvaWRlblxuIgorInBpdMOkbWluZW4gZWkgdG9kZW5uw6Rrw7Zpc2VzdGkgb2xlIHZpaXNhc3RhLiBPc2lvbiB2b2lcbiIKKyJwb2lzdGFhIGvDpHl0dMOkbcOkbGzDpCDigJ1k4oCdLWtvbWVudG9hLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8gYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKyJEZWxldGUgaXQgZmlyc3QuXG4iCittc2dzdHIgIiIKKyJPc2lvdGEgZWkgdm9pIG11dXR0YWEgbGFhamVubmV0dWtzaSBvc2lva3NpLCBlaWvDpCBww6RpbnZhc3RvaW4uXG4iCisiU2Ugb24gcG9pc3RldHRhdmEgZW5zaW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gMyBhcyBXaG9sZSBkaXNrICg1KSxcbiIKKyJhcyBTdW5PUy9Tb2xhcmlzIGV4cGVjdHMgaXQgYW5kIGV2ZW4gTGludXggbGlrZXMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJPc2lvbiAzIHR5eXBpa3NpIG9uIHN5eXTDpCBqw6R0dMOkw6QgS29rbyBsZXZ5ICg1KSxcbiIKKyJrb3NrYSBTdW5PUy9Tb2xhcmlzIG9kb3R0YWEgc2l0w6QsIGphIGpvcGEgTGludXggcGl0w6TDpCBzaWl0w6QuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gOSBhcyB2b2x1bWUgaGVhZGVyICgwKSxcbiIKKyJhbmQgcGFydGl0aW9uIDExIGFzIGVudGlyZSB2b2x1bWUgKDYpLCBhcyBJUklYIGV4cGVjdHMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJPc2lvbiA5IHR5eXBpa3NpIG9uIHN5eXTDpCBqw6R0dMOkw6Qgb3Npby1vdHNpa2tvICgwKSxcbiIKKyJqYSBvc2lvbiAxMSB0eXlwaWtzaSBLb2tvIG9zaW8gKDYpLCBrb3NrYSBJUklYIG9kb3R0YWEgc2l0w6QuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc2OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2VkIHN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCB0byAleCAoJXMpXG4iCittc2dzdHIgIk9zaW9uICVkIGrDpHJqZXN0ZWxtw6R0eXlwaWtzaSB2YWloZGV0dGlpbiAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICJPc2lvbiAlZCBqw6RyamVzdGVsbcOkdHl5cHBpbsOkIHPDpGlseWkgJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAiT3Npb2xsYSAlZCBvbiBlcmkgZnl5c2lzZXQvbG9vZ2lzZXQgYWxrdWtvaGRhdCAoZWktTGludXg/KTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI5IGZkaXNrL2ZkaXNrLmM6MTgzNyBmZGlzay9mZGlzay5jOjE4NDYgZmRpc2svZmRpc2suYzoxODU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorbXNnc3RyICIgICAgIGZ5eXNpbmVuPSglZCwgJWQsICVkKSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzMCBmZGlzay9mZGlzay5jOjE4MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naWNhbD0oJWQsICVkLCAlZClcbiIKK21zZ3N0ciAibG9vZ2luZW49KCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzNQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGVuZGluZ3M6XG4iCittc2dzdHIgIk9zaW9sbGEgJWQgb24gZXJpIGZ5eXNpc2V0L2xvb2dpc2V0IGxvcHB1a29oZGF0OlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICJPc2lvbiAlaSBhbGt1IGVpIG9sZSBzeWxpbnRlcmluIHJhamFsbGE6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgMSlcbiIKK21zZ3N0ciAicGl0w6TDpCBvbGxhICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJPc2lvbiAlaSBsb3BwdSBlaSBvbGUgc3lsaW50ZXJpbiByYWphbGxhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsICVkKVxuIgorbXNnc3RyICJwaXTDpMOkIG9sbGEgKCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIHBoeXNpY2FsIHNlY3RvciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiT3Npb24gJWkgYWxrdSBlaSBvbGUgZnl5c2lzZW4gbG9oa29uIHJhamFsbGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg3NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkIE1CLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMZXZ5ICVzOiAlbGQgTXQsICVsbGQgdGF2dWFcbiIKKworIzogZmRpc2svZmRpc2suYzoxODgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQuJWxkIEdCLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMZXZ5ICVzOiAlbGQuJWxkIEd0LCAlbGxkIHRhdnVhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBoZWFkcywgJWxsdSBzZWN0b3JzL3RyYWNrLCAlZCBjeWxpbmRlcnMiCittc2dzdHIgIiVkIHDDpMOkdMOkLCAlbGx1IHNla3RvcmlhL3VyYSwgJWQgc3lsaW50ZXJpw6QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NworIywgYy1mb3JtYXQKK21zZ2lkICIsIHRvdGFsICVsbHUgc2VjdG9ycyIKK21zZ3N0ciAiLCB5aHRlZW5zw6QgJWxsdSBzZWt0b3JpYSIKKworIzogZmRpc2svZmRpc2suYzoxODkwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuaXRzID0gJXMgb2YgJWQgKiAlZCA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIllrc2lrw7Z0ID0gJTIkZCAqICUzJGQgPSAlNCRkIC10YXZ1aXNldCAlMSRzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6ICV1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICJ2aXJoZWVsbGluZW4gaS1zb2xtdW4ga29rbyIKKworIzogZmRpc2svZmRpc2suYzoyMDA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3RoaW5nIHRvIGRvLiBPcmRlcmluZyBpcyBjb3JyZWN0IGFscmVhZHkuXG4iCisiXG4iCittc2dzdHIgIiIKKyJFaSBtaXTDpMOkbiB0ZWh0w6R2w6TDpC4gSsOkcmplc3R5cyBvbiBqbyBvaWtlYS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvbmUuXG4iCittc2dzdHIgIlZhbG1pcy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRvZXNuJ3QgbG9vayBsaWtlIGEgcGFydGl0aW9uIHRhYmxlXG4iCisiUHJvYmFibHkgeW91IHNlbGVjdGVkIHRoZSB3cm9uZyBkZXZpY2UuXG4iCisiXG4iCittc2dzdHIgIiIKKyJUw6Rtw6QgZWkgbsOkeXTDpCBvc2lvdGF1bHVsdGFcbiIKKyJWYWxpdHR1bmEgb24gdG9kZW5uw6Rrw7Zpc2VzdGkgdsOkw6Ryw6QgbGFpdGUuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgS8OkeW5uICAgICBBbGt1ICAgICAgICAgIExvcHB1ICAgIExvaGtvdCAgIElkICBKw6RyamVzdGVsbcOkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3OCBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjEwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTgKK21zZ2lkICJEZXZpY2UiCittc2dzdHIgIkxhaXRlIgorCisjOiBmZGlzay9mZGlzay5jOjIxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIgorbXNnc3RyICIiCisiXG4iCisiT3Npb3RhdWx1bWVya2lubsOkdCBlaXbDpHQgb2xlIGxldnlqw6RyamVzdHlrc2Vzc8OkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMZXZ5ICVzOiAlZCBww6TDpHTDpCwgJWxsdSBzZWt0b3JpYSwgJWQgc3lsaW50ZXJpw6RcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICJObyBBRiBQw6TDpCBTZWt0IFN5bCBQw6TDpCBTZWt0IFN5bCAgICAgQWxrdSAgICAgICBLb2tvIElEXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIKK21zZ3N0ciAiVmFyb2l0dXM6IG9zaW8gJWQgc2lzw6RsdMOkw6Qgc2VrdG9yaW4gMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIk9zaW8gJWQ6IHDDpMOkICVkIG9uIHN1dXJlbXBpIGt1aW4gbWFrc2ltaSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJPc2lvICVkOiBzZWt0b3JpICVkIG9uIHN1dXJlbXBpIGt1aW4gbWFrc2ltaSAlbGx1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJPc2lvICVkOiBzeWxpbnRlcmkgJWQgb24gc3V1cmVtcGkga3VpbiBtYWtzaW1pICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHByZXZpb3VzIHNlY3RvcnMgJWQgZGlzYWdyZWVzIHdpdGggdG90YWwgJWRcbiIKK21zZ3N0ciAiIgorIk9zaW8gJWQ6IGVkZWxsaW5lbiBzZWt0b3JpbcOkw6Ryw6QgJWQgb24gcmlzdGlyaWlkYXNzYSB5aHRlaXNtw6TDpHLDpG4gJWQga2Fuc3NhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiVmFyb2l0dXM6IHZpcmhlZWxsaW5lbiBkYXRhbiBhbGt1a29odGEgb3Npb3NzYSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIG92ZXJsYXBzIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiVmFyb2l0dXM6IG9zaW8gJWQgamEgb3NpbyAlZCBvdmF0IChvc2l0dGFpbikgcMOkw6RsbGVra8OkaXNldC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBpcyBlbXB0eVxuIgorbXNnc3RyICJWYXJvaXR1czogb3NpbyAlZCBvbiB0eWhqw6RcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiTG9vZ2luZW4gb3NpbyAlZCBlaSBvbGUga29rb25hYW4gb3Npb3NzYSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICIiCisiVmFyYXR0dWplbiBzZWt0b3JlaWRlbiBrb2tvbmFpc23DpMOkcsOkICVsbHUgb24gc3V1cmVtcGkga3VpbiBtYWtzaW1pICVsbHVcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSZW1haW5pbmcgJWxsZCB1bmFsbG9jYXRlZCAlZC1ieXRlIHNlY3RvcnNcbiIKK21zZ3N0ciAiJWxsZCB2YXJhYW1hdG9udGEgJWQtdGF2dWlzdGEgc2VrdG9yaWFcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzAxIGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxMQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlIGl0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iCittc2dzdHIgIk9zaW8gJWQgb24gam8gbcOkw6RyaXRlbHR5LiBQb2lzdGEgc2UgZW5uZW4gdXVkZWxsZWVuIGxpc8Okw6RtaXN0w6QuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWt0b3JpICVsbHUgb24gam8gdmFyYXR0dVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICJFaSB2YXBhaXRhIHNla3RvcmVpdGEga8OkeXRldHTDpHZpc3PDpFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlMSRzLCArJTIkcyBvciArc2l6ZXtLLE0sR30iCittc2dzdHIgIlZpaW1laW5lbiAlMSRzLCArJTIkcyB0YWkgK2tva297SyxNLEd9IgorCisjOiBmZGlzay9mZGlzay5jOjI0NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgQUlYIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyJcdFZhbGl0ZXR0YXZhc3RpIHTDpG3DpCBmZGlzayBlaSBvc2FhIGvDpHNpdGVsbMOkIEFJWC1sZXZ5bmltacO2aXTDpC5cbiIKKyJcdEpvcyBoYWx1YXQgbGlzw6R0w6QgRE9TLXR5eXBwaXNpw6Qgb3Npb2l0YSwgbHVvIGVuc2luXG4iCisiXHR1dXNpIERPUy1vc2lvdGF1bHUuIChLb21lbnRvIG8uKVxuIgorIlx0VkFST0lUVVM6IFV1ZGVuIG9zaW90YXVsdW4gbHVvbWluZW4gdHVob2FhIGxldnluIG55a3lpc2VuIHNpc8OkbGzDtm4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0VmFsaXRldHRhdmFzdGkgdMOkbcOkIGZkaXNrIGVpIG9zYWEga8Okc2l0ZWxsw6QgTWFjLWxldnluaW1pw7ZpdMOkLlxuIgorIlx0Sm9zIGhhbHVhdCBsaXPDpHTDpCBET1MtdHl5cHBpc2nDpCBvc2lvaXRhLCBsdW8gZW5zaW5cbiIKKyJcdHV1c2kgRE9TLW9zaW90YXVsdS4gKEtvbWVudG8gby4pXG4iCisiXHRWQVJPSVRVUzogVXVkZW4gb3Npb3RhdWx1biBsdW9taW5lbiB0dWhvYWEgbGV2eW4gbnlreWlzZW4gc2lzw6RsbMO2bi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICJKb2tpbiBvc2lvIG9uIHBvaXN0ZXR0YXZhIGphIGxpc8OkdHTDpHbDpCBsYWFqZW5uZXR0dSBvc2lvIGVuc2luXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgbG9naWNhbCBwYXJ0aXRpb25zIGFyZSBpbiB1c2VcbiIKK21zZ3N0ciAiS2Fpa2tpIGxvb2dpc2V0IG9zaW90IG92YXQga8OkeXTDtnNzw6RcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIkxpc8OkdMOkw6RuIGVuc2nDtm9zaW9cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKyJLb21lbnRvICBtZXJraXR5c1xuIgorIiAgICVzXG4iCisiICAgcCAgICBlbnNpw7Zvc2lvICgxLTQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIgorbXNnc3RyICJsICAgIGxvb2dpbmVuICg1IHRhaSB5bGkpIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJlICAgZXh0ZW5kZWQiCittc2dzdHIgImUgICAgbGFhamVubmV0dHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICJWaXJoZWVsbGluZW4gb3Npb251bWVybyB0eXlwaWxsZSDigJ0lY+KAnVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBwYXJ0aXRpb24gdGFibGUgaGFzIGJlZW4gYWx0ZXJlZCFcbiIKKyJcbiIKK21zZ3N0ciAiIgorIk9zaW90YXVsdWEgb24gbXV1dGV0dHUhXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkt1dHN1dGFhbiBvc2lvdGF1bHVuIHV1ZGVsbGVlbiBsdWtldmEgaW9jdGwoKS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorIlxuIgorIlZBUk9JVFVTOiBPc2lvdGF1bHVuIHV1ZGVsbGVlbmx1a3UgZXDDpG9ubmlzdHVpLCB2aXJoZSAlZDogJXMuXG4iCisiWWRpbiBrw6R5dHTDpMOkIGVkZWxsZWVuIHZhbmhhYSB0YXVsdWEuIFV1c2kgdGF1bHUgdHVsZWUga8OkeXR0w7bDtm4gc2V1cmFhdmFzc2FcbiIKKyJrw6R5bm5pc3R5a3Nlc3PDpCwgdGFpIGFqYW1hbGxhIHBhcnRwcm9iZSg4KSB0YWkga3BhcnR4KDgpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWQVJPSVRVUzogSm9zIERPUyA2LnggLW9zaW9pdGEgbHVvdGlpbiB0YWkgbXV1dGV0dGlpbixcbiIKKyJrYXRzbyBsaXPDpHRpZXRvamEgZmRpc2tpbiBtYW51YWFsaXNpdnVsdGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRXJyb3IgY2xvc2luZyBmaWxlXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWaXJoZSBzdWxqZXR0YWVzc2EgdGllZG9zdG9hXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICJTeW5rcm9ub2lkYWFuIGxldnl0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBubyBkYXRhIGFyZWFcbiIKK21zZ3N0ciAiT3Npb2xsYSAlZCBlaSBvbGUgZGF0YS1hbHVldHRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiVXVzaSBkYXRhbiBhbGt1IgorCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQXNpYW50dW50aWpha29tZW50byAobSBhbnRhYSBvaGplZW4pOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY4NQorbXNnaWQgIk51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIlN5bGludGVyaWVuIG3DpMOkcsOkIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIlDDpGlkZW4gbcOkw6Ryw6QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczNworbXNnaWQgIk51bWJlciBvZiBzZWN0b3JzIgorbXNnc3RyICJTZWt0b3JpZW4gbcOkw6Ryw6QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBzZXR0aW5nIHNlY3RvciBvZmZzZXQgZm9yIERPUyBjb21wYXRpYmxpdHlcbiIKK21zZ3N0ciAiVmFyb2l0dXM6IGFzZXRldGFhbiBzZWt0b3Jpc2lpcnR5bcOkIERPUy15aHRlZW5zb3BpdnV1dHRhIHZhcnRlblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlZBUk9JVFVTOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBoYXZhaXR0dSBsYWl0dGVlbGxhIOKAnSVz4oCdISBGZGlzayBlaSB0dWUgIgorIkdQVDp0w6QuIEvDpHl0w6QgR05VIFBhcnRlZGnDpC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXMgZG9lc24ndCBjb250YWluIGEgdmFsaWQgcGFydGl0aW9uIHRhYmxlXG4iCittc2dzdHIgIkxldnkgJXMgZWkgc2lzw6RsbMOkIGtlbHZvbGxpc3RhIG9zaW90YXVsdWFcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIkxhaXRldHRhICVzIGVpIHZvaSBhdmF0YVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJsYWl0ZXR0YSAlcyBlaSB2b2kgYXZhdGFcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IHR1bnRlbWF0b24ga29tZW50b1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBrZXJuZWwgZmluZHMgdGhlIHNlY3RvciBzaXplIGl0c2VsZiAtIC1iIG9wdGlvbiBpZ25vcmVkXG4iCittc2dzdHIgIlTDpG3DpCB5ZGluIGzDtnl0w6TDpCBzZWt0b3JpbiBrb29uIGl0c2Ug4oCTIC1iLXZhbGl0c2ludGEgZWkgaHVvbWlvaWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiVmFyb2l0dXM6IHZhbGl0c2ludGEgLWIgKHNla3Rvcmlrb29uIGFzZXR1cykgdHVsZWUga8OkeXR0w6TDpCB5aGRlbiBhbm5ldHVuICIKKyJsYWl0dGVlbiBrYW5zc2FcbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIiIKKyJIYXZhaXR0aWluIE9TRi8xLWxldnluaW1pw7YgbGFpdHRlZWxsYSAlcywgc2lpcnJ5dMOkw6RuIGxldnluaW1pw7Z0aWxhYW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIktvbWVudG8gKG0gYW50YWEgb2hqZWVuKTogIgorCisjOiBmZGlzay9mZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBjdXJyZW50IGJvb3QgZmlsZSBpczogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIk55a3lpbmVuIGvDpHlubmlzdHlzdGllZG9zdG8gb246ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJBbm5hIHV1ZGVuIGvDpHlubmlzdHlzdGllZG9zdG9uIG5pbWk6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiS8OkeW5uaXN0eXN0aWVkb3N0byBtdXV0dHVtYXRvblxuIgorCisjOiBmZGlzay9mZGlzay5jOjMxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJIHBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRWYWxpdGV0dGF2YXN0aSBTR0ktb3Npb3RhdWx1aWxsZSBlaSBvbGUgYXNpYW50dW50aWphdmFsaWtrb2EuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrbWFjbGFiZWwuYzozMAorbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgTWFjIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgZmRpc2soMSkgY2Fubm90IGhhbmRsZSB0aGVzZSBkaXNrcy5cbiIKKyJcdFVzZSBlaXRoZXIgcGRpc2sgb3IgcGFydGVkIHRvIG1vZGlmeSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorIlx0TmV2ZXJ0aGVsZXNzIHNvbWUgYWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorbXNnc3RyICIiCisiXG4iCisiXHRUw6RsbMOkIGxldnlsbMOkIG9uIGtlbHZvbGxpbmVuIE1hYy1uaW1pw7YuXG4iCisiXHRWYWxpdGV0dGF2YXN0aSBmZGlzaygxKSBlaSBvc2FhIGvDpHNpdGVsbMOkIHTDpGxsYWlzaWFcbiIKKyJcdGxldnlqw6QuIEvDpHl0w6Qgam9rbyBwZGlza2nDpCB0YWkgcGFydGVkaWEgb3Npb3RhdWx1blxuIgorIlx0bXV1dHRhbWlzZWVuLlxuIgorIlx0Sm9pdGFraW4gbmV1dm9qYTpcbiIKKyJcdDEuIGZkaXNrIHR1aG9hYSBsZXZ5biB0aWVkb3Qga2lyam9pdGV0dGFlc3NhLlxuIgorIlx0Mi4gVmFybWlzdGEsIGV0dMOkIHTDpG3DpCBsZXZ5IEVJIG9sZSBlbsOkw6QgZWxpbnTDpHJrZcOkXG4iCisiXHQgICBvc2Egb3Npb3J5aG3DpMOkLiAoSm9zIG9uLCBtdXV0a2luIGxldnl0IHNhYXR0YXZhdFxuIgorIlx0ICAgdHloamVudHnDpCwgZWxsZWkgbmlpdMOkIG9sZSBwZWlsYXR0dS4pXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MQorbXNnaWQgIlNHSSB2b2xoZHIiCittc2dzdHIgIlNHSSB2b2xoZHIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MgorbXNnaWQgIlNHSSB0cmtyZXBsIgorbXNnc3RyICJTR0kgdHJrcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgzCittc2dpZCAiU0dJIHNlY3JlcGwiCittc2dzdHIgIlNHSSBzZWNyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODQKK21zZ2lkICJTR0kgcmF3IgorbXNnc3RyICJTR0kgcmF3IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODUKK21zZ2lkICJTR0kgYnNkIgorbXNnc3RyICJTR0kgYnNkIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODYKK21zZ2lkICJTR0kgc3lzdiIKK21zZ3N0ciAiU0dJIHN5c3YiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NworbXNnaWQgIlNHSSB2b2x1bWUiCittc2dzdHIgIlNHSSB2b2x1bWUiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OAorbXNnaWQgIlNHSSBlZnMiCittc2dzdHIgIlNHSSBlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OQorbXNnaWQgIlNHSSBsdm9sIgorbXNnc3RyICJTR0kgbHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkwCittc2dpZCAiU0dJIHJsdm9sIgorbXNnc3RyICJTR0kgcmx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MQorbXNnaWQgIlNHSSB4ZnMiCittc2dzdHIgIlNHSSB4ZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MgorbXNnaWQgIlNHSSB4ZnNsb2ciCittc2dzdHIgIlNHSSB4ZnNsb2ciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MworbXNnaWQgIlNHSSB4bHYiCittc2dzdHIgIlNHSSB4bHYiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NAorbXNnaWQgIlNHSSB4dm0iCittc2dzdHIgIlNHSSB4dm0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NSBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAKK21zZ2lkICJMaW51eCBzd2FwIgorbXNnc3RyICJMaW51eC1zaXZ1dHVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTYgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUxCittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICJMaW51eG1haW5lbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYzCittc2dpZCAiTGludXggTFZNIgorbXNnc3RyICJMaW51eCBMVk0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5OAorbXNnaWQgIkxpbnV4IFJBSUQiCittc2dzdHIgIkxpbnV4IFJBSUQiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkFjY29yZGluZyB0byBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyB0aGUgTGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gIgorIjUxMiBieXRlc1xuIgorbXNnc3RyICIiCisiTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmM6aW4gbXVrYWFuIG5pbWnDtnNzw6Qgc2FhIG9sbGEga29ya2VpbnRhYW4gNTEyICIKKyJ0YXZ1YVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHNnaSBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKK21zZ3N0ciAiSGF2YWl0dGlpbiBzZ2ktbGV2eW5pbWnDtiwgam9sbGEgb24gdsOkw6Ryw6QgdGFya2lzdHVzc3VtbWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiTGV2eSAlMSRzIChTR0ktbGV2eW5pbWnDtik6ICUyJGQgcMOkw6R0w6QsICUzJGxsdSBzZWt0b3JpYVxuIgorIiU0JGQgc3lsaW50ZXJpw6QsICU1JGQgZnl5c2lzdMOkIHN5bGludGVyacOkXG4iCisiJTYkZCB5bGltw6TDpHLDpGlzdMOkIHNla3Qvc3lsLCBsb21pdHVzICU3JGQ6MVxuIgorIiU4JHNcbiIKKyJZa3Npa8O2dCA9ICUxMCRkICogJTExJGQgLXRhdnVpc2V0ICU5JHNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxldnkgJTEkcyAoU0dJLWxldnluaW1pw7YpOiAlMiRkIHDDpMOkdMOkLCAlMyRsbHUgc2VrdG9yaWEsICU0JGQgc3lsaW50ZXJpw6RcbiIKKyJZa3Npa8O2dCA9ICU2JGQgKiAlNyRkIC10YXZ1aXNldCAlNSRzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIHBhcnRpdGlvbnMgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgICBTdGFydCAgICAgICBFbmQgICBTZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKyItLS0tLSBvc2lvdCAtLS0tLVxuIgorIk9zIyAlKnMgIEluZm8gICAgIEFsa3UgICAgICAgIExvcHB1IFNla3Rvcml0IElkICBKw6RyamVzdGVsbcOkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG4iCisiQm9vdGZpbGU6ICVzXG4iCisiLS0tLS0gRGlyZWN0b3J5IEVudHJpZXMgLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIEvDpHlubmlzdHlzaW5mbyAtLS0tLVxuIgorIkvDpHlubmlzdHlzdGllZG9zdG86ICVzXG4iCisiLS0tLS0gSGFrZW1pc3RvbWVya2lubsOkdCAtLS0tLVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiUyZDogJS0xMHMgc2VjdG9yJTV1IHNpemUlOHVcbiIKK21zZ3N0ciAiJTJkOiAlLTEwcyBzZWt0b3JpJTV1IGtva28lOHVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSW52YWxpZCBCb290ZmlsZSFcbiIKKyJcdFRoZSBib290ZmlsZSBtdXN0IGJlIGFuIGFic29sdXRlIG5vbi16ZXJvIHBhdGhuYW1lLFxuIgorIlx0ZS5nLiBcIi91bml4XCIgb3IgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWaXJoZWVsbGluZW4ga8OkeW5uaXN0eXN0aWVkb3N0byFcbiIKKyJcdEvDpHlubmlzdHlzdGllZG9zdG9uIG9uIG9sdGF2YSBhYnNvbHV1dHRpbmVuLCBlaS10eWhqw6QgcG9sa3UsXG4iCisiXHRlc2ltLiDigJ0vdW5peOKAnSB0YWkg4oCdL3VuaXguc2F2ZeKAnS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0S8OkeW5uaXN0eXN0aWVkb3N0b24gbmltaSBvbiBsaWlhbiBwaXRrw6Q6IG1ha3NpbWkgMTYgdGF2dWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRLw6R5bm5pc3R5c3RpZWRvc3RvbiBwb2x1biBvbiBvbHRhdmEgdMOkeWRlbGxpbmVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEh1b21hYSwgZXR0w6Qga8OkeW5uaXN0eXN0aWVkb3N0b24gb2xlbWFzc2FvbG9hIGVpIHRhcmtpc3RldGEuXG4iCisiXHRTR0k6biBvbGV0dXMgb24g4oCdL3VuaXjigJ0sIGphIHZhcm11dXNrb3Bpb2xsZSDigJ0vdW5peC5zYXZl4oCdLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIGlzIGNoYW5nZWQgdG8gXCIlc1wiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRLw6R5bm5pc3R5c3RpZWRvc3Rva3NpIG11dXRldHRpaW4g4oCdJXPigJ0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICJMZXZ5bGzDpCBvbiB1c2VhbXBpIGt1aW4geWtzaSBrb2tvbGV2eW1lcmtpbnTDpC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJFaSBtw6TDpHJpdGVsdHlqw6Qgb3Npb2l0YVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiSVJJWCBwaXTDpMOkIHNpaXTDpCwgZXR0w6QgT3NpbyAxMSB0w6R5dHTDpMOkIGtva28gbGV2eW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIktva28gbGV2eW4gb3Npb24gdHVsZWUgYWxrYWEgbG9oa29zdGEgMCxcbiIKKyJlaSBsZXZ5bG9oa29zdGEgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gaXMgb25seSAlZCBkaXNrYmxvY2sgbGFyZ2UsXG4iCisiYnV0IHRoZSBkaXNrIGlzICVkIGRpc2tibG9ja3MgbG9uZy5cbiIKK21zZ3N0ciAiIgorIktva28gbGV2eW4gb3NpbyBvbiB2YWluICVkIGxldnlsb2hrb24ga29rb2luZW4sXG4iCisibXV0dGEgbGV2eSBvbiAlZCBsZXZ5bG9oa29uIGtva29pbmVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiWWhkZW4gb3Npb24gKCMxMSkgdHVsZWUgdMOkeXR0w6TDpCBrb2tvIGxldnkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJPc2lvbiAlZCBhbGt1IGVpIG9sZSBzeWxpbnRlcmluIHJhamFsbGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiT3Npb24gJWQgbG9wcHUgZWkgb2xlIHN5bGludGVyaW4gcmFqYWxsYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIk9zaW90ICVkIGphICVkIG92YXQgcMOkw6RsbGVra8OkaXNldCAlZCBzZWt0b3JpbiB2ZXJyYW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0ODQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAiS8OkeXR0w6Rtw6R0w7ZuICU4dSBzZWt0b3JpbiBhbHVlIOKAkyBzZWt0b3JpdCAlOHUtJXVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGJvb3QgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiS8OkeW5uaXN0eXNvc2lvdGEgZWkgb2xlIG9sZW1hc3NhLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTaXZ1dHVzb3Npb3RhIGVpIG9sZSBvbGVtYXNzYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGhhcyBubyBzd2FwIHR5cGUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTaXZ1dHVzb3Npb2xsYSBlaSBvbGUgc2l2dXR1c3R5eXBwacOkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iCittc2dzdHIgIlx0VmFsaXR0dSBrw6R5bm5pc3R5c3RpZWRvc3RvbiBuaW1pIG9uIGVww6R0YXZhbGxpbmVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIlZhbGl0ZXR0YXZhc3RpIHZhaW4gZWktdHloamllbiBvc2lvaWRlbiBsaXBwdWEgdm9pIG11dXR0YWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzgKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIG9mIHR5cGUgXCJTR0kgdm9saGRyXCIsIHRoZSBJUklYIHN5c3RlbSB3aWxsIHJlbHkgb24gaXQgdG9cbiIKKyJyZXRyaWV2ZSBmcm9tIGl0cyBkaXJlY3Rvcnkgc3RhbmRhbG9uZSB0b29scyBsaWtlIHNhc2ggYW5kIGZ4LlxuIgorIk9ubHkgdGhlIFwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrIHNlY3Rpb24gbWF5IHZpb2xhdGUgdGhpcy5cbiIKKyJUeXBlIFlFUyBpZiB5b3UgYXJlIHN1cmUgYWJvdXQgdGFnZ2luZyB0aGlzIHBhcnRpdGlvbiBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIk9uIGVyaXR0w6RpbiBzdW9zaXRlbHRhdmFhLCBldHTDpCBvc2lvbGxhIHNpaXJ0eW3DpG4gMCBrb2hkYWxsYVxuIgorIm9uIHR5eXBwaSDigJ1TR0kgdm9saGRy4oCdLiBJUklYLWrDpHJqZXN0ZWxtw6Qgb2xldHRhYSwgZXR0w6RcbiIKKyJlcmlsbGlzdHnDtmthbHV0LCBrdXRlbiBzYXNoIGphIGZ4LCB2b2lkYWFuIGhha2VhIHNlbiBoYWtlbWlzdG9zdGEuXG4iCisiVmFpbiDigJ1TR0kgdm9sdW1l4oCdIC1rb2tvbGV2eW9zdXVzIHZvaSByaWtrb2EgdMOkdMOkIHPDpMOkbnTDtsOkLlxuIgorIktpcmpvaXRhIEpBQSwgam9zIG9sZXQgdmFybWEgdMOkbcOkbiBvc2lvbiBtZXJraXRzZW1pc2VzdMOkIHRvaXNpbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIkpBQVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIFlvdSBrbm93LCBZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2s/XG4iCittc2dzdHIgIlRpZWTDpHRrw7YsIGV0dMOkIGxldnlsbMOkIG9uIHDDpMOkbGxla2vDpGlzacOkIG9zaW9pdGE/XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBlbnRpcmUgZGlzayBlbnRyeSBhdXRvbWF0aWNhbGx5LlxuIgorbXNnc3RyICJZcml0ZXTDpMOkbiBsdW9kYSBrb2tvbGV2eW1lcmtpbnTDpCBhdXRvbWFhdHRpc2VzdGkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIktva28gbGV2eSBvbiBqbyBvc2lvaWRlbiBrw6R5dMO2c3PDpC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiTGV2eWxsw6Qgb24gcMOkw6RsbGVra8OkaXNpw6Qgb3Npb2l0YS4gVMOkbcOkIG9uIGtvcmphdHRhdmEgZW5zaW4hXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIk9uIGVyaXR0w6RpbiBzdW9zaXRlbHRhdmFhLCBldHTDpCB5aGRlc3RvaXN0YSBvc2lvXG4iCisia2F0dGFhIGtva28gbGV2eW4gamEgb24gdHl5cHBpw6Qg4oCdU0dJIHZvbHVtZeKAnVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIGdldCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKyJMZXZ5bGzDpCB0dWxlZSBvbGVtYWFuIHDDpMOkbGxla2vDpGlzacOkIG9zaW9pdGEuIFTDpG3DpCBvbiBrb3JqYXR0YXZhIGVuc2luIVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiBMYXN0ICVzIgorbXNnc3RyICIgVmlpbWVpbmVuICVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBTR0kgZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuIgorIlxuIgorbXNnc3RyICIiCisiTXVvZG9zdGV0YWFuIHV1c2kgU0dJLWxldnluaW1pw7YuIE11dXRva3NldCB0ZWhkw6TDpG4gdmFpbiBrw6R5dHTDtm11aXN0aWluLFxuIgorImt1bm5lcyBww6TDpHTDpHQga2lyam9pdHRhYSBuZSBsZXZ5bGxlLiBTZW4gasOkbGtlZW4gZWRlbGxpc3TDpCBzaXPDpGx0w7bDpCBlaVxuIgorInRpZXRlbmvDpMOkbiB2b2lkYSBwYWxhdXR0YWEuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKyJWYXJvaXR1czogQkxLR0VUU0laRS1pb2N0bCBlcMOkb25uaXN0dWkgbGFpdHRlZWxsZSAlcy4gS8OkeXRldMOkw6RuIGdlb21ldHJpYW5cbiIKKyJzeWxpbnRlcmlhcnZvYSAlZC4gVMOkbcOkIGFydm8gdm9pIHR5cGlzdHnDpCBsYWl0dGVpbGxhLCBqb3RrYSBvdmF0IHN1dXJlbXBpYVxuIgorImt1aW4gMzMsOCBHdC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8ga2VlcCBwYXJhbWV0ZXJzIG9mIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiWXJpdGV0w6TDpG4gc8OkaWx5dHTDpMOkIG9zaW9uICVkIHBhcmFtZXRyaXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSUQ9JTAyeFx0U1RBUlQ9JWRcdExFTkdUSD0lZFxuIgorbXNnc3RyICJJRD0lMDJ4XHRBTEtVPSVkXHRQSVRVVVM9JWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4Cittc2dpZCAiVW5hc3NpZ25lZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDAKK21zZ2lkICJTdW5PUyByb290IgorbXNnc3RyICJTdW5PUyByb290IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDEKK21zZ2lkICJTdW5PUyBzd2FwIgorbXNnc3RyICJTdW5PUyBzd2FwIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIKK21zZ2lkICJTdW5PUyB1c3IiCittc2dzdHIgIlN1bk9TIHVzciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQzCittc2dpZCAiV2hvbGUgZGlzayIKK21zZ3N0ciAiS29rbyBsZXZ5IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQKK21zZ2lkICJTdW5PUyBzdGFuZCIKK21zZ3N0ciAiU3VuT1Mgc3RhbmQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NQorbXNnaWQgIlN1bk9TIHZhciIKK21zZ3N0ciAiU3VuT1MgdmFyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDYKK21zZ2lkICJTdW5PUyBob21lIgorbXNnc3RyICJTdW5PUyBob21lIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcKK21zZ2lkICJTdW5PUyBhbHQgc2VjdG9ycyIKK21zZ3N0ciAiU3VuT1MgYWx0IHNlY3RvcnMiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorbXNnaWQgIlN1bk9TIGNhY2hlZnMiCittc2dzdHIgIlN1bk9TIGNhY2hlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OQorbXNnaWQgIlN1bk9TIHJlc2VydmVkIgorbXNnc3RyICJTdW5PUyByZXNlcnZlZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorIkhhdmFpdHRpaW4gU3VuLWxldnluaW1pw7YsIGpvbGxhIG9uIHbDpMOkcsOkXG4iCisidGFya2lzdHVzc3VtbWEuIEpvdWR1dCB0b2Rlbm7DpGvDtmlzZXN0aSBhc2V0dGFtYWFuXG4iCisia2Fpa2tpIGFydm90LCBlc2ltLiBww6TDpHQsIHNla3Rvcml0LCBzeWxpbnRlcml0IGphXG4iCisib3Npb3QgdGFpIHBha290dGFtYWFuIHR1b3JlZW4gbmltacO2biBcbiIKKyIocy1rb21lbnRvIHDDpMOkdmFsaWtvc3NhKVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICJIYXZhaXR0aWluIHN1bi1sZXZ5bmltacO2LCBqb2xsYSBvbiB2w6TDpHLDpCB2ZXJzaW8gWzB4JTA4eF0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHNhbml0eSBbMHglMDh4XS5cbiIKK21zZ3N0ciAiSGF2YWl0dGlpbiBzdW4tbGV2eW5pbWnDtiwgam9sbGEgb24gdsOkw6Ryw6Qgc2FuaXR5LWFydm8gWzB4JTA4eF0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgIkhhdmFpdHRpaW4gc3VuLWxldnluaW1pw7YsIGpvbGxhIG9uIHbDpMOkcsOkIG51bV9wYXJ0aXRpb25zLWFydm8gWyV1XS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogV3JvbmcgdmFsdWVzIG5lZWQgdG8gYmUgZml4ZWQgdXAgYW5kIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSlcbiIKK21zZ3N0ciAiVmFyb2l0dXM6IFbDpMOkcsOkdCBhcnZvdCBrb3JqYXRhYW4ga2lyam9pdGV0dGFlc3NhICh3KVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBzdW4gZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiTHVvZGFhbiB1dXR0YSBTdW4tbGV2eW5pbWnDtnTDpC4gTXV1dG9rc2V0IHRlaGTDpMOkbiB2YWluIGvDpHl0dMO2bXVpc3RpaW4sXG4iCisia3VubmVzIHDDpMOkdMOkdCBraXJqb2l0dGFhIG5lIGxldnlsbGUuIFNlbiBqw6Rsa2VlbiBlZGVsbGluZW4gc2lzw6RsdMO2IGVpXG4iCisidGlldGVua8Okw6RuIG9sZSBwYWxhdXRldHRhdmlzc2EuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICJTZWt0b3JlaXRhL3VyYSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiT3Npb24gJWQgbG9wcHUgZWkgb2xlIHN5bGludGVyaW4gcmFqYWxsYVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBvdmVybGFwcyB3aXRoIG90aGVycyBpbiBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIk9zaW8gJWQgb24gcMOkw6RsbGVra8OkaW5lbiBtdWlkZW4ga2Fuc3NhIHNla3RvcmVpbGxhICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICJLw6R5dHTDpG3DpHTDtm50w6QgdGlsYWEg4oCTIHNla3Rvcml0IDAtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIkvDpHl0dMOkbcOkdMO2bnTDpCB0aWxhYSDigJMgc2VrdG9yaXQgJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3RoZXIgcGFydGl0aW9ucyBhbHJlYWR5IGNvdmVyIHRoZSB3aG9sZSBkaXNrLlxuIgorIkRlbGV0ZSBzb21lL3NocmluayB0aGVtIGJlZm9yZSByZXRyeS5cbiIKK21zZ3N0ciAiIgorIk11dXQgb3Npb3Qga8OkeXR0w6R2w6R0IGpvIGtva28gbGV2eW4uXG4iCisiUG9pc3RhL2t1dGlzdGEgam9pdGFraW4gZW5uZW4gdXV0dGEgeXJpdHlzdMOkLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiT24gZXJpdHTDpGluIHN1b3NpdGVsdGF2YWEsIGV0dMOkIGtvbG1hcyBvc2lvIGthdHRhYSBrb2tvIGxldnluIGphXG4iCisib24gdHl5cHBpw6Qg4oCdS29rbyBsZXZ54oCdXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIlNla3RvcmkgJWQgb24gam8gdmFyYXR0dVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZW4ndCBjb3ZlcmVkIHRoZSB3aG9sZSBkaXNrIHdpdGggdGhlIDNyZCBwYXJ0aXRpb24sIGJ1dCB5b3VyIHZhbHVlXG4iCisiJWQgJXMgY292ZXJzIHNvbWUgb3RoZXIgcGFydGl0aW9uLiBZb3VyIGVudHJ5IGhhcyBiZWVuIGNoYW5nZWRcbiIKKyJ0byAlZCAlc1xuIgorbXNnc3RyICIiCisiS29sbWFzIG9zaW8gZWkga2F0YSBrb2tvIGxldnnDpCwgbXV0dGEgYXJ2byAlZCAlcyBrYXR0YWEgam9ua2luIHRvaXNlblxuIgorIm9zaW9uLiBNZXJraW50w6Qgb24gbXV1dGV0dHUgYXJ2b29uICVkICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklmIHlvdSB3YW50IHRvIG1haW50YWluIFN1bk9TL1NvbGFyaXMgY29tcGF0aWJpbGl0eSwgY29uc2lkZXIgbGVhdmluZyB0aGlzXG4iCisicGFydGl0aW9uIGFzIFdob2xlIGRpc2sgKDUpLCBzdGFydGluZyBhdCAwLCB3aXRoICV1IHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorIkpvcyBoYWx1dGFhbiBzw6RpbHl0dMOkw6QgU3VuT1MvU29sYXJpcy15aHRlZW5zb3BpdnV1cywgdMOkbcOkbiBvc2lvbiB0eXlwcGluw6RcbiIKKyJvbiBzeXl0w6Qgc8OkaWx5dHTDpMOkIEtva28gbGV2eSAoNSksIGFsa2FlbiBrb2hkYXN0YSAwLCAldSBzZWt0b3JpYVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBVRlMsIEVYVDJGUyBmaWxlc3lzdGVtIG9yIFN1bk9TIHN3YXAuIFB1dHRpbmcgTGludXggc3dhcFxuIgorInRoZXJlIG1heSBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlIGFuZCBib290YmxvY2suXG4iCisiVHlwZSBZRVMgaWYgeW91J3JlIHZlcnkgc3VyZSB5b3Ugd291bGQgbGlrZSB0aGF0IHBhcnRpdGlvblxuIgorInRhZ2dlZCB3aXRoIDgyIChMaW51eCBzd2FwKTogIgorbXNnc3RyICIiCisiT24gZXJpdHTDpGluIHN1b3NpdGVsdGF2YWEsIGV0dMOkIG9zaW8gc2lpcnR5bcOkbiAwIGtvaGRhbGxhXG4iCisib24gdHl5cGlsdMOkw6RuIFVGUywgRVhUMkZTIHRhaSDigJ1TdW5PUyBzd2Fw4oCdLiBMaW51eGluIHNpdnV0dXNvc2lvblxuIgorInNpam9pdHRhbWluZW4gc2lubmUgc2FhdHRhYSB0dWhvdGEgb3Npb3RhdWx1biBqYSBrw6R5bm5pc3R5c2xvaGtvbi5cbiIKKyJLaXJqb2l0YSBKQUEsIGpvcyBvbGV0IGVyaXR0w6RpbiB2YXJtYSwgZXR0w6QgaGFsdWF0IG9zaW9uIHR5eXBpa3NpXG4iCisibWVya2l0dMOkdsOkbiA4MiAoTGludXgtc2l2dXR1cyk6ICIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBycG1cbiIKKyIlZCBjeWxpbmRlcnMsICVkIGFsdGVybmF0ZSBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiTGFiZWwgSUQ6ICVzXG4iCisiVm9sdW1lIElEOiAlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxldnkgJTEkcyAoU3VuLWxldnluaW1pw7YpOiAlMiRkIHDDpMOkdMOkLCAlMyRsbHUgc2VrdG9yaWFcbiIKKyIlNCRkIGtpZXJyb3N0YSBtaW51dXRpc3NhLCAlNSRkIHN5bGludGVyacOkLCAlNiRkIHZhaWh0b2VodG9pc3RhXG4iCisic3lsaW50ZXJpw6QsICU3JGQgZnl5c2lzdMOkIHN5bGludGVyacOkLCAlOCRkIHlsaW3DpMOkcsOkaXN0w6Qgc2VrdC9zeWxcbiIKKyJsb21pdHVzICU5JGQ6MVxuIgorIk5pbWnDtnR1bm5pc3RlOiAlMTAkc1xuIgorIk9zaW90dW5uaXN0ZTogJTExJHNcbiIKKyJZa3Npa8O2dCA9ICUxMyRkICogNTEyIC10YXZ1aXNldCAlMTIkc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxldnkgJTEkcyAoU3VuLWxldnluaW1pw7YpOiAlMiRkIHDDpMOkdMOkLCAlMyRsbHUgc2VrdG9yaWEsICU0JGQgc3lsaW50ZXJpw6RcbiIKKyJZa3Npa8O2dCA9ICU2JGQgKiA1MTIgLXRhdnVpc2V0ICU1JHNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgRmxhZyAgICBTdGFydCAgICAgICBFbmQgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgTGlwcHUgICBBbGt1ICAgICAgICBMb3BwdSAgTG9oa290ICAgSWQgIErDpHJqZXN0ZWxtw6RcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYyNQorbXNnaWQgIk51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICJWYWlodG9laHRvaXN0ZW4gc3lsaW50ZXJpZW4gbcOkw6Ryw6QiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MzcKK21zZ2lkICJFeHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiWWxpbcOkw6Ryw6Rpc2nDpCBzZWt0b3JlaXRhIHN5bGludGVyaWxsw6QiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NDQKK21zZ2lkICJJbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiTG9taXR1c2tlcnJvaW4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTEKK21zZ2lkICJSb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiUHnDtnJpbWlzbm9wZXVzIChycG0pIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjU4Cittc2dpZCAiTnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIKK21zZ3N0ciAiRnl5c2lzdGVuIHN5bGludGVyaWVuIG3DpMOkcsOkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYKK21zZ2lkICJFbXB0eSIKK21zZ3N0ciAiVHloasOkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcKK21zZ2lkICJGQVQxMiIKK21zZ3N0ciAiRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OAorbXNnaWQgIlhFTklYIHJvb3QiCittc2dzdHIgIlhFTklYIHJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OQorbXNnaWQgIlhFTklYIHVzciIKK21zZ3N0ciAiWEVOSVggdXNyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwCittc2dpZCAiRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMQorbXNnaWQgIkV4dGVuZGVkIgorbXNnc3RyICJMYWFqZW5uZXR0dSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMgorbXNnaWQgIkZBVDE2IgorbXNnc3RyICJGQVQxNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMworbXNnaWQgIkhQRlMvTlRGUyIKK21zZ3N0ciAiSFBGUy9OVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE0Cittc2dpZCAiQUlYIgorbXNnc3RyICJBSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTUKK21zZ2lkICJBSVggYm9vdGFibGUiCittc2dzdHIgIkFJWCBrw6R5bm5pc3RldHTDpHbDpCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNgorbXNnaWQgIk9TLzIgQm9vdCBNYW5hZ2VyIgorbXNnc3RyICJPUy8yIEFsa3VsYXRhdWtzZW4gaGFsbGludGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTcKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIlc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOAorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjAKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIlc5NSBMYWFqIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIxCittc2dpZCAiT1BVUyIKK21zZ3N0ciAiT1BVUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMgorbXNnaWQgIkhpZGRlbiBGQVQxMiIKK21zZ3N0ciAiS8OkdGtldHR5IEZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIzCittc2dpZCAiQ29tcGFxIGRpYWdub3N0aWNzIgorbXNnc3RyICJDb21wYXEtZGlhZ25vc3RpaWtrYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICJLw6R0a2V0dHkgRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNQorbXNnaWQgIkhpZGRlbiBGQVQxNiIKK21zZ3N0ciAiS8OkdGtldHR5IEZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiS8OkdGtldHR5IEhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJBU1QgU21hcnRTbGVlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIkvDpHRrZXR0eSBXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJLw6R0a2V0dHkgVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiS8OkdGtldHR5IFc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJQYXJ0aXRpb25NYWdpYy1wYWxhdXR1cyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNAorbXNnaWQgIlZlbml4IDgwMjg2IgorbXNnc3RyICJWZW5peCA4MDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNQorbXNnaWQgIlBQQyBQUmVQIEJvb3QiCittc2dzdHIgIlBQQyBQUmVQIEJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMjpzIG9zaW8iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIlFOWDQueCAzOnMgb3NpbyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MAorbXNnaWQgIk9uVHJhY2sgRE0iCittc2dzdHIgIk9uVHJhY2sgRE0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDEKK21zZ2lkICJPblRyYWNrIERNNiBBdXgxIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgxIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQyCittc2dpZCAiQ1AvTSIKK21zZ3N0ciAiQ1AvTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MworbXNnaWQgIk9uVHJhY2sgRE02IEF1eDMiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDQKK21zZ2lkICJPblRyYWNrRE02IgorbXNnc3RyICJPblRyYWNrRE02IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ1Cittc2dpZCAiRVotRHJpdmUiCittc2dzdHIgIkVaLURyaXZlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ2Cittc2dpZCAiR29sZGVuIEJvdyIKK21zZ3N0ciAiR29sZGVuIEJvdyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NworbXNnaWQgIlByaWFtIEVkaXNrIgorbXNnc3RyICJQcmlhbSBFZGlzayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkyCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTkKK21zZ2lkICJTcGVlZFN0b3IiCittc2dzdHIgIlNwZWVkU3RvciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OQorbXNnaWQgIkdOVSBIVVJEIG9yIFN5c1YiCittc2dzdHIgIkdOVSBIVVJEIHRhaSBTeXNWIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUwCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMjg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTEKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAzODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDM4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MgorbXNnaWQgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKK21zZ3N0ciAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUzCittc2dpZCAiUEMvSVgiCittc2dzdHIgIlBDL0lYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU0Cittc2dpZCAiT2xkIE1pbml4IgorbXNnc3RyICJWYW5oYSBNaW5peCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NQorbXNnaWQgIk1pbml4IC8gb2xkIExpbnV4IgorbXNnc3RyICJNaW5peC92YW5oYSBMaW51eCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eC1zaXZ1dHVzIC8gU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIGvDpHRrZXR0eSBDOi1hc2VtYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCBsYWFqZW5uZXR0dSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYxCittc2dpZCAiTlRGUyB2b2x1bWUgc2V0IgorbXNnc3RyICJOVEZTLW9zaW9yeWhtw6QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjIKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIkxpbnV4IHRla3N0aSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NAorbXNnaWQgIkFtb2ViYSIKK21zZ3N0ciAiQW1vZWJhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY1Cittc2dpZCAiQW1vZWJhIEJCVCIKK21zZ3N0ciAiQW1vZWJhIEJCVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NgorbXNnaWQgIkJTRC9PUyIKK21zZ3N0ciAiQlNEL09TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY3Cittc2dpZCAiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIgorbXNnc3RyICJJQk0gVGhpbmtwYWQgLXZhbG1pdXN0aWxhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY4Cittc2dpZCAiRnJlZUJTRCIKK21zZ3N0ciAiRnJlZUJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OQorbXNnaWQgIk9wZW5CU0QiCittc2dzdHIgIk9wZW5CU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzAKK21zZ2lkICJOZVhUU1RFUCIKK21zZ3N0ciAiTmVYVFNURVAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzEKK21zZ2lkICJEYXJ3aW4gVUZTIgorbXNnc3RyICJEYXJ3aW4gVUZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcyCittc2dpZCAiTmV0QlNEIgorbXNnc3RyICJOZXRCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzMKK21zZ2lkICJEYXJ3aW4gYm9vdCIKK21zZ3N0ciAiRGFyd2luIGJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzQKK21zZ2lkICJIRlMgLyBIRlMrIgorbXNnc3RyICJIRlMgLyBIRlMrIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc1Cittc2dpZCAiQlNESSBmcyIKK21zZ3N0ciAiQlNESSBmcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NgorbXNnaWQgIkJTREkgc3dhcCIKK21zZ3N0ciAiQlNESSBzaXZ1dHVzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc3Cittc2dpZCAiQm9vdCBXaXphcmQgaGlkZGVuIgorbXNnc3RyICJLw6R0a2V0dHkgQm9vdCBXaXphcmQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIlNvbGFyaXMgYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJlaS10aWVkLmrDpHJqLiBkYXRhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg1Cittc2dpZCAiQ1AvTSAvIENUT1MgLyAuLi4iCittc2dzdHIgIkNQL00gLyBDVE9TIC8gLi4uIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg3Cittc2dpZCAiRGVsbCBVdGlsaXR5IgorbXNnc3RyICJEZWxsIFV0aWxpdHkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODgKK21zZ2lkICJCb290SXQiCittc2dzdHIgIkJvb3RJdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OQorbXNnaWQgIkRPUyBhY2Nlc3MiCittc2dzdHIgIkRPUyBhY2Nlc3MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTEKK21zZ2lkICJET1MgUi9PIgorbXNnc3RyICJET1MgdmFpbiBsdWt1IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk0Cittc2dpZCAiQmVPUyBmcyIKK21zZ3N0ciAiQmVPUy10aWVkLmrDpHJqLiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorbXNnaWQgIkdQVCIKK21zZ3N0ciAiR1BUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk2Cittc2dpZCAiRUZJIChGQVQtMTIvMTYvMzIpIgorbXNnc3RyICJFRkkgKEZBVC0xMi8xNi8zMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTcKK21zZ2lkICJMaW51eC9QQS1SSVNDIGJvb3QiCittc2dzdHIgIkxpbnV4L1BBLVJJU0MgYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1MtdG9pc2lvIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJzaWlydHltaXN2aXJoZSBsYWl0dGVlbGxhICVzIOKAkyBrb2h0YWFuICVsdSBlaSB2b2kgc2lpcnR5w6RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3I6IHdhbnRlZCAweCUwOHglMDh4LCBnb3QgMHglMDh4JTA4eFxuIgorbXNnc3RyICJzaWlydHltaXN2aXJoZTogaGFsdXR0aWluIDB4JTA4eCUwOHgsIHNhYXRpaW4gMHglMDh4JTA4eFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTUKK21zZ2lkICJvdXQgb2YgbWVtb3J5IC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIm11aXN0aSBsb3B1c3NhIOKAkyBsdW92dXRldGFhblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjAgZmRpc2svc2ZkaXNrLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZXJyb3Igb24gJXMgLSBjYW5ub3QgcmVhZCBzZWN0b3IgJWx1XG4iCittc2dzdHIgInZpcmhlIGx1ZXR0YWVzc2EgbGFpdGV0dGEgJXMg4oCTIHNla3RvcmlhICVsdSBlaSB2b2kgbHVrZWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkVSUk9SOiBzZWN0b3IgJWx1IGRvZXMgbm90IGhhdmUgYW4gbXNkb3Mgc2lnbmF0dXJlXG4iCittc2dzdHIgIlZJUkhFOiBzZWt0b3JpbGxhICVsdSBlaSBvbGUgbXNkb3MtYWxsZWtpcmpvaXR1c3RhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgInZpcmhlIGtpcmpvaXRldHRhZXNzYSBsYWl0dGVlbGxlICVzIOKAkyBzZWt0b3JpYSAlbHUgZWkgdm9pIGtpcmpvaXR0YWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiBzZWN0b3Igc2F2ZSBmaWxlICglcylcbiIKK21zZ3N0ciAib3Npb24gc2VrdG9yZWlkZW4gdGFsbGVubnVzdGllZG9zdG9hICglcykgZWkgdm9pIGF2YXRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICJ2aXJoZSBraXJqb2l0ZXR0YWVzc2EgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJvc2lvbnBhbGF1dHVzdGllZG9zdG9uICVzIHRpbGFhIGVpIHZvaSBsdWtlYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDAKK21zZ2lkICJwYXJ0aXRpb24gcmVzdG9yZSBmaWxlIGhhcyB3cm9uZyBzaXplIC0gbm90IHJlc3RvcmluZ1xuIgorbXNnc3RyICJvc2lvbiBwYWxhdXR1c3RpZWRvc3RvbiBrb2tvIG9uIHbDpMOkcsOkIOKAkyBlaSBwYWxhdXRldGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQ0Cittc2dpZCAib3V0IG9mIG1lbW9yeT9cbiIKK21zZ3N0ciAibXVpc3RpIGxvcHVzc2E/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAib3Npb25wYWxhdXR1c3RpZWRvc3RvYSAoJXMpIGVpIHZvaSBhdmF0YVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcmVhZGluZyAlc1xuIgorbXNnc3RyICJ2aXJoZSBsdWV0dGFlc3NhIHRpZWRvc3RvYSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gZGV2aWNlICVzIGZvciB3cml0aW5nXG4iCittc2dzdHIgImxhaXRldHRhICVzIGVpIHZvaSBhdmF0YSBraXJqb2l0dXN0YSB2YXJ0ZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICJ2aXJoZSBraXJqb2l0ZXR0YWVzc2Egc2VrdG9yaWEgJWx1IGxhaXR0ZWVsbGUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgZ2VvbWV0cnlcbiIKK21zZ3N0ciAiTGV2eSAlczogZ2VvbWV0cmlhYSBlaSB2b2kgaGFrZWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICJMZXZ5ICVzOiBrb2tvYSBlaSB2b2kgaGFrZWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzdGFydD0lbHUgLSB0aGlzIGxvb2tzIGxpa2UgYSBwYXJ0aXRpb24gcmF0aGVyIHRoYW5cbiIKKyJ0aGUgZW50aXJlIGRpc2suIFVzaW5nIGZkaXNrIG9uIGl0IGlzIHByb2JhYmx5IG1lYW5pbmdsZXNzLlxuIgorIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIgorbXNnc3RyICIiCisiVmFyb2l0dXM6IGFsa3U9JWx1IOKAkyB0w6Rtw6QgbsOkeXR0w6TDpCBlbmVtbcOkbiBvc2lvbHRhIGt1aW4ga29rb25haXNlbHRhXG4iCisibGV2eWx0w6QuIFNlbiBtdW9ra2FhbWluZW4gZmRpc2tpbGzDpCBvbiB0b2Rlbm7DpGvDtmlzZXN0aSB0dXJoYWEuXG4iCisiW0vDpHl0w6QgLS1mb3JjZSAtdmFsaXRzaW50YSBqb3MgdG9kZWxsYSBoYWx1YXQgdGVoZMOkIG5paW5dXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBoZWFkc1xuIgorbXNnc3RyICJWYXJvaXR1czogSERJT19HRVRHRU8ga2VydG9vLCBldHTDpCBww6RpdMOkIG9uICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgc2VjdG9yc1xuIgorbXNnc3RyICJWYXJvaXR1czogSERJT19HRVRHRU8ga2VydG9vLCBldHTDpCBzZWt0b3JlaXRhIG9uICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogQkxLR0VUU0laRS9IRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBjeWxpbmRlcnNcbiIKK21zZ3N0ciAiVmFyb2l0dXM6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8ga2VydG9vLCBldHTDpCBzeWxpbnRlcmVpdMOkIG9uICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJWYXJvaXR1czogZXDDpHRvZGVubsOka8O2aW5lbiBzZWt0b3JpbcOkw6Ryw6QgKCVsdSkg4oCTIHlsZWVuc8OkIGtvcmtlaW50YWFuIDYzXG4iCisiVMOkc3TDpCBhaWhldXR1dSBvbmdlbG1pYSBrYWlra2llbiBDL0gvUy1vc29pdHVzdGEga8OkeXR0w6R2aWVuIG9oamVsbWllbiAiCisia2Fuc3NhLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxldnkgJXM6ICVsdSBzeWxpbnRlcmnDpCwgJWx1IHDDpMOkdMOkLCAlbHUgc2VrdG9yaWEvdXJhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIKK21zZ3N0ciAiT3Npb24gJTIkcyAlMSRzIHDDpMOkYXJ2byBvbiBtYWhkb3RvbjogJTMkbHUgKHR1bGVlIG9sbGEgMC0lNCRsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICJPc2lvbiAlMiRzICUxJHMgc2VrdG9yaWFydm8gb24gbWFoZG90b246ICUzJGx1ICh0dWxlZSBvbGxhIDEtJTQkbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICVsdSAoc2hvdWxkIGJlIGluIDAtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIk9zaW9uICUyJHMgJTEkcyBzeWxpbnRlcmlhcnZvIG9uIG1haGRvdG9uOiAlMyRsdSAodHVsZWUgb2xsYSAwLSU0JGx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIiIKKyJJZCAgTmltaVxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIC4uLlxuIgorbXNnc3RyICJMdWV0YWFuIG9zaW90YXVsdSB1dWRlbGxlZW4uLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCittc2dpZCAiIgorIlRoZSBjb21tYW5kIHRvIHJlLXJlYWQgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQuXG4iCisiUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIG9yIHJlYm9vdCB5b3VyIHN5c3RlbSBub3csXG4iCisiYmVmb3JlIHVzaW5nIG1rZnNcbiIKK21zZ3N0ciAiIgorIk9zaW90YXVsdW4gdXVkZWxsZWVubHVrdWtvbWVudG8gZXDDpG9ubmlzdHVpXG4iCisiQWphIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIHRhaSBrw6R5bm5pc3TDpCBqw6RyamVzdGVsbcOkXG4iCisidXVkZWxsZWVuIG55dCwgZW5uZW4gbWtmczpuIGvDpHl0dMO2w6RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNsb3NpbmcgJXNcbiIKK21zZ3N0ciAiVmlyaGUgc3VsamV0dGFlc3NhICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IG9zaW90YSBlaSBvbGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODc4Cittc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCAtIHVzaW5nIHNlY3RvcnNcbiIKK21zZ3N0ciAidHVubmlzdGFtYXRvbiBtdW90byDigJMga8OkeXRldMOkw6RuIHNla3RvcmVpdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAidG90ZXV0dGFtYXRvbiBtdW90byDigJMga8OkeXRldMOkw6RuICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBjeWxpbmRlcnMgb2YgJWx1IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiWWtzaWvDtnQgPSBzeWxpbnRlcml0ICVsdS10YXZ1aXNpYSwgbG9oa290IDEwMjQtdGF2dWlzaWEsIGxhc2tldGFhbiAlZCAiCisiYWxrYWVuXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgTGFpdGUgS8OkeW5uIEFsa3UgICAgICBMb3BwdSAjc3lsICAgICAjbG9oa290ICAgSWQgIErDpHJqZXN0ZWxtw6RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IHNlY3RvcnMgb2YgNTEyIGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJZa3Npa8O2dCA9IDUxMi10YXZ1aXNldCBzZWt0b3JpdCwgYWxrYWVuIGtvaGRhc3RhICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgICBTdGFydCAgICAgICBFbmQgICAjc2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBMYWl0ZSAgS8OkeW5uICAgQWxrdSAgICAgICAgTG9wcHUgI3Nla3Rvcml0IElkICBKw6RyamVzdGVsbcOkXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiWWtzaWvDtnQgPSAxMDI0LXRhdnVpc2V0IGxvaGtvdCwgYWxrYWVuIGtvaGRhc3RhICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgIFN0YXJ0ICAgICAgIEVuZCAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBMYWl0ZSAgS8OkeW5uICBBbGt1ICAgICAgICBMb3BwdSAgI2xvaGtvdCAgIElkICBKw6RyamVzdGVsbcOkXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIllrc2lrw7Z0ID0gMTA0ODU3Ni10YXZ1aXNldCBtZWJpdGF2dXQsIDEwMjQtdGF2dWlzZXQgbG9oa290LCBhbGthZW4ga29oZGFzdGEgJSIKKyJkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgIEVuZCAgICBNaUIgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgTGFpdGUgS8OkeW5uIEFsa3UgICAgTG9wcHUgIE1pQiAgICAjbG9oa290ICAgSWQgIErDpHJqZXN0ZWxtw6RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTExMworIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0c3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIlx0XHRhbGt1OiAoYyxoLHMpIG9kb3RldHRpaW4gKCVsZCwlbGQsJWxkKSBsw7Z5dHlpICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMAorIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0ZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJcdFx0bG9wcHU6IChjLGgscykgb2RvdGV0dGlpbiAoJWxkLCVsZCwlbGQpIGzDtnl0eWkgKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAib3NpbyBsb3BwdXUgc3lsaW50ZXJpbGzDpCAlbGQsIGpva2Egb24gbGV2eW4gbG9wdW4gasOkbGtlZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiT3Npb2l0YSBlaSBsw7Z5dHlueXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJWYXJvaXR1czogT3Npb3RhdWx1IG7DpHl0dMOkw6Qgc2lsdMOkLCBldHTDpCBzZSBvbiB0ZWh0eVxuIgorIiAgYXJ2b2lsbGUgQy9IL1M9Ki8lbGQvJWxkIChlaWvDpCAlbGQvJWxkLyVsZCkuXG4iCisiVMOkc3PDpCBsaXN0YXVrc2Vzc2Ega8OkeXRldMOkw6RuIHR1b3RhIGdlb21ldHJpYWEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAib3Npb3RhdWx1YSBlaSBvbGUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RyYW5nZSwgb25seSAlZCBwYXJ0aXRpb25zIGRlZmluZWQuXG4iCittc2dzdHIgIm91dG9hLCB2YWluICVkIG9zaW90YSBtw6TDpHJpdGVsdHkuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYnV0IGlzIG5vdCBtYXJrZWQgRW1wdHlcbiIKK21zZ3N0ciAiVmFyb2l0dXM6IG9zaW9uICVzIGtva28gb24gMCwgbXV0dGEgc2l0w6QgZWkgb2xlIG1lcmtpdHR5IHR5aGrDpGtzaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBpcyBib290YWJsZVxuIgorbXNnc3RyICJWYXJvaXR1czogb3Npb24gJXMga29rbyBvbiAwIGphIHNlIG9uIG1lcmtpdHR5IGvDpHlubmlzdGV0dMOkdsOka3NpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiVmFyb2l0dXM6IG9zaW9uICVzIGtva28gb24gMCBqYSBhbGt1a29odGEgZWkgb2xlIG5vbGxhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzICIKK21zZ3N0ciAiVmFyb2l0dXM6IG9zaW8gJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5vdCBjb250YWluZWQgaW4gcGFydGl0aW9uICVzXG4iCittc2dzdHIgImVpIHNpc8OkbGx5IG9zaW9vbiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbnMgJXMgIgorbXNnc3RyICJWYXJvaXR1czogb3Npb3QgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgImphICVzIG92YXQgcMOkw6RsbGVra8OkaXNldFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgY29udGFpbnMgcGFydCBvZiB0aGUgcGFydGl0aW9uIHRhYmxlIChzZWN0b3IgJWx1KSxcbiIKKyJhbmQgd2lsbCBkZXN0cm95IGl0IHdoZW4gZmlsbGVkXG4iCittc2dzdHIgIiIKKyJWYXJvaXR1czogb3NpbyAlcyBzaXPDpGx0w6TDpCBvc2FuIG9zaW90YXVsdXN0YSAoc2VrdG9yaSAlbHUpLCBqYSBzZSB0dWxlZVxuIgorInR1aG91dHVtYWFuIGt1biBvc2lvdGEga8OkeXRldMOkw6RuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIHN0YXJ0cyBhdCBzZWN0b3IgMFxuIgorbXNnc3RyICJWYXJvaXR1czogb3NpbyAlcyBhbGthYSBzZWt0b3JpbHRhIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIlZhcm9pdHVzOiBvc2lvICVzIGphdGt1dSBsZXZ5biBsb3B1biB5bGlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorIlZhaW4geWtzaSBlbnNpw7Zvc2lvIHZvaSBvbGxhIGxhYWplbm5ldHR1XG4iCisiICh0w6Rtw6QgZWkgdG9zaW4gb2xlIG9uZ2VsbWEgTGludXhpc3NhKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIlZhcm9pdHVzOiBvc2lvICVzIGVpIGFsYSBzeWxpbnRlcmluIHJhamFsdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI5MworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3QgZW5kIGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiVmFyb2l0dXM6IG9zaW8gJXMgZWkgbG9wdSBzeWxpbnRlcmluIHJhamFsbGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxMQorbXNnaWQgIiIKKyJXYXJuaW5nOiBtb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJWYXJvaXR1czogdXNlYW1waSBrdWluIHlrc2kgZW5zacO2b3NpbyBvbiBtZXJraXR0eSBrw6R5bm5pc3RldHTDpHbDpGtzaSAiCisiKGFrdGlpdmlzZWtzaSlcbiIKKyJTZSBlaSBoYWl0dGFhIExJTE9hLCBtdXR0YSBET1MgTUJSIGVpIGvDpHlubmlzdMOkIHTDpGx0w6QgbGV2eWx0w6QuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTgKK21zZ2lkICIiCisiV2FybmluZzogdXN1YWxseSBvbmUgY2FuIGJvb3QgZnJvbSBwcmltYXJ5IHBhcnRpdGlvbnMgb25seVxuIgorIkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIgorbXNnc3RyICIiCisiVmFyb2l0dXM6IHlsZWVuc8OkIHZhaW4gZW5zacO2b3Npb2x0YSB2b2kga8OkeW5uaXN0w6TDpFxuIgorIkxJTE8gZWkgdsOkbGl0w6Qg4oCda8OkeW5uaXN0ZXR0w6R2w6TigJ0tbGlwdXN0YS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiVmFyb2l0dXM6IHlodMOkw6RuIGVuc2nDtm9zaW90YSBlaSBvbGUgbWVya2l0dHkga8OkeW5uaXN0ZXR0w6R2w6Rrc2lcbiIKKyIoYWt0aWl2aXNla3NpKS4gU2UgZWkgaGFpdHRhYSBMSUxPYSwgbXV0dGEgRE9TIE1CUiBlaSBrw6R5bm5pc3TDpCB0w6RsdMOkICIKKyJsZXZ5bHTDpC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMzOAorbXNnaWQgInN0YXJ0IgorbXNnc3RyICJhbHVuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJvc2lvICVzOiBhbGt1OiAoYyxoLHMpIG9kb3RldHRpaW4gKCVsZCwlbGQsJWxkKSBsw7Z5dHlpICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0NworbXNnaWQgImVuZCIKK21zZ3N0ciAibG9wdW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzOiBlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJvc2lvICVzOiBsb3BwdTogKGMsaCxzKSBvZG90ZXR0aWluICglbGQsJWxkLCVsZCkgbMO2eXR5aSAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJvc2lvICVzIGxvcHB1dSBzeWxpbnRlcmlsbMOkICVsZCwgbGV2eW4gbG9wdW4gasOkbGtlZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM3OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc2hpZnRlZCBzdGFydCBvZiB0aGUgZXh0ZCBwYXJ0aXRpb24gZnJvbSAlbGQgdG8gJWxkXG4iCisiKEZvciBsaXN0aW5nIHB1cnBvc2VzIG9ubHkuIERvIG5vdCBjaGFuZ2UgaXRzIGNvbnRlbnRzLilcbiIKK21zZ3N0ciAiIgorIlZhcm9pdHVzOiBsYWFqZW5uZXR1biBvc2lvbiBhbGt1YSBzaWlycmV0dHkga29oZGFzdGEgJWxkIGtvaHRhYW4gJWxkXG4iCisiKFZhaW4gbGlzdGF1c3RhcmtvaXR1a3NpaW4uIMOEbMOkIG11dXRhIHNlbiBzaXPDpGx0w7bDpC4pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzODQKK21zZ2lkICIiCisiV2FybmluZzogZXh0ZW5kZWQgcGFydGl0aW9uIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnkuXG4iCisiRE9TIGFuZCBMaW51eCB3aWxsIGludGVycHJldCB0aGUgY29udGVudHMgZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJWYXJvaXR1czogbGFhamVubmV0dW4gb3Npb24gYWxrdSBlaSBvbGUgc3lsaW50ZXJpbiByYWphbGxhLlxuIgorIkRPUyBqYSBMaW51eCB0dWxraXRzZXZhdCBzaXPDpGxsw7ZuIGVyaSB0YXZvaW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MDIgZmRpc2svc2ZkaXNrLmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zIC0gaWdub3JpbmcgdGhvc2UgcGFzdCBuciAoJWQpXG4iCittc2dzdHIgImxpaWFuIG1vbnRhIG9zaW90YSDigJMgZWkgaHVvbWlvaWRhIG51bWVyb24gKCVkKSBqw6Rsa2Vpc2nDpFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDE3Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICJvc2lvcHV1P1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTI1Cittc2dpZCAiZGV0ZWN0ZWQgRGlzayBNYW5hZ2VyIC0gdW5hYmxlIHRvIGhhbmRsZSB0aGF0XG4iCittc2dzdHIgImhhdmFpdHRpaW4gbGV2eW1hbmFnZXJpIOKAkyB0aWxhbnRlZXN0YSBlaSBzZWx2aXTDpFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTMyCittc2dpZCAiRE02IHNpZ25hdHVyZSBmb3VuZCAtIGdpdmluZyB1cFxuIgorbXNnc3RyICJETTYtYWxsZWtpcmpvaXR1cyBsw7Z5dHlpIOKAkyBsdW92dXRldGFhblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAib3V0b2EuLi4sIGxhYWplbm5ldHR1IG9zaW8sIGpvbmthIGtva28gb24gMD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCittc2dpZCAic3RyYW5nZS4uLiwgYSBCU0QgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAib3V0b2EuLi4sIEJTRC1vc2lvLCBqb25rYSBrb2tvIG9uIDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzOiB1bnJlY29nbml6ZWQgcGFydGl0aW9uIHRhYmxlIHR5cGVcbiIKK21zZ3N0ciAiICVzOiB0dW5uaXN0YW1hdG9uIG9zaW90YXVsdW4gdHl5cHBpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgInZhbGl0c2luIC1uIG9saSBhbm5ldHR1OiBNaXTDpMOkbiBlaSBtdXV0ZXR0dVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjMyCittc2dpZCAiRmFpbGVkIHNhdmluZyB0aGUgb2xkIHNlY3RvcnMgLSBhYm9ydGluZ1xuIgorbXNnc3RyICJWYW5ob2plbiBzZWt0b3JlaWRlbiB0YWxsZW5udXMgZXDDpG9ubmlzdHVpIOKAkyBrZXNrZXl0ZXTDpMOkblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjM3IGZkaXNrL3NmZGlzay5jOjE2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHdyaXRpbmcgdGhlIHBhcnRpdGlvbiBvbiAlc1xuIgorbXNnc3RyICJPc2lvbiBraXJqb2l0dXMgZXDDpG9ubmlzdHVpIGxhaXR0ZWVsbGUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAibGlpYW4gcGl0a8OkIHRhaSBlcMOkdMOkeWRlbGxpbmVuIHN5w7Z0ZXJpdmkg4oCTIGxvcGV0ZXRhYW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc1NQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogYD0nIGV4cGVjdGVkIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgInN5w7Z0ZXZpcmhlOiBrZW50w6RuICVzIGrDpGxrZWVuIG9kb3RldGFhbiBsw7Z5dHl2w6RuIOKAnT3igJ1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogdW5leHBlY3RlZCBjaGFyYWN0ZXIgJWMgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAic3nDtnRldmlyaGU6IG9kb3R0YW1hdG9uIG1lcmtraSAlYyBrZW50w6RuICVzIGrDpGxrZWVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICJ0dW5uaXN0YW1hdG9uIHN5w7Z0ZTogJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgImxpaWFuIHN1dXJpIGx1a3VcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxNAorbXNnaWQgInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtYmVyXG4iCittc2dzdHIgInJvc2thYSBudW1lcm9uIHBlcsOkc3PDpFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTM4Cittc2dpZCAibm8gcm9vbSBmb3IgcGFydGl0aW9uIGRlc2NyaXB0b3JcbiIKK21zZ3N0ciAiZWkgdGlsYWEgb3Npb2thaHZhbGxlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5NzEKK21zZ2lkICJjYW5ub3QgYnVpbGQgc3Vycm91bmRpbmcgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgInltcMOkcsO2aXbDpMOkIGxhYWplbm5ldHR1YSBvc2lvdGEgZWkgdm9pIHJha2VudGFhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwMjIKK21zZ2lkICJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIKK21zZ3N0ciAibGlpYW4gbW9udGEgc3nDtnRla2VudHTDpMOkXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIkVpIGVuZW1ww6TDpCB0aWxhYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIlZpcmhlZWxsaW5lbiB0eXlwcGlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIlZhcm9pdHVzOiBhbm5ldHR1IGtva28gKCVsdSkgeWxpdHTDpMOkIHN1dXJpbW1hbiBzYWxsaXR1biBrb29uICglbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMTMKK21zZ2lkICJXYXJuaW5nOiBlbXB0eSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiVmFyb2l0dXM6IHR5aGrDpCBvc2lvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHBhcnRpdGlvbiBzdGFydCAoZWFybGllc3QgJWx1KVxuIgorbXNnc3RyICJWYXJvaXR1czogdmlyaGVlbGxpbmVuIG9zaW9uIGFsa3UgKGFpa2Fpc2ludGFhbiAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNDAKK21zZ2lkICJ1bnJlY29nbml6ZWQgYm9vdGFibGUgZmxhZyAtIGNob29zZSAtIG9yICpcbiIKK21zZ3N0ciAidHVubmlzdGFtYXRvbiDigJ1rw6R5bm5pc3RldHTDpHbDpOKAnS1saXBwdSDigJMgdmFsaXRzZSAtIHRhaSAqXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNTcgZmRpc2svc2ZkaXNrLmM6MjE3MAorbXNnaWQgInBhcnRpYWwgYyxoLHMgc3BlY2lmaWNhdGlvbj9cbiIKK21zZ3N0ciAib3NpdHRhaW5lbiBjLGgscy1tw6TDpHJpdHlzP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICJMYWFqZW5uZXR0dSBvc2lvIGVpIG9sZSBvZG90ZXR1c3NhIHBhaWthc3NhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMTMKK21zZ2lkICJiYWQgaW5wdXRcbiIKK21zZ3N0ciAidmlyaGVlbGxpbmVuIHN5w7Z0ZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjM1Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9uc1xuIgorbXNnc3RyICJsaWlhbiBtb250YSBvc2lvdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisiU3nDtnRlIHNldXJhYXZhc3NhIG11b2Rvc3NhOiBwdXV0dHV2YXQga2VudMOkdCBzYWF2YXQgb2xldHVzYXJ2b24uXG4iCisiPGFsa3U+IDxrb2tvPiA8dHl5cHBpIFtFLFMsTCxYLGhleF0+IDxrw6R5bm5pc3RldHTDpHbDpCBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiWWxlZW5zw6QgcmlpdHTDpMOkIDxhbGt1PiBqYSA8a29rbz4gKGphIGVoa8OkIDx0eXlwcGk+KS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIGRldmljZSAuLi5cbiIKK21zZ3N0ciAiS8OkeXR0w7Y6ICVzIFt2YWxpdHNpbWV0XSBsYWl0ZSAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NQorbXNnaWQgImRldmljZTogc29tZXRoaW5nIGxpa2UgL2Rldi9oZGEgb3IgL2Rldi9zZGEiCittc2dzdHIgImxhaXRlOiBlc2ltZXJraWtzaSAvZGV2L2hkYSB0YWkgL2Rldi9zZGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgImh5w7ZkeWxsaXNldCB2YWxpdHNpbWV0OiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgICAtcyBbb3IgLS1zaG93LXNpemVdOiBsaXN0IHNpemUgb2YgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAtcyBbdGFpIC0tc2hvdy1zaXplXTogbsOkeXTDpCBvc2lvbiBrb2tvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiAgICAtYyBbdGFpIC0taWQ6ICAgICAgICBuw6R5dMOkIHRhaSBtdXV0YSBvc2lvLWlkIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk5Cittc2dpZCAiICAgIC1sIFtvciAtLWxpc3RdOiAgICAgIGxpc3QgcGFydGl0aW9ucyBvZiBlYWNoIGRldmljZSIKK21zZ3N0ciAiICAgIC1sIFt0YWkgLS1saXN0XTogICAgIGxpc3RhYSBrYWlra2llbiBsYWl0dGVpZGVuIG9zaW90IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAwCittc2dpZCAiICAgIC1kIFtvciAtLWR1bXBdOiAgICAgIGlkZW0sIGJ1dCBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgbGF0ZXIgaW5wdXQiCittc2dzdHIgIiAgICAtZCBbdGFpIC0tZHVtcF06ICAgICBzYW1hIGt1aW4gZWRlbGzDpCwgbXVvdG8gc29waXZhIHN5w7Z0dGVla3NpIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiIKKyIgICAgLWkgW3RhaSAtLWluY3JlbWVudF06bnVtZXJvaSBzeWxpbnRlcml0LCB5bS4gYWxrYWVuIDE6c3TDpCwgZWkgMDpzdGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDIKK21zZ2lkICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGFjY2VwdC9yZXBvcnQgaW4gdW5pdHMgb2Ygc2VjdG9ycy9ibG9ja3MvY3lsaW5kZXJzLyIKKyJNQiIKK21zZ3N0ciAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBrw6R5dMOkIHlrc2lra8O2aW7DpCBzZWt0b3JlaXRhL2xvaGtvamEvc3lsaW50ZXJlaXTDpC9NdCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgICAtVCBbdGFpIC0tbGlzdC10eXBlc106bGlzdGFhIHR1bm5ldHV0IG9zaW90eXlwaXQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorIiAgICAtRCBbdGFpIC0tRE9TXTogICAgICBET1MteWh0ZWVuc29waXZ1dXR0YSB2YXJ0ZW47IHR1aGxhYSB2w6Row6RuIHRpbGFhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA1Cittc2dpZCAiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIG1ha2Uga2VybmVsIHJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgICAtUiBbdGFpIC0tcmUtcmVhZF06ICBrw6Rza2UgeXRpbWVuIGx1a2VhIG9zaW90YXVsdSB1dWRlbGxlZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDYKK21zZ2lkICIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIgorbXNnc3RyICIgICAgLU4jIDogICAgICAgICAgICAgICAgbXV1dGEgdmFpbiBvc2lvdGEgbnVtZXJvICMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiAgICAtbiA6ICAgICAgICAgICAgICAgICDDpGzDpCBraXJqb2l0YSBsZXZ5bGxlIG9pa2Vhc3RpIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIgICAgLU8gdGllZG9zdG8gOiAgICAgICAgdGFsbGVubmEgeWxpa2lyam9pdGV0dGF2YXQgc2VrdG9yaSB0aWVkb3N0b29uIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA5Cittc2dpZCAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIHJlc3RvcmUgdGhlc2Ugc2VjdG9ycyBhZ2FpbiIKK21zZ3N0ciAiICAgIC1JIHRpZWRvc3RvIDogICAgICAgIHBhbGF1dGEgbsOkbcOkIHNla3Rvcml0IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEwCittc2dpZCAiICAgIC12IFtvciAtLXZlcnNpb25dOiAgIHByaW50IHZlcnNpb24iCittc2dzdHIgIiAgICAtdiBbdGFpIC0tdmVyc2lvbl06ICBuw6R5dMOkIHZlcnNpbyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiAgICAtPyBbdGFpIC0taGVscF06ICAgICBuw6R5dMOkIHTDpG3DpCB2aWVzdGkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTIKK21zZ2lkICJkYW5nZXJvdXMgb3B0aW9uczoiCittc2dzdHIgInZhYXJhbGxpc2V0IHZhbGl0c2ltZXQ6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEzCittc2dpZCAiICAgIC1nIFtvciAtLXNob3ctZ2VvbWV0cnldOiBwcmludCB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgZ2VvbWV0cnkiCittc2dzdHIgIiAgICAtZyBbdGFpIC0tc2hvdy1nZW9tZXRyeV06IG7DpHl0w6QgeXRpbWVuIGvDpHNpdHlzIGdlb21ldHJpYXN0YSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorbXNnaWQgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IHByaW50IGdlb21ldHJ5IGd1ZXNzZWQgZnJvbSB0aGUgcGFydGl0aW9uICIKKyJ0YWJsZSIKK21zZ3N0ciAiICAgIC1HIFt0YWkgLS1zaG93LXB0LWdlb21ldHJ5XTogbsOkeXTDpCBvc2lvdGF1c3RhIHDDpMOkdGVsdHkgZ2VvbWV0cmlhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE1Cittc2dpZCAiIgorIiAgICAteCBbb3IgLS1zaG93LWV4dGVuZGVkXTogYWxzbyBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMgb24gb3V0cHV0XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBleHBlY3QgZGVzY3JpcHRvcnMgZm9yIHRoZW0gb24gaW5wdXQiCittc2dzdHIgIiIKKyIgICAgLXggW3RhaSAtLXNob3ctZXh0ZW5kZWRdOiBsaXN0YWEgbXnDtnMgbGFhamVubmV0dXQgb3Npb3QgdHVsb3N0ZWVzc2FcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhaSBvZG90YSBzecO2dHRlZXN0w6QgbmlpZGVuIGthaHZvamEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTcKK21zZ2lkICIiCisiICAgIC1MICBbb3IgLS1MaW51eF06ICAgICAgZG8gbm90IGNvbXBsYWluIGFib3V0IHRoaW5ncyBpcnJlbGV2YW50IGZvciBMaW51eCIKK21zZ3N0ciAiIgorIiAgICAtTCAgW3RhaSAtLUxpbnV4XTogICAgIMOkbMOkIGh1b21hdXRhIExpbnV4aXNzYSBtZXJraXR5a3NldHTDtm1pc3TDpCBhc2lvaXN0YSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAtcSAgW29yIC0tcXVpZXRdOiAgICAgIHN1cHByZXNzIHdhcm5pbmcgbWVzc2FnZXMiCittc2dzdHIgIiAgICAtcSAgW3RhaSAtLXF1aWV0XTogICAgIHZhaWVubmEgdmFyb2l0dXN2aWVzdGl0IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiICAgIFZvaXQgb2hpdHRhYSB0dW5uaXN0ZXR1biBnZW9tZXRyaWFuIGvDpHl0dMOkbcOkbGzDpDoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLUMjIFt0YWkgLS1jeWxpbmRlcnMgI106YXNldGEga8OkeXRldHTDpHbDpCBzeWxpbnRlcmllbiBtw6TDpHLDpCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1oIyBbdGFpIC0taGVhZHMgI106ICAgIGFzZXRhIGvDpHl0ZXR0w6R2w6QgcMOkaWRlbiBtw6TDpHLDpCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLVMjIFt0YWkgLS1zZWN0b3JzICNdOiAgYXNldGEga8OkeXRldHTDpHbDpCBzZWt0b3JpZW4gbcOkw6Ryw6QiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjMKK21zZ2lkICJZb3UgY2FuIGRpc2FibGUgYWxsIGNvbnNpc3RlbmN5IGNoZWNraW5nIHdpdGg6IgorbXNnc3RyICJLYWlra2kgdGFya2lzdHVrc2V0IHZvaSBvaGl0dGFhIHZhbGl0c2ltZWxsYToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjQKK21zZ2lkICIgICAgLWYgIFtvciAtLWZvcmNlXTogICAgICBkbyB3aGF0IEkgc2F5LCBldmVuIGlmIGl0IGlzIHN0dXBpZCIKK21zZ3N0ciAiICAgIC1mICBbdGFpIC0tZm9yY2VdOiAgICAgdGVlIG1pdMOkIGvDpHNrZW4sIHZhaWtrYSBzZSBvbGlzaSB0eWhtw6TDpCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAiS8OkeXR0w7Y6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZVx0XHQgbGlzdCBhY3RpdmUgcGFydGl0aW9ucyBvbiBkZXZpY2VcbiIKK21zZ3N0ciAiJXMgbGFpdGVcdFx0IGxpc3RhYSBsYWl0dGVlbGxhIG9sZXZhdCBha3RpaXZpc2V0IG9zaW90XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIlcyBsYWl0ZSBuMSBuMiAuLi4gYWt0aXZvaSBvc2lvdCBuMSAuLi4sIGluYWt0aXZvaSBsb3B1dFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIlcyAtQW4gbGFpdGVcdCBha3Rpdm9pIG9zaW8gbiwgcG9pc3RhIG11aWRlbiBha3Rpdm9pbnRpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWQVJPSVRVUzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgaGF2YWl0dHUgbGFpdHRlZWxsYSDigJ0lc+KAnSEgU2ZkaXNrIGVpIHR1ZSAiCisiR1BUOnTDpC4gS8OkeXTDpCBHTlUgUGFydGVkacOkLlxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDU2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIkvDpHl0w6QgLS1mb3JjZSAtdmFsaXRzaW50YSBvaGl0dGFha3Nlc2kgdMOkbcOkbiB0YXJraXN0dWtzZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0OTUKK21zZ2lkICJubyBjb21tYW5kP1xuIgorbXNnc3RyICJlaSBrb21lbnRvYT9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjYyNworIywgYy1mb3JtYXQKK21zZ2lkICJ0b3RhbDogJWxsdSBibG9ja3NcbiIKK21zZ3N0ciAieWh0ZWVuc8OkOiAlbGx1IGxvaGtvYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcwCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLXByaW50LWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyXG4iCittc2dzdHIgImvDpHl0dMO2OiBzZmRpc2sgLS1wcmludC1pZCBsYWl0ZSBvc2lvbnVtZXJvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzIKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tY2hhbmdlLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIElkXG4iCittc2dzdHIgImvDpHl0dMO2OiBzZmRpc2sgLS1jaGFuZ2UtaWQgbGFpdGUgb3Npb251bWVybyBJZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAia8OkeXR0w7Y6IHNmZGlzayAtLWlkIGxhaXRlIG9zaW9udW1lcm8gW0lkXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjgxCittc2dpZCAiY2FuIHNwZWNpZnkgb25seSBvbmUgZGV2aWNlIChleGNlcHQgd2l0aCAtbCBvciAtcylcbiIKK21zZ3N0ciAidmFpbiB5aGRlbiBsYWl0dGVlbiB2b2kgYW50YWEgKHBhaXRzaSB2YWxpdHNpbWVsbGEgLWwgdGFpIC1zKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAibGFpdGV0dGEgJXMgZWkgdm9pIGF2YXRhIGx1a3VhLWtpcmpvaXR1c3RhIHZhcnRlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgImxhaXRldHRhICVzIGVpIHZvaSBhdmF0YSBsdWt1YSB2YXJ0ZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiJXM6IE9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3NTMgZmRpc2svc2ZkaXNrLmM6Mjc4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlczogJWxkIHN5bGludGVyacOkLCAlbGQgcMOkw6R0w6QsICVsZCBzZWt0b3JpYS91cmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IHNpemUgb2YgJXNcbiIKK21zZ3N0ciAiTGFpdHRlZW4gJXMga29rb2EgZWkgdm9pZGEgaGFrZWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgInZpcmhlZWxsaW5lbiBha3RpaXZpbmVuIHRhdnU6IDB4ODA6biBhc2VtZXN0YSAweCV4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlZhbG1pc1xuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisiQWt0aWl2aXNpYSBlbnNpw7Zvc2lvaXRhIG9uICVkIGthcHBhbGV0dGEuIFTDpG3DpCBlaSBoYWl0dGFhIExJTE9hLCBtdXR0YVxuIgorIkRPUyBNQlIga8OkeW5uaXN0w6TDpCB2YWluIGxldnlsdMOkLCBqb2xsYSBvbiB0YXNhbiB5a3NpIGFrdGlpdmluZW4gb3Npby5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgIm9zaW9sbGEgJXMgaWQgb24gJXggZWlrw6Qgb3Npb3RhIG9sZSBrw6R0a2V0dHlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgSWQgJWx4XG4iCittc2dzdHIgIlZpcmhlZWxsaW5lbiBJZCAlbHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAwNAorbXNnaWQgIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlLlxuIgorbXNnc3RyICJMZXZ5IG9uIHTDpGxsw6QgaGV0a2VsbMOkIGvDpHl0w7Zzc8OkLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhdGFsIGVycm9yOiBjYW5ub3QgZmluZCAlc1xuIgorbXNnc3RyICJWYWthdmEgdmlyaGU6IGxhaXRldHRhICVzIGVpIGzDtnlkeVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICJWYXJvaXR1czogJXMgZWkgb2xlIGxvaGtvbGFpdGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzMgorbXNnaWQgIkNoZWNraW5nIHRoYXQgbm8tb25lIGlzIHVzaW5nIHRoaXMgZGlzayByaWdodCBub3cgLi4uXG4iCittc2dzdHIgIlRhcmtpc3RldGFhbiwgZXR0w6Qga3VrYWFuIGVpIGvDpHl0w6QgbGV2ecOkIGp1dXJpIG55dC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM0Cittc2dpZCAiIgorIlxuIgorIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlIC0gcmVwYXJ0aXRpb25pbmcgaXMgcHJvYmFibHkgYSBiYWQgaWRlYS5cbiIKKyJVbW91bnQgYWxsIGZpbGUgc3lzdGVtcywgYW5kIHN3YXBvZmYgYWxsIHN3YXAgcGFydGl0aW9ucyBvbiB0aGlzIGRpc2suXG4iCisiVXNlIHRoZSAtLW5vLXJlcmVhZCBmbGFnIHRvIHN1cHByZXNzIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIiIKKyJcbiIKKyJUw6Rtw6QgbGV2eSBvbiB0w6RsbMOkIGhldGtlbGzDpCBrw6R5dMO2c3PDpCDigJMgc2VuIHV1ZGVsbGVlbm9zaW9pbnRpIG9uXG4iCisidG9kZW5uw6Rrw7Zpc2VzdGkgaHVvbm8gYWphdHVzLiBJcnJvdGEga2Fpa2tpIGxldnluIHRpZWRvc3RvasOkcmplc3RlbG3DpHRcbiIKKyIoa29tZW50byB1bW91bnQpIGphIGthaWtraSBsZXZ5bGzDpCBvbGV2YXQgc2l2dXR1c29zaW90IChrb21lbnRvIHN3YXBvZmYpLlxuIgorIkvDpHl0w6QgdmFsaXRzaW50YSAtLW5vLXJlcmVhZCB0w6Rtw6RuIHRlc3RpbiBvaGl0dGFtaXNlZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICJLw6R5dMOkIC0tZm9yY2UgLXZhbGl0c2ludGEgb2hpdHRhYWtzZXNpIGthaWtraSB0YXJraXN0dWtzZXQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICJPS1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIk9sZCBzaXR1YXRpb246XG4iCittc2dzdHIgIlZhbmhhIHRpbGFubmU6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgY2hhbmdlIGl0XG4iCittc2dzdHIgIk9zaW90YSAlZCBlaSBvbGUgb2xlbWFzc2EsIHNpdMOkIGVpIHZvaSBtdXV0dGFhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiVXVzaSB0aWxhbm5lOlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDY4Cittc2dpZCAiIgorIkkgZG9uJ3QgbGlrZSB0aGVzZSBwYXJ0aXRpb25zIC0gbm90aGluZyBjaGFuZ2VkLlxuIgorIihJZiB5b3UgcmVhbGx5IHdhbnQgdGhpcywgdXNlIHRoZSAtLWZvcmNlIG9wdGlvbi4pXG4iCittc2dzdHIgIiIKKyJFbiBwaWTDpCBuw6Rpc3TDpCBvc2lvaXN0YSDigJMgbWl0w6TDpG4gZWkgbXV1dGV0dHUuXG4iCisiKEpvcyB0b2RlbGxhIGhhbHVhdCB0w6R0w6QsIGvDpHl0w6QgdmFsaXRzaW50YSAtLWZvcmNlLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiRW4gcGlkw6QgdMOkc3TDpCDigJMga2FubmF0dGFhIHRvZGVubsOka8O2aXNlc3RpIHZhc3RhdGEg4oCdTm/igJ1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJBcmUgeW91IHNhdGlzZmllZCB3aXRoIHRoaXM/IFt5bnFdICIKK21zZ3N0ciAiT2xldGtvIHR5eXR5dsOkaW5lbiB0w6Row6RuPyBbeW5xXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiCittc2dzdHIgIkhhbHVhdGtvIGtpcmpvaXR0YWEgdMOkbcOkbiBsZXZ5bGxlPyBbeW5xXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGVuZCBvZiBpbnB1dFxuIgorbXNnc3RyICIiCisiXG4iCisic2ZkaXNrOiBlbm5lbmFpa2FpbmVuIHN5w7Z0dGVlbiBsb3BwdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiTG9wZXRldGFhbiDigJMgbWl0w6TDpG4gZWkgbXV1dGV0dHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIgorbXNnc3RyICJWYXN0YWEgam9rbyB5LCBuIHRhaSBxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisiVXVzaSBvc2lvdGF1bHUga2lyam9pdGV0dGlpbiBvbm5pc3R1bmVlc3RpXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorIkpvcyBET1Mtb3NpbywgZXNpbS4gL2Rldi9mb283LCBsdW90aWluIHRhaSBzaXTDpCBtdXV0ZXR0aWluLCBrw6R5dMOkIGRkKDEpOnTDpFxuIgorIm5vbGxhdGFrc2VzaSBlbnNpbW3DpGlzZXQgNTEyIHRhdnVhOlxuIgorImRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoS2F0c28gZmRpc2soOCkuKVxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogY291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiVkFST0lUVVM6IHRpZWRvc3RvYSAlcyBlaSB2b2kgYXZhdGE6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBiYWQgZm9ybWF0IG9uIGxpbmUgJWQgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozNTIKK21zZ2lkICIiCisiV0FSTklORzogWW91ciAvZXRjL2ZzdGFiIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZzY2sgcGFzc25vXG4iCisiXHRmaWVsZC4gIEkgd2lsbCBrbHVkZ2UgYXJvdW5kIHRoaW5ncyBmb3IgeW91LCBidXQgeW91XG4iCisiXHRzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogJXM6IG5vdCBmb3VuZFxuIgorbXNnc3RyICJmc2NrOiAlczogZWkgbMO2eXR5bnl0XG4iCisKKyM6IGZzY2svZnNjay5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FpdDogTm8gbW9yZSBjaGlsZCBwcm9jZXNzPyE/XG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmcuLi4gJXMgZm9yIGRldmljZSAlcyBleGl0ZWQgd2l0aCBzaWduYWwgJWQuXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVzOiBzdGF0dXMgaXMgJXgsIHNob3VsZCBuZXZlciBoYXBwZW4uXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NjQzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmlzaGVkIHdpdGggJXMgKGV4aXQgc3RhdHVzICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjcwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzIGZvciAlc1xuIgorbXNnc3RyICIlczogdmlyaGUgJWQgcHVyZXR0YWVzc2EhICVwKCVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKKyMsIGZ1enp5Cittc2dpZCAiQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBmaWxlc3lzdGVtIHR5cGVzXG4iCittc2dzdHIgIm1vdW50OiB0aWVkb3N0b2rDpHJqZXN0ZWxtw6RuIHR5eXBwaSBvbiBhbm5ldHRhdmEiCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6ODkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgbm9uZXhpc3RlbnQgZGV2aWNlXG4iCittc2dzdHIgIiVzOiAlcyBlaSBvbGUgbHAtbGFpdGUuXG4iCisKKyM6IGZzY2svZnNjay5jOjkxOAorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiBjYW5ub3QgY2hlY2sgJXM6IGZzY2suJXMgbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6OTc0CisjLCBmdXp6eQorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIlBha290ZXRhYW4gdGllZG9zdG9qw6RyamVzdGVsbcOkbiB0YXJraXN0dXMgbGFpdHRlZWxsYSAlcy5cbiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICIiCisiS8OkeXR0w7Y6IGZzY2sgWy1BTU5QUlRWXSBbIC1DIFsgZmQgXSBdIFstdCB0aWVkLmrDpHJqLiB0eXlwcGldIFt0aWVkLmrDpHJqLiIKKyJ2YWxpdHNpbWV0XSBbdGllZC5qw6Ryai4gLi4uXVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzOiBsaWlhbiBtb250YSBsYWl0ZXR0YVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJMYWl0ZXR0YSAlcyBlaSB2b2kgYXZhdGE6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiT25rb2hhbiAvcHJvYyBsaWl0ZXR0eT9cbiIKKworIzogZnNjay9mc2NrLmM6MTE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIHJvb3QgdG8gc2NhbiBmb3IgbWF0Y2hpbmcgZmlsZXN5c3RlbXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTE0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgZmluZCBtYXRjaGluZyBmaWxlc3lzdGVtOiAlc1xuIgorbXNnc3RyICJJcnJvdGV0YWFuIGrDpGxqZWxsw6Qgb2xldmF0IHRpZWRvc3RvasOkcmplc3RlbG3DpHQuLi4iCisKKyM6IGZzY2svZnNjay5jOjExNTYgZnNjay9mc2NrLmM6MTI0MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGFyZ3VtZW50c1xuIgorbXNnc3RyICIlczogdHVudGVtYXRvbiBhcmd1bWVudHRpOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgcGFrZXRpc3RhICVzJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTI4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZzY2tfcGF0aFxuIgorbXNnc3RyICJJLXNvbG11aWxsZSBlaSB2b2kgdmFyYXRhIHB1c2t1cmlhIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MjI5Cittc2dpZCAiVHJ5IGBnZXRvcHQgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiS29tZW50byDigJ1nZXRvcHQgLS1oZWxw4oCdIGFudGFhIGxpc8Okw6QgdGlldG9hLlxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mjk1Cittc2dpZCAiZW1wdHkgbG9uZyBvcHRpb24gYWZ0ZXIgLWwgb3IgLS1sb25nIGFyZ3VtZW50IgorbXNnc3RyICJ0eWhqw6QgcGl0a8OkIHZhbGl0c2luIGFyZ3VtZW50aW4gLWwgdGFpIC0tbG9uZyBqw6Rsa2VlbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAidHVudGVtYXRvbiBrdW9yaSBhcmd1bWVudGluIC1zIHRhaSAtLXNoZWxsIGrDpGxrZWVuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIwCittc2dpZCAiVXNhZ2U6IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICJLw6R5dHTDtjogZ2V0b3B0IHZhbGl0c2lubWVya2tpam9ubyBwYXJhbWV0cml0XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjEKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSBbLS1dIG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICBnZXRvcHQgW3ZhbGl0c2ltZXRdIFstLV0gdmFsaXRzaW5tZXJra2lqb25vIHBhcmFtZXRyaXRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiIgorIiAgICAgICBnZXRvcHQgW3ZhbGl0c2ltZXRdIC1vfC0tb3B0aW9ucyB2YWxpdHNpbm1lcmtraWpvbm8gW3ZhbGl0c2ltZXRdICIKKyJbLS1dXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjMKK21zZ2lkICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICBwYXJhbWV0cml0XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjQKK21zZ2lkICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4iCittc2dzdHIgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgU2FsbGkgcGl0a2llbiB2YWxpdHNpbWllbiBhbGthbWluZW4geWhkZWxsw6QgLToiCisibGxhXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjUKK21zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVGhpcyBzbWFsbCB1c2FnZSBndWlkZVxuIgorbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVMOkbcOkIHBpZW5pIGvDpHl0dMO2b3Bhc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI2Cittc2dpZCAiICAtbCwgLS1sb25nb3B0aW9ucz1sb25nb3B0cyAgIExvbmcgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLWwsIC0tbG9uZ29wdGlvbnM9dmFsaXRzaW1ldCBQaXRrw6R0IHR1bm5pc3RldHRhdmF0IHZhbGl0c2ltZXRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNworbXNnaWQgIiIKKyIgIC1uLCAtLW5hbWU9cHJvZ25hbWUgICAgICAgICAgVGhlIG5hbWUgdW5kZXIgd2hpY2ggZXJyb3JzIGFyZSByZXBvcnRlZFxuIgorbXNnc3RyICIiCisiICAtbiwgLS1uYW1lPW9oamVsbWFuaW1pICAgICAgIE5pbWksIGpva2EgaWxtb2l0ZXRhYW4gdmlyaGVpZGVuIHlodGV5ZGVzc8OkXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjgKK21zZ2lkICIgIC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLW8sIC0tb3B0aW9ucz12YWxpdHNpbWV0ICAgICBMeWh5ZXQgdHVubmlzdGV0dGF2YXQgdmFsaXRzaW1ldFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgVmFpZW5uYSBnZXRvcHQoMyk6biB2aXJoZWlsbW9pdHVrc2V0XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgRWkgbm9ybWFhbGlhIHR1bG9zdGV0dGFcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMQorbXNnaWQgIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICBTZXQgc2hlbGwgcXVvdGluZyBjb252ZW50aW9uc1xuIgorbXNnc3RyICIgIC1zLCAtLXNoZWxsPWt1b3JpICAgICAgICAgICAgQXNldGEga3VvcmVuIGxhaW5hdXNrw6R5dMOkbm7DtnRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMgorbXNnaWQgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUZXN0IGZvciBnZXRvcHQoMSkgdmVyc2lvblxuIgorbXNnc3RyICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICBUZXN0YWEgZ2V0b3B0KDEpOm4gdmVyc2lvXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzMKK21zZ2lkICIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgRG8gbm90IHF1b3RlIHRoZSBvdXRwdXRcbiIKK21zZ3N0ciAiICAtdSwgLS11bnF1b3RlICAgICAgICAgICAgICAgIEVpIGxhaW5hdXNtZXJra2Vqw6QgdHVsb3N0ZWVzZWVuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE7DpHl0w6QgdmVyc2lvdGllZG90XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozODggZ2V0b3B0L2dldG9wdC5jOjQ0NworbXNnaWQgIm1pc3Npbmcgb3B0c3RyaW5nIGFyZ3VtZW50IgorbXNnc3RyICJwdXV0dHV2YSB2YWxpdHNpbm1lcmtraWpvbm9uIGFyZ3VtZW50dGkiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChwYXJhbm5ldHR1KSAxLjEuNFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDQxCittc2dpZCAiaW50ZXJuYWwgZXJyb3IsIGNvbnRhY3QgdGhlIGF1dGhvci4iCittc2dzdHIgInNpc8OkaW5lbiB2aXJoZSwgb3RhIHlodGV5dHTDpCB0ZWtpasOkw6RuLiIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAia8OkeW5uaXN0ZXR0eSBNSUxPc3RhXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJSdWZmaWFuIEJDRCBjbG9ja1xuIgorbXNnc3RyICJSdWZmaWFuIEJDRCAta2VsbG9cbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImNsb2NrcG9ydCBhZGp1c3RlZCB0byAweCV4XG4iCittc2dzdHIgImtlbGxvcG9ydGlrc2kgYXNldGV0dHUgMHgleFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICJmdW5reSBUT1khXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXRvbWljICVzIGZhaWxlZCBmb3IgMTAwMCBpdGVyYXRpb25zISIKK21zZ3N0ciAiJXM6IGF0b21pbmVuIOKAnSVz4oCdIGVww6Rvbm5pc3R1aSAxMDAwIGl0ZXJhYXRpb24gYWphbiEiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHJlYWQgZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIkVpIHZvaSBhdmF0YSBsYWl0ZXR0YSAvZGV2L3BvcnQ6ICVzIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIkVuIHNhYW51dCBrw6R5dHTDtm9pa2V1dHRhLCBrb3NrYSBlbiB5cml0dMOkbnl0LlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiJXMgZWkgc2FhIGvDpHl0dMO2b2lrZXV0dGEgSS9PLXBvcnR0aWluOiAgaW9wbCgzKS1rdXRzdSBlcMOkb25uaXN0dWkuXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9iYWJseSB5b3UgbmVlZCByb290IHByaXZpbGVnZXMuXG4iCittc2dzdHIgIlRhcnZpdHNldCB0b2Rlbm7DpGvDtmlzZXN0aSBww6TDpGvDpHl0dMOkasOkbiBvaWtldWRldC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gJXMgdGltZS5cbiIKK21zZ3N0ciAiT2xldGV0YWFuIGxhaXR0ZWlzdG9rZWxsb24gb2xldmFuICVzYWphc3NhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMtIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI1Cittc2dpZCAibG9jYWwiCittc2dzdHIgInBhaWthbGxpc2Vzc2EgIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIlczogVmFyb2l0dXM6IHR1bm5pc3RhbWF0b24ga29sbWFzIHJpdmkgYWRqdGltZS10aWVkb3N0b3NzYVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiKEV4cGVjdGVkOiBgVVRDJyBvciBgTE9DQUwnIG9yIG5vdGhpbmcuKVxuIgorbXNnc3RyICIoT2RvdGV0YWFuOiDigJ1VVEPigJ0sIOKAnUxPQ0FM4oCdIHRhaSBlaSBtaXTDpMOkbi4pXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGRyaWZ0IGFkanVzdG1lbnQgZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIlZpaW1laW5lbiBzaWlydHltw6Rzw6TDpHTDtiB0ZWh0eSAlbGQgc2VrdW50aWEgdnVvZGVuIDE5NjkgasOkbGtlZW5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgY2FsaWJyYXRpb24gZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIlZpaW1laW5lbiBrYWxpYnJvaW50aSB0ZWh0eSAlbGQgc2VrdW50aWEgdnVvZGVuIDE5NjkgasOkbGtlZW5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIkhhcmR3YXJlIGNsb2NrIGlzIG9uICVzIHRpbWVcbiIKK21zZ3N0ciAiTGFpdHRlaXN0b2tlbGxvIG9uICVzYWphc3NhXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgInR1bnRlbWF0dG9tYXNzYSAiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGZvciBjbG9jayB0aWNrLi4uXG4iCittc2dzdHIgIk9kb3RldGFhbiBrZWxsb24gdGlraXR5c3TDpC4uLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc3luY2hyb25pemF0aW9uIGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1OAorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5nb3QgY2xvY2sgdGlja1xuIgorbXNnc3RyICIuLi5zYWF0aWluIHRpa2l0eXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIiIKKyJWaXJoZWVsbGlzacOkIGFydm9qYSBsYWl0dGVpc3Rva2VsbG9zc2E6ICUzJC4yZC4lMiQuMmQuJTEkNGQgJTQkLjJkOiU1JC4yZDolNiIKKyIkLjJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQyMAorIywgYy1mb3JtYXQKK21zZ2lkICJIdyBjbG9jayB0aW1lIDogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiIgorIkxhaXR0ZWlzdG9rZWxsb24gYWlrYTogJTMkLjJkLiUyJC4yZC4lMSQ0ZCAlNCQuMmQ6JTUkLjJkOiU2JC4yZCA9ICU3JGxkICIKKyJzZWt1bnRpYSB2dW9kZXN0YSAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHJlYWQgZnJvbSBIYXJkd2FyZSBDbG9jazogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorbXNnc3RyICIiCisiTGFpdHRlaXN0b2tlbGxvc3RhIGx1ZXR0dSBhaWthOiAlMyQuMmQuJTIkLjJkLiUxJDRkICU0JDAyZDolNSQwMmQ6JTYkMDJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIEhhcmR3YXJlIENsb2NrIHRvICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiQXNldGV0YWFuIGxhaXR0ZWlzdG9rZWxsbyBhaWthYW4gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2VrdW50aWEgdnVvZGVzdGEgIgorIjE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb2NrIG5vdCBjaGFuZ2VkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJLZWxsb25haWthYSBlaSBtdXV0ZXR0dSDigJMgcGVsa2vDpCB0ZXN0aS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIlZpaXRlYWphbmtvaGRhc3RhIG9uIGt1bHVudXQgJS42ZiBzZWt1bnRpYS5cbiIKKyJPZG90ZXRhYW4gc2V1cmFhdmFhIHTDpHl0dMOkIHNla3VudGlhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIkxhaXR0ZWlzdG9rZWxsb24gcmVraXN0ZXJlaXNzw6Qgb24gYXJ2b2phLCBqb3RrYSBvdmF0IGpva28ga2Vsdm90dG9taWEgKGVzaW0uICIKKyJrdXVrYXVkZW4gNTA6cyBww6RpdsOkKSB0YWkgc3V1cmVtcGlhIGt1aW4gcHlzdHltbWUga8Okc2l0dGVsZW3DpMOkbiAoZXNpbS4gdnVvc2kgIgorIjIwOTUpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIlcyAgJS42ZiBzZWt1bnRpYVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gLS1kYXRlIG9wdGlvbiBzcGVjaWZpZWQuXG4iCittc2dzdHIgIlZhbGl0c2ludGEgLS1kYXRlIGVpIG9sZSBhbm5ldHR1LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1kYXRlIGFyZ3VtZW50IHRvbyBsb25nXG4iCittc2dzdHIgImxpaWFuIHBpdGvDpCAtLWRhdGUtYXJndW1lbnR0aVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiBpcyBub3QgYSB2YWxpZCBkYXRlLlxuIgorIkluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHF1b3RhdGlvbiBtYXJrcy5cbiIKK21zZ3N0ciAiIgorIlZhbGl0c2ltZWxsZSAtLWRhdGUgYW5uZXR0dSBhcnZvIGVpIG9sZSBrZWx2b2xsaW5lbiBww6RpdsOkeXMuXG4iCisiU2Ugc2lzw6RsdMOkw6QgbGFpbmF1c21lcmtrZWrDpC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIklzc3VpbmcgZGF0ZSBjb21tYW5kOiAlc1xuIgorbXNnc3RyICJLw6R5bm5pc3RldMOkw6RuIOKAnWRhdGXigJ0ta29tZW50bzogJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQwCittc2dpZCAiVW5hYmxlIHRvIHJ1biAnZGF0ZScgcHJvZ3JhbSBpbiAvYmluL3NoIHNoZWxsLiBwb3BlbigpIGZhaWxlZCIKK21zZ3N0ciAiS29tZW50b2Eg4oCdZGF0ZeKAnSBlaSB2b2l0dSBhamFhIC9iaW4vc2gta3VvcmVzc2EuIHBvcGVuKCkgZXDDpG9ubmlzdHVpIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcG9uc2UgZnJvbSBkYXRlIGNvbW1hbmQgPSAlc1xuIgorbXNnc3RyICJkYXRlLWtvbWVubm9uIHZhc3RhdXMgPSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHVuZXhwZWN0ZWQgcmVzdWx0cy5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICAlc1xuIgorbXNnc3RyICIiCisiJXNpbiBrw6R5bm5pc3TDpG3DpCDigJ1kYXRl4oCdLWtvbWVudG8gcGFsYXV0dGkgb2RvdHRhbWF0dG9taWEgdHVsb2tzaWEuXG4iCisiS29tZW50byBvbGk6XG4iCisiICAlc1xuIgorIlZhc3RhdXMgb2xpOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIiVzaW4ga8OkeW5uaXN0w6Rtw6Qg4oCdZGF0ZeKAnS1rb21lbnRvIHBhbGF1dHRpIG11dXRhIGt1aW4ga29rb25haXNsdXZ1biBvZG90ZXR1biAiCisibXV1bm5ldHVuIGFpa2EtYXJ2b24gcGFpa2FsbGEuXG4iCisiS29tZW50byBvbGk6XG4iCisiICAlc1xuIgorIlZhc3RhdXMgb2xpOlxuIgorIiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICJww6RpdsOkeXNtZXJra2lqb25vICVzIHZhc3RhYSAlbGQgc2VrdW50aWEgdnVvZGVzdGEgMTk2OS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBzZXQgdGhlICIKKyJTeXN0ZW0gVGltZSBmcm9tIGl0LlxuIgorbXNnc3RyICIiCisiTGFpdHRlaXN0b2tlbGxvbiBhaWthIGVpIG9sZSBrZWx2b2xsaW5lbiwgam90ZW4gasOkcmplc3RlbG3DpG4gYWlrYWEgZWkgdm9pZGEgIgorImFzZXR0YWEgc2VuIHBlcnVzdGVlbGxhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjcgaHdjbG9jay9od2Nsb2NrLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgc2V0dGltZW9mZGF5OlxuIgorbXNnc3RyICJLdXRzdXRhYW4gc2V0dGltZW9mZGF5OlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICJKw6RyamVzdGVsbcOka2VsbG9hIGVpIGFzZXRldGEsIGtvc2thIGvDpHl0ZXTDpMOkbiB0ZXN0aXRpbGFhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIlZhaW4gcMOkw6Rrw6R5dHTDpGrDpCB2b2kgYXNldHRhYSBqw6RyamVzdGVsbcOkbiBrZWxsb24uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgInNldHRpbWVvZmRheSgpIGVww6Rvbm5pc3R1aSIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkN1cnJlbnQgc3lzdGVtIHRpbWU6ICVsZCA9ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0VVRDOiAlc1xuIgorbXNnc3RyICJcdFVUQzogJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIHRoZSBIYXJkd2FyZSBDbG9jayBwcmV2aW91c2x5IGNvbnRhaW5lZCAiCisiZ2FyYmFnZS5cbiIKK21zZ3N0ciAiIgorIkVpIHPDpMOkZGV0w6Qgc2lpcnR5bcOka2Vycm9pbnRhLCBrb3NrYSBsYWl0dGVpc3Rva2VsbG9zc2Egb2xpIGVkZWxsaXNlbGzDpCAiCisia2VycmFsbGEgcm9za2FhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgbGFzdCBjYWxpYnJhdGlvbiB0aW1lIGlzIHplcm8sXG4iCisic28gaGlzdG9yeSBpcyBiYWQgYW5kIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciBpcyBuZWNlc3NhcnkuXG4iCittc2dzdHIgIiIKKyJFaSBzw6TDpGRldMOkIHNpaXJ0eW3DpGtlcnJvaW50YSwga29za2EgZWRlbGxpbmVuIGthbGlicm9pbnRpYWlrYSBvbiBub2xsYSxcbiIKKyJqb3RlbiBoaXN0b3JpYSBvbiB2aXJoZWVsbGluZW4gamEga2FsaWJyb2lubmluIHV1ZGVsbGVlbiBhbG9pdHVzIG9uXG4iCisidGFycGVlbGxpc3RhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorIkVpIHPDpMOkZGV0w6Qgc2lpcnR5bcOka2Vycm9pbnRhLCBrb3NrYSBlZGVsbGlzZXN0w6Qga2FsaWJyb2lubmlzdGEgb24gYWxsZSAiCisidnVvcm9rYXVzaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yICIKKyJvZiAlZiBzZWNvbmRzL2RheS5cbiIKKyJBZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJ5ICVmIHNlY29uZHMvZGF5XG4iCittc2dzdHIgIiIKKyJLZWxsb24gc2lpcnR5bcOkIG9saSAlLjFmIHNla3VudGlhIHZpaW1laXN0ZW4gJWQgc2VrdW5uaW4gYWlrYW5hLCAlZiBzZWt1bnRpYS8iCisidnJrIC1zaWlydHltw6RrZXJ0b2ltZXN0YVxuIgorImh1b2xpbWF0dGEuIFPDpMOkZGV0w6TDpG4gc2lpcnR5bcOka2Vycm9pbnRhICVmIHNla3VubmlsbGEvdnJrXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHNpbmNlIGxhc3QgYWRqdXN0bWVudCBpcyAlZCBzZWNvbmRzXG4iCittc2dzdHIgIkFpa2FhIGVkZWxsaXNlc3TDpCBzw6TDpGTDtnN0w6Qgb24ga3VsdW51dCAlZCBzZWt1bnRpYVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiT24gbGlzw6R0dMOkdsOkICVkIHNla3VudGlhIGphIHZpaXRhdHRhdmEgYWlrYWFuICUuNmYgc2VrdW50aWEgc2l0dGVuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgdXBkYXRpbmcgYWRqdGltZSBmaWxlIGJlY2F1c2Ugb2YgdGVzdGluZyBtb2RlLlxuIgorbXNnc3RyICJFaSBww6Rpdml0ZXTDpCBhZGp0aW1lLXRpZWRvc3RvYSwga29za2Ega8OkeXRldMOkw6RuIHRlc3RhdXN0aWxhYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIlRpZWRvc3Rvb24gJXMgb2xpc2kga2lyam9pdGV0dHUgc2V1cmFhdmFhOlxuIgorIiVzIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb3VsZCBub3Qgb3BlbiBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyBpbiBpdCAoJXMpIGZvciAiCisid3JpdGluZyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDA2IGh3Y2xvY2svaHdjbG9jay5jOjEwMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHVwZGF0ZSBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyAoJXMpIGluIGl0IgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJTaWlydHltw6Ruc8Okw6R0w7ZwYXJhbWV0cmVqYSBlaSBww6Rpdml0ZXR0eS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICJMYWl0dGVpc3Rva2VsbG9uIGFpa2EgZWkgb2xlIGtlbHZvbGxpbmVuLCBqb3RlbiBzaXTDpCBlaSB2b2kgc8Okw6R0w6TDpC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKyJFaSBhc2V0ZXRhIGtlbGxvYSwga29za2EgZWRlbGxpbmVuIGthbGlicm9pbnRpYWlrYSBvbiBub2xsYSwgam90ZW4gaGlzdG9yaWEgIgorIm9uIHZpcmhlZWxsaW5lbi4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICJUYXJ2aXR0YXZhIG11dXRvcyBvbiBhbGxlIHNla3VudGksIGpvdGVuIGVpIGFzZXRldGEga2VsbG9hLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nICVzLlxuIgorbXNnc3RyICJLw6R5dGV0w6TDpG4gcmFqYXBpbnRhYSAlcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNworIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgY2xvY2sgaW50ZXJmYWNlIGZvdW5kLlxuIgorbXNnc3RyICJLw6R5dHTDtmtlbHBvaXN0YSBrZWxsb3JhamFwaW50YWEgZWkgbMO2eXR5bnl0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkrDpHJqZXN0ZWxtw6RrZWxsb24gYXNldHVzIGVpIG9ubmlzdHUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisiWWRpbiBzw6RpbHl0dMOkw6QgbGFpdHRlaXN0b2tlbGxvbiBlcG9jaC1hcnZvYSB2YWluIEFscGhhLWtvbmVpbGxhLlxuIgorIlTDpG3DpCBod2Nsb2NrIG9uIGvDpMOkbm5ldHR5IG11dWxsZSBrb25lZWxsZSBrdWluIEFscGhhbGxlXG4iCisiKGphIHRvZGVubsOka8O2aXNlc3RpIHNpdMOkIGVpIGFqZXRhIEFscGhhc3NhIG55dCkuIFRvaW1pbnRvYSBlaSBzdW9yaXRldHR1LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBnZXQgdGhlIGVwb2NoIHZhbHVlIGZyb20gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiWXRpbWVsdMOkIGVpIHNhYWRhIGVwb2NoLWFydm9hLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAiWWRpbiBvbGV0dGFhIGVwb2NoLWFydm9rc2kgJWx1XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIHNldCB0aGUgZXBvY2ggdmFsdWUsIHlvdSBtdXN0IHVzZSB0aGUgJ2Vwb2NoJyBvcHRpb24gdG8gdGVsbCB0byB3aGF0ICIKKyJ2YWx1ZSB0byBzZXQgaXQuXG4iCittc2dzdHIgIkVwb2NoLWFydm9uIGFzZXR0YW1pc2Vrc2kgb24ga8OkeXRldHTDpHbDpCDigJ1lcG9jaOKAnS12YWxpdHNpbnRhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHRoZSBlcG9jaCB0byAlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiRWkgYXNldGV0YSBlcG9jaC1hcnZva3NpICVkIOKAkyB2YWluIGtva2VpbHUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiWXRpbWVuIGVwb2NoLWFydm9hIGVpIHZvaSBhc2V0dGFhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjkwIG1pc2MtdXRpbHMvY2FsLmM6MzQ3IG1pc2MtdXRpbHMva2lsbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiVzIOKAkyAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorImh3Y2xvY2sg4oCTIGx1a2VlIGphIGFzZXR0YWEgbGFpdHRlaXN0b2tlbGxvbiAoUlRDKVxuIgorIlxuIgorIkvDpHl0dMO2OiBod2Nsb2NrIFt0b2ltaW50b10gW3ZhbGl0c2ltZXQuLi5dXG4iCisiXG4iCisiVG9pbWlubm90OlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICBuw6R5dHTDpMOkIHTDpG3DpG4gb2hqZWVuXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIGx1a2VlIGxhaXR0ZWlzdG9rZWxsb24gamEgbsOkeXR0w6TDpCB0dWxva3NlblxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBhc2V0dGFhIGxhaXR0ZWlzdG9rZWxsb24gLS1kYXRlOmxsYSBtw6TDpHLDpHR0eXluIGFpa2FhblxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBhc2V0dGFhIGrDpHJqZXN0ZWxtw6RrZWxsb24gYWphbiBsYWl0dGVpc3Rva2VsbG9uICIKKyJtdWthYW5cbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgYXNldHRhYSBsYWl0dGVpc3Rva2VsbG9uIG55a3lpc2VlbiBqw6RyamVzdGVsbcOkbiAiCisiYWlrYWFuXG4iCisiICAgICAgIC0tc3lzdHogICAgICAgIGFzZXR0YWEgasOkcmplc3RlbG3DpGtlbGxvbiBhamFuIG55a3lpc2VuICIKKyJhaWthdnnDtmh5a2tlZW5cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgbXVrYWFuXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIHPDpMOkdMOkw6QgbGFpdHRlaXN0b2tlbGxvbiBodW9taW9pbWFhbiBzeXN0ZW1hYXR0aXNlblxuIgorIiAgICAgICAgICAgICAgICAgICAgICBwb2lra2VhbWFuIGVkZWxsaXNlbiBhc2V0dWtzZW4gdGFpIHPDpMOkZMO2biBqw6Rsa2VlblxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBuw6R5dHTDpMOkIHl0aW1lbiBlcG9jaC1hcnZvbiBsYWl0dGVpc3Rva2VsbG9sbGVcbiIKKyIgICAgICAgLS1zZXRlcG9jaCAgICAgYXNldHRhYSB5dGltZW4gZXBvY2gtYXJ2b24gbGFpdHRlaXN0b2tlbGxvbGxlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIC0tZXBvY2g6aWxsYSBtw6TDpHLDpHR0eXluIGFydm9vblxuIgorIiAgLXYgfCAtLXZlcnNpb24gICAgICBuw6R5dHTDpMOkIGh3Y2xvY2tpbiB2ZXJzaW9udW1lcm9uIHZha2lvdHVsb3N0ZWVzZWVuXG4iCisiXG4iCisiVmFsaXRzaW1ldDogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIGxhaXR0ZWlzdG9rZWxsbyBvbiBrYW5zYWludsOkbGlzZXNzw6QgYWphc3NhIChVVEMpXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIGxhaXR0ZWlzdG9rZWxsbyBvbiBwYWlrYWxsaXNlc3NhIGFqYXNzYVxuIgorIiAgLWYgfCAtLXJ0Yz1wb2xrdSAgICBrw6R5dMOkIG11dXRhIGt1aW4gdGF2YWxsaXN0YSBsYWl0ZXR0YSwgL2Rldi8uLi5cbiIKKyIgICAgICAgLS1kaXJlY3Rpc2EgICAga8OkeXTDpCBJU0EtdsOkeWzDpMOkIHN1b3JhYW4sIGVpIGxhaXR0ZWVuICVzIGthdXR0YVxuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBlaSBodW9taW9pZGEgbGFpdHRlaXN0b2tlbGxvbiB2dW90dGEsIGtvc2thIEJJT1Mgb25cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgcmlra2lcbiIKKyIgICAgICAgLS1kYXRlICAgICAgICAgYWlrYSwgam9ob24gbGFpdHRlaXN0b2tlbGxvIGFzZXRldGFhblxuIgorIiAgICAgICAtLWVwb2NoPXZ1b3NpICB2dW9zaSwgam9rYSBvbiBsYWl0dGVpc3Rva2VsbG9uXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGVwb2NoLWFydm9uIG5vbGxha29odGFcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZWkga8OkeXRldMOkIHRpZWRvc3RvYSAvZXRjL2FkanRpbWUuIFZhYXRpaSBqb2tvXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHZhbGl0c2ltZW4gLS11dGMgdGFpIC0tbG9jYWx0aW1lIGvDpHl0dMOkbWlzdMOkXG4iCisiICAgICAgIC0tYWRqZmlsZT1wb2xrdSBoaWVub3PDpMOkdMO2dGllZG9zdG9uIHBvbGt1IChvbGV0dXMgb24gL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICB0ZWUga2Fpa2tpIG11dSBwYWl0c2kgbGFpdHRlaXN0b2tlbGxvbiB0YWkgbWlua8Okw6RuXG4iCisiICAgICAgICAgICAgICAgICAgICAgIG11dW4gdmFyc2luYWluZW4gcMOkaXZpdHTDpG1pbmVuXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIHZpYW5ldHNpbnTDpHRpbGFcbiIKKyJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICBrZXJ0b28gaHdjbG9ja2lsbGUgQWxwaGFuIHR5eXBpbiAoa3MuIGh3Y2xvY2soOCkpXG4iCisiXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICIlczogQXVkaXQtasOkcmplc3RlbG3DpMOkbiB5aGRpc3TDpG1pbmVuIGVpIG9ubmlzdHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMgb3R0YWEgdmFpbiB2YWxpdHNpbWlhIGFyZ3VtZW50dGVpbmEuIEFubm9pdCAlZCBtdXV0YS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgc3BlY2lmaWVkIG11bHRpcGxlIGZ1bmN0aW9ucy5cbiIKKyJZb3UgY2FuIG9ubHkgcGVyZm9ybSBvbmUgZnVuY3Rpb24gYXQgYSB0aW1lLlxuIgorbXNnc3RyICIiCisiTW9udGEgdG9pbWludG9hIG3DpMOkcml0ZWx0eS5cbiIKKyJWYWluIHlrc2kgdG9pbWludG8gdm9pZGFhbiBzdW9yaXR0YWEga2VycmFsbGFhbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBWYWxpdHNpbWV0IC0tdXRjIGphIC0tbG9jYWx0aW1lIG92YXQgdG9pc2Vuc2EgcG9pc3N1bGtldmF0LiBBbm5vaXQgIgorIm1vbGVtbWF0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IFZhbGl0c2ltZXQgLS1hZGp1c3QgamEgLS1ub2FkamZpbGUgb3ZhdCB0b2lzZW5zYSBwb2lzc3Vsa2V2YXQuIEvDpHl0aXQgIgorIm1vbGVtcGlhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqZmlsZSBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBWYWxpdHNpbWV0IC0tYWRqZmlsZSBqYSAtLW5vYWRqZmlsZSBvdmF0IHRvaXNlbnNhIHBvaXNzdWxrZXZhdC4gS8OkeXRpdCAiCisibW9sZW1waWEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdpdGggLS1ub2FkamZpbGUsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCittc2dzdHIgIiIKKyIlczogVmFsaXRzaW1lbiAtLW5vYWRqZmlsZSBrYW5zc2Egb24ga8OkeXRldHTDpHbDpCBqb2tvIHZhbGl0c2ludGEgLS11dGMgdGFpIC0tIgorImxvY2FsdGltZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBzZXQtdG8gdGltZS4gIENhbm5vdCBzZXQgY2xvY2suXG4iCittc2dzdHIgIkVpIGvDpHl0dMO2a2VscG9pc3RhIGFpa2FhIGFzZXRldHRhdmFrc2kuIEtlbGxvYSBlaSB2b2lkYSBhc2V0dGFhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2suXG4iCittc2dzdHIgIlZhbGl0ZXR0YXZhc3RpIHZhaW4gcMOkw6Rrw6R5dHTDpGrDpCB2b2kgc8Okw6R0w6TDpCBsYWl0dGVpc3Rva2VsbG9hLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgU3lzdGVtIENsb2NrLlxuIgorbXNnc3RyICJWYWxpdGV0dGF2YXN0aSB2YWluIHDDpMOka8OkeXR0w6Rqw6Qgdm9pIHPDpMOkdMOkw6QgasOkcmplc3RlbG3DpGtlbGxvYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUgIgorImtlcm5lbC5cbiIKK21zZ3N0ciAiIgorIlZhbGl0ZXR0YXZhc3RpIHZhaW4gcMOkw6Rrw6R5dHTDpGrDpCB2b2kgc8Okw6R0w6TDpCBsYWl0dGVpc3Rva2VsbG9uIGVwb2NoLWFydm9hICIKKyJ5dGltZXNzw6QuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB0aGUgSGFyZHdhcmUgQ2xvY2sgdmlhIGFueSBrbm93biBtZXRob2QuXG4iCittc2dzdHIgIkxhaXR0ZWlzdG9rZWxsb2EgZWkgcHlzdHl0w6Qga8OkeXR0w6Rtw6TDpG4gbWlsbMOkw6RuIHR1bm5ldHVsbGEgdGF2YWxsYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIiIKKyJLw6R5dMOkIC0tZGVidWcgLXZhbGl0c2ludGEgbsOkaGTDpGtzZXNpIHlrc2l0eWlza29oZGF0IGvDpHl0dMO2dGF2YW4gZXRzaW5uw6RzdMOkLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gS0RHSFdDTEsgdG8gY2hhbmdlXG4iCittc2dzdHIgIk9kb3RldGFhbiBzaWxtdWthc3NhIEtER0hXQ0xLLWFqYW4gbXV1dHR1bWlzdGFcbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAiYWphbiBsdWtldmEgS0RHSFdDTEstaW9jdGwgZXDDpG9ubmlzdHVpIgorCisjOiBod2Nsb2NrL2tkLmM6NzUKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIGluIGxvb3AiCittc2dzdHIgImFqYW4gbHVrZXZhIEtER0hXQ0xLLWlvY3RsIGVww6Rvbm5pc3R1aSBzaWxtdWthc3NhIgorCisjOiBod2Nsb2NrL2tkLmM6ODIgaHdjbG9jay9ydGMuYzoyMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRpbWUgY2hhbmdlLlxuIgorbXNnc3RyICJBaWtha2F0a2Fpc3Ugb2RvdGV0dGFlc3NhIGFqYW4gbXV1dG9zdGEuXG4iCisKKyM6IGh3Y2xvY2sva2QuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSBmYWlsZWQgdG8gcmVhZCB0aW1lIGZyb20gJXMiCittc2dzdHIgImlvY3RsKCkgZWkgb25uaXN0dW51dCBsdWtlbWFhbiBhaWthYSBrb2h0ZWVzdGEgJXMiCisKKyM6IGh3Y2xvY2sva2QuYzoxNDAKK21zZ2lkICJpb2N0bCBLRFNIV0NMSyBmYWlsZWQiCittc2dzdHIgImlvY3RsIEtEU0hXQ0xLIGVww6Rvbm5pc3R1aSIKKworIzogaHdjbG9jay9rZC5jOjE3NgorbXNnaWQgIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIKK21zZ3N0ciAiTGFpdGV0dGEgL2Rldi90dHkxIHRhaSAvZGV2L3ZjLzEgZWkgdm9pIGF2YXRhIgorCisjOiBod2Nsb2NrL2tkLmM6MTgwCittc2dpZCAiS0RHSFdDTEsgaW9jdGwgZmFpbGVkIgorbXNnc3RyICJLREdIV0NMSy1pb2N0bCBlcMOkb25uaXN0dWkiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgInRpZWRvc3RvbiAlcyBhdmFhbWluZW4gZXDDpG9ubmlzdHVpIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHJlYWQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJhaWthYSBsdWtldmEgaW9jdGwoKSBsYWl0dGVlbGxlICVzIGVww6Rvbm5pc3R1aS5cbiIKKworIzogaHdjbG9jay9ydGMuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gJXMgdG8gY2hhbmdlXG4iCittc2dzdHIgIk9kb3RldGFhbiBzaWxtdWthc3NhIGxhaXR0ZWVuICVzIGFqYW4gbXV1dHR1bWlzdGFcbiIKKworIzogaHdjbG9jay9ydGMuYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZG9lcyBub3QgaGF2ZSBpbnRlcnJ1cHQgZnVuY3Rpb25zLiAiCittc2dzdHIgImxhaXR0ZWVsbGEgJXMgZWkgb2xlIGtlc2tleXR5c2Z1bmt0aW9pdGEuICIKKworIzogaHdjbG9jay9ydGMuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJrZWxsb24gdGlraXR5c3TDpCBvZG90dGF2YSByZWFkKCkta3V0c3UgbGFpdHRlZWxsZSAlcyBlcMOkb25uaXN0dWkiCisKKyM6IGh3Y2xvY2svcnRjLmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJrZWxsb24gdGlraXR5c3TDpCBvZG90dGF2YSBzZWxlY3QoKS1rdXRzdSBsYWl0dGVlbGxlICVzIGVww6Rvbm5pc3R1aSIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAiIgorImtlbGxvbiB0aWtpdHlzdMOkIG9kb3R0YXZhIHNlbGVjdCgpLWt1dHN1IGxhaXR0ZWVsbGUgJXMgYWlrYWthdGthaXN0aWluXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIgorbXNnc3RyICJww6Rpdml0eXNrZXNrZXl0eWtzZXQgbG9wZXR0YXZhIGlvY3RsKCkgbGFpdHRlZWxsZSAlcyBlcMOkb25uaXN0dWkiCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvbiB1cGRhdGUgaW50ZXJydXB0cyBmYWlsZWQgdW5leHBlY3RlZGx5IgorbXNnc3RyICIiCisicMOkaXZpdHlza2Vza2V5dHlrc2V0IGFsb2l0dGF2YSBpb2N0bCgpIGxhaXR0ZWVsbGUgJXMgZXDDpG9ubmlzdHVpICIKKyJvZG90dGFtYXR0b21hc3RpIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImFqYW4gYXNldHRhdmEgaW9jdGwoKSBsYWl0dGVlbGxlICVzIGVww6Rvbm5pc3R1aS5cbiIKKworIzogaHdjbG9jay9ydGMuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoJXMpIHdhcyBzdWNjZXNzZnVsLlxuIgorbXNnc3RyICJpb2N0bCglcykgb25uaXN0dWkuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICJUaWVkb3N0b24gJXMgYXZhYW1pbmVuIGVww6Rvbm5pc3R1aSIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisiWXRpbWVuIGVwb2NoLWFydm9uIG11dXR0YW1pc2Vrc2kgb24ga8OkeXRldHTDpHbDpCBMaW51eGluIOKAnXJ0Y+KAnS1sYWl0ZWFqdXJpYSAiCisibGFpdGV0aWVkb3N0b24gJXMga2F1dHRhLiBUw6Rzc8OkIGrDpHJqZXN0ZWxtw6Rzc8OkIGVpIG9sZSBreXNlaXN0w6QgdGllZG9zdG9hLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxNSBod2Nsb2NrL3J0Yy5jOjQ1OQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiTGFpdGV0dGEgJXMgZWkgdm9pIGF2YXRhIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgbGFpdHRlZWxsZSAlcyBlcMOkb25uaXN0dWkiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIndlIGhhdmUgcmVhZCBlcG9jaCAlbGQgZnJvbSAlcyB3aXRoIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorbXNnc3RyICJsdWltbWUgZXBvY2gtYXJ2b24gJWxkIGxhaXR0ZWVsdGEgJXMgaW9jdGw6bGzDpCBSVENfRVBPQ0hfUkVBRC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVwb2NoIHZhbHVlIG1heSBub3QgYmUgbGVzcyB0aGFuIDE5MDAuICBZb3UgcmVxdWVzdGVkICVsZFxuIgorbXNnc3RyICJFcG9jaC1hcnZvIGVpIHZvaSBvbGxhIHBpZW5lbXBpIGt1aW4gMTkwMC4gUHl5bnTDtiBvbGkgJWxkXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNldHRpbmcgZXBvY2ggdG8gJWxkIHdpdGggUlRDX0VQT0NIX1NFVCBpb2N0bCB0byAlcy5cbiIKK21zZ3N0ciAiYXNldGV0YWFuIGVwb2NoLWFydm9rc2kgJWxkLCBpb2N0bCBSVENfRVBPQ0hfU0VUIGxhaXR0ZWVsbGUgJXMuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGRldmljZSBkcml2ZXIgZm9yICVzIGRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCittc2dzdHIgIll0aW1lbiBsYWl0ZWFqdXJpc3NhIGxhaXR0ZWVsbGUgJXMgZWkgb2xlIGlvY3RsOsOkw6QgUlRDX0VQT0NIX1NFVC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfU0VUKSBsYWl0dGVlbGxlICVzIGVww6Rvbm5pc3R1aSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBleGVjICVzOiAlbSIKK21zZ3N0ciAiJXM6IG9oamVsbWFhICVzIGVpIHZvaSBrw6R5bm5pc3TDpMOkOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCittc2dzdHIgImFsdXN0dXNrb21lbm5vaWxsZSBlaSB2b2kgdmFyYXRhIG11aXN0aWEiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgdGltZW91dCB2YWx1ZTogJXMiCittc2dzdHIgInZpcmhlZWxsaW5lbiBhaWtha2F0a2Fpc3VhcnZvOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgInZpcmhlZWxsaW5lbiBub3BldXM6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKK21zZ2lkICJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIgorbXNnc3RyICJsaWlhbiBtb250YSB2YWlodG9laHRvaXN0YSBub3BldXR0YSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSBlcMOkb25uaXN0dWk6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogbm90IGEgY2hhcmFjdGVyIGRldmljZSIKK21zZ3N0ciAiL2Rldi8lczogZWkgb2xlIG1lcmtraWxhaXRlIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIvZGV2LyVzOiBlaSB2b2kgYXZhdGEgdmFraW9zecO2dHRlZW7DpDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiCittc2dzdHIgIiVzOiBlaSBvbGUgYXZvaW4gbHVrdWEva2lyam9pdHVzdGEgdmFydGVuIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGR1cCBwcm9ibGVtOiAlbSIKK21zZ3N0ciAiJXM6IG9uZ2VsbWEgdGllZG9zdG9rYWh2YW4ga29waW9pbm5pc3NhOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXIiCittc2dzdHIgImvDpHl0dMOkasOkIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlcnMiCittc2dzdHIgImvDpHl0dMOkasOkw6QiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQ6ICVtIgorbXNnc3RyICIlczogbHVrdTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlucHV0IG92ZXJydW4iCittc2dzdHIgIiVzOiBzecO2dHRlZW4geWxpdnVvdG8iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiS8OkeXR0w7Y6ICVzIFstOGhpTG1Vd10gWy1sIGtpcmphdXR1bWlzb2hqZWxtYV0gWy10IGFpa2FrYXRrYWlzdV0gWy1JICIKKyJhbHVzdHVza29tZW5ub3RdIFstSCBraXJqYXV0dW1pc2tvbmVdIGxpbmphbm9wZXVzLC4uLiBsaW5qYSBbdGVybS50eXlwcGldXG4iCisidGFpXHRbLWhpTG13XSBbLWwga2lyamF1dHVtaXNvaGplbG1hXSBbLXQgYWlrYWthdGthaXN1XSBbLUkgYWx1c3R1c2tvbWVubm90XSAiCisiWy1IIGtpcmphdXR1bWlza29uZV0gbGluamEgbGluamFub3BldXMsLi4uIFt0ZXJtLnR5eXBwaV1cbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MSBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbWVtb3J5IGxvdywgbG9naW4gbWF5IGZhaWxcbiIKK21zZ3N0ciAibG9naW46IG11aXN0aSB2w6RoaXNzw6QsIGtpcmphdXR1bWluZW4gdm9pIGVww6Rvbm5pc3R1YVxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAia29odGVlbGxlIHR0eWNsYXNzIGVpIHZvaSB2YXJhdGEgbXVpc3RpYSIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTMKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCittc2dzdHIgImtvaHRlZWxsZSBncnBsaXN0IGVpIHZvaSB2YXJhdGEgbXVpc3RpYSIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiS2lyamF1dHVtaW5lbiBww6TDpHR0ZWVsbGUgJXMgb3NvaXR0ZWVzdGEgJXMgZXbDpHR0eSBvbGV0dWtzZW5hLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZC5cbiIKK21zZ3N0ciAiS2lyamF1dHVtaW5lbiBww6TDpHR0ZWVsbGUgJXMgb3NvaXR0ZWVzdGEgJXMgZXbDpHR0eS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjEzMyBsb2dpbi11dGlscy9jaHNoLmM6MTE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB5b3UgKHVzZXIgJWQpIGRvbid0IGV4aXN0LlxuIgorbXNnc3RyICIlczogc2ludWEgKGvDpHl0dMOkasOkICVkKSBlaSBvbGUgb2xlbWFzc2EuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDAgbG9naW4tdXRpbHMvY2hzaC5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiBrw6R5dHTDpGrDpCDigJ0lc+KAnSBlaSBvbGUgb2xlbWFzc2EuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiIKKyIlczogdmFpbiBwYWlrYWxsaXNpYSBtZXJraW50w7Zqw6Qgdm9pIG11dXR0YWE7IGvDpHl0w6Qgc2VuIHNpamFhbiBrb21lbnRvYSB5cCUiCisicy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NiBsb2dpbi11dGlscy9jaHNoLmM6MTQyCittc2dpZCAiVW5rbm93biB1c2VyIGNvbnRleHQiCittc2dzdHIgIlR1bnRlbWF0b24ga8OkeXR0w6Rqw6R5bXDDpHJpc3TDtiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIiCisiJXM6IGvDpHl0dMOkasOkbGzDpCAlcyBlaSBvbGUgdmFsdHV1dHVzdGEgbXV1dHRhYSBrw6R5dHTDpGrDpG4gJXMgZmluZ2VyLXRpZXRvamFcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE2NCBsb2dpbi11dGlscy9jaHNoLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBzZXQgZGVmYXVsdCBjb250ZXh0IGZvciAvZXRjL3Bhc3N3ZCIKK21zZ3N0ciAiJXM6IFRpZWRvc3RvbiAvZXRjL3Bhc3N3ZCBvbGV0dXN5bXDDpHJpc3TDtsOkIGVpIHZvaSBhc2V0dGFhIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGZpbmdlciBpbmZvcm1hdGlvbiBmb3IgJXMuXG4iCittc2dzdHIgIlZhaWhkZXRhYW4ga8OkeXR0w6Rqw6RuICVzIGZpbmdlci10aWVkb3QuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxODkgbG9naW4tdXRpbHMvY2hzaC5jOjE4OCBsb2dpbi11dGlscy9sb2dpbi5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICIlczogUEFNLXZpcmhlLCBrZXNrZXl0ZXTDpMOkbjogJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxMiBsb2dpbi11dGlscy9jaHNoLmM6MjExIGxvZ2luLXV0aWxzL2xvZ2luLmM6ODI3CisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo3OSBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQwIG1vdW50L2xvbW91bnQuYzo3NDIKKyM6IG1vdW50L2xvbW91bnQuYzo3NDUKK21zZ2lkICJQYXNzd29yZDogIgorbXNnc3RyICJTYWxhc2FuYTogIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjE1IGxvZ2luLXV0aWxzL2Noc2guYzoyMTQKK21zZ2lkICJJbmNvcnJlY3QgcGFzc3dvcmQuIgorbXNnc3RyICJWw6TDpHLDpCBzYWxhc2FuYS4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJGaW5nZXItdGlldG9qYSBlaSBtdXV0ZXR0dS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWyAtZiBmdWxsLW5hbWUgXSBbIC1vIG9mZmljZSBdICIKK21zZ3N0ciAiS8OkeXR0w7Y6ICVzIFsgLWYga29rb25pbWkgXSBbIC1vIHRvaW1pc3RvIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJbIC1wIG9mZmljZS1waG9uZSBdXG4iCisiXHRbIC1oIGhvbWUtcGhvbmUgXSAiCittc2dzdHIgIiIKKyJbIC1wIHRvaW1pc3RvcHVoZWxpbiBdXG4iCisiXHRbIC1oIGtvdGlwdWhlbGluIF0iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQwMSBsb2dpbi11dGlscy9jaHNoLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJBYm9ydGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiS2Vza2V5dGV0dHkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmllbGQgaXMgdG9vIGxvbmcuXG4iCittc2dzdHIgImtlbnR0w6Qgb24gbGlpYW4gcGl0a8OkLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIm1lcmtraSDigJ0lY+KAnSBlaSBvbGUgc2FsbGl0dHUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiT2hqYXVzbWVya2tlasOkIGVpIHNhbGxpdGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIkZpbmdlci10aWV0b2phICpFSSogbXV1dGV0dHUuIFlyaXTDpCBtecO2aGVtbWluIHV1ZGVsbGVlbi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiRmluZ2VyLXRpZXRvamEgbXV1dGV0dGlpbi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBzaGVsbCBvZiAlc1xuIgorbXNnc3RyICIlczoga8OkeXR0w6Rqw6RsbMOkICVzIGVpIG9sZSB2YWx0dXV0dXN0YSB2YWlodGFhIGvDpHl0dMOkasOkbiAlcyBrdW9ydGFcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogVmFsbGl0c2V2YSBVSUQgZWkgdMOkc23DpMOkIG11dXRldHRhdmFuIGvDpHl0dMOkasOkbiBVSUQ6aGVuLCBrdW9yZW4gdmFpaHRvICIKKyJlc3RldHR5XG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiVzOiBLdW9yaSBlaSBvbGUgdGllZG9zdG9zc2EgL2V0Yy9zaGVsbHMsIGt1b3JlbiB2YWlodG8gZXbDpHR0eVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiVmFpaGRldGFhbiBrw6R5dHTDpGrDpG4gJXMga3VvcmkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjIKK21zZ2lkICJOZXcgc2hlbGwiCittc2dzdHIgIlV1c2kga3VvcmkiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIkt1b3J0YSBlaSB2YWloZGV0dHUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiS3VvcnRhICpFSSogdmFpaGRldHR1LiBZcml0w6QgbXnDtmhlbW1pbiB1dWRlbGxlZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgY2hhbmdlZC5cbiIKK21zZ3N0ciAiS3VvcmkgdmFpaGRldHR1LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIkvDpHl0dMO2OiAlcyBbIC1zIGt1b3JpIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsga8OkeXR0w6Rqw6R0dW5udXMgXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiBrdW9yaSBvbiBhbm5ldHRhdmEgcG9sa3VpbmVlbi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczog4oCdJXPigJ0gZWkgb2xlIG9sZW1hc3NhLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGV4ZWN1dGFibGUuXG4iCittc2dzdHIgIiVzOiDigJ0lc+KAnSBlaSBvbGUga8OkeW5uaXN0ZXR0w6R2w6QuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiVzOiBtZXJra2nDpCDigJ0lY+KAnSBlaSBzYWxsaXRhLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogT2hqYXVzbWVya2tlasOkIGVpIHNhbGxpdGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzUgbG9naW4tdXRpbHMvY2hzaC5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiVmFyb2l0dXM6IOKAnSVz4oCdIGVpIG9sZSBsaXN0YXR0dSB0aWVkb3N0b3NzYSAvZXRjL3NoZWxscy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiVzOiDigJ0lc+KAnSBlaSBvbGUgbGlzdGF0dHVuYSB0aWVkb3N0b3NzYSAvZXRjL3NoZWxscy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IFZhbGl0c2luIC1sIG7DpHl0dMOkw6QgbGlzdGFuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSAlcyAtbCB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiS29tZW50byAlcyAtbCBuw6R5dHTDpMOkIGxpc3Rhbi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBrbm93biBzaGVsbHMuXG4iCittc2dzdHIgIkVpIHR1bm5ldHR1amEga3VvcmlhLlxuIgorCisjOiBsb2dpbi11dGlscy9pc2xvY2FsLmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIG9wZW4gJXMgZm9yIHJlYWRpbmcsIGV4aXRpbmcuIgorbXNnc3RyICJUaWVkb3N0b2EgJXMgZWkgdm9pIGF2YXRhIGx1a3VhIHZhcnRlbiwgcG9pc3R1dGFhbi4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzoxNDgKK21zZ2lkICJ1c2FnZTogbGFzdCBbLSNdIFstZiBmaWxlXSBbLXQgdHR5XSBbLWggaG9zdG5hbWVdIFt1c2VyIC4uLl1cbiIKK21zZ3N0ciAiIgorImvDpHl0dMO2OiBsYXN0IFstI10gWy1mIHRpZWRvc3RvXSBbLXQgdHR5XSBbLWgga29uZW5pbWldIFtrw6R5dHTDpGrDpCAuLi5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozMDIKK21zZ2lkICIgIHN0aWxsIGxvZ2dlZCBpbiIKK21zZ3N0ciAiICBlZGVsbGVlbiBraXJqYXV0dW5lZW5hIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJ3dG1wIGJlZ2lucyAlcyIKK21zZ3N0ciAiIgorIlxuIgorInd0bXAgYWxrYWEgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozODAgbG9naW4tdXRpbHMvbGFzdC5jOjM5OCBsb2dpbi11dGlscy9sYXN0LmM6NDQ5Cittc2dpZCAibGFzdDogbWFsbG9jIGZhaWx1cmUuXG4iCittc2dzdHIgImxhc3Q6IG1hbGxvYy12aXJoZS5cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQyNQorbXNnaWQgImxhc3Q6IGdldGhvc3RuYW1lIgorbXNnc3RyICJsYXN0OiBnZXRob3N0bmFtZSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW50ZXJydXB0ZWQgJTEwLjEwcyAlNS41cyBcbiIKK21zZ3N0ciAiIgorIlxuIgorImtlc2tleXRldHR5ICUxMC4xMHMgJTUuNXMgXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiBjYW4ndCByZW9wZW4gdHR5OiAlcyIKK21zZ3N0ciAiVkFLQVZBQTogcMOkw6R0ZXR0w6QgZWkgdm9pIGF2YXRhIHV1ZGVsbGVlbjogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogJXMgaXMgbm90IGEgdGVybWluYWwiCittc2dzdHIgIiVzIGVpIG9sZSBsb2hrb2xhaXRlIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIzOAorbXNnaWQgIkZBVEFMOiBiYWQgdHR5IgorbXNnc3RyICJWQUtBVkFBOiB2aXJoZWVsbGluZW4gcMOkw6R0ZSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgImxvZ2luOiAtaCBvbiB2YWluIHDDpMOka8OkeXR0w6Rqw6RsbGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgImvDpHl0dMO2OiBsb2dpbiBbLWZwXSBba8OkeXR0w6Rqw6RuaW1pXVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBpbml0aWFsaXplIFBBTTogJXMiCittc2dzdHIgIlBBTWlhIGVpIHZvaXR1IGFsdXN0YWE6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgInR1bm51czogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJFUMOET05OSVNUVU5VVCBLw4RZVFTDhErDhE4gJTMkcyBLSVJKQVVUVU1JTkVOICUxJGQgT1NPSVRURUVTVEEgJTIkcywgJTQkcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkxvZ2luIGluY29ycmVjdFxuIgorIlxuIgorbXNnc3RyICIiCisiS2lyamF1dHVtaW5lbiBlcMOkb25uaXN0dWlcbiIKKyJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIiIKKyJMSUlBTiBNT05UQSAoJTEkZCkgS8OEWVRUw4RKw4ROICUzJHMgS0lSSkFVVFVNSVNZUklUWVNUw4QgT1NPSVRURUVTVEEgJTIkcywgJTQkcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJFUMOET05OSVNUVU5VVCBLw4RZVFTDhErDhE4gJTIkcyBJU1RVTlRPIE9TT0lUVEVFU1RBICUxJHMsICUzJHMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIktpcmphdXR1bWluZW4gZXDDpG9ubmlzdHVpXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkwIGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk3IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIgorbXNnc3RyICIiCisiXG4iCisiSXN0dW5ub24gYWxvaXR1c29uZ2VsbWEsIGtlc2tleXR5cy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiS8OkeXR0w6Rqw6RuaW1pIG9uIE5VTEwgZnVua3Rpb3NzYSAlcywgcml2aWxsw6QgJWQuIEtlc2tleXR5cy4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdXNlciBuYW1lIFwiJXNcIiBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICJWaXJoZWVsbGluZW4ga8OkeXR0w6Rqw6RuaW1pIOKAnSVz4oCdIGZ1bmt0aW9zc2EgJXMsIHJpdmlsbMOkICVkLiBLZXNrZXl0eXMuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJsb2dpbjogTXVpc3RpIGxvcHVzc2FcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICJWaXJoZWVsbGluZW4ga8OkeXR0w6Rqw6RuaW1pIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb2dpbiByZWZ1c2VkIG9uIHRoaXMgdGVybWluYWwuXG4iCittc2dzdHIgIkvDpHl0dMOkasOkbiAlcyBraXJqYXV0dW1pbmVuIGh5bMOkdHR5IHTDpGxsw6QgcMOkw6R0dGVlbGzDpC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiS8OEWVRUw4RKw4ROICVzIEtJUkpBVVRVTUlORU4gSFlMw4RUVElJTiBPU09JVFRFRVNUQSAlcywgUMOEw4RUVEVFTEzDhCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiCittc2dzdHIgIkvDhFlUVMOESsOETiAlcyBLSVJKQVVUVU1JTkVOIEhZTMOEVFRJSU4gUMOEw4RUVEVFTEzDhCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIlZpcmhlZWxsaW5lbiBraXJqYXV0dW1pbmVuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgIkvDhFlUVMOESsOETiAlMiRzIE1PREVFTUlZSFRFWVMgUMOEw4RUVEVFTEzDhCAlMSRzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIgorbXNnc3RyICJQw4TDhEvDhFlUVMOESsOETiBLSVJKQVVUVU1JTkVOIFDDhMOEVFRFRUxMw4QgJXMgT1NPSVRURUVTVEEgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIgorbXNnc3RyICJQw4TDhEvDhFlUVMOESsOETiBLSVJKQVVUVU1JTkVOIFDDhMOEVFRFRUxMw4QgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwNQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyBGUk9NICVzIgorbXNnc3RyICJLw4RZVFTDhErDhE4gJTIkcyBLSVJKQVVUVU1JTkVOIFDDhMOEVFRFRUxMw4QgJTEkcyBPU09JVFRFRVNUQSAlMyRzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIkvDhFlUVMOESsOETiAlMiRzIEtJUkpBVVRVTUlORU4gUMOEw4RUVEVFTEzDhCAlMSRzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbmV3IG1haWwuXG4iCittc2dzdHIgIlNpbnVsbGUgb24gdXV0dGEgcG9zdGlhLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAiU2ludWxsZSBvbiBwb3N0aWEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogZmFpbHVyZSBmb3JraW5nOiAlcyIKK21zZ3N0ciAibG9naW46IHZpcmhlIGhhYXJhdXRldHRhZXNzYTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyMgorIywgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiVElPQ1NDVFRZIGVww6Rvbm5pc3R1aTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgZXDDpG9ubmlzdHVpIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICJFaSBoYWtlbWlzdG9hICVzIVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9nZ2luZyBpbiB3aXRoIGhvbWUgPSBcIi9cIi5cbiIKK21zZ3N0ciAiS2lyamF1ZHV0YWFuIGvDpHl0dMOkZW4ga290aWhha2VtaXN0b25hIOKAnS/igJ0uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgImxvZ2luOiBlaSBtdWlzdGlhIGt1b3Jpc2tyaXB0aWxsZS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBrdW9yaXNrcmlwdGnDpCBlaSB2b2l0dSBrw6R5bm5pc3TDpMOkOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBlaSBrdW9ydGE6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyIlcywga2lyamF1dHVtaW5lbjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJ0dW5udXMgYWl2YW4gbGlpYW4gcGl0a8OkLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICJOSU1JIGxpaWFuIHBpdGvDpCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgInR1bm51a3NldCBlaXbDpHQgdm9pIGFsa2FhIG1lcmtpbGzDpCDigJ0t4oCdLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgImxpaWFuIG1vbnRhIHBlcsOka2vDpGlzdMOkIHJpdmludmFpaHRvYS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIxCittc2dpZCAiRVhDRVNTSVZFIGxpbmVmZWVkcyIKK21zZ3N0ciAiTElJS0FBIHJpdmludmFpaHRvamEiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJLaXJqYXV0dW1pbmVuIGFpa2FrYXRrYWlzdGlpbiAlZCBzZWt1bm5pbiBqw6Rsa2VlblxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBsb2dpbjogJS4qcyAiCittc2dzdHIgIkVkZWxsaW5lbiBraXJqYXV0dW1pbmVuOiAlLipzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnJvbSAlLipzXG4iCittc2dzdHIgIm9zb2l0dGVlc3RhICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAicMOkw6R0dGVlbHTDpCAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorbXNnc3RyICJFUMOET05OSVNUVU5VVCBLSVJKQVVUVU1JTkVOIE9TT0lUVEVFU1RBICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICJFUMOET05OSVNUVU5VVCBLSVJKQVVUVU1JTkVOIFDDhMOEVFRFRUxUw4QgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgRlJPTSAlcywgJXMiCittc2dzdHIgIiVkIEVQw4RPTk5JU1RVTlVUVEEgS0lSSkFVVFVNSVNUQSBPU09JVFRFRVNUQSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBPTiAlcywgJXMiCittc2dzdHIgIiVkIEVQw4RPTk5JU1RVTlVUVEEgS0lSSkFVVFVNSVNUQSBQw4TDhFRURUVMVMOEICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgImlzIHlcbiIKK21zZ3N0ciAib24geVxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgblxuIgorbXNnc3RyICJvbiBuXG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IG1lc2cgW3kgfCBuXVxuIgorbXNnc3RyICJrw6R5dHTDtjogbWVzZyBbeSB8IG5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjk5Cittc2dpZCAibmV3Z3JwOiBXaG8gYXJlIHlvdT8iCittc2dzdHIgIm5ld2dycDogS3VrYSBzaW7DpCBvbGV0PyIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTA3IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyMQorbXNnaWQgIm5ld2dycDogc2V0Z2lkIgorbXNnc3RyICJuZXdncnA6IHNldGdpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIm5ld2dycDogUnlobcOkw6QgZWkgb2xlLiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiBMdXBhIGV2w6R0dHkiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIkVpIGt1b3J0YSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCittc2dzdHIgIkvDpHl0dMO2OiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOm1tfCttaW51dXRpdF1cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgIlNhbW11dHVzdG9pbWludG8ga2Vza2V5dGV0dHkiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPbmx5IHJvb3QgY2FuIHNodXQgYSBzeXN0ZW0gZG93bi5cbiIKK21zZ3N0ciAiJXM6IFZhaW4gcm9vdCB2b2kgc2FtbXV0dGFhIGrDpHJqZXN0ZWxtw6RuLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGF0IG11c3QgYmUgdG9tb3Jyb3csIGNhbid0IHlvdSB3YWl0IHRpbGwgdGhlbj9cbiIKK21zZ3N0ciAiVHVvbiB0w6R5dHl5IG9sbGEgaHVvbWVubmEsIGV0a8O2IHZvaSBvZG90dGFhIHNpaWhlbiBhc3RpP1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMxMAorbXNnaWQgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCittc2dzdHIgInlsbMOkcGl0b2EgdmFydGVuOyBtYXJzLCBtYXJzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMzOQorbXNnaWQgIlRoZSBzeXN0ZW0gaXMgYmVpbmcgc2h1dCBkb3duIHdpdGhpbiA1IG1pbnV0ZXMiCittc2dzdHIgIkrDpHJqZXN0ZWxtw6Qgc2FtbXV0ZXRhYW4gNSBtaW51dXRpbiBrdWx1dHR1YSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNDMKK21zZ2lkICJMb2dpbiBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4iCittc2dzdHIgIktpcmphdXR1bWluZW4gb24gc2VuIHZ1b2tzaSBlc3RldHR5IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgInV1ZGVsbGVlbmvDpHlubmlzdGkgJXM6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoYWx0ZWQgYnkgJXM6ICVzIgorbXNnc3RyICJzYW1tdXR0aSAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDMyCittc2dpZCAiIgorIlxuIgorIldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iCittc2dzdHIgIiIKKyJcbiIKKyJNaWtzaSBvbGVuIGVkZWxsZWVuIGVsb3NzYSB1dWRlbGxlZW5rw6R5bm5pc3R5a3NlbiBqw6Rsa2Vlbj8iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDM0Cittc2dpZCAiIgorIlxuIgorIk5vdyB5b3UgY2FuIHR1cm4gb2ZmIHRoZSBwb3dlci4uLiIKK21zZ3N0ciAiIgorIlxuIgorIlZpcnJhbiB2b2kgbnl0IGthdGthaXN0YS4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBrZXJuZWwgcG93ZXItb2ZmIGZhY2lsaXR5Li4uXG4iCittc2dzdHIgIkt1dHN1dGFhbiB5dGltZW4gdmlycmFua2F0a2Fpc3V0b2ltaW50b2EuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcG93ZXJpbmcgb2ZmXHQlc1xuIgorbXNnc3RyICJWaXJoZSB2aXJyYW5rYXRrYWlzdXNzYVx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAiS8OkeW5uaXN0ZXTDpMOkbiBvaGplbG1hIOKAnSVz4oCdLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGV4ZWN1dGluZ1x0JXNcbiIKK21zZ3N0ciAiVmlyaGUga8OkeW5uaXN0ZXR0w6Rlc3PDpFx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiS0lJUkVFTExJU1TDhDogeWxlaXNsw6RoZXR5c3ZpZXN0aSBrw6R5dHTDpGrDpGx0w6QgJXM6IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBob3VycyAlZCBtaW51dGVzIgorbXNnc3RyICJKw6RyamVzdGVsbcOkIHNhbW11dSAlZCB0dW5uaW4sICVkIG1pbnV1dGluIGt1bHV0dHVhIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAiSsOkcmplc3RlbG3DpCBzYW1tdXUgMSB0dW5uaW4gamEgJWQgbWludXV0aW4ga3VsdXR0dWEiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiSsOkcmplc3RlbG3DpCBzYW1tdXUgJWQgbWludXV0aW4ga3VsdXR0dWFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBtaW51dGVcbiIKK21zZ3N0ciAiSsOkcmplc3RlbG3DpCBzYW1tdXUgMSBtaW51dXRpbiBrdWx1dHR1YVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAiSsOkcmplc3RlbG3DpCBzYW1tdXUgVsOETElUVMOWTcOEU1RJIVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICJcdC4uLiAlcyAuLi5cbiIKK21zZ3N0ciAiXHQuLi4gJXMgLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTcwCittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHN3YXBvZmYuIFNocnVnISIKK21zZ3N0ciAiSGFhcmF1dHRhbWluZW4ga29tZW50b2Egc3dhcG9mZiB2YXJ0ZW4gZWkgb25uaXN0dS4gQWl2YW4gc2FtYSEiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTc4Cittc2dpZCAiQ2Fubm90IGV4ZWMgc3dhcG9mZiwgaG9waW5nIHVtb3VudCB3aWxsIGRvIHRoZSB0cmljay4iCittc2dzdHIgIktvbWVudG9hIHN3YXBvZmYgZWkgdm9pIGvDpHlubmlzdMOkw6QsIHRvaXZvdHRhdmFzdGkgdW1vdW50IGhvaXRhYSBhc2lhbi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiIgorIkhhYXJhdXR0YW1pbmVuIGtvbWVudG9hIHVtb3VudCB2YXJ0ZW4gZWkgb25uaXN0dSwgeXJpdGV0w6TDpG4gbWFudWFhbGlzZXN0aS4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICJPaGplbG1hYSAlcyBlaSB2b2kga8OkeW5uaXN0w6TDpCwgeXJpdGV0w6TDpG4ga8OkeW5uaXN0w6TDpCB1bW91bnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjEwCittc2dpZCAiQ2Fubm90IGV4ZWMgdW1vdW50LCBnaXZpbmcgdXAgb24gdW1vdW50LiIKK21zZ3N0ciAiT2hqZWxtYWEgdW1vdW50IGVpIHZvaSBrw6R5bm5pc3TDpMOkLCBsdW92dXRhYW4gaXJyb3R1c3lyaXR5a3Nlc3TDpC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjE1Cittc2dpZCAiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIgorbXNnc3RyICJJcnJvdGV0YWFuIGrDpGxqZWxsw6Qgb2xldmF0IHRpZWRvc3RvasOkcmplc3RlbG3DpHQuLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iCittc2dzdHIgInNodXRkb3duOiBMYWl0ZXR0YSAlcyBlaSB2b2l0dSBpcnJvdHRhYTogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzMgorbXNnaWQgIkJvb3RpbmcgdG8gc2luZ2xlIHVzZXIgbW9kZS5cbiIKK21zZ3N0ciAiS8OkeW5uaXN0ZXTDpMOkbiB5aGRlbiBrw6R5dHTDpGrDpG4gdGlsYWFuLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTM2Cittc2dpZCAiZXhlYyBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAieWhkZW4ga8OkeXR0w6Rqw6RuIHRpbGFuIGt1b3JlbiBrw6R5bm5pc3R5cyBlcMOkb25uaXN0dWlcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjE0MAorbXNnaWQgImZvcmsgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgInloZGVuIGvDpHl0dMOkasOkbiB0aWxhbiBrdW9yZW4gaGFhcmF1dHRhbWluZW4gZXDDpG9ubmlzdHVpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMDgKK21zZ2lkICJlcnJvciBvcGVuaW5nIGZpZm9cbiIKK21zZ3N0ciAidmlyaGUgYXZhdHRhZXNzYSBmaWZvYVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjEyCittc2dpZCAiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIKK21zZ3N0ciAidmlyaGUgYXNldGV0dGFlc3NhIOKAnWNsb3NlLW9uLWV4ZWPigJ0gbGFpdHRlZWxsZSAvZGV2L2luaXRjdGwiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNTkKK21zZ2lkICJlcnJvciBydW5uaW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJ2aXJoZSBhamV0dGFlc3NhIGZpbmFscHJvZ2lhXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNjMKK21zZ2lkICJlcnJvciBmb3JraW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJ2aXJoZSBoYWFyYXV0ZXR0YWVzc2EgZmluYWxwcm9naWFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0NQorbXNnaWQgIiIKKyJcbiIKKyJXcm9uZyBwYXNzd29yZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlbDpMOkcsOkIHNhbGFzYW5hLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDE4Cittc2dpZCAibHN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAicG9sdW4gdGlsYW4gbHVrZW1pbmVuIGVww6Rvbm5pc3R1aVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2Cittc2dpZCAic3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJwb2x1biB0aWxhbiBsdWtlbWluZW4gZXDDpG9ubmlzdHVpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MzQKK21zZ2lkICJvcGVuIG9mIGRpcmVjdG9yeSBmYWlsZWRcbiIKK21zZ3N0ciAiaGFrZW1pc3RvbiBhdmFhbWluZW4gZXDDpG9ubmlzdHVpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcGF3bmluZzogXCIlc1wiIHRvbyBmYXN0OiBxdWVuY2hpbmcgZW50cnlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAiaGFhcmF1dHRhbWluZW4gZXDDpG9ubmlzdHVpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NDAgdGV4dC11dGlscy9tb3JlLmM6MTY2MworbXNnaWQgImV4ZWMgZmFpbGVkXG4iCittc2dzdHIgImvDpHlubmlzdHlzIGVww6Rvbm5pc3R1aVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0Cittc2dpZCAiY2Fubm90IG9wZW4gaW5pdHRhYlxuIgorbXNnc3RyICJ0aWVkb3N0b2EgaW5pdHRhYiBlaSB2b2kgYXZhdGFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgIlRFUk0tbXV1dHR1amFhIGVpIG9sZSB0YWkgcMOkw6R0dGVlbiB0aWxhYSBlaSB2b2kgbHVrZWFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjkzOAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBzdG9wcGluZyBzZXJ2aWNlOiBcIiVzXCJcbiIKK21zZ3N0ciAidmlyaGUgcHlzw6R5dGV0dMOkZXNzw6QgcGFsdmVsdWE6IOKAnSVz4oCdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICJQeXPDpHl0ZXTDpMOkbiBwYWx2ZWx1YTog4oCdJXPigJ1cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEwNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJWaXJoZSBhamV0dGFlc3NhIG9oamVsbWFhOiDigJ0lc+KAnVxuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAibGlpYW4gbW9udGEgaW92OnTDpCAobXV1dGEga29vZGlhIHRpZWRvc3Rvc3NhIHdhbGwvdHR5bXNnLmMpIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJleGNlc3NpdmVseSBsb25nIGxpbmUgYXJnIgorbXNnc3RyICJsaWlhbiBwaXRrw6Qgcml2aWFyZ3VtZW50dGkiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAiaGFhcmF1dHRhbWluZW4gZWkgb25uaXN0dSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICJmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiBWSVJIRUVMTElORU4gVklSSEUiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBzYWxhc2FuYXRpZWRvc3RvIG9uIHZhcmF0dHUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBncm91cCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiByeWhtw6R0aWVkb3N0byBvbiB2YXJhdHR1LlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgJXMgZmlsZSBpcyBidXN5ICglcyBwcmVzZW50KVxuIgorbXNnc3RyICIlczogdGllZG9zdG8gJXMgb24gdmFyYXR0dSAoJXMgb24gb2xlbWFzc2EpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiVzOiB0aWVkb3N0b2EgJXMgZWkgdm9pIGxpbmtpdHTDpMOkOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBnZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiBUaWVkb3N0b24gJXMgeW1ww6RyaXN0w7bDpCBlaSB2b2kgaGFrZWEiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IFRpZWRvc3RvbiAlcyB5bXDDpHJpc3TDtsOkIGVpIHZvaSBhc2V0dGFhIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCB1bmxvY2sgJXM6ICVzICh5b3VyIGNoYW5nZXMgYXJlIHN0aWxsIGluICVzKVxuIgorbXNnc3RyICIiCisiJXM6IHRpZWRvc3RvbiAlcyBsdWtpdHVzdGEgZWkgdm9pIHBvaXN0YWE6ICVzIChtdXV0b2tzZXNpIG92YXQgZWRlbGxlZW4gIgorInRpZWRvc3Rvc3NhICVzKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgZm9ya1xuIgorbXNnc3RyICIlczogSGFhcmF1dHRhbWluZW4gZWkgb25uaXN0dVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiJXM6ICVzIG11dXR0dW1hdG9uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIgorbXNnc3RyICIlczogbXV1dG9rc2lhIGVpIHRlaHR5XG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgZ3JvdXBzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJUw6Rzc8OkIGrDpHJqZXN0ZWxtw6Rzc8OkIGvDpHl0ZXTDpMOkbiB2YXJqb3J5aG1pw6QuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJUw6Rzc8OkIGrDpHJqZXN0ZWxtw6Rzc8OkIGvDpHl0ZXTDpMOkbiB2YXJqb3NhbGFzYW5vamEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV291bGQgeW91IGxpa2UgdG8gZWRpdCAlcyBub3cgW3kvbl0/ICIKK21zZ3N0ciAiSGFsdWF0a28gbXVva2F0YSB0aWVkb3N0b2EgJXMgbnl0IFt5L25dPyAiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICJrw6R5dHTDtjogJXMgW3RpZWRvc3RvXVxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBvcGVuIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogdsOkbGlhaWthaXN0aWVkb3N0b2EgZWkgdm9pIGF2YXRhLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyb2FkY2FzdCBNZXNzYWdlIGZyb20gJXNAJXMiCittc2dzdHIgIllsZWlzbMOkaGV0eXN2aWVzdGkga8OkeXR0w6Rqw6RsdMOkICVzQCVzIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3aWxsIG5vdCByZWFkICVzIC0gdXNlIHN0ZGluLlxuIgorbXNnc3RyICIlczogZWkgbHVldGEgdGllZG9zdG9hICVzIOKAkyBrw6R5dMOkIHZha2lvc3nDtnRldHTDpC5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiJXM6IHRpZWRvc3RvYSAlcyBlaSB2b2kgbHVrZWEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHN0YXQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiB2w6RsaWFpa2Fpc3RpZWRvc3RvbiB0aWxhYSBlaSB2b2kgbHVrZWEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiB2w6RsaWFpa2Fpc3RpZWRvc3RvYSBlaSB2b2kgYXZhdGEuXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZGF5IHZhbHVlOiB1c2UgMS0lZCIKK21zZ3N0ciAidmlyaGVlbGxpbmVuIHDDpGl2w6RuIGFydm86IGvDpHl0w6QgMS0lZCIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjgKK21zZ2lkICJpbGxlZ2FsIG1vbnRoIHZhbHVlOiB1c2UgMS0xMiIKK21zZ3N0ciAidmlyaGVlbGxpbmVuIGt1dWthdWRlbiBhcnZvOiBrw6R5dMOkIDEtMTIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzcyCittc2dpZCAiaWxsZWdhbCB5ZWFyIHZhbHVlOiB1c2UgMS05OTk5IgorbXNnc3RyICJ2aXJoZWVsbGluZW4gdnVvZGVuIGFydm86IGvDpHl0w6QgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJXMgJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIgorbXNnc3RyICJrw6R5dHTDtjogY2FsIFstMTNzbWp5Vl0gW1tbcMOkaXbDpF0ga3V1a2F1c2ldIHZ1b3NpXVxuIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbK2Zvcm1hdF0gW2RheSBtb250aCB5ZWFyXVxuIgorbXNnc3RyICJrw6R5dHTDtjogJXMgWyttdW90b10gW3DDpGl2w6Qga3V1a2F1c2kgdnVvc2ldXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyNTAKK21zZ2lkICJTdC4gVGliJ3MgRGF5IgorbXNnc3RyICJTdC4gVGliJ3MgRGF5IgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzo1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAibGFpdGV0dGEgJXMgZWkgdm9pIGF2YXRhIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzXG4iCittc2dzdHIgIiVzOiB0dW50ZW1hdG9uIHNpZ25hYWxpICVzXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBwcm9jZXNzIFwiJXNcIlxuIgorbXNnc3RyICIlczogcHJvc2Vzc2lhIOKAnSVz4oCdIGVpIGzDtnlkeVxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzOyB2YWxpZCBzaWduYWxzOlxuIgorbXNnc3RyICIlczogdHVudGVtYXRvbiBzaWduYWFsaSAlczsga2Vsdm9sbGlzZXQgc2lnbmFhbGl0OlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorbXNnc3RyICJrw6R5dHTDtjogJXMgWyAtcyBzaWduYWFsaSB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHNpZ25hYWxpIF1cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiBvcGVubG9nOiBwYXRobmFtZSB0b28gbG9uZ1xuIgorbXNnc3RyICJ0dW5udXMgYWl2YW4gbGlpYW4gcGl0a8OkLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQ6ICVzLlxuIgorbXNnc3RyICJMb2hrb0tva286ICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiAlczogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogJXM6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gZmFjaWxpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogdHVudGVtYXRvbiBhcHVuZXV2b24gbmltaTogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBwcmlvcml0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiB0dW50ZW1hdG9uIHByaW9yaXRlZXRpbiBuaW1pOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisia8OkeXR0w7Y6IGxvZ2dlciBbLWlzXSBbLWYgdGllZG9zdG9dIFstcCBwcmldIFstdCB0YWddIFstdSBwaXN0b2tlXSAiCisiWyB2aWVzdGkgLi4uIF1cbiIKKworIzogbWlzYy11dGlscy9sb29rLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb29rIFstZGZhXSBbLXQgY2hhcl0gc3RyaW5nIFtmaWxlXVxuIgorbXNnc3RyICJrw6R5dHTDtjogbG9vayBbLWRmYV0gWy10IG1lcmtraV0gbWVya2tpam9ubyBbdGllZG9zdG9dXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwNSBtaXNjLXV0aWxzL21jb29raWUuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiVGllZG9zdG9hICVzIGVpIHZvaXR1IGF2YXRhXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwOSBtaXNjLXV0aWxzL21jb29raWUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIKK21zZ3N0ciAiVGllZG9zdG9zdGEgJTIkcyBzYWF0aWluICUxJGQgdGF2dWFcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0Cittc2dpZCAib3V0IG9mIG1lbW9yeT8iCittc2dzdHIgIm11aXN0aSBsb3B1c3NhPyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgc3ltbGluazogJXMiCittc2dzdHIgImlvY3RsKCkgZWkgb25uaXN0dW51dCBsdWtlbWFhbiBhaWthYSBrb2h0ZWVzdGEgJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyMzEgbWlzYy11dGlscy9uYW1laS5jOjI1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IHN0YXQgJyVzJyIKK21zZ3N0ciAibGFpdHRlZW4gJXMgdGlsYWEgZWkgdm9pIGx1a2VhIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgIiIKKyJcbiIKKyJLw6R5dHTDtjogJXMgW3ZhbGl0c2ltZXRdIHBvbGt1IFtwb2xrdSAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyJWYWxpdHNpbWV0OlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAteCwgLS1tb3VudHBvaW50cyAgIHNob3cgbW91bnQgcG9pbnQgZGlyZWN0b3JpZXMgd2l0aCBhICdEJ1xuIgorIiAtbSwgLS1tb2RlcyAgICAgICAgIHNob3cgdGhlIG1vZGUgYml0cyBvZiBlYWNoIGZpbGVcbiIKKyIgLW8sIC0tb3duZXJzICAgICAgICBzaG93IG93bmVyIGFuZCBncm91cCBuYW1lIG9mIGVhY2ggZmlsZVxuIgorIiAtbCwgLS1sb25nICAgICAgICAgIHVzZSBhIGxvbmcgbGlzdGluZyBmb3JtYXQgKC1tIC1vIC12KSBcbiIKKyIgLW4sIC0tbm9zeW1saW5rcyAgICBkb24ndCBmb2xsb3cgc3ltbGlua3NcbiIKKyIgLXYsIC0tdmVydGljYWwgICAgICB2ZXJ0aWNhbCBhbGlnbiBvZiBtb2RlcyBhbmQgb3duZXJzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIG5hbWVpKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisiTGlzw6R0aWV0b2phIG1hbnVhYWxpc2l2dWxsYSBuYW1laSgxKS5cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQ6ICVzIgorbXNnc3RyICJ0aWVkb3N0b24gJXMgdGlsYWEgZWkgdm9pIGx1a2VhIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBleGNlZWRlZCBsaW1pdCBvZiBzeW1saW5rcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiVzOiBtdWlzdGkgbG9wdXNzYVxuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZW5hbWluZyAlcyB0byAlcyBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiVzOiB1dWRlbGxlZW5uaW1lw6RtaW5lbiAlcyDihpIgJXMgZXDDpG9ubmlzdHVpOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAia8OkeXR0w7Y6ICVzIGzDpGhkZSBrb2hkZSB0aWVkb3N0b3QuLi5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGAlcycgaXMgYSBsaW5rLlxuIgorIlVzZSBgJXMgW29wdGlvbnNdICVzJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LlxuIgorIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIKK21zZ3N0ciAiIgorIlZhcm9pdHVzOiDigJ0lc+KAnSBvbiBsaW5ra2kuXG4iCisiS8OkeXTDpCDigJ0lcyBbdmFsaXRzaW1ldF0gJXPigJ0gam9zIHRvZGVsbGEgaGFsdWF0IGvDpHl0dMOkw6Qgc2l0w6QuXG4iCisiU2tyaXB0acOkIGVpIGvDpHlubmlzdGV0dHkuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAia8OkeXR0w7Y6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFt0aWVkb3N0b11cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiU2tyaXB0aSBrw6R5bm5pc3RldHR5LCB0aWVkb3N0byBvbiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3IgJWQ6ICVzXG4iCittc2dzdHIgIiVzOiBraXJqb2l0dXN2aXJoZSAlZDogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQgb24gJXMiCittc2dzdHIgIlNrcmlwdGkga8OkeW5uaXN0ZXR0eSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczoga2lyam9pdHVzdmlyaGU6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IHRpZWRvc3RvbGxlICVzIGVpIGzDtnlkeSBsYWl0ZXR0YVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2NyaXB0IGRvbmUgb24gJXMiCittc2dzdHIgIiIKKyJcbiIKKyJTa3JpcHRpIHN1b3JpdGV0dHUgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNrcmlwdGkgc3Vvcml0ZXR0dSwgdGllZG9zdG8gb24gJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbnB0eSBmYWlsZWRcbiIKK21zZ3N0ciAib3BlbnB0eSBlcMOkb25uaXN0dWlcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIHB0eSdzXG4iCittc2dzdHIgIlB0eTp0IGxvcHVzc2FcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyA8dGltaW5nZmlsZT4gWzx0eXBlc2NyaXB0PiBbPGRpdmlzb3I+XV1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorbXNnaWQgIndyaXRlIHRvIHN0ZG91dCBmYWlsZWQiCittc2dzdHIgImtpcmpvaXR0YW1pbmVuIHZha2lvdHVsb3N0ZWVzZWVuIGVww6Rvbm5pc3R1aSIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJpb2N0bCgpIGVpIG9ubmlzdHVudXQgbHVrZW1hYW4gYWlrYWEga29odGVlc3RhICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIlRpZWRvc3RvYSDigJ0lc+KAnSBlaSB2b2kgYXZhdGEiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgIlRpZWRvc3RvYSDigJ0lc+KAnSBlaSB2b2kgYXZhdGEiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBlaSBvbm5pc3R1bnV0IGx1a2VtYWFuIGFpa2FhIGtvaHRlZXN0YSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAiJXM6ICVzOiBvZG90dGFtYXRvbiB0aWVkb3N0b211b3RvXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQXJndW1lbnQgZXJyb3IsIHVzYWdlXG4iCittc2dzdHIgIiVzOiBBcmd1bWVudHRpdmlyaGUsIGvDpHl0dMO2XG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRlcm0gdGVybWluYWxfbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtdGVybSBww6TDpHR0ZWVuX25pbWkgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiAgWyAtcmVzZXQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiICBbIC1pbml0aWFsaXplIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIgIFsgLWRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc1IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NworIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiICBbIC1zdG9yZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorbXNnc3RyICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsYW5rIFswLTYwfGZvcmNlfHBva2VdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS1LT05TT0xJRU5fTcOEw4RSw4RdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwZW5kIFsxLUtPTlNPTElFTl9Nw4TDhFLDhF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1maWxlIGR1bXBmaWxlbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtZmlsZSBkdW1wdGllZG9zdG9uaW1pIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIGJsYW5rXG4iCittc2dzdHIgImhhYXJhdXR0YW1pbmVuIGVpIG9ubmlzdHUiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgImhhYXJhdXR0YW1pbmVuIGVpIG9ubmlzdHUiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgImxhaXRldHRhICVzIGVpIHZvaSBhdmF0YVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCAodW4pc2V0IHBvd2Vyc2F2ZSBtb2RlXG4iCittc2dzdHIgInZpcnJhbnPDpMOkc3TDtnRpbGFhIGVpIHZvaSBhc2V0dGFhIChwb2lzKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTIyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAia2xvZ2N0bCBlcnJvcjogJXNcbiIKK21zZ3N0ciAia2xvZ2N0bC12aXJoZTogJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciB3cml0aW5nIHNjcmVlbmR1bXBcbiIKK21zZ3N0ciAiVmlyaGUga2lyam9pdGV0dGFlc3NhIG7DpHl0dMO2dmVkb3N0YVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIlRpZWRvc3RvYSAlcyBlaSB2b2l0dSBhdmF0YVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6ICRURVJNIGVpIG9sZSBtw6TDpHJpdGVsdHkuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdIFstVCB0aW1lb3V0XVxuIgorbXNnc3RyICIiCisiS8OkeXR0w7Y6ICVzIFstZF0gWy1wIHBpZC10aWVkb3N0b10gWy1zIHBpc3Rva2Vwb2xrdV0gWy1UIGFpa2FrYXRrYWlzdV1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyBbLXJ8dF0gWy1uIG51bV0gWy1zIHNvY2tldHBhdGhdXG4iCittc2dzdHIgIiAgICAgICAlcyBbLXJ8dF0gWy1uIG51bV0gWy1zIHBpc3Rva2Vwb2xrdV1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIgICAgICAgJXMgLWtcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorIywgZnV6enkKK21zZ2lkICJiYWQgYXJndW1lbnRzIgorbXNnc3RyICJjb2w6IHZpcmhlZWxsaW5lbiAtbCAtYXJndW1lbnR0aSAlcy5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorIywgZnV6enkKK21zZ2lkICJzb2NrZXQiCittc2dzdHIgIm5mcyBzb2NrZXQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNzAKKyMsIGZ1enp5Cittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAibmZzIGNvbm5lY3QiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxODkKKyMsIGZ1enp5Cittc2dpZCAid3JpdGUiCittc2dzdHIgIktpcmpvaXRhIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTk3CisjLCBmdXp6eQorbXNnaWQgInJlYWQgY291bnQiCittc2dzdHIgImx1ZXR0aWluICVjXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyMDMKK21zZ2lkICJiYWQgcmVzcG9uc2UgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGNyZWF0ZSB1bml4IHN0cmVhbSBzb2NrZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGJpbmQgdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIkxhaXRldHRhICVzIGVpIHZvaSBhdmF0YTogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbGlzdGVuIG9uIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICJMYWl0ZXR0YSAlcyBlaSB2b2kgYXZhdGE6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHJlYWRpbmcgZnJvbSBjbGllbnQsIGxlbiA9ICVkXG4iCittc2dzdHIgIlZpcmhlIGx1ZXR0YWVzc2EgJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM3OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb3BlcmF0aW9uICVkXG4iCittc2dzdHIgInZpcmhlZWxsaW5lbiB2YWxpdHNpbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2OCBtaXNjLXV0aWxzL3V1aWRkLmM6NDg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJCYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogdmlyaGVlbGxpbmVuIGFydm9cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUyNCBtaXNjLXV0aWxzL3V1aWRkLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjYWxsaW5nIHV1aWRkIGRhZW1vbiAoJXMpOiAlc1xuIgorbXNnc3RyICJ2aXJoZSBtdXV0ZXR0YWVzc2EgdGllZG9zdG9uICVzIHRpbGFhOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGFuZCBzdWJzZXF1ZW50ICVkIFVVSUQnc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGlzdCBvZiBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmV4cGVjdGVkIHJlcGx5IGxlbmd0aCBmcm9tIHNlcnZlciAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qga2lsbCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIktpbGxlZCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGdlbi5jOjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1yXSBbLXRdXG4iCittc2dzdHIgIkvDpHl0dMO2OiAlcyBbdmFsaXRzaW1ldF0gbGFpdGUgLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGhhayAuLi4gLWYgXSBuaW1pLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTI4Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAiY2FsbG9jIGVww6Rvbm5pc3R1aSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxNTAKK21zZ2lkICJzdHJkdXAgZmFpbGVkIgorbXNnc3RyICJzdHJkdXAgZXDDpG9ubmlzdHVpIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBwcm9iaW5nIGluaXRpYWxpemF0aW9uIGZhaWxlZCIKK21zZ3N0ciAidmlyaGU6IFVVSUQ6biBqw6RzZW5ueXMgZXDDpG9ubmlzdHVpIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBhcHBlYXJzIHRvIGNvbnRhaW4gJyVzJyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkxldnkgJXMgZWkgc2lzw6RsbMOkIGtlbHZvbGxpc3RhIG9zaW90YXVsdWFcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgZm91bmQgYSBtYWdpYyBzdHJpbmcgYXQgb2Zmc2V0IDB4JWp4IC0gaWdub3JlLiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiJXM6IGF2YWFtaW5lbiBlcMOkb25uaXN0dWk6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IGVww6Rvbm5pc3R1aVxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXpkIGJ5dGVzIFsiCittc2dzdHIgInRhdnV0IgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJdIGVyYXNlZCBhdCBvZmZzZXQgMHglanggKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjkyIG1vdW50L3N3YXBvbi5jOjE5OCBtb3VudC9zd2Fwb24uYzoyNjYKKyM6IG1vdW50L3N3YXBvbi5jOjQxMSBtb3VudC9zd2Fwb24uYzo1NzAgbW91bnQvc3dhcG9uLmM6NzcyCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTU5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogb3BlbiBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgZXDDpG9ubmlzdHVpXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiVmlyaGVlbGxpbmVuIGFzZXRldHR1IGFydm86ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJLw6R5dHTDtjogJXMgW3ZhbGl0c2ltZXRdIDx0aWVkb3N0b25pbWk+XG4iCisiXG4iCisiVmFsaXRzaW1ldDpcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgd2lwZWZzKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiTGlzw6R0aWV0b2phIG1hbnVhYWxpc2l2dWxsYSB3aXBlZnMoOCkuXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6Mzg3Cittc2dpZCAiLS1vZmZzZXQgYW5kIC0tYWxsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogY2FuJ3QgZmluZCB5b3VyIHR0eSdzIG5hbWVcbiIKK21zZ3N0ciAid3JpdGU6IHR0eTpzaSBuaW1lw6QgZWkgbMO2eWR5XG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IHlvdSBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdHVybmVkIG9mZi5cbiIKK21zZ3N0ciAid3JpdGU6IHNpbnVsbGEgZWkgb2xlIGtpcmpvaXR1c29pa2V1dHRhLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluIG9uICVzLlxuIgorbXNnc3RyICJ3cml0ZTogJXMgZWkgb2xlIGtpcmphdXR1bmVlbmEgcMOkw6R0dGVlbGzDpCAlcy5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyBvbiBlc3TDpG55dCB2aWVzdGl0IHDDpMOkdHRlZWxsw6QgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICJrw6R5dHTDtjogd3JpdGUga8OkeXR0w6Rqw6QgW3R0eV1cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICJ3cml0ZTogJXMgZWkgb2xlIGtpcmphdXR1bmVlbmFcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkXG4iCittc2dzdHIgIndyaXRlOiAlcyBlaSB2YXN0YWFub3RhIHZpZXN0ZWrDpFxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBsb2dnZWQgaW4gbW9yZSB0aGFuIG9uY2U7IHdyaXRpbmcgdG8gJXNcbiIKK21zZ3N0ciAiIgorIndyaXRlOiAlcyBvbiBraXJqYXV0dW5lZW5hIHVzZWFtbWluIGt1aW4ga2VycmFuOyBraXJqb2l0ZXRhYW4ga29odGVlc2VlbiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyAoYXMgJXMpIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiIgorIlZpZXN0aSAlNCRzOmxsZSBraXJqYXV0dW5lZWx0YSBrw6R5dHTDpGrDpGx0w6QgJTEkc0AlMiRzICglMyRzKSwga2VsbG8gJTUkcy4uLiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICJWaWVzdGkgJTMkczpsbGUga2lyamF1dHVuZWVsdGEga8OkeXR0w6Rqw6RsdMOkICUxJHNAJTIkcywga2VsbG8gJTQkcy4uLiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgInZhcm9pdHVzOiB2aXJoZSBsdWV0dGFlc3NhICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzIgbW91bnQvZnN0YWIuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgInZpcmhlOiB0aWVkb3N0b2EgJXMgZWkgdm9pIGF2YXRhOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNvdWxkIG5vdCBvcGVuICVzIC0gdXNpbmcgJXMgaW5zdGVhZFxuIgorbXNnc3RyICIiCisibW91bnQ6IHRpZWRvc3RvYSAlcyBlaSB2b2l0dSBhdmF0YSDigJMga8OkeXRldMOkw6RuIHRpZWRvc3RvYSAlcyBzZW4gc2lqYWFuXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NTkwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGNyZWF0ZSBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgImx1a2tvdGllZG9zdG9hICVzIGVpIHZvaSBsdW9kYTogJXMgKGvDpHl0w6QgbGlwcHVhIC1uIG9oaXR0YWFrc2VzaSkiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICJsdWtrb3RpZWRvc3RvYSAlcyBlaSB2b2kgbGlua2l0dMOkw6Q6ICVzIChrw6R5dMOkIGxpcHB1YSAtbiBvaGl0dGFha3Nlc2kpIgorCisjOiBtb3VudC9mc3RhYi5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBvcGVuIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAibHVra290aWVkb3N0b2EgJXMgZWkgdm9pIGF2YXRhOiAlcyAoa8OkeXTDpCBsaXBwdWEgLW4gb2hpdHRhYWtzZXNpKSIKKworIzogbW91bnQvZnN0YWIuYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIkx1a2tvdGllZG9zdG9hICVzIGVpIHZvaSBsdWtpdGE6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAibHVra290aWVkb3N0b2EgJXMgZWkgdm9pIGx1a2l0YTogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICJhaWtha2F0a2Fpc3R1IgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorIkxpbmtracOkICVzIGVpIHZvaSBsdW9kYVxuIgorIkVoa8OkIGpvc3Nha2luIG9uIHZhbmhlbnR1bnV0IGx1a2tvdGllZG9zdG8/XG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICJoYWtlbWlzdG9hICVzIGVpIHZvaSBhdmF0YSAoJXMpIOKAkyBtdGFiaS10aWVkb3N0b2EgZWkgcMOkaXZpdGV0dHkiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJ2aXJoZSBraXJqb2l0ZXR0YWVzc2EgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjg3NAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlc1xuIgorbXNnc3RyICJ2aXJoZSBtdXV0ZXR0YWVzc2EgdGllZG9zdG9uICVzIHRpbGFhOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBvd25lciBvZiAlczogJXNcbiIKK21zZ3N0ciAidmlyaGUgbXV1dGV0dGFlc3NhIHRpZWRvc3RvbiAlcyBvbWlzdGFqYWE6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODk4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAibmltZcOkbWluZW4gJXMg4oaSICVzIGVpIG9ubmlzdHU6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IHNldCBjYXBhY2l0eSBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IGxhaXR0ZWVuICVzIHRpZXRvamEgZWkgdm9pIGhha2VhOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBzaWlydHltw6QgJTxQUkl1NjQ+IgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgc2l6ZWxpbWl0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBrb2tvcmFqYSAlPFBSSXU2ND4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uICVzICh0eXBlICU8UFJJdTMyPikiCittc2dzdHIgIiwgc2FsYXVzICVzICh0eXlwcGkgJTxQUkl1MzI+KSIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMAorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlZCIKK21zZ3N0ciAiLCBzaWlydHltw6QgJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiLCBzYWxhdXN0eXlwcGkgJWRcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBnZXQgaW5mbyBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IGxhaXR0ZWVuICVzIHRpZXRvamEgZWkgdm9pIGhha2VhOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDMyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IG9wZW4gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBsYWl0ZXR0YSAlcyBlaSB2b2kgYXZhdGE6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NDggbW91bnQvbG9tb3VudC5jOjQ4MCBtb3VudC9sb21vdW50LmM6NTQyCisjOiBtb3VudC9sb21vdW50LmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iCittc2dzdHIgIiVzOiAvZGV2LWhha2VtaXN0b2EgZWkgb2xlIG9sZW1hc3NhLiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ1OSBtb3VudC9sb21vdW50LmM6NjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIlczogZWkgb2lrZXVrc2lhIGxhaXR0ZWVzZWVuIC9kZXYvbG9vcCMiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBmcmVlIGxvb3AgZGV2aWNlIgorbXNnc3RyICIlczogZWkgbMO2eXR5bnl0IHlodMOkw6RuIHZhcGFhdGEgbG9vcC1sYWl0ZXR0YSIKKworIzogbW91bnQvbG9tb3VudC5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yIGBtb2Rwcm9iZSBsb29wJy4pIgorbXNnc3RyICIiCisiJXM6IEVpIGzDtnl0eW55dCB5aHTDpMOkbiBsb29wLWxhaXRldHRhLiBFaGvDpCB0w6Rtw6QgeWRpbiBlaSBvbGUgdGlldG9pbmVuXG4iCisiICAgICAgIGxvb3AtbGFpdHRlaXN0YT9cbiIKKyIgICAgICAgKEpvcyBuw6RpbiBvbiwga8Okw6RubsOkIHV1ZGVsbGVlbiB0YWkgc3Vvcml0YSDigJ1tb2Rwcm9iZSBsb29w4oCdLikiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MzYKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGlsZSByZWFkaW5nIHBhc3NwaHJhc2UiCittc2dzdHIgIk11aXN0aSBsb3BwdWkga2FzdmF0ZXR0YWVzc2EgcHVza3VyaWEuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2NzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzIGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIlNla3RvcmkgJWQgb24gam8gdmFyYXR0dVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njk1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iCittc2dzdHIgIm1vdW50OiAlcyVzIG9uIGtpcmpvaXR1c3N1b2phdHR1LCBsaWl0ZXTDpMOkbiB2YWluIGx1a3UgLXRpbGFzc2EiCisKKyM6IG1vdW50L2xvbW91bnQuYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbG9jayBpbnRvIG1lbW9yeSwgZXhpdGluZy5cbiIKK21zZ3N0ciAiTXVpc3RpYSBlaSB2b2l0dSBsdWtpdGEsIHBvaXN0dXRhYW4uXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgTE9PUF9TRVRfRkQgZmFpbGVkOiAlc1xuIgorbXNnc3RyICJpb2N0bCBMT09QX1NFVF9GRCBlcMOkb25uaXN0dWk6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0X2xvb3AoJXMsJXMsJWxsdSwlbGx1KTogc3VjY2Vzc1xuIgorbXNnc3RyICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBvbm5pc3R1aVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IG9ubmlzdHVpXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZGVsZXRlIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogbGFpdGV0dGEgJXMgZWkgdm9pIHBvaXN0YWE6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIlTDpG3DpCBtb3VudCBvbiBrw6TDpG5uZXR0eSBpbG1hbiBsb29wLXR1a2VhLiBLw6TDpG5uw6QgdXVkZWxsZWVuLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorImvDpHl0dMO2OlxuIgorIiAgJXMgbG9vcC1sYWl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG7DpHl0w6QgdGlldG9qYVxuIgorIiAgJXMgLWQgbG9vcC1sYWl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBvaXN0YVxuIgorIiAgJXMgLWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGV0c2kgdmFwYWFcbiIKKyIgICVzIFsgLWUgc2FsYXVzIF0gWyAtbyBzaWlydHltw6QgXSBsb29wLWxhaXRlIHRpZWRvc3RvICMgYXNldGFcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg5NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWUgfCAtLWVuY3J5cHRpb24gPHR5cGU+IGVuYWJsZSBkYXRhIGVuY3J5cHRpb24gd2l0aCBzcGVjaWZpZWQgPG5hbWUvbnVtPlxuIgorIiAtaCB8IC0taGVscCAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1vIHwgLS1vZmZzZXQgPG51bT4gICAgICBzdGFydCBhdCBvZmZzZXQgPG51bT4gaW50byBmaWxlXG4iCisiICAgICAgLS1zaXplbGltaXQgPG51bT4gICBsb29wIGxpbWl0ZWQgdG8gb25seSA8bnVtPiBieXRlcyBvZiB0aGUgZmlsZVxuIgorIiAtcCB8IC0tcGFzcy1mZCA8bnVtPiAgICAgcmVhZCBwYXNzcGhyYXNlIGZyb20gZmlsZSBkZXNjcmlwdG9yIDxudW0+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBzZXR1cCByZWFkLW9ubHkgbG9vcCBkZXZpY2VcbiIKKyIgICAgICAtLXNob3cgICAgICAgICAgICAgIHByaW50IGRldmljZSBuYW1lICh3aXRoIC1mIDxmaWxlPilcbiIKKyIgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgIHZlcmJvc2UgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDM0IG1vdW50L2xvbW91bnQuYzoxMDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvb3AgZGV2aWNlIGlzICVzXG4iCittc2dzdHIgIkxvb3AtbGFpdGUgb24gJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RvbGVuIGxvb3A9JXMuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA3MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICIlczogJXM6IGxhaXRlIG9uIHZhcmF0dHUiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDg4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGxvb3Agc3VwcG9ydCB3YXMgYXZhaWxhYmxlIGF0IGNvbXBpbGUgdGltZS4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiTG9vcC10dWtlYSBlaSBvbGx1dCBrw6TDpG5uw7Zrc2VuIGFpa2FuYS4gS8Okw6RubsOkIHV1ZGVsbGVlbi5cbiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIm1vdW50OiB2w6TDpHJpbiBzdW9qYXR0dSB2YWxpdHNpbm1lcmtraWpvbm8g4oCdJXPigJ0iCisKKyM6IG1vdW50L21vdW50LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIgorbXNnc3RyICJtb3VudDogbXV1bm5ldHRpaW4gJXMg4oCdJXPigJ0gYXJ2b29uIOKAnSVz4oCdXG4iCisKKyM6IG1vdW50L21vdW50LmM6NTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogbXRhYi10aWVkb3N0b24gbXVrYWFuICVzIG9uIGpvIGxpaXRldHR5IHBpc3RlZXNlZW4gJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IG10YWItdGllZG9zdG9uIG11a2FhbiAlcyBvbiBsaWl0ZXR0eSBwaXN0ZWVzZWVuICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlcyBmb3Igd3JpdGluZzogJXMiCittc2dzdHIgIm1vdW50OiB0aWVkb3N0b2EgJXMgZWkgdm9pIGF2YXRhIGtpcmpvaXR0YW1pc3RhIHZhcnRlbjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTgxIG1vdW50L21vdW50LmM6MTE5OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIm1vdW50OiB2aXJoZSBraXJqb2l0ZXR0YWVzc2EgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXMiCittc2dzdHIgIm1vdW50OiB2aXJoZSBtdXV0ZXR0YWVzc2EgdGllZG9zdG9uICVzIHRpbGFhOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJtb3VudDogcnlobcOkLWlkOnTDpCB2b2kgYXNldHRhYTogJXMiCisKKyM6IG1vdW50L21vdW50LmM6Njc1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJtb3VudDoga8OkeXR0w6Rqw6QtaWQ6dMOkIGVpIHZvaSBhc2V0dGFhOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBoYWFyYXV0dGFtaW5lbiBlaSBvbm5pc3R1OiAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIktva2VpbGxhYW4gJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo4NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHlvdSBkaWRuJ3Qgc3BlY2lmeSBhIGZpbGVzeXN0ZW0gdHlwZSBmb3IgJXNcbiIKK21zZ3N0ciAibW91bnQ6IGV0IGFudGFudXQgdHl5cHBpw6QgdGllZG9zdG9qw6RyamVzdGVsbcOkbGxlICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IGFsbCB0eXBlcyBtZW50aW9uZWQgaW4gJXMgb3IgJXNcbiIKK21zZ3N0ciAiICAgICAgIEtva2VpbGxhYW4ga2Fpa2tpYSB0aWVkb3N0b2lzc2EgJXMgamEgJXMgbWFpbml0dHVqYSB0eXlwcGVqw6RcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIGFuZCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgc3dhcHNwYWNlXG4iCittc2dzdHIgIiAgICAgICBqYSB0w6Rtw6QgbsOkeXR0w6TDpCBvbGV2YW4gc2l2dXR1c3RpbGFhXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIKK21zZ3N0ciAiICAgICAgIEtva2VpbGxhYW4gdHl5cHBpw6QgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiJXMgdmFpa3V0dGFhIG9sZXZhbiBzaXZ1dHVzdGlsYWEg4oCTIGVpIGxpaXRldMOkIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDIKK21zZ2lkICJtb3VudCBmYWlsZWQiCittc2dzdHIgImxpaXR0w6RtaW5lbiBlcMOkb25uaXN0dWkiCisKKyM6IG1vdW50L21vdW50LmM6MTAwNAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBtb3VudCAlcyBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHZhaW4gcm9vdCB2b2kgbGlpdHTDpMOkICVzIHBpc3RlZXNlZW4gJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTA3NAorbXNnaWQgIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiBsb29wLWxhaXRlIGFubmV0dHUga2FoZGVzdGkiCisKKyM6IG1vdW50L21vdW50LmM6MTA3OQorbXNnaWQgIm1vdW50OiB0eXBlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IHR5eXBwaSBhbm5ldHR1IGthaGRlc3RpIgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBvaGl0ZXRhYW4gbG9vcC1sYWl0dGVlbiBhc2V0dGFtaW5lblxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICIiCisibW91bnQ6IG10YWItdGllZG9zdG9uIG11a2FhbiAlcyBvbiBqbyBsaWl0ZXR0eSBwaXN0ZWVzZWVuICVzIGxvb3AtbGFpdHRlZW5hIgorCisjOiBtb3VudC9tb3VudC5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGdvaW5nIHRvIHVzZSB0aGUgbG9vcCBkZXZpY2UgJXNcbiIKK21zZ3N0ciAibW91bnQ6IGFpb3RhYW4ga8OkeXR0w6TDpCBsb29wLWxhaXRldHRhICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgInVtb3VudDogJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjExMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBsb29wLWxhaXR0ZWVuIGFzZXR0YW1pbmVuIGVww6Rvbm5pc3R1aVxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNldHVwIGxvb3AgZGV2aWNlIHN1Y2Nlc3NmdWxseVxuIgorbXNnc3RyICJtb3VudDogbG9vcC1sYWl0ZSBhc2V0ZXR0aWluIG9ubmlzdHVuZWVzdGlcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyAlcyBmb3VuZCAtIGNyZWF0aW5nIGl0Li5cbiIKK21zZ3N0ciAibW91bnQ6IGVpIGzDtnl0eW55dCAlcyDigJMgbHVvZGFhbiBzZS4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgIm1vdW50OiB0aWVkb3N0b2EgJXMgZWkgdm9pIGF2YXRhOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMjE1Cittc2dpZCAibW91bnQ6IGFyZ3VtZW50IHRvIC1wIG9yIC0tcGFzcy1mZCBtdXN0IGJlIGEgbnVtYmVyIgorbXNnc3RyICJtb3VudDogYXJndW1lbnRpbiB2YWxpdHNpbWVsbGUgLXAgdGFpIC0tcGFzcy1mZCBvbiBvbHRhdmEgbHVrdSIKKworIzogbW91bnQvbW91bnQuYzoxMjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgb3BlbiAlcyBmb3Igc2V0dGluZyBzcGVlZCIKK21zZ3N0ciAibW91bnQ6IHRpZWRvc3RvYSAlcyBlaSB2b2kgYXZhdGEgbm9wZXVkZW4gYXNldHVzdGEgdmFydGVuIgorCisjOiBtb3VudC9tb3VudC5jOjEyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgc3BlZWQ6ICVzIgorbXNnc3RyICJtb3VudDogbm9wZXV0dGEgZWkgdm9pIGFzZXR0YWE6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IG10YWJpbiBtdWthYW4gJXMgb24gam8gbGlpdGV0dHkgcGlzdGVlc2VlbiAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjEzODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgInVtb3VudDogJXMgb24gdmFyYXR0dSDigJMgdXVkZWxsZWVubGlpdGV0dGlpbiB2YWluIGx1a3UgLXRpbGFzc2FcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDEzCittc2dpZCAiIgorIm1vdW50OiBJIGNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGZpbGVzeXN0ZW0gdHlwZSwgYW5kIG5vbmUgd2FzIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorIm1vdW50OiBUaWVkb3N0b2rDpHJqZXN0ZWxtw6RuIHR5eXBwacOkIGVpIHZvaXR1IG3DpMOkcml0dMOkw6QsIGVpa8OkIHR5eXBwacOkIG9sZSAiCisiYW5uZXR0dSIKKworIzogbW91bnQvbW91bnQuYzoxNDE2Cittc2dpZCAibW91bnQ6IHlvdSBtdXN0IHNwZWNpZnkgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAibW91bnQ6IHRpZWRvc3RvasOkcmplc3RlbG3DpG4gdHl5cHBpIG9uIGFubmV0dGF2YSIKKworIzogbW91bnQvbW91bnQuYzoxNDE5Cittc2dpZCAibW91bnQ6IG1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQ6IGxpaXRvcyBlcMOkb25uaXN0dWkiCisKKyM6IG1vdW50L21vdW50LmM6MTQyNSBtb3VudC9tb3VudC5jOjE0NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIG5vdCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAibW91bnQ6IGxpaXRvc3Bpc3RlICVzIGVpIG9sZSBoYWtlbWlzdG8iCisKKyM6IG1vdW50L21vdW50LmM6MTQyNworbXNnaWQgIm1vdW50OiBwZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibW91bnQ6IGx1cGEgZXbDpHR0eSIKKworIzogbW91bnQvbW91bnQuYzoxNDI5Cittc2dpZCAibW91bnQ6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVzZSBtb3VudCIKK21zZ3N0ciAibW91bnQ6IG1vdW50aW4ga8OkeXR0w7bDtm4gdmFhZGl0YWFuIHDDpMOka8OkeXR0w6Rqw6RuIG9pa2V1ZGV0IgorCisjOiBtb3VudC9tb3VudC5jOjE0MzMgbW91bnQvbW91bnQuYzoxNDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgb24gdmFyYXR0dSIKKworIzogbW91bnQvbW91bnQuYzoxNDM5Cittc2dpZCAibW91bnQ6IHByb2MgYWxyZWFkeSBtb3VudGVkIgorbXNnc3RyICJtb3VudDogcHJvYyBvbiBqbyBsaWl0ZXR0eSIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIG9uIGpvIGxpaXRldHR5IHRhaSAlcyBvbiB2YXJhdHR1IgorCisjOiBtb3VudC9tb3VudC5jOjE0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogbGlpdG9zcGlzdGUgJXMgZWkgb2xlIG9sZW1hc3NhIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICJtb3VudDogbGlpdG9zcGlzdGUgJXMgb24gc3ltbGlua2tpIG9sZW1hdHRvbWFhbiIKKworIzogbW91bnQvbW91bnQuYzoxNDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6IGVyaWtvaXNsYWl0ZSAlcyBlaSBvbGUgb2xlbWFzc2EiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorIm1vdW50OiBlcmlrb2lzbGFpdGUgJXMgZWkgb2xlIG9sZW1hc3NhXG4iCisiICAgICAgIChwb2x1biBldHVsaWl0ZSBlaSBvbGUgaGFrZW1pc3RvKVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIG5vdCBtb3VudGVkIGFscmVhZHksIG9yIGJhZCBvcHRpb24iCittc2dzdHIgIm1vdW50OiAlcyBlaSBvbGUgdmllbMOkIGxpaXRldHR5LCB0YWkgdmlyaGVlbGxpbmVuIHZhbGl0c2luIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB3cm9uZyBmcyB0eXBlLCBiYWQgb3B0aW9uLCBiYWQgc3VwZXJibG9jayBvbiAlcyxcbiIKKyIgICAgICAgbWlzc2luZyBjb2RlcGFnZSBvciBoZWxwZXIgcHJvZ3JhbSwgb3Igb3RoZXIgZXJyb3IiCittc2dzdHIgIiIKKyJtb3VudDogdsOkw6Ryw6QgdGllZG9zdG9qw6RyamVzdGVsbcOkbiB0eXlwcGksIHZpcmhlZWxsaW5lbiB2YWxpdHNpbiwgdmlhbGxpbmVuIFxuIgorIiAgICAgICBzdXBlcmxvaGtvIGxhaXR0ZWVsbGEgJXMsIHB1dXR0dXZhIGtvb2Rpc2l2dSB0YWkgYXB1b2hqZWxtYSwgdGFpIG11dSAiCisidmlyaGUiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4NworbXNnaWQgIiIKKyIgICAgICAgKGZvciBzZXZlcmFsIGZpbGVzeXN0ZW1zIChlLmcuIG5mcywgY2lmcykgeW91IG1pZ2h0XG4iCisiICAgICAgIG5lZWQgYSAvc2Jpbi9tb3VudC48dHlwZT4gaGVscGVyIHByb2dyYW0pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ5NgorbXNnaWQgIiIKKyIgICAgICAgKGNvdWxkIHRoaXMgYmUgdGhlIElERSBkZXZpY2Ugd2hlcmUgeW91IGluIGZhY3QgdXNlXG4iCisiICAgICAgIGlkZS1zY3NpIHNvIHRoYXQgc3IwIG9yIHNkYSBvciBzbyBpcyBuZWVkZWQ/KSIKK21zZ3N0ciAiIgorIiAgICAgICAodm9pc2lrbyB0w6Rtw6Qgb2xsYSBJREUtbGFpdGUsIGpva2Ega8OkeXR0w6TDpCBpZGUtc2NzaS1hanVyaWEsXG4iCisiICAgICAgIGpvbGxvaW4ga8OkeXRldMOkw6RuIHNyMDphYSB0YWkgc2RhOnRhPykiCisKKyM6IG1vdW50L21vdW50LmM6MTUwMQorbXNnaWQgIiIKKyIgICAgICAgKGFyZW4ndCB5b3UgdHJ5aW5nIHRvIG1vdW50IGFuIGV4dGVuZGVkIHBhcnRpdGlvbixcbiIKKyIgICAgICAgaW5zdGVhZCBvZiBzb21lIGxvZ2ljYWwgcGFydGl0aW9uIGluc2lkZT8pIgorbXNnc3RyICIiCisiICAgICAgIChldGvDtiB5cml0w6RraW4gbGlpdHTDpMOkIGxhYWplbm5ldHR1YSBvc2lvdGEsIGV0a8OkXG4iCisiICAgICAgIHNlbiBzaXPDpGx0w6Rtw6TDpCBsb29naXN0YSBvc2lvdGE/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKyIgICAgICAgSm9pc3Nha2luIHRhcGF1a3Npc3NhIGrDpHJqZXN0ZWxtw6Rsb2tpc3RhIGzDtnl0eXkgaHnDtmR5bGxpc3TDpFxuIgorIiAgICAgICB0aWV0b2Eg4oCTIGtva2VpbGUgZXNpbS4ga29tZW50b2Eg4oCdZG1lc2cgfCB0YWls4oCdLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICJsaWl0b3N0YXVsdWtrbyB0w6R5bm7DpCIKKworIzogbW91bnQvbW91bnQuYzoxNTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogY2FuJ3QgcmVhZCBzdXBlcmJsb2NrIgorbXNnc3RyICJtb3VudDogJXM6IHN1cGVybG9oa29hIGVpIHZvaSBsdWtlYSIKKworIzogbW91bnQvbW91bnQuYzoxNTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogdW5rbm93biBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlczogdHVudGVtYXRvbiBsYWl0ZSIKKworIzogbW91bnQvbW91bnQuYzoxNTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB1bmtub3duIGZpbGVzeXN0ZW0gdHlwZSAnJXMnIgorbXNnc3RyICJtb3VudDogdHVudGVtYXRvbiB0aWVkb3N0b2rDpHJqZXN0ZWxtw6RuIHR5eXBwaSDigJ0lc+KAnSIKKworIzogbW91bnQvbW91bnQuYzoxNTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBwcm9iYWJseSB5b3UgbWVhbnQgJXMiCittc2dzdHIgIm1vdW50OiB0YXJrb2l0YXQgdG9kZW5uw6Rrw7Zpc2VzdGkgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTU0MgorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAibW91bnQ6IGVoa8OkIHRhcmtvaXRpdCDigJ1pc285NjYw4oCdPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDogZWhrw6QgdGFya29pdGl0IOKAnXZmYXTigJ0/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiB0aWVkb3N0b24gJXMgbGFpdGVudW1lcm8gb24gdsOkw6Ryw6QgdGFpIHRpZWRvc3RvasOkcmplc3RlbG3DpHR5eXBwaSAlcyBlaSAiCisib2xlIHR1ZXR0dSIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAibW91bnQ6ICVzIGVpIG9sZSBsb2hrb2xhaXRlLCBqYSB0aWxhbiBsdWt1IGVww6Rvbm5pc3R1dT8iCisKKyM6IG1vdW50L21vdW50LmM6MTU1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorIm1vdW50OiB5ZGluIGVpIHR1bm5pc3RhIHRpZWRvc3RvYSAlcyBsb2hrb2xhaXR0ZWVrc2lcbiIKKyIgICAgICAgKGVoa8OkIOKAnWluc21vZCBhanVyaeKAnSBhdXR0YWE/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UgKG1heWJlIHRyeSBgLW8gbG9vcCc/KSIKK21zZ3N0ciAibW91bnQ6ICVzIGVpIG9sZSBsb2hrb2xhaXRlICh5cml0w6Qg4oCdLW8gbG9vcOKAnT8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIGVpIG9sZSBsb2hrb2xhaXRlIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIHZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIGVpIG9sZSBrZWx2b2xsaW5lbiBsb2hrb2xhaXRlIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzIKK21zZ2lkICJibG9jayBkZXZpY2UgIgorbXNnc3RyICJsb2hrb2xhaXRlICIKKworIzogbW91bnQvbW91bnQuYzoxNTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgbW91bnQgJXMlcyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiBlaSB2b2kgbGlpdHTDpMOkICVzJXMgdmFpbiBsdWt1IC10aWxhc3NhIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkIGJ1dCBleHBsaWNpdCBgLXcnIGZsYWcgZ2l2ZW4iCittc2dzdHIgIm1vdW50OiAlcyVzIG9uIGtpcmpvaXR1c3N1b2phdHR1LCBtdXR0YSDigJ0td+KAnSAtbGlwcHUgb24gYW5uZXR0dSIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIm1vdW50OiBlaSB2b2kgbGlpdHTDpMOkICVzJXMgdmFpbiBsdWt1IC10aWxhc3NhIgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIG9uIGtpcmpvaXR1c3N1b2phdHR1LCBsaWl0ZXTDpMOkbiB2YWluIGx1a3UgLXRpbGFzc2EiCisKKyM6IG1vdW50L21vdW50LmM6MTYwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAibW91bnQ6IGVpIGzDtnl0eW55dCAlcyDigJMgbHVvZGFhbiBzZS4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIG9uIGpvIGxpaXRldHR5IHBhaWtrYWFuICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIiIKKyJtb3VudDogdHl5cHBpw6QgZWkgYW5uZXR0dSDigJMga2Frc29pc3Bpc3RlZW4gcGVydXN0ZWVsbGEgc2VuIG9sZXRldGFhbiBvbGV2YW4gIgorIm5mc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgY2lmcyBiZWNhdXNlIG9mIHRoZSAvLyBwcmVmaXhcbiIKK21zZ3N0ciAiIgorIm1vdW50OiB0eXlwcGnDpCBlaSBhbm5ldHR1IOKAkyAvLy1hbGt1bGlpdHRlZW4gcGVydXN0ZWVsbGEgc2VuIG9sZXRldGFhbiBvbGV2YW4gIgorImNpZnNcbiIKKworIzogbW91bnQvbW91bnQuYzoxODExCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6ICVzIG9uIGpvIGxpaXRldHR5IHBhaWtrYWFuICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKyJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKyIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKyJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKyJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKyJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKyJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorbXNnc3RyICIiCisiS8OkeXR0w7Y6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IG7DpHl0w6QgdmVyc2lvXG4iCisiICAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBuw6R5dMOkIHTDpG3DpCBvaGplXG4iCisiICAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgOiBuw6R5dMOkIGxpaXRldHl0IHRpZWRvc3RvasOkcmplc3RlbG3DpHRcbiIKKyIgICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IHNhbWEga3VpbiBlZGVsbMOkLCBsaXPDpGtzaSBuaW1pw7Z0XG4iCisiU2lpbsOkIGluZm9ybWF0aWl2aW5lbiBvc3V1cy4gU2V1cmFhdmFrc2kgbGlpdHTDpG1pbmVuLlxuIgorIktvbWVudG8ga3V1bHV1IOKAnW1vdW50IFstdCB0aWVkLmrDpHJqLnR5eXBwaV0gam90YWtpbiBqb25uZWtpbuKAnS5cbiIKKyJUaWVkb3N0b3NzYSAvZXRjL2ZzdGFiIG9sZXZhdCB5a3NpdHlpc2tvaGRhdCB2b2kgasOkdHTDpMOkIHBvaXMuXG4iCisiICAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBsaWl0w6Qga2Fpa2tpIHRpZWRvc3Rvc3RhIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgIG1vdW50IGxhaXRlICAgICAgICAgICAgICA6IGxpaXTDpCBsYWl0ZSB0dW5uZXR0dXVuIHBhaWtrYWFuXG4iCisiICAgICAgICBtb3VudCBoYWtlbWlzdG8gICAgICAgICAgOiBsaWl0w6QgdHVubmV0dHUgbGFpdGUgdMOkbm5lXG4iCisiICAgICAgICBtb3VudCAtdCB0eXlwcGkgbGFpdGUgaGFrOiBub3JtYWFsaSBsaWl0b3Nrb21lbnRvXG4iCisiSHVvbWFhLCBldHTDpCBvaWtlYXN0aSBlaSBsaWl0ZXTDpCBsYWl0ZXR0YSwgdmFhbiBsYWl0dGVlbGxhIG9sZXZhXG4iCisiKGFubmV0dW4gdHl5cGluIG11a2FpbmVuKSB0aWVkb3N0b2rDpHJqZXN0ZWxtw6QuXG4iCisiVm9pZGFhbiBtecO2cyBsaWl0dMOkw6Qgam8gbsOka3l2aXNzw6Qgb2xldmEgaGFrZW1pc3RvcHV1IG11dWFsbGU6XG4iCisiICAgICAgICBtb3VudCAtLWJpbmQgdmFuaGFfaGFrIHV1c2lfaGFrXG4iCisidGFpIHNpaXJ0w6TDpCBhbGlwdXU6XG4iCisiICAgICAgICBtb3VudCAtLW1vdmUgdmFuaGFfaGFrIHV1c2lfaGFrXG4iCisiSGFrZW1pc3RvbiBoYWsgc2lzw6RsdMOkdsOkbiBsaWl0b2tzZW4gdHl5cHBpw6Qgdm9pIG11dXR0YWE6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgaGFrXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBoYWtcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgaGFrXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGhha1xuIgorIkthaWtraWVuIGxpaXRva3NlbiBhbGlwdXVzc2Egb2xldmllbiBoYWtlbWlzdG9uIGhhayBzaXPDpGx0w6R2aWVuXG4iCisibGlpdG9zdGVuIHR5eXBwacOkIHZvaSBtdXV0dGFhOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBoYWtcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBoYWtcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGhha1xuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgaGFrXG4iCisiTGFpdGUgdm9pZGFhbiBhbnRhYSBuaW1lbGzDpCwgZXNpbS4gL2Rldi9oZGExIHRhaSAvZGV2L2Nkcm9tLFxuIgorInRhaSBuaW1pw7ZsbMOkLCBrw6R5dHTDpGVuICAtTCBuaW1pw7YgIHRhaSB1dWlkOmxsYSwga8OkeXR0w6RlbiAgLVUgdXVpZCAuXG4iCisiTXV1dCB2YWxpdHNpbWV0OiBbLW5mRnJzdnddIFstbyB2YWxpdHNpbWV0XSBbLXAga2FodmFdLlxuIgorIlBhbGpvbiBsaXPDpHRpZXRvamEga29tZW5ub2xsYTogIG1hbiA4IG1vdW50IC5cbiIKKworIzogbW91bnQvbW91bnQuYzoyMjc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IChlZmZlY3RpdmUgVUlEIGlzICVkKSIKK21zZ3N0ciAibW91bnQ6IHZhaW4gcm9vdCB2b2kgdGVoZMOkIHR1b24iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIm1vdW50OiB2YWluIHJvb3Qgdm9pIHRlaGTDpCB0dW9uIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJtaXTDpMOkbiBlaSBsaWl0ZXR0eSIKKworIzogbW91bnQvbW91bnQuYzoyMzA2IG1vdW50L21vdW50LmM6MjMzMgorbXNnaWQgIm1vdW50OiBubyBzdWNoIHBhcnRpdGlvbiBmb3VuZCIKK21zZ3N0ciAibW91bnQ6IG9zaW90YSBlaSBsw7Z5ZHkiCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIGVpIGzDtnlkeSB0aWVkb3N0b3N0YSAlcywgZWlrw6QgJXMiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogd2FybmluZzogbm8gZmluYWwgbmV3bGluZSBhdCB0aGUgZW5kIG9mICVzXG4iCittc2dzdHIgIlttbnRlbnRdOiB2YXJvaXR1czogdGllZG9zdG9uICVzIGxvcHVzc2EgZWkgb2xlIHJpdmludmFpaHRvYVxuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiW21udGVudF06IHJpdmkgJWQgdGllZG9zdG9zc2EgJXMgb24gdmlyaGVlbGxpbmVuJXNcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE5Cittc2dpZCAiOyByZXN0IG9mIGZpbGUgaWdub3JlZCIKK21zZ3N0ciAiOyBsb3B1dCB0aWVkb3N0b3N0YSBqw6R0ZXTDpMOkbiBodW9taW9pbWF0dGEiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAib2hqZWxtaXN0b3Zpa2EgeHN0cm5kdXAta3V0c3Vzc2EiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MjI1IG1vdW50L3N1bmRyaWVzLmM6MjgxIG1vdW50L3N1bmRyaWVzLmM6Mjk2CisjOiBtb3VudC94bWFsbG9jLmM6MTEKK21zZ2lkICJub3QgZW5vdWdoIG1lbW9yeSIKK21zZ3N0ciAibXVpc3RpIGVpIHJpaXTDpCIKKworIzogbW91bnQvc3dhcG9uLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSA8c3BlY2lhbD4gcGFyYW1ldGVyOlxuIgorIiB7LUwgbGFiZWwgfCBMQUJFTD1sYWJlbH0gICAgICAgICAgICAgTEFCRUwgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIFVVSUQgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGRldmljZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGZpbGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZmlsZSB0byBiZSB1c2VkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCBwcmlvcml0eV0gWy12XSBbLWZdIDxzcGVjaWFsPiAgZW5hYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiS8OkeXR0w7Y6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdICAgICAgICAgICAgICAgICAgb3RhIGvDpHl0dMO2w7ZuIGthaWtraSAvZXRjL2ZzdGFiaW5cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l2dXR1c2FsdWVldFxuIgorIiAlMSRzIFstcCBwcmlvcml0Ll0gWy12XSA8cG9sa3U+ICAgIG90YSBrw6R5dHTDtsO2biBhbm5ldHR1IHNpdnV0dXNhbHVlXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgbsOkeXTDpCB5aHRlZW52ZXRvIHNpdnV0dXNrw6R5dMO2c3TDpFxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIG7DpHl0w6Qgb2hqZVxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIG7DpHl0w6QgdmVyc2lvXG4iCisiXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjEwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBzd2Fwc1xuIgorIiAlMSRzIFstdl0gPHNwZWNpYWw+ICAgICAgICAgICAgICAgZGlzYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiS8OkeXR0w7Y6XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBwb2lzdGEga8OkeXTDtnN0w6Qga2Fpa2tpIHNpdnV0dXNhbHVlZXRcbiIKKyIgJTEkcyBbLXZdIDxwb2xrdT4gICAgICAgICAgICAgICBwb2lzdGEga8OkeXTDtnN0w6QgYW5uZXR0dSBzaXZ1dHVzYWx1ZVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgbsOkeXTDpCBvaGplXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBuw6R5dMOkIHZlcnNpb1xuIgorIlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0IgorbXNnc3RyICIlczogJXM6IG9kb3R0YW1hdG9uIHRpZWRvc3RvbXVvdG9cbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWluaXRpYWxpemluZyB0aGUgc3dhcC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICJoYWFyYXV0dGFtaW5lbiBlcMOkb25uaXN0dWlcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjM5CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2IGZhaWxlZCIKK21zZ3N0ciAia8OkeW5uaXN0eXMgZXDDpG9ubmlzdHVpXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI0NworIywgZnV6enkKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgZXDDpG9ubmlzdHVpIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsc2VlayBmYWlsZWQiCittc2dzdHIgInNpaXJ0eW1pbmVuIGVww6Rvbm5pc3R1aSIKKworIzogbW91bnQvc3dhcG9uLmM6Mjc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIKK21zZ3N0ciAia2lyam9pdHRhbWluZW4gdmFraW90dWxvc3RlZXNlZW4gZXDDpG9ubmlzdHVpIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvdW5kIHN3YXAgc2lnbmF0dXJlOiB2ZXJzaW9uICVkLCBwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5Cittc2dpZCAiZGlmZmVyZW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorIywgZnV6enkKK21zZ2lkICJzYW1lIgorbXNnc3RyICJOaW1pIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzdGF0IGZhaWxlZCIKK21zZ3N0ciAiJXMgZXDDpG9ubmlzdHVpLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzozOTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgIiIKKyIlczogdmFyb2l0dXM6IHRpZWRvc3RvbGxhICVzIG9uIHR1cnZhdHRvbWF0IG9pa2V1ZGV0ICUwNG8sIHN1b3NpdGVsbGFhbiAlIgorIjA0b1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyAtIGl0IGFwcGVhcnMgdG8gaGF2ZSBob2xlcy4iCittc2dzdHIgIiVzOiBPaGl0ZXRhYW4gdGllZG9zdG8gJXMg4oCTIHNpaW7DpCB2YWlrdXR0YWEgb2xldmFuIHJlaWtpw6QuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAic2lpcnR5bWluZW4gZXDDpG9ubmlzdHVpIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgc3dhcCBoZWFkZXIgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbGFzdF9wYWdlIDB4JTA4bGx4IGlzIGxhcmdlciB0aGFuIGFjdHVhbCBzaXplIG9mIHN3YXBzcGFjZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4gKFVzZSAtLWZpeHBnc3ogdG8gcmVpbml0aWFsaXplIGl0LikiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuIFJld3JpdGluZyB0aGUgc3dhcCBzaWduYXR1cmUuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ3OCBtb3VudC9zd2Fwb24uYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgb24gJXNcbiIKK21zZ3N0ciAiJXMgbGFpdHRlZWxsYSAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb24gZmFpbGVkIgorbXNnc3RyICIlcyBlcMOkb25uaXN0dWkuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzOiB0aWVkb3N0b2xsZSAlcyBlaSBsw7Z5ZHkgbGFpdGV0dGFcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQwCisjLCBmdXp6eQorbXNnaWQgIk5vdCBzdXBlcnVzZXIuIgorbXNnc3RyICJFdCBvbGUgcMOkw6Rrw6R5dHTDpGrDpC5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgIiVzIGVww6Rvbm5pc3R1aS5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgdW5zdXBwb3J0ZWQgcHJvZ3JhbSBuYW1lIChtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAtZlxuIgorbXNnc3RyICJ1bW91bnQ6IGvDpMOkbm5ldHR5IGlsbWFuIHR1a2VhIHZhbGl0c2ltZWxsZSAtZlxuIgorCisjOiBtb3VudC91bW91bnQuYzoxMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAidW1vdW50OiByeWhtw6QtaWQ6dMOkIGVpIHZvaSBhc2V0dGFhOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAidW1vdW50OiBrw6R5dHTDpGrDpC1pZDp0w6QgZWkgdm9pIGFzZXR0YWE6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgInVtb3VudDogaGFhcmF1dHRhbWluZW4gZWkgb25uaXN0dTogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlczogdmlyaGVlbGxpbmVuIGxvaGtvbGFpdGUiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIKK21zZ3N0ciAidW1vdW50OiAlczogZWkgb2xlIGxpaXRldHR5bsOkIgorCisjOiBtb3VudC91bW91bnQuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogY2FuJ3Qgd3JpdGUgc3VwZXJibG9jayIKK21zZ3N0ciAidW1vdW50OiAlczogc3VwZXJsb2hrb2EgZWkgdm9pIGtpcmpvaXR0YWEiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgZm91bmQiCittc2dzdHIgInVtb3VudDogJXM6IGVpIGzDtnlkeSIKKworIzogbW91bnQvdW1vdW50LmM6MTc1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVtb3VudCIKK21zZ3N0ciAidW1vdW50OiAlczogdmFhZGl0YWFuIHDDpMOka8OkeXR0w6Rqw6RuIG9pa2V1ZGV0IgorCisjOiBtb3VudC91bW91bnQuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogYmxvY2sgZGV2aWNlcyBub3QgcGVybWl0dGVkIG9uIGZzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBsb2hrb2xhaXR0ZWl0YSBlaSBzYWxsaXRhIHRpZWRvc3RvasOkcmplc3RlbG3DpHNzw6QiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiAlcyIKK21zZ3N0ciAidW1vdW50OiAlczogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1bW91bnQyLCB0cnlpbmcgdW1vdW50Li4uXG4iCittc2dzdHIgIm9oamVsbWFhIHVtb3VudDIgZWkgb2xlLCBrb2tlaWxsYWFuIG9oamVsbWFhIHVtb3VudC4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBidXN5IC0gcmVtb3VudGVkIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIG9uIHZhcmF0dHUg4oCTIHV1ZGVsbGVlbmxpaXRldHRpaW4gdmFpbiBsdWt1IC10aWxhc3NhXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvdWxkIG5vdCByZW1vdW50ICVzIHJlYWQtb25seVxuIgorbXNnc3RyICIiCisidW1vdW50OiBrb2h0ZWVuICVzIHV1ZGVsbGVlbmxpaXR0w6RtaW5lbiB2YWluIGx1a3UgLXRpbGFzc2EgZXDDpG9ubmlzdHVpXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1bW91bnRlZFxuIgorbXNnc3RyICIlcyBpcnJvdGV0dHVcbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgInVtb3VudDogaXJyb3RldHRhdmllbiB0aWVkb3N0b2rDpHJqZXN0ZWxtaWVuIGxpc3RhYSBlaSBsw7Z5ZHkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisiS8OkeXR0w7Y6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2dGllZC5qw6Ryai50eXlwaXRdIFstTyAiCisidmFsaXRzaW1ldF1cbiIKKyIgICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gZXJpa29pc3RpZWQgfCBzb2xtdS4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzo0NjgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiU2VrdG9yaSAlZCBvbiBqbyB2YXJhdHR1XG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiU2VrdG9yaSAlZCBvbiBqbyB2YXJhdHR1XG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ4NworbXNnaWQgIkNhbm5vdCB1bW91bnQgXCJcIlxuIgorbXNnc3RyICJLb2hkZXR0YSDigJ3igJ0gZWkgdm9pIGlycm90dGFhXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIllyaXRldMOkw6RuIGlycm90dGFhICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAiJXMgZWkgbMO2eXR5bnl0IHRpZWRvc3Rvc3RhIG10YWJcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IG1vdW50ZWQgKGFjY29yZGluZyB0byBtdGFiKSIKK21zZ3N0ciAidW1vdW50OiAlcyBlaSBvbGUgbGlpdGV0dHkgKG10YWItdGllZG9zdG9uIG11a2FhbikiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGl0IHNlZW1zICVzIGlzIG1vdW50ZWQgbXVsdGlwbGUgdGltZXMiCittc2dzdHIgInVtb3VudDogJXMgdmFpa3V0dGFhIG9sZXZhbiBsaWl0ZXR0eW7DpCB1c2VpdGEga2VydG9qYSIKKworIzogbW91bnQvdW1vdW50LmM6NTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAoYW5kIHlvdSBhcmUgbm90IHJvb3QpIgorbXNnc3RyICJ1bW91bnQ6ICVzIGVpIG9sZSB0aWVkb3N0b3NzYSBmc3RhYiAoZXRrw6Qgb2xlIHJvb3QpIgorCisjOiBtb3VudC91bW91bnQuYzo1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBtb3VudCBkaXNhZ3JlZXMgd2l0aCB0aGUgZnN0YWIiCittc2dzdHIgInVtb3VudDogJXMgb24gcmlzdGlyaWlkYXNzYSB0aWVkb3N0b24gZnN0YWIga2Fuc3NhIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBvbmx5ICVzIGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCittc2dzdHIgInVtb3VudDogdmFpbiAlcyB2b2kgaXJyb3R0YWEgbGFpdHRlZW4gJXMgcGFpa2FzdGEgJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjcwMQorbXNnaWQgInVtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICJ1bW91bnQ6IHZhaW4gcm9vdCB2b2kgdGVoZMOkIHTDpG3DpG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MuXG4iCisiXG4iCisiU2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIkdldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiXG4iCisiU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX1JSIChkZWZhdWx0KVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgb3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHNob3cgbWluIGFuZCBtYXggdmFsaWQgcHJpb3JpdGllc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKyIgIC1WIHwgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJPc2lvbiBraXJqb2l0dXMgZXDDpG9ubmlzdHVpIGxhaXR0ZWVsbGUgJXMiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgInR1bnRlbWF0dG9tYXNzYSAiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIGF0dHJpYnV0ZXMiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTE1CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcHJpb3JpdHk6ICVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG1pbi9tYXggcHJpb3JpdHlcdDogJWQvJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIk5GUyB5bGkgVENQOm4gZWkgb2xlIHR1ZXR0dS5cbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwaWQiCittc2dzdHIgIiVzOiBhdmFhbWluZW4gZXDDpG9ubmlzdHVpOiAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMjUKKyMsIGZ1enp5Cittc2dpZCAiY3VycmVudCIKK21zZ3N0ciAibmNvdW50IgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzMKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHByaW9yaXR5IgorbXNnc3RyICJPc2lvbiBraXJqb2l0dXMgZXDDpG9ubmlzdHVpIGxhaXR0ZWVsbGUgJXMiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHNldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIk9zaW9uIGtpcmpvaXR1cyBlcMOkb25uaXN0dWkgbGFpdHRlZWxsZSAlcyIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCisjLCBmdXp6eQorbXNnaWQgIm5ldyIKK21zZ3N0ciAiVXVzaSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBlaSBvbm5pc3R1bnV0IGx1a2VtYWFuIGFpa2FhIGtvaHRlZXN0YSAlcyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo1NworIywgZnV6enkKK21zZ2lkICJpb3ByaW9fZ2V0IGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBlcMOkb25uaXN0dWlcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorIywgZnV6enkKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBlcMOkb25uaXN0dWlcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisiXG4iCisiVXNhZ2U6XG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSA8Y29tbWFuZD4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBzY2hlZHVsaW5nIGNsYXNzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIDA6IG5vbmUsIDE6IHJlYWx0aW1lLCAyOiBiZXN0LWVmZm9ydCwgMzogaWRsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxMTAgc2NoZWR1dGlscy9pb25pY2UuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBwYXJzZSBudW1iZXIgJyVzJyIKK21zZ3N0ciAibGFpdGV0dGEgJXMgZWkgdm9pIGF2YXRhIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgImvDpHlubmlzdHlzIGVww6Rvbm5pc3R1aVxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICJWYWluIHJvb3Qgdm9pIG3DpMOkcml0ZWxsw6QgQ3RybC1BbHQtRGVsOm4gdmFpa3V0dWtzZW4uXG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIkvDpHl0dMO2OiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIlRpZWRvc3RvICVzLCBreW5ueXNhcnZvbGxlICVsdSwgc3V1cmluIG1lcmtraW3DpMOkcsOkIGZpZm9zc2Egb2xpICVkLFxuIgorImphIHN1dXJpbiBzaWlydG9ub3BldXMgKG1lcmtracOkL3Nla3VudGkpIG9saSAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSBhbmQgdGltcm91dCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyAiCisiaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiVGllZG9zdG8gJXMsIGt5bm55c2Fydm9sbGUgJWx1IGphIGFpa2FrYXRrYWlzdWFydm9sbGUgJWx1LCBzdXVyaW4gIgorIm1lcmtraW3DpMOkcsOkIGZpZm9zc2Egb2xpICVkLFxuIgorImphIHN1dXJpbiBzaWlydG9ub3BldXMgKG1lcmtracOkL3Nla3VudGkpIG9saSAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZpcmhlZWxsaW5lbiBzaXPDpGluZW4gYXJ2bzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVmlyaGVlbGxpbmVuIGFzZXRldHR1IGFydm86ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJWaXJoZWVsbGluZW4gb2xldHVzYXJ2bzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJWaXJoZWVsbGluZW4gYXNldGV0dHUgYWlrYS1hcnZvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJWaXJoZWVsbGluZW4gb2xldHVzYWlrYS1hcnZvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pICIKKyJbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCittc2dzdHIgIiIKKyJLw6R5dHTDtjogJXMgWy1xIFstaSB2w6RsaV1dIChbLXMgYXJ2b118Wy1TIGFydm9dKSAoWy10IGFydm9dfFstVCBhcnZvXSkgWy1nfC0iCisiR10gdGllZG9zdG8gW3RpZWRvc3RvLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjUwIHN5cy11dGlscy9jeXR1bmUuYzoyNjkgc3lzLXV0aWxzL2N5dHVuZS5jOjI4OQorIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJMYWl0ZXR0YSAlcyBlaSB2b2kgYXZhdGE6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiTGFpdHRlZWxsZSAlcyBlaSB2b2kgYXNldHRhYSBreW5ueXN0w6QgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRpbWUgdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICJMYWl0dGVlbGxlICVzIGVpIHZvaSBhc2V0dGFhIGFpa2FreW5ueXN0w6QgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyOTQgc3lzLXV0aWxzL2N5dHVuZS5jOjM1MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aHJlc2hvbGQgZm9yICVzOiAlc1xuIgorbXNnc3RyICJMYWl0dGVlbGxlICVzIGVpIHZvaSBoYWtlYSBreW5ueXN0w6Q6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiTGFpdHRlZWxsZSAlcyBlaSB2b2kgaGFrZWEgYWlrYXJhamFhOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3VycmVudCB0aHJlc2hvbGQgYW5kICVsZCBjdXJyZW50IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6ICVsZCBueWt5aW5lbiBreW5ueXMgamEgJWxkIG55a3lpbmVuIGFpa2FrYXRrYWlzdVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgZGVmYXVsdCB0aHJlc2hvbGQgYW5kICVsZCBkZWZhdWx0IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6ICVsZCBvbGV0dXNreW5ueXMgamEgJWxkIG9sZXR1c2Fpa2FrYXRrYWlzdVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzI3Cittc2dpZCAiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIgorbXNnc3RyICJTaWduYWFsaWvDpHNpdHRlbGlqw6TDpCBlaSB2b2kgYXNldHRhYSIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAiZ2V0dGltZW9mZGF5IGVww6Rvbm5pc3R1aSIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjM0NCBzeXMtdXRpbHMvY3l0dW5lLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGlzc3VlIENZR0VUTU9OIG9uICVzOiAlc1xuIgorbXNnc3RyICJMYWl0dGVlbGxlICVzIGVpIHZvaSBrw6R5dHTDpMOkIENZR0VUTU9OaWE6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYyAoY2hhci9zZWMpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2RtZXNnLmM6NDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstbiBsZXZlbF0gWy1yXSBbLXMgYnVmc2l6ZV1cbiIKK21zZ3N0ciAia8OkeXR0w7Y6ICVzIFstY10gWy1uIHRhc29dIFstcyBwdXNrdXJpbl9rb2tvXVxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGZpbGVuYW1lPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJLw6R5dHTDtjogJXMgW3ZhbGl0c2ltZXRdIDx0aWVkb3N0b25pbWk+XG4iCisiXG4iCisiVmFsaXRzaW1ldDpcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgZmFsbG9jYXRlKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisiTGlzw6R0aWV0b2phIG1hbnVhYWxpc2l2dWxsYSBmYWxsb2NhdGUoMSkuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDcKKyMsIGZ1enp5Cittc2dpZCAibm8gbGVuZ3RoIGFyZ3VtZW50IHNwZWNpZmllZCIKK21zZ3N0ciAiTGlpYW4gdsOkaMOkbiBhcmd1bWVudHRlamEiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDkKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBsZW5ndGggdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJWaXJoZWVsbGluZW4gYXNldGV0dHUgYXJ2bzogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9mZnNldCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlZpcmhlZWxsaW5lbiBhc2V0ZXR0dSBhcnZvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUzCisjLCBmdXp6eQorbXNnaWQgIm5vIGZpbGVuYW1lIHNwZWNpZmllZC4iCittc2dzdHIgIlZhbGl0c2ludGEgLS1kYXRlIGVpIG9sZSBhbm5ldHR1LlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTczCittc2dpZCAia2VlcCBzaXplIG1vZGUgKC1uIG9wdGlvbikgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhbGxvY2F0ZSBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgZXDDpG9ubmlzdHVpXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MTkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgcmVxdWlyZXMgZXhhY3RseSBvbmUgY29tbWFuZCBhcmd1bWVudFxuIgorbXNnc3RyICIlcyB2YWF0aWkgYXJndW1lbnRpblxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiB0aWVkb3N0b2EgJXMgZWkgdm9pIGF2YXRhOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogdmlyaGVlbGxpbmVuIGFydm9cbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZXF1aXJlcyBmaWxlIGRlc2NyaXB0b3IsIGZpbGUgb3IgZGlyZWN0b3J5XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6Mjk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZm9yayBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImhhYXJhdXR0YW1pbmVuIGVww6Rvbm5pc3R1aVxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiS8OkeXR0w7Y6ICVzIFt2YWxpdHNpbWV0XVxuIgorIlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxpc8OkdGlldG9qYSBtYW51YWFsaXNpdnVsbGEgaXBjbWsoMSkuXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0MgorbXNnaWQgImNyZWF0ZSBzaGFyZSBtZW1vcnkgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJTaGFyZWQgbWVtb3J5IGlkOiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MAorbXNnaWQgImNyZWF0ZSBtZXNzYWdlIHF1ZXVlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBxdWV1ZSBpZDogJWRcbiIKK21zZ3N0ciAiVmllc3Rpam9ub24gaWQ6ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1OAorIywgZnV6enkKK21zZ2lkICJjcmVhdGUgc2VtYXBob3JlIGZhaWxlZCIKK21zZ3N0ciAidmFyYXR0dWphIHNlbWFmb3JlamEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VtYXBob3JlIGlkOiAlZFxuIgorbXNnc3RyICJTZW1hZm9yaW4gaWQ6ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjY0CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWQ6ICVzXG4iCittc2dzdHIgInZpcmhlZWxsaW5lbiBpZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6ODIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCByZW1vdmUgaWQgJXMgKCVzKVxuIgorbXNnc3RyICJuaW1lw6RtaW5lbiAlcyDihpIgJXMgZWkgb25uaXN0dTogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVwcmVjYXRlZCB1c2FnZTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gcmVzb3VyY2UgdHlwZTogJXNcbiIKK21zZ3N0ciAidHVudGVtYXRvbiByZXN1cnNzaXR5eXBwaTogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAicmVzdXJzc2kodCkgcG9pc3RldHR1XG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiIKKyIgICAgICAgICAgWy1RIG1zZ2tleV0gWy1NIHNobWtleV0gWy1TIHNlbWtleV0gLi4uIF1cbiIKK21zZ3N0ciAiIgorImvDpHl0dMO2OiAlcyBbIFstcSB2c3Rqbm8taWRdIFstbSBqbXVpc3RpLWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCittc2dzdHIgIiVzOiB2aXJoZWVsbGluZW4gdmFsaXRzaW4g4oCTICVjXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBrZXkgKCVzKVxuIgorbXNnc3RyICIlczogdmlyaGVlbGxpbmVuIGF2YWluICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorIywgZnV6enkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICJtb3VudDogbHVwYSBldsOkdHR5IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTIgc3lzLXV0aWxzL2lwY3JtLmM6MjQzCittc2dpZCAiaW52YWxpZCBrZXkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjE1IHN5cy11dGlscy9pcGNybS5jOjI1MworIywgZnV6enkKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGtleSIKK21zZ3N0ciAiJXM6IFR1bnRlbWF0b24gdmlyaGUgdGllZG9zdG9zc2EgJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjM5CisjLCBmdXp6eQorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBpZCIKK21zZ3N0ciAibW91bnQ6IGx1cGEgZXbDpHR0eSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ0Cittc2dpZCAiaW52YWxpZCBpZCIKK21zZ3N0ciAidmlyaGVlbGxpbmVuIGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQgaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU0CisjLCBmdXp6eQorbXNnaWQgInVua25vd24gZXJyb3IgaW4gaWQiCittc2dzdHIgIiVzOiBUdW50ZW1hdG9uIHZpcmhlIHRpZWRvc3Rvc3NhICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgKCVzKVxuIgorbXNnc3RyICIlczogJXMgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gYXJndW1lbnQ6ICVzXG4iCittc2dzdHIgIiVzOiB0dW50ZW1hdG9uIGFyZ3VtZW50dGk6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICJrw6R5dHTDtiA6ICVzIC1hc21xIC10Y2x1cCBcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCittc2dzdHIgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIC1oIGZvciBoZWxwLlxuIgorbXNnc3RyICJcdCVzIC1oIG7DpHl0dMOkw6Qgb2hqZWVuLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHlvdSBoYXZlIHJlYWQgYWNjZXNzLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJSZXNvdXJjZSBTcGVjaWZpY2F0aW9uOlxuIgorIlx0LW0gOiBzaGFyZWRfbWVtXG4iCisiXHQtcSA6IG1lc3NhZ2VzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LXMgOiBzZW1hcGhvcmVzXG4iCisiXHQtYSA6IGFsbCAoZGVmYXVsdClcbiIKK21zZ3N0ciAiIgorIlx0LXMgOiBzZW1hZm9yaXRcbiIKKyJcdC1hIDoga2Fpa2tpIChvbGV0dXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdXRwdXQgRm9ybWF0OlxuIgorIlx0LXQgOiB0aW1lXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhdG9yXG4iCittc2dzdHIgIiIKKyJUdWxvc3R1c211b3RvOlxuIgorIlx0LXQgOiBhaWthXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBsdW9qYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKyJcdC1sIDogcmFqYXRcbiIKKyJcdC11IDogdGlpdmlzdGVsbcOkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNoYXJlZCBtZW1vcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEphZXR1biBtdWlzdGluIHJhamF0IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAic2VnbWVudHRlasOkIGVuaW50w6TDpG4gPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlZyBzaXplIChrYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgInNlZ21lbnRpbiBlbmltbcOkaXNrb2tvIChrdGF2dWEpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCB0b3RhbCBzaGFyZWQgbWVtb3J5IChrYnl0ZXMpID0gJWxsdVxuIgorbXNnc3RyICJqYWV0dHVhIG11aXN0aWEgeWh0ZWVuc8OkIGVuaW50w6TDpG4gKGt0YXZ1YSkgPSAlbGx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pbiBzZWcgc2l6ZSAoYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgInNlZ21lbnRpbiB2w6RoaW1tw6Rpc2tva28gKHRhdnVhKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEphZXR1biBtdWlzdGluIHRpbGEgLS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyByZXNpZGVudCAgJWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgc3dhcHBlZCAgICVsZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3YXAgcGVyZm9ybWFuY2U6ICVsZCBhdHRlbXB0c1x0ICVsZCBzdWNjZXNzZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgInNobWlkIgorbXNnc3RyICJqbXVpc3RpLWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAib2lrZXVkZXQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAiY3VpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjZ2lkIgorbXNnc3RyICJjZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAidWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImdpZCIKK21zZ3N0ciAiZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxIHN5cy11dGlscy9pcGNzLmM6MzA3CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNCBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUxMgorIzogc3lzLXV0aWxzL2lwY3MuYzo1MTggc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJvd25lciIKK21zZ3N0ciAib21pc3RhamEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiYXR0YWNoZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJkZXRhY2hlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorIywgZnV6enkKK21zZ2lkICJjaGFuZ2VkIgorbXNnc3RyICJLdW9yaSB2YWloZGV0dHUuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiY3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJscGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gSmFldHVuIG11aXN0aW4gc2VnbWVudGl0IC0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAiYXZhaW4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAiYnl0ZXMiCittc2dzdHIgInRhdnV0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgIm5hdHRjaCIKK21zZ3N0ciAibGlpdC1tw6TDpHLDpCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgInN0YXR1cyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMjkgc3lzLXV0aWxzL2lwY3MuYzozMzEgc3lzLXV0aWxzL2lwY3MuYzozMzMKKyM6IHN5cy11dGlscy9pcGNzLmM6NDQ0IHN5cy11dGlscy9pcGNzLmM6NDQ2IHN5cy11dGlscy9pcGNzLmM6NTQ1CisjOiBzeXMtdXRpbHMvaXBjcy5jOjU0NyBzeXMtdXRpbHMvaXBjcy5jOjU0OSBzeXMtdXRpbHMvaXBjcy5jOjYwMAorIzogc3lzLXV0aWxzL2lwY3MuYzo2MDIgc3lzLXV0aWxzL2lwY3MuYzo2MzAgc3lzLXV0aWxzL2lwY3MuYzo2MzIKKyM6IHN5cy11dGlscy9pcGNzLmM6NjM0IHN5cy11dGlscy9pcGNzLmM6NjU3Cittc2dpZCAiTm90IHNldCIKK21zZ3N0ciAiRWkgYXNldGV0dHUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAia29oZGUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICJsdWtpdHR1IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tIFNlbWFmb3JpZW4gcmFqYXQgLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgInRhdWx1a2tvamEgZW5pbnTDpMOkbiA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHBlciBhcnJheSA9ICVkXG4iCittc2dzdHIgInNlbWFmb3JlamEgdGF1bHVrb3NzYSBlbmludMOkw6RuID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICJzZW1hZm9yZWphIGrDpHJqZXN0ZWxtw6Rzc8OkIGVuaW50w6TDpG4gPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAib3BlcmFhdGlvaXRhIHNlbW9wLWt1dHN1YSBrb2hkZW4gZW5pbnTDpMOkbiA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbWFwaG9yZSBtYXggdmFsdWUgPSAlZFxuIgorbXNnc3RyICJzZW1hZm9yaW4gYXJ2byBlbmludMOkw6RuID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tLSBTZW1hZm9yaWVuIHRpbGEgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJrw6R5dGV0dHlqw6QgdGF1bHVrb2l0YSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBzZW1hcGhvcmVzID0gJWRcbiIKK21zZ3N0ciAidmFyYXR0dWphIHNlbWFmb3JlamEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0gU2VtYWZvcml0YXVsdWtvaWRlbiBMdW9qYXQvT21pc3RhamF0IC0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAic2VtaWQiCittc2dzdHIgInNlbWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNlbWFmb3JpZW4gT3BlcmFhdGlvLS9NdXV0b3NhamF0IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1vcCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorIywgZnV6enkKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgIlNhbGFzYW5hYSBlaSB2YWloZGV0dHUuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VtYWZvcml0YXVsdWtvdCAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMworIywgZnV6enkKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAia8OkeXR0w6Rqw6TDpCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBtZXNzYWdlIHF1ZXVlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLS0gVmllc3RpZW4gcmFqYXQgLS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICJqb25vamEgasOkcmplc3RlbG3DpHNzw6QgZW5pbnTDpMOkbiA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzaXplIG9mIG1lc3NhZ2UgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgInZpZXN0aW4ga29rbyBlbmludMOkw6RuICh0YXZ1YSkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJkZWZhdWx0IG1heCBzaXplIG9mIHF1ZXVlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJqb25vbiBvbGV0dXNlbmltbcOkaXNrb2tvICh0YXZ1YSkgPSAlZFxuIgorCisjIElsbWFuIGtha3NvaXNwaXN0ZXR0w6QgU3RhdHVzLW90c2lrb2lkZW4geWh0ZW7DpGlzeXlkZW4gdnVva3NpCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tIFZpZXN0aWVuIHRpbGEgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHF1ZXVlcyA9ICVkXG4iCittc2dzdHIgInZhcmF0dHVqYSBqb25vamEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGhlYWRlcnMgPSAlZFxuIgorbXNnc3RyICJrw6R5dGV0dHlqw6Qgb3RzYWtrZWl0YSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIgorbXNnc3RyICJrw6R5dGV0dHnDpCB0aWxhYSA9ICVkIHRhdnVhXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLS0gVmllc3Rpam9ub3Q6IEx1b2phdC9PbWlzdGFqYXQgLS0tLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUxMiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorIzogc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJtc3FpZCIKK21zZ3N0ciAidnN0am5vLWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgU2VuZC9SZWN2L0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLSBWaWVzdGlqb25vdDogTMOkaC4tL1Zhc3Qub3R0by0vTXV1dG9zYWphdCAtLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJzZW5kIgorbXNnc3RyICJzZW5kIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInJlY3YiCittc2dzdHIgInJlY3YiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAiY2hhbmdlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBQSURzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLS0gVmllc3Rpam9ub3Q6IFBJRGl0IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgImxzcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxycGlkIgorbXNnc3RyICJscnBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLS0tIFZpZXN0aWpvbm90IC0tLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgImvDpHl0LXRhdnV0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgIm1lc3NhZ2VzIgorbXNnc3RyICJ2aWVzdGl0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU4OQorbXNnaWQgInNobWN0bCBmYWlsZWQiCittc2dzdHIgInNobWN0bCBlcMOkb25uaXN0dWkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTaGFyZWQgbWVtb3J5IFNlZ21lbnQgc2htaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIkphZXR1biBtdWlzdGluIHNlZ21lbnR0aSBqbXVpc3RpLWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYXR0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiYXR0X3RpbWU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiZGV0X3RpbWU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDMgc3lzLXV0aWxzL2lwY3MuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hhbmdlX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiY2hhbmdlX3RpbWU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTUKKyMsIGZ1enp5Cittc2dpZCAibXNnY3RsIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMgZXDDpG9ubmlzdHVpIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiVmllc3Rpam9ub24gbXNxaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRtb2RlPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJjYnl0ZXM9JWxkXHRxYnl0ZXM9JWxkXHRxbnVtPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCittc2dzdHIgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VuZF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY0OCBzeXMtdXRpbHMvaXBjcy5jOjY3MAorIywgZnV6enkKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICJzaWlydHltaW5lbiBlcMOkb25uaXN0dWkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZW1hcGhvcmUgQXJyYXkgc2VtaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJuc2VtcyA9ICVsZFxuIgorbXNnc3RyICJuc2VtcyA9ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJvdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgIm90aW1lID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJjdGltZSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAic2VtbnVtIgorbXNnc3RyICJzZW1udW0iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAidmFsdWUiCittc2dzdHIgInZhbHVlIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgIm5jb3VudCIKK21zZ3N0ciAibmNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInpjb3VudCIKK21zZ3N0ciAiemNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInBpZCIKK21zZ3N0ciAicGlkIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFsgLWRoVjc4bmVvMTIgXSBbIC1zIDxzcGVlZD4gXSA8bGRpc2M+IDxkZXZpY2U+XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6OTEKK21zZ2lkICIiCisiXG4iCisiS25vd24gPGxkaXNjPiBuYW1lczpcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBzcGVlZDogJXMiCittc2dzdHIgInZpcmhlZWxsaW5lbiBub3BldXM6ICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibGRhdHRhY2ggZnJvbSAlc1xuIgorbXNnc3RyICJsZGF0dGFjaCDigJMgJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAidmlyaGVlbGxpbmVuIHZhbGl0c2luIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgbGluZSBkaXNjaXBsaW5lOiAlcyIKK21zZ3N0ciAidmlyaGVlbGxpbmVuIGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIHNlcmlhbCBsaW5lIgorbXNnc3RyICIlcyBlaSBvbGUgbG9oa29sYWl0ZSIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJsYWl0dGVlbiAlcyBrb2tvYSBlaSB2b2kgaGFrZWEiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHNldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgIkxldnlhc2VtYWxsYSBlaSB2b2kgc2lpcnR5w6QiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworIywgZnV6enkKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICJsYWl0ZXR0YSAlcyBlaSB2b2kgYXZhdGEiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0CisjLCBmdXp6eQorbXNnaWQgIm5vbmUiCittc2dzdHIgIkVpIG1pdMOkw6RuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NQorbXNnaWQgInBhcmEiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjYKK21zZ2lkICJmdWxsIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjEzNyBzeXMtdXRpbHMvbHNjcHUuYzoxNjAgc3lzLXV0aWxzL2xzY3B1LmM6NDU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgIlZpcmhlIHPDpMOkbm7DtmxsaXNlc3PDpCBsYXVzZWtrZWVzc2E6ICIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgInZpcmhlIGx1ZXR0YWVzc2EgdGllZG9zdG9hICVzXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE4NAorIywgZnV6enkKK21zZ2lkICJlcnJvcjogc3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAia2lyam9pdHRhbWluZW4gdmFraW90dWxvc3RlZXNlZW4gZXDDpG9ubmlzdHVpIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoyNjcKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHVuYW1lIGZhaWxlZCIKK21zZ3N0ciAidmlyaGU6IFVVSUQ6biBqw6RzZW5ueXMgZXDDpG9ubmlzdHVpIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MDYKK21zZ2lkICJlcnJvcjogbWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAidmlyaGU6IG1hbGxvYyBlcMOkb25uaXN0dWkiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICJ2aXJoZTogL3N5cy10aWVkb3N0b2rDpHJqZXN0ZWxtw6QgZWkgb2xlIGvDpHl0ZXR0w6R2aXNzw6QuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiMgVGhlIGZvbGxvd2luZyBpcyB0aGUgcGFyc2FibGUgZm9ybWF0LCB3aGljaCBjYW4gYmUgZmVkIHRvIG90aGVyXG4iCisiIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRFxuIgorIiMgc3RhcnRpbmcgZnJvbSB6ZXJvLlxuIgorIiMgQ1BVLENvcmUsU29ja2V0LE5vZGUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjE5Cittc2dpZCAiQ1BVIG9wLW1vZGUocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNQorbXNnaWQgIlRocmVhZChzKSBwZXIgY29yZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI2Cittc2dpZCAiQ29yZShzKSBwZXIgc29ja2V0OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjcKK21zZ2lkICJDUFUgc29ja2V0KHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzEKK21zZ2lkICJOVU1BIG5vZGUocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMworbXNnaWQgIlZlbmRvciBJRDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM1Cittc2dpZCAiQ1BVIGZhbWlseToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM3Cittc2dpZCAiTW9kZWw6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzOQorbXNnaWQgIlN0ZXBwaW5nOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDEKK21zZ2lkICJDUFUgTUh6OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDQgc3lzLXV0aWxzL2xzY3B1LmM6NjQ2CisjLCBmdXp6eQorbXNnaWQgIlZpcnR1YWxpemF0aW9uOiIKK21zZ3N0ciAiVmFuaGEgdGlsYW5uZTpcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1MAorbXNnaWQgIlZpcnR1YWxpemF0aW9uIHR5cGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjYWNoZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbl1cbiIKK21zZ3N0ciAiS8OkeXR0w7Y6ICVzIFt2YWxpdHNpbWV0XSBsYWl0ZSAuLi5cbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjcxOAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogY2hhbmdlIHdvcmtpbmcgZGlyZWN0b3J5IHRvICVzLiIKK21zZ3N0ciAidmlyaGU6IHZhaWhkYSB0ecO2aGFrZW1pc3Rva3NpICVzLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgImvDpHl0dMO2OiByZGV2IFsgLXJ2IF0gWyAtbyBTSUlSVFlNw4QgXSBbIFZFRE9TIFsgVkFMVUUgWyBTSUlSVFlNw4QgXSBdIF0iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzgKK21zZ2lkICIiCisiICByZGV2IC9kZXYvZmQwICAob3IgcmRldiAvbGludXgsIGV0Yy4pIGRpc3BsYXlzIHRoZSBjdXJyZW50IFJPT1QgZGV2aWNlIgorbXNnc3RyICIgIHJkZXYgL2Rldi9mZDAgICh0YWkgcmRldiAvbGludXgsIGpuZSkgbsOkeXR0w6TDpCBueWt5aXNlbiBKVVVSSWxhaXR0ZWVuIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc5Cittc2dpZCAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHNldHMgUk9PVCB0byAvZGV2L2hkYTIiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBhc2V0dGFhIEpVVVJFS1NJIC9kZXYvaGRhMiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIGFzZXRhIEpVVVJJTElQVVQgKHZhaW4gbHVrdSAtdGlsYSkiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODEKK21zZ2lkICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiCittc2dzdHIgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBhc2V0YSBSQU0tbGV2eW4ga29rbyIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBhc2V0YSBrw6R5bm5pc3R5a3NlbiBOw4RZVFTDllRJTEEiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODMKK21zZ2lkICIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAgdXNlIHRoZSBieXRlIG9mZnNldCBOIgorbXNnc3RyICIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAga8OkeXTDpCB0YXZ1c2lpcnR5bcOkw6QgTiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1hIGt1aW4gcmRldiAtUiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NQorbXNnaWQgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXIiCittc2dzdHIgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1hIGt1aW4gcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1hIGt1aW4gcmRldiAtdiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisiSHVvbTogTsOkeXR0w7Z0aWxhdCBvdmF0OiAtMz1LeXN5LCAtMj1MYWFqZW5uZXR0dSwgLTE9Tm9ybWFhbGlWZ2EsIDE9YXZhaW4xLCAiCisiMj1hdmFpbjIsLi4uIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiAgICAgIC1SIDEgbGlpdHTDpMOkIGp1dXJlbiB2YWluIGx1a3UgLXRpbGFhbiwgLVIgMCBsdWt1L2tpcmpvaXR1cy4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAicHV1dHR1dmEgcGlsa2t1IgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo3MiB0ZXh0LXV0aWxzL21vcmUuYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAibXVpc3RpIGxvcHVzc2EiCisKKyMgYy1mb3JtYXQKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiBcIiVzIFtvcHRpb25zXVxuIgorIlx0IC1tIDxtYXBmaWxlPiAgKGRlZmF1bHRzOiBcIiVzXCIgYW5kXG4iCisiXHRcdFx0XHQgIFwiJXNcIilcbiIKKyJcdCAtcCA8cHJvLWZpbGU+IChkZWZhdWx0OiBcIiVzXCIpXG4iCisiXHQgLU0gPG11bHQ+ICAgICBzZXQgdGhlIHByb2ZpbGluZyBtdWx0aXBsaWVyIHRvIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICAgcHJpbnQgb25seSBpbmZvIGFib3V0IHRoZSBzYW1wbGluZyBzdGVwXG4iCisiXHQgLXYgICAgICAgICAgICBwcmludCB2ZXJib3NlIGRhdGFcbiIKKyJcdCAtYSAgICAgICAgICAgIHByaW50IGFsbCBzeW1ib2xzLCBldmVuIGlmIGNvdW50IGlzIDBcbiIKKyJcdCAtYiAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgaGlzdG9ncmFtLWJpbiBjb3VudHNcbiIKKyJcdCAtcyAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgY291bnRlcnMgd2l0aGluIGZ1bmN0aW9uc1xuIgorIlx0IC1yICAgICAgICAgICAgcmVzZXQgYWxsIHRoZSBjb3VudGVycyAocm9vdCBvbmx5KVxuIgorIlx0IC1uICAgICAgICAgICAgZGlzYWJsZSBieXRlIG9yZGVyIGF1dG8tZGV0ZWN0aW9uXG4iCisiXHQgLVYgICAgICAgICAgICBwcmludCB2ZXJzaW9uIGFuZCBleGl0XG4iCittc2dzdHIgIiIKKyIlczogS8OkeXR0w7Y6IOKAnSVzIFt2YWxpdHNpbWV0XVxuIgorIlx0IC1tIDxrYXJ0dGF0aWVkPiAob2xldHVrc2V0OiDigJ0lc+KAnSBqYVxuIgorIlx0XHRcdFx0ICAgIOKAnSVz4oCdKVxuIgorIlx0IC1wIDxwcm9maWlsaT4gICAob2xldHVzOiDigJ0lc+KAnSlcbiIKKyJcdCAtTSA8a2Vycj4gICAgICAgYXNldHRhYSBwcm9maWxvaW50aWtlcnRvaW1la3NpIDxrZXJyPlxuIgorIlx0IC1pICAgICAgICAgICAgICBuw6R5dHTDpMOkIHZhaW4gdGllZG9uIOKAnXNhbXBsaW5nIHN0ZXDigJ06aXN0w6RcbiIKKyJcdCAtdiAgICAgICAgICAgICAgbW9uaXNhbmFpc3V1c1xuIgorIlx0IC1hICAgICAgICAgICAgICBuw6R5dHTDpMOkIGthaWtraSBzeW1ib2xpdCwgdmFpa2thIG3DpMOkcsOkIG9saXNpIDBcbiIKKyJcdCAtYiAgICAgICAgICAgICAgbsOkeXR0w6TDpCB5a3NpdHTDpGlzZXQg4oCdaGlzdG9ncmFtLWJpbuKAnS1tw6TDpHLDpHRcbiIKKyJcdCAtcyAgICAgICAgICAgICAgbsOkeXR0w6TDpCB5a3NpdHTDpGlzZXQgbGFza3VyaXQgZnVua3Rpb2lzc2FcbiIKKyJcdCAtciAgICAgICAgICAgICAgbm9sbGFhIGthaWtraSBsYXNrdXJpdCAodmFpbiBww6TDpGvDpHl0dMOkasOkbGxlKVxuIgorIlx0IC1uICAgICAgICAgICAgICBwb2lzdGFhIGvDpHl0w7ZzdMOkIHRhdnVqw6RyamVzdHlrc2VuIGF1dG9tYWF0dGl0dW5uaXN0dWtzZW5cbiIKKyJcdCAtViAgICAgICAgICAgICAgbsOkeXR0w6TDpCB2ZXJzaW9uIGphIHBvaXN0dXVcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJyZWFkcHJvZmlsZTogdmlyaGUga2lyam9pdGV0dGFlc3NhIHRpZWRvc3RvYSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuIFVzZSAtbiB0byBmb3JjZSBuYXRpdmUgYnl0ZSBvcmRlci5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiU2FtcGxpbmdfc3RlcDogJWlcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzA1IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMoJWkpOiB3cm9uZyBtYXAgbGluZVxuIgorbXNnc3RyICIlczogJXMoJWkpOiB2w6TDpHLDpCBrYXJ0YW4gcml2aVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIgorbXNnc3RyICIlczogbWVya2tpam9ub2Eg4oCdX3N0ZXh04oCdIGVpIGzDtnlkeSB0aWVkb3N0b3N0YSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIiCisiJXM6IHByb2ZpaWxpb3NvaXRlIHNhbGxpdHVuIHbDpGxpbiB1bGtvcHVvbGVsbGEuIFbDpMOkcsOkIGthcnR0YXRpZWRvc3RvP1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo0MTIKK21zZ2lkICJ0b3RhbCIKK21zZ3N0ciAieWh0ZWVuc8OkIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSBbLXB8LS1waWRdIHBpZCAgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtZ3wtLXBncnAgcGdycCBbLi4uIHBncnBdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtdXwtLXVzZXIgdXNlciBbLi4uIHVzZXJdXG4iCisiIHJlbmljZSAtaCB8IC0taGVscFxuIgorIiByZW5pY2UgLXYgfCAtLXZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkvDpHl0dMO2OlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0ZWV0dGkgWy1wfC0tcGlkXSBwaWQgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXRlZXR0aSAgLWd8LS1wZ3JwIHByeWhtw6QgWy4uLiBwcnlobcOkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0ZWV0dGkgIC11fC0tdXNlciBrw6R5dHTDpGrDpCBbLi4uIGvDpHl0dMOkasOkXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICJyZW5pY2Ug4oCTICVzXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogdW5rbm93biB1c2VyXG4iCittc2dzdHIgInJlbmljZTogJXM6IHR1bnRlbWF0b24ga8OkeXR0w6Rqw6RcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEzNAorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAicmVuaWNlOiAlczogdmlyaGVlbGxpbmVuIGFydm9cbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1MiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY0Cittc2dpZCAiZ2V0cHJpb3JpdHkiCittc2dzdHIgImdldHByaW9yaXR5IgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTU3Cittc2dpZCAic2V0cHJpb3JpdHkiCittc2dzdHIgInNldHByaW9yaXR5IgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkOiBvbGQgcHJpb3JpdHkgJWQsIG5ldyBwcmlvcml0eSAlZFxuIgorbXNnc3RyICIlZDogdmFuaGEgcHJpb3JpdGVldHRpICVkLCB1dXNpIHByaW9yaXRlZXR0aSAlZFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgW29wdGlvbnNdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGRldmljZT4gICAgc2VsZWN0IHJ0YyBkZXZpY2UgKHJ0YzB8cnRjMXwuLi4pXG4iCisiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIHVzZXMgbG9jYWwgdGltZXpvbmVcbiIKKyIgICAgLW0gfCAtLW1vZGUgICAgICAgICAgICAgICBzdGFuZGJ5fG1lbXwuLi4gc2xlZXAgbW9kZVxuIgorIiAgICAtcyB8IC0tc2Vjb25kcyA8c2Vjb25kcz4gIHNlY29uZHMgdG8gc2xlZXBcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB0aW1lIHRvIHdha2VcbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBSVEMgdXNlcyBVVENcbiIKKyIgICAgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICB2ZXJib3NlIG1lc3NhZ2VzXG4iCisiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgc2hvdyB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDIKK21zZ2lkICJyZWFkIHJ0YyB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQ3Cittc2dpZCAicmVhZCBzeXN0ZW0gdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE2NQorbXNnaWQgImNvbnZlcnQgcnRjIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjQKK21zZ2lkICJzZXQgcnRjIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI4Cittc2dpZCAiZW5hYmxlIHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIzMgorbXNnaWQgInNldCBydGMgd2FrZSBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5yZWNvZ25pemVkIHN1c3BlbmQgc3RhdGUgJyVzJ1xuIgorbXNnc3RyICIgJXM6IHR1bm5pc3RhbWF0b24gdmlycmFuc8Okw6RzdMO2dGlsYSDigJ0lc+KAnVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBpbnRlcnZhbCAlcyBzZWNvbmRzXG4iCittc2dzdHIgIiVzOiB2aXJoZWVsbGluZW4gYWlrYXbDpGxpICVzIHNla3VudGlhXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIHRpbWVfdCB2YWx1ZSAlc1xuIgorbXNnc3RyICIlczogdmlyaGVlbGxpbmVuIHRpbWVfdC1hcnZvICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB2ZXJzaW9uICVzXG4iCittc2dzdHIgIiVzOiB2ZXJzaW8gJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGFzc3VtaW5nIFJUQyB1c2VzIFVUQyAuLi5cbiIKK21zZ3N0ciAiJXM6IG9sZXRldGFhbiBSVEM6biBrw6R5dHTDpHbDpG4gVVRDOnTDpC4uLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwMworIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAiS8OkeXRldMOkw6RuIFVUQy1haWthYS5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgbG9jYWwgdGltZS5cbiIKK21zZ3N0ciAiS8OkeXRldMOkw6RuIHBhaWthbGxpc3RhIGFpa2FhLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIgorbXNnc3RyICIlczogaGVyw6R0eXNhaWthIG9uIGFubmV0dGF2YVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQxNworbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jKCkgZXDDpG9ubmlzdHVpIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iCittc2dzdHIgIiVzOiAlcyBlaSBvbGUgbHAtbGFpdGUuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGltZSBkb2Vzbid0IGdvIGJhY2t3YXJkIHRvICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWtldXAgZnJvbSBcIiVzXCIgdXNpbmcgJXMgYXQgJXNcbiIKK21zZ3N0ciAiVmllc3RpICUzJHM6bGxlIGtpcmphdXR1bmVlbHRhIGvDpHl0dMOkasOkbHTDpCAlMSRzQCUyJHMsIGtlbGxvICU0JHMuLi4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIGV4ZWN1dGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiB1dWRlbGxlZW5uaW1lw6RtaW5lbiAlcyDihpIgJXMgZWkgb25uaXN0dTogJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0OTYKK21zZ2lkICJydGMgcmVhZCIKK21zZ3N0ciAidmlyaGUgcnRjOnTDpCBsdWV0dGFlc3NhIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjUwNQorbXNnaWQgImRpc2FibGUgcnRjIGFsYXJtIGludGVycnVwdCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGluZyBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzJXMgW29wdGlvbnNdIFtwcm9ncmFtIFtwcm9ncmFtIGFyZ3VtZW50c11dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIkvDpHl0dMO2OiAlcyVzIFt2YWxpdHNpbWV0XSBbb2hqZWxtYSBbb2hqZWxtYW4gYXJndW1lbnRpdF1dXG4iCisiXG4iCisiVmFsaXRzaW1ldDpcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgc2V0YXJjaCg4KS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxpc8OkdGlldG9qYSBtYW51YWFsaXNpdnVsbGEgc2V0YXJjaCg4KS5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIiVzOiAlc1xuIgorIktvbWVudG8g4oCdJXMgLS1oZWxw4oCdIGFudGFhIGxpc8Okw6QgdGlldG9hLlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjIxNSBzeXMtdXRpbHMvc2V0YXJjaC5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5yZWNvZ25pemVkIGFyY2hpdGVjdHVyZSIKK21zZ3N0ciAiICVzOiBUdW5uaXN0YW1hdG9uIGFya2tpdGVodHV1cmkiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIkxpaWFuIHbDpGjDpG4gYXJndW1lbnR0ZWphIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiT3Npb24ga2lyam9pdHVzIGVww6Rvbm5pc3R1aSBsYWl0dGVlbGxlICVzIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgImvDpHl0dMO2OiAlcyBvaGplbG1hIFsgYXJnIC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKyJLw6R5dHTDtjogJXMgPGxhaXRlPiBbIC1pIDxJUlE+IHwgLXQgPEFJS0E+IHwgLWMgPE1FUktJVD4gfCAtdyA8T0RPVFVTPiB8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICJtYWxsb2MtdmlyaGUiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIlczogdmlyaGVlbGxpbmVuIGFydm9cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIKK21zZ3N0ciAiJXM6ICVzIGVpIG9sZSBscC1sYWl0ZS5cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdGF0dXMgaXMgJWQiCittc2dzdHIgIiVzOm4gdGlsYSBvbiAlZCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiwgdmFyYXR0dSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHJlYWR5IgorbXNnc3RyICIsIHZhbG1pcyIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG91dCBvZiBwYXBlciIKK21zZ3N0ciAiLCBwYXBlcmkgbG9wdXNzYSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICIsIG9uLWxpbmUiCittc2dzdHIgIiwgb24tbGluZSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGVycm9yIgorbXNnc3RyICIsIHZpcmhlIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6Mjg1Cittc2dpZCAiTFBHRVRJUlEgZXJyb3IiCittc2dzdHIgIkxQR0VUSVJRLXZpcmhlIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIlcyBrw6R5dHTDpMOkIElSUTp0YSAlZFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMga8OkeXR0w6TDpCBraWVydG9reXNlbHnDpFxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gPHByb2dyYW0+IFthcmdzLi4uXVxuIgorbXNnc3RyICJLw6R5dHTDtjogJXMgW3ZhbGl0c2ltZXRdIDxvaGplbG1hPiBbYXJnLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjYwCittc2dpZCAiIgorIlJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB1c2FnZSBpbmZvcm1hdGlvbiAodGhpcylcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgbW91bnRzIG5hbWVzcGFjZVxuIgorIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIFN5c3RlbSBWIElQQyBuYW1lc3BhY2VcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIHVuc2hhcmUgbmV0d29yayBuYW1lc3BhY2VcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdW5zaGFyZSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxpc8OkdGlldG9qYSBtYW51YWFsaXNpdnVsbGEgdW5zaGFyZSgxKS5cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTQKKyMsIGZ1enp5Cittc2dpZCAidW5zaGFyZSBmYWlsZWQiCittc2dzdHIgInNpaXJ0eW1pbmVuIGVww6Rvbm5pc3R1aSIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJrw6R5bm5pc3R5cyBlcMOkb25uaXN0dWlcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgImNvbDogdmlyaGVlbGxpbmVuIC1sIC1hcmd1bWVudHRpICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sIFstYmZweF0gWy1sIG5saW5lXVxuIgorbXNnc3RyICJrw6R5dHTDtjogY29sIFstYmZweF0gWy1sIHJpdmltw6TDpHLDpF1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiBraXJqb2l0dXN2aXJoZS5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6IHZhcm9pdHVzOiB2YXJtaXN0YW1pbmVuIGVpIG9ubmlzdHUgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAicGFzdCBmaXJzdCBsaW5lIgorbXNnc3RyICJlbnNpbW3DpGlzZXN0w6Qgcml2aXN0w6QgZXRlZW5ww6RpbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0gcml2aXB1c2t1cmkgb24gam8gdHloamVubmV0dHkiCisKKyM6IHRleHQtdXRpbHMvY29sY3J0LmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLSBdIFsgLTIgXSBbIGZpbGUgLi4uIF1cbiIKK21zZ3N0ciAia8OkeXR0w7Y6ICVzIFsgLSBdIFsgLTIgXSBbIHRpZWRvc3RvIC4uLiBdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mjk3Cittc2dpZCAibGluZSB0b28gbG9uZyIKK21zZ3N0ciAibGlpYW4gcGl0a8OkIHJpdmkiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAia8OkeXR0w7Y6IGNvbHVtbiBbLXR4XSAtYyBzYXJha2tlZXRdIFt0aWVkb3N0byAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdmlyaGVlbGxpbmVuIHBpdHV1c2Fydm8uXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IHZpcmhlZWxsaW5lbiBvaGl0dXNhcnZvLlxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbGVdIFstbiBsZW5ndGhdIFstcyBza2lwXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBtdW90b10gWy1mIG11b3RvdGllZF0gWy1uIHBpdHV1c10gWy1zIG9oaXRhXSAiCisiW3RpZWRvc3RvIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgImvDpHl0dMO2OiAlcyBbLWRmbHBjc3VdIFsrcml2aW51bWVybyB8ICsvaGFobW9dIG5pbWkxIG5pbWkyIC4uLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyOTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBpbml0aWFsaXplIGxpbmUgYnVmZmVyXG4iCittc2dzdHIgIlB1c2t1cmlhIGVpIHZvaSB2YXJhdGEuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBvcHRpb24gXCItJWNcIlxuIgorbXNnc3RyICIlczogdHVudGVtYXRvbiB2YWxpdHNpbiDigJ0tJWPigJ1cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczogaGFrZW1pc3RvICoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKioqKioqICVzOiBOb3QgYSB0ZXh0IGZpbGUgKioqKioqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKioqICVzOiBFaSBvbGUgdGVrc3RpdGllZG9zdG8gKioqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIltVc2UgcSBvciBRIHRvIHF1aXRdIgorbXNnc3RyICJbS8OkeXTDpCBxIHRhaSBRIGxvcGV0dGFha3Nlc2ldIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1Nb3JlLS0iCittc2dzdHIgIi0tTGlzw6TDpC0tIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiKE5leHQgZmlsZTogJXMpIgorbXNnc3RyICIoU2V1cmFhdmEgdGllZG9zdG86ICVzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyBzcGFjZSB0byBjb250aW51ZSwgJ3EnIHRvIHF1aXQuXSIKK21zZ3N0ciAiW1bDpGxpbHnDtm50aSBqYXRrYWEsIOKAnXHigJ0gbG9wZXR0YWEuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi4lZCBzaXZ1YSB0YWFrc2Vww6RpbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwOAorbXNnaWQgIi4uLmJhY2sgMSBwYWdlIgorbXNnc3RyICIuLi4xIHNpdnUgdGFha3NlcMOkaW4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTEKK21zZ2lkICIuLi5za2lwcGluZyBvbmUgbGluZSIKK21zZ3N0ciAiLi4ub2hpdGV0YWFuIHlrc2kgcml2aSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MworIywgYy1mb3JtYXQKK21zZ2lkICIuLi5za2lwcGluZyAlZCBsaW5lcyIKK21zZ3N0ciAiLi4ub2hpdGV0YWFuICVkIHJpdmnDpCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI5MAorbXNnaWQgIiIKKyJcbiIKKyIqKipCYWNrKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKipUYWthaXNpbioqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzI4Cittc2dpZCAiIgorIlxuIgorIk1vc3QgY29tbWFuZHMgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBpbnRlZ2VyIGFyZ3VtZW50IGsuICBEZWZhdWx0cyBpbiAiCisiYnJhY2tldHMuXG4iCisiU3RhciAoKikgaW5kaWNhdGVzIGFyZ3VtZW50IGJlY29tZXMgbmV3IGRlZmF1bHQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVc2VpbXBpYSBrb21lbnRvamEgdm9pIGVkZWx0w6TDpCB2YWxpbm5haW5lbiBrb2tvbmFpc2x1a3Vhcmd1bWVudHRpIGsuXG4iCisiT2xldHVzYXNldHVrc2V0IGhha2FzdWxrZWlzc2EuXG4iCisiQXN0ZXJpc2tpbGxhICgqKSBtZXJraXR5aXNzw6Qga29tZW5ub2lzc2EgYXJndW1lbnRpc3RhIHR1bGVlIHV1c2kgIgorIm9sZXR1c2Fydm8uXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMzUKK21zZ2lkICIiCisiPHNwYWNlPiAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFsxXSpcbiIKKyJkIG9yIGN0cmwtRCAgICAgICAgICAgICBTY3JvbGwgayBsaW5lcyBbY3VycmVudCBzY3JvbGwgc2l6ZSwgaW5pdGlhbGx5IDExXSpcbiIKKyJxIG9yIFEgb3IgPGludGVycnVwdD4gICBFeGl0IGZyb20gbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGxpbmVzIG9mIHRleHQgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorImIgb3IgY3RybC1CICAgICAgICAgICAgIFNraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGxpbmUgbnVtYmVyXG4iCisiLzxyZWd1bGFyIGV4cHJlc3Npb24+ICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiBsYXN0IHIuZSBbMV1cbiIKKyIhPGNtZD4gb3IgOiE8Y21kPiAgICAgICBFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBhdCBjdXJyZW50IGxpbmVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRyYXcgc2NyZWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIG5leHQgZmlsZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggcHJldmlvdXMgZmlsZSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCBwcmV2aW91cyBjb21tYW5kXG4iCittc2dzdHIgIiIKKyI8dsOkbGk+ICAgICAgICAgICAgICAgICAgTsOkeXTDpCBzZXVyYWF2YXQgayByaXZpw6QgdGVrc3Rpw6QgW255a3lpbmVuIHJ1dWR1biAiCisicml2aW3DpMOkcsOkXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIE7DpHl0w6Qgc2V1cmFhdmF0IGsgcml2acOkIHRla3N0acOkIFtueWt5aW5lbiBydXVkdW4gIgorInJpdmltw6TDpHLDpF0qXG4iCisiPHJldHVybj4gICAgICAgICAgICAgICAgTsOkeXTDpCBzZXVyYWF2YXQgayByaXZpw6QgdGVrc3Rpw6QgWzFdKlxuIgorImQgdGFpIGN0cmwtRCAgICAgICAgICAgIFZpZXJpdMOkIGsgcml2acOkIFtueWt5aW5lbiB2aWVyaXR5c23DpMOkcsOkLCBhbGt1YXJ2byAxMV0iCisiKlxuIgorInEgdGFpIFEgb3IgPGtlc2tleXR5cz4gIFBvaXN0dSBtb3Jlc3RhXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgT2hpdGEgayByaXZpw6QgamEgc2lpcnJ5IGV0ZWVucMOkaW4gWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgT2hpdGEgayBydXV0dWEgdGVrc3Rpw6QgamEgc2lpcnJ5IGV0ZWVucMOkaW4gWzFdXG4iCisiYiB0YWkgY3RybC1CICAgICAgICAgICAgT2hpdGEgayBydXV0dWEgdGVrc3Rpw6QgamEgc2lpcnJ5IHRhYWtzZXDDpGluIFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIFBhbGFhIGtvaHRhYW4sIGpvc3RhIGVkZWxsaW5lbiBoYWt1IGFsa29pXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgTsOkeXTDpCBueWt5aW5lbiByaXZpbnVtZXJvXG4iCisiLzxzw6TDpG5uw7ZsbGluZW4gbGF1c2VrZT4gRXRzaSBzw6TDpG5uw7ZsbGlzZW4gbGF1c2Vra2VlbiBrOnMgZXNpaW50eW3DpCBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBFdHNpIGVkZWxsaXNlbiBzw6TDpG5uw7ZsbGlzZW4gbGF1c2Vra2VlbiBrOnMgZXNpaW50eW3DpCAiCisiWzFdXG4iCisiITxrb20+IHRhaSA6ITxrb20+ICAgICAgS8OkeW5uaXN0w6QgPGtvbT4gYWxpa3VvcmVzc2FcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBLw6R5bm5pc3TDpCAvdXNyL2Jpbi92aSBueWt5aXNlbGxlIHJpdmlsbGVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBQaWlycsOkIHJ1dXR1IHV1ZGVsbGVlblxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIFNpaXJyeSBrOm50ZWVuIHNldXJhYXZhYW4gdGllZG9zdG9vbiBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBTaWlycnkgazpudGVlbiBlZGVsbGlzZWVuIHRpZWRvc3Rvb24gWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgTsOkeXTDpCBueWt5aW5lbiB0aWVkb3N0b25pbWkgamEgcml2aW51bWVyb1xuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFRvaXN0YSBlZGVsbGluZW4ga29tZW50b1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIltOw6RwcMOkaW4g4oCdaOKAnSBuw6R5dHTDpMOkIG9oamVpdGEuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0MworIywgYy1mb3JtYXQKK21zZ2lkICJcIiVzXCIgbGluZSAlZCIKK21zZ3N0ciAi4oCdJXPigJ0gcml2aSAlZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJbTm90IGEgZmlsZV0gbGluZSAlZCIKK21zZ3N0ciAiW0VpIHRpZWRvc3RvXSByaXZpICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTI5Cittc2dpZCAiICBPdmVyZmxvd1xuIgorbXNnc3RyICIgIFlsaXZ1b3RvXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIuLi5vaGl0ZXRhYW5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYwNQorbXNnaWQgIlJlZ3VsYXIgZXhwcmVzc2lvbiBib3RjaCIKK21zZ3N0ciAiVmlyaGUgc8Okw6RubsO2bGxpc2Vzc8OkIGxhdXNla2tlZXNzYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiSGFobW9hIGVpIGzDtnlkeVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjE2IHRleHQtdXRpbHMvcGcuYzoxMTI3IHRleHQtdXRpbHMvcGcuYzoxMjc4Cittc2dpZCAiUGF0dGVybiBub3QgZm91bmQiCittc2dzdHIgIkhhaG1vYSBlaSBsw7Z5ZHkiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2NzcKK21zZ2lkICJjYW4ndCBmb3JrXG4iCittc2dzdHIgImhhYXJhdXR0YW1pbmVuIGVpIG9ubmlzdHVcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKyJcbiIKKyIuLi5PaGl0ZXRhYW4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiLi4uVmFpaGRldGFhbiB0aWVkb3N0b29uICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMgorbXNnaWQgIi4uLlNraXBwaW5nIGJhY2sgdG8gZmlsZSAiCittc2dzdHIgIi4uLlBhbGF0YWFuIHRpZWRvc3Rvb24gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiTGlpYW4gcGl0a8OkIHJpdmkiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwNDMKK21zZ2lkICJObyBwcmV2aW91cyBjb21tYW5kIHRvIHN1YnN0aXR1dGUgZm9yIgorbXNnc3RyICJFaSBlZGVsbGlzdMOkIGtvbWVudG9hIGtvcnZhdHRhdmFrc2kiCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IG9kKDEpIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGhleGR1bXAoMSkuXG4iCittc2dzdHIgIm9kOiBvZCgxKSBvbiB2YW5oZW50dW51dCwgb24gc3Vvc2l0ZWx0YXZhYSBrw6R5dHTDpMOkIGhleGR1bXAoMSkuXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IGhleGR1bXAoMSkgY29tcGF0aWJpbGl0eSBkb2Vzbid0IHN1cHBvcnQgdGhlIC0lYyBvcHRpb24lc1xuIgorbXNnc3RyICJvZDogaGV4ZHVtcCgxKS15aHRlZW5zb3BpdnV1cyBlaSB0dWUgLSVjIC12YWxpdHNpbnRhJXNcbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzNAorbXNnaWQgIjsgc2VlIHN0cmluZ3MoMSkuIgorbXNnc3RyICI7IGthdHNvIHN0cmluZ3MoMSkuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdGllZG9zdG9hICVzIGVpIHZvaSBsdWtlYS5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgImhleGR1bXA6IGxpaWFuIHBpdGvDpCByaXZpLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJ5dGUgY291bnQgd2l0aCBtdWx0aXBsZSBjb252ZXJzaW9uIGNoYXJhY3RlcnMuXG4iCittc2dzdHIgImhleGR1bXA6IHRhdnVtw6TDpHLDpCB1c2VpZGVuIG11dW5ub3NtZXJra2llbiBrYW5zc2EuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiB2aXJoZWVsbGluZW4gdGF2dW3DpMOkcsOkIG11dW5ub3NtZXJraWxsZSAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiAlJXMgcmVxdWlyZXMgYSBwcmVjaXNpb24gb3IgYSBieXRlIGNvdW50LlxuIgorbXNnc3RyICJoZXhkdW1wOiAlJXMgdmFhdGlpIHRhcmtrdXVkZW4gdGFpIHRhdnVtw6TDpHLDpG4uXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGZvcm1hdCB7JXN9XG4iCittc2dzdHIgImhleGR1bXA6IHZpcmhlZWxsaW5lbiBtdW90byB7JXN9XG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iCittc2dzdHIgImhleGR1bXA6IHZpcmhlZWxsaW5lbiBtdXVubm9zbWVya2tpICUlJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMjMKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJNdWlzdGkgbG9wdXNzYSIKKworIzogdGV4dC11dGlscy9wZy5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiAlcyBbLW51bWJlcl0gWy1wIHN0cmluZ10gWy1jZWZucnNdIFsrbGluZV0gWysvcGF0dGVybi9dIFtmaWxlc11cbiIKK21zZ3N0ciAiIgorIiVzOiBLw6R5dHTDtjogJXMgWy1udW1iZXJdIFstcCBtZXJra2lqb25vXSBbLWNlZm5yc10gWytyaXZpXSBbKy9oYWhtby9dICIKKyJbdGllZG9zdG90XVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IHZhbGl0c2luIHZhYXRpaSBhcmd1bWVudGluIOKAkyAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczogdmlyaGVlbGxpbmVuIHZhbGl0c2luIOKAkyAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcwCittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICIuLi5vaGl0ZXRhYW4gZXRlZW5ww6RpblxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcyCittc2dpZCAiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIKK21zZ3N0ciAiLi4ub2hpdGV0YWFuIHRhYWtzZXDDpGluXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTQKK21zZ2lkICJObyBuZXh0IGZpbGUiCittc2dzdHIgIkVpIHNldXJhYXZhYSB0aWVkb3N0b2EiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTgKK21zZ2lkICJObyBwcmV2aW91cyBmaWxlIgorbXNnc3RyICJFaSBlZGVsbGlzdMOkIHRpZWRvc3RvYSIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEx1a3V2aXJoZSB0aWVkb3N0b3N0YSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmV4cGVjdGVkIEVPRiBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBPZG90dGFtYXRvbiB0aWVkb3N0b24gbG9wcHUgKEVPRikgdGllZG9zdG9zc2EgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBlcnJvciBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBUdW50ZW1hdG9uIHZpcmhlIHRpZWRvc3Rvc3NhICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgY3JlYXRlIHRlbXBmaWxlXG4iCittc2dzdHIgIiVzOiBWw6RsaWFpa2Fpc3RpZWRvc3RvYSBlaSB2b2kgbHVvZGFcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwNDQgdGV4dC11dGlscy9wZy5jOjEyMTkgdGV4dC11dGlscy9wZy5jOjEyNDYKK21zZ2lkICJSRSBlcnJvcjogIgorbXNnc3RyICJWaXJoZSBzw6TDpG5uw7ZsbGlzZXNzw6QgbGF1c2Vra2Vlc3NhOiAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIih0aWVkb3N0b24gbG9wcHUpIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAiRWkgbXVpc3RldHR1YSBoYWt1bWVya2tpam9ub2EiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICJFaSB2b2kgYXZhdGEgIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICJ0YWxsZW5uZXR0dSIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIjogIS1rb21lbnRvIGVpIG9sZSBzYWxsaXR0dSByYWpvaXRldHVzc2EgdGlsYXNzYS5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiZm9yaygpIGVww6Rvbm5pc3R1aSwgeXJpdMOkIG15w7ZoZW1taW4gdXVkZWxsZWVuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNzA1Cittc2dpZCAiKE5leHQgZmlsZTogIgorbXNnc3RyICIoU2V1cmFhdmEgdGllZG9zdG86ICIKKworIzogdGV4dC11dGlscy9yZXYuYzoxMTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJQdXNrdXJpdGlsYWEgZWkgdm9pIHZhcmF0YVxuIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAia8OkeXR0w7Y6IHJldiBbdGllZG9zdG8gLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6NTggdGV4dC11dGlscy90YWlsZi5jOjkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiCittc2dzdHIgIlRpZWRvc3RvYSDigJ0lc+KAnSBlaSB2b2kgYXZhdGEgbHVrdWEgdmFydGVuXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo5NiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBcIiVzXCIiCittc2dzdHIgImxhaXR0ZWVuICVzIHRpbGFhIGVpIHZvaSBsdWtlYSIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJpbmNvbXBsZXRlIHdyaXRlIHRvIFwiJXNcIiAod3JpdHRlbiAlemQsIGV4cGVjdGVkICV6ZClcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2ggKGxpbWl0IG9mIGlub3RpZnkgd2F0Y2hlcyB3YXMgcmVhY2hlZCkuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaC4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCByZWFkIGlub3RpZnkgZXZlbnRzIgorbXNnc3RyICIlczogdGllZG9zdG9hICVzIGVpIHZvaSBhdmF0YVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKK21zZ2lkICJpbnZhbGlkIG51bWJlciBvZiBsaW5lcyIKK21zZ3N0ciAidmlyaGVlbGxpbmVuIHJpdmllbiBtw6TDpHLDpCIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICJrw6R5dHTDtjogdGFpbGYgWy1uIE4gfCAtTl0gbG9raXRpZWRvc3RvIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgImvDpHl0dMO2OiAlcyBbIC1pIF0gWyAtdFRlcm0gXSB0aWVkb3N0by4uLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgInRyb3VibGUgcmVhZGluZyB0ZXJtaW5mbyIKK21zZ3N0ciAib25nZWxtYSBsdWV0dGFlc3NhIHRlcm1pbmZvYSIKKworIzogdGV4dC11dGlscy91bC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIGVzY2FwZSBzZXF1ZW5jZSBpbiBpbnB1dDogJW8sICVvXG4iCittc2dzdHIgIlR1bnRlbWF0b24gb2hqYXVzc2FyamEgc3nDtnR0ZWVzc8OkOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJQdXNrdXJpYSBlaSB2b2kgdmFyYXRhLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIlN5w7Z0ZXJpdmkgb24gbGlpYW4gcGl0a8OkLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAiTXVpc3RpIGxvcHB1aSBrYXN2YXRldHRhZXNzYSBwdXNrdXJpYS5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBDaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICBHaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIEdpdmUgZmRpc2sgdmVyc2lvblxuIgorI34gIkhlcmUgRElTSyBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYiBvciAvZGV2L3NkYVxuIgorI34gImFuZCBQQVJUSVRJT04gaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGdpdmUgU3RhcnQgYW5kIEVuZCBpbiBzZWN0b3IgKGluc3RlYWQgb2YgY3lsaW5kZXIpIHVuaXRzXG4iCisjfiAiLWIgMjA0ODogKGZvciBjZXJ0YWluIE1PIGRpc2tzKSB1c2UgMjA0OC1ieXRlIHNlY3RvcnNcbiIKKyN+IG1zZ3N0ciAiIgorI34gIkvDpHl0dMO2OiBmZGlzayBbLWIgU1NaXSBbLXVdIExFVlkgICAgIE11dXRhIG9zaW90YXVsdWFcbiIKKyN+ICIgICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gTEVWWSAgTsOkeXTDpCBvc2lvdGF1bHUodClcbiIKKyN+ICIgICAgICAgIGZkaXNrIC1zIE9TSU8gICAgICAgICAgICAgICAgTsOkeXTDpCBvc2lvKGlkZSluIGtva28va29vdCBsb2hrb2luYVxuIgorI34gIiAgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICBOw6R5dMOkIGZkaXNraW4gdmVyc2lvXG4iCisjfiAiVMOkc3PDpCBMRVZZIG9uIGVzaW1lcmtpa3NpIC9kZXYvaGRiIHRhaSAvZGV2L3NkYVxuIgorI34gImphIE9TSU8gb24gZXNpbWVya2lrc2kgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGFubmEgQWxrdSBqYSBMb3BwdSBzZWt0b3JlaW5hIChzeWxpbnRlcmllbiBzaWphYW4pXG4iCisjfiAiLWIgMjA0ODogKHRpZXR5aWxsZSBNTy1sZXZ5aWxsZSkga8OkeXTDpCAyMDQ4IHRhdnVuIHNla3RvcmVpdGFcbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGRldmljZVxuIgorI34gIkUuZy46IGZkaXNrIC9kZXYvaGRhICAoZm9yIHRoZSBmaXJzdCBJREUgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3NkYyAgKGZvciB0aGUgdGhpcmQgU0NTSSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvZWRhICAoZm9yIHRoZSBmaXJzdCBQUy8yIEVTREkgZHJpdmUpXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9yZC9jMGQwICBvcjogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKGZvciBSQUlEIGRldmljZXMpXG4iCisjfiAiICAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkvDpHl0dMO2OiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0gbGFpdGVcbiIKKyN+ICJFc2ltOiBmZGlzayAvZGV2L2hkYSAgKGVuc2ltbcOkaW5lbiBJREUtbGV2eSlcbiIKKyN+ICIgdGFpOiBmZGlzayAvZGV2L3NkYyAgKGtvbG1hcyBTQ1NJLWxldnkpXG4iCisjfiAiIHRhaTogZmRpc2sgL2Rldi9lZGEgIChlbnNpbW3DpGluZW4gUFMvMiBFU0RJIC1hc2VtYSlcbiIKKyN+ICIgdGFpOiBmZGlzayAvZGV2L3JkL2MwZDAgIHRhaTogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKFJBSUQtbGFpdHRlZXQpXG4iCisjfiAiICAuLi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJUaGUgbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkaXNrIGlzIHNldCB0byAlZC5cbiIKKyN+ICJUaGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggdGhhdCwgYnV0IHRoaXMgaXMgbGFyZ2VyIHRoYW4gMTAyNCxcbiIKKyN+ICJhbmQgY291bGQgaW4gY2VydGFpbiBzZXR1cHMgY2F1c2UgcHJvYmxlbXMgd2l0aDpcbiIKKyN+ICIxKSBzb2Z0d2FyZSB0aGF0IHJ1bnMgYXQgYm9vdCB0aW1lIChlLmcuLCBvbGQgdmVyc2lvbnMgb2YgTElMTylcbiIKKyN+ICIyKSBib290aW5nIGFuZCBwYXJ0aXRpb25pbmcgc29mdHdhcmUgZnJvbSBvdGhlciBPU3NcbiIKKyN+ICIgICAoZS5nLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAiVMOkbcOkbiBsZXZ5biBzeWxpbnRlcmVpZGVuIG3DpMOkcsOka3NpIG9uIGFzZXRldHR1ICVkLlxuIgorI34gIlNpaW7DpCBlaSBvbGUgbWl0w6TDpG4gdmlrYWEsIG11dHRhIHNlIG9uIHN1dXJlbXBpIGt1aW4gMTAyNCwgamEgdm9pXG4iCisjfiAidGlldHlpc3PDpCBrb2tvb25wYW5vaXNzYSBhaWhldXR0YWEgb25nZWxtaWEgc2V1cmFhdmlzc2EgdGFwYXVrc2lzc2E6XG4iCisjfiAiMSkga8OkeW5uaXN0eWtzZXNzw6QgYWpldHRhdmF0IG9oamVsbWF0IChlc2ltLiBMSUxPbiB2YW5oYXQgdmVyc2lvdClcbiIKKyN+ICIyKSBtdWlkZW4ga8OkeXR0w7Zqw6RyamVzdGVsbWllbiBrw6R5bm5pc3R5cy0gamEgb3Npb2ludGlvaGplbG1hdFxuIgorI34gIiAgIChlc2ltLiBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisKKyN+IG1zZ2lkICJzdXBlcmJsb2NrIHNpemUgKCVsdSkgdG9vIHNtYWxsIgorI34gbXNnc3RyICJzdXBlcmxvaGtvbiBrb2tvICglbHUpIG9uIGxpaWFuIHBpZW5pIgorCisjfiBtc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzaWJsZS4iCisjfiBtc2dzdHIgInZpcmhlOiAvc3lzLXRpZWRvc3RvasOkcmplc3RlbG3DpCBlaSBvbGUga8OkeXRldHTDpHZpc3PDpC4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAib3V0IGlmIG1lbW9yeSIKKyN+IG1zZ3N0ciAibXVpc3RpIGxvcHVzc2EiCisKKyN+IG1zZ2lkICIjIHBhcnRpdGlvbiB0YWJsZSBvZiAlc1xuIgorI34gbXNnc3RyICIjICVzOm4gb3Npb3RhdWx1XG4iCisKKyN+IG1zZ2lkICIiCisjfiAidW5pdDogc2VjdG9yc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIiCisjfiAieWtzaWtrw7Y6IHNla3Rvcml0XG4iCisjfiAiXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIHN0YXJ0PSU5bHUiCisjfiBtc2dzdHIgImFsdW4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBzaXplPSU5bHUiCisjfiBtc2dzdHIgIk1heGtva289JWxkXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBib290YWJsZSIKKyN+IG1zZ3N0ciAiQUlYIGvDpHlubmlzdGV0dMOkdsOkIgorCisjLCBmdXp6eQorI34gbXNnaWQgIkNsb2NrIGluIFVUQywgbm90IGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIkt1b3J0YSBlaSB2YWloZGV0dHUuXG4iCisKKyN+IG1zZ2lkICIlczogZXJyb3I6IGxhYmVsIG9ubHkgd2l0aCB2MSBzd2FwIGFyZWFcbiIKKyN+IG1zZ3N0ciAiJXM6IHZpcmhlOiB2YXN0YSBzaXZ1dHVzdGlsYW4gdmVyc2lvIDEgdHVrZWUgbmltacO2aXTDpFxuIgorCisjfiBtc2dpZCAiZmF0YWw6IGZpcnN0IHBhZ2UgdW5yZWFkYWJsZSIKKyN+IG1zZ3N0ciAidmFrYXZhYTogZW5zaW1tw6RpbmVuIHNpdnUgb24gbHVrdWtlbHZvdG9uIgorCisjfiBtc2dpZCAiIgorI34gIiVzOiBEZXZpY2UgJyVzJyBjb250YWlucyBhIHZhbGlkIFN1biBkaXNrbGFiZWwuXG4iCisjfiAiVGhpcyBwcm9iYWJseSBtZWFucyBjcmVhdGluZyB2MCBzd2FwIHdvdWxkIGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUuXG4iCisjfiAiTm8gc3dhcCB3YXMgY3JlYXRlZC4gSWYgeW91IHJlYWxseSB3YW50IHRvIGNyZWF0ZSB2MCBzd2FwIG9uIHRoYXQgIgorI34gImRldmljZSxcbiIKKyN+ICJ1c2UgdGhlIC1mIG9wdGlvbiB0byBmb3JjZSBpdC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBMYWl0dGVlbGxhIOKAnSVz4oCdIG9uIGtlbHZvbGxpbmVuIFN1bi1sZXZ5bmltacO2LlxuIgorI34gIlTDpG3DpCB0YXJrb2l0dGFhIHRvZGVubsOka8O2aXNlc3RpIHNpdMOkLCBldHTDpCB2MC1zaXZ1dHVzYWx1ZWVuIGx1b21pbmVuICIKKyN+ICJ0dWhvYWlzaVxuIgorI34gIm9zaW90YXVsdW4uIFNpdnV0dXNhbHVldHRhIGVpIGx1b3R1LiBKb3MgdG9kZWxsYSBoYWx1YXQgbHVvZGEgdjAtIgorI34gInNpdnV0dXNhbHVlZW5cbiIKKyN+ICJreXNlaXNlbGxlIGxhaXR0ZWVsbGUsIGvDpHl0w6QgdmFsaXRzaW50YSAtZiBzZW4gcGFrb3R0YW1pc2Vlbi5cbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gZ2V0IGN1cnJlbnQgZGlyZWN0b3J5IC0gJXNcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IG55a3lpc3TDpCBoYWtlbWlzdG9hIGVpIHZvaWRhIGhha2VhIOKAkyAlc1xuIgorCisjfiBtc2dpZCAibmFtZWk6IHVuYWJsZSB0byBjaGRpciB0byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGhha2VtaXN0b29uICVzIGVpIHZvaSBzaWlydHnDpCDigJMgJXMgKCVkKVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBjaGRpciB0byByb290IVxuIgorI34gbXNnc3RyICJuYW1laToganV1cmVlbiBzaWlydHltaW5lbiBlcMOkb25uaXN0dWkhXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IHN0YXQgcm9vdCFcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGp1dXJlbiB0aWxhYSBlaSB2b2l0dSBsdWtlYSFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IHB1c2t1cmluIHlsaXZ1b3RvXG4iCisKKyN+IG1zZ2lkICIgPyBjb3VsZCBub3QgY2hkaXIgaW50byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAiID8gc2lpcnR5bWluZW4gaGFrZW1pc3Rvb24gJXMgZXDDpG9ubmlzdHVpIOKAkyAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IG9uZ2VsbWlhIGx1ZXR0YWVzc2Egc3ltbGlua2tpw6QgJXMg4oCTICVzICglZClcbiIKKworI34gbXNnaWQgIiAgKioqIEVYQ0VFREVEIFVOSVggTElNSVQgT0YgU1lNTElOS1MgKioqXG4iCisjfiBtc2dzdHIgIiAgKioqIFVOSVhJTiBTWU1MSU5LS0lFTiBSQUpBIFlMSVRFVFRJSU4gKioqXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5rbm93biBmaWxlIHR5cGUgMCUwNm8gb24gZmlsZSAlc1xuIgorI34gbXNnc3RyICJuYW1laTogdGllZG9zdG9sbGEgJTIkcyBvbiB0dW50ZW1hdG9uIHR5eXBwaSAwJTEkMDZvXG4iCisKKyMgRWVlZWlpaWkuLi4KKyN+IG1zZ2lkICJtb3VudDogZ29pbmcgdG8gbW91bnQgJXMgYnkgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGxpaXRldMOkw6RuICVzICVzOm4gcGVydXN0ZWVsbGFcbiIKKworI34gbXNnaWQgIm1vdW50OiBubyBMQUJFTD0sIG5vIFVVSUQ9LCBnb2luZyB0byBtb3VudCAlcyBieSBwYXRoXG4iCisjfiBtc2dzdHIgIm1vdW50OiBlaSBMQUJFTD0sIGVpIFVVSUQ9LCBsaWl0ZXTDpMOkbiAlcyBwb2x1biBwZXJ1c3RlZWxsYVxuIgorCisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczogaGFhcmF1dHRhbWluZW4gZWkgb25uaXN0dTogJXNcbiIKKworI34gbXNnaWQgIiVzOiB3YWl0cGlkOiAlc1xuIgorI34gbXNnc3RyICIlczogd2FpdHBpZDogJXNcbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3Qgc3RhdCAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IHRpZWRvc3RvbiAlcyB0aWxhYSBlaSB2b2kgbHVrZWE6ICVzXG4iCisKKyN+IG1zZ2lkICJjb3VsZCBub3QgdW1vdW50ICVzIC0gdHJ5aW5nICVzIGluc3RlYWRcbiIKKyN+IG1zZ3N0ciAiIgorI34gImtvaHRlZW4gJXMgaXJyb3R0YW1pbmVuIGVww6Rvbm5pc3R1aSDigJMgeXJpdGV0w6TDpG4gc2VuIHNpamFhbiBpcnJvdHRhYSAlc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTI2LjI0cyAlLTI2LjI0c1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKworI34gbXNnaWQgImNhbGxpbmcgb3Blbl90dHlcbiIKKyN+IG1zZ3N0ciAia3V0c3V0YWFuIG9wZW5fdHR5XG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIHRlcm1pb19pbml0XG4iCisjfiBtc2dzdHIgImt1dHN1dGFhbiB0ZXJtaW9faW5pdFxuIgorCisjfiBtc2dpZCAid3JpdGluZyBpbml0IHN0cmluZ1xuIgorI34gbXNnc3RyICJraXJqb2l0ZXRhYW4gYWx1c3R1c21lcmtraWpvbm9hXG4iCisKKyN+IG1zZ2lkICJiZWZvcmUgYXV0b2JhdWRcbiIKKyN+IG1zZ3N0ciAiZW5uZW4gYXV0b2JhdWRpYVxuIgorCisjfiBtc2dpZCAid2FpdGluZyBmb3IgY3ItbGZcbiIKKyN+IG1zZ3N0ciAib2RvdGV0YWFuIGNyLWxmXG4iCisKKyN+IG1zZ2lkICJyZWFkaW5nIGxvZ2luIG5hbWVcbiIKKyN+IG1zZ3N0ciAibHVldGFhbiBrw6R5dHTDpGrDpHR1bm51c1xuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAiZ2V0b3B0LXNpbG11a2FuIGrDpGxrZWVuXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlYXJnc1xuIgorI34gbXNnc3RyICJwb2lzdHV0YWFuIHBhcnNlYXJnczppc3RhXG4iCisKKyN+IG1zZ2lkICJlbnRlcmVkIHBhcnNlX3NwZWVkc1xuIgorI34gbXNnc3RyICJhbG9pdGV0dGlpbiBwYXJzZV9zcGVlZHNcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VzcGVlZHNcbiIKKyN+IG1zZ3N0ciAicG9pc3R1dGFhbiBrb2hkYXN0YSBwYXJzZXNwZWVkc1xuIgorCisjfiBtc2dpZCAib3BlbigyKVxuIgorI34gbXNnc3RyICJvcGVuKDIpXG4iCisKKyN+IG1zZ2lkICJkdXBpbmdcbiIKKyN+IG1zZ3N0ciAia29waW9pZGFhbiB0aWVkb3N0b2thaHZhXG4iCisKKyN+IG1zZ2lkICJ0ZXJtX2lvIDJcbiIKKyN+IG1zZ3N0ciAidGVybV9pbyAyXG4iCisKKyN+IG1zZ2lkICJjaGZuOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImNoZm46IFBBTS12aXJoZSwga2Vza2V5dGV0w6TDpG46ICVzXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxsc1xuIgorI34gbXNnc3RyICJWYXJvaXR1czog4oCdJXPigJ0gZWkgb2xlIGxpc3RhdHR1bmEgdGllZG9zdG9zc2EgL2V0Yy9zaGVsbHNcbiIKKworI34gbXNnaWQgIkNhbid0IHJlYWQgJXMsIGV4aXRpbmcuIgorI34gbXNnc3RyICJUaWVkb3N0b2EgJXMgZWkgdm9pIGx1a2VhLCBwb2lzdHV0YWFuLiIKKworI34gbXNnaWQgImxvZ2luOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImxvZ2luOiBQQU0tdmlyaGUsIGtlc2tleXRldMOkw6RuOiAlc1xuIgorCisjfiBtc2dpZCAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorI34gbXNnc3RyICJhaWthcmFqYSA9ICVkLCBoaWxqYWlzdXVzID0gJWQsIHV1ZGVsbGVlbmvDpHlubmlzdHlzID0gJWRcbiIKKworI34gbXNnaWQgImNvdWxkbid0IHJlYWQgJXMsIGFuZCBjYW5ub3QgaW9jdGwgZHVtcFxuIgorI34gbXNnc3RyICJ0aWVkb3N0b2EgJXMgZWkgdm9pdHUgbHVrZWEsIGVpa8OkIGR1bXAtaW9jdGwgb25uaXN0dVxuIgorCisjfiBtc2dpZCAiLCBvZmZzZXQgJWxsZCIKKyN+IG1zZ3N0ciAiLCBzaWlydHltw6QgJWxsZCIKKworI34gbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZGV2aWNlIC9kZXYvbG9vcCMiCisjfiBtc2dzdHIgIiVzOiBlaSBsw7Z5dHlueXQgeWh0w6TDpG4gbGFpdGV0dGEgL2Rldi9sb29wIyIKKworI34gbXNnaWQgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDogc2lpcnJldMOkw6RuIHRhdXN0YWxsZSDigJ0lc+KAnVxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdpdmluZyB1cCBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGx1b3Z1dGV0YWFuIOKAnSVz4oCdXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAia8OkeXR0w7Y6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgICVzIFstdl0gWy1wIHByaW9yaXRlZXR0aV0gZXJpa29pc3RpZWRvc3RvfExBQkVMPWxldnluX25pbWnDtiAuLi5cbiIKKyN+ICIgICAgICAgICVzIFstc11cbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIHNwZWNpYWwgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJrw6R5dHTDtjogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgICVzIC1hIFstdl1cbiIKKyN+ICIgICAgICAgICVzIFstdl0gZXJpa29pc3RpZWRvc3RvIC4uLlxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBjYW5ub3QgY2Fub25pY2FsaXplICVzOiAlc1xuIgorI34gbXNnc3RyICIlczogdGllZG9zdG9hICVzIGVpIHZvaSBhdmF0YTogJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogcmVuaWNlIHByaW9yaXR5IFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwcyBdIFsgWyAtdSBdIHVzZXJzIF1cbiIKKyN+IG1zZ3N0ciAiIgorI34gImvDpHl0dMO2OiByZW5pY2UgcHJpb3JpdGVldHRpIFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwcyBdIFsgWyAtdSBdICIKKyN+ICJrw6R5dHTDpGrDpHQgXVxuIgorCisjfiBtc2dpZCAiXHQtJWNcdEVuYWJsZSAlc1xuIgorI34gbXNnc3RyICJcdC0lY1x0T3RhIGvDpHl0dMO2w7ZuICVzXG4iCisKKyN+IG1zZ2lkICJVbmtub3duIG9wdGlvbiBgJWMnIGlnbm9yZWQiCisjfiBtc2dzdHIgIlR1bnRlbWF0b24gdmFsaXRzaW4g4oCdJWPigJ0gasOkdGV0dHkgaHVvbWlvdHRhIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCisjfiBtc2dzdHIgIuKAnSVz4oCdOiB2aWFsbGluZW4gaGFrZW1pc3RvOiDigJ0u4oCdIGVpIG9sZSBlbnNpbW3DpGlzZW7DpFxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKKyN+IG1zZ3N0ciAi4oCdJXPigJ06IHZpYWxsaW5lbiBoYWtlbWlzdG86IOKAnS4u4oCdIGVpIG9sZSB0b2lzZW5hXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBlcnJvci4iCisjfiBtc2dzdHIgIlNhbGFzYW5hdmlyaGUuIgorCisjfiBtc2dpZCAiJXMgZnJvbSB1dGlsLWxpbnV4LSVzXG4iCisjfiBtc2dzdHIgIiVzIHBha2V0aXN0YSB1dGlsLWxpbnV4LSVzXG4iCisKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJXMgcGFrZXRpc3RhICVzJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJFeGNlZWRlZCBNQVhFTlRSSUVTLiAgUmFpc2UgdGhpcyB2YWx1ZSBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICAiCisjfiAiRXhpdGluZy5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIk1BWEVOVFJJRVMgeWxpdGV0dHkuIEthc3ZhdGEgdMOkdMOkIGFydm9hIHRpZWRvc3Rvc3NhIG1rY3JhbWZzLmMgamEga8Okw6RubsOkICIKKyN+ICJ1dWRlbGxlZW4uIFBvaXN0dXRhYW4uXG4iCisKKyN+IG1zZ2lkICJBc3N1bWluZyBwYWdlcyBvZiBzaXplICVkIChub3QgJWQpXG4iCisjfiBtc2dzdHIgIk9sZXRldGFhbiBzaXZ1amVuIGtvb2tzaSAlZCAoZWkgJWQpXG4iCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZvdW5kIGEgJXMlcyVzXG4iCisjfiBtc2dzdHIgIkF1dG9tYWF0dGlrb25maWd1cm9pbnRpIGzDtnlzaTogJXMlcyVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRHJpdmUgdHlwZVxuIgorI34gIiAgID8gICBhdXRvIGNvbmZpZ3VyZVxuIgorI34gIiAgIDAgICBjdXN0b20gKHdpdGggaGFyZHdhcmUgZGV0ZWN0ZWQgZGVmYXVsdHMpIgorI34gbXNnc3RyICIiCisjfiAiQXNlbWFuIHR5eXBwaVxuIgorI34gIiAgID8gICBhdXRvbWFhdHRpbmVuIGtvbmZpZ3Vyb2ludGlcbiIKKyN+ICIgICAwICAgbXVrYXV0ZXR0dSAobGFpdHRlaXN0b24gbXVrYWlzaWxsYSBvbGV0dWtzaWxsYSkiCisKKyN+IG1zZ2lkICJTZWxlY3QgdHlwZSAoPyBmb3IgYXV0bywgMCBmb3IgY3VzdG9tKTogIgorI34gbXNnc3RyICJWYWxpdHNlIHR5eXBwaSAoPzogYXV0b21hYXR0aW5lbiwgMDogbXVrYXV0ZXR0dSk6ICIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZmFpbGVkLlxuIgorI34gbXNnc3RyICJBdXRvbWFhdHRpbmVuIGtvbmZpZ3Vyb2ludGkgZXDDpG9ubmlzdHVpLlxuIgorCisjfiBtc2dpZCAiQWx0ZXJuYXRlIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiVmFpaHRvZWh0b2lzZXQgc3lsaW50ZXJpdCIKKworI34gbXNnaWQgIlBoeXNpY2FsIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiRnl5c2lzZXQgc3lsaW50ZXJpdCIKKworI34gbXNnaWQgIllvdSBtYXkgY2hhbmdlIGFsbCB0aGUgZGlzayBwYXJhbXMgZnJvbSB0aGUgeCBtZW51IgorI34gbXNnc3RyICJWb2l0IHPDpMOkdMOkw6Qga2Fpa2tpYSBsZXZ5biBwYXJhbWV0cmVqYSB4LXZhbGlrb3N0YSIKKworI34gbXNnaWQgIjMsNVwiIGZsb3BweSIKKyN+IG1zZ3N0ciAiMyw1XCIgbGV2eWtlIgorCisjfiBtc2dpZCAiTGludXggY3VzdG9tIgorI34gbXNnc3RyICJtdWthdXRldHR1IExpbnV4IgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiB0aGUgbGFiZWwgJXMgb2NjdXJzIG9uIGJvdGggJXMgYW5kICVzXG4iCisjfiBtc2dzdHIgIiVzOiBuaW1pw7YgJXMgZXNpaW50eXkgc2Vrw6QgcGFpa2Fzc2EgJXMgZXR0w6QgJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICIlczogY291bGQgbm90IG9wZW4gJXMsIHNvIFVVSUQgYW5kIExBQkVMIGNvbnZlcnNpb24gY2Fubm90IGJlIGRvbmUuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczogbGFpdGV0dGEgJXMgZWkgdm9pdHUgYXZhdGEsIGpvdGVuIFVVSUQtIGphIExBQkVMLW11dW5ub3N0YSBlaSB2b2kgIgorI34gInRlaGTDpC5cbiIKKworI34gbXNnaWQgIiVzOiBiYWQgVVVJRCIKKyN+IG1zZ3N0ciAiJXM6IHZpcmhlZWxsaW5lbiBVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IGZhaWxlZCB3aXRoIG5mcyBtb3VudCB2ZXJzaW9uIDQsIHRyeWluZyAzLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBlcMOkb25uaXN0dWkgbmZzIG1vdW50IC12ZXJzaW9sbGEgNCwgeXJpdGV0w6TDpG4gdmVyc2lvbGxhIDMuLlxuIgorCisjfiBtc2dpZCAibW91bnQ6IG1vdW50aW5nICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiBsaWl0ZXTDpMOkbiAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGNhbm5vdCBmaW5kICVzIGluICVzIgorI34gbXNnc3RyICJtb3VudDogJXMgZWkgbMO2eWR5IHRpZWRvc3Rvc3RhICVzIgorCisjfiBtc2dpZCAibW91bnQ6IGVycm9yIHdoaWxlIGd1ZXNzaW5nIGZpbGVzeXN0ZW0gdHlwZVxuIgorI34gbXNnc3RyICJtb3VudDogdmlyaGUgYXJ2YXR0YWVzc2EgdGllZG9zdG9qw6RyamVzdGVsbcOkbiB0eXlwcGnDpFxuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgaG9zdDpkaXIgYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGxpaWFuIHBpdGvDpCBrb25lbmltaTpoYWtlbWlzdG8tYXJndW1lbnR0aVxuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IG11bHRpcGxlIGhvc3RuYW1lcyBub3Qgc3VwcG9ydGVkXG4iCisjfiBtc2dzdHIgIm1vdW50OiB2YXJvaXR1czogdXNlaXRhIGtvbmVuaW1pw6QgZWkgdHVldGFcbiIKKworI34gbXNnaWQgIm1vdW50OiBkaXJlY3RvcnkgdG8gbW91bnQgbm90IGluIGhvc3Q6ZGlyIGZvcm1hdFxuIgorI34gbXNnc3RyICJtb3VudDogbGlpdGV0dMOkdsOkIGhha2VtaXN0byBlaSBvbGUga29uZTpoYWtlbWlzdG8tbXVvZG9zc2FcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG5pbWVsbGUgJXMgZWkgdm9pIGhha2VhIG9zb2l0ZXR0YVxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgIm1vdW50OiBzYWF0aWluIHZpcmhlZWxsaW5lbiBocC0+aF9sZW5ndGhcbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIG9wdGlvbiBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogbGlpYW4gcGl0a8OkIHZhbGl0c2luYXJndW1lbnR0aVxuIgorCisjfiBtc2dpZCAiV2FybmluZzogVW5yZWNvZ25pemVkIHByb3RvPSBvcHRpb24uXG4iCisjfiBtc2dzdHIgIlZhcm9pdHVzOiBUdW5uaXN0YW1hdG9uIHByb3RvPSAtdmFsaXRzaW4uXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBPcHRpb24gbmFtbGVuIGlzIG5vdCBzdXBwb3J0ZWQuXG4iCisjfiBtc2dzdHIgIlZhcm9pdHVzOiBWYWxpdHNpbnRhIG5hbWxlbiBlaSB0dWV0YS5cbiIKKworI34gbXNnaWQgIldhcm5pbmc6IG9wdGlvbiBub2xvY2sgaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAiVmFyb2l0dXM6IHZhbGl0c2ludGEgbm9sb2NrIGVpIHR1ZXRhLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgb3B0aW9uOiAlcyVzXG4iCisjfiBtc2dzdHIgInR1bnRlbWF0b24gbmZzLWxpaXRvc3ZhbGl0c2luOiAlcyVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGg/XG4iCisjfiBtc2dzdHIgIm1vdW50OiBzYWF0aWluIHZpcmhlZWxsaW5lbiBocC0+aF9sZW5ndGg/XG4iCisKKyN+IG1zZ2lkICJuZnMgYmluZHJlc3Zwb3J0IgorI34gbXNnc3RyICJuZnMgYmluZHJlc3Zwb3J0IgorCisjfiBtc2dpZCAibmZzIHNlcnZlciByZXBvcnRlZCBzZXJ2aWNlIHVuYXZhaWxhYmxlIgorI34gbXNnc3RyICJuZnMtcGFsdmVsaW4gaWxtb2l0dGksIGV0dGVpIHBhbHZlbHUgb2xlIGvDpHl0ZXR0w6R2aXNzw6QiCisKKyN+IG1zZ2lkICJ1c2VkIHBvcnRtYXBwZXIgdG8gZmluZCBORlMgcG9ydFxuIgorI34gbXNnc3RyICJrw6R5dGV0dGlpbiBwb3J0dGlrYXJ0b2l0aW50YSBORlMtcG9ydGluIGV0c2ltaXNlZW5cbiIKKworI34gbXNnaWQgInVzaW5nIHBvcnQgJWQgZm9yIG5mcyBkZWFtb25cbiIKKyN+IG1zZ3N0ciAia8OkeXRldMOkw6RuIHBvcnR0aWEgJWQgbmZzLXBhbHZlbGltZWxsZVxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgc3RhdHVzIHJldHVybiB2YWx1ZTogJWQiCisjfiBtc2dzdHIgInR1bnRlbWF0b24gbmZzIHN0YXR1cyAtcGFsdXVhcnZvOiAlZCIKKworI34gbXNnaWQgImhvc3Q6ICVzLCBkaXJlY3Rvcnk6ICVzXG4iCisjfiBtc2dzdHIgImtvbmU6ICVzLCBoYWtlbWlzdG86ICVzXG4iCisKKyN+IG1zZ2lkICJ1bW91bnQ6IGNhbid0IGdldCBhZGRyZXNzIGZvciAlc1xuIgorI34gbXNnc3RyICJ1bW91bnQ6IG5pbWVsbGUgJXMgZWkgc2FhZGEgb3NvaXRldHRhXG4iCisKKyN+IG1zZ2lkICJ1bW91bnQ6IGdvdCBiYWQgaG9zdHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgInVtb3VudDogc2FhdGlpbiB2aXJoZWVsbGluZW4gaG9zdHAtPmhfbGVuZ3RoXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWJhZCBwYXRoIGxlbmd0aFxuIgorI34gbXNnc3RyICIlczogdmlyaGVlbGxpbmVuIGNyYW1mcy0tdsOkw6Ryw6QgcG9sdW4gcGl0dXVzXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLXdyb25nIG1hZ2ljXG4iCisjfiBtc2dzdHIgIiVzOiB2aXJoZWVsbGluZW4gY3JhbWZzLS12w6TDpHLDpCB0YWlrYVxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1jcmMgZXJyb3JcbiIKKyN+IG1zZ3N0ciAiJXM6IHZpcmhlZWxsaW5lbiBjcmFtZnMtLWNyYy12aXJoZVxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1iYWQgc3VwZXJibG9ja1xuIgorI34gbXNnc3RyICIlczogdmlyaGVlbGxpbmVuIGNyYW1mcy0tdmlhbGxpbmVuIHN1cGVybG9oa29cbiIKKworI34gbXNnaWQgIm1rZnMgdmVyc2lvbiAlcyAoJXMpXG4iCisjfiBtc2dzdHIgIm1rZnMtdmVyc2lvICVzICglcylcbiIKKworI34gbXNnaWQgImZsb2NrOiB1bmtub3duIG9wdGlvbiwgYWJvcnRpbmcuXG4iCisjfiBtc2dzdHIgImZsb2NrOiB0dW50ZW1hdG9uIHZhbGl0c2luLCBrZXNrZXl0ZXTDpMOkbi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZSBmbG9jayBbLS1zaGFyZWRdIFstLXRpbWVvdXQ9c2Vjb25kc10gZmlsZW5hbWUgY29tbWFuZCB7YXJnIGFyZy4uLn1cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkvDpHl0dMO2OiBmbG9jayBbLS1zaGFyZWRdIFstLXRpbWVvdXQ9c2VrdW5uaXRdIHRpZWRvc3RvIGtvbWVudG8ge2FyZyAiCisjfiAiYXJnLi4ufVxuIgorCisjfiBtc2dpZCAiU3ludGF4IGVycm9yOiAnJXMnXG4iCisjfiBtc2dzdHIgIlN5bnRha3NpdmlyaGU6IFwiJXNcIlxuIgorCisjfiBtc2dpZCAiTm8gc3VjaCBwYXJhbWV0ZXIgc2V0OiAnJXMnXG4iCisjfiBtc2dzdHIgIlBhcmFtZXRyaWEgZWkgb2xlIGFzZXRldHR1OiBcIiVzXCJcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLXAgXSBkZXYgbmFtZVxuIgorI34gbXNnc3RyICIgICAlcyBbIC1wIF0gbGFpdGUgbmltaVxuIgorCisjfiBtc2dpZCAiIgorI34gIiAgICVzIFsgLXAgXSBkZXYgc2l6ZSBzZWN0IGhlYWRzIHRyYWNrcyBzdHJldGNoIGdhcCByYXRlIHNwZWMxIGZtdF9nYXBcbiIKKyN+IG1zZ3N0ciAiIgorI34gIiAgICVzIFsgLXAgXSBsYWl0ZSBrb2tvIHNla3QgcMOkw6R0IHJhaWRhdCB2ZW55dHlzIHbDpGxpIGFzdGUgZXJpazEgIgorI34gImZtdF92w6RsaVxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGRldlxuIgorI34gbXNnc3RyICIgICAlcyBbIC1jIHwgLXkgfCAtbiB8IC1kIF0gbGFpdGVcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLWMgfCAteSB8IC1uIF0gZGV2XG4iCisjfiBtc2dzdHIgIiAgICVzIFsgLWMgfCAteSB8IC1uIF0gbGFpdGVcbiIKKworI34gbXNnaWQgInZlcnNpb24iCisjfiBtc2dzdHIgInZlcnNpbyIKKworI34gbXNnaWQgImNvdWxkbid0IG9wZW4gL2Rldi91cmFuZG9tIgorI34gbXNnc3RyICJsYWl0ZXR0YSAvZGV2L3VyYW5kb20gZWkgdm9pdHUgYXZhdGEiCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkIHJhbmRvbSBkYXRhIGZyb20gL2Rldi91cmFuZG9tIgorI34gbXNnc3RyICJ0aWVkb3N0b3N0YSAvZGV2L3VyYW5kb20gZWkgdm9pdHUgbHVrZWEgc2F0dW5uYWlzZGF0YWEiCisKKyN+IG1zZ2lkICJjYW4ndCBzdGF0KCVzKSIKKyN+IG1zZ3N0ciAidGllZG9zdG9uICVzIHRpbGFhIGVpIHZvaSBsdWtlYSIKKworI34gbXNnaWQgIiVzIGRvZXNuJ3QgaGF2ZSB0aGUgY29ycmVjdCBmaWxlbW9kZXMiCisjfiBtc2dzdHIgInRpZWRvc3RvbiAlcyB0aWxhIGVpIG9sZSBvaWtlYSIKKworI34gbXNnaWQgImNhbid0IHJlYWQgZGF0YSBmcm9tICVzIgorI34gbXNnc3RyICJ0aWVkb3N0b3N0YSAlcyBlaSB2b2kgbHVrZWEgZGF0YWEiCisKKyN+IG1zZ2lkICIiCisjfiAiVG9vIG1hbnkgdXNlcnMgbG9nZ2VkIG9uIGFscmVhZHkuXG4iCisjfiAiVHJ5IGFnYWluIGxhdGVyLlxuIgorI34gbXNnc3RyICIiCisjfiAiTGlpYW4gbW9udGEga8OkeXR0w6Rqw6TDpCBvbiBqbyBraXJqYXV0dW5lZW5hLlxuIgorI34gIllyaXTDpCBtecO2aGVtbWluIHV1ZGVsbGVlbi5cbiIKKworI34gbXNnaWQgIllvdSBoYXZlIHRvbyBtYW55IHByb2Nlc3NlcyBydW5uaW5nLlxuIgorI34gbXNnc3RyICJMaWlhbiBtb250YSBwcm9zZXNzaWEga8OkeW5uaXNzw6QuXG4iCisKKyN+IG1zZ2lkICJUaGUgcGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDYgY2hhcmFjdGVycywgdHJ5IGFnYWluLlxuIgorI34gbXNnc3RyICJTYWxhc2FuYXNzYSBvbiBvbHRhdmEgdsOkaGludMOkw6RuIGt1dXNpIG1lcmtracOkLCB5cml0w6QgdXVkZWxsZWVuLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlRoZSBwYXNzd29yZCBtdXN0IGNvbnRhaW4gY2hhcmFjdGVycyBvdXQgb2YgdHdvIG9mIHRoZSBmb2xsb3dpbmdcbiIKKyN+ICJjbGFzc2VzOiAgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBub24gYWxwaGFudW1lcmljXG4iCisjfiAiY2hhcmFjdGVycy4gU2VlIHBhc3N3ZCgxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlNhbGFzYW5hbiBtZXJra2llbiBvbiBvbHRhdmEgc2V1cmFhdmlzdGEga2FoZGVzdGEgcnlobcOkc3TDpDpcbiIKKyN+ICJpc290IGphIHBpZW5ldCBraXJqYWltZXQsIG51bWVyb3QgamEgZWktYWxmYW51bWVlcmlzZXRcbiIKKyN+ICJtZXJraXQuIExpc8OkdGlldG9qYSBtYW51YWFsaXNpdnVsbGEgcGFzc3dkKDEpLlxuIgorCisjfiBtc2dpZCAiWW91IGNhbm5vdCByZXVzZSB0aGUgb2xkIHBhc3N3b3JkLlxuIgorI34gbXNnc3RyICJFdCB2b2kgdXVkZWxsZWVua8OkeXR0w6TDpCB2YW5ob2phIHNhbGFzYW5vamEuXG4iCisKKyN+IG1zZ2lkICJQbGVhc2UgZG9uJ3QgdXNlIHNvbWV0aGluZyBsaWtlIHlvdXIgdXNlcm5hbWUgYXMgcGFzc3dvcmQhXG4iCisjfiBtc2dzdHIgIsOEbMOkIGvDpHl0w6QgbWl0w6TDpG4ga8OkeXR0w6Rqw6R0dW5udWtzZXNpIHRhcGFpc3RhIHNhbGFzYW5hbmEhXG4iCisKKyN+IG1zZ2lkICJQbGVhc2UgZG9uJ3QgdXNlIHNvbWV0aGluZyBsaWtlIHlvdXIgcmVhbG5hbWUgYXMgcGFzc3dvcmQhXG4iCisjfiBtc2dzdHIgIsOEbMOkIGvDpHl0w6QgbWl0w6TDpG4gb2lrZWFuIG5pbWVzaSBrYWx0YWlzdGEgc2FsYXNhbmFuYSFcbiIKKworI34gbXNnaWQgIlVzYWdlOiBwYXNzd2QgW3VzZXJuYW1lIFtwYXNzd29yZF1dXG4iCisjfiBtc2dzdHIgIkvDpHl0dMO2OiBwYXNzd2QgW2vDpHl0dMOkasOkdHVubnVzIFtzYWxhc2FuYV1dXG4iCisKKyN+IG1zZ2lkICJPbmx5IHJvb3QgbWF5IHVzZSB0aGUgb25lIGFuZCB0d28gYXJndW1lbnQgZm9ybXMuXG4iCisjfiBtc2dzdHIgIlZhaW4gcMOkw6Rrw6R5dHTDpGrDpCB2b2kga8OkeXR0w6TDpCBhcmd1bWVudHRlamEuXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFstZm9xc3ZWXSBbdXNlciBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICJLw6R5dHTDtjogcGFzc3dkIFstZm9xc3ZWXSBba8OkeXR0w6Rqw6QgW3NhbGFzYW5hXV1cbiIKKworI34gbXNnaWQgIkNhbid0IGV4ZWMgJXM6ICVzXG4iCisjfiBtc2dzdHIgIk9oamVsbWFhICVzIGVpIHZvaSBrw6R5bm5pc3TDpMOkOiAlc1xuIgorCisjfiBtc2dpZCAiQ2Fubm90IGZpbmQgbG9naW4gbmFtZSIKKyN+IG1zZ3N0ciAiS8OkeXR0w6Rqw6R0dW5udXN0YSBlaSBsw7Z5ZHkiCisKKyN+IG1zZ2lkICJPbmx5IHJvb3QgY2FuIGNoYW5nZSB0aGUgcGFzc3dvcmQgZm9yIG90aGVycy5cbiIKKyN+IG1zZ3N0ciAiVmFpbiBww6TDpGvDpHl0dMOkasOkIHZvaSB2YWlodGFhIG11aWRlbiBzYWxhc2Fub2phLlxuIgorCisjfiBtc2dpZCAiQ2FuJ3QgZmluZCB1c2VybmFtZSBhbnl3aGVyZS4gSXMgYCVzJyByZWFsbHkgYSB1c2VyPyIKKyN+IG1zZ3N0ciAiS8OkeXR0w6Rqw6R0dW5udXN0YSBlaSBsw7Z5ZHkgbWlzdMOkw6RuLiBPbmtvIFwiJXNcIiB0b2RlbGxhIGvDpHl0dMOkasOkPyIKKworI34gbXNnaWQgIlVJRCBhbmQgdXNlcm5hbWUgZG9lcyBub3QgbWF0Y2gsIGltcG9zdGVyISIKKyN+IG1zZ3N0ciAiVUlEIGphIGvDpHl0dMOkasOkbmltaSBlaXbDpHQgdmFzdGFhIHRvaXNpYWFuLCBodWlqYXJpISIKKworI34gbXNnaWQgIkNoYW5naW5nIHBhc3N3b3JkIGZvciAlc1xuIgorI34gbXNnc3RyICJWYWloZGV0YWFuIGvDpHl0dMOkasOkbiAlcyBzYWxhc2FuYVxuIgorCisjfiBtc2dpZCAiRW50ZXIgb2xkIHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIlN5w7Z0w6QgdmFuaGEgc2FsYXNhbmE6ICIKKworI34gbXNnaWQgIklsbGVnYWwgcGFzc3dvcmQsIGltcG9zdGVyLiIKKyN+IG1zZ3N0ciAiVmlyaGVlbGxpbmVuIHNhbGFzYW5hLCBodWlqYXJpLiIKKworI34gbXNnaWQgIkVudGVyIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJTecO2dMOkIHV1c2kgc2FsYXNhbmE6ICIKKworI34gbXNnaWQgIlJlLXR5cGUgbmV3IHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIlN5w7Z0w6QgdXVzaSBzYWxhc2FuYSB1dWRlbGxlZW46ICIKKworI34gbXNnaWQgIllvdSBtaXNzcGVsbGVkIGl0LiBQYXNzd29yZCBub3QgY2hhbmdlZC4iCisjfiBtc2dzdHIgIktpcmpvaXRpdCB2w6TDpHJpbi4gU2FsYXNhbmFhIGVpIHZhaWhkZXR0dS4iCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkLCB1c2VyICVzIgorI34gbXNnc3RyICJzYWxhc2FuYSB2YWloZGV0dHUsIGvDpHl0dMOkasOkICVzIgorCisjfiBtc2dpZCAiUk9PVCBQQVNTV09SRCBDSEFOR0VEIgorI34gbXNnc3RyICJQw4TDhEvDhFlUVMOESsOETiBTQUxBU0FOQSBWQUlIREVUVFUiCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkIGJ5IHJvb3QsIHVzZXIgJXMiCisjfiBtc2dzdHIgInDDpMOka8OkeXR0w6Rqw6QgdmFpaHRvaSBrw6R5dHTDpGrDpG4gJXMgc2FsYXNhbmFuIgorCisjfiBtc2dpZCAiY2FsbGluZyBzZXRwd25hbSB0byBzZXQgcGFzc3dvcmQuXG4iCisjfiBtc2dzdHIgImt1dHN1dGFhbiBzZXRwd25hbSBzYWxhc2FuYW4gYXNldHRhbWlzZWtzaS5cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIlNhbGFzYW5hYSAqRUkqIHZhaWhkZXR0dS4gWXJpdMOkIG15w7ZoZW1taW4gdXVkZWxsZWVuLlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgY2hhbmdlZC5cbiIKKyN+IG1zZ3N0ciAiU2FsYXNhbmEgdmFpaGRldHR1LlxuIgorCisjfiBtc2dpZCAibW91bnQ6IHRoaXMgdmVyc2lvbiB3YXMgY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciB0aGUgdHlwZSBgbmZzJyIKKyN+IG1zZ3N0ciAibW91bnQ6IHTDpG3DpCB2ZXJzaW8gb24ga8Okw6RubmV0dHkgaWxtYW4gdHVrZWEgdHl5cGlsbGUgXCJuZnNcIiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICVkXG4iCisjfiBtc2dzdHIgIlZhcm9pdHVzOiBwb2lzdGV0YWFuIG9zaW9uICVkIGrDpGxrZWlzZXQgb3Npb3RcbiIKKworI34gbXNnaWQgIm1vdW50OiBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQgYnkga2VybmVsIgorI34gbXNnc3RyICJtb3VudDogeWRpbiBlaSB0dWUgdGllZG9zdG9qw6RyamVzdGVsbcOkdHl5cHBpw6QgJXMiCisKKyN+IG1zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAiQkxLR0VUU0laRS1pb2N0bCBlcMOkb25uaXN0dWkgbGFpdHRlZWxsZSAlc1xuIgorCisjfiBtc2dpZCAiJXM6IG5vdCBjb21waWxlZCB3aXRoIG1pbml4IHYyIHN1cHBvcnRcbiIKKyN+IG1zZ3N0ciAiJXM6IGVpIG9sZSBrw6TDpG5uZXR0eSBtaW5peCB2MiAtdHVlbiBrYW5zc2FcbiIKKworI34gbXNnaWQgIkJvb3QgKCUwMlgpIgorI34gbXNnc3RyICJLw6R5bm5pc3RldHTDpHbDpCAoJTAyWCkiCisKKyN+IG1zZ2lkICJOb25lICglMDJYKSIKKyN+IG1zZ3N0ciAiRWkgbWl0w6TDpG4gKCUwMlgpIgorCisjfiBtc2dpZCAiJXM6IFslMDR4XTolbGQgKCVzKSBvZmZzZXQgJWQsICVzIGVuY3J5cHRpb25cbiIKKyN+IG1zZ3N0ciAiJXM6IFslMDR4XTolbGQgKCVzKSBzaWlydHltw6QgJWQsICVzLXNhbGF1c1xuIgorCisjfiBtc2dpZCAiIgorI34gIm1vdW50OiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuXG4iCisjfiAiICAgICAgIE1heWJlIC9kZXYvbG9vcCMgaGFzIGEgd3JvbmcgbWFqb3IgbnVtYmVyPyIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBZaHTDpMOkbiBsb29wLWxhaXRldHRhIGVpIGzDtnl0eW55dC5cbiIKKyN+ICIgICAgICAgRWhrw6QgdGllZG9zdG9pbGxhIC9kZXYvbG9vcCMgb24gdsOkw6Ryw6QgbWFqb3ItYXJ2bz8iCisKKyN+IG1zZ2lkICIiCisjfiAibW91bnQ6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorI34gIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2UgKHRoZW4gcmVjb21waWxlIG9yIGBpbnNtb2QgbG9vcC5vJyksIG9yXG4iCisjfiAiICAgICAgIG1heWJlIC9kZXYvbG9vcCMgaGFzIHRoZSB3cm9uZyBtYWpvciBudW1iZXI/IgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IEVpIGzDtnl0eW55dCB5aHTDpMOkbiBsb29wLWxhaXRldHRhLiBFaGvDpCB0w6Rtw6QgeWRpbiBlaSBvbGUgdGlldG9pbmVuXG4iCisjfiAiICAgICAgIGxvb3AtbGFpdHRlZXN0YSAoa8Okw6RubsOkIHV1ZGVsbGVlbiB0YWkgXCJpbnNtb2QgbG9vcC5vXCIpLCB0YWlcbiIKKyN+ICIgICAgICAgZWhrw6QgL2Rldi9sb29wIzppbiBtYWpvci1hcnZvIG9uIHbDpMOkcsOkPyIKKworI34gbXNnaWQgIkluaXQgKHVwIHRvIDE2IGhleCBkaWdpdHMpOiAiCisjfiBtc2dzdHIgIkFsa3VhcnZvIChrb3JrZWludGFhbiAxNiBoZWtzYW51bWVyb2EpOiAiCisKKyN+IG1zZ2lkICJOb24taGV4IGRpZ2l0ICclYycuXG4iCisjfiBtc2dzdHIgIkVpLWhla3NhbnVtZXJvIFwiJWNcIi5cbiIKKworI34gbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGdldCBrZXkgZm9yIGVuY3J5cHRpb24gc3lzdGVtICVkXG4iCisjfiBtc2dzdHIgIkF2YWltZW4gaGFrdSBzYWxhdXNqw6RyamVzdGVsbcOkbGxlICVkIGVpIG9sZSB0dWV0dHVcbiIKKworI34gbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCisjfiBtc2dzdHIgIk9zaW9uICVpIGxvcHB1IGVpIG9sZSBzeWxpbnRlcmluIHJhamFsbGE6XG4iCisKKyN+IG1zZ2lkICJDYW4ndCBvcGVuIGhlbHAgZmlsZSIKKyN+IG1zZ3N0ciAiT2hqZXRpZWRvc3RvYSBlaSB2b2kgYXZhdGEiCisKKyN+IG1zZ2lkICIiCisjfiAiXG4iCisjfiAiRGlzayAlczogJWQgaGVhZHMsICVkIHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorI34gIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAiTGV2eSAlMSRzOiAlMiRkIHDDpMOkdMOkLCAlMyRkIHNla3RvcmlhLCAlNCRkIHN5bGludGVyacOkXG4iCisjfiAiWWtzaWvDtnQgPSAlNiRkICogJTckZCAtdGF2dWlzZXQgJTUkc1xuIgorI34gIlxuIgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZnIuZ21vIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZnIuZ21vCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViM2FkMGQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9mci5nbW8KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZnIucG8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9mci5wbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTBmY2U4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vZnIucG8KQEAgLTAsMCArMSwxMjc5NyBAQAorIyBNZXNzYWdlcyBmcmFu52FpcyBwb3VyIHV0aWwtbGludXgtbmcuCisjIENvcHlyaWdodCCpIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UuCisjIE1pY2hlbCBSb2JpdGFpbGxlIDxyb2JpdGFpbEBJUk8uVU1vbnRyZWFsLkNBPiwgdHJhZHVjdGV1ciBkZXB1aXMvc2luY2UgMTk5Ni4KKyMgTmljb2xhcyBQcm92b3N0IDxucHJvdm9zdEBxdWFkcml2LmNvbT4sIDIwMDkuCisjCisjIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBmcmVlbHkgY29weSBhbmQgZGlzdHJpYnV0ZQorIyB0aGlzIGZpbGUgYW5kIG1vZGlmaWVkIHZlcnNpb25zLCBwcm92aWRlZCB0aGF0IHRoaXMKKyMgaGVhZGVyIGlzIG5vdCByZW1vdmVkIGFuZCBtb2RpZmllZCB2ZXJzaW9ucyBhcmUgbWFya2VkIGFzIHN1Y2guCisjCisjIHJlbGVjdHVyZSBkZXMgbGlnbmVzIDAtNTAwMCBmYWl0ZSBsZSAyNy0wOS0yMDA4IE4uIFByb3Zvc3QKKyMKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IHV0aWwtbGludXgtbmcgMi4xNi1yYzJcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDktMDctMDUgMjI6MzYrMDEwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogTmljb2xhcyBQcm92b3N0IDxucHJvdm9zdEBxdWFkcml2LmNvbT5cbiIKKyJMYW5ndWFnZS1UZWFtOiBGcmVuY2ggPHRyYWR1Y0B0cmFkdWMub3JnPlxuIgorIk1JTUUtVmVyc2lvbjogMS4wXG4iCisiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gPiAxKTtcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjYzCittc2dpZCAic2V0IHJlYWQtb25seSIKK21zZ3N0ciAiaW5pdGlhbGlzZSBsZSBtb2RlIGxlY3R1cmUtc2V1bGUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3MAorbXNnaWQgInNldCByZWFkLXdyaXRlIgorbXNnc3RyICJpbml0aWFsaXNlIGxlIG1vZGUgbGVjdHVyZS3pY3JpdHVyZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjc2Cittc2dpZCAiZ2V0IHJlYWQtb25seSIKK21zZ3N0ciAic2F2b2lyIHNpIGxlIHN0YXR1dCBkdSBw6XJpcGjpcmlxdWUgZXN0IGVuIG1vZGUgbGVjdHVyZS1zZXVsZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCisjLCBmdXp6eQorbXNnaWQgImdldCBsb2dpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgIm9idGVuaXIgbGEgdGFpbGxlIGRlcyBzZWN0ZXVycyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4CisjLCBmdXp6eQorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJvYnRlbmlyIGxhIHRhaWxsZSBkZXMgc2VjdGV1cnMiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo5NAorbXNnaWQgImdldCBtaW5pbXVtIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKK21zZ2lkICJnZXQgb3B0aW1hbCBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2CisjLCBmdXp6eQorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICJtYXV2YWlzIGluZGV4IGQnaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTIKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IgorbXNnc3RyICJTZWN0ZXVycyBhZGRpdGlvbm5lbHMgcGFyIGN5bGluZHJlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTE4Cittc2dpZCAiZ2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAib2J0ZW5pciBsYSB0YWlsbGUgZGVzIGJsb2NzIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAiaW5pdGlhbGlzZSBsYSB0YWlsbGUgZGVzIGJsb2NzIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgIm9idGVuaXIgbGUgY29tcHRldXIgZGUgc2VjdGV1cnMgMzIgYml0cyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICJvYnRlbmlyIGxhIHRhaWxsZSBlbiBvY3RldHMiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNDQKK21zZ2lkICJzZXQgcmVhZGFoZWFkIgorbXNnc3RyICJzcOljaWZpZSBsZSBjYWNoZSBlbiBsZWN0dXJlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAicmV0b3VybmUgbCfpdGF0IGR1IGNhY2hlIGVuIGxlY3R1cmUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgInNw6WNpZmllIGxlIGNhY2hlIGVuIGxlY3R1cmUgZHUgc3lzdC4gZGUgZmljaGllcnMiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgInJldG91cm5lIGwn6XRhdCBkdSBjYWNoZSBlbiBsZWN0dXJlIGR1IHN5c3QuIGRlIGZpY2hpZXJzIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTY3Cittc2dpZCAiZmx1c2ggYnVmZmVycyIKK21zZ3N0ciAidmlkZSBsZXMgdGFtcG9ucyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgInJlbGl0IGxhIHRhYmxlIGRlIHBhcnRpdGlvbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgLS1yZXBvcnQgW2RldmljZXNdXG4iCittc2dzdHIgIiAgJXMgLS1yZXBvcnQgW3DpcmlwaOlyaXF1ZXNdXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyBbLVZdIFstdnwtcV0gY29tbWFuZGVzIHDpcmlwaOlyaXF1ZXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJBdmFpbGFibGUgY29tbWFuZHM6XG4iCittc2dzdHIgIkNvbW1hbmRlcyBkaXNwb25pYmxlcyA6XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODcKK21zZ2lkICJnZXQgc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzIgorbXNnc3RyICJvYnRlbmlyIGxhIHRhaWxsZSBzZWN0ZXVycyBkZSA1MTIgb2N0ZXRzIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIiVzOiBjb21tYW5kZSBpbmNvbm51ZSA6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgcmVxdWllcnQgdW4gYXJndW1lbnRcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgIiVzIGEg6WNob3XpLlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN1Y2NlZWRlZC5cbiIKK21zZ3N0ciAiJXMgYSBy6XVzc2kuXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0MjcgZGlzay11dGlscy9ibG9ja2Rldi5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiJXM6IGltcG9zc2libGUgZCdvdXZyaXIgJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW9jdGwgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGVycmV1ciBpb2N0bCgpIHN1ciAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU3RhcnRTZWMgICAgICAgICAgICBTaXplICAgRGV2aWNlXG4iCittc2dzdHIgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU2VjdC5E6WJ1dCAgICAgICBUYWlsbGUgIFDpcmlwaOlyaXF1ZVxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOlxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJcdE5PVEU6IGVsdnR1bmUgb25seSB3b3JrcyB3aXRoIDIuNCBrZXJuZWxzXG4iCittc2dzdHIgIlx0Tk9URSA6IGVsdnR1bmUgbmUgZm9uY3Rpb25uZSBxdSdhdmVjIGxlcyBub3lhdXggMi40XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJzZSBlcnJvclxuIgorbXNnc3RyICJlcnJldXIgZCdhbmFseXNlXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJsb2NrZGV2aWNlLCB1c2UgLWggZm9yIGhlbHBcbiIKK21zZ3N0ciAicOlyaXBo6XJpcXVlIHBhciBibG9jIG1hbnF1YW50LCB1dGlsaXNlciAtaCBwb3VyIGwnYWlkZVxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImVsdnR1bmUgaXMgb25seSB1c2VmdWwgb24gb2xkZXIga2VybmVscztcbiIKKyJmb3IgMi42IHVzZSBJTyBzY2hlZHVsZXIgc3lzZnMgdHVuYWJsZXMgaW5zdGVhZC4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJlbHZ0dW5lIGVzdCB1dGlsZSB1bmlxdWVtZW50IGF2ZWMgbGVzIGFuY2llbnMgbm95YXV4O1xuIgorInBvdXIgbGVzIG5veWF1eCAyLjYgdXRpbGlzZXIgbCdvcmRvbm5hbmNldXIgc3lzZnMuLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9ybWF0dGluZyAuLi4gIgorbXNnc3RyICJGb3JtYXR0YWdlIGVuIGNvdXJzIC4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo0OSBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJjb21wbOl06VxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmVyaWZ5aW5nIC4uLiAiCittc2dzdHIgIlbpcmlmaWNhdGlvbiBlbiBjb3VycyAuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIkxlY3R1cmU6ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAiUHJvYmzobWUgZGUgbGVjdHVyZSBkdSBjeWxpbmRyZSAlZCwgJWQgYXR0ZW5kdSwgbHUgJWRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJiYWQgZGF0YSBpbiBjeWwgJWRcbiIKKyJDb250aW51aW5nIC4uLiAiCittc2dzdHIgIiIKKyJkb25u6WVzIGNvcnJvbXB1ZXMgYXUgY3lsaW5kcmUgJWRcbiIKKyJQb3Vyc3VpdGUgZHUgdHJhaXRlbWVudCAuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLW4gXSBkZXZpY2VcbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiAlcyBbIC1uIF0gcOlyaXBo6XJpcXVlXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMTggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4NAorIzogZGlzay11dGlscy9pc29zaXplLmM6MTgxIGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMTQgZGlzay11dGlscy9ta2ZzLmM6NTIKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4MTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTcyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ4NyBtaXNjLXV0aWxzL2RkYXRlLmM6MTc5IG1pc2MtdXRpbHMvcmVuYW1lLmM6NzkKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTQ3IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXMpXG4iCittc2dzdHIgIiVzICglcylcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIiVzOiBuJ2VzdCBwYXMgdW4gcOlyaXBo6XJpcXVlIGRlIGJsb2NcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBk6XRlcm1pbmVyIGxlIHR5cGUgZGUgZm9ybWF0IGNvdXJhbnQiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMtc2lkZWQsICVkIHRyYWNrcywgJWQgc2VjL3RyYWNrLiBUb3RhbCBjYXBhY2l0eSAlZCBrQi5cbiIKK21zZ3N0ciAiJXMtZmFjZSwgJWQgcGlzdGVzLCAlZCBzZWN0ZXVycy9waXN0ZS4gQ2FwYWNpdOkgdG90YWxlICVkIGtCLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiRG91YmxlIgorbXNnc3RyICJEb3VibGUiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJTaW5nbGUiCittc2dzdHIgIlNpbXBsZSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaHZdIFsteCBkaXJdIGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisiIC12ICAgICAgICAgYmUgbW9yZSB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB0byB0ZXN0XG4iCittc2dzdHIgIiIKKyJVdGlsaXNhdGlvbiA6ICVzIFstaHZdIFsteCBkaXJdIGZpY2hpZXJcbiIKKyIgLWggICAgICAgICBhZmZpY2hlciBsJ2FpZGVcbiIKKyIgLXggZGlyICAgIGV4dHJhaXJlIGRhbnMgbGUgculwZXJ0b2lyZVxuIgorIiAtdiAgICAgICAgIHRyYXZhaWxsZXIgZW4gbW9kZSBiYXZhcmRcbiIKKyIgZmljaGllciAgIGZpY2hpZXIg4CB0ZXN0ZXJcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgIuljaGVjIGRlIFwic3RhdFwiIDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIuljaGVjIGQnb3V2ZXJ0dXJlIDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgZmFpbGVkOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGRldmljZSBzaXplOiAlcyIKK21zZ3N0ciAiIgorIuljaGVjIGRlIFwiaW9jdGxcIiA6IGltcG9zc2libGUgZGUgdHJvdXZlciBsYSB0YWlsbGUgZHUgcOlyaXBo6XJpcXVlIDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIlcyBuJ2VzdCBwYXMgdW4gcOlyaXBo6XJpcXVlIHBhciBibG9jcyBvdSB1biBmaWNoaWVyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgIm5vbSBkZSBmaWNoaWVyIHRyb3AgY291cnQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZmFpbGVkOiAlcyIKK21zZ3N0ciAi6WNoZWMgZGUgbGVjdHVyZSA6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjA3Cittc2dpZCAic3VwZXJibG9jayBtYWdpYyBub3QgZm91bmQiCittc2dzdHIgIm5vbWJyZSBtYWdpcXVlIGR1IHN1cGVyLWJsb2Mgbm9uIHRyb3V26SIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxNgorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgImNhcmFjdOlyaXN0aXF1ZXMgZGUgc3lzdOhtZSBkZSBmaWNoaWVycyBub24gc3VwcG9ydOllcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICJzdXBlcmJsb2NrIHNpemUgKCVkKSB0b28gc21hbGwiCittc2dzdHIgInRhaWxsZSBkZSBzdXBlci1ibG9jIHRyb3AgcGV0aXRlICglZCkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgIm5vbWJyZSBkZSBmaWNoaWVycyBudWwiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAiIgorIkF0dGVudGlvbiA6IGxlIGZpY2hpZXIgc2UgdGVybWluZSBhcHLocyBsYSBmaW4gZHUgc3lzdOhtZSBkZSBmaWNoaWVyc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIkFUVEVOVElPTiA6IGFuY2llbiBmb3JtYXQgXCJjcmFtZnNcIlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSB0ZXN0ZXIgbGEgc29tbWUgZGUgY29udHL0bGUgQ1JDIDogZm9ybWF0IGNyYW1mcyBhbmNpZW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzIgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjMzOQorIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ3NyBsb2dpbi11dGlscy9jaGZuLmM6NTI5IGxvZ2luLXV0aWxzL2Noc2guYzo0MzkKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTQxIHN5cy11dGlscy9jeXR1bmUuYzozMjEKK21zZ2lkICJtYWxsb2MgZmFpbGVkIgorbXNnc3RyICLpY2hlYyBkZSBtYWxsb2MoKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI5NworbXNnaWQgImNyYyBlcnJvciIKK21zZ3N0ciAiZXJyZXVyIGRlIENSQyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorbXNnaWQgInJvb3QgaW5vZGUgaXMgbm90IGRpcmVjdG9yeSIKK21zZ3N0ciAibCdpbm9kZSByYWNpbmUgbidlc3QgcGFzIHVuIHLpcGVydG9pcmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHJvb3Qgb2Zmc2V0ICglbHUpIgorbXNnc3RyICJtYXV2YWlzIGluZGV4IGRlIHJhY2luZSAoJWx1KSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM4NworbXNnaWQgImRhdGEgYmxvY2sgdG9vIGxhcmdlIgorbXNnc3RyICJibG9jIGRlIGRvbm7pZXMgdHJvcCBncmFuZCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgImVycmV1ciBkZSBk6WNvbXByZXNzaW9uICVwKCVkKSA6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgaG9sZSBhdCAlbGQgKCV6ZClcbiIKK21zZ3N0ciAiICB0cm91IOAgJWxkICglemQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjMgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIgorbXNnc3RyICIgIGTpY29tcHJlc3Npb24gZHUgYmxvYyDgICVsZCB2ZXJzICVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAib2N0ZXRzICglbGQpIGRlIHR5cGUgbm9uLWJsb2MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICJvY3RldHMgbm9uIGFzc29jaelzIOAgdW5lIHRhaWxsZSAoJWxkIHZzICVsZCkgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGZhaWxlZDogJXMiCittc2dzdHIgIuljaGVjIGQn6WNyaXR1cmUgOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAi6WNoZWMgZGUgbGEgZm9uY3Rpb24gXCJsY2hvd25cIiA6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDU4CisjLCBjLWZvcm1hdAorbXNnaWQgImNob3duIGZhaWxlZDogJXMiCittc2dzdHIgIuljaGVjIGRlIGxhIGZvbmN0aW9uIFwiY2hvd25cIiA6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDY1CisjLCBjLWZvcm1hdAorbXNnaWQgInV0aW1lIGZhaWxlZDogJXMiCittc2dzdHIgIuljaGVjIGRlIGxhIGZvbmN0aW9uIFwidXRpbWVcIiA6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICJsJ2lub2RlIGR1IHLpcGVydG9pcmUgYSB1biBpbmRleCBudWwgZXQgdW5lIHRhaWxsZSBub24gbnVsbGUgOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ5NAorIywgYy1mb3JtYXQKK21zZ2lkICJta2RpciBmYWlsZWQ6ICVzIgorbXNnc3RyICLpY2hlYyBkZSBsYSBmb25jdGlvbiBcIm1rZGlyXCIgOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICJsZSBub20gZGUgZmljaGllciBhIHVuZSBsb25ndWV1ciBudWxsZSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxNAorbXNnaWQgImJhZCBmaWxlbmFtZSBsZW5ndGgiCittc2dzdHIgIm1hdXZhaXNlIGxvbmd1ZXVyIGRlIG5vbSBkZSBmaWNoaWVyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCittc2dpZCAiYmFkIGlub2RlIG9mZnNldCIKK21zZ3N0ciAibWF1dmFpcyBpbmRleCBkJ2lub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTM3Cittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemUiCittc2dzdHIgImwnaW5vZGUgZHUgZmljaGllciBhIHVuIGluZGV4IG51bCBldCB1bmUgdGFpbGxlIG5vbiBudWxsZSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU0MAorbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gc2l6ZSBhbmQgbm9uLXplcm8gb2Zmc2V0IgorbXNnc3RyICJsJ2lub2RlIGR1IGZpY2hpZXIgYSB1bmUgdGFpbGxlIG51bGxlIGV0IHVuIGluZGV4IG5vbiBudWwiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzEKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIKK21zZ3N0ciAibGllbiBzeW1ib2xpcXVlIGQnaW5kZXggbnVsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTc0Cittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBzaXplIgorbXNnc3RyICJsaWVuIHN5bWJvbGlxdWUgZGUgdGFpbGxlIG51bGxlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgInNpemUgZXJyb3IgaW4gc3ltbGluazogJXMiCittc2dzdHIgImVycmV1ciBkZSB0YWlsbGUgZGFucyBsZSBsaWVuIHN5bel0cmlxdWUgOiAlcyIKKworIyBkaXNrLXV0aWxzL21rc3dhcC5jOjYyMworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJzeW1saW5rIGZhaWxlZDogJXMiCittc2dzdHIgIuljaGVjIGRlIGZvbmN0aW9uIFwic3ltbGlua1wiIDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlY2lhbCBmaWxlIGhhcyBub24temVybyBvZmZzZXQ6ICVzIgorbXNnc3RyICJsZSBmaWNoaWVyIHNw6WNpYWwgYSB1biBpbmRleCBub24gbnVsIDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlmbyBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgImxhIHBpbGUgXCJmaWZvXCIgYSB1bmUgdGFpbGxlIG5vbiBudWxsZSA6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgInNvY2tldCBheWFudCB1bmUgdGFpbGxlIG5vbiBudWxsZSA6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvZ3VzIG1vZGU6ICVzICglbykiCittc2dzdHIgIm1vZGUgaGFzYXJkZXV4IChcImJvZ3VzXCIpIDogXCIlc1wiICglbykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAi6WNoZWMgZGUgbGEgZm9uY3Rpb24gXCJta25vZFwiIDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorImTpcGFydCBkZXMgZG9ubullcyBkdSBy6XBlcnRvaXJlICglbGQpIDwgdGFpbGxlIGRlIChzdHJ1Y3QgY3JhbWZzX3N1cGVyKSArICIKKyJk6WJ1dCAoJWxkKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICJmaW4gZGVzIGRvbm7pZXMgculwZXJ0b2lyZSAoJWxkKSAhPSBk6WJ1dCBkb25u6WVzIGZpY2hpZXIgKCVsZCkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKK21zZ2lkICJpbnZhbGlkIGZpbGUgZGF0YSBvZmZzZXQiCittc2dzdHIgImluZGV4IGRlIGRvbm7pZXMgZHUgZmljaGllciBub24gdmFsaWRlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzE0Cittc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlIG91dGJ1ZmZlciIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FsbG91ZXIgbGUgdGFtcG9uIGRlIHNvcnRpZSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworbXNnaWQgImNvbXBpbGVkIHdpdGhvdXQgLXggc3VwcG9ydCIKK21zZ3N0ciAiY29tcGls6SBzYW5zIHN1cHBvcnQgcG91ciAteCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtZVxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6ICVzIFstbGFydnNtZl0gL2Rldi9ub21cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQuXHQgIgorbXNnc3RyICIlcyBlc3QgbW9udOkuXHQgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjUKK21zZ2lkICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiCittc2dzdHIgIkTpc2lyZXotdm91cyBy6WVsbGVtZW50IGNvbnRpbnVlcj8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICJjaGVjayBhYm9ydGVkLlxuIgorbXNnc3RyICJ26XJpZmljYXRpb24gc3RvcHDpZS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzQ4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yIDwgRklSU1RaT05FIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIlpvbmUgbnIgPCB2YWxldXIgZGUgUFJFTUlFUkVfWk9ORSBkYW5zIGxlIGZpY2hpZXIgXCIlc1wiLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzUyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yID49IFpPTkVTIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIlpvbmUgbnIgPj0gdmFsZXVyIGRlIFpPTkVTIGRhbnMgbGUgZmljaGllciBcIiVzXCIuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzgwCittc2dpZCAiUmVtb3ZlIGJsb2NrIgorbXNnc3RyICJFbmzodmUgbGUgYmxvYyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IHVuYWJsZSB0byBzZWVrIHRvIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICIiCisiRXJyZXVyIGVuIGxlY3R1cmU6IGltcG9zc2libGUgZGUgc2UgcG9zaXRpb25uZXIgc3VyIHVuIGJsb2MgZHUgZmljaGllciBcIiVzIgorIlwiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIkVycmV1ciBkZSBsZWN0dXJlOiBibG9jIGNvcnJvbXB1IGRhbnMgbGUgZmljaGllciBcIiVzXCJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisiRXJyZXVyIGludGVybmU6IHRlbnRhdGl2ZSBkJ+ljcml0dXJlIGQndW4gYmxvYyBjb3Jyb21wdVxuIgorIlJlcXXqdGUgZCfpY3JpdHVyZSBpZ25vcullXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAi6WNoZWMgZGUgcG9zaXRpb25uZW1lbnQgZGFucyB3cml0ZV9ibG9jayAo6WNyaXR1cmUgZGUgYmxvYykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJFcnJldXIgZCfpY3JpdHVyZTogYmxvYyBjb3Jyb21wdSBkYW5zIGxlIGZpY2hpZXIgXCIlc1wiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICIiCisi6WNoZWMgZGUgcG9zaXRpb25uZW1lbnQgZHVyYW50IGwn6WNyaXR1cmUgZHUgc3VwZXIgYmxvYyAod3JpdGVfc3VwZXJfYmxvY2spIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NDYgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk0Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHN1cGVyLWJsb2NrIgorbXNnc3RyICJpbXBvc3NpYmxlIGQn6WNyaXJlIGxlIHN1cGVyIGJsb2MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1NgorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIkltcG9zc2libGUgZCfpY3JpcmUgbGEgdGFibGUgZGVzIGlub2RlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU4Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJJbXBvc3NpYmxlIGQn6WNyaXJlIGxhIHRhYmxlIGRlcyB6b25lcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTYwCittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ+ljcmlyZSBkZXMgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1ODcKK21zZ2lkICJzZWVrIGZhaWxlZCIKK21zZ3N0ciAi6WNoZWMgZGUgcG9zaXRpb25uZW1lbnQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5MSBkaXNrLXV0aWxzL21rZnMubWluaXguYzozOTkKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIGJ1ZmZlciBmb3Igc3VwZXJibG9jayIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FsbG91ZXIgZGVzIHRhbXBvbnMgcG91ciBsZXMgdGFibGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBsaXJlIGxlIHN1cGVyIGJsb2MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxMgorbXNnaWQgImJhZCBtYWdpYyBudW1iZXIgaW4gc3VwZXItYmxvY2siCittc2dzdHIgIm5vbWJyZSBtYWdpcXVlIGNvcnJvbXB1IGRhbnMgbGUgc3VwZXIgYmxvYyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE0Cittc2dpZCAiT25seSAxayBibG9ja3Mvem9uZXMgc3VwcG9ydGVkIgorbXNnc3RyICJCbG9jcyBkZSAxa28vem9uZXMgc2V1bHMgc3VwcG9ydOlzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTYKK21zZ2lkICJiYWQgc19pbWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiY2hhbXAgc19pbWFwX2Jsb2NrcyBjb3Jyb21wdSBkYW5zIGxlIHN1cGVyIGJsb2MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxOAorbXNnaWQgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJjaGFtcCBzX3ptYXBfYmxvY2tzIGNvcnJvbXB1IGRhbnMgbGUgc3VwZXIgYmxvYyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI1Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgbWFwIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYWxsb3VlciB1biB0YW1wb24gcG91ciBsYSB0YWJsZSBkZXMgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjgKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FsbG91ZXIgdW4gdGFtcG9uIHBvdXIgbGEgdGFibGUgZGUgem9uZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzMworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FsbG91ZXIgdW4gdGFtcG9uIHBvdXIgZGVzIGlub2RlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjM2Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgY291bnQiCittc2dzdHIgIkltcG9zc2libGUgZCdhbGxvdWVyIHVuIHRhbXBvbiBwb3VyIGxlIGNvbXB0ZXVyIGQnaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIGNvdW50IgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYWxsb3VlciB1biB0YW1wb24gcG91ciBsZSBjb21wdGV1ciBkZSB6b25lcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgbGEgdGFibGUgZGVzIGlub2RlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgIkltcG9zc2libGUgZGUgbGlyZSBsYSB0YWJsZSBkZSB6b25lcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ1Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgbGVzIGlub2RlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICJBVkVSVElTU0VNRU5UOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgaW5vZGVzXG4iCittc2dzdHIgIiVsZCBpbm9kZXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgYmxvY2tzXG4iCittc2dzdHIgIiVsZCBibG9jc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiVGFpbGxlX3pvbmU9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIlRhaWxsZV9tYXhpbWFsZT0lbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKK21zZ3N0ciAiyXRhdCBkdSBzeXN06G1lIGRlIGZpY2hpZXJzPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisibG9uZ3VldXJfbm9tcz0lZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzMgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1hcmtlZCB1bnVzZWQsIGJ1dCB1c2VkIGZvciBmaWxlICclcydcbiIKK21zZ3N0ciAiSW5vZGUgJWQgbWFycXXpIGNvbW1lIGxpYnJlLCBtYWlzIHV0aWxpc+kgcG91ciBsZSBmaWNoaWVyIKsgJXMgu1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI4Cittc2dpZCAiTWFyayBpbiB1c2UiCittc2dzdHIgIk1hcnF1ZXIgY29tbWUgdXRpbGlz6SIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc0OAorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZmlsZSBgJXMnIGhhcyBtb2RlICUwNW9cbiIKK21zZ3N0ciAiTGUgZmljaGllciCrICVzILsgYSBwb3VyIG1vZGUgJTA1b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIkFWRVJUSVNTRU1FTlQ6IGNvbXB0ZSBkJ2lub2RlcyB0cm9wIGdyYW5kLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAibCdpbm9kZSBkZSBsYSByYWNpbmUgbidlc3QgcGFzIHVuIHLpcGVydG9pcmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc4OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgaGFzIGJlZW4gdXNlZCBiZWZvcmUuIE5vdyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJCbG9jIHV0aWxpc+kgYXVwYXJhdmFudC4gTWFpbnRlbmFudCBpbmNsdXMgZGFucyBsZSBmaWNoaWVyIKsgJXMguy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc5MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjMKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NQorIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjEwCittc2dpZCAiQ2xlYXIiCittc2dzdHIgIkxpYnJlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iCittc2dzdHIgIkJsb2MgJWQgZGFucyBsZSBmaWNoaWVyIKsgJXMguyBtYXJxdekgY29tbWUgbm9uIHV0aWxpc+kuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiQ29ycmVjdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGRpcmVjdG9yeSAnJXMnIGNvbnRhaW5zIGEgYmFkIGlub2RlIG51bWJlciBmb3IgZmlsZSAnJS4qcycuIgorbXNnc3RyICIiCisiTGUgculwZXJ0b2lyZSBcIiVzXCIgY29udGllbnQgdW4gbnVt6XJvIGQnaW5vZGUgY29ycm9tcHUgcG91ciBsZSBmaWNoaWVyICclLiIKKyIqcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBFbmxldmVyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCittc2dzdHIgIiVzOiBy6XBlcnRvaXJlIGNvcnJvbXB1OiCrIC4guyBuJ2FwcGFyYe50IHBhcyBlbiBwcmVtaWVyXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorbXNnc3RyICIlczogculwZXJ0b2lyZSBjb3Jyb21wdTogqyAuLiC7IG4nYXBwYXJh7nQgcGFzIGVuIHNlY29uZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMTkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAiZXJyZXVyIGludGVybmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogc2l6ZSA8IDMyIgorbXNnc3RyICIlczogculwZXJ0b2lyZSBjb3Jyb21wdTogdGFpbGxlIDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAi6WNoZWMgZGUgcG9zaXRpb25uZW1lbnQgZGFucyBiYWRfem9uZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICJNb2RlICVkIGR1IGlub2RlIG5vbiBy6WluaXRpYWxpc+kuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbm90IHVzZWQsIG1hcmtlZCB1c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJJbm9kZSAlZCBub24gdXRpbGlz6SwgbWFycXXpIHV0aWxpc+kgZGFucyBsYSB0YWJsZS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCB1c2VkLCBtYXJrZWQgdW51c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJJbm9kZSAlZCB1dGlsaXPpLCBtYXJxdekgaW51dGlsaXPpIGRhbnMgbGEgdGFibGUuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTYKK21zZ2lkICJTZXQiCittc2dzdHIgIkluaXRpYWxpc+kiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgY291bnRlZD0lZC4iCittc2dzdHIgIklub2RlICVkIChtb2RlID0gJTA3byksIGlfbmxpbmtzPSVkLCBk6WNvbXB0ZT0lZC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMgorbXNnaWQgIlNldCBpX25saW5rcyB0byBjb3VudCIKK21zZ3N0ciAiSW5pdGlsaXNhdGlvbiBkZSBpX25saW5rcyBwb3VyIGTpY29tcHRlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIKK21zZ3N0ciAiWm9uZSAlZDogbWFycXXpZSB1dGlsaXPpZSwgYXVjdW4gZmljaGllciBuZSBsJ3V0aWxpc2UuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIk5vbiBtYXJxdekiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWm9uZSAlZDogdXRpbGlz6WUsIGTpY29tcHRlPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBub3QgaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlpvbmUgJWQ6IG5vbiB1dGlsaXPpZSwgZOljb21wdGU9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorbXNnaWQgImJhZCBpbm9kZSBzaXplIgorbXNnc3RyICJ0YWlsbGUgZCdpbm9kZSBjb3Jyb21wdWUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyOTEKK21zZ2lkICJiYWQgdjIgaW5vZGUgc2l6ZSIKK21zZ3N0ciAidGFpbGxlIGQnaW5vZGUgdjIgY29ycm9tcHVlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzE3Cittc2dpZCAibmVlZCB0ZXJtaW5hbCBmb3IgaW50ZXJhY3RpdmUgcmVwYWlycyIKK21zZ3N0ciAiIgorImlsIGVzdCBu6WNlc3NhaXJlIGQndXRpbGlzZXIgdW4gdGVybWluYWwgcG91ciBkZXMgculwYXJhdGlvbnMgZW4gbW9kZSAiCisiaW50ZXJhY3RpZiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ291dnJpciCrICVzILsgOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBjbGVhbiwgbm8gY2hlY2suXG4iCittc2dzdHIgIiVzIGVzdCBwcm9wcmUsIGF1Y3VuZSB26XJpZmljYXRpb24uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9yY2luZyBmaWxlc3lzdGVtIGNoZWNrIG9uICVzLlxuIgorbXNnc3RyICJW6XJpZmljYXRpb24gZm9yY+llIGR1IHN5c3TobWUgZGUgZmljaGllcnMgc3VyICVzLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gb24gJXMgaXMgZGlydHksIG5lZWRzIGNoZWNraW5nLlxuIgorbXNnc3RyICIiCisiTGUgc3lzdOhtZSBkZSBmaWNoaWVycyBkZSAlcyBlc3QgY29ycm9tcHUsIHVuZSB26XJpZmljYXRpb24gZXN0IG7pY2Vzc2FpcmUuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2bGQgaW5vZGVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIiCisiXG4iCisiJTZsZCBpbm9kZXMgdXRpbGlz6XMgKCVsZCUlKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiU2bGQgem9uZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiU2bGQgem9uZXMgdXRpbGlz6WVzICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZkIHJlZ3VsYXIgZmlsZXNcbiIKKyIlNmQgZGlyZWN0b3JpZXNcbiIKKyIlNmQgY2hhcmFjdGVyIGRldmljZSBmaWxlc1xuIgorIiU2ZCBibG9jayBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgbGlua3NcbiIKKyIlNmQgc3ltYm9saWMgbGlua3NcbiIKKyItLS0tLS1cbiIKKyIlNmQgZmlsZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2ZCBmaWNoaWVycyBy6Wd1bGllcnNcbiIKKyIlNmQgculwZXJ0b2lyZXNcbiIKKyIlNmQgZmljaGllcnMtY2FyYWN06HJlcyBw6XJpcGjpcmlxdWVzXG4iCisiJTZkIGZpY2hpZXJzIGRlIHDpcmlwaOlyaXF1ZXMgdHlwZSBibG9jXG4iCisiJTZkIGxpZW5zXG4iCisiJTZkIGxpZW5zIHN5bWJvbGlxdWVzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpY2hpZXJzXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIlNZU1TITUUgREUgRklDSElFUlMgTU9ESUZJyVxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IOljaGVjIGQnb3V2ZXJ0dXJlOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNlZWsgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGVycmV1ciBkZSBwb3NpdGlvbm5lbWVudCBzdXIgJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBlcnJldXIgZGUgbGVjdHVyZSBzdXIgJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvciBjb3VudDogJWQsIHNlY3RvciBzaXplOiAlZFxuIgorbXNnc3RyICJk6WNvbXB0ZSBkZXMgc2VjdGV1cnM6ICVkLCB0YWlsbGUgZGUgc2VjdGV1cjogJWRcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAiJXM6IGVycmV1ciBkJ2FuYWx5c2Ugc3ludGF4aXF1ZSBkJ3VuZSBvcHRpb25cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6ICVzIFsteF0gWy1kIDxudW0+XSBpbWFnZS1pc285NjYwXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisiVXRpbGlzYXRpb24gOiAlcyBbLXZdIFstTiBuYi1pbm9kZXNdIFstViBub20tZHUtdm9sdW1lXVxuIgorIiAgICAgICBbLUYgbm9tLXN5c3TobWUtZGUtZmljaGllcnNdIHDpcmlwaOlyaXF1ZSBbdGFpbGxlLWVuLWJsb2NzXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTMwCittc2dpZCAidm9sdW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgIm5vbSBkZSB2b2x1bWUgdHJvcCBsb25nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgIm5vbSBkZSBzeXN06G1lIGRlIGZpY2hpZXJzIHRyb3AgbG9uZyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBkZXZpY2UgJXMiCittc2dzdHIgImltcG9zc2libGUgZCfpdmFsdWVyIHBhciBzdGF0KCkgbGUgcOlyaXBoaXF1ZSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBibG9jayBzcGVjaWFsIGRldmljZSIKK21zZ3N0ciAiJXMgbidlc3QgcGFzIHVuIHDpcmlwaOlyaXF1ZSBzcOljaWFsIGRlIGJsb2NzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ291dnJpciAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgImltcG9zc2libGUgZCdvYnRlbmlyIGxhIHRhaWxsZSBkZSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgYy1mb3JtYXQKK21zZ2lkICJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIKK21zZ3N0ciAiYXJndW1lbnQgZGUgYmxvY3MgdHJvcCBncmFuZCwgbGUgbWF4aW11bSBlc3QgJWxsdSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIwMgorbXNnaWQgInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiCittc2dzdHIgInRyb3AgZCdpbm9kZXMgLSBsZSBtYXhpbXVtIGVzdCA1MTIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAicGFzIGFzc2V6IGQnZXNwYWNlLCAlbGx1IGJsb2NzIG7pY2Vzc2FpcmVzIGF1IG1vaW5zIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjIzIGZkaXNrL2ZkaXNrLmM6MjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2U6ICVzXG4iCittc2dzdHIgIlDpcmlwaOlyaXF1ZTogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNAorIywgYy1mb3JtYXQKK21zZ2lkICJWb2x1bWU6IDwlLTZzPlxuIgorbXNnc3RyICJWb2x1bWU6IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIk5vbSBkdSBzeXN06G1lIGRlIGZpY2hpZXJzOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIlRhaWxsZSBkZSBibG9jOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluIDEgYmxvY2spXG4iCittc2dzdHIgIklub2RlczogJWQgKGRhbnMgMSBibG9jKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluICVsbGQgYmxvY2tzKVxuIgorbXNnc3RyICJJbm9kZXMgOiAlZCAoZGFucyAlbGxkIGJsb2NzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrczogJWxsZFxuIgorbXNnc3RyICJCbG9jcyA6ICVsbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAiRmluIGQnaW5vZGU6ICVkLCBGaW4gZGVzIGRvbm7pZXM6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgImVycmV1ciBkJ+ljcml0dXJlIGR1IHN1cGVyIGJsb2MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNTkKK21zZ2lkICJlcnJvciB3cml0aW5nIHJvb3QgaW5vZGUiCittc2dzdHIgImVycmV1ciBkJ+ljcml0dXJlIGRlIGwnaW5vZGUgZGUgbGEgcmFjaW5lIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBpbm9kZSIKK21zZ3N0ciAiZXJyZXVyIGQn6WNyaXR1cmUgZCdpbm9kZSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NworbXNnaWQgInNlZWsgZXJyb3IiCittc2dzdHIgImVycmV1ciBkZSBwb3NpdGlvbm5lbWVudCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3MworbXNnaWQgImVycm9yIHdyaXRpbmcgLiBlbnRyeSIKK21zZ3N0ciAiZXJyZXVyIGQn6WNyaXR1cmUgZGUgbCdlbnRy6WUgqyAuILsiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzcKK21zZ2lkICJlcnJvciB3cml0aW5nIC4uIGVudHJ5IgorbXNnc3RyICJlcnJldXIgZCfpY3JpdHVyZSBkZSBsJ2VudHLpZSCrIC4uILsiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2xvc2luZyAlcyIKK21zZ3N0ciAiZXJyZXVyIGRlIGZlcm1ldHVyZSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICIiCisiVXRpbGlzYXRpb24gOiBta2ZzIFstVl0gWy10IHR5cGUtc3lzdOhtZS1kZS1maWNoaWVyc10gW29wdGlvbnNdIHDpcmlwaOlyaXF1ZSAiCisiW3RhaWxsZV1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6ODggZGlzay11dGlscy9ta2ZzLmM6OTYgZmRpc2svY2ZkaXNrLmM6MzUzCisjOiBnZXRvcHQvZ2V0b3B0LmM6ODYgZ2V0b3B0L2dldG9wdC5jOjk2IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE91dCBvZiBtZW1vcnkhXG4iCittc2dzdHIgIiVzOiBt6W1vaXJlIOlwdWlz6WUhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICJta2ZzICglcylcbiIKK21zZ3N0ciAibWtmcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisiVXRpbGlzYXRpb24gOiAlcyBbLWhdIFstdl0gWy1iIHRhaWxsZV9ibG9jXSBbLWUg6WRpdGlvbl0gWy1OIG1vZGUgZW5kaWFuXSBbLSIKKyJpIGZpY2hpZXJdIFstbiBub21dIHLpcGVydG9pcmUgZmljaGllci1zb3J0aWVcbiIKKyIgLWggICAgICAgICBhZmZpY2hlciBsJ2FpZGVcbiIKKyIgLXYgICAgICAgICB0cmF2YWlsbGVyIGVuIG1vZGUgYmF2YXJkXG4iCisiIC1FICAgICAgICAgdHJhbnNmb3JtZXIgbGVzIGF2ZXJ0aXNzZW1lbnRzIGVuIGVycmV1cnMgKHN0YXR1dCBub24geulybyBlbiAiCisiZmluIGQnZXjpY3V0aW9uKVxuIgorIiAtYiB0YWlsbGVfYmxvYyB1dGlsaXNlciBjZXR0ZSB0YWlsbGUgZGUgYmxvYywgZG9pdCDqdHJlIOlnYWwg4CBsYSB0YWlsbGUgZGUgIgorInBhZ2VcbiIKKyIgLWUg6WRpdGlvbiBzcOljaWZpZXIgbGUgbnVt6XJvIGQn6WRpdGlvbiAocGFydGllIGRlIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgZml4ZSBsZSB0eXBlIGQnZW5kaWFuIGRlIGNyYW1mcyAoYmlnfGxpdHRsZXxob3N0KSwgXCJob3N0XCIgcGFyICIKKyJk6WZhdXRcbiIKKyIgLWkgZmljaGllciAgICBpbnPpcmVyIHVuIGZpY2hpZXIgaW1hZ2UgZGFucyBsZSBzeXN06G1lIGRlIGZpY2hpZXJzICIKKyIocmVxdWllcnQgPj0gMi40LjApXG4iCisiIC1uIG5vbSAgICBzcOljaWZpZXIgbGUgbm9tIGR1IHN5c3TobWUgZGUgZmljaGllcnMgY3JhbWZzXG4iCisiIC1wICAgICAgcmVtcGxpciBwYXIgJWQgb2N0ZXRzIGxlIGNvZGUgZCdhbW9y52FnZVxuIgorIiAtcyAgICAgIHRyaWVyIGxlcyBlbnRy6WVzIGRlIHLpcGVydG9pcmUgKG9wdGlvbiBvYnNvbOh0ZSwgaWdub3LpZSlcbiIKKyIgLXogICAgICBmYWlyZSBkZXMgdHJvdXMgZXhwbGljaXRlcyAocmVxdWllcnQgPj0gMi4zLjM5KVxuIgorIiBy6XBlcnRvaXJlICAgICByYWNpbmUgZHUgc3lzdOhtZSBkZSBmaWNoaWVycyDgIGNvbXByZXNzZXJcbiIKKyIgZmljaGllci1zb3J0aWUgZmljaGllciBkZSBzb3J0aWVcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVmVyeSBsb25nICglenUgYnl0ZXMpIGZpbGVuYW1lIGAlcycgZm91bmQuXG4iCisiIFBsZWFzZSBpbmNyZWFzZSBNQVhfSU5QVVRfTkFNRUxFTiBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICBFeGl0aW5nLlxuIgorbXNnc3RyICIiCisiVHLocyBsb25nICglenUgb2N0ZXRzKSBub20gZGUgZmljaGllciCrICVzILsgcmVw6XLpLlxuIgorIlNWUCBhdWdtZW50ZXIgTUFYX0lOUFVUX05BTUVMRU4gZGFucyBta2NyYW1mcy5jIGV0IHJlY29tcGlsZXIuICBGaW4gIgorImQnZXjpY3V0aW9uLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImZpbGVzeXN0ZW0gdG9vIGJpZy4gIEV4aXRpbmcuXG4iCittc2dzdHIgInN5c3TobWUgZGUgZmljaGllcnMgdHJvcCBncm9zLiBGaW4gZCdleOljdXRpb24uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQUlFRUU6IGJsb2NrIFwiY29tcHJlc3NlZFwiIHRvID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorbXNnc3RyICJIb3VsYSAhIGJsb2MgXCJjb21wcmVzc+lcIiBkZSB0YWlsbGUgPiAyKmxvbmd1ZXVyLWRlLWJsb2MgKCVsZClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiJTYuMmYlJSAoJStsZCBvY3RldHMpXHQlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBndWVzdGltYXRlIG9mIHJlcXVpcmVkIHNpemUgKHVwcGVyIGJvdW5kKSBpcyAlbGxkTUIsIGJ1dCBtYXhpbXVtICIKKyJpbWFnZSBzaXplIGlzICV1TUIuICBXZSBtaWdodCBkaWUgcHJlbWF0dXJlbHkuXG4iCittc2dzdHIgIiIKKyJBVkVSVElTU0VNRU5UOiB0YWlsbGUgZXN0aW3pZSByZXF1aXNlIChsaW1pdGUgc3Vw6XJpZXVyZSkgZGUgJWxsZE1CLCBtYWlzICIKKyJ0YWlsbGUgbWF4aW11bSBkZSBsJ2ltYWdlIOAgJXVNQi4gQXJy6nQgcHLpbWF0dXLpIHByb2JhYmxlLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAicGxhbiBpbWFnZSBST00iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5jbHVkaW5nOiAlc1xuIgorbXNnc3RyICJJbmNsdXNpb246ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlyZWN0b3J5IGRhdGE6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJS6XBlcnRvaXJlIGRvbm7pZXMgOiAlemQgb2N0ZXRzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICJUb3V0IDogJXpkIGtpbG9jdGV0c1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN1cGVyIGJsb2NrOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiU3VwZXIgYmxvYzogJXpkIG9jdGV0c1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNSQzogJXhcbiIKK21zZ3N0ciAiQ1JDOiAleFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UgYWxsb2NhdGVkIGZvciBST00gaW1hZ2UgKCVsbGQgYWxsb2NhdGVkLCAlenUgdXNlZClcbiIKK21zZ3N0ciAiIgorInBhcyBhc3NleiBkJ2VzcGFjZSBhbGxvdekgcG91ciBsJ2ltYWdlIFJPTSAoJWxsZCBhbGxvdelzLCAlenUgdXRpbGlz6XMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgImltYWdlIFJPTSIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIgorbXNnc3RyICLJY2hlYyBkZSBsJ+ljcml0dXJlIGRlIGwnaW1hZ2UgZGFucyBsYSBST00gKCV6ZCAlemQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZW5hbWVzIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMuXG4iCittc2dzdHIgIkFWRVJUSVNTRU1FTlQ6IG5vbXMgZGUgZmljaGllcnMgdHJvbnF16XMg4CAyNTUgb2N0ZXRzLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZXJyb3JzLlxuIgorbXNnc3RyICJBVkVSVElTU0VNRU5UOiBmaWNoaWVycyBpZ25vculzIGVuIHJhaXNvbiBkJ2VycmV1cnMuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgIkFWRVJUSVNTRU1FTlQ6IHRhaWxsZSBkZXMgZmljaGllcnMgdHJvbnF16WUg4CAlbHVNbyAobW9pbnMgMSBvY3RldCkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IHVpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorIkFWRVJUSVNTRU1FTlQ6IHVpZHMgdHJvbnF16XMg4CAldSBiaXRzLiAoQ2VjaSBwZXV0IGNy6WVyIHVuIHByb2Js6G1lIGRlICIKKyJz6WN1cml06S4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorIkFWRVJUSVNTRU1FTlQ6IGdpZHMgdHJvbnF16XMg4CAldSBiaXRzLiAoQ2VjaSBwZXV0IGNy6WVyIHVuIHByb2Js6G1lIGRlICIKKyJz6WN1cml06S4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisiQVZFUlRJU1NFTUVOVDogbnVt6XJvcyBkZSBw6XJpcGjpcmlxdWVzIHRyb25xdelzIOAgJXUgYml0cy4gIENlbGEgc2lnbmlmaWUgIgorInF1ZVxuIgorImNlcnRhaW5zIGZpY2hpZXJzIGRlIHDpcmlwaOlyaXF1ZXMgc2Vyb250IGNlcnRhaW5lbWVudCBlcnJvbulzLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstYyB8IC1sIGZpbGVuYW1lXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICIiCisiVXRpbGlzYXRpb24gOiAlcyBbLWMgfCAtbCBub20tZGUtZmljaGllcl0gWy1uWFhdIFstaVhYXSAvZGV2L25vbSBbYmxvY3NdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiJXMgZXN0IG1vbnTpOyBpbXBvc3NpYmxlIGRlIGNy6WVyIHVuIHN5c3TobWUgZGUgZmljaGllciBpY2khIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxODgKK21zZ2lkICJzZWVrIHRvIGJvb3QgYmxvY2sgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAi6WNoZWMgZGUgcG9zaXRpb25uZW1lbnQgc3VyIGxlIGJsb2MgZCdhbW9y52FnZSBkYW5zIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkwCittc2dpZCAidW5hYmxlIHRvIGNsZWFyIGJvb3Qgc2VjdG9yIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHZpZGVyIGxlIHNlY3RldXIgZCdhbW9y52FnZSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkyCittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICLpY2hlYyBkZSBwb3NpdGlvbm5lbWVudCBkYW5zIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk2Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ+ljcmlyZSBsYSB0YWJsZSBkZXMgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTgKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgImltcG9zc2libGUgZCfpY3JpcmUgbGEgdGFibGUgZGVzIHpvbmVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDAKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGQn6WNyaXJlIGxlcyBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwOQorbXNnaWQgIndyaXRlIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAi6WNoZWMgZCfpY3JpdHVyZSBkYW5zIHdyaXRlX2Jsb2NrIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMTcgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjkxCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzozNDAKK21zZ2lkICJ0b28gbWFueSBiYWQgYmxvY2tzIgorbXNnc3RyICJ0cm9wIGRlIGJsb2NzIGNvcnJvbXB1cyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjI1Cittc2dpZCAibm90IGVub3VnaCBnb29kIGJsb2NrcyIKK21zZ3N0ciAicGFzIGFzc2V6IGRlIGJsb2NzIHZhbGlkZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0MAorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzIGZvciBtYXBzIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYWxsb3VlciBkZXMgdGFtcG9ucyBwb3VyIGxlcyB0YWJsZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0OQorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FsbG91ZXIgdW4gdGFtcG9ucyBwb3VyIGxlcyBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTWF4c2l6ZT0lbGRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlRhaWxsZSBtYXhpbXVtPSVsZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NjkKK21zZ2lkICJzZWVrIGZhaWxlZCBkdXJpbmcgdGVzdGluZyBvZiBibG9ja3MiCittc2dzdHIgIuljaGVjIGRlIHBvc2l0aW9ubmVtZW50IGR1cmFudCBsZSB0ZXN0IGRlcyBibG9jcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICJWYWxldXJzIOl0cmFuZ2VzIGRhbnMgZG9fY2hlY2s6IHByb2JhYmxlbWVudCB1biBidWdcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTA4IGRpc2stdXRpbHMvbWtzd2FwLmM6MzE1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gY2hlY2tfYmxvY2tzIgorbXNnc3RyICLpY2hlYyBkZSBwb3NpdGlvbm5lbWVudCBkYW5zIGNoZWNrX2Jsb2NrcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTE3Cittc2dpZCAiYmFkIGJsb2NrcyBiZWZvcmUgZGF0YS1hcmVhOiBjYW5ub3QgbWFrZSBmcyIKK21zZ3N0ciAiIgorImJsb2NzIGNvcnJvbXB1cyBhdmFudCBsYSB6b25lIGRlIGRvbm7pZXM6IHN5c3QuIGRlIGZpY2hpZXJzIGluY29uc3RydWN0aWJsZSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTIzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBiYWQgYmxvY2tzXG4iCittc2dzdHIgIiVkIGJsb2NzIGNvcnJvbXB1c1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAidW4gYmxvYyBjb3Jyb21wdVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzUKK21zZ2lkICJjYW4ndCBvcGVuIGZpbGUgb2YgYmFkIGJsb2NrcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ291dnJpciBsZSBmaWNoaWVyIGRlIGJsb2NzIGNvcnJvbXB1cyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIm6wIGRlIGJsb2MgY29ycm9tcHUgZXJyb27pIGVuIGVudHLpZSDgIGxhIGxpZ25lICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0MAorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbGUgZmljaGllciBkZSBibG9jcyBjb3Jyb21wdXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJ0b2wgZXJyb3I6IG51bWJlciBvZiBibG9ja3Mgbm90IHNwZWNpZmllZCIKK21zZ3N0ciAiZXJyZXVyIHN0cnRvbCgpOiBub21icmUgZGUgYmxvY3Mgbm9uIHNw6WNpZmnpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgJXMiCittc2dzdHIgIkltcG9zc2libGUgZCfpdmFsdWVyIHBhciBzdGF0KCkgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ291dnJpciAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2VjdG9yIHNpemUgZm9yICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGEgdGFpbGxlIGQndW4gc2VjdGV1ciBwb3VyICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgInRhaWxsZSBkZSBibG9jIHBsdXMgcGV0aXRlIHF1ZSBsYSB0YWlsbGUgZHUgc2VjdGV1ciBwaHlzaXF1ZSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2l6ZSBvZiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ29idGVuaXIgbGEgdGFpbGxlIGRlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICJhYmFuZG9uIGRlIGxhIGNy6WF0aW9uIGQndW4gc3lzdOhtZSBkZSBmaWNoaWVycyBzdXIgqyAlcyC7IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjUKK21zZ2lkICJudW1iZXIgb2YgYmxvY2tzIHRvbyBzbWFsbCIKK21zZ3N0ciAibm9tYnJlIGRlIGJsb2NzIHRyb3AgcGV0aXQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWRcbiIKK21zZ3N0ciAiVGFpbGxlIGRlIHBhZ2Ugc3DpY2lmaellIHBhciBsJ3V0aWxpc2F0ZXVyIGVycm9u6WUgJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiIgorIlV0aWxpc2UgbGEgdGFpbGxlIGRlIHBhZ2Ugc3DpY2lmaellIHBhciBsJ3VzYWdlciAlZCwgYXUgbGlldSBkZSBsYSB2YWxldXIgIgorInN5c3TobWUgJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHN3YXAgaGVhZGVyIHNpemUsIG5vIGxhYmVsIHdyaXR0ZW4uXG4iCittc2dzdHIgIlRhaWxsZSBlcnJvbullIGQnZW506nRlIGRlIHN3YXAsIGF1Y3VuZSDpdGlxdWV0dGUgbidhIOl06SDpY3JpdGUuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxhYmVsIHdhcyB0cnVuY2F0ZWQuXG4iCittc2dzdHIgIkwn6XRpcXVldHRlIGEg6XTpIHRyb25xdellLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICJwYXMgZCfpdGlxdWV0dGUsICIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdXVpZFxuIgorbXNnc3RyICJwYXMgZCd1dWlkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIlVzYWdlIDogJXMgWy1jXSBbLXBQQUdFU1pdIFstTCBsYWJlbF0gWy1VIFVVSURdIC9kZXYvbmFtZSBbYmxvY3NdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICJ0cm9wIGRlIHBhZ2VzIGNvcnJvbXB1ZXMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzEwIG1pc2MtdXRpbHMvbG9vay5jOjE4MiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTc5CisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDE2IHRleHQtdXRpbHMvbW9yZS5jOjIwMjcKK21zZ2lkICJPdXQgb2YgbWVtb3J5IgorbXNnc3RyICJN6W1vaXJlIOlwdWlz6WUiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICJ1bmUgcGFnZSBjb3Jyb21wdWVcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IGJhZCBwYWdlc1xuIgorbXNnc3RyICIlbHUgcGFnZXMgY29ycm9tcHVlc1xuIgorCisjIGRpc2stdXRpbHMvbWtzd2FwLmM6NjEyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQwMiBkaXNrLXV0aWxzL21rc3dhcC5jOjQzOSBkaXNrLXV0aWxzL21rc3dhcC5jOjY1OQorbXNnaWQgInVuYWJsZSB0byByZXdpbmQgc3dhcC1kZXZpY2UiCittc2dzdHIgIkltcG9zc2libGUgZGUgculpbml0aWFsaXNlciBsZSBw6XJpcGjpcmlxdWUgZCfpY2hhbmdlIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgbmV3IGxpYmJsa2lkIHByb2JlIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYWxsb3VlciB1biB0YW1wb25zIHBvdXIgbGVzIGlub2RlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTUKK21zZ2lkICJ1bmFibGUgdG8gYXNzaWduIGRldmljZSB0byBsaWJsa2lkIHByb2JlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQzCittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgImltcG9zc2libGUgZCdlZmZhY2VyIGxlIHNlY3RldXIgZCdhbW9y52FnZSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB3YXJuaW5nOiBkb24ndCBlcmFzZSBib290Yml0cyBzZWN0b3JzXG4iCittc2dzdHIgIiVzIDogJXMgOiBhdHRlbnRpb24sIG5lIHBhcyBlZmZhY2VyIGxlcyBzZWN0ZXVycyBkZSBk6W1hcnJhZ2VcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoJXMgcGFydGl0aW9uIHRhYmxlIGRldGVjdGVkKS4gIgorbXNnc3RyICIgICAgICAgICglcyB0YWJsZSBkZSBwYXJ0aXRpb25zIGTpdGVjdOllKS4gIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiICAgICAgICB0b3V0IGxlIGRpc3F1ZS4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICAgICAgIHRvdXQgbGUgZGlzcXVlLiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTEkczogd2FybmluZzogaWdub3JlIC1VIChVVUlEcyBhcmUgdW5zdXBwb3J0ZWQgYnkgJTEkcylcbiIKK21zZ3N0ciAiIgorIiUxJHM6IGF0dGVudGlvbjogb3B0aW9uIC1VIGlnbm9y6WUgKGxlcyBVVUlEIG5lIHNvbnQgcGFzIHN1cHBvcnTpcyBwYXIgJTEiCisiJHMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkb2VzIG5vdCBzdXBwb3J0IHN3YXBzcGFjZSB2ZXJzaW9uICVkLlxuIgorbXNnc3RyICIlcyA6IG5lIHN1cHBvcnRlIHBhcyBjZXR0ZSB2ZXJzaW9uIGQnZXNwYWNlIGQn6WNoYW5nZSAlZC5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKK21zZ2lkICJlcnJvcjogVVVJRCBwYXJzaW5nIGZhaWxlZCIKK21zZ3N0ciAiZXJyZXVyIDog6WNoZWMgZCdhbmFseXNlIGRlIGwnVVVJRCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBOb3doZXJlIHRvIHNldCB1cCBzd2FwIG9uP1xuIgorbXNnc3RyICIlczogZXJyZXVyOiBhdWN1biBlbmRyb2l0IHBvdXIgZOlmaW5pciB1biBlc3BhY2UgZCfpY2hhbmdlID9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiIKKyIlcyA6IGVycmV1ciA6IHRhaWxsZSAlbGx1IEtvIHN1cOlyaWV1cmUg4CBsYSB0YWlsbGUgZHUgcOlyaXBo6XJpcXVlICVsbHUgS29cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzd2FwIGFyZWEgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJWxkIEtpQlxuIgorbXNnc3RyICIiCisiJXM6IGVycmV1ciA6IGxhIHpvbmUgZCfpY2hhbmdlIChzd2FwKSBkb2l0IOp0cmUgYXUgbW9pbnMgZGUgdGFpbGxlICVsZCBLb1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FybmluZzogdHJ1bmNhdGluZyBzd2FwIGFyZWEgdG8gJWxsdSBLaUJcbiIKK21zZ3N0ciAiJXM6IEFWRVJUSVNTRU1FTlQgOiB0cm9uY2FnZSBkZSBsYSB6b25lIGQn6WNoYW5nZSAoc3dhcCkg4CAlbGx1IEtvXG4iCisKKyMgZGlzay11dGlscy9ta3N3YXAuYzo1NjYKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogd2lsbCBub3QgdHJ5IHRvIG1ha2Ugc3dhcGRldmljZSBvbiAnJXMnXG4iCittc2dzdHIgIiVzOiBpbXBvc3NpYmxlIGRlIGNy6WVyIHVuZSB6b25lIGQn6WNoYW5nZSBzdXIgXCIlc1wiXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBzd2Fwc3BhY2UuXG4iCittc2dzdHIgIiIKKyIlczogZXJyZXVyIC0gJXMgZXN0IG1vbnTpIDsgaW1wb3NzaWJsZSBkZSBjcullciB1bmUgem9uZSBkJ+ljaGFuZ2UgaWNpLlxuIgorCisjIGRpc2stdXRpbHMvbWtzd2FwLmM6NjA1CisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2luaXRpYWxpc2VyIGwnZXNwYWNlIGQn6WNoYW5nZSA6IGlsbGlzaWJsZSIKKworIyBkaXNrLXV0aWxzL21rc3dhcC5jOjYwNgorIzogZGlzay11dGlscy9ta3N3YXAuYzo2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyB1cCBzd2Fwc3BhY2UgdmVyc2lvbiAxLCBzaXplID0gJWxsdSBLaUJcbiIKK21zZ3N0ciAiQ29uZmlndXJlIGwnZXNwYWNlIGQn6WNoYW5nZSAoc3dhcCkgZW4gdmVyc2lvbiAxLCB0YWlsbGUgPSAlbGx1IEtvXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiJXMgOiAlcyA6IGltcG9zc2libGUgZCfpY3JpcmUgbGEgcGFnZSBkZSBzaWduYXR1cmUgJXMiCisKKyMgZGlzay11dGlscy9ta3N3YXAuYzo2MjMKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICLJY2hlYyBkZSBsYSBzeW5jaHJvbmlzYXRpb24gZHUgc3lzdOhtZSBkZSBmaWNoaWVycyBwYXIgZnN5bmMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIG9idGFpbiBzZWxpbnV4IGZpbGUgbGFiZWw6ICVzXG4iCittc2dzdHIgIiVzOiAlczogaW1wb3NzaWJsZSBkJ29idGVuaXIgbCfpdGlxdWV0dGUgZHUgZmljaGllciBzZWxpbnV4IDogJXNcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTAKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgIm1hdGNocGF0aGNvbigpIGludXRpbGlzYWJsZSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTMKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgImltcG9zc2libGUgZGUgY3LpZXIgdW4gbm91dmVhdSBjb250ZXh0ZSBzZWxpbnV4IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5NQorbXNnaWQgImNvdWxkbid0IGNvbXB1dGUgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJpbXBvc3NpYmxlIGQn6XZhbHVlciBsZSBjb250ZXh0ZSBzZWxpbnV4IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjcwMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIHJlbGFiZWwgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgIiVzOiBpbXBvc3NpYmxlIGQn6XRpcXVldGVyIGRlICVzIGVuICVzOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgICVzICIKK21zZ3N0ciAiIgorIlVzYWdlIDpcbiIKKyIgICVzICIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKyJMZSBw6XJpcGguICclcycgZXN0IHVuIHDpcmlwaC4gZGUgY29udHL0bGUgcGh5c2lxdWUgKHV0aWxpc2VyIHJhdzxOPiBv+SBOICIKKyJlc3QgcGx1cyBncmFuZCBxdWUgeulybylcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSBibG9jayBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIkltcG9zc2libGUgZGUgbG9jYWxpc2VyIGxlIHDpcmlwaOlyaXF1ZSBwYXIgYmxvY3MgJyVzJyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICInJXMnIG4nZXN0IHBhcyB1biBw6XJpcGjpcmlxdWUgcGFyIGJsb2NzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIG1hc3RlciByYXcgZGV2aWNlICciCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgbGUgcOlyaXBoLiBwaHlzaXF1ZSBtYe50cmUgJyIKKworIzogZGlzay11dGlscy9yYXcuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxvY2FsaXNlciBsZSBw6XJpcGjpcmlxdWUgcGh5c2lxdWUgJyVzJyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iCittc2dzdHIgIiIKKyJMZSBw6XJpcGjpcmlxdWUgcGh5c2lxdWUgJyVzJyBuJ2VzdCBwYXMgdW4gcOlyaXBo6XJpcXVlIGRlIGNhcmFjdOhyZXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgcmF3IGRldlxuIgorbXNnc3RyICInJXMnIG4nZXN0IHBhcyB1biBw6XJpcGjpcmlxdWUgcGh5c2lxdWVcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcXVlcnlpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIkVycmV1ciBkJ2ludGVycm9nYXRpb24gZHUgcOlyaXBo6XJpcXVlIHBoeXNpcXVlICglcylcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNDEgZGlzay11dGlscy9yYXcuYzoyNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmF3JWQ6XHRib3VuZCB0byBtYWpvciAlZCwgbWlub3IgJWRcbiIKK21zZ3N0ciAicOlyaXBoLiBwaHlzLiAlZCA6XHQgYXNzb2Np6SDgIG6wIG1hamV1ciAlZCwgbrAgbWluZXVyICVkXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHNldHRpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIkVycmV1ciBkZSBjb25maWd1cmF0aW9uIGR1IHDpcmlwaC4gcGh5c2lxdWUgKCVzKVxuIgorCisjOiBmZGlzay9jZmRpc2suYzozNzggZmRpc2svY2ZkaXNrLmM6MjA4MworbXNnaWQgIlVudXNhYmxlIgorbXNnc3RyICJJbnV0aWxpc2FibGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAiRXNwYWNlIGxpYnJlIgorCisjOiBmZGlzay9jZmRpc2suYzozODMKK21zZ2lkICJMaW51eCBleHQyIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9jZmRpc2suYzozODUKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICJMaW51eCBleHQzIgorCisjOiBmZGlzay9jZmRpc2suYzozODcKK21zZ2lkICJMaW51eCBYRlMiCittc2dzdHIgIkxpbnV4IFhGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBKRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIkxlIGRpc3F1ZSBhIOl06SBjaGFuZ+kuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIlJlZOltYXJyZXIgbGUgc3lzdOhtZSBwb3VyIHMnYXNzdXJlciBxdWUgbGEgdGFibGUgZGUgcGFydGl0aW9uIHNvaXQgIgorImNvcnJlY3RlbWVudCBtaXNlIOAgam91ci5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBVkVSVElTU0VNRU5UOiBzaSB2b3VzIGF2ZXogY3Lp6SBvdSBtb2RpZmnpIHVuZVxuIgorInBhcnRpdGlvbiBET1MgNi54LCBzdnAgY29uc3VsdGVyIGxlcyBwYWdlcyBkdSBtYW51ZWxcbiIKKyJkZSBjZmRpc2sgcG91ciBkZSBwbHVzIGFtcGxlcyBpbmZvcm1hdGlvbnMuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNgorbXNnaWQgIkZBVEFMIEVSUk9SIgorbXNnc3RyICJFUlJFVVIgRkFUQUxFIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTcKK21zZ2lkICJQcmVzcyBhbnkga2V5IHRvIGV4aXQgY2ZkaXNrIgorbXNnc3RyICJBcHB1eWVyIHN1ciBuJ2ltcG9ydGUgcXVlbGxlIHRvdWNoZSBwb3VyIHF1aXR0ZXIgY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzo1NjQgZmRpc2svY2ZkaXNrLmM6NTcyCittc2dpZCAiQ2Fubm90IHNlZWsgb24gZGlzayBkcml2ZSIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBzZSBwb3NpdGlvbm5lciBzdXIgbGUgZGlzcXVlIgorCisjOiBmZGlzay9jZmRpc2suYzo1NjYKK21zZ2lkICJDYW5ub3QgcmVhZCBkaXNrIGRyaXZlIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgc3VyIGxlIGRpc3F1ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIkltcG9zc2libGUgZCfpY3JpcmUgc3VyIGxlIGRpc3F1ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTE3Cittc2dpZCAiVG9vIG1hbnkgcGFydGl0aW9ucyIKK21zZ3N0ciAiVHJvcCBkZSBwYXJ0aXRpb25zIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiTGEgcGFydGl0aW9uIGTpYnV0ZSBhdmFudCBsZSBzZWN0ZXVyIDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiTGEgcGFydGl0aW9uIHNlIHRlcm1pbmUgYXZhbnQgbGUgc2VjdGV1ciAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJMYSBwYXJ0aXRpb24gZOlidXRlIGFwcuhzIGxhIGZpbiBkdSBkaXNxdWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJMYSBwYXJ0aXRpb24gc2UgdGVybWluZSBhcHLocyBsYSBmaW4gZHUgZGlzcXVlIgorCisjOiBmZGlzay9jZmRpc2suYzo5NDIKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBpbiB0aGUgZmluYWwgcGFydGlhbCBjeWxpbmRlciIKK21zZ3N0ciAiTGEgcGFydGl0aW9uIHNlIHRlcm1pbmUgZGFucyBsZSBjeWxpbmRyZSBmaW5hbCBwYXJ0aWVsIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgInBhcnRpdGlvbnMgbG9naXF1ZXMgbm9uIG9yZG9ubullcyBzdWl2YW50IGxlIGRpc3F1ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgImNoZXZhdWNoZW1lbnQgZGUgcGFydGl0aW9ucyBsb2dpcXVlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTczCittc2dpZCAiZW5sYXJnZWQgbG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgImNoZXZhdWNoZW1lbnQgZGVzIHBhcnRpdGlvbnMgbG9naXF1ZXMgYWdyYW5kaWVzIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICJFcnJldXIgaW50ZXJuZSBlbiBjculhbnQgdW4gZGlzcXVlIGxvZ2lxdWUgc2FucyBwYXJ0aXRpb24g6XRlbmR1ZSAhISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDE0IGZkaXNrL2NmZGlzay5jOjEwMjYKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisiSW1wb3NzaWJsZSBkZSBjcullciB1biBkaXNxdWUgbG9naXF1ZSBpY2kgLS0gY2VsYSBjcullcmFpdCAyIHBhcnRpdGlvbnMgIgorIul0ZW5kdWVzIgorCisjOiBmZGlzay9jZmRpc2suYzoxMTY4Cittc2dpZCAiTWVudSBpdGVtIHRvbyBsb25nLiBNZW51IG1heSBsb29rIG9kZC4iCittc2dzdHIgIkl0ZW0gZGUgbWVudSB0cm9wIGxvbmcuIExlIG1lbnUgcG91cnJhaXQgcGFyYe50cmUgZXJyb27pLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTIyNAorbXNnaWQgIk1lbnUgd2l0aG91dCBkaXJlY3Rpb24uIERlZmF1bHRpbmcgdG8gaG9yaXpvbnRhbC4iCittc2dzdHIgIk1lbnUgc2FucyBkaXJlY3Rpb24uIEhvcml6b250YWwgcGFyIGTpZmF1dC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAiVG91Y2hlIG5vbiB2YWxhYmxlIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIkFwcHV5ZXIgc3VyIHVuZSB0b3VjaGUgcG91ciBjb250aW51ZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiUHJpbWFpcmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYKK21zZ2lkICJDcmVhdGUgYSBuZXcgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIkNy6WUgdW5lIG5vdXZlbGxlIHBhcnRpdGlvbiBwcmltYWlyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNyBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODUKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJMb2dpY2FsIgorbXNnc3RyICJMb2dpcXVlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3Cittc2dpZCAiQ3JlYXRlIGEgbmV3IGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICJDcullIHVuZSBub3V2ZWxsZSBwYXJ0aXRpb24gbG9naXF1ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzIGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJDYW5jZWwiCittc2dzdHIgIkFubnVsZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MworbXNnaWQgIkRvbid0IGNyZWF0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiTmUgcGFzIGNy6WVyIHVuZSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDQKK21zZ2lkICIhISEgSW50ZXJuYWwgZXJyb3IgISEhIgorbXNnc3RyICIhISEgRXJyZXVyIGludGVybmUgISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ3Cittc2dpZCAiU2l6ZSAoaW4gTUIpOiAiCittc2dzdHIgIlRhaWxsZSAoZW4gTW8pOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIkTpYnV0IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBiZWdpbm5pbmcgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiQWpvdXRlIHVuZSBwYXJ0aXRpb24gYXUgZOlidXQgZGUgbCdlc3BhY2UgbGlicmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJFbmQiCittc2dzdHIgIkZpbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkFqb3V0ZSB1bmUgcGFydGl0aW9uIOAgbGEgZmluIGRlIGwnZXNwYWNlIGxpYnJlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTAwCittc2dpZCAiTm8gcm9vbSB0byBjcmVhdGUgdGhlIGV4dGVuZGVkIHBhcnRpdGlvbiIKK21zZ3N0ciAiUGFzIGQnZXNwYWNlIHBvdXIgY3LpZXIgdW5lIHBhcnRpdGlvbiDpdGVuZHVlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc0Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJBdWN1bmUgdGFibGUgZGUgcGFydGl0aW9ucy5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3OAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiQXVjdW5lIHRhYmxlIGRlIHBhcnRpdGlvbnMuIETpbWFycmFnZSBhdmVjIHVuZSB0YWJsZSB2aWVyZ2UuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlNpZ25hdHVyZSBlcnJvbullIGRhbnMgbGEgdGFibGUgZGUgcGFydGl0aW9ucyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorbXNnaWQgIlVua25vd24gcGFydGl0aW9uIHRhYmxlIHR5cGUiCittc2dzdHIgIlR5cGUgaW5jb25udSBkZSB0YWJsZSBkZSBwYXJ0aXRpb25zIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAiVm91bGV6LXZvdXMgZOltYXJyZXIgYXZlYyB1bmUgdGFibGUgdmllcmdlIFt5IChwb3VyIG91aSkvTl0gPyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAiVm91cyBhdmV6IHNw6WNpZmnpIHBsdXMgZGUgY3lsaW5kcmVzIHF1ZSBsZSBkaXNxdWUgbidlbiBjb250aWVudCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NAorbXNnaWQgIkNhbm5vdCBvcGVuIGRpc2sgZHJpdmUiCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgbCd1bml06SBkZSBkaXNxdWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzYgZmRpc2svY2ZkaXNrLmM6MTg2NQorbXNnaWQgIk9wZW5lZCBkaXNrIHJlYWQtb25seSAtIHlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gd3JpdGUiCittc2dzdHIgIkRpc3F1ZSBvdXZlcnQgZW4gbW9kZSBsZWN0dXJlIHNldWxlIC0gYXVjdW5lIHBlcm1pc3Npb24gZCfpY3JpdHVyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY4NworbXNnaWQgIiIKKyJXYXJuaW5nISEgIFVuc3VwcG9ydGVkIEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkLiBVc2UgR05VIFBhcnRlZC4iCittc2dzdHIgIiIKKyJBdHRlbnRpb24hISBJZGVudGlmaWFudCBHUFQgKEdVSUQpIGRlIHRhYmxlIGRlIHBhcnRpdGlvbnMgbm9uIHN1cHBvcnTpICIKKyJk6XRlY3TpLiBVdGlsaXNleiBHTlUgUGFydGVkLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTcwNgorbXNnaWQgIkNhbm5vdCBnZXQgZGlzayBzaXplIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnb2J0ZW5pciBsYSB0YWlsbGUgZHUgZGlzcXVlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJQYXJ0aXRpb24gcHJpbWFpcmUgZXJyb27pZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiUGFydGl0aW9uIGxvZ2lxdWUgZXJyb27pZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg3NworbXNnaWQgIldhcm5pbmchISAgVGhpcyBtYXkgZGVzdHJveSBkYXRhIG9uIHlvdXIgZGlzayEiCittc2dzdHIgIkFWRVJUSVNTRU1FTlQhISAgQ2VsYSBwb3VycmFpdCBk6XRydWlyZSBsZXMgZG9ubullcyBzdXIgdm90cmUgZGlzcXVlISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4MQorbXNnaWQgIiIKKyJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrPyAoeWVzIG9yIG5vKTogIgorbXNnc3RyICIiCisiynRlcy12b3VzIHP7ciBkZSB2b3Vsb2lyIOljcmlyZSBsYSB0YWJsZSBkZSBwYXJ0aXRpb25zIHN1ciBsZSBkaXNxdWU/IChvdWkvIgorIm5vbikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODcKK21zZ2lkICJubyIKK21zZ3N0ciAibm9uIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg5Cittc2dpZCAiRGlkIG5vdCB3cml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiVGFibGUgZGUgcGFydGl0aW9ucyBub24g6WNyaXRlIHN1ciBsZSBkaXNxdWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTEKK21zZ2lkICJ5ZXMiCittc2dzdHIgIm91aSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5NQorbXNnaWQgIlBsZWFzZSBlbnRlciBgeWVzJyBvciBgbm8nIgorbXNnc3RyICJTVlAgculwb25kcmUgqyBvdWkguyBvdSCrIG5vbiC7IgorCisjOiBmZGlzay9jZmRpc2suYzoxODk5Cittc2dpZCAiV3JpdGluZyBwYXJ0aXRpb24gdGFibGUgdG8gZGlzay4uLiIKK21zZ3N0ciAiyWNyaXR1cmUgZGUgbGEgdGFibGUgZGUgcGFydGl0aW9ucyBzdXIgbGUgZGlzcXVlLi4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI0IGZkaXNrL2NmZGlzay5jOjE5MjgKK21zZ2lkICJXcm90ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiVGFibGUgZGUgcGFydGl0aW9ucyDpY3JpdGUgc3VyIGxlIGRpc3F1ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNgorbXNnaWQgIiIKKyJXcm90ZSBwYXJ0aXRpb24gdGFibGUsIGJ1dCByZS1yZWFkIHRhYmxlIGZhaWxlZC4gIFJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCIKKyIoOCkgb3IgcmVib290IHRvIHVwZGF0ZSB0YWJsZS4iCittc2dzdHIgIiIKKyJUYWJsZSBkZSBwYXJ0aXRpb25zIOljcml0ZSwgbWFpcyDpY2hlYyBkZSBsYSByZWxlY3R1cmUuIEV46WN1dGVyIHBhcnRwcm9iZSIKKyIoOCksIGtwYXJ0eCg4KSBvdSByZWTpbWFycmVyIHBvdXIgbWV0dHJlIOAgam91ciBsYSB0YWJsZS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIkF1Y3VuZSBwYXJ0aXRpb24gcHJpbWFpcmUgbWFycXXpZSBjb21tZSBhbW9y52FibGUuIERPUyBNQlIgbmUgcG91cnJhIHBhcyAiCisiYW1vcmNlci4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJQbHVzIGQndW5lIHBhcnRpdGlvbiBwcmltYWlyZSBtYXJxdellIGNvbW1lIGFtb3LnYWJsZS4gRE9TIE1CUiBuZSBwb3VycmEgcGFzICIKKyJhbW9yY2VyLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTk5NiBmZGlzay9jZmRpc2suYzoyMTE1IGZkaXNrL2NmZGlzay5jOjIxOTkKK21zZ2lkICJFbnRlciBmaWxlbmFtZSBvciBwcmVzcyBSRVRVUk4gdG8gZGlzcGxheSBvbiBzY3JlZW46ICIKK21zZ3N0ciAiIgorIkVudHJlciBsZSBub20gZHUgZmljaGllciBvdSBhcHB1eWVyIKsgUkVUVVJOILsgcG91ciBhZmZpY2hhZ2Ug4CBsJ+ljcmFuOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAwNSBmZGlzay9jZmRpc2suYzoyMTIzIGZkaXNrL2NmZGlzay5jOjIyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnb3V2cmlyIGxlIGZpY2hpZXIgqyAlcyC7IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzXG4iCittc2dzdHIgIlVuaXTpIGRlIGRpc3F1ZTogJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxOAorbXNnaWQgIlNlY3RvciAwOlxuIgorbXNnc3RyICJTZWN0ZXVyIDA6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkOlxuIgorbXNnc3RyICJTZWN0ZXVyICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgQXVjdW4gICAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDcKK21zZ2lkICIgICBQcmkvTG9nIgorbXNnc3RyICIgICBQcmkvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ5Cittc2dpZCAiICAgUHJpbWFyeSIKK21zZ3N0ciAiICAgUHJpbWFpcmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIgICBMb2dpcXVlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICJJbmNvbm51IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk1IGZkaXNrL2NmZGlzay5jOjI1NjMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5Cittc2dpZCAiQm9vdCIKK21zZ3N0ciAiQW1vcmNlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk5Cittc2dpZCAiTm9uZSIKK21zZ3N0ciAiQXVjdW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIlRhYmxlIGRlIHBhcnRpdGlvbnMgZGUgJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNgorbXNnaWQgIiAgICAgICAgICAgICAgIEZpcnN0ICAgICAgIExhc3RcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICAgUHJlbWllciAgICAgRGVybmllclxuIgorCisjIGZkaXNrL2NmZGlzay5jOjE5NjkKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjIFR5cGUgICAgICAgU2VjdGV1ciAgICBTZWN0ZXVyICBE6WNhbGFnZSAgTG9uZ3VldXIgIFN5c3QuRmljaC4gVHlwZSAoSUQpICIKKyJGYW5pb25zXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgIC0tLSBE6WJ1dCAgLS0tICAgICAgIC0tLS0gRmluICAtLS0tICAgICBQcmVtaWVyICAgTmJyZSBkZVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCittc2dpZCAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCittc2dzdHIgIiAjIEZhbi4gIFTqdGUgU2VjdCAgQ3lsICAgSUQgIFTqdGUgU2VjdCAgQ3lsICAgICBTZWN0ZXVyICAgU2VjdGV1cnNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJSYXciCittc2dzdHIgIkJydXQoZSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IgorbXNnc3RyICJBZmZpY2hlciBsZSBjb250ZW51IGRlIGxhIHRhYmxlIGVuIGZvcm1hdCBicnV0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJTZWN0b3JzIgorbXNnc3RyICJTZWN0ZXVycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIkFmZmljaGUgbGUgY29udGVudSBkZSBsYSB0YWJsZSBvcmRvbm7pIHBhciBzZWN0ZXVycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIlRhYmxlIgorbXNnc3RyICJUYWJsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiQWZmaWNoZSBqdXN0ZSBsYSB0YWJsZSBkZSBwYXJ0aXRpb25zIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICJOZSBwYXMgYWZmaWNoZXIgbGEgdGFibGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODcKK21zZ2lkICJIZWxwIFNjcmVlbiBmb3IgY2ZkaXNrIgorbXNnc3RyICLJY3JhbiBkJ2FpZGUgcG91ciBjZmRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODkKK21zZ2lkICJUaGlzIGlzIGNmZGlzaywgYSBjdXJzZXMgYmFzZWQgZGlzayBwYXJ0aXRpb25pbmcgcHJvZ3JhbSwgd2hpY2giCittc2dzdHIgImNmZGlzayBlc3QgdW4gcHJvZ3JhbW1lIGRlIHBhcnRpb25uZW1lbnQgYmFz6SBzdXIgY3Vyc2VzLCBxdWkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgInBlcm1ldCBkZSBjcullciwgZOl0cnVpcmUgZXQgbW9kaWZpZXIgbGVzIHBhcnRpdGlvbnMgZGUgdm90cmUgdW5pdOkgZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTEKK21zZ2lkICJkaXNrIGRyaXZlLiIKK21zZ3N0ciAiZGlzcXVlIGR1ci4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJDb21tYW5kZSAgICAgU2lnbmlmaWNhdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICItLS0tLS0tICAgICAgLS0tLS0tLSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgYiAgICAgICAgICBUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgYiAgICAgICAgICBiYXNjdWxlciBsZSBmYW5pb24gZCdhbW9yY2Ugc3VyIGxhIHBhcnRpdGlvbiBjb3VyYW50ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgZCAgICAgICAgICBEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGQgICAgICAgICAgZOl0cnVpcmUgbGEgcGFydGl0aW9uIGNvdXJhbnRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIiCisiICBnICAgICAgICAgIG1vZGlmaWVyIGxlcyBwYXJhbeh0cmVzOiBjeWxpbmRyZXMsIHTqdGVzLCBzZWN0ZXVycyBwYXIgcGlzdGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgICAgICAgICAgV0FSTklORzogVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBwZW9wbGUgd2hvIgorbXNnc3RyICIgICAgICAgICAgICAgQVZFUlRJU1NFTUVOVDogY2V0dGUgb3B0aW9uIG5lIGRvaXQgcGFzIOp0cmUgdXRpbGlz6WUgcGFyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAxCittc2dpZCAiICAgICAgICAgICAgIGtub3cgd2hhdCB0aGV5IGFyZSBkb2luZy4iCittc2dzdHIgIiAgICAgICAgICAgICBkZXMgZ2VucyBxdWkgbmUgc2F2ZW50IHBhcyBjZSBxdSdpbHMgZm9udC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICBhZmZpY2hlciBjZXQg6WNyYW4gZCdhaWRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAzCittc2dpZCAiICBtICAgICAgICAgIE1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIiCisiICBtICAgICAgICAgIG1heGltaXNlciBsJ3V0aWxpc2F0aW9uIGR1IGRpc3F1ZSBwYXIgbGEgcGFydGl0aW9uIGNvdXJhbnRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA0Cittc2dpZCAiICAgICAgICAgICAgIE5vdGU6IFRoaXMgbWF5IG1ha2UgdGhlIHBhcnRpdGlvbiBpbmNvbXBhdGlibGUgd2l0aCIKK21zZ3N0ciAiICAgICAgICAgICAgIE5vdGU6IGNlbGEgcGV1dCByZW5kcmUgbGEgcGFydGl0aW9uIGluY29tcGF0aWJsZSBhdmVjIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDYKK21zZ2lkICIgIG4gICAgICAgICAgQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICIgIG4gICAgICAgICAgY3LpZXIgdW5lIG5vdXZlbGxlIHBhcnRpdGlvbiDgIHBhcnRpciBkZSBsJ2VzcGFjZSBsaWJyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgcCAgICAgICAgICBQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIiIKKyIgIHAgICAgICAgICAgbGlzdGVyIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMg4CBsJ+ljcmFuIG91IGRhbnMgdW4gZmljaGllciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOAorbXNnaWQgIiAgICAgICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhlIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgICAgICAgICAgIElsIHkgYSBwbHVzaWV1cnMgZm9ybWF0cyBkaWZm6XJlbnRzIHBvdXIgbGEgcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA5Cittc2dpZCAiICAgICAgICAgICAgIHRoYXQgeW91IGNhbiBjaG9vc2UgZnJvbToiCittc2dzdHIgIiAgICAgICAgICAgICBxdWUgdm91cyBwb3V2ZXogY2hvaXNpcjoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgICAgICAgICAgICAgciAtIFJhdyBkYXRhIChleGFjdGx5IHdoYXQgd291bGQgYmUgd3JpdHRlbiB0byBkaXNrKSIKK21zZ3N0ciAiIgorIiAgICAgICAgICAgICAgICByIC0gZG9ubullcyBicnV0ZXMgKGV4YWN0ZW1lbnQgY2UgcXVlIHZvdXMg6WNyaXZleiBzdXIgbGUgIgorImRpc3F1ZSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHMgLSB0YWJsZSBvcmRvbm7pZSBwYXIgc2VjdGV1cnMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTIKK21zZ2lkICIgICAgICAgICAgICAgICAgdCAtIFRhYmxlIGluIHJhdyBmb3JtYXQiCittc2dzdHIgIiAgICAgICAgICAgICAgICB0IC0gdGFibGUgYXUgZm9ybWF0IGJydXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTMKK21zZ2lkICIgIHEgICAgICAgICAgUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgcSAgICAgICAgICBxdWl0dGVyIGxlIHByb2dyYW1tZSBzYW5zIOljcmlyZSBsYSB0YWJsZSBkZSBwYXJ0aXRpb25zIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIgIHQgICAgICAgICAgbW9kaWZpZXIgbGUgdHlwZSBkZSBzeXN06G1lIGRlIGZpY2hpZXJzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE1Cittc2dpZCAiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIKK21zZ3N0ciAiIgorIiAgdSAgICAgICAgICBtb2RpZmllciBsZXMgdW5pdOlzIGQnYWZmaWNoYWdlIGRlIGxhIHRhaWxsZSBkZXMgcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE2Cittc2dpZCAiICAgICAgICAgICAgIFJvdGF0ZXMgdGhyb3VnaCBNQiwgc2VjdG9ycyBhbmQgY3lsaW5kZXJzIgorbXNnc3RyICIgICAgICAgICAgICAgYWx0ZXJuZSBNbywgc2VjdGV1cnMgZXQgY3lsaW5kcmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE3Cittc2dpZCAiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiCittc2dzdHIgIiIKKyIgIFcgICAgICAgICAg6WNyaXJlIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMgc3VyIGxlIGRpc3F1ZSAodGFwZXIgVyBlbiAiCisibWFqdXNjdWxlKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgVnUgcXVlIGNlbGEgcGV1dCBk6XRydWlyZSBkZXMgZG9ubullcyBzdXIgbGUgZGlzcXVlLCB2b3VzIGRldmV6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE5Cittc2dpZCAiICAgICAgICAgICAgIGVpdGhlciBjb25maXJtIG9yIGRlbnkgdGhlIHdyaXRlIGJ5IGVudGVyaW5nIGB5ZXMnIG9yIgorbXNnc3RyICIgICAgICAgICAgICAgY29uZmlybWVyIG91IGFubnVsZXIgbGEgY29tbWFuZGUgcGFyIGxhIHLpcG9uc2UgqyBvdWkguyBvdSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIgICAgICAgICAgICAgqyBub24guyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMQorbXNnaWQgIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIgorbXNnc3RyICJGbOhjaGUtaGF1dCAgZOlwbGFjZXIgbGUgY3Vyc2V1ciB2ZXJzIGxhIHBhcnRpdGlvbiBwculj6WRlbnRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIyCittc2dpZCAiRG93biBBcnJvdyAgIE1vdmUgY3Vyc29yIHRvIHRoZSBuZXh0IHBhcnRpdGlvbiIKK21zZ3N0ciAiRmzoY2hlLWJhcyAgIGTpcGxhY2VyIGxlIGN1cnNldXIgdmVycyBsYSBwYXJ0aXRpb24gc3VpdmFudGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDVFJMLUwgICAgICAgculhZmZpY2hlciBsZSBjb250ZW51IOAgbCfpY3JhbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICA/ICAgICAgICAgIGFmZmljaGVyIGNldCDpY3JhbiBkJ2FpZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICJOb3RlOiB0b3V0ZXMgbGVzIGNvbW1hbmRlcyBwZXV2ZW50IOp0cmUgc2Fpc2llcyBlbiBsZXR0cmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI3Cittc2dpZCAiY2FzZSBsZXR0ZXJzIChleGNlcHQgZm9yIFdyaXRlcykuIgorbXNnc3RyICJtYWp1c2N1bGVzIG91IG1pbnVzY3VsZXMgKHNhdWYgcG91ciBsZXMg6WNyaXR1cmVzKS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAiQ3lsaW5kcmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICJNb2RpZmllciBsYSBn6W9t6XRyaWUgZGVzIGN5bGluZHJlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OSBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMwCittc2dpZCAiSGVhZHMiCittc2dzdHIgIlTqdGVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5Cittc2dpZCAiQ2hhbmdlIGhlYWQgZ2VvbWV0cnkiCittc2dzdHIgIk1vZGlmaWVyIGxhIGfpb23pdHJpZSBkZXMgdOp0ZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJDaGFuZ2Ugc2VjdG9yIGdlb21ldHJ5IgorbXNnc3RyICJNb2RpZmllciBsYSBn6W9t6XRyaWUgZGVzIHNlY3RldXJzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAiQ29tcGzpdOkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIk1vZGlmaWNhdGlvbiBkZSBsYSBn6W9t6XRyaWUgY29tcGzpdOllIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzc0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIKK21zZ3N0ciAiRW50cmVyIGxlIG5vbWJyZSBkZSBjeWxpbmRyZXM6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIlZhbGV1ciBpbGzpZ2FsZSBwb3VyIGxlcyBjeWxpbmRyZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTEKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGhlYWRzOiAiCittc2dzdHIgIkVudHJlciBsZSBub21icmUgZGUgdOp0ZXM6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAiVmFsZXVyIGlsbOlnYWxlIHBvdXIgbGVzIHTqdGVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICJFbnRyZXIgbGUgbm9tYnJlIGRlIHNlY3RldXJzIHBhciBwaXN0ZTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDExIGZkaXNrL2NmZGlzay5jOjI5NzUKK21zZ2lkICJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiCittc2dzdHIgIlZhbGV1ciBpbGzpZ2FsZSBwb3VyIGxlcyBzZWN0ZXVycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUxNAorbXNnaWQgIkVudGVyIGZpbGVzeXN0ZW0gdHlwZTogIgorbXNnc3RyICJFbnRyZXIgbGUgdHlwZSBkZSBzeXN06G1lIGRlIGZpY2hpZXJzOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzMgorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBlbXB0eSIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBtb2RpZmllciBsZSB0eXBlIGRlIHN5c3QuIGRlIGZpY2hpZXJzICh2YWxldXIgbnVsbGUpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIG1vZGlmaWVyIGxlIHR5cGUgZGUgc3lzdC4gZGUgZmljaGllcnMg4CBcIul0ZW5kdVwiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuayglMDJYKSIKK21zZ3N0ciAiSW5jKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY4IGZkaXNrL2NmZGlzay5jOjI1NzEKK21zZ2lkICIsIE5DIgorbXNnc3RyICIsIE5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTc2IGZkaXNrL2NmZGlzay5jOjI1NzkKK21zZ2lkICJOQyIKK21zZ3N0ciAiTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODcKK21zZ2lkICJQcmkvTG9nIgorbXNnc3RyICJQcmkvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICJJbmNvbm51ICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAiVW5pdOkgZGlzcXVlOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICJUYWlsbGU6ICVsbGQgb2N0ZXRzLCAgJWxsZCBNbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgIlRhaWxsZTogJWxsZCBvY3RldHMsICAlbGxkLiVsbGQgR28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGVhZHM6ICVkICAgU2VjdG9ycyBwZXIgVHJhY2s6ICVkICAgQ3lsaW5kZXJzOiAlbGxkIgorbXNnc3RyICJU6nRlczogJWQgICBTZWN0ZXVycyBwYXIgcGlzdGU6ICVkICBDeWxpbmRyZXM6ICVsbGQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIk5vbSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MgorbXNnaWQgIkZsYWdzIgorbXNnc3RyICJGYW5pb25zIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgzCittc2dpZCAiUGFydCBUeXBlIgorbXNnc3RyICJQYXJ0IFR5cGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODQKK21zZ2lkICJGUyBUeXBlIgorbXNnc3RyICJUeXBlIFN5cy5GaWMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODUKK21zZ2lkICJbTGFiZWxdIgorbXNnc3RyICJbyXRpcS5dIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgICBTZWN0ZXVycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4OQorbXNnaWQgIiAgQ3lsaW5kZXJzIgorbXNnc3RyICIgIEN5bGluZHJlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MQorbXNnaWQgIiAgU2l6ZSAoTUIpIgorbXNnc3RyICIgIFRhaWxsZSAoTW8pIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkzCittc2dpZCAiICBTaXplIChHQikiCittc2dzdHIgIiAgVGFpbGxlIChHbykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJCb290YWJsZSIKK21zZ3N0ciAiQW1vcudhYmxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJCYXNjdWxlciBsZSBmYW5pb24gZCdhbW9yY2UgcG91ciBsYSBwYXJ0aXRpb24gY291cmFudGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUiCittc2dzdHIgIkTpdHJ1aXJlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiROl0cnVpcmUgbGEgcGFydGl0aW9uIGNvdXJhbnRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiR2VvbWV0cnkiCittc2dzdHIgIkfpb23pdHJpZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkNoYW5nZSBkaXNrIGdlb21ldHJ5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICJNb2RpZmllciBsYSBn6W9t6XRyaWUgZHUgZGlzcXVlIChwb3VyIGV4cGVydCBzZXVsZW1lbnQpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiQWlkZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICJBZmZpY2hlciBsJ+ljcmFuIGQnYWlkZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIgorbXNnc3RyICJNYXhpbWlzZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiIgorIk1heGltaXNlciBsJ3VzYWdlIGR1IGRpc3F1ZSBwYXIgbGEgcGFydGl0aW9uIGNvdXJhbnRlIChleHBlcnRzIHNldWxlbWVudCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJOZXciCittc2dzdHIgIk5vdXZlbGxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICJDcullciB1bmUgbm91dmVsbGUgcGFydGl0aW9uIOAgcGFydGlyIGRlIGwnZXNwYWNlIGxpYnJlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQiCittc2dzdHIgIkFmZmljaGVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIiCisiQWZmaWNoZXIgbGUgY29udGVudSBkZSBsYSB0YWJsZSBkZSBwYXJ0aXRpb25zIOAgbCfpY3JhbiAob3UgZGFucyB1biBmaWNoaWVyKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIlF1aXR0ZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiUXVpdHRlciBsZSBwcm9ncmFtbWUgc2FucyDpY3JpcmUgbGEgdGFibGUgZGUgcGFydGl0aW9ucyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIlR5cGUiCittc2dzdHIgIlR5cGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSAoRE9TLCBMaW51eCwgT1MvMiBhbmQgc28gb24pIgorbXNnc3RyICJNb2RpZmllciBsZSB0eXBlIGRlIHN5c3TobWUgZGUgZmljaGllciAoRE9TLCBMaW51eCwgT1MvMiwgZXRjKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIlVuaXRzIgorbXNnc3RyICJVbml06XMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkgKE1CLCBzZWN0LCBjeWwpIgorbXNnc3RyICIiCisiTW9maWZpZXIgbGVzIHVuaXTpcyBkJ2FmZmljaGFnZSBkZXMgdGFpbGxlIGRlcyBwYXJ0aXRpb25zIChNbywgc2VjdCwgY3lsKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJFY3JpcmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIgorbXNnc3RyICIiCisiRWNyaXJlIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMgc3VyIGxlIGRzaXF1ZSAoY2VsYSBwZXV0IGTpdHJ1aXJlIGxlcyBkb25u6WVzKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgwNQorbXNnaWQgIkNhbm5vdCBtYWtlIHRoaXMgcGFydGl0aW9uIGJvb3RhYmxlIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJlbmRyZSBjZXR0ZSBwYXJ0aXRpb24gYW1vcudhYmxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyODE1Cittc2dpZCAiQ2Fubm90IGRlbGV0ZSBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIkltcG9zc2libGUgZGUgZOl0cnVpcmUgdW5lIHBhcnRpdGlvbiB2aWRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyODM1IGZkaXNrL2NmZGlzay5jOjI4MzcKK21zZ2lkICJDYW5ub3QgbWF4aW1pemUgdGhpcyBwYXJ0aXRpb24iCittc2dzdHIgIkltcG9zc2libGUgZGUgbWF4aW1pc2VyIGNldHRlIHBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NQorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIHVudXNhYmxlIgorbXNnc3RyICJDZXR0ZSBwYXJ0aXRpb24gZXN0IGludXRpbGlzYWJsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJDZXR0ZSBwYXJ0aXRpb24gZXN0IGVuIGNvdXJzIGQndXRpbGlzYXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NjQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHRoZSB0eXBlIG9mIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBjaGFuZ2VyIGxlIHR5cGUgZCd1bmUgcGFydGl0aW9uIHZpZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAiUGFzIGRlIHBhcnRpdGlvbiBzdXBwbOltZW50YWlyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAiQ29tbWFuZGUgaWxs6WdhbGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkNvcHlyaWdodCCpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiUHJpbnQgdmVyc2lvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiUHJpbnQgcGFydGl0aW9uIHRhYmxlOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B0aW9uc10gZGV2aWNlXG4iCisiSW50ZXJhY3RpdmUgdXNlOlxuIgorIiAgICAgICAgJXMgW29wdGlvbnNdIGRldmljZVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiLWE6IFVzZSBhcnJvdyBpbnN0ZWFkIG9mIGhpZ2hsaWdodGluZztcbiIKKyItejogU3RhcnQgd2l0aCBhIHplcm8gcGFydGl0aW9uIHRhYmxlLCBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHB0IGZyb20gZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzogT3ZlcnJpZGUgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMsXG4iCisiICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHRoZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjay5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlV0aWxpc2F0aW9uIDpcbiIKKyJBZmZpY2hlciBsZSBudW3pcm8gZGUgdmVyc2lvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiQWZmaWNoZXIgbGEgdGFibGUgZGUgcGFydGl0aW9uOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B0aW9uc10gcOlyaXBo6XJpcXVlXG4iCisiVXRpbGlzYXRpb24gaW506XJhY3RpdmU6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gcOlyaXBo6XJpcXVlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogdXRpbGlzZXIgbGVzIHRvdWNoZXMgZmzpY2jpZXMgYXUgbGlldSBkZSBsYSBzdXJicmlsbGFuY2U7XG4iCisiLXo6IGTpYnV0ZXIgYXZlYyB1bmUgdGFibGUgZGUgcGFydGl0aW9ucyB2aWVyZ2UsIGF1IGxpZXUgZGUgbGEgbGlyZSBzdXIgbGUgIgorImRpc3F1ZTtcbiIKKyItYyBDIC1oIEggLXMgUzog6WNyYXNlciBsZXMgcGFyYW3odHJlcyBjb25udXMgZHUgbm95YXU6IG5vbWJyZSBkZSAiCisiY3lsaW5kcmVzLFxuIgorIiAgICAgICAgICAgICAgICBub21icmUgZGUgdOp0ZXMgZXQgbm9tYnJlIGRlIHNlY3RldXJzIHBhciBwaXN0ZS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2thaXhsYWJlbC5jOjI3Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBBSVggbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBMaW51eCBjYW5ub3QgaGFuZGxlIHRoZXNlXG4iCisiXHRkaXNrcyBhdCB0aGUgbW9tZW50LiAgTmV2ZXJ0aGVsZXNzIHNvbWVcbiIKKyJcdGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKKyJcdDMuIEJlZm9yZSBkZWxldGluZyB0aGlzIHBoeXNpY2FsIHZvbHVtZSBiZSBzdXJlXG4iCisiXHQgICB0byByZW1vdmUgdGhlIGRpc2sgbG9naWNhbGx5IGZyb20geW91ciBBSVhcbiIKKyJcdCAgIG1hY2hpbmUuICAoT3RoZXJ3aXNlIHlvdSBiZWNvbWUgYW4gQUlYcGVydCkuIgorbXNnc3RyICIiCisiXG4iCisiXHRJbCB5IGEgdW5lIOl0aXF1ZXR0ZSBBSVggdmFsaWRlIHN1ciBjZSBkaXNxdWUuXG4iCisiXHRNYWxoZXVyZXVzZW1lbnQgTGludXggbmUgZ+hyZSBwYXMgY2UgdHlwZSBkZVxuIgorIlx0ZGlzcXVlIHBvdXIgbGUgbW9tZW50LiBO6WFtbW9pbnMgdm9pY2kgcXVlbHF1ZXNcbiIKKyJcdGNvbnNlaWxzOlxuIgorIlx0MS4gZmRpc2sgZOl0cnVpcmEgc29uIGNvbnRlbnUgbG9ycyBkJ3VuZSDpY3JpdHVyZS5cbiIKKyJcdDIuIFNveWV6IHP7ciBxdWUgbGUgZGlzcXVlIG5lIGNvbnNpdHVlIFBBUyB1bmVcbiIKKyJcdCAgIHBhcnRpZSB2aXRhbGUgZCd1biBncm91cGUgZGUgdm9sdW1lcy4gKFNpbm9uLCB2b3VzIHBvdXJyaWV6XG4iCisiXHQgICBlZmZhY2VyIGxlcyBhdXRyZXMgZGlzcXVlcyBhdXNzaSwgc2kgcGFzIGRlIG1pcm9pci4pXG4iCisiXHQzLiBBdmFudCBkZSBk6XRydWlyZSBwaHlzaXF1ZW1lbnQgY2Ugdm9sdW1lIHBoeXNpcXVlLCBzb3llelxuIgorIlx0ICAgc/tyIGRlIHJldGlyZXIgbGUgZGlzcXVlIGxvZ2lxdWUgZHUgc3lzdC4gQUlYXG4iCisiXHQgICAoQSBtb2lucyBkJ+p0cmUgdW4gZXhwZXJ0IEFJWCkuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIsl0aXF1ZXR0ZSBCU0Qgc3VyIGxlIHDpcmlwaOlyaXF1ZTogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOCBmZGlzay9mZGlzay5jOjM5NCBmZGlzay9mZGlzay5jOjQxMworIzogZmRpc2svZmRpc2suYzo0MzEgZmRpc2svZmRpc2suYzo0MzggZmRpc2svZmRpc2suYzo0NjEgZmRpc2svZmRpc2suYzo0NzkKKyM6IGZkaXNrL2ZkaXNrLmM6NDk1IGZkaXNrL2ZkaXNrLmM6NTExCittc2dpZCAiQ29tbWFuZCBhY3Rpb24iCittc2dzdHIgIkNvbW1hbmRlIGQnYWN0aW9uIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICBk6XRydWlyZSB1bmUgcGFydGl0aW9uIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMAorbXNnaWQgIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiCittc2dzdHIgIiAgIGUgICDpZGl0ZXIgbGVzIGRvbm7pZXMgZHUgcOlyaXBo6XJpcXVlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMxCittc2dpZCAiICAgaSAgIGluc3RhbGwgYm9vdHN0cmFwIgorbXNnc3RyICIgICBpICAgaW5zdGFsbGVyIHVuZSBhbW9yY2UiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzIKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBmaWxlc3lzdGVtIHR5cGVzIgorbXNnc3RyICIgICBsICAgbGlzdGVyIGxlcyB0eXBlcyBkZSBzeXN06G1lIGRlIGZpY2hpZXJzIGNvbm51cyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMyBmZGlzay9mZGlzay5jOjQwMCBmZGlzay9mZGlzay5jOjQxOQorIzogZmRpc2svZmRpc2suYzo0MzIgZmRpc2svZmRpc2suYzo0NDQgZmRpc2svZmRpc2suYzo0NjkgZmRpc2svZmRpc2suYzo0ODYKKyM6IGZkaXNrL2ZkaXNrLmM6NTAyIGZkaXNrL2ZkaXNrLmM6NTIwCittc2dpZCAiICAgbSAgIHByaW50IHRoaXMgbWVudSIKK21zZ3N0ciAiICAgbSAgIGFmZmljaGVyIGNlIG1lbnUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzQKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICBham91dGVyIHVuZSBub3V2ZWxsZSBwYXJ0aXRpb24gQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM1Cittc2dpZCAiICAgcCAgIHByaW50IEJTRCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBhZmZpY2hlciBsYSB0YWJsZSBkZSBwYXJ0aXRpb25zIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgIHF1aXR0ZXIgc2FucyBlbnJlZ2lzdHJlciBsZXMgY2hhbmdlbWVudHMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzcgZmRpc2svZmRpc2suYzo0NzIgZmRpc2svZmRpc2suYzo0ODkKKyM6IGZkaXNrL2ZkaXNrLmM6NTA1IGZkaXNrL2ZkaXNrLmM6NTIzCittc2dpZCAiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiCittc2dzdHIgIiAgIHIgICByZXRvdXJuZXIgYXUgbWVudSBwcmluY2lwYWwiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzgKK21zZ2lkICIgICBzICAgc2hvdyBjb21wbGV0ZSBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICBtb250cmVyIGwn6XRpcXVldHRlIGNvbXBs6HRlIGR1IGRpc3F1ZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgbW9kaWZpZXIgbCdpZCBkZSBzeXN06G1lIGRlIGZpY2hpZXJzIGRlIGxhIHBhcnRpdGlvbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiICAgdSAgIGNoYW5nZXIgbGVzIHVuaXTpcyAoY3lsaW5kcmVzL3NlY3RldXJzKSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgIOljcmlyZSBsJ+l0aXF1ZXR0ZSBzdXIgbGUgZGlzcXVlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQzCittc2dpZCAiICAgeCAgIGxpbmsgQlNEIHBhcnRpdGlvbiB0byBub24tQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgeCAgIGxpZXIgbGEgcGFydGl0aW9uIEJTRCDgIHVuZSBwYXJ0aXRpb24gcXVpIG4nZXN0IHBhcyBkZSB0eXBlIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIkxhIHBhcnRpdGlvbiAlcyBhIHVuIHNlY3RldXIgMCBkZSBk6XBhcnQgbm9uIHZhbGlkZS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIGRpc2tsYWJlbCBvZiAlcyBhdCBzZWN0b3IgJWQuXG4iCittc2dzdHIgIkxlY3R1cmUgZGUgbCfpdGlxdWV0dGUgZHUgZGlzcXVlICVzIGF1IHNlY3RldXIgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIklsIG4neSBhIHBhcyBkZSBwYXJ0aXRpb24gKkJTRCBzdXIgJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyMDMKK21zZ2lkICJCU0QgZGlza2xhYmVsIGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIkNvbW1hbmRlIGQn6XRpcXVldGFnZSBCU0QgKG0gcG91ciBkZSBsJ2FpZGUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyODMgZmRpc2svZmRpc2suYzoyMzI4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzgKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3QgJXMiCittc2dzdHIgIlByZW1pZXIgJXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICVzIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsiCittc2dzdHIgIkRlcm5pZXIgJXMgb3UgK3RhaWxsZSBvciArdGFpbGxlTSBvdSArdGFpbGxlSyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlc1xuIgorbXNnc3RyICJ0eXBlOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE5CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVkXG4iCittc2dzdHIgInR5cGU6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlzazogJS4qc1xuIgorbXNnc3RyICJkaXNxdWU6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsYWJlbDogJS4qc1xuIgorbXNnc3RyICLpdGlxdWV0dGU6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmbGFnczoiCittc2dzdHIgImZhbmlvbnM6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiBleHRyYWN0aWJsZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNgorIywgYy1mb3JtYXQKK21zZ2lkICIgZWNjIgorbXNnc3RyICIgZWNjIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiBiYWRzZWN0IgorbXNnc3RyICIgbWF1dmFpcyBzZWN0ZXVyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzL3NlY3RvcjogJWxkXG4iCittc2dzdHIgIm9jdGV0cy9zZWN0ZXVyOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAic2VjdGV1cnMvcGlzdGU6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInBpc3Rlcy9jeWxpbmRyZTogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInNlY3RldXJzL2N5bGluZHJlOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnM6ICVsZFxuIgorbXNnc3RyICJjeWxpbmRyZXM6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM3CisjLCBjLWZvcm1hdAorbXNnaWQgInJwbTogJWRcbiIKK21zZ3N0ciAidG91cnMvbW46ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW50ZXJsZWF2ZTogJWRcbiIKK21zZ3N0ciAiaW50ZXJsZWF2ZTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgImTpY2FsYWdlLXBpc3RlOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAiZOljYWxhZ2UtY3lsaW5kcmU6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgImNvbW11dGF0aW9uLXTqdGVzOiAlbGRcdFx0I21pbGxpc2Vjb25kZXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgInBvc2l0aW9ubmVtZW50LXBpc3RlLeAtcGlzdGU6ICVsZFx0IyBtaWxsaXNlY29uZGVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgImRvbm7pZXMtZGlzcXVlOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpb25zOlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiMgICAgICAgc3RhcnQgICAgICAgZW5kICAgICAgc2l6ZSAgICAgZnN0eXBlICAgW2ZzaXplIGJzaXplICAgY3BnXVxuIgorbXNnc3RyICIiCisiIyAgICAgICBk6WJ1dCAgICAgICBmaW4gICAgICB0YWlsbGUgICB0eXBlIHN5cy5maWMgW2ZzaXplIGJzaXplICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiyWNyaXR1cmUgZGUgbCfpdGlxdWV0dGUgZGUgZGlzcXVlIHN1ciAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQxOSBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIKK21zZ3N0ciAiJXMgbmUgY29udGllbnQgcGFzIGQn6XRpcXVldHRlLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDI2Cittc2dpZCAiRG8geW91IHdhbnQgdG8gY3JlYXRlIGEgZGlza2xhYmVsPyAoeS9uKSAiCittc2dzdHIgIlZvdWxlei12b3VzIGNy6WVyIHVuZSDpdGlxdWV0dGUgZGUgZGlzcXVlPyAoeSBwb3VyIG91aS9uKSAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgIm9jdGV0cy9zZWN0ZXVyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic2VjdGV1cnMvcGlzdGUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjgKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXIiCittc2dzdHIgInBpc3Rlcy9jeWxpbmRyZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAiY3lsaW5kcmVzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDc2Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlciIKK21zZ3N0ciAic2VjdGV1cnMvY3lsaW5kcmUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSA8PSBzZWN0b3JzL3RyYWNrICogdHJhY2tzL2N5bGluZGVyIChkZWZhdWx0KS5cbiIKK21zZ3N0ciAiRG9pdCDqdHJlIDw9IHNlY3RldXJzL3Bpc3RlICogcGlzdGVzL2N5bGluZHJlIChwYXIgZOlmYXV0KS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAidG91cnMvbW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODMKK21zZ2lkICJpbnRlcmxlYXZlIgorbXNnc3RyICJpbnRlcmxlYXZlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICJk6WNhbGFnZS1waXN0ZXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgImTpY2FsYWdlLWN5bGluZHJlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgImNvbW11dGF0aW9uLXTqdGVzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg3Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlayIKK21zZ3N0ciAicG9zaXRpb25uZW1lbnQtcGlzdGUt4C1waXN0ZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXA6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorbXNnc3RyICJBbW9yY2U6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIkwnYW1vcmNlIGNoZXZhdWNoZSBsJ+l0aXF1ZXR0ZSBkdSBkaXNxdWUhXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgaW5zdGFsbGVkIG9uICVzLlxuIgorbXNnc3RyICJBbW9yY2UgaW5zdGFsbOllIHN1ciAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gKGEtJWMpOiAiCittc2dzdHIgIlBhcnRpdGlvbiAoYS0lYyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYxNyBmZGlzay9mZGlzay5jOjI0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgaGFzIGJlZW4gY3JlYXRlZFxuIgorbXNnc3RyICJMZSBub21icmUgbWF4aW11bSBkZSBwYXJ0aXRpb25zIGEg6XTpIGNy6elcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiIKK21zZ3N0ciAiQ2V0dGUgcGFydGl0aW9uIGV4aXN0ZSBk6WrgLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHRvbyBtYW55IHBhcnRpdGlvbnMgKCVkLCBtYXhpbXVtIGlzICVkKS5cbiIKK21zZ3N0ciAiQVZFUlRJU1NFTUVOVDogdHJvcCBkZSBwYXJ0aXRpb25zICglZCwgbWF4aSAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTeW5jaHJvbmlzYXRpb24gZGVzIGRpc3F1ZXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ291dnJpciAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gcmVhZCAlc1xuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNlZWsgb24gJXNcbiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBzZSBwb3NpdGlvbm5lciBzdXIgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlICVzXG4iCittc2dzdHIgIkltcG9zc2libGUgZCfpY3JpcmUgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXNcbiIKK21zZ3N0ciAi6WNoZWMgZGUgQkxLR0VUU0laRSBpb2N0bCBzdXIgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIkltcG9zc2libGUgZCdhbGxvdWVyIHBsdXMgZGUgbeltb2lyZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NgorbXNnaWQgIkZhdGFsIGVycm9yXG4iCittc2dzdHIgIkVSUkVVUiBGQVRBTEVcbiIKKworIzogZmRpc2svZmRpc2suYzozOTUKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgcmVhZCBvbmx5IGZsYWciCittc2dzdHIgIiAgIGEgICBiYXNjdWxlciBsZSBmYW5pb24gZGUgbGVjdHVyZSBzZXVsZSIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAg6WRpdGVyIGwn6XRpcXVldHRlIEJTRCBkdSBkaXNxdWUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiAgIGMgICBiYXNjdWxlciBsZSBmYW5pb24gXCJtb250YWJsZVwiIgorCisjOiBmZGlzay9mZGlzay5jOjM5OCBmZGlzay9mZGlzay5jOjQxNyBmZGlzay9mZGlzay5jOjQ0MgorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICBzdXBwcmltZXIgbGEgcGFydGl0aW9uIgorCisjOiBmZGlzay9mZGlzay5jOjM5OSBmZGlzay9mZGlzay5jOjQxOCBmZGlzay9mZGlzay5jOjQ0MworbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIGxpc3RlciBsZXMgdHlwZXMgZGUgcGFydGl0aW9ucyBjb25udWVzIgorCisjOiBmZGlzay9mZGlzay5jOjQwMSBmZGlzay9mZGlzay5jOjQyMCBmZGlzay9mZGlzay5jOjQ0NQorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgYWpvdXRlciB1bmUgbm91dmVsbGUgcGFydGl0aW9uIgorCisjOiBmZGlzay9mZGlzay5jOjQwMiBmZGlzay9mZGlzay5jOjQyMSBmZGlzay9mZGlzay5jOjQzMyBmZGlzay9mZGlzay5jOjQ0NgorbXNnaWQgIiAgIG8gICBjcmVhdGUgYSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgbyAgIGNy6WVyIHVuZSBub3V2ZWxsZSB0YWJsZSB2aWRlIGRlIHBhcnRpdGlvbnMgRE9TIgorCisjOiBmZGlzay9mZGlzay5jOjQwMyBmZGlzay9mZGlzay5jOjQyMiBmZGlzay9mZGlzay5jOjQ0NyBmZGlzay9mZGlzay5jOjQ3MAorIzogZmRpc2svZmRpc2suYzo0ODcgZmRpc2svZmRpc2suYzo1MDMgZmRpc2svZmRpc2suYzo1MjEKK21zZ2lkICIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIGFmZmljaGVyIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgY3LpZXIgdW5lIG5vdXZlbGxlIOl0aXF1ZXR0ZSB2aWRlIHBvdXIgZGlzcXVlIGRlIHR5cGUgU3VuIgorCisjOiBmZGlzay9mZGlzay5jOjQwNiBmZGlzay9mZGlzay5jOjQyNSBmZGlzay9mZGlzay5jOjQ1MAorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICBtb2RpZmllciBsJ2lkIGRlIHN5c3TobWUgZGUgZmljaGllcnMgZCd1bmUgcGFydGl0aW9uIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIG1vZGlmaWVyIGxlcyB1bml06XMgZCdhZmZpY2hhZ2Uvc2Fpc2llIgorCisjOiBmZGlzay9mZGlzay5jOjQwOCBmZGlzay9mZGlzay5jOjQyNyBmZGlzay9mZGlzay5jOjQ1MiBmZGlzay9mZGlzay5jOjQ3NAorIzogZmRpc2svZmRpc2suYzo0OTEgZmRpc2svZmRpc2suYzo1MDcgZmRpc2svZmRpc2suYzo1MjUKK21zZ2lkICIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHYgICB26XJpZmllciBsYSB0YWJsZSBkZSBwYXJ0aXRpb25zIgorCisjOiBmZGlzay9mZGlzay5jOjQwOSBmZGlzay9mZGlzay5jOjQyOCBmZGlzay9mZGlzay5jOjQ1MyBmZGlzay9mZGlzay5jOjQ3NQorIzogZmRpc2svZmRpc2suYzo0OTIgZmRpc2svZmRpc2suYzo1MDggZmRpc2svZmRpc2suYzo1MjYKK21zZ2lkICIgICB3ICAgd3JpdGUgdGFibGUgdG8gZGlzayBhbmQgZXhpdCIKK21zZ3N0ciAiICAgdyAgIOljcmlyZSBsYSB0YWJsZSBzdXIgbGUgZGlzcXVlIGV0IHF1aXR0ZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDEwIGZkaXNrL2ZkaXNrLmM6NDU0Cittc2dpZCAiICAgeCAgIGV4dHJhIGZ1bmN0aW9uYWxpdHkgKGV4cGVydHMgb25seSkiCittc2dzdHIgIiAgIHggICBmb25jdGlvbnMgYXZhbmPpZXMgKHBvdXIgZXhwZXJ0cyBzZXVsZW1lbnQpIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAgc+lsZWN0aW9ubmVyIHVuZSBwYXJ0aXRpb24gYW1vcudhYmxlIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAg6WRpdGllciBsJ2VudHLpZSBkdSBmaWNoaWVyIGQnYW1vcmNlIgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIgICBjICAgc+lsZWN0aW9ubmVyIHVuZSBwYXJ0aXRpb24gZCfpY2hhbmdlIHBvdXIgU0dJIgorCisjOiBmZGlzay9mZGlzay5jOjQzOQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnIgorbXNnc3RyICIgICBhICAgYmFzY3VsZSBsZSBmYW5pb24gZCdhbW9yY2UiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICAgYyAgIGJhc2N1bGVyIGxlIGZhbmlvbiBkZSBjb21wYXRpYmlsaXTpIERPUyIKKworIzogZmRpc2svZmRpc2suYzo0NjIKK21zZ2lkICIgICBhICAgY2hhbmdlIG51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICIgICBhICAgbW9kaWZpZXIgbGUgbm9tYnJlIGRlIGN5bGluZHJlcyBhbHRlcm5hdGlmcyIKKworIzogZmRpc2svZmRpc2suYzo0NjMgZmRpc2svZmRpc2suYzo0ODEgZmRpc2svZmRpc2suYzo0OTcgZmRpc2svZmRpc2suYzo1MTMKK21zZ2lkICIgICBjICAgY2hhbmdlIG51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGMgICBtb2RpZmllciBsZSBub21icmUgZGUgY3lsaW5kcmVzIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NCBmZGlzay9mZGlzay5jOjQ4MiBmZGlzay9mZGlzay5jOjQ5OCBmZGlzay9mZGlzay5jOjUxNAorbXNnaWQgIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZCAgIGFmZmljaGVyIGxlcyBkb25u6WVzIGJydXRlcyBkZSBsYSB0YWJsZSBkZSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY1Cittc2dpZCAiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiAgIGUgICBtb2RpZmllciBsZSBub21icmUgZGUgc2VjdGV1cnMgYWRkaXRpb25uZWxzIHBhciBjeWxpbmRyZSIKKworIzogZmRpc2svZmRpc2suYzo0NjYgZmRpc2svZmRpc2suYzo0ODUgZmRpc2svZmRpc2suYzo1MDEgZmRpc2svZmRpc2suYzo1MTgKK21zZ2lkICIgICBoICAgY2hhbmdlIG51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiICAgaCAgIG1vZGlmaWVyIGxlIG5vbWJyZSBkZSB06nRlcyIKKworIzogZmRpc2svZmRpc2suYzo0NjcKK21zZ2lkICIgICBpICAgY2hhbmdlIGludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICIgICBpICAgY2hhbmdlciBsZSBmYWN0ZXVyIFwiaW50ZXJsZWF2ZVwiIgorCisjOiBmZGlzay9mZGlzay5jOjQ2OAorbXNnaWQgIiAgIG8gICBjaGFuZ2Ugcm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIiAgIG8gICBtb2RpZmllciBsYSB2aXRlc3NlIGRlIHJvdGF0aW9uIGVuIHRvdXJzIHBhciBtaW51dGUgKHJwbSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDczIGZkaXNrL2ZkaXNrLmM6NDkwIGZkaXNrL2ZkaXNrLmM6NTA2IGZkaXNrL2ZkaXNrLmM6NTI0Cittc2dpZCAiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIKK21zZ3N0ciAiICAgcyAgIG1vZGlmaWVyIGxlIG5vbWJyZSBkZSBzZWN0ZXVycyBwYXIgcGlzdGUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIgICB5ICAgbW9kaWZpZXIgbGUgbm9tYnJlIGRlIGN5bGluZHJlcyBwaHlzaXF1ZXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGIgICBk6XBsYWNlciBsZSBk6WJ1dCBkZXMgZG9ubullcyBkYW5zIHVuZSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgzIGZkaXNrL2ZkaXNrLmM6NDk5IGZkaXNrL2ZkaXNrLmM6NTE1Cittc2dpZCAiICAgZSAgIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiICAgZSAgIGxpc3RlciBsZXMgcGFydGl0aW9ucyDpdGVuZHVlcyIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgY3LpZXIgdW5lIHRhYmxlIGRlIHBhcnRpdGlvbnMgZGUgdHlwZSBJUklYIChTR0kpIgorCisjOiBmZGlzay9mZGlzay5jOjUxNgorbXNnaWQgIiAgIGYgICBmaXggcGFydGl0aW9uIG9yZGVyIgorbXNnc3RyICIgICBmICAgY29ycmlnZXIgbCdvcmRyZSBkZXMgcGFydGl0aW9ucyIKKworIzogZmRpc2svZmRpc2suYzo1MTkKK21zZ2lkICIgICBpICAgY2hhbmdlIHRoZSBkaXNrIGlkZW50aWZpZXIiCittc2dzdHIgIiAgIGkgICBtb2RpZmllciBsJ2lkZW50aWZpYW50IGRlIGRpc3F1ZSIKKworIzogZmRpc2svZmRpc2suYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3Qgc2V0IgorbXNnc3RyICJWb3VzIGRldmV6IGluaXRpYWxpc2VyIgorCisjOiBmZGlzay9mZGlzay5jOjczNgorbXNnaWQgImhlYWRzIgorbXNnc3RyICJ06nRlcyIKKworIzogZmRpc2svZmRpc2suYzo3MzggZmRpc2svZmRpc2suYzoxNTkyIGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgInNlY3RvcnMiCittc2dzdHIgInNlY3RldXJzIgorCisjOiBmZGlzay9mZGlzay5jOjc0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMlcy5cbiIKKyJZb3UgY2FuIGRvIHRoaXMgZnJvbSB0aGUgZXh0cmEgZnVuY3Rpb25zIG1lbnUuXG4iCittc2dzdHIgIiIKKyIlcyVzLlxuIgorIlZvdXMgcG91dmV6IGZhaXJlIGNlbGEgZGVwdWlzIGxlIG1lbnUgZGVzIGZvbmN0aW9ucyBhdmFuY+llcy5cbiIKKworIzogZmRpc2svZmRpc2suYzo3NDUKK21zZ2lkICIgYW5kICIKK21zZ3N0ciAiIGV0ICIKKworIzogZmRpc2svZmRpc2suYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFRoZSBzaXplIG9mIHRoaXMgZGlzayBpcyAlZC4lZCBUQiAoJWxsdSBieXRlcykuXG4iCisiRE9TIHBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgY2FuIG5vdCBiZSB1c2VkIG9uIGRyaXZlcyBmb3Igdm9sdW1lc1xuIgorImxhcmdlciB0aGFuICglbGx1IGJ5dGVzKSBmb3IgJWQtYnl0ZSBzZWN0b3JzLiBVc2UgcGFydGVkKDEpIGFuZCBHVUlEIFxuIgorInBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgKEdQVCkuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBVFRFTlRJT04gOiBsYSB0YWlsbGUgZHUgZGlzcXVlIGVzdCAlZC4lZCBUQiAoJWxsdSBvY3RldHMpLlxuIgorIkNlIGZvcm1hdCBkZSB0YWJsZSBkZSBwYXJ0aXRpb25zIERPUyBuZSBwZXV0IHBhcyDqdHJlIHV0aWxpc+lcbiIKKyJzdXIgZGVzIGRpc3F1ZXMgcG91ciBkZXMgdm9sdW1lcyBwbHVzIGdyYW5kICglbGx1IG9jdGV0cykgZXRcbiIKKyJzZWN0ZXVycyBkZSAlZCBvY3RldHMuIFV0aWxpc2VyIHBhcnRlZCgxKSBldCBsZSBmb3JtYXQgZGUgdGFibGVcbiIKKyJkZSBwYXJ0aXRpb25zIOAgR1VJRCAoR1BUKS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzo3ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBkZXZpY2UgcHJlc2VudHMgYSBsb2dpY2FsIHNlY3RvciBzaXplIHRoYXQgaXMgc21hbGxlciB0aGFuXG4iCisidGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLiBBbGlnbmluZyB0byBhIHBoeXNpY2FsIHNlY3RvciAob3Igb3B0aW1hbFxuIgorIkkvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG9cbiIKKyIgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG9cbiIKKyIgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IGN5bGluZGVycyBhcyBkaXNwbGF5IHVuaXRzIGFyZSBkZXByZWNhdGVkLiBVc2UgY29tbWFuZCAndScgdG9cbiIKKyIgICAgICAgICBjaGFuZ2UgdW5pdHMgdG8gc2VjdG9ycy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgxOQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgb2Zmc2V0IGluIHByaW1hcnkgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIkTpY2FsYWdlIGVycm9u6SBkYW5zIGxhIHBhcnRpdGlvbiBwcmltYWlyZSDpdGVuZHVlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorIkFWRVJUSVNTRU1FTlQ6IG9taXNzaW9uIGRlcyBwYXJ0aXRpb25zIGFwcuhzIG6wJWQuXG4iCisiRWxsZXMgc2Vyb250IGTpdHJ1aXRlcyBzaSB2b3VzIHNhdXZlZ2FyZGV6IGNldHRlIHRhYmxlIGRlIHBhcnRpdGlvbi5cbiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJBVkVSVElTU0VNRU5UOiBwb2ludGV1ciBhZGRpdGlvbm5lbCBkYW5zIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaWdub3JpbmcgZXh0cmEgZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiIgorIkFWRVJUSVNTRU1FTlQ6IGRvbm7pZXMgc3VycGVyZmx1ZXMgaWdub3LpZXMgZGFucyBsYSB0YWJsZSBkZSBwYXJ0aXRpb24gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAib21pdHRpbmcgZW1wdHkgcGFydGl0aW9uICglZClcbiIKK21zZ3N0ciAicGFydGl0aW9uIHZpZGUgaWdub3LpZSAoJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIklkZW50aWZpYW50IGRlIGRpc3F1ZSA6IDB4JTA4eFxuIgorCisjOiBmZGlzay9mZGlzay5jOjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgZGlzayBpZGVudGlmaWVyIChjdXJyZW50IDB4JTA4eCk6ICIKK21zZ3N0ciAiTm91dmVsIGlkZW50aWZpYW50IGRlIGRpc3F1ZSAoYWN0dWVsbGVtZW50IDB4JTA4eCkgOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkNy6WF0aW9uIGQndW5lIG5vdXZlbGxlIOl0aXF1ZXR0ZSBET1MgYXZlYyBpZCBkZSBkaXNxdWUgMHglMDh4LlxuIgorIkxlcyBtb2RpZmljYXRpb25zIHJlc3RlbnQgZW4gbeltb2lyZSBqdXNxdSfgIGNlIHF1ZSB2b3VzIGxlcyDpY3Jpdmllei5cbiIKKyJBcHLocyBxdW9pLCBiaWVuIHP7ciwgbGUgY29udGVudSBwculj6WRlbnQgc2VyYSBpcnLpY3Vw6XJhYmxlLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAiTm90ZTogdGFpbGxlIGRlIHNlY3RldXIgJWQgKGV0IG5vbiBwYXMgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJJbCBzZXJhIGltcG9zc2libGUgZCfpY3JpcmUgbGEgdGFibGUgZGUgcGFydGl0aW9ucy5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKyJDZSBkaXNxdWUgYSBkZXMgbm9tYnJlcyBtYWdpcXVlcyDgIGxhIGZvaXMgRE9TIGV0IEJTRC5cbiIKKyJFeOljdXRlciBsYSBjb21tYW5kZSAnYicgcG91ciBwYXNzZXIgZW4gbW9kZSBCU0QuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGICIKKyJkaXNrbGFiZWxcbiIKK21zZ3N0ciAiIgorIkxlIHDpcmlwaOlyaXF1ZSBuZSBjb250aWVudCBwYXMgdW5lIHRhYmxlIGRlIHBhcnRpdGlvbnMgRE9TIG91IFN1biwgU0dJLCBPU0YgIgorInZhbGlkZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW50ZXJuYWwgZXJyb3JcbiIKK21zZ3N0ciAiRXJyZXVyIGludGVybmVcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJQYXJ0aXRpb24g6XRlbmR1ZSBzdXBwbOltZW50YWlyZSBpZ25vcullICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogaW52YWxpZCBmbGFnIDB4JTA0eCBvZiBwYXJ0aXRpb24gdGFibGUgJWQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyIKKyIocml0ZSlcbiIKK21zZ3N0ciAiIgorIkFWRVJUSVNTRU1FTlQ6IGZhbmlvbiAweCUwNHggbm9uIHZhbGlkZSBkYW5zIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMgJWQsIHNlcmEgIgorImNvcnJpZ+kgcGFyIHco6WNyaXR1cmUpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkVPRiAoZmluIGRlIGZpY2hpZXIpIG9idGVudWUgMyBmb2lzIC0gZmluIGR1IHByb2dyYW1tZS4uLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIkNvZGUgSGV4YSAodGFwZXIgTCBwb3VyIGxpc3RlciBsZXMgY29kZXMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXUtJXUsIGRlZmF1bHQgJXUpOiAiCittc2dzdHIgIiVzICgldS0ldSwgcGFyIGTpZmF1dCAldSk6ICIKKworIzogZmRpc2svZmRpc2suYzoxNDYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuc3VwcG9ydGVkIHN1ZmZpeDogJyVzJy5cbiIKK21zZ3N0ciAiU3VmZml4ZSBub24gc3VwcG9ydOkgOiAnJXMnLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisiQWRtaXMgOiAxMF5OOiBLbyAoS2lsb09jdGV0cyksIE1vIChNZWdhT2N0ZXRzKSwgR28gKEdpZ2FPY3RldHMpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaU9jdGV0cyksIE0gIChNZWJpT2N0ZXRzKSwgRyAgKEdpYmlPY3RldHMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ4OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBkZWZhdWx0IHZhbHVlICV1XG4iCittc2dzdHIgIlV0aWxpc2F0aW9uIGRlIGxhIHZhbGV1ciBwYXIgZOlmYXV0ICV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIlZhbGV1ciBob3JzIGxpbWl0ZXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgIk51belybyBkZSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAiQVZFUlRJU1NFTUVOVDogcGFydGl0aW9uICVkIGEgdW4gdHlwZSB2aWRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1MSBmZGlzay9mZGlzay5jOjE1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VsZWN0ZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIlBhcnRpdGlvbiBz6WxlY3Rpb25u6WUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiQXVjdW5lIHBhcnRpdGlvbiBuJ2VzdCBk6WZpbmllIHBvdXIgbCdpbnN0YW50IVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIHByaW1hcnkgcGFydGl0aW9ucyBoYXZlIGJlZW4gZGVmaW5lZCBhbHJlYWR5IVxuIgorbXNnc3RyICJUb3V0ZXMgbGVzIHBhcnRpdGlvbnMgcHJpbWFpcmVzIG9udCBk6WrgIOl06SBk6WZpbmllcyFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAiY3lsaW5kZXIiCittc2dzdHIgImN5bGluZHJlIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJzZWN0b3IiCittc2dzdHIgInNlY3RldXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIk1vZGlmaWNhdGlvbiBkZXMgdW5pdOlzIGQnYWZmaWNoYWdlL3NhaXNpZSDgICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIkFWRVJUSVNTRU1FTlQ6IGxhIHBhcnRpdGlvbiAlZCBlc3QgdW5lIHBhcnRpdGlvbiDpdGVuZHVlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIHNldFxuIgorbXNnc3RyICJGYW5pb24gZGUgY29tcGF0aWJpbGl06SBET1MgcG9zaXRpb25u6VxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBub3Qgc2V0XG4iCittc2dzdHIgIkZhbmlvbiBkZSBjb21wYXRpYmlsaXTpIERPUyBub24gcG9zaXRpb25u6VxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiTGEgcGFydGl0aW9uICVkIG4nZXhpc3RlIHBhcyBlbmNvcmUhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisiVHlwZSAwIHNpZ25pZmllIGxpYulyZXIgbCdlc3BhY2Ugc3VyIHBsdXNpZXVycyBzeXN06G1lc1xuIgorIihtYWlzIHBhcyBwb3VyIExpbnV4KS4gQXZvaXIgZGVzIHBhcnRpdGlvbnMgZGVcbiIKKyJ0eXBlIDAgbidlc3QgcGFzIHJlY29tbWFuZOkuIFZvdXMgcG91dmV6IGTpdHJ1aXJlXG4iCisibGEgcGFydGl0aW9uIGVuIHV0aWxpc2FudCBsYSBjb21tYW5kZSCrIGQguy5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgY2Fubm90IGNoYW5nZSBhIHBhcnRpdGlvbiBpbnRvIGFuIGV4dGVuZGVkIG9uZSBvciB2aWNlIHZlcnNhXG4iCisiRGVsZXRlIGl0IGZpcnN0LlxuIgorbXNnc3RyICIiCisiVm91cyBuZSBwb3V2ZXogcGFzIHRyYW5zZm9ybWVyIHVuZSBwYXJ0aXRpb24gZW4gcGFydGl0aW9uIOl0ZW5kdWUgb3UgdmljZSAiCisidmVyc2EuXG4iCisiVm91cyBkZXZleiBsYSBk6XRydWlyZSBkJ2Fib3JkLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiQ29uc2lk6XJlciBkZSBsYWlzc2VyIGxhIHBhcnRpdGlvbiAzIGNvbW1lIHVuIGRpc3F1ZSBlbnRpZXIgKDUpLFxuIgorInRlbCBxdWUgU3VuT1MvU29sYXJpcyBsJ2V4aWdlIGV0IGF1c3NpIGNlIHF1aSBlc3QgcHLpZulyYWJsZSAgcG91ciBMaW51eC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5IGFzIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImFuZCBwYXJ0aXRpb24gMTEgYXMgZW50aXJlIHZvbHVtZSAoNiksIGFzIElSSVggZXhwZWN0cyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkNvbnNpZOlyZXIgZGUgbGFpc3NlciBsYSBwYXJ0aXRpb24gOSBjb21tZSB1biB2b2x1bWUgZW506nRlICgwKSxcbiIKKyJldCBsYSBwYXJ0aXRpb24gMTEgY29tbWUgdW4gdm9sdW1lIGVudGllciAoNikgdGVsIHF1ZSBJUklYIGwnZXhpZ2UuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc2OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2VkIHN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCB0byAleCAoJXMpXG4iCittc2dzdHIgIlR5cGUgc3lzdOhtZSBkZSBwYXJ0aXRpb24gbW9kaWZp6SBkZSAlZCDgICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCBpcyB1bmNoYW5nZWQ6ICV4ICglcylcbiIKK21zZ3N0ciAiVHlwZSBzeXN06G1lIGRlIHBhcnRpdGlvbiAlZCBub24gbW9kaWZp6SA6ICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgYmVnaW5uaW5ncyAobm9uLUxpbnV4Pyk6XG4iCittc2dzdHIgIiIKKyJMYSBwYXJ0aXRpb24gJWQgYSBkZXMgZOlidXRzIHBoeXNpcXVlL2xvZ2lxdWUgZGlmZulyZW50cyAobm9uIExpbnV4Pyk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyOSBmZGlzay9mZGlzay5jOjE4MzcgZmRpc2svZmRpc2suYzoxODQ2IGZkaXNrL2ZkaXNrLmM6MTg1NgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKK21zZ3N0ciAiICAgICBwaHlzPSglZCwgJWQsICVkKSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzMCBmZGlzay9mZGlzay5jOjE4MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naWNhbD0oJWQsICVkLCAlZClcbiIKK21zZ3N0ciAibG9naXF1ZT0oJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAiTGEgcGFydGl0aW9uICVkIGEgZGVzIGZpbnMgcGh5c2lxdWUvbG9naXF1ZSBkaWZm6XJlbnRlczpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKK21zZ3N0ciAiTGEgcGFydGl0aW9uICVpIG5lIGTpYnV0ZSBwYXMgc3VyIHVuZSBmcm9udGnocmUgZGUgY3lsaW5kcmU6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgMSlcbiIKK21zZ3N0ciAiZGV2cmFpdCDqdHJlICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJMYSBwYXJ0aXRpb24gJWkgbmUgc2UgdGVybWluZSBwYXMgc3VyIHVuZSBmcm9udGnocmUgZGUgY3lsaW5kcmUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImRldnJhaXQg6nRyZSAoJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gcGh5c2ljYWwgc2VjdG9yIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJMYSBwYXJ0aXRpb24gJWkgbmUgZOlidXRlIHBhcyBzdXIgdW5lIGZyb250aehyZSBkZSBjeWxpbmRyZTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQgTUIsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc3F1ZSAlczogJWxkIE1vLCAlbGxkIG9jdGV0c1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc3F1ZSAlczogJWxkLiVsZCBHbywgJWxsZCBvY3RldHNcbiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGhlYWRzLCAlbGx1IHNlY3RvcnMvdHJhY2ssICVkIGN5bGluZGVycyIKK21zZ3N0ciAiJWQgdOp0ZXMsICVsbHUgc2VjdGV1cnMvcGlzdGUsICVkIGN5bGluZHJlcyIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgdG90YWwgJWxsdSBzZWN0b3JzIgorbXNnc3RyICIsIHRvdGFsICVsbHUgc2VjdGV1cnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbml0cyA9ICVzIG9mICVkICogJWQgPSAlZCBieXRlc1xuIgorbXNnc3RyICJVbml06XMgPSAlcyBkZSAlZCAqICVkID0gJWQgb2N0ZXRzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6ICV1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICJtYXV2YWlzIGluZGV4IGQnaW5vZGUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuIgorIlxuIgorbXNnc3RyICIiCisiUmllbiDgIGZhaXJlLiBMJ29yZHJlIGVzdCBk6WrgIGNvcnJlY3QuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAzNgorIywgYy1mb3JtYXQKK21zZ2lkICJEb25lLlxuIgorbXNnc3RyICJFZmZlY3R16S5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRvZXNuJ3QgbG9vayBsaWtlIGEgcGFydGl0aW9uIHRhYmxlXG4iCisiUHJvYmFibHkgeW91IHNlbGVjdGVkIHRoZSB3cm9uZyBkZXZpY2UuXG4iCisiXG4iCittc2dzdHIgIiIKKyJDZWxhIG5lIHJlc3NlbWJsZSBwYXMg4CB1bmUgdGFibGUgZGUgcGFydGl0aW9uLlxuIgorIlZvdXMgYXZleiBwcm9iYWJsZW1lbnQgc+lsZWN0aW9ubukgbGUgbWF1dmFpcyBw6XJpcGjpcmlxdWUuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgQW1vcmNlICBE6WJ1dCAgICAgICAgRmluICAgICAgQmxvY3MgICAgIElkICBTeXN06G1lXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3OCBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjEwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTgKK21zZ2lkICJEZXZpY2UiCittc2dzdHIgIlDpcmlwaOlyaXF1ZSIKKworIzogZmRpc2svZmRpc2suYzoyMTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJQYXJ0aXRpb24gdGFibGUgZW50cmllcyBhcmUgbm90IGluIGRpc2sgb3JkZXJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxlcyBlbnRy6WVzIGRlIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMgbmUgc29udCBwYXMgZGFucyBsJ29yZHJlIGR1IGRpc3F1ZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzcXVlICVzOiAlZCB06nRlcywgJWxsdSBzZWN0ZXVycywgJWQgY3lsaW5kcmVzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJOciBBRiAgSGQgU2VjICBDeWwgIEhkIFNlYyAgQ3lsICAgICBTdGFydCAgICAgIFNpemUgSURcbiIKK21zZ3N0ciAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgROlidXQgICAgVGFpbGxlIElEXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIKK21zZ3N0ciAiQVZFUlRJU1NFTUVOVDogbGEgcGFydGl0aW9uICVkIGNvbnRpZW50IHVuIHNlY3RldXIgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZDogdOp0ZSAlZCBwbHVzIGdyYW5kIHF1ZSBsZSBtYXhpbXVtICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHNlY3RvciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCA6IHNlY3RldXIgJWQgc3Vw6XJpZXVyIGF1IG1heGltdW0gJWxsdVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9ucyAlZDogY3lsaW5kZXIgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAiUGFydGl0aW9ucyAlZDogY3lsaW5kcmUgJWQgcGx1cyBncmFuZCBxdWUgbGUgbWF4aW11bSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBwcmV2aW91cyBzZWN0b3JzICVkIGRpc2FncmVlcyB3aXRoIHRvdGFsICVkXG4iCittc2dzdHIgIiIKKyJQYXJ0aXRpb24gJWQgOiBzZWN0ZXVycyBwculj6WRlbnRzICVkIG5lIGNvbmNvcmRlbnQgcGFzIGF2ZWMgbGUgdG90YWwgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjIzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBzdGFydC1vZi1kYXRhIGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJBVkVSVElTU0VNRU5UOiBzdGFydC1vZi1kYXRhIGVycm9u6SBkYW5zIGxhIHBhcnRpdGlvbiAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIG92ZXJsYXBzIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiQVZFUlRJU1NFTUVOVDogbGEgcGFydGl0aW9uICVkIGNoZXZhdWNoZSBsYSBwYXJ0aXRpb24gJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAiQVZFUlRJU1NFTUVOVDogbGEgcGFydGl0aW9uICVkIGVzdCB2aWRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1NgorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIkxhIHBhcnRpdGlvbiBsb2dpcXVlICVkIG4nZXN0IHBhcyBlbnRp6HJlbWVudCBkYW5zIGxhIHBhcnRpdGlvbiAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJUb3RhbCBkZSBzZWN0ZXVycyBhbGxvdelzICVsbHUgc3Vw6XJpZXVyIGF1IG1heGltdW0gJWxsdVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJlbWFpbmluZyAlbGxkIHVuYWxsb2NhdGVkICVkLWJ5dGUgc2VjdG9yc1xuIgorbXNnc3RyICIlbGxkIHNlY3RldXJzIGRlICVkIG9jdGV0cyBub24gYWxsb3Xpc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIzMDEgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDExCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBpcyBhbHJlYWR5IGRlZmluZWQuICBEZWxldGUgaXQgYmVmb3JlIHJlLWFkZGluZyBpdC5cbiIKK21zZ3N0ciAiTGEgcGFydGl0aW9uICVkIGVzdCBk6WrgIGTpZmluaWUuIExhIGTpdHJ1aXJlIGF2YW50IGRlIGwnYWpvdXRlci5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlbGx1IGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIkxlIHNlY3RldXIgJWxsdSBlc3QgZOlq4CBhbGxvdelcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGZyZWUgc2VjdG9ycyBhdmFpbGFibGVcbiIKK21zZ3N0ciAiQXVjdW4gc2VjdGV1ciBkaXNwb25pYmxlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiRGVybmllciAlMSRzLCArJTIkcyBvciArdGFpbGxle0ssTSxHfSIKKworIzogZmRpc2svZmRpc2suYzoyNDcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIEFJWCBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHRE6XNvbOkgLSBjZXR0ZSB2ZXJzaW9uIGRlIGZkaXNrIG5lIHBldXQgZ+lyZXIgbGVzIOl0aXF1ZXR0ZXMgZGUgZGlzcXVlcyAiCisiQUlYLlxuIgorIlx0U2kgdm91cyBk6XNpcmV6IGFqb3V0ZXIgZGVzIHBhcnRpdGlvbnMgZGUgdHlwZSBET1MsIGNy6WVyIGQnYWJvcmRcbiIKKyJcdHVuZSBub3V2ZWxsZSB0YWJsZSBkZSBwYXJ0aXRpb25zIERPUyB2aWRlLiAoVXRpbGlzZXIgby4pXG4iCisiXHRBVkVSVElTU0VNRU5UOiBjZWxhIHZhIGTpdHJ1aXJlIGxlIGNvbnRlbnUgZHUgcHLpc2VudCBkaXNxdWUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0ROlzb2zpIC0gY2V0dGUgdmVyc2lvbiBkZSBmZGlzayBuZSBn6HJlIHBhcyBsZXMgZGlzcXVlcyBNYWMuXG4iCisiXHRTaSB2b3VzIGTpc2lyZXogYWpvdXRlciBkZXMgcGFydGl0aW9ucyBkZSB0eXBlIERPUywgY3LpZXpcbiIKKyJcdHVuZSBub3V2ZWxsZSB0YWJsZSBkZSBwYXJ0aXRpb24gRE9TIHZpZGUuIChVdGlsaXNlciBvLilcbiIKKyJcdEFWRVJUSVNTRU1FTlQgOiBjZWxhIGTpdHJ1aXJhIGxlIGNvbnRlbnUgYWN0dWVsIGR1IGRpc3F1ZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICIiCisiVm91cyBkZXZleiBk6XRydWlyZSB1bmUgcGFydGl0aW9uIGV0IGFqb3V0ZXIgdW5lIHBhcnRpdGlvbiDpdGVuZHVlIGQnYWJvcmRcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICJUb3V0ZXMgbGVzIHBhcnRpdGlvbnMgbG9naXF1ZXMgc29udCB1dGlsaXPpZXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIkFqb3V0IGQndW5lIHBhcnRpdGlvbiBwcmltYWlyZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbW1hbmQgYWN0aW9uXG4iCisiICAgJXNcbiIKKyIgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNClcbiIKK21zZ3N0ciAiIgorIkNvbW1hbmRlIGQnYWN0aW9uXG4iCisiICAgJXNcbiIKKyIgICBwICAgcGFydGl0aW9uIHByaW1haXJlICgxLTQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIgorbXNnc3RyICJsICAgbG9naXF1ZSAoNSBvdSBwbHVzKSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAg6XRlbmR1ZSIKKworIzogZmRpc2svZmRpc2suYzoyNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgcGFydGl0aW9uIG51bWJlciBmb3IgdHlwZSBgJWMnXG4iCittc2dzdHIgIk51belybyBkZSBwYXJ0aXRpb24gbm9uIHZhbGlkZSBwb3VyIGxlIHR5cGUgqyAlYyC7XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisiTGEgdGFibGUgZGUgcGFydGl0aW9ucyBhIOl06SBhbHTpcullIVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJBcHBlbCBkZSBpb2N0bCgpIHBvdXIgcmVsaXJlIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU4NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyJUaGUga2VybmVsIHN0aWxsIHVzZXMgdGhlIG9sZCB0YWJsZS4gVGhlIG5ldyB0YWJsZSB3aWxsIGJlIHVzZWQgYXRcbiIKKyJ0aGUgbmV4dCByZWJvb3Qgb3IgYWZ0ZXIgeW91IHJ1biBwYXJ0cHJvYmUoOCkgb3Iga3BhcnR4KDgpXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBVFRFTlRJT04gOiBsYSB0YWJsZSBkZSBwYXJ0aXRpb25zIG4nYSBwYXMgcHUg6nRyZSByZWx1ZSA6IGVycmV1ciAlZCA6ICVzLlxuIgorIkxlIG5veWF1IGNvbnRpbnVlIOAgdXRpbGlzZXIgbCdhbmNpZW5uZSB0YWJsZS4gTGEgbm91dmVsbGUgc2VyYSB1dGlsaXPpZVxuIgorImxvcnMgZHUgcHJvY2hhaW4gZOltYXJyYWdlIG91IGFwcuhzIGF2b2lyIGV46WN1dOkgcGFydHByb2JlKDgpIG91IGtwYXJ0eCIKKyIoOCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBVkVSVElTU0VNRU5UOiBzaSB2b3VzIGF2ZXogY3Lp6SBvdSBtb2RpZmnpIHVuZSBwYXJ0aXRpb24gRE9TIDYueCwgXG4iCisic3ZwIGNvbnN1bHRlciBsZXMgcGFnZXMgZHUgbWFudWVsIGRlIGZkaXNrIHBvdXIgZGVzIGluZm9ybWF0aW9uc1xuIgorImNvbXBs6W1lbnRhaXJlcy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJFcnJvciBjbG9zaW5nIGZpbGVcbiIKK21zZ3N0ciAiIgorIlxuIgorIkVycmV1ciBkZSBmZXJtZXR1cmUgZHUgZmljaGllclxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiU3luY2hyb25pc2F0aW9uIGRlcyBkaXNxdWVzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBubyBkYXRhIGFyZWFcbiIKK21zZ3N0ciAiTGEgcGFydGl0aW9uICVkIG4nYSBwYXMgZGUgem9uZSBkZSBkb25u6WVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiTm91dmVhdSBk6WJ1dCBkZSBkb25u6WVzIgorCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQ29tbWFuZGUgcG91ciBleHBlcnRzIChtIHBvdXIgZGUgbCdhaWRlKTogIgorCisjOiBmZGlzay9mZGlzay5jOjI2ODUKK21zZ2lkICJOdW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICJOb21icmUgZGUgY3lsaW5kcmVzIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIk5vbWJyZSBkZSB06nRlcyIKKworIzogZmRpc2svZmRpc2suYzoyNzM3Cittc2dpZCAiTnVtYmVyIG9mIHNlY3RvcnMiCittc2dzdHIgIk5vbWJyZSBkZSBzZWN0ZXVycyIKKworIzogZmRpc2svZmRpc2suYzoyNzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHNldHRpbmcgc2VjdG9yIG9mZnNldCBmb3IgRE9TIGNvbXBhdGlibGl0eVxuIgorbXNnc3RyICIiCisiQVZFUlRJU1NFTUVOVDogaW5pdGlhbGlzYXRpb24gZHUgZOljYWxhZ2UgZGUgc2VjdGV1ciBwb3VyIGNvbXBhdGliaWxpdOkgRE9TXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgZmRpc2sgZG9lc24ndCAiCisic3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiQVRURU5USU9OIDogaWRlbnRpZmlhbnQgZGUgdGFibGUgZGUgcGFydGl0aW9ucyBHUFQgKEdVSUQpIGRldGVjdOkgc3VyIFwiJXMiCisiXCIgISBMJ3V0aWxpdGFpcmUgZmRpc2sgbmUgc3VwcG9ydGUgcGFzIEdQVC4gVXRpbGlzZXogR05VIFBhcnRlZC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXMgZG9lc24ndCBjb250YWluIGEgdmFsaWQgcGFydGl0aW9uIHRhYmxlXG4iCittc2dzdHIgIkxlIGRpc3F1ZSAlcyBuZSBjb250aWVudCBwYXMgdW5lIHRhYmxlIGRlIHBhcnRpdGlvbiB2YWxpZGVcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ291dnJpciAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWM6IHVua25vd24gY29tbWFuZFxuIgorbXNnc3RyICIlYzogY29tbWFuZGUgaW5jb25udWVcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICJDZSBub3lhdSB0cm91dmUgbHVpLW3qbWUgbGEgdGFpbGxlIGRlcyBzZWN0ZXVycyAtIG9wdGlvbiAtYiBpZ25vcullXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiQVZFUlRJU1NFTUVOVDogbCdvcHRpb24gLWIgKGluaXRpYWxpc2VyIGxhIHRhaWxsZSBkZSBzZWN0ZXVyKSBkb2l0IOp0cmUgIgorInV0aWxpc+llIGF2ZWMgdW4gcOlyaXBo6XJpcXVlIHNw6WNpZmnpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBhbiBPU0YvMSBkaXNrbGFiZWwgb24gJXMsIGVudGVyaW5nIGRpc2tsYWJlbCBtb2RlLlxuIgorbXNnc3RyICIiCisiROl0ZWN0aW9uIGQndW5lIOl0aXF1ZXR0ZSBkZSBkaXNxdWUgT1NGLzEgc3VyICVzLCBwYXNzYWdlIGVuIG1vZGUgZCfpZGl0aW9uICIKKyJkJ+l0aXF1ZXR0ZS5cbiIKKworIzogZmRpc2svZmRpc2suYzozMDEwCittc2dpZCAiQ29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQ29tbWFuZGUgKG0gcG91ciBsJ2FpZGUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiTGUgZmljaGllciBjb3VyYW50IGQnYW1vcudhZ2UgZXN0OiAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMjgKK21zZ2lkICJQbGVhc2UgZW50ZXIgdGhlIG5hbWUgb2YgdGhlIG5ldyBib290IGZpbGU6ICIKK21zZ3N0ciAiU1ZQIGVudHJlciBsZSBub20gZHUgbm91dmVhdSBmaWNoaWVyIGQnYW1vcudhZ2U6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiRmljaGllciBkJ2Ftb3LnYWdlIG5vbiBtb2RpZmnpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzEwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRTb3JyeSwgbm8gZXhwZXJ0cyBtZW51IGZvciBTR0kgcGFydGl0aW9uIHRhYmxlcyBhdmFpbGFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdETpc29s6SwgaWwgbid5IGEgcGFzIGRlIG1lbnUgcG91ciBleHBlcnRzIHBvdXIgbGVzIHRhYmxlcyBkZSBwYXJ0aXRpb25zICIKKyJTR0kuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrbWFjbGFiZWwuYzozMAorbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgTWFjIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgZmRpc2soMSkgY2Fubm90IGhhbmRsZSB0aGVzZSBkaXNrcy5cbiIKKyJcdFVzZSBlaXRoZXIgcGRpc2sgb3IgcGFydGVkIHRvIG1vZGlmeSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorIlx0TmV2ZXJ0aGVsZXNzIHNvbWUgYWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorbXNnc3RyICIiCisiXG4iCisiXHRJbCB5IGEgdW5lIOl0aXF1ZXR0ZSBNYWMgdmFsaWRlIHN1ciBjZSBkaXNxdWUsXG4iCisiXHRo6WxhcyBmZGlzaygxKSBuZSBn6HJlIHBhcyBjZSB0eXBlIGRlIGRpc3F1ZS5cbiIKKyJcdFV0aWxpc2V6IFwicGRpc2tcIiBvdSBcInBhcnRlZFwiIHBvdXIgbW9kaWZpZXIgbGFcbiIKKyJcdHRhYmxlIGRlIHBhcnRpdGlvbnMuIFF1ZWxxdWVzIGNvbnNlaWxzIDpcbiIKKyJcdDEuIGZkaXNrIGTpdHJ1aXJhIGxlIGNvbnRlbnUgbG9ycyBkZSBsJ+ljcml0dXJlLlxuIgorIlx0Mi4gc295ZXogc/tyIHF1ZSBsZSBkaXNxdWUgbmUgY29uc3RpdHVlIHBhc1xuIgorIlx0ICB1bmUgcGFydGllIFZJVEFMRSBkJ3VuIGdyb3VwZSBkZSB2b2x1bWVzLlxuIgorIlx0IChTaSB0ZWwg6XRhaXQgbGUgY2FzLCB2b3VzIHBvdXJyaWV6IGVmZmFjZXIgYXVzc2lcbiIKKyJcdCBsZXMgYXV0cmVzIGRpc3F1ZXMgbidheWFudCBwYXMgZGUgbWlyb2lycy4pXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MQorbXNnaWQgIlNHSSB2b2xoZHIiCittc2dzdHIgIlNHSSB2b2xoZHIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MgorbXNnaWQgIlNHSSB0cmtyZXBsIgorbXNnc3RyICJTR0kgdHJrcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgzCittc2dpZCAiU0dJIHNlY3JlcGwiCittc2dzdHIgIlNHSSBzZWNyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODQKK21zZ2lkICJTR0kgcmF3IgorbXNnc3RyICJTR0kgcmF3IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODUKK21zZ2lkICJTR0kgYnNkIgorbXNnc3RyICJTR0kgYnNkIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODYKK21zZ2lkICJTR0kgc3lzdiIKK21zZ3N0ciAiU0dJIHN5c3YiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NworbXNnaWQgIlNHSSB2b2x1bWUiCittc2dzdHIgIlNHSSB2b2x1bWUiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OAorbXNnaWQgIlNHSSBlZnMiCittc2dzdHIgIlNHSSBlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OQorbXNnaWQgIlNHSSBsdm9sIgorbXNnc3RyICJTR0kgbHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkwCittc2dpZCAiU0dJIHJsdm9sIgorbXNnc3RyICJTR0kgcmx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MQorbXNnaWQgIlNHSSB4ZnMiCittc2dzdHIgIlNHSSB4ZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MgorbXNnaWQgIlNHSSB4ZnNsb2ciCittc2dzdHIgIlNHSSB4ZnNsb2ciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MworbXNnaWQgIlNHSSB4bHYiCittc2dzdHIgIlNHSSB4bHYiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NAorbXNnaWQgIlNHSSB4dm0iCittc2dzdHIgIlNHSSB4dm0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NSBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAKK21zZ2lkICJMaW51eCBzd2FwIgorbXNnc3RyICJMaW51eCBzd2FwIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTYgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUxCittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICJMaW51eCBuYXRpdmUiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTIgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MworbXNnaWQgIkxpbnV4IExWTSIKK21zZ3N0ciAiTGludXggTFZNIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTgKK21zZ2lkICJMaW51eCBSQUlEIgorbXNnc3RyICJMaW51eCBSQUlEIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJBY2NvcmRpbmcgdG8gTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMgdGhlIExhYmVsIG11c3Qgbm90IGNvbnRhaW4gbW9yZSB0aGFuICIKKyI1MTIgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlNlbG9uIGxhIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcyBJbmMsIGwn6XRpcXVldHRlIG5lIGRvaXQgcGFzIGNvbnRlbmlyIHBsdXMgZGUgIgorIjUxMiBvY3RldHNcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzZ2kgZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iCittc2dzdHIgIsl0aXF1ZXR0ZSBkZSBkaXNxdWUgU0dJIGTpdGVjdOllIGF2ZWMgdW5lIHNvbW1lIGRlIGNvbnRy9GxlIGVycm9u6WUuXG4iCisKKyMgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwMgorIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE4OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNxdWUgJXMgKOl0aXF1ZXR0ZSBkZSBkaXNxdWUgU0dJKSA6ICVkIHTqdGVzLCAlbGx1IHNlY3RldXJzXG4iCisiJWQgY3lsaW5kcmVzLCAlZCBjeWxpbmRyZXMgcGh5c2lxdWVzXG4iCisiJWQgc2VjdGV1cnMvY3lsIGFkZGl0aW9ubmVscywgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbml06XMgPSAlcyBvZiAlZCAqICVkIG9jdGV0c1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzcXVlICVzICjpdGlxdWV0dGUgZGUgZGlzcXVlIFNHSSkgOiAlZCB06nRlcywgJWxsdSBzZWN0ZXVycywgJWQgY3lsaW5kcmVzXG4iCisiVW5pdOlzID0gJXMgZGUgJWQgKiAlZCBvY3RldHNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIHBhcnRpdGlvbnMgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgICBE6WJ1dCAgICAgICBGaW4gICBTZWN0ZXVycyBJZCAgU3lzdOhtZVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSBJbmZvIGQnYW1vcudhZ2UgLS0tLS1cbiIKKyJGaWNoaWVyIGQnYW1vcmNlOiAlc1xuIgorIi0tLS0tIEVudHLpZXMgZGUgculwZXJ0b2lyZSAtLS0tLVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiUyZDogJS0xMHMgc2VjdG9yJTV1IHNpemUlOHVcbiIKK21zZ3N0ciAiJTJkOiAlLTEwcyBzZWN0ZXVyJTV1IHRhaWxsZSU4dVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJJbnZhbGlkIEJvb3RmaWxlIVxuIgorIlx0VGhlIGJvb3RmaWxlIG11c3QgYmUgYW4gYWJzb2x1dGUgbm9uLXplcm8gcGF0aG5hbWUsXG4iCisiXHRlLmcuIFwiL3VuaXhcIiBvciBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkZpY2hpZXIgZCdhbW9yY2Ugbm9uIHZhbGlkZSFcbiIKKyJcdExlIGZpY2hpZXIgZCdhbW9yY2UgZG9pdCBhdm9pciB1biBjaGVtaW4gZCdhY2PocyBhYnNvbHUgbm9uIG51bCxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG91IFwiL3VuaXguc2F2ZVwiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Mjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdE5hbWUgb2YgQm9vdGZpbGUgdG9vIGxvbmc6ICAxNiBieXRlcyBtYXhpbXVtLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHROb20gZHUgZmljaGllciBkJ2Ftb3JjZSB0cm9wIGxvbmc6IDE2IG9jdGV0cyBhdSBtYXhpbXVtLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIG11c3QgaGF2ZSBhIGZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0TGUgZmljaGllciBkJ2Ftb3JjZSBkb2l0IGF2b2lyIHVuIGNoZW1pbiBkJ2FjY+hzIGNvbXBs6HRlbWVudCBxdWFsaWZp6S5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMxMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCZSBhd2FyZSwgdGhhdCB0aGUgYm9vdGZpbGUgaXMgbm90IGNoZWNrZWQgZm9yIGV4aXN0ZW5jZS5cbiIKKyJcdFNHSSdzIGRlZmF1bHQgaXMgXCIvdW5peFwiIGFuZCBmb3IgYmFja3VwIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRBdHRlbnRpb24sIGwnZXhpc3RlbmNlIGR1IGZpY2hpZXIgZCdhbW9yY2Ugbidlc3QgcGFzIHbpcmlmaellLlxuIgorIlx0UGFyIGTpZmF1dCBwb3VyIFNHSSwgYydlc3QgqyAvdW5peCC7IGV0IHBvdXIgbGEgc2F1dmVnYXJkZSCrIC91bml4LnNhdmUguy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0TGUgZmljaGllciBkJ2Ftb3JjZSBhIOl06SBtb2RpZmnpIGVuIKsgJXMguy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJNb3JlIHRoYW4gb25lIGVudGlyZSBkaXNrIGVudHJ5IHByZXNlbnQuXG4iCittc2dzdHIgIlBsdXMgZCd1bmUgZW50cullIGRlIGRpc3F1ZSBlbnRpZXIgcHLpc2VudGUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4MworIywgYy1mb3JtYXQKK21zZ2lkICJObyBwYXJ0aXRpb25zIGRlZmluZWRcbiIKK21zZ3N0ciAiQXVjdW5lIHBhcnRpdGlvbiBk6WZpbmllXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSVJJWCBsaWtlcyB3aGVuIFBhcnRpdGlvbiAxMSBjb3ZlcnMgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICIiCisiUG91ciBJUklYIGlsIGVzdCByZWNvbW1hbmTpIHF1ZSBsYSBwYXJ0aXRpb24gMTEgY291dnJlIGVudGnocmVtZW50IGxlICIKKyJkaXNxdWUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIkxhIHBhcnRpdGlvbiBkJ3VuIGRpc3F1ZSBlbnRpZXIgZGV2cmFpdCBk6WJ1dGVyIGF1IGJsb2MgMCxcbiIKKyJwYXMgYXUgYmxvYyAlZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBpcyBvbmx5ICVkIGRpc2tibG9jayBsYXJnZSxcbiIKKyJidXQgdGhlIGRpc2sgaXMgJWQgZGlza2Jsb2NrcyBsb25nLlxuIgorbXNnc3RyICIiCisiTGEgcGFydGl0aW9uIGVudGnocmUgZHUgZGlzcXVlIGVzdCBzZXVsZW1lbnQgZGUgJWQgYmxvY3MgZGUgbGFyZ2V1cixcbiIKKyJhbG9ycyBxdWUgbGUgZGlzcXVlIGNvbnRpZW50ICVkIGJsb2NzIGRlIGRpc3F1ZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJPbmUgUGFydGl0aW9uICgjMTEpIHNob3VsZCBjb3ZlciB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIkxhIHBhcnRpdGlvbiBusDExIGRldnJhaXQgY291dnJpciBsZSBkaXNxdWUgZW4gZW50aWVyLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiTGEgcGFydGl0aW9uICVkIG5lIGTpYnV0ZSBwYXMgc3VyIHVuZSBmcm9udGnocmUgZGUgY3lsaW5kcmUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiTGEgcGFydGl0aW9uICVkIG5lIHNlIHRlcm1pbmUgcGFzIHN1ciB1bmUgZnJvbnRp6HJlIGRlIGN5bGluZHJlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBQYXJ0aXRpb24gJWQgYW5kICVkIG92ZXJsYXAgYnkgJWQgc2VjdG9ycy5cbiIKK21zZ3N0ciAiTGVzIHBhcnRpdGlvbnMgJWQgZXQgJWQgc2UgY2hldmF1Y2hlbnQgc3VyICVkIHNlY3RldXJzLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDg0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCBvZiAlOHUgc2VjdG9ycyAtIHNlY3RvcnMgJTh1LSV1XG4iCittc2dzdHIgIkVzcGFjZSBpbnV0aWxpc+kgZGUgJTh1IHNlY3RldXJzIC0gc2VjdGV1cnMgJTh1LSV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxhIHBhcnRpdGlvbiBkJ2Ftb3JjZSBuJ2V4aXN0ZSBwYXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxhIHBhcnRpdGlvbiBkJ+ljaGFuZ2UgbidleGlzdGUgcGFzLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gaGFzIG5vIHN3YXAgdHlwZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkxhIHBhcnRpdGlvbiBkJ+ljaGFuZ2Ugbidlc3QgcGFzIGRlIHR5cGUgXCJzd2FwXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiXHRWb3VzIGF2ZXogY2hvaXNpIHVuIG5vbSBkZSBmaWNoaWVyIGQnYW1vcmNlIGluaGFiaXR1ZWwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnkgWW91IG1heSBjaGFuZ2UgdGhlIFRhZyBvZiBub24tZW1wdHkgcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAiROlzb2zpLCB2b3VzIGRldnJpZXogbW9kaWZpZXIgbCfpdGlxdWV0dGUgZGVzIHBhcnRpdGlvbnMgbm9uIHZpZGVzLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJJbCBlc3QgZm9ydGVtZW50IHJlY29tbWFuZOkgcXVlIGxhIHBhcnRpdGlvbiBhdSBk6WNhbGFnZSAwXG4iCisic29pdCBkZSB0eXBlIFwiU0dJIHZvbGhkclwiLCBsZSBzeXN06G1lIElSSVggcydlbiBzZXJ0XG4iCisicG91ciBy6WN1cOlyZXIgZGUgc2VzIHLpcGVydG9pcmVzIGRlcyBvdXRpbHMgaW5k6XBlbmRhbnRzXG4iCisiY29tbWUgc2FzaCBldCBmeC4gU2V1bCBsZSB2b2x1bWUgXCJTR0lcIiBjb3V2cmFudCBsYSBzZWN0aW9uIGVudGnocmVcbiIKKyJkdSBkaXNxdWUgcGV1dCBlbmZyZWluZHJlIGNldHRlIHLoZ2xlLlxuIgorIlRhcGVyIE9VSSBzaSB2b3VzIOp0ZXMgY2VydGFpbiBkZSBsJ+l0aXF1ZXRhZ2UgZGlmZulyZW50IGRlIGNldHRlICIKKyJwYXJ0aXRpb24uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NDMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0OQorbXNnaWQgIllFU1xuIgorbXNnc3RyICJPVUlcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU2OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBZb3Uga25vdywgWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrP1xuIgorbXNnc3RyICIiCisiU2F2aWV6LXZvdXMgcXVlIHZvdXMgYXZleiB1biBjaGV2YXVjaGVtZW50IGRlIHBhcnRpdGlvbnMgc3VyIGxlIGRpc3F1ZT9cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICJBdHRlbXB0aW5nIHRvIGdlbmVyYXRlIGVudGlyZSBkaXNrIGVudHJ5IGF1dG9tYXRpY2FsbHkuXG4iCittc2dzdHIgIiIKKyJFc3NhaSBkZSBn6W7pcmF0aW9uIGQndW5lIGVudHLpZSBwb3VyIGxlIGRpc3F1ZSBlbnRpZXIgYXV0b21hdGlxdWVtZW50LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlbnRpcmUgZGlzayBpcyBhbHJlYWR5IGNvdmVyZWQgd2l0aCBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICJMZSBkaXNxdWUgZW50aWVyIGVzdCBk6WrgIHJlY291dmVydCBwYXIgbGVzIHBhcnRpdGlvbnMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIklsIHkgYSB1biBjaGV2YXVjaGVtZW50IGRlIHBhcnRpdGlvbiBzdXIgbGUgZGlzcXVlLiBTVlAgY29ycmlnZXohXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIklsIGVzdCBmb3J0ZW1lbnQgcmVjb21tYW5k6SBxdWUgbGEgcGFydGl0aW9uIG6wMTFcbiIKKyJjb3V2cmUgbGUgZGlzcXVlIGVuIGVudGllciBwb3VyIGNlIHR5cGUgqyBTR0kgdm9sdW1lILtcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBnZXQgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICIiCisiVm91cyBhbGxleiBvYnRlbmlyIHVuIGNoZXZhdWNoZW1lbnQgZGUgcGFydGl0aW9uIHN1ciBjZSBkaXNxdWUuIFNWUCAiCisiY29ycmlnZXohXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIExhc3QgJXMiCittc2dzdHIgIiBEZXJuaWVyKGUpICVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBTR0kgZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuIgorIlxuIgorbXNnc3RyICIiCisiQ29uc3RydWN0aW9uIGQndW5lIG5vdXZlbGxlIOl0aXF1ZXR0ZSBkZSBkaXNxdWUgU0dJLiBMZXMgbW9kaWZpY2F0aW9ucyB2b250ICIKKyJyZXN0ZXJcbiIKKyJlbiBt6W1vaXJlIGp1c3F1J+AgY2UgcXVlIHZvdXMgZOljaWRpZXogZGUgbGVzIOljcmlyZS4gUGFyIGxhIHN1aXRlXG4iCisiYmllbiBz+3IsIGxlIGNvbnRlbnUgcHLpY+lkZW50IHNlcmEgcGVyZHUgZGUgZmHnb24gZOlmaW5pdGl2ZW1lbnQuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKyJBVkVSVElTU0VNRU5UOiBCTEtHRVRTSVpFIGlvY3RsIGEg6WNob3XpIHN1ciAlcy4gTGEgdmFsZXVyICVkIGRlIGfpb23pdHJpZSAiCisiZHUgY3lsaW5kcmVcbiIKKyJzZXJhIHV0aWxpc+llLiBDZXR0ZSB2YWxldXIgcGV1dCDqdHJlIHLpZHVpdGUgcG91ciBsZXMgcOlyaXBo6XJpcXVlcyBkZSBwbHVzICIKKyJkZSAzMy44IEdvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byBrZWVwIHBhcmFtZXRlcnMgb2YgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJUZW50YXRpdmUgZGUgY29uc2VydmF0aW9uIGRlcyBwYXJhbeh0cmVzIGRlIGxhIHBhcnRpdGlvbiAlZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczNAorIywgYy1mb3JtYXQKK21zZ2lkICJJRD0lMDJ4XHRTVEFSVD0lZFx0TEVOR1RIPSVkXG4iCittc2dzdHIgIklEPSUwMnhcdERFQlVUPSVkXHRMT05HVUVVUj0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgKK21zZ2lkICJVbmFzc2lnbmVkIgorbXNnc3RyICJOb24tYXNzaWdu6SIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiU3VuT1Mgcm9vdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1Mgc3dhcCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIkRpc3F1ZSBlbnRpZXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBzdGFuZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICJTdW5PUyB2YXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICJTdW5PUyBzZWN0ZXVycyBhbHQuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgKK21zZ2lkICJTdW5PUyBjYWNoZWZzIgorbXNnc3RyICJTdW5PUyBjYWNoZWZzIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDkKK21zZ2lkICJTdW5PUyByZXNlcnZlZCIKK21zZ3N0ciAiU3VuT1MgculzZXJ26SIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCisKKyMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjEzMgorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjEzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorIlByb2JhYmx5IHlvdSdsbCBoYXZlIHRvIHNldCBhbGwgdGhlIHZhbHVlcyxcbiIKKyJlLmcuIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMgYW5kIHBhcnRpdGlvbnNcbiIKKyJvciBmb3JjZSBhIGZyZXNoIGxhYmVsIChzIGNvbW1hbmQgaW4gbWFpbiBtZW51KVxuIgorbXNnc3RyICIiCisiROl0ZWN0aW9uIGQndW5lIOl0aXF1ZXR0ZSBkZSBkaXNxdWUgU3VuIGF2ZWMgdW5lIHNvbW1lIGRlIGNvbnRy9GxlIGVycm9u6WUuXG4iCisiVm91cyBkZXZyZXogcHJvYmFibGVtZW50IHNw6WNpZmllciBsZXMgdmFsZXVycyxcbiIKKyJpLmUuIHTqdGVzLCBzZWN0ZXVycywgY3lsaW5kcmVzIGV0IHBhcnRpdGlvbnNcbiIKKyJvdSBpbXBvc2V6IHVuZSBub3V2ZWxsZSDpdGlxdWV0dGUgKGNvbW1hbmRlIFwic1wiKVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICLJdGlxdWV0dGUgZGUgZGlzcXVlIFN1biBk6XRlY3TpZSBhdmVjIHZlcnNpb24gZXJyb27pZSBbMHglMDh4XS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1MworIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3Jvbmcgc2FuaXR5IFsweCUwOHhdLlxuIgorbXNnc3RyICIiCisiyXRpcXVldHRlIGRlIGRpc3F1ZSBTdW4gZOl0ZWN06WUgYXZlYyBtYXV2YWlzIOl0YXQgZGUgY29udHL0bGUgWzB4JTA4eF0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgIsl0aXF1ZXR0ZSBkZSBkaXNxdWUgU3VuIGTpdGVjdOllIGF2ZWMgZXJyZXVyIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJBVkVSVElTU0VNRU5UOiBkZXMgdmFsZXVycyBlcnJvbullcyBkZXZyb250IOp0cmUgY29ycmln6WVzIHBhciBsYSBjb21tYW5kZSB3ICIKKyIo6WNyaXR1cmUpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IHN1biBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJDb25zdHJ1Y3Rpb24gZCd1bmUgbm91dmVsbGUg6XRpcXVldHRlIFN1biBwb3VyIGRpc3F1ZS4gTGVzIG1vZGlmaWNhdGlvbnMgIgorInJlc3Rlcm9udFxuIgorImVuIG3pbW9pcmUganVzcXUn4CDpY3JpdHVyZS4gQXBy6HMgcXVvaSwgYmllbiBz+3IsIGxlIHBy6WPpZGVudCBjb250ZW51XG4iCisic2VyYSBpcnLpY3Vw6XJhYmxlLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAiU2VjdGV1cnMvcGlzdGUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXNuJ3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIkxhIHBhcnRpdGlvbiAlZCBuZSBzZSB0ZXJtaW5lIHBhcyBzdXIgdW5lIGZyb250aehyZSBkZSBjeWxpbmRyZVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBvdmVybGFwcyB3aXRoIG90aGVycyBpbiBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIkxhIHBhcnRpdGlvbiAlZCBlbiBjaGV2YXVjaGUgZCdhdXRyZXMgZGFucyBsZXMgc2VjdGV1cnMgJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAwLSVkXG4iCittc2dzdHIgIkVzcGFjZSBpbnRlcm3pZGlhaXJlIGludXRpbGlz6SAtIHNlY3RldXJzIDAtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIkVzcGFjZSBpbnRlcm3pZGlhaXJlIGludXRpbGlz6SAtIHNlY3RldXJzICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKyJEJ2F1dHJlcyBwYXJ0aXRpb25zIGNvdXZyZW50IGTpauAgbGUgZGlzcXVlIGVudGllci5cbiIKKyJFbiBk6XRydWlyZS9y6WR1aXJlIHF1ZWxxdWVzIHVuZXMgYXZhbnQgZGUgcullc3NheWVyLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiSWwgZXN0IGZvcnRlbWVudCByZWNvbW1hbmTpIHF1ZSBsYSB0cm9pc2nobWUgcGFydGl0aW9uIGNvdXZyZSBsZVxuIgorImRpc3F1ZSBlbiBlbnRpZXIgZXQgc29pdCBkZSB0eXBlIFwiVG91dCBsZSBkaXNxdWVcIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZCBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJMZSBzZWN0ZXVyICVkIGVzdCBk6WrgIGFsbG916VxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZW4ndCBjb3ZlcmVkIHRoZSB3aG9sZSBkaXNrIHdpdGggdGhlIDNyZCBwYXJ0aXRpb24sIGJ1dCB5b3VyIHZhbHVlXG4iCisiJWQgJXMgY292ZXJzIHNvbWUgb3RoZXIgcGFydGl0aW9uLiBZb3VyIGVudHJ5IGhhcyBiZWVuIGNoYW5nZWRcbiIKKyJ0byAlZCAlc1xuIgorbXNnc3RyICIiCisiVm91cyBuJ2F2ZXogcGFzIHJlY291dmVydCBsZSBkaXNxdWUgZW50aWVyIGF2ZWMgbGEgM+htZSBwYXJ0aXRpb24sXG4iCisibWFpcyBsYSB2YWxldXIgJWQgJXMgZW4gY291dnJlIGQnYXV0cmVzLiBWb3RyZSBlbnRy6WUgYSDpdOkgbW9kaWZp6WVcbiIKKyLgICVkICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklmIHlvdSB3YW50IHRvIG1haW50YWluIFN1bk9TL1NvbGFyaXMgY29tcGF0aWJpbGl0eSwgY29uc2lkZXIgbGVhdmluZyB0aGlzXG4iCisicGFydGl0aW9uIGFzIFdob2xlIGRpc2sgKDUpLCBzdGFydGluZyBhdCAwLCB3aXRoICV1IHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorIlNpIHZvdXMgZOlzaXJleiBtYWludGVuaXIgdW5lIGNvbXBhdGliaWxpdOkgU3VuT1MvU29sYXJpcywgY29uc2lk6XJlciBkZSAiCisibGFpc3NlciBjZXR0ZVxuIgorInBhcnRpdGlvbiBjb21tZSBkaXNxdWUgZW50aWVyICg1KSwgZOlidXRhbnQg4CAwLCBhdmVjICV1IHNlY3RldXJzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIFVGUywgRVhUMkZTIGZpbGVzeXN0ZW0gb3IgU3VuT1Mgc3dhcC4gUHV0dGluZyBMaW51eCBzd2FwXG4iCisidGhlcmUgbWF5IGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUgYW5kIGJvb3RibG9jay5cbiIKKyJUeXBlIFlFUyBpZiB5b3UncmUgdmVyeSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRoYXQgcGFydGl0aW9uXG4iCisidGFnZ2VkIHdpdGggODIgKExpbnV4IHN3YXApOiAiCittc2dzdHIgIiIKKyJJbCBlc3QgZm9ydGVtZW50IHJlY29tbWFuZOkgcXVlIGxhIHBhcnRpdGlvbiBhdSBk6WNhbGFnZSAwXG4iCisic29pdCB1biBzeXN06G1lIGRlIGZpY2hpZXJzIFVGUywgRVhUMkZTIG91IFN1bk9TIHN3YXAuIFV0aWxpc2VyIExpbnV4IHN3YXBcbiIKKyJwb3VycmFpdCBk6XRydWlyZSB2b3RyZSB0YWJsZSBkZSBwYXJ0aXRpb25zIGV0IGxlIGJsb2MgZCdhbW9y52FnZS5cbiIKKyJUYXBlciBPVUkgc2kgdm91cyDqdGVzIGNlcnRhaW4gcXVlIHZvdXMgdm91bGV6IHF1ZSBjZXR0ZSBwYXJ0aXRpb25cbiIKKyJzb2l0IOl0aXF1ZXTpZSA4MiAoTGludXggc3dhcCk6ICIKKworIyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjU2CisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIHJwbVxuIgorIiVkIGN5bGluZGVycywgJWQgYWx0ZXJuYXRlIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyJMYWJlbCBJRDogJXNcbiIKKyJWb2x1bWUgSUQ6ICVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzcXVlICVzICjpdGlxdWV0dGUgZGUgZGlzcXVlIFN1bik6ICVkIHTqdGVzLCAlbGx1IHNlY3RldXJzLCAlZCB0b3Vycy9tblxuIgorIiVkIGN5bGluZHJlcywgJWQgY3lsaW5kcmVzIGFsdC4sICVkIGN5bGluZHJlcyBwaHlzaXF1ZXNcbiIKKyIlZCBzZWN0ZXVycy9jeWwgYWRkaXRpb25uZWxzLCBpbnRlcmxlYXZlICVkOjFcbiIKKyJJRCDpdGlxdWV0dGUgOiAlc1xuIgorIklEIHZvbHVtZSA6ICVzXG4iCisiVW5pdOlzID0gJXMgZGUgJWQgKiA1MTIgb2N0ZXRzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzcXVlICVzICjpdGlxdWV0dGUgZGUgZGlzcXVlIFN1bikgOiAlZCB06nRlcywgJWxsdSBzZWN0ZXVycywgJWQgY3lsaW5kcmVzXG4iCisiVW5pdOlzID0gJXMgZGUgJWQgKiA1MTIgb2N0ZXRzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEZsYWcgICAgU3RhcnQgICAgICAgRW5kICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIEZhbmlvbnMgROlidXQgICAgIEZpbiAgICBCbG9jcyAgICBJZCAgU3lzdOhtZVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjI1Cittc2dpZCAiTnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIk5vbWJyZSBkZSBjeWxpbmRyZXMgYWx0ZXJuYXRpZnMiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MzcKK21zZ2lkICJFeHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiU2VjdGV1cnMgYWRkaXRpb25uZWxzIHBhciBjeWxpbmRyZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY0NAorbXNnaWQgIkludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICJGYWN0ZXVyIFwiaW50ZXJsZWF2ZVwiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjUxCittc2dpZCAiUm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIlZpdGVzc2UgZGUgcm90YXRpb24gKHJwbSkiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTgKK21zZ2lkICJOdW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICJOb21icmUgZGUgY3lsaW5kcmVzIHBoeXNpcXVlcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIlZpZGUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICJGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4Cittc2dpZCAiWEVOSVggcm9vdCIKK21zZ3N0ciAiWEVOSVggcm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5Cittc2dpZCAiWEVOSVggdXNyIgorbXNnc3RyICJYRU5JWCB1c3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAKK21zZ2lkICJGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjExCittc2dpZCAiRXh0ZW5kZWQiCittc2dzdHIgIkV0ZW5kdWUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTIKK21zZ2lkICJGQVQxNiIKK21zZ3N0ciAiRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTMKK21zZ2lkICJIUEZTL05URlMiCittc2dzdHIgIkhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNAorbXNnaWQgIkFJWCIKK21zZ3N0ciAiQUlYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE1Cittc2dpZCAiQUlYIGJvb3RhYmxlIgorbXNnc3RyICJBSVggYW1vcudhYmxlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgQm9vdCBNYW5hZ2VyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICJXOTUgRXRlbmR1ZSAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMQorbXNnaWQgIk9QVVMiCittc2dzdHIgIk9QVVMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjIKK21zZ2lkICJIaWRkZW4gRkFUMTIiCittc2dzdHIgIkNhY2jpZSBGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMworbXNnaWQgIkNvbXBhcSBkaWFnbm9zdGljcyIKK21zZ3N0ciAiQ29tcGFxIGRpYWdub3N0aWNzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI0Cittc2dpZCAiSGlkZGVuIEZBVDE2IDwzMk0iCittc2dzdHIgIkNhY2jpZSBGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI1Cittc2dpZCAiSGlkZGVuIEZBVDE2IgorbXNnc3RyICJDYWNo6WUgRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjYKK21zZ2lkICJIaWRkZW4gSFBGUy9OVEZTIgorbXNnc3RyICJDYWNo6WUgSFBGUy9OVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI3Cittc2dpZCAiQVNUIFNtYXJ0U2xlZXAiCittc2dzdHIgIkFTVCBTbWFydFNsZWVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI4Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiIKK21zZ3N0ciAiQ2FjaOllIFc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOQorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIkNhY2jpZSBXOTUgRkFUMzIgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzAKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJDYWNo6WUgVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMxCittc2dpZCAiTkVDIERPUyIKK21zZ3N0ciAiTkVDIERPUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMgorbXNnaWQgIlBsYW4gOSIKK21zZ3N0ciAiUGxhbiA5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMzCittc2dpZCAiUGFydGl0aW9uTWFnaWMgcmVjb3ZlcnkiCittc2dzdHIgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIlZlbml4IDgwMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM1Cittc2dpZCAiUFBDIFBSZVAgQm9vdCIKK21zZ3N0ciAiUFBDIFBSZVAgQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNgorbXNnaWQgIlNGUyIKK21zZ3N0ciAiU0ZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM3Cittc2dpZCAiUU5YNC54IgorbXNnc3RyICJRTlg0LngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzgKK21zZ2lkICJRTlg0LnggMm5kIHBhcnQiCittc2dzdHIgIlFOWDQueCAybmQgcGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDNyZCBwYXJ0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQwCittc2dpZCAiT25UcmFjayBETSIKK21zZ3N0ciAiT25UcmFjayBETSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MQorbXNnaWQgIk9uVHJhY2sgRE02IEF1eDEiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDIKK21zZ2lkICJDUC9NIgorbXNnc3RyICJDUC9NIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQzCittc2dpZCAiT25UcmFjayBETTYgQXV4MyIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NAorbXNnaWQgIk9uVHJhY2tETTYiCittc2dzdHIgIk9uVHJhY2tETTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDUKK21zZ2lkICJFWi1Ecml2ZSIKK21zZ3N0ciAiRVotRHJpdmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDYKK21zZ2lkICJHb2xkZW4gQm93IgorbXNnc3RyICJHb2xkZW4gQm93IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ3Cittc2dpZCAiUHJpYW0gRWRpc2siCittc2dzdHIgIlByaWFtIEVkaXNrIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTIKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OQorbXNnaWQgIlNwZWVkU3RvciIKK21zZ3N0ciAiU3BlZWRTdG9yIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ5Cittc2dpZCAiR05VIEhVUkQgb3IgU3lzViIKK21zZ3N0ciAiR05VIEhVUkQgb3IgU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiTWluaXggYW5jaWVubmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTUKK21zZ2lkICJNaW5peCAvIG9sZCBMaW51eCIKK21zZ3N0ciAiTWluaXggLyBMaW51eCBhbmNpZW5uZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eCBzd2FwIC8gU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIGNhY2jpZSBkaXNxdWUgQzoiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTkKK21zZ2lkICJMaW51eCBleHRlbmRlZCIKK21zZ3N0ciAiTGludXgg6XRlbmR1ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYxCittc2dpZCAiTlRGUyB2b2x1bWUgc2V0IgorbXNnc3RyICJOVEZTIHZvbHVtZSBzZXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjIKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIkxpbnV4IHBsYWludGV4dCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NAorbXNnaWQgIkFtb2ViYSIKK21zZ3N0ciAiQW1vZWJhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY1Cittc2dpZCAiQW1vZWJhIEJCVCIKK21zZ3N0ciAiQW1vZWJhIEJCVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NgorbXNnaWQgIkJTRC9PUyIKK21zZ3N0ciAiQlNEL09TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY3Cittc2dpZCAiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIgorbXNnc3RyICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjgKK21zZ2lkICJGcmVlQlNEIgorbXNnc3RyICJGcmVlQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY5Cittc2dpZCAiT3BlbkJTRCIKK21zZ3N0ciAiT3BlbkJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MAorbXNnaWQgIk5lWFRTVEVQIgorbXNnc3RyICJOZVhUU1RFUCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MQorbXNnaWQgIkRhcndpbiBVRlMiCittc2dzdHIgIlVGUyBEYXJ3aW4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzIKK21zZ2lkICJOZXRCU0QiCittc2dzdHIgIk5ldEJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MworbXNnaWQgIkRhcndpbiBib290IgorbXNnc3RyICJBbW9yY2UgRGFyd2luIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc0Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiSEZTIC8gSEZTKyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NQorbXNnaWQgIkJTREkgZnMiCittc2dzdHIgIkJTREkgZnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIkJTREkgc3dhcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NworbXNnaWQgIkJvb3QgV2l6YXJkIGhpZGRlbiIKK21zZ3N0ciAiQm9vdCBXaXphcmQgaGlkZGVuIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICJBbW9yY2UgU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJOb24tRlMgZGF0YSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NQorbXNnaWQgIkNQL00gLyBDVE9TIC8gLi4uIgorbXNnc3RyICJDUC9NIC8gQ1RPUyAvIC4uLiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NworbXNnaWQgIkRlbGwgVXRpbGl0eSIKK21zZ3N0ciAiRGVsbCBVdGlsaXR5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg4Cittc2dpZCAiQm9vdEl0IgorbXNnc3RyICJCb290SXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODkKK21zZ2lkICJET1MgYWNjZXNzIgorbXNnc3RyICJET1MgYWNjZXNzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkxCittc2dpZCAiRE9TIFIvTyIKK21zZ3N0ciAiRE9TIFIvTyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NAorbXNnaWQgIkJlT1MgZnMiCittc2dzdHIgIkJlT1MgZnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTUKK21zZ2lkICJHUFQiCittc2dzdHIgIkdQVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NgorbXNnaWQgIkVGSSAoRkFULTEyLzE2LzMyKSIKK21zZ3N0ciAiRUZJIChGQVQtMTIvMTYvMzIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk3Cittc2dpZCAiTGludXgvUEEtUklTQyBib290IgorbXNnc3RyICJMaW51eC9QQS1SSVNDIGJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAwCittc2dpZCAiRE9TIHNlY29uZGFyeSIKK21zZ3N0ciAiRE9TIHNlY29uZGFpcmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAxCittc2dpZCAiVk13YXJlIFZNRlMiCittc2dzdHIgIlZNd2FyZSBWTUZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMgorbXNnaWQgIlZNd2FyZSBWTUtDT1JFIgorbXNnc3RyICJWTXdhcmUgVk1LQ09SRSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJlcnJldXIgZGUgcG9zaXRpb25uZW1lbnQgc3VyICVzIC0gbmUgcGV1dCByZXDpcmVyICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgImVycmV1ciBkZSBwb3NpdGlvbm5lbWVudDogZOlzaXLpIDB4JTA4eCUwOHgsIG9idGVudSAweCUwOHglMDh4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAibeltb2lyZSDpcHVpc+llIC0gYWJhbmRvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjAgZmRpc2svc2ZkaXNrLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZXJyb3Igb24gJXMgLSBjYW5ub3QgcmVhZCBzZWN0b3IgJWx1XG4iCittc2dzdHIgImVycmV1ciBkZSBsZWN0dXJlIHN1ciAlcyAtIGltcG9zc2libGUgZGUgbGlyZSBsZSBzZWN0ZXVyICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiRVJSRVVSOiBsZSBzZWN0ZXVyICVsdSBuJ2EgcGFzIHVuZSBzaWduYXR1cmUgTVMtRE9TXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgIkVycmV1ciBkJ+ljcml0dXJlIHN1ciAlcyAtIGltcG9zc2libGUgZCfpY3JpcmUgbGUgc2VjdGV1ciAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiBzZWN0b3Igc2F2ZSBmaWxlICglcylcbiIKK21zZ3N0ciAiIgorIkltcG9zc2libGUgZCdvdXZyaXIgbGUgZmljaGllciBkZSBzYXV2ZWdhcmRlIGRlIHNlY3RldXIgZGUgcGFydGl0aW9uICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzXG4iCittc2dzdHIgImVycmV1ciBkJ+ljcml0dXJlIHN1ciAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIiIKKyJpbXBvc3NpYmxlIGQn6XZhbHVlciBwYXIgc3RhdCgpIGxlIGZpY2hpZXIgZGUgcmVzdGF1cmF0aW9uIGRlIHBhcnRpdGlvbiAoJSIKKyJzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDAKK21zZ2lkICJwYXJ0aXRpb24gcmVzdG9yZSBmaWxlIGhhcyB3cm9uZyBzaXplIC0gbm90IHJlc3RvcmluZ1xuIgorbXNnc3RyICIiCisibGUgZmljaGllciBkZSByZWNvdXZyZW1lbnQgZGUgcGFydGl0aW9uIGEgdW5lIHRhaWxsZSBlcnJvbullIC0gcGFzIGRlICIKKyJyZWNvdXZyZW1lbnRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQ0Cittc2dpZCAib3V0IG9mIG1lbW9yeT9cbiIKK21zZ3N0ciAibeltb2lyZSDpcHVpc+llP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIm5lIHBldXQgb3V2cmlyIGxlIGZpY2hpZXIgZGUgcmVjb3V2cmVtZW50IGRlIHBhcnRpdGlvbiAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciByZWFkaW5nICVzXG4iCittc2dzdHIgImVycmV1ciBkZSBsZWN0dXJlICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAibmUgcGV1dCBvdXZyaXIgbGUgcOlyaXBo6XJpcXVlICVzIHBvdXIg6WNyaXR1cmVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICJlcnJldXIgZCfpY3JpdHVyZSBkdSBzZWN0ZXVyICVsdSBzdXIgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgZ2VvbWV0cnlcbiIKK21zZ3N0ciAiRGlzcXVlICVzIDogaW1wb3NzaWJsZSBkJ29idGVuaXIgbGEgZ+lvbel0cmllXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ1NworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IHNpemVcbiIKK21zZ3N0ciAiRGlzcXVlICVzOiBpbXBvc3NpYmxlIGQnb2J0ZW5pciBzYSB0YWlsbGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzdGFydD0lbHUgLSB0aGlzIGxvb2tzIGxpa2UgYSBwYXJ0aXRpb24gcmF0aGVyIHRoYW5cbiIKKyJ0aGUgZW50aXJlIGRpc2suIFVzaW5nIGZkaXNrIG9uIGl0IGlzIHByb2JhYmx5IG1lYW5pbmdsZXNzLlxuIgorIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIgorbXNnc3RyICIiCisiQXR0ZW50aW9uIDogZOlidXQ9JWx1IC0gY2VsYSByZXNzZW1ibGUg4CB1bmUgcGFydGl0aW9uIHBsdXMgcXUn4FxuIgorInVuIGRpc3F1ZSBlbnRpZXIuIFV0aWxpc2VyIGZkaXNrIG4nYXVyYWl0IHByb2JhYmxlbWVudCBwYXMgZGUgc2Vucy5cbiIKKyJbVXRpbGlzZXIgbCdvcHRpb24gLS1mb3JjZSBzaSB2b3VzIGTpc2lyZXogZmFpcmUgY2VsYV1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGhlYWRzXG4iCittc2dzdHIgIkF0dGVudGlvbiA6IEhESU9fR0VUR0VPIGluZGlxdWUgcXUnaWwgYSAlbHUgdOp0ZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IHNlY3RvcnNcbiIKK21zZ3N0ciAiQXR0ZW50aW9uIDogSERJT19HRVRHRU8gaW5kaXF1ZSBxdSdpbCB5IGEgJWx1IHNlY3RldXJzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGN5bGluZGVyc1xuIgorbXNnc3RyICJBdHRlbnRpb24gOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIGluZGlxdWUgcXUnaWwgeSBhICVsdSBjeWxpbmRyZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1bmxpa2VseSBudW1iZXIgb2Ygc2VjdG9ycyAoJWx1KSAtIHVzdWFsbHkgYXQgbW9zdCA2M1xuIgorIlRoaXMgd2lsbCBnaXZlIHByb2JsZW1zIHdpdGggYWxsIHNvZnR3YXJlIHRoYXQgdXNlcyBDL0gvUyBhZGRyZXNzaW5nLlxuIgorbXNnc3RyICIiCisiQXR0ZW50aW9uIDogbGUgbm9tYnJlIGRlIHNlY3RldXJzICglbHUpIC0gaGFiaXR1ZWxsZW1lbnQgYXUgcGx1cyBkZSA2M1xuIgorIkNlbGEgY3LpZXJhIGRlcyBwcm9ibOhtZXMgYXZlYyBsZXMgbG9naWNpZWxzIHF1aSB1dGlsaXNlbnQgdW4gYWRyZXNzYWdlIEMvSC8iCisiUy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbHUgY3lsaW5kZXJzLCAlbHUgaGVhZHMsICVsdSBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNxdWUgJXMgOiAlbHUgY3lsaW5kcmVzLCAlbHUgdOp0ZXMsICVsdSBzZWN0ZXVycy9waXN0ZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKyIlcyBkZSBsYSBwYXJ0aXRpb24gJXMgYSB1bmUgdmFsZXVyIGltcG9zc2libGUgcG91ciBsYSB06nRlIDogJWx1IChkZXZyYWl0ICIKKyLqdHJlIDAtJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3Igc2VjdG9yOiAlbHUgKHNob3VsZCBiZSBpbiAxLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyBkZSBsYSBwYXJ0aXRpb24gJXMgYSB1bmUgdmFsZXVyIGltcG9zc2libGUgcG91ciBsZSBzZWN0ZXVyIDogJWx1IChkZXZyYWl0ICIKKyLqdHJlIDEtJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgY3lsaW5kZXJzOiAlbHUgKHNob3VsZCBiZSBpbiAwLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyBkZSBsYSBwYXJ0aXRpb24gJXMgYSB1bmUgdmFsZXVyIGltcG9zc2libGUgcG91ciBsZXMgY3lsaW5kcmVzIDogJWx1ICIKKyIoZGV2cmFpdCDqdHJlIDAtJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIiIKKyJJZCAgTm9tXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iCittc2dzdHIgIlJlbGVjdHVyZSBkZSBsYSB0YWJsZSBkZSBwYXJ0aXRpb25zIC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTEKK21zZ2lkICIiCisiVGhlIGNvbW1hbmQgdG8gcmUtcmVhZCB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZC5cbiIKKyJSdW4gcGFydHByb2JlKDgpLCBrcGFydHgoOCkgb3IgcmVib290IHlvdXIgc3lzdGVtIG5vdyxcbiIKKyJiZWZvcmUgdXNpbmcgbWtmc1xuIgorbXNnc3RyICIiCisiTGEgY29tbWFuZGUgZGUgcmVsZWN0dXJlIGRlIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMgYSDpY2hvdekuXG4iCisiRXjpY3V0ZXogcGFydHByb2JlKDgpLCBrcGFydHgoOCkgb3UgcmVk6W1hcnJleiBsZSBzeXN06G1lXG4iCisibWFpbnRlbmFudCwgYXZhbnQgZCd1dGlsaXNlciBta2ZzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxNworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjbG9zaW5nICVzXG4iCittc2dzdHIgIkVycmV1ciBkZSBmZXJtZXR1cmUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBzdWNoIHBhcnRpdGlvblxuIgorbXNnc3RyICIlczogcGFzIGRlIHRlbGxlIHBhcnRpdGlvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4NzgKK21zZ2lkICJ1bnJlY29nbml6ZWQgZm9ybWF0IC0gdXNpbmcgc2VjdG9yc1xuIgorbXNnc3RyICJmb3JtYXQgbm9uIHJlY29ubnUgLSB1dGlsaXNhdGlvbiBkZXMgc2VjdGV1cnNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAiZm9ybWF0IG5vbiBpbXBsYW506SAtICVzIHV0aWxpc+lcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJVbml06XM9IGN5bGluZHJlcyBkZSAlbHUgb2N0ZXRzLCBibG9jcyBkZSAxMDI0IG9jdGV0cywgZOljb21wdGUg4CBwYXJ0aXIgZGUgJSIKKyJkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgUOlyaXBoIEFtb3IgROlidXQgICAgIEZpbiAgICNjeWxzICAgICNibG9jcyAgICBJZCAgU3lzdOhtZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gc2VjdG9ycyBvZiA1MTIgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVuaXTpcz0gc2VjdGV1cnMgZGUgNTEyIG9jdGV0cywgZOljb21wdGUg4CBwYXJ0aXIgZGUgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIFDpcmlwaCBBbW9yY2UgIETpYnV0ICAgICAgIEZpbiAgICNzZWN0ZXVycyBJZCAgU3lzdOhtZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVuaXTpcz0gYmxvY3MgZGUgMTAyNCBvY3RldHMsIGTpY29tcHRlIOAgcGFydGlyIGRlICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgIFN0YXJ0ICAgICAgIEVuZCAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBQ6XJpcGggQW1vcmNlIETpYnV0ICAgICAgIEZpbiAgICAjYmxvY3MgICAgSWQgIFN5c3TobWVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IG1lYmlieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiVW5pdOlzPSBt6Wdhb2N0ZXRzIGRlIDEwNDg1NzYgb2N0ZXRzLCBibG9jcyBkZSAxMDI0IG9jdGV0cywgZOljb21wdGUg4CAiCisicGFydGlyIGRlICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgIEVuZCAgICBNaUIgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgUOlyaXBoIEFtb3IgROlidXQgICBGaW4gICAgIE1vICAgICNibG9jcyAgICBJZCAgU3lzdOhtZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdGTpYnV0OiAoYyxoLHMpIGF0dGVuZHUgKCVsZCwlbGQsJWxkKSB0cm91dukgKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIlx0XHRmaW46IChjLGgscykgYXR0ZW5kdSAoJWxkLCVsZCwlbGQpIHRyb3V26SAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJsYSBwYXJ0aXRpb24gc2UgdGVybWluZSBzdXIgbGUgY3lsaW5kcmUgJWxkLCBhcHLocyBsYSBmaW4gZHUgZGlzcXVlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzMKK21zZ2lkICJObyBwYXJ0aXRpb25zIGZvdW5kXG4iCittc2dzdHIgIkF1Y3VuZSBwYXJ0aXRpb24gcmVw6XLpZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBUaGUgcGFydGl0aW9uIHRhYmxlIGxvb2tzIGxpa2UgaXQgd2FzIG1hZGVcbiIKKyIgIGZvciBDL0gvUz0qLyVsZC8lbGQgKGluc3RlYWQgb2YgJWxkLyVsZC8lbGQpLlxuIgorIkZvciB0aGlzIGxpc3RpbmcgSSdsbCBhc3N1bWUgdGhhdCBnZW9tZXRyeS5cbiIKK21zZ3N0ciAiIgorIkF0dGVudGlvbiA6IGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMgc2VtYmxlIGF2b2lyIOl06SBjcunpZVxuIgorIiAgcG91ciBDL0gvUz0qLyVsZC8lbGQgKGF1IGxpZXUgZGUgJWxkLyVsZC8lbGQpLlxuIgorIlBvdXIgY2UgcmFwcG9ydCwgY2V0dGUgZ+lvbel0cmllIHNlcmEgc3VwcG9z6WUgdGVsbGUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAiYXVjdW5lIHRhYmxlIGRlIHBhcnRpdGlvbnMgcHLpc2VudGUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RyYW5nZSwgb25seSAlZCBwYXJ0aXRpb25zIGRlZmluZWQuXG4iCittc2dzdHIgIul0cmFuZ2UsIHNldWxlbWVudCAlZCBwYXJ0aXRpb25zIGTpZmluaWVzLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iCittc2dzdHIgIiIKKyJBVkVSVElTU0VNRU5UIDogcGFydGl0aW9uICVzIGRlIHRhaWxsZSAwIG1haXMgbm9uIG1hcnF16WUgdmlkZSAoXCJFbXB0eVwiKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBpcyBib290YWJsZVxuIgorbXNnc3RyICJBVkVSVElTU0VNRU5UIDogcGFydGl0aW9uICVzIGRlIHRhaWxsZSAwIGV0IGFtb3LnYWJsZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBub256ZXJvIHN0YXJ0XG4iCittc2dzdHIgIiIKKyJBVkVSVElTU0VNRU5UIDogcGFydGl0aW9uICVzIGRlIHRhaWxsZSAwIGF2ZWMgdW5lIGFkcmVzc2UgZGUgZOlidXQgbm9uIOAgIgorInrpcm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICJBVkVSVElTU0VNRU5UIDogcGFydGl0aW9uICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIgorbXNnc3RyICJuJ2VzdCBwYXMgY29udGVudShlKSBkYW5zIGxhIHBhcnRpdGlvbiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbnMgJXMgIgorbXNnc3RyICJBVkVSVElTU0VNRU5UOiBwYXJ0aXRpb25zICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICJldCAlcyBzZSBjaGV2YXVjaGVudFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgY29udGFpbnMgcGFydCBvZiB0aGUgcGFydGl0aW9uIHRhYmxlIChzZWN0b3IgJWx1KSxcbiIKKyJhbmQgd2lsbCBkZXN0cm95IGl0IHdoZW4gZmlsbGVkXG4iCittc2dzdHIgIiIKKyJBdHRlbnRpb24gOiBsYSBwYXJ0aXRpb24gJXMgY29udGllbnQgdW5lIHBhcnRpZSBkZSBsYSB0YWJsZSBkZSBwYXJ0aXRpb25zXG4iCisiKHNlY3RldXIgJWx1KSwgZXQgY2VsYSBsYSBk6XRydWlyYSBsb3JzcXUnZWxsZSBzZSByZW1wbGlyYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAiQXR0ZW50aW9uIDogbGEgcGFydGl0aW9uICVzIGTpYnV0ZSBhdSBzZWN0ZXVyIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIkF0dGVudGlvbiA6IGxhIHBhcnRpdGlvbiAlcyBzJ+l0ZW5kIGFwcuhzIGxhIGZpbiBkdSBkaXNxdWVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorIlBhcm1pIGxlcyBwYXJ0aXRpb25zIHByaW1haXJlcywgYXUgcGx1cyB1bmUgc2V1bGUgcGV1dCDqdHJlIOl0ZW5kdWVcbiIKKyIgKHF1b2lxdWUgY2VsYSBuZSBzb2l0IHBhcyB1biBwcm9ibOhtZSBzb3VzIExpbnV4KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIiIKKyJBdHRlbnRpb24gOiBsYSBwYXJ0aXRpb24gJXMgbmUgZOlidXRlIHBhcyBzdXIgdW5lIGZyb250aehyZSBkZSBjeWxpbmRyZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICIiCisiQXR0ZW50aW9uIDogbGEgcGFydGl0aW9uICVzIG5lIHNlIHRlcm1pbmUgcGFzIHN1ciB1bmUgZnJvbnRp6HJlIGRlIGN5bGluZHJlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiQXR0ZW50aW9uIDogcGx1cyBkJ3VuZSBwYXJ0aXRpb24gcHJpbWFpcmUgbWFycXXpZSBhbW9y52FibGUgKGFjdGl2ZSlcbiIKKyJDZWxhIG4nZXN0IHBhcyBkJ2ltcG9ydGFudCBwb3VyIExJTE8sIG1haXMgRE9TIE1CUiBuJ2Ftb3JjZXJhIHBhcyBzdXIgY2UgIgorImRpc3F1ZS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxOAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1c3VhbGx5IG9uZSBjYW4gYm9vdCBmcm9tIHByaW1hcnkgcGFydGl0aW9ucyBvbmx5XG4iCisiTElMTyBkaXNyZWdhcmRzIHRoZSBgYm9vdGFibGUnIGZsYWcuXG4iCittc2dzdHIgIiIKKyJBdHRlbnRpb24gOiBoYWJpdHVlbGxlbWVudCBvbiBuZSBwZXV0IGFtb3JjZXIgcXUn4CBwYXJ0aXIgZCd1bmVcbiIKKyJwYXJ0aXRpb24gcHJpbWFpcmUuIExJTE8gbmUgcydvY2N1cGUgcGFzIGR1IGZhbmlvbiBkJ2Ftb3LnYWdlLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzI0Cittc2dpZCAiIgorIldhcm5pbmc6IG5vIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJBdHRuZXRpb24gOiBhdWN1bmUgcGFydGl0aW9uIHByaW1haXJlIG1hcnF16WUgYW1vcudhYmxlIChhY3RpdmUpXG4iCisiUGV1IGltcG9ydGFudCBwb3VyIExJTE8sIG1haXMgRE9TIE1CUiBuJ2Ftb3JjZXJhIHBhcyBjZSBkaXNxdWUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAiZOlidXQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInBhcnRpdGlvbiAlczogc3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJwYXJ0aXRpb24gJXMgOiBk6WJ1dCA6IChjLGgscykgYXR0ZW5kdSAoJWxkLCVsZCwlbGQpIHRyb3V26SAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgImZpbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorInBhcnRpdGlvbiAlczogZmluOiAoYyxoLHMpIGF0dGVuZHUgKCVsZCwlbGQsJWxkKSB0cm91dukgKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAicGFydGl0aW9uICVzIHRlcm1pbmFudCBzdXIgbGUgY3lsaW5kcmUgJWxkLCBhcHLocyBsYSBmaW4gZHUgZGlzcXVlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHNoaWZ0ZWQgc3RhcnQgb2YgdGhlIGV4dGQgcGFydGl0aW9uIGZyb20gJWxkIHRvICVsZFxuIgorIihGb3IgbGlzdGluZyBwdXJwb3NlcyBvbmx5LiBEbyBub3QgY2hhbmdlIGl0cyBjb250ZW50cy4pXG4iCittc2dzdHIgIiIKKyJBdHRlbnRpb24gOiBk6WNhbGFnZSBkdSBk6WJ1dCBkZSBwYXJ0aXRpb24g6XRlbmR1ZSBkZSAlbGQg4CAlbGRcbiIKKyIocG91ciBmaW5zIGQnYWZmaWNoYWdlIHNldWxlbWVudC4gTmUgbW9kaWZpZSBwYXMgbGUgY29udGVudS4pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzODQKK21zZ2lkICIiCisiV2FybmluZzogZXh0ZW5kZWQgcGFydGl0aW9uIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnkuXG4iCisiRE9TIGFuZCBMaW51eCB3aWxsIGludGVycHJldCB0aGUgY29udGVudHMgZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJBdHRlbnRpb24gOiBsYSBwYXJ0aXRpb24g6XRlbmR1ZSBuZSBk6WJ1dGUgcGFzIHN1ciB1bmUgZnJvbnRp6HJlIGRlLlxuIgorImN5bGluZHJlcy4gRE9TIGV0IExpbnV4IGludGVycHLpdGVyb250IGxlcyBjb250ZW51cyBkaWZm6XJlbW1lbnQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MDIgZmRpc2svc2ZkaXNrLmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zIC0gaWdub3JpbmcgdGhvc2UgcGFzdCBuciAoJWQpXG4iCittc2dzdHIgInRyb3AgZGUgcGFydGl0aW9ucyAtIGNlbGxlcyBhdSBkZWzgIGRlIG5yICglZCkgc29udCBpZ25vcullc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDE3Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICJhcmJyZSBkZSBwYXJ0aXRpb25zID9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUyNQorbXNnaWQgImRldGVjdGVkIERpc2sgTWFuYWdlciAtIHVuYWJsZSB0byBoYW5kbGUgdGhhdFxuIgorbXNnc3RyICJHZXN0aW9ubmFpcmUgZGUgZGlzcXVlIGTpdGVjdOkgLSBpbXBvc3NpYmxlIGRlIGfpcmVyIGNlbGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUzMgorbXNnaWQgIkRNNiBzaWduYXR1cmUgZm91bmQgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAic2lnbmF0dXJlIERNNiByZXDpcullIC0gYWJhbmRvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAi6XRyYW5nZS4uLiB1bmUgcGFydGl0aW9uIOl0ZW5kdWUgZGUgdGFpbGxlIDAgP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICLpdHJhbmdlLi4uIHVuZSBwYXJ0aXRpb24gQlNEIGRlIHRhaWxsZSAwID9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgJXM6IHVucmVjb2duaXplZCBwYXJ0aXRpb24gdGFibGUgdHlwZVxuIgorbXNnc3RyICIgJXMgOiB0eXBlIG5vbiByZWNvbm51IGRlIHRhYmxlIGRlIHBhcnRpdGlvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjE2Cittc2dpZCAiLW4gZmxhZyB3YXMgZ2l2ZW46IE5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICJvcHRpb24gLW4gdXRpbGlz6WUgOiByaWVuIG4nYSBjaGFuZ+lcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzMgorbXNnaWQgIkZhaWxlZCBzYXZpbmcgdGhlIG9sZCBzZWN0b3JzIC0gYWJvcnRpbmdcbiIKK21zZ3N0ciAiyWNoZWMgZGUgc2F1dmVnYXJkZSBkZXMgdmlldXggc2VjdGV1cnMgLSBhYmFuZG9uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzcgZmRpc2svc2ZkaXNrLmM6MTY0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgIsljaGVjIGRlIGwn6WNyaXR1cmUgZGUgbGEgcGFydGl0aW9uIHN1ciAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzE5Cittc2dpZCAibG9uZyBvciBpbmNvbXBsZXRlIGlucHV0IGxpbmUgLSBxdWl0dGluZ1xuIgorbXNnc3RyICJsaWduZSBkJ2VudHLpZSBsb25ndWUgb3UgaW5jb21wbOh0ZSAtIGFiYW5kb25cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc1NQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogYD0nIGV4cGVjdGVkIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgImVycmV1ciBkJ2VudHLpZTogqyA9ILsgZXNw6XLpIGFwcuhzIGxlIGNoYW1wICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IHVuZXhwZWN0ZWQgY2hhcmFjdGVyICVjIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgImVycmV1ciBkJ2VudHLpZTogY2FyYWN06HJlIGluYXR0ZW5kdSAlYyBhcHLocyBsZSBjaGFtcCAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAiZW50cullIG5vbiByZWNvbm51OiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxODEwCittc2dpZCAibnVtYmVyIHRvbyBiaWdcbiIKK21zZ3N0ciAibnVtYnJlIHRyb3AgZ3JhbmRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxNAorbXNnaWQgInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtYmVyXG4iCittc2dzdHIgInJlYnV0IGFwcuhzIGxlIG5vbWJyZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTM4Cittc2dpZCAibm8gcm9vbSBmb3IgcGFydGl0aW9uIGRlc2NyaXB0b3JcbiIKK21zZ3N0ciAiYXVjdW4gZXNwYWNlIHBvdXIgbGUgZGVzY3JpcHRldXIgZGUgcGFydGl0aW9uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5NzEKK21zZ2lkICJjYW5ub3QgYnVpbGQgc3Vycm91bmRpbmcgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIm5lIHBldXQgY29uc3RydWlyZSBhdXRvdXIgZGUgbGEgcGFydGl0aW9uIOl0ZW5kdWVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjAyMgorbXNnaWQgInRvbyBtYW55IGlucHV0IGZpZWxkc1xuIgorbXNnc3RyICJ0cm9wIGRlIGNoYW1wcyDgIGwnZW50cullXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIkF1Y3VuIGVzcGFjZSBwb3VyIGVuIGFjY2VwdGVyIGQnYXZhbnRhZ2VcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA3NQorbXNnaWQgIklsbGVnYWwgdHlwZVxuIgorbXNnc3RyICJUeXBlIGlsbOlnYWxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIiIKKyJBVkVSVElTU0VNRU5UOiBsYSB0YWlsbGUgZG9ubullICglbHUpIGV4Y+hkZSBsYSB0YWlsbGUgbWF4aW1hbGUgYWxsb3VhYmxlICglIgorImx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTEzCittc2dpZCAiV2FybmluZzogZW1wdHkgcGFydGl0aW9uXG4iCittc2dzdHIgIkFWRVJUSVNTRU1FTlQ6IHBhcnRpdGlvbiB2aWRlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHBhcnRpdGlvbiBzdGFydCAoZWFybGllc3QgJWx1KVxuIgorbXNnc3RyICJBVkVSVElTU0VNRU5UOiBk6WJ1dCBkZSBwYXJ0aXRpb24gY29ycm9tcHUgKGF1cGFyYXZhbnQgJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTQwCittc2dpZCAidW5yZWNvZ25pemVkIGJvb3RhYmxlIGZsYWcgLSBjaG9vc2UgLSBvciAqXG4iCittc2dzdHIgImZhbmlvbiBkJ2Ftb3LnYWdlIG5vbiByZWNvbm51IC0gY2hvaXNpciCrIC0guyBvdSCrICogu1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTU3IGZkaXNrL3NmZGlzay5jOjIxNzAKK21zZ2lkICJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iCittc2dzdHIgInNw6WNpZmljYXRpb24gcGFydGllbGxlIGMsaCxzP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICJQYXJ0aXRpb24g6XRlbmR1ZSBwYXIg4CBsJ2VuZHJvaXQgYXR0ZW5kdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjEzCittc2dpZCAiYmFkIGlucHV0XG4iCittc2dzdHIgImVudHLpZSBlcnJvbullXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMzUKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zXG4iCittc2dzdHIgInRyb3AgZGUgcGFydGl0aW9uc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjY4Cittc2dpZCAiIgorIklucHV0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OyBhYnNlbnQgZmllbGRzIGdldCBhIGRlZmF1bHQgdmFsdWUuXG4iCisiPHN0YXJ0PiA8c2l6ZT4gPHR5cGUgW0UsUyxMLFgsaGV4XT4gPGJvb3RhYmxlIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyJVc3VhbGx5IHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSA8c3RhcnQ+IGFuZCA8c2l6ZT4gKGFuZCBwZXJoYXBzIDx0eXBlPikuXG4iCittc2dzdHIgIiIKKyJMJ2VudHLpZSB1dGlsaXNlciB1biBkZXMgZm9ybWF0cyBzdWl2YW50czsgbGVzIGNoYW1wcyBhYnNlbnRzIHByZW5uZW50XG4iCisibGEgdmFsZXVyIHBhciBk6WZhdXQ6XG4iCisiPGTpYnV0PiA8dGFpbGxlPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8YW1vcudhYmxlIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyJIYWJpdHVlbGxlbWVudCB2b3VzIG4nYXZleiBiZXNvaW4gcXVlIGRlIHNw6WNpZmllcjpcbiIKKyI8ZOlidXQ+IGV0IDx0YWlsbGU+IChldCBwYXJmb2lzIDx0eXBlPikuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBkZXZpY2UgLi4uXG4iCittc2dzdHIgIlV0aWxpc2F0aW9uIDogJXMgW29wdGlvbnNdIHDpcmlwaOlyaXF1ZSAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NQorbXNnaWQgImRldmljZTogc29tZXRoaW5nIGxpa2UgL2Rldi9oZGEgb3IgL2Rldi9zZGEiCittc2dzdHIgInDpcmlwaOlyaXF1ZTogcXVlbHF1ZSBjaG9zZSBjb21tZSAvZGV2L2hkYSBvdSAvZGV2L3NkYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NgorbXNnaWQgInVzZWZ1bCBvcHRpb25zOiIKK21zZ3N0ciAib3B0aW9ucyB1dGlsZXM6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgIC1zIFtvdSAtLXNob3ctc2l6ZV06IGxpc3RlciBsYSB0YWlsbGUgZCd1bmUgcGFydGl0aW9uIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiIKKyIgICAgLWMgW291IC0taWRdOiAgICAgICAgYWZmaWNoZXIgb3UgbW9kaWZpZXIgbCdpZGVudGlmaWNhdGV1ciBkZSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIgICAgLWwgW291IC0tbGlzdF06ICAgICAgbGlzdGVyIGxlcyBwYXJ0aXRpb25zIGRlIGNoYXF1ZSBw6XJpcGjpcmlxdWUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAtZCBbb3UgLS1kdW1wXTogICAgICBpZGVudGlxdWUsIG1haXMgZGFucyB1biBmb3JtYXQgdXRpbGUgcG91ciB1bmUgIgorInNhaXNpZSB1bHTpcmlldXJlIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiAgICAtaSBbb3UgLS1pbmNyZW1lbnRdOiBudW1icmUgZGUgY3lsaW5kcmVzIGV0Yy4gZGUgMSBhdSBsaWV1IGRlIDAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDIKK21zZ2lkICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGFjY2VwdC9yZXBvcnQgaW4gdW5pdHMgb2Ygc2VjdG9ycy9ibG9ja3MvY3lsaW5kZXJzLyIKKyJNQiIKK21zZ3N0ciAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBhY2NlcHRlci9yZXBvcnRlciBlbiB1bml06XMgZGUgc2VjdGV1cnMvYmxvY3MvIgorImN5bGluZHJlcy9NQiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgICAtVCBbb3UgLS1saXN0LXR5cGVzXTpsaXN0ZXIgbGVzIHR5cGVzIGRlIHBhcnRpdGlvbnMgY29ubnVzIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA0Cittc2dpZCAiICAgIC1EIFtvciAtLURPU106ICAgICAgIGZvciBET1MtY29tcGF0aWJpbGl0eTogd2FzdGUgYSBsaXR0bGUgc3BhY2UiCittc2dzdHIgIiIKKyIgICAgLUQgW291IC0tRE9TXTogICAgICAgcG91ciBsYSBjb21wYXRpYmlsaXTpIERPUzogcGVydGUgZCd1biBwZXUgZCdlc3BhY2UiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgLVIgW29yIC0tcmUtcmVhZF06ICAgbWFrZSBrZXJuZWwgcmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorIiAgICAtUiBbb3UgLS1yZS1yZWFkXTogICBmb3JjZXIgbGUga2VybmVsIOAgcmVsaXJlIGxhIHRhYmxlIGRlIHBhcnRpdGlvbnMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDYKK21zZ2lkICIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIgorbXNnc3RyICIiCisiICAgIC1OIyA6ICAgICAgICAgICAgICAgIG1vZGlmaWVyIHNldWxlbWVudCBsYSBwYXJ0aXRpb24gYXlhbnQgbGUgbnVt6XJvICMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBuZSBwYXMg6WNyaXJlIHN1ciBsZSBkaXNxdWUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDgKK21zZ2lkICIiCisiICAgIC1PIGZpbGUgOiAgICAgICAgICAgIHNhdmUgdGhlIHNlY3RvcnMgdGhhdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHRvIGZpbGUiCittc2dzdHIgIiIKKyIgICAgLU8gZmljaGllciA6ICAgICAgICAgc2F1dmVnYXJkZXIgbGVzIHNlY3RldXJzIHF1aSBzZXJvbnQg6WNyYXPpcyBkYW5zIGxlICIKKyJmaWNoaWVyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA5Cittc2dpZCAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIHJlc3RvcmUgdGhlc2Ugc2VjdG9ycyBhZ2FpbiIKK21zZ3N0ciAiICAgIC1JIGZpY2hpZXIgOiAgICAgICAgIHJlc3RhdXJlciBjZXMgc2VjdGV1cnMg4CBub3V2ZWF1IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEwCittc2dpZCAiICAgIC12IFtvciAtLXZlcnNpb25dOiAgIHByaW50IHZlcnNpb24iCittc2dzdHIgIiAgICAtdiBbb3UgLS12ZXJzaW9uXTogICBhZmZpY2hlciBsYSB2ZXJzaW9uIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzExCittc2dpZCAiICAgIC0/IFtvciAtLWhlbHBdOiAgICAgIHByaW50IHRoaXMgbWVzc2FnZSIKK21zZ3N0ciAiICAgIC0/IFtvdSAtLWhlbHBdOiAgICAgIGFmZmljaGVyIGwnYWlkZSBt6W1vaXJlIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEyCittc2dpZCAiZGFuZ2Vyb3VzIG9wdGlvbnM6IgorbXNnc3RyICJvcHRpb25zIGRhbmdlcmV1c2VzOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIiCisiICAgIC1nIFtvdSAtLXNob3ctZ2VvbWV0cnldOiBhZmZpY2hlciBsZXMgZG9ubullcyBjb250ZW51ZXMgZGFucyBsZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VybmVsIGRlIGxhIGfpb23pdHJpZSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorbXNnaWQgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IHByaW50IGdlb21ldHJ5IGd1ZXNzZWQgZnJvbSB0aGUgcGFydGl0aW9uICIKKyJ0YWJsZSIKK21zZ3N0ciAiIgorIiAgICAtRyBbb3UgLS1zaG93LXB0LWdlb21ldHJ5XTogYWZmaWNoZXIgbGEgZ+lvbel0cmllIGVzdGlt6WUg4CBwYXJ0aXIgZGUgbGEgIgorInRhYmxlIGRlIHBhcnRpdGlvbnMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCBbb3UgLS1zaG93LWV4dGVuZGVkXTogbGlzdGVyIGF1c3NpIGxlcyBwYXJ0aXRpb25zIOl0ZW5kdWVzIGVuIHNvcnRpZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3UgbGVzIGRlc2NyaXB0ZXVycyBhdHRlbmR1cyDgIGwnZW50cullIHBvdXIgIgorImVsbGVzdCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNworbXNnaWQgIiIKKyIgICAgLUwgIFtvciAtLUxpbnV4XTogICAgICBkbyBub3QgY29tcGxhaW4gYWJvdXQgdGhpbmdzIGlycmVsZXZhbnQgZm9yIExpbnV4IgorbXNnc3RyICIiCisiICAgIC1MICBbb3UgLS1MaW51eF06ICAgICAgbmUgcGFzIGFmZmljaGVyIGRlIG1lc3NhZ2UgcXVpIG5lIGNvbmNlcm5lIHBhcyAiCisiTGludXgiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgLXEgIFtvciAtLXF1aWV0XTogICAgICBzdXBwcmVzcyB3YXJuaW5nIG1lc3NhZ2VzIgorbXNnc3RyICIgICAgLXEgIFtvdSAtLXF1aWV0XTogICAgICBzdXBwcmltZXIgdG91cyBsZXMgbWVzc2FnZXMgZCdhdmVydGlzc2VtZW50IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiICAgIFZvdXMgcG91dmV6IOljcmFzZXIgbGEgZ+lvbel0cmllIGVuIHV0aWxpc2FudDoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIiCisiICAgIC1DIyBbb3UgLS1jeWxpbmRlcnMgI106aW5pdGlhbGlzZXIgbGUgbm9tYnJlIGRlIGN5bGluZHJlcyDgIHV0aWxpc2VyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIxCittc2dpZCAiICAgIC1IIyBbb3IgLS1oZWFkcyAjXTogICAgc2V0IHRoZSBudW1iZXIgb2YgaGVhZHMgdG8gdXNlIgorbXNnc3RyICIgICAgLUgjIFtvdSAtLWhlYWRzICNdOiAgICBpbml0aWFsaXNlciBsZSBub21icmUgZGUgdOp0ZXMg4CB1dGlsaXNlciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIiCisiICAgIC1TIyBbb3UgLS1zZWN0b3JzICNdOiAgaW5pdGlhbGlzZXIgbGUgbnVtYnJlIGRlIHNlY3RldXJzIOAgdXRpbGlzZXIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjMKK21zZ2lkICJZb3UgY2FuIGRpc2FibGUgYWxsIGNvbnNpc3RlbmN5IGNoZWNraW5nIHdpdGg6IgorbXNnc3RyICJWb3VzIHBvdXZleiBk6XNhY3RpdmVyIHRvdXRlcyBsZXMgdulyaWZpY2F0aW9ucyBkZSBjb25zaXN0ZW5jZSBhdmVjOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIgICAgLWYgIFtvdSAtLWZvcmNlXTogICAgICBleOljdXRlciBhdmV1Z2zpbWVudCBsYSBjb21tYW5kZSBkb25u6WUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzAKK21zZ2lkICJVc2FnZToiCittc2dzdHIgIlV0aWxpc2F0aW9uIDoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIlcyBw6XJpcGjpcmlxdWVcdFx0IGxpc3RlciBsZXMgcGFydGl0aW9ucyBhY3RpdmVzIGR1IHDpcmlwaOlyaXF1ZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZSBuMSBuMiAuLi4gYWN0aXZhdGUgcGFydGl0aW9ucyBuMSAuLi4sIGluYWN0aXZhdGUgdGhlIHJlc3RcbiIKK21zZ3N0ciAiIgorIiVzIHDpcmlwaOlyaXF1ZSBuMSBuMiAuLi4gYWN0aXZlciBsZXMgcGFydGl0aW9ucyBuMSAuLi4sIGTpc2FjdGl2ZXIgbGVzICIKKyJhdXRyZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtQW4gZGV2aWNlXHQgYWN0aXZhdGUgcGFydGl0aW9uIG4sIGluYWN0aXZhdGUgdGhlIG90aGVyIG9uZXNcbiIKK21zZ3N0ciAiJXMgLUFuIHBy6WlwaOlyaXF1ZVx0IGFjdGl2ZXIgbGEgcGFydGl0aW9uIG4sIGTpc2FjdGl2ZXIgbGVzIGF1dHJlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBzZmRpc2sgIgorImRvZXNuJ3Qgc3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiQVRURU5USU9OIDogaWRlbnRpZmlhbnQgZGUgdGFibGUgZGUgcGFydGl0aW9ucyBHUFQgKEdVSUQpIGRldGVjdOkgc3VyIFwiJXMiCisiXCIgISBMJ3V0aWxpdGFpcmUgc2ZkaXNrIG5lIHN1cHBvcnRlIHBhcyBHUFQuIFV0aWxpc2V6IEdOVSBQYXJ0ZWQuXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiVXRpbGlzZXIgbCdvcHRpb24gLS1mb3JjZSBwb3VyIGlnbm9yZXIgY2UgY29udHL0bGUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0OTUKK21zZ2lkICJubyBjb21tYW5kP1xuIgorbXNnc3RyICJwYXMgZGUgY29tbWFuZGU/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAidG90YWw6ICVsbHUgYmxvY2tzXG4iCittc2dzdHIgInRvdGFsOiAlbGx1IGJsb2NzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzAKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tcHJpbnQtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXJcbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiBzZmRpc2sgLS1wcmludC1pZCBw6XJpcGjpcmlxdWUgbnVt6XJvLWRlLXBhcnRpdGlvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcyCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWNoYW5nZS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBJZFxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6IHNmZGlzayAtLWNoYW5nZS1pZCBw6XJpcGjpcmlxdWUgbnVt6XJvLWRlLXBhcnRpdGlvbiBJZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiBzZmRpc2sgLS1pZCBw6XJpcGjpcmlxdWUgbnVt6XJvLWRlLXBhcnRpdGlvbiBbSWRdXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2ODEKK21zZ2lkICJjYW4gc3BlY2lmeSBvbmx5IG9uZSBkZXZpY2UgKGV4Y2VwdCB3aXRoIC1sIG9yIC1zKVxuIgorbXNnc3RyICIiCisidm91cyBuZSBwb3V2ZXogc3DpY2lmaWVyIHNldWxlbWVudCB1biBw6XJpcGjpcmlxdWUgKHNhdWYgYXZlYyAtbCBvdSAtcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwNworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyByZWFkLXdyaXRlXG4iCittc2dzdHIgIm5lIHBldXQgb3V2cmlyICVzIGVuIGxlY3R1cmUt6WNyaXR1cmVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwOQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyBmb3IgcmVhZGluZ1xuIgorbXNnc3RyICJuZSBwZXV0IG91dnJpciAlcyBlbiBsZWN0dXJlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9LXG4iCittc2dzdHIgIiVzOiBPS1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzUzIGZkaXNrL3NmZGlzay5jOjI3ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjeWxpbmRlcnMsICVsZCBoZWFkcywgJWxkIHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiJXM6ICVsZCBjeWxpbmRyZXMsICVsZCB06nRlcywgJWxkIHNlY3RldXJzL3Bpc3RlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGdldCBzaXplIG9mICVzXG4iCittc2dzdHIgIk5lIHBldXQgb2J0ZW5pciBsYSB0YWlsbGUgZGUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgIm9jdGV0IGFjdGlmIGVycm9u6TogMHgleCBhdSBsaWV1IGRlIDB4ODBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkwMyBmZGlzay9zZmRpc2suYzoyOTU4IGZkaXNrL3NmZGlzay5jOjI5OTEKK21zZ2lkICIiCisiRG9uZVxuIgorIlxuIgorbXNnc3RyICIiCisiQ29tcGzpdOlcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgJWQgYWN0aXZlIHByaW1hcnkgcGFydGl0aW9ucy4gVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sXG4iCisiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIKK21zZ3N0ciAiIgorIlZvdXMgYXZleiAlZCBwYXJ0aXRpb25zIHByaW1haXJlcyBhY3RpdmVzLiBDZWxhIG4nYSBhdWN1biBlZmZldCBwb3VyIExJTE8sXG4iCisibWFpcyBlbiBhIHVuIHBvdXIgRE9TIE1CUiBxdWkgbmUgcG91cnJhIGFtb3JjZXIgdW4gZGlzcXVlIHF1J2F2ZWMgdW5lIHNldWxlICIKKyJwYXJ0aXRpb24gYWN0aXZlLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBoYXMgaWQgJXggYW5kIGlzIG5vdCBoaWRkZW5cbiIKK21zZ3N0ciAicGFydGl0aW9uICVzIGEgdW4gaWRlbnRpZmljYXRldXIgJXggcXVpIG4nZXN0IHBhcyBjYWNo6VxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBJZCAlbHhcbiIKK21zZ3N0ciAiSWRlbnRpZmNhdGV1ciBlcnJvbukgJWx4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAiTGUgZGlzcXVlIGVzdCBwculzZW50ZW1lbnQgZW4gdXNhZ2UuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmF0YWwgZXJyb3I6IGNhbm5vdCBmaW5kICVzXG4iCittc2dzdHIgIkVycmV1ciBmYXRhbGU6IG5lIHBldXQgdHJvdXZlciAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICJBVkVSVElTU0VNRU5UOiAlcyBuJ2VzdCBwYXMgdW4gcOlyaXBo6XJpcXVlIGZvbmN0aW9ubmFudCBwYXIgYmxvY3NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzMgorbXNnaWQgIkNoZWNraW5nIHRoYXQgbm8tb25lIGlzIHVzaW5nIHRoaXMgZGlzayByaWdodCBub3cgLi4uXG4iCittc2dzdHIgIlbpcmlmaWNhdGlvbiBxdSdhdWN1biBhdXRyZSBuJ3V0aWxpc2UgbGUgZGlzcXVlIGVuIGNlIG1vbWVudCAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisiXG4iCisiTGUgZGlzcXVlIGVzdCBwculzZW50ZW1lbnQgdXRpbGlz6SAtIGxlIHJlcGFydGl0aW9ubmVyIGVzdCBwcm9iYWJsZW1lbnQgdW5lICIKKyJtYXV2YWlzZSBpZOllLlxuIgorIkTpbW9udGVyIHRvdXMgbGVzIHN5c3TobWVzIGRlIGZpY2hpZXJzLCBldCBzdG9wcGVyIGxlIHN3YXAgc3VyIHRvdXRlcyBsZXNcbiIKKyJwYXJ0aXRpb25zIHN3YXAgc3VyIGNlIGRpc3F1ZS5cbiIKKyJVdGlsaXNlciBsZSBmYW5pb24gLS1uby1yZXJlYWQgcG91ciBzdXBwcmltZXIgY2V0dGUgdulyaWZpY2F0aW9uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM4Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgYWxsIGNoZWNrcy5cbiIKK21zZ3N0ciAiVXRpbGlzZXIgbCdvcHRpb24gLS1mb3JjZSBwb3VyIGFubnVsZXIgdG91dGVzIGxlcyB26XJpZmljYXRpb25zLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDQyCittc2dpZCAiT0tcbiIKK21zZ3N0ciAiT0tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1MQorIywgYy1mb3JtYXQKK21zZ2lkICJPbGQgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJWaWVpbGxlIHNpdHVhdGlvbjpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCBjaGFuZ2UgaXRcbiIKK21zZ3N0ciAiTGEgcGFydGl0aW9uICVkIG4nZXhpc3RlIHBhcywgbmUgcGV1dCBsYSBtb2RpZmVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiTm91dmVsbGUgc2l0dWF0aW9uOlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDY4Cittc2dpZCAiIgorIkkgZG9uJ3QgbGlrZSB0aGVzZSBwYXJ0aXRpb25zIC0gbm90aGluZyBjaGFuZ2VkLlxuIgorIihJZiB5b3UgcmVhbGx5IHdhbnQgdGhpcywgdXNlIHRoZSAtLWZvcmNlIG9wdGlvbi4pXG4iCittc2dzdHIgIiIKKyJDZXMgcGFydGl0aW9ucyBzb250IHF1ZXN0aW9ubmFibGVzIC0tIHJpZW4gbidhIGNoYW5n6S5cbiIKKyIoU2kgdm91cyBk6XNpcmV6IGNlbGEsIHV0aWxpc2VyIGwnb3B0aW9uIC0tZm9yY2UuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDcxCittc2dpZCAiSSBkb24ndCBsaWtlIHRoaXMgLSBwcm9iYWJseSB5b3Ugc2hvdWxkIGFuc3dlciBOb1xuIgorbXNnc3RyICIiCisiQ2V0dGUgc2l0dWF0aW9uIG4nZXN0IHBhcyByZWNvbW1hbmRhYmxlIC0tIHZvdXMgZGV2cmlleiBwcm9iYWJsZW1lbnQgIgorInLpcG9uZHJlIE5vblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICLKdGVzLXZvdXMgc2F0aXNmYWl0IGF2ZWMgY2VsYT8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIHlvdSB3YW50IHRvIHdyaXRlIHRoaXMgdG8gZGlzaz8gW3lucV0gIgorbXNnc3RyICJWb3VsZXotdm91cyDpY3JpcmUgY2VsYSBzdXIgbGUgZGlzcXVlPyBbeW5xXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGVuZCBvZiBpbnB1dFxuIgorbXNnc3RyICIiCisiXG4iCisic2ZkaXNrOiBmaW4gcHLpbWF0dXLpZSBkZSBsJ2VudHLpZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiQWJhbmRvbiAtIHJpZW4gbidhIGNoYW5n6VxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBsZWFzZSBhbnN3ZXIgb25lIG9mIHksbixxXG4iCittc2dzdHIgIlNWUCBmb3VybmlyIHVuZSBy6XBvbnNlIHN1aXZhbnRlOiB5LG4scVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdWNjZXNzZnVsbHkgd3JvdGUgdGhlIG5ldyBwYXJ0aXRpb24gdGFibGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlN1Y2PocyBkJ+ljcml0dXJlIGRlIGxhIG5vdXZlbGxlIHRhYmxlIGRlIHBhcnRpdGlvbnNcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzEwNQorbXNnaWQgIiIKKyJJZiB5b3UgY3JlYXRlZCBvciBjaGFuZ2VkIGEgRE9TIHBhcnRpdGlvbiwgL2Rldi9mb283LCBzYXksIHRoZW4gdXNlIGRkKDEpXG4iCisidG8gemVybyB0aGUgZmlyc3QgNTEyIGJ5dGVzOiAgZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MVxuIgorIihTZWUgZmRpc2soOCkuKVxuIgorbXNnc3RyICIiCisiU2kgdm91cyBjculleiBvdSBtb2RpZmlleiB1bmUgcGFydGl0aW9uIERPUywgL2Rldi9mb283LCBwYXIgZXhlbXBsZSwgYWxvcnNcbiIKKyJ1dGlsaXNlciBkZCgxKSBwb3VyIG1ldHRyZSDgIHrpcm8gbGVzIHByZW1pZXJzIDUxMiBvY3RldHM6ICBcbiIKKyJkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKENvbnN1bHRlciBmZGlzayg4KS4pXG4iCisKKyM6IGZzY2svZnNjay5jOjMyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBjb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJBVFRFTlRJT04gOiBpbXBvc3NpYmxlIGQnb3V2cmlyICVzIDogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGJhZCBmb3JtYXQgb24gbGluZSAlZCBvZiAlc1xuIgorbXNnc3RyICJBVFRFTlRJT04gOiBtYXV2YWlzIGZvcm1hdCDgIGxhIGxpZ25lICVkIHN1ciAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzozNTIKK21zZ2lkICIiCisiV0FSTklORzogWW91ciAvZXRjL2ZzdGFiIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZzY2sgcGFzc25vXG4iCisiXHRmaWVsZC4gIEkgd2lsbCBrbHVkZ2UgYXJvdW5kIHRoaW5ncyBmb3IgeW91LCBidXQgeW91XG4iCisiXHRzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkFUVEVOVElPTiA6IGxlIGZpY2hpZXIgL2V0Yy9mc3RhYiBuZSBjb250aWVudCBwYXMgbGUgY2hhbXBcbiIKKyJmc2NrIHBhc3Nuby4gTGEgdmFsZXVyIHZhIOp0cmUgZXh0cmFwb2zpZSBtYWlzIHZvdXMgZGV2cmllelxuIgorImNvcnJpZ2VyIGNlbGEgYXUgcGx1cyB09HQgZGFucyBsZSBmaWNoaWVyIC9ldGMvZnN0YWIuXG4iCisiXG4iCisKKyM6IGZzY2svZnNjay5jOjQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiAlczogbm90IGZvdW5kXG4iCittc2dzdHIgImZzY2sgOiAlcyA6IG5vbiB0cm91dulcbiIKKworIzogZnNjay9mc2NrLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIKK21zZ3N0ciAiJXMgOiB3YWl0IDogYXVjdW4gcHJvY2Vzc3VzIGVuZmFudCA/IT9cbiIKKworIzogZnNjay9mc2NrLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmcuLi4gJXMgZm9yIGRldmljZSAlcyBleGl0ZWQgd2l0aCBzaWduYWwgJWQuXG4iCittc2dzdHIgIkF0dGVudGlvbi4uLiAlcywgcOlyaXBo6XJpcXVlICVzLCBzaWduYWwgZGUgZmluICVkLlxuIgorCisjOiBmc2NrL2ZzY2suYzo2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIKK21zZ3N0ciAiJXMgJXMgOiBzdGF0dXQgJXgsIGNlbGEgbmUgZGV2cmFpdCBwYXMgYXJyaXZlci5cbiIKKworIzogZnNjay9mc2NrLmM6NjQzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmlzaGVkIHdpdGggJXMgKGV4aXQgc3RhdHVzICVkKVxuIgorbXNnc3RyICJGaW4gZGUgJXMgKGNvZGUgZGUgc29ydGllICVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzIGZvciAlc1xuIgorbXNnc3RyICIlcyA6IGVycmV1ciAlZCBsb3JzIGRlIGwnZXjpY3V0aW9uIGRlIFwiZnNja1wiLiAlcyBwb3VyICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjcyNAorbXNnaWQgIiIKKyJFaXRoZXIgYWxsIG9yIG5vbmUgb2YgdGhlIGZpbGVzeXN0ZW0gdHlwZXMgcGFzc2VkIHRvIC10IG11c3QgYmUgcHJlZml4ZWRcbiIKKyJ3aXRoICdubycgb3IgJyEnLlxuIgorbXNnc3RyICIiCisiVG91cyBsZXMgdHlwZXMgZGUgc3lzdOhtZXMgZGUgZmljaGllcnMgcHLpY2lz6XMgcGFyIC10LCBvdSBiaWVuIGF1Y3VuLFxuIgorImRvaXZlbnQg6nRyZSBwculmaXjpcyBwYXIgJ25vJyAobm9uKSBvdSAnIScuXG4iCisKKyM6IGZzY2svZnNjay5jOjc0MworbXNnaWQgIkNvdWxkbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgZmlsZXN5c3RlbSB0eXBlc1xuIgorbXNnc3RyICIiCisiSW1wb3NzaWJsZSBkJ2FsbG91ZXIgbGEgbeltb2lyZSBwb3VyIGxlcyB0eXBlcyBkZSBzeXN06G1lcyBkZSBmaWNoaWVyc1xuIgorCisjOiBmc2NrL2ZzY2suYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBza2lwcGluZyBiYWQgbGluZSBpbiAvZXRjL2ZzdGFiOiBiaW5kIG1vdW50IHdpdGggbm9uemVybyBmc2NrIHBhc3MgIgorIm51bWJlclxuIgorbXNnc3RyICIiCisiJXMgOiBtYXV2YWlzZSBsaWduZSBkYW5zIC9ldGMvZnN0YWIgaWdub3LpZSA6IG1vbnRhZ2UgYXZlYyBub21icmUgZGUgcGFzc2VzICIKKyJcImZzY2tcIiBub24gbnVsXG4iCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIgorbXNnc3RyICIlczogJXMgbidlc3QgcGFzIHVuIHDpcmlwaOlyaXF1ZSBkJ2ltcHJlc3Npb24gbHAuXG4iCisKKyM6IGZzY2svZnNjay5jOjkxOAorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiBjYW5ub3QgY2hlY2sgJXM6IGZzY2suJXMgbm90IGZvdW5kXG4iCittc2dzdHIgImZzY2sgOiBpbXBvc3NpYmxlIGRlIGNvbnRy9GxlciAlcywgZnNjay4lcyBub24gdHJvdXbpXG4iCisKKyM6IGZzY2svZnNjay5jOjk3NAorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIkNvbnRy9GxlIGRlIHRvdXMgbGVzIHN5c3TobWVzIGRlIGZpY2hpZXJzLlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0td2FpdGluZy0tIChwYXNzICVkKVxuIgorbXNnc3RyICItLWVuIGF0dGVudGUtLSAocGFzc2UgJWQpXG4iCisKKyM6IGZzY2svZnNjay5jOjEwODUKK21zZ2lkICIiCisiVXNhZ2U6IGZzY2sgWy1BTU5QUlRWXSBbIC1DIFsgZmQgXSBdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBbZmlsZXN5cyAuLi5dXG4iCittc2dzdHIgIiIKKyJVc2FnZSA6IGZzY2sgWy1BTU5QUlRWXSBbIC1DIFsgZmQgXSBdIFstdCB0eXBlX3N5c2ZpY10gW29wdGlvbnNfc3lzZmljXSAiCisiW3N5c19maWMgLi4uXVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzIDogcOlyaXBo6XJpcXVlcyB0cm9wIG5vbWJyZXV4XG4iCisKKyM6IGZzY2svZnNjay5jOjExMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ291dnJpciAlcyA6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiL3Byb2MgZXN0LWlsIG1vbnTpID9cbiIKKworIzogZnNjay9mc2NrLmM6MTE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIHJvb3QgdG8gc2NhbiBmb3IgbWF0Y2hpbmcgZmlsZXN5c3RlbXM6ICVzXG4iCittc2dzdHIgIiIKKyJWb3VzIGRldmV6IOp0cmUgXCJyb290XCIgcG91ciByZWNoZXJjaGVyIGxlIHR5cGUgZGUgc3lzdOhtZXMgZGUgZmljaGllcnMgOiAlIgorInNcbiIKKworIzogZnNjay9mc2NrLmM6MTE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBmaW5kIG1hdGNoaW5nIGZpbGVzeXN0ZW06ICVzXG4iCittc2dzdHIgIkltcG9zc2libGUgZGUgdHJvdXZlciB1biBzeXN06G1lIGRlIGZpY2hpZXJzIGNvcnJlc3BvbmRhbnQgOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGFyZ3VtZW50c1xuIgorbXNnc3RyICIlcyA6IHRyb3AgZCdhcmd1bWVudHNcbiIKKworIzogZnNjay9mc2NrLmM6MTI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiZnNjayBkZSAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiJXMgOiBpbXBvc3NpYmxlIGQnYWxsb3VlciBsYSBt6W1vaXJlIHBvdXIgZnNja19wYXRoXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJFc3NheWVyIKsgZ2V0b3B0IC0taGVscCC7IHBvdXIgcGx1cyBkJ2luZm9ybWF0aW9ucy5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAib3B0aW9uIGxvbmd1ZSB2aWRlIGFwcuhzIGwnYXJndW1lbnQgLWwgb3UgLS1sb25nIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzE1Cittc2dpZCAidW5rbm93biBzaGVsbCBhZnRlciAtcyBvciAtLXNoZWxsIGFyZ3VtZW50IgorbXNnc3RyICJzaGVsbCBpbmNvbm51IGFwcuhzIGwnYXJndW1lbnQgLXMgb3UgLS1zaGVsbCIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiBnZXRvcHQgY2hh7m5lLWQtb3B0aW9ucyBwYXJhbeh0cmVzXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjEKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSBbLS1dIG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIFstLV0gcGFyYW3odHJlcyBkZSBsYSBjaGHubmUgZCdvcHRpb25cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIGNoYWluZSBkJ29wdGlvbnMgW29wdGlvbnNdIFstLV1cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMworbXNnaWQgIiAgICAgICAgICAgICAgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgICAgICAgIHBhcmFt6HRyZXNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNAorbXNnaWQgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggc2luZ2xlIC1cbiIKK21zZ3N0ciAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBwYXJtZXR0cmUgbGVzIG9wdGlvbnMgZGUgZm9ybWUgbG9uZ3VlIGF2ZWMgdW4gIgorInNpbXBsZSAtXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjUKK21zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVGhpcyBzbWFsbCB1c2FnZSBndWlkZVxuIgorbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgYWZmaWNoZXIgbCdhaWRlIG3pbW9pcmVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNgorbXNnaWQgIiAgLWwsIC0tbG9uZ29wdGlvbnM9bG9uZ29wdHMgICBMb25nIG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIiCisiICAtbCwgLS1sb25nb3B0aW9ucz1vcHQtbG9uZyAgIHJlY29ubmHudHJlcyBsZXMgb3B0aW9ucyBkZSBmb3JtZSBsb25ndWVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNworbXNnaWQgIiIKKyIgIC1uLCAtLW5hbWU9cHJvZ25hbWUgICAgICAgICAgVGhlIG5hbWUgdW5kZXIgd2hpY2ggZXJyb3JzIGFyZSByZXBvcnRlZFxuIgorbXNnc3RyICIiCisiICAtbiwgLS1uYW1lPW5vbS1kZS1wcm9ncmFtbWUgbGUgbm9tIHNvdXMgbGVxdWVsIGxlcyBlcnJldXJzIHNvbnQgIgorInJhcHBvcnTpZXNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOAorbXNnaWQgIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBTaG9ydCBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiIgorIiAgLW8sIC0tb3B0aW9ucz1jaGHubmUtb3B0ICAgIHJlY29ubmHudHJlIGxlcyBvcHRpb25zIGRlIGZvcm1lIGNvdXJ0ZVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIiCisiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIGTpc2FjdGl2ZXIgbGVzIHJhcHBvcnRzIGQnZXJyZXVyIHBhciBnZXRvcHQiCisiKDMpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgcGFzIGQnYWZmaWNoYWdlIG5vcm1hbFxuIgorCisjIGdldG9wdC0xLjEuMi9nZXRvcHQuYzozMzUKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiIgorIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICBpbml0aWFsaXNlciBsYSBjb252ZW50aW9uIGRlIGNvbW1lbnRhaXJlIGR1ICIKKyJzaGVsbFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBhZmZpY2hlciBsYSB2ZXJzaW9uIGRlIGdldG9wdCgxKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMzCittc2dpZCAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIERvIG5vdCBxdW90ZSB0aGUgb3V0cHV0XG4iCittc2dzdHIgIiIKKyIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgbmUgcGFzIGNvbW1lbnRlciBhdmVjIGRlcyBndWlsbGVtZXRzIGxhICIKKyJzb3J0aWVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzNAorbXNnaWQgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBPdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorbXNnc3RyICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgYWZmaWNoZXIgbGEgdmVyc2lvblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mzg4IGdldG9wdC9nZXRvcHQuYzo0NDcKK21zZ2lkICJtaXNzaW5nIG9wdHN0cmluZyBhcmd1bWVudCIKK21zZ3N0ciAibGEgY2hh7m5lIGQnb3B0aW9ucyBkZSBsJ2FyZ3VtZW50IGVzdCBtYW5xdWFudGUiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChhbelsaW9y6SkgMS4xLjRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICJlcnJldXIgaW50ZXJuZSwgY29udGFjdGVyIGwnYXV0ZXVyLiIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAiYW1vcmPpIOAgcGFydGlyIGRlIE1JTE9cbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIkhvcmxvZ2UgUnVmZmlhbiBCQ0RcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImNsb2NrcG9ydCBhZGp1c3RlZCB0byAweCV4XG4iCittc2dzdHIgImxlIHBvcnQgZCdob3Jsb2dlIGEg6XTpIGFqdXN06SDgIDB4JXhcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZ1bmt5IFRPWSFcbiIKK21zZ3N0ciAiZHL0bGUgZGUgVE9ZIVxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGF0b21pYyAlcyBmYWlsZWQgZm9yIDEwMDAgaXRlcmF0aW9ucyEiCittc2dzdHIgIiVzOiBhdG9taWMgJXMgYSDpY2hvdekgcG91ciAxMDAwIGl06XJhdGlvbnMhIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKyJjbW9zX3JlYWQoKSA6IOljaGVjIGRlIGxlY3R1cmUgZGUgbGEgdmFsZXVyIGRlIGNvbnRy9GxlIOAgbCdhZHJlc3NlICVYIDogJXNcbiIKKworIzogaHdjbG9jay9jbW9zLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiByZWFkIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImNtb3NfcmVhZCgpIDog6WNoZWMgZGUgbGVjdHVyZSBkZSBkb25u6WVzIOAgbCdhZHJlc3NlICVYIDogJXNcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorImNtb3NfcmVhZCgpIDog6WNoZWMgZCfpY3JpdHVyZSBkZSBsYSB2YWxldXIgZGUgY29udHL0bGUg4CBsJ2FkcmVzc2UgJVggOiAlc1xuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICJjbW9zX3JlYWQoKSA6IOljaGVjIGQn6WNyaXR1cmUgZGUgZG9ubullcyDgIGwnYWRyZXNzZSAlWCA6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAvZGV2L3BvcnQ6ICVzIgorbXNnc3RyICJOZSBwZXV0IG91dnJpciBsZSBwb3J0IC9kZXYvcG9ydDogJXMiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAiIgorIsljaGVjIGQnb2J0ZW50aW9uIGRlcyBwZXJtaXNzaW9ucyBwYXJjZSBxdSdhdWN1biBlc3NhaSBuJ2Eg6XTpIHRlbnTpLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiIgorIiVzIGluY2FwYWJsZSBkJ29idGVuaXIgdW4gcG9ydCBkJ2FjY+hzIGQnRS9TIDogIGwnYXBwZWwg4CBpb3BsKDMpIGEg6WNob3XpLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICJQcm9iYWJsZW1lbnQgcXVlIHZvdXMgYXZleiBiZXNvaW4gZGVzIHByaXZpbOhnZXMgZGUgcm9vdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gJXMgdGltZS5cbiIKK21zZ3N0ciAiIgorIk9uIGFzc3VtZSBxdWUgbCdob3Jsb2dlIG1hdOlyaWVsbGUgZXN0IGNvbnNlcnbpZSBkYW5zIGxlIHRlbXBzIGRlICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAibG9jYWxlIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIiCisiJXM6IEFWRVJUSVNTRU1FTlQ6IDNlIGxpZ25lIG5vbiByZWNvbm51ZSBkYW5zIGxlIGZpY2hpZXIgZCdhanVzdGVtZW50IGRlICIKKyJsJ2hldXJlXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIihBdHRlbmR1OiCrIFVUQyC7IG91IKsgTE9DQUwguyBvdSBub3RoaW5nLilcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiTGUgZGVybmllciBhanVzdGVtZW50IGRlIGTpcml2ZSBhIOl06SBmYWl0ICVsZCBzZWNvbmRlcyBhcHLocyAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJMYSBkZXJuaehyZSBjYWxpYnJhdGlvbiBhIOl06SBmYWl0ZSAlbGQgc2Vjb25kZXMgYXBy6HMgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICJMJ2hvcmxvZ2UgbWF06XJpZWxsZSBmb25jdGlvbm5lIHNlbG9uIGxlIHRlbXBzICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgImluY29ubnUiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGZvciBjbG9jayB0aWNrLi4uXG4iCittc2dzdHIgIkVuIGF0dGVudGUgZCd1biB0aWMgZCdob3Jsb2dlLi4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5zeW5jaHJvbml6YXRpb24gZmFpbGVkXG4iCittc2dzdHIgIi4uLuljaGVjIGRlIHN5bmNocm9uaXNhdGlvblxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiLi4uYSBvYnRlbnUgdW4gdGljIGQnaG9ybG9nZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKK21zZ3N0ciAiIgorInZhbGV1cnMgaW52YWxpZGVzIGRhbnMgbCdob3Jsb2dlIG1hdOlyaWVsbGU6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiSGV1cmUgZGUgbCdob3Jsb2dlIG1hdOlyaWVsbGUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZGVzICIKKyJkZXB1aXMgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSByZWFkIGZyb20gSGFyZHdhcmUgQ2xvY2s6ICU0ZC8lLjJkLyUuMmQgJTAyZDolMDJkOiUwMmRcbiIKK21zZ3N0ciAiSGV1cmUgbHUgZGUgbCdob3Jsb2dlIG1hdOlyaWVsbGU6ICU0ZC8lLjJkLyUuMmQgJTAyZDolMDJkOiUwMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKyJJbml0aWFsaXNlciBsJ2hvcmxvZ2UgbWF06XJpZWxsZSDgICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZGVzIGRlcHVpcyAiCisiMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIkhvcmxvZ2Ugbidlc3QgcGFzIG1vZGlmaellIC0gdGVzdCBzZXVsZW1lbnQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIlRlbXBzIOljb3Vs6SBkZXB1aXMgbGEgculm6XJlbmNlIHRlbXBvcmVsbGUgOiAlLjZmIHNlY29uZGVzLlxuIgorIkTpbGFpIGVuIGNvdXJzIHBvdXIgYXR0ZWluZHJlIGxhIG5vdXZlbGxlIGhldXJlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIkxlcyByZWdpc3RyZXMgZGUgbCdob3Jsb2dlIG1hdOlyaWVsbGUgY29udGllbm5lbnQgZGVzIHZhbGV1cnMgcXVpIHNvbnRcbiIKKyJzb2l0IGludmFsaWRlcyAoaS5lLiA1MGUgam91ciBkdSBtb2lzKSBvdSBlbiBkZWhvcnMgZGUgbGEgcGxhZ2VcbiIKKyJwb3V2YW50IOp0cmUgdHJhaXTpZSAoaS5lLiBhbm7pZSAyMDk1KS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiJXMgICUuNmYgc2Vjb25kZXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIC0tZGF0ZSBvcHRpb24gc3BlY2lmaWVkLlxuIgorbXNnc3RyICJBdWN1bmUgb3B0aW9uIC0tZGF0ZSBzcOljaWZp6S5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICItLWRhdGUgYXJndW1lbnQgdHJvcCBsb25nXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisiTGEgdmFsZXVyIGRlIGwnb3B0aW9uIC0tZGF0ZSBuJ2VzdCBwYXMgdW5lIGRhdGUgdmFsaWRlLlxuIgorIkVuIHBhcnRpY3VsaWVyLCBlbGxlIGNvbnRpZW50IGRlcyBndWlsbGVtZXRzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIsltaXNzaW9uIGRlIGxhIGNvbW1hbmRlIGRlIGRhdGU6ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0MAorbXNnaWQgIlVuYWJsZSB0byBydW4gJ2RhdGUnIHByb2dyYW0gaW4gL2Jpbi9zaCBzaGVsbC4gcG9wZW4oKSBmYWlsZWQiCittc2dzdHIgIiIKKyLJY2hlYyBkZSBwb3BlbigpLCBpbmNhcGFibGUgZCdleOljdXRlciCrIGRhdGUguyDgIHBhcnRpciBkZSAvYmluL3NoIHNoZWxsIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcG9uc2UgZnJvbSBkYXRlIGNvbW1hbmQgPSAlc1xuIgorbXNnc3RyICJy6XBvbnNlIGRlIGxhIGNvbW1hbmRlIGRhdGUgPSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHVuZXhwZWN0ZWQgcmVzdWx0cy5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICAlc1xuIgorbXNnc3RyICIiCisiTGEgY29tbWFuZGUgZGF0ZSBzb3VtaXNlIHBhciAlcyBhIHJldG91cm7pIGRlcyBy6XN1bHRhdHMgaW5hdHRlbmR1cy5cbiIKKyJMYSBjb21tYW5kZSDpdGFpdDpcbiIKKyIgICVzXG4iCisiTGUgculzdWx0YXQgZXN0OlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIkxhIGNvbW1hbmRlIGRhdGUgc291bWlzZSBwYXIgJXMgYSByZXRvdXJu6SBxdWVscXVlIGNob3NlIGQnYXV0cmUgcXUndW5cbiIKKyJlbnRpZXIgYWxvcnMgcXVlIGRlcyB2YWxldXJzIGRlIHRlbXBzIGNvbnZlcnRpZXMg6XRhaWVudCBhdHRlbmR1ZXMuXG4iCisiTGEgY29tbWFuZGUg6XRhaXQ6XG4iCisiICAlc1xuIgorIkxlIHLpc3VsdGF0IGVzdDpcbiIKKyIgICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJkYXRlIHN0cmluZyAlcyBlcXVhdGVzIHRvICVsZCBzZWNvbmRzIHNpbmNlIDE5NjkuXG4iCittc2dzdHIgImxhIGNoYe5uZSBkZSBkYXRlICVzIOlxdWl2YXV0IOAgJWxkIHNlY29uZGVzIGRlcHVpcyAxOTY5LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IHNldCB0aGUgIgorIlN5c3RlbSBUaW1lIGZyb20gaXQuXG4iCittc2dzdHIgIiIKKyJMJ2hvcmxvZ2UgbWF06XJpZWxsZSBuZSBjb250aWVudCBkZSB0ZW1wcyB2YWxpZGUsIGF1c3NpIG9uIG5lIHBldXQgcGFzICIKKyJpbml0aWFsaXPpIGwnaGV1cmUgZHUgc3lzdOhtZSDgIHBhcnRpciBkJ2VsbGUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyNyBod2Nsb2NrL2h3Y2xvY2suYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBzZXR0aW1lb2ZkYXk6XG4iCittc2dzdHIgIkFwcGVsIGRlIHNldHRpbWVvZmRheTpcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI4IGh3Y2xvY2svaHdjbG9jay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorbXNnc3RyICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzAgaHdjbG9jay9od2Nsb2NrLmM6ODA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorbXNnc3RyICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMzIGh3Y2xvY2svaHdjbG9jay5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBzeXN0ZW0gY2xvY2sgYmVjYXVzZSBydW5uaW5nIGluIHRlc3QgbW9kZS5cbiIKK21zZ3N0ciAiIgorIk5lIHBldXQgaW5pdGlhbGlzZXIgbCdob3Jsb2dlIHN5c3TobWUgcGFyY2UgcXVlIGxlIHByb2dyYW1tZSB0b3VybmUgZW4gbW9kZSAiCisidGVzdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQyIGh3Y2xvY2svaHdjbG9jay5jOjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIHN1cGVydXNlciB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICJWb3VzIGRldmV6IOp0cmUgbGUgc3VwZXItdXNhZ2VyIHBvdXIgaW5pdGlhbGlzZXIgbCdob3Jsb2dlIHN5c3TobWUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgIsljaGVjIGRlIHNldHRpbWVvZmRheSgpIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBzeXN0ZW0gdGltZTogJWxkID0gJXNcbiIKK21zZ3N0ciAiSGV1cmUgY291cmFudGUgZHUgc3lzdOhtZSA6ICVsZCA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiXHRVVEMgOiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisiUGFzIGQnYWp1c3RlbWVudCBkdSBmYWN0ZXVyIGRlIGTpcml2ZSBwYXJjZSBsJ2hvcmxvZ2UgbWF06XJpZWxsZSBjb250aWVudCAiCisiZOlq4CBkZXMgZG9ubulleiBjb3Jyb21wdWVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgbGFzdCBjYWxpYnJhdGlvbiB0aW1lIGlzIHplcm8sXG4iCisic28gaGlzdG9yeSBpcyBiYWQgYW5kIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciBpcyBuZWNlc3NhcnkuXG4iCittc2dzdHIgIiIKKyJQYXMgZCdhanVzdGVtZW50IGR1IGZhY3RldXIgZGUgZOlyaXZlIHBhcmNlIGxlIGRlcm5pZXIgZGUgdGVtcHMgZGUgIgorImNhbGlicmF0aW9uIGluZGlxdWUgeulyby5cbiIKKyJMJ2hpdG9yaXF1ZSDpdGFudCBlcnJvbukgdW5lIHJlY2FsaWJyYXRpb24gZXN0IG7pY2Vzc2FpcmUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBpdCBoYXMgYmVlbiBsZXNzIHRoYW4gYSBkYXkgc2luY2UgdGhlICIKKyJsYXN0IGNhbGlicmF0aW9uLlxuIgorbXNnc3RyICIiCisiUGFzIGQnYWp1c3RlbWVudCBkdSBmYWN0ZXVyIGRlIGTpcml2ZSBwYXJjZSBxdSdlbGxlIGVzdCBtb2lucyBxdSd1biBqb3VyICIKKyJkZXB1aXMgbGEgZGVybmnocmUgY2FsaWJyYXRpb24uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2xvY2sgZHJpZnRlZCAlLjFmIHNlY29uZHMgaW4gdGhlIHBhc3QgJWQgc2Vjb25kcyBpbiBzcGl0ZSBvZiBhIGRyaWZ0IGZhY3RvciAiCisib2YgJWYgc2Vjb25kcy9kYXkuXG4iCisiQWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBieSAlZiBzZWNvbmRzL2RheVxuIgorbXNnc3RyICIiCisiTCdob3Jsb2dlIGEgZOlyaXbpIGRlICUuMWYgc2Vjb25kZXMgZHVyYW50IGxlcyBkZXJuaehyZXMgJWQgc2Vjb25kZXMgZW4gIgorImTpcGl0IGQndW4gZmFjdGV1ciBkZSBk6XJpdmUgZGUgJWYgc2Vjb25kZXMvam91ci5cbiIKKyJBanVzdGVtZW50IGR1IGZhY3RldXIgZGUgZOlyaXZlIGRlICVmIHNlY29uZGVzL2pvdXJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiTCdoZXVyZSBkZXB1aXMgbGUgZGVybmllciBhanVzdGVtZW50IGVzdCBkZSAlZCBzZWNvbmRlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiIgorIkJlc29pbiBkJ2luc+lyZXIgJWQgc2Vjb25kZXMgZXQgZGUgZmFpcmUgdW5lIHLpZulyZW5jZSBhcnJp6HJlIGRhbnMgbGUgdGVtcHMgIgorImRlICUuNmYgc2Vjb25kZXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIiIKKyJQYXMgZGUgbWlzZSDgIGpvdXIgZHUgZmljaGllciBkZSB0ZW1wcyBkJ2FqdXN0ZW1lbnQgZW4gcmFpc29uIGR1IG1vZGUgdGVzdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIkRldnJhaXQgYXZvaXIg6WNyaXQgY2UgcXVpIHN1aXQgZGFucyAlczpcbiIKKyIlcyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ291bGQgbm90IG9wZW4gZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgaW4gaXQgKCVzKSBmb3IgIgorIndyaXRpbmciCittc2dzdHIgIiIKKyJJbXBvc3NpYmxlIGQnb3V2cmlyIGxlIGZpY2hpZXIgZW4g6WNyaXR1cmUgZW4gYWp1c3RhbnQgbGVzIHBhcmFt6HRyZXMgIgorImQnaGV1cmUgKCVzKSIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwNiBod2Nsb2NrL2h3Y2xvY2suYzoxMDExCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgKCVzKSBpbiBpdCIKK21zZ3N0ciAiIgorIkltcG9zc2libGUgZGUgbWV0dHJlIOAgam91ciBsZSBmaWNoaWVyIGVuIGFqdXN0YW50IGxlcyBwYXJhbeh0cmVzIGQnaGV1cmUgKCUiCisicykiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJBanVzdGVtZW50IGRlcyBwYXJhbeh0cmVzIGRlIGTpcml2ZSBuJ29udCBwYXMg6XTpIG1pcyDgIGpvdXIuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IGFkanVzdCBpdC5cbiIKK21zZ3N0ciAiIgorIkwnaG9ybG9nZSBtYXTpcmllbGxlIG5lIGNvbnRpZW50IHBhcyB1bmUgaGV1cmUgdmFsaWRlLCBvbiBuZSBwZXV0IGwnYWp1c3RlclxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAiIgorIkhldXJlIG5vbiBtb2RpZmnpZSBjYXIgbGUgZGVybmllciB0ZW1wcyBkZSBjYWxpYnJhdGlvbiBlc3QgeulybywgZG9uYyAiCisibWF1dmFpcyBoaXN0b3JpcXVlLiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA4OQorIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkZWQgYWRqdXN0bWVudCBpcyBsZXNzIHRoYW4gb25lIHNlY29uZCwgc28gbm90IHNldHRpbmcgY2xvY2suXG4iCittc2dzdHIgIiIKKyJMJ2FqdXN0ZW1lbnQgcmVxdWlzIGVzdCBpbmbpcmlldXIg4CB1bmUgc2Vjb25kZSwgcGFzIGQnaW5pdGlhbGlzYXRpb24gZGUgIgorImwnaG9ybG9nZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyAlcy5cbiIKK21zZ3N0ciAiVXRpbGlzYW50ICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIkF1Y3VuZSBpbnRlcmZhY2UgZCdob3Jsb2dlIHV0aWxpc2FibGUgbidhIOl06SByZXDpcullLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkltcG9zc2libGUgZCdpbml0aWFsaXNlciBsJ2hvcmxvZ2Ugc3lzdOhtZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBrZWVwcyBhbiBlcG9jaCB2YWx1ZSBmb3IgdGhlIEhhcmR3YXJlIENsb2NrIG9ubHkgb24gYW4gQWxwaGEgIgorIm1hY2hpbmUuXG4iCisiVGhpcyBjb3B5IG9mIGh3Y2xvY2sgd2FzIGJ1aWx0IGZvciBhIG1hY2hpbmUgb3RoZXIgdGhhbiBBbHBoYVxuIgorIihhbmQgdGh1cyBpcyBwcmVzdW1hYmx5IG5vdCBydW5uaW5nIG9uIGFuIEFscGhhIG5vdykuICBObyBhY3Rpb24gdGFrZW4uXG4iCittc2dzdHIgIiIKKyJMZSBrZXJuZWwgY29uc2VydmUgdW5lIHZhbGV1ciBkJ+lwb3F1ZSBwb3VyIGwnaG9ybG9nZSBtYXTpcmllbGxlIHVuaXF1ZW1lbnQgIgorInN1ciB1bmUgbWFjaGluZSBBbHBoYS5cbiIKKyJDZXR0ZSBjb3BpZSBkZSBsJ2hvcmxvZ2UgbWF06XJpZWxsZSBhIOl06SBwcul2dWUgcG91ciB1bmUgYXV0cmUgZCd1biBhdXRyZSAiCisidHlwZSBxdWUgQWxwaGFcbiIKKyIoZXQgcHLpc3Vt6W1lbnQgbmUgdG91cm5hbnQgcGFzIHN1ciB1biBBbHBoYSBtYWludGVuYW50KS4gIEF1Y3VuZSBhY3Rpb24gbidhICIKKyLpdOkgZXjpY3V06WUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGdldCB0aGUgZXBvY2ggdmFsdWUgZnJvbSB0aGUga2VybmVsLlxuIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnb2J0ZW5pciBsYSB2YWxldXIgZCfpcG9xdWUg4CBwYXJ0aXIgZHUga2VybmVsLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAiTGUga2VybmVsIGFzc3VtZSB1bmUgdmFsZXVyIGQn6XBvcXVlIGRlICVsdVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBzZXQgdGhlIGVwb2NoIHZhbHVlLCB5b3UgbXVzdCB1c2UgdGhlICdlcG9jaCcgb3B0aW9uIHRvIHRlbGwgdG8gd2hhdCAiCisidmFsdWUgdG8gc2V0IGl0LlxuIgorbXNnc3RyICIiCisiUG91ciBpbml0aWFsaXNlciBsYSB2YWxldXIgZCfpcG9xdWUsIHZvdXMgZGV2ZXogdXRpbGlzZXIgbCdvcHRpb24gqyBlcG9jaCC7ICIKKyJwb3VyIHkgbWV0dHJlIGxhIHZhbGV1ciB2b3VsdWUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICIiCisiTGEgdmFsZXVyIGQn6XBvcXVlICVkIG4nZXN0IHBhcyB1dGlsaXPpZSBwb3VyIGluaXRpYWxpc2F0aW9uIC0gdGVzdCAiCisic2V1bGVtZW50LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIkltcG9zc2libGUgZCdpbml0aWFsaXNlciBsYSB2YWxldXIgZCfpcG9xdWUgZGFucyBsZSBrZXJuZWwuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyOTAgbWlzYy11dGlscy9jYWwuYzozNDcgbWlzYy11dGlscy9raWxsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZGUgJXNcbiIKKworIyBod2Nsb2NrL2h3Y2xvY2suYzoxMTA4CisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorImh3Y2xvY2sgLSBpbnRlcnJvZ2UgZXQgcG9zaXRpb25uZSBsJ2hvcmxvZ2UgbWF06XJpZWxsZSBSVENcbiIKKyJcbiIKKyJVdGlsaXNhdGlvbiA6IGh3Y2xvY2sgW2ZvbmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGb25jdGlvbnMgOlxuIgorIiAgLS1oZWxwICAgICAgICBhZmZpY2hlciBsJ2FpZGUgbeltb2lyZVxuIgorIiAgLXIgfCAtLXNob3cgICAgICAgIGxpcmUgbCdob3Jsb2dlIGV0IGFmZmljaGVyIGxlcyBy6XN1bHRhdHNcbiIKKyIgIC0tc2V0ICAgICAgICAgculnbGVyIGwnaG9ybG9nZSBSVEMg4CBsJ2hldXJlIGluZGlxdellIHBhciAtLWRhdGVcbiIKKyIgIC1zIHwgLS1oY3Rvc3lzICAgICBy6WdsZXIgbCdoZXVyZSBzeXN06G1lIOAgcGFydGlyIGRlIGwnaG9ybG9nZSAiCisibWF06XJpZWxsZVxuIgorIiAgLXcgfCAtLXN5c3RvaGMgICAgIHLpZ2xlciBsJ2hvcmxvZ2UgbWF06XJpZWxsZSDgIGwnaGV1cmUgY291cmFudGUgZHUgIgorInN5c3TobWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgZml4ZSBsJ2hldXJlIHN5c3TobWUgYmFz6WUgc3VyIGxhIHpvbmUgZGUgdGVtcHMgIgorImNvdXJhbnRlXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgYWp1c3RlIGwnaG9ybG9nZSBSVEMgZW4gdGVuYW50IGNvbXB0ZSBkZSBsYSBk6XJpdmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgc3lzdOltYXRpcXVlIGRlcHVpcyBsZSBkZXJuaWVyIHLpZ2xhZ2VcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICBhZmZpY2hlIGxhIHZhbGV1ciBcImVwb2NoXCIgZHUgbm95YXUgcG91ciBsJ2hvcmxvZ2UgIgorIlJUQ1xuIgorIiAgICAgICAtLXNldGVwb2NoICAgIHBvc2l0aW9ubmUgbGEgdmFsZXVyIFwiZXBvY2hcIiBkdSBub3lhdSBwb3VyIGwnaG9ybG9nZVxuIgorIiAgICAgICAgICAgICAgICAgICAgIFJUQyDgIGxhIHZhbGV1ciBkb25u6WUgcGFyIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICBhZmZpY2hlIGxlIG51belybyBkZSB2ZXJzaW9uIGRlIGh3Y2xvY2tcbiIKKyJcbiIKKyJPcHRpb25zIDogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgbCdob3Jsb2dlIFJUQyBlc3QgY29uc2VydullIGF1IGZvcm1hdCB1bml2ZXJzZWwgVVRDXG4iCisiICAgICAgLS1sb2NhbHRpbWUgICBsJ2hvcmxvZ2UgUlRDIGVzdCBjb25zZXJ26WUgYXUgZm9ybWF0IGxvY2FsXG4iCisiIC1mIHwgLS1ydGM9Y2hlbWluICB1dGlsaXNlciBsZSBw6XJpcGguIHNw6WNpYWwgL2Rldi8uLi4gYXUgbGlldSBkdSBk6WZhdXRcbiIKKyIgICAgICAtLWRpcmVjdGlzYSAgIGFjY+lkZXIgYXUgYnVzIElTQSBkaXJlY3RlbWVudCBhdSBsaWV1IGRlICVzXG4iCisiICAgICAgLS1iYWR5ZWFyICAgICBpZ25vcmVyIGwnYW5u6WUgZG9ubullIHBhciBsYSBSVEMgKEJpb3MgbWFsIHLpZ2zpKVxuIgorIiAgICAgIC0tZGF0ZSAgICAgICAgc3DpY2lmaWVyIGwnaGV1cmUgcG91ciBy6WdsZXIgbCdob3Jsb2dlIG1hdOlyaWVsbGVcbiIKKyIgICAgICAtLWVwb2NoPWFubullICBzcOljaWZpZXIgbCdhbm7pZSBjb3JyZXNwb25kYW50IOAgbGEgdmFsZXVyIFxuIgorIiAgICAgICAgICAgICAgICBkZSBk6XBhcnQgXCJlcG9jaFwiIGRlIGwnaG9ybG9nZSBtYXTpcmllbGxlXG4iCisiICAgICAgLS1ub2FkamZpbGUgICBuZSBwYXMgYWNj6WRlciDgIC9ldGMvYWRqdGltZS4gUmVxdWllcnQgbCd1dGlsaXNhdGlvblxuIgorIiAgICAgICAgICAgICAgICBkZSAtLXV0YyBvdSBiaWVuIC0tbG9jYWx0aW1lXG4iCisiICAgICAgLS1hZGpmaWxlPWNoZW1pbiBzcOljaWZpZSBsZSBjaGVtaW4gZHUgZmljaGllciBkZSBy6WdsYWdlXG4iCisiICAgICAgICAgICAgICAgICAocGFyIGTpZmF1dCAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgLS10ZXN0ICAgICAgICAgICBleOljdXRlIGxlIHRvdXQgc2FucyBtb2RpZmllciBsJ2hvcmxvZ2UgUlRDIG91XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgYXV0cmVcbiIKKyIgIC1EIHwgLS1kZWJ1ZyAgICAgICAgbW9kZSBk6WJvZ2FnZVxuIgorIlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisiXG4iCittc2dzdHIgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIGluZGlxdWUg4CBcImh3Y2xvY2tcIiBsZSB0eXBlIGQnYWxwaGEgdXRpbGlz6SAodm9pciBod2Nsb2NrKDgpKVxuIgorIlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNDMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gY29ubmVjdCB0byBhdWRpdCBzeXN0ZW1cbiIKK21zZ3N0ciAiJXM6IGltcG9zc2libGUgZGUgc2UgY29ubmVjdGVyIGF1IHN5c3TobWUgZCdhdWRpdFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHRha2VzIG5vIG5vbi1vcHRpb24gYXJndW1lbnRzLiAgWW91IHN1cHBsaWVkICVkLlxuIgorbXNnc3RyICIiCisiJXMgbmUgcGV1dCBwYXMgcHJlbmRyZSBkZXMgYXJndW1lbnRzIGQnb3B0aW9ucyBxdWkgbidlbiBzb250IHBhcy4gVm91cyBhdmV6ICIKKyJmb3VybmkgJWQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlIHNwZWNpZmllZCBtdWx0aXBsZSBmdW5jdGlvbnMuXG4iCisiWW91IGNhbiBvbmx5IHBlcmZvcm0gb25lIGZ1bmN0aW9uIGF0IGEgdGltZS5cbiIKK21zZ3N0ciAiIgorIlZvdXMgYXZleiBzcOljaWbpIGRlIG11bHRpcGxlcyBvcHRpb25zIGRlIGZvbmN0aW9ucy5cbiIKKyJWb3VzIG5lIHBvdXZleiBxdSdlbiBleOljdXRlciB1bmUg4CBsYSBmb2lzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tdXRjIGFuZCAtLWxvY2FsdGltZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3Ugc3BlY2lmaWVkICIKKyJib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IGxlcyBvcHRpb25zIC0tdXRjIGV0IC0tbG9jYWx0aW1lIHNvbnQgbXV0dWVsbGVtZW50IGV4Y2x1c2l2ZXMuIFZvdXMgYXZleiAiCisic291bWlzIGxlcyBkZXV4LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IGxlcyBvcHRpb25zIC0tYWRqdXN0IGV0IC0tbm9hZGpmaWxlIHNvbnQgbXV0dWVsbGVtZW50IGV4Y2x1c2l2ZXMuIFZvdXMgIgorImF2ZXogc291bWlzIGxlcyBkZXV4LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqZmlsZSBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBsZXMgb3B0aW9ucyAtLWFkamZpbGUgZXQgLS1ub2FkamZpbGUgc29udCBtdXR1ZWxsZW1lbnQgZXhjbHVzaXZlcy4gVm91cyAiCisiYXZleiBzcOljaWZp6SBsZXMgZGV1eC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU4OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2l0aCAtLW5vYWRqZmlsZSwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKK21zZ3N0ciAiJXM6IGF2ZWMgLS1ub2FkamZpbGUsIHZvdXMgZGV2ZXogc3DpY2lmaWVyIHNvaXQgLS11dGMgb3UgLS1sb2NhbHRpbWVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYwMgorIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgc2V0LXRvIHRpbWUuICBDYW5ub3Qgc2V0IGNsb2NrLlxuIgorbXNnc3RyICIiCisiUGFzIHV0aWxpc2FibGUgcG91ciBpbml0aWFsaXNlciBsJ2hldXJlLiAgTmUgcGV1dCBpbml0aWFsaXNlciBsJ2hvcmxvZ2UuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jay5cbiIKK21zZ3N0ciAiROlzb2zpLCBzZXVsIGxlIHN1cGVyIHVzYWdlciBwZXV0IG1vZGlmaWVyIGwnaG9ybG9nZSBtYXTpcmllbGxlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgU3lzdGVtIENsb2NrLlxuIgorbXNnc3RyICJE6XNvbOksIHNldWwgbGUgc3VwZXIgdXNhZ2VyIHBldXQgbW9kaWZpZXIgbCdob3Jsb2dlIHN5c3TobWUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2sgZXBvY2ggaW4gdGhlICIKKyJrZXJuZWwuXG4iCittc2dzdHIgIiIKKyJE6XNvbGUsIHNldWwgbGUgc3VwZXIgdXNhZ2VyIHBldXQgbW9kaWZpZXIgbCfpcG9xdWUgZGUgbCdob3Jsb2dlIG1hdOlyaWVsbGUgIgorImRhbnMgbGUga2VybmVsLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBhY2Nlc3MgdGhlIEhhcmR3YXJlIENsb2NrIHZpYSBhbnkga25vd24gbWV0aG9kLlxuIgorbXNnc3RyICIiCisiTmUgcGV1dCBhY2PpZGVyIGwnaG9ybG9nZSBtYXTpcmllbGxlIHBhciBsZSBiaWFpcyBkJ3VuZSBt6XRob2RlIGNvbm51ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIiIKKyJVdGlsaXNlciBsJ29wdGlvbiAtLWRlYnVnIHBvdXIgdm9pciBsZXMgZOl0YWlscyBkZSBsYSByZWNoZXJjaGUgZCd1bmUgIgorIm3pdGhvZGUgY29ubnVlLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gS0RHSFdDTEsgdG8gY2hhbmdlXG4iCittc2dzdHIgIkF0dGVudGUgZGFucyBsYSBib3VjbGUgZCdvYnRlbnRpb24gZCd1biBjaGFuZ2VtZW50IGRlcHVpcyBLREdIV0NMS1xuIgorCisjOiBod2Nsb2NrL2tkLmM6NTcKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIgorbXNnc3RyICLJY2hlYyBkZSBLREdIV0NMSyBpb2N0bCBwb3VyIGxhIGxlY3R1cmUgZGUgbCdoZXVyZSIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICJLREdIV0NMSyBpb2N0bCBwb3VyIGxhIGxlY3R1cmUgZGUgbCdoZXVyZSBhIOljaG916SBkYW5zIHVuZSBib3VjbGUiCisKKyM6IGh3Y2xvY2sva2QuYzo4MiBod2Nsb2NrL3J0Yy5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iCittc2dzdHIgIiIKKyJFeHBpcmF0aW9uIGRlIGxhIG1pbnV0ZXJpZSBsb3JzIGRlIGwnYXR0ZW50ZSBkdSBjaGFuZ2VtZW50IGRlIGwnaGV1cmUuXG4iCisKKyM6IGh3Y2xvY2sva2QuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSBmYWlsZWQgdG8gcmVhZCB0aW1lIGZyb20gJXMiCittc2dzdHIgIsljaGVjIGRlIGlvY3RsKCkgbG9ycyBkZSBsYSBsZWN0dXJlIGRlIGwnaGV1cmUgZGVwdWlzICVzIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICLJY2hlYyBkZSBpb2N0bCBLRFNIV0NMSyIKKworIzogaHdjbG9jay9rZC5jOjE3NgorbXNnaWQgIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIKK21zZ3N0ciAiTmUgcGV1dCBvdXZyaXIgL2Rldi90dHkxIG91IC9kZXYvdmMvMSIKKworIzogaHdjbG9jay9rZC5jOjE4MAorbXNnaWQgIktER0hXQ0xLIGlvY3RsIGZhaWxlZCIKK21zZ3N0ciAiyWNoZWMgZGUgS0RHSFdDTEsgaW9jdGwiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgIsljaGVjIGRlIG9wZW4oKSBkZSAlcyIKKworIzogaHdjbG9jay9ydGMuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAiyWNoZWMgaW9jdGwoKSB2ZXJzICVzIGxvcnMgZGUgbGEgbGVjdHVyZSBkZSBsJ2hldXJlXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tICVzIHRvIGNoYW5nZVxuIgorbXNnc3RyICJBdHRlbnRlIGRhbnMgdW4gYm91Y2xlIHBvdXIgcXVlIGxlIHRlbXBzICVzIHNlIG1vZGlmaWVcbiIKKworIzogaHdjbG9jay9ydGMuYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZG9lcyBub3QgaGF2ZSBpbnRlcnJ1cHQgZnVuY3Rpb25zLiAiCittc2dzdHIgIiVzIG4nYSBwYXMgZGUgZm9uY3Rpb24gZCdpbnRlcnJ1cHRpb24iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAiyWNoZWMgZGUgcmVhZCgpIGRlICVzIGR1cmFudCBsJ2F0dGVudGUgZCd1biB0aWMgZCdob3Jsb2dlIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAic2VsZWN0KCkgZGUgJXMgZW4gYXR0ZW50ZSBkJ3VuIHRpYyBkJ2hvcmxvZ2UgYSDpY2hvdekiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgdGltZWQgb3V0XG4iCittc2dzdHIgIiIKKyJzZWxlY3QoKSBkZSAlcyBkb250IGwnYXR0ZW50ZSBkJ3VuIHRpYyBkJ2hvcmxvZ2UgYSBleHBpcukgbGUgZOlsYWkgZGUgbGEgIgorIm1pbnV0ZXJpZVxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAiIgorImlvY3RsKCkgZGUgJXMgYSDpY2hvdekgZHVyYW50IGwnYXJy6nQgZGVzIG1pc2VzIOAgam91ciBwYXIgaW50ZXJydXB0aW9uIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAiIgorImlvY3RsKCkgZGUgJXMgYSDpY2hvdekgcG91ciBwZXJtZXR0cmUgbGVzIG1pc2VzIOAgam91ciBwYXIgaW50ZXJydXB0aW9uIGRlICIKKyJmYedvbiBpbmF0dGVuZHVlIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImlvY3RsKCkgZGUgJXMgYSDpY2hvdekgbG9ycyBkZSBsJ2luaXRpYWxpc2F0aW9uIGRlIGwnaGV1cmUuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiaW9jdGwoJXMpIGEgcul1c3NpLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcGVuIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiT3V2ZXJ0dXJlIGRlICVzIGEg6WNob3XpIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxMCBod2Nsb2NrL3J0Yy5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gbWFuaXB1bGF0ZSB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbCwgd2UgbXVzdCBhY2Nlc3MgdGhlIExpbnV4ICdydGMnICIKKyJkZXZpY2UgZHJpdmVyIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwgZmlsZSAlcy4gIFRoaXMgZmlsZSBkb2VzIG5vdCBleGlzdCBvbiAiCisidGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKyJQb3VyIG1hbmlwdWxlciBsYSB2YWxldXIgZGUgbCfpcG9xdWUgZGFucyBsZSBrZXJuZWwsIHZvdXMgZGV2ZXogYWNj6WRlciBsZSAiCisicGlsb3RlIExpbnV4IGR1IHDpcmlwaOlyaXF1ZSAncnRjLiBwYXIgbGUgYmlhaXMgZHUgZmljaGllciBzcOljaWFsICVzLiBDZSAiCisiZmljaGllciBuJ2V4aXN0ZSBwYXMgc3VyIGNlIHN5c3TobWUuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDE1IGh3Y2xvY2svcnRjLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnb3V2cmlyICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgZGUgJXMgYSDpY2hvdekiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIndlIGhhdmUgcmVhZCBlcG9jaCAlbGQgZnJvbSAlcyB3aXRoIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorbXNnc3RyICIiCisibCfpcG9xdWUgJWxkIGEg6XTpIGx1IOAgcGFydGlyIGRlICVzIOAgbCdhaWRlIGRlIFJUQ19FUE9DSF9SRUFEIGlvY3RsKCkuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlcG9jaCB2YWx1ZSBtYXkgbm90IGJlIGxlc3MgdGhhbiAxOTAwLiAgWW91IHJlcXVlc3RlZCAlbGRcbiIKK21zZ3N0ciAiIgorIkxhIHZhbGV1ciBkZSBsJ+lwb3F1ZSBuZSBwZXV0IHBhcyDqdHJlIHBsdXMgcGV0aXRlIHF1ZSAxOTAwLiBWb3VzIGF2ZXogIgorImRlbWFuZOkgJWxkXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNldHRpbmcgZXBvY2ggdG8gJWxkIHdpdGggUlRDX0VQT0NIX1NFVCBpb2N0bCB0byAlcy5cbiIKK21zZ3N0ciAiIgorImluaXRpbGlzYXRpb24gZGUgbCfpcG9xdWUg4CAlbGQg4CBsJ2FpZGUgZGUgUlRDX0VQT0NIX1NFVCBpb2N0bCB2ZXJzICVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyBkb2VzIG5vdCBoYXZlIHRoZSBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorbXNnc3RyICIiCisiTGUgcGlsb3RlIGR1IHDpcmlwaOlyaXF1ZSBkYW5zIGxlIGtlcm5lbCBwb3VyICVzIG4nYSBwYXMgZGUgZm9uY3Rpb24gIgorIlJUQ19FUE9DSF9TRVQgaW9jdGwoKS5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICLJY2hlYyBkZSBpb2N0bChSVENfRVBPQ0hfU0VUKSB2ZXJzICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIgorbXNnc3RyICIlczogbmUgcGV1dCBleOljdXRlciAlczogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM4MworbXNnaWQgImNhbid0IG1hbGxvYyBpbml0c3RyaW5nIgorbXNnc3RyICJuZSBwZXV0IGV46WN1dGVyIG1hbGxvYygpIHBvdXIgbGEgY2hh7m5lIGQnaW5pdGlhbGlzYXRpb24iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgdGltZW91dCB2YWx1ZTogJXMiCittc2dzdHIgInZhbGV1ciBlcnJvbullIGQnZXhwaXJhdGlvbiBkZSBsYSBtaW51dGVyaWU6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHNwZWVkOiAlcyIKK21zZ3N0ciAidml0ZXNzZSBlcnJvbullOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI3Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAidHJvcCBkZSB2aXRlc3NlcyBhbHRlcm5hdGl2ZXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIi9kZXY6IGNoZGlyKCkgYSDpY2hvdek6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogbm90IGEgY2hhcmFjdGVyIGRldmljZSIKK21zZ3N0ciAiL2Rldi8lczogbidlc3QgcGFzIHDpcmlwaOlyaXF1ZSBwb3VyIGNhcmFjdOhyZXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY0MgorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBjYW5ub3Qgb3BlbiBhcyBzdGFuZGFyZCBpbnB1dDogJW0iCittc2dzdHIgIi9kZXYvJXM6IG5lIHBldXQgb3V2cmlyIGVuIHRhbnQgcXUnZW50cullcyBzdGFuZGFyZDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiCittc2dzdHIgIiVzOiBuLGVzdCBwYXMgb3V2ZXJ0IHBvdXIgbGVjdHVyZS/pY3JpdHVyZSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkdXAgcHJvYmxlbTogJW0iCittc2dzdHIgIiVzOiBwcm9ibOhtZSBhdmVjIGR1cDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICJ1c2FnZXIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VycyIKK21zZ3N0ciAidXNhZ2VycyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTAzMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZDogJW0iCittc2dzdHIgIiVzOiBsdTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlucHV0IG92ZXJydW4iCittc2dzdHIgIiVzOiBk6XBhc3NlbWVudCBkdSB0YW1wb24gZCdlbnRy6WUiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiVXRpbGlzYXRpb24gOiAlcyBbLThoaUxtVXddIFstbCBwcm9ncmFtbWVfbG9naW5dIFstdCBleHBpcmF0aW9uXSBbLUkgIgorImNoYe5uZV9pbml0XSBbLUggaPR0ZV9sb2dpbl0gdml0ZXNzZV9iYXVkcywuLi4gbGlnbmUgW3R5cGVfdGVybWluYWxdXG4iCisib3JcdFstaGlMbXddIFstbCBwcm9ncmFtbWVfbG9naW5dIFstdCBleHBpcmF0aW9uXSBbLUkgY2hh7m5lX2luaXRdIFstSCAiCisiaPR0ZV9sb2dpbl0gbGlnbmUgdml0ZXNzZV9iYXVkcywuLi4gW3R5cGVfdGVybWluYWxdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImxvZ2luOiBiYXMgZW4gZXNwYWNlIG3pbW9pcmUsIGxvZ2luIHBldXQg6WNob3VlclxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAibmUgcGV1dCBleOljdXRlciBtYWxsb2MoKSBwb3VyIHR0eWNsYXNzIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMworbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIKK21zZ3N0ciAibmUgcGV1dCBleOljdXRlciBtYWxsb2MoKSBwb3VyIGdycGxpc3QiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkIGJ5IGRlZmF1bHQuXG4iCittc2dzdHIgIkxvZ2luIHN1ciAlcyBkZSAlcyBuJ2VzdCBwYXMgcGVybWlzIHBhciBk6WZhdXQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICJMb2dpbiBzdXIgJXMgZGUgJXMgbidlc3QgcGFzIHBlcm1pcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjEzMyBsb2dpbi11dGlscy9jaHNoLmM6MTE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB5b3UgKHVzZXIgJWQpIGRvbid0IGV4aXN0LlxuIgorbXNnc3RyICIlczogdm91cyAodXNhZ2VyICVkKSBuJ2V4aXN0ZXogcGFzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogdXNhZ2VyIKsgJXMguyBuJ2V4aXN0ZSBwYXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiIKKyIlczogb24gbmUgcGV1dCBjaGFuZ2VyIHF1ZSBsZXMgZW50cullcyBsb2NhbGVzOyB1dGlsaXNlciB5cCVzIOAgbGEgcGxhY2UuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICJjb250ZXh0ZSB1c2FnZXIgaW5jb25udSIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIiCisiJXM6ICVzIG4nYSBwYXMgbCdhdXRvcmlzYXRpb24gcG91ciBtb2RpZmllciBsZXMgaW5mb3MgZGUgZmluZ2VyIGRlICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiVzOiBuZSBwZXV0IGluaXRpYWxpc2VyIGxlIGNvbnRleHRlIHBhciBk6WZhdXQgcG91ciAvZXRjL3Bhc3N3ZCIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBmaW5nZXIgaW5mb3JtYXRpb24gZm9yICVzLlxuIgorbXNnc3RyICJNb2RpZmljYXRpb24gZGUgbCdpbmZvcm1hdGlvbiBkZSBmaW5nZXIgcG91ciAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBQQU0gZmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCittc2dzdHIgIiVzOiDpY2hlYyBkZSBsb2dpbiBQQU0sIGZpbiBkJ2V46WN1dGlvbiA6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTIgbG9naW4tdXRpbHMvY2hzaC5jOjIxMSBsb2dpbi11dGlscy9sb2dpbi5jOjgyNworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6NzkgbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0MCBtb3VudC9sb21vdW50LmM6NzQyCisjOiBtb3VudC9sb21vdW50LmM6NzQ1Cittc2dpZCAiUGFzc3dvcmQ6ICIKK21zZ3N0ciAiTW90IGRlIHBhc3NlOiAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTUgbG9naW4tdXRpbHMvY2hzaC5jOjIxNAorbXNnaWQgIkluY29ycmVjdCBwYXNzd29yZC4iCittc2dzdHIgIk1vdCBkZSBwYXNzZSBpbmNvcnJlY3QuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiTCdpbmZvcm1hdGlvbiBkZSBmaW5nZXIgbidhIHBhcyBjaGFuZ+kuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIlV0aWxpc2F0aW9uIDogJXMgWyAtZiBub20tY29tcGxldCBdIFsgLW8gYnVyZWF1IF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJbIC1wIG9mZmljZS1waG9uZSBdXG4iCisiXHRbIC1oIGhvbWUtcGhvbmUgXSAiCittc2dzdHIgIiIKKyJbIC1wIG5vLXTpbOlwaG9uZS1hdS1idXJlYXUgXVxuIgorIlx0WyAtaCBuby106WzpcGhvbmUt4C1sYS1tYWlzb24gXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICJCdXJlYXUiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIlTpbOlwaG9uZSBidXJlYXUiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozODAKK21zZ2lkICJIb21lIFBob25lIgorbXNnc3RyICJU6WzpcGhvbmUgZG9taWNpbGUiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkFiYW5kb24uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmllbGQgaXMgdG9vIGxvbmcuXG4iCittc2dzdHIgImxlIGNoYW1wIGVzdCB0cm9wIGxvbmcuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiqyAlYyC7IG4nZXN0IHBhcyBwZXJtaXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiQ2FyYWN06HJlcyBkZSBjb250cvRsZSBuZSBzb250IHBhcyBwZXJtaXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIiIKKyJMJ2luZm9ybWF0aW9uIGRlIGZpbmdlciAqTidBIFBBUyogY2hhbmfpLiBFc3NheWVyIOAgbm91dmVhdSBwbHVzIHRhcmQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIGNoYW5nZWQuXG4iCittc2dzdHIgIkwnaW5mb3JtYXRpb24gZGUgZmluZ2VyIGEgY2hhbmfpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBuJ2EgcGFzIGwnYXV0b3Jpc2F0aW9uIHBvdXIgbW9kaWZpZXIgbGUgc2hlbGwgZGUgJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogZXjpY3V06SBlbiBVSUQgbmUgY29uY29yZGUgcGFzIGF2ZWMgbGUgVUlEIGRlIGwndXNhZ2VyIHF1ZSBsJ29uIGFsdOhyZSwgIgorIm1vZGlmaWNhdGlvbiBkZSBzaGFsbCByZWZ1c+llXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogdm90cmUgc2hlbGwgbidlc3QgcGFzIGRhbnMgL2V0Yy9zaGVsbHMsIG1vZGlmaWNhdGlvbiBkZSBzaGVsbCBpbnRlcmRpdGVcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBzaGVsbCBmb3IgJXMuXG4iCittc2dzdHIgIk1vZGlmaWNhdGlvbiBkdSBzaGVsbCBwb3VyICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJOb3V2ZWF1IHNoZWxsIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJTaGVsbCBuJ2EgcGFzIOl06SBjaGFuZ+kuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiU2hlbGwgKk4nQSBQQVMqIGNoYW5n6S4gIEVzc2F5ZXIgcGx1cyB0YXJkLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIGNoYW5nZWQuXG4iCittc2dzdHIgIlNoZWxsIGEgY2hhbmfpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIlV0aWxpc2F0aW9uIDogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIG5vbS11c2FnZXIgXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiBzaGVsbCBkb2l0IHV0aWxpc2VyIGxlIG5vbSBkdSBjaGVtaW4gZCdhY2PocyBjb21wbGV0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiCrICVzILsgbidleGlzdGUgcGFzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGV4ZWN1dGFibGUuXG4iCittc2dzdHIgIiVzOiCrICVzILsgbidlc3QgcGFzIGV46WN1dGFibGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiVzOiCrICVjILsgbidlc3QgcGFzIHBlcm1pcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6IGxlcyBjYXJhY3TocmVzIGRlIGNvbnRy9GxlIG5lIHNvbnQgcGFyIHBlcm1pcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NSBsb2dpbi11dGlscy9jaHNoLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICJBVkVSVElTU0VNRU5UOiCrICVzILsgbidhcHBhcmHudCBwYXMgZGFucyAvZXRjL3NoZWxscy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiVzOiCrICVzILsgbidhcHBhcmHudCBwYXMgZGFucyAvZXRjL3NoZWxscy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IHV0aWxpc2VyIGwnb3B0aW9uIC1sIG9wdGlvbiBwb3VyIHZvaXIgbGEgbGlzdGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNlICVzIC1sIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICJVdGlsaXNlciAlcyAtbCBwb3VyIGFmZmljaGVyIGxhIGxpc3RlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGtub3duIHNoZWxscy5cbiIKK21zZ3N0ciAiQXVjdW4gc2hlbGwgY29ubnUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2lzbG9jYWwuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZywgZXhpdGluZy4iCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgJXMgZW4gbGVjdHVyZSwgZmluIGQnZXjpY3V0aW9uLiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICIiCisiVXRpbGlzYXRpb24gOiBsYXN0IFstI10gWy1mIGZpY2hpZXJdIFstdCB0dHldIFstaCBub20tZGUtbCdo9HRlXSAiCisiW3VzYWdlciAuLi5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozMDIKK21zZ2lkICIgIHN0aWxsIGxvZ2dlZCBpbiIKK21zZ3N0ciAiICBlbmNvcmUgbG9nZ+kgYXUgc3lzdOhtZSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wIGTpYnV0ZSAlcyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjM4MCBsb2dpbi11dGlscy9sYXN0LmM6Mzk4IGxvZ2luLXV0aWxzL2xhc3QuYzo0NDkKK21zZ2lkICJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIKK21zZ3N0ciAibGFzdDog6WNoZWMgZGUgbWFsbG9jKCkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0MjUKK21zZ2lkICJsYXN0OiBnZXRob3N0bmFtZSIKK21zZ3N0ciAibGFzdDogb2J0ZW50aW9uIGR1IG5vbSBkZSBsJ2j0dGUiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImludGVycnVwdGVkICUxMC4xMHMgJTUuNXMgXG4iCittc2dzdHIgIiIKKyJcbiIKKyJpbnRlcnJ1cHRpb24gJTEwLjEwcyAlNS41cyBcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6IGNhbid0IHJlb3BlbiB0dHk6ICVzIgorbXNnc3RyICJFcnJldXIgZmF0YWxlOiBuZSBwZXV0IHLpb3V2cmlyIHR0eTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogJXMgaXMgbm90IGEgdGVybWluYWwiCittc2dzdHIgIiVzIG4nZXN0IHBhcyB1bmUgbGlnbmUgc+lyaWUiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjM4Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgIkVycmV1ciBmYXRhbGU6IHR0eSBlcnJvbukiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICJsb2dpbjogLWggcG91ciBsZSBzdXBlciB1c2FnZXIgc2V1bGVtZW50LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ4OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9naW4gWy1mcF0gW3VzZXJuYW1lXVxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6IGxvZ2luIFstZnBdIFtub20tZC11c2FnZXJdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiTmUgcGV1dCBpbml0aWFsaXNlciBQQU06ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgImxvZ2luOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIslDSEVDIERFIExPR0lOICVkIMAgUEFSVElSIERFICVzIFBPVVIgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTG9naW4gaW5jb3JyZWN0XG4iCisiXG4iCittc2dzdHIgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIlRST1AgREUgVEVOVEFUSVZFUyBERSBMT0dJTiAoJWQpIERFICVzIFBPVVIgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIslDSEVDIERFIExPR0lOIFBPVVIgVU5FIFNFU1NJT04gREUgJXMgUE9VUiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxvZ2luIGluY29ycmVjdFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlByb2Js6G1lIGQnaW5pdGlhbGlzYXRpb24gZGUgbGEgc2Vzc2lvbiwgYWJhbmRvbi5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiTm9tIGQndXNhZ2VyIG51bGwgZGFucyAlczolZC4gQWJhbmRvbi4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdXNlciBuYW1lIFwiJXNcIiBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICJOb20gZCd1c2FnZXIgaW52YWxpZGUgqyAlcyC7IGRhbnMgJXM6JWQuIEFiYW5kb24uIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJsb2dpbjogbeltb2lyZSDpcHVpc+llXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzYxCittc2dpZCAiSWxsZWdhbCB1c2VybmFtZSIKK21zZ3N0ciAiTm9tIGQndXNhZ2VyIGlsbOlnYWwiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvZ2luIHJlZnVzZWQgb24gdGhpcyB0ZXJtaW5hbC5cbiIKK21zZ3N0ciAiJXMgbG9naW4gcmVmdXPpIHN1ciBjZSB0ZXJtaW5hbC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiTE9HSU4gJXMgUkVGVVPJIERFICVzIFNVUiBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgT04gVFRZICVzIgorbXNnc3RyICJMT0dJTiAlcyBSRUZVU8kgU1VSIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIkxvZ2luIGluY29ycmVjdFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRElBTFVQIEFUICVzIEJZICVzIgorbXNnc3RyICJBUFBFTCDgICVzIGZhaXQgcGFyICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIgorbXNnc3RyICJST09UIExPR0lOIERFICVzIMAgUEFSVElSIERFICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyIKK21zZ3N0ciAiUk9PVCBMT0dJTiBTVVIgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwNQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyBGUk9NICVzIgorbXNnc3RyICJMT0dJTiBTVVIgJXMgUEFSICVzIMAgUEFSVElSIERFICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIkxPR0lOIFNVUiAlcyBQQVIgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEyOQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBuZXcgbWFpbC5cbiIKK21zZ3N0ciAiVm91cyBhdmV6IGR1IGNvdXJyaWVyLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAiVm91cyBhdmV6IGR1IGNvdXJyaWVyLlxuIgorCisjIGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA4N3RvbyBtYW55IGJhcmUgbGluZWZlZWRzLlxuIgorIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjog6WNoZWMgZCfpdGFibGlzc2VtZW50IGRlIHJlbGFpcyBwYXIgZm9yaygpOiAlcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyMgorIywgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiyWNoZWQgZGUgVElPQ1NDVFRZOiAlbSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjI4Cittc2dpZCAic2V0dWlkKCkgZmFpbGVkIgorbXNnc3RyICLpY2hlYyBkZSBzZXR1aWQoKSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGRpcmVjdG9yeSAlcyFcbiIKK21zZ3N0ciAiUGFzIGRlIHLpcGVydG9pcmUgJXMhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dnaW5nIGluIHdpdGggaG9tZSA9IFwiL1wiLlxuIgorbXNnc3RyICJMb2dpbiBhdmVjIHVuIHLpcGVydG9pcmUgaG9tZSA9IKsgLyC7LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICJsb2dpbjogbeltb2lyZSDpcHVpc+llIHBvdXIgbGUgc2NyaXB0IGR1IHNoZWxsLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGNvdWxkbid0IGV4ZWMgc2hlbGwgc2NyaXB0OiAlcy5cbiIKK21zZ3N0ciAibG9naW46IG5lIHBldXQgZXjpY3V0ZXIgbGUgc2NyaXB0IGR1IHNoZWxsOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBwYXMgZGUgc2hlbGw6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyIlcyBsb2dpbjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJub20gZHUgY29tcHRlIHVzYWdlciBsb2dpbiB0cm9wIGxvbmcuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMworbXNnaWQgIk5BTUUgdG9vIGxvbmciCittc2dzdHIgIk5PTSB0cm9wIGxvbmciCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMxMAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lcyBtYXkgbm90IHN0YXJ0IHdpdGggJy0nLlxuIgorbXNnc3RyICJub21zIGRlIGxvZ2luIG5lIHBldXZlbnQgZOlidXRlciBhdmVjIKsgLSC7LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgInRyb3AgZGUgc2F1dHMgZGUgcGFnZSAobGluZWZlZWRzKVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjEKK21zZ2lkICJFWENFU1NJVkUgbGluZWZlZWRzIgorbXNnc3RyICJOb21icmUgZXNjZXNzaWYgZGUgc2F1dHMgZGUgcGFnZSAobGluZWZlZWRzKSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIHRpbWVkIG91dCBhZnRlciAlZCBzZWNvbmRzXG4iCittc2dzdHIgIkV4cGlyYXRpb24gZHUgZOlsYWkgZGUgZ3LiY2UgbG9ycyBkdSBsb2dpbiBhcHLocyAlZCBzZWNvbmRlc1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBsb2dpbjogJS4qcyAiCittc2dzdHIgIkRlcm5pZXIgbG9naW46ICUuKnMgIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnJvbSAlLipzXG4iCittc2dzdHIgIuAgcGFydGlyIGRlICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAic3VyICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIsljaGVjIGRlIGxvZ2luIOAgcGFydGlyIGRlICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICLJY2hlYyBkZSBsb2dpbiDgIHBhcnRpciBkZSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBGUk9NICVzLCAlcyIKK21zZ3N0ciAiJWQgbG9naW4gZW4g6WNoZWMg4CBwYXJ0aXIgZGUgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICIlZCBsb2dpbiBlbiDpY2hlYyBzdXIgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICJlc3QgeVxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgblxuIgorbXNnc3RyICJlc3QgblxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBtZXNnIFt5IHwgbl1cbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiBtZXNnIFt5IHwgbl1cbiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAibmV3Z3JwOiBRdWkg6nRlcy12b3VzPyIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTA3IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyMQorbXNnaWQgIm5ld2dycDogc2V0Z2lkIgorbXNnc3RyICJuZXdncnA6IHNldGdpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIm5ld2dycDogcGFzIGRlIHRlbCBncm91cGUuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMjUKK21zZ2lkICJuZXdncnA6IFBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJuZXdncnA6IHBlcm1pc3Npb24gcmVmdXPpZSIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTMyCittc2dpZCAibmV3Z3JwOiBzZXR1aWQiCittc2dzdHIgIm5ld2dycDogc2V0dWlkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzgKK21zZ2lkICJObyBzaGVsbCIKK21zZ3N0ciAiUGFzIGRlIHNoZWxsIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW5zXVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjEzNAorbXNnaWQgIlNodXRkb3duIHByb2Nlc3MgYWJvcnRlZCIKK21zZ3N0ciAiUHJvY2Vzc3VzIGQnYXJy6nQgYXZvcnTpIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiVzOiBzZXVsIGxlIHN1cGVyIHVzYWdlciBwZXV0IGFycup0ZXIgdW4gc3lzdOhtZS5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIkNlIGRvaXQg6nRyZSBkZW1haW4sIG5lIHBvdXZlei12b3VzIHBhcyBhdHRlbmRyZSBqdXNxdWUgbOA/XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzEwCittc2dpZCAiZm9yIG1haW50ZW5hbmNlOyBib3VuY2UsIGJvdW5jZSIKK21zZ3N0ciAicG91ciBsJ2VudHJldGllbjsgcmVib25kaXQsIHJlYm9uZGl0IChpZSBib3VuY2UpIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMzOQorbXNnaWQgIlRoZSBzeXN0ZW0gaXMgYmVpbmcgc2h1dCBkb3duIHdpdGhpbiA1IG1pbnV0ZXMiCittc2dzdHIgIkxlIHN5c3TobWUgc2VyYSBhcnLqdGUgZCdpY2kgNSBtaW51dGVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM0MworbXNnaWQgIkxvZ2luIGlzIHRoZXJlZm9yZSBwcm9oaWJpdGVkLiIKK21zZ3N0ciAiTGVzIGxvZ2lucyBzb250IHBhciBjb25z6XF1ZW50IGludGVyZGl0cy4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY1CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYm9vdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiculhbW9y5+kgcGFyICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAic3RvcHDpIHBhciAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDMyCittc2dpZCAiIgorIlxuIgorIldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iCittc2dzdHIgIiIKKyJcbiIKKyJQb3VycXVvaSBzdWlzLWplIGVuY29yZSBhY3RpZiBhcHLocyB1biBy6WFtb3LnYWdlPyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisiTWFpbnRlbmFudCB2b3VzIHBvdXZleiDpdGVpbmRyZSBsJ2FsaW1lbnRhdGlvbiDpbGVjdHJpcXVlLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGtlcm5lbCBwb3dlci1vZmYgZmFjaWxpdHkuLi5cbiIKK21zZ3N0ciAiQXBwZWwgZHUgc2VydmljZSBkZSBjb3VwdXJlIGRlIGNvdXJhbnQg6WxlY3RyaXF1ZSBkdSBrZXJuZWwuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcG93ZXJpbmcgb2ZmXHQlc1xuIgorbXNnc3RyICJFcnJldXIgbG9ycyBkZSBsYSBjb3VwdXJlIGRlIGNvdXJhbnRcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCittc2dzdHIgIkV46WN1dGlvbiBkdSBwcm9ncmFtbWUgqyAlcyC7IC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBleGVjdXRpbmdcdCVzXG4iCittc2dzdHIgIkVycmV1ciBkJ2V46WN1dGlvblx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiVVJHRU5UOiBkaWZmdXNpb24gZGUgbWVzc2FnZSBkZSBsYSBwYXJ0IGRlICVzOiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgaG91cnMgJWQgbWludXRlcyIKK21zZ3N0ciAiTGUgc3lzdOhtZSBzZXJhIGFycup06SBkYW5zICVkIGhldXJlcyAlZCBtaW51dGVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAiTGUgc3lzdOhtZSBzZXJhIGFycup06SBkYW5zIDEgaGV1cmUgJWQgbWludXRlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgbWludXRlc1xuIgorbXNnc3RyICJMZSBzeXN06G1lIHNlcmEgYXJy6nTpIGRhbnMgJWQgbWludXRlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwNgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIG1pbnV0ZVxuIgorbXNnc3RyICJMZSBzeXN06G1lIHNlcmEgYXJy6nTpIGRhbnMgMSBtaW51dGVcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gSU1NRURJQVRFTFkhXG4iCittc2dzdHIgIkxlIHN5c3TobWUgc2VyYSBhcnLqdOkgSU1NyURJQVRFTUVOVCFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx0Li4uICVzIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIk5lIHBldXQg6XRhYmxpciB1biByZWxhaXMgcG91ciBzd2Fwb2ZmLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzgKK21zZ2lkICJDYW5ub3QgZXhlYyBzd2Fwb2ZmLCBob3BpbmcgdW1vdW50IHdpbGwgZG8gdGhlIHRyaWNrLiIKK21zZ3N0ciAiTmUgcGV1dCBleOljdXRlciB1biBzd2Fwb2ZmLCBlbiBlc3DpcmFudCBxdWUgdW1vdW50IGZlcmEgbGUgdHJhdmFpbC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiTmUgcGV1dCDpdGFibGlyIHVuIHJlbGFpcyBmb3JrKCkgcG91ciB1bW91bnQsIGVzc2F5ZXIgbWFudWVsbGVtZW50LiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGV4ZWMgJXMsIHRyeWluZyB1bW91bnQuXG4iCittc2dzdHIgIk5lIHBldXQgZXjpY3V0ZXIgJXMsIG9uIHRlbnRlIHVuIHVtb3VudC5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTAKK21zZ2lkICJDYW5ub3QgZXhlYyB1bW91bnQsIGdpdmluZyB1cCBvbiB1bW91bnQuIgorbXNnc3RyICJOZSBwZXV0IGV46WN1dGVyIHVuIHVtb3VudCwgYWJhbmRvbiBzdXIgbGUgdW1vdW50LiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTUKK21zZ2lkICJVbm1vdW50aW5nIGFueSByZW1haW5pbmcgZmlsZXN5c3RlbXMuLi4iCittc2dzdHIgIkTpbW9udGVyIHRvdXMgbGVzIHN5c3TobWVzIGRlIGZpY2hpZXJzIHJlc3RhbnRzLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJzaHV0ZG93bjogQ291bGRuJ3QgdW1vdW50ICVzOiAlc1xuIgorbXNnc3RyICJhcnLqdCBzeXN06G1lOiBuZSBwZXV0IGTpbW9udGVyICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICJBbW9y52FnZSBlbiBtb2RlIHVzYWdlciBzaW1wbGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICLpY2hlYyBkJ2V46WN1dGlvbiBkdSBzaGVsbCB1c2FnZXIgc2ltcGxlXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICLpY2hlYyBkdSBmb3JrKCkgZHUgc2hlbGwgZGUgbCd1c2FnZXIgc2ltcGxlXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMDgKK21zZ2lkICJlcnJvciBvcGVuaW5nIGZpZm9cbiIKK21zZ3N0ciAiZXJyZXVyIGQnb3V2ZXJ0dXJlIGQndW4gZmlmb1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjEyCittc2dpZCAiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIKK21zZ3N0ciAiZXJyZXVyIGQnaW5pdGlhbGlzYXRvbiBjbG9zZS1vbi1leGVjIHN1ciAvZGV2L2luaXRjdGwiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNTkKK21zZ2lkICJlcnJvciBydW5uaW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJlcnJldXIgZCdleOljdXRpb24gZGUgZmluYWxwcm9nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNjMKK21zZ2lkICJlcnJvciBmb3JraW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJlcnJldXIgZGUgZm9yaygpIGRlIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQ1Cittc2dpZCAiIgorIlxuIgorIldyb25nIHBhc3N3b3JkLlxuIgorbXNnc3RyICIiCisiXG4iCisiTW90IGRlIHBhc3NlIGVycm9u6S5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgIuljaGVjIGQn6XZhbHVhdGlvbiBwYXIgbHN0YXQoKSBkdSBjaGVtaW5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQyNgorbXNnaWQgInN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAi6WNoZWMgZCfpdmFsdWF0aW9uIHBhciBzdGF0IGR1IGNoZW1pblxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgIuljaGVjIGQnb3V2ZXJ0dXJlIGR1IHLpcGVydG9pcmVcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwMQorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwYXduaW5nOiBcIiVzXCIgdG9vIGZhc3Q6IHF1ZW5jaGluZyBlbnRyeVxuIgorbXNnc3RyICJy6WfpbulyYXRpb24gOiBcIiVzXCIgdHJvcCByYXBpZGUgOiBleHRpbmN0aW9uIGRlIGwnZW50cullXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDkKK21zZ2lkICJmb3JrIGZhaWxlZFxuIgorbXNnc3RyICLpY2hlYyBkZSBmb3JrKClcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU0MCB0ZXh0LXV0aWxzL21vcmUuYzoxNjYzCittc2dpZCAiZXhlYyBmYWlsZWRcbiIKK21zZ3N0ciAi6WNoZWMgZGUgZXhlYygpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NjQKK21zZ2lkICJjYW5ub3Qgb3BlbiBpbml0dGFiXG4iCittc2dzdHIgIm5lIHBldXQgb3V2cmlyIGluaXR0YWJcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgInBhcyBkZSBURVJNIG91IG5lIHBldXQg6XZhbHVlciB0dHkgcGFyIHN0YXQoKVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTM4CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJlcnJldXIgZW4gYXJy6nRhbnQgbGUgc2VydmljZSA6IFwiJXNcIlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAiU2VydmljZSBhcnLqdOkgOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBydW5uaW5nIHByb2dyYW1tZTogXCIlc1wiXG4iCittc2dzdHIgImVycmV1ciBkJ2V46WN1dGlvbiBkdSBwcm9ncmFtbWUgOiBcIiVzXCJcbiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6NzUKK21zZ2lkICJ0b28gbWFueSBpb3YncyAoY2hhbmdlIGNvZGUgaW4gd2FsbC90dHltc2cuYykiCittc2dzdHIgInRyb3AgZGUgaW92IChtb2RpZmllciBsZSBjb2RlIGRhbnMgd2FsbC90dHltc2cuYykiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImV4Y2Vzc2l2ZWx5IGxvbmcgbGluZSBhcmciCittc2dzdHIgImxpZ25lIGQnYXJndW1lbnRzIGV4Y2Vzc2l2ZW1lbnQgbG9uZ3VlIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgIm5lIHBldXQgZmFpcmUgZGUgcmVsYWlzIGZvcmsoKSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICJmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiBNQVVWQUlTRSBFRVJFVVIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBsZSBmaWNoaWVyIGRlIG1vdHMgZGUgcGFzc2UgZXN0IG9jY3Vw6S5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIGdyb3VwIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiJXM6IGxlIGZpY2hpZXIgZGUgZ3JvdXBlcyBlc3Qgb2NjdXDpLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgJXMgZmlsZSBpcyBidXN5ICglcyBwcmVzZW50KVxuIgorbXNnc3RyICIlczogbGUgZmljaGllciAlcyBlc3Qgb2NjdXDpICglcyBwculzZW50KVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBsaW5rICVzOiAlc1xuIgorbXNnc3RyICIlczogbmUgcGV1dCBmYWlyZSB1biBsaWVuICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBnZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiBuZSBwZXV0IG9idGVuaXIgbGUgY29udGV4dGUgcG91ciAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogbmUgcGV1dCBpbml0aWFsaXNlciBsZSBjb250ZXh0ZSBwb3VyICVzIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCB1bmxvY2sgJXM6ICVzICh5b3VyIGNoYW5nZXMgYXJlIHN0aWxsIGluICVzKVxuIgorbXNnc3RyICIiCisiJXM6IG5lIHBldXQgZOl2ZXJyb3VpbGxlciAlczogJXMgKHZvcyBtb2RpZmljYXRpb25zIHNvbnQgZW5jb3JlIGRhbnMgJXMpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiVzOiBuZSBwZXV0IGZhaXJlIHVuIHJlbGFpcyBwYXIgZm9yaygpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHVuY2hhbmdlZFxuIgorbXNnc3RyICIlczogJXMgbidhIHBhcyBjaGFuZ+lcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI5NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gY2hhbmdlcyBtYWRlXG4iCittc2dzdHIgIiVzOiBhdWN1biBjaGFuZ2VtZW50IG4nYSDpdOkgZmFpdFxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IGdyb3VwcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiVm91cyB1dGlsaXNleiAnc2hhZG93IGdyb3Vwc7sgc3VyIGNlIHN5c3TobWUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJWb3VzIHV0aWxpc2V6ICdzaGFkb3cgcGFzc3dvcmRzuyBzdXIgY2Ugc3lzdOhtZS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCB5b3UgbGlrZSB0byBlZGl0ICVzIG5vdyBbeS9uXT8gIgorbXNnc3RyICJWb3VsZXotdm91cyDpZGl0ZXIgJXMgbWFpbnRlbmFudCBbeS9uXT8gIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbZmlsZV1cbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiAlcyBbZmljaGllcl1cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IG5lIHBldXQgb3V2cmlyIHVuIGZpY2hpZXIgdGVtcG9yYWlyZXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJvYWRjYXN0IE1lc3NhZ2UgZnJvbSAlc0AlcyIKK21zZ3N0ciAiRGlmZnVzaW9uIGRlIG1lc3NhZ2UgZGUgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiBuZSBsaXJhIHBhcyAlcyAtIHV0aWxpc2VyIHN0ZGluLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICIlczogbmUgcGV1dCBsaXJlICVzLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogbmUgcGV1dCDpdmFsdWVyIHBhciBzdGF0KCkgbGUgZmljaGllciB0ZW1wb3JhaXJlLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogbmUgcGV1dCBsaXJlIGR1IGZpY2hpZXIgdGVtcG9yYWlyZS5cbiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjQgbWlzYy11dGlscy9jYWwuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkYXkgdmFsdWU6IHVzZSAxLSVkIgorbXNnc3RyICJ2YWxldXIgZGUgam91ciBpbmNvcnJlY3RlIDogdXRpbGlzZXIgMS0lZCIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjgKK21zZ2lkICJpbGxlZ2FsIG1vbnRoIHZhbHVlOiB1c2UgMS0xMiIKK21zZ3N0ciAidmFsZXVyIGRlIG1vaXMgaWxs6WdhbDogdXRpbGlzZXIgMS0xMiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNzIKK21zZ2lkICJpbGxlZ2FsIHllYXIgdmFsdWU6IHVzZSAxLTk5OTkiCittc2dzdHIgInZhbGV1ciBkJ2FubullIGlsbOlnYWxlOiB1dGlsaXNlciAxLTk5OTkiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6NDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVkIgorbXNnc3RyICIlcyAlZCIKKworIzogbWlzYy11dGlscy9jYWwuYzo4NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgIlV0aWxpc2F0aW9uIDogY2FsIFstMTNzbWp5Vl0gW1tbam91cl0gbW9pc10gYW5u6WVdXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsrZm9ybWF0XSBbZGF5IG1vbnRoIHllYXJdXG4iCittc2dzdHIgIlV0aWxpc2F0aW9uIDogJXMgWytmb3JtYXRdIFtqb3VyIG1vaXMgYW5u6WVdXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyNTAKK21zZ2lkICJTdC4gVGliJ3MgRGF5IgorbXNnc3RyICJKb3VyIGRlIGxhIFN0LiBUaWIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIExBQkVMPTxsYWJlbD58VVVJRD08dXVpZD5cbiIKK21zZ3N0ciAiVXNhZ2UgOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBy6XNvdWRyZSAnJXMnIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzXG4iCittc2dzdHIgIiVzOiBzaWduYWwgaW5jb25udSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgcHJvY2VzcyBcIiVzXCJcbiIKK21zZ3N0ciAiJXM6IG5lIHBldXQgcmVw6XJlciBsZSBwcm9jZXNzdXMgqyAlcyC7XG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjMxNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXM7IHZhbGlkIHNpZ25hbHM6XG4iCittc2dzdHIgIiVzOiBzaWduYWwgaW5jb25udSAlczsgc2lnbmF1eCB2YWxpZGVzOlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo2NworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IG9wZW5sb2c6IHBhdGhuYW1lIHRvbyBsb25nXG4iCittc2dzdHIgImxvZ2dlcjogb3BlbmxvZzogY2hlbWluIHRyb3AgbG9uZ1xuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgInNvY2tldDogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgImNvbm5lY3Q6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiAlczogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBub20gZGUgc2VydmljZSBpbmNvbm51OiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIHByaW9yaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IG5vbSBkZSBwcmlvcml06SBpbmNvbm51OiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisiVXRpbGlzYXRpb24gOiBsb2dnZXIgWy1pc10gWy1mIGZpY2hpZXJdIFstcCBwcmlvcml06V0gWy10IOl0aXF1ZXR0ZV0gWy11ICIKKyJzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgIlV0aWxpc2F0aW9uIDogbG9vayBbLWRmYV0gWy10IGNhcmFjdOhyZV0gY2hh7m5lIFtmaWNoaWVyXVxuIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDUgbWlzYy11dGlscy9tY29va2llLmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzXG4iCittc2dzdHIgIk5lIHBldXQgb3V2cmlyICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwOSBtaXNjLXV0aWxzL21jb29raWUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIKK21zZ3N0ciAiQSBvYnRlbnUgJWQgb2N0ZXRzIGRlICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxNDMgbWlzYy11dGlscy9uYW1laS5jOjE5OCBtaXNjLXV0aWxzL25hbWVpLmM6MjI1CisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjQ1IG1pc2MtdXRpbHMvbmFtZWkuYzoyNTIgbWlzYy11dGlscy9uYW1laS5jOjI5NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/IgorbXNnc3RyICJt6W1vaXJlIOlwdWlz6WUgPyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCBzeW1saW5rOiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlIGxlIGxpZW4gc3ltYm9saXF1ZSA6ICVzIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjMxIG1pc2MtdXRpbHMvbmFtZWkuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IHN0YXQgJyVzJyIKK21zZ3N0ciAi6WNoZWMgZGUgbGEgZm9uY3Rpb24gXCJzdGF0XCIgJyVzJyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXSBwYXRobmFtZSBbcGF0aG5hbWUgLi4uXVxuIgorbXNnc3RyICIiCisiXG4iCisiVXNhZ2UgOiAlcyBbb3B0aW9uc10gY2hlbWluIFtjaGVtaW4gLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiT3B0aW9ucyA6XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGFmZmljaGUgY2V0dGUgYWlkZVxuIgorIiAteCwgLS1tb3VudHBvaW50cyAgIG1vbnRyZSBsZXMgcG9pbnRzIGRlIG1vbnRhZ2UgYXZlYyAnRCdcbiIKKyIgLW0sIC0tbW9kZXMgICAgICAgICBhZmZpY2hlIGxlIG1vZGUgcG91ciBjaGFxdWUgZmljaGllclxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIGFmZmljaGUgbGUgcHJvcHJp6XRhaXJlL2xlIGdyb3VwZSBkZSBjaGFxdWUgZmljaGllclxuIgorIiAtbCwgLS1sb25nICAgICAgICAgIGZvcm1hdCBkZSBsaXN0ZSBsb25ndWUgKC1tIC1vIC12KSBcbiIKKyIgLW4sIC0tbm9zeW1saW5rcyAgICBuZSBwYXMgc3VpdnJlIGxlcyBsaWVucyBzeW3pdHJpcXVlc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIGFsaWduZSB2ZXJ0aWNhbGVtZW50IGxlcyBtb2RlcyBldCBwcm9wcmnpdGFpcmVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBuYW1laSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlBvdXIgcGx1cyBkJ2luZm9ybWF0aW9ucyB2b2lyIG5hbWVpKDEpLlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzdGF0OiAlcyIKK21zZ3N0ciAi6WNoZWMgZGUgbGEgZm9uY3Rpb24gXCJzdGF0XCIgOiAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUzMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXhjZWVkZWQgbGltaXQgb2Ygc3ltbGlua3MiCittc2dzdHIgIiVzIDogbGltaXRlIGRlIGxpZW5zIHN5bWJvbGlxdWVzIGTpcGFzc+llIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiVzOiBt6W1vaXJlIOlwdWlz6WVcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogY2hhbmdlciBsZSBub20gZGUgJXMgdmVycyAlcyBhIOljaG916TogJXNcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYWxsOiAlcyBmcm9tIHRvIGZpbGVzLi4uXG4iCittc2dzdHIgImNhbGw6ICVzIHZlcnMgbGVzIGZpY2hpZXJzLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBgJXMnIGlzIGEgbGluay5cbiIKKyJVc2UgYCVzIFtvcHRpb25zXSAlcycgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC5cbiIKKyJTY3JpcHQgbm90IHN0YXJ0ZWQuXG4iCittc2dzdHIgIiIKKyJBVkVSVElTU0VNRU5UOiCrICVzILsgZXN0IHVuIGxpZW4gc3ltYm9saXF1ZS5cbiIKKyJVdGlsaXNlciCrICVzIFtvcHRpb25zXSAlcyC7IHNpIHZvdXMgZOlzaXJleiBy6WVsbGVtZW50IGwndXRpbGlzZXIuXG4iCisiTGUgc2NyaXB0IG4nYSBwYXMg6XTpIGTpbWFycukuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmljaGllcl1cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiTGUgc2NyaXB0IGEgZOlidXTpLCBsZSBmaWNoaWVyIGVzdCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3IgJWQ6ICVzXG4iCittc2dzdHIgIiVzOiBlcnJldXIgZCfpY3JpdHVyZSAlZCA6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkIG9uICVzIgorbXNnc3RyICJMZSBzY3JpcHQgYSBk6WJ1dOkgc3VyICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3I6ICVzXG4iCittc2dzdHIgIiVzOiBlcnJldXIgZCfpY3JpdHVyZSA6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczogaW1wb3NzaWJsZSBkJ+ljcmlyZSBsZSBmaWNoaWVyIFwic2NyaXB0XCIsIGVycmV1ciA6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorIlxuIgorIlNjcmlwdCBjb21wbOl06SBzdXIgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNjcmlwdCBjb21wbOls6SwgbGUgZmljaGllciBlc3QgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbnB0eSBmYWlsZWRcbiIKK21zZ3N0ciAi6WNoZWMgZGUgb3BlbnB0eVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgcHR5J3NcbiIKK21zZ3N0ciAiTWFucXVlIGRlIHB0eVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIDx0aW1pbmdmaWxlPiBbPHR5cGVzY3JpcHQ+IFs8ZGl2aXNvcj5dXVxuIgorbXNnc3RyICIlcyA8ZmljaGllcl9k6XJvdWxlbWVudF90ZW1wb3JlbD4gWzxzY3JpcHRfZW5yZWdpc3Ry6T4gWzxkaXZpc2V1cj5dXVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgIm5vbWJyZSBhdHRlbmR1LCBtYWlzIG9idGVudSA6IFwiJXNcIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAiZGl2aXNldXIgXCIlc1wiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorbXNnaWQgIndyaXRlIHRvIHN0ZG91dCBmYWlsZWQiCittc2dzdHIgIuljaGVjIGQn6WNyaXR1cmUgc3VyIHN0ZG91dCIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSBvbiAlcyIKK21zZ3N0ciAiZmluIGRlIGZpY2hpZXIgaW5hdHRlbmR1ZSBzdXIgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAi6WNoZWMgZGUgbGVjdHVyZSBkdSBmaWNoaWVyIHNjcmlwdCBlbnJlZ2lzdHLpICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ291dnJpciBsZSBmaWNoaWVyIGRlIGTpcm91bGVtZW50IHRlbXBvcmVsICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgImltcG9zc2libGUgZCdvdXZyaXIgbGUgZmljaGllciBkZSBzY3JpcHQgZW5yZWdpc3Ry6SAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIuljaGVjIGRlIGxlY3R1cmUgZHUgZmljaGllciBkZSBk6XJvdWxlbWVudCB0ZW1wb3JlbCAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAiZmljaGllciBkZSBk6XJvdWxlbWVudCB0ZW1wb3JlbCAlcyA6ICVsdSA6IGZvcm1hdCBhdHRlbmR1IgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczogZXJyZXVyIGQsYXJndWVtZW50LCB1c2FnZVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorbXNnc3RyICIgIFsgLXRlcm0gbm9tLWRlLXRlcm1pbmFsIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVzZXQgXVxuIgorbXNnc3RyICIgIFsgLXJlc2V0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCittc2dzdHIgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiICBbIC1kZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc5IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODMKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NQorIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorbXNnc3RyICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdG9yZSBdXG4iCittc2dzdHIgIiAgWyAtc3RvcmUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCittc2dzdHIgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kdW1wICAgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1kdW1wICAgWzEtTlJfQ09OU09MRVNdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiICBbIC1maWxlIG5vbS1kZS1maWNoaWVyLWRlLXZpZGFuZ2UgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2Vyc2F2ZSBbb258dnN5bmN8aHN5bmN8cG93ZXJkb3dufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXBvd2Vyc2F2ZSBbb258dnN5bmN8aHN5bmN8cG93ZXJkb3dufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcmRvd24gWzAtNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcmRvd24gWzAtNjBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxlbmd0aCBbMC0yMDAwXSBdXG4iCittc2dzdHIgIiAgWyAtYmxlbmd0aCBbMC0yMDAwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJmcmVxIGZyZXFudW1iZXIgXVxuIgorbXNnc3RyICIgIFsgLWJmcmVxIG5vbWJyZS1kZS1sYS1mculxdWVuY2UgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSBibGFua1xuIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnYWN0aXZlciBsZSBuZXR0b3lhZ2UgYXV0b21hdGlxdWUgZGUgbCfpY3JhblxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgImltcG9zc2libGUgZGUgZOlzYWN0aXZlciBsZSBuZXR0b3lhZ2UgYXV0b21hdGlxdWUgZGUgbCfpY3JhblxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgIiIKKyJpbXBvc3NpYmxlIGRlIHNhdm9pciBzaSBsZSBuZXR0b3lhZ2UgYXV0b21hdGlxdWUgZGUgbCfpY3JhbiBlc3QgYWN0aWZcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICJuZSBwZXV0IGV46WN1dGVyIGxlIG1vZGUgKHVuKXNldCBwb3dlcnNhdmVcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEyMiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTMwCisjLCBjLWZvcm1hdAorbXNnaWQgImtsb2djdGwgZXJyb3I6ICVzXG4iCittc2dzdHIgImVycmV1ciBrbG9nY3RsOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIgorbXNnc3RyICJFcnJldXIgbG9ycyBkZSBsJ+ljcml0dXJlIGR1IHNjcmVlbmR1bXBcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIkltcG9zc2libGUgZGUgbGlyZSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6ICRURVJNIG4nZXN0IHBhcyBk6WZpbmkuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdIFstVCB0aW1lb3V0XVxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6ICVzIFstZF0gWy1wIGZpY2hpZXJwaWRdIFstcyBjaGVtaW5zb2NrZXRdIFstVCB0aW1lb3V0XVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIFstcnx0XSBbLW4gbnVtXSBbLXMgc29ja2V0cGF0aF1cbiIKK21zZ3N0ciAiICAgICAgICVzIFstcnx0XSBbLW4gbnVtXSBbLXMgc29ja2V0cGF0aF1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIgICAgICAgJXMgLWtcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgImFyZ3VtZW50cyBlcnJvbulzIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTU5Cittc2dpZCAic29ja2V0IgorbXNnc3RyICJzb2NrZXQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNzAKK21zZ2lkICJjb25uZWN0IgorbXNnc3RyICJjb25uZXhpb24iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxODkKK21zZ2lkICJ3cml0ZSIKK21zZ3N0ciAi6WNyaXR1cmUiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxOTcKK21zZ2lkICJyZWFkIGNvdW50IgorbXNnc3RyICJuYiBkZSBsZWN0dXJlcyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjIwMworbXNnaWQgImJhZCByZXNwb25zZSBsZW5ndGgiCittc2dzdHIgIm1hdXZhaXNlIGxvbmd1ZXVyIGRlIHLpcG9uc2UiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIKK21zZ3N0ciAiZOltb24gdXVpZGQgZOlq4CBlbiByb3V0ZSBhdmVjIHBpZCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGNyZWF0ZSB1bml4IHN0cmVhbSBzb2NrZXQ6ICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGNy6WVyIHVuIHNvY2tldCBkZSBmbHV4IHVuaXg6ICVzIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGJpbmQgdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIkFzc29jaWF0aW9uIGRlIHNvY2tldCAoYmluZCkgaW1wb3NzaWJsZSAlcyA6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbGlzdGVuIG9uIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgbGUgc2xvdCB1bml4IChzb2NrZXQpICVzIDogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciByZWFkaW5nIGZyb20gY2xpZW50LCBsZW4gPSAlZFxuIgorbXNnc3RyICJFcnJldXIgbGVjdHVyZSBkdSBjbGllbnQsIGxvbmd1ZXVyPSVkXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlcmF0aW9uICVkLCBpbmNvbWluZyBudW0gPSAlZFxuIgorbXNnc3RyICJvcOlyYXRpb24gJWQsIG51bS4gZW50cmFudCA9ICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRDogJXNcbiIKK21zZ3N0ciAiSGV1cmUgVVVJRCBn6W7pcullIDogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgIk5iciBhbOlhdG9pcmUgVVVJRCBn6W7pcukgOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQgJXMgYW5kICVkIGZvbGxvd2luZ1xuIgorbXNnc3RyICJIZXVyZSBVVUlEIGfpbuly6WUgJXMgZXQgJWQgc3Vpdi5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICIlZCBVVUlEcyBn6W7pculzIDpcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIG9wZXJhdGlvbiAlZFxuIgorbXNnc3RyICJPcOlyYXRpb24gbm9uIHZhbGlkZSAlZFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDY4IG1pc2MtdXRpbHMvdXVpZGQuYzo0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiTm9tYnJlIG5vbiB2YWxpZGUgOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2FsbGluZyB1dWlkZCBkYWVtb24gKCVzKTogJXNcbiIKK21zZ3N0ciAiRXJyZXVyIGQnYXBwZWwgZHUgZOltb24gVVVJRGQgKCVzKSA6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgYW5kIHN1YnNlcXVlbnQgJWQgVVVJRCdzXG4iCittc2dzdHIgIiVzIGV0ICVkIHN1aXZhbnRzIFVVSURzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGlzdCBvZiBVVUlEJ3M6XG4iCittc2dzdHIgIkxpc3RlIGRlcyBVVUlEIDogXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCByZXBseSBsZW5ndGggZnJvbSBzZXJ2ZXIgJWRcbiIKK21zZ3N0ciAiTG9uZ3VldXIgZGUgculwb25zZSBzZXJ2ZXVyIGluYXR0ZW5kdWUgJWRcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkOiAlc1xuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHR1ZXIgbCdVVUlEZCBkZSBwaWQgJWQgOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIktpbGxlZCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZFxuIgorbXNnc3RyICJVVUlEZCBkZSBwaWQgJWQgdHXpXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGdlbi5jOjMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXJdIFstdF1cbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiAlcyBbLXJdIFstdF1cbiIKKworIzogbWlzYy11dGlscy93aGVyZWlzLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBkaXIgLi4uIC1mIF0gbmFtZS4uLlxuIgorbXNnc3RyICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gculwZXJ0b3JpZSAuLi4gLWYgXSBub20uLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKKyMsIGZ1enp5Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAi6WNoZWMgZGUgbWFsbG9jKCkiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTUwCisjLCBmdXp6eQorbXNnaWQgInN0cmR1cCBmYWlsZWQiCittc2dzdHIgImVycmV1ciA6IOljaGVjIGRlIFwic3RyZHVwXCIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICIuLi7pY2hlYyBkZSBzeW5jaHJvbmlzYXRpb25cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJMZSBkaXNxdWUgJXMgbmUgY29udGllbnQgcGFzIHVuZSB0YWJsZSBkZSBwYXJ0aXRpb24gdmFsaWRlXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gc2VlayB0byBvZmZzZXQgMHglangiCittc2dzdHIgIiVzOiDpY2hlYyBkJ291dmVydHVyZTogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgIiVzIDog6WNoZWMgZCdvdXZlcnR1cmUiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlemQgYnl0ZXMgWyIKK21zZ3N0ciAib2N0ZXRzIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJdIGVyYXNlZCBhdCBvZmZzZXQgMHglanggKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjkyIG1vdW50L3N3YXBvbi5jOjE5OCBtb3VudC9zd2Fwb24uYzoyNjYKKyM6IG1vdW50L3N3YXBvbi5jOjQxMSBtb3VudC9zd2Fwb24uYzo1NzAgbW91bnQvc3dhcG9uLmM6NzcyCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcGVuIGZhaWxlZCIKK21zZ3N0ciAiJXMgOiDpY2hlYyBkJ291dmVydHVyZSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMTUgbWlzYy11dGlscy93aXBlZnMuYzozMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgb2Zmc2V0ICclcycgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJWYWxldXIgZCdpbml0aWFsaXNhdGlvbiBpbnZhbGlkZTogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxkZXZpY2U+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIlVzYWdlIDogJXMgW29wdGlvbnNdXG4iCisiXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWEsIC0tYWxsICAgICAgICAgICB3aXBlIGFsbCBtYWdpYyBzdHJpbmdzIChCRSBDQVJFRlVMISlcbiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0tbm8tYWN0ICAgICAgICBldmVyeXRoaW5nIHRvIGJlIGRvbmUgZXhjZXB0IGZvciB0aGUgd3JpdGUoKSBjYWxsXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IHRvIGVyYXNlLCBpbiBieXRlc1xuIgorIiAtcCwgLS1wYXJzYWJsZSAgICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB3aXBlZnMoOCkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQb3VyIHBsdXMgZCdpbmZvcm1hdGlvbnMgdm9pciBpcGNtaygxKS5cbiIKKyJcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozODcKK21zZ2lkICItLW9mZnNldCBhbmQgLS1hbGwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZTogbmUgcGV1dCByZXDpcmVyIGxlIG5vbSBkZSB2b3RyZSB0dHlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogdm9zIHBlcm1pc3Npb25zIGQn6WNyaXR1cmUgc29udCBk6XNhY3Rpdullcy5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIG4nZXN0IHBhcyBsb2dn6SBzdXIgJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZCBvbiAlc1xuIgorbXNnc3RyICJ3cml0ZTogJXMgYSBk6XNhY3RpdukgbGEgculjZXB0aW9uIGRlIG1lc3NhZ2VzIHN1ciAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiB3cml0ZSB1c2VyIFt0dHldXG4iCittc2dzdHIgIlV0aWxpc2F0aW9uIDogd3JpdGUgdXNhZ2VyIFt0dHldXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIG5vdCBsb2dnZWQgaW5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIG4nZXN0IHBhcyBsb2dn6VxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGEgZGVzYWN0aXbpIGxhIHLpY2VwdGlvbiBkZSBtZXNzYWdlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBsb2dnZWQgaW4gbW9yZSB0aGFuIG9uY2U7IHdyaXRpbmcgdG8gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGVzdCBsb2dn6SDgIHBsdXMgZCd1biBlbmRyb2l0OyBvbiDpY3JpdCDgICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIChhcyAlcykgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICJNZXNzYWdlIGRlICVzQCVzIChjb21tZSAlcykgc3VyICVzIOAgJXMgLi4uIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIk1lc3NhZ2UgZGUgJXNAJXMgc3VyICVzIOAgJXMgLi4uIgorCisjOiBtb3VudC9mc3RhYi5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBlcnJvciByZWFkaW5nICVzOiAlcyIKK21zZ3N0ciAiQVZFUlRJU1NFTUVOVDogZXJyZXVyIGRlIGxlY3R1cmUgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAiQVZFUlRJU1NFTUVOVDogbmUgcGV1dCBvdXZyaXIgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY291bGQgbm90IG9wZW4gJXMgLSB1c2luZyAlcyBpbnN0ZWFkXG4iCittc2dzdHIgIm1vdW50OiBuZSBwZXV0IG91dnJpciAlcyAtIG9uIHV0aWxpc2UgJXMg4CBsYSBwbGFjZVxuIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisibmUgcGV1dCBjcullciBsZSBmaWNoaWVyIHZlcnJvdSAlczogJXMgKHV0aWxpc2VyIGwnb3B0aW9uIC1uIHBvdXIgbCfpY3Jhc2VyKSIKKworIzogbW91bnQvZnN0YWIuYzo2MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbGluayBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyJuZSBwZXV0IGxpZXIgbGUgZmljaGllciB2ZXJyb3UgJXM6ICVzICh1dGlsaXNlciBsJ29wdGlvbiAgLW4gcG91ciBsJ+ljcmFzZXIpIgorCisjOiBtb3VudC9mc3RhYi5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBvcGVuIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorIm5lIHBldXQgb3V2cmlyIGxlIGZpY2hpZXIgdmVycm91ICVzOiAlcyAodXRpbGlzZXIgbCdvcHRpb24gLW4gcG91ciBsJ+ljcmFzZXIpIgorCisjOiBtb3VudC9mc3RhYi5jOjY0NworIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiTmUgcGV1dCB2ZXJycm91aWxsZXIgbGUgZmljaGllciB2ZXJyb3UgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAibmUgcGV1dCB2ZXJyb3VpbGxlciBsZSBmaWNoaWVyIHZlcnJvdSAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICJleHBpcmF0aW9uIGR1IGTpbGFpIgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorIk5lIHBldXQgY3LpZXIgbGUgbGllbiAlc1xuIgorIlBldXQt6nRyZSB5LWEtdC1pbCB1biBmaWNoaWVyIHZlcnJvdWlsbOkgZW4gcGFubmU/XG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICJuZSBwZXV0IG91dnJpciAlcyAoJXMpIC0gbXRhYiBuJ2VzdCBwYXMg4CBqb3VyIgorCisjOiBtb3VudC9mc3RhYi5jOjg1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAiZXJyZXVyIGQn6WNyaXR1cmUgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjg3NAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlc1xuIgorbXNnc3RyICJlcnJldXIgZGUgY2hhbmdlbWVudCBkZSBtb2RlIGRlICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBvd25lciBvZiAlczogJXNcbiIKK21zZ3N0ciAiZXJyZXVyIGRlIGNoYW5nZW1lbnQgZGUgcHJvcHJp6XRhaXJlIGRlICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg5OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCByZW5hbWUgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgIm5lIHBldXQgcmVub21tZXIgJXMg4CAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBzZXQgY2FwYWNpdHkgb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wIDogaW1wb3NzaWJsZSBkZSBmaXhlciBsYSBjYXBhY2l06SBw6XJpcGjpcmlxdWUgJXMgOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBk6WNhbGFnZSAlPFBSSXU2ND4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIHRhaWxsZSBsaW1pdGUgJTxQUkl1NjQ+IgorCisjOiBtb3VudC9sb21vdW50LmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiAlcyAodHlwZSAlPFBSSXUzMj4pIgorbXNnc3RyICIsIGNyeXB0YWdlICVzICh0eXBlICU8UFJJdTMyPikiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJWQiCittc2dzdHIgIiwgZOljYWxhZ2UgJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiLCBlbmNyeXB0YWdlIHR5cGUgJWRcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBnZXQgaW5mbyBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG5lIHBldXQgb2J0ZW5pciBsZXMgaW5mb3Mgc3VyIGxlIHDpcmlwaOlyaXF1ZSAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogbmUgcGV1dCBvdXZyaXIgbGUgcOlyaXBo6XJpcXVlICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczogbGUgculwZXJ0b2lyZSAvZGV2IG4nZXhpc3RlIHBhcy4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NTkgbW91bnQvbG9tb3VudC5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIlcyA6IHBhcyBkZSBwZXJtaXNzaW9uIHBvdXIgb2JzZXJ2ZXIgL2Rldi9sb29wJXM8Tj4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBmcmVlIGxvb3AgZGV2aWNlIgorbXNnc3RyICIlczogbmUgcGV1dCB0cm91dmVyIHVuIHDpcmlwaOlyaXF1ZSBkZSB0eXBlIGxvb3AgbGlicmUiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlPyAoSWYgc28sIHJlY29tcGlsZSBvciBgbW9kcHJvYmUgbG9vcCcuKSIKK21zZ3N0ciAiIgorIiVzOiBuZSBwZXV0IHRyb3V2ZXIgdW4gcOlyaXBo6XJpcXVlIGRlIHR5cGUgbG9vcC4gUGV1dC3qdHJlIHF1ZSBjZSBrZXJuZWxcbiIKKyIgICAgICAgbmUgc3VwcG9ydGUgcGFzIGxlIHR5cGUgbG9vcCBkZSBw6XJpcGjpcmlxdWU/IChzaSBvdWksIHJlY29tcGlsZXIgb3UgIgorInV0aWxpc2VyIGBtb2Rwcm9iZSBsb29wJykuIgorCisjOiBtb3VudC9sb21vdW50LmM6NjM2Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGlsZSByZWFkaW5nIHBhc3NwaHJhc2UiCittc2dzdHIgIk3pbW9pcmUg6XB1aXPpZSBsb3JzIGRlIGxhIGxlY3R1cmUgZGUgbGEgcGhyYXNlIHNlY3LodGUiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiYXR0ZW50aW9uIDogJXMgZXN0IGTpauAgYXNzb2Np6ShlKSBhdmVjICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICJhdHRlbnRpb246ICVzIGVzdCBwcm906WfpIGVuIOljcml0dXJlLCBtb2506SBlbiBsZWN0dXJlIHNldWxlLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iCittc2dzdHIgIk5lIHBldXQgdmVycm91aWxsZXIgZW4gbeltb2lyZSwgZmluIGQnZXjpY3V0aW9uLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAi6WNoZWMgZGUgaW9jdGwgTE9PUF9TRVRfRkQgOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBjLWZvcm1hdAorbXNnaWQgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAic2V0X2xvb3AoJXMsJXMsJWxsdSwlbGx1KSA6IHN1Y2Poc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IHN1Y2Poc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODQwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGRlbGV0ZSBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG5lIHBldXQgZOl0cnVpcmUgbGUgcOlyaXBo6XJpcXVlICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgbW91bnQgd2FzIGNvbXBpbGVkIHdpdGhvdXQgbG9vcCBzdXBwb3J0LiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisiQ2V0dGUgdmVyc2lvbiBkZSBtb3VudCBhIOl06SBjb21waWzpZSBzYW5zIHN1cHBvcnQgZGUgYm91Y2xlLiBTVlAgIgorInJlY29tcGlsZXIuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIGxvb3BfZGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXZlIGluZm9cbiIKKyIgJTEkcyAtYSB8IC0tYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBhbGwgdXNlZFxuIgorIiAlMSRzIC1kIHwgLS1kZXRhY2ggPGxvb3BkZXY+IFs8bG9vcGRldj4gLi4uXSBkZWxldGVcbiIKKyIgJTEkcyAtZiB8IC0tZmluZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZCB1bnVzZWRcbiIKKyIgJTEkcyAtYyB8IC0tc2V0LWNhcGFjaXR5IDxsb29wZGV2PiAgICAgICAgICAgcmVzaXplXG4iCisiICUxJHMgLWogfCAtLWFzc29jaWF0ZWQgPGZpbGU+IFstbyA8bnVtPl0gICAgIGxpc3QgYWxsIGFzc29jaWF0ZWQgd2l0aCAiCisiPGZpbGU+XG4iCisiICUxJHMgWyBvcHRpb25zIF0gey1mfC0tZmluZHxsb29wZGV2fSA8ZmlsZT4gIHNldHVwXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVdGlsaXNhdGlvbiA6XG4iCisiICUxJHMgcOlyaXBoX2JvdWNsZSAgICAgICAgICAgICAgICAgICAgICBkb25uZXIgZGVzIGluZm9zXG4iCisiICUxJHMgLWEgfCAtLWFsbCAgICAgICAgICAgICAgICAgICAgICBsaXN0ZXIgbGVzIHDpcmlwaC4gdXRpbGlz6XNcbiIKKyIgJTEkcyAtZCB8IC0tZGV0YWNoIDxw6XJpcGg+IFs8cOlyaXBoLj4gLi4uXSBzdXBwcmltZXJcbiIKKyIgJTEkcyAtZiB8IC0tZmluZCAgICAgICAgICAgICAgICAgICAgICB0cm91dmVyIGxlcyBw6XJpcGguIGludXRpbGlz6XNcbiIKKyIgJTEkcyAtYyB8IC0tc2V0LWNhcGFjaXR5IDxw6XJpcGg+ICAgICAgICAgcmVkaW1lbnNpb25uZXJcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmljaGllcj4gWy1vIDxudW0+XSAgbGlzdGVyIGNldXggYXNzb2Np6XMg4CAiCisiPGZpY2hpZXI+XG4iCisiICUxJHMgWyBvcHRpb25zIF0gey1mfC0tZmluZHxsb29wZGV2fSA8ZmljaGllcj4gIGNvbmZpZ3VyZXJcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg5NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWUgfCAtLWVuY3J5cHRpb24gPHR5cGU+IGVuYWJsZSBkYXRhIGVuY3J5cHRpb24gd2l0aCBzcGVjaWZpZWQgPG5hbWUvbnVtPlxuIgorIiAtaCB8IC0taGVscCAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1vIHwgLS1vZmZzZXQgPG51bT4gICAgICBzdGFydCBhdCBvZmZzZXQgPG51bT4gaW50byBmaWxlXG4iCisiICAgICAgLS1zaXplbGltaXQgPG51bT4gICBsb29wIGxpbWl0ZWQgdG8gb25seSA8bnVtPiBieXRlcyBvZiB0aGUgZmlsZVxuIgorIiAtcCB8IC0tcGFzcy1mZCA8bnVtPiAgICAgcmVhZCBwYXNzcGhyYXNlIGZyb20gZmlsZSBkZXNjcmlwdG9yIDxudW0+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBzZXR1cCByZWFkLW9ubHkgbG9vcCBkZXZpY2VcbiIKKyIgICAgICAtLXNob3cgICAgICAgICAgICAgIHByaW50IGRldmljZSBuYW1lICh3aXRoIC1mIDxmaWxlPilcbiIKKyIgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgIHZlcmJvc2UgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWUgfCAtLWVuY3J5cHRpb24gPHR5cGU+IGFjdGl2ZSBsZSBjcnlwdGFnZSBkZSBkb25u6WVzIGF2ZWMgPG5vbS9udW0+ICIKKyJzcOljaWZp6VxuIgorIiAtaCB8IC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgICBhZmZpY2hlIGNldHRlIGFpZGVcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgICAgIGTpbWFycmUg4CBsYSBwb3NpdGlvbiA8bnVtPiBkYW5zIGxlIGZpY2hpZXJcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgICAgICAgIGxpbWl0ZSBsYSBib3VjbGUg4CBzZXVsZW1lbnQgPG51bT4gb2N0ZXRzIGR1ICIKKyJmaWNoaWVyXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICAgIGxpdCBsZSBtb3QgZGUgcGFzc2UgZGVwdWlzIGxlIGRlc2NyaXB0ZXVyIGRlICIKKyJmaWNoaWVyIDxudW0+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICAgICAgICAgIGJvdWNsZSBlbiBsZWN0dXJlIHNldWxlIHN1ciBsZSAiCisicOlyaXBo6XJpcXVlXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICAgICAgICAgICAgIGFmZmljaGUgbGUgbm9tIGR1IHDpcmlwaOlyaXF1ZSAoYXZlYyAtZiAiCisiPGZpY2hpZXI+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgICAgICAgICBtb2RlIHZlcmJldXhcbiIKKyJcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwMzQgbW91bnQvbG9tb3VudC5jOjEwNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9vcCBkZXZpY2UgaXMgJXNcbiIKK21zZ3N0ciAiUOlyaXBo6XJpcXVlIGJvdWNsZSAobG9vcCkgOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJw6XJpcGguIGJvdWNsZSBwZXJkdSAobG9vcCk9JXMuLi5ub3V2ZWwgZXNzYWlcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiBkZXZpY2UgaXMgYnVzeSIKK21zZ3N0ciAiJXM6ICVzOiBw6XJpcGjpcmlxdWUgb2NjdXDpIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKyJBdWN1biBzdXBwb3J0IGRlIGJvdWNsZSBuJ+l0YWl0IGRpc3BvbmlibGUgYXUgbW9tZW50IGRlIGxhIGNvbXBpbGF0aW9uLiBTVlAgIgorInJlY29tcGlsZXIuXG4iCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogaW1wcm9wZXJseSBxdW90ZWQgb3B0aW9uIHN0cmluZyAnJXMnIgorbXNnc3RyICJtb3VudCA6IGNoYe5uZSBkJ29wdGlvbnMgbm9uIGVudG91cullIGRlIGd1aWxsZW1ldHMgXCIlc1wiIgorCisjOiBtb3VudC9tb3VudC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdHJhbnNsYXRlZCAlcyAnJXMnIHRvICclcydcbiIKK21zZ3N0ciAibW91bnQgOiB0cmFuc2Zvcm1hdGlvbiBkZSAlcyBcIiVzXCIgZW4gXCIlc1wiXG4iCisKKyM6IG1vdW50L21vdW50LmM6NTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogc2Vsb24gbXRhYiAlcyBlc3QgZOlq4CBtb2506SBzdXIgJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHNlbG9uIG10YWIgJXMgZXN0IG1vbnTpIHN1ciAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDogbmUgcGV1dCBvdXZyaXIgJXMgZW4g6WNyaXR1cmU6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDogZXJyZXVyIGQn6WNyaXR1cmUgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXMiCittc2dzdHIgIm1vdW50OiBlcnJldXIgbG9ycyBkdSBjaGFuZ2VtZW50IGRlIG1vZGUgZGUgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIm1vdW50IDogaW1wb3NzaWJsZSBkZSBmaXhlciBsJ2lkIGRlIGdyb3VwZSA6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3NQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibW91bnQgOiBpbXBvc3NpYmxlIGRlIGZpeGVyIGwnaWQgZCd1dGlsaXNhdGV1ciA6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjcxNCBtb3VudC9tb3VudC5jOjE4NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAibW91bnQ6IG5lIHBldXQg6XRhYmxpciB1biByZWxhaXMgZm9yaygpOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIk9uIHRlbnRlICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIiIKKyJtb3VudDogdm91cyBuJ2F2ZXogcGFzIHNw6WNpZmllciBsZSB0eXBlIGRlIHN5c3TobWUgZGUgZmljaGllcnMgcG91ciAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiAgICAgICBKZSB2YWlzIGVzc2F5ZXIgdG91cyBsZXMgdHlwZXMgbWVudGlvbm7pcyBkYW5zICVzIG91ICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICIgICAgICAgZXQgaWwgc2VtYmxlIHF1ZSBjJ2VzdCB1biBlc3BhY2UgZGUgc3dhcFxuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSB0eXBlICVzXG4iCittc2dzdHIgIiAgICAgICBKZSB2YWlzIGVzc2F5ZXIgbGUgdHlwZSAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb29rcyBsaWtlIHN3YXBzcGFjZSAtIG5vdCBtb3VudGVkIgorbXNnc3RyICIlcyByZXNzZW1ibGUg4CB1biBlc2FwY2UgZGUgc3dhcCAtIG4nYSBwYXMg6XTpIG1vbnTpIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDIKK21zZ2lkICJtb3VudCBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIG1vdW50IgorCisjOiBtb3VudC9tb3VudC5jOjEwMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gbW91bnQgJXMgb24gJXMiCittc2dzdHIgIm1vdW50OiBzZXVsIGwndXNhZ2VyIFJPT1QgcGV1dCBtb250ZXIgJXMgc3VyICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzQKK21zZ2lkICJtb3VudDogbG9vcCBkZXZpY2Ugc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogcOlyaXBo6XJpcXVlIGRlIHR5cGUgbG9vcCBzcOljaWZp6SBkZXV4IGZvaXMiCisKKyM6IG1vdW50L21vdW50LmM6MTA3OQorbXNnaWQgIm1vdW50OiB0eXBlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IHR5cGUgc3DpY2lmaekgZGV1eCBmb2lzIgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBlc2NhbW90YWdlIGR1IHNldHVwIGR1IHDpcmlwaOlyaXF1ZSBkZSB0eXBlIGxvb3BcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMgYXMgbG9vcCIKK21zZ3N0ciAibW91bnQgOiBzZWxvbiBtdGFiICVzIGVzdCBk6WrgIG1vbnTpIHN1ciAlcyBlbiB0YW50IHF1ZSBcImxvb3BcIiIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiBvbiBzZSBwculwYXJlIOAgdXRpbGlzZXIgbGUgcOlyaXBo6XJpcXVlIGRlIHR5cGUgbG9vcCAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisibW91bnQgOiBw6XJpcGguIHLpY3Vw6XLpIHBhciB1biBhdXRyZSBwcm9jZXNzdXM9JXMuLi4gbm91dmVsbGUgdGVudGF0aXZlXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgIm1vdW50IDogcOlyaXBoLiByZXByaXMgcGFyIHVuIGF1dHJlIHByb2Nlc3N1cz0lcyIKKworIzogbW91bnQvbW91bnQuYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBmYWlsZWQgc2V0dGluZyB1cCBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDog6WNoZWMgZCdpbml0aWFsaXNhdGlvbiBkdSBw6XJpcGjpcmlxdWUgZGUgdHlwZSBsb29wXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE0MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2V0dXAgbG9vcCBkZXZpY2Ugc3VjY2Vzc2Z1bGx5XG4iCittc2dzdHIgIm1vdW50OiBy6XVzc2l0ZSBkJ2luaXRpYWxpc2F0aW9uIGR1IHDpcmlwaOlyaXF1ZSBkZSB0eXBlIGxvb3BcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyAlcyBmb3VuZCAtIGNyZWF0aW5nIGl0Li5cbiIKK21zZ3N0ciAibW91bnQ6ICVzIG4nYSBwYXMg6XTpIHJlcOly6SAtIG9uIGxlIGNy6WUuLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjExOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICJtb3VudDogbmUgcGV1dCBvdXZyaXIgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIm1vdW50OiBhcmd1bWVudCDgIC1wIG91IC0tcGFzcy1mZCBkb2l0IOp0cmUgdW4gbm9tYnJlIgorCisjOiBtb3VudC9tb3VudC5jOjEyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBvcGVuICVzIGZvciBzZXR0aW5nIHNwZWVkIgorbXNnc3RyICJtb3VudDogbmUgcGV1dCBvdXZyaXIgJXMgcG91ciBhanVzdGVyIGxhIHZpdGVzc2UiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50OiBuZSBwZXV0IGluaXRpYWxpc2VyIGxhIHZpdGVzc2U6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQgOiBzZWxvbiBtdGFiICVzIGVzdCBk6WrgIG1vbnTpIHN1ciAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjEzODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgInVtb3VudDogJXMgZXN0IG9jY3Vw6SAtIHJlbW9udOkgZW4gbGVjdHVyZSBzZXVsZW1lbnRcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDEzCittc2dpZCAiIgorIm1vdW50OiBJIGNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGZpbGVzeXN0ZW0gdHlwZSwgYW5kIG5vbmUgd2FzIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorIm1vdW50OiBqZSBuZSBwZXV4IGTpdGVybWluZXIgbGUgdHlwZSBkZSBzeXN06G1lIGRlIGZpY2hpZXJzIGV0IGF1Y3VuIG4nYSDpdOkgIgorInNw6WNpZmnpIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTYKK21zZ2lkICJtb3VudDogeW91IG11c3Qgc3BlY2lmeSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICJtb3VudDogdm91cyBkZXZleiBzcOljaWZpZXIgbGUgdHlwZSBkZSBzeXN06G1lIGRlIGZpY2hpZXJzIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudDog6WNoZWMgZGUgbW91bnQiCisKKyM6IG1vdW50L21vdW50LmM6MTQyNSBtb3VudC9tb3VudC5jOjE0NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIG5vdCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAibW91bnQ6IGxlIHBvaW50IGRlIG1vbnRhZ2UgJXMgbidlc3QgcGFzIHVuIHLpcGVydG9pcmUiCisKKyM6IG1vdW50L21vdW50LmM6MTQyNworbXNnaWQgIm1vdW50OiBwZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibW91bnQ6IHBlcm1pc3Npb24gcmVmdXPpZSIKKworIzogbW91bnQvbW91bnQuYzoxNDI5Cittc2dpZCAibW91bnQ6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVzZSBtb3VudCIKK21zZ3N0ciAibW91bnQ6IGRvaXQg6nRyZSBsZSBzdXBlciB1c2FnZXIgcG91ciB1dGlsaXNlciBtb3VudCIKKworIzogbW91bnQvbW91bnQuYzoxNDMzIG1vdW50L21vdW50LmM6MTQzNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIGVzdCBvY2N1cOkiCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IHByb2MgZOlq4CBtb2506SIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIGVzdCBk6WrgIG1vbnTpIG91ICVzIGVzdCBvY2N1cOkiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBsZSBwb2ludCBkZSBtb250YWdlICVzIG4nZXhpc3RlIHBhcyIKKworIzogbW91bnQvbW91bnQuYzoxNDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBhIHN5bWJvbGljIGxpbmsgdG8gbm93aGVyZSIKK21zZ3N0ciAiIgorIm1vdW50OiBsZSBwb2ludCBkZSBtb250YWdlICVzIGVzdCB1biBsaWVuIHN5bWJvbGlxdWUgcXVpIHBvaW50ZSB2ZXJzIG51bGxlICIKKyJwYXJ0IgorCisjOiBtb3VudC9tb3VudC5jOjE0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogcOlyaXBo6XJpcXVlIHNw6WNpYWwgJXMgbidleGlzdGUgcGFzIgorCisjOiBtb3VudC9tb3VudC5jOjE0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdFxuIgorIiAgICAgICAoYSBwYXRoIHByZWZpeCBpcyBub3QgYSBkaXJlY3RvcnkpXG4iCittc2dzdHIgIiIKKyJtb3VudDogbGUgcOlyaXBo6XJpcXVlIHNw6WNpYWwgJXMgbidleGlzdGUgcGFzXG4iCisiICAgICAgICh1biBwculmaXhlIGRlIGNoZW1pbiBuJ2VzdCBwYXMgdW4gculwZXJ0b2lyZSlcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICJtb3VudDogJXMgbidlc3QgcGFzIGTpauAgbW9udOkgb3Ugb3B0aW9uIGVycm9u6WUiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorIiAgICAgICBtaXNzaW5nIGNvZGVwYWdlIG9yIGhlbHBlciBwcm9ncmFtLCBvciBvdGhlciBlcnJvciIKK21zZ3N0ciAiIgorIm1vdW50IDogdHlwZSBlcnJvbukgZGUgc3lzdCAuZGUgZmljaGllcnMsIG9wdGlvbiBlcnJvbullLCBzdXBlciBibG9jXG4iCisiICAgICAgICBlcnJvbukgc3VyICVzLCBjb2RlcGFnZSBvdSBhaWRlIG1hbnF1YW50ZSBvdSBhdXRyZSBlcnJldXIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4NworbXNnaWQgIiIKKyIgICAgICAgKGZvciBzZXZlcmFsIGZpbGVzeXN0ZW1zIChlLmcuIG5mcywgY2lmcykgeW91IG1pZ2h0XG4iCisiICAgICAgIG5lZWQgYSAvc2Jpbi9tb3VudC48dHlwZT4gaGVscGVyIHByb2dyYW0pIgorbXNnc3RyICIiCisiICAgICAgIChwb3VyIHBsdXNpZXVycyBzeXN0LiBkZSBmaWNoaWVycyAobmZzLCBjaWZzKSB2b3VzIGF1cmV6XG4iCisiICAgICAgIGJlc29pbiBkJ3VuIHByb2dyYW1tZSAvc2Jpbi9tb3VudC48dHlwZT4gaW50ZXJt6WRpYWlyZSkiCisKKyM6IG1vdW50L21vdW50LmM6MTQ5NgorbXNnaWQgIiIKKyIgICAgICAgKGNvdWxkIHRoaXMgYmUgdGhlIElERSBkZXZpY2Ugd2hlcmUgeW91IGluIGZhY3QgdXNlXG4iCisiICAgICAgIGlkZS1zY3NpIHNvIHRoYXQgc3IwIG9yIHNkYSBvciBzbyBpcyBuZWVkZWQ/KSIKK21zZ3N0ciAiIgorIiAgICAgICAoY2VsYSBwb3VycmFpdCDqdHJlIGxlIHDpcmlwaOlyaXF1ZSBJREUgb/kgdm91cyB1dGlsaXNlelxuIgorIiAgICAgICBpZGUtc2NzaSBhbG9ycyBxdWUgc3IwIG91IHNkYSBvdSBhdXRyZSBzZXJhaXQgcmVxdWlzPykiCisKKyM6IG1vdW50L21vdW50LmM6MTUwMQorbXNnaWQgIiIKKyIgICAgICAgKGFyZW4ndCB5b3UgdHJ5aW5nIHRvIG1vdW50IGFuIGV4dGVuZGVkIHBhcnRpdGlvbixcbiIKKyIgICAgICAgaW5zdGVhZCBvZiBzb21lIGxvZ2ljYWwgcGFydGl0aW9uIGluc2lkZT8pIgorbXNnc3RyICIiCisiICAgICAgICh0ZW50ZXotdm91cyBkZSBtb250ZXIgdW5lIHBhcnRpdGlvbiDpdGVuZHVlLFxuIgorIiAgICAgICBhdSBsaWV1IGQndW5lIHBhcnRpdGlvbiBsb2dpcXVlIOAgbCdpbnTpcmlldXI/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKyIgICAgICAgRGFucyBxdWVscXVlcyBjYXMgY2VydGFpbmVzIGluZm9ybWF0aW9ucyBzb250IHV0aWxlcyBkYW5zIHN5c2xvZyAtICIKKyJlc3NheWV6XG4iCisiICAgICAgIGRtZXNnIHwgdGFpbCAgb3UgcXVlbHF1ZSBjaG9zZSBkdSBnZW5yZVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICJ0YWJsZSBkZSBw6XJpcGjpcmlxdWVzIG1vbnTpcyBlc3QgcGxlaW5lIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiBjYW4ndCByZWFkIHN1cGVyYmxvY2siCittc2dzdHIgIm1vdW50OiAlczogbmUgcGV1dCBsaXJlIGxlIHN1cGVyIGJsb2MiCisKKyM6IG1vdW50L21vdW50LmM6MTUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IHVua25vd24gZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXM6IHDpcmlwaOlyaXF1ZSBpbmNvbm5udSIKKworIzogbW91bnQvbW91bnQuYzoxNTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB1bmtub3duIGZpbGVzeXN0ZW0gdHlwZSAnJXMnIgorbXNnc3RyICJtb3VudDogdHlwZSBpbmNvbm51IGRlIHN5c3TobWUgZGUgZmljaGllcnMgJyVzJyIKKworIzogbW91bnQvbW91bnQuYzoxNTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBwcm9iYWJseSB5b3UgbWVhbnQgJXMiCittc2dzdHIgIm1vdW50OiBwcm9iYWJsZW1lbnQgdm91cyB2b3VsZXogZGlyZSAlcyIKKworIzogbW91bnQvbW91bnQuYzoxNTQyCittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAnaXNvOTY2MCc/IgorbXNnc3RyICJtb3VudDogcGV1dC3qdHJlIHZvdWxlei12b3VzIGRpcmUgJ2lzbzk2NjAnPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDogcGV1dC3qdHJlIHZvdWxlei12b3VzIGRpcmUgJ3ZmYXQnPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBoYXMgd3JvbmcgZGV2aWNlIG51bWJlciBvciBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKyJtb3VudDogJXMgYSB1biBub21icmUgZGUgcOlyaXBo6XJpcXVlIGVycm9u6SBvdSBsZSB0eXBlIGR1IHN5c3QuIGRlIGZpY2hpZXJzICIKKyIlcyBuJ2VzdCBwYXMgc3VwcG9ydOkiCisKKyM6IG1vdW50L21vdW50LmM6MTU1NgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlLCBhbmQgc3RhdCBmYWlscz8iCittc2dzdHIgIm1vdW50OiAlcyBuJ2VzdCBwYXMgdW4gcOlyaXBo6XJpcXVlIGRlIHR5cGUgYmxvYyBldCBzdGF0KCkgYSDpY2hvdek/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogdGhlIGtlcm5lbCBkb2VzIG5vdCByZWNvZ25pemUgJXMgYXMgYSBibG9jayBkZXZpY2VcbiIKKyIgICAgICAgKG1heWJlIGBtb2Rwcm9iZSBkcml2ZXInPykiCittc2dzdHIgIiIKKyJtb3VudDogbGUga2VybmVsIG5lIHJlY29ubmHudCBwYXMgJXMgY29tbWUgdW4gcOlyaXBo6XJpcXVlIGRlIHR5cGUgYmxvY1xuIgorIiAgICAgICAocGV1dC3qdHJlIHVuIHBpbG90ZSCrIGluc21vZCC7PykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIiIKKyJtb3VudDogJXMgbidlc3QgcGFzIHVuIHDpcmlwaOlyaXF1ZSBkZSB0eXBlIGJsb2MgKGVzc2F5ZXIgqyAtbyBsb29wILsgPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgbidlc3QgcGFzIHVuIHDpcmlwaOlyaXF1ZSBkZSB0eXBlIGJsb2MiCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgbidlc3QgcGFzIHVuIHDpcmlwaOlyaXF1ZSB2YWxpZGUgZGUgdHlwZSBibG9jIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzIKK21zZ2lkICJibG9jayBkZXZpY2UgIgorbXNnc3RyICJw6XJpcGjpcmlxdWUgZGUgdHlwZSBibG9jIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIKK21zZ3N0ciAibW91bnQ6IG5lIHBldXQgbW9udGVyICVzJXMgZW4gbGVjdHVyZSBzZXVsZW1lbnQiCisKKyM6IG1vdW50L21vdW50LmM6MTU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQgYnV0IGV4cGxpY2l0IGAtdycgZmxhZyBnaXZlbiIKK21zZ3N0ciAibW91bnQ6ICVzJXMgZXN0IHByb3TpZ+kgZW4g6WNyaXR1cmUgbWFpcyBsJ29wdGlvbiCrIC13ILsgYSDpdOkgZm91cm5pZSIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIm1vdW50OiBuZSBwZXV0IG1vbnRlciAlcyVzIGVuIGxlY3R1cmUgc2V1bGVtZW50IgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIGVzdCBwcm906WfpIGVuIOljcml0dXJlLCBvbiBsZSBtb250ZSBlbiBsZWN0dXJlIHNldWxlbWVudCIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIm1vdW50IDogbWVkaWEgbm9uIHBy6XNlbnQgZGFucyAlcyAuLi5ub3V2ZWwgZXNzYWlcbiIKKworIzogbW91bnQvbW91bnQuYzoxNjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMiCittc2dzdHIgIm1vdW50OiBhdWN1biBtZWRpYSB0cm91dukgZGFucyAlcyIKKworIzogbW91bnQvbW91bnQuYzoxNjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogJXMgZG9lcyBub3QgY29udGFpbiBTRUxpbnV4IGxhYmVscy5cbiIKKyIgICAgICAgWW91IGp1c3QgbW91bnRlZCBhbiBmaWxlIHN5c3RlbSB0aGF0IHN1cHBvcnRzIGxhYmVscyB3aGljaCBkb2VzIG5vdFxuIgorIiAgICAgICBjb250YWluIGxhYmVscywgb250byBhbiBTRUxpbnV4IGJveC4gSXQgaXMgbGlrZWx5IHRoYXQgY29uZmluZWRcbiIKKyIgICAgICAgYXBwbGljYXRpb25zIHdpbGwgZ2VuZXJhdGUgQVZDIG1lc3NhZ2VzIGFuZCBub3QgYmUgYWxsb3dlZCBhY2Nlc3MgdG9cbiIKKyIgICAgICAgdGhpcyBmaWxlIHN5c3RlbS4gIEZvciBtb3JlIGRldGFpbHMgc2VlIHJlc3RvcmVjb24oOCkgYW5kIG1vdW50KDgpLlxuIgorbXNnc3RyICIiCisibW91bnQ6ICVzIG5lIGNvbnRpZW50IHBhcyBkJ+l0aXF1ZXR0ZSBTRUxpbnV4LlxuIgorIiAgICAgICBWb3VzIGF2ZXogbW9udOkgdW4gc3lzdOhtZSBkZSBmaWNoaWVycyDgIOl0aXF1ZXR0ZXMgcXVpIG4nZW5cbiIKKyIgICAgICAgY29udGllbnQgcGFzLCBzdXIgc3lzdOhtZSBTRUxpbnV4LiBEdSBjb3VwLCBsZXMgYXBwbGljYXRpb25zIG5vblxuIgorIiAgICAgICBwcml2aWzpZ2npZXMgZ+lu6HJlcm9udCBkZXMgbWVzc2FnZXMgQVZDIGV0IG5lIHBvdXJyb250IHBhc1xuIgorIiAgICAgICBhY2PpZGVyIGF1eCBmaWNoaWVycy4gUG91ciBkZXMgZOl0YWlscywgdm9pciByZXN0b3JlY29uKDgpIGV0IG1vdW50IgorIig4KS5cbiIKKworIzogbW91bnQvbW91bnQuYzoxNzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtIEknbGwgYXNzdW1lIG5mcyBiZWNhdXNlIG9mIHRoZSBjb2xvblxuIgorbXNnc3RyICIiCisibW91bnQ6IGF1Y3VuIHR5cGUgbidhIOl06SBkb25u6SAtIGphIHZhaXMgYXNzdW1lciBuZnMgZW4gcmFpc29uIGR1IKsgOiC7XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICIiCisibW91bnQ6IGF1Y3VuIHR5cGUgbidhIOl06SBmb3VybmkgLSBqZSB2YWlzIGFzc3VtZXIgY2lmcyBlbiByYWlzb24gZHUgIgorInBy6WZpeGUgLy9cbiIKKworIzogbW91bnQvbW91bnQuYzoxODExCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6ICVzIGVzdCBk6WrgIG1vbnTpIHN1ciAlc1xuIgorCisjIG1vdW50L21vdW50LmM6MTMyMworIzogbW91bnQvbW91bnQuYzoxOTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogcHJpbnQgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBwcmludCB0aGlzIGhlbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdCBtb3VudGVkIGZpbGVzeXN0ZW1zXG4iCisiICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1ZGluZyB2b2x1bWUgbGFiZWxzXG4iCisiU28gZmFyIHRoZSBpbmZvcm1hdGlvbmFsIHBhcnQuIE5leHQgdGhlIG1vdW50aW5nLlxuIgorIlRoZSBjb21tYW5kIGlzIGBtb3VudCBbLXQgZnN0eXBlXSBzb21ldGhpbmcgc29tZXdoZXJlJy5cbiIKKyJEZXRhaWxzIGZvdW5kIGluIC9ldGMvZnN0YWIgbWF5IGJlIG9taXR0ZWQuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IG1vdW50IGFsbCBzdHVmZiBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgIDogbW91bnQgZGV2aWNlIGF0IHRoZSBrbm93biBwbGFjZVxuIgorIiAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICAgOiBtb3VudCBrbm93biBkZXZpY2UgaGVyZVxuIgorIiAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICAgOiBvcmRpbmFyeSBtb3VudCBjb21tYW5kXG4iCisiTm90ZSB0aGF0IG9uZSBkb2VzIG5vdCByZWFsbHkgbW91bnQgYSBkZXZpY2UsIG9uZSBtb3VudHNcbiIKKyJhIGZpbGVzeXN0ZW0gKG9mIHRoZSBnaXZlbiB0eXBlKSBmb3VuZCBvbiB0aGUgZGV2aWNlLlxuIgorIk9uZSBjYW4gYWxzbyBtb3VudCBhbiBhbHJlYWR5IHZpc2libGUgZGlyZWN0b3J5IHRyZWUgZWxzZXdoZXJlOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIm9yIG1vdmUgYSBzdWJ0cmVlOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgb2xkZGlyIG5ld2RpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIG1vdW50IGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBkaXJcbiIKKyJBIGRldmljZSBjYW4gYmUgZ2l2ZW4gYnkgbmFtZSwgc2F5IC9kZXYvaGRhMSBvciAvZGV2L2Nkcm9tLFxuIgorIm9yIGJ5IGxhYmVsLCB1c2luZyAgLUwgbGFiZWwgIG9yIGJ5IHV1aWQsIHVzaW5nICAtVSB1dWlkIC5cbiIKKyJPdGhlciBvcHRpb25zOiBbLW5mRnJzdnddIFstbyBvcHRpb25zXSBbLXAgcGFzc3dkZmRdLlxuIgorIkZvciBtYW55IG1vcmUgZGV0YWlscywgc2F5ICBtYW4gOCBtb3VudCAuXG4iCittc2dzdHIgIiIKKyJVdGlsaXNhdGlvbiA6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IGFmZmljaGVyIGxhIHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogYWZmaWNoZXIgY2V0dGUgYWlkZVxuIgorIiAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgOiBsaXN0ZXIgbGVzIHN5c3TobWVzIGRlIGZpY2hpZXJzIG1vbnTpc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWFudCBsZXMg6XRpcXVldHRlcyBkZSB2b2x1bWVzXG4iCisiQ2VsYSBwb3VyIGxhIHBhcnRpZSBpbmZvcm1hdGl2ZS4gU3VpdCBjZSBxdWkgcG9ydGUgc3VyIGxlIG1vbnRhZ2UuXG4iCisiTGEgY29tbWFuZGUgZXN0IKsgbW91bnQgWy10IHR5cGUtc3lzLWZpY2hpZXJdICBxdW9pICBv+SC7LlxuIgorIkxlcyBk6XRhaWxzIHNlIHRyb3V2YW50IGRhbnMgL2V0Yy9mc3RhYiBwZXV2ZW50IOp0cmUgb21pcy5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDogbW9udGVyIHRvdXQgY2UgcXVpIGVzdCBsaXN06SBkYW5zIC9ldGMvIgorImZzdGFiXG4iCisiICAgICAgIG1vdW50IHDpcmlwaOlyaXF1ZSAgICA6IG1vbnRlciBsZSBw6XJpcGjpcmlxdWUg4CBsJ2VuZHJvaXQgY29ubnVcbiIKKyIgICAgICAgbW91bnQgculwZXJ0b2lyZSAgICAgICAgIDogbW9udGVyIGxlIHDpcmlwaOlyaXF1ZSBjb25udSBpY2lcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBw6XJpcGggculwIDogY29tbWFuZGUgZGUgbW9udGFnZSBvcmRpbmFpcmVcbiIKKyJOb3RlciBxdWUgY2VsbGUtY2kgbmUgbW9udGUgcGFzIHLpZWxsZW1lbnQgdW4gcOlyaXBo6XJpcXVlLCBlbGxlIG1vbnRlXG4iCisidW4gc3lzdOhtZSBkZSBmaWNoaWVycyAoZGUgdHlwZSBkb25u6SkgdHJvdXbpIHN1ciBsZSBw6XJpcGjpcmlxdWUuXG4iCisiRWxsZSBwZXV0IGF1c3NpIG1vbnRlciB1bmUgYXJib3Jlc2NlbmNlIGRlIHLpcC4gZOlq4CB2aXNpYmxlIGFpbGxldXJzIDpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIGFuY2llbi1y6XAgbm91dmVhdS1y6XBcbiIKKyJvdSBk6XBsYWNlciB1bmUgc291cy1hcmJvcmVzY2VuY2U6XG4iCisiICAgICAgIG1vdW50IC0tbW92ZSBhbmNpZW4tculwIG5vdXZlYXUtculwXG4iCisiRWxsZSBwZXV0IGNoYW5nZXIgbGUgdHlwZSBkZSBtb250YWdlIGQndW4gculwLiA6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgculwLlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgculwLlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBy6XAuXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIHLpcC5cbiIKKyJFbGxlIHBldXQgY2hhbmdlciBsZSB0eXBlIGRlIHRvdXMgbGVzIHBvaW50cyBkZSBtb250YWdlIGQndW5lXG4iCisic291cy1hcmJvcmVjZW5jZSBjb250ZW51ZSBkYW5zIGxlIHLpcC46XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIHLpcC5cbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBy6XAuXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ycHJpdmF0ZSBy6XAuXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBy6XAuXG4iCisiVW4gcOlyaXBoLiBwZXV0IOp0cmUgbm9tbeksIGNvbW1lIC9kZXYvaGRhMSBvdSAvZGV2L2Nkcm9tLCBvdVxuIgorInJlcOly6SBwYXIgbCfpdGlxdWV0dGUsIGF2ZWMgIC1MIOl0aXF1LiAgb3UgcGFyIFVVSUQsIGF2ZWMgLVUgdXVpZCAuXG4iCisiQXV0cmVzIG9wdGlvbnM6IFstbmZGcnN2d10gWy1vIG9wdGlvbnNdIFstcCBkZXNjcl9maWNfbW90c19wYXNzZV0uXG4iCisiUG91ciBwbHVzIGRlIGTpdGFpbHMsIHRhcGV6IFwibWFuIDggbW91bnRcIi5cbiIKKworIzogbW91bnQvbW91bnQuYzoyMjc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IChlZmZlY3RpdmUgVUlEIGlzICVkKSIKK21zZ3N0ciAibW91bnQ6IHNldWwgbCd1c2FnZXIgUk9PVCBwZXV0IGZhaXJlIGNlbGEiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIm1vdW50OiBzZXVsIGwndXNhZ2VyIFJPT1QgcGV1dCBmYWlyZSBjZWxhIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJyaWVuIG4nYSDpdOkgbW9udOkiCisKKyM6IG1vdW50L21vdW50LmM6MjMwNiBtb3VudC9tb3VudC5jOjIzMzIKK21zZ2lkICJtb3VudDogbm8gc3VjaCBwYXJ0aXRpb24gZm91bmQiCittc2dzdHIgIm1vdW50OiBwYXMgZGUgdGVsbGUgcGFydGl0aW9uIHJlcOly6WUiCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6IG5lIHBldXQgcmVw6XJlciAlcyBkYW5zICVzIG91ICVzIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IHdhcm5pbmc6IG5vIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiAlc1xuIgorbXNnc3RyICJbbW50ZW50XTogQVZFUlRJU1NFTUVOVDogYXVjdW4gbm91dmVsbGUgbGlnbmUgZmluYWxlIOAgbGEgZmluIGRlICVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogbGluZSAlZCBpbiAlcyBpcyBiYWQlc1xuIgorbXNnc3RyICJbbW50ZW50XTogbGlnbmUgJWQgZGFucyAlcyBlc3QgZXJyb27pJXNcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE5Cittc2dpZCAiOyByZXN0IG9mIGZpbGUgaWdub3JlZCIKK21zZ3N0ciAiOyByZXN0ZSBkdSBmaWNoaWVyIGVzdCBpZ25vcukiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAicHJvYmzobWUgZGFucyBsJ2FwcGVsIGRlIHhzdHJuZHVwIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgInBhcyBhc3NleiBkZSBt6W1vaXJlIgorCisjOiBtb3VudC9zd2Fwb24uYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICBMQUJFTCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgICAgVVVJRCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZGV2aWNlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZmlsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBmaWxlIHRvIGJlIHVzZWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkxlIHBhcmFt6HRyZSA8c3BlY2lhbD46XG4iCisiIHstTCDpdGlxdS4gfCBMQUJFTD3pdGlxdS59ICAgICAgICAgICAgIOl0aXF1ZXR0ZSBkdSBw6XJpcGguIOAgdXRpbGlzZXJcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIFVVSUQgIGR1IHDpcmlwaC4g4CB1dGlsaXNlclxuIgorIiA8cGVyaXBoLj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbSBkdSBkdSBw6XJpcGguIOAgdXRpbGlzZXJcbiIKKyIgPGZpY2hpZXI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbSBkdSBmaWNoaWVyIOAgdXRpbGlzZXJcbiIKKyJcbiIKKworIzogbW91bnQvc3dhcG9uLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstZV0gWy12XSBbLWZdICAgICAgICAgICAgIGVuYWJsZSBhbGwgc3dhcHMgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICUxJHMgWy1wIHByaW9yaXR5XSBbLXZdIFstZl0gPHNwZWNpYWw+ICBlbmFibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1zICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgc3dhcCB1c2FnZSBzdW1tYXJ5XG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVdGlsaXNhdGlvbiA6IChzd2FwPWVzcGFjZSBkJ+ljaGFuZ2UpXG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgYWN0aXZlIHRvdXMgbGVzIHN3YXBzIGRlIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdOldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGFjdGl2ZSBsZSBzd2FwIGRvbm7pXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaWNoZSBsZSBy6XN1bekgZCd1dGlsaXNhdGlvbiBkdSBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaWNoZSBsJ2FpZGVcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZmZpY2hlIGxlIG6wIGRlIHZlcnNpb25cbiIKKyJcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIHN3YXBzXG4iCisiICUxJHMgWy12XSA8c3BlY2lhbD4gICAgICAgICAgICAgICBkaXNhYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVdGlsaXNhdGlvbiA6IChzd2FwPWVzcGFjZSBkJ+ljaGFuZ2UpXG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBk6XNhY3RpdmUgdG91cyBsZXMgc3dhcHNcbiIKKyIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGTpc2FjdGl2ZSBsZSBzd2FwIGRvbm7pXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBhZmZpY2hlIGwnYWlkZVxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaWNoZSBsZSBusCBkZSB2ZXJzaW9uXG4iCisiXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5leHBlY3RlZCBmaWxlIGZvcm1hdCIKK21zZ3N0ciAiJXMgOiBmb3JtYXQgZGUgZmljaGllciBpbmF0dGVuZHUiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIlcyA6IHLpaW5pdGlhbGlzYXRpb24gZGUgbCdlc3BhY2UgZCfpY2hhbmdlLiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCittc2dpZCAiZm9yayBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIGxhIGZvbmN0aW9uIFwiZm9ya1wiIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKK21zZ2lkICJleGVjdiBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIGxhIGZvbmN0aW9uIFwiZXhlY3ZcIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjQ3Cittc2dpZCAid2FpdHBpZCBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIGxhIGZvbmN0aW9uIFwid2FpdHBpZFwiIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAiJXMgOiDpY2hlYyBkZSBcImxzZWVrXCIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIKK21zZ3N0ciAiJXMgOiDpY2hlYyBkJ+ljcml0dXJlIGRlIHNpZ25hdHVyZSIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKKyMsIGZ1enp5Cittc2dpZCAic2FtZSIKK21zZ3N0ciAiTm9tIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN0YXQgZmFpbGVkIgorbXNnc3RyICIlcyA6IOljaGVjIGRlIGZvbmN0aW9uIFwic3RhdFwiIgorCisjOiBtb3VudC9zd2Fwb24uYzozOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGluc2VjdXJlIHBlcm1pc3Npb25zICUwNG8sICUwNG8gc3VnZ2VzdGVkLiIKK21zZ3N0ciAiJXMgOiBwZXJtaXNzaW9ucyBub24gc/tyZXMgJTA0bywgJTA0byBzdWdn6XLpZXMuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIC0gaXQgYXBwZWFycyB0byBoYXZlIGhvbGVzLiIKK21zZ3N0ciAiJXMgOiBpZ25vcukgLSBzZW1ibGUgYXZvaXIgZGVzIHRyb3VzLiIKKworIzogbW91bnQvc3dhcG9uLmM6NDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBnZXQgc2l6ZSBmYWlsZWQiCittc2dzdHIgIiVzIDogaW1wb3NzaWJsZSBkJ29idGVuaXIgbGEgdGFpbGxlIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgc3dhcCBoZWFkZXIgZmFpbGVkIgorbXNnc3RyICIlcyA6IGVycmV1ciBkZSBsZWN0dXJlIGRlIGwnZW506nRlIGRlIHpvbmUgZCfpY2hhbmdlIChzd2FwKSIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisiJXM6IGRlcm5p6HJlX3BhZ2UgMHglMDhsbHggcGx1cyBncmFuZGUgcXVlIGxhIHRhaWxsZSBhY3R1ZWxsZSBkJ2VzcGFjZSAiCisiZCfpY2hhbmdlIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiIKK21zZ3N0ciAiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiIKKworIzogbW91bnQvc3dhcG9uLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIChVc2UgLS1maXhwZ3N6IHRvIHJlaW5pdGlhbGl6ZSBpdC4pIgorbXNnc3RyICIiCisiJXMgOiB0YWlsbGUgZGUgcGFnZSBuZSBjb3JyZXNwb25kYW50IHBhcyBhdmVjIGxlIGZvcm1hdCBkJ2VzcGFjZSBkJ+ljaGFuZ2UgIgorIih1dGlsaXNlciAtLWZpeHBnc3ogcG91ciBy6WluaXRpYWxpc2VyKSIKKworIzogbW91bnQvc3dhcG9uLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuIFJld3JpdGluZyB0aGUgc3dhcCBzaWduYXR1cmUuIgorbXNnc3RyICIiCisiJXMgOiBkb25u6WVzIGRlIG1pc2UgZW4gdmVpbGxlIGQnYXBwbGljYXRpb24gZOl0ZWN06WVzLiBS6eljcml0dXJlIGRlIGxhICIKKyJzaWduYXR1cmUgZCdlc3BhY2UgZCfpY2hhbmdlIChzd2FwKS4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ3OCBtb3VudC9zd2Fwb24uYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgb24gJXNcbiIKK21zZ3N0ciAiJXMgc3VyICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9uIGZhaWxlZCIKK21zZ3N0ciAiJXMgOiDpY2hlYyBkZSBsYSBmb25jdGlvbiBcInN3YXBvblwiIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgImltcG9zc2libGUgZGUgdHJvdXZlciBsZSBw6XJpcGjpcmlxdWUgJXMiCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MAorbXNnaWQgIk5vdCBzdXBlcnVzZXIuIgorbXNnc3RyICJWb3VzIG4n6nRlcyBwYXMgbGUgc3VwZXItdXRpbGlzYXRldXIgKHJvb3QpLiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb2ZmIGZhaWxlZCIKK21zZ3N0ciAiJXMgOiDpY2hlYyBkZSBsYSBmb25jdGlvbiBcInN3YXBvZmZcIiIKKworIzogbW91bnQvc3dhcG9uLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgdW5zdXBwb3J0ZWQgcHJvZ3JhbSBuYW1lIChtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAtZlxuIgorbXNnc3RyICJ1bW91bnQ6IGNvbXBpbOkgc2FucyBzdXBwb3J0IHBvdXIgLWZcbiIKKworIzogbW91bnQvdW1vdW50LmM6MTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgInVtb3VudCA6IGltcG9zc2libGUgZGUgZml4ZXIgbCdpZCBkZSBncm91cGUgOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAidW1vdW50IDogaW1wb3NzaWJsZSBkZSBmaXhlciBsJ2lkIGQndXRpbGlzYXRldXIgOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJtb3VudDogbmUgcGV1dCBmYWlyZSB1biBmb3JrKCk6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogaW52YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgInVtb3VudDogJXM6IHDpcmlwaOlyaXF1ZSBkZSB0eXBlIGJsb2MgaW52YWxpZGUiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIKK21zZ3N0ciAidW1vdW50OiAlczogbidlc3QgcGFzIG1vbnTpIgorCisjOiBtb3VudC91bW91bnQuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogY2FuJ3Qgd3JpdGUgc3VwZXJibG9jayIKK21zZ3N0ciAidW1vdW50OiAlczogbmUgcGV1dCDpY3JpcmUgc3VyIGxlIHN1cGVyIGJsb2MiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisiZOltb250YWdlIDogJXM6IHDpcmlwaOlyaXF1ZSBvY2N1cOkuXG4iCisiICAgICAgIChEYW5zIGNlcnRhaW5zIGNhcywgZGVzIGluZm9zIHN1ciBsZXMgcHJvY2Vzc3VzIGwndXRpbGlzYW50XG4iCisiICAgICAgICBzb250IHLpY3Vw6XJhYmxlcyBwYXIgbHNvZig4KSBvdSBmdXNlcigxKSkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgZm91bmQiCittc2dzdHIgInVtb3VudDogJXM6IG4nYSBwYXMg6XTpIHRyb3V26SIKKworIzogbW91bnQvdW1vdW50LmM6MTc1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVtb3VudCIKK21zZ3N0ciAidW1vdW50OiAlczogZG9pdCDqdHJlIGxlIHN1cGVyIHVzYWdlciBwb3VyIHV0aWxpc2VyIHVtb3VudCIKKworIzogbW91bnQvdW1vdW50LmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGJsb2NrIGRldmljZXMgbm90IHBlcm1pdHRlZCBvbiBmcyIKK21zZ3N0ciAiIgorInVtb3VudDogJXM6IHDpcmlwaOlyaXF1ZSBkZSB0eXBlIGJsb2Mgbm9uIGF1dG9yaXPpIHN1ciBsZSBzeXN06G1lIGRlIGZpY2hpZXJzIgorCisjOiBtb3VudC91bW91bnQuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogJXMiCittc2dzdHIgInVtb3VudDogJXM6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdW1vdW50MiwgdHJ5aW5nIHVtb3VudC4uLlxuIgorbXNnc3RyICJwYXMgZGUgdW1vdW50MiwgdGVudGF0aXZlIGF2ZWMgdW1vdW50Li4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogJXMgZXN0IG9jY3Vw6SAtIHJlbW9udOkgZW4gbGVjdHVyZSBzZXVsZW1lbnRcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY291bGQgbm90IHJlbW91bnQgJXMgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogbmUgcGV1dCByZW1vbnRlciAlcyBlbiBsZWN0dXJlIHNldWxlbWVudFxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdW1vdW50ZWRcbiIKK21zZ3N0ciAiJXMgZOltb2506VxuIgorCisjOiBtb3VudC91bW91bnQuYzozNjcKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBmaW5kIGxpc3Qgb2YgZmlsZXN5c3RlbXMgdG8gdW5tb3VudCIKK21zZ3N0ciAidW1vdW50OiBuZSBwZXV0IHJlcOlyZXIgbGEgbGlzdGUgZGVzIHN5c3TobWVzIGRlIGZpY2hpZXJzIOAgZOltb250ZXIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisiVXRpbGlzYXRpb24gOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB0eXBldmZzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcOljaWFsIHwgbm9ldWQuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAicOlyaXBo6XJpcXVlICVzIGTpauAgYXNzb2Np6SBhdmVjICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJw6XJpcGjpcmlxdWUgJXMgbm9uIGFzc29jaekgYXZlYyAlc1xuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAiTmUgcGV1dCBk6W1vbnRlciBcIlwiXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIlRlbnRhdGl2ZSBwb3VyIGTpbW9udGVyICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAidW1vdW50IDogcHJvYmzobWUg4CBsJ2FuYWx5c2UgZGUgbXRhYiIKKworIzogbW91bnQvdW1vdW50LmM6NTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHVtb3VudCAlcyAtLSAlcyBpcyBtb3VudGVkIG92ZXIgaXQgb24gdGhlIHNhbWUgcG9pbnQuIgorbXNnc3RyICJ1bW91bnQgOiBpbXBvc3NpYmxlIGRlIGTpbW9udGVyICVzIC0tICVzIGVzdCBtb2506SBhdSBt6m1lIGVuZHJvaXQuIgorCisjOiBtb3VudC91bW91bnQuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgJXMgaW4gbXRhYlxuIgorbXNnc3RyICJOZSBwZXV0IHJlcOlyZXIgJXMgZGFucyBtdGFiXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBtb3VudGVkIChhY2NvcmRpbmcgdG8gbXRhYikiCittc2dzdHIgInVtb3VudDogJXMgbidlc3QgcGFzIG1vbnTpIChzZWxvbiBtdGFiKSIKKworIzogbW91bnQvdW1vdW50LmM6NTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogaXQgc2VlbXMgJXMgaXMgbW91bnRlZCBtdWx0aXBsZSB0aW1lcyIKK21zZ3N0ciAidW1vdW50OiBpbCBzZW1ibGUgcXVlICVzIGFpdCDpdOkgbW9udOkgcGx1c2lldXJzIGZvaXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBpbiB0aGUgZnN0YWIgKGFuZCB5b3UgYXJlIG5vdCByb290KSIKK21zZ3N0ciAidW1vdW50OiAlcyBuJ2VzdCBwYXMgZGFucyBmc3RhYiAoZXQgdm91cyBuJ+p0ZXMgcGFzIGwndXNhZ2VyIFJPT1QpIgorCisjOiBtb3VudC91bW91bnQuYzo1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBtb3VudCBkaXNhZ3JlZXMgd2l0aCB0aGUgZnN0YWIiCittc2dzdHIgInVtb3VudDogJXMgbW91bnQgZXN0IGVuIGTpc2FjY29yZCBhdmVjIGZzdGFiIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBvbmx5ICVzIGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCittc2dzdHIgInVtb3VudDogc2V1bCAlcyBwZXV0IGTpbW9udGVyICVzIGRlICVzIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAidW1vdW50OiBzZXVsIGwndXNhZ2VyIFJPT1QgcGV1dCBleOljdXRlciBsYSBjb21tYW5kZSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImNocnQgLSBtYW5pcHVsYXRlIHJlYWwtdGltZSBhdHRyaWJ1dGVzIG9mIGEgcHJvY2Vzcy5cbiIKKyJcbiIKKyJTZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gPHBvbGljeT4gPHByaW9yaXR5PiB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiR2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJcbiIKKyJTY2hlZHVsaW5nIHBvbGljaWVzOlxuIgorIiAgLWIgfCAtLWJhdGNoICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9CQVRDSFxuIgorIiAgLWYgfCAtLWZpZm8gICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9GSUZPXG4iCisiICAtaSB8IC0taWRsZSAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0lETEVcbiIKKyIgIC1vIHwgLS1vdGhlciAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfT1RIRVJcbiIKKyIgIC1yIHwgLS1yciAgICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfUlIgKGRlZmF1bHQpXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwXG4iCisiICAtcCB8IC0tcGlkICAgICAgICAgICBvcGVyYXRlIG9uIGV4aXN0aW5nIGdpdmVuIHBpZFxuIgorIiAgLW0gfCAtLW1heCAgICAgICAgICAgc2hvdyBtaW4gYW5kIG1heCB2YWxpZCBwcmlvcml0aWVzXG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgICBkaXNwbGF5IHN0YXR1cyBpbmZvcm1hdGlvblxuIgorIiAgLVYgfCAtLXZlcnNpb24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorImNocnQgLSBtYW5pcHVsZSBsZXMgYXR0cmlidXRzIHRlbXBzLXLpZWwgZCd1biBwcm9jZXNzdXMuXG4iCisiXG4iCisiRml4ZXIgbGEgc3RyYXTpZ2llIDpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxzdHJhdOlnaWU+IDxwcmlvcml06T4gezxwaWQ+IHwgPGNvbW1hbmRlPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJPYnRlbmlyIGxhIHN0cmF06WdpZSA6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZGU+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIlxuIgorIlN0cmF06WdpZXMgZGUgcGxhbmlmaWNhdGlvbiBkJ2V46WN1dGlvbiA6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICBmaXhlIGxhIHN0cmF06WdpZSDgIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBmaXhlIGxhIHN0cmF06WdpZSDgIFNDSEVEX0ZJRk9cbiIKKyIgIC1pIHwgLS1pZGxlICAgICAgICAgIGZpeGUgbGEgc3RyYXTpZ2llIOAgU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgZml4ZSBsYSBzdHJhdOlnaWUg4CBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgZml4ZSBsYSBzdHJhdOlnaWUg4CBTQ0hFRF9SUiAocGFyIGTpZmF1dClcbiIKKyJcbiIKKyJPcHRpb25zIDpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIGFmZmljaGUgY2V0dGUgYWlkZVxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgYWdpdCBzdXIgbGUgcGlkIGRvbm7pXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBhZmZpY2hlIGxlcyBwcmlvcml06XMgbWluL21heCB2YWxhYmxlc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgYWZmaWNoZSBsZXMgaW5mb3JtYXRpb25zIGQn6XRhdFxuIgorIiAgLVYgfCAtLXZlcnNpb24gICAgICAgYWZmaWNoZSBsZXMgaW5mb3JtYXRpb25zIGRlIHZlcnNpb25cbiIKKyJcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgImltcG9zc2libGUgZCdvYnRlbmlyIGxhIHN0cmF06WdpZSBkJ2V46WN1dGlvbiBkdSBwaWQgJWQiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgInN0cmF06WdpZSBkZSBwbGFuaWZpY2F0aW9uIGQnZXjpY3V0aW9uIHBvdXIgcGlkICVkICVzIDoiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgImluY29ubnVcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ29idGVuaXIgbGVzIGF0dHJpYnV0cyBwb3VyIGxlIHBpZCAlZCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTE1CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcHJpb3JpdHk6ICVkXG4iCittc2dzdHIgInByaW9yaXTpIGRlIHBsYW5pZmljYXRpb24gZCdleOljdXRpb24gcG91ciBsZSBwaWQgJWQgJXMgOiAlZFxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICJTQ0hFRF8lcyBwcmlvcml06SBtaW4vbWF4IFx0OiAlZC8lZFxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbm90IHN1cHBvcnRlZD9cbiIKK21zZ3N0ciAiU0NIRURfJXMgbm9uIHN1cHBvcnTpKGUpID9cbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjAzCittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHBpZCIKK21zZ3N0ciAiYW5hbHlzZSBpbXBvc3NpYmxlIHBvdXIgY2UgcGlkIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMjUKK21zZ2lkICJjdXJyZW50IgorbXNnc3RyICJhY3R1ZWwiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzMworbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxhIHByaW9yaXTpIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHNldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgImltcG9zc2libGUgZGUgZml4ZXIgbGEgc3RyYXTpZ2llIGQnZXjpY3V0aW9uIGR1IHBpZCAlZCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCisjLCBmdXp6eQorbXNnaWQgIm5ldyIKK21zZ3N0ciAiTm91dmVsbGUiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0OAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2V46WN1dGVyICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjU3Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIGxhIGZvbmN0aW9uIFwiaW9wcmlvX2dldFwiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjc1Cittc2dpZCAiaW9wcmlvX3NldCBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIGxhIGZvbmN0aW9uIFwiaW9wcmlvX3NldFwiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisiXG4iCisiVXNhZ2U6XG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSA8Y29tbWFuZD4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBzY2hlZHVsaW5nIGNsYXNzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIDA6IG5vbmUsIDE6IHJlYWx0aW1lLCAyOiBiZXN0LWVmZm9ydCwgMzogaWRsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJpb25pY2UgLSBmaXhlIG91IG9idGllbnQgbGEgcHJpb3JpdOkgZXQgbGEgY2xhc3NlIGRlIHBsYW5pZmljYXRpb24gIgorImQnZXjpY3V0aW9uLlxuIgorIlxuIgorIlVzYWdlIDpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9ub2NlIFsgb3B0aW9ucyBdIDxjb21tYW5kZT4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zIDpcbiIKKyIgIC1uIDxjbGFzc2U+ICAgICAgY2xhc3NlICgwLTcsIHBsdXMgcGV0aXQ9cHJpb3JpdOkgcGx1cyBncmFuZGUpXG4iCisiICAtYyA8Y2xhc3NlPiAgICAgIGNsYXNzZSBkJ2V46WN1dGlvblxuIgorIiAgICAgICAgICAgICAgICAgICAgICAwOiBhdWN1bmUsIDE6IHRlbXBzIHLpZWwsIDI6IG1laWxsZXVyIGVmZm9ydCwgMzogIgorInZlaWxsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgbGVzIOljaGVjc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICBjZXR0ZSBhaWRlXG4iCisiXG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEwIHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBwYXJzZSBudW1iZXIgJyVzJyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIG5vbWJyZSAnJXMnIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgImNsYXNzZSBpZ25vcullIHBvdXIgbGEgcHJpb3JpdOkgXCJhdWN1bmVcIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICJjbGFzc2UgZGUgdmVpbGxlIHNw6WNpZmnpZSBpZ25vcullIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcHJpbyBjbGFzcyAlZCIKK21zZ3N0ciAibWF1dmFpc2UgY2xhc3NlIGRlIHByaW9yaXTpICVkIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE4NworbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIFwiZXhlY3ZwXCIiCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgYmUgcm9vdCB0byBzZXQgdGhlIEN0cmwtQWx0LURlbCBiZWhhdmlvdXIuXG4iCittc2dzdHIgIiIKKyJWb3VzIGRldmV6IOp0cmUgbCd1c2FnZXIgUk9PVCBwb3VyIGFjdGl2ZXIgbGUgY29tcG9ydGVtZW50IGRlIENUUkwtQWx0LURlbC5cbiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzo0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkZpY2hpZXIgJXMsIHBvdXIgbGEgdmFsZXVyIGRlIHNldWlsICVsdSwgbm9tYnJlIG1heHVtdW0gZGUgY2FyYWN06HJlcyBkYW5zICIKKyJsZSBmaWZvIOl0YWl0IGRlICVkLFxuIgorImV0IGxlIHRhdXggZGUgdHJhbnNmZXJ0IG1heGltdW0gZW4gY2FyYWN06HJlcy9zZWNvbmRlcyDpdGFpdCBkZSAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSBhbmQgdGltcm91dCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyAiCisiaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiRmljaGllciAlcywgcG91ciBsYSB2YWxldXIgZGUgc2V1aWwgJWx1IGV0IGxlIGTpbGFpIGRlIGdy4mNlIOl0YWl0ICVsdSwgIgorIm5vbWJyZSBtYXh1bXVtIGRlIGNhcmFjdOhyZXMgZGFucyBsZSBmaWZvIOl0YWl0IGRlICVkLFxuIgorImV0IGxlIHRhdXggZGUgdHJhbnNmZXJ0IG1heGltdW0gZW4gY2FyYWN06HJlcy9zZWNvbmRlcyDpdGFpdCBkZSAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZhbGV1ciBpbnRlcm5lIGludmFsaWRlOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJWYWxldXIgZCdpbml0aWFsaXNhdGlvbiBpbnZhbGlkZTogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZhbGV1ciBwYXIgZOlmYXV0IGludmFsaWRlOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZhbGV1ciBkZSB0ZW1wcyBpbnZhbGlkZTogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVmFsZXVyIGRlIHRlbXBzIHBhciBk6WZhdXQgaW52YWxpZGU6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXEgWy1pIGludGVydmFsXV0gKFstcyB2YWx1ZV18Wy1TIHZhbHVlXSkgKFstdCB2YWx1ZV18Wy1UIHZhbHVlXSkgIgorIlstZ3wtR10gZmlsZSBbZmlsZS4uLl1cbiIKK21zZ3N0ciAiIgorIlV0aWxpc2F0aW9uIDogJXMgWy1xIFstaSBpbnRlcnZhbGxlXV0gKFstcyB2YWxldXJdfFstUyB2YWxldXJdKSAoWy10IHZhbGV1cl18IgorIlstVCB2YWxldXJdKSBbLWd8LUddIGZpY2hpZXIgW2ZpY2hpZXIuLi5dXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTAgc3lzLXV0aWxzL2N5dHVuZS5jOjI2OSBzeXMtdXRpbHMvY3l0dW5lLmM6Mjg5CisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIk5lIHBldXQgb3V2cmlyICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIk5lIHBldXQgaW5pYWxpc2VyICVzIGF1IHNldWlsICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aW1lIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiTmUgcGV1dCBpbml0aWFsaXNlciAlcyBhdSB0ZW1wcyBkZSBzZXVpbCAlZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIk5lIHBldXQgb2J0ZW5pciBsYSB2YWxldXIgZGUgc2V1aWwgcG91ciAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwMCBzeXMtdXRpbHMvY3l0dW5lLmM6MzU3IHN5cy11dGlscy9jeXR1bmUuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRpbWVvdXQgZm9yICVzOiAlc1xuIgorbXNnc3RyICJOZSBwZXV0IG9idGVuaXIgbGEgdmFsZXVyIGR1IGTpbGFpIGRlIGdy4mNlIHBvdXIgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIHNldWlsIGNvdXJhbnQgZXQgJWxkIGTpbGFpcyBkZSBncuJjZSBjb3VyYW50XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIHNldWlsIHBhciBk6WZhdXQgZXQgJWxkIGTpbGFpIGRlIGdy4mNlIHBhciBk6WZhdXRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMyNworbXNnaWQgIkNhbid0IHNldCBzaWduYWwgaGFuZGxlciIKK21zZ3N0ciAiTmUgcGV1dCBpbml0aWFsaXNlciBsZSB0cmFpdGVtZW50IGRlIHNpZ25hdXgiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzEgc3lzLXV0aWxzL2N5dHVuZS5jOjM2NgorbXNnaWQgImdldHRpbWVvZmRheSBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIGdldHRpbWVvZmRheSgpIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzQ0IHN5cy11dGlscy9jeXR1bmUuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iCittc2dzdHIgIk5lIHBldXQg6W1ldHRyZSBDWUdFVE1PTiBzdXIgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IGludCwgJWx1LyVsdSBjYXJjOyBmaWZvOiAlbHUgc2V1aWwsICVsdSBk6WxhaSwgJWx1IG1heCwgJWx1IGFjdHVlbC5cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiBpbnQvc2VjOyAlZiByZed1LCAlZiB0cmFucyAoY2FyL3NlYylcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2FyYWM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IGFjdHVlbC5cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiBpbnQvc2VjOyAlZiByZWMgKGNhcmFjdOhyZXMvc2VjKVxuIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6ICVzIFstY10gWy1uIG5pdmVhdV0gWy1zIHRhaWxsZS1kZS10YW1wb25dXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGZpbGVuYW1lPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyJVc2FnZSA6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1rZWVwLXNpemUgICAgIGRvbid0IG1vZGlmeSB0aGUgbGVuZ3RoIG9mIHRoZSBmaWxlXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorIiAtbCwgLS1sZW5ndGggPG51bT4gIGxlbmd0aCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgZmFsbG9jYXRlKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisiUG91ciBwbHVzIGQnaW5mb3JtYXRpb25zIHZvaXIgbmFtZWkoMSkuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDcKKyMsIGZ1enp5Cittc2dpZCAibm8gbGVuZ3RoIGFyZ3VtZW50IHNwZWNpZmllZCIKK21zZ3N0ciAiUGFzIGFzc2V6IGQnYXJndW1lbnRzIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ5CisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgbGVuZ3RoIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiVmFsZXVyIGQnaW5pdGlhbGlzYXRpb24gaW52YWxpZGU6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTEKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJWYWxldXIgZCdpbml0aWFsaXNhdGlvbiBpbnZhbGlkZTogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MworIywgZnV6enkKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICJBdWN1bmUgb3B0aW9uIC0tZGF0ZSBzcOljaWZp6S5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3MworbXNnaWQgImtlZXAgc2l6ZSBtb2RlICgtbiBvcHRpb24pIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWxsb2NhdGUgZmFpbGVkIgorbXNnc3RyICIlcyA6IOljaGVjIGQnb3V2ZXJ0dXJlIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzo2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICUxJHMgWy1zeHVuXVstdyAjXSBmZCNcbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGZpbGUgWy1jXSBjb21tYW5kLi4uXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBkaXJlY3RvcnkgWy1jXSBjb21tYW5kLi4uXG4iCisiICAtcyAgLS1zaGFyZWQgICAgIEdldCBhIHNoYXJlZCBsb2NrXG4iCisiICAteCAgLS1leGNsdXNpdmUgIEdldCBhbiBleGNsdXNpdmUgbG9ja1xuIgorIiAgLXUgIC0tdW5sb2NrICAgICBSZW1vdmUgYSBsb2NrXG4iCisiICAtbiAgLS1ub25ibG9jayAgIEZhaWwgcmF0aGVyIHRoYW4gd2FpdFxuIgorIiAgLXcgIC0tdGltZW91dCAgICBXYWl0IGZvciBhIGxpbWl0ZWQgYW1vdW50IG9mIHRpbWVcbiIKKyIgIC1vICAtLWNsb3NlICAgICAgQ2xvc2UgZmlsZSBkZXNjcmlwdG9yIGJlZm9yZSBydW5uaW5nIGNvbW1hbmRcbiIKKyIgIC1jICAtLWNvbW1hbmQgICAgUnVuIGEgc2luZ2xlIGNvbW1hbmQgc3RyaW5nIHRocm91Z2ggdGhlIHNoZWxsXG4iCisiICAtaCAgLS1oZWxwICAgICAgIERpc3BsYXkgdGhpcyB0ZXh0XG4iCisiICAtViAgLS12ZXJzaW9uICAgIERpc3BsYXkgdmVyc2lvblxuIgorbXNnc3RyICIiCisiVXNhZ2UgOiAlMSRzIFstc3h1bl1bLXcgI10gZmQjXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBmaWNoaWVyIFstY10gY29tbWFuZGUuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIHLpcGVydG9pcmUgWy1jXSBjb21tYW5kZS4uLlxuIgorIiAgLXMgIC0tc2hhcmVkICAgICBvYnRpZW50IHVuIHZlcnJvdSBwYXJ0YWfpXG4iCisiICAteCAgLS1leGNsdXNpdmUgIG9idGllbnQgdW4gdmVycm91IGV4Y2x1c2lmXG4iCisiICAtdSAgLS11bmxvY2sgICAgIHN1cHByaW1lIHVuIHZlcnJvdVxuIgorIiAgLW4gIC0tbm9uYmxvY2sgICDpY2hvdWVyIGF1IGxpZXUgZGUgYmxvcXVlclxuIgorIiAgLXcgIC0tdGltZW91dCAgICBhdHRlbmRyZSB1biB0ZW1wcyBtYXguIGRvbm7pXG4iCisiICAtbyAgLS1jbG9zZSAgICAgIGZlcm1lciBsZSBmaWNoaWVyIGF2YW50IGQnZXjpY3V0ZXIgbGEgY29tbWFuZGVcbiIKKyIgIC1jICAtLWNvbW1hbmQgICAgZXjpY3V0ZXIgdW5lIHNldWxlIGNvbW1hbmRlIHZpYSBsZSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBhZmZpY2hlIGNlIHRleHRlXG4iCisiICAtViAgLS12ZXJzaW9uICAgIGFmZmljaGUgbGEgdmVyc2lvblxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoxOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGNvbW1hbmQgYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgOiAlcyByZXF1aWVydCBleGFjdGVtZW50IHVuIGFyZ3VtZW50XG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICIlcyA6IGltcG9zc2libGUgZCdvdXZyaXIgbGUgZmljaGllciB2ZXJyb3VpbGzpICVzIDogJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlcyA6IG5vbWJyZSBub24gdmFsaWRlIDogJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZXF1aXJlcyBmaWxlIGRlc2NyaXB0b3IsIGZpbGUgb3IgZGlyZWN0b3J5XG4iCittc2dzdHIgIiIKKyIlcyA6IHJlcXVpZXJ0IHVuIGRlc2NyaXB0ZXVyIGRlIGZpY2hpZXIsIHVuIGZpY2hpZXIgb3UgIHVuIHLpcGVydG9pcmVcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6Mjk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3JrIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiJXMgOiDpY2hlYyBkZSBcImZvcmtcIiA6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVc2FnZSA6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKyIgIC1NIDx0YWlsbGU+ICAgICBjcullIHVuIHNlZ21lbnQgZGUgbeltb2lyZSBwYXJ0YWfpZSBkZSB0YWlsbGUgPHRhaWxsZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3LpZSB1biB0YWJsZWF1IGRlIDxuc2Vtcz4gc+ltYXBob3Jlc1xuIgorIiAgLVEgICAgICAgICAgICBjcullIHVuZSBmaWxlIGRlIG1lc3NhZ2VzXG4iCisiICAtcCA8bW9kZT4gICAgIHBlcm1pc3Npb24gZGUgcmVzc291cmNlIChkZWZhdXQgOiAwNjQ0KVxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGlwY21rKDEpLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiUG91ciBwbHVzIGQnaW5mb3JtYXRpb25zIHZvaXIgaXBjbWsoMSkuXG4iCisiXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0MgorbXNnaWQgImNyZWF0ZSBzaGFyZSBtZW1vcnkgZmFpbGVkIgorbXNnc3RyICLpY2hlYyBkZSBjculhdGlvbiBkZSBt6W1vaXJlIHBhcnRhZ+llIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hhcmVkIG1lbW9yeSBpZDogJWRcbiIKK21zZ3N0ciAiaWQgZGUgbeltb2lyZSBwYXJ0YWfpZSA6ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MAorbXNnaWQgImNyZWF0ZSBtZXNzYWdlIHF1ZXVlIGZhaWxlZCIKK21zZ3N0ciAi6WNoZWMgZGUgY3LpYXRpb24gZGUgcXVldWUgZGUgbWVzc2FnZXMiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIHF1ZXVlIGlkOiAlZFxuIgorbXNnc3RyICJpZCBkZSBxdWV1ZSBkZSBtZXNzYWdlIDogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIGNy6WF0aW9uIGR1IHPpbWFwaG9yZSIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiaWQgZGUgc+ltYXBob3JlIDogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAiaWQgaW52YWxpZGU6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCByZW1vdmUgaWQgJXMgKCVzKVxuIgorbXNnc3RyICJuZSBwZXV0IGVubGV2ZXIgaWQgJXMgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJkZXByZWNhdGVkIHVzYWdlOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKK21zZ3N0ciAidXNhZ2UgZOlwculjaek6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93biByZXNvdXJjZSB0eXBlOiAlc1xuIgorbXNnc3RyICJ0eXBlIGRlIHJlc3NvdXJjZSBpbmNvbm51ZTogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAicmVzc291cmNlKHMpIGTpdHJ1aXRlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCittc2dzdHIgIiIKKyJVdGlsaXNhdGlvbiA6ICVzIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiIKKyIgICAgICAgICAgWy1RIG1zZ2tleV0gWy1NIHNobWtleV0gWy1TIHNlbWtleV0gLi4uIF1cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgorbXNnc3RyICIlczogb3B0aW9uIGlsbOlnYWxlIC0tICVjXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBrZXkgKCVzKVxuIgorbXNnc3RyICIlczogY2zpIGlsbOlnYWxlICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBrZXkiCittc2dzdHIgInBlcm1pc3Npb24gcmVmdXPpZSBwb3VyIGxhIGNs6SIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA5IHN5cy11dGlscy9pcGNybS5jOjI0OAorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBrZXkiCittc2dzdHIgImNs6SBk6WrgIGVubGV26WUiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxMiBzeXMtdXRpbHMvaXBjcm0uYzoyNDMKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAiY2zpIGludmFsaWRlIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgImVycmV1ciBpbmNvbm51ZSBkYW5zIGxhIGNs6SIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjM5Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGlkIgorbXNnc3RyICJwZXJtaXNzaW9uIHJlZnVz6WUgcG91ciBsJ2lkZW50aWZpY2F0ZXVyIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICJpZGVudGlmaWNhdGV1ciBpbnZhbGlkZSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ5Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGlkIgorbXNnc3RyICJpZGVudGlmaWNhdGV1ciBk6WrgIGVubGV26SIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU0Cittc2dpZCAidW5rbm93biBlcnJvciBpbiBpZCIKK21zZ3N0ciAiZXJyZXVyIGluY29ubnVlIGRhbnMgbCdpZGVudGlmaWNhdGV1ciIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiVzOiAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIKK21zZ3N0ciAiJXM6IGFyZ3VtZW50IGluY29ubnU6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICJ1c2FnZSA6ICVzIC1hc21xIC10Y2x1cCBcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCittc2dzdHIgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIC1oIGZvciBoZWxwLlxuIgorbXNnc3RyICJcdCVzIC1oIHBvdXIgbCdhaWRlLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHlvdSBoYXZlIHJlYWQgYWNjZXNzLlxuIgorbXNnc3RyICIiCisiJXMgZm91cm5pdHMgZGVzIGluZm9ybWF0aW9ucyBzdXIgbGVzIHNlcnZpY2VzIHBvdXIgbGVzcXVlbHMgdm91cyBhdmV6IGRlcyAiCisiZHJvaXRzIGQnYWNj6HMgZW4gbW9kZSBsZWN0dXJlLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisiU3DpY2lmaWNhdGlvbnMgZGVzIHJlc3NvdXJjZXM6XG4iCisiXHQtbSA6IG3pbW9pcmUgcGFydGFn6WUgKHNoYXJlZF9tZW0pXG4iCisiXHQtcSA6IG1lc3NhZ2VzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKyJcdC1zIDogc+ltYXBob3Jlc1xuIgorIlx0LWEgOiB0b3V0IChwYXIgZOlmYXV0KVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3V0cHV0IEZvcm1hdDpcbiIKKyJcdC10IDogdGltZVxuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDogY3JlYXRvclxuIgorbXNnc3RyICIiCisiRm9ybWF0IGRlIHNvcnRpZTpcbiIKKyJcdC10IDogdGVtcHNcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNy6WF0ZXVyXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1sIDogbGltaXRzXG4iCisiXHQtdSA6IHN1bW1hcnlcbiIKK21zZ3N0ciAiIgorIlx0LWwgOiBsaW1pdGVzXG4iCisiXHQtdSA6IHNvbW1haXJlXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIKK21zZ3N0ciAiLWkgaWQgWy1zIC1xIC1tXSA6IGTpdGFpbHMgc3VyIGxlcyByZXNzb3VyY2VzIGlkZW50aWZp6XMgcGFyIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2hhcmVkIG1lbW9yeVxuIgorbXNnc3RyICJrZXJuZWwgbidlc3QgcGFzIGNvbmZpZ3Vy6SBwb3VyIHRyYWl0ZXIgbGEgbeltb2lyZSBwYXJ0YWfpZVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIExpbWl0ZXMgZGUgbGEgbeltb2lyZSBwYXJ0YWfpIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAibm9tYnJlIG1heGltdW0gZGUgc2VnbWVudHMgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlZyBzaXplIChrYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgInRhaWxsZSBtYXggc2VnIChrb2N0ZXRzKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAibWF4aW11bSB0b3RhbCBkZSBt6W1vaXJlIHBhcnRhZ+llIChLbykgPSAlbGx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pbiBzZWcgc2l6ZSAoYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgInRhaWxsZSBtaW5pbXVtIGRlIHNlZ21lbnRzIChvY3RldHMpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gyXRhdCBkZSBsYSBt6W1vaXJlIHBhcnRhZ+llIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICJzZWdtZW50IGFsbG916XMgJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgYWxsb2NhdGVkICVsZFxuIgorbXNnc3RyICJwYWdlcyBhbGxvdelzICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyByZXNpZGVudCAgJWxkXG4iCittc2dzdHIgInBhZ2VzIHLpc2lkZW50ZXMgICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgInBhZ2VzIOljaGFuZ+llcyAoc3dhcCkgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3YXAgcGVyZm9ybWFuY2U6ICVsZCBhdHRlbXB0c1x0ICVsZCBzdWNjZXNzZXNcbiIKK21zZ3N0ciAiUGVyZm9ybWFuY2UgZHUgc3dhcDogJWxkIHRlbnRhdGl2ZXNcdCAlbGQgc3VjY+hzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZWdtZW50IGRlIG3pbW9pcmUgcGFydGFn6SBDculhdGV1cnMvUHJvcHJp6XRhaXJlcyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAic2htaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICJwZXJtcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjdWlkIgorbXNnc3RyICJjdWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImNnaWQiCittc2dzdHIgImNnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAidWlkIgorbXNnc3RyICJ1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiZ2lkIgorbXNnc3RyICJnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IEF0dGFjaC9EZXRhY2gvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0gTeltb2lyZSBwYXJ0YWfpIEF0dGFjaGVtZW50L0TpdGFjaGVtZW50L0NoYW5nZW1lbnQgVGVtcHMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEgc3lzLXV0aWxzL2lwY3MuYzozMDcKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTEyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOCBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm93bmVyIgorbXNnc3RyICJwcm9wcmnpdGFpcmUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiYXR0YWNoZWQiCittc2dzdHIgImF0dGFjaOkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgImTpdGFjaOkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk1Cittc2dpZCAiY2hhbmdlZCIKK21zZ3N0ciAibW9kaWZp6SIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQ3JlYXRvci9MYXN0LW9wIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBN6W1vaXJlIHBhcnRhZ+kgQ3LpYXRldXIvRGVybmnocmUtb3DpcmF0aW9uIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiY3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJscGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VnbWVudCBkZSBt6W1vaXJlIHBhcnRhZ+kgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJrZXkiCittc2dzdHIgImNs6SIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJieXRlcyIKK21zZ3N0ciAib2N0ZXRzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgIm5hdHRjaCIKK21zZ3N0ciAibmF0dGNoIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAi6XRhdHMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzI5IHN5cy11dGlscy9pcGNzLmM6MzMxIHN5cy11dGlscy9pcGNzLmM6MzMzCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ0NCBzeXMtdXRpbHMvaXBjcy5jOjQ0NiBzeXMtdXRpbHMvaXBjcy5jOjU0NQorIzogc3lzLXV0aWxzL2lwY3MuYzo1NDcgc3lzLXV0aWxzL2lwY3MuYzo1NDkgc3lzLXV0aWxzL2lwY3MuYzo2MDAKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAyIHN5cy11dGlscy9pcGNzLmM6NjMwIHN5cy11dGlscy9pcGNzLmM6NjMyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzNCBzeXMtdXRpbHMvaXBjcy5jOjY1NworbXNnaWQgIk5vdCBzZXQiCittc2dzdHIgIk5vbiBpbml0aWFsaXPpIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MQorbXNnaWQgImRlc3QiCittc2dzdHIgImRlc3QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICJ2ZXJyb3VpbGzpIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAia2VybmVsIG4nZXN0IHBhcyBjb25maWd1cukgcG91ciB0cmFpdGVyIGxlcyBz6W1hcGhvcmVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBMaW1pdGVzIGRlcyBz6W1hcGhvcmVzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2YgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAibm9tYnJlIG1heCBkZSB0YWJsZWF1eCA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHBlciBhcnJheSA9ICVkXG4iCittc2dzdHIgIm5vbWJyZSBtYXggZGUgc+ltYXBob3JlcyBwYXIgdGFibGVhdSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAibm9tYnJlIG1heCBkZSBz6W1hcGhvcmVzIHN5c3TobWUgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAibm9tYnJlIG1heCBkJ29wcyBwYXIgYXBwZWwgc2Vtb3AgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJzZW1hcGhvcmUgbWF4IHZhbHVlID0gJWRcbiIKK21zZ3N0ciAidmFsZXVyIG1heCBkZSBz6W1hcGhvcmUgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gyXRhdHMgZGVzIHPpbWFwaG9yZXMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJ0YWJsZWF1eCB1dGlsaXPpcyA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBzZW1hcGhvcmVzID0gJWRcbiIKK21zZ3N0ciAic+ltYXBob3JlcyBhbGxvdelzID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLSBUYWJsZWF1eCBkZSBz6W1hcGhvcmVzIENy6WF0ZXVycy9Qcm9wcmnpdGFpcmVzIC0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjQxNCBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgInNlbWlkIgorbXNnc3RyICJzZW1pZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBPcGVyYXRpb24vQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLSBT6W1hcGhvcmVzIDogb3DpcmF0aW9ucy9jaGFuZ2VtZW50cyB0ZW1wb3JlbHMgLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1vcCIKK21zZ3N0ciAibGFzdC1vcCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgImxhc3QtY2hhbmdlZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFRhYmxlYXV4IGRlIHPpbWFwaG9yZXMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAibnNlbXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3IgbWVzc2FnZSBxdWV1ZXNcbiIKK21zZ3N0ciAia2VybmVsIG4nZXN0IHBhcyBjb25maWd1cukgcG91ciB0cmFpdGVyIGxlcyBxdWV1ZXMgZGUgbWVzc2FnZXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE1lc3NhZ2VzOiBsbWl0ZXMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm5vbWJyZSBtYXggZGUgcXVldWVzIHN5c3TobWUgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2l6ZSBvZiBtZXNzYWdlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJ0YWlsbGUgbWF4IGRlcyBtZXNzYWdlcyAob2N0ZXRzKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgImRlZmF1bHQgbWF4IHNpemUgb2YgcXVldWUgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgInRhaWxsZSBtYXggcGFyIGTpZmF1dCBkZXMgcXVldWVzIChvY3RldHMpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE1lc3NhZ2VzOiDpdGF0cyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OAorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgcXVldWVzID0gJWRcbiIKK21zZ3N0ciAicXVldWVzIGFsbG916WVzID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBoZWFkZXJzID0gJWRcbiIKK21zZ3N0ciAiZW4tdOp0ZXMgdXRpbGlz6WVzID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBzcGFjZSA9ICVkIGJ5dGVzXG4iCittc2dzdHIgImVzcGFjZSB1dGlsaXPpID0gJWQgb2N0ZXRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBRdWV1ZXMgZGUgbWVzc2FnZXM6IENy6WF0ZXVycy9Qcm9wcmnpdGFpcmVzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTEyIHN5cy11dGlscy9pcGNzLmM6NTE4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm1zcWlkIgorbXNnc3RyICJtc3FpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFF1ZXVlcyBkZSBtZXNzYWdlcyBUcmFuc21pcy9SZed1cy9DaGFuZ+lzIFRlbXBzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAic2VuZCIKK21zZ3N0ciAidHJhbnNtaXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAicmVjdiIKK21zZ3N0ciAicmXndXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAiY2hhbmdlIgorbXNnc3RyICJjaGFuZ+lzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gUElEIGRlcyBxdWV1ZXMgZGUgbWVzc2FnZXMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJsc3BpZCIKK21zZ3N0ciAibHNwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHJwaWQiCittc2dzdHIgImxycGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFF1ZXVlcyBkZSBtZXNzYWdlcyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgIm9jdGV0cy11dGlsaXPpcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAibWVzc2FnZXMiCisKKyMgZGlzay11dGlscy9ta3N3YXAuYzo2MjMKKyM6IHN5cy11dGlscy9pcGNzLmM6NTg5Cittc2dpZCAic2htY3RsIGZhaWxlZCIKK21zZ3N0ciAi6WNoZWMgZGUgbGEgZm9uY3Rpb24gXCJzaG1jdGxcIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiTeltb2lyZSBwYXJ0YWfpZSBzZWdtZW50IHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk2CisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorbXNnc3RyICJvY3RldHM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgImF0dF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImF0dF90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImRldF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImRldF90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAzIHN5cy11dGlscy9pcGNzLmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCisKKyMgZGlzay11dGlscy9ta3N3YXAuYzo2MjMKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE1Cittc2dpZCAibXNnY3RsIGZhaWxlZCIKK21zZ3N0ciAi6WNoZWMgZGUgbGEgZm9uY3Rpb24gXCJtc2djdGxcIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk1lc3NhZ2UgUXVldWUgbXNxaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlF1ZXVlIGRlIG1lc3NhZ2VzIG1zcWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRtb2RlPSUjb1xuIgorbXNnc3RyICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICJjYnl0ZXM9JWxkXHRxYnl0ZXM9JWxkXHRxbnVtPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmN2X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAicmN2X3RpbWU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICLpY2hlYyBkZSBsYSBmb25jdGlvbiBcInNlbWN0bFwiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2VtYXBob3JlIEFycmF5IHNlbWlkPSVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJUYWJsZWF1eCBkZSBz6W1hcGhvcmVzIHNlbWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgIm5zZW1zID0gJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm90aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAib3RpbWUgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICJjdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgImN0aW1lID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJzZW1udW0iCittc2dzdHIgInNlbW51bSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAidmFsZXVyIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgIm5jb3VudCIKK21zZ3N0ciAibmNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInpjb3VudCIKK21zZ3N0ciAiemNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInBpZCIKK21zZ3N0ciAicGlkIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFsgLWRoVjc4bmVvMTIgXSBbIC1zIDxzcGVlZD4gXSA8bGRpc2M+IDxkZXZpY2U+XG4iCittc2dzdHIgIiIKKyJcbiIKKyJVdGlsaXNhdGlvbiA6ICVzIFsgLWRoVjc4bmVvMTIgXSBbIC1zIDx2aXRlc3NlPiBdIDxsZGlzcXVlPiA8cOlyaXBo6XJpcXVlPlxuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisiXG4iCisiTm9tcyA8bGRpc3F1ZT4gY29ubnVzIDpcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgc3BlZWQ6ICVzIgorbXNnc3RyICJ2aXRlc3NlIG5vbiB2YWxpZGUgOiAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAiZXjpY3V0aW9uIGRlIFwibGRhdHRhY2hcIiBkZXB1aXMgJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAib3B0aW9uIG5vbiB2YWxpZGUiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGxpbmUgZGlzY2lwbGluZTogJXMiCittc2dzdHIgImRpc2NpcGxpbmUgKGNvbmZpZ3VyYXRpb24pIGRlIGxpZ25lIG5vbiB2YWxpZGUgOiAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIHNlcmlhbCBsaW5lIgorbXNnc3RyICIlcyBuJ2VzdCBwYXMgdW5lIGxpZ25lIHPpcmllIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ29idGVuaXIgbGVzIGF0dHJpYnV0cyBkdSB0ZXJtaW5hbCAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWVkICVkIHVuc3VwcG9ydGVkIgorbXNnc3RyICJ2aXRlc3NlICVkIG5vbiBzdXBwb3J06WUiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHNw6WNpZmllciBsZXMgYXR0cmlidXRzIGR1IHRlcm1pbmFsICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKK21zZ2lkICJjYW5ub3Qgc2V0IGxpbmUgZGlzY2lwbGluZSIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBzcOljaWZpZXIgbGEgZGlzY2lwbGluZSAoY29uZmlndXJhdGlvbikgZGUgbGlnbmUiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworbXNnaWQgImNhbm5vdCBkYWVtb25pemUiCittc2dzdHIgIuljaGVjIGRlIHRyYW5zZm9ybWF0aW9uIGVuIGTpbW9uIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NAorbXNnaWQgIm5vbmUiCittc2dzdHIgInJpZW4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1Cittc2dpZCAicGFyYSIKK21zZ3N0ciAicGFyYSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjYKK21zZ2lkICJmdWxsIgorbXNnc3RyICJjb21wbGV0IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxMzcgc3lzLXV0aWxzL2xzY3B1LmM6MTYwIHN5cy11dGlscy9sc2NwdS5jOjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgImVycmV1ciA6ICVzICIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHBhcnNlOiAlcyIKK21zZ3N0ciAiZXJyZXVyIGQnYW5hbHlzZSA6ICVzIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKK21zZ2lkICJlcnJvcjogc3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiZXJyZXVyIDog6WNoZWMgZGUgXCJzdHJkdXBcIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MjY3Cittc2dpZCAiZXJyb3I6IHVuYW1lIGZhaWxlZCIKK21zZ3N0ciAiZXJyZXVyIDog6WNoZWMgZGUgXCJ1bmFtZVwiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MDYKK21zZ2lkICJlcnJvcjogbWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAiZXJyZXVyIDog6WNoZWMgZGUgXCJtYWxsb2NcIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTIxCittc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzYWJsZS4iCittc2dzdHIgImVycmV1ciA6IGxlIHN5c3TobWUgZGUgZmljaGllcnMgL3N5cyBlc3QgaW5hY2Nlc3NpYmxlLiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisiIyBMYSBzdWl0ZSBlc3QgZW4gZm9ybWF0IGFuYWx5c2FibGUsIHRyYW5zbWlzc2libGUg4CBkJ2F1dHJlc1xuIgorIiMgcHJvZ3JhbW1lcy4gTGVzIGl0ZW1zIGRpc3RpbmN0cyBkYW5zIGNoYXF1ZSBjb2xvbm5lIG9udFxuIgorIiMgdW4gdW5pcXVlIG51belybyBJRCBwYXJ0YW50IGRlIHrpcm8uXG4iCisiIyBDUFUsIGNvZXVyLCBzdXBwb3J0IChzb2NrZXQpLCBub2V1ZCIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjE5CisjLCBmdXp6eQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiU3VwcG9ydChzKSBDUFUgOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI1Cittc2dpZCAiVGhyZWFkKHMpIHBlciBjb3JlOiIKK21zZ3N0ciAiVGhyZWFkKHMpIHBhciBjb2V1ciA6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICJDb2V1cihzKSBwYXIgc3VwcG9ydCBDUFUgOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIlN1cHBvcnQocykgQ1BVIDoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIk5vZXVkKHMpIE5VTUEgOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiSUQgZHUgdmVuZGV1ciA6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzUKK21zZ2lkICJDUFUgZmFtaWx5OiIKK21zZ3N0ciAiRmFtaWxsZSBDUFUgOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM3Cittc2dpZCAiTW9kZWw6IgorbXNnc3RyICJNb2TobGUgOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICJWZXJzaW9uIDoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICJDUFUgTUh6IDoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIlZpcnR1YWxpc2F0aW9uIDoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiVmVuZGV1ciBoeXBlcnZpc2V1ciA6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiVHlwZSBkZSB2aXJ0dWFsaXNhdGlvbiA6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIlcyBjYWNoZSA6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIlV0aWxpc2F0aW9uIDogJXMgW29wdGlvbnNdXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2OQorbXNnaWQgIiIKKyJDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGhlbHBlclxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuXG4iCisiICAtcywgLS1zeXNyb290ICB1c2UgdGhlIGRpcmVjdG9yeSBhcyBhIG5ldyBzeXN0ZW0gcm9vdC5cbiIKK21zZ3N0ciAiIgorIkRvbm5lIGRlcyBpbmZvcm1hdGlvbnMgc3VyIGwnYXJjaGl0ZWN0dXJlIENQVVxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgYWlkZSBkJ3V0aWxpc2F0aW9uXG4iCisiICAtcCwgLS1wYXJzZSAgICBzb3J0aWUgZW4gZm9ybWF0IGFuYWx5c2FibGUgZXQgbm9uIGFmZmljaGFibGUuXG4iCisiICAtcywgLS1zeXNyb290ICBzcOljaWZpZSB1biBy6XBlcnRvaXJlIGNvbW1lIHJhY2luZSBkdSBzeXN06G1lLlxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgImVycmV1ciA6IGNoYW5nZW1lbnQgZGUgculwZXJ0b2lyZSBkZSB0cmF2YWlsIGVuICVzLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIiIKKyJVdGlsaXNhdGlvbiA6IHJkZXYgWyAtcnYgXSBbIC1vIETJQ0FMQUdFIF0gWyBJTUFHRSBbIFZBTEVVUiBbIETJQ0FMQUdFIF0gXSBdIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc4Cittc2dpZCAiIgorIiAgcmRldiAvZGV2L2ZkMCAgKG9yIHJkZXYgL2xpbnV4LCBldGMuKSBkaXNwbGF5cyB0aGUgY3VycmVudCBST09UIGRldmljZSIKK21zZ3N0ciAiIgorIiAgcmRldiAvZGV2L2ZkMCAgKG91IHJkZXYgL2xpbnV4LCBldGMuKSBhZmZpY2hlciBsZXMgcOlyaXBo6XJpcXVlcyBST09UICIKKyJjb3VyYW50cyIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OQorbXNnaWQgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBzZXRzIFJPT1QgdG8gL2Rldi9oZGEyIgorbXNnc3RyICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgaW5pdGlhbGlzZXIgUk9PVCDgIC9kZXYvaGRhMiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiIgorIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBpbml0aWFsaXNlciBsZXMgUk9PVEZMQUdTICjpdGF0IGVuIG1vZGUgIgorImxlY3R1cmUgc2V1bGVtZW50KSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MQorbXNnaWQgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBzZXQgdGhlIFJBTURJU0sgc2l6ZSIKK21zZ3N0ciAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIGluaXRpYWxpc2VyIGxhIHRhaWxsZSBkdSBSQU1ESVNLIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgyCittc2dpZCAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgYm9vdHVwIFZJREVPTU9ERSIKK21zZ3N0ciAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIGluaXRpYWxpc2VyIGxlIE1PREVWSURFTyBkJ2Ftb3LnYWdlIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgzCittc2dpZCAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHVzZSB0aGUgYnl0ZSBvZmZzZXQgTiIKK21zZ3N0ciAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHV0aWxpc2VyIHVuZSBk6WNhbGFnZSBkZSBOIG9jdGV0cyIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBpZGVudGlxdWUg4CByZGV2IC1SIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIGlkZW50aXF1ZSDgIHJkZXYgLXIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODYKK21zZ2lkICIgIHZpZG1vZGUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC12IgorbXNnc3RyICIgIHZpZG1vZGUgLi4uICAgICAgICAgICAgICAgICAgICAgaWRlbnRpcXVlIOAgcmRldiAtdiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisiTm90ZTogbW9kZXMgdmlk6W9zIHNvbnQ6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAiCisiMj1rZXkyLC4uLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4OAorbXNnaWQgIiAgICAgIHVzZSAtUiAxIHRvIG1vdW50IHJvb3QgcmVhZG9ubHksIC1SIDAgZm9yIHJlYWQvd3JpdGUuIgorbXNnc3RyICIiCisiICAgICAgdXRpbGlzZXIgLVIgMSBwb3VyIG1vbnRlciByb290IGVuIG1vZGUgbGVjdHVyZSBzZXVsZW1lbnQsIC1SIDAgZW4gbW9kZSAiCisibGVjdHVyZS3pY3JpdHVyZS4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAidmlyZ3VsZSBtYW5xdWFudGUiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjcyIHRleHQtdXRpbHMvbW9yZS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICJt6W1vaXJlIOlwdWlz6WUiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiBcIiVzIFtvcHRpb25zXVxuIgorIlx0IC1tIDxtYXBmaWxlPiAgKGRlZmF1bHRzOiBcIiVzXCIgYW5kXG4iCisiXHRcdFx0XHQgIFwiJXNcIilcbiIKKyJcdCAtcCA8cHJvLWZpbGU+IChkZWZhdWx0OiBcIiVzXCIpXG4iCisiXHQgLU0gPG11bHQ+ICAgICBzZXQgdGhlIHByb2ZpbGluZyBtdWx0aXBsaWVyIHRvIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICAgcHJpbnQgb25seSBpbmZvIGFib3V0IHRoZSBzYW1wbGluZyBzdGVwXG4iCisiXHQgLXYgICAgICAgICAgICBwcmludCB2ZXJib3NlIGRhdGFcbiIKKyJcdCAtYSAgICAgICAgICAgIHByaW50IGFsbCBzeW1ib2xzLCBldmVuIGlmIGNvdW50IGlzIDBcbiIKKyJcdCAtYiAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgaGlzdG9ncmFtLWJpbiBjb3VudHNcbiIKKyJcdCAtcyAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgY291bnRlcnMgd2l0aGluIGZ1bmN0aW9uc1xuIgorIlx0IC1yICAgICAgICAgICAgcmVzZXQgYWxsIHRoZSBjb3VudGVycyAocm9vdCBvbmx5KVxuIgorIlx0IC1uICAgICAgICAgICAgZGlzYWJsZSBieXRlIG9yZGVyIGF1dG8tZGV0ZWN0aW9uXG4iCisiXHQgLVYgICAgICAgICAgICBwcmludCB2ZXJzaW9uIGFuZCBleGl0XG4iCittc2dzdHIgIiIKKyIlczogVXRpbGlzYXRpb24gOiBcIiVzIFtvcHRpb25zXVxuIgorIlx0IC1tIDxmaWNoaWVyLW1hcD4gICAgIChwYXIgZOlmYXV0ID0gqyAlcyC7KVxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPGZpY2hpZXItcHJvZmlsZT4gKHBhciBk6WZhdXQgPSCrICVzILspXG4iCisiXHQgLU0gPE1VTFRJUExJQ0FURVVSPiAgaW5pdGlhbGlzZXIgbGUgTVVMVElQTElDQVRFVVIgZGUgcHJvZmlsYWdlXG4iCisiXHQgLWkgICAgICAgICAgICAgICAgICAgYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBpbmZvcm1hdGlvbnMg4CBwcm9wb3MgZHUgIgorImN5Y2xlIGQn6WNoYW50aWxsb25uYWdlXG4iCisiXHQgLXYgICAgICAgICAgICAgICAgICAgYWZmaWNoZXIgZW4gbW9kZSBiYXZhcmQgbGVzIGRvbm7pZXNcbiIKKyJcdCAtYSAgICAgICAgICAgICAgICAgICBhZmZpY2hlciB0b3VzIGxlcyBzeW1ib2xlcywgbeptZSBzaSBsZSBjb21wdGUgZXN0IOAgIgorIjBcbiIKKyJcdCAtYiAgICAgICAgICAgICAgICAgICBhZmZpY2hlciBsZXMgY29tcHRldXJzIGRlIGNoYXF1ZSBpbnRlcnZhbGxlcyBkZSAiCisibCdoaXN0b2dyYW1tZVxuIgorIlx0IC1zICAgICAgICAgICAgICAgICAgIGFmZmljaGVyIGxlcyBjb21wdGV1cnMgaW5kaXZpZHVlbHMgZGUgY2hhcXVlICIKKyJmb25jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgICAgICAgICBy6WluaXRhbGlzZXIgdG91cyBsZXMgY29tcHRldXJzIChyb290IHNldWxlbWVudClcbiIKKyJcdCAtbiAgICAgICAgICAgICAgICAgICBk6XNhY3RpdmVyIGwnYXV0by1k6XRlY3Rpb24gZGUgbCdvcmRvbm5hbmNlbWVudCBkZXMgIgorIm9jdGV0c1xuIgorIlx0IC1WICAgICAgICAgICAgICAgICAgIGFmZmljaGVyIGxhIHZlcnNpb24gZXQgcXVpdHRlclxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZHByb2ZpbGU6IGVycm9yIHdyaXRpbmcgJXM6ICVzXG4iCittc2dzdHIgInJlYWRwcm9maWxlOiBlcnJldXIgZCfpY3JpdHVyZSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuIFVzZSAtbiB0byBmb3JjZSBuYXRpdmUgYnl0ZSBvcmRlci5cbiIKK21zZ3N0ciAiIgorIk9yZHJlIGRlcyBvY3RldHMgc3VwcG9z6SBpbnZlcnPpLiBVdGlsaXNlciAtbiBwb3VyIGZvcmNlciBsJ29yZHJlIG5hdGlmLlxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiU2FtcGxpbmdfc3RlcDogJWlcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzA1IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMoJWkpOiB3cm9uZyBtYXAgbGluZVxuIgorbXNnc3RyICIlczogJXMoJWkpOiBsaWduZSBkZSBtYXAgZXJyb27pZVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIgorbXNnc3RyICIlczogbmUgcGV1dCByZXDpcmVyIKsgX3N0ZXh0ILsgZGFucyAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIlczogYWRyZXNzZSBkZSBwcm9maWxlIGhvcnMgbGltaXRlcy4gTWF1dmFpcyBmaWNoaWVyIG1hcD9cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NDEyCittc2dpZCAidG90YWwiCittc2dzdHIgInRvdGFsIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSBbLXB8LS1waWRdIHBpZCAgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtZ3wtLXBncnAgcGdycCBbLi4uIHBncnBdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtdXwtLXVzZXIgdXNlciBbLi4uIHVzZXJdXG4iCisiIHJlbmljZSAtaCB8IC0taGVscFxuIgorIiByZW5pY2UgLXYgfCAtLXZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlV0aWxpc2F0aW9uIDpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdOkgWy1wfC0tcGlkXSBwaWQgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXTpICAtZ3wtLXBncnAgcGdycCBbLi4uIHBncnBdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXTpICAtdXwtLXVzZXIgdXRpbGlzYXRldXIgWy4uLiB1dGlsaXNhdGV1cl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlIGZyb20gJXNcbiIKK21zZ3N0ciAibW9kaWZpY2F0aW9uIGRlIHByaW9yaXTpIFwicmVuaWNlXCIgZGVwdWlzICVzXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogdW5rbm93biB1c2VyXG4iCittc2dzdHIgInJlbmljZTogJXM6IHVzYWdlciBpbmNvbm51XG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IHZhbGV1ciBlcnJvbullXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6IHByaW9yaXTpIHBy6WPpZGVudGUgJWQsIG5vdXZlbGxlIHByaW9yaXTpICVkXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyIgICAgLWQgfCAtLWRldmljZSA8ZGV2aWNlPiAgICBzZWxlY3QgcnRjIGRldmljZSAocnRjMHxydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICBSVEMgdXNlcyBsb2NhbCB0aW1lem9uZVxuIgorIiAgICAtbSB8IC0tbW9kZSAgICAgICAgICAgICAgIHN0YW5kYnl8bWVtfC4uLiBzbGVlcCBtb2RlXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxzZWNvbmRzPiAgc2Vjb25kcyB0byBzbGVlcFxuIgorIiAgICAtdCB8IC0tdGltZSA8dGltZV90PiAgICAgIHRpbWUgdG8gd2FrZVxuIgorIiAgICAtdSB8IC0tdXRjICAgICAgICAgICAgICAgIFJUQyB1c2VzIFVUQ1xuIgorIiAgICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgIHZlcmJvc2UgbWVzc2FnZXNcbiIKKyIgICAgLVYgfCAtLXZlcnNpb24gICAgICAgICAgICBzaG93IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorIlV0aWxpc2F0aW9uIDogJXMgW29wdGlvbnNdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPHDpcmlwaD4gICAgc3DpY2lmaWUgbGUgcOlyaXBo6XJpcXVlIGhvcmxvZ2UgUlRDIChydGMwfCIKKyJydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICBsJ2hvcmxvZ2UgUlRDIHV0aWxpc2UgdW5lIHpvbmUgZGUgdGVtcHMgIgorImxvY2FsZVxuIgorIiAgICAtbSB8IC0tbW9kZSAgICAgICAgICAgICAgIHN0YW5kYnl8bWVtfC4uLiBtb2RlIG1pc2UgZW4gdmVpbGxlXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxzZWNvbmRlcz4gIG1pc2UgZW4gdmVpbGxlIGQndW5lIGR1cullIGRlIDxzZWNvbmRlcz5cbiIKKyIgICAgLXQgfCAtLXRpbWUgPGhldXJlX3Q+ICAgICAgZml4ZSBsJ2hldXJlIGRlIHNvcnRpZSBkZSB2ZWlsbGVcbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBsJ2hvcmxvZ2UgUlRDIHV0aWxpc2UgbCfpY2hlbGxlIGRlIHRlbXBzIFVUQ1xuIgorIiAgICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgIG1vZGUgdmVyYmV1eFxuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIGFmZmljaGUgbGEgdmVyc2lvblxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0MgorbXNnaWQgInJlYWQgcnRjIHRpbWUiCittc2dzdHIgImxlY3R1cmUgZGUgbCdoZXVyZSBSVEMiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQ3Cittc2dpZCAicmVhZCBzeXN0ZW0gdGltZSIKK21zZ3N0ciAibGl0IGwnaGV1cmUgc3lzdOhtZSIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICJjb252ZXJ0aW9uIGRlIGwnaGV1cmUgY291cmFudGUgUlRDIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyNAorbXNnaWQgInNldCBydGMgYWxhcm0iCittc2dzdHIgImZpeGUgbCdhbGFybWUgZGUgbCdob3Jsb2dlIFJUQyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjgKK21zZ2lkICJlbmFibGUgcnRjIGFsYXJtIgorbXNnc3RyICJhY3RpdmUgbCdhbGFybWUgUlRDIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIzMgorbXNnaWQgInNldCBydGMgd2FrZSBhbGFybSIKK21zZ3N0ciAiZml4ZSBsJ2FsYXJtZSBkZSBy6XZlaWwgUlRDIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5yZWNvZ25pemVkIHN1c3BlbmQgc3RhdGUgJyVzJ1xuIgorbXNnc3RyICIgJXMgOiDpdGF0IGRlIHZlaWxsZSBub24gcmVjb25udSBcIiVzXCJcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICIlczogaW50ZXJ2YWxsZSBpbmNvcnJlY3QgJXMgc2Vjb25kZXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiBtYXV2YWlzZSB2YWxldXIgcG91ciBoZXVyZV90ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB2ZXJzaW9uICVzXG4iCittc2dzdHIgIiVzOiB2ZXJzaW9uICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhc3N1bWluZyBSVEMgdXNlcyBVVEMgLi4uXG4iCittc2dzdHIgIiVzOiBvbiBjb25zaWTocmUgcXVlIGwnaG9ybG9nZSBSVEMgdXRpbGlzZSBsJ+ljaGVsbGUgVVRDLi4uXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIFVUQyB0aW1lLlxuIgorbXNnc3RyICJIZXVyZSBVVEMgdXRpbGlz6WUuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGxvY2FsIHRpbWUuXG4iCittc2dzdHIgIkhldXJlIGxvY2FsZSB1dGlsaXPpZS5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG11c3QgcHJvdmlkZSB3YWtlIHRpbWVcbiIKK21zZ3N0ciAiJXM6IHZvdXMgZGV2ZXogcHLpY2lzZXIgbCdoZXVyZSBkZSBy6XZlaWxcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MTcKK21zZ2lkICJtYWxsb2MoKSBmYWlsZWQiCittc2dzdHIgIuljaGVjIGRlIG1hbGxvYygpIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGVuYWJsZWQgZm9yIHdha2V1cCBldmVudHNcbiIKK21zZ3N0ciAiJXMgOiAlcyBub24gYWN0aXbpIHBvdXIgbGVzIOl26W5lbWVudHMgXCJ3YWtldXBcIiAocul2ZWlsKVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgImFsYXJtZSAlbGQsIGhldXJlX3N5c3TobWUgJWxkLCBoZXVyZV9ob3Jsb2dlICVsZCwgc2Vjb25kZXMgJXVcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIlczogbCdoZXVyZSBuZSBwZXV0IHBhcyByZWN1bGVyIGVuICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWtldXAgZnJvbSBcIiVzXCIgdXNpbmcgJXMgYXQgJXNcbiIKK21zZ3N0ciAiJXMgOiBcIndha2V1cFwiIChy6XZlaWwpIGRlcHVpcyBcIiVzXCIgYXZlYyAlcyDgICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIGV4ZWN1dGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBpbXBvc3NpYmxlIGQn6XRpcXVldGVyIGRlICVzIGVuICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ5NgorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICJsZWN0dXJlIGhvcmxvZ2UgUlRDIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjUwNQorbXNnaWQgImRpc2FibGUgcnRjIGFsYXJtIGludGVycnVwdCIKK21zZ3N0ciAiZOlzYWN0aXZlIGwnaW50ZXJydXB0aW9uIGfocmFudCBsJ2FsYXJtZSBSVEMiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dpdGNoaW5nIG9uICVzLlxuIgorbXNnc3RyICJCYXNjdWxlIHN1ciAlcy5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJVdGlsaXNhdGlvbiA6ICVzJXMgW29wdGlvbnNdIFtwcm9ncmFtbWUgW2FyZ3VtZW50cyBwcm9ncmFtbWVdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBzYXlzIHdoYXQgb3B0aW9ucyBhcmUgYmVpbmcgc3dpdGNoZWQgb25cbiIKKyIgLVIsIC0tYWRkci1uby1yYW5kb21pemUgIGRpc2FibGVzIHJhbmRvbWl6YXRpb24gb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyAiCisic3BhY2VcbiIKKyIgLUYsIC0tZmRwaWMtZnVuY3B0cnMgICAgIG1ha2VzIGZ1bmN0aW9uIHBvaW50ZXJzIHBvaW50IHRvIGRlc2NyaXB0b3JzXG4iCisiIC1aLCAtLW1tYXAtcGFnZS16ZXJvICAgICB0dXJucyBvbiBNTUFQX1BBR0VfWkVST1xuIgorIiAtTCwgLS1hZGRyLWNvbXBhdC1sYXlvdXQgY2hhbmdlcyB0aGUgd2F5IHZpcnR1YWwgbWVtb3J5IGlzIGFsbG9jYXRlZFxuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgdHVybnMgb24gUkVBRF9JTVBMSUVTX0VYRUNcbiIKKyIgLUIsIC0tMzJiaXQgICAgICAgICAgICAgIHR1cm5zIG9uIEFERFJfTElNSVRfMzJCSVRcbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgIHR1cm5zIG9uIFNIT1JUX0lOT0RFXG4iCisiIC1TLCAtLXdob2xlLXNlY29uZHMgICAgICB0dXJucyBvbiBXSE9MRV9TRUNPTkRTXG4iCisiIC1ULCAtLXN0aWNreS10aW1lb3V0cyAgICB0dXJucyBvbiBTVElDS1lfVElNRU9VVFNcbiIKKyIgLTMsIC0tM2diICAgICAgICAgICAgICAgIGxpbWl0cyB0aGUgdXNlZCBhZGRyZXNzIHNwYWNlIHRvIGEgbWF4aW11bSBvZiAzICIKKyJHQlxuIgorIiAgICAgLS00Z2IgICAgICAgICAgICAgICAgaWdub3JlZCAoZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seSlcbiIKK21zZ3N0ciAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgYWZmaWNoZSBjZXR0ZSBhaWRlXG4iCisiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBtb250cmUgbGVzIG9wdGlvbnMgcXVpIHNlcm9udCBhY3Rpdullc1xuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgcmVuZCBub24gYWzpYXRvaXJlIGwnZXNwYWNlIGQnYWRyZXNzYWdlIHZpcnR1ZWxcbiIKKyIgLUYsIC0tZmRwaWMtZnVuY3B0cnMgICAgIGZhaXQgcG9pbnRlciBsZXMgcG9pbnRldXJzIGRlIGZvbmN0aW9ucyBzdXIgbGVzICIKKyJkZXNjcmlwdGV1cnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIGFjdGl2ZSBNTUFQX1BBR0VfWkVST1xuIgorIiAtTCwgLS1hZGRyLWNvbXBhdC1sYXlvdXQgY2hhbmdlIGxhIG3pdGhvZGUgZCdhbGxvY2F0aW9uIGRlIG3pbW9pcmUgIgorInZpcnR1ZWxsZVxuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgYWN0aXZlIFJFQURfSU1QTElFU19FWEVDXG4iCisiIC1CLCAtLTMyYml0ICAgICAgICAgICAgICBhY3RpdmUgQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgYWN0aXZlIFNIT1JUX0lOT0RFXG4iCisiIC1TLCAtLXdob2xlLXNlY29uZHMgICAgICBhY3RpdmUgV0hPTEVfU0VDT05EU1xuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgYWN0aXZlIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRlIGwnZXNwYWNlIGQnYWRyZXNzYWdlIHV0aWxpc+kg4CB1biBtYXguIGRlIDMgIgorIkdvXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcullIChwb3VyIGNvbXBhdGliaWxpdOkgc2V1bGVtZW50KVxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHNldGFyY2goOCkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQb3VyIHBsdXMgZCdpbmZvcm1hdGlvbnMgdm95ZXogc2V0YXJjaCg4KS5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIiVzOiAlc1xuIgorIlRhcGV6IFwiJXMgLS1oZWxwXCIgcG91ciBwbHVzIGQnaW5mb3JtYXRpb24uXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjE1IHN5cy11dGlscy9zZXRhcmNoLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIgJXM6IGFyY2hpdGVjdHVyZSBpbmNvbm51ZSIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKK21zZ2lkICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK21zZ3N0ciAiUGFzIGFzc2V6IGQnYXJndW1lbnRzIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gc2V0IHBlcnNvbmFsaXR5IHRvICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGZpeGVyIGwnYXJjaGl0ZWN0dXJlIHN5c3TobWUg4CAlcyIKKworIzogc3lzLXV0aWxzL3NldHNpZC5jOjI2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBwcm9ncmFtIFthcmcgLi4uXVxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisiVXRpbGlzYXRpb24gOiAlcyA8cOlyaXBo6XJpcXVlPiBbIC1pIDxJUlE+IHwgLXQgPFRFTVBTPiB8IC1jIDxDQVJBQ1TIUkVTPiB8IC0iCisidyA8QVRURU5URSB8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICJlcnJldXIgbWFsbG9jKCkiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIlczogdmFsZXVyIGVycm9u6WVcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIKK21zZ3N0ciAiJXM6ICVzIG4nZXN0IHBhcyB1biBw6XJpcGjpcmlxdWUgZCdpbXByZXNzaW9uIGxwLlxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN0YXR1cyBpcyAlZCIKK21zZ3N0ciAiJXMg6XRhdCBlc3QgJWQiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBidXN5IgorbXNnc3RyICIsIG9jY3Vw6SIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHJlYWR5IgorbXNnc3RyICIsIHBy6nQiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiwgbWFucXVlIGRlIHBhcGllciIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICIsIG9uLWxpbmUiCittc2dzdHIgIiwgZW4tbGlnbmUiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCBlcnJldXIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAiRXJyZXVyIExQR0VUSVJRIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIlcyB1dGlsaXNlIElSUSAlZFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMgdXRpbGlzYW50IGxhIHNjcnV0YXRpb25cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgIlV0aWxpc2F0aW9uIDogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2MAorbXNnaWQgIiIKKyJSdW4gcHJvZ3JhbSB3aXRoIHNvbWUgbmFtZXNwYWNlcyB1bnNoYXJlZCBmcm9tIHBhcmVudFxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgICAgdXNhZ2UgaW5mb3JtYXRpb24gKHRoaXMpXG4iCisiICAtbSwgLS1tb3VudCAgICAgICB1bnNoYXJlIG1vdW50cyBuYW1lc3BhY2VcbiIKKyIgIC11LCAtLXV0cyAgICAgICAgIHVuc2hhcmUgVVRTIG5hbWVzcGFjZSAoaG9zdG5hbWUgZXRjKVxuIgorIiAgLWksIC0taXBjICAgICAgICAgdW5zaGFyZSBTeXN0ZW0gViBJUEMgbmFtZXNwYWNlXG4iCisiICAtbiwgLS1uZXQgICAgICAgICB1bnNoYXJlIG5ldHdvcmsgbmFtZXNwYWNlXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1bnNoYXJlKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisiUG91ciBwbHVzIGQnaW5mb3JtYXRpb25zIHZvaXIgbmFtZWkoMSkuXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE0CisjLCBmdXp6eQorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICLpY2hlYyBkZSBwb3NpdGlvbm5lbWVudCIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICLpY2hlYyBkZSBleGVjKClcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgImNvbDogYXJndW1lbnQgZXJyb27pIHBvdXIgLWwgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmVdXG4iCittc2dzdHIgIlV0aWxpc2F0aW9uIDogY29sIFstYmZweF0gWy1sIG4tbGlnbmVzXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdyaXRlIGVycm9yLlxuIgorbXNnc3RyICJjb2w6IGVycmV1ciBkJ+ljcml0dXJlLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdhcm5pbmc6IGNhbid0IGJhY2sgdXAgJXMuXG4iCittc2dzdHIgImNvbDogQVZFUlRJU1NFTUVOVDogbmUgcGV1dCByZWN1bGVyICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgInBhc3QgZmlyc3QgbGluZSIKK21zZ3N0ciAicGFzc+kgbGEgcHJlbWnocmUgbGlnbmUiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAiLS0gbGluZSBhbHJlYWR5IGZsdXNoZWQiCittc2dzdHIgIi0tIGxpZ25lIGTpauAg6WxpbWlu6WUiCisKKyM6IHRleHQtdXRpbHMvY29sY3J0LmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLSBdIFsgLTIgXSBbIGZpbGUgLi4uIF1cbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiAlcyBbIC0gXSBbIC0yIF0gWyBmaWNoaWVyIC4uLiBdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mjk3Cittc2dpZCAibGluZSB0b28gbG9uZyIKK21zZ3N0ciAibGlnbmUgdHJvcCBsb25ndWUiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiBjb2x1bW4gWy10eF0gWy1jIGNvbG9ubmVzXSBbZmljaGllciAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdmFsZXVyIGRlIGxvbmd1ZXVyIGVycm9u6WUuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IHZhbGV1ciBkZSBzYXV0IGVycm9u6WUuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmbXRdIFstZiBmbXRfZmlsZV0gWy1uIGxlbmd0aF0gWy1zIHNraXBdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZvcm1hdF0gWy1mIGZpY2hpZXItZm9ybWF0XSBbLW4gbG9uZ3VldXJdIFstcyBzYXV0XSAiCisiW2ZpY2hpZXIgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSBuYW1lMSBuYW1lMiAuLi5cbiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gOiAlcyBbLWRmbHBjc3VdIFsrbm8tZGUtbGlnbmUgfCArL3BhdHJvbl0gbm9tMSBub20yIC4uLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyOTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBpbml0aWFsaXplIGxpbmUgYnVmZmVyXG4iCittc2dzdHIgImltcG9zc2libGUgZCdhbGxvdWVyIGxlIHRhbXBvbiBkZSBzb3J0aWUiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBvcHRpb24gXCItJWNcIlxuIgorbXNnc3RyICIlczogb3B0aW9uIGluY29ubnVlIFwiLSVjXCJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczogculwZXJ0b2lyZSAqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKioqKioqKiAlczogTm90IGEgdGV4dCBmaWxlICoqKioqKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKioqKioqKiAlczogTidlc3QgcGFzIHVuIGZpY2hpZXIgdGV4dGUgKioqKioqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIltVc2UgcSBvciBRIHRvIHF1aXRdIgorbXNnc3RyICJbVXRpbGlzZXIgcSBvdSBRIHBvdXIgcXVpdHRlcl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICItLU1vcmUtLSIKK21zZ3N0ciAiLS1QbHVzLS0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICIoTmV4dCBmaWxlOiAlcykiCittc2dzdHIgIihQcm9jaGFpbiBmaWNoaWVyOiAlcykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIltBcHB1eWVyIHN1ciBsYSBiYXJyZSBkJ2VzcGFjZW1lbnQgcG91ciBjb250aW51ZXIsIKsgcSC7IHBvdXIgcXVpdHRlci5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmJhY2sgJWQgcGFnZXMiCittc2dzdHIgIi4uLnJlY3Vs6SBkZSAlZCBwYWdlcyIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwOAorbXNnaWQgIi4uLmJhY2sgMSBwYWdlIgorbXNnc3RyICIuLi5yZWN1bOkgZGUgMSBwYWdlIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUxCittc2dpZCAiLi4uc2tpcHBpbmcgb25lIGxpbmUiCittc2dzdHIgIi4uLmVzY2Ftb3RhZ2UgZCd1bmUgbGlnbmUiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc2tpcHBpbmcgJWQgbGluZXMiCittc2dzdHIgIi4uLmVzY2Ftb3RhZ2UgZGUgJWQgbGlnbmUocykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqQXJyaehyZSoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzI4Cittc2dpZCAiIgorIlxuIgorIk1vc3QgY29tbWFuZHMgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBpbnRlZ2VyIGFyZ3VtZW50IGsuICBEZWZhdWx0cyBpbiAiCisiYnJhY2tldHMuXG4iCisiU3RhciAoKikgaW5kaWNhdGVzIGFyZ3VtZW50IGJlY29tZXMgbmV3IGRlZmF1bHQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMYSBwbHVwYXJ0IGRlcyBjb21tYW5kZXMgcHLpY+lk6WVzIG9wdGlvbm5lbGxlbWVudCBwYXIgdW4gYXJndW1lbnQgZW50aWVyIGsuICIKKyJQYXIgZOlmYXV0IGVudHJlIGNyb2NoZXRzLlxuIgorIkwn6XRvaWxlIFwiKlwiIGluZGlxdWUgcXVlIGwnYXJndWVtZW50IGRldmllbnQgbGUgbm91dmVhdSBk6WZhdXQuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMzUKK21zZ2lkICIiCisiPHNwYWNlPiAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFsxXSpcbiIKKyJkIG9yIGN0cmwtRCAgICAgICAgICAgICBTY3JvbGwgayBsaW5lcyBbY3VycmVudCBzY3JvbGwgc2l6ZSwgaW5pdGlhbGx5IDExXSpcbiIKKyJxIG9yIFEgb3IgPGludGVycnVwdD4gICBFeGl0IGZyb20gbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGxpbmVzIG9mIHRleHQgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorImIgb3IgY3RybC1CICAgICAgICAgICAgIFNraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGxpbmUgbnVtYmVyXG4iCisiLzxyZWd1bGFyIGV4cHJlc3Npb24+ICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiBsYXN0IHIuZSBbMV1cbiIKKyIhPGNtZD4gb3IgOiE8Y21kPiAgICAgICBFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBhdCBjdXJyZW50IGxpbmVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRyYXcgc2NyZWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIG5leHQgZmlsZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggcHJldmlvdXMgZmlsZSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCBwcmV2aW91cyBjb21tYW5kXG4iCittc2dzdHIgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICAgYWZmaWNoZXIgbGVzIHByb2NoYWluZXMgTiBsaWduZXMgZGUgdGV4dGVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWlsbGUgY291cmFudGUgZCfpY3Jhbl1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICAgYWZmaWNoZXIgbGVzIHByb2NoYWluZXMgTiBsaWduZXMgZGUgdGV4dGVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWlsbGUgY291cmFudGUgZCfpY3Jhbl0qXG4iCisiPHJldHVybj4gICAgICAgICAgICAgICAgIGFmZmljaGVyIGxlcyBwcm9jaGFpbmVzIE4gbGlnbmVzIGRlIHRleHRlWzFdKlxuIgorImQgdW8gY3RybC1EICAgICAgICAgICAgICBk6WZpbGVyIE4gbGlnbmVzIFt0YWlsbGUgY291cmFudGUgZGUgZOlmaWxlbWVudCwgIgorImluaXRpYWxsZW1lbnQgMTFdKlxuIgorInEgb3UgUSBvdSA8aW50ZXJydXB0PiAgICBxdWl0dGVyIG1vcmVcbiIKKyJzICAgICAgICAgICAgICAgICAgICAgICAgZXNjYW1vdGVyIHZlcnMgbCdhdmFudCBOIGxpZ25lcyBkZSB0ZXh0ZSBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICAgZXNjYW1vdGVyIHZlcnMgbCdhdmFudCBOIOljcmFucyBwbGVpbnMgZGUgdGV4dGUgIgorIlsxXVxuIgorImIgb3UgY3RybC1CICAgICAgICAgICAgICBlc2NhbW90ZXIgdmVycyBsJ2FycmnocmUgTiDpY3JhbnMgcGxlaW5zIGRlIHRleHRlICIKKyJbMV1cbiIKKyInICAgICAgICAgICAgICAgICAgICAgICAgYWxsZXIg4CBsJ2VuZHJvaXQgb/kgbGEgcmVjaGVyY2hlIHBy6WPpZGVudGUgYSAiCisiZOlidXTpXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgIGFmZmljaGVyIGxlIG51belybyBkZSBsYSBsaWduZSBjb3VyYW50ZVxuIgorIi88ZXhwcmVzc2lvbiBy6Wd1bGnocmU+ICAgIGNoZXJjaGVyIGxhIE5p6G1lIG9jY3VyZW5jZSBkZSBsJ2V4cHJlc3Npb24gIgorInLpZ3VsaehyZSBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICAgY2hlcmNoZXIgbGEgTmnobWUgb2NjdXJlbmNlIGRlIGxhIGRlcm5p6HJlICIKKyJleHByZXNzaW9uIHLpZ3VsaehyZSBbMV1cbiIKKyIhPGNtZD4gb3UgOiE8Y21kPiAgICAgICAgZXjpY3V0ZXIgbGEgqyBjbWQguyBkYW5zIHVuIHNvdXMtc2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICAgbGFuY2VyIC91c3IvYmluL3ZpIOAgbGEgbGlnbmUgY291cmFudGVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICAgculhZmZpY2hlciBsJ+ljcmFuc1xuIgorIjpuICAgICAgICAgICAgICAgICAgICAgICBhbGxlciBhdSBOaehtZSBwcm9jaGFpbiBmaWNoaWVyIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgICBhbGxlciBhdSBOaehtZSBmaWNoaWVyIHBy6WPpZGFudCBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICAgYWZmaWNoZXIgbGUgbm9tIGR1IGZpY2hpZXIgY291cmFudGV0IGxlIG51belybyBkZSAiCisibGlnbmVcbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICAgculw6XRlciBsYSBjb21tYW5kZSBwculj6WRlbnRlXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0MDQgdGV4dC11dGlscy9tb3JlLmM6MTQwOQorIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3MgJ2gnIGZvciBpbnN0cnVjdGlvbnMuXSIKK21zZ3N0ciAiW0FwcHV5ZXIgqyBoILsgcG91ciBvYnRlbmlyIGxlcyBpbnN0cnVjdGlvbnMuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0MworIywgYy1mb3JtYXQKK21zZ2lkICJcIiVzXCIgbGluZSAlZCIKK21zZ3N0ciAiqyAlcyC7IGxpZ25lICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbUGFzIHVuIGZpY2hpZXJdIGxpZ25lICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTI5Cittc2dpZCAiICBPdmVyZmxvd1xuIgorbXNnc3RyICIgIETpYm9yZGVtZW50XG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIuLi5lc2NhbW90YWdlXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MDUKK21zZ2lkICJSZWd1bGFyIGV4cHJlc3Npb24gYm90Y2giCittc2dzdHIgIkV4cHJlc3Npb24gculndWxp6HJlIGLiY2zpZSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiUGF0cm9uIG5vbiByZXDpculcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxNiB0ZXh0LXV0aWxzL3BnLmM6MTEyNyB0ZXh0LXV0aWxzL3BnLmM6MTI3OAorbXNnaWQgIlBhdHRlcm4gbm90IGZvdW5kIgorbXNnc3RyICJQYXRyb24gbm9uIHJlcOly6SIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTY3NworbXNnaWQgImNhbid0IGZvcmtcbiIKK21zZ3N0ciAibmUgcGV1dCDpdGFibGlyIHVuIHJlbGFpcyBmb3JrKClcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKyJcbiIKKyIuLi5Fc2NhbW90YWdlIGVuIGNvdXJzICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMAorbXNnaWQgIi4uLlNraXBwaW5nIHRvIGZpbGUgIgorbXNnc3RyICIuLi5Fc2NhbW90YWdlIHZlcnMgbGUgZmljaGllciAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjIKK21zZ2lkICIuLi5Ta2lwcGluZyBiYWNrIHRvIGZpbGUgIgorbXNnc3RyICIuLi5Fc2NhbW90YWdlIGFycmnocmUgdmVycyBsZSBmaWNoaWVyICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjAwMAorbXNnaWQgIkxpbmUgdG9vIGxvbmciCittc2dzdHIgIkxpZ25lIHRyb3AgbG9uZ3VlIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDQzCittc2dpZCAiTm8gcHJldmlvdXMgY29tbWFuZCB0byBzdWJzdGl0dXRlIGZvciIKK21zZ3N0ciAiQXVjdW5lIGNvbW1hbmRlIHBy6WPpZGVudGUgcG91ciBzdWJzaXR1dGlvbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJvZDogb2QoMSkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgaGV4ZHVtcCgxKS5cbiIKK21zZ3N0ciAib2Q6IG9kKDEpIGEg6XTpIGTpcHLpY2npIHBhciBoZXhkdW1wKDEpLlxuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBoZXhkdW1wKDEpIGNvbXBhdGliaWxpdHkgZG9lc24ndCBzdXBwb3J0IHRoZSAtJWMgb3B0aW9uJXNcbiIKK21zZ3N0ciAib2Q6IGxhIGNvbXBhdGliaWxpdOkgZGUgaGV4ZHVtcCgxKW5lIHN1cHBvcnRlIHBhcyBsJ29wdGlvbiAtJWMgJXNcbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzNAorbXNnaWQgIjsgc2VlIHN0cmluZ3MoMSkuIgorbXNnc3RyICI7IGNvbnN1bHRlciBzdHJpbmdzKDEpLiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IG5lIHBldXQgbGlyZSAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgImhleGR1bXA6IGxpZ25lIHRyb3AgbG9uZ3VlLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJ5dGUgY291bnQgd2l0aCBtdWx0aXBsZSBjb252ZXJzaW9uIGNoYXJhY3RlcnMuXG4iCittc2dzdHIgIiIKKyJoZXhkdW1wOiBjb21wdGUgZCdvY3RldHMgZXJyb27pIHBvdXIgbGEgY29udmVyc2lvbiBkZSBtdWx0aXBsZXMgY2FyYWN06HJlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgYnl0ZSBjb3VudCBmb3IgY29udmVyc2lvbiBjaGFyYWN0ZXIgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IGNvbXB0ZSBkJ29jdGV0cyBlcnJvbukgcG91ciBsYSBjb252ZXJzaW9uIGRlIGNhcmFjdOhyZXMgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogJSVzIHJlcXVpcmVzIGEgcHJlY2lzaW9uIG9yIGEgYnl0ZSBjb3VudC5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogJSVzIHJlcXVpZXJ0IHVuZSBwculjaXNpb24gb3UgdW4gY29tcHRlIGQnb2N0ZXRzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDk2CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBmb3JtYXQgeyVzfVxuIgorbXNnc3RyICJoZXhkdW1wbzogZm9ybWF0IGVycm9u6SB7JXN9XG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iCittc2dzdHIgImhleGR1bXA6IGNvbnZlcnNpb24gZXJyb27pZSBkZSBjYXJhY3TocmVzICUlJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiVG91cyBkcm9pdHMgculzZXJ26XMuXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIiAgaCAgICAgICAgICAgICAgICAgICAgICAgY2V0IOljcmFuIGQnYWlkZVxuIgorIiAgcSBvdSBRICAgICAgICAgICAgICAgICAgcXVpdHRlclxuIgorIiAgPGVudHLpZT4gICAgICAgICAgICAgICBwYWdlIHN1aXZhbnRlXG4iCisiICBmICAgICAgICAgICAgICAgICAgICAgICBzYXV0ZXIgdW5lIHBhZ2UgZW4gYXZhbnRcbiIKKyIgIGQgb3UgXkQgICAgICAgICAgICAgICAgIGRlbWktcGFnZSBzdWl2YW50ZVxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgbGlnbmUgc3VpdmFudGVcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIGRlcm5p6HJlIHBhZ2VcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIGNoZXJjaGVyIGVuIGF2YW50IGwnZXhwci4gcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIGNoZXJjaGVyIGVuIGFycmnocmUgbCdleHByLiByZWdleFxuIgorIiAgLiBvdSBeTCAgICAgICAgICAgICAgICAgcmFmcmFpY2hpdCBsJ+ljcmFuXG4iCisiICB3IG91IHogICAgICAgICAgICAgICAgICBmaXhlIGxhIHRhaWxsZSBkZSBwYWdlLCB2YSDgIGxhIGRlcm5p6HJlIHBhZ2VcbiIKKyIgIHMgZmljaGllciAgICAgICAgICAgICAgc2F1dmUgbGUgZmljaGllciBjb3VyYW50IHNvdXMgXCJmaWNoaWVyXCJcbiIKKyIgICFjb21tYW5kZSAgICAgICAgICAgICAgIGFwcGVsIHNoZWxsXG4iCisiICBwICAgICAgICAgICAgICAgICAgICAgICB2YSBhdSBmaWNoaWVyIHBy6WPpZGVudFxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgdmEgYXUgZmljaGllciBzdWl2YW50XG4iCisiXG4iCisiUGx1c2lldXJzIGNvbW1hbmRlcyBhY2NlcHRlbnQgZGVzIG5vbWJyZXMgYXZhbnQgZWxsZXMsIHBhciBleGVtcGxlOlxuIgorIisxPGVudHLpZT4gKHBhZ2Ugc3Vpdi4pOyAtMTxlbnRy6WU+IChwYWdlIHBy6WMuKTsgMTxlbnRy6WU+ICgx6HJlIHBhZ2UpLlxuIgorIlxuIgorIlZvaXIgcGcoMSkgcG91ciBwbHVzIGQnaW5mb3JtYXRpb25zLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjIyMworbXNnaWQgIk91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiUGFzIGFzc2V6IGRlIG3pbW9pcmVcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiAlcyBbLW51bWJlcl0gWy1wIHN0cmluZ10gWy1jZWZucnNdIFsrbGluZV0gWysvcGF0dGVybi9dIFtmaWxlc11cbiIKK21zZ3N0ciAiIgorIiVzOiBVdGlsaXNhdGlvbiA6ICVzIFstbnVt6XJvXSBbLXAgY2hh7m5lXSBbLWNlZm5yc10gWytsaWduZV0gWysvcGF0cm9uL10gIgorIltmaWNoaWVyc11cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjI0NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IC0tICVzXG4iCittc2dzdHIgIiVzOiBsJ29wdGlvbiByZXF1aWVydCB1biBhcmd1bWVudCAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczogb3B0aW9uIGlsbOlnYWxlIC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzAKK21zZ2lkICIuLi5za2lwcGluZyBmb3J3YXJkXG4iCittc2dzdHIgIi4uLmVzY2Ftb3RhZ2UgYXZhbnRcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MgorbXNnaWQgIi4uLnNraXBwaW5nIGJhY2t3YXJkXG4iCittc2dzdHIgIi4uLmVzY2Ftb3RhZ2UgYXJyaehyZVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJQYXMgZGUgcHJvY2hhaW4gZmljaGllciIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIlBhcyBkZSBmaWNoaWVyIHBy6WPpZGVudCIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IGVycmV1ciBkZSBsZWN0dXJlIOAgcGFydGlyIGR1IGZpY2hpZXIgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5leHBlY3RlZCBFT0YgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogRU9GIGluYXR0ZW5kdWUgZGFucyBsZSBmaWNoaWVyICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogZXJyZXVyIGluY29ubnVlIGRhbnMgbGUgZmljaGllciAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIlczogbmUgcGV1dCBjcullciBsZSBmaWNoaWVyIHRlbXBvcmFpcmVcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwNDQgdGV4dC11dGlscy9wZy5jOjEyMTkgdGV4dC11dGlscy9wZy5jOjEyNDYKK21zZ2lkICJSRSBlcnJvcjogIgorbXNnc3RyICJlcnJldXIgUkU6ICIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMDEKK21zZ2lkICIoRU9GKSIKK21zZ3N0ciAiKEVPRikiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjI3IHRleHQtdXRpbHMvcGcuYzoxMjU0Cittc2dpZCAiTm8gcmVtZW1iZXJlZCBzZWFyY2ggc3RyaW5nIgorbXNnc3RyICJQYXMgZGUgY2hh7m5lIGRlIHJlY2hlcmNoZSBt6W1vcmlz6WUiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICJOZSBwZXV0IG91dnJpciIKKworIzogdGV4dC11dGlscy9wZy5jOjEzNTgKK21zZ2lkICJzYXZlZCIKK21zZ3N0ciAic2F1dmVnYXJkZXIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDY1Cittc2dpZCAiOiAhY29tbWFuZCBub3QgYWxsb3dlZCBpbiByZmxhZyBtb2RlLlxuIgorbXNnc3RyICI6ICFjb21tYW5kZSBub24gYXV0b2lyaXPpZSBlbiBtb2RlIHJmbGFnLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ5NworbXNnaWQgImZvcmsoKSBmYWlsZWQsIHRyeSBhZ2FpbiBsYXRlclxuIgorbXNnc3RyICLpY2hlYyBkdSBmb3JrKCksIGVzc2F5ZXIg4CBub3V2ZWF1IHBsdXMgdGFyZC5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIihQcm9jaGFpbiBmaWNoaWVyOiAiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTEzCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnYWxsb3VlciB1biB0YW1wb24iCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiByZXYgW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6IHJldiBbZmljaGllciAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gXCIlc1wiIGZvciByZWFkIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnb3V2cmlyIFwiJXNcIiBlbiBsZWN0dXJlIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBcIiVzXCIiCittc2dzdHIgImltcG9zc2libGUgZCfpdmFsdWVyIHBhciBzdGF0KCkgXCIlc1wiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbmNvbXBsZXRlIHdyaXRlIHRvIFwiJXNcIiAod3JpdHRlbiAlemQsIGV4cGVjdGVkICV6ZClcbiIKK21zZ3N0ciAi6WNyaXR1cmUgaW5jb21wbOh0ZSBzdXIgXCIlc1wiICjpY3JpdHMgJWxkLCBhdHRlbmR1cyAlbGQpXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAobGltaXQgb2YgaW5vdGlmeSB3YXRjaGVzIHdhcyByZWFjaGVkKS4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiBpbXBvc3NpYmxlIGQnb3V2cmlyICVzXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxOTkgdGV4dC11dGlscy90YWlsZi5jOjIwMworbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIGxpbmVzIgorbXNnc3RyICJub21icmUgZGUgbGlnbmVzIGluY29ycmVjdCIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6IHRhaWxmIFstbiBOIHwgLU5dIGZpY2hpZXJfam91cm5hbCIKKworIzogdGV4dC11dGlscy91bC5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZmlsZS4uLlxuIgorbXNnc3RyICJVdGlsaXNhdGlvbiA6ICVzIFsgLWkgXSBbIC10VGVybSBdIGZpY2hpZXIuLi5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ0cm91YmxlIHJlYWRpbmcgdGVybWluZm8iCittc2dzdHIgInByb2Js6G1lIGxvcnMgZGUgbGEgbGVjdHVyZSBkZSB0ZXJtaW5mbyIKKworIzogdGV4dC11dGlscy91bC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIGVzY2FwZSBzZXF1ZW5jZSBpbiBpbnB1dDogJW8sICVvXG4iCittc2dzdHIgIlPpcXVlbmNlIGQn6WNoYXBwZW1lbnQgaW5jb25udWUgZGFucyBsJ2VudHLpZTogJW8sICVvXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo0MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlci5cbiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FsbG91ZXIgdW4gdGFtcG9uLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIkxpZ25lIGQnZW50cullIHRyb3AgbG9uZ3VlLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAiTeltb2lyZSDpcHVpc+llIGxvcnMgZGUgbCdhY2Nyb2lzc2VtZW50IGR1IHRhbXBvbi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBDaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICBHaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIEdpdmUgZmRpc2sgdmVyc2lvblxuIgorI34gIkhlcmUgRElTSyBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYiBvciAvZGV2L3NkYVxuIgorI34gImFuZCBQQVJUSVRJT04gaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGdpdmUgU3RhcnQgYW5kIEVuZCBpbiBzZWN0b3IgKGluc3RlYWQgb2YgY3lsaW5kZXIpIHVuaXRzXG4iCisjfiAiLWIgMjA0ODogKGZvciBjZXJ0YWluIE1PIGRpc2tzKSB1c2UgMjA0OC1ieXRlIHNlY3RvcnNcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlV0aWxpc2F0aW9uIDogZmRpc2sgWy1iIFRBSUxMRV0gWy11XSBESVNRVUUgICAgbW9kaWZpZXIgbGEgdGFibGUgZGUgIgorI34gInBhcnRpdGlvbnNcbiIKKyN+ICIgICAgICAgZmRpc2sgLWwgWy1iIFRBSUxMRV0gWy11XSBESVNRVUUgbGlzdGVyIGxlcyB0YWJsZXMgZGUgcGFydGl0aW9uc1xuIgorI34gIiAgICAgICBmZGlzayAtcyBQQVJUSVRJT04gICAgICAgICAgICAgICAgICAgIGRvbm5lciBsYSB0YWlsbGUgZGUgIgorI34gInBhcnRpdGlvbiBlbiBibG9jc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmZmljaGVyIGxhIHZlcnNpb24gIgorI34gImRlIGZkaXNrXG4iCisjfiAiT/kgRElTUVVFIGVzdCBxdWVscXVlIGNob3NlIGR1IGdlbnJlOiAvZGV2L2hkYiBvdSAvZGV2L3NkYVxuIgorI34gImV0IFBBUlRJVElPTiBlc3QgcXVlbHF1ZSBjaG9zZSBkdSBnZW5yZTogL2Rldi9oZGE3XG4iCisjfiAiLXU6IGRvbm5lIGxlIETpYnV0IGV0IGxhIEZpbiBlbiB1bml06XMgZGUgc2VjdGV1cnMgKGF1IGxpZXUgZGUgIgorI34gImN5bGluZHJlcylcbiIKKyN+ICItYiAyMDQ4OiAocG91ciBjZXJ0YWlucyBkaXNxdWVzIG9wdGlxdWVzKSBzcOljaWZpZSAyMDQ4IG9jdGV0cyBwYXIgIgorI34gInNlY3RldXJcbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGRldmljZVxuIgorI34gIkUuZy46IGZkaXNrIC9kZXYvaGRhICAoZm9yIHRoZSBmaXJzdCBJREUgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3NkYyAgKGZvciB0aGUgdGhpcmQgU0NTSSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvZWRhICAoZm9yIHRoZSBmaXJzdCBQUy8yIEVTREkgZHJpdmUpXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9yZC9jMGQwICBvcjogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKGZvciBSQUlEIGRldmljZXMpXG4iCisjfiAiICAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlV0aWxpc2F0aW9uIDogZmRpc2sgWy1sXSBbLWIgVEFJTExFXSBbLXVdIHDpcmlwaOlyaXF1ZVxuIgorI34gImkuZS46IGZkaXNrIC9kZXYvaGRhICAocG91ciBsZSBwcmVtaWVyIGRpc3F1ZSBJREUpXG4iCisjfiAiICBvdTogZmRpc2sgL2Rldi9zZGMgIChwb3VyIGxlIDNlIGRpc3F1ZSBTQ1NJKVxuIgorI34gIiAgb3U6IGZkaXNrIC9kZXYvZWRhICAocG91ciBsZSAxZXIgZGlzcXVlIFBTLzIgRVNESSlcbiIKKyN+ICIgIG91OiBmZGlzayAvZGV2L3JkL2MwZDAgIG91OiBmZGlzayAvZGV2L2lkYS9jMGQwICAocG91ciBkZXMgIgorI34gInDpcmlwaOlyaXF1ZXMgUkFJRClcbiIKKyN+ICIgIC4uLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlxuIgorI34gIlRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIGZvciB0aGlzIGRpc2sgaXMgc2V0IHRvICVkLlxuIgorI34gIlRoZXJlIGlzIG5vdGhpbmcgd3Jvbmcgd2l0aCB0aGF0LCBidXQgdGhpcyBpcyBsYXJnZXIgdGhhbiAxMDI0LFxuIgorI34gImFuZCBjb3VsZCBpbiBjZXJ0YWluIHNldHVwcyBjYXVzZSBwcm9ibGVtcyB3aXRoOlxuIgorI34gIjEpIHNvZnR3YXJlIHRoYXQgcnVucyBhdCBib290IHRpbWUgKGUuZy4sIG9sZCB2ZXJzaW9ucyBvZiBMSUxPKVxuIgorI34gIjIpIGJvb3RpbmcgYW5kIHBhcnRpdGlvbmluZyBzb2Z0d2FyZSBmcm9tIG90aGVyIE9Tc1xuIgorI34gIiAgIChlLmcuLCBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJcbiIKKyN+ICJMZSBub21icmUgZGUgY3lsaW5kcmVzIHBvdXIgY2UgZGlzcXVlIGVzdCBmaXjpIOAgJWQuXG4iCisjfiAiSWwgbid5IGEgcmllbiBkJydpbmNvcnJlY3QgYXZlYyBjZWxhLCBtYWlzIGMnZXN0IHBsdXMgZ3JhbmQgcXVlIDEwMjQsXG4iCisjfiAiZXQgY2VsYSBwb3VycmFpdCBjYXVzZXIgZGVzIHByb2Js6G1lcyBwb3VyIGNlcnRhaW5lcyBpbnN0YWxsYXRpb25zOlxuIgorI34gIjEpIGxvZ2ljaWVscyBxdWkgc29udCBleOljdXTpcyDgIGwnYW1vcudhZ2UgKGkuZS4sIHZpZWlsbGVzIHZlcnNpb25zIGRlICIKKyN+ICJMSUxPKVxuIgorI34gIjIpIGxvZ2ljaWVscyBkJ2Ftb3LnYWdlIGV0IGRlIHBhcnRpdGlvbm5lbWVudCBwb3VyIGQnYXV0cmVzIE9TXG4iCisjfiAiICAgKGkuZS4sIERPUyBGRElTSywgT1MvMiBGRElTSylcbiIKKworI34gbXNnaWQgIiVzOiBmb3VuZCAlc3N3YXAgdiVkIHNpZ25hdHVyZSBzdHJpbmcgZm9yICVkIEtpQiBQQUdFX1NJWkVcbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzIDogY2hh7m5lIGRlIHNpZ25hdHVyZSB0cm91dullICVzc3dhcCB2JWQgcG91ciBQQUdFX1NJWkUgZGUgJWQgS29cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJvdXQgaWYgbWVtb3J5IgorI34gbXNnc3RyICJt6W1vaXJlIOlwdWlz6WUiCisKKyN+IG1zZ2lkICIjIHBhcnRpdGlvbiB0YWJsZSBvZiAlc1xuIgorI34gbXNnc3RyICIjIHRhYmxlIGRlIHBhcnRpdGlvbnMgZGUgJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1bml0OiBzZWN0b3JzXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJ1bml06Togc2VjdGV1cnNcbiIKKyN+ICJcbiIKKworI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICJk6WJ1dD0lOWx1IgorCisjfiBtc2dpZCAiLCBzaXplPSU5bHUiCisjfiBtc2dzdHIgIiwgdGFpbGxlPSU5bHUiCisKKyN+IG1zZ2lkICIsIGJvb3RhYmxlIgorI34gbXNnc3RyICIsIGFtb3LnYWJsZSIKKworI34gbXNnaWQgIkNsb2NrIGluIFVUQywgbm90IGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIkhvcmxvZ2UgYXUgZm9ybWF0IFVUQywgbm9uIG1vZGlmaellLlxuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiBsYWJlbCBvbmx5IHdpdGggdjEgc3dhcCBhcmVhXG4iCisjfiBtc2dzdHIgIiVzOiBlcnJldXI6IOl0aXF1ZXR0ZSBhdmVjIHVuIGVzcGFjZSBkJ+ljaGFuZ2UgdjEgc2V1bGVtZW50XG4iCisKKyN+IG1zZ2lkICJmYXRhbDogZmlyc3QgcGFnZSB1bnJlYWRhYmxlIgorI34gbXNnc3RyICJFUlJFVVIgRkFUQUxFOiBsYSBwcmVtaehyZSBwYWdlIGVzdCBpbGxpc2libGUiCisKKyN+IG1zZ2lkICIiCisjfiAiJXM6IERldmljZSAnJXMnIGNvbnRhaW5zIGEgdmFsaWQgU3VuIGRpc2tsYWJlbC5cbiIKKyN+ICJUaGlzIHByb2JhYmx5IG1lYW5zIGNyZWF0aW5nIHYwIHN3YXAgd291bGQgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyN+ICJObyBzd2FwIHdhcyBjcmVhdGVkLiBJZiB5b3UgcmVhbGx5IHdhbnQgdG8gY3JlYXRlIHYwIHN3YXAgb24gdGhhdCAiCisjfiAiZGV2aWNlLFxuIgorI34gInVzZSB0aGUgLWYgb3B0aW9uIHRvIGZvcmNlIGl0LlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6IGxlIHDpcmlwaOlyaXF1ZSCrICVzILsgY29udGllbnQgdW5lIOl0aXF1ZXR0ZSBkZSBkaXNxdWUgU3VuIHZhbGlkZS5cbiIKKyN+ICJDZWxhIHNpZ25pZmllIHF1ZSBjcullciB1bmUgem9uZSBkJ2NoYW5nZSAoc3dhcCkgdjAgZOl0cnVpcmEgbGEgdGFibGUgZGUgIgorI34gInBhcnRpdGlvbnMuXG4iCisjfiAiQXVjdW5lIHpvbmUgZCfpY2hhbmdlKHN3YXApIG4nYSDpdOkgY3Lp6WUuIFNpIHZvdXMgZOlzaXJleiBlbiBjcullciB1bmUgIgorI34gInN1ciBjZVxuIgorI34gInDpcmlwaOlyaXF1ZSwgdXRpbGlzZXogbCdvcHRpb24gLWYgcG91ciBmb3JjZXIgc2EgY3LpYXRpb24uXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBpbmNhcGFibGUgZGUgcmVw6XJlciBsZSBy6XBlcnRvaXJlIGNvdXJhbnQgLSAlc1xuIgorCisjfiBtc2dpZCAibmFtZWk6IHVuYWJsZSB0byBjaGRpciB0byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGluY2FwYWJsZSBkZSBjaGFuZ2VyIGRlIHLpcGVydG9pcmUgdmVycyAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3QgY2hkaXIgdG8gcm9vdCFcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IG5lIHBldXQgY2hhbmdlciBkZSBy6XBlcnRvaXJlIHZlcnMgcm9vdCFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3Qgc3RhdCByb290IVxuIgorI34gbXNnc3RyICJuYW1laTogbmUgcGV1dCDpdmFsdWVyIHBhciBzdGF0KCkgcm9vdCFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGTpYm9yZGVtZW50IGRlIHRhbXBvblxuIgorCisjfiBtc2dpZCAiID8gY291bGQgbm90IGNoZGlyIGludG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IG5lIHBldXQgY2hhbmdlciBkZSBy6XBlcnRvaXJlIGRhbnMgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IHByb2Js6G1lcyBkZSBsZWN0dXJlIGRlcyBsaWVucyBzeW1ib2xpcXVlcyAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIiAgKioqIEVYQ0VFREVEIFVOSVggTElNSVQgT0YgU1lNTElOS1MgKioqXG4iCisjfiBtc2dzdHIgIiAgKioqIExJTUlURSBERVMgTElFTlMgU1lNQk9MSVFVRSBEyVBBU1PJRSAqKipcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmtub3duIGZpbGUgdHlwZSAwJTA2byBvbiBmaWxlICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiB0eXBlIGRlIGZpY2hpZXIgaW5jb25udSAwJTA2byBkdSBsZSBmaWNoaWVyICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ29pbmcgdG8gbW91bnQgJXMgYnkgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQgOiBtb250YWdlIGRlICVzIHBhciAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IG5vIExBQkVMPSwgbm8gVVVJRD0sIGdvaW5nIHRvIG1vdW50ICVzIGJ5IHBhdGhcbiIKKyN+IG1zZ3N0ciAibW91bnQgOiBwYXMgZGUgTEFCRUwsIHBhcyBkJ1VVSUQsIG1vbnRhZ2UgZGUgJXMgc3VpdmFudCBsZSBjaGVtaW5cbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3QgZm9yazogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IOljaGVjIGRlIGNy6WF0aW9uIGQndW4gcHJvY2Vzc3VzIFwiZm9ya1wiIDogJXNcbiIKKworI34gbXNnaWQgIiVzOiB3YWl0cGlkOiAlc1xuIgorI34gbXNnc3RyICIlczogd2FpdHBpZDogJXNcbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3Qgc3RhdCAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IG5lIHBldXQg6XZhbHVlciBwYXMgc3RhdCgpICVzOiAlc1xuIgorCisjfiBtc2dpZCAiY291bGQgbm90IHVtb3VudCAlcyAtIHRyeWluZyAlcyBpbnN0ZWFkXG4iCisjfiBtc2dzdHIgIm5lIHBldXQgZOltb250ZXIgJXMgLSBlc3NheWVyICVzIOAgbGEgcGxhY2VcbiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorI34gbXNnc3RyICKrICVzILs6IHLpcGVydG9pcmUgY29ycm9tcHU6IKsgLiC7IG4nYXBwYXJh7nQgcGFzIGVuIHByZW1pZXJcbiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCisjfiBtc2dzdHIgIqsgJXMguzogculwZXJ0b2lyZSBjb3Jyb21wdTogqyAuLiC7IG4nYXBwYXJh7nQgcGFzIGVuIHNlY29uZFxuIgorCisjfiBtc2dpZCAiY2FsbGluZyBvcGVuX3R0eVxuIgorI34gbXNnc3RyICJhcHBlbCBkZSBvcGVuX3R0eVxuIgorCisjfiBtc2dpZCAiY2FsbGluZyB0ZXJtaW9faW5pdFxuIgorI34gbXNnc3RyICJhcHBlbCBkZSB0ZXJtaW9faW5pdFxuIgorCisjfiBtc2dpZCAid3JpdGluZyBpbml0IHN0cmluZ1xuIgorI34gbXNnc3RyICJjaGHubmUgZCdpbml0aWFsaXNhdGlvbiBlbiDpY3JpdHVyZVxuIgorCisjfiBtc2dpZCAiYmVmb3JlIGF1dG9iYXVkXG4iCisjfiBtc2dzdHIgImF2YW50IGxlIG1vZGUgYXV0b2JhdWRcbiIKKworI34gbXNnaWQgIndhaXRpbmcgZm9yIGNyLWxmXG4iCisjfiBtc2dzdHIgImVuIGF0dGVudGUgZGUgY3ItbGZcbiIKKworI34gbXNnaWQgInJlYWRpbmcgbG9naW4gbmFtZVxuIgorI34gbXNnc3RyICJsZWN0dXJlIGR1IG5vbSBkZSBsb2dpblxuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAiYXBy6HMgbGEgYm91Y2xlIGdldG9wdFxuIgorCisjfiBtc2dpZCAiZXhpdGluZyBwYXJzZWFyZ3NcbiIKKyN+IG1zZ3N0ciAicXVpdHRlIHBhcnNlYXJnc1xuIgorCisjfiBtc2dpZCAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKyN+IG1zZ3N0ciAiZW50cmUgZGFucyBwYXJzZV9zcGVlZHNcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VzcGVlZHNcbiIKKyN+IG1zZ3N0ciAicXVpdHRlIHBhcnNlc3BlZWRzXG4iCisKKyN+IG1zZ2lkICJvcGVuKDIpXG4iCisjfiBtc2dzdHIgIm9wZW4oMilcbiIKKworI34gbXNnaWQgImR1cGluZ1xuIgorI34gbXNnc3RyICJkdXAoKSBlbiBjb3Vyc1xuIgorCisjfiBtc2dpZCAidGVybV9pbyAyXG4iCisjfiBtc2dzdHIgInRlcm1faW8gMlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgZXJyb3IuIgorI34gbXNnc3RyICJFcnJldXIgZGUgbW90IGRlIHBhc3NlIgorCisjfiBtc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHNcbiIKKyN+IG1zZ3N0ciAiQVZFUlRJU1NFTUVOVDogqyAlcyC7IG4nYXBwYXJh7nQgcGFzIGRhbnMgL2V0Yy9zaGVsbHNcbiIKKworI34gbXNnaWQgIkNhbid0IHJlYWQgJXMsIGV4aXRpbmcuIgorI34gbXNnc3RyICJOZSBwZXV0IGxpcmUgJXMsIGFiYW5kb24uIgorCisjfiBtc2dpZCAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorI34gbXNnc3RyICJleHBpcmF0aW9uIGR1IGTpbGFpID0gJWQsIHNpbGVuY2lldXggPSAlZCwgculhbW9y52FnZSA9ICVkXG4iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkICVzLCBhbmQgY2Fubm90IGlvY3RsIGR1bXBcbiIKKyN+IG1zZ3N0ciAibmUgcGV1dCBsaXJlICVzIGV0IG5lIHBldXQgcGV1dCBmYWlyZSB1biBkdW1wIHZpYSBpb2N0bCgpXG4iCisKKyN+IG1zZ2lkICIsIG9mZnNldCAlbGxkIgorI34gbXNnc3RyICIsIGTpY2FsYWdlICVsbGQiCisKKyN+IG1zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGRldmljZSAvZGV2L2xvb3AjIgorI34gbXNnc3RyICIlczogbmUgcGV1dCB0cm91dmVyIHVuIHDpcmlwaOlyaXF1ZSBxdWVsY29ucXVlIC9kZXYvbG9vcCMiCisKKyN+IG1zZ2lkICJtb3VudDogYmFja2dyb3VuZGluZyBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG1pc2UgZW4gYXJyaehyZSBwbGFuIGRlIFwiJXNcIlxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdpdmluZyB1cCBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGFiYW5kb24gXCIlc1wiXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml06V0gc3DpY2lhbHzJVElRVUVUVEU9bm9tX2R1X3ZvbHVtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gc3DpY2lhbCAuLi5cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IGNhbm9uaWNhbGl6ZSAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IG5lIHBldXQgb3V2cmlyICVzOiAlc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTI2LjI0cyAlLTI2LjI0c1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogcmVuaWNlIHByaW9yaXR5IFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwcyBdIFsgWyAtdSBdIHVzZXJzIF1cbiIKKyN+IG1zZ3N0ciAiIgorI34gInVzYWdlOiByZW5pY2UgcHJpb3JpdOkgWyBbIC1wIF0gcGlkcyBdIFsgWyAtZyBdIHBncnBzIF0gWyBbIC11IF0gIgorI34gInVzYWdlcnMgXVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIlVua25vd24gb3B0aW9uIGAlYycgaWdub3JlZCIKKyN+IG1zZ3N0ciAiJXM6IG9wdGlvbiBpbmNvbm51ZSBcIi0lY1wiXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRXhjZWVkZWQgTUFYRU5UUklFUy4gIFJhaXNlIHRoaXMgdmFsdWUgaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgIgorI34gIkV4aXRpbmcuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJE6XBhc3NlbWVudCBkZSBNQVhFTlRSSUVTLiBBdWdtZW50ZXIgbGEgdmFsZXVyIGRhbnMgbWtjcmFtZnMuYyBldCAiCisjfiAicmVjb21waWxlci4gRmluIGQnZXjpY3V0aW9uLlxuIgorCisjfiBtc2dpZCAiQXNzdW1pbmcgcGFnZXMgb2Ygc2l6ZSAlZCAobm90ICVkKVxuIgorI34gbXNnc3RyICJPbiBhc3N1bWUgZGVzIHBhZ2VzIGRlIHRhaWxsZSAlZCAoZXQgbm9uIHBhcyBkZSAlZClcbiIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZm91bmQgYSAlcyVzJXNcbiIKKyN+IG1zZ3N0ciAiTCdhdXRvY29uZmlndXJhdGlvbiBhIHJlcOly6SAlcyVzJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJEcml2ZSB0eXBlXG4iCisjfiAiICAgPyAgIGF1dG8gY29uZmlndXJlXG4iCisjfiAiICAgMCAgIGN1c3RvbSAod2l0aCBoYXJkd2FyZSBkZXRlY3RlZCBkZWZhdWx0cykiCisjfiBtc2dzdHIgIiIKKyN+ICJUeXBlIGRlIHDpcmlwaOlyaXF1ZVxuIgorI34gIiAgID8gICBhdXRvY29uZmlndXJhdGlvblxuIgorI34gIiAgIDAgICBjb25maWd1cmF0aW9uIG1hbnVlbGxlICjgIGwnYWlkZSBkZSBsYSBk6XRlY3Rpb25cbiIKKyN+ICIgICAgICAgIG1hdOlyaWVsbGUgZGVzIHBhcmFt6HRyZXMgcGFyIGTpZmF1dCkiCisKKyN+IG1zZ2lkICJTZWxlY3QgdHlwZSAoPyBmb3IgYXV0bywgMCBmb3IgY3VzdG9tKTogIgorI34gbXNnc3RyICIiCisjfiAiU+lsZWN0aW9ubmVyIGxlIHR5cGUgKD8gcG91ciBhdXRvY29uZmlndXJhdGlvbiwgMCBwb3VyIGNvbmZpZ3VyYXRpb24gIgorI34gIm1hbnVlbGxlKSIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZmFpbGVkLlxuIgorI34gbXNnc3RyICLJY2hlYyBkJ2F1dG9jb25maWd1cmF0aW9uLlxuIgorCisjfiBtc2dpZCAiQWx0ZXJuYXRlIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiQ3lsaW5kcmVzIGFsdGVybmF0aWZzIgorCisjfiBtc2dpZCAiUGh5c2ljYWwgY3lsaW5kZXJzIgorI34gbXNnc3RyICJDeWxpbmRyZXMgcGh5c2lxdWVzIgorCisjfiBtc2dpZCAiWW91IG1heSBjaGFuZ2UgYWxsIHRoZSBkaXNrIHBhcmFtcyBmcm9tIHRoZSB4IG1lbnUiCisjfiBtc2dzdHIgIiIKKyN+ICJWb3VzIHBvdXZleiBtb2RpZmllciB0b3VlcyBsZXMgcGFyYW3odHJlcyBkdSBkaXNxdWUg4CBwYXJ0aXIgZHUgbWVudSB4IgorCisjfiBtc2dpZCAiMyw1XCIgZmxvcHB5IgorI34gbXNnc3RyICIzLDVcIiBkaXNxdWV0dGUiCisKKyN+IG1zZ2lkICJMaW51eCBjdXN0b20iCisjfiBtc2dzdHIgIkNvbmZpZ3VyYXRpb24gTGludXgiCisKKyN+IG1zZ2lkICIlcyBmcm9tIHV0aWwtbGludXgtJXNcbiIKKyN+IG1zZ3N0ciAiJXMgZGUgdXRpbC1saW51eC0lc1xuIgorCisjfiBtc2dpZCAiJXMgZnJvbSAlcyVzXG4iCisjfiBtc2dzdHIgIiVzIGRlICVzJXNcbiIKKworI34gbXNnaWQgIiVzOiBlcnJvcjogdGhlIGxhYmVsICVzIG9jY3VycyBvbiBib3RoICVzIGFuZCAlc1xuIgorI34gbXNnc3RyICIlczogZXJyZXVyOiBsJ+l0aXF1ZXR0ZSAlcyBhcHBhcmHudCDgIGxhIGZvaXMgc3VyICVzIGV0ICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiJXM6IGNvdWxkIG5vdCBvcGVuICVzLCBzbyBVVUlEIGFuZCBMQUJFTCBjb252ZXJzaW9uIGNhbm5vdCBiZSBkb25lLlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6IG5lIHBldXQgb3V2cmlyICVzLCBhdXNzaSBsYSBjb252ZXJzaW9uIGRlIFVVSUQgZXQgZGUgbCfJVElRVUVUVEUgbmUgIgorI34gInBldXQg6nRyZSBmYWl0ZS5cbiIKKworI34gbXNnaWQgIiVzOiBiYWQgVVVJRCIKKyN+IG1zZ3N0ciAiJXM6IFVVSUQgZXJyb27pIgorCisjfiBtc2dpZCAibW91bnQ6IGZhaWxlZCB3aXRoIG5mcyBtb3VudCB2ZXJzaW9uIDQsIHRyeWluZyAzLi5cbiIKKyN+IG1zZ3N0ciAibW91bnQ6IOljaGVjIGF2ZWMgbGEgdmVyc2lvbiA0IGRlIG1vdW50IG5mcywgb24gdGVudGUgbGEgMy4uXG4iCisKKyN+IG1zZ2lkICJtb3VudDogbW91bnRpbmcgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG9uIG1vbnRlICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2Fubm90IGZpbmQgJXMgaW4gJXMiCisjfiBtc2dzdHIgIm1vdW50OiBuZSBwZXV0IHJlcOlyZXIgJXMgZGFucyAlcyIKKworI34gbXNnaWQgIm1vdW50OiBlcnJvciB3aGlsZSBndWVzc2luZyBmaWxlc3lzdGVtIHR5cGVcbiIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBlcnJvciBsb3JzIGRlIGxhIHRlbnRhdGl2ZSBkJ2lkZW50aWZpY2F0aW9uIGR1IHN5c3TobWUgZGUgIgorI34gImZpY2hpZXJzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBob3N0OmRpciBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogYXJndW1lbnQgZXhjZXNzaXZlbWVudCBsb25nICBwb3VyIGj0dGU6culwZXJ0b2lyZVxuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IG11bHRpcGxlIGhvc3RuYW1lcyBub3Qgc3VwcG9ydGVkXG4iCisjfiBtc2dzdHIgIm1vdW50OiBBVkVSVElTU0VNRU5UOiBtdWx0aXBsZXMgbm9tcyBkJ2j0dGVzIG5vbiBzdXBwb3J06XNcbiIKKworI34gbXNnaWQgIm1vdW50OiBkaXJlY3RvcnkgdG8gbW91bnQgbm90IGluIGhvc3Q6ZGlyIGZvcm1hdFxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IGxlIHLpcGVydG9pcmUg4CBtb250ZXIgbid1dGlsaXNlIHBhcyBsZSBmb3JtYXQgaPR0ZTpy6XBlcnRvaXJlXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiBuZSBwZXV0IG9idGVuaXIgbCdhZHJlc3NlIGRlICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGEgb2J0ZW51IHVuIGhwLT5oX2xlbmd0aCBlcnJvbulcbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIG9wdGlvbiBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogYXJndW1lbnQgZXhjZXNzaXZlbWVudCBsb25nIHBvdXIgdW5lIG9wdGlvblxuIgorCisjfiBtc2dpZCAiV2FybmluZzogVW5yZWNvZ25pemVkIHByb3RvPSBvcHRpb24uXG4iCisjfiBtc2dzdHIgIkFWRVJUSVNTRU1FTlQ6IGwnb3B0aW9uIHByb3RvPSBuJ2VzdCBwYXMgcmVjb25udWUuXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBPcHRpb24gbmFtbGVuIGlzIG5vdCBzdXBwb3J0ZWQuXG4iCisjfiBtc2dzdHIgIkFWRVJUSVNTRU1FTlQ6IGwnb3B0aW9uIG5hbWxlbiBuJ2VzdCBwYXMgc3VwcG9ydOllLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgcGFyYW1ldGVyOiAlcz0lZFxuIgorI34gbXNnc3RyICJwYXJhbeh0cmUgbW91bnQgbmZzIGluY29ubnU6ICVzPSVkXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBvcHRpb24gbm9sb2NrIGlzIG5vdCBzdXBwb3J0ZWQuXG4iCisjfiBtc2dzdHIgIkFWRVJUSVNTRU1FTlQ6IGwnb3B0aW9uIG5vbG9jayBuJ2VzdCBwYXMgc3VwcG9ydOllLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgb3B0aW9uOiAlcyVzXG4iCisjfiBtc2dzdHIgIm9wdGlvbiBtb3VudCBuZnMgaW5jb25udWU6ICVzJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb3QgYmFkIGhwLT5oX2xlbmd0aD9cbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGEgb2J0ZW51IHVuIGhwLT5oX2xlbmd0aCBlcnJvbuk/XG4iCisKKyN+IG1zZ2lkICJuZnMgYmluZHJlc3Zwb3J0IgorI34gbXNnc3RyICJiaW5kcmVzdnBvcnQgbmZzIgorCisjfiBtc2dpZCAibmZzIHNlcnZlciByZXBvcnRlZCBzZXJ2aWNlIHVuYXZhaWxhYmxlIgorI34gbXNnc3RyICJzZXJ2ZXVyIG5mcyByYXBwb3J0ZSBxdWUgbGUgc2VydmljZSBuJ2VzdCBwYXMgZGlzcG9uaWJsZSIKKworI34gbXNnaWQgInVzZWQgcG9ydG1hcHBlciB0byBmaW5kIE5GUyBwb3J0XG4iCisjfiBtc2dzdHIgInV0aWxpc2F0aW9uIGR1IHBvcnRtYXBwZXIgcG91ciByZXDpcmVyIGxlIHBvcnQgTkZTXG4iCisKKyN+IG1zZ2lkICJ1c2luZyBwb3J0ICVkIGZvciBuZnMgZGVhbW9uXG4iCisjfiBtc2dzdHIgInV0aWxpc2F0aW9uIGR1IHBvcnQgJWQgcG91ciBsZSBk6W1vbiBuZnNcbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIHN0YXR1cyByZXR1cm4gdmFsdWU6ICVkIgorI34gbXNnc3RyICJ2YWxldXIgZCfpdGF0IHJldG91cm7pZSBuZnMgaW5jb25udWU6ICVkIgorCisjfiBtc2dpZCAiaG9zdDogJXMsIGRpcmVjdG9yeTogJXNcbiIKKyN+IG1zZ3N0ciAiaPR0ZTogJXMsIHLpcGVydG9pcmU6ICVzXG4iCisKKyN+IG1zZ2lkICJ1bW91bnQ6IGNhbid0IGdldCBhZGRyZXNzIGZvciAlc1xuIgorI34gbXNnc3RyICJ1bW91bnQ6IG5lIHBldXQgb2J0ZW5pciBsJ2FkcmVzc2UgcG91ciAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBnb3QgYmFkIGhvc3RwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJ1bW91bnQ6IGEgb2J0ZW51IHVuIGhvc3RwLT5oX2xlbmd0aCBlcnJvbulcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHBhdGggbGVuZ3RoXG4iCisjfiBtc2dzdHIgIiVzOiBjcmFtZnMgaW52YWxpZGUgLS0gbG9uZ3VldXIgaW52YWxpZGUgZHUgY2hlbWluXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLXdyb25nIG1hZ2ljXG4iCisjfiBtc2dzdHIgIiVzOiBjcmFtZnMgaW52YWxpZGUgLS0gbm9tYnJlIG1hZ2lxdWUgZXJyb27pXG4iCisKKyN+IG1zZ2lkICIlczogd2FybmluZy0tZmlsZSBsZW5ndGggdG9vIGxvbmcsIHBhZGRlZCBpbWFnZT9cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBBVkVSVElTU0VNRU5UIC0gbG9uZ3VldXIgZHUgZmljaGllciB0cm9wIGxvbmd1ZSwgcmVtcGxpc3NhZ2UgZGUgIgorI34gImwnaW1hZ2U/XG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWNyYyBlcnJvclxuIgorI34gbXNnc3RyICIlczogY3JhbWZzIGludmFsaWRlIC0tIGVycmV1ciBDUkNcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHN1cGVyYmxvY2tcbiIKKyN+IG1zZ3N0ciAiJXM6IGNyYW1mcyBpbnZhbGlkZSAtLSBzdXBlcmJsb2MgZXJyb27pXG4iCisKKyN+IG1zZ2lkICJmbG9jazogdW5rbm93biBvcHRpb24sIGFib3J0aW5nLlxuIgorI34gbXNnc3RyICJmbG9jazogb3B0aW9uIGluY29ubnVlLCBhbm51bGF0aW9uIGRlIGwnb3DpcmF0aW9uIFxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlIGZsb2NrIFstLXNoYXJlZF0gWy0tdGltZW91dD1zZWNvbmRzXSBmaWxlbmFtZSBjb21tYW5kIHthcmcgYXJnLi4ufVxuIgorI34gbXNnc3RyICIiCisjfiAiVXNhZ2UgZmxvY2sgWy0tc2hhcmVkIFstLXRpbWVvdXQ9c2Vjb25kZXNdIG5vbV9kZV9maWNoaWVyIGNvbW1hbmRlIHthcmcgIgorI34gImFyZy4uLn1cbiIKKworI34gbXNnaWQgIlN5bnRheCBlcnJvcjogJyVzJ1xuIgorI34gbXNnc3RyICJFcnJldXIgZGUgc3ludGF4ZTogqyAlcyC7XG4iCisKKyN+IG1zZ2lkICJObyBzdWNoIHBhcmFtZXRlciBzZXQ6ICclcydcbiIKKyN+IG1zZ3N0ciAiQXVjdW4gcGFyYW3odHJlIGRlIGNlIHR5cGUgaW5pdGlhbGlz6TogqyAlcyC7XG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1wIF0gZGV2IG5hbWVcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtcCBdIHDpcmlwaOlyaXF1ZSBub21cbiIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2h1LmdtbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2h1LmdtbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2Y3ODkwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vaHUuZ21vCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2h1LnBvIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vaHUucG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk3OWQ0MAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2h1LnBvCkBAIC0wLDAgKzEsMTIzMTQgQEAKKyMgSHVuZ2FyaWFuIHRyYW5zbGF0aW9uIG9mIHV0aWwtbGludXgtbmcKKyMgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlLgorIyBHw6Fib3IgSXN0dsOhbiA8c3RpdmVAbWV6b2JlcmVueS5odT4sIDIwMDIuCisjIEdhYm9yIEtlbGVtZW4gPGtlbGVtZW5nQGdub21lLmh1PiwgMjAwNywgMjAwOC4KK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IHV0aWwtbGludXgtbmcgMi4xNC1yYzJcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDgtMDUtMjEgMTg6MjUrMDIwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogR2Fib3IgS2VsZW1lbiA8a2VsZW1lbmdAZ25vbWUuaHU+XG4iCisiTGFuZ3VhZ2UtVGVhbTogSHVuZ2FyaWFuIDx0cmFuc2xhdGlvbi10ZWFtLWh1QGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKKyJNSU1FLVZlcnNpb246IDEuMFxuIgorIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFxuIgorIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKKyJYLUdlbmVyYXRvcjogS0JhYmVsIDEuMTEuNFxuIgorIlBsdXJhbC1Gb3JtczogIG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjYzCittc2dpZCAic2V0IHJlYWQtb25seSIKK21zZ3N0ciAiYmXDoWxsw610w6FzIGNzYWsgb2x2YXNoYXTDs3JhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAiYmXDoWxsw610w6FzIMOtcmhhdMOzcmEgw6lzIG9sdmFzaGF0w7NyYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjc2Cittc2dpZCAiZ2V0IHJlYWQtb25seSIKK21zZ3N0ciAiY3NhayBvbHZhc2hhdMOzIMOhbGxhcG90IGxla8OpcsOpc2UiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo4MgorIywgZnV6enkKK21zZ2lkICJnZXQgbG9naWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJzemVrdG9ybcOpcmV0IGxla8OpcsOpc2UiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo4OAorIywgZnV6enkKK21zZ2lkICJnZXQgcGh5c2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAic3pla3Rvcm3DqXJldCBsZWvDqXLDqXNlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6OTQKK21zZ2lkICJnZXQgbWluaW11bSBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTAwCittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwNgorIywgZnV6enkKK21zZ2lkICJnZXQgYWxpZ25tZW50IG9mZnNldCIKK21zZ3N0ciAiaGliw6FzIGlub2RlIG3DqXJldCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExMgorIywgZnV6enkKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgIkNpbGluZGVyZW5rw6ludGkgZXh0cmEgc3pla3Rvcm9rIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTE4Cittc2dpZCAiZ2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAiYmxva2ttw6lyZXQgbGVrw6lyw6lzZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEyNQorbXNnaWQgInNldCBibG9ja3NpemUiCittc2dzdHIgImJsb2trbcOpcmV0IGJlw6FsbMOtdMOhc2EiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzEKK21zZ2lkICJnZXQgMzItYml0IHNlY3RvciBjb3VudCIKK21zZ3N0ciAiMzIgYml0ZXMgc3pla3Rvcm9rIHN6w6Ftw6FuYWsgbGVrw6lyw6lzZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICJtw6lyZXQgbGVrw6lyw6lzZSBiw6FqdG9rYmFuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTQ0Cittc2dpZCAic2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAiZWzFkXJlb2x2YXPDoXMgYmXDoWxsw610w6FzYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1MAorbXNnaWQgImdldCByZWFkYWhlYWQiCittc2dzdHIgImVsxZFyZW9sdmFzw6FzIGxla8OpcsOpc2UiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgImbDoWpscmVuZHN6ZXIgZWzFkXJlb2x2YXPDoXPDoW5hayBiZcOhbGzDrXTDoXNhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTYzCittc2dpZCAiZ2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJmw6FqbHJlbmRzemVyIGVsxZFyZW9sdmFzw6Fzw6FuYWsgbGVrw6lyw6lzZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgInB1ZmZlcmVrIMO8csOtdMOpc2UiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJwYXJ0w61jacOzcyB0w6FibGEgw7pqcmFvbHZhc8Ohc2EiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6XG4iCittc2dzdHIgIkhhc3puw6FsYXQ6XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyAtLXJlcG9ydCBbZGV2aWNlc11cbiIKK21zZ3N0ciAiICAlcyAtLXJlcG9ydCBbZXN6a8O2esO2a11cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIFstdnwtcV0gY29tbWFuZHMgZGV2aWNlc1xuIgorbXNnc3RyICIgICVzIFstdnwtcV0gcGFyYW5jc29rIGVzemvDtnrDtmtcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJBdmFpbGFibGUgY29tbWFuZHM6XG4iCittc2dzdHIgIkVsw6lyaGV0xZEgcGFyYW5jc29rOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3Cittc2dpZCAiZ2V0IHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9ycyIKK21zZ3N0ciAibcOpcmV0IGxla8OpcsOpc2UgNTEyIGLDoWp0b3Mgc3pla3Rvcm9rYmFuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIiVzOiBJc21lcmV0bGVuIHBhcmFuY3M6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgZWd5IHBhcmFtw6l0ZXJ0IGlnw6lueWVsXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZmFpbGVkLlxuIgorbXNnc3RyICIlcyBtZWdoacO6c3VsdC5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdWNjZWVkZWQuXG4iCittc2dzdHIgIiVzIHNpa2VyZXMuXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0MjcgZGlzay11dGlscy9ibG9ja2Rldi5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiJXM6ICVzIG5lbSBueWl0aGF0w7MgbWVnXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBpb2N0bCBoaWJhIGEga8O2dmV0a2V6xZFuOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU3RhcnRTZWMgICAgICAgICAgICBTaXplICAgRGV2aWNlXG4iCittc2dzdHIgIsONViAgICBFTyAgIFNNICAgIEJNICAgIEtlemTFkVN6ZWt0b3IgICAgICAgIE3DqXJldCAgIEVzemvDtnpcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6XG4iCittc2dzdHIgIkhhc3puw6FsYXQ6XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Tk9URTogZWx2dHVuZSBvbmx5IHdvcmtzIHdpdGggMi40IGtlcm5lbHNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInBhcnNlIGVycm9yXG4iCittc2dzdHIgInBvemljaW9uw6Fsw6FzaSBoaWJhIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibWlzc2luZyBibG9ja2RldmljZSwgdXNlIC1oIGZvciBoZWxwXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJlbHZ0dW5lIGlzIG9ubHkgdXNlZnVsIG9uIG9sZGVyIGtlcm5lbHM7XG4iCisiZm9yIDIuNiB1c2UgSU8gc2NoZWR1bGVyIHN5c2ZzIHR1bmFibGVzIGluc3RlYWQuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIkZvcm3DoXrDoXMgLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgImvDqXN6XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAiRWxsZW7FkXJ6w6lzIC4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MQorbXNnaWQgIlJlYWQ6ICIKK21zZ3N0ciAiT2x2YXPDoXM6ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAiIgorIlByb2Jsw6ltYSBhKHopICVkLiBjaWxpbmRlciBvbHZhc8Ohc2Frb3IsIGEgdsOhcnQgJWQgaGVseWV0dCAlZCBrZXLDvGx0ICIKKyJiZW9sdmFzw6FzcmFcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJiYWQgZGF0YSBpbiBjeWwgJWRcbiIKKyJDb250aW51aW5nIC4uLiAiCittc2dzdHIgIiIKKyJoaWLDoXMgYWRhdG9rIGEoeikgJWQuIGNpbGluZGVyYmVuXG4iCisiRm9seXRhdMOhcyAuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLW4gXSBkZXZpY2VcbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogJXMgWy1uXSBlc3prw7Z6XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMTggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4NAorIzogZGlzay11dGlscy9pc29zaXplLmM6MTgxIGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMTQgZGlzay11dGlscy9ta2ZzLmM6NTIKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4MTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTcyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ4NyBtaXNjLXV0aWxzL2RkYXRlLmM6MTc5IG1pc2MtdXRpbHMvcmVuYW1lLmM6NzkKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTQ3IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXMpXG4iCittc2dzdHIgIiVzICglcylcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIiVzOiBleiBuZW0gYmxva2tvcyBlc3prw7Z6XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDIKK21zZ2lkICJDb3VsZCBub3QgZGV0ZXJtaW5lIGN1cnJlbnQgZm9ybWF0IHR5cGUiCittc2dzdHIgIk5lbSBzaWtlcsO8bHQgbWVnaGF0w6Fyb3puaSBheiBha3R1w6FsaXMgZm9ybcOhesOhc2kgdMOtcHVzdCIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlcy1zaWRlZCwgJWQgdHJhY2tzLCAlZCBzZWMvdHJhY2suIFRvdGFsIGNhcGFjaXR5ICVkIGtCLlxuIgorbXNnc3RyICIlcyBvbGRhbCwgJWQgc8OhdiwgJWQgc3pla3Rvci9zw6F2LiBUZWxqZXMga2FwYWNpdMOhczogJWQga0IuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIkR1cGxhIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICJTemltcGxhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1odl0gWy14IGRpcl0gZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAteCBkaXIgICAgIGV4dHJhY3QgaW50byBkaXJcbiIKKyIgLXYgICAgICAgICBiZSBtb3JlIHZlcmJvc2VcbiIKKyIgZmlsZSAgICAgICBmaWxlIHRvIHRlc3RcbiIKK21zZ3N0ciAiIgorIkhhc3puw6FsYXQgICVzIFstaHZdIFsteCBrw7ZueXZ0w6FyXSBmw6FqbFxuIgorIiAtaCAgICAgICAgICAgICBleiBhIHPDumfDs3N6w7Z2ZWdcbiIKKyIgLXgga8O2bnl2dMOhciAgICBraWJvbnTDoXMgZWJiZSBhIGvDtm55dnTDoXJiYVxuIgorIiAtdiAgICAgICAgICAgICByw6lzemxldGVzIG3Ds2RcbiIKKyIgZsOhamwgICAgICAgICAgIHRlc3p0ZWxlbmTFkSBmw6FqbFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgIihLw7Z2ZXRrZXrFkSBmw6FqbDogJXMpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTY3IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm9wZW4gZmFpbGVkOiAlcyIKK21zZ3N0ciAiYXogb3BlbnB0eSBtZWdoacO6c3VsdFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTcyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIGZhaWxlZDogdW5hYmxlIHRvIGRldGVybWluZSBkZXZpY2Ugc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIlczogZXogbmVtIGJsb2trb3MgZXN6a8O2elxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4OSBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTk3CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjU4IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKEvDtnZldGtlesWRIGbDoWpsOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2CisjLCBmdXp6eQorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIkFkamEgbWVnIGEgZsOhamxyZW5kc3plciB0w61wdXPDoXQ6ICIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3VwZXJibG9jayBzaXplICglZCkgdG9vIHNtYWxsIgorbXNnc3RyICJhIGJsb2trb2sgc3rDoW1hIHTDumwga2ljc2kiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBhKHopICVzIHBhcnTDrWNpw7MgdMO6bG55w7psaWsgYSBsZW1lemVuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogb2xkIGNyYW1mcyBmb3JtYXRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjcyIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozMzkKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NzcgbG9naW4tdXRpbHMvY2hmbi5jOjUyOSBsb2dpbi11dGlscy9jaHNoLmM6NDM5CisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE0MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzIxCittc2dpZCAibWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAiYSBtYWxsb2MgbWVnaGnDunN1bHQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyOTcKKyMsIGZ1enp5Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICIsIGhpYmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjQKKyMsIGZ1enp5Cittc2dpZCAicm9vdCBpbm9kZSBpcyBub3QgZGlyZWN0b3J5IgorbXNnc3RyICJhIGd5w7Zrw6lyIGlub2RlIG5lbSBrw7ZueXZ0w6FyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByb290IG9mZnNldCAoJWx1KSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mzg3Cittc2dpZCAiZGF0YSBibG9jayB0b28gbGFyZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICJhIHbDoXJ0IMOpcnTDqWs6ICglZCwgJWQsICVkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDIzIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICB1bmNvbXByZXNzaW5nIGJsb2NrIGF0ICVsZCB0byAlbGQgKCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tYmxvY2sgKCVsZCkgYnl0ZXMiCittc2dzdHIgIlN6dXBlcmJsb2trOiAlemQgYsOhanRcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzMworIywgYy1mb3JtYXQKK21zZ2lkICJub24tc2l6ZSAoJWxkIHZzICVsZCkgYnl0ZXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKEvDtnZldGtlesWRIGbDoWpsOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxjaG93biBmYWlsZWQ6ICVzIgorbXNnc3RyICJhIGNzYXRvbMOhcyBtZWdoacO6c3VsdCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiYSBjc2F0b2zDoXMgbWVnaGnDunN1bHQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInV0aW1lIGZhaWxlZDogJXMiCittc2dzdHIgImhpYsOhcyBpZMWRa29ybMOhdMOpcnTDqWs6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0OTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgIi9kZXY6IGEgY2hkaXIoKSBtZWdoacO6c3VsdDogJW0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTEKK21zZ2lkICJmaWxlbmFtZSBsZW5ndGggaXMgemVybyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTE0Cittc2dpZCAiYmFkIGZpbGVuYW1lIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCisjLCBmdXp6eQorbXNnaWQgImJhZCBpbm9kZSBvZmZzZXQiCittc2dzdHIgImhpYsOhcyBpbm9kZSBtw6lyZXQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MzcKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTQwCittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBzaXplIGFuZCBub24temVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3MQorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzQKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2l6ZSBlcnJvciBpbiBzeW1saW5rOiAlcyIKK21zZ3N0ciAiaGliYSBhKHopICVzIMOtcsOhc2Frb3I6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzeW1saW5rIGZhaWxlZDogJXMiCittc2dzdHIgImF6IGZzeW5jIG1lZ2hpw7pzdWx0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWNpYWwgZmlsZSBoYXMgbm9uLXplcm8gb2Zmc2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjI1CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZm8gaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAic29ja2V0IGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvZ3VzIG1vZGU6ICVzICglbykiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAiYSBjc2F0b2zDoXMgbWVnaGnDunN1bHQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Njg1CisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY5MAorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGZpbGUgZGF0YSBvZmZzZXQiCittc2dzdHIgIsOpcnbDqW55dGVsZW4gYXpvbm9zw610w7M6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MTQKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlIG91dGJ1ZmZlciIKK21zZ3N0ciAiTmVtIGZvZ2xhbGhhdMOzIGxlIHB1ZmZlcnQuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MjcKKyMsIGZ1enp5Cittc2dpZCAiY29tcGlsZWQgd2l0aG91dCAteCBzdXBwb3J0IgorbXNnc3RyICJ1bW91bnQ6IGEgcHJvZ3JhbSBhIC1mIGthcGNzb2zDsyB0w6Ftb2dhdMOhc2EgbsOpbGvDvGwgbGV0dCBsZWZvcmTDrXR2YVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCittc2dzdHIgIkhhc3puw6FsYXQ6ICVzIFstbGFydnNtZl0gL2Rldi9uw6l2XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiJXMgY3NhdG9sdmEgdmFuLlx0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjUKK21zZ2lkICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiCittc2dzdHIgIlZhbMOzYmFuIGZvbHl0YXRuaSBha2FyamE/IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hlY2sgYWJvcnRlZC5cbiIKK21zZ3N0ciAiZWxsZW7FkXJ6w6lzIG1lZ3N6YWvDrXR2YS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzQ4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yIDwgRklSU1RaT05FIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIlrDs25hc3rDoW0gPCBFTFPFkFrDk05BIGEoeikg4oCeJXPigJ0gZsOhamxiYW4uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiWsOzbmFzesOhbSA+PSBaw5NOQSBhKHopIOKAniVz4oCdIGbDoWpsYmFuLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiQSBibG9rayBlbHTDoXZvbMOtdMOhc2EiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiT2x2YXPDoXNpIGhpYmE6IG5lbSBsZWhldCBhIGJsb2trcmEgcG96aWNpb27DoWxuaSBhKHopIOKAniVz4oCdIGbDoWpsYmFuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIk9sdmFzw6FzaSBoaWJhOiBoaWLDoXMgYmxva2sgYSh6KSDigJ4lc+KAnSBmw6FqbGJhblxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyJCZWxzxZEgaGliYToga8Otc8OpcmxldCBoaWLDoXMgYmxva2sgw61yw6Fzw6FyYVxuIgorIiBBeiDDrXLDoXNpIGvDqXLDqXMgZmlneWVsbWVuIGvDrXbDvGwgbWFyYWR0XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAiYSBwb3ppY2lvbsOhbMOhcyBtZWdoacO6c3VsdCBhIHdyaXRlX2Jsb2NrLWJhbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI4CisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRlIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIsONcsOhc2kgaGliYTogaGliw6FzIGJsb2trIGEoeikg4oCeJXPigJ0gZsOhamxiYW5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgImEgcG96aWNpb27DoWzDoXMgbWVnaGnDunN1bHQgYSB3cml0ZV9zdXBlcl9ibG9jay1iYW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgc3VwZXItYmxvY2siCittc2dzdHIgImEgc3p1cGVyYmxva2sgbmVtIMOtcmhhdMOzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTYKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJBeiBpbm9kZSB0w6lya8OpcCBuZW0gw61yaGF0w7MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1OAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiQSB6w7NuYXTDqXJrw6lwIG5lbSDDrXJoYXTDsyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTYwCittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiQXogaW5vZGUtb2sgbmVtIMOtcmhhdMOzayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTg3Cittc2dpZCAic2VlayBmYWlsZWQiCittc2dzdHIgImEgcG96aWNpb27DoWzDoXMgbWVnaGnDunN1bHQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5MSBkaXNrLXV0aWxzL21rZnMubWluaXguYzozOTkKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIGJ1ZmZlciBmb3Igc3VwZXJibG9jayIKK21zZ3N0ciAibmVtIGxlaGV0IHB1ZmZlcmVrZXQgbGVmb2dsYWxuaSBhIHTDqXJrw6lwZWtuZWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5NAorbXNnaWQgInVuYWJsZSB0byByZWFkIHN1cGVyIGJsb2NrIgorbXNnc3RyICJhIHN6dXBlcmJsb2trIG5lbSBvbHZhc2hhdMOzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJoaWLDoXMgYsWxdsO2cyBzesOhbSBhIHN6dXBlcmJsb2trYmFuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTQKK21zZ2lkICJPbmx5IDFrIGJsb2Nrcy96b25lcyBzdXBwb3J0ZWQiCittc2dzdHIgIkNzYWsgMWsgYmxva2svesOzbmEgdMOhbW9nYXRvdHQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJoaWLDoXMgc19pbWFwX2Jsb2NrcyBtZXrFkSBhIHN6dXBlcmJsb2trYmFuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiaGliw6FzIHNfem1hcF9ibG9ja3MgbWV6xZEgYSBzenVwZXJibG9ra2JhbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI1Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgbWFwIgorbXNnc3RyICJOZW0gZm9nbGFsaGF0w7MgbGUgcHVmZmVyIGF6IGlub2RlIHTDqXJrw6lwbmVrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjgKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAiTmVtIGZvZ2xhbGhhdMOzIGxlIHB1ZmZlciBhIHrDs25hdMOpcmvDqXBuZWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzMworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiTmVtIGZvZ2xhbGhhdMOzIGxlIHB1ZmZlciBheiBpbm9kZS1va25hayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjM2Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgY291bnQiCittc2dzdHIgIk5lbSBmb2dsYWxoYXTDsyBsZSBwdWZmZXIgYSBpbm9kZS1vayBzesOhbWzDoWzDs2rDoW5hayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjM5Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBjb3VudCIKK21zZ3N0ciAiTmVtIGZvZ2xhbGhhdMOzIGxlIHB1ZmZlciBhIHrDs25hIHN6w6FtbMOhbMOzasOhbmFrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDEKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZSBtYXAiCittc2dzdHIgIkF6IGlub2RlIHTDqXJrw6lwIG5lbSBvbHZhc2hhdMOzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDMKK21zZ2lkICJVbmFibGUgdG8gcmVhZCB6b25lIG1hcCIKK21zZ3N0ciAiQSB6w7NuYXTDqXJrw6lwIG5lbSBvbHZhc2hhdMOzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDUKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZXMiCittc2dzdHIgIkF6IGlub2RlLW9rIG5lbSBvbHZhc2hhdMOzayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICJGaWd5ZWxtZXp0ZXTDqXM6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkIGlub2RlXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGJsb2Nrc1xuIgorbXNnc3RyICIlbGQgYmxva2tcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU0IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdGRhdGF6b25lPSVsZCAoJWxkKVxuIgorbXNnc3RyICJFbHPFkSBhZGF0esOzbmE9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiWsOzbmFtw6lyZXQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIk1heC4gbcOpcmV0PSVsZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBzdGF0ZT0lZFxuIgorbXNnc3RyICJGw6FqbHJlbmRzemVyIMOhbGxhcG90YT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIm7DqXZob3Nzej0lZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzMgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1hcmtlZCB1bnVzZWQsIGJ1dCB1c2VkIGZvciBmaWxlICclcydcbiIKK21zZ3N0ciAiIgorIkEoeikgJWQgaW5vZGUgbmVtIGhhc3puw6FsdGvDqW50IHZhbiBtZWdqZWzDtmx2ZSwgZGUgYSh6KSDigJ4lc+KAnSBmw6FqbCBoYXN6bsOhbGphXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjgKK21zZ2lkICJNYXJrIGluIHVzZSIKK21zZ3N0ciAiTWVnamVsw7Zsw6lzIGhhc3puw6FsdGvDqW50IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIgorbXNnc3RyICJBKHopIOKAniVz4oCdIGbDoWpsIG3Ds2RqYTogJTA1b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIkZpZ3llbG1lenRldMOpczogYXogaW5vZGUgc3rDoW0gdMO6bCBuYWd5LlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAiYSBnecO2a8OpciBpbm9kZSBuZW0ga8O2bnl2dMOhciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzg4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMQorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayBoYXMgYmVlbiB1c2VkIGJlZm9yZS4gTm93IGluIGZpbGUgYCVzJy4iCittc2dzdHIgIkEgYmxva2sgbcOhciBoYXN6bsOhbGF0YmFuIHZvbHQuIE1vc3QgYSh6KSDigJ4lc+KAnSBmw6FqbGJhbiB2YW4uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3OTAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIzCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTUKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxMAorbXNnaWQgIkNsZWFyIgorbXNnc3RyICJUw7ZybMOpcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICJBKHopICVkIGJsb2trIGEoeikg4oCeJXPigJ0gZsOhamxiYW4gbmVtIGhhc3puw6FsdGvDqW50IHZhbiBtZWdqZWzDtmx2ZS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzUKK21zZ2lkICJDb3JyZWN0IgorbXNnc3RyICJKYXbDrXTDoXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiQSh6KSDigJ4lc+KAnSBrw7ZueXZ0w6FyIGhpYsOhcyBpbm9kZS1zesOhbW90IHRhcnRhbG1heiBhIOKAniUuKnPigJ0gZsOhamxob3ouIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBFbHTDoXZvbMOtdMOhcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTkxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorbXNnc3RyICIlczogaGliw6FzIGvDtm55dnTDoXI6IGEg4oCeLuKAnSBuZW0gYXogZWxzxZFcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCittc2dzdHIgIiVzOiBoaWLDoXMga8O2bnl2dMOhcjogYSDigJ4uLuKAnSBuZW0gYSBtw6Fzb2Rpa1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMTkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAiYmVsc8WRIGhpYmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogc2l6ZSA8IDMyIgorbXNnc3RyICIlczogaGliw6FzIGvDtm55dnTDoXIsIGEgbcOpcmV0IDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAiYSBwb3ppY2lvbsOhbMOhcyBtZWdoacO6c3VsdCBhIGJhZF96b25lLWJhbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICJBKHopICVkLiBpbm9kZSBtw7NkamEgbmVtIGtlcsO8bHQgdMO2cmzDqXNyZS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIiIKKyJBKHopICVkLiBpbm9kZSBuaW5jcyBoYXN6bsOhbGF0YmFuLCBhIGJpdHTDqXJrw6lwZW4gbWVnamVsw7ZsdmUgaGFzem7DoWx0a8OpbnQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiIgorIkEoeikgJWQuIGlub2RlIGhhc3puw6FsYXRiYW4sIGEgYml0dMOpcmvDqXBlbiBtZWdqZWzDtmx2ZSBoYXN6bsOhbGF0b24ga8OtdsO8bGlrw6ludC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNgorbXNnaWQgIlNldCIKK21zZ3N0ciAiQmXDoWxsw610w6FzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICIlZC4gaW5vZGUgKG3Ds2QgPSAlMDdvKSwgaV9ubGlua3M9JWQsIHN6w6FtbMOhbHQ9JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgIkEgaV9ubGlua3MgYmXDoWxsw610w6FzYSBhIHN6w6FtcmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICJBKHopICVkLiB6w7NuYSBoYXN6bsOhbHRrw6ludCB2YW4gbWVnamVsw7ZsdmUsIGRlIGVneSBmw6FqbCBzZW0gaGFzem7DoWxqYS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNgorbXNnaWQgIlVubWFyayIKK21zZ3N0ciAiTWVnamVsw7Zsw6lzIHTDtnJsw6lzZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICIlZC4gesOzbmE6IGhhc3puw6FsYXRiYW4sIHN6w6FtbMOhbHQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiJWQuIHrDs25hOiBuaW5jcyBoYXN6bsOhbGF0YmFuLCBzesOhbWzDoWx0PSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODkgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc3CisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzkKK21zZ2lkICJiYWQgaW5vZGUgc2l6ZSIKK21zZ3N0ciAiaGliw6FzIGlub2RlIG3DqXJldCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI5MQorbXNnaWQgImJhZCB2MiBpbm9kZSBzaXplIgorbXNnc3RyICJoaWLDoXMgdjIgaW5vZGUgbcOpcmV0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzE3Cittc2dpZCAibmVlZCB0ZXJtaW5hbCBmb3IgaW50ZXJhY3RpdmUgcmVwYWlycyIKK21zZ3N0ciAiYXogaW50ZXJha3TDrXYgaGVseXJlw6FsbMOtdMOhc2hveiB0ZXJtaW7DoWwgc3rDvGtzw6lnZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJyVzJzogJXMiCittc2dzdHIgImEoeikg4oCeJXPigJ0gbmVtIG55aXRoYXTDsyBtZWc6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiQSh6KSAlcyB0aXN6dGEsIG5lbSBrZXLDvGwgZWxsZW7FkXJ6w6lzcmUuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9yY2luZyBmaWxlc3lzdGVtIGNoZWNrIG9uICVzLlxuIgorbXNnc3RyICJGw6FqbHJlbmRzemVyLWVsbGVuxZFyesOpcyBrw6lueXN6ZXLDrXTDqXNlIGEga8O2dmV0a2V6xZFuOiDigJ4lc+KAnS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIG9uICVzIGlzIGRpcnR5LCBuZWVkcyBjaGVja2luZy5cbiIKK21zZ3N0ciAiQSh6KSAlcyBmw6FqbHJlbmRzemVyZSBuZW0gdGlzenRhLCBlbGxlbsWRcml6bmkga2VsbC5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZsZCBpbm9kZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmxkIGlub2RlIGhhc3puw6FsYXRiYW4gKCVsZCUlKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiU2bGQgem9uZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiU2bGQgesOzbmEgaGFzem7DoWxhdGJhbiAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmQgc3phYsOhbHlvcyBmw6FqbFxuIgorIiU2ZCBrw7ZueXZ0w6FyXG4iCisiJTZkIGthcmFrdGVyZXNlc3prw7Z6LWbDoWpsXG4iCisiJTZkIGJsb2trZXN6a8O2embDoWpsXG4iCisiJTZkIGxpbmtcbiIKKyIlNmQgc3ppbWJvbGlrdXMgbGlua1xuIgorIi0tLS0tLVxuIgorIiU2ZCBmw6FqbFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiRklMRSBTWVNURU0gSEFTIEJFRU4gQ0hBTkdFRFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJBIEbDgUpMUkVORFNaRVIgTUVHVsOBTFRPWk9UVCBcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIG9wZW46ICVzXG4iCittc2dzdHIgIiVzOiBhIGvDtnZldGtlesWRIG1lZ255aXTDoXNhIG1lZ2hpw7pzdWx0OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNlZWsgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IHBvemljaW9uw6Fsw6FzaSBoaWJhIGEga8O2dmV0a2V6xZFuOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IG9sdmFzw6FzaSBoaWJhIGEga8O2dmV0a2V6xZFuOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9yIGNvdW50OiAlZCwgc2VjdG9yIHNpemU6ICVkXG4iCittc2dzdHIgInN6ZWt0b3JzesOhbTogJWQsIHN6ZWt0b3Jtw6lyZXQ6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiBrYXBjc29sw7NmZWxkb2xnb3rDoXNpIGhpYmFcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyBbLXhdIFstZCA8c3rDoW0+XSBpc285NjYwLWvDqXBcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy12XSBbLU4gbnItb2YtaW5vZGVzXSBbLVYgdm9sdW1lLW5hbWVdXG4iCisiICAgICAgIFstRiBmc25hbWVdIGRldmljZSBbYmxvY2stY291bnRdXG4iCittc2dzdHIgIiIKKyJIYXN6bsOhbGF0OiAlcyBbLXZdIFstTiBpbm9kZS1vayBzesOhbWFdIFstViBrw7Z0ZXRuw6l2XVxuIgorIiAgICAgICBbLUYgZsOhamxyZW5kc3plcm7DqXZdIGVzemvDtnogW2Jsb2trc3rDoW1dXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAiYSBrw7Z0ZXRuw6l2IHTDumwgaG9zc3rDuiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzNworbXNnaWQgImZzbmFtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICJhIGbDoWpscmVuZHN6ZXJuw6l2IHTDumwgaG9zc3rDuiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBkZXZpY2UgJXMiCittc2dzdHIgImEoeikg4oCeJXPigJ0gZXN6a8O2eiBuZW0gw6lyaGV0xZEgZWwiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgImEoeikgJXMgbmVtIGVneSBzcGVjacOhbGlzIGJsb2trb3MgZXN6a8O2eiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE3MSBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMiCittc2dzdHIgImEoeikgJXMgbmVtIG55aXRoYXTDsyBtZWciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBzaXplIG9mICVzIgorbXNnc3RyICJhKHopIOKAniVz4oCdIG3DqXJldGUgbmVtIGvDqXJoZXTFkSBsZSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgImEgYmxva2twYXJhbcOpdGVyIHTDumwgbmFneSwgYSBtYXhpbXVtICVsdSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIwMgorbXNnaWQgInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiCittc2dzdHIgInTDumwgc29rIGlub2RlLCBhIG1heGltdW0gNTEyIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlLCBuZWVkIGF0IGxlYXN0ICVsbHUgYmxvY2tzIgorbXNnc3RyICJuaW5jcyBlbMOpZyBoZWx5LCBsZWdhbMOhYmIgJWx1IGJsb2trIHN6w7xrc8OpZ2VzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjIzIGZkaXNrL2ZkaXNrLmM6MjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2U6ICVzXG4iCittc2dzdHIgIkVzemvDtno6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVm9sdW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiS8O2dGV0OiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNQorIywgYy1mb3JtYXQKK21zZ2lkICJGU25hbWU6IDwlLTZzPlxuIgorbXNnc3RyICJGw6FqbHJlbmRzemVybsOpdjogPCUtNnM+XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tTaXplOiAlZFxuIgorbXNnc3RyICJCbG9ra23DqXJldDogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJJbm9kZS1vazogJWQgKGJsb2trb25rw6ludClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gJWxsZCBibG9ja3MpXG4iCittc2dzdHIgIklub2RlLW9rOiAlZCAoJWxkIGJsb2trYmFuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJCbG9ja3M6ICVsbGRcbiIKK21zZ3N0ciAiQmxva2tvazogJWxkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgZW5kOiAlZCwgRGF0YSBlbmQ6ICVkXG4iCittc2dzdHIgIklub2RlLW9rIHbDqWdlOiAlZCwgYWRhdG9rIHbDqWdlOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM5Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzdXBlcmJsb2NrIgorbXNnc3RyICJoaWJhIGEgc3p1cGVyYmxva2sgw61yw6FzYSBrw7Z6YmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjU5Cittc2dpZCAiZXJyb3Igd3JpdGluZyByb290IGlub2RlIgorbXNnc3RyICJoaWJhIGEgZ3nDtmvDqXIgaW5vZGUgw61yw6FzYSBrw7Z6YmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBpbm9kZSIKK21zZ3N0ciAiaGliYSBheiBpbm9kZSDDrXLDoXNha29yIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAicG96aWNpb27DoWzDoXNpIGhpYmEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKK21zZ2lkICJlcnJvciB3cml0aW5nIC4gZW50cnkiCittc2dzdHIgImhpYmEgYSAuIGJlamVneXrDqXMgw61yw6FzYWtvciIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3NworbXNnaWQgImVycm9yIHdyaXRpbmcgLi4gZW50cnkiCittc2dzdHIgImhpYmEgYSAuLiBiZWplZ3l6w6lzIMOtcsOhc2Frb3IiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2xvc2luZyAlcyIKK21zZ3N0ciAiaGliYSBhKHopIOKAniVz4oCdIGxlesOhcsOhc2tvciIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICIiCisiSGFzem7DoWxhdDogbWtmcyBbLVZdIFstdCBmw6FqbHJlbmRzemVydMOtcHVzXSBbZsOhamxyZW5kc3plci1iZcOhbGzDrXTDoXNva10gIgorImVzemvDtnogW23DqXJldF1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6ODggZGlzay11dGlscy9ta2ZzLmM6OTYgZmRpc2svY2ZkaXNrLmM6MzUzCisjOiBnZXRvcHQvZ2V0b3B0LmM6ODYgZ2V0b3B0L2dldG9wdC5jOjk2IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE91dCBvZiBtZW1vcnkhXG4iCittc2dzdHIgIiVzOiBBIG1lbcOzcmlhIGVsZm9neW90dCFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZnMgKCVzKVxuIgorbXNnc3RyICJta2ZzICglcylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjEyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisiSGFzem7DoWxhdDogJXMgWy1oXSBbLXZdIFstYiBibG9ra23DqXJldF0gWy1lIGtpYWTDoXNdIFstaSBmw6FqbF0gWy1uIG7DqXZdICIKKyJrw7ZueXZ0w6FybsOpdiBraW1lbmV0aWbDoWpsXG4iCisiIC1oICAgICAgICAgZXogYSBzw7pnw7NzesO2dmVnXG4iCisiIC12ICAgICAgICAgcsOpc3psZXRlcyBtw7NkXG4iCisiIC1FICAgICAgICAgYXogw7Zzc3plcyBmaWd5ZWxtZXp0ZXTDqXMgaGliYSAobmVtIG51bGxhIHZpc3N6YXTDqXLDqXNpIMOpcnTDqWtrZWwpXG4iCisiIC1iIGJsb2trbcOpcmV0ICBlemVuIGJsb2trbcOpcmV0IGhhc3puw6FsYXRhLCBtZWcga2VsbCBlZ3llem5pZSBhIGxhcG3DqXJldHRlbFxuIgorIiAtZSBzemVya2VzenTDqXMgYmXDoWxsw610amEgYSBraWFkw6Fzc3rDoW1vdCAoYSBmc2lkIHLDqXN6ZSlcbiIKKyIgLWkgZsOhamwgICAgZWd5IGvDqXBmw6FqbCBiZXN6w7pyw6FzYSBhIGbDoWpscmVuZHN6ZXJiZSAoPj0gMi40LjAga2VybmVsICIKKyJzesO8a3PDqWdlcylcbiIKKyIgLW4gbsOpdiAgICAgYSBjcmFtZnMgZsOhamxyZW5kc3plciBuZXbDqW5layBiZcOhbGzDrXTDoXNhXG4iCisiIC1wICAgICAgICAgJWQgYsOhanRueWkga2l0w7ZsdMOpcyBhIHJlbmRzemVyaW5kw610w7Mga8OzZG5ha1xuIgorIiAtcyAgICAgICAgIGEga8O2bnl2dMOhcmJlamVneXrDqXNlayByZW5kZXrDqXNlIChlbGF2dWx0IGthcGNzb2zDsywgw6lydsOpbnl0ZWxlbilcbiIKKyIgLXogICAgICAgICBseXVrYWsgbMOpdHJlaG96w6FzYSAoPj0gMi4zLjM5IGtlcm5lbCBzesO8a3PDqWdlcylcbiIKKyIga8O2bnl2dMOhcm7DqXYgIGEgdMO2bcO2csOtdGVuZMWRIGbDoWpscmVuZHN6ZXIgZ3nDtmvDqXJrw7ZueXZ0w6FyYVxuIgorIiBraW1lbmV0aWbDoWpsICBhIGtpbWVuZXRpIGbDoWpsXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIk5hZ3lvbiAoJXp1IGLDoWp0KSBob3NzesO6IGbDoWpsbsOpdjog4oCeJXPigJ0uXG4iCisiTsO2dmVsamUgYSBNQVhfSU5QVVRfTkFNRUxFTiDDqXJ0w6lrZXQgYXogbWtjcmFtZnMuYy1iZW4gw6lzIGZvcmTDrXRzYSDDumpyYS4gIgorIktpbMOpcMOpcy5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICJhIGbDoWpscmVuZHN6ZXIgdMO6bCBuYWd5LiBLaWzDqXDDqXMuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQUlFRUU6IGJsb2NrIFwiY29tcHJlc3NlZFwiIHRvID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorbXNnc3RyICJISUJBOiBhIGJsb2trIGEgYmxva2tob3NzeiAoJWxkKSB0w7ZiYiBtaW50IGvDqXRzemVyZXPDqXJlIOKAnnTDtm3DtnLDrXR2ZeKAnVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2xkIGLDoWp0KVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ3Vlc3RpbWF0ZSBvZiByZXF1aXJlZCBzaXplICh1cHBlciBib3VuZCkgaXMgJWxsZE1CLCBidXQgbWF4aW11bSAiCisiaW1hZ2Ugc2l6ZSBpcyAldU1CLiAgV2UgbWlnaHQgZGllIHByZW1hdHVyZWx5LlxuIgorbXNnc3RyICIiCisiZmlneWVsbWV6dGV0w6lzOiBhIHN6w7xrc8OpZ2VzIGJlY3PDvGx0IG3DqXJldCAoZmVsc8WRIGhhdMOhcmEpICVsbGQgTUIsIGRlIGEgIgorIm1heGltw6FsaXMga8OpcGbDoWpsbcOpcmV0ICV1IE1CLiBBIGZvbHlhbWF0IGlkxZEgZWzFkXR0IGJlZmVqZXrFkWRoZXQuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4ODAKK21zZ2lkICJST00gaW1hZ2UgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5jbHVkaW5nOiAlc1xuIgorbXNnc3RyICJCZWxlw6lydHZlOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpcmVjdG9yeSBkYXRhOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiS8O2bnl2dMOhcmFkYXRvazogJXpkIGLDoWp0XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICLDlnNzemVzZW46ICV6ZCBraWxvYsOhanRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgYy1mb3JtYXQKK21zZ2lkICJTdXBlciBibG9jazogJXpkIGJ5dGVzXG4iCittc2dzdHIgIlN6dXBlcmJsb2trOiAlemQgYsOhanRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDUkM6ICV4XG4iCittc2dzdHIgIkNSQzogJXhcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyNQorIywgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlIGFsbG9jYXRlZCBmb3IgUk9NIGltYWdlICglbGxkIGFsbG9jYXRlZCwgJXp1IHVzZWQpXG4iCittc2dzdHIgIiIKKyJuaW5jcyBlbMOpZyBoZWx5IGxlZm9nbGFsdmEgYSBST00ga8OpcGbDoWpsbmFrICglbGxkIGxlZm9nbGFsdmEsICV6dSAiCisiaGFzem7DoWxhdGJhbilcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzMworbXNnaWQgIlJPTSBpbWFnZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPTSBpbWFnZSB3cml0ZSBmYWlsZWQgKCV6ZCAlemQpXG4iCittc2dzdHIgIkEgUk9NIGvDqXBmw6FqbCDDrXLDoXNhIG1lZ2hpw7pzdWx0ICglemQgJXpkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICJmaWd5ZWxtZXp0ZXTDqXM6IGEgZsOhamxuZXZlayAyNTUgYsOhanQgaG9zc3pyYSBjc29ua8OtdHZhLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZXJyb3JzLlxuIgorbXNnc3RyICJmaWd5ZWxtZXp0ZXTDqXM6IGhpYsOhayB0w7ZydMOpbnRlaywgZW1pYXR0IGbDoWpsb2sga2Vyw7xsdGVrIGtpaGFnecOhc3JhLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTUyCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgc2l6ZXMgdHJ1bmNhdGVkIHRvICVsdU1CIChtaW51cyAxIGJ5dGUpLlxuIgorbXNnc3RyICJmaWd5ZWxtZXp0ZXTDqXM6IGEgZsOhamxtw6lyZXRlayAlbHUgTUItcmEgKG3DrW51c3ogMSBiw6FqdCkgY3NvbmvDrXR2YS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogdWlkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisiZmlneWVsbWV6dGV0w6lzOiBhIGZlbGhhc3puw6Fsw7NpIGF6b25vc8OtdMOzayAldSBiaXRyZSBjc29ua8OtdHZhLiAoRXogYml6dG9uc8OhZ2kgIgorInByb2Jsw6ltYSBsZWhldC4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorImZpZ3llbG1lenRldMOpczogYSBjc29wb3J0YXpvbm9zw610w7NrICV1IGJpdHJlIGNzb25rw610dmEuKEV6IGJpenRvbnPDoWdpICIKKyJwcm9ibMOpbWEgbGVoZXQuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorIkZJR1lFTE1FWlRFVMOJUzogYXogZXN6a8O2enN6w6Ftb2sgJXUgYml0cmUgY3NvbmvDrXR2YS4gRXogbWFqZG5lbSBiaXp0b3NhbiBhenRcbiIKKyJqZWxlbnRpLCBob2d5IGJpem9ueW9zIGVzemvDtnpmw6FqbG9rIGhpYsOhc2FrIGxlc3puZWsuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIkhhc3puw6FsYXQ6ICVzIFstYyB8IC1sIGbDoWpsbsOpdl0gWy1uWFhdIFstaVhYXSAvZGV2L27DqXYgW2Jsb2trb2tdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiYSh6KSAlcyBjc2F0b2x2YSB2YW4sIGl0dCBuZW0gbGVzeiBsw6l0cmVob3p2YSBmw6FqbHJlbmRzemVyISIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTg4Cittc2dpZCAic2VlayB0byBib290IGJsb2NrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgImEgcmVuZHN6ZXJpbmTDrXTDsyBibG9ra3JhIHBvemljaW9uw6Fsw6FzIG1lZ2hpw7pzdWx0IGEgd3JpdGVfdGFibGVzLWJlbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkwCittc2dpZCAidW5hYmxlIHRvIGNsZWFyIGJvb3Qgc2VjdG9yIgorbXNnc3RyICJhIHJlbmRzemVyaW5kw610w7Mgc3pla3RvcnQgbmVtIGxlaGV0IHTDtnLDtmxuaSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkyCittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJhIHBvemljaW9uw6Fsw6FzIHNpa2VydGVsZW4gYSB3cml0ZV90YWJsZXMtYmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTYKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJheiBpbm9kZSB0w6lya8OpcCBuZW0gw61yaGF0w7MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiYSB6w7NuYXTDqXJrw6lwIG5lbSDDrXJoYXTDsyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjAwCittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiYXogaW5vZGUtb2sgbmVtIMOtcmhhdMOzayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA5Cittc2dpZCAid3JpdGUgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJheiDDrXLDoXMgbWVnaGnDunN1bHQgYSB3cml0ZV9ibG9jay1iYW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIxNyBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyOTEKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM0MAorbXNnaWQgInRvbyBtYW55IGJhZCBibG9ja3MiCittc2dzdHIgInTDumwgc29rIGhpYsOhcyBibG9rayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjI1Cittc2dpZCAibm90IGVub3VnaCBnb29kIGJsb2NrcyIKK21zZ3N0ciAibmluY3MgZWzDqWcgasOzIGJsb2trIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDAKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVycyBmb3IgbWFwcyIKK21zZ3N0ciAibmVtIGxlaGV0IHB1ZmZlcmVrZXQgbGVmb2dsYWxuaSBhIHTDqXJrw6lwZWtuZWsiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0OQorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAibmVtIGxlaGV0IHB1ZmZlcmVrZXQgbGVmb2dsYWxuaSBheiBpbm9kZS1va25hayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJNYXhzaXplPSVsZFxuIgorIlxuIgorbXNnc3RyICIiCisiTWF4LiBtw6lyZXQ9JWxkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ2OQorbXNnaWQgInNlZWsgZmFpbGVkIGR1cmluZyB0ZXN0aW5nIG9mIGJsb2NrcyIKK21zZ3N0ciAiYSBwb3ppY2lvbsOhbMOhcyBtZWdoacO6c3VsdCBhIGJsb2trb2sgdGVzenRlbMOpc2Uga8O2emJlbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICJTem9rYXRsYW4gw6lydMOpa2VrIGEgZG9fY2hlY2stYmVuOiBleiB2YWzDs3N6w61uxbFsZWcgaGliw6F0IGplbGV6XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUwOCBkaXNrLXV0aWxzL21rc3dhcC5jOjMxNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIKK21zZ3N0ciAiYSBwb3ppY2lvbsOhbMOhcyBtZWdoacO6c3VsdCBhIGNoZWNrX2Jsb2Nrcy1iYW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUxNworbXNnaWQgImJhZCBibG9ja3MgYmVmb3JlIGRhdGEtYXJlYTogY2Fubm90IG1ha2UgZnMiCittc2dzdHIgIiIKKyJoaWLDoXMgYmxva2tvayBheiBhZGF0dGVyw7xsZXQgZWzFkXR0OiBuZW0gbGVoZXQgbMOpdHJlaG96bmkgYSBmw6FqbHJlbmRzemVydCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTIzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBiYWQgYmxvY2tzXG4iCittc2dzdHIgIiVkIGhpYsOhcyBibG9ra1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAiZWd5IGhpYsOhcyBibG9ra1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzUKK21zZ2lkICJjYW4ndCBvcGVuIGZpbGUgb2YgYmFkIGJsb2NrcyIKK21zZ3N0ciAibmVtIG55aXRoYXTDsyBtZWcgYSBoaWLDoXMgYmxva2tvayBmw6FqbGphIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkYmxvY2sgbnVtYmVyIGlucHV0IGVycm9yIG9uIGxpbmUgJWRcbiIKK21zZ3N0ciAiYmVtZW5ldGkgaGliYSBhIGhpYsOhcyBibG9ra29rIHN6w6Ftw6Fuw6FsIGEoeikgJWQuIHNvcmJhblxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDAKK21zZ2lkICJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIKK21zZ3N0ciAiaGliw6FzIGJsb2trb2sgZsOhamxqYSBuZW0gb2x2YXNoYXTDsyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgInN0cnRvbCBlcnJvcjogbnVtYmVyIG9mIGJsb2NrcyBub3Qgc3BlY2lmaWVkIgorbXNnc3RyICJzdHJ0b2wgaGliYTogYSBibG9ra29rIHN6w6FtYSBuaW5jcyBtZWdoYXTDoXJvenZhIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgJXMiCittc2dzdHIgIiVzIG5lbSDDqXJoZXTFkSBlbCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICIlcyBuZW0gbnlpdGhhdMOzIG1lZyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2VjdG9yIHNpemUgZm9yICVzIgorbXNnc3RyICJhKHopICVzIHN6ZWt0b3Jtw6lyZXRlIG5lbSDDoWxsYXDDrXRoYXTDsyBtZWciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICJibG9jayBzaXplIHNtYWxsZXIgdGhhbiBwaHlzaWNhbCBzZWN0b3Igc2l6ZSBvZiAlcyIKK21zZ3N0ciAiYSBibG9ra23DqXJldCBraXNlYmIsIG1pbnQgYSBmaXppa2FpIHN6ZWt0b3Jtw6lyZXQgKCVzKSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2l6ZSBvZiAlcyIKK21zZ3N0ciAiYSh6KSAlcyBtw6lyZXRlIG5lbSDDoWxsYXDDrXRoYXTDsyBtZWciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJ3aWxsIG5vdCB0cnkgdG8gbWFrZSBmaWxlc3lzdGVtIG9uICclcyciCittc2dzdHIgImEoeikg4oCeJXPigJ0gZXN6a8O2esO2biBuZW0gdMO2cnTDqW5payBrw61zw6lybGV0IGEgZsOhamxyZW5kc3plciBsw6l0cmVob3rDoXPDoXJhIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjUKK21zZ2lkICJudW1iZXIgb2YgYmxvY2tzIHRvbyBzbWFsbCIKK21zZ3N0ciAiYSBibG9ra29rIHN6w6FtYSB0w7psIGtpY3NpIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkXG4iCittc2dzdHIgIkhpYsOhcyBmZWxoYXN6bsOhbMOzIMOhbHRhbCBtZWdhZG90dCBsYXBtw6lyZXQ6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZCwgaW5zdGVhZCBvZiB0aGUgc3lzdGVtIHZhbHVlICVkXG4iCittc2dzdHIgIiIKKyJBIGZlbGhhc3puw6Fsw7Mgw6FsdGFsIG1lZ2Fkb3R0ICVkIGxhcG3DqXJldCBoYXN6bsOhbGF0YSBhIHJlbmRzemVyICVkIMOpcnTDqWtlICIKKyJoZWx5ZXR0XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBzd2FwIGhlYWRlciBzaXplLCBubyBsYWJlbCB3cml0dGVuLlxuIgorbXNnc3RyICJBIHN3YXAgZmVqbMOpY23DqXJldGUgaGliw6FzLCBuZW0ga2Vyw7xsdCBracOtcsOhc3JhIGPDrW1rZS5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFiZWwgd2FzIHRydW5jYXRlZC5cbiIKK21zZ3N0ciAiQSBjw61ta2UgY3NvbmvDrXR2YS5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gbGFiZWwsICIKK21zZ3N0ciAibmluY3MgY8OtbWtlLCAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHV1aWRcbiIKK21zZ3N0ciAibmluY3MgdXVpZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI4MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1wUEFHRVNaXSBbLUwgbGFiZWxdIFstVSBVVUlEXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiIgorIkhhc3puw6FsYXQ6ICVzIFstY10gWy12MHwtdjFdIFstcExBUE3DiVJFVF0gWy1MIGPDrW1rZV0gWy1VIFVVSURdIC9kZXYvbsOpdiAiCisiW2Jsb2trb2tdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICJ0w7psIHNvayBoaWLDoXMgbGFwIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiTmluY3MgZWzDqWcgbWVtw7NyaWEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICJlZ3kgaGliw6FzIGxhcFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVsdSBoaWLDoXMgbGFwXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDAyIGRpc2stdXRpbHMvbWtzd2FwLmM6NDM5IGRpc2stdXRpbHMvbWtzd2FwLmM6NjU5Cittc2dpZCAidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIKK21zZ3N0ciAibmVtIGxlaGV0IHZpc3N6YcOhbGzDrXRhbmkgYSBsYXBvesOzdGVyw7xsZXQtZXN6a8O2enQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBuZXcgbGliYmxraWQgcHJvYmUiCittc2dzdHIgIm5lbSBsZWhldCBwdWZmZXJla2V0IGxlZm9nbGFsbmkgYXogaW5vZGUtb2tuYWsiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDE1Cittc2dpZCAidW5hYmxlIHRvIGFzc2lnbiBkZXZpY2UgdG8gbGlibGtpZCBwcm9iZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0MworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gZXJhc2UgYm9vdGJpdHMgc2VjdG9ycyIKK21zZ3N0ciAiYSByZW5kc3plcmluZMOtdMOzIHN6ZWt0b3J0IG5lbSBsZWhldCB0w7Zyw7ZsbmkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogd2FybmluZzogZG9uJ3QgZXJhc2UgYm9vdGJpdHMgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgICglcyBwYXJ0aXRpb24gdGFibGUgZGV0ZWN0ZWQpLiAiCittc2dzdHIgIiAgIHAgICBCU0QgcGFydMOtY2nDs3MgdMOhYmxhIGtpw61yw6FzYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgb24gd2hvbGUgZGlzay4gIgorbXNnc3RyICIgICBzICAgYSB0ZWxqZXMgbGVtZXpjw61ta2UgbXV0YXTDoXNhIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoY29tcGlsZWQgd2l0aG91dCBsaWJibGtpZCkuICIKK21zZ3N0ciAiICAgcyAgIGEgdGVsamVzIGxlbWV6Y8OtbWtlIG11dGF0w6FzYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTEkczogd2FybmluZzogaWdub3JlIC1VIChVVUlEcyBhcmUgdW5zdXBwb3J0ZWQgYnkgJTEkcylcbiIKK21zZ3N0ciAiIgorIiUxJHM6IGZpZ3llbG1lenRldMOpczogYSAtVSBmaWd5ZWxtZW4ga8OtdsO8bCBtYXJhZCAoYSh6KSAlMSRzIG5lbSB0w6Ftb2dhdGphIGF6ICIKKyJVVUlELWtldClcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkb2VzIG5vdCBzdXBwb3J0IHN3YXBzcGFjZSB2ZXJzaW9uICVkLlxuIgorbXNnc3RyICIlczogaGliYTogYSh6KSAlZCB2ZXJ6acOzc3rDoW0gaXNtZXJldGxlblxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0OAorbXNnaWQgImVycm9yOiBVVUlEIHBhcnNpbmcgZmFpbGVkIgorbXNnc3RyICJoaWJhOiBheiBVVUlEIGZlbGRvbGdvesOhcyBtZWdoacO6c3VsdCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBOb3doZXJlIHRvIHNldCB1cCBzd2FwIG9uP1xuIgorbXNnc3RyICIlcyBoaWJhOiBOZW0gw6FsbMOtdGphIGJlIHNlaG92w6EgYSBsYXBvesOzdGVyw7xsZXRldD9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc2l6ZSAlbGx1IEtpQiBpcyBsYXJnZXIgdGhhbiBkZXZpY2Ugc2l6ZSAlbGx1IEtpQlxuIgorbXNnc3RyICIlczogaGliYTogYSh6KSAlbHUgS2lCIG3DqXJldCBuYWd5b2JiIG1pbnQgYXogZXN6a8O2eiAlbHUgS2lCIG3DqXJldGVcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzd2FwIGFyZWEgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJWxkIEtpQlxuIgorbXNnc3RyICIlcyBoaWJhOiBhIGxhcG96w7N0ZXLDvGxldG5layBsZWdhbMOhYmIgJWxkIEtpQiBtw6lyZXTFsW5layBrZWxsIGxlbm5pZVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBmaWd5ZWxtZXp0ZXTDqXM6IGEgbGFwb3rDs3RlcsO8bGV0ICVsZCBLaUIgbcOpcmV0cmUgbGVzeiBjc29ua8OtdHZhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogd2lsbCBub3QgdHJ5IHRvIG1ha2Ugc3dhcGRldmljZSBvbiAnJXMnXG4iCittc2dzdHIgIiIKKyIlczogaGliYTogYSBsYXBvesOzZXN6a8O2eiBsw6l0cmVob3rDoXPDoXJhIG5lbSB0w7ZydMOpbmlrIGvDrXPDqXJsZXQgYSh6KSDigJ4lc+KAnSAiCisiZXN6a8O2esO2blxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6ICVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2Ugc3dhcHNwYWNlLlxuIgorbXNnc3RyICIiCisiJXM6IGhpYmE6IGEoeikgJXMgY3NhdG9sdmEgdmFuLCBhIGxhcG96w7N0ZXLDvGxldCBuZW0ga2Vyw7xsIGzDqXRyZWhvesOhc3JhLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiQSBsYXBvesOzdGVyw7xsZXQgbmVtIMOhbGzDrXRoYXTDsyBiZTogb2x2YXNoYXRhdGxhbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIiVkIHZlcnppw7Nqw7ogbGFwb3rDs3RlcsO8bGV0IGJlw6FsbMOtdMOhc2EsIG3DqXJldGU6ICVsbHUga2lCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiJXM6ICVzOiBuZW0gbGVoZXQgw61ybmkgYXogYWzDocOtcsOhc2xhcHJhOiAlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NzMKK21zZ2lkICJmc3luYyBmYWlsZWQiCittc2dzdHIgImF6IGZzeW5jIG1lZ2hpw7pzdWx0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIlczogJXM6IGEgc2VsaW51eCBmw6FqbGPDrW1rZSBuZW0ga8OpcmhldMWRIGxlOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MAorbXNnaWQgInVuYWJsZSB0byBtYXRjaHBhdGhjb24oKSIKK21zZ3N0ciAibmVtIGhhanRoYXTDsyB2w6lncmUgYSBtYXRjaHBhdGhjb24oKSBow612w6FzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MworbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgbmV3IHNlbGludXggY29udGV4dCIKK21zZ3N0ciAibmVtIGhvemhhdMOzIGzDqXRyZSDDumogc2VsaW51eCBrb250ZXh0dXMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njk1Cittc2dpZCAiY291bGRuJ3QgY29tcHV0ZSBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIm5lbSBzesOhbcOtdGhhdMOzIGtpIGEgc2VsaW51eCBrb250ZXh0dXMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NzAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiJXM6ICVzIG5lbSBjw61ta8OpemhldMWRIMOhdCAoZXJyZTogJXMpOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiICAlcyAiCittc2dzdHIgIkhhc3puw6FsYXQ6XG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgJyVzJyBpcyBjb250cm9sIHJhdyBkZXYgKHVzZSByYXc8Tj4gd2hlcmUgPE4+IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTQ1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIGJsb2NrIGRldmljZSAnJXMnICglcylcbiIKK21zZ3N0ciAiTmVtIGxlaGV0IHrDoXJvbG5pIGEoeikgJXMgesOhcm9sw6FzaSBmw6FqbHQ6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSBibG9jayBkZXZcbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBhKHopICVzIG5lbSBibG9ra2VzemvDtnpcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIG1hc3RlciByYXcgZGV2aWNlICciCittc2dzdHIgImEoeikg4oCeJXPigJ0gZXN6a8O2eiBuZW0gw6lyaGV0xZEgZWwiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgImEoeikg4oCeJXPigJ0gZXN6a8O2eiBuZW0gw6lyaGV0xZEgZWwiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIvZGV2LyVzOiBuZW0gZWd5IGthcmFrdGVyZXN6a8O2eiIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIHJhdyBkZXZcbiIKK21zZ3N0ciAiJXMgbmVtIHNvcm9zIHZvbmFsIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBxdWVyeWluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBzZXR0aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICJoaWJhIGEgc3pvbGfDoWx0YXTDoXMgbGXDoWxsw610w6FzYWtvcjog4oCeJXPigJ0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjM3OCBmZGlzay9jZmRpc2suYzoyMDgzCittc2dpZCAiVW51c2FibGUiCittc2dzdHIgIkhhc3puw6FsaGF0YXRsYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAiU3phYmFkIHRlcsO8bGV0IgorCisjOiBmZGlzay9jZmRpc2suYzozODMKK21zZ2lkICJMaW51eCBleHQyIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9jZmRpc2suYzozODUKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICJMaW51eCBleHQzIgorCisjOiBmZGlzay9jZmRpc2suYzozODcKK21zZ2lkICJMaW51eCBYRlMiCittc2dzdHIgIkxpbnV4IFhGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBKRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIkEgbGVtZXogbWVndsOhbHRvem90dC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYm9vdCB0aGUgc3lzdGVtIHRvIGVuc3VyZSB0aGUgcGFydGl0aW9uIHRhYmxlIGlzIGNvcnJlY3RseSB1cGRhdGVkLlxuIgorbXNnc3RyICIiCisiQSByZW5kc3plciDDumpyYWluZMOtdMOhc8OhdmFsIGJpenRvc8OtdGhhdGphIGEgcGFydMOtY2nDs3MgdMOhYmxhIG1lZ2ZlbGVsxZEgIgorImZyaXNzw610w6lzw6l0LlxuIgorCisjOiBmZGlzay9jZmRpc2suYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55XG4iCisiRE9TIDYueCBwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBjZmRpc2sgbWFudWFsXG4iCisicGFnZSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkZJR1lFTE1FWlRFVMOJUzogSGEgRE9TIDYueCBwYXJ0w61jacOzdCBob3pvdHRcbiIKKyJsw6l0cmUgdmFneSBtw7Nkb3PDrXRvdHQsIGFra29yIHRvdsOhYmJpIGluZm9ybcOhY2nDs2vDqXJ0XG4iCisib2x2YXNzYSBlbCBhIGNmZGlzayBrw6l6aWvDtm55diBvbGRhbMOhdC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIlbDiUdaRVRFUyBISUJBICIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE3Cittc2dpZCAiUHJlc3MgYW55IGtleSB0byBleGl0IGNmZGlzayIKK21zZ3N0ciAiw5xzc8O2biBsZSBlZ3kgYmlsbGVudHnFsXQgYSBraWzDqXDDqXNoZXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NCBmZGlzay9jZmRpc2suYzo1NzIKK21zZ2lkICJDYW5ub3Qgc2VlayBvbiBkaXNrIGRyaXZlIgorbXNnc3RyICJOZW0gbGVoZXQgcG96aWNpb27DoWxuaSBhIGxlbWV6bWVnaGFqdMOzbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY2Cittc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIKK21zZ3N0ciAiQSBsZW1lem1lZ2hhanTDsyBuZW0gb2x2YXNoYXTDsyIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIkEgbGVtZXptZWdoYWp0w7MgbmVtIMOtcmhhdMOzIgorCisjOiBmZGlzay9jZmRpc2suYzo5MTcKK21zZ2lkICJUb28gbWFueSBwYXJ0aXRpb25zIgorbXNnc3RyICJUw7psIHNvayBwYXJ0w61jacOzIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiQSBwYXJ0w61jacOzIGEgMC4gc3pla3RvciBlbMWRdHQga2V6ZMWRZGlrIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIkEgcGFydMOtY2nDsyBhIDAuIHN6ZWt0b3IgdXTDoW4gZmVqZXrFkWRpayBiZSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTMyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiQSBwYXJ0w61jacOzIGEgbGVtZXogdsOpZ2UgdXTDoW4ga2V6ZMWRZGlrIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiQSBwYXJ0w61jacOzIGEgbGVtZXptZWdoYWp0w7MgdXTDoW4gdsOpZ3rFkWRpayIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgIkEgcGFydMOtY2nDsyBheiB1dG9sc8OzIHLDqXN6bGVnZXMgY2lsaW5kZXIgdXTDoW4gdsOpZ3rFkWRpayIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY2Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG5vdCBpbiBkaXNrIG9yZGVyIgorbXNnc3RyICJhIGxvZ2lrYWkgcGFydMOtY2nDs2sgbmluY3NlbmVrIGEgbGVtZXpsaXN0w6FiYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2OQorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJsb2dpa2FpIHBhcnTDrWNpw7NrIGZlZGlrIGVneW3DoXN0IgorCisjOiBmZGlzay9jZmRpc2suYzo5NzMKK21zZ2lkICJlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAibWVnbsO2dmVsdCBsb2dpa2FpIHBhcnTDrWNpw7NrIGZlZGlrIGVneW3DoXN0IgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICIiCisiQmVsc8WRIGhpYmEgbG9naWthaSBwYXJ0w61jacOzIGtpdGVyamVzenRldHQgcGFydMOtY2nDsyBuw6lsa8O8bGkgbMOpdHJlaG96w6FzYSBzb3LDoW4hIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDE0IGZkaXNrL2NmZGlzay5jOjEwMjYKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisiTmVtIGhvemhhdMOzIGzDqXRyZSBsb2dpa2FpIG1lZ2hhanTDsyAtLSBleiBrw6l0IGtpdGVyamVzenRldHQgcGFydMOtY2nDs3QgaG96bmEgIgorImzDqXRyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICJBIG1lbsO8ZWxlbSB0w7psIGhvc3N6w7ouIEEgbWVuw7wgZnVyY3PDoW4gamVsZW5oZXQgbWVnLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTIyNAorbXNnaWQgIk1lbnUgd2l0aG91dCBkaXJlY3Rpb24uIERlZmF1bHRpbmcgdG8gaG9yaXpvbnRhbC4iCittc2dzdHIgIiIKKyJBIG1lbsO8bmVrIG5pbmNzIGlyw6FueWEuIEFsYXDDqXJ0ZWxtZXpldHRlbiB2w616c3ppbnRlcyBrZXLDvGwgZmVsaGFzem7DoWzDoXNyYS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAiw4lydsOpbnl0ZWxlbiBiaWxsZW50ecWxIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIk55b21qb24gbWVnIGVneSBiaWxsZW50ecWxdCBhIGZvbHl0YXTDoXNob3oiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiRWxzxZFkbGVnZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYKK21zZ2lkICJDcmVhdGUgYSBuZXcgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIsOaaiBlbHPFkWRsZWdlcyBwYXJ0w61jacOzIGzDqXRyZWhvesOhc2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg1CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiTG9naWNhbCIKK21zZ3N0ciAiTG9naWthaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNworbXNnaWQgIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiw5pqIGxvZ2lrYWkgcGFydMOtY2nDsyBsw6l0cmVob3rDoXNhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMgZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkNhbmNlbCIKK21zZ3N0ciAiTcOpZ3NlbSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICJOZSBob3p6b24gbMOpdHJlIHBhcnTDrWNpw7N0IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiISEhIEJlbHPFkSBoaWJhICEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NworbXNnaWQgIlNpemUgKGluIE1CKTogIgorbXNnc3RyICJNw6lyZXQgKE1CKTogIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQmVnaW5uaW5nIgorbXNnc3RyICJLZXpkZXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJQYXJ0w61jacOzIGhvenrDoWFkw6FzYSBhIHN6YWJhZCB0ZXLDvGxldCBlbGVqw6luIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiRW5kIgorbXNnc3RyICJWw6lnZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIlBhcnTDrWNpw7MgaG96esOhYWTDoXNhIGEgc3phYmFkIHRlcsO8bGV0IHbDqWfDqW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICJOaW5jcyBoZWx5IGEga2l0ZXJqZXN6dGV0dCBwYXJ0w61jacOzIGzDqXRyZWhvesOhc8OhaG96IgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc0Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJOaW5jcyBqZWxlbiBwYXJ0w61jacOzcyB0w6FibGEuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzgKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuIFN0YXJ0aW5nIHdpdGggemVybyB0YWJsZS4iCittc2dzdHIgIk5pbmNzIHBhcnTDrWNpw7NzIHTDoWJsYS4gSW5kw610w6FzIMO8cmVzIHTDoWJsw6F2YWwuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkEgcGFydMOtY2nDs3MgdMOhYmxhIGFsw6HDrXLDoXNhIGhpYsOhcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorbXNnaWQgIlVua25vd24gcGFydGl0aW9uIHRhYmxlIHR5cGUiCittc2dzdHIgIkEgcGFydMOtY2nDs3MgdMOhYmxhIHTDrXB1c2EgaXNtZXJldGxlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5NAorbXNnaWQgIkRvIHlvdSB3aXNoIHRvIHN0YXJ0IHdpdGggYSB6ZXJvIHRhYmxlIFt5L05dID8iCittc2dzdHIgIsOccmVzIHTDoWJsw6F2YWwgc3plcmV0bmUgaW5kdWxuaSBbaS9OXT8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NDIKK21zZ2lkICJZb3Ugc3BlY2lmaWVkIG1vcmUgY3lsaW5kZXJzIHRoYW4gZml0IG9uIGRpc2siCittc2dzdHIgIlTDtmJiIGNpbGluZGVydCBhZG90dCBtZWcsIG1pbnQgYW1lbm55aSBlbGbDqXIgYSBsZW1lemVuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc0Cittc2dpZCAiQ2Fubm90IG9wZW4gZGlzayBkcml2ZSIKK21zZ3N0ciAiTmVtIG55aXRoYXTDsyBtZWcgYSBsZW1lem1lZ2hhanTDsyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NiBmZGlzay9jZmRpc2suYzoxODY1Cittc2dpZCAiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIKK21zZ3N0ciAiQSBtZWdueWl0b3R0IGxlbWV6IGNzYWsgb2x2YXNoYXTDsyAtIG5pbmNzIGpvZ2Egw61ybmkgcsOhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorIkZpZ3llbG1lenRldMOpczogTmVtIHTDoW1vZ2F0b3R0IEdQVCAoR1VJRCBwYXJ0w61jacOzcyB0w6FibGEpLiBIYXN6bsOhbGphIGEgR05VICIKKyJQYXJ0ZWQtZXQuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIk5lbSBsZWhldCBsZWvDqXJkZXpuaSBhIGxlbWV6IG3DqXJldMOpdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTczMgorbXNnaWQgIkJhZCBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiSGliw6FzIGVsc8WRZGxlZ2VzIHBhcnTDrWNpw7MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3NjIKK21zZ2lkICJCYWQgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIkhpYsOhcyBsb2dpa2FpIHBhcnTDrWNpw7MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4NzcKK21zZ2lkICJXYXJuaW5nISEgIFRoaXMgbWF5IGRlc3Ryb3kgZGF0YSBvbiB5b3VyIGRpc2shIgorbXNnc3RyICJGaWd5ZWxtZXp0ZXTDqXM6IGV6IG1lZ3NlbW1pc8OtdGhldGkgYSBsZW1lemVuIHRhbMOhbGhhdMOzIGFkYXRhaXQhIgorCisjOiBmZGlzay9jZmRpc2suYzoxODgxCittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIiIKKyJCaXp0b3NhbiBraSBha2FyamEgw61ybmkgYSBwYXJ0w61jacOzcyB0w6FibMOhdCBhIGxlbWV6cmU/IChpZ2VuIHZhZ3kgbmVtKTogIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg3Cittc2dpZCAibm8iCittc2dzdHIgIm5lbSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4OQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIkEgcGFydMOtY2nDs3MgdMOhYmxhIG5lbSBrZXLDvGx0IGEgbGVtZXpyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5MQorbXNnaWQgInllcyIKK21zZ3N0ciAiaWdlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5NQorbXNnaWQgIlBsZWFzZSBlbnRlciBgeWVzJyBvciBgbm8nIgorbXNnc3RyICJBeiDigJ5pZ2Vu4oCdIHZhZ3kg4oCebmVt4oCdIGVneWlrw6l0IMOtcmphIGJlIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk5Cittc2dpZCAiV3JpdGluZyBwYXJ0aXRpb24gdGFibGUgdG8gZGlzay4uLiIKK21zZ3N0ciAiUGFydMOtY2nDs3MgdMOhYmxhIGtpw61yw6FzYSBhIGxlbWV6cmUuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJBIHBhcnTDrWNpw7NzIHTDoWJsYSBracOtcnZhIGEgbGVtZXpyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNgorIywgZnV6enkKK21zZ2lkICIiCisiV3JvdGUgcGFydGl0aW9uIHRhYmxlLCBidXQgcmUtcmVhZCB0YWJsZSBmYWlsZWQuICBSdW4gcGFydHByb2JlKDgpLCBrcGFydHgiCisiKDgpIG9yIHJlYm9vdCB0byB1cGRhdGUgdGFibGUuIgorbXNnc3RyICIiCisiQSBwYXJ0w61jacOzcyB0w6FibGEga2nDrXJ2YSwgZGUgw7pqcmFvbHZhc25pIG5lbSBzaWtlcsO8bHQuIMOaanJhaW5kw610w6FzIHN6w7xrc8OpZ2VzLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzNgorbXNnaWQgIk5vIHByaW1hcnkgcGFydGl0aW9ucyBhcmUgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisiRWd5IGVsc8WRZGxlZ2VzIHBhcnTDrWNpw7Mgc2luY3MgaW5kw610aGF0w7Nrw6ludCBraWplbMO2bHZlLiBBIERPUyBNQlIgZXp0IG5lbSAiCisidHVkamEgZWxpbmTDrXRhbmkuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM4Cittc2dpZCAiIgorIk1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisiVMO2YmIgZWxzxZFkbGVnZXMgcGFydMOtY2nDsyB2YW4gaW5kw610aGF0w7Nrw6ludCBraWplbMO2bHZlLiBBIERPUyBNQlIgZXp0IG5lbSAiCisidHVkamEgZWxpbmTDrXRhbmkuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICIiCisiQWRqb24gbWVnIGbDoWpsbmV2ZXQgdmFneSBueW9tamEgbWVnIGF6IEVOVEVSLXQgYSBrw6lwZXJuecWRIG1lZ2plbGVuw610w6lzaGV6OiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMDUgZmRpc2svY2ZkaXNrLmM6MjEyMyBmZGlzay9jZmRpc2suYzoyMjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIGZpbGUgJyVzJyIKK21zZ3N0ciAiTmVtIG55aXRoYXTDsyBtZWcgYSh6KSDigJ4lc+KAnSBmw6FqbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlc1xuIgorbXNnc3RyICJMZW1lem1lZ2hhanTDszogJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxOAorbXNnaWQgIlNlY3RvciAwOlxuIgorbXNnc3RyICIwLiBzemVrdG9yOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiJWQuIHN6ZWt0b3I6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDUKK21zZ2lkICIgICBOb25lICAgIgorbXNnc3RyICIgICBOaW5jcyAgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ3Cittc2dpZCAiICAgUHJpL0xvZyIKK21zZ3N0ciAiICAgRWxzL0xvZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0OQorbXNnaWQgIiAgIFByaW1hcnkiCittc2dzdHIgIiAgIEVsc8WRZGxlZ2VzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiICAgTG9naWthaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA4OSBmZGlzay9mZGlzay5jOjE3NjcgZmRpc2svZmRpc2suYzoyMTA2CisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjI3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MTYgZmRpc2svc2ZkaXNrLmM6NjM4Cittc2dpZCAiVW5rbm93biIKK21zZ3N0ciAiSXNtZXJldGxlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NSBmZGlzay9jZmRpc2suYzoyNTYzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOQorbXNnaWQgIkJvb3QiCittc2dzdHIgIkluZMOtdGhhdMOzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk5Cittc2dpZCAiTm9uZSIKK21zZ3N0ciAiTmluY3MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIkEoeikg4oCeJXPigJ0gcGFydMOtY2nDs3MgdMOhYmzDoWphXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzYKK21zZ2lkICIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iCittc2dzdHIgIiAgICAgICAgICAgICAgIEVsc8WRICAgICBVdG9sc8OzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjIFTDrXB1cyAgICAgU3pla3RvciAgIFN6ZWt0b3IgICBFbHRvbMOhcyAgIEhvc3N6ICBGw6FqbHJlbmRzemVyIFTDrXB1cyAoSUQpICAiCisiSmVsesWRXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgICAtLS1LZXpkZXQtLSAgICAgICAgICAtLS1Ww6lnLS0tICAgICAgIEtlemRldCAgICAgU3rDoW1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMgorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICIgIyBKZWx6xZFrIEZlaiBTemVrdCBDaWwgICBJRCAgRmVqIFN6ZWt0b3IgQ2lsICAgIFN6ZWt0b3IgU3pla3Rvcm9rXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjMKK21zZ2lkICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICJOeWVycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgIlTDoWJsYSBtZWdqZWxlbsOtdMOpc2UgbnllcnMgZm9ybcOhYmFuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJTZWN0b3JzIgorbXNnc3RyICJTemVrdG9yb2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcKK21zZ2lkICJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICJUw6FibGEgbWVnamVsZW7DrXTDqXNlIHN6ZWt0b3JvayBzemVyaW50IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU4Cittc2dpZCAiVGFibGUiCittc2dzdHIgIlTDoWJsw6F6YXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkNzYWsgbWVnamVsZW7DrXRpIGEgcGFydMOtY2nDs3MgdMOhYmzDoXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJEb24ndCBwcmludCB0aGUgdGFibGUiCittc2dzdHIgIk5lIGplbGVuamVuIG1lZyBhIHTDoWJsYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgIkEgY2ZkaXNrIHPDumfDs2phIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg5Cittc2dpZCAiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIgorbXNnc3RyICJFeiBhIGNmZGlzaywgZWd5IGN1cnNlcyBhbGFww7ogbGVtZXpwYXJ0aWNpb27DoWzDsyBwcm9ncmFtLCBhbWVsbHllbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MAorbXNnaWQgImFsbG93cyB5b3UgdG8gY3JlYXRlLCBkZWxldGUgYW5kIG1vZGlmeSBwYXJ0aXRpb25zIG9uIHlvdXIgaGFyZCIKK21zZ3N0ciAibMOpdHJlaG96aGF0amEsIHTDtnLDtmxoZXRpIMOpcyBtw7Nkb3PDrXRoYXRqYSBhIHBhcnTDrWNpw7NpdCBhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgIm1lcmV2bGVtZXplbi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJQYXJhbmNzICAgICBKZWxlbnTDqXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTYKK21zZ2lkICItLS0tLS0tICAgICAgLS0tLS0tLSIKK21zZ3N0ciAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTcKK21zZ2lkICIgIGIgICAgICAgICAgVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGIgICAgICAgICAgQXogYWt0dcOhbGlzIHBhcnTDrWNpw7MgbWVnamVsw7Zsw6lzZSBpbmTDrXRoYXTDs2vDqW50IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk4Cittc2dpZCAiICBkICAgICAgICAgIERlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgZCAgICAgICAgICBBeiBha3R1w6FsaXMgcGFydMOtY2nDsyB0w7ZybMOpc2UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTkKK21zZ2lkICIgIGcgICAgICAgICAgQ2hhbmdlIGN5bGluZGVycywgaGVhZHMsIHNlY3RvcnMtcGVyLXRyYWNrIHBhcmFtZXRlcnMiCittc2dzdHIgIiAgZyAgICAgICAgICBBIGNpbGluZGVyLSwgZmVqLSwgw6lzIHPDoXZvbmvDqW50aSBzemVrdG9yc3rDoW0gbcOzZG9zw610w6FzYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiAgICAgICAgICAgICBGSUdZRUxNRVpURVTDiVM6IEV6dCBhIGxlaGV0xZFzw6lnZXQgY3NhayBha2tvciBoYXN6bsOhbGphLCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICAgaGEgdHVkamEsIGhvZ3kgbWl0IGNzaW7DoWwuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAyCittc2dpZCAiICBoICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgIGggICAgICAgICAgRXplbiBrw6lwZXJuecWRIG1lZ2plbGVuw610w6lzZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgbSAgICAgICAgICBNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBtICAgICAgICAgIEF6IGFrdHXDoWxpcyBwYXJ0w61jacOzIGxlbWV6a2loYXN6bsOhbMOhc8OhbmFrIG1heGltYWxpesOhbMOhc2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgICAgICAgICAgTm90ZTogVGhpcyBtYXkgbWFrZSB0aGUgcGFydGl0aW9uIGluY29tcGF0aWJsZSB3aXRoIgorbXNnc3RyICIgICAgICAgICAgICAgTWVnamVneXrDqXM6IEV6IGlua29tcGF0aWJpbGlzc8OpIHRlaGV0aSBhIHBhcnTDrWNpw7N0IGEgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICAgRE9TLXNhbCwgT1MvMi12ZWwsIC4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiAgbiAgICAgICAgICDDmmogcGFydMOtY2nDsyBsw6l0cmVob3rDoXNhIGEgc3phYmFkIHRlcsO8bGV0YsWRbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgcCAgICAgICAgICBQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIiAgcCAgICAgICAgICBBIHBhcnTDrWNpw7NzIHTDoWJsYSBracOtcsOhc2EgYSBrw6lwZXJuecWRcmUgdmFneSBmw6FqbGJhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICAgU3rDoW1vcyBrw7xsw7ZuYsO2esWRIHBhcnTDrWNpw7Nmb3Jtw6F0dW0gbMOpdGV6aWssIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA5Cittc2dpZCAiICAgICAgICAgICAgIHRoYXQgeW91IGNhbiBjaG9vc2UgZnJvbToiCittc2dzdHIgIiAgICAgICAgICAgICBhbWVseWVrIGvDtnrDvGwgdsOhbGFzenRoYXQ6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEwCittc2dpZCAiICAgICAgICAgICAgICAgIHIgLSBSYXcgZGF0YSAoZXhhY3RseSB3aGF0IHdvdWxkIGJlIHdyaXR0ZW4gdG8gZGlzaykiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgICAgciAtIE55ZXJzIGFkYXRvayAocG9udG9zYW4gYXosIGFtaSBraSBsZXN6IMOtcnZhIGEgbGVtZXpyZSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHMgLSBUw6FibMOhemF0IHN6ZWt0b3JvayBzemVyaW50IHJlbmRlenZlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEyCittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICIgICAgICAgICAgICAgICAgdCAtIFTDoWJsw6F6YXQgbnllcnMgZm9ybcOhYmFuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAgS2lsw6lww6lzIGEgcHJvZ3JhbWLDs2wgYSBwYXJ0w61jacOzcyB0w6FibGEga2nDrXLDoXNhIG7DqWxrw7xsIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIgIHQgICAgICAgICAgQSBmw6FqbHJlbmRzemVyIHTDrXB1c8OhbmFrIG1lZ3bDoWx0b3p0YXTDoXNhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE1Cittc2dpZCAiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIKK21zZ3N0ciAiICB1ICAgICAgICAgIEEgcGFydMOtY2nDs23DqXJldCBraWplbHrDqXNpIGVneXPDqWfDqW5layBtZWd2w6FsdG96dGF0w6FzYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNgorbXNnaWQgIiAgICAgICAgICAgICBSb3RhdGVzIHRocm91Z2ggTUIsIHNlY3RvcnMgYW5kIGN5bGluZGVycyIKK21zZ3N0ciAiICAgICAgICAgICAgIFbDoWxhc3p0aGF0IE1CLW9rLCBzemVrdG9yb2sgw6lzIGNpbGluZGVyZWsga8O2esO2dHQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiIgorIiAgVyAgICAgICAgICBLacOtcmphIGEgcGFydMOtY2nDs3MgdMOhYmzDoXQgYSBsZW1lenJlIChjc2FrIGEgbmFneSBXIMOpcnbDqW55ZXMpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE4Cittc2dpZCAiICAgICAgICAgICAgIFNpbmNlIHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhIG9uIHRoZSBkaXNrLCB5b3UgbXVzdCIKK21zZ3N0ciAiICAgICAgICAgICAgIEV6IGxldMO2cmxpIGF6IMO2c3N6ZXMgYWRhdG90IGEgbGVtZXpyxZFsLCBlesOpcnQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgICAgICAgICAgZWl0aGVyIGNvbmZpcm0gb3IgZGVueSB0aGUgd3JpdGUgYnkgZW50ZXJpbmcgYHllcycgb3IiCittc2dzdHIgIiAgICAgICAgICAgICBlcsWRc8OtdHNlLCB2YWd5IHRhZ2FkamEgbWVnIGF6IMOtcsOhc3QgYXog4oCeaWdlbuKAnSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIgICAgICAgICAgICAgdmFneSDigJ5uZW3igJ0gYmXDrXLDoXPDoXZhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMQorbXNnaWQgIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIgorbXNnc3RyICJGZWwgbnnDrWwgICAgIEEga3Vyem9ydCBheiBlbMWResWRIHBhcnTDrWNpw7NyYSBtb3pnYXRqYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMgorbXNnaWQgIkRvd24gQXJyb3cgICBNb3ZlIGN1cnNvciB0byB0aGUgbmV4dCBwYXJ0aXRpb24iCittc2dzdHIgIkxlIG55w61sICAgICAgQSBrdXJ6b3J0IGEga8O2dmV0a2V6xZEgcGFydMOtY2nDs3JhIG1vemdhdGphIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIzCittc2dpZCAiQ1RSTC1MICAgICAgIFJlZHJhd3MgdGhlIHNjcmVlbiIKK21zZ3N0ciAiQ3RybC1MICAgICAgIMOaanJhcmFqem9samEgYSBrw6lwZXJuecWRdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICA/ICAgICAgICAgIEV6IGEga8OpcGVybnnFkSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNgorbXNnaWQgIk5vdGU6IEFsbCBvZiB0aGUgY29tbWFuZHMgY2FuIGJlIGVudGVyZWQgd2l0aCBlaXRoZXIgdXBwZXIgb3IgbG93ZXIiCittc2dzdHIgIk1lZ2plZ3l6w6lzOiBBeiDDtnNzemVzIHBhcmFuY3MgYmXDrXJoYXTDsyBraXMgw6lzIG5hZ3kgYmV0xbF2ZWwgaXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgImtpdsOpdmUga2nDrXLDoXNuw6FsIChXKS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAiQ2lsaW5kZXJlayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OAorbXNnaWQgIkNoYW5nZSBjeWxpbmRlciBnZW9tZXRyeSIKK21zZ3N0ciAiQ2lsaW5kZXJlayBnZW9tZXRyacOhasOhbmFrIG1lZ3bDoWx0b3p0YXTDoXNhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzAKK21zZ2lkICJIZWFkcyIKK21zZ3N0ciAiRmVqZWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkKK21zZ2lkICJDaGFuZ2UgaGVhZCBnZW9tZXRyeSIKK21zZ3N0ciAiRmVqZWsgZ2VvbWV0cmnDoWrDoW5hayBtZWd2w6FsdG96dGF0w6FzYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiCittc2dzdHIgIlN6ZWt0b3JvayBnZW9tZXRyacOhasOhbmFrIG1lZ3bDoWx0b3p0YXTDoXNhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAiS8Opc3oiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIkEgZ2VvbWV0cmlhIG1lZ3bDoWx0b3p0YXTDoXNhIGvDqXN6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzc0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIKK21zZ3N0ciAiQWRqYSBtZWcgYSBjaWxpbmRlcmVrIHN6w6Ftw6F0OiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzODUgZmRpc2svY2ZkaXNrLmM6Mjk1OAorbXNnaWQgIklsbGVnYWwgY3lsaW5kZXJzIHZhbHVlIgorbXNnc3RyICLDiXJ2w6lueXRlbGVuIGNpbGluZGVyw6lydMOpayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAiQWRqYSBtZWcgYSBmZWplayBzesOhbcOhdDogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzk4IGZkaXNrL2NmZGlzay5jOjI5NjgKK21zZ2lkICJJbGxlZ2FsIGhlYWRzIHZhbHVlIgorbXNnc3RyICLDiXJ2w6lueXRlbGVuIGZlanN6w6FtIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICJBZGphIG1lZyBhIHPDoXZvbmvDqW50aSBzemVrdG9yb2sgc3rDoW3DoXQ6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQxMSBmZGlzay9jZmRpc2suYzoyOTc1Cittc2dpZCAiSWxsZWdhbCBzZWN0b3JzIHZhbHVlIgorbXNnc3RyICLDiXJ2w6lueXRlbGVuIHN6ZWt0b3JzesOhbSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUxNAorbXNnaWQgIkVudGVyIGZpbGVzeXN0ZW0gdHlwZTogIgorbXNnc3RyICJBZGphIG1lZyBhIGbDoWpscmVuZHN6ZXIgdMOtcHVzw6F0OiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzIKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZW1wdHkiCittc2dzdHIgIkEgZsOhamxyZW5kc3plciB0w61wdXNhIG5lbSBtw7Nkb3PDrXRoYXTDsyDDvHJlc3JlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICJBIGbDoWpscmVuZHN6ZXIgdMOtcHVzYSBuZW0gbcOzZG9zw610aGF0w7Mga2l0ZXJqZXN6dGV0dHJlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuayglMDJYKSIKK21zZ3N0ciAiSXNtKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY4IGZkaXNrL2NmZGlzay5jOjI1NzEKK21zZ2lkICIsIE5DIgorbXNnc3RyICIsIE5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTc2IGZkaXNrL2NmZGlzay5jOjI1NzkKK21zZ2lkICJOQyIKK21zZ3N0ciAiTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODcKK21zZ2lkICJQcmkvTG9nIgorbXNnc3RyICJFbHMvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICJJc21lcmV0bGVuICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAiTGVtZXptZWdoYWp0w7M6ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQgTUIiCittc2dzdHIgIk3DqXJldDogJWxsZCBiw6FqdCwgJWxsZCBNQiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgIk3DqXJldDogJWxsZCBiw6FqdCwgJWxsZC4lbGxkIEdCIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAiRmVqZWs6ICVkICAgU8Ohdm9ua8OpbnRpIHN6ZWt0b3JzesOhbTogJWQgICBDaWxpbmRlcmVrOiAlbGxkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgxIGxvZ2luLXV0aWxzL2NoZm4uYzozNzcKK21zZ2lkICJOYW1lIgorbXNnc3RyICJOw6l2IgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgyCittc2dpZCAiRmxhZ3MiCittc2dzdHIgIkplbGVrIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgzCittc2dpZCAiUGFydCBUeXBlIgorbXNnc3RyICJQYXJ0LiB0w61wdXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODQKK21zZ2lkICJGUyBUeXBlIgorbXNnc3RyICJGUiB0w61wdXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODUKK21zZ2lkICJbTGFiZWxdIgorbXNnc3RyICJbQ8OtbWtlXSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NworbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICIgICBTemVrdG9yb2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKK21zZ2lkICIgIEN5bGluZGVycyIKK21zZ3N0ciAiICBDaWxpbmRlcmVrIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkxCittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIiAgTcOpcmV0IChNQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiICBNw6lyZXQgKEdCKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIkJvb3RhYmxlIgorbXNnc3RyICJBa3TDrXYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIkF6IGFrdHXDoWxpcyBwYXJ0w61jacOzIGluZMOtdGhhdMOzdsOhIHTDqXRlbGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUiCittc2dzdHIgIlTDtnJsw6lzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiQXogYWt0dcOhbGlzIHBhcnTDrWNpw7MgdMO2cmzDqXNlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiR2VvbWV0cnkiCittc2dzdHIgIkdlb21ldHJpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkNoYW5nZSBkaXNrIGdlb21ldHJ5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICJBIGxlbWV6Z2VvbWV0cmlhIG3Ds2Rvc8OtdMOhc2EgKGNzYWsgaGFsYWTDs2tuYWspIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiU8O6Z8OzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiUHJpbnQgaGVscCBzY3JlZW4iCittc2dzdHIgIlNlZ8OtdHPDqWcga2nDrXLDoXNhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUiCittc2dzdHIgIk1heGltYWwuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIk1heGltYWxpesOhbGphIGF6IGFrdHXDoWxpcyBwYXJ0w61jacOzIGxlbWV6a2loYXN6bsOhbMOhc8OhdCAoY3NhayBoYWxhZMOzbmFrKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAiw5pqIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICLDmmogcGFydMOtY2nDsyBsw6l0cmVob3rDoXNhIGEgc3phYmFkIHRlcsO8bGV0ZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiTWVnbsOpesOpcyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiS2nDrXJqYSBhIHBhcnTDrWNpw7NzIHTDoWJsw6F0IGEga8OpcGVybnnFkXJlIHZhZ3kgZWd5IGbDoWpsYmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IgorbXNnc3RyICJLaWzDqXDDqXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiS2lsw6lww6lzIGEgcGFydMOtY2nDs3MgdMOhYmxhIGtpw61yw6FzYSBuw6lsa8O8bCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIlR5cGUiCittc2dzdHIgIlTDrXB1cyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIkNoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIChET1MsIExpbnV4LCBPUy8yIGFuZCBzbyBvbikiCittc2dzdHIgIkEgZsOhamxyZW5kc3plciB0w61wdXPDoW5hayBtw7Nkb3PDrXTDoXNhIChET1MsIExpbnV4LCBPUy8yLCBzdGIpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiVW5pdHMiCittc2dzdHIgIkVneXPDqWciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkgKE1CLCBzZWN0LCBjeWwpIgorbXNnc3RyICIiCisiQSBwYXJ0w61jacOzbcOpcmV0IGtpamVsesOpc2kgZWd5c8OpZ8OpbmVrIG1lZ3bDoWx0b3p0YXTDoXNhIChNQiwgU3pla3QuLCBDaWwuKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJLacOtcsOhcyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrICh0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSkiCittc2dzdHIgIkEgcGFydMOtY2nDs3MgdMOhYmxhIGtpw61yw6FzYSBhIGxlbWV6cmUgKGFkYXR2ZXN6dMOpc3Qgb2tvemhhdCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MDUKK21zZ2lkICJDYW5ub3QgbWFrZSB0aGlzIHBhcnRpdGlvbiBib290YWJsZSIKK21zZ3N0ciAiRXogYSBwYXJ0w61jacOzIG5lbSB0ZWhldMWRIGluZMOtdGhhdMOzdsOhIgorCisjOiBmZGlzay9jZmRpc2suYzoyODE1Cittc2dpZCAiQ2Fubm90IGRlbGV0ZSBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIk5lbSB0w7Zyw7ZsaGV0IMO8cmVzIHBhcnTDrWNpw7N0IgorCisjOiBmZGlzay9jZmRpc2suYzoyODM1IGZkaXNrL2NmZGlzay5jOjI4MzcKK21zZ2lkICJDYW5ub3QgbWF4aW1pemUgdGhpcyBwYXJ0aXRpb24iCittc2dzdHIgIk5lbSBtYXhpbWFsaXrDoWxoYXRqYSBlenQgYSBwYXJ0w61jacOzdCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NQorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIHVudXNhYmxlIgorbXNnc3RyICJFeiBhIHBhcnTDrWNpw7MgaGFzem7DoWxoYXRhdGxhbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJFeiBhIHBhcnTDrWNpw7MgbcOhciBoYXN6bsOhbGF0YmFuIHZhbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICLDnHJlcyBwYXJ0w61jacOzIHTDrXB1c2EgbmVtIG3Ds2Rvc8OtdGhhdMOzIgorCisjOiBmZGlzay9jZmRpc2suYzoyODkxIGZkaXNrL2NmZGlzay5jOjI4OTcKK21zZ2lkICJObyBtb3JlIHBhcnRpdGlvbnMiCittc2dzdHIgIk5pbmNzIHTDtmJiIHBhcnTDrWNpw7MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MDQKK21zZ2lkICJJbGxlZ2FsIGNvbW1hbmQiCittc2dzdHIgIsOJcnbDqW55dGVsZW4gcGFyYW5jcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkxNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKK21zZ3N0ciAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIlByaW50IHZlcnNpb246XG4iCisiICAgICAgICAlcyAtdlxuIgorIlByaW50IHBhcnRpdGlvbiB0YWJsZTpcbiIKKyIgICAgICAgICVzIC1QIHtyfHN8dH0gW29wdGlvbnNdIGRldmljZVxuIgorIkludGVyYWN0aXZlIHVzZTpcbiIKKyIgICAgICAgICVzIFtvcHRpb25zXSBkZXZpY2VcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIi1hOiBVc2UgYXJyb3cgaW5zdGVhZCBvZiBoaWdobGlnaHRpbmc7XG4iCisiLXo6IFN0YXJ0IHdpdGggYSB6ZXJvIHBhcnRpdGlvbiB0YWJsZSwgaW5zdGVhZCBvZiByZWFkaW5nIHRoZSBwdCBmcm9tIGRpc2s7XG4iCisiLWMgQyAtaCBIIC1zIFM6IE92ZXJyaWRlIHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzLFxuIgorIiAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIGhlYWRzIGFuZCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2suXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJIYXN6bsOhbGF0OlxuIgorIlZlcnppw7Mga2nDrXLDoXNhOlxuIgorIiAgICAgICAgICVzIC12XG4iCisiUGFydMOtY2nDs3MgdMOhYmxhIGtpw61yw6FzYTpcbiIKKyIgICAgICAgICAlcyAtUCB7cnxzfHR9IFtrYXBjc29sw7NrXSBlc3prw7Z6XG4iCisiSW50ZXJha3TDrXYgaGFzem7DoWxhdDpcbiIKKyIgICAgICAgICAlcyBba2FwY3NvbMOza10gZXN6a8O2elxuIgorIlxuIgorIkthcGNzb2zDs2s6XG4iCisiLWE6IE55aWxhayBoYXN6bsOhbGF0YSBraWplbMO2bMOpcyBoZWx5ZXR0O1xuIgorIi16OiBJbmTDrXTDoXMgw7xyZXMgcGFydMOtY2nDs3MgdMOhYmzDoXZhbCwgYSBsZW1lenLFkWwgdMO2cnTDqW7FkSBiZW9sdmFzw6FzIGhlbHlldHQ7XG4iCisiLWMgQyAtaCBGIC1zIFM6IEEga2VybmVsIMOhbHRhbCBmZWxpc21lcnQgY2lsaW5kZXItLCBmZWotLCDDqXNcbiIKKyIgICAgICAgICAgICAgICAgICBzemVrdG9yc3rDoW0tw6lydMOpa2VrIGZlbMO8bGLDrXLDoWzDoXNhLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza2FpeGxhYmVsLmM6MjcKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIEFJWCBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IExpbnV4IGNhbm5vdCBoYW5kbGUgdGhlc2VcbiIKKyJcdGRpc2tzIGF0IHRoZSBtb21lbnQuICBOZXZlcnRoZWxlc3Mgc29tZVxuIgorIlx0YWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorIlx0My4gQmVmb3JlIGRlbGV0aW5nIHRoaXMgcGh5c2ljYWwgdm9sdW1lIGJlIHN1cmVcbiIKKyJcdCAgIHRvIHJlbW92ZSB0aGUgZGlzayBsb2dpY2FsbHkgZnJvbSB5b3VyIEFJWFxuIgorIlx0ICAgbWFjaGluZS4gIChPdGhlcndpc2UgeW91IGJlY29tZSBhbiBBSVhwZXJ0KS4iCittc2dzdHIgIiIKKyJcbiIKKyJcdMOJcnbDqW55ZXMgQUlYIGPDrW1rZSB2YW4gYSBsZW1lemVuLlxuIgorIlx0U2Fqbm9zIGEgTGludXggamVsZW5sZWcgbmVtIHR1ZGphIGV6ZWtldCBhIGxlbWV6ZWtldFxuIgorIlx0a2V6ZWxuaS4gRW5uZWsgZWxsZW7DqXJlIG7DqWjDoW55IHRhbsOhY3M6XG4iCisiXHQxLiBBeiBmZGlzayBtZWdzZW1taXPDrXRpIGEgdGFydGFsbcOhdCBheiDDrXLDoXMgc29yw6FuXG4iCisiXHQyLiBHecWResWRZGrDtm4gbWVnIGFycsOzbCBob2d5IGEgbGVtZXogTkVNIMOpbMWRIHLDqXN6ZSBlZ3lcbiIKKyJcdCAgICBrw7Z0ZXRjc29wb3J0bmFrLiAoRWd5w6lia8OpbnQgbGV0w7Zyw7ZsaGV0aSBhXG4iCisiXHQgICAgdMO2YmJpIG5lbSB0w7xrcsO2esO2dHQgbGVtZXp0IGlzLilcbiIKKyJcdDMuIEEgZml6aWthaSBrw7Z0ZXQgdMO2cmzDqXNlIGVsxZF0dCBnecWResWRZGrDtm4gbWVnLCBob2d5IGFcbiIKKyJcdCAgICBsZW1lenQgYml6dG9zYW4gZWx0w6F2b2zDrXRvdHRhIGxvZ2lrYWlsYWcgYXogQUlYIGfDqXByxZFsXG4iCisiXHQgICAgKEVsbGVua2V6xZEgZXNldGJlbiBhZGF0dmVzenTDqXMgdsOhcmhhdMOzLikuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkJTRCBjw61ta2UgYSBrw7Z2ZXRrZXrFkSBlc3prw7Z6w7ZuOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI4IGZkaXNrL2ZkaXNrLmM6Mzk0IGZkaXNrL2ZkaXNrLmM6NDEzCisjOiBmZGlzay9mZGlzay5jOjQzMSBmZGlzay9mZGlzay5jOjQzOCBmZGlzay9mZGlzay5jOjQ2MSBmZGlzay9mZGlzay5jOjQ3OQorIzogZmRpc2svZmRpc2suYzo0OTUgZmRpc2svZmRpc2suYzo1MTEKK21zZ2lkICJDb21tYW5kIGFjdGlvbiIKK21zZ3N0ciAiUGFyYW5jcyBNxbF2ZWxldCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOQorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgIEJTRCBwYXJ0w61jacOzIHTDtnJsw6lzZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMAorbXNnaWQgIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiCittc2dzdHIgIiAgIGUgICBtZWdoYWp0w7NhZGF0b2sgc3plcmtlc3p0w6lzZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgIHJlbmRzemVydMO2bHTFkSB0ZWxlcMOtdMOpc2UiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzIKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBmaWxlc3lzdGVtIHR5cGVzIgorbXNnc3RyICIgICBsICAgYXogaXNtZXJ0IGbDoWpscmVuZHN6ZXJ0w61wdXNvayBmZWxzb3JvbMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICBlemVuIG1lbsO8IGtpw61yw6FzYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNAorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgICDDumogQlNEIHBhcnTDrWNpw7MgaG96esOhYWTDoXNhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM1Cittc2dpZCAiICAgcCAgIHByaW50IEJTRCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBCU0QgcGFydMOtY2nDs3MgdMOhYmxhIGtpw61yw6FzYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgIGtpbMOpcMOpcyBtZW50w6lzIG7DqWxrw7xsIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM3IGZkaXNrL2ZkaXNrLmM6NDcyIGZkaXNrL2ZkaXNrLmM6NDg5CisjOiBmZGlzay9mZGlzay5jOjUwNSBmZGlzay9mZGlzay5jOjUyMworbXNnaWQgIiAgIHIgICByZXR1cm4gdG8gbWFpbiBtZW51IgorbXNnc3RyICIgICByICAgdmlzc3phIGEgZsWRbWVuw7xiZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOAorbXNnaWQgIiAgIHMgICBzaG93IGNvbXBsZXRlIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgIGEgdGVsamVzIGxlbWV6Y8OtbWtlIG11dGF0w6FzYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgYSBwYXJ0w61jacOzIGbDoWpscmVuZHN6ZXItYXpvbm9zw610w7Nqw6FuYWsgbcOzZG9zw610w6FzYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiICAgdSAgIGEgbcOpcmV0w6lrZWd5c8OpZ2VrIG3Ds2Rvc8OtdMOhc2EgKGNpbGluZGVyZWsvc3pla3Rvcm9rKSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgIGxlbWV6Y8OtbWtlIMOtcsOhc2EgYSBsZW1lenJlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQzCittc2dpZCAiICAgeCAgIGxpbmsgQlNEIHBhcnRpdGlvbiB0byBub24tQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgeCAgIEJTRCBwYXJ0w61jacOzIGNzYXRvbMOhc2EgZWd5IG5lbSBCU0QgcGFydMOtY2nDs2hveiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIkEoeikg4oCeJXPigJ0gcGFydMOtY2nDsyBheiDDqXJ2w6lueXRlbGVuIDAuIHN6ZWt0b3JiYW4ga2V6ZMWRZGlrLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWRpbmcgZGlza2xhYmVsIG9mICVzIGF0IHNlY3RvciAlZC5cbiIKK21zZ3N0ciAiQSh6KSAlcyBsZW1lemPDrW1rZSBvbHZhc8Ohc2EgYSh6KSAlZC4gc3pla3Rvcm7DoWwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIk5pbmNzICpCU0QgcGFydMOtY2nDsyBhIGvDtnZldGtlesWRbjogJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyMDMKK21zZ2lkICJCU0QgZGlza2xhYmVsIGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIkJTRCBsZW1lemPDrW1rZSBwYXJhbmNzIChtID0gc8O6Z8OzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjgzIGZkaXNrL2ZkaXNrLmM6MjMyOCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM4CisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ICVzIgorbXNnc3RyICJFbHPFkSAlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJXMgb3IgK3NpemUgb3IgK3NpemVNIG9yICtzaXplSyIKK21zZ3N0ciAiVXRvbHPDsyAlcyB2YWd5ICttw6lyZXQgdmFneSArbcOpcmV0TSB2YWd5ICttw6lyZXRLIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVzXG4iCittc2dzdHIgInTDrXB1czogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICJ0w61wdXM6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlzazogJS4qc1xuIgorbXNnc3RyICJsZW1lejogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxhYmVsOiAlLipzXG4iCittc2dzdHIgImPDrW1rZTogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAiamVsesWRazoiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIHJlbW92YWJsZSIKK21zZ3N0ciAiIGVsdMOhdm9sw610aGF0w7MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIGVjYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiIGhpYsOhcyBzemVrdG9yIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzL3NlY3RvcjogJWxkXG4iCittc2dzdHIgInN6ZWt0b3JvbmvDqW50aSBiw6FqdG9rOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAic8Ohdm9ua8OpbnRpIHN6ZWt0b3JvazogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAiY2lsaW5kZXJlbmvDqW50aSBzw6F2b2s6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJjaWxpbmRlcmVua8OpbnRpIHN6ZWt0b3JvazogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiY2lsaW5kZXJlazogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAicnBtOiAlZFxuIgorbXNnc3RyICJmb3JkdWxhdHN6w6FtOiAlZFxuIgorCisjIGZpeG1lOiB2YWxhbWkgw6lydGVsbWVzZXQKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW50ZXJsZWF2ZTogJWRcbiIKK21zZ3N0ciAiw6F0cmVuZGV6w6lzOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrc2tldzogJWRcbiIKK21zZ3N0ciAic8OhdmTDtm50w6lzOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAiY2lsaW5kZXJkw7ZudMOpczogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiZmVqdsOhbHTDoXM6ICVsZFx0XHQjIGV6cmVkbcOhc29kcGVyY1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQzCisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWs6ICVsZFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAic8OhdnLDs2wgc8OhdnJhIHBvemljaW9uw6Fsw6FzOiAlbGRcdCBlenJlZG3DoXNvZHBlcmNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0NQorIywgYy1mb3JtYXQKK21zZ2lkICJkcml2ZWRhdGE6ICIKK21zZ3N0ciAibWVnaGFqdMOzYWRhdG9rOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0w61jacOzOlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiMgICAgICAgc3RhcnQgICAgICAgZW5kICAgICAgc2l6ZSAgICAgZnN0eXBlICAgW2ZzaXplIGJzaXplICAgY3BnXVxuIgorbXNnc3RyICIjICAgICAgIGtlemRldCAgICAgIHbDqWcgICAgICBtw6lyZXQgICAgZnJ0w61wdXMgICAgW2Ztw6lyZXQgYm3DqXJldCBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiTGVtZXpjw61ta2Ugw61yw6FzYSBhIGvDtnZldGtlesWRcmU6ICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDE5IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorbXNnc3RyICJBKHopICVzIG5lbSB0YXJ0YWxtYXogbGVtZXpjw61ta8OpdC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJMw6l0cmUgYWthciBob3puaSBsZW1lemPDrW1rw6l0PyAoaS9uKSAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgInN6ZWt0b3JvbmvDqW50aSBiw6FqdG9rIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic8Ohdm9ua8OpbnRpIHN6ZWt0b3JvayIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAiY2lsaW5kZXJlbmvDqW50aSBzw6F2b2siCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjkgZmRpc2svZmRpc2suYzo3NDAgZmRpc2svZmRpc2suYzoxNTkyCisjOiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJjeWxpbmRlcnMiCittc2dzdHIgImNpbGluZGVyZWsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJjaWxpbmRlcmVua8OpbnRpIHN6ZWt0b3JvayIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIDw9IHNlY3RvcnMvdHJhY2sgKiB0cmFja3MvY3lsaW5kZXIgKGRlZmF1bHQpLlxuIgorbXNnc3RyICIiCisiRXogbmVtIGxlaGV0IG5hZ3lvYmIsIG1pbnQgYSBzw6F2b25rw6ludGkgc3pla3Rvcm9rIHN6w6FtYSAqIGNpbGluZGVyZW5rw6ludGkgIgorInPDoXZvayBzesOhbWEgKGFsYXDDqXJ0ZWxtZXpldHQpLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgyCittc2dpZCAicnBtIgorbXNnc3RyICJwZXJjZW5rw6ludGkgZm9yZHVsYXQiCisKKyMgZml4bWU6IHZhbGFtaSDDqXJ0ZWxtZXNldAorIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MworbXNnaWQgImludGVybGVhdmUiCittc2dzdHIgIsOhdHJlbmRlesOpcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAic8OhdmTDtm50w6lzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg1Cittc2dpZCAiY3lsaW5kZXJza2V3IgorbXNnc3RyICJjaWxpbmRlcmTDtm50w6lzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg2Cittc2dpZCAiaGVhZHN3aXRjaCIKK21zZ3N0ciAiZmVqa2FwY3NvbMOhcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NworbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWsiCittc2dzdHIgInPDoXZyw7NsIHPDoXZyYSBwb3ppY2lvbsOhbMOhcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXA6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorbXNnc3RyICJSZW5kc3plcmluZMOtdMOhczogJXNpbmTDrXTDoXMgLT4gaW5kw610w6FzJXMgKCVzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIkEgcmVuZHN6ZXJpbmTDrXTDsyDDoXRmZWRpIGEgbGVtZXpjw61ta8OpdCFcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iCittc2dzdHIgIkEgcmVuZHN6ZXJpbmTDrXTDsyB0ZWxlcMOtdHZlIGEga8O2dmV0a2V6xZFyZTogJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIChhLSVjKTogIgorbXNnc3RyICJQYXJ0w61jacOzIChhLSVjKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIkEgbMOpdHJlaG96b3R0IHBhcnTDrWNpw7NrIHN6w6FtYSBlbMOpcnRlIGEgbWF4aW11bW90XG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMuXG4iCittc2dzdHIgIkV6IGEgcGFydMOtY2nDsyBtw6FyIGzDqXRlemlrLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHRvbyBtYW55IHBhcnRpdGlvbnMgKCVkLCBtYXhpbXVtIGlzICVkKS5cbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiB0w7psIHNvayBwYXJ0w61jacOzICglZCwgYSBtYXhpbXVtOiAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMZW1lemVrIHN6aW5rcm9uaXrDoWzDoXNhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NgorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgZmRpc2sgW29wdGlvbnNdIDxkaXNrPiAgICBjaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisiIGZkaXNrIFtvcHRpb25zXSAtbCA8ZGlzaz4gbGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyIgZmRpc2sgLXMgPHBhcnRpdGlvbj4gICAgICBnaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1iIDxzaXplPiAgICAgICAgICAgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGhlbHBcbiIKKyIgLXUgPHNpemU+ICAgICAgICAgICAgICAgICBnaXZlIHNpemVzIGluIHNlY3RvcnMgaW5zdGVhZCBvZiBjeWxpbmRlcnNcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB2ZXJzaW9uXG4iCisiIC1DIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVyc1xuIgorIiAtSCA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBoZWFkc1xuIgorIiAtUyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFja1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzXG4iCittc2dzdHIgIkEoeikgJXMgbmVtIG55aXRoYXTDsyBtZWdcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgJXNcbiIKK21zZ3N0ciAiQSh6KSAlcyBuZW0gb2x2YXNoYXTDs1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2VlayBvbiAlc1xuIgorbXNnc3RyICJOZW0gbGVoZXQgYSh6KSAlcyBlc3prw7Z6w7ZuIHBvemljaW9uw6FsbmlcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlICVzXG4iCittc2dzdHIgIkEoeikgJXMgbmVtIMOtcmhhdMOzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzXG4iCittc2dzdHIgIkEgQkxLR0VUU0laRSBpb2N0bCBtZWdoacO6c3VsdCBhIGvDtnZldGtlesWRbjogJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIk5lbSBmb2dsYWxoYXTDsyBsZSB0w7ZiYiBtZW3Ds3JpYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NgorbXNnaWQgIkZhdGFsIGVycm9yXG4iCittc2dzdHIgIlbDqWd6ZXRlcyBoaWJhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgYSBjc2FrIG9sdmFzaGF0w7MgamVsesWRIMOhdHbDoWx0w6FzYSIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAgYnNkIGxlbWV6Y8OtbWtlIHN6ZXJrZXN6dMOpc2UiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiAgIGMgICBhIGNzYXRvbGhhdMOzIGplbHrFkSDDoXR2w6FsdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIHBhcnTDrWNpw7MgdMO2cmzDqXNlIgorCisjOiBmZGlzay9mZGlzay5jOjM5OSBmZGlzay9mZGlzay5jOjQxOCBmZGlzay9mZGlzay5jOjQ0MworbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIGF6IGlzbWVydCBwYXJ0w61jacOzdMOtcHVzb2sgZmVsc29yb2zDoXNhIgorCisjOiBmZGlzay9mZGlzay5jOjQwMSBmZGlzay9mZGlzay5jOjQyMCBmZGlzay9mZGlzay5jOjQ0NQorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgw7pqIHBhcnTDrWNpw7MgaG96esOhYWTDoXNhIgorCisjOiBmZGlzay9mZGlzay5jOjQwMiBmZGlzay9mZGlzay5jOjQyMSBmZGlzay9mZGlzay5jOjQzMyBmZGlzay9mZGlzay5jOjQ0NgorbXNnaWQgIiAgIG8gICBjcmVhdGUgYSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgbyAgIMO6aiwgw7xyZXMgRE9TIHBhcnTDrWNpw7NzIHTDoWJsYSBsw6l0cmVob3rDoXNhIgorCisjOiBmZGlzay9mZGlzay5jOjQwMyBmZGlzay9mZGlzay5jOjQyMiBmZGlzay9mZGlzay5jOjQ0NyBmZGlzay9mZGlzay5jOjQ3MAorIzogZmRpc2svZmRpc2suYzo0ODcgZmRpc2svZmRpc2suYzo1MDMgZmRpc2svZmRpc2suYzo1MjEKK21zZ2lkICIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIGEgcGFydMOtY2nDs3MgdMOhYmxhIGtpw61yw6FzYSIKKworIzogZmRpc2svZmRpc2suYzo0MDUgZmRpc2svZmRpc2suYzo0MjQgZmRpc2svZmRpc2suYzo0MzUgZmRpc2svZmRpc2suYzo0NDkKK21zZ2lkICIgICBzICAgY3JlYXRlIGEgbmV3IGVtcHR5IFN1biBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICDDumosIMO8cmVzIFN1biBsZW1lemPDrW1rZSBsw6l0cmVob3rDoXNhIgorCisjOiBmZGlzay9mZGlzay5jOjQwNiBmZGlzay9mZGlzay5jOjQyNSBmZGlzay9mZGlzay5jOjQ1MAorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICBlZ3kgcGFydMOtY2nDsyByZW5kc3plcmF6b25vc8OtdMOzasOhbmFrIG3Ds2Rvc8OtdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA3IGZkaXNrL2ZkaXNrLmM6NDI2IGZkaXNrL2ZkaXNrLmM6NDUxCittc2dpZCAiICAgdSAgIGNoYW5nZSBkaXNwbGF5L2VudHJ5IHVuaXRzIgorbXNnc3RyICIgICB1ICAgYSBtZWdqZWxlbsOtdMOpc2kvYmVqZWd5esOpc2VneXPDqWdlayBtZWd2w6FsdG96dGF0w6FzYSIKKworIzogZmRpc2svZmRpc2suYzo0MDggZmRpc2svZmRpc2suYzo0MjcgZmRpc2svZmRpc2suYzo0NTIgZmRpc2svZmRpc2suYzo0NzQKKyM6IGZkaXNrL2ZkaXNrLmM6NDkxIGZkaXNrL2ZkaXNrLmM6NTA3IGZkaXNrL2ZkaXNrLmM6NTI1Cittc2dpZCAiICAgdiAgIHZlcmlmeSB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICB2ICAgYSBwYXJ0w61jacOzcyB0w6FibGEgZWxsZW7FkXJ6w6lzZSIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiAgIHcgICBhIHTDoWJsYSBsZW1lenJlIMOtcsOhc2Egw6lzIGtpbMOpcMOpcyIKKworIzogZmRpc2svZmRpc2suYzo0MTAgZmRpc2svZmRpc2suYzo0NTQKK21zZ2lkICIgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiICAgeCAgIGV4dHJhIHN6b2xnw6FsdGF0w6Fzb2sgKGNzYWsgc3pha8OpcnTFkWtuZWspIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAgYXogaW5kw610aGF0w7MgcGFydMOtY2nDsyBraXbDoWxhc3p0w6FzYSIKKworIzogZmRpc2svZmRpc2suYzo0MTUKK21zZ2lkICIgICBiICAgZWRpdCBib290ZmlsZSBlbnRyeSIKK21zZ3N0ciAiICAgYiAgIGluZMOtdMOzZsOhamwtYmVqZWd5esOpcyBzemVya2VzenTDqXNlIgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIgICBjICAgc2dpIGxhcG96w7NwYXJ0w61jacOzIGtpdsOhbGFzenTDoXNhIgorCisjOiBmZGlzay9mZGlzay5jOjQzOQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnIgorbXNnc3RyICIgICBhICAgaW5kw610aGF0w7MgamVsesWRIMOhdHbDoWx0w6FzYSIKKworIzogZmRpc2svZmRpc2suYzo0NDEKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBkb3MgY29tcGF0aWJpbGl0eSBmbGFnIgorbXNnc3RyICIgICBjICAgYSBET1Mga29tcGF0aWJpbGl0w6FzIGplbHrDqXPDqW5layDDoXR2w6FsdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYyCittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYSAgIGF6IGFsdGVybmF0w612IGNpbGluZGVyZWsgc3rDoW3DoW5hayBtw7Nkb3PDrXTDoXNhIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgIGEgY2lsaW5kZXJlayBzesOhbcOhbmFrIG3Ds2Rvc8OtdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY0IGZkaXNrL2ZkaXNrLmM6NDgyIGZkaXNrL2ZkaXNrLmM6NDk4IGZkaXNrL2ZkaXNrLmM6NTE0Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBkICAgYSBwYXJ0w61jacOzcyB0w6FibGEgbnllcnMgYWRhdGFpbmFrIGtpw61yw6FzYSIKKworIzogZmRpc2svZmRpc2suYzo0NjUKK21zZ2lkICIgICBlICAgY2hhbmdlIG51bWJlciBvZiBleHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiICAgZSAgIGEgY2lsaW5kZXJlbmvDqW50aSBleHRyYSBzemVrdG9yb2sgc3rDoW3DoW5hayBtw7Nkb3PDrXTDoXNhIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NiBmZGlzay9mZGlzay5jOjQ4NSBmZGlzay9mZGlzay5jOjUwMSBmZGlzay9mZGlzay5jOjUxOAorbXNnaWQgIiAgIGggICBjaGFuZ2UgbnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICIgICBoICAgYSBmZWplayBzesOhbcOhbmFrIG3Ds2Rvc8OtdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY3Cittc2dpZCAiICAgaSAgIGNoYW5nZSBpbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiICAgaSAgIGF6IMOhdHJlbmRlesOpc2kgdMOpbnllesWRIG3Ds2Rvc8OtdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY4Cittc2dpZCAiICAgbyAgIGNoYW5nZSByb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiICAgbyAgIGEgZm9yZ8Ohc2kgc2ViZXNzw6lnIChycG0pIG3Ds2Rvc8OtdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDczIGZkaXNrL2ZkaXNrLmM6NDkwIGZkaXNrL2ZkaXNrLmM6NTA2IGZkaXNrL2ZkaXNrLmM6NTI0Cittc2dpZCAiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIKK21zZ3N0ciAiICAgcyAgIGEgc8Ohdm9ua8OpbnRpIHN6ZWt0b3JvayBzesOhbcOhbmFrIG3Ds2Rvc8OtdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIgICB5ICAgYSBmaXppa2FpIGNpbGluZGVyZWsgc3rDoW3DoW5hayBtw7Nkb3PDrXTDoXNhIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MCBmZGlzay9mZGlzay5jOjQ5NiBmZGlzay9mZGlzay5jOjUxMgorbXNnaWQgIiAgIGIgICBtb3ZlIGJlZ2lubmluZyBvZiBkYXRhIGluIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBiICAgYXogYWRhdG9rIGVsZWrDqW5layBtb3pnYXTDoXNhIGVneSBwYXJ0w61jacOzYmFuIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MyBmZGlzay9mZGlzay5jOjQ5OSBmZGlzay9mZGlzay5jOjUxNQorbXNnaWQgIiAgIGUgICBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiAgIGUgICBraXRlcmplc3p0ZXR0IHBhcnTDrWNpw7NrIGZlbHNvcm9sw6FzYSIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgSVJJWCAoU0dJKSBwYXJ0w61jacOzcyB0w6FibGEgbMOpdHJlaG96w6FzYSIKKworIzogZmRpc2svZmRpc2suYzo1MTYKK21zZ2lkICIgICBmICAgZml4IHBhcnRpdGlvbiBvcmRlciIKK21zZ3N0ciAiICAgZiAgIHBhcnTDrWNpw7Nzb3JyZW5kIGphdsOtdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5Cittc2dpZCAiICAgaSAgIGNoYW5nZSB0aGUgZGlzayBpZGVudGlmaWVyIgorbXNnc3RyICIgICBpICAgYSBsZW1lemF6b25vc8OtdMOzIG3Ds2Rvc8OtdMOhc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IHNldCIKK21zZ3N0ciAiQmXDoWxsw610YW5kw7MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM2Cittc2dpZCAiaGVhZHMiCittc2dzdHIgImZlamVrIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAic3pla3Rvcm9rIgorCisjOiBmZGlzay9mZGlzay5jOjc0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMlcy5cbiIKKyJZb3UgY2FuIGRvIHRoaXMgZnJvbSB0aGUgZXh0cmEgZnVuY3Rpb25zIG1lbnUuXG4iCittc2dzdHIgIiIKKyIlcyVzLlxuIgorIkV6IGNzYWsgYXogZXh0cmEgc3pvbGfDoWx0YXTDoXNvayBtZW7DvGLFkWwgw6lyaGV0xZEgZWwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiDDqXMgIgorCisjOiBmZGlzay9mZGlzay5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogVGhlIHNpemUgb2YgdGhpcyBkaXNrIGlzICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJET1MgcGFydGl0aW9uIHRhYmxlIGZvcm1hdCBjYW4gbm90IGJlIHVzZWQgb24gZHJpdmVzIGZvciB2b2x1bWVzXG4iCisibGFyZ2VyIHRoYW4gKCVsbHUgYnl0ZXMpIGZvciAlZC1ieXRlIHNlY3RvcnMuIFVzZSBwYXJ0ZWQoMSkgYW5kIEdVSUQgXG4iCisicGFydGl0aW9uIHRhYmxlIGZvcm1hdCAoR1BUKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW5cbiIKKyJ0aGUgcGh5c2ljYWwgc2VjdG9yIHNpemUuIEFsaWduaW5nIHRvIGEgcGh5c2ljYWwgc2VjdG9yIChvciBvcHRpbWFsXG4iCisiSS9PKSBzaXplIGJvdW5kYXJ5IGlzIHJlY29tbWVuZGVkLCBvciBwZXJmb3JtYW5jZSBtYXkgYmUgaW1wYWN0ZWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0b1xuIgorIiAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0b1xuIgorIiAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiSGliw6FzIGVsdG9sw6FzIGF6IGVsc8WRZGxlZ2VzIGtpdGVyamVzenRldHQgcGFydMOtY2nDs25cbiIKKworIzogZmRpc2svZmRpc2suYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IG9taXR0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgIyVkLlxuIgorIlRoZXkgd2lsbCBiZSBkZWxldGVkIGlmIHlvdSBzYXZlIHRoaXMgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICIiCisiRmlneWVsbWV6dGV0w6lzOiBwYXJ0w61jacOzayBrZXLDvGxuZWsga2loYWd5w6FzcmEgYSh6KSAlZC4gdXTDoW4uXG4iCisiRXplayB0w7ZybMOpc3JlIGtlcsO8bG5layBhIHBhcnTDrWNpw7NzIHTDoWJsYSBtZW50w6lzZWtvci5cbiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJGaWd5ZWxtZXp0ZXTDqXM6IGbDtmzDtnNsZWdlcyBsaW5rbXV0YXTDsyBhKHopICVkIHBhcnTDrWNpw7NzIHTDoWJsw6FiYW5cbiIKKworIzogZmRpc2svZmRpc2suYzo4NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaWdub3JpbmcgZXh0cmEgZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiIgorIkZpZ3llbG1lenRldMOpczogZsO2bMO2c2xlZ2VzIGFkYXRvayBtYXJhZG5hayBmaWd5ZWxtZW4ga8OtdsO8bCBhKHopICVkIHBhcnTDrWNpw7NzICIKKyJ0w6FibMOhYmFuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvbWl0dGluZyBlbXB0eSBwYXJ0aXRpb24gKCVkKVxuIgorbXNnc3RyICJGaWd5ZWxtZXp0ZXTDqXM6IMO8cmVzIHBhcnTDrWNpw7NcbiIKKworIzogZmRpc2svZmRpc2suYzo5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBpZGVudGlmaWVyOiAweCUwOHhcbiIKK21zZ3N0ciAiTGVtZXphem9ub3PDrXTDszogMHglMDh4XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBkaXNrIGlkZW50aWZpZXIgKGN1cnJlbnQgMHglMDh4KTogIgorbXNnc3RyICLDmmogbGVtZXphem9ub3PDrXTDsyAoamVsZW5sZWcgMHglMDh4KTogIgorCisjOiBmZGlzay9mZGlzay5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgRE9TIGRpc2tsYWJlbCB3aXRoIGRpc2sgaWRlbnRpZmllciAweCUwOHguXG4iCisiQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLlxuIgorIkFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJFZ3kgw7pqIERPUyBsZW1lemPDrW1rZSBrZXLDvGwgbMOpdHJlaG96w6FzcmEgMHglMDh4IGxlbWV6YXpvbm9zw610w7N2YWwuXG4iCisiQSB2w6FsdG96w6Fzb2sgYSBtZW3Ds3Jpw6FiYW4gbWFyYWRuYWsgYW3DrWcga2kgbmVtIMOtcmphIGF6b2thdC5cbiIKKyJFenV0w6FuIHRlcm3DqXN6ZXRlc2VuIGEga29yw6FiYmkgdGFydGFsb20gbmVtIGxlc3ogdmlzc3phw6FsbMOtdGhhdMOzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAiTWVnamVneXrDqXM6IGEgc3pla3Rvcm3DqXJldDogJWQgKMOpcyBuZW0gJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJOZW0gbGVzeiBrw6lwZXMgZXJyZSBhIHBhcnTDrWNpw7NzIHTDoWJsw6FyYSDDrXJuaS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKyJFeiBhIGxlbWV6IERPUyDDqXMgQlNEIG3Ds2RiYW4gaXMgbcWxa8O2ZGhldC5cbiIKKyJIYXN6bsOhbGphIGEg4oCeYuKAnSBwYXJhbmNzb3QgYSBCU0QgbcOzZGhvei5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisiQXogZXN6a8O2eiBuZW0gdGFydGFsbWF6IMOpcnbDqW55ZXMgRE9TIHBhcnTDrWNpw7NzIHTDoWJsw6F0LCBzZW0gU3VuLCBTR0kgdmFneSBPU0YgIgorImxlbWV6Y8OtbWvDqXRcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgIkludGVybmFsIGVycm9yXG4iCittc2dzdHIgIkJlbHPFkSBoaWJhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI4MworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmluZyBleHRyYSBleHRlbmRlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiQSh6KSAlZC4gZsO2bMO2c2xlZ2VzIGtpdGVyamVzenRldHQgcGFydMOtY2nDsyBmaWd5ZWxtZW4ga8OtdsO8bCBtYXJhZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGludmFsaWQgZmxhZyAweCUwNHggb2YgcGFydGl0aW9uIHRhYmxlICVkIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHciCisiKHJpdGUpXG4iCittc2dzdHIgIiIKKyJGaWd5ZWxtZXp0ZXTDqXM6IGEgMHglMDR4IGplbHrFkSDDqXJ2w6lueXRlbGVuIGEoeikgJWQuIHBhcnTDrWNpw7NzIHTDoWJsw6FuLCBleiBhICIKKyJracOtcsOhcyB1dMOhbiBqYXbDrXTDoXNyYSBrZXLDvGxcbiIKKworIzogZmRpc2svZmRpc2suYzoxMzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJnb3QgRU9GIHRocmljZSAtIGV4aXRpbmcuLlxuIgorbXNnc3RyICIiCisiXG4iCisiSMOhcm9tIEVPRiDDqXJrZXpldHQgLS0ga2lsw6lww6lzLi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMzYwCittc2dpZCAiSGV4IGNvZGUgKHR5cGUgTCB0byBsaXN0IGNvZGVzKTogIgorbXNnc3RyICJIZXhhIGvDs2QgKGEga8OzZG9rIGxpc3TDoWphIGF6IEwgbWVnbnlvbcOhc8OhdmFsIMOpcmhldMWRIGVsKTogIgorCisjOiBmZGlzay9mZGlzay5jOjEzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCV1LSV1LCBkZWZhdWx0ICV1KTogIgorbXNnc3RyICIlcyAoJXUtJXUsIGFsYXDDqXJ0ZWxtZXpldHRlbiAldSk6ICIKKworIzogZmRpc2svZmRpc2suYzoxNDYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuc3VwcG9ydGVkIHN1ZmZpeDogJyVzJy5cbiIKK21zZ3N0ciAiTmVtIHTDoW1vZ2F0b3R0IHV0w7N0YWc6IOKAniVz4oCdLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisiVMOhbW9nYXRvdHQ6IDEwXk46IEtCIChLaWxvQnl0ZSksIE1CIChNZWdhQnl0ZSksIEdCIChHaWdhQnl0ZSlcbiIKKyIgICAgICAgICAgICAyXk46IEsgIChLaWJpQnl0ZSksIE0gIChNZWJpQnl0ZSksIEcgIChHaWJpQnl0ZSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGRlZmF1bHQgdmFsdWUgJXVcbiIKK21zZ3N0ciAiQXogYWxhcMOpcnRlbG1lemV0dCAldSDDqXJ0w6lrIGtlcsO8bCBmZWxoYXN6bsOhbMOhc3JhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIkF6IMOpcnTDqWsga8OtdsO8bCBlc2lrIGEgdGFydG9tw6FueW9uLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1MTgKK21zZ2lkICJQYXJ0aXRpb24gbnVtYmVyIgorbXNnc3RyICJQYXJ0w61jacOzc3rDoW0iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBhKHopICVkIHBhcnTDrWNpw7MgdMOtcHVzYSDDvHJlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICIlZC4gcGFydMOtY2nDsyBraXbDoWxhc3p0dmFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiTcOpZyBuaW5jcyBtZWdhZHZhIHBhcnTDrWNpw7MhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgcHJpbWFyeSBwYXJ0aXRpb25zIGhhdmUgYmVlbiBkZWZpbmVkIGFscmVhZHkhXG4iCittc2dzdHIgIk3DoXIgbWluZGVuIGVsc8WRZGxlZ2VzIHBhcnTDrWNpw7MgbWVnYWTDoXNyYSBrZXLDvGx0IVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJjeWxpbmRlciIKK21zZ3N0ciAiY2lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgInNlY3RvciIKK21zZ3N0ciAic3pla3RvciIKKworIzogZmRpc2svZmRpc2suYzoxNTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGRpc3BsYXkvZW50cnkgdW5pdHMgdG8gJXNcbiIKK21zZ3N0ciAiQSBtZWdqZWxlbsOtdMOpc2kvYmVqZWd5esOpc2VneXPDqWdlayBtw7Nkb3PDrXR2YTogJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiRklHWUVMTUVaVEVUw4lTOiBBKHopICVkIHBhcnTDrWNpw7MgZWd5IGtpdGVyamVzenRldHQgcGFydMOtY2nDs1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIKK21zZ3N0ciAiQSBET1Mga29tcGF0aWJpbGl0w6FzaSBqZWx6xZEgYmUgdmFuIMOhbGzDrXR2YVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBub3Qgc2V0XG4iCittc2dzdHIgIkEgRE9TIGtvbXBhdGliaWxpdMOhc2kgamVsesWRIG5pbmNzIGJlw6FsbMOtdHZhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyMworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICJBKHopICVkLiBwYXJ0w61jacOzIG3DqWcgbmVtIGzDqXRlemlrIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlR5cGUgMCBtZWFucyBmcmVlIHNwYWNlIHRvIG1hbnkgc3lzdGVtc1xuIgorIihidXQgbm90IHRvIExpbnV4KS4gSGF2aW5nIHBhcnRpdGlvbnMgb2ZcbiIKKyJ0eXBlIDAgaXMgcHJvYmFibHkgdW53aXNlLiBZb3UgY2FuIGRlbGV0ZVxuIgorImEgcGFydGl0aW9uIHVzaW5nIHRoZSBgZCcgY29tbWFuZC5cbiIKK21zZ3N0ciAiIgorIkEgMCB0w61wdXMgbGVndMO2YmIgcmVuZHN6ZXJlbiDDvHJlcyBoZWx5ZXQgamVsZW50XG4iCisiKGRlIG5lbSBMaW51eG9uKS4gMCB0w61wdXPDuiBwYXJ0w61jacOzdCBoYWd5bmkgbmVtXG4iCisib2tvcyBkb2xvZy4gQSBwYXJ0w61jacOzIGEgJ2QnIHBhcmFuY2NzYWwgdMO2csO2bGhldMWRXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTczNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGNhbm5vdCBjaGFuZ2UgYSBwYXJ0aXRpb24gaW50byBhbiBleHRlbmRlZCBvbmUgb3IgdmljZSB2ZXJzYVxuIgorIkRlbGV0ZSBpdCBmaXJzdC5cbiIKK21zZ3N0ciAiIgorIkEgcGFydMOtY2nDs3QgbmVtIHbDoWx0b3p0YXRoYXTDsyBraXRlcmplc3p0ZXR0IHBhcnTDrWNpw7N2w6EgdmFneSB2aXNzemFcbiIKKyJFbMWRc3rDtnIgdMO2csO2bGplIGxlLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiRm9udG9samEgbWVnIGEgMy1hcyBwYXJ0w61jacOzIGVnw6lzeiBsZW1lemvDqW50ICg1KSBoYWd5w6Fzw6F0XG4iCisibWl2ZWwgYSBTdW5PUy9Tb2xhcmlzIGVycmUgc3rDoW3DrXQgw6lzIGEgTGludXggaXMga2V6ZWxpLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDkgYXMgdm9sdW1lIGhlYWRlciAoMCksXG4iCisiYW5kIHBhcnRpdGlvbiAxMSBhcyBlbnRpcmUgdm9sdW1lICg2KSwgYXMgSVJJWCBleHBlY3RzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiRm9udG9samEgbWVnIGEgOS1lcyBwYXJ0w61jacOzIGvDtnRldGZlamzDqWNrw6ludCAoMCkgw6lzIGEgMTEtZXNcbiIKKyJwYXJ0w61jacOzIHRlbGplcyBrw7Z0ZXRrw6ludCAoNikgdmFsw7MgbWVnaGFnecOhc8OhdCwgYWhvZ3lhbiBheiBJUklYIGV6dCAiCisiZWx2w6FyamEuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc2OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2VkIHN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCB0byAleCAoJXMpXG4iCittc2dzdHIgIkEoeikgJWQuIHBhcnTDrWNpw7MgcmVuZHN6ZXJ0w61wdXNhIG3Ds2Rvc8OtdHZhIGEga8O2dmV0a2V6xZFyZTogJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICJBKHopICVkLiBwYXJ0w61jacOzIHJlbmRzemVydMOtcHVzYSB2w6FsdG96YXRsYW46ICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgYmVnaW5uaW5ncyAobm9uLUxpbnV4Pyk6XG4iCittc2dzdHIgIkEoeikgJWQuIHBhcnTDrWNpw7NuIGVsdMOpciBhIGZpemlrYWkgw6lzIGxvZ2lrYWkga2V6ZGV0IChuZW0gTGludXg/KTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI5IGZkaXNrL2ZkaXNrLmM6MTgzNyBmZGlzay9mZGlzay5jOjE4NDYgZmRpc2svZmRpc2suYzoxODU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorbXNnc3RyICIgICAgIGZpemlrYWk9KCVkLCAlZCwgJWQpICIKKworIzogZmRpc2svZmRpc2suYzoxODMwIGZkaXNrL2ZkaXNrLmM6MTgzOAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpY2FsPSglZCwgJWQsICVkKVxuIgorbXNnc3RyICJsb2dpa2FpPSglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBlbmRpbmdzOlxuIgorbXNnc3RyICJBKHopICVkLiBwYXJ0w61jacOzbiBlbHTDqXIgYSBmaXppa2FpIMOpcyBsb2dpa2FpIHbDqWc6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCittc2dzdHIgIkEoeikgJWkuIHBhcnTDrWNpw7MgbmVtIGNpbGxpbmRlcmhhdMOhcm9uIGtlemTFkWRpazpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAxKVxuIgorbXNnc3RyICJhIHbDoXJ0IMOpcnTDqWs6ICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJBKHopICVpLiBwYXJ0w61jacOzIG5lbSBjaWxpbmRlcmhhdMOhcm9uIHbDqWd6xZFkaWsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImEgdsOhcnQgw6lydMOpazogKCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIHBoeXNpY2FsIHNlY3RvciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiQSh6KSAlaS4gcGFydMOtY2nDsyBuZW0gY2lsbGluZGVyaGF0w6Fyb24ga2V6ZMWRZGlrOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiJXMgbGVtZXo6ICVsZCBNQiwgJWxsZCkgYsOhanRcbiIKKworIzogZmRpc2svZmRpc2suYzoxODgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQuJWxkIEdCLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlcyBsZW1lejogJWxkLiVsZCBHQiwgJWxsZCBiw6FqdFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgaGVhZHMsICVsbHUgc2VjdG9ycy90cmFjaywgJWQgY3lsaW5kZXJzIgorbXNnc3RyICIlZCBmZWosICVsbHUgc3pla3RvciwgJWQgY2lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NworIywgYy1mb3JtYXQKK21zZ2lkICIsIHRvdGFsICVsbHUgc2VjdG9ycyIKK21zZ3N0ciAiLCDDtnNzemVzZW4gJWxsdSBzemVrdG9yIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiRWd5c8OpZzogJXMgJWQgKiAlZCA9ICVkIGLDoWp0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6ICV1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICJoaWLDoXMgaW5vZGUgbcOpcmV0IgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIk5pbmNzIHRlZW5kxZEuIEEgc29ycmVuZCBtw6FyIGhlbHllcy5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEb25lLlxuIgorbXNnc3RyICIiCisiS8Opc3pcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRvZXNuJ3QgbG9vayBsaWtlIGEgcGFydGl0aW9uIHRhYmxlXG4iCisiUHJvYmFibHkgeW91IHNlbGVjdGVkIHRoZSB3cm9uZyBkZXZpY2UuXG4iCisiXG4iCittc2dzdHIgIiIKKyJFeiBuZW0gdMWxbmlrIHBhcnTDrWNpw7NzIHTDoWJsw6FuYWtcbiIKKyJWYWzDs3N6w61uxbFsZWcgbmVtIGEgbWVnZmVsZWzFkSBlc3prw7Z6dCB2w6FsYXN6dG90dGEga2kuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgSW5kw610w6FzICAgRWxlamUgICAgICAgICBWw6lnZSAgICAgIEJsb2trb2sgIEF6ICBSZW5kc3plclxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIxMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk4Cittc2dpZCAiRGV2aWNlIgorbXNnc3RyICJFc3prw7Z6IgorCisjOiBmZGlzay9mZGlzay5jOjIxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIgorbXNnc3RyICIiCisiXG4iCisiQSBwYXJ0w61jacOzcyB0w6FibGEgYmVqZWd5esOpc2VpIG5lbSBhIGxlbWV6ZW4gdGFsw6FsaGF0w7Mgc29ycmVuZGJlbiB2YW5uYWtcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVzIGxlbWV6OiAlZCBmZWosICVsbHUgc3pla3RvciwgJWQgY2lsaW5kZXJcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICJTesOhbSBBRiAgRmVqIFN6ZWsgIENpbCAgRmVqIFN6ZWsgIENpbCAgIEtlemRldCAgTcOpcmV0IEF6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBhKHopICVkLiBwYXJ0w61jacOzIGEgMC4gc3pla3RvcnQgaXMgdGFydGFsbWF6emFcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogaGVhZCAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICIlZC4gcGFydMOtY2nDszogYSh6KSAlZC4gZmVqIG5hZ3lvYmIsIG1pbnQgYSBtYXhpbcOhbGlzICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHNlY3RvciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIiVkLiBwYXJ0w61jacOzOiBhKHopICVkLiBzemVrdG9yIG5hZ3lvYmIsIG1pbnQgYSBtYXhpbcOhbGlzICVsbHVcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbnMgJWQ6IGN5bGluZGVyICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIiVkLiBwYXJ0w61jacOzOiBhKHopICVkLiBjaWxpbmRlciBuYWd5b2JiLCBtaW50IGEgbWF4aW3DoWxpcyAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBwcmV2aW91cyBzZWN0b3JzICVkIGRpc2FncmVlcyB3aXRoIHRvdGFsICVkXG4iCittc2dzdHIgIiVkLiBwYXJ0w61jacOzOiBheiBlbMWResWRICVkIHN6ZWt0b3IgZWx0w6lyIGEgdGVsamVzICVkIMOpcnTDqWt0xZFsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBheiBhZGF0b2sga2V6ZGV0ZSBoaWLDoXMgYSh6KSAlZCBwYXJ0w61jacOzblxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIG92ZXJsYXBzIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBhKHopICVkLiBwYXJ0w61jacOzIMOhdGZlZGkgYSh6KSAlZCBwYXJ0w61jacOzdC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBpcyBlbXB0eVxuIgorbXNnc3RyICJGaWd5ZWxtZXp0ZXTDqXM6IGEoeikgJWQuIHBhcnTDrWNpw7Mgw7xyZXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiIgorIkEoeikgJWQuIGxvZ2lrYWkgcGFydMOtY2nDsyBuaW5jcyB0ZWxqZXNlbiBiZWplZ3llenZlIGEoeikgJWQuIHBhcnTDrWNpw7NuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICIiCisiQXogw7Zzc3plc2VuIGxlZm9nbGFsdCBzemVrdG9yb2sgc3rDoW1hICglbGQpIG5hZ3lvYmIsIG1pbnQgYSBtYXhpbcOhbGlzICVsbGRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSZW1haW5pbmcgJWxsZCB1bmFsbG9jYXRlZCAlZC1ieXRlIHNlY3RvcnNcbiIKK21zZ3N0ciAiJWxsZCBzemVrdG9yIG5pbmNzIGxlZm9nbGFsdmFcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzAxIGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxMQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlIGl0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iCittc2dzdHIgIiIKKyJBKHopICVkLiBwYXJ0w61jacOzIG3DoXIgbMOpdGV6aWsuIFTDtnLDtmxqZSBsZSBheiBpc23DqXRlbHQgaG96esOhYWTDoXMgZWzFkXR0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVsbHUgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAiQSh6KSAlbGx1LiBzemVrdG9yIG3DoXIgbGUgdmFuIGZvZ2xhbHZhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBmcmVlIHNlY3RvcnMgYXZhaWxhYmxlXG4iCittc2dzdHIgIk5lbSDDqXJoZXTFkSBlbCBzemFiYWQgc3pla3RvclxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlMSRzLCArJTIkcyBvciArc2l6ZXtLLE0sR30iCittc2dzdHIgIlV0b2xzw7MgJTEkcywgKyUyJHMgdmFneSArc2l6ZXtLLE0sR30iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBBSVggZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0RWxuw6l6w6lzdCAtIGV6IGF6IGZkaXNrIG5lbSBrZXplbGkgYXogQUlYIGxlbWV6Y8OtbWvDqWtldC5cbiIKKyJcdEhhIERPUyB0w61wdXPDuiBwYXJ0w61jacOza2F0IGFrYXIgaG96esOhYWRuaSwgYWtrb3IgZWzFkWJiXG4iCisiXHRob3p6b24gbMOpdHJlIGVneSDDvHJlcyBET1MgcGFydMOtY2nDs3MgdMOhYmzDoXQgKGhhc3puw6FsamEgYXogJ28nLXQpXG4iCisiXHRGSUdZRUxNRVpURVTDiVM6IEV6IG1lZ3NlbW1pc8OtdGkgYSBsZW1leiBqZWxlbmxlZ2kgdGVsamVzIHRhcnRhbG3DoXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0RWxuw6l6w6lzdCAtIGV6IGF6IGZkaXNrIG5lbSBrZXplbGkgYSBNYWMgbGVtZXpjw61ta8Opa2V0LlxuIgorIlx0SGEgRE9TIHTDrXB1c8O6IHBhcnTDrWNpw7NrYXQgYWthciBob3p6w6FhZG5pLCBha2tvciBlbMWRYmJcbiIKKyJcdGhvenpvbiBsw6l0cmUgZWd5IMO8cmVzIERPUyBwYXJ0w61jacOzcyB0w6FibMOhdCAoaGFzem7DoWxqYSBheiAnbyctdClcbiIKKyJcdEZJR1lFTE1FWlRFVMOJUzogRXogbWVnc2VtbWlzw610aSBhIGxlbWV6IGplbGVubGVnaSB0ZWxqZXMgdGFydGFsbcOhdC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICIiCisiRWzFkXN6w7ZyIHTDtnLDtmxqw7ZuIG7DqWjDoW55IHBhcnTDrWNpw7N0IMOpcyB2ZWd5ZW4gZmVsIGVneSBraXRlcmplc3p0ZXR0IHBhcnTDrWNpw7N0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgbG9naWNhbCBwYXJ0aXRpb25zIGFyZSBpbiB1c2VcbiIKK21zZ3N0ciAiQXogw7Zzc3plcyBsb2dpa2FpIHBhcnTDrWNpw7MgaGFzem7DoWxhdGJhbiB2YW5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIkVsc8WRZGxlZ2VzIHBhcnTDrWNpw7MgaG96esOhYWTDoXNhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29tbWFuZCBhY3Rpb25cbiIKKyIgICAlc1xuIgorIiAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KVxuIgorbXNnc3RyICIiCisiUGFyYW5jcyBNxbF2ZWxldFxuIgorIiAlc1xuIgorIiAgIHAgICBlbHPFkWRsZWdlcyBwYXJ0w61jacOzICgxLTQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIgorbXNnc3RyICJsICAgbG9naWthaSAoNSB2YWd5IHTDtmJiKSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAga2l0ZXJqZXN6dGV0dCIKKworIzogZmRpc2svZmRpc2suYzoyNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgcGFydGl0aW9uIG51bWJlciBmb3IgdHlwZSBgJWMnXG4iCittc2dzdHIgIsOJcnbDqW55dGVsZW4gcGFydMOtY2nDs3N6w6FtIGEoeikg4oCeJWPigJ0gdMOtcHVzaG96XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisiQSBwYXJ0w61jacOzcyB0w6FibGEgbcOzZG9zw610dmEhXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgImlvY3RsKCkgaMOtdsOhc2EgYSBwYXJ0w61jacOzcyB0w6FibGEgw7pqcmFvbHZhc8Ohc8OhaG96LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorIlxuIgorIkZJR1lFTE1FWlRFVMOJUzogQSBwYXJ0w61jacOzcyB0w6FibGEgw7pqcmFvbHZhc8Ohc2EgbWVnaGnDunN1bHQgYSBcbiIKKyJrw7Z2ZXRrZXrFkSBoaWLDoXZhbCAlZDogJXMuIEEgcmVuZHN6ZXJtYWcgbcOpZyBtaW5kaWcgYSByw6lnaXQgaGFzem7DoWxqYS5cbiIKKyJBeiDDumogdMOhYmxhIGEga8O2dmV0a2V6xZEgw7pqcmFpbmTDrXTDoXMgdXTDoW4gbMOpcCDDqXJ2w6lueWJlLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55IERPUyA2LnhcbiIKKyJwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBmZGlzayBtYW51YWwgcGFnZSBmb3IgYWRkaXRpb25hbFxuIgorImluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiRklHWUVMTUVaVEVUw4lTOiBIYSBET1MgNi54IHBhcnTDrWNpw7N0IGhvem90dCBsw6l0cmUgdmFneSBtw7Nkb3PDrXRvdHRcbiIKKyJha2tvciB0b3bDoWJiaSBpbmZvcm3DoWNpw7Nrw6lydCBvbHZhc3NhIGVsIGEgY2ZkaXNrIGvDqXppa8O2bnl2b2xkYWzDoXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRXJyb3IgY2xvc2luZyBmaWxlXG4iCittc2dzdHIgIiIKKyJcbiIKKyJIaWJhIGEgZsOhamwgbGV6w6Fyw6FzYWtvclxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiQWRhdG9rIGtpw61yw6FzYSBhIGxlbWV6ZWtyZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgbm8gZGF0YSBhcmVhXG4iCittc2dzdHIgIkEoeikgJWQuIHBhcnTDrWNpw7NuYWsgbmluY3MgYWRhdHRlcsO8bGV0ZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTYKK21zZ2lkICJOZXcgYmVnaW5uaW5nIG9mIGRhdGEiCittc2dzdHIgIkF6IGFkYXRvayDDumoga2V6ZGV0ZSIKKworIzogZmRpc2svZmRpc2suYzoyNjcyCittc2dpZCAiRXhwZXJ0IGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIlN6YWvDqXJ0xZFpIHBhcmFuY3MgKG0gPSBzw7pnw7MpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY4NQorbXNnaWQgIk51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIkNpbGluZGVyZWsgc3rDoW1hIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIkZlamVrIHN6w6FtYSIKKworIzogZmRpc2svZmRpc2suYzoyNzM3Cittc2dpZCAiTnVtYmVyIG9mIHNlY3RvcnMiCittc2dzdHIgIlN6ZWt0b3JvayBzesOhbWEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBzZXR0aW5nIHNlY3RvciBvZmZzZXQgZm9yIERPUyBjb21wYXRpYmxpdHlcbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBhIHN6ZWt0b3JlbHRvbMOhcyBiZcOhbGzDrXTDoXNhIERPUy1rb21wYXRpYmlsaXRpcyBtw7NkcmFcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBmZGlzayBkb2Vzbid0ICIKKyJzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJGSUdZRUxNRVpURVTDiVM6IEEoeikg4oCeJXPigJ0gZXN6a8O2esO2biBHUFQgKEdVSUQgcGFydMOtY2nDs3MgdMOhYmxhKSB0YWzDoWxoYXTDsyEgQXogIgorImZkaXNrIHNlZ8OpZHByb2dyYW0gbmVtIHTDoW1vZ2F0amEgYSBHUFQtdC4gSGFzem7DoWxqYSBhIEdOVSBwYXJ0ZWQgcHJvZ3JhbW90LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAiQSh6KSAlcyBsZW1leiBuZW0gdGFydGFsbWF6IMOpcnbDqW55ZXMgcGFydMOtY2nDs3MgdMOhYmzDoXRcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIkEoeikg4oCeJXPigJ0gbmVtIG55aXRoYXTDsyBtZWdcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiYSh6KSDigJ4lc+KAnSBuZW0gbnlpdGhhdMOzIG1lZ1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWM6IHVua25vd24gY29tbWFuZFxuIgorbXNnc3RyICIlYzogaXNtZXJldGxlbiBwYXJhbmNzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIGtlcm5lbCBmaW5kcyB0aGUgc2VjdG9yIHNpemUgaXRzZWxmIC0gLWIgb3B0aW9uIGlnbm9yZWRcbiIKK21zZ3N0ciAiIgorIkV6IGEgcmVuZHN6ZXJtYWcgYSBzemVrdG9ybcOpcmV0ZXQgw7Zuw6FsbMOzYW4gw6FsbGFww610amEgbWVnIC0gYSAtYiBrYXBjc29sw7MgIgorImZpZ3llbG1lbiBrw612w7xsIG1hcmFkdFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHRoZSAtYiAoc2V0IHNlY3RvciBzaXplKSBvcHRpb24gc2hvdWxkIGJlIHVzZWQgd2l0aCBvbmUgc3BlY2lmaWVkICIKKyJkZXZpY2VcbiIKK21zZ3N0ciAiIgorIkZpZ3llbG1lenRldMOpczogYSAtYiAoc3pla3Rvcm3DqXJldCBiZcOhbGzDrXTDoXNhKSBrYXBjc29sw7Nob3ogbWVnIGtlbGwgYWRuaSBlZ3kgIgorImVzemvDtnp0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBhbiBPU0YvMSBkaXNrbGFiZWwgb24gJXMsIGVudGVyaW5nIGRpc2tsYWJlbCBtb2RlLlxuIgorbXNnc3RyICIiCisiT1NGLzEgbGVtZXpjw61ta2UgdGFsw6FsaGF0w7MgYSh6KSAlcyBlc3prw7Z6w7ZuLCBsZW1lemPDrW1rZSBtw7NkcmEgdsOhbHTDoXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIlBhcmFuY3MgKG0gPSBzw7pnw7MpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiQXogYWt0dcOhbGlzIGluZMOtdMOzZsOhamw6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJBZGphIG1lZyBheiDDumogaW5kw610w7Nmw6FqbCBuZXbDqXQ6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiQXogaW5kw610w7Nmw6FqbCB2w6FsdG96YXRsYW5cbiIKKworIzogZmRpc2svZmRpc2suYzozMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdFNvcnJ5LCBubyBleHBlcnRzIG1lbnUgZm9yIFNHSSBwYXJ0aXRpb24gdGFibGVzIGF2YWlsYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RWxuw6l6w6lzdCwgbmluY3Mgc3pha8OpcnTFkWkgbWVuw7wgYXogU0dJIHBhcnTDrWNpw7NzIHTDoWJsw6FraG96LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIE1hYyBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IGZkaXNrKDEpIGNhbm5vdCBoYW5kbGUgdGhlc2UgZGlza3MuXG4iCisiXHRVc2UgZWl0aGVyIHBkaXNrIG9yIHBhcnRlZCB0byBtb2RpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyJcdE5ldmVydGhlbGVzcyBzb21lIGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0w4lydsOpbnllcyBNYWMgY8OtbWtlIHZhbiBhIGxlbWV6ZW4uXG4iCisiXHRTYWpub3MgYSBmZGlzaygxKSBqZWxlbmxlZyBuZW0gdHVkamEgZXpla2V0IGEgbGVtZXpla2V0XG4iCisiXHRrZXplbG5pLiBBIHBhcnTDrWNpw7NzIHTDoWJsYSBtw7Nkb3PDrXTDoXPDoWhveiBoYXN6bsOhbGphIGEgcGRpc2tcbiIKKyJcdHZhZ3kgcGFydGVkIHByb2dyYW1vdC4gRW5uZWsgZWxsZW7DqXJlIG7DqWjDoW55IHRhbsOhY3M6XG4iCisiXHQxLiBBeiBmZGlzayBtZWdzZW1taXPDrXRpIGEgdGFydGFsbcOhdCBheiDDrXLDoXMgc29yw6FuXG4iCisiXHQyLiBHecWResWRZGrDtm4gbWVnIGFycsOzbCBob2d5IGEgbGVtZXogTkVNIMOpbMWRIHLDqXN6ZSBlZ3lcbiIKKyJcdCAgICBrw7Z0ZXRjc29wb3J0bmFrLiAoRWd5w6lia8OpbnQgbGV0w7Zyw7ZsaGV0aSBhXG4iCisiXHQgICAgdMO2YmJpIG5lbSB0w7xrcsO2esO2dHQgbGVtZXp0IGlzLilcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgxCittc2dpZCAiU0dJIHZvbGhkciIKK21zZ3N0ciAiU0dJIHZvbGhkciIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgyCittc2dpZCAiU0dJIHRya3JlcGwiCittc2dzdHIgIlNHSSB0cmtyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODMKK21zZ2lkICJTR0kgc2VjcmVwbCIKK21zZ3N0ciAiU0dJIHNlY3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NAorbXNnaWQgIlNHSSByYXciCittc2dzdHIgIlNHSSBueWVycyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg1Cittc2dpZCAiU0dJIGJzZCIKK21zZ3N0ciAiU0dJIGJzZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg2Cittc2dpZCAiU0dJIHN5c3YiCittc2dzdHIgIlNHSSBzeXN2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODcKK21zZ2lkICJTR0kgdm9sdW1lIgorbXNnc3RyICJTR0kga8O2dGV0IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODgKK21zZ2lkICJTR0kgZWZzIgorbXNnc3RyICJTR0kgZWZzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODkKK21zZ2lkICJTR0kgbHZvbCIKK21zZ3N0ciAiU0dJIGx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MAorbXNnaWQgIlNHSSBybHZvbCIKK21zZ3N0ciAiU0dJIHJsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTEKK21zZ2lkICJTR0kgeGZzIgorbXNnc3RyICJTR0kgeGZzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTIKK21zZ2lkICJTR0kgeGZzbG9nIgorbXNnc3RyICJTR0kgeGZzbG9nIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTMKK21zZ2lkICJTR0kgeGx2IgorbXNnc3RyICJTR0kgeGx2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTQKK21zZ2lkICJTR0kgeHZtIgorbXNnc3RyICJTR0kgeHZtIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTUgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwCittc2dpZCAiTGludXggc3dhcCIKK21zZ3N0ciAiTGludXggbGFwb3rDsyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk2IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MQorbXNnaWQgIkxpbnV4IG5hdGl2ZSIKK21zZ3N0ciAiTGludXggbmF0w612IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJBIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHN6ZXJpbnQgYSBjw61ta2UgbmVtIGxlaGV0IDUxMiBiw6FqdG7DoWwgaG9zc3phYmJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzZ2kgZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iCittc2dzdHIgIkF6IHNnaSBsZW1lemPDrW1rZSBlbGxlbsWRcnrFkcO2c3N6ZWdlIGhpYsOhcy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE4OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlcyBsZW1leiAoU0dJIGxlbWV6Y8OtbWtlKTogJWQgZmVqLCAlbGx1IHN6ZWt0b3JcbiIKKyIlZCBjaWxpbmRlciwgJWQgZml6aWthaSBjaWxpbmRlclxuIgorIiVkIGV4dHJhIHN6ZWt0L2NpbCwgw6F0cmVuZGV6w6lzOiAlZDoxXG4iCisiJXNcbiIKKyJFZ3lzw6lnID0gJXMsIMO2c3N6ZXNlbiAlZCAqICVkIGLDoWp0XG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlcyBsZW1leiAoU0dJIGxlbWV6Y8OtbWtlKTogJWQgZmVqLCAlbGx1IHN6ZWt0b3IsICVkIGNpbGluZGVyXG4iCisiRWd5c8OpZyA9ICVzLCDDtnNzemVzZW4gJWQgKiAlZCBiw6FqdFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiLS0tLS0gcGFydMOtY2nDs2sgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgICBLZXpkZXQgICAgICBWw6lnZSAgU3pla3Rvcm9rIEF6ICBSZW5kc3plclxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSBJbmTDrXTDoXNpIGluZm9ybcOhY2nDs2sgLS0tLS1cbiIKKyJJbmTDrXTDs2bDoWpsOiAlc1xuIgorIi0tLS0tIEvDtm55dnTDoXJiZWplZ3l6w6lzZWsgLS0tLS1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiUyZDogJS0xMHMgc3pla3RvcjogJTV1IG3DqXJldDogJTh1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiw4lydsOpbnl0ZWxlbiBpbmTDrXTDs2bDoWpsXG4iCisiXHRBeiBpbmTDrXTDs2bDoWpsbmFrIGFic3pvbMO6dCwgbmVtIMO8cmVzIMO6dHZvbmFsbsOpdm5layBrZWxsIGxlbm5pZSxcbiIKKyJcdHDDqWxkw6F1bCDigJ4vdW5peOKAnSB2YWd5IOKAni91bml4LnNhdmXigJ0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0TmFtZSBvZiBCb290ZmlsZSB0b28gbG9uZzogIDE2IGJ5dGVzIG1heGltdW0uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEF6IGluZMOtdMOzZsOhamwgbmV2ZSB0w7psIGhvc3N6w7o6IE1heGltdW0gMTYgYsOhanQgbGVoZXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRBeiBpbmTDrXTDs2bDoWpsbmFrIHRlbGplcyBrw6lwesOpc8WxIMO6dHZvbmFsbsOpdnZlbCBrZWxsIHJlbmRlbGtlem5pZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMxMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCZSBhd2FyZSwgdGhhdCB0aGUgYm9vdGZpbGUgaXMgbm90IGNoZWNrZWQgZm9yIGV4aXN0ZW5jZS5cbiIKKyJcdFNHSSdzIGRlZmF1bHQgaXMgXCIvdW5peFwiIGFuZCBmb3IgYmFja3VwIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHROZSBmZWxlZGplLCBob2d5IGF6IGluZMOtdMOzZsOhamwgbMOpdGV6w6lzZSBuZW0ga2Vyw7xsdCBlbGxlbsWRcnrDqXNyZVxuIgorIlx0QXogU0dJIGFsYXDDqXJ0ZWxtZXrDqXNlIGEg4oCeL3VuaXjigJ0gw6lzIGEgYml6dG9uc8OhZ2kgbWVudMOpcyBhIOKAni91bml4LnNhdmXigJ0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgaXMgY2hhbmdlZCB0byBcIiVzXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEF6IGluZMOtdMOzZsOhamwgYSBrw7Z2ZXRrZXrFkXJlIG3Ds2Rvc8OtdHZhOiDigJ4lc+KAnS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJNb3JlIHRoYW4gb25lIGVudGlyZSBkaXNrIGVudHJ5IHByZXNlbnQuXG4iCittc2dzdHIgIlTDtmJiIHRlbGplcyBsZW1leiBiZWplZ3l6w6lzIHZhbiBqZWxlbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJOaW5jc2VuZWsgcGFydMOtY2nDs2sgbWVnYWR2YVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiQXogSVJJWCBzemVyZXRpLCBoYSBhIDExLiBwYXJ0w61jacOzIGVsZm9nbGFsamEgYSB0ZWxqZXMgbGVtZXp0LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIHNob3VsZCBzdGFydCBhdCBibG9jayAwLFxuIgorIm5vdCBhdCBkaXNrYmxvY2sgJWQuXG4iCittc2dzdHIgIiIKKyJBIHRlbGplcyBsZW1lenBhcnTDrWNpw7NuYWsgYSAwLiBibG9ra29uIGtlbGxlbmUga2V6ZMWRZG5pZVxuIgorIsOpcyBuZW0gYSh6KSAlZC4gbGVtZXpibG9ra29uLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKyJBIHRlbGplcyBsZW1lenBhcnTDrWNpw7MgY3NhayAlZCBsZW1lemJsb2trIG3DqXJldMWxLFxuIgorImRlIGEgbGVtZXogJWQgbGVtZXpibG9rayBob3NzesO6LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiRWd5IHBhcnTDrWNpw7NuYWsgKGEgMTEuLW5laykgbGUga2VsbGVuZSBmZWRuaWUgYSB0ZWxqZXMgbGVtZXp0LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiQSh6KSAlZC4gcGFydMOtY2nDsyBuZW0gY2lsaW5kZXJoYXTDoXJvbiBrZXpkxZFkaWsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiQSh6KSAlZC4gcGFydMOtY2nDsyBuZW0gY2lsaW5kZXJoYXTDoXJvbiB2w6lnesWRZGlrLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBQYXJ0aXRpb24gJWQgYW5kICVkIG92ZXJsYXAgYnkgJWQgc2VjdG9ycy5cbiIKK21zZ3N0ciAiQSh6KSAlZC4gw6lzICVkLiBwYXJ0w61jacOzayDDoXRmZWRpayBlZ3ltw6FzdCAlZCBzemVrdG9ycmFsLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDg0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCBvZiAlOHUgc2VjdG9ycyAtIHNlY3RvcnMgJTh1LSV1XG4iCittc2dzdHIgIk5lbSBoYXN6bsOhbHQgJTh1IHN6ZWt0b3IgaG9zc3rDuiBow6l6YWcgLSBhKHopICU4dS0ldSBzemVrdG9yb2tcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGJvb3QgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiQXogaW5kw610w7NwYXJ0w61jacOzIG5lbSBsw6l0ZXppay5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiQSBsYXBvesOzcGFydMOtY2nDsyBuZW0gbMOpdGV6aWsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisiQSBsYXBvesOzcGFydMOtY2nDsyBuZW0gbGFwb3rDs3BhcnTDrWNpw7MgdMOtcHVzw7ouXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiXHRTem9rYXRsYW4gaW5kw610w7Nmw6FqbCBuZXZldCB2w6FsYXN6dG90dC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzMgorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSBZb3UgbWF5IGNoYW5nZSB0aGUgVGFnIG9mIG5vbi1lbXB0eSBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICJFbG7DqXrDqXN0LCBtZWd2w6FsdG96dGF0aGF0amEgbmVtIMO8cmVzIHBhcnTDrWNpw7NrIGPDrW1rw6lqw6l0LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJFcsWRc2VuIGFqw6FubG90dCwgaG9neSBhIDAgZWx0b2zDoXNuw6FsIHRhbMOhbGhhdMOzIHBhcnTDrWNpw7Mg4oCeU0dJIHZvbGhkcuKAnVxuIgorInTDrXB1c8O6IGxlZ3llbiwgYXogSVJJWCByZW5kc3plciBlcnJlIGZvZyBoYWd5YXRrb3puaSBhIGvDtm55dnTDoXJiw7NsXG4iCisiw7Zuw6FsbMOzIGVzemvDtnrDtmsgbGVrw6lyZGV6w6lza29yLCBtaW50IGEgc2FzaCDDqXMgYXogZnguXG4iCisiQ3NhayBheiDigJ5TR0kga8O2dGV04oCdIHRlbGplcyBsZW1lenN6YWthc3ogc8OpcnRoZXRpIGV6dCBtZWcuXG4iCisiw41yamEgYmUgYXogSUdFTiBzesOzdCwgaGEgYml6dG9zYW4gZWx0w6lyxZEgbcOzZG9uIGvDrXbDoW5qYSBjw61ta8Opem5pIGV6dCBhICIKKyJwYXJ0w61jacOzdC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIklHRU5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU2OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBZb3Uga25vdywgWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrP1xuIgorbXNnc3RyICJUdWR0YSwgaG9neSBhIGxlbWV6w6luIGVneW3DoXN0IGZlZGlrIGEgcGFydMOtY2nDs2s/XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBlbnRpcmUgZGlzayBlbnRyeSBhdXRvbWF0aWNhbGx5LlxuIgorbXNnc3RyICJLw61zw6lybGV0IGEgdGVsamVzIGxlbWV6YmVqZWd5esOpcyBhdXRvbWF0aWt1cyBlbMWRw6FsbMOtdMOhc8OhcmEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkEgcGFydMOtY2nDs2sgbcOhciBsZWZlZGlrIGEgdGVsamVzIGxlbWV6dC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiIgorIkVneW3DoXN0IMOhdGZlZMWRIHBhcnTDrWNpw7NrIHRhbMOhbGhhdMOzayBhIGxlbWV6ZW4uIEVsxZFzesO2ciBqYXbDrXRzYSBlenQga2khXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIkVyxZFzZW4gYWrDoW5sb3R0LCBob2d5IGEgMTEuIHBhcnTDrWNpw7NcbiIKKyJsZWZlZGplIGF6IGVnw6lzeiBsZW1lenQgw6lzICdTR0kga8O2dGV0JyB0w61wdXPDuiBsZWd5ZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgZ2V0IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiRWd5bcOhc3Qgw6F0ZmVkxZEgcGFydMOtY2nDs2sgbGVzem5layBhIGxlbWV6ZW4uIEVsxZFzesO2ciBqYXbDrXRzYSBlenQga2khXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIExhc3QgJXMiCittc2dzdHIgIiBVdG9sc8OzICVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBTR0kgZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuIgorIlxuIgorbXNnc3RyICIiCisiRWd5IMO6aiBTR0kgbGVtZXpjw61ta2Uga2Vyw7xsIGzDqXRyZWhvesOhc3JhLiBBIHbDoWx0b3rDoXNvayBhIG1lbcOzcmnDoWJhblxuIgorIm1hcmFkbmFrLCBhbcOtZyBlbCBuZW0gbWVudGkgYXpva2F0LiBFenV0w6FuIHRlcm3DqXN6ZXRlc2VuXG4iCisiYSBrb3LDoWJiaSB0YXJ0YWxvbSB2aXNzemF2b25oYXRhdGxhbnVsIGVsdsOpc3ouXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKyJGaWd5ZWxtZXp0ZXTDqXM6IGEgQkxLR0VUU0labEUgaW9jdGwgbWVnaGnDunN1bHQgYSh6KSAlcyBlc3prw7Z6w7ZuLiBBKHopICVkICIKKyJnZW9tZXRyaWEtY2lsaW5kZXLDqXJ0w6lrIGtlcsO8bCBmZWxoYXN6bsOhbMOhc3JhLiBFeiBheiDDqXJ0w6lrIGNzb25rw610w6FzcmEgIgorImtlcsO8bGhldCAzMyw4IEdCLW7DoWwgbmFneW9iYiBlc3prw7Z6w7Zrw7ZuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byBrZWVwIHBhcmFtZXRlcnMgb2YgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJLw61zw6lybGV0IGEoeikgJWQuIHBhcnTDrWNpw7MgcGFyYW3DqXRlcmVpbmVrIG1lZ3RhcnTDoXPDoXJhLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklEPSUwMnhcdFNUQVJUPSVkXHRMRU5HVEg9JWRcbiIKK21zZ3N0ciAiQVo9JTAyeFx0S0VaREVUPSVkXHRIT1NTWj0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgKK21zZ2lkICJVbmFzc2lnbmVkIgorbXNnc3RyICJUw6Fyc8OtdGF0bGFuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDAKK21zZ2lkICJTdW5PUyByb290IgorbXNnc3RyICJTdW5PUyBnecO2a8OpciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1MgbGFwb3rDsyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIlRlbGplcyBsZW1leiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0Cittc2dpZCAiU3VuT1Mgc3RhbmQiCittc2dzdHIgIlN1bk9TIHN0YW5kIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDUKK21zZ2lkICJTdW5PUyB2YXIiCittc2dzdHIgIlN1bk9TIHZhciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ2Cittc2dpZCAiU3VuT1MgaG9tZSIKK21zZ3N0ciAiU3VuT1MgaG9tZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIlN1bk9TIGFsdCBzemVrdG9yb2siCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorbXNnaWQgIlN1bk9TIGNhY2hlZnMiCittc2dzdHIgIlN1bk9TIGNhY2hlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OQorbXNnaWQgIlN1bk9TIHJlc2VydmVkIgorbXNnc3RyICJTdW5PUyBmZW5udGFydG90dCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICJMaW51eCByYWlkIGF1dG9tYXRpa3VzIGZlbGlzbWVyw6lzc2VsIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iCisiUHJvYmFibHkgeW91J2xsIGhhdmUgdG8gc2V0IGFsbCB0aGUgdmFsdWVzLFxuIgorImUuZy4gaGVhZHMsIHNlY3RvcnMsIGN5bGluZGVycyBhbmQgcGFydGl0aW9uc1xuIgorIm9yIGZvcmNlIGEgZnJlc2ggbGFiZWwgKHMgY29tbWFuZCBpbiBtYWluIG1lbnUpXG4iCittc2dzdHIgIiIKKyJBIFN1biBsZW1lemPDrW1rZSBlbGxlbsWRcnrFkcO2c3N6ZWdlIGhpYsOhcy5cbiIKKyJWYWzDs3N6w61uxbFsZWcgYmUga2VsbCDDoWxsw610YW5pYSBtaW5kZW4gw6lydMOpa2V0XG4iCisicMOpbGTDoXVsIGEgZmVqZWssIHN6ZWt0b3JvaywgY2lsaW5kZXJlayDDqXMgcGFydMOtY2nDs2sgc3rDoW3DoXRcbiIKKyJ2YWd5IGvDqXN6w610c2VuIMO6aiBjw61ta8OpdCAoYSBmxZEgbWVuw7wgJ3MnIHBhcmFuY3PDoXZhbClcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgdmVyc2lvbiBbMHglMDh4XS5cbiIKK21zZ3N0ciAiQSBTdW4gbGVtZXpjw61ta2UgdmVyemnDs3N6w6FtYSBoaWLDoXMgWzB4JTA4eF0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHNhbml0eSBbMHglMDh4XS5cbiIKK21zZ3N0ciAiQSBTdW4gbGVtZXpjw61ta2Ugw6FsbGFwb3RhIGhpYsOhcyBbMHglMDh4XS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1OAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgbnVtX3BhcnRpdGlvbnMgWyV1XS5cbiIKK21zZ3N0ciAiQSBTdW4gbGVtZXpjw61ta2UgbnVtX3BhcnRpdGlvbnNbJXVdIMOpcnTDqWtlIGhpYsOhcy5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogV3JvbmcgdmFsdWVzIG5lZWQgdG8gYmUgZml4ZWQgdXAgYW5kIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSlcbiIKK21zZ3N0ciAiIgorIkZpZ3llbG1lenRldMOpczogQSBoaWLDoXMgw6lydMOpa2VrZXQgamF2w610YW5pIGtlbGwsIGV6IGF6IMOtcsOhc2tvciBtZWd0w7ZydMOpbmlrXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IHN1biBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJFZ3kgw7pqIFN1biBsZW1lemPDrW1rZSBrZXLDvGwgbMOpdHJlaG96w6FzcmEuIEEgdsOhbHRvesOhc29rIGEgbWVtw7NyacOhYmFuXG4iCisibWFyYWRuYWssIGFtw61nIGVsIG5lbSBtZW50aSBhem9rYXQuIEV6dXTDoW4gdGVybcOpc3pldGVzZW5cbiIKKyJhIGtvcsOhYmJpIHRhcnRhbG9tIGVsdsOpc3ouXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICJTw6F2b25rw6ludGkgc3pla3Rvcm9rIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2Vzbid0IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJBKHopICVkLiBwYXJ0w61jacOzIG5lbSBjaWxpbmRlcmhhdMOhcm9uIHbDqWd6xZFkaWsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiQSh6KSAlZC4gcGFydMOtY2nDsyBtw6Fzb2thdCBmZWQgw6F0IGEoeikgJWQtJWQgc3pla3Rvcm9rYmFuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICJOZW0gaGFzem7DoWx0IGjDqXphZyBhIDAtJWQgc3pla3Rvcm9rb25cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIk5lbSBoYXN6bsOhbHQgaMOpemFnIGEoeikgJWQtJWQgc3pla3Rvcm9rb25cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3RoZXIgcGFydGl0aW9ucyBhbHJlYWR5IGNvdmVyIHRoZSB3aG9sZSBkaXNrLlxuIgorIkRlbGV0ZSBzb21lL3NocmluayB0aGVtIGJlZm9yZSByZXRyeS5cbiIKK21zZ3N0ciAiIgorIkEgdMO2YmJpIHBhcnTDrWNpw7MgbcOhciBsZWZlZGkgYSB0ZWxqZXMgbGVtZXp0LlxuIgorIlTDtnLDtmxqw7ZuIHZhZ3kgenN1Z29yw610c29uIMO2c3N6ZSBuw6low6FueWF0IGF6IMO6anJhcHLDs2LDoWxrb3rDoXMgZWzFkXR0LlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHRoaXJkIHBhcnRpdGlvbiBjb3ZlcnMgdGhlIHdob2xlIGRpc2tcbiIKKyJhbmQgaXMgb2YgdHlwZSBgV2hvbGUgZGlzaydcbiIKK21zZ3N0ciAiIgorIkVyxZFzZW4gYWrDoW5sb3R0LCBob2d5IGEgMTEuIHBhcnTDrWNpw7NcbiIKKyJsZWZlZGplIGF6IGVnw6lzeiBsZW1lenQgw6lzICdTR0kga8O2dGV0JyB0w61wdXPDuiBsZWd5ZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIkEoeikgJWQuIHN6ZWt0b3IgbcOhciBsZSB2YW4gZm9nbGFsdmFcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmVuJ3QgY292ZXJlZCB0aGUgd2hvbGUgZGlzayB3aXRoIHRoZSAzcmQgcGFydGl0aW9uLCBidXQgeW91ciB2YWx1ZVxuIgorIiVkICVzIGNvdmVycyBzb21lIG90aGVyIHBhcnRpdGlvbi4gWW91ciBlbnRyeSBoYXMgYmVlbiBjaGFuZ2VkXG4iCisidG8gJWQgJXNcbiIKK21zZ3N0ciAiIgorIk5lbSBmb2dsYWx0YSBsZSBhIHRlbGplcyBsZW1lenQgYSAzLiBwYXJ0w61jacOzdmFsLCBkZSBhKHopICVkICVzIMOpcnTDqWtcbiIKKyJsZWZvZ2xhbCBlZ3kgbcOhc2lrIHBhcnTDrWNpw7N0LiBBIGJlamVneXrDqXNlIG3Ds2Rvc8OtdHZhICVkICVzIMOpcnTDqWtyZS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWYgeW91IHdhbnQgdG8gbWFpbnRhaW4gU3VuT1MvU29sYXJpcyBjb21wYXRpYmlsaXR5LCBjb25zaWRlciBsZWF2aW5nIHRoaXNcbiIKKyJwYXJ0aXRpb24gYXMgV2hvbGUgZGlzayAoNSksIHN0YXJ0aW5nIGF0IDAsIHdpdGggJXUgc2VjdG9yc1xuIgorbXNnc3RyICIiCisiSGEgZmVubiBha2FyamEgdGFydGFuaSBhIFN1bk9TL1NvbGFyaXMga29tcGF0aWJpbGl0w6FzdCwgYWtrb3IgaGFneWphIGFcbiIKKyJwYXJ0w61jacOzdCB0ZWxqZXMgbGVtZXprw6ludCAoNSksIGEgMC4gc3pla3RvcnTDs2wgJXUgc3pla3RvcnJhbFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBVRlMsIEVYVDJGUyBmaWxlc3lzdGVtIG9yIFN1bk9TIHN3YXAuIFB1dHRpbmcgTGludXggc3dhcFxuIgorInRoZXJlIG1heSBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlIGFuZCBib290YmxvY2suXG4iCisiVHlwZSBZRVMgaWYgeW91J3JlIHZlcnkgc3VyZSB5b3Ugd291bGQgbGlrZSB0aGF0IHBhcnRpdGlvblxuIgorInRhZ2dlZCB3aXRoIDgyIChMaW51eCBzd2FwKTogIgorbXNnc3RyICIiCisiRXLFkXNlbiBhasOhbmxvdHQgYSAwIGVsdG9sw6FzbsOhbCB0YWzDoWxoYXTDsyBwYXJ0w61jacOzdCBVRlMsIEVYVDJGUyB2YWd5XG4iCisiU3VuT1MgbGFwb3rDsyBwYXJ0w61jacOzIHTDrXB1c8O6cmEgw6FsbMOtdGFuaS4gTGludXggbGFwb3rDs3BhcnTDrWNpw7NcbiIKKyJsw6l0cmVob3rDoXNha29yIG1lZ3NlbW1pc8O8bGhldCBhIHBhcnTDrWNpw7NzIHTDoWJsYSDDqXMgYXogaW5kw610w7NibG9ray5cbiIKKyLDjXJqYSBiZSBheiBJR0VOIHN6w7N0LCBoYSBhIHBhcnTDrWNpw7MgYml6dG9zYW4gODItZXMgKExpbnV4IGxhcG96w7MpXG4iCisidMOtcHVzw7ogbGVneWVuOiAiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMZW1leiAlcyAoU3VuIGxlbWV6Y8OtbWtlKTogJWQgZmVqLCAlbGx1IHN6ZWt0b3IsICVkIGZvcmR1bGF0IHBlcmNlbmvDqW50XG4iCisiJWQgY2lsaW5kZXIsICVkIGFsdGVybmF0w612IGNpbGluZGVyLCAlZCBmaXppa2FpIGNpbGluZGVyXG4iCisiJWQgZXh0cmEgc3pla3QvY2lsLCDDoXRyZW5kZXrDqXM6ICVkOjFcbiIKKyJDw61ta2Vhem9ub3PDrXTDszogJXNcbiIKKyJLw7Z0ZXRhem9ub3PDrXTDszogJXNcbiIKKyJFZ3lzw6lnID0gJXMsIMO2c3N6ZXNlbiAlZCAqIDUxMiBiw6FqdFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxlbWV6ICVzIChTdW4gbGVtZXpjw61ta2UpOiAlZCBmZWosICVsbHUgc3pla3RvciwgJWQgY2lsaW5kZXJcbiIKKyJFZ3lzw6lnID0gJXMsIMO2c3N6ZXNlbiAlZCAqIDUxMiBiw6FqdFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBKZWx6xZEgICBLZXpkZXQgICAgICBWw6lnZSAgIEJsb2trb2sgIEF6ICBSZW5kc3plclxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjI1Cittc2dpZCAiTnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIkF6IGFsdGVybmF0w612IGNpbGluZGVyZWsgc3rDoW1hIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjM3Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIkNpbGluZGVyZW5rw6ludGkgZXh0cmEgc3pla3Rvcm9rIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjQ0Cittc2dpZCAiSW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIsOBdHJlbmRlesOpc2kgdMOpbnllesWRIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjUxCittc2dpZCAiUm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIkZvcmfDoXNpIHNlYmVzc8OpZyAocGVyY2Vua8OpbnRpIGZvcmR1bGF0KSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1OAorbXNnaWQgIk51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIkEgZml6aWthaSBjaWxpbmRlcmVrIHN6w6FtYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIsOccmVzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcKK21zZ2lkICJGQVQxMiIKK21zZ3N0ciAiRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OAorbXNnaWQgIlhFTklYIHJvb3QiCittc2dzdHIgIlhFTklYIHJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OQorbXNnaWQgIlhFTklYIHVzciIKK21zZ3N0ciAiWEVOSVggdXNyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwCittc2dpZCAiRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMQorbXNnaWQgIkV4dGVuZGVkIgorbXNnc3RyICJLaXRlcmplc3p0ZXR0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIGluZMOtdGhhdMOzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgUmVuZHN6ZXJpbmTDrXTDoXMta2V6ZWzFkSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNworbXNnaWQgIlc5NSBGQVQzMiIKK21zZ3N0ciAiVzk1IEZBVDMyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE4Cittc2dpZCAiVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJXOTUgRkFUMzIgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTkKK21zZ2lkICJXOTUgRkFUMTYgKExCQSkiCittc2dzdHIgIlc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMAorbXNnaWQgIlc5NSBFeHQnZCAoTEJBKSIKK21zZ3N0ciAiVzk1IGtpdGVyai4gKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICJPUFVTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIyCittc2dpZCAiSGlkZGVuIEZBVDEyIgorbXNnc3RyICJSZWp0ZXR0IEZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIzCittc2dpZCAiQ29tcGFxIGRpYWdub3N0aWNzIgorbXNnc3RyICJDb21wYXEgZGlhZ25vc3p0aWthaSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICJSZWp0ZXR0IEZBVDE2IDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjUKK21zZ2lkICJIaWRkZW4gRkFUMTYiCittc2dzdHIgIlJlanRldHQgRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjYKK21zZ2lkICJIaWRkZW4gSFBGUy9OVEZTIgorbXNnc3RyICJSZWp0ZXR0IEhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJBU1QgU21hcnRTbGVlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIlJlanRldHQgVzk1IEZBVDMyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI5Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiUmVqdGV0dCBXOTUgRkFUMzIgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzAKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJSZWp0ZXR0IFc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJQYXJ0aXRpb25NYWdpYyBoZWx5cmXDoWxsw610w6FzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIlZlbml4IDgwMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM1Cittc2dpZCAiUFBDIFBSZVAgQm9vdCIKK21zZ3N0ciAiUFBDIFBSZVAgaW5kw610w7MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMi4gcGFydMOtY2nDsyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDMuIHBhcnTDrWNpw7MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDAKK21zZ2lkICJPblRyYWNrIERNIgorbXNnc3RyICJPblRyYWNrIERNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQxCittc2dpZCAiT25UcmFjayBETTYgQXV4MSIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MgorbXNnaWQgIkNQL00iCittc2dzdHIgIkNQL00iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDMKK21zZ2lkICJPblRyYWNrIERNNiBBdXgzIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ0Cittc2dpZCAiT25UcmFja0RNNiIKK21zZ3N0ciAiT25UcmFja0RNNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NQorbXNnaWQgIkVaLURyaXZlIgorbXNnc3RyICJFWi1Ecml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NgorbXNnaWQgIkdvbGRlbiBCb3ciCittc2dzdHIgIkdvbGRlbiBCb3ciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDcKK21zZ2lkICJQcmlhbSBFZGlzayIKK21zZ3N0ciAiUHJpYW0gRWRpc2siCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk5Cittc2dpZCAiU3BlZWRTdG9yIgorbXNnc3RyICJTcGVlZFN0b3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICJHTlUgSFVSRCB2YWd5IFN5c1YiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTAKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAyODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MQorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDM4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMzg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUyCittc2dpZCAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorbXNnc3RyICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTMKK21zZ2lkICJQQy9JWCIKK21zZ3N0ciAiUEMvSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTQKK21zZ2lkICJPbGQgTWluaXgiCittc2dzdHIgIlLDqWdpIE1pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8gcsOpZ2kgTGludXgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTYKK21zZ2lkICJMaW51eCBzd2FwIC8gU29sYXJpcyIKK21zZ3N0ciAiTGludXggbGFwb3rDsyAvIFNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTgKK21zZ2lkICJPUy8yIGhpZGRlbiBDOiBkcml2ZSIKK21zZ3N0ciAiT1MvMiByZWp0ZXR0IEM6IG1lZ2hhanTDsyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCBraXRlcmplc3p0ZXR0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIk5URlMga8O2dGV0a8Opc3psZXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjIKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIkxpbnV4IGVneXN6ZXLFsSBzesO2dmVnIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY0Cittc2dpZCAiQW1vZWJhIgorbXNnc3RyICJBbW9lYmEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjUKK21zZ2lkICJBbW9lYmEgQkJUIgorbXNnc3RyICJBbW9lYmEgQkJUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY2Cittc2dpZCAiQlNEL09TIgorbXNnc3RyICJCU0QvT1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjcKK21zZ2lkICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCittc2dzdHIgIklCTSBUaGlua3BhZCBoaWJlcm7DoWzDoXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjgKK21zZ2lkICJGcmVlQlNEIgorbXNnc3RyICJGcmVlQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY5Cittc2dpZCAiT3BlbkJTRCIKK21zZ3N0ciAiT3BlbkJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MAorbXNnaWQgIk5lWFRTVEVQIgorbXNnc3RyICJOZVhUU1RFUCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MQorbXNnaWQgIkRhcndpbiBVRlMiCittc2dzdHIgIkRhcndpbiBVRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzIKK21zZ2lkICJOZXRCU0QiCittc2dzdHIgIk5ldEJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MworbXNnaWQgIkRhcndpbiBib290IgorbXNnc3RyICJEYXJ3aW4gaW5kw610w7MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzQKKyMsIGZ1enp5Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc1Cittc2dpZCAiQlNESSBmcyIKK21zZ3N0ciAiQlNESSBmcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NgorbXNnaWQgIkJTREkgc3dhcCIKK21zZ3N0ciAiQlNESSBsYXBvesOzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc3Cittc2dpZCAiQm9vdCBXaXphcmQgaGlkZGVuIgorbXNnc3RyICJCb290IFdpemFyZCByZWp0ZXR0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICJTb2xhcmlzIGluZMOtdMOzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc5Cittc2dpZCAiU29sYXJpcyIKK21zZ3N0ciAiU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MAorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTEyKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgxCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODIKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTE2KSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MworbXNnaWQgIlN5cmlueCIKK21zZ3N0ciAiU3lyaW54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg0Cittc2dpZCAiTm9uLUZTIGRhdGEiCittc2dzdHIgIk5lbSBmw6FqbHJlbmRzemVyYWRhdG9rIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg1Cittc2dpZCAiQ1AvTSAvIENUT1MgLyAuLi4iCittc2dzdHIgIkNQL00gLyBDVE9TIC8gLi4uIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg3Cittc2dpZCAiRGVsbCBVdGlsaXR5IgorbXNnc3RyICJEZWxsIFV0aWxpdHkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODgKK21zZ2lkICJCb290SXQiCittc2dzdHIgIkJvb3RJdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OQorbXNnaWQgIkRPUyBhY2Nlc3MiCittc2dzdHIgIkRPUyBlbMOpcsOpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MQorbXNnaWQgIkRPUyBSL08iCittc2dzdHIgIkRPUyBSL08iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTQKK21zZ2lkICJCZU9TIGZzIgorbXNnc3RyICJCZU9TIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk1Cittc2dpZCAiR1BUIgorbXNnc3RyICJHUFQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIkVGSSAoRkFULTEyLzE2LzMyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NworbXNnaWQgIkxpbnV4L1BBLVJJU0MgYm9vdCIKK21zZ3N0ciAiTGludXgvUEEtUklTQyBpbmTDrXTDsyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1MgbcOhc29kbGFnb3MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAxCittc2dpZCAiVk13YXJlIFZNRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDIKK21zZ2lkICJWTXdhcmUgVk1LQ09SRSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNgorbXNnaWQgIkxBTnN0ZXAiCittc2dzdHIgIkxBTnN0ZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA3Cittc2dpZCAiQkJUIgorbXNnc3RyICJCQlQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yIG9uICVzIC0gY2Fubm90IHNlZWsgdG8gJWx1XG4iCittc2dzdHIgIiIKKyJwb3ppY2lvbsOhbMOhc2kgaGliYSBhKHopICVzIGVzemvDtnrDtm4gLSBuZW0gbGVoZXQgYSh6KSAlbHUgaGVseXJlICIKKyJwb3ppY2lvbsOhbG5pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2OQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yOiB3YW50ZWQgMHglMDh4JTA4eCwgZ290IDB4JTA4eCUwOHhcbiIKK21zZ3N0ciAicG96aWNpb27DoWzDoXNpIGhpYmE6IGEgdsOhcnQgMHglMDh4JTA4eCBoZWx5ZXR0IDB4JTA4eCUwOHggw6lya2V6ZXR0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiZWxmb2d5b3R0IGEgbWVtw7NyaWEgLSBmZWxhZG9tXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAib2x2YXPDoXNpIGhpYmEgYSh6KSAlcyBlc3prw7Z6w7ZuIC0gYSh6KSAlbHUuIHN6ZWt0b3IgbmVtIG9sdmFzaGF0w7NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkVSUk9SOiBzZWN0b3IgJWx1IGRvZXMgbm90IGhhdmUgYW4gbXNkb3Mgc2lnbmF0dXJlXG4iCittc2dzdHIgIkhJQkE6IGEoeikgJWx1LiBzemVrdG9yIG5lbSByZW5kZWxrZXppayBtc2RvcyBhbMOhw61yw6Fzc2FsXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgIsOtcsOhc2kgaGliYSBhKHopICVzIGVzemvDtnrDtm4gLSBuZW0gbGVoZXQgw61ybmkgYSh6KSAlbHUuIHN6ZWt0b3JyYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHNlY3RvciBzYXZlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJuZW0gbnlpdGhhdMOzIG1lZyBhIHBhcnTDrWNpw7Mgc3pla3Rvcm1lbnTDqXMgZsOhamxqYSAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICLDrXLDoXNpIGhpYmEgYSh6KSAlcyBlc3prw7Z6w7ZuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAibmVtIMOpcmhldMWRIGVsIGEgcGFydMOtY2nDsyB2aXNzemHDoWxsw610w7Nmw6FqbGphICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAiIgorImEgcGFydMOtY2nDsyB2aXNzemHDoWxsw610w7Nmw6FqbGrDoW5hayBtw6lyZXRlIGhpYsOhcyAtIG5lbSBrZXLDvGwgdmlzc3phw6FsbMOtdMOhc3JhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/XG4iCittc2dzdHIgImVsZm9neW90dCBhIG1lbcOzcmlhP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgImEgcGFydMOtY2nDsyB2aXNzemHDoWxsw610w7Nmw6FqbGphIG5lbSBueWl0aGF0w7MgbWVnICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiaGliYSBhKHopICVzIG9sdmFzw6FzYWtvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gZGV2aWNlICVzIGZvciB3cml0aW5nXG4iCittc2dzdHIgImEoeikgJXMgZXN6a8O2eiBuZW0gbnlpdGhhdMOzIG1lZyDDrXLDoXNyYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzZWN0b3IgJWx1IG9uICVzXG4iCittc2dzdHIgImhpYmEgYSh6KSAlbHUuIHN6ZWt0b3Igw61yw6FzYSBrw7Z6YmVuIGEoeikgJXMgZXN6a8O2esO2blxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBnZW9tZXRyeVxuIgorbXNnc3RyICIlcyBsZW1lejogbmVtIGvDqXJoZXTFkSBsZSBhIGdlb21ldHJpYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBzaXplXG4iCittc2dzdHIgIiVzIGxlbWV6OiBuZW0ga8OpcmhldMWRIGxlIGEgbcOpcmV0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc3RhcnQ9JWx1IC0gdGhpcyBsb29rcyBsaWtlIGEgcGFydGl0aW9uIHJhdGhlciB0aGFuXG4iCisidGhlIGVudGlyZSBkaXNrLiBVc2luZyBmZGlzayBvbiBpdCBpcyBwcm9iYWJseSBtZWFuaW5nbGVzcy5cbiIKKyJbVXNlIHRoZSAtLWZvcmNlIG9wdGlvbiBpZiB5b3UgcmVhbGx5IHdhbnQgdGhpc11cbiIKK21zZ3N0ciAiIgorIkZpZ3llbG1lenRldMOpczogS2V6ZMOpcz0lbHUgLSBleiBwYXJ0w61jacOzbmFrIHTFsW5payDDqXMgbmVtIGEgdGVsamVzXG4iCisibGVtZXpuZWsuIEF6IGZkaXNrIGhhc3puw6FsYXRhIHZhbMOzc3rDrW7FsWxlZyDDqXJ0ZWxtZXRsZW4uIFtIYSB2YWzDs2JhblxuIgorImV6dCBha2FyamEsIGFra29yIGEgLS1mb3JjZSBrYXBjc29sw7N2YWwgdGVoZXRpIG1lZ11cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGhlYWRzXG4iCittc2dzdHIgIkZpZ3llbG1lenRldMOpczogYSBIRElPX0dFVEdFTyAlbHUgZmVqIGplbGVubMOpdMOpdMOpdCBqZWx6aVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgc2VjdG9yc1xuIgorbXNnc3RyICJGaWd5ZWxtZXp0ZXTDqXM6IGEgSERJT19HRVRHRU8gJWx1IHN6ZWt0b3IgamVsZW5sw6l0w6l0w6l0IGplbHppXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGN5bGluZGVyc1xuIgorbXNnc3RyICIiCisiRmlneWVsbWV6dGV0w6lzOiBhIEJMS0dFVFNJWkUvSERJT19HRVRHRU8gJWx1IGNpbGluZGVyIGplbGVubMOpdMOpdMOpdCBqZWx6aVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJGaWd5ZWxtZXp0ZXTDqXM6IGEgc3pla3Rvcm9rIHN6w6FtYSAoJWx1KSB2YWzDs3N6w61uxbF0bGVuIC0gw6FsdGFsw6FiYW5cbiIKKyJsZWdmZWxqZWJiIDYzLiBFeiBhIHByb2Jsw6ltw6FrYXQgZm9nIG9rb3puaSBheiDDtnNzemVzIEMvSC9TIGPDrW16w6lzdFxuIgorImhhc3puw6Fsw7Mgc3pvZnR2ZXJiZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWx1IGN5bGluZGVycywgJWx1IGhlYWRzLCAlbHUgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIiCisiXG4iCisiJXMgbGVtZXo6ICVsdSBjaWxpbmRlciwgJWx1IGZlaiwgJWx1IHN6ZWt0b3Igc8Ohdm9ua8OpbnRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGhlYWQ6ICVsdSAoc2hvdWxkIGJlIGluIDAtJWx1KVxuIgorbXNnc3RyICIiCisiQSh6KSAkJTJzIHBhcnTDrWNpw7MgJCUxcyDDqXJ0w6lrZSBsZWhldGV0bGVuIGZlanN6w6Ftb3QgYWQgbWVnOiAkJTNsdSAoMC0kJTRsdSAiCisia8O2esO2dHQga2VsbGVuZSBsZW5uaWUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBzZWN0b3I6ICVsdSAoc2hvdWxkIGJlIGluIDEtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIkEoeikgJCUycyBwYXJ0w61jacOzICQlMXMgw6lydMOpa2UgbGVoZXRldGxlbiBzemVrdG9yc3rDoW1vdCBhZCBtZWc6ICQlM2x1ICgwLSQlIgorIjRsdSBrw7Z6w7Z0dCBrZWxsZW5lIGxlbm5pZSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGN5bGluZGVyczogJWx1IChzaG91bGQgYmUgaW4gMC0lIgorImx1KVxuIgorbXNnc3RyICIiCisiQSh6KSAkJTJzIHBhcnTDrWNpw7MgJCUxcyDDqXJ0w6lrZSBsZWhldGV0bGVuIGNpbGluZGVyc3rDoW1vdCBhZCBtZWc6ICQlM2x1ICgwLSQlIgorIjRsdSBrw7Z6w7Z0dCBrZWxsZW5lIGxlbm5pZSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZCAgTmFtZVxuIgorIlxuIgorbXNnc3RyICIiCisiQXpvbm9zw610w7MgIE7DqXZcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSAuLi5cbiIKK21zZ3N0ciAiQSBwYXJ0w61jacOzcyB0w6FibGEgw7pqcmFvbHZhc8Ohc2EgLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxMQorIywgZnV6enkKK21zZ2lkICIiCisiVGhlIGNvbW1hbmQgdG8gcmUtcmVhZCB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZC5cbiIKKyJSdW4gcGFydHByb2JlKDgpLCBrcGFydHgoOCkgb3IgcmVib290IHlvdXIgc3lzdGVtIG5vdyxcbiIKKyJiZWZvcmUgdXNpbmcgbWtmc1xuIgorbXNnc3RyICIiCisiQSBwYXJ0w61jacOzcyB0w6FibGEgw7pqcmFvbHZhc8OhcyBwYXJhbmNzYSBtZWdoacO6c3VsdFxuIgorIkluZMOtdHNhIMO6anJhIG1vc3QgYSByZW5kc3plcnQgYXogbWtmcyBoYXN6bsOhbGF0YSBlbMWRdHRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNsb3NpbmcgJXNcbiIKK21zZ3N0ciAiSGliYSBhKHopICVzIGxlesOhcsOhc2Frb3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBzdWNoIHBhcnRpdGlvblxuIgorbXNnc3RyICIlczogbmluY3MgaWx5ZW4gcGFydMOtY2nDs1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo4NzgKK21zZ2lkICJ1bnJlY29nbml6ZWQgZm9ybWF0IC0gdXNpbmcgc2VjdG9yc1xuIgorbXNnc3RyICJpc21lcmV0bGVuIGZvcm3DoXR1bSAtIGEgc3pla3Rvcm9rIGtlcsO8bG5layBmZWxoYXN6bsOhbMOhc3JhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkyOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmltcGxlbWVudGVkIGZvcm1hdCAtIHVzaW5nICVzXG4iCittc2dzdHIgIm1lZ3ZhbMOzc8OtdGF0bGFuIGZvcm3DoXR1bSAtIGEoeikgJXMga2Vyw7xsIGZlbGhhc3puw6Fsw6FzcmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJFZ3lzw6lnID0gJWx1IGLDoWp0b3MgY2lsaW5kZXJlaywgMTAyNCBiw6FqdG9zIGJsb2trb2ssIGtlemTFkXNvcnN6w6FtOiAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICAgIEVuZCAgICNjeWxzICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgRXN6a8O2eiBJbmTDrXTDoXMgS2V6ZGV0IFbDqWdlICAgICNjaWxsICAgICNibG9rayAgIEF6ICBSZW5kc3plclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gc2VjdG9ycyBvZiA1MTIgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVneXPDqWcgPSA1MTIgYsOhanRvcyBzemVrdG9yb2ssIGtlemTFkXNvcnN6w6FtOiAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICAgU3RhcnQgICAgICAgRW5kICAgI3NlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICBFc3prw7Z6IEluZMOtdMOhcyBLZXpkZXQgICAgICBWw6lnZSAgICNzemVrdG9yICBBeiBSZW5kc3plclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVneXPDqWcgPSAxMDI0IGLDoWp0b3MgYmxva2tvaywga2V6ZMWRc29yc3rDoW06ICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgIFN0YXJ0ICAgICAgIEVuZCAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgIEVzemvDtnogSW5kw610w6FzICBLZXpkZXQgICAgVsOpZ2UgICAgICNibG9rayAgIEF6ICBSZW5kc3plclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gbWViaWJ5dGVzIG9mIDEwNDg1NzYgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJFZ3lzw6lnID0gMTA0ODU3NiBiw6FqdG9zIG1lYmliw6FqdCwgMTAyNCBiw6FqdG9zIGJsb2trb2ssIGtlemTFkXNvcnN6w6FtOiAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIkVzemvDtnogSW5kw610w6FzIEtlemRldCBWw6lnZSAgICBNaUIgICAjYmxva2tvayAgIEF6ICBSZW5kc3plclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdGtlemRldDogKGMsaCxzKSB2w6FydDogKCVsZCwlbGQsJWxkKSB0YWzDoWx0OiAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdHbDqWdlOiAoYyxoLHMpIHbDoXJ0OiAoJWxkLCVsZCwlbGQpIHRhbMOhbHQ6ICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgImEgcGFydMOtY2nDsyBhKHopICVsZCBjaWxpbmRlcmVuIHbDqWd6xZFkaWssIGEgbGVtZXogdsOpZ2UgdXTDoW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiTmVtIHRhbMOhbGhhdMOzayBwYXJ0w61jacOza1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBUaGUgcGFydGl0aW9uIHRhYmxlIGxvb2tzIGxpa2UgaXQgd2FzIG1hZGVcbiIKKyIgIGZvciBDL0gvUz0qLyVsZC8lbGQgKGluc3RlYWQgb2YgJWxkLyVsZC8lbGQpLlxuIgorIkZvciB0aGlzIGxpc3RpbmcgSSdsbCBhc3N1bWUgdGhhdCBnZW9tZXRyeS5cbiIKK21zZ3N0ciAiIgorIkZpZ3llbG1lenRldMOpczogw5pneSB0xbFuaWssIGEgcGFydMOtY2nDs3MgdMOhYmxhIGFcbiIKKyIgIEMvSC9TPSovJWxkLyVsZCDDqXJ0w6lrZWtoZXoga8Opc3rDvGx0ICglbGQvJWxkLyVsZCBoZWx5ZXR0KS5cbiIKKyJFaGhleiBhIGxpc3TDoWhveiBleiBsZXN6IGEgZmVsdMOpdGVsZXpldHQgZ2VvbWV0cmlhLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIm5pbmNzIGplbGVuIHBhcnTDrWNpw7NzIHTDoWJsYS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIKK21zZ3N0ciAiZnVyY3NhLCBjc2FrICVkIHBhcnTDrWNpw7MgdmFuIG1lZ2FkdmEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYnV0IGlzIG5vdCBtYXJrZWQgRW1wdHlcbiIKK21zZ3N0ciAiIgorIkZpZ3llbG1lenRldMOpczogYSh6KSAlcyBwYXJ0w61jacOzIG3DqXJldGUgMCwgZGUgbmluY3Mgw7xyZXNrw6ludCBtZWdqZWzDtmx2ZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBpcyBib290YWJsZVxuIgorbXNnc3RyICJGaWd5ZWxtZXp0ZXTDqXM6IGEoeikgJXMgcGFydMOtY2nDsyBtw6lyZXRlIDAgw6lzIGluZMOtdGhhdMOzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBhKHopICVzIHBhcnTDrWNpw7MgbcOpcmV0ZSAwIMOpcyBuZW0gbnVsbMOhcsOzbCBpbmR1bFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyAiCittc2dzdHIgIkZpZ3llbG1lenRldMOpczogJXMgcGFydMOtY2nDsyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgbm90IGNvbnRhaW5lZCBpbiBwYXJ0aXRpb24gJXNcbiIKK21zZ3N0ciAibmVtIHLDqXN6ZSBhKHopICVzIHBhcnTDrWNpw7NuYWtcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb25zICVzICIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiAlcyBwYXJ0w61jacOzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICLDqXMgYSh6KSAlcyDDoXRmZWRpayBlZ3ltw6FzdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgY29udGFpbnMgcGFydCBvZiB0aGUgcGFydGl0aW9uIHRhYmxlIChzZWN0b3IgJWx1KSxcbiIKKyJhbmQgd2lsbCBkZXN0cm95IGl0IHdoZW4gZmlsbGVkXG4iCittc2dzdHIgIiIKKyJGaWd5ZWxtZXp0ZXTDqXM6IGEoeikgJXMgdGFydGFsbWF6emEgYSBwYXJ0w61jacOzcyB0w6FibGEgZWd5IHLDqXN6w6l0XG4iCisiKCVsdS4gc3pla3Rvcikgw6lzIG1lZ3NlbW1pc8OtdGkgYXp0IGEga2l0w7ZsdMOpc2tvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBhKHopICVzIHBhcnTDrWNpw7MgYSAwLiBzemVrdG9ybsOhbCBrZXpkxZFkaWtcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIkZpZ3llbG1lenRldMOpczogYSh6KSAlcyBwYXJ0w61jacOzIHTDumxuecO6bGlrIGEgbGVtZXplblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjY5Cittc2dpZCAiIgorIkFtb25nIHRoZSBwcmltYXJ5IHBhcnRpdGlvbnMsIGF0IG1vc3Qgb25lIGNhbiBiZSBleHRlbmRlZFxuIgorIiAoYWx0aG91Z2ggdGhpcyBpcyBub3QgYSBwcm9ibGVtIHVuZGVyIExpbnV4KVxuIgorbXNnc3RyICIiCisiQXogZWxzxZFkbGVnZXMgcGFydMOtY2nDs2sga8O2esO8bCBsZWdmZWxqZWJiIGVneSBsZWhldCBraXRlcmplc3p0ZXR0XG4iCisiKG5vaGEgZXogTGludXggYWxhdHQgbmVtIHByb2Jsw6ltYSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJGaWd5ZWxtZXp0ZXTDqXM6IGEoeikgJXMgcGFydMOtY2nDsyBuZW0gY2lsaW5kZXJoYXTDoXJvbiBrZXpkxZFkaWsuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IGVuZCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIkZpZ3llbG1lenRldMOpczogYSh6KSAlcyBwYXJ0w61jacOzIG5lbSBjaWxpbmRlcmhhdMOhcm9uIHbDqWd6xZFkaWsuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiRmlneWVsbWV6dGV0w6lzOiB0w7ZiYiBlbHPFkWRsZWdlcyBwYXJ0w61jacOzIHZhbiBpbmTDrXRoYXTDs2vDqW50IG1lZ2plbMO2bHZlLlxuIgorIkV6IG5lbSBwcm9ibMOpbWEgYSBMSUxPLW5haywgZGUgYSBET1MgTUJSIG5lbSBmb2cgZWxpbmR1bG5pIGVycsWRbCBhICIKKyJsZW1lenLFkWwuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTgKK21zZ2lkICIiCisiV2FybmluZzogdXN1YWxseSBvbmUgY2FuIGJvb3QgZnJvbSBwcmltYXJ5IHBhcnRpdGlvbnMgb25seVxuIgorIkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIgorbXNnc3RyICIiCisiRmlneWVsbWV6dGV0w6lzOiDDoWx0YWzDoWJhbiBjc2FrIGVsc8WRZGxlZ2VzIHBhcnTDrWNpw7Nyw7NsIGxlaGV0IHJlbmRzemVydFxuIgorImluZMOtdGFuaS4gQSBMSUxPIG5lbSB2ZXN6aSBmaWd5ZWxlbWJlIGF6IOKAnmluZMOtdGhhdMOz4oCdIGplbHrFkXQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMjQKK21zZ2lkICIiCisiV2FybmluZzogbm8gcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorIkZpZ3llbG1lenRldMOpczogbmVtIGVsc8WRZGxlZ2VzIHBhcnTDrWNpw7MgdmFuIG1lZ2plbMO2bHZlIGluZMOtdGhhdMOza8OpbnQgIgorIihha3TDrXYpLlxuIgorIkV6IG5lbSBwcm9ibMOpbWEgYSBMSUxPLW5haywgZGUgYSBET1MgTUJSIG5lbSBmb2cgZWxpbmR1bG5pIGVycsWRbCBhICIKKyJsZW1lenLFkWwuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAia2V6ZGV0IgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisiJXMgcGFydMOtY2nDszoga2V6ZGV0ZTogKGMsaCxzKSBhIHbDoXJ0ICglbGQsJWxkLCVsZCkgaGVseWV0dFxuIgorIiglbGQsJWxkLCVsZCkgdGFsw6FsaGF0w7NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0NworbXNnaWQgImVuZCIKK21zZ3N0ciAidsOpZyIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIiVzIHBhcnTDrWNpw7M6IHbDqWdlOiAoYyxoLHMpIGEgdsOhcnQgKCVsZCwlbGQsJWxkKSBoZWx5ZXR0XG4iCisiKCVsZCwlbGQsJWxkKSB0YWzDoWxoYXTDs1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAiYSBwYXJ0w61jacOzICglcykgYSh6KSAlbGQuIGNpbGluZGVyZW4gdsOpZ3rFkWRpaywgYSBsZW1leiB2w6lnZSBlbMWRdHRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM3OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc2hpZnRlZCBzdGFydCBvZiB0aGUgZXh0ZCBwYXJ0aXRpb24gZnJvbSAlbGQgdG8gJWxkXG4iCisiKEZvciBsaXN0aW5nIHB1cnBvc2VzIG9ubHkuIERvIG5vdCBjaGFuZ2UgaXRzIGNvbnRlbnRzLilcbiIKK21zZ3N0ciAiIgorIkZpZ3llbG1lenRldMOpczogYSBraXRlcmplc3p0ZXR0IHBhcnTDrWNpw7Mga2V6ZGV0ZSBlbHRvbHZhOiAlbGQgLT4gJWxkXG4iCisiKENzYWsga2nDrXJhdMOhc2hvei4gTmUgdsOhbHRvenRhc3NhIG1lZyBhIHRhcnRhbG3DoXQuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiRmlneWVsbWV6dGV0w6lzOiBhIGtpdGVyamVzenRldHQgcGFydMOtY2nDsyBuZW0gY2lsaW5kZXJoYXTDoXJuw6FsIGtlemTFkWRpay5cbiIKKyJBIERPUyDDqXMgTGludXggYSB0YXJ0YWxtw6F0IGVsdMOpcsWRZW4gZm9namEgw6lydGVsbWV6bmkuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MDIgZmRpc2svc2ZkaXNrLmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zIC0gaWdub3JpbmcgdGhvc2UgcGFzdCBuciAoJWQpXG4iCittc2dzdHIgInTDumwgc29rIHBhcnTDrWNpw7MgLSBhKHopICVkLiB1dMOhbmlhayBmaWd5ZWxtZW4ga8OtdsO8bCBtYXJhZG5ha1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDE3Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICJwYXJ0w61jacOzZmE/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAiYXogw6lyesOpa2VsdCBEaXNrIE1hbmFnZXIgbmVtIGtlemVsaGV0xZFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUzMgorbXNnaWQgIkRNNiBzaWduYXR1cmUgZm91bmQgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiRE02IGFsw6HDrXLDoXN0IHRhbMOhbGhhdMOzIC0gZmVsYWRvbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAiZnVyY3NhLi4uIGEga2l0ZXJqZXN6dGV0dCBwYXJ0w61jacOzIG3DqXJldGUgMD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCittc2dpZCAic3RyYW5nZS4uLiwgYSBCU0QgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAiZnVyY3NhLi4uIGEgQlNEIHBhcnTDrWNpw7MgbcOpcmV0ZSAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iCittc2dzdHIgIiAlczogYXpvbm9zw610YXRsYW4gcGFydMOtY2nDs3N0w6FibGEtdMOtcHVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIm1lZ2FkdGEgYSAtbiBrYXBjc29sw7N0OiBTZW1taSBzZW0gbcOzZG9zdWx0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzIKK21zZ2lkICJGYWlsZWQgc2F2aW5nIHRoZSBvbGQgc2VjdG9ycyAtIGFib3J0aW5nXG4iCittc2dzdHIgIk5lbSBzaWtlcsO8bHQgZWxtZW50ZW5pIGEgcsOpZ2kgc3pla3Rvcm9rYXQgLSBtZWdzemFrw610w6FzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzcgZmRpc2svc2ZkaXNrLmM6MTY0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgIk5lbSBzaWtlcsO8bHQgYSBwYXJ0w61jacOzIGtpw61yw6FzYSBhKHopICVzIGVzemvDtnrDtm5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAiaG9zc3rDuiB2YWd5IGhpw6FueW9zIGJlbWVuZXRpIHNvciAtIGtpbMOpcMOpc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiYmVtZW5ldGkgaGliYTogYSh6KSAlcyBtZXrFkXQg4oCePeKAnSBqZWxuZWsga2VsbGVuZSBrw7Z2ZXRuaWVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogdW5leHBlY3RlZCBjaGFyYWN0ZXIgJWMgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiYmVtZW5ldGkgaGliYTogdsOhcmF0bGFuIGthcmFrdGVyICglYykgYSh6KSAlcyBtZXrFkSB1dMOhblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAiYXpvbm9zw610YXRsYW4gYmVtZW5ldDogJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgImEgc3rDoW0gdMO6bCBuYWd5XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICJiZWZlamV6xZEgc3plbcOpdCBlZ3kgc3rDoW0gdXTDoW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTkzOAorbXNnaWQgIm5vIHJvb20gZm9yIHBhcnRpdGlvbiBkZXNjcmlwdG9yXG4iCittc2dzdHIgIm5pbmNzIGhlbHkgYSBwYXJ0w61jacOzbGXDrXLDs25ha1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTcxCittc2dpZCAiY2Fubm90IGJ1aWxkIHN1cnJvdW5kaW5nIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJuZW0gbGVoZXQgZmVsw6lww610ZW5pIGEga8O2csO8bHZldsWRIGtpdGVyamVzenRldHQgcGFydMOtY2nDs3RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjAyMgorbXNnaWQgInRvbyBtYW55IGlucHV0IGZpZWxkc1xuIgorbXNnc3RyICJ0w7psIHNvayBiZW1lbmV0aSBtZXrFkVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDU2Cittc2dpZCAiTm8gcm9vbSBmb3IgbW9yZVxuIgorbXNnc3RyICJOaW5jcyBoZWx5IHTDtmJiIGVsZW0gc3rDoW3DoXJhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNzUKK21zZ2lkICJJbGxlZ2FsIHR5cGVcbiIKK21zZ3N0ciAiw4lydsOpbnl0ZWxlbiB0w61wdXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIiIKKyJGaWd5ZWxtZXp0ZXTDqXM6IGEgbWVnYWRvdHQgbcOpcmV0ICglbHUpIHTDumxsw6lwdGUgYXogZW5nZWTDqWx5ZXpoZXTFkSBsZWduYWd5b2JiICIKKyJtw6lyZXRldCAoJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTEzCittc2dpZCAiV2FybmluZzogZW1wdHkgcGFydGl0aW9uXG4iCittc2dzdHIgIkZpZ3llbG1lenRldMOpczogw7xyZXMgcGFydMOtY2nDs1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBwYXJ0aXRpb24gc3RhcnQgKGVhcmxpZXN0ICVsdSlcbiIKK21zZ3N0ciAiRmlneWVsbWV6dGV0w6lzOiBoaWLDoXMgYSBwYXJ0w61jacOzIGtlemRldGUgKGxlZ2Vsc8WRICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE0MAorbXNnaWQgInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIgorbXNnc3RyICJhem9ub3PDrXRhdGxhbiBpbmTDrXRoYXTDsyBqZWx6xZEgLSB2w6FsYXNzemEgYSAtIHZhZ3kgKiBlZ3lpa8OpdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTU3IGZkaXNrL3NmZGlzay5jOjIxNzAKK21zZ2lkICJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iCittc2dzdHIgInLDqXN6bGVnZXMgYyxoLHMgbWVnaGF0w6Fyb3rDoXM/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxODEKK21zZ2lkICJFeHRlbmRlZCBwYXJ0aXRpb24gbm90IHdoZXJlIGV4cGVjdGVkXG4iCittc2dzdHIgIkEga2l0ZXJqZXN6dGV0dCBwYXJ0w61jacOzIG5lbSBhIHbDoXJ0IGhlbHllbiB2YW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIxMworbXNnaWQgImJhZCBpbnB1dFxuIgorbXNnc3RyICJoaWLDoXMgYmVtZW5ldFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjM1Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9uc1xuIgorbXNnc3RyICJ0w7psIHNvayBwYXJ0w61jacOzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyNjgKK21zZ2lkICIiCisiSW5wdXQgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ7IGFic2VudCBmaWVsZHMgZ2V0IGEgZGVmYXVsdCB2YWx1ZS5cbiIKKyI8c3RhcnQ+IDxzaXplPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorIlVzdWFsbHkgeW91IG9ubHkgbmVlZCB0byBzcGVjaWZ5IDxzdGFydD4gYW5kIDxzaXplPiAoYW5kIHBlcmhhcHMgPHR5cGU+KS5cbiIKK21zZ3N0ciAiIgorIkhhc3puw6FsamEgYXogYWzDoWJiaSBmb3Jtw6F0OyBhIGhpw6FueXrDsyBtZXrFkWsgYWxhcMOpcnRlbG1lemV0dCDDqXJ0w6lrZXQga2FwbmFrLlxuIgorIjxrZXpkZXQ+IDxtw6lyZXQ+IDx0w61wdXMgW0UsUyxMLFgsaGV4XT4gPGluZMOtdGhhdMOzIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyLDgWx0YWzDoWJhbiBjc2FrIGEgPGtlemRldD4gw6lzIGEgPG3DqXJldD4gbWVnYWTDoXNhIHN6w7xrc8OpZ2VzICjDqXMgbsOpaGEgYSAiCisiPHTDrXB1cz4pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gZGV2aWNlIC4uLlxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyBba2FwY3NvbMOza10gZXN6a8O2eiAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NQorbXNnaWQgImRldmljZTogc29tZXRoaW5nIGxpa2UgL2Rldi9oZGEgb3IgL2Rldi9zZGEiCittc2dzdHIgImVzemvDtno6IC9kZXYvaGRhLCAvZGV2L3NkYSB2YWd5IGV6ZWtoZXogaGFzb25sw7MgZXN6a8O2em7DqXYiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgIkhhc3pub3Mga2FwY3NvbMOzazoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTcKK21zZ2lkICIgICAgLXMgW29yIC0tc2hvdy1zaXplXTogbGlzdCBzaXplIG9mIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICAgLXMgW3ZhZ3kgLS1zaG93LXNpemVdOiBracOtcmphIGVneSBwYXJ0w61jacOzIG3DqXJldMOpdCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgICAtYyBbb3IgLS1pZF06ICAgICAgICBwcmludCBvciBjaGFuZ2UgcGFydGl0aW9uIElkIgorbXNnc3RyICIiCisiICAgIC1jIFt2YWd5IC0taWRdOiAgICAgICAga2nDrXJqYSB2YWd5IG3Ds2Rvc8OtdGphIGVneSBwYXJ0w61jacOzIGF6b25vc8OtdMOzasOhdCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgICAtbCBbb3IgLS1saXN0XTogICAgICBsaXN0IHBhcnRpdGlvbnMgb2YgZWFjaCBkZXZpY2UiCittc2dzdHIgIiAgICAtbCBbdmFneSAtLWxpc3RdOiAgICAgIGtpw61yamEgYXogZWd5ZXMgZXN6a8O2esO2ayBwYXJ0w61jacOzaXQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAtZCBbdmFneSAtLWR1bXBdOiAgICAgIHVneWFuYXosIGRlIGvDqXPFkWJiaSBiZW1lbmV0bmVrIG1lZ2ZlbGVsxZEgZm9ybcOhYmFuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiIKKyIgICAgLWkgW3ZhZ3kgLS1pbmNyZW1lbnRdOiBjaWxpbmRlcmVrIHN0Yi4gc3rDoW1vesOhc2EgMS10xZFsIMOpcyBuZW0gMC10w7NsIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAyCittc2dpZCAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBhY2NlcHQvcmVwb3J0IGluIHVuaXRzIG9mIHNlY3RvcnMvYmxvY2tzL2N5bGluZGVycy8iCisiTUIiCittc2dzdHIgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgZWxmb2dhZMOhcy9qZWxlbnTDqXMgc3pla3Rvci9ibG9ray9jaWxpbmRlci9NQiAiCisiZWd5c8OpZ2JlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgICAtVCBbdmFneSAtLWxpc3QtdHlwZXNdOmF6IGlzbWVydCBwYXJ0w61jacOzdMOtcHVzb2sga2nDrXLDoXNhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA0Cittc2dpZCAiICAgIC1EIFtvciAtLURPU106ICAgICAgIGZvciBET1MtY29tcGF0aWJpbGl0eTogd2FzdGUgYSBsaXR0bGUgc3BhY2UiCittc2dzdHIgIiIKKyIgICAgLUQgW3ZhZ3kgLS1ET1NdOiAgICAgICBhIERPUyBrb21wYXRpYmlsaXTDoXNob3ogZWd5IGtldsOpcyBoZWx5IGVscGF6YXJsw6FzYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAtUiBbb3IgLS1yZS1yZWFkXTogICBtYWtlIGtlcm5lbCByZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisiICAgIC1SIFt2YWd5IC0tcmUtcmVhZF06ICAgYSByZW5kc3plcm1hZyDDumpyYW9sdmFzc2EgYSBwYXJ0w61jacOzcyB0w6FibMOhdCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgICAtTiMgOiAgICAgICAgICAgICAgICBjaGFuZ2Ugb25seSB0aGUgcGFydGl0aW9uIHdpdGggbnVtYmVyICMiCittc2dzdHIgIiAgICAtTiMgOiAgICAgICAgICAgICAgICAgIGNzYWsgYSBtZWdhZG90dCBzesOhbcO6IHBhcnTDrWNpw7MgbcOzZG9zw610w6FzYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBkbyBub3QgYWN0dWFsbHkgd3JpdGUgdG8gZGlzayIKK21zZ3N0ciAiICAgIC1uIDogICAgICAgICAgICAgICAgICAgYSBsZW1leiB0w6lueWxlZ2VzIMOtcsOhc8OhbmFrIGtpaGFnecOhc2EiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDgKK21zZ2lkICIiCisiICAgIC1PIGZpbGUgOiAgICAgICAgICAgIHNhdmUgdGhlIHNlY3RvcnMgdGhhdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHRvIGZpbGUiCittc2dzdHIgIiAgICAtTyBmw6FqbCA6ICAgICAgICAgICAgICBhIGZlbMO8bMOtcmFuZMOzIHN6ZWt0b3JvayBmw6FqbGJhIG1lbnTDqXNlIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA5Cittc2dpZCAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIHJlc3RvcmUgdGhlc2Ugc2VjdG9ycyBhZ2FpbiIKK21zZ3N0ciAiIgorIiAgICAtSSBmw6FqbCA6ICAgICAgICAgICAgICBheiBlbMWRYmJpdmVsIG1lbnRldHQgc3pla3Rvcm9rIHZpc3N6YcOhbGzDrXTDoXNhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEwCittc2dpZCAiICAgIC12IFtvciAtLXZlcnNpb25dOiAgIHByaW50IHZlcnNpb24iCittc2dzdHIgIiAgICAtdiBbdmFneSAtLXZlcnNpb25dOiAgIHZlcnppw7NzesOhbSBracOtcsOhc2EiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgLT8gW29yIC0taGVscF06ICAgICAgcHJpbnQgdGhpcyBtZXNzYWdlIgorbXNnc3RyICIgICAgLT8gW3ZhZ3kgLS1oZWxwXTogICAgICBlemVuIHPDumfDsyBracOtcsOhc2EiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTIKK21zZ2lkICJkYW5nZXJvdXMgb3B0aW9uczoiCittc2dzdHIgIlZlc3rDqWx5ZXMga2FwY3NvbMOzazoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTMKK21zZ2lkICIgICAgLWcgW29yIC0tc2hvdy1nZW9tZXRyeV06IHByaW50IHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBnZW9tZXRyeSIKK21zZ3N0ciAiIgorIiAgICAtZyBbdmFneSAtLXNob3ctZ2VvbWV0cnldOiBracOtcmphIGEgcmVuZHN6ZXJtYWcgZWxrw6lwemVsw6lzw6l0IGEgIgorImdlb21ldHJpw6Fyw7NsIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE0Cittc2dpZCAiIgorIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gIgorInRhYmxlIgorbXNnc3RyICIiCisiICAgIC1nIFt2YWd5IC0tc2hvdy1nZW9tZXRyeV06IGtpw61yamEgYSBnZW9tZXRyacOhdCBhIHBhcnTDrWNpw7NzIHTDoWJsYSBhbGFwasOhbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNQorbXNnaWQgIiIKKyIgICAgLXggW29yIC0tc2hvdy1leHRlbmRlZF06IGFsc28gbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIG9uIG91dHB1dFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZXhwZWN0IGRlc2NyaXB0b3JzIGZvciB0aGVtIG9uIGlucHV0IgorbXNnc3RyICIiCisiICAgIC14IFt2YWd5IC0tc2hvdy1leHRlbmRlZF06IGZlbHNvcm9samEgYSBraWLFkXbDrXRldHQgcGFydMOtY2nDs2thdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhZ3kgbGXDrXLDs2thdCB2w6FyIGhvenrDoWp1ayBhIGJlbWVuZXRyxZFsIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiIKKyIgICAgLUwgIFt2YWd5IC0tTGludXhdOiAgICBuZW0gamVsZXogTGludXggYWxhdHQgbMOpbnllZ3RlbGVuIGRvbGdvayBtaWF0dCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAtcSAgW29yIC0tcXVpZXRdOiAgICAgIHN1cHByZXNzIHdhcm5pbmcgbWVzc2FnZXMiCittc2dzdHIgIiAgICAtcSAgW3ZhZ3kgLS1xdWlldF06ICAgIGZpZ3llbG1lenRldMWRIMO8emVuZXRlayBlbG7DqW3DrXTDoXNhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiRmVsw7xsYsOtcsOhbGhhdGphIGF6IMOpcnrDqWtlbHQgZ2VvbWV0cmnDoXQgYSBrw7Z2ZXRrZXrFkWtrZWw6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIwCittc2dpZCAiICAgIC1DIyBbb3IgLS1jeWxpbmRlcnMgI106c2V0IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1DIyBbdmFneSAtLWN5bGluZGVycyAjXTogIGEgaGFzem7DoWxhbmTDsyBjaWxpbmRlcnN6w6FtIGJlw6FsbMOtdMOhc2EiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjEKK21zZ2lkICIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICBzZXQgdGhlIG51bWJlciBvZiBoZWFkcyB0byB1c2UiCittc2dzdHIgIiAgICAtSCMgW3ZhZ3kgLS1oZWFkcyAjXTogICAgICBhIGhhc3puw6FsYW5kw7MgZmVqc3rDoW0gYmXDoWxsw610w6FzYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLVMjIFt2YWd5IC0tc2VjdG9ycyAjXTogICAgYSBoYXN6bsOhbGFuZMOzIHN6ZWt0b3JzesOhbSBiZcOhbGzDrXTDoXNhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIzCittc2dpZCAiWW91IGNhbiBkaXNhYmxlIGFsbCBjb25zaXN0ZW5jeSBjaGVja2luZyB3aXRoOiIKK21zZ3N0ciAiTGV0aWx0aGF0amEgYXogw7Zzc3plcyBrb256aXN6dGVuY2lhLWVsbGVuxZFyesOpc3QgYSBrw7Z2ZXRrZXrFkWtrZWw6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzI0Cittc2dpZCAiICAgIC1mICBbb3IgLS1mb3JjZV06ICAgICAgZG8gd2hhdCBJIHNheSwgZXZlbiBpZiBpdCBpcyBzdHVwaWQiCittc2dzdHIgIiIKKyIgICAgLWYgIFt2YWd5IC0tZm9yY2VdOiAgICBwYXJhbmNzIHbDqWdyZWhhanTDoXNhLCBha2tvciBpcyBoYSDDqXJ0ZWxtZXRsZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzAKK21zZ2lkICJVc2FnZToiCittc2dzdHIgIkhhc3puw6FsYXQ6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZVx0XHQgbGlzdCBhY3RpdmUgcGFydGl0aW9ucyBvbiBkZXZpY2VcbiIKK21zZ3N0ciAiJXMgZXN6a8O2elx0XHQgYXogZXN6a8O2eiBha3TDrXYgcGFydMOtY2nDs2luYWsgZmVsc29yb2zDoXNhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIiCisiJXMgZXN6a8O2eiBuMSBuMi4uLiAgYXogbjEuLi4gcGFydMOtY2nDs2sgYWt0aXbDoWzDoXNhLCBhIHTDtmJiaSBkZWFrdGl2w6Fsw6FzYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIlcyAtQW4gZXN6a8O2elx0IGF6IG4uIHBhcnTDrWNpw7MgYWt0aXbDoWzDoXNhLCBhIHTDtmJiaSBkZWFrdGl2w6Fsw6FzYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBzZmRpc2sgIgorImRvZXNuJ3Qgc3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRklHWUVMTUVaVEVUw4lTOiBBKHopIOKAniVz4oCdIGVzemvDtnrDtm4gR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgdGFsw6FsaGF0w7MhXG4iCisiQXogc2ZkaXNrIHNlZ8OpZHByb2dyYW0gbmVtIHTDoW1vZ2F0amEgYSBHUFQtdC4gSGFzem7DoWxqYSBhIEdOVSBQYXJ0ZWQgIgorInByb2dyYW1vdC5cbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICJFenQgYXogZWxsZW7FkXJ6w6lzdCBhIC0tZm9yY2Uga2FwY3NvbMOzIHNlZ8OtdHPDqWfDqXZlbCBiw61yw6FsaGF0amEgZmVsw7xsLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDk1Cittc2dpZCAibm8gY29tbWFuZD9cbiIKK21zZ3N0ciAibmluY3MgcGFyYW5jcz9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjYyNworIywgYy1mb3JtYXQKK21zZ2lkICJ0b3RhbDogJWxsdSBibG9ja3NcbiIKK21zZ3N0ciAiw7Zzc3plc2VuOiAlbGx1IGJsb2trXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzAKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tcHJpbnQtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXJcbiIKK21zZ3N0ciAiaGFzem7DoWxhdDogc2ZkaXNrIC0tcHJpbnQtaWQgZXN6a8O2eiBwYXJ0w61jacOzc3rDoW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MgorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgSWRcbiIKK21zZ3N0ciAiaGFzem7DoWxhdDogc2ZkaXNrIC0tY2hhbmdlLWlkIGVzemvDtnogcGFydMOtY2nDs3N6w6FtIGF6b25vc8OtdMOzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzQKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0taWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgW0lkXVxuIgorbXNnc3RyICJoYXN6bsOhbGF0OiBzZmRpc2sgLS1pZCBlc3prw7Z6IHBhcnTDrWNpw7NzesOhbSBbYXpvbm9zw610w7NdXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2ODEKK21zZ2lkICJjYW4gc3BlY2lmeSBvbmx5IG9uZSBkZXZpY2UgKGV4Y2VwdCB3aXRoIC1sIG9yIC1zKVxuIgorbXNnc3RyICJjc2FrIGVneSBlc3prw7Z6IGFkaGF0w7MgbWVnIChraXbDqXZlIGEgLWwgdmFneSAtcyBrYXBjc29sw7N0KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAiYSh6KSAlcyBuZW0gbnlpdGhhdMOzIG1lZyDDrXLDoXNyYSDDqXMgb2x2YXPDoXNyYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgImEoeikgJXMgbmVtIG55aXRoYXTDsyBtZWcgb2x2YXPDoXNyYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczogUmVuZGJlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzUzIGZkaXNrL3NmZGlzay5jOjI3ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjeWxpbmRlcnMsICVsZCBoZWFkcywgJWxkIHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiJXM6ICVsZCBjaWxpbmRlciwgJWxkIGZlaiwgJWxkIHPDoXYgc3pla3Rvcm9ua8OpbnRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IHNpemUgb2YgJXNcbiIKK21zZ3N0ciAiTmVtIGvDqXJoZXTFkSBsZSBhKHopICVzIG3DqXJldGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgImhpYsOhcyBha3TDrXYgYsOhanQ6IDB4JXggYSAweDgwIGhlbHlldHRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkwMyBmZGlzay9zZmRpc2suYzoyOTU4IGZkaXNrL3NmZGlzay5jOjI5OTEKK21zZ2lkICIiCisiRG9uZVxuIgorIlxuIgorbXNnc3RyICIiCisiS8Opc3pcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgJWQgYWN0aXZlIHByaW1hcnkgcGFydGl0aW9ucy4gVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sXG4iCisiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIKK21zZ3N0ciAiIgorIiVkIGFrdMOtdiBlbHPFkWRsZWdlcyBwYXJ0w61jacOzIHRhbMOhbGhhdMOzLiBFeiBuZW0gcHJvYmzDqW1hIGEgTElMTy1uYWssIGRlIGEgIgorIkRPU1xuIgorIk1CUiBjc2FrIGEgcG9udG9zYW4gZWd5IGFrdMOtdiBwYXJ0w61jacOzdCB0YXJ0YWxtYXrDsyBsZW1lenLFkWwga8OpcGVzICIKKyJlbGluZHVsbmkuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGhhcyBpZCAleCBhbmQgaXMgbm90IGhpZGRlblxuIgorbXNnc3RyICJhKHopICVzIHBhcnTDrWNpw7MgYXpvbm9zw610w7NqYSAleCDDqXMgbmVtIHJlanRldHRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgSWQgJWx4XG4iCittc2dzdHIgIkhpYsOhcyBhem9ub3PDrXTDszogJWx4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAiQSBsZW1leiBqZWxlbmxlZyBoYXN6bsOhbGF0YmFuIHZhbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAiVsOpZ3pldGVzIGhpYmE6IGEoeikg4oCeJXPigJ0gbmVtIHRhbMOhbGhhdMOzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIkZpZ3llbG1lenRldMOpczogYSh6KSAlcyBuZW0gYmxva2tlc3prw7Z6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzIKK21zZ2lkICJDaGVja2luZyB0aGF0IG5vLW9uZSBpcyB1c2luZyB0aGlzIGRpc2sgcmlnaHQgbm93IC4uLlxuIgorbXNnc3RyICIiCisiRWxsZW7FkXJ6w6lzcmUga2Vyw7xsLCBob2d5IHBpbGxhbmF0bnlpbGFnIHNlbmtpIHNlbSBoYXN6bsOhbGphIGEgbGVtZXp0Li4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzQKK21zZ2lkICIiCisiXG4iCisiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UgLSByZXBhcnRpdGlvbmluZyBpcyBwcm9iYWJseSBhIGJhZCBpZGVhLlxuIgorIlVtb3VudCBhbGwgZmlsZSBzeXN0ZW1zLCBhbmQgc3dhcG9mZiBhbGwgc3dhcCBwYXJ0aXRpb25zIG9uIHRoaXMgZGlzay5cbiIKKyJVc2UgdGhlIC0tbm8tcmVyZWFkIGZsYWcgdG8gc3VwcHJlc3MgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkEgbGVtZXogamVsZW5sZWcgaGFzem7DoWxhdGJhbiB2YW47IGF6IMO6anJhcGFydGljaW9uw6Fsw6FzYSByb3NzeiDDtnRsZXQuXG4iCisiVsOhbGFzc3phIGxlIGF6IMO2c3N6ZXMgZsOhamxyZW5kc3plcnQgw6lzIGhhc3puw6FsamEgYSBzd2Fwb2ZmIHBhcmFuY3NvdCBhXG4iCisibGFwb3rDs3BhcnTDrWNpw7NrIGtpa2FwY3NvbMOhc8OhaG96LiBIYXN6bsOhbGphIGEgLS1uby1yZXJlYWQga2FwY3NvbMOzdCBlemVuXG4iCisiZWxsZW7FkXJ6w6lzIGxldGlsdMOhc8OhaG96LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM4Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgYWxsIGNoZWNrcy5cbiIKK21zZ3N0ciAiSGFzem7DoWxqYSBhIC0tZm9yY2Uga2FwY3NvbMOzdCBheiDDtnNzemVzIGVsbGVuxZFyesOpcyBmZWzDvGxiw61yw6Fsw6Fzw6Fob3ouXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICJSZW5kYmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2xkIHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiUsOpZ2kgaGVseXpldDpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCBjaGFuZ2UgaXRcbiIKK21zZ3N0ciAiQSh6KSAlZC4gcGFydMOtY2nDsyBuZW0gbMOpdGV6aWssIG5lbSBsZWhldCBtw7Nkb3PDrXRhbmlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgc2l0dWF0aW9uOlxuIgorbXNnc3RyICLDmmogaGVseXpldDpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisiTmVtIHN6ZXJldGVtIGV6ZWtldCBhIHBhcnTDrWNpw7NrYXQgLSBzZW1taXQgc2VtIHbDoWx0b3pvdHQuXG4iCisiKEhhIHTDqW55bGVnIGV6dCBha2FyamEsIGhhc3puw6FsamEgYSAtLWZvcmNlIGthcGNzb2zDs3QuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDcxCittc2dpZCAiSSBkb24ndCBsaWtlIHRoaXMgLSBwcm9iYWJseSB5b3Ugc2hvdWxkIGFuc3dlciBOb1xuIgorbXNnc3RyICJOZW0gc3plcmV0ZW0gZXp0IC0gQWrDoW5sb3R0IGEgTmVtIHbDoWxhc3pcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJBcmUgeW91IHNhdGlzZmllZCB3aXRoIHRoaXM/IFt5bnFdICIKK21zZ3N0ciAiRWzDqWdlZGV0dCBlenplbD8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIHlvdSB3YW50IHRvIHdyaXRlIHRoaXMgdG8gZGlzaz8gW3lucV0gIgorbXNnc3RyICJWYWzDs2JhbiBsZW1lenJlIGFrYXJqYSBlenQgw61ybmk/IFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisic2ZkaXNrOiBwcmVtYXR1cmUgZW5kIG9mIGlucHV0XG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZmRpc2s6IGlkxZEgZWzFkXR0IHbDqWdlIGEgYmVtZW5ldG5la1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiS2lsw6lww6lzIC0gc2VtbWkgc2VtIHbDoWx0b3pvdHRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIgorbXNnc3RyICJBeiB5LCBuLCBxIChpZ2VuLCBuZW0sIGtpbMOpcMOpcykgZWd5aWvDqXZlbCB2w6FsYXN6b2xqb25cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VjY2Vzc2Z1bGx5IHdyb3RlIHRoZSBuZXcgcGFydGl0aW9uIHRhYmxlXG4iCisiXG4iCittc2dzdHIgIiIKKyJBeiDDumogcGFydMOtY2nDs3MgdMOhYmxhIHNpa2VyZXNlbiBracOtcnZhXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorIkhhIERPUyBwYXJ0w61jacOzdCBob3pvdHQgbMOpdHJlIHZhZ3kgbcOzZG9zw610b3R0LCBww6lsZMOhdWw6IC9kZXYvZm9vNywgYWtrb3JcbiIKKyJoYXN6bsOhbGphIGEgZGQoMSkgcGFyYW5jc290IGF6IGVsc8WRIDUxMiBiw6FqdCBraW51bGzDoXrDoXNob3o6XG4iCisiZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MVxuIgorIihOw6l6emUgbWVnIGF6IGZkaXNrKDgpIGvDqXppa8O2bnl2b2xkYWx0KVxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiVzOiAlcyBuZW0gbnlpdGhhdMOzIG1lZzogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGJhZCBmb3JtYXQgb24gbGluZSAlZCBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjM1MgorbXNnaWQgIiIKKyJXQVJOSU5HOiBZb3VyIC9ldGMvZnN0YWIgZG9lcyBub3QgY29udGFpbiB0aGUgZnNjayBwYXNzbm9cbiIKKyJcdGZpZWxkLiAgSSB3aWxsIGtsdWRnZSBhcm91bmQgdGhpbmdzIGZvciB5b3UsIGJ1dCB5b3VcbiIKKyJcdHNob3VsZCBmaXggeW91ciAvZXRjL2ZzdGFiIGZpbGUgYXMgc29vbiBhcyB5b3UgY2FuLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjQ2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZnNjazogJXM6IG5vdCBmb3VuZFxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIG5lbSB0YWzDoWxoYXTDsyIKKworIzogZnNjay9mc2NrLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZy4uLiAlcyBmb3IgZGV2aWNlICVzIGV4aXRlZCB3aXRoIHNpZ25hbCAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKKyMsIGZ1enp5Cittc2dpZCAiQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBmaWxlc3lzdGVtIHR5cGVzXG4iCittc2dzdHIgIm1vdW50OiBtZWcga2VsbCBhZG5pYSBhIGbDoWpscmVuZHN6ZXIgdMOtcHVzw6F0IgorCisjOiBmc2NrL2ZzY2suYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBza2lwcGluZyBiYWQgbGluZSBpbiAvZXRjL2ZzdGFiOiBiaW5kIG1vdW50IHdpdGggbm9uemVybyBmc2NrIHBhc3MgIgorIm51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIgorbXNnc3RyICIlczogYSh6KSAlcyBuZW0gZWd5IHDDoXJodXphbW9zIChscCkgZXN6a8O2ei5cbiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKKyMsIGZ1enp5Cittc2dpZCAiQ2hlY2tpbmcgYWxsIGZpbGUgc3lzdGVtcy5cbiIKK21zZ3N0ciAiRsOhamxyZW5kc3plci1lbGxlbsWRcnrDqXMga8OpbnlzemVyw610w6lzZSBhIGvDtnZldGtlesWRbjog4oCeJXPigJ0uXG4iCisKKyM6IGZzY2svZnNjay5jOjEwNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS13YWl0aW5nLS0gKHBhc3MgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTA4NQorIywgZnV6enkKK21zZ2lkICIiCisiVXNhZ2U6IGZzY2sgWy1BTU5QUlRWXSBbIC1DIFsgZmQgXSBdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBbZmlsZXN5cyAuLi5dXG4iCittc2dzdHIgIiIKKyJIYXN6bsOhbGF0OiBta2ZzIFstVl0gWy10IGbDoWpscmVuZHN6ZXJ0w61wdXNdIFtmw6FqbHJlbmRzemVyLWJlw6FsbMOtdMOhc29rXSAiCisiZXN6a8O2eiBbbcOpcmV0XVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgZGV2aWNlc1xuIgorbXNnc3RyICIlczogYSh6KSAlcyBuZW0gZWd5IHDDoXJodXphbW9zIChscCkgZXN6a8O2ei5cbiIKKworIzogZnNjay9mc2NrLmM6MTEzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiJXMgbmVtIG55aXRoYXTDsyBtZWc6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklzIC9wcm9jIG1vdW50ZWQ/XG4iCittc2dzdHIgIiVzIGxldsOhbGFzenR2YVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBmaW5kIG1hdGNoaW5nIGZpbGVzeXN0ZW06ICVzXG4iCittc2dzdHIgIkEgbWVnbWFyYWR0IGbDoWpscmVuZHN6ZXJlayBsZXbDoWxhc3p0w6FzYS4uLiIKKworIzogZnNjay9mc2NrLmM6MTE1NiBmc2NrL2ZzY2suYzoxMjQyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iCittc2dzdHIgIiVzOiBpc21lcmV0bGVuIGFyZ3VtZW50dW06ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZzY2sgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBhKHopICVzIGNzb21hZ2LDs2xcbiIKKworIzogZnNjay9mc2NrLmM6MTI4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZzY2tfcGF0aFxuIgorbXNnc3RyICJOZW0gZm9nbGFsaGF0w7MgbGUgcHVmZmVyIGF6IGlub2RlLW9rbmFrIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MjI5Cittc2dpZCAiVHJ5IGBnZXRvcHQgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiVG92w6FiYmkgaW5mb3Jtw6FjacOzw6lydCBhZGphIGtpIGEg4oCeZ2V0b3B0IC0taGVscOKAnSBwYXJhbmNzb3QuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyOTUKK21zZ2lkICJlbXB0eSBsb25nIG9wdGlvbiBhZnRlciAtbCBvciAtLWxvbmcgYXJndW1lbnQiCittc2dzdHIgIsO8cmVzIGhvc3N6w7oga2FwY3NvbMOzIGEgLWwgdmFneSAtLWxvbmcgcGFyYW3DqXRlciB1dMOhbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAiaXNtZXJldGxlbiBwYXJhbmNzw6lydGVsbWV6xZEgYSAtcyB2YWd5IC0tc2hlbGwgcGFyYW3DqXRlciB1dMOhbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogZ2V0b3B0IGthcGNzb2zDsy1rYXJha3RlcmzDoW5jIHBhcmFtw6l0ZXJla1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIxCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgZ2V0b3B0IFtrYXBjc29sw7NrXSBbLS1dIGthcGNzb2zDsy1rYXJha3RlcmzDoW5jIHBhcmFtw6l0ZXJla1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIyCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B0aW9uc10gWy0tXVxuIgorbXNnc3RyICIiCisiICAgICAgIGdldG9wdCBba2FwY3NvbMOza10gLW98LS1vcHRpb25zIGthcGNzb2zDsy1rYXJha3RlcmzDoW5jIFtrYXBjc29sw7NrXSAiCisiWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAgcGFyYW3DqXRlcmVrXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjQKK21zZ2lkICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4iCittc2dzdHIgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgICAgIEVuZ2Vkw6lseWV6aSBhIGvDtnTFkWplbGxlbCBrZXpkxZFkxZEgaG9zc3rDulxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrYXBjc29sw7NrYXRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNQorbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBUaGlzIHNtYWxsIHVzYWdlIGd1aWRlXG4iCittc2dzdHIgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgRXogYSBzw7pnw7NzesO2dmVnXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiIgorIiAgLWwsIC0tbG9uZ29wdGlvbnM9aG9zc3rDul9rYXBjc29sw7NrICAgIEZlbGlzbWVyZW5kxZEgaG9zc3rDuiBrYXBjc29sw7NrXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjcKK21zZ2lkICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1lIHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIKK21zZ3N0ciAiIgorIiAgLW4sIC0tbmFtZT1wcm9ncmFtbsOpdiAgICAgICAgICAgIEEgaGliw6FrIGV6ZW4gbsOpdiBhbGF0dCBrZXLDvGxuZWsgIgorImplbGVudMOpc3JlXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjgKK21zZ2lkICIgIC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLW8sIC0tb3B0aW9ucz1rYXBjc29sw7Mta2FyYWt0ZXJsw6FuYyAgRmVsaXNtZXJlbmTFkSByw7Z2aWQga2FwY3NvbMOza1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIiCisiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgICAgICBBIGhpYmFqZWxlbnTDqXMgbGV0aWx0w6FzYSBhIGdldG9wdCgzKS1uYWtcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMAorbXNnaWQgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBub3JtYWwgb3V0cHV0XG4iCittc2dzdHIgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICAgICAgTmluY3Mgbm9ybcOhbCBraW1lbmV0XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiIgorIiAgLXMsIC0tc2hlbGw9cGFyYW5jc8OpcnRlbG1lesWRICAgICBBIHBhcmFuY3PDqXJ0ZWxtZXrFkSBpZMOpesOpc2kgIgorIm1lZ8OhbGxhcG9kw6FzYWluYWtcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmXDoWxsw610w6FzYVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICAgICAgQSBnZXRvcHQoMSkgdmVyemnDsyB0ZXN6dGVsw6lzZVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMzCittc2dpZCAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIERvIG5vdCBxdW90ZSB0aGUgb3V0cHV0XG4iCittc2dzdHIgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICAgICAgTmVtIGlkw6l6xZFqZWxlemkgYSBraW1lbmV0ZXRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzNAorbXNnaWQgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBPdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorbXNnc3RyICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgIFZlcnppw7NpbmZvcm3DoWNpw7NrIGtpw61yw6FzYVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mzg4IGdldG9wdC9nZXRvcHQuYzo0NDcKK21zZ2lkICJtaXNzaW5nIG9wdHN0cmluZyBhcmd1bWVudCIKK21zZ3N0ciAiaGnDoW55esOzIGthcGNzb2zDsy1rYXJha3RlcmzDoW5jIHBhcmFtw6l0ZXIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChraWLFkXbDrXRldHQpIDEuMS40XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0NDEKK21zZ2lkICJpbnRlcm5hbCBlcnJvciwgY29udGFjdCB0aGUgYXV0aG9yLiIKK21zZ3N0ciAiYmVsc8WRIGhpYmEsIHZlZ3llIGZlbCBhIGthcGNzb2xhdG90IGEgc3plcnrFkXZlbC4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZWQgZnJvbSBNSUxPXG4iCittc2dzdHIgImEgTUlMTy1yw7NsIGluZHVsdFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUnVmZmlhbiBCQ0QgY2xvY2tcbiIKK21zZ3N0ciAiUnVmZmlhbiBCQ0Qgw7NyYVxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2xvY2twb3J0IGFkanVzdGVkIHRvIDB4JXhcbiIKK21zZ3N0ciAiYXogw7NyYXBvcnQgMHgleCDDqXJ0w6lraGV6IGlnYXrDrXR2YVxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICJzem9rYXRsYW4gVE9ZIChUaW1lIG9mIFllYXIpIVxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGF0b21pYyAlcyBmYWlsZWQgZm9yIDEwMDAgaXRlcmF0aW9ucyEiCittc2dzdHIgIiVzOiBheiBhdG9taSAlcyBtZWdoacO6c3VsdCAxMDAwIGlzbcOpdGzDqXNiZW4hIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiByZWFkIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAvZGV2L3BvcnQ6ICVzIgorbXNnc3RyICJBIC9kZXYvcG9ydCBlc3prw7Z6IG5lbSBueWl0aGF0w7MgbWVnOiAlcyIKKworIzogaHdjbG9jay9jbW9zLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkkgZmFpbGVkIHRvIGdldCBwZXJtaXNzaW9uIGJlY2F1c2UgSSBkaWRuJ3QgdHJ5LlxuIgorbXNnc3RyICJOZW0gc2lrZXLDvGx0IGVuZ2Vkw6lseXQga2FwbmksIG1pdmVsIG5lbSBpcyBwcsOzYsOhbHRhbS5cbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIHVuYWJsZSB0byBnZXQgSS9PIHBvcnQgYWNjZXNzOiAgdGhlIGlvcGwoMykgY2FsbCBmYWlsZWQuXG4iCittc2dzdHIgIiIKKyIlcyBuZW0ga8OpcGVzIG1lZ2thcG5pIGF6IEkvTyBwb3J0IGVsw6lyw6lzw6l0LiBBeiBpb3BsKDMpIGjDrXbDoXNhIG1lZ2hpw7pzdWx0LlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICJWYWzDs3N6w61uxbFsZWcgcm9vdCBqb2dvc3VsdHPDoWcgc3rDvGtzw6lnZXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluICVzIHRpbWUuXG4iCittc2dzdHIgIkZlbHRlc3N6w7xrLCBob2d5IGEgaGFyZHZlcsOzcmEgYSh6KSAlcyBpZMWRYmVuIG1hcmFkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAiaGVseWkiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2FybmluZzogdW5yZWNvZ25pemVkIHRoaXJkIGxpbmUgaW4gYWRqdGltZSBmaWxlXG4iCittc2dzdHIgIiVzOiBGaWd5ZWxtZXp0ZXTDqXM6IGF6IGFkanRpbWUgZsOhamwgaGFybWFkaWsgc29yYSBpc21lcmV0bGVuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIihWw6FydCDDqXJ0w6lrOiDigJ5VVEPigJ0gdmFneSDigJ5MT0NBTOKAnSB2YWd5IHNlbW1pLilcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiVXRvbHPDsyBjc8O6c3rDsyBpZ2F6w610w6FzOiAxOTY5IHV0w6FuICVsZCBtw6Fzb2RwZXJjY2VsXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJVdG9sc8OzIGJlw6FsbMOtdMOhczogMTk2OSB1dMOhbiAlbGQgbcOhc29kcGVyY2NlbFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICJBIGhhcmR2ZXLDs3JhIGEoeikgJXMgaWTFkXQgbXV0YXRqYVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJ1bmtub3duIgorbXNnc3RyICJpc21lcmV0bGVuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBmb3IgY2xvY2sgdGljay4uLlxuIgorbXNnc3RyICJWw6FyYWtvesOhcyBheiDDs3JhIMO8dMOpc8OpcmUuLi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiICAgYXogw7NyYcO8dMOpcyBtZWd2YW5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIsOJcnbDqW55dGVsZW4gw6lydMOpa2VrIGEgaGFyZHZlcsOzcsOhYmFuOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQyMAorIywgYy1mb3JtYXQKK21zZ2lkICJIdyBjbG9jayB0aW1lIDogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiIgorIkEgaGFyZHZlcsOzcmEgaWRlamU6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgbcOhc29kcGVyYyAxOTY5IMOzdGFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIkEgaGFyZHZlcsOzcsOhYsOzbCBvbHZhc290dCBpZMWROiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIEhhcmR3YXJlIENsb2NrIHRvICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICJBIGhhcmR2ZXLDs3JhIGJlw6FsbMOtdMOhc2EgJS4yZDolLjJkOiUuMmQgPSAlbGQgbcOhc29kcGVyYyAxOTY5IMOzdGFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb2NrIG5vdCBjaGFuZ2VkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJBeiDDs3JhIG5lbSB2w6FsdG96b3R0IC0gY3NhayB0ZXN6dC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIkEgcmVmZXJlbmNpYSBpZMWRIMOzdGEgZWx0ZWx0IGlkxZEgJS42ZiBtw6Fzb2RwZXJjLlxuIgorIlbDoXJha296w6FzIGEga8O2dmV0a2V6xZEgZWfDqXN6IG3DoXNvZHBlcmNpZy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgcmVnaXN0ZXJzIGNvbnRhaW4gdmFsdWVzIHRoYXQgYXJlIGVpdGhlciBpbnZhbGlkIChlLmcuICIKKyI1MHRoIGRheSBvZiBtb250aCkgb3IgYmV5b25kIHRoZSByYW5nZSB3ZSBjYW4gaGFuZGxlIChlLmcuIFllYXIgMjA5NSkuXG4iCittc2dzdHIgIiIKKyJBIGhhcmR2ZXLDs3JhIHJlZ2lzenRlcmVpIMOpcnbDqW55dGVsZW4gKHDDqWxkw6F1bCBhIGjDs25hcCA1MC4gbmFwamEpIHZhZ3kgYSAiCisia2V6ZWxoZXTFkW4gdMO6bGkgdGFydG9tw6FueWJhbiBsw6l2xZEgKHDDqWxkw6F1bCAyMDk1LcO2cyDDqXYpIMOpcnTDqWtldCB0YXJ0YWxtYXpuYWtcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiJXMgICUuNmYgbcOhc29kcGVyY1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gLS1kYXRlIG9wdGlvbiBzcGVjaWZpZWQuXG4iCittc2dzdHIgIkEg4oCeLS1kYXRl4oCdIGthcGNzb2zDsyBuaW5jcyBtZWdhZHZhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1kYXRlIGFyZ3VtZW50IHRvbyBsb25nXG4iCittc2dzdHIgIkEgLS1kYXRlIHBhcmFtw6l0ZXJlIHTDumwgaG9zc3rDulxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiBpcyBub3QgYSB2YWxpZCBkYXRlLlxuIgorIkluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHF1b3RhdGlvbiBtYXJrcy5cbiIKK21zZ3N0ciAiIgorIkEgLS1kYXRlIGthcGNzb2zDsyDDqXJ0w6lrZSBuZW0gZWd5IMOpcnbDqW55ZXMgZMOhdHVtLlxuIgorIlBvbnRvc2FiYmFuOiBpZMOpesWRamVsZWtldCB0YXJ0YWxtYXouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJc3N1aW5nIGRhdGUgY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiRMOhdHVtIHBhcmFuY3Mga2lhZMOhc2E6ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0MAorbXNnaWQgIlVuYWJsZSB0byBydW4gJ2RhdGUnIHByb2dyYW0gaW4gL2Jpbi9zaCBzaGVsbC4gcG9wZW4oKSBmYWlsZWQiCittc2dzdHIgIiIKKyJBIOKAnmRhdGXigJ0gcHJvZ3JhbSBuZW0gZnV0dGF0aGF0w7MgYSAvYmluL3NoIHBhcmFuY3PDqXJ0ZWxtZXrFkWJlbi4gQSBwb3BlbigpICIKKyJtZWdoacO6c3VsdCIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3BvbnNlIGZyb20gZGF0ZSBjb21tYW5kID0gJXNcbiIKK21zZ3N0ciAiYSBkYXRlIHBhcmFuY3MgdsOhbGFzemEgPSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHVuZXhwZWN0ZWQgcmVzdWx0cy5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICAlc1xuIgorbXNnc3RyICIiCisiQSh6KSAlcyDDoWx0YWwgbWVnaMOtdm90dCBkYXRlIHBhcmFuY3MgdsOhcmF0bGFuIGVyZWRtw6lueXQgYWRvdHQgdmlzc3phLlxuIgorIkEga2lhZG90dCBwYXJhbmNzOlxuIgorIiAgJXNcbiIKKyJBIHbDoWxhc3o6XG4iCisiICAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIGludGVnZXIgd2hlcmUgIgorInRoZSBjb252ZXJ0ZWQgdGltZSB2YWx1ZSB3YXMgZXhwZWN0ZWQuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAlc1xuIgorbXNnc3RyICIiCisiQSh6KSAlcyDDoWx0YWwgbWVnaMOtdm90dCBkYXRlIHBhcmFuY3MgYXogw6F0YWxha8OtdG90dCBpZMWRw6lydMOpayBoZWx5w6luIG5lbSBlZ3kgIgorImVnw6lzeiBzesOhbW90IGFkb3R0IHZpc3N6YS5cbiIKKyJBIGtpYWRvdHQgcGFyYW5jczpcbiIKKyIgICVzXG4iCisiQSB2w6FsYXN6OlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgImRhdGUgc3RyaW5nICVzIGVxdWF0ZXMgdG8gJWxkIHNlY29uZHMgc2luY2UgMTk2OS5cbiIKK21zZ3N0ciAiYSh6KSAlcyBkw6F0dW0ga2FyYWt0ZXJsw6FuYyBlZ3llbmzFkSAlbGQgbcOhc29kcGVyY2NlbCAxOTY5IMOzdGEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorIkEgaGFyZHZlcsOzcmEgbmVtIHRhcnRhbG1heiDDqXJ2w6lueWVzIGlkxZF0LCDDrWd5IG5lbSBsZWhldCBiZcOhbGzDrXRhbmkgYSAiCisicmVuZHN6ZXJpZMWRdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI3IGh3Y2xvY2svaHdjbG9jay5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIHNldHRpbWVvZmRheTpcbiIKK21zZ3N0ciAiQSBzZXR0aW1lb2ZkYXkgaMOtdsOhc2E6XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyOCBod2Nsb2NrL2h3Y2xvY2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKK21zZ3N0ciAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMwIGh3Y2xvY2svaHdjbG9jay5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKK21zZ3N0ciAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMyBod2Nsb2NrL2h3Y2xvY2suYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgc3lzdGVtIGNsb2NrIGJlY2F1c2UgcnVubmluZyBpbiB0ZXN0IG1vZGUuXG4iCittc2dzdHIgIkEgcmVuZHN6ZXLDs3JhIHRlc3p0IG3Ds2RiYW4gbmVtIGtlcsO8bCBiZcOhbGzDrXTDoXNyYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQyIGh3Y2xvY2svaHdjbG9jay5jOjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIHN1cGVydXNlciB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICJSZW5kc3plcmdhemRhaSBqb2cgc3rDvGtzw6lnZXMgYSByZW5kc3plcsOzcmEgYmXDoWxsw610w6Fzw6Fob3ouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgIkEgc2V0dGltZW9mZGF5KCkgbmVtIHNpa2Vyw7xsdCIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzgxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICJyZW5kc3plcmlkxZEgb2x2YXPDoXNhIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRVVEM6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIHRoZSBIYXJkd2FyZSBDbG9jayBwcmV2aW91c2x5IGNvbnRhaW5lZCAiCisiZ2FyYmFnZS5cbiIKK21zZ3N0ciAiIgorIkEgY3PDunN6dGF0w6FzaSB0w6lueWV6xZEgbmVtIGtlcsO8bCBiZcOhbGzDrXTDoXNyYSwgbWVydCBhIGhhcmR2ZXLDs3JhIGtvcsOhYmJhbiAiCisic3plbWV0ZXQgdGFydGFsbWF6b3R0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgbGFzdCBjYWxpYnJhdGlvbiB0aW1lIGlzIHplcm8sXG4iCisic28gaGlzdG9yeSBpcyBiYWQgYW5kIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciBpcyBuZWNlc3NhcnkuXG4iCittc2dzdHIgIiIKKyJBIGNzw7pzenRhdMOhc2kgdMOpbnllesWRIG5lbSBrZXLDvGwgYmXDoWxsw610w6FzcmEsIG1lcnQgYXogdXRvbHPDsyBrYWxpYnLDoWNpw7MgaWRlamUgIgorIjAsXG4iCisiw61neSBheiBlbMWRem3DqW55ZWsgaGliw6FzYWsgw6lzIMO6aiBrYWxpYnLDoWNpw7Mgc3rDvGtzw6lnZXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBpdCBoYXMgYmVlbiBsZXNzIHRoYW4gYSBkYXkgc2luY2UgdGhlICIKKyJsYXN0IGNhbGlicmF0aW9uLlxuIgorbXNnc3RyICIiCisiQSBjc8O6c3p0YXTDoXNpIHTDqW55ZXrFkSBuZW0ga2Vyw7xsIGJlw6FsbMOtdMOhc3JhLCBtZXJ0IG3DqWcgbmVtIHRlbHQgZWwgZWd5IG5hcCBheiAiCisidXRvbHPDsyBrYWxpYnLDoWNpw7Mgw7N0YS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yICIKKyJvZiAlZiBzZWNvbmRzL2RheS5cbiIKKyJBZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJ5ICVmIHNlY29uZHMvZGF5XG4iCittc2dzdHIgIiIKKyJBeiDDs3JhICUuMWYgbcOhc29kcGVyY2V0IGNzw7pzem90dCBheiBlbG3Dumx0ICVkIG3DoXNvZHBlcmNiZW4sIGEgbmFwaSAlZiAiCisibcOhc29kcGVyYyBjc8O6c3p0YXTDoXNpIHTDqW55ZXrFkSBlbGxlbsOpcmUuXG4iCisiQSBjc8O6c3p0YXTDoXNpIHTDqW55ZXrFkSBiZcOhbGzDrXR2YSBuYXBpICVmIG3DoXNvZHBlcmNyZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJBeiB1dG9sc8OzIGlnYXrDrXTDoXMgw7N0YSBlbHRlbHQgaWTFkSAlZCBtw6Fzb2RwZXJjXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkIHRvIGluc2VydCAlZCBzZWNvbmRzIGFuZCByZWZlciB0aW1lIGJhY2sgJS42ZiBzZWNvbmRzIGFnb1xuIgorbXNnc3RyICIiCisiJWQgbcOhc29kcGVyYyBiZXN6w7pyw6FzYSBzesO8a3PDqWdlcyDDqXMgYXogaWTFkSB2aXNzemHDoWxsw610w6FzYSAlLjZmIG3DoXNvZHBlcmNjZWxcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIkF6IGFkanRpbWUgZsOhamwgdGVzenQgbcOzZGJhbiBuZW0ga2Vyw7xsIG3Ds2Rvc8OtdMOhc3JhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldvdWxkIGhhdmUgd3JpdHRlbiB0aGUgZm9sbG93aW5nIHRvICVzOlxuIgorIiVzIgorbXNnc3RyICIiCisiQSh6KSAlcyBmw6FqbGJhIGEga8O2dmV0a2V6xZEga2Vyw7xsdCB2b2xuYSBracOtcsOhc3JhOlxuIgorIiVzIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb3VsZCBub3Qgb3BlbiBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyBpbiBpdCAoJXMpIGZvciAiCisid3JpdGluZyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDA2IGh3Y2xvY2svaHdjbG9jay5jOjEwMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHVwZGF0ZSBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyAoJXMpIGluIGl0IgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJBIGNzw7pzenRhdMOhcyBwYXJhbcOpdGVyZWkgbmVtIGtlcsO8bHRlayBmcmlzc8OtdMOpc3JlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBhZGp1c3QgaXQuXG4iCittc2dzdHIgIkEgaGFyZHZlcsOzcmEgbmVtIHRhcnRhbG1heiDDqXJ2w6lueWVzIGlkxZF0LCDDrWd5IG5lbSBsZWhldCBpZ2F6w610YW5pLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKyJBIGNzw7pzenRhdMOhc2kgdMOpbnllesWRIG5lbSBrZXLDvGwgYmXDoWxsw610w6FzcmEsIG1lcnQgYXogdXRvbHPDsyBrYWxpYnLDoWNpw7MgaWRlamUgIgorIjAsXG4iCisiw61neSBheiBlbMWRem3DqW55ZWsgaGliw6FzYWsgw6lzIMO6aiBrYWxpYnLDoWNpw7Mgc3rDvGtzw6lnZXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICIiCisiQSBzesO8a3PDqWdlcyBpZ2F6w610w6FzIGtldmVzZWJiIG1pbnQgZWd5IG3DoXNvZHBlcmMsIMOtZ3kgbmVtIGtlcsO8bCAiCisiYmXDoWxsw610w6FzcmEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgIiVzIGhhc3puw6FsYXRhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIk5lbSB0YWzDoWxoYXTDsyBoYXN6bsOhbGhhdMOzIMOzcmFmZWzDvGxldFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkEgcmVuZHN6ZXLDs3JhIG5lbSDDoWxsw610aGF0w7MgYmUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisiQSByZW5kc3plcm1hZyBhIGhhcmR2ZXLDs3LDoWhveiBjc2FrIEFscGhhIGfDqXBla2VuIHTDoXJvbCBlcG9jaCDDqXJ0w6lrZXQuXG4iCisiQSBod2NvbG9jayBlemVuIG3DoXNvbGF0YSBuZW0gQWxwaGEgZ8OpcHJlIGvDqXN6w7xsdFxuIgorIijDqXMgw61neSBmZWx0w6l0ZWxlemhldMWRZW4gbW9zdCBzZW0gQWxwaGEgZ8OpcGVuIGZ1dCkuIE5pbmNzIHRlZW5kxZEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGdldCB0aGUgZXBvY2ggdmFsdWUgZnJvbSB0aGUga2VybmVsLlxuIgorbXNnc3RyICJOZW0gbGVoZXQgbGVrw6lybmkgYXogZXBvY2ggw6lydMOpa8OpdCBhIHJlbmRzemVybWFnYsOzbC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJLZXJuZWwgaXMgYXNzdW1pbmcgYW4gZXBvY2ggdmFsdWUgb2YgJWx1XG4iCittc2dzdHIgIkEgcmVuZHN6ZXJtYWcgZmVsdMOpdGVsZXppLCBob2d5IGF6IGVwb2NoIMOpcnTDqWtlICVsdVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBzZXQgdGhlIGVwb2NoIHZhbHVlLCB5b3UgbXVzdCB1c2UgdGhlICdlcG9jaCcgb3B0aW9uIHRvIHRlbGwgdG8gd2hhdCAiCisidmFsdWUgdG8gc2V0IGl0LlxuIgorbXNnc3RyICIiCisiQSBiZcOhbGzDrXRhbmTDsyBlcG9jaCDDqXJ0w6lrIG1lZ2Fkw6Fzw6Fob3ogaGFzem7DoWxqYSBheiDigJ5lcG9jaOKAnSBrYXBjc29sw7N0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHRoZSBlcG9jaCB0byAlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiQXogZXBvY2ggw6lydMOpa2UgbmVtIGtlcsO8bCBiZcOhbGzDrXTDoXNyYSAoJWQgw6lydMOpa3JlKSAtIGV6IGNzYWsgdGVzenQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiTmVtIGxlaGV0IGJlw6FsbMOtdGFuaSBheiBlcG9jaCDDqXJ0w6lrZXQgYSByZW5kc3plcm1hZ2Jhbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI5MCBtaXNjLXV0aWxzL2NhbC5jOjM0NyBtaXNjLXV0aWxzL2tpbGwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBhKHopICVzIGNzb21hZ2LDs2xcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTMxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorImh3Y2xvY2sgLSBxdWVyeSBhbmQgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayAoUlRDKVxuIgorIlxuIgorIlVzYWdlOiBod2Nsb2NrIFtmdW5jdGlvbl0gW29wdGlvbnMuLi5dXG4iCisiXG4iCisiRnVuY3Rpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICBzaG93IHRoaXMgaGVscFxuIgorIiAgLXIgfCAtLXNob3cgICAgICAgICByZWFkIGhhcmR3YXJlIGNsb2NrIGFuZCBwcmludCByZXN1bHRcbiIKKyIgICAgICAgLS1zZXQgICAgICAgICAgc2V0IHRoZSBydGMgdG8gdGhlIHRpbWUgZ2l2ZW4gd2l0aCAtLWRhdGVcbiIKKyIgIC1zIHwgLS1oY3Rvc3lzICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBmcm9tIHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgLXcgfCAtLXN5c3RvaGMgICAgICBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIHRvIHRoZSBjdXJyZW50IHN5c3RlbSB0aW1lXG4iCisiICAgICAgIC0tc3lzdHogICAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZXpvbmVcbiIKKyIgICAgICAgLS1hZGp1c3QgICAgICAgYWRqdXN0IHRoZSBydGMgdG8gYWNjb3VudCBmb3Igc3lzdGVtYXRpYyBkcmlmdCBzaW5jZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICB0aGUgY2xvY2sgd2FzIGxhc3Qgc2V0IG9yIGFkanVzdGVkXG4iCisiICAgICAgIC0tZ2V0ZXBvY2ggICAgIHByaW50IG91dCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1zZXRlcG9jaCAgICAgc2V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZSB0byB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGdpdmVuIHdpdGggLS1lcG9jaFxuIgorIiAgLXYgfCAtLXZlcnNpb24gICAgICBwcmludCBvdXQgdGhlIHZlcnNpb24gb2YgaHdjbG9jayB0byBzdGRvdXRcbiIKKyJcbiIKKyJPcHRpb25zOiBcbiIKKyIgIC11IHwgLS11dGMgICAgICAgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gVVRDXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIGxvY2FsIHRpbWVcbiIKKyIgIC1mIHwgLS1ydGM9cGF0aCAgICAgc3BlY2lhbCAvZGV2Ly4uLiBmaWxlIHRvIHVzZSBpbnN0ZWFkIG9mIGRlZmF1bHRcbiIKKyIgICAgICAgLS1kaXJlY3Rpc2EgICAgYWNjZXNzIHRoZSBJU0EgYnVzIGRpcmVjdGx5IGluc3RlYWQgb2YgJXNcbiIKKyIgICAgICAgLS1iYWR5ZWFyICAgICAgaWdub3JlIHJ0YydzIHllYXIgYmVjYXVzZSB0aGUgYmlvcyBpcyBicm9rZW5cbiIKKyIgICAgICAgLS1kYXRlICAgICAgICAgc3BlY2lmaWVzIHRoZSB0aW1lIHRvIHdoaWNoIHRvIHNldCB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgICAgICAgLS1lcG9jaD15ZWFyICAgc3BlY2lmaWVzIHRoZSB5ZWFyIHdoaWNoIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICBoYXJkd2FyZSBjbG9jaydzIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tbm9hZGpmaWxlICAgIGRvIG5vdCBhY2Nlc3MgL2V0Yy9hZGp0aW1lLiBSZXF1aXJlcyB0aGUgdXNlIG9mXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorIiAgICAgICAtLWFkamZpbGU9cGF0aCBzcGVjaWZpZXMgdGhlIHBhdGggdG8gdGhlIGFkanVzdCBmaWxlIChkZWZhdWx0IGlzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIC9ldGMvYWRqdGltZSlcbiIKKyIgICAgICAgLS10ZXN0ICAgICAgICAgZG8gZXZlcnl0aGluZyBleGNlcHQgYWN0dWFsbHkgdXBkYXRpbmcgdGhlIGhhcmR3YXJlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGNsb2NrIG9yIGFueXRoaW5nIGVsc2VcbiIKKyIgIC1EIHwgLS1kZWJ1ZyAgICAgICAgZGVidWcgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisiaHdjbG9jayAtIGEgaGFyZHZlcsOzcmEgbGVrw6lyZGV6w6lzZSDDqXMgYmXDoWxsw610w6FzYSAoUlRDKVxuIgorIlxuIgorIkhhc3puw6FsYXQ6IGh3Y2xvY2sgW2Z1bmtjacOzXSBba2FwY3NvbMOzay4uLl1cbiIKKyJcbiIKKyJGdW5rY2nDs2s6XG4iCisiICAtLWhlbHAgICAgICAgIGV6IGEgc8O6Z8Ozc3rDtnZlZ1xuIgorIiAgLS1zaG93ICAgICAgICBraW9sdmFzc2EgYSBoYXJkdmVyw7Nyw6F0IMOpcyBtZWdqZWxlbsOtdGkgYXogZXJlZG3DqW55dFxuIgorIiAgLS1zZXQgICAgICAgICBiZcOhbGzDrXRqYSBheiBydGMtdCBhIC0tZGF0ZSBrYXBjc29sw7N2YWwgbWVnYWRvdHQgaWTFkXJlXG4iCisiICAtLWhjdG9zeXMgICAgIGJlw6FsbMOtdGphIGEgcmVuZHN6ZXJpZMWRdCBhIGhhcmR2ZXLDs3LDoWLDs2xcbiIKKyIgIC0tc3lzdG9oYyAgICAgYmXDoWxsw610amEgYSBoYXJkdmVyw7Nyw6F0IGEgamVsZW5sZWdpIHJlbmRzemVyaWTFkXJlXG4iCisiICAtLWFkanVzdCAgICAgIGJlw6FsbMOtdGphIGF6IHJ0Yy10IGF6IMOzcmEgdXRvbHPDsyBiZcOhbGzDrXTDoXNhIHZhZ3kgaWdhesOtdMOhc2FcbiIKKyIgICAgICAgICAgICAgICAgICDDs3RhIGJla8O2dmV0a2V6ZXR0IHJlbmRzemVyY3PDunN6w6FzIGZpZ3llbGVtYmUgdsOpdGVsw6l2ZWxcbiIKKyIgIC0tZ2V0ZXBvY2ggICAga2nDrXJqYSBhIHJlbmRzemVybWFnIGhhcmR2ZXLDs3LDoWrDoW5hayBlcG9jaCDDqXJ0w6lrw6l0XG4iCisiICAtLXNldGVwb2NoICAgIGJlw6FsbMOtdGphIGEgcmVuZHN6ZXJtYWcgaGFyZHZlcsOzcsOhasOhbmFrIGVwb2NoIMOpcnTDqWvDqXRcbiIKKyIgICAgICAgICAgICAgICAgICBheiAtLWVwb2NoIGthcGNzb2zDs3ZhbCBtZWdhZG90dCDDqXJ0w6lrcmVcbiIKKyIgIC0tdmVyc2lvbiAgICAga2nDrXJqYSBhIGh3Y2xvY2sgdmVyemnDs3N6w6Ftw6F0IGEgc3phYnbDoW55b3Mga2ltZW5ldHJlXG4iCisiXG4iCisiS2FwY3NvbMOzazpcbiIKKyIgIC0tdXRjICAgICAgICAgYSBoYXJkdmVyw7NyYSBheiDDtnNzemVoYW5nb2x0IHZpbMOhZ2lkxZFiZW4gw6lydGVsbWV6ZW5kxZFcbiIKKyIgIC0tbG9jYWx0aW1lICAgYSBoYXJkdmVyw7NyYSBhIGhlbHlpIGlkxZFiZW4gw6lydGVsbWV6ZW5kxZFcbiIKKyIgIC0tcnRjPXBhdGggICAgYXogYWxhcMOpcnRlbG1lemV0dCBoZWx5ZXR0IGhhc3puw6FsYW5kw7Mgc3BlY2nDoWxpcyAvZGV2Ly4uLiAiCisiZsOhamxcbiIKKyIgIC0tZGlyZWN0aXNhICAgYXogSVNBIGJ1c3oga8O2enZldGxlbiBlbMOpcsOpc2UgYSh6KSAlcyBoZWx5ZXR0XG4iCisiICAtLWJhZHllYXIgICAgIGF6IHJ0YyDDqXYgw6lydMOpa8OpbmVrIGZpZ3llbG1lbiBrw612w7xsIGhhZ3nDoXNhLCBtZXJ0IGEgQklPUyAiCisiaGliw6FzXG4iCisiICAtLWRhdGUgICAgICAgIG1lZ2FkamEgYXp0IGF6IGlkxZF0LCBhbWVseXJlIGEgaGFyZHZlcsOzcsOhdCBiZSBrZWxsIMOhbGzDrXRhbmlcbiIKKyIgIC0tZXBvY2g9w6l2ICAgIG1lZ2FkamEgYXp6IGF6IMOpdmV0LCBhbWVseWV0IGEgaGFyZHZlcsOzcmEgZXBvY2gta8OpbnQga2V6ZWxcbiIKKyIgIC0tbm9hZGpmaWxlICAgbmVtIGhhc3puw6FsamEgYXogL2V0Yy9hZGp0aW1lIGbDoWpsdC4gTWVna8O2dmV0ZWxpIGEgLS11dGMgIgorInZhZ3lcbiIKKyIgICAgICAgICAgICAgICAgICBhIC0tbG9jYWx0aW1lIGthcGNzb2zDs2sgZWd5aWvDqW5layBoYXN6bsOhbGF0w6F0XG4iCisiICAtLWFkamZpbGU9w7p0dm9uYWwgbWVnYWRqYSBheiBpZ2F6w610w6FzaSBmw6FqbCDDunR2b25hbMOhdCAoYXogYWxhcMOpcnRlbG1lemV0dCAiCisiYXpcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisiICAtLWplbnNlbiwgLS1hcmMsIC0tc3JtLCAtLWZ1bmt5LXRveVxuIgorIiAgICAgICAgICAgICAgICBtZWdhZGphIGEgaHdjbG9ja25hayBhIGhhc3puw6FsdCBhbHBoYSBnw6lwIHTDrXB1c8OhdFxuIgorIiAgICAgICAgICAgICAgICAgIChsw6FzZCBhIGh3Y2xvY2soOCkga8Opemlrw7ZueXZvbGRhbHQpXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICIlczogTmVtIGxlaGV0IGEgbWVnZmlneWVsxZFyZW5kc3plcmhleiBjc2F0bGFrb3puaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiIgorIkEoeikgJXMgbmVtIHbDoXIgbmVtIGthcGNzb2zDsyBwYXJhbcOpdGVyZWtldC4gQSBrw7Z2ZXRrZXrFkXQgYWR0YSBtZWc6ICVkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyJUw7ZiYiBtxbF2ZWxldGV0IGFkb3R0IG1lZyBlZ3lzemVycmUuXG4iCisiRWd5c3plcnJlIGNzYWsgZWd5IG3FsXZlbGV0IGhhc3puw6FsaGF0w7MuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS11dGMgYW5kIC0tbG9jYWx0aW1lIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSBzcGVjaWZpZWQgIgorImJvdGguXG4iCittc2dzdHIgIiIKKyIlczogQXogLS11dGMgw6lzIGEgLS1sb2NhdGltZSBrw7ZsY3PDtm7DtnNlbiBraXrDoXJqw6FrIGVneW3DoXN0LlxuIgorIk3DqWdpcyBtaW5ka2V0dMWRdCBtZWdhZHRhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IEF6IC0tYWRqdXN0IMOpcyBhIC0tbm9hZGpmaWxlIGvDtmxjc8O2bsO2c2VuIGtpesOhcmrDoWsgZWd5bcOhc3QuXG4iCisiTcOpZ2lzIG1pbmRrZXR0xZF0IG1lZ2FkdGEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGpmaWxlIGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IEF6IC0tYWRqZmlsZSDDqXMgYSAtLW5vYWRqZmlsZSBrw7ZsY3PDtm7DtnNlbiBraXrDoXJqw6FrIGVneW3DoXN0LCBkZSAiCisibWluZGtldHTFkXQgbWVnYWR0YS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU4OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2l0aCAtLW5vYWRqZmlsZSwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKK21zZ3N0ciAiIgorIiVzOiBBIC0tbm9hZGpmaWxlIGthcGNzb2zDs3ZhbCBoYXN6bsOhbG5pYSBrZWxsIGEgLS11dGMgdmFneSAtLWxvY2FsdGltZSAiCisiZWd5aWvDqXRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYwMgorIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgc2V0LXRvIHRpbWUuICBDYW5ub3Qgc2V0IGNsb2NrLlxuIgorbXNnc3RyICJOZW0gaGFzem7DoWxoYXTDsyBhIGJlw6FsbMOtdGFuZMOzIGlkxZEuIEF6IMOzcmEgbmVtIMOhbGzDrXRoYXTDsyBiZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICJFbG7DqXrDqXN0LCBjc2FrIGEgcmVuZHN6ZXJnYXpkYSBtw7Nkb3PDrXRoYXRqYSBhIGhhcmR2ZXLDs3LDoXQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBTeXN0ZW0gQ2xvY2suXG4iCittc2dzdHIgIkVsbsOpesOpc3QsIGNzYWsgYSByZW5kc3plcmdhemRhIG3Ds2Rvc8OtdGhhdGphIGEgcmVuZHN6ZXLDs3LDoXQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2sgZXBvY2ggaW4gdGhlICIKKyJrZXJuZWwuXG4iCittc2dzdHIgIiIKKyJFbG7DqXrDqXN0LCBjc2FrIGEgcmVuZHN6ZXJnYXpkYSBtw7Nkb3PDrXRoYXRqYSBhIGhhcmR2ZXLDs3JhIGVwb2NoIMOpcnTDqWvDqXQgYSAiCisicmVuZHN6ZXJtYWdiYW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB0aGUgSGFyZHdhcmUgQ2xvY2sgdmlhIGFueSBrbm93biBtZXRob2QuXG4iCittc2dzdHIgIkEgaGFyZHZlcsOzcmEgZWd5ZXRsZW4gaXNtZXJ0IG3Ds2RvbiBzZW0gw6lyaGV0xZEgZWwuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzZSB0aGUgLS1kZWJ1ZyBvcHRpb24gdG8gc2VlIHRoZSBkZXRhaWxzIG9mIG91ciBzZWFyY2ggZm9yIGFuIGFjY2VzcyAiCisibWV0aG9kLlxuIgorbXNnc3RyICIiCisiSGFzem7DoWxqYSBhIC0tZGVidWcga2FwY3NvbMOzdCBheiBlbMOpcsOpc2kgbcOzZCBrZXJlc8Opc8OpdmVsIGthcGNzb2xhdG9zICIKKyJyw6lzemxldGVrIG1lZ2plbGVuw610w6lzw6loZXouXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSBLREdIV0NMSyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiSXNtw6l0ZWx0IHbDoXJha296w6FzIGEgbWVndsOhbHRvenRhdGFuZMOzIGlkxZFyZSBhIEtER0hXQ0xLLXTFkWxcbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAiQXogaWTFkSBiZW9sdmFzw6FzYSDDqXJkZWvDqWJlbiBraWFkb3R0IEtER0hXQ0xLIGlvY3RsIG1lZ2hpw7pzdWx0IgorCisjOiBod2Nsb2NrL2tkLmM6NzUKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIGluIGxvb3AiCittc2dzdHIgIiIKKyJBeiBpZMWRIGJlb2x2YXPDoXNhIMOpcmRla8OpYmVuIGtpYWRvdHQgS0RHSFdDTEsgaW9jdGwgaXNtw6l0ZWx0ZW4gbWVnaGnDunN1bHQiCisKKyM6IGh3Y2xvY2sva2QuYzo4MiBod2Nsb2NrL3J0Yy5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iCittc2dzdHIgIklkxZF0w7psbMOpcMOpcyBheiBpZMWRIHbDoWx0b3rDoXPDoXJhIHTDtnJ0w6luxZEgdsOhcmFrb3rDoXMgc29yw6FuLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6MTA0CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgZmFpbGVkIHRvIHJlYWQgdGltZSBmcm9tICVzIgorbXNnc3RyICJBKHopICVzIGlkZWrDqW5layBiZW9sdmFzw6FzYSDDqXJkZWvDqWJlbiBraWFkb3R0IGlvY3RsKCkgbWVnaGnDunN1bHQiCisKKyM6IGh3Y2xvY2sva2QuYzoxNDAKK21zZ2lkICJpb2N0bCBLRFNIV0NMSyBmYWlsZWQiCittc2dzdHIgImEgS0RTSFdDTEsgaW9jdGwgbWVnaGnDunN1bHQiCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIk5lbSBueWl0aGF0w7MgbWVnIGEgL2Rldi90dHkxIHZhZ3kgL2Rldi92Yy8xIGVzemvDtnoiCisKKyM6IGh3Y2xvY2sva2QuYzoxODAKK21zZ2lkICJLREdIV0NMSyBpb2N0bCBmYWlsZWQiCittc2dzdHIgImEgS0RTSFdDTEsgaW9jdGwgbWVnaGnDunN1bHQiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgImEoeikgJXMgbWVnbnlpdMOhc2EgbWVnaGnDunN1bHQiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gcmVhZCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImEoeikgJXMgaWRlasOpbmVrIGtpb2x2YXPDoXNhIMOpcmRla8OpYmVuIGtpYWRvdHQgaW9jdGwoKSBtZWdoacO6c3VsdC5cbiIKKworIzogaHdjbG9jay9ydGMuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gJXMgdG8gY2hhbmdlXG4iCittc2dzdHIgIklzbcOpdGVsdCB2w6FyYWtvesOhcyBhKHopICVzIGlkZWrDqW5layB2w6FsdG96w6Fzw6FyYVxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIKK21zZ3N0ciAiJXMgbmVtIHJlbmRlbGtlemlrIG1lZ3N6YWvDrXTDoXNpIGZ1bmtjacOza2thbC4gIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkKCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgImEgcmVhZCgpICVzIGjDrXbDoXMgYXogw7NyYcO8dMOpc3JlIHbDoXJha296w6FzaG96IG1lZ2hpw7pzdWx0IgorCisjOiBod2Nsb2NrL3J0Yy5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAiYSBzZWxlY3QoKSAlcyBow612w6FzIGF6IMOzcmHDvHTDqXNyZSB2w6FyYWtvesOhc2hveiBtZWdoacO6c3VsdCIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAiIgorImEgc2VsZWN0KCkgJXMgaMOtdsOhcyBheiDDs3Jhw7x0w6lzcmUgdsOhcmFrb3rDoXNob3ogdMO6bGzDqXB0ZSBheiBpZMWRa29ybMOhdG90XG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIgorbXNnc3RyICIiCisiYXogaW9jdGwoKSAlcyBow612w6FzIGEgZnJpc3PDrXTDqXNpIG1lZ3N6YWvDrXTDoXNvayBraWthcGNzb2zDoXPDoWhveiBtZWdoacO6c3VsdCIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgIiIKKyJheiBpb2N0bCgpICVzIGjDrXbDoXMgYSBmcmlzc8OtdMOpc2kgbWVnc3pha8OtdMOhc29rIGJla2FwY3NvbMOhc8OhaG96IHbDoXJhdGxhbnVsICIKKyJtZWdoacO6c3VsdCIKKworIzogaHdjbG9jay9ydGMuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byBzZXQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJheiBpb2N0bCgpICVzIGjDrXbDoXMgYXogaWTFkSBiZcOhbGzDrXTDoXPDoWhveiBtZWdoacO6c3VsdC5cbiIKKworIzogaHdjbG9jay9ydGMuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoJXMpIHdhcyBzdWNjZXNzZnVsLlxuIgorbXNnc3RyICJheiBpb2N0bCglcykgc2lrZXLDvGx0LlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcGVuIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiQSh6KSAlcyBtZWdueWl0w6FzYSBtZWdoacO6c3VsdCIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisiQSByZW5kc3plcm1hZyBlcG9jaCDDqXJ0w6lrw6luZWsga2V6ZWzDqXPDqWhleiBlbCBrZWxsIMOpcm5pIGEgTGludXggcnRjICIKKyJlc3prw7Z6bWVnaGFqdMOzasOhdCBhIHNwZWNpw6FsaXMgJXMgZXN6a8O2embDoWpsb24ga2VyZXN6dMO8bC4gQSBmw6FqbCBlemVuIGEgIgorInJlbmRzemVyZW4gbmVtIGzDqXRlemlrLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxNSBod2Nsb2NrL3J0Yy5jOjQ1OQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiJXMgbmVtIG55aXRoYXTDsyBtZWciCisKKyM6IGh3Y2xvY2svcnRjLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKFJUQ19FUE9DSF9SRUFEKSB0byAlcyBmYWlsZWQiCittc2dzdHIgImF6IGlvY3RsKFJUQ19FUE9DSF9SRUFEKSAlcyBow612w6FzIG1lZ2hpw7pzdWx0IgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAiIgorImEoeikgJWxkIGVwb2NoIGJlb2x2YXN2YSBhKHopICVzIGVzemvDtnpyxZFsIGF6IFJUQ19FUE9DSF9SRUFEIGlvY3RsICIKKyJzZWfDrXRzw6lnw6l2ZWwuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlcG9jaCB2YWx1ZSBtYXkgbm90IGJlIGxlc3MgdGhhbiAxOTAwLiAgWW91IHJlcXVlc3RlZCAlbGRcbiIKK21zZ3N0ciAiQXogZXBvY2ggw6lydMOpa2UgbmVtIGxlaGV0IGtldmVzZWJiLCBtaW50IDE5MDAuIEEga8OpcnQgw6lydMOpazogJWxkXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNldHRpbmcgZXBvY2ggdG8gJWxkIHdpdGggUlRDX0VQT0NIX1NFVCBpb2N0bCB0byAlcy5cbiIKK21zZ3N0ciAiIgorImF6IGVwb2NoIGJlw6FsbMOtdMOhc2EgJWxkIMOpcnTDqWtyZSBhKHopICVzIGVzemvDtnrDtm4gYXogUlRDX0VQT0NIX1NFVCBpb2N0bCAiCisic2Vnw610c8OpZ8OpdmVsLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyBkb2VzIG5vdCBoYXZlIHRoZSBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorbXNnc3RyICJBIHJlbmRzemVybWFnICVzIGVzemvDtnptZWdoYWp0w7Nqw6FiYW4gbmluY3MgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJhKHopICVzIGlvY3RsKFJUQ19FUE9DSF9TRVQpIGjDrXbDoXNhIG1lZ2hpw7pzdWx0IgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIgorbXNnc3RyICIlczogYSh6KSAlcyBuZW0gZnV0dGF0aGF0w7M6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozODMKK21zZ2lkICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKK21zZ3N0ciAibmVtIGxlaGV0IGxlZm9nbGFsbmkgYSBraWluZHVsw7Mgc3rDtnZlZ2V0IgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIgorbXNnc3RyICJoaWLDoXMgaWTFkWtvcmzDoXTDqXJ0w6lrOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgImhpYsOhcyBzZWJlc3PDqWc6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKK21zZ2lkICJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIgorbXNnc3RyICJ0w7psIHNvayBhbHRlcm5hdMOtdiBzZWJlc3PDqWciCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIi9kZXY6IGEgY2hkaXIoKSBtZWdoacO6c3VsdDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBub3QgYSBjaGFyYWN0ZXIgZGV2aWNlIgorbXNnc3RyICIvZGV2LyVzOiBuZW0gZWd5IGthcmFrdGVyZXN6a8O2eiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IGNhbm5vdCBvcGVuIGFzIHN0YW5kYXJkIGlucHV0OiAlbSIKK21zZ3N0ciAiL2Rldi8lczogbmVtIG55aXRoYXTDsyBtZWcgc3phYnbDoW55b3MgYmVtZW5ldGvDqW50OiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3Qgb3BlbiBmb3IgcmVhZC93cml0ZSIKK21zZ3N0ciAiJXM6IG5lbSBueWl0aGF0w7MgbWVnIMOtcsOhc3JhIHZhZ3kgb2x2YXPDoXNyYSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkdXAgcHJvYmxlbTogJW0iCittc2dzdHIgIiVzOiBrZXR0xZF6w6lzaSBwcm9ibMOpbWE6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlciIKK21zZ3N0ciAiZmVsaGFzem7DoWzDsyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXJzIgorbXNnc3RyICJmZWxoYXN6bsOhbMOzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiJXM6IG9sdmFzw6FzOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW5wdXQgb3ZlcnJ1biIKK21zZ3N0ciAiJXM6IGEgYmVtZW5ldCB0w7psY3NvcmR1bHQiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiSGFzem7DoWxhdDogJXMgWy04aGlMbVV3XSBbLWwgYmVsw6lwdGV0xZFfcHJvZ3JhbV0gWy10IGlkxZF0w7psbMOpcMOpc10gWy1JICIKKyJraWluZHVsw7Nfc3rDtnZlZ10gWy1IIGJlamVsZW50a2V6w6lzaV9nw6lwbsOpdl0gw6F0dml0ZWxpX3NlYmVzc8OpZywuLi4gdm9uYWwgIgorIlt0ZXJtaW7DoWx0w61wdXNdXG4iCisidmFneVx0Wy1oaUxtd10gWy1sIGJlbMOpcHRldMWRX3Byb2dyYW1dIFstdCBpZMWRdMO6bGzDqXDDqXNdIFstSSBraWluZHVsw7Nfc3rDtnZlZ10gIgorIlstSCBiZWplbGVudGtlesOpc2lfZ8OpcG7DqXZdIHZvbmFsIMOhdHZpdGVsaV9zZWJlc3PDqWcsLi4uIFt0ZXJtaW7DoWx0w61wdXNdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImxvZ2luOiBrZXbDqXMgbWVtw7NyaWEsIGEgYmVqZWxlbnRrZXrDqXMgbWVnaGnDunN1bGhhdFxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAibmVtIGxlaGV0IG1lbcOzcmnDoXQgZm9nbGFsbmkgYSB0dHljbGFzc25hayIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTMKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCittc2dzdHIgIm5lbSBsZWhldCBtZW3Ds3Jpw6F0IGZvZ2xhbG5pIGEgZ3JwbGlzdG5layIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiIgorIkEgYmVqZWxlbnRrZXrDqXMgJXMgZ8OpcHJlIGEoeikgJXMgZ8OpcHLFkWwgYWxhcMOpcnRlbG1lesOpc2JlbiBtZWd0YWdhZHZhLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZC5cbiIKK21zZ3N0ciAiQSBiZWplbGVudGtlesOpcyAlcyBnw6lwcmUgYSh6KSAlcyBnw6lwcsWRbCBtZWd0YWdhZHZhLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTMzIGxvZ2luLXV0aWxzL2Noc2guYzoxMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHlvdSAodXNlciAlZCkgZG9uJ3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiBhKHopICVkIGF6b25vc8OtdMOzasO6IGZlbGhhc3puw6Fsw7MgbmVtIGzDqXRlemlrLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogYSh6KSDigJ4lc+KAnSBmZWxoYXN6bsOhbMOzIG5lbSBsw6l0ZXppay5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0NSBsb2dpbi11dGlscy9jaHNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4gb25seSBjaGFuZ2UgbG9jYWwgZW50cmllczsgdXNlIHlwJXMgaW5zdGVhZC5cbiIKK21zZ3N0ciAiIgorIiVzOiBjc2FrIGhlbHlpIGJlamVneXrDqXNlayBtw7Nkb3PDrXRoYXTDs2ssIGhhc3puw6FsamEgaW5rw6FiYiBheiB5cCVzICIKKyJsZWhldMWRc8OpZ2V0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU2IGxvZ2luLXV0aWxzL2Noc2guYzoxNDIKK21zZ2lkICJVbmtub3duIHVzZXIgY29udGV4dCIKK21zZ3N0ciAiaXNtZXJldGxlbiBmZWxoYXN6bsOhbMOzaSBrb250ZXh0dXMiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgZmluZ2VyIGluZm8gb2YgJXNcbiIKK21zZ3N0ciAiJXM6ICVzIG5pbmNzIGZlbGhhdGFsbWF6dmEgJXMgZmluZ2VyIGluZm9ybcOhY2nDs2luYWsgbcOzZG9zw610w6Fzw6FyYVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTY0IGxvZ2luLXV0aWxzL2Noc2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBkZWZhdWx0IGNvbnRleHQgZm9yIC9ldGMvcGFzc3dkIgorbXNnc3RyICIlczogTmVtIMOhbGzDrXRoYXTDsyBiZSBheiAvZXRjL3Bhc3N3ZCBhbGFww6lydGVsbWV6ZXR0IGtvbnRleHR1c2EiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZmluZ2VyIGluZm9ybWF0aW9uIGZvciAlcy5cbiIKK21zZ3N0ciAiJXMgZmluZ2VyIGluZm9ybcOhY2nDs2luYWsgbWVndsOhbHRvenRhdMOhc2EuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxODkgbG9naW4tdXRpbHMvY2hzaC5jOjE4OCBsb2dpbi11dGlscy9sb2dpbi5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICIlczogamVsc3rDsy1oaXRlbGVzw610w6lzaSAoUEFNKSBoaWJhLCBtZWdzemFrw610dmE6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTIgbG9naW4tdXRpbHMvY2hzaC5jOjIxMSBsb2dpbi11dGlscy9sb2dpbi5jOjgyNworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6NzkgbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0MCBtb3VudC9sb21vdW50LmM6NzQyCisjOiBtb3VudC9sb21vdW50LmM6NzQ1Cittc2dpZCAiUGFzc3dvcmQ6ICIKK21zZ3N0ciAiSmVsc3rDszogIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjE1IGxvZ2luLXV0aWxzL2Noc2guYzoyMTQKK21zZ2lkICJJbmNvcnJlY3QgcGFzc3dvcmQuIgorbXNnc3RyICJIZWx5dGVsZW4gamVsc3rDsy4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJBIGZpbmdlciBpbmZvcm3DoWNpw7NrIG5lbSB2w6FsdG96dGFrLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyBbIC1mIHRlbGplc19uw6l2IF0gWyAtbyBpcm9kYSBdICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWyAtcCBvZmZpY2UtcGhvbmUgXVxuIgorIlx0WyAtaCBob21lLXBob25lIF0gIgorbXNnc3RyICIiCisiWyAtcCBpcm9kYWlfc3rDoW0gXVxuIgorIlx0WyAtaCBvdHRob25pX3N6w6FtIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc5Cittc2dpZCAiT2ZmaWNlIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozODAKK21zZ2lkICJIb21lIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIk1lZ3N6YWvDrXR2YS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAiYSBtZXrFkSB0w7psIGhvc3N6w7ouXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiQSh6KSDigJ4lY+KAnSBuZW0gZW5nZWTDqWx5ZXpldHQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiQSB2ZXrDqXJsxZFrYXJha3RlcmVrIG5lbSBlbmdlZMOpbHllemV0dGVrLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICJBIGZpbmdlciBpbmZvcm3DoWNpw7NrICpORU0qIHbDoWx0b3p0YWsuIFByw7Niw6FsamEgbWVnIMO6anJhIGvDqXPFkWJiLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBjaGFuZ2VkLlxuIgorbXNnc3RyICJBIGZpbmdlciBpbmZvcm3DoWNpw7NrIG1lZ3bDoWx0b3p0YWsuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgc2hlbGwgb2YgJXNcbiIKK21zZ3N0ciAiJXM6ICVzIG5lbSBqb2dvc3VsdCAlcyBwYXJhbmNzw6lydGVsbWV6xZFqw6luZWsgbcOzZG9zw610w6Fzw6FyYVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogUnVubmluZyBVSUQgZG9lc24ndCBtYXRjaCBVSUQgb2YgdXNlciB3ZSdyZSBhbHRlcmluZywgc2hlbGwgY2hhbmdlICIKKyJkZW5pZWRcbiIKK21zZ3N0ciAiIgorIiVzOiBBeiBha3R1w6FsaXMgZmVsaGFzem7DoWzDsyBhem9ub3PDrXTDs2phIChVSUQpIG5lbSBlZ3llemlrIGEgbcOzZG9zw610YW5kw7NcbiIKKyJmZWxoYXN6bsOhbMOzIGF6b25vc8OtdMOzasOhdmFsLCBhIG3Ds2Rvc8OtdMOhcyBtZWd0YWdhZHZhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogQSBwYXJhbmNzw6lydGVsbWV6xZFqZSBoacOhbnl6aWsgYXogL2V0Yy9zaGVsbHMgZsOhamxiw7NsLCBhXG4iCisicGFyYW5jc8OpcnRlbG1lesWRIG3Ds2Rvc8OtdMOhc2EgbWVndGFnYWR2YVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiJXMgcGFyYW5jc8OpcnRlbG1lesWRasOpbmVrIG1lZ3bDoWx0b3p0YXTDoXNhLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICLDmmogcGFyYW5jc8OpcnRlbG1lesWRIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJBIHBhcmFuY3PDqXJ0ZWxtZXrFkSBuZW0gdsOhbHRvem90dC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICJBIHBhcmFuY3PDqXJ0ZWxtZXrFkSAqTkVNKiB2w6FsdG96b3R0LiBQcsOzYsOhbGphIMO6anJhIGvDqXPFkWJiLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIGNoYW5nZWQuXG4iCittc2dzdHIgIkEgcGFyYW5jc8OpcnRlbG1lesWRIG1lZ3bDoWx0b3pvdHQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbIC1zIHNoZWxsIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsgdXNlcm5hbWUgXVxuIgorbXNnc3RyICIiCisiSGFzem7DoWxhdDogJXMgWyAtcyBwYXJhbmNzw6lydGVsbWV6xZEgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS0iCisidmVyc2lvbiBdXG4iCisiICAgICAgIFsgZmVsaGFzem7DoWzDs27DqXYgXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiBBIHBhcmFuY3PDqXJ0ZWxtZXrFkSB0ZWxqZXMgZWzDqXLDqXNpIMO6dGrDoXQgbWVnIGtlbGwgYWRuaWEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IOKAniVz4oCdIG5lbSBsw6l0ZXppay5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBleGVjdXRhYmxlLlxuIgorbXNnc3RyICIlczog4oCeJXPigJ0gbmVtIGZ1dHRhdGhhdMOzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczog4oCeJWPigJ0gbmVtIGVuZ2Vkw6lseWV6ZXR0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogQSB2ZXrDqXJsxZFrYXJha3RlcmVrIG5lbSBlbmdlZMOpbHllemV0dGVrLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc1IGxvZ2luLXV0aWxzL2Noc2guYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiIKKyJGaWd5ZWxtZXp0ZXTDqXM6IGF6IC9ldGMvc2hlbGxzIGbDoWpsIG5lbSB0YXJ0YWxtYXp6YSBhIGvDtnZldGtlesWRdDog4oCeJXPigJ1cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiVzOiBhKHopIOKAniVz4oCdIGhpw6FueXppayBheiAvZXRjL3NoZWxscyBmw6FqbGLDs2wuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVzZSAtbCBvcHRpb24gdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIiVzOiBIYXN6bsOhbGphIGEg4oCeLWzigJ0ga2FwY3NvbMOzdCBhIGxpc3RhIG1lZ2plbGVuw610w6lzw6loZXouXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNlICVzIC1sIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICJBIGxpc3RhIG1lZ2plbGVuw610w6lzw6loZXogaGFzem7DoWxqYSBhIGvDtnZldGtlesWRIHBhcmFuY3NvdDogJXMgLWxcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBrbm93biBzaGVsbHMuXG4iCittc2dzdHIgIk5pbmNzZW5layBpc21lcnQgcGFyYW5jc8OpcnRlbG1lesWRay5cbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuICVzIGZvciByZWFkaW5nLCBleGl0aW5nLiIKK21zZ3N0ciAiQSh6KSAlcyBuZW0gbnlpdGhhdMOzIG1lZyBvbHZhc8Ohc3JhLCBraWzDqXDDqXMuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MTQ4Cittc2dpZCAidXNhZ2U6IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXNlciAuLi5dXG4iCittc2dzdHIgIiIKKyJIYXN6bsOhbGF0OiBsYXN0IFstI10gWy1mIGbDoWpsXSBbLXQgdGVybWluw6FsXSBbLWggZ8OpcG7DqXZdIFtmZWxoYXN6bsOhbMOzIC4uLl1cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIgIGJlamVsZW50a2V6dmUiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInd0bXAgYmVnaW5zICVzIgorbXNnc3RyICIiCisiXG4iCisid3RtcCBrZXpkZXRlOiAlcyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjM4MCBsb2dpbi11dGlscy9sYXN0LmM6Mzk4IGxvZ2luLXV0aWxzL2xhc3QuYzo0NDkKK21zZ2lkICJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIKK21zZ3N0ciAibGFzdDogbWVtw7NyaWFmb2dsYWzDoXNpIGhpYmEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0MjUKK21zZ2lkICJsYXN0OiBnZXRob3N0bmFtZSIKK21zZ3N0ciAibGFzdDogZ8OpcG7DqXYgZmVsb2xkw6FzYSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW50ZXJydXB0ZWQgJTEwLjEwcyAlNS41cyBcbiIKK21zZ3N0ciAiIgorIlxuIgorIm1lZ3N6YWvDrXR2YTogJTEwLjEwcyAlNS41c1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIlbDiUdaRVRFUzogbmVtIG55aXRoYXTDsyBtZWcgw7pqcmEgYSB0ZXJtaW7DoWw6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6ICVzIGlzIG5vdCBhIHRlcm1pbmFsIgorbXNnc3RyICIlcyBuZW0gc29yb3Mgdm9uYWwiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjM4Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgIlbDiUdaRVRFUzogaGliw6FzIHRlcm1pbsOhbCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgImxvZ2luOiBhIC1oIGNzYWsgcmVuZHN6ZXJnYXpkYWvDqW50IMOpcmhldMWRIGVsLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ4OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9naW4gWy1mcF0gW3VzZXJuYW1lXVxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiBsb2dpbiBbLWZwXSBbZmVsaGFzem7DoWzDs27DqXZdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiQSBqZWxzesOzLWhpdGVsZXPDrXTDqXMgKFBBTSkgbmVtIGluaWNpYWxpesOhbGhhdMOzOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1OTUKK21zZ2lkICJsb2dpbjogIgorbXNnc3RyICJmZWxoYXN6bsOhbMOzbsOpdjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICIlZCBTSUtFUlRFTEVOIEJFSkVMRU5US0Vaw4lTIEVSUsWQTDogJXMgQSBLw5ZWRVRLRVrFkEvDiU5UOiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkEgYmVqZWxlbnRrZXrDqXMgbWVnaGnDunN1bHRcbiIKKyJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIlTDmkwgU09LIEJFSkVMRU5US0Vaw4lTSSBLw41Tw4lSTEVUICglZCkgRVJSxZBMOiAlcyBBIEvDllZFVEtFWsWQS8OJTlQ6ICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICIiCisiQSBNVU5LQU1FTkVUQkUgQkVKRUxFTlRLRVrDiVMgTUVHSEnDmlNVTFQgRVJSxZBMOiAlcyBBIEvDllZFVEtFWsWQS8OJTlQ6ICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICIiCisiXG4iCisiQSBiZWplbGVudGtlesOpcyBtZWdoacO6c3VsdFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIk11bmthbWVuZXQtYmXDoWxsw610w6FzaSBwcm9ibMOpbWEsIG1lZ3N6YWvDrXR2YS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiw5xyZXMgZmVsaGFzem7DoWzDs27DqXYgYSBrw7Z2ZXRrZXrFkWJlbjogJXM6JWQuIE1lZ3N6YWvDrXR2YS4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdXNlciBuYW1lIFwiJXNcIiBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICLDiXJ2w6lueXRlbGVuIGZlbGhhc3puw6Fsw7Nuw6l2ICjigJ4lc+KAnSkgYSBrw7Z2ZXRrZXrFkWJlbjogJXM6JWQuIE1lZ3N6YWvDrXR2YS4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzE3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgImxvZ2luOiBFbGZvZ3lvdHQgYSBtZW3Ds3JpYVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjc2MQorbXNnaWQgIklsbGVnYWwgdXNlcm5hbWUiCittc2dzdHIgIsOJcnbDqW55dGVsZW4gZmVsaGFzem7DoWzDs27DqXYiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvZ2luIHJlZnVzZWQgb24gdGhpcyB0ZXJtaW5hbC5cbiIKK21zZ3N0ciAiJXMgYmVqZWxlbnRrZXrDqXNlIG1lZ3RhZ2FkdmEgZXplbiBhIHRlcm1pbsOhbG9uLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIEZST00gJXMgT04gVFRZICVzIgorbXNnc3RyICIlcyBCRUpFTEVOVEtFWsOJU0UgTUVHVEFHQURWQSBFUlLFkEw6ICVzIEEgS8OWVkVUS0VaxZAgVEVSTUlOw4FMT046ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiJXMgQkVKRUxFTlRLRVrDiVNFIE1FR1RBR0FEVkEgQSBLw5ZWRVRLRVrFkCBURVJNSU7DgUxPTjogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICJBIGJlamVsZW50a2V6w6lzIG1lZ2hpw7pzdWx0XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgIkJFSMONVsOBUyBFWkVOOiAlcyBBIEvDllZFVEtFWsWQVMWQTDogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5OQorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCittc2dzdHIgIlJPT1QgQkVKRUxFTlRLRVrDiVMgRVpFTjogJXMgQSBLw5ZWRVRLRVrFkFLFkEw6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyIKK21zZ3N0ciAiUk9PVCBCRUpFTEVOVEtFWsOJUyBFWkVOOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIEZST00gJXMiCittc2dzdHIgIkJFSkVMRU5US0Vaw4lTIEVaRU46ICVzICVzIEZFTEhBU1pOw4FMw5NUw5NMIEEgS8OWVkVUS0VaxZBSxZBMOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIgorbXNnc3RyICJCRUpFTEVOVEtFWsOJUyBFWkVOOiAlcyAlcyBGRUxIQVNaTsOBTMOTVMOTTCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG5ldyBtYWlsLlxuIgorbXNnc3RyICLDmmogbGV2ZWxlIMOpcmtlemV0dC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG1haWwuXG4iCittc2dzdHIgIkxldmVsZSB2YW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogZmFpbHVyZSBmb3JraW5nOiAlcyIKK21zZ3N0ciAibG9naW46IGEgcHJvZ3JhbWluZMOtdMOhcyBtZWdoacO6c3VsdDogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyMgorIywgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiVElPQ1NDVFRZIG1lZ2hpw7pzdWx0OiAlbSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjI4Cittc2dpZCAic2V0dWlkKCkgZmFpbGVkIgorbXNnc3RyICJhIHNldHVpZCgpIGjDrXbDoXNhIG1lZ2hpw7pzdWx0IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICJOaW5jcyAlcyBuZXbFsSBrw7ZueXZ0w6FyIVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9nZ2luZyBpbiB3aXRoIGhvbWUgPSBcIi9cIi5cbiIKK21zZ3N0ciAiQmVqZWxlbnRrZXrDqXMgYSDigJ4v4oCdIHNhasOhdCBrw7ZueXZ0w6FycmFsLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICJsb2dpbjogbmluY3MgbWVtw7NyaWEgYSBwYXJhbmNzZsOhamxuYWsuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogY291bGRuJ3QgZXhlYyBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorbXNnc3RyICJsb2dpbjogYSBwYXJhbmNzZsOhamwgbmVtIGZ1dHRhdGhhdMOzOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBuaW5jcyBwYXJhbmNzw6lydGVsbWV6xZE6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyIlcyBmZWxoYXN6bsOhbMOzbsOpdjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJBIGZlbGhhc3puw6Fsw7Nuw6l2IHTDumwgaG9zc3rDui5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAzCittc2dpZCAiTkFNRSB0b28gbG9uZyIKK21zZ3N0ciAiQSBOw4lWIHTDumwgaG9zc3rDuiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgIkEgZmVsaGFzem7DoWzDs25ldmVrIG5lbSBrZXpkxZFkaGV0bmVrIOKAni3igJ0gamVsbGVsLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgInTDumwgc29rIMO8cmVzIHNvcmVtZWzDqXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIlTDmkwgU09LIHNvcmVtZWzDqXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJBIGJlamVsZW50a2V6w6lzICVkIG3DoXNvZHBlcmMgdXTDoW4gdMO6bGzDqXB0ZSBheiBpZMWRa29ybMOhdG90XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGxvZ2luOiAlLipzICIKK21zZ3N0ciAiVXRvbHPDsyBiZWplbGVudGtlesOpczogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAiZXJyxZFsOiAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvbiAlLipzXG4iCittc2dzdHIgImV6ZW46ICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIkJFSkVMRU5US0Vaw4lTSSBISUJBIEVSUsWQTDogJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gRkFJTFVSRSBPTiAlcywgJXMiCittc2dzdHIgIkJFSkVMRU5US0Vaw4lTSSBISUJBIEVaRU46ICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIgorbXNnc3RyICIlZCBCRUpFTEVOVEtFWsOJU0kgSElCQSBFUlLFkEw6ICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIE9OICVzLCAlcyIKK21zZ3N0ciAiJWQgQkVKRUxFTlRLRVrDiVNJIEhJQkEgRVpFTjogJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICJtb3N0IGlnZW5cbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5cbiIKK21zZ3N0ciAibW9zdCBuZW1cbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgIkhhc3puw6FsYXQ6IG1lc2cgW3kgfCBuXVxuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo5OQorbXNnaWQgIm5ld2dycDogV2hvIGFyZSB5b3U/IgorbXNnc3RyICJuZXdncnA6IMOWbiBraT8iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEwNyBsb2dpbi11dGlscy9uZXdncnAuYzoxMjEKK21zZ2lkICJuZXdncnA6IHNldGdpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXRnaWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNCBsb2dpbi11dGlscy9uZXdncnAuYzoxMTYKK21zZ2lkICJuZXdncnA6IE5vIHN1Y2ggZ3JvdXAuIgorbXNnc3RyICJuZXdncnA6IE5pbmNzIGlseWVuIGNzb3BvcnQuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMjUKK21zZ2lkICJuZXdncnA6IFBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJuZXdncnA6IEhvenrDoWbDqXLDqXMgbWVndGFnYWR2YSIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTMyCittc2dpZCAibmV3Z3JwOiBzZXR1aWQiCittc2dzdHIgIm5ld2dycDogc2V0dWlkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzgKK21zZ2lkICJObyBzaGVsbCIKK21zZ3N0ciAiTmluY3MgcGFyYW5jc8OpcnRlbG1lesWRIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3zDs8OzOnBwfCtwZXJjXVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjEzNAorbXNnaWQgIlNodXRkb3duIHByb2Nlc3MgYWJvcnRlZCIKK21zZ3N0ciAiQSBsZcOhbGzDrXTDoXNpIGZvbHlhbWF0IG1lZ3N6YWvDrXR2YSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9ubHkgcm9vdCBjYW4gc2h1dCBhIHN5c3RlbSBkb3duLlxuIgorbXNnc3RyICIlczogQ3NhayByZW5kc3plcmdhemRhIMOhbGzDrXRoYXRqYSBsZSBhIHJlbmRzemVydC5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIkV6dCBob2xuYXAga2VsbCwgbmVtIHR1ZCBhZGRpZyB2w6Fybmk/XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzEwCittc2dpZCAiZm9yIG1haW50ZW5hbmNlOyBib3VuY2UsIGJvdW5jZSIKK21zZ3N0ciAia2FyYmFudGFydMOhc2kgY8OpbGxhbDsgcGF0dCwgcGF0dCIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMzkKK21zZ2lkICJUaGUgc3lzdGVtIGlzIGJlaW5nIHNodXQgZG93biB3aXRoaW4gNSBtaW51dGVzIgorbXNnc3RyICJBIHJlbmRzemVyIDUgcGVyY2VuIGJlbMO8bCBsZcOhbGwiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzQzCittc2dpZCAiTG9naW4gaXMgdGhlcmVmb3JlIHByb2hpYml0ZWQuIgorbXNnc3RyICJBIGJlamVsZW50a2V6w6lzIGVtaWF0dCBsZSB2YW4gdGlsdHZhLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVib290ZWQgYnkgJXM6ICVzIgorbXNnc3RyICLDumpyYWluZMOtdG90dGE6ICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAibGXDoWxsw610b3R0YTogJXM6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzMgorbXNnaWQgIiIKKyJcbiIKKyJXaHkgYW0gSSBzdGlsbCBhbGl2ZSBhZnRlciByZWJvb3Q/IgorbXNnc3RyICIiCisiXG4iCisiTWnDqXJ0IMOpbGVrIGF6IMO6anJhaW5kw610w6FzIHV0w6FuPyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisiTW9zdCBtw6FyIGtpa2FwY3NvbGhhdGphIGEgc3rDoW3DrXTDs2fDqXBldC4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBrZXJuZWwgcG93ZXItb2ZmIGZhY2lsaXR5Li4uXG4iCittc2dzdHIgIkEgcmVuZHN6ZXJtYWcga2lrYXBjc29sw6FzaSBzem9sZ8OhbHRhdMOhc8OhbmFrIGjDrXbDoXNhLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHBvd2VyaW5nIG9mZlx0JXNcbiIKK21zZ3N0ciAiSGliYSBhIGtpa2FwY3NvbMOhcyBzb3LDoW5cdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCittc2dzdHIgIuKAniVz4oCdIHByb2dyYW0gZnV0dGF0w6FzYS4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBleGVjdXRpbmdcdCVzXG4iCittc2dzdHIgIkhpYmEgYSBrw7Z2ZXRrZXrFkSBmdXR0YXTDoXNha29yOlx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiU8OcUkfFkFM6IHN6w7NydCDDvHplbmV0IGEga8O2dmV0a2V6xZF0xZFsOiAlczoiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiCittc2dzdHIgIkEgcmVuZHN6ZXIgJWQgw7NyYSAlZCBwZXJjIG3Dumx2YSBsZcOhbGwiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICJBIHJlbmRzemVyIDEgw7NyYSAlZCBwZXJjIG3Dumx2YSBsZcOhbGwiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiQSByZW5kc3plciAlZCBwZXJjIG3Dumx2YSBsZcOhbGxcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBtaW51dGVcbiIKK21zZ3N0ciAiQSByZW5kc3plciAxIHBlcmMgbcO6bHZhIGxlw6FsbFxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAiQSByZW5kc3plciBBWk9OTkFMIGxlw6FsbCFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx0Li4uICVzIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIk5lbSBsZWhldCBlbGluZMOtdGFuaSBhIHN3YXBvZmYgcHJvZ3JhbW90LiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzgKK21zZ2lkICJDYW5ub3QgZXhlYyBzd2Fwb2ZmLCBob3BpbmcgdW1vdW50IHdpbGwgZG8gdGhlIHRyaWNrLiIKK21zZ3N0ciAiTmVtIGxlaGV0IHbDqWdyZWhhanRhbmkgYSBzd2Fwb2ZmIHByb2dyYW1vdCwgdGFsw6FuIGF6IHVtb3VudCBtZWdvbGRqYS4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiTmVtIGxlaGV0IGVsaW5kw610YW5pIGF6IHVtb3VudCBwcm9ncmFtb3QsIHByw7Niw6FsamEgbWVnIHNhasOhdCBrZXrFsWxlZy4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICJBKHopICVzIG5lbSBoYWp0aGF0w7MgdsOpZ3JlLCBrw61zw6lybGV0IGF6IHVtb3VudCB2w6lncmVoYWp0w6Fzw6FyYS5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTAKK21zZ2lkICJDYW5ub3QgZXhlYyB1bW91bnQsIGdpdmluZyB1cCBvbiB1bW91bnQuIgorbXNnc3RyICJOZW0gbGVoZXQgdsOpZ3JlaGFqdGFuaSBheiB1bW91bnQgcHJvZ3JhbW90LCBmZWxhZG9tIGEga8Otc8OpcmxldGV0LiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTUKK21zZ2lkICJVbm1vdW50aW5nIGFueSByZW1haW5pbmcgZmlsZXN5c3RlbXMuLi4iCittc2dzdHIgIkEgbWVnbWFyYWR0IGbDoWpscmVuZHN6ZXJlayBsZXbDoWxhc3p0w6FzYS4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAic2h1dGRvd246IENvdWxkbid0IHVtb3VudCAlczogJXNcbiIKK21zZ3N0ciAic2h1dGRvd246IE5lbSBsZWhldCBsZXbDoWxhc3p0YW5pIGEga8O2dmV0a2V6xZF0OiAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzMgorbXNnaWQgIkJvb3RpbmcgdG8gc2luZ2xlIHVzZXIgbW9kZS5cbiIKK21zZ3N0ciAiSW5kdWzDoXMgZWd5IGZlbGhhc3puw6Fsw7NzIG3Ds2RiYW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJheiBlZ3kgZmVsaGFzem7DoWzDs3MgcGFyYW5jc8OpcnRlbG1lesWRIHbDqWdyZWhhanTDoXNhIG1lZ2hpw7pzdWx0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJheiBlZ3kgZmVsaGFzem7DoWzDs3MgcGFyYW5jc8OpcnRlbG1lesWRIGluZMOtdMOhc2EgbWVnaGnDunN1bHRcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICJoaWJhIGEgZmlmbyBtZWdueWl0w6FzYSBrw7Z6YmVuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMTIKK21zZ2lkICJlcnJvciBzZXR0aW5nIGNsb3NlLW9uLWV4ZWMgb24gL2Rldi9pbml0Y3RsIgorbXNnc3RyICJoaWJhIGEgYmV6w6Fyw6FzIHbDqWdyZWhhanTDoXNrb3IgYml0IGJlw6FsbMOtdMOhc2Frb3IgYSAvZGV2L2luaXRjdGwiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNTkKK21zZ2lkICJlcnJvciBydW5uaW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJoaWJhIGF6IHV0b2xzw7MgcHJvZ3JhbSBmdXR0YXTDoXNhIHNvcsOhblxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAiaGliYSBheiB1dG9sc8OzIHByb2dyYW0gaW5kw610w6FzYSBzb3LDoW5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0NQorbXNnaWQgIiIKKyJcbiIKKyJXcm9uZyBwYXNzd29yZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlJvc3N6IGplbHN6w7MuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MTgKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJheiBsc3RhdCB2w6lncmVoYWp0w6FzYSBheiBlbMOpcsOpc2kgw7p0b24gbWVnaGnDunN1bHRcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQyNgorbXNnaWQgInN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAiYSBzdGF0IHbDqWdyZWhhanTDoXNhIGF6IGVsw6lyw6lzaSDDunRvbiBtZWdoacO6c3VsdFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgImEga8O2bnl2dMOhciBtZWdueWl0w6FzYSBtZWdoacO6c3VsdFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTAxCisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3Bhd25pbmc6IFwiJXNcIiB0b28gZmFzdDogcXVlbmNoaW5nIGVudHJ5XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwOQorbXNnaWQgImZvcmsgZmFpbGVkXG4iCittc2dzdHIgImF6IGluZMOtdMOhcyBtZWdoacO6c3VsdFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTQwIHRleHQtdXRpbHMvbW9yZS5jOjE2NjMKK21zZ2lkICJleGVjIGZhaWxlZFxuIgorbXNnc3RyICJhIHbDqWdyZWhhanTDoXMgbWVnaGnDunN1bHRcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU2NAorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAibmVtIG55aXRoYXTDsyBtZWcgYXogaW5pdHRhYiBmw6FqbFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NjMxCittc2dpZCAibm8gVEVSTSBvciBjYW5ub3Qgc3RhdCB0dHlcbiIKK21zZ3N0ciAibmluY3MgVEVSTSB2YWd5IG5lbSDDqXJoZXTFkSBlbCBhIHRlcm1pbsOhbHRcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjkzOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igc3RvcHBpbmcgc2VydmljZTogXCIlc1wiXG4iCittc2dzdHIgImhpYmEgYSBzem9sZ8OhbHRhdMOhcyBsZcOhbGzDrXTDoXNha29yOiDigJ4lc+KAnSIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjk1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICJoaWJhIGEgc3pvbGfDoWx0YXTDoXMgbGXDoWxsw610w6FzYWtvcjog4oCeJXPigJ0iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMDcwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBydW5uaW5nIHByb2dyYW1tZTogXCIlc1wiXG4iCittc2dzdHIgImhpYmEgYXogdXRvbHPDsyBwcm9ncmFtIGZ1dHRhdMOhc2Egc29yw6FuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjc1Cittc2dpZCAidG9vIG1hbnkgaW92J3MgKGNoYW5nZSBjb2RlIGluIHdhbGwvdHR5bXNnLmMpIgorbXNnc3RyICJ0w7psIHNvayBpb3YgKG3Ds2Rvc8OtdHNhIGEgd2FsbC90dHltc2cuYyBrw7NkasOhdCkiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImV4Y2Vzc2l2ZWx5IGxvbmcgbGluZSBhcmciCittc2dzdHIgInTDumxzw6Fnb3NhbiBob3NzesO6IHNvcmFyZ3VtZW50dW0iCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAiYSBwcm9ncmFtaW5kw610w6FzIG1lZ2hpw7pzdWx0IgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZm9yazogJXMiCittc2dzdHIgInByb2dyYW1pbmTDrXTDoXM6ICVzIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEJBRCBFUlJPUiIKK21zZ3N0ciAiJXM6IFJPU1NaIEhJQkEiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBhIGplbHN6w7Nmw6FqbCBmb2dsYWx0LlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgZ3JvdXAgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogYSBjc29wb3J0ZsOhamwgZm9nbGFsdC5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiJXM6IGEoeikgJXMgZsOhamwgZm9nbGFsdCAoJXMgamVsZW4gdmFuKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBsaW5rICVzOiAlc1xuIgorbXNnc3RyICIlczogbmVtIGhvemhhdMOzIGzDqXRyZSBsaW5rIGEoeikgJXMgZsOhamxyYTogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogTmVtIGvDqXJoZXTFkSBsZSBhKHopICVzIGtvbnRleHR1c2EiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IE5lbSDDoWxsw610aGF0w7MgYmUgYSh6KSAlcyBrb250ZXh0dXNhIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCB1bmxvY2sgJXM6ICVzICh5b3VyIGNoYW5nZXMgYXJlIHN0aWxsIGluICVzKVxuIgorbXNnc3RyICIiCisiJXM6IGEoeikgJXMgesOhcm9sw6FzYSBuZW0gb2xkaGF0w7MgZmVsOiAlcyAoYSB2w6FsdG96dGF0w6FzYWkgbcOpZyBtaW5kaWcgYSAiCisia8O2dmV0a2V6xZFiZW4gdmFubmFrOiAlcylcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGZvcmtcbiIKK21zZ3N0ciAiJXM6IE5lbSBpbmTDrXRoYXTDsyBhIHByb2dyYW1cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgdW5jaGFuZ2VkXG4iCittc2dzdHIgIiVzOiBBKHopICVzIHbDoWx0b3phdGxhblxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBjaGFuZ2VzIG1hZGVcbiIKK21zZ3N0ciAiJXM6IG5lbSB0w7ZydMOpbnQgdsOhbHRvesOhc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IGdyb3VwcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiw4FybnnDqWtjc29wb3J0b2thdCBoYXN6bsOhbCBhIHJlbmRzemVyZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICLDgXJuecOpa2plbHN6YXZha2F0IGhhc3puw6FsIGEgcmVuZHN6ZXJlbi5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCB5b3UgbGlrZSB0byBlZGl0ICVzIG5vdyBbeS9uXT8gIgorbXNnc3RyICJLw612w6FuamEgc3plcmtlc3p0ZW5pIGEga8O2dmV0a2V6xZF0OiAlcyBbaS9uXT8gIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbZmlsZV1cbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogJXMgW2bDoWpsXVxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBvcGVuIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogbmVtIG55aXRoYXTDsyBtZWcgYXogaWRlaWdsZW5lcyBmw6FqbC5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICJTesOzcnQgw7x6ZW5ldCBhIGvDtnZldGtlesWRdMWRbDogJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiIKKyIlczogbmVtIG9sdmFzaGF0w7MgYSh6KSAlcyAtIGEgc3phYnbDoW55b3MgYmVtZW5ldCBrZXLDvGwgZmVsaGFzem7DoWzDoXNyYS5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiJXM6IG5lbSBvbHZhc2hhdMOzIGEoeikgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHN0YXQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBuZW0gw6lyaGV0xZEgZWwgYXogaWRlaWdsZW5lcyBmw6FqbC5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IG5lbSBvbHZhc2hhdMOzIGF6IGlkZWlnbGVuZXMgZsOhamwuXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZGF5IHZhbHVlOiB1c2UgMS0lZCIKK21zZ3N0ciAiw6lydsOpbnl0ZWxlbiBuYXDDqXJ0w6lrOiBoYXN6bsOhbGpvbiAxLSVkIGvDtnrDtnR0aSDDqXJ0w6lrZXQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY4Cittc2dpZCAiaWxsZWdhbCBtb250aCB2YWx1ZTogdXNlIDEtMTIiCittc2dzdHIgIsOpcnbDqW55dGVsZW4gaMOzbmFww6lydMOpazogaGFzem7DoWxqb24gMS0xMiBrw7Z6w7Z0dGkgw6lydMOpa2V0IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM3MgorbXNnaWQgImlsbGVnYWwgeWVhciB2YWx1ZTogdXNlIDEtOTk5OSIKK21zZ3N0ciAiw6lydsOpbnl0ZWxlbiDDqXbDqXJ0w6lrOiBoYXN6bsOhbGpvbiAxLTk5OTkga8O2esO2dHRpIMOpcnTDqWtldCIKKworIzogbWlzYy11dGlscy9jYWwuYzo0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJWQiCittc2dzdHIgIiVzICVkIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjg1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY2FsIFstMTNzbWp5Vl0gW1tbZGF5XSBtb250aF0geWVhcl1cbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogY2FsIFstMTNzbWp5Vl0gW1tbbmFwXSBow7NuYXBdIMOpdl1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogJXMgWytmb3Jtw6F0dW1dIFtuYXAgaMOzbmFwIMOpdl1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIlN6ZW50IFRpYiBuYXBqYSIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgTEFCRUw9PGxhYmVsPnxVVUlEPTx1dWlkPlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byByZXNvbHZlICclcyciCittc2dzdHIgIiVzIG5lbSBueWl0aGF0w7MgbWVnIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzXG4iCittc2dzdHIgIiVzOiBpc21lcmV0bGVuIGplbHrDqXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBwcm9jZXNzIFwiJXNcIlxuIgorbXNnc3RyICIlczogYSh6KSDigJ4lc+KAnSBmb2x5YW1hdCBuZW0gdGFsw6FsaGF0w7NcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlczsgdmFsaWQgc2lnbmFsczpcbiIKK21zZ3N0ciAiJXM6IGlzbWVyZXRsZW4gamVsesOpczogJXM7IGF6IMOpcnbDqW55ZXMgamVsesOpc2VrOlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyBbIC1zIGplbHrDqXMgfCAtcCBdIFsgLWEgXSBmb2x5YW1hdGF6b25vc8OtdMOzIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiICAgICAgICVzIC1sIFsgamVsesOpcyBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiQSBmZWxoYXN6bsOhbMOzbsOpdiB0w7psIGhvc3N6w7ouXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgIkJsb2trbcOpcmV0OiAlZFxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbm5lY3Q6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogJXM6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6ICVzOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIGZhY2lsaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IGlzbWVyZXRsZW4gc3pvbGfDoWx0YXTDoXNuw6l2OiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIHByaW9yaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IGlzbWVyZXRsZW4gcHJpb3JpdMOhc27DqXY6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6IGxvZ2dlciBbLWlzXSBbLWYgZmlsZV0gWy1wIHByaV0gWy10IHRhZ10gWy11IHNvY2tldF0gWyBtZXNzYWdlIC4uLiBdXG4iCittc2dzdHIgIiIKKyJIYXN6bsOhbGF0OiBsb2dnZXIgWy1pc10gWy1mIGbDoWpsXSBbLXAgcHJpXSBbLXQgY8OtbWtlXSBbLXUgZm9nbGFsYXRdICIKKyJbIMO8emVuZXQgLi4uIF1cbiIKKworIzogbWlzYy11dGlscy9sb29rLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb29rIFstZGZhXSBbLXQgY2hhcl0gc3RyaW5nIFtmaWxlXVxuIgorbXNnc3RyICJIYXN6bsOhbGF0IDogbG9vayBbLWRmYV0gWy10IGthcmFrdGVyXSBrYXJha3RlcmzDoW5jIFtmw6FqbF1cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJOZW0gbnlpdGhhdMOzIG1lZyBhIGvDtnZldGtlesWROiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDkgbWlzYy11dGlscy9tY29va2llLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdvdCAlZCBieXRlcyBmcm9tICVzXG4iCittc2dzdHIgIiVkIGLDoWp0IMOpcmtlemV0dCBhIGvDtnZldGtlesWRdMWRbDogJXNcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0CisjLCBmdXp6eQorbXNnaWQgIm91dCBvZiBtZW1vcnk/IgorbXNnc3RyICJlbGZvZ3lvdHQgYSBtZW3Ds3JpYT9cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgc3ltbGluazogJXMiCittc2dzdHIgImF6IGlkxZF6w610w6lzZsOhamwgKCVzKSBvbHZhc8Ohc2EgbWVnaGnDunN1bHQiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyMzEgbWlzYy11dGlscy9uYW1laS5jOjI1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IHN0YXQgJyVzJyIKK21zZ3N0ciAiYSh6KSDigJ4lc+KAnSBuZW0gw6lyaGV0xZEgZWwiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgIkhhc3puw6FsYXQ6IG5hbWVpIFstbXhdIMO6dHZvbmFsIFvDunR2b25hbCAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgcGFydMOtY2nDszpcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXgsIC0tbW91bnRwb2ludHMgICBzaG93IG1vdW50IHBvaW50IGRpcmVjdG9yaWVzIHdpdGggYSAnRCdcbiIKKyIgLW0sIC0tbW9kZXMgICAgICAgICBzaG93IHRoZSBtb2RlIGJpdHMgb2YgZWFjaCBmaWxlXG4iCisiIC1vLCAtLW93bmVycyAgICAgICAgc2hvdyBvd25lciBhbmQgZ3JvdXAgbmFtZSBvZiBlYWNoIGZpbGVcbiIKKyIgLWwsIC0tbG9uZyAgICAgICAgICB1c2UgYSBsb25nIGxpc3RpbmcgZm9ybWF0ICgtbSAtbyAtdikgXG4iCisiIC1uLCAtLW5vc3ltbGlua3MgICAgZG9uJ3QgZm9sbG93IHN5bWxpbmtzXG4iCisiIC12LCAtLXZlcnRpY2FsICAgICAgdmVydGljYWwgYWxpZ24gb2YgbW9kZXMgYW5kIG93bmVyc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgbmFtZWkoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJUb3bDoWJiaSBpbmZvcm3DoWNpw7Nrw6lydCB0ZWtpbnRzZSBtZWcgYSBzZXRhcmNoKDgpIGvDqXppa8O2bnl2b2xkYWx0LlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTIyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdDogJXMiCittc2dzdHIgIiVzIG5lbSDDqXJoZXTFkSBlbCIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUzMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXhjZWVkZWQgbGltaXQgb2Ygc3ltbGlua3MiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIlczogZWxmb2d5b3R0IGEgbWVtw7NyaWFcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogYSh6KSAlcyDDoXRuZXZlesOpc2UgbWVnaGnDunN1bHQgYSBrw7Z2ZXRrZXrFkXJlOiAlczogJXNcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYWxsOiAlcyBmcm9tIHRvIGZpbGVzLi4uXG4iCittc2dzdHIgImjDrXbDoXM6ICVzIGEgZsOhamxva2hvei4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisiRmlneWVsbWV6dGV0w6lzOiBhKHopIOKAniVz4oCdIGVneSBsaW5rXG4iCisiSGFzem7DoWxqYSBhKHopIOKAniVzIFtrYXBjc29sw7NrXSAlc+KAnSBwYXJhbmNzb3QsIGhhIHZhbMOzYmFuXG4iCisiaGFzem7DoWxuaSBha2FyamEuIEEgcGFyYW5jc2bDoWpsIG5lbSBpbmR1bHQgZWwuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2bDoWpsXVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJBIHBhcmFuY3Nmw6FqbCBlbGluZHVsdCwgYSBmw6FqbDogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yICVkOiAlc1xuIgorbXNnc3RyICIlczogJWQuIMOtcsOhc2kgaGliYTogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQgb24gJXMiCittc2dzdHIgIkEgcGFyYW5jc2bDoWpsIGVsaW5kdWx0IGVra29yOiAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczogw61yw6FzaSBoaWJhOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IG5lbSDDrXJoYXTDsyBhIHBhcmFuY3Nmw6FqbCwgaGliYTogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNjcmlwdCBkb25lIG9uICVzIgorbXNnc3RyICIiCisiXG4iCisiQSBwYXJhbmNzZsOhamwga8Opc3ogZWtrb3I6ICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzNworIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgZG9uZSwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJBIHBhcmFuY3Nmw6FqbCBrw6lzeiwgYSBmw6FqbDogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbnB0eSBmYWlsZWRcbiIKK21zZ3N0ciAiYXogb3BlbnB0eSBtZWdoacO6c3VsdFxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgcHR5J3NcbiIKK21zZ3N0ciAiRWxmb2d5dGFrIGEgcHN6ZXVkb3Rlcm1pbsOhbG9rXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iCittc2dzdHIgIiVzIDxpZMWResOtdMOpc2bDoWpsPiBbPHTDrXB1c3BhcmFuY3Nmw6FqbD4gWzxlbHbDoWxhc3p0w7M+XV1cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJleHBlY3RlZCBhIG51bWJlciwgYnV0IGdvdCAnJXMnIgorbXNnc3RyICJhIHbDoXJ0IHN6w6FtIGhlbHlldHQg4oCeJXPigJ0gdGFsw6FsaGF0w7MiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTYgbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXZpc29yICclcyciCittc2dzdHIgIuKAniVz4oCdIGVsdsOhbGFzenTDsyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMDQKK21zZ2lkICJ3cml0ZSB0byBzdGRvdXQgZmFpbGVkIgorbXNnc3RyICJhIHN6YWJ2w6FueW9zIGtpbWVuZXRyZSDDrXLDoXMgbWVnaGnDunN1bHQiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgInbDoXJhdGxhbiBmw6FqbHbDqWdlIGEga8O2dmV0a2V6xZFuOiAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJhIHTDrXB1c3BhcmFuY3Nmw6FqbCAoJXMpIG9sdmFzw6FzYSBtZWdoacO6c3VsdCIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIm5lbSBueWl0aGF0w7MgbWVnIGF6IGlkxZF6w610w6lzZsOhamwgKCVzKSIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJuZW0gbnlpdGhhdMOzIG1lZyBhIHTDrXB1c3BhcmFuY3Nmw6FqbCAoJXMpIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiYXogaWTFkXrDrXTDqXNmw6FqbCAoJXMpIG9sdmFzw6FzYSBtZWdoacO6c3VsdCIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAiJXMgaWTFkXrDrXTDqXNmw6FqbDogJWx1OiB2w6FydCBmb3Jtw6F0dW0iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQXJndW1lbnQgZXJyb3IsIHVzYWdlXG4iCittc2dzdHIgIiVzOiBQYXJhbcOpdGVyaGliYSwgaGFzem7DoWxhdDpcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKK21zZ3N0ciAiICBbIC10ZXJtIHRlcm1pbsOhbF9uw6l2IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVzZXQgXVxuIgorbXNnc3RyICIgIFsgLXJlc2V0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCittc2dzdHIgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiICBbIC1kZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc5IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODMKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NQorIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorbXNnc3RyICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdG9yZSBdXG4iCittc2dzdHIgIiAgWyAtc3RvcmUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCittc2dzdHIgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kdW1wICAgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1kdW1wICAgWzEtS09OWk9MT0tfU1rDgU1BXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGVuZCBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWFwcGVuZCBbMS1LT05aT0xPS19TWsOBTUFdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZmlsZSBkdW1wZmlsZW5hbWUgXVxuIgorbXNnc3RyICIgIFsgLWZpbGUga2nDrXJhdMOhc2lfZsOhamxuw6l2IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSBmcmVrdmVuY2lhIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgYmxhbmtcbiIKK21zZ3N0ciAiYXogw7xyw610w6lzIG5lbSBrw6lueXN6ZXLDrXRoZXTFkVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgImEgdmlzc3phw6FsbMOtdMOhcyBuZW0ga8OpbnlzemVyw610aGV0xZFcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA3MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IGJsYW5rIHN0YXR1c1xuIgorbXNnc3RyICJheiDDvHLDrXTDqXMgw6FsbGFwb3RhIG5lbSBrw6lyaGV0xZEgbGVcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICJuZW0gbGVoZXQgw6F0dsOhbHRhbmkgYXogZW5lcmdpYXRha2Fyw6lrb3MgbcOzZG90XG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICJrbG9nY3RsIGhpYmE6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JpdGluZyBzY3JlZW5kdW1wXG4iCittc2dzdHIgIkhpYmEgYSBrw6lwZXJuecWRLWtpw61yYXTDoXMgw61yw6FzYSBrw7Z6YmVuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgcmVhZCAlc1xuIgorbXNnc3RyICJOZW0gb2x2YXNoYXTDsyBhIGvDtnZldGtlesWROiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6IEEgJFRFUk0gbmluY3MgbWVnYWR2YS5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdIFstVCB0aW1lb3V0XVxuIgorbXNnc3RyICIiCisiSGFzem7DoWxhdDogbGFzdCBbLSNdIFstZiBmw6FqbF0gWy10IHRlcm1pbsOhbF0gWy1oIGfDqXBuw6l2XSBbZmVsaGFzem7DoWzDsyAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgWy1yfHRdIFstbiBudW1dIFstcyBzb2NrZXRwYXRoXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIGplbHrDqXMgXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTUyCisjLCBmdXp6eQorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgImNvbDogaGliw6FzIC1sIGthcGNzb2zDszogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTkKKyMsIGZ1enp5Cittc2dpZCAic29ja2V0IgorbXNnc3RyICJCbG9ra23DqXJldDogJWRcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE3MAorIywgZnV6enkKK21zZ2lkICJjb25uZWN0IgorbXNnc3RyICJuLnN6w6FtIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTg5CisjLCBmdXp6eQorbXNnaWQgIndyaXRlIgorbXNnc3RyICJLacOtcsOhcyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE5NworIywgZnV6enkKK21zZ2lkICJyZWFkIGNvdW50IgorbXNnc3RyICJpZMWRdMO6bGzDqXDDqXMiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyMDMKK21zZ2lkICJiYWQgcmVzcG9uc2UgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGNyZWF0ZSB1bml4IHN0cmVhbSBzb2NrZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGJpbmQgdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIiVzIG5lbSBueWl0aGF0w7MgbWVnOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsaXN0ZW4gb24gdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIiVzIG5lbSBueWl0aGF0w7MgbWVnOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHJlYWRpbmcgZnJvbSBjbGllbnQsIGxlbiA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM3OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb3BlcmF0aW9uICVkXG4iCittc2dzdHIgIsOpcnbDqW55dGVsZW4ga2FwY3NvbMOzIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDY4IG1pc2MtdXRpbHMvdXVpZGQuYzo0ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJhZCBudW1iZXI6ICVzXG4iCittc2dzdHIgIiVzOiBoaWLDoXMgw6lydMOpa1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNhbGxpbmcgdXVpZGQgZGFlbW9uICglcyk6ICVzXG4iCittc2dzdHIgImhpYmEgYSh6KSAlcyBtw7NkasOhbmFrIG3Ds2Rvc8OtdMOhc2Frb3I6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgYW5kIHN1YnNlcXVlbnQgJWQgVVVJRCdzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNgorIywgYy1mb3JtYXQKK21zZ2lkICJMaXN0IG9mIFVVSUQnczpcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZXhwZWN0ZWQgcmVwbHkgbGVuZ3RoIGZyb20gc2VydmVyICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXJdIFstdF1cbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogJXMgW2thcGNzb2zDs2tdIGVzemvDtnogLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGvDtm55dnTDoXIgLi4uIC1mIF0gbsOpdi4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjEyOAorIywgZnV6enkKK21zZ2lkICJjYWxsb2MgZmFpbGVkIgorbXNnc3RyICJhIG1hbGxvYyBtZWdoacO6c3VsdCIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxNTAKKyMsIGZ1enp5Cittc2dpZCAic3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiYSBzemFidsOhbnlvcyBraW1lbmV0cmUgw61yw6FzIG1lZ2hpw7pzdWx0IgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBwcm9iaW5nIGluaXRpYWxpemF0aW9uIGZhaWxlZCIKK21zZ3N0ciAiaGliYTogYXogVVVJRCBmZWxkb2xnb3rDoXMgbWVnaGnDunN1bHQiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IGFwcGVhcnMgdG8gY29udGFpbiAnJXMnIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiQSh6KSAlcyBsZW1leiBuZW0gdGFydGFsbWF6IMOpcnbDqW55ZXMgcGFydMOtY2nDs3MgdMOhYmzDoXRcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgZm91bmQgYSBtYWdpYyBzdHJpbmcgYXQgb2Zmc2V0IDB4JWp4IC0gaWdub3JlLiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiJXM6IGEga8O2dmV0a2V6xZEgbWVnbnlpdMOhc2EgbWVnaGnDunN1bHQ6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZmFpbGVkIgorbXNnc3RyICJheiBvcGVucHR5IG1lZ2hpw7pzdWx0XG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlemQgYnl0ZXMgWyIKK21zZ3N0ciAiYsOhanQiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcGVuIGZhaWxlZCIKK21zZ3N0ciAiYXogb3BlbnB0eSBtZWdoacO6c3VsdFxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxNSBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgJyVzJyB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIsOJcnbDqW55dGVsZW4gYmXDoWxsw610b3R0IMOpcnTDqWs6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIkhhc3puw6FsYXQ6ICVzIFtrYXBjc29sw7NrXSBlc3prw7Z6IC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1hLCAtLWFsbCAgICAgICAgICAgd2lwZSBhbGwgbWFnaWMgc3RyaW5ncyAoQkUgQ0FSRUZVTCEpXG4iCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLW5vLWFjdCAgICAgICAgZXZlcnl0aGluZyB0byBiZSBkb25lIGV4Y2VwdCBmb3IgdGhlIHdyaXRlKCkgY2FsbFxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCB0byBlcmFzZSwgaW4gYnl0ZXNcbiIKKyIgLXAsIC0tcGFyc2FibGUgICAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgd2lwZWZzKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiVG92w6FiYmkgaW5mb3Jtw6FjacOza8OpcnQgdGVraW50c2UgbWVnIGEgc2V0YXJjaCg4KSBrw6l6aWvDtm55dm9sZGFsdC5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozODcKK21zZ2lkICItLW9mZnNldCBhbmQgLS1hbGwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZTogbmVtIHRhbMOhbGhhdMOzIGEgdGVybWluw6FsIG5ldmVcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogYXogw61yw6FzaSBqb2dvc3VsdHPDoWcga2kgdmFuIGthcGNzb2x2YS5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIG5pbmNzIGJlamVsZW50a2V6dmUgYSBrw7Z2ZXRrZXrFkW46ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGxldGlsdG90dGEgYXogw7x6ZW5ldGVrZXQgYSBrw7Z2ZXRrZXrFkW46ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHdyaXRlIHVzZXIgW3R0eV1cbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogd3JpdGUgZmVsaGFzem7DoWzDsyBbdGVybWluw6FsXVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlOiAlcyBuaW5jcyBiZWplbGVudGtlenZlXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZFxuIgorbXNnc3RyICJ3cml0ZTogJXMgbGV0aWx0b3R0YSBheiDDvHplbmV0ZWtldFxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBsb2dnZWQgaW4gbW9yZSB0aGFuIG9uY2U7IHdyaXRpbmcgdG8gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIHTDtmJiIGhlbHllbiBpcyBiZWzDqXBldHQsIMOtcsOhcyBhIGvDtnZldGtlesWRcmU6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIChhcyAlcykgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICLDnHplbmV0ICVzQCVzIGZlbGhhc3puw6Fsw7N0w7NsIChtaW50ICVzKSBlemVuOiAlcyBla2tvcjogJXMgLi4uIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIsOcemVuZXQgJXNAJXMgZmVsaGFzem7DoWzDs3TDs2wgZXplbjogJXMgZWtrb3I6ICVzIC4uLiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgImZpZ3llbG1lenRldMOpczogaGliYSBhIGvDtnZldGtlesWRIG9sdmFzw6FzYWtvcjogJXM6JXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTcyIG1vdW50L2ZzdGFiLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICJmaWd5ZWxtZXp0ZXTDqXM6IG5lbSBueWl0aGF0w7MgbWVnIGEga8O2dmV0a2V6xZE6ICVzOiVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY291bGQgbm90IG9wZW4gJXMgLSB1c2luZyAlcyBpbnN0ZWFkXG4iCittc2dzdHIgIiIKKyJtb3VudDogYSh6KSAlcyBuZW0gbnlpdGhhdMOzIG1lZyAtIGhlbHlldHRlIGEoeikgJXMga2Vyw7xsIGZlbGhhc3puw6Fsw6FzcmFcbiIKKworIzogbW91bnQvZnN0YWIuYzo1OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgY3JlYXRlIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorImEoeikgJXMgesOhcm9sw6FzaSBmw6FqbCBuZW0gaG96aGF0w7MgbMOpdHJlOiAlcyAoaGFzem7DoWxqYSBhIC1uIGthcGNzb2zDs3QgYSAiCisiZmVsw7xsYsOtcsOhbMOhc2hveikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisiYSh6KSAlcyB6w6Fyb2zDoXNpIGbDoWpscmEgbmVtIGhvemhhdMOzIGzDqXRyZSBsaW5rOiAlcyAoaGFzem7DoWxqYSBhIC1uIGthcGNzb2zDs3QgIgorImEgZmVsw7xsYsOtcsOhbMOhc2hveikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisiYSh6KSAlcyB6w6Fyb2zDoXNpIGbDoWpsIG5lbSBueWl0aGF0w7MgbWVnOiAlcyAoaGFzem7DoWxqYSBhIC1uIGthcGNzb2zDs3QgYSAiCisiZmVsw7xsYsOtcsOhbMOhc2hveikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICJOZW0gbGVoZXQgesOhcm9sbmkgYSh6KSAlcyB6w6Fyb2zDoXNpIGbDoWpsdDogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo2NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzIgorbXNnc3RyICJOZW0gbGVoZXQgesOhcm9sbmkgYSh6KSAlcyB6w6Fyb2zDoXNpIGbDoWpsdDogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICJpZMWRdMO6bGzDqXDDqXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxpbmsgJXNcbiIKKyJQZXJoYXBzIHRoZXJlIGlzIGEgc3RhbGUgbG9jayBmaWxlP1xuIgorbXNnc3RyICIiCisiTmVtIGxlaGV0IGzDqXRyZWhvem5pIGEoeikgJXMgbGlua2V0XG4iCisiTGVoZXQsIGhvZ3kgZWd5IGVsw6FydnVsdCBhIHrDoXJvbMOhc2kgZsOhamwgbWlhdHQ/XG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICJuZW0gbnlpdGhhdMOzIG1lZyBhKHopICVzIGbDoWpsICglcykgLSBheiBtdGFiIG5lbSBmcmlzc8O8bHQiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJoaWJhIGEoeikgJXMgw61yw6FzYWtvcjogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODc0CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzXG4iCittc2dzdHIgImhpYmEgYSh6KSAlcyBtw7NkasOhbmFrIG3Ds2Rvc8OtdMOhc2Frb3I6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG93bmVyIG9mICVzOiAlc1xuIgorbXNnc3RyICJoaWJhIGEoeikgJXMgdHVsYWpkb25vc8OhbmFrIG3Ds2Rvc8OtdMOhc2Frb3I6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODk4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiJXMgbmVtIG5ldmV6aGV0xZEgw6F0ICVzIG7DqXZyZTogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgc2V0IGNhcGFjaXR5IG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogbmVtIGthcGhhdMOzayBpbmZvcm3DoWNpw7NrIGEoeikgJXMgZXN6a8O2enLFkWw6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIGVsdG9sw6FzOiAlPFBSSXU2ND4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIG3DqXJldGtvcmzDoXQ6ICU8UFJJdTY0PiIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gJXMgKHR5cGUgJTxQUkl1MzI+KSIKK21zZ3N0ciAiLCAlcyB0aXRrb3PDrXTDoXMgKHTDrXB1czogJTxQUkl1MzI+KSIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMAorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlZCIKK21zZ3N0ciAiLCBlbHRvbMOhczogJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiLCB0aXRrb3PDrXTDoXN0w61wdXM6ICVkXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBuZW0ga2FwaGF0w7NrIGluZm9ybcOhY2nDs2sgYSh6KSAlcyBlc3prw7Z6csWRbDogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogbmVtIG55aXRoYXTDsyBtZWcgYSh6KSAlcyBlc3prw7Z6OiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczogYSAvZGV2IGvDtm55dnTDoXIgbmVtIGzDqXRlemlrLiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ1OSBtb3VudC9sb21vdW50LmM6NjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIlczogbmluY3Mgam9nb3N1bHRzw6FnYSBhIC9kZXYvbG9vcCMgbWVnamVsZW7DrXTDqXPDqWhleiIKKworIzogbW91bnQvbG9tb3VudC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGZyZWUgbG9vcCBkZXZpY2UiCittc2dzdHIgIiVzOiBuZW0gdGFsw6FsaGF0w7Mgc3phYmFkIGh1cm9rZXN6a8O2eiIKKworIzogbW91bnQvbG9tb3VudC5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yIGBtb2Rwcm9iZSBsb29wJy4pIgorbXNnc3RyICIiCisiJXM6IE5lbSB0YWzDoWxoYXTDsyBlZ3kgaHVyb2tlc3prw7Z6IHNlbS4gTGVoZXQsIGhvZ3kgZXogYSByZW5kc3plcm1hZyBuZW1cbiIKKyIgICAgICAgaXNtZXJpIGEgaHVyb2tlc3prw7Z6dD8uIChmb3Jkw610c2Egw7pqcmEgYSByZW5kc3plcm1hZ290IHZhZ3lcbiIKKyIgICAgICAgYWRqYSBraSBhIOKAnm1vZHByb2JlIGxvb3DigJ0gcGFyYW5jc290LikiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MzYKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGlsZSByZWFkaW5nIHBhc3NwaHJhc2UiCittc2dzdHIgIkVsZm9neW90dCBhIG1lbcOzcmlhIGEgcHVmZmVyIG7DtnZlbMOpc2Vrb3IuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiZmlneWVsbWV6dGV0w6lzOiBhKHopICVzIG3DoXIgdMOhcnPDrXR2YSB2YW4gYSBrw7Z2ZXRrZXrFkWjDtno6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2OTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzOiBpcyB3cml0ZS1wcm90ZWN0ZWQsIHVzaW5nIHJlYWQtb25seS5cbiIKK21zZ3N0ciAibW91bnQ6IGEoeikgJTIkcyUxJHMgw61yw6FzdsOpZGV0dCwgY3NhdG9sw6FzIGNzYWsgb2x2YXNoYXTDs2vDqW50IgorCisjOiBtb3VudC9sb21vdW50LmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iCittc2dzdHIgIk5lbSBsZWhldCB6w6Fyb2xuaSBhIG1lbcOzcmnDoWJhLCBraWzDqXDDqXMuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgTE9PUF9TRVRfRkQgZmFpbGVkOiAlc1xuIgorbXNnc3RyICJBIExPT1BfU0VUX0ZEIGlvY3RsIG1lZ2hpw7pzdWx0OiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBjLWZvcm1hdAorbXNnaWQgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAic2V0X2xvb3AoJXMsJXMsJWxsdSwlbGx1KTogc2lrZXJcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgzNgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWxfbG9vcCglcyk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAiZGVsX2xvb3AoJXMpOiBzaWtlclxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODQwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGRlbGV0ZSBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG5lbSB0w7Zyw7ZsaGV0xZEgYSh6KSAlcyBlc3prw7Z6OiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgbW91bnQgd2FzIGNvbXBpbGVkIHdpdGhvdXQgbG9vcCBzdXBwb3J0LiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisiRXogYSDigJ5tb3VudOKAnSBwYXJhbmNzIGh1cm9rZXN6a8O2ei10w6Ftb2dhdMOhcyBuw6lsa8O8bCBsZXR0IGxlZm9yZMOtdHZhLiBGb3Jkw610c2EgIgorIsO6anJhLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorIlxuIgorIkhhc3puw6FsYXQ6XG4iCisiICUxJHMgaHVyb2tfZXN6a8O2eiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm9ybcOhY2nDs2vDqXLDqXNcbiIKKyIgJTEkcyAtYSB8IC0tYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXN6bsOhbHRhayBmZWxzb3JvbMOhc2FcbiIKKyIgJTEkcyAtZCB8IC0tZGV0YWNoIGh1cm9rZXN6a8O2eiAgICAgICAgICAgICAgICAgICAgdMO2cmzDqXNcbiIKKyIgJTEkcyAtZiB8IC0tZmluZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZW0gaGFzem7DoWx0YWsga2VyZXPDqXNlXG4iCisiICUxJHMgLWogfCAtLWFzc29jaWF0ZWQgPGbDoWpsPiBbLW8gPHN6w6FtPl0gIGEgPGbDoWpsPi1ob3ogdMOhcnPDrXRvdHRhayAiCisiZmVsc29yb2zDoXNhXG4iCisiICUxJHMgWyBrYXBjc29sw7NrIF0gey1mfC0tZmluZHxodXJva2VzemvDtnp9IGbDoWpsICAgYmXDoWxsw610w6FzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIDx0eXBlPiBlbmFibGUgZGF0YSBlbmNyeXB0aW9uIHdpdGggc3BlY2lmaWVkIDxuYW1lL251bT5cbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbyB8IC0tb2Zmc2V0IDxudW0+ICAgICAgc3RhcnQgYXQgb2Zmc2V0IDxudW0+IGludG8gZmlsZVxuIgorIiAgICAgIC0tc2l6ZWxpbWl0IDxudW0+ICAgbG9vcCBsaW1pdGVkIHRvIG9ubHkgPG51bT4gYnl0ZXMgb2YgdGhlIGZpbGVcbiIKKyIgLXAgfCAtLXBhc3MtZmQgPG51bT4gICAgIHJlYWQgcGFzc3BocmFzZSBmcm9tIGZpbGUgZGVzY3JpcHRvciA8bnVtPlxuIgorIiAtciB8IC0tcmVhZC1vbmx5ICAgICAgICAgc2V0dXAgcmVhZC1vbmx5IGxvb3AgZGV2aWNlXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICBwcmludCBkZXZpY2UgbmFtZSAod2l0aCAtZiA8ZmlsZT4pXG4iCisiIC12IHwgLS12ZXJib3NlICAgICAgICAgICB2ZXJib3NlIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkthcGNzb2zDs2s6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIDx0w61wdXM+IGF6IGFkb3R0IDxuZXbFsS9zesOhbcO6PiBhZGF0dGl0a29zw610w6FzICIKKyJlbmdlZMOpbHllesOpc2VcbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgICBleiBhIHPDumfDs1xuIgorIiAtbyB8IC0tb2Zmc2V0IDxzesOhbT4gICAgICBrZXpkw6lzIDxzesOhbT4gZWx0b2zDoXNzYWwgYSBmw6FqbGJhblxuIgorIiAgICAgIC0tc2l6ZWxpbWl0IDxzesOhbT4gICBhIGh1cm9rIGtvcmzDoXRvesOhc2EgY3NhayA8c3rDoW0+IGLDoWp0cmEgYSBmw6FqbGJhblxuIgorIiAtcCB8IC0tcGFzcy1mZCA8c3rDoW0+ICAgICBqZWxtb25kYXQgYmVvbHZhc8Ohc2EgYSA8c3rDoW0+IGbDoWpsbGXDrXLDs2LDs2xcbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgICBjc2FrIG9sdmFzaGF0w7MgaHVyb2tlc3prw7Z6IGJlw6FsbMOtdMOhc2FcbiIKKyIgICAgICAtLXNob3cgICAgICAgICAgICAgICBlc3prw7Z6bsOpdiBracOtcmF0w6FzYSAoYSAtZiA8ZsOhamw+IGthcGNzb2zDs3ZhbClcbiIKKyIgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICByw6lzemxldGVzIG3Ds2RcbiIKKyJcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwMzQgbW91bnQvbG9tb3VudC5jOjEwNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkxvb3AgZGV2aWNlIGlzICVzXG4iCittc2dzdHIgImxvb3A6IG5lbSBueWl0aGF0w7MgbWVnIGEoeikgJXMgZXN6a8O2ejogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN0b2xlbiBsb29wPSVzLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKyJtb3VudDogYSh6KSAlcyBodXJva2VzemvDtnp0IGVneSBtw6FzaWsgZm9seWFtYXQgZWxsb3B0YS4uLiDDumpyYXByw7Niw6Fsb21cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogZGV2aWNlIGlzIGJ1c3kiCittc2dzdHIgIm1vdW50OiBhKHopICVzIGZvZ2xhbHQiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDg4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGxvb3Agc3VwcG9ydCB3YXMgYXZhaWxhYmxlIGF0IGNvbXBpbGUgdGltZS4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiIgorIkEgJ2xvb3AnIHTDoW1vZ2F0w6FzIG5lbSB2b2x0IGVsw6lyaGV0xZEgZm9yZMOtdMOhc2tvci4gRm9yZMOtdHNhIMO6anJhIGEgIgorInByb2dyYW1vdC5cbiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIm1vdW50OiBoZWx5dGVsZW7DvGwgaWTDqXrFkWplbGV6ZXR0IGthcGNzb2zDsy1rYXJha3RlcnNvcm96YXQ6IOKAniVz4oCdIgorCisjOiBtb3VudC9tb3VudC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdHJhbnNsYXRlZCAlcyAnJXMnIHRvICclcydcbiIKK21zZ3N0ciAibW91bnQ6IGEoeikgJXMg4oCeJXPigJ0gbGVmb3Jkw610dmEgYSBrw7Z2ZXRrZXrFkXJlOiDigJ4lc+KAnVxuIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IGF6IG10YWIgYWxhcGrDoW4gYSh6KSAlcyBtw6FyIGNzYXRvbHZhIHZhbiBhIGvDtnZldGtlesWRbjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IGF6IG10YWIgYWxhcGrDoW4gYSh6KSAlcyBhIGvDtnZldGtlesWRIGFsw6EgdmFuIGNzYXRvbHZhOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDogYSh6KSAlcyBuZW0gbnlpdGhhdMOzIG1lZyDDrXLDoXNyYTogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTgxIG1vdW50L21vdW50LmM6MTE5OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIm1vdW50OiBoaWJhIGEoeikgJXMgw61yw6FzYWtvcjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGhpYmEgYSh6KSAlcyBtw7NkasOhbmFrIG3Ds2Rvc8OtdMOhc2Frb3I6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIm1vdW50OiBuZW0gw6FsbMOtdGhhdMOzIGJlIGEgY3NvcG9ydGF6b25vc8OtdMOzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiBuZW0gw6FsbMOtdGhhdMOzIGJlIGEgZmVsaGFzem7DoWzDs2F6b25vc8OtdMOzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBuZW0gaW5kw610aGF0w7MgYSBwcm9ncmFtOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIkvDrXPDqXJsZXQ6ICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIm1vdW50OiBuZW0gYWR0YSBtZWcgYSBrw7Z2ZXRrZXrFkSBmw6FqbHJlbmRzemVyw6l0OiAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiIKKyIgICAgICAgS8Otc8OpcmxldCBhKHopICVzIHZhZ3kgYSh6KSAlcyBmw6FqbGJhbiBlbWzDrXRldHQgw7Zzc3plcyB0w61wdXNzYWxcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIGFuZCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgc3dhcHNwYWNlXG4iCittc2dzdHIgIiAgICAgIMOpcyDDumd5IHTFsW5paywgZXogZWd5IGxhcG96w7N0ZXLDvGxldFxuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSB0eXBlICVzXG4iCittc2dzdHIgIiAgICAgIEvDrXPDqXJsZXQgYSh6KSAlcyB0w61wdXNzYWxcbiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiJXMgbGFwb3rDs3RlcsO8bGV0bmVrIHTFsW5payAtIG5lbSBrZXLDvGx0IGNzYXRvbMOhc3JhIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDIKK21zZ2lkICJtb3VudCBmYWlsZWQiCittc2dzdHIgImEgY3NhdG9sw6FzIG1lZ2hpw7pzdWx0IgorCisjOiBtb3VudC9tb3VudC5jOjEwMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gbW91bnQgJXMgb24gJXMiCittc2dzdHIgIm1vdW50OiBjc2FrIGEgcmVuZHN6ZXJnYXpkYSBjc2F0b2xoYXRqYSBhKHopICVzIGVzemvDtnp0IGEoeikgJXMgaGVseXJlIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzQKK21zZ2lkICJtb3VudDogbG9vcCBkZXZpY2Ugc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogYSBodXJva2VzemvDtnp0IGvDqXRzemVyIGFkdGEgbWVnIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzkKK21zZ2lkICJtb3VudDogdHlwZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiBhIHTDrXB1c3Qga8OpdHN6ZXIgYWR0YSBtZWciCisKKyM6IG1vdW50L21vdW50LmM6MTA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2tpcHBpbmcgdGhlIHNldHVwIG9mIGEgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAibW91bnQ6IGEgaHVyb2tlc3prw7Z6IGJlw6FsbMOtdMOhc8OhbmFrIGtpaGFnecOhc2FcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMgYXMgbG9vcCIKK21zZ3N0ciAiIgorIm1vdW50OiBheiBtdGFiIGFsYXBqw6FuIGEoeikgJXMgbcOhciBjc2F0b2x2YSB2YW4gaHVyb2tlc3prw7Z6a8OpbnQgYSAiCisia8O2dmV0a2V6xZFuOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiBhKHopICVzIGh1cm9rZXN6a8O2eiBrZXLDvGwgZmVsaGFzem7DoWzDoXNyYVxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisibW91bnQ6IGEoeikgJXMgaHVyb2tlc3prw7Z6dCBlZ3kgbcOhc2lrIGZvbHlhbWF0IGVsbG9wdGEuLi4gw7pqcmFwcsOzYsOhbG9tXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgIm1vdW50OiBhKHopICVzIGh1cm9rZXN6a8O2enQgZWd5IG3DoXNpayBmb2x5YW1hdCBlbGxvcHRhIgorCisjOiBtb3VudC9tb3VudC5jOjExMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBhIGh1cm9rZXN6a8O2eiBiZcOhbGzDrXTDoXNhIG1lZ2hpw7pzdWx0XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE0MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2V0dXAgbG9vcCBkZXZpY2Ugc3VjY2Vzc2Z1bGx5XG4iCittc2dzdHIgIm1vdW50OiBhIGh1cm9rZXN6a8O2eiBiZcOhbGzDrXTDoXNhIHNpa2Vyw7xsdFxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vICVzIGZvdW5kIC0gY3JlYXRpbmcgaXQuLlxuIgorbXNnc3RyICJtb3VudDogbmVtIHRhbMOhbGhhdMOzIGEoeikgJXMgLSBsw6l0cmVob3rDoXMuLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGEoeikgJXMgbmVtIG55aXRoYXTDsyBtZWc6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIm1vdW50OiBhIC1wIHZhZ3kgLS1wYXNzLWZkIGFyZ3VtZW50dW3DoW5hayBzesOhbW5hayBrZWxsIGxlbm5pZSIKKworIzogbW91bnQvbW91bnQuYzoxMjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgb3BlbiAlcyBmb3Igc2V0dGluZyBzcGVlZCIKK21zZ3N0ciAibW91bnQ6IGEoeikgJXMgbmVtIG55aXRoYXTDsyBtZWcgYSBzZWJlc3PDqWcgYmXDoWxsw610w6Fzw6Fob3oiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50OiBuZW0gw6FsbMOtdGhhdMOzIGJlIGEgc2ViZXNzw6lnOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiBheiBtdGFiIGFsYXBqw6FuIGEoeikgJXMgbcOhciBjc2F0b2x2YSB2YW4gYSBrw7Z2ZXRrZXrFkW46ICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTM4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHdhcm5pbmc6ICVzIHNlZW1zIHRvIGJlIG1vdW50ZWQgcmVhZC13cml0ZS5cbiIKK21zZ3N0ciAidW1vdW50OiBhKHopICVzIGZvZ2xhbHQgLSDDumpyYWNzYXRvbHZhIGNzYWsgb2x2YXNoYXTDs2vDqW50XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQxMworbXNnaWQgIiIKKyJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsIGFuZCBub25lIHdhcyBzcGVjaWZpZWQiCittc2dzdHIgIiIKKyJtb3VudDogbmVtIGhhdMOhcm96aGF0w7MgbWVnIGEgZsOhamxyZW5kc3plciB0w61wdXNhIMOpcyBuZW0gaXMgYWR0YSBhenQgbWVnIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTYKK21zZ2lkICJtb3VudDogeW91IG11c3Qgc3BlY2lmeSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICJtb3VudDogbWVnIGtlbGwgYWRuaWEgYSBmw6FqbHJlbmRzemVyIHTDrXB1c8OhdCIKKworIzogbW91bnQvbW91bnQuYzoxNDE5Cittc2dpZCAibW91bnQ6IG1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQ6IGEgY3NhdG9sw6FzIG1lZ2hpw7pzdWx0IgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIm1vdW50OiBhKHopICVzIGNzYXRvbMOhc2kgcG9udCBuZW0gZWd5IGvDtm55dnTDoXIiCisKKyM6IG1vdW50L21vdW50LmM6MTQyNworbXNnaWQgIm1vdW50OiBwZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibW91bnQ6IGhvenrDoWbDqXLDqXMgbWVndGFnYWR2YSIKKworIzogbW91bnQvbW91bnQuYzoxNDI5Cittc2dpZCAibW91bnQ6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVzZSBtb3VudCIKK21zZ3N0ciAibW91bnQ6IGNzYWsgYSByZW5kc3plcmdhemRhIGhhc3puw6FsaGF0amEgYSBtb3VudCBwYXJhbmNzb3QiCisKKyM6IG1vdW50L21vdW50LmM6MTQzMyBtb3VudC9tb3VudC5jOjE0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIGJ1c3kiCittc2dzdHIgIm1vdW50OiBhKHopICVzIGZvZ2xhbHQiCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IGEgcHJvYyBmw6FqbHJlbmRzemVyIG3DoXIgY3NhdG9sdmEgdmFuIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvciAlcyBidXN5IgorbXNnc3RyICJtb3VudDogYSh6KSAlcyBtw6FyIGNzYXRvbHZhIHZhbiwgdmFneSBhKHopICVzIGZvZ2xhbHQiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBhKHopICVzIGNzYXRvbMOhc2kgcG9udCBuZW0gbMOpdGV6aWsiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgYSBzeW1ib2xpYyBsaW5rIHRvIG5vd2hlcmUiCittc2dzdHIgIm1vdW50OiBhKHopICVzIGNzYXRvbMOhc2kgcG9udCBlZ3kgc3ppbWJvbGlrdXMgbGluayBhIHNlbW1pYmUiCisKKyM6IG1vdW50L21vdW50LmM6MTQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBhKHopICVzIHNwZWNpw6FsaXMgZXN6a8O2eiBuZW0gbMOpdGV6aWsiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorIm1vdW50OiBhKHopICVzIHNwZWNpw6FsaXMgZXN6a8O2eiBuZW0gbMOpdGV6aWtcbiIKKyIgICAgICAgKGF6IGVsw6lyw6lzaSDDunQgZWd5IGVsxZF0YWdqYSBuZW0ga8O2bnl2dMOhcilcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICJtb3VudDogYSh6KSAlcyBtw6lnIG5pbmNzIGNzYXRvbHZhLCB2YWd5IGEga2FwY3NvbMOzIGhpYsOhcyIKKworIzogbW91bnQvbW91bnQuYzoxNDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogd3JvbmcgZnMgdHlwZSwgYmFkIG9wdGlvbiwgYmFkIHN1cGVyYmxvY2sgb24gJXMsXG4iCisiICAgICAgIG1pc3NpbmcgY29kZXBhZ2Ugb3IgaGVscGVyIHByb2dyYW0sIG9yIG90aGVyIGVycm9yIgorbXNnc3RyICIiCisibW91bnQ6IGhpYsOhcyBmw6FqbHJlbmRzemVydMOtcHVzLCBoaWLDoXMga2FwY3NvbMOzLCBoaWLDoXMgc3p1cGVyYmxva2sgYSh6KVxuIgorIiAgICAgICAlcyBlc3prw7Z6w7ZuLCBoacOhbnl6w7Mga8OzZGxhcCB2YWd5IHNlZ8OpZHByb2dyYW0sIHZhZ3kgZWd5w6liIGhpYmEiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4NworbXNnaWQgIiIKKyIgICAgICAgKGZvciBzZXZlcmFsIGZpbGVzeXN0ZW1zIChlLmcuIG5mcywgY2lmcykgeW91IG1pZ2h0XG4iCisiICAgICAgIG5lZWQgYSAvc2Jpbi9tb3VudC48dHlwZT4gaGVscGVyIHByb2dyYW0pIgorbXNnc3RyICIiCisiICAgICAgIChzesOhbW9zIGbDoWpscmVuZHN6ZXIgKHDDqWxkw6F1bCBuZnMsIGNpZnMpIGVzZXTDqW4gc3rDvGtzw6lnZXNcbiIKKyIgICAgICAgbGVoZXQgZWd5IC9zYmluL21vdW50Ljx0w61wdXM+IHNlZ8OpZHByb2dyYW0pIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKyIgICAgICAgKGxlaGV0LCBob2d5IGV6IGVneSBJREUgZXN6a8O2eiwgbWlrw7Z6YmVuIGlkZS1zY3NpLXRcbiIKKyIgICAgICAgaGFzem7DoWwsIMOtZ3kgYXogc3IwIHZhZ3kgc2RhIHZhZ3kgaGFzb25sw7Mgc3rDvGtzw6lnZXM/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTAxCittc2dpZCAiIgorIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorIiAgICAgICBpbnN0ZWFkIG9mIHNvbWUgbG9naWNhbCBwYXJ0aXRpb24gaW5zaWRlPykiCittc2dzdHIgIiIKKyIgICAgICAgKGxlaGV0LCBob2d5IGVneSBraXRlcmplc3p0ZXR0IHBhcnTDrWNpw7N0IHByw7Niw6FsIGNzYXRvbG5pXG4iCisiICAgICAgIGF6IMOhbHRhbGEgdGFydGFsbWF6b3R0IHZhbGFtZWx5aWsgbG9naWthaSBwYXJ0w61jacOzIGhlbHlldHQ/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKyIgICAgICAgRWd5ZXMgZXNldGVrYmVuIGhhc3pub3MgaW5mb3Jtw6FjacOzayB0YWzDoWxoYXTDs2sgYSBzeXNsb2diYW5cbiIKKyIgICAgICAgcHLDs2LDoWxqYSBraWFkbmkgYSBkbWVzZyB8IHRhaWwgcGFyYW5jc290IHZhZ3kgZWd5IGVoaGV6IGhhc29ubMOzdFxuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICJhIGNzYXRvbMOhc2kgdMOhYmxhIG1lZ3RlbHQiCisKKyM6IG1vdW50L21vdW50LmM6MTUxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IGNhbid0IHJlYWQgc3VwZXJibG9jayIKK21zZ3N0ciAibW91bnQ6IG5lbSBsZWhldCBvbHZhc25pIGEoeikgJXMgc3p1cGVyYmxva2tqw6F0IgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAibW91bnQ6IGEoeikgJXMgZXN6a8O2eiBpc21lcmV0bGVuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHVua25vd24gZmlsZXN5c3RlbSB0eXBlICclcyciCittc2dzdHIgIm1vdW50OiBpc21lcmV0bGVuIGbDoWpscmVuZHN6ZXJ0w61wdXM6IOKAniVz4oCdIgorCisjOiBtb3VudC9tb3VudC5jOjE1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHByb2JhYmx5IHlvdSBtZWFudCAlcyIKK21zZ3N0ciAibW91bnQ6IHRhbMOhbiBhIGvDtnZldGtlesWRcmUgZ29uZG9sdDogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTU0MgorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAibW91bnQ6IHRhbMOhbiBheiDigJ5pc285NjYw4oCdIHTDrXB1c3JhIGdvbmRvbHQ/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDUKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICd2ZmF0Jz8iCittc2dzdHIgIm1vdW50OiB0YWzDoW4gYSDigJ52ZmF04oCdIHTDrXB1c3JhIGdvbmRvbHQ/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiBhKHopICVzIGVzemvDtnpzesOhbWEgaGliw6FzIHZhZ3kgYSh6KSAlcyBmw6FqbHJlbmRzemVyIG5lbSB0w6Ftb2dhdG90dCIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAibW91bnQ6IGEoeikgJXMgbmVtIGJsb2trZXN6a8O2eiDDqXMgYXogZWzDqXLDqXMgbWVnaGnDunN1bHQuIgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogdGhlIGtlcm5lbCBkb2VzIG5vdCByZWNvZ25pemUgJXMgYXMgYSBibG9jayBkZXZpY2VcbiIKKyIgICAgICAgKG1heWJlIGBtb2Rwcm9iZSBkcml2ZXInPykiCittc2dzdHIgIiIKKyJtb3VudDogYSByZW5kc3plcm1hZyBuZW0gaXNtZXJpIGZlbCBhKHopICVzIGJsb2trZXN6a8O2enRcbiIKKyIgICAgICAgKHRhbMOhbiBraSBrZWxsZW5lIGFkbmlhIGF6IOKAnmluc21vZCBtZWdoYWp0w7PigJ0gcGFyYW5jc290PykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIiIKKyJtb3VudDogYSh6KSAlcyBuZW0gYmxva2tlc3prw7Z6IChwcsOzYsOhbGphIGhhc3puw6FsbmkgYSDigJ4tbyBsb29w4oCdIGthcGNzb2zDs3QpIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6IGEoeikgJXMgbmVtIGJsb2trZXN6a8O2eiIKKworIzogbW91bnQvbW91bnQuYzoxNTY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSB2YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiBhKHopICVzIG5lbSBlZ3kgw6lydsOpbnllcyBibG9ra2VzemvDtnoiCisKKyMgZXogYSBrw7Z2ZXRrZXrFkSBow6Fyb20gJXMlcy1iZW4gYXogZWxzxZEgJXMgbGVzeiwgbWVnIGtlbGwgbWFqZCBvdHQgZm9yZMOtdGFuaQorIzogbW91bnQvbW91bnQuYzoxNTcyCittc2dpZCAiYmxvY2sgZGV2aWNlICIKK21zZ3N0ciAiYmxva2tlc3prw7Z6IgorCisjOiBtb3VudC9tb3VudC5jOjE1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIKK21zZ3N0ciAibW91bnQ6IGEoeikgJTIkcyUxJHMgbmVtIGNzYXRvbGhhdMOzIMOtcsOhc3bDqWRldHRrw6ludCIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICJtb3VudDogYSh6KSAlMiRzJTEkcyDDrXLDoXN2w6lkZXR0LCBkZSBtZWdhZMOhc3JhIGtlcsO8bHQgYSDigJ4td+KAnSBrYXBjc29sw7MiCisKKyM6IG1vdW50L21vdW50LmM6MTU4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCByZW1vdW50ICVzJXMgcmVhZC13cml0ZSwgaXMgd3JpdGUtcHJvdGVjdGVkIgorbXNnc3RyICJtb3VudDogYSh6KSAlMiRzJTEkcyBuZW0gY3NhdG9saGF0w7Mgw61yw6FzdsOpZGV0dGvDqW50IgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiBhKHopICUyJHMlMSRzIMOtcsOhc3bDqWRldHQsIGNzYXRvbMOhcyBjc2FrIG9sdmFzaGF0w7Nrw6ludCIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisibW91bnQ6IGEoeikgJXMgaHVyb2tlc3prw7Z6dCBlZ3kgbcOhc2lrIGZvbHlhbWF0IGVsbG9wdGEuLi4gw7pqcmFwcsOzYsOhbG9tXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IGEoeikgJXMgbcOhciBjc2F0b2x2YSB2YW4gYSh6KSAlcyBhbMOhXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIiIKKyJtb3VudDogbmVtIGFkb3R0IG1lZyB0w61wdXN0IC0gYSBrZXR0xZFzcG9udCBtaWF0dCBuZnMgdMOtcHVzdCBmZWx0w6l0ZWxlemVrXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICIiCisibW91bnQ6IG5lbSBhZG90dCBtZWcgdMOtcHVzdCAtIGEgLy8gZWzFkXRhZyBtaWF0dCBjaWZzIHTDrXB1c3QgZmVsdMOpdGVsZXpla1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICJtb3VudDogYSh6KSAlcyBtw6FyIGNzYXRvbHZhIHZhbiBhKHopICVzIGFsw6FcbiIKKworIzogbW91bnQvbW91bnQuYzoxOTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogcHJpbnQgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBwcmludCB0aGlzIGhlbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdCBtb3VudGVkIGZpbGVzeXN0ZW1zXG4iCisiICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1ZGluZyB2b2x1bWUgbGFiZWxzXG4iCisiU28gZmFyIHRoZSBpbmZvcm1hdGlvbmFsIHBhcnQuIE5leHQgdGhlIG1vdW50aW5nLlxuIgorIlRoZSBjb21tYW5kIGlzIGBtb3VudCBbLXQgZnN0eXBlXSBzb21ldGhpbmcgc29tZXdoZXJlJy5cbiIKKyJEZXRhaWxzIGZvdW5kIGluIC9ldGMvZnN0YWIgbWF5IGJlIG9taXR0ZWQuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IG1vdW50IGFsbCBzdHVmZiBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgIDogbW91bnQgZGV2aWNlIGF0IHRoZSBrbm93biBwbGFjZVxuIgorIiAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICAgOiBtb3VudCBrbm93biBkZXZpY2UgaGVyZVxuIgorIiAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICAgOiBvcmRpbmFyeSBtb3VudCBjb21tYW5kXG4iCisiTm90ZSB0aGF0IG9uZSBkb2VzIG5vdCByZWFsbHkgbW91bnQgYSBkZXZpY2UsIG9uZSBtb3VudHNcbiIKKyJhIGZpbGVzeXN0ZW0gKG9mIHRoZSBnaXZlbiB0eXBlKSBmb3VuZCBvbiB0aGUgZGV2aWNlLlxuIgorIk9uZSBjYW4gYWxzbyBtb3VudCBhbiBhbHJlYWR5IHZpc2libGUgZGlyZWN0b3J5IHRyZWUgZWxzZXdoZXJlOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIm9yIG1vdmUgYSBzdWJ0cmVlOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgb2xkZGlyIG5ld2RpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIG1vdW50IGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBkaXJcbiIKKyJBIGRldmljZSBjYW4gYmUgZ2l2ZW4gYnkgbmFtZSwgc2F5IC9kZXYvaGRhMSBvciAvZGV2L2Nkcm9tLFxuIgorIm9yIGJ5IGxhYmVsLCB1c2luZyAgLUwgbGFiZWwgIG9yIGJ5IHV1aWQsIHVzaW5nICAtVSB1dWlkIC5cbiIKKyJPdGhlciBvcHRpb25zOiBbLW5mRnJzdnddIFstbyBvcHRpb25zXSBbLXAgcGFzc3dkZmRdLlxuIgorIkZvciBtYW55IG1vcmUgZGV0YWlscywgc2F5ICBtYW4gOCBtb3VudCAuXG4iCittc2dzdHIgIiIKKyJIYXN6bsOhbGF0OiBcbiIKKyIgICAgICAgbW91bnQgLVYgICAgICAgICAgICAgICAgICAgICAgIDogdmVyemnDs3N6w6FtIGtpw61yw6FzYVxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgICAgICAgOiBleiBhIHPDumfDs1xuIgorIiAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhIGNzYXRvbHQgZsOhamxyZW5kc3plcmVrICIKKyJmZWxzb3JvbMOhc2FcbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgICAgICAgIDogdWd5YW5heiwgZGUgYSBrw7Z0ZXRjw61ta8Opa2tlbFxuIgorIkV6IGF6IGluZm9ybcOhbGlzIHLDqXN6IHZvbHQuIEEga8O2dmV0a2V6xZEgYSBjc2F0b2zDoXNyw7NsIHN6w7NsLlxuIgorIkEgcGFyYW5jcyDDoWx0YWzDoW5vcyBhbGFramE6IOKAnm1vdW50IFstdCBmw6FqbHJlbmRzemVydMOtcHVzXSBtaXQgaG92w6HigJ0uXG4iCisiQXogL2V0Yy9mc3RhYiBmw6FqbGJhbiBtZWd0YWzDoWxoYXTDsyByw6lzemxldGVrIGtpaGFneWhhdMOzay5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAgICAgICAgICAgICAgIDogbWluZGVudCBjc2F0b2wgYXogL2V0Yy9mc3RhYiAiCisiZsOhamxiw7NsXG4iCisiICAgICAgIG1vdW50IGVzemvDtnogICAgICAgICAgICAgICAgICAgOiBheiBlc3prw7Z6IGNzYXRvbMOhc2EgYXogaXNtZXJ0ICIKKyJoZWx5cmVcbiIKKyIgICAgICAgbW91bnQga8O2bnl2dMOhciAgICAgICAgICAgICAgICAgOiBpc21lcnQgZXN6a8O2eiBjc2F0b2zDoXNhIGEgIgorImvDtm55dnTDoXJiYVxuIgorIiAgICAgICBtb3VudCAtdCB0w61wdXMgZXN6a8O2eiBrw7ZueXZ0w6FyIDogYSBwYXJhbmNzIMOhbHRhbMOhbm9zIGFsYWtqYVxuIgorIk5lIGZlbGVkamUsIGhvZ3kgZXogdmFsw7Nqw6FiYW4gbmVtIGNzYXRvbCBlc3prw7Z6w7ZrZXQsIHTDqW55bGVnZXNlbiBheiAiCisiZXN6a8O2esO2blxuIgorInRhbMOhbGhhdMOzIChhZG90dCB0w61wdXPDuikgZsOhamxyZW5kc3plcnQgY3NhdG9samEuXG4iCisiRWd5IG3DoXIgbMOhdGhhdMOzIGvDtm55dsOhcmZhIG3DoXNpayBrw7ZueXZ0w6FyYmEgaXMgY3NhdG9saGF0w7M6XG4iCisiICAgICAgIG1vdW50IC0tYmluZCByw6lnaWvDtm55dnTDoXIgw7pqa8O2bnl2dMOhclxuIgorInZhZ3kgw6F0aGVseWV6aGV0IGVneSByw6lzembDoXQ6XG4iCisiICAgICAgIG1vdW50IC0tbW92ZSByw6lnaWvDtm55dnTDoXIgw7pqa8O2bnl2dMOhclxuIgorIk3Ds2Rvc8OtdGhhdMOzIGEga8O2bnl2dMOhciBjc2F0b2zDoXNpIHTDrXB1c2EgaXM6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQga8O2bnl2dMOhclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUga8O2bnl2dMOhclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBrw7ZueXZ0w6FyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGvDtm55dnTDoXJcbiIKKyJFZ3kgY3NhdG9sdCByw6lzemZhIGFkb3R0IGvDtm55dnTDoXLDoXQgdGFydGFsbWF6w7Mgw7Zzc3plcyBjc2F0b2zDoXN0w61wdXPDoW5ha1xuIgorIm3Ds2Rvc8OtdMOhc2E6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGvDtm55dnTDoXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBrw7ZueXZ0w6FyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ycHJpdmF0ZSBrw7ZueXZ0w6FyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBrw7ZueXZ0w6FyXG4iCisiQXogZXN6a8O2eiBtZWdhZGhhdMOzIG7DqXYgc3plcmludCwgcMOpbGTDoXVsOiAvZGV2L2hkYTEgdmFneSAvZGV2L2Nkcm9tLFxuIgorInZhZ3kgY8OtbWtlIHN6ZXJpbnQgYSDigJ4tTCBjw61ta2XigJ0sIGlsbGV0dmUgdXVpZCBzemVyaW50IGEg4oCeLVUgdXVpZOKAnVxuIgorImthcGNzb2zDsyBoYXN6bsOhbGF0w6F2YWwuXG4iCisiRWd5w6liIGthcGNzb2zDs2s6IFstbmZGcnN2d10gWy1vIGthcGNzb2zDs2tdLlxuIgorIlRvdsOhYmJpIGluZm9ybcOhY2nDs2vDqXJ0IGFkamEga2kgYSDigJ5tYW4gOCBtb3VudOKAnSBwYXJhbmNzb3QuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiBlenQgY3NhayBhIHJlbmRzemVyZ2F6ZGEgdGVoZXRpIG1lZyIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6IGV6dCBjc2FrIGEgcmVuZHN6ZXJnYXpkYSB0ZWhldGkgbWVnIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJzZW1taSBuZW0gbGV0dCBjc2F0b2x2YSIKKworIzogbW91bnQvbW91bnQuYzoyMzA2IG1vdW50L21vdW50LmM6MjMzMgorbXNnaWQgIm1vdW50OiBubyBzdWNoIHBhcnRpdGlvbiBmb3VuZCIKK21zZ3N0ciAibW91bnQ6IG5pbmNzIGlseWVuIHBhcnTDrWNpw7MiCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6IGEoeikgJXMgbmVtIHRhbMOhbGhhdMOzIGEoeikgJXMgdmFneSBhKHopICVzIGFsYXR0IgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IHdhcm5pbmc6IG5vIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiAlc1xuIgorbXNnc3RyICJbbW50ZW50XTogZmlneWVsbWV6dGV0w6lzOiBuaW5jcyBiZWZlamV6xZEgw7pqc29yIGEoeikgJXMgdsOpZ8OpblxuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiW21udGVudF06IGEoeikgJWQuIHNvciBoaWLDoXMgYSh6KSAlcyBmw6FqbGJhbiVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxOQorbXNnaWQgIjsgcmVzdCBvZiBmaWxlIGlnbm9yZWQiCittc2dzdHIgIjsgYSBmw6FqbCB0w7ZiYmkgcsOpc3plIGZpZ3llbG1lbiBrw612w7xsIG1hcmFkIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjMyCittc2dpZCAiYnVnIGluIHhzdHJuZHVwIGNhbGwiCittc2dzdHIgImhpYmEgYXogeHN0cm5kdXAgaMOtdsOhc2JhbiIKKworIzogbW91bnQvc3VuZHJpZXMuYzoyMjUgbW91bnQvc3VuZHJpZXMuYzoyODEgbW91bnQvc3VuZHJpZXMuYzoyOTYKKyM6IG1vdW50L3htYWxsb2MuYzoxMQorbXNnaWQgIm5vdCBlbm91Z2ggbWVtb3J5IgorbXNnc3RyICJuaW5jcyBlbMOpZyBtZW3Ds3JpYSIKKworIzogbW91bnQvc3dhcG9uLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSA8c3BlY2lhbD4gcGFyYW1ldGVyOlxuIgorIiB7LUwgbGFiZWwgfCBMQUJFTD1sYWJlbH0gICAgICAgICAgICAgTEFCRUwgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIFVVSUQgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGRldmljZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGZpbGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZmlsZSB0byBiZSB1c2VkXG4iCisiXG4iCittc2dzdHIgIiIKKyJBIDxzcGVjacOhbGlzPiBwYXJhbcOpdGVyOlxuIgorIiB7LUwgY8OtbWtlIHwgTEFCRUw9Y8OtbWtlfSAgICAgICAgICAgICBhIGhhc3puw6FsYW5kw7MgZXN6a8O2eiBDw41NS8OJSkVcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIGEgaGFzem7DoWxhbmTDsyBlc3prw7Z6IFVVSUQtamVcbiIKKyIgPGVzemvDtno+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIGhhc3puw6FsYW5kw7MgZXN6a8O2eiBuZXZlXG4iCisiIDxmw6FqbD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBoYXN6bsOhbGFuZMOzIGbDoWpsIG5ldmVcbiIKKyJcbiIKKworIzogbW91bnQvc3dhcG9uLmM6OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCBwcmlvcml0eV0gWy12XSBbLWZdIDxzcGVjaWFsPiAgZW5hYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiSGFzem7DoWxhdDpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gICAgICAgICAgICAgICAgICBheiAvZXRjL2ZzdGFiIG1pbmRlbiBsYXBvesOzdGVyw7xsZXTDqW5la1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVrYXBjc29sw6FzYVxuIgorIiAlMSRzIFstcCBwcmlvcml0w6FzXSBbLXZdIDxzcGVjacOhbGlzPiAgYWRvdHQgbGFwb3rDs3RlcsO8bGV0IGJla2FwY3NvbMOhc2FcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXBvesOzdGVyw7xsZXQtaGFzem7DoWxhdCDDtnNzemVnesOpc8OpbmVrXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWdqZWxlbsOtdMOpc2VcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBzw7pnw7MgbWVnamVsZW7DrXTDqXNlXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyemnDsyBtZWdqZWxlbsOtdMOpc2VcbiIKKyJcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIHN3YXBzXG4iCisiICUxJHMgWy12XSA8c3BlY2lhbD4gICAgICAgICAgICAgICBkaXNhYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJIYXN6bsOhbGF0OlxuIgorIiAlMSRzIC1hIFstdl0gICAgICAgICAgICAgICAgICAgICAgbWluZGVuIGxhcG96w7N0ZXLDvGxldCBraWthcGNzb2zDoXNhXG4iCisiICUxJHMgWy12XSA8c3BlY2nDoWxpcz4gICAgICAgICAgICAgYWRvdHQgbGFwb3rDs3RlcsO8bGV0IGtpa2FwY3NvbMOhc2FcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHPDumfDsyBtZWdqZWxlbsOtdMOpc2VcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnppw7MgbWVnamVsZW7DrXTDqXNlXG4iCisiXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiVzOiAlczogdsOhcmF0bGFuIGbDoWpsZm9ybcOhdHVtXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlaW5pdGlhbGl6aW5nIHRoZSBzd2FwLiIKK21zZ3N0ciAiIgorIiVzOiAlczogc3pvZnR2ZXJlcyBmZWxmw7xnZ2VzenTDqXNpIGFkYXRvayB0YWzDoWxoYXTDs2suIEEgbGFwb3rDs3RlcsO8bGV0ICIKKyJpc23DqXRlbHQgZWzFkWvDqXN6w610w6lzZS5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICJheiBpbmTDrXTDoXMgbWVnaGnDunN1bHRcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjM5CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2IGZhaWxlZCIKK21zZ3N0ciAiYSB2w6lncmVoYWp0w6FzIG1lZ2hpw7pzdWx0XG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI0NworIywgZnV6enkKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAiYSBzZXR1aWQoKSBow612w6FzYSBtZWdoacO6c3VsdCIKKworIzogbW91bnQvc3dhcG9uLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbHNlZWsgZmFpbGVkIgorbXNnc3RyICJhIHBvemljaW9uw6Fsw6FzIG1lZ2hpw7pzdWx0IgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBzaWduYXR1cmUgZmFpbGVkIgorbXNnc3RyICJhIHN6YWJ2w6FueW9zIGtpbWVuZXRyZSDDrXLDoXMgbWVnaGnDunN1bHQiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZm91bmQgc3dhcCBzaWduYXR1cmU6IHZlcnNpb24gJWQsIHBhZ2Utc2l6ZSAlZCwgJXMgYnl0ZSBvcmRlciIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJkaWZmZXJlbnQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5CisjLCBmdXp6eQorbXNnaWQgInNhbWUiCittc2dzdHIgIk7DqXYiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN0YXQgZmFpbGVkIgorbXNnc3RyICIlcyBtZWdoacO6c3VsdC5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaW5zZWN1cmUgcGVybWlzc2lvbnMgJTA0bywgJTA0byBzdWdnZXN0ZWQuIgorbXNnc3RyICIiCisiJXM6IGZpZ3llbG1lenRldMOpczogYSh6KSAlcyBqb2dvc3VsdHPDoWdhaSAoJTA0bykgbmVtIGJpenRvbnPDoWdvc2FrLCBhICIKKyJqYXZhc29sdCDDqXJ0w6lrOiAlMDRvXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQwMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIC0gaXQgYXBwZWFycyB0byBoYXZlIGhvbGVzLiIKK21zZ3N0ciAiJXM6IEEoeikgJXMgZsOhamwga2loYWd5w6FzYSAtIMO6Z3kgdMWxbmlrLCBseXVrYWsgdmFubmFrIGJlbm5lLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBnZXQgc2l6ZSBmYWlsZWQiCittc2dzdHIgImEgcG96aWNpb27DoWzDoXMgbWVnaGnDunN1bHQiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuIFJld3JpdGluZyB0aGUgc3dhcCBzaWduYXR1cmUuIgorbXNnc3RyICIiCisiJXM6ICVzOiBzem9mdHZlcmVzIGZlbGbDvGdnZXN6dMOpc2kgYWRhdG9rIHRhbMOhbGhhdMOzay4gQSBsYXBvesOzdGVyw7xsZXQgIgorImlzbcOpdGVsdCBlbMWRa8Opc3rDrXTDqXNlLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NzggbW91bnQvc3dhcG9uLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIG9uICVzXG4iCittc2dzdHIgIiVzIGEga8O2dmV0a2V6xZFuOiAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb24gZmFpbGVkIgorbXNnc3RyICIlcyBtZWdoacO6c3VsdC5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZmluZCB0aGUgZGV2aWNlIGZvciAlcyIKK21zZ3N0ciAiJXM6IG5lbSB0YWzDoWxoYXTDsyBhKHopICVzIGVzemvDtnplXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MAorIywgZnV6enkKK21zZ2lkICJOb3Qgc3VwZXJ1c2VyLiIKK21zZ3N0ciAiTmVtIHJlbmRzemVyZ2F6ZGEuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvZmYgZmFpbGVkIgorbXNnc3RyICIlcyBtZWdoacO6c3VsdC5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgdW5zdXBwb3J0ZWQgcHJvZ3JhbSBuYW1lIChtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAtZlxuIgorbXNnc3RyICJ1bW91bnQ6IGEgcHJvZ3JhbSBhIC1mIGthcGNzb2zDsyB0w6Ftb2dhdMOhc2EgbsOpbGvDvGwgbGV0dCBsZWZvcmTDrXR2YVxuIgorCisjOiBtb3VudC91bW91bnQuYzoxMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAidW1vdW50OiBuZW0gw6FsbMOtdGhhdMOzIGJlIGEgY3NvcG9ydGF6b25vc8OtdMOzOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IG5lbSDDoWxsw610aGF0w7MgYmUgYSBmZWxoYXN6bsOhbMOzYXpvbm9zw610w7M6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBuZW0gaW5kw610aGF0w7MgcHJvZ3JhbTogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlcyDDqXJ2w6lueXRlbGVuIGJsb2trZXN6a8O2eiIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICJ1bW91bnQ6ICVzIG5pbmNzIGNzYXRvbHZhIgorCisjOiBtb3VudC91bW91bnQuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogY2FuJ3Qgd3JpdGUgc3VwZXJibG9jayIKK21zZ3N0ciAidW1vdW50OiAlcyBzenVwZXJibG9ra2phIG5lbSDDrXJoYXTDsyIKKworIzogbW91bnQvdW1vdW50LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1bW91bnQ6ICVzOiBkZXZpY2UgaXMgYnVzeS5cbiIKKyIgICAgICAgIChJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGFib3V0IHByb2Nlc3NlcyB0aGF0IHVzZVxuIgorIiAgICAgICAgIHRoZSBkZXZpY2UgaXMgZm91bmQgYnkgbHNvZig4KSBvciBmdXNlcigxKSkiCittc2dzdHIgIiIKKyJ1bW91bnQ6ICVzOiBheiBlc3prw7Z6IGZvZ2xhbHQuXG4iCisiICAgICAgICAoRWd5ZXMgZXNldGVrYmVuIGF6IGVzemvDtnp0IGhhc3puw6Fsw7MgZm9seWFtYXRva3LDs2wgaGFzem5vc1xuIgorIiAgICAgICAgIGluZm9ybcOhY2nDs2thdCB0YWzDoWwgYXogbHNvZig4KSB2YWd5IGZ1c2VyKDEpKSIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAidW1vdW50OiAlcyBuZW0gdGFsw6FsaGF0w7MiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBtdXN0IGJlIHN1cGVydXNlciB0byB1bW91bnQiCittc2dzdHIgInVtb3VudDogJXMgbGV2w6FsYXN6dMOhc8OhaG96IHJlbmRzemVyZ2F6ZGFpIGpvZyBzesO8a3PDqWdlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGJsb2NrIGRldmljZXMgbm90IHBlcm1pdHRlZCBvbiBmcyIKK21zZ3N0ciAidW1vdW50OiBhIGJsb2trZXN6a8O2esO2ayBuZW0gZW5nZWTDqWx5ZXpldHRlayBlemVuIGEgZsOhamxyZW5kc3plcmVuICglcykiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiAlcyIKK21zZ3N0ciAidW1vdW50OiAlczogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1bW91bnQyLCB0cnlpbmcgdW1vdW50Li4uXG4iCittc2dzdHIgIm5lbSB0YWzDoWxoYXTDsyBheiB1bW91bnQyLCBrw61zw6lybGV0IGF6IHVtb3VudCBoYXN6bsOhbGF0w6FyYS4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBidXN5IC0gcmVtb3VudGVkIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6IGEoeikgJXMgZm9nbGFsdCAtIMO6anJhY3NhdG9sdmEgY3NhayBvbHZhc2hhdMOza8OpbnRcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY291bGQgbm90IHJlbW91bnQgJXMgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogbmVtIGNzYXRvbGhhdMOzIMO6anJhIGNzYWsgb2x2YXNoYXTDs2vDqW50IGEga8O2dmV0a2V6xZE6ICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1bW91bnRlZFxuIgorbXNnc3RyICIlcyBsZXbDoWxhc3p0dmFcbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgInVtb3VudDogbmVtIHRhbMOhbGhhdMOzIGEgbGV2w6FsYXN6dGFuZMOzIGbDoWpscmVuZHN6ZXJlayBsaXN0w6FqYSIKKworIzogbW91bnQvdW1vdW50LmM6Mzk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisiSGFzem7DoWxhdDogdW1vdW50IFstaFZdXG4iCisiICAgICAgICAgICB1bW91bnQgLWEgWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgZsOhamxyZW5kc3plcnTDrXB1c10gWy1PICIKKyJrYXBjc29sw7NrXVxuIgorIiAgICAgICAgICAgdW1vdW50IFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2nDoWxpcyB8IGNzb23Ds3BvbnQuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgImZpZ3llbG1lenRldMOpczogYSh6KSAlcyBtw6FyIHTDoXJzw610dmEgdmFuIGEga8O2dmV0a2V6xZFow7Z6OiAlc1xuIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBub3QgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgImZpZ3llbG1lenRldMOpczogYSh6KSAlcyBtw6FyIHTDoXJzw610dmEgdmFuIGEga8O2dmV0a2V6xZFow7Z6OiAlc1xuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAiTmVtIHbDoWxhc3p0aGF0w7MgbGU6IOKAnuKAnVxuIgorCisjOiBtb3VudC91bW91bnQuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIHVtb3VudCAlc1xuIgorbXNnc3RyICJLw61zw6lybGV0IGEga8O2dmV0a2V6xZEgbGV2w6FsYXN6dMOhc8OhcmE6ICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAiQSh6KSAlcyBuZW0gdGFsw6FsaGF0w7MgYXogbXRhYiBmw6FqbGJhblxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6IGEoeikgJXMgbmluY3MgY3NhdG9sdmEgKGF6IG10YWIgZsOhamwgYWxhcGrDoW4pIgorCisjOiBtb3VudC91bW91bnQuYzo1NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBpdCBzZWVtcyAlcyBpcyBtb3VudGVkIG11bHRpcGxlIHRpbWVzIgorbXNnc3RyICJ1bW91bnQ6IMO6Z3kgdMWxbmlrLCBob2d5IGEoeikgJXMgdMO2YmJzesO2ciBrZXLDvGx0IGNzYXRvbMOhc3JhIgorCisjOiBtb3VudC91bW91bnQuYzo1NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgaW4gdGhlIGZzdGFiIChhbmQgeW91IGFyZSBub3Qgcm9vdCkiCittc2dzdHIgInVtb3VudDogYSh6KSAlcyBuaW5jcyBheiBmc3RhYiBmw6FqbGJhbiAow6lzIMOWbiBuZW0gcmVuZHN6ZXJnYXpkYSkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIG1vdW50IGRpc2FncmVlcyB3aXRoIHRoZSBmc3RhYiIKK21zZ3N0ciAidW1vdW50OiBhKHopICVzIGNzYXRvbMOhcyBuZW0gZWd5ZXppayBheiBmc3RhYiB0YXJ0YWxtw6F2YWwiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAiIgorInVtb3VudDogY3NhayBhKHopICVzIGZlbGhhc3puw6Fsw7MgdsOhbGFzenRoYXRqYSBsZSBhKHopICVzIGVzemvDtnp0IGEoeikgJXMgYWzDs2wiCisKKyM6IG1vdW50L3Vtb3VudC5jOjcwMQorbXNnaWQgInVtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICJ1bW91bnQ6IGV6dCBjc2FrIGEgcmVuZHN6ZXJnYXpkYSB0ZWhldGkgbWVnIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiY2hydCAtIG1hbmlwdWxhdGUgcmVhbC10aW1lIGF0dHJpYnV0ZXMgb2YgYSBwcm9jZXNzLlxuIgorIlxuIgorIlNldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSA8cG9saWN5PiA8cHJpb3JpdHk+IHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJHZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIlxuIgorIlNjaGVkdWxpbmcgcG9saWNpZXM6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0ZJRk9cbiIKKyIgIC1pIHwgLS1pZGxlICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9SUiAoZGVmYXVsdClcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHBcbiIKKyIgIC1wIHwgLS1waWQgICAgICAgICAgIG9wZXJhdGUgb24gZXhpc3RpbmcgZ2l2ZW4gcGlkXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBzaG93IG1pbiBhbmQgbWF4IHZhbGlkIHByaW9yaXRpZXNcbiIKKyIgIC12IHwgLS12ZXJib3NlICAgICAgIGRpc3BsYXkgc3RhdHVzIGluZm9ybWF0aW9uXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAiQSBzemVtw6lseWlzw6lnIGJlw6FsbMOtdMOhc2EgbWVnaGnDunN1bHQgYSBrw7Z2ZXRrZXrFkXJlOiAlcyIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwb2xpY3k6ICIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVua25vd25cbiIKK21zZ3N0ciAiaXNtZXJldGxlbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwcmlvcml0eTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBub3Qgc3VwcG9ydGVkP1xuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICIlczogYSBrw7Z2ZXRrZXrFkSBtZWdueWl0w6FzYSBtZWdoacO6c3VsdDogJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjI1CisjLCBmdXp6eQorbXNnaWQgImN1cnJlbnQiCittc2dzdHIgIm4uc3rDoW0iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcHJpb3JpdHkiCittc2dzdHIgIkEgc3plbcOpbHlpc8OpZyBiZcOhbGzDrXTDoXNhIG1lZ2hpw7pzdWx0IGEga8O2dmV0a2V6xZFyZTogJXMiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHNldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIkEgc3plbcOpbHlpc8OpZyBiZcOhbGzDrXTDoXNhIG1lZ2hpw7pzdWx0IGEga8O2dmV0a2V6xZFyZTogJXMiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0MgorIywgZnV6enkKK21zZ2lkICJuZXciCittc2dzdHIgIsOaaiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiYSB0w61wdXNwYXJhbmNzZsOhamwgKCVzKSBvbHZhc8Ohc2EgbWVnaGnDunN1bHQiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NTcKKyMsIGZ1enp5Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgImF6IG9wZW5wdHkgbWVnaGnDunN1bHRcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorIywgZnV6enkKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAiYXogb3BlbnB0eSBtZWdoacO6c3VsdFxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICJhKHopICVzIG5lbSBueWl0aGF0w7MgbWVnIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgImEgdsOpZ3JlaGFqdMOhcyBtZWdoacO6c3VsdFxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICJDc2FrIHJlbmRzemVyZ2F6ZGEgw6FsbMOtdGhhdGphIGJlIGEgQ3RybC1BbHQtRGVsIHZpc2Vsa2Vkw6lzw6l0LlxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkEoeikgJXMgZsOhamwgJWx1IGvDvHN6w7Ziw6lydMOpa8OpaGV6IGEgbWF4aW3DoWxpcyBrYXJha3RlcnN6w6FtIGEgZmlmby1iYW46ICVkXG4iCisiw6lzIGEgbWF4aW3DoWxpcyDDoXR2aXRlbGkgc2ViZXNzw6lnOiAlZiBrYXJha3Rlci9tw6Fzb2RwZXJjIHZvbHRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkEoeikgJXMgZsOhamwgJWx1IGvDvHN6w7Ziw6lydMOpa8OpaGV6IMOpcyAlbHUgaWTFkWtvcmzDoXRqw6Fob3ogYSBtYXhpbcOhbGlzICIKKyJrYXJha3RlcnN6w6FtIGEgZmlmby1iYW46ICVkXG4iCisiw6lzIGEgbWF4aW3DoWxpcyDDoXR2aXRlbGkgc2ViZXNzw6lnOiAlZiBrYXJha3Rlci9tw6Fzb2RwZXJjIHZvbHRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGludGVydmFsIHZhbHVlOiAlc1xuIgorbXNnc3RyICLDiXJ2w6lueXRlbGVuIGlkxZFrb3Jsw6F0w6lydMOpazogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiw4lydsOpbnl0ZWxlbiBiZcOhbGzDrXRvdHQgw6lydMOpazogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdmFsdWU6ICVzXG4iCittc2dzdHIgIsOJcnbDqW55dGVsZW4gYWxhcMOpcnRlbG1lemV0dCDDqXJ0w6lrOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIsOJcnbDqW55dGVsZW4gYmXDoWxsw610b3R0IGlkxZHDqXJ0w6lrOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICLDiXJ2w6lueXRlbGVuIGFsYXDDqXJ0ZWxtZXpldHQgaWTFkcOpcnTDqWs6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXEgWy1pIGludGVydmFsXV0gKFstcyB2YWx1ZV18Wy1TIHZhbHVlXSkgKFstdCB2YWx1ZV18Wy1UIHZhbHVlXSkgIgorIlstZ3wtR10gZmlsZSBbZmlsZS4uLl1cbiIKK21zZ3N0ciAiIgorIkhhc3puw6FsYXQ6ICVzIFstcSBbLWkgaWTFkWtvcmzDoXRdXSAoWy1zIMOpcnTDqWtdfFstUyDDqXJ0w6lrXSkgKFstdCDDqXJ0w6lrXXxbLVQgIgorIsOpcnTDqWtdKSBbLWd8LUddIGbDoWpsIFtmw6FqbC4uLl1cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiJXMgbmVtIG55aXRoYXTDsyBtZWc6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiQSh6KSAlcyBrw7xzesO2YsOpcnTDqWtlIG5lbSDDoWxsw610aGF0w7MgJWQgw6lydMOpa3JlOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aW1lIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiQSh6KSAlcyBuZW0gw6FsbMOtdGhhdMOzIGJlIGEoeikgJWQgaWTFkWvDvHN6w7Ziw6lydMOpa3JlOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjk0IHN5cy11dGlscy9jeXR1bmUuYzozNTEgc3lzLXV0aWxzL2N5dHVuZS5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGhyZXNob2xkIGZvciAlczogJXNcbiIKK21zZ3N0ciAiTmVtIGvDqXJoZXTFkSBsZSBhKHopICVzIGvDvHN6w7Ziw6lydMOpa2U6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiTmVtIGvDqXJoZXTFkSBsZSBhKHopICVzIGlkxZFrb3Jsw6F0amE6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIlczogYXogYWt0dcOhbGlzIGvDvHN6w7Ziw6lydMOpazogJWxkLCBheiBha3R1w6FsaXMgaWTFkWtvcmzDoXQ6ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgZGVmYXVsdCB0aHJlc2hvbGQgYW5kICVsZCBkZWZhdWx0IHRpbWVvdXRcbiIKK21zZ3N0ciAiIgorIiVzOiBheiBhbGFww6lydGVsbWV6ZXR0IGvDvHN6w7Ziw6lydMOpazogJWxkLCBheiBhbGFww6lydGVsbWV6ZXR0IGlkxZFrb3Jsw6F0OiAlbGRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMyNworbXNnaWQgIkNhbid0IHNldCBzaWduYWwgaGFuZGxlciIKK21zZ3N0ciAiTmVtIMOhbGzDrXRoYXTDsyBiZSBhIGplbHrDqXNrZXplbMWRIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzMxIHN5cy11dGlscy9jeXR1bmUuYzozNjYKK21zZ2lkICJnZXR0aW1lb2ZkYXkgZmFpbGVkIgorbXNnc3RyICJhIGdldHRpbWVvZmRheSBow612w6FzIG1lZ2hpw7pzdWx0IgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzQ0IHN5cy11dGlscy9jeXR1bmUuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iCittc2dzdHIgIk5lbSBhZGhhdMOzIGtpIGEgQ1lHRVRNT04gaMOtdsOhcyBhIGvDtnZldGtlesWRbjogJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IGVnw6lzeiwgJWx1LyVsdSBrYXJha3RlcjsgZmlmbzogJWx1IGvDvHN6w7ZiLCAlbHUgaWTFkWtvcmzDoXQsICVsdSBtYXgsICUiCisibHUgbW9zdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYywgJWYgc2VuZCAoY2hhci9zZWMpXG4iCittc2dzdHIgIiAgICVmICBlZ8Opc3ovbXA7ICVmIHLDtmd6w610dmUsICVmIGvDvGxkdmUgKGthci9tcClcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6ICVsdSBlZ8Opc3osICVsdSBrYXJha3RlcjsgZmlmbzogJWx1IGvDvHN6w7ZiLCAlbHUgaWTFkWtvcmzDoXQsICVsdSBtYXgsICVsdSAiCisibW9zdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYyAoY2hhci9zZWMpXG4iCittc2dzdHIgIiAgICVmIGVnw6lzei9tcDsgJWYgcsO2Z3rDrXR2ZSAoa2FyL21wKVxuIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyBbLWNdIFstbiBzemludF0gWy1zIHB1ZmZlcm3DqXJldF1cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZmlsZW5hbWU+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogJXMgW2thcGNzb2zDs2tdIGVzemvDtnogLi4uXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLWtlZXAtc2l6ZSAgICAgZG9uJ3QgbW9kaWZ5IHRoZSBsZW5ndGggb2YgdGhlIGZpbGVcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCisiIC1sLCAtLWxlbmd0aCA8bnVtPiAgbGVuZ3RoIG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBmYWxsb2NhdGUoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJUb3bDoWJiaSBpbmZvcm3DoWNpw7Nrw6lydCB0ZWtpbnRzZSBtZWcgYSBzZXRhcmNoKDgpIGvDqXppa8O2bnl2b2xkYWx0LlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3CisjLCBmdXp6eQorbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgIlTDumwga2V2w6lzIGFyZ3VtZW50dW0iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDkKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBsZW5ndGggdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICLDiXJ2w6lueXRlbGVuIGJlw6FsbMOtdG90dCDDqXJ0w6lrOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgb2Zmc2V0IHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiw4lydsOpbnl0ZWxlbiBiZcOhbGzDrXRvdHQgw6lydMOpazogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MworIywgZnV6enkKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICJBIOKAni0tZGF0ZeKAnSBrYXBjc29sw7MgbmluY3MgbWVnYWR2YS5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3MworbXNnaWQgImtlZXAgc2l6ZSBtb2RlICgtbiBvcHRpb24pIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWxsb2NhdGUgZmFpbGVkIgorbXNnc3RyICJheiBvcGVucHR5IG1lZ2hpw7pzdWx0XG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MTkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgcmVxdWlyZXMgZXhhY3RseSBvbmUgY29tbWFuZCBhcmd1bWVudFxuIgorbXNnc3RyICIlcyBlZ3kgcGFyYW3DqXRlcnQgaWfDqW55ZWxcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjE5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICIlczogJXMgbmVtIG55aXRoYXTDsyBtZWc6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBudW1iZXI6ICVzXG4iCittc2dzdHIgIiVzOiBoaWLDoXMgw6lydMOpa1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlcXVpcmVzIGZpbGUgZGVzY3JpcHRvciwgZmlsZSBvciBkaXJlY3RvcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3JrIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiYXogaW5kw610w6FzIG1lZ2hpw7pzdWx0XG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyBba2FwY3NvbMOza10gZXN6a8O2eiAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLU0gPHNpemU+ICAgICBjcmVhdGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IG9mIHNpemUgPHNpemU+XG4iCisiICAtUyA8bnNlbXM+ICAgIGNyZWF0ZSBzZW1hcGhvcmUgYXJyYXkgd2l0aCA8bnNlbXM+IGVsZW1lbnRzXG4iCisiICAtUSAgICAgICAgICAgIGNyZWF0ZSBtZXNzYWdlIHF1ZXVlXG4iCisiICAtcCA8bW9kZT4gICAgIHBlcm1pc3Npb24gZm9yIHRoZSByZXNvdXJjZSAoZGVmYXVsdCBpcyAwNjQ0KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGlwY21rKDEpLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiVG92w6FiYmkgaW5mb3Jtw6FjacOza8OpcnQgdGVraW50c2UgbWVnIGEgc2V0YXJjaCg4KSBrw6l6aWvDtm55dm9sZGFsdC5cbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQyCittc2dpZCAiY3JlYXRlIHNoYXJlIG1lbW9yeSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaGFyZWQgbWVtb3J5IGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisiT3N6dG90dCBtZW3Ds3JpYXN6ZWdtZW5zIG8ubS5heiA9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUwCittc2dpZCAiY3JlYXRlIG1lc3NhZ2UgcXVldWUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBxdWV1ZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIsOcemVuZXRzb3Igw7x6LmF6PSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1OAorIywgZnV6enkKK21zZ2lkICJjcmVhdGUgc2VtYXBob3JlIGZhaWxlZCIKK21zZ3N0ciAibGVmb2dsYWx0IHN6ZW1hZm9yb2sgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlN6ZW1hZm9ydMO2bWIgc3plbS5hej0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo2NAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkOiAlc1xuIgorbXNnc3RyICLDqXJ2w6lueXRlbGVuIGF6b25vc8OtdMOzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAiYSh6KSAlcyBhem9ub3PDrXTDsyBuZW0gdMOhdm9sw610aGF0w7MgZWwgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJkZXByZWNhdGVkIHVzYWdlOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKK21zZ3N0ciAiZWxhdnVsdCBoYXN6bsOhbGF0OiAlcyB7c2htIHwgbXNnIHwgc2VtfSBhem9ub3PDrXTDsyAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gcmVzb3VyY2UgdHlwZTogJXNcbiIKK21zZ3N0ciAiaXNtZXJldGxlbiBlcsWRZm9ycsOhc3TDrXB1czogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAiZXLFkWZvcnLDoXNvayB0w7Zyw7ZsdmVcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisiSGFzem7DoWxhdDogJXMgWyBbLXEgw7x6ZW5ldGF6b25vc8OtdMOzXSBbLW0gb3N6dG90dG1lbcOzcmlhLWF6b25vc8OtdMOzXVxuIgorIiAgICAgICAgICAgICAgWy1zIHN6ZW1hZm9yYXpvbm9zw610w7NdXG4iCisiICAgICAgICAgICAgICBbLVEgw7x6ZW5ldGt1bGNzXSBbLU0gb3N6dG90dG1lbcOzcmlhLWt1bGNzXSBbLVMgIgorInN6ZW1hZm9ya3VsY3NdIC4uLiBdXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiJXM6IMOpcnbDqW55dGVsZW4ga2FwY3NvbMOzIC0tICVjXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBrZXkgKCVzKVxuIgorbXNnc3RyICIlczogw6lydsOpbnl0ZWxlbiBrdWxjcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwNiBzeXMtdXRpbHMvaXBjcm0uYzoyMzgKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICJhIGt1bGNzIGVsw6lyw6lzZSBtZWd0YWdhZHZhIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAiYSBrdWxjcyBtw6FyIGVsIHZhbiB0w6F2b2zDrXR2YSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjEyIHN5cy11dGlscy9pcGNybS5jOjI0MworbXNnaWQgImludmFsaWQga2V5IgorbXNnc3RyICLDqXJ2w6lueXRlbGVuIGt1bGNzIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgImlzbWVyZXRsZW4gaGliYSBhIGt1bGNzYmFuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgImF6IGF6b25vc8OtdMOzIGVsw6lyw6lzZSBtZWd0YWdhZHZhIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICLDqXJ2w6lueXRlbGVuIGF6b25vc8OtdMOzIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQgaWQiCittc2dzdHIgImF6IGF6b25vc8OtdMOzIG3DoXIgZWwgdmFuIHTDoXZvbMOtdHZhIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICJpc21lcmV0bGVuIGhpYmEgYXogYXpvbm9zw610w7NiYW4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgKCVzKVxuIgorbXNnc3RyICIlczogJXMgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gYXJndW1lbnQ6ICVzXG4iCittc2dzdHIgIiVzOiBpc21lcmV0bGVuIGFyZ3VtZW50dW06ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyAtYXNtcSAtdGNsdXAgXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorbXNnc3RyICJcdCVzIFstcyAtbSAtcV0gLWkgYXpvbm9zw610w7NcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyAtaCBmb3IgaGVscC5cbiIKK21zZ3N0ciAiXHQlcyAtaCAtIHPDumfDsy5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzIGZvciB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKK21zZ3N0ciAiIgorIkEoeikgJXMgaW5mb3Jtw6FjacOza2F0IGFkIGF6IGVsw6lyaGV0xZEgaXBjIHN6b2xnw6FsdGF0w6Fzb2tyw7NsLCBhbWVseWVrXG4iCisib2x2YXPDoXPDoXJhIGpvZ29zdWx0LlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisiRXLFkWZvcnLDoXMgbWVnaGF0w6Fyb3rDoXNhOlxuIgorIlx0LW06IG9zenRvdHQgbWVtw7NyaWFcbiIKKyJcdC1xOiDDvHplbmV0ZWtcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LXMgOiBzZW1hcGhvcmVzXG4iCisiXHQtYSA6IGFsbCAoZGVmYXVsdClcbiIKK21zZ3N0ciAiIgorIlx0LXM6IHN6ZW1hZm9yb2tcbiIKKyJcdC1hOiBtaW5kZW4gKGFsYXDDqXJ0ZWxtZXrDqXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdXRwdXQgRm9ybWF0OlxuIgorIlx0LXQgOiB0aW1lXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhdG9yXG4iCittc2dzdHIgIiIKKyJLaW1lbmV0aSBmb3Jtw6F0dW1cbiIKKyJcdC10OiBpZMWRXG4iCisiXHQtcDogcGlkXG4iCisiXHQtYzogbMOpdHJlaG96w7NcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LWwgOiBsaW1pdHNcbiIKKyJcdC11IDogc3VtbWFyeVxuIgorbXNnc3RyICIiCisiXHQtbDoga29ybMOhdG9rXG4iCisiXHQtdTogw7Zzc3plc8OtdMOpc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICItaSBpZCBbLXMgLXEgLW1dIDogZGV0YWlscyBvbiByZXNvdXJjZSBpZGVudGlmaWVkIGJ5IGlkXG4iCittc2dzdHIgIiIKKyItaSBhem9ub3PDrXTDsyBbLXMgLXEgLW1dIDogYXogYXpvbm9zw610w7N2YWwgbWVnYWRvdHQgZXLFkWZvcnLDoXMtYXpvbm9zw610w7MgIgorInLDqXN6bGV0ZWlcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iCittc2dzdHIgImEgcmVuZHN6ZXJtYWcgbmluY3MgYmXDoWxsw610dmEgb3N6dG90dCBtZW3Ds3JpYSBoYXN6bsOhbGF0w6FyYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tLS0tLSBPc3p0b3R0IG1lbcOzcmlhIGtvcmzDoXRhaSAtLS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAic3plZ21lbnNlayBtYXhpbcOhbGlzIHN6w6FtYSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VnIHNpemUgKGtieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAibWF4aW3DoWxpcyBzemVnbWVuc23DqXJldCAoa2lsb2LDoWp0KSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAidGVsamVzIG9zenRvdHQgbWVtw7NyaWEgbWF4aW3DoWxpcyBtw6lyZXRlIChraWxvYsOhanQpID0gJWxsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtaW5pbcOhbGlzIHN6ZWdtZW5zbcOpcmV0ID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tIE9zenRvdHQgbWVtw7NyaWEgw6FsbGFwb3RhIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICJsZWZvZ2xhbHQgc3plZ21lbnNlazogICAgJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgYWxsb2NhdGVkICVsZFxuIgorbXNnc3RyICJsZWZvZ2xhbHQgbGFwb2s6ICAgICAgICAgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc5CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHJlc2lkZW50ICAlbGRcbiIKK21zZ3N0ciAibWVtw7NyacOhYmFuIG1hcmFkw7MgbGFwb2s6ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgImtpbGFwb3pvdHQgbGFwb2s6ICAgICAgICAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dhcCBwZXJmb3JtYW5jZTogJWxkIGF0dGVtcHRzXHQgJWxkIHN1Y2Nlc3Nlc1xuIgorbXNnc3RyICJMYXBvesOzdGVyw7xsZXQgdGVsamVzw610bcOpbnllOiAlbGQga8Otc8OpcmxldFx0ICVsZCBzaWtlcmVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLS0gT3N6dG90dCBtZW3Ds3JpYXN6ZWdtZW5zIGzDqXRyZWhvesOzaS90dWxhamRvbm9zYWkgLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgInNobWlkIgorbXNnc3RyICJvLm0uLWF6IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAiam9nb2siCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAibC5maC5heiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjZ2lkIgorbXNnc3RyICJsLmNzLmF6IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAiZmguYXoiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiZ2lkIgorbXNnc3RyICJjcy5heiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQXR0YWNoL0RldGFjaC9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tLS0tIE9zenRvdHQgbWVtw7NyaWEgY3NhdG9sw6FzaS9sZXbDoWxhc3p0w6FzaS9tw7Nkb3PDrXTDoXNpIHN6w6FtYWkgLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgInR1bGFqZG9ub3MiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiYXR0YWNoZWQiCittc2dzdHIgImNzYXRvbHZhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImRldGFjaGVkIgorbXNnc3RyICJsZXbDoWxhc3p0dmEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk1Cittc2dpZCAiY2hhbmdlZCIKK21zZ3N0ciAibcOzZG9zw610dmEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tLSBPc3p0b3R0IG1lbcOzcmlhIGzDqXRyZWhvesOzamEvdXRvbHPDsyBtxbF2ZWxldGUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJjcGlkIgorbXNnc3RyICJsLmYuYXoiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAibHBpZCIKK21zZ3N0ciAidS5mLmF6IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tIE9zenRvdHQgbWVtw7NyaWFzemVnbWVuc2VrIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAia2V5IgorbXNnc3RyICJrdWxjcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJieXRlcyIKK21zZ3N0ciAiYsOhanQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAibmF0dGNoIgorbXNnc3RyICJjc2F0LnN6w6FtIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAiw6FsbGFwb3QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzI5IHN5cy11dGlscy9pcGNzLmM6MzMxIHN5cy11dGlscy9pcGNzLmM6MzMzCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ0NCBzeXMtdXRpbHMvaXBjcy5jOjQ0NiBzeXMtdXRpbHMvaXBjcy5jOjU0NQorIzogc3lzLXV0aWxzL2lwY3MuYzo1NDcgc3lzLXV0aWxzL2lwY3MuYzo1NDkgc3lzLXV0aWxzL2lwY3MuYzo2MDAKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAyIHN5cy11dGlscy9pcGNzLmM6NjMwIHN5cy11dGlscy9pcGNzLmM6NjMyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzNCBzeXMtdXRpbHMvaXBjcy5jOjY1NworbXNnaWQgIk5vdCBzZXQiCittc2dzdHIgIk5pbmNzIGJlw6FsbMOtdHZhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MQorbXNnaWQgImRlc3QiCittc2dzdHIgImPDqWwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICJ6w6Fyb2x2YSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgImEgcmVuZHN6ZXJtYWcgbmluY3MgYmXDoWxsw610dmEgc3plbWFmb3JvayBoYXN6bsOhbGF0w6FyYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tLSBTemVtYWZvcm9rIGtvcmzDoXRhaSAtLS0tLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgImEgdMO2bWLDtmsgbWF4aW3DoWxpcyBzesOhbWEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBwZXIgYXJyYXkgPSAlZFxuIgorbXNnc3RyICJzemVtYWZvcm9rIHTDtm1iw7Zua8OpbnQgbWF4aW3DoWxpcyBzesOhbWEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgInJlbmRzemVyc3ppbnTFsSBzemVtYWZvcm9rIG1heGltw6FsaXMgc3rDoW1hID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG9wcyBwZXIgc2Vtb3AgY2FsbCA9ICVkXG4iCittc2dzdHIgInN6ZW1hZm9yIGjDrXbDoXNvbmvDqW50aSBtxbF2ZWxldGVrIG1heGltw6FsaXMgc3rDoW1hID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VtYXBob3JlIG1heCB2YWx1ZSA9ICVkXG4iCittc2dzdHIgInN6ZW1hZm9yIG1heGltw6FsaXMgw6lydMOpa2UgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tLS0gU3plbWFmb3LDoWxsYXBvdCAtLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAiaGFzem7DoWx0IHTDtm1iw7ZrID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHNlbWFwaG9yZXMgPSAlZFxuIgorbXNnc3RyICJsZWZvZ2xhbHQgc3plbWFmb3JvayA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tIEEgc3plbWFmb3J0w7ZtYsO2ayBsw6l0cmVob3rDs2kvdHVsYWpkb25vc2FpIC0tLS0tLS0gXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAic2VtaWQiCittc2dzdHIgInN6ZW0uYXoiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgT3BlcmF0aW9uL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tLS0tIFN6ZW1hZm9ybcWxdmVsZXRlay9tw7Nkb3PDrXTDoXNvayBzesOhbWFpIC0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICJ1dC5txbF2ZWxldCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgInV0LnbDoWx0b3rDoXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLS0gU3plbWFmb3J0w7ZtYsO2ayAtLS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAibnNlbXMiCittc2dzdHIgInN6ZW0uc3oiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3IgbWVzc2FnZSBxdWV1ZXNcbiIKK21zZ3N0ciAiYSByZW5kc3plcm1hZyBuaW5jcyBiZcOhbGzDrXR2YSDDvHplbmV0c29yb2sgaGFzem7DoWxhdMOhcmFcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiICAgICAgICAgw5x6ZW5ldGVrOiBrb3Jsw6F0b2sgLS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICJyZW5kc3plcnN6aW50xbEgc29yb2sgbWF4aW3DoWxpc2FuID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNpemUgb2YgbWVzc2FnZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAibWF4aW3DoWxpcyDDvHplbmV0bcOpcmV0IChiw6FqdCkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJkZWZhdWx0IG1heCBzaXplIG9mIHF1ZXVlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJzb3IgYWxhcMOpcnRlbG1lemV0dCBtYXhpbcOhbGlzIG3DqXJldGUgKGLDoWp0KSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDDnHplbmV0ZWs6IMOhbGxhcG90IC0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHF1ZXVlcyA9ICVkXG4iCittc2dzdHIgImxlZm9nbGFsdCBzb3JvayA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk5CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgaGVhZGVycyA9ICVkXG4iCittc2dzdHIgImhhc3puw6FsdCBmZWpsw6ljZWsgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIHNwYWNlID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiaGFzem7DoWx0IHRlcsO8bGV0ID0gJWQgYsOhanRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzOiBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIMOcemVuZXRzb3JvazogbMOpdHJlaG96w7NrL3R1bGFqZG9ub3NvayAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUxMiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorIzogc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJtc3FpZCIKK21zZ3N0ciAiw7x6LmF6IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgU2VuZC9SZWN2L0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tLSDDnHplbmV0c29yb2sga8O8bGTDqXNlay9mb2dhZMOhc29rL23Ds2Rvc8OtdMOhc29rIHN6w6FtYWkgLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgImvDvGxkw6lzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInJlY3YiCittc2dzdHIgImZvZ2Fkw6FzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgImNoYW5nZSIKK21zZ3N0ciAibcOzZG9zw610w6FzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLSDDnHplbmV0c29yb2sgUElELWplaSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICJ1LmsuZi5heiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAidS5mLmYuYXoiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0tIMOcemVuZXRzb3JvayAtLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJ1c2VkLWJ5dGVzIgorbXNnc3RyICJoYXN6bsOhbHQgYsOhanRvayIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAiw7x6ZW5ldGVrIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU4OQorIywgZnV6enkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICJheiBmc3luYyBtZWdoacO6c3VsdCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiT3N6dG90dCBtZW3Ds3JpYXN6ZWdtZW5zIG8ubS5heiA9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKK21zZ3N0ciAiZi5hej0lZFx0Y3MuYXo9JWRcdGwuZmguYXo9JWRcdGwuY3MuYXo9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKK21zZ3N0ciAibcOzZD0lI29cdGhvenrDoWbDqXLDqXNpX2pvZz0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCittc2dzdHIgImLDoWp0PSVsZFx0dS5mLmF6PSVkXHRsLmYuYXo9JWRcdGNzYXQuc3rDoW09JWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgImF0dF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImNzYXRsX2lkxZE9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAibGV2X2lkxZE9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDMgc3lzLXV0aWxzL2lwY3MuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hhbmdlX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAibcOzZG9zw610w6FzaV9pZMWRPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE1CisjLCBmdXp6eQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgImF6IGZzeW5jIG1lZ2hpw7pzdWx0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiw5x6ZW5ldHNvciDDvHouYXo9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgImYuYXo9JWRcdGNzLmF6PSVkXHRsLmZoLmF6PSVkXHRsLmNzLmF6PSVkXHRtw7NkPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJjYnl0ZXM9JWxkXHRxYnl0ZXM9JWxkXHRxbnVtPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCittc2dzdHIgImwuYsOhanQ9JWxkXHRzLmLDoWp0PSVsZFx0cy5zesOhbT0lbGRcdHUuay5mLmF6PSVkXHR1LmYuZi5hej0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAia8O8bGTDqXNpX2lkxZE9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmN2X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiZm9nYWTDoXNpX2lkxZE9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKKyMsIGZ1enp5Cittc2dpZCAic2VtY3RsIGZhaWxlZCIKK21zZ3N0ciAiYSBwb3ppY2lvbsOhbMOhcyBtZWdoacO6c3VsdCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiU3plbWFmb3J0w7ZtYiBzemVtLmF6PSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCittc2dzdHIgImYuYXo9JWRcdCBjcy5hej0lZFx0IGwuZmguYXo9JWRcdCBsLmNzLmF6PSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm3Ds2Q9JSNvLCBob3p6w6Fmw6lyw6lzaV9qb2c9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgInN6ZW0uc3rDoW0gPSAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAib3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJvaWTFkSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImN0aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAiY2lkxZEgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAic3plbWFmb3JzesOhbSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAiw6lydMOpayIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJuY291bnQiCittc2dzdHIgIm4uc3rDoW0iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICJ6LnN6w6FtIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInBpZCIKK21zZ3N0ciAiZi5heiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorbXNnc3RyICIiCisiXG4iCisiSGFzem7DoWxhdDogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNlYmVzc8OpZz4gXSA8bGxlbWV6PiA8ZXN6a8O2ej5cbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6OTEKK21zZ2lkICIiCisiXG4iCisiS25vd24gPGxkaXNjPiBuYW1lczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIklzbWVydCA8bGxlbWV6PiBuZXZlazpcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgc3BlZWQ6ICVzIgorbXNnc3RyICLDqXJ2w6lueXRlbGVuIHNlYmVzc8OpZzogJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJsZGF0dGFjaCBmcm9tICVzXG4iCittc2dzdHIgImxkYXR0YWNoIGlubmVuOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxODQgdGV4dC11dGlscy90YWlsZi5jOjIwNgorbXNnaWQgImludmFsaWQgb3B0aW9uIgorbXNnc3RyICLDqXJ2w6lueXRlbGVuIGthcGNzb2zDsyIKKworIyBmaXhtZTogbWkgZXo/CisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBsaW5lIGRpc2NpcGxpbmU6ICVzIgorbXNnc3RyICLDqXJ2w6lueXRlbGVuIHNvcmVsdjogJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiJXMgbmVtIHNvcm9zIHZvbmFsIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiYSh6KSAlcyB0ZXJtaW7DoWxhdHRyaWLDunR1bWFpIG5lbSBrw6lyaGV0xZFrIGxlIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlZWQgJWQgdW5zdXBwb3J0ZWQiCittc2dzdHIgImEgc2ViZXNzw6lnICglZCkgbmVtIHTDoW1vZ2F0b3R0IgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHNldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiYSh6KSAlcyB0ZXJtaW7DoWxhdHRyaWLDunR1bWFpIG5lbSDDoWxsw610aGF0w7NrIGJlIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKK21zZ2lkICJjYW5ub3Qgc2V0IGxpbmUgZGlzY2lwbGluZSIKK21zZ3N0ciAibmVtIMOhbGzDrXRoYXTDsyBiZSBhIHNvcmVsdiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3Cittc2dpZCAiY2Fubm90IGRhZW1vbml6ZSIKK21zZ3N0ciAibmVtIGTDqW1vbml6w6FsaGF0w7MiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0CisjLCBmdXp6eQorbXNnaWQgIm5vbmUiCittc2dzdHIgIk5pbmNzIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NQorbXNnaWQgInBhcmEiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjYKK21zZ2lkICJmdWxsIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjEzNyBzeXMtdXRpbHMvbHNjcHUuYzoxNjAgc3lzLXV0aWxzL2xzY3B1LmM6NDU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgIlJFIGhpYmE6ICIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgImhpYmEgYSh6KSAlcyBvbHZhc8Ohc2Frb3JcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTg0CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBzdHJkdXAgZmFpbGVkIgorbXNnc3RyICJhIHN6YWJ2w6FueW9zIGtpbWVuZXRyZSDDrXLDoXMgbWVnaGnDunN1bHQiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjI2NworIywgZnV6enkKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICJoaWJhOiBheiBVVUlEIGZlbGRvbGdvesOhcyBtZWdoacO6c3VsdCIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTA2CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBtYWxsb2MgZmFpbGVkIgorbXNnc3RyICJhIG1hbGxvYyBtZWdoacO6c3VsdCIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTIxCittc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzYWJsZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNgorbXNnaWQgIkNvcmUocykgcGVyIHNvY2tldDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMxCittc2dpZCAiTlVNQSBub2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzMKK21zZ2lkICJWZW5kb3IgSUQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzkKK21zZ2lkICJTdGVwcGluZzoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQxCittc2dpZCAiQ1BVIE1IejoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorIywgZnV6enkKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIlLDqWdpIGhlbHl6ZXQ6XG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIkhhc3puw6FsYXQ6ICVzIFtrYXBjc29sw7NrXSBlc3prw7Z6IC4uLlxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjkKK21zZ2lkICIiCisiQ1BVIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBoZWxwZXJcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgIHVzYWdlIGluZm9ybWF0aW9uXG4iCisiICAtcCwgLS1wYXJzZSAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0LlxuIgorIiAgLXMsIC0tc3lzcm9vdCAgdXNlIHRoZSBkaXJlY3RvcnkgYXMgYSBuZXcgc3lzdGVtIHJvb3QuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogY2hhbmdlIHdvcmtpbmcgZGlyZWN0b3J5IHRvICVzLiIKK21zZ3N0ciAiaGliYSBhKHopICVzIG3Ds2Rqw6FuYWsgbcOzZG9zw610w6FzYWtvcjogJXNcbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIkhhc3puw6FsYXQ6IHJkZXYgWyAtcnYgXSBbIC1vIEVMVE9Mw4FTIF0gWyBLw4lQIFsgw4lSVMOJSyBbIEVMVE9Mw4FTIF0gXSBdIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc4Cittc2dpZCAiIgorIiAgcmRldiAvZGV2L2ZkMCAgKG9yIHJkZXYgL2xpbnV4LCBldGMuKSBkaXNwbGF5cyB0aGUgY3VycmVudCBST09UIGRldmljZSIKK21zZ3N0ciAiIgorIiAgcmRldiAvZGV2L2ZkMCAgKHZhZ3kgcmRldiAvbGludXgsIHN0Yi4pIG1lZ2plbGVuw610aSBheiBha3R1w6FsaXMgIgorImd5w7Zrw6lyZXN6a8O2enQiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiIgorIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBhIGd5w7Zrw6lyIGJlw6FsbMOtdMOhc2EgYSAvZGV2L2hkYTIgZXN6a8O2enJlIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgwCittc2dpZCAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgUk9PVEZMQUdTIChyZWFkb25seSBzdGF0dXMpIgorbXNnc3RyICIiCisiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIGEgUk9PVEZMQUdTIGJlw6FsbMOtdMOhc2EgKGNzYWsgb2x2YXNoYXTDsykiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODEKK21zZ2lkICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiCittc2dzdHIgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBhIFJBTURJU0sgbcOpcmV0w6luZWsgYmXDoWxsw610w6FzYSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBhIGtpaW5kdWzDsyBWSURFT01PREUgYmXDoWxsw610w6FzYSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICBOIGLDoWp0b3MgZWx0b2zDoXMgaGFzem7DoWxhdGEiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODQKK21zZ2lkICIgIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1SIgorbXNnc3RyICIgIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAgdWd5YW5heiwgbWludCBheiByZGV2IC1SIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHVneWFuYXosIG1pbnQgYXogcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICB1Z3lhbmF6LCBtaW50IGF6IHJkZXYgLXYiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODcKK21zZ2lkICIiCisiTm90ZTogdmlkZW8gbW9kZXMgYXJlOiAtMz1Bc2ssIC0yPUV4dGVuZGVkLCAtMT1Ob3JtYWxWZ2EsIDE9a2V5MSwgMj1rZXkyLC4uLiIKK21zZ3N0ciAiIgorIk1lZ2plZ3l6w6lzOiBhIHZpZGVvbcOzZG9rOiAtMz1yw6Frw6lyZGV6w6lzLCAtMj1LaWLFkXbDrXRldHQsIC0xIE5vcm3DoWxpcyBWR0EsIDE9MS4iCisia3VsY3MsIDI9Mi5rdWxjcywgLi4uIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiIKKyIgICAgICAgYSAtUiAxIGhhc3puw6FsYXTDoXZhbCBhIGd5w7Zrw6lyIGNzYWsgb2x2YXNoYXTDsywgYSAtUiAwIGhhc3puw6FsYXTDoXZhbCAiCisiw61yaGF0w7Mtb2x2YXNoYXTDsyBtw7NkYmFuIGNzYXRvbGhhdMOzLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzoyNDUKK21zZ2lkICJtaXNzaW5nIGNvbW1hIgorbXNnc3RyICJoacOhbnl6w7MgdmVzc3rFkSIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NzIgdGV4dC11dGlscy9tb3JlLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIm91dCBvZiBtZW1vcnkiCittc2dzdHIgImVsZm9neW90dCBhIG1lbcOzcmlhIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogXCIlcyBbb3B0aW9uc11cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChkZWZhdWx0czogXCIlc1wiIGFuZFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAoZGVmYXVsdDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgc2V0IHRoZSBwcm9maWxpbmcgbXVsdGlwbGllciB0byA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorIlx0IC12ICAgICAgICAgICAgcHJpbnQgdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICBwcmludCBhbGwgc3ltYm9scywgZXZlbiBpZiBjb3VudCBpcyAwXG4iCisiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgIHJlc2V0IGFsbCB0aGUgY291bnRlcnMgKHJvb3Qgb25seSlcbiIKKyJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorIlx0IC1WICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorbXNnc3RyICIiCisiJXM6IEhhc3puw6FsYXQ6IOKAniVzIFtrYXBjc29sw7NrXVxuIgorIlx0IC1tIDxsZWvDqXBlesOpc2kgZsOhamw+ICAoYWxhcMOpcnRlbG1lesOpcyA9IOKAniVz4oCdKSDDqXNcbiIKKyJcdFx0XHRcdCAg4oCeJXPigJ0pXG4iCisiXHQgLXAgPHByb2ZpbGUtZsOhamw+IChhbGFww6lydGVsbWV6w6lzID0g4oCeJXPigJ0pXG4iCisiXHQgLU0gPHN6b3J6w7M+ICAgYSBwcm9maWxvesOhc2kgc3pvcnrDsyBiZcOhbGzDrXTDoXNhIGEgPHN6b3J6w7NyYT5cbiIKKyJcdCAtaSAgICAgICAgICAgIGNzYWsgYSBtaW50YXbDqXRlbGV6w6lzaSBsw6lww6lzcsWRbCBhZCBpbmZvcm3DoWNpw7N0XG4iCisiXHQgLXYgICAgICAgICAgICByw6lzemxldGVzIGFkYXRvayBracOtcsOhc2FcbiIKKyJcdCAtYSAgICAgICAgICAgIGtpw61yamEgYXogw7Zzc3plcyBzemltYsOzbHVtb3QsIG3DqWcgaGEgYXogw6lydMOpa2UgMCBpc1xuIgorIlx0IC1iICAgICAgICAgICAgZWd5ZWRpIGhpc3p0b2dyYW0tYmluIHN6w6Ftb2sga2nDrXLDoXNhXG4iCisiXHQgLXMgICAgICAgICAgICBlZ3llZGkgc3rDoW1sw6Fsw7NrIGtpw61yw6FzYSBhIGbDvGdndsOpbnlla2VuIGJlbMO8bFxuIgorIlx0IC1yICAgICAgICAgICAgYXogw7Zzc3plcyBzesOhbWzDoWzDsyBsZW51bGzDoXrDoXNhIChjc2FrIHJlbmRzemVyZ2F6ZGEgam9nZ2FsKVxuIgorIlx0IC1uICAgICAgICAgICAgYSBiw6FqdHNvcnJlbmQgYXV0b21hdGlrdXMgZmVsaXNtZXLDqXPDqW5layBsZXRpbHTDoXNhXG4iCisiXHQgLVYgICAgICAgICAgICBhIHZlcnppw7NzesOhbSBracOtcsOhc2Egw6lzIGtpbMOpcMOpc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJtb3VudDogaGliYSBhKHopICVzIMOtcsOhc2Frb3I6ICVzIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgcmV2ZXJzZWQgYnl0ZSBvcmRlci4gVXNlIC1uIHRvIGZvcmNlIG5hdGl2ZSBieXRlIG9yZGVyLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI4NAorIywgYy1mb3JtYXQKK21zZ2lkICJTYW1wbGluZ19zdGVwOiAlaVxuIgorbXNnc3RyICJNaW50YXbDqXRlbGV6w6lzaV9sw6lww6lzOiAlaVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMDUgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyglaSk6IHdyb25nIG1hcCBsaW5lXG4iCittc2dzdHIgIiVzOiAlcyglaSk6IGhpYsOhcyBsZWvDqXBlesOpc3NvclxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIgorbXNnc3RyICIlczogbmVtIHRhbMOhbGhhdMOzIGF6IOKAnl9zdGV4dOKAnSBhIGvDtnZldGtlesWRYmVuOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIiCisiJXM6IGEgcHJvZmlsIGPDrW1lIGvDrXbDvGwgZXNpayBhIHRhcnRvbcOhbnlvbi4gVGFsw6FuIGhpYsOhcyBhIGxla8OpcGV6w6lzZsOhamw/XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjQxMgorbXNnaWQgInRvdGFsIgorbXNnc3RyICLDtnNzemVzZW4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSBbLXB8LS1waWRdIHBpZCAgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtZ3wtLXBncnAgcGdycCBbLi4uIHBncnBdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtdXwtLXVzZXIgdXNlciBbLi4uIHVzZXJdXG4iCisiIHJlbmljZSAtaCB8IC0taGVscFxuIgorIiByZW5pY2UgLXYgfCAtLXZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkhhc3puw6FsYXQ6XG4iCisiIHJlbmljZSBwcmlvcml0w6FzIFstcHwtLXBpZF0gcGlkIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgcHJpb3JpdMOhcyAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgcHJpb3JpdMOhcyAgLXV8LS11c2VyIGZlbGhhc3puw6Fsw7MgWy4uLiBmZWxoYXN6bsOhbMOzXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICJyZW5pY2UgZXJyxZFsOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6IGlzbWVyZXRsZW4gZmVsaGFzem7DoWzDsyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogaGliw6FzIMOpcnTDqWsgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTUyIHN5cy11dGlscy9yZW5pY2UuYzoxNjQKK21zZ2lkICJnZXRwcmlvcml0eSIKK21zZ3N0ciAicHJpb3JpdMOhcyBsZWvDqXLDqXNlIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTU3Cittc2dpZCAic2V0cHJpb3JpdHkiCittc2dzdHIgInByaW9yaXTDoXMgYmXDoWxsw610w6FzYSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6IHLDqWdpIHByaW9yaXTDoXM6ICVkLCDDumogcHJpb3JpdMOhczogJWRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisiSGFzem7DoWxhdDogJXMgW2thcGNzb2zDs2tdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGVzemvDtno+ICAgICBydGMgZXN6a8O2eiBraXbDoWxhc3p0w6FzYSAocnRjMHxydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICAgYXogUlRDIGhlbHlpIGlkxZF6w7Nuw6F0IGhhc3puw6FsXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgIHN0YW5kYnl8bWVtfC4uLiBhbHbDoXNpIG3Ds2RcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPG3DoXNvZHBlcmM+IGFsdsOhcyBlbm55aSBtw6Fzb2RwZXJjaWdcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICAgZmVsw6licmVkw6lzIGlkZWplXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgIGF6IFJUQyBheiBVVEMtdCBoYXN6bsOhbGphXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgIHLDqXN6bGV0ZXMgw7x6ZW5ldGVrXG4iCisiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgIHZlcnppw7NzesOhbSBtZWdqZWxlbsOtdMOpc2VcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDIKK21zZ2lkICJyZWFkIHJ0YyB0aW1lIgorbXNnc3RyICJydGMgaWTFkSBvbHZhc8Ohc2EiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQ3Cittc2dpZCAicmVhZCBzeXN0ZW0gdGltZSIKK21zZ3N0ciAicmVuZHN6ZXJpZMWRIG9sdmFzw6FzYSIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICJydGMgaWTFkSDDoXRhbGFrw610w6FzYSIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjQKK21zZ2lkICJzZXQgcnRjIGFsYXJtIgorbXNnc3RyICJydGMgcmlhc3p0w6FzIGJlw6FsbMOtdMOhc2EiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI4Cittc2dpZCAiZW5hYmxlIHJ0YyBhbGFybSIKK21zZ3N0ciAicnRjIHJpYXN6dMOhcyBlbmdlZMOpbHllesOpc2UiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjMyCittc2dpZCAic2V0IHJ0YyB3YWtlIGFsYXJtIgorbXNnc3RyICJydGMgw6licmVzenTDqXNpIHJpYXN6dMOhcyBiZcOhbGzDrXTDoXNhIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5yZWNvZ25pemVkIHN1c3BlbmQgc3RhdGUgJyVzJ1xuIgorbXNnc3RyICIlczogaXNtZXJldGxlbiBmZWxmw7xnZ2VzenTDqXNpIMOhbGxhcG90OiDigJ4lc+KAnVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBpbnRlcnZhbCAlcyBzZWNvbmRzXG4iCittc2dzdHIgIiVzOiDDqXJ2w6lueXRlbGVuIGlkxZFrw7Z6ICglcyBtw6Fzb2RwZXJjKVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCB0aW1lX3QgdmFsdWUgJXNcbiIKK21zZ3N0ciAiJXM6IMOpcnbDqW55dGVsZW4gdGltZV90IMOpcnTDqWsgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIlczogJXMgdmVyemnDs1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIgorbXNnc3RyICIlczogZmVsdMOpdGVsZXplbSwgaG9neSBheiBSVEMgVVRDLXQgaGFzem7DoWwgLi4uXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIFVUQyB0aW1lLlxuIgorbXNnc3RyICJVVEMgaWTFkSBoYXN6bsOhbGF0YS5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgbG9jYWwgdGltZS5cbiIKK21zZ3N0ciAiSGVseWkgaWTFkSBoYXN6bsOhbGF0YS5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG11c3QgcHJvdmlkZSB3YWtlIHRpbWVcbiIKK21zZ3N0ciAiJXM6IG1lZyBrZWxsIGFkbmlhIGEgZmVsw6licmVzenTDqXNpIGlkxZF0XG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3Cittc2dpZCAibWFsbG9jKCkgZmFpbGVkIgorbXNnc3RyICJhIG1lbcOzcmlhZm9nbGFsw6FzIHNpa2VydGVsZW4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgZW5hYmxlZCBmb3Igd2FrZXVwIGV2ZW50c1xuIgorbXNnc3RyICIlczogYSh6KSAlcyBuZW0gdMOhbW9nYXRqYSBheiDDqWJyZXN6dMOpc2kgZXNlbcOpbnlla2V0XG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAiJWxkLiByaWFzenTDoXMsIHJlbmRzemVyaWTFkTogJWxkLCBydGMgaWTFkTogJWxkLCAldSBtw6Fzb2RwZXJjXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aW1lIGRvZXNuJ3QgZ28gYmFja3dhcmQgdG8gJXNcbiIKK21zZ3N0ciAiJXM6IGF6IGlkxZEgbmVtIG1lZ3kgdmlzc3phIGVkZGlnOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIiVzOiDDqWJyZXN6dMOpcyBhKHopIOKAniVz4oCdIGVzemvDtnpyxZFsICVzIHNlZ8OtdHPDqWfDqXZlbCBla2tvcjogJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gZXhlY3V0ZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6ICVzIG5lbSBjw61ta8OpemhldMWRIMOhdCAoZXJyZTogJXMpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ5NgorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICJydGMgb2x2YXPDoXMiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NTA1Cittc2dpZCAiZGlzYWJsZSBydGMgYWxhcm0gaW50ZXJydXB0IgorbXNnc3RyICJydGMgcmlhc3p0w6FzaSBtZWdzemFrw610w6FzIGxldGlsdMOhc2EiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dpdGNoaW5nIG9uICVzLlxuIgorbXNnc3RyICIlcyBiZWthcGNzb2zDoXNhLlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzJXMgW29wdGlvbnNdIFtwcm9ncmFtIFtwcm9ncmFtIGFyZ3VtZW50c11dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIkhhc3puw6FsYXQ6ICVzJXMgW2thcGNzb2zDs2tdIFtwcm9ncmFtIFtwcm9ncmFtIGFyZ3VtZW50dW1haV1dXG4iCisiXG4iCisiS2FwY3NvbMOzazpcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBlemVuIHPDumfDs3N6w7Z2ZWcgbWVnamVsZW7DrXTDqXNlXG4iCisiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBmZWxzb3JvbGphIGEgYmVrYXBjc29sdCBsZWhldMWRc8OpZ2VrZXRcbiIKKyIgLVIsIC0tYWRkci1uby1yYW5kb21pemUgIGxldGlsdGphIGEgdmlydHXDoWxpcyBjw61tdMOpciB2w6lsZXRsZW5zemVyxbFzw610w6lzw6l0XG4iCisiIC1GLCAtLWZkcGljLWZ1bmNwdHJzICAgICBhIGbDvGdndsOpbnltdXRhdMOza2F0IGxlw61yw7NrcmEgbXV0YXTDs2trw6EgdGVzemlcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIGJla2FwY3NvbGphIGF6IE1NQVBfUEFHRV9aRVJPIHR1bGFqZG9uc8OhZ290XG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBtZWd2w6FsdG96dGF0amEgYSB2aXJ0dcOhbGlzIG1lbcOzcmlhIGxlZm9nbGFsw6FzaSAiCisibcOzZGrDoXRcbiIKKyIgLVgsIC0tcmVhZC1pbXBsaWVzLWV4ZWMgIGJla2FwY3NvbGphIGEgUkVBRF9JTVBMSUVTX0VYRUMgdHVsYWpkb25zw6Fnb3RcbiIKKyIgLUIsIC0tMzJiaXQgICAgICAgICAgICAgIGJla2FwY3NvbGphIGF6IEFERFJfTElNSVRfMzJCSVQgdHVsYWpkb25zw6Fnb3RcbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgIGJla2FwY3NvbGphIGEgU0hPUlRfSU5PREUgdHVsYWpkb25zw6Fnb3RcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIGJla2FwY3NvbGphIGEgV0hPTEVfU0VDT05EUyB0dWxhamRvbnPDoWdvdFxuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgYmVrYXBjc29samEgYSBTVElDS1lfVElNRU9VVFMgdHVsYWpkb25zw6Fnb3RcbiIKKyIgLTMsIC0tM2diICAgICAgICAgICAgICAgIGEgaGFzem7DoWx0IGPDrW10ZXJldCBtYXhpbcOhbGlzYW4gMyBHQi1yZSAiCisia29ybMOhdG96emFcbiIKKyIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGZpZ3llbG1lbiBrw612w7xsIG1hcmFkIChjc2FrIGEgdmlzc3phZmVsw6kgIgorImtvbXBhdGliaWxpdMOhcyBtZWfFkXJ6w6lzw6lyZSlcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiVG92w6FiYmkgaW5mb3Jtw6FjacOza8OpcnQgdGVraW50c2UgbWVnIGEgc2V0YXJjaCg4KSBrw6l6aWvDtm55dm9sZGFsdC5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIiVzOiAlc1xuIgorIlRvdsOhYmJpIGluZm9ybcOhY2nDs2vDqXJ0IGFkamEga2kgYSDigJ4lcyAtLWhlbHDigJ0gcGFyYW5jc290LlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjIxNSBzeXMtdXRpbHMvc2V0YXJjaC5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5yZWNvZ25pemVkIGFyY2hpdGVjdHVyZSIKK21zZ3N0ciAiJXM6IGlzbWVyZXRsZW4gYXJjaGl0ZWt0w7pyYSIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKK21zZ2lkICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK21zZ3N0ciAiVMO6bCBrZXbDqXMgYXJndW1lbnR1bSIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNjUgc3lzLXV0aWxzL3NldGFyY2guYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiQSBzemVtw6lseWlzw6lnIGJlw6FsbMOtdMOhc2EgbWVnaGnDunN1bHQgYSBrw7Z2ZXRrZXrFkXJlOiAlcyIKKworIzogc3lzLXV0aWxzL3NldHNpZC5jOjI2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBwcm9ncmFtIFthcmcgLi4uXVxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyBwcm9ncmFtIFthcmd1bWVudHVtIC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKyJIYXN6bsOhbGF0OiAlcyA8ZXN6a8O2ej4gWyAtaSA8bWVnc3pha8OtdMOhcz4gfCAtdCA8aWTFkT4gfCAtYyA8a2FyYWt0ZXJlaz4gfCAtdyAiCisiPHbDoXJha296w6FzPiB8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICJtZW3Ds3JpYWZvZ2xhbMOhc2kgaGliYSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiVzOiBoaWLDoXMgw6lydMOpa1xuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgYW4gbHAgZGV2aWNlLlxuIgorbXNnc3RyICIlczogYSh6KSAlcyBuZW0gZWd5IHDDoXJodXphbW9zIChscCkgZXN6a8O2ei5cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdGF0dXMgaXMgJWQiCittc2dzdHIgIiVzIMOhbGxhcG90YTogJWQiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBidXN5IgorbXNnc3RyICIsIGZvZ2xhbHQiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCBrw6lzeiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG91dCBvZiBwYXBlciIKK21zZ3N0ciAiLCBraWZvZ3lvdHQgYSBwYXDDrXIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvbi1saW5lIgorbXNnc3RyICIsIGVsw6lyaGV0xZEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCBoaWJhIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6Mjg1Cittc2dpZCAiTFBHRVRJUlEgZXJyb3IiCittc2dzdHIgIkxQR0VUSVJRIGhpYmEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgSVJRICVkXG4iCittc2dzdHIgIiVzIGEoeikgJWQuIG1lZ3N6YWvDrXTDoXN0IGhhc3puw6FsamFcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBwb2xsaW5nXG4iCittc2dzdHIgIiVzIGxla8OpcmRlesOpc3QgaGFzem7DoWxcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgIkhhc3puw6FsYXQ6ICVzIHByb2dyYW0gW2FyZ3VtZW50dW0gLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjYwCittc2dpZCAiIgorIlJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB1c2FnZSBpbmZvcm1hdGlvbiAodGhpcylcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgbW91bnRzIG5hbWVzcGFjZVxuIgorIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIFN5c3RlbSBWIElQQyBuYW1lc3BhY2VcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIHVuc2hhcmUgbmV0d29yayBuYW1lc3BhY2VcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHVuc2hhcmUoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJUb3bDoWJiaSBpbmZvcm3DoWNpw7Nrw6lydCB0ZWtpbnRzZSBtZWcgYSBzZXRhcmNoKDgpIGvDqXppa8O2bnl2b2xkYWx0LlxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExNAorIywgZnV6enkKK21zZ2lkICJ1bnNoYXJlIGZhaWxlZCIKK21zZ3N0ciAiYSBwb3ppY2lvbsOhbMOhcyBtZWdoacO6c3VsdCIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJhIHbDqWdyZWhhanTDoXMgbWVnaGnDunN1bHRcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgImNvbDogaGliw6FzIC1sIGthcGNzb2zDszogJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmVdXG4iCittc2dzdHIgIkhhc3puw6FsYXQ6IGNvbCBbLWJmcHhdIFstbCBzb3JzesOhbV1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiDDrXLDoXNpIGhpYmEuXG4iCisKKyMgYSAlcyBhIGvDtnZldGtlesWRIGtldHTFkSBlZ3lpa2UKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd2FybmluZzogY2FuJ3QgYmFjayB1cCAlcy5cbiIKK21zZ3N0ciAiY29sOiBmaWd5ZWxtZXp0ZXTDqXM6IG5lbSDDoWxsw610aGF0w7Mgdmlzc3phICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgInBhc3QgZmlyc3QgbGluZSIKK21zZ3N0ciAiYXogZWxzxZEgc29yIHV0w6FuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgIi0tIGxpbmUgYWxyZWFkeSBmbHVzaGVkIgorbXNnc3RyICItLSBhIHNvciBtw6FyIGtpIHZhbiDDvHLDrXR2ZSIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyBbIC0gXSBbIC0yIF0gWyBmw6FqbCAuLi4gXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgImEgc29yIHTDumwgaG9zc3rDuiIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzozNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbHVtbiBbLXR4XSBbLWMgY29sdW1uc10gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJIYXN6bsOhbGF0IDogY29sdW1uIFstdHhdIFstYyBvc3psb3Bva10gW2bDoWpsIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgbGVuZ3RoIHZhbHVlLlxuIgorbXNnc3RyICJoZXhkdW1wOiBoaWLDoXMgaG9zc3rDunPDoWfDqXJ0w6lrLlxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBza2lwIHZhbHVlLlxuIgorbXNnc3RyICJoZXhkdW1wOiBoaWLDoXMga2loYWd5w6FzaSDDqXJ0w6lrLlxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbGVdIFstbiBsZW5ndGhdIFstcyBza2lwXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmb3Jtw6F0dW1dIFstZiBmb3Jtw6F0dW1fZsOhamxdIFstbiBob3Nzel0gWy1zICIKKyJraWhhZ3nDoXNdIFtmw6FqbCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWy1kZmxwY3N1XSBbK2xpbmVudW0gfCArL3BhdHRlcm5dIG5hbWUxIG5hbWUyIC4uLlxuIgorbXNnc3RyICJIYXN6bsOhbGF0OiAlcyBbLWRmbHBjc3VdIFsrc29yc3rDoW0gfCArL21pbnRhXSBuw6l2MSBuw6l2MiAuLi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICJOZW0gZm9nbGFsaGF0w7MgbGUgcHVmZmVydC5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIG9wdGlvbiBcIi0lY1wiXG4iCittc2dzdHIgIiVzOiBpc21lcmV0bGVuIGthcGNzb2zDszog4oCeLSVj4oCdXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjUxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqICVzOiBkaXJlY3RvcnkgKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKiogJXM6IGvDtm55dnTDoXIgKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjU2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqKioqKiogJXM6IE5vdCBhIHRleHQgZmlsZSAqKioqKioqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqKioqKiogJXM6IEV6IG5lbSBlZ3kgc3rDtnZlZ2bDoWpsICoqKioqKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjY2NAorIywgYy1mb3JtYXQKK21zZ2lkICJbVXNlIHEgb3IgUSB0byBxdWl0XSIKK21zZ3N0ciAiW0hhc3puw6FsamEgYSBxIHZhZ3kgYSBRIGVneWlrw6l0IGEga2lsw6lww6lzaGV6XSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tTW9yZS0tIgorbXNnc3RyICItLVRvdsOhYmItLSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIihOZXh0IGZpbGU6ICVzKSIKK21zZ3N0ciAiKEvDtnZldGtlesWRIGbDoWpsOiAlcykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIltOeW9tamEgbGUgYSBzesOza8O2enQgYSBmb2x5dGF0w6FzaG96IHZhZ3kgYSBxIGJpbGxlbnR5xbF0IGEga2lsw6lww6lzaGV6Ll0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uYmFjayAlZCBwYWdlcyIKK21zZ3N0ciAiLi4udmlzc3phICVkIG9sZGFsbGFsIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA4Cittc2dpZCAiLi4uYmFjayAxIHBhZ2UiCittc2dzdHIgIi4uLnZpc3N6YSAxIG9sZGFsbGFsIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUxCittc2dpZCAiLi4uc2tpcHBpbmcgb25lIGxpbmUiCittc2dzdHIgIi4uLiBlZ3kgc29yIGtpaGFnecOhc2EiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc2tpcHBpbmcgJWQgbGluZXMiCittc2dzdHIgIi4uLiAlZCBzb3Iga2loYWd5w6FzYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI5MAorbXNnaWQgIiIKKyJcbiIKKyIqKipCYWNrKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKipWaXNzemEqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMyOAorbXNnaWQgIiIKKyJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgRGVmYXVsdHMgaW4gIgorImJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisiXG4iCisiQSBsZWd0w7ZiYiBwYXJhbmNzb3QgbWVnZWzFkXpoZXRpIGVneSBrIGVnw6lzeiBzesOhbS4gQXogYWxhcMOpcnRlbG1lesOpc2VrIFtdICIKKyJrw7Z6w7Z0dFxuIgorInZhbm5hay4gQSBjc2lsbGFnICgqKSBqZWx6aSwgaGEgYXogYXJndW1lbnR1bSBheiDDumogYWxhcMOpcnRlbG1lesOpc3PDqSB2w6FsaWsuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMzUKK21zZ2lkICIiCisiPHNwYWNlPiAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFsxXSpcbiIKKyJkIG9yIGN0cmwtRCAgICAgICAgICAgICBTY3JvbGwgayBsaW5lcyBbY3VycmVudCBzY3JvbGwgc2l6ZSwgaW5pdGlhbGx5IDExXSpcbiIKKyJxIG9yIFEgb3IgPGludGVycnVwdD4gICBFeGl0IGZyb20gbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGxpbmVzIG9mIHRleHQgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorImIgb3IgY3RybC1CICAgICAgICAgICAgIFNraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGxpbmUgbnVtYmVyXG4iCisiLzxyZWd1bGFyIGV4cHJlc3Npb24+ICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiBsYXN0IHIuZSBbMV1cbiIKKyIhPGNtZD4gb3IgOiE8Y21kPiAgICAgICBFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBhdCBjdXJyZW50IGxpbmVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRyYXcgc2NyZWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIG5leHQgZmlsZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggcHJldmlvdXMgZmlsZSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCBwcmV2aW91cyBjb21tYW5kXG4iCittc2dzdHIgIiIKKyI8c3rDs2vDtno+ICAgICAgICAgICAgICAgIEvDtnZldGtlesWRIGsgc29yIHN6w7Z2ZWcgW2plbGVubGVnaSBrw6lwZXJuecWRbcOpcmV0XVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIEvDtnZldGtlesWRIGsgc29yIHN6w7Z2ZWcgW2plbGVubGVnaSBrw6lwZXJuecWRbcOpcmV0XSpcbiIKKyI8ZW50ZXI+ICAgICAgICAgICAgICAgICBLw7Z2ZXRrZXrFkSBrIHNvciBzesO2dmVnIFsxXSpcbiIKKyJkIHZhZ3kgY3RybC1EICAgICAgICAgICBHw7ZyZ2V0w6lzIGsgc29ycmFsIFtqZWxlbmxlZ2kgZ8O2cmdldMOpc23DqXJldCwgMTFdKlxuIgorInEsIFEgdmFneSA8bWVnc3pha8OtdMOhcz4gS2lsw6lww6lzIGEgbW9yZS1iw7NsXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgVWdyw6FzIGVsxZFyZSBrIHNvciBzesO2dmVnZ2VsIFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFVncsOhcyBlbMWRcmUgayBrw6lwZXJuecWRbnlpIHN6w7Z2ZWdnZWwgWzFdXG4iCisiYiB2YWd5IGN0cmwtQiAgICAgICAgICAgVWdyw6FzIHZpc3N6YSBrIGvDqXBlcm55xZFueWkgc3rDtnZlZ2dlbCBbMV1cbiIKKyInICAgICAgICAgICAgICAgICAgICAgICBVZ3LDoXMgYXogZWzFkXrFkSBrZXJlc8OpcyBraWluZHVsw7Nwb250asOhaG96XG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgSmVsZW5sZWdpIHNvcnN6w6FtIG1lZ2plbGVuw610w6lzZVxuIgorIi88cmVndWzDoXJpcyBraWZlamV6w6lzPiAgQSByZWd1bMOhcmlzIGtpZmVqZXrDqXMgay4gZWzFkWZvcmR1bMOhc8OhbmFrIGtlcmVzw6lzZSAiCisiWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgQXogdXRvbHPDsyByZWd1bMOhcmlzIGtpZi4gay4gZWzFkWZvcmR1bMOhc8OhbmFrIGtlcmVzw6lzZSAiCisiWzFdXG4iCisiITxwYXI+IHZhZ3kgOiE8cGFyPiAgICAgQSA8cGFyPiBwYXJhbmNzIHbDqWdyZWhhanTDoXNhIHBhcmFuY3PDqXJ0ZWxtZXrFkWJlblxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIGEgL3Vzci9iaW4vdmkgaW5kw610w6FzYSBhIGplbGVubGVnaSBzb3JiYW5cbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBLw6lwZXJuecWRIMO6anJhcmFqem9sw6FzYVxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIFVncsOhcyBhIGsuIGvDtnZldGtlesWRIGbDoWpscmEgWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAgVWdyw6FzIGEgay4gZWzFkXrFkSBmw6FqbHJhIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIEplbGVubGVnaSBmw6FqbG7DqXYgw6lzIHNvcnN6w6FtIG1lZ2plbGVuw610w6lzZVxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIEVsxZF6xZEgcGFyYW5jcyBtZWdpc23DqXRsw6lzZVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIltTZWfDrXRzw6lnw6lydCBueW9tamEgbWVnIGEg4oCeaOKAnSBiaWxsZW50ecWxdC5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQzCisjLCBjLWZvcm1hdAorbXNnaWQgIlwiJXNcIiBsaW5lICVkIgorbXNnc3RyICLigJ4lc+KAnSAlZC4gc29yIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbTmVtIGbDoWpsXSAlZC4gc29yIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTI5Cittc2dpZCAiICBPdmVyZmxvd1xuIgorbXNnc3RyICIgIFTDumxjc29yZHVsw6FzXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIgIGtpaGFnecOhc1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICJBIHJlZ3Vsw6FyaXMga2lmZWplesOpcyBoaWLDoXMiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTMKK21zZ2lkICIiCisiXG4iCisiUGF0dGVybiBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorIlxuIgorIkEgbWludGEgbmVtIHRhbMOhbGhhdMOzXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAiQSBtaW50YSBuZW0gdGFsw6FsaGF0w7MiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2NzcKK21zZ2lkICJjYW4ndCBmb3JrXG4iCittc2dzdHIgIm5lbSBpbmTDrXRoYXTDsyBwcm9ncmFtXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MTYKK21zZ2lkICIiCisiXG4iCisiLi4uU2tpcHBpbmcgIgorbXNnc3RyICIiCisiXG4iCisiLi4uVWdyw6FzICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMAorbXNnaWQgIi4uLlNraXBwaW5nIHRvIGZpbGUgIgorbXNnc3RyICIuLi5VZ3LDoXMgZsOhamxyYTogIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAiLi4uVWdyw6FzIGVneSBmw6FqbGxhbCB2aXNzemE6ICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjAwMAorbXNnaWQgIkxpbmUgdG9vIGxvbmciCittc2dzdHIgIkEgc29yIHTDumwgaG9zc3rDuiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIk5pbmNzIGVsxZF6xZEgcGFyYW5jcyBhIGhlbHlldHRlc8OtdMOpc2hleiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJvZDogb2QoMSkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgaGV4ZHVtcCgxKS5cbiIKK21zZ3N0ciAib2Q6IGF6IG9kKDEpIGVsYXZ1bHQsIGEgaGV4ZHVtcCgxKSBoYXN6bsOhbGFuZMOzLlxuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBoZXhkdW1wKDEpIGNvbXBhdGliaWxpdHkgZG9lc24ndCBzdXBwb3J0IHRoZSAtJWMgb3B0aW9uJXNcbiIKK21zZ3N0ciAib2Q6IGEgaGV4ZHVtcCgxKSBrb21wYXRpYmlsaXTDoXMgbmVtIHTDoW1vZ2F0amEgYSAtJWMga2FwY3NvbMOzdCVzXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzQKK21zZ2lkICI7IHNlZSBzdHJpbmdzKDEpLiIKK21zZ3N0ciAiOyBsw6FzZCBzdHJpbmdzKDEpLiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IG5lbSBvbHZhc2hhdMOzIGEoeikgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJoZXhkdW1wOiBhIHNvciB0w7psIGhvc3N6w7ouXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogYsOhanRzesOhbSB0w7ZiYiDDoXRhbGFrw610w6FzaSBrYXJha3RlcnJlbC5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgYnl0ZSBjb3VudCBmb3IgY29udmVyc2lvbiBjaGFyYWN0ZXIgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IGhpYsOhcyBiw6FqdHN6w6FtIGEga8O2dmV0a2V6xZEgw6F0YWxha8OtdMOhc2kga2FyYWt0ZXJoZXo6ICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgImhleGR1bXA6IGEoeikgJSVzIHBvbnRvc3PDoWdvdCB2YWd5IGLDoWp0c3rDoW1vdCBpZ8OpbnllbC5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDogaGliw6FzIGZvcm3DoXR1bSB7JXN9XG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iCittc2dzdHIgImhleGR1bXA6IGhpYsOhcyDDoXRhbGFrw610w6FzaSBrYXJha3RlcjogJSUlcy5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NQorbXNnaWQgIiIKKyJBbGwgcmlnaHRzIHJlc2VydmVkLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyIgIGggICAgICAgICAgICAgICAgICAgICAgIHRoaXMgc2NyZWVuXG4iCisiICBxIG9yIFEgICAgICAgICAgICAgICAgICBxdWl0IHByb2dyYW1cbiIKKyIgIDxuZXdsaW5lPiAgICAgICAgICAgICAgIG5leHQgcGFnZVxuIgorIiAgZiAgICAgICAgICAgICAgICAgICAgICAgc2tpcCBhIHBhZ2UgZm9yd2FyZFxuIgorIiAgZCBvciBeRCAgICAgICAgICAgICAgICAgbmV4dCBoYWxmcGFnZVxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBsaW5lXG4iCisiICAkICAgICAgICAgICAgICAgICAgICAgICBsYXN0IHBhZ2VcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIHNlYXJjaCBmb3J3YXJkIGZvciByZWdleFxuIgorIiAgP3JlZ2V4PyBvciBecmVnZXheICAgICAgc2VhcmNoIGJhY2t3YXJkIGZvciByZWdleFxuIgorIiAgLiBvciBeTCAgICAgICAgICAgICAgICAgcmVkcmF3IHNjcmVlblxuIgorIiAgdyBvciB6ICAgICAgICAgICAgICAgICAgc2V0IHBhZ2Ugc2l6ZSBhbmQgZ28gdG8gbmV4dCBwYWdlXG4iCisiICBzIGZpbGVuYW1lICAgICAgICAgICAgICBzYXZlIGN1cnJlbnQgZmlsZSB0byBmaWxlbmFtZVxuIgorIiAgIWNvbW1hbmQgICAgICAgICAgICAgICAgc2hlbGwgZXNjYXBlXG4iCisiICBwICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBwcmV2aW91cyBmaWxlXG4iCisiICBuICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBuZXh0IGZpbGVcbiIKKyJcbiIKKyJNYW55IGNvbW1hbmRzIGFjY2VwdCBwcmVjZWRpbmcgbnVtYmVycywgZm9yIGV4YW1wbGU6XG4iCisiKzE8bmV3bGluZT4gKG5leHQgcGFnZSk7IC0xPG5ld2xpbmU+IChwcmV2aW91cyBwYWdlKTsgMTxuZXdsaW5lPiAoZmlyc3QgIgorInBhZ2UpLlxuIgorIlxuIgorIlNlZSBwZygxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjIyMworIywgZnV6enkKK21zZ2lkICJPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIk5pbmNzIGVsw6lnIG1lbcOzcmlhIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6ICVzIFstbnVtYmVyXSBbLXAgc3RyaW5nXSBbLWNlZm5yc10gWytsaW5lXSBbKy9wYXR0ZXJuL10gW2ZpbGVzXVxuIgorbXNnc3RyICIiCisiJXM6IEhhc3puw6FsYXQ6ICVzIFstc3rDoW1dIFstcCBrYXJha3RlcmzDoW5jXSBbLWNlZm5yc10gWytzb3JdIFsrL21pbnRhL10gIgorIltmw6FqbG9rXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IGEga2FwY3NvbMOzIGFyZ3VtZW50dW1vdCBpZ8OpbnllbCAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczogw6lydsOpbnl0ZWxlbiBrYXBjc29sw7MgLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MAorbXNnaWQgIi4uLnNraXBwaW5nIGZvcndhcmRcbiIKK21zZ3N0ciAiLi4udWdyw6FzIGVsxZFyZVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcyCittc2dpZCAiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIKK21zZ3N0ciAiLi4udWdyw6FzIHZpc3N6YVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJOaW5jcyBrw7Z2ZXRrZXrFkSBmw6FqbCIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIk5pbmNzIGVsxZF6xZEgZsOhamwiCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFJlYWQgZXJyb3IgZnJvbSAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBPbHZhc8Ohc2kgaGliYSBhKHopICVzIGbDoWpsYmFuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuZXhwZWN0ZWQgRU9GIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IFbDoXJhdGxhbiBmw6FqbCB2w6lnZSBqZWwgYSh6KSAlcyBmw6FqbGJhblxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGVycm9yIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IElzbWVyZXRsZW4gaGliYSBhKHopICVzIGbDoWpsYmFuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgY3JlYXRlIHRlbXBmaWxlXG4iCittc2dzdHIgIiVzOiBOZW0gaG96aGF0w7MgbMOpdHJlIGlkZWlnbGVuZXMgZsOhamxcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwNDQgdGV4dC11dGlscy9wZy5jOjEyMTkgdGV4dC11dGlscy9wZy5jOjEyNDYKK21zZ2lkICJSRSBlcnJvcjogIgorbXNnc3RyICJSRSBoaWJhOiAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIihGw6FqbCB2w6lnZSkiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjI3IHRleHQtdXRpbHMvcGcuYzoxMjU0Cittc2dpZCAiTm8gcmVtZW1iZXJlZCBzZWFyY2ggc3RyaW5nIgorbXNnc3RyICJOaW5jcyBtZW50ZXR0IGtlcmVzw6lzaSBraWZlamV6w6lzIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAiTmVtIG55aXRoYXTDsyBtZWc6ICIKKworIzogdGV4dC11dGlscy9wZy5jOjEzNTgKK21zZ2lkICJzYXZlZCIKK21zZ3N0ciAiZWxtZW50dmUiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDY1Cittc2dpZCAiOiAhY29tbWFuZCBub3QgYWxsb3dlZCBpbiByZmxhZyBtb2RlLlxuIgorbXNnc3RyICI6ICFwYXJhbmNzIG5lbSBoYXN6bsOhbGhhdMOzIHJmbGFnIG3Ds2RiYW4uXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDk3Cittc2dpZCAiZm9yaygpIGZhaWxlZCwgdHJ5IGFnYWluIGxhdGVyXG4iCittc2dzdHIgImEgZm9yaygpIGjDrXbDoXMgbWVnaGnDunN1bHQsIHByw7Niw6FsamEgw7pqcmEga8Opc8WRYmJcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIihLw7Z2ZXRrZXrFkSBmw6FqbDogIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjExMworbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzcGFjZSIKK21zZ3N0ciAibmVtIGZvZ2xhbGhhdMOzIGxlIHB1ZmZlcnRlcsO8bGV0IgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiSGFzem7DoWxhdDogcmV2IFtmw6FqbCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gXCIlc1wiIGZvciByZWFkIgorbXNnc3RyICJhKHopIOKAniVz4oCdIG5lbSBueWl0aGF0w7MgbWVnIG9sdmFzw6FzcmEiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo5NiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjE1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IFwiJXNcIiIKK21zZ3N0ciAiYSh6KSDigJ4lc+KAnSBuZW0gw6lyaGV0xZEgZWwiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxMDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImluY29tcGxldGUgd3JpdGUgdG8gXCIlc1wiICh3cml0dGVuICV6ZCwgZXhwZWN0ZWQgJXpkKVxuIgorbXNnc3RyICJiZWZlamV6ZXRsZW4gw61yw6FzIGEga8O2dmV0a2V6xZFiZTog4oCeJXPigJ0gKGtpw61ydmE6ICVsZCwgdsOhcnQ6ICVsZClcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoIChsaW1pdCBvZiBpbm90aWZ5IHdhdGNoZXMgd2FzIHJlYWNoZWQpLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2guIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgcmVhZCBpbm90aWZ5IGV2ZW50cyIKK21zZ3N0ciAiJXM6ICVzIG5lbSBueWl0aGF0w7MgbWVnXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxOTkgdGV4dC11dGlscy90YWlsZi5jOjIwMworbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIGxpbmVzIgorbXNnc3RyICJhIHNvcm9rIHN6w6FtYSDDqXJ2w6lueXRlbGVuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjEwCittc2dpZCAidXNhZ2U6IHRhaWxmIFstbiBOIHwgLU5dIGxvZ2ZpbGUiCittc2dzdHIgIkhhc3puw6FsYXQ6IHRhaWxmIFstbiBOIHwgLU5dIG5hcGzDs2bDoWpsIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgIkhhc3puw6FsYXQ6ICVzIFsgLWkgXSBbIC10VGVybSBdIGbDoWpsLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICJoaWJhIGEgdGVybWluZm8gb2x2YXPDoXNha29yIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAiSXNtZXJldGxlbiBlc2NhcGUtc29yb3phdCBhIGJlbWVuZXRiZW46ICVvLCAlb1xuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIuXG4iCittc2dzdHIgIk5lbSBmb2dsYWxoYXTDsyBsZSBwdWZmZXJ0LlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIkEgYmVtZW5ldGkgc29yIHTDumwgaG9zc3rDui5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoZW4gZ3Jvd2luZyBidWZmZXIuXG4iCittc2dzdHIgIkVsZm9neW90dCBhIG1lbcOzcmlhIGEgcHVmZmVyIG7DtnZlbMOpc2Vrb3IuXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstYiBTU1pdIFstdV0gRElTSyAgICAgQ2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorI34gIiAgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdIERJU0sgIExpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisjfiAiICAgICAgIGZkaXNrIC1zIFBBUlRJVElPTiAgICAgICAgICAgR2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyN+ICIgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICBHaXZlIGZkaXNrIHZlcnNpb25cbiIKKyN+ICJIZXJlIERJU0sgaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGIgb3IgL2Rldi9zZGFcbiIKKyN+ICJhbmQgUEFSVElUSU9OIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhN1xuIgorI34gIi11OiBnaXZlIFN0YXJ0IGFuZCBFbmQgaW4gc2VjdG9yIChpbnN0ZWFkIG9mIGN5bGluZGVyKSB1bml0c1xuIgorI34gIi1iIDIwNDg6IChmb3IgY2VydGFpbiBNTyBkaXNrcykgdXNlIDIwNDgtYnl0ZSBzZWN0b3JzXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJIYXN6bsOhbGF0OiBmZGlzayBbLWIgU1pNXSBbLXVdIExFTUVaICAgUGFydMOtY2nDs3MgdMOhYmxhIG3Ds2Rvc8OtdMOhc2FcbiIKKyN+ICIgICAgICAgZmRpc2sgLWwgWy1iIFNaTV0gWy11XSBMRU1FWiAgICBBIHBhcnTDrWNpw7NzIHTDoWJsw6FrIGtpw61yw6FzYVxuIgorI34gIiAgICAgICBmZGlzayAtcyBQQVJUw41DScOTICAgICAgICAgICAgICAgQSBwYXJ0w61jacOzbcOpcmV0IG1lZ2Fkw6FzYSBibG9ra2JhblxuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgICAgIEF6IGZkaXNrIHZlcnppw7NzesOhbWFcbiIKKyN+ICJBIExFTUVaIC9kZXYvaGRiIHZhZ3kgL2Rldi9zZGEgYWxha2JhbiBhZGhhdMOzIG1lZyxcbiIKKyN+ICJhIFBBUlTDjUNJw5MgcGVkaWcgL2Rldi9oZGE3IGFsYWtiYW5cbiIKKyN+ICItdTogQSBrZXpkZXQgw6lzIHbDqWcgbWVnYWTDoXNhIHN6ZWt0b3JiYW4gKGNpbGluZGVyIGhlbHlldHQpXG4iCisjfiAiLWIgMjA0ODogKGJpem9ueW9zIE1PIGxlbWV6ZWtuw6lsKSAyMDQ4IGLDoWp0b3Mgc3pla3Rvcm9rIGhhc3puw6FsYXRhXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstbF0gWy1iIFNTWl0gWy11XSBkZXZpY2VcbiIKKyN+ICJFLmcuOiBmZGlzayAvZGV2L2hkYSAgKGZvciB0aGUgZmlyc3QgSURFIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9zZGMgIChmb3IgdGhlIHRoaXJkIFNDU0kgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L2VkYSAgKGZvciB0aGUgZmlyc3QgUFMvMiBFU0RJIGRyaXZlKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvcmQvYzBkMCAgb3I6IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChmb3IgUkFJRCBkZXZpY2VzKVxuIgorI34gIiAgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJIYXN6bsOhbGF0OiBmZGlzayBbLWxdIFstYiBTWk1dIFstdV0gZXN6a8O2elxuIgorI34gIlDDqWxkw6F1bDogZmRpc2sgL2Rldi9oZGEgIChheiBlbHPFkSBJREUgbWVnaGFqdMOzKVxuIgorI34gIiAgIHZhZ3k6IGZkaXNrIC9kZXYvc2RjICAoYSBoYXJtYWRpayBTQ1NJIGxlbWV6KVxuIgorI34gIiAgIHZhZ3k6IGZkaXNrIC9kZXYvZWRhICAoYXogZWxzxZEgUFMvMiBFU0RJIGxlbWV6KVxuIgorI34gIiAgIHZhZ3k6IGZkaXNrIC9kZXYvcmQvYzBkMCAgdmFneTogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKFJBSUQgZXN6a8O2esO2aylcbiIKKyN+ICIgICAuLi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJUaGUgbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkaXNrIGlzIHNldCB0byAlZC5cbiIKKyN+ICJUaGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggdGhhdCwgYnV0IHRoaXMgaXMgbGFyZ2VyIHRoYW4gMTAyNCxcbiIKKyN+ICJhbmQgY291bGQgaW4gY2VydGFpbiBzZXR1cHMgY2F1c2UgcHJvYmxlbXMgd2l0aDpcbiIKKyN+ICIxKSBzb2Z0d2FyZSB0aGF0IHJ1bnMgYXQgYm9vdCB0aW1lIChlLmcuLCBvbGQgdmVyc2lvbnMgb2YgTElMTylcbiIKKyN+ICIyKSBib290aW5nIGFuZCBwYXJ0aXRpb25pbmcgc29mdHdhcmUgZnJvbSBvdGhlciBPU3NcbiIKKyN+ICIgICAoZS5nLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAiQSBjaWxpbmRlcmVrIGJlw6FsbMOtdG90dCBzesOhbWEgZXplbiBhIG1lZ2hhanTDs24gJWQuXG4iCisjfiAiRXogbmVtIGplbGVudCBwcm9ibMOpbcOhdCwgZGUgZXogYXogw6lydMOpayBuYWd5b2JiIG1pbnQgMTAyNCxcbiIKKyN+ICLDqXMgYml6b255b3MgcmVuZHN6ZXJla2VuIHByb2Jsw6ltw6FrIGxlaGV0bmVrOlxuIgorI34gIjEpIHJlbmRzemVyaW5kdWzDoXNrb3IgZnV0w7Mgc3pvZnR2ZXJla2tlbCAocMOpbGTDoXVsIGEgTElMTyByw6lnaSB2ZXJ6acOzaSlcbiIKKyN+ICIyKSBtw6FzaWsgb3BlcsOhY2nDs3MgcmVuZHN6ZXJlayBpbmTDrXTDoXPDoXZhbCDDqXMgYXpvayBwYXJ0w61jaW9uw6Fsw7MgIgorI34gInN6b2Z0dmVyZWluZWtcbiIKKyN+ICIgICBoYXN6bsOhbGF0w6F2YWwgKHDDqWxkw6F1bCBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAib3V0IGlmIG1lbW9yeSIKKyN+IG1zZ3N0ciAiZWxmb2d5b3R0IGEgbWVtw7NyaWEiCisKKyN+IG1zZ2lkICIjIHBhcnRpdGlvbiB0YWJsZSBvZiAlc1xuIgorI34gbXNnc3RyICIjICVzIHBhcnTDrWNpw7NzIHTDoWJsw6FqYVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICJ1bml0OiBzZWN0b3JzXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgIlN1bk9TIGFsdCBzemVrdG9yb2siCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIHN0YXJ0PSU5bHUiCisjfiBtc2dzdHIgImtlemRldCIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAiTWF4LiBtw6lyZXQ9JWxkXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBib290YWJsZSIKKyN+IG1zZ3N0ciAiQUlYIGluZMOtdGhhdMOzIgorCisjLCBmdXp6eQorI34gbXNnaWQgIkNsb2NrIGluIFVUQywgbm90IGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIkEgcGFyYW5jc8OpcnRlbG1lesWRIG5lbSB2w6FsdG96b3R0LlxuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiBsYWJlbCBvbmx5IHdpdGggdjEgc3dhcCBhcmVhXG4iCisjfiBtc2dzdHIgIiVzIGhpYmE6IGPDrW1rZSAxLWVzIHZlcnppw7Nqw7ogbGFwb3rDs3RlcsO8bGV0dGVsXG4iCisKKyN+IG1zZ2lkICJmYXRhbDogZmlyc3QgcGFnZSB1bnJlYWRhYmxlIgorI34gbXNnc3RyICJ2w6lnemV0ZXMgaGliYTogYXogZWxzxZEgbGFwIG5lbSBvbHZhc2hhdMOzIgorCisjfiBtc2dpZCAiIgorI34gIiVzOiBEZXZpY2UgJyVzJyBjb250YWlucyBhIHZhbGlkIFN1biBkaXNrbGFiZWwuXG4iCisjfiAiVGhpcyBwcm9iYWJseSBtZWFucyBjcmVhdGluZyB2MCBzd2FwIHdvdWxkIGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUuXG4iCisjfiAiTm8gc3dhcCB3YXMgY3JlYXRlZC4gSWYgeW91IHJlYWxseSB3YW50IHRvIGNyZWF0ZSB2MCBzd2FwIG9uIHRoYXQgIgorI34gImRldmljZSxcbiIKKyN+ICJ1c2UgdGhlIC1mIG9wdGlvbiB0byBmb3JjZSBpdC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBBKHopIOKAniVz4oCdIGVzemvDtnogZWd5IMOpcnbDqW55ZXMgU3VuIGxlbWV6Y8OtbWvDqXQgdGFydGFsbWF6LlxuIgorI34gIkV6IHZhbMOzc3rDrW7FsWxlZyBhenQgamVsZW50aSwgaG9neSBlZ3kgMCB2ZXJ6acOzasO6IGxhcG96w7N0ZXLDvGxldCAiCisjfiAibMOpdHJlaG96w6FzYVxuIgorI34gIm1lZ3NlbW1pc8OtdGhldGkgYSBwYXJ0w61jacOzcyB0w6FibMOhdC4gQSBsYXBvesOzdGVyw7xsZXQgbmVtIGrDtnR0IGzDqXRyZS5cbiIKKyN+ICJIYSB2YWzDs2JhbiAwIHZlcnppw7Nqw7ogbGFwb3rDs3RlcsO8bGV0ZXQgYWthciBsw6l0cmVob3puaSBheiBlc3prw7Z6w7ZuLCBha2tvclxuIgorI34gImEgLWYga2FwY3NvbMOzIGhhc3puw6FsYXTDoXZhbCBraWvDqW55c3plcsOtdGhldGkgZXp0LlxuIgorCisjfiBtc2dpZCAibmFtZWk6IHVuYWJsZSB0byBnZXQgY3VycmVudCBkaXJlY3RvcnkgLSAlc1xuIgorI34gbXNnc3RyICJuYW1laTogbmVtIGxlaGV0IGxla8Opcm5pIGF6IGFrdHXDoWxpcyBrw7ZueXZ0w6FyYXQgLSAlc1xuIgorCisjfiBtc2dpZCAibmFtZWk6IHVuYWJsZSB0byBjaGRpciB0byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IG5lbSBsZWhldCBrw7ZueXZ0w6FyYXQgdsOhbHRhbmkgZWJiZTogJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IGNoZGlyIHRvIHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBuZW0gbGVoZXQgYSBnecO2a8OpcmvDtm55dnTDoXJiYSBsw6lwbmkhXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IHN0YXQgcm9vdCFcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IG5lbSDDqXJoZXTFkSBlbCBhIGd5w7Zrw6lya8O2bnl2dMOhciFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IHB1ZmZlcnTDumxjc29yZHVsw6FzXG4iCisKKyN+IG1zZ2lkICIgPyBjb3VsZCBub3QgY2hkaXIgaW50byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAiID8gbmVtIGxlaGV0IGEga8O2dmV0a2V6xZEga8O2bnl2dMOhcmJhIGzDqXBuaTogJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IHByb2Jsw6ltYSBhIHN6aW1ib2xpa3VzIGxpbmsgb2x2YXPDoXNha29yOiAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIiAgKioqIEVYQ0VFREVEIFVOSVggTElNSVQgT0YgU1lNTElOS1MgKioqXG4iCisjfiBtc2dzdHIgIiAgKiogQSBTWklNQk9MSUtVUyBISVZBVEtPWsOBU09LIFVOSVggSEFUw4FSQSBFTMOJUlZFICoqKlxuIgorCisjfiBtc2dpZCAibmFtZWk6IHVua25vd24gZmlsZSB0eXBlIDAlMDZvIG9uIGZpbGUgJXNcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGEga8O2dmV0a2V6xZEgZsOhamwgZsOhamx0w61wdXNhICgwJTA2bykgaXNtZXJldGxlbjogJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb2luZyB0byBtb3VudCAlcyBieSAlc1xuIgorI34gbXNnc3RyICJtb3VudDogYSh6KSAlcyBjc2F0b2zDoXNhIGEoeikgJXMgc3plcmludFxuIgorCisjfiBtc2dpZCAibW91bnQ6IG5vIExBQkVMPSwgbm8gVVVJRD0sIGdvaW5nIHRvIG1vdW50ICVzIGJ5IHBhdGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG5pbmNzIExBQkVMPSB2YWd5IFVVSUQ9LCAlcyBjc2F0b2zDoXNhIMO6dHZvbmFsIHN6ZXJpbnRcbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3QgZm9yazogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IE5lbSBpbmTDrXRoYXTDsyBwcm9ncmFtOiAlc1xuIgorCisjfiBtc2dpZCAiJXM6IHdhaXRwaWQ6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiB3YWl0cGlkOiAlc1xuIgorCisjfiBtc2dpZCAiJXM6IGNhbm5vdCBzdGF0ICVzOiAlc1xuIgorI34gbXNnc3RyICIlczogJXMgbmVtIMOpcmhldMWRIGVsOiAlc1xuIgorCisjfiBtc2dpZCAiY291bGQgbm90IHVtb3VudCAlcyAtIHRyeWluZyAlcyBpbnN0ZWFkXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJhKHopICVzIG5lbSB2w6FsYXN6dGhhdMOzIGxlLCBlaGVseWV0dCBrw61zw6lybGV0IGEoeikgJXMgaGFzem7DoWxhdMOhcmFcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9pZC5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9pZC5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZhNjAyNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2lkLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9pZC5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2lkLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYTU5OTgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9pZC5wbwpAQCAtMCwwICsxLDEyNjkzIEBACisjIFBlc2FuIEJhaGFzYSBJbmRvbmVzaWEgdW50dWsgdXRpbC1saW51eAorIyBDb3B5cmlnaHQgKEMpIDIwMDUgQWRyaWFuIEJ1bmsgPGJ1bmtAc3R1c3RhLmRlPgorIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlLgorIyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gZnJlZWx5IGNvcHkgYW5kIGRpc3RyaWJ1dGUKKyMgdGhpcyBmaWxlIGFuZCBtb2RpZmllZCB2ZXJzaW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzCisjIGhlYWRlciBpcyBub3QgcmVtb3ZlZCBhbmQgbW9kaWZpZWQgdmVyc2lvbnMgYXJlIG1hcmtlZAorIyBhcyBzdWNoLgorIyBBcmlmIEUuIE51Z3JvaG8gPGFyaWZfZW5kcm9AeWFob28uY29tPiwgMjAwNiwgMjAwOCwgMjAwOSwgMjAxMC4KKyMKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IHV0aWwtbGludXgtbmcgMi4xNy4xLXJjMVxuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT5cbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wMy0yMiAwOTozNyswMTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAxMC0wMi0xOCAwNDowMCswNzAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBBcmlmIEUuIE51Z3JvaG8gPGFyaWZfZW5kcm9AeWFob28uY29tPlxuIgorIkxhbmd1YWdlLVRlYW06IEluZG9uZXNpYW4gPHRyYW5zbGF0aW9uLXRlYW0taWRAbGlzdHMuc291cmNlZm9yZ2UubmV0PlxuIgorIk1JTUUtVmVyc2lvbjogMS4wXG4iCisiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgInNldCBoYW55YS1iYWNhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAic2V0IGJhY2EtdHVsaXMiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3NgorbXNnaWQgImdldCByZWFkLW9ubHkiCittc2dzdHIgImdldCBoYW55YS1iYWNhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODIKK21zZ2lkICJnZXQgbG9naWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJnZXQgdWt1cmFuIGxvZ2lrYWwgYmxvayAoc2VrdG9yKSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4Cittc2dpZCAiZ2V0IHBoeXNpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgImdldCB1a3VyYW4gZmlzaWsgYmxvayAoc2VrdG9yKSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjk0Cittc2dpZCAiZ2V0IG1pbmltdW0gSS9PIHNpemUiCittc2dzdHIgImdldCB1a3VyYW4gbWluaW1hbCBJL08iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKK21zZ2lkICJnZXQgb3B0aW1hbCBJL08gc2l6ZSIKK21zZ3N0ciAiZ2V0IHVrdXJhbiBvcHRpbWFsIEkvTyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwNgorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICJnZXQgcGVueWVzdWFpYW4gb2ZzZXQiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTIKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgImdldCBtYWtzaW1hbCBzZWt0b3Igc2V0aWFwIHBlcm1pbnRhYW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTgKK21zZ2lkICJnZXQgYmxvY2tzaXplIgorbXNnc3RyICJnZXQgYmxvY2tzaXplIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAic2V0IGJsb2Nrc2l6ZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzMQorbXNnaWQgImdldCAzMi1iaXQgc2VjdG9yIGNvdW50IgorbXNnc3RyICJnZXQgMzItYml0IHNlY3RvciBjb3VudCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICJnZXQgc2l6ZSBpbiBieXRlcyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgInNldCByZWFkYWhlYWQiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTAKK21zZ2lkICJnZXQgcmVhZGFoZWFkIgorbXNnc3RyICJnZXQgcmVhZGFoZWFkIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTU3Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgImdldCBmaWxlc3lzdGVtIHJlYWRhaGVhZCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgImZsdXNoIGJ1ZmZlcnMiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJtZW1iYWNhIGxhZ2kgdGFiZWwgcGFydGlzaSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAiUGVuZ2d1bmFhbjpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFtwZXJhbmdrYXRdXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyBbLXZ8LXFdIHBlcmludGFoIHBlcmFuZ2thdFxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBjb21tYW5kczpcbiIKK21zZ3N0ciAiUGVyaW50YWggeWFuZyB0ZXJzZWRpYTpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NworbXNnaWQgImdldCBzaXplIGluIDUxMi1ieXRlIHNlY3RvcnMiCittc2dzdHIgIkRhcGF0a2FuIHVrdXJhbiBkYWxhbSA1MTItYnl0ZSBzZWt0b3IiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiJXM6IFBlcmludGFoIHRpZGFrIGRpa2V0YWh1aTogJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgorbXNnc3RyICIlcyBtZW1idXR1aGthbiBzZWJ1YWggYXJndW1lbnRcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgIiVzIGdhZ2FsLlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN1Y2NlZWRlZC5cbiIKK21zZ3N0ciAiJXMgc3Vrc2VzLlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDI3IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzOiB0aWRhayBkYXBhdCBtZW1idWthICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBpb2N0bCBlcnJvciBwYWRhICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKK21zZ3N0ciAiUk8gICAgUkEgICBTU1ogICBCU1ogICBBd2FsU2VrdCAgICAgICAgICAgIFVrdXJhbiBQZXJhbmdrYXRcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6XG4iCittc2dzdHIgInBlbmdndW5hYW46XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Tk9URTogZWx2dHVuZSBvbmx5IHdvcmtzIHdpdGggMi40IGtlcm5lbHNcbiIKK21zZ3N0ciAiXHROT1RFOiBlbHZ0dW5lIGhhbnlhIGJla2VyamEgZGVuZ2FuIGtlcm5lbHMgMi40XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJzZSBlcnJvclxuIgorbXNnc3RyICJlcnJvciBtZW5nYW1iaWxcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pc3NpbmcgYmxvY2tkZXZpY2UsIHVzZSAtaCBmb3IgaGVscFxuIgorbXNnc3RyICJoaWxhbmcgcGVyYW5na2F0IGJsb2ssIGd1bmFrYW4gLWggdW50dWsgYmFudHVhblxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImVsdnR1bmUgaXMgb25seSB1c2VmdWwgb24gb2xkZXIga2VybmVscztcbiIKKyJmb3IgMi42IHVzZSBJTyBzY2hlZHVsZXIgc3lzZnMgdHVuYWJsZXMgaW5zdGVhZC4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJlbHZ0dW5lIGhhbnlhIGJlcmd1bmEgdW50dWsga2VybmFsIGxhbWE7XG4iCisidW50dWsgMi42IGxlYmloIGJhaWsgZ3VuYWthbiBJTyBzY2hlZHVsZXIgc3lzZnMgdHVuZWJsZXMuLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9ybWF0dGluZyAuLi4gIgorbXNnc3RyICJNZW1mb3JtYXQgLi4uIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NDkgZGlzay11dGlscy9mZGZvcm1hdC5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImRvbmVcbiIKK21zZ3N0ciAic2VsZXNhaVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmVyaWZ5aW5nIC4uLiAiCittc2dzdHIgIlZlcmlmaWthc2kgLi4uIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIkJhY2E6ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAiTWFzYWxhaCBkYWxhbSBtZW1iYWNhIGN5bGluZGVyICVkLCBkaXBlcmtpcmFrYW4gJWQsIHRlcmJhY2EgJWRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJiYWQgZGF0YSBpbiBjeWwgJWRcbiIKKyJDb250aW51aW5nIC4uLiAiCittc2dzdHIgIiIKKyJkYXRhIGplbGVrIGRhbGFtIGN5bCAlZFxuIgorIk1lbGFuanV0a2FuIC4uLiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgInBlbmdndW5hYW46ICVzIFsgLW4gXSBwZXJhbmdrYXRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjExOCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg0CisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxODEgZGlzay11dGlscy9ta2ZzLmJmcy5jOjExNCBkaXNrLXV0aWxzL21rZnMuYzo1MgorIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjgxMiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzIKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDg3IG1pc2MtdXRpbHMvZGRhdGUuYzoxNzkgbWlzYy11dGlscy9yZW5hbWUuYzo3OQorIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNDcgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICglcylcbiIKK21zZ3N0ciAiJXMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6IGJ1a2FuIHNlYnVhaCBibG9jayBkZXZpY2VcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVuZW50dWthbiB0aXBlIGZvcm1hdCBzYWF0IGluaSIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlcy1zaWRlZCwgJWQgdHJhY2tzLCAlZCBzZWMvdHJhY2suIFRvdGFsIGNhcGFjaXR5ICVkIGtCLlxuIgorbXNnc3RyICIlcy1zaWRlZCwgJWQgdHJhY2tzLCAlZCBzZWMvdHJhY2suIFRvdGFsIGthcGFzaXRhcyAlZCBrQi5cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIkRvdWJsZSIKK21zZ3N0ciAiUmFuZ2thcCIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIlNpbmdsZSIKK21zZ3N0ciAiU2F0dSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaHZdIFsteCBkaXJdIGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisiIC12ICAgICAgICAgYmUgbW9yZSB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB0byB0ZXN0XG4iCittc2dzdHIgIiIKKyJwZW5nZ3VuYWFuOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgdGFtcGlsa2FuIHBlc2FuIGluaVxuIgorIiAteCBkaXIgICAgIGV4dHJhY3Qga2VkYWxhbSBkaXJla3RvcmlcbiIKKyIgLXYgICAgICAgICBsZWJpaCB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB1bnR1ayBkaXRlc3RcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgInN0YXQgZ2FnYWw6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTY3IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbiBmYWlsZWQ6ICVzIgorbXNnc3RyICJnYWdhbCBtZW1idWthOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBmYWlsZWQ6IHVuYWJsZSB0byBkZXRlcm1pbmUgZGV2aWNlIHNpemU6ICVzIgorbXNnc3RyICJpb2N0bCBnYWdhbDogdGlkYWsgZGFwYXQgbWVuZW50dWthbiB1a3VyYW4gcGVyYW5na2F0OiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4MAorIywgYy1mb3JtYXQKK21zZ2lkICJub3QgYSBibG9jayBkZXZpY2Ugb3IgZmlsZTogJXMiCittc2dzdHIgImJ1a2FuIHNlYnVhaCBwZXJhbmdrYXQgYmxvayBhdGF1IGJlcmthczogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODQgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyNgorbXNnaWQgImZpbGUgbGVuZ3RoIHRvbyBzaG9ydCIKK21zZ3N0ciAicGFuamFuZyBiZXJrYXMgdGVybGFsdSBwZW5kZWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZmFpbGVkOiAlcyIKK21zZ3N0ciAiZ2FnYWwgbWVtYmFjYTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAidGFuZGEgc3VwZXIgYmxvayB0aWRhayBkaXRlbXVrYW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTYKK21zZ2lkICJ1bnN1cHBvcnRlZCBmaWxlc3lzdGVtIGZlYXR1cmVzIgorbXNnc3RyICJMYXlhbmFuIHNpc3RlbSBiZXJrYXMgdGlkYWsgZGlkdWt1bmciCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAic3VwZXJibG9jayBzaXplICglZCkgdG9vIHNtYWxsIgorbXNnc3RyICJ1a3VyYW4gc3VwZXIgYmxvayAoJWQpIHRlcmxhbHUga2VjaWwiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgImJlcmthcyBiZXVrdXJhbiBrb3NvbmciCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogYmVya2FzIG1lbGV3YXRpIGFraGlyIGRhcmkgc2lzdGVtIGJlcmthc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgInBlcmluZ2F0YW46IGZvcm1hdCBjcmFtZnMgbGFtYVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtZXJpa3NhIENSQzogZm9ybWF0IGNyYW1mcyBsYW1hIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjcyIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozMzkKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NzcgbG9naW4tdXRpbHMvY2hmbi5jOjUyOSBsb2dpbi11dGlscy9jaHNoLmM6NDM5CisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE0MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzIxCittc2dpZCAibWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jIGdhZ2FsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjk3Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICJjcmMgZXJyb3IiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjQKK21zZ2lkICJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiCittc2dzdHIgImFrYXIgaW5vZGUgYnVrYW4gc2VidWFoIGRpcmVrdG9yaSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgIm9mc2V0IGFrYXIgYnVydWsgKCVsdSkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozODcKK21zZ2lkICJkYXRhIGJsb2NrIHRvbyBsYXJnZSIKK21zZ3N0ciAiZGF0YSBibG9rIHRlcmxhbHUgYmVzYXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVjb21wcmVzc2lvbiBlcnJvciAlcCglZCk6ICVzIgorbXNnc3RyICJkZWtvbXByZXNpIGVycm9yICVwKCVkKTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICIgIGx1YmFuZyBkaSAlbGQgKCV6ZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyMyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgdW5jb21wcmVzc2luZyBibG9jayBhdCAlbGQgdG8gJWxkICglbGQpXG4iCittc2dzdHIgIiAgbWVuZ2Vrc3RyYWsgYmxvY2sgZGkgJWxkIGtlICVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAiQnVrYW4gYmxvY2sgKCVsZCkgYnl0ZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICJidWthbiB1a3VyYW4gKCVsZCB2cyAlbGQpIGJ5dGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGZhaWxlZDogJXMiCittc2dzdHIgImdhZ2FsIG1lbnVsaXM6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgImxjaG93biBmYWlsZWQ6ICVzIgorbXNnc3RyICJsY2hvd24gZ2FnYWw6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDU4CisjLCBjLWZvcm1hdAorbXNnaWQgImNob3duIGZhaWxlZDogJXMiCittc2dzdHIgImNob3duIGdhZ2FsOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ1dGltZSBnYWdhbDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgImRpcmVrdG9yaSBpbm9kZSBtZW1pbGlraSBvZnNldCBrb3NvbmcgZGFuIHVrdXJhbiB0aWRhayBrb3Nvbmc6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgImdhZ2FsIG1rZGlyOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICJwYW5qYW5nIG5hbWEgYmVya2FzIG5vbCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxNAorbXNnaWQgImJhZCBmaWxlbmFtZSBsZW5ndGgiCittc2dzdHIgInBhbmphbmcgbmFtYSBiZXJrYXMgYnVydWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MjEKK21zZ2lkICJiYWQgaW5vZGUgb2Zmc2V0IgorbXNnc3RyICJvZnNldCBpbm9kZSBidXJ1ayIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUzNworbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplIgorbXNnc3RyICJiZXJrYXMgaW5vZGUgbWVtaWxpa2kgb2ZzZXQgbm9sIGRhbiB1a3VyYW4gYnVrYW4gbm9sIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTQwCittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBzaXplIGFuZCBub24temVybyBvZmZzZXQiCittc2dzdHIgImJlcmthcyBpbm9kZSBtZW1pbGlraSB1a3VyYW4gbm9sIGRhbiBvZnNldCBidWthbiBub2wiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzEKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIKK21zZ3N0ciAibGluayBzaW1ib2xpayBtZW1pbGlraSBvZnNldCBub2wiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzQKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIHNpemUiCittc2dzdHIgImxpbmsgc2ltYm9saWsgbWVtaWxpa2kgdWt1cmFuIG5vbCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICJrZXNhbGFoYW4gdWt1cmFuIGRhbGFtIHN5bWxpbmsgJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJzeW1saW5rIGdhZ2FsOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgImJlcmthcyBzcGVzaWFsIG1lbWlsaWtpIG9mc2V0IGJ1a2FuIG5vbDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlmbyBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgImZpZm8gbWVtaWxpa2kgdWt1cmFuIGJ1a2FuIG5vbDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAic29ja2V0IGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAic29rZXQgbWVtaWxpa2kgdWt1cmFuIGJ1a2FuIG5vbDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAibW9kZSBwYWxzdTogJXMgKCVvKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgYy1mb3JtYXQKK21zZ2lkICJta25vZCBmYWlsZWQ6ICVzIgorbXNnc3RyICJta25vZCBnYWdhbDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorImRpcmVrdG9yaSBkYXRhIGJlcmF3YWwgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBhd2FsICglbGQpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Njg1CisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiCittc2dzdHIgImFraGlyIGRhdGEgZGlyZWt0b3JpICglbGQpICE9IGJlcmthcyBkYXRhIHN0YXJ0ICglbGQpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjkwCittc2dpZCAiaW52YWxpZCBmaWxlIGRhdGEgb2Zmc2V0IgorbXNnc3RyICJvZnNldCBiZXJrYXMgZGF0YSB0aWRhayB2YWxpZCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorbXNnaWQgImZhaWxlZCB0byBhbGxvY2F0ZSBvdXRidWZmZXIiCittc2dzdHIgImdhZ2FsIG1lbmdhbG9rYXNpa2FuIG91dGJ1ZmZlciIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworbXNnaWQgImNvbXBpbGVkIHdpdGhvdXQgLXggc3VwcG9ydCIKK21zZ3N0ciAiZGlrb21waWxlIHRhbnBhIGR1a3VuZ2FuIC14IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCittc2dzdHIgIlBlbmdndW5hYW46ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiJXMgdGVsYWggZGkgbW91bnQuXHQgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjUKK21zZ2lkICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiCittc2dzdHIgIkFwYWthaCBhbmRhIGJlbmFyIC0gYmVuYXIgaW5naW4gbWVsYW5qdXRrYW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICJjaGVjayBhYm9ydGVkLlxuIgorbXNnc3RyICJtZW1iYXRhbGthbiBwZW1lcmlrc2Fhbi5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzQ4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yIDwgRklSU1RaT05FIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIlpvbmUgbnIgPCBGSVJTVFpPTkUgZGFsYW0gZmlsZSBgJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzUyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yID49IFpPTkVTIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIlpvbmUgbnIgPj0gWk9ORVMgZGFsYW0gZmlsZSBgJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiSGFwdXMgYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiUmVhZCBlcnJvcjogdGlkYWsgZGFwYXQgbWVuLXNlZWsga2UgYmxvY2sgZGFsYW0gZmlsZSBgJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIlJlYWQgZXJyb3I6IGJsb2NrIGJ1cnVrIGRhbGFtIGZpbGUgJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyJLZXNhbGFoYW4gaW50ZXJuYWw6IG1lbmNvYmEgdW50dWsgbWVudWxpcyBiYWQgYmxvY2tcbiIKKyJQZXJtaW50YWFuIG1lbnVsaXMgZGlhYmFpa2FuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAic2VlayBnYWdhbCBkYWxhbSB3cml0ZV9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI4CisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRlIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIldyaXRlIGVycm9yOiBiYWQgYmxvY2sgZGFsYW0gZmlsZSAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICJzZWVrIGZhaWxlZCBkYWxhbSB3cml0ZV9zdXBlcl9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVudWxpcyBzdXBlci1ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiVGlkYWsgbWVudWxpcyBwZXRhIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbnVsaXMgcGV0YSB6b25lIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW51bGlzIGlub2RlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTg3Cittc2dpZCAic2VlayBmYWlsZWQiCittc2dzdHIgImdhZ2FsIHNlZWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5MSBkaXNrLXV0aWxzL21rZnMubWluaXguYzozOTkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICJ0aWRhayBtZW5nYWxva2FzaWthbiBwZW55YW5nZ2EgdW50dWsgYmxvayBzdXBlciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTk0Cittc2dpZCAidW5hYmxlIHRvIHJlYWQgc3VwZXIgYmxvY2siCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbWJhY2Egc3VwZXIgYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxMgorbXNnaWQgImJhZCBtYWdpYyBudW1iZXIgaW4gc3VwZXItYmxvY2siCittc2dzdHIgImp1bWxhaCBtYWdpYyB0aWRhayBiYWlrIGRhbGFtIHN1cGVyLWJsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTQKK21zZ2lkICJPbmx5IDFrIGJsb2Nrcy96b25lcyBzdXBwb3J0ZWQiCittc2dzdHIgIkhhbnlhIDFrIGJsb2NrL3pvbmVzIHlhbmcgZGlsYXlhbmkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJmaWVsZCBzX2ltYXBfYmxvY2tzIGJ1cnVrIGRhbGFtIHN1cGVyLWJsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiZmllbGQgc196bWFwX2Jsb2NrIGJ1cnVrIGRhbGFtIHN1cGVyLWJsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjUKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmdhbG9rYXNpa2FuIGJ1ZmZlciB1bnR1ayBwZXRhIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjgKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVuZ2Fsb2thc2lrYW4gYnVmZmVyIHVudHVrIHBldGEgZGFlcmFoICh6b25lIG1hcCkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzMworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVuZ2Fsb2thc2lrYW4gYnVmZmVyIHVudHVrIGlub2RlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjM2Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgY291bnQiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmdhbG9rYXNpa2FuIGJ1ZmZlciB1bnR1ayBtZW5naGl0dW5nIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIGNvdW50IgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5nYWxva2FzaWthbiBidWZmZXIgdW50dWsgbWVuZ2hpdHVuZyB6b25lIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDEKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZSBtYXAiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbWJhY2EgcGV0YSBpbm9kZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbWJhY2EgcGV0YSB6b25lIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDUKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZXMiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbWJhY2EgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIlBlcmluZ2F0YW46IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkIGlub2Rlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIGJsb2Nrc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiWm9uZXNpemU9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIk1heHNpemU9JWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIktlYWRhYW4gZmlsZXN5c3RlbT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjczIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtYXJrZWQgdW51c2VkLCBidXQgdXNlZCBmb3IgZmlsZSAnJXMnXG4iCittc2dzdHIgIklub2RlICVkIGRpdGFuZGFpIHRpZGFrIGRpZ3VuYWthbiwgdGV0YXBpIGRpZ3VuYWthbiB1bnR1ayBmaWxlICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICJkaXRhbmRhaSBzZWRhbmcgZGlndW5ha2FuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIgorbXNnc3RyICJGaWxlIGAlcycgbWVtaWxpa2kgbW9kZSAlMDVvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcwNiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaW5vZGUgY291bnQgdG9vIGJpZy5cbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjoganVtbGFoIGlub2RlIHRlcmxhbHUgYmVzYXIuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NzQKK21zZ2lkICJyb290IGlub2RlIGlzbid0IGEgZGlyZWN0b3J5IgorbXNnc3RyICJyb290IGlub2RlIHRpZGFrIGJlcnVwYSBzZWJ1YWggZGlyZWt0b3JpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3ODggZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiQmxvY2sgdGVsYWggZGlndW5ha2FuIHNlYmVsdW1ueWEuIFNla2FyYW5nIGRhbGFtIGZpbGUgYCVzJy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc5MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjMKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NQorIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjEwCittc2dpZCAiQ2xlYXIiCittc2dzdHIgIkJlcnNpaCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICJCbG9jayAlZCBkYWxhbSBmaWxlIGAlcycgZGkgdGFuZGFpIHRpZGFrIHNlZGFuZyBkaWd1bmFrYW4uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiQmVuYXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiRGlyZWt0b3JpICclcycgYmVyaXNpIGp1bWxhaCBpbm9kZSB5YW5nIGJ1cnVrIHVudHVrIGZpbGUgJyUuKnMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDQKK21zZ2lkICIgUmVtb3ZlIgorbXNnc3RyICIgSGFwdXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKK21zZ3N0ciAiJXM6IGRpcmVrdG9yaSBidXJ1azogJy4nIGJ1a2FuIHlhbmcgcGVydGFtYVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiJXM6IGRpcmVrdG9yaSBidXJ1azogJy4uJyB0aWRhayBrZWR1YVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMTkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAia2VzYWxhaGFuIGludGVybmFsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTA0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiJXM6IGRpcmVrdG9yaSBidXJ1azogdWt1cmFuIDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAiZ2FnYWwgc2VlayBkYWxhbSBiYWRfem9uZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICJNb2RlIElub2RlICVkIHRpZGFrIGRpYmVyc2loa2FuLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjA5CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG5vdCB1c2VkLCBtYXJrZWQgdXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiSW5vZGUgJWQgdGlkYWsgZGlndW5ha2FuLCBkaXRhbmRhaSBkaWd1bmFrYW4gZGFsYW0gYml0bWFwLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIHVzZWQsIG1hcmtlZCB1bnVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIklub2RlICVkIGRpZ3VuYWthbiwgZGl0YW5kYWkgZGlndW5ha2FuIGRhbGFtIGJpdG1hcC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNgorbXNnaWQgIlNldCIKK21zZ3N0ciAiU2V0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJbm9kZSAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgdGVyaGl0dW5nPSVkLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIyCittc2dpZCAiU2V0IGlfbmxpbmtzIHRvIGNvdW50IgorbXNnc3RyICJTZXQgaV9ubGlua3Mga2UganVtbGFoIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIKK21zZ3N0ciAiIgorIlpvbmUgJWQ6IGRpdGFuZGFpIHNlZGFuZyBkaWd1bmFrYW4sIHRpZGFrIGFkYSBmaWxlIHlhbmcgbWVuZ2d1bmFrYW5ueWEuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIlRpZGFrIGRpdGFuZGFpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlpvbmUgJWQ6IHNlZGFuZyBkaWd1bmFrYW4sIHRlcmhpdHVuZz0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbm90IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJab25lICVkOiB0aWRhayBzZWRhbmcgZGlndW5ha2FuLCB0ZXJoaXR1bmc9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorbXNnaWQgImJhZCBpbm9kZSBzaXplIgorbXNnc3RyICJ1a3VyYW4gaW5vZGUgYnVydWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyOTEKK21zZ2lkICJiYWQgdjIgaW5vZGUgc2l6ZSIKK21zZ3N0ciAidWt1cmFuIGlub2RlIHYyIGJ1cnVrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzE3Cittc2dpZCAibmVlZCB0ZXJtaW5hbCBmb3IgaW50ZXJhY3RpdmUgcmVwYWlycyIKK21zZ3N0ciAiYnV0dWggdGVybWluYWwgdW50dWsgaW50ZXJhdGl2ZSByZXBhaXJzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzIxCisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICclcyc6ICVzIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW1idWthICclcyc6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiJXMgYmVyc2loLCB0aWRhayBwZXJsdSBkaWNoZWNrLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcmNpbmcgZmlsZXN5c3RlbSBjaGVjayBvbiAlcy5cbiIKK21zZ3N0ciAiTWVtYWtzYSBwZW1lcmlrc2FhbiBmaWxlc3lzdGVtIGRpICVzLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gb24gJXMgaXMgZGlydHksIG5lZWRzIGNoZWNraW5nLlxuIgorbXNnc3RyICJGaWxlc3lzdGVtIGRpICVzIGtvdG9yLCBwZXJsdSB1bnR1ayBkaWNoZWNrLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2bGQgaW5vZGVzIGRpZ3VuYWthbiAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTZsZCB6b25lcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiJTZsZCB6b25lcyBkaWd1bmFrYW4gKCVsZCUlKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmQgcmVndWxhciBmaWxlc1xuIgorIiU2ZCBkaXJlY3Rvcmllc1xuIgorIiU2ZCBjaGFyYWN0ZXIgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGJsb2NrIGRldmljZSBmaWxlc1xuIgorIiU2ZCBsaW5rc1xuIgorIiU2ZCBzeW1ib2xpYyBsaW5rc1xuIgorIi0tLS0tLVxuIgorIiU2ZCBmaWxlc1xuIgorbXNnc3RyICIiCisiXG4iCisiJTZkIHJlZ3VsYXIgZmlsZXNcbiIKKyIlNmQgZGlyZWt0b3JpZXNcbiIKKyIlNmQgY2hhcmFjdGVyIGRldmljZSBmaWxlc1xuIgorIiU2ZCBibG9jayBkZXZpY2UgZmlsZXMlNmQgbGlua3NcbiIKKyIlNmQgc3ltYm9saWMgbGlua3NcbiIKKyItLS0tLS1cbiIKKyIlNmQgZmlsZXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkZJTEUgU1lTVEVNIEhBUyBCRUVOIENIQU5HRURcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBGSUxFIFNZU1RFTSBURUxBSCBCRVJVQkFIIFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IGdhZ2FsIHVudHVrIG1lbWJ1a2E6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogc2VlayBlcnJvciBkaSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGVycm9yIG1lbWJhY2EgZGkgJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvciBjb3VudDogJWQsIHNlY3RvciBzaXplOiAlZFxuIgorbXNnc3RyICJzZWN0b3IgdGVyaGl0dW5nOiAlZCwgc2VjdG9yIHNpemU6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiBvcHRpb24gcGFyc2UgZXJyb3JcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorbXNnc3RyICJQZW5nZ3VuYWFuOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXZdIFstTiBuci1vZi1pbm9kZXNdIFstViB2b2x1bWUtbmFtZV1cbiIKKyIgICAgICAgWy1GIGZzbmFtZV0gZGV2aWNlIFtibG9jay1jb3VudF1cbiIKK21zZ3N0ciAiIgorIlBlbmdndW5hYW46ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIG5hbWEtdm9sdW1lXVxuIgorIiAgICAgICAgICAgIFstRiBmc25hbWVdIHBlcmFuZ2thdCBbYmxvY2stY291bnRdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAibmFtYSB2b2x1bWUgdGVybGFsdSBwYW5qYW5nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgImZzbmFtZSBuYW1hIHRlcmxhbHUgcGFuamFuZyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBkZXZpY2UgJXMiCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbXBlcm9sZWggc3RhdGlzdGlrIHBlcmFuZ2thdCAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBibG9jayBzcGVjaWFsIGRldmljZSIKK21zZ3N0ciAiJXMgYnVrYW4gc2VidWFoIHBlcmFuZ2thdCBibG9jayBzcGVzaWFsIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtYnVrYSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbXBlcm9sZWggdWt1cmFuIGRhcmkgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgImJsb2NrIGFyZ3VtZW50IHRlcmxhbHUgYmVzYXIsIG1ha3NpbWFsIGFkYWxhaCAlbGx1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjAyCittc2dpZCAidG9vIG1hbnkgaW5vZGVzIC0gbWF4IGlzIDUxMiIKK21zZ3N0ciAidGVybGFsdSBiYW55YWsgaW5vZGVzIC0gbWFrc2ltYWwgYWRhbGFoIDUxMiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlLCBuZWVkIGF0IGxlYXN0ICVsbHUgYmxvY2tzIgorbXNnc3RyICJydWFuZyB0aWRhayBjdWt1cCwgYnV0dWggcGFsaW5nIHRpZGFrICVsbHUgYmxvayIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICJQZXJhbmdrYXQ6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVm9sdW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiVm9sdW1lOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNQorIywgYy1mb3JtYXQKK21zZ2lkICJGU25hbWU6IDwlLTZzPlxuIgorbXNnc3RyICJGU25hbWU6IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrU2l6ZTogJWRcbiIKK21zZ3N0ciAiQmxvY2tTaXplOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluIDEgYmxvY2spXG4iCittc2dzdHIgIklub2RlczogJWQgKGRhbGFtIDEgYmxvY2spXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gJWxsZCBibG9ja3MpXG4iCittc2dzdHIgIklub2RlczogJWQgKGRhbGFtICVsbGQgYmxvaylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja3M6ICVsbGRcbiIKK21zZ3N0ciAiQmxvazogJWxsZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlIGVuZDogJWQsIERhdGEgZW5kOiAlZFxuIgorbXNnc3RyICJJbm9kZSBha2hpcjogJWQsIERhdGEgYWtoaXI6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgImVycm9yIG1lbnVsaXMgc3VwZXJibG9rIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjU5Cittc2dpZCAiZXJyb3Igd3JpdGluZyByb290IGlub2RlIgorbXNnc3RyICJlcnJvciBtZW51bGlzIGlub2RlIHJvb3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjQKK21zZ2lkICJlcnJvciB3cml0aW5nIGlub2RlIgorbXNnc3RyICJlcnJvciBtZW51bGlzIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAic2VlayBlcnJvciIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3MworbXNnaWQgImVycm9yIHdyaXRpbmcgLiBlbnRyeSIKK21zZ3N0ciAiZXJyb3IgbWVudWxpcyAuIGVudHJ5IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6Mjc3Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAiZXJyb3IgbWVudWxpcyAuLiBlbnRyeSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjbG9zaW5nICVzIgorbXNnc3RyICJlcnJvciBtZW51dHVwICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogbWtmcyBbLVZdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBkZXZpY2UgW3NpemVdXG4iCittc2dzdHIgIlBlbmdndW5hYW46IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo4OCBkaXNrLXV0aWxzL21rZnMuYzo5NiBmZGlzay9jZmRpc2suYzozNTMKKyM6IGdldG9wdC9nZXRvcHQuYzo4NiBnZXRvcHQvZ2V0b3B0LmM6OTYgbG9naW4tdXRpbHMvd2FsbC5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT3V0IG9mIG1lbW9yeSFcbiIKK21zZ3N0ciAiJXM6IEtlaGFiaXNhbiBtZW1vcmkhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICJta2ZzICglcylcbiIKK21zZ3N0ciAibWtmcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisicGVuZ2d1bmFhbjogJXMgWy1oXSBbLXZdIFstYiBibGtzaXplXSBbLWUgZWRpdGlvbl0gWy1OIGVuZGlhbl0gWy1pIGZpbGVdIFstbiAiCisibmFtZV0gZGlybmFtZSBvdXRmaWxlXG4iCisiIC1oICAgICAgICAgdGFtcGlsa2FuIGJhbnR1YW4gaW5pXG4iCisiIC12ICAgICAgICAgbWVuamFkaSBsZWJpaCB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWVtYnVhdCBzZW11YSBwZXJpbmdhdGFuIG1lbmphZGkgZXJyb3JzIChzdGF0dXMgZXhpdCB5YW5nIHRpZGFrICIKKyJub2wpXG4iCisiIC1iIGJsa3NpemUgbWVuZ2d1bmFrYW4gdWt1cmFuIGJsa3N6LCBoYXJ1cyBzYW1hIGRlbmdhbiB1a3VyYW4gcGFnZVxuIgorIiAtZSBlZGl0aW9uIG1lbnNldCBub21vciBlZGlzaSAoYmFnaWFuIGRhcmkgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgdGlwZSBlbmRpYW4gZGFyaSBjcmFtZnMgKGJpZ3xsaXR0bGV8aG9zdCksIGJha3UgaG9zdFxuIgorIiAtaSBmaWxlICAgIG1lbWFzdWtrYW4gZmlsZSBpbWFnZSBrZWRhbGFtIGZpbGVzeXN0ZW0gKGJ1dHVoIGtlcm5lbCA+PSAiCisiMi40LjApXG4iCisiIC1uIG5hbWUgICAgbWVuc2V0IG5hbWEgZGFyaSBmaWxlc3lzdGVtIGNyYW1mc1xuIgorIiAtcCAgICAgICAgIHBhZCBkZW5nYW4gJWQgYnl0ZXMgZGFyaSBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IG1hc3VrYW4gZGlyZWt0b3JpIChwaWxpaGFuIGxhbWEsIGRpYWJhaWthbilcbiIKKyIgLXogICAgICAgICBtZW1idWF0IGxvYmFuZyBzZWNhcmEgZWtzcGxpc2l0IChidXR1aCBrZXJuZWwgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIGFrYXIgZGFyaSBmaWxlc3lzdGVtIHlhbmcgYWthbiBkaSBrb21wcmVzc1xuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIlNhbmdhdCBwYW5qYW5nICglenUgYnl0ZXMpIG5hbWEgYmVya2FzIGAlcycgZGl0ZW11a2FuLlxuIgorIlRvbG9uZyB0aW5na2F0a2FuIE1BWF9JTlBVVF9OQU1FTEVOIGRpIG1rY3JhbWZzLmMgZGFuIHJlY29tcGlsZS4gS2VsdWFyLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImZpbGVzeXN0ZW0gdG9vIGJpZy4gIEV4aXRpbmcuXG4iCittc2dzdHIgImZpbGVzeXN0ZW0gdGVybGFsdSBiZXNhcnIuIEtlbHVhci5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIkFJRUVFOiBibG9jayBcImNvbXByZXNzZWRcIiBtZW5qYWRpID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ3Vlc3RpbWF0ZSBvZiByZXF1aXJlZCBzaXplICh1cHBlciBib3VuZCkgaXMgJWxsZE1CLCBidXQgbWF4aW11bSAiCisiaW1hZ2Ugc2l6ZSBpcyAldU1CLiAgV2UgbWlnaHQgZGllIHByZW1hdHVyZWx5LlxuIgorbXNnc3RyICIiCisicGVyaW5nYXRhbjogcGVya2lyYWFuIGRhcmkgdWt1cmFuIHlhbmcgZGlidXR1aGthbiAoYmF0YXMgYXRhcykgYWRhbGFoICUiCisibGxkTUIsIHRldGFwaSBtYWtzaW1hbCB1a3VyYW4gaW1hZ2UgYWRhbGFoICV1TUIuIEtpdGEgbXVuZ2tpbiBha2FuIG1hdGkgIgorInNlY2FyYSBwcmVtYXR1cmUuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4ODAKK21zZ2lkICJST00gaW1hZ2UgbWFwIgorbXNnc3RyICJwZXRhIGltYWdlIFJPTSIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJJbmNsdWRpbmc6ICVzXG4iCittc2dzdHIgIlRlcm1hc3VrOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpcmVjdG9yeSBkYXRhOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiRGF0YSBkaXJla3Rvcmk6ICV6ZCBieXRlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkV2ZXJ5dGhpbmc6ICV6ZCBraWxvYnl0ZXNcbiIKK21zZ3N0ciAiU2VsdXJ1aG55YTogJXpkIGtpbG9ieXRlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN1cGVyIGJsb2NrOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiU3VwZXIgYmxvazogJXpkIGJ5dGVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICJDUkM6ICV4XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICIiCisidGlkYWsgY3VrdXAgcnVhbmcgdW50dWsgbWVuZ2Fsb2thc2lrYW4gaW1hZ2UgUk9NICglbGxkIHRlcmFsb2thc2ksICV6dSAiCisiZGlndW5ha2FuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTMzCittc2dpZCAiUk9NIGltYWdlIgorbXNnc3RyICJpbWFnZSBST00iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiZ2FnYWwgbWVudWxpcyBpbWFnZSBST00gKCV6ZCAlemQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZW5hbWVzIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMuXG4iCittc2dzdHIgInBlcmluZ2F0YW46IGZpbGVuYW1lcyBkaWtlY2lsa2FuIG1lbmphZGkgMjU1IGJ5dGVzLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZXJyb3JzLlxuIgorbXNnc3RyICJwZXJpbmdhdGFuOiBmaWxlIGRpbGV3YXRpIGthcmVuYSBhZGEgZXJyb3IuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgInBlcmluZ2F0YW46IHVrdXJhbiBmaWxlIGRpa2VjaWxrYW4gbWVuamFkaSAlbHVNQiAoa3VyYW5nIDEgYnl0ZSkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IHVpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorIlBlcmluZ2F0YW46IHVpZHMgZGlwb3RvbmcgbWVuamFkaSAldSBiaXRzLiAoSW5pIG11bmdraW4gbWVydXBha2FuIG1hc2FsYWggIgorImtlYW1hbmFuLilcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ2lkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisiUGVyaW5nYXRhbjogZ2lkcyBkaXBvdG9uZyBtZW5qYWRpICV1IGJpdHMuIChJbmkgbXVuZ2tpbiBtZXJ1cGFrYW4gbWFzYWxhaCAiCisia2VhbWFuYW4uKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorIlBFUklOR0FUQU46IG5vbW9yIHBlcmFuZ2thdCBkaXBvdG9uZyBtZW5qYWRpICV1IGJpdHMuIEluaSBtdW5na2luIGJlcmFydGlcbiIKKyJiZWJlcmFwYSBkZXZpY2UgZmlsZXMgbXVuZ2tpbiBzYWxhaC5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWMgfCAtbCBmaWxlbmFtZV0gWy1uWFhdIFstaVhYXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiUGVuZ2d1bmFhbjogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiJXMgdGVyLW1vdW50OyB0aWRhayBha2FuIG1lbWJ1YXQgZmlsZXN5c3RlbSBoZXJlISIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTg4Cittc2dpZCAic2VlayB0byBib290IGJsb2NrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgInNlZWsgdW50dWsgYm9vdCBibG9jayBnYWdhbCBkYWxhbSB3cml0ZV90YWJsZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MAorbXNnaWQgInVuYWJsZSB0byBjbGVhciBib290IHNlY3RvciIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtYmVyc2loa2FuIGJvb3Qgc2VjdG9yIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTIKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgInNlZWsgZ2FnYWwgZGFsYW0gd3JpdGVfdGFibGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTYKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW51bGlzIGlub2RlIG1hcCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk4Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW51bGlzIHpvbmUgbWFwIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDAKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW51bGlzIGlub2RlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA5Cittc2dpZCAid3JpdGUgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJnYWdhbCBtZW51bGlzIGRhbGFtIHdyaXRlX2Jsb2NrIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMTcgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjkxCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzozNDAKK21zZ2lkICJ0b28gbWFueSBiYWQgYmxvY2tzIgorbXNnc3RyICJ0ZXJsYWx1IGJhbnlhayBiYWQgYmxvY2tzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMjUKK21zZ2lkICJub3QgZW5vdWdoIGdvb2QgYmxvY2tzIgorbXNnc3RyICJ0aWRhayBjdWt1cCBnb29kIGJsb2NrcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQwCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiCittc2dzdHIgInRpZGFrIG1lbmdhbG9rYXNpa2FuIGJ1ZmZlciB1bnR1ayBtYXBzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbmdhbG9rYXNpa2FuIGJ1ZmZlciB1bnR1ayBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTWF4c2l6ZT0lbGRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVrdXJhbiBNYWtzaW1hbD0lbGRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDY5Cittc2dpZCAic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIgorbXNnc3RyICJzZWVrIGdhZ2FsIHNlbGFtYSBwZW5nZXRlc2FuIGJsb2NrcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICJOaWxhaSBhbmVoIGRhbGFtIGRvX2NoZWNrOiBtdW5na2luIGJ1Z3NcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTA4IGRpc2stdXRpbHMvbWtzd2FwLmM6MzE1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gY2hlY2tfYmxvY2tzIgorbXNnc3RyICJzZWVrIGdhZ2FsIGRhbGFtIGNoZWNrX2Jsb2NrcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTE3Cittc2dpZCAiYmFkIGJsb2NrcyBiZWZvcmUgZGF0YS1hcmVhOiBjYW5ub3QgbWFrZSBmcyIKK21zZ3N0ciAiYmFkIGJsb2NrcyBzZWJlbHVtIGRhZXJhaCBkYXRhOiB0aWRhayBkYXBhdCBtZW1idWFrIGZzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWQgYmFkIGJsb2Nrc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAic2F0dSBiYWQgYmxvY2tcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbWJ1a2EgZmlsZSBkYXJpIGJhZCBibG9ja3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWRibG9jayBudW1iZXIgaW5wdXQgZXJyb3Igb24gbGluZSAlZFxuIgorbXNnc3RyICJiYWRibG9jayBub21vciBtYXN1a2FuIGVycm9yIGRpIGJhcmlzICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0MAorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1iYWNhIGJlcmthcyBibG9rIGJ1cnVrIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgInN0cnRvbCBlcnJvcjoganVtbGFoIGRhcmkgYmxvY2sgdGlkYWsgZGlzcGVzaWZpa2FzaWthbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBzdGF0ICVzIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW1wZXJvbGVoIHN0YXRpc3RpayAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW1idWthICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzZWN0b3Igc2l6ZSBmb3IgJXMiCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbmVudHVrYW4gdWt1cmFuIHNla3RvciBkYXJpICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgInVrdXJhbiBibG9rIGxlYmloIGtlY2lsIGRhcmkgdWt1cmFuIHNla3RvciBmaXNpayBkYXJpICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzaXplIG9mICVzIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW5lbnR1a2FuIHVrdXJhbiBkYXJpICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICJ0aWRhayBha2FuIG1lbmNvYmEgdW50dWsgbWVtYnVhdCBmaWxlc3lzdGVtIHBhZGEgJyVzJyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjY1Cittc2dpZCAibnVtYmVyIG9mIGJsb2NrcyB0b28gc21hbGwiCittc2dzdHIgIkp1bWxhaCBkYXJpIGJsb2sgdGVybGFsdSBrZWNpbCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICJVa3VyYW4gcGFnZSAlZCB5YW5nIGRpc3Blc2lmaWthc2lrYW4gcGVuZ2d1bmEgdGlkYWsgYmFpa1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWQsIGluc3RlYWQgb2YgdGhlIHN5c3RlbSB2YWx1ZSAlZFxuIgorbXNnc3RyICIiCisiTWVuZ2d1bmFrYW4gdWt1cmFuIHBhZ2UgJWQgeWFuZyBkaXNwZXNpZmlrYXNpa2FuIHBlbmdndW5hLCBkYXJpIHBhZGEgIgorIm1lbmdndW5ha2FuIHVrdXJhbiBzeXN0ZW0gJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHN3YXAgaGVhZGVyIHNpemUsIG5vIGxhYmVsIHdyaXR0ZW4uXG4iCittc2dzdHIgIlVrdXJhbiBzd2FwIGhlYWRlciB0aWRhayBiYWlrLCBsYWJlbCB0aWRhayBha2FuIGRpdHVsaXMuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxhYmVsIHdhcyB0cnVuY2F0ZWQuXG4iCittc2dzdHIgIkxhYmVsIHRlbGFoIGRpcG90b25nLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICJ0aWRhayB0ZXJkYXBhdCBsYWJlbCwgIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1dWlkXG4iCittc2dzdHIgInRpZGFrIGFkYSB1dWlkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIlBlbmdndW5hYW46ICVzIFstY10gWy1wUEFHRVNaXSBbLUwgbGFiZWxdIFstVSBVVUlEXSAvZGV2L25hbWUgW2Jsb2tdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICJ0ZXJsYWx1IGJhbnlhayBwYWdlcyB5YW5nIGJ1cnVrIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiS2VrdXJhbmdhbiBtZW1vcnkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICJzZWJ1YWggcGFnZSBidXJ1a1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVsdSBwYWdlIGJ1cnVrXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDAyIGRpc2stdXRpbHMvbWtzd2FwLmM6NDM5IGRpc2stdXRpbHMvbWtzd2FwLmM6NjU5Cittc2dpZCAidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVyZXdpbmQgcGVyYW5na2F0IHN3YXAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCittc2dpZCAidW5hYmxlIHRvIGFsbG9jIG5ldyBsaWJibGtpZCBwcm9iZSIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVuZ2Fsb2thc2lrYW4gcHJvYmUgbGliYmxraWQgYmFydSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTUKK21zZ2lkICJ1bmFibGUgdG8gYXNzaWduIGRldmljZSB0byBsaWJsa2lkIHByb2JlIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW5lbXBhdGthbiBwZXJhbmdrYXQga2UgcGVuZWxpdGlhbiBsaWJsa2lkIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0MworbXNnaWQgInVuYWJsZSB0byBlcmFzZSBib290Yml0cyBzZWN0b3JzIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW5naGFwdXMgc2VrdG9yIGJvb3RiaXRzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHdhcm5pbmc6IGRvbid0IGVyYXNlIGJvb3RiaXRzIHNlY3RvcnNcbiIKK21zZ3N0ciAiJXM6ICVzOiBwZXJpbmdhdGFuOiBqYW5nYW4gaGFwdXMgc2VrdG9yIGJvb3RiaXRzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKCVzIHBhcnRpdGlvbiB0YWJsZSBkZXRlY3RlZCkuICIKK21zZ3N0ciAiICAgICAgICAoJXMgdGFiZWwgcGFydGlzaSB0ZXJkZXRla3NpKS4gIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiICAgICAgICBkaXNlbHVydWggZGlzay4gIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICAgICAgIChkaWtvbXBpbGFzaSB0YW5wYSBsaWJibGtpZCkuICIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTEkczogd2FybmluZzogaWdub3JlIC1VIChVVUlEcyBhcmUgdW5zdXBwb3J0ZWQgYnkgJTEkcylcbiIKK21zZ3N0ciAiJTEkczogcGVyaW5nYXRhbjogbWVuZ2FiYWlrYW4gLVUgKFVVSURzIHRpZGFrIGRpZHVrdW5nIG9sZWggJTEkcylcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IHN1cHBvcnQgc3dhcHNwYWNlIHZlcnNpb24gJWQuXG4iCittc2dzdHIgIiVzOiB0aWRhayBtZW5kdWt1bmcgdmVyc2kgc3dhcHNhcGNlICVkLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0OAorbXNnaWQgImVycm9yOiBVVUlEIHBhcnNpbmcgZmFpbGVkIgorbXNnc3RyICJlcnJvcjogVVVJRCBwYXJzaW5nIGdhZ2FsIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IE5vd2hlcmUgdG8gc2V0IHVwIHN3YXAgb24/XG4iCittc2dzdHIgIiVzOiBlcnJvcjogVGlkYWsgYWRhIHRlbXBhdCB1bnR1ayBtZW5zZXQgc3dhcD9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiIKKyIlczogZXJyb3I6IHVrdXJhbiAlbGx1IEtpQiBsZWJpaCBiZXNhciBkYXJpIHVrdXJhbiBwZXJhbmdrYXQgJWxsdSBLaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzd2FwIGFyZWEgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJWxkIEtpQlxuIgorbXNnc3RyICIlczogZXJyb3I6IGRhZXJhaCBzd2FwIG1lbWJ1dHVoa2FuIHNldGlkYWtueWEgJWxkIGtpQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FybmluZzogdHJ1bmNhdGluZyBzd2FwIGFyZWEgdG8gJWxsdSBLaUJcbiIKK21zZ3N0ciAiJXM6IHBlcmluZ2F0YW46IG1lbW90b25nIGRhZXJhaCBzd2FwIG1lbmphZGkgJWxsdSBraUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiB3aWxsIG5vdCB0cnkgdG8gbWFrZSBzd2FwZGV2aWNlIG9uICclcydcbiIKK21zZ3N0ciAiJXM6IGVycm9yOiBUaWRhayBha2FuIG1lbmNvYmEgdW50dWsgbWVtYnVhdCBwZXJhbmdrYXQgc3dhcCBkaSAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBzd2Fwc3BhY2UuXG4iCittc2dzdHIgIiVzOiBlcnJvcjogJXMgdGVyLW1vdW50OyB0aWRhayBha2FuIG1lbWJ1YXQgc3dhcHNwYWNlLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVuIHNldC11cCBzd2FwLXNwYWNlOiB0aWRhayBkYXBhdCBkaWJhY2EiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIk1lbWJ1YXQgc3dhcHNwYWNlIHZlcnNpIDEsIHVrdXJhbiA9ICVsbHUga2lCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiJXM6ICVzOiB0aWRhayBkYXBhdCBtZW51bGlzIHBhZ2Ugc2lnbmF0dXJlOiAlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NzMKK21zZ2lkICJmc3luYyBmYWlsZWQiCittc2dzdHIgImZzeW5jIGdhZ2FsIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIlczogJXM6IHRpZGFrIGRhcGF0IG1lbXBlcm9sZWggc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MAorbXNnaWQgInVuYWJsZSB0byBtYXRjaHBhdGhjb24oKSIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVsYWt1a2FuIG1hdGNocGF0aGNvbigpIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MworbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgbmV3IHNlbGludXggY29udGV4dCIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtYnVhdCBjb250ZXh0IHNlbGludXggYmFydSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTUKK21zZ2lkICJjb3VsZG4ndCBjb21wdXRlIHNlbGludXggY29udGV4dCIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVuZW50dWthbiBjb250ZXh0IHNlbGludXgiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NzAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiJXM6IHRpZGFrIGRhcGF0IG1lbmdnYW50aSBuYW1hICVzIG1lbmphZGkgJXM6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiAgJXMgIgorbXNnc3RyICIiCisiUGVuZ2d1bmFhbjpcbiIKKyIgICVzICIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKyJQZXJhbmdrYXQgJyVzJyBhZGFsYWggcGVyYW5na2F0IGtvbnRyb2wgcmF3IChndW5ha2FuIHJhdzxOPiBkaW1hbmEgPE4+IGxlYmloICIKKyJiZXNhciBkYXJpIG5vbClcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSBibG9jayBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbG9rYXNpa2FuIHBlcmFuZ2thdCBibG9rICclcycgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSBibG9jayBkZXZcbiIKK21zZ3N0ciAiUGVyYW5na2F0ICclcycgYnVrYW4gc2VidWFoIHBlcmFuZ2thdCBibG9rXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIG1hc3RlciByYXcgZGV2aWNlICciCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbWJ1a2EgcGVyYW5na2F0IG1hc3RlciByYXcgJyIKKworIzogZGlzay11dGlscy9yYXcuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW5nYWxva2FzaWthbiBwZXJhbmdrYXQgcmF3ICclcycgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICJQZXJhbmdrYXQgcmF3ICclcycgYnVrYW4gc2VidWFoIHBlcmFuZ2thdCBrYXJha3RlclxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSByYXcgZGV2XG4iCittc2dzdHIgIlBlcmFuZ2thdCAnJXMnIGJ1a2FuIHNlYnVhaCBwZXJhbmdrYXQgcmF3XG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHF1ZXJ5aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICJFcnJvciBtZW5hbnlha2FuIHBlcmFuZ2thdCByYXcgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICJyYXclZDpcdHRlcmlrYXQga2UgbWFqb3IgJWQsIG1pbm9yICVkXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHNldHRpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIkVycm9yIG1lbmdrb25maWd1cmFzaSBwZXJhbmdrYXQgcmF3ICglcylcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzc4IGZkaXNrL2NmZGlzay5jOjIwODMKK21zZ2lkICJVbnVzYWJsZSIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgZGlndW5ha2FuIgorCisjOiBmZGlzay9jZmRpc2suYzozODAgZmRpc2svY2ZkaXNrLmM6MjA4NQorbXNnaWQgIkZyZWUgU3BhY2UiCittc2dzdHIgIlNwYWNlIGtvc29uZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgzCittc2dpZCAiTGludXggZXh0MiIKK21zZ3N0ciAiTGludXggZXh0MiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg1Cittc2dpZCAiTGludXggZXh0MyIKK21zZ3N0ciAiTGludXggZXh0MyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg3Cittc2dpZCAiTGludXggWEZTIgorbXNnc3RyICJMaW51eCBGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBKRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIkRpc2sgc3VkYWggYmVydWJhaC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYm9vdCB0aGUgc3lzdGVtIHRvIGVuc3VyZSB0aGUgcGFydGl0aW9uIHRhYmxlIGlzIGNvcnJlY3RseSB1cGRhdGVkLlxuIgorbXNnc3RyICIiCisiUmVib290IGtvbXB1dGVyIGFuZGEgdW50dWsgbWVtYXN0aWthbiB0YWJlbCBwYXJ0aXNpIHRlbGFoIGJlbmFyIC0gYmVuYXIgZGktIgorInVwZGF0ZS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQRVJJTkdBVEFOOiBKaWthIGFuZGEgbWVtYnVhdCBhdGF1IG1lbW9kaWZpa2FzaSBwYXJ0aXNpIFxuIgorIkRPUyA2LngsIHRvbG9uZyBsaWhhdCBtYW51YWwgZGFyaSBjZmRpc2sgdW50dWsgaW5mb3JtYXNpIFxuIgorImxlYmloIGxhbmp1dC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIkZBVEFMIEVSUk9SIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTcKK21zZ2lkICJQcmVzcyBhbnkga2V5IHRvIGV4aXQgY2ZkaXNrIgorbXNnc3RyICJUZWthbiB0b21ib2wgbWFuYXB1biB1bnR1ayBrZWx1YXIgZGFyaSBjZmRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NCBmZGlzay9jZmRpc2suYzo1NzIKK21zZ2lkICJDYW5ub3Qgc2VlayBvbiBkaXNrIGRyaXZlIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5jYXJpIGRpIGRpc2sgZHJpdmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbWJhY2EgZGlzayBkcml2ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbnVsaXMgZGlzayBkcml2ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTE3Cittc2dpZCAiVG9vIG1hbnkgcGFydGl0aW9ucyIKK21zZ3N0ciAiVGVybGFsdSBiYW55YWsgcGFydGlzaSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTIyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIlBhcnRpc2kgbXVsYWkgc2ViZWx1bSBzZWt0b3IgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTI3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJQYXJ0aXNpIGJlcmFraGlyIHNlYmVsdW0gc2VrdG9yIDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIlBhcnRpc2kgbXVsYWkgc2VzdWRhayBha2hpciBkYXJpIGRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJQYXJ0aXNpIGJlcmFraGlyIHNlc3VkYWggYWtoaXIgZGFyaSBkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzo5NDIKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBpbiB0aGUgZmluYWwgcGFydGlhbCBjeWxpbmRlciIKK21zZ3N0ciAiUGFydGlzaSBiZXJha2hpciBkaSB1anVuZyBzZWJhZ2lhbiBjeWxpbmRlciIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY2Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG5vdCBpbiBkaXNrIG9yZGVyIgorbXNnc3RyICJwYXJ0aXNpIGxvZ2ljYWwgdGlkYWsgZGFsYW0gdXJ1dGFuIGRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2OQorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJwYXJ0aXNpIGxvZ2ljYWwgc2FsaW5nIGJlcm92ZXJsYXAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJtZW1wZXJiZXNhciBwYXJ0aXNpIGxvZ2ljYWwgeWFuZyBzYWxpbmcgYmVyb3ZlcmxhcCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAwMworbXNnaWQgIiIKKyIhISEhIEludGVybmFsIGVycm9yIGNyZWF0aW5nIGxvZ2ljYWwgZHJpdmUgd2l0aCBubyBleHRlbmRlZCBwYXJ0aXRpb24gISEhISIKK21zZ3N0ciAiIgorIiEhISEgS2VzYWxhaGFuIGludGVybmFsIG1lbWJ1YXQgZHJpdmUgbG9naWNhbCBkZW5nYW4gdGlkYWsgbWVuZ2d1bmFrYW4gIgorInBhcnRpc2kgZXh0ZW5kZWQgISEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAxNCBmZGlzay9jZmRpc2suYzoxMDI2Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbG9naWNhbCBkcml2ZSBoZXJlIC0tIHdvdWxkIGNyZWF0ZSB0d28gZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorIlRpZGFrIGRhcGF0IG1lbWJ1YXQgZHJpdmUgbG9naWNhbCBkaXNpbmkgLS0gYXBha2FoIGFuZGEgYWthbiBtZW1idWF0IGR1YSAiCisicGFydGlzaSBleHRlbmRlZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICJNZW51IGl0ZW0gdGVybGFsdSBwYW5qYW5nLiBNZW51IG11bmdraW4ga2VsaWhhdGFuIGphbmdnYWwuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMjI0Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiTWVudSB0YW5wYSBkaXJla3NpLiBEZWZhdWx0IGtlIGFyYWggaG9yaXNvbnRhbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAiS3VuY2kgdGlkYWsgdmFsaWQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNzkKK21zZ2lkICJQcmVzcyBhIGtleSB0byBjb250aW51ZSIKK21zZ3N0ciAiVGVrYW4gc2VidWFoIHRvbWJvbCB1bnR1ayBtZWxhbmp1dGthbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNiBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODYKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJQcmltYXJ5IgorbXNnc3RyICJVdGFtYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNgorbXNnaWQgIkNyZWF0ZSBhIG5ldyBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiQnVhdCBzZWJ1YWggcGFydGlzaSBwcmltYXJ5IGJhcnUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg1CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiTG9naWNhbCIKK21zZ3N0ciAiTG9naWNhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNworbXNnaWQgIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiQnVhdCBzZWJ1YWggcGFydGlzaSBsb2dpY2FsIGJhcnUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MyBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiQ2FuY2VsIgorbXNnc3RyICJCYXRhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICJKYW5nYW4gbWVtYnVhdCBzZWJ1YWggcGFydGlzaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NAorbXNnaWQgIiEhISBJbnRlcm5hbCBlcnJvciAhISEiCittc2dzdHIgIiEhISBLZXNhbGFoYW4gaW50ZXJuYWwgISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ3Cittc2dpZCAiU2l6ZSAoaW4gTUIpOiAiCittc2dzdHIgIlVrdXJhbiAoZGFsYW0gTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIkRpYXdhbGkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJUYW1iYWhrYW4gcGFydGlzaSBkaSBhd2FsIHJ1YW5nIGtvc29uZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkVuZCIKK21zZ3N0ciAiQWtoaXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJUYW1iYWhrYW4gcGFydGlzaSBkaSBha2hpciBydWFuZyBrb3NvbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICJUaWRhayBhZGEgdGVtcGF0IHVudHVrIG1lbWJ1YXQgcGFydGlzaSBleHRlbmRlZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3NAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiVGlkYWsgYWRhIHRhYmVsIHBhcnRpc2kuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzgKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuIFN0YXJ0aW5nIHdpdGggemVybyB0YWJsZS4iCittc2dzdHIgIlRpZGFrIGFkYSB0YWJlbCBwYXJ0aXNpLCBEaW11bGFpIGRlbmdhbiB0YWJlbCBub2wuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlNpZ25hdHVyZSB0aWRhayBzZXN1YWkgZGkgdGFiZWwgcGFydGlzaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorbXNnaWQgIlVua25vd24gcGFydGl0aW9uIHRhYmxlIHR5cGUiCittc2dzdHIgIlRpcGUgdGFiZWwgcGFydGlzaSB0aWRhayBkaWtldGFodWkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTQKK21zZ2lkICJEbyB5b3Ugd2lzaCB0byBzdGFydCB3aXRoIGEgemVybyB0YWJsZSBbeS9OXSA/IgorbXNnc3RyICJBcGFrYW4gYW5kYSBpbmdpbiBtZW11bGFpIGRlbmdhbiB0YWJlbCBub2wgW3kvTl0gPyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAiQW5kYSBtZW5zcGVzaWZpa2FzaWthbiBjeWxpbmRlciB5YW5nIGxlYmloIGJlc2FyIGRhcmkgdWt1cmFuIGRpIGRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzQKK21zZ2lkICJDYW5ub3Qgb3BlbiBkaXNrIGRyaXZlIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1idWthbiBkaXNrIGRyaXZlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc2IGZkaXNrL2NmZGlzay5jOjE4NjUKK21zZ2lkICJPcGVuZWQgZGlzayByZWFkLW9ubHkgLSB5b3UgaGF2ZSBubyBwZXJtaXNzaW9uIHRvIHdyaXRlIgorbXNnc3RyICJEaXNrIHRlcmJ1a2EgaGFueWEtYmFjYSAtIGFuZGEgdGlkYWsgbWVtcHVueWFpIGlqaW4gdW50dWsgbWVudWxpcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY4NworbXNnaWQgIiIKKyJXYXJuaW5nISEgIFVuc3VwcG9ydGVkIEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkLiBVc2UgR05VIFBhcnRlZC4iCittc2dzdHIgIiIKKyJQZXJpbmdhdGFuISEgR1BUIFRpZGFrIGRpZHVrdW5nIChHVUlEIFRhYmVsIFBhcnRpc2kpIFRlcmRldGVrc2kuIEd1bmFrYW4gR05VICIKKyJQYXJ0ZWQuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbXBlcm9sZWggdWt1cmFuIGRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MzIKK21zZ2lkICJCYWQgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIlBhcnRpc2kgcHJpbWFyeSB0aWRhayBiYWlrIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzYyCittc2dpZCAiQmFkIGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICJQYXJ0aXNpIGxvZ2ljYWwgdGlkYWsgYmFpayIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg3NworbXNnaWQgIldhcm5pbmchISAgVGhpcyBtYXkgZGVzdHJveSBkYXRhIG9uIHlvdXIgZGlzayEiCittc2dzdHIgIlBlcmluZ2F0YW4hISBJbmkgbXVuZ2tpbiBha2FuIG1lbmdoYW5jdXJrYW4gZGF0YSBkaSBkaXNrIGFuZGEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxODgxCittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIiIKKyJBcGFrYWggYW5kYSB5YWtpbiBpbmdpbiBtZW51bGlzIHRhYmVsIHBhcnRpc2kga2UgZGlzaz8gKHlhIGF0YXUgdGlkYWspOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODcKK21zZ2lkICJubyIKK21zZ3N0ciAidGlkYWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODkKK21zZ2lkICJEaWQgbm90IHdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJUaWRhayBtZW51bGlzIHRhYmVsIHBhcnRpc2kgZGkgZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5MQorbXNnaWQgInllcyIKK21zZ3N0ciAieWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTUKK21zZ2lkICJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIKK21zZ3N0ciAiVG9sb25nIGphd2FiICd5YScgYXRhdSAndGlkYWsnIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk5Cittc2dpZCAiV3JpdGluZyBwYXJ0aXRpb24gdGFibGUgdG8gZGlzay4uLiIKK21zZ3N0ciAiTWVudWxpcyB0YWJlbCBwYXJ0aXNpIGRpIGRpc2suLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJUYWJlbCBwYXJ0aXNpIHRlbGFoIHRlcnR1bGlzIGRpIGRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKK21zZ2lkICIiCisiV3JvdGUgcGFydGl0aW9uIHRhYmxlLCBidXQgcmUtcmVhZCB0YWJsZSBmYWlsZWQuICBSdW4gcGFydHByb2JlKDgpLCBrcGFydHgiCisiKDgpIG9yIHJlYm9vdCB0byB1cGRhdGUgdGFibGUuIgorbXNnc3RyICIiCisiVGFiZWwgcGFydGlzaSB0ZWxhaCBkaXR1bGlzLCB0ZXRhcGkgZ2FnYWwgdW50dWsgbWVtYmFjYSB1bGFuZyB0YWJlbCBwYXJ0aXNpLiAiCisiSmFsYW5rYW4gcGFydHByb2JlKDgpLCBrcGFydHgoOCkgYXRhdSByZWJvb3QgdW50dWsgbWVtcGVyYmFydWkgdGFiZWwuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM2Cittc2dpZCAiTm8gcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJUaWRhayBhZGEgcGFydGlzaSBwcmltYXJ5IHlhbmcgZGliZXJpIHRhbmRhIGJvb3RhYmxlLiBET1MgTUJSIHRpZGFrIGRhcGF0ICIKKyJtZW1ib290IGRpc2sgaW5pLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzOAorbXNnaWQgIiIKKyJNb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIkxlYmloIGRhcmkgc2F0dSBwYXJ0aXNpIHByaW1hcnkgeWFuZyBkaWJlcmkgdGFuZGEgYm9vdGFibGUuIERPUyBNQlIgdGlkYWsgIgorImRhcGF0IG1lbWJvb3QgZGlzayBpbmkuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICIiCisiTWFzdWtrYW4gbmFtYSBmaWxlIGF0YXUgdGVrYW4gUkVUVVJOIHVudHVrIG1lbmFtcGlsa2FuIGRpc3BsYXkgZGkgbGF5YXI6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAwNSBmZGlzay9jZmRpc2suYzoyMTIzIGZkaXNrL2NmZGlzay5jOjIyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1idWthIGZpbGUgJyVzJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlc1xuIgorbXNnc3RyICJEaXNrIERyaXZlOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNla3RvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2VrdG9yICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgTm9uZSAgICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NworbXNnaWQgIiAgIFByaS9Mb2ciCittc2dzdHIgIiAgIFByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgICBQcmltYXJ5IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiICAgTG9naWNhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA4OSBmZGlzay9mZGlzay5jOjE3NjcgZmRpc2svZmRpc2suYzoyMTA2CisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjI3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MTYgZmRpc2svc2ZkaXNrLmM6NjM4Cittc2dpZCAiVW5rbm93biIKK21zZ3N0ciAiVGlkYWsgZGlrZXRhaHVpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk1IGZkaXNrL2NmZGlzay5jOjI1NjMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5Cittc2dpZCAiQm9vdCIKK21zZ3N0ciAiQm9vdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorbXNnaWQgIk5vbmUiCittc2dzdHIgIktvc29uZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNCBmZGlzay9jZmRpc2suYzoyMjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiBUYWJsZSBmb3IgJXNcbiIKK21zZ3N0ciAiVGFiZWwgcGFydGlzaSB1bnR1ayAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM2Cittc2dpZCAiICAgICAgICAgICAgICAgRmlyc3QgICAgICAgTGFzdFxuIgorbXNnc3RyICIgICAgICAgICAgICAgICBQZXJ0YW1hICAgICBBa2hpclxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM3Cittc2dpZCAiIgorIiAjIFR5cGUgICAgICAgU2VjdG9yICAgICAgU2VjdG9yICAgT2Zmc2V0ICAgIExlbmd0aCAgIEZpbGVzeXN0ZW0gVHlwZSAoSUQpICIKKyJGbGFnXG4iCittc2dzdHIgIiIKKyIgIyBUaXBlICAgICAgIFNla3RvciAgICAgIFNla3RvciAgIE9mZnNldCAgICAgTGVuZ3RoICBUaXBlIEZpbGVzeXN0ZW0gKElEKSAiCisiVGFuZGFcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzOAorbXNnaWQgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiIKKyIgICAgICAgICAtLS0tQmVyYXdhbC0tLS0gICAgICAtLS0tQmVyYWtoaXItLS0tICAgQXdhbCAgICAgIE5vbW9yIGRhcmlcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMgorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICIgIyBUYW5kYSBIZWFkIFNlY3QgIEN5bCAgIElEICBIZWFkIFNlY3QgIEN5bCAgICAgU2VjdG9yICAgIFNlY3RvcnNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJSYXciCittc2dzdHIgIk1lbnRhaCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgIkNldGFrIHRhYmVsIGRlbmdhbiBtZW5nZ3VuYWthbiBmb3JtYXQgZGF0YSBtZW50YWgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlNla3RvciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIkNldGFrIHRhYmVsIGRpdXJ1dCBiZXJkYXNhcmthbiBzZWt0b3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAiVGFiZWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkhhbnlhIGNldGFrIHRhYmVsIHBhcnRpc2kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJEb24ndCBwcmludCB0aGUgdGFibGUiCittc2dzdHIgIkphbmdhbiBtZW5jZXRhayB0YWJlbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgIkxheWFyIGJhbnR1YW4gdW50dWsgY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg5Cittc2dpZCAiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIgorbXNnc3RyICIiCisiSW5pIGFkYWxhaCBjZmRpc2ssIHNlYnVhaCBwcm9ncmFtIHVudHVrIG1lbXBhcnRpc2kgZGlzayBiZXJiYXNpcyBjdXJzZXMsIHlhbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgIiIKKyJtZW11bmdraW5rYW4gYW5kYSB1bnR1ayBtZW1idWF0LCBtZW5naGFwdXMsIGRhbiBtZW1vZGlmaWthc2kgcGFydGlzaSBkaSAiCisicGVyYW5na2F0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgImRpc2sgZHJpdmUuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkzCittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorbXNnc3RyICJIYWsgQ2lwdGEgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTUKK21zZ2lkICJDb21tYW5kICAgICAgTWVhbmluZyIKK21zZ3N0ciAiUGVyaW50YWggICAgIEFydGkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTYKK21zZ2lkICItLS0tLS0tICAgICAgLS0tLS0tLSIKK21zZ3N0ciAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTcKK21zZ2lkICIgIGIgICAgICAgICAgVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGIgICAgICAgICAgVWJhaCB0YW5kYSBib290YWJsZSBwYWRhIHBhcnRpc2kgdGVycGlsaWgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTgKK21zZ2lkICIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBkICAgICAgICAgIEhhcHVzIHBhcnRpc2kgdGVycGlsaWgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTkKK21zZ2lkICIgIGcgICAgICAgICAgQ2hhbmdlIGN5bGluZGVycywgaGVhZHMsIHNlY3RvcnMtcGVyLXRyYWNrIHBhcmFtZXRlcnMiCittc2dzdHIgIiAgZyAgICAgICAgICBVYmFoIHBhcmFtZXRlciBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3ItcGVyLXRyYWNrcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgUEVSSU5HQVRBTjogUGlsaWhhbiBpbmkgc2VoYXJ1c255YSBoYW55YSBib2xlaCBkaWd1bmFrYW4gb2xlaCAiCisib3JhbmcgeWFuZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICAgdGFodSBhcGEgeWFuZyBtZXJla2Ega2VyamFrYW4uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAyCittc2dpZCAiICBoICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgIGggICAgICAgICAgQ2V0YWsgbGF5YXIgaW5pIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAzCittc2dpZCAiICBtICAgICAgICAgIE1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIG0gICAgICAgICAgTWFrc2ltYWxrYW4gcGVuZ2d1bmFhbiBkaXNrIGRhcmkgcGFydGlzaSB0ZXJwaWxpaCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAgICAgICAgICBOb3RlOiBUaGlzIG1heSBtYWtlIHRoZSBwYXJ0aXRpb24gaW5jb21wYXRpYmxlIHdpdGgiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgQ2F0YXRhbjogSW5pIG11bmdraW4gYWthbiBtZW1idWF0IHBhcnRpc2kgdGlkYWsga29tcGF0aWJlbCAiCisiZGVuZ2FuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDYKK21zZ2lkICIgIG4gICAgICAgICAgQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICIgIG4gICAgICAgICAgTWVtYnVhdCBwYXJ0aXNpIGJhcnUgZGFyaSBydWFuZyB5YW5nIHRlcnNpc2Eva29zb25nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA3Cittc2dpZCAiICBwICAgICAgICAgIFByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiICBwICAgICAgICAgIENldGFrIHRhYmVsIHBhcnRpc2kgZGkgbGF5YXIgYXRhdSBrZSBzZWJ1YWggZmlsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOAorbXNnaWQgIiAgICAgICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhlIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgICAgICAgICAgIFRlcmRhcGF0IGJlYmVyYXBhIGZvcm1hdCB5YW5nIGJlcmJlZGEgdW50dWsgcGFydGlzaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIgICAgICAgICAgICAgeWFuZyBkYXBhdCBhbmRhIHBpbGloIGRhcmk6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEwCittc2dpZCAiICAgICAgICAgICAgICAgIHIgLSBSYXcgZGF0YSAoZXhhY3RseSB3aGF0IHdvdWxkIGJlIHdyaXR0ZW4gdG8gZGlzaykiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgICAgciAtIERhdGEgbWVudGFoIChzYW1hIHNlcGVydGkgeWFuZyBha2FuIGRpdHVsaXMgZGkgZGlzaykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHMgLSBUYWJlbCBkaXVydXQgYmVyZGFzYXJrYW4gZGFyaSBzZWt0b3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTIKK21zZ2lkICIgICAgICAgICAgICAgICAgdCAtIFRhYmxlIGluIHJhdyBmb3JtYXQiCittc2dzdHIgIiAgICAgICAgICAgICAgICB0IC0gVGFiZWwgZGFsYW0gZm9ybWF0IG1lbnRhaCAocmF3KSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgcSAgICAgICAgICBRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICBxICAgICAgICAgIEtlbHVhciBkYXJpIHByb2dyYW0gdGFucGEgbWVudWxpcyB0YWJlbCBwYXJ0aXNpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIgIHQgICAgICAgICAgVWJhaCB0aXBlIGZpbGVzeXN0ZW0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIgIHUgICAgICAgICAgVWJhaCBzYXR1YW4gZGFyaSB1a3VyYW4gcGFydGlzaSB5YW5nIGRpdGFtcGlsa2FuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE2Cittc2dpZCAiICAgICAgICAgICAgIFJvdGF0ZXMgdGhyb3VnaCBNQiwgc2VjdG9ycyBhbmQgY3lsaW5kZXJzIgorbXNnc3RyICIgICAgICAgICAgICAgUm90YXNpIG1lbGFsdWkgTUIsIHNla3RvciwgZGFuIGN5bGluZGVycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNworbXNnaWQgIiAgVyAgICAgICAgICBXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAobXVzdCBlbnRlciB1cHBlciBjYXNlIFcpIgorbXNnc3RyICIiCisiICBXICAgICAgICAgIFR1bGlzIHRhYmVsIHBhcnRpc2kga2UgZGlzayAoaGFydXMgbWVuZ2V0aWtrYW4gaHVydWYgYmVzYXIgVykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIgICAgICAgICAgICAgS2FyZW4gaW5pIG11bmdraW4gbWVuZ2hhbmN1cmthbiBkYXRhIGRpIGRpc2ssIGFuZGEgaGFydXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgICAgICAgICAgZWl0aGVyIGNvbmZpcm0gb3IgZGVueSB0aGUgd3JpdGUgYnkgZW50ZXJpbmcgYHllcycgb3IiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgbWVuZ2tvbmZpcm1hc2lrYW4gYXRhdSBtZW5vbGFrIHBlbnVsaXNhbiBkZW5nYW4gbWVuZ2V0aWtrYW4gIgorIid5ZXMnIGF0YXUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgICAgICAgICAgYG5vJyIKK21zZ3N0ciAiICAgICAgICAgICAgICBgbm8nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIxCittc2dpZCAiVXAgQXJyb3cgICAgIE1vdmUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBwYXJ0aXRpb24iCittc2dzdHIgIlBhbmFoIEF0YXMgICBNZW1pbmRhaGthbiBjdXJzb3Iga2UgcGFydGlzaSBzZWJlbHVtbnlhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIyCittc2dpZCAiRG93biBBcnJvdyAgIE1vdmUgY3Vyc29yIHRvIHRoZSBuZXh0IHBhcnRpdGlvbiIKK21zZ3N0ciAiUGFuYWggQmF3YWggIE1lbWluZGFoa2FuIGN1cnNvciBrZSBwYXJ0aXNpIHNlc3VkYWhueWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDVFJMLUwgICAgICAgTWVuZ2dhbWJhciB1bGFuZyBsYXlhciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICA/ICAgICAgICAgIE1lbmNldGFrIHRhbXBpbGFuIGluaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNgorbXNnaWQgIk5vdGU6IEFsbCBvZiB0aGUgY29tbWFuZHMgY2FuIGJlIGVudGVyZWQgd2l0aCBlaXRoZXIgdXBwZXIgb3IgbG93ZXIiCittc2dzdHIgIkNhdGF0YW46IFNlbXVhIHBlcmludGFoIGRhcGF0IGRpa2V0aWtrYW4gZGVuZ2FuIG1lbmdndW5ha2FuIGh1cnVmICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNworbXNnaWQgImNhc2UgbGV0dGVycyAoZXhjZXB0IGZvciBXcml0ZXMpLiIKK21zZ3N0ciAiYmVzYXIgYXRhdSBodXJ1ZiBrZWNpbCAoa2VjdWFsaSB1bnR1ayBwZW51bGlzYW4ga2UgZGlzaykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAiQ3lsaW5kZXJzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICJVYmFoIGdlb21ldHJpIGN5bGluZGVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzAKK21zZ2lkICJIZWFkcyIKK21zZ3N0ciAiSGVhZHMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkKK21zZ2lkICJDaGFuZ2UgaGVhZCBnZW9tZXRyeSIKK21zZ3N0ciAiVWJhaCBnZW9tZXRyaSBoZWFkIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAiVWJhaCBnZW9tZXRyaSBzZWt0b3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICJTZWxlc2FpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICJTZWxlc2FpIHRhbnBhIG1lbmd1YmFoIGdlb21ldHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzc0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIKK21zZ3N0ciAiTWFzdWtrYW4ganVtbGFoIGRhcmkgY3lsaW5kZXI6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIkp1bWxhaCBjeWxpbmRlcnMgdGlkYWsgdmFsaWQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTEKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGhlYWRzOiAiCittc2dzdHIgIk1hc3Vra2FuIGp1bWxhaCBoZWFkczoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTggZmRpc2svY2ZkaXNrLmM6Mjk2OAorbXNnaWQgIklsbGVnYWwgaGVhZHMgdmFsdWUiCittc2dzdHIgIkp1bWxhaCBoZWFkIHRpZGFrIHZhbGlkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICJNYXN1a2thbiBqdW1sYWggc2VrdG9yIHBlciB0cmFjazogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDExIGZkaXNrL2NmZGlzay5jOjI5NzUKK21zZ2lkICJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiCittc2dzdHIgIkp1bWxhaCBzZWt0b3IgdGlkYWsgdmFsaWQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MTQKK21zZ2lkICJFbnRlciBmaWxlc3lzdGVtIHR5cGU6ICIKK21zZ3N0ciAiTWFzdWtrYW4gdGlwZSBmaWxlc3lzdGVtOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzIKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZW1wdHkiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmd1YmFoIEZTIHR5cGUgbWVuamFkaSBrb3NvbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZXh0ZW5kZWQiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmd1YmFoIEZTIHRpcGUgbWVuamFkaSBleHRlbmRlZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIlVuayglMjBYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiLCBOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIk5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAiUHJpL0xvZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAiVGlkYWsgZGlrZXRhaHVpICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAiRGlzayBEcml2ZTogJXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZCBNQiIKK21zZ3N0ciAiVWt1cmFuOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQuJWxsZCBHQiIKK21zZ3N0ciAiVWt1cmFuOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGVhZHM6ICVkICAgU2VjdG9ycyBwZXIgVHJhY2s6ICVkICAgQ3lsaW5kZXJzOiAlbGxkIgorbXNnc3RyICJIZWFkczogJWQgICAgU2VrdG9yIHBlciBUcmFjazogJWQgICBDeWxpbmRlcnM6ICVsbGQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIk5hbWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiVGFuZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIlRpcGUgUGFydGlzaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIlRpcGUgRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODUKK21zZ2lkICJbTGFiZWxdIgorbXNnc3RyICJbTGFiZWxdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgICBTZWt0b3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKK21zZ2lkICIgIEN5bGluZGVycyIKK21zZ3N0ciAiICBDeWxpbmRlcnMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTEKK21zZ2lkICIgIFNpemUgKE1CKSIKK21zZ3N0ciAiICBVa3VyYW4gKE1CKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MworbXNnaWQgIiAgU2l6ZSAoR0IpIgorbXNnc3RyICIgIFVrdXJhbiAoR0IpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIkJvb3RhYmxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJVYmFoIHRhbmRhIGJvb3RhYmxlIGRhcmkgcGFydGlzaSB0ZXJwaWxpaCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSIKK21zZ3N0ciAiSGFwdXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJIYXB1cyBwYXJ0aXNpIHRlcnBpbGloIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiR2VvbWV0cnkiCittc2dzdHIgIkdlb21ldHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiQ2hhbmdlIGRpc2sgZ2VvbWV0cnkgKGV4cGVydHMgb25seSkiCittc2dzdHIgIlViYWggZ2VvbWV0cmkgZGlzayAoZXhwZXJ0IG9ubHkpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiQmFudHVhbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICJDZXRhayBsYXlhciBiYW50dWFuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUiCittc2dzdHIgIk1ha3NpbWFsa2FuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIk1ha3NpbWFsa2FuIHBlbmdndW5hYW4gZGlzayBwYWRhIHBhcnRpc2kgdGVycGlsaWggKGV4cGVydCBvbmx5KSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAiQmFydSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIkNyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiQnVhdCBwYXJ0aXNpIGJhcnUgZGFyaSBydWFuZyBrb3NvbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiQ2V0YWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIkNldGFrIHRhYmVsIHBhcnRpc2kgZGkgbGF5YXIgYXRhdSBrZSBzZWJ1YWggZmlsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIkJlcmhlbnRpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkJlcmhlbnRpIGRhcmkgYXBsaWthc2kgdGFucGEgbWVudWxpcyB0YWJlbCBwYXJ0aXNpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAiVGlwZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIkNoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIChET1MsIExpbnV4LCBPUy8yIGFuZCBzbyBvbikiCittc2dzdHIgIlViYWggdGlwZSBmaWxlc3lzdGVtIChET1MsIExpbnV4LCBPUy8yLCBkYW4gc2VsYW5qdXRueWEpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiVW5pdHMiCittc2dzdHIgIlNhdHVhbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIkNoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSAoTUIsIHNlY3QsIGN5bCkiCittc2dzdHIgIlViYWggc2F0dWFuIGRhcmkgdWt1cmFuIHBhcnRpc2kgeWFuZyBkaXRhbXBpbGthbiAoTUIsIHNlY3QsIGN5bCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSIKK21zZ3N0ciAiVHVsaXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIgorbXNnc3RyICJUdWxpcyB0YWJlbCBwYXJ0aXNpIGtlIGRpc2sgKEluaSBtdW5na2luIGFrYW4gbWVuZ2hhbmN1cmthbiBkYXRhKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgwNQorbXNnaWQgIkNhbm5vdCBtYWtlIHRoaXMgcGFydGl0aW9uIGJvb3RhYmxlIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1idWF0IHBhcnRpc2kgaW5pIG1lbmphZGkgYm9vdGFibGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVuZ2hhcHVzIHNlYnVhaCBwYXJ0aXNpIGtvc29uZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1ha3NpbWFsa2FuIHBhcnRpc2kgaW5pIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ1Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgdW51c2FibGUiCittc2dzdHIgIlBhcnRpc2kgaW5pIHRpZGFrIGRhcGF0IGRpZ3VuYWthbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJQYXJ0aXNpIGluaSBzdWRhaCBkaXBha2FpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODY0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSB0aGUgdHlwZSBvZiBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmd1YmFoIHRpcGUgZGFyaSBzZWJ1YWggcGFydGlzaSBrb3NvbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAiVGlkYWsgYWRhIHBhcnRpc2kgbGFnaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAiUGVyaW50YWggdGlkYWsgdmFsaWQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkhhayBDaXB0YSAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiUGVuZ2d1bmFhbjpcbiIKKyJUYW1waWxrYW4gdmVyc2kgZGFyaSBhcGxpa2FzaTpcbiIKKyIgICAgICAgICAgICAgJXMgLXZcbiIKKyJUYW1waWxrYW4gdGFiZWwgcGFydGlzaTpcbiIKKyIgICAgICAgICAgICAgJXMgLVAge3J8c3x0fSBbcGlsaWhhbl0gcGVyYW5na2F0XG4iCisiUGVuZ2d1bmFhbiBpbnRlcmFrdGl2ZTpcbiIKKyIgICAgICAgICAgICAgJXMgW3BpbGloYW5dIHBlcmFuZ2thdFxuIgorIlxuIgorIlBpbGloYW46XG4iCisiLWE6IEd1bmFrYW4gcGFuYWggZGFyaXBhZGEgcGVub25qb2xhbjtcbiIKKyItejogTXVsYWkgZGFyaSBzZWJ1YWggdGFiZWwgcGFydGlzaSBrb3NvbmcsIGRhcmkgcGFkYSBtZW1iYWNhIGRhcmkgdGFiZWwgIgorInBhcnRpc2kgZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzsgbWVtYWtzYSBpZGUga2VybmVsIG1lbmdlbmFpIGp1bWxhaCBjeWxpbmRlcnMsIGp1bWxhaCAiCisiaGVhZHMsIFxuIgorIiAgICAgICAgICAgICAgICBkYW4ganVtbGFoIGRhcmkgc2VjdG9ycy90cmFjay5cbiIKKworIzogZmRpc2svZmRpc2thaXhsYWJlbC5jOjI3Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBBSVggbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBMaW51eCBjYW5ub3QgaGFuZGxlIHRoZXNlXG4iCisiXHRkaXNrcyBhdCB0aGUgbW9tZW50LiAgTmV2ZXJ0aGVsZXNzIHNvbWVcbiIKKyJcdGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKKyJcdDMuIEJlZm9yZSBkZWxldGluZyB0aGlzIHBoeXNpY2FsIHZvbHVtZSBiZSBzdXJlXG4iCisiXHQgICB0byByZW1vdmUgdGhlIGRpc2sgbG9naWNhbGx5IGZyb20geW91ciBBSVhcbiIKKyJcdCAgIG1hY2hpbmUuICAoT3RoZXJ3aXNlIHlvdSBiZWNvbWUgYW4gQUlYcGVydCkuIgorbXNnc3RyICIiCisiXG4iCisiXHRUZXJkYXBhdCBzZWJ1YWggQUlYIGxhYmVsIHlhbmcgdmFsaWQgZGkgZGlzayBpbmkuXG4iCisiXHRTYXlhbmdueWEgTGludXggdGlkYWsgZGFwYXQgbWVuYW5nYW5pIGRpc2sgaW5pIHNhYXRcbiIKKyJcdGluaS4gQmViZXJhcGEgc2FyYW46XG4iCisiXHQxLiBmZGlzayBha2FuIG1lbmdoYW5jdXJrYW4gaXNpIGRhcmkgQUlYIGxhYmVsIHBhZGEgd2FrdHUgbWVudWxpcyBrZSAiCisiZGlzay5cbiIKKyJcdDIuIFBhc3Rpa2FuIGRpc2sgaW5pIEJVS0FOIGJhZ2lhbiB2aXRhbCBkYXJpIHZvbHVtZSBncm91cC4gKEppa2EgXG4iCisiXHQgICBhbmRhIG11bmdraW4gYWthbiBtZW5naGFwdXMgZGlzayBsYWluIGp1Z2EsIGppa2EgdGlkYWsgZGkgbWlycm9yLilcbiIKKyJcdDMuIFNlYmVsdW0gbWVuZ2hhcHVzIHBoeXNpY2FsIHZvbHVtZSBpbmkgcGFzdGlrYW4gdW50dWsgbWVuZ2hhcHVzIGRpc2tcbiIKKyJcdCAgIHNlY2FyYSBsb2dpY2FsIGRhcmkgbWVzaW4gQUlYIGFuZGEuIChKaWthIHRpZGFrIGFuZGEgYWthbiBtZW5qYWRpIFxuIgorIlx0ICAgc2VvcmFuZyBBSVhwZXJ0KS4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkJTRCBsYWJlbCBmb3IgZGV2aWNlOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiQlNEIGxhYmVsIHVudHVrIHBlcmFuZ2thdDogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOCBmZGlzay9mZGlzay5jOjM5NCBmZGlzay9mZGlzay5jOjQxMworIzogZmRpc2svZmRpc2suYzo0MzEgZmRpc2svZmRpc2suYzo0MzggZmRpc2svZmRpc2suYzo0NjEgZmRpc2svZmRpc2suYzo0NzkKKyM6IGZkaXNrL2ZkaXNrLmM6NDk1IGZkaXNrL2ZkaXNrLmM6NTExCittc2dpZCAiQ29tbWFuZCBhY3Rpb24iCittc2dzdHIgIkFrc2kgcGVyaW50YWgiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjkKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIGhhcHVzIHNlYnVhaCBwYXJ0aXNpIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMAorbXNnaWQgIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiCittc2dzdHIgIiAgIGUgICBlZGl0IGRhdGEgZHJpdmUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMgorbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIGZpbGVzeXN0ZW0gdHlwZXMiCittc2dzdHIgIiAgIGwgICBsaXN0IHRpcGUgZmlsZXN5c3RlbSB5YW5nIGRpa2V0YWh1aSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMyBmZGlzay9mZGlzay5jOjQwMCBmZGlzay9mZGlzay5jOjQxOQorIzogZmRpc2svZmRpc2suYzo0MzIgZmRpc2svZmRpc2suYzo0NDQgZmRpc2svZmRpc2suYzo0NjkgZmRpc2svZmRpc2suYzo0ODYKKyM6IGZkaXNrL2ZkaXNrLmM6NTAyIGZkaXNrL2ZkaXNrLmM6NTIwCittc2dpZCAiICAgbSAgIHByaW50IHRoaXMgbWVudSIKK21zZ3N0ciAiICAgbSAgIGNldGFrIG1lbnUgaW5pIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM0Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgdGFtYmFoa2FuIHNlYnVhaCBwYXJ0aXNpIEJTRCBiYXJ1IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM1Cittc2dpZCAiICAgcCAgIHByaW50IEJTRCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBjZXRhayB0YWJlbCBwYXJ0aXNpIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgIGtlbHVhciB0YW5wYSBtZW55aW1wYW4gcGVydWJhaGFuIHlhbmcgdGVsYWggZGlsYWt1a2FuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM3IGZkaXNrL2ZkaXNrLmM6NDcyIGZkaXNrL2ZkaXNrLmM6NDg5CisjOiBmZGlzay9mZGlzay5jOjUwNSBmZGlzay9mZGlzay5jOjUyMworbXNnaWQgIiAgIHIgICByZXR1cm4gdG8gbWFpbiBtZW51IgorbXNnc3RyICIgICByICAga2VtYmFsaSBrZSBtZW51IHV0YW1hIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM4Cittc2dpZCAiICAgcyAgIHNob3cgY29tcGxldGUgZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgdGFtcGlsa2FuIGRpc2tsYWJlbCBzZWNhcmEgbGVuZ2thcCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgdWJhaCBpZCBwYXJ0aXNpIGZpbGVzeXN0ZW0iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDAKK21zZ2lkICIgICB1ICAgY2hhbmdlIHVuaXRzIChjeWxpbmRlcnMvc2VjdG9ycykiCittc2dzdHIgIiAgIHUgICB1YmFoIHNhdHVhbiAoY3lsaW5kZXJzL3Nla3RvcikiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDEKK21zZ2lkICIgICB3ICAgd3JpdGUgZGlza2xhYmVsIHRvIGRpc2siCittc2dzdHIgIiAgIHcgICB0dWxpcyBkaXNrbGFiZWwgZGkgZGlzayIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MworbXNnaWQgIiAgIHggICBsaW5rIEJTRCBwYXJ0aXRpb24gdG8gbm9uLUJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIHggICBzYW1idW5nIEJTRCBwYXJ0aXNpIGtlIG5vbi1CU0QgcGFydGlzaSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIlBhcnRpc2kgJXMgbWVtcHVueWFpIHNla3RvciAwIGF3YWwgeWFuZyB0aWRhayB2YWxpZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIGRpc2tsYWJlbCBvZiAlcyBhdCBzZWN0b3IgJWQuXG4iCittc2dzdHIgIk1lbWJhY2EgZGlza2xhYmVsIGRhcmkgJXMgZGkgc2VrdG9yICVkLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZXJlIGlzIG5vICpCU0QgcGFydGl0aW9uIG9uICVzLlxuIgorbXNnc3RyICJUaWRhayBhZGEgcGFydGlzaSAqQlNEIGRpICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjAzCittc2dpZCAiQlNEIGRpc2tsYWJlbCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJQZXJpbnRhaCBCU0QgZGlza2xhYmVsIChtIHVudHVrIGJhbnR1YW4pOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyODMgZmRpc2svZmRpc2suYzoyMzI4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzgKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3QgJXMiCittc2dzdHIgIlBlcnRhbWEgJXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICVzIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsiCittc2dzdHIgIlRlcmFraGlyICVzIGF0YXUgK3NpemUgYXRhdSArc2l6ZU0gYXRhdSArc2l6ZUsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJXNcbiIKK21zZ3N0ciAidGlwZTogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICJ0aXBlOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpc2s6ICUuKnNcbiIKK21zZ3N0ciAiZGlzazogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxhYmVsOiAlLipzXG4iCittc2dzdHIgImxhYmVsOiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmxhZ3M6IgorbXNnc3RyICJ0YW5kYToiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIHJlbW92YWJsZSIKK21zZ3N0ciAiIHJlbW92YWJsZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNgorIywgYy1mb3JtYXQKK21zZ2lkICIgZWNjIgorbXNnc3RyICIgZWNjIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiBiYWRzZWN0IgorbXNnc3RyICIgYmFkc2VjdCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcy9zZWN0b3I6ICVsZFxuIgorbXNnc3RyICJieXRlcy9zZWt0b3I6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvdHJhY2s6ICVsZFxuIgorbXNnc3RyICJzZWt0b3IvdHJhY2s6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInNla3Rvci9jeWxpbmRlcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiY3lsaW5kZXJzOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgInJwbTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnRlcmxlYXZlOiAlZFxuIgorbXNnc3RyICJpbnRlcmxlYXZlOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrc2tldzogJWRcbiIKK21zZ3N0ciAidHJhY2tza2V3OiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAiY3lsaW5kZXJza2V3OiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgInRyYWNrLXRvLXRyYWNrIHNlZWs6ICVsZFx0IyBtaWxsaXNlY29uZHNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0NQorIywgYy1mb3JtYXQKK21zZ2lkICJkcml2ZWRhdGE6ICIKK21zZ3N0ciAiZHJpdmVkYXRhOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0aXNpOlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiMgICAgICAgc3RhcnQgICAgICAgZW5kICAgICAgc2l6ZSAgICAgZnN0eXBlICAgW2ZzaXplIGJzaXplICAgY3BnXVxuIgorbXNnc3RyICIjICAgICAgIGF3YWwgICAgICAgIGFraGlyICAgIHVrdXJhbiAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRpbmcgZGlza2xhYmVsIHRvICVzLlxuIgorbXNnc3RyICJNZW51bGlzIGRpc2tsYWJlbCBkaSAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQxOSBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIKK21zZ3N0ciAiJXMgdGlkYWsgdGVyZGFwYXQgZGlza2xhYmVsLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDI2Cittc2dpZCAiRG8geW91IHdhbnQgdG8gY3JlYXRlIGEgZGlza2xhYmVsPyAoeS9uKSAiCittc2dzdHIgIkFuZGEgaW5naW4gbWVtYnVhdCBzZWJ1YWggZGlza2xhYmVsPyAoeS9uKSAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgImJ5dGVzL3Nla3RvciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NworbXNnaWQgInNlY3RvcnMvdHJhY2siCittc2dzdHIgInNla3Rvci90cmFjayIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAidHJhY2tzL2N5bGluZGVyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NzQwIGZkaXNrL2ZkaXNrLmM6MTU5MgorIzogZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAiY3lsaW5kZXJzIgorbXNnc3RyICJjeWxpbmRlcnMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJzZWt0b3IvY3lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSA8PSBzZWN0b3JzL3RyYWNrICogdHJhY2tzL2N5bGluZGVyIChkZWZhdWx0KS5cbiIKK21zZ3N0ciAiSGFydXMgPD0gc2VrdG9yL3RyYWNrICogdHJhY2tzL2N5bGluZGVyIChkZWZhdWx0KS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAicnBtIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAiaW50ZXJsZWF2ZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAidHJhY2tza2V3IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg1Cittc2dpZCAiY3lsaW5kZXJza2V3IgorbXNnc3RyICJjeWxpbmRlcnNrZXciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODYKK21zZ2lkICJoZWFkc3dpdGNoIgorbXNnc3RyICJoZWFkc3dpdGNoIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg3Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlayIKK21zZ3N0ciAidHJhY2stdG8tdHJhY2sgc2VlayIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXA6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorbXNnc3RyICJCb290c3RyYXA6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIkJvb3RzdHJhcCBvdmVybGFwcyBkZW5nYW4gZGlzayBsYWJlbCFcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iCittc2dzdHIgIkJvb3RzdHJhcCBkaXBhc2FuZyBkaSAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gKGEtJWMpOiAiCittc2dzdHIgIlBhcnRpc2kgKGEtJWMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MTcgZmRpc2svZmRpc2suYzoyNDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJ0aXRpb25zIGhhcyBiZWVuIGNyZWF0ZWRcbiIKK21zZ3N0ciAiTWFrc2ltdW0ganVtbGFoIHBhcnRpc2kgdGVsYWggZGlidWF0XG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMuXG4iCittc2dzdHIgIlBhcnRpc2kgaW5pIHN1ZGFoIGFkYS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIlBlcmluZ2F0YW46IHRlcmxhbHUgYmFueWFrIHBhcnRpc2kgKCVkLCBtYWtzaW11bSBhZGFsYWggJWQpLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICIiCisiXG4iCisiU2lua3JvbmlzYXNpIGRpc2suXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKyJQZW5nZ3VuYWFuOlxuIgorIiBmZGlzayBbcGlsaWhhbl0gPGRpc2s+ICAgIHViYWggdGFiZWwgcGFydGlzaVxuIgorIiBmZGlzayBbcGlsaWhhbl0gLWwgPGRpc2s+IHRhbXBpbGthbiB0YWJlbCBwYXJ0aXNpXG4iCisiIGZkaXNrIC1zIDxwYXJ0aXNpPiAgICAgICAgYmVyaSB1a3VyYW4gcGFydGlzaSBkYWxhbSBibG9rXG4iCisiXG4iCisiUGlsaWhhbjpcbiIKKyIgLWIgPGJlc2FyPiAgICAgICAgICAgICAgICB1a3VyYW4gc2VrdG9yICg1MTIsIDEwMjQsIDIwNDggYXRhdSA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIG5vbi1ha3RpZmthbiBtb2RlIERPUy1rb21wYXRpYmVsXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgdGFtcGlsa2FuIGJhbnR1YW5cbiIKKyIgLXUgPGJlc2FyPiAgICAgICAgICAgICAgICBiZXJpa2FuIHVrdXJhbiBkYWxhbSBzZWt0b3IgZGFyaXBhZGEgc2lsaW5kZXJcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICB0YW1waWxrYW4gdmVyc2lcbiIKKyIgLUMgPGp1bWxhaD4gICAgICAgICAgICAgICBzcGVzaWZpa2FzaWthbiBqdW1sYWggZGFyaSBzaWxpbmRlclxuIgorIiAtSCA8anVtbGFoPiAgICAgICAgICAgICAgIHNwZXNpZmlrYXNpa2FuIGp1bWxhaCBkYXJpIGhlYWRcbiIKKyIgLVMgPGp1bWxhaD4gICAgICAgICAgICAgICBzcGVzaWZpa2FzaWthbiBqdW1sYWggZGFyaSBzZWt0b3IgcGVyIHRyYWNrXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbWJ1a2EgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgJXNcbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtYmFjYSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2VlayBvbiAlc1xuIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5jYXJpIGRpICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSAlc1xuIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW51bGlzICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzXG4iCittc2dzdHIgIkJMS0dFVFNJWkUgaW9jdGwgZ2FnYWwgZGkgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmdhbG9rYXNpa2FuIG1lbW9yaSBsYWdpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAiRmF0YWwgZXJyb3JcbiIKKworIzogZmRpc2svZmRpc2suYzozOTUKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgcmVhZCBvbmx5IGZsYWciCittc2dzdHIgIiAgIGEgICB1YmFoIHRhbmRhIHJlYWQgb25seSIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorCisjOiBmZGlzay9mZGlzay5jOjM5NworbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIG1vdW50YWJsZSBmbGFnIgorbXNnc3RyICIgICBjICAgdWJhaCB0YW5kYSBkYXBhdCBkaSBtb3VudCIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgaGFwdXMgc2VidWFoIHBhcnRpc2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk5IGZkaXNrL2ZkaXNrLmM6NDE4IGZkaXNrL2ZkaXNrLmM6NDQzCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICBsICAgbGlzdCB0aXBlIHBhcnRpc2kgeWFuZyBkaWtldGFodWkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICB0YW1iYWhrYW4gc2VidWFoIHBhcnRpc2kgYmFydSIKKworIzogZmRpc2svZmRpc2suYzo0MDIgZmRpc2svZmRpc2suYzo0MjEgZmRpc2svZmRpc2suYzo0MzMgZmRpc2svZmRpc2suYzo0NDYKK21zZ2lkICIgICBvICAgY3JlYXRlIGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIG8gICBidWF0IHNlYnVhaCB0YWJlbCBwYXJ0aXNpIERPUyBiYXJ1IHlhbmcga29zb25nIgorCisjOiBmZGlzay9mZGlzay5jOjQwMyBmZGlzay9mZGlzay5jOjQyMiBmZGlzay9mZGlzay5jOjQ0NyBmZGlzay9mZGlzay5jOjQ3MAorIzogZmRpc2svZmRpc2suYzo0ODcgZmRpc2svZmRpc2suYzo1MDMgZmRpc2svZmRpc2suYzo1MjEKK21zZ2lkICIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIGNldGFrIHRhYmVsIHBhcnRpc2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgYnVhdCBzZWJ1YWggZGlza2xhYmVsIFN1biB5YW5nIGtvc29uZyIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgdWJhaCBpZCBkYXJpIHBhcnRpc2kgc3lzdGVtIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIHViYWggc2F0dWFuIGRhcmkgdGFtcGlsYW4vbWFzdWthbiIKKworIzogZmRpc2svZmRpc2suYzo0MDggZmRpc2svZmRpc2suYzo0MjcgZmRpc2svZmRpc2suYzo0NTIgZmRpc2svZmRpc2suYzo0NzQKKyM6IGZkaXNrL2ZkaXNrLmM6NDkxIGZkaXNrL2ZkaXNrLmM6NTA3IGZkaXNrL2ZkaXNrLmM6NTI1Cittc2dpZCAiICAgdiAgIHZlcmlmeSB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICB2ICAgdmVyaWZpa2FzaSB0YWJlbCBwYXJ0aXNpIgorCisjOiBmZGlzay9mZGlzay5jOjQwOSBmZGlzay9mZGlzay5jOjQyOCBmZGlzay9mZGlzay5jOjQ1MyBmZGlzay9mZGlzay5jOjQ3NQorIzogZmRpc2svZmRpc2suYzo0OTIgZmRpc2svZmRpc2suYzo1MDggZmRpc2svZmRpc2suYzo1MjYKK21zZ2lkICIgICB3ICAgd3JpdGUgdGFibGUgdG8gZGlzayBhbmQgZXhpdCIKK21zZ3N0ciAiICAgdyAgIHR1bGlzIHRhYmVsIGtlIGRpc2sgZGFuIGtlbHVhciIKKworIzogZmRpc2svZmRpc2suYzo0MTAgZmRpc2svZmRpc2suYzo0NTQKK21zZ2lkICIgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiICAgeCAgIGZ1bmdzaSB0YW1iYWhhbiAoZXhwZXJ0IG9ubHkpIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAgcGlsaWggcGFydGlzaSB5YW5nIGJvb3RhYmxlIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAgZWRpdCBtYXN1a2FuIGJvb3RmaWxlIgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIgICBjICAgcGlsaWggcGFydGlzaSBzd2FwIHNnaSIKKworIzogZmRpc2svZmRpc2suYzo0MzkKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgYm9vdGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYSAgIHViYWggdGFuZGEgYm9vdGFibGUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICAgYyAgIHViYWggdGFuZGEga29tcGF0aWJpbGl0YXMgZG9zIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MgorbXNnaWQgIiAgIGEgICBjaGFuZ2UgbnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGEgICB1YmFoIG5vbW9yIGRhcmkgYWx0ZXJuYXRpZiBjeWxpbmRlcnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYzIGZkaXNrL2ZkaXNrLmM6NDgxIGZkaXNrL2ZkaXNrLmM6NDk3IGZkaXNrL2ZkaXNrLmM6NTEzCittc2dpZCAiICAgYyAgIGNoYW5nZSBudW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICIgICBjICAgdWJhaCBub21vciBkYXJpIGN5bGluZGVycyIKKworIzogZmRpc2svZmRpc2suYzo0NjQgZmRpc2svZmRpc2suYzo0ODIgZmRpc2svZmRpc2suYzo0OTggZmRpc2svZmRpc2suYzo1MTQKK21zZ2lkICIgICBkICAgcHJpbnQgdGhlIHJhdyBkYXRhIGluIHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGQgICBjZXRhayBkYXRhIG1lbnRhaCAocmF3KSBkaSB0YWJlbCBwYXJ0aXNpIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAgdWJhaCBqdW1sYWggc2VrdG9yIGxlYmloIGRhcmkgc2V0aWFwIGN5bGluZGVyIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NiBmZGlzay9mZGlzay5jOjQ4NSBmZGlzay9mZGlzay5jOjUwMSBmZGlzay9mZGlzay5jOjUxOAorbXNnaWQgIiAgIGggICBjaGFuZ2UgbnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICIgICBoICAgdWJhaCBqdW1sYWggZGFyaSBoZWFkcyIKKworIzogZmRpc2svZmRpc2suYzo0NjcKK21zZ2lkICIgICBpICAgY2hhbmdlIGludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICIgICBpICAgdWJhaCBmYWt0b3IgaW50ZXJsZWF2ZSIKKworIzogZmRpc2svZmRpc2suYzo0NjgKK21zZ2lkICIgICBvICAgY2hhbmdlIHJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIgICBvICAgdWJhaCBrZWNlcGF0YW4gcm90YXNpIChycG0pIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorbXNnaWQgIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siCittc2dzdHIgIiAgIHMgICB1YmFoIGp1bWxhaCBzZWt0b3IvdHJhY2siCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIgICB5ICAgdWJhaCBqdW1sYWggZGFyaSBwaHlzaWNhbCBjeWxpbmRlcnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGIgICBwaW5kYWhrYW4gYXdhbCBkYXJpIGRhdGEgZGFsYW0gc2VidWFoIHBhcnRpc2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgzIGZkaXNrL2ZkaXNrLmM6NDk5IGZkaXNrL2ZkaXNrLmM6NTE1Cittc2dpZCAiICAgZSAgIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiICAgZSAgIGxpc3QgcGFydGlzaSBleHRlbmRlZCIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgYnVhdCBzZWJ1YWggSVJJWCAoU0dJKSB0YWJlbCBwYXJ0aXNpIgorCisjOiBmZGlzay9mZGlzay5jOjUxNgorbXNnaWQgIiAgIGYgICBmaXggcGFydGl0aW9uIG9yZGVyIgorbXNnc3RyICIgICBmICAgYmV0dWxrYW4gdXJ1dGFuIGRhcmkgcGFydGlzaSIKKworIzogZmRpc2svZmRpc2suYzo1MTkKK21zZ2lkICIgICBpICAgY2hhbmdlIHRoZSBkaXNrIGlkZW50aWZpZXIiCittc2dzdHIgIiAgIGkgICB1YmFoIGlkZW50aWZpa2FzaSBkaXNrIgorCisjOiBmZGlzay9mZGlzay5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBzZXQiCittc2dzdHIgIkFuZGEgaGFydXMgbWVuc2V0IgorCisjOiBmZGlzay9mZGlzay5jOjczNgorbXNnaWQgImhlYWRzIgorbXNnc3RyICJoZWFkcyIKKworIzogZmRpc2svZmRpc2suYzo3MzggZmRpc2svZmRpc2suYzoxNTkyIGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgInNlY3RvcnMiCittc2dzdHIgInNla3RvciIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisiJXMlcy5cbiIKKyJBbmRhIGRhcGF0IG1lbGFrdWthbiBpbmkgZGFyaSBtZW51IGZ1bmdzaSB0YW1iYWhhbi5cbiIKKworIzogZmRpc2svZmRpc2suYzo3NDUKK21zZ2lkICIgYW5kICIKK21zZ3N0ciAiIGRhbiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiUEVSSU5HQVRBTjogVWt1cmFuIGRhcmkgZGlzayBpbmkgYWRhbGFoICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJGb3JtYXQgdGFiZWwgcGFydGlzaSBET1MgdGlkYWsgZGFwYXQgZGlndW5ha2FuIGRpIGRyaXZlIHVudHVrXG4iCisiaXNpIGxlYmloIGJlc2FyIGRhcmkgKCVsbHUgYnl0ZXMpIHVudHVrICVkLWJ5dGUgc2VrdG9yLiBHdW5ha2FuXG4iCisicGFydGVkKDEpIGZvcm1hdCB0YWJlbCBwYXJ0aXNpIEdVSUQgKEdQVCkuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlBlcmFuZ2thdCBtZW5hbXBpbGthbiBzZWJ1YWggdWt1cmFuIHNla3RvciBsb2dpa2FsIHlhbmcgbGViaWgga2VjaWwgIgorImRhcmlwYWRhXG4iCisidWt1cmFuIHNla3RvciBmaXNpay4gTWVueWVzdWFpa2FuIGtlIGJhdGFzIHNla3RvciBmaXNpayAoYXRhdSBvcHRpbWFsIEkvTykgIgorImFkYWxhaCBsYW5na2FoIHlhbmdcbiIKKyJkaXJla29tZW5kYXNpa2FuLCBhdGF1IG11bmdraW4gYmVyZGFtcGFrIHBhZGEgcGVyZm9ybWFuc2kgcGVyYW5na2F0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvXG4iCisiICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIgorbXNnc3RyICIiCisiXG4iCisiUEVSSU5HQVRBTjogTU9ERSBrb21wYXRpYmVsIERPUyB0ZWxhaCBkaXRpbmdnYWxrYW4uIEluaSBzYW5nYXQgZGlhbmp1cmthblxuIgorIiAgICAgICAgICAgIHVudHVrIG1lbm9uYWt0aWZrYW4gbW9kZSB0ZXJzZWJ1dCAocGVyaW50YWggJ2MnKSIKKworIzogZmRpc2svZmRpc2suYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG9cbiIKKyIgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuXG4iCittc2dzdHIgIiIKKyIgZGFuIHViYWggdGFtcGlsYW4gc2F0dWFuIGtlXG4iCisiICAgICAgICAgc2VrdG9yIChwZXJpbnRhaCAndScpLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisiXG4iCisiUEVSSU5HQVRBTjogcGVuYW1waWxhbiBzaWxpbmRlciBzZWJhZ2FpIHNhdHVhbiBzdWRhaCBkaXRpbmdnYWxrYW4uXG4iCisiICAgICAgICAgICAgR3VuYWthbiBwZXJpbnRhaCAndScgdW50dWsgbWVuZ3ViYWggc2F0dWFuIGtlIHNla3Rvci5cbiIKKworIzogZmRpc2svZmRpc2suYzo4MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG9mZnNldCBpbiBwcmltYXJ5IGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJCYWQgb2Zmc2V0IGRhbGFtIHBhcnRpc2kgZXh0ZW5kZWQgcHJpbWFyeVxuIgorCisjOiBmZGlzay9mZGlzay5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogb21pdHRpbmcgcGFydGl0aW9ucyBhZnRlciAjJWQuXG4iCisiVGhleSB3aWxsIGJlIGRlbGV0ZWQgaWYgeW91IHNhdmUgdGhpcyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKyJQZXJpbmdhdGFuOiBtZW5nYWJhaWthbiBwYXJ0aXNpIHNlc3VkYWggIyVkLlxuIgorIk1lcmVrYSBtdW5na2luIHRlbGFoIG1lbmdoYXB1cyBqaWthIGFuZGEgbWVueWltcGFuIHRhYmVsIHBhcnRpc2kuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGV4dHJhIGxpbmsgcG9pbnRlciBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogZXh0cmEgcG9pbnRlciBsaW5rIGRhbGFtIHRhYmVsIHBhcnRpc2kgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaWdub3JpbmcgZXh0cmEgZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogbWVuZ2FiYWlrYW4gZXh0cmEgZGF0YSBkYWxhbSB0YWJlbCBwYXJ0aXNpICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9taXR0aW5nIGVtcHR5IHBhcnRpdGlvbiAoJWQpXG4iCittc2dzdHIgIm1lbmdhYmFpa2FuIHBhcnRpc2kga29zb25nICglZClcbiIKKworIzogZmRpc2svZmRpc2suYzo5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBpZGVudGlmaWVyOiAweCUwOHhcbiIKK21zZ3N0ciAiSWRlbnRpZmlrYXNpIGRpc2s6IDB4JTA4eFxuIgorCisjOiBmZGlzay9mZGlzay5jOjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgZGlzayBpZGVudGlmaWVyIChjdXJyZW50IDB4JTA4eCk6ICIKK21zZ3N0ciAiSWRlbnRpZmlrYXNpIGRpc2sgYmFydSAoc2VrYXJhbmcgMHglMDh4KTogIgorCisjOiBmZGlzay9mZGlzay5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgRE9TIGRpc2tsYWJlbCB3aXRoIGRpc2sgaWRlbnRpZmllciAweCUwOHguXG4iCisiQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLlxuIgorIkFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJNZW1idWF0IHNlYnVhaCBET1MgZGlza2xhYmVsIGJhcnUgZGVuZ2FuIGlkZW50aWZpa2FzaSBkaXNrIDB4JTA4eC5cbiIKKyJQZXJ1YmFoYW4gYWthbiB0ZXRhcCBiZXJhZGEgZGkgbWVtb3JpLCBzYW1wYWkgYW5kYSBtZW11dHVza2FuIHVudHVrICIKKyJtZW51bGlzbnlhLlxuIgorIlNlc3VkYWggaXR1LCB0ZW50dSwgaXNpIHNlYmVsdW1ueWEgdGlkYWsgZGFwYXQgZGlrZW1iYWxpa2FuIGxhZ2kuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3RlOiBzZWN0b3Igc2l6ZSBpcyAlZCAobm90ICVkKVxuIgorbXNnc3RyICJOb3RlOiB1a3VyYW4gc2VjdG9yIGFkYWxhaCAlZCAoYnVrYW4gJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJBbmRhIHRpZGFrIGFrYW4gZGFwYXQgbWVudWxpcyBrZSB0YWJlbCBwYXJ0aXNpLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZGlzayBoYXMgYm90aCBET1MgYW5kIEJTRCBtYWdpYy5cbiIKKyJHaXZlIHRoZSAnYicgY29tbWFuZCB0byBnbyB0byBCU0QgbW9kZS5cbiIKK21zZ3N0ciAiIgorIkRpc2sgaW5pIG1lbWlsaWtpIERPUyBkYW4gQlNEIG1hZ2ljLlxuIgorIkJlcmlrYW4gcGVyaW50YWggJ2InIHVudHVrIGJlcnViYWgga2UgbW9kZSBCU0QuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGICIKKyJkaXNrbGFiZWxcbiIKK21zZ3N0ciAiIgorIlBlcmFuZ2thdCB0aWRhayBiZXJpc2kgdGFiZWwgcGFydGlzaSB5YW5nIHZhbGlkIGJhaWsgdW50dWsgRE9TLCBTdW4sIFNHSSAiCisiYXRhdXB1biBPU0YgZGlza2xhYmVsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJJbnRlcm5hbCBlcnJvclxuIgorbXNnc3RyICJLZXNhbGFoYW4gaW50ZXJuYWxcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJNZW5nYWJhaWthbiBleHRyYSBwYXJ0aXNpIGV4dGVuZGVkICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogaW52YWxpZCBmbGFnIDB4JTA0eCBvZiBwYXJ0aXRpb24gdGFibGUgJWQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyIKKyIocml0ZSlcbiIKK21zZ3N0ciAiIgorIlBlcmluZ2F0YW46IHRhbmRhIHRpZGFrIHZhbGlkIDB4JTA0eCBkYXJpIHRhYmVsIHBhcnRpc2kgJWQgYWthbiBkaWJldHVsa2FuIHciCisiKHJpdGUpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIm1lbXBlcm9sZWggRU9GIHRocmljZSAtIGtlbHVhci4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM2MAorbXNnaWQgIkhleCBjb2RlICh0eXBlIEwgdG8gbGlzdCBjb2Rlcyk6ICIKK21zZ3N0ciAiS29kZSBoZXggKGtldGlrIEwgdW50dWsgZGFmdGFyIGRhcmkga29kZSk6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiJXMgKCV1LSV1LCBkZWZhdWx0ICV1KTogIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgc3VmZml4OiAnJXMnLlxuIgorbXNnc3RyICJBa2hpcmFuIHRpZGFrIGRpZHVrdW5nOiAnJXMnLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisiWWFuZyBkaWR1a3VuZzogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgICAgICAyXk46IEsgIChLaWJpQnl0ZSksIE0gIChNZWJpQnl0ZSksIEcgIChHaWJpQnl0ZSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGRlZmF1bHQgdmFsdWUgJXVcbiIKK21zZ3N0ciAiTWVuZ2d1bmFrYW4gbmlsYWkgZGVmYXVsdCAldVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmFsdWUgb3V0IG9mIHJhbmdlLlxuIgorbXNnc3RyICJOaWxhaSBkaWx1YXIgZGFyaSBqYW5na2F1YW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgIk5vbW9yIHBhcnRpc2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogcGFydGlzaSAlZCBtZW1pbGlraSB0aXBlIGtvc29uZ1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJQYXJ0aXNpIHlhbmcgdGVycGlsaWggJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiVGlkYWsgYWRhIHBhcnRpc2kgeWFuZyBzdWRhaCBkaWRlZmluaXNpa2FuIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIHByaW1hcnkgcGFydGl0aW9ucyBoYXZlIGJlZW4gZGVmaW5lZCBhbHJlYWR5IVxuIgorbXNnc3RyICJTZWx1cnVoIHBhcnRpc2kgcHJpbWFyeSB0ZWxhaCBkaWRlZmluaXNpa2FuIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJjeWxpbmRlciIKK21zZ3N0ciAiY3lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgInNlY3RvciIKK21zZ3N0ciAic2VrdG9yIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICJNZW5ndWJhaCBzYXR1YW4gdGFtcGlsYW4vbWFzdWthbiBtZW5qYWRpICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIlBFUklOR0FUQU46IFBhcnRpc2kgJWQgYWRhbGFoIHNlYnVhaCBwYXJ0aXNpIGV4dGVuZGVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIHNldFxuIgorbXNnc3RyICJUYW5kYSBrb21wYXRpYmlsaXRhcyBET1MgdGVsYWggZGlzZXRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldFxuIgorbXNnc3RyICJUYW5kYSBrb21wYXRpYmlsaWFzIERPUyBiZWx1bSBkaXNldFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiUGFydGlzaSAlZCBiZWx1bSBhZGEhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisiVGlwZSAwIGJlcmFydGkgcnVhbmcga29zb25nIHBhZGEga2ViYW55YWthbiBzeXN0ZW1cbiIKKyIodGV0YXBpIGJ1a2FuIHVudHVrIExpbnV4KS4gTWVtaWxpa2kgcGFydGlzaSBkZW5nYW4gdGlwZSAwIFxuIgorIm11bmdraW4gdGlkYWsgYmFpay4gQW5kYSBkYXBhdCBtZW5naGFwdXMgc2VidWFoIHBhcnRpc2lcbiIKKyJkZW5nYW4gbWVuZ2d1bmFrYW4gcGVyaW50YWggYGQnLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8gYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKyJEZWxldGUgaXQgZmlyc3QuXG4iCittc2dzdHIgIiIKKyJBbmRhIHRpZGFrIGRhcGF0IG1lbmd1YmFoIHNlYnVhaCBwYXJ0aXNpIG1lbmphZGkgc2VidWFoIGV4dGVuZGVkIGF0YXUgXG4iCisic2ViYWxpa255YS4gSGFwdXMgaW5pIHRlcmxlYmloIGRhaHVsdS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiAzIGFzIFdob2xlIGRpc2sgKDUpLFxuIgorImFzIFN1bk9TL1NvbGFyaXMgZXhwZWN0cyBpdCBhbmQgZXZlbiBMaW51eCBsaWtlcyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlBlcnRpbWJhbmdrYW4gdW50dWsgbWVuaW5nZ2Fsa2FuIHBhcnRpc2kgMyBzZWJhZ2FpIFdob2xlIGRpc2sgKDUpLFxuIgorInNlYmFnYWkgU3VuT1MvU29sYXJpcyBtZW5kdWdhIGluaSBkYW4gbXVuZ2tpbiBMaW51eCBtZW55dWthaW55YS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5IGFzIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImFuZCBwYXJ0aXRpb24gMTEgYXMgZW50aXJlIHZvbHVtZSAoNiksIGFzIElSSVggZXhwZWN0cyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlBlcnRpbWJhbmdrYW4gdW50dWsgbWVuaW5nZ2Fsa2FuIHBhcnRpc2kgOSBzZWJhZ2FpIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImRhbiBwYXJ0aXNpIDExIHNlYmFnYWkgc2VsdXJ1aCB2b2x1bWUgKDYpIHNlcGVydGkgSVJJWCBtZW5kdWdhbnlhLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICJNZW5ndWJhIHRpcGUgc2lzdGVtIHBhcnRpc2kgZGFyaSAlZCBtZW5qYWRpICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCBpcyB1bmNoYW5nZWQ6ICV4ICglcylcbiIKK21zZ3N0ciAiVGlwZSBzaXN0ZW0gZGFyaSBwYXJpc2kgJWQgdGlkYWsgYmVydWJhaDogJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAiIgorIlBhcnRpc2kgJWQgbWVtaWxpa2kgcGh5c2ljYWwvbG9naWNhbCBhd2FsIHlhbmcgYmVyYmVkYSAoYnVrYW4tTGludXg/KTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI5IGZkaXNrL2ZkaXNrLmM6MTgzNyBmZGlzay9mZGlzay5jOjE4NDYgZmRpc2svZmRpc2suYzoxODU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorbXNnc3RyICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKKworIzogZmRpc2svZmRpc2suYzoxODMwIGZkaXNrL2ZkaXNrLmM6MTgzOAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpY2FsPSglZCwgJWQsICVkKVxuIgorbXNnc3RyICJsb2dpY2FsPSglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBlbmRpbmdzOlxuIgorbXNnc3RyICJQYXJ0aXNpICVkIG1lbWlsaWtpIHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5ncyB5YW5nIGJlcmJlZGE6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCittc2dzdHIgIlBhcnRpc2kgJWkgdGlkYWsgYmVyYXdhbCBkaSBiYXRhcyBjeWxpbmRlcjpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAxKVxuIgorbXNnc3RyICJzZWhhcnVzbnlhICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQYXJ0aXNpICVpIHRpZGFrIGJlcmFraGlyIGRpIGJhdGFzIGN5bGluZGVyLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsICVkKVxuIgorbXNnc3RyICJzZWhhcnVzbnlhICglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIHBoeXNpY2FsIHNlY3RvciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiUGFydGlzaSAlaSB0aWRhayBiZXJhd2FsIGRpIHBlcmJhdGFzYW4gc2VrdG9yIGZpc2lrLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWxkIE1CLCAlbGxkIGJ5dGVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgaGVhZHMsICVsbHUgc2VjdG9ycy90cmFjaywgJWQgY3lsaW5kZXJzIgorbXNnc3RyICIlZCBoZWFkcywgJWxsdSBzZWt0b3IvdHJhY2ssICVkIGN5bGluZGVycyIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgdG90YWwgJWxsdSBzZWN0b3JzIgorbXNnc3RyICIsIHRvdGFsICVsbHUgc2VrdG9yIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiVW5pdHMgPSAlcyBkYXJpICVkICogJWQgPSAlZCBieXRlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICJVa3VyYW4gc2VrdG9yIChsb2dpa2FsL2Zpc2lrYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSS9PIHNpemUgKG1pbmltdW0vb3B0aW1hbCk6ICVsdSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICJVa3VyYW4gSS9PIChtaW5pbWFsL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICJQZW55ZXN1YWlhbiBvZnNldDogJWx1IGJ5dGVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuIgorIlxuIgorbXNnc3RyICIiCisiVGlkYWsgYWRhIHlhbmcgZGlsYWt1a2FuLiBVcnV0YW4gc3VkYWggZGliZXR1bGthbi5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvbmUuXG4iCittc2dzdHIgIlNlbGVzYWkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisiSW5pIHRpZGFrIHNlcGVydGkgc2VidWFoIHRhYmVsIHBhcnRpc2lcbiIKKyJNdW5na2luIGFuZGEgbWVtaWxpaCBwZXJhbmdrYXQgeWFuZyBzYWxhaFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEJvb3QgICAgICBTdGFydCAgICAgICAgIEVuZCAgICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIEJvb3QgICAgICBBd2FsICAgICAgICAgIEFraGlyICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5OAorbXNnaWQgIkRldmljZSIKK21zZ3N0ciAiUGVyYW5na2F0IgorCisjOiBmZGlzay9mZGlzay5jOjIxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIgorbXNnc3RyICIiCisiXG4iCisiTWFzdWthbiB0YWJlbCBwYXJ0aXNpIHRpZGFrIGRhbGFtIHVydXRhbiBkaXNrXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICJOciBBZiAgSGQgU2VjICBDeWwgIEhkIFNlYyAgQ3lsICAgICBTdGFydCAgICAgIFNpemUgSURcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBjb250YWlucyBzZWN0b3IgMFxuIgorbXNnc3RyICJQZXJpbmdhdGFuOiBwYXJ0aXNpICVkIGJlcmlzaSBzZWt0b3IgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRpc2kgJWQ6IGhlYWQgJWQgbGViaWggYmVzYXIgZGFyaSBtYWtzaW1hbCAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJQYXJ0aXNpICVkOiBzZWt0b3IgJWQgbGViaWggYmVzYXIgZGFyaSBtYWtzaW1hbCAlbGx1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJQYXJ0aXNpICVkOiBjeWxpbmRlciAlZCBsZWJpaCBiZXNhciBkYXJpIG1ha3NpbWFsICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHByZXZpb3VzIHNlY3RvcnMgJWQgZGlzYWdyZWVzIHdpdGggdG90YWwgJWRcbiIKK21zZ3N0ciAiUGFydGlzaSAlZDogc2VrdG9yIHNlYmVsdW1ueWEgJWQgdGlkYWsgc2VzdWFpIGRlbmdhbiB0b3RhbCAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHN0YXJ0LW9mLWRhdGEgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIlBlcmluZ2F0YW46IGF3YWwgZGFyaSBkYXRhIHRpZGFrIGJhaWsgZGFsYW0gcGFydGlzaSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIG92ZXJsYXBzIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogcGFydGlzaSAlZCBvdmVybGFwcyBwYXJ0aXNpICVkLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGlzIGVtcHR5XG4iCittc2dzdHIgIlBlcmluZ2F0YW46IHBhcnRpc2kgJWQga29zb25nXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1NgorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIlBhcnRpc2kgbG9naWNhbCAlZCB0aWRhayBzZWx1cnVobnlhIGJlcmFkYSBkaSBwYXJ0aXNpICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgYy1mb3JtYXQKK21zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlbGx1IGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIlRvdGFsIHNla3RvciB0ZXJhbG9rYXNpICVsbHUgbGViaWggYmVzYXIgZGFyaSBwYWRhIG1ha3NpbWFsICVsbHVcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlbWFpbmluZyAlbGxkIHVuYWxsb2NhdGVkICVkLWJ5dGUgc2VjdG9yc1xuIgorbXNnc3RyICJTaXNhICVsbGQgc2VrdG9yIHRpZGFrIGRpYWxva2FzaWthbiAlZC1ieXRlIHNla3RvclxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzMDEgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDExCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBpcyBhbHJlYWR5IGRlZmluZWQuICBEZWxldGUgaXQgYmVmb3JlIHJlLWFkZGluZyBpdC5cbiIKK21zZ3N0ciAiUGFydGlzaSAlZCBzdWRhaCBkaWRlZmluaXNpa2FuLiBIYXB1cyBpbmkgc2ViZWx1bSBtZW5hbWJhaGthbm55YS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlbGx1IGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIlNla3RvciAlbGx1IHN1ZGFoIGRpYWxva2FzaWthblxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICJUaWRhayBhZGEgc2VrdG9yIHlhbmcga29zb25nXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiVGVyYWtoaXIgJTEkcywgKyUyJHMgYXRhdSArc2l6ZXtLLE0sR30iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBBSVggZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0TWFhZiAtIGZkaXNrIGluaSB0aWRhayBtZW5hbmdhbmkgQUlYIGRpc2sgbGFiZWxzLlxuIgorIlx0SmlrYSBhbmRhIGluZ2luIG1lbmFtYmFoa2FuIHBhcnRpc2kgdGlwZSBET1MsIGJ1YXQgc2VidWFoXG4iCisiXHR0YWJlbCBwYXJ0aXNpIERPUyBiYXJ1IHlhbmcga29zb25nIHRlcmxlYmloIGRhaHVsdS4gKEd1bmFrYW4gby4pXG4iCisiXHRQRVJJTkdBVEFOOiBJbmkgbXVuZ2tpbiBha2FuIG1lbmdoYW5jdXJrYW4gc2VsdXJ1aCBpc2kgZGlzay5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIE1hYyBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHRNYWFmIC0gZmRpc2sgaW5pIHRpZGFrIG1lbmFuZ2FuaSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRKaWthIGFuZGEgaW5naW4gbWVuYW1iYWhrYW4gcGFydGlzaSB0aXBlIERPUywgYnVhdCBzZWJ1YWhcbiIKKyJcdHRhYmVsIHBhcnRpc2kgRE9TIGJhcnUgeWFuZyBrb3NvbmcgdGVybGViaWggZGFodWx1LiAoR3VuYWthbiBvLilcbiIKKyJcdFBFUklOR0FUQU46IEluaSBtdW5na2luIGFrYW4gbWVuZ2hhbmN1cmthbiBzZWx1cnVoIGlzaSBkaXNrLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iCittc2dzdHIgIiIKKyJBbmRhIGhhcnVzIG1lbmdoYXB1cyBiZWJlcmFwYSBwYXJ0aXNpIGRhbiBtZW5hbWJhaGthbiBzZWJ1YWggcGFydGlzaSAiCisiZXh0ZW5kZWQgdGVybGViaWggZGFodWx1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgbG9naWNhbCBwYXJ0aXRpb25zIGFyZSBpbiB1c2VcbiIKK21zZ3N0ciAiU2VsdXJ1aCBwYXJ0aXNpIGxvZ2ljYWwgc2VkYW5nIGRpZ3VuYWthblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nIGEgcHJpbWFyeSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiTWVuYW1iYWhrYW4gc2VidWFoIHBhcnRpc2kgcHJpbWFyeVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbW1hbmQgYWN0aW9uXG4iCisiICAgJXNcbiIKKyIgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNClcbiIKK21zZ3N0ciAiIgorIkFrc2kgcGVyaW50YWhcbiIKKyIgICAlc1xuIgorIiAgIHAgICBwYXJ0aXNpIHByaW1hcnkgKDEtNClcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAibCAgIGxvZ2ljYWwgKDUgb3Igb3ZlcikiCittc2dzdHIgImwgICBsb2dpY2FsICg1IGF0YXUgbGViaWgpIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJlICAgZXh0ZW5kZWQiCittc2dzdHIgImUgICBleHRlbmRlZCIKKworIzogZmRpc2svZmRpc2suYzoyNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgcGFydGl0aW9uIG51bWJlciBmb3IgdHlwZSBgJWMnXG4iCittc2dzdHIgIk5vbW9yIHBhcnRpc2kgdGlkYWsgdmFsaWQgdW50dWsgdGlwZSBgJWMnXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisiVGFiZWwgcGFydGlzaSB0ZWxhaCBkaXViYWghXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIk1lbWFuZ2dpbCBpb2N0bCgpIHVudHVrIG1lbWJhY2Ega2VtYmFsaSB0YWJlbCBwYXJ0aXNpLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQgd2l0aCBlcnJvciAlZDogJXMuXG4iCisiVGhlIGtlcm5lbCBzdGlsbCB1c2VzIHRoZSBvbGQgdGFibGUuIFRoZSBuZXcgdGFibGUgd2lsbCBiZSB1c2VkIGF0XG4iCisidGhlIG5leHQgcmVib290IG9yIGFmdGVyIHlvdSBydW4gcGFydHByb2JlKDgpIG9yIGtwYXJ0eCg4KVxuIgorbXNnc3RyICIiCisiXG4iCisiUEVSSU5HQVRBTjogTWVtYmFjYSBrZW1iYWxpIHRhYmxlIHBhcnRpc2kgZ2FnYWwgZGVuZ2FuIGVycm9yICVkOiAlcy5cbiIKKyJLZXJuZWwgbWFzaWggbWVuZ2d1bmFrYW4gdGFiZWwgeWFuZyBsYW1hLlRhYmVsIHlhbmcgYmFydSBha2FuIGRpZ3VuYWthblxuIgorInNldGVsYWggcmVib290IGF0YXUgc2V0ZWxhaCBhbmRhIG1lbmphbGFua2FuIHBhcnRwcm9iZSg4KSBhdGF1IGtwYXJ0eCg4KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55IERPUyA2LnhcbiIKKyJwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBmZGlzayBtYW51YWwgcGFnZSBmb3IgYWRkaXRpb25hbFxuIgorImluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiUEVSSU5HQVRBTjogSmlrYSBhbmRhIG1lbWJ1YXQgYXRhdSBtZW1vZGlmaWthc2kgcGFydGlzaSBET1MgNi54XG4iCisiLCBtb2hvbiBsaWhhdCBtYW51YWwgZGFyaSBmZGlzayB1bnR1ayBpbmZvcm1hc2lcbiIKKyJsZWJpaCBsYW5qdXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRXJyb3IgY2xvc2luZyBmaWxlXG4iCittc2dzdHIgIiIKKyJcbiIKKyJFcnJvciBkYWxhbSBtZW51dHVwIGZpbGVcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIlNpbmtyb25pc2FzaSBkaXNrcy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgbm8gZGF0YSBhcmVhXG4iCittc2dzdHIgIlBhcnRpc2kgJWQgdGlkYWsgbWVtaWxpa2kgYXJlYSBkYXRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiQXdhbCBiYXJ1IGRhcmkgZGF0YSIKKworIzogZmRpc2svZmRpc2suYzoyNjcyCittc2dpZCAiRXhwZXJ0IGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIlBlcmludGFoIGV4cGVydCAobSB1bnR1ayBiYW50dWFuKTogIgorCisjOiBmZGlzay9mZGlzay5jOjI2ODUKK21zZ2lkICJOdW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICJKdW1sYWggZGFyaSBjeWxpbmRlcnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjcxMAorbXNnaWQgIk51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiSnVtbGFoIGRhcmkgaGVhZHMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczNworbXNnaWQgIk51bWJlciBvZiBzZWN0b3JzIgorbXNnc3RyICJKdW1sYWggZGFyaSBzZWt0b3IiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBzZXR0aW5nIHNlY3RvciBvZmZzZXQgZm9yIERPUyBjb21wYXRpYmxpdHlcbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogc2V0dGluZyBzZWt0b3Igb2Zmc2V0IHVudHVrIERPUyBrb21wYXRpYmlsaXRhc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBFUklOR0FUQU46IEdQVCAoR1VJRCBUYWJlbCBQYXJ0aXNpKSB0ZXJkZXRla3NpIGRpICclcychIGFwbGlrYXNpIGZkaXNrICIKKyJ0aWRhayBtZW5kdWt1bmcgR1BULiBHdW5ha2FuIEdOVSBQYXJ0ZWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzIGRvZXNuJ3QgY29udGFpbiBhIHZhbGlkIHBhcnRpdGlvbiB0YWJsZVxuIgorbXNnc3RyICJEaXNrICVzIHRpZGFrIG1lbWlsaWtpIHNlYnVhaCB0YWJlbCBwYXJ0aXNpIHlhbmcgdmFsaWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbWJ1a2EgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtYnVrYSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWM6IHVua25vd24gY29tbWFuZFxuIgorbXNnc3RyICIlYzogcGVyaW50YWggdGlkYWsgZGlrZXRhaHVpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIGtlcm5lbCBmaW5kcyB0aGUgc2VjdG9yIHNpemUgaXRzZWxmIC0gLWIgb3B0aW9uIGlnbm9yZWRcbiIKK21zZ3N0ciAiS2VybmVsIGluaSBtZW5jYXJpIHVrdXJhbiBzZWt0b3JueWEgc2VuZGlyaSAtIHBpbGloYW4gLWIgZGlhYmFpa2FuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiUGVyaW5nYXRhbjogcGlsaWhhbiAtYiAoc2V0IHVrdXJhbiBzZWt0b3IpIHNlaGFydXNueWEgZGlndW5ha2FuIGRlbmdhbiBzYWxhaCAiCisic2F0dXBlcmFuZ2thdCB5YW5nIGRpZ3VuYWthblxuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgYW4gT1NGLzEgZGlza2xhYmVsIG9uICVzLCBlbnRlcmluZyBkaXNrbGFiZWwgbW9kZS5cbiIKK21zZ3N0ciAiVGVyZGV0ZWtzaSBzZWJ1YWggT1NGLzEgZGlza2xhYmVsIGRpICVzLCBtZW1hc3VraSBtb2RlIGRpc2tsYWJlbC5cbiIKKworIzogZmRpc2svZmRpc2suYzozMDEwCittc2dpZCAiQ29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiUGVyaW50YWggKG0gdW50dWsgYmFudHVhbik6ICIKKworIzogZmRpc2svZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgY3VycmVudCBib290IGZpbGUgaXM6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJCb290IGZpbGUgeWFuZyBzYWF0IGluaSBkaWd1bmFrYW46ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJUb2xvbmcgbWFzdWtrYW4gbmFtYSBkYXJpIGJvb3QgZmlsZSB5YW5nIGJhcnU6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiQm9vdCBmaWxlIHRpZGFrIGRpdWJhaFxuIgorCisjOiBmZGlzay9mZGlzay5jOjMxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJIHBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRNYWFmLCB0aWRhayBhZGEgbWVudSBleHBlcnRzIHVudHVrIHRhYmVsIHBhcnRpc2kgU0dJLlxuIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIE1hYyBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IGZkaXNrKDEpIGNhbm5vdCBoYW5kbGUgdGhlc2UgZGlza3MuXG4iCisiXHRVc2UgZWl0aGVyIHBkaXNrIG9yIHBhcnRlZCB0byBtb2RpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyJcdE5ldmVydGhlbGVzcyBzb21lIGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0VGVyZGFwYXQgc2VidWFoIE1hYyBsYWJlbCB5YW5nIHZhbGlkIGRpIGRpc2sgaW5pLlxuIgorIlx0U2F5YW5nbnlhIGZkaXNrKDEpIHRpZGFrIGRhcGF0IG1lbmFuZ2FuaSBkaXNrIGluaSBzYWF0XG4iCisiXHRHdW5ha2FuIHBkaXNrIGF0YXUgcGFydGVkIHVudHVrIG1lbW9kaWZpa2FzaSB0YWJlbCBwYXJ0aXNpLlxuIgorIlx0QmViZXJhcGEgc2FyYW46XG4iCisiXHQxLiBmZGlzayBha2FuIG1lbmdoYW5jdXJrYW4gaXNpIHBhZGEgd2FrdHUgbWVudWxpcyBrZSBkaXNrLlxuIgorIlx0Mi4gUGFzdGlrYW4gZGlzayBpbmkgQlVLQU4gYmFnaWFuIHZpdGFsIGRhcmkgdm9sdW1lIGdyb3VwLiAoSmlrYSBcbiIKKyJcdCAgIGFuZGEgbXVuZ2tpbiBha2FuIG1lbmdoYXB1cyBkaXNrIGxhaW4ganVnYSwgamlrYSB0aWRhayBkaSBtaXJyb3IuKVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODEKK21zZ2lkICJTR0kgdm9saGRyIgorbXNnc3RyICJTR0kgdm9saGRyIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODIKK21zZ2lkICJTR0kgdHJrcmVwbCIKK21zZ3N0ciAiU0dJIHRya3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MworbXNnaWQgIlNHSSBzZWNyZXBsIgorbXNnc3RyICJTR0kgc2VjcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg0Cittc2dpZCAiU0dJIHJhdyIKK21zZ3N0ciAiU0dJIHJhdyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg1Cittc2dpZCAiU0dJIGJzZCIKK21zZ3N0ciAiU0dJIGJzZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg2Cittc2dpZCAiU0dJIHN5c3YiCittc2dzdHIgIlNHSSBzeXN2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODcKK21zZ2lkICJTR0kgdm9sdW1lIgorbXNnc3RyICJTR0kgdm9sdW1lIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODgKK21zZ2lkICJTR0kgZWZzIgorbXNnc3RyICJTR0kgZWZzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODkKK21zZ2lkICJTR0kgbHZvbCIKK21zZ3N0ciAiU0dJIGx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MAorbXNnaWQgIlNHSSBybHZvbCIKK21zZ3N0ciAiU0dJIHJsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTEKK21zZ2lkICJTR0kgeGZzIgorbXNnc3RyICJTR0kgeGZzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTIKK21zZ2lkICJTR0kgeGZzbG9nIgorbXNnc3RyICJTR0kgeGZzbG9nIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTMKK21zZ2lkICJTR0kgeGx2IgorbXNnc3RyICJTR0kgeGx2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTQKK21zZ2lkICJTR0kgeHZtIgorbXNnc3RyICJTR0kgeHZtIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTUgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwCittc2dpZCAiTGludXggc3dhcCIKK21zZ3N0ciAiTGludXggc3dhcCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk2IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MQorbXNnaWQgIkxpbnV4IG5hdGl2ZSIKK21zZ3N0ciAiTGludXggbmF0aXZlIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJNZW51cnV0IE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jLiBsYWJlbCBoYXJ1cyBiZXJpc2kgdGlkYWsgbGViaWggZGFyaSA1MTIgIgorImJ5dGVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJUZXJkZXRla3NpIHNnaSBkaXNrbGFiZWwgZGVuZ2FuIGNoZWNrc3VtIHNhbGFoLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnNcbiIKKyIlZCBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VrdG9yXG4iCisiJWQgc2lsaW5kZXIsICVkIHBoeXNpY2FsIHNpbGluZGVyXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgZGFyaSAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNla3RvciwgJWQgc2lsaW5kZXJcbiIKKyJTYXR1YW4gPSAlcyBkYXJpICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIHBhcnRpc2kgLS0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgQXdhbCAgICAgICAgQWtoaXIgU2VrdG9yICAgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIE1hc3VrYW4gRGlyZWt0b3JpIC0tLS0tXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIgorbXNnc3RyICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiQm9vdGZpbGUgdGlkYWsgdmFsaWQhXG4iCisiXHRCb290ZmlsZSBoYXJ1cyBzZWJ1YWggcGF0aG5hbWUgeWFuZyB0aWRhayBrb3NvbmdtLFxuIgorIlx0ZS5nLiBcIi91bml4XCIgYXRhdSBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0TmFtYSBkYXJpIEJvb3RmaWxlIHRlcmxhbHUgcGFuamFuZzogMTYgYnl0ZXMgbWFrc2ltYWwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRCb290ZmlsZSBoYXJ1cyBtZW1pbGlraSBzZWJ1YWggZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEhhdGkgLSBoYXRpLCBib290ZmlsZSB0aWRhayBkaSBwZXJpa3NhIGtlYmVyYWRhYW5ueWEuXG4iCisiXHRTR0kncyBkZWZhdWx0IGFkYWxhaCBcIi91bml4XCIgZGFuIHVudHVrIGJhY2t1cCBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0Qm9vdGZpbGUgYmVydWJhaCBtZW5qYWRpIFwiJXNcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJNb3JlIHRoYW4gb25lIGVudGlyZSBkaXNrIGVudHJ5IHByZXNlbnQuXG4iCittc2dzdHIgIkxlYmloIGRhcmkgc2F0dSBtYXN1a2FuIHNlbHVydWggZGlzayB5YW5nIGFkYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJUaWRhayBhZGEgcGFydGlzaSB5YW5nIGRpZGVmaW5pc2lrYW5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJJUklYIGxpa2VzIHdoZW4gUGFydGl0aW9uIDExIGNvdmVycyB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIklSSVggc2VwZXJ0aSBrZXRpa2EgUGFydGlzaSAxMSBtZWxpcHV0aSBzZWx1cnVoIGRpc2suXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIlNlbHVydWggZGlzayBwYXJ0aXNpIHNlaGFydXNueWEgYmVyYXdhbCBkaSBibG9jayAwLFxuIgorImJ1a2FuIGRpIGRpc2tibG9jayAlZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBpcyBvbmx5ICVkIGRpc2tibG9jayBsYXJnZSxcbiIKKyJidXQgdGhlIGRpc2sgaXMgJWQgZGlza2Jsb2NrcyBsb25nLlxuIgorbXNnc3RyICIiCisiU2VsdXJ1aCBkaXNrIHBhcnRpc2kgaGFueWEgc2ViZXNhciAlZCBkaXNrYmxvY2ssXG4iCisidGV0YXBpIGJlc2FyIGRpc2sgYWRhbGFoICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiU2F0dSBQYXJ0aXNpICgjMTEpIHNlaGFydXNueWEgbWVtZW51aGkgc2VsdXJ1aCBkaXNrLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiUGFydGlzaSAlZCB0aWRhayBiZXJhd2FsIGRpIGJhdGFzIGN5bGluZGVyLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnRpc2kgJWQgdGlkYWsgYmVyYWtoaXIgZGkgYmF0YXMgY3lsaW5kZXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIFBhcnRpdGlvbiAlZCBhbmQgJWQgb3ZlcmxhcCBieSAlZCBzZWN0b3JzLlxuIgorbXNnc3RyICJQYXJ0aXNpICVkIGRhbiAlZCBvdmVybGFwICVkIHNla3Rvci5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ4NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgb2YgJTh1IHNlY3RvcnMgLSBzZWN0b3JzICU4dS0ldVxuIgorbXNnc3RyICJHYXAgeWFuZyB0aWRhayBkaWd1bmFrYW4gc2ViYW55YWsgJTh1IHNla3RvciAtIHNla3RvciAlOHUtJXVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGJvb3QgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiUGFydGlzaSBib290IHRpZGFrIGFkYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiUGFydGlzaSBzd2FwIHRpZGFrIGFkYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGhhcyBubyBzd2FwIHR5cGUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQYXJ0aXNpIHN3YXAgdGlkYWsgbWVtaWxpa2kgdGlwZSBzd2FwLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iCittc2dzdHIgIlx0QW5kYSB0ZWxhaCBtZW1pbGloIHNlYnVhaCBuYW1hIGZpbGUgYm9vdCB5YW5nIHRpZGFrIGJpYXNhLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIiIKKyJNYWFmIEFuZGEgbXVuZ2tpbiB0ZWxhaCBtZXJ1YmFoIFRhZyBkYXJpIHNlYnVhaCBwYXJ0aXNpIHlhbmcgdGlkYWsga29zb25nLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJJbmkgc2FuZ2F0IGRpc2FyYW5rYW4gYmFod2EgcGFydGlzaSBkaSBvZmZzZXQgMCBtZW1pbGlraSB0aXBlXG4iCisiXCJTR0kgdm9saGRyXCIsIElSSVggc3lzdGVtIGFrYW4gYmVyZ2FudHVuZyBwYWRhIGluaSB1bnR1ayBtZW5lcmltYVxuIgorInBlcmFuZ2thdCBkaXJla3Rvcmkgc3RhbmRhbG9uZSBzZXBlcnRpIHNhc2ggZGFuIGZ4LiBIYW55YSBcIlNHSSB2b2x1bWVcIiBcbiIKKyJkaSBiYWdpYW4ga2VzZWx1cnVoYW4gZGlzayBha2FuIG1lbmdnYW5nZ3UgaW5pLiBLZXRpayBZRVMgamlrYSBhbmRhIHlha2luXG4iCisibWVuZ2VuYWkgdGFnZ2luZyBwYXJ0aXNpIGluaSBzZWNhcmEgYmVyYmVkYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIllBXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiIgorIkFwYWthaCBhbmRhIHRhaHUsIEFuZGEgbWVtcGVyb2xlaCBzZWJ1YWggcGFydGlzaSB5YW5nIG92ZXJsYXAgZGkgZGlzaz9cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICJBdHRlbXB0aW5nIHRvIGdlbmVyYXRlIGVudGlyZSBkaXNrIGVudHJ5IGF1dG9tYXRpY2FsbHkuXG4iCittc2dzdHIgIk1lbmNvYmEgdW50dWsgbWVtYnVhdCBzZWx1cnVoIG1hc3VrYW4gZGlzayBzZWNhcmEgb3RvbWF0aXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIlNlbHVydWggZGlzayBzdWRhaCBkaWxpbmdrdXBpIG9sZWggcGFydGlzaS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiIgorIkFuZGEgbWVtcGVyb2xlaCBzZWJ1YWggcGFydGlzaSB5YW5nIG92ZXJsYXAgZGkgZGlzay4gQmV0dWxrYW4gaW5pIHRlcmxlYmloICIKKyJkYWh1bHUhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIkluaSBzYW5nYXQgZGlyZWtvbWVuZGFzaWthbiB1bnR1ayBwYXJ0aXNpIGtlc2ViZWxhc1xuIgorIm1lbmNha3VwaSBzZWx1cnVoIGRpc2sgZGFuIG1lbXB1bnlhaSB0aXBlIGBTR0kgdm9sdW1lJ1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIGdldCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKyJBbmRhIGFrYW4gbWVtcGVyb2xlaCBzZWJ1YWggcGFydGlzaSB5YW5nIG92ZXJsYXAgZGkgZGlzay4gQmV0dWxrYW4gaW5pICIKKyJ0ZXJsZWJpaCBkYWh1bHUhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIExhc3QgJXMiCittc2dzdHIgIiBUZXJha2hpciAlcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgU0dJIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3aWxsIGJlIHVucmVjb3ZlcmFibHkgbG9zdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIk1lbWJ1YWggc2VidWFoIGRpc2tsYWJlbCBTR0kgeWFuZyBiYXJ1LiBQZXJ1YmFoYW4gaGFueWEgYWthbiBhZGEgZGkgbWVtb3JpLFxuIgorInNhbXBhaSBhbmRhIG1lbXV0dXNrYW4gdW50dWsgbWVudWxpc255YS4gU2VzdWRhaCBpdHUsIHRlbnR1LCBpc2kgc2ViZWx1bW55YVxuIgorImFrYW4gaGlsYW5nIGRhbiB0aWRhayBkYXBhdCBkaWtlbWJhbGlrYW4uXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKyJQZXJpbmdhdGFuOiBCTEtHRVRTSVpFIGlvY3RsIGdhZ2FsIGRpICVzLiBNZW5nZ3VuYWthbiBuaWxhaSBnZW9tZXRyaSAiCisiY3lsaW5kZXIgZGFyaSAlZC5cbiIKKyJOaWxhaSBpbmkgbXVuZ2tpbiBha2FuIGRpcG90b25nIHVudHVrIHBlcmFuZ2thdCB5YW5nIGJlcnVrdXJhbiA+IDMzLjggR0IuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIGtlZXAgcGFyYW1ldGVycyBvZiBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIk1lbmNvYmEgdW50dWsgbWVueWltcGFuIHBhcmFtZXRlciBkYXJpIHBhcnRpc2kgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSUQ9JTAyeFx0U1RBUlQ9JWRcdExFTkdUSD0lZFxuIgorbXNnc3RyICJJRD0lMDJ4XHRBV0FMPSVkXHRQQU5KQU5HPSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIlRpZGFrIGRpIGFzc2lnbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiU3VuT1Mgcm9vdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1Mgc3dhcCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIlNlbHVydWggZGlzayIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0Cittc2dpZCAiU3VuT1Mgc3RhbmQiCittc2dzdHIgIlN1bk9TIHN0YW5kIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDUKK21zZ2lkICJTdW5PUyB2YXIiCittc2dzdHIgIlN1bk9TIHZhciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ2Cittc2dpZCAiU3VuT1MgaG9tZSIKK21zZ3N0ciAiU3VuT1MgaG9tZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIlN1bk9TIGFsdCBzZWt0b3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorbXNnaWQgIlN1bk9TIGNhY2hlZnMiCittc2dzdHIgIlN1bk9TIGNhY2hlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OQorbXNnaWQgIlN1bk9TIHJlc2VydmVkIgorbXNnc3RyICJTdW5PUyByZXNlcnZlZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorIlRlcmRldGVrc2kgZGlza2xhYmVsIHN1biBkZW5nYW4gY2hlY2tzdW0geWFuZyBzYWxhaC5cbiIKKyJNdW5na2luIGFuZGEgaGFydXMgbWVuc2V0IHNlbXVhIG5pbGFpLCBoZWFkcywgc2VjdG9ycywgXG4iCisiY3lsaW5kZXJzIGRhbiBwYXJ0aXNpIHVudHVrIG1lbWFrc2EgZnJlc2ggbGFiZWwgXG4iCisiKHBlcmludGFoIHMgZGFsYW0gbWFpbiBtZW51KVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICJUZXJkZXRla3NpIHN1biBkaXNrbGFiZWwgZGVuZ2FuIHZlcnNpIHNhbGFoIFsweCUwOHhdLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBzYW5pdHkgWzB4JTA4eF0uXG4iCittc2dzdHIgIlRlcmRldGVrc2kgc3VuIGRpc2tsYWJlbCBkZW5nYW4gc2FuaXR5IHNhbGFoIFsweCUwOHhdLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICJUZXJkZXRla3NpIHN1biBkaXNrbGFiZWwgZGVuZ2FuIG51bV9wYXJ0aXRpb25zIHNhbGFoIFsldV0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJQZXJpbmdhdGFuOiBOaWxhaSBzYWxhaCBidXR1aCB1bnR1ayBwZXJiYWlraSBkYW4gYWthbiBkaXBlcmJhaWtpIHcocml0ZSlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIk1lbWJ1YXQgc2VidWFoIGRpc2tsYWJlbCBzdW4gYmFydS4gUGVydWJhaGFuIGFrYW4gdGV0YXAgYmVyYWRhIGRpIG1lbW9yaSxcbiIKKyJzYW1wYWkgYW5kYSBtZW11dHVza2FuIHVudHVrIG1lbnVsaXMgcGVydWJhaGFuIHRlcnNlYnV0LiBTZXN1ZGFoIGl0dSwgdGVudHVcbiIKKyIsIGlzaSBzZWJlbHVtbnlhIHRpZGFrIGRhcGF0IGRpIGtlbWJhbGlrYW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICJTZWt0b3IvdHJhY2siCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXNuJ3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIlBhcnRpc2kgJWQgdGlkYWsgYmVyYWtoaXIgZGFsYW0gYmF0YXMgY3lsaW5kZXJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgb3ZlcmxhcHMgd2l0aCBvdGhlcnMgaW4gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJQYXJ0aXNpICVkIG92ZXJsYXAgZGVuZ2FuIHlhbmcgbGFpbm55YSBkaSBzZWt0b3IgJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAwLSVkXG4iCittc2dzdHIgIkdhcCB5YW5nIHRpZGFrIGRpZ3VuYWthbiAtIHNla3RvciAwLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJHYXAgeWFuZyB0aWRhayBkaWd1bmFrYW4gc2VrdG9yICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKyJQYXJ0aXNpIGxhaW4gc3VkYWggbWVsaW5na3VwaSBzZWx1cnVoIGRpc2suXG4iCisiSGFwdXMgc2ViYWdpYW4va2VjaWxrYW4gbWVyZWthIHNlYmVsdW0gbWVuY29iYSBsYWdpLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiSW5pIHNhbmdhdCBkaXJla29tZW5kYXNpa2FuIHBhcnRpc2kga2V0aWthIG1lbGluZ2t1cGkgc2VsdXJ1aCBkaXNrXG4iCisiZGFuIG1lbWlsaWtpIHRpcGUgYFdob2xlIGRpc2snXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIlNla3RvciAlZCBzdWRhaCBkaWFsb2thc2lrYW5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmVuJ3QgY292ZXJlZCB0aGUgd2hvbGUgZGlzayB3aXRoIHRoZSAzcmQgcGFydGl0aW9uLCBidXQgeW91ciB2YWx1ZVxuIgorIiVkICVzIGNvdmVycyBzb21lIG90aGVyIHBhcnRpdGlvbi4gWW91ciBlbnRyeSBoYXMgYmVlbiBjaGFuZ2VkXG4iCisidG8gJWQgJXNcbiIKK21zZ3N0ciAiIgorIkFuZGEgYmVsdW0gbWVsaW5na3VwaSBzZWx1cnVoIGRpc2sgZGVuZ2FuIHBhcnRpc2kga2UgdGlnYSwgdGV0YXBpIG5pbGFpICIKKyJhbmRhXG4iCisiJWQgJXMgbWVsaW5na3VwaSBiZWJlcmFwYSBwYXJ0aXNpIHlhbmcgbGFpbi4gTWFzdWthbiBhbmRhIHRlbGFoIGJlcnViYWggXG4iCisibWVuamFkaSAlZCAlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyJKaWthIGFuZGEgaW5naW4gbWVuamFnYSBrb21wYXRpYmlsaXRhcyBkZW5nYW4gU3VuT1MvU29sYXJpcywgcGVydGltYmFuZ2thbiBcbiIKKyJ1bnR1ayBtZW5pbmdnYWxrYW4gcGFydGlzaSBpbmkgc2ViYWdhaSBXaG9sZSBkaXNrICg1KSwgbXVsYWkgZGkgMCwgZGVuZ2FuICV1ICIKKyJzZWN0b3JzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIFVGUywgRVhUMkZTIGZpbGVzeXN0ZW0gb3IgU3VuT1Mgc3dhcC4gUHV0dGluZyBMaW51eCBzd2FwXG4iCisidGhlcmUgbWF5IGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUgYW5kIGJvb3RibG9jay5cbiIKKyJUeXBlIFlFUyBpZiB5b3UncmUgdmVyeSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRoYXQgcGFydGl0aW9uXG4iCisidGFnZ2VkIHdpdGggODIgKExpbnV4IHN3YXApOiAiCittc2dzdHIgIiIKKyJJbmkgc2FuZ2F0IGRpcmVrb21lbmRhc2lrYW4gYmFod2EgcGFydGlzaSBkaSBvZmZzZXQgMCBhZGFsYWggVUZTLCBFWFQyRlMgXG4iCisiZmlsZXN5c3RlbSBhdGF1IFN1bk9TIHN3YXAuIE1lbmVtcGF0a2FuIExpbnV4IHN3YXAgZGlzYW5hIG11bmdraW4gYWthbiBcbiIKKyJtZW5naGFuY3Vya2FuIHRhYmVsIHBhcnRpc2kgYW5kYSBkYW4gYm9vdGJsb2NrLiBLZXRpayBZRVMgamlrYSBhbmRhIHNhbmdhdCBcbiIKKyJ5YWtpbiwgYWthbmthaCBhbmRhIG1lbnNldCAodGFnKSBwYXJ0aXNpIHRlcnNlYnV0IGRlbmdhbiB0aXBlIDgyIChMaW51eCAiCisic3dhcCk6ICIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBycG1cbiIKKyIlZCBjeWxpbmRlcnMsICVkIGFsdGVybmF0ZSBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiTGFiZWwgSUQ6ICVzXG4iCisiVm9sdW1lIElEOiAlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJTYXR1YW4gPSAlcyBkYXJpICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEZsYWcgICAgU3RhcnQgICAgICAgRW5kICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIFRhbmRhICAgQXdhbCAgICAgICAgQWtoaXIgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYyNQorbXNnaWQgIk51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICJKdW1sYWggZGFyaSBjeWxpbmRlciBhbHRlcm5hdGl2ZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYzNworbXNnaWQgIkV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICJFeHRyYSBzZWt0b3IgcGVyIGN5bGluZGVyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjQ0Cittc2dpZCAiSW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIkZha3RvciBJbnRlcmxlYXZlIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjUxCittc2dpZCAiUm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIktlY2VwYXRhbiByb3Rhc2kgKHJwbSkiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTgKK21zZ2lkICJOdW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICJKdW1sYWggZGFyaSBwaHlzaWNhbCBjeWxpbmRlcnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICJLb3NvbmciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICJGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4Cittc2dpZCAiWEVOSVggcm9vdCIKK21zZ3N0ciAiWEVOSVggcm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5Cittc2dpZCAiWEVOSVggdXNyIgorbXNnc3RyICJYRU5JWCB1c3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAKK21zZ2lkICJGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjExCittc2dpZCAiRXh0ZW5kZWQiCittc2dzdHIgIkV4dGVuZGVkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIGJvb3RhYmxlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgQm9vdCBNYW5hZ2VyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICJXOTUgRXh0J2QgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICJPUFVTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIyCittc2dpZCAiSGlkZGVuIEZBVDEyIgorbXNnc3RyICJGQVQxMiBUZXJzZW1idW55aSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMworbXNnaWQgIkNvbXBhcSBkaWFnbm9zdGljcyIKK21zZ3N0ciAiQ29tcGFxIGRpYWdub3N0aWNzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI0Cittc2dpZCAiSGlkZGVuIEZBVDE2IDwzMk0iCittc2dzdHIgIkZBVDE2IFRlcnNlbWJ1bnlpIDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjUKK21zZ2lkICJIaWRkZW4gRkFUMTYiCittc2dzdHIgIkZBVDE2IFRlcnNlbWJ1bnlpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiSFBGUy9OVEZTIFRlcnNlbWJ1bnlpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI3Cittc2dpZCAiQVNUIFNtYXJ0U2xlZXAiCittc2dzdHIgIkFTVCBTbWFydFNsZWVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI4Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiIKK21zZ3N0ciAiVzk1IEZBVDMyIFRlcnNlbWJ1bnlpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI5Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDMyIChMQkEpIFRlcnNlbWJ1bnlpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIFRlcnNlbWJ1bnlpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMxCittc2dpZCAiTkVDIERPUyIKK21zZ3N0ciAiTkVDIERPUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMgorbXNnaWQgIlBsYW4gOSIKK21zZ3N0ciAiUGxhbiA5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMzCittc2dpZCAiUGFydGl0aW9uTWFnaWMgcmVjb3ZlcnkiCittc2dzdHIgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIlZlbml4IDgwMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM1Cittc2dpZCAiUFBDIFBSZVAgQm9vdCIKK21zZ3N0ciAiUFBDIFBSZVAgQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNgorbXNnaWQgIlNGUyIKK21zZ3N0ciAiU0ZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM3Cittc2dpZCAiUU5YNC54IgorbXNnc3RyICJRTlg0LngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzgKK21zZ2lkICJRTlg0LnggMm5kIHBhcnQiCittc2dzdHIgIlFOWDQueCAybmQgcGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDNyZCBwYXJ0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQwCittc2dpZCAiT25UcmFjayBETSIKK21zZ3N0ciAiT25UcmFjayBETSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MQorbXNnaWQgIk9uVHJhY2sgRE02IEF1eDEiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDIKK21zZ2lkICJDUC9NIgorbXNnc3RyICJDUC9NIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQzCittc2dpZCAiT25UcmFjayBETTYgQXV4MyIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NAorbXNnaWQgIk9uVHJhY2tETTYiCittc2dzdHIgIk9uVHJhY2tETTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDUKK21zZ2lkICJFWi1Ecml2ZSIKK21zZ3N0ciAiRVotRHJpdmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDYKK21zZ2lkICJHb2xkZW4gQm93IgorbXNnc3RyICJHb2xkZW4gQm93IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ3Cittc2dpZCAiUHJpYW0gRWRpc2siCittc2dzdHIgIlByaWFtIEVkaXNrIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTIKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OQorbXNnaWQgIlNwZWVkU3RvciIKK21zZ3N0ciAiU3BlZWRTdG9yIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ5Cittc2dpZCAiR05VIEhVUkQgb3IgU3lzViIKK21zZ3N0ciAiR05VIEhVUkQgYXRhdXMgU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiT2xkIE1pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8gb2xkIExpbnV4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2Cittc2dpZCAiTGludXggc3dhcCAvIFNvbGFyaXMiCittc2dzdHIgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU4Cittc2dpZCAiT1MvMiBoaWRkZW4gQzogZHJpdmUiCittc2dzdHIgIk9TLzIgaGlkZGVkIEM6IGRyaXZlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU5Cittc2dpZCAiTGludXggZXh0ZW5kZWQiCittc2dzdHIgIkxpbnV4IGV4dGVuZGVkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIk5URlMgdm9sdW1lIHNldCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorbXNnaWQgIkxpbnV4IHBsYWludGV4dCIKK21zZ3N0ciAiTGludXggcGxhaW50ZXh0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY0Cittc2dpZCAiQW1vZWJhIgorbXNnc3RyICJBbW9lYmEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjUKK21zZ2lkICJBbW9lYmEgQkJUIgorbXNnc3RyICJBbW9lYmEgQkJUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY2Cittc2dpZCAiQlNEL09TIgorbXNnc3RyICJCU0QvT1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjcKK21zZ2lkICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCittc2dzdHIgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OAorbXNnaWQgIkZyZWVCU0QiCittc2dzdHIgIkZyZWVCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjkKK21zZ2lkICJPcGVuQlNEIgorbXNnc3RyICJPcGVuQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIk5leHRTVEVQIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcxCittc2dpZCAiRGFyd2luIFVGUyIKK21zZ3N0ciAiRGFyd2luIFVGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MgorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiTmV0QlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjczCittc2dpZCAiRGFyd2luIGJvb3QiCittc2dzdHIgIkRhcndpbiBib290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc0Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiSEZTIC8gSFBGKyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NQorbXNnaWQgIkJTREkgZnMiCittc2dzdHIgIkJTREkgZnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIkJTREkgc3dhcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NworbXNnaWQgIkJvb3QgV2l6YXJkIGhpZGRlbiIKK21zZ3N0ciAiQm9vdCBXaXphcmQgaGlkZGVuIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICJTb2xhcmlzIGJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzkKK21zZ2lkICJTb2xhcmlzIgorbXNnc3RyICJTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgwCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTIpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODEKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MgorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2KSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgzCittc2dpZCAiU3lyaW54IgorbXNnc3RyICJTeXJpbngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODQKK21zZ2lkICJOb24tRlMgZGF0YSIKK21zZ3N0ciAiTm9uLUZTIGRhdGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODUKK21zZ2lkICJDUC9NIC8gQ1RPUyAvIC4uLiIKK21zZ3N0ciAiQ1AvTSAvIENUT1MgLyAuLi4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODcKK21zZ2lkICJEZWxsIFV0aWxpdHkiCittc2dzdHIgIkRlbGwgVXRpbGl0eSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OAorbXNnaWQgIkJvb3RJdCIKK21zZ3N0ciAiQm9vdEl0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg5Cittc2dpZCAiRE9TIGFjY2VzcyIKK21zZ3N0ciAiRE9TIGFjY2VzcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MQorbXNnaWQgIkRPUyBSL08iCittc2dzdHIgIkRPUyBSL08iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTQKK21zZ2lkICJCZU9TIGZzIgorbXNnc3RyICJCZU9TIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk1Cittc2dpZCAiR1BUIgorbXNnc3RyICJHUFQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIkVGSSAoRkFULTEyLzE2LzMyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NworbXNnaWQgIkxpbnV4L1BBLVJJU0MgYm9vdCIKK21zZ3N0ciAiTGludXgvUEEtUklTQyBib290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMAorbXNnaWQgIkRPUyBzZWNvbmRhcnkiCittc2dzdHIgIkRPUyBzZWNvbmRhcnkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAxCittc2dpZCAiVk13YXJlIFZNRlMiCittc2dzdHIgIlZNd2FyZSBWTUZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMgorbXNnaWQgIlZNd2FyZSBWTUtDT1JFIgorbXNnc3RyICJWTXdhcmUgVk1LQ09SRSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJzZWVrIGVycm9yIGRpICVzIC0gdGlkYWsgZGFwYXQgc2VlayBrZSAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3I6IHdhbnRlZCAweCUwOHglMDh4LCBnb3QgMHglMDh4JTA4eFxuIgorbXNnc3RyICJzZWVrIGVycm9yOiBkaWluZ2lua2FuIDB4JTA4eCUwOHgsIGRpcGVyb2xlaCAweCUwOHglMDh4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAia2VoYWJpc2FuIG1lbW9yeSAtIG1lbnllcmFoXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiZXJyb3IgZGFsYW0gbWVtYmFjYSBkaSAlcyAtIHRpZGFrIGRhcGF0IG1lbWJhY2EgZGkgc2VrdG9yICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiRVJST1I6IHNla3RvciAlbHUgdGlkYWsgbWVtaWxpa2kgc2VidWFoIG1zZG9zIHNpZ25hdHVyZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXMgLSBjYW5ub3Qgd3JpdGUgc2VjdG9yICVsdVxuIgorbXNnc3RyICJrZXNhbGFoYW4gZGFsYW0gbWVudWxpcyBkaSAlcyAtIHRpZGFrIGRhcGF0IG1lbnVsaXMgZGkgc2VrdG9yICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHNlY3RvciBzYXZlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW1idWthIHBhcnRpc2kgc2VrdG9yIHNhdmUgZmlsZSAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICJlcnJvciBtZW51bGlzIGRpICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtcGVyb2xlaCBzdGF0aXN0aWsgZGFyaSBmaWxlIHJlc3RvcmUgKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDAKK21zZ2lkICJwYXJ0aXRpb24gcmVzdG9yZSBmaWxlIGhhcyB3cm9uZyBzaXplIC0gbm90IHJlc3RvcmluZ1xuIgorbXNnc3RyICIiCisiZmlsZSBwYXJ0aXNpIHVudHVrIHJlc3RvcmUgbWVtaWxpa2kgdWt1cmFuIHlhbmcgc2FsYWggLSB0aWRhayBtZWxha3VrYW4gIgorInJlc3RvcmVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQ0Cittc2dpZCAib3V0IG9mIG1lbW9yeT9cbiIKK21zZ3N0ciAia2VoYWJpc2FuIG1lbW9yeT9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW1idWthIHBhcnRpc2kgcmVzdG9yZSBmaWxlICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiZXJyb3IgZGFsYW0gbWVtYmFjYSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gZGV2aWNlICVzIGZvciB3cml0aW5nXG4iCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbWJ1a2EgcGVyYW5na2F0ICVzIHVudHVrIG1lbnVsaXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICJlcnJvciBkYWxhbSBtZW51bGlzIHNla3RvciAlbHUgZGkgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgZ2VvbWV0cnlcbiIKK21zZ3N0ciAiRGlzayAlczogdGlkYWsgZGFwYXQgbWVtcGVyb2xlaCBnZW9tZXRyaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBzaXplXG4iCittc2dzdHIgIkRpc2sgJXM6IHRpZGFrIGRhcGF0IG1lbXBlcm9sZWggdWt1cmFuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc3RhcnQ9JWx1IC0gdGhpcyBsb29rcyBsaWtlIGEgcGFydGl0aW9uIHJhdGhlciB0aGFuXG4iCisidGhlIGVudGlyZSBkaXNrLiBVc2luZyBmZGlzayBvbiBpdCBpcyBwcm9iYWJseSBtZWFuaW5nbGVzcy5cbiIKKyJbVXNlIHRoZSAtLWZvcmNlIG9wdGlvbiBpZiB5b3UgcmVhbGx5IHdhbnQgdGhpc11cbiIKK21zZ3N0ciAiIgorIlBlcmluZ2F0YW46IHN0YXJ0PSVsdSAtIGluaSBtdW5na2luIHNlcGVydGkgc2VidWFoIHBhcnRpc2kgZGFyaSBwYWRhXG4iCisic2VsdXJ1aCBkaXNrLiBNZW5nZ3VuYWthbiBmZGlzayB1bnR1ayBpbmkgbXVuZ2tpbiB0aWRhayBiZXJhcnRpLlxuIgorIltHdW5ha2FuIHBpbGloYW4gLS1mb3JjZSBqaWthIGFuZGEgYmVuYXIgLSBiZW5hciBtZW5naW5naW5rYW4gaGFsIGluaV1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGhlYWRzXG4iCittc2dzdHIgIlBlcmluZ2F0YW46IEhESU9fR0VUR0VPIG1lbmdhdGFrYW4gYmFod2EgZGlzYW5hIGFkYSAlbHUgaGVhZHNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IHNlY3RvcnNcbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogSERJT19HRVRHRU8gbWVuZ2F0YWthbiBiYWh3YSBkaXNhbmEgYWRhICVsdSBzZWt0b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIiIKKyJQZXJpbmdhdGFuOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIG1lbmdhdGFrYW4gYmFod2EgZGlzYW5hIGFkYSAlbHUgIgorImN5bGluZGVyc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJQZXJpbmdhdGFuOiB0aWRhayBzZXBlcnRpIGp1bWxhaCBzZWt0b3IgKCVsdSkgLSBiaWFzYW55YSBhZGEgZGkgNjNcbiIKKyJJbmkgYWthbiBtZW1iZXJpa2FuIG1hc2FsYWggZGVuZ2FuIHNlbHVydWggc29mdHdhcmUgeWFuZyBwZW5nYWxhbWF0YW4gIgorIm1lbmd1bmFrYW4gQy9IL1MuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWx1IGN5bGluZGVycywgJWx1IGhlYWRzLCAlbHUgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWx1IGN5bGluZGVycywgJWx1IGhlYWRzLCAlbHUgc2VjdG9ycy90cmFja1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKyIlcyBkYXJpIHBhcnRpc2kgJXMgbWVtaWxpa2kganVtbGFoIGhlYWQgeWFuZyB0aWRhayBtdW5na2luOiAlbHUgKHNlaGFydXNueWEgIgorImJlcmFkYSBkYWxhbSAwLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgZGFyaSBwYXJ0aXNpICVzIG1lbWlsaWtpIGp1bWxhaCBzZWt0b3IgeWFuZyB0aWRhayBtdW5na2luOiAlbHUgIgorIihzZWhhcnVzbnlhIGJlcmFkYSBkYWxhbSAxLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGN5bGluZGVyczogJWx1IChzaG91bGQgYmUgaW4gMC0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgZGFyaSBwYXJ0aXNpICVzIG1lbWlsaWtpIGp1bWxhaCBjeWxpbmRlcnMgeWFuZyB0aWRhayBtdW5na2luOiAlbHUgIgorIihzZWhhcnVzbnlhIGJlcmFkYSBkYWxhbSAwLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZCAgTmFtZVxuIgorIlxuIgorbXNnc3RyICIiCisiTmFtYSBJZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIC4uLlxuIgorbXNnc3RyICJNZW1iYWNhIGtlbWJhbGkgdGFiZWwgcGFydGlzaSAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCittc2dpZCAiIgorIlRoZSBjb21tYW5kIHRvIHJlLXJlYWQgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQuXG4iCisiUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIG9yIHJlYm9vdCB5b3VyIHN5c3RlbSBub3csXG4iCisiYmVmb3JlIHVzaW5nIG1rZnNcbiIKK21zZ3N0ciAiIgorIlBlcmludGFoIHVudHVrIG1lbWJhY2Ega2VtYmFsaSB0YWJlbCBwYXJ0aXNpIGdhZ2FsLlxuIgorIkphbGFua2FuIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIGF0YXUgcmVib290IHNpc3RlbSBhbmRhIHNla2FyYW5nLFxuIgorInNlYmVsdW0gbWVuZ2d1bmFrYW4gbWtmc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2xvc2luZyAlc1xuIgorbXNnc3RyICJFcnJvciBtZW51dHVwICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IHRpZGFrIGFkYSBwYXJ0aXNpIHNlcGVydGkgaXR1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg3OAorbXNnaWQgInVucmVjb2duaXplZCBmb3JtYXQgLSB1c2luZyBzZWN0b3JzXG4iCittc2dzdHIgImZvcm1hdCB0aWRhayBkaWtlbmFsaSAtIG1lbmdndW5ha2FuIHNla3RvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5pbXBsZW1lbnRlZCBmb3JtYXQgLSB1c2luZyAlc1xuIgorbXNnc3RyICJmb3JtYXQgdGlkYWsgZGlpbXBsZW1lbnRhc2lrYW4gLSBtZW5nZ3VuYWthbiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gY3lsaW5kZXJzIG9mICVsdSBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlNhdHVhbiA9IGN5bGluZGVycyBkYXJpICVsdSBieXRlcywgYmxvY2sgZGFyaSAxMDI0IGJ5dGVzLCBkaWhpdHVuZyBkYXJpICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRGV2aWNlIEJvb3QgQXdhbCAgICAgIEFraGlyICNjeWxzICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiU2F0dWFuID0gc2VrdG9yIGRhcmkgNTEyIGJ5dGVzLCBkaWhpdHVuZyBkYXJpICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgICBTdGFydCAgICAgICBFbmQgICAjc2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBEZXZpY2UgQm9vdCAgICBBd2FsICAgICAgICBBa2hpciAjc2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlNhdHVhbiA9IGJsb2NrcyBkYXJpIDEwMjQgYnl0ZXMsIGRpaGl0dW5nIGRhcmkgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgU3RhcnQgICAgICAgRW5kICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIERldmljZSBCb290ICAgQXdhbCAgICAgICAgQWtoaXIgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlNhdHVhbiA9IG1lYmlieXRlcyBkYXJpIDEwNDg1NzYgYnl0ZXMsIGJsb2NrcyBkYXJpIDEwMjQgYnl0ZXMsIGRpaGl0dW5nIGRhcmkgIgorIiVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgIEVuZCAgICBNaUIgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRGV2aWNlIEJvb3QgQXdhbCAgICBBa2hpciAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJcdFx0YXdhbDogKGMsaCxzKSBkaXBlcmtpcmFrYW4gKCVsZCwlbGQsJWxkKSBkaXRlbXVrYW4gKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJcdFx0YWtoaXI6IChjLGgscykgZGlwZXJraXJha2FuICglbGQsJWxkLCVsZCkgZGl0ZW11a2FuICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgInBhcnRpc2kgdGlkYWsgYmVyYWtoaXIgZGkgY3lsaW5kZXIgJWxkLCBkaWx1YXIgZGFyaSBha2hpciBkYXJpIGRpc2tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiVGlkYWsgYWRhIHBhcnRpc2kgeWFuZyBkaXRlbXVrYW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJQZXJpbmdhdGFuOiBUYWJlbCBwYXJ0aXNpIHNlcGVydGlueWEgc2VwZXJ0aSB0ZWthbCBkaWJ1YXQgdW50dWtcbiIKKyJDL0gvUz0qLyVsZC8lbGQgKGRhcmlwYWRhIHVudHVrICVsZC8lbGQvJWxkKS5cbiIKKyJVbnR1ayBkYWZ0YXIgaW5pIFNheWEgYWthbiBiZXJhc3Vtc2kgZGVuZ2FuIG1lbmdndW5ha2FuIGdlb210cmkgdGVyc2VidXQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAidGlkYWsgYWRhIHRhYmVsIHBhcnRpc2kgeWFuZyBhZGEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RyYW5nZSwgb25seSAlZCBwYXJ0aXRpb25zIGRlZmluZWQuXG4iCittc2dzdHIgImFuZWgsIGhhbnlhICVkIHBhcnRpc2kgeWFuZyBkaWRlZmluaXNpa2FuLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iCittc2dzdHIgIiIKKyJQZXJpbmdhdGFuOiBwYXJ0aXNpICVzIG1lbWlsaWtpIHVrdXJhbiAwIHRldGFwaSB0aWRhayBkaXRhbmRhaSBLb3NvbmdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogcGFydGlzaSAlcyBtZW1pbGlraSB1a3VyYW4gMCBkYW4gYm9vdGFibGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgbm9uemVybyBzdGFydFxuIgorbXNnc3RyICJQZXJpbmdhdGFuOiBwYXJ0aXNpICVzIG1lbWlsaWtpIHVrdXJhbiAwIGRhbiBhd2FsIHlhbmcgdGlkYWsga29zb25nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzICIKK21zZ3N0ciAiUGVyaW5nYXRhbjogcGFydGlzaSAlcyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgbm90IGNvbnRhaW5lZCBpbiBwYXJ0aXRpb24gJXNcbiIKK21zZ3N0ciAidGlkYWsgYmVyYWRhIGRpIHBhcnRpc2kgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb25zICVzICIKK21zZ3N0ciAiUGVyaW5nYXRhbjogcGFydGlzaSAlcyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiYW5kICVzIG92ZXJsYXBcbiIKK21zZ3N0ciAiZGFuICVzIG92ZXJsYXBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogcGFydGl0aW9uICVzIGNvbnRhaW5zIHBhcnQgb2YgdGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisiYW5kIHdpbGwgZGVzdHJveSBpdCB3aGVuIGZpbGxlZFxuIgorbXNnc3RyICIiCisiUGVyaW5nYXRhbjogcGFydGlzaSAlcyBiZXJpc2kgYmFnaWFuIGRhcmkgdGFiZWwgcGFydGlzaSAoc2VrdG9yICVsdSksXG4iCisiZGFuIGFrYW4gbWVuZ2hhbmN1cmthbm55YSBrZXRpa2EgdGVyaXNpLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogcGFydGlzaSAlcyBiZXJhd2FsIGRpIHNla3RvciAwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGV4dGVuZHMgcGFzdCBlbmQgb2YgZGlza1xuIgorbXNnc3RyICJQZXJpbmdhdGFuOiBwYXJ0aXNpICVzIG1lbHVhcyBtZWxld2F0aSBha2hpciBkYXJpIGRpc2tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorIkRpYW50YXJhIHBhcnRpc2kgcHJpbWFyeSwgcGFsaW5nIHRpZGFrIHNhdHUgZGFwYXQgbWVuamFkaSBleHRlbmRlZFxuIgorIih3YWxhdXB1biBpbmkgYnVrYW4gbWVuamFkaSBtYXNhbGFoIGRhbGFtIExpbnV4KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIlBlcmluZ2F0YW46IHBhcnRpc2kgJXMgdGlkYWsgYmVyYXdhbCBkYWxhbSBiYXRhcyBjeWxpbmRlclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJQZXJpbmdhdGFuOiBwYXJ0aXNpICVzIHRpZGFrIGJlcmFraGlyIGRhbGFtIGJhdGFzIGN5bGluZGVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiUGVyaW5nYXRhbjogbGViaWggZGFyaSBzYXR1IHBhcnRpcyBwcmltYXJ5IHlhbmcgZGl0YW5kYWkgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJJbmkgdGlkYWsgbWVuamFkaSBtYXNhbGFoIHVudHVrIExJTE8sIHRldGFwaSBET1MgTUJSIHRpZGFrIGFrYW4gbWVtLWJvb3QgIgorImRpc2sgaW5pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzE4Cittc2dpZCAiIgorIldhcm5pbmc6IHVzdWFsbHkgb25lIGNhbiBib290IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zIG9ubHlcbiIKKyJMSUxPIGRpc3JlZ2FyZHMgdGhlIGBib290YWJsZScgZmxhZy5cbiIKK21zZ3N0ciAiIgorIlBlcmluZ2F0YW46IGJpYXNhbnlhIGhhbnlhIHNhdHUgeWFuZyBkYXBhdCBkaSBib290IGRhcmkgcGFydGlzaSBwcmltYXJ5XG4iCisiTElMTyBtZW5nYWJhaWthbiB0YW5kYSBgYm9vdGFibGUnLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzI0Cittc2dpZCAiIgorIldhcm5pbmc6IG5vIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJQZXJpbmdhdGFuOiB0aWRhayBhZGEgcGFydGlzaSBwcmltYXJ5IHlhbmcgZGl0YW5kYWkgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJJbmkgdGlkYWsgbWVuamFkaSBtYXNhbGFoIHVudHVrIExJTE8sIHRldGFwaSBET1MgTUJSIHRpZGFrIGFrYW4gZGFwYXQgbWVtLSIKKyJib290IGRpc2sgaW5pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzM4Cittc2dpZCAic3RhcnQiCittc2dzdHIgImF3YWwiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInBhcnRpdGlvbiAlczogc3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJwYXJ0aXNpICVzOiBhd2FsOiAoYyxoLHMpIGRpcGVya2lyYWthbiAoJWxkLCVsZCwlbGQpIGRpdGVtdWthbiAoJWxkLCVsZCwlIgorImxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQ3Cittc2dpZCAiZW5kIgorbXNnc3RyICJha2hpciIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorInBhcnRpc2kgJXM6IGFraGlyOiAoYyxoLHMpIGRpcGVya2lyYWthbiAoJWxkLCVsZCwlbGQpIGRpdGVtdWthbiAoJWxkLCVsZCwlIgorImxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAicGFydGlzaSAlcyBiZXJha2hpciBkaSBjeWxpbmRlciAlbGQsIGRpbHVhciBkYXJpIGFraGlyIGRhcmkgZGlza1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzaGlmdGVkIHN0YXJ0IG9mIHRoZSBleHRkIHBhcnRpdGlvbiBmcm9tICVsZCB0byAlbGRcbiIKKyIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorbXNnc3RyICIiCisiUGVyaW5nYXRhbjogYXdhbCB0ZXJnZXNlciBkYXJpIGV4dGQgcGFydGlzaSBkYXJpICVsZCBtZW5qYWRpICVsZFxuIgorIihIYW55YSB1bnR1ayB0dWp1YW4gcGVuZGFmdGFyYW4uIEphbmdhbiBtZW5ndWJhaCBpc2lueWEuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiUGVyaW5nYXRhbjogcGFydGlzaSBleHRlbmRlZCB0aWRhayBiZXJhd2FsIGRpIGJhdGFzIGN5bGluZGVyLlxuIgorIkRPUyBkYW4gTGludXggYWthbiBtZW5naW50ZXJwcmV0YXNpa2FuIGlzaSBzZWNhcmEgYmVyYmVkYS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQwMiBmZGlzay9zZmRpc2suYzoxNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnMgLSBpZ25vcmluZyB0aG9zZSBwYXN0IG5yICglZClcbiIKK21zZ3N0ciAidGVybGFsdSBiYW55YWsgcGFydGlzaSAtIG1lbmdhYmFpa2FuIHBhcnRpc2kgeWFuZyBtZWxld2F0aSBuciAoJWQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MTcKK21zZ2lkICJ0cmVlIG9mIHBhcnRpdGlvbnM/XG4iCittc2dzdHIgInRyZWUgZGFyaSBwYXJ0aXNpP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTI1Cittc2dpZCAiZGV0ZWN0ZWQgRGlzayBNYW5hZ2VyIC0gdW5hYmxlIHRvIGhhbmRsZSB0aGF0XG4iCittc2dzdHIgInRlcmRldGVrc2kgRGlzayBNYW5hZ2VyIC0gdGlkYWsgZGFwYXQgbWVuYW5nYW5pIGluaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTMyCittc2dpZCAiRE02IHNpZ25hdHVyZSBmb3VuZCAtIGdpdmluZyB1cFxuIgorbXNnc3RyICJETTYgc2lnbmF0dXJlIGRpdGVtdWthbiAtIG1lbnllcmFoXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTIKK21zZ2lkICJzdHJhbmdlLi4uLCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJhbmVoLi4uLCBzZWJ1YWggZXh0ZW5kZWQgcGFydGlzaSB5YW5nIGJlcnVrdXJhbiAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJhbmVoLi4uLCBzZWJ1YWggQlNEIHBhcnRpc2kgeWFuZyBiZXJ1a3VyYW4gMD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgJXM6IHVucmVjb2duaXplZCBwYXJ0aXRpb24gdGFibGUgdHlwZVxuIgorbXNnc3RyICIgJXM6IHRpcGUgdGFiZWwgcGFydGlzaSB0aWRhayBkaWtldGFodWlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYxNgorbXNnaWQgIi1uIGZsYWcgd2FzIGdpdmVuOiBOb3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAicGlsaWhhbiAtbiB0ZWxhaCBkaWJlcmlrYW46IFRpZGFrIGFkYSB5YW5nIGJlcnViYWhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzMgorbXNnaWQgIkZhaWxlZCBzYXZpbmcgdGhlIG9sZCBzZWN0b3JzIC0gYWJvcnRpbmdcbiIKK21zZ3N0ciAiR2FnYWwgbWVueWltcGFuIHNla3RvciBsYW1hIC0gbWVtYmF0YWxrYW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzNyBmZGlzay9zZmRpc2suYzoxNjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB3cml0aW5nIHRoZSBwYXJ0aXRpb24gb24gJXNcbiIKK21zZ3N0ciAiR2FnYWwgbWVudWxpcyBwYXJ0aXNpIGRpICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3MTkKK21zZ2lkICJsb25nIG9yIGluY29tcGxldGUgaW5wdXQgbGluZSAtIHF1aXR0aW5nXG4iCittc2dzdHIgInBhbmphbmcgYXRhdSBiYXJpcyBpbnB1dCB0aWRhayBjb21wbGV0ZSAtIGJlcmhlbnRpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IGA9JyBleHBlY3RlZCBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICJpbnB1dCBlcnJvcjogYD0nIGRpcGVya2lyYWthbiBzZXRlbGFoICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IHVuZXhwZWN0ZWQgY2hhcmFjdGVyICVjIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgImlucHV0IGVycm9yOiB1bmV4cGVjdGVkIGNoYXJhY3RlciAlYyBzZXRlbGFoICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICJpbnB1dCB0aWRhayBkaWtldGFodWk6ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTAKK21zZ2lkICJudW1iZXIgdG9vIGJpZ1xuIgorbXNnc3RyICJub21vciB0ZXJsYWx1IGJlc2FyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICJ0cmFpbGluZyBqdW5rIHNlc3VkYWggbm9tb3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTkzOAorbXNnaWQgIm5vIHJvb20gZm9yIHBhcnRpdGlvbiBkZXNjcmlwdG9yXG4iCittc2dzdHIgInRpZGFrIGFkYSBydWFuZyB1bnR1ayBwYXJ0aXNpIGRlc2tyaXBzaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTcxCittc2dpZCAiY2Fubm90IGJ1aWxkIHN1cnJvdW5kaW5nIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW1idWF0IGV4dGVuZGVkIHBhcnRpc2kgZGlzZWtpdGFybnlhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwMjIKK21zZ2lkICJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIKK21zZ3N0ciAidGVybGFsdSBiYW55YSBpbnB1dFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDU2Cittc2dpZCAiTm8gcm9vbSBmb3IgbW9yZVxuIgorbXNnc3RyICJUaWRhayBhZGEgcnVhbmcgbGFnaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIlRpcGUgaWxlZ2FsXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZ2l2ZW4gc2l6ZSAoJWx1KSBleGNlZWRzIG1heCBhbGxvd2FibGUgc2l6ZSAoJWx1KVxuIgorbXNnc3RyICIiCisiUGVyaW5nYXRhbjogZGliZXJpa2FuIHVrdXJhbiAoJWx1KSBtZWxlYmloaSB1a3VyYW4gbWFrc2ltYWwgeWFuZyBkaWlqaW5rYW4gKCUiCisibHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMTMKK21zZ2lkICJXYXJuaW5nOiBlbXB0eSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiUGVyaW5nYXRhbjogcGFydGlzaSBrb3NvbmdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIlBlcmluZ2F0YW46IHBhcnRpc2kgbWVtaWxpa2kgYXdhbCB5YW5nIGJ1cnVrICh0ZXJsYWx1IGF3YWwgJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTQwCittc2dpZCAidW5yZWNvZ25pemVkIGJvb3RhYmxlIGZsYWcgLSBjaG9vc2UgLSBvciAqXG4iCittc2dzdHIgInRhbmRhIGJvb3RhYmxlIHRpZGFrIGRpa2V0YWh1aSAtIHBpbGloIC0gYXRhdSAqXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNTcgZmRpc2svc2ZkaXNrLmM6MjE3MAorbXNnaWQgInBhcnRpYWwgYyxoLHMgc3BlY2lmaWNhdGlvbj9cbiIKK21zZ3N0ciAicGFydGlhbCBjLGgscyBzcGVzaWZpa2FzaT9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE4MQorbXNnaWQgIkV4dGVuZGVkIHBhcnRpdGlvbiBub3Qgd2hlcmUgZXhwZWN0ZWRcbiIKK21zZ3N0ciAiRXh0ZW5kZWQgcGFydGlzaSB0aWRhayBkaXBlcmtpcmFrYW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIxMworbXNnaWQgImJhZCBpbnB1dFxuIgorbXNnc3RyICJpbnB1dCB0aWRhayBiYWlrXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMzUKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zXG4iCittc2dzdHIgInRlcmxhbHUgYmFueWFrIHBhcnRpc2lcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisiTWFzdWtrYW4gZGVuZ2FuIG1lbmdndW5ha2FuIGZvcm1hdCBiZXJpa3V0OyBmaWVsZCB5YW5nIGtvc29uZyBha2FuICIKKyJtZW1wZXJvbGVoXG4iCisibmlsYWkgZGVmYXVsdC4gPGF3YWw+IDx1a3VyYW4+IDx0aXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXSA8YyxoLHM+XG4iCisiPGMsaCxzPiBiaWFzYW55YSBhbmRhIGhhbnlhIHBlcmx1IHVudHVrIG1lbnNwZXNpa2FuIDxhd2FsPiBkYW4gPHVrdXJhbj4gKGRhbiAiCisibXVuZ2tpbiA8dGlwZT4pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gZGV2aWNlIC4uLlxuIgorbXNnc3RyICJQZW5nZ3VuYWFuOiAlcyBbcGlsaWhhbl0gcGVyYW5na2F0IC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAicGVyYW5na2F0OiBzZXN1YXR1IHNlcGVydGkgL2Rldi9oZGEgYXRhdSAvZGV2L3NkYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NgorbXNnaWQgInVzZWZ1bCBvcHRpb25zOiIKK21zZ3N0ciAicGlsaWhhbiB5YW5nIGJlcmd1bmE6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgIC1zIFthdGF1IC0tc2hvdy1zaXplXTogdGFtcGlsa2FuIHVrdXJhbiBzZXRpYXAgcGFydGlzaSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgICAtYyBbb3IgLS1pZF06ICAgICAgICBwcmludCBvciBjaGFuZ2UgcGFydGl0aW9uIElkIgorbXNnc3RyICIgICAgLWMgW2F0YXUgLS1pZF06ICAgICAgbWVuY2V0YWsgYXRhdSBtZW5ndWJhYiBJZCBkYXJpIHBhcnRpc2kiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIgICAgLWwgW2F0YXUgLS1saXN0XTogICAgdGFtcGlsa2FuIHBhcnRpc2kgZGkgc2V0aWFwIHBlcmFuZ2thdCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAtZCBbb3IgLS1kdW1wXTogICAgICBpZGVtLCBidXQgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGxhdGVyIGlucHV0IgorbXNnc3RyICIiCisiICAgIC1kIFthdGF1IC0tZHVtcF06ICAgIGlkZW0sIHRldGFwaSBkYWxhbSBzZWJ1YWggZm9ybWF0IHlhbmcgc2VzdWFpIHVudHVrICIKKyJpbnB1dCBzZWxhbmp1dG55YSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAtaSBbb3IgLS1pbmNyZW1lbnRdOiBudW1iZXIgY3lsaW5kZXJzIGV0Yy4gZnJvbSAxIGluc3RlYWQgb2YgZnJvbSAwIgorbXNnc3RyICIiCisiICAgIC1pIFthdGF1IC0taW5jcmVtZW50XTogbm9tb3IgY3lsaW5kZXJzIGV0Yy4gZGFyaSAxIGRhcmkgcGFkYSBkYXJpIDAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDIKK21zZ2lkICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGFjY2VwdC9yZXBvcnQgaW4gdW5pdHMgb2Ygc2VjdG9ycy9ibG9ja3MvY3lsaW5kZXJzLyIKKyJNQiIKK21zZ3N0ciAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBtZW5lcmltYS9tZWxhcG9ya2FuIGRhbGFtIHNhdHVhbiBkYXJpIHNla3Rvci9ibG9jay8iCisiY3lsaW5kZXJzL01CIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAzCittc2dpZCAiICAgIC1UIFtvciAtLWxpc3QtdHlwZXNdOmxpc3QgdGhlIGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiIgorIiAgICAtVCBbYXRhdSAtLWxpc3QtdHlwZXNdOnRhbXBpbGthbiBkYWZ0YXIgZGFyaSB0aXBlIHBhcnRpc2kgeWFuZyBkaWtldGFodWkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorIiAgICAtRCBbYXRhdSAtLURPU106ICAgICB1bnR1ayBET1Mta29tcGF0aWJpbGl0YXM6IG1lbWJ1YXQgc2VkaWtpdCBydWFuZyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAtUiBbb3IgLS1yZS1yZWFkXTogICBtYWtlIGtlcm5lbCByZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICAgLVIgW2F0YXUgLS1yZS1yZWFkXSAgbWVtYnVhdCBrZXJuZWwgbWVtYmFjYSBrZW1iYWxpIHRhYmVsIHBhcnRpc2kiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDYKK21zZ2lkICIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIgorbXNnc3RyICIgICAgLU4jIDogICAgICAgICAgICAgICAgaGFueWEgbWVuZ3ViYWggcGFydGlzaSBub21vciAjIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA3Cittc2dpZCAiICAgIC1uIDogICAgICAgICAgICAgICAgIGRvIG5vdCBhY3R1YWxseSB3cml0ZSB0byBkaXNrIgorbXNnc3RyICIgICAgLW4gOiAgICAgICAgICAgICAgICAgdGlkYWsgbWVudWxpcyBzZWJlbmFybnlhIGtlIGRpc2siCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDgKK21zZ2lkICIiCisiICAgIC1PIGZpbGUgOiAgICAgICAgICAgIHNhdmUgdGhlIHNlY3RvcnMgdGhhdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHRvIGZpbGUiCittc2dzdHIgIiAgICAtTyBmaWxlIDogICAgICAgICAgICBtZW55aW1wYW4gc2VjdG9ycyB5YW5nIGFrYW4gZGl0dWxpcyBrZSBmaWxlIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA5Cittc2dpZCAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIHJlc3RvcmUgdGhlc2Ugc2VjdG9ycyBhZ2FpbiIKK21zZ3N0ciAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIG1lbmdlbWJhbGlrYW4gc2VrdG9yIGl0dSBrZW1iYWxpIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEwCittc2dpZCAiICAgIC12IFtvciAtLXZlcnNpb25dOiAgIHByaW50IHZlcnNpb24iCittc2dzdHIgIiAgICAtdiBbYXRhdSAtLXZlcnNpb25dOiB0YW1waWxrYW4gdmVyc2kgZGFyaSBhcGxpa2FzaSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiAgICAtPyBbYXRhdSAtLWhlbHBdOiAgICB0YW1waWxrYW4gcGVzYW4gaW5pIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEyCittc2dpZCAiZGFuZ2Vyb3VzIG9wdGlvbnM6IgorbXNnc3RyICJwaWxpaGFuIHlhbmcgYmVyYmFoYXlhOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIgICAgLWcgW2F0YXUgLS1zaG93LWdlb21ldHJ5XTogdGFtcGlsa2FuIGlkZSBrZXJuZWwgbWVuZ2VuYWkgZ2VvbWV0cmkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTQKK21zZ2lkICIiCisiICAgIC1HIFtvciAtLXNob3ctcHQtZ2VvbWV0cnldOiBwcmludCBnZW9tZXRyeSBndWVzc2VkIGZyb20gdGhlIHBhcnRpdGlvbiAiCisidGFibGUiCittc2dzdHIgIiIKKyIgICAgLUcgW2F0YXUgLS1zaG93LXB0LWdlb21ldHJ5XTogdGFtcGlsa2FuIGdlb21ldHJ5IHlhbmcgZGl0ZWJhayBkYXJpIHRhYmVsICIKKyJwYXJ0aXNpIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE1Cittc2dpZCAiIgorIiAgICAteCBbb3IgLS1zaG93LWV4dGVuZGVkXTogYWxzbyBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMgb24gb3V0cHV0XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBleHBlY3QgZGVzY3JpcHRvcnMgZm9yIHRoZW0gb24gaW5wdXQiCittc2dzdHIgIiIKKyIgICAgLXggW2F0YXUgLS1zaG93LWV4dGVuZGVkXToganVnYSBtZW5hbXBpbGthbiBwYXJ0aXNpIGV4dGVuZGVkIGRhbGFtICIKKyJvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRhdSBtZW1wZXJraXJha2FuIGRlc2tyaXBzaSBkYXJpIHBhcnRpc2kgZGkgIgorImlucHV0IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiIKKyIgICAgLUwgIFthdGF1IC0tTGludXhdOiAgICBqYW5nYW4gbWVuZ2tvbXBsYWluIG1lbmdlbmFpIHNlc3VhdHUgeWFuZyB0aWRhayAiCisiYmVyaHVidW5nYW4gZGVuZ2FuIExpbnV4IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbYXRhdSAtLXF1aWV0XTogICAgbWVuZWthbiBwZXNhbiBwZXJpbmdhdGFuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiICAgIEFuZGEgZGFwYXQgbWVtYWtzYSBwZW5kZXRla3NpYW4gZ2VvbWV0cmkgZGVuZ2FuIG1lbmdndW5ha2FuOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAtQyMgW29yIC0tY3lsaW5kZXJzICNdOnNldCB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyB0byB1c2UiCittc2dzdHIgIiAgICAtQyMgW2F0YXUgLS1jeWxpbmRlcnMgI106c2V0IGp1bWxhaCBkYXJpIGN5bGluZGVycyB5YW5nIGRpZ3VuYWthbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1IIyBbYXRhdSAtLWhlYWRzICNdOiAgc2V0IGp1bWxhaCBkYXJpIGhlYWRzIHlhbmcgZGlndW5ha2FuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIyCittc2dpZCAiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiCittc2dzdHIgIiAgICAtUyMgW2F0YXUgLS1zZWN0b3JzICNdOiBzZXQganVtbGFoIGRhcmkgc2VjdG9ycyB5YW5nIGRpZ3VuYWthbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMworbXNnaWQgIllvdSBjYW4gZGlzYWJsZSBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcgd2l0aDoiCittc2dzdHIgIkFuZGEgZGFwYXQgbWVtYXRpa2FuIHNlbHVydWggcGVtZXJpa3NhYW4ga29uc2lzdGVuc2kgZGVuZ2FuOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIiCisiICAgIC1mICBbYXRhdSAtLWZvcmNlXTogICAgbGFrdWthbiBzZXBlcnRpIHlhbmcgU0FZQSBrYXRha2FuLCBtZXNraXB1biBpbmkgIgorIm1lcnVwYWthbiBwZXJidWF0YW4geWFuZyBib2RvaCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAiUGVuZ2d1bmFhbjoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIlcyBwZXJhbmdrYXRcdFx0IGRhZnRhciBkYXJpIHBhcnRpc2kgYWt0aWYgZGkgcGVyYW5na2F0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIiCisiJXMgcGVyYW5na2F0IG4xIG4yIC4uLiBha3RpdmFzaSBwYXJ0aXNpIG4xIC4uLiwgbWVub25ha3RpZmthbiBzaXNhbnlhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLUFuIGRldmljZVx0IGFjdGl2YXRlIHBhcnRpdGlvbiBuLCBpbmFjdGl2YXRlIHRoZSBvdGhlciBvbmVzXG4iCittc2dzdHIgIiVzIC1BbiBwZXJhbmdrYXRcdCBha3RpdmFzaSBwYXJ0aXNpIG4sIG1lbm9uYWt0aWZrYW4geWFuZyBsYWlubnlhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQRVJJTkdBVEFOOiBHUFQgKEdVSUQgVGFiZWwgUGFydGlzaSkgdGVyZGV0ZWtzaSBkaSAnJXMnISBBcGxpa2FzaSBzZmRpc2sgIgorInRpZGFrIG1lbmR1a3VuZyBHUFQuIEd1bmFrYW4gR05VIFBhcnRlZC5cbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICJHdW5ha2FuIHBpbGloYW4gLS1mb3JjZSB1bnR1ayBtZW1ha3NhIHBlbWVyaWtzYWFuIGluaS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgInRpZGFrIGFkYSBwZXJpbnRhaD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjYyNworIywgYy1mb3JtYXQKK21zZ2lkICJ0b3RhbDogJWxsdSBibG9ja3NcbiIKK21zZ3N0ciAianVtbGFoOiAlbGx1IGJsb2Nrc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcwCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLXByaW50LWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyXG4iCittc2dzdHIgInBlbmdndW5hYW46IHNmZGlzayAtLXByaW50LWlkIHBlcmFuZ2thdCBub21vci1wYXJ0aXNpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzIKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tY2hhbmdlLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIElkXG4iCittc2dzdHIgInBlbmdndW5hYW46IHNmZGlzayAtLWNoYW5nZS1pZCBwZXJhbmdrYXQgbm9tb3ItcGFydGlzaSBJZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAicGVuZ2d1bmFhbjogc2ZkaXNrIC0taWQgcGVyYW5na2F0IG5vbW9yLXBhcnRpc2kgW0lkXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjgxCittc2dpZCAiY2FuIHNwZWNpZnkgb25seSBvbmUgZGV2aWNlIChleGNlcHQgd2l0aCAtbCBvciAtcylcbiIKK21zZ3N0ciAiIgorInRpZGFrIGRhcGF0IG1lbnNwZXNpZmlrYXNpa2FuIGhhbnlhIHVudHVrIHNhdHUgcGVyYW5na2F0IChrZWN1YWxpIGRlbmdhbiAiCisicGlsaWhhbiAtbCBhdGF1IC1zKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtYnVrYSAlcyB1bnR1ayBiYWNhLXR1bGlzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtYnVrYSAlcyB1bnR1ayBtZW1iYWNhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9LXG4iCittc2dzdHIgIiVzOiBPS1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzUzIGZkaXNrL3NmZGlzay5jOjI3ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjeWxpbmRlcnMsICVsZCBoZWFkcywgJWxkIHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiJXM6ICVsZCBjeWxpbmRlcnMsICVsZCBoZWFkcywgJWxkIHNlY3RvcnMvdHJhY2tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IHNpemUgb2YgJXNcbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtcGVyb2xlaCB1a3VyYW4gZGFyaSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODg1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBhY3RpdmUgYnl0ZTogMHgleCBpbnN0ZWFkIG9mIDB4ODBcbiIKK21zZ3N0ciAiYWN0aXZlIGJ5dGUgdGlkYWsgYmFpazogMHgleCBkYXJpcGFkYSAweDgwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlNlbGVzYWlcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgJWQgYWN0aXZlIHByaW1hcnkgcGFydGl0aW9ucy4gVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sXG4iCisiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIKK21zZ3N0ciAiIgorIkFuZGEgbWVtaWxpa2kgJWQgcHJpbWFyeSBwYXJ0aXNpIHlhbmcgYWt0aWYuIEluaSB0aWRhayBiZXJtYXNhbGFoIHVudHVrICIKKyJMSUxPLFxuIgorInRldGFwaSBET1MgTUJSIGhhbnlhIGFrYW4gbWVtYm9vdCBzZWJ1YWggZGlzayBkZW5nYW4gMSBhY3RpdmUgcGFydGlzaS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgInBhcnRpc2kgJXMgbWVtaWxpa2kgaWQgJXggZGFuIGluaSB0aWRhayBkaXNlbWJ1bnlpa2FuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICJCYWQgSWQgJWx4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAiRGlzayBpbmkgc2FhdCBpbmkgc2VkYW5nIGRpZ3VuYWthbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAiRmF0YWwgZXJyb3I6IHRpZGFrIGRhcGF0IG1lbmVtdWthbiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICJQZXJpbmdhdGFuOiAlcyBidWthbiBzZWJ1YWggcGVyYW5na2F0IGJsb2NrXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzIKK21zZ2lkICJDaGVja2luZyB0aGF0IG5vLW9uZSBpcyB1c2luZyB0aGlzIGRpc2sgcmlnaHQgbm93IC4uLlxuIgorbXNnc3RyICJNZW5nZWNoZWNrIGFwYWthaCBhZGEgeWFuZyBzZWRhbmcgbWVuZ2d1bmFrYW4gZGlzayBzYWF0IGluaSAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayBpbmkgc2FhdCBpbmkgc2VkYW5nIGRpZ3VuYWthbiAtIHJlcGFydGl0aW9uaW5nIG11bmdraW4gbWVydXBha2FuIGlkZSBcbiIKKyJCdXJ1ay4gVW1vdW50IHNlbHVydWggZmlsZXN5c3RlbSwgZGFuIHN3YXBvZmYgc2VsdXJ1aCBwYXJ0aXNpIHN3YXAgZGkgZGlzayBcbiIKKyJpbmkuIEd1bmFrYW4gcGlsaWhhbiAtLW5vLXJlcmVhZCB1bnR1ayBtZW5la2FuIHBlbmdlY2hla2FuIGluaS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzOAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIGFsbCBjaGVja3MuXG4iCittc2dzdHIgIiIKKyJHdW5ha2FuIHBpbGloYW4gLS1mb3JjZSB1bnR1ayBtZW1ha3NhIHBlbWVyaWtzYWFuIHNlY2FyYSBrZXNlbHVydWhhbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA0MgorbXNnaWQgIk9LXG4iCittc2dzdHIgIk9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2xkIHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiS2VhZGFhbiBsYW1hOlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCwgY2Fubm90IGNoYW5nZSBpdFxuIgorbXNnc3RyICJQYXJ0aXNpICVkIHRpZGFrIGFkYSwgdGlkYWsgZGFwYXQgbWVuZ3ViYWhueWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJLZWFkYWFuIGJhcnU6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjgKK21zZ2lkICIiCisiSSBkb24ndCBsaWtlIHRoZXNlIHBhcnRpdGlvbnMgLSBub3RoaW5nIGNoYW5nZWQuXG4iCisiKElmIHlvdSByZWFsbHkgd2FudCB0aGlzLCB1c2UgdGhlIC0tZm9yY2Ugb3B0aW9uLilcbiIKK21zZ3N0ciAiIgorIlNheWEgdGlkYWsgc3VrYSBwYXJ0aXNpIGluaSAtLSB0aWRhaCBhZGEgeWFuZyBkaXViYWguXG4iCisiKEppa2EgYW5kYSBiZW5hciAtIGJlbmFyIG1lbmdpbmdpbmthbiBpbmksIGd1bmFrYW4gcGlsaWhhbiAtLWZvcmNlLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiU2F5YSB0aWRhayBtZW55dWthaSBpbmkgLSBtdW5na2luIGFuZGEgc2VoYXJ1c255YSBtZW5qYXdhYiBOb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICJBcGFrYW4gYW5kYSBwdWFzIGRlbmdhbiBrZWFkYWFuIGluaT8gW3lucV0iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiCittc2dzdHIgIkFuZGEgaW5naW4gbWVudWxpcyBpbmkga2UgZGlzaz8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJzZmRpc2s6IHByZW1hdHVyZSBlbmQgb2YgaW5wdXRcbiIKK21zZ3N0ciAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGRpYWtoaXIgZGFyaSBtYXN1a2FuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODUKK21zZ2lkICJRdWl0dGluZyAtIG5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICJTZWxlc2FpIC0gdGlkYWsgYWRhIHlhbmcgZGl1YmFoXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGxlYXNlIGFuc3dlciBvbmUgb2YgeSxuLHFcbiIKK21zZ3N0ciAiVG9sb25nIGphd2FuIHNhbGFoIHNhdHUgZGFyaSB5LG4scVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdWNjZXNzZnVsbHkgd3JvdGUgdGhlIG5ldyBwYXJ0aXRpb24gdGFibGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlN1a3NlcyBtZW51bGlzIHRhYmVsIHBhcnRpc2kgYmFydVxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMTA1Cittc2dpZCAiIgorIklmIHlvdSBjcmVhdGVkIG9yIGNoYW5nZWQgYSBET1MgcGFydGl0aW9uLCAvZGV2L2ZvbzcsIHNheSwgdGhlbiB1c2UgZGQoMSlcbiIKKyJ0byB6ZXJvIHRoZSBmaXJzdCA1MTIgYnl0ZXM6ICBkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKFNlZSBmZGlzayg4KS4pXG4iCittc2dzdHIgIiIKKyJKaWthIGFuZGEgbWVtYnVhdCBhdGF1IG1lbmd1YmFzIHNlYnVhaCBET1MgcGFydGlzaSwga2F0YWthbmxhaCAvZGV2L2ZvbzcsXG4iCisia2VtdWRpYW4gZ3VuYWthbiBkZCgxKSB1bnR1ayBtZW5vbGthbiA1MTIgYnl0ZXMgcGVydGFtYTogZGQgaWY9L2Rldi96ZXJvIFxuIgorIm9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MSAoTGloYXQgZmRpc2soOCkuKVxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogY291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiUEVSSU5HQVRBTjogdGlkYWsgZGFwYXQgbWVtYnVrYSAlczogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGJhZCBmb3JtYXQgb24gbGluZSAlZCBvZiAlc1xuIgorbXNnc3RyICJQRVJJTkdBVEFOOiBmb3JtYXQgYnVydWsgZGkgYmFyaXMgJWQgZGFyaSAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzozNTIKK21zZ2lkICIiCisiV0FSTklORzogWW91ciAvZXRjL2ZzdGFiIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZzY2sgcGFzc25vXG4iCisiXHRmaWVsZC4gIEkgd2lsbCBrbHVkZ2UgYXJvdW5kIHRoaW5ncyBmb3IgeW91LCBidXQgeW91XG4iCisiXHRzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlBFUklOR0FUQU46IC9ldGMvZnN0YWIgYW5kYSB0aWRhIGJlcmlzaSBiYWdpYW4gbm9tb3IgdGFoYXBcbiIKKyJcdGZzY2suIHNheWEgYWthbiBtZW1iZW50dWxrYW4gaW5pIHVudHVrIGFuZGEsIHRldGFwaSBhbmRhXG4iCisiXHRzZWhhcnVzbnlhIG1lbWJldHVsa2FuIGJlcmthcyAvZXRjL2ZzdGFiIGFuZGEgc2VjZXBhdG55YS5cbiIKKyJcbiIKKworIzogZnNjay9mc2NrLmM6NDYwCisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6ICVzOiBub3QgZm91bmRcbiIKK21zZ3N0ciAiZnNjazogJXM6IHRpZGFrIGRpdGVtdWthblxuIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIlczogdHVuZ2d1OiBUaWRhIGFkYSBwcm9zZXMgYW5hayBsYWdpPyE/XG4iCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICJQZXJpbmdhdGFuLi4uICVzIHVudHVrIHBlcmFuZ2thdCAlcyBrZWx1YXIgZGVuZ2FuIHNpbnlhbCAlZC5cbiIKKworIzogZnNjay9mc2NrLmM6NjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVzOiBzdGF0dXMgaXMgJXgsIHNob3VsZCBuZXZlciBoYXBwZW4uXG4iCittc2dzdHIgIiVzICVzOiBzdGF0dXMgYWRhbGFoICV4LCBzZWhhcnVzbnlhIHRpZGFrIHBlcm5haCB0ZXJqYWRpLlxuIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIlNlbGVzYWkgZGVuZ2FuICVzIChzdGF0dXMga2VsdWFyICVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzIGZvciAlc1xuIgorbXNnc3RyICIlczogRXJyb3IgJWQga2V0aWthIG1lbmphbGFua2FuIGZzY2suJXMgdW50dWsgJXNcbiIKKworIzogZnNjay9mc2NrLmM6NzI0Cittc2dpZCAiIgorIkVpdGhlciBhbGwgb3Igbm9uZSBvZiB0aGUgZmlsZXN5c3RlbSB0eXBlcyBwYXNzZWQgdG8gLXQgbXVzdCBiZSBwcmVmaXhlZFxuIgorIndpdGggJ25vJyBvciAnIScuXG4iCittc2dzdHIgIiIKKyJCYWlrIHNlbHVydWggYXRhdSBrb3NvbmcgZGFyaSB0aXBlIHNpc3RlbSBiZXJrYXMgZGlsZXdhdGthbiBrZSAtdCBoYXJ1c1xuIgorImRpYXdhbGkgZGVuZ2FuICdubycgYXRhdSAnIScuXG4iCisKKyM6IGZzY2svZnNjay5jOjc0MworbXNnaWQgIkNvdWxkbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgZmlsZXN5c3RlbSB0eXBlc1xuIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5nYWxva2FzaWthbiBtZW1vcmkgdW50dWsgdGlwZSBzaXN0ZW0gYmVya2FzXG4iCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKyIlczogbWVsZXdhdGthbiBiYXJpcyBidXJ1ayBkYWxhbSAvZXRjL2ZzdGFiOiBqYWxhbmthbiBtb3VudCBkZW5nYW4gdGFoYXAgIgorImJ1a2FuIG5vbCBkaSBmc2NrXG4iCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgbm9uZXhpc3RlbnQgZGV2aWNlXG4iCittc2dzdHIgIiVzOiBtZWxld2F0a2FuIHBlcmFuZ2thdCB5YW5nIHRpZGFrIGFkYVxuIgorCisjOiBmc2NrL2ZzY2suYzo5MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogY2Fubm90IGNoZWNrICVzOiBmc2NrLiVzIG5vdCBmb3VuZFxuIgorbXNnc3RyICJmc2NrOiB0aWRhayBkYXBhdCBtZW1lcmlrc2EgJXM6IGZzY2suJXMgdGlkYWsgZGl0ZW11a2FuXG4iCisKKyM6IGZzY2svZnNjay5jOjk3NAorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIk1lbWVyaWtzYSBzZWx1cnVoIHNpc3RlbSBiZXJrYXMuXG4iCisKKyM6IGZzY2svZnNjay5jOjEwNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS13YWl0aW5nLS0gKHBhc3MgJWQpXG4iCittc2dzdHIgIi0tbWVudW5nZ3UtLSAodGFoYXAgJWQpXG4iCisKKyM6IGZzY2svZnNjay5jOjEwODUKK21zZ2lkICIiCisiVXNhZ2U6IGZzY2sgWy1BTU5QUlRWXSBbIC1DIFsgZmQgXSBdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBbZmlsZXN5cyAuLi5dXG4iCittc2dzdHIgIiIKKyJQZW5nZ3VuYWFuOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0b2luc10gIgorIltmaWxlc3lzIC4uLl1cbiIKKworIzogZnNjay9mc2NrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgZGV2aWNlc1xuIgorbXNnc3RyICIlczogdGVybGFsdSBiYW55YWsgcGVyYW5na2F0XG4iCisKKyM6IGZzY2svZnNjay5jOjExMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtYnVrYSAlczogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTEzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJcyAvcHJvYyBtb3VudGVkP1xuIgorbXNnc3RyICJBcGFrYWggL3Byb2MgdGVsYWggdGVycGFzYW5nP1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiSGFydXMgcm9vdCB1bnR1ayBkYXBhdCBtZW1pbmRhaSB1bnR1ayBtZW5jb2Nva2FuIHNpc3RlbSBiZXJrYXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgZmluZCBtYXRjaGluZyBmaWxlc3lzdGVtOiAlc1xuIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5lbXVrYW4gc2lzdGVtIGJlcmthcyB5YW5nIGNvY29rOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGFyZ3VtZW50c1xuIgorbXNnc3RyICIlczogdGVybGFsdSBiYW55YWsgYXJndW1lblxuIgorCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2sgZnJvbSAlc1xuIgorbXNnc3RyICJmc2NrIGRhcmkgJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTI4OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgZnNja19wYXRoXG4iCittc2dzdHIgIiVzOiBUaWRhayBkYXBhdCBtZW5nYWxva2FzaWthbiBtZW1vcmkgdW50dWsgZnNja19wYXRoXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJDb2JhIGBnZXRvcHQgLS1oZWxwJyB1bnR1ayBpbmZvcm1hc2kgbGViaWggbGFuanV0LlxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mjk1Cittc2dpZCAiZW1wdHkgbG9uZyBvcHRpb24gYWZ0ZXIgLWwgb3IgLS1sb25nIGFyZ3VtZW50IgorbXNnc3RyICJsb25nIHBpbGloYW4ga29zb25nIHNldGVsYWggcGlsaWhhbiAtbCBhdGF1IC0tbG9uZyBhcmd1bWVuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzE1Cittc2dpZCAidW5rbm93biBzaGVsbCBhZnRlciAtcyBvciAtLXNoZWxsIGFyZ3VtZW50IgorbXNnc3RyICJ0aWRhayBkaWtldGFodWkgc2hlbGwgc2V0ZWxhaCBwaWxpaGFuIC1zIGF0YXUgLS1zaGVsbCBhcmd1bWVuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIwCittc2dpZCAiVXNhZ2U6IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICJQZW5nZ3VuYWFuOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMQorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIFstLV0gb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbcGlsaWhhbl0gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIyCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B0aW9uc10gWy0tXVxuIgorbXNnc3RyICIgICAgICAgZ2V0b3B0IFtwaWxpaGFuXSAtbyB8IC0tb3B0aW9ucyBvcHRzdHJpbmcgW3BpbGloYW5dIFstLV1cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMworbXNnaWQgIiAgICAgICAgICAgICAgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNAorbXNnaWQgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggc2luZ2xlIC1cbiIKK21zZ3N0ciAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBNZW1ib2xlaGthbiBwaWxpaGFuIHBhbmphbmcgZGltdWxhaSBkZW5nYW4gIgorInNlYnVhaCAtXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjUKK21zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVGhpcyBzbWFsbCB1c2FnZSBndWlkZVxuIgorbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgSW5pIHNlZGlraXQgcGV0dW5qdWsgcGVuZ2d1bmFhblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI2Cittc2dpZCAiICAtbCwgLS1sb25nb3B0aW9ucz1sb25nb3B0cyAgIExvbmcgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLWwsIC0tbG9uZ29wdGlvbnM9bG9uZ29wdHMgICBQaWxpaGFuIHBhbmphbmcgeWFuZyBkaWtlbmFsXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjcKK21zZ2lkICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1lIHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIKK21zZ3N0ciAiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIE5hbWEgZGltYW5hIGVycm9yIHRlcnNlYnV0IGRpbGFwb3JrYW5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOAorbXNnaWQgIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBTaG9ydCBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIFBpbGloYW4gcGVuZGVrIHlhbmcgZGlrZW5hbFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIiCisiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIE1lbWF0aWthbiBsYXBvcmFuIGVycm9yIG9sZWggZ2V0b3B0KDMpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgVGlkYWsgYWRhIG91dHB1dCBub3JtYWxcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMQorbXNnaWQgIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICBTZXQgc2hlbGwgcXVvdGluZyBjb252ZW50aW9uc1xuIgorbXNnc3RyICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgTWVuZ2VzZXQgc2hlbGwgcXVvdGluZyBjb252ZW50aW9uc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUZXN0IHVudHVrIHZlcnNpIGdldG9wdCgxKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMzCittc2dpZCAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIERvIG5vdCBxdW90ZSB0aGUgb3V0cHV0XG4iCittc2dzdHIgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBKYW5nYW4gcXVvdGUgb3V0cHV0XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIFRhbXBpbGthbiBpbmZvcm1hc2kgdmVyc2lcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjM4OCBnZXRvcHQvZ2V0b3B0LmM6NDQ3Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgImhpbGFuZyBhcmd1bWVudCBvcHRzdHJpbmciCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChkaXRpbmdrYXRrYW4pIDEuMS40XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0NDEKK21zZ2lkICJpbnRlcm5hbCBlcnJvciwgY29udGFjdCB0aGUgYXV0aG9yLiIKK21zZ3N0ciAia2VydXNha2FuIGludGVybmFsLCBodWJ1bmdpIGF1dGhvci4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZWQgZnJvbSBNSUxPXG4iCittc2dzdHIgImRpYm9vdCBkYXJpIE1JTE9cbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICJjbG9ja3BvcnQgZGlzZXQga2UgMHgleFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICJmdW5reSBUT1khXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXRvbWljICVzIGZhaWxlZCBmb3IgMTAwMCBpdGVyYXRpb25zISIKK21zZ3N0ciAiJXM6IGF0b21pYyAlcyBnYWdhbCB1bnR1ayAxMDAwIGl0ZXJhc2khIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImNtb3NfcmVhZCgpOiBwZW51bGlzYW4ga2UgYWxhbWF0IGtvbnRyb2wgJVggZ2FnYWw6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICJjbW9zX3JlYWQoKTogcGVudWxpc2FuIGtlIGFsYW1hdCBkYXRhICVYIGdhZ2FsOiAlc1xuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICJjbW9zX3dyaXRlKCk6IHBlbnVsaXNhbiBrZSBhbGFtYXQga29udHJvbCAlWCBnYWdhbDogJXNcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiY21vc193cml0ZSgpOiBwZW51bGlzYW4ga2UgYWxhbWF0IGRhdGEgJVggZ2FnYWw6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAvZGV2L3BvcnQ6ICVzIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1idWthIC9kZXYvcG9ydDogJXMiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAiU2F5YSBnYWdhbCBtZW1wZXJvbGVoIGlqaW4ga2FyZW4gU2F5YSB0aWRhayBtZW5jb2JhbnlhLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiIgorIiVzIHRpZGFrIGRhcGF0IG1lbXBlcm9sZWggaWppbiBJL08gcG9ydCBha3NlczogaW9wbCgzKSBwYW5nZ2lsYW4gZ2FnYWwuXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9iYWJseSB5b3UgbmVlZCByb290IHByaXZpbGVnZXMuXG4iCittc2dzdHIgIk11bmdraW4gYW5kYSBidXR1ayBrZXdlbmFuZ2FuIHJvb3QuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluICVzIHRpbWUuXG4iCittc2dzdHIgIkRpYXN1bXNpa2FuIGNsb2NrIGhhcmR3YXJlIHRldGFwIGRpIHdha3R1ICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAibG9rYWwiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2FybmluZzogdW5yZWNvZ25pemVkIHRoaXJkIGxpbmUgaW4gYWRqdGltZSBmaWxlXG4iCittc2dzdHIgIiVzOiBQZXJpbmdhdGFuOiB0aWRhayBkaWtlbmFsIGJhcmlzIGtldGlnYSBkaSBhZGp0aW1lIGZpbGVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIihFeHBlY3RlZDogYFVUQycgb3IgYExPQ0FMJyBvciBub3RoaW5nLilcbiIKK21zZ3N0ciAiKERpcGVya2lyYWthbjogYFVUQycgYXRhdSBgTE9LQUwnIGF0YXUga29zb25nLilcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiUGVueWVzdWFpYW4gZHJpZnQgdGVyYWtoaXIgZGlsYWt1a2FuIHBhZGEgJWxkIGRldGlrIHNldGVsYWggMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBjYWxpYnJhdGlvbiBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiS2FsaWJyYXNpIHRlcmFraGlyIGRpbGFrdWthIGRpICVsZCBkZXRpayBzZXRlbGFoIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIkhhcmR3YXJlIGNsb2NrIGlzIG9uICVzIHRpbWVcbiIKK21zZ3N0ciAiSGFyZHdhcmUgY2xvY2sgYWRhbGFoIGRpIHdha3R1ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgInRpZGFrIGRpa2V0YWh1aSIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgZm9yIGNsb2NrIHRpY2suLi5cbiIKK21zZ3N0ciAiTWVudW5nZ3UgdW50dWsgY2xvY2sgdGljay4uLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc3luY2hyb25pemF0aW9uIGZhaWxlZFxuIgorbXNnc3RyICIuLi5zaW5rcm9uaXNhc2kgZ2FnYWxcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmdvdCBjbG9jayB0aWNrXG4iCittc2dzdHIgIi4uLmRpcGVyb2xlaCBjbG9jayB0aWNrXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHZhbHVlcyBpbiBoYXJkd2FyZSBjbG9jazogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorbXNnc3RyICJOaWxhaSB0aWRhayB2YWxpZCBkaSBoYXJkd2FyZSBjbG9jazogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIGRldGlrIHNlamFrIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIldha3R1IHRlcmJhY2EgZGFyaSBIYXJkd2FyZSBDbG9jazogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyBIYXJkd2FyZSBDbG9jayB0byAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiIgorIk1lbnNldCBIYXJkd2FyZSBDbG9jayBtZW5qYWRpICUuMmQ6JS4yZDolLjJkID0gJWxkIGRldGlrIHNlbWVuamFrIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb2NrIG5vdCBjaGFuZ2VkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJDbG9jayB0aWRhayBkaXViYWggLSBoYW55YSBtZW5jb2JhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRpbWUgZWxhcHNlZCBzaW5jZSByZWZlcmVuY2UgdGltZSBoYXMgYmVlbiAlLjZmIHNlY29uZHMuXG4iCisiRGVsYXlpbmcgZnVydGhlciB0byByZWFjaCB0aGUgbmV3IHRpbWUuXG4iCittc2dzdHIgIiIKKyJXYWt0dSB0ZXJsZXdhdGthbiBzZWphayByZWZlcmVuc2kgd2FrdHUgdGVsYWggbGV3YXQgJS42ZiBkZXRpay5cbiIKKyJNZW51bmRhIGxlYmloIGphdWggdW50dWsgbWVuY2FwYWkgd2FrdHUgYmFydS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgcmVnaXN0ZXJzIGNvbnRhaW4gdmFsdWVzIHRoYXQgYXJlIGVpdGhlciBpbnZhbGlkIChlLmcuICIKKyI1MHRoIGRheSBvZiBtb250aCkgb3IgYmV5b25kIHRoZSByYW5nZSB3ZSBjYW4gaGFuZGxlIChlLmcuIFllYXIgMjA5NSkuXG4iCittc2dzdHIgIiIKKyJSZWdpc3RlciBIYXJkd2FyZSBDbG9jayBiZXJpc2kgbmlsYWkgeWFuZyB0aWRhayB2YWxpZCAoaGFyaSBrZSA1MCBkYXJpICIKKyJidWxhbikgYXRhdSBkaWx1YXIgZGFyaSBqYW5na2F1YW4geWFuZyBkYXBhdCBraXRhIHRhbmdhbmkgKFRhaHVuIDIwOTUpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIlcyAgJS42ZiBkZXRpa1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gLS1kYXRlIG9wdGlvbiBzcGVjaWZpZWQuXG4iCittc2dzdHIgIlBpbGloYW4gLS1kYXRlIHRpZGFrIGRpc3Blc2lmaWthc2lrYW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLWRhdGUgYXJndW1lbnQgdG9vIGxvbmdcbiIKK21zZ3N0ciAiYXJndW1lbiAtLWRhdGUgdGVybGFsdSBwYW5qYW5nXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisiTmlsYWkgZGFyaSBwaWxpaGFuIC0tZGF0ZSB0aWRhayBtZXVwYWthbiB0YW5nZ2FsIHlhbmcgc2FoLlxuIgorIkthZGFuZyBrYWxhLCBpdHUgYmVyaXNpIHRhbmRhIHBldGlrLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIk1lbmdpc3VrYW4gcGVyaW50YWggZGF0ZTogJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQwCittc2dpZCAiVW5hYmxlIHRvIHJ1biAnZGF0ZScgcHJvZ3JhbSBpbiAvYmluL3NoIHNoZWxsLiBwb3BlbigpIGZhaWxlZCIKK21zZ3N0ciAiIgorIlRpZGFrIGRhcGF0IG1lbmphbGFua2FuIGFwbGlrYXNpICdkYXRlJyBkaSBzaGVsbCAvYmluL3NoLiBwb3BlbigpIGdhZ2FsIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcG9uc2UgZnJvbSBkYXRlIGNvbW1hbmQgPSAlc1xuIgorbXNnc3RyICJyZXNwb24gZGFyaSBwZXJpbnRhaCBkYXRlID0gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdHMuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAgJXNcbiIKK21zZ3N0ciAiIgorIlBlcmludGFoIGRhdGUgZGliZXJpa2FuIG9sZWggJXMgbWVtYmVyaWthbiBoYXNpbCB5YW5nIHRpZGFrIGRpcGVya2lyYWthbi5cbiIKKyJQZXJpbnRhaCBhZGFsYWg6XG4iCisiICAlc1xuIgorIlJlc3BvbiBhZGFsYWg6XG4iCisiICAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIGludGVnZXIgd2hlcmUgIgorInRoZSBjb252ZXJ0ZWQgdGltZSB2YWx1ZSB3YXMgZXhwZWN0ZWQuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAlc1xuIgorbXNnc3RyICIiCisiUGVyaW50YWggZGF0ZSBkaWJlcmlrYW4gb2xlaCAlcyBtZW1iZXJpa2FuIHNlc3VhdHUgc2VsYWluIGludGVnZXIgZGltYW5hICIKKyJuaWxhaSB3YWt0dSB5YW5nIGRpY29udmVydCBzZXBlcnRpIGRpcGVya2lyYWthbi5cbiIKKyJQZXJpbnRhaCBhZGFsYWg6XG4iCisiICAlc1xuIgorIiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICJkYXRlIHN0cmluZyAlcyBzYW1hIGRlbmdhbiAlbGQgZGV0aWsgc2VtZW5qYWsgMTk2OS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBzZXQgdGhlICIKKyJTeXN0ZW0gVGltZSBmcm9tIGl0LlxuIgorbXNnc3RyICIiCisiSGFyZHdhcmUgQ2xvY2sgdGlkYWsgYmVyaXNpIHdha3R1IHlhbmcgdmFsaWQsIGphZGkga2l0YSB0aWRhayBkYXBhdCBtZW5zZXQgIgorIldha3R1IFN5c3RlbSBkYXJpIHdha3R1IGluaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI3IGh3Y2xvY2svaHdjbG9jay5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIHNldHRpbWVvZmRheTpcbiIKK21zZ3N0ciAiTWVtYW5nZ2lsIHNldHRpbWVvZmRheTpcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI4IGh3Y2xvY2svaHdjbG9jay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorbXNnc3RyICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzAgaHdjbG9jay9od2Nsb2NrLmM6ODA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorbXNnc3RyICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMzIGh3Y2xvY2svaHdjbG9jay5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBzeXN0ZW0gY2xvY2sgYmVjYXVzZSBydW5uaW5nIGluIHRlc3QgbW9kZS5cbiIKK21zZ3N0ciAiVGlkYWsgbWVuc2V0IHN5c3RlbSBjbG9jayBrYXJlbmEgYmVyamFsYW4gZGFsYW0gbW9kZSB0ZXN0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkhhcnVzIG1lbmphZGkgc3VwZXJ1c2VyIHVudHVrIG1lbnNldCBzeXN0ZW0gY2xvY2suXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgInNldHRpbWVvZmRheSgpIGdhZ2FsIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBzeXN0ZW0gdGltZTogJWxkID0gJXNcbiIKK21zZ3N0ciAiV2FrdHUgc2lzdGVtIHNla2FyYW5nOiAlbGQgPSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRVVEM6ICVzXG4iCittc2dzdHIgIlx0VVRDOiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisiVGlkYWsgbWVueWVzdWFpa2FuIGZha3RvciBkcmlmdCBrYXJlbmEgQ2xvY2sgSGFyZHdyZSBzZWJlbHVtbnlhIGJlcmlzaSAiCisic2FtcGFoLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgbGFzdCBjYWxpYnJhdGlvbiB0aW1lIGlzIHplcm8sXG4iCisic28gaGlzdG9yeSBpcyBiYWQgYW5kIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciBpcyBuZWNlc3NhcnkuXG4iCittc2dzdHIgIiIKKyJUaWRhayBtZW55ZXN1YWlrYW4gZmFrdG9yIGRyaWZ0IGthcmVuYSB3YWt0dSBrYWxpYnJhc2kgdGVyYWtoaXIgYWRhbGFoIG5vbCxcbiIKKyJqYWRpIGhpc3RvcnkgYnVydWsgZGFuIHBlbmd1bGFuZ2FuIGthbGlicmFzaSBkaXBlcmx1a2FuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorIlRpZGFrIG1lbnllc3VhaWthbiBmYWt0b3IgZHJpZnQga2FyZW5hIGluaSBsZWJpaCBrZWNpbCBkYXJpIGhhcmkgc2VtZW5qYWsgIgorInRlcmFraGlyIGRpa2FsaWJyYXNpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNsb2NrIGRyaWZ0ZWQgJS4xZiBzZWNvbmRzIGluIHRoZSBwYXN0ICVkIHNlY29uZHMgaW4gc3BpdGUgb2YgYSBkcmlmdCBmYWN0b3IgIgorIm9mICVmIHNlY29uZHMvZGF5LlxuIgorIkFkanVzdGluZyBkcmlmdCBmYWN0b3IgYnkgJWYgc2Vjb25kcy9kYXlcbiIKK21zZ3N0ciAiIgorIkNsb2NrIGRpZ2VzZXIgJS4xZiBkZXRpayBkYXJpIHdha3R1IHNlYmVsdW1ueWEsICVkIGRldGlrICBkYXJpIHBhZGEgZmFrdG9yICIKKyJkcmlmdCAlZiBkZXRpay9oYXJpLlxuIgorIm1lbnllc3VhaWthbiBmYWt0b3IgZHJpZnQgc2ViZXNhciAlZiBkZXRpay9oYXJpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJXYWt0dSBzZW1lbmphayBwZW55ZXN1YWlhbiB0ZXJha2hpciBhZGFsYWggJWQgZGV0aWtcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWQgdG8gaW5zZXJ0ICVkIHNlY29uZHMgYW5kIHJlZmVyIHRpbWUgYmFjayAlLjZmIHNlY29uZHMgYWdvXG4iCittc2dzdHIgIiIKKyJCdXR1aCB1bnR1ayBtZW1hc3Vra2FuICVkIGRldGlrIGRhbiByZWZlcmVuc2kgd2FrdHUga2VtYmFsaSAlLjZmIGRldGlrIHlhbmcgIgorImxhbHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIlRpZGFrIG1lbmctdXBkYXRlIGFkanRpbWUgZmlsZSBrYXJlbiBkYWxhbSBtb2RlIHRlc3RpbmcuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV291bGQgaGF2ZSB3cml0dGVuIHRoZSBmb2xsb3dpbmcgdG8gJXM6XG4iCisiJXMiCittc2dzdHIgIiIKKyJJbmdpbmthaCBhbmRhIG1lbnVsaXMgYmVyaWt1dCBpbmkga2UgJXM6XG4iCisiJXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICIiCisiVGlkYWsgZGFwYXQgbWVtYnVrYSBiZXJrYXMgZGVuZ2FuIHBhcmFtZXRlciBwZW55ZXN1YWlhbiBqYW0gZGlkYWxhbW55YSAoJXMpICIKKyJ1bnR1ayBkaXR1bGlzIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDA2IGh3Y2xvY2svaHdjbG9jay5jOjEwMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHVwZGF0ZSBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyAoJXMpIGluIGl0IgorbXNnc3RyICIiCisiVGlkYWsgZGFwYXQgbWVtcGVyYmFydWkgYmVya2FzIGRlbmdhbiBwYXJhbWV0ZXIgcGVueWVzdWFpYW4gamFtICglcykgIgorImRpZGFsYW1ueWEiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJQYXJhbWV0ZXIgYWRqdXNtZW50IGRyaWZ0IHRpZGFrIGRpIHVwZGF0ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICIiCisiQ2xvY2sgaGFyZHdhcmUgdGlkYWsgYmVyaXNpIHdha3R1IHlhbmcgdmFsaWQsIGphZGkga2l0YSB0aWRhayBiaXNhICIKKyJtZW1iZXR1bGthbm55YS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKyJUaWRhayBtZW55ZXN1YWlrYW4gamFtIGthcmVuYSB3YWt0dSBrYWxpYnJhc2kgdGVyYWtoaXIgYWRhbGFoIG5vbCwgamFkaSAiCisic2VqYXJhaCBidXJ1ay4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICIiCisiUGVueWVzdWFpYW4geWFuZyBkaWJ1dHVoa2FuIG11bmdraW4gbGViaWgga2VjaWwgZGFyaSBzYXR1IGRldGlrLCBqYWRpIHRpZGFrICIKKyJtZW5zZXQgY2xvY2suXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgIk1lbmdndW5ha2FuICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIlRpZGFrIGRpdGVtdWthbiBhbnRhcm11a2EgY2xvY2sgeWFuZyBiZXJndW5hLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbnNldCBzeXN0ZW0gY2xvY2suXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisiS2VybmVsIG1lbnlpbXBhbiBuaWxhaSBlcG9jaCBkYXJpIEhhcmR3YXJlIGNsb2NrIGhhbnlhIGRpIHNlYnVhaCBtZXNpbiBBbHBoYSAiCisiU2FsaW5hbiBkYXJpIGh3Y2xvY2sgaW5pIHRlbGFoIGRpYnVhdCB1bnR1ayBtZXNpbiBzZWxhaW4gQWxwaGFcbiIKKyIoZGFuIGphZGkgZGlhc3Vtc2lrYW4gc2FhdCBpbmkgdGlkYWsgYmVyamFsYW4gZGkgQWxwaGEpLlxuIgorIlRpZGFrIGFkYSBha3NpIHlhbmcgZGlsYWt1a2FuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBnZXQgdGhlIGVwb2NoIHZhbHVlIGZyb20gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtcGVyb2xlaCBuaWxhaSBlcG9jaCBkYXJpIGtlcm5lbC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJLZXJuZWwgaXMgYXNzdW1pbmcgYW4gZXBvY2ggdmFsdWUgb2YgJWx1XG4iCittc2dzdHIgIktlcm5lbCBtZW5nYXN1bXNpa2FuIG1lbmdndW5ha2FuIG5pbGFpIGVwb2NoIGRhcmkgJWx1XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIHNldCB0aGUgZXBvY2ggdmFsdWUsIHlvdSBtdXN0IHVzZSB0aGUgJ2Vwb2NoJyBvcHRpb24gdG8gdGVsbCB0byB3aGF0ICIKKyJ2YWx1ZSB0byBzZXQgaXQuXG4iCittc2dzdHIgIiIKKyJVbnR1ayBtZW5zZXQgbmlsYWkgZXBvY2gsIGFuZGEgaGFydXMgbWVuZ2d1bmFrYW4gcGlsaWhhbiAnZXBvY2gnIHVudHVrICIKKyJtZW1iZXJpdGFodWthbiBuaWxhaSB1bnR1ayBtZW5zZXRueWEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJUaWRhayBtZW5zZXQgZXBvY2gga2UgJWQgLSBtYXNpaCBkYWxhbSBwZW5nZXRlc2FuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbnNldCBuaWxhaSBlcG9jaCBkYWxhbSBrZXJuZWwuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyOTAgbWlzYy11dGlscy9jYWwuYzozNDcgbWlzYy11dGlscy9raWxsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZGFyaSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorImh3Y2xvY2sgLSBtZWxpaGF0IGRhbiBtZW5zZXQgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJQZW5nZ3VuYWFuOiBod2Nsb2NrIFtmdW5nc2ldIFtwaWxpaGFuLi4uXVxuIgorIlxuIgorIkZ1bmdzaTpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgdGFtcGlsa2FuIGJhbnR1YW4gaW5pXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIGJhY2EgaGFyZHdhcmUgY2xvY2sgZGFuIHRhbXBpbGthbiBoYXNpbG55YVxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgcnRjIGtlIHdha3R1IHlhbmcgdGVsYWggZGliZXJpa2FuIGRlbmdhbiAtLWRhdGVcbiIKKyIgIC1zIHwgLS1oY3Rvc3lzICAgICAgc2V0IHdha3R1IHN5c3RlbSBkYXJpIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCBoYXJkd2FyZSBjbG9jayBrZSB3YWt0dSBzeXN0ZW0gc2FhdCBpbmlcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHdha3R1IHNpc3RlbSBiZXJkYXNhcmthbiB6b25hIHdha3R1IHNla2FyYW5nXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2UgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgdGFtcGlsa2FuIG5pbGFpIGVwb2NoIGRhcmkga2VybmVsIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCBuaWxhaSBlcG9jaCBrZXJuZWwgaGFyZHdhcmUgY2xvY2sga2UgbmlsYWkgeWFuZyBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZGliZXJpa2FuIG9sZWggLS1lcG9jaFxuIgorIiAgICAgICAtLXZlcnNpb24gICAgICB0YW1waWxrYW4gdmVyc2kgZGFyaSBod2Nsb2NrIGtlIHN0ZG91dFxuIgorIlxuIgorIlBpbGloYW46IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICBoYXJkd2FyZSBjbG9jayBkaXNpbXBhbiBkYWxhbSBjb29yZGluYXQgdW5pdmVyc2FsICIKKyJ0aW1lXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIGhhcmR3YXJlIGNsb2NrIGRpc2ltcGFuIGRhbGFtIGxvY2FsIHRpbWVcbiIKKyIgIC1mIHwgLS1ydGM9amFsdXIgICAgbWVuZ2d1bmFrYW4gYmVya2FzIC9kZXYuLi4gc3Blc2lhbCBkYXJpcGFkYSBiYWt1XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFrc2VzIElTQSBidXMgc2VjYXJhIGxhbmdzdW5nIGRhcmkgcGFkYSAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBhYmFpa2FuIHJ0YydzIHRhaHVuIGthcmVuIGJpb3MgcnVzYWtcbiIKKyIgICAgICAgLS1kYXRlICAgICAgICAgc3Blc2lmaWthc2lrYW4gd2FrdHUgdW50dWsgbWVuc2V0IGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9dGFodW4gIHNwZXNpZmlrYXNpa2FuIHRhaHVuIGRpbWFuYSBhd2FsIGRhcmkgbmlsYWkgZGFyaVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBuaWxhaSBlcG9jaCBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBqYW5nYW4gbWVuZ2Frc2VzIGZpbGUgL2V0Yy9hZGp0aW1lLiBEaWJ1dHVoa2FuIHNhYXQgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIG1lbmdndW5ha2FuIHBpbGloYW4gLS11dGMgYXRhdSAtLWxvY2FsdGltZS5cbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3Blc2lmaWthc2lrYW4gcGF0aCBrZSBiZXJrYXMgYWRqdXN0IChkZWZhdWx0IGFkYWxhaFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGxha3VrYW4gYXBhcHVuIGtlY3VhbGkgdGFucGEgbWVtcGVyYmFydWkgcGVyYW5na2F0ICIKKyJ3YWt0dVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBhdGF1IGhhbCBsYWlubnlhXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIG1vZGUgcGVuZWx1c3VyYW5cbiIKKyJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1BfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICBiZXJpdGFodSBod2Nsb2NrIHRpcGUgZGFyaSBhbHBoYSB5YW5nIGFuZGEgbWlsaWtpIChsaWhhdCBod2Nsb2NrICIKKyIoOCkpXG4iCisiXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICIlczogVGlkYWsgZGFwYXQgbWVuZ2h1YnVuZ2kga2Ugc2lzdGVtIGF1ZGl0XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdGFrZXMgbm8gbm9uLW9wdGlvbiBhcmd1bWVudHMuICBZb3Ugc3VwcGxpZWQgJWQuXG4iCittc2dzdHIgIiVzIHRpZGFrIG1lbWJ1dHVoa2FuIGFyZ3VtZW50LiBBbmRhIG1lbWJlcmlrYW4gJWQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlIHNwZWNpZmllZCBtdWx0aXBsZSBmdW5jdGlvbnMuXG4iCisiWW91IGNhbiBvbmx5IHBlcmZvcm0gb25lIGZ1bmN0aW9uIGF0IGEgdGltZS5cbiIKK21zZ3N0ciAiIgorIkFuZGEgdGVsYWggbWVuc3Blc2lmaWthc2kgYmViZXJhcGEgZnVuZ3NpLlxuIgorIkFuZGEgaGFueWEgZGFwYXQgbWVsYWt1a2FuIHNhdHUgZnVuZ3NpIGRhbGFtIHNhdHUgd2FrdHUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS11dGMgYW5kIC0tbG9jYWx0aW1lIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSBzcGVjaWZpZWQgIgorImJvdGguXG4iCittc2dzdHIgIiIKKyIlczogUGlsaWhhbiAtLXV0YyBkYW4gLS1sb2NhbHRpbWUgYWRhbGFoIG11dHVhbGx5IGVrc2tsdXNpdmUuIEFuZGEgIgorIm1lbnNwZXNpZmlrYXNpa2FuIGtlZHVhbnlhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IFBpbGloYW4gLS1hZGp1c3QgZGFuIC0tbm9hZGpmaWxlIGFkYWxhaCBtdXR1YWxseSBla3NrbHVzaXZlLiBBbmRhICIKKyJtZW5zcGVzaWZpa2FzaWthbiBrZWR1YW55YS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogUGlsaWhhbiAtLWFkamZpbGUgZGFuIC0tbm9hZGpmaWxlIGFkYWxhaCBtdXR1YWxseSBla3NrbHVzaXZlLiBBbmRhICIKKyJtZW5zcGVzaWZpa2FzaWthbiBrZWR1YW55YS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU4OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2l0aCAtLW5vYWRqZmlsZSwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKK21zZ3N0ciAiIgorIiVzOiBEZW5nYW4gLS1ub2FkamZpbGUsIGFuZGEgaGFydXMgbWVuc3Blc2lmaWthc2kgYmFpayAtLXV0YyBhdGF1IC0tIgorImxvY2FsdGltZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBzZXQtdG8gdGltZS4gIENhbm5vdCBzZXQgY2xvY2suXG4iCittc2dzdHIgIlRpZGFrIGFkYSBzZXQtdG8gdGltZSB5YW5nIGJlcmd1bmEuIFRpZGFrIGRhcGF0IG1lbnNldCBjbG9jay5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICJNYWFmLCBoYW55YSBzdXBlcnVzZXIgeWFuZyBkYXBhdCBtZW5ndWJhaCBIYXJkd2FyZSBDbG9jay5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyNAorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIFN5c3RlbSBDbG9jay5cbiIKK21zZ3N0ciAiTWFhZiwgaGFueWEgc3VwZXJ1c2VyIHlhbmcgZGFwYXQgbWVuZ3ViYWggU3lzdGVtIENsb2NrLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIGluIHRoZSAiCisia2VybmVsLlxuIgorbXNnc3RyICIiCisiTWFhZiwgaGFueWEgc3VwZXJ1c2VyIHlhbmcgZGFwYXQgbWVuZ3ViYWggSGFyZHdhcmUgQ2xvY2sgZXBvY2ggZGkgZGFsYW0gIgorImtlcm5lbC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgYW55IGtub3duIG1ldGhvZC5cbiIKK21zZ3N0ciAiIgorIlRpZGFrIGRhcGF0IG1lbmdha3NlcyBIYXJkd2FyZSBDbG9jayBtZWxhbHVpIHNlbXVhIG1ldG9kZSB5YW5nIGRpa2V0YWh1aS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIiIKKyJHdW5ha2FuIHBpbGloYW4gLS1kZWJ1ZyB1bnR1ayBtZWxpaGF0IGRldGFpbCBkYXJpIHBlbmNhcmlhbiBraXRhIHVudHVrICIKKyJzZWJ1YWggbWV0b2RlIGFrc2VzLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gS0RHSFdDTEsgdG8gY2hhbmdlXG4iCittc2dzdHIgIk1lbnVuZ2d1IGRhbGFtIGxvb3AgdW50dWsgd2FrdHUgZGFyaSBLREdIV0NMSyB1bnR1ayBiZXJ1YmFoXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NworbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQiCittc2dzdHIgIktER0hXQ0xLIGlvY3RsIHVudHVrIG1lbWJhY2Egd2FrdHUgZ2FnYWwiCisKKyM6IGh3Y2xvY2sva2QuYzo3NQorbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQgaW4gbG9vcCIKK21zZ3N0ciAiS0RHSFdDTEsgaW9jdGwgdW50dWsgbWVtYmFjYSB3YWt0dSBnYWdhbCBkYWxhbSBsb29wIgorCisjOiBod2Nsb2NrL2tkLmM6ODIgaHdjbG9jay9ydGMuYzoyMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRpbWUgY2hhbmdlLlxuIgorbXNnc3RyICJXYWt0dSBoYWJpcyBtZW51bmdndSB1bnR1ayBwZXJ1YmFoYW4gd2FrdHUuXG4iCisKKyM6IGh3Y2xvY2sva2QuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSBmYWlsZWQgdG8gcmVhZCB0aW1lIGZyb20gJXMiCittc2dzdHIgImlvY3RsKCkgZ2FnYWwgdW50dWsgbWVtYmFjYSB3YWt0dSBkYXJpICVzIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICJpb2N0bCBLRFNIV0NMSyBnYWdhbCIKKworIzogaHdjbG9jay9rZC5jOjE3NgorbXNnaWQgIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtYnVrYSAvZGV2L3R0eTEgYXRhdSAvZGV2L3ZjLzEiCisKKyM6IGh3Y2xvY2sva2QuYzoxODAKK21zZ2lkICJLREdIV0NMSyBpb2N0bCBmYWlsZWQiCittc2dzdHIgIktER0hXQ0xLIGlvY3RsIGdhZ2FsIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE0NyBod2Nsb2NrL3J0Yy5jOjI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuKCkgb2YgJXMgZmFpbGVkIgorbXNnc3RyICJvcGVuKCkgZGFyaSAlcyBnYWdhbCIKKworIzogaHdjbG9jay9ydGMuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAiaW9jdGwoKSB1bnR1ayAlcyB1bnR1ayBtZW1iYWNhIHdha3R1IGdhZ2FsLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiTWVudW5nZ3UgZGFsYW0gbG9vcCB1bnR1ayB3YWt0dSBkYXJpICVzIHVudHVrIHBlcnViYWhhblxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIKK21zZ3N0ciAiJXMgdGlkYWsgbWVtaWxpa2kgZnVuZ3NpIGludGVydXBzaS4gIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkKCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgInJlYWQoKSB1bnR1ayAlcyB1bnR1ayBtZW51bmdndSBjbG9jayB0aWNrIGdhZ2FsIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAic2VsZWN0KCkgdW50dWsgJXMgdW50dWsgbWVudW5nZ3UgY2xvY2sgdGljayBnYWdhbCIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAic2VsZWN0KCkgdW50dWsgJXMgd2FrdHUgaGFiaXMgdW50dWsgbWVudW5nZ3UgY2xvY2sgdGlja1xuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoKSB1bnR1ayAlcyB1bnR1ayBtZW1hdGlrYW4gaW50ZXJ1cHNpIHVwZGF0ZSBnYWdhbCIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgIiIKKyJpb2N0bCgpIHVudHVrICVzIHVudHVrIG1lbnlhbGFrYW4gdXBkYXRlIGludGVydXBzaSBnYWdhbCBzZWNhcmEgdGlkYWsgdGVyZHVnYSIKKworIzogaHdjbG9jay9ydGMuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byBzZXQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJpb2N0bCgpIHVudHVrICVzIHVudHVrIG1lbnNldCB3YWt0dSBnYWdhbC5cbiIKKworIzogaHdjbG9jay9ydGMuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoJXMpIHdhcyBzdWNjZXNzZnVsLlxuIgorbXNnc3RyICJpb2N0bCglcykgYmVyaGFzaWwuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICJNZW1idWthIHVudHVrICVzIGdhZ2FsIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxMCBod2Nsb2NrL3J0Yy5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gbWFuaXB1bGF0ZSB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbCwgd2UgbXVzdCBhY2Nlc3MgdGhlIExpbnV4ICdydGMnICIKKyJkZXZpY2UgZHJpdmVyIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwgZmlsZSAlcy4gIFRoaXMgZmlsZSBkb2VzIG5vdCBleGlzdCBvbiAiCisidGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKyJVbnR1ayBtZW1hbmlwdWxhc2kgbmlsYWkgZXBvY2ggZGFsYW0ga2VybmVsLCBraXRhIGhhcnVzIG1lbmdha3NlcyBMaW51eCAiCisiJ3J0YycgZGV2aWNlIGRyaXZlciBtZWxhbHVpIGZpbGUgc3Blc2lhbCAlcy4gRmlsZSBpbmkgbXVuZ2tpbiB0aWRhayBhZGEgZGkgIgorInN5c3RlbSBpbmkuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDE1IGh3Y2xvY2svcnRjLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1idWthICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdW50dWsgJXMgZ2FnYWwiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIndlIGhhdmUgcmVhZCBlcG9jaCAlbGQgZnJvbSAlcyB3aXRoIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorbXNnc3RyICJraXRhIHRlbGFoIG1lbWJhY2EgZXBvY2ggJWxkIGRhcmkgJXMgZGVuZ2FuIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIk5pbGFpIGVwb2NoIG11bmdraW4gdGlkYWsga3VyYW5nIGRhcmkgMTkwMC4gQW5kYSBtZW1pbnRhICVsZFxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZXR0aW5nIGVwb2NoIHRvICVsZCB3aXRoIFJUQ19FUE9DSF9TRVQgaW9jdGwgdG8gJXMuXG4iCittc2dzdHIgIk1lbnNldCBlcG9jaCBtZW5qYWRpICVsZCBkZW5nYW4gUlRDX0VQT0NIX1NFVCBpb2N0bCBtZW5qYWRpICVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyBkb2VzIG5vdCBoYXZlIHRoZSBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorbXNnc3RyICJLZXJuZWwgZGV2aWNlIGRyaXZlciB1bnR1ayAlcyB0aWRhayBtZW1pbGlraSBpb2N0bCBSVENfRVBPQ0hfU0VULlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgImlvY3RsKFJUQ19FUE9DSF9TRVQpIGtlICVzIGdhZ2FsIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIgorbXNnc3RyICIlczogdGlkYWsgZGFwYXQgbWVuZ2Vrc2VrdXNpICVzOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCittc2dzdHIgInRpZGFrIGRhcHQgbWVsYWt1a2FuIG1hbGxvYyBpbml0c3RyaW5nIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIgorbXNnc3RyICJuaWxhaSB3YWt0dSB0aW1lb3V0IGJ1cnVrOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgImtlY2VwYXRhbiB5YW5nIGJ1cnVrOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI3Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAidGVybGFsdSBiYW55YW4ga2VjZXBhdGFuIGFsdGVybmF0aXZlIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2RldjogY2hkaXIoKSBmYWlsZWQ6ICVtIgorbXNnc3RyICIvZGV2OiBjaGRpcigpIGdhZ2FsOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIi9kZXYvJXM6IGJ1a2FuIHNlYnVhaCBjaGFyYWN0ZXIgZGV2aWNlIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIvZGV2LyVzOiB0aWRhayBkYXBhdCBtZW1idWthIHNlYmFnYWkgc3RhbmRhcmQgaW5wdXQ6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBvcGVuIGZvciByZWFkL3dyaXRlIgorbXNnc3RyICIlczogdGlkYWsgZGFwYXQgbWVtYnVrYSB1bnR1ayBiYWNhL3R1bGlzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGR1cCBwcm9ibGVtOiAlbSIKK21zZ3N0ciAiJXM6IG1hc2FsYWggZHVwOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXIiCittc2dzdHIgInBlbmdndW5hIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlcnMiCittc2dzdHIgInBlbmdndW5hIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiJXM6IG1lbWJhY2E6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnB1dCBvdmVycnVuIgorbXNnc3RyICIlczogbWFzdWthbiBvdmVycnVuIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy04aGlMbVV3XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggIgorImxvZ2luX2hvc3RdIGJhdWRfcmF0ZSwuLi4gbGluZSBbdGVybXR5cGVdXG4iCisib3JcdFstaGlMbXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCBsb2dpbl9ob3N0XSAiCisibGluZSBiYXVkX3JhdGUsLi4uIFt0ZXJtdHlwZV1cbiIKK21zZ3N0ciAiIgorIlBlbmdndW5hYW46ICVzIFstOGhpTG1Vd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy0iCisiSCBsb2dpbl9ob3N0XSBiYXVkX3JhdGUsLi4uIGJhcmlzIFt0ZXJtdHlwZV1cbiIKKyJhdGF1XHRbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggIgorImxvZ2luX2hvc3RdIGxpbmUgYmF1ZF9yYXRlLCAuLi4gW3Rlcm10eXBlXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkxIGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBtZW1vcnkgbG93LCBsb2dpbiBtYXkgZmFpbFxuIgorbXNnc3RyICJsb2dpbjogbWVtb3J5IHNlZGlraXQsIGxvZ2luIG11bmdraW4gZ2FnYWxcbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MgorbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgdHR5Y2xhc3MiCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbGFrdWthbiBtYWxsb2MgdW50dWsgdHR5Y2xhc3MiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciBncnBsaXN0IgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZWxha3VrYW4gbWFsbG9jIHVudHVrIGdycGxpc3QiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkIGJ5IGRlZmF1bHQuXG4iCittc2dzdHIgIkxvZ2luIGRpICVzIGRhcmkgJXMgZGl0b2xhayBzZWNhcmEgZGFmYXVsdC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQuXG4iCittc2dzdHIgIkxvZ2luIGRpICVzIGRhcmkgJXMgZGl0b2xhay5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjEzMyBsb2dpbi11dGlscy9jaHNoLmM6MTE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB5b3UgKHVzZXIgJWQpIGRvbid0IGV4aXN0LlxuIgorbXNnc3RyICIlczogYW5kYSAocGVuZ2d1bmEgJWQpIHRpZGFrIGFkYS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0MCBsb2dpbi11dGlscy9jaHNoLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1c2VyIFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IHBlbmdndW5hIFwiJXNcIiB0aWRhayBhZGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiVzOiBoYW55YSBkYXBhdCBtZW5ndWJhaCBtYXN1a2FuIGxvY2FsOyBndW5ha2FuIHlwJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICJDb250ZXh0IHBlbmdndW5hIHRpZGFrIGRpa2V0YWh1aSIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIlczogJXMgdGlkYWsgZGlwZXJib2xlaGthbiB1bnR1ayBtZW5ndWJhaCBpbmZvcm1hc2kgZmluZ2VyIGRhcmkgJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE2NCBsb2dpbi11dGlscy9jaHNoLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBzZXQgZGVmYXVsdCBjb250ZXh0IGZvciAvZXRjL3Bhc3N3ZCIKK21zZ3N0ciAiJXM6IFRpZGFrIGRhcGF0IG1lbnNldCBkZWZhdWx0IGNvbnRleHQgdW50dWsgL2V0Yy9wYXNzd2QiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZmluZ2VyIGluZm9ybWF0aW9uIGZvciAlcy5cbiIKK21zZ3N0ciAiTWVuZ3ViYWggaW5mb3JtYXNpIGZpbmdlciB1bnR1ayAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBQQU0gZmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCittc2dzdHIgIiVzOiBQQU0gR2FnYWwsIG1lbWJhdGFsa2FuOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjEyIGxvZ2luLXV0aWxzL2Noc2guYzoyMTEgbG9naW4tdXRpbHMvbG9naW4uYzo4MjcKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjc5IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDAgbW91bnQvbG9tb3VudC5jOjc0MgorIzogbW91bnQvbG9tb3VudC5jOjc0NQorbXNnaWQgIlBhc3N3b3JkOiAiCittc2dzdHIgIlBhc3N3b3JkOiAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTUgbG9naW4tdXRpbHMvY2hzaC5jOjIxNAorbXNnaWQgIkluY29ycmVjdCBwYXNzd29yZC4iCittc2dzdHIgIlBhc3N3b3JkIHNhbGFoLiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIkluZm9ybWFzaSBmaW5nZXIgdGlkYWsgYmVydWJhaC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWyAtZiBmdWxsLW5hbWUgXSBbIC1vIG9mZmljZSBdICIKK21zZ3N0ciAiUGVuZ2d1bmFhbjogJXMgWyAtZiBmdWxsLW5hbWUgXSBbIC1vIG9mZmljZSBdICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWyAtcCBvZmZpY2UtcGhvbmUgXVxuIgorIlx0WyAtaCBob21lLXBob25lIF0gIgorbXNnc3RyICIiCisiWyAtcCBvZmZpY2UtcGhvbmUgXVxuIgorIlx0WyAtaCBob21lLXBob25lIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiS2FudG9yIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc5Cittc2dpZCAiT2ZmaWNlIFBob25lIgorbXNnc3RyICJUZWxlcG9uIEthbnRvciIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIlRlbGVwb24gUnVtYWgiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpYmF0YWxrYW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmllbGQgaXMgdG9vIGxvbmcuXG4iCittc2dzdHIgImZpZWxkIHRlcmxhbHUgcGFuamFuZy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0MgorIywgYy1mb3JtYXQKK21zZ2lkICInJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICInJWMnIHRpZGFrIGRpcGVyYm9sZWhrYW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiQ2hhcmFjdGVyIGNvbnRyb2wgdGlkYWsgZGlwZXJib2xlaGthbi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxMgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiSW5mb3JtYXNpIGZpbmdlciAqVElEQVQqIGRpdWJhaC4gQ29iYSBsYWdpIG5hbnRpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBjaGFuZ2VkLlxuIgorbXNnc3RyICJJbmZvcm1hc2kgZmluZ2VyIGJlcnViYWguXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgc2hlbGwgb2YgJXNcbiIKK21zZ3N0ciAiJXM6ICVzIHRpZGFrIGRpaWppbmthbiB1bnR1ayBtZW5ndWJhaCBzaGVsbCBkYXJpICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBSdW5uaW5nIFVJRCBkb2Vzbid0IG1hdGNoIFVJRCBvZiB1c2VyIHdlJ3JlIGFsdGVyaW5nLCBzaGVsbCBjaGFuZ2UgIgorImRlbmllZFxuIgorbXNnc3RyICIiCisiJXM6IFVJRCB5YW5nIGRpZ3VuYWthbiB0aWRhayBjb2NvayBkZW5nYW4gVUlEIGRhcmkgcGVuZ2d1bmEgeWFuZyAiCisibWVuZ3ViYWhueWEsIHBlcnViYWhhbiBzaGVsbCBkaXRvbGFrXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogU2hlbGwgYW5kYSB0aWRhayBhZGEgZGFsYW0gZGFmdGFyIC9ldGMvc2hlbGxzLCBwZXJ1YmFoYW4gc2hlbGwgZGl0b2xha1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiTWVydWJhaCBzaGVsbCB1bnR1ayAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyMgorbXNnaWQgIk5ldyBzaGVsbCIKK21zZ3N0ciAiU2hlbGwgYmFydSIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyOQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiU2hlbGwgdGlkYWsgYmVydWJhaC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICJTaGVsbCAqVElEQUsqIGJlcnViYWguIENvYmEgbGFnaSBuYW50aS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBjaGFuZ2VkLlxuIgorbXNnc3RyICJTaGVsbCBiZXJ1YmFoLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIlBlbmdndW5hYW46ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1c2VybmFtZSBdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNoZWxsIG11c3QgYmUgYSBmdWxsIHBhdGggbmFtZS5cbiIKK21zZ3N0ciAiJXM6IHNoZWxsIGhhcnVzIGJlcmFkYSBkYWxhbSBmdWxsIHBhdGggbmFtZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogXCIlc1wiIHRpZGFrIGFkYS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBleGVjdXRhYmxlLlxuIgorbXNnc3RyICIlczogXCIlc1wiIGJ1a2FuIHNlYnVhaCBleGVjdXRhYmxlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogJyVjJyB0aWRhayBkaXBlcmJvbGVoa2FuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogS2FyYWt0ZXIgS29udHJvbCB0aWRhayBkaXBlcmJvbGVoa2FuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc1IGxvZ2luLXV0aWxzL2Noc2guYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIlBlcmluZ2F0YW46IFwiJXNcIiB0aWRhayB0ZXJkYWZ0YXIgZGFsYW0gL2V0Yy9zaGVsbHMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICIlczogXCIlc1wiIHRpZGFrIHRlcmRhZnRhciBkYWxhbSAvZXRjL3NoZWxscy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IGd1bmFrYW4gcGlsaWhhbiAtbCB1bnR1ayBtZWxpaGF0IGRhZnRhci5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIkd1bmFrYW4gJXMgLWwgdW50dWsgbWVsaWhhdCBsaXN0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGtub3duIHNoZWxscy5cbiIKK21zZ3N0ciAiVGlkYWsgYWRhIHNoZWxscyB5YW5nIGRpa2V0YWh1aS5cbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuICVzIGZvciByZWFkaW5nLCBleGl0aW5nLiIKK21zZ3N0ciAiR2FnYWwgbWVtYnVrYSAlcyB1bnR1ayBtZW1iYWNhLCBrZWx1YXIuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MTQ4Cittc2dpZCAidXNhZ2U6IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXNlciAuLi5dXG4iCittc2dzdHIgIiIKKyJwZW5nZ3VuYWFuOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3BlbmdndW5hIC4uLl1cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIgIHRldGFwIGxvZ2dlZCBpbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wIGRpbXVsYWkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozODAgbG9naW4tdXRpbHMvbGFzdC5jOjM5OCBsb2dpbi11dGlscy9sYXN0LmM6NDQ5Cittc2dpZCAibGFzdDogbWFsbG9jIGZhaWx1cmUuXG4iCittc2dzdHIgImxhc3Q6IG1hbGxvYyBnYWdhbC5cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQyNQorbXNnaWQgImxhc3Q6IGdldGhvc3RuYW1lIgorbXNnc3RyICJsYXN0OiBnZXRob3N0bmFtZSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW50ZXJydXB0ZWQgJTEwLjEwcyAlNS41cyBcbiIKK21zZ3N0ciAiIgorIlxuIgorImludGVydXBzaSAlMTAuMTBzICU1LjVzIFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIkZBVEFMOiB0aWRhayBkYXBhdCBtZW1idWthIHR0eTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIKK21zZ3N0ciAiRkFUQUw6ICVzIGJ1a2FuIHNlYnVhaCB0ZXJtaW5hbCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMzgKK21zZ2lkICJGQVRBTDogYmFkIHR0eSIKK21zZ3N0ciAiRkFUQUw6IHR0eSBidXJ1ayIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgImxvZ2luOiAtaCBoYW55YSB1bnR1ayBzdXBlci11c2VyLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ4OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9naW4gWy1mcF0gW3VzZXJuYW1lXVxuIgorbXNnc3RyICJwZW5nZ3VuYWFuOiBsb2dpbiBbLWZwXSBbcGVuZ2d1bmFdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVuZ2luaXRpYWxpc2FzaSBQQU06ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgImxvZ2luOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIkdBR0FMIExPR0lOICVkIERBUkkgJXMgVU5UVUsgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTG9naW4gaW5jb3JyZWN0XG4iCisiXG4iCittc2dzdHIgIiIKKyJMb2dpbiB0aWRhayBiZW5hclxuIgorIlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJUT08gTUFOWSBMT0dJTiBUUklFUyAoJWQpIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiVEVSTEFMVSBCQU5ZQUsgTE9HSU4gRElDT0JBICglZCkgREFSSSAlcyBVTlRVSyAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiBTRVNTSU9OIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiR0FHQUwgU0VTSSBMT0dJTiBEQVJJICVzIFVOVFVLICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICIiCisiXG4iCisiTG9naW4gdGlkYWsgYmVuYXJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTAgbG9naW4tdXRpbHMvbG9naW4uYzo2OTcgbG9naW4tdXRpbHMvbG9naW4uYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlc3Npb24gc2V0dXAgcHJvYmxlbSwgYWJvcnQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJNYXNhbGFoIGRhcmkgc2VzaSBzZXR1cCwgYmF0YWwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5VTEwgdXNlciBuYW1lIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIktPU09ORyBkaSBwZW5nZ3VuYSAodXNlcm5hbWUpIGRhbGFtICVzOiAlZC4gQmF0YWwuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVzZXIgbmFtZSBcIiVzXCIgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiUGVuZ2d1bmEgKHVzZXJuYW1lKSB0aWRhayB2YWxpZCBcIiVzXCIgZGFsYW0gJXM6JWQuIEJhdGFsLiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IE91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAibG9naW46IEtlaGFiaXNhbiBtZW1vcnlcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICJVc2VybmFtZSAocGVuZ2d1bmEpIHRpZGFrIGxlZ2FsIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb2dpbiByZWZ1c2VkIG9uIHRoaXMgdGVybWluYWwuXG4iCittc2dzdHIgIiVzIGxvZ2luIGRpdG9sYWsgZGkgdGVybWluYWwgaW5pLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIEZST00gJXMgT04gVFRZICVzIgorbXNnc3RyICJMT0dJTiAlcyBESVRPTEFLIERBUkkgJXMgREkgVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiTE9HSU4gJXMgRElUT0xBSyBESSBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICJMb2dpbiB0aWRhayBiZW5hclxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRElBTFVQIEFUICVzIEJZICVzIgorbXNnc3RyICJESUFMVVAgUEFEQSAlcyBPTEVIICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIgorbXNnc3RyICJST09UIExPR0lOIERJICVzIERBUkkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIgorbXNnc3RyICJST09UIExPR0lOIERJICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAiTE9HSU4gREkgJXMgT0xFSCAlcyBEQVJJICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIkxPR0lOIERJICVzIE9MRUggJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEyOQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBuZXcgbWFpbC5cbiIKK21zZ3N0ciAiQW5kYSBtZW1pbGlraSBtYWlsIGJhcnUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEzMQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBtYWlsLlxuIgorbXNnc3RyICJBbmRhIG1lbWlsaWtpIG1haWwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogZmFpbHVyZSBmb3JraW5nOiAlcyIKK21zZ3N0ciAibG9naW46IGdhZ2FsIGZvcmtpbmc6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVElPQ1NDVFRZIGZhaWxlZDogJW0iCittc2dzdHIgIlRJT0NTQ1RUWSBnYWdhbDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgZ2FnYWwiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBkaXJlY3RvcnkgJXMhXG4iCittc2dzdHIgIkJ1a2FuIGRpcmVrdG9yaSAlcyFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2dpbmcgaW4gd2l0aCBob21lID0gXCIvXCIuXG4iCittc2dzdHIgIkxvZ2dpbmcgaW4gZGVuZ2FuIGhvbWUgPSBcIi9cIi5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBtZW1vcnkgZm9yIHNoZWxsIHNjcmlwdC5cbiIKK21zZ3N0ciAibG9naW46IHRpZGFrIGFkYSBtZW1vcnkgdW50dWsgc2hlbGwgc2NyaXB0LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGNvdWxkbid0IGV4ZWMgc2hlbGwgc2NyaXB0OiAlcy5cbiIKK21zZ3N0ciAibG9naW46IHRpZGFrIGRhcGF0IG1lbmdla3Nla3VzaSBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIHNoZWxsOiAlcy5cbiIKK21zZ3N0ciAibG9naW46IHRpZGFrIGFkYSBzaGVsbDogJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJXMgbG9naW46ICIKK21zZ3N0ciAiIgorIlxuIgorIiVzIGxvZ2luOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lIG11Y2ggdG9vIGxvbmcuXG4iCittc2dzdHIgIm5hbWEgbG9naW4gdGVybGFsdSBwYW5qYW5nLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICJOQU1BIHRlcmxhbHUgcGFuamFuZyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgIm5hbWEgbG9naW4gdGlkYWsgYm9sZWggZGlhd2FsaSBkZW5nYW4gJy0nLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgInRlcmxhbHUgYmFueWFrIGxpbmVmZWVkcyBiYXJlLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjEKK21zZ2lkICJFWENFU1NJVkUgbGluZWZlZWRzIgorbXNnc3RyICJURVJMQUxVIEJBTllBSyBsaW5lZmVlZHMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJXYWt0dSBoYWJpcyB1bnR1ayBMb2dpbiBzZXN1ZGFoICVkIGRldGlrXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGxvZ2luOiAlLipzICIKK21zZ3N0ciAiTG9naW4gdGVyYWtoaXI6ICUuKnMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAiZGFyaSAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvbiAlLipzXG4iCittc2dzdHIgImRpICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIkxPR0lOIEdBR0FMIERBUkkgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gRkFJTFVSRSBPTiAlcywgJXMiCittc2dzdHIgIkxPR0lOIEdBR0FMIERJICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIgorbXNnc3RyICIlZCBMT0dJTiBHQUdBTCBEQVJJICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIE9OICVzLCAlcyIKK21zZ3N0ciAiJWQgTE9HSU4gR0FHQUwgREkgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICJhZGFsYWggeVxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgblxuIgorbXNnc3RyICJhZGFsYWggblxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBtZXNnIFt5IHwgbl1cbiIKK21zZ3N0ciAicGVuZ2d1bmFhbjogbWVzZyBbeSB8IG5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjk5Cittc2dpZCAibmV3Z3JwOiBXaG8gYXJlIHlvdT8iCittc2dzdHIgIm5ld2dycDogU2lhcGEgYW5kYT8iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEwNyBsb2dpbi11dGlscy9uZXdncnAuYzoxMjEKK21zZ2lkICJuZXdncnA6IHNldGdpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXRnaWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNCBsb2dpbi11dGlscy9uZXdncnAuYzoxMTYKK21zZ2lkICJuZXdncnA6IE5vIHN1Y2ggZ3JvdXAuIgorbXNnc3RyICJuZXdncnA6IFRpZGFrIGdyb3VwIHNlcGVydGkgaXR1LiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiBJamluIGRpdG9sYWsiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIlRpZGFrIGFkYSBzaGVsbCIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCittc2dzdHIgIlBlbmdndW5hYW46IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTM0Cittc2dpZCAiU2h1dGRvd24gcHJvY2VzcyBhYm9ydGVkIgorbXNnc3RyICJQcm9zZXMgc2h1dGRvd24gZGliYXRhbGthbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9ubHkgcm9vdCBjYW4gc2h1dCBhIHN5c3RlbSBkb3duLlxuIgorbXNnc3RyICIlczogSGFueWEgcm9vdCB5YW5nIGRhcGF0IG1lbWF0aWthbiBzeXN0ZW0uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoYXQgbXVzdCBiZSB0b21vcnJvdywgY2FuJ3QgeW91IHdhaXQgdGlsbCB0aGVuP1xuIgorbXNnc3RyICJJdHUgcGFzdGkgYmVzb2ssIGRhcGF0a2FoIGFuZGEgbWVudW5nZ3Ugc2FtcGFpIG5hbnRpP1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMxMAorbXNnaWQgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCittc2dzdHIgInVudHVrIHBlcmF3YXRhbjsgYm91bmNlLCBib3VuY2UiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiU3lzdGVtIGFrYW4gZGltYXRpa2FuIGRhbGFtIDUgbWVuaXQiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzQzCittc2dpZCAiTG9naW4gaXMgdGhlcmVmb3JlIHByb2hpYml0ZWQuIgorbXNnc3RyICJPbGVoIGthcmVuYSBpdHUgbG9naW4gZGlsYXJhbmcuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgImRpIHJlYm9vdCBvbGVoICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiZGkgbWF0aWthbiBvbGVoICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzIKK21zZ2lkICIiCisiXG4iCisiV2h5IGFtIEkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVib290PyIKK21zZ3N0ciAiIgorIlxuIgorIktlbmFwYSBTYXlhIG1hc2loIGhpZHVwIHNldGVsYWggZGkgcmVib290PyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisiU2VrYXJhbmcgYW5kYSBkYXBhdCBtZW1hdGlrYW4gcG93ZXIuLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICJNZW1hbmdnaWwga2VybmVsIHVudHVrIGZhc2lsaXRhcyBwb3dlci1vZmYuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcG93ZXJpbmcgb2ZmXHQlc1xuIgorbXNnc3RyICJFcnJvciBtZW1hdGlrYW5cdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCittc2dzdHIgIk1lbmphbGFua2FuIGFwbGlrYXNpIFwiJXNcIiAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nXHQlc1xuIgorbXNnc3RyICJFcnJvciBtZW5qYWxhbmthblx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiUEVOVElORzogcGVzYW4gYnJvYWRjYXN0IGRhcmkgJXM6IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBob3VycyAlZCBtaW51dGVzIgorbXNnc3RyICJTeXN0ZW0gYWthbiBkaW1hdGlrYW4gZGFsYW0gJWQgamFtICVkIG1lbml0IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAiU3lzdGVtIGFrYW4gZGltYXRpa2FuIGRhbGFtIDEgamFtICVkIG1lbml0IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBtaW51dGVzXG4iCittc2dzdHIgIlN5c3RlbSBha2FuIGRpbWF0aWthbiBkYWxhbSAlZCBtZW5pdFxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwNgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIG1pbnV0ZVxuIgorbXNnc3RyICJTeXN0ZW0gYWthbiBkaW1hdGlrYW4gZGFsYW0gMSBtZW5pdFxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAiU3lzdGVtIGFrYW4gU0VHRVJBIGRpbWF0aWthbiFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx0Li4uICVzIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbGFrdWthbiBmb3JrIHVudHVrIHN3YXBvZmYuIFNocnVnISIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzgKK21zZ2lkICJDYW5ub3QgZXhlYyBzd2Fwb2ZmLCBob3BpbmcgdW1vdW50IHdpbGwgZG8gdGhlIHRyaWNrLiIKK21zZ3N0ciAiIgorIlRpZGFrIGRhcGF0IG1lbmphbGFua2FuIHN3YXBvZmYsIHNlbW9nYSB1bW91bnQgYWthbiBtZWxha3VrYW4gc2VidWFoIHRyaWNrLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1OTcKK21zZ2lkICJDYW5ub3QgZm9yayBmb3IgdW1vdW50LCB0cnlpbmcgbWFudWFsbHkuIgorbXNnc3RyICJUaWRhayBtZWxha3VrYW4gZm9yayB1bnR1ayB1bW91bnQsIGNvYmEgc2VjYXJhIG1hbnVhbC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5qYWxhbmthbiAlcywgbWVuY29iYSBkZW5nYW4gdW1vdW50LlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmphbGFua2FuIHVtb3VudCwgbWVueWVyYWggZGkgdW1vdW50LiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTUKK21zZ2lkICJVbm1vdW50aW5nIGFueSByZW1haW5pbmcgZmlsZXN5c3RlbXMuLi4iCittc2dzdHIgIlVubW91bnRpbmcgc2VsdXJ1aCBmaWxlc3lzdGVtIHlhbmcgYWRhLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJzaHV0ZG93bjogQ291bGRuJ3QgdW1vdW50ICVzOiAlc1xuIgorbXNnc3RyICJzaHV0ZG93bjogVGlkYWsgZGFwYXQgbWVsYWt1a2FuIHVtb3VudCAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzMgorbXNnaWQgIkJvb3RpbmcgdG8gc2luZ2xlIHVzZXIgbW9kZS5cbiIKK21zZ3N0ciAiQm9vdGluZyBrZSBtb2RlIHNhdHUgcGVuZ2d1bmEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJla3Nla3VzaSBkYXJpIHNoZWxsIHNhdHUgcGVuZ2d1bmEgZ2FnYWxcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjE0MAorbXNnaWQgImZvcmsgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgImZvcmsgZGFyaSBzaGVsbCBzYXR1IHBlbmdndW5hIGdhZ2FsXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMDgKK21zZ2lkICJlcnJvciBvcGVuaW5nIGZpZm9cbiIKK21zZ3N0ciAiZXJyb3IgbWVtYnVrYSBmaWZvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMTIKK21zZ2lkICJlcnJvciBzZXR0aW5nIGNsb3NlLW9uLWV4ZWMgb24gL2Rldi9pbml0Y3RsIgorbXNnc3RyICJlcnJvciBtZW5zZXQgY2xvc2Utb24tZXhlYyBkaSAvZGV2L2luaXRjdGwiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNTkKK21zZ2lkICJlcnJvciBydW5uaW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJlcnJvciBtZW5qYWxhbmthbiBmaW5hbHByb2dcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI2MworbXNnaWQgImVycm9yIGZvcmtpbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImVycm9yIGZvcmtpbmcgZmluYWxwcm9nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDUKK21zZ2lkICIiCisiXG4iCisiV3JvbmcgcGFzc3dvcmQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJLYXRhIHNhbmRpIHNhbGFoLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDE4Cittc2dpZCAibHN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAiZ2FnYWwgbHN0YXQgZGFyaSBwYXRoXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MjYKK21zZ2lkICJzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgImdhZ2FsIG1lbXBlcm9sZWggc3RhdGlzdGlrIGRhcmkgcGF0aFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgImdhZ2FsIG1lbWJ1a2EgZGlyZWt0b3JpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcGF3bmluZzogXCIlc1wiIHRvbyBmYXN0OiBxdWVuY2hpbmcgZW50cnlcbiIKK21zZ3N0ciAicmVzcGF3bmluZzogXCIlc1wiIHRlcmxhbHUgY2VwYXQ6IG1lbmFoYW4gbWFzdWthblxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAiZ2FnYWwgZm9ya1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTQwIHRleHQtdXRpbHMvbW9yZS5jOjE2NjMKK21zZ2lkICJleGVjIGZhaWxlZFxuIgorbXNnc3RyICJnYWdhbCBla3Nla3VzaVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0Cittc2dpZCAiY2Fubm90IG9wZW4gaW5pdHRhYlxuIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW1idWthIGluaXR0YWJcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgInRpZGFrIGFkYSBURVJNIGF0YXUgdGlkYWsgZGFwYXQgbWVtcGVyb2xlaCBzdGF0aXN0aWsgdHR5XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igc3RvcHBpbmcgc2VydmljZTogXCIlc1wiXG4iCittc2dzdHIgImVycm9yIG1lbmdoZW50aWthbiBsYXlhbmFuOiBcIiVzXCJcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjk1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTdG9wcGVkIHNlcnZpY2U6ICVzXG4iCittc2dzdHIgIkxheWFuYW4gdGVyaGVudDogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEwNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJlcnJvciBtZW5qYWxhbmthbiBhcGxpa2FzaTogXCIlc1wiXG4iCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjc1Cittc2dpZCAidG9vIG1hbnkgaW92J3MgKGNoYW5nZSBjb2RlIGluIHdhbGwvdHR5bXNnLmMpIgorbXNnc3RyICJ0ZXJsYWx1IGJhbnlhayBpb3YncyAodWJhaCBrb2RlIGRhbGFtIHdhbGwvdHR5bXNnLmMpIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJleGNlc3NpdmVseSBsb25nIGxpbmUgYXJnIgorbXNnc3RyICJhcmcgYmFyaXMgdGVybGFsdSBwYW5qYW5nIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbGFrdWthbiBmb3JrIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZm9yazogJXMiCittc2dzdHIgImZvcms6ICVzIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEJBRCBFUlJPUiIKK21zZ3N0ciAiJXM6IEJBRCBFUlJPUiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIHBhc3N3b3JkIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiJXM6IGZpbGUgcGFzc3dvcmQgc2VkYW5nIHNpYnVrLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgZ3JvdXAgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogZmlsZSBncm91cCBzZWRhbmcgc2lidWsuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSAlcyBmaWxlIGlzIGJ1c3kgKCVzIHByZXNlbnQpXG4iCittc2dzdHIgIiVzOiBmaWxlICVzIHNlZGFuZyBzaWJ1ayAoJXMgYWRhKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBsaW5rICVzOiAlc1xuIgorbXNnc3RyICIlczogdGlkYWsgZGFwYXQgbWVubGluayAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogVGlkYWsgZGFwYXQgbWVtcGVyb2xlaCBjb250ZXh0IHVudHVrICVzIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBzZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiBUaWRhayBkYXBhdCBtZW5zZXQgY29udGV4dCB1bnR1ayAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiIgorIiVzOiB0aWRhayBkYXBhdCBtZW1idWthICVzOiAlcyAocGVydWJhaGFuIHlhbmcgYW5kYSBsYWt1a2FuIG1hc2loIGJlcmFkYSAiCisiZGFsYW0gJXMpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiVzOiBUaWRhayBkYXBhdCBtZWxha3VrYW4gZm9ya1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiJXM6ICVzIHRpZGFrIGRpdWJhaFxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBjaGFuZ2VzIG1hZGVcbiIKK21zZ3N0ciAiJXM6IHRpZGFrIGFkYSBwZXJ1YmFoYW4geWFuZyBkaWxha3VrYW5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIkFuZGEgbWVuZ2d1bmFrYW4gc2hhZG93IGdyb3VwIGRpIHN5c3RlbSBpbmkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJBbmRhIG1lbmdndW5ha2FuIHNoYWRvdyBwYXNzd29yZCBkaSBzeXN0ZW0gaW5pLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldvdWxkIHlvdSBsaWtlIHRvIGVkaXQgJXMgbm93IFt5L25dPyAiCittc2dzdHIgIkFwYWthaCBhbmRhIGluZ2luIG1lbmdlZGlyICVzIHNla2FyYW5nIFt5L25dPyAiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICJwZW5nZ3VuYWFuOiAlcyBbZmlsZV1cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IHRpZGFrIGRhcGF0IG1lbWJ1a2EgZmlsZSBzZW1lbnRhcmEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJvYWRjYXN0IE1lc3NhZ2UgZnJvbSAlc0AlcyIKK21zZ3N0ciAiUGVzYW4gQnJvYWRjYXN0IGRhcmkgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiB0aWRhayBkYXBhdCBtZW1iYWNhICVzIC0gZ3VuYWthbiBzdGRpbi5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiJXM6IHRpZGFrIGRhcGF0IG1lbWJhY2EgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHN0YXQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiB0aWRhayBkYXBhdCBtZW1wZXJvbGVoIHN0YXRpc3RpayBmaWxlIHNlbWVudGFyYS5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IHRpZGFrIGRhcGF0IG1lbWJhY2EgZmlsZSBzZW1lbnRhcmEuXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZGF5IHZhbHVlOiB1c2UgMS0lZCIKK21zZ3N0ciAibmlsYWkgaGFyaSBpbGVnYWw6IGd1bmFrYW4gMS0lZCIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjgKK21zZ2lkICJpbGxlZ2FsIG1vbnRoIHZhbHVlOiB1c2UgMS0xMiIKK21zZ3N0ciAibmlsYWkgYnVsYW4gaWxlZ2FsOiBndW5ha2FuIDEtMTIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzcyCittc2dpZCAiaWxsZWdhbCB5ZWFyIHZhbHVlOiB1c2UgMS05OTk5IgorbXNnc3RyICJuaWxhaSB0YWh1biBpbGVnYWw6IGd1bmFrYW4gMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJXMgJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIgorbXNnc3RyICJwZW5nZ3VuYWFuOiBjYWwgWy0xM3NtanlWXSBbW1toYXJpXSBidWxhbl0gdGFodW5dXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsrZm9ybWF0XSBbZGF5IG1vbnRoIHllYXJdXG4iCittc2dzdHIgInBlbmdndW5hYW46ICVzIFsrZm9ybWF0XSBbaGFyaSBidWxhbiB0YWh1bl1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIlN0LiBUaWIncyBEYXkiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIExBQkVMPTxsYWJlbD58VVVJRD08dXVpZD5cbiIKK21zZ3N0ciAiUGVuZ2d1bmFhbjogJXMgTEFCRUw9PG5hbWE+fFVVSUQ9PHV1aWQ+XG4iCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVuZW50dWthbiAnJXMnIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzXG4iCittc2dzdHIgIiVzOiBzaWduYWwgdGlkYWsgZGlrZXRhaHVpICVzXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBwcm9jZXNzIFwiJXNcIlxuIgorbXNnc3RyICIlczogdGlkYWsgZGFwYXQgbWVuZW11a2FuIHByb2Nlc3MgXCIlc1wiXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjMxNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXM7IHZhbGlkIHNpZ25hbHM6XG4iCittc2dzdHIgIiVzOiBzaWduYWwgdGlkYWsgZGlrZXRhaHVpICVzOyB2YWxpZCBzaWduYWxzOlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorbXNnc3RyICJwZW5nZ3VuYWFuOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiBvcGVubG9nOiBwYXRobmFtZSB0b28gbG9uZ1xuIgorbXNnc3RyICJwZW5jYXRhdDogb3BlbmxvZzogbmFtYSBqYWx1ciB0ZXJsYWx1IHBhbmphbmdcbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQ6ICVzLlxuIgorbXNnc3RyICJzb2NrZXQ6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbm5lY3Q6ICVzLlxuIgorbXNnc3RyICJ0ZXJodWJ1bmc6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiAlczogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBuYW1hIGZhc2lsaXRhcyB0aWRhayBkaWtldGFodWk6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gcHJpb3JpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogbmFtYSBwcmlvcml0eSB0aWRhayBkaWtldGFodWk6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6IGxvZ2dlciBbLWlzXSBbLWYgZmlsZV0gWy1wIHByaV0gWy10IHRhZ10gWy11IHNvY2tldF0gWyBtZXNzYWdlIC4uLiBdXG4iCittc2dzdHIgIiIKKyJwZW5nZ3VuYWFuOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdICIKKyJbIG1lc3NhZ2UgLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgInBlbmdndW5hYW46IGxvb3AgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwNSBtaXNjLXV0aWxzL21jb29raWUuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtYnVrYSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDkgbWlzYy11dGlscy9tY29va2llLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdvdCAlZCBieXRlcyBmcm9tICVzXG4iCittc2dzdHIgIk1lbXBlcm9sZWggJWQgYnl0ZXMgZGFyaSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTQzIG1pc2MtdXRpbHMvbmFtZWkuYzoxOTggbWlzYy11dGlscy9uYW1laS5jOjIyNQorIzogbWlzYy11dGlscy9uYW1laS5jOjI0NSBtaXNjLXV0aWxzL25hbWVpLmM6MjUyIG1pc2MtdXRpbHMvbmFtZWkuYzoyOTQKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAia2VoYWJpc2FuIG1lbW9yeT8iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgc3ltbGluazogJXMiCittc2dzdHIgImdhZ2FsIG1lbWJhY2Egc3ltbGluazogJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyMzEgbWlzYy11dGlscy9uYW1laS5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW1wZXJvbGVoIHN0YXRpc3RpayAnJXMnIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQZW5nZ3VuYWFuOiAlcyBbcGlsaWhhbl0gcGF0aG5hbWUgW3BhdGhuYW1lIC4uLl1cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBpbGloYW46XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRhbXBpbGthbiB0ZWtzIGJhbnR1YW4gaW5pXG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgdGFtcGlsa2FuIHRpdGlrIHBlbWFzYW5nYW4gZGlyZWt0b3JpIGRlbmdhbiBzZWJ1YWggJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgdGFtcGlsa2FuIG1vZGUgYml0IGRhcmkgc2V0aWFwIGJlcmthc1xuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHRhbXBpbGthbiBuYW1hIHBlbWlsaWsgYXRhdSBncnVwIGRhcmkgc2V0aWFwIGJlcmthc1xuIgorIiAtbCwgLS1sb25nICAgICAgICAgIGd1bmFrYW4gc2VidWFoIGZvcm1hdCBwZW5hbXBpbGFuIHBhbmphbmcgKC1tIC1vIC12KVxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGphbmdhbiBpa3V0aSBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHNlc3VhaWthbiB2ZXJ0aWthbCBkYXJpIG1vZGUgZGFuIHBlbWlsaWtcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIG5hbWVpKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisiVW50dWsgaW5mb3JtYXNpIGxlYmloIGxhbmp1dCBsaWhhdCBuYW1laSgxKS5cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdDogJXMiCittc2dzdHIgImdhZ2FsIHVudHVrIG1lbmRhcGF0a2FuIHN0YXRpc3RpazogJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIlczogbWVsZXdhdGkgYmF0YXMgZGFyaSBzeW1saW5rcyIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIlczoga2VoYWJpc2FuIG1lbW9yaVxuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZW5hbWluZyAlcyB0byAlcyBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiVzOiBtZW5ndWJhaCBuYW1hICVzIGtlICVzIGdhZ2FsOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAiY2FsbDogJXMgZGFyaSBrZSBmaWxlcy4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisiUGVyaW5nYXRhbjogYCVzJyBhZGFsYWggc2VidWFoIGxpbmsuXG4iCisiUGVuZ2d1bmFhbiBgJXMgW3BpbGloYW5dICVzJyBqaWthIGFuZGEgYmVuYXIgLSBiZW5hciBpbmdpbiBtZW5nZ3VuYWthbm55YS5cbiIKKyJTY3JpcHQgdGlkYWsgYmVyamFsYW4uXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAicGVuZ2d1bmFhbjogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2ZpbGVdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNjcmlwdCBkaW11bGFpLCBmaWxlIGFkYWxhaCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3IgJWQ6ICVzXG4iCittc2dzdHIgIiVzOiBlcnJvciBtZW51bGlzIGRpICVkOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiU2NyaXB0IGRpbXVsYWkgZGkgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IGVycm9yIG1lbnVsaXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczogdGlkYWsgZGFwYXQgbWVudWxpcyBiZXJrYXMgc2NyaXB0LCBlcnJvcjogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNjcmlwdCBkb25lIG9uICVzIgorbXNnc3RyICIiCisiXG4iCisiU2NyaXB0IHNlbGVzYWkgZGkgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNjcmlwdCBzZWxlc2FpLCBmaWxlIGFkYWxhaCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVucHR5IGZhaWxlZFxuIgorbXNnc3RyICJvcGVucHR5IGdhZ2FsXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICJPdXQgb2YgcHR5J3NcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyA8dGltaW5nZmlsZT4gWzx0eXBlc2NyaXB0PiBbPGRpdmlzb3I+XV1cbiIKK21zZ3N0ciAiJXMgPGJlcmthc3Bld2FrdHU+IFs8dGlwZXNjcmlwdD4gWzxwZW1iYWdpPl1dXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhwZWN0ZWQgYSBudW1iZXIsIGJ1dCBnb3QgJyVzJyIKK21zZ3N0ciAiZGlkdWdhIHNlYnVhaCBub21vciwgdGV0YXBpIGRpcGVyb2xlaCAnJXMnIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjU2IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGl2aXNvciAnJXMnIgorbXNnc3RyICJwZW1iYWdpICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTA0Cittc2dpZCAid3JpdGUgdG8gc3Rkb3V0IGZhaWxlZCIKK21zZ3N0ciAiZ2FnYWwgbWVudWxpcyBrZSBzdGRvdXQiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgImFraGlyIGRhcmkgYmVya2FzIHRpZGFrIGRpZHVnYSBkaSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJnYWdhbCBtZW1iYWNhIHR5cGVzY3JpcHQgYmVya2FzICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtYnVrYSBiZXJrYXMgcGV3YWt0dSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1idWthIGJlcmthcyB0eXBlc2NyaXB0ICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiZ2FnYWwgbWVtYmFjYSBiZXJrYXMgcGV3YWt0dSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IgorbXNnc3RyICJiZXJrYXMgcGV3YWt0dSAlczogJWx1OiBmb3JtYXQgeWFuZyB0aWRhayB0ZXJkdWdhIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczogQXJndW1lbnQgZXJyb3IsIHBlbmdndW5hYW5cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKK21zZ3N0ciAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiAgWyAtcmVzZXQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiICBbIC1pbml0aWFsaXplIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIgIFsgLWRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc1IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NworIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiICBbIC1zdG9yZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorbXNnc3RyICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsYW5rIFswLTYwfGZvcmNlfHBva2VdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1hcHBlbmQgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1hcHBlbmQgWzEtTlJfQ09OU09MRVNdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZmlsZSBkdW1wZmlsZW5hbWUgXVxuIgorbXNnc3RyICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgYmxhbmtcbiIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtYWtzYSBwZW5naGFwdXNhblxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbWFrc2EgdW5ibGFua1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbXBlcm9sZWggc3RhdHVzIHBlbmdoYXB1c2FuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90ICh1bilzZXQgcG93ZXJzYXZlIG1vZGVcbiIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVuZy11bnNldCBtb2RlIHBvd2Vyc2F2ZVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTIyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAia2xvZ2N0bCBlcnJvcjogJXNcbiIKK21zZ3N0ciAia2xvZ2N0bCBlcnJvcjogJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciB3cml0aW5nIHNjcmVlbmR1bXBcbiIKK21zZ3N0ciAiRXJyb3IgbWVudWxpcyBzY3JlZW5kdW1wXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgcmVhZCAlc1xuIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1iYWNhICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICRURVJNIGlzIG5vdCBkZWZpbmVkLlxuIgorbXNnc3RyICIlczogJFRFUk0gdGlkYWsgZGlkZWZpbmlzaWthbi5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWRdIFstcCBwaWRmaWxlXSBbLXMgc29ja2V0cGF0aF0gWy1UIHRpbWVvdXRdXG4iCittc2dzdHIgIiIKKyJQZW5nZ3VuYWFuOiAlcyBbLWRdIFstcCBiZXJrYXMgcGlkXSBbLXMgamFsdXIgc29rZXRdIFstVCB3YWt0dSBoYWJpc11cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyBbLXJ8dF0gWy1uIG51bV0gWy1zIHNvY2tldHBhdGhdXG4iCittc2dzdHIgIiAgICAgICAlcyBbLXJ8dF0gWy1uIGp1bWxhaF0gWy1zIGphbHVyIHNva2V0XVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiAgICAgICAlcyAta1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTUyCittc2dpZCAiYmFkIGFyZ3VtZW50cyIKK21zZ3N0ciAiYXJndW1lbiB0aWRhayBiYWlrIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTU5Cittc2dpZCAic29ja2V0IgorbXNnc3RyICJzb2tldCIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE3MAorbXNnaWQgImNvbm5lY3QiCittc2dzdHIgInRlcmh1YnVuZyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE4OQorbXNnaWQgIndyaXRlIgorbXNnc3RyICJ0dWxpcyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE5NworbXNnaWQgInJlYWQgY291bnQiCittc2dzdHIgImp1bWxhaCB5YW5nIHRlcmJhY2EiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyMDMKK21zZ2lkICJiYWQgcmVzcG9uc2UgbGVuZ3RoIgorbXNnc3RyICJwYW5qYW5nIGJhbGFzYW4gYnVydWsiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIKK21zZ3N0ciAiZGFlbW9uIHV1aWRkIHRlbGFoIGJlcmphbGFuIGRlbmdhbiBwaWQgJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBjcmVhdGUgdW5peCBzdHJlYW0gc29ja2V0OiAlcyIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtYnVhdCBhbGlyYW4gc29rZXQgdW5peDogJXMiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgYmluZCB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVuZ2lrYXQgc29rZXQgdW5peCAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsaXN0ZW4gb24gdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmRlbmdhcmthbiBkaSBzb2tldCB1bml4ICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHJlYWRpbmcgZnJvbSBjbGllbnQsIGxlbiA9ICVkXG4iCittc2dzdHIgIkVycm9yIG1lbWJhY2EgZGFyaSBrbGllbiwgcGFuamFuZyA9ICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlcmF0aW9uICVkLCBpbmNvbWluZyBudW0gPSAlZFxuIgorbXNnc3RyICJvcGVyYXNpICVkLCBtYXN1a2FuIGp1bWxhaCA9ICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRDogJXNcbiIKK21zZ3N0ciAiVVVJRCB3YWt0dSB5YW5nIGRpaGFzaWxrYW46ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICJVVUlEIGFjYWsgeWFuZyBkaWhhc2lsa2FuOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQgJXMgYW5kICVkIGZvbGxvd2luZ1xuIgorbXNnc3RyICJVVUlEIHdha3R1IHlhbmcgZGloYXNpbGthbiAlcyBkYW4gJWQgeWFuZyBtZW5naWt1dGlueWFcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICJNZW5naGFzaWxrYW4gJWQgVVVJRDpcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIG9wZXJhdGlvbiAlZFxuIgorbXNnc3RyICJPcGVyYXNpICVkIHRpZGFrIHZhbGlkXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICJBbmdrYSBidXJ1azogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUyNCBtaXNjLXV0aWxzL3V1aWRkLmM6NTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNhbGxpbmcgdXVpZGQgZGFlbW9uICglcyk6ICVzXG4iCittc2dzdHIgIkVycm9yIG1lbWFuZ2dpbCBkYWVtb24gdXVpZGQgKCVzKTogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiJXMgZGFuIFVVSUQgJWQgc2VsYW5qdXRueWFcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNgorIywgYy1mb3JtYXQKK21zZ2lkICJMaXN0IG9mIFVVSUQnczpcbiIKK21zZ3N0ciAiRGFmdGFyIGRhcmkgVVVJRDpcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmV4cGVjdGVkIHJlcGx5IGxlbmd0aCBmcm9tIHNlcnZlciAlZFxuIgorbXNnc3RyICJQYW5qYW5nIGJhbGFzYW4gZGFyaSBzZXJ2ZXIgdGlkYWsgdGVyZHVnYSAlZFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbWF0aWthbiB1dWlkZCB5YW5nIGJlcmphbGFuIGRlbmdhbiBwaWQgJWQ6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgIkRpbWF0aWthbiB1dWlkZCB5YW5nIGJlcmphbGFuIGRlbmdhbiBwaWQgJWRcbiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJQZW5nZ3VuYWFuOiAlcyBbLXJdIFstdF1cbiIKKworIzogbWlzYy11dGlscy93aGVyZWlzLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBkaXIgLi4uIC1mIF0gbmFtZS4uLlxuIgorbXNnc3RyICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWEuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKK21zZ2lkICJjYWxsb2MgZmFpbGVkIgorbXNnc3RyICJjYWxsb2MgZ2FnYWwiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTUwCittc2dpZCAic3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAic3RyZHVwIGdhZ2FsIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICJlcnJvcjogJXM6IGdhZ2FsIG1lbGFrdWthbiBpbmlzaWFsaXNhc2kgcHJvYmluZyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBhcHBlYXJzIHRvIGNvbnRhaW4gJyVzJyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgImVycm9yOiAlczogc2VwZXJ0aW55YSBiZXJpc2kgJyVzJyB0YWJlbCBwYXJ0aXNpIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBmb3VuZCBhIG1hZ2ljIHN0cmluZyBhdCBvZmZzZXQgMHglanggLSBpZ25vcmUuIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW5lbXVrYW4gc2VidWFoIHN0cmluZyBtYWdpYyBkaSBvZnNldCAweCVqeCAtIGRpYWJhaWthbi4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gc2VlayB0byBvZmZzZXQgMHglangiCittc2dzdHIgIiVzOiBnYWdhbCB1bnR1ayBiZXJwaW5kYWgga2Ugb2ZzZXQgMHglangiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgIiVzOiBnYWdhbCBtZW51bGlzIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICIlemQgYnl0ZXMgWyIKK21zZ3N0ciAiJXpkIGJ5dGVzIFsiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iCittc2dzdHIgIl0gZGloYXB1cyBkaSBvZnNldCAweCVqeCAoJXMpXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjkyIG1vdW50L3N3YXBvbi5jOjE5OCBtb3VudC9zd2Fwb24uYzoyNjYKKyM6IG1vdW50L3N3YXBvbi5jOjQxMSBtb3VudC9zd2Fwb24uYzo1NzAgbW91bnQvc3dhcG9uLmM6NzcyCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcGVuIGZhaWxlZCIKK21zZ3N0ciAiJXM6IGdhZ2FsIG1lbWJ1a2EiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgb2Zmc2V0ICclcycgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJuaWxhaSBvZnNldCAnJXMnIHRpZGFrIHZhbGlkIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGRldmljZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiUGVuZ2d1bmFhbjogJXMgW3BpbGloYW5dIDxuYW1hIGJlcmthcz5cbiIKKyJcbiIKKyJQaWxpaGFuOlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1hLCAtLWFsbCAgICAgICAgICAgd2lwZSBhbGwgbWFnaWMgc3RyaW5ncyAoQkUgQ0FSRUZVTCEpXG4iCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLW5vLWFjdCAgICAgICAgZXZlcnl0aGluZyB0byBiZSBkb25lIGV4Y2VwdCBmb3IgdGhlIHdyaXRlKCkgY2FsbFxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCB0byBlcmFzZSwgaW4gYnl0ZXNcbiIKKyIgLXAsIC0tcGFyc2FibGUgICAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0XG4iCittc2dzdHIgIiIKKyIgLWEsIC0tYWxsICAgICAgICAgICBoYXB1cyBzZWx1cnVoICdtYWdpYyBzdHJpbmdzJyAoSEFUSS1IQVRJKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHBlc2FuIGJhbnR1YW4gaW5pXG4iCisiIC1uLCAtLW5vLWFjdCAgICAgICAgc2VtdWEgeWFuZyBoYXJ1cyBkaWxha3VrYW4ga2VjdWFsaSB1bnR1ayBwZW1hbmdnaWxhbiAiCisid3JpdGUoKVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCB1bnR1ayBtZW5naGFwdXMsIGRhbGFtIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgdGFtcGlsa2FuIGRhbGFtIGZvcm1hdCB5YW5nIG11ZGFoIGRpcGFyc2UgZGFyaXBhZGEgIgorImZvcm1hdCBjZXRha1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlVudHVrIGluZm9ybWFzaSBsZWJpaCBsYW5qdXQgbGloYXQgd2lwZWZzKDgpLlxuIgorIlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjM4NworbXNnaWQgIi0tb2Zmc2V0IGFuZCAtLWFsbCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgorbXNnc3RyICItLW9mZnNldCBkYW4gLS1hbGwgYWRhbGFoICdtdXR1YWxseSBleGNsdXNpdmUnIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZTogdGlkYWsgZGFwYXQgbWVuY2FyaSBuYW1hIGRhcmkgdHR5J3MgYW5kYVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiB5b3UgaGF2ZSB3cml0ZSBwZXJtaXNzaW9uIHR1cm5lZCBvZmYuXG4iCittc2dzdHIgIndyaXRlOiBpamkgbWVudWxpcyBhbmRhIHRpZGFrIGFrdGlmLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluIG9uICVzLlxuIgorbXNnc3RyICJ3cml0ZTogJXMgdGlkYWsgZGkgY2F0YXQgZGkgJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZCBvbiAlc1xuIgorbXNnc3RyICJ3cml0ZTogJXMgbWVtaWxpa2kgbWVzc2FnZSBkaW1hdGlrYW4gZGkgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICJwZW5nZ3VuYWFuOiB3cml0ZSBwZW5nZ3VuYSBbdHR5XVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlOiAlcyB0aWRhayBkaWNhdGF0IGRpXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZFxuIgorbXNnc3RyICJ3cml0ZTogJXMgbWVtaWxpa2kgbWVzc2FnZSBkaW1hdGlrYW5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbG9nZ2VkIGluIG1vcmUgdGhhbiBvbmNlOyB3cml0aW5nIHRvICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyBkaWNhdGF0IGRhbGFtIGxlYmloIGRhcmkgc2F0dTsgbWVudWxpcyBkaSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyAoYXMgJXMpIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiUGVzYW4gZGFyaSAlc0AlcyAoc2ViYWdhaSAlcykgZGkgJXMgcGFkYSAlcyAuLi4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiUGVzYW4gZGFyaSAlc0AlcyBkaSAlcyBwYWRhICVzIC4uLiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgInBlcmluZ2F0YW46IGVycm9yIG1lbWJhY2EgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAicGVyaW5nYXRhbjogdGlkYWsgZGFwYXQgbWVtYnVrYSAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjb3VsZCBub3Qgb3BlbiAlcyAtIHVzaW5nICVzIGluc3RlYWRcbiIKK21zZ3N0ciAibW91bnQ6IHRpZGFrIGRhcGF0IG1lbWJ1a2EgJXMgLSBtZW5nZ3VuYWthbiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisidGlkYWsgZGFwYXQgbWVtYnVhdCBmaWxlIGt1bmNpICVzOiAlcyAoZ3VuYWthbiBwaWxpaGFuIC1uIHVudHVrIG1lbWFrc2EgIgorIm1lbmphbGFua2FuKSIKKworIzogbW91bnQvZnN0YWIuYzo2MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbGluayBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyJ0aWRhayBkYXBhdCBtZW5saW5rIGZpbGUga3VuY2kgJXM6ICVzIChndW5ha2FuIHBpbGloYW4gLW4gdW50dWsgbWVtYWtzYSAiCisibWVuamFsYW5rYW4pIgorCisjOiBtb3VudC9mc3RhYi5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBvcGVuIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorInRpZGFrIGRhcGF0IG1lbWJ1a2EgZmlsZSBrdW5jaSAlczogJXMgKGd1bmFrYW4gcGlsaWhhbiAtbiB1bnR1ayBtZW1ha3NhICIKKyJtZW5qYWxhbmthbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5ndW5jaSBmaWxlIGt1bmNpICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXMiCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbmd1bmNpIGZpbGUga3VuY2kgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MworbXNnaWQgInRpbWVkIG91dCIKK21zZ3N0ciAid2FrdHUgaGFiaXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxpbmsgJXNcbiIKKyJQZXJoYXBzIHRoZXJlIGlzIGEgc3RhbGUgbG9jayBmaWxlP1xuIgorbXNnc3RyICIiCisiVGlkYWsgZGFwdCBtZW1idWF0IGxpbmsgJXNcbiIKKyJNdW5na2luIGRpc2FuYSBhZGEgc2VidWFoIGZpbGUga3VuY2kgeWFuZyBtYXNpaCBhZGE/XG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW1idWthICVzICglcykgLSBtdGFiIHRpZGFrIGRpdXBkYXRlIgorCisjOiBtb3VudC9mc3RhYi5jOjg1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAiZXJyb3IgbWVudWxpcyAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODc0CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzXG4iCittc2dzdHIgImVycm9yIG1lbmd1YmFoIG1vZGUgZGFyaSAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iCittc2dzdHIgImVycm9yIG1lbmd1YmFoIGtlcGVtaWxpa2FuIGRhcmkgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODk4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVuZ2dhbnRpIG5hbWEgJXMgbWVuamFkaSAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBzZXQgY2FwYWNpdHkgb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiB0aWRhayBkYXBhdCBtZW5zZXQga2FwYXNpdGFzIGRpIHBlcmFuZ2thdCAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlPFBSSXU2ND4iCittc2dzdHIgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKKworIzogbW91bnQvbG9tb3VudC5jOjM4OQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHNpemVsaW1pdCAlPFBSSXU2ND4iCittc2dzdHIgIiwgc2l6ZWxpbWl0ICU8UFJJdTY0PiIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gJXMgKHR5cGUgJTxQUkl1MzI+KSIKK21zZ3N0ciAiLCBlbmtyaXBzaSAlcyAodGlwZSAlPFBSSXUzMj4pIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICVkIgorbXNnc3RyICIsIG9mZnNldCAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gdHlwZSAlZFxuIgorbXNnc3RyICIsIGVuY3J5cHRpb24gdHlwZSAlZFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGdldCBpbmZvIG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogdGlkYWsgZGFwYXQgbWVtcGVyb2xlaCBpbmZvIGRpIHBlcmFuZ2thdCAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogdGlkYWsgZGFwYXQgbWVtYnVrYSBwZXJhbmdrYXQgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NDggbW91bnQvbG9tb3VudC5jOjQ4MCBtb3VudC9sb21vdW50LmM6NTQyCisjOiBtb3VudC9sb21vdW50LmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iCittc2dzdHIgIiVzOiAvZGV2IGRpcmVrdG9yaSB0aWRhayBhZGEuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIHBlcm1pc3Npb24gdG8gbG9vayBhdCAvZGV2L2xvb3AlczxOPiIKK21zZ3N0ciAiJXM6IHRpZGFrIGFkYSBpamluIHVudHVrIG1lbGloYXQgZGkgL2Rldi9sb29wJXM8Tj4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBmcmVlIGxvb3AgZGV2aWNlIgorbXNnc3RyICIlczogdGlkYWsgZGFwYXQgbWVuZW11a2FuIHBlcmFuZ2thdCBsb29wIHlhbmcgdGlkYWsgZGlwYWthaSIKKworIzogbW91bnQvbG9tb3VudC5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yIGBtb2Rwcm9iZSBsb29wJy4pIgorbXNnc3RyICIiCisiJXM6IFRpZGFrIGRhcGF0IG1lbmVtdWthbiBwZXJhbmdrYXQgbG9vcC4gTXVuZ2tpbiBrZXJuZWwgaW5pIHRpZGFrICIKKyJtZW5nZXRhaHVpXG4iCisiICAgIG1lbmdlbmFpIHBlcmFuZ2thdCBsb29wPyAoSmlrYSBkZW1pa2lhbiwgcmVjb21waWxlIGF0YXUgYG1vZHByb2JlIGxvb3AnLikiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MzYKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoaWxlIHJlYWRpbmcgcGFzc3BocmFzZSIKK21zZ3N0ciAiS2VoYWJpc2FuIG1lbW9yaSBrZXRpa2EgbWVtYmFjYSBrYXRhIHNhbmRpIgorCisjOiBtb3VudC9sb21vdW50LmM6Njc5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzIGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgInBlcmluZ2F0YW46ICVzIHN1ZGFoIGRpYXNvc2lhc2lrYW4gZGVuZ2FuICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICIiCisicGVyaW5nYXRhbjogJXM6IG1lbWlsaWtpIHByb3Rla3NpIHVudHVrIGRpdHVsaXMsIG1lbmdndW5ha2FuIGJhY2Etc2FqYS5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb2NrIGludG8gbWVtb3J5LCBleGl0aW5nLlxuIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5ndW5jaSBrZSBtZW1vcnksIGtlbHVhci5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBMT09QX1NFVF9GRCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImlvY3RsIExPT1BfU0VUX0ZEIGdhZ2FsOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBjLWZvcm1hdAorbXNnaWQgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAic2V0X2xvb3AoJXMsJXMsJWxsdSwgJWxsdSk6IGJlcmhhc2lsXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVsX2xvb3AoJXMpOiBzdWNjZXNzXG4iCittc2dzdHIgImRlbF9sb29wKCVzKTogYmVyaGFzaWxcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg0MAorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBkZWxldGUgZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiB0aWRhayBkYXBhdCBtZW5naGFwdXMgcGVyYW5na2F0ICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgbW91bnQgd2FzIGNvbXBpbGVkIHdpdGhvdXQgbG9vcCBzdXBwb3J0LiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICJNb3VudCBpbmkgdGVsYWggZGlrb21waWxlIHRhbnBhIGxheWFuYW4gbG9vcC4gVG9sb25nIGRpIHJla29tcGlsZS5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBlbmdndW5hYW46XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJlcmlrYW4gaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYWZ0YXIgc2VsdXJ1aCB5YW5nIGRpZ3VuYWthblxuIgorIiAlMSRzIC1kIHwgLS1kZXRhY2ggPGxvb3BkZXY+IFs8bG9vcGRldj4gLi4uXSBtZW5naGFwdXNcbiIKKyIgJTEkcyAtZiB8IC0tZmluZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVuY2FyaSB5YW5nIHRpZGFrIGRpZ3VuYWthblxuIgorIiAlMSVzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPHBlcmFuZ2thdCBsb29wPiAgICB1YmFoIHVrdXJhbiAlMSRzIC1qIHwgLS0iCisiYXNzb2NpYXRlZCA8YmVya2FzPiBbLW8gPG51bT5dICAgZGFmdGFyIHNlbHVydWggYXNvc2lhc2kgZGVuZ2FuIDxiZXJrYXM+XG4iCisiICUxJHMgWyBwaWxpaGFuIF0gey1mfC0tZmluZHxsb29wZGV2fSA8YmVya2FzPiBrb25maWd1cmFzaVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQaWxpaGFuOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dGlwZT4gbWVuZ2FrdGlma2FuIGRhdGEgZW5rcmlwc2kgZGVuZ2FuIHNwZXNpZmlrYXNpICIKKyI8bmFtYS9ub21vcj5cbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIGJhbnR1YW4gaW5pXG4iCisiIC1vIHwgLS1vZmZzZXQgPG5vbW9yPiAgICBhd2FsIGRhcmkgb2Zmc2V0IDxub21vcj4ga2VkYWxhbSBiZXJrYXNcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bm9tb3I+IGxvb3AgZGliYXRhc2kgaGFueWEgPG5vbW9yPiBieXRlcyBkYXJpIGJlcmthc1xuIgorIiAtcCB8IC0tcGFzcy1mZCA8bm9tb3I+ICAgYmFjYSBrYXRhLWt1bmNpIGRhcmkgYmVya2FzIGRlc2tyaXBzaSA8bm9tb3I+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBwYXNhbmcgYmFjYS1zYWphIHBlcmFuZ2thdCBsb29wXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICB0YW1waWxrYW4gbmFtYSBwZXJhbmdrYXQgKGRlbmdhbiAtZiA8YmVya2FzPilcbiIKKyIgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgIG1vZGUgdmVyYm9zZVxuIgorIlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTAzNCBtb3VudC9sb21vdW50LmM6MTA3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMb29wIGRldmljZSBpcyAlc1xuIgorbXNnc3RyICJQZXJhbmdrYXQgbG9vcCBhZGFsYWggJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RvbGVuIGxvb3A9JXMuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAidGVyY3VyaSBsb29wPSVzIC4uLm1lbmNvYmEgbGFnaVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA3MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICIlczogJXM6IHBlcmFuZ2thdCBzZWRhbmcgc2lidWsiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDg4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGxvb3Agc3VwcG9ydCB3YXMgYXZhaWxhYmxlIGF0IGNvbXBpbGUgdGltZS4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiTGF5YW5hbiBsb29wIHRpZGFrIGFkYSBwYWRhIHdha3R1IGRpa29tcGlsZS4gVG9sb25nIGRpIHJla29tcGlsZS5cbiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisibW91bnQ6IHBlcmluZ2F0YW46IC9ldGMvbXRhYiB0aWRhayBkYXBhdCBkaXR1bGlzIChtdW5na2luIHNpc3RlbSBiZXJrYXMgYmFjYS0iCisic2FqYSkuXG4iCisiICAgICAgIEluaSBtZW11bmdraW5rYW4gamlrYSBpbmZvcm1hc2kgeWFuZyBkaXRhbXBpbGthbiBvbGVoIG1vdW50KDgpIHRpZGFrICIKKyJiYXJ1LlxuIgorIiAgICAgICBVbnR1ayBpbmZvcm1hc2kgYWt0dWFsIG1lbmdlbmFpIHRpdGlrIHBlbWFzYW5nYW4gc2lzdGVtIHBlcmlrc2EgIgorImJlcmthc1xuIgorIiAgICAgICAvcHJvYy9tb3VudHMuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIm1vdW50OiBwaWxpaGFuIHN0cmluZyB0aWRhayBkaW55YXRha2FuIGRlbmdhbiBiZW5hciAnJXMnIgorCisjOiBtb3VudC9tb3VudC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdHJhbnNsYXRlZCAlcyAnJXMnIHRvICclcydcbiIKK21zZ3N0ciAibW91bnQ6IGRpdHJhbnNsYXNpa2FuICVzICclcycga2UgJyVzJ1xuIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IG1lbnVydXQgbXRhYiwgJXMgdGVsYWggZGltb3VudCBkaSAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogbWVudXJ1dCBtdGFiLCAlcyB0ZWxhaCBkaSBtb3VudCBkaSAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDogdGlkYWsgZGFwYXQgbWVtYnVrYSAlcyB1bnR1ayBtZW51bGlzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1ODEgbW91bnQvbW91bnQuYzoxMTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGVycm9yIGRhbGFtIG1lbnVsaXMgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXMiCittc2dzdHIgIm1vdW50OiBlcnJvciBtZW5ndWJhaCBtb2RlIGRhcmkgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIm1vdW50IHRpZGFrIGRhcGF0IG1lbnNldCBncnVwIGlkOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiB0aWRhayBkYXBhdCBtZW5zZXQgaWQgcGVuZ2d1bmE6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjcxNCBtb3VudC9tb3VudC5jOjE4NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAibW91bnQ6IHRpZGFrIGRhcGF0IG1lbGFrdWthbiBmb3JrOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIk1lbmNvYmEgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo4NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHlvdSBkaWRuJ3Qgc3BlY2lmeSBhIGZpbGVzeXN0ZW0gdHlwZSBmb3IgJXNcbiIKK21zZ3N0ciAiIgorIm1vdW50OiBhbmRhIHRpZGFrIG1lbnNwZXNpZmlrYXNpa2FuIHNlYnVhaCB0aXBlIGRhcmkgZmlsZXN5c3RlbSB1bnR1ayAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiAgICAgICBTYXlhIGFrYW4gbWVuY29iYSBzZW11YSB0aXBlIHlhbmcgZGlzZWJ1dGthbiBkYWxhbSAlcyBhdGF1ICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICIgICAgICAgZGFuIGluaSBzZXBlcnRpbnlhIG1lcnVwYWthbiBzZWJ1YWggc3dhcHNwYWNlXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIKK21zZ3N0ciAiICAgICAgIFNheWEgYWthbiBtZW5jb2JhIHRpcGUgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiJXMga2VsaWhhdGFubnlhIHNlcGVydGkgc3dhcHNwYWNlIC0gdGlkYWsgZGkgbW91bnQiCisKKyM6IG1vdW50L21vdW50LmM6MTAwMgorbXNnaWQgIm1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQgZ2FnYWwiCisKKyM6IG1vdW50L21vdW50LmM6MTAwNAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBtb3VudCAlcyBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IGhhbnlhIHJvb3QgeWFuZyBkYXBhdCBtZWxha3VrYW4gbW91bnQgJXMgZGkgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTA3NAorbXNnaWQgIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiBwZXJhbmdrYXQgbG9vcCBkaXNwZXNpZmlrYXNpa2FuIGR1YSBrYWxpIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzkKK21zZ2lkICJtb3VudDogdHlwZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiB0aXBlIGRpc3Blc2lmaWthc2lrYW4gZHVhIGthbGkiCisKKyM6IG1vdW50L21vdW50LmM6MTA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2tpcHBpbmcgdGhlIHNldHVwIG9mIGEgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAibW91bnQ6IG1lbGV3YXRrYW4gc2V0dXAgZGFyaSBwZXJhbmdrYXQgbG9vcFxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICJtb3VudDogbWVudXJ1dCBtdGFiLCAlcyB0ZWxhaCBkaW1vdW50IGRpICVzIHNlYmFnYWkgbG9vcCIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiBha2FuIG1lbmdndW5ha2FuIHBlcmFuZ2thdCBsb29wICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIm1vdW50OiB0ZXJjdXJpIGxvb3A9JXMgLi4ubWVuY29iYSBsYWdpXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgInVtb3VudDogdGVyY3VyaSBsb29wPSVzIgorCisjOiBtb3VudC9tb3VudC5jOjExMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBnYWdhbCBtZW5zZXQtdXAgcGVyYW5na2F0IGxvb3BcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzZXR1cCBsb29wIGRldmljZSBzdWNjZXNzZnVsbHlcbiIKK21zZ3N0ciAibW91bnQ6IHNldHVwIHBlcmFuZ2thdCBsb29wIHRlbGFoIGJlcmhhc2lsXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gJXMgZm91bmQgLSBjcmVhdGluZyBpdC4uXG4iCittc2dzdHIgIm1vdW50OiAlcyB0aWRhayBkaXRlbXVrYW4gLSBtZW1idWF0bnlhLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IHRpZGFrIGRhcGF0IG1lbWJ1a2EgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIm1vdW50OiBhcmd1bWVudCB1bnR1ayAtcCBhdGF1IC0tcGFzcy1mZCBoYXJ1cyBiZXJ1cGEgc2VidWFoIG5vbW9yIgorCisjOiBtb3VudC9tb3VudC5jOjEyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBvcGVuICVzIGZvciBzZXR0aW5nIHNwZWVkIgorbXNnc3RyICJtb3VudDogdGlkYWsgZGFwYXQgbWVtYnVrYSAlcyB1bnR1ayBtZW5zZXQga2VjZXBhdGFuIgorCisjOiBtb3VudC9tb3VudC5jOjEyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgc3BlZWQ6ICVzIgorbXNnc3RyICJtb3VudCB0aWRhayBkYXBhdCBtZW5zZXQga2VjZXBhdGFuOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiBtZW51cnV0IG10YWIsICVzIHRlbGFoIGRpbW91bnQgZGkgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxMzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgIm1vdW50OiBwZXJpbmdhdGFuOiAlcyBrZWxpaGF0YW5ueWEgdGVsYWggZGlwYXNhbiBiYWNhLXR1bGlzLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTMKK21zZ2lkICIiCisibW91bnQ6IEkgY291bGQgbm90IGRldGVybWluZSB0aGUgZmlsZXN5c3RlbSB0eXBlLCBhbmQgbm9uZSB3YXMgc3BlY2lmaWVkIgorbXNnc3RyICIiCisibW91bnQ6IFNheWEgdGlkYWsgZGFwYXQgbWVuZW50dWthbiB0aXBlIGRhcmkgZmlsZXN5c3RlbSwgZGFuIHRpZGFrIGRpYmVyaWthbiAiCisic3Blc2lmaWthc2kgZGkgYXJndW1lbnQgcGVyaW50YWgiCisKKyM6IG1vdW50L21vdW50LmM6MTQxNgorbXNnaWQgIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIm1vdW50OiBhbmRhIGhhcnVzIG1lbnNwZXNpZmlrYXNpa2FuIHRpcGUgZmlsZXN5c3RlbSIKKworIzogbW91bnQvbW91bnQuYzoxNDE5Cittc2dpZCAibW91bnQ6IG1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQ6IG1vdW50IGdhZ2FsIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIm1vdW50OiB0aXRpayBtb3VudCAlcyBidWthbiBiZXJ1cGEgc2VidWFoIGRpcmVrdG9yaSIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJtb3VudDogaWppbiBkaXRvbGFrIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjkKK21zZ2lkICJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IgorbXNnc3RyICJtb3VudDogaGFydXMgbWVuamFkaSBzdXBlcnVzZXIgdW50dWsgbWVuZ2d1bmFrYW4gbW91bnQiCisKKyM6IG1vdW50L21vdW50LmM6MTQzMyBtb3VudC9tb3VudC5jOjE0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIGJ1c3kiCittc2dzdHIgIm1vdW50OiAlcyBzZWRhbmcgc2lidWsiCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IHByb2MgdGVsYWggZGltb3VudCIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIHRlbGFoIGRpbW91bnQgYXRhdSAlcyBzZWRhbmcgc2lidWsiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiB0aXRpayBtb3VudCAlcyB0aWRhayBhZGEiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgYSBzeW1ib2xpYyBsaW5rIHRvIG5vd2hlcmUiCittc2dzdHIgIm1vdW50OiB0aXRpayBtb3VudCAlcyBiZXJ1cGEgc3ltYm9saWMgbGluayBrZSBzdWF0dSB0ZW1wYXQiCisKKyM6IG1vdW50L21vdW50LmM6MTQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBwZXJhbmdrYXQgc3Blc2lhbCAlcyB0aWRhayBhZGEiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorIm1vdW50OiBwZXJhbmdrYXQgc3Blc2lhbCAlcyB0aWRhayBhZGFcbiIKKyIgICAgICAgKHNlYnVhaCBwYXRoIHByZWZpeCBidWthbiBiZXJ1cGEgc2VidWFoIGRpcmVrdG9yaSlcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICJtb3VudDogJXMgc3VkYWggdGlkYWsgZGltb3VudCwgYXRhdSBwaWxpaGFuIGJ1cnVrIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB3cm9uZyBmcyB0eXBlLCBiYWQgb3B0aW9uLCBiYWQgc3VwZXJibG9jayBvbiAlcyxcbiIKKyIgICAgICAgbWlzc2luZyBjb2RlcGFnZSBvciBoZWxwZXIgcHJvZ3JhbSwgb3Igb3RoZXIgZXJyb3IiCittc2dzdHIgIiIKKyJtb3VudDogdGlwZSBmcyBzYWxhaCwgcGlsaWhhbiBidXJ1aywgc3VwZXJibG9jayBidXJ1ayBkaSAlcyxcbiIKKyIgICAgICAgaGlsYW5nIGNvZGVwYWdlIGF0YXUgYXBsaWthc2kgcGVtYmFudHUsIGF0YXUgZXJyb3IgbGFpbiIKKworIzogbW91bnQvbW91bnQuYzoxNDg3Cittc2dpZCAiIgorIiAgICAgICAoZm9yIHNldmVyYWwgZmlsZXN5c3RlbXMgKGUuZy4gbmZzLCBjaWZzKSB5b3UgbWlnaHRcbiIKKyIgICAgICAgbmVlZCBhIC9zYmluL21vdW50Ljx0eXBlPiBoZWxwZXIgcHJvZ3JhbSkiCittc2dzdHIgIiIKKyIgICAgICAgKHVudHVrIGJlYmVyYXBhIGZpbGVzeXN0ZW0gKGUuZy4gbmZzLCBjaWZzKSBhbmRhIG11bmdraW5cbiIKKyIgICAgICAgbWVtYnV0dWhrYW4gYXBsaWthc2kgcGVtYmFudHUgL3NiaW4vbW91bnQuPHRpcGU+KSIKKworIzogbW91bnQvbW91bnQuYzoxNDk2Cittc2dpZCAiIgorIiAgICAgICAoY291bGQgdGhpcyBiZSB0aGUgSURFIGRldmljZSB3aGVyZSB5b3UgaW4gZmFjdCB1c2VcbiIKKyIgICAgICAgaWRlLXNjc2kgc28gdGhhdCBzcjAgb3Igc2RhIG9yIHNvIGlzIG5lZWRlZD8pIgorbXNnc3RyICIiCisiICAgICAgIChhcGFrYWggaW5pIG11bmdraW4gc2VidWFoIHBlcmFuZ2thdCBJREUgZGltYW5hIGFuZGEgbWVuZ2d1bmFrYW5cbiIKKyIgICAgICAgaWRlLXNjc2kgc2VoaW5nZ2Egc3IwIGF0YXUgc2RhIGF0YXUgcGVyYW5na2F0IHNlcGVydGlueWEgeWFuZyAiCisiZGlwZXJsdWthbj8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDEKK21zZ2lkICIiCisiICAgICAgIChhcmVuJ3QgeW91IHRyeWluZyB0byBtb3VudCBhbiBleHRlbmRlZCBwYXJ0aXRpb24sXG4iCisiICAgICAgIGluc3RlYWQgb2Ygc29tZSBsb2dpY2FsIHBhcnRpdGlvbiBpbnNpZGU/KSIKK21zZ3N0ciAiIgorIiAgICAgICAoYXBha2FoIGFuZGEgbWVuY29iYSBtZW1vdW50IHNlYnVhaCBwYXJ0aXNpIGV4dGVuZGVkLFxuIgorIiAgICAgICBkYXJpcGFkYSBzZWJ1YWggcGFydGlzaSBsb2dpY2FsIGRpZGFsYW1ueWE/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKyIgICAgICAgRGFsYW0gYmViZXJhcGEga2FzdXMgaW5mb3JtYXNpIGJlcmd1bmEgZGFwYXQgZGl0ZW11a2FuIGRpIHN5c2xvZyAtICIKKyJjb2JhXG4iCisiICAgICAgIGRtZXNnIHwgdGFpbCBhdGF1IHlhbmcgc2VydXBhXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTUxNAorbXNnaWQgIm1vdW50IHRhYmxlIGZ1bGwiCittc2dzdHIgInRhYmVsIG1vdW50IHBlbnVoIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiBjYW4ndCByZWFkIHN1cGVyYmxvY2siCittc2dzdHIgIm1vdW50OiAlczogdGlkYWsgZGFwYXQgbWVtYmFjYSBzdXBlcmJsb2NrIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzOiBwZXJhbmdrYXQgdGlkYWsgZGlrZXRhaHVpIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHVua25vd24gZmlsZXN5c3RlbSB0eXBlICclcyciCittc2dzdHIgIm1vdW50OiB0aXBlIGZpbGVzeXN0ZW0gdGlkYWsgZGlrZXRhaHVpICclcyciCisKKyM6IG1vdW50L21vdW50LmM6MTUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogcHJvYmFibHkgeW91IG1lYW50ICVzIgorbXNnc3RyICJtb3VudDogbXVuZ2tpbiB5YW5nIGFuZGEgbWFrc3Vka2FuICVzIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDIKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICdpc285NjYwJz8iCittc2dzdHIgIm1vdW50OiBtdW5na2luIHlhbmcgYW5kYSBtYWtzdWQgJ2lzbzk2NjAnPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDogbXVuZ2tpbiB5YW5nIGFuZGEgbWFrc3VkICd2ZmF0Jz8iCisKKyM6IG1vdW50L21vdW50LmM6MTU0OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaGFzIHdyb25nIGRldmljZSBudW1iZXIgb3IgZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIgorbXNnc3RyICIiCisibW91bnQ6ICVzIG1lbWlsaWtpIG5vbW9yIHBlcmFuZ2thdCB5YW5nIHNhbGFoIGF0YXUgdGlwZSBmcyAlcyB0aWRhayBkaXN1cHBvcnQiCisKKyM6IG1vdW50L21vdW50LmM6MTU1NgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlLCBhbmQgc3RhdCBmYWlscz8iCittc2dzdHIgIiIKKyJtb3VudDogJXMgYnVrYW4gc2VidWFrIHBlcmFuZ2thdCBibG9jaywgZGFuIGdhZ2FsIG1lbXBlcm9sZWggc3RhdGlzdGlrPyIKKworIzogbW91bnQvbW91bnQuYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogdGhlIGtlcm5lbCBkb2VzIG5vdCByZWNvZ25pemUgJXMgYXMgYSBibG9jayBkZXZpY2VcbiIKKyIgICAgICAgKG1heWJlIGBtb2Rwcm9iZSBkcml2ZXInPykiCittc2dzdHIgIiIKKyJtb3VudDoga2VybmVsIHRpZGFrIG1lbmdlbmFsICVzIHNlYmFnYWkgc2VidWFoIHBlcmFuZ2thdCBibG9ja1xuIgorIiAgICAgICAobXVuZ2tpbiBgbW9kcHJvYmUgZHJpdmVyJz8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSAobWF5YmUgdHJ5IGAtbyBsb29wJz8pIgorbXNnc3RyICIiCisibW91bnQ6ICVzIGJ1a2FuIHNlYnVhaCBwZXJhbmdrYXQgYmxvY2sgKG11bmdraW4gZGljb2JhIGRlbmdhbiBtZW5nZ3VuYWthbiAiCisicGlsaWhhbiBgLW8gbG9vcCc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIGJ1a2FuIHNlYnVhaCBwZXJhbmdrYXQgYmxvY2siCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgYnVrYW4gc2VidWFoIHBlcmFuZ2thdCBibG9jayB5YW5nIHZhbGlkIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzIKK21zZ2lkICJibG9jayBkZXZpY2UgIgorbXNnc3RyICJwZXJhbmdrYXQgYmxvY2sgIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIKK21zZ3N0ciAibW91bnQ6IHRpZGFrIGRhcGF0IG1lLW1vdW50ICVzJXMgaGFueWEtYmFjYSIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICIiCisibW91bnQ6ICVzJXMgbWVtaWxpa2kgcHJvdGVrc2kgdW50dWsgZGl0dWxpcyB0ZXRhcGkgc2VjYXJhIGVrc3BsaXNpdCBwaWxpaGFuICIKKyJgLXcnIGRpYmVyaWthbiIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgcmVtb3VudCAlcyVzIHJlYWQtd3JpdGUsIGlzIHdyaXRlLXByb3RlY3RlZCIKK21zZ3N0ciAiIgorIm1vdW50OiB0aWRhayBkYXBhdCBtZW1hc2FuZyBrZW1iYWxpICVzJXMgc2VjYXJhIGJhY2EtdHVsaXMsIHRlcnByb3Rla3NpLXR1bGlzIgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIG1lbWlsaWtpIHByb3Rla3NpIHVudHVrIGRpdHVsaXMsIG1lbW91bnQgc2VjYXJhIGhhbnlhLWJhY2EiCisKKyM6IG1vdW50L21vdW50LmM6MTYwNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogdGlkYWsgYWRhIG1lZGlhIGRpdGVtdWthbiBkaSAlcyAuLi5tZW5jb2JhIGxhZ2lcbiIKKworIzogbW91bnQvbW91bnQuYzoxNjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMiCittc2dzdHIgIm1vdW50OiB0aWRhayBhZGEgbWVkaWEgZGl0ZW11a2FuIGRpICVzIgorCisjOiBtb3VudC9tb3VudC5jOjE2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiAlcyBkb2VzIG5vdCBjb250YWluIFNFTGludXggbGFiZWxzLlxuIgorIiAgICAgICBZb3UganVzdCBtb3VudGVkIGFuIGZpbGUgc3lzdGVtIHRoYXQgc3VwcG9ydHMgbGFiZWxzIHdoaWNoIGRvZXMgbm90XG4iCisiICAgICAgIGNvbnRhaW4gbGFiZWxzLCBvbnRvIGFuIFNFTGludXggYm94LiBJdCBpcyBsaWtlbHkgdGhhdCBjb25maW5lZFxuIgorIiAgICAgICBhcHBsaWNhdGlvbnMgd2lsbCBnZW5lcmF0ZSBBVkMgbWVzc2FnZXMgYW5kIG5vdCBiZSBhbGxvd2VkIGFjY2VzcyB0b1xuIgorIiAgICAgICB0aGlzIGZpbGUgc3lzdGVtLiAgRm9yIG1vcmUgZGV0YWlscyBzZWUgcmVzdG9yZWNvbig4KSBhbmQgbW91bnQoOCkuXG4iCittc2dzdHIgIiIKKyJtb3VudDogJXMgdGlkYWsgYmVyaXNpIGxhYmVsIFNFTGludXguXG4iCisiICAgICAgIEFuZGEgdGVsYWggbWVtYXNhbmcgc2lzdGVtIGJlcmthcyB5YW5nIG1lbmR1a3VuZyBsYWJlbCB5YW5nIHRpZGFrXG4iCisiICAgICAgIGJlcmlzaSBsYWJlbCwga2VkYWxhbSBrb3RhayBTRUxpbnV4LiBJbmkgc2VwZXJ0aW55YSBiZXJpc2kgYXBsaWthc2lcbiIKKyIgICAgICAgeWFuZyBha2FuIG1lbmdoYXNpbGthbiBwZXNhbiBBVkMgZGFuIHRpZGFrIGRpcGVyYm9sZWhrYW4gbWVuZ2Frc2VzICIKKyJrZVxuIgorIiAgICAgICBzaXN0ZW0gYmVya2FzIGluaS4gVW50dWsgbGViaWggbGVuZ2thcG55YSBsaWhhdCByZXN0b3JlY29uKDgpIGRhbiAiCisibW91bnQoOCkuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxMAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiB0aGUgY29sb25cbiIKK21zZ3N0ciAiIgorIm1vdW50OiB0aXBlIHRpZGFrIGRpYmVyaWthbiAtIFNheWEgYWthbiBtZW5nYXN1bXNpa2FuIG5mcyBrYXJlbmEgYWRhbnlhICIKKyJjb2xvblxuIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgY2lmcyBiZWNhdXNlIG9mIHRoZSAvLyBwcmVmaXhcbiIKK21zZ3N0ciAiIgorIm1vdW50OiB0aXBlIHRpZGFrIGRpYmVyaWthbiAtIFNheWEgYWthbiBtZW5nYXN1bXNpa2FuIGNpZnMga2FyZW5hIGFkYW55YSAiCisiYXdhbGFuIC8vXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiAlcyB0ZWxhaCBkaW1vdW50IGRpICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKyJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKyIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKyJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKyJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKyJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKyJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorbXNnc3RyICIiCisiUGVuZ2d1bmFuOiBtb3VudCAtViAgICAgICAgICAgICA6IHRhbXBpbGthbiB2ZXJzaVxuIgorIiAgICAgICAgICAgbW91bnQgLWggICAgICAgICAgICAgOiB0YW1waWxrYW4gYmFudHVhbiBpbmlcbiIKKyIgICAgICAgICAgIG1vdW50ICAgICAgICAgICAgICAgIDogdGFtcGlsa2FuIHNlbHVydWggZmlsZXN5c3RlbSB5YW5nIGRpICIKKyJtb3VudFxuIgorIiAgICAgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgOiBpZGVtLCB0ZXJtYXN1ayB2b2x1bWUgbGFiZWxzXG4iCisiU2ViZWx1bW55YSBhZGFsYWggYmFnaWFuIHVudHVrIGluZm9ybWFzaS4gU2VsYW5qdXRueWEgbWVuZ2VuYWkgbW91bnRpbmcuXG4iCisiUGVyaW50YWggYWRhbGFoIGBtb3VudCBbLXQgZnN0eXBlXSBzZXN1YXR1IHN1YXR1LXRlbXBhdCcuXG4iCisiRGV0YWlsIHlhbmcgZGl0ZW11a2FuIGRhbGFtIC9ldGMvZnN0YWIgbXVuZ2tpbiBkaSBhYmFpa2FuLlxuIgorIiAgICAgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gOiBtb3VudCBzZWx1cnVoIGZpbGVzeXN0ZW0gZGFyaSAvZXRjL2ZzdGFiXG4iCisiICAgICAgICAgICBtb3VudCBwZXJhbmdrYXQgICAgICA6IG1vdW50IHBlcmFuZ2thdCBkaSB0ZW1wYXQgeWFuZyBkaWtldGFodWlcbiIKKyIgICAgICAgICAgIG1vdW50IGRpcmVrdG9yaSAgICAgIDogbW91bnQgcGVyYW5na2F0IHlhbmcgZGlrZXRhaHVpIGRpc2luaVxuIgorIiAgICAgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyOiBwZXJpbnRhaCBtb3VudCBiaWFzYVxuIgorIkNhdGF0YW46IGJlcmlrdXQgYWRhbGFoIHBlcmludGFoIG1vdW50IHlhbmcgdGlkYWsgYmVuYXIgLSBiZW5hciBtZW1vdW50c1xuIgorInNlYnVhaCBmaWxlc3lzdGVtIChkYXJpIHRpcGUgeWFuZyBkaWJlcmlrYW4pIHlhbmcgZGl0ZW11a2FuIGRhcmkgcGVyYW5na2F0LlxuIgorIlNlc2VvcmFuZyBqdWdhIGRhcGF0IG1lIG1vdW50IGRpcmVrdG9yaSB5YW5nIHN1ZGFoIGRpIG1vdW50IGtlIHRlbXBhdCBsYWluOlxuIgorIiAgICAgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJhdGF1IG1lbWluZGFoa2FuIHNlYnVhaCBzdWJ0cmVlOlxuIgorIiAgICAgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJhdGF1IGRhcGF0IG1lbmd1YmFoIHRpcGUgZGFyaSBtb3VudCB5YW5nIGJlcmlzaSBkYXJpIGRpcmVrdG9yaSBkaXI6XG4iCisiICAgICAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIGRpclxuIgorIiAgICAgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJBdGF1IGRhcGF0IG1lbmd1YmFoIHRpcGUgZGFyaSBzZWx1cnVoIG1vdW50IGRhbGFtIHNlYnVhaCBtb3VudCBzdWJ0cmVlXG4iCisieWFuZyBiZXJpc2kgZGlyZWt0b3JpIGRpcjpcbiIKKyIgICAgICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgICAgIG1vdW50IC0tbWFrZS1ycGl2YXRlIGRpclxuIgorIiAgICAgICAgICAgbW91bnQgLS1tYWtlLXJ1bmJpbmRhYmxlIGRpclxuIgorIlNlYnVhaCBwZXJhbmdrYXQgZGFwYXQgZGliZXJpa2FuIGJlcmRhc2Fya2FuIG5hbWEsIGthdGFrYW5sYWggL2Rldi9oZGExICIKKyJhdGF1XG4iCisiL2Rldi9jZHJvbSwgYXRhdSBtZWxhbHVpIGxhYmVsLCBkZW5nYW4gbWVuZ2d1bmFrYW4gcGlsaWhhbiAtTCBsYWJlbCBhdGF1ICIKKyJtZWxhbHVpXG4iCisidXVpZC4gUGlsaWhhbiBsYWluOiBbLW5mRnJzdnddIFstbyBwaWxpaGFuXSBbLXAgcGFzc3dkZmRdLlxuIgorIlVudHVrIGluZm9ybWFzaSBsZWJpaCBkZXRhaWwsIGxpaGF0IG1hbiA4IG1vdW50LlxuIgorCisjOiBtb3VudC9tb3VudC5jOjIyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiBoYW55YSByb290IHlhbmcgZGFwYXQgbWVsYWt1a2FuIGl0dSAoVUlEIGVmZWt0aWYgYWRhbGFoICVkKSIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6IGhhbnlhIHJvb3QgeWFuZyBkYXBhdCBtZWxha3VrYW4gaXR1IgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJ0aWRhayBhZGEgeWFuZyB0ZWxhaCBkaW1vdW50IgorCisjOiBtb3VudC9tb3VudC5jOjIzMDYgbW91bnQvbW91bnQuYzoyMzMyCittc2dpZCAibW91bnQ6IG5vIHN1Y2ggcGFydGl0aW9uIGZvdW5kIgorbXNnc3RyICJtb3VudDogcGFydGlzaSBzZXBlcnRpIGl0dSB0aWRhayBkaXRlbXVrYW4iCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6IHRpZGFrIGRhcGF0IG1lbmVtdWthbiAlcyBkYWxhbSAlcyBhdGF1ICVzIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IHdhcm5pbmc6IG5vIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiAlc1xuIgorbXNnc3RyICJbbW50ZW50XTogcGVyaW5nYXRhbjogdGlkYWsgYWRhIGJhcmlzIGJhcnUgZmluYWwgcGFkYSBha2hpciBkYXJpICVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogbGluZSAlZCBpbiAlcyBpcyBiYWQlc1xuIgorbXNnc3RyICJbbW50ZW50XTogYmFyaXMgJWQgZGFsYW0gJXMgYnVydWslc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTkKK21zZ2lkICI7IHJlc3Qgb2YgZmlsZSBpZ25vcmVkIgorbXNnc3RyICI7IHNldGVydXNueWEgZGFyaSBmaWxlIGRpYWJhaWthbiIKKworIzogbW91bnQvc3VuZHJpZXMuYzozMgorbXNnaWQgImJ1ZyBpbiB4c3RybmR1cCBjYWxsIgorbXNnc3RyICJrdXR1L2J1ZyBkYWxhbSBwZW1hbmdnaWxhbiB4c3RybmR1cCIKKworIzogbW91bnQvc3VuZHJpZXMuYzoyMjUgbW91bnQvc3VuZHJpZXMuYzoyODEgbW91bnQvc3VuZHJpZXMuYzoyOTYKKyM6IG1vdW50L3htYWxsb2MuYzoxMQorbXNnaWQgIm5vdCBlbm91Z2ggbWVtb3J5IgorbXNnc3RyICJtZW1vcnkgdGlkYWsgY3VrdXAiCisKKyM6IG1vdW50L3N3YXBvbi5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgPHNwZWNpYWw+IHBhcmFtZXRlcjpcbiIKKyIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxmaWxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGZpbGUgdG8gYmUgdXNlZFxuIgorIlxuIgorbXNnc3RyICIiCisiUGFyYW1ldGVyIDxzcGVzaWFsPjpcbiIKKyIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIGRhcmkgcGVyYW5na2F0IHlhbmcgZGlndW5ha2FuXG4iCisiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIGRhcmkgcGVyYW5na2F0IHlhbmcgZGlndW5ha2FuXG4iCisiIDxwZXJhbmdrYXQ+ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1hIGRhcmkgcGVyYW5na2F0IHlhbmcgZGlndW5ha2FuXG4iCisiIDxiZXJrYXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1hIGRhcmkgYmVya2FzIHlhbmcgZGlndW5ha2FuXG4iCisiXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCBwcmlvcml0eV0gWy12XSBbLWZdIDxzcGVjaWFsPiAgZW5hYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiUGVuZ2d1bmFhbjpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBtZW5nYWt0aWZrYW4gc2VsdXJ1aCBzd2FwIGRhcmkgL2V0Yy8iCisiZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdGFzXSBbLXZdIFstZl0gPHNwZXNpYWw+IG1lbmdha3RpZmthbiBzd2FwIHlhbmcgZGliZXJpa2FuXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVuYW1waWxrYW4gcmluZ2thc2FuIHBlbmd1bmFhbiBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVuYW1waWxrYW4gYmFudHVhblxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbmFtcGlsa2FuIHZlcnNpXG4iCisiXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjEwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBzd2Fwc1xuIgorIiAlMSRzIFstdl0gPHNwZWNpYWw+ICAgICAgICAgICAgICAgZGlzYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiUGVuZ2d1bmFhbjpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIG1lbm9uYWt0aWZrYW4gc2VsdXJ1aCBzd2Fwc1xuIgorIiAlMSRzIFstdl0gPHNwZXNpYWw+ICAgICAgICAgICAgICAgbWVub25ha3RpZmthbiBzd2FwIHlhbmcgZGliZXJpa2FuXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBtZW5hbXBpbGthbiBiYW50dWFuXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW5hbXBpbGthbiB2ZXJzaVxuIgorIlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiVzOiBmb3JtYXQgYmVya2FzIHRpZGFrIHRlcmR1Z2EiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIlczogTWVuZ2luaXNpYWxpc2FzaSB1bGFuZyBzd2FwLiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCittc2dpZCAiZm9yayBmYWlsZWQiCittc2dzdHIgImdhZ2FsIGZvcmsiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIzOQorbXNnaWQgImV4ZWN2IGZhaWxlZCIKK21zZ3N0ciAiZ2FnYWwgZWtzZWt1c2kiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI0NworbXNnaWQgIndhaXRwaWQgZmFpbGVkIgorbXNnc3RyICJ3YWl0cGlkIGdhZ2FsIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAiJXM6IGxzZWVrIGdhZ2FsIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgIiVzOiBnYWdhbCBtZW51bGlzIHRhbmRhIHRhbmdhbiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisiJXM6IGRpdGVtdWthbiB0YW5kYSBwYXJ0aXNpIHN3YXA6IHZlcnNpICVkLCB1a3VyYW4taGFsYW1hbiAlZCwgc3VzdW5hbiBieXRlICUiCisicyIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5Cittc2dpZCAiZGlmZmVyZW50IgorbXNnc3RyICJiZXJiZWRhIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJzYW1lIgorbXNnc3RyICJzYW1hIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN0YXQgZmFpbGVkIgorbXNnc3RyICIlczogc3RhdCBnYWdhbCIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgIiVzOiBtb2RlIHRpZGFrIGFtYW4gJTA0bywgZGlzYXJhbmthbiBtZW5nZ3VuYWthbiBtb2RlICUwNG8uIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIC0gaXQgYXBwZWFycyB0byBoYXZlIGhvbGVzLiIKK21zZ3N0ciAiJXM6IGRpbGV3YXRrYW4gIC0ga2VsaWhhdGFubnlhIG1lbWlsaWtpIGx1YmFuZy4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZ2V0IHNpemUgZmFpbGVkIgorbXNnc3RyICIlczogZ2FnYWwgbWVuZGFwYXRrYW4gdWt1cmFuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgc3dhcCBoZWFkZXIgZmFpbGVkIgorbXNnc3RyICIlczogcGVtYmFjYWFuIGhlYWRlciBzd2FwIGdhZ2FsIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxhc3RfcGFnZSAweCUwOGxseCBpcyBsYXJnZXIgdGhhbiBhY3R1YWwgc2l6ZSBvZiBzd2Fwc3BhY2UiCittc2dzdHIgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggYmVydWt1cmFuIGxlYmloIGJlc2FyIGRhcmkgc3dhcHNwYWNlIHNlYmVuYXJueWEiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIlczogZm9ybWF0IHN3YXAgcGFnZXNpemUgdGlkYWsgY29jb2suIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4gKFVzZSAtLWZpeHBnc3ogdG8gcmVpbml0aWFsaXplIGl0LikiCittc2dzdHIgIiIKKyIlczogZm9ybWF0IHN3YXAgcGFnZXNpemUgdGlkYWsgY29jb2suIChHdW5ha2FuIC0tZml4cGdzeiB1bnR1ayAiCisibWVuZ2luaXNpYWxpc2FzaSB1bGFuZy4pIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiVzOiBhcGxpa2FzaSBzdXNwZW5kIGRhdGEgdGVyZGV0ZWtzaS4gTWVudWxpcyB1bGFuZyB0YW5kYSBzd2FwLiIKKworIzogbW91bnQvc3dhcG9uLmM6NDc4IG1vdW50L3N3YXBvbi5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBvbiAlc1xuIgorbXNnc3RyICIlcyBkaSAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvbiBmYWlsZWQiCittc2dzdHIgIiVzOiBzd2Fwb24gZ2FnYWwiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZmluZCB0aGUgZGV2aWNlIGZvciAlcyIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVuZW11a2FuIHBlcmFuZ2thdCAlcyIKKworIzogbW91bnQvc3dhcG9uLmM6NTQwCittc2dpZCAiTm90IHN1cGVydXNlci4iCittc2dzdHIgIkJ1a2FuIHN1cGVydXNlci4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgIiVzOiBnYWdhbCBzd2Fwb2ZmIgorCisjOiBtb3VudC9zd2Fwb24uYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyB1bnN1cHBvcnRlZCBwcm9ncmFtIG5hbWUgKG11c3QgYmUgJ3N3YXBvbicgb3IgJ3N3YXBvZmYnKS4iCittc2dzdHIgIiIKKyInJXMnIGFkYWxhaCBuYW1hIGFwbGlrYXNpIHlhbmcgdGlkYWsgZGlkdWt1bmcgKGhhcnVzIGJlcnVwYSAnc3dhcG9uJyBhdGF1ICIKKyInc3dhcG9mZicpLiIKKworIzogbW91bnQvdW1vdW50LmM6NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIC1mXG4iCittc2dzdHIgInVtb3VudDogZGlrb21waWxhc2kgdGFucGEgZGlzdXBwb3J0IHVudHVrIC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJ1bW91bnQ6IHRpZGFrIGRhcGF0IG1lbnNldCBpZCBncnVwOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAidW1vdW50OiB0aWRhayBkYXBhdCBtZW5zZXQgaWQgcGVuZ2d1bmE6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgInVtb3VudDogdGlkYWsgZGFwYXQgbWVsYWt1a2FuIGZvcms6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogaW52YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgInVtb3VudDogJXM6IHBlcmFuZ2thdCBibG9jayB0aWRhayB2YWxpZCIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICJ1bW91bnQ6ICVzOiB0aWRhayBkaW1vdW50IgorCisjOiBtb3VudC91bW91bnQuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogY2FuJ3Qgd3JpdGUgc3VwZXJibG9jayIKK21zZ3N0ciAidW1vdW50OiAlczogdGlkYWsgZGFwYXQgbWVudWxpcyBzdXBlcmJsb2NrIgorCisjOiBtb3VudC91bW91bnQuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVtb3VudDogJXM6IGRldmljZSBpcyBidXN5LlxuIgorIiAgICAgICAgKEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gYWJvdXQgcHJvY2Vzc2VzIHRoYXQgdXNlXG4iCisiICAgICAgICAgdGhlIGRldmljZSBpcyBmb3VuZCBieSBsc29mKDgpIG9yIGZ1c2VyKDEpKSIKK21zZ3N0ciAiIgorInVtb3VudDogJXM6IHBlcmFuZ2thdCBzaWJ1ay5cbiIKKyIgICAgICAgIChEYWxhbSBiZWJlcmFwYSBrYXN1cyBpbmZvcm1hc2kgYmVyaGFyZ2EgdGVudGFuZyBwcm9zZXMgeWFuZyAiCisiZGlndW5ha2FuXG4iCisiICAgICAgICAgb2xlaCBwZXJhbmdrYXQgZGFwYXQgZGl0ZW11a2FuIG9sZWggbHNvZig4KSBhdGF1IGZ1c2VyKDEpKSIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAidW1vdW50OiAlczogdGlkYWsgZGl0ZW11a2FuIgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBoYXJ1cyBzdXBlcnVzZXIgdW50dWsgbWVsYWt1a2FuIHVtb3VudCIKKworIzogbW91bnQvdW1vdW50LmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGJsb2NrIGRldmljZXMgbm90IHBlcm1pdHRlZCBvbiBmcyIKK21zZ3N0ciAidW1vdW50OiAlczogcGVyYW5na2F0IGJsb2NrIHRpZGFrIGRpaWppbmthbiBkaSBmcyIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHVtb3VudDIsIHRyeWluZyB1bW91bnQuLi5cbiIKK21zZ3N0ciAidGlkYWsgYWRhIHVtb3VudDIsIG1lbmNvYmEgdW1vdW50Li4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogJXMgc2lidWsgLSBkaSBtb3VudCBsYWdpIHNlY2FyYSBoYW55YS1iYWNhXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvdWxkIG5vdCByZW1vdW50ICVzIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6IHRpZGFrIGRhcGF0IG1lbGFrdWthbiBtb3VudCAlcyBzZWNhcmEgaGFueWEtYmFjYVxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdW1vdW50ZWRcbiIKK21zZ3N0ciAiJXMgc3VkYWggdGlkYWsgZGltb3VudFxuIgorCisjOiBtb3VudC91bW91bnQuYzozNjcKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBmaW5kIGxpc3Qgb2YgZmlsZXN5c3RlbXMgdG8gdW5tb3VudCIKK21zZ3N0ciAidW1vdW50OiB0aWRhayBkYXBhdCBtZW5jYXJpIGRhZnRhciBkYXJpIGZpbGVzeXN0ZW1zIHVudHVrIGRpIHVubW91bnQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisiUGVuZ2d1bmFhbjogdW1vdW50IC1oIHwgLVZcbiIKKyIgICAgICAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgdGl0aWsuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAicGVyYW5na2F0ICVzIHN1ZGFoIGRpYXNvc2lhc2lrYW4gZGVuZ2FuICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJwZXJhbmdrYXQgJXMgc3VkYWggZGlhc29zaWFzaWthbiBkZW5nYW4gJXNcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDg3Cittc2dpZCAiQ2Fubm90IHVtb3VudCBcIlwiXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IHVtb3VudCBcIlwiXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIk1lbmNvYmEgdW50dWsgdW1vdW50ICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAidW1vdW50OiBiaW5ndW5nIGtldGlrYSBtZW5nYW5hbGlzYSBtdGFiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgInVtb3VudDogdGlkYWsgZGFwYXQgdW1vdW50ICVzIC0tICVzIHRlbGFoIGRpcGFzYW5nIGRpIHRpdGlrIHlhbmcgc2FtYS4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxOAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCAlcyBpbiBtdGFiXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmNhcmkgJXMgZGFsYW0gbXRhYlxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6ICVzIHRpZGFrIGRpIG1vdW50IChtZW51cnV0IGNhdGF0YW4gZGkgbXRhYikiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGl0IHNlZW1zICVzIGlzIG1vdW50ZWQgbXVsdGlwbGUgdGltZXMiCittc2dzdHIgInVtb3VudDoga2VsaWhhdGFubnlhICVzIHRlbGFoIGRpIG1vdW50IGJlYmVyYXBhIGthbGkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBpbiB0aGUgZnN0YWIgKGFuZCB5b3UgYXJlIG5vdCByb290KSIKK21zZ3N0ciAidW1vdW50OiAlcyB0aWRhayBhZGEgZGFsYW0gZnN0YWIgKGRhbiBhbmRhIGJ1a2FuIHJvb3QpIgorCisjOiBtb3VudC91bW91bnQuYzo1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBtb3VudCBkaXNhZ3JlZXMgd2l0aCB0aGUgZnN0YWIiCittc2dzdHIgInVtb3VudDogJXMgbW91bnQgdGlkYWsgY29jb2sgZGVuZ2FuIGNhdGF0YW4gZGkgZnN0YWIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAidW1vdW50OiBoYW55YSAlcyB5YW5nIGRhcGF0IHVubW91bnQgJXMgZGFyaSAlcyIKKworIzogbW91bnQvdW1vdW50LmM6NzAxCittc2dpZCAidW1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgInVtb3VudDogaGFueWEgcm9vdCB5YW5nIGRhcGF0IG1lbGFrdWthbiBpdHUiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MuXG4iCisiXG4iCisiU2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIkdldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiXG4iCisiU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX1JSIChkZWZhdWx0KVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgb3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHNob3cgbWluIGFuZCBtYXggdmFsaWQgcHJpb3JpdGllc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKyIgIC1WIHwgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGFzaSBhdHJpYnV0IHdha3R1LW55YXRhIGRhcmkgc2VidWFoIHByb3Nlcy5cbiIKKyJcbiIKKyJTZXQga2ViaWpha2FuOlxuIgorIiAgY2hydCBbcGlsaWhhbl0gPGtlYmlqYWthbj4gPHByaW9yaXRhcz4gezxwaWQ+IHwgPHBlcmludGFoPiAiCisiWzxhcmd1bWVuIC4uLl19XG4iCisiXG4iCisiRGFwYXRrYW4ga2ViaWpha2FuOlxuIgorIiAgY2hydCBbcGlsaWhhbl0gezxwaWQ+IHwgPHBlcmludGFoPiBbPGFyZ3VtZW4+IC4uLl19XG4iCisiXG4iCisiXG4iCisiS2ViaWpha2FuIGFudHJpYW46XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgIHNldCBrZWJpamFrYW4ga2UgU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgc2V0IGtlYmlqYWthbiBrZSBTQ0hFRF9GSUZPXG4iCisiICAtaSB8IC0taWRsZSAgICAgICAgIHNldCBrZWJpamFrYW4ga2UgU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICBzZXQga2ViaWpha2FuIGtlIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgIHNldCBrZWJpamFrYW4ga2UgU0NIRURfUlIgKGJha3UpXG4iCisiXG4iCisiUGlsaWhhbjpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgdGFtcGlsa2FuIGJhbnR1YW4gaW5pXG4iCisiICAtcCB8IC0tcGlkICAgICAgICAgIGJlcm9wZXJhc2kgZGkgcGlkIGRpYmVyaWthbiB5YW5nIHRlbGFoIGFkYVxuIgorIiAgLW0gfCAtLW1heCAgICAgICAgICB0YW1waWxrYW4gbWluIGRhbiBtYXggcHJpb3JpdGFzIHlhbmcgc2FoXG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgIHRhbXBpbGthbiBpbmZvcm1hc2kga2VhZGFhblxuIgorIiAgLVYgfCAtLXZlcnNpb24gICAgICBrZWx1YXJrYW4gaW5mb3JtYXNpIHZlcnNpXG4iCisiXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJnYWdhbCBtZW5kYXBhdGthbiBrZWJpamFrYW4gcGlkICVkIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHBvbGljeTogIgorbXNnc3RyICJwaWQgJWQgJXMga2ViaWpha2FuIGFudHJpYW46ICIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd25cbiIKK21zZ3N0ciAidGlkYWsgZGlrZXRhaHVpXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIGF0dHJpYnV0ZXMiCittc2dzdHIgImdhZ2FsIG1lbmRhcGF0a2FuIGF0cmlidXQgcGlkICVkIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwcmlvcml0eTogJWRcbiIKK21zZ3N0ciAicGlkICVkICVzIHByaW9yaXRhcyBhbnRyaWFuOiAlZFxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICJTQ0hFRF8lcyBtaW4vbWF4IHByaW9yaXRhc1x0OiAlZC8lZFxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbm90IHN1cHBvcnRlZD9cbiIKK21zZ3N0ciAiU0NIRURfJXMgdGlkYWsgZGlkdWt1bmc/XG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwaWQiCittc2dzdHIgImdhZ2FsIG1lbmRhcGF0a2FuIHBpZCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjI1Cittc2dpZCAiY3VycmVudCIKK21zZ3N0ciAic2VrYXJhbmciCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzMworbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAiZ2FnYWwgbWVuZGFwYXRrYW4gcHJpb3JpdGFzIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHNldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgImdhZ2FsIG1lbnNldCBrZWJpamFrYW4gcGlkICVkIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyNDIKK21zZ2lkICJuZXciCittc2dzdHIgImJhcnUiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0OAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiZ2FnYWwgbWVuamFsYW5rYW4gJXMiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NTcKK21zZ2lkICJpb3ByaW9fZ2V0IGZhaWxlZCIKK21zZ3N0ciAiaW9wcmlvX2dldCBnYWdhbCIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICJpb3ByaW9fc2V0IGdhZ2FsIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisiXG4iCisiVXNhZ2U6XG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSA8Y29tbWFuZD4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBzY2hlZHVsaW5nIGNsYXNzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIDA6IG5vbmUsIDE6IHJlYWx0aW1lLCAyOiBiZXN0LWVmZm9ydCwgMzogaWRsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXQgYXRhdSBkYXBhdGthbiBrZWxhcyBkYW4gcHJpb3JpdGFzIGFudHJpYW4gZGFsYW0gcHJvc2VzLlxuIgorIlxuIgorIlBlbmdndW5hYW46XG4iCisiICBpb25pY2UgWyBwaWxpaGFuIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIHBpbGloYW4gXSA8cGVyaW50YWg+IFs8YXJnPiAuLi5dXG4iCisiXG4iCisiUGlsaWhhbjpcbiIKKyIgIC1uIDxkYXRha2VsYXM+ICAgICAgZGF0YSBrZWxhcyAoMC03LCBsZWJpaCByZW5kYWggbWVuamFkaSBwcmlvcml0YXMgbGViaWggIgorInRpbmdnaSlcbiIKKyIgIC1jIDxrZWxhcz4gICAgICAgICAga2VsYXMgYW50cmlhblxuIgorIiAgICAgICAgICAgICAgICAgICAgICAwOiBrb3NvbmcsIDE6IHdha3R1LW55YXRhLCAyOiB1c2FoYS10ZXJiYWlrLCAzOiBkaWFtXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGFiYWlrYW4ga2VnYWdhbGFuXG4iCisiICAtaCAgICAgICAgICAgICAgICAgIGJhbnR1YW4gaW5pXG4iCisiXG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEwIHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBwYXJzZSBudW1iZXIgJyVzJyIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVuZGFwYXRrYW4gYW5na2EgJyVzJyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTEKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBub25lIGNsYXNzIgorbXNnc3RyICJtZW5nYWJhaWthbiBkYXRhIGtlbGFzIHlhbmcgZGliZXJpa2FuIHVudHVrIGtlbGFzIGtvc29uZyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICJtZW5nYWJhaWthbiBkYXRhIGtlbGFzIHlhbmcgZGliZXJpa2FuIHVudHVrIGtlbGFzIGtvc29uZyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHByaW8gY2xhc3MgJWQiCittc2dzdHIgInByaW9yaXRhcyBrZWxhcyAlZCBidXJ1ayIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxODcKK21zZ2lkICJleGVjdnAgZmFpbGVkIgorbXNnc3RyICJnYWdhbCBla3Nla3VzaSIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzoyNworIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBiZSByb290IHRvIHNldCB0aGUgQ3RybC1BbHQtRGVsIGJlaGF2aW91ci5cbiIKK21zZ3N0ciAiQW5kYSBoYXJ1cyBtZW5qYWRpIHJvb3QgdW50dWsgbWVuZ2VzZXQgcmVha3NpIGRhcmkgQ3RybC1BbHQtRGVsLlxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorbXNnc3RyICJQZW5nZ3VuYWFuOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkZpbGUgJXMsIFVudHVrIG5pbGFpIHRocmVzaG9sZCAlbHUsIE1ha3NpbWFsIGNoYXJhY3RlciBkYWxhbSBmaWZvIGFkYWxhaCAlIgorImQsXG4iCisiZGFuIG1ha3NpbXVtIGRhcmkga2VjZXBhdGFuIHRyYW5zZmVyIGRhbGFtIGNoYXJhY3RlcnMvZGV0aWsgYWRhbGFoICVmXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1IGFuZCB0aW1yb3V0IHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzICIKKyJpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKyJGaWxlICVzLCBVbnR1ayBuaWxhaSB0aHJlc2hvbGQgJWx1IGRhbiBuaWxhaSB0aW1yb3V0ICVsdSwgTWFrc2ltYWwgIgorImNoYXJhY3RlcnMgZGFsYW0gZmlmbyBhZGFsYWggJWQsXG4iCisiZGFuIG1ha3NpbXVtIGRhcmkga2VjZXBhdGFuIHRyYW5zZmVyIGRhbGFtIGNoYXJhY3RlcnMvZGV0aWsgYWRhbGFoICVmXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBpbnRlcnZhbCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiTmlsYWkgaW50ZXJ2YWwgdGlkYWsgdmFsaWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdmFsdWU6ICVzXG4iCittc2dzdHIgIk5pbGFpIHNldCB0aWRhayB2YWxpZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdmFsdWU6ICVzXG4iCittc2dzdHIgIk5pbGFpIGRlZmF1bHQgdGlkYWsgdmFsaWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiTmlsYWkgc2V0IHdha3R1IHRpZGFrIHZhbGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJOaWxhaSBkYWZhdWx0IHdha3R1IHRpZGFrIHZhbGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pICIKKyJbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCittc2dzdHIgIiIKKyJQZW5nZ3VuYWFuOiAlcyBbLXEgWy1pIGludGVydmFsXV0gKFstcyBuaWxhaV18Wy1TIG5pbGFpXSkgKFstdCBuaWxhaV18Wy1UICIKKyJuaWxhaV0pIFstZ3wtR10gZmlsZSBbZmlsZS4uLl1cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtYnVrYSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5zZXQgJXMga2UgbmlsYWkgdGhyZXNob2xkICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aW1lIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVuc2V0ICVzIGtlIHdha3R1IHRocmVzaG9sZCAlZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbXBlcm9sZWggbmlsYWkgdGhyZXNob2xkIHVudHVrICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzAwIHN5cy11dGlscy9jeXR1bmUuYzozNTcgc3lzLXV0aWxzL2N5dHVuZS5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGltZW91dCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbXBlcm9sZWggbmlsYWkgdGltZW91dCB1bnR1ayAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN1cnJlbnQgdGhyZXNob2xkIGFuZCAlbGQgY3VycmVudCB0aW1lb3V0XG4iCittc2dzdHIgIiVzOiAlbGQgbmlsYWkgdGhyZXNob2xkIHNhYXQgaW5pIGRhbiAlbGQgbmlsYWkgdGltZW91dCBzYWF0IGluaVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgZGVmYXVsdCB0aHJlc2hvbGQgYW5kICVsZCBkZWZhdWx0IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6ICVsZCBuaWxhaSBkZWZhdWx0IHRocmVzaG9sZCBkYW4gJWxkIG5pbGFpIGRlZmF1bHQgdGltZW91dFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzI3Cittc2dpZCAiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5zZXQgcGVuZ29sYWggc2lueWFsIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzMxIHN5cy11dGlscy9jeXR1bmUuYzozNjYKK21zZ2lkICJnZXR0aW1lb2ZkYXkgZmFpbGVkIgorbXNnc3RyICJnZXR0aW1lb2ZkYXkgZ2FnYWwiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozNDQgc3lzLXV0aWxzL2N5dHVuZS5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBpc3N1ZSBDWUdFVE1PTiBvbiAlczogJXNcbiIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgbWVuZ2lzdWthbiBDWUdFVE1PTiBkaSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjaGFyL3NlYylcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYyAoY2hhci9zZWMpXG4iCittc2dzdHIgIiAgICVmIGludC9zZWM7ICVmIHJlYyAoY2hhci9zZWMpXG4iCisKKyM6IHN5cy11dGlscy9kbWVzZy5jOjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstbiBsZXZlbF0gWy1yXSBbLXMgYnVmc2l6ZV1cbiIKK21zZ3N0ciAiUGVuZ2d1bmFhbjogJXMgWy1jXSBbLW4gbGV2ZWxdIFstcl0gWy1zIGJ1ZnNpemVdXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo0NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZmlsZW5hbWU+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlBlbmdndW5hYW46ICVzIFtwaWxpaGFuXSA8bmFtYSBiZXJrYXM+XG4iCisiXG4iCisiUGlsaWhhbjpcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICBwZXNhbiBiYW50dWFuIGluaVxuIgorIiAtbiwgLS1rZWVwLXNpemUgICAgIGphbmdhbiBtb2RpZmlrYXNpIHBhbmphbmcgZGFyaSBiZXJrYXNcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZnNldCBkYXJpIGFsb2thc2ksIGRhbGFtIGJ5dGVzXG4iCisiIC1sLCAtLWxlbmd0aCA8bnVtPiAgcGFuamFuZyBkYXJpIGFsb2thc2ksIGRhbGFtIGJ5dGVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlVudHVrIGluZm9ybWFzaSBsZWJpaCBsYW5qdXQgbGloYXQgZmFsbG9jYXRlKDEpLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3Cittc2dpZCAibm8gbGVuZ3RoIGFyZ3VtZW50IHNwZWNpZmllZCIKK21zZ3N0ciAicGFuamFuZyBhcmd1bWVuIHRpZGFrIGRpc3Blc2lmaWthc2lrYW4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDkKK21zZ2lkICJpbnZhbGlkIGxlbmd0aCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIm5pbGFpIHBhbmphbmcgeWFuZyBkaXNwZXNpZmlrYXNpa2FuIHRpZGFrIHZhbGlkIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJuaWxhaSBvZnNldCB5YW5nIGRpc3Blc2lmaWthc2lrYW4gdGlkYWsgdmFsaWQiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICJuYW1hIGJlcmthcyB0aWRhayBkaXNwZXNpZmlrYXNpa2FuLiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3MworbXNnaWQgImtlZXAgc2l6ZSBtb2RlICgtbiBvcHRpb24pIHVuc3VwcG9ydGVkIgorbXNnc3RyICJtb2RlIGphZ2EgdWt1cmFuICgtbiBwaWxpaGFuKSB0aWRhayBkaWR1a3VuZyIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAiJXM6IGZhbGxvY2F0ZSBnYWdhbCIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlMSRzIFstc3h1bl1bLXcgI10gZmQjXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBmaWxlIFstY10gY29tbWFuZC4uLlxuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZGlyZWN0b3J5IFstY10gY29tbWFuZC4uLlxuIgorIiAgLXMgIC0tc2hhcmVkICAgICBHZXQgYSBzaGFyZWQgbG9ja1xuIgorIiAgLXggIC0tZXhjbHVzaXZlICBHZXQgYW4gZXhjbHVzaXZlIGxvY2tcbiIKKyIgIC11ICAtLXVubG9jayAgICAgUmVtb3ZlIGEgbG9ja1xuIgorIiAgLW4gIC0tbm9uYmxvY2sgICBGYWlsIHJhdGhlciB0aGFuIHdhaXRcbiIKKyIgIC13ICAtLXRpbWVvdXQgICAgV2FpdCBmb3IgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lXG4iCisiICAtbyAgLS1jbG9zZSAgICAgIENsb3NlIGZpbGUgZGVzY3JpcHRvciBiZWZvcmUgcnVubmluZyBjb21tYW5kXG4iCisiICAtYyAgLS1jb21tYW5kICAgIFJ1biBhIHNpbmdsZSBjb21tYW5kIHN0cmluZyB0aHJvdWdoIHRoZSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBEaXNwbGF5IHRoaXMgdGV4dFxuIgorIiAgLVYgIC0tdmVyc2lvbiAgICBEaXNwbGF5IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorIlBlbmdndW5hYW46ICUxJHMgWy1zeHVuXVstdyAjXSBmZCNcbiIKKyIgICAgICAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gYmVya2FzIFstY10gcGVyaW50YWguLi5cbiIKKyIgICAgICAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZGlyZWt0b3JpIFstY10gcGVyaW50YWguLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgRGFwYXRrYW4gc2VidWFoIGt1bmNpIHRlcmJhZ2lcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgRGFwYXRrYW4gc2VidWFoIGt1bmNpIGVrc2x1c2l2ZVxuIgorIiAgLXUgIC0tdW5sb2NrICAgICBIYXB1cyBzZWJ1YWgga3VuY2lcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgR2FnYWxrYW4gZGFyaXBhZGEgbWVudW5nZ3VcbiIKKyIgIC13ICAtLXRpbWVvdXQgICAgVHVuZ2d1IGJlYmVyYXBhIHNhYXQgZGVuZ2FuIGxhbWEgdGVyYmF0YXNcbiIKKyIgIC1vICAtLWNsb3NlICAgICAgVHV0dXAgYmVya2FzIGRlc2tyaXBzaSBzZWJlbHVtIG1lbmphbGFua2FuIHBlcmludGFoXG4iCisiICAtYyAgLS1jb21tYW5kICAgIEphbGFua2FuIHNlYnVhaCBrYXRhIHBlcmludGFoIHR1bmdnYWwgbWVsYWx1aSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBUYW1waWxrYW4gdGVrcyBpbmlcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgVGFtcGlsa2FuIHZlcnNpXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjE5MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgcmVxdWlyZXMgZXhhY3RseSBvbmUgY29tbWFuZCBhcmd1bWVudFxuIgorbXNnc3RyICIlczogJXMgbWVtYnV0dWhrYW4gdGVwYXQgc2VidWFoIGFyZ3VtZW50IHBlcmludGFoXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICIlczogdGlkYWsgZGFwYXQgbWVtYnVrYSBiZXJrYXMga3VuY2klczogJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogYW5na2EgYnVydWs6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorbXNnc3RyICIlczogbWVtYnV0dWhrYW4gYmVya2FzIGRlc2tyaXBzaSwgYmVya2FzIGF0YXUgZGlyZWt0b3JpXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjI5NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZm9yayBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiVzOiBnYWdhbCBmb3JrOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiUGVuZ2d1bmFhbjogJXMgW3BpbGloYW5dXG4iCisiXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1NIDxzaXplPiAgICAgY3JlYXRlIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBvZiBzaXplIDxzaXplPlxuIgorIiAgLVMgPG5zZW1zPiAgICBjcmVhdGUgc2VtYXBob3JlIGFycmF5IHdpdGggPG5zZW1zPiBlbGVtZW50c1xuIgorIiAgLVEgICAgICAgICAgICBjcmVhdGUgbWVzc2FnZSBxdWV1ZVxuIgorIiAgLXAgPG1vZGU+ICAgICBwZXJtaXNzaW9uIGZvciB0aGUgcmVzb3VyY2UgKGRlZmF1bHQgaXMgMDY0NClcbiIKK21zZ3N0ciAiIgorIiAgLU0gPGJlc2FyPiAgICBidWF0IGJhZ2lhbiBtZW1vcmkgdGVyYmFnaSBkYWxhbSB1a3VyYW4gPGJlc2FyPlxuIgorIiAgLVMgPG5zZW1zPiAgICBidWF0IHJhbmdrYWlhbiBzZW1hcGhvciBkZW5nYW4gPG5zZW1zPiBlbGVtZW5cbiIKKyIgIC1RICAgICAgICAgICAgYnVhdCBhbnRyaWFuIHBlc2FuXG4iCisiICAtcCA8bW9kZT4gICAgIGlqaW4gdW50dWsgc3VtYmVyIGRheWEgKGJha3UgYWRhbGFoIDA2NDQpXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaXBjbWsoMSkuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVbnR1ayBpbmZvcm1hc2kgbGViaWggbGFuanV0IGxpaGF0IGlwY21rKDEpLlxuIgorIlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDIKK21zZ2lkICJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIKK21zZ3N0ciAicGVtYnVhdGFuIG1lbW9yaSB0ZXJiYWdpIGdhZ2FsIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hhcmVkIG1lbW9yeSBpZDogJWRcbiIKK21zZ3N0ciAiSWRlbnRpdGFzIG1lbW9yaSB0ZXJiYWdpOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgInBlbWJ1YXRhbiBhdHJpYW4gcGVzYW4gZ2FnYWwiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIHF1ZXVlIGlkOiAlZFxuIgorbXNnc3RyICJJZGVudGl0YXMgYW50cmlhbiBwZXNhbjogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgInBlbWJ1YXRhbiBzZW1hcGhvciBnYWdhbCIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiSWRlbnRpdGFzIHNlbWFwaG9yOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo2NAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkOiAlc1xuIgorbXNnc3RyICJpZCB0aWRhayB2YWxpZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlbW92ZSBpZCAlcyAoJXMpXG4iCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbmdoYXB1cyBpZCAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgImRlcHJlY2F0ZWQgdXNhZ2U6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorbXNnc3RyICJwZW5nZ3VuYWFuIHlhbmcgc3VkYWggZGl0aW5nZ2FsOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gcmVzb3VyY2UgdHlwZTogJXNcbiIKK21zZ3N0ciAidGlwZSByZXNvdXJjZSB0aWRhayBkaWtldGFodWk6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNvdXJjZShzKSBkZWxldGVkXG4iCittc2dzdHIgInJlc291cmNlKHMpIGRpaGFwdXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisicGVuZ2d1bmFhbjogJXMgWyBbLXEgbXNnaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiJXM6IHBpbGloYW4gaWxsZWdhbCAtLSAlY1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwga2V5ICglcylcbiIKK21zZ3N0ciAiJXM6IGt1bmNpIGlsbGVnYWwgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDYgc3lzLXV0aWxzL2lwY3JtLmM6MjM4Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGtleSIKK21zZ3N0ciAiaWppbiBkaXRvbGFrIHVudHVrIGt1bmNpIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAia3VuY2kgc3VkYWggZGloYXB1cyIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjEyIHN5cy11dGlscy9pcGNybS5jOjI0MworbXNnaWQgImludmFsaWQga2V5IgorbXNnc3RyICJrdW5jaSB0aWRhayB2YWxpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjE1IHN5cy11dGlscy9pcGNybS5jOjI1MworbXNnaWQgInVua25vd24gZXJyb3IgaW4ga2V5IgorbXNnc3RyICJrZXNhbGFoYW4gdGlkYWsgZGlrZXRhaHVpIGRhbGFtIGt1bmNpIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgImlqaW4gZGl0b2xhayB1bnR1ayBpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ0Cittc2dpZCAiaW52YWxpZCBpZCIKK21zZ3N0ciAiaWQgdGlkYWsgdmFsaWQiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0OQorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBpZCIKK21zZ3N0ciAiaWQgc3VkYWggZGloYXB1cyIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU0Cittc2dpZCAidW5rbm93biBlcnJvciBpbiBpZCIKK21zZ3N0ciAiZXJyb3IgdGlkYWsgZGlrZXRhaHVpIGRhbGFtIGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzICglcylcbiIKK21zZ3N0ciAiJXM6ICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIGFyZ3VtZW50OiAlc1xuIgorbXNnc3RyICIlczogYXJndW1lbnQgdGlkYWsgZGlrZXRhaHVpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZSA6ICVzIC1hc21xIC10Y2x1cCBcbiIKK21zZ3N0ciAicGVuZ2d1bmFhbjogJXMgLWFzbXEgLXRjbHVwIFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKK21zZ3N0ciAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIlx0JXMgLWggdW50dWsgYmFudHVhbi5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzIGZvciB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKK21zZ3N0ciAiIgorIiVzIG1lbWJlcmlrYW4gaW5mb3JtYXNpIGRpIGZhc2lsaXRhcyBpcGMgZGltYW5hIGFuZGEgbWVtaWxpa2kgaWppbiB1bnR1ayAiCisibWVtYmFjYS5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlJlc291cmNlIFNwZWNpZmljYXRpb246XG4iCisiXHQtbSA6IHNoYXJlZF9tZW1cbiIKKyJcdC1xIDogbWVzc2FnZXNcbiIKK21zZ3N0ciAiIgorIlNwZXNpZmlrYXNpIFJlc291cmNlOlxuIgorIlx0LW0gOiBzaGFyZWRfbWVtXG4iCisiXHQtcSA6IG1lc3NhZ2VzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdXRwdXQgRm9ybWF0OlxuIgorIlx0LXQgOiB0aW1lXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhdG9yXG4iCittc2dzdHIgIiIKKyJGb3JtYXQgT3V0cHV0OlxuIgorIlx0LXQgOiB0aW1lXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhdG9yXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1sIDogbGltaXRzXG4iCisiXHQtdSA6IHN1bW1hcnlcbiIKK21zZ3N0ciAiIgorIlx0LWwgOiBiYXRhc1xuIgorIlx0LXUgOiByaW5na2FzYW5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICItaSBpZCBbLXMgLXEgLW1dIDogZGV0YWlsIGRpIHJlc291cmNlIHlhbmcgZGkgaWRlbnRpZmlrYXNpIG9sZWggaWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iCittc2dzdHIgImtlcm5lbCB0aWRhayBkaWtvbmZpZ3VyYXN1IHVudHVrIHNoYXJlZCBtZW1vcnlcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBCYXRhcyBTaGFyZWQgTWVtb3J5ICAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIHNlZ21lbnRzID0gJWx1XG4iCittc2dzdHIgIm1heCBub21vciBkYXJpIHNlZ21lbnRzID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtYXggc2VkIHNpemUgKGtieXRlcykgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHRvdGFsIHNoYXJlZCBtZW1vcnkgKGtieXRlcykgPSAlbGx1XG4iCittc2dzdHIgIm1heCB0b3RhbCBzaGFyZWQgbWVtb3J5IChrYnl0ZXMpID0gJWxsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU3RhdHVzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICJiYWdpYW4geWFuZyBkaSBhbG9rYXNpa2FuICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAicGFnZXMgeWFuZyBkaSBhbG9rYXNpa2FuICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyByZXNpZGVudCAgJWxkXG4iCittc2dzdHIgInBhZ2VzIHJlc2lkZW50ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgInBhZ2VzIHlhbmcgZGkgc3dhcCAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dhcCBwZXJmb3JtYW5jZTogJWxkIGF0dGVtcHRzXHQgJWxkIHN1Y2Nlc3Nlc1xuIgorbXNnc3RyICJQZXJmb3JtYW5jZSBzd2FwOiAlbGQgbWVuY29iYVx0ICVsZCBiZXJoYXNpbFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IFBlbWJ1YXQvUGVtaWxpayAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAic2htaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICJwZXJtcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjdWlkIgorbXNnc3RyICJjdWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImNnaWQiCittc2dzdHIgImNnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAidWlkIgorbXNnc3RyICJ1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiZ2lkIgorbXNnc3RyICJnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IEF0dGFjaC9EZXRhY2gvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IEF0dGFjaC9EZXRhY2gvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxIHN5cy11dGlscy9pcGNzLmM6MzA3CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNCBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUxMgorIzogc3lzLXV0aWxzL2lwY3MuYzo1MTggc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJvd25lciIKK21zZ3N0ciAicGVtaWxpayIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAiYXR0YWNoZWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgImRldGFjaGVkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorbXNnaWQgImNoYW5nZWQiCittc2dzdHIgImJlcnViYWgiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2hhcmVkIE1lbW9yeSBQZW1idWF0L0xhc3Qtb3AgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJjcGlkIgorbXNnc3RyICJjcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImxwaWQiCittc2dzdHIgImxwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAia2V5IgorbXNnc3RyICJrdW5jaSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJieXRlcyIKK21zZ3N0ciAiYnl0ZXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAibmF0dGNoIgorbXNnc3RyICJuYXR0Y2giCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAic3RhdHVzIgorbXNnc3RyICJzdGF0dXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzI5IHN5cy11dGlscy9pcGNzLmM6MzMxIHN5cy11dGlscy9pcGNzLmM6MzMzCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ0NCBzeXMtdXRpbHMvaXBjcy5jOjQ0NiBzeXMtdXRpbHMvaXBjcy5jOjU0NQorIzogc3lzLXV0aWxzL2lwY3MuYzo1NDcgc3lzLXV0aWxzL2lwY3MuYzo1NDkgc3lzLXV0aWxzL2lwY3MuYzo2MDAKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAyIHN5cy11dGlscy9pcGNzLmM6NjMwIHN5cy11dGlscy9pcGNzLmM6NjMyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzNCBzeXMtdXRpbHMvaXBjcy5jOjY1NworbXNnaWQgIk5vdCBzZXQiCittc2dzdHIgIlRpZGFrIGRpc2V0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MQorbXNnaWQgImRlc3QiCittc2dzdHIgImRlc3QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICJ0ZXJrdW5jaSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgImtlcm5lbCB0aWRhayBkaWtvbmZpZ3VyYXNpa2FuIHVudHVrIHNlbWFwaG9yZXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEJhdGFzIFNlbWFwaG9yZSAgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJtYXggbm9tb3IgZGFyaSBhcnJheXMgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBwZXIgYXJyYXkgPSAlZFxuIgorbXNnc3RyICJtYXggc2VtYXBob3JzIHBlciBhcnJheSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAibWF4IHNlbWFwaG9ycyBzeXN0ZW0gd2lkZSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBvcHMgcGVyIHNlbW9wIGNhbGwgPSAlZFxuIgorbXNnc3RyICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VtYXBob3JlIG1heCB2YWx1ZSA9ICVkXG4iCittc2dzdHIgIm5pbGFpIG1ha3NpbWFsIHNlbWFwaG9yZSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZW1hcGhvcmUgU3RhdHVzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAiYXJyYXlzIHlhbmcgZGlndW5ha2FuID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHNlbWFwaG9yZXMgPSAlZFxuIgorbXNnc3RyICJzZW1hcGhvcmVzIHlhbmcgZGlhbG9rYXNpa2FuID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXkgUGVtYnVhdC9QZW1pbGlrICAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjQxNCBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgInNlbWlkIgorbXNnc3RyICJzZW1pZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBPcGVyYXRpb24vQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBPcGVyYXNpIFNlbWFwaG9yZS9QZXJ1YmFoYW4gV2FrdHUgLS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1vcCIKK21zZ3N0ciAibGFzdC1vcCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgImxhc3QtY2hhbmdlZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAibnNlbXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3IgbWVzc2FnZSBxdWV1ZXNcbiIKK21zZ3N0ciAia2VybmVsIHRpZGFrIGRpa29uZmlndXJhc2lrYW4gdW50dWsgbWVzc2FnZSBxdWV1ZXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2l6ZSBvZiBtZXNzYWdlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJ1a3VyYW4gbWFrc2ltYWwgZGFyaSBwZXNhbiAoYnl0ZXMpID0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJkZWZhdWx0IG1heCBzaXplIG9mIHF1ZXVlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJ1a3VyYW4gbWFrc2ltYWwgZGVmYXVsdCBkYXJpIGFudHJpYW4gKGJ5dGVzKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBQZXNhbjogU3RhdHVzIC0tLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OAorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgcXVldWVzID0gJWRcbiIKK21zZ3N0ciAiYWxva2FzaSBhbnRyaWFuID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBoZWFkZXJzID0gJWRcbiIKK21zZ3N0ciAicGVuZ2d1bmFhbiBoZWFkZXJzID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBzcGFjZSA9ICVkIGJ5dGVzXG4iCittc2dzdHIgInBlbmdndW5hYW4gc3BhY2UgPSAlZCBieXRlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXM6IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gUGVzYW4gQW50cmlhbjogUGVtYnVhdC9QZW1pbGlrIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTEyIHN5cy11dGlscy9pcGNzLmM6NTE4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm1zcWlkIgorbXNnc3RyICJtc2dpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFBlc2FuIEFudHJpYW4gS2lyaW0vVGVyaW1hL0tlbWJhbGkgV2FrdHUgKFRpbWVzKSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgImtpcmltIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInJlY3YiCittc2dzdHIgInJlY3YiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAiY2hhbmdlIgorbXNnc3RyICJrZW1iYWxpIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gUGVzYW4gQW50cmlhbiBQSURzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgImxzcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxycGlkIgorbXNnc3RyICJscnBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBQZXNhbiBBbnRyaWFuIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAidXNlZC1ieXRlcyIKK21zZ3N0ciAiYnl0ZSB5YW5nIGRpZ3VuYWthbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAicGVzYW4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTg5Cittc2dpZCAic2htY3RsIGZhaWxlZCIKK21zZ3N0ciAic2htY3RsIGdhZ2FsIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2hhcmVkIG1lbW9yeSBTZWdtZW50IHNobWlkPSVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJCYWdpYW4gbWVtb3J5IHNoYXJlIHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHR1aWQ9JWRcdGNnaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKK21zZ3N0ciAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCittc2dzdHIgImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJhdHRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJhdHRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJkZXRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMyBzeXMtdXRpbHMvaXBjcy5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgIm1zZ2N0bCBnYWdhbCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk1lc3NhZ2UgUXVldWUgbXNxaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIkFudHJpYW4gUGVzYW4gbXNnaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRtb2RlPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJjYnl0ZXM9JWxkXHRxYnl0ZXM9JWxkXHRxbnVtPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCittc2dzdHIgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VuZF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY0OCBzeXMtdXRpbHMvaXBjcy5jOjY3MAorbXNnaWQgInNlbWN0bCBmYWlsZWQiCittc2dzdHIgInNlbWN0bCBnYWdhbCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiU2VtYXBob3JlIEFycmF5IHNlbWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgIm5zZW1zID0gJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm90aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAib3RpbWUgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICJjdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgImN0aW1lID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJzZW1udW0iCittc2dzdHIgInNlbW51bSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAibmlsYWkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAibmNvdW50IgorbXNnc3RyICJuY291bnQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICJ6Y291bmQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAicGlkIgorbXNnc3RyICJwaWQiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlBlbmdndW5hYW46ICVzIFsgLWRoVjc4bmVvMTIgXSBbIC1zIDxrZWNlcGF0YW4+IF0gPGxkaXNjPiA8cGVyYW5na2F0PlxuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisiXG4iCisiTmFtYSA8bGRpc2M+IGRpa2VuYWw6XG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHNwZWVkOiAlcyIKK21zZ3N0ciAia2VjZXBhdGFuIHRpZGFrIHZhbGlkOiAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAibGRhdHRhY2ggZGFyaSAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxODQgdGV4dC11dGlscy90YWlsZi5jOjIwNgorbXNnaWQgImludmFsaWQgb3B0aW9uIgorbXNnc3RyICJwaWxpaGFuIHRpZGFrIHZhbGlkIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBsaW5lIGRpc2NpcGxpbmU6ICVzIgorbXNnc3RyICJiYXJpcyBkaXNpcGxpbiB0aWRhayB2YWxpZDogJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiJXMgYnVrYW4gc2VidWFoIGJhcmlzIHNlcmlhbCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgInRpZGFrIGRhcGF0IG1lbXBlcm9sZWggYXRyaWJ1dCB0ZXJtaW5hbCAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWVkICVkIHVuc3VwcG9ydGVkIgorbXNnc3RyICJrZWNlcGF0YW4gJWQgdGlkYWsgZGlkdWt1bmciCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJ0aWRhayBkYXBhdCBtZW5zZXQgYXRyaWJ1dCB0ZXJtaW5hbCB1bnR1ayAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjUxCittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbnNldCBiYXJpcyBkaXNpcGxpbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3Cittc2dpZCAiY2Fubm90IGRhZW1vbml6ZSIKK21zZ3N0ciAidGlkYWsgZGFwYXQgZGFlbW9uaXplIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NAorbXNnaWQgIm5vbmUiCittc2dzdHIgImtvc29uZyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUKK21zZ2lkICJwYXJhIgorbXNnc3RyICJwYXJhIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NgorbXNnaWQgImZ1bGwiCittc2dzdHIgInBlbnVoIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxMzcgc3lzLXV0aWxzL2xzY3B1LmM6MTYwIHN5cy11dGlscy9sc2NwdS5jOjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgImVycm9yOiAlcyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHBhcnNlOiAlcyIKK21zZ3N0ciAiZXJyb3IgbWVuZ2FtYmlsOiAlcyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTg0Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgImVycm9yOiBzdHJkdXAgZ2FnYWwiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjI2NworbXNnaWQgImVycm9yOiB1bmFtZSBmYWlsZWQiCittc2dzdHIgImVycm9yOiB1bmFtZSBnYWdhbCIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTA2Cittc2dpZCAiZXJyb3I6IG1hbGxvYyBmYWlsZWQiCittc2dzdHIgImVycm9yOiBtYWxsb2MgZ2FnYWwiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICJlcnJvcjogc2lzdGVtIGJlcmthcyAvc3lzIHRpZGFrIGRhcGF0IGRpYWtzZXMuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiMgVGhlIGZvbGxvd2luZyBpcyB0aGUgcGFyc2FibGUgZm9ybWF0LCB3aGljaCBjYW4gYmUgZmVkIHRvIG90aGVyXG4iCisiIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRFxuIgorIiMgc3RhcnRpbmcgZnJvbSB6ZXJvLlxuIgorIiMgQ1BVLENvcmUsU29ja2V0LE5vZGUiCittc2dzdHIgIiIKKyIjIEJlcmlrdXQgYWRhbGFoIGZvcm1hdCB5YW5nIGRhcGF0IGRpYW1iaWwsIHlhbmcgZGFwYXQgZGltYXN1a2FuIGtlXG4iCisiIyBhcGxpa2FzaSBsYWluLiBTZXRpYXAgYmFnaWFuIHlhbmcgYmVyYmVkYSBkYWxhbSBzZXRpYXAga29sb20gbWVtaWxpa2lcbiIKKyIjIElEIHVuaWsgYmVyYXdhbCBkYXJpIG5vbC5cbiIKKyIjIENQVSxDb3JlLFNva2V0LE5vZGUiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiQ1BVIG9wLW1vZGU6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICJUaHJlYWQocykgc2V0aWFwIGludGk6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICJJbnRpIHNldGlhcCBzb2tldDoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICJDUFUgc29rZXQ6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzEKK21zZ2lkICJOVU1BIG5vZGUocyk6IgorbXNnc3RyICJUaXRpayBOVU1BOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiSUQgUGVtYnVhdDoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICJLZWx1YXJnYSBDUFU6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzcKK21zZ2lkICJNb2RlbDoiCittc2dzdHIgIk1vZGVsOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICJTdGVwcGluZzoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICJDUFUgTUh6OiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorbXNnaWQgIlZpcnR1YWxpemF0aW9uOiIKK21zZ3N0ciAiVmlydHVhbGlzYXNpOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICJQZW1idWF0IEh5cGVydmlzb3I6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiVGlwZSB2aXJ0dWFsaXNhc2k6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIlcyBwZXJzZWRpYWFuOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uXVxuIgorbXNnc3RyICJQZW5nZ3VuYWFuOiAlcyBbcGlsaWhhbl1cbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisiSW5mb3JtYXNpIHBlbWJhbnR1IGFyc2l0ZWt0dXIgQ1BVXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICBpbmZvcm1hc2kgcGVuZ2d1bmFhblxuIgorIiAgLXAsIC0tcGFyc2UgICAgdGFtcGlsa2FuIGRhbGFtIGJlbnR1ayB5YW5nIGRhcGF0IGRpYW1iaWwgZGFyaXBhZGEgZm9ybWF0ICIKKyJ0ZXJjZXRhay5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgICBndW5ha2FuIGRpcmVrdG9yaSBzZWJhZ2FpIHNpc3RlbSByb290IGJhcnUuXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjcxOAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogY2hhbmdlIHdvcmtpbmcgZGlyZWN0b3J5IHRvICVzLiIKK21zZ3N0ciAiZXJyb3I6IG1lbmd1YmFoIGRpcmVrdG9yaSBrZXJqYSBrZSAlcy4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzcKK21zZ2lkICJ1c2FnZTogcmRldiBbIC1ydiBdIFsgLW8gT0ZGU0VUIF0gWyBJTUFHRSBbIFZBTFVFIFsgT0ZGU0VUIF0gXSBdIgorbXNnc3RyICJwZW5nZ3VuYWFuOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzgKK21zZ2lkICIiCisiICByZGV2IC9kZXYvZmQwICAob3IgcmRldiAvbGludXgsIGV0Yy4pIGRpc3BsYXlzIHRoZSBjdXJyZW50IFJPT1QgZGV2aWNlIgorbXNnc3RyICIiCisiICByZGV2IC9kZXYvZmQwICAoYXRhdSByZGV2IC9saW51eCwgZXRjLikgdGFtcGlsa2FuIFJPT1QgZGV2aWNlIHlhbmcgZGlwYWthaSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OQorbXNnaWQgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBzZXRzIFJPT1QgdG8gL2Rldi9oZGEyIgorbXNnc3RyICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHBhZGEgL2Rldi9oZGEyIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgwCittc2dpZCAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgUk9PVEZMQUdTIChyZWFkb25seSBzdGF0dXMpIgorbXNnc3RyICIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MQorbXNnaWQgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBzZXQgdGhlIFJBTURJU0sgc2l6ZSIKK21zZ3N0ciAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIHNldCB1a3VyYW4gUkFNRElTSyIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgYm9vdHVwIFZJREVPTU9ERSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICBtZW5nZ3VuYWthbiBvZmZzZXQgYnl0ZSBOIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg0Cittc2dpZCAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtUiIKK21zZ3N0ciAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbWEgZGVuZ2FuIHJkZXYgLVIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODUKK21zZ2lkICIgIHJhbXNpemUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1yIgorbXNnc3RyICIgIHVrdXJhbiByYW0gLi4uICAgICAgICAgICAgICAgICAgc2FtYSBkZW5nYW4gcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1hIGRlbmdhbiByZGV2IC12IgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg3Cittc2dpZCAiIgorIk5vdGU6IHZpZGVvIG1vZGVzIGFyZTogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLCAxPWtleTEsIDI9a2V5MiwuLi4iCittc2dzdHIgIiIKKyJDYXRhdGFuOiBtb2RlIHZpZGVvIGFkYWxhaDogLTM9VGFueWEsIC0yPUV4dGVuZGVkLCAtMT1Ob3JtYWxWZ2EsIDE9a3VuY2kxLCAiCisiMj1rdW5jaTIsLi4uIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiAgICAgIGd1bmFrYW4gLVIgMSB1bnR1ayBtZW1vdW50IHJvb3QgcmVhZG9ubHksIC1SIDAgdW50dWsgcmVhZC93cml0ZS4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAiaGlsYW5nIGtvbWEiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjcyIHRleHQtdXRpbHMvbW9yZS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICJrZWhhYmlzYW4gbWVtb3JpIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogXCIlcyBbb3B0aW9uc11cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChkZWZhdWx0czogXCIlc1wiIGFuZFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAoZGVmYXVsdDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgc2V0IHRoZSBwcm9maWxpbmcgbXVsdGlwbGllciB0byA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorIlx0IC12ICAgICAgICAgICAgcHJpbnQgdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICBwcmludCBhbGwgc3ltYm9scywgZXZlbiBpZiBjb3VudCBpcyAwXG4iCisiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgIHJlc2V0IGFsbCB0aGUgY291bnRlcnMgKHJvb3Qgb25seSlcbiIKKyJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorIlx0IC1WICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorbXNnc3RyICIiCisiJXM6IFBlbmdndW5hYW46IFwiJXMgW3BpbGloYW5dXG4iCisiXHQgLW0gPG1hcGZpbGU+IChkZWZhdWx0czogXCIlc1wiIGRhbiBcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsZT4gKGRlZmF1bHQ6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIga2UgPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICB0YW1waWxrYW4gaW5mbyBoYW55YSBtZW5nZW5haSBzYW1wbGluZyBzdGVwXG4iCisiXHQgLXYgICAgICAgICAgICB0YW1waWxrYW4gdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICB0YW1waWxrYW4gc2VsdXJ1aCBzeW1ib2xzLCBtZXNraXB1biB0ZXJoaXR1bmcgMFxuIgorIlx0IC1iICAgICAgICAgICAgdGFtcGlsa2FuIGluZGl2aWR1YWwgaGlzdG9ncmFtLWJpbiBjb3VudHNcbiIKKyJcdCAtcyAgICAgICAgICAgIHRhbXBpbGthbiBpbmRpdmlkdWFsIGNvdW50ZXJzIGRpZGFsYW0gZnVuZ3NpXG4iCisiXHQgLXIgICAgICAgICAgICByZXNldCBzZWx1cnVoIGNvdW50ZXJzIChoYW55YSByb290KVxuIgorIlx0IC1uICAgICAgICAgICAgZGlzYWJsZSBieXRlIG9yZGVyIGF1dG8tZGV0ZWN0aW9uXG4iCisiXHQgLVYgICAgICAgICAgICB0YW1waWxrYW4gdmVyc2kgZGFuIGtlbHVhclxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZHByb2ZpbGU6IGVycm9yIHdyaXRpbmcgJXM6ICVzXG4iCittc2dzdHIgInJlYWRwcm9maWxlOiBlcnJvciBkYWxhbSBtZW51bGlzICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgcmV2ZXJzZWQgYnl0ZSBvcmRlci4gVXNlIC1uIHRvIGZvcmNlIG5hdGl2ZSBieXRlIG9yZGVyLlxuIgorbXNnc3RyICIiCisiTWVuZ2FzdW1zaWthbiB1cnV0YW4gYnl0ZSB0ZXJiYWxpay4gR3VuYWthbiAtbiB1bnR1ayBtZW1ha3NhIHVydXRhbiBieXRlICIKKyJhc2FsLlxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiU2FtcGxpbmdfc3RlcDogJWlcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzA1IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMoJWkpOiB3cm9uZyBtYXAgbGluZVxuIgorbXNnc3RyICIlczogJXMoJWkpOiBzYWxhaCBiYXJpcyBtYXBcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIFwiX3N0ZXh0XCIgaW4gJXNcbiIKK21zZ3N0ciAiJXM6IHRpZGFrIGRhcGF0IG1lbmNhcmkgXCJfc3RleHRcIiBkYWxhbSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIlczogcHJvZmlsZSBhbGFtYXQgZGlsdWFyIGphbmdrYXVhbi4gU2FsYWggZmlsZSBtYXA/XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjQxMgorbXNnaWQgInRvdGFsIgorbXNnc3RyICJ0b3RhbCIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQZW5nZ3VuYWFuOlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0YXMgWy1wfC0tcGlkXSBwaWQgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXRhcyAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0YXMgIC11fC0tdXNlciB1c2VyIFsuLi4gdXNlcl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlIGZyb20gJXNcbiIKK21zZ3N0ciAicmVuaWNlIGRhcmkgJXNcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiB1bmtub3duIHVzZXJcbiIKK21zZ3N0ciAicmVuaWNlOiAlczogcGVuZ2d1bmEgdGlkYWsgYWRhXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IG5pbGFpIGJ1cnVrXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6IHByaW9yaXRhcyBzZWJlbHVtbnlhICVkLCBwcmlvcml0YXMgYmFydSAlZFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgW29wdGlvbnNdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGRldmljZT4gICAgc2VsZWN0IHJ0YyBkZXZpY2UgKHJ0YzB8cnRjMXwuLi4pXG4iCisiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIHVzZXMgbG9jYWwgdGltZXpvbmVcbiIKKyIgICAgLW0gfCAtLW1vZGUgICAgICAgICAgICAgICBzdGFuZGJ5fG1lbXwuLi4gc2xlZXAgbW9kZVxuIgorIiAgICAtcyB8IC0tc2Vjb25kcyA8c2Vjb25kcz4gIHNlY29uZHMgdG8gc2xlZXBcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB0aW1lIHRvIHdha2VcbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBSVEMgdXNlcyBVVENcbiIKKyIgICAgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICB2ZXJib3NlIG1lc3NhZ2VzXG4iCisiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgc2hvdyB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKyJwZW5nZ3VuYWFuOiAlcyBbcGlsaWhhbl1cbiIKKyIgICAgLWQgfCAtLWRldmljZSA8cGVyYW5na2F0PiBwaWxpaCBwZXJhbmdrYXQgcnRjIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyBtZW5nZ3VuYWthbiBkYWVyYWggd2FrdHUgbG9rYWxcbiIKKyIgICAgLW0gfCAtLW1vZGUgICAgICAgICAgICAgICBzdGFuZGJ5fG1lbS4uLiBtb2RlIHRpZHVyXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxkZXRpaz4gICAgZGV0aWsga2UgdGlkdXJcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB3YWt0dSB1bnR1ayBiYW5ndW5cbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBSVEMgbWVuZ2d1bmFrYW4gVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgcGVzYW4gdmVyYm9zZVxuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHRhbXBpbGthbiB2ZXJzaVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0MgorbXNnaWQgInJlYWQgcnRjIHRpbWUiCittc2dzdHIgImJhY2EgYmFyaXMgcnRjIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0NworbXNnaWQgInJlYWQgc3lzdGVtIHRpbWUiCittc2dzdHIgImJhY2Egd2FrdHUgc2lzdGVtIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE2NQorbXNnaWQgImNvbnZlcnQgcnRjIHRpbWUiCittc2dzdHIgInViYWggd2FrdHUgcnRjIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyNAorbXNnaWQgInNldCBydGMgYWxhcm0iCittc2dzdHIgInNldCBhbGFybSBydGMiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI4Cittc2dpZCAiZW5hYmxlIHJ0YyBhbGFybSIKK21zZ3N0ciAiYWt0aWZrYW4gYWxhcm0gcnRjIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIzMgorbXNnaWQgInNldCBydGMgd2FrZSBhbGFybSIKK21zZ3N0ciAic2V0IGFsYXJtIGJhbmd1biBydGMiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIiAlczoga29uZGlzaSBzdXNwZW5kIHRpZGFrIGRpa2VuYWwgJyVzJ1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBpbnRlcnZhbCAlcyBzZWNvbmRzXG4iCittc2dzdHIgIiVzOiBpbnRlcnZhbCBpbGVnYWwgJXMgZGV0aWtcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiBuaWxhaSB0aW1lX3QgJXMgaWxlZ2FsXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB2ZXJzaW9uICVzXG4iCittc2dzdHIgIiVzOiB2ZXJzaSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIgorbXNnc3RyICIlczogbWVuZ2FzdW1zaWthbiBSVEMgbWVuZ2d1bmFrYW4gVVRDIC4uLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwMworIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAiTWVuZ2d1bmFrYW4gd2FrdHUgVVRDLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICJNZW5nZ3VuYWthbiB3YWt0dSBsb2thbC5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG11c3QgcHJvdmlkZSB3YWtlIHRpbWVcbiIKK21zZ3N0ciAiJXM6IGhhcnVzIG1lbnllZGlha2FuIHdha3R1IGJhbmd1blxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQxNworbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jKCkgZ2FnYWwiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgZW5hYmxlZCBmb3Igd2FrZXVwIGV2ZW50c1xuIgorbXNnc3RyICIlczogJXMgdGlkYWsgYWt0aWYgdW50dWsgZXZlbiBiYW5ndW5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxhcm0gJWxkLCBzeXNfdGltZSAlbGQsIHJ0Y190aW1lICVsZCwgc2Vjb25kcyAldVxuIgorbXNnc3RyICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBkZXRpayAldVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGltZSBkb2Vzbid0IGdvIGJhY2t3YXJkIHRvICVzXG4iCittc2dzdHIgIiVzOiB3YWt0dSB0aWRhayBwZXJnaSBtdW5kdXIga2UgJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdha2V1cCBmcm9tIFwiJXNcIiB1c2luZyAlcyBhdCAlc1xuIgorbXNnc3RyICIlczogYmFuZ3VuIGRhcmkgXCIlc1wiIG1lbmdndW5ha2FuICVzIGRpICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gZXhlY3V0ZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IHRpZGFrIGRhcGF0IG1lbmphbGFua2FuICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ5NgorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICJiYWNhIHJ0YyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo1MDUKK21zZ2lkICJkaXNhYmxlIHJ0YyBhbGFybSBpbnRlcnJ1cHQiCittc2dzdHIgIm1lbm9uYWt0aWZrYW4gaW50ZXJ1cHNpIGFsYXJtIHJ0YyIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzo1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hpbmcgb24gJXMuXG4iCittc2dzdHIgIk1lbmdha3RpZmthbiAlcy5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJQZW5nZ3VuYWFuOiAlcyVzIFtwaWxpaGFuXSBbYXBsaWthc2kgW2FwbGlrYXNpIGFyZ3VtZW5dXVxuIgorIlxuIgorIlBpbGloYW46XG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBzYXlzIHdoYXQgb3B0aW9ucyBhcmUgYmVpbmcgc3dpdGNoZWQgb25cbiIKKyIgLVIsIC0tYWRkci1uby1yYW5kb21pemUgIGRpc2FibGVzIHJhbmRvbWl6YXRpb24gb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyAiCisic3BhY2VcbiIKKyIgLUYsIC0tZmRwaWMtZnVuY3B0cnMgICAgIG1ha2VzIGZ1bmN0aW9uIHBvaW50ZXJzIHBvaW50IHRvIGRlc2NyaXB0b3JzXG4iCisiIC1aLCAtLW1tYXAtcGFnZS16ZXJvICAgICB0dXJucyBvbiBNTUFQX1BBR0VfWkVST1xuIgorIiAtTCwgLS1hZGRyLWNvbXBhdC1sYXlvdXQgY2hhbmdlcyB0aGUgd2F5IHZpcnR1YWwgbWVtb3J5IGlzIGFsbG9jYXRlZFxuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgdHVybnMgb24gUkVBRF9JTVBMSUVTX0VYRUNcbiIKKyIgLUIsIC0tMzJiaXQgICAgICAgICAgICAgIHR1cm5zIG9uIEFERFJfTElNSVRfMzJCSVRcbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgIHR1cm5zIG9uIFNIT1JUX0lOT0RFXG4iCisiIC1TLCAtLXdob2xlLXNlY29uZHMgICAgICB0dXJucyBvbiBXSE9MRV9TRUNPTkRTXG4iCisiIC1ULCAtLXN0aWNreS10aW1lb3V0cyAgICB0dXJucyBvbiBTVElDS1lfVElNRU9VVFNcbiIKKyIgLTMsIC0tM2diICAgICAgICAgICAgICAgIGxpbWl0cyB0aGUgdXNlZCBhZGRyZXNzIHNwYWNlIHRvIGEgbWF4aW11bSBvZiAzICIKKyJHQlxuIgorIiAgICAgLS00Z2IgICAgICAgICAgICAgICAgaWdub3JlZCAoZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seSlcbiIKK21zZ3N0ciAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgdGFtcGlsa2FuIHBlc2FuIGJhbnR1YW4gaW5pXG4iCisiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICB0YW1waWxrYW4gcGlsaWhhbiBhcGEgc2FqYSB5YW5nIHNlZGFuZyBha3RpZlxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgbWVub25ha3RpZmthbiByYW5kb21pemF0aW9uIGRhcmkgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgYnVhdCBwb2ludGVyIGZ1bmdzaSBtZW51bmp1ayBrZSBkZXNrcmlwc2lcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIGFrdGlma2FuIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCB1YmFoIGNhcmEgcGVuZ2Fsb2thc2lhbiBtZW1vcmkgdmlydHVhbFxuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgYWt0aWZrYW4gUkVBRF9JTVBMSUVTX0VYRUNcbiIKKyIgLUIsIC0tMzJiaXQgICAgICAgICAgICAgIGFrdGlma2FuIEFERFJfTElNSVRfMzJCSVRcbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgIGFrdGlma2FuIFNIT1JUX0lOT0RFXG4iCisiIC1TLCAtLXdob2xlLXNlY29uZHMgICAgICBha3RpZmthbiBXSE9MRV9TRUNPRFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIGFrdGlma2FuIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgYmF0YXNpIHBlbmdndW5hYW4gYWRkcmVzcyBzcGFjZSBrZSBtYWtzaW1hbCAzIEdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBhYmFpa2FuIChoYW55YSB1bnR1ayBrb21wYWJpbGl0YXMga2UgdmVyc2kgIgorInNlYmVsdW1ueWEgc2FqYSlcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiVW50dWsgaW5mb3JtYXNpIGxlYmloIGxhbmp1dCBsaWhhdCBzZXRhcmNoKDgpLlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVzXG4iCisiVHJ5IGAlcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiJXM6ICVzXG4iCisiQ29iYSBgJXMgLS1oZWxwJyB1bnR1ayBpbmZvcm1hc2kgbGViaWggbGFuanV0LlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjIxNSBzeXMtdXRpbHMvc2V0YXJjaC5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5yZWNvZ25pemVkIGFyY2hpdGVjdHVyZSIKK21zZ3N0ciAiJXM6IEFyc2l0ZWt0dXIgdGlkYWsgZGlrZW5hbCIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKK21zZ2lkICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK21zZ3N0ciAiQXJndW1lbiB0aWRhayBjdWt1cCIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNjUgc3lzLXV0aWxzL3NldGFyY2guYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiR2FnYWwgbWVuc2V0IHBlcnNvbmFsaXR5IGtlICVzIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgInBlbmdndW5hYW46ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisiUGVuZ2d1bmFhbjogJXMgPHBlcmFuZ2thdD4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gIgorInwgXG4iCisiICAgICAgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbbnlhbGF8bWF0aV0gfCAtQyBbbnlhbGF8bWF0aV0gfCAtcSBbbnlhbGF8IgorIm1hdGldIHwgLXMgfCBcbiIKKyIgICAgICAgICAgICAgICAtVCBbbnlhbGF8bWF0aV0gXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6OTEKK21zZ2lkICJtYWxsb2MgZXJyb3IiCittc2dzdHIgIm1hbGxvYyBlcnJvciIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiVzOiBuaWxhaSB0aWRhayBiYWlrXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBhbiBscCBkZXZpY2UuXG4iCittc2dzdHIgIiVzOiAlcyBidWthbiBzZWJ1YWggcGVyYW5na2F0IGxwLlxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN0YXR1cyBpcyAlZCIKK21zZ3N0ciAiJXMgc3RhdHVzIGFkYWxhaCAlZCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiwgc2lidWsiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCBzaWFwIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb3V0IG9mIHBhcGVyIgorbXNnc3RyICIsIGtlaGFiaXNhbiBrZXJ0YXMiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvbi1saW5lIgorbXNnc3RyICIsIG9uLWxpbmUiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCBlcnJvciIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI4NQorbXNnaWQgIkxQR0VUSVJRIGVycm9yIgorbXNnc3RyICJMUEdFVElSUSBlcnJvciIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBJUlEgJWRcbiIKK21zZ3N0ciAiJXMgbWVuZ2d1bmFrYW4gSVJRICVkXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgcG9sbGluZ1xuIgorbXNnc3RyICIlcyBtZW5nZ3VuYWthbiBwb2xsaW5nXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgInBlbmdndW5hYW46ICVzIFtwaWxpaGFuXSA8YXBsaWthc2k+IFthcmcgLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjYwCittc2dpZCAiIgorIlJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB1c2FnZSBpbmZvcm1hdGlvbiAodGhpcylcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgbW91bnRzIG5hbWVzcGFjZVxuIgorIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIFN5c3RlbSBWIElQQyBuYW1lc3BhY2VcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIHVuc2hhcmUgbmV0d29yayBuYW1lc3BhY2VcbiIKK21zZ3N0ciAiIgorIkphbGFua2FuIGFwbGlrYXNpIGRlbmdhbiBiZWJlcmFwYSBydWFuZyBuYW1hIHRpZGFrIHRlcmJhZ2kgZGFyaSBpbmR1a255YVxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgICAgaW5mb3JtYXNpIHBlbmdndW5hYW4gKHBlc2FuIGluaSlcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgcnVhbmcgbmFtYSBwZW1hc2FuZ2FuXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIHJ1YW5nIG5hbWEgVVRTIChob3N0bmFtZSBkbGwpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIHJ1YW5nIG5hbWEgU2lzdGVtIFYgSVBDXG4iCisiICAtbiwgLS1uZXQgICAgICAgICB1bnNoYXJlIHJ1YW5nIG5hbWEgamFyaW5nYW5cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHVuc2hhcmUoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVbnR1ayBpbmZvcm1hc2kgbGViaWggbGFuanV0IGxpaGF0IHVuc2hhcmUoMSkuXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE0Cittc2dpZCAidW5zaGFyZSBmYWlsZWQiCittc2dzdHIgInVuc2hhcmUgZ2FnYWwiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJnYWdhbCBtZW5qYWxhbmthbiAlcyIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgImNvbDogYXJndW1lbiAlcyB1bnR1ayBwaWxpaGFuIC1sIHRpZGFrIGJhaWsuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmVdXG4iCittc2dzdHIgInBlbmdndW5hYW46IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiB3cml0ZSBlcnJvci5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6IHBlcmluZ2F0YW46IHRpZGFrIGRhcGF0IG1lbSBiYWNrIHVwICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgInBhc3QgZmlyc3QgbGluZSIKK21zZ3N0ciAibWVsZXdhdGkgYmFyaXMgcGVydGFtYSIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0gYmFyaXMgc3VkYWggZGkgZmx1c2giCisKKyM6IHRleHQtdXRpbHMvY29sY3J0LmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLSBdIFsgLTIgXSBbIGZpbGUgLi4uIF1cbiIKK21zZ3N0ciAicGVuZ2d1bmFhbjogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgImJhcmlzIHRlcmxhbHUgcGFuamFuZyIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzozNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbHVtbiBbLXR4XSBbLWMgY29sdW1uc10gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJwZW5nZ3VuYWFuOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnhdIFtmaWxlIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgbGVuZ3RoIHZhbHVlLlxuIgorbXNnc3RyICJoZXhkdW1wOiBhbmdrYSBwYW5qYW5nIHRpZGFrIGJhaWsuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IGFuZ2thIHNraXAgdGlkYWsgYmFpay5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbGVdIFstbiBwYW5qYW5nXSBbLXMgc2tpcF0gIgorIltmaWxlIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgInBlbmdndW5hYW46ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSBuYW1lMSBuYW1lMiAuLi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBpbml0aWFsaXplIGxpbmUgYnVmZmVyXG4iCittc2dzdHIgImdhZ2FsIG1lbmdpbmlzaWFsaXNhc2kgYmFyaXMgcGVueWFuZ2dhXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBvcHRpb24gXCItJWNcIlxuIgorbXNnc3RyICIlczogcGlsaWhhbiB0aWRhayBkaWtldGFodWkgXCItJWNcIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKiAlczogZGlyZWN0b3J5ICoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqICVzOiBkaXJla3RvcmkgKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjU2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqKioqKiogJXM6IE5vdCBhIHRleHQgZmlsZSAqKioqKioqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqKioqKiogJXM6IEJ1a2FuIHNlYnVhaCBmaWxlIHRleHQgKioqKioqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIltVc2UgcSBvciBRIHRvIHF1aXRdIgorbXNnc3RyICJbR3VuYWthbiBxIGF0YXUgUSB1bnR1ayBiZXJoZW50aV0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICItLU1vcmUtLSIKK21zZ3N0ciAiLS1MZWJpaC0tIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiKE5leHQgZmlsZTogJXMpIgorbXNnc3RyICIoRmlsZSBzZWxhbmp1dG55YTogJXMpIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzIHNwYWNlIHRvIGNvbnRpbnVlLCAncScgdG8gcXVpdC5dIgorbXNnc3RyICJbVGVrYW4gc3Bhc2kgdW50dWsgbWVsYW5qdXRrYW4sICdxJyB1bnR1ayBiZXJoZW50aS5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmJhY2sgJWQgcGFnZXMiCittc2dzdHIgIi4uLmtlbWJhbGkgJWQgaGFsYW1hbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwOAorbXNnaWQgIi4uLmJhY2sgMSBwYWdlIgorbXNnc3RyICIuLi5rZW1iYWxpIDEgaGFsYW1hbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICIuLi5tZWxld2F0aSBzYXR1IGJhcmlzIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICIuLi5tZWxld2F0aSAlZCBiYXJpcyIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI5MAorbXNnaWQgIiIKKyJcbiIKKyIqKipCYWNrKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKipLZW1iYWxpKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMjgKK21zZ2lkICIiCisiXG4iCisiTW9zdCBjb21tYW5kcyBvcHRpb25hbGx5IHByZWNlZGVkIGJ5IGludGVnZXIgYXJndW1lbnQgay4gIERlZmF1bHRzIGluICIKKyJicmFja2V0cy5cbiIKKyJTdGFyICgqKSBpbmRpY2F0ZXMgYXJndW1lbnQgYmVjb21lcyBuZXcgZGVmYXVsdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlYmFnaWFuIGJlc2FyIHBlcmludGFoIGJpc2EgZGlhd2FsaSBkZW5nYW4gYXJndW1lbiBpbnRlZ2VyIGsuIERlZmF1bHQgZGFsYW0gIgorImJyYWNrZXRzLlxuIgorIkJpbnRhbmcgKCopIG1lbmdpbmRpa2FzaWthbiBhcmd1bWVudCBtZW5qYWRpIGJhcnUgc2VjYXJhIGRlZmF1bHQuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMzUKK21zZ2lkICIiCisiPHNwYWNlPiAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFsxXSpcbiIKKyJkIG9yIGN0cmwtRCAgICAgICAgICAgICBTY3JvbGwgayBsaW5lcyBbY3VycmVudCBzY3JvbGwgc2l6ZSwgaW5pdGlhbGx5IDExXSpcbiIKKyJxIG9yIFEgb3IgPGludGVycnVwdD4gICBFeGl0IGZyb20gbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGxpbmVzIG9mIHRleHQgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorImIgb3IgY3RybC1CICAgICAgICAgICAgIFNraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGxpbmUgbnVtYmVyXG4iCisiLzxyZWd1bGFyIGV4cHJlc3Npb24+ICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiBsYXN0IHIuZSBbMV1cbiIKKyIhPGNtZD4gb3IgOiE8Y21kPiAgICAgICBFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBhdCBjdXJyZW50IGxpbmVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRyYXcgc2NyZWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIG5leHQgZmlsZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggcHJldmlvdXMgZmlsZSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCBwcmV2aW91cyBjb21tYW5kXG4iCittc2dzdHIgIiIKKyI8c3Bhc2k+ICAgICAgICAgICAgICAgICBUYW1waWxrYW4gayBiYXJpcyBiZXJpa3V0bnlhIGRhcmkgdGV4dCBbdWt1cmFuICIKKyJzY3JlZW4gc2FhdCBpbmldXG4iCisieiAgICAgICAgICAgICAgICAgICAgICAgVGFtcGlsa2FuIGsgYmFyaXMgYmVyaWt1dG55YSBkYXJpIHRleHQgW3VrdXJhbiAiCisic2NyZWVuIHNhYXQgaW5pXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBUYW1waWxrYW4gayBiYXJpcyBiZXJpa3V0bnlhIGRhcmkgdGV4dCBbMV0qXG4iCisiZCBhdGF1IGN0cmwtRCAgICAgICAgICAgU2Nyb2xsIGsgYmFyaXMgWyB1a3VyYW4gc2Nyb2xsIHNhYXQgaW5pLCBpbmlzaWFsIDExXSIKKyIqXG4iCisicSBhdGF1IFEgYXRhdSA8aW50ZXJ1cD4gS2VsdWFyIGRhcmkgbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGJhcmlzIGRhcmkgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIGRhcmkgdGV4dCBbMV1cbiIKKyJiIGF0YXUgY3RybC1CICAgICAgICAgICBTa2lwIGJhY2t3YXJkcyBrIHNjcmVlbmZ1bHMgZGFyaSB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIFBlcmdpIGtlIHRlbXBhdCBkaW1hbmEgcGVuY2FyaWFuIHNlYmVsdW1ueWEgZGltdWxhaVxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIFRhbXBpbGthbiBub21vciBiYXJpcyBzYWF0IGluaVxuIgorIi88cmVndWxhciBleHByZXNzaW9uPiAgIFBlbmNhcmlhbiB1bnR1ayBrZSBrIGtlamFkaWFuIGRhcmkgcmVndWFsYXIgIgorImV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgUGVuY2FyaWFuIHVudHVrIGtlIGsga2VqYWRpYW4gZGFyaSB0ZXJha2hpciByLmUgWzFdXG4iCisiITxjbWQ+IGF0YXUgOiE8Y21kPiAgICAgTWVuamFsYW5rYW4gPGNtZD4gZGFsYW0gc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBkaSBiYXJpcyBzYWF0IGluaVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIEdhbWJhciB1bGFuZyBsYXlhclxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIFBlcmdpIGtlIGsgZmlsZSBzZWxhbmp1dG55YSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBQZXJnaSBrZSBrIGZpbGUgc2ViZWx1bW55YSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBUYW1waWxrYW4gbmFtYSBmaWxlIHNhYXQgaW5pIGRhbiBub21vciBiYXJpc1xuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFVsYW5naSBwZXJpbnRhaCBzZWJlbHVtbnlhXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0MDQgdGV4dC11dGlscy9tb3JlLmM6MTQwOQorIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3MgJ2gnIGZvciBpbnN0cnVjdGlvbnMuXSIKK21zZ3N0ciAiW1Rla2FuICdoJyB1bnR1ayBpbnN0cnVrc2kuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0MworIywgYy1mb3JtYXQKK21zZ2lkICJcIiVzXCIgbGluZSAlZCIKK21zZ3N0ciAiXCIlc1wiIGJhcmlzICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbQnVrYW4gc2VidWFoIGZpbGVdIGJhcmlzICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTI5Cittc2dpZCAiICBPdmVyZmxvd1xuIgorbXNnc3RyICIgIE92ZXJmbG93XG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIuLi5tZWxld2F0aVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICJSZWd1bGFyIGV4cHJlc3Npb24gYm90Y2giCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTMKK21zZ2lkICIiCisiXG4iCisiUGF0dGVybiBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBhdHRlcm4gdGlkYWsgZGl0ZW11a2FuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAiUGF0dGVybiB0aWRhayBkaXRlbXVrYW4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2NzcKK21zZ2lkICJjYW4ndCBmb3JrXG4iCittc2dzdHIgInRpZGFrIGRhcGF0IGZvcmtcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKyJcbiIKKyIuLi5NZWxld2F0aSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMAorbXNnaWQgIi4uLlNraXBwaW5nIHRvIGZpbGUgIgorbXNnc3RyICIuLi5NZWxld2F0aSBrZSBmaWxlICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMgorbXNnaWQgIi4uLlNraXBwaW5nIGJhY2sgdG8gZmlsZSAiCittc2dzdHIgIi4uLk1lbGV3YXRpIGtlbWJhbGkga2UgZmlsZSAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMDAKK21zZ2lkICJMaW5lIHRvbyBsb25nIgorbXNnc3RyICJCYXJpcyB0ZXJsYWx1IHBhbmphbmciCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwNDMKK21zZ2lkICJObyBwcmV2aW91cyBjb21tYW5kIHRvIHN1YnN0aXR1dGUgZm9yIgorbXNnc3RyICJUaWRhayBhZGFsYWggcGVyaW50YWggc2ViZWx1bW55YSB1bnR1ayBkaWdhbnRpa2FuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBvZCgxKSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciBoZXhkdW1wKDEpLlxuIgorbXNnc3RyICJvZDogb2QoMSkgc3VkYWggZGl0aW5nZ2Fsa2FuIHVudHVrIGhleGR1bXAoMSkuXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IGhleGR1bXAoMSkgY29tcGF0aWJpbGl0eSBkb2Vzbid0IHN1cHBvcnQgdGhlIC0lYyBvcHRpb24lc1xuIgorbXNnc3RyICJvZDogaGV4ZHVtcCgxKSBrb21wYXRpYmlsaXRhcyB0aWRhayBtZW5zdXBwb3J0IHBpbGloYW4gLSVjICVzXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzQKK21zZ2lkICI7IHNlZSBzdHJpbmdzKDEpLiIKK21zZ3N0ciAiOyBsaWhhdCBzdHJpbmdzKDEpLiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IHRpZGFrIGRhcGF0IG1lbWJhY2EgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJoZXhkdW1wOiBiYXJpcyB0ZXJsYWx1IHBhbmphbmcuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogYnl0ZSBjb3VudCBkZW5nYW4gYmViZXJhcGEga29udmVyc2kga2FyYWt0ZXIuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBwZW5naGl0dW5nIGJ5dGUgYnVydWsgdW50dWsga29udmVyc2kga2FyYWt0ZXIgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogJSVzIHJlcXVpcmVzIGEgcHJlY2lzaW9uIG9yIGEgYnl0ZSBjb3VudC5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogJSVzIG1lbWJ1dHVoa2FuIHNlYnVhaCBwcmVzaXNpIGF0YXUgc2VidWFoIHBlbmdoaXR1bmcgYnl0ZS5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDogZm9ybWF0IGJ1cnVrIHslc31cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDoga2FyYWt0ZXIga29udmVyc2kgYnVydWsgJSUlcy5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NQorbXNnaWQgIiIKKyJBbGwgcmlnaHRzIHJlc2VydmVkLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyIgIGggICAgICAgICAgICAgICAgICAgICAgIHRoaXMgc2NyZWVuXG4iCisiICBxIG9yIFEgICAgICAgICAgICAgICAgICBxdWl0IHByb2dyYW1cbiIKKyIgIDxuZXdsaW5lPiAgICAgICAgICAgICAgIG5leHQgcGFnZVxuIgorIiAgZiAgICAgICAgICAgICAgICAgICAgICAgc2tpcCBhIHBhZ2UgZm9yd2FyZFxuIgorIiAgZCBvciBeRCAgICAgICAgICAgICAgICAgbmV4dCBoYWxmcGFnZVxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBsaW5lXG4iCisiICAkICAgICAgICAgICAgICAgICAgICAgICBsYXN0IHBhZ2VcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIHNlYXJjaCBmb3J3YXJkIGZvciByZWdleFxuIgorIiAgP3JlZ2V4PyBvciBecmVnZXheICAgICAgc2VhcmNoIGJhY2t3YXJkIGZvciByZWdleFxuIgorIiAgLiBvciBeTCAgICAgICAgICAgICAgICAgcmVkcmF3IHNjcmVlblxuIgorIiAgdyBvciB6ICAgICAgICAgICAgICAgICAgc2V0IHBhZ2Ugc2l6ZSBhbmQgZ28gdG8gbmV4dCBwYWdlXG4iCisiICBzIGZpbGVuYW1lICAgICAgICAgICAgICBzYXZlIGN1cnJlbnQgZmlsZSB0byBmaWxlbmFtZVxuIgorIiAgIWNvbW1hbmQgICAgICAgICAgICAgICAgc2hlbGwgZXNjYXBlXG4iCisiICBwICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBwcmV2aW91cyBmaWxlXG4iCisiICBuICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBuZXh0IGZpbGVcbiIKKyJcbiIKKyJNYW55IGNvbW1hbmRzIGFjY2VwdCBwcmVjZWRpbmcgbnVtYmVycywgZm9yIGV4YW1wbGU6XG4iCisiKzE8bmV3bGluZT4gKG5leHQgcGFnZSk7IC0xPG5ld2xpbmU+IChwcmV2aW91cyBwYWdlKTsgMTxuZXdsaW5lPiAoZmlyc3QgIgorInBhZ2UpLlxuIgorIlxuIgorIlNlZSBwZygxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyJTZW11YSBoYWsgZGlsaW5kdW5naS5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICBsaWhhdCBsYXlhclxuIgorIiAgcSBhdGF1IFEgICAgICAgICAgICAgICAgYmVyaGVudGkgZGFyaSBhcGxpa2FzaVxuIgorIiAgPGJhcmlzIGJhcnU+ICAgICAgICAgICAgaGFsYW1hbiBzZWxhbmp1dG55YVxuIgorIiAgZiAgICAgICAgICAgICAgICAgICAgICAgbGV3YXRrYW4gc2VidWFoIGhhbGFtYW4ga2VkZXBhblxuIgorIiAgZCBhdGF1IF5EICAgICAgICAgICAgICAgc2VsYW5qdXRueWEgc2V0ZW5nYWggaGFsYW1hblxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgYmFyaXMgc2VsYW5qdXRueWFcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIGhhbGFtYW4gdGVyYWtoaXJcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIGNhcmkga2VkZXBhbiB1bnR1ayByZWdleFxuIgorIiAgP3JlZ2V4PyBhdGF1IF5yZWdleF4gICAgY2FyaSBrZWJlbGFrYW5nIHVudHVrIHJlZ2V4XG4iCisiICAuIGF0YXUgXkwgICAgICAgICAgICAgICBnYW1iYXIgdWxhbmcgbGF5YXJcbiIKKyIgIHcgYXRhdSB6ICAgICAgICAgICAgICAgIHNldCB1a3VyYW4gaGFsYW1hbiBkYW4gcGVyZ2kga2UgaGFsYW1hbiAiCisic2VsYW5qdXRueWFcbiIKKyIgIHMgbmFtYSBiZXJrYXMgICAgICAgICAgIHNpbXBhbiBiZXJrYXMgc2VrYXJhbmcga2UgbmFtYSBiZXJrYXNcbiIKKyIgICFwZXJpbnRhaCAgICAgICAgICAgICAgIGtlbHVhciBrZSBzaGVsbFxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgcGVyZ2kga2UgYmVya2FzIHNlYmVsdW1ueWFcbiIKKyIgIG4gICAgICAgICAgICAgICAgICAgICAgIHBlcmdpIGtlIGJlcmthcyBzZWxhbmp1dG55YVxuIgorIlxuIgorIkJhbnlhayBwZXJpbnRhaCBtZW5lcmltYSBhd2FsYW4gYW5na2EsIHNlYmFnYWkgY29udG9oOlxuIgorIisxPGJhcmlzIGJhcnU+IChoYWxhbWFuIHNlbGFuanV0bnlhKTsgLTE8YmFyaXMgYmFydT4gKGhhbGFtYW4gc2ViZWx1bW55YSk7ICIKKyIxPGJhcmlzIGJhcnU+IChoYWxhbWFuIHBlcnRhbWEpLlxuIgorIlxuIgorIkxpaGF0IHBnKDEpIHVudHVrIGluZm9ybWFzaSBsZWJpaCBsYW5qdXQuXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjIzCittc2dpZCAiT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJLZWhhYmlzYW4gbWVtb3JpXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKyIlczogUGVuZ2d1bmFhbjogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSAiCisiW2ZpbGVzXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IHBpbGloYW4gbWVtYnV0dWhrYW4gc2VidWFoIGFyZ3VtZW4gLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJXNcbiIKK21zZ3N0ciAiJXM6IHBpbGloYW4gaWxsZWdhbCAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcwCittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICIuLi5tZWxld2F0aSBmb3J3YXJkXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzIKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIuLi5tZWxld2F0aSBiYWNrd2FyZFxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJUaWRhayBhZGEgZmlsZSBzZWxhbmp1dG55YSIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIlRpZGFrIGFkYSBmaWxlIHNlYmVsdW1ueWEiCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFJlYWQgZXJyb3IgZnJvbSAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBSZWFkIGVycm9yIGRhcmkgZmlsZSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmV4cGVjdGVkIEVPRiBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBFT0YgdGlkYWsgZGlwZXJraXJha2FuIGRhbGFtIGZpbGUgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBlcnJvciBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBFcnJvciB0aWRhayBkaWtldGFodWkgZGFsYW0gZmlsZSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIlczogVGlkYWsgZGFwYXQgbWVtYnVhdCB0ZW1wZmlsZVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTA0NCB0ZXh0LXV0aWxzL3BnLmM6MTIxOSB0ZXh0LXV0aWxzL3BnLmM6MTI0NgorbXNnaWQgIlJFIGVycm9yOiAiCittc2dzdHIgIlJFIGVycm9yOiAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIihFT0YpIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAiVGlkYWsgYWRhIHlhbmcgZGlpbmdhdCBzdHJpbmcgcGVuY2FyaWFuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAiVGlkYWsgZGFwYXQgZGlidWthICIKKworIzogdGV4dC11dGlscy9wZy5jOjEzNTgKK21zZ2lkICJzYXZlZCIKK21zZ3N0ciAiZGlzaW1wYW4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDY1Cittc2dpZCAiOiAhY29tbWFuZCBub3QgYWxsb3dlZCBpbiByZmxhZyBtb2RlLlxuIgorbXNnc3RyICI6ICFjb21tYW5kIHRpZGFrIGRpcGVyYm9sZWhrYW4gZGFsYW0gbW9kZSByZmxhZy5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiZm9yaygpIGdhZ2FsLCBjb2JhIGxhZ2kgbmFudGlcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIihGaWxlIHNlbGFuanV0bnlhOiAiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTEzCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW5nYWxva2FzaWthbiBidWZmZXJzcGFjZSIKKworIzogdGV4dC11dGlscy9yZXYuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHJldiBbZmlsZSAuLi5dXG4iCittc2dzdHIgInBlbmdndW5hYW46IHJldiBbZmlsZSAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gXCIlc1wiIGZvciByZWFkIgorbXNnc3RyICJUaWRhayBkYXBhdCBtZW1idWthIFwiJXNcIiB1bnR1ayBkaWJhY2EiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo5NiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjE1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IFwiJXNcIiIKK21zZ3N0ciAidGlkYWsgZGFwYXQgbWVtcGVyb2xlaCBzdGF0aXN0aWsgXCIlc1wiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgImluY29tcGxldGUgd3JpdGUgdG8gXCIlc1wiICh3cml0dGVuICV6ZCwgZXhwZWN0ZWQgJXpkKVxuIgorbXNnc3RyICJwZW51bGlzYW4gdGlkYWsgbGVuZ2thcCBrZSBcIiVzXCIgKGRpdHVsaXMgJXpkLCBkaXBlcmtpcmFrYW4gJXpkKVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2ggKGxpbWl0IG9mIGlub3RpZnkgd2F0Y2hlcyB3YXMgcmVhY2hlZCkuIgorbXNnc3RyICIiCisiJXM6IHRpZGFrIGRhcGF0IG1lbmFtYmFoa2FuIHBlbWFudGF1YW4gaW5vdGlmeSAoYmF0YXMgZGFyaSBwZW1hbnRhdSBpbm90aWZ5ICIKKyJ0ZWxhaCB0ZXJjYXBhaSkuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2guIgorbXNnc3RyICIlczogdGlkYWsgZGFwYXQgbWVuYW1iYWhrYW4gcGVtYW50YXVhbiBpbm90aWZ5LiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiB0aWRhayBkYXBhdCBtZW1iYWNhIGV2ZW50IGlub3RpZnkiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxOTkgdGV4dC11dGlscy90YWlsZi5jOjIwMworbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIGxpbmVzIgorbXNnc3RyICJKdW1sYWggZGFyaSBiYXJpcyB0aWRhayB2YWxpZCIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICJQZW5nZ3VuYWFuOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgInBlbmdndW5hYW46ICVzIFstaSBdIFsgLXRUZXJtIF0gZmlsZS4uLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgInRyb3VibGUgcmVhZGluZyB0ZXJtaW5mbyIKK21zZ3N0ciAiYmVybWFzYWxhaCBkYWxhbSBwZW1iYWNhYW4gdGVybWluZm8iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBlc2NhcGUgc2VxdWVuY2UgaW4gaW5wdXQ6ICVvLCAlb1xuIgorbXNnc3RyICJlc2NhcGUgc2VxdWVuY2UgdGlkYWsgZGlrZXRhaHVpIHBhZGEgaW5wdXQ6ICVvLCAlb1xuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIuXG4iCittc2dzdHIgIlRpZGFrIGRhcGF0IG1lbmdhbG9rYXNpa2FuIGJ1ZmZlci5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnB1dCBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJCYXJpcyBpbnB1dCB0ZXJsYWx1IHBhbmphbmcuXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGVuIGdyb3dpbmcgYnVmZmVyLlxuIgorbXNnc3RyICJLZWhhYmlzYW4gbWVtb3JpIGtldGlrYSBtZW5pbmdrYXRrYW4gYnVmZmVyLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWIgU1NaXSBbLXVdIERJU0sgICAgIENoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyN+ICIgICAgICAgZmRpc2sgLWwgWy1iIFNTWl0gWy11XSBESVNLICBMaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorI34gIiAgICAgICBmZGlzayAtcyBQQVJUSVRJT04gICAgICAgICAgIEdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisjfiAiICAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgR2l2ZSBmZGlzayB2ZXJzaW9uXG4iCisjfiAiSGVyZSBESVNLIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRiIG9yIC9kZXYvc2RhXG4iCisjfiAiYW5kIFBBUlRJVElPTiBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYTdcbiIKKyN+ICItdTogZ2l2ZSBTdGFydCBhbmQgRW5kIGluIHNlY3RvciAoaW5zdGVhZCBvZiBjeWxpbmRlcikgdW5pdHNcbiIKKyN+ICItYiAyMDQ4OiAoZm9yIGNlcnRhaW4gTU8gZGlza3MpIHVzZSAyMDQ4LWJ5dGUgc2VjdG9yc1xuIgorI34gbXNnc3RyICIiCisjfiAiUGVuZ2d1bmFhbjogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBVYmFoIHRhYmVsIHBhcnRpc2lcbiIKKyN+ICIgICAgICAgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdIERJU0sgIFRhbXBpbGthbiBkYWZ0YXIgdGFiZWwgcGFydGlzaVxuIgorI34gIiAgICAgICAgICAgIGZkaXNrIC1zIFBBUlRJU0kgICAgICAgICAgICAgQmVyaWthbiB1a3VyYW4gcGFydGlzaSBkYWxhbSAiCisjfiAiYmxvY2tzXG4iCisjfiAiICAgICAgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICBUYW1waWxrYW4gdmVyc2kgZGFyaSBmZGlza1xuIgorI34gIkRpc2luaSBESVNLICBtZW1pbGlraSBuYW1hIHNlcGVydGkgL2Rldi9oZGIgYXRhdSAvZGV2L3NkYVxuIgorI34gImRhbiBQQVJUSVNJIGluaSBtZW1pbGlraSBuYW1hIHNlcGVydGkgL2Rldi9oZGE3XG4iCisjfiAiLXU6IG1lbWJlcmlrYW4gQXdhbCBkYW4gQWtoaXIgZGFsYW0gc2F0dWFuIHNlY3RvciAoZGFyaSBwYWRhIGRhbGFtICIKKyN+ICJjeWxpbmRlcnMpXG4iCisjfiAiLWIgMjA0ODogKHVudHVrIGJlYmVyYXBhIE1PIGRpc2tzKSBndW5ha2FuIDIwNDgtYnl0ZSBkYXJpIHNlY3RvclxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0gZGV2aWNlXG4iCisjfiAiRS5nLjogZmRpc2sgL2Rldi9oZGEgIChmb3IgdGhlIGZpcnN0IElERSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvc2RjICAoZm9yIHRoZSB0aGlyZCBTQ1NJIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9lZGEgIChmb3IgdGhlIGZpcnN0IFBTLzIgRVNESSBkcml2ZSlcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3JkL2MwZDAgIG9yOiBmZGlzayAvZGV2L2lkYS9jMGQwICAoZm9yIFJBSUQgZGV2aWNlcylcbiIKKyN+ICIgIC4uLlxuIgorI34gbXNnc3RyICIiCisjfiAiUGVuZ2d1bmFhbjogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIHBlcmFuZ2thdFxuIgorI34gIkUuZy46IGZkaXNrIC9kZXYvaGRhICAodW50dWsgSURFIGRpc2sgeWFuZyBwZXJ0YW1hKVxuIgorI34gImF0YXU6IGZkaXNrIC9kZXYvc2RjICAodW50dWsgU0NTSSBESVNLIHlhbmcga2V0aWdhKVxuIgorI34gImF0YXU6IGZkaXNrIC9kZXYvZWRhICAodW50dWsgUFMvMiBFU0RJIGRyaXZlKVxuIgorI34gImF0YXU6IGZkaXNrIC9kZXYvcmQvYzBkMCBhdGF1OiBmZGlzayAvZGV2L2lkYS9jMGQwICh1bnR1ayBwZXJhbmdrYXQgIgorI34gIlJBSUQpXG4iCisjfiAiLi4uLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlxuIgorI34gIlRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIGZvciB0aGlzIGRpc2sgaXMgc2V0IHRvICVkLlxuIgorI34gIlRoZXJlIGlzIG5vdGhpbmcgd3Jvbmcgd2l0aCB0aGF0LCBidXQgdGhpcyBpcyBsYXJnZXIgdGhhbiAxMDI0LFxuIgorI34gImFuZCBjb3VsZCBpbiBjZXJ0YWluIHNldHVwcyBjYXVzZSBwcm9ibGVtcyB3aXRoOlxuIgorI34gIjEpIHNvZnR3YXJlIHRoYXQgcnVucyBhdCBib290IHRpbWUgKGUuZy4sIG9sZCB2ZXJzaW9ucyBvZiBMSUxPKVxuIgorI34gIjIpIGJvb3RpbmcgYW5kIHBhcnRpdGlvbmluZyBzb2Z0d2FyZSBmcm9tIG90aGVyIE9Tc1xuIgorI34gIiAgIChlLmcuLCBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJcbiIKKyN+ICJKdW1sYWggZGFyaSBjeWxpbmRlciB1bnR1ayBkaXNrIGluaSBkaSBzZXQga2UgJWQuXG4iCisjfiAiVGlkYWsgYWRhIHlhbmcgc2FsYWggZGVuZ2FuIGhhbCBpbmksIHRldGFwaSBpbmkgbGViaWggYmVzYXIgZGFyaSAxMDI0LFxuIgorI34gImRhbiBkYXBhdCBtZW1idWF0IG1lbnllYmFia2FuIG1hc2FsYWggZGFsYW0gYmViZXJhcGEgc2V0dXAgZGVuZ2FuOlxuIgorI34gIjEpIGFwbGlrYXNpIHlhbmcgYmVyamFsYW4gcGFkYSB3YWt0dSBib290IChlLmcuLCB2ZXJzaSBsYW1hIGRhcmkgTElMTylcbiIKKyN+ICIyKSBib290aW5nIGRhbiBwYXJ0aXRpb25pbmcgc29mdHdhcmUgZGFyaSBPUyB5YW5nIGxhaW5cbiIKKyN+ICIgICAoZS5nLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorCisjfiBtc2dpZCAiIgorI34gIldBUk5JTkc6IFRoZSBkZXZpY2UgZG9lcyBub3QgcHJvdmlkZSBjb21wZW5zYXRpb24gKGFsaWdubWVudF9vZmZzZXQpXG4iCisjfiAiZm9yIERPUy1jb21wYXRpYmxlIHBhcnRpdGlvbmluZywgYnV0IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZW5hYmxlZC5cbiIKKyN+ICJVc2UgY29tbWFuZCAnYycgdG8gc3dpdGNoLW9mZiBET1MgbW9kZS5cbiIKKyN+ICJcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlBFUklOR0FUQU46IFBlcmFuZ2thdCB0aWRhayBtZW55ZWRpYWthbiBrb21wZW5zYXNpIChhbGlnbm1lbnRfb2Zmc2V0KVxuIgorI34gInVudHVrIHBlbWJhZ2lhbiBET1Mta29tcGF0aWJlbCwgdGV0YXBpIG1vZGUgRE9TLWtvbXBhdGliZWwgZGlha3RpZmthbi5cbiIKKyN+ICJHdW5ha2FuIHBlcmludGFoICdjJyB1bnR1ayBtZW5vbmFrdGlma2FuIG1vZGUgRE9TLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlxuIgorI34gIldBUk5JTkc6IHRoZSBkZXZpY2UgcHJvdmlkZXMgYWxpZ25tZW50X29mZnNldCwgYnV0IHRoZSBvZmZzZXQgZG9lcyBub3RcbiIKKyN+ICJtYXRjaCB3aXRoIGRldmljZSBnZW9tZXRyeS5cbiIKKyN+ICJcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlxuIgorI34gIlBFUklOR0FUQU46IHBlcmFuZ2thdCBtZW55ZWRpYWthbiBhbGlnbm1lbnRfb2Zmc2V0LCB0ZXRhcGkgb2ZzZXQgdGlkYWtcbiIKKyN+ICJjb2NvayBkZW5nYW4gZ2VvbWV0cmkgcGVyYW5na2F0LlxuIgorCisjfiBtc2dpZCAiIyBwYXJ0aXRpb24gdGFibGUgb2YgJXNcbiIKKyN+IG1zZ3N0ciAiIyB0YWJlbCBwYXJ0aXNpIGRhcmkgJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1bml0OiBzZWN0b3JzXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJzYXR1YW46IHNla3RvclxuIgorI34gIlxuIgorCisjfiBtc2dpZCAiIHN0YXJ0PSU5bHUiCisjfiBtc2dzdHIgIiBhd2FsPSU5bHUiCisKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAiLCBiZXNhcj0lOWx1IgorCisjfiBtc2dpZCAiLCBib290YWJsZSIKKyN+IG1zZ3N0ciAiLCBkYXBhdCBkaSBib290IgorCisjfiBtc2dpZCAiQ2xvY2sgaW4gVVRDLCBub3QgY2hhbmdlZC5cbiIKKyN+IG1zZ3N0ciAiSmFtIGRhbGFtIFVUQywgdGlkYWsgZGl1YmFoLlxuIgorCisjfiBtc2dpZCAiJXM6IGZvdW5kICVzc3dhcCB2JWQgc2lnbmF0dXJlIHN0cmluZyBmb3IgJWQgS2lCIFBBR0VfU0laRVxuIgorI34gbXNnc3RyICIlczogZGl0ZW11a2FuIHRhbmRhICVzc3dhcCB2JWQgdW50dWsgJWQgS2lCIFBBR0VfU0laRVxuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiBsYWJlbCBvbmx5IHdpdGggdjEgc3dhcCBhcmVhXG4iCisjfiBtc2dzdHIgIiVzOiBlcnJvcjogaGFueWEgbGFiZWwgZGVuZ2FuIG1lbmdndW5ha2FuIHN3YXAgYXJlYSB2ZXJzaSB2MVxuIgorCisjfiBtc2dpZCAiZmF0YWw6IGZpcnN0IHBhZ2UgdW5yZWFkYWJsZSIKKyN+IG1zZ3N0ciAiZmF0YWw6IHBhZ2UgcGVydGFtYSB0aWRhayBkYXBhdCBkaWJhY2EiCisKKyN+IG1zZ2lkICIiCisjfiAiJXM6IERldmljZSAnJXMnIGNvbnRhaW5zIGEgdmFsaWQgU3VuIGRpc2tsYWJlbC5cbiIKKyN+ICJUaGlzIHByb2JhYmx5IG1lYW5zIGNyZWF0aW5nIHYwIHN3YXAgd291bGQgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyN+ICJObyBzd2FwIHdhcyBjcmVhdGVkLiBJZiB5b3UgcmVhbGx5IHdhbnQgdG8gY3JlYXRlIHYwIHN3YXAgb24gdGhhdCAiCisjfiAiZGV2aWNlLFxuIgorI34gInVzZSB0aGUgLWYgb3B0aW9uIHRvIGZvcmNlIGl0LlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6IFBlcmFuZ2thdCAnJXMnIG1lbWlsaWtpIHNlYnVhaCBkaXNrbGFiZWwgU3VuIHlhbmcgdmFsaWQuXG4iCisjfiAiSW5pIG11bmdraW4gYmVyYXJ0aSBtZW1idWF0IHN3YXAgdmVyc2kgMCBha2FuIG1lbmdoYW5jdXJrYW4gdGFiZWwgIgorI34gInBhcnRpc2kgXG4iCisjfiAiYW5kYSwgU3dhcCB0aWRhayBkaWJ1YXQuIEppa2EgYW5kYSBiZW5hciAtIGJlbmFyIGluZ2luIG1lbWJ1YXQgc3dhcCB2MCAiCisjfiAiZGkgXG4iCisjfiAicGVyYW5na2F0IGl0dSwgZ3VuYWthbiBwaWxpaGFuIC1mIHVudHVrIG1lbWFrc2FueWEuXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiB0aWRhayBkYXBhdCBtZW1wZXJvbGVoIGRpcmVrdG9yaSBzYWF0IGluaSAtICVzXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGNoZGlyIHRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICJuYW1laTogdGlkYWsgZGFwYXQgY2hkaXIga2UgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IGNoZGlyIHRvIHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiB0aWRhayBkYXBhdCBjaGRpciBrZSByb290IVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBzdGF0IHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiB0aWRhayBkYXBhdCBtZW1wZXJvbGVoIHN0YXRpc3RpayByb290IVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGJ1ZiBvdmVyZmxvd1xuIgorI34gbXNnc3RyICJuYW1laTogYnVmIG92ZXJmbG93XG4iCisKKyN+IG1zZ2lkICIgPyBjb3VsZCBub3QgY2hkaXIgaW50byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAiID8gdGlkYWsgZGFwYXQgY2hkaXIga2UgZGFsYW0gJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IG1hc2FsYWggZGFsYW0gbWVtYmFjYSBzeW1saW5rICVzIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAiICAqKiogRVhDRUVERUQgVU5JWCBMSU1JVCBPRiBTWU1MSU5LUyAqKipcbiIKKyN+IG1zZ3N0ciAiICAqKiogTUVMRVdBVEkgQkFUQVMgSlVNTEFIIFNZTUxJTktTIERJIFVOSVggKioqXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5rbm93biBmaWxlIHR5cGUgMCUwNm8gb24gZmlsZSAlc1xuIgorI34gbXNnc3RyICJuYW1laTogdGlwZSBmaWxlIHRpZGFrIGRpa2V0YWh1aSAwJTA2byBkYWxhbSBmaWxlICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ29pbmcgdG8gbW91bnQgJXMgYnkgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGFrYW4gbWVtb3VudCAlcyBvbGVoICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogbm8gTEFCRUw9LCBubyBVVUlEPSwgZ29pbmcgdG8gbW91bnQgJXMgYnkgcGF0aFxuIgorI34gbXNnc3RyICJtb3VudDogbm8gTEFCRUw9LCBubyBVVUlEPSwgYWthbiBtZW1vdW50ICVzIGRlbmdhbiBqYWx1clxuIgorCisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczogVGlkYWsgZGFwYXQgbWVsYWt1a2FuIGZvcms6ICVzXG4iCisKKyN+IG1zZ2lkICIlczogd2FpdHBpZDogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IHdhaXRwaWQ6ICVzXG4iCisKKyN+IG1zZ2lkICIlczogY2Fubm90IHN0YXQgJXM6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiB0aWRhayBkYXBhdCBtZW1wZXJvbGVoIHN0YXRpc3RpayAlczogJXNcbiIKKworI34gbXNnaWQgImNvdWxkIG5vdCB1bW91bnQgJXMgLSB0cnlpbmcgJXMgaW5zdGVhZFxuIgorI34gbXNnc3RyICJ0aWRhayBkYXBhdCB1bW91bnQgJXMgLSBtZW5jb2JhICVzIHNlYmFsaWtueWFcbiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorI34gbXNnc3RyICJgJXMnOiBiYWQgZGlyZWN0b3J5OiAnLicgdGlkYWsgeWFuZyBwZXJ0YW1hXG4iCisKKyN+IG1zZ2lkICJgJXMnOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorI34gbXNnc3RyICJgJXMnOiBkaXJla3RvcmkgYnVydWs6ICcuLicgdGlkYWsgeWFuZyBrZWR1YVxuIgorCisjfiBtc2dpZCAiY2FsbGluZyBvcGVuX3R0eVxuIgorI34gbXNnc3RyICJtZW1hbmdnaWwgb3Blbl90dHlcbiIKKworI34gbXNnaWQgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKyN+IG1zZ3N0ciAibWVtYW5nZ2lsIHRlcm1pb19pbml0XG4iCisKKyN+IG1zZ2lkICJ3cml0aW5nIGluaXQgc3RyaW5nXG4iCisjfiBtc2dzdHIgIm1lbnVsaXMgaW5pdCBzdHJpbmdcbiIKKworI34gbXNnaWQgImJlZm9yZSBhdXRvYmF1ZFxuIgorI34gbXNnc3RyICJzZWJlbHVtIGF1dG9iYXVkXG4iCisKKyN+IG1zZ2lkICJ3YWl0aW5nIGZvciBjci1sZlxuIgorI34gbXNnc3RyICJtZW51bmdndSB1bnR1ayBjci1sZlxuIgorCisjfiBtc2dpZCAicmVhZGluZyBsb2dpbiBuYW1lXG4iCisjfiBtc2dzdHIgIm1lbWJhY2EgbmFtYSBsb2dpblxuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAibG9vcCBzZXRlbGFoIGdldG9wdFxuIgorCisjfiBtc2dpZCAiZXhpdGluZyBwYXJzZWFyZ3NcbiIKKyN+IG1zZ3N0ciAia2VsdWFyIGRhcmkgcGFyc2VhcmdzXG4iCisKKyN+IG1zZ2lkICJlbnRlcmVkIHBhcnNlX3NwZWVkc1xuIgorI34gbXNnc3RyICJtZW1hc3VraSBwYXJzZV9zcGVlZHNcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VzcGVlZHNcbiIKKyN+IG1zZ3N0ciAia2VsdWFyIGRhcmkgcGFyc2VzcGVlZHNcbiIKKworI34gbXNnaWQgIm9wZW4oMilcbiIKKyN+IG1zZ3N0ciAib3BlbigyKVxuIgorCisjfiBtc2dpZCAiZHVwaW5nXG4iCisjfiBtc2dzdHIgImR1cGluZ1xuIgorCisjfiBtc2dpZCAidGVybV9pbyAyXG4iCisjfiBtc2dzdHIgInRlcm1faW8gMlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgZXJyb3IuIgorI34gbXNnc3RyICJQYXNzd29yZCBlcnJvci4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxsc1xuIgorI34gbXNnc3RyICJQZXJpbmdhdGFuOiBcIiVzXCIgdGlkYWsgdGVyZGFmdGFyIGRhbGFtIC9ldGMvc2hlbGxzXG4iCisKKyN+IG1zZ2lkICJDYW4ndCByZWFkICVzLCBleGl0aW5nLiIKKyN+IG1zZ3N0ciAiVGlkYWsgZGFwYXQgbWVtYmFjYSAlcywga2VsdWFyLiIKKworI34gbXNnaWQgInRpbWVvdXQgPSAlZCwgcXVpZXQgPSAlZCwgcmVib290ID0gJWRcbiIKKyN+IG1zZ3N0ciAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorCisjfiBtc2dpZCAiY291bGRuJ3QgcmVhZCAlcywgYW5kIGNhbm5vdCBpb2N0bCBkdW1wXG4iCisjfiBtc2dzdHIgInRpZGFrIGRhcGF0IG1lbWJhY2EgJXMsIGRhbiB0aWRhayBkYXBhdCBtZWxha3VrYW4gaW9jdGwgZHVtcFxuIgorCisjfiBtc2dpZCAiLCBvZmZzZXQgJWxsZCIKKyN+IG1zZ3N0ciAiLCBvZmZzZXQgJWxsZCIKKworI34gbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZGV2aWNlIC9kZXYvbG9vcCMiCisjfiBtc2dzdHIgIiVzOiB0aWRhayBkYXBhdCBtZW5lbXVrYW4gcGVyYW5na2F0IGFwYXB1biAvZGV2L2xvb3AjIgorCisjfiBtc2dpZCAibW91bnQ6IGJhY2tncm91bmRpbmcgXCIlc1wiXG4iCisjfiBtc2dzdHIgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdpdmluZyB1cCBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG1lbnllcmFoIFwiJXNcIlxuIgorCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgJXMgWy12XSBbLXAgcHJpb3JpdHldIHNwZWNpYWx8TEFCRUw9dm9sdW1lX25hbWUgLi4uXG4iCisjfiAiICAgICAgICVzIFstc11cbiIKKyN+IG1zZ3N0ciAiIgorI34gInBlbmdndW5hYW46ICVzIFstaFZdXG4iCisjfiAiICAgICAgICAgICAgJXMgLWEgWy1lXSBbLXZdXG4iCisjfiAiICAgICAgICAgICAgJXMgWy12XSBbLXAgcHJpb3JpdHldIHNwZWNpYWx8TEFCRUw9dm9sdW1lX25hbWUgLi4uXG4iCisjfiAiICAgICAgICAgICAgJXMgWy1zXVxuIgorCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gInBlbmdndW5hYW46ICVzIFstaFZdXG4iCisjfiAiICAgICAgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3QgY2Fub25pY2FsaXplICVzOiAlc1xuIgorI34gbXNnc3RyICIlczogdGlkYWsgZGFwYXQgbWVtYnVrYSAlczogJXNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6IHJlbmljZSBwcmlvcml0eSBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSB1c2VycyBdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJwZW5nZ3VuYWFuOiByZW5pY2UgcHJpb3JpdHkgWyBbIC1wIF0gcGlkcyBdIFsgWyAtZyBdIHBncnBzIF0gWyBbIC11IF0gIgorI34gInBlbmdndW5hIF1cbiIKKworI34gbXNnaWQgIlVua25vd24gb3B0aW9uIGAlYycgaWdub3JlZCIKKyN+IG1zZ3N0ciAiJXM6IHBpbGloYW4gdGlkYWsgZGlrZXRhaHVpIFwiLSVjXCJcbiIKKworI34gbXNnaWQgIiIKKyN+ICJFeGNlZWRlZCBNQVhFTlRSSUVTLiAgUmFpc2UgdGhpcyB2YWx1ZSBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICAiCisjfiAiRXhpdGluZy5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIk1lbGViaWhpIE1BWEVOVFJJRVMuIE5haWtrYW4gbmlsYWkgaW5pIGRhbGFtIG1rY3JhbWZzLmMgZGFuIHJlY29tcGlsZS4gIgorI34gIktlbHVhci5cbiIKKworI34gbXNnaWQgIkFzc3VtaW5nIHBhZ2VzIG9mIHNpemUgJWQgKG5vdCAlZClcbiIKKyN+IG1zZ3N0ciAiTWVuZ2FzdW1zaWthbiB1a3VyYW4gcGFnZSAlZCAoYnVrYW4gJWQpXG4iCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZvdW5kIGEgJXMlcyVzXG4iCisjfiBtc2dzdHIgIkF1dG9jb25maWd1cmFzaSBtZW5lbXVrYW4gc2VidWFoICVzJXMlc1xuIgorCisjfiBtc2dpZCAiIgorI34gIkRyaXZlIHR5cGVcbiIKKyN+ICIgICA/ICAgYXV0byBjb25maWd1cmVcbiIKKyN+ICIgICAwICAgY3VzdG9tICh3aXRoIGhhcmR3YXJlIGRldGVjdGVkIGRlZmF1bHRzKSIKKyN+IG1zZ3N0ciAiIgorI34gIlRpcGUgRHJpdmVcbiIKKyN+ICIgICA/ICAgYXV0byBjb25maWd1cmVcbiIKKyN+ICIgICAwICAgY3VzdG9tIChkZW5nYW4gaGFyZHdhcmUgdGVyZGV0ZWtzaSBkZWZhdWx0cykiCisKKyN+IG1zZ2lkICJTZWxlY3QgdHlwZSAoPyBmb3IgYXV0bywgMCBmb3IgY3VzdG9tKTogIgorI34gbXNnc3RyICJQaWxpaCB0aXBlICg/IHVudHVrIGF1dG8sIDAgdW50dWsgY3VzdG9tKTogIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmYWlsZWQuXG4iCisjfiBtc2dzdHIgIkF1dG9jb25maWd1cmUgZ2FnYWwuXG4iCisKKyN+IG1zZ2lkICJBbHRlcm5hdGUgY3lsaW5kZXJzIgorI34gbXNnc3RyICJDeWxpbmRlciBhbHRlcm5hdGl2ZSIKKworI34gbXNnaWQgIlBoeXNpY2FsIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiQ3lsaW5kZXIgUGh5c2ljYWwiCisKKyN+IG1zZ2lkICJZb3UgbWF5IGNoYW5nZSBhbGwgdGhlIGRpc2sgcGFyYW1zIGZyb20gdGhlIHggbWVudSIKKyN+IG1zZ3N0ciAiQW5kYSBib2xlaCBtZW5ndWJhaCBzZWx1cnVoIHBhcmFtZXRlciBkaXNrIGRhcmkgeCBtZW51IgorCisjfiBtc2dpZCAiMyw1XCIgZmxvcHB5IgorI34gbXNnc3RyICIzLDVcIiBmbG9wcHkiCisKKyN+IG1zZ2lkICJMaW51eCBjdXN0b20iCisjfiBtc2dzdHIgIkxpbnV4IGN1c3RvbSIKKworI34gbXNnaWQgIiVzIGZyb20gdXRpbC1saW51eC0lc1xuIgorI34gbXNnc3RyICIlcyBkYXJpIHV0aWwtbGludXgtJXNcbiIKKworI34gbXNnaWQgIiVzIGZyb20gJXMlc1xuIgorI34gbXNnc3RyICIlcyBkYXJpICVzJXNcbiIKKworI34gbXNnaWQgIiVzOiBlcnJvcjogdGhlIGxhYmVsICVzIG9jY3VycyBvbiBib3RoICVzIGFuZCAlc1xuIgorI34gbXNnc3RyICIlczogZXJyb3I6IGxhYmVsICVzIHRlcmphZGkgZGkga2VkdWEgJXMgZGFuICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiJXM6IGNvdWxkIG5vdCBvcGVuICVzLCBzbyBVVUlEIGFuZCBMQUJFTCBjb252ZXJzaW9uIGNhbm5vdCBiZSBkb25lLlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6IHRpZGFrIGRhcGF0IG1lbWJ1a2EgJXMsIGphZGkgVVVJRCBkYW4gTEFCRUwgY29udmVyc2kgdGlkYWsgZGFwYXQgIgorI34gImRpbGFrdWthbi5cbiIKKworI34gbXNnaWQgIiVzOiBiYWQgVVVJRCIKKyN+IG1zZ3N0ciAiJXM6IGJhZCBVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IGZhaWxlZCB3aXRoIG5mcyBtb3VudCB2ZXJzaW9uIDQsIHRyeWluZyAzLi5cbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGdhZ2FsIGRlbmdhbiBuZnMgbW91bnQgdmVyc2kgNCwgbWVuY29iYSB2ZXJzaSAzLi5cbiIKKworI34gbXNnaWQgIm1vdW50OiBtb3VudGluZyAlc1xuIgorI34gbXNnc3RyICJtb3VudDogbWVtb3VudCAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGNhbm5vdCBmaW5kICVzIGluICVzIgorI34gbXNnc3RyICJtb3VudDogdGlkYWsgZGFwYXQgbWVuZW11a2FuICVzIGRhbGFtICVzIgorCisjfiBtc2dpZCAibW91bnQ6IGVycm9yIHdoaWxlIGd1ZXNzaW5nIGZpbGVzeXN0ZW0gdHlwZVxuIgorI34gbXNnc3RyICJtb3VudDogZXJyb3Iga2V0aWthIG1lbmViYWsgdGlwZSBmaWxlc3lzdGVtXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBob3N0OmRpciBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogYXJndW1lbnQgaG9zdDpkaXIgdGVybGFsdSBwYW5qYW5nXG4iCisKKyN+IG1zZ2lkICJtb3VudDogd2FybmluZzogbXVsdGlwbGUgaG9zdG5hbWVzIG5vdCBzdXBwb3J0ZWRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHBlcmluZ2F0YW46IG11bHRpcGxlIGhvc3RuYW1lIHRpZGFrIGRpbGF5YW5pXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZGlyZWN0b3J5IHRvIG1vdW50IG5vdCBpbiBob3N0OmRpciBmb3JtYXRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGRpcmVrdG9yaSB1bnR1ayBtb3VudCB0aWRhayBkYWxhbSBmb3JtYXQgaG9zdDpkaXJcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHRpZGFrIGRhcGF0IG1lbXBlcm9sZWggYWxhbWF0IHVudHVrICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG1lbXBlcm9sZWggaHAtaF9sZW5ndGggeWFuZyBidXJ1a1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgb3B0aW9uIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiBwaWxpaGFuIGFyZ3VtZW50IHRlcmxhbHUgcGFuamFuZ1xuIgorCisjfiBtc2dpZCAiV2FybmluZzogVW5yZWNvZ25pemVkIHByb3RvPSBvcHRpb24uXG4iCisjfiBtc2dzdHIgIlBlcmluZ2F0YW46IHBpbGloYW4gcHJvdG89IHRpZGFrIGRpa2VuYWwuXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBPcHRpb24gbmFtbGVuIGlzIG5vdCBzdXBwb3J0ZWQuXG4iCisjfiBtc2dzdHIgIlBlcmluZ2F0YW46IFBpbGloYW4gbmFtbGVuIHRpZGFrIGRpbGF5YW5pLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgcGFyYW1ldGVyOiAlcz0lZFxuIgorI34gbXNnc3RyICJwYXJhbWV0ZXIgdW50dWsgbmZzIG1vdW50IHRpZGFrIGRpa2V0YWh1aTogJXM9JWRcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IG9wdGlvbiBub2xvY2sgaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAiUGVyaW5nYXRhbjogcGlsaWhhbiB1bnR1ayBub2xvY2sgdGlkYWsgZGlsYXlhbmkuXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBtb3VudCBvcHRpb246ICVzJXNcbiIKKyN+IG1zZ3N0ciAicGlsaWhhbiB1bnR1ayBtb3VudCBuZnMgdGlkYWsgZGlrZXRhaHVpOiAlcyVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGg/XG4iCisjfiBtc2dzdHIgIm1vdW50OiBtZW1wZXJvbGVoIGhwLT5oX2xlbmd0aCB5YW5nIGJ1cnVrP1xuIgorCisjfiBtc2dpZCAibmZzIGJpbmRyZXN2cG9ydCIKKyN+IG1zZ3N0ciAibmZzIGJpbmRyZXN2cG9ydCIKKworI34gbXNnaWQgIm5mcyBzZXJ2ZXIgcmVwb3J0ZWQgc2VydmljZSB1bmF2YWlsYWJsZSIKKyN+IG1zZ3N0ciAibmZzIHNlcnZlciBtZWxhcG9ya2FuIGxheWFuYW4gdGlkYWsgYWt0aWYiCisKKyN+IG1zZ2lkICJ1c2VkIHBvcnRtYXBwZXIgdG8gZmluZCBORlMgcG9ydFxuIgorI34gbXNnc3RyICJtZW5nZ3VuYWthbiBwb3J0bWFwcGVyIHVudHVrIG1lbmNhcmkgcG9ydCBkYXJpIE5GU1xuIgorCisjfiBtc2dpZCAidXNpbmcgcG9ydCAlZCBmb3IgbmZzIGRlYW1vblxuIgorI34gbXNnc3RyICJtZW5nZ3VuYWthbiBwb3J0ICVkIHVudHVrIG5mcyBkYWVtb25cbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIHN0YXR1cyByZXR1cm4gdmFsdWU6ICVkIgorI34gbXNnc3RyICJuaWxhaSBzdGF0dXMgYmFsaWsgbmZzIHRpZGFrIGRpa2V0YWh1aTogJWQiCisKKyN+IG1zZ2lkICJob3N0OiAlcywgZGlyZWN0b3J5OiAlc1xuIgorI34gbXNnc3RyICJob3N0OiAlcywgZGlyZWt0b3JpOiAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiB0aWRhayBkYXBhdCBtZW1wZXJvbGVoIHBlcmFuZ2thdCB1bnR1ayAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBnb3QgYmFkIGhvc3RwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJ1bW91bnQ6IG1lbmRhcGF0a2FuIGhvc3RwLT5oX2xlbmd0aCB0aWRhayBiYWlrXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWJhZCBwYXRoIGxlbmd0aFxuIgorI34gbXNnc3RyICIlczogY3JhbWZzIHRpZGFrIHZhbGlkIC0tIHBhbmphbmcgcGF0aCBidXJ1a1xuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS13cm9uZyBtYWdpY1xuIgorI34gbXNnc3RyICIlczogY3JhbWZzIHRpZGFrIHZhbGlkLS1tYWdpYyBzYWxhaFxuIgorCisjfiBtc2dpZCAiJXM6IHdhcm5pbmctLWZpbGUgbGVuZ3RoIHRvbyBsb25nLCBwYWRkZWQgaW1hZ2U/XG4iCisjfiBtc2dzdHIgIiVzOiBwZXJpbmdhdGFuLS1wYW5qYW5nIGZpbGUgdGVybGFsdSBwYW5qYW5nLCBwYWRkZWQgaW1hZ2U/XG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWNyYyBlcnJvclxuIgorI34gbXNnc3RyICIlczogY3JhbWZzIHRpZGFrIHZhbGlkLS1jcmMgc2FsYWhcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHN1cGVyYmxvY2tcbiIKKyN+IG1zZ3N0ciAiJXM6IGNyYW1mcyB0aWRhayB2YWxpZC0tc3VwZXJibG9jayBidXJ1a1xuIgorCisjfiBtc2dpZCAiZmxvY2s6IHVua25vd24gb3B0aW9uLCBhYm9ydGluZy5cbiIKKyN+IG1zZ3N0ciAiZmxvY2s6IHBpbGloYW4gdGlkYWsgZGlrZXRhaHVpLCBkaWJhdGFsa2FuLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlIGZsb2NrIFstLXNoYXJlZF0gWy0tdGltZW91dD1zZWNvbmRzXSBmaWxlbmFtZSBjb21tYW5kIHthcmcgYXJnLi4ufVxuIgorI34gbXNnc3RyICIiCisjfiAiUGVuZ2d1bmFhbjogZmxvY2sgWy0tc2hhcmVkXSBbLS10aW1lb3V0PWRldGlrXSBmaWxlbmFtZSBjb21tYW5kIHthcmcgIgorI34gImFyZy4uLn1cbiIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2luc2VydC1oZWFkZXIuc2luIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vaW5zZXJ0LWhlYWRlci5zaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI2ZGUwMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2luc2VydC1oZWFkZXIuc2luCkBAIC0wLDAgKzEsMjMgQEAKKyMgU2VkIHNjcmlwdCB0aGF0IGluc2VydHMgdGhlIGZpbGUgY2FsbGVkIEhFQURFUiBiZWZvcmUgdGhlIGhlYWRlciBlbnRyeS4KKyMKKyMgQXQgZWFjaCBvY2N1cnJlbmNlIG9mIGEgbGluZSBzdGFydGluZyB3aXRoICJtc2dpZCAiLCB3ZSBleGVjdXRlIHRoZSBmb2xsb3dpbmcKKyMgY29tbWFuZHMuIEF0IHRoZSBmaXJzdCBvY2N1cnJlbmNlLCBpbnNlcnQgdGhlIGZpbGUuIEF0IHRoZSBmb2xsb3dpbmcKKyMgb2NjdXJyZW5jZXMsIGRvIG5vdGhpbmcuIFRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgdGhlIGZvbGxvd2luZworIyBvY2N1cnJlbmNlcyBpcyBhY2hpZXZlZCBieSBsb29raW5nIGF0IHRoZSBob2xkIHNwYWNlLgorL15tc2dpZCAveworeAorIyBUZXN0IGlmIHRoZSBob2xkIHNwYWNlIGlzIGVtcHR5Lgorcy9tL20vCit0YQorIyBZZXMgaXQgd2FzIGVtcHR5LiBGaXJzdCBvY2N1cnJlbmNlLiBSZWFkIHRoZSBmaWxlLgorciBIRUFERVIKKyMgT3V0cHV0IHRoZSBmaWxlJ3MgY29udGVudHMgYnkgcmVhZGluZyB0aGUgbmV4dCBsaW5lLiBCdXQgZG9uJ3QgbG9zZSB0aGUKKyMgY3VycmVudCBsaW5lIHdoaWxlIGRvaW5nIHRoaXMuCitnCitOCitiYgorOmEKKyMgVGhlIGhvbGQgc3BhY2Ugd2FzIG5vbmVtcHR5LiBGb2xsb3dpbmcgb2NjdXJyZW5jZXMuIERvIG5vdGhpbmcuCit4Cis6YgorfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vaXQuZ21vIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vaXQuZ21vCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMDg0ODUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9pdC5nbW8KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vaXQucG8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9pdC5wbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTRmY2I5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vaXQucG8KQEAgLTAsMCArMSwxMjQ4MSBAQAorIyBJdGFsaWFuIG1lc3NhZ2VzIGZvciB1dGlsLWxpbnV4LW5nLgorIyBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDUsIDIwMDYsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UuCisjIE1hcmNvIENvbG9tYm8gPG0uY29sb21ib0BlZC5hYy51az4sIDIwMDUsIDIwMDYsIDIwMDguCisjIEJldGggUG93ZWxsIDxicG93ZWxsQHR1cmJvbGludXguY29tPiwgMjAwMC4KKyMKKyMgcGFydGl0aW9uIHRhYmxlOiB0YXZvbGEgZGVsbGUgcGFydGl6aW9uaT8gdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pPworbXNnaWQgIiIKK21zZ3N0ciAiIgorIlByb2plY3QtSWQtVmVyc2lvbjogdXRpbC1saW51eC1uZyAyLjEzLjEtcmMxXG4iCisiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPlxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEwLTAzLTIyIDA5OjM3KzAxMDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDA4LTA0LTE4IDEzOjQ0KzAxMDBcbiIKKyJMYXN0LVRyYW5zbGF0b3I6IE1hcmNvIENvbG9tYm8gPG0uY29sb21ib0BlZC5hYy51az5cbiIKKyJMYW5ndWFnZS1UZWFtOiBJdGFsaWFuIDx0cEBsaXN0cy5saW51eC5pdD5cbiIKKyJNSU1FLVZlcnNpb246IDEuMFxuIgorIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFxuIgorIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjYzCittc2dpZCAic2V0IHJlYWQtb25seSIKK21zZ3N0ciAiaW1wb3N0YSBzb2xhIGxldHR1cmEiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3MAorbXNnaWQgInNldCByZWFkLXdyaXRlIgorbXNnc3RyICJpbXBvc3RhIGxldHR1cmEtc2NyaXR0dXJhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzYKK21zZ2lkICJnZXQgcmVhZC1vbmx5IgorbXNnc3RyICJ2aXN1YWxpenphIHNvbGEgbGV0dHVyYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCisjLCBmdXp6eQorbXNnaWQgImdldCBsb2dpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgInZpc3VhbGl6emEgbGEgZGltZW5zaW9uZSBkZWwgc2V0dG9yZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4CisjLCBmdXp6eQorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJ2aXN1YWxpenphIGxhIGRpbWVuc2lvbmUgZGVsIHNldHRvcmUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo5NAorbXNnaWQgImdldCBtaW5pbXVtIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKK21zZ2lkICJnZXQgb3B0aW1hbCBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2CisjLCBmdXp6eQorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICJkaW1lbnNpb25lIGlub2RlIG5vbiBjb3JyZXR0YSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExMgorIywgZnV6enkKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgIlNldHRvcmkgc3VwcGxlbWVudGFyaSBwZXIgY2lsaW5kcm8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTgKK21zZ2lkICJnZXQgYmxvY2tzaXplIgorbXNnc3RyICJ2aXN1YWxpenphIGxhIGRpbWVuc2lvbmUgZGVsIGJsb2NjbyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEyNQorbXNnaWQgInNldCBibG9ja3NpemUiCittc2dzdHIgImltcG9zdGEgbGEgZGltZW5zaW9uZSBkZWwgYmxvY2NvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgIiIKKworIyBGSVhNRQorIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICJ2aXN1YWxpenphIGxhIGRpbWVuc2lvbmUgaW4gYnl0ZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgImltcG9zdGEgcmVhZGFoZWFkIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAidmlzdWFsaXp6YSByZWFkYWhlYWQiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgImltcG9zdGEgZmlsZSBzeXN0ZW0gcmVhZGFoZWFkIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTYzCittc2dpZCAiZ2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJ2aXN1YWxpenphIGZpbGUgc3lzdGVtIHJlYWRhaGVhZCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgInNjYXJpY2EgaSBidWZmZXIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJyaWxlZ2dpIGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAiVXNvOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgLS1yZXBvcnQgW2RldmljZXNdXG4iCittc2dzdHIgIiAgJXMgLS1yZXBvcnQgW2Rpc3Bvc2l0aXZpXVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgWy12fC1xXSBjb21tYW5kcyBkZXZpY2VzXG4iCittc2dzdHIgIiAgJXMgWy12fC1xXSBjb21hbmRpIGRpc3Bvc2l0aXZpXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIgorbXNnc3RyICJDb21hbmRpIGRpc3BvbmliaWxpOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3Cittc2dpZCAiZ2V0IHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9ycyIKK21zZ3N0ciAidmlzdWFsaXp6YSBsYSBkaW1lbnNpb25lIGluIHNldHRvcmkgZGEgNTEyIGJ5dGUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiJXM6IENvbWFuZG8gc2Nvbm9zY2l1dG86ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgcmljaGllZGUgdW4gYXJnb21lbnRvXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZmFpbGVkLlxuIgorbXNnc3RyICIlcyBub24gcml1c2NpdG8uXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3VjY2VlZGVkLlxuIgorbXNnc3RyICIlcyByaXVzY2l0by5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgYXByaXJlICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBlcnJvcmUgZGkgaW9jdGwgc3UgJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIFN0YXJ0U2VjICAgICAgICAgICAgU2l6ZSAgIERldmljZVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOlxuIgorbXNnc3RyICJVc286XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Tk9URTogZWx2dHVuZSBvbmx5IHdvcmtzIHdpdGggMi40IGtlcm5lbHNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInBhcnNlIGVycm9yXG4iCittc2dzdHIgImVycm9yZSBkaSBwb3NpemlvbmFtZW50byIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJsb2NrZGV2aWNlLCB1c2UgLWggZm9yIGhlbHBcbiIKK21zZ3N0ciAiJXMgbm9uIMOoIHVuIGRpc3Bvc2l0aXZvIGEgYmxvY2NoaSBvIHVuIGZpbGVcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJlbHZ0dW5lIGlzIG9ubHkgdXNlZnVsIG9uIG9sZGVyIGtlcm5lbHM7XG4iCisiZm9yIDIuNiB1c2UgSU8gc2NoZWR1bGVyIHN5c2ZzIHR1bmFibGVzIGluc3RlYWQuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIkZvcm1hdHRhemlvbmUgaW4gY29yc28uLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NDkgZGlzay11dGlscy9mZGZvcm1hdC5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImRvbmVcbiIKK21zZ3N0ciAiZmF0dG9cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlZlcmlmeWluZyAuLi4gIgorbXNnc3RyICJWZXJpZmljYSBpbiBjb3Jzby4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MQorbXNnaWQgIlJlYWQ6ICIKK21zZ3N0ciAiTGVnZ2VyZTogIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmxlbSByZWFkaW5nIGN5bGluZGVyICVkLCBleHBlY3RlZCAlZCwgcmVhZCAlZFxuIgorbXNnc3RyICJQcm9ibGVtYSBkdXJhbnRlIGxhIGxldHR1cmEgZGVsIGNpbGluZHJvICVkLCAlZCBwcmV2aXN0bywgbGV0dHVyYSAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImJhZCBkYXRhIGluIGN5bCAlZFxuIgorIkNvbnRpbnVpbmcgLi4uICIKK21zZ3N0ciAiIgorImRhdGkgZGFubmVnZ2lhdGkgbmVsIGNpbCAlZFxuIgorIkNvbnRpbnVhIC4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo5NgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtbiBdIGRldmljZVxuIgorbXNnc3RyICJVc286ICAlcyBbIC1uIF0gZGlzcG9zaXRpdm9cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjExOCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg0CisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxODEgZGlzay11dGlscy9ta2ZzLmJmcy5jOjExNCBkaXNrLXV0aWxzL21rZnMuYzo1MgorIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjgxMiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzIKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDg3IG1pc2MtdXRpbHMvZGRhdGUuYzoxNzkgbWlzYy11dGlscy9yZW5hbWUuYzo3OQorIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNDcgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICglcylcbiIKK21zZ3N0ciAiJXMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6IG5vbiBzaSB0cmF0dGEgZGkgdW4gZGlzcG9zaXRpdm8gYSBibG9jY2hpXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDIKK21zZ2lkICJDb3VsZCBub3QgZGV0ZXJtaW5lIGN1cnJlbnQgZm9ybWF0IHR5cGUiCittc2dzdHIgIkltcG9zc2liaWxlIGRldGVybWluYXJlIGlsIHRpcG8gZGkgZm9ybWF0byBhdHR1YWxlIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgImZhY2NpYSAlcywgJWQgdHJhY2NlLCAlZCBzZWMvdHJhY2NpYS4gQ2FwYWNpdMOgIHRvdGFsZSAlZCBrQi5cbiIKKworIyBRdWVzdG8gbWVzc2FnZ2lvIGUgcXVlbGxvIHN1Y2Nlc3Npdm8gY29uY29yZGFubyBjb24gImZhY2NpYSIgZGVsIG1lc3NhZ2dpbyAKKyMgc29wcmEuCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiRG91YmxlIgorbXNnc3RyICJkb3BwaWEiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJTaW5nbGUiCittc2dzdHIgInNpbmdvbGEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisiVXNvOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgbW9zdHJhIHF1ZXN0byBhaXV0b1xuIgorIiAteCBkaXIgICAgIGVzdHJhaSBuZWxsYSBkaXJlY3RvcnkgZGlyXG4iCisiIC12ICAgICAgICAgc2lpIHBpw7kgcHJvbGlzc29cbiIKKyIgZmlsZSAgICAgICBmaWxlIGRhIHZlcmlmaWNhcmVcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICIoRmlsZSBzdWNjZXNzaXZvOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib3BlbiBmYWlsZWQ6ICVzIgorbXNnc3RyICJvcGVucHR5IG5vbiByaXVzY2l0YVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBmYWlsZWQ6IHVuYWJsZSB0byBkZXRlcm1pbmUgZGV2aWNlIHNpemU6ICVzIgorbXNnc3RyICIiCisiJXM6IGF0dGVuemlvbmUgLS0gaW1wb3NzaWJpbGUgZGV0ZXJtaW5hcmUgbGEgZGltZW5zaW9uZSBkZWwgZmlsZXN5c3RlbSBcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIlcyBub24gw6ggdW4gZGlzcG9zaXRpdm8gYSBibG9jY2hpIG8gdW4gZmlsZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKKyMsIGZ1enp5Cittc2dpZCAiZmlsZSBsZW5ndGggdG9vIHNob3J0IgorbXNnc3RyICIlczogY3JhbWZzIG5vbiB2YWxpZG8gLS0gbHVuZ2hlenphIGRlbCBmaWxlIHRyb3BwbyBjb3J0YVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg5IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxOTcKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNTggZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCBmYWlsZWQ6ICVzIgorbXNnc3RyICIoRmlsZSBzdWNjZXNzaXZvOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2CisjLCBmdXp6eQorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIkltbWV0dGVyZSBpbCB0aXBvIGRpIGZpbGVzeXN0ZW06ICIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3VwZXJibG9jayBzaXplICglZCkgdG9vIHNtYWxsIgorbXNnc3RyICJOdW1lcm8gZGkgc2V0dG9yaSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyMworbXNnaWQgInplcm8gZmlsZSBjb3VudCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIGV4dGVuZHMgcGFzdCBlbmQgb2YgZmlsZXN5c3RlbVxuIgorbXNnc3RyICJBdHRlbnppb25lOiBsYSBwYXJ0aXppb25lICVzIHNpIGVzdGVuZGUgZG9wbyBsYSBmaW5lIGRlbCBkaXNjb1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBvbGQgY3JhbWZzIGZvcm1hdFxuIgorbXNnc3RyICIlczogYXR0ZW56aW9uZSAtLSB2ZWNjaGlhIGltbWFnaW5lIGNyYW1mcywgbmVzc3VuIENSQ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjcyIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozMzkKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NzcgbG9naW4tdXRpbHMvY2hmbi5jOjUyOSBsb2dpbi11dGlscy9jaHNoLmM6NDM5CisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE0MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzIxCittc2dpZCAibWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jIG5vbiByaXVzY2l0YSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI5NworIywgZnV6enkKK21zZ2lkICJjcmMgZXJyb3IiCittc2dzdHIgIiwgZXJyb3JlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY0CisjLCBmdXp6eQorbXNnaWQgInJvb3QgaW5vZGUgaXMgbm90IGRpcmVjdG9yeSIKK21zZ3N0ciAibCdpbm9kZSByYWRpY2Ugbm9uIMOoIHVuYSBkaXJlY3RvcnkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHJvb3Qgb2Zmc2V0ICglbHUpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozODcKK21zZ2lkICJkYXRhIGJsb2NrIHRvbyBsYXJnZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzkxCisjLCBjLWZvcm1hdAorbXNnaWQgImRlY29tcHJlc3Npb24gZXJyb3IgJXAoJWQpOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIGhvbGUgYXQgJWxkICglemQpXG4iCittc2dzdHIgIiAgYnVjbyBpbiAlbGQgKCVkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDIzIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICB1bmNvbXByZXNzaW5nIGJsb2NrIGF0ICVsZCB0byAlbGQgKCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tYmxvY2sgKCVsZCkgYnl0ZXMiCittc2dzdHIgIlN1cGVyYmxvY2NvOiAlZCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGZhaWxlZDogJXMiCittc2dzdHIgIihGaWxlIHN1Y2Nlc3Npdm86ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGNob3duIGZhaWxlZDogJXMiCittc2dzdHIgIm1vdW50IG5vbiByaXVzY2l0byIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibW91bnQgbm9uIHJpdXNjaXRvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ2YWxvcmUgZGkgdGltZW91dCBub24gdmFsaWRvOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJta2RpciBmYWlsZWQ6ICVzIgorbXNnc3RyICIvZGV2OiBjaGRpcigpIG5vbiByaXVzY2l0bzogJW0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTEKK21zZ2lkICJmaWxlbmFtZSBsZW5ndGggaXMgemVybyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTE0Cittc2dpZCAiYmFkIGZpbGVuYW1lIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCisjLCBmdXp6eQorbXNnaWQgImJhZCBpbm9kZSBvZmZzZXQiCittc2dzdHIgImRpbWVuc2lvbmUgaW5vZGUgbm9uIGNvcnJldHRhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTM3Cittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU0MAorbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gc2l6ZSBhbmQgbm9uLXplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzEKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTc0Cittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNpemUgZXJyb3IgaW4gc3ltbGluazogJXMiCittc2dzdHIgIiVzOiBlcnJvcmUgZGkgZGltZW5zaW9uZSBuZWwgY29sbGVnYW1lbnRvIHNpbWJvbGljbyBcIiVzXCJcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJmc3luYyBub24gcml1c2NpdG8gIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWNpYWwgZmlsZSBoYXMgbm9uLXplcm8gb2Zmc2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjI1CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZm8gaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAic29ja2V0IGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvZ3VzIG1vZGU6ICVzICglbykiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAibW91bnQgbm9uIHJpdXNjaXRvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIHN0YXJ0ICglbGQpIDwgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBmaWxlIGRhdGEgb2Zmc2V0IgorbXNnc3RyICJpZCBub24gdmFsaWRvOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzE0CisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBhbGxvY2F0ZSBvdXRidWZmZXIiCittc2dzdHIgIkltcG9zc2liaWxlIGFsbG9jYXJlIGlsIGJ1ZmZlci5cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworIywgZnV6enkKK21zZ2lkICJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiCittc2dzdHIgIiVzOiDDqCBzdGF0byBjb21waWxhdG8gc2VuemEgaWwgc3VwcG9ydG8gcGVyIC14XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1sYXJ2c21mXSAvZGV2L25hbWVcbiIKK21zZ3N0ciAiVXNvOiAlcyBbLWxhcnZzbWZdIC9kZXYvbm9tZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIMOoIG1vbnRhdG8uXHQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyNQorbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byBjb250aW51ZSIKK21zZ3N0ciAiQ29udGludWFyZT8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICJjaGVjayBhYm9ydGVkLlxuIgorbXNnc3RyICJjb250cm9sbG8gaW50ZXJyb3R0by5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzQ4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yIDwgRklSU1RaT05FIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIiBOLiB6b25hIDwgRklSU1RaT05FIG5lbCBmaWxlIGAlcyciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA+PSBaT05FUyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJOLiBab25hID49IFpPTkVTIG5lbCBmaWxlIGAlcyciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozODAKK21zZ2lkICJSZW1vdmUgYmxvY2siCittc2dzdHIgIlJpbXVvdmVyZSBibG9jY28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiRXJyb3JlIGRpIGxldHR1cmE6IHJpY2VyY2EgZGVsIGJsb2NjbyBuZWwgZmlsZSAnJXMnIGltcG9zc2liaWxlXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIkVycm9yZSBkaSBsZXR0dXJhOiBibG9jY28gZGFubmVnZ2lhdG8gbmVsIGZpbGUgJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyJFcnJvcmUgaW50ZXJubzogbmVsIHRlbnRhdGl2byBkaSBzY3JpdmVyZSBpbCBibG9jY28gZGFubmVnZ2lhdG9cbiIKKyJpZ25vcmF0YSBsYSByaWNoaWVzdGEgZGkgc2NyaXR0dXJhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAidGVudGF0aXZvIGZhbGxpdG8gaW4gd3JpdGVfYmxvY2sgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiRXJyb3JlIGRpIHNjcml0dHVyYTogYmxvY2NvIGRhbm5lZ2dpYXRvIG5lbCBmaWxlICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgInJpY2VyY2EgZmFsbGl0YSBpbiB3cml0ZV9zdXBlcl9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgc2NyaXZlcmUgaW4gc3VwZXItYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1NgorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIkltcG9zc2liaWxlIHNjcml2ZXJlIG5lbGxhIG1hcHBhIGRpIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgIkltcG9zc2liaWxlIHNjcml2ZXJlIG5lbGxhIG1hcHBhIGRpIHpvbmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU2MAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgIkltcG9zc2liaWxlIHNjcml2ZXJlIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1ODcKK21zZ2lkICJzZWVrIGZhaWxlZCIKK21zZ3N0ciAicmljZXJjYSBub24gcml1c2NpdGEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5MSBkaXNrLXV0aWxzL21rZnMubWluaXguYzozOTkKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIGJ1ZmZlciBmb3Igc3VwZXJibG9jayIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgYWxsb2NhcmUgaSBidWZmZXIgcGVyIGxlIG1hcHBlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgbGVnZ2VyZSBzdXBlciBibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjEyCittc2dpZCAiYmFkIG1hZ2ljIG51bWJlciBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAibnVtZXJvIG1hZ2ljbyBkYW5uZWdnaWF0byBpbiBzdXBlci1ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE0Cittc2dpZCAiT25seSAxayBibG9ja3Mvem9uZXMgc3VwcG9ydGVkIgorbXNnc3RyICLDiCBzdXBwb3J0YXRvIHNvbGFtZW50ZSAxayBibG9jY2hpL3pvbmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJjYW1wbyBzX2ltYXBfYmxvY2tzIGRhbm5lZ2dpYXRvIGluIHN1cGVyLWJsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiY2FtcG8gc196bWFwX2Jsb2NrcyBkYW5uZWdnaWF0byBpbiBzdXBlci1ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI1Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgbWFwIgorbXNnc3RyICJJbXBvc3NpYmlsZSBhbGxvY2FyZSBpbCBidWZmZXIgcGVyIGxhIG1hcHBhIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjgKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgYWxsb2NhcmUgaWwgYnVmZmVyIHBlciBsYSBtYXBwYSB6b25lIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgIkltcG9zc2liaWxlIGFsbG9jYXJlIGlsIGJ1ZmZlciBwZXIgZ2xpIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzYKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBjb3VudCIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgYWxsb2NhcmUgaWwgYnVmZmVyIHBlciBpbCBjb250ZWdnaW8gaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIkltcG9zc2liaWxlIGFsbG9jYXJlIGlsIGJ1ZmZlciBwZXIgaWwgY29udGVnZ2lvIHpvbmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlIG1hcCIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgbGVnZ2VyZSBsYSBtYXBwYSBpbm9kZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgIkltcG9zc2liaWxlIGxlZ2dlcmUgbGEgbWFwcGEgZGkgem9uYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ1Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGVzIgorbXNnc3RyICJJbXBvc3NpYmlsZSBsZWdnZXJlIGdsaSBpbm9kZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICJBdHRlbnppb25lOiBwcmltYSB6b25hICE9IE5vcm1fZmlyc3R6b25lXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGlub2Rlc1xuIgorbXNnc3RyICJJbm9kZSAlbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgYmxvY2tzXG4iCittc2dzdHIgImJsb2NjaGkgJWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NCBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3RkYXRhem9uZT0lbGQgKCVsZClcbiIKK21zZ3N0ciAiUHJpbWEgem9uYSBkYXRpPSVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmVzaXplPSVkXG4iCittc2dzdHIgIkRpbWVuc2lvbmUgem9uYT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF4c2l6ZT0lbGRcbiIKK21zZ3N0ciAiRGltZW5zaW9uZSBtYXNzaW1hPSVsZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBzdGF0ZT0lZFxuIgorbXNnc3RyICJTdGF0byBkZWwgZmlsZXN5c3RlbT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorImx1bmdoZXp6YW5vbT0lZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzMgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1hcmtlZCB1bnVzZWQsIGJ1dCB1c2VkIGZvciBmaWxlICclcydcbiIKK21zZ3N0ciAiIgorIklub2RlICVkIGNvbnRyYXNzZWduYXRvIG5vbiB1dGlsaXp6YXRvLCBtYSB1dGlsaXp6YXRvIHBlciBpbCBmaWxlICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICJTZWdubyBpbiB1c28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iCittc2dzdHIgIklsIGZpbGUgYCVzJyBoYSBtb2RhbGl0w6AgJTA1b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIkF0dGVuemlvbmU6IGNvbnRlZ2dpbyBpbm9kZSB0cm9wcG8gZ3JhbmRlLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAibCdpbm9kZSByYWRpY2Ugbm9uIMOoIHVuYSBkaXJlY3RvcnkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc4OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgaGFzIGJlZW4gdXNlZCBiZWZvcmUuIE5vdyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJJbCBibG9jY28gw6ggc3RhdG8gdXRpbGl6emF0byBpbiBwcmVjZWRlbnphLiBPcmEgbmVsIGZpbGUgYCVzJyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzkwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU1CisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTAKK21zZ2lkICJDbGVhciIKK21zZ3N0ciAiQ2FuY2VsbGEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgJWQgaW4gZmlsZSBgJXMnIGlzIG1hcmtlZCBub3QgaW4gdXNlLiIKK21zZ3N0ciAiSWwgYmxvY2NvICVkIG5lbCBmaWxlIGAlcycgw6ggbWFyY2F0byBjb21lIG5vbiBpbiB1c28uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiQ29ycmV0dG8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiIgorIkxhIGRpcmVjdG9yeSAnJXMnIGNvbnRpZW5lIHVuIG51bWVybyBpbm9kZSBub24gY29ycmV0dG8gcGVyIGlsIGZpbGUgJyUuKnMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDQKK21zZ2lkICIgUmVtb3ZlIgorbXNnc3RyICIgUmltdW92ZXJlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCittc2dzdHIgIiVzOiBkaXJlY3RvcnkgZGFubmVnZ2lhdGE6ICcuJyBub24gw6ggbGEgcHJpbWFcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCittc2dzdHIgIiVzOiBkaXJlY3RvcnkgZGFubmVnZ2lhdGE6ICcuLicgbm9uIMOoIGxhIHNlY29uZGFcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTE5Cittc2dpZCAiaW50ZXJuYWwgZXJyb3IiCittc2dzdHIgImVycm9yZSBpbnRlcm5vIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTA0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiJXM6IGRpcmVjdG9yeSBkYW5uZWdnaWF0YTogZGltZW5zaW9uZSA8IDMyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTM1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gYmFkX3pvbmUiCittc2dzdHIgInJpY2VyY2EgaW4gYmFkX3pvbmUgbm9uIHJpdXNjaXRhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ1IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbW9kZSBub3QgY2xlYXJlZC4iCittc2dzdHIgIk1vZGFsaXTDoCBkZWxsJ2lub2RlICVkIG5vbiBjYW5jZWxsYXRhLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjA5CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG5vdCB1c2VkLCBtYXJrZWQgdXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiSW5vZGUgJWQgbm9uIHV0aWxpenphdG8sIGlub2RlIGNvbnRyYXNzZWduYXRvIHV0aWxpenphdG8gaW4gYml0bWFwIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiSW5vZGUgJWQgdXRpbGl6emF0bywgaW5vZGUgY29udHJhc3NlZ25hdG8gbm9uIHV0aWxpenphdG8gaW4gYml0bWFwLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICJJbXBvc3RhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJbm9kZSAlZCAobW9kYWxpdMOgID0gJTA3byksIGlfbmxpbmtzPSVkLCBjb250ZWdnaWF0aT0lZC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMgorbXNnaWQgIlNldCBpX25saW5rcyB0byBjb3VudCIKK21zZ3N0ciAiSW1wb3N0YXJlIGlfbmxpbmtzIGRhIGNvbnRlZ2dpYXJlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIKK21zZ3N0ciAiWm9uYSAlZDogY29udHJhc3NlZ25hdGEgaW4gdXNvLCBuZXNzdW4gZmlsZSBsYSB1dGlsaXp6YS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNgorbXNnaWQgIlVubWFyayIKK21zZ3N0ciAiTm9uIGNvbnRyYXNzZWduYXRhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlpvbmEgJWQ6IHV0aWxpenphdGEsIGNvbnRlZ2dpYXRpPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBub3QgaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlpvbmEgJWQ6IG5vbiBpbiB1c28sIGNvbnRlZ2dpYXRpPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODkgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc3CisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzkKK21zZ2lkICJiYWQgaW5vZGUgc2l6ZSIKK21zZ3N0ciAiZGltZW5zaW9uZSBpbm9kZSBub24gY29ycmV0dGEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyOTEKK21zZ2lkICJiYWQgdjIgaW5vZGUgc2l6ZSIKK21zZ3N0ciAiZGltZW5zaW9uZSBpbm9kZSB2MiBub24gY29ycmV0dGEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMTcKK21zZ2lkICJuZWVkIHRlcm1pbmFsIGZvciBpbnRlcmFjdGl2ZSByZXBhaXJzIgorbXNnc3RyICJ0ZXJtaW5hbGUgbmVjZXNzYXJpbyBwZXIgbGUgcmlwYXJhemlvbmkgaW50ZXJhdHRpdmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICclcyc6ICVzIgorbXNnc3RyICJpbXBvc3NpYmlsZSBhcHJpcmUgJyVzJyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBjbGVhbiwgbm8gY2hlY2suXG4iCittc2dzdHIgIiclcycgw6ggY29ycmV0dG8sIG5vbiBjb250cm9sbGFyZS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JjaW5nIGZpbGVzeXN0ZW0gY2hlY2sgb24gJXMuXG4iCittc2dzdHIgIkZvcnphdHVyYSBjb250cm9sbG8gZmlsZXN5c3RlbSBzdSAlcyBpbiBjb3Jzby5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIG9uICVzIGlzIGRpcnR5LCBuZWVkcyBjaGVja2luZy5cbiIKK21zZ3N0ciAiSWwgZmlsZXN5c3RlbSBzdSAlcyDDqCBkYW5uZWdnaWF0bywgY29udHJvbGxvIG5lY2Vzc2FyaW8uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2bGQgaW5vZGVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIiCisiXG4iCisiJTZsZCBpbm9kZSB1dGlsaXp6YXRpICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkIHpvbmUgdXRpbGl6emF0ZSAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmQgZmlsZSByZWdvbGFyaVxuIgorIiU2ZCBkaXJlY3RvcnlcbiIKKyIlNmQgZmlsZSBkaSBkaXNwb3NpdGl2byBhIGNhcmF0dGVyaVxuIgorIiU2ZCBmaWxlIGRpIGRpc3Bvc2l0aXZvIGEgYmxvY2NoaVxuIgorIiU2ZCBjb2xsZWdhbWVudGlcbiIKKyIlNmQgY29sbGVnYW1lbnRpIHNpbWJvbGljaVxuIgorIi0tLS0tLVxuIgorIiU2ZCBmaWxlXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiSUwgRklMRSBTWVNURU0gw4ggU1RBVE8gTU9ESUZJQ0FUT1xuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBvcGVuOiAlc1xuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgYXByaXJlOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNlZWsgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGVycm9yZSBkaSBwb3NpemlvbmFtZW50byBzdSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGVycm9yZSBkaSBsZXR0dXJhIHN1ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3IgY291bnQ6ICVkLCBzZWN0b3Igc2l6ZTogJWRcbiIKK21zZ3N0ciAibnVtZXJvIHNldHRvcmk6ICVkLCBkaW1lbnNpb25lIHNldHRvcmk6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiBlcnJvcmUgZGkgY29tcHJlbnNpb25lIGRlbGwnb3B6aW9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLWltYWdlXG4iCittc2dzdHIgIlVzbzogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy12XSBbLU4gbnItb2YtaW5vZGVzXSBbLVYgdm9sdW1lLW5hbWVdXG4iCisiICAgICAgIFstRiBmc25hbWVdIGRldmljZSBbYmxvY2stY291bnRdXG4iCittc2dzdHIgIiIKKyJVc286ICVzIFstdl0gWy1OIG4tZGktaW5vZGVdIFstViBub21lLXZvbHVtZV1cbiIKKyIgICAgICAgIFstRiBub21lLWZpbGVzc3lzdGVtXSBkaXNwb3NpdGl2byBbbnVtZXJvLWJsb2NjaGldXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAibm9tZSBkaSB2b2x1bWUgdHJvcHBvIGx1bmdvIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgIm5vbWUgZGVsIGZpbGVzeXN0ZW0gdHJvcHBvIGx1bmdvIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IGRldmljZSAlcyIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgZXNlZ3VpcmUgc3RhdCBzdWwgZGlzcG9zaXRpdm8gJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIG5vbiDDqCB1biBkaXNwb3NpdGl2byBzcGVjaWFsZSBhIGJsb2NjaGkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNzEgc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIgorbXNnc3RyICJpbXBvc3NpYmlsZSBhcHJpcmUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBzaXplIG9mICVzIgorbXNnc3RyICJpbXBvc3NpYmlsZSBvdHRlbmVyZSBsYSBkaW1lbnNpb25lIGRpICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIKK21zZ3N0ciAiYXJnb21lbnRvIGRlaSBibG9jY2hpIHRyb3BwbyBsYXJnbywgaWwgbWFzc2ltbyDDqCAlbHUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMDIKK21zZ2lkICJ0b28gbWFueSBpbm9kZXMgLSBtYXggaXMgNTEyIgorbXNnc3RyICJ0cm9wcGkgaW5vZGUgLSBpbCBtYXNzaW1vIMOoIDUxMiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAic3BhemlvIGluc3VmZmljaWVudGUsIHNvbm8gbmVjZXNzYXJpIGFsbWVubyAlbHUgYmxvY2NoaSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICJEaXNwb3NpdGl2bzogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNAorIywgYy1mb3JtYXQKK21zZ2lkICJWb2x1bWU6IDwlLTZzPlxuIgorbXNnc3RyICJWb2x1bWU6IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIk5vbWUgZmlsZXN5c3RlbTogPCUtNnM+XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tTaXplOiAlZFxuIgorbXNnc3RyICJEaW1lbnNpb25pIGJsb2NjbzogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJJbm9kZTogJWQgKGluIDEgYmxvY2NvKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAlbGxkIGJsb2NrcylcbiIKK21zZ3N0ciAiSW5vZGU6ICVkIChpbiAlbGQgYmxvY2NoaSlcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tzOiAlbGxkXG4iCittc2dzdHIgIkJsb2NjaGk6ICVsZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlIGVuZDogJWQsIERhdGEgZW5kOiAlZFxuIgorbXNnc3RyICJGaW5lIGlub2RlOiAlZCwgZmluZSBkYXRpOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM5Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzdXBlcmJsb2NrIgorbXNnc3RyICJlcnJvcmUgZHVyYW50ZSBsYSBzY3JpdHR1cmEgZGVsIHN1cGVyYmxvY2NvIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjU5Cittc2dpZCAiZXJyb3Igd3JpdGluZyByb290IGlub2RlIgorbXNnc3RyICJlcnJvcmUgZHVyYW50ZSBsYSBzY3JpdHR1cmEgZGVsbCdpbm9kZSByYWRpY2UiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjQKK21zZ2lkICJlcnJvciB3cml0aW5nIGlub2RlIgorbXNnc3RyICJlcnJvcmUgZHVyYW50ZSBsYSBzY3JpdHR1cmEgZGVsbCdpbm9kZSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NworbXNnaWQgInNlZWsgZXJyb3IiCittc2dzdHIgImVycm9yZSBkaSBwb3NpemlvbmFtZW50byIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3MworbXNnaWQgImVycm9yIHdyaXRpbmcgLiBlbnRyeSIKK21zZ3N0ciAiZXJyb3JlIGR1cmFudGUgbGEgc2NyaXR0dXJhIGRpIFwiLlwiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6Mjc3Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAiZXJyb3JlIGR1cmFudGUgbGEgc2NyaXR0dXJhIGRpIFwiLi5cIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjbG9zaW5nICVzIgorbXNnc3RyICJlcnJvcmUgZHVyYW50ZSBsYSBjaGl1c3VyYSBkaSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICJVc286IG1rZnMgWy1WXSBbLXQgdGlwb2ZzXSBbb3B6aW9uaS1mc10gZGlzcG9zaXRpdm8gW2RpbWVuc2lvbmVdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjg4IGRpc2stdXRpbHMvbWtmcy5jOjk2IGZkaXNrL2NmZGlzay5jOjM1MworIzogZ2V0b3B0L2dldG9wdC5jOjg2IGdldG9wdC9nZXRvcHQuYzo5NiBsb2dpbi11dGlscy93YWxsLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPdXQgb2YgbWVtb3J5IVxuIgorbXNnc3RyICIlczogTWVtb3JpYSBlc2F1cml0YSFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZnMgKCVzKVxuIgorbXNnc3RyICJta2ZzICglcylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaF0gWy12XSBbLWIgYmxrc2l6ZV0gWy1lIGVkaXRpb25dIFstTiBlbmRpYW5dIFstaSBmaWxlXSBbLW4gIgorIm5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAtdiAgICAgICAgIGJlIHZlcmJvc2VcbiIKKyIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgKG5vbi16ZXJvIGV4aXQgc3RhdHVzKVxuIgorIiAtYiBibGtzaXplIHVzZSB0aGlzIGJsb2Nrc2l6ZSwgbXVzdCBlcXVhbCBwYWdlIHNpemVcbiIKKyIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgY3JhbWZzIGVuZGlhbm5lc3MgKGJpZ3xsaXR0bGV8aG9zdCksIGRlZmF1bHQgaG9zdFxuIgorIiAtaSBmaWxlICAgIGluc2VydCBhIGZpbGUgaW1hZ2UgaW50byB0aGUgZmlsZXN5c3RlbSAocmVxdWlyZXMgPj0gMi40LjApXG4iCisiIC1uIG5hbWUgICAgc2V0IG5hbWUgb2YgY3JhbWZzIGZpbGVzeXN0ZW1cbiIKKyIgLXAgICAgICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIgorIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisiIC16ICAgICAgICAgbWFrZSBleHBsaWNpdCBob2xlcyAocmVxdWlyZXMgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3NlZFxuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVmVyeSBsb25nICglenUgYnl0ZXMpIGZpbGVuYW1lIGAlcycgZm91bmQuXG4iCisiIFBsZWFzZSBpbmNyZWFzZSBNQVhfSU5QVVRfTkFNRUxFTiBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICBFeGl0aW5nLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo0NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlsZXN5c3RlbSB0b28gYmlnLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiZmlsZXN5c3RlbSB0cm9wcG8gZ3JhbmRlLiBVc2NpdGEuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQUlFRUU6IGJsb2NrIFwiY29tcHJlc3NlZFwiIHRvID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2QgYnl0ZSlcdCVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiSW5jbHVzbzogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGlyZWN0b3J5IGRhdGE6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJEYXRpIGRpcmVjdG9yeTogJWQgYnl0ZVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTA4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFdmVyeXRoaW5nOiAlemQga2lsb2J5dGVzXG4iCittc2dzdHIgIlR1dHRvOiAlZCBraWxvYnl0ZVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTdXBlciBibG9jazogJXpkIGJ5dGVzXG4iCittc2dzdHIgIlN1cGVyYmxvY2NvOiAlZCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICJDUkM6ICV4XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UgYWxsb2NhdGVkIGZvciBST00gaW1hZ2UgKCVsbGQgYWxsb2NhdGVkLCAlenUgdXNlZClcbiIKK21zZ3N0ciAiIgorInNwYXppbyBpbnN1ZmZpY2llbnRlIGFsbG9jYXRvIHBlciBsJ2ltbWFnaW5lIFJPTSAoJWxsZCBhbGxvY2F0aSwgJWQgdXNhdGkpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiU2NyaXR0dXJhIGRlbGwnaW1tYWdpbmUgUk9NIG5vbiByaXVzY2l0YSAoJWQgJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZW5hbWVzIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMuXG4iCittc2dzdHIgImF0dGVuemlvbmU6IG5vbWkgZGkgZmlsZSB0cm9uY2F0aSBhIDI1NSBieXRlLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZXJyb3JzLlxuIgorbXNnc3RyICJhdHRlbnppb25lOiBhbGN1bmkgZmlsZSBzb25vIHN0YXRpIGlnbm9yYXRpIGEgY2F1c2EgZGkgZXJyb3JpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTUyCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgc2l6ZXMgdHJ1bmNhdGVkIHRvICVsdU1CIChtaW51cyAxIGJ5dGUpLlxuIgorbXNnc3RyICJhdHRlbnppb25lOiBkaW1lbnNpb25pIGRlaSBmaWxlIHRyb25jYXRlIGEgJWx1TUIgKG1lbm8gMSBieXRlKS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogdWlkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisiYXR0ZW56aW9uZTogdWlkIHRyb25jYXRpIGEgJXUgYml0LiAoUXVlc3RvIHB1w7IgZXNzZXJlIHVuIHByb2JsZW1hIGRpICIKKyJzaWN1cmV6emEpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorImF0dGVuemlvbmU6IGdpZCB0cm9uY2F0aSBhICV1IGJpdC4gKFF1ZXN0byBwdcOyIGVzc2VyZSB1biBwcm9ibGVtYSBkaSAiCisic2ljdXJlenphKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorIkFUVEVOWklPTkU6IG51bWVyaSBkaSBkZXZpY2UgdHJvbmNhdGkgYSAldSBiaXQuIFF1ZXN0byBzaWduaWZpY2EgcXVhc2lcbiIKKyJjZXJ0YW1lbnRlIGNoZSBhbGN1bmkgZmlsZSBkaSBkZXZpY2Ugc2FyYW5ubyBzYmFnbGlhdGkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIlVzbzogJXMgWy1jIHwgLWwgbm9tZWZpbGVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9jY2hpXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBhIGZpbGVzeXN0ZW0gaGVyZSEiCittc2dzdHIgIiVzIMOoIG1vbnRhdGE7IHF1aSBub24gdmVycsOgIGNyZWF0byB1biBmaWxlc3lzdGVtISIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTg4Cittc2dpZCAic2VlayB0byBib290IGJsb2NrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgIiIKKyJ0ZW50YXRpdm8gZGkgZWZmZXR0dWFyZSBpbCBib290IGRlbCBibG9jY28gaW4gd3JpdGVfdGFibGVzIG5vbiByaXVzY2l0byIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkwCittc2dpZCAidW5hYmxlIHRvIGNsZWFyIGJvb3Qgc2VjdG9yIgorbXNnc3RyICJpbXBvc3NpYmlsZSBjYW5jZWxsYXJlIGlsIHNldHRvcmUgZGkgYm9vdCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkyCittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJyaWNlcmNhIGluIHdyaXRlX3RhYmxlcyBub24gcml1c2NpdGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgImltcG9zc2liaWxlIHNjcml2ZXJlIG5lbGxhIG1hcHBhIGRlZ2xpIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTgKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgImltcG9zc2liaWxlIHNjcml2ZXJlIG5lbGxhIG1hcHBhIGRlbGxlIHpvbmUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwMAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgImltcG9zc2liaWxlIHNjcml2ZXJlIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgInNjcml0dHVyYSBpbiB3cml0ZV9ibG9jayBub24gcml1c2NpdGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIxNyBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyOTEKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM0MAorbXNnaWQgInRvbyBtYW55IGJhZCBibG9ja3MiCittc2dzdHIgInRyb3BwaSBibG9jY2hpIGRhbm5lZ2dpYXRpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMjUKK21zZ2lkICJub3QgZW5vdWdoIGdvb2QgYmxvY2tzIgorbXNnc3RyICJudW1lcm8gaW5zdWZmaWNpZW50ZSBkaSBibG9jY2hpIGNvcnJldHRpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDAKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVycyBmb3IgbWFwcyIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgYWxsb2NhcmUgaSBidWZmZXIgcGVyIGxlIG1hcHBlIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgImltcG9zc2liaWxlIGFsbG9jYXJlIGlsIGJ1ZmZlciBwZXIgZ2xpIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk1heHNpemU9JWxkXG4iCisiXG4iCittc2dzdHIgIiIKKyJEaW1lbnNpb25lIG1heD0lbGRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDY5Cittc2dpZCAic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIgorbXNnc3RyICJyaWNlcmNhIG5vbiByaXVzY2l0YSBkdXJhbnRlIGlsIGNvbnRyb2xsbyBkZWkgYmxvY2NoaSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICJWYWxvcmkgc3RyYW5pIGluIGRvX2NoZWNrOiBwcm9iYWJpbG1lbnRlIHNvbm8gcHJlc2VudGkgZGVpIGJ1Z1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MDggZGlzay11dGlscy9ta3N3YXAuYzozMTUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBjaGVja19ibG9ja3MiCittc2dzdHIgInJpY2VyY2EgaW4gY2hlY2tfYmxvY2tzIG5vbiByaXVzY2l0YSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTE3Cittc2dpZCAiYmFkIGJsb2NrcyBiZWZvcmUgZGF0YS1hcmVhOiBjYW5ub3QgbWFrZSBmcyIKK21zZ3N0ciAiYmxvY2NoaSBkYW5uZWdnaWF0aSBwcmltYSBkZWxsJ2FyZWEgZGF0aTogaW1wb3NzaWJpbGUgY3JlYXJlIGZzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWQgYmxvY2NoaSBkYW5uZWdnaWF0aVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAidW4gYmxvY2NvIGRhbm5lZ2dpYXRvXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzNQorbXNnaWQgImNhbid0IG9wZW4gZmlsZSBvZiBiYWQgYmxvY2tzIgorbXNnc3RyICJpbXBvc3NpYmlsZSBhcHJpcmUgaWwgZmlsZSBkZWkgYmxvY2NoaSBkYW5uZWdnaWF0aSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQwCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJJbXBvc3NpYmlsZSBsZWdnZXJlIGwndW5pdMOgIGRpc2NvIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgImVycm9yZSBzdHJ0b2w6IG51bWVybyBkaSBibG9jY2hpIG5vbiBzcGVjaWZpY2F0byIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBzdGF0ICVzIgorbXNnc3RyICJpbXBvc3NpYmlsZSBmYXJlIHN0YXQgZGkgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2VjdG9yIHNpemUgZm9yICVzIgorbXNnc3RyICJpbXBvc3NpYmlsZSBvdHRlbmVyZSBsYSBkaW1lbnNpb25lIGRpICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgImltcG9zc2liaWxlIG90dGVuZXJlIGxhIGRpbWVuc2lvbmUgZGkgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJ3aWxsIG5vdCB0cnkgdG8gbWFrZSBmaWxlc3lzdGVtIG9uICclcyciCittc2dzdHIgIm5vbiBzaSB0ZW50ZXLDoCBkaSBjcmVhcmUgdW4gZmlsZXN5c3RlbSBzdSAnJXMnIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjUKKyMsIGZ1enp5Cittc2dpZCAibnVtYmVyIG9mIGJsb2NrcyB0b28gc21hbGwiCittc2dzdHIgIk51bWVybyBkaSBzZXR0b3JpIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkXG4iCittc2dzdHIgImRpbWVuc2lvbmUgcGFnaW5hICVkIHNwZWNpZmljYXRhIGRhbGwndXRlbnRlIG5vbiBjb3JyZXR0YVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWQsIGluc3RlYWQgb2YgdGhlIHN5c3RlbSB2YWx1ZSAlZFxuIgorbXNnc3RyICIiCisiVXRpbGl6em8gbGEgZGltZW5zaW9uZSBwYWdpbmEgJWQgc3BlY2lmaWNhdGEgZGFsbCd1dGVudGUsIGFsIHBvc3RvIGRlbCAiCisidmFsb3JlIGRpIHNpc3RlbWEgJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHN3YXAgaGVhZGVyIHNpemUsIG5vIGxhYmVsIHdyaXR0ZW4uXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFiZWwgd2FzIHRydW5jYXRlZC5cbiIKK21zZ3N0ciAiTCdldGljaGV0dGEgw6ggc3RhdGEgdHJvbmNhdGEuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGxhYmVsLCAiCittc2dzdHIgIm5lc3N1bmEgZXRpY2hldHRhLCAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHV1aWRcbiIKK21zZ3N0ciAibmVzc3VuIHV1aWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyODMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKyJVc286ICVzIFstY10gWy12MHwtdjFdIFstcERJTVBBR0lOQV0gWy1MIGV0aWNoZXR0YV0gL2Rldi9ub21lIFtibG9jY2hpXVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI5NworbXNnaWQgInRvbyBtYW55IGJhZCBwYWdlcyIKK21zZ3N0ciAidHJvcHBlIHBhZ2luZSBkYW5uZWdnaWF0ZSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMTAgbWlzYy11dGlscy9sb29rLmM6MTgyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExNzkKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMTYgdGV4dC11dGlscy9tb3JlLmM6MjAyNworbXNnaWQgIk91dCBvZiBtZW1vcnkiCittc2dzdHIgIk1lbW9yaWEgZXNhdXJpdGEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICJ1bmEgcGFnaW5hIGRhbm5lZ2dpYXRhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSBiYWQgcGFnZXNcbiIKK21zZ3N0ciAiJWx1IHBhZ2luZSBkYW5uZWdnaWF0ZVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQwMiBkaXNrLXV0aWxzL21rc3dhcC5jOjQzOSBkaXNrLXV0aWxzL21rc3dhcC5jOjY1OQorbXNnaWQgInVuYWJsZSB0byByZXdpbmQgc3dhcC1kZXZpY2UiCittc2dzdHIgImltcG9zc2liaWxlIHJpYXZ2b2xnZXJlIGlsIGRpc3Bvc2l0aXZvIHN3YXAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBuZXcgbGliYmxraWQgcHJvYmUiCittc2dzdHIgImltcG9zc2liaWxlIGFsbG9jYXJlIGlsIGJ1ZmZlciBwZXIgZ2xpIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgImltcG9zc2liaWxlIGNhbmNlbGxhcmUgaWwgc2V0dG9yZSBkaSBib290IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHdhcm5pbmc6IGRvbid0IGVyYXNlIGJvb3RiaXRzIHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoJXMgcGFydGl0aW9uIHRhYmxlIGRldGVjdGVkKS4gIgorbXNnc3RyICIgICBwICAgc3RhbXBhIGRlbGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSBCU0QiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiICAgcyAgIHZpc3VhbGl6emF6aW9uZSBkZWwgZGlza2xhYmVsIGNvbXBsZXRvIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoY29tcGlsZWQgd2l0aG91dCBsaWJibGtpZCkuICIKK21zZ3N0ciAiICAgcyAgIHZpc3VhbGl6emF6aW9uZSBkZWwgZGlza2xhYmVsIGNvbXBsZXRvIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjUyNAorIywgYy1mb3JtYXQKK21zZ2lkICIlMSRzOiB3YXJuaW5nOiBpZ25vcmUgLVUgKFVVSURzIGFyZSB1bnN1cHBvcnRlZCBieSAlMSRzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZG9lcyBub3Qgc3VwcG9ydCBzd2Fwc3BhY2UgdmVyc2lvbiAlZC5cbiIKK21zZ3N0ciAiJXM6IGVycm9yZTogdmVyc2lvbmUgc2Nvbm9zY2l1dGEgJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyJFcnJvcmUgZHVyYW50ZSBsYSBjaGl1c3VyYSBkZWwgZmlsZVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IE5vd2hlcmUgdG8gc2V0IHVwIHN3YXAgb24/XG4iCittc2dzdHIgIiVzOiBlcnJvcmU6IG5vbiDDqCBwb3NzaWJpbGUgaW1wb3N0YXJlIHN3YXAgaW4gbmVzc3VuYSBwb3NpemlvbmU/XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHNpemUgJWxsdSBLaUIgaXMgbGFyZ2VyIHRoYW4gZGV2aWNlIHNpemUgJWxsdSBLaUJcbiIKK21zZ3N0ciAiIgorIiVzOiBlcnJvcmU6IGxhIGRpbWVuc2lvbmUgJWx1IMOoIG1hZ2dpb3JlIGRpIHF1ZWxsYSBkZWwgZGlzcG9zaXRpdm8gJWx1XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHN3YXAgYXJlYSBuZWVkcyB0byBiZSBhdCBsZWFzdCAlbGQgS2lCXG4iCittc2dzdHIgIiVzOiBlcnJvcmU6IGwnYXJlYSBkaSBzd2FwIGRldmUgZXF1aXZhbGVyZSBhbG1lbm8gYSAlbGRrQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBhdHRlbnppb25lOiB0cm9uY2FtZW50byBhcmVhIHN3YXAgYSAlbGRrQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHdpbGwgbm90IHRyeSB0byBtYWtlIHN3YXBkZXZpY2Ugb24gJyVzJ1xuIgorbXNnc3RyICIlczogZXJyb3JlOiBOb24gc2kgY2VyY2hlcsOgIGRpIGNyZWFyZSB1bm8gc3dhcGRldmljZSBzdSAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBzd2Fwc3BhY2UuXG4iCittc2dzdHIgIiVzOiBlcnJvcmU6ICVzIMOoIG1vbnRhdGE7IHF1aSBub24gdmVycsOgIGNyZWF0byB1bm8gc3BhemlvIGRpIHN3YXAuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjQ4Cittc2dpZCAiVW5hYmxlIHRvIHNldCB1cCBzd2FwLXNwYWNlOiB1bnJlYWRhYmxlIgorbXNnc3RyICJJbXBvc3NpYmlsZSBpbXBvc3RhcmUgbG8gc3BhemlvLXN3YXA6IG5vbiBsZWdnaWJpbGUiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIHVwIHN3YXBzcGFjZSB2ZXJzaW9uIDEsIHNpemUgPSAlbGx1IEtpQlxuIgorbXNnc3RyICJJbXBvc3RhemlvbmUgc3BhemlvIGRpIHN3YXAgdmVyc2lvbmUgJWQsIGRpbWVuc2lvbmUgPSAlbGx1IGtCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byB3cml0ZSBzaWduYXR1cmUgcGFnZTogJXMiCittc2dzdHIgImltcG9zc2liaWxlIHNjcml2ZXJlIHN1bGxhIHBhZ2luYSBkaSBmaXJtYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NzMKK21zZ2lkICJmc3luYyBmYWlsZWQiCittc2dzdHIgImZzeW5jIG5vbiByaXVzY2l0byAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIG9idGFpbiBzZWxpbnV4IGZpbGUgbGFiZWw6ICVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTAKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgImltcG9zc2liaWxlIGZhcmUgbWF0Y2hwYXRoY29uKCkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBuZXcgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJpbXBvc3NpYmlsZSBjcmVhcmUgdW4gbnVvdm8gY29udGVzdG8gc2VsaW51eCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTUKK21zZ2lkICJjb3VsZG4ndCBjb21wdXRlIHNlbGludXggY29udGV4dCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjcwMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIHJlbGFiZWwgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgIiVzOiBpbXBvc3NpYmlsZSByaW5vbWluYXJlICVzIGluICVzOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiICAlcyAiCittc2dzdHIgIlVzbzpcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJJbXBvc3NpYmlsZSBmYXJlIGlsIGxvY2sgZGVsIGZpbGUgZGkgbG9jayAlczogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICJBdHRlbnppb25lOiAlcyBub24gw6ggdW4gZGlzcG9zaXRpdm8gYSBibG9jY2hpXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBtYXN0ZXIgcmF3IGRldmljZSAnIgorbXNnc3RyICJpbXBvc3NpYmlsZSBlc2VndWlyZSBzdGF0IHN1bCBkaXNwb3NpdGl2byAlcyIKKworIzogZGlzay11dGlscy9yYXcuYzoyMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgcmF3IGRldmljZSAnJXMnICglcylcbiIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgZXNlZ3VpcmUgc3RhdCBzdWwgZGlzcG9zaXRpdm8gJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIvZGV2LyVzOiBub24gw6ggdW4gZGlzcG9zaXRpdm8gZGkgY2FyYXR0ZXJpIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgcmF3IGRldlxuIgorbXNnc3RyICIlcyBub24gw6ggdW4gZGlzcG9zaXRpdm8gc3BlY2lhbGUgYSBibG9jY2hpIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBxdWVyeWluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBzZXR0aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICJlcnJvcmUgZmVybWFuZG8gaWwgc2Vydml6aW8gXCIlc1wiIgorCisjOiBmZGlzay9jZmRpc2suYzozNzggZmRpc2svY2ZkaXNrLmM6MjA4MworbXNnaWQgIlVudXNhYmxlIgorbXNnc3RyICJJbnV0aWxpenphYmlsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgwIGZkaXNrL2NmZGlzay5jOjIwODUKK21zZ2lkICJGcmVlIFNwYWNlIgorbXNnc3RyICJTcGF6aW8gZGlzcG9uaWJpbGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MworbXNnaWQgIkxpbnV4IGV4dDIiCittc2dzdHIgIkxpbnV4IGV4dDIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NQorbXNnaWQgIkxpbnV4IGV4dDMiCittc2dzdHIgIkxpbnV4IGV4dDMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NworbXNnaWQgIkxpbnV4IFhGUyIKK21zZ3N0ciAiTGludXggWEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozODkKK21zZ2lkICJMaW51eCBKRlMiCittc2dzdHIgIkxpbnV4IEpGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkxCittc2dpZCAiTGludXggUmVpc2VyRlMiCittc2dzdHIgIkxpbnV4IFJlaXNlckZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NworbXNnaWQgIkxpbnV4IgorbXNnc3RyICJMaW51eCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk2Cittc2dpZCAiT1MvMiBIUEZTIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5OAorbXNnaWQgIk9TLzIgSUZTIgorbXNnc3RyICJPUy8yIElGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDAyCittc2dpZCAiTlRGUyIKK21zZ3N0ciAiTlRGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaGFzIGJlZW4gY2hhbmdlZC5cbiIKK21zZ3N0ciAiSWwgZGlzY28gw6ggc3RhdG8gY2FtYmlhdG8uXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIlJpYXZ2aWFyZSBpbCBzaXN0ZW1hIHBlciBhc3NpY3VyYXJzaSBjaGUgbGEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIHNpYSAiCisiYWdnaW9ybmF0YSBjb3JyZXR0YW1lbnRlLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55XG4iCisiRE9TIDYueCBwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBjZmRpc2sgbWFudWFsXG4iCisicGFnZSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkFUVEVOWklPTkU6IGluIGNhc28gZGkgY3JlYXppb25lIG8gbW9kaWZpY2EgZGkgcXVhbHNpYXNpXG4iCisicGFydGl6aW9uZSBET1MgNi54LCBjb25zdWx0YXJlIGxhIHBhZ2luYSBkZWwgbWFudWFsZSBjZmRpc2tcbiIKKyJwZXIgdWx0ZXJpb3JpIGluZm9ybWF6aW9uaS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIkVSUk9SRSBJUlJFVkVSU0lCSUxFIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTcKK21zZ2lkICJQcmVzcyBhbnkga2V5IHRvIGV4aXQgY2ZkaXNrIgorbXNnc3RyICJQcmVtZXJlIHF1YWxzaWFzaSB0YXN0byBwZXIgdXNjaXJlIGRhIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY0IGZkaXNrL2NmZGlzay5jOjU3MgorbXNnaWQgIkNhbm5vdCBzZWVrIG9uIGRpc2sgZHJpdmUiCittc2dzdHIgIlJpY2VyY2Egc3VsbCd1bml0w6AgZGlzY28gaW1wb3NzaWJpbGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIkltcG9zc2liaWxlIGxlZ2dlcmUgbCd1bml0w6AgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjU3NAorbXNnaWQgIkNhbm5vdCB3cml0ZSBkaXNrIGRyaXZlIgorbXNnc3RyICJJbXBvc3NpYmlsZSBzY3JpdmVyZSBzdWxsJ3VuaXTDoCBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTE3Cittc2dpZCAiVG9vIG1hbnkgcGFydGl0aW9ucyIKK21zZ3N0ciAiVHJvcHBlIHBhcnRpemlvbmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJMYSBwYXJ0aXppb25lIGluaXppYSBwcmltYSBkZWwgc2V0dG9yZSAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIkxhIHBhcnRpemlvbmUgdGVybWluYSBwcmltYSBkZWwgc2V0dG9yZSAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJMYSBwYXJ0aXppb25lIGluaXppYSBkb3BvIGxhIGZpbmUgZGVsIGRpc2NvIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiTGEgcGFydGl6aW9uZSB0ZXJtaW5hIGRvcG8gbGEgZmluZSBkZWwgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjk0MgorbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGluIHRoZSBmaW5hbCBwYXJ0aWFsIGN5bGluZGVyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2NgorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBub3QgaW4gZGlzayBvcmRlciIKK21zZ3N0ciAibGUgcGFydGl6aW9uaSBsb2dpY2hlIG5vbiBzb25vIG5lbGwnb3JkaW5lIGRlbCBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgInNvdnJhcHBvc2l6aW9uZSBkZWxsZSBwYXJ0aXppb25pIGxvZ2ljaGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJzb3ZyYXBwb3NpemlvbmUgZGVsbGUgcGFydGl6aW9uaSBsb2dpY2hlIGFtcGxpYXRlIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICIiCisiISEhISBFcnJvcmUgaW50ZXJubyBkdXJhbnRlIGxhIGNyZWF6aW9uZSBkaSB1bid1bml0w6AgbG9naWNhIGNvbiBwYXJ0aXppb25lICIKKyJub24gZXN0ZXNhICEhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMTQgZmRpc2svY2ZkaXNrLmM6MTAyNgorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxvZ2ljYWwgZHJpdmUgaGVyZSAtLSB3b3VsZCBjcmVhdGUgdHdvIGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiIKKyJJbXBvc3NpYmlsZSBjcmVhcmUgdW4ndW5pdMOgIGxvZ2ljYSBpbiBxdWVzdG8gY2FzbyAtIHNpIGNyZWVyZWJiZXJvIGR1ZSAiCisicGFydGl6aW9uaSBlc3Rlc2UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjExNjgKK21zZ2lkICJNZW51IGl0ZW0gdG9vIGxvbmcuIE1lbnUgbWF5IGxvb2sgb2RkLiIKK21zZ3N0ciAiVm9jZSBkaSBtZW7DuSB0cm9wcG8gbHVuZ2EuIElsIG1lbnUgcHXDsiBhcHBhcmlyZSBzdHJhbm8uIgorCisjOiBmZGlzay9jZmRpc2suYzoxMjI0CisjLCBmdXp6eQorbXNnaWQgIk1lbnUgd2l0aG91dCBkaXJlY3Rpb24uIERlZmF1bHRpbmcgdG8gaG9yaXpvbnRhbC4iCittc2dzdHIgIk1lbnUgc2VuemEgZGlyZXppb25lLiDDiCBwcmVkZWZpbml0YSBxdWVsbGEgb3JpenpvbnRhbGUuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzU2Cittc2dpZCAiSWxsZWdhbCBrZXkiCittc2dzdHIgIlRhc3RvIG5vbiB2YWxpZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNzkKK21zZ2lkICJQcmVzcyBhIGtleSB0byBjb250aW51ZSIKK21zZ3N0ciAiUHJlbWVyZSB1biB0YXN0byBwZXIgY29udGludWFyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNiBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODYKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJQcmltYXJ5IgorbXNnc3RyICJQcmltYXJpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNgorbXNnaWQgIkNyZWF0ZSBhIG5ldyBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiQ3JlYXJlIHVuYSBudW92YSBwYXJ0aXppb25lIHByaW1hcmlhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgIkxvZ2ljYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNworbXNnaWQgIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiQ3JlYXJlIHVuYSBudW92YSBwYXJ0aXppb25lIGxvZ2ljYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzIGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJDYW5jZWwiCittc2dzdHIgIkFubnVsbGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MworbXNnaWQgIkRvbid0IGNyZWF0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiTm9uIGNyZWFyZSB1bmEgcGFydGl6aW9uZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NAorbXNnaWQgIiEhISBJbnRlcm5hbCBlcnJvciAhISEiCittc2dzdHIgIiEhISBFcnJvcmUgaW50ZXJubyAhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiRGltZW5zaW9uZSAoaW4gTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIkluaXppbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgYmVnaW5uaW5nIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkFnZ2l1bmdlcmUgbGEgcGFydGl6aW9uZSBhbGwnaW5pemlvIGRlbGxvIHNwYXppbyBkaXNwb25pYmlsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkVuZCIKK21zZ3N0ciAiRmluZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkFnZ2l1bmdlcmUgbGEgcGFydGl6aW9uZSBhbGxhIGZpbmUgZGVsbG8gc3BhemlvIGRpc3BvbmliaWxlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTAwCittc2dpZCAiTm8gcm9vbSB0byBjcmVhdGUgdGhlIGV4dGVuZGVkIHBhcnRpdGlvbiIKK21zZ3N0ciAiTm9uIGMnw6ggc3BhemlvIHBlciBjcmVhcmUgdW5hIHBhcnRpemlvbmUgZXN0ZXNhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc0Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJOZXNzdW5hIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3OAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiTmVzc3VuYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkuIFNpIGluaXppYSBjb24gdW5hIHRhYmVsbGEgdnVvdGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlNlZ25hdHVyYSBkYW5uZWdnaWF0YSBuZWxsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTIKK21zZ2lkICJVbmtub3duIHBhcnRpdGlvbiB0YWJsZSB0eXBlIgorbXNnc3RyICJUaXBvIGRpIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSBzY29ub3NjaXV0byIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5NAorbXNnaWQgIkRvIHlvdSB3aXNoIHRvIHN0YXJ0IHdpdGggYSB6ZXJvIHRhYmxlIFt5L05dID8iCittc2dzdHIgIlNpIHZ1b2xlIGluaXppYXJlIGNvbiB1bmEgdGFiZWxsYSB2dW90YSBbeS9OXT8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NDIKK21zZ2lkICJZb3Ugc3BlY2lmaWVkIG1vcmUgY3lsaW5kZXJzIHRoYW4gZml0IG9uIGRpc2siCittc2dzdHIgIiIKKyJTaSDDqCBzcGVjaWZpY2F0byB1biBudW1lcm8gZGkgY2lsaW5kcmkgc3VwZXJpb3JlIGEgcXVlbGxpIGNvbnRlbnV0aSBzdSBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NAorbXNnaWQgIkNhbm5vdCBvcGVuIGRpc2sgZHJpdmUiCittc2dzdHIgIkltcG9zc2liaWxlIGFwcmlyZSBsJ3VuaXTDoCBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NiBmZGlzay9jZmRpc2suYzoxODY1Cittc2dpZCAiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIKK21zZ3N0ciAiRGlzY28gYXBlcnRvIGluIHNvbGEgbGV0dHVyYSAtIHNjcml0dHVyYSBub24gYXV0b3JpenphdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2ODcKK21zZ2lkICIiCisiV2FybmluZyEhICBVbnN1cHBvcnRlZCBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZC4gVXNlIEdOVSBQYXJ0ZWQuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MDYKK21zZ2lkICJDYW5ub3QgZ2V0IGRpc2sgc2l6ZSIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgb3R0ZW5lcmUgbGEgZGltZW5zaW9uZSBkZWwgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MzIKK21zZ2lkICJCYWQgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIlBhcnRpemlvbmUgcHJpbWFyaWEgZGFubmVnZ2lhdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3NjIKK21zZ2lkICJCYWQgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIlBhcnRpemlvbmUgbG9naWNhIGRhbm5lZ2dpYXRhIgorCisjOiBmZGlzay9jZmRpc2suYzoxODc3Cittc2dpZCAiV2FybmluZyEhICBUaGlzIG1heSBkZXN0cm95IGRhdGEgb24geW91ciBkaXNrISIKK21zZ3N0ciAiQXR0ZW56aW9uZSEgSSBkYXRpIHN1bCBkaXNjbyBwb3RyZWJiZXJvIHZlbmlyZSBlbGltaW5hdGkhIgorCisjOiBmZGlzay9jZmRpc2suYzoxODgxCittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIiIKKyJTaWN1cm8gZGkgdm9sZXIgc2NyaXZlcmUgbGEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIHN1IGRpc2NvPyAoc2kgbyBubyk6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4NworbXNnaWQgIm5vIgorbXNnc3RyICJubyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4OQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIlNjcml0dHVyYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkgc3UgZGlzY28gbm9uIGVmZmV0dHVhdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTEKK21zZ2lkICJ5ZXMiCittc2dzdHIgInNpIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk1Cittc2dpZCAiUGxlYXNlIGVudGVyIGB5ZXMnIG9yIGBubyciCittc2dzdHIgIkluc2VyaXJlIFwic2lcIiAoc2VuemEgYWNjZW50bykgbyBcIm5vXCIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTkKK21zZ2lkICJXcml0aW5nIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrLi4uIgorbXNnc3RyICJTY3JpdHR1cmEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIHN1IGRpc2NvIGluIGNvcnNvLi4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI0IGZkaXNrL2NmZGlzay5jOjE5MjgKK21zZ2lkICJXcm90ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiRXNlZ3VpdGEgbCdvcGVyYXppb25lIGRpIHNjcml0dHVyYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkgc3UgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKKyMsIGZ1enp5Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIlRhYmVsbGEgc2NyaXR0YSwgbWEgbGEgcmlsZXR0dXJhIMOoIGZhbGxpdGEuIFJpYXZ2aWFyZSBwZXIgYWdnaW9ybmFyZSBsYSAiCisidGFiZWxsYS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIk5lc3N1bmEgcGFydGl6aW9uZSBwcmltYXJpYSDDqCBpbXBvc3RhdGEgY29tZSBhdnZpYWJpbGUuIERPUyBNQlIgbm9uIHB1w7JcbiIKKyJhdnZpYXJsYS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJQacO5IGRpIHVuYSBwYXJ0aXppb25lIHByaW1hcmlhIMOoIGltcG9zdGF0YSBjb21lIGF2dmlhYmlsZS4gRE9TIE1CUiBub24gcHXDslxuIgorImF2dmlhcmxhLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTk5NiBmZGlzay9jZmRpc2suYzoyMTE1IGZkaXNrL2NmZGlzay5jOjIxOTkKK21zZ2lkICJFbnRlciBmaWxlbmFtZSBvciBwcmVzcyBSRVRVUk4gdG8gZGlzcGxheSBvbiBzY3JlZW46ICIKK21zZ3N0ciAiIgorIkluc2VyaXJlIGlsIG5vbWUgZGVsIGZpbGUgbyBwcmVtZXJlIFJFVFVSTiAoSU5WSU8pIHBlciB2aXN1YWxpenphcmUgc3VsbG8gIgorInNjaGVybW86IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgIkltcG9zc2liaWxlIGFwcmlyZSBpbCBmaWxlICclcyciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXNcbiIKK21zZ3N0ciAiVW5pdMOgIGRpc2NvOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNldHRvcmUgMDpcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAyNQorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQ6XG4iCittc2dzdHIgIlNldHRvcmUgJWQ6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDUKK21zZ2lkICIgICBOb25lICAgIgorbXNnc3RyICIgICBOZXNzdW5vICAgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ3Cittc2dpZCAiICAgUHJpL0xvZyIKK21zZ3N0ciAiICAgUHJpL0xvZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0OQorbXNnaWQgIiAgIFByaW1hcnkiCittc2dzdHIgIiAgIFByaW1hcmlvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiICAgTG9naWNvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICJTY29ub3NjaXV0byIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NSBmZGlzay9jZmRpc2suYzoyNTYzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOQorbXNnaWQgIkJvb3QiCittc2dzdHIgIkF2dmlvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk5Cittc2dpZCAiTm9uZSIKK21zZ3N0ciAiTmVzc3VubyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNCBmZGlzay9jZmRpc2suYzoyMjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiBUYWJsZSBmb3IgJXNcbiIKK21zZ3N0ciAiVGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIHBlciAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM2Cittc2dpZCAiICAgICAgICAgICAgICAgRmlyc3QgICAgICAgTGFzdFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKKyMsIGZ1enp5Cittc2dpZCAiIgorIiAjIFR5cGUgICAgICAgU2VjdG9yICAgICAgU2VjdG9yICAgT2Zmc2V0ICAgIExlbmd0aCAgIEZpbGVzeXN0ZW0gVHlwZSAoSUQpICIKKyJGbGFnXG4iCittc2dzdHIgIiIKKyIgIyBUaXBvICAgICBzZXR0b3JlICAgc2V0dG9yZSAgIG9mZnNldCAgbHVuZ2hlenphICAgdGlwbyBkaSBmaWxlc3lzdGVtICAiCisiKElEKSAgIGZsYWdcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzOAorIywgZnV6enkKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjIKKyMsIGZ1enp5Cittc2dpZCAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCittc2dzdHIgIiIKKyIgIyBGbGFnIHRlc3RpbmEgc2V0dC4gY2lsLiAgIElEICB0ZXN0aW5hIHNldHQuIGNpbC4gICAgc2V0dG9yZSAgc2V0dG9yaVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIzCisjLCBmdXp6eQorbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tLS0tIC0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICJHcmV6em8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IgorbXNnc3RyICJTdGFtcGFyZSBsYSB0YWJlbGxhIHV0aWxpenphbmRvIGlsIGZvcm1hdG8gZGF0aSBncmV6emkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlNldHRvcmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcKK21zZ2lkICJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICJTdGFtcGFyZSBsYSB0YWJlbGxhIG9yZGluYXRhIHBlciBzZXR0b3JpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU4Cittc2dpZCAiVGFibGUiCittc2dzdHIgIlRhYmVsbGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlN0YW1wYXJlIGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkRvbid0IHByaW50IHRoZSB0YWJsZSIKK21zZ3N0ciAiTm9uIHN0YW1wYXJlIGxhIHRhYmVsbGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODcKK21zZ2lkICJIZWxwIFNjcmVlbiBmb3IgY2ZkaXNrIgorbXNnc3RyICJTY2hlcm1hdGEgR3VpZGEgcGVyIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4OQorbXNnaWQgIlRoaXMgaXMgY2ZkaXNrLCBhIGN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbmluZyBwcm9ncmFtLCB3aGljaCIKK21zZ3N0ciAiIgorIlF1ZXN0byDDqCBjZmRpc2ssIHVuIHByb2dyYW1tYSBwZXIgbGEgcGFydGl6aW9uZSBkZWkgZGlzY2hpIGJhc2F0byBzdSBjdXJzZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgIiIKKyJjb25zZW50ZSBkaSBjcmVhcmUsIGNhbmNlbGxhcmUgZSBtb2RpZmljYXJlIGxlIHBhcnRpemlvbmkgc3VsIGRpc2NvIGZpc3NvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgInVuaXTDoCBkaXNjby4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJDb21hbmRvICAgICBzaWduaWZpY2F0byIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICItLS0tLS0tICAgICAgLS0tLS0tLSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgYiAgICAgICAgICBUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiBiICAgICAgICAgIENhbWJpYSBmbGFnIGF2dmlhYmlsZSBwZXIgbGEgcGFydGl6aW9uZSBjb3JyZW50ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgZCAgICAgICAgICBEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgZCAgICAgICAgICBFbGltaW5hIGxhIHBhcnRpemlvbmUgY29ycmVudGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTkKK21zZ2lkICIgIGcgICAgICAgICAgQ2hhbmdlIGN5bGluZGVycywgaGVhZHMsIHNlY3RvcnMtcGVyLXRyYWNrIHBhcmFtZXRlcnMiCittc2dzdHIgIiBnICAgICAgICAgIGNhbWJpbyBjaWxpbmRyaSwgdGVzdGluZSwgcGFyYW1ldHJpIHNldHRvcmktcGVyLXRyYWNjaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgICAgICAgICAgV0FSTklORzogVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBwZW9wbGUgd2hvIgorbXNnc3RyICIiCisiICAgICAgICAgICAgQVRURU5aSU9ORTogcXVlc3RhIG9wemlvbmUgZG92cmViYmUgZXNzZXJlIHV0aWxpenphdGEgc29sbyBkYSAiCisicGVyc29uZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICBlc3BlcnRpLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMgorbXNnaWQgIiAgaCAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiIGggICAgICAgICAgU3RhbXBhcmUgcXVlc3RhIHNjaGVybWF0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgbSAgICAgICAgICBNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorIiBtICAgICAgICAgIE1hc3NpbWl6emFyZSBsJ3V0aWxpenpvIGRlbCBkaXNjbyBkZWxsYSBwYXJ0aXppb25lIGNvcnJlbnRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA0Cittc2dpZCAiICAgICAgICAgICAgIE5vdGU6IFRoaXMgbWF5IG1ha2UgdGhlIHBhcnRpdGlvbiBpbmNvbXBhdGlibGUgd2l0aCIKK21zZ3N0ciAiICAgICAgICAgICAgTm90YTogcXVlc3RvIHB1w7IgcmVuZGVyZSBsYSBwYXJ0aXppb25lIGluY29tcGF0aWJpbGUgY29uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICBET1MsIE9TLzIsIC4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiBuICAgICAgICAgIENyZWF6aW9uZSBkaSB1bmEgbnVvdmEgcGFydGl6aW9uZSBuZWxsbyBzcGF6aW8gZGlzcG9uaWJpbGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIgcCAgICAgICAgICBTdGFtcGEgZGVsbGEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIHN1IHNjaGVybW8gbyBzdSBmaWxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICBWaSBzb25vIGRpdmVyc2kgYWx0cmkgZm9ybWF0aSBwZXIgbGEgcGFydGl6aW9uZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIgICAgICAgICAgICB0cmEgaSBxdWFsaSBzY2VnbGllcmU6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEwCittc2dpZCAiICAgICAgICAgICAgICAgIHIgLSBSYXcgZGF0YSAoZXhhY3RseSB3aGF0IHdvdWxkIGJlIHdyaXR0ZW4gdG8gZGlzaykiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgICByIC0gZGF0aSBncmV6emkgKGVzYXR0YW1lbnRlIGNpw7IgY2hlIHZlcnJlYmJlIHNjcml0dG8gc3VsICIKKyJkaXNjbykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgcyAtIFRhYmVsbGEgb3JkaW5hdGEgcGVyIHNldHRvcmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTIKK21zZ2lkICIgICAgICAgICAgICAgICAgdCAtIFRhYmxlIGluIHJhdyBmb3JtYXQiCittc2dzdHIgIiAgICAgICAgICAgICAgIHQgLSBUYWJlbGxhIGluIGZvcm1hdG8gZ3JlenpvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisiICBxICAgICAgICAgIEVzY2UgZGFsIHByb2dyYW1tYSBzZW56YSBzY3JpdmVyZSBuZWxsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTQKK21zZ2lkICIgIHQgICAgICAgICAgQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIiB0ICAgICAgICAgIENhbWJpYSBpbCB0aXBvIGRpIGZpbGVzeXN0ZW0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIiCisiIHUgICAgICAgICAgTW9kaWZpY2EgbCd1bml0w6AgZGkgdmlzdWFsaXp6YXppb25lIGRlbGxhIGRpbWVuc2lvbmUgZGVsbGEgIgorInBhcnRpemlvbmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTYKK21zZ2lkICIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiCittc2dzdHIgIiAgICAgICAgICAgIFJ1b3RhIGF0dHJhdmVyc28gTUIsIHNldHRvcmkgZSBjaWxpbmRyaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNworbXNnaWQgIiAgVyAgICAgICAgICBXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAobXVzdCBlbnRlciB1cHBlciBjYXNlIFcpIgorbXNnc3RyICIiCisiIFcgICAgICAgICAgU2NyaXR0dXJhIGRlbGxhIHRhYmVsbGEgZGkgcGFydGl6aW9uZSBzdWwgZGlzY28gKHNpIGRldmUgIgorImluc2VyaXJlIGxhIFcgbWFpdXNjb2xhKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiIKKyIgICAgICAgICAgICBEYXRvIGNoZSBpbiBxdWVzdG8gbW9kbyDDqCBwb3NzaWJpbGUgZWxpbWluYXJlIGRhdGkgc3VsIGRpc2NvLCBzaSAiCisiZGV2ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICAgICAgICAgICBlaXRoZXIgY29uZmlybSBvciBkZW55IHRoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciIKK21zZ3N0ciAiICAgICAgICAgICAgY29uZmVybWFyZSBvIG5lZ2FyZSBsYSBzY3JpdHR1cmEgaW5zZXJlbmRvIFwic2lcIiBvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIwCittc2dpZCAiICAgICAgICAgICAgIGBubyciCittc2dzdHIgIiAgICAgICAgICAgICBcIm5vXCIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjEKK21zZ2lkICJVcCBBcnJvdyAgICAgTW92ZSBjdXJzb3IgdG8gdGhlIHByZXZpb3VzIHBhcnRpdGlvbiIKK21zZ3N0ciAiRnJlY2NpYSBTdSAgICAgIHNwb3N0YSBpbCBjdXJzb3JlIGFsbGEgcGFydGl6aW9uZSBwcmVjZWRlbnRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIyCittc2dpZCAiRG93biBBcnJvdyAgIE1vdmUgY3Vyc29yIHRvIHRoZSBuZXh0IHBhcnRpdGlvbiIKK21zZ3N0ciAiRnJlY2NpYSBHacO5ICAgc3Bvc3RhIGlsIGN1cnNvcmUgYWxsYSBwYXJ0aXppb25lIHN1Y2Nlc3NpdmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDVFJMLUwgICAgICAgUmlkaXNlZ25hIGxvIHNjaGVybW8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjQKK21zZ2lkICIgID8gICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgPyAgICAgICAgICBTdGFtcGEgcXVlc3RhIHNjaGVybWF0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNgorbXNnaWQgIk5vdGU6IEFsbCBvZiB0aGUgY29tbWFuZHMgY2FuIGJlIGVudGVyZWQgd2l0aCBlaXRoZXIgdXBwZXIgb3IgbG93ZXIiCittc2dzdHIgIk5vdGE6IMOoIHBvc3NpYmlsZSBpbW1ldHRlcmUgdHV0dGkgaSBjb21hbmRpIGluIG1haXVzY29sbyBvIG1pbnVzY29sbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNworbXNnaWQgImNhc2UgbGV0dGVycyAoZXhjZXB0IGZvciBXcml0ZXMpLiIKK21zZ3N0ciAibGV0dGVyZSBtYWl1c2NvbGUvbWludXNjb2xlIChmYXR0YSBlY2NlemlvbmUgcGVyIFdyaXRlcykuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzIKK21zZ2lkICJDeWxpbmRlcnMiCittc2dzdHIgIkNpbGluZHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICJNb2RpZmljYSBsYSBnZW9tZXRyaWEgZGVpIGNpbGluZHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzAKK21zZ2lkICJIZWFkcyIKK21zZ3N0ciAiVGVzdGluZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJNb2RpZmljYSBsYSBnZW9tZXRyaWEgZGVsbGUgdGVzdGluZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiCittc2dzdHIgIk1vZGlmaWNhIGxhIGdlb21ldHJpYSBkZWkgc2V0dG9yaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MQorbXNnaWQgIkRvbmUiCittc2dzdHIgIkZpbmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIk1vZGlmaWNhIGRlbGxhIGdlb21ldHJpYSBlc2VndWl0YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM3NAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzOiAiCittc2dzdHIgIkltbWV0dGVyZSBpbCBudW1lcm8gZGkgY2lsaW5kcmk6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIlZhbG9yZSBjaWxpbmRyaSBub24gdmFsaWRvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzkxCittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBoZWFkczogIgorbXNnc3RyICJJbW1ldHRlcmUgaWwgbnVtZXJvIGRlbGxlIHRlc3RpbmU6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAiVmFsb3JlIHRlc3RpbmUgbm9uIHZhbGlkbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQwNAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2s6ICIKK21zZ3N0ciAiSW1tZXR0ZXJlIGlsIG51bWVybyBkZWkgc2V0dG9yaSBwZXIgdHJhY2NpYTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDExIGZkaXNrL2NmZGlzay5jOjI5NzUKK21zZ2lkICJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiCittc2dzdHIgIlZhbG9yZSBzZXR0b3JpIG5vbiB2YWxpZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MTQKK21zZ2lkICJFbnRlciBmaWxlc3lzdGVtIHR5cGU6ICIKK21zZ3N0ciAiSW1tZXR0ZXJlIGlsIHRpcG8gZGkgZmlsZXN5c3RlbTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTMyCittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IgorbXNnc3RyICJJbXBvc3NpYmlsZSBjYW1iaWFyZSBpbCB0aXBvIEZTIGluIHZ1b3RvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICJJbXBvc3NpYmlsZSBjYW1iaWFyZSBpbCB0aXBvIEZTIGluIGVzcGFuc28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rKCUwMlgpIgorbXNnc3RyICJVbmsoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjggZmRpc2svY2ZkaXNrLmM6MjU3MQorbXNnaWQgIiwgTkMiCittc2dzdHIgIiwgTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NzYgZmRpc2svY2ZkaXNrLmM6MjU3OQorbXNnaWQgIk5DIgorbXNnc3RyICJOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU4NworbXNnaWQgIlByaS9Mb2ciCittc2dzdHIgIlByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biAoJTAyWCkiCittc2dzdHIgIlNjb25vc2NpdXRvICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAiVW5pdMOgIGRpc2NvOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICJEaW1lbnNpb25pOiAlbGxkIGJ5dGUsICVsbGQgTUIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZC4lbGxkIEdCIgorbXNnc3RyICJEaW1lbnNpb25pOiAlbGxkIGJ5dGUsICVsbGQuJWxsZCBHQiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3NworIywgYy1mb3JtYXQKK21zZ2lkICJIZWFkczogJWQgICBTZWN0b3JzIHBlciBUcmFjazogJWQgICBDeWxpbmRlcnM6ICVsbGQiCittc2dzdHIgIlRlc3RpbmU6ICVkICAgU2V0dG9yaSBwZXIgdHJhY2NpYTogJWQgICBDaWxpbmRyaTogJWxsZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MSBsb2dpbi11dGlscy9jaGZuLmM6Mzc3Cittc2dpZCAiTmFtZSIKK21zZ3N0ciAiTm9tZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MgorbXNnaWQgIkZsYWdzIgorbXNnc3RyICJGbGFnIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgzCittc2dpZCAiUGFydCBUeXBlIgorbXNnc3RyICJUaXBvIHBhcnQuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg0Cittc2dpZCAiRlMgVHlwZSIKK21zZ3N0ciAiVGlwbyBGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NQorbXNnaWQgIltMYWJlbF0iCittc2dzdHIgIltFdGljaGV0dGFdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgICBTZXR0b3JpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg5Cittc2dpZCAiICBDeWxpbmRlcnMiCittc2dzdHIgIiAgQ2lsaW5kcmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTEKK21zZ2lkICIgIFNpemUgKE1CKSIKK21zZ3N0ciAiICBEaW0uIChNQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiICBEaW0uIChHQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJCb290YWJsZSIKK21zZ3N0ciAiQXZ2aWFiaWxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgQ2FtYmlhIGZsYWcgYXZ2aWFiaWxlIHBlciBsYSBwYXJ0aXppb25lIGNvcnJlbnRlICIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSIKK21zZ3N0ciAiRWxpbWluYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIkVsaW1pbmEgbGEgcGFydGl6aW9uZSBjb3JyZW50ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkdlb21ldHJ5IgorbXNnc3RyICJHZW9tZXRyaWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJDaGFuZ2UgZGlzayBnZW9tZXRyeSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiTW9kaWZpY2EgZGVsbGEgZ2VvbWV0cmlhIGRlbCBkaXNjbyAoc29sbyBwZXIgZXNwZXJ0aSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJIZWxwIgorbXNnc3RyICJHdWlkYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICJNb3N0cmEgZGVsbGEgc2NoZXJtYXRhIGRlbGxhIGd1aWRhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUiCittc2dzdHIgIk1hc3NpbWkuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIiIKKyJNYXNzaW1penphIGwndXRpbGl6em8gZGVsIGRpc2NvIGRlbGxhIHBhcnRpemlvbmUgY29ycmVudGUgKHNvbG8gcGVyIGVzcGVydGkpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICJOdW92YSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIkNyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiQ3JlYXppb25lIGRpIHVuYSBudW92YSBwYXJ0aXppb25lIG5lbGxvIHNwYXppbyBkaXNwb25pYmlsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IgorbXNnc3RyICJTdGFtcGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIlN0YW1wYSBkZWxsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkgc3Ugc2NoZXJtbyBvIHN1IGZpbGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IgorbXNnc3RyICJFc2NpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkVzY2kgZGFsIHByb2dyYW1tYSBzZW56YSBzY3JpdmVyZSBuZWxsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJUeXBlIgorbXNnc3RyICJUaXBvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAiTW9kaWZpY2EgaWwgdGlwbyBkaSBmaWxlc3lzdGVtIChET1MsIExpbnV4LCBPUy8yLCBlY2MuKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIlVuaXRzIgorbXNnc3RyICJVbml0w6AiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkgKE1CLCBzZWN0LCBjeWwpIgorbXNnc3RyICIiCisiQ2FtYmlhIGwndW5pdMOgIGRpIHZpc3VhbGl6emF6aW9uZSBkZWxsYSBkaW1lbnNpb25lIGRlbGxhIHBhcnRpemlvbmUgKE1CLCAiCisic2V0dC4sIGNpbC4pIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUiCittc2dzdHIgIlNjcml2aSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrICh0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSkiCittc2dzdHIgIiIKKyJTY3JpdmkgbGEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIHN1bCBkaXNjbyAoaSBkYXRpIHBvdHJlYmJlcm8gdmVuaXIgcGVyc2kpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODA1Cittc2dpZCAiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiCittc2dzdHIgIkltcG9zc2liaWxlIHJlbmRlcmUgcXVlc3RhIHBhcnRpemlvbmUgYXZ2aWFiaWxlIgorCisjOiBmZGlzay9jZmRpc2suYzoyODE1Cittc2dpZCAiQ2Fubm90IGRlbGV0ZSBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIkltcG9zc2liaWxlIGNhbmNlbGxhcmUgdW5hIHBhcnRpemlvbmUgdnVvdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MzUgZmRpc2svY2ZkaXNrLmM6MjgzNworbXNnaWQgIkNhbm5vdCBtYXhpbWl6ZSB0aGlzIHBhcnRpdGlvbiIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgbWFzc2ltaXp6YXJlIHF1ZXN0YSBwYXJ0aXppb25lIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ1Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgdW51c2FibGUiCittc2dzdHIgIlF1ZXN0YSBwYXJ0aXppb25lIMOoIHV0aWxpenphYmlsZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJRdWVzdGEgcGFydGl6aW9uZSDDqCBnacOgIGluIHVzbyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJJbXBvc3NpYmlsZSBtb2RpZmljYXJlIGlsIHRpcG8gZGkgdW5hIHBhcnRpemlvbmUgdnVvdGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAiTmVzc3VuJ2FsdHJhIHBhcnRpemlvbmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MDQKK21zZ2lkICJJbGxlZ2FsIGNvbW1hbmQiCittc2dzdHIgIkNvbWFuZG8gbm9uIHZhbGlkbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkxNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKK21zZ3N0ciAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIlByaW50IHZlcnNpb246XG4iCisiICAgICAgICAlcyAtdlxuIgorIlByaW50IHBhcnRpdGlvbiB0YWJsZTpcbiIKKyIgICAgICAgICVzIC1QIHtyfHN8dH0gW29wdGlvbnNdIGRldmljZVxuIgorIkludGVyYWN0aXZlIHVzZTpcbiIKKyIgICAgICAgICVzIFtvcHRpb25zXSBkZXZpY2VcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIi1hOiBVc2UgYXJyb3cgaW5zdGVhZCBvZiBoaWdobGlnaHRpbmc7XG4iCisiLXo6IFN0YXJ0IHdpdGggYSB6ZXJvIHBhcnRpdGlvbiB0YWJsZSwgaW5zdGVhZCBvZiByZWFkaW5nIHRoZSBwdCBmcm9tIGRpc2s7XG4iCisiLWMgQyAtaCBIIC1zIFM6IE92ZXJyaWRlIHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzLFxuIgorIiAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIGhlYWRzIGFuZCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2suXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVc286XG4iCisiU3RhbXBhIHZlcnNpb25lOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJTdGFtcGEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B6aW9uaV0gZGlzcG9zaXRpdm9cbiIKKyJVc28gaW50ZXJhdHRpdm86XG4iCisiICAgICAgICAlcyBbb3B6aW9uaV0gZGlzcG9zaXRpdm9cbiIKKyJcbiIKKyJPcHppb25pOlxuIgorIi1hOiBVc2EgZnJlY2NpYSBhbCBwb3N0byBkZWxsJ2V2aWRlbnppYXppb25lO1xuIgorIi16OiBJbml6aWEgY29uIHVuYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkgdnVvdGEsIGFuemljaMOpIGxlZ2dlcmUgbGEgXG4iCisiICAgIHBhcnRpemlvbmUgZGFsIGRpc2NvO1xuIgorIi1jIEMgLWggSCAtcyBTOiBTb3N0aXR1aXNjZSBsJ2lkZWEgZGVsIGtlcm5lbCByaWd1YXJkbyBhbCBudW1lcm8gZGkgIgorImNpbGluZHJpLFxuIgorIiAgICAgICAgICAgICAgICBhbCBudW1lcm8gZGkgdGVzdGluZSBlIGRpIHNldHRvcmkvdHJhY2NpYS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2thaXhsYWJlbC5jOjI3Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBBSVggbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBMaW51eCBjYW5ub3QgaGFuZGxlIHRoZXNlXG4iCisiXHRkaXNrcyBhdCB0aGUgbW9tZW50LiAgTmV2ZXJ0aGVsZXNzIHNvbWVcbiIKKyJcdGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKKyJcdDMuIEJlZm9yZSBkZWxldGluZyB0aGlzIHBoeXNpY2FsIHZvbHVtZSBiZSBzdXJlXG4iCisiXHQgICB0byByZW1vdmUgdGhlIGRpc2sgbG9naWNhbGx5IGZyb20geW91ciBBSVhcbiIKKyJcdCAgIG1hY2hpbmUuICAoT3RoZXJ3aXNlIHlvdSBiZWNvbWUgYW4gQUlYcGVydCkuIgorbXNnc3RyICIiCisiXG4iCisiXHRFc2lzdGUgdW4nZXRpY2hldHRhIEFJWCB2YWxpZGEgc3UgcXVlc3RvIGRpc2NvLlxuIgorIlx0U2ZvcnR1bmF0YW1lbnRlLCBpbiBxdWVzdG8gbW9tZW50byBMaW51eCBub24gw6ggaW4gZ3JhZG8gZGkgZ2VzdGlyZSBxdWVzdGlcbiIKKyJcdGRpc2NoaS4gIENpw7Igbm9ub3N0YW50ZSBzZWd1b25vIGFsY3VuaVxuIgorIlx0Y29uc2lnbGk6XG4iCisiXHQxLiBmZGlzayBlbGltaWVyw6AgaWwgc3VvIGNvbnRlbnV0byBhbGxhIHNjcml0dHVyYS5cbiIKKyJcdDIuIEFzc2ljdXJhcnNpIGNoZSBxdWVzdG8gZGlzY28gTk9OIHNpYSBhbmNvcmFcbiIKKyJcdCAgIHVuYSBwYXJ0ZSB2aXRhbGUgZGVsIGdydXBwbyBkaSB2b2x1bWUgKGFsdHJpbWVudGkgw6ggcG9zc2liaWxlXG4iCisiXHQgICBjaGUgc2kgY2FuY2VsbGlubyBhbmNoZSBnbGkgYWx0cmkgZGlzY2hpLCBzZSBub24gc29nZ2V0dGkgYSAiCisibWlycm9yaW5nLilcbiIKKyJcdDMuIFByaW1hIGRpIGVsaW1pbmFyZSBxdWVzdG8gdm9sdW1lIGZpc2ljbyBhc3NpY3VyYXJzaVxuIgorIlx0ICAgZGkgcmltdW92ZXJlIGluIG1hbmllcmEgbG9naWNhIGlsIGRpc2NvIGRhbGxhIG1hY2NoaW5hIEFJWCBcbiIKKyJcdCAgIChhbHRyaW1lbnRpIHNpIGRpdmllbmUgQUlYcGVydCkuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkV0aWNoZXR0YSBCU0QgcGVyIGRpc3Bvc2l0aXZvOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI4IGZkaXNrL2ZkaXNrLmM6Mzk0IGZkaXNrL2ZkaXNrLmM6NDEzCisjOiBmZGlzay9mZGlzay5jOjQzMSBmZGlzay9mZGlzay5jOjQzOCBmZGlzay9mZGlzay5jOjQ2MSBmZGlzay9mZGlzay5jOjQ3OQorIzogZmRpc2svZmRpc2suYzo0OTUgZmRpc2svZmRpc2suYzo1MTEKK21zZ2lkICJDb21tYW5kIGFjdGlvbiIKK21zZ3N0ciAiQXppb25lIGNvbWFuZG8iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjkKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIGVsaW1pbmFuYXppb25lIGRpIHVuYSBwYXJ0aXppb25lIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMAorbXNnaWQgIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiCittc2dzdHIgIiAgIGUgICBtb2RpZmljYSBkZWkgZGF0aSBkZWxsJ3VuaXTDoCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgIGluc3RhbGxhemlvbmUgZGkgYm9vdHN0cmFwIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMyCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gZmlsZXN5c3RlbSB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIGVsZW5jbyBkZWkgdGlwaSBkaSBmaWxlc3lzdGVtIGNvbm9zY2l1dGkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICBzdGFtcGEgZGkgcXVlc3RvIG1lbnUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzQKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICBhZ2dpdW50YSBkaSB1bmEgbnVvdmEgcGFydGl6aW9uZSBCU0QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIHN0YW1wYSBkZWxsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkgQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM2IGZkaXNrL2ZkaXNrLmM6NDA0IGZkaXNrL2ZkaXNrLmM6NDIzCisjOiBmZGlzay9mZGlzay5jOjQzNCBmZGlzay9mZGlzay5jOjQ0OCBmZGlzay9mZGlzay5jOjQ3MSBmZGlzay9mZGlzay5jOjQ4OAorIzogZmRpc2svZmRpc2suYzo1MDQgZmRpc2svZmRpc2suYzo1MjIKK21zZ2lkICIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIgorbXNnc3RyICIgICBxICAgdXNjaXRhIHNlbnphIHNhbHZhdGFnZ2lvIGRlbGxlIG1vZGlmaWNoZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiICAgciAgIHJpdG9ybm8gYWwgbWVudSBwcmluY2lwYWxlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM4Cittc2dpZCAiICAgcyAgIHNob3cgY29tcGxldGUgZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgdmlzdWFsaXp6YXppb25lIGRlbCBkaXNrbGFiZWwgY29tcGxldG8iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzkKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3MgZmlsZXN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgIG1vZGlmaWNhIGRlbGwnaWQgZGVsIGZpbGVzeXN0ZW0gZGkgdW5hIHBhcnRpemlvbmUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDAKK21zZ2lkICIgICB1ICAgY2hhbmdlIHVuaXRzIChjeWxpbmRlcnMvc2VjdG9ycykiCittc2dzdHIgIiAgIGMgICBjYW1iaWEgdW5pdMOgIChjaWxpbmRyaS9zZXR0b3JpKSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgIHNjcml0dHVyYSBkZWwgZGlza2xhYmVsIHN1IGRpc2NvIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQzCittc2dpZCAiICAgeCAgIGxpbmsgQlNEIHBhcnRpdGlvbiB0byBub24tQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgeCAgIGNvbGxlZ2FtZW50byBkZWxsYSBwYXJ0aXppb25lIEJTRCBhIHVuYSBub24tQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlcyBoYXMgaW52YWxpZCBzdGFydGluZyBzZWN0b3IgMC5cbiIKK21zZ3N0ciAiTGEgcGFydGl6aW9uZSAlcyBoYSBzZXR0b3JlIGRpIGluaXppbyAwIG5vbiB2YWxpZG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICJMZXR0dXJhIGRlbCBkaXNrbGFiZWwgZGkgJXMgYWwgc2V0dG9yZSAlZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAiTm9uIGVzaXN0ZSBwYXJ0aXppb25lICpCU0Qgc3UgJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyMDMKK21zZ2lkICJCU0QgZGlza2xhYmVsIGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIkNvbWFuZG8gZGlza2xhYmVsIEJTRCAobSBwZXIgcmljaGlhbWFyZSBsYSBndWlkYSk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI4MyBmZGlzay9mZGlzay5jOjIzMjggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzOAorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdCAlcyIKK21zZ3N0ciAiUHJpbW8gJXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICVzIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsiCittc2dzdHIgIlVsdGltbyAlcyBvICtzaXplIG8gK3NpemVNIG8gK3NpemVLICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlc1xuIgorbXNnc3RyICJ0aXBvOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE5CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVkXG4iCittc2dzdHIgInRpcG86ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlzazogJS4qc1xuIgorbXNnc3RyICJkaXNjbzogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxhYmVsOiAlLipzXG4iCittc2dzdHIgImV0aWNoZXR0YTogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAiZmxhZzoiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIHJlbW92YWJsZSIKK21zZ3N0ciAiIHJpbW92aWJpbGUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIGVjYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiIGJhZHNlY3QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXMvc2VjdG9yOiAlbGRcbiIKK21zZ3N0ciAiYnl0ZS9zZXR0b3JlOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAic2V0dG9yaS90cmFjY2lhOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNAorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJ0cmFjY2UvY2lsaW5kcm86ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJzZXR0b3JpL2NpbGluZHJvOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnM6ICVsZFxuIgorbXNnc3RyICJjaWxpbmRyaTogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAicnBtOiAlZFxuIgorbXNnc3RyICJycG06ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW50ZXJsZWF2ZTogJWRcbiIKK21zZ3N0ciAiaW50ZXJsZWF2ZTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgInRyYWNrc2tldzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnNrZXc6ICVkXG4iCittc2dzdHIgImN5bGluZGVyc2tldzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsbGlzZWNvbmRpXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlazogJWxkXHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJyaWNlcmNhIHRyYWNjaWEtYS10cmFjY2lhOiAlbGRcdCMgbWlsbGlzZWNvbmRpXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgImRhdGl1bml0w6A6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgcGFydGl6aW9uaTpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIyAgICAgICBpbml6aW8gICAgIGZpbmUgICAgICBzaXplICAgICBmc3R5cGUgICBbZnNpemUgYnNpemUgICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiU2NyaXR0dXJhIGRlbCBkaXNrbGFiZWwgc3UgJXMgaW4gY29yc28uXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MTkgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjb250YWlucyBubyBkaXNrbGFiZWwuXG4iCittc2dzdHIgIiVzIG5vbiBjb250aWVuZSBkaXNrbGFiZWwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjYKK21zZ2lkICJEbyB5b3Ugd2FudCB0byBjcmVhdGUgYSBkaXNrbGFiZWw/ICh5L24pICIKK21zZ3N0ciAiQ3JlYXJlIHVuIGRpc2tsYWJlbD8gKHMvbikiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgImJ5dGUvc2V0dG9yZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NworbXNnaWQgInNlY3RvcnMvdHJhY2siCittc2dzdHIgInNldHRvcmkvdHJhY2NpYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAidHJhY2NlL2NpbGluZHJvIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NzQwIGZkaXNrL2ZkaXNrLmM6MTU5MgorIzogZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAiY3lsaW5kZXJzIgorbXNnc3RyICJjaWxpbmRyaSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ3NgorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXIiCittc2dzdHIgInNldHRvcmkvY2lsaW5kcm8iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSA8PSBzZWN0b3JzL3RyYWNrICogdHJhY2tzL2N5bGluZGVyIChkZWZhdWx0KS5cbiIKK21zZ3N0ciAiIERldmUgZXNzZXJlIDw9IHNldHRvcmkvdHJhY2NpYSAqIHRyYWNjZS9jaWxpbmRybyAocHJlZGVmaW5pdG8pLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgyCittc2dpZCAicnBtIgorbXNnc3RyICJycG0iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODMKK21zZ2lkICJpbnRlcmxlYXZlIgorbXNnc3RyICJpbnRlcmxlYXZlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICJ0cmFja3NrZXciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgImN5bGluZGVyc2tldyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgImhlYWRzd2l0Y2giCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODcKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrIgorbXNnc3RyICJyaWNlcmNhIHRyYWNjaWEtYS10cmFjY2lhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCittc2dzdHIgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIG92ZXJsYXBzIHdpdGggZGlzayBsYWJlbCFcbiIKK21zZ3N0ciAiU292cmFwcG9zaXppb25lIGRlbCBib290c3RyYXAgY29uIGlsIGRpc2tsYWJlbCFcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iCittc2dzdHIgIkJvb3RzdHJhcCBpbnN0YWxsYXRvIHN1ICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAiUGFydGl6aW9uZSAoYS0lYyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYxNyBmZGlzay9mZGlzay5jOjI0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgaGFzIGJlZW4gY3JlYXRlZFxuIgorbXNnc3RyICLDiCBzdGF0byBjcmVhdG8gaWwgbnVtZXJvIG1hc3NpbW8gZGkgcGFydGl6aW9uaVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGFscmVhZHkgZXhpc3RzLlxuIgorbXNnc3RyICJRdWVzdGEgcGFydGl6aW9uZSBlc2lzdGUgZ2nDoC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIkF0dGVuemlvbmU6IHRyb3BwZSBwYXJ0aXppb25pICglZCwgaWwgbWFzc2ltbyDDqCAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTaW5jcm9uaXp6YXppb25lIGRlaSBkaXNjaGkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgYXByaXJlICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byByZWFkICVzXG4iCittc2dzdHIgIkltcG9zc2liaWxlIGxlZ2dlcmUgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNlZWsgb24gJXNcbiIKK21zZ3N0ciAiUmljZXJjYSBpbXBvc3NpYmlsZSBzdSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgc2NyaXZlcmUgc3UgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXNcbiIKK21zZ3N0ciAiQkxLR0VUU0laRSBpb2N0bCBub24gcml1c2NpdG8gc3UgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIkltcG9zc2liaWxlIGFsbG9jYXJlIGFsdHJhIG1lbW9yaWFcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTYKK21zZ2lkICJGYXRhbCBlcnJvclxuIgorbXNnc3RyICJFcnJvcmUgaXJyZXZlcnNpYmlsZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjM5NQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSByZWFkIG9ubHkgZmxhZyIKK21zZ3N0ciAiICAgYSAgIGF0dGl2YXppb25lL2Rpc2F0dGl2YXppb25lIGRpIHVuIGZsYWcgZGkgc29sYSBsZXR0dXJhIgorCisjOiBmZGlzay9mZGlzay5jOjM5NiBmZGlzay9mZGlzay5jOjQ0MAorbXNnaWQgIiAgIGIgICBlZGl0IGJzZCBkaXNrbGFiZWwiCittc2dzdHIgIiAgIGIgICBtb2RpZmljYSBkaSBic2QgZGlza2xhYmVsIgorCisjOiBmZGlzay9mZGlzay5jOjM5NworbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIG1vdW50YWJsZSBmbGFnIgorbXNnc3RyICIgICBjICAgYXR0aXZhemlvbmUvZGlzYXR0aXZhemlvbmUgZGVsIGZsYWcgbW9udGFiaWxlIgorCisjOiBmZGlzay9mZGlzay5jOjM5OCBmZGlzay9mZGlzay5jOjQxNyBmZGlzay9mZGlzay5jOjQ0MgorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICBjYW5jZWxsYXppb25lIGRpIHVuYSBwYXJ0aXppb25lIgorCisjOiBmZGlzay9mZGlzay5jOjM5OSBmZGlzay9mZGlzay5jOjQxOCBmZGlzay9mZGlzay5jOjQ0MworbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIGVsZW5jbyBkZWkgdGlwaSBkaSBwYXJ0aXppb25lIGNvbm9zY2l1dGkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICBhZ2dpdW50YSBkaSB1bmEgbnVvdmEgcGFydGl6aW9uZSIKKworIzogZmRpc2svZmRpc2suYzo0MDIgZmRpc2svZmRpc2suYzo0MjEgZmRpc2svZmRpc2suYzo0MzMgZmRpc2svZmRpc2suYzo0NDYKK21zZ2lkICIgICBvICAgY3JlYXRlIGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIG8gICBjcmVhemlvbmUgZGkgdW5hIG51b3ZhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSBET1MgdnVvdGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorbXNnaWQgIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgc3RhbXBhIGRlbGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSIKKworIzogZmRpc2svZmRpc2suYzo0MDUgZmRpc2svZmRpc2suYzo0MjQgZmRpc2svZmRpc2suYzo0MzUgZmRpc2svZmRpc2suYzo0NDkKK21zZ2lkICIgICBzICAgY3JlYXRlIGEgbmV3IGVtcHR5IFN1biBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICBjcmVhemlvbmUgZGkgdW5hIG51b3ZhIGRpc2tsYWJlbCBTdW4gdnVvdGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA2IGZkaXNrL2ZkaXNrLmM6NDI1IGZkaXNrL2ZkaXNrLmM6NDUwCittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIHN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgIG1vZGlmaWNhIGwnaWQgZGkgc2lzdGVtYSBkaSB1bmEgcGFydGl6aW9uZSIKKworIzogZmRpc2svZmRpc2suYzo0MDcgZmRpc2svZmRpc2suYzo0MjYgZmRpc2svZmRpc2suYzo0NTEKK21zZ2lkICIgICB1ICAgY2hhbmdlIGRpc3BsYXkvZW50cnkgdW5pdHMiCittc2dzdHIgIiAgIHUgICBtb2RpZmljYSBkZWxsZSB1bml0w6AgZGkgdmlzdWFsaXp6YXppb25lL2RpIGltbWlzc2lvbmUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA4IGZkaXNrL2ZkaXNrLmM6NDI3IGZkaXNrL2ZkaXNrLmM6NDUyIGZkaXNrL2ZkaXNrLmM6NDc0CisjOiBmZGlzay9mZGlzay5jOjQ5MSBmZGlzay9mZGlzay5jOjUwNyBmZGlzay9mZGlzay5jOjUyNQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgdiAgIHZlcmlmaWNhIGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiAgIHcgICBzY3JpdmkgbGEgdGFiZWxsYSBzdSBkaXNjbyBlZCBlc2NpIgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgeCAgIHVsdGVyaW9yaSBmdW56aW9uaSAoc29sbyBwZXIgZXNwZXJ0aSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0Cittc2dpZCAiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGEgICBzZWxlemlvbmUgZGVsbGEgcGFydGl6aW9uZSBjaGUgw6ggcG9zc2liaWxlIGF2dmlhcmUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE1Cittc2dpZCAiICAgYiAgIGVkaXQgYm9vdGZpbGUgZW50cnkiCittc2dzdHIgIiAgIGIgICBtb2RpZmljYSBkZWxsYSB2b2NlIGJvb3RmaWxlIgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIgICBjICAgc2VsZXppb25lIGRlbGxhIHBhcnRpemlvbmUgc3dhcCBzZ2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDM5Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIGJvb3RhYmxlIGZsYWciCittc2dzdHIgIiAgIGEgIENhbWJpYSBib290YWJsZSBmbGFnIgorCisjOiBmZGlzay9mZGlzay5jOjQ0MQorbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciCittc2dzdHIgIiAgIGMgICBjYW1iaWEgaWwgZmxhZyBjb21wYXRpYmlsZSBjb24gaWwgZG9zIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MgorbXNnaWQgIiAgIGEgICBjaGFuZ2UgbnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGEgICBtb2RpZmljYSBkZWwgbnVtZXJvIGRpIGNpbGluZHJpIGFsdGVybmF0aXZpIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgIG1vZGlmaWNhIGRlbCBudW1lcm8gZGkgY2lsaW5kcmkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY0IGZkaXNrL2ZkaXNrLmM6NDgyIGZkaXNrL2ZkaXNrLmM6NDk4IGZkaXNrL2ZkaXNrLmM6NTE0Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBkICAgc3RhbXBhIGRlaSBkYXRpIGdyZXp6aSBuZWxsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY1Cittc2dpZCAiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiAgIGUgICBtb2RpZmljYSBkZWwgbnVtZXJvIGRlaSBzZXR0b3JpIHN1cHBsZW1lbnRhcmkgcGVyIGNpbGluZHJvIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NiBmZGlzay9mZGlzay5jOjQ4NSBmZGlzay9mZGlzay5jOjUwMSBmZGlzay9mZGlzay5jOjUxOAorbXNnaWQgIiAgIGggICBjaGFuZ2UgbnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICIgICBoICAgbW9kaWZpY2EgZGVsIG51bWVybyBkaSB0ZXN0aW5lIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NworbXNnaWQgIiAgIGkgICBjaGFuZ2UgaW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiAgIGkgICBtb2RpZmljYSBkZWwgZmF0dG9yZSBkaSBpbnRlcmxlYXZlIgorCisjOiBmZGlzay9mZGlzay5jOjQ2OAorbXNnaWQgIiAgIG8gICBjaGFuZ2Ugcm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIiAgIG8gICBtb2RpZmljYSBkZWxsYSB2ZWxvY2l0w6AgZGkgcm90YXppb25lIChycG0pIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorbXNnaWQgIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siCittc2dzdHIgIiAgIHMgICBtb2RpZmljYSBkZWwgbnVtZXJvIGRpIHNldHRvcmkvdHJhY2NpYSIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICBtb2RpZmljYSBkZWwgbnVtZXJvIGRpIGNpbGluZHJpIGZpc2ljaSIKKworIzogZmRpc2svZmRpc2suYzo0ODAgZmRpc2svZmRpc2suYzo0OTYgZmRpc2svZmRpc2suYzo1MTIKK21zZ2lkICIgICBiICAgbW92ZSBiZWdpbm5pbmcgb2YgZGF0YSBpbiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYiAgIHNwb3N0YW1lbnRvIGRlbGwnaW5pemlvIGRpIGRhdGkgaW4gdW5hIHBhcnRpemlvbmUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgzIGZkaXNrL2ZkaXNrLmM6NDk5IGZkaXNrL2ZkaXNrLmM6NTE1Cittc2dpZCAiICAgZSAgIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiICAgZSAgIGVsZW5jbyBkZWxsZSBwYXJ0aXppb25pIGVzdGVzZSIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgY3JlYSB1bmEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIElSSVggKFNHSSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE2Cittc2dpZCAiICAgZiAgIGZpeCBwYXJ0aXRpb24gb3JkZXIiCittc2dzdHIgIiAgIGYgICBhZ2dpdXN0YSBsJ29yZGluZSBkZWxsZSBwYXJ0aXppb25pIgorCisjOiBmZGlzay9mZGlzay5jOjUxOQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgaSAgIGNhbWJpYSBsJ2lkZW50aWZpY2F0aXZvIGRlbCBkaXNjbyIKKworIzogZmRpc2svZmRpc2suYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3Qgc2V0IgorbXNnc3RyICJTaSBkZXZvbm8gaW1wb3N0YXJlIgorCisjOiBmZGlzay9mZGlzay5jOjczNgorbXNnaWQgImhlYWRzIgorbXNnc3RyICJ0ZXN0aW5lIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAic2V0dG9yaSIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisiJXMlcy5cbiIKKyLDiCBwb3NzaWJpbGUgZWZmZXR0dWFyZSBxdWVzdGEgb3BlcmF6aW9uZSBkYWwgbWVudSBkZWxsZSBmdW56aW9uaSAiCisic3VwcGxlbWVudGFyaS5cbiIKKworIzogZmRpc2svZmRpc2suYzo3NDUKK21zZ2lkICIgYW5kICIKK21zZ3N0ciAiIGUgIgorCisjOiBmZGlzay9mZGlzay5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogVGhlIHNpemUgb2YgdGhpcyBkaXNrIGlzICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJET1MgcGFydGl0aW9uIHRhYmxlIGZvcm1hdCBjYW4gbm90IGJlIHVzZWQgb24gZHJpdmVzIGZvciB2b2x1bWVzXG4iCisibGFyZ2VyIHRoYW4gKCVsbHUgYnl0ZXMpIGZvciAlZC1ieXRlIHNlY3RvcnMuIFVzZSBwYXJ0ZWQoMSkgYW5kIEdVSUQgXG4iCisicGFydGl0aW9uIHRhYmxlIGZvcm1hdCAoR1BUKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW5cbiIKKyJ0aGUgcGh5c2ljYWwgc2VjdG9yIHNpemUuIEFsaWduaW5nIHRvIGEgcGh5c2ljYWwgc2VjdG9yIChvciBvcHRpbWFsXG4iCisiSS9PKSBzaXplIGJvdW5kYXJ5IGlzIHJlY29tbWVuZGVkLCBvciBwZXJmb3JtYW5jZSBtYXkgYmUgaW1wYWN0ZWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0b1xuIgorIiAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0b1xuIgorIiAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiT2Zmc2V0IGVycmF0byBuZWxsYSBwYXJ0aXppb25lIGVzdGVzYSBwcmltYXJpYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogb21pdHRpbmcgcGFydGl0aW9ucyBhZnRlciAjJWQuXG4iCisiVGhleSB3aWxsIGJlIGRlbGV0ZWQgaWYgeW91IHNhdmUgdGhpcyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICIiCisiQXR0ZW56aW9uZTogcHVudGF0b3JlIGRpIGNvbGxlZ2FtZW50byBzdXBwbGVtZW50YXJlIG5lbGxhIHRhYmVsbGEgZGVsbGUgIgorInBhcnRpemlvbmkgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaWdub3JpbmcgZXh0cmEgZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiIgorIkF0dGVuemlvbmU6IGkgZGF0aSBzdXBwbGVtZW50YXJpIG5lbGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSAlZCB2ZW5nb25vICIKKyJpZ25vcmF0aVxuIgorCisjOiBmZGlzay9mZGlzay5jOjg5MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib21pdHRpbmcgZW1wdHkgcGFydGl0aW9uICglZClcbiIKK21zZ3N0ciAiQXR0ZW56aW9uZTogcGFydGl6aW9uZSB2dW90YVxuIgorCisjOiBmZGlzay9mZGlzay5jOjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGlkZW50aWZpZXI6IDB4JTA4eFxuIgorbXNnc3RyICJJZGVudGlmaWNhdGl2byBkaXNjbzogMHglMDh4XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBkaXNrIGlkZW50aWZpZXIgKGN1cnJlbnQgMHglMDh4KTogIgorbXNnc3RyICJOdW92byBpZGVudGlmaWNhdGl2byBkaXNjbyAoY29ycmVudGUgMHglMDh4KTogIgorCisjOiBmZGlzay9mZGlzay5jOjk0MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IERPUyBkaXNrbGFiZWwgd2l0aCBkaXNrIGlkZW50aWZpZXIgMHglMDh4LlxuIgorIkNoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksIHVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS5cbiIKKyJBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiQ3JlYXppb25lIGRpIHVuYSBudW92YSBkaXNrbGFiZWwgRE9TLiBMZSBtb2RpZmljaGUgcmltYXJyYW5ubyBtZW1vcml6emF0ZVxuIgorInNvbGFtZW50ZSBmaW5vIGEgcXVhbmRvIHNpIGRlY2lkZSBkaSBzY3JpdmVybGUuIERvcG9kaWNow6ksIG92dmlhbWVudGUsIGlsXG4iCisiY29udGVudXRvIHByZWNlZGVudGUgbm9uIHBvdHLDoCBlc3NlcmUgcmVjdXBlcmF0by5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdGU6IHNlY3RvciBzaXplIGlzICVkIChub3QgJWQpXG4iCittc2dzdHIgIk5vdGE6IGxhIGRpbWVuc2lvbmUgZGVsIHNldHRvcmUgw6ggJWQgKG5vbiAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkltcG9zc2liaWxlIHNjcml2ZXJlIGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisiSWwgZGlzcG9zaXRpdm8gbm9uIGNvbnRpZW5lIG7DqSB1bmEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIERPUyB2YWxpZGEsIG7DqSAiCisidW5hIGRpc2tsYWJlbCBTdW4sIFNHSSBvZCBPU0ZcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgIkludGVybmFsIGVycm9yXG4iCittc2dzdHIgIkVycm9yZSBpbnRlcm5vXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI4MworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmluZyBleHRyYSBleHRlbmRlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiUGFydGl6aW9uZSBlc3Rlc2Egc3VwcGxlbWVudGFyZSBpZ25vcmF0YSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGludmFsaWQgZmxhZyAweCUwNHggb2YgcGFydGl0aW9uIHRhYmxlICVkIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHciCisiKHJpdGUpXG4iCittc2dzdHIgIiIKKyJBdHRlbnppb25lOiBpbCBmbGFnIDB4JTA0eCBub24gdmFsaWRvIGRlbGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSAlZCAiCisidmVycsOgIGNvcnJldHRvIGNvbiB3KHJpdGUpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorInJpY2V2dXRvIEVPRiB0cmUgdm9sdGUgLSB1c2NpdGEgaW4gY29yc28uLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIkNvZGljZSBlc2FkZWNpbWFsZSAoZGlnaXRhcmUgTCBwZXIgZWxlbmNhcmUgaSBjb2RpY2kpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXUtJXUsIGRlZmF1bHQgJXUpOiAiCittc2dzdHIgIiVzICgldS0ldSwgcHJlZGVmaW5pdG8gJXUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnN1cHBvcnRlZCBzdWZmaXg6ICclcycuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdXBwb3J0ZWQ6IDEwXk46IEtCIChLaWxvQnl0ZSksIE1CIChNZWdhQnl0ZSksIEdCIChHaWdhQnl0ZSlcbiIKKyIgICAgICAgICAgICAyXk46IEsgIChLaWJpQnl0ZSksIE0gIChNZWJpQnl0ZSksIEcgIChHaWJpQnl0ZSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgZGVmYXVsdCB2YWx1ZSAldVxuIgorbXNnc3RyICJVdGlsaXp6byBkZWwgdmFsb3JlIHByZWRlZmluaXRvICV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIlZhbG9yZSBmdW9yaSBpbnRlcnZhbGxvLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1MTgKK21zZ2lkICJQYXJ0aXRpb24gbnVtYmVyIgorbXNnc3RyICJOdW1lcm8gZGVsbGEgcGFydGl6aW9uZSIKKworIzogZmRpc2svZmRpc2suYzoxNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXMgZW1wdHkgdHlwZVxuIgorbXNnc3RyICJBdHRlbnppb25lOiBsYSBwYXJ0aXppb25lICVkIGhhIHRpcG8gdnVvdG9cbiIKKworIzogZmRpc2svZmRpc2suYzoxNTUxIGZkaXNrL2ZkaXNrLmM6MTU3NworIywgYy1mb3JtYXQKK21zZ2lkICJTZWxlY3RlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiUGFydGl6aW9uZSBzZWxlemlvbmF0YSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9uIGlzIGRlZmluZWQgeWV0IVxuIgorbXNnc3RyICJOZXNzdW5hIHBhcnRpemlvbmUgZGVmaW5pdGFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBwcmltYXJ5IHBhcnRpdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeSFcbiIKK21zZ3N0ciAiVHV0dGUgbGUgcGFydGl6aW9uaSBwcmltYXJpZSBzb25vIHN0YXRlIGdpw6AgZGVmaW5pdGUhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgImN5bGluZGVyIgorbXNnc3RyICJjaWxpbmRybyIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICJzZXR0b3JlIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICJNb2RpZmljYSBkZWxsZSB1bml0w6AgZGkgdmlzdWFsaXp6YXppb25lL2ltbWlzc2lvbmUgc3UgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiQVRURU5aSU9ORTogbGEgcGFydGl6aW9uZSAlZCDDqCB1bmEgcGFydGl6aW9uZSBlc3Rlc2FcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgc2V0XG4iCittc2dzdHIgIkltcG9zdGF0byBpbCBmbGFnIGNvbXBhdGliaWxlIGNvbiBET1NcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldFxuIgorbXNnc3RyICJJbCBmbGFnIGNvbXBhdGliaWxlIGNvbiBET1Mgbm9uIMOoIGltcG9zdGF0b1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiTGEgcGFydGl6aW9uZSAlZCBub24gZXNpc3RlIGFuY29yYSFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKyJUaXBvIDAgc2lnbmlmaWNhIHNwYXppbyBkaXNwb25pYmlsZSBwZXIgZGl2ZXJzaSBzaXN0ZW1pXG4iCisiKG1hIG5vbiBwZXIgTGludXgpLiBBdmVyZSBwYXJ0aXppb25pIGRpXG4iCisidGlwbyAwIHByb2JhYmlsbWVudGUgbm9uIMOoIGNvbnNpZ2xpYWJpbGUuIMOIIHBvc3NpYmlsZSBlbGltaW5hcmVcbiIKKyJ1bmEgcGFydGl6aW9uZSB1dGlsaXp6YW5kbyBpbCBjb21hbmRvIFwiZFwiLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8gYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKyJEZWxldGUgaXQgZmlyc3QuXG4iCittc2dzdHIgIiIKKyJOb24gw6ggcG9zc2liaWxlIHRyYXNmb3JtYXJlIHVuYSBwYXJ0aXppb25lIGluIHVuYSBlc3Rlc2EgbyB2aWNldmVyc2FcbiIKKyJQcmltYSBiaXNvZ25hIGVsaW1pbmFybGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gMyBhcyBXaG9sZSBkaXNrICg1KSxcbiIKKyJhcyBTdW5PUy9Tb2xhcmlzIGV4cGVjdHMgaXQgYW5kIGV2ZW4gTGludXggbGlrZXMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJQb25pYW1vIGRpIGxhc2NpYXJlIGxhIHBhcnRpemlvbmUgMyBjb21lIGRpc2NvIGludGVybyAoNSksXG4iCisicG9pY2jDqSBTdW5PUy9Tb2xhcmlzIGxvIHByZXZlZGUgZSBjacOyIMOoIGdyYWRpdG8gYW5jaGUgYSBMaW51eC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gOSBhcyB2b2x1bWUgaGVhZGVyICgwKSxcbiIKKyJhbmQgcGFydGl0aW9uIDExIGFzIGVudGlyZSB2b2x1bWUgKDYpLCBhcyBJUklYIGV4cGVjdHMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJQb25pYW1vIGRpIGxhc2NpYXJlIGxhIHBhcnRpemlvbmUgOSBjb21lIGludGVzdGF6aW9uZSBkaSB2b2x1bWUgKDApLFxuIgorImUgbGEgcGFydGl6aW9uZSAxMSBjb21lIHZvbHVtZSBpbnRlcm8gKDYpIHBvaWNow6kgSVJJWCBsbyBwcmV2ZWRlLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICJNb2RpZmljYXRvIGlsIHRpcG8gZGkgc2lzdGVtYSBkZWxsYSBwYXJ0aXppb25lICVkIGluICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgaXMgdW5jaGFuZ2VkOiAleCAoJXMpXG4iCittc2dzdHIgIk1vZGlmaWNhdG8gaWwgdGlwbyBkaSBzaXN0ZW1hIGRlbGxhIHBhcnRpemlvbmUgJWQgaW4gJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAiIgorIkxhIHBhcnRpemlvbmUgJWQgaGEgZGl2ZXJzaSBlbGVtZW50aSBpbml6aWFsaSBmaXNpY2kvbG9naWNpIChub24gTGludXg/KTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI5IGZkaXNrL2ZkaXNrLmM6MTgzNyBmZGlzay9mZGlzay5jOjE4NDYgZmRpc2svZmRpc2suYzoxODU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorbXNnc3RyICIgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzAgZmRpc2svZmRpc2suYzoxODM4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImxvZ2ljbz0oJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAiTGEgcGFydGl6aW9uZSAlZCBoYSBkaXZlcnNpIGVsZW1lbnRpIGZpbmFsaSBmaXNpY2kvbG9naWNpOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICJMYSBwYXJ0aXppb25lICVpIG5vbiBpbml6aWEgYWwgbGltaXRlIGRlbCBjaWxpbmRybzpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAxKVxuIgorbXNnc3RyICJkb3ZyZWJiZSBlc3NlcmUgKCVkLCAlZCwgMSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIkxhIHBhcnRpemlvbmUgJWkgbm9uIHRlcm1pbmEgYWwgbGltaXRlIGRlbCBjaWxpbmRyby5cbiIKKworIzogZmRpc2svZmRpc2suYzoxODU3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAlZClcbiIKK21zZ3N0ciAiZG92cmViYmUgZXNzZXJlICglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIkxhIHBhcnRpemlvbmUgJWkgbm9uIGluaXppYSBhbCBsaW1pdGUgZGVsIGNpbGluZHJvOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXM6ICVsZCBNQiwgJWxsZCBieXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgaGVhZHMsICVsbHUgc2VjdG9ycy90cmFjaywgJWQgY3lsaW5kZXJzIgorbXNnc3RyICIlZCB0ZXN0aW5lLCAlbGx1IHNldHRvcmkvdHJhY2NlLCAlZCBjaWxpbmRyaSIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgdG90YWwgJWxsdSBzZWN0b3JzIgorbXNnc3RyICIsIHRvdGFsZSAlbGx1IHNldHRvcmkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbml0cyA9ICVzIG9mICVkICogJWQgPSAlZCBieXRlc1xuIgorbXNnc3RyICJVbml0w6AgPSAlcyBkaSAlZCAqICVkID0gJWQgYnl0ZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiZGltZW5zaW9uZSBpbm9kZSBub24gY29ycmV0dGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuIgorIlxuIgorbXNnc3RyICJOaWVudGUgZGEgZmFyZS4gTCdvcmRpbmUgw6ggZ2nDoCBjb3JyZXR0by5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEb25lLlxuIgorbXNnc3RyICIiCisiRmluZVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZG9lc24ndCBsb29rIGxpa2UgYSBwYXJ0aXRpb24gdGFibGVcbiIKKyJQcm9iYWJseSB5b3Ugc2VsZWN0ZWQgdGhlIHdyb25nIGRldmljZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlF1ZXN0YSBub24gc2VtYnJhIHVuYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkuXG4iCisiUHJvYmFiaWxtZW50ZSDDqCBzdGF0byBzY2VsdG8gaWwgZGlzcG9zaXRpdm8gc2JhZ2xpYXRvLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiUqcyBCb290ICAgICAgU3RhcnQgICAgICAgICBFbmQgICAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBBdnZpbyAgICBJbml6aW8gICAgRmluZSAgIEJsb2NjaGkgICBJZCAgU2lzdGVtYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIxMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk4Cittc2dpZCAiRGV2aWNlIgorbXNnc3RyICJEaXNwb3NpdGl2byIKKworIzogZmRpc2svZmRpc2suYzoyMTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJQYXJ0aXRpb24gdGFibGUgZW50cmllcyBhcmUgbm90IGluIGRpc2sgb3JkZXJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxlIHZvY2kgbmVsbGEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIG5vbiBzb25vIG5lbGxvIHN0ZXNzbyBvcmRpbmUgZGVsICIKKyJkaXNjb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXM6ICVkIHRlc3RpbmUsICVsbHUgc2V0dG9yaSwgJWQgY2lsaW5kcmlcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIKK21zZ3N0ciAiQXR0ZW56aW9uZTogbGEgcGFydGl6aW9uZSAlZCBjb250aWVuZSBpbCBzZXR0b3JlIDBcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogaGVhZCAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJQYXJ0aXppb25lICVkOiB0ZXN0aW5hICVkIHBpw7kgZ3JhbmRlIGRlbCBtYXNzaW1vICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHNlY3RvciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIlBhcnRpemlvbmUgJWQ6IHNldHRvcmUgJWQgcGnDuSBncmFuZGUgZGVsIG1hc3NpbW8gJWxsdVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9ucyAlZDogY3lsaW5kZXIgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAiUGFydGl6aW9uZSAlZDogY2lsaW5kcm8gJWQgcGnDuSBncmFuZGUgZGVsIG1hc3NpbW8gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogcHJldmlvdXMgc2VjdG9ycyAlZCBkaXNhZ3JlZXMgd2l0aCB0b3RhbCAlZFxuIgorbXNnc3RyICJQYXJ0aXppb25lICVkOiBkaXNzZW5zbyBkZWkgc2V0dG9yaSBwcmVjZWRlbnRpICVkIGNvbiBpbCB0b3RhbGUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjIzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBzdGFydC1vZi1kYXRhIGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJBdHRlbnppb25lOiBpbml6aW8gZGF0aSBkYW5uZWdnaWF0byBuZWxsYSBwYXJ0aXppb25lICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgb3ZlcmxhcHMgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJBdHRlbnppb25lOiBsYSBwYXJ0aXppb25lICVkIHNpIHNvdnJhcHBvbmUgYWxsYSBwYXJ0aXppb25lICVkLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGlzIGVtcHR5XG4iCittc2dzdHIgIkF0dGVuemlvbmU6IGxhIHBhcnRpemlvbmUgJWQgw6ggdnVvdGFcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiTGEgcGFydGl6aW9uZSBsb2dpY2EgJWQgbm9uIMOoIGludGVyYW1lbnRlIG5lbGxhIHBhcnRpemlvbmUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlbGx1IGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIk51bWVybyB0b3RhbGUgZGVpIHNldHRvcmkgYWxsb2NhdGkgJWxkIHN1cGVyaW9yZSBhbCBtYXNzaW1vICVsbGRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSZW1haW5pbmcgJWxsZCB1bmFsbG9jYXRlZCAlZC1ieXRlIHNlY3RvcnNcbiIKK21zZ3N0ciAiJWxsZCBzZXR0b3JpIG5vbiBhbGxvY2F0aVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzMDEgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDExCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBpcyBhbHJlYWR5IGRlZmluZWQuICBEZWxldGUgaXQgYmVmb3JlIHJlLWFkZGluZyBpdC5cbiIKK21zZ3N0ciAiIgorIkxhIHBhcnRpemlvbmUgJWQgw6ggZ2nDoCBkZWZpbml0YS4gIENhbmNlbGxhcmxhIHByaW1hIGRpIHJpYWdnaXVuZ2VybGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJJbCBzZXR0b3JlICVsbHUgw6ggZ2nDoCBhbGxvY2F0b1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICJOb24gY2kgc29ubyBzZXR0b3JpIGxpYmVyaSBkaXNwb25pYmlsaVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlMSRzLCArJTIkcyBvciArc2l6ZXtLLE0sR30iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNDcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIEFJWCBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iCittc2dzdHIgIiIKKyJTaSBkZXZvbm8gZWxpbWluYXJlIGFsY3VuZSBwYXJ0aXppb25pIGUgYWdnaXVuZ2VyZSBhbnppdHV0dG8gdW5hIHBhcnRpemlvbmUgIgorImVzdGVzYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIGxvZ2ljYWwgcGFydGl0aW9ucyBhcmUgaW4gdXNlXG4iCittc2dzdHIgIlR1dHRlIGxlIHBhcnRpemlvbmkgbG9naWNoZSBzb25vIHVzYXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJBZGRpbmcgYSBwcmltYXJ5IHBhcnRpdGlvblxuIgorbXNnc3RyICJBZ2dpdW50YSBkaSB1bmEgcGFydGl6aW9uZSBwcmltYXJpYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbW1hbmQgYWN0aW9uXG4iCisiICAgJXNcbiIKKyIgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNClcbiIKK21zZ3N0ciAiIgorIkF6aW9uZSBjb21hbmRvXG4iCisiICAgJXNcbiIKKyIgICBwICAgcGFydGl6aW9uZSBwcmltYXJpYSAoMS00KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJsICAgbG9naWNhbCAoNSBvciBvdmVyKSIKK21zZ3N0ciAibCAgIGxvZ2ljYSAoNSBvZCBvbHRyZSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImUgICBleHRlbmRlZCIKK21zZ3N0ciAiIGUgICBlc3Rlc2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICJOdW1lcm8gZGkgcGFydGl6aW9uaSBub24gdmFsaWRvIHBlciBpbCB0aXBvIFwiJWNcIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBwYXJ0aXRpb24gdGFibGUgaGFzIGJlZW4gYWx0ZXJlZCFcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSDDqCBzdGF0YSBhbHRlcmF0YSFcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgaW9jdGwoKSB0byByZS1yZWFkIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiQ2hpYW1hdGEgZGkgaW9jdGwoKSBwZXIgcmlsZWdnZXJlIGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyJUaGUga2VybmVsIHN0aWxsIHVzZXMgdGhlIG9sZCB0YWJsZS4gVGhlIG5ldyB0YWJsZSB3aWxsIGJlIHVzZWQgYXRcbiIKKyJ0aGUgbmV4dCByZWJvb3Qgb3IgYWZ0ZXIgeW91IHJ1biBwYXJ0cHJvYmUoOCkgb3Iga3BhcnR4KDgpXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBVFRFTlpJT05FOiBSaWxldHR1cmEgZGVsbGEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIGZhbGxpdGEgY29uIGVycm9yZSAlZDogJSIKKyJzLlxuIgorIklsIGtlcm5lbCB1c2EgYW5jb3JhIGxhIHRhYmVsbGEgcHJlY2VkZW50ZS5cbiIKKyJMYSBudW92YSB0YWJlbGxhIHNhcsOgIHVzYXRhIGFsIHByb3NzaW1vIHJpYXZ2aW8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBVFRFTlpJT05FOiBpbiBjYXNvIGRpIGNyZWF6aW9uZSBvIG1vZGlmaWNhIGRpIHBhcnRpemlvbmkgRE9TIDYueCxcbiIKKyJjb25zdWx0YXJlIGxhIHBhZ2luYSBkZWwgbWFudWFsZSBmZGlzayBwZXIgdWx0ZXJpb3JpXG4iCisiaW5mb3JtYXppb25pLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkVycm9yIGNsb3NpbmcgZmlsZVxuIgorbXNnc3RyICIiCisiXG4iCisiRXJyb3JlIGR1cmFudGUgbGEgY2hpdXN1cmEgZGVsIGZpbGVcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIlNpbmNyb25penphemlvbmUgZGVpIGRpc2NoaSBpbiBjb3Jzby5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgbm8gZGF0YSBhcmVhXG4iCittc2dzdHIgIkxhIHBhcnRpemlvbmUgJWQgbm9uIGhhIGFyZWEgZGF0aVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTYKK21zZ2lkICJOZXcgYmVnaW5uaW5nIG9mIGRhdGEiCittc2dzdHIgIk51b3ZvIGluaXppbyBkYXRpIgorCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQ29tYW5kbyBwZXIgZXNwZXJ0aSAobSBwZXIgcmljaGlhbWFyZSBsYSBndWlkYSk6ICIKKworIzogZmRpc2svZmRpc2suYzoyNjg1Cittc2dpZCAiTnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiTnVtZXJvIGRpIGNpbGluZHJpIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIk51bWVybyBkaSB0ZXN0aW5lIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzcKK21zZ2lkICJOdW1iZXIgb2Ygc2VjdG9ycyIKK21zZ3N0ciAiTnVtZXJvIGRpIHNldHRvcmkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBzZXR0aW5nIHNlY3RvciBvZmZzZXQgZm9yIERPUyBjb21wYXRpYmxpdHlcbiIKK21zZ3N0ciAiIgorIkF0dGVuemlvbmU6IGltcG9zdGFyZSBsJ29mZnNldCBkaSBzZXR0b3JlIHBlciBhc3NpY3VyYXJlIGNvbXBhdGliaWxpdMOgIGNvbiAiCisiRE9TXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgZmRpc2sgZG9lc24ndCAiCisic3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzIGRvZXNuJ3QgY29udGFpbiBhIHZhbGlkIHBhcnRpdGlvbiB0YWJsZVxuIgorbXNnc3RyICJJbCBkaXNjbyAlcyBub24gY29udGllbmUgdW5hIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSB2YWxpZGFcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIkltcG9zc2liaWxlIGFwcmlyZSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJpbXBvc3NpYmlsZSBhcHJpcmUgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IGNvbWFuZG8gc2Nvbm9zY2l1dG9cbiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICIiCisiUXVlc3RvIGtlcm5lbCB0cm92YSBsYSBkaW1lbnNpb25lIGRlbCBzZXR0b3JlIGluIG1hbmllcmEgaW5kaXBlbmRlbnRlIC0gLSAiCisib3B6aW9uZSBiIGlnbm9yYXRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiQXR0ZW56aW9uZTogbCdvcHppb25lIC1iIChtcG9zdGF6aW9uZSBkZWxsYSBkaW1lbnNpb25lIGRlbCBzZXR0b3JlKSBzaSAiCisiZG92cmViYmUgdXRpbGl6emFyZSBjb24gdW4gZGlzcG9zaXRpdm8gc3BlY2lmaWNhdG9cbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozMDEwCittc2dpZCAiQ29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQ29tYW5kbyAobSBwZXIgcmljaGlhbWFyZSBsYSBndWlkYSk6ICIKKworIzogZmRpc2svZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgY3VycmVudCBib290IGZpbGUgaXM6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJJbCBmaWxlIGQnYXZ2aW8gY29ycmVudGUgw6g6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJJbW1ldHRlcmUgaWwgbm9tZSBkZWwgbnVvdm8gZmlsZSBkJ2F2dmlvOiIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiRmlsZSBkJ2F2dmlvIGltbXV0YXRvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzEwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRTb3JyeSwgbm8gZXhwZXJ0cyBtZW51IGZvciBTR0kgcGFydGl0aW9uIHRhYmxlcyBhdmFpbGFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdG5lc3N1biBtZW51IHBlciBlc3BlcnRpIGRpc3BvbmliaWxlIHBlciBsZSB0YWJlbGxlIGRlbGxlIHBhcnRpemlvbmkgU0dJLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKKyMsIGZ1enp5Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBNYWMgbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBmZGlzaygxKSBjYW5ub3QgaGFuZGxlIHRoZXNlIGRpc2tzLlxuIgorIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisiXHROZXZlcnRoZWxlc3Mgc29tZSBhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEVzaXN0ZSB1bidldGljaGV0dGEgQUlYIHZhbGlkYSBzdSBxdWVzdG8gZGlzY28uXG4iCisiXHRTZm9ydHVuYXRhbWVudGUsIGluIHF1ZXN0byBtb21lbnRvIExpbnV4IG5vbiDDqCBpbiBncmFkbyBkaSBnZXN0aXJlIHF1ZXN0aVxuIgorIlx0ZGlzY2hpLiAgQ2nDsiBub25vc3RhbnRlIHNlZ3Vvbm8gYWxjdW5pXG4iCisiXHRjb25zaWdsaTpcbiIKKyJcdDEuIGZkaXNrIGVsaW1pZXLDoCBpbCBzdW8gY29udGVudXRvIGFsbGEgc2NyaXR0dXJhLlxuIgorIlx0Mi4gQXNzaWN1cmFyc2kgY2hlIHF1ZXN0byBkaXNjbyBOT04gc2lhIGFuY29yYVxuIgorIlx0ICAgdW5hIHBhcnRlIHZpdGFsZSBkZWwgZ3J1cHBvIGRpIHZvbHVtZSAoYWx0cmltZW50aSDDqCBwb3NzaWJpbGVcbiIKKyJcdCAgIGNoZSBzaSBjYW5jZWxsaW5vIGFuY2hlIGdsaSBhbHRyaSBkaXNjaGksIHNlIG5vbiBzb2dnZXR0aSBhICIKKyJtaXJyb3JpbmcuKVxuIgorIlx0My4gUHJpbWEgZGkgZWxpbWluYXJlIHF1ZXN0byB2b2x1bWUgZmlzaWNvIGFzc2ljdXJhcnNpXG4iCisiXHQgICBkaSByaW11b3ZlcmUgaW4gbWFuaWVyYSBsb2dpY2EgaWwgZGlzY28gZGFsbGEgbWFjY2hpbmEgQUlYIFxuIgorIlx0ICAgKGFsdHJpbWVudGkgc2kgZGl2aWVuZSBBSVhwZXJ0KS4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MQorbXNnaWQgIlNHSSB2b2xoZHIiCittc2dzdHIgIlNHSSB2b2xoZHIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MgorbXNnaWQgIlNHSSB0cmtyZXBsIgorbXNnc3RyICJTR0kgdHJrcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgzCittc2dpZCAiU0dJIHNlY3JlcGwiCittc2dzdHIgIlNHSSBzZWNyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODQKK21zZ2lkICJTR0kgcmF3IgorbXNnc3RyICJTR0kgcmF3IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODUKK21zZ2lkICJTR0kgYnNkIgorbXNnc3RyICJTR0kgYnNkIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODYKK21zZ2lkICJTR0kgc3lzdiIKK21zZ3N0ciAiU0dJIHN5c3YiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NworbXNnaWQgIlNHSSB2b2x1bWUiCittc2dzdHIgIlNHSSB2b2x1bWUiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OAorbXNnaWQgIlNHSSBlZnMiCittc2dzdHIgIlNHSSBlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OQorbXNnaWQgIlNHSSBsdm9sIgorbXNnc3RyICJTR0kgbHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkwCittc2dpZCAiU0dJIHJsdm9sIgorbXNnc3RyICJTR0kgcmx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MQorbXNnaWQgIlNHSSB4ZnMiCittc2dzdHIgIlNHSSB4ZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MgorbXNnaWQgIlNHSSB4ZnNsb2ciCittc2dzdHIgIlNHSSB4ZnNsb2ciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MworbXNnaWQgIlNHSSB4bHYiCittc2dzdHIgIlNHSSB4bHYiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NAorbXNnaWQgIlNHSSB4dm0iCittc2dzdHIgIlNHSSB4dm0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NSBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAKK21zZ2lkICJMaW51eCBzd2FwIgorbXNnc3RyICJMaW51eCBzd2FwIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTYgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUxCittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICJMaW51eCBuYXRpdm8iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTIgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MworbXNnaWQgIkxpbnV4IExWTSIKK21zZ3N0ciAiTGludXggTFZNIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTgKK21zZ2lkICJMaW51eCBSQUlEIgorbXNnc3RyICJMaW51eCBSQUlEIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJBY2NvcmRpbmcgdG8gTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMgdGhlIExhYmVsIG11c3Qgbm90IGNvbnRhaW4gbW9yZSB0aGFuICIKKyI1MTIgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlNlY29uZG8gTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMgbCdldGljaGV0dGEgbm9uIGRldmUgY29udGVuZXJlIHBpw7kgZGkgNTEyICIKKyJieXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJSaWxldmF0byB1biBkaXNrbGFiZWwgc2dpIGNvbiBjaGVja3N1bSBlcnJhdG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXMgKGRpc2sgbGFiZWwgU0dJKTogJWQgdGVzdGluZSwgJWxsdSBzZXR0b3JpXG4iCisiJWQgY2lsaW5kcmksICVkIGNpbGluZHJpIGZpc2ljaVxuIgorIiVkIHNldHQvY2lsIHN1cHBsZW1lbnRhcmksIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiVW5pdMOgID0gJXMgZGkgJWQgKiAlZCBieXRlXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNjbyAlcyAoZGlzayBsYWJlbCBTR0kpOiAlZCB0ZXN0aW5lLCAlbGx1IHNldHRvcmksICVkIGNpbGluZHJpXG4iCisiVW5pdMOgID0gJXMgZGkgJWQgKiAlZCBieXRlXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIHBhcnRpdGlvbnMgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgICBTdGFydCAgICAgICBFbmQgICBTZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKyItLS0tLSBwYXJ0aXppb25pIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgSW5pemlvICAgICAgRmluZSAgU2V0dG9yaSAgSWQgIFNpc3RlbWFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG4iCisiQm9vdGZpbGU6ICVzXG4iCisiLS0tLS0gRGlyZWN0b3J5IEVudHJpZXMgLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIEluZm9hdnZpbyAtLS0tLVxuIgorIkZpbGUgZGkgYXZ2aW86ICVzXG4iCisiLS0tLS0gVm9jaSBkaXJlY3RvcnkgLS0tLS1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiUyZDogJS0xMHMgc2V0dG9yZSU1dSBkaW1lbnNpb25lJTh1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiRmlsZSBkaSBhdnZpbyBub24gdmFsaWRvIVxuIgorIlx0SWwgZmlsZSBkaSBhdnZpbyBkZXZlIGVzc2VyZSB1biBwYXRoIGFzc29sdXRvIG5vbiBudWxsbyxcbiIKKyJcdGVzLiBcIi91bml4XCIgbyBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0Tm9tZSBkZWwgZmlsZSBkaSBhdnZpbyB0cm9wcG8gbHVuZ286ICBkZXZlIGVzc2VyZSBkaSAxNiBieXRlIGFsIG1hc3NpbW8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRJbCBmaWxlIGRpIGF2dmlvIGRldmUgYXZlcmUgdW4gcGF0aCBjb21wbGV0by5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMxMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCZSBhd2FyZSwgdGhhdCB0aGUgYm9vdGZpbGUgaXMgbm90IGNoZWNrZWQgZm9yIGV4aXN0ZW5jZS5cbiIKKyJcdFNHSSdzIGRlZmF1bHQgaXMgXCIvdW5peFwiIGFuZCBmb3IgYmFja3VwIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRTaSB0ZW5nYSBjb250byBkZWwgZmF0dG8gY2hlIG5vbiB2aWVuZSB2ZXJpZmljYXRhIGwnZXNpc3RlbnphIGRlbCBmaWxlIGRpICIKKyJhdnZpby5cbiIKKyJcdEwnaW1wb3N0YXppb25lIHByZWRlZmluaXRhIGRpIFNHSSDDqCBcIi91bml4XCIgZSBwZXIgaWwgYmFja3VwIFwiL3VuaXguc2F2ZSIKKyJcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RmlsZSBkaSBhdnZpbyBjYW1iaWF0byBpbiBcIiVzXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICJQcmVzZW50ZSBwacO5IGRpIHVuYSB2b2NlIGRpc2NvIGludGVyby5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJOZXNzdW5hIHBhcnRpemlvbmUgZGVmaW5pdGFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJJUklYIGxpa2VzIHdoZW4gUGFydGl0aW9uIDExIGNvdmVycyB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIklSSVggZ3JhZGlzY2UgY2hlIGxhIHBhcnRpemlvbmUgMTEgY29tcHJlbmRhIGwnaW50ZXJvIGRpc2NvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIHNob3VsZCBzdGFydCBhdCBibG9jayAwLFxuIgorIm5vdCBhdCBkaXNrYmxvY2sgJWQuXG4iCittc2dzdHIgIiIKKyJMYSBwYXJ0aXppb25lIGRlbGwnaW50ZXJvIGRpc2NvIGRvdnJlYmJlIGluaXppYXJlIGFsIGJsb2NjbyAwLFxuIgorIm5vbiBhbCBibG9jY28gJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gaXMgb25seSAlZCBkaXNrYmxvY2sgbGFyZ2UsXG4iCisiYnV0IHRoZSBkaXNrIGlzICVkIGRpc2tibG9ja3MgbG9uZy5cbiIKK21zZ3N0ciAiIgorIkxhIHBhcnRpemlvbmUgZGVsIGRpc2NvIGludGVybyDDqCBzb2xhbWVudGUgZGkgJWQgYmxvY2NoaSxcbiIKKyJtYSBpbCBkaXNjbyDDqCBkaSAlZCBibG9jY2hpLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiVW5hIHBhcnRpemlvbmUgKCMxMSkgZG92cmViYmUgY29tcHJlbmRlcmUgaWwgZGlzY28gaW50ZXJvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiTGEgcGFydGl6aW9uZSAlZCBub24gaW5pemlhIGFsIGxpbWl0ZSBkZWwgY2lsaW5kcm8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiTGEgcGFydGl6aW9uZSAlZCBub24gdGVybWluYSBhbCBsaW1pdGUgZGVsIGNpbGluZHJvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBQYXJ0aXRpb24gJWQgYW5kICVkIG92ZXJsYXAgYnkgJWQgc2VjdG9ycy5cbiIKK21zZ3N0ciAiTGUgcGFydGl6aW9uaSAlZCBlICVkIHNpIHNvdnJhcHBvbmdvbm8gZGkgJWQgc2V0dG9yaS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ4NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgb2YgJTh1IHNlY3RvcnMgLSBzZWN0b3JzICU4dS0ldVxuIgorbXNnc3RyICJJbnRlcnZhbGxvIGRpICU4dSBzZXR0b3JpIG5vbiB1dGlsaXp6YXRvIC0gc2V0dG9yaSAlOHUtJXVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGJvb3QgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisibGEgcGFydGl6aW9uZSBkaSBhdnZpbyBub24gZXNpc3RlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMYSBwYXJ0aXppb25lIGRpIHN3YXAgbm9uIGVzaXN0ZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGhhcyBubyBzd2FwIHR5cGUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMYSBwYXJ0aXppb25lIGRpIHN3YXAgbm9uIGhhIHRpcG8gc3dhcC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMworIywgYy1mb3JtYXQKK21zZ2lkICJcdFlvdSBoYXZlIGNob3NlbiBhbiB1bnVzdWFsIGJvb3QgZmlsZSBuYW1lLlxuIgorbXNnc3RyICJcdFNpIMOoIHNlbGV6aW9uYXRvIHVuIG5vbWUgZmlsZSBkaSBhdnZpbyBub24gY29tdW5lLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIsOIIHBvc3NpYmlsZSBtb2RpZmljYXJlIHNvbGFtZW50ZSBpbCB0YWcgZGVsbGUgcGFydGl6aW9uaSBub24gdnVvdGUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzgKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIG9mIHR5cGUgXCJTR0kgdm9saGRyXCIsIHRoZSBJUklYIHN5c3RlbSB3aWxsIHJlbHkgb24gaXQgdG9cbiIKKyJyZXRyaWV2ZSBmcm9tIGl0cyBkaXJlY3Rvcnkgc3RhbmRhbG9uZSB0b29scyBsaWtlIHNhc2ggYW5kIGZ4LlxuIgorIk9ubHkgdGhlIFwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrIHNlY3Rpb24gbWF5IHZpb2xhdGUgdGhpcy5cbiIKKyJUeXBlIFlFUyBpZiB5b3UgYXJlIHN1cmUgYWJvdXQgdGFnZ2luZyB0aGlzIHBhcnRpdGlvbiBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIlNpIHJhY2NvbWFuZGEgY2hlIGxhIHBhcnRpemlvbmUgaW4gb2Zmc2V0IDBcbiIKKyJzaWEgZGkgdGlwbyBcIlNHSSB2b2xoZHJcIiwgaWwgc2lzdGVtYSBJUklYIHNpIGJhc2Vyw6Agc3UgZGkgZXNzYSBwZXJcbiIKKyJyZWN1cGVyYXJlIGRhbGxhIGRpcmVjdG9yeSBnbGkgc3RydW1lbnRpIHN0YW5kYWxvbmUgY29tZSBzYXNoIGUgZnguXG4iCisiU29sYW1lbnRlIGxhIHNlemlvbmUgZGVsbCdpbnRlcm8gZGlzY28gXCJTR0kgdm9sdW1lXCIgcHXDsiB2aW9sYXJsYS5cbiIKKyJEaWdpdGFyZSBZRVMgKHPDrCkgc2Ugc2kgw6ggY2VydGkgZGkgdm9sZXIgY29kaWZpY2FyZSBxdWVzdGEgcGFydGl6aW9uZSBpbiAiCisibW9kbyBkaWZmZXJlbnRlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIFlvdSBrbm93LCBZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2s/XG4iCittc2dzdHIgIlNpIHNhIGNoZSBzdWwgZGlzY28gZXNpc3RlIHVuYSBzb3ZyYXBwb3NpemlvbmUgZGkgcGFydGl6aW9uaT9cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICJBdHRlbXB0aW5nIHRvIGdlbmVyYXRlIGVudGlyZSBkaXNrIGVudHJ5IGF1dG9tYXRpY2FsbHkuXG4iCittc2dzdHIgIlRlbnRhdGl2byBkaSBnZW5lcmFyZSBhdXRvbWF0aWNhbWVudGUgbGEgdm9jZSBwZXIgbCdpbnRlcm8gZGlzY28uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkwnaW50ZXJvIGRpc2NvIMOoIGdpw6AgY29wZXJ0byBkYSBwYXJ0aXppb25pLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICIiCisiU292cmFwcG9zaXppb25lIGRpIHBhcnRpemlvbmkgc3VsIGRpc2NvLiBSaXNvbHZlcmUgYW56aXR1dHRvIHF1ZXN0byAiCisicHJvYmxlbWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIlNpIHJhY2NvbWFuZGEgY2hlIGwndW5kaWNlc2ltYSBwYXJ0aXppb25lXG4iCisiY29wcmEgbCdpbnRlcm8gZGlzY28gZSBzaWEgZGkgdGlwbyBcIlNHSSB2b2x1bWVcIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIGdldCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKyJTaSBhdnLDoCB1bmEgc292cmFwcG9zaXppb25lIGRpIHBhcnRpemlvbmkgc3VsIGRpc2NvLiBSaXNvbHZlcmUgYW56aXR1dHRvICIKKyJxdWVzdG8gcHJvYmxlbWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIExhc3QgJXMiCittc2dzdHIgIiBVbHRpbW8gJXMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IFNHSSBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd2lsbCBiZSB1bnJlY292ZXJhYmx5IGxvc3QuXG4iCisiXG4iCittc2dzdHIgIiIKKyJDcmVhemlvbmUgZGkgdW5hIG51b3ZhIGRpc2tsYWJlbCBTR0kuIExlIG1vZGlmaWNoZSByaW1hcnJhbm5vIGluIG1lbW9yaWFcbiIKKyJmaW5vIGEgcXVhbmRvIHNpIGRlY2lkZSBkaSBzY3JpdmVybGUuIERvcG9kaWNow6ksIG92dmlhbWVudGUsIGlsIGNvbnRlbnV0b1xuIgorInByZWNlZGVudGUgc2Fyw6AgZGVmaW5pdGl2YW1lbnRlIHBlcnNvLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzE4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6ICBCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlcy4gIFVzaW5nIGdlb21ldHJ5IGN5bGluZGVyIHZhbHVlIG9mICUiCisiZC5cbiIKKyJUaGlzIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgZm9yIGRldmljZXMgPiAzMy44IEdCLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIGtlZXAgcGFyYW1ldGVycyBvZiBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIlRlbnRhdGl2byBkaSBtYW50ZW5lcmUgaSBwYXJhbWV0cmkgZGVsbGEgcGFydGl6aW9uZSAlZCBpbiBjb3Jzby5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczNAorIywgYy1mb3JtYXQKK21zZ2lkICJJRD0lMDJ4XHRTVEFSVD0lZFx0TEVOR1RIPSVkXG4iCittc2dzdHIgIklEPSUwMnhcdElOSVpJTz0lZFx0TFVOR0hFWlpBPSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIk5vbiBhc3NlZ25hdG8iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MAorbXNnaWQgIlN1bk9TIHJvb3QiCittc2dzdHIgIlN1bk9TIHJvb3QiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MQorbXNnaWQgIlN1bk9TIHN3YXAiCittc2dzdHIgIlN1bk9TIHN3YXAiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MgorbXNnaWQgIlN1bk9TIHVzciIKK21zZ3N0ciAiU3VuT1MgdXNyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDMKK21zZ2lkICJXaG9sZSBkaXNrIgorbXNnc3RyICJEaXNjbyBpbnRlcm8iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBzdGFuZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICJTdW5PUyB2YXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorbXNnaWQgIlN1bk9TIGNhY2hlZnMiCittc2dzdHIgIlN1bk9TIGNhY2hlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OQorbXNnaWQgIlN1bk9TIHJlc2VydmVkIgorbXNnc3RyICJTdW5PUyByaXNlcnZhdG8iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMworbXNnaWQgIkxpbnV4IHJhaWQgYXV0b2RldGVjdCIKK21zZ3N0ciAiQXV0b3JpbGV2YW1lbnRvIHJhaWQgZGkgTGludXgiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorIlJpbGV2YXRhIHVuYSBkaXNrbGFiZWwgc3VuIGNvbiBjaGVja3N1bSBlcnJhdG8uXG4iCisiUHJvYmFiaWxtZW50ZSBzaSBkb3ZyYW5ubyBpbXBvc3RhcmUgdHV0dGkgaSB2YWxvcmksXG4iCisicGVyIGVzLiB0ZXN0aW5lLCBzZXR0b3JpLCBjaWxpbmRyaSBlIHBhcnRpemlvbmlcbiIKKyJvIGZvcnphcmUgdW4nZXRpY2hldHRhIG51b3ZhIChjb21hbmRvIHMgbmVsIG1lbnUgcHJpbmNpcGFsZSlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgdmVyc2lvbiBbMHglMDh4XS5cbiIKK21zZ3N0ciAiUmlsZXZhdG8gdW4gZGlza2xhYmVsIGNvbiB2ZXJzaW9uZSBlcnJhdGEgWzB4JTA4eF0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHNhbml0eSBbMHglMDh4XS5cbiIKK21zZ3N0ciAiUmlsZXZhdG8gdW4gZGlza2xhYmVsIGNvbiBzYW5pdHkgZXJyYXRvIFsweCUwOHhdLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICJSaWxldmF0byB1biBkaXNrbGFiZWwgY29uIG51bV9wYXJ0aXRpb25zIGVycmF0byBbJXVdLlxuIgorCisjIEZJWE1FCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBXcm9uZyB2YWx1ZXMgbmVlZCB0byBiZSBmaXhlZCB1cCBhbmQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyhyaXRlKVxuIgorbXNnc3RyICJBdHRlbnppb25lOiBpIHZhbG9yaSBub24gdmFsaWRpIGRldm9ubyBlc3NlcmUgY29ycmV0dGkgY29uIHcocml0ZSlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkNyZWF6aW9uZSBkaSB1bmEgbnVvdmEgZGlza2xhYmVsIHN1bi4gTGUgbW9kaWZpY2hlIHJpbWFycmFubm8gbWVtb3JpenphdGVcbiIKKyJzb2xhbWVudGUgZmlubyBhIHF1YW5kbyBzaSBkZWNpZGUgZGkgc2NyaXZlcmxlLiBEb3BvZGljaMOpLCBjaGlhcmFtZW50ZSwgaWxcbiIKKyJjb250ZW51dG8gcHJlY2VkZW50ZSBub24gc2Fyw6AgcmVjdXBlcmFiaWxlLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAiU2V0dG9yaS90cmFjY2lhIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2Vzbid0IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJMYSBwYXJ0aXppb25lICVkIG5vbiBmaW5pc2NlIGFsIGxpbWl0ZSBkZWwgY2lsaW5kcm9cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgb3ZlcmxhcHMgd2l0aCBvdGhlcnMgaW4gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJMYSBwYXJ0aXppb25lICVkIHNpIHNvdnJhcHBvbmUgYWQgYWx0cmUgbmVpIHNldHRvcmkgJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAwLSVkXG4iCittc2dzdHIgIkludGVydmFsbG8gaW51dGlsaXp6YXRvIC0gc2V0dG9yaSAwLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJJbnRlcnZhbGxvIGludXRpbGl6emF0byAtIHNldHRvcmkgJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3RoZXIgcGFydGl0aW9ucyBhbHJlYWR5IGNvdmVyIHRoZSB3aG9sZSBkaXNrLlxuIgorIkRlbGV0ZSBzb21lL3NocmluayB0aGVtIGJlZm9yZSByZXRyeS5cbiIKK21zZ3N0ciAiIgorIkFsdHJlIHBhcnRpemlvbmkgY29wcm9ubyBnacOgIGlsIGRpc2NvIGludGVyby5cbiIKKyJFbGltaW5hcm5lIGFsY3VuZS9yaW1waWNjaW9saXJsZSBwcmltYSBkaSByaXByb3ZhcmUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiU2kgcmFjY29tYW5kYSBjaGUgbCd1bmRpY2VzaW1hIHBhcnRpemlvbmVcbiIKKyJjb3ByYSBsJ2ludGVybyBkaXNjbyBlIHNpYSBkaSB0aXBvIFwiU0dJIHZvbHVtZVwiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIklsIHNldHRvcmUgJWQgw6ggZ2nDoCBhbGxvY2F0b1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZW4ndCBjb3ZlcmVkIHRoZSB3aG9sZSBkaXNrIHdpdGggdGhlIDNyZCBwYXJ0aXRpb24sIGJ1dCB5b3VyIHZhbHVlXG4iCisiJWQgJXMgY292ZXJzIHNvbWUgb3RoZXIgcGFydGl0aW9uLiBZb3VyIGVudHJ5IGhhcyBiZWVuIGNoYW5nZWRcbiIKKyJ0byAlZCAlc1xuIgorbXNnc3RyICIiCisiTm9uIHNpIMOoIGNvcGVydG8gbCdpbnRlcm8gZGlzY28gY29uIGxhIHRlcnphIHBhcnRpemlvbmUsIG1hIGlsIHZhbG9yZVxuIgorIiVkICVzIGNvcHJlIGFsY3VuZSBhbHRyZSBwYXJ0aXppb25pLiBMYSB2b2NlIGltbWVzc2Egw6ggc3RhdGEgY2FtYmlhdGFcbiIKKyJpbiAlZCAlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyJTZSBzaSB2dW9sZSBtYW50ZW5lcmUgbGEgY29tcGF0aWJpbGl0w6AgY29uIFN1bk9TL1NvbGFyaXMsIHByZW5kZXJlXG4iCisiaW4gY29uc2lkZXJhemlvbmUgZGkgbGFzY2lhcmUgcXVlc3RhIHBhcnRpemlvbmUgY29tZSBkaXNjbyBpbnRlcm8gKDUpLCAiCisicGFydGVuZG8gZGEgMCwgY29uICV1IHNldHRvcmlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIlNpIHJhY2NvbWFuZGEgY2hlIGxhIHBhcnRpemlvbmUgYSBvZmZzZXQgMFxuIgorInNpYSB1biBmaWxlc3lzdGVtIFVGUywgRVhUMkZTIG8gc3dhcCBTdW5PUyAuIExhIGNvbGxvY2F6aW9uZSBpbiBxdWVsbGEgIgorInBvc2l6aW9uZSBkZWxsbyBzd2FwIExpbnV4XG4iCisicG90cmViYmUgcHJvdm9jYXJlIGwnZWxpbWluYXppb25lIGRlbGxhIHRhYmVsbGUgZGVsbGUgcGFydGl6aW9uaSBlIGRlbCAiCisiYm9vdGJsb2NrLlxuIgorIkRpZ2l0YXJlIFlFUyAgKHPDrCkgc2Ugc2kgw6ggY2VydGkgZGkgdm9sZXJlIGNoZSBxdWVsbGEgcGFydGl6aW9uZVxuIgorInZlbmdhIGNvZGlmaWNhdGEgY29uIDgyIChzd2FwIExpbnV4ICk6ICIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNjbyAlcyAoZGlzayBsYWJlbCBkZWxsYSBTdW4pOiAlZCB0ZXN0aW5lLCAlZCBzZXR0b3JpLCAlZCBycG1cbiIKKyIlZCBjaWxpbmRyaSwgJWQgY2lsaW5kcmkgYWx0ZXJuYXRpdmksICVkIGNpbGluZHJpIGZpc2ljaVxuIgorIiVkIHNldHQuL2NpbC4gc3VwcGxlbWVudGFyaSwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbml0w6AgPSAlcyBkaSAlZCAqIDUxMiBieXRlXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2NvICVzIChldGljaGV0dGEgZGlzY28gU3VuKTogJWQgdGVzdGluZSwgJWQgc2V0dG9yaSwgJWQgY2lsaW5kcmlcbiIKKyJVbml0w6AgPSAlcyBkaSAlZCAqIDUxMiBieXRlXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEZsYWcgICAgU3RhcnQgICAgICAgRW5kICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIEZsYWcgICAgSW5pemlvICAgICAgIEZpbmUgICAgQmxvY2NoaSAgIElkICBTaXN0ZW1hXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MjUKK21zZ2lkICJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiTnVtZXJvIGRpIGNpbGluZHJpIGFsdGVybmF0aXZpIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjM3Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIlNldHRvcmkgc3VwcGxlbWVudGFyaSBwZXIgY2lsaW5kcm8iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NDQKK21zZ2lkICJJbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiRmF0dG9yZSBkaSBpbnRlcmxlYXZlIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjUxCittc2dpZCAiUm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIlZlbG9jaXTDoCBkaSByb3RhemlvbmUgKHJwbSkiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTgKK21zZ2lkICJOdW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICJOdW1lcm8gZGVpIGNpbGluZHJpIGZpc2ljaSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIlZ1b3RvIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcKK21zZ2lkICJGQVQxMiIKK21zZ3N0ciAiRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OAorbXNnaWQgIlhFTklYIHJvb3QiCittc2dzdHIgIlhFTklYIHJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OQorbXNnaWQgIlhFTklYIHVzciIKK21zZ3N0ciAiWEVOSVggdXNyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwCittc2dpZCAiRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMQorbXNnaWQgIkV4dGVuZGVkIgorbXNnc3RyICJFc3Rlc28iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTIKK21zZ2lkICJGQVQxNiIKK21zZ3N0ciAiRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTMKK21zZ2lkICJIUEZTL05URlMiCittc2dzdHIgIkhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNAorbXNnaWQgIkFJWCIKK21zZ3N0ciAiQUlYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE1Cittc2dpZCAiQUlYIGJvb3RhYmxlIgorbXNnc3RyICJBSVggYXZ2aWFiaWxlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgQm9vdCBNYW5hZ2VyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICJXOTUgRXN0ZXNvIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIxCittc2dpZCAiT1BVUyIKK21zZ3N0ciAiT1BVUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMgorbXNnaWQgIkhpZGRlbiBGQVQxMiIKK21zZ3N0ciAiRkFUMTIgbmFzY29zdG8iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjMKK21zZ2lkICJDb21wYXEgZGlhZ25vc3RpY3MiCittc2dzdHIgIkRpYWdub3N0aWNhIENvbXBhcSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiBuYXNjb3N0byA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI1Cittc2dpZCAiSGlkZGVuIEZBVDE2IgorbXNnc3RyICJGQVQxNiBuYXNjb3N0byIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNgorbXNnaWQgIkhpZGRlbiBIUEZTL05URlMiCittc2dzdHIgIkhQRlMvTlRGUyBuYXNjb3N0byIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJBU1QgU21hcnRTbGVlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIlc5NSBGQVQzMiBuYXNjb3N0byIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOQorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSBuYXNjb3N0byIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMTYgKExCQSkiCittc2dzdHIgIlc5NSBGQVQxNiAoTEJBKSBuYXNjb3N0byIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJSZWN1cGVybyBQYXJ0aXRpb25NYWdpYyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNAorbXNnaWQgIlZlbml4IDgwMjg2IgorbXNnc3RyICJWZW5peCA4MDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNQorbXNnaWQgIlBQQyBQUmVQIEJvb3QiCittc2dzdHIgIlBQQyBQUmVQIEJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMmEgcGFydGl6LiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDNyZCBwYXJ0aXouIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQwCittc2dpZCAiT25UcmFjayBETSIKK21zZ3N0ciAiT25UcmFjayBETSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MQorbXNnaWQgIk9uVHJhY2sgRE02IEF1eDEiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDIKK21zZ2lkICJDUC9NIgorbXNnc3RyICJDUC9NIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQzCittc2dpZCAiT25UcmFjayBETTYgQXV4MyIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NAorbXNnaWQgIk9uVHJhY2tETTYiCittc2dzdHIgIk9uVHJhY2tETTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDUKK21zZ2lkICJFWi1Ecml2ZSIKK21zZ3N0ciAiIEVaLURyaXZlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ2Cittc2dpZCAiR29sZGVuIEJvdyIKK21zZ3N0ciAiR29sZGVuIEJvdyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NworbXNnaWQgIlByaWFtIEVkaXNrIgorbXNnc3RyICJQcmlhbSBFZGlzayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkyCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTkKK21zZ2lkICJTcGVlZFN0b3IiCittc2dzdHIgIiBTcGVlZFN0b3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICJHTlUgSFVSRCBvIFN5c1YiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTAKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAyODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MQorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDM4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMzg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUyCittc2dpZCAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorbXNnc3RyICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTMKK21zZ2lkICJQQy9JWCIKK21zZ3N0ciAiUEMvSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTQKK21zZ2lkICJPbGQgTWluaXgiCittc2dzdHIgIlZlY2NoaW8gTWluaXgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTUKK21zZ2lkICJNaW5peCAvIG9sZCBMaW51eCIKK21zZ3N0ciAiTWluaXggLyB2ZWNjaGlvIExpbnV4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2Cittc2dpZCAiTGludXggc3dhcCAvIFNvbGFyaXMiCittc2dzdHIgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU4Cittc2dpZCAiT1MvMiBoaWRkZW4gQzogZHJpdmUiCittc2dzdHIgIkMgbmFzY29zdG8gT1MvMjogZHJpdmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTkKK21zZ2lkICJMaW51eCBleHRlbmRlZCIKK21zZ3N0ciAiTGludXggZXN0ZXNvIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgInNldCB2b2x1bWUgTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorbXNnaWQgIkxpbnV4IHBsYWludGV4dCIKK21zZ3N0ciAiTGludXggcGxhaW50ZXh0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY0Cittc2dpZCAiQW1vZWJhIgorbXNnc3RyICJBbW9lYmEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjUKK21zZ2lkICJBbW9lYmEgQkJUIgorbXNnc3RyICJBbW9lYmEgQkJUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY2Cittc2dpZCAiQlNEL09TIgorbXNnc3RyICJCU0QvT1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjcKK21zZ2lkICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCittc2dzdHIgIkliZXJuYXppb25lIElCTSBUaGlua3BhZCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OAorbXNnaWQgIkZyZWVCU0QiCittc2dzdHIgIkZyZWVCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjkKK21zZ2lkICJPcGVuQlNEIgorbXNnc3RyICJPcGVuQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIk5lWFRTVEVQIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcxCittc2dpZCAiRGFyd2luIFVGUyIKK21zZ3N0ciAiRGFyd2luIFVGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MgorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiTmV0QlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjczCittc2dpZCAiRGFyd2luIGJvb3QiCittc2dzdHIgIkRhcndpbiBib290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc0CisjLCBmdXp6eQorbXNnaWQgIkhGUyAvIEhGUysiCittc2dzdHIgIk9TLzIgSFBGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NQorbXNnaWQgIkJTREkgZnMiCittc2dzdHIgIkJTREkgZnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIkJTREkgc3dhcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NworbXNnaWQgIkJvb3QgV2l6YXJkIGhpZGRlbiIKK21zZ3N0ciAiQm9vdCBXaXphcmQgaGlkZGVuIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICJTb2xhcmlzIGJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzkKK21zZ2lkICJTb2xhcmlzIgorbXNnc3RyICJTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgwCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTIpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODEKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MgorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2KSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgzCittc2dpZCAiU3lyaW54IgorbXNnc3RyICJTeXJpbngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODQKK21zZ2lkICJOb24tRlMgZGF0YSIKK21zZ3N0ciAiTm9uLUZTIGRhdGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODUKK21zZ2lkICJDUC9NIC8gQ1RPUyAvIC4uLiIKK21zZ3N0ciAiQ1AvTSAvIENUT1MgLyAuLi4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODcKK21zZ2lkICJEZWxsIFV0aWxpdHkiCittc2dzdHIgIkRlbGwgVXRpbGl0eSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OAorIywgZnV6enkKK21zZ2lkICJCb290SXQiCittc2dzdHIgIkF2dmlvIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg5Cittc2dpZCAiRE9TIGFjY2VzcyIKK21zZ3N0ciAiYWNjZXNzbyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTEKK21zZ2lkICJET1MgUi9PIgorbXNnc3RyICJET1MgUi9PIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk0Cittc2dpZCAiQmVPUyBmcyIKK21zZ3N0ciAiQmVPUyBmcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorIywgZnV6enkKK21zZ2lkICJHUFQiCittc2dzdHIgIkVGSSBHUFQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIkVGSSAoRkFULTEyLzE2LzMyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NworbXNnaWQgIkxpbnV4L1BBLVJJU0MgYm9vdCIKK21zZ3N0ciAiTGludXgvUEEtUklTQyBib290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMAorbXNnaWQgIkRPUyBzZWNvbmRhcnkiCittc2dzdHIgIkRPUyBzZWNvbmRhcmlvIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJlcnJvcmUgZGkgcmljZXJjYSBzdSAlcyAtIGltcG9zc2liaWxlIHJpY2VyY2FyZSBhICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgImVycm9yZSBkaSByaWNlcmNhOiBzaSB2b2xldmEgMHglMDh4JTA4eCwgc2kgw6ggb3R0ZW51dG8gMHglMDh4JTA4eFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTUKK21zZ2lkICJvdXQgb2YgbWVtb3J5IC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIm1lbW9yaWEgaW5zdWZmaWNpZW50ZSAtIHRlcm1pbmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIwIGZkaXNrL3NmZGlzay5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGVycm9yIG9uICVzIC0gY2Fubm90IHJlYWQgc2VjdG9yICVsdVxuIgorbXNnc3RyICJlcnJvcmUgaW4gbGV0dHVyYSBzdSAlcyAtIGltcG9zc2liaWxlIGxlZ2dlcmUgaWwgc2V0dG9yZSAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkVSUk9SOiBzZWN0b3IgJWx1IGRvZXMgbm90IGhhdmUgYW4gbXNkb3Mgc2lnbmF0dXJlXG4iCittc2dzdHIgIkVSUk9SRTogaWwgc2V0dG9yZSAlbHUgbm9uIGhhIHVuYSBmaXJtYSBtc2Rvc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXMgLSBjYW5ub3Qgd3JpdGUgc2VjdG9yICVsdVxuIgorbXNnc3RyICJlcnJvcmUgZGkgc2NyaXR0dXJhIHN1ICVzIC0gaW1wb3NzaWJpbGUgc2NyaXZlcmUgaWwgc2V0dG9yZSAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiBzZWN0b3Igc2F2ZSBmaWxlICglcylcbiIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlIGlsIGZpbGUgZGkgc2FsdmF0YWdnaW8gc2V0dG9yZSBwYXJ0aXppb25lICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzXG4iCittc2dzdHIgImVycm9yZSBkaSBzY3JpdHR1cmEgc3UgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJpbXBvc3NpYmlsZSBlc2VndWlyZSBzdGF0IGRlbCBmaWxlIGRpIHJpcHJpc3Rpbm8gcGFydGl6aW9uZSAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0MAorbXNnaWQgInBhcnRpdGlvbiByZXN0b3JlIGZpbGUgaGFzIHdyb25nIHNpemUgLSBub3QgcmVzdG9yaW5nXG4iCittc2dzdHIgIiIKKyJpbCBmaWxlIGRpIHJpcHJpc3Rpbm8gcGFydGl6aW9uZSBoYSB1bmEgZGltZW5zaW9uZSBlcnJhdGEgLSBpbCByaXByaXN0aW5vICIKKyJub24gdmllbmUgZWZmZXR0dWF0b1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDQKK21zZ2lkICJvdXQgb2YgbWVtb3J5P1xuIgorbXNnc3RyICJtZW1vcmlhIGluc3VmZmljaWVudGU/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlIGlsIGZpbGUgZGkgcmlwcmlzdGlubyBwYXJ0aXppb25lICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiZXJyb3JlIGR1cmFudGUgbGEgbGV0dHVyYSBkaSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gZGV2aWNlICVzIGZvciB3cml0aW5nXG4iCittc2dzdHIgImltcG9zc2liaWxlIGFwcmlyZSBpbCBkaXNwb3NpdGl2byAlcyBwZXIgc2NyaXZlcmVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICJlcnJvcmUgZHVyYW50ZSBsYSBzY3JpdHR1cmEgZGVsIHNldHRvcmUgJWx1IHN1ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IGdlb21ldHJ5XG4iCittc2dzdHIgIkRpc2NvICVzOiBpbXBvc3NpYmlsZSBvdHRlbmVyZSBsYSBnZW9tZXRyaWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICJEaXNjbyAlczogaW1wb3NzaWJpbGUgb3R0ZW5lcmUgbGEgZGltZW5zaW9uZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHN0YXJ0PSVsdSAtIHRoaXMgbG9va3MgbGlrZSBhIHBhcnRpdGlvbiByYXRoZXIgdGhhblxuIgorInRoZSBlbnRpcmUgZGlzay4gVXNpbmcgZmRpc2sgb24gaXQgaXMgcHJvYmFibHkgbWVhbmluZ2xlc3MuXG4iCisiW1VzZSB0aGUgLS1mb3JjZSBvcHRpb24gaWYgeW91IHJlYWxseSB3YW50IHRoaXNdXG4iCittc2dzdHIgIiIKKyJBdHRlbnppb25lOiBpbml6aW89JWx1IC0gc2VtYnJhIHVuYSBwYXJ0aXppb25lIHBpdXR0b3N0byBjaGVcbiIKKyJsJ2ludGVybyBkaXNjby4gVXRpbGl6emFyZSBmZGlzayBzdSBkaSBlc3NvIHByb2JhYmlsbWVudGUgbm9uIGhhIHNlbnNvLlxuIgorIltVdGlsaXp6YXJlIGwnb3B6aW9uZSAtLWZvcmNlIHNlIGxvIHNpIGRlc2lkZXJhIGRhdnZlcm9dXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBoZWFkc1xuIgorbXNnc3RyICJBdHRlbnppb25lOiBIRElPX0dFVEdFTyBkaWNlIGNoZSB2aSBzb25vICVsdSB0ZXN0aW5lXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iCittc2dzdHIgIkF0dGVuemlvbmU6IEhESU9fR0VUR0VPIGRpY2UgY2hlIHZpIHNvbm8gJWx1IHNldHRvcmlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIkF0dGVuemlvbmU6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gZGljZSBjaGUgdmkgc29ubyAlbHUgY2lsaW5kcmlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1bmxpa2VseSBudW1iZXIgb2Ygc2VjdG9ycyAoJWx1KSAtIHVzdWFsbHkgYXQgbW9zdCA2M1xuIgorIlRoaXMgd2lsbCBnaXZlIHByb2JsZW1zIHdpdGggYWxsIHNvZnR3YXJlIHRoYXQgdXNlcyBDL0gvUyBhZGRyZXNzaW5nLlxuIgorbXNnc3RyICIiCisiQXR0ZW56aW9uZTogbnVtZXJvIGltcHJvYmFiaWxlIGRpIHNldHRvcmkgKCVsdSkgLSBkaSBzb2xpdG8gc29ubyBhbCBtYXNzaW1vICIKKyI2M1xuIgorIlF1ZXN0byBjcmVlcsOgIHByb2JsZW1pIGNvbiBpIHNvZnR3YXJlIGNoZSB1dGlsaXp6YSBsJ2luZGlyaXp6YW1lbnRvIEMvSC9TLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2NvICVzOiAlbHUgY2lsaW5kcmksICVsdSB0ZXN0aW5lLCAlbHUgc2V0dG9yaS90cmFjY2lhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRlbGxhIHBhcnRpemlvbmUgJXMgaGEgdW4gdmFsb3JlIGltcG9zc2liaWxlIHBlciBsYSB0ZXN0aW5hOiAlbHUgIgorIihkb3ZyZWJiZSBlc3NlcmUgaW4gMC0lbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBzZWN0b3I6ICVsdSAoc2hvdWxkIGJlIGluIDEtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRlbGxhIHBhcnRpemlvbmUgJXMgaGEgdW4gdmFsb3JlIGltcG9zc2liaWxlIHBlciBpbCBzZXR0b3JlOiAlbHUgIgorIihkb3ZyZWJiZSBlc3NlcmUgaW4gMS0lbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICVsdSAoc2hvdWxkIGJlIGluIDAtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRlbGxhIHBhcnRpemlvbmUgJXMgaGEgdW4gdmFsb3JlIGltcG9zc2liaWxlIHBlciBpIGNpbGluZHJpOiAlbHUgIgorIihkb3ZyZWJiZSBlc3NlcmUgaW4gMC0lbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWQgIE5hbWVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIk5vbWUgSWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSAuLi5cbiIKK21zZ3N0ciAiUmlsZXR0dXJhIGRlbGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSBpbiBjb3Jzby4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTEKKyMsIGZ1enp5Cittc2dpZCAiIgorIlRoZSBjb21tYW5kIHRvIHJlLXJlYWQgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQuXG4iCisiUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIG9yIHJlYm9vdCB5b3VyIHN5c3RlbSBub3csXG4iCisiYmVmb3JlIHVzaW5nIG1rZnNcbiIKK21zZ3N0ciAiIgorIklsIGNvbWFuZG8gcGVyIGxhIHJpbGV0dHVyYSBkZWxsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkgbm9uIMOoIHJpdXNjaXRvXG4iCisiUmlhdnZpYXJlIGFkZXNzbyBpbCBzaXN0ZW1hIHByaW1hIGRpIHV0aWxpenphcmUgbWtmc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2xvc2luZyAlc1xuIgorbXNnc3RyICJFcnJvcmUgZHVyYW50ZSBsYSBjaGl1c3VyYSBkaSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo4NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIHN1Y2ggcGFydGl0aW9uXG4iCittc2dzdHIgIiVzOiBuZXNzdW5hIHBhcnRpemlvbmUgZGkgcXVlc3RvIHRpcG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODc4Cittc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCAtIHVzaW5nIHNlY3RvcnNcbiIKK21zZ3N0ciAiZm9ybWF0byBub24gcmljb25vc2NpdXRvIC0gdXRpbGl6em8gZGVpIHNldHRvcmkgaW4gY29yc29cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAiZm9ybWF0byBub24gaW1wbGVtZW50YXRvIC0gdXRpbGl6em8gZGkgJXMgaW4gY29yc29cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJVbml0w6AgPSBjaWxpbmRyaSBkaSAlbHUgYnl0ZSwgYmxvY2NoaSBkaSAxMDI0IGJ5dGUsIGNvbnRlZ2dpYW5kbyBkYSAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiICAgRGlzcG9zaXRpdm8gQm9vdCBJbml6aW8gICAgICBGaW5lICAgI2NpbGluLiAgICNibG9jY2hpICAgSWQgIFNpc3RlbWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IHNlY3RvcnMgb2YgNTEyIGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJVbml0w6AgPSBzZXR0b3JpIGRpIDUxMiBieXRlLCBjb250ZWdnaWFuZG8gZGEgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgICBTdGFydCAgICAgICBFbmQgICAjc2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBEaXNwb3NpdGl2byBCb290ICAgIEluaXppbyAgICAgIEZpbmUgICNzZXR0b3JpIElkICBTaXN0ZW1hXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiVW5pdMOgID0gYmxvY2NoaSBkaSAxMDI0IGJ5dGUsIGNvbnRlZ2dpYW5kbyBkYSAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgU3RhcnQgICAgICAgRW5kICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIERpc3Bvc2l0aXZvICBCb290ICBJbml6aW8gICAgICAgRmluZSAgI2Jsb2NjaGkgIElkICBTaXN0ZW1hXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVuaXTDoCA9IG1lYmlieXRlIGRhIDEwNDg1NzYgYnl0ZSwgYmxvY2NoaSBkYSAxMDI0IGJ5dGUsIGNvbnRhbmRvIGRhICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIERpc3Bvc2l0aXZvIEluaXppbyBCb290ICAgRmluZSAgICBNQiAgICNibG9jY2hpICBJZCAgU2lzdGVtYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdGluaXppbzogKGMsaCxzKSBwcmV2aXN0byAoJWxkLCVsZCwlbGQpIHRyb3ZhdG8gKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIlx0XHRlbmRlbnphOiAoYyxoLHMpIHByZXZpc3RvICglbGQsJWxkLCVsZCkgdHJvdmF0byAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJsYSBwYXJ0aXppb25lIHRlcm1pbmEgc3VsIGNpbGluZHJvICVsZCwgb2x0cmUgbGEgZmluZSBkZWwgZGlzY29cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiTm9uIHNpIMOoIHRyb3ZhdGEgYWxjdW5hIHBhcnRpemlvbmVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJBdHRlbnppb25lOiBsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkgc2VtYnJhIHNpYSBzdGF0YSBjcmVhdGFcbiIKKyIgIHBlciBDL0gvUz0qLyVsZC8lbGQgKGFsIHBvc3RvIGRpICVsZC8lbGQvJWxkKS5cbiIKKyJJbiBxdWVzdG8gZWxlbmNvIHZlcnLDoCBhc3N1bnRhIHRhbGUgZ2VvbWV0cmlhLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIm5lc3N1bmEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIHByZXNlbnRlLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg4CisjLCBjLWZvcm1hdAorbXNnaWQgInN0cmFuZ2UsIG9ubHkgJWQgcGFydGl0aW9ucyBkZWZpbmVkLlxuIgorbXNnc3RyICJzdHJhbm8sIHNvbm8gZGVmaW5pdGUgc29sbyAlZCBwYXJ0aXppb25pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iCittc2dzdHIgIiIKKyJBdHRlbnppb25lOiBsYSBwYXJ0aXppb25lICVzIGhhIGRpbWVuc2lvbmUgMCBtYSBub24gw6ggY29udHJhc3NlZ25hdGEgY29tZSAiCisidnVvdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiQXR0ZW56aW9uZTogbGEgcGFydGl6aW9uZSAlcyBoYSBkaW1lbnNpb25lIDAgZWQgw6ggYXZ2aWFiaWxlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiQXR0ZW56aW9uZTogbGEgcGFydGl6aW9uZSAlcyBoYSBkaW1lbnNpb25lIDAgZSBpbml6aW8gbm9uIG51bGxvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzICIKK21zZ3N0ciAiQXR0ZW56aW9uZTogbGEgcGFydGl6aW9uZSAlcyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgbm90IGNvbnRhaW5lZCBpbiBwYXJ0aXRpb24gJXNcbiIKK21zZ3N0ciAibm9uIMOoIGNvbnRlbnV0YSBuZWxsYSBwYXJ0aXppb25lICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9ucyAlcyAiCittc2dzdHIgIkF0dGVuemlvbmU6IGxlIHBhcnRpemlvbmkgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgImUgJXMgc2kgc292cmFwcG9uZ29ub1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgY29udGFpbnMgcGFydCBvZiB0aGUgcGFydGl0aW9uIHRhYmxlIChzZWN0b3IgJWx1KSxcbiIKKyJhbmQgd2lsbCBkZXN0cm95IGl0IHdoZW4gZmlsbGVkXG4iCittc2dzdHIgIiIKKyJBdHRlbnppb25lOiBsYSBwYXJ0aXppb25lICVzIGNvbnRpZW5lIHBhcnRlIGRlbGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaVxuIgorIihzZXR0b3JlICVsdSksIGUgbGEgZGlzdHJ1Z2dlcsOgIHF1YW5kbyB2aWVuZSByaWVtcGl0YS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgc3RhcnRzIGF0IHNlY3RvciAwXG4iCittc2dzdHIgIkF0dGVuemlvbmU6IGxhIHBhcnRpemlvbmUgJXMgaW5pemlhIGFsIHNldHRvcmUgMFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBleHRlbmRzIHBhc3QgZW5kIG9mIGRpc2tcbiIKK21zZ3N0ciAiQXR0ZW56aW9uZTogbGEgcGFydGl6aW9uZSAlcyBzaSBlc3RlbmRlIGRvcG8gbGEgZmluZSBkZWwgZGlzY29cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorIlRyYSBsZSBwYXJ0aXppb25pIHByaW1hcmllLCBhbCBtYXNzaW1vIHVuYSBwdcOyIGVzc2VyZSBlc3Rlc2FcbiIKKyIgIChhbmNoZSBzZSBxdWVzdG8gbm9uIMOoIHVuIHByb2JsZW1hIHBlciBMaW51eClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJBdHRlbnppb25lOiBsYSBwYXJ0aXppb25lICVzIG5vbiBpbml6aWEgYWwgbGltaXRlIGRpIHVuIGNpbGluZHJvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IGVuZCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIkF0dGVuemlvbmU6IGxhIHBhcnRpemlvbmUgJXMgbm9uIHRlcm1pbmEgYWwgbGltaXRlIGRpIHVuIGNpbGluZHJvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiQXR0ZW56aW9uZTogcGnDuSBkaSB1bmEgcGFydGl6aW9uZSBwcmltYXJpYSDDqCBjb250cmFzc2VnbmF0YSBjb21lIGF2dmlhYmlsZSAiCisiKGF0dGl2YSlcbiIKKyJRdWVzdG8gbm9uIGhhIGltcG9ydGFuemEgcGVyIExJTE8sIG1hIE1CUiBET1Mgbm9uIGF2dmllcsOgIHF1ZXN0byBkaXNjby5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxOAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1c3VhbGx5IG9uZSBjYW4gYm9vdCBmcm9tIHByaW1hcnkgcGFydGl0aW9ucyBvbmx5XG4iCisiTElMTyBkaXNyZWdhcmRzIHRoZSBgYm9vdGFibGUnIGZsYWcuXG4iCittc2dzdHIgIiIKKyJBdHRlbnppb25lOiBkaSBzb2xpdG8gbCdhdnZpbyDDqCBwb3NzaWJpbGUgc29sbyBkYSBwYXJ0aXppb25pIHByaW1hcmllXG4iCisiTElMTyBub24gcHJlbmRlIGluIGNvbnNpZGVyYXppb25lIGlsIGZsYWcgXCJib290YWJsZVwiIChhdnZpYWJpbGUpLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzI0Cittc2dpZCAiIgorIldhcm5pbmc6IG5vIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJBdHRlbnppb25lOiBuZXNzdW5hIHBhcnRpemlvbmUgcHJpbWFyaWEgw6ggY29udHJhc3NlZ25hdGEgY29tZSBhdnZpYWJpbGUgIgorIihhdHRpdmEpXG4iCisiUXVlc3RvIG5vbiBoYSBpbXBvcnRhbnphIHBlciBMSUxPLCBtYSBNQlIgRE9TIG5vbiBhdnZpZXLDoCBxdWVzdG8gZGlzY28uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAiaW5pemlvIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisicGFydGl6aW9uZSAlczogaW5pemlvOiAoYyxoLHMpIHByZXZpc3RvICglbGQsJWxkLCVsZCkgdHJvdmF0byAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgImZpbmUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzOiBlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyIgcGFydGl6aW9uZSAlczogZmluZTogKGMsaCxzKSBwcmV2aXN0byAoJWxkLCVsZCwlbGQpIHRyb3ZhdG8gKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAibGEgcGFydGl6aW9uZSAlcyB0ZXJtaW5hIHN1bCBjaWxpbmRybyAlbGQsIG9sdHJlIGxhIGZpbmUgZGVsIGRpc2NvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHNoaWZ0ZWQgc3RhcnQgb2YgdGhlIGV4dGQgcGFydGl0aW9uIGZyb20gJWxkIHRvICVsZFxuIgorIihGb3IgbGlzdGluZyBwdXJwb3NlcyBvbmx5LiBEbyBub3QgY2hhbmdlIGl0cyBjb250ZW50cy4pXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM4NAorbXNnaWQgIiIKKyJXYXJuaW5nOiBleHRlbmRlZCBwYXJ0aXRpb24gZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeS5cbiIKKyJET1MgYW5kIExpbnV4IHdpbGwgaW50ZXJwcmV0IHRoZSBjb250ZW50cyBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIkF0dGVuemlvbmU6IGxhIHBhcnRpemlvbmUgZXN0ZXNhIG5vbiBpbml6aWEgYWwgbGltaXRlIGRpIHVuIGNpbGluZHJvLlxuIgorIkRPUyBlIExpbnV4IGludGVycHJldGVyYW5ubyBpIGNvbnRlbnV0aSBpbiBtb2RvIGRpdmVyc28uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MDIgZmRpc2svc2ZkaXNrLmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zIC0gaWdub3JpbmcgdGhvc2UgcGFzdCBuciAoJWQpXG4iCittc2dzdHIgInRyb3BwZSBwYXJ0aXppb25pIC0gc3RvIGlnbm9yYW5kbyBxdWVpIG51bWVyaSBwYXNzYXRpICglZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQxNworbXNnaWQgInRyZWUgb2YgcGFydGl0aW9ucz9cbiIKK21zZ3N0ciAic3RydXR0dXJhIGRlbGxlIHBhcnRpemlvbmk/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAicmlsZXZhdG8gbCdhbW1pbmlzdHJhdG9yZSBkZWwgZGlzY28gLSBpbXBvc3NpYmlsZSBkYSBnZXN0aXJlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgInRyb3ZhdGEgZmlybWEgRE02IC0gdGVybWluYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAic3RyYW5vLi4uLCB1bmEgcGFydGl6aW9uZSBlc3Rlc2EgZGkgZGltZW5zaW9uZSAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJzdHJhbm8uLi4sIHVuYSBwYXJ0aXppb25lIEJTRCBkaSBkaW1lbnNpb25lIDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzOiB1bnJlY29nbml6ZWQgcGFydGl0aW9uIHRhYmxlIHR5cGVcbiIKK21zZ3N0ciAiICVzOiB0aXBvIGRpIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSBub24gcmljb25vc2NpdXRvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgImZsYWcgLW4gZGF0bzogbmVzc3VuYSBtb2RpZmljYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjMyCittc2dpZCAiRmFpbGVkIHNhdmluZyB0aGUgb2xkIHNlY3RvcnMgLSBhYm9ydGluZ1xuIgorbXNnc3RyICJTYWx2YXRhZ2dpbyBkZWkgdmVjY2hpIHNldHRvcmkgbm9uIHJpdXNjaXRvIC0gaW50ZXJydXppb25lIGluIGNvcnNvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzcgZmRpc2svc2ZkaXNrLmM6MTY0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgIlNjcml0dHVyYSBkZWxsYSBwYXJ0aXppb25lIHN1ICVzIG5vbiByaXVzY2l0YVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzE5Cittc2dpZCAibG9uZyBvciBpbmNvbXBsZXRlIGlucHV0IGxpbmUgLSBxdWl0dGluZ1xuIgorbXNnc3RyICJsaW5lYSBkaSBpbnB1dCBsdW5nYSBvIGluY29tcGxldGEgLSB1c2NpdGEgaW4gY29yc29cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc1NQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogYD0nIGV4cGVjdGVkIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgImVycm9yZSBkaSBpbnB1dDogXCI9XCIgcHJldmlzdG8gZG9wbyBpbCBjYW1wbyAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzYyCisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiB1bmV4cGVjdGVkIGNoYXJhY3RlciAlYyBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICJlcnJvcmUgZGkgaW5wdXQ6IGNhcmF0dGVyZSBub24gcHJldmlzdG8gJWMgZG9wbyBpbCBjYW1wbyAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAiaW5wdXQgbm9uIHJpY29ub3NjaXV0bzogJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgIm51bWVybyB0cm9wcG8gZ3JhbmRlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICJzZWduaSBzdHJhbmkgZG9wbyBpbCBudW1lcm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTkzOAorbXNnaWQgIm5vIHJvb20gZm9yIHBhcnRpdGlvbiBkZXNjcmlwdG9yXG4iCittc2dzdHIgIm5vbiBjJ8OoIHNwYXppbyBwZXIgaWwgZGVzY3JpdHRvcmUgZGkgcGFydGl6aW9uZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTcxCittc2dpZCAiY2Fubm90IGJ1aWxkIHN1cnJvdW5kaW5nIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJpbXBvc3NpYmlsZSBjb3N0aXR1aXJlIHVuYSBwYXJ0aXppb25lIGVzdGVzYSBhZGlhY2VudGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjAyMgorbXNnaWQgInRvbyBtYW55IGlucHV0IGZpZWxkc1xuIgorbXNnc3RyICJ0cm9wcGkgY2FtcGkgZGkgaW5wdXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA1NgorbXNnaWQgIk5vIHJvb20gZm9yIG1vcmVcbiIKK21zZ3N0ciAiTm9uIGMnw6ggc3BhemlvIHBlciBhbHRyaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIlRpcG8gbm9uIHZhbGlkb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGdpdmVuIHNpemUgKCVsdSkgZXhjZWVkcyBtYXggYWxsb3dhYmxlIHNpemUgKCVsdSlcbiIKK21zZ3N0ciAiIgorIkF0dGVuemlvbmU6IGxhIGRpbWVuc2lvbmUgaW5kaWNhdGEgKCVsdSkgw6ggc3VwZXJpb3JlIGFsbGEgZGltZW5zaW9uZSBtYXNzaW1hICIKKyJjb25zZW50aXRhICglbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMTMKK21zZ2lkICJXYXJuaW5nOiBlbXB0eSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiQXR0ZW56aW9uZTogcGFydGl6aW9uZSB2dW90YVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBwYXJ0aXRpb24gc3RhcnQgKGVhcmxpZXN0ICVsdSlcbiIKK21zZ3N0ciAiQXR0ZW56aW9uZTogaW5pemlvIHBhcnRpemlvbmUgbm9uIHZhbGlkbyAoJWx1IHRyb3BwbyBhbnRpY2lwYXRvKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTQwCittc2dpZCAidW5yZWNvZ25pemVkIGJvb3RhYmxlIGZsYWcgLSBjaG9vc2UgLSBvciAqXG4iCittc2dzdHIgImZsYWcgYXZ2aWFiaWxlIG5vbiByaWNvbm9zY2l1dG8gLSBzY2VnbGllcmUgLSBvICpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1NyBmZGlzay9zZmRpc2suYzoyMTcwCittc2dpZCAicGFydGlhbCBjLGgscyBzcGVjaWZpY2F0aW9uP1xuIgorbXNnc3RyICJTcGVjaWZpY2F6aW9uZSBjLGgscyBwYXJ6aWFsZT9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE4MQorbXNnaWQgIkV4dGVuZGVkIHBhcnRpdGlvbiBub3Qgd2hlcmUgZXhwZWN0ZWRcbiIKK21zZ3N0ciAicGFydGl6aW9uZSBlc3Rlc2EgaW4gcG9zaXppb25lIG5vbiBwcmV2aXN0YVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjEzCittc2dpZCAiYmFkIGlucHV0XG4iCittc2dzdHIgImlucHV0IG5vbiB2YWxpZG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAidHJvcHBlIHBhcnRpemlvbmlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisiSW5wdXQgbmVsIHNlZ3VlbnRlIGZvcm1hdG87IHBlciBpIGNhbXBpIG1hbmNhbnRpIHZpZW5lIGltbWVzc28gdW4gdmFsb3JlICIKKyJwcmVkZWZpbml0by5cbiIKKyI8aW5pemlvPiA8ZGltZW5zaW9uZT4gPHRpcG8gW0UsUyxMLFgsZXNhZGVjaW1hbGVdPiA8YXZ2aWFiaWxlIFstLCpdPiAiCisiPGNpbGluZHJvLHRlc3RpbmEsc2V0dG9yZT4gPGNpbGluZHJvLHRlc3RpbmEsc2V0dG9yZT5cbiIKKyJTb2xpdGFtZW50ZSDDqCBuZWNlc3NhcmlvIHNwZWNpZmljYXJlIHNvbGFtZW50ZSA8aW5pemlvPiBlIDxkaW1lbnNpb25lPiAoIGUgIgorImZvcnNlIDx0aXBvPikuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBkZXZpY2UgLi4uXG4iCittc2dzdHIgIlVzbzogJXMgW29wemlvbmldIGRpc3Bvc2l0aXZvLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTUKK21zZ2lkICJkZXZpY2U6IHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhIG9yIC9kZXYvc2RhIgorbXNnc3RyICJkaXNwb3NpdGl2bzogcXVhbGNvc2EgY29tZSAvZGV2L2hkYSBvIC9kZXYvc2RhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk2Cittc2dpZCAidXNlZnVsIG9wdGlvbnM6IgorbXNnc3RyICJvcHppb25pIHV0aWxpOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgICAtcyBbb3IgLS1zaG93LXNpemVdOiBsaXN0IHNpemUgb2YgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAtcyBbbyAtLXNob3ctc2l6ZV06IGVsZW5jbyBkaW1lbnNpb25pIGRpIHVuYSBwYXJ0aXppb25lIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiAgICAtYyBbbyAtLWlkXTogICAgICAgIHN0YW1wYSBvIG1vZGlmaWNhIGRlbGwnSWQgZGVsbGEgcGFydGl6aW9uZSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgICAtbCBbb3IgLS1saXN0XTogICAgICBsaXN0IHBhcnRpdGlvbnMgb2YgZWFjaCBkZXZpY2UiCittc2dzdHIgIiAgICAtbCBbbyAtLWxpc3RdOiAgICAgIGVsZW5jbyBkZWxsZSBwYXJ0aXppb25pIGRpIGNpYXNjdW4gZGlzcG9zaXRpdm8iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAtZCBbbyAtLWR1bXBdOiAgICAgIGlkZW0sIG1hIGluIHVuIGZvcm1hdG8gYWRhdHRvIHBlciB1biBzdWNjZXNzaXZvIGlucHV0IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiIKKyIgICAgLWkgW28gLS1pbmNyZW1lbnRdOiBudW1lcm8gZGVpIGNpbGluZHJpIGVjYy4gcGFydGVuZG8gZGEgMSBpbnZlY2UgY2hlIGRhICIKKyIwIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAyCittc2dpZCAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBhY2NlcHQvcmVwb3J0IGluIHVuaXRzIG9mIHNlY3RvcnMvYmxvY2tzL2N5bGluZGVycy8iCisiTUIiCittc2dzdHIgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXR0YS9yaXBvcnRhIGluIHVuaXTDoCBkaSBzZXR0b3JpL2Jsb2NjaGkvIgorImNpbGluZHJpL01CIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAzCittc2dpZCAiICAgIC1UIFtvciAtLWxpc3QtdHlwZXNdOmxpc3QgdGhlIGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgIC1UIFtvIC0tbGlzdC10eXBlc106ZWxlbmNhIGkgdGlwaSBkaSBwYXJ0aXppb25lIGNvbm9zY2l1dGkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorIiAgICAtRCBbbyAtLURPU106ICAgICAgIHBlciBsYSBjb21wYXRpYmlsaXTDoCBjb24gRE9TOiBzcHJlY2EgdW4gcG8nIGRpIHNwYXppbyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAtUiBbb3IgLS1yZS1yZWFkXTogICBtYWtlIGtlcm5lbCByZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisiICAgIC1SIFtvIC0tcmUtcmVhZF06ICAgZmEgcmlsZWdnZXJlIGFsIGtlcm5lbCBsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDYKK21zZ2lkICIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIgorbXNnc3RyICIgICAgLU4jIDogICAgICAgICAgICAgICAgbW9kaWZpY2Egc29sYW1lbnRlIGxhIHBhcnRpemlvbmUgY29uIG51bWVybyAjIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA3Cittc2dpZCAiICAgIC1uIDogICAgICAgICAgICAgICAgIGRvIG5vdCBhY3R1YWxseSB3cml0ZSB0byBkaXNrIgorbXNnc3RyICIgICAgLW4gOiAgICAgICAgICAgICAgICAgbm9uIHNjcml2ZSByZWFsbWVudGUgc3VsIGRpc2NvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIiCisiICAgIC1PIGZpbGUgOiAgICAgICAgICAgIHNhbHZhIHN1bCBmaWxlIGkgc2V0dG9yaSBjaGUgdmVycmFubm8gc292cmFzY3JpdHRpIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA5Cittc2dpZCAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIHJlc3RvcmUgdGhlc2Ugc2VjdG9ycyBhZ2FpbiIKK21zZ3N0ciAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIHJpcHJpc3RpbmEgcXVlc3RpIHNldHRvcmkgbnVvdmFtZW50ZSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIgorbXNnc3RyICIgICAgLXYgW28gLS12ZXJzaW9uXTogICBzdGFtcGEgdmVyc2lvbmUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgLT8gW29yIC0taGVscF06ICAgICAgcHJpbnQgdGhpcyBtZXNzYWdlIgorbXNnc3RyICIgICAgLT8gW28gLS1oZWxwXTogICAgIHN0YW1wYSBxdWVzdG8gbWVzc2FnZ2lvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEyCittc2dpZCAiZGFuZ2Vyb3VzIG9wdGlvbnM6IgorbXNnc3RyICJvcHppb25pIHBlcmljb2xvc2U6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEzCittc2dpZCAiICAgIC1nIFtvciAtLXNob3ctZ2VvbWV0cnldOiBwcmludCB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgZ2VvbWV0cnkiCittc2dzdHIgIiIKKyIgICAgLWcgW28gLS1zaG93LWdlb21ldHJ5XTogc3RhbXBhIGwnaWRlYSBkZWwga2VybmVsIHJpZ3VhcmRvIGFsbGEgZ2VvbWV0cmlhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE0Cittc2dpZCAiIgorIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gIgorInRhYmxlIgorbXNnc3RyICIiCisiICAgIC1HIFtvIC0tc2hvdy1wdC1nZW9tZXRyeV06IHN0YW1wYSBsYSBnZW9tZXRyaWEgc3RpbWF0YSBpbiBiYXNlIGFsbGFcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE1Cittc2dpZCAiIgorIiAgICAteCBbb3IgLS1zaG93LWV4dGVuZGVkXTogYWxzbyBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMgb24gb3V0cHV0XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBleHBlY3QgZGVzY3JpcHRvcnMgZm9yIHRoZW0gb24gaW5wdXQiCittc2dzdHIgIiIKKyIgICAgLXggW28gLS1zaG93LWV4dGVuZGVkXTogZWxlbmNhIGFuY2hlIGxlIHBhcnRpemlvbmkgZXN0ZXNlIGluIG91dHB1dFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIHByZXZlZGUgaSByaXNwZXR0aXZpIGRlc2NyaXR0b3JpIGluIGlucHV0IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiAgICAtTCAgW28gLS1MaW51eF06ICAgICAgbm9uIHNlZ25hbGEgbGUgY29zZSBpcnJpbGV2YW50aSBwZXIgTGludXgiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgLXEgIFtvciAtLXF1aWV0XTogICAgICBzdXBwcmVzcyB3YXJuaW5nIG1lc3NhZ2VzIgorbXNnc3RyICIgICAgLXEgIFtvIC0tcXVpZXRdOiAgICAgIGVsaW1pbmEgaSBtZXNzYWdnaSBkaSBhdnZlcnRpbWVudG8iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgWW91IGNhbiBvdmVycmlkZSB0aGUgZGV0ZWN0ZWQgZ2VvbWV0cnkgdXNpbmc6IgorbXNnc3RyICIgICAgw4ggcG9zc2liaWxlIG5vbiB1c2FyZSBsYSBnZW9tZXRyaWEgcmlsZXZhdGEgdXRpbGl6emFuZG86IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIwCittc2dpZCAiICAgIC1DIyBbb3IgLS1jeWxpbmRlcnMgI106c2V0IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1DIyBbbyAtLWN5bGluZHJlcyAjXTppbXBvc3RhIGlsIG51bWVybyBkaSBjaWxpbmRyaSBkYSB1dGlsaXp6YXJlIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIxCittc2dpZCAiICAgIC1IIyBbb3IgLS1oZWFkcyAjXTogICAgc2V0IHRoZSBudW1iZXIgb2YgaGVhZHMgdG8gdXNlIgorbXNnc3RyICIgICAgLUgjIFtvIC0taGVhZHMgI106ICAgIGltcG9zdGEgaWwgbnVtZXJvIGRpIHRlc3RpbmUgZGEgdXRpbGl6emFyZSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLVMjIFtvIC0tc2VjdG9ycyAjXTogIGltcG9zdGEgaWwgbnVtZXJvIGRpIHNldHRvcmkgZGEgdXRpbGl6emFyZSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMworbXNnaWQgIllvdSBjYW4gZGlzYWJsZSBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcgd2l0aDoiCittc2dzdHIgIsOIIHBvc3NpYmlsZSBkaXNhdHRpdmFyZSB0dXR0ZSBsZSB2ZXJpZmljaGUgZGkgY29lcmVuemEgY29uOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIgICAgLWYgIFtvIC0tZm9yY2VdOiAgICAgIGZhIGNpw7IgY2hlIGRpY28sIGFuY2hlIHNlIMOoIHN0dXBpZG8iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzAKK21zZ2lkICJVc2FnZToiCittc2dzdHIgIlVzbzoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIlcyBkZXZpY2VcdFx0IGVsZW5jYSBsZSBwYXJ0aXppb25pIGF0dGl2ZSBzdWwgZGlzcG9zaXRpdm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2UgbjEgbjIgLi4uIGFjdGl2YXRlIHBhcnRpdGlvbnMgbjEgLi4uLCBpbmFjdGl2YXRlIHRoZSByZXN0XG4iCittc2dzdHIgIiVzIGRldmljZSBuMSBuMiAuLi4gYXR0aXZhIGxlIHBhcnRpemlvbmkgbjEgLi4uLCBkaXNhdHRpdmEgaWwgcmVzdG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtQW4gZGV2aWNlXHQgYWN0aXZhdGUgcGFydGl0aW9uIG4sIGluYWN0aXZhdGUgdGhlIG90aGVyIG9uZXNcbiIKK21zZ3N0ciAiJXMgLUFuIGRldmljZVx0IGF0dGl2YSBsYSBwYXJ0aXppb25lIG4sIGRpc2F0dGl2YSBsZSBhbHRyZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBzZmRpc2sgIgorImRvZXNuJ3Qgc3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIlV0aWxpenphcmUgaWwgZmxhZyAtZm9yY2UgcGVyIG9sdHJlcGFzc2FyZSB0dXR0aSBpIGNvbnRyb2xsaS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgIm5lc3N1biBjb21hbmRvP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInRvdGFsOiAlbGx1IGJsb2Nrc1xuIgorbXNnc3RyICJ0b3RhbGU6ICVsbHUgYmxvY2NoaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcwCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLXByaW50LWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyXG4iCittc2dzdHIgIlVzbzogc2ZkaXNrIC0tcHJpbnQtaWQgbnVtZXJvIHBhcnRpemlvbmUgZGlzcG9zaXRpdm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MgorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgSWRcbiIKK21zZ3N0ciAiVXNvOiBzZmRpc2sgLS1jaGFuZ2UtaWQgbnVtZXJvIHBhcnRpemlvbmUgZGlzcG9zaXRpdm8gSWRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3NAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBbSWRdXG4iCittc2dzdHIgIlVzbzogc2ZkaXNrIC0taWQgbnVtZXJvIHBhcnRpemlvbmUgZGlzcG9zaXRpdm8gW0lkXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjgxCittc2dpZCAiY2FuIHNwZWNpZnkgb25seSBvbmUgZGV2aWNlIChleGNlcHQgd2l0aCAtbCBvciAtcylcbiIKK21zZ3N0ciAiIgorIsOoIHBvc3NpYmlsZSBzcGVjaWZpY2FyZSBzb2xhbWVudGUgdW4gZGlzcG9zaXRpdm8oZWNjZXR0byBjb24gLWwgbyAtcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwNworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyByZWFkLXdyaXRlXG4iCittc2dzdHIgImltcG9zc2liaWxlIGFwcmlyZSAlcyBpbiBsZXR0dXJhIGUgc2NyaXR0dXJhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlICVzIGluIGxldHR1cmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiJXM6IE9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3NTMgZmRpc2svc2ZkaXNrLmM6Mjc4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlczogJWxkIGNpbGluZHJpLCAlbGQgdGVzdGluZSwgJWxkIHNldHRvcmkvdHJhY2NpZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgc2l6ZSBvZiAlc1xuIgorbXNnc3RyICJpbXBvc3NpYmlsZSBvdHRlbmVyZSBsYSBkaW1lbnNpb25lIGRpICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIGFjdGl2ZSBieXRlOiAweCV4IGluc3RlYWQgb2YgMHg4MFxuIgorbXNnc3RyICJieXRlIGF0dGl2byBub24gdmFsaWRvOiAweCV4IGFsIHBvc3RvIGRpIDB4ODBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkwMyBmZGlzay9zZmRpc2suYzoyOTU4IGZkaXNrL3NmZGlzay5jOjI5OTEKK21zZ2lkICIiCisiRG9uZVxuIgorIlxuIgorbXNnc3RyICIiCisiRmluZVxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisiQ2kgc29ubyAlZCBwYXJ0aXppb25pIHByaW1hcmllIGF0dGl2ZS4gUXVlc3RvIMOoIGlycmVsZXZhbnRlIHBlciBMSUxPLFxuIgorIm1hIE1CUiBET1MgIGF2dmllcsOgIHNvbGFtZW50ZSB1biBkaXNjbyBjb24gMSBwYXJ0aXppb25lIGF0dGl2YS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgImxhIHBhcnRpemlvbmUgJXMgaGEgaWQgJXggZSBub24gw6ggbmFzY29zdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgSWQgJWx4XG4iCittc2dzdHIgIklkIG5vbiB2YWxpZG8gJWx4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAiUXVlc3RvIGRpc2NvIMOoIGF0dHVhbG1lbnRlIGluIHVzby5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAiRXJyb3JlIGlycmV2ZXJzaWJpbGU6IGltcG9zc2liaWxlIHRyb3ZhcmUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiQXR0ZW56aW9uZTogJXMgbm9uIMOoIHVuIGRpc3Bvc2l0aXZvIGEgYmxvY2NoaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAiIgorIlZlcmlmaWNhIGluIGNvcnNvIGNoZSBpbiBxdWVzdG8gbW9tZW50byBuZXNzdW5vIHN0aWEgdXRpbGl6emFuZG8gcXVlc3RvICIKKyJkaXNjby4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM0Cittc2dpZCAiIgorIlxuIgorIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlIC0gcmVwYXJ0aXRpb25pbmcgaXMgcHJvYmFibHkgYSBiYWQgaWRlYS5cbiIKKyJVbW91bnQgYWxsIGZpbGUgc3lzdGVtcywgYW5kIHN3YXBvZmYgYWxsIHN3YXAgcGFydGl0aW9ucyBvbiB0aGlzIGRpc2suXG4iCisiVXNlIHRoZSAtLW5vLXJlcmVhZCBmbGFnIHRvIHN1cHByZXNzIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIiIKKyJcbiIKKyJRdWVzdG8gZGlzY28gw6ggYXR0dWFsbWVudGUgaW4gdXNvOiByaXBhcnRpcmxvIMOoIHByb2JhYmlsbWVudGUgdW5hIGNhdHRpdmEgIgorImlkZWEuXG4iCisiU21vbnRhcmUgdHV0dGkgaSBmaWxlIHN5c3RlbSBlIGFycmVzdGFyZSBsZSBwYXJ0aXppb25pIHN3YXAgc3UgcXVlc3RvICIKKyJkaXNjby5cbiIKKyJVc2FyZSBsJ29wemlvbmUgLS1uby1yZXJlYWQgcGVyIGVsaW1pbmFyZSBxdWVzdG8gY29udHJvbGxvLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM4Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgYWxsIGNoZWNrcy5cbiIKK21zZ3N0ciAiVXRpbGl6emFyZSBpbCBmbGFnIC1mb3JjZSBwZXIgb2x0cmVwYXNzYXJlIHR1dHRpIGkgY29udHJvbGxpLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDQyCittc2dpZCAiT0tcbiIKK21zZ3N0ciAiT0tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1MQorIywgYy1mb3JtYXQKK21zZ2lkICJPbGQgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJWZWNjaGlhIHNpdHVhemlvbmU6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgY2hhbmdlIGl0XG4iCittc2dzdHIgIkxhIHBhcnRpemlvbmUgJWQgbm9uIGVzaXN0ZSwgbm9uIMOoIHBvc3NpYmlsZSBtb2RpZmljYXJsYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBzaXR1YXRpb246XG4iCittc2dzdHIgIk51b3ZhIHNpdHVhemlvbmU6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjgKK21zZ2lkICIiCisiSSBkb24ndCBsaWtlIHRoZXNlIHBhcnRpdGlvbnMgLSBub3RoaW5nIGNoYW5nZWQuXG4iCisiKElmIHlvdSByZWFsbHkgd2FudCB0aGlzLCB1c2UgdGhlIC0tZm9yY2Ugb3B0aW9uLilcbiIKK21zZ3N0ciAiIgorIlF1ZXN0ZSBwYXJ0aXppb25pIG5vbiBtaSBwaWFjY2lvbm8gLSBuZXNzdW5hIG1vZGlmaWNhXG4iCisiKHNlIHF1ZXN0byDDqCBxdWFudG8gc2kgZGVzaWRlcmEsIHV0aWxpenphcmUgbCdvcHppb25lIC0tZm9yY2UuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDcxCittc2dpZCAiSSBkb24ndCBsaWtlIHRoaXMgLSBwcm9iYWJseSB5b3Ugc2hvdWxkIGFuc3dlciBOb1xuIgorbXNnc3RyICJRdWVzdG8gbm9uIG1pIHBpYWNlIC0gcHJvYmFiaWxtZW50ZSBzaSBkb3ZyZWJiZSByaXNwb25kZXJlIG5vXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXJlIHlvdSBzYXRpc2ZpZWQgd2l0aCB0aGlzPyBbeW5xXSAiCittc2dzdHIgIlNvZGRpc2ZhdHRpIGRpIHF1ZXN0bz8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIHlvdSB3YW50IHRvIHdyaXRlIHRoaXMgdG8gZGlzaz8gW3lucV0gIgorbXNnc3RyICJTY3JpdmVyZSBxdWVzdG8gc3UgZGlzY28/IFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisic2ZkaXNrOiBwcmVtYXR1cmUgZW5kIG9mIGlucHV0XG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZmRpc2s6IGZpbmUgcHJlbWF0dXJhIGRlbGwnaW5wdXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4NQorbXNnaWQgIlF1aXR0aW5nIC0gbm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIlVzY2l0YSBpbiBjb3JzbyAtIG5lc3N1bmEgbW9kaWZpY2FcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIgorbXNnc3RyICJTY2VnbGllcmUgdW4nb3B6aW9uZSBwZXIgbGEgcmlzcG9zdGEgdHJhIHksbixxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisiTGEgbnVvdmEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pIMOoIHN0YXRhIHNjcml0dGEgY29uIHN1Y2Nlc3NvXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorIlNlIMOoIHN0YXRhIGNyZWF0YSBvIG1vZGlmaWNhdGEgdW5hIHBhcnRpemlvbmUgRE9TLCAvZGV2L2ZvbzcsIHBlciBlc2VtcGlvLCAiCisidXRpbGl6emFyZSBkZCgxKVxuIgorIiBwZXIgYXp6ZXJhcmUgaSBwcmltaSA1MTIgYnl0ZTogZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MVxuIgorIihDb25zdWx0YXJlIGZkaXNrKDgpLilcbiIKKworIzogZnNjay9mc2NrLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBjb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgYXByaXJlICVzOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogYmFkIGZvcm1hdCBvbiBsaW5lICVkIG9mICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MzUyCittc2dpZCAiIgorIldBUk5JTkc6IFlvdXIgL2V0Yy9mc3RhYiBkb2VzIG5vdCBjb250YWluIHRoZSBmc2NrIHBhc3Nub1xuIgorIlx0ZmllbGQuICBJIHdpbGwga2x1ZGdlIGFyb3VuZCB0aGluZ3MgZm9yIHlvdSwgYnV0IHlvdVxuIgorIlx0c2hvdWxkIGZpeCB5b3VyIC9ldGMvZnN0YWIgZmlsZSBhcyBzb29uIGFzIHlvdSBjYW4uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NDYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiAlczogbm90IGZvdW5kXG4iCittc2dzdHIgInVtb3VudDogJXM6IG5vbiB0cm92YXRvIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlczogc3RhdHVzIGlzICV4LCBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjY0MworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCB3aXRoICVzIChleGl0IHN0YXR1cyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiJXM6IGVycm9yZSAlZCBkdXJhbnRlIGxhIGRlY29tcHJlc3Npb25lISAlcCglZClcbiIKKworIzogZnNjay9mc2NrLmM6NzI0Cittc2dpZCAiIgorIkVpdGhlciBhbGwgb3Igbm9uZSBvZiB0aGUgZmlsZXN5c3RlbSB0eXBlcyBwYXNzZWQgdG8gLXQgbXVzdCBiZSBwcmVmaXhlZFxuIgorIndpdGggJ25vJyBvciAnIScuXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzQzCisjLCBmdXp6eQorbXNnaWQgIkNvdWxkbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgZmlsZXN5c3RlbSB0eXBlc1xuIgorbXNnc3RyICJtb3VudDogc2kgZGV2ZSBzcGVjaWZpY2FyZSBpbCB0aXBvIGRpIGZpbGVzeXN0ZW0iCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6ODkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgbm9uZXhpc3RlbnQgZGV2aWNlXG4iCittc2dzdHIgIiVzOiAlcyBubyDDqCB1biBscCBkZXZpY2UuXG4iCisKKyM6IGZzY2svZnNjay5jOjkxOAorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiBjYW5ub3QgY2hlY2sgJXM6IGZzY2suJXMgbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6OTc0CisjLCBmdXp6eQorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIkZvcnphdHVyYSBjb250cm9sbG8gZmlsZXN5c3RlbSBzdSAlcyBpbiBjb3Jzby5cbiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1CisjLCBmdXp6eQorbXNnaWQgIiIKKyJVc2FnZTogZnNjayBbLUFNTlBSVFZdIFsgLUMgWyBmZCBdIF0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIFtmaWxlc3lzIC4uLl1cbiIKK21zZ3N0ciAiVXNvOiBta2ZzIFstVl0gWy10IHRpcG9mc10gW29wemlvbmktZnNdIGRpc3Bvc2l0aXZvIFtkaW1lbnNpb25lXVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgZGV2aWNlc1xuIgorbXNnc3RyICIlczogJXMgbm8gw6ggdW4gbHAgZGV2aWNlLlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJJbXBvc3NpYmlsZSBhcHJpcmUgJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklzIC9wcm9jIG1vdW50ZWQ/XG4iCittc2dzdHIgImVzZWd1aXRvIHVtb3VudCBkaSAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBmaW5kIG1hdGNoaW5nIGZpbGVzeXN0ZW06ICVzXG4iCittc2dzdHIgIlNtb250YWdnaW8gaW4gY29yc28gZGkgcXVhbHNpYXNpIGZpbGVzeXN0ZW0gcmltYW5lbnRlLi4uIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBhcmd1bWVudHNcbiIKK21zZ3N0ciAiJXM6IGFyZ29tZW50byBzY29ub3NjaXV0bzogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTI3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZnNjayBmcm9tICVzXG4iCittc2dzdHIgIiVzIGRhICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgYWxsb2NhcmUgaWwgYnVmZmVyIHBlciBnbGkgaW5vZGUiCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJQcm92YXJlIGNvbiBcImdldG9wdCAtLWhlbHBcIiBwZXIgdWx0ZXJpb3JpIGluZm9ybWF6aW9uaS5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAib3B6aW9uZSBsdW5nYSB2dW90YSBkb3BvIHBhcmFtZXRybyAtbCBvIC0tbG9uZyIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAic2hlbGwgc2Nvbm9zY2l1dGEgZG9wbyBwYXJhbWV0cm8gLXMgbyAtLXNoZWxsIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIwCittc2dpZCAiVXNhZ2U6IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICJVc286IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldHJpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjEKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSBbLS1dIG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgIGdldG9wdCBbb3B6aW9uaV0gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldHJpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjIKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSAtb3wtLW9wdGlvbnMgb3B0c3RyaW5nIFtvcHRpb25zXSBbLS1dXG4iCittc2dzdHIgIiAgICAgIGdldG9wdCBbb3B6aW9uaV0gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B6aW9uaV0gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICBwYXJhbWV0cmlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNAorbXNnaWQgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggc2luZ2xlIC1cbiIKK21zZ3N0ciAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBDb25zZW50ZSBsZSBvcHppb25pIGx1bmdoZSBjaGUgaW5pemlhbm8gY29uICIKKyJ1biBzaW5nb2xvIC1cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNQorbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBUaGlzIHNtYWxsIHVzYWdlIGd1aWRlXG4iCittc2dzdHIgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBRdWVzdGEgcGljY29sYSBndWlkYSBhbGwndXRpbGl6em9cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNgorbXNnaWQgIiAgLWwsIC0tbG9uZ29wdGlvbnM9bG9uZ29wdHMgICBMb25nIG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgT3B6aW9uaSBsdW5naGUgZGEgcmljb25vc2NlcmVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNworbXNnaWQgIiIKKyIgIC1uLCAtLW5hbWU9cHJvZ25hbWUgICAgICAgICAgVGhlIG5hbWUgdW5kZXIgd2hpY2ggZXJyb3JzIGFyZSByZXBvcnRlZFxuIgorbXNnc3RyICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIElsIG5vbWUgY29uIGlsIHF1YWxlIHZlbmdvbm8gcmlwb3J0YXRpIGdsaSAiCisiZXJyb3JpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjgKK21zZ2lkICIgIC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBPcHppb25pIGJyZXZpIGRhIHJpY29ub3NjZXJlXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjkKK21zZ2lkICIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgRGlzYWJsZSBlcnJvciByZXBvcnRpbmcgYnkgZ2V0b3B0KDMpXG4iCittc2dzdHIgIiIKKyIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgRGlzYXR0aXZhIGVycm9yZSByaXBvcnRhdG8gZGEgZ2V0b3B0KDMpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTmVzc3VuIG91dHB1dCBub3JtYWxlXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIEltcG9zdGEgbGEgc2hlbGwgXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzIKK21zZ2lkICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgVGVzdCBmb3IgZ2V0b3B0KDEpIHZlcnNpb25cbiIKK21zZ3N0ciAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFByb3ZhIGRlbGxhIHZlcnNpb25lIGdldG9wdCgxKVxuIgorCisjIEZJWE1FIFVQU1RSRUFNOiB1bnFvdGUKKyM6IGdldG9wdC9nZXRvcHQuYzozMzMKK21zZ2lkICIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgRG8gbm90IHF1b3RlIHRoZSBvdXRwdXRcbiIKK21zZ3N0ciAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIE5vbiBjaXRhIGwnb3V0cHV0XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE1vc3RyYSBsZSBpbmZvcm1hemlvbmkgc3VsbGEgdmVyc2lvbmVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjM4OCBnZXRvcHQvZ2V0b3B0LmM6NDQ3Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgImFyZ29tZW50byBvcHRzdHJpbmcgbWFuY2FudGUiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChhdmFuemF0bykgMS4xLjRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICJlcnJvcmUgaW50ZXJubywgY29udGF0dGFyZSBsJ2F1dG9yZS4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZWQgZnJvbSBNSUxPXG4iCittc2dzdHIgImF2dmlhdG8gZGEgTUlMT1xuIgorCisjIE5kVDogY3JlZG8gY2hlIFJ1ZmZpYW4gc2lhIHVuIHRpcG8gZGkgc2NoZWRhIG8gY3B1IHBlciBhbHBoYQorIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIk9yb2xvZ2lvIEJDRCBSdWZmaWFuXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICJwb3J0YSBjbG9jayByZWdvbGF0YSBzdSAweCV4XG4iCisKKyMgTmRUOiBUT1kgPSBUaW1lIE9mIFllYXIKKyM6IGh3Y2xvY2svY21vcy5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJmdW5reSBUT1khXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhdG9taWMgJXMgZmFpbGVkIGZvciAxMDAwIGl0ZXJhdGlvbnMhIgorbXNnc3RyICIlczogJXMgYXRvbWljbyBub24gw6ggcml1c2NpdG8gcGVyIDEwMDAgaXRlcmF6aW9uaSEiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHJlYWQgZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIkltcG9zc2liaWxlIGFwcmlyZSAvZGV2L3BvcnQ6ICVzIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIiIKKyJOb24gc29ubyByaXVzY2l0byBhZCBvdHRlbmVyZSBsJ2F1dG9yaXp6YXppb25lIHBlcmNow6kgbm9uIGhvIHByb3ZhdG8uXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyB1bmFibGUgdG8gZ2V0IEkvTyBwb3J0IGFjY2VzczogIHRoZSBpb3BsKDMpIGNhbGwgZmFpbGVkLlxuIgorbXNnc3RyICIiCisiJXMgbm9uIHJpZXNjZSBhIG90dGVuZXJlIGwnYWNjZXNzbyBhbGxhIHBvcnRhIEkvTzogIGNoaWFtYXRhIGlvcGwoMylub24gIgorInJpdXNjaXRhLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICJQcm9iYWJpbG1lbnRlIHNvbm8gbmVjZXNzYXJpIHByaXZpbGVnaSBkaSByb290LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiAlcyB0aW1lLlxuIgorbXNnc3RyICJTaSBwcmVzdXBwb25lIGNoZSBpbCBjbG9jayBoYXJkd2FyZSBzaWEgbWFudGVudXRvIG5lbGwnb3JhcmlvICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAibG9jYWxlIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIlczogYXR0ZW56aW9uZTogdGVyemEgbGluZWEgbm9uIHJpY29ub3NjaXV0YSBuZWwgZmlsZSBhZGp0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIihQcmV2aXN0bzogXCJVVENcIiBvIFwiTE9DQUxcIiBvIG5pZW50ZS4pXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGRyaWZ0IGFkanVzdG1lbnQgZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIlVsdGltYSByZWdvbGF6aW9uZSBkZWxsYSBkZXJpdmEgZWZmZXR0dWF0YSAlbGQgc2Vjb25kaSBkb3BvIGlsIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgY2FsaWJyYXRpb24gZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIlVsdGltYSBjYWxpYnJhemlvbmUgZWZmZXR0dWF0YSAlbGQgc2Vjb25kaSBkb3BvIGlsIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIkhhcmR3YXJlIGNsb2NrIGlzIG9uICVzIHRpbWVcbiIKK21zZ3N0ciAiSWwgY2xvY2sgaGFyZHdhcmUgw6ggc3VsbCdvcmFyaW8gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAidW5rbm93biIKK21zZ3N0ciAic2Nvbm9zY2l1dG8iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGZvciBjbG9jayB0aWNrLi4uXG4iCittc2dzdHIgIkF0dGVzYSBkZWwgc2VnbmFsZSBkYWwgY2xvY2suLi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiLi4ucmljZXZ1dG8gc2VnbmFsZSBkYWwgY2xvY2tcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIiBWYWxvcmkgbm9uIHZhbGlkaSBuZWwgY2xvY2sgaGFyZHdhcmU6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiT3JhcmlvIGNsb2NrIGhhcmR3YXJlIDogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRpIGRhbCAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHJlYWQgZnJvbSBIYXJkd2FyZSBDbG9jazogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorbXNnc3RyICJPcmFyaW8gbGV0dG8gZGFsIGNsb2NrIGhhcmR3YXJlOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIEhhcmR3YXJlIENsb2NrIHRvICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiSW1wb3N0YXppb25lIGRlbCBjbG9jayBoYXJkd2FyZSBhICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZGkgZGFsIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb2NrIG5vdCBjaGFuZ2VkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJDbG9jayBub24gY2FtYmlhdG8gLSBzb2xhbWVudGUgdmVyaWZpY2F0by5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIklsIHRlbXBvIHRyYXNjb3JzbyBkYWxsJ29yYXJpbyBkaSByaWZlcmltZW50byBlJyBzdGF0byBkaSAlLjZmIHNlY29uZGkuXG4iCisiQWNjdW11bGFyZSB1bHRlcmlvcmUgcml0YXJkbyBwZXIgcmFnZ2l1bmdlcmUgaWwgc2Vjb25kbyBwaWVubyBzdWNjZXNzaXZvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIkkgcmVnaXN0cmkgZGVsIGNsb2NrIGhhcmR3YXJlIGNvbnRlbmdvbm8gdmFsb3JpIGNoZSBub24gc29ubyB2YWxpZGkgKHBlciBlcy4gIgorIjUwZXNpbW8gZ2lvcm5vIGRlbCBtZXNlKSBvcHB1cmUgb2x0cmUgbCdpbnRlcnZhbGxvIGNoZSDDqCBwb3NzaWJpbGUgZ2VzdGlyZSAiCisiKHBlciBlcy4gYW5ubyAyMDk1KS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiJXMgICUuNmYgc2Vjb25kaVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gLS1kYXRlIG9wdGlvbiBzcGVjaWZpZWQuXG4iCittc2dzdHIgIk9wemlvbmUgLS1kYXRlIG5vbiBzcGVjaWZpY2F0YS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICItLWRhdGUgYXJnb21lbnRvIHRyb3BwbyBsdW5nb1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiBpcyBub3QgYSB2YWxpZCBkYXRlLlxuIgorIkluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHF1b3RhdGlvbiBtYXJrcy5cbiIKK21zZ3N0ciAiIgorIklsIHZhbG9yZSBkZWxsJ29wemlvbmUgLS1kYXRlIG5vbiDDqCB1bmEgZGF0YSB2YWxpZGEuXG4iCisiSW4gcGFydGljb2xhcmUsIGNvbnRpZW5lIHZpcmdvbGV0dGUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJc3N1aW5nIGRhdGUgY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiRXNlY3V6aW9uZSBjb21hbmRvIGRhdGU6ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0MAorbXNnaWQgIlVuYWJsZSB0byBydW4gJ2RhdGUnIHByb2dyYW0gaW4gL2Jpbi9zaCBzaGVsbC4gcG9wZW4oKSBmYWlsZWQiCittc2dzdHIgIiIKKyJJbXBvc3NpYmlsZSBlc2VndWlyZSBpbCBwcm9ncmFtbWEgJ2RhdGUnIG5lbGxhIHNoZWxsIC9iaW4vc2guIHBvcGVuKCkgZmFsbGl0byIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3BvbnNlIGZyb20gZGF0ZSBjb21tYW5kID0gJXNcbiIKK21zZ3N0ciAicmlzcG9zdGEgZGFsIGNvbWFuZG8gZGF0ZSA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKyJJbCBjb21hbmRvIGRhdGUgZW1lc3NvIGRhICVzIHJpcG9ydGEgcmlzdWx0YXRpIGltcHJldmlzdGkuXG4iCisiSWwgY29tYW5kbyBlcmE6XG4iCisiICAlc1xuIgorIkxhIHJpc3Bvc3RhIMOoIHN0YXRhOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIklsIGNvbWFuZG8gZGF0ZSBlbWVzc28gZGEgJXMgcmlwb3J0YSBxdWFsY29zYSBkJ2FsdHJvIHJpc3BldHRvIGFkIHVuIG51bWVybyAiCisiaW50ZXJvIGxhZGRvdmUgZXJhIHByZXZpc3RvIGlsIHZhbG9yZSBkZWxsJ29yYXJpbyBjb252ZXJ0aXRvLlxuIgorIklsIGNvbWFuZG8gZXJhOlxuIgorIiAgJXNcbiIKKyJMYSByaXNwb3N0YSDDqCBzdGF0YTpcbiIKKyIgICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJkYXRlIHN0cmluZyAlcyBlcXVhdGVzIHRvICVsZCBzZWNvbmRzIHNpbmNlIDE5NjkuXG4iCittc2dzdHIgImxhIHN0cmluZ2EgZGVsbGEgZGF0YSAlcyBlcXVpdmFsZSBhICVsZCBzZWNvbmRpIGRhbCAxOTY5LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IHNldCB0aGUgIgorIlN5c3RlbSBUaW1lIGZyb20gaXQuXG4iCittc2dzdHIgIiIKKyJJbCBjbG9jayBoYXJkd2FyZSBub24gY29udGllbmUgdW4gb3JhcmlvIHZhbGlkbywgcGVyY2nDsiBub24gw6ggcG9zc2liaWxlICIKKyJpbXBvc3RhcmUgbCdvcmEgZGVsIHNpc3RlbWEgYSBwYXJ0aXJlIGRhIGVzc28uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyNyBod2Nsb2NrL2h3Y2xvY2suYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBzZXR0aW1lb2ZkYXk6XG4iCittc2dzdHIgIiBDaGlhbWF0YSBzZXR0aW1lb2ZkYXkgaW4gY29yc286XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyOCBod2Nsb2NrL2h3Y2xvY2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKK21zZ3N0ciAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMwIGh3Y2xvY2svaHdjbG9jay5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKK21zZ3N0ciAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMyBod2Nsb2NrL2h3Y2xvY2suYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgc3lzdGVtIGNsb2NrIGJlY2F1c2UgcnVubmluZyBpbiB0ZXN0IG1vZGUuXG4iCittc2dzdHIgIiIKKyJJbCBjbG9jayBkaSBzaXN0ZW1hIG5vbiB2aWVuZSBpbXBvc3RhdG8gcGVyY2jDqSBzdGEgZnVuemlvbmFuZG8gaW4gbW9kYWxpdMOgICIKKyJ0ZXN0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkJpc29nbmEgZXNzZXJlIHN1cGVydXNlciBwZXIgaW1wb3N0YXJlIGlsIGNsb2NrIGRlbCBzaXN0ZW1hXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgIiBzZXR0aW1lb2ZkYXkoKSBub24gcml1c2NpdG8iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc4MQorIywgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisiTm9uIHZpZW5lIGVmZmV0dHVhdGEgbGEgcmVnb2xhemlvbmUgZGVsIGZhdHRvcmUgZGkgZGVyaXZhIHBvaWNow6kgaW4gIgorInByZWNlZGVuemEgaWwgY2xvY2sgaGFyZHdhcmVjb250ZW5ldmEgZWxlbWVudGkgaW5zb2xpdGkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorIk5vbiB2aWVuZSBlZmZldHR1YXRhIGxhIHJlZ29sYXppb25lIGRlbCBmYXR0b3JlIGRpIGRlcml2YSBwb2ljaMOpIMOoIHRyYXNjb3JzbyAiCisibWVubyBkaSB1biBnaW9ybm9kYWxsJ3VsdGltYSBjYWxpYnJhemlvbmUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2xvY2sgZHJpZnRlZCAlLjFmIHNlY29uZHMgaW4gdGhlIHBhc3QgJWQgc2Vjb25kcyBpbiBzcGl0ZSBvZiBhIGRyaWZ0IGZhY3RvciAiCisib2YgJWYgc2Vjb25kcy9kYXkuXG4iCisiQWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBieSAlZiBzZWNvbmRzL2RheVxuIgorbXNnc3RyICIiCisiSWwgY2xvY2sgaGEgYWNjdW11bGF0byB1bmEgZGVyaXZhIGRpICUuMWYgc2Vjb25kaSBuZWdsaSB1bHRpbWkgJWQgc2Vjb25kaSAiCisibm9ub3N0YW50ZSBpbCBmYXR0b3JlIGRpIGRlcml2YSBmb3NzZSBkaSAlZiBzZWNvbmRpL2dpb3Juby5cbiIKKyJSZWdvbGF6aW9uZSBkZWwgZmF0dG9yZSBkaSBkZXJpdmEgYSAlZiBzZWNvbmRpL2dpb3Jub1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJJbCB0ZW1wbyB0cmFzY29yc28gZGFsbCd1bHRpbWEgcmVnb2xhemlvbmUgw6ggZGkgJWQgc2Vjb25kaVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiIgorIsOIIG5lY2Vzc2FyaW8gaW5zZXJpcmUgJWQgc2Vjb25kaSBlIHJpcG9ydGFyZSBsJ29yYSBpbmRpZXRybyBkaSAlLjZmIHNlY29uZGlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIklsIGZpbGUgYWRqdGltZSBub24gdmllbmUgYWdnaW9ybmF0byBhIGNhdXNhIGRlbGxhIG1vZGFsaXTDoCB0ZXN0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldvdWxkIGhhdmUgd3JpdHRlbiB0aGUgZm9sbG93aW5nIHRvICVzOlxuIgorIiVzIgorbXNnc3RyICIiCisiU2kgc2FyZWJiZSBzY3JpdHRvIHF1YW50byBzZWd1ZSBpbiAlczpcbiIKKyIlcyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ291bGQgbm90IG9wZW4gZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgaW4gaXQgKCVzKSBmb3IgIgorIndyaXRpbmciCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwNiBod2Nsb2NrL2h3Y2xvY2suYzoxMDExCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgKCVzKSBpbiBpdCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRyaWZ0IGFkanVzdG1lbnQgcGFyYW1ldGVycyBub3QgdXBkYXRlZC5cbiIKK21zZ3N0ciAiUGFyYW1ldHJpIGRpIHJlZ29sYXppb25lIGRlbGxhIGRlcml2YSBub24gYWdnaW9ybmF0aS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICIiCisiSWwgY2xvY2sgaGFyZHdhcmUgbm9uIGNvbnRpZW5lIHVuJ29yYSB2YWxpZGEsIHBlcmNpw7Igbm9uIMOoIHBvc3NpYmlsZSAiCisicmVnb2xhcmxvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWRlZCBhZGp1c3RtZW50IGlzIGxlc3MgdGhhbiBvbmUgc2Vjb25kLCBzbyBub3Qgc2V0dGluZyBjbG9jay5cbiIKK21zZ3N0ciAiIgorIkxhIHJlZ29sYXppb25lIG5lY2Vzc2FyaWEgZXF1aXZhbGUgYSBtZW5vIGRpIHVuIHNlY29uZG8sIHBlcmNpw7IgaWwgY2xvY2sgbm9uICIKKyJ2aWVuZSBpbXBvc3RhdG8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgIlV0aWxpenpvIGRpICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIkltcG9zc2liaWxlIHRyb3ZhcmUgdW4naW50ZXJmYWNjaWEgY2xvY2sgdXRpbGl6emFiaWxlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkltcG9zc2liaWxlIGltcG9zdGFyZSBpbCBjbG9jayBkaSBzaXN0ZW1hLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGtlZXBzIGFuIGVwb2NoIHZhbHVlIGZvciB0aGUgSGFyZHdhcmUgQ2xvY2sgb25seSBvbiBhbiBBbHBoYSAiCisibWFjaGluZS5cbiIKKyJUaGlzIGNvcHkgb2YgaHdjbG9jayB3YXMgYnVpbHQgZm9yIGEgbWFjaGluZSBvdGhlciB0aGFuIEFscGhhXG4iCisiKGFuZCB0aHVzIGlzIHByZXN1bWFibHkgbm90IHJ1bm5pbmcgb24gYW4gQWxwaGEgbm93KS4gIE5vIGFjdGlvbiB0YWtlbi5cbiIKK21zZ3N0ciAiIgorIklsIGtlcm5lbCBtYW50aWVuZSB1biB2YWxvcmUgZXBvY2ggcGVyIGlsIGNsb2NrIGhhcmR3YXJlIHNvbG8gc3UgZGkgdW5hICIKKyJtYWNjaGluYUFscGhhLlxuIgorIlF1ZXN0YSBjb3BpYSBkaSBod2Nsb2NrIMOoIHN0YXRhIHJlYWxpenphdGEgcGVyIHVuYSBtYWNjaGluYSBkaXZlcnNhIGRhICIKKyJBbHBoYVxuIgorIihlIHF1aW5kaSwgcHJlc3VtaWJpbG1lbnRlLCBub24gcHXDsiBlc3NlcmUgZXNlZ3VpdGEgc3UgdW4gQWxwaGEgaW4gcXVlc3RvICIKKyJtb21lbnRvKS4gTmVzc3VuYSBhemlvbmUgaW50cmFwcmVzYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gZ2V0IHRoZSBlcG9jaCB2YWx1ZSBmcm9tIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIkltcG9zc2liaWxlIG90dGVuZXJlIGlsIHZhbG9yZSBlcG9jaCBkYWwga2VybmVsLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAiSWwga2VybmVsIHByZXNzdXBwb25lIHVuIHZhbG9yZSBlcG9jaCBkaSAlbHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSAnZXBvY2gnIG9wdGlvbiB0byB0ZWxsIHRvIHdoYXQgIgorInZhbHVlIHRvIHNldCBpdC5cbiIKK21zZ3N0ciAiIgorIlBlciBpbXBvc3RhcmUgaWwgdmFsb3JlIGVwb2NoIHNpIGRldmUgdXRpbGl6emFyZSBsJ29wemlvbmUgJ2Vwb2NoJyBwZXIgIgorImluZGljYXJlIHN1IHF1YWxlIHZhbG9yZSBpbXBvc3RhcmxvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHRoZSBlcG9jaCB0byAlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiIgorIk5vbiB2aWVuZSBpbXBvc3RhdG8gaWwgdmFsb3JlIGVwb2NoIGEgJWQgLSBzaSB0cmF0dGEgc29sYW1lbnRlIGRpIHVuYSAiCisidmVyaWZpY2EuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgaW1wb3N0YXJlIGlsIHZhbG9yZSBlcG9jaCBuZWwga2VybmVsLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjkwIG1pc2MtdXRpbHMvY2FsLmM6MzQ3IG1pc2MtdXRpbHMva2lsbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiVzIGRhICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorImh3Y2xvY2sgLSByaWNlcmNhIGUgaW1wb3N0YXppb25lIGRlbCBjbG9jayBkaSBzaXN0ZW1hIChSVEMpXG4iCisiXG4iCisiVXNvOiBod2Nsb2NrIFtmdW56aW9uZV0gW29wemlvbmkuLi5dXG4iCisiXG4iCisiRnVuemlvbmk6XG4iCisiICAtLWhlbHAgICAgICAgIG1vc3RyYSBxdWVzdG8gYWl1dG9cbiIKKyIgIC0tc2hvdyAgICAgICAgbGVnZ2UgaWwgY2xvY2sgaGFyZHdhcmUgZSBzdGFtcGEgaWwgcmlzdWx0YXRvXG4iCisiICAtLXNldCAgICAgICAgIGltcG9zdGEgbCdydGMgcmlzcGV0dG8gYWxsJ29yYXJpbyBkYXRvIGNvbiAtLWRhdGVcbiIKKyIgIC0taGN0b3N5cyAgICAgaW1wb3N0YSBsJ29yYSBkZWwgc2lzdGVtYSBkYWwgY2xvY2sgaGFyZHdhcmVcbiIKKyIgIC0tc3lzdG9oYyAgICAgaW1wb3N0YSBpbCBjbG9jayBoYXJkd2FyZSBhbGwnb3JhIGNvcnJlbnRlIGRlbCBzaXN0ZW1hXG4iCisiICAtLWFkanVzdCAgICAgIHJlZ29sYSBsJ3J0YyB0ZW5lbmRvIGNvbnRvIGRlbGxhIGRlcml2YSBzaXN0ZW1hdGljYSAiCisiZGFsbCd1bHRpbWEgXG4iCisiICAgICAgICAgICAgICAgIHZvbHRhIGluIGN1aSBpbCBjbG9jayDDqCBzdGF0byBpbXBvc3RhdG8gbyByZWdvbGF0b1xuIgorIiAgLS1nZXRlcG9jaCAgICBzdGFtcGEgaWwgdmFsb3JlIGVwb2NoIGRlbCBjbG9jayBoYXJkd2FyZSBkZWwga2VybmVsXG4iCisiICAtLXNldGVwb2NoICAgIGltcG9zdGEgaWwgdmFsb3JlIGVwb2NoIGRlbCBjbG9jayBoYXJkd2FyZSBkZWwga2VybmVsIHN1bCBcbiIKKyIgICAgICAgICAgICAgICAgdmFsb3JlIGRhdG8gY29uIC0tZXBvY2hcbiIKKyIgIC0tdmVyc2lvbiAgICAgc3RhbXBhIGxhIHZlcnNpb25lIGRpIGh3Y2xvY2sgc3Ugc3RhbmRhcmQgb3V0cHV0XG4iCisiXG4iCisiT3B6aW9uaTogXG4iCisiICAtLXV0YyAgICAgICAgIGlsIGNsb2NrIGhhcmR3YXJlIMOoIGluIG9yYXJpbyB1bml2ZXJzYWxlIGNvb3JkaW5hdG9cbiIKKyIgIC0tbG9jYWx0aW1lICAgaWwgY2xvY2sgaGFyZHdhcmUgw6ggaW4gb3JhIGxvY2FsZVxuIgorIiAgLS1kaXJlY3Rpc2EgICBhY2Nlc3NvIGRpcmV0dG8gYWwgYnVzIElTQSBpbnZlY2UgZGkgJXNcbiIKKyIgIC0tYmFkeWVhciAgICAgaWdub3JhIGwnYW5ubyBydGMgcGVyY2jDqSBpbCBiaW9zIMOoIGRhbm5lZ2dpYXRvXG4iCisiICAtLWRhdGUgICAgICAgIHNwZWNpZmljYSBsJ29yYSBzdWxsYSBxdWFsZSBpbXBvc3RhcmUgaWwgY2xvY2sgaGFyZHdhcmUgXG4iCisiICAtLWVwb2NoPWFubm8gIHNwZWNpZmljYSBsJ2Fubm8gZGkgaW5pemlvIGRlbCB2YWxvcmUgZXBvY2ggZGVsIGNsb2NrICIKKyJoYXJkd2FyZVxuIgorIiAgLS1ub2FkamZpbGUgICBub24gbGVnZ2UgL2V0Yy9hZGp0aW1lOyByaWNoaWVkZSBsJ3VzbyBkaSAtLXV0YyBvIC0tIgorImxvY2FsdGltZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisiICAtLWplbnNlbiwgLS1hcmMsIC0tc3JtLCAtLWZ1bmt5LXRveVxuIgorIiAgICAgICAgICAgICAgICBpbmRpY2FubyBhbCBod2Nsb2NrIGlsIHRpcG8gZGkgYWxwaGEgdXRpbGl6emF0byAoY29uc3VsdGFyZSAiCisiaHdjbG9jayg4KSlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTQzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICJJbXBvc3NpYmlsZSBpbXBvc3RhcmUgaWwgY2xvY2sgZGkgc2lzdGVtYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiIgorIiVzIG5vbiBjb25zaWRlcmEgYXJnb21lbnRpIGNoZSBub24gc2lhbm8gb3B6aW9uaS4gw4ggc3RhdG8gZm9ybml0byAlZC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgc3BlY2lmaWVkIG11bHRpcGxlIGZ1bmN0aW9ucy5cbiIKKyJZb3UgY2FuIG9ubHkgcGVyZm9ybSBvbmUgZnVuY3Rpb24gYXQgYSB0aW1lLlxuIgorbXNnc3RyICIiCisiU29ubyBzdGF0ZSBzcGVjaWZpY2F0ZSBtdWx0aXBsZSBmdW56aW9uaS5cbiIKKyLDiCBwb3NzaWJpbGUgZXNlZ3VpcmUgdW5hIHNvbGEgZnVuemlvbmUgcGVyIHZvbHRhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tdXRjIGFuZCAtLWxvY2FsdGltZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3Ugc3BlY2lmaWVkICIKKyJib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IExlIG9wemlvbmkgLS11dGMgZSAtbG9jYWx0aW1lIHNpIGVzY2x1ZG9ubyB2aWNlbmRldm9sbWVudGUuIFNvbm8gc3RhdGUgIgorInNwZWNpZmljYXRlIGVudHJhbWJlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IExlIG9wemlvbmkgLS1hZGp1c3QgZSAtbm9hZGpmaWxlIHNpIGVzY2x1ZG9ubyB2aWNlbmRldm9sbWVudGUuIFNvbm8gIgorInN0YXRlIHNwZWNpZmljYXRlIGVudHJhbWJlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogTGUgb3B6aW9uaSAtLWFkanVzdCBlIC1ub2FkamZpbGUgc2kgZXNjbHVkb25vIHZpY2VuZGV2b2xtZW50ZS4gU29ubyAiCisic3RhdGUgc3BlY2lmaWNhdGUgZW50cmFtYmUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdpdGggLS1ub2FkamZpbGUsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCittc2dzdHIgIiVzOiBDb24gLS1ub2FkamZpbGUsIG9jY29ycmUgc3BlY2lmaWNhcmUgbyAtLXV0YyBvIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiIgorIkltcG9zc2liaWxlIHV0aWxpenphcmUgbCdvcmEgaW1wb3N0YXRhLiBJbXBvc3NpYmlsZSBpbXBvc3RhcmUgaWwgY2xvY2suXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jay5cbiIKK21zZ3N0ciAiIgorIlNwaWFjZW50ZSwgc29sYW1lbnRlIGlsIHN1cGVydXRlbnRlIHB1w7IgbW9kaWZpY2FyZSBpbCBjbG9jayBoYXJkd2FyZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyNAorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIFN5c3RlbSBDbG9jay5cbiIKK21zZ3N0ciAiIgorIlNwaWFjZW50ZSwgc29sYW1lbnRlIGlsIHN1cGVydXRlbnRlIHB1w7IgbW9kaWZpY2FyZSBpbCBjbG9jayBkaSBzaXN0ZW1hLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIGluIHRoZSAiCisia2VybmVsLlxuIgorbXNnc3RyICIiCisiU29sYW1lbnRlIGlsIHN1cGV1dGVudGUgcHXDsiBtb2RpZmljYXJlIGwnZXBvY2EgZGVsIGNsb2NrIGhhcmR3YXJlIG5lbCAiCisia2VybmVsLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBhY2Nlc3MgdGhlIEhhcmR3YXJlIENsb2NrIHZpYSBhbnkga25vd24gbWV0aG9kLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzZSB0aGUgLS1kZWJ1ZyBvcHRpb24gdG8gc2VlIHRoZSBkZXRhaWxzIG9mIG91ciBzZWFyY2ggZm9yIGFuIGFjY2VzcyAiCisibWV0aG9kLlxuIgorbXNnc3RyICIiCisiVXNhcmUgbCdvcHppb25lIC0tZGVidWcgcGVyIHZlZGVyZSBpIGRldHRhZ2xpIGRlbGxhIHJpY2VyY2EgZGkgdW4gbWV0b2RvIGRpICIKKyJhY2Nlc3NvLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gS0RHSFdDTEsgdG8gY2hhbmdlXG4iCittc2dzdHIgIkF0dGVzYSBpbiBsb29wIHBlciBpbCBjYW1iaW8gb3JhIGRhIEtER0hXQ0xLXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NworbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQiCittc2dzdHIgIkxldHR1cmEgZGVsbCdvcmFyaW8gY29uIEtER0hXQ0xLIGlvY3RsIG5vbiByaXVzY2l0YSIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICJMZXR0dXJhIGRlbGwnb3JhcmlvIGNvbiBLREdIV0NMSyBpb2N0bCBub24gcml1c2NpdGEgbmVsIGxvb3AiCisKKyM6IGh3Y2xvY2sva2QuYzo4MiBod2Nsb2NrL3J0Yy5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iCittc2dzdHIgIlRlbXBvIGQnYXR0ZXNhIHBlciBpbCBjYW1iaW8gb3JhIGVzYXVyaXRvLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6MTA0CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgZmFpbGVkIHRvIHJlYWQgdGltZSBmcm9tICVzIgorbXNnc3RyICJpb2N0bCgpIG5vbiDDqCByaXVzY2l0byBhIGxlZ2dlcmUgbCdvcmFyaW8gZGEgJXMiCisKKyM6IGh3Y2xvY2sva2QuYzoxNDAKK21zZ2lkICJpb2N0bCBLRFNIV0NMSyBmYWlsZWQiCittc2dzdHIgImlvY3RsIEtER0hXQ0xLIG5vbiByaXVzY2l0byIKKworIzogaHdjbG9jay9rZC5jOjE3NgorbXNnaWQgIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgYXByaXJlIC9kZXYvdHR5MSBvIC9kZXYvdmMvMSIKKworIzogaHdjbG9jay9rZC5jOjE4MAorbXNnaWQgIktER0hXQ0xLIGlvY3RsIGZhaWxlZCIKK21zZ3N0ciAiIEtER0hXQ0xLIGlvY3RsIG5vbiByaXVzY2l0byIKKworIzogaHdjbG9jay9ydGMuYzoxNDcgaHdjbG9jay9ydGMuYzoyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbigpIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAib3BlbigpIGRpICVzIGZhbGxpdGEiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gcmVhZCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIkxldHR1cmEgZGVsbCdvcmFyaW8gYXR0cmF2ZXJzbyBpb2N0bCgpIHN1ICVzIG5vbiByaXVzY2l0YS5cbiIKKworIzogaHdjbG9jay9ydGMuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gJXMgdG8gY2hhbmdlXG4iCittc2dzdHIgIkF0dGVzYSBpbiBsb29wIHBlciBpbCBjYW1iaW8gb3JhIGRhICVzXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRvZXMgbm90IGhhdmUgaW50ZXJydXB0IGZ1bmN0aW9ucy4gIgorbXNnc3RyICIlcyBub24gaGEgZnVuemlvbmkgZGkgaW50ZXJydXB0LiAiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAicmVhZCgpIHN1ICVzIHBlciBsJ2F0dGVzYSBkZWwgc2VnbmFsZSBkYWwgY2xvY2sgZmFsbGl0YSIKKworIzogaHdjbG9jay9ydGMuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgInNlbGVjdCgpIHN1ICVzIHBlciBsJ2F0dGVzYSBkZWwgc2VnbmFsZSBkYWwgY2xvY2sgZmFsbGl0YSIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAic2VsZWN0KCkgc3UgJXMgcGVyIGwnYXR0ZXNhIGRlbCBzZWduYWxlIGRhbCBjbG9jayBzY2FkdXRhXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIgorbXNnc3RyICIiCisiTm9uIHJpdXNjaXRhIGxhIGRpc2F0dGl2YXppb25lIGRlZ2xpIGludGVycnVwdCBkJ2FnZ2lvcm5hbWVudG8gYXR0cmF2ZXJzbyAiCisiaW9jdGwoKSBzdSAlcyIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgIiIKKyJpb2N0bCgpIHN1ICVzIHBlciBhdHRpdmFyZSBnbGkgaW50ZXJydXB0IGRpIGFnZ2lvcm5hbWVudG8gbm9uIHJpdXNjaXRhICIKKyJpbmFzcGV0dGF0YW1lbnRlIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImlvY3RsKCkgc3UgJXMgcGVyIGltcG9zdGFyZSBsJ29yYSBub24gcml1c2NpdGEuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiaW9jdGwoJXMpIGhhIGZ1bnppb25hdG8uXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICJBcGVydHVyYSBkaSAlcyBub24gcml1c2NpdGEiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDEwIGh3Y2xvY2svcnRjLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBtYW5pcHVsYXRlIHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLCB3ZSBtdXN0IGFjY2VzcyB0aGUgTGludXggJ3J0YycgIgorImRldmljZSBkcml2ZXIgdmlhIHRoZSBkZXZpY2Ugc3BlY2lhbCBmaWxlICVzLiAgVGhpcyBmaWxlIGRvZXMgbm90IGV4aXN0IG9uICIKKyJ0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiIgorIlBlciBtb2RpZmljYXJlIGlsIHZhbG9yZSBlcG9jaCBuZWwga2VybmVsLCBzaSBkZXZlIGFjY2VkZXJlIGFsIGRyaXZlciBkaSAiCisicGVyaWZlcmljYSAncnRjJyBkaSBMaW51eCBhdHRyYXZlcnNvIGlsIGZpbGUgc3BlY2lhbGUgZGVsbGEgcGVyaWZlcmljYSAlcy4gICIKKyJRdWVzdG8gZmlsZSBub24gZXNpc3RlIHN1IHF1ZXN0byBzaXN0ZW1hLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxNSBod2Nsb2NrL3J0Yy5jOjQ1OQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgYXByaXJlICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgc3UgJXMgbm9uIHJpdXNjaXRhIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAibGV0dHVyYSBkaSBlcG9jaCAlbGQgZGEgJXMgY29uIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIklsIHZhbG9yZSBlcG9jaCBub24gcHXDsiBlc3NlcmUgaW5mZXJpb3JlIGEgMTkwMC4gU2kgw6ggcmljaGllc3RvICVsZFxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZXR0aW5nIGVwb2NoIHRvICVsZCB3aXRoIFJUQ19FUE9DSF9TRVQgaW9jdGwgdG8gJXMuXG4iCittc2dzdHIgImltcG9zdGF6aW9uZSBlcG9jaCBzdSAlbGQgY29uIFJUQ19FUE9DSF9TRVQgaW9jdGwgc3UgJXMgaW4gY29yc28uXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGRldmljZSBkcml2ZXIgZm9yICVzIGRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCittc2dzdHIgIiIKKyJJbCBkcml2ZXIgZGkgcGVyaWZlcmljYSBwZXIgaWwga2VybmVsIHBlciAlcyBub24gaGEgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJOb24gcml1c2NpdG8gaW9jdGwoUlRDX0VQT0NIX1NFVCkgc3UgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZXhlYyAlczogJW0iCittc2dzdHIgIiVzOiBleGVjIGRpICVzIGltcG9zc2liaWxlOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCittc2dzdHIgIiBtYWxsb2MgaW5pdHN0cmluZyBpbXBvc3NpYmlsZSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAidmFsb3JlIGRpIHRpbWVvdXQgbm9uIHZhbGlkbzogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgc3BlZWQ6ICVzIgorbXNnc3RyICJ2ZWxvY2l0w6Agbm9uIHZhbGlkYTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNworbXNnaWQgInRvbyBtYW55IGFsdGVybmF0ZSBzcGVlZHMiCittc2dzdHIgInRyb3BwZSB2ZWxvY2l0w6AgYWx0ZXJuYXRpdmUiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIi9kZXY6IGNoZGlyKCkgbm9uIHJpdXNjaXRvOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIi9kZXYvJXM6IG5vbiDDqCB1biBkaXNwb3NpdGl2byBkaSBjYXJhdHRlcmkiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY0MgorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBjYW5ub3Qgb3BlbiBhcyBzdGFuZGFyZCBpbnB1dDogJW0iCittc2dzdHIgIi9kZXYvJXM6IGltcG9zc2liaWxlIGFwcmlyZSBjb21lIGlucHV0IHN0YW5kYXJkOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3Qgb3BlbiBmb3IgcmVhZC93cml0ZSIKK21zZ3N0ciAiJXM6IG5vbiDDqCBhcGVydG8gcGVyIGxldHR1cmEvc2NyaXR0dXJhIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGR1cCBwcm9ibGVtOiAlbSIKK21zZ3N0ciAiJXM6IHByb2JsZW1hIGR1cDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICJ1dGVudGUiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VycyIKK21zZ3N0ciAidXRlbnRpIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiJXM6IGxldHR1cmE6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnB1dCBvdmVycnVuIgorbXNnc3RyICIlczogc292cmFjY2FyaWNvIGlucHV0IgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMjA2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstOGhpTG1Vd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IICIKKyJsb2dpbl9ob3N0XSBiYXVkX3JhdGUsLi4uIGxpbmUgW3Rlcm10eXBlXVxuIgorIm9yXHRbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggbG9naW5faG9zdF0gIgorImxpbmUgYmF1ZF9yYXRlLC4uLiBbdGVybXR5cGVdXG4iCittc2dzdHIgIiIKKyJVc286ICVzIFstaGlMbXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lYSBbdGlwbyB0ZXJtaW5hbGVdXG4iCisib1x0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJiYXVkX3JhdGUgbGluZWEsLi4uIFt0aXBvIHRlcm1pbmFsZV1cbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MSBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbWVtb3J5IGxvdywgbG9naW4gbWF5IGZhaWxcbiIKK21zZ3N0ciAibG9naW46IHBvY2EgbWVtb3JpYSwgw6ggcG9zc2liaWxlIGNoZSBpbCBsb2dpbiBub24gcmllc2NhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTIKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIHR0eWNsYXNzIgorbXNnc3RyICJtYWxsb2MgcGVyIHR0eWNsYXNzIG5vbiBwb3NzaWJpbGUiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciBncnBsaXN0IgorbXNnc3RyICJtYWxsb2MgcGVyIGdycGxpc3QgaW1wb3NzaWJpbGUiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkIGJ5IGRlZmF1bHQuXG4iCittc2dzdHIgIkxvZ2luIGEgJXMgZGEgJXMgbmVnYXRvIHBlciBpbXBvc3RhemlvbmUgcHJlZGVmaW5pdGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICJMb2dpbiBhICVzIGRhICVzIG5lZ2F0by5cbiIKKworIyBGSVhNRQorIzogbG9naW4tdXRpbHMvY2hmbi5jOjEzMyBsb2dpbi11dGlscy9jaHNoLmM6MTE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB5b3UgKHVzZXIgJWQpIGRvbid0IGV4aXN0LlxuIgorbXNnc3RyICIlczogbm9uIHNpIGVzaXN0ZSAoY29tZSB1dGVudGUgJWQpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogbCd1dGVudGUgXCIlc1wiIG5vbiBlc2lzdGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiIKKyIlczogw6ggcG9zc2liaWxlIG1vZGlmaWNhcmUgc29sbyBsZSB2b2NpIGxvY2FsaTsgdXRpbGl6emFyZSBpbnZlY2UgeXAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NiBsb2dpbi11dGlscy9jaHNoLmM6MTQyCittc2dpZCAiVW5rbm93biB1c2VyIGNvbnRleHQiCittc2dzdHIgIkNvbnRlc3RvIHV0ZW50ZSBzY29ub3NjaXV0byIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIlczogJXMgbm9uIMOoIGF1dG9yaXp6YXRvIGEgY2FtYmlhcmUgbGUgaW5mb3JtYXppb25pIGZpbmdlciBkaSAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTY0IGxvZ2luLXV0aWxzL2Noc2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBkZWZhdWx0IGNvbnRleHQgZm9yIC9ldGMvcGFzc3dkIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgaW1wb3N0YXJlIGlsIGNvbnRlc3RvIHByZWRlZmluaXRvIHBlciAvZXRjL3Bhc3N3ZCIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBmaW5nZXIgaW5mb3JtYXRpb24gZm9yICVzLlxuIgorbXNnc3RyICJNb2RpZmljYSBkZWxsZSBpbmZvcm1hemlvbmkgZmluZ2VyIHBlciAlcyBpbiBjb3Jzby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJjaHNoOiBlcnJvcmUgUEFNLCBpbnRlcnJ1emlvbmUgaW4gY29yc286ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTIgbG9naW4tdXRpbHMvY2hzaC5jOjIxMSBsb2dpbi11dGlscy9sb2dpbi5jOjgyNworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6NzkgbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0MCBtb3VudC9sb21vdW50LmM6NzQyCisjOiBtb3VudC9sb21vdW50LmM6NzQ1Cittc2dpZCAiUGFzc3dvcmQ6ICIKK21zZ3N0ciAiUGFzc3dvcmQ6ICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxNSBsb2dpbi11dGlscy9jaHNoLmM6MjE0Cittc2dpZCAiSW5jb3JyZWN0IHBhc3N3b3JkLiIKK21zZ3N0ciAiUGFzc3dvcmQgbm9uIGNvcnJldHRhLiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIkxlIGluZm9ybWF6aW9uaSBmaW5nZXIgbm9uIHNvbm8gc3RhdGUgbW9kaWZpY2F0ZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWyAtZiBmdWxsLW5hbWUgXSBbIC1vIG9mZmljZSBdICIKK21zZ3N0ciAiVXNvOiAlcyBbIC1mIG5vbWUgaW50ZXJvIF0gWyAtbyB1ZmZpY2lvIF0iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlsgLXAgb2ZmaWNlLXBob25lIF1cbiIKKyJcdFsgLWggaG9tZS1waG9uZSBdICIKK21zZ3N0ciAiIgorIlsgLXAgdGVsLiB1ZmZpY2lvXVxuIgorIlx0WyAtaCB0ZWwuIGNhc2EgXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQwMSBsb2dpbi11dGlscy9jaHNoLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJBYm9ydGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiaW50ZXJyb3R0by5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAiaWwgY2FtcG8gw6ggdHJvcHBvIGx1bmdvLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiclYycgbm9uIMOoIGNvbnNlbnRpdG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiTm9uIHNvbm8gYW1tZXNzaSBpIGNhcmF0dGVyaSBkaSBjb250cm9sbG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIiIKKyJMZSBpbmZvcm1hemlvbmkgZmluZ2VyICpOT04qIHNvbm8gc3RhdGUgbW9kaWZpY2F0ZS4gUmlwcm92YXJlICIKKyJzdWNjZXNzaXZhbWVudGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIGNoYW5nZWQuXG4iCittc2dzdHIgIkxlIGluZm9ybWF6aW9uaSBmaW5nZXIgc29ubyBzdGF0ZSBtb2RpZmljYXRlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBub24gw6ggYXV0b3JpenphdG8gYSBjYW1iaWFyZSBsYSBzaGVsbGRpICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBSdW5uaW5nIFVJRCBkb2Vzbid0IG1hdGNoIFVJRCBvZiB1c2VyIHdlJ3JlIGFsdGVyaW5nLCBzaGVsbCBjaGFuZ2UgIgorImRlbmllZFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiVzOiBsYSBzaGVsbCBub24gw6ggaW4gL2V0Yy9zaGVsbHMsIG1vZGlmaWNhIGRlbGxhIHNoZWxsIG5lZ2F0YVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiTW9kaWZpY2Egc2hlbGwgcGVyICVzIGluIGNvcnNvLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJOdW92YSBzaGVsbCIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyOQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiU2hlbGwgbm9uIG1vZGlmaWNhdGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiU2hlbGwgKk5PTiogbW9kaWZpY2F0YS4gIFJpcHJvdmFyZSBzdWNjZXNzaXZhbWVudGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgY2hhbmdlZC5cbiIKK21zZ3N0ciAiU2hlbGwgbW9kaWZpY2F0YS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1c2VybmFtZSBdXG4iCittc2dzdHIgIiIKKyJVc286ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyBub21ldXRlbnRlIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM0OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2hlbGwgbXVzdCBiZSBhIGZ1bGwgcGF0aCBuYW1lLlxuIgorbXNnc3RyICIlczogbGEgc2hlbGwgZGV2ZSBlc3NlcmUgdW4gbm9tZSBwZXJjb3JzbyBjb21wbGV0by5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogXCIlc1wiIG5vbiBlc2lzdGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgZXhlY3V0YWJsZS5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBub24gZXNlZ3VpYmlsZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6ICclYycgbm9uIMOoIGNvbnNlbnRpdG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENvbnRyb2wgY2hhcmFjdGVycyBhcmUgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiVzOiBOb24gc29ubyBhbW1lc3NpIGkgY2FyYXR0ZXJpIGRpIGNvbnRyb2xsby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NSBsb2dpbi11dGlscy9jaHNoLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICJBdHRlbnppb25lOiBcIiVzXCIgbm9uIMOoIGVsZW5jYXRvIGluIC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBub24gw6ggZWxlbmNhdG8gaW4gL2V0Yy9zaGVsbHMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVc2UgLWwgb3B0aW9uIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICIlczogdXNhcmUgbCdvcHppb25lIC1sIHBlciB2ZWRlcmUgbCdlbGVuY29cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIlV0aWxpenphcmUgJXMgLWwgcGVyIGNvbnN1bHRhcmUgbCdlbGVuY28uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICJOZXNzdW5hIHNoZWxsIGNvbm9zY2l1dGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2lzbG9jYWwuYzo4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIG9wZW4gJXMgZm9yIHJlYWRpbmcsIGV4aXRpbmcuIgorbXNnc3RyICJpbXBvc3NpYmlsZSBhcHJpcmUgJXMgaW4gbGV0dHVyYSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICJVc286IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXRlbnRlIC4uLl1cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIgIHR1dHRvcmEgY29sbGVnYXRvIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJ3dG1wIGJlZ2lucyAlcyIKK21zZ3N0ciAiIgorIlxuIgorInd0bXAgaW5pemlhICVzIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzgwIGxvZ2luLXV0aWxzL2xhc3QuYzozOTggbG9naW4tdXRpbHMvbGFzdC5jOjQ0OQorbXNnaWQgImxhc3Q6IG1hbGxvYyBmYWlsdXJlLlxuIgorbXNnc3RyICJsYXN0OiBlcnJvcmUgZGkgbWFsbG9jLlxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgImxhc3Q6IGdldGhvc3RuYW1lIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisiaW50ZXJyb3R0byAlMTAuMTBzICU1LjVzIFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIkZBVEFMRTogaW1wb3NzaWJpbGUgcmlhcHJpcmUgbGEgdHR5OiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIKK21zZ3N0ciAiJXMgbm9uIMOoIHVuIGRpc3Bvc2l0aXZvIHNwZWNpYWxlIGEgYmxvY2NoaSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMzgKK21zZ2lkICJGQVRBTDogYmFkIHR0eSIKK21zZ3N0ciAiRkFUQUxFOiB0dHkgbm9uIHZhbGlkYSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgImxvZ2luOiAtaCBzb2xhbWVudGUgcGVyIHN1cGVyLXVzZXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgIlVzbzogbG9naW4gWy1mcF0gW25vbWV1dGVudGVdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgaW5pemlhbGl6emFyZSBQQU06ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgImxvZ2luOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIkZBTExJVE8gSUwgTE9HSU4gJWQgREEgJXMgUEVSICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkxvZ2luIGluY29ycmVjdFxuIgorIlxuIgorbXNnc3RyICIiCisiTG9naW4gbm9uIGNvcnJldHRvXG4iCisiXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRPTyBNQU5ZIExPR0lOIFRSSUVTICglZCkgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJUUk9QUEkgVEVOVEFUSVZJIERJIExPR0lOICglZCkgREEgJXMgUEVSICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJGQUxMSVRBIFNFU1NJT05FIERJIExPR0lOIERBICVzIFBFUiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxvZ2luIG5vbiBjb3JyZXR0b1xuIgorCisjIEZJWE1FCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlByb2JsZW1hIG5lbGwnYXZ2aWFyZSBsYSBzZXNzaW9uZSwgaW50ZXJyb3R0by5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiTm9tZSB1dGVudGUgTlVMTCBpbiAlczolZC4gSW50ZXJyb3R0by4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdXNlciBuYW1lIFwiJXNcIiBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICJOb21lIHV0ZW50ZSBcIiVzXCIgbm9uIHZhbGlkbyBpbiAlczolZC4gSW50ZXJyb3R0by4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzE3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgImxvZ2luOiBtZW1vcmlhIGVzYXVyaXRhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzYxCittc2dpZCAiSWxsZWdhbCB1c2VybmFtZSIKK21zZ3N0ciAiTm9tZSB1dGVudGUgbm9uIHZhbGlkbyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9naW4gcmVmdXNlZCBvbiB0aGlzIHRlcm1pbmFsLlxuIgorbXNnc3RyICIlcyBsb2dpbiByaWZpdXRhdG8gc3UgcXVlc3RvIHRlcm1pbmFsZS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiTE9HSU4gJXMgUklGSVVUQVRPIERBICVzIFNVIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiCittc2dzdHIgIkxPR0lOICVzIFJJRklVVEFUTyBTVSBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICJMb2dpbiBub24gY29ycmV0dG9cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRJQUxVUCBBVCAlcyBCWSAlcyIKK21zZ3N0ciAiIENPTk5FU1NJT05FIERJIEFDQ0VTU08gUkVNT1RPIEEgJXMgQVRUUkFWRVJTTyAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMgRlJPTSAlcyIKK21zZ3N0ciAiTE9HSU4gREkgUk9PVCBBICVzIERBICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyIKK21zZ3N0ciAiTE9HSU4gREkgUk9PVCBBICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAiTE9HSU4gQSAlcyBBVFRSQVZFUlNPICVzIERBICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIkxPR0lOIEEgJXMgQVRUUkFWRVJTTyAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG5ldyBtYWlsLlxuIgorbXNnc3RyICJDJ8OoIG51b3ZhIHBvc3RhLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAiQyfDqCBwb3N0YS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjogZXJyb3JlIGluIGVzZWN1emlvbmUgZGVsIGZvcms6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVElPQ1NDVFRZIGZhaWxlZDogJW0iCittc2dzdHIgIlRJT0NTQ1RUWSBub24gcml1c2NpdG86ICVtIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjgKK21zZ2lkICJzZXR1aWQoKSBmYWlsZWQiCittc2dzdHIgInNldHVpZCgpIG5vbiByaXVzY2l0byIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGRpcmVjdG9yeSAlcyFcbiIKK21zZ3N0ciAiTmVzc3VuYSBkaXJlY3RvcnkgJXMhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dnaW5nIGluIHdpdGggaG9tZSA9IFwiL1wiLlxuIgorbXNnc3RyICJDb25uZXNzaW9uZSBjb24gaG9tZSA9IFwiL1wiLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICJsb2dpbjogbmVzc3VuYSBtZW1vcmlhIHBlciBsbyBzY3JpcHQgc2hlbGwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogY291bGRuJ3QgZXhlYyBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorbXNnc3RyICJsb2dpbjogZXhlYyBkZWxsbyBzY3JpcHQgc2hlbGwgaW1wb3NzaWJpbGU6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIHNoZWxsOiAlcy5cbiIKK21zZ3N0ciAibG9naW46IG5lc3N1bmEgc2hlbGw6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyIlcyBsb2dpbjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJpbCBub21lIGRpIGxvZ2luIMOoIHRyb3BwbyBsdW5nby5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAzCittc2dpZCAiTkFNRSB0b28gbG9uZyIKK21zZ3N0ciAiTk9NRSB0cm9wcG8gbHVuZ28iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMxMAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lcyBtYXkgbm90IHN0YXJ0IHdpdGggJy0nLlxuIgorbXNnc3RyICJJIG5vbWkgZGkgbG9naW4gbm9uIHBvc3Nvbm8gaW5pemlhcmUgY29uJy0nLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgInRyb3BwaSBsaW5lZmVlZCB2dW90aS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIxCittc2dpZCAiRVhDRVNTSVZFIGxpbmVmZWVkcyIKK21zZ3N0ciAiTGluZWZlZWQgRUNDRVNTSVZJIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiTG9naW4gc2NhZHV0byBkb3BvICVkIHNlY29uZGlcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgbG9naW46ICUuKnMgIgorbXNnc3RyICJVbHRpbW8gbG9naW46ICUuKnMgIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnJvbSAlLipzXG4iCittc2dzdHIgImRhICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAic3UgJS4qc1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gRkFJTFVSRSBGUk9NICVzLCAlcyIKK21zZ3N0ciAiRVJST1JFIERJIExPR0lOIERBICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICJFUlJPUkUgREkgTE9HSU4gU1UgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgRlJPTSAlcywgJXMiCittc2dzdHIgIiVkIEVSUk9SSSBESSBMT0dJTiBEQSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBPTiAlcywgJXMiCittc2dzdHIgIiVkIEVSUk9SSSBESSBMT0dJTiBTVSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyB5XG4iCittc2dzdHIgIsOoIHNcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5cbiIKK21zZ3N0ciAiw6ggblxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBtZXNnIFt5IHwgbl1cbiIKK21zZ3N0ciAiVXNvOiBtZXNnIFtzIHwgbl1cbiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAibmV3Z3JwOiBjaGkgc2VpPyIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTA3IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyMQorbXNnaWQgIm5ld2dycDogc2V0Z2lkIgorbXNnc3RyICJuZXdncnA6IHNldGdpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIm5ld2dycDogbmVzc3VuIGdydXBwbyBkaSBxdWVzdG8gZ2VuZXJlLiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiBhdXRvcml6emF6aW9uZSBuZWdhdGEiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIk5lc3N1bmEgc2hlbGwiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW5zXVxuIgorbXNnc3RyICJVc286IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTM0Cittc2dpZCAiU2h1dGRvd24gcHJvY2VzcyBhYm9ydGVkIgorbXNnc3RyICJQcm9jZXNzbyBkaSBzcGVnbmltZW50byBpbnRlcnJvdHRvIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiVzOiBzb2xhbWVudGUgcm9vdCBwdcOyIHNwZWduZXJlIHVuIHNpc3RlbWEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoYXQgbXVzdCBiZSB0b21vcnJvdywgY2FuJ3QgeW91IHdhaXQgdGlsbCB0aGVuP1xuIgorbXNnc3RyICJWZXJyw6AgZWZmZXR0dWF0byBkb21hbmksIG5vbiDDqCBwb3NzaWJpbGUgYXR0ZW5kZXJlIGZpbm8gYWQgYWxsb3JhP1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMxMAorbXNnaWQgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCittc2dzdHIgInBlciBtYW51dGVuemlvbmU7IGJvdW5jZSwgYm91bmNlIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMzOQorbXNnaWQgIlRoZSBzeXN0ZW0gaXMgYmVpbmcgc2h1dCBkb3duIHdpdGhpbiA1IG1pbnV0ZXMiCittc2dzdHIgIklsIHNpc3RlbWEgdmVycsOgIHNwZW50byBlbnRybyA1IG1pbnV0aSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNDMKK21zZ2lkICJMb2dpbiBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4iCittc2dzdHIgIsOIIHBlcmNpw7IgcHJvaWJpdG8gZWZmZXR0dWFyZSBpbCBsb2dpbi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY1CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYm9vdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAicmlhdnZpYXRvIGRhICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiZmVybWF0byBkYSAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDMyCittc2dpZCAiIgorIlxuIgorIldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iCittc2dzdHIgIiIKKyJcbiIKKyJQZXJjaMOpIHNvbm8gYW5jb3JhIGF0dGl2byBkb3BvIGlsIHJpYXZ2aW8/IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzNAorbXNnaWQgIiIKKyJcbiIKKyJOb3cgeW91IGNhbiB0dXJuIG9mZiB0aGUgcG93ZXIuLi4iCittc2dzdHIgIiIKKyJcbiIKKyLDiCBvcmEgcG9zc2liaWxlIHRvZ2xpZXJlIGwnYWxpbWVudGF6aW9uZSBlbGV0dHJpY2EuLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICJDaGlhbWF0YSBkZWxsYSBmdW56aW9uYWxpdMOgIGRpIHNwZWduaW1lbnRvIGRlbCBrZXJuZWwuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcG93ZXJpbmcgb2ZmXHQlc1xuIgorbXNnc3RyICJFcnJvcmUgZHVyYW50ZSBsbyBzcGVnbmltZW50b1x0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAiRXNlY3V6aW9uZSBkZWwgcHJvZ3JhbW1hIFwiJXNcIiBpbiBjb3Jzby4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBleGVjdXRpbmdcdCVzXG4iCittc2dzdHIgIkVycm9yZSBkdXJhbnRlIGwnZXNlY3V6aW9uZSBkaVx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiVVJHRU5URTogbWVzc2FnZ2lvIGJyb2FkY2FzdCBkYSAlczoiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiCittc2dzdHIgIklsIHNpc3RlbWEgc2kgc3BlZ25lcsOgIHRyYSAlZCBvcmUgZSAlZCBtaW51dGkiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICJJbCBzaXN0ZW1hIHNpIHNwZWduZXLDoCB0cmEgMSBvcmEgZSAlZCBtaW51dGkiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiSWwgc2lzdGVtYSBzaSBzcGVnbmVyw6AgaW4gJWQgbWludXRpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgbWludXRlXG4iCittc2dzdHIgIklsIHNpc3RlbWEgc2kgc3BlZ25lcsOgIGluIDEgbWludXRvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIgorbXNnc3RyICJJbCBzaXN0ZW1hIHNpIHNwZWduZXLDoCBJTU1FRElBVEFNRU5URSFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx0Li4uICVzIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIkltcG9zc2liaWxlIGZhcmUgdW4gZm9yayBwZXIgc3dhcG9mZi4gUGF6aWVuemEhIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICJJbXBvc3NpYmlsZSBlc2VndWlyZSBzd2Fwb2ZmLCBzaSBzcGVyYSBjaGUgdW1vdW50IGNlIGxhIGZhY2NpYS4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgZmFyZSB1biBmb3JrIHBlciB1bW91bnQsIHNpIHByb3ZhIG1hbnVhbG1lbnRlLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGV4ZWMgJXMsIHRyeWluZyB1bW91bnQuXG4iCittc2dzdHIgIkltcG9zc2liaWxlIGVzZWd1aXJlICVzLCBzaSBwcm92YSBhZCB1c2FyZSB1bW91bnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjEwCittc2dpZCAiQ2Fubm90IGV4ZWMgdW1vdW50LCBnaXZpbmcgdXAgb24gdW1vdW50LiIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgZXNlZ3VpcmUgdW1vdW50LCB0ZXJtaW5hIHV0aWxpenpvIGRpIHVtb3VudC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjE1Cittc2dpZCAiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIgorbXNnc3RyICJTbW9udGFnZ2lvIGluIGNvcnNvIGRpIHF1YWxzaWFzaSBmaWxlc3lzdGVtIHJpbWFuZW50ZS4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAic2h1dGRvd246IENvdWxkbid0IHVtb3VudCAlczogJXNcbiIKK21zZ3N0ciAic2h1dGRvd246IEltcG9zc2liaWxlIHNtb250YXJlICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICJBdnZpbyBpbiBtb2RhbGl0w6Agc2luZ29sbyB1dGVudGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJlc2VjdXppb25lIGRpIHVuYSBzaGVsbCBwZXIgc2luZ29sbyB1dGVudGUgbm9uIHJpdXNjaXRhXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJmb3JrIGRpIHVuYSBzaGVsbCBwZXIgc2luZ29sbyB1dGVudGUgbm9uIHJpdXNjaXRvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMDgKK21zZ2lkICJlcnJvciBvcGVuaW5nIGZpZm9cbiIKK21zZ3N0ciAiZXJyb3JlIGR1cmFudGUgbCdhcGVydHVyYSBkZWwgZmlmb1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjEyCittc2dpZCAiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIKK21zZ3N0ciAiZXJyb3JlIGltcG9zdGFuZG8gY2xvc2Utb24tZXhlYyBzdSAvZGV2L2luaXRjdGwiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNTkKK21zZ2lkICJlcnJvciBydW5uaW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNjMKK21zZ2lkICJlcnJvciBmb3JraW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDUKK21zZ2lkICIiCisiXG4iCisiV3JvbmcgcGFzc3dvcmQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQYXNzd29yZCBlcnJhdGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MTgKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJsc3RhdCBkZWwgcGVyY29yc28gbm9uIHJpdXNjaXRvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MjYKK21zZ2lkICJzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgInN0YXQgZGVsIHBlcmNvcnNvIG5vbiByaXVzY2l0b1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgImFwZXJ0dXJhIGRlbGxhIGRpcmVjdG9yeSBub24gcml1c2NpdGFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwMQorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwYXduaW5nOiBcIiVzXCIgdG9vIGZhc3Q6IHF1ZW5jaGluZyBlbnRyeVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDkKK21zZ2lkICJmb3JrIGZhaWxlZFxuIgorbXNnc3RyICJmb3JrIG5vbiByaXVzY2l0b1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTQwIHRleHQtdXRpbHMvbW9yZS5jOjE2NjMKK21zZ2lkICJleGVjIGZhaWxlZFxuIgorbXNnc3RyICJleGVjIGZhbGxpdGFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU2NAorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlIGluaXR0YWJcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgIlRFUk0gbm9uIGRlZmluaXRvIG8gaW1wb3NzaWJpbGUgZXNlZ3VpcmUgc3RhdCBzdWwgdHR5XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5MzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJlcnJvcmUgZmVybWFuZG8gaWwgc2Vydml6aW8gXCIlc1wiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTdG9wcGVkIHNlcnZpY2U6ICVzXG4iCittc2dzdHIgImVycm9yZSBmZXJtYW5kbyBpbCBzZXJ2aXppbyBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMDcwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBydW5uaW5nIHByb2dyYW1tZTogXCIlc1wiXG4iCittc2dzdHIgIkVzZWN1emlvbmUgZGVsIHByb2dyYW1tYSBcIiVzXCIgaW4gY29yc28uLi5cbiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6NzUKK21zZ2lkICJ0b28gbWFueSBpb3YncyAoY2hhbmdlIGNvZGUgaW4gd2FsbC90dHltc2cuYykiCittc2dzdHIgInRyb3BwaSBpb3YgKG1vZGlmaWNhcmUgaWwgY29kaWNlIGluIHdhbGwvdHR5bXNnLmMpIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJleGNlc3NpdmVseSBsb25nIGxpbmUgYXJnIgorbXNnc3RyICJhcmdvbWVudG8gbGluZWEgZWNjZXNzaXZhbWVudGUgbHVuZ28iCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgZWZmZXR0dWFyZSBpbCBmb3JrIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZm9yazogJXMiCittc2dzdHIgImZvcms6ICVzIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEJBRCBFUlJPUiIKK21zZ3N0ciAiJXM6IEVSUk9SRSBHUkFWRSIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIHBhc3N3b3JkIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiJXM6IGlsIGZpbGUgZGVsbGUgcGFzc3dvcmQgw6ggb2NjdXBhdG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBncm91cCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBpbCBmaWxlIGRpIGdydXBwbyDDqCBvY2N1cGF0by5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiJXM6IGlsIGZpbGUgJXMgw6ggb2NjdXBhdG8gKCVzIHByZXNlbnRlKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBsaW5rICVzOiAlc1xuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgY29sbGVnYXJlICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBnZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiBpbXBvc3NpYmlsZSBvdHRlbmVyZSBpbCBjb250ZXN0byBwZXIgJXMiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IGltcG9zc2liaWxlIGltcG9zdGFyZSBpbCBjb250ZXN0byBwZXIgJXMiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHVubG9jayAlczogJXMgKHlvdXIgY2hhbmdlcyBhcmUgc3RpbGwgaW4gJXMpXG4iCittc2dzdHIgIiIKKyIlczogaW1wb3NzaWJpbGUgc2Jsb2NjYXJlICVzOiAlcyAobGUgbW9kaWZpY2hlIGVmZmV0dHVhdGUgc29ubyBhbmNvcmEgaW4gJSIKKyJzKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgZm9ya1xuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgZWZmZXR0dWFyZSBpbCBmb3JrXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHVuY2hhbmdlZFxuIgorbXNnc3RyICIlczogJXMgaW1tdXRhdG9cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI5NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gY2hhbmdlcyBtYWRlXG4iCittc2dzdHIgIiVzOiBuZXNzdW5hIG1vZGlmaWNhIGVmZmV0dHVhdGFcbiIKKworIyBGSVhNRTogc2hhZG93OiBpbnZhcmlhdG8/IG9tYnJhPworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIkdydXBwaSBzaGFkb3cgc29ubyB1c2F0aSBzdSBxdWVzdG8gc2lzdGVtYS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBwYXNzd29yZHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIlBhc3N3b3JkIHNoYWRvdyBzb25vIHVzYXRlIHN1IHF1ZXN0byBzaXN0ZW1hLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldvdWxkIHlvdSBsaWtlIHRvIGVkaXQgJXMgbm93IFt5L25dPyAiCittc2dzdHIgIlZvbGV0ZSBtb2RpZmljYXJlICVzIGFkZXNzbyBbeS9uXT8iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICJVc286ICVzIFtmaWxlXVxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBvcGVuIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgYXByaXJlIGlsIGZpbGUgdGVtcG9yYW5lby5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICJNZXNzYWdnaW8gYnJvYWRjYXN0IGRhICVzQCVzIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3aWxsIG5vdCByZWFkICVzIC0gdXNlIHN0ZGluLlxuIgorbXNnc3RyICIlczogbm9uIHZlcnLDoCBsZXR0byAlcyAtIHVzYXJlIHN0ZGluLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgbGVnZ2VyZSAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgc3RhdCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IGltcG9zc2liaWxlIGZhcmUgc3RhdCBkZWwgZmlsZSB0ZW1wb3JhbmVvLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgbGVnZ2VyZSBpbCBmaWxlIHRlbXBvcmFuZW8uXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgInZhbG9yZSBkZWxsJ2Fubm8gbm9uIHZhbGlkbzogdXNhcmUgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICJ2YWxvcmUgZGVsIG1lc2Ugbm9uIHZhbGlkbzogdXNhcmUgMS0xMiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNzIKK21zZ2lkICJpbGxlZ2FsIHllYXIgdmFsdWU6IHVzZSAxLTk5OTkiCittc2dzdHIgInZhbG9yZSBkZWxsJ2Fubm8gbm9uIHZhbGlkbzogdXNhcmUgMS05OTk5IgorCisjIEZJWE1FCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJXMgJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY2FsIFstMTNzbWp5Vl0gW1tbZGF5XSBtb250aF0geWVhcl1cbiIKK21zZ3N0ciAiVXNvOiBjYWwgWy0xM3NtanlWXSBbW21lc2VdIGFubm9dXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsrZm9ybWF0XSBbZGF5IG1vbnRoIHllYXJdXG4iCittc2dzdHIgIlVzbzogJXMgWytmb3JtYXRvXSBbZ2lvcm5vIG1lc2UgYW5ub11cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIkdpb3JubyBkaSBTLlRpYmVyaW8iCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIExBQkVMPTxsYWJlbD58VVVJRD08dXVpZD5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcmVzb2x2ZSAnJXMnIgorbXNnc3RyICJpbXBvc3NpYmlsZSBhcHJpcmUgJXMiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXNcbiIKK21zZ3N0ciAiJXM6IHNlZ25hbGUgc2Nvbm9zY2l1dG8gJXNcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIHByb2Nlc3MgXCIlc1wiXG4iCittc2dzdHIgIiVzOiBpbXBvc3NpYmlsZSB0cm92YXJlIGlsIHByb2Nlc3NvIFwiJXNcIlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzOyB2YWxpZCBzaWduYWxzOlxuIgorbXNnc3RyICIlczogc2VnbmFsZSBzY29ub3NjaXV0byAlczsgc2VnbmFsaSB2YWxpZGk6XG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtcyBzaWduYWwgfCAtcCBdIFsgLWEgXSBwaWQgLi4uXG4iCittc2dzdHIgIlVzbzogJXMgWyAtcyBzZWduYWxlIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiICAgICAgICVzIC1sIFsgc2VnbmFsZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiaWwgbm9tZSBkaSBsb2dpbiDDqCB0cm9wcG8gbHVuZ28uXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgIkRpbWVuc2lvbmkgYmxvY2NvOiAlZFxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbm5lY3Q6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogJXM6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6ICVzOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIGZhY2lsaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IG5vbWUgZnVuemlvbmFsaXTDoCBzY29ub3NjaXV0bzogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBwcmlvcml0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBub21lIHByaW9yaXTDoCBzY29ub3NjaXV0bzogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogbG9nZ2VyIFstaXNdIFstZiBmaWxlXSBbLXAgcHJpXSBbLXQgdGFnXSBbLXUgc29ja2V0XSBbIG1lc3NhZ2UgLi4uIF1cbiIKK21zZ3N0ciAiIgorIlVzbzogbG9nZ2VyIFstaXNdIFstZiBmaWxlXSBbLXAgcHJpXSBbLXQgdGFnXSBbLXUgc29ja2V0XSBbIG1lc3NhZ2dpbyAuLiBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9vay5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9vayBbLWRmYV0gWy10IGNoYXJdIHN0cmluZyBbZmlsZV1cbiIKK21zZ3N0ciAiVXNvOiBsb29rIFstZGZhXSBbLXQgY2hhcl0gc3RyaW5nYSBbZmlsZV1cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJJbXBvc3NpYmlsZSBhcHJpcmUgJXNcbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA5IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICJPdHRlbnV0aSAlZCBieXRlIGRhICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxNDMgbWlzYy11dGlscy9uYW1laS5jOjE5OCBtaXNjLXV0aWxzL25hbWVpLmM6MjI1CisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjQ1IG1pc2MtdXRpbHMvbmFtZWkuYzoyNTIgbWlzYy11dGlscy9uYW1laS5jOjI5NAorIywgZnV6enkKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAibWVtb3JpYSBpbnN1ZmZpY2llbnRlP1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCBzeW1saW5rOiAlcyIKK21zZ3N0ciAiaW9jdGwoKSBub24gw6ggcml1c2NpdG8gYSBsZWdnZXJlIGwnb3JhcmlvIGRhICVzIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjMxIG1pc2MtdXRpbHMvbmFtZWkuYzoyNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgImltcG9zc2liaWxlIGVzZWd1aXJlIHN0YXQgc3VsIGRpc3Bvc2l0aXZvICVzIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDQ5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXSBwYXRobmFtZSBbcGF0aG5hbWUgLi4uXVxuIgorbXNnc3RyICJVc286IG5hbWVpIFstbXhdIG5vbWUgcGVyY29yc28gW25vbWUgcGVyY29yc28gLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkIHBhcnRpemlvbmk6XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDYxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIG5hbWVpKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisiUGVyIG1hZ2dpb3JpIGluZm9ybWF6aW9uaSB2ZWRlcmUgc2V0YXJjaCg4KS5cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQ6ICVzIgorbXNnc3RyICJpbXBvc3NpYmlsZSBmYXJlIHN0YXQgZGkgJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiJXM6IG1lbW9yaWEgZXNhdXJpdGFcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgcmlub21pbmFyZSAlcyBpbiAlczogJXNcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYWxsOiAlcyBmcm9tIHRvIGZpbGVzLi4uXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGAlcycgaXMgYSBsaW5rLlxuIgorIlVzZSBgJXMgW29wdGlvbnNdICVzJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LlxuIgorIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIKK21zZ3N0ciAiIgorIkF0dGVuemlvbmU6IFwiJXNcIiDDqCB1biBjb2xsZWdhbWVudG8uXG4iCisiVXNhcmUgXCIlcyBbb3B6aW9uaV0gJXNcIiBzZSBzaSB2dW9sZSB2ZXJhbWVudGUgdXNhcmxvLlxuIgorIlNjcmlwdCBub24gYXZ2aWF0by5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorbXNnc3RyICJVc286IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJTY3JpcHQgaW5pemlhdG8sIGlsIGZpbGUgw6ggJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvciAlZDogJXNcbiIKK21zZ3N0ciAiZXJyb3JlIGRpIHNjcml0dHVyYSBzdSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiU2NyaXB0IGluaXppYXRvIHN1ICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICJlcnJvcmUgZGkgc2NyaXR0dXJhIHN1ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IGltcG9zc2liaWxlIHRyb3ZhcmUgaWwgZGlzcG9zaXRpdm8gcGVyICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorIlxuIgorIlNjcmlwdCBlZmZldHR1YXRvIHN1ICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzNworIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgZG9uZSwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJTY3JpcHQgZWZmZXR0dWF0bywgaWwgZmlsZSDDqCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVucHR5IGZhaWxlZFxuIgorbXNnc3RyICJvcGVucHR5IG5vbiByaXVzY2l0YVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgcHR5J3NcbiIKK21zZ3N0ciAiRXNhdXJpdGkgdHV0dGkgaSBwdHkgZGlzcG9uaWJpbGlcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyA8dGltaW5nZmlsZT4gWzx0eXBlc2NyaXB0PiBbPGRpdmlzb3I+XV1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorIywgZnV6enkKK21zZ2lkICJ3cml0ZSB0byBzdGRvdXQgZmFpbGVkIgorbXNnc3RyICJBcGVydHVyYSBkaSAlcyBub24gcml1c2NpdGEiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBub24gw6ggcml1c2NpdG8gYSBsZWdnZXJlIGwnb3JhcmlvIGRhICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIkltcG9zc2liaWxlIGFwcmlyZSBpbCBmaWxlICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgIkltcG9zc2liaWxlIGFwcmlyZSBpbCBmaWxlICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBub24gw6ggcml1c2NpdG8gYSBsZWdnZXJlIGwnb3JhcmlvIGRhICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IgorbXNnc3RyICIlczogRU9GIG5vbiBwcmV2aXN0byBuZWwgZmlsZSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczogYXJnb21lbnRvIGVycmF0bywgdXNvXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRlcm0gdGVybWluYWxfbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVzZXQgXVxuIgorbXNnc3RyICIgIFsgLXJlc2V0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCittc2dzdHIgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiICBbIC1kZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc5IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODMKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NQorIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorbXNnc3RyICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdG9yZSBdXG4iCittc2dzdHIgIiAgWyAtc3RvcmUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIgIFsgLWJsYW5rIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS1OVU1fQ09OU09MRV0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1hcHBlbmQgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1hcHBlbmQgWzEtTlVNX0NPTlNPTEVdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZmlsZSBkdW1wZmlsZW5hbWUgXVxuIgorbXNnc3RyICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIGJsYW5rXG4iCittc2dzdHIgImltcG9zc2liaWxlIGVmZmV0dHVhcmUgaWwgZm9yayIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIHVuYmxhbmtcbiIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgZWZmZXR0dWFyZSBpbCBmb3JrIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IGJsYW5rIHN0YXR1c1xuIgorbXNnc3RyICJpbXBvc3NpYmlsZSBhcHJpcmUgJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICIgaW1wb3NzaWJpbGUgKGRpcylpbXBvc3RhcmUgbGEgbW9kYWxpdMOgIHJpc3Bhcm1pbyBlbmVyZ2V0aWNvXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICJlcnJvcmUga2xvZ2N0bCA6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JpdGluZyBzY3JlZW5kdW1wXG4iCittc2dzdHIgIkVycm9yZSBpbiBzY3JpdHR1cmEgc2NyZWVuZHVtcFxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIkltcG9zc2liaWxlIGFwcmlyZSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6ICRURVJNIG5vbiDDqCBkZWZpbml0by5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdIFstVCB0aW1lb3V0XVxuIgorbXNnc3RyICJVc286IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXRlbnRlIC4uLl1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyBbLXJ8dF0gWy1uIG51bV0gWy1zIHNvY2tldHBhdGhdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgLWtcbiIKK21zZ3N0ciAiICAgICAgICVzIC1sIFsgc2VnbmFsZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTIKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGFyZ3VtZW50cyIKK21zZ3N0ciAiY29sOiBhcmdvbWVudG8gLWwgbm9uIHZhbGlkbyBwZXIgJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTkKKyMsIGZ1enp5Cittc2dpZCAic29ja2V0IgorbXNnc3RyICJuZnMgc29ja2V0IgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTcwCisjLCBmdXp6eQorbXNnaWQgImNvbm5lY3QiCittc2dzdHIgIm5mcyBjb25uZWN0IgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTg5CisjLCBmdXp6eQorbXNnaWQgIndyaXRlIgorbXNnc3RyICJTY3JpdmkiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxOTcKKyMsIGZ1enp5Cittc2dpZCAicmVhZCBjb3VudCIKK21zZ3N0ciAibGV0dHVyYSBkaSAlY1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjAzCittc2dpZCAiYmFkIHJlc3BvbnNlIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgInV1aWRkIGRhZW1vbiBhbHJlYWR5IHJ1bm5pbmcgYXQgcGlkICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBjcmVhdGUgdW5peCBzdHJlYW0gc29ja2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBiaW5kIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICJJbXBvc3NpYmlsZSBhcHJpcmUgJXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxpc3RlbiBvbiB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgYXByaXJlICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciByZWFkaW5nIGZyb20gY2xpZW50LCBsZW4gPSAlZFxuIgorbXNnc3RyICJFcnJvcmUgZHVyYW50ZSBsYSBsZXR0dXJhIGRpICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlcmF0aW9uICVkLCBpbmNvbWluZyBudW0gPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCByYW5kb20gVVVJRDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQgJXMgYW5kICVkIGZvbGxvd2luZ1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkICVkIFVVSUQnczpcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIG9wZXJhdGlvbiAlZFxuIgorbXNnc3RyICJpZCBub24gdmFsaWRvIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDY4IG1pc2MtdXRpbHMvdXVpZGQuYzo0ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJhZCBudW1iZXI6ICVzXG4iCittc2dzdHIgIiVzOiB2YWxvcmUgbm9uIHZhbGlkb1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNhbGxpbmcgdXVpZGQgZGFlbW9uICglcyk6ICVzXG4iCittc2dzdHIgImVycm9yZSBkdXJhbnRlIGlsIGNhbWJpYW1lbnRvIGRlbGxhIG1vZGFsaXTDoCBkaSAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCByZXBseSBsZW5ndGggZnJvbSBzZXJ2ZXIgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJLaWxsZWQgdXVpZGQgcnVubmluZyBhdCBwaWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRnZW4uYzozMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJVc286ICVzIFtvcHppb25pXSBkaXNwb3NpdGl2by4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3doZXJlaXMuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpciAuLi4gLWYgXSBuYW1lLi4uXG4iCittc2dzdHIgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBkaXIgLi4uIC1mIF0gbm9tZS4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjEyOAorIywgZnV6enkKK21zZ2lkICJjYWxsb2MgZmFpbGVkIgorbXNnc3RyICJtYWxsb2Mgbm9uIHJpdXNjaXRhIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE1MAorIywgZnV6enkKK21zZ2lkICJzdHJkdXAgZmFpbGVkIgorbXNnc3RyICJBcGVydHVyYSBkaSAlcyBub24gcml1c2NpdGEiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICIiCisiXG4iCisiRXJyb3JlIGR1cmFudGUgbGEgY2hpdXN1cmEgZGVsIGZpbGVcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJJbCBkaXNjbyAlcyBub24gY29udGllbmUgdW5hIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSB2YWxpZGFcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgZm91bmQgYSBtYWdpYyBzdHJpbmcgYXQgb2Zmc2V0IDB4JWp4IC0gaWdub3JlLiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiJXM6IGltcG9zc2liaWxlIGFwcmlyZTogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgbm9uIHJpdXNjaXRhXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlemQgYnl0ZXMgWyIKK21zZ3N0ciAiYnl0ZSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiXSBlcmFzZWQgYXQgb2Zmc2V0IDB4JWp4ICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI5MiBtb3VudC9zd2Fwb24uYzoxOTggbW91bnQvc3dhcG9uLmM6MjY2CisjOiBtb3VudC9zd2Fwb24uYzo0MTEgbW91bnQvc3dhcG9uLmM6NTcwIG1vdW50L3N3YXBvbi5jOjc3MgorIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IG5vbiByaXVzY2l0YVxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxNSBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgJyVzJyB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlZhbG9yZSBpbXBvc3RhdG8gbm9uIHZhbGlkbzogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxkZXZpY2U+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiVXNvOiAlcyBbb3B6aW9uaV0gZGlzcG9zaXRpdm8uLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlBlciBtYWdnaW9yaSBpbmZvcm1hemlvbmkgdmVkZXJlIHNldGFyY2goOCkuXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6Mzg3Cittc2dpZCAiLS1vZmZzZXQgYW5kIC0tYWxsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogY2FuJ3QgZmluZCB5b3VyIHR0eSdzIG5hbWVcbiIKK21zZ3N0ciAid3JpdGU6IGltcG9zc2liaWxlIHRyb3ZhcmUgaWwgbm9tZSBkaSB0dHlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogbCdhdXRvcml6emF6aW9uZSBwZXIgbGEgc2NyaXR0dXJhIMOoIGRpc2F0dGl2YXRhLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluIG9uICVzLlxuIgorbXNnc3RyICJ3cml0ZTogJXMgbm9uIMOoIGNvbGxlZ2F0byBhICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGhhIGkgbWVzc2FnZ2kgZGlzYXR0aXZhdGkgc3UgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICJVc286IHdyaXRlIHV0ZW50ZSBbdHR5XVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlOiAlcyBub24gw6ggY29sbGVnYXRvXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZFxuIgorbXNnc3RyICJ3cml0ZTogJXMgaGEgaSBtZXNzYWdnaSBkaXNhdHRpdmF0aVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBsb2dnZWQgaW4gbW9yZSB0aGFuIG9uY2U7IHdyaXRpbmcgdG8gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIMOoIGNvbGxlZ2F0byBwacO5IGRpIHVuYSB2b2x0YTsgc2NyaXR0dXJhIHN1ICVzIGluIGNvcnNvXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIChhcyAlcykgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICJNZXNzYWdnaW8gZGEgJXNAJXMgKGNvbWUgJXMpIHN1ICVzIGEgJXMgLi4uIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIk1lc3NhZ2dpbyBkYSAlc0AlcyBzdSAlcyBhICVzIC4uLiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgImF0dGVuemlvbmU6IGVycm9yZSBkdXJhbnRlIGxhIGxldHR1cmEgZGkgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAiYXR0ZW56aW9uZTogaW1wb3NzaWJpbGUgYXByaXJlICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNvdWxkIG5vdCBvcGVuICVzIC0gdXNpbmcgJXMgaW5zdGVhZFxuIgorbXNnc3RyICJtb3VudDogaW1wb3NzaWJpbGUgYXByaXJlICVzIC0gc2kgc3RhIHV0aWxpenphbmRvIGFsIHN1byBwb3N0byAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisiaW1wb3NzaWJpbGUgY3JlYXJlIHVuIGZpbGUgZGkgbG9jayAlczogJXMgKHVzYXJlIGlsIGZsYWcgLW4gcGVyIGNhbWJpYXJlKSIKKworIzogbW91bnQvZnN0YWIuYzo2MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbGluayBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyJpbXBvc3NpYmlsZSBjb2xsZWdhcmUgaWwgZmlsZSBkaSBsb2NrICVzOiAlcyAgKHVzYXJlIGlsIGZsYWcgLW4gcGVyIGNhbWJpYXJlKSIKKworIzogbW91bnQvZnN0YWIuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgImltcG9zc2liaWxlIGFwcmlyZSBpbCBmaWxlIGRpIGxvY2sgJXM6ICVzICh1c2FyZSBmbGFnIC1uIHBlciBjYW1iaWFyZSkiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICJJbXBvc3NpYmlsZSBmYXJlIGlsIGxvY2sgZGVsIGZpbGUgZGkgbG9jayAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo2NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzIgorbXNnc3RyICJpbXBvc3NpYmlsZSBmYXJlIGlsIGxvY2sgZGVsIGZpbGUgZGkgbG9jayAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICJzY2FkdXRvIgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorIkltcG9zc2liaWxlIGNyZWFyZSBpbCBjb2xsZWdhbWVudG8gJXNcbiIKKyJGb3JzZSBjJ8OoIHVuIHZlY2NoaW8gZmlsZSBkaSBsb2NrP1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjc5MiBtb3VudC9mc3RhYi5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyAoJXMpIC0gbXRhYiBub3QgdXBkYXRlZCIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlICVzICglcykgLSBtdGFiIG5vbiBhZ2dpb3JuYXRvIgorCisjOiBtb3VudC9mc3RhYi5jOjg1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAiZXJyb3JlIGR1cmFudGUgbGEgc2NyaXR0dXJhIGRpICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzo4NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXNcbiIKK21zZ3N0ciAiZXJyb3JlIGR1cmFudGUgaWwgY2FtYmlhbWVudG8gZGVsbGEgbW9kYWxpdMOgIGRpICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iCittc2dzdHIgImVycm9yZSBkdXJhbnRlIGlsIGNhbWJpYW1lbnRvIGRlbGxhIG1vZGFsaXTDoCBkaSAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgcmVuYW1lICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICJpbXBvc3NpYmlsZSByaW5vbWluYXJlICVzIGluICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6MzYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBzZXQgY2FwYWNpdHkgb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBpbXBvc3NpYmlsZSBvdHRlbmVyZSBpbmZvcm1hemlvbmkgc3VsIGRldmljZSAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIG9mZnNldCAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjM4OQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHNpemVsaW1pdCAlPFBSSXU2ND4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uICVzICh0eXBlICU8UFJJdTMyPikiCittc2dzdHIgIiwgY2lmcmF0dXJhICVzICh0aXBvICVkKSIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMAorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlZCIKK21zZ3N0ciAiLCBvZmZzZXQgJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiLCB0aXBvIGRpIGNpZnJhdHVyYSAlZFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGdldCBpbmZvIG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogaW1wb3NzaWJpbGUgb3R0ZW5lcmUgaW5mb3JtYXppb25pIHN1bCBkZXZpY2UgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgb3BlbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IGltcG9zc2liaWxlIGFwcmlyZSBpbCBkZXZpY2UgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NDggbW91bnQvbG9tb3VudC5jOjQ4MCBtb3VudC9sb21vdW50LmM6NTQyCisjOiBtb3VudC9sb21vdW50LmM6NTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczogbCd1dGVudGUgXCIlc1wiIG5vbiBlc2lzdGUuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NTkgbW91bnQvbG9tb3VudC5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIiCisKKyMgRklYTUUKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBmcmVlIGxvb3AgZGV2aWNlIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgdHJvdmFyZSB1biBsb29wIGRldmljZSBsaWJlcm8iCisKKyMgRklYTUU6IGxvb3AgZGV2aWNlCisjOiBtb3VudC9sb21vdW50LmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZT8gKElmIHNvLCByZWNvbXBpbGUgb3IgYG1vZHByb2JlIGxvb3AnLikiCittc2dzdHIgIiIKKyIlczogaW1wb3NzaWJpbGUgdHJvdmFyZSBxdWFsc2lhc2kgbG9vcCBkZXZpY2UuIEZvcnNlIHF1ZXN0byBrZXJuZWxcbiIKKyIgICAgICAgbm9uIMOoIGEgY29ub3NjZW56YSBkZWwgbG9vcCBkZXZpY2UgKHNlIMOoIHF1ZXN0byBpbCBjYXNvLFxuIgorIiAgICAgICBvY2NvcnJlIHJpY29tcGlsYXJlIG8gZXNlZ3VpcmUgXCJtb2Rwcm9iZSBsb29wXCIpLiIKKworIzogbW91bnQvbG9tb3VudC5jOjYzNgorIywgZnV6enkKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoaWxlIHJlYWRpbmcgcGFzc3BocmFzZSIKK21zZ3N0ciAiTWVtb3JpYSBpbnN1ZmZpY2llbnRlIHF1YW5kbyBzaSBhbXBsaWEgaWwgYnVmZmVyLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlcyBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJJbCBzZXR0b3JlICVkIMOoIGdpw6AgYWxsb2NhdG9cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY5NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICJtb3VudDogJXMlcyDDqCBwcm90ZXR0byBkYSBzY3JpdHR1cmEsIHZpZW5lIG1vbnRhdG8gaW4gc29sYSBsZXR0dXJhIgorCisjOiBtb3VudC9sb21vdW50LmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBMT09QX1NFVF9GRCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjgxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2V0X2xvb3AoJXMsJXMsJWxsdSwlbGx1KTogc3VjY2Vzc1xuIgorbXNnc3RyICJzZXRfbG9vcCglcywlcywlbGx1KTogcml1c2NpdG9cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgzNgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWxfbG9vcCglcyk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAiZGVsX2xvb3AoJXMpOiByaXVzY2l0b1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODQwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGRlbGV0ZSBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IGltcG9zc2liaWxlIGVsaW1pbmFyZSBpbCBkZXZpY2UgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIlF1ZXN0byBtb3VudCDDqCBzdGF0byBjb21waWxhdG8gc2VuemEgc3VwcG9ydG8gcGVyIGxvb3AuIFJpY29tcGlsYXJlLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyBsb29wX2RldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2l2ZSBpbmZvXG4iCisiICUxJHMgLWEgfCAtLWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgYWxsIHVzZWRcbiIKKyIgJTEkcyAtZCB8IC0tZGV0YWNoIDxsb29wZGV2PiBbPGxvb3BkZXY+IC4uLl0gZGVsZXRlXG4iCisiICUxJHMgLWYgfCAtLWZpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmQgdW51c2VkXG4iCisiICUxJHMgLWMgfCAtLXNldC1jYXBhY2l0eSA8bG9vcGRldj4gICAgICAgICAgIHJlc2l6ZVxuIgorIiAlMSRzIC1qIHwgLS1hc3NvY2lhdGVkIDxmaWxlPiBbLW8gPG51bT5dICAgICBsaXN0IGFsbCBhc3NvY2lhdGVkIHdpdGggIgorIjxmaWxlPlxuIgorIiAlMSRzIFsgb3B0aW9ucyBdIHstZnwtLWZpbmR8bG9vcGRldn0gPGZpbGU+ICBzZXR1cFxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIDx0eXBlPiBlbmFibGUgZGF0YSBlbmNyeXB0aW9uIHdpdGggc3BlY2lmaWVkIDxuYW1lL251bT5cbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbyB8IC0tb2Zmc2V0IDxudW0+ICAgICAgc3RhcnQgYXQgb2Zmc2V0IDxudW0+IGludG8gZmlsZVxuIgorIiAgICAgIC0tc2l6ZWxpbWl0IDxudW0+ICAgbG9vcCBsaW1pdGVkIHRvIG9ubHkgPG51bT4gYnl0ZXMgb2YgdGhlIGZpbGVcbiIKKyIgLXAgfCAtLXBhc3MtZmQgPG51bT4gICAgIHJlYWQgcGFzc3BocmFzZSBmcm9tIGZpbGUgZGVzY3JpcHRvciA8bnVtPlxuIgorIiAtciB8IC0tcmVhZC1vbmx5ICAgICAgICAgc2V0dXAgcmVhZC1vbmx5IGxvb3AgZGV2aWNlXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICBwcmludCBkZXZpY2UgbmFtZSAod2l0aCAtZiA8ZmlsZT4pXG4iCisiIC12IHwgLS12ZXJib3NlICAgICAgICAgICB2ZXJib3NlIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTAzNCBtb3VudC9sb21vdW50LmM6MTA3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTG9vcCBkZXZpY2UgaXMgJXNcbiIKK21zZ3N0ciAibG9vcDogaW1wb3NzaWJpbGUgYXByaXJlIGlsIGRldmljZSAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RvbGVuIGxvb3A9JXMuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiBkZXZpY2UgaXMgYnVzeSIKK21zZ3N0ciAidW1vdW50OiAlczogZGV2aWNlIG9jY3VwYXRvIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIgorbXNnc3RyICJtb3VudDogaW1wb3NzaWJpbGUgdHJvdmFyZSAlcyBpbiAlcyBvICVzIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHNlY29uZG8gbXRhYiwgJXMgw6ggZ2nDoCBtb250YXRvIHN1ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU0MAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIG1vdW50ZWQgb24gJXMiCittc2dzdHIgIm1vdW50OiBzZWNvbmRvIG10YWIsICVzIMOoIG1vbnRhdG8gc3UgJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzIGZvciB3cml0aW5nOiAlcyIKK21zZ3N0ciAibW91bnQ6IGltcG9zc2liaWxlIGFwcmlyZSAlcyBpbiBzY3JpdHR1cmE6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDogZXJyb3JlIGR1cmFudGUgbGEgc2NyaXR0dXJhIGRpICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzIgorbXNnc3RyICJtb3VudDogZXJyb3JlIGR1cmFudGUgaWwgY2FtYmlvIGRpIG1vZGFsaXTDoCBkaSAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGltcG9zc2liaWxlIGltcG9zdGFyZSBsJ2lkIGRpIGdydXBwbzogJXMiCisKKyM6IG1vdW50L21vdW50LmM6Njc1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJtb3VudDogaW1wb3NzaWJpbGUgaW1wb3N0YXJlIGwnaWQgdXRlbnRlOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBpbXBvc3NpYmlsZSBlZmZldHR1YXJlIGlsIGZvcms6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgJXNcbiIKK21zZ3N0ciAiUHJvdmEgZGkgJXMgaW4gY29yc29cbiIKKworIzogbW91bnQvbW91bnQuYzo4NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHlvdSBkaWRuJ3Qgc3BlY2lmeSBhIGZpbGVzeXN0ZW0gdHlwZSBmb3IgJXNcbiIKK21zZ3N0ciAibW91bnQ6IG5vbiBzaSDDqCBzcGVjaWZpY2F0byB1biB0aXBvIGRpIGZpbGVzeXN0ZW0gcGVyICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IGFsbCB0eXBlcyBtZW50aW9uZWQgaW4gJXMgb3IgJXNcbiIKK21zZ3N0ciAiICAgICAgUHJvdmVyw7IgdHV0dGkgaSB0aXBpIGNpdGF0aSBpbiAlcyBvICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICIgICAgICBlIHNlbWJyYSBjaGUgcXVlc3RvIHNpYSBzd2Fwc3BhY2VcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgdHlwZSAlc1xuIgorbXNnc3RyICIgICAgICBQcm92ZXLDsiBpbCB0aXBvICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiCittc2dzdHIgIiVzIGFzc29taWdsYSBhIHN3YXBzcGFjZSAtIG5vbiBtb250YXRvIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDIKK21zZ2lkICJtb3VudCBmYWlsZWQiCittc2dzdHIgIm1vdW50IG5vbiByaXVzY2l0byIKKworIzogbW91bnQvbW91bnQuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIgorbXNnc3RyICJtb3VudDogc29sYW1lbnRlIHJvb3QgcHXDsiBtb250YXJlICVzIHN1ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzQKK21zZ2lkICJtb3VudDogbG9vcCBkZXZpY2Ugc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogbG9vcCBkZXZpY2Ugc3BlY2lmaWNhdG8gZHVlIHZvbHRlIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzkKK21zZ2lkICJtb3VudDogdHlwZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiB0aXBvIHNwZWNpZmljYXRvIGR1ZSB2b2x0ZSIKKworIzogbW91bnQvbW91bnQuYzoxMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBza2lwcGluZyB0aGUgc2V0dXAgb2YgYSBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDogc2kgaWdub3JhIGwnaW1wb3N0YXppb25lIGRpIHVuIGxvb3AgZGV2aWNlXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICJtb3VudDogc2Vjb25kbyBtdGFiLCAlcyDDqCBnacOgIG1vbnRhdG8gc3UgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTExMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZ29pbmcgdG8gdXNlIHRoZSBsb29wIGRldmljZSAlc1xuIgorbXNnc3RyICJtb3VudDogc2kgaW50ZW5kZSB1dGlsaXp6YXJlIGlsIGxvb3AgZGV2aWNlICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgInVtb3VudDogJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjExMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBtYW5jYXRhIGltcG9zdGF6aW9uZSBkZWwgbG9vcCBkZXZpY2VcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzZXR1cCBsb29wIGRldmljZSBzdWNjZXNzZnVsbHlcbiIKK21zZ3N0ciAibW91bnQ6IGltcG9zdGF6aW9uZSBkZWwgbG9vcCBkZXZpY2Ugcml1c2NpdGFcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyAlcyBmb3VuZCAtIGNyZWF0aW5nIGl0Li5cbiIKK21zZ3N0ciAibW91bnQ6IG5lc3N1biAlcyB0cm92YXRvIC0gY3JlYXppb25lIGluIGNvcnNvLi4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgIm1vdW50OiBpbXBvc3NpYmlsZSBhcHJpcmUgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIm1vdW50OiBsJ2FyZ29tZW50byBkaSAtcCBvIC0tcGFzcy1mZCBkZXZlIGVzc2VyZSB1biBudW1lcm8iCisKKyM6IG1vdW50L21vdW50LmM6MTIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG9wZW4gJXMgZm9yIHNldHRpbmcgc3BlZWQiCittc2dzdHIgIm1vdW50OiBpbXBvc3NpYmlsZSBhcHJpcmUgJXMgcGVyIGltcG9zdGFyZSBsYSB2ZWxvY2l0w6AiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50OiBpbXBvc3NpYmlsZSBpbXBvc3RhcmUgbGEgdmVsb2NpdMOgOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiBzZWNvbmRvIG10YWIsICVzIMOoIGdpw6AgbW9udGF0byBzdSAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjEzODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgInVtb3VudDogJXMgb2NjdXBhdG8gLSByaW1vbnRhdG8gc29sYSBsZXR0dXJhXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQxMworbXNnaWQgIiIKKyJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsIGFuZCBub25lIHdhcyBzcGVjaWZpZWQiCittc2dzdHIgIiIKKyJtb3VudDogaW1wb3NzaWJpbGUgZGV0ZXJtaW5hcmUgaWwgdGlwbyBkaSBmaWxlc3lzdGVtLCBlIG5vbiDDqCBzdGF0byAiCisic3BlY2lmaWNhdG8gbmVzc3VubyIKKworIzogbW91bnQvbW91bnQuYzoxNDE2Cittc2dpZCAibW91bnQ6IHlvdSBtdXN0IHNwZWNpZnkgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAibW91bnQ6IHNpIGRldmUgc3BlY2lmaWNhcmUgaWwgdGlwbyBkaSBmaWxlc3lzdGVtIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudDogbW91bnQgbm9uIHJpdXNjaXRvIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIm1vdW50OiBpbCBtb3VudCBwb2ludCBkaSAlcyBub24gw6ggdW5hIGRpcmVjdG9yeSIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJtb3VudDogYXV0b3JpenphemlvbmUgbmVnYXRhIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjkKK21zZ2lkICJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IgorbXNnc3RyICJtb3VudDogYmlzb2duYSBlc3NlcmUgc3VwZXJ1c2VyIHBlciB1dGlsaXp6YXJlIG1vdW50IgorCisjOiBtb3VudC9tb3VudC5jOjE0MzMgbW91bnQvbW91bnQuYzoxNDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgw6ggb2NjdXBhdG8iCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IHByb2MgZ2nDoCBtb250YXRvIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvciAlcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgZ2nDoCBtb250YXRvIG8gJXMgb2NjdXBhdG8iCisKKyM6IG1vdW50L21vdW50LmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBpbCBtb3VudCBwb2ludCAlcyBub24gZXNpc3RlIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICJtb3VudDogaWwgbW91bnQgcG9pbnQgJXMgw6ggdW4gY29sbGVnYW1lbnRvIHNpbWJvbGljbyBhIG51bGxhIgorCisjOiBtb3VudC9tb3VudC5jOjE0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogaWwgZGV2aWNlIHNwZWNpYWxlICVzIG5vbiBlc2lzdGUiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorIm1vdW50OiBpbCBkZXZpY2Ugc3BlY2lhbGUgJXMgbm9uIGVzaXN0ZVxuIgorIiAgICAgICAodW4gcHJlZmlzc28gZGkgcGVyY29yc28gbm9uIMOoIHVuYSBkaXJlY3RvcnkpXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQ3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgbm90IG1vdW50ZWQgYWxyZWFkeSwgb3IgYmFkIG9wdGlvbiIKK21zZ3N0ciAibW91bnQ6ICVzIG5vbiBhbmNvcmEgbW9udGF0bywgb3BwdXJlIGwnb3B6aW9uZSBub24gw6ggdmFsaWRhIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB3cm9uZyBmcyB0eXBlLCBiYWQgb3B0aW9uLCBiYWQgc3VwZXJibG9jayBvbiAlcyxcbiIKKyIgICAgICAgbWlzc2luZyBjb2RlcGFnZSBvciBoZWxwZXIgcHJvZ3JhbSwgb3Igb3RoZXIgZXJyb3IiCittc2dzdHIgIiIKKyJtb3VudDogdGlwbyBmcyBlcnJhdG8sIG9wemlvbmUgbm9uIHZhbGlkYSwgc3VwZXJibG9jY28gc3UgJXMgZGFubmVnZ2lhdG8sXG4iCisiICAgICAgIGNvZGVwYWdlIG8gcHJvZ3JhbW1hIGF1c2lsaWFyaW8gbWFuY2FudGUsIG8gYWx0cm8gZXJyb3JlIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTAxCittc2dpZCAiIgorIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorIiAgICAgICBpbnN0ZWFkIG9mIHNvbWUgbG9naWNhbCBwYXJ0aXRpb24gaW5zaWRlPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKyIgICAgICAgSW4gYWxjdW5pIGNhc2kgc2kgcG9zc29ubyB0cm92YXJlIGluZm9ybWF6aW9uaSB1dGlsaSBpbiBzeXNsb2cuICIKKyJQcm92YXJlXG4iCisiICAgICAgIGFkIGVzZW1waW8gJ2RtZXNnIHwgdGFpbCdcbiIKKworIzogbW91bnQvbW91bnQuYzoxNTE0Cittc2dpZCAibW91bnQgdGFibGUgZnVsbCIKK21zZ3N0ciAibW91bnQgdGFibGUgcGllbmEiCisKKyM6IG1vdW50L21vdW50LmM6MTUxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IGNhbid0IHJlYWQgc3VwZXJibG9jayIKK21zZ3N0ciAibW91bnQ6ICVzOiBpbXBvc3NpYmlsZSBsZWdnZXJlIGlsIHN1cGVyYmxvY2NvIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlczogZGlzcG9zaXRpdm8gc2Nvbm9zY2l1dG8iCisKKyM6IG1vdW50L21vdW50LmM6MTUyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdW5rbm93biBmaWxlc3lzdGVtIHR5cGUgJyVzJyIKK21zZ3N0ciAibW91bnQ6IHRpcG8gZGkgZmlsZXN5c3RlbSAnJXMnIHNjb25vc2NpdXRvIgorCisjOiBtb3VudC9tb3VudC5jOjE1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHByb2JhYmx5IHlvdSBtZWFudCAlcyIKK21zZ3N0ciAibW91bnQ6IHByb2JhYmlsbWVudGUgc2kgaW50ZW5kZSAlcyIKKworIzogbW91bnQvbW91bnQuYzoxNTQyCittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAnaXNvOTY2MCc/IgorbXNnc3RyICJtb3VudDogZm9yc2Ugc2kgaW50ZW5kZXZhICdpc285NjYwJz8iCisKKyM6IG1vdW50L21vdW50LmM6MTU0NQorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ3ZmYXQnPyIKK21zZ3N0ciAibW91bnQ6IGZvcnNlIHNpIGludGVuZGV2YSAndmZhdCc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyBoYSB1biBudW1lcm8gZGV2aWNlIGVycmF0byBvIGlsIHRpcG8gZGkgZnMgJXMgbm9uIMOoIHN1cHBvcnRhdG8iCisKKyM6IG1vdW50L21vdW50LmM6MTU1NgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlLCBhbmQgc3RhdCBmYWlscz8iCittc2dzdHIgIm1vdW50OiAlcyBub24gw6ggdW4gZGlzcG9zaXRpdm8gYSBibG9jY2hpIGUgc3RhdCBub24gw6ggcml1c2NpdG8/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogdGhlIGtlcm5lbCBkb2VzIG5vdCByZWNvZ25pemUgJXMgYXMgYSBibG9jayBkZXZpY2VcbiIKKyIgICAgICAgKG1heWJlIGBtb2Rwcm9iZSBkcml2ZXInPykiCittc2dzdHIgIiIKKyJtb3VudDogaWwga2VybmVsIG5vbiByaWNvbm9zY2UgJXMgY29tZSB1biBkaXNwb3NpdGl2byBhIGJsb2NjaGlcbiIKKyIgICAgICAgKGZvcnNlIFwiaW5zbW9kIGRyaXZlclwiPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIm1vdW50OiAlcyAgbm9uIMOoIHVuIGRpc3Bvc2l0aXZvIGEgYmxvY2NoaSAoZm9yc2UgcHJvdmFyZSBcIi1vIGxvb3BcIj8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIG5vbiDDqCB1biBkaXNwb3NpdGl2byBhIGJsb2NjaGkiCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgbm9uIMOoIHVuIGRpc3Bvc2l0aXZvIGEgYmxvY2NoaSB2YWxpZG8iCisKKyM6IG1vdW50L21vdW50LmM6MTU3MgorbXNnaWQgImJsb2NrIGRldmljZSAiCittc2dzdHIgImRpc3Bvc2l0aXZvIGEgYmxvY2NoaSIKKworIzogbW91bnQvbW91bnQuYzoxNTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgbW91bnQgJXMlcyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiBpbXBvc3NpYmlsZSBtb250YXJlICVzJXMgaW4gc29sYSBsZXR0dXJhIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkIGJ1dCBleHBsaWNpdCBgLXcnIGZsYWcgZ2l2ZW4iCittc2dzdHIgIiIKKyJtb3VudDogJXMlcyDDqCBwcm90ZXR0byBkYSBzY3JpdHR1cmEsIG1hIGwnb3B6aW9uZSAnLXcnIMOoIHN0YXRhIGluZGljYXRhIgorCisjOiBtb3VudC9tb3VudC5jOjE1ODIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgcmVtb3VudCAlcyVzIHJlYWQtd3JpdGUsIGlzIHdyaXRlLXByb3RlY3RlZCIKK21zZ3N0ciAibW91bnQ6IGltcG9zc2liaWxlIG1vbnRhcmUgJXMlcyBpbiBzb2xhIGxldHR1cmEiCisKKyM6IG1vdW50L21vdW50LmM6MTU5NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQsIG1vdW50aW5nIHJlYWQtb25seSIKK21zZ3N0ciAibW91bnQ6ICVzJXMgw6ggcHJvdGV0dG8gZGEgc2NyaXR0dXJhLCB2aWVuZSBtb250YXRvIGluIHNvbGEgbGV0dHVyYSIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogbmVzc3VuICVzIHRyb3ZhdG8gLSBjcmVhemlvbmUgaW4gY29yc28uLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxNjEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIgorbXNnc3RyICJtb3VudDogJXMgZ2nDoCBtb250YXRvIHN1ICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIiIKKyJtb3VudDogbm9uIMOoIHN0YXRvIGRhdG8gaWwgdGlwbyAtIFNpIHByZXN1bWUgbmZzIHBlcmNow6kgY2kgc29ubyBpIGR1ZSBwdW50aVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgY2lmcyBiZWNhdXNlIG9mIHRoZSAvLyBwcmVmaXhcbiIKK21zZ3N0ciAibW91bnQ6IG5vbiDDqCBzdGF0byBkYXRvIGlsIHRpcG8gLSBTaSBhc3N1bWUgY2lmcyBwZXIgaWwgcHJlZmlzc28gLy9cbiIKKworIzogbW91bnQvbW91bnQuYzoxODExCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6ICVzIGdpw6AgbW9udGF0byBzdSAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiBtb3VudCAtViAgICAgICAgICAgICAgICAgOiBwcmludCB2ZXJzaW9uXG4iCisiICAgICAgIG1vdW50IC1oICAgICAgICAgICAgICAgICA6IHByaW50IHRoaXMgaGVscFxuIgorIiAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgOiBsaXN0IG1vdW50ZWQgZmlsZXN5c3RlbXNcbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDogaWRlbSwgaW5jbHVkaW5nIHZvbHVtZSBsYWJlbHNcbiIKKyJTbyBmYXIgdGhlIGluZm9ybWF0aW9uYWwgcGFydC4gTmV4dCB0aGUgbW91bnRpbmcuXG4iCisiVGhlIGNvbW1hbmQgaXMgYG1vdW50IFstdCBmc3R5cGVdIHNvbWV0aGluZyBzb21ld2hlcmUnLlxuIgorIkRldGFpbHMgZm91bmQgaW4gL2V0Yy9mc3RhYiBtYXkgYmUgb21pdHRlZC5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDogbW91bnQgYWxsIHN0dWZmIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAgICAgICBtb3VudCBkZXZpY2UgICAgICAgICAgICAgOiBtb3VudCBkZXZpY2UgYXQgdGhlIGtub3duIHBsYWNlXG4iCisiICAgICAgIG1vdW50IGRpcmVjdG9yeSAgICAgICAgICA6IG1vdW50IGtub3duIGRldmljZSBoZXJlXG4iCisiICAgICAgIG1vdW50IC10IHR5cGUgZGV2IGRpciAgICA6IG9yZGluYXJ5IG1vdW50IGNvbW1hbmRcbiIKKyJOb3RlIHRoYXQgb25lIGRvZXMgbm90IHJlYWxseSBtb3VudCBhIGRldmljZSwgb25lIG1vdW50c1xuIgorImEgZmlsZXN5c3RlbSAob2YgdGhlIGdpdmVuIHR5cGUpIGZvdW5kIG9uIHRoZSBkZXZpY2UuXG4iCisiT25lIGNhbiBhbHNvIG1vdW50IGFuIGFscmVhZHkgdmlzaWJsZSBkaXJlY3RvcnkgdHJlZSBlbHNld2hlcmU6XG4iCisiICAgICAgIG1vdW50IC0tYmluZCBvbGRkaXIgbmV3ZGlyXG4iCisib3IgbW92ZSBhIHN1YnRyZWU6XG4iCisiICAgICAgIG1vdW50IC0tbW92ZSBvbGRkaXIgbmV3ZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgbW91bnQgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXVuYmluZGFibGUgZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgYWxsIHRoZSBtb3VudHMgaW4gYSBtb3VudCBzdWJ0cmVlXG4iCisiY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ycHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJ1bmJpbmRhYmxlIGRpclxuIgorIkEgZGV2aWNlIGNhbiBiZSBnaXZlbiBieSBuYW1lLCBzYXkgL2Rldi9oZGExIG9yIC9kZXYvY2Ryb20sXG4iCisib3IgYnkgbGFiZWwsIHVzaW5nICAtTCBsYWJlbCAgb3IgYnkgdXVpZCwgdXNpbmcgIC1VIHV1aWQgLlxuIgorIk90aGVyIG9wdGlvbnM6IFstbmZGcnN2d10gWy1vIG9wdGlvbnNdIFstcCBwYXNzd2RmZF0uXG4iCisiRm9yIG1hbnkgbW9yZSBkZXRhaWxzLCBzYXkgIG1hbiA4IG1vdW50IC5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjIyNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQgKGVmZmVjdGl2ZSBVSUQgaXMgJWQpIgorbXNnc3RyICJtb3VudDogw6ggcG9zc2liaWxlIHNvbG8gcGVyIHJvb3QiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIm1vdW50OiDDqCBwb3NzaWJpbGUgc29sbyBwZXIgcm9vdCIKKworIzogbW91bnQvbW91bnQuYzoyMjg4Cittc2dpZCAibm90aGluZyB3YXMgbW91bnRlZCIKK21zZ3N0ciAibm9uIMOoIHN0YXRvIG1vbnRhdG8gbmllbnRlIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDYgbW91bnQvbW91bnQuYzoyMzMyCittc2dpZCAibW91bnQ6IG5vIHN1Y2ggcGFydGl0aW9uIGZvdW5kIgorbXNnc3RyICJtb3VudDogbm9uIHNpIMOoIHRyb3ZhdGEgdGFsZSBwYXJ0aXppb25lIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IGZpbmQgJXMgaW4gJXMgb3IgJXMiCittc2dzdHIgIm1vdW50OiBpbXBvc3NpYmlsZSB0cm92YXJlICVzIGluICVzIG8gJXMiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogd2FybmluZzogbm8gZmluYWwgbmV3bGluZSBhdCB0aGUgZW5kIG9mICVzXG4iCittc2dzdHIgIlttbnRlbnRdOiBhdHRlbnppb25lOiBub24gYyfDqCB1bidhbmRhdGEgYSBjYXBvIGFsbGEgZmluZSBkaSAlc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiW21udGVudF06IHJpZ2EgJWQgaW4gJXMgbm9uIHZhbGlkYSVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxOQorbXNnaWQgIjsgcmVzdCBvZiBmaWxlIGlnbm9yZWQiCittc2dzdHIgIjsgaWdub3JhdG8gcmVzdG8gZGVsIGZpbGUiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAiYnVnIGluIGNoaWFtYXRhIHhzdHJuZHVwIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgIm1lbW9yaWEgaW5zdWZmaWNpZW50ZSIKKworIzogbW91bnQvc3dhcG9uLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSA8c3BlY2lhbD4gcGFyYW1ldGVyOlxuIgorIiB7LUwgbGFiZWwgfCBMQUJFTD1sYWJlbH0gICAgICAgICAgICAgTEFCRUwgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIFVVSUQgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGRldmljZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGZpbGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZmlsZSB0byBiZSB1c2VkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstZV0gWy12XSBbLWZdICAgICAgICAgICAgIGVuYWJsZSBhbGwgc3dhcHMgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICUxJHMgWy1wIHByaW9yaXR5XSBbLXZdIFstZl0gPHNwZWNpYWw+ICBlbmFibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1zICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgc3dhcCB1c2FnZSBzdW1tYXJ5XG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIHN3YXBzXG4iCisiICUxJHMgWy12XSA8c3BlY2lhbD4gICAgICAgICAgICAgICBkaXNhYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MTQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5leHBlY3RlZCBmaWxlIGZvcm1hdCIKK21zZ3N0ciAiJXM6IEVPRiBub24gcHJldmlzdG8gbmVsIGZpbGUgJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWluaXRpYWxpemluZyB0aGUgc3dhcC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICJmb3JrIG5vbiByaXVzY2l0b1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3YgZmFpbGVkIgorbXNnc3RyICJleGVjIGZhbGxpdGFcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjQ3CisjLCBmdXp6eQorbXNnaWQgIndhaXRwaWQgZmFpbGVkIgorbXNnc3RyICJzZXR1aWQoKSBub24gcml1c2NpdG8iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAicmljZXJjYSBub24gcml1c2NpdGEiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgIkFwZXJ0dXJhIGRpICVzIG5vbiByaXVzY2l0YSIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKKyMsIGZ1enp5Cittc2dpZCAic2FtZSIKK21zZ3N0ciAiTm9tZSIKKworIzogbW91bnQvc3dhcG9uLmM6Mzg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgIiVzIG5vbiByaXVzY2l0by5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaW5zZWN1cmUgcGVybWlzc2lvbnMgJTA0bywgJTA0byBzdWdnZXN0ZWQuIgorbXNnc3RyICIlczogYXR0ZW56aW9uZTogJXMgaGEgcGVybWVzc2kgJTA0byBub24gc2ljdXJpLCBzaSBzdWdnZXJpc2NlICUwNG9cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgLSBpdCBhcHBlYXJzIHRvIGhhdmUgaG9sZXMuIgorbXNnc3RyICIlczogZmlsZSAlcyBpZ25vcmF0byAtIHNlbWJyYSBhdmVyZSBkZWkgYnVjaGkuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAicmljZXJjYSBub24gcml1c2NpdGEiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDc4IG1vdW50L3N3YXBvbi5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBvbiAlc1xuIgorbXNnc3RyICIlcyBzdSAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb24gZmFpbGVkIgorbXNnc3RyICIlcyBub24gcml1c2NpdG8uXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzOiBpbXBvc3NpYmlsZSB0cm92YXJlIGlsIGRpc3Bvc2l0aXZvIHBlciAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDAKKyMsIGZ1enp5Cittc2dpZCAiTm90IHN1cGVydXNlci4iCittc2dzdHIgIk5vbiBzdXBlcnV0ZW50ZS5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgIiVzIG5vbiByaXVzY2l0by5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgdW5zdXBwb3J0ZWQgcHJvZ3JhbSBuYW1lIChtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAtZlxuIgorbXNnc3RyICJ1bW91bnQ6IGNvbXBpbGF0byBzZW56YSBzdXBwb3J0byBwZXIgLWZcbiIKKworIzogbW91bnQvdW1vdW50LmM6MTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgInVtb3VudDogaW1wb3NzaWJpbGUgaW1wb3N0YXJlIGwnaWQgZGkgZ3J1cHBvOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAidW1vdW50OiBpbXBvc3NpYmlsZSBpbXBvc3RhcmUgbCdpZCB1dGVudGU6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBpbXBvc3NpYmlsZSBmYXJlIGlsIGZvcms6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogaW52YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgInVtb3VudDogJXM6IGRpc3Bvc2l0aXZvIGRpIGJsb2NjaGkgbm9uIHZhbGlkbyIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBub24gbW9udGF0byIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgInVtb3VudDogJXM6IGltcG9zc2liaWxlIHNjcml2ZXJlIHN1cGVyYmxvY2siCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgZm91bmQiCittc2dzdHIgInVtb3VudDogJXM6IG5vbiB0cm92YXRvIgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBiaXNvZ25hIGVzc2VyZSBzdXBlcnVzZXIgcGVyIGVzZWd1aXJlIHVtb3VudCIKKworIzogbW91bnQvdW1vdW50LmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGJsb2NrIGRldmljZXMgbm90IHBlcm1pdHRlZCBvbiBmcyIKK21zZ3N0ciAidW1vdW50OiAlczogaSBkaXNwb3NpdGl2aSBkaSBibG9jY2hpIG5vbiBzb25vIHBlcm1lc3NpIHN1IGZzIgorCisjOiBtb3VudC91bW91bnQuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogJXMiCittc2dzdHIgInVtb3VudDogJXM6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdW1vdW50MiwgdHJ5aW5nIHVtb3VudC4uLlxuIgorbXNnc3RyICJuZXNzdW4gdW1vdW50MiwgdGVudGF0aXZvIGRpIHVtb3VudCBpbiBjb3Jzby4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBidXN5IC0gcmVtb3VudGVkIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIG9jY3VwYXRvIC0gcmltb250YXRvIHNvbGEgbGV0dHVyYVxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb3VsZCBub3QgcmVtb3VudCAlcyByZWFkLW9ubHlcbiIKK21zZ3N0ciAidW1vdW50OiBpbXBvc3NpYmlsZSByaW1vbnRhcmUgJXMgZGkgc29sYSBsZXR0dXJhXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1bW91bnRlZFxuIgorbXNnc3RyICJlc2VndWl0byB1bW91bnQgZGkgJXNcbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgInVtb3VudDogaW1wb3NzaWJpbGUgdHJvdmFyZSBsJ2VsZW5jbyBkZWkgZmlsZXN5c3RlbSBkYSBzbW9udGFyZSIKKworIzogbW91bnQvdW1vdW50LmM6Mzk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisiVXNvOiB1bW91bnQgWy1oVl1cbiIKKyIgICAgIHVtb3VudCAtYSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB0aXBvZnNdIFstTyBvcHppb25pXVxuIgorIiAgICAgdW1vdW50IFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbGUgfCBub2RvLi4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ2OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJJbCBzZXR0b3JlICVkIMOoIGdpw6AgYWxsb2NhdG9cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJJbCBzZXR0b3JlICVkIMOoIGdpw6AgYWxsb2NhdG9cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDg3Cittc2dpZCAiQ2Fubm90IHVtb3VudCBcIlwiXG4iCittc2dzdHIgIkltcG9zc2liaWxlIHNtb250YXJlIFwiXCJcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byB1bW91bnQgJXNcbiIKK21zZ3N0ciAiVGVudGF0aXZvIGRpIGVzZWd1aXJlIHVtb3VudCBkaSAlcyBpbiBjb3Jzb1xuIgorCisjOiBtb3VudC91bW91bnQuYzo1MDYKK21zZ2lkICJ1bW91bnQ6IGNvbmZ1c2VkIHdoZW4gYW5hbHl6aW5nIG10YWIiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHVtb3VudCAlcyAtLSAlcyBpcyBtb3VudGVkIG92ZXIgaXQgb24gdGhlIHNhbWUgcG9pbnQuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxOAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCAlcyBpbiBtdGFiXG4iCittc2dzdHIgIkltcG9zc2liaWxlIHRyb3ZhcmUgJXMgaW4gbXRhYlxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6ICVzIG5vbiDDqCBtb250YXRvIChzZWNvbmRvIG10YWIpIgorCisjOiBtb3VudC91bW91bnQuYzo1NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBpdCBzZWVtcyAlcyBpcyBtb3VudGVkIG11bHRpcGxlIHRpbWVzIgorbXNnc3RyICJ1bW91bnQ6IHNlbWJyYSBjaGUgJXMgc2lhIHN0YXRvIG1vbnRhdG8gZGl2ZXJzZSB2b2x0ZSIKKworIzogbW91bnQvdW1vdW50LmM6NTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAoYW5kIHlvdSBhcmUgbm90IHJvb3QpIgorbXNnc3RyICJ1bW91bnQ6ICVzIG5vbiBzaSB0cm92YSBpbiBmc3RhYiAoZSBub24gc2kgw6ggcm9vdCkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIG1vdW50IGRpc2FncmVlcyB3aXRoIHRoZSBmc3RhYiIKK21zZ3N0ciAidW1vdW50OiAlcyBtb3VudCBub24gY29lcmVudGUgY29uIGZzdGFiIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBvbmx5ICVzIGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCittc2dzdHIgInVtb3VudDogc29sbyAlcyBwdcOyIHNtb250YXJlICVzIGRhICVzIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAiIHVtb3VudDogc29sbyByb290IHB1w7IgZmFybG8iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MuXG4iCisiXG4iCisiU2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIkdldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiXG4iCisiU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX1JSIChkZWZhdWx0KVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgb3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHNob3cgbWluIGFuZCBtYXggdmFsaWQgcHJpb3JpdGllc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKyIgIC1WIHwgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJTY3JpdHR1cmEgZGVsbGEgcGFydGl6aW9uZSBzdSAlcyBub24gcml1c2NpdGFcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwb2xpY3k6ICIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVua25vd25cbiIKK21zZ3N0ciAic2Nvbm9zY2l1dG8iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIGF0dHJpYnV0ZXMiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTE1CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcHJpb3JpdHk6ICVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG1pbi9tYXggcHJpb3JpdHlcdDogJWQvJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIk5GUyBhdHRyYXZlcnNvIFRDUCBub24gc3VwcG9ydGF0by5cbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwaWQiCittc2dzdHIgIiVzOiBpbXBvc3NpYmlsZSBhcHJpcmU6ICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIyNQorIywgZnV6enkKK21zZ2lkICJjdXJyZW50IgorbXNnc3RyICJuY291bnQiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcHJpb3JpdHkiCittc2dzdHIgIlNjcml0dHVyYSBkZWxsYSBwYXJ0aXppb25lIHN1ICVzIG5vbiByaXVzY2l0YVxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJTY3JpdHR1cmEgZGVsbGEgcGFydGl6aW9uZSBzdSAlcyBub24gcml1c2NpdGFcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCisjLCBmdXp6eQorbXNnaWQgIm5ldyIKK21zZ3N0ciAiTnVvdmEiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXMiCittc2dzdHIgImlvY3RsKCkgbm9uIMOoIHJpdXNjaXRvIGEgbGVnZ2VyZSBsJ29yYXJpbyBkYSAlcyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo1NworIywgZnV6enkKK21zZ2lkICJpb3ByaW9fZ2V0IGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBub24gcml1c2NpdGFcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorIywgZnV6enkKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBub24gcml1c2NpdGFcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisiXG4iCisiVXNhZ2U6XG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSA8Y29tbWFuZD4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBzY2hlZHVsaW5nIGNsYXNzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIDA6IG5vbmUsIDE6IHJlYWx0aW1lLCAyOiBiZXN0LWVmZm9ydCwgMzogaWRsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxMTAgc2NoZWR1dGlscy9pb25pY2UuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBwYXJzZSBudW1iZXIgJyVzJyIKK21zZ3N0ciAiaW1wb3NzaWJpbGUgYXByaXJlICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgImV4ZWMgZmFsbGl0YVxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICJCaXNvZ25hIGVzc2VyZSByb290IHBlciBpbXBvc3RhcmUgbW9kYWxpdMOgIEN0cmwtQWx0LURlbC5cbiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzo0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKK21zZ3N0ciAiVXNvOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIklsIGZpbGUgJXMsIHBlciBpbCB2YWxvcmUgbGltaXRlICVsdSwgaWwgbnVtZXJvIG1hc3NpbW8gZGkgY2FyYXR0ZXJpIGluIGZpZm8gIgorImVyYSAlZCxcbiIKKyJlIGxhIHZlbG9jaXTDoCBtYXNzaW1hIGRpIHRyYXNmZXJpbWVudG8gZGkgY2FyYXR0ZXJpL3NlY29uZG8gZXJhIGRpICVmXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1IGFuZCB0aW1yb3V0IHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzICIKKyJpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKyJJbCBmaWxlICVzLCBwZXIgaWwgdmFsb3JlIGxpbWl0ZSAlbHUgZSBpbCB2YWxvcmUgZGkgdGltZW91dCAlbHUsIGlsIG51bWVybyAiCisibWFzc2ltbyBkaSBjYXJhdHRlcmkgaW4gZmlmbyBlcmEgJWQsXG4iCisiZSBsYSB2ZWxvY2l0w6AgbWFzc2ltYSBkaSB0cmFzZmVyaW1lbnRvIGRpIGNhcmF0dGVyaS9zZWNvbmRvIGVyYSBkaSAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZhbG9yZSBpbnRlcnZhbGxvIG5vbiB2YWxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZhbG9yZSBpbXBvc3RhdG8gbm9uIHZhbGlkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZhbG9yZSBwcmVkZWZpbml0byBub24gdmFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIk9yYSBpbXBvc3RhdGEgbm9uIHZhbGlkYTogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiT3JhIHByZWRlZmluaXRhIG5vbiB2YWxpZGE6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXEgWy1pIGludGVydmFsXV0gKFstcyB2YWx1ZV18Wy1TIHZhbHVlXSkgKFstdCB2YWx1ZV18Wy1UIHZhbHVlXSkgIgorIlstZ3wtR10gZmlsZSBbZmlsZS4uLl1cbiIKK21zZ3N0ciAiIgorIlVzbzogJXMgWy1xIFstaSBpbnRlcnZhbGxvXV0gKFstcyB2YWxvcmVdfFstUyB2YWxvcmVdKSAoWy10IHZhbG9yZV18Wy1UICIKKyJ2YWxvcmVdXG4iCisiICAgICAgICBbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTAgc3lzLXV0aWxzL2N5dHVuZS5jOjI2OSBzeXMtdXRpbHMvY3l0dW5lLmM6Mjg5CisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIkltcG9zc2liaWxlIGFwcmlyZSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICJJbXBvc3NpYmlsZSBpbXBvc3RhcmUgJXMgYWxsYSBzb2dsaWEgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRpbWUgdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICJJbXBvc3NpYmlsZSBpbXBvc3RhcmUgJXMgYWwgbGltaXRlIG9yYSAlZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIkltcG9zc2liaWxlIG90dGVuZXJlIGlsIGxpbWl0ZSBwZXIgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgb3R0ZW5lcmUgaWwgdGltZW91dCBwZXIgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIHNvZ2xpYSBjb3JyZW50ZSBlICVsZCB0aW1lb3V0IGNvcnJlbnRlXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIHNvZ2xpYSBwcmVkZWZpbml0YSBlICVsZCB0aW1lb3V0IHByZWRlZmluaXRvXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMjcKK21zZ2lkICJDYW4ndCBzZXQgc2lnbmFsIGhhbmRsZXIiCittc2dzdHIgIkltcG9zc2liaWxlIGltcG9zdGFyZSB1biBnZXN0b3JlIGRlbCBzZWduYWxlIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzMxIHN5cy11dGlscy9jeXR1bmUuYzozNjYKK21zZ2lkICJnZXR0aW1lb2ZkYXkgZmFpbGVkIgorbXNnc3RyICJnZXR0aW1lb2ZkYXkgbm9uIHJpdXNjaXRvIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzQ0IHN5cy11dGlscy9jeXR1bmUuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iCittc2dzdHIgIkltcG9zc2liaWxlIGVzZWd1aXJlIENZR0VUTU9OIHN1ICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdS8lbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjYXIvc2VjKVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjYXIvc2VjKVxuIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJVc286ICVzIFstY10gWy1uIGxpdmVsbG9dIFstcyBidWZzaXplXVxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxmaWxlbmFtZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICJVc286ICVzIFtvcHppb25pXSBkaXNwb3NpdGl2by4uLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1rZWVwLXNpemUgICAgIGRvbid0IG1vZGlmeSB0aGUgbGVuZ3RoIG9mIHRoZSBmaWxlXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorIiAtbCwgLS1sZW5ndGggPG51bT4gIGxlbmd0aCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgZmFsbG9jYXRlKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisiUGVyIG1hZ2dpb3JpIGluZm9ybWF6aW9uaSB2ZWRlcmUgc2V0YXJjaCg4KS5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0NworIywgZnV6enkKK21zZ2lkICJubyBsZW5ndGggYXJndW1lbnQgc3BlY2lmaWVkIgorbXNnc3RyICJBcmdvbWVudGkgaW5zdWZmaWNpZW50aSIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0OQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGxlbmd0aCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlZhbG9yZSBpbXBvc3RhdG8gbm9uIHZhbGlkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9mZnNldCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlZhbG9yZSBpbXBvc3RhdG8gbm9uIHZhbGlkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MworIywgZnV6enkKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICJPcHppb25lIC0tZGF0ZSBub24gc3BlY2lmaWNhdGEuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBub24gcml1c2NpdGFcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlMSRzIFstc3h1bl1bLXcgI10gZmQjXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBmaWxlIFstY10gY29tbWFuZC4uLlxuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZGlyZWN0b3J5IFstY10gY29tbWFuZC4uLlxuIgorIiAgLXMgIC0tc2hhcmVkICAgICBHZXQgYSBzaGFyZWQgbG9ja1xuIgorIiAgLXggIC0tZXhjbHVzaXZlICBHZXQgYW4gZXhjbHVzaXZlIGxvY2tcbiIKKyIgIC11ICAtLXVubG9jayAgICAgUmVtb3ZlIGEgbG9ja1xuIgorIiAgLW4gIC0tbm9uYmxvY2sgICBGYWlsIHJhdGhlciB0aGFuIHdhaXRcbiIKKyIgIC13ICAtLXRpbWVvdXQgICAgV2FpdCBmb3IgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lXG4iCisiICAtbyAgLS1jbG9zZSAgICAgIENsb3NlIGZpbGUgZGVzY3JpcHRvciBiZWZvcmUgcnVubmluZyBjb21tYW5kXG4iCisiICAtYyAgLS1jb21tYW5kICAgIFJ1biBhIHNpbmdsZSBjb21tYW5kIHN0cmluZyB0aHJvdWdoIHRoZSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBEaXNwbGF5IHRoaXMgdGV4dFxuIgorIiAgLVYgIC0tdmVyc2lvbiAgICBEaXNwbGF5IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoxOTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyByZXF1aXJlcyBleGFjdGx5IG9uZSBjb21tYW5kIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIHJpY2hpZWRlIHVuIGFyZ29tZW50b1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBpbXBvc3NpYmlsZSBhcHJpcmUgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBudW1iZXI6ICVzXG4iCittc2dzdHIgIiVzOiB2YWxvcmUgbm9uIHZhbGlkb1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlcXVpcmVzIGZpbGUgZGVzY3JpcHRvciwgZmlsZSBvciBkaXJlY3RvcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3JrIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiZm9yayBub24gcml1c2NpdG9cbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdXG4iCisiXG4iCittc2dzdHIgIlVzbzogJXMgW29wemlvbmldIGRpc3Bvc2l0aXZvLi4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1NIDxzaXplPiAgICAgY3JlYXRlIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBvZiBzaXplIDxzaXplPlxuIgorIiAgLVMgPG5zZW1zPiAgICBjcmVhdGUgc2VtYXBob3JlIGFycmF5IHdpdGggPG5zZW1zPiBlbGVtZW50c1xuIgorIiAgLVEgICAgICAgICAgICBjcmVhdGUgbWVzc2FnZSBxdWV1ZVxuIgorIiAgLXAgPG1vZGU+ICAgICBwZXJtaXNzaW9uIGZvciB0aGUgcmVzb3VyY2UgKGRlZmF1bHQgaXMgMDY0NClcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlBlciBtYWdnaW9yaSBpbmZvcm1hemlvbmkgdmVkZXJlIHNldGFyY2goOCkuXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0MgorbXNnaWQgImNyZWF0ZSBzaGFyZSBtZW1vcnkgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2hhcmVkIG1lbW9yeSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlZ21lbnRvIG1lbW9yaWEgY29uZGl2aXNhIHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MAorbXNnaWQgImNyZWF0ZSBtZXNzYWdlIHF1ZXVlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJDb2RhIGRpIG1lc3NhZ2dpIG1zcWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1OAorIywgZnV6enkKK21zZ2lkICJjcmVhdGUgc2VtYXBob3JlIGZhaWxlZCIKK21zZ3N0ciAic2VtYWZvcmkgYWxsb2NhdGkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIm1hdHJpY2Ugc2VtYWZvcmkgc2VtaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAiaWQgbm9uIHZhbGlkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlbW92ZSBpZCAlcyAoJXMpXG4iCittc2dzdHIgImltcG9zc2liaWxlIHJpbXVvdmVyZSBsJ2lkICVzICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgImRlcHJlY2F0ZWQgdXNhZ2U6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorbXNnc3RyICJ1c28gZGVwcmVjYXRvOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gcmVzb3VyY2UgdHlwZTogJXNcbiIKK21zZ3N0ciAidGlwbyBkaSByaXNvcnNhIHNjb25vc2NpdXRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzb3VyY2UocykgZGVsZXRlZFxuIgorbXNnc3RyICJyaXNvcnNhIGVsaW1pbmF0YVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCittc2dzdHIgIiIKKyJVc286ICVzIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiIKKyIgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiJXM6IG9wemlvbmUgaWxsZWdhbGUgLS0gJWNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGtleSAoJXMpXG4iCittc2dzdHIgIiVzOiBjaGlhdmUgaWxsZWdhbGUgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDYgc3lzLXV0aWxzL2lwY3JtLmM6MjM4Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGtleSIKK21zZ3N0ciAiYXV0b3JpenphemlvbmUgbmVnYXRhIHBlciBsYSBjaGlhdmUiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwOSBzeXMtdXRpbHMvaXBjcm0uYzoyNDgKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQga2V5IgorbXNnc3RyICJjaGlhdmUgZ2nDuSByaW1vc3NhIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTIgc3lzLXV0aWxzL2lwY3JtLmM6MjQzCittc2dpZCAiaW52YWxpZCBrZXkiCittc2dzdHIgImNoaWF2ZSBub24gdmFsaWRhIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgImVycm9yZSBzY29ub3NjaXV0byBuZWxsYSBjaGlhdmUiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIzOQorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBpZCIKK21zZ3N0ciAiYXV0b3JpenphemlvbmUgbmVnYXRhIHBlciBpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ0Cittc2dpZCAiaW52YWxpZCBpZCIKK21zZ3N0ciAiaWQgbm9uIHZhbGlkbyIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ5Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGlkIgorbXNnc3RyICJpZCBnacOgIHJpbW9zc28iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NAorbXNnaWQgInVua25vd24gZXJyb3IgaW4gaWQiCittc2dzdHIgImVycm9yZSBzY29ub3NjaXV0aSBpbiBpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiVzOiAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIKK21zZ3N0ciAiJXM6IGFyZ29tZW50byBzY29ub3NjaXV0bzogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2UgOiAlcyAtYXNtcSAtdGNsdXAgXG4iCittc2dzdHIgInVzbyA6ICVzIC1hc21xIC10Y2x1cCBcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCittc2dzdHIgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIC1oIGZvciBoZWxwLlxuIgorbXNnc3RyICJcdCVzIC1oIHBlciByaWNoaWFtYXJlIGxhIGd1aWRhLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHlvdSBoYXZlIHJlYWQgYWNjZXNzLlxuIgorbXNnc3RyICIiCisiJXMgZm9ybmlzY2UgaW5mb3JtYXppb25pIHN1bGxlIGZ1bnppb25hbGl0w6AgaXBjIGEgY3VpIGF2ZXRlIGFjY2Vzc28gaW4gIgorImxldHR1cmEuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJSZXNvdXJjZSBTcGVjaWZpY2F0aW9uOlxuIgorIlx0LW0gOiBzaGFyZWRfbWVtXG4iCisiXHQtcSA6IG1lc3NhZ2VzXG4iCittc2dzdHIgIiIKKyJTcGVjaWZpY2Egcmlzb3JzYTpcbiIKKyJcdC1tIDogc2hhcmVkX21lbSAobWVtX2NvbmRpdilcbiIKKyJcdC1xIDogbWVzc2FnZ2lcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LXMgOiBzZW1hcGhvcmVzXG4iCisiXHQtYSA6IGFsbCAoZGVmYXVsdClcbiIKK21zZ3N0ciAiIgorIlx0LXMgOiBzZW1hZm9yaVxuIgorIlx0LWEgOiB0dXR0aSAocHJlZGVmaW5pdG8pXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdXRwdXQgRm9ybWF0OlxuIgorIlx0LXQgOiB0aW1lXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhdG9yXG4iCittc2dzdHIgIiIKKyJGb3JtYXRvIG91dHB1dDpcbiIKKyJcdC10IDogdGVtcG9cbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JlXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1sIDogbGltaXRzXG4iCisiXHQtdSA6IHN1bW1hcnlcbiIKK21zZ3N0ciAiIgorIlx0LWwgOiBsaW1pdGlcbiIKKyJcdC11IDogc29tbWFyaW9cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICItaSBpZCBbLXMgLXEgLW1dIDogZGV0dGFnbGkgc3VsbGEgcmlzb3JzYSBpZGVudGlmaWNhdGEgZGEgaWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iCittc2dzdHIgImlsIGtlcm5lbCBub24gw6ggY29uZmlndXJhdG8gcGVyIGxhIGNvbmRpdmlzaW9uZSBkZWxsYSBtZW1vcmlhXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTGltaXRpIGRlbGxhIG1lbW9yaWEgY29uZGl2aXNhIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAibnVtZXJvIG1hc3NpbW8gZGkgc2VnbWVudGkgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlZyBzaXplIChrYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgImRpbWVuc2lvbmUgbWF4IHNlZyAoa2J5dGUpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAidmFsb3JlIG1hc3NpbW8gdG90YWxlIGRpIG1lbW9yaWEgY29uZGl2aXNhIChrYnl0ZSkgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWluIHNlZyBzaXplIChieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAiZGltZW5zaW9uZSBtaW4gc2VnIChieXRlKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIHN0YXRvIGRlbGxhIG1lbW9yaWEgY29uZGl2aXNhIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICJzZWdtZW50aSBhbGxvY2F0aSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBhbGxvY2F0ZWQgJWxkXG4iCittc2dzdHIgInBhZ2luZSBhbGxvY2F0ZSAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgcmVzaWRlbnQgICVsZFxuIgorbXNnc3RyICJwYWdpbmUgcmVzaWRlbnRpICAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgc3dhcHBlZCAgICVsZFxuIgorbXNnc3RyICJwYWdpbmUgc2NhbWJpYXRlIChzd2FwcGluZykgICAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dhcCBwZXJmb3JtYW5jZTogJWxkIGF0dGVtcHRzXHQgJWxkIHN1Y2Nlc3Nlc1xuIgorbXNnc3RyICJQcmVzdGF6aW9uZSBzd2FwOiAlbGQgdGVudGF0aXZpXHQgJWxkIHJpdXNjaXRpXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZWdtZW50byBNZW0uIENvbmRpdi4gQ3JlYXRvcmkvUHJvcHIuLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAic2htaWQiCittc2dzdHIgInNobWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAicGVybXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAiY3VpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjZ2lkIgorbXNnc3RyICJjZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAidWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImdpZCIKK21zZ3N0ciAiZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTWVtLiBDb25kaXYuICBDb25uLi9TY29ubi4vQ2FtYmlvICBWb2x0ZSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgInByb3ByaWV0YXJpbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAiY29ubmVzc28iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgImRpc2Nvbm5lc3NvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorbXNnaWQgImNoYW5nZWQiCittc2dzdHIgImNhbWJpYXRvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBDcmVhdG9yL0xhc3Qtb3AgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE1lbS4gIENvbmRpdi4gQ3JlYXRvcmUvTGFzdC1vcC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiY3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJscGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VnbS4gTWVtb3JpYSBDb25kaXZpc2EgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJrZXkiCittc2dzdHIgImNoaWF2ZSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJieXRlcyIKK21zZ3N0ciAiYnl0ZSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJuYXR0Y2giCittc2dzdHIgIm5hdHRjaCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgInN0YXRvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMyOSBzeXMtdXRpbHMvaXBjcy5jOjMzMSBzeXMtdXRpbHMvaXBjcy5jOjMzMworIzogc3lzLXV0aWxzL2lwY3MuYzo0NDQgc3lzLXV0aWxzL2lwY3MuYzo0NDYgc3lzLXV0aWxzL2lwY3MuYzo1NDUKKyM6IHN5cy11dGlscy9pcGNzLmM6NTQ3IHN5cy11dGlscy9pcGNzLmM6NTQ5IHN5cy11dGlscy9pcGNzLmM6NjAwCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMiBzeXMtdXRpbHMvaXBjcy5jOjYzMCBzeXMtdXRpbHMvaXBjcy5jOjYzMgorIzogc3lzLXV0aWxzL2lwY3MuYzo2MzQgc3lzLXV0aWxzL2lwY3MuYzo2NTcKK21zZ2lkICJOb3Qgc2V0IgorbXNnc3RyICJOb24gaW1wb3N0YXRvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MQorbXNnaWQgImRlc3QiCittc2dzdHIgImRlc3QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICJibG9jY2F0byIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgImtlcm5lbCBub24gY29uZmlndXJhdG8gcGVyIGkgc2VtYWZvcmlcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIExpbWl0aSBkaSBzZW1hZm9ybyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgIm51bWVybyBtYXggZGkgbWF0cmljaSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHBlciBhcnJheSA9ICVkXG4iCittc2dzdHIgIm51bWVybyBtYXggZGkgc2VtYWZvcmkgcGVyIG1hdHJpY2UgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm51bWVybyBtYXggZGkgc2VtYWZvcmkgc3UgdHV0dG8gaWwgc2lzdGVtYSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBvcHMgcGVyIHNlbW9wIGNhbGwgPSAlZFxuIgorbXNnc3RyICJudW1lcm8gbWF4IG9wei4gcGVyIGNoaWFtYXRhIHNlbW9wID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VtYXBob3JlIG1heCB2YWx1ZSA9ICVkXG4iCittc2dzdHIgInZhbG9yZSBtYXggZGVsIHNlbWFmb3JvID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFN0YXRvIGRlbCBzZW1hZm9ybyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGFycmF5cyA9ICVkXG4iCittc2dzdHIgIm1hdHJpY2kgdXRpbGl6emF0ZSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBzZW1hcGhvcmVzID0gJWRcbiIKK21zZ3N0ciAic2VtYWZvcmkgYWxsb2NhdGkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE1hdHJpY2UgZGkgU2VtYWYuIENyZWF0b3JpL1Byb3ByLiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjQxNCBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgInNlbWlkIgorbXNnc3RyICJzZW1pZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgT3BlcmF0aW9uL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTWVtLiBDb25kaXZpc2EgT3BlcmF6aW9uZS9Nb2RpZi4gVm9sdGUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICJsYXN0LW9wIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3QtY2hhbmdlZCIKK21zZ3N0ciAidWx0aW1hLW1vZGlmaWNhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTWF0cmljaSBzZW1hZm9yaSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgIm5zZW1zIgorbXNnc3RyICJuc2VtcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBtZXNzYWdlIHF1ZXVlc1xuIgorbXNnc3RyICJrZXJuZWwgbm9uIGNvbmZpZ3VyYXRvIHBlciBsZSBjb2RlIGRpIG1lc3NhZ2dpXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBNZXNzYWdnaTogbGltaXRpIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICJudW1lcm8gbWF4IGRpIGNvZGUgc3UgdHV0dG8gaWwgc2lzdGVtYSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzaXplIG9mIG1lc3NhZ2UgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgImRpbWVuc2lvbmUgbWF4IGRlbCBtZXNzYWdnaW8gKGJ5dGUpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVmYXVsdCBtYXggc2l6ZSBvZiBxdWV1ZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAiZGltZW5zaW9uZSBtYXNzaW1hIHByZWRlZmluaXRhIGRlbGxhIGNvZGEgKGJ5dGUpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE1lc3NhZ2dpOiBzdGF0byAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OAorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgcXVldWVzID0gJWRcbiIKK21zZ3N0ciAiY29kZSBhbGxvY2F0ZSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk5CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgaGVhZGVycyA9ICVkXG4iCittc2dzdHIgImludGVzdGF6aW9uaSB1dGlsaXp6YXRlID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBzcGFjZSA9ICVkIGJ5dGVzXG4iCittc2dzdHIgInNwYXppbyB1dGlsaXp6YXRvID0gJWQgYnl0ZVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXM6IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gQ29kZSBtZXNzYWdnaTogQ3JlYXRvcmkvUHJvcHJpZXRhcmkgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgIm1zcWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgU2VuZC9SZWN2L0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gQ29kZSBtZXNzYWdnaSAgSW52Li9SaWMuL01vZGlmLiBWb2x0ZS0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAic2VuZCIKK21zZ3N0ciAiaW52aW8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAicmVjdiIKK21zZ3N0ciAicmljZXouIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgImNoYW5nZSIKK21zZ3N0ciAibW9kaWZpY2EiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBQSURzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBDb2RlIE1lc3NhZ2dpICBQSUQgIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgImxzcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxycGlkIgorbXNnc3RyICJscnBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBDb2RlIG1lc3NhZ2dpICAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgImJ5dGUgdXRpbGl6emF0aSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAibWVzc2FnZ2kiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTg5CisjLCBmdXp6eQorbXNnaWQgInNobWN0bCBmYWlsZWQiCittc2dzdHIgImZzeW5jIG5vbiByaXVzY2l0byAiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTaGFyZWQgbWVtb3J5IFNlZ21lbnQgc2htaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlZ21lbnRvIG1lbW9yaWEgY29uZGl2aXNhIHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk2CisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorbXNnc3RyICJieXRlPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJhdHRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJhdHRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJkZXRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMyBzeXMtdXRpbHMvaXBjcy5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNQorIywgZnV6enkKK21zZ2lkICJtc2djdGwgZmFpbGVkIgorbXNnc3RyICJmc3luYyBub24gcml1c2NpdG8gIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiQ29kYSBkaSBtZXNzYWdnaSBtc3FpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxOAorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKK21zZ3N0ciAiY2J5dGU9JWxkXHRxYnl0ZT0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VuZF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY0OCBzeXMtdXRpbHMvaXBjcy5jOjY3MAorIywgZnV6enkKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICJyaWNlcmNhIG5vbiByaXVzY2l0YSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisibWF0cmljZSBzZW1hZm9yaSBzZW1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJtb2RhbGl0w6A9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgIm5zZW1zID0gJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm90aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAib3RpbWUgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICJjdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgImN0aW1lID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJzZW1udW0iCittc2dzdHIgInNlbW51bSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAidmFsb3JlIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgIm5jb3VudCIKK21zZ3N0ciAibmNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInpjb3VudCIKK21zZ3N0ciAiemNvdW50IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInBpZCIKK21zZ3N0ciAicGlkIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFsgLWRoVjc4bmVvMTIgXSBbIC1zIDxzcGVlZD4gXSA8bGRpc2M+IDxkZXZpY2U+XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6OTEKK21zZ2lkICIiCisiXG4iCisiS25vd24gPGxkaXNjPiBuYW1lczpcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgc3BlZWQ6ICVzIgorbXNnc3RyICJpZCBub24gdmFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZGEgJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvcHRpb24iCittc2dzdHIgImlkIG5vbiB2YWxpZG8iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBsaW5lIGRpc2NpcGxpbmU6ICVzIgorbXNnc3RyICJpZCBub24gdmFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIHNlcmlhbCBsaW5lIgorbXNnc3RyICIlcyBub24gw6ggdW4gZGlzcG9zaXRpdm8gc3BlY2lhbGUgYSBibG9jY2hpIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgImltcG9zc2liaWxlIG90dGVuZXJlIGxhIGRpbWVuc2lvbmUgZGkgJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHNldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgIlJpY2VyY2Egc3VsbCd1bml0w6AgZGlzY28gaW1wb3NzaWJpbGUiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworIywgZnV6enkKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICJpbXBvc3NpYmlsZSBhcHJpcmUgJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0CisjLCBmdXp6eQorbXNnaWQgIm5vbmUiCittc2dzdHIgIk5lc3N1bm8iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1Cittc2dpZCAicGFyYSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NgorbXNnaWQgImZ1bGwiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTM3IHN5cy11dGlscy9sc2NwdS5jOjE2MCBzeXMtdXRpbHMvbHNjcHUuYzo0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlcyIKK21zZ3N0ciAiZm9yazogJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcGFyc2U6ICVzIgorbXNnc3RyICJlcnJvcmUgZHVyYW50ZSBsYSBsZXR0dXJhIGRpICVzXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE4NAorIywgZnV6enkKK21zZ2lkICJlcnJvcjogc3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiQXBlcnR1cmEgZGkgJXMgbm9uIHJpdXNjaXRhIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoyNjcKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHVuYW1lIGZhaWxlZCIKK21zZ3N0ciAiIgorIlxuIgorIkVycm9yZSBkdXJhbnRlIGxhIGNoaXVzdXJhIGRlbCBmaWxlXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorIywgZnV6enkKK21zZ2lkICJlcnJvcjogbWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jIG5vbiByaXVzY2l0YSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTIxCittc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzYWJsZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNgorbXNnaWQgIkNvcmUocykgcGVyIHNvY2tldDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMxCittc2dpZCAiTlVNQSBub2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzMKK21zZ2lkICJWZW5kb3IgSUQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzkKK21zZ2lkICJTdGVwcGluZzoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQxCittc2dpZCAiQ1BVIE1IejoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorIywgZnV6enkKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIlZlY2NoaWEgc2l0dWF6aW9uZTpcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1MAorbXNnaWQgIlZpcnR1YWxpemF0aW9uIHR5cGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjYWNoZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbl1cbiIKK21zZ3N0ciAiVXNvOiAlcyBbb3B6aW9uaV0gZGlzcG9zaXRpdm8uLi5cbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjcxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgImVycm9yZSBkdXJhbnRlIGlsIGNhbWJpYW1lbnRvIGRlbGxhIG1vZGFsaXTDoCBkaSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIlVzbzogcmRldiBbIC1ydiBdIFsgLW8gT0ZGU0VUIF0gWyBJTU1BR0lORSBbIFZBTE9SRSBbIE9GRlNFVCBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvIHJkZXYgL2xpbnV4LCBlQ2MuKSB2aXN1YWxpenphIGlsIFJPT1QgZGV2aWNlIGNvcnJlbnRlIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc5Cittc2dpZCAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHNldHMgUk9PVCB0byAvZGV2L2hkYTIiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBpbXBvc3RhIFJPT1Qgc3UgL2Rldi9oZGEyIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgwCittc2dpZCAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgUk9PVEZMQUdTIChyZWFkb25seSBzdGF0dXMpIgorbXNnc3RyICIiCisiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgaW1wb3N0YSBpIFJPT1RGTEFHUyAoc3RhdG8gc29sYSBsZXR0dXJhKSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MQorbXNnaWQgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBzZXQgdGhlIFJBTURJU0sgc2l6ZSIKK21zZ3N0ciAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIGltcG9zdGEgbGEgZGltZW5zaW9uZSBkZWwgUkFNRElTSyIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgIGltcG9zdGEgVklERU9NT0RFIGFsbCdhdnZpbyIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1dGlsaXp6YSBieXRlIG9mZnNldCBOIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg0Cittc2dpZCAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtUiIKK21zZ3N0ciAiIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAgY29tZSByZGV2IC1SIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiIHJhbXNpemUgLi4uICAgICAgICAgICAgICAgICAgICAgY29tZSByZGV2IC1yIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg2Cittc2dpZCAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtdiIKK21zZ3N0ciAiIHZpZG1vZGUgLi4uICAgICAgICAgICAgICAgICAgICAgY29tZSByZGV2IC12IgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg3Cittc2dpZCAiIgorIk5vdGU6IHZpZGVvIG1vZGVzIGFyZTogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLCAxPWtleTEsIDI9a2V5MiwuLi4iCittc2dzdHIgIiIKKyJOb3RhOiBsZSBtb2RhbGl0w6AgYSB2aWRlbyBzb25vOiAtMz1Bc2ssIC0yPUV4dGVuZGVkLCAtMT1Ob3JtYWxWZ2EsIDE9a2V5MSwgIgorIjI9a2V5MiwuLi4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODgKK21zZ2lkICIgICAgICB1c2UgLVIgMSB0byBtb3VudCByb290IHJlYWRvbmx5LCAtUiAwIGZvciByZWFkL3dyaXRlLiIKK21zZ3N0ciAiIgorIiAgICAgdXRpbGl6emEgLVIgMSBwZXIgbW9udGFyZSBsYSByb290IHJlYWRvbmx5LCAtUiAwIHBlciBsZXR0dXJhL3Njcml0dHVyYS4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAidmlyZ29sYSBtYW5jYW50ZSIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NzIgdGV4dC11dGlscy9tb3JlLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIm91dCBvZiBtZW1vcnkiCittc2dzdHIgIm1lbW9yaWEgZXNhdXJpdGEiCisKKyMgTmRUOiB0cmFkdXppb25lIHNlZ3VlbmRvICdtYW4gcmVhZHByb2ZpbGUnCisjIEZJWE1FCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogXCIlcyBbb3B0aW9uc11cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChkZWZhdWx0czogXCIlc1wiIGFuZFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAoZGVmYXVsdDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgc2V0IHRoZSBwcm9maWxpbmcgbXVsdGlwbGllciB0byA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorIlx0IC12ICAgICAgICAgICAgcHJpbnQgdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICBwcmludCBhbGwgc3ltYm9scywgZXZlbiBpZiBjb3VudCBpcyAwXG4iCisiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgIHJlc2V0IGFsbCB0aGUgY291bnRlcnMgKHJvb3Qgb25seSlcbiIKKyJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorIlx0IC1WICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorbXNnc3RyICIiCisiJXM6IFVzbzogXCIlcyBbb3B6aW9uaV1cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChwcmVkZWZpbml0aTogXCIlc1wiIGVcbiIKKyJcdFx0XHRcdCAgICAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm9maWxvPiAgKHByZWRlZmluaXRvOiBcIiVzXCIpXG4iCisiXHQgLU0gPG11bHQ+ICAgICBpbXBvc3RhIGxhIGZyZXF1ZW56YSBkZWwgcHJvZmlsaW5nIGEgPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBzdGFtcGEgc29sbyBsZSBpbmZvcm1hemlvbmkgc3VsIHBhc3NvIGRpIGNhbXBpb25hbWVudG9cbiIKKyJcdCAtdiAgICAgICAgICAgIHN0YW1wYSBpIGRhdGkgaW4gZWxlbmNvXG4iCisiXHQgLWEgICAgICAgICAgICBzdGFtcGEgdHV0dGkgaSBzaW1ib2xpLCBhbmNoZSBzZSBpbCBjb250ZWdnaW8gw6ggMFxuIgorIlx0IC1iICAgICAgICAgICAgc3RhbXBhIGlzdG9ncmFtbWkgaW5kaXZpZHVhbGlcbiIKKyJcdCAtcyAgICAgICAgICAgIHN0YW1wYSBjb250YXRvcmkgaW5kaXZpZHVhbGkgbmVsbGUgZnVuemlvbmlcbiIKKyJcdCAtciAgICAgICAgICAgIHJlaW1wb3N0YSB0dXR0aSBpIGNvbnRhdG9yaSAoc29sYW1lbnRlIHV0ZW50ZSByb290KVxuIgorIiAgICAgICAgIC1uICAgICAgICAgICAgZGlzYWJpbGl0YSBsYSByaWxldmF6aW9uZSBhdXRvbWF0aWNhIGRlbCBieXRlIG9yZGVyXG4iCisiXHQgLVYgICAgICAgICAgICBzdGFtcGEgbGEgdmVyc2lvbmUgZWQgZXNjZVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJtb3VudDogZXJyb3JlIGR1cmFudGUgbGEgc2NyaXR0dXJhIGRpICVzOiAlcyIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuIFVzZSAtbiB0byBmb3JjZSBuYXRpdmUgYnl0ZSBvcmRlci5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiU2FtcGxpbmdfc3RlcDogJWlcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzA1IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMoJWkpOiB3cm9uZyBtYXAgbGluZVxuIgorbXNnc3RyICIlczogJXMoJWkpOiBsaW5lYSBtYXBwYSBlcnJhdGFcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIFwiX3N0ZXh0XCIgaW4gJXNcbiIKK21zZ3N0ciAiJXM6IGltcG9zc2liaWxlIHRyb3ZhcmUgXCJfc3RleHRcIiBpbiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjQxMgorbXNnaWQgInRvdGFsIgorbXNnc3RyICJ0b3RhbGUiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5IFstcHwtLXBpZF0gcGlkICBbLi4uIHBpZF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC1nfC0tcGdycCBwZ3JwIFsuLi4gcGdycF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC11fC0tdXNlciB1c2VyIFsuLi4gdXNlcl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZGEgJXNcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiB1bmtub3duIHVzZXJcbiIKK21zZ3N0ciAicmVuaWNlOiAlczogdXRlbnRlIHNjb25vc2NpdXRvXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IHZhbG9yZSBub24gdmFsaWRvXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6IHZlY2NoaWEgcHJpb3JpdMOgICVkLCBudW92YSBwcmlvcml0w6AgJWRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0NworbXNnaWQgInJlYWQgc3lzdGVtIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI0Cittc2dpZCAic2V0IHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyOAorbXNnaWQgImVuYWJsZSBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMzIKK21zZ2lkICJzZXQgcnRjIHdha2UgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIiAlczogdGlwbyBkaSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmkgbm9uIHJpY29ub3NjaXV0b1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBpbnRlcnZhbCAlcyBzZWNvbmRzXG4iCittc2dzdHIgIiVzOiBpbnRlcnZhbGxvIGlsbGVnYWxlICVzIHNlY29uZGlcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiB2YWxvcmUgdGltZV90IGlsbGVjaXRvICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB2ZXJzaW9uICVzXG4iCittc2dzdHIgIiVzOiB2ZXJzaW9uZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAiVXRpbGl6em8gZGkgJXMuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICJVdGlsaXp6byBkaSAlcy5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG11c3QgcHJvdmlkZSB3YWtlIHRpbWVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQxNworbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jKCkgbm9uIHJpdXNjaXRhIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iCittc2dzdHIgIiVzOiAlcyBubyDDqCB1biBscCBkZXZpY2UuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGltZSBkb2Vzbid0IGdvIGJhY2t3YXJkIHRvICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWtldXAgZnJvbSBcIiVzXCIgdXNpbmcgJXMgYXQgJXNcbiIKK21zZ3N0ciAiTWVzc2FnZ2lvIGRhICVzQCVzIHN1ICVzIGEgJXMgLi4uIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIlczogaW1wb3NzaWJpbGUgcmlub21pbmFyZSAlcyBpbiAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0OTYKK21zZ2lkICJydGMgcmVhZCIKK21zZ3N0ciAicnRjIGxldHRvIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjUwNQorbXNnaWQgImRpc2FibGUgcnRjIGFsYXJtIGludGVycnVwdCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGluZyBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzJXMgW29wdGlvbnNdIFtwcm9ncmFtIFtwcm9ncmFtIGFyZ3VtZW50c11dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAtdiwgLS12ZXJib3NlICAgICAgICAgICAgc2F5cyB3aGF0IG9wdGlvbnMgYXJlIGJlaW5nIHN3aXRjaGVkIG9uXG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplICBkaXNhYmxlcyByYW5kb21pemF0aW9uIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3MgIgorInNwYWNlXG4iCisiIC1GLCAtLWZkcGljLWZ1bmNwdHJzICAgICBtYWtlcyBmdW5jdGlvbiBwb2ludGVycyBwb2ludCB0byBkZXNjcmlwdG9yc1xuIgorIiAtWiwgLS1tbWFwLXBhZ2UtemVybyAgICAgdHVybnMgb24gTU1BUF9QQUdFX1pFUk9cbiIKKyIgLUwsIC0tYWRkci1jb21wYXQtbGF5b3V0IGNoYW5nZXMgdGhlIHdheSB2aXJ0dWFsIG1lbW9yeSBpcyBhbGxvY2F0ZWRcbiIKKyIgLVgsIC0tcmVhZC1pbXBsaWVzLWV4ZWMgIHR1cm5zIG9uIFJFQURfSU1QTElFU19FWEVDXG4iCisiIC1CLCAtLTMyYml0ICAgICAgICAgICAgICB0dXJucyBvbiBBRERSX0xJTUlUXzMyQklUXG4iCisiIC1JLCAtLXNob3J0LWlub2RlICAgICAgICB0dXJucyBvbiBTSE9SVF9JTk9ERVxuIgorIiAtUywgLS13aG9sZS1zZWNvbmRzICAgICAgdHVybnMgb24gV0hPTEVfU0VDT05EU1xuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgdHVybnMgb24gU1RJQ0tZX1RJTUVPVVRTXG4iCisiIC0zLCAtLTNnYiAgICAgICAgICAgICAgICBsaW1pdHMgdGhlIHVzZWQgYWRkcmVzcyBzcGFjZSB0byBhIG1heGltdW0gb2YgMyAiCisiR0JcbiIKKyIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGlnbm9yZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiUGVyIG1hZ2dpb3JpIGluZm9ybWF6aW9uaSB2ZWRlcmUgc2V0YXJjaCg4KS5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIiVzOiAlc1xuIgorIlByb3ZhcmUgXCIlcyAtLWhlbHBcIiBwZXIgdWx0ZXJpb3JpIGluZm9ybWF6aW9uaS5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyMTUgc3lzLXV0aWxzL3NldGFyY2guYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVucmVjb2duaXplZCBhcmNoaXRlY3R1cmUiCittc2dzdHIgIiAlczogYXJjaGl0ZXR0dXJhIG5vbiByaWNvbm9zY2l1dGEiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIkFyZ29tZW50aSBpbnN1ZmZpY2llbnRpIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiU2NyaXR0dXJhIGRlbGxhIHBhcnRpemlvbmUgc3UgJXMgbm9uIHJpdXNjaXRhXG4iCisKKyM6IHN5cy11dGlscy9zZXRzaWQuYzoyNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIKK21zZ3N0ciAiVXNvOiAlcyBwcm9ncmFtbWEgW2FyZyAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisiVXNvOiAlcyA8ZGV2aWNlPiBbIC1pIDxJUlE+IHwgLXQgPFRJTUU+IHwgLWMgPENIQVJTPiB8IC13IDxXQUlUPiB8IFxuIgorIiAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6OTEKK21zZ2lkICJtYWxsb2MgZXJyb3IiCittc2dzdHIgImVycm9yZSBkaSBtYWxsb2MiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIlczogdmFsb3JlIG5vbiB2YWxpZG9cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIKK21zZ3N0ciAiJXM6ICVzIG5vIMOoIHVuIGxwIGRldmljZS5cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdGF0dXMgaXMgJWQiCittc2dzdHIgImxvIHN0YXRvIGRpICVzIMOoICVkIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgYnVzeSIKK21zZ3N0ciAiLCBvY2N1cGF0byIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHJlYWR5IgorbXNnc3RyICIsIHByb250byIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG91dCBvZiBwYXBlciIKK21zZ3N0ciAiLCBjYXJ0YSBlc2F1cml0YSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICIsIG9uLWxpbmUiCittc2dzdHIgIiwgb24tbGluZSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGVycm9yIgorbXNnc3RyICIsIGVycm9yZSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI4NQorbXNnaWQgIkxQR0VUSVJRIGVycm9yIgorbXNnc3RyICJlcnJvcmUgTFBHRVRJUlEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgSVJRICVkXG4iCittc2dzdHIgIiVzIHV0aWxpenpvIGRpIElSUSAlZCBpbiBjb3Jzb1xuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMgdXRpbGl6em8gZGVsIHBvbGxpbmcgaW4gY29yc29cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgIlVzbzogJXMgcHJvZ3JhbW1hIFthcmcgLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjYwCittc2dpZCAiIgorIlJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB1c2FnZSBpbmZvcm1hdGlvbiAodGhpcylcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgbW91bnRzIG5hbWVzcGFjZVxuIgorIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIFN5c3RlbSBWIElQQyBuYW1lc3BhY2VcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIHVuc2hhcmUgbmV0d29yayBuYW1lc3BhY2VcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHVuc2hhcmUoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQZXIgbWFnZ2lvcmkgaW5mb3JtYXppb25pIHZlZGVyZSBzZXRhcmNoKDgpLlxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExNAorIywgZnV6enkKK21zZ2lkICJ1bnNoYXJlIGZhaWxlZCIKK21zZ3N0ciAicmljZXJjYSBub24gcml1c2NpdGEiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJleGVjICVzIGZhaWxlZCIKK21zZ3N0ciAiZXhlYyBmYWxsaXRhXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogYmFkIC1sIGFyZ3VtZW50ICVzLlxuIgorbXNnc3RyICJjb2w6IGFyZ29tZW50byAtbCBub24gdmFsaWRvIHBlciAlcy5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKK21zZ3N0ciAiVXNvOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmVdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd3JpdGUgZXJyb3IuXG4iCittc2dzdHIgImNvbDogZXJyb3JlIGluIHNjcml0dHVyYS5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6IGF0dGVuemlvbmU6IGltcG9zc2liaWxlIGVzZWd1aXJlIGlsIGJhY2t1cCBkaSAlcy5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICJwYXN0IGZpcnN0IGxpbmUiCittc2dzdHIgImRvcG8gbGEgcHJpbWEgbGluZWEiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAiLS0gbGluZSBhbHJlYWR5IGZsdXNoZWQiCittc2dzdHIgIi0tIGxpbmVhIGdpw6Agc3Z1b3RhdGEiCisKKyM6IHRleHQtdXRpbHMvY29sY3J0LmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLSBdIFsgLTIgXSBbIGZpbGUgLi4uIF1cbiIKK21zZ3N0ciAiVXNvOiAlcyBbIC0gXSBbIC0yIF0gWyBmaWxlIC4uLiBdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mjk3Cittc2dpZCAibGluZSB0b28gbG9uZyIKK21zZ3N0ciAibGluZWEgdHJvcHBvIGx1bmdhIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjM3NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sdW1uIFstdHhdIFstYyBjb2x1bW5zXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIlVzbzogY29sdW1uIFstdHhdIFstYyBjb2xvbm5lXSBbZmlsZSAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdmFsb3JlIGx1bmdoZXp6YSBub24gdmFsaWRvLlxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBza2lwIHZhbHVlLlxuIgorbXNnc3RyICJoZXhkdW1wOiB2YWxvcmUgc2tpcCBub24gdmFsaWRvLlxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbGVdIFstbiBsZW5ndGhdIFstcyBza2lwXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgIlVzbzogJXMgWy1kZmxwY3N1XSBbK2xpbmVudW0gfCArL21vZGVsbG9dIG5vbWUxIG5vbWUyIC4uLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyOTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBpbml0aWFsaXplIGxpbmUgYnVmZmVyXG4iCittc2dzdHIgIkltcG9zc2liaWxlIGFsbG9jYXJlIGlsIGJ1ZmZlci5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIG9wdGlvbiBcIi0lY1wiXG4iCittc2dzdHIgIiVzOiBvcHppb25lIHNjb25vc2NpdXRhIFwiLSVjXCJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczogZGlyZWN0b3J5ICoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKioqKioqICVzOiBOb3QgYSB0ZXh0IGZpbGUgKioqKioqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKioqKioqICVzOiBub24gw6ggdW4gZmlsZSBkaSB0ZXN0byAqKioqKioqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo2NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1VzZSBxIG9yIFEgdG8gcXVpdF0iCittc2dzdHIgIltVc2FyZSBxIG8gUSBwZXIgdXNjaXJlXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tTW9yZS0tIgorbXNnc3RyICItLUFuY29yYS0tIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiKE5leHQgZmlsZTogJXMpIgorbXNnc3RyICIoRmlsZSBzdWNjZXNzaXZvOiAlcykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIltQcmVtZXJlIHNwYXppbyBwZXIgY29udGludWFyZSwgJ3EnIHBlciB1c2NpcmUuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi5pbmRpZXRybyAlZCBwYWdpbmUiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiLi4uaW5kaWV0cm8gMSBwYWdpbmEiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTEKK21zZ2lkICIuLi5za2lwcGluZyBvbmUgbGluZSIKK21zZ3N0ciAiLi4uc3RvIHNhbHRhbmRvIHVuYSByaWdhIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICIuLi5zdG8gc2FsdGFuZG8gJWQgcmlnaGUiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqSW5kaWV0cm8qKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMyOAorbXNnaWQgIiIKKyJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgRGVmYXVsdHMgaW4gIgorImJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMzUKK21zZ2lkICIiCisiPHNwYWNlPiAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFsxXSpcbiIKKyJkIG9yIGN0cmwtRCAgICAgICAgICAgICBTY3JvbGwgayBsaW5lcyBbY3VycmVudCBzY3JvbGwgc2l6ZSwgaW5pdGlhbGx5IDExXSpcbiIKKyJxIG9yIFEgb3IgPGludGVycnVwdD4gICBFeGl0IGZyb20gbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGxpbmVzIG9mIHRleHQgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorImIgb3IgY3RybC1CICAgICAgICAgICAgIFNraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGxpbmUgbnVtYmVyXG4iCisiLzxyZWd1bGFyIGV4cHJlc3Npb24+ICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiBsYXN0IHIuZSBbMV1cbiIKKyIhPGNtZD4gb3IgOiE8Y21kPiAgICAgICBFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBhdCBjdXJyZW50IGxpbmVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRyYXcgc2NyZWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIG5leHQgZmlsZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggcHJldmlvdXMgZmlsZSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCBwcmV2aW91cyBjb21tYW5kXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQwNCB0ZXh0LXV0aWxzL21vcmUuYzoxNDA5CisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyAnaCcgZm9yIGluc3RydWN0aW9ucy5dIgorbXNnc3RyICJbUHJlbWVyZSAnaCcgcGVyIHZpc3VhbGl6emFyZSBsZSBpc3RydXppb25pLl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIlwiJXNcIiByaWdhICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbTm9uIHVuIGZpbGVdIHJpZ2EgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiAgT3ZlcmZsb3dcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTU3NgorbXNnaWQgIi4uLnNraXBwaW5nXG4iCittc2dzdHIgIi4uLmlnbm9yYVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICJFcnJvcmUgbmVsbCdlc3ByZXNzaW9uZSByZWdvbGFyZSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiUGF0dGVybiBub24gdHJvdmF0b1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjE2IHRleHQtdXRpbHMvcGcuYzoxMTI3IHRleHQtdXRpbHMvcGcuYzoxMjc4Cittc2dpZCAiUGF0dGVybiBub3QgZm91bmQiCittc2dzdHIgIlBhdHRlcm4gbm9uIHRyb3ZhdG8iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2NzcKK21zZ2lkICJjYW4ndCBmb3JrXG4iCittc2dzdHIgImltcG9zc2liaWxlIGVmZmV0dHVhcmUgZm9ya1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzE2Cittc2dpZCAiIgorIlxuIgorIi4uLlNraXBwaW5nICIKK21zZ3N0ciAiIgorIlxuIgorIi4uLmlnbm9yYXRvIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIwCittc2dpZCAiLi4uU2tpcHBpbmcgdG8gZmlsZSAiCittc2dzdHIgIi4uLkFuZGF0byBhbCBmaWxlICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMgorbXNnaWQgIi4uLlNraXBwaW5nIGJhY2sgdG8gZmlsZSAiCittc2dzdHIgIi4uLlRvcm5hdG8gYWwgZmlsZSAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMDAKK21zZ2lkICJMaW5lIHRvbyBsb25nIgorbXNnc3RyICJSaWdhIHRyb3BwbyBsdW5nYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIk5lc3N1biBjb21hbmRvIHByZWNlZGVudGUgZGEgc29zdGl0dWlyZSIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJvZDogb2QoMSkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgaGV4ZHVtcCgxKS5cbiIKK21zZ3N0ciAib2Q6IG9kKDEpIMOoIHN0YXRhIHNvc3RpdHVpdG8gZGEgaGV4ZHVtcCgxKS5cbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJvZDogaGV4ZHVtcCgxKSBjb21wYXRpYmlsaXR5IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLSVjIG9wdGlvbiVzXG4iCittc2dzdHIgIm9kOiBsYSBjb21wYXRpYmlsaXTDoCBoZXhkdW1wKDEpIG5vbiBzdXBwb3J0YSBsJ29wemlvbmUgLSVjICVzXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzQKK21zZ2lkICI7IHNlZSBzdHJpbmdzKDEpLiIKK21zZ3N0ciAiOyBjb25zdWx0YXJlIHN0cmluZ3MoMSkuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogaW1wb3NzaWJpbGUgbGVnZ2VyZSAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgImhleGR1bXA6IGxpbmVhIHRyb3BwbyBsdW5nYS5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBjb250ZWdnaW8gYnl0ZSBjb24gaSBjYXJhdHRlcmkgZGkgY29udmVyc2lvbmUgbXVsdGlwbGEuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBjb250ZWdnaW8gYnl0ZSBlcnJhdG8gcGVyIGlsIGNhcmF0dGVyZSBkaSBjb252ZXJzaW9uZSAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiAlJXMgcmVxdWlyZXMgYSBwcmVjaXNpb24gb3IgYSBieXRlIGNvdW50LlxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogJSVzIHJpY2hpZWRlIHVuIGNvbnRlZ2dpbyBkaSBwcmVjaXNpb25lIG8gdW4gY29udGVnZ2lvIGRlaSBieXRlLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDk2CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBmb3JtYXQgeyVzfVxuIgorbXNnc3RyICJoZXhkdW1wOiBmb3JtYXRvIG5vbiB2YWxpZG8geyVzfVxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBjb252ZXJzaW9uIGNoYXJhY3RlciAlJSVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBjYXJhdHRlcmUgZGkgY29udmVyc2lvbmUgbm9uIHZhbGlkbyAlJSVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ1Cittc2dpZCAiIgorIkFsbCByaWdodHMgcmVzZXJ2ZWQuXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIiAgaCAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBzY3JlZW5cbiIKKyIgIHEgb3IgUSAgICAgICAgICAgICAgICAgIHF1aXQgcHJvZ3JhbVxuIgorIiAgPG5ld2xpbmU+ICAgICAgICAgICAgICAgbmV4dCBwYWdlXG4iCisiICBmICAgICAgICAgICAgICAgICAgICAgICBza2lwIGEgcGFnZSBmb3J3YXJkXG4iCisiICBkIG9yIF5EICAgICAgICAgICAgICAgICBuZXh0IGhhbGZwYWdlXG4iCisiICBsICAgICAgICAgICAgICAgICAgICAgICBuZXh0IGxpbmVcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgcGFnZVxuIgorIiAgL3JlZ2V4LyAgICAgICAgICAgICAgICAgc2VhcmNoIGZvcndhcmQgZm9yIHJlZ2V4XG4iCisiICA/cmVnZXg/IG9yIF5yZWdleF4gICAgICBzZWFyY2ggYmFja3dhcmQgZm9yIHJlZ2V4XG4iCisiICAuIG9yIF5MICAgICAgICAgICAgICAgICByZWRyYXcgc2NyZWVuXG4iCisiICB3IG9yIHogICAgICAgICAgICAgICAgICBzZXQgcGFnZSBzaXplIGFuZCBnbyB0byBuZXh0IHBhZ2VcbiIKKyIgIHMgZmlsZW5hbWUgICAgICAgICAgICAgIHNhdmUgY3VycmVudCBmaWxlIHRvIGZpbGVuYW1lXG4iCisiICAhY29tbWFuZCAgICAgICAgICAgICAgICBzaGVsbCBlc2NhcGVcbiIKKyIgIHAgICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIHByZXZpb3VzIGZpbGVcbiIKKyIgIG4gICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIG5leHQgZmlsZVxuIgorIlxuIgorIk1hbnkgY29tbWFuZHMgYWNjZXB0IHByZWNlZGluZyBudW1iZXJzLCBmb3IgZXhhbXBsZTpcbiIKKyIrMTxuZXdsaW5lPiAobmV4dCBwYWdlKTsgLTE8bmV3bGluZT4gKHByZXZpb3VzIHBhZ2UpOyAxPG5ld2xpbmU+IChmaXJzdCAiCisicGFnZSkuXG4iCisiXG4iCisiU2VlIHBnKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiTWVtb3JpYSBlc2F1cml0YSIKKworIzogdGV4dC11dGlscy9wZy5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiAlcyBbLW51bWJlcl0gWy1wIHN0cmluZ10gWy1jZWZucnNdIFsrbGluZV0gWysvcGF0dGVybi9dIFtmaWxlc11cbiIKK21zZ3N0ciAiIgorIiVzOiBVc286ICVzIFstbnVtZXJvXSBbLXAgc3RyaW5nYV0gWy1jZWZucnNdIFsrcmlnYV0gWysvbW9kZWxsby9dIFtmaWxlXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IGwnb3B6aW9uZSByaWNoaWVkZSB1biBhcmdvbWVudG8gLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJXNcbiIKK21zZ3N0ciAiJXM6IG9wemlvbmUgaWxsZWNpdGEgLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MAorbXNnaWQgIi4uLnNraXBwaW5nIGZvcndhcmRcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcyCittc2dpZCAiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJOZXNzdW4gZmlsZSBzdWNjZXNzaXZvIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk4Cittc2dpZCAiTm8gcHJldmlvdXMgZmlsZSIKK21zZ3N0ciAiTmVzc3VuIGZpbGUgcHJlY2VkZW50ZSIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEVycm9yZSBkaSBsZXR0dXJhIGRhbCBmaWxlICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuZXhwZWN0ZWQgRU9GIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEVPRiBub24gcHJldmlzdG8gbmVsIGZpbGUgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBlcnJvciBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBFcnJvcmUgc2Nvbm9zY2l1dG8gbmVsIGZpbGUgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBjcmVhdGUgdGVtcGZpbGVcbiIKK21zZ3N0ciAiJXM6IEltcG9zc2liaWxlIGNyZWFyZSBpbCBmaWxlIHRlbXBvcmFuZW9cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwNDQgdGV4dC11dGlscy9wZy5jOjEyMTkgdGV4dC11dGlscy9wZy5jOjEyNDYKK21zZ2lkICJSRSBlcnJvcjogIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIihFT0YpIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAiTmVzc3VuYSBzdHJpbmdhIGRpIHJpY2VyY2Egcmljb3JkYXRhIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgYXByaXJlICIKKworIzogdGV4dC11dGlscy9wZy5jOjEzNTgKK21zZ2lkICJzYXZlZCIKK21zZ3N0ciAic2FsdmF0byIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiZm9yaygpIG5vbiByaXVzY2l0bywgcmlwcm92YXJlIHBpw7kgdGFyZGlcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIihGaWxlIHN1Y2Nlc3Npdm86ICIKKworIzogdGV4dC11dGlscy9yZXYuYzoxMTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJJbXBvc3NpYmlsZSBhbGxvY2FyZSBsbyBzcGF6aW8gYnVmZmVyXG4iCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiByZXYgW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJVc286IHJldiBbZmlsZSAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIKK21zZ3N0ciAiSW1wb3NzaWJpbGUgYXByaXJlIFwiJXNcIiBpbiBsZXR0dXJhXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo5NiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBcIiVzXCIiCittc2dzdHIgImltcG9zc2liaWxlIGVzZWd1aXJlIHN0YXQgc3VsIGRpc3Bvc2l0aXZvICVzIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgImluY29tcGxldGUgd3JpdGUgdG8gXCIlc1wiICh3cml0dGVuICV6ZCwgZXhwZWN0ZWQgJXpkKVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAobGltaXQgb2YgaW5vdGlmeSB3YXRjaGVzIHdhcyByZWFjaGVkKS4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiBpbXBvc3NpYmlsZSBhcHJpcmUgJXNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE5OSB0ZXh0LXV0aWxzL3RhaWxmLmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIGxpbmVzIgorbXNnc3RyICJOdW1lcm8gbm9uIHZhbGlkbzogJXNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorIywgZnV6enkKK21zZ2lkICJ1c2FnZTogdGFpbGYgWy1uIE4gfCAtTl0gbG9nZmlsZSIKK21zZ3N0ciAiVXNvOiB0YWlsZiBmaWxlLWRpLWxvZ1xuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgIlVzbzogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZmlsZS4uLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgInRyb3VibGUgcmVhZGluZyB0ZXJtaW5mbyIKK21zZ3N0ciAicHJvYmxlbWkgbGVnZ2VuZG8gdGVybWluZm8iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBlc2NhcGUgc2VxdWVuY2UgaW4gaW5wdXQ6ICVvLCAlb1xuIgorbXNnc3RyICJTZXF1ZW56YSBkaSBlc2NhcGUgc2Nvbm9zY2l1dGEgaW4gaW5wdXQ6ICVvLCAlb1xuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIuXG4iCittc2dzdHIgIkltcG9zc2liaWxlIGFsbG9jYXJlIGlsIGJ1ZmZlci5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnB1dCBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJMaW5lYSBkaSBpbnB1dCB0cm9wcG8gbHVuZ2EuXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGVuIGdyb3dpbmcgYnVmZmVyLlxuIgorbXNnc3RyICJNZW1vcmlhIGluc3VmZmljaWVudGUgcXVhbmRvIHNpIGFtcGxpYSBpbCBidWZmZXIuXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstYiBTU1pdIFstdV0gRElTSyAgICAgQ2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorI34gIiAgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdIERJU0sgIExpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisjfiAiICAgICAgIGZkaXNrIC1zIFBBUlRJVElPTiAgICAgICAgICAgR2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyN+ICIgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICBHaXZlIGZkaXNrIHZlcnNpb25cbiIKKyN+ICJIZXJlIERJU0sgaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGIgb3IgL2Rldi9zZGFcbiIKKyN+ICJhbmQgUEFSVElUSU9OIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhN1xuIgorI34gIi11OiBnaXZlIFN0YXJ0IGFuZCBFbmQgaW4gc2VjdG9yIChpbnN0ZWFkIG9mIGN5bGluZGVyKSB1bml0c1xuIgorI34gIi1iIDIwNDg6IChmb3IgY2VydGFpbiBNTyBkaXNrcykgdXNlIDIwNDgtYnl0ZSBzZWN0b3JzXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJVc286ICBmZGlzayBbLWIgU1NaXSBbLXVdIERJU0NPICAgICBNb2RpZmljYSBsYSB0YWJlbGxhIGRlbGxlIHBhcnRpemlvbmlcbiIKKyN+ICIgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdIERJU0NPICBFbGVuY2EgbGEgdGFiZWxsYSBkZWxsZSBwYXJ0aXppb25pXG4iCisjfiAiICAgICAgZmRpc2sgLXMgUEFSVElaSU9ORSAgICAgICAgICAgTW9zdHJhIGxhIGRpbWVuc2lvbmUgZGVsbGEgIgorI34gInBhcnRpemlvbmVcbiIKKyN+ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBibG9jY2hpXG4iCisjfiAiICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICAgTW9zdHJhIGxhIHZlcnNpb25lIGRpIGZkaXNrXG4iCisjfiAiSW4gcXVlc3RvIGNhc28gRElTQ08gw6ggcXVhbGNvc2EgY29tZSAvZGV2L2hkYiBvIC9kZXYvc2RhXG4iCisjfiAiZSBQQVJUSVpJT05FIMOoIHF1YWxjb3NhIGNvbWUgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGluZGljYSBJbml6aW8gZSBGaW5lIGluIG51bWVybyBkaSBzZXR0b3JpIChpbnZlY2UgY2hlIGluIGNpbGluZHJpKVxuIgorI34gIi1iIDIwNDg6IChwZXIgYWxjdW5lIHVuaXTDoCBNTykgdXNhIHNldHRvcmkgYSAyMDQ4IGJ5dGVcbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGRldmljZVxuIgorI34gIkUuZy46IGZkaXNrIC9kZXYvaGRhICAoZm9yIHRoZSBmaXJzdCBJREUgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3NkYyAgKGZvciB0aGUgdGhpcmQgU0NTSSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvZWRhICAoZm9yIHRoZSBmaXJzdCBQUy8yIEVTREkgZHJpdmUpXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9yZC9jMGQwICBvcjogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKGZvciBSQUlEIGRldmljZXMpXG4iCisjfiAiICAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlVzbzogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGRpc3Bvc2l0aXZvXG4iCisjfiAiUGVyIGVzLjogZmRpc2sgL2Rldi9oZGEgIChwZXIgaWwgcHJpbW8gZGlzY28gSURFKVxuIgorI34gIiAgbzogZmRpc2sgL2Rldi9zZGMgIChwZXIgaWwgdGVyem8gZGlzY28gU0NTSSlcbiIKKyN+ICIgIG86IGZkaXNrIC9kZXYvZWRhICAocGVyIGxhIHByaW1hIHVuaXTDoCBQUy8yIEVTREkpXG4iCisjfiAiICBvOiBmZGlzayAvZGV2L3JkL2MwZDAgIG86IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChwZXIgaSBkaXNwb3NpdGl2aSAiCisjfiAiUkFJRClcbiIKKyN+ICIgIC4uLlxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm91dCBpZiBtZW1vcnkiCisjfiBtc2dzdHIgIm1lbW9yaWEgZXNhdXJpdGEiCisKKyN+IG1zZ2lkICIjIHBhcnRpdGlvbiB0YWJsZSBvZiAlc1xuIgorI34gbXNnc3RyICIjIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaSBkaSAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICJ1bml0OiBzZWN0b3JzXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgInNldHRvcmkiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIHN0YXJ0PSU5bHUiCisjfiBtc2dzdHIgImluaXppbyIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAiRGltZW5zaW9uZSBtYXNzaW1hPSVsZFxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiwgYm9vdGFibGUiCisjfiBtc2dzdHIgIkFJWCBhdnZpYWJpbGUiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiQ2xvY2sgaW4gVVRDLCBub3QgY2hhbmdlZC5cbiIKKyN+IG1zZ3N0ciAiU2hlbGwgbm9uIG1vZGlmaWNhdGEuXG4iCisKKyN+IG1zZ2lkICJmYXRhbDogZmlyc3QgcGFnZSB1bnJlYWRhYmxlIgorI34gbXNnc3RyICJlcnJvcmUgaXJyZXZlcnNpYmlsZTogaW1wb3NzaWJpbGUgbGVnZ2VyZSBsYSBwcmltYSBwYWdpbmEiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gIiVzOiBEZXZpY2UgJyVzJyBjb250YWlucyBhIHZhbGlkIFN1biBkaXNrbGFiZWwuXG4iCisjfiAiVGhpcyBwcm9iYWJseSBtZWFucyBjcmVhdGluZyB2MCBzd2FwIHdvdWxkIGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUuXG4iCisjfiAiTm8gc3dhcCB3YXMgY3JlYXRlZC4gSWYgeW91IHJlYWxseSB3YW50IHRvIGNyZWF0ZSB2MCBzd2FwIG9uIHRoYXQgIgorI34gImRldmljZSxcbiIKKyN+ICJ1c2UgdGhlIC1mIG9wdGlvbiB0byBmb3JjZSBpdC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBJbCBkaXNwb3NpdGl2byAnJXMnIGNvbnRpZW5lIHVuYSBkaXNrbGFiZWwgU3VuIHZhbGlkYS5cbiIKKyN+ICJRdWVzdG8gcHJvYmFiaWxtZW50ZSBzaWduaWZpY2EgY2hlIGxhIGNyZWF6aW9uZSBkaSB1bm8gc3dhcCB2MCAiCisjfiAiZWxpbWluZXJlYmJlIGxhIHRhYmVsbGEgZGVsbGUgcGFydGl6aW9uaVxuIgorI34gIk5lc3N1bm8gc3dhcCBjcmVhdG8uIFNlIHNpIGRlc2lkZXJhIGNyZWFyZSB1bm8gc3dhcCB2MCBzdSBxdWVsICIKKyN+ICJkaXNwb3NpdGl2byxcbiIKKyN+ICJ1dGlsaXp6YXJlIGwnb3B6aW9uZSAtZiBwZXIgZm9yemFyZSBsJ29wZXJhemlvbmUuXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBpbXBvc3NpYmlsZSBvdHRlbmVyZSBsYSBkaXJlY3RvcnkgY29ycmVudGUgLSAlc1xuIgorCisjfiBtc2dpZCAibmFtZWk6IHVuYWJsZSB0byBjaGRpciB0byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGltcG9zc2liaWxlIGVzZWd1aXJlIGNoZGlyIHN1ICVzIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBjaGRpciB0byByb290IVxuIgorI34gbXNnc3RyICJuYW1laTogaW1wb3NzaWJpbGUgZXNlZ3VpcmUgY2hkaXIgc3UgZGlyZWN0b3J5IHJvb3QhXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IHN0YXQgcm9vdCFcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGltcG9zc2liaWxlIGVzZWd1aXJlIHN0YXQgZGVsbGEgZGlyZWN0b3J5IHJvb3QhXG4iCisKKyN+IG1zZ2lkICJuYW1laTogYnVmIG92ZXJmbG93XG4iCisjfiBtc2dzdHIgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKworI34gbXNnaWQgIiA/IGNvdWxkIG5vdCBjaGRpciBpbnRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyBpbXBvc3NpYmlsZSBlc2VndWlyZSBjaGRpciBpbiAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIiA/IHByb2JsZW1zIHJlYWRpbmcgc3ltbGluayAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAiID8gcHJvYmxlbWkgbmVsbGEgbGV0dHVyYSBkZWwgY29sbGVnYW1lbnRvIHNpbWJvbGljbyAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIiAgKioqIEVYQ0VFREVEIFVOSVggTElNSVQgT0YgU1lNTElOS1MgKioqXG4iCisjfiBtc2dzdHIgIiAgKioqIFNVUEVSQVRPIElMIExJTUlURSBVTklYIERJIENPTExFR0FNRU5USSBTSU1CT0xJQ0kgKioqXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5rbm93biBmaWxlIHR5cGUgMCUwNm8gb24gZmlsZSAlc1xuIgorI34gbXNnc3RyICJuYW1laTogdGlwbyBmaWxlIHNjb25vc2NpdXRvIDAlMDZvIHN1IGZpbGUgJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb2luZyB0byBtb3VudCAlcyBieSAlc1xuIgorI34gbXNnc3RyICJtb3VudDogJXMgdmVycsOgIG1vbnRhdG8gaW4gYmFzZSBhICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAibW91bnQ6IG5vIExBQkVMPSwgbm8gVVVJRD0sIGdvaW5nIHRvIG1vdW50ICVzIGJ5IHBhdGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzIHZlcnLDoCBtb250YXRvIGluIGJhc2UgYWxsJ2V0aWNoZXR0YVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBjYW5ub3QgZm9yazogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IGltcG9zc2liaWxlIGVmZmV0dHVhcmUgaWwgZm9ya1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiB3YWl0cGlkOiAlc1xuIgorI34gbXNnc3RyICIlczogaW1wb3NzaWJpbGUgYXByaXJlOiAlc1xuIgorCisjfiBtc2dpZCAiJXM6IGNhbm5vdCBzdGF0ICVzOiAlc1xuIgorI34gbXNnc3RyICIlczogaW1wb3NzaWJpbGUgZWZmZXR0dWFyZSBzdGF0IGRpICVzOiAlc1xuIgorCisjfiBtc2dpZCAiY291bGQgbm90IHVtb3VudCAlcyAtIHRyeWluZyAlcyBpbnN0ZWFkXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJpbXBvc3NpYmlsZSBlc2VndWlyZSB1bW91bnQgZGkgJXMgLSBhbCBzdW8gcG9zdG8gw6ggaW4gY29yc28gdW4gdGVudGF0aXZvICIKKyN+ICJjb24gJXNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIG9wZW5fdHR5XG4iCisjfiBtc2dzdHIgImNoaWFtYXRhIGEgb3Blbl90dHkgaW4gY29yc29cbiIKKworI34gbXNnaWQgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKyN+IG1zZ3N0ciAiY2hpYW1hdGEgYSB0ZXJtaW9faW5pdCBpbiBjb3Jzb1xuIgorCisjfiBtc2dpZCAid3JpdGluZyBpbml0IHN0cmluZ1xuIgorI34gbXNnc3RyICJzY3JpdHR1cmEgaW5pdCBzdHJpbmcgaW4gY29yc29cbiIKKworI34gbXNnaWQgImJlZm9yZSBhdXRvYmF1ZFxuIgorI34gbXNnc3RyICJwcmltYSBkaSBhdXRvYmF1ZFxuIgorCisjfiBtc2dpZCAid2FpdGluZyBmb3IgY3ItbGZcbiIKKyN+IG1zZ3N0ciAiaW4gYXR0ZXNhIGRpIGNyLWxmXG4iCisKKyN+IG1zZ2lkICJyZWFkaW5nIGxvZ2luIG5hbWVcbiIKKyN+IG1zZ3N0ciAibGV0dHVyYSBkZWwgbm9tZSBkaSBsb2dpblxuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VhcmdzXG4iCisjfiBtc2dzdHIgImV4aXRpbmcgcGFyc2VhcmdzXG4iCisKKyN+IG1zZ2lkICJlbnRlcmVkIHBhcnNlX3NwZWVkc1xuIgorI34gbXNnc3RyICJlbnRlcmVkIHBhcnNlX3NwZWVkc1xuIgorCisjfiBtc2dpZCAiZXhpdGluZyBwYXJzZXNwZWVkc1xuIgorI34gbXNnc3RyICJ1c2NpdGEgZGEgcGFyc2VzcGVlZHNcbiIKKworI34gbXNnaWQgIm9wZW4oMilcbiIKKyN+IG1zZ3N0ciAib3BlbigyKVxuIgorCisjfiBtc2dpZCAiZHVwaW5nXG4iCisjfiBtc2dzdHIgImR1cGluZ1xuIgorCisjfiBtc2dpZCAidGVybV9pbyAyXG4iCisjfiBtc2dzdHIgInRlcm1faW8gMlxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgImNoZm46IFBBTSBGYWlsdXJlLCBhYm9ydGluZzogJXNcbiIKKyN+IG1zZ3N0ciAibG9naW46IGVycm9yZSBQQU0sIGludGVycnV6aW9uZSBpbiBjb3JzbzogJXNcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzXG4iCisjfiBtc2dzdHIgIkF0dGVuemlvbmU6IFwiJXNcIiBub24gw6ggZWxlbmNhdG8gaW4gL2V0Yy9zaGVsbHNcbiIKKworI34gbXNnaWQgIkNhbid0IHJlYWQgJXMsIGV4aXRpbmcuIgorI34gbXNnc3RyICJJbXBvc3NpYmlsZSBsZWdnZXJlICVzLCB1c2NpdGEuIgorCisjfiBtc2dpZCAibG9naW46IFBBTSBGYWlsdXJlLCBhYm9ydGluZzogJXNcbiIKKyN+IG1zZ3N0ciAibG9naW46IGVycm9yZSBQQU0sIGludGVycnV6aW9uZSBpbiBjb3JzbzogJXNcbiIKKworI34gbXNnaWQgInRpbWVvdXQgPSAlZCwgcXVpZXQgPSAlZCwgcmVib290ID0gJWRcbiIKKyN+IG1zZ3N0ciAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorCisjfiBtc2dpZCAiY291bGRuJ3QgcmVhZCAlcywgYW5kIGNhbm5vdCBpb2N0bCBkdW1wXG4iCisjfiBtc2dzdHIgImltcG9zc2liaWxlIGxlZ2dlcmUgJXMgIGUgaW1wb3NzaWJpbGUgZXNlZ3VpcmUgaW9jdGwgc3VsIGR1bXBcbiIKKworI34gbXNnaWQgIiwgb2Zmc2V0ICVsbGQiCisjfiBtc2dzdHIgIiwgb2Zmc2V0ICVsbGQiCisKKyN+IG1zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGRldmljZSAvZGV2L2xvb3AjIgorI34gbXNnc3RyICIlczogaW1wb3NzaWJpbGUgdHJvdmFyZSBhbGN1biBkZXZpY2UgL2Rldi9sb29wIyIKKworI34gbXNnaWQgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDogZXNlY3V6aW9uZSBpbiBiYWNrZ3JvdW5kIGRpIFwiJXNcIlxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdpdmluZyB1cCBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHRlcm1pbmEgXCIlc1wiXG4iCisKKyMgRklYTUUKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAiVXNvOiAlcyBbLWhWXVxuIgorI34gIiAgICAgJXMgLWEgWy1lXSBbLXZdXG4iCisjfiAiICAgICAlcyBbLXZdIFstcCBwcmlvcml0w6BdIHNwZWNpYWxlfExBQkVMPXZvbHVtZV9uYW1lIC4uLlxuIgorI34gIiAgICAgJXMgWy1zXVxuIgorCisjIEZJWE1FCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlVzbzogJXMgWy1oVl1cbiIKKyN+ICIgICAgICVzIC1hIFstdl1cbiIKKyN+ICIgICAgICVzIFstdl0gc3BlY2lhbGUgLi4uXG4iCisKKyN+IG1zZ2lkICIlczogY2Fubm90IGNhbm9uaWNhbGl6ZSAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IGltcG9zc2liaWxlIHJlbmRlcmUgY2Fub25pY28gJXM6ICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6IHJlbmljZSBwcmlvcml0eSBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSB1c2VycyBdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJVc286IHJlbmljZSBwcmlvcml0w6AgWyBbIC1wIF0gcGlkcyBdIFsgWyAtZyBdIHBncnBzIF0gWyBbIC11IF0gdXRlbnRpIF1cbiIKKworI34gbXNnaWQgIlVua25vd24gb3B0aW9uIGAlYycgaWdub3JlZCIKKyN+IG1zZ3N0ciAiSWdub3JhdGEgbCdvcHppb25lIHNjb25vc2NpdXRhIFwiJWNcIiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorI34gbXNnc3RyICJgJXMnOiBkaXJlY3RvcnkgZGFubmVnZ2lhdGE6ICcuJyBub24gw6ggbGEgcHJpbWFcbiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCisjfiBtc2dzdHIgImAlcyc6IGRpcmVjdG9yeSBkYW5uZWdnaWF0YTogJy4uJyBub24gw6ggbGEgc2Vjb25kYVxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgZXJyb3IuIgorI34gbXNnc3RyICJFcnJvcmUgcGFzc3dvcmQuIgorCisjfiBtc2dpZCAiQXNzdW1pbmcgcGFnZXMgb2Ygc2l6ZSAlZCAobm90ICVkKVxuIgorI34gbXNnc3RyICJTaSBhc3N1bWUgY2hlIGxlIHBhZ2luZSBzaWFubyBkaSBkaW1lbnNpb25lICVkIChub24gJWQpXG4iCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZvdW5kIGEgJXMlcyVzXG4iCisjfiBtc2dzdHIgIkwnYXV0b2NvbmZpZ3VyYXppb25lIGhhIHRyb3ZhdG8gdW4gJXMlcyVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRHJpdmUgdHlwZVxuIgorI34gIiAgID8gICBhdXRvIGNvbmZpZ3VyZVxuIgorI34gIiAgIDAgICBjdXN0b20gKHdpdGggaGFyZHdhcmUgZGV0ZWN0ZWQgZGVmYXVsdHMpIgorI34gbXNnc3RyICIiCisjfiAiVGlwbyBkaSB1bml0w6BcbiIKKyN+ICIgICA/ICAgYXV0byBjb25maWd1cmVcbiIKKyN+ICIgICAwICAgY3VzdG9tIChjb24gbGUgaW1wb3N0YXppb25pIHByZWRlZmluaXRlIHJpbGV2YXRlIGRlbGwnaGFyZHdhcmUpIgorCisjfiBtc2dpZCAiU2VsZWN0IHR5cGUgKD8gZm9yIGF1dG8sIDAgZm9yIGN1c3RvbSk6ICIKKyN+IG1zZ3N0ciAiU2VsZXppb25lIHRpcG8gKD8gcGVyIGF1dG8sIDAgcGVyIGN1c3RvbSk6ICIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZmFpbGVkLlxuIgorI34gbXNnc3RyICJBdXRvY29uZmlndXJhemlvbmUgbm9uIHJpdXNjaXRhLlxuIgorCisjfiBtc2dpZCAiQWx0ZXJuYXRlIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiQ2lsaW5kcmkgYWx0ZXJuYXRpdmkiCisKKyN+IG1zZ2lkICJQaHlzaWNhbCBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIkNpbGluZHJpIGZpc2ljaSIKKworI34gbXNnaWQgIllvdSBtYXkgY2hhbmdlIGFsbCB0aGUgZGlzayBwYXJhbXMgZnJvbSB0aGUgeCBtZW51IgorI34gbXNnc3RyICLDiCBwb3NzaWJpbGUgbW9kaWZpY2FyZSB0dXR0aSBpIHBhcmFtZXRyaSBkaXNjbyBkYWwgbWVudSB4IgorCisjfiBtc2dpZCAiMyw1XCIgZmxvcHB5IgorI34gbXNnc3RyICJmbG9wcHkgZGEgMyw1XCIiCisKKyN+IG1zZ2lkICJMaW51eCBjdXN0b20iCisjfiBtc2dzdHIgIkxpbnV4IGN1c3RvbSIKKworI34gbXNnaWQgIiVzIGZyb20gdXRpbC1saW51eC0lc1xuIgorI34gbXNnc3RyICIlcyBkYSB1dGlsLWxpbnV4LSVzXG4iCisKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJXMgZGEgJXMlc1xuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiB0aGUgbGFiZWwgJXMgb2NjdXJzIG9uIGJvdGggJXMgYW5kICVzXG4iCisjfiBtc2dzdHIgIiVzOiBlcnJvcmU6IGwnZXRpY2hldHRhICVzIGFwcGFyZSBzaWEgc3UgJXMgY2hlIHN1ICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiJXM6IGNvdWxkIG5vdCBvcGVuICVzLCBzbyBVVUlEIGFuZCBMQUJFTCBjb252ZXJzaW9uIGNhbm5vdCBiZSBkb25lLlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6IGltcG9zc2liaWxlIGFwcmlyZSAlcywgbGEgY29udmVyc2lvbmUgZGkgVVVJRCBlIEVUSUNIRVRUQSBub24gcHXDslxuIgorI34gIiAgICBlc3NlcmUgZWZmZXR0dWF0YS5cbiIKKworI34gbXNnaWQgIiVzOiBiYWQgVVVJRCIKKyN+IG1zZ3N0ciAiJXM6IFVVSUQgbm9uIHZhbGlkbyIKKworI34gbXNnaWQgIm1vdW50OiBtb3VudGluZyAlc1xuIgorI34gbXNnc3RyICJtb3VudDogbW91bnQgZGkgJXMgaW4gY29yc29cbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW5ub3QgZmluZCAlcyBpbiAlcyIKKyN+IG1zZ3N0ciAibW91bnQ6IGltcG9zc2liaWxlIHRyb3ZhcmUgJXMgaW4gJXMiCisKKyN+IG1zZ2lkICJtb3VudDogZXJyb3Igd2hpbGUgZ3Vlc3NpbmcgZmlsZXN5c3RlbSB0eXBlXG4iCisjfiBtc2dzdHIgIm1vdW50OiBlcnJvcmUgdGVudGFuZG8gZGkgaW5kb3ZpbmFyZSBpbCB0aXBvIGRpIGZpbGVzeXN0ZW1cbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIGhvc3Q6ZGlyIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiBhcmdvbWVudG8gaG9zdDpkaXIgZWNjZXNzaXZhbWVudGUgbHVuZ29cbiIKKworI34gbXNnaWQgIm1vdW50OiB3YXJuaW5nOiBtdWx0aXBsZSBob3N0bmFtZXMgbm90IHN1cHBvcnRlZFxuIgorI34gbXNnc3RyICJtb3VudDogYXR0ZW56aW9uZTpub21pIGhvc3QgbXVsdGlwbGkgbm9uIHN1cHBvcnRhdGlcbiIKKworI34gbXNnaWQgIm1vdW50OiBkaXJlY3RvcnkgdG8gbW91bnQgbm90IGluIGhvc3Q6ZGlyIGZvcm1hdFxuIgorI34gbXNnc3RyICJtb3VudDogbGEgZGlyZWN0b3J5IGRhIG1vbnRhcmUgbm9uIMOoIG5lbGwnaG9zdDogZm9ybWF0byBkaXJcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGltcG9zc2liaWxlIG90dGVuZXJlIGwnaW5kaXJpenpvIGRpICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG90dGVudXRvIGhwLT5oX2xlbmd0aCBub24gdmFsaWRvXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBvcHRpb24gYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGFyZ29tZW50byBkZWxsJ29wemlvbmUgZWNjZXNzaXZhbWVudGUgbHVuZ29cbiIKKworI34gbXNnaWQgIldhcm5pbmc6IFVucmVjb2duaXplZCBwcm90bz0gb3B0aW9uLlxuIgorI34gbXNnc3RyICJBdHRlbnppb25lOiBPcHppb25lIHByb3RvPSBub24gcmljb25vc2NpdXRhLlxuIgorCisjfiBtc2dpZCAiV2FybmluZzogT3B0aW9uIG5hbWxlbiBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICJBdHRlbnppb25lOiBMJ29wemlvbmUgbmFtbGVuIG5vbiDDqCBnZXN0aXRhLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgcGFyYW1ldGVyOiAlcz0lZFxuIgorI34gbXNnc3RyICJwYXJhbWV0cm8gZGkgbmZzIG1vdW50IHNjb25vc2NpdXRvOiAlcz0lZFxuIgorCisjfiBtc2dpZCAiV2FybmluZzogb3B0aW9uIG5vbG9jayBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICJBdHRlbnppb25lOiBsJ29wemlvbmUgbm9sb2NrIG5vbiDDqCBnZXN0aXRhLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgb3B0aW9uOiAlcyVzXG4iCisjfiBtc2dzdHIgIm9wemlvbmUgZGkgbmZzIG1vdW50IHNjb25vc2NpdXRhOiAlcyVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGg/XG4iCisjfiBtc2dzdHIgIm1vdW50OiBvdHRlbnV0byB1biBocC0+aF9sZW5ndGggbm9uIHZhbGlkbz9cbiIKKworI34gbXNnaWQgIm5mcyBiaW5kcmVzdnBvcnQiCisjfiBtc2dzdHIgIm5mcyBiaW5kcmVzdnBvcnQiCisKKyN+IG1zZ2lkICJ1c2VkIHBvcnRtYXBwZXIgdG8gZmluZCBORlMgcG9ydFxuIgorI34gbXNnc3RyICJ1dGlsaXp6YXRvIGlsIHBvcnRtYXBwZXIgcGVyIHRyb3ZhcmUgbGEgcG9ydGEgTkZTXG4iCisKKyN+IG1zZ2lkICJ1c2luZyBwb3J0ICVkIGZvciBuZnMgZGVhbW9uXG4iCisjfiBtc2dzdHIgInV0aWxpenpvIGRlbGxhIHBvcnRhICVkIHBlciBpbCBkZW1vbmUgbmZzXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBzdGF0dXMgcmV0dXJuIHZhbHVlOiAlZCIKKyN+IG1zZ3N0ciAidmFsb3JlIHJpcG9ydGF0byBkaSBzdGF0byBuZnMgc2Nvbm9zY2l1dG86ICVkIgorCisjfiBtc2dpZCAiaG9zdDogJXMsIGRpcmVjdG9yeTogJXNcbiIKKyN+IG1zZ3N0ciAiaG9zdDogJXMsIGRpcmVjdG9yeTogJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgInVtb3VudDogaW1wb3NzaWJpbGUgb3R0ZW5lcmUgbCdpbmRpcml6em8gZGkgJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogZ290IGJhZCBob3N0cC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiBvdHRlbnV0byBob3N0cC0+aF9sZW5ndGggbm9uIHZhbGlkb1xuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1iYWQgcGF0aCBsZW5ndGhcbiIKKyN+IG1zZ3N0ciAiJXM6IGNyYW1mcyBpbnZhbGlkbyAtLSBsdW5naGV6emEgZGVsIHBlcmNvcnNvIG5vbiB2YWxpZGFcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tY3JjIGVycm9yXG4iCisjfiBtc2dzdHIgIiVzOiBjcmFtZnMgbm9uIHZhbGlkbyAtLSBlcnJvcmUgQ1JDXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWJhZCBzdXBlcmJsb2NrXG4iCisjfiBtc2dzdHIgIiVzOiBjcmFtZnMgbm9uIHZhbGlkbyAtLSBzdXBlcmJsb2NjbyBkYW5uZWdnaWF0b1xuIgorCisjfiBtc2dpZCAiU3ludGF4IGVycm9yOiAnJXMnXG4iCisjfiBtc2dzdHIgIkVycm9yZSBkaSBzaW50YXNzaTogJyVzJ1xuIgorCisjfiBtc2dpZCAiTm8gc3VjaCBwYXJhbWV0ZXIgc2V0OiAnJXMnXG4iCisjfiBtc2dzdHIgIlBhcmFtZXRybyBub24gaW1wb3N0YXRvOiAnJXMnXG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1wIF0gZGV2IG5hbWVcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtcCBdIGRldiBub21lXG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1jIHwgLXkgfCAtbiB8IC1kIF0gZGV2XG4iCisjfiBtc2dzdHIgIiAgICVzIFsgLWMgfCAteSB8IC1uIHwgLWQgXSBkaXNwXG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1jIHwgLXkgfCAtbiBdIGRldlxuIgorI34gbXNnc3RyICIgICAlcyBbIC1jIHwgLXkgfCAtbiBdIGRpc3BcbiIKKworI34gbXNnaWQgInZlcnNpb24iCisjfiBtc2dzdHIgInZlcnNpb25lIgorCisjfiBtc2dpZCAiY291bGRuJ3Qgb3BlbiAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgIiBpbXBvc3NpYmlsZSBhcHJpcmUgL2Rldi91cmFuZG9tIgorCisjfiBtc2dpZCAiY291bGRuJ3QgcmVhZCByYW5kb20gZGF0YSBmcm9tIC9kZXYvdXJhbmRvbSIKKyN+IG1zZ3N0ciAiaW1wb3NzaWJpbGUgbGVnZ2VyZSBkYXRpIGNhc3VhbGkgZGEgL2Rldi91cmFuZG9tIgorCisjfiBtc2dpZCAiY2FuJ3Qgc3RhdCglcykiCisjfiBtc2dzdHIgImltcG9zc2liaWxlIGVzZWd1aXJlIHN0YXQoJXMpIgorCisjfiBtc2dpZCAiY2FuJ3QgcmVhZCBkYXRhIGZyb20gJXMiCisjfiBtc2dzdHIgImltcG9zc2liaWxlIGxlZ2dlcmUgaSBkYXRpIGRhICVzIgorCisjfiBtc2dpZCAiIgorI34gIlRvbyBtYW55IHVzZXJzIGxvZ2dlZCBvbiBhbHJlYWR5LlxuIgorI34gIlRyeSBhZ2FpbiBsYXRlci5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlRyb3BwaSB1dGVudGkgZ2nDoCBjb2xsZWdhdGkuXG4iCisjfiAiUmlwcm92YXJlIHN1Y2Nlc3NpdmFtZW50ZS5cbiIKKworI34gbXNnaWQgIllvdSBoYXZlIHRvbyBtYW55IHByb2Nlc3NlcyBydW5uaW5nLlxuIgorI34gbXNnc3RyICJDaSBzb25vIHRyb3BwaSBwcm9jZXNzaSBpbiBlc2VjdXppb25lLlxuIgorCisjfiBtc2dpZCAiVGhlIHBhc3N3b3JkIG11c3QgaGF2ZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMsIHRyeSBhZ2Fpbi5cbiIKKyN+IG1zZ3N0ciAiTGEgcGFzc3dvcmQgZGV2ZSBhdmVyZSBhbG1lbm8gNiBjYXJhdHRlcmksIHJpcHJvdmFyZS5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJUaGUgcGFzc3dvcmQgbXVzdCBjb250YWluIGNoYXJhY3RlcnMgb3V0IG9mIHR3byBvZiB0aGUgZm9sbG93aW5nXG4iCisjfiAiY2xhc3NlczogIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgbm9uIGFscGhhbnVtZXJpY1xuIgorI34gImNoYXJhY3RlcnMuIFNlZSBwYXNzd2QoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJMYSBwYXNzd29yZCBkZXZlIGNvbnRlbmVyZSBjYXJhdHRlcmkgdHJhdHRpIGRhIGR1ZSBkZWxsZSBzZWd1ZW50aSAiCisjfiAiY2xhc3NpOlxuIgorI34gImxldHRlcmUgbWFpdXNjb2xlIGUgbWludXNjb2xlLCBudW1lcmkgZSBjYXJhdHRlcmkgbm9uIGFsZmFudW1lcmljaS5cbiIKKyN+ICJDb25zdWx0YXJlIHBhc3N3ZCgxKSBwZXIgbWFnZ2lvcmkgaW5mb3JtYXppb25pLlxuIgorCisjfiBtc2dpZCAiWW91IGNhbm5vdCByZXVzZSB0aGUgb2xkIHBhc3N3b3JkLlxuIgorI34gbXNnc3RyICJJbXBvc3NpYmlsZSByaXV0aWxpenphcmUgbGEgdmVjY2hpYSBwYXNzd29yZC5cbiIKKworI34gbXNnaWQgIlBsZWFzZSBkb24ndCB1c2Ugc29tZXRoaW5nIGxpa2UgeW91ciB1c2VybmFtZSBhcyBwYXNzd29yZCFcbiIKKyN+IG1zZ3N0ciAiIgorI34gIk5vbiB1dGlsaXp6YXJlIGNvbWUgcGFzc3dvcmQgcXVhbGNvc2EgY2hlIGFzc29taWdsaSBhbCBwcm9wcmlvIG5vbWUgIgorI34gInV0ZW50ZSFcbiIKKworI34gbXNnaWQgIlBsZWFzZSBkb24ndCB1c2Ugc29tZXRoaW5nIGxpa2UgeW91ciByZWFsbmFtZSBhcyBwYXNzd29yZCFcbiIKKyN+IG1zZ3N0ciAiIgorI34gIk5vbiB1dGlsaXp6YXJlIGNvbWUgcGFzc3dvcmQgcXVhbGNvc2EgY2hlIGFzc29taWdsaSBhbCBwcm9wcmlvIHZlcm8gIgorI34gIm5vbWUhXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFt1c2VybmFtZSBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICJVc286IHBhc3N3ZCBbbm9tZSB1dGVudGUgW3Bhc3N3b3JkXV1cbiIKKworI34gbXNnaWQgIk9ubHkgcm9vdCBtYXkgdXNlIHRoZSBvbmUgYW5kIHR3byBhcmd1bWVudCBmb3Jtcy5cbiIKKyN+IG1zZ3N0ciAiU29sbyByb290IHB1w7IgdXRpbGl6emFyZSBsZSBmb3JtZSBhIHVubyBlIGR1ZSBhcmdvbWVudGlcbiIKKworI34gbXNnaWQgIlVzYWdlOiBwYXNzd2QgWy1mb3FzdlZdIFt1c2VyIFtwYXNzd29yZF1dXG4iCisjfiBtc2dzdHIgIlVzbzogcGFzc3dkIFstZm9xc3ZWXSBbdXRlbnRlIFtwYXNzd29yZF1dXG4iCisKKyN+IG1zZ2lkICJDYW4ndCBleGVjICVzOiAlc1xuIgorI34gbXNnc3RyICJFeGVjICVzIGltcG9zc2liaWxlOiAlc1xuIgorCisjfiBtc2dpZCAiQ2Fubm90IGZpbmQgbG9naW4gbmFtZSIKKyN+IG1zZ3N0ciAiSW1wb3NzaWJpbGUgdHJvdmFyZSBpbCBub21lIGRpIGxvZ2luIgorCisjfiBtc2dpZCAiT25seSByb290IGNhbiBjaGFuZ2UgdGhlIHBhc3N3b3JkIGZvciBvdGhlcnMuXG4iCisjfiBtc2dzdHIgIlNvbG8gcm9vdCBwdcOyIG1vZGlmaWNhcmUgbGEgcGFzc3dvcmQgcGVyIGdsaSBhbHRyaS5cbiIKKworI34gbXNnaWQgIkNhbid0IGZpbmQgdXNlcm5hbWUgYW55d2hlcmUuIElzIGAlcycgcmVhbGx5IGEgdXNlcj8iCisjfiBtc2dzdHIgIkltcG9zc2liaWxlIHRyb3ZhcmUgaWwgbm9tZSB1dGVudGUuYCVzJyDDqCBkYXZ2ZXJvIHVuIHV0ZW50ZT8iCisKKyN+IG1zZ2lkICJTb3JyeSwgSSBjYW4gb25seSBjaGFuZ2UgbG9jYWwgcGFzc3dvcmRzLiBVc2UgeXBwYXNzd2QgaW5zdGVhZC4iCisjfiBtc2dzdHIgIiIKKyN+ICJQb3NzbyBtb2RpZmljYXJlIHNvbG8gbGUgcGFzc3dvcmQgbG9jYWxpLiBVdGlsaXp6YXJlIGludmVjZSB5cHBhc3N3ZC4iCisKKyN+IG1zZ2lkICJVSUQgYW5kIHVzZXJuYW1lIGRvZXMgbm90IG1hdGNoLCBpbXBvc3RlciEiCisjfiBtc2dzdHIgIlVJRCBlIG5vbWUgdXRlbnRlIG5vbiBjb21iYWNpYW5vLCBpbXBvc3RvcmUhIgorCisjfiBtc2dpZCAiQ2hhbmdpbmcgcGFzc3dvcmQgZm9yICVzXG4iCisjfiBtc2dzdHIgIk1vZGlmaWNhIHBhc3N3b3JkIHBlciAlc1xuIgorCisjfiBtc2dpZCAiRW50ZXIgb2xkIHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIkltbWV0dGVyZSB2ZWNjaGlhIHBhc3N3b3JkOiAiCisKKyN+IG1zZ2lkICJJbGxlZ2FsIHBhc3N3b3JkLCBpbXBvc3Rlci4iCisjfiBtc2dzdHIgIlBhc3N3b3JkIG5vbiB2YWxpZGEsIGltcG9zdG9yZS4iCisKKyN+IG1zZ2lkICJFbnRlciBuZXcgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiSW1tZXR0ZXJlIGxhIG51b3ZhIHBhc3N3b3JkOiAiCisKKyN+IG1zZ2lkICJQYXNzd29yZCBub3QgY2hhbmdlZC4iCisjfiBtc2dzdHIgIlBhc3N3b3JkIG5vbiBtb2RpZmljYXRhLiIKKworI34gbXNnaWQgIlJlLXR5cGUgbmV3IHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIlJpZGlnaXRhcmUgbGEgbnVvdmEgcGFzc3dvcmQ6ICIKKworI34gbXNnaWQgIllvdSBtaXNzcGVsbGVkIGl0LiBQYXNzd29yZCBub3QgY2hhbmdlZC4iCisjfiBtc2dzdHIgIk9ydG9ncmFmaWEgc2JhZ2xpYXRhLiBMYSBwYXNzd29yZCBub24gw6ggc3RhdGEgbW9kaWZpY2F0YS4iCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkLCB1c2VyICVzIgorI34gbXNnc3RyICJwYXNzd29yZCBtb2RpZmljYXRhLCB1dGVudGUgJXMiCisKKyN+IG1zZ2lkICJST09UIFBBU1NXT1JEIENIQU5HRUQiCisjfiBtc2dzdHIgIlBBU1NXT1JEIFJPT1QgTU9ESUZJQ0FUQSIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQgYnkgcm9vdCwgdXNlciAlcyIKKyN+IG1zZ3N0ciAicGFzc3dvcmQgbW9kaWZpY2F0YSBkYSByb290LCB1dGVudGUgJXMiCisKKyN+IG1zZ2lkICJjYWxsaW5nIHNldHB3bmFtIHRvIHNldCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAiY2hpYW1hdGEgZGkgc2V0cHduYW0gcGVyIGltcG9zdGFyZSBsYSBwYXNzd29yZC5cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIlBhc3N3b3JkICpOT04qIG1vZGlmaWNhdGEuIFJpcHJvdmFyZSBzdWNjZXNzaXZhbWVudGUuXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICJQYXNzd29yZCBtb2RpZmljYXRhLlxuIgorCisjfiBtc2dpZCAibW91bnQ6IHRoaXMgdmVyc2lvbiB3YXMgY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciB0aGUgdHlwZSBgbmZzJyIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBxdWVzdGEgdmVyc2lvbmUgw6ggc3RhdGEgY29tcGlsYXRhIHNlbnphIHN1cHBvcnRvIHBlciBpbCB0aXBvICduZnMnIgorCisjfiBtc2dpZCAiZmxvY2s6IHVua25vd24gb3B0aW9uLCBhYm9ydGluZy5cbiIKKyN+IG1zZ3N0ciAiZmxvY2s6IG9wemlvbmUgc2Nvbm9zY2l1dGEsIGludGVycnV6aW9uZS5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZSBmbG9jayBbLS1zaGFyZWQgfCAtLXRpbWVvdXQ9c2Vjb25kc10gZmlsZW5hbWUgY29tbWFuZCB7YXJnIGFyZy4uLn1cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlVzbzogZmxvY2sgWy0tc2hhcmVkIHwgLS10aW1lb3V0PXNlY29uZGldIG5vbWVmaWxlIGNvbWFuZG8ge2FyZyBhcmcuLi59XG4iCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9qYS5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9qYS5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJmNjMwNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2phLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9qYS5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL2phLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwMmVhMmYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9qYS5wbwpAQCAtMCwwICsxLDEyODQ4IEBACisjIEphcGFuZXNlIG1lc3NhZ2VzIGZvciB1dGlsLWxpbnV4LW5nCisjIENvcHlyaWdodCAoQykgMjAwMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZS4KKyMgICBpbmNsdWRlcyBjZmRpc2sgb3JpZ2luYWwgdHJhbnNsYXRpb24gYnkKKyMgICAgICAgICBIaWRlbm9idSBOQUJFVEFOSSA8bmFiZXRhbmlAa2Vybi5waHlzLnNjaS5vc2FrYS11LmFjLmpwPgorIyBEYWlzdWtlIFlhbWFzaGl0YSA8eWFtYWRAbWIuaW5mb3dlYi5uZS5qcD4sIDE5OTktMjAwMS4KKyMgTWFrb3RvIEthdG8gPG1ha290by5rdEBnbWFpbC5jb20+LCAyMDA5LTIwMTAuCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4LW5nIDIuMTcuMS1yYzFcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTAtMDItMjYgMDA6MzMrMDkwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogTWFrb3RvIEthdG8gPG1ha290by5rdEBnbWFpbC5jb20+XG4iCisiTGFuZ3VhZ2UtVGVhbTogSmFwYW5lc2UgPHRyYW5zbGF0aW9uLXRlYW0tamFAbGlzdHMuc291cmNlZm9yZ2UubmV0PlxuIgorIk1JTUUtVmVyc2lvbjogMS4wXG4iCisiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XG4iCisiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgorIlgtR2VuZXJhdG9yOiBMb2thbGl6ZSAwLjNcbiIKKyJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTE7IHBsdXJhbD0wO1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NjMKK21zZ2lkICJzZXQgcmVhZC1vbmx5IgorbXNnc3RyICLoqq3jgb/ovrzjgb/lsILnlKjjgavoqK3lrpoiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3MAorbXNnaWQgInNldCByZWFkLXdyaXRlIgorbXNnc3RyICLoqq3jgb/mm7jjgY3lj6/og73jgavoqK3lrpoiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3NgorbXNnaWQgImdldCByZWFkLW9ubHkiCittc2dzdHIgIuiqreOBv+abuOOBjeWPr+iDveOBi+OBqeOBhuOBi+OCkuODhuOCueODiCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAi6KuW55CG44OW44Ot44OD44KvICjjgrvjgq/jgr8pIOOCteOCpOOCuuOCkuWPluW+lyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4Cittc2dpZCAiZ2V0IHBoeXNpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgIueJqeeQhuODluODreODg+OCryAo44K744Kv44K/KSDjgrXjgqTjgrrjgpLlj5blvpciCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo5NAorbXNnaWQgImdldCBtaW5pbXVtIEkvTyBzaXplIgorbXNnc3RyICLmnIDlsI/jga5JL0/jgrXjgqTjgrrjgpLlj5blvpciCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKK21zZ2lkICJnZXQgb3B0aW1hbCBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2CisjLCBmdXp6eQorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICLkuI3mraPjgapp44OO44O844OJ44Kq44OV44K744OD44OIIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTEyCisjLCBmdXp6eQorbXNnaWQgImdldCBtYXggc2VjdG9ycyBwZXIgcmVxdWVzdCIKK21zZ3N0ciAi44K344Oq44Oz44OA5q+O44Gu54m55Yil44Gq44K744Kv44K/IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTE4Cittc2dpZCAiZ2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAi44OW44Ot44OD44Kv44K144Kk44K644KS5Y+W5b6XIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAi44OW44Ot44OD44Kv44K144Kk44K644KS6Kit5a6aIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgIjMyLWJpdOOCu+OCr+OCv+OCq+OCpuODs+ODiOOCkuWPluW+l+OBmeOCiyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICLjgrXjgqTjgrogKOWNmOS9jTrjg5DjgqTjg4gpIOOCkuWPluW+lyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgInJlYWRhaGVhZCDlgKTjgpLoqK3lrpoiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTAKK21zZ2lkICJnZXQgcmVhZGFoZWFkIgorbXNnc3RyICJyZWFkYWhlYWQg5YCk44KS5Y+W5b6XIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTU3Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICLjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6AgcmVhZGFoZWFkIOWApOOCkuioreWumiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2MworbXNnaWQgImdldCBmaWxlc3lzdGVtIHJlYWRhaGVhZCIKK21zZ3N0ciAi44OV44Kh44Kk44Or44K344K544OG44OgIHJlYWRhaGVhZCDlgKTjgpLlj5blvpciCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjcKK21zZ2lkICJmbHVzaCBidWZmZXJzIgorbXNnc3RyICLjg5Djg4Pjg5XjgqHjgpLjg5Xjg6njg4Pjgrfjg6XjgZnjgosiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjg4bjg7zjg5bjg6vjgpLlho3oqq3jgb/ovrzjgb8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6XG4iCittc2dzdHIgIuS9v+OBhOaWuTpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFvjg4fjg5DjgqTjgrldXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyBbLXZ8LXFdIOOCs+ODnuODs+ODiSDjg4fjg5DjgqTjgrlcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJBdmFpbGFibGUgY29tbWFuZHM6XG4iCittc2dzdHIgIuWIqeeUqOWPr+iDveOCs+ODnuODs+ODiTpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NworbXNnaWQgImdldCBzaXplIGluIDUxMi1ieXRlIHNlY3RvcnMiCittc2dzdHIgIjUxMuODkOOCpOODiOOCu+OCr+OCv+OBruOCteOCpOOCuuOCkuWPluW+lyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBjb21tYW5kOiAlc1xuIgorbXNnc3RyICIlczog5LiN5piO44Gq44Kz44Oe44Oz44OJOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIOOBr+W8leaVsOOCkuimgeaxguOBl+OBvuOBmVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZhaWxlZC5cbiIKK21zZ3N0ciAiJXMg44Gv5aSx5pWX44GX44G+44GX44Gf44CCXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3VjY2VlZGVkLlxuIgorbXNnc3RyICIlcyDjgYzmiJDlip/jgZfjgb7jgZfjgZ/jgIJcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlczogJXMg44KS6ZaL44GR44G+44Gb44KTXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiAlcyDjgacgaW9jdGwg44Ko44Op44O8XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKK21zZ3N0ciAiUk8gICAgUkEgICBTU1ogICBCU1ogICDplovlp4vjgrvjgq/jgr8gICAgICAgICAg44K144Kk44K6IOODh+ODkOOCpOOCuVxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAi5L2/44GE5pa5OlxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJcdE5PVEU6IGVsdnR1bmUgb25seSB3b3JrcyB3aXRoIDIuNCBrZXJuZWxzXG4iCittc2dzdHIgIlx0Tk9URTogZWx2dHVuZeOBrzIuNOOCq+ODvOODjeODq+OBp+OBruOBv+WLleS9nOOBl+OBvuOBmVxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAi6Kej5p6Q44Ko44Op44O8XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJsb2NrZGV2aWNlLCB1c2UgLWggZm9yIGhlbHBcbiIKK21zZ3N0ciAiIgorIuODluODreODg+OCr+ODh+ODkOOCpOOCueOBjOimi+OBpOOBi+OCiuOBvuOBm+OCk+OAguODmOODq+ODl+OCkuihqOekuuOBmeOCi+OBn+OCgeOBq+OBr+OAgS1o44KS5L2/55So44GX44Gm44GP44GgIgorIuOBleOBhFxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImVsdnR1bmUgaXMgb25seSB1c2VmdWwgb24gb2xkZXIga2VybmVscztcbiIKKyJmb3IgMi42IHVzZSBJTyBzY2hlZHVsZXIgc3lzZnMgdHVuYWJsZXMgaW5zdGVhZC4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJlbHZ0dW5l44Gv5Y+k44GE44Kr44O844ON44Or5LiK44Gn44Gu44G/5pyJ55uK44Gq44KC44Gu44Gn44GZO1xuIgorIjIuNuOCq+ODvOODjeODq+OBp+OBr+OAgeabv+OCj+OCiuOBq0lP44K544Kx44K444Ol44O844Op44O844Guc3lzZnPntYznlLHjga7oqK3lrprlgKTjgpLkvb/jgYTjgb7jgZfjgociCisi44GGLi5cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcm1hdHRpbmcgLi4uICIKK21zZ3N0ciAi44OV44Kp44O844Oe44OD44OI44GX44G+44GZIC4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo0OSBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICLntYLkuoZcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlZlcmlmeWluZyAuLi4gIgorbXNnc3RyICLnhaflkIjjgZfjgb7jgZkgLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjcxCittc2dpZCAiUmVhZDogIgorbXNnc3RyICLoqq3ovrw6ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAi6Kqt6L6844G/5Lit44Gr5ZWP6aGM55m655Sf44CB44K344Oq44Oz44OAICVkLCAlZCDjga7nrYjjgafjgZnjgYwgJWQg44KS6Kqt6L6844G/44G+44GX44GfXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiYmFkIGRhdGEgaW4gY3lsICVkXG4iCisiQ29udGludWluZyAuLi4gIgorbXNnc3RyICIiCisi44K344Oq44Oz44OAICVkIOOBq+S4jeato+OBquODh+ODvOOCv1xuIgorIue2muOBkeOBvuOBmSAuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLW4gXSBkZXZpY2VcbiIKK21zZ3N0ciAi5L2/44GE5pa5OiAlcyBbIC1uIF0g44OH44OQ44Kk44K5XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMTggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4NAorIzogZGlzay11dGlscy9pc29zaXplLmM6MTgxIGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMTQgZGlzay11dGlscy9ta2ZzLmM6NTIKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4MTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTcyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ4NyBtaXNjLXV0aWxzL2RkYXRlLmM6MTc5IG1pc2MtdXRpbHMvcmVuYW1lLmM6NzkKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTQ3IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXMpXG4iCittc2dzdHIgIiVzICglcylcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIiVzOiDjg5bjg63jg4Pjgq/jg4fjg5DjgqTjgrnjgafjga/jgYLjgorjgb7jgZvjgpNcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAi54++5Zyo44Gu44OV44Kp44O844Oe44OD44OI44K/44Kk44OX44KS54m55a6a44Gn44GN44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgIiVz6Z2iLCAlZCDjg4jjg6njg4Pjgq8sICVkIOOCu+OCr+OCvy/jg4jjg6njg4Pjgq/jgILlkIjoqIjlrrnph48gJWQga0LjgIJcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIkRvdWJsZSIKK21zZ3N0ciAi5LihIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICLniYciCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiAlcyBbLWh2XSBbLXgg44OH44Kj44Os44Kv44OI44OqXSDjg5XjgqHjgqTjg6tcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisiIC12ICAgICAgICAgYmUgbW9yZSB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB0byB0ZXN0XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICJzdGF0IOOBjOWkseaVlzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIm9wZW4g44GM5aSx5pWXOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBmYWlsZWQ6IHVuYWJsZSB0byBkZXRlcm1pbmUgZGV2aWNlIHNpemU6ICVzIgorbXNnc3RyICJpb2N0bCDjgYzlpLHmlZc6IOODh+ODkOOCpOOCueOCteOCpOOCuuOCkuWPluW+l+OBp+OBjeOBvuOBm+OCkzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICLjg5bjg63jg4Pjgq/jg4fjg5DjgqTjgrnjgYvjg5XjgqHjgqTjg6vjgafjga/jgYLjgorjgb7jgZvjgpM6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgIuODleOCoeOCpOODq+OBrumVt+OBleOBjOefreOBmeOBjuOBvuOBmSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4OSBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTk3CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjU4IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBmYWlsZWQ6ICVzIgorbXNnc3RyICLoqq3jgb/ovrzjgb/jgavlpLHmlZfjgZfjgb7jgZfjgZ86ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjA3Cittc2dpZCAic3VwZXJibG9jayBtYWdpYyBub3QgZm91bmQiCittc2dzdHIgIuOCueODvOODkeODvOODluODreODg+OCr+OBruODnuOCuOODg+OCr+WApOOBjOimi+OBpOOBi+OCiuOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxNgorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIuOCteODneODvOODiOOBleOCjOOBquOBhOODleOCoeOCpOODq+OCt+OCueODhuODoOOBruapn+iDveOBp+OBmSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICJzdXBlcmJsb2NrIHNpemUgKCVkKSB0b28gc21hbGwiCittc2dzdHIgIuOCueODvOODkeODvOODluODreODg+OCr+OBruOCteOCpOOCuiAoJWQpIOOBjOWwkeOBquOBmeOBjuOBvuOBmSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyMworIywgZnV6enkKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgIuasoeOBruODleOCoeOCpOODqyAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgZXh0ZW5kcyBwYXN0IGVuZCBvZiBmaWxlc3lzdGVtXG4iCittc2dzdHIgIuitpuWRijog44OR44O844OG44Kj44K344On44OzICVzIOOBr+ODh+OCo+OCueOCr+OBrue1guOCiuOCkui2iuOBiOOBpuOBhOOBvuOBmVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIuitpuWRijog5Y+k44GEY3JhbWZz5b2i5byP44Gn44GZXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNDYKK21zZ2lkICJ1bmFibGUgdG8gdGVzdCBDUkM6IG9sZCBjcmFtZnMgZm9ybWF0IgorbXNnc3RyICJDUkPjgpLjg4bjgrnjg4jjgafjgY3jgb7jgZvjgpM6IOWPpOOBhGNyYW1mc+W9ouW8j+OBp+OBmSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3MiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzM5CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDc3IGxvZ2luLXV0aWxzL2NoZm4uYzo1MjkgbG9naW4tdXRpbHMvY2hzaC5jOjQzOQorIzogbWlzYy11dGlscy93aXBlZnMuYzoxNDEgc3lzLXV0aWxzL2N5dHVuZS5jOjMyMQorbXNnaWQgIm1hbGxvYyBmYWlsZWQiCittc2dzdHIgIm1hbGxvYyDjgavlpLHmlZciCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyOTcKK21zZ2lkICJjcmMgZXJyb3IiCittc2dzdHIgImNyY+OCqOODqeODvCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorbXNnaWQgInJvb3QgaW5vZGUgaXMgbm90IGRpcmVjdG9yeSIKK21zZ3N0ciAicm9vdCBpbm9kZSDjgYzjg4fjgqPjg6zjgq/jg4jjg6rjgafjga/jgYLjgorjgb7jgZvjgpMgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByb290IG9mZnNldCAoJWx1KSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mzg3Cittc2dpZCAiZGF0YSBibG9jayB0b28gbGFyZ2UiCittc2dzdHIgIuODh+ODvOOCv+ODluODreODg+OCr+OBjOWkp+OBjeOBmeOBjuOBvuOBmSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICIoJWQsICVkLCAlZCkg44Gn44GC44KL44G544GN44Gn44GZXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjMgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAi44K544O844OR44O844OW44Ot44OD44KvOiAlemQg44OQ44Kk44OIXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGZhaWxlZDogJXMiCittc2dzdHIgIuabuOOBjei+vOOBv+OBq+WkseaVl+OBl+OBvuOBl+OBnzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxjaG93biBmYWlsZWQ6ICVzIgorbXNnc3RyICLjg57jgqbjg7Pjg4jjgavlpLHmlZfjgZfjgb7jgZfjgZ8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiY2hvd24g44Gr5aSx5pWX44GX44G+44GX44GfOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXRpbWUgZmFpbGVkOiAlcyIKK21zZ3N0ciAi5LiN5q2j44Gq44K/44Kk44Og44Ki44Km44OI5YCkOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgIm1rZGly44GM5aSx5pWXOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICLjg5XjgqHjgqTjg6vlkI3jga7plbfjgZXjgYzjgrzjg63jgafjgZkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTQKK21zZ2lkICJiYWQgZmlsZW5hbWUgbGVuZ3RoIgorbXNnc3RyICLmgqrjgYTjg5XjgqHjgqTjg6vlkI3jga7plbfjgZUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MjEKK21zZ2lkICJiYWQgaW5vZGUgb2Zmc2V0IgorbXNnc3RyICLkuI3mraPjgapp44OO44O844OJ44Kq44OV44K744OD44OIIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTM3Cittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemUiCittc2dzdHIgIuODleOCoeOCpOODq2njg47jg7zjg4njga/jgrzjg63jgqrjg5Xjgrvjg4Pjg4jjgYvjgrzjg63jgafjga/jgarjgYTjgrXjgqTjgrrjgpLmjIHjgaHjgb7jgZkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NDAKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIHNpemUgYW5kIG5vbi16ZXJvIG9mZnNldCIKK21zZ3N0ciAi44OV44Kh44Kk44OraeODjuODvOODieOBr+OCvOODreOCteOCpOOCuuOBi+OCvOODreOBp+OBr+OBquOBhOOCquODleOCu+ODg+ODiOOCkuaMgeOBoeOBvuOBmSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3MQorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzQKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIHNpemUiCittc2dzdHIgIuOCt+ODs+ODnOODquODg+OCr+ODquODs+OCr+OBr+OCteOCpOOCuuOBjOOCvOODreOBp+OBmSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2l6ZSBlcnJvciBpbiBzeW1saW5rOiAlcyIKK21zZ3N0ciAiJXMg44G444Gu5pu444GN6L6844G/44Ko44Op44O8OiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJzeW1saW5rIGZhaWxlZDogJXMiCittc2dzdHIgInN5bWxpbmsg44GM5aSx5pWXOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIuOCveOCseODg+ODiOOBr+OCvOODreOBp+OBr+OBquOBhOOCteOCpOOCuuOCkuaMgeOBoeOBvuOBmTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1rbm9kIGZhaWxlZDogJXMiCittc2dzdHIgIm1rbm9kIOOBq+WkseaVl+OBl+OBvuOBl+OBnzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Njg1CisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY5MAorbXNnaWQgImludmFsaWQgZmlsZSBkYXRhIG9mZnNldCIKK21zZ3N0ciAi5LiN5q2j44Gq44OV44Kh44Kk44Or44OH44O844K/44Kq44OV44K744OD44OIIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzE0Cittc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlIG91dGJ1ZmZlciIKK21zZ3N0ciAi5Ye65Yqb44OQ44OD44OV44Kh44Gu56K65L+d44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzI3Cittc2dpZCAiY29tcGlsZWQgd2l0aG91dCAteCBzdXBwb3J0IgorbXNnc3RyICIteCDjgrXjg53jg7zjg4jjgarjgZfjgafjgrPjg7Pjg5HjgqTjg6vjgZXjgozjgabjgYTjgb7jgZkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1sYXJ2c21mXSAvZGV2L25hbWVcbiIKK21zZ3N0ciAi5L2/44GE5pa5OiAlcyBbIC1sYXJ2c21mIF0gL2Rldi9uYW1lXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiJXMg44Gv44Oe44Km44Oz44OI44GV44KM44Gm44GE44G+44GZXHQgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjUKK21zZ2lkICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiCittc2dzdHIgIuacrOW9k+OBq+e2muOBkeOBvuOBmeOBiyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgIuODgeOCp+ODg+OCr+OCkuS4reatouOBl+OBvuOBl+OBn1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNDggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAi44OV44Kh44Kk44OrIGAlcycg5YaF44GnIFpvbmUgbnIgPCBGSVJTVFpPTkXjgIIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA+PSBaT05FUyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICLjg5XjgqHjgqTjg6sgYCVzJyDlhoXjgacgWm9uZSBuciA+PSBaT05FU+OAgiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAi44OW44Ot44OD44Kv44Gu5YmK6ZmkIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogdW5hYmxlIHRvIHNlZWsgdG8gYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIuiqrei+vOOCqOODqeODvDog44OV44Kh44Kk44OrICclcycg5Lit44Gu44OW44Ot44OD44Kv44G4IHNlZWsg44Gn44GN44G+44Gb44KTXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIuiqrei+vOOCqOODqeODvDog44OV44Kh44Kk44OrICclcycg44Gr5LiN5q2j44OW44Ot44OD44Kv44GM44GC44KK44G+44GZXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQxOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSW50ZXJuYWwgZXJyb3I6IHRyeWluZyB0byB3cml0ZSBiYWQgYmxvY2tcbiIKKyJXcml0ZSByZXF1ZXN0IGlnbm9yZWRcbiIKK21zZ3N0ciAiIgorIuWGhemDqOOCqOODqeODvDog5LiN5q2j44OW44Ot44OD44Kv44G444Gu5pu444GN6L6844G/XG4iCisi5pu444GN6L6844G/6KaB5rGC44Gv54Sh6KaW44GV44KM44G+44GZXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAi5pu444GN6L6844G/44OW44Ot44OD44Kv5YaF44GuIHNlZWsg44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAi5pu444GN6L6844G/44Ko44Op44O8OiDjg5XjgqHjgqTjg6vjga7kuK0gJyVzJyDjgavkuI3mraPjg5bjg63jg4Pjgq/jgYzjgYLjgorjgb7jgZlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgIuOCueODvOODkeODvOODluODreODg+OCr+abuOi+vOaZguOBruODleOCoeOCpOODq+OCt+ODvOOCr+OBq+WkseaVl+OBl+OBvuOBl+OBnyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAi44K544O844OR44O844OW44Ot44OD44Kv44KS5pu444GN6L6844KB44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTYKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJp44OO44O844OJ44Oe44OD44OX44KS5pu444GN6L6844KB44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgIuOCvuODvOODs+ODnuODg+ODl+OCkuabuOOBjei+vOOCgeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTYwCittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiaeODjuODvOODieOCkuabuOOBjei+vOOCgeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTg3Cittc2dpZCAic2VlayBmYWlsZWQiCittc2dzdHIgIuOCt+ODvOOCr+OBq+WkseaVlyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICLjg57jg4Pjg5fjg5Djg4Pjg5XjgqHjgpLnorrkv53jgafjgY3jgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5NAorbXNnaWQgInVuYWJsZSB0byByZWFkIHN1cGVyIGJsb2NrIgorbXNnc3RyICLjgrnjg7zjg5Hjg7zjg5bjg63jg4Pjgq/jgpLmm7jjgY3ovrzjgoHjgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxMgorbXNnaWQgImJhZCBtYWdpYyBudW1iZXIgaW4gc3VwZXItYmxvY2siCittc2dzdHIgIuOCueODvOODkeODvOODluODreODg+OCr+OBq+S4jeato+OBquODnuOCuOODg+OCr+ODiuODs+ODkOODvOOBjOOBguOCiuOBvuOBmSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE0Cittc2dpZCAiT25seSAxayBibG9ja3Mvem9uZXMgc3VwcG9ydGVkIgorbXNnc3RyICJPbmx5IDFrIGJsb2Nrcy96b25lcyBzdXBwb3J0ZWQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJiYWQgc19pbWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE4Cittc2dpZCAiYmFkIHNfem1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjUKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiCittc2dzdHIgImlub2RlIOODnuODg+ODl+eUqOODkOODg+ODleOCoeOBrueiuuS/neOBjOOBp+OBjeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI4Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBtYXAiCittc2dzdHIgIuOCvuODvOODs+ODnuODg+ODl+eUqOODkOODg+ODleOCoeOBrueiuuS/neOBjOOBp+OBjeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJpbm9kZSDnlKjjg5Djg4Pjg5XjgqHjga7norrkv53jgYzjgafjgY3jgb7jgZvjgpPjgIIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICJpbm9kZSDjgqvjgqbjg7Pjgr/nlKjjg5Djg4Pjg5XjgqHjga7norrkv53jgYzjgafjgY3jgb7jgZvjgpPjgIIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIuOCvuODvOODs+OCq+OCpuODs+OCv+eUqOODkOODg+ODleOCoeOBrueiuuS/neOBjOOBp+OBjeOBvuOBm+OCk+OAgiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICJpbm9kZSDjg57jg4Pjg5fjgYzoqq3ovrzjgoHjgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MworbXNnaWQgIlVuYWJsZSB0byByZWFkIHpvbmUgbWFwIgorbXNnc3RyICLjgr7jg7zjg7Pjg57jg4Pjg5fjgYzoqq3ovrzjgoHjgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlcyIKK21zZ3N0ciAiaW5vZGUg44KS6Kqt6L6844KB44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIuitpuWRijogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGlub2Rlc1xuIgorbXNnc3RyICJp44OO44O844OJ5pWwICVsZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAi44OW44Ot44OD44Kv5pWwICVsZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiWm9uZSDjgrXjgqTjgro9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIuacgOWkp+OCteOCpOOCuj0lbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKK21zZ3N0ciAi44OV44Kh44Kk44Or44K344K544OG44Og54q25oWLPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisi5ZCN5YmN44Gu6ZW344GVPSVkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3MyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgYnV0IHVzZWQgZm9yIGZpbGUgJyVzJ1xuIgorbXNnc3RyICIiCisiaeODjuODvOODiSAlZCDjga/kuI3kvb/nlKjjg57jg7zjgq/jgZXjgozjgabjgYTjgb7jgZnjgYzjgIHjg5XjgqHjgqTjg6sgJyVzJyDjgYzliKnnlKjjgZfjgabjgYTjgb7jgZlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICLkvb/nlKjjg57jg7zjgq8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iCittc2dzdHIgIuODleOCoeOCpOODqyBgJXMnIOOBr+ODouODvOODiSAlMDVvIOOBp+OBmVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIuitpuWRijogaW5vZGUg5pWw44GM5aSn44GN44GZ44GO44G+44GZ44CCXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NzQKK21zZ2lkICJyb290IGlub2RlIGlzbid0IGEgZGlyZWN0b3J5IgorbXNnc3RyICJyb290IGlub2RlIOOBjOODh+OCo+ODrOOCr+ODiOODquOBp+OBr+OBguOCiuOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzg4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMQorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayBoYXMgYmVlbiB1c2VkIGJlZm9yZS4gTm93IGluIGZpbGUgYCVzJy4iCittc2dzdHIgIuODluODreODg+OCr+OBr+S7peWJjeOBi+OCieWIqeeUqOOBleOCjOOBpuOBhOOBvuOBmeOAguePvuWcqOOBr+ODleOCoeOCpOODqyBgJXMnIOWGheOBp+OBmeOAgiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzkwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU1CisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTAKK21zZ2lkICJDbGVhciIKK21zZ3N0ciAi44Kv44Oq44KiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iCittc2dzdHIgIuODleOCoeOCpOODqyBgJTIkcycg44Gu44OW44Ot44OD44KvICUxJGQg44Gv5pyq5L2/55So44Oe44O844Kv44GV44KM44Gm44GE44G+44GZ44CCIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAi5q2j44GX44GEIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZGlyZWN0b3J5ICclcycgY29udGFpbnMgYSBiYWQgaW5vZGUgbnVtYmVyIGZvciBmaWxlICclLipzJy4iCittc2dzdHIgIuODh+OCo+ODrOOCr+ODiOODqiAnJXMnIOOBr+ODleOCoeOCpOODqyAnJS4qcycg44Gu5LiN5q2jIGlub2RlIOeVquWPt+OCkuWQq+OBv+OBvuOBmeOAgiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDQKK21zZ2lkICIgUmVtb3ZlIgorbXNnc3RyICIg5YmK6ZmkIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCittc2dzdHIgIiVzOiDkuI3mraPjgarjg4fjgqPjg6zjgq/jg4jjg6o6ICcuJyDjgYzmnIDliJ3jgafjga/jgYLjgorjgb7jgZvjgpNcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCittc2dzdHIgIiVzOiDkuI3mraPjgarjg4fjgqPjg6zjgq/jg4jjg6o6ICcuLicg44GMIDIg55Wq55uu44Gn44Gv44GC44KK44G+44Gb44KTXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTExOQorbXNnaWQgImludGVybmFsIGVycm9yIgorbXNnc3RyICLlhoXpg6jjgqjjg6njg7wiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogc2l6ZSA8IDMyIgorbXNnc3RyICIlczog5LiN5q2j44Gq44OH44Kj44Os44Kv44OI44OqOiDjgrXjgqTjgrrjgYwgMzIg5pyq5rqAIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTM1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gYmFkX3pvbmUiCittc2dzdHIgImJhZF96b25lIOOBp+OBriBzZWVrIOOBq+WkseaVlyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICJJbm9kZSAlZCDjga7jg6Ljg7zjg4njga/jgq/jg6rjgqLjgZXjgozjgZrjgIIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgImlub2RlICVkIOOBr+S9v+OCj+OCjOOBvuOBm+OCk+OBjOOAgeODk+ODg+ODiOODnuODg+ODl+OBp+OBr+S9v+eUqOODnuODvOOCr+OBjOS7mOOBhOOBpuOBhOOBvuOBmSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIHVzZWQsIG1hcmtlZCB1bnVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgImlub2RlICVkIOOBjOS9v+eUqOOBleOCjOOBvuOBmeOBjOOAgeODk+ODg+ODiOODnuODg+ODl+OBp+OBr+S4jeS9v+eUqOODnuODvOOCr+OBjOS7mOOBhOOBpuOBhOOBvuOBmSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICLoqK3lrpoiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgY291bnRlZD0lZC4iCittc2dzdHIgImlub2RlICVkICjjg6Ljg7zjg4kgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgImlfbmxpbmtzIOOBruWApOOCkiBjb3VudCDjgavoqK3lrprjgZfjgb7jgZfjgZ8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICJab25lICVkOiDliKnnlKjjg57jg7zjgq/jgYzku5jjgYTjgabjgYTjgb7jgZnjgYzjgIHjganjga7jg5XjgqHjgqTjg6vjgoLkvb/jgaPjgabjgYTjgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNgorbXNnaWQgIlVubWFyayIKK21zZ3N0ciAi44Oe44O844Kv44Gq44GXIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlpvbmUgJWQ6IOS9v+eUqOS4reOAgWNvdW50ZWQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWm9uZSAlZDog5L2/55So44GX44Gm44GE44G+44Gb44KT44CBY291bnRlZD0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg5IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3NworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc5Cittc2dpZCAiYmFkIGlub2RlIHNpemUiCittc2dzdHIgIuS4jeato+OBqiBpbm9kZSDjgrXjgqTjgroiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyOTEKK21zZ2lkICJiYWQgdjIgaW5vZGUgc2l6ZSIKK21zZ3N0ciAi5LiN5q2j44GqIHYyIGlub2RlIOOCteOCpOOCuiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMxNworbXNnaWQgIm5lZWQgdGVybWluYWwgZm9yIGludGVyYWN0aXZlIHJlcGFpcnMiCittc2dzdHIgIuWvvuipseeahOOBquS/ruW+qeOCkuihjOOBquOBhueCuuerr+acq+OBjOW/heimgeOBp+OBmSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIKK21zZ3N0ciAiJyVzJyDjgpLplovjgZHjgb7jgZvjgpM6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiJXMg44Gv44Kv44Oq44O844Oz44Gn44GZ44CB44OB44Kn44OD44Kv44GX44G+44Gb44KT44CCXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9yY2luZyBmaWxlc3lzdGVtIGNoZWNrIG9uICVzLlxuIgorbXNnc3RyICLlvLfliLbnmoTjgasgJXMg44Gu44OV44Kh44Kk44Or44K344K544OG44Og5qSc5p+744GX44G+44GZ44CCXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBvbiAlcyBpcyBkaXJ0eSwgbmVlZHMgY2hlY2tpbmcuXG4iCittc2dzdHIgIiVzIOOBruODleOCoeOCpOODq+OCt+OCueODhuODoOOBr+axmuOCjOOBpuOBiuOCiuOAgeaknOafu+OBjOW/heimgeOBp+OBmeOAglxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2bGQgaeODjuODvOODieOBjOS9v+eUqOS4rSAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTZsZCB6b25lcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiJTZsZCB6b25lIOOBjOS9v+eUqOS4rSAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmQg6YCa5bi444OV44Kh44Kk44OrXG4iCisiJTZkIOODh+OCo+ODrOOCr+ODiOODqlxuIgorIiU2ZCDjgq3jg6Pjg6njgq/jgr/jg4fjg7TjgqHjgqTjgrnjg5XjgqHjgqTjg6tcbiIKKyIlNmQg44OW44Ot44OD44Kv44OH44O044Kh44Kk44K544OV44Kh44Kk44OrXG4iCisiJTZkIOODj+ODvOODieODquODs+OCr1xuIgorIiU2ZCDjgrfjg7Pjg5zjg6rjg4Pjgq/jg6rjg7Pjgq9cbiIKKyItLS0tLS1cbiIKKyIlNmQg44OV44Kh44Kk44OrXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyLjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DjgYzlpInmm7TjgZXjgozjgb7jgZfjgZ9cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBvcGVuOiAlc1xuIgorbXNnc3RyICIlczogb3BlbiDjgavlpLHmlZc6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogJXMg44GnIHNlZWsg44Ko44Op44O8XG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogJXMg44GnIHJlYWQg44Ko44Op44O8XG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3IgY291bnQ6ICVkLCBzZWN0b3Igc2l6ZTogJWRcbiIKK21zZ3N0ciAi44K744Kv44K/5pWwOiAlZCwg44K744Kv44K/44K144Kk44K6OiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiBwYXJzZSBlcnJvclxuIgorbXNnc3RyICIlczog44Kq44OX44K344On44Oz6Kej5p6Q44Ko44Op44O8XG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKK21zZ3N0ciAi5L2/44GE5pa5OiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXZdIFstTiBuci1vZi1pbm9kZXNdIFstViB2b2x1bWUtbmFtZV1cbiIKKyIgICAgICAgWy1GIGZzbmFtZV0gZGV2aWNlIFtibG9jay1jb3VudF1cbiIKK21zZ3N0ciAiIgorIuS9v+OBhOaWuTogJXMgWy12XSBbLU4gaS3jg47jg7zjg4njga7lgIvmlbBdIFstViDjg5zjg6rjg6Xjg7zjg6DlkI1dXG4iCisiICAgICAgIFstRiDjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DlkI1dIOODh+ODkOOCpOOCuSBb44OW44Ot44OD44Kv5pWwXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTMwCittc2dpZCAidm9sdW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgIuODnOODquODpeODvOODoOWQjeOBjOmVt+OBmeOBjuOBvuOBmSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzNworbXNnaWQgImZzbmFtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICLjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DlkI3jgYzplbfjgZnjgY7jgb7jgZkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICLjg4fjg5DjgqTjgrkgJXMg44KSIHN0YXQg44Gn44GN44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIGJsb2NrIHNwZWNpYWwgZGV2aWNlIgorbXNnc3RyICIlcyDjga/jg5bjg63jg4Pjgq/jgrnjg5rjgrfjg6Pjg6vjg4fjg5DjgqTjgrnjgafjga/jgYLjgorjgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNzEgc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIgorbXNnc3RyICIlcyDjgpIgb3BlbiDjgafjgY3jgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBzaXplIG9mICVzIgorbXNnc3RyICIlcyDjga7jgrXjgqTjgrrjgpLlj5blvpfjgafjgY3jgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgIuODluODreODg+OCr+OBruW8leaVsOOBjOWkp+OBjeOBmeOBjuOBvuOBmeOAguacgOWkpyAlbGx1IOOBp+OBmSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIwMgorbXNnaWQgInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiCittc2dzdHIgImnjg47jg7zjg4njgYzlpJrjgZnjgY7jgb7jgZkgLSDmnIDlpKcgNTEyIOOBp+OBmSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlLCBuZWVkIGF0IGxlYXN0ICVsbHUgYmxvY2tzIgorbXNnc3RyICLpoJjln5/jgYzkuI3ljYHliIbjgafjgZnjgILmnIDkvY7jgafjgoIgJWxsdSDjg5bjg63jg4Pjgq/lv4XopoHjgafjgZkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjMgZmRpc2svZmRpc2suYzoyNjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZTogJXNcbiIKK21zZ3N0ciAi44OH44OQ44Kk44K5OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlZvbHVtZTogPCUtNnM+XG4iCittc2dzdHIgIuODnOODquODpeODvOODoDogPCUtNnM+XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRlNuYW1lOiA8JS02cz5cbiIKK21zZ3N0ciAi44OV44Kh44Kk44Or44K344K544OG44Og5ZCNOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIuODluODreODg+OCr+OCteOCpOOCujogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJJLeODjuODvOODiTogJWQgKDEg44OW44Ot44OD44Kv44GC44Gf44KKKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluICVsbGQgYmxvY2tzKVxuIgorbXNnc3RyICJJLeODjuODvOODiTogJWQgKCVsbGQg44OW44Ot44OD44Kv44GC44Gf44KKKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrczogJWxsZFxuIgorbXNnc3RyICLjg5bjg63jg4Pjgq/mlbA6ICVsbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAiSS3jg47jg7zjg4nmnKvlsL46ICVkLCDjg4fjg7zjgr/mnKvlsL46ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgIuOCueODvOODkOODvOODluODreODg+OCr+abuOOBjei+vOOBv+S4reOBq+OCqOODqeODvOOBjOeZuueUn+OBl+OBvuOBl+OBnyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI1OQorbXNnaWQgImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIKK21zZ3N0ciAi44Or44O844OIIEkt44OO44O844OJ5pu444GN6L6844G/5Lit44Gr44Ko44Op44O844GM55m655Sf44GX44G+44GX44GfIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBpbm9kZSIKK21zZ3N0ciAiSS3jg47jg7zjg4nmm7jjgY3ovrzjgb/kuK3jgavjgqjjg6njg7zjgYznmbrnlJ/jgZfjgb7jgZfjgZ8iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjcKK21zZ2lkICJzZWVrIGVycm9yIgorbXNnc3RyICJzZWVrIOOCqOODqeODvOOBjOeZuueUn+OBl+OBvuOBl+OBnyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3MworbXNnaWQgImVycm9yIHdyaXRpbmcgLiBlbnRyeSIKK21zZ3N0ciAiLiDpoIXnm67mm7jjgY3ovrzjgb/kuK3jgavjgqjjg6njg7zjgYznmbrnlJ/jgZfjgb7jgZfjgZ8iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzcKK21zZ2lkICJlcnJvciB3cml0aW5nIC4uIGVudHJ5IgorbXNnc3RyICIuLiDpoIXnm67mm7jjgY3ovrzjgb/kuK3jgavjgqjjg6njg7zjgYznmbrnlJ/jgZfjgb7jgZfjgZ8iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2xvc2luZyAlcyIKK21zZ3N0ciAiJXMg44GuIGNsb3NlIOOBp+OCqOODqeODvOOBjOeZuueUn+OBl+OBvuOBl+OBnyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiBta2ZzIFstVl0gWy10IOODleOCoeOCpOODq+OCt+OCueODhuODoOWei10gW2ZzIOOCquODl+OCt+ODp+ODs10g44OH44OQ44Kk44K5IFvjgrXjgqTjgrpdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjg4IGRpc2stdXRpbHMvbWtmcy5jOjk2IGZkaXNrL2NmZGlzay5jOjM1MworIzogZ2V0b3B0L2dldG9wdC5jOjg2IGdldG9wdC9nZXRvcHQuYzo5NiBsb2dpbi11dGlscy93YWxsLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPdXQgb2YgbWVtb3J5IVxuIgorbXNnc3RyICIlczog44Oh44Oi44Oq44GM6Laz44KK44G+44Gb44KT77yBXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICJta2ZzICglcylcbiIKK21zZ3N0ciAibWtmcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSAgWy1pIGZpbGVdIFstbiAiCisibmFtZV0gZGlybmFtZSBvdXRmaWxlXG4iCisiIC1oICAgICAgICAg44GT44Gu44OY44Or44OX44KS6KGo56S644GZ44KLXG4iCisiIC12ICAgICAgICAg6Kmz57Sw44KS6KGo56S644GZ44KLXG4iCisiIC1FICAgICAgICAg44GZ44G544Gm44Gu6K2m5ZGK44KS44Ko44Op44O844Go44GZ44KLICjntYLkuobjgrnjg4bjg7zjgr/jgrnjgpIgMCDku6XlpJbjgavjgZnjgospXG4iCisiIC1iIGJsa3NpemUg5oyH5a6a44GX44Gf44OW44Ot44OD44Kv44K144Kk44K644KS5Yip55So44GZ44KL44CC44Oa44O844K444K144Kk44K644Go5ZCM44GY44Gn44GC44KL5b+F6KaB44GMIgorIuOBguOCiuOBvuOBmVxuIgorIiAtZSBlZGl0aW9uIHNldCBlZGl0aW9uIG51bWJlciAocGFydCBvZiBmc2lkKVxuIgorIiAtTiBlbmRpYW4gIGNyYW1mcyDjga7jgqjjg7Pjg4fjgqPjgqLjg7MgKGJpZ3xsaXR0bGV8aG9zdCkg44KS6Kit5a6a44GZ44KL44CC44OH44OV44Kp44Or44OI44GvIgorImhvc3QgLWkgZmlsZSAgICDjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DlhoXjgavjg5XjgqHjgqTjg6vjgqTjg6Hjg7zjgrjjgpLmjL/lhaXjgZnjgosgKHJlcXVpcmVzID49ICIKKyIyLjQuMClcbiIKKyIgLW4gbmFtZSAgICBjcmFtZnMg44OV44Kh44Kk44Or44K344K544OG44Og44Gu5ZCN5YmN44KS6Kit5a6a44GZ44KLXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICDjg4fjgqPjg6zjgq/jg4jjg6rjgqjjg7Pjg4jjg6rjgpLjgr3jg7zjg4jjgZnjgosgKOWPpOOBhOOCquODl+OCt+ODp+ODs+OAgueEoeimluOBleOCjOOBvuOBmSlcbiIKKyIgLXogICAgICAgICBtYWtlIGV4cGxpY2l0IGhvbGVzIChyZXF1aXJlcyA+PSAyLjMuMzkpXG4iCisiIGRpcm5hbWUgICAg5Zyn57iu44GV44KM44KL44Gf44KB44Gu44OV44Kh44Kk44Or44K344K544OG44Og44Gu44Or44O844OIXG4iCisiIG91dGZpbGUgICAg5Ye65Yqb44OV44Kh44Kk44OrXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIumdnuW4uOOBq+mVt+OBhCAoJXp1IOODkOOCpOODiCkg44OV44Kh44Kk44Or5ZCNIGAlcycg44GM6KaL44Gk44GL44KK44G+44GX44Gf44CCXG4iCisiIG1rY3JhbWZzLmMg5YaF44GuIE1BWF9JTlBVVF9OQU1FTEVOIOOCkuWil+OChOOBl+OBpuWGjeOCs+ODs+ODkeOCpOODq+OBl+OBpuOBj+OBoOOBleOBhOOAgue1guS6huOBlyIKKyLjgb7jgZnjgIJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICLjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DjgYzlpKfjgY3jgZnjgY7jgb7jgZnjgILntYLkuobjgZfjgb7jgZlcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiJTYuMmYlJSAoJStsZCDjg5DjgqTjg4gpXHQlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBndWVzdGltYXRlIG9mIHJlcXVpcmVkIHNpemUgKHVwcGVyIGJvdW5kKSBpcyAlbGxkTUIsIGJ1dCBtYXhpbXVtICIKKyJpbWFnZSBzaXplIGlzICV1TUIuICBXZSBtaWdodCBkaWUgcHJlbWF0dXJlbHkuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg4MAorbXNnaWQgIlJPTSBpbWFnZSBtYXAiCittc2dzdHIgIlJPTSDjgqTjg6Hjg7zjgrjjg57jg4Pjg5ciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5jbHVkaW5nOiAlc1xuIgorbXNnc3RyICLlkKvjgoA6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlyZWN0b3J5IGRhdGE6ICV6ZCBieXRlc1xuIgorbXNnc3RyICLjg4fjgqPjg6zjgq/jg4jjg6rjg4fjg7zjgr86ICV6ZCDjg5DjgqTjg4hcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgYy1mb3JtYXQKK21zZ2lkICJFdmVyeXRoaW5nOiAlemQga2lsb2J5dGVzXG4iCittc2dzdHIgIuOBmeOBueOBpjogJXpkIOOCreODreODkOOCpOODiFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN1cGVyIGJsb2NrOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAi44K544O844OR44O844OW44Ot44OD44KvOiAlemQg44OQ44Kk44OIXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICJDUkM6ICV4XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICJST03jgqTjg6Hjg7zjgrjjgavjgYrjgaPjgabljYHliIbjgarlrrnph4/jgafjga/jgYLjgorjgb7jgZvjgpMgKCVsbGQg56K65L+d44CBJXp1IOS9v+eUqClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzMworbXNnaWQgIlJPTSBpbWFnZSIKK21zZ3N0ciAiUk9NIOOCpOODoeODvOOCuCIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIgorbXNnc3RyICJST00g44Kk44Oh44O844K444Gu5pu444GN6L6844G/44Gr5aSx5pWX44GX44G+44GX44GfICglemQgJXpkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICLorablkYo6IOODleOCoeOCpOODq+WQjeOBryAyNTUg44OQ44Kk44OI44Gr5YiH44KK6Kmw44KB44KJ44KM44G+44GZ44CCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iCittc2dzdHIgIuitpuWRijog44OV44Kh44Kk44Or44Gv44Ko44Op44O844Gu44Gf44KB44K544Kt44OD44OX44GV44KM44G+44GX44Gf44CCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgIuitpuWRijog44OV44Kh44Kk44Or44K144Kk44K644GvJWx1TULjgavliIfjgoroqbDjgoHjgonjgozjgb7jgZfjgZ8gKOacgOWwjzHjg5DjgqTjg4gp44CCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IHVpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorIuitpuWRijogdWlk44GvJXXjg5Pjg4Pjg4jjgbjliIfjgoroqbDjgoHjgonjgozjgb7jgZfjgZ/jgIIgKOOCu+OCreODpeODquODhuOCo+S4iuOBruaHuOW/teS6i+mgheOBq+OBquOCi+OBi+OCgiIKKyLjgZfjgozjgb7jgZvjgpPjgIIpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorIuitpuWRijogZ2lk44GvJXXjg5Pjg4Pjg4jjgbjliIfjgoroqbDjgoHjgonjgozjgb7jgZfjgZ/jgIIgKOOCu+OCreODpeODquODhuOCo+S4iuOBruaHuOW/teS6i+mgheOBq+OBquOCi+OBi+OCgiIKKyLjgZfjgozjgb7jgZvjgpPjgIIpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIuS9v+OBhOaWuTogJXMgWy1jIHwgLWwg44OV44Kh44Kk44Or5ZCNXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBb44OW44Ot44OD44Kv5pWwXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBhIGZpbGVzeXN0ZW0gaGVyZSEiCittc2dzdHIgIiVzIOOBr+ODnuOCpuODs+ODiOOBleOCjOOBpuOBhOOBvuOBmSAtLSDjgZPjgZPjgavjga/jg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DjgpLjgaTjgY/jgozjgb7jgZvjgpPvvIEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJ3cml0ZV90YWJsZXMg44Gn44Gu44OW44O844OI44OW44Ot44OD44Kv44G444Gu44K344O844Kv44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTAKK21zZ2lkICJ1bmFibGUgdG8gY2xlYXIgYm9vdCBzZWN0b3IiCittc2dzdHIgIuODluODvOODiOOCu+OCr+OCv+OCkuOCr+ODquOCouOBp+OBjeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkyCittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJ3cml0ZV90YWJsZXMg44Gn44Gu44K344O844Kv44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTYKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJpbm9kZSDjg57jg4Pjg5fjga7mm7jjgY3ovrzjgb/jgYzjgafjgY3jgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAi44K+44O844Oz44Oe44OD44OX44Gu5pu444GN6L6844G/44GM44Gn44GN44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDAKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJpbm9kZSDjga7mm7jjgY3ovrzjgb/jgYzjgafjgY3jgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwOQorbXNnaWQgIndyaXRlIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAid3JpdGVfYmxvY2sg44Gn44Gu5pu444GN6L6844G/44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMTcgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjkxCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzozNDAKK21zZ2lkICJ0b28gbWFueSBiYWQgYmxvY2tzIgorbXNnc3RyICLkuI3mraPjg5bjg63jg4Pjgq/jgYzlpJrjgZnjgY7jgb7jgZkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgIuato+W4uOOBquODluODreODg+OCr+OBjOS4jeWNgeWIhuOBp+OBmSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQwCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiCittc2dzdHIgIuODnuODg+ODl+ODkOODg+ODleOCoeOCkueiuuS/neOBp+OBjeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQ5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJpbm9kZSDjg5Djg4Pjg5XjgqHjga7norrkv53jgYzjgafjgY3jgb7jgZvjgpPjgIIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTWF4c2l6ZT0lbGRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIuacgOWkp+OCteOCpOOCuj0lbGRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDY5Cittc2dpZCAic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIgorbXNnc3RyICLjg5bjg63jg4Pjgq/jga7jg4bjgrnjg4jkuK3jgavjgrfjg7zjgq/jgYzlpLHmlZfjgZfjgb7jgZfjgZ8iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJXZWlyZCB2YWx1ZXMgaW4gZG9fY2hlY2s6IHByb2JhYmx5IGJ1Z3NcbiIKK21zZ3N0ciAiZG9fY2hlY2sg44Gr5aSJ44Gq5YCk44GM44GC44KK44G+44GZOiDlpJrliIbjg5DjgrDjgafjgZfjgofjgYZcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTA4IGRpc2stdXRpbHMvbWtzd2FwLmM6MzE1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gY2hlY2tfYmxvY2tzIgorbXNnc3RyICJjaGVja19ibG9ja3Mg44Gn44Gu44K344O844Kv44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MTcKK21zZ2lkICJiYWQgYmxvY2tzIGJlZm9yZSBkYXRhLWFyZWE6IGNhbm5vdCBtYWtlIGZzIgorbXNnc3RyICLjg4fjg7zjgr/poJjln5/ku6XliY3jgavkuI3mraPjg5bjg63jg4Pjgq86IOODleOCoeOCpOODq+OCt+OCueODhuODoOOCkuS9nOaIkOOBp+OBjeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTIzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBiYWQgYmxvY2tzXG4iCittc2dzdHIgIuS4jeato+ODluODreODg+OCr+aVsCAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAi5LiN5q2j44OW44Ot44OD44Kv5pWwIDFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgIuS4jeato+ODluODreODg+OCr+OBruODleOCoeOCpOODq+OCkumWi+OBkeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQwCittc2dpZCAiY2Fubm90IHJlYWQgYmFkYmxvY2tzIGZpbGUiCittc2dzdHIgIuS4jeato+ODluODreODg+OCr+ODleOCoeOCpOODq+OCkuiqreOBv+i+vOOCgeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgInN0cnRvbCBlcnJvcjogbnVtYmVyIG9mIGJsb2NrcyBub3Qgc3BlY2lmaWVkIgorbXNnc3RyICJzdHJ0b2wg44Ko44Op44O8OiDjg5bjg63jg4Pjgq/jga7mlbDjgYzmjIflrprjgZXjgozjgb7jgZvjgpPjgafjgZfjgZ8iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAiJXMg44Gu54q25oWL44KS5Y+W5b6X44Gn44GN44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIiVzIOOCkumWi+OBkeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2VjdG9yIHNpemUgZm9yICVzIgorbXNnc3RyICIlcyDjga7jgrvjgq/jgr/jgrXjgqTjgrrjgpLlj5blvpfjgafjgY3jgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICJibG9jayBzaXplIHNtYWxsZXIgdGhhbiBwaHlzaWNhbCBzZWN0b3Igc2l6ZSBvZiAlcyIKK21zZ3N0ciAi44OW44Ot44OD44Kv44K144Kk44K644GMICVzIOOBrueJqeeQhuOCu+OCr+OCv+OCteOCpOOCuuOCiOOCiuOCguWwj+OBleOBhCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2l6ZSBvZiAlcyIKK21zZ3N0ciAiJXMg44Gu44K144Kk44K644KS5Y+W5b6X44Gn44GN44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICInJXMnIOS4iuOBq+ODleOCoeOCpOODq+OCt+OCueODhuODoOOCkuS9nOOCieOBquOBhOOCiOOBhuOBq+OBl+OBvuOBmSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjY1Cittc2dpZCAibnVtYmVyIG9mIGJsb2NrcyB0b28gc21hbGwiCittc2dzdHIgIuODluODreODg+OCr+OBruaVsOOBjOWwkeOBquOBmeOBjuOBvuOBmSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICLkuI3mraPjgarjg6bjg7zjgrbmjIflrprjg5rjg7zjgrjjgrXjgqTjgrogJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiIgorIuOCt+OCueODhuODoOOBruODmuODvOOCuOOCteOCpOOCuuWApCAlMiRkIOOBruS7o+OCj+OCiuOBq+OAgeODpuODvOOCtuaMh+WumuWApCAlMSRkIOOCkuS9v+OBhOOBvuOBmVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAi44K544Ov44OD44OX44OY44OD44OA44K144Kk44K644GM5q2j44GX44GP44Gq44GE44Gf44KB44CB44Op44OZ44Or44Gv5pu444GN6L6844G+44KM44G+44Gb44KT44CCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxhYmVsIHdhcyB0cnVuY2F0ZWQuXG4iCittc2dzdHIgIuODqeODmeODq+OBr+WIh+OCiuipsOOCgeOCieOCjOOBvuOBl+OBn+OAglxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICLjg6njg5njg6vjga/jgYLjgorjgb7jgZvjgpMsICIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdXVpZFxuIgorbXNnc3RyICJ1dWlk44GM44GC44KK44G+44Gb44KTXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKyLkvb/jgYTmlrk6ICVzIFstY10gWy1w44Oa44O844K444K144Kk44K6XSBbLUwg44Op44OZ44OrXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFvjg5bjg63jg4Pjgq8iCisi5pWwXVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI5NworbXNnaWQgInRvbyBtYW55IGJhZCBwYWdlcyIKK21zZ3N0ciAi5LiN5q2j44Oa44O844K444GM5aSa44GZ44GO44G+44GZIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAi44Oh44Oi44Oq44GM6Laz44KK44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIHBhZ2VcbiIKK21zZ3N0ciAi5LiN5q2j44Gq44Oa44O844K45pWwXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSBiYWQgcGFnZXNcbiIKK21zZ3N0ciAi5LiN5q2j44Gq44Oa44O844K45pWwICVsdVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQwMiBkaXNrLXV0aWxzL21rc3dhcC5jOjQzOSBkaXNrLXV0aWxzL21rc3dhcC5jOjY1OQorbXNnaWQgInVuYWJsZSB0byByZXdpbmQgc3dhcC1kZXZpY2UiCittc2dzdHIgIuOCueODr+ODg+ODl+ODh+ODkOOCpOOCueOCkuW3u+OBjeaIu+OBm+OBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIG5ldyBsaWJibGtpZCBwcm9iZSIKK21zZ3N0ciAiaW5vZGUg44OQ44OD44OV44Kh44Gu56K65L+d44GM44Gn44GN44G+44Gb44KT44CCIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgIuODluODvOODiOOCu+OCr+OCv+OCkuOCr+ODquOCouOBp+OBjeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB3YXJuaW5nOiBkb24ndCBlcmFzZSBib290Yml0cyBzZWN0b3JzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoJXMgcGFydGl0aW9uIHRhYmxlIGRldGVjdGVkKS4gIgorbXNnc3RyICIgICAgICAgICglcyDjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjg4bjg7zjg5bjg6vjgpLoqo3orZjjgZfjgb7jgZfjgZ8p44CCIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICBvbiB3aG9sZSBkaXNrLiAiCittc2dzdHIgIiAgIHMgICDlrozlhajjgarjg4fjgqPjgrnjgq/jg6njg5njg6vjgpLooajnpLrjgZnjgosiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICBzICAg5a6M5YWo44Gq44OH44Kj44K544Kv44Op44OZ44Or44KS6KGo56S644GZ44KLIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjUyNAorIywgYy1mb3JtYXQKK21zZ2lkICIlMSRzOiB3YXJuaW5nOiBpZ25vcmUgLVUgKFVVSURzIGFyZSB1bnN1cHBvcnRlZCBieSAlMSRzKVxuIgorbXNnc3RyICIlMSRzOiDorablkYo6IC1VIOOCkueEoeimluOBl+OBvuOBmSAoVVVJRHPjga8lMSRz44Gr44KI44Gj44Gm44K144Od44O844OI44GV44KM44G+44Gb44KTKVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZG9lcyBub3Qgc3VwcG9ydCBzd2Fwc3BhY2UgdmVyc2lvbiAlZC5cbiIKK21zZ3N0ciAiJXM6IOOCueODr+ODg+ODl+epuumWk+OBruODkOODvOOCuOODp+ODsyAlZCDjga/jgrXjg53jg7zjg4jjgZXjgozjgabjgYTjgb7jgZvjgpPjgIJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKK21zZ2lkICJlcnJvcjogVVVJRCBwYXJzaW5nIGZhaWxlZCIKK21zZ3N0ciAi44Ko44Op44O8OiBVVUlEIOOBruino+aekOOBq+WkseaVlyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBOb3doZXJlIHRvIHNldCB1cCBzd2FwIG9uP1xuIgorbXNnc3RyICIlczog44Ko44Op44O8OiDjgrnjg6/jg4Pjg5fjgpLmnInlirnjgavjgZnjgovjgZ/jgoHjga7loLTmiYDjgYzjgarjgYTvvJ9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiIKKyIlczog44Ko44Op44O8OiDjgrXjgqTjgrogJWxsdSBLaUIg44GM44OH44OQ44Kk44K544Gu44K144Kk44K6ICVsbHUgS2lCIOOCiOOCiuOCguWkp+OBjeOBhOOBp+OBmVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHN3YXAgYXJlYSBuZWVkcyB0byBiZSBhdCBsZWFzdCAlbGQgS2lCXG4iCittc2dzdHIgIiVzOiDjgqjjg6njg7w6IOOCueODr+ODg+ODl+mgmOWfn+OBr+WwkeOBquOBj+OBqOOCgiAlbGQgS2lCIOW/heimgeOBp+OBmVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FybmluZzogdHJ1bmNhdGluZyBzd2FwIGFyZWEgdG8gJWxsdSBLaUJcbiIKK21zZ3N0ciAiJXM6IOitpuWRijog44K544Ov44OD44OX6aCY5Z+f44KSICVsbHUgS2lCIOOBq+WIh+OCiuipsOOCgeOBvuOBl+OBn1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHdpbGwgbm90IHRyeSB0byBtYWtlIHN3YXBkZXZpY2Ugb24gJyVzJ1xuIgorbXNnc3RyICInJXM6ICclcycg44Gr44Gv44K544Ov44OD44OX44OH44OQ44Kk44K544KS5L2c44KJ44Gq44GE44KI44GG44Gr44GX44G+44GZXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBzd2Fwc3BhY2UuXG4iCittc2dzdHIgIiVzOiAlcyDjga/jg57jgqbjg7Pjg4jjgZXjgozjgabjgYTjgb7jgZk7IOOBk+OBk+OBq+OBr+OCueODr+ODg+ODl+epuumWk+OCkuOBpOOBj+OCjOOBvuOBm+OCk+OAglxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAi44K544Ov44OD44OX56m66ZaT44KS6Kit5a6a44Gn44GN44G+44Gb44KTOiDoqq3ovrzjgoHjgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIuOCueODr+ODg+ODl+epuumWk+ODkOODvOOCuOODp+ODszHjgpLoqK3lrprjgZfjgb7jgZnjgIHjgrXjgqTjgrogPSAlbGx1IEtpQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byB3cml0ZSBzaWduYXR1cmUgcGFnZTogJXMiCittc2dzdHIgIiVzOiAlczog572y5ZCN44Oa44O844K444KS5pu444GN6L6844KB44G+44Gb44KTOiAlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NzMKK21zZ2lkICJmc3luYyBmYWlsZWQiCittc2dzdHIgImZzeW5jIOOBq+WkseaVlyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gb2J0YWluIHNlbGludXggZmlsZSBsYWJlbDogJXNcbiIKK21zZ3N0ciAiJXM6ICVzOiBzZWxpbnV444Gu44OV44Kh44Kk44Or44Op44OZ44Or44KS5ZCr44KA44GT44Go44GM44Gn44GN44G+44Gb44KTOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MAorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgIiVzIOOBrueKtuaFi+OCkuWPluW+l+OBp+OBjeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTMKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIuaWsOimj+OBriBzZWxpbnV4IOOCs+ODs+ODhuOCreOCueODiOOCkuS9nOaIkOOBp+OBjeOBvuOBm+OCkyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTUKK21zZ2lkICJjb3VsZG4ndCBjb21wdXRlIHNlbGludXggY29udGV4dCIKK21zZ3N0ciAic2VsaW51eCDjgrPjg7Pjg4bjgq3jgrnjg4jjgpLoqIjnrpfjgafjgY3jgb7jgZvjgpMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NzAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiJXM6ICVzIOOBruWQjeWJjeOCkiAlcyDjgavlpInmm7TjgafjgY3jgb7jgZvjgpM6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiAgJXMgIgorbXNnc3RyICIiCisi5L2/44GE5pa5OlxuIgorIiAgJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgJyVzJyBpcyBjb250cm9sIHJhdyBkZXYgKHVzZSByYXc8Tj4gd2hlcmUgPE4+IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICLjg5bjg63jg4Pjgq/jg5XjgqHjgqTjg6sgJyVzJyAoJXMpIOOCkumFjee9ruOBp+OBjeOBvuOBm+OCk1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSBibG9jayBkZXZcbiIKK21zZ3N0ciAi6K2m5ZGKOiAnJXMnIOOBr+ODluODreODg+OCr+ODh+ODkOOCpOOCueOBp+OBr+OBguOCiuOBvuOBm+OCk1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gbWFzdGVyIHJhdyBkZXZpY2UgJyIKK21zZ3N0ciAi44Oe44K544K/44O844Ot44Km44OH44OQ44Kk44K544KS6ZaL44GP44GT44Go44GM44Gn44GN44G+44Gb44KTIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIuODreOCpuODh+ODkOOCpOOCuSAnJXMnICglcykg44KS6YWN572u44Gn44GN44G+44Gb44KTXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iCittc2dzdHIgIuODreOCpuODh+ODkOOCpOOCuSAnJXMnIOOBr+OCreODo+ODqeOCr+OCv+ODh+ODkOOCpOOCueOBp+OBr+OBguOCiuOBvuOBm+OCk1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSByYXcgZGV2XG4iCittc2dzdHIgIuODh+ODkOOCpOOCuSAnJXMnIOOBr+ODreOCpuODh+ODkOOCpOOCueOBp+OBr+OBguOCiuOBvuOBm+OCk1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBxdWVyeWluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBzZXR0aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICLjgqjjg6njg7zjgavjgojjgorjgrXjg7zjg5PjgrnjgpLlgZzmraLjgZfjgb7jgZk6IFwiJXNcIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzc4IGZkaXNrL2NmZGlzay5jOjIwODMKK21zZ2lkICJVbnVzYWJsZSIKK21zZ3N0ciAi5L2/55So5LiN5Y+vIgorCisjOiBmZGlzay9jZmRpc2suYzozODAgZmRpc2svY2ZkaXNrLmM6MjA4NQorbXNnaWQgIkZyZWUgU3BhY2UiCittc2dzdHIgIuepuuOBjemgmOWfnyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgzCittc2dpZCAiTGludXggZXh0MiIKK21zZ3N0ciAiTGludXggZXh0MiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg1Cittc2dpZCAiTGludXggZXh0MyIKK21zZ3N0ciAiTGludXggZXh0MyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg3Cittc2dpZCAiTGludXggWEZTIgorbXNnc3RyICJMaW51eCBYRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4OQorbXNnaWQgIkxpbnV4IEpGUyIKK21zZ3N0ciAiTGludXggSkZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTEKK21zZ2lkICJMaW51eCBSZWlzZXJGUyIKK21zZ3N0ciAiTGludXggUmVpc2VyRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU3Cittc2dpZCAiTGludXgiCittc2dzdHIgIkxpbnV4IgorCisjOiBmZGlzay9jZmRpc2suYzozOTYKK21zZ2lkICJPUy8yIEhQRlMiCittc2dzdHIgIk9TLzIgSFBGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk4Cittc2dpZCAiT1MvMiBJRlMiCittc2dzdHIgIk9TLzIgSUZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MDIKK21zZ2lkICJOVEZTIgorbXNnc3RyICJOVEZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBoYXMgYmVlbiBjaGFuZ2VkLlxuIgorbXNnc3RyICLjg4fjgqPjgrnjgq/jgYzlpInmm7TjgZXjgozjgb7jgZfjgZ/jgIJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYm9vdCB0aGUgc3lzdGVtIHRvIGVuc3VyZSB0aGUgcGFydGl0aW9uIHRhYmxlIGlzIGNvcnJlY3RseSB1cGRhdGVkLlxuIgorbXNnc3RyICLpoJjln5/mg4XloLHjgpLmraPjgZfjgY/mm7TmlrDjgZXjgZvjgovjgavjga/jgrfjgrnjg4bjg6DjgpLlho3otbfli5XjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyLorablkYo6IERPUyA2Lngg6aCY5Z+f44KS5L2c5oiQ44CB44G+44Gf44Gv5aSJ5pu044GX44Gm44GXXG4iCisi44G+44Gj44Gf5aC05ZCI44Gv44CBY2ZkaXNrIOODnuODi+ODpeOCouODq+OBq+OBguOCi+i/veWKoOaDheWgseODmuODvOOCuFxuIgorIuOCkuWPgueFp+OBl+OBpuOBj+OBoOOBleOBhOOAglxuIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTYKK21zZ2lkICJGQVRBTCBFUlJPUiIKK21zZ3N0ciAiKuiHtOWRveeahOOBquOCqOODqeODvCoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNworbXNnaWQgIlByZXNzIGFueSBrZXkgdG8gZXhpdCBjZmRpc2siCittc2dzdHIgIuS4reaWreOBmeOCi+OBq+OBr+S9leOBi+OCreODvOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhCIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY0IGZkaXNrL2NmZGlzay5jOjU3MgorbXNnaWQgIkNhbm5vdCBzZWVrIG9uIGRpc2sgZHJpdmUiCittc2dzdHIgIuODh+OCo+OCueOCr+ODieODqeOCpOODluS4iuOBpyBzZWVrIOOBp+OBjeOBvuOBm+OCkyIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY2Cittc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIKK21zZ3N0ciAi44OH44Kj44K544Kv44OJ44Op44Kk44OW44KS6Kqt44G/6L6844KB44G+44Gb44KTIgorCisjOiBmZGlzay9jZmRpc2suYzo1NzQKK21zZ2lkICJDYW5ub3Qgd3JpdGUgZGlzayBkcml2ZSIKK21zZ3N0ciAi44OH44Kj44K544Kv44OJ44Op44Kk44OW44Gr5pu444GN6L6844KB44G+44Gb44KTIgorCisjOiBmZGlzay9jZmRpc2suYzo5MTcKK21zZ2lkICJUb28gbWFueSBwYXJ0aXRpb25zIgorbXNnc3RyICLpoJjln5/jgYzlpJrjgZnjgY7jgb7jgZkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICLpoJjln5/jgYzjgrvjgq/jgr8gMCDjgojjgorjgb7jgYjjgYvjgonlp4vjgb7jgaPjgabjgYTjgb7jgZkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAi6aCY5Z+f44GM44K744Kv44K/IDAg44KI44KK5YmN44Gn57WC44KP44Gj44Gm44GE44G+44GZIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICLpoJjln5/jgYzjg4fjgqPjgrnjgq/jga7ntYLngrnjgojjgorjgoLlvozjgo3jgYvjgonlp4vjgb7jgaPjgabjgYTjgb7jgZkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICLpoJjln5/jgYzjg4fjgqPjgrnjgq/jga7ntYLngrnjgojjgorjgoLlvozjgo3jgafntYLjgo/jgaPjgabjgYTjgb7jgZkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk0MgorbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGluIHRoZSBmaW5hbCBwYXJ0aWFsIGN5bGluZGVyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2NgorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBub3QgaW4gZGlzayBvcmRlciIKK21zZ3N0ciAi6KuW55CG6aCY5Z+f44GM44OH44Kj44K544Kv44Gu6aCG5bqP44Go5LiA6Ie044GX44G+44Gb44KTIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjkKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAi6KuW55CG6aCY5Z+f44GM6YeN6KSH44GX44Gm44GE44G+44GZIgorCisjOiBmZGlzay9jZmRpc2suYzo5NzMKK21zZ2lkICJlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAi5ouh5aSn44GV44KM44Gf6KuW55CG6aCY5Z+f44GM6YeN6KSH44GX44Gm44GE44G+44GZIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICIiCisiISEhISDlhoXpg6jjgqjjg6njg7zjgILmi6HlvLXpoJjln5/ku6XlpJbjgavoq5bnkIbjg4njg6njgqTjg5bjgpLkvZzmiJDjgZfjgojjgYbjgajjgZfjgabjgYTjgb7jgZkgISEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAxNCBmZGlzay9jZmRpc2suYzoxMDI2Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbG9naWNhbCBkcml2ZSBoZXJlIC0tIHdvdWxkIGNyZWF0ZSB0d28gZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorIuOBk+OBk+OBq+OBr+irlueQhuODieODqeOCpOODluOCkuS9nOaIkOOBp+OBjeOBvuOBm+OCkyAtLSAyIOOBpOOBruaLoeW8temgmOWfn+OBp+OBguOCjOOBsOS9nOaIkOOBl+OBvuOBmSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICLjg6Hjg4vjg6Xjg7zpoIXnm67lkI3jgYzplbfjgZnjgY7jgb7jgZnjgILjg6Hjg4vjg6Xjg7zooajnpLrjgYzkubHjgozjgabjgYTjgovlj6/og73mgKfjgYzjgYLjgorjgb7jgZnjgIIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEyMjQKK21zZ2lkICJNZW51IHdpdGhvdXQgZGlyZWN0aW9uLiBEZWZhdWx0aW5nIHRvIGhvcml6b250YWwuIgorbXNnc3RyICLjg6Hjg4vjg6Xjg7zjgavmlrnlkJHjgYzjgYLjgorjgb7jgZvjgpPjgILmsLTlubPmlrnlkJHjgpLliJ3mnJ/lgKTjgajjgZfjgb7jgZnjgIIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAi5LiN5q2j44Gq44Kt44O8IgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIue2muOBkeOCi+OBq+OBr+S9leOBi+OCreODvOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNiBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODYKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJQcmltYXJ5IgorbXNnc3RyICLln7rmnKzpoJjln58iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYKK21zZ2lkICJDcmVhdGUgYSBuZXcgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIuaWsOimj+OBq+WfuuacrOmgmOWfn+OCkuS9nOaIkOOBl+OBvuOBmSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNyBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODUKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJMb2dpY2FsIgorbXNnc3RyICLoq5bnkIbpoJjln58iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIuaWsOimj+OBq+irlueQhumgmOWfn+OCkuS9nOaIkOOBl+OBvuOBmSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzIGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJDYW5jZWwiCittc2dzdHIgIuS4reatoiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICLpoJjln5/jgpLkvZzmiJDjgZfjgb7jgZvjgpMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDQKK21zZ2lkICIhISEgSW50ZXJuYWwgZXJyb3IgISEhIgorbXNnc3RyICIhISEg5YaF6YOo44Ko44Op44O8ICEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NworbXNnaWQgIlNpemUgKGluIE1CKTogIgorbXNnc3RyICLjgrXjgqTjgrogKE1CIOWNmOS9jSk6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkJlZ2lubmluZyIKK21zZ3N0ciAi5pyA5Yid44GL44KJIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBiZWdpbm5pbmcgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAi56m644GN6aCY5Z+f44Gu5pyA5Yid44Gr6aCY5Z+f44KS6L+95YqgIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiRW5kIgorbXNnc3RyICLmnIDlvozjgYvjgokiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICLnqbrjgY3poJjln5/jga7mnIDlvozjgavpoJjln5/jgpLov73liqAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICLmi6HlvLXpoJjln5/jgpLkvZzmiJDjgZnjgovjgZ/jgoHjga7loLTmiYDjgYzjgYLjgorjgb7jgZvjgpMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODq+OBjOOBguOCiuOBvuOBm+OCk+OAglxuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc4Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLiBTdGFydGluZyB3aXRoIHplcm8gdGFibGUuIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjg4bjg7zjg5bjg6vjgYzjgYLjgorjgb7jgZvjgpPjgILjgrzjg63jg4bjg7zjg5bjg6vjgafplovlp4vjgZfjgabjgYTjgb7jgZnjgIIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1ODgKK21zZ2lkICJCYWQgc2lnbmF0dXJlIG9uIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAi6aCY5Z+f44OG44O844OW44Or44Gu572y5ZCN44GM5LiN5q2j44Gn44GZIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTkyCittc2dpZCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIKK21zZ3N0ciAi5LiN5piO44Gq44OR44O844OG44Kj44K344On44Oz44OG44O844OW44Or44Gu44K/44Kk44OXIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAi44K844Ot44OG44O844OW44Or44Gn6ZaL5aeL44GX44G+44GX44KH44GG44GLIFt5L05dID8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NDIKK21zZ2lkICJZb3Ugc3BlY2lmaWVkIG1vcmUgY3lsaW5kZXJzIHRoYW4gZml0IG9uIGRpc2siCittc2dzdHIgIuODh+OCo+OCueOCr+OBq+OBqOOBo+OBpumBqeWIh+OBquaVsOOCiOOCiuOCguWkmuOBj+OBruOCt+ODquODs+ODgOaVsOOCkuaMh+WumuOBleOCjOOBvuOBl+OBnyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NAorbXNnaWQgIkNhbm5vdCBvcGVuIGRpc2sgZHJpdmUiCittc2dzdHIgIuODh+OCo+OCueOCr+ODieODqeOCpOODluOCkumWi+OBkeOBvuOBm+OCkyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NiBmZGlzay9jZmRpc2suYzoxODY1Cittc2dpZCAiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIKK21zZ3N0ciAi44OH44Kj44K544Kv44KS6Kqt6L6844G/5bCC55So44Gn6ZaL44GN44G+44GX44GfIC0tIOOBguOBquOBn+OBq+OBr+abuOi+vOOBv+aoqemZkOOBjOOBguOCiuOBvuOBm+OCkyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY4NworbXNnaWQgIiIKKyJXYXJuaW5nISEgIFVuc3VwcG9ydGVkIEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkLiBVc2UgR05VIFBhcnRlZC4iCittc2dzdHIgIiIKKyLorablkYohISDjgrXjg53jg7zjg4jjgZfjgabjgYTjgarjgYQgR1BUIChHVUlEIOODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODqykg44KS5qSc5Ye644GX44G+44GX44Gf44CCIgorIkdOVSBQYXJkZWQg44KS5L2/44Gj44Gm44GP44Gg44GV44GEIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIuODh+OCo+OCueOCr+OCteOCpOOCuuOCkuWPluW+l+OBp+OBjeOBvuOBm+OCkyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTczMgorbXNnaWQgIkJhZCBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAi5LiN5q2j44Gq5Z+65pys6aCY5Z+fIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzYyCittc2dpZCAiQmFkIGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICLkuI3mraPjgaroq5bnkIbpoJjln58iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4NzcKK21zZ2lkICJXYXJuaW5nISEgIFRoaXMgbWF5IGRlc3Ryb3kgZGF0YSBvbiB5b3VyIGRpc2shIgorbXNnc3RyICLorablkYrvvIEg44GT44KM44Gv44GC44Gq44Gf44Gu44OH44Kj44K544Kv44Gr44GC44KL44OH44O844K/44KS56C05aOK44GZ44KL44GL44KC44GX44KM44G+44Gb44KTIgorCisjOiBmZGlzay9jZmRpc2suYzoxODgxCittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIiIKKyLjg5Hjg7zjg4bjgqPjgrfjg6fjg7PpoJjln5/jgpLjg4fjgqPjgrnjgq/jgavmm7jjgY3ovrzjgpPjgafjgoLjgojjgo3jgZfjgYTjgafjgZnjgYvvvJ8oeWVzIOOBvuOBn+OBryBubyk6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4NworbXNnaWQgIm5vIgorbXNnc3RyICJubyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4OQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIumgmOWfn+ODhuODvOODluODq+OCkuODh+OCo+OCueOCr+OBq+abuOOBjei+vOOBv+OBvuOBm+OCk+OBp+OBl+OBnyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5MQorbXNnaWQgInllcyIKK21zZ3N0ciAieWVzIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk1Cittc2dpZCAiUGxlYXNlIGVudGVyIGB5ZXMnIG9yIGBubyciCittc2dzdHIgImB5ZXMnIOOBiyBgbm8nIOOBruOBhOOBmuOCjOOBi+OCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIumgmOWfn+ODhuODvOODluODq+OCkuabuOOBjei+vOOBv+S4rS4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNCBmZGlzay9jZmRpc2suYzoxOTI4Cittc2dpZCAiV3JvdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIumgmOWfn+ODhuODvOODluODq+OCkuODh+OCo+OCueOCr+OBq+abuOOBjei+vOOBv+OBvuOBl+OBnyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNgorIywgZnV6enkKK21zZ2lkICIiCisiV3JvdGUgcGFydGl0aW9uIHRhYmxlLCBidXQgcmUtcmVhZCB0YWJsZSBmYWlsZWQuICBSdW4gcGFydHByb2JlKDgpLCBrcGFydHgiCisiKDgpIG9yIHJlYm9vdCB0byB1cGRhdGUgdGFibGUuIgorbXNnc3RyICIiCisi6aCY5Z+f44OG44O844OW44Or44KS5pu444GN6L6844G/44G+44GX44Gf44GM44CB5YaN6Kqt6L6844G/44Gr5aSx5pWX44CC5YaN6LW35YuV44GX44Gm5pu05paw44GX44Gm44GP44Gg44GV44GEIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM2Cittc2dpZCAiTm8gcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyLjg5bjg7zjg4jlj6/og73jg57jg7zjgq/ku5jjgY3ln7rmnKzpoJjln5/jgYzjgYLjgorjgb7jgZvjgpPjgIJET1MgTUJSIOOBr+OBk+OCjOOCkuODluODvOODiOOBp+OBjeOBvuOBm+OCk+OAgiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzOAorbXNnaWQgIiIKKyJNb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIuODluODvOODiOWPr+iDveODnuODvOOCr+S7mOOBjeWfuuacrOmgmOWfn+OBjOikh+aVsOOBguOCiuOBvuOBmeOAgkRPUyBNQlIg44Gv44GT44KM44KS44OW44O844OI44Gn44GN44G+44GbIgorIuOCk+OAgiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTk5NiBmZGlzay9jZmRpc2suYzoyMTE1IGZkaXNrL2NmZGlzay5jOjIxOTkKK21zZ2lkICJFbnRlciBmaWxlbmFtZSBvciBwcmVzcyBSRVRVUk4gdG8gZGlzcGxheSBvbiBzY3JlZW46ICIKK21zZ3N0ciAi44OV44Kh44Kk44Or5ZCN44KS5YWl5Yqb44CB55S76Z2i44Gr6KGo56S644GZ44KL5aC05ZCI44Gv44Oq44K/44O844Oz44Kt44O8OiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMDUgZmRpc2svY2ZkaXNrLmM6MjEyMyBmZGlzay9jZmRpc2suYzoyMjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIGZpbGUgJyVzJyIKK21zZ3N0ciAi44OV44Kh44Kk44OrICclcycg44KS6ZaL44GR44G+44Gb44KTIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzXG4iCittc2dzdHIgIuODh+OCo+OCueOCr+ODieODqeOCpOODljogJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxOAorbXNnaWQgIlNlY3RvciAwOlxuIgorbXNnc3RyICLjgrvjgq/jgr8gMDpcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAyNQorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQ6XG4iCittc2dzdHIgIuOCu+OCr+OCvyAlZDpcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NQorbXNnaWQgIiAgIE5vbmUgICAiCittc2dzdHIgIiAgIOeEoeOBlyAgICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NworbXNnaWQgIiAgIFByaS9Mb2ciCittc2dzdHIgIiAgIOWfuuacrC/oq5bnkIYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgICDln7rmnKwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIgICDoq5bnkIYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwODkgZmRpc2svZmRpc2suYzoxNzY3IGZkaXNrL2ZkaXNrLmM6MjEwNgorIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIyNyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjE2IGZkaXNrL3NmZGlzay5jOjYzOAorbXNnaWQgIlVua25vd24iCittc2dzdHIgIuS4jeaYjiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NSBmZGlzay9jZmRpc2suYzoyNTYzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOQorbXNnaWQgIkJvb3QiCittc2dzdHIgIuODluODvOODiCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorbXNnaWQgIk5vbmUiCittc2dzdHIgIk5vbmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIiVzIOODkeODvOODhuOCo+OCt+ODp+ODs+aDheWgsVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM2Cittc2dpZCAiICAgICAgICAgICAgICAgRmlyc3QgICAgICAgTGFzdFxuIgorbXNnc3RyICIgICAgICAgICAgICAgICDmnIDliJ3jga4gICAg5pyA5b6M44GuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjIOmgmOWfnyAgICAgICDjgrvjgq/jgr8gICAg44K744Kv44K/IOOCquODleOCu+ODg+ODiCAgICDlpKfjgY3jgZUgICBGaWxlc3lzdGVt44K/44Kk44OXKElEKSDjg5UiCisi44Op44KwXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgICAtLS0t5pyA5Yid44GuLS0tLS0gICAgICAtLS0t5pyA5b6M44GuLS0tLS0gICAgICDplovlp4sgICAgTnVtYmVyIG9mXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjIKK21zZ2lkICIgIyBGbGFncyBIZWFkIFNlY3QgIEN5bCAgIElEICBIZWFkIFNlY3QgIEN5bCAgICAgU2VjdG9yICAgIFNlY3RvcnNcbiIKK21zZ3N0ciAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwg44K744Kv44K/55Wq5Y+3ICAg44K744Kv44K/5pWwXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjMKK21zZ2lkICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICLnlJ/jg4fjg7zjgr8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IgorbXNnc3RyICLnlJ/jg4fjg7zjgr/jga7lvaLlvI/jgafjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pmg4XloLHjgpLlh7rlipsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIuOCu+OCr+OCvyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIuOCu+OCr+OCv+mghuOBq+ODkeODvOODhuOCo+OCt+ODp+ODs+aDheWgseOCkuWHuuWKmyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIlRhYmxlIgorbXNnc3RyICLjg4bjg7zjg5bjg6siCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIuWNmOOBq+mgmOWfn+aDheWgseOCkuihqOekuiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkRvbid0IHByaW50IHRoZSB0YWJsZSIKK21zZ3N0ciAi6aCY5Z+f5oOF5aCx44KS5Ye65Yqb44GX44Gq44GEIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg3Cittc2dpZCAiSGVscCBTY3JlZW4gZm9yIGNmZGlzayIKK21zZ3N0ciAiY2ZkaXNrIOOBruODmOODq+ODl+eUu+mdoiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4OQorbXNnaWQgIlRoaXMgaXMgY2ZkaXNrLCBhIGN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbmluZyBwcm9ncmFtLCB3aGljaCIKK21zZ3N0ciAiY2ZkaXNrIOOBr+err+acq+Wei+ODh+OCo+OCueOCr+mgmOWfn+S9nOaIkOODl+ODreOCsOODqeODoOOBp+OBmeOAgiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MAorbXNnaWQgImFsbG93cyB5b3UgdG8gY3JlYXRlLCBkZWxldGUgYW5kIG1vZGlmeSBwYXJ0aXRpb25zIG9uIHlvdXIgaGFyZCIKK21zZ3N0ciAi44OP44O844OJ44OH44Kj44K544Kv44OJ44Op44Kk44OW44Gu6aCY5Z+f44KS5L2c5oiQ44CB5YmK6Zmk44CB5aSJ5pu0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgIuOBmeOCi+OBk+OBqOOBjOOBp+OBjeOBvuOBmeOAgiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MworbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKK21zZ3N0ciAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk1Cittc2dpZCAiQ29tbWFuZCAgICAgIE1lYW5pbmciCittc2dzdHIgIuOCs+ODnuODs+ODiSAgICAgIOiqrOaYjiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICItLS0tLS0tICAgICAgLS0tLS0tLSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgYiAgICAgICAgICBUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgYiAgICAgICAgICDjgqvjg7zjgr3jg6vkuIrjga7poJjln5/jga7jg5bjg7zjg4jjg5Xjg6njgrDjga7liIfmm78iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTgKK21zZ2lkICIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBkICAgICAgICAgIOOCq+ODvOOCveODq+S4iuOBrumgmOWfn+OCkuWJiumZpCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgZyAgICAgICAgICBDaGFuZ2UgY3lsaW5kZXJzLCBoZWFkcywgc2VjdG9ycy1wZXItdHJhY2sgcGFyYW1ldGVycyIKK21zZ3N0ciAiICBnICAgICAgICAgIOOCt+ODquODs+ODgCwg44OY44OD44OALCDjg4jjg6njg4Pjgq/lvZPjgZ/jgorjga7jgrvjgq/jgr/mlbDjgpLlpInmm7QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgICAgICAgICAgV0FSTklORzogVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBwZW9wbGUgd2hvIgorbXNnc3RyICIgICAgICAgICAgICAg6K2m5ZGKOiDjgZPjga7jgqrjg5fjgrfjg6fjg7PjgYzkvZXjgpLjgZnjgovjgoLjga7jgYvnkIbop6PjgZfjgabjgYTjgarjgYTkuroiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgICAgICAgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLiIKK21zZ3N0ciAiICAgICAgICAgICAgIOOBr+S9v+eUqOOBl+OBpuOBr+OBhOOBkeOBquOBhOOAgiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMgorbXNnaWQgIiAgaCAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICBoICAgICAgICAgIOOBk+OBrueUu+mdouOCkuihqOekuiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgbSAgICAgICAgICBNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBtICAgICAgICAgIOOCq+ODvOOCveODq+S4iuOBrumgmOWfn+OBruODh+OCo+OCueOCr+S9v+eUqOmHj+OCkuacgOWkp+OBq+OBmeOCi+OAgiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAgICAgICAgICBOb3RlOiBUaGlzIG1heSBtYWtlIHRoZSBwYXJ0aXRpb24gaW5jb21wYXRpYmxlIHdpdGgiCittc2dzdHIgIiAgICAgICAgICAgICDms6jmhI86IOOBk+OBruOCquODl+OCt+ODp+ODs+OBr+OAgURPUywgT1MvMiDnrYnjgajkupLmj5vmgKfjga7jgarjgYQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCittc2dzdHIgIiAgICAgICAgICAgICDpoJjln5/jgpLkvZzmiJDjgZnjgovlj6/og73mgKfjgYzjgYLjgorjgb7jgZnjgIIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDYKK21zZ2lkICIgIG4gICAgICAgICAgQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICIgIG4gICAgICAgICAg56m644GN6aCY5Z+f44GL44KJ5paw6KaP44Gr6aCY5Z+f44KS5L2c5oiQIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA3Cittc2dpZCAiICBwICAgICAgICAgIFByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiICBwICAgICAgICAgIOmgmOWfn+aDheWgseOCkueUu+mdouOBvuOBn+OBr+ODh+OCo+OCueOCr+OBq+WHuuWKm+OBmeOCiyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOAorbXNnaWQgIiAgICAgICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhlIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgICAgICAgICAgIOmgmOWfn+OBruWHuuWKm+OBq+OBr+asoeOBruOCiOOBhuOBquikh+aVsOOBruW9ouW8j+OBi+OCiemBuOaKniIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIgICAgICAgICAgICAg44Gn44GN44KLOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIgICAgICAgICAgICAgICAgciAtIOeUn+ODh+ODvOOCvyjjg4fjgqPjgrnjgq/jgavmm7jjgY3ovrzjgb7jgozjgovmg4XloLHjgZ3jga7jgoLjga4pIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzExCittc2dpZCAiICAgICAgICAgICAgICAgIHMgLSBUYWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIiAgICAgICAgICAgICAgICBzIC0g44K744Kv44K/6aCG44Gu44OR44O844OG44Kj44K344On44Oz5oOF5aCxIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEyCittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICIgICAgICAgICAgICAgICAgdCAtIOeUn+OBruW9ouW8j+OBruODkeODvOODhuOCo+OCt+ODp+ODs+aDheWgsSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgcSAgICAgICAgICBRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICBxICAgICAgICAgIOmgmOWfn+aDheWgseOCkuabuOOBjei+vOOBvuOBmuOBq+ODl+ODreOCsOODqeODoOOCkue1guS6hiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNAorbXNnaWQgIiAgdCAgICAgICAgICBDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAiICB0ICAgICAgICAgIOODleOCoeOCpOODq+OCt+OCueODhuODoOOCv+OCpOODl+OCkuWkieabtCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNQorbXNnaWQgIiAgdSAgICAgICAgICBDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkiCittc2dzdHIgIiAgdSAgICAgICAgICDooajnpLrjgZnjgovpoJjln5/jgrXjgqTjgrrjga7ljZjkvY3jgpLlpInmm7TjgZnjgosiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTYKK21zZ2lkICIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiCittc2dzdHIgIiAgICAgICAgICAgICBNQiwg44K744Kv44K/LCDjgrfjg6rjg7Pjg4Djga7poIbjgavlvqrnkrDjgZnjgosiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiICBXICAgICAgICAgIOmgmOWfn+aDheWgseOCkuODh+OCo+OCueOCr+OBq+abuOOBjei+vOOCgCjlpKfmloflrZcgVyDjgpIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIgICAgICAgICAgICAg5YWl5Yqb44GX44Gq44GR44KM44Gw44Gq44KJ44Gq44GEKeOAguOBk+OBruOCquODl+OCt+ODp+ODs+OBr+ODh+OCo+OCueOCr+S4iuOBriIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICAgICAgICAgICBlaXRoZXIgY29uZmlybSBvciBkZW55IHRoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciIKK21zZ3N0ciAiICAgICAgICAgICAgIOODh+ODvOOCv+OCkuegtOWjiuOBmeOCi+WPr+iDveaAp+OBjOOBguOCi+OBn+OCgeOAgSd5ZXMn44G+44Gf44GvJ25vJ+OBruWFpSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIgICAgICAgICAgICAg5Yqb44Gr44KI44KK44CB5pu444GN6L6844G/44KS6KGM44GG44GL44Gp44GG44GL44KS56K66KqN44GZ44KL44CCIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIxCittc2dpZCAiVXAgQXJyb3cgICAgIE1vdmUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBwYXJ0aXRpb24iCittc2dzdHIgIuS4iuefouWNsOOCreODvCAgIOS4iuOBrumgmOWfn+OBq+OCq+ODvOOCveODq+OCkuenu+WLlSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMgorbXNnaWQgIkRvd24gQXJyb3cgICBNb3ZlIGN1cnNvciB0byB0aGUgbmV4dCBwYXJ0aXRpb24iCittc2dzdHIgIuS4i+efouWNsOOCreODvCAgIOS4i+OBrumgmOWfn+OBq+OCq+ODvOOCveODq+OCkuenu+WLlSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMworbXNnaWQgIkNUUkwtTCAgICAgICBSZWRyYXdzIHRoZSBzY3JlZW4iCittc2dzdHIgIkNUUkwtTCAgICAgICDnlLvpnaLjgpLlho3mj4/nlLsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjQKK21zZ2lkICIgID8gICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgPyAgICAgICAgICDjgZPjga7nlLvpnaLjgpLooajnpLoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICLms6jmhI86IOOCs+ODnuODs+ODieOBr+OBmeOBueOBpuWkp+aWh+Wtl+OAgeWwj+aWh+Wtl+OBqeOBoeOCieOBp+OCguS9v+eUqOOBp+OBjeOBvuOBmSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNworbXNnaWQgImNhc2UgbGV0dGVycyAoZXhjZXB0IGZvciBXcml0ZXMpLiIKK21zZ3N0ciAiKOabuOOBjei+vOOBv+OCkumZpOOBjynjgIIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAi44K344Oq44Oz44OAIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICLjgrfjg6rjg7Pjg4Djga7jgrjjgqrjg6Hjg4jjg6rjgpLlpInmm7QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMAorbXNnaWQgIkhlYWRzIgorbXNnc3RyICLjg5jjg4Pjg4nmlbAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkKK21zZ2lkICJDaGFuZ2UgaGVhZCBnZW9tZXRyeSIKK21zZ3N0ciAi44OY44OD44OJ44Gu44K444Kq44Oh44OI44Oq44KS5aSJ5pu0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAi44K744Kv44K/44Gu44K444Kq44Oh44OI44Oq44KS5aSJ5pu0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAi57WC5LqGIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICLjgrjjgqrjg6Hjg4jjg6rjgpLlpInmm7TjgZfjgabntYLkuoYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNzQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGN5bGluZGVyczogIgorbXNnc3RyICLjgrfjg6rjg7Pjg4DmlbDjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQ6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIuS4jeato+OBquOCt+ODquODs+ODgOaVsCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAi44OY44OD44OA5pWw44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTggZmRpc2svY2ZkaXNrLmM6Mjk2OAorbXNnaWQgIklsbGVnYWwgaGVhZHMgdmFsdWUiCittc2dzdHIgIuS4jeato+OBquODmOODg+ODieaVsCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQwNAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2s6ICIKK21zZ3N0ciAi44OI44Op44OD44Kv5b2T44Gf44KK44Gu44K744Kv44K/5pWw44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MTEgZmRpc2svY2ZkaXNrLmM6Mjk3NQorbXNnaWQgIklsbGVnYWwgc2VjdG9ycyB2YWx1ZSIKK21zZ3N0ciAi5LiN5q2j44Gq44K744Kv44K/5pWwIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTE0Cittc2dpZCAiRW50ZXIgZmlsZXN5c3RlbSB0eXBlOiAiCittc2dzdHIgIuODleOCoeOCpOODq+OCt+OCueODhuODoOOCv+OCpOODl+OCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhDogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTMyCittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IgorbXNnc3RyICLjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6Djgr/jgqTjg5fjgpLnqbrjgavlpInmm7TjgafjgY3jgb7jgZvjgpMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZXh0ZW5kZWQiCittc2dzdHIgIuODleOCoeOCpOODq+OCt+OCueODhuODoOOCv+OCpOODl+OCkuaLoeW8teOBq+WkieabtOOBp+OBjeOBvuOBm+OCkyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIuS4jeaYjiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiLCBOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIk5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAi5Z+65pysL+irlueQhiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAi5LiN5piOICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAi44OH44Kj44K544Kv44OJ44Op44Kk44OWOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICLjgrXjgqTjgro6ICVsbGQg44OQ44Kk44OILCAlbGxkIE1CIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQuJWxsZCBHQiIKK21zZ3N0ciAi44K144Kk44K6OiAlbGxkIOODkOOCpOODiC4gJWxsZC4lbGxkIEdCIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAi44OY44OD44OJOiAlZCAgIOODiOODqeODg+OCr+W9k+OBn+OCiuOBruOCu+OCr+OCvzogJWQgICDjgrfjg6rjg7Pjg4A6ICVsbGQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIuWQjeWJjSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MgorbXNnaWQgIkZsYWdzIgorbXNnc3RyICLjg5Xjg6njgrAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIumgmOWfn+OCv+OCpOODlyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIkZT44K/44Kk44OXIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg1Cittc2dpZCAiW0xhYmVsXSIKK21zZ3N0ciAiW+ODqeODmeODq10iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODcKK21zZ2lkICIgICAgU2VjdG9ycyIKK21zZ3N0ciAiICAgIOOCu+OCr+OCvyAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKK21zZ2lkICIgIEN5bGluZGVycyIKK21zZ3N0ciAiICDjgrfjg6rjg7Pjg4AgIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkxCittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIiAg44K144Kk44K6IChNQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiICDjgrXjgqTjgrogKEdCKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIkJvb3RhYmxlIgorbXNnc3RyICLjg5bjg7zjg4jlj68iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIuOCq+ODvOOCveODq+S4iuOBrumgmOWfn+OBruODluODvOODiOODleODqeOCsOOCkuWIh+OCiuabv+OBiOOCiyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSIKK21zZ3N0ciAi5YmK6ZmkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAi44Kr44O844K944Or5LiK44Gu6aCY5Z+f44KS5YmK6ZmkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiR2VvbWV0cnkiCittc2dzdHIgIuOCuOOCquODoeODiOODqiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkNoYW5nZSBkaXNrIGdlb21ldHJ5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICLjg4fjgqPjgrnjgq/jgrjjgqrjg6Hjg4jjg6rjgpLlpInmm7TjgZnjgoso44Ko44Kt44K544OR44O844OI55SoKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIkhlbHAiCittc2dzdHIgIuODmOODq+ODlyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICLjg5jjg6vjg5fnlLvpnaLjgpLooajnpLoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSIKK21zZ3N0ciAi5pyA5aSn5YyWIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIuOCq+ODvOOCveODq+S4iuOBrumgmOWfn+OBruODh+OCo+OCueOCr+S9v+eUqOmHj+OCkuacgOWkp+WMlijjgqjjgq3jgrnjg5Hjg7zjg4jnlKgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICLmlrDopo/kvZzmiJAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIuepuuOBjemgmOWfn+OBi+OCieaWsOOBl+OBj+mgmOWfn+OCkuS9nOaIkCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IgorbXNnc3RyICLooajnpLoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIumgmOWfn+aDheWgseOCkueUu+mdouOBvuOBn+OBr+ODleOCoeOCpOODq+OBq+WHuuWKmyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIue1guS6hiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICLpoJjln5/mg4XloLHjgpLmm7jjgY3ovrzjgb7jgZrjgavjg5fjg63jgrDjg6njg6DjgpLntYLkuoYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJUeXBlIgorbXNnc3RyICJGU+OCv+OCpOODlyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NgorbXNnaWQgIkNoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIChET1MsIExpbnV4LCBPUy8yIGFuZCBzbyBvbikiCittc2dzdHIgIuODleOCoeOCpOODq+OCt+OCueODhuODoOOBruOCv+OCpOODl+OCkuWkieabtOOBmeOCiyhET1MsIExpbnV4LCBPUy8yIOOBquOBqSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAi5Y2Y5L2NIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAi6KGo56S644GZ44KL6aCY5Z+f44K144Kk44K644Gu5Y2Y5L2NKE1CLCDjgrvjgq/jgr8sIOOCt+ODquODs+ODgCnjgpLlpInmm7TjgZnjgosiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSIKK21zZ3N0ciAi5pu444GN6L6844G/IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhKSIKK21zZ3N0ciAi6aCY5Z+f5oOF5aCx44KS44OH44Kj44K544Kv44Gr5pu444GN6L6844KAKOODh+ODvOOCv+OCkuegtOWjiuOBmeOCi+WPr+iDveaAp+OBguOCiikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MDUKK21zZ2lkICJDYW5ub3QgbWFrZSB0aGlzIHBhcnRpdGlvbiBib290YWJsZSIKK21zZ3N0ciAi44GT44Gu6aCY5Z+f44KS44OW44O844OI5Y+v6IO944Gr44Gv44Gn44GN44G+44Gb44KTIgorCisjOiBmZGlzay9jZmRpc2suYzoyODE1Cittc2dpZCAiQ2Fubm90IGRlbGV0ZSBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIuepuuOBrumgmOWfn+OCkuWJiumZpOOBmeOCi+OBk+OBqOOBr+OBp+OBjeOBvuOBm+OCkyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICLjgZPjga7poJjln5/jgpLmnIDlpKfljJbjgZnjgovjgZPjgajjga/jgafjgY3jgb7jgZvjgpMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDUKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIKK21zZ3N0ciAi44GT44Gu6aCY5Z+f44Gv5L2/55So44Gn44GN44G+44Gb44KTIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ3Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgYWxyZWFkeSBpbiB1c2UiCittc2dzdHIgIuOBk+OBruODh+OCo+OCueOCr+OBr+ePvuWcqOS9v+eUqOS4reOBp+OBmeOAgiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICLnqbrjga7poJjln5/jga7jgr/jgqTjg5fjgpLlpInmm7TjgZnjgovjgZPjgajjga/jgafjgY3jgb7jgZvjgpMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAi44GT44KM5Lul5LiK44Gu6aCY5Z+f44Gv44GC44KK44G+44Gb44KTIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTA0Cittc2dpZCAiSWxsZWdhbCBjb21tYW5kIgorbXNnc3RyICLkuI3mraPjgarjgrPjg57jg7Pjg4kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi5L2/44GE5pa5OlxuIgorIuODkOODvOOCuOODp+ODs+OCkuihqOekujpcbiIKKyIgICAgICAgICVzIC12XG4iCisi6aCY5Z+f44OG44O844OW44Or44KS6KGo56S6OlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBb44Kq44OX44K344On44OzXSDjg4fjg5DjgqTjgrlcbiIKKyLlr77oqbHnmoTjgavkvb/nlKg6XG4iCisiICAgICAgICAlcyBb44Kq44OX44K344On44OzXSDjg4fjg5DjgqTjgrlcbiIKKyJcbiIKKyLjgqrjg5fjgrfjg6fjg7M6XG4iCisiLWE6IOWPjei7ouihqOekuuOBruS7o+OCj+OCiuOBq+efouWNsOOCkuS9v+eUqFxuIgorIi16OiDjg4fjgqPjgrnjgq/jgYvjgonpoJjln5/jgpLoqq3ovrzjgb7jgZrjgIHjgrzjg63jga7poJjln5/jg4bjg7zjg5bjg6vjgajjgZfjgabplovlp4vjgZnjgotcbiIKKyItYyBDIC1oIEggLXMgUzog44Kr44O844ON44Or44GM5pyf5b6F44GZ44KL44K344Oq44Oz44OA5pWw44CB44OY44OD44OJ5pWw44CB44K744Kv44K/L+ODiOODqeODg+OCr+aVsOOCklxuIgorIiAgICAgICAgICAgICAgICDopobjgZlcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2thaXhsYWJlbC5jOjI3Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBBSVggbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBMaW51eCBjYW5ub3QgaGFuZGxlIHRoZXNlXG4iCisiXHRkaXNrcyBhdCB0aGUgbW9tZW50LiAgTmV2ZXJ0aGVsZXNzIHNvbWVcbiIKKyJcdGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKKyJcdDMuIEJlZm9yZSBkZWxldGluZyB0aGlzIHBoeXNpY2FsIHZvbHVtZSBiZSBzdXJlXG4iCisiXHQgICB0byByZW1vdmUgdGhlIGRpc2sgbG9naWNhbGx5IGZyb20geW91ciBBSVhcbiIKKyJcdCAgIG1hY2hpbmUuICAoT3RoZXJ3aXNlIHlvdSBiZWNvbWUgYW4gQUlYcGVydCkuIgorbXNnc3RyICIiCisiXG4iCisiXHTjgZPjga7jg4fjgqPjgrnjgq/jgavjga/mraPluLjjgaogQUlYIOODqeODmeODq+OBjOOBguOCiuOBvuOBmeOAglxuIgorIlx06Z2e5bi444Gr5q6L5b+144Gn44GZ44GM44CB5LuK44Gu44Go44GT44KNIExpbnV4IOOBr+OBk+OCjOOCieOBruODh+OCo+OCueOCr+OCklxuIgorIlx05omx44GG44GT44Go44GM44Gn44GN44G+44Gb44KT44CC44GX44GL44GX44Gq44GM44KJ44CB44GE44GP44Gk44GL44Gu5Yqp6KiA44KSXG4iCisiXHTjgZfjgabjgYrjgY3jgb7jgZk6XG4iCisiXHQxLiBmZGlzayDjga/mm7jjgY3ovrzjgb/kuK3jgavjgZ3jga7lhoXlrrnjgpLnoLTlo4rjgZfjgb7jgZnjgIJcbiIKKyJcdDIuIOOBk+OBruODh+OCo+OCueOCr+OBjOODnOODquODpeODvOODoOOCsOODq+ODvOODl+OBrumHjeimgeOBqumDqOWIhuOBp+OBryrjgarjgYQq5LqL44KSXG4iCisiXHQgICDnorrjgYvjgoHjgb7jgZfjgofjgYbjgIIo5LuW44Gu5pa55rOV44Go44GX44Gm44Gv44CB44Of44Op44O844GX44Gm44GE44KL44Gu44Gn44Gv44Gq44GEXG4iCisiXHQgICDku5bjga7jg4fjgqPjgrnjgq/jgpLliYrpmaTjgZnjgovjga7jgoLjgYTjgYTjgafjgZfjgofjgYYpXG4iCisiXHQzLiDjgZPjga7niannkIbjg5zjg6rjg6Xjg7zjg6DjgpLliYrpmaTjgZnjgovliY3jgavjgIHjgYLjgarjgZ/jga4gQUlYIOODnuOCt+ODs+OBi+OCiVxuIgorIlx0ICAg5b+F44Ga44OH44Kj44K544Kv5LiK44Gu6KuW55CG44OH44Kj44K544Kv44KS5YmK6Zmk44GX44Gm44GP44Gg44GV44GE44CCKOS7luOBruaWueazlVxuIgorIlx0ICAg44Go44GX44Gm44Gv44CB44GC44Gq44Gf44GM6YGU5Lq6KEFJWHBlcnQp44Gr44Gq44KL44GT44Go44Gn44GZKSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQlNEIGxhYmVsIGZvciBkZXZpY2U6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJCU0Qg44Op44OZ44Or55So44OH44OQ44Kk44K5OiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI4IGZkaXNrL2ZkaXNrLmM6Mzk0IGZkaXNrL2ZkaXNrLmM6NDEzCisjOiBmZGlzay9mZGlzay5jOjQzMSBmZGlzay9mZGlzay5jOjQzOCBmZGlzay9mZGlzay5jOjQ2MSBmZGlzay9mZGlzay5jOjQ3OQorIzogZmRpc2svZmRpc2suYzo0OTUgZmRpc2svZmRpc2suYzo1MTEKK21zZ2lkICJDb21tYW5kIGFjdGlvbiIKK21zZ3N0ciAi44Kz44Oe44Oz44OJ44Gu5YuV5L2cIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICBCU0Qg6aCY5Z+f44KS5YmK6Zmk44GZ44KLIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMwCittc2dpZCAiICAgZSAgIGVkaXQgZHJpdmUgZGF0YSIKK21zZ3N0ciAiICAgZSAgIOODieODqeOCpOODluODh+ODvOOCv+OCkue3qOmbhuOBmeOCiyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgIOODluODvOODiOOCueODiOODqeODg+ODl+OCkuOCpOODs+OCueODiOODvOODq+OBmeOCiyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMgorbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIGZpbGVzeXN0ZW0gdHlwZXMiCittc2dzdHIgIiAgIGwgICDml6Lnn6Xjga7jg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6Djgr/jgqTjg5fjgpLjg6rjgrnjg4jooajnpLrjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICDjgZPjga7jg6Hjg4vjg6Xjg7zjgpLooajnpLrjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzQKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICDmlrDjgZ/jgasgQlNEIOmgmOWfn+OCkuS9nOaIkOOBmeOCiyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNQorbXNnaWQgIiAgIHAgICBwcmludCBCU0QgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgQlNEIOmgmOWfn+ODhuODvOODluODq+OCkuihqOekuuOBmeOCiyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgIOWkieabtOOCkuS/neWtmOOBm+OBmuOBq+e1guS6huOBmeOCiyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiICAgciAgIOODoeOCpOODs+ODoeODi+ODpeODvOOBq+aIu+OCiyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOAorbXNnaWQgIiAgIHMgICBzaG93IGNvbXBsZXRlIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgIOWujOWFqOOBquODh+OCo+OCueOCr+ODqeODmeODq+OCkuihqOekuuOBmeOCiyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAg6aCY5Z+f44Gu44OV44Kh44Kk44Or44K344K544OG44OgIElEIOOCkuWkieabtOOBmeOCiyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiICAgdSAgIOODpuODi+ODg+ODiOOBruWkieabtCjjgrfjg6rjg7Pjg4Av44K744Kv44K/KSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgIOODh+OCo+OCueOCr+ODqeODmeODq+OCkuODh+OCo+OCueOCr+OBq+abuOOBjei+vOOCgCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MworbXNnaWQgIiAgIHggICBsaW5rIEJTRCBwYXJ0aXRpb24gdG8gbm9uLUJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIHggICBCU0Qg6aCY5Z+f44KS6Z2eIEJTRCDpoJjln5/jgajjg6rjg7Pjgq/jgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVzIGhhcyBpbnZhbGlkIHN0YXJ0aW5nIHNlY3RvciAwLlxuIgorbXNnc3RyICLpoJjln58gJXMg44Gv5LiN5q2j44Gq5aeL54K544K744Kv44K/IDAg44Gn5aeL44G+44Gj44Gm44GE44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICIlcyDjga7jg4fjgqPjgrnjgq/jg6njg5njg6vjga7jgrvjgq/jgr8gJWQg44KS6Kqt6L6844G/44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIiVzIOOBq+OBryAqQlNEIOmgmOWfn+OBr+OBguOCiuOBvuOBm+OCk+OAglxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjAzCittc2dpZCAiQlNEIGRpc2tsYWJlbCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJCU0Qg44OH44Kj44K544Kv44Op44OZ44Or44Kz44Oe44Oz44OJIChtIOOBp+ODmOODq+ODlyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI4MyBmZGlzay9mZGlzay5jOjIzMjggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzOAorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdCAlcyIKK21zZ3N0ciAi5pyA5YidICVzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlcyBvciArc2l6ZSBvciArc2l6ZU0gb3IgK3NpemVLIgorbXNnc3RyICLntYLngrkgJXMg44G+44Gf44GvICvjgrXjgqTjgrog44G+44Gf44GvICvjgrXjgqTjgrpNIOOBvuOBn+OBryAr44K144Kk44K6SyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlc1xuIgorbXNnc3RyICLjgr/jgqTjg5c6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJWRcbiIKK21zZ3N0ciAi44K/44Kk44OXOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpc2s6ICUuKnNcbiIKK21zZ3N0ciAi44OH44Kj44K544KvOiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibGFiZWw6ICUuKnNcbiIKK21zZ3N0ciAi44Op44OZ44OrOiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmxhZ3M6IgorbXNnc3RyICLjg5Xjg6njgrA6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiDlj5blh7rjgZflj6/og70iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIGVjYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiIGJhZHNlY3QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXMvc2VjdG9yOiAlbGRcbiIKK21zZ3N0ciAi44OQ44Kk44OIL+OCu+OCr+OCvzogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy90cmFjazogJWxkXG4iCittc2dzdHIgIuOCu+OCr+OCvy/jg4jjg6njg4Pjgq86ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgIuODiOODqeODg+OCry/jgrfjg6rjg7Pjg4A6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICLjgrvjgq/jgr8v44K344Oq44Oz44OAOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnM6ICVsZFxuIgorbXNnc3RyICLjgrfjg6rjg7Pjg4A6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM3CisjLCBjLWZvcm1hdAorbXNnaWQgInJwbTogJWRcbiIKK21zZ3N0ciAi5Zue6Lui5pWwOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgImludGVybGVhdmU6ICVkXG4iCittc2dzdHIgImludGVybGVhdmU6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tza2V3OiAlZFxuIgorbXNnc3RyICJ0cmFja3NrZXc6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJza2V3OiAlZFxuIgorbXNnc3RyICJjeWxpbmRlcnNrZXc6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIOODn+ODquenklxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQzCisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWs6ICVsZFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAidHJhY2stdG8tdHJhY2sgc2VlazogJWxkXHQjIOODn+ODquenklxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImRyaXZlZGF0YTogIgorbXNnc3RyICJkcml2ZWRhdGE6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJWQgcGFydGl0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkIOWAi+OBrumgmOWfnzpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIyAgICAgICAg6ZaL5aeLICAgICAg57WC5LqGICAgIOOCteOCpOOCuiAgICAgIGZzIOWeiyAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRpbmcgZGlza2xhYmVsIHRvICVzLlxuIgorbXNnc3RyICIlcyDjgavjg4fjgqPjgrnjgq/jg6njg5njg6vjgpLmm7jjgY3ovrzjgb/jgb7jgZnjgIJcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQxOSBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIKK21zZ3N0ciAiJXMg44Gv44OH44Kj44K544Kv44Op44OZ44Or44KS5ZCr44KT44Gn44GE44G+44Gb44KT44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjYKK21zZ2lkICJEbyB5b3Ugd2FudCB0byBjcmVhdGUgYSBkaXNrbGFiZWw/ICh5L24pICIKK21zZ3N0ciAi44OH44Kj44K544Kv44Op44OZ44Or44KS5L2c5oiQ44GX44G+44GZ44GLPyAoeS9uKSAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgIuODkOOCpOODiC/jgrvjgq/jgr8iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjcKK21zZ2lkICJzZWN0b3JzL3RyYWNrIgorbXNnc3RyICLjgrvjgq/jgr8v44OI44Op44OD44KvIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY4Cittc2dpZCAidHJhY2tzL2N5bGluZGVyIgorbXNnc3RyICLjg4jjg6njg4Pjgq8v44K344Oq44Oz44OAIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NzQwIGZkaXNrL2ZkaXNrLmM6MTU5MgorIzogZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAiY3lsaW5kZXJzIgorbXNnc3RyICLjgrfjg6rjg7Pjg4DmlbAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICLjgrvjgq/jgr8v44K344Oq44Oz44OAIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgPD0gc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciAoZGVmYXVsdCkuXG4iCittc2dzdHIgIiIKKyLjg4fjg5Xjgqnjg6vjg4jjgacgc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciDku6XkuIvjgafjgarjgZHjgozjgbDjgarjgonjgarjgYTjgIJcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAicnBtIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAiaW50ZXJsZWF2ZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAidHJhY2tza2V3IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg1Cittc2dpZCAiY3lsaW5kZXJza2V3IgorbXNnc3RyICJjeWxpbmRlcnNrZXciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODYKK21zZ2lkICJoZWFkc3dpdGNoIgorbXNnc3RyICJoZWFkc3dpdGNoIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg3Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlayIKK21zZ3N0ciAidHJhY2stdG8tdHJhY2sgc2VlayIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXA6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorbXNnc3RyICLjg5bjg7zjg4jjgrnjg4jjg6njg4Pjg5c6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIuODluODvOODiOOCueODiOODqeODg+ODl+OBjOODh+OCo+OCueOCr+ODqeODmeODq+OBqOmHjeOBquOBo+OBpuOBhOOBvuOBme+8gVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIGluc3RhbGxlZCBvbiAlcy5cbiIKK21zZ3N0ciAi44OW44O844OI44K544OI44Op44OD44OX44GvICVzIOOBq+OCpOODs+OCueODiOODvOODq+OBleOCjOOBvuOBl+OBn+OAglxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAi6aCY5Z+fIChhLSVjKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIuacgOWkp+mgmOWfn+aVsOOBr+S9nOaIkOa4iOOBp+OBmVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGFscmVhZHkgZXhpc3RzLlxuIgorbXNnc3RyICLjgZPjga7poJjln5/jga/jgZnjgafjgavlrZjlnKjjgZfjgb7jgZnjgIJcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIuitpuWRijog6aCY5Z+f44GM5aSa44GZ44GO44G+44GZICglZCwg5pyA5aSn44GvICVkKeOAglxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICIiCisiXG4iCisi44OH44Kj44K544Kv44Go5ZCM5pyf44GX44Gm44GE44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIKK21zZ3N0ciAiJXMg44KS6ZaL44GR44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byByZWFkICVzXG4iCittc2dzdHIgIiVzIOOCkuiqreOCgOOBk+OBqOOBjOOBp+OBjeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2VlayBvbiAlc1xuIgorbXNnc3RyICIlcyDjgpLjgrfjg7zjgq/jgafjgY3jgb7jgZvjgpNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlICVzXG4iCittc2dzdHIgIiVzIOOBuOOBruabuOOBjei+vOOBv+OBjOOBp+OBjeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlc1xuIgorbXNnc3RyICIlcyDjgafjga4gQkxLR0VUU0laRSBpb2N0bCDjgavlpLHmlZdcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIuOBk+OCjOS7peS4iuOBruODoeODouODquOBjOeiuuS/neOBp+OBjeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NgorbXNnaWQgIkZhdGFsIGVycm9yXG4iCittc2dzdHIgIuiHtOWRveeahOOBquOCqOODqeODvFxuIgorCisjOiBmZGlzay9mZGlzay5jOjM5NQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSByZWFkIG9ubHkgZmxhZyIKK21zZ3N0ciAiICAgYSAgIOiqrei+vOOBv+WwgueUqOODleODqeOCsOOCkuOBpOOBkeOCiyIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAgYnNkIOODh+OCo+OCueOCr+ODqeODmeODq+OCkue3qOmbhuOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzozOTcKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBtb3VudGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYyAgIOODnuOCpuODs+ODiOWPr+iDveODleODqeOCsOOCkuOBpOOBkeOCiyIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAg6aCY5Z+f44KS5YmK6Zmk44GZ44KLIgorCisjOiBmZGlzay9mZGlzay5jOjM5OSBmZGlzay9mZGlzay5jOjQxOCBmZGlzay9mZGlzay5jOjQ0MworbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIOaXouefpeOBrumgmOWfn+OCv+OCpOODl+OCkuODquOCueODiOihqOekuuOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0MDEgZmRpc2svZmRpc2suYzo0MjAgZmRpc2svZmRpc2suYzo0NDUKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIOaWsOOBn+OBq+mgmOWfn+OCkuS9nOaIkOOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0MDIgZmRpc2svZmRpc2suYzo0MjEgZmRpc2svZmRpc2suYzo0MzMgZmRpc2svZmRpc2suYzo0NDYKK21zZ2lkICIgICBvICAgY3JlYXRlIGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIG8gICDmlrDjgZ/jgavnqbrjga4gRE9TIOmgmOWfn+ODhuODvOODluODq+OCkuS9nOaIkOOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0MDMgZmRpc2svZmRpc2suYzo0MjIgZmRpc2svZmRpc2suYzo0NDcgZmRpc2svZmRpc2suYzo0NzAKKyM6IGZkaXNrL2ZkaXNrLmM6NDg3IGZkaXNrL2ZkaXNrLmM6NTAzIGZkaXNrL2ZkaXNrLmM6NTIxCittc2dpZCAiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICDpoJjln5/jg4bjg7zjg5bjg6vjgpLooajnpLrjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAg56m644GuIFN1biDjg4fjgqPjgrnjgq/jg6njg5njg6vjgpLkvZzmiJDjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA2IGZkaXNrL2ZkaXNrLmM6NDI1IGZkaXNrL2ZkaXNrLmM6NDUwCittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIHN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgIOmgmOWfn+OBruOCt+OCueODhuODoCBJRCDjgpLlpInmm7TjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA3IGZkaXNrL2ZkaXNrLmM6NDI2IGZkaXNrL2ZkaXNrLmM6NDUxCittc2dpZCAiICAgdSAgIGNoYW5nZSBkaXNwbGF5L2VudHJ5IHVuaXRzIgorbXNnc3RyICIgICB1ICAg6KGo56S6L+mgheebruODpuODi+ODg+ODiOOCkuWkieabtOOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0MDggZmRpc2svZmRpc2suYzo0MjcgZmRpc2svZmRpc2suYzo0NTIgZmRpc2svZmRpc2suYzo0NzQKKyM6IGZkaXNrL2ZkaXNrLmM6NDkxIGZkaXNrL2ZkaXNrLmM6NTA3IGZkaXNrL2ZkaXNrLmM6NTI1Cittc2dpZCAiICAgdiAgIHZlcmlmeSB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICB2ICAg6aCY5Z+f44OG44O844OW44Or44KS54Wn5ZCI44GZ44KLIgorCisjOiBmZGlzay9mZGlzay5jOjQwOSBmZGlzay9mZGlzay5jOjQyOCBmZGlzay9mZGlzay5jOjQ1MyBmZGlzay9mZGlzay5jOjQ3NQorIzogZmRpc2svZmRpc2suYzo0OTIgZmRpc2svZmRpc2suYzo1MDggZmRpc2svZmRpc2suYzo1MjYKK21zZ2lkICIgICB3ICAgd3JpdGUgdGFibGUgdG8gZGlzayBhbmQgZXhpdCIKK21zZ3N0ciAiICAgdyAgIOODhuODvOODluODq+OCkuODh+OCo+OCueOCr+OBq+abuOOBjei+vOOBv+OAgee1guS6huOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0MTAgZmRpc2svZmRpc2suYzo0NTQKK21zZ2lkICIgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiICAgeCAgIOeJueWIpeOBquapn+iDvSAo44Ko44Kt44K544OR44O844OI5bCC55SoKSIKKworIzogZmRpc2svZmRpc2suYzo0MTQKK21zZ2lkICIgICBhICAgc2VsZWN0IGJvb3RhYmxlIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYSAgIOODluODvOODiOWPr+iDvemgmOWfn+OCkumBuOaKnuOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0MTUKK21zZ2lkICIgICBiICAgZWRpdCBib290ZmlsZSBlbnRyeSIKK21zZ3N0ciAiICAgYiAgIOODluODvOODiOODleOCoeOCpOODq+OCqOODs+ODiOODquOCkue3qOmbhuOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0MTYKK21zZ2lkICIgICBjICAgc2VsZWN0IHNnaSBzd2FwIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYyAgIHNnaSDjgrnjg6/jg4Pjg5fpoJjln5/jgpLpgbjmip7jgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDM5Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIGJvb3RhYmxlIGZsYWciCittc2dzdHIgIiAgIGEgICDjg5bjg7zjg4jlj6/og73jg5Xjg6njgrDjgpLjgaTjgZHjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICAgYyAgIGRvcyDkupLmj5vjg5Xjg6njgrDjgpLjgaTjgZHjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYyCittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYSAgIOS7o+abv+OCt+ODquODs+ODgOaVsOOCkuWkieabtOOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0NjMgZmRpc2svZmRpc2suYzo0ODEgZmRpc2svZmRpc2suYzo0OTcgZmRpc2svZmRpc2suYzo1MTMKK21zZ2lkICIgICBjICAgY2hhbmdlIG51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGMgICDjgrfjg6rjg7Pjg4DmlbDjgpLlpInmm7TjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY0IGZkaXNrL2ZkaXNrLmM6NDgyIGZkaXNrL2ZkaXNrLmM6NDk4IGZkaXNrL2ZkaXNrLmM6NTE0Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBkICAg6aCY5Z+f44OG44O844OW44Or5YaF44Gu55Sf44OH44O844K/44KS6KGo56S644GZ44KLIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAg44K344Oq44Oz44OA5q+O44Gu5L2Z5Ymw44K744Kv44K/5pWw44KS5aSJ5pu044GZ44KLIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NiBmZGlzay9mZGlzay5jOjQ4NSBmZGlzay9mZGlzay5jOjUwMSBmZGlzay9mZGlzay5jOjUxOAorbXNnaWQgIiAgIGggICBjaGFuZ2UgbnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICIgICBoICAg44OY44OD44OJ5pWw44KS5aSJ5pu044GZ44KLIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NworbXNnaWQgIiAgIGkgICBjaGFuZ2UgaW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiAgIGkgICDjgqTjg7Pjgr/jg7zjg6rjg7zjg5bjg5XjgqHjgq/jgr/jgpLlpInmm7TjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY4Cittc2dpZCAiICAgbyAgIGNoYW5nZSByb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiICAgbyAgIOWbnui7ouaVsOOCkuWkieabtOOBmeOCiyAocnBtKSIKKworIzogZmRpc2svZmRpc2suYzo0NzMgZmRpc2svZmRpc2suYzo0OTAgZmRpc2svZmRpc2suYzo1MDYgZmRpc2svZmRpc2suYzo1MjQKK21zZ2lkICIgICBzICAgY2hhbmdlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrIgorbXNnc3RyICIgICBzICAg44K744Kv44K/5pWwL+ODiOODqeODg+OCr+OCkuWkieabtOOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICDniannkIbjgrfjg6rjg7Pjg4DmlbDjgpLlpInmm7TjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGIgICDpoJjln5/lhoXjga7jg4fjg7zjgr/jga7lhYjpoK3jgavnp7vli5XjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgzIGZkaXNrL2ZkaXNrLmM6NDk5IGZkaXNrL2ZkaXNrLmM6NTE1Cittc2dpZCAiICAgZSAgIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiICAgZSAgIOaLoeW8temgmOWfn+OCkuODquOCueODiOihqOekuuOBmeOCiyIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgSVJJWCAoU0dJKSDpoJjln5/jg4bjg7zjg5bjg6vjgpLkvZzmiJDjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE2Cittc2dpZCAiICAgZiAgIGZpeCBwYXJ0aXRpb24gb3JkZXIiCittc2dzdHIgIiAgIGYgICDpoJjln5/jga7poIbluo/jgpLpganmraPljJbjgZnjgosiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5Cittc2dpZCAiICAgaSAgIGNoYW5nZSB0aGUgZGlzayBpZGVudGlmaWVyIgorbXNnc3RyICIgICBpICAg44OH44Kj44K544Kv6K2Y5Yil5a2Q44KS5aSJ5pu044GZ44KLIgorCisjOiBmZGlzay9mZGlzay5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBzZXQiCittc2dzdHIgIuioreWumuOBmeOCi+W/heimgeOBjOOBguOCiuOBvuOBmSIKKworIzogZmRpc2svZmRpc2suYzo3MzYKK21zZ2lkICJoZWFkcyIKK21zZ3N0ciAi44OY44OD44OJ5pWwIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAi44K744Kv44K/5pWwIgorCisjOiBmZGlzay9mZGlzay5jOjc0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMlcy5cbiIKKyJZb3UgY2FuIGRvIHRoaXMgZnJvbSB0aGUgZXh0cmEgZnVuY3Rpb25zIG1lbnUuXG4iCittc2dzdHIgIiIKKyIlcyVzLlxuIgorIuOBguOBquOBn+OBr+eJueWIpeapn+iDveODoeODi+ODpeODvOOBi+OCieOBk+OCjOOCkuihjOOBquOBhuOBk+OBqOOBjOOBp+OBjeOBvuOBmVxuIgorCisjOiBmZGlzay9mZGlzay5jOjc0NQorbXNnaWQgIiBhbmQgIgorbXNnc3RyICIg5Y+K44GzICIKKworIzogZmRpc2svZmRpc2suYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFRoZSBzaXplIG9mIHRoaXMgZGlzayBpcyAlZC4lZCBUQiAoJWxsdSBieXRlcykuXG4iCisiRE9TIHBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgY2FuIG5vdCBiZSB1c2VkIG9uIGRyaXZlcyBmb3Igdm9sdW1lc1xuIgorImxhcmdlciB0aGFuICglbGx1IGJ5dGVzKSBmb3IgJWQtYnl0ZSBzZWN0b3JzLiBVc2UgcGFydGVkKDEpIGFuZCBHVUlEIFxuIgorInBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgKEdQVCkuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBkZXZpY2UgcHJlc2VudHMgYSBsb2dpY2FsIHNlY3RvciBzaXplIHRoYXQgaXMgc21hbGxlciB0aGFuXG4iCisidGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLiBBbGlnbmluZyB0byBhIHBoeXNpY2FsIHNlY3RvciAob3Igb3B0aW1hbFxuIgorIkkvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG9cbiIKKyIgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykiCittc2dzdHIgIiIKKyJcbiIKKyLorablkYo6IERPU+S6kuaPm+ODouODvOODieOBr+W7g+atouS6iOWumuOBp+OBmeOAguOBk+OBruODouODvOODiSAo44Kz44Oe44Oz44OJICdjJykg44KS5q2i44KB44KL44GT44Go44KSXG4iCisiICAgICAg5by344GP5o6o5aWo44GX44G+44GZ44CCIgorCisjOiBmZGlzay9mZGlzay5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0b1xuIgorIiAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAi5Z+65pys5ouh5by144OR44O844OG44Kj44K344On44Oz44Gr5LiN5q2j44Gq44Kq44OV44K744OD44OI44GM44GC44KK44G+44GZXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBleHRyYSBsaW5rIHBvaW50ZXIgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIuitpuWRijog44OR44O844OG44Kj44K344On44Oz44OG44O844OW44OrICVkIOWGheOBrueJueWIpeOBquODquODs+OCr+ODneOCpOODs+OCv+OBp+OBmVxuIgorCisjOiBmZGlzay9mZGlzay5jOjg2MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpZ25vcmluZyBleHRyYSBkYXRhIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICLorablkYo6IOmgmOWfn+ODhuODvOODluODqyAlZCDlhoXjga7nibnliKXjgarjg4fjg7zjgr/jgpLnhKHoppbjgZfjgb7jgZlcbiIKKworIzogZmRpc2svZmRpc2suYzo4OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAib21pdHRpbmcgZW1wdHkgcGFydGl0aW9uICglZClcbiIKK21zZ3N0ciAi56m644Gu44OR44O844OG44Kj44K344On44OzICglZCkg44KS55yB55Wl44GX44Gm44GE44G+44GZXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIuODh+OCo+OCueOCr+itmOWIpeWtkDogMHglMDh4XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBkaXNrIGlkZW50aWZpZXIgKGN1cnJlbnQgMHglMDh4KTogIgorbXNnc3RyICLmlrDjgZfjgYTjg4fjgqPjgrnjgq/orZjliKXlrZAgKOePvuWcqCAweCUwOHgpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIuaWsOOBn+OBqyBET1Mg44OH44Kj44K544Kv44Op44OZ44Or44KS44OH44Kj44K544Kv6K2Y5Yil5a2QIDB4JTA4eCDjgafkvZzmiJDjgZfjgb7jgZnjgIJcbiIKKyLjgYLjgarjgZ/jgYzmm7jjgY3ovrzjgb/jgpLmsbrlrprjgZnjgovjgb7jgafjgIHlpInmm7Tjga/jg6Hjg6Ljg6rlhoXjgaDjgZHjgavmrovjgZfjgb7jgZnjgIJcbiIKKyLjgZ3jga7lvozjga/jgoLjgaHjgo3jgpPku6XliY3jga7lhoXlrrnjga/kv67lvqnkuI3lj6/og73jgavjgarjgorjgb7jgZnjgIJcbiIKKworIzogZmRpc2svZmRpc2suYzoxMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdGU6IHNlY3RvciBzaXplIGlzICVkIChub3QgJWQpXG4iCittc2dzdHIgIuazqOaEjzog44K744Kv44K/44K144Kk44K644GMICVkIOOBp+OBmSAoJWQg44Gn44Gv44Gq44GPKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgbm90IGJlIGFibGUgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAi44OR44O844OG44Kj44K344On44Oz44OG44O844OW44Or44Gu5pu444GN6L6844G/44KS6KGM44GI44G+44Gb44KT44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkaXNrIGhhcyBib3RoIERPUyBhbmQgQlNEIG1hZ2ljLlxuIgorIkdpdmUgdGhlICdiJyBjb21tYW5kIHRvIGdvIHRvIEJTRCBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGICIKKyJkaXNrbGFiZWxcbiIKK21zZ3N0ciAiIgorIuODh+ODkOOCpOOCueOBr+ato+W4uOOBqiBET1Mg6aCY5Z+f44OG44O844OW44Or44KC44CBU3VuLCBTR0kg44KEIE9TRiDjg4fjgqPjgrnjgq/jg6njg5njg6vjgoJcbiIKKyLlkKvjgpPjgafjgYTjgb7jgZvjgpNcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgIkludGVybmFsIGVycm9yXG4iCittc2dzdHIgIuWGhemDqOOCqOODqeODvFxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSWdub3JpbmcgZXh0cmEgZXh0ZW5kZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIueJueWIpeOBquaLoeW8temgmOWfnyAlZCDjgpLnhKHoppbjgZfjgb7jgZlcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHglMDR4IG9mIHBhcnRpdGlvbiB0YWJsZSAlZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3IgorIihyaXRlKVxuIgorbXNnc3RyICIiCisi6K2m5ZGKOiDpoJjln5/jg4bjg7zjg5bjg6sgJTIkZCDjga7kuI3mraPjgarjg5Xjg6njgrAgMHglMSQwNHgg44GvIHco5pu444GN6L6844G/KeOBq+OCiOOBo+OBplxuIgorIuato+W4uOOBq+OBquOCiuOBvuOBmVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImdvdCBFT0YgdGhyaWNlIC0gZXhpdGluZy4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJFT0Yg44KSIDMg5Zue6Kqt44G/44G+44GX44GfIC0tIOe1guS6huOBl+OBvuOBmS4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM2MAorbXNnaWQgIkhleCBjb2RlICh0eXBlIEwgdG8gbGlzdCBjb2Rlcyk6ICIKK21zZ3N0ciAiMTbpgLLmlbDjgrPjg7zjg4kgKEwg44Kz44Oe44Oz44OJ44Gn44Kz44O844OJ44Oq44K544OI6KGo56S6KTogIgorCisjOiBmZGlzay9mZGlzay5jOjEzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCV1LSV1LCBkZWZhdWx0ICV1KTogIgorbXNnc3RyICIlcyAoJXUtJXUsIOWIneacn+WApCAldSk6ICIKKworIzogZmRpc2svZmRpc2suYzoxNDYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuc3VwcG9ydGVkIHN1ZmZpeDogJyVzJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisi44K144Od44O844OIOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAyXk46IEsgIChLaWJpQnl0ZSksIE0gIChNZWJpQnl0ZSksIEcgIChHaWJpQnl0ZSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGRlZmF1bHQgdmFsdWUgJXVcbiIKK21zZ3N0ciAi5Yid5pyf5YCkICV1IOOCkuS9v+OBhOOBvuOBmVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmFsdWUgb3V0IG9mIHJhbmdlLlxuIgorbXNnc3RyICLnr4Tlm7LlpJbjga7lgKTjgafjgZnjgIJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTE4Cittc2dpZCAiUGFydGl0aW9uIG51bWJlciIKK21zZ3N0ciAi44OR44O844OG44Kj44K344On44Oz55Wq5Y+3IgorCisjOiBmZGlzay9mZGlzay5jOjE1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGhhcyBlbXB0eSB0eXBlXG4iCittc2dzdHIgIuitpuWRijog6aCY5Z+fICVkIOOBr+epuuOBruOCv+OCpOODl+OBp+OBmeOAglxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICLpgbjmip7jgZfjgZ/poJjln58gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAi6aCY5Z+f44GM5a6a576p44GV44KM44Gm44GE44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgcHJpbWFyeSBwYXJ0aXRpb25zIGhhdmUgYmVlbiBkZWZpbmVkIGFscmVhZHkhXG4iCittc2dzdHIgIuOBmeOBueOBpuOBruWfuuacrOmgmOWfn+OBr+aXouOBq+Wumue+qeOBleOCjOOBpuOBhOOBvuOBmSFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAiY3lsaW5kZXIiCittc2dzdHIgIuOCt+ODquODs+ODgCIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICLjgrvjgq/jgr8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIiVzIOOBruihqOekui/poIXnm67jg6bjg4vjg4Pjg4jjgpLlpInmm7TjgZfjgb7jgZlcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAi6K2m5ZGKOiDpoJjln58gJWQg44Gv5ouh5by16aCY5Z+f44Gn44GZXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIHNldFxuIgorbXNnc3RyICJET1PkupLmj5vjg5Xjg6njgrDjgYzoqK3lrprjgZXjgozjgb7jgZfjgZ9cbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldFxuIgorbXNnc3RyICJET1PkupLmj5vjg5Xjg6njgrDjga/oqK3lrprjgZXjgozjgabjgYTjgb7jgZvjgpNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCB5ZXQhXG4iCittc2dzdHIgIumgmOWfnyAlZCDjga/jgb7jgaDlrZjlnKjjgZfjgb7jgZvjgpPvvIFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKyLjgr/jgqTjg5cgMCDjga/lpJrjgY/jga7jgrfjgrnjg4bjg6Djgafjg5Xjg6rjg7zjgrnjg5rjg7zjgrnjgpLmhI/lkbPjgZfjgb7jgZlcbiIKKyIoTGludXgg44Gn44Gv6YGV44GE44G+44GZ44GMKeOAguOCv+OCpOODlyAwIOOBruODkeODvOODhuOCo+OCt+ODp+ODs+OCkuaMgeOBpOOBk+OBqOOBr1xuIgorIuWkmuWIhua1heOBr+OBi+OBquOBk+OBqOOBp+OBmeOAguOBguOBquOBn+OBryBgZCcg44Kz44Oe44Oz44OJ44KS5L2/44Gj44Gm44GT44Gu44OR44O844OG44Kj44K344On44Oz44KSXG4iCisi5YmK6Zmk44Gn44GN44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTczNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGNhbm5vdCBjaGFuZ2UgYSBwYXJ0aXRpb24gaW50byBhbiBleHRlbmRlZCBvbmUgb3IgdmljZSB2ZXJzYVxuIgorIkRlbGV0ZSBpdCBmaXJzdC5cbiIKK21zZ3N0ciAiIgorIuOBguOBquOBn+OBr+mgmOWfn+OCkuaLoeW8temgmOWfn+OBq+WkieabtOOBp+OBjeOBvuOBm+OCk+OBl+OAgeOBneOBrumAhuOCguOBvuOBn1xuIgorIuOBp+OBjeOBvuOBm+OCk+OAguOBvuOBmuWJiumZpOOCkuihjOOBquOBo+OBpuOBj+OBoOOBleOBhOOAglxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisi6aCY5Z+fIDMg44KSIFdob2xlIGRpc2sgKDUpIOOBqOOBl+OBpuaui+OBl+OBpuOBiuOBj+OBk+OBqOOCkuiAg+aFruOBl+OBpuOBj+OBoOOBleOBhOOAgVxuIgorIlN1bk9TL1NvbGFyaXMg44Gv44GT44KM44KS5pyf5b6F44GX44G+44GZ44GX44CBTGludXgg44Gn44GV44GI44Gd44KM44GM5pyb44G+44GX44GE44Gn44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gOSBhcyB2b2x1bWUgaGVhZGVyICgwKSxcbiIKKyJhbmQgcGFydGl0aW9uIDExIGFzIGVudGlyZSB2b2x1bWUgKDYpLCBhcyBJUklYIGV4cGVjdHMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyLpoJjln58gOSDjgpIgdm9sdW1lIGhlYWRlciAoMCkg44Go44GX44Gm44CB5Y+K44Gz6aCY5Z+fIDExIOOCkiBlbnRpcmUgdm9sdW1lICg2KVxuIgorIuOBqOOBl+OBpuaui+OBl+OBpuOBiuOBj+OBk+OBqOOCkuiAg+aFruOBl+OBpuOBj+OBoOOBleOBhOOAgklSSVgg44Gv44GT44KM44KS5oOz5a6a44GX44G+44GZ44CCXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc2OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2VkIHN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCB0byAleCAoJXMpXG4iCittc2dzdHIgIumgmOWfn+OBruOCt+OCueODhuODoOOCv+OCpOODl+OCkiAlZCDjgYvjgokgJXggKCVzKSDjgavlpInmm7TjgZfjgb7jgZfjgZ9cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCBpcyB1bmNoYW5nZWQ6ICV4ICglcylcbiIKK21zZ3N0ciAi6aCY5Z+fICVkIOOBruOCt+OCueODhuODoOOCv+OCpOODl+OBr+WkieabtOOBleOCjOOBvuOBm+OCkzogJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAi6aCY5Z+fICVkIOOBr+eVsOOBquOBo+OBn+eJqeeQhi/oq5bnkIbplovlp4vkvY3nva7jgavjgarjgaPjgabjgYTjgb7jgZkoTGludXgg44Gn44Gv54Sh44GEPyk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyOSBmZGlzay9mZGlzay5jOjE4MzcgZmRpc2svZmRpc2suYzoxODQ2IGZkaXNrL2ZkaXNrLmM6MTg1NgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKK21zZ3N0ciAiICAgICDniannkIY9KCVkLCAlZCwgJWQpICIKKworIzogZmRpc2svZmRpc2suYzoxODMwIGZkaXNrL2ZkaXNrLmM6MTgzOAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpY2FsPSglZCwgJWQsICVkKVxuIgorbXNnc3RyICLoq5bnkIY9KCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzNQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGVuZGluZ3M6XG4iCittc2dzdHIgIumgmOWfnyAlZCDjga/nlbDjgarjgaPjgZ/niannkIYv6KuW55CG57WC54K544Gr44Gq44Gj44Gm44GE44G+44GZOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICLpoJjln58gJWkg44Gv44K344Oq44Oz44OA5aKD55WM44Gn5aeL44G+44Gj44Gm44GE44G+44Gb44KTOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgIiglZCwgJWQsIDEpIOOBp+OBguOCi+OBueOBjeOBp+OBmVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAi44OR44O844OG44Kj44K344On44OzICVpIOOBr+OAgeOCt+ODquODs+ODgOWig+eVjOOBp+e1guOCj+OBo+OBpuOBhOOBvuOBm+OCk+OAglxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsICVkKVxuIgorbXNnc3RyICIoJWQsICVkLCAlZCkg44Gn44GC44KL44G544GN44Gn44GZXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIHBoeXNpY2FsIHNlY3RvciBib3VuZGFyeS5cbiIKK21zZ3N0ciAi6aCY5Z+fICVpIOOBr+OCt+ODquODs+ODgOWig+eVjOOBp+Wni+OBvuOBo+OBpuOBhOOBvuOBm+OCkzpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQgTUIsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIuODh+OCo+OCueOCryAlczogJWxkIE1CLCAlbGxkIOODkOOCpOODiFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIuODh+OCo+OCueOCryAlczogJWxkLiVsZCBHQiwgJWxsZCDjg5DjgqTjg4hcbiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGhlYWRzLCAlbGx1IHNlY3RvcnMvdHJhY2ssICVkIGN5bGluZGVycyIKK21zZ3N0ciAi44OY44OD44OJICVkLCDjgrvjgq/jgr8gJWxsdSwg44K344Oq44Oz44OAICVkIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCB0b3RhbCAlbGx1IHNlY3RvcnMiCittc2dzdHIgIiwg5ZCI6KiIICVsbHUg44K744Kv44K/IgorCisjOiBmZGlzay9mZGlzay5jOjE4OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQg44OQ44Kk44OIXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6ICV1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIuOCu+OCr+OCv+OCteOCpOOCuiAo6KuW55CGIC8g54mp55CGKTogJXUg44OQ44Kk44OIIC8gJWx1IOODkOOCpOODiFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSS9PIHNpemUgKG1pbmltdW0vb3B0aW1hbCk6ICVsdSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5OQorIywgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIuihjOOBhuOBueOBjeOBk+OBqOOBr+OBguOCiuOBvuOBm+OCk+OAguaXouOBq+ato+W4uOOBqumghuW6j+OBq+OBquOBo+OBpuOBhOOBvuOBmeOAglxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG9uZS5cbiIKK21zZ3N0ciAi57WC5LqGXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisi44OR44O844OG44Kj44K344On44Oz44OG44O844OW44Or44Gr6KaL44GI44G+44Gb44KTXG4iCisi44GK44Gd44KJ44GP6ZaT6YGV44Gj44Gf44OH44OQ44Kk44K544KS6YG45oqe44GX44Gm44GE44G+44GZ44CCXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMg44OW44O844OIICAgICAg5aeL54K5ICAgICAgICDntYLngrkgICAgIOODluODreODg+OCryAgIElkICDjgrfjgrnjg4bjg6BcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5OAorbXNnaWQgIkRldmljZSIKK21zZ3N0ciAi44OH44OQ44Kk44K5IgorCisjOiBmZGlzay9mZGlzay5jOjIxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIgorbXNnc3RyICIiCisiXG4iCisi6aCY5Z+f44OG44O844OW44Or6aCF55uu44GM44OH44Kj44K544Kv44Gu6aCG5bqP44Go5LiA6Ie044GX44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyLjg4fjgqPjgrnjgq8gJXM6IOODmOODg+ODiSAlZCwg44K744Kv44K/ICVsbHUsIOOCt+ODquODs+ODgCAlZFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iCittc2dzdHIgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgICAg6ZaL5aeLICAgICAg44K144Kk44K6IElEXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIKK21zZ3N0ciAi6K2m5ZGKOiDjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJWQg44Gv44K744Kv44K/IDAg44KS5ZCr44KT44Gn44GE44G+44GZXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IGhlYWQgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAi6aCY5Z+fICVkOiDjg5jjg4Pjg4kgJWQg44Gv5pyA5aSn5YCkICVkIOOCiOOCiuOCguWkp+OBjeOBhOOBp+OBmVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICLpoJjln58gJWQ6IOOCu+OCr+OCvyAlZCDjga/mnIDlpKflgKQgJWxsdSDjgojjgorjgoLlpKfjgY3jgYTjgafjgZlcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbnMgJWQ6IGN5bGluZGVyICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIumgmOWfnyAlZDog44K344Oq44Oz44OAICVkIOOBr+acgOWkp+WApCAlZCDjgojjgorjgoLlpKfjgY3jgYTjgafjgZlcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogcHJldmlvdXMgc2VjdG9ycyAlZCBkaXNhZ3JlZXMgd2l0aCB0b3RhbCAlZFxuIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJWQ6IOWJjeOBruOCu+OCr+OCvyAlZCDjga/lkIjoqIggJWQg44Go5LiA6Ie044GX44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAi6K2m5ZGKOiDjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJWQg44Gr5LiN5q2j44Gq44OH44O844K/6ZaL5aeL5L2N572u44GM44GC44KK44G+44GZXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgb3ZlcmxhcHMgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICLorablkYo6IOODkeODvOODhuOCo+OCt+ODp+ODsyAlZCDjga/jgIHjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJWQg44Go6YeN44Gq44Gj44Gm44GE44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAi6K2m5ZGKOiDjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJWQg44Gv56m644Gn44GZXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1NgorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIuirlueQhuODkeODvOODhuOCo+OCt+ODp+ODsyAlZCDjga/jg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJWQg5YWo5L2T44Gr44Gq44Gj44Gm44GE44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgYy1mb3JtYXQKK21zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlbGx1IGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIuWQiOioiOeiuuS/nea4iOOBv+OCu+OCr+OCvyAlbGx1IOOBr+acgOWkp+WApCAlbGx1IOOCiOOCiuOCguWkp+OBjeOBhOOBp+OBmVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJlbWFpbmluZyAlbGxkIHVuYWxsb2NhdGVkICVkLWJ5dGUgc2VjdG9yc1xuIgorbXNnc3RyICIlbGxkIOacqueiuuS/nSAlZCDjg5DjgqTjg4jjgrvjgq/jgr9cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzAxIGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxMQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlIGl0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODsyAlZCDjga/lrprnvqnmuIjjgb/jgafjgZnjgILjgb7jgZrjga/liYrpmaTjgpLooYzjgarjgaPjgabjgY/jgaDjgZXjgYTjgIJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlbGx1IGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIuOCu+OCr+OCvyAlbGx1IOOBr+aXouOBq+eiuuS/nea4iOOBv+OBp+OBmVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICLliKnnlKjlj6/og73jgarnqbrjgY3jgrvjgq/jgr/jgYzjgYLjgorjgb7jgZvjgpNcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJTEkcywgKyUyJHMgb3IgK3NpemV7SyxNLEd9IgorbXNnc3RyICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKKworIzogZmRpc2svZmRpc2suYzoyNDcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIEFJWCBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHTmrovlv7UgLSDjgZPjga4gZmRpc2sg44GvIEFJWCDjg4fjgqPjgrnjgq/jg6njg5njg6vjgpLmibHjgYjjgb7jgZvjgpPjgIJcbiIKKyJcdERPUyDlnovjg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgpLov73liqDjgZfjgZ/jgZHjgozjgbDjgIHnqbrjga7mlrDjgZ/jgaogRE9TXG4iCisiXHTjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjg4bjg7zjg5bjg6vjgpLkvZzmiJDjgZfjgabjgY/jgaDjgZXjgYTjgIIobyDjgpLkvb/jgYYpXG4iCisiXHTorablkYo6IOOBk+OCjOOBr+ePvuWcqOOBruODh+OCo+OCueOCr+WGheWuueOCkuegtOWjiuOBl+OBvuOBmeOAglxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgTWFjIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyJcdOaui+W/tSAtIOOBk+OBriBmZGlzayDjga8gTWFjIOODh+OCo+OCueOCr+ODqeODmeODq+OCkuaJseOBiOOBvuOBm+OCk+OAglxuIgorIlx0RE9TIOWei+ODkeODvOODhuOCo+OCt+ODp+ODs+OCkui/veWKoOOBl+OBn+OBkeOCjOOBsOOAgeepuuOBruaWsOOBn+OBqiBET1NcbiIKKyJcdOODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODq+OCkuS9nOaIkOOBl+OBpuOBj+OBoOOBleOBhOOAgihvIOOCkuS9v+OBhilcbiIKKyJcdOitpuWRijog44GT44KM44Gv54++5Zyo44Gu44OH44Kj44K544Kv5YaF5a6544KS56C05aOK44GX44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBkZWxldGUgc29tZSBwYXJ0aXRpb24gYW5kIGFkZCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gZmlyc3RcbiIKK21zZ3N0ciAiIgorIuaLoeW8teODkeODvOODhuOCo+OCt+ODp+ODs+OCkui/veWKoOOBmeOCi+WJjeOBq+OAgeOBvuOBmuODkeODvOODhuOCo+OCt+ODp+ODs+OCkuWJiumZpOOBmeOCi+W/heimgeOBjOOBguOCiuOBviIKKyLjgZlcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICLjgZnjgbnjgabjga7oq5bnkIbpoJjln5/jgYzkvb/nlKjkuK3jgafjgZlcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIuWfuuacrOODkeODvOODhuOCo+OCt+ODp+ODs+OCkui/veWKoOOBl+OBvuOBmVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbW1hbmQgYWN0aW9uXG4iCisiICAgJXNcbiIKKyIgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNClcbiIKK21zZ3N0ciAiIgorIuOCs+ODnuODs+ODieOCouOCr+OCt+ODp+ODs1xuIgorIiAgICVzXG4iCisiICAgcCAgIOWfuuacrOODkeODvOODhuOCo+OCt+ODp+ODsyAoMS00KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJsICAgbG9naWNhbCAoNSBvciBvdmVyKSIKK21zZ3N0ciAibCAgIOirlueQhiAoNSDku6XkuIopIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJlICAgZXh0ZW5kZWQiCittc2dzdHIgImUgICDmi6HlvLUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICLjgr/jgqTjg5cgYCVjJyDjgavjgajjgaPjgabjga/kuI3mraPjgarjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pnlarlj7fjgafjgZlcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhXG4iCisiXG4iCittc2dzdHIgIiIKKyLjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjg4bjg7zjg5bjg6vjga/lpInmm7TjgZXjgozjgb7jgZfjgZ/vvIFcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgaW9jdGwoKSB0byByZS1yZWFkIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiaW9jdGwoKSDjgpLlkbzjgbPlh7rjgZfjgabjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjg4bjg7zjg5bjg6vjgpLlho3oqq3ovrzjgb/jgZfjgb7jgZnjgIJcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorIlxuIgorIuitpuWRijog44OR44O844OG44Kj44K344On44Oz44OG44O844OW44Or44Gu5YaN6Kqt6L6844G/44GM44Ko44Op44O8ICVkIOOBp+WkseaVl+OBl+OBvuOBl+OBnzogJXPjgIJcbiIKKyLjgqvjg7zjg43jg6vjga/jgb7jgaDlj6TjgYTjg4bjg7zjg5bjg6vjgpLkvb/jgaPjgabjgYTjgb7jgZnjgILmlrDjgZfjgYTjg4bjg7zjg5bjg6vjga9cbiIKKyLmrKHlm57jg6rjg5bjg7zjg4jmmYLjgYvjgIFwYXJ0cHJvYmUoOCnjgb7jgZ/jga9rcGFydHgoOCnjgpLlrp/ooYzjgZfjgZ/lvozjgatcbiIKKyLkvb/jgYjjgovjgojjgYbjgavjgarjgovjgafjgZfjgofjgYZcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueSBET1MgNi54XG4iCisicGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgZmRpc2sgbWFudWFsIHBhZ2UgZm9yIGFkZGl0aW9uYWxcbiIKKyJpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIuitpuWRijogRE9TIDYueCDjg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgpLkvZzmiJDjgIHjgb7jgZ/jga/lpInmm7TjgZfjgabjgZfjgb7jgaPjgZ/loLTlkIjjga/jgIFcbiIKKyJmZGlzayDjg57jg4vjg6XjgqLjg6vjga7ov73liqDmg4XloLHjg5rjg7zjgrjjgpLlj4LnhafjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJFcnJvciBjbG9zaW5nIGZpbGVcbiIKK21zZ3N0ciAiIgorIlxuIgorIuODleOCoeOCpOODq+OCr+ODreODvOOCuuS4reOBq+OCqOODqeODvFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAi44OH44Kj44K544Kv44KS5ZCM5pyf44GX44Gm44GE44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJWQg44Gr44Gv44OH44O844K/6aCY5Z+f44GM44GC44KK44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAi5paw6KaP44OH44O844K/6ZaL5aeL5L2N572uIgorCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAi5LiK57Sa6ICF44Kz44Oe44Oz44OJIChtIOOBp+ODmOODq+ODlyk6ICIKKworIzogZmRpc2svZmRpc2suYzoyNjg1Cittc2dpZCAiTnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAi44K344Oq44Oz44OA5pWwIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIuODmOODg+ODieaVsCIKKworIzogZmRpc2svZmRpc2suYzoyNzM3Cittc2dpZCAiTnVtYmVyIG9mIHNlY3RvcnMiCittc2dzdHIgIuOCu+OCr+OCv+aVsCIKKworIzogZmRpc2svZmRpc2suYzoyNzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHNldHRpbmcgc2VjdG9yIG9mZnNldCBmb3IgRE9TIGNvbXBhdGlibGl0eVxuIgorbXNnc3RyICLorablkYo6IERPUyDkupLmj5vjga7jgZ/jgoHjga7jgrvjgq/jgr/jgqrjg5Xjgrvjg4Pjg4jjgpLoqK3lrprjgZfjgb7jgZlcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBmZGlzayBkb2Vzbid0ICIKKyJzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyLorablkYo6IEdQVCAoR1VJRCDjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjg4bjg7zjg5bjg6spIOOBjCAnJXMnIOOBq+aknOWHuuOBleOCjOOBvuOBl+OBnyEg44GT44GuIGZkaXNrICIKKyLjg6bjg7zjg4bjgqPjg6rjg4bjgqPjga8gR1BUIOOCkuOCteODneODvOODiOOBl+OBvuOBm+OCk+OAgkdOVSBQYXJ0ZWQg44KS5L2/44Gj44Gm44GP44Gg44GV44GE44CCXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzIGRvZXNuJ3QgY29udGFpbiBhIHZhbGlkIHBhcnRpdGlvbiB0YWJsZVxuIgorbXNnc3RyICLjg4fjgqPjgrnjgq8gJXMg44Gv5q2j5bi444Gq44OR44O844OG44Kj44K344On44Oz44OG44O844OW44Or44KS5ZCr44KT44Gn44GE44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgzMQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlcyDjgpLplovjgZHjgb7jgZvjgpNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiJXMg44KS6ZaL44GR44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlYzogdW5rbm93biBjb21tYW5kXG4iCittc2dzdHIgIiVjOiDkuI3mmI7jgarjgrPjg57jg7Pjg4lcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICIiCisi44GT44Gu44Kr44O844ON44Or44Gv44K744Kv44K/44K144Kk44K644KS6Ieq5YiG6KqN6K2Y44GX44G+44GZIC0gLWIg44Kq44OX44K344On44Oz44Gv54Sh6KaW44GX44G+44GZXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisi6K2m5ZGKOiAtYiAo44K744Kv44K/44K144Kk44K66Kit5a6aKSDjgqrjg5fjgrfjg6fjg7Pjga8gMSDjgaTjga7jg4fjg5DjgqTjgrnmjIflrprjgajlhbHjgatcbiIKKyLkvb/nlKjjgZXjgozjgovjgbnjgY3jgafjgZlcbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIiIKKyIlcyDjgadPU0YvMSDjg4fjgqPjgrnjgq/jg6njg5njg6vjgpLmpJzlh7rjgZfjgZ/jga7jgafjgIHjg4fjgqPjgrnjgq/jg6njg5njg6vjg6Ljg7zjg4njgavnp7vooYzjgZfjgb7jgZnjgIJcbiIKKworIzogZmRpc2svZmRpc2suYzozMDEwCittc2dpZCAiQ29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAi44Kz44Oe44Oz44OJIChtIOOBp+ODmOODq+ODlyk6ICIKKworIzogZmRpc2svZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgY3VycmVudCBib290IGZpbGUgaXM6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyLnj77lnKjjga7jg5bjg7zjg4jjg5XjgqHjgqTjg6vjga86ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICLmlrDjgZ/jgarjg5bjg7zjg4jjg5XjgqHjgqTjg6vlkI3jgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQ6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAi44OW44O844OI44OV44Kh44Kk44Or44KS5aSJ5pu044GX44G+44Gb44KT44Gn44GX44GfXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzEwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRTb3JyeSwgbm8gZXhwZXJ0cyBtZW51IGZvciBTR0kgcGFydGl0aW9uIHRhYmxlcyBhdmFpbGFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdOaui+W/teOBquOBjOOCiSBTR0kg44OR44O844OG44Kj44K344On44Oz44OG44O844OW44Or55So44Gu44Ko44Kt44K544OR44O844OI44Oh44OL44Ol44O844Gv55So5oSP44GV44KM44Gm44GEIgorIuOBvuOBm+OCk+OAglxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIE1hYyBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IGZkaXNrKDEpIGNhbm5vdCBoYW5kbGUgdGhlc2UgZGlza3MuXG4iCisiXHRVc2UgZWl0aGVyIHBkaXNrIG9yIHBhcnRlZCB0byBtb2RpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyJcdE5ldmVydGhlbGVzcyBzb21lIGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx044GT44Gu44OH44Kj44K544Kv44Gr44Gv5q2j5bi444GqIE1hYyDjg6njg5njg6vjgYzjgYLjgorjgb7jgZnjgIJcbiIKKyJcdOmdnuW4uOOBq+aui+W/teOBp+OBmeOBjOOAgWZkaXNrKDEpIOOBr+OBk+OCjOOCieOBruODh+OCo+OCueOCr+OCkuaJseOBhuOBk+OBqOOBjOOBp+OBjeOBvuOBm+OCk+OAglxuIgorIlx044GT44Gu6aCY5Z+f44KS5aSJ5pu044GZ44KL44Gr44GvIHBkaXNrIOOBvuOBn+OBryBwYXJ0ZWQg44Gu44Gp44Gh44KJ44GL44KS5L2/44Gj44Gm44GP44Gg44GV44GE44CCXG4iCisiXHTjgZfjgYvjgZfjgarjgYzjgonjgIHjgYTjgY/jgaTjgYvjga7liqnoqIDjgpLjgZfjgabjgYrjgY3jgb7jgZk6XG4iCisiXHQxLiBmZGlzayDjga/mm7jjgY3ovrzjgb/kuK3jgavjgZ3jga7lhoXlrrnjgpLnoLTlo4rjgZfjgb7jgZnjgIJcbiIKKyJcdDIuIOOBk+OBruODh+OCo+OCueOCr+OBjOODnOODquODpeODvOODoOOCsOODq+ODvOODl+OBrumHjeimgeOBqumDqOWIhuOBp+OBryrjgarjgYQq5LqL44KSXG4iCisiXHQgICDnorrjgYvjgoHjgb7jgZfjgofjgYbjgIIo5LuW44Gu5pa55rOV44Go44GX44Gm44Gv44CB44Of44Op44O844GX44Gm44GE44KL44Gu44Gn44Gv44Gq44GEXG4iCisiXHQgICDku5bjga7jg4fjgqPjgrnjgq/jgpLliYrpmaTjgZnjgovjga7jgoLjgYTjgYTjgafjgZfjgofjgYYpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MQorbXNnaWQgIlNHSSB2b2xoZHIiCittc2dzdHIgIlNHSSB2b2xoZHIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MgorbXNnaWQgIlNHSSB0cmtyZXBsIgorbXNnc3RyICJTR0kgdHJrcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgzCittc2dpZCAiU0dJIHNlY3JlcGwiCittc2dzdHIgIlNHSSBzZWNyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODQKK21zZ2lkICJTR0kgcmF3IgorbXNnc3RyICJTR0kgcmF3IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODUKK21zZ2lkICJTR0kgYnNkIgorbXNnc3RyICJTR0kgYnNkIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODYKK21zZ2lkICJTR0kgc3lzdiIKK21zZ3N0ciAiU0dJIHN5c3YiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NworbXNnaWQgIlNHSSB2b2x1bWUiCittc2dzdHIgIlNHSSB2b2x1bWUiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OAorbXNnaWQgIlNHSSBlZnMiCittc2dzdHIgIlNHSSBlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OQorbXNnaWQgIlNHSSBsdm9sIgorbXNnc3RyICJTR0kgbHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkwCittc2dpZCAiU0dJIHJsdm9sIgorbXNnc3RyICJTR0kgcmx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MQorbXNnaWQgIlNHSSB4ZnMiCittc2dzdHIgIlNHSSB4ZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MgorbXNnaWQgIlNHSSB4ZnNsb2ciCittc2dzdHIgIlNHSSB4ZnNsb2ciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MworbXNnaWQgIlNHSSB4bHYiCittc2dzdHIgIlNHSSB4bHYiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NAorbXNnaWQgIlNHSSB4dm0iCittc2dzdHIgIlNHSSB4dm0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NSBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAKK21zZ2lkICJMaW51eCBzd2FwIgorbXNnc3RyICJMaW51eCDjgrnjg6/jg4Pjg5ciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTEKK21zZ2lkICJMaW51eCBuYXRpdmUiCittc2dzdHIgIkxpbnV4IG5hdGl2ZSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYzCittc2dpZCAiTGludXggTFZNIgorbXNnc3RyICJMaW51eCBMVk0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5OAorbXNnaWQgIkxpbnV4IFJBSUQiCittc2dzdHIgIkxpbnV4IFJBSUQiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkFjY29yZGluZyB0byBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyB0aGUgTGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gIgorIjUxMiBieXRlc1xuIgorbXNnc3RyICIiCisiTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMg44Gr44KI44KL44Go44CB44Gd44Gu44Op44OZ44Or44GvIDUxMiDjg5DjgqTjg4jku6XkuIrjgafjgarjgZHjgozjgbBcbiIKKyLjgarjgorjgb7jgZvjgpNcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzZ2kgZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iCittc2dzdHIgIumWk+mBleOBo+OBn+ODgeOCp+ODg+OCr+OCteODoOWApOOBriBzZ2kg44OH44Kj44K544Kv44Op44OZ44Or44KS5qSc5Ye644GX44G+44GX44Gf44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi44OH44Kj44K544KvICVzIChTR0kg44OH44Kj44K544Kv44Op44OZ44OrKTog44OY44OD44OJICVkLCDjgrvjgq/jgr8gJWxsdVxuIgorIuOCt+ODquODs+ODgCAlZCAsIOeJqeeQhuOCt+ODquODs+ODgCAlZFxuIgorIiVkIOOCqOOCr+OCueODiOODqeOCu+OCr+OCvy/jgrfjg6rjg7Pjg4AsIOOCpOODs+OCv+ODvOODquODvOODliAlZDoxXG4iCisiJXNcbiIKKyLjg6bjg4vjg4Pjg4ggPSAlcyBvZiAlZCAqICVkIOODkOOCpOODiFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi44OH44Kj44K544KvICVzIChTR0kg44OH44Kj44K544Kv44Op44OZ44OrKTog44OY44OD44OJICVkLCDjgrvjgq/jgr8gJWxsdSwg44K344Oq44Oz44OAICVkXG4iCisi44Om44OL44OD44OIID0gJXMgb2YgJWQgKiAlZCDjg5DjgqTjg4hcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIOmgmOWfnyAtLS0tLVxuIgorIlB0IyAlKnMgICDmg4XloLEgICAgICDlp4vngrkgICAgICDntYLngrkgICAg44K744Kv44K/ICBJRCAg44K344K544OG44OgXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG4iCisiQm9vdGZpbGU6ICVzXG4iCisiLS0tLS0gRGlyZWN0b3J5IEVudHJpZXMgLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIOODluODvOODiOaDheWgsSAtLS0tLVxuIgorIuODluODvOODiOODleOCoeOCpOODqzogJXNcbiIKKyItLS0tLSDjg4fjgqPjg6zjgq/jg4jjg6rpoIXnm64gLS0tLS1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiUyZDogJS0xMHMg44K744Kv44K/JTV1IOOCteOCpOOCuiU4dVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJJbnZhbGlkIEJvb3RmaWxlIVxuIgorIlx0VGhlIGJvb3RmaWxlIG11c3QgYmUgYW4gYWJzb2x1dGUgbm9uLXplcm8gcGF0aG5hbWUsXG4iCisiXHRlLmcuIFwiL3VuaXhcIiBvciBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIuS4jeato+OBquODluODvOODiOODleOCoeOCpOODq+OBp+OBme+8gVxuIgorIlx044Gd44Gu44OW44O844OI44OV44Kh44Kk44Or44Gv57W25a++6Z2e44K844Ot44OR44K55ZCN44Gn44Gq44GR44KM44Gw44Gq44KK44G+44Gb44KTXG4iCisiXHTkvosuIFwiL3VuaXhcIiDjgb7jgZ/jga8gXCIvdW5peC5zYXZlXCJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx044OW44O844OI44OV44Kh44Kk44Or5ZCN44GM6ZW344GZ44GO44G+44GZIC0tIOacgOWkpyAxNiDjg5DjgqTjg4jjgIJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBtdXN0IGhhdmUgYSBmdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdOODluODvOODiOODleOCoeOCpOODq+OBr+ODleODq+ODkeOCueOBp+aMh+WumuOBleOCjOOBquOBkeOCjOOBsOOBquOCiuOBvuOBm+OCk+OAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdOODluODvOODiOODleOCoeOCpOODq+OBr+OBneOBruWtmOWcqOOCkuODgeOCp+ODg+OCr+OBleOCjOOBquOBhOOBk+OBqOOBq+awl+OBpeOBhOOBpuOBj+OBoOOBleOBhOOAglxuIgorIlx0U0dJIOOBruWIneacn+WApOOBryBcIi91bml4XCIg44Gn44CB44OQ44OD44Kv44Ki44OD44OX55So44Gr44GvIFwiL3VuaXguc2F2ZVwiIOOBp+OBmeOAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIGlzIGNoYW5nZWQgdG8gXCIlc1wiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHTjg5bjg7zjg4jjg5XjgqHjgqTjg6vjga8gXCIlc1wiIOOBq+WkieabtOOBleOCjOOBvuOBl+OBn+OAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1vcmUgdGhhbiBvbmUgZW50aXJlIGRpc2sgZW50cnkgcHJlc2VudC5cbiIKK21zZ3N0ciAi6KSH5pWw44GuIGVudGlyZSBkaXNrIOOBrumgheebruOBjOOBguOCiuOBvuOBmeOAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDMzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9ucyBkZWZpbmVkXG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODs+OBjOWumue+qeOBleOCjOOBpuOBhOOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiSVJJWCDjga/jg5Hjg7zjg4bjgqPjgrfjg6fjg7MgMTEg44GMIGVudGlyZSBkaXNrIOOCkuimhuOBhuOBruOCkuacm+OBv+OBvuOBmeOAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIHNob3VsZCBzdGFydCBhdCBibG9jayAwLFxuIgorIm5vdCBhdCBkaXNrYmxvY2sgJWQuXG4iCittc2dzdHIgIiIKKyJlbnRpcmUgZGlzayDjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjga/jgIHjg5bjg63jg4Pjgq8gMCDjgYvjgonlp4vjgb7jgovjgbnjgY3jgafjgZnjgYzjgIFcbiIKKyLjg4fjgqPjgrnjgq/jg5bjg63jg4Pjgq8gJWQg44Gr44Gq44Gj44Gm44GE44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gaXMgb25seSAlZCBkaXNrYmxvY2sgbGFyZ2UsXG4iCisiYnV0IHRoZSBkaXNrIGlzICVkIGRpc2tibG9ja3MgbG9uZy5cbiIKK21zZ3N0ciAiIgorImVudGlyZSBkaXNrIOOBruODkeODvOODhuOCo+OCt+ODp+ODs+OBqyAlZCDjg4fjgqPjgrnjgq/jg5bjg63jg4Pjgq/jga7lpKfjgY3jgZXjgZfjgYvjgarjgYTjgafjgZnjgYzjgIFcbiIKKyLjgZ3jga7jg4fjgqPjgrnjgq/jga7lpKfjgY3jgZXjga8gJWQg44OH44Kj44K544Kv44OW44Ot44OD44Kv44Gn44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiT25lIFBhcnRpdGlvbiAoIzExKSBzaG91bGQgY292ZXIgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgKCMxMSkg44GvIGVudGlyZSBkaXNrIOOCkuimhuOBhuOBueOBjeOBp+OBmeOAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAi44OR44O844OG44Kj44K344On44OzICVkIOOBr+OAgeOCt+ODquODs+ODgOWig+eVjOOBi+OCieWni+OBvuOBo+OBpuOBhOOBvuOBm+OCk+OAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODsyAlZCDjga/jgIHjgrfjg6rjg7Pjg4DlooPnlYzjgafntYLjgo/jgaPjgabjgYTjgb7jgZvjgpPjgIJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODsyAlZCDjgaggJWQg44GvICVkIOOCu+OCr+OCv+mHjeOBquOBo+OBpuOBhOOBvuOBmeOAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDg0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCBvZiAlOHUgc2VjdG9ycyAtIHNlY3RvcnMgJTh1LSV1XG4iCittc2dzdHIgIiU4dSDjgrvjgq/jgr/jga7mnKrkvb/nlKjjgq7jg6Pjg4Pjg5cgLS0g44K744Kv44K/ICU4dS0ldVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgYm9vdCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLjg5bjg7zjg4jjg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgYzlrZjlnKjjgZfjgb7jgZvjgpPjgIJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisi44K544Ov44OD44OX44OR44O844OG44Kj44K344On44Oz44GM5a2Y5Zyo44GX44G+44Gb44KT44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisi44K544Ov44OD44OX44OR44O844OG44Kj44K344On44Oz44GM44K544Ov44OD44OX44K/44Kk44OX44Gr44Gq44Gj44Gm44GE44G+44Gb44KT44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiXHTjgYLjgarjgZ/jga/jgIHjg5bjg7zjg4jjg5XjgqHjgqTjg6vlkI3jgajjgZfjgabpgJrluLjjgajnlbDjgarjgovlkI3liY3jgpLpgbjjgbPjgb7jgZfjgZ/jgIJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzMgorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSBZb3UgbWF5IGNoYW5nZSB0aGUgVGFnIG9mIG5vbi1lbXB0eSBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICLmrovlv7XjgarjgYzjgonjgIHnqbrjgafjga/jgarjgYTpoJjln5/jga7jgr/jgrDjgpLlpInmm7TjgZnjgovjgZPjgajjgavjgarjgorjgb7jgZnjgIJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzOAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgb2YgdHlwZSBcIlNHSSB2b2xoZHJcIiwgdGhlIElSSVggc3lzdGVtIHdpbGwgcmVseSBvbiBpdCB0b1xuIgorInJldHJpZXZlIGZyb20gaXRzIGRpcmVjdG9yeSBzdGFuZGFsb25lIHRvb2xzIGxpa2Ugc2FzaCBhbmQgZnguXG4iCisiT25seSB0aGUgXCJTR0kgdm9sdW1lXCIgZW50aXJlIGRpc2sgc2VjdGlvbiBtYXkgdmlvbGF0ZSB0aGlzLlxuIgorIlR5cGUgWUVTIGlmIHlvdSBhcmUgc3VyZSBhYm91dCB0YWdnaW5nIHRoaXMgcGFydGl0aW9uIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisi44Gd44Gu6aCY5Z+f44Gu44Kq44OV44K744OD44OIIDAg55Wq5Zyw44GvIFwiU0dJIHZvbGhkclwiIOWei+OBq+OBquOBo+OBpuOBhOOCi+OBk+OBqOOCkuW8t+OBj+aOqOWlqFxuIgorIuOBl+OBvuOBmeOAgklSSVgg44K344K544OG44Og44Gn44GvIHNhc2gg44KEIGZ4IOOBruanmOOBquOCueOCv+ODs+ODieOCouODreODs+ODhOODvOODq+OBjOOBneOBruOBk+OBqOOBq1xuIgorIuS+neWtmOOBl+OBpuODh+OCo+ODrOOCr+ODiOODquOBi+OCieaknOe0ouOBmeOCi+OBk+OBqOOBq+OBquOCiuOBvuOBmeOAglwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrXG4iCisi44Gg44GR44GM44CB44GT44Gu44GT44Go44KS5YWN44KM44G+44GZ44CCXG4iCisi44GT44Gu6aCY5Z+f44Gr55Ww44Gq44KL44K/44Kw5LuY44GR44Gr44Gk44GE44Gm44CB44KI44GP6Kej44Gj44Gm44GE44KL44Gq44KJIFlFUyDjgajlhaXlipvjgZfjgabkuIvjgZXjgYTjgIJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIllFU1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIFlvdSBrbm93LCBZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2s/XG4iCittc2dzdHIgIuODh+OCo+OCueOCr+OBrumgmOWfn+WQjOWjq+OBjOmHjeikh+OBl+OBpuOBhOOCi+OBk+OBqOOCkuefpeOBo+OBpuOBvuOBmeOBi++8n1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAiZW50aXJlIGRpc2sg6aCF55uu44Gu6Ieq5YuV55Sf5oiQ44KS6Kmm44G/44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgImVudGlyZSBkaXNrIOOBjOaXouOBq+mgmOWfn+OCkuimhuOBo+OBpuOBhOOBvuOBmeOAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICLjg4fjgqPjgrnjgq/jga7poJjln5/jgYzph43opIfjgZfjgabjgYTjgb7jgZnjgILjgb7jgZrjgZPjgozjgpLkvZXjgajjgYvjgZfjgb7jgZfjgofjgYbvvIFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY0NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCBlbGV2ZW50aCBwYXJ0aXRpb25cbiIKKyJjb3ZlcnMgdGhlIGVudGlyZSBkaXNrIGFuZCBpcyBvZiB0eXBlIGBTR0kgdm9sdW1lJ1xuIgorbXNnc3RyICIiCisiMTEg55Wq55uu44Gu6aCY5Z+f44GvIGVudGlyZSBkaXNrIOOCkuimhuOBhOOAgWBTR0kgdm9sdW1lJyDlnovjgafjgYLjgovjgZPjgajjgpJcbiIKKyLlvLfjgY/mjqjlpajjgZfjgb7jgZlcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBnZXQgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICLjg4fjgqPjgrnjgq/jga7poJjln5/jgYzph43opIfjgZnjgovjgZPjgajjgavjgarjgorjgb7jgZnjgILjgb7jgZrjgZPjgozjgpLkvZXjgajjgYvjgZfjgb7jgZfjgofjgYbvvIFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgTGFzdCAlcyIKK21zZ3N0ciAiIOacgOW+jOOBriAlcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgU0dJIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3aWxsIGJlIHVucmVjb3ZlcmFibHkgbG9zdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIuaWsOOBn+OBqiBTR0kg44OH44Kj44K544Kv44Op44OZ44Or5qeL56+J5pmC44CB5aSJ5pu044Gv44Gd44Gu5pu444GN6L6844G/44KS5rG65a6a44GZ44KL44G+44GnXG4iCisi44Oh44Oi44Oq5YaF44Gr44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CC44Gd44Gu5b6M44Gv44KC44Gh44KN44KT44CB5Lul5YmN44Gu5YaF5a6544Gv5aSx44KP44KM44CBXG4iCisi5b6p5YWD44Gv5LiN5Y+v6IO944Go44Gq44KK44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8ga2VlcCBwYXJhbWV0ZXJzIG9mIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAi44OR44O844OG44Kj44K344On44OzICVkIOOBruWApOOBruS/neWtmOOCkuippuOBv+OBvuOBmeOAglxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklEPSUwMnhcdFNUQVJUPSVkXHRMRU5HVEg9JWRcbiIKK21zZ3N0ciAiSUQ9JTAyeFx06ZaL5aeLPSVkXHTplbfjgZU9JWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4Cittc2dpZCAiVW5hc3NpZ25lZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDAKK21zZ2lkICJTdW5PUyByb290IgorbXNnc3RyICJTdW5PUyDjg6vjg7zjg4giCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MQorbXNnaWQgIlN1bk9TIHN3YXAiCittc2dzdHIgIlN1bk9TIOOCueODr+ODg+ODlyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIldob2xlIGRpc2siCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBzdGFuZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICJTdW5PUyB2YXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICJTdW5PUyBhbHQg44K744Kv44K/IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgKK21zZ2lkICJTdW5PUyBjYWNoZWZzIgorbXNnc3RyICJTdW5PUyBjYWNoZWZzIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDkKK21zZ2lkICJTdW5PUyByZXNlcnZlZCIKK21zZ3N0ciAiU3VuT1Mg5LqI57SEIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDMKK21zZ2lkICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCittc2dzdHIgIkxpbnV4IHJhaWQg6Ieq5YuV5qSc5Ye6IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iCisiUHJvYmFibHkgeW91J2xsIGhhdmUgdG8gc2V0IGFsbCB0aGUgdmFsdWVzLFxuIgorImUuZy4gaGVhZHMsIHNlY3RvcnMsIGN5bGluZGVycyBhbmQgcGFydGl0aW9uc1xuIgorIm9yIGZvcmNlIGEgZnJlc2ggbGFiZWwgKHMgY29tbWFuZCBpbiBtYWluIG1lbnUpXG4iCittc2dzdHIgIiIKKyLplpPpgZXjgaPjgZ/jg4Hjgqfjg4Pjgq/jgrXjg6DlgKTjgpLmjIHjgaQgc3VuIGRpc2tsYWJlbCDjgpLmpJzlh7rjgZfjgb7jgZfjgZ/jgIJcbiIKKyLlpJrliIbjgIHjgYLjgarjgZ/jga/lhajjgabjga7lgKTjgpLoqK3lrprjgZfjgarjgZHjgozjgbDjgarjgonjgarjgYTjgafjgZfjgofjgYZcbiIKKyLkvosuIOODmOODg+ODieaVsOOAgeOCu+OCr+OCv+aVsOOAgeOCt+ODquODs+ODgOaVsOWPiuOBs+ODkeODvOODhuOCo+OCt+ODp+ODs+aVsFxuIgorIuOBguOCi+OBhOOBryBmcmVzaCBsYWJlbCDjgpLlvLfliLbjgZfjgabjgY/jgaDjgZXjgYQgKOODoeOCpOODs+ODoeODi+ODpeODvOOBriBzIOOCs+ODnuODs+ODiSlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgdmVyc2lvbiBbMHglMDh4XS5cbiIKK21zZ3N0ciAi6ZaT6YGV44Gj44Gf44OQ44O844K444On44OzIFsweCUwOHhdIOOBriBzdW4g44OH44Kj44K544Kv44Op44OZ44Or44KS5qSc5Ye644GX44G+44GX44Gf44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBzYW5pdHkgWzB4JTA4eF0uXG4iCittc2dzdHIgIumWk+mBleOBo+OBn+ODgeOCp+ODg+OCr+OCteODoOWApOOBriBzZ2kg44OH44Kj44K544Kv44Op44OZ44Or44KS5qSc5Ye644GX44G+44GX44Gf44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgIumWk+mBleOBo+OBnyBudW1fcGFydGl0aW9ucyBbJXVdIOOBriBzdW4g44OH44Kj44K544Kv44Op44OZ44Or44KS5qSc5Ye644GX44G+44GX44Gf44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBXcm9uZyB2YWx1ZXMgbmVlZCB0byBiZSBmaXhlZCB1cCBhbmQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyhyaXRlKVxuIgorbXNnc3RyICIiCisi6K2m5ZGKOiDpoJjln5/jg4bjg7zjg5bjg6sgJTIkZCDjga7kuI3mraPjgarjg5Xjg6njgrAgMHglMSQwNHgg44GvIHco5pu444GN6L6844G/KeOBq+OCiOOBo+OBplxuIgorIuato+W4uOOBq+OBquOCiuOBvuOBmVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBzdW4gZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisi5paw44Gf44GqIHN1biBkaXNrbGFiZWwg44KS5qeL56+J44GX44G+44GZ44CC5aSJ5pu044Gv44GC44Gq44Gf44GM5pu444GN6L6844G/44KS5rG65a6a44GZ44KL44G+44Gn44CBXG4iCisi44Oh44Oi44Oq44Gr44Gu44G/5q6L44GX44G+44GZ44CC44Gd44Gu5b6M44Gv44KC44Gh44KN44KT44CB5Lul5YmN44Gu5YaF5a6544Gv5b6p5YWD44Gn44GN44G+44Gb44KT44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICLjgrvjgq/jgr8v44OI44Op44OD44KvIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2Vzbid0IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJWQg44Gv44K344Oq44Oz44OA5aKD55WM44Gn57WC44KP44Gj44Gm44GE44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAi44OR44O844OG44Kj44K344On44OzICVkIOOBr+S7luOBruOCu+OCr+OCvyAlZC0lZCDjgajph43jgarjgaPjgabjgYTjgb7jgZlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAwLSVkXG4iCittc2dzdHIgIuacquS9v+eUqOOCruODo+ODg+ODlyAtLSAwLSVkIOOCu+OCr+OCv1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAi5pyq5L2/55So44Ku44Oj44OD44OXIC0tICVkLSVkIOOCu+OCr+OCv1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdGhlciBwYXJ0aXRpb25zIGFscmVhZHkgY292ZXIgdGhlIHdob2xlIGRpc2suXG4iCisiRGVsZXRlIHNvbWUvc2hyaW5rIHRoZW0gYmVmb3JlIHJldHJ5LlxuIgorbXNnc3RyICIiCisi5LuW44Gu44OR44O844OG44Kj44K344On44Oz44GM5pei44Gr44OH44Kj44K544Kv5YWo5L2T44KS6KaG44Gj44Gm44GE44G+44GZ44CCXG4iCisi44G+44Ga44Gd44KM44KS5YmK6Zmk44GX44Gm44GL44KJ44KC44GG5LiA5bqm6Kmm44GX44Gm44GP44Gg44GV44GE44CCXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiMTEg55Wq55uu44Gu6aCY5Z+f44GvIGVudGlyZSBkaXNrIOOCkuimhuOBhOOAgWBTR0kgdm9sdW1lJyDlnovjgafjgYLjgovjgZPjgajjgpJcbiIKKyLlvLfjgY/mjqjlpajjgZfjgb7jgZlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAi44K744Kv44K/ICVkIOOBr+aXouOBq+eiuuS/nea4iOOBv+OBp+OBmVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZW4ndCBjb3ZlcmVkIHRoZSB3aG9sZSBkaXNrIHdpdGggdGhlIDNyZCBwYXJ0aXRpb24sIGJ1dCB5b3VyIHZhbHVlXG4iCisiJWQgJXMgY292ZXJzIHNvbWUgb3RoZXIgcGFydGl0aW9uLiBZb3VyIGVudHJ5IGhhcyBiZWVuIGNoYW5nZWRcbiIKKyJ0byAlZCAlc1xuIgorbXNnc3RyICIiCisiMyDnlarnm67jga7jg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgYzjg4fjgqPjgrnjgq/lhajkvZPjgpLopobjgaPjgabjgYTjgb7jgZvjgpPjgYzjgIHmjIflrprlgKQgJWQgJXMg44GvXG4iCisi5LuW44Gu44GE44GP44Gk44GL44Gu44OR44O844OG44Kj44K344On44Oz44KS6KaG44Gj44Gm44GE44G+44GZ44CC44GC44Gq44Gf44Gu6aCF55uu44GvICVkICVzIOOBq1xuIgorIuWkieabtOOBleOCjOOBvuOBl+OBn+OAglxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyLjgoLjgZfjgoIgU3VuT1MvU29sYXJpcyDkupLmj5vjgpLntq3mjIHjgZfjgZ/jgYTjga7jgafjgYLjgozjgbDjgIHjgZPjga7jg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgpJcbiIKKyJXaG9sZSBkaXNrICg1KSDjga7jgb7jgb7jgavjgZfjgabjgYrjgY/jgZPjgajjgpLogIPmha7jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIKKyIwIOOBi+OCieWni+OBvuOCiyAldSDjgrvjgq/jgr/liIbjgafjgZlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIuOBneOBruOCquODleOCu+ODg+ODiCAwIOOBruODkeODvOODhuOCo+OCt+ODp+ODs+OBryBVRlMsIEVYVDJGUyDjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DjgYvjgIFcbiIKKyJTdW5PUyBzd2FwIOOBqOOBmeOCi+OBk+OBqOOCkuW8t+OBj+aOqOWlqOOBl+OBvuOBmeOAguOBneOBk+OBqyBMaW51eCBzd2FwIOOCkue9ruOBj+OBk+OBqOOBr+OAgVxuIgorIuODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODq+OChOODluODvOODiOODluODreODg+OCr+OCkuegtOWjiuOBmeOCi+OBk+OBqOOBq+OBquOCiuOBi+OBreOBvuOBm+OCk+OAglxuIgorIuOCguOBl+OAgeOBguOBquOBn+OBjOacrOW9k+OBq+ODkeODvOODhuOCo+OCt+ODp+ODs+OBq+espuWQiCA4MiAoTGludXggc3dhcCkg44KS44Gk44GR44Gf44GR44KM44GwXG4iCisiWUVTIOOBqOetlOOBiOOBpuOBj+OBoOOBleOBhDogIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIHJwbVxuIgorIiVkIGN5bGluZGVycywgJWQgYWx0ZXJuYXRlIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyJMYWJlbCBJRDogJXNcbiIKKyJWb2x1bWUgSUQ6ICVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi44OH44Kj44K544KvICVzIChTdW4g44OH44Kj44K544Kv44Op44OZ44OrKTog44OY44OD44OJICVkLCDjgrvjgq/jgr8gJWxsdSwg5Zue6Lui5pWwICVkIHJwbVxuIgorIuOCt+ODquODs+ODgCAlZCwg5Luj5pu/44K344Oq44Oz44OAICVkLCDniannkIbjgrfjg6rjg7Pjg4AgJWRcbiIKKyIlZCDjgqjjgq/jgrnjg4jjg6njgrvjgq/jgr8v44K344Oq44Oz44OALCDjgqTjg7Pjgr/jg7zjg6rjg7zjg5YgJWQ6MVxuIgorIuODqeODmeODqyBJRDogJXNcbiIKKyLjg5zjg6rjg6Xjg7zjg6AgSUQ6ICVzXG4iCisi44Om44OL44OD44OIID0gJXMgb2YgJWQgKiA1MTIg44OQ44Kk44OIXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi44OH44Kj44K544KvICVzIChTdW4g44OH44Kj44K544Kv44Op44OZ44OrKTog44OY44OD44OJICVkLCDjgrvjgq/jgr8gJWxsdSwg44K344Oq44Oz44OAICVkXG4iCisi44Om44OL44OD44OIID0gJXMgb2YgJWQgKiA1MTIg44OQ44Kk44OIXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEZsYWcgICAgU3RhcnQgICAgICAgRW5kICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIOODleODqeOCsCAgIOWni+eCuSAgICAgIOe1gueCuSAg44OW44Ot44OD44KvICAgSWQgIOOCt+OCueODhuODoFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjI1Cittc2dpZCAiTnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIuS7o+abv+OCt+ODquODs+ODgOaVsCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYzNworbXNnaWQgIkV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICLjgrfjg6rjg7Pjg4Dmr47jga7nibnliKXjgarjgrvjgq/jgr8iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NDQKK21zZ2lkICJJbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAi44Kk44Oz44K/44O844Oq44O844OWIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjUxCittc2dpZCAiUm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIuWbnui7ouaVsCAocnBtKSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1OAorbXNnaWQgIk51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIueJqeeQhuOCt+ODquODs+ODgOaVsCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIuepuiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3Cittc2dpZCAiRkFUMTIiCittc2dzdHIgIkZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgKK21zZ2lkICJYRU5JWCByb290IgorbXNnc3RyICJYRU5JWCByb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkKK21zZ2lkICJYRU5JWCB1c3IiCittc2dzdHIgIlhFTklYIHVzciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMAorbXNnaWQgIkZBVDE2IDwzMk0iCittc2dzdHIgIkZBVDE2IDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTEKK21zZ2lkICJFeHRlbmRlZCIKK21zZ3N0ciAi5ouh5by16aCY5Z+fIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIOODluODvOODiOWPr+iDvSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNgorbXNnaWQgIk9TLzIgQm9vdCBNYW5hZ2VyIgorbXNnc3RyICJPUy8yIOODluODvOODiOODnuODjeODvOOCuOODoyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNworbXNnaWQgIlc5NSBGQVQzMiIKK21zZ3N0ciAiVzk1IEZBVDMyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE4Cittc2dpZCAiVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJXOTUgRkFUMzIgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTkKK21zZ2lkICJXOTUgRkFUMTYgKExCQSkiCittc2dzdHIgIlc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMAorbXNnaWQgIlc5NSBFeHQnZCAoTEJBKSIKK21zZ3N0ciAiVzk1IOaLoeW8temgmOWfnyAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMQorbXNnaWQgIk9QVVMiCittc2dzdHIgIk9QVVMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjIKK21zZ2lkICJIaWRkZW4gRkFUMTIiCittc2dzdHIgIumaoOOBlyBGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMworbXNnaWQgIkNvbXBhcSBkaWFnbm9zdGljcyIKK21zZ3N0ciAiQ29tcGFxIOiouuaWrSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICLpmqDjgZcgRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNQorbXNnaWQgIkhpZGRlbiBGQVQxNiIKK21zZ3N0ciAi6Zqg44GXIEZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAi6Zqg44GXIEhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJBU1QgU21hcnRTbGVlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIumaoOOBlyBXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICLpmqDjgZcgVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAi6Zqg44GXIFc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJQYXJ0aXRpb25NYWdpYyDkv67lvqkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzQKK21zZ2lkICJWZW5peCA4MDI4NiIKK21zZ3N0ciAiVmVuaXggODAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzUKK21zZ2lkICJQUEMgUFJlUCBCb290IgorbXNnc3RyICJQUEMgUFJlUCBCb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM2Cittc2dpZCAiU0ZTIgorbXNnc3RyICJTRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzcKK21zZ2lkICJRTlg0LngiCittc2dzdHIgIlFOWDQueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOAorbXNnaWQgIlFOWDQueCAybmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDJuZCBwYXJ0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM5Cittc2dpZCAiUU5YNC54IDNyZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggM3JkIHBhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDAKK21zZ2lkICJPblRyYWNrIERNIgorbXNnc3RyICJPblRyYWNrIERNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQxCittc2dpZCAiT25UcmFjayBETTYgQXV4MSIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MgorbXNnaWQgIkNQL00iCittc2dzdHIgIkNQL00iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDMKK21zZ2lkICJPblRyYWNrIERNNiBBdXgzIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ0Cittc2dpZCAiT25UcmFja0RNNiIKK21zZ3N0ciAiT25UcmFja0RNNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NQorbXNnaWQgIkVaLURyaXZlIgorbXNnc3RyICJFWi1Ecml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NgorbXNnaWQgIkdvbGRlbiBCb3ciCittc2dzdHIgIkdvbGRlbiBCb3ciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDcKK21zZ2lkICJQcmlhbSBFZGlzayIKK21zZ3N0ciAiUHJpYW0gRWRpc2siCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk5Cittc2dpZCAiU3BlZWRTdG9yIgorbXNnc3RyICJTcGVlZFN0b3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICJHTlUgSFVSRCDjgb7jgZ/jga8gU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAi5Y+k44GEIE1pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8g5Y+k44GEIExpbnV4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2Cittc2dpZCAiTGludXggc3dhcCAvIFNvbGFyaXMiCittc2dzdHIgIkxpbnV4IOOCueODr+ODg+ODlyAvIFNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTgKK21zZ2lkICJPUy8yIGhpZGRlbiBDOiBkcml2ZSIKK21zZ3N0ciAiT1MvMiDpmqDjgZcgQzog44OJ44Op44Kk44OWIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU5Cittc2dpZCAiTGludXggZXh0ZW5kZWQiCittc2dzdHIgIkxpbnV4IOaLoeW8temgmOWfnyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYxCittc2dpZCAiTlRGUyB2b2x1bWUgc2V0IgorbXNnc3RyICJOVEZTIOODnOODquODpeODvOODoOOCu+ODg+ODiCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorbXNnaWQgIkxpbnV4IHBsYWludGV4dCIKK21zZ3N0ciAiTGludXgg44OX44Os44O844Oz44OG44Kt44K544OIIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY0Cittc2dpZCAiQW1vZWJhIgorbXNnc3RyICJBbW9lYmEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjUKK21zZ2lkICJBbW9lYmEgQkJUIgorbXNnc3RyICJBbW9lYmEgQkJUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY2Cittc2dpZCAiQlNEL09TIgorbXNnc3RyICJCU0QvT1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjcKK21zZ2lkICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCittc2dzdHIgIklCTSBUaGlua3BhZCDjg4/jgqTjg5Djg43jg7zjgrfjg6fjg7MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjgKK21zZ2lkICJGcmVlQlNEIgorbXNnc3RyICJGcmVlQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY5Cittc2dpZCAiT3BlbkJTRCIKK21zZ3N0ciAiT3BlbkJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MAorbXNnaWQgIk5lWFRTVEVQIgorbXNnc3RyICJOZVhUU1RFUCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MQorbXNnaWQgIkRhcndpbiBVRlMiCittc2dzdHIgIkRhcndpbiBVRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzIKK21zZ2lkICJOZXRCU0QiCittc2dzdHIgIk5ldEJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MworbXNnaWQgIkRhcndpbiBib290IgorbXNnc3RyICJEYXJ3aW4g44OW44O844OIIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc0Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiSEZTIC8gSEZTKyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NQorbXNnaWQgIkJTREkgZnMiCittc2dzdHIgIkJTREkgZnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIkJTREkg44K544Ov44OD44OXIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc3Cittc2dpZCAiQm9vdCBXaXphcmQgaGlkZGVuIgorbXNnc3RyICLpmqDjgZcgQm9vdCBXaXphcmQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIlNvbGFyaXMg44OW44O844OIIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc5Cittc2dpZCAiU29sYXJpcyIKK21zZ3N0ciAiU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MAorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTEyKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgxCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODIKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTE2KSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MworbXNnaWQgIlN5cmlueCIKK21zZ3N0ciAiU3lyaW54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg0Cittc2dpZCAiTm9uLUZTIGRhdGEiCittc2dzdHIgIumdniBGUyDjg4fjg7zjgr8iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODUKK21zZ2lkICJDUC9NIC8gQ1RPUyAvIC4uLiIKK21zZ3N0ciAiQ1AvTSAvIENUT1MgLyAuLi4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODcKK21zZ2lkICJEZWxsIFV0aWxpdHkiCittc2dzdHIgIkRlbGwg44Om44O844OG44Kj44Oq44OG44KjIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg4Cittc2dpZCAiQm9vdEl0IgorbXNnc3RyICJCb290SXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODkKK21zZ2lkICJET1MgYWNjZXNzIgorbXNnc3RyICJET1MgYWNjZXNzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkxCittc2dpZCAiRE9TIFIvTyIKK21zZ3N0ciAiRE9TIFIvTyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NAorbXNnaWQgIkJlT1MgZnMiCittc2dzdHIgIkJlT1MgZnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTUKK21zZ2lkICJHUFQiCittc2dzdHIgIkdQVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NgorbXNnaWQgIkVGSSAoRkFULTEyLzE2LzMyKSIKK21zZ3N0ciAiRUZJIChGQVQtMTIvMTYvMzIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk3Cittc2dpZCAiTGludXgvUEEtUklTQyBib290IgorbXNnc3RyICJMaW51eC9QQS1SSVNDIOODluODvOODiCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1Mg44K744Kr44Oz44OA44OqIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICJWTXdhcmUgVk1GUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDIKK21zZ2lkICJWTXdhcmUgVk1LQ09SRSIKK21zZ3N0ciAiVk13YXJlIFZNS0NPUkUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA2Cittc2dpZCAiTEFOc3RlcCIKK21zZ3N0ciAiTEFOc3RlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDcKK21zZ2lkICJCQlQiCittc2dzdHIgIkJCVCIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3Igb24gJXMgLSBjYW5ub3Qgc2VlayB0byAlbHVcbiIKK21zZ3N0ciAiJXMg44Gu44K344O844Kv44Ko44Op44O8IC0tICVsdSDjgpLjgrfjg7zjgq/jgafjgY3jgb7jgZvjgpNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3I6IHdhbnRlZCAweCUwOHglMDh4LCBnb3QgMHglMDh4JTA4eFxuIgorbXNnc3RyICLjgrfjg7zjgq/jgqjjg6njg7w6IDB4JTA4eCUwOHgg44Gu44Gv44Ga44Gn44GX44Gf44GMIDB4JTA4eCUwOHgg44KS5Y+X44GR5Y+W44KK44G+44GX44GfXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAi44Oh44Oi44Oq44GM6Laz44KK44G+44Gb44KTIC0tIOirpuOCgeOBvuOBmVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjAgZmRpc2svc2ZkaXNrLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZXJyb3Igb24gJXMgLSBjYW5ub3QgcmVhZCBzZWN0b3IgJWx1XG4iCittc2dzdHIgIiVzIOOBruiqreOBv+WPluOCiuOCqOODqeODvCAtLSDjgrvjgq/jgr8gJWx1IOOCkuiqreOCgeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAi44Ko44Op44O8OiDjgrvjgq/jgr8gJWx1IOOBq+OBryBtc2RvcyDjgrXjgqTjg7PjgYzjgYLjgorjgb7jgZvjgpNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzIC0gY2Fubm90IHdyaXRlIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiJXMg44G444Gu5pu444GN6L6844G/44Ko44Op44O8IC0tIOOCu+OCr+OCvyAlbHUg44Gr5pu444GN6L6844KB44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODs+OCu+OCr+OCv+S/neWtmOODleOCoeOCpOODqyAoJXMpIOOCkuOCquODvOODl+ODs+OBp+OBjeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXMg44G444Gu5pu444GN6L6844G/44Ko44Op44O8XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAi44OR44O844OG44Kj44K344On44Oz5b6p5YWD44OV44Kh44Kk44OrICglcykg44Gu5oOF5aCx44KS5Y+W5b6X44Gn44GN44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0MAorbXNnaWQgInBhcnRpdGlvbiByZXN0b3JlIGZpbGUgaGFzIHdyb25nIHNpemUgLSBub3QgcmVzdG9yaW5nXG4iCittc2dzdHIgIiIKKyLjg5Hjg7zjg4bjgqPjgrfjg6fjg7PlvqnlhYPjg5XjgqHjgqTjg6vjga7jgrXjgqTjgrrjgYzplpPpgZXjgaPjgabjgYTjgb7jgZkgLS0g5b6p5YWD44KS6KGM44Gq44GE44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/XG4iCittc2dzdHIgIuODoeODouODquOBjOi2s+OCiuOBquOBhO+8n1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODs+W+qeWFg+ODleOCoeOCpOODqyAoJXMpIOOCkumWi+OBkeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcmVhZGluZyAlc1xuIgorbXNnc3RyICIlcyDjga7oqq3jgb/lj5bjgorjgqjjg6njg7xcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIGRldmljZSAlcyBmb3Igd3JpdGluZ1xuIgorbXNnc3RyICLjg4fjg5DjgqTjgrkgJXMg44KS5pu444GN6L6844G/44KI44GG44Gr44Kq44O844OX44Oz44Gn44GN44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nIHNlY3RvciAlbHUgb24gJXNcbiIKK21zZ3N0ciAiJTIkcyDjga7jgrvjgq/jgr8gJTEkbHUg44G444Gu5pu444GN6L6844G/44Ko44Op44O8XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IGdlb21ldHJ5XG4iCittc2dzdHIgIuODh+OCo+OCueOCryAlczog44K444Kq44Oh44OI44Oq44KS5Y+W5b6X44Gn44GN44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ1NworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IHNpemVcbiIKK21zZ3N0ciAi44OH44Kj44K544KvICVzOiDjgrXjgqTjgrrjgpLlj5blvpfjgafjgY3jgb7jgZvjgpNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzdGFydD0lbHUgLSB0aGlzIGxvb2tzIGxpa2UgYSBwYXJ0aXRpb24gcmF0aGVyIHRoYW5cbiIKKyJ0aGUgZW50aXJlIGRpc2suIFVzaW5nIGZkaXNrIG9uIGl0IGlzIHByb2JhYmx5IG1lYW5pbmdsZXNzLlxuIgorIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIgorbXNnc3RyICIiCisi6K2m5ZGKOiBzdGFydD0lbHUgLS0g44GT44Gu5YCk44Gv44OR44O844OG44Kj44K344On44Oz44Gn44Gv44Gq44GP44OH44Kj44K544Kv44Gd44Gu44KC44Gu44Gu44KI44GG44GnIgorIuOBmeOAglxuIgorIuOBk+OBk+OBqyBmZGlzayDjgpLliKnnlKjjgZnjgovjga7jga/lpJrliIbmhI/lkbPjgYzjgarjgYTjgZPjgajjgafjgZnjgIJcbiIKKyJb5pys5b2T44Gr44GT44KM44KS6KGM44Gq44GE44Gf44GR44KM44Gw44CBLS1mb3JjZSDjgqrjg5fjgrfjg6fjg7PjgpLkvb/jgaPjgabjgY/jgaDjgZXjgYRdXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBoZWFkc1xuIgorbXNnc3RyICLorablkYo6IEhESU9fR0VUR0VPIOOBq+OCiOOCi+OBqOOAgeODmOODg+ODieaVsOOBryAlbHUg44Gn44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iCittc2dzdHIgIuitpuWRijogSERJT19HRVRHRU8g44Gr44KI44KL44Go44CB44K744Kv44K/5pWw44GvICVsdSDjgafjgZlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIuitpuWRijogQkxLR0VUU0laRS9IRElPX0dFVEdFTyDjgavjgojjgovjgajjgIHjgrfjg6rjg7Pjg4DmlbDjga8gJWx1IOOBp+OBmVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyLorablkYo6IOOCu+OCr+OCv+aVsCAoJWx1KSDjgYzmnJvjgb7jgZfjgY/jgYLjgorjgb7jgZvjgpMgLS0g5aSn5oq144Gu5aC05ZCIIDYzIOOBp+OBmeOAglxuIgorIuOBk+OCjOOBr+OAgUMvSC9TIOOCkuOCouODieODrOOCueWPluW+l+OBq+WIqeeUqOOBl+OBpuOBhOOCi+WFqOOBpuOBruOCveODleODiOOCpuOCp+OCouOBp+OAgVxuIgorIuWVj+mhjOOBjOeUn+OBmuOCi+OBk+OBqOOBq+OBquOCiuOBvuOBmeOAglxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIuODh+OCo+OCueOCryAlczog44K344Oq44Oz44OA5pWwICVsdeOAgeODmOODg+ODieaVsCAlbHXjgIElbHUg44K744Kv44K/L+ODiOODqeODg+OCr1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKyLjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJTIkcyDjga7jg5jjg4Pjg4nmlbDjgajjgZfjgaYgJTEkcyDjga/kuI3lj6/og73jgafjgZk6ICUzJGx1ICgwLSU0JGx1IOOBq+OBl+OBpiIKKyLjgY/jgaDjgZXjgYQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBzZWN0b3I6ICVsdSAoc2hvdWxkIGJlIGluIDEtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIuODkeODvOODhuOCo+OCt+ODp+ODsyAlMiRzIOOBruOCu+OCr+OCv+aVsOOBqOOBl+OBpiAlMSRzIOOBr+S4jeWPr+iDveOBp+OBmTogJTMkbHUgKDEtJTQkbHUg44Gr44GX44GmIgorIuOBj+OBoOOBleOBhClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGN5bGluZGVyczogJWx1IChzaG91bGQgYmUgaW4gMC0lIgorImx1KVxuIgorbXNnc3RyICIiCisi44OR44O844OG44Kj44K344On44OzICUyJHMg44Gu44K344Oq44Oz44OA5pWw44Go44GX44GmICUxJHMg44Gv5LiN5Y+v6IO944Gn44GZOiAlMyRsdSAoMC0lNCRsdSDjgavjgZciCisi44Gm44GP44Gg44GV44GEKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIiIKKyJJZCAg5ZCN5YmNXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODq+OCkuWGjeiqreOBv+i+vOOBv+S4rS4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTEKK21zZ2lkICIiCisiVGhlIGNvbW1hbmQgdG8gcmUtcmVhZCB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZC5cbiIKKyJSdW4gcGFydHByb2JlKDgpLCBrcGFydHgoOCkgb3IgcmVib290IHlvdXIgc3lzdGVtIG5vdyxcbiIKKyJiZWZvcmUgdXNpbmcgbWtmc1xuIgorbXNnc3RyICIiCisi44OR44O844OG44Kj44K344On44Oz44OG44O844OW44Or44KS5YaN6Kqt6L6844G/44GZ44KL44Kz44Oe44Oz44OJ44GM5aSx5pWX44GX44G+44GX44Gf44CCXG4iCisibWtmcyDjgpLkvb/jgYbliY3jgavjgIFwYXJ0cHJvYmUoOCkg44GLIGtwYXJ0eCg4KSDjgpLlrp/ooYzjgZnjgovjgYvjgIFcbiIKKyLjgrfjgrnjg4bjg6DjgpLlho3otbfli5XjgZfjgabjgY/jgaDjgZXjgYRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNsb3NpbmcgJXNcbiIKK21zZ3N0ciAiJXMg44Gu44Kv44Ot44O844K644Ko44Op44O8XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IOOBneOBruOCiOOBhuOBquODkeODvOODhuOCo+OCt+ODp+ODs+OBr+OBguOCiuOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo4NzgKK21zZ2lkICJ1bnJlY29nbml6ZWQgZm9ybWF0IC0gdXNpbmcgc2VjdG9yc1xuIgorbXNnc3RyICLoqo3orZjjgafjgY3jgarjgYTjg5Xjgqnjg7zjg57jg4Pjg4ggLS0g44K744Kv44K/5pWw44KS5Yip55So44GX44G+44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkyOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmltcGxlbWVudGVkIGZvcm1hdCAtIHVzaW5nICVzXG4iCittc2dzdHIgIuacquWun+ijheOBruODleOCqeODvOODnuODg+ODiCAtLSAlcyDjgpLliKnnlKjjgZfjgb7jgZlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyLjg6bjg4vjg4Pjg4ggPSAlbHUg44OQ44Kk44OI44Gu44K344Oq44Oz44OA44CBMTAyNCDjg5DjgqTjg4jjga7jg5bjg63jg4Pjgq/jgIElZCDjgYvjgonmlbDjgYjjgb7jgZlcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICLjg4fjg5DjgqTjgrkg44OW44O844OIIOWni+eCuSAgICDntYLngrkgI+OCt+ODquODs+ODgCAj44OW44Ot44OD44KvICBJZCAg44K344K544OG44OgXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisi44Om44OL44OD44OIID0gNTEyIOODkOOCpOODiOOBruOCu+OCr+OCv+OAgSVkIOOBi+OCieaVsOOBiOOBvuOBmVxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICAgU3RhcnQgICAgICAgRW5kICAgI3NlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAi44OH44OQ44Kk44K5IOODluODvOODiCAgICDlp4vngrkgICAgICDntYLngrkgICAgI+OCu+OCr+OCvyAgSWQg44K344K544OG44OgXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisi44Om44OL44OD44OIID0gMTAyNCDjg5DjgqTjg4jjga7jg5bjg63jg4Pjgq/jgIElZCDjgYvjgonmlbDjgYjjgb7jgZlcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgU3RhcnQgICAgICAgRW5kICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiDjg4fjg5DjgqTjgrkg44OW44O844OIIOWni+eCuSAgICAgICAg57WC54K5ICAj44OW44Ot44OD44KvIElEICDjgrfjgrnjg4bjg6BcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IG1lYmlieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiVW5pdHMgPSAxMDQ4NTc2IOODkOOCpOODiOOCkuODoeOCrOODkOOCpOODiOOAgTEwMjQg44OQ44Kk44OI44Gu44OW44Ot44OD44Kv44CBJWQg44GL44KJ5pWw44GI44G+44GZXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgIEVuZCAgICBNaUIgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAi44OH44OQ44Kk44K5IOODluODvOODiCDlp4vngrkgICDntYLngrkgICBNaUIgICPjg5bjg63jg4Pjgq8gICBJZCAg44K344K544OG44OgXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJcdFx06ZaL5aeLOiAoYyxoLHMpIOacn+W+heWApCAoJWxkLCVsZCwlbGQpICAoJWxkLCVsZCwlbGQpIOOCkueZuuimi1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIlx0XHTntYLngrk6IChjLGgscykg5pyf5b6F5YCkICglbGQsJWxkLCVsZCkgICglbGQsJWxkLCVsZCkg44KS55m66KaLXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICLjgrfjg6rjg7Pjg4AgJWxkIOOBq+ODkeODvOODhuOCo+OCt+ODp+ODs+OBrue1gueCueOAgeODh+OCo+OCueOCr+OBruacgOW+jOOCkui2iuOBiOOBpuOBhOOBvuOBmVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTMzCittc2dpZCAiTm8gcGFydGl0aW9ucyBmb3VuZFxuIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgYzopovjgaTjgYvjgorjgb7jgZvjgpNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyLorablkYo6IOODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODq+OBryBDL0gvUz0qLyVsZC8lbGQg44Go44GX44Gm5L2c5oiQ44GV44KM44Gf44KI44GG44Gn44GZXG4iCisiICAoJWxkLyVsZC8lbGQg44Gu44GL44KP44KK44GrKeOAglxuIgorIuOBk+OBruODquOCueODiOOBr+OAgeOBneOBruOCuOOCquODoeODiOODquOBqOimi+OBquOBl+OBvuOBmeOAglxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIuePvuWcqOODkeODvOODhuOCo+OCt+ODp+ODs+aDheWgseOBr+OBguOCiuOBvuOBm+OCk+OAglxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg4CisjLCBjLWZvcm1hdAorbXNnaWQgInN0cmFuZ2UsIG9ubHkgJWQgcGFydGl0aW9ucyBkZWZpbmVkLlxuIgorbXNnc3RyICLlpInjgafjgZnjgIElZCDjgaTjga7jg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgZfjgYvlrprnvqnjgZXjgozjgabjgYTjgb7jgZvjgpPjgIJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBidXQgaXMgbm90IG1hcmtlZCBFbXB0eVxuIgorbXNnc3RyICIiCisi6K2m5ZGKOiDjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJXMg44Gv44K144Kk44K6IDAg44Gn44GZ44GM44CB56m644Go44GX44Gm44Oe44O844Kv44GV44KM44Gm44GE44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIGlzIGJvb3RhYmxlXG4iCittc2dzdHIgIuitpuWRijog44OR44O844OG44Kj44K344On44OzICVzIOOBr+OCteOCpOOCuiAwIOOBquOBruOBq+ODluODvOODiOWPr+iDveOBp+OBmeOAglxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBub256ZXJvIHN0YXJ0XG4iCittc2dzdHIgIuitpuWRijog44OR44O844OG44Kj44K344On44OzICVzIOOBr+OCteOCpOOCuiAwIOOBp+OAgemdnuOCvOODreOBrumWi+Wni+S9jee9ruOBp+OBmVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyAiCittc2dzdHIgIuitpuWRijog44OR44O844OG44Kj44K344On44OzICVzIOOBr+OAgSIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJXMg44Gr5ZCr44G+44KM44Gm44GE44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9ucyAlcyAiCittc2dzdHIgIuitpuWRijog44OR44O844OG44Kj44K344On44OzICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICLjgaggJXMg44GM6YeN44Gq44Gj44Gm44GE44G+44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorIuitpuWRijog6aCY5Z+fICVzIOOBr+mgmOWfn+ODhuODvOODluODqyAo44K744Kv44K/ICVsdSkg44Gu5LiA6YOo44KS5ZCr44KT44Gn44GK44KK44CBXG4iCisi44Gd44KM44GM5Z+L44KB44KJ44KM44KL5pmC54K544Gn56C05aOK44GV44KM44KL5LqL44Gr44Gq44KK44G+44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIHN0YXJ0cyBhdCBzZWN0b3IgMFxuIgorbXNnc3RyICLorablkYo6IOODkeODvOODhuOCo+OCt+ODp+ODsyAlcyDjgYzjgrvjgq/jgr8gMCDjgYvjgonlp4vjgb7jgaPjgabjgYTjgb7jgZlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIuitpuWRijog44OR44O844OG44Kj44K344On44OzICVzIOOBr+ODh+OCo+OCueOCr+OBrue1guOCiuOCkui2iuOBiOOBpuOBhOOBvuOBmVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjY5Cittc2dpZCAiIgorIkFtb25nIHRoZSBwcmltYXJ5IHBhcnRpdGlvbnMsIGF0IG1vc3Qgb25lIGNhbiBiZSBleHRlbmRlZFxuIgorIiAoYWx0aG91Z2ggdGhpcyBpcyBub3QgYSBwcm9ibGVtIHVuZGVyIExpbnV4KVxuIgorbXNnc3RyICIiCisi5Z+65pys6aCY5Z+f44OR44O844OG44Kj44K344On44Oz44Gn44Gv44CB5ouh5by144OR44O844OG44Kj44K344On44Oz44KS5LiA44Gk44Gg44GR5L2c44KM44G+44GZXG4iCisiIO+8iExpbnV4IOOBp+OBr+WVj+mhjOOBqOOBr+OBquOCiuOBvuOBm+OCk+OBkeOCjOOBqeOCgu+8iVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIuitpuWRijog44OR44O844OG44Kj44K344On44OzICVzIOOBr+OCt+ODquODs+ODgOWig+eVjOOBi+OCieWni+OBvuOBo+OBpuOBhOOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICLorablkYo6IOODkeODvOODhuOCo+OCt+ODp+ODsyAlcyDjga/jgrfjg6rjg7Pjg4DlooPnlYzjgafntYLjgo/jgaPjgabjgYTjgb7jgZvjgpNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxMQorbXNnaWQgIiIKKyJXYXJuaW5nOiBtb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyLorablkYo6IOikh+aVsOOBruWfuuacrOmgmOWfn+ODkeODvOODhuOCo+OCt+ODp+ODs+OBjOODluODvOODiOWPr+iDveOBq+aMh+WumuOBleOCjOOBpuOBhOOBvuOBmVxuIgorIkxJTE8g44Gr44Go44Gj44Gm44Gv5ZWP6aGM44GC44KK44G+44Gb44KT44GM44CBRE9TIOOBriBNQlIg44Gv44GT44Gu44OH44Kj44K544Kv44KS44OW44O844OI44Gn44GN44Gq44GPXG4iCisi44Gq44Gj44Gm44GX44G+44GE44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTgKK21zZ2lkICIiCisiV2FybmluZzogdXN1YWxseSBvbmUgY2FuIGJvb3QgZnJvbSBwcmltYXJ5IHBhcnRpdGlvbnMgb25seVxuIgorIkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIgorbXNnc3RyICIiCisi6K2m5ZGKOiDmma7pgJrjga/ln7rmnKzjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjga7kuIDjgaTjgpLjg5bjg7zjg4jjgafjgY3jgovjgojjgYbjgavjgZfjgb7jgZnjgIJcbiIKKyJMSUxPIOOBryBg44OW44O844OI5Y+v6IO9JyDjg5Xjg6njgrDjgpLnhKHoppbjgZfjgb7jgZnjgZHjganjgoLjgIJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisi6K2m5ZGKOiDjg5bjg7zjg4jlj6/og73jgarln7rmnKzjg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgYzjgYLjgorjgb7jgZvjgpNcbiIKKyJMSUxPIOOBq+OBqOOBo+OBpuOBr+WVj+mhjOOBguOCiuOBvuOBm+OCk+OBjOOAgURPUyBNQlIg44Gv44GT44Gu44OH44Kj44K544Kv44KS44OW44O844OI44Gn44GN44Gq44GPXG4iCisi44Gq44Gj44Gm44GX44G+44GE44G+44GZ44CCXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAi6ZaL5aeLIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisi44OR44O844OG44Kj44K344On44OzICVzOiDlp4vngrk6IChjLGgscykg5pyf5b6F5YCkICglbGQsJWxkLCVsZCkgICglbGQsJWxkLCVsZCkg44KS55m66KaLXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgIue1guS6hiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIuODkeODvOODhuOCo+OCt+ODp+ODsyAlczog57WC54K5OiAoYyxoLHMpIOacn+W+heWApCAoJWxkLCVsZCwlbGQpICAoJWxkLCVsZCwlbGQpIOOCkueZuuimi1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAiIgorIuOCt+ODquODs+ODgCAlMiRsZCDjgavjgYLjgovjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJTEkcyDjga7ntYLngrnjga/jg4fjgqPjgrnjgq/jga7mnIDlvozjgpLotorjgYjjgabjgYTjgb4iCisi44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHNoaWZ0ZWQgc3RhcnQgb2YgdGhlIGV4dGQgcGFydGl0aW9uIGZyb20gJWxkIHRvICVsZFxuIgorIihGb3IgbGlzdGluZyBwdXJwb3NlcyBvbmx5LiBEbyBub3QgY2hhbmdlIGl0cyBjb250ZW50cy4pXG4iCittc2dzdHIgIiIKKyLorablkYo6IOaLoeW8temgmOWfn+OBrumWi+Wni+S9jee9ruOBjCAlbGQg44GL44KJICVsZCDjgavnp7vjgZXjgozjgb7jgZfjgZ9cbiIKKyLvvIjjg6rjgrnjg4jooajnpLrjga7ngrrjgaDjgZHjgafjgZnjgILjgZ3jga7lhoXlrrnjgavlpInmm7Tjga/jgYLjgorjgb7jgZvjgpPjgILvvIlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM4NAorbXNnaWQgIiIKKyJXYXJuaW5nOiBleHRlbmRlZCBwYXJ0aXRpb24gZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeS5cbiIKKyJET1MgYW5kIExpbnV4IHdpbGwgaW50ZXJwcmV0IHRoZSBjb250ZW50cyBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIuitpuWRijog5ouh5by16aCY5Z+f44GM44K344Oq44Oz44OA5aKD55WM44GL44KJ5aeL44G+44Gj44Gm44GE44G+44Gb44KTXG4iCisiRE9TIOOBqCBMaW51eCDjga/kuK3ouqvjgpLnlbDjgarjgaPjgabop6Pph4jjgZnjgovjgafjgZfjgofjgYbjgIJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQwMiBmZGlzay9zZmRpc2suYzoxNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnMgLSBpZ25vcmluZyB0aG9zZSBwYXN0IG5yICglZClcbiIKK21zZ3N0ciAi44OR44O844OG44Kj44K344On44Oz44GM5aSa44GZ44GO44G+44GZIC0tIG5yICglZCkg5Lul6ZmN44KS54Sh6KaW44GX44G+44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MTcKK21zZ2lkICJ0cmVlIG9mIHBhcnRpdGlvbnM/XG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODs+OBruODhOODquODvO+8n1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTI1Cittc2dpZCAiZGV0ZWN0ZWQgRGlzayBNYW5hZ2VyIC0gdW5hYmxlIHRvIGhhbmRsZSB0aGF0XG4iCittc2dzdHIgIkRpc2sgTWFuYWdlciDjgpLmpJzlh7ogLS0g44GT44KM44KS5o2V5o2J44Gn44GN44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIkRNNiDnvbLlkI3jgpLnmbroposgLS0g6Kum44KB44G+44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTIKK21zZ2lkICJzdHJhbmdlLi4uLCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICLlpInjgafjgZkuLi4sIOOCteOCpOOCuiAwIOOBruaLoeW8teODkeODvOODhuOCo+OCt+ODp+ODsyDvvJ9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCittc2dpZCAic3RyYW5nZS4uLiwgYSBCU0QgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAi5aSJ44Gn44GZLi4uLCDjgrXjgqTjgrogMCDjga4gQlNEIOODkeODvOODhuOCo+OCt+ODp+ODs++8n1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iCittc2dzdHIgIiAlczog6KqN6K2Y44Gn44GN44Gq44GE44OR44O844OG44Kj44K344On44Oz6aCY5Z+f44K/44Kk44OXXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIi1uIOODleODqeOCsOOBjOS4juOBiOOCieOCjOOBvuOBl+OBnzog5L2V44KC5aSJ5pu044GX44G+44Gb44KT44Gn44GX44GfXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzIKK21zZ2lkICJGYWlsZWQgc2F2aW5nIHRoZSBvbGQgc2VjdG9ycyAtIGFib3J0aW5nXG4iCittc2dzdHIgIuWPpOOBhOOCu+OCr+OCv+OBruS/neWtmOOBq+WkseaVlyAtLSDkuK3mlq3jgZfjgb7jgZlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzNyBmZGlzay9zZmRpc2suYzoxNjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB3cml0aW5nIHRoZSBwYXJ0aXRpb24gb24gJXNcbiIKK21zZ3N0ciAiJXMg44Gu44OR44O844OG44Kj44K344On44Oz5pu444GN6L6844G/44Gr5aSx5pWXXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3MTkKK21zZ2lkICJsb25nIG9yIGluY29tcGxldGUgaW5wdXQgbGluZSAtIHF1aXR0aW5nXG4iCittc2dzdHIgIumVt+OBhOOBi+S4jeWujOWFqOOBquihjOOBruWFpeWKmyAtLSDkuK3mraLjgZfjgb7jgZlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc1NQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogYD0nIGV4cGVjdGVkIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgIuWFpeWKm+OCqOODqeODvDogYD0nIOOBryAlcyDjg5XjgqPjg7zjg6vjg4njga7lvozjgavjgZfjgabjgY/jgaDjgZXjgYRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogdW5leHBlY3RlZCBjaGFyYWN0ZXIgJWMgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAi5YWl5Yqb44Ko44Op44O8OiAlMiRzIOODleOCo+ODvOODq+ODieOBruW+jOOBruS6iOacn+OBl+OBquOBhOaWh+WtlyBgJTEkYydcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bnJlY29nbml6ZWQgaW5wdXQ6ICVzXG4iCittc2dzdHIgIuiqjeitmOOBp+OBjeOBquOBhOWFpeWKmzogJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgIuaVsOWtl+OBjOWkp+OBjeOBmeOBjuOBvuOBmVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxODE0Cittc2dpZCAidHJhaWxpbmcganVuayBhZnRlciBudW1iZXJcbiIKK21zZ3N0ciAi5pWw5a2X44Gu5b6M44KN44Gr44K044Of44GM5LuY44GE44Gm44GE44G+44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7PoqJjov7DlrZDjga7nqbrjgY3jgYzjgYLjgorjgb7jgZvjgpNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTk3MQorbXNnaWQgImNhbm5vdCBidWlsZCBzdXJyb3VuZGluZyBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAi5ouh5by144OR44O844OG44Kj44K344On44Oz44Gu5Zuy44GE44KS5qeL56+J44Gn44GN44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwMjIKK21zZ2lkICJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIKK21zZ3N0ciAi5YWl5Yqb44OV44Kj44O844Or44OJ44GM5aSa44GZ44GO44G+44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIuOBk+OCjOS7peS4iuOBruepuuOBjeOBjOOBguOCiuOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIuS4jeato+OBquOCv+OCpOODl1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGdpdmVuIHNpemUgKCVsdSkgZXhjZWVkcyBtYXggYWxsb3dhYmxlIHNpemUgKCVsdSlcbiIKK21zZ3N0ciAiIgorIuitpuWRijog5LiO44GI44KJ44KM44Gf44K144Kk44K6ICglbHUpIOOBr+OAgeioseWuueOBp+OBjeOCi+acgOWkp+OCteOCpOOCuiAoJWx1KSDjgpLotorjgYjjgabjgYTjgb7jgZlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjExMworbXNnaWQgIldhcm5pbmc6IGVtcHR5IHBhcnRpdGlvblxuIgorbXNnc3RyICLorablkYo6IOepuuOBruODkeODvOODhuOCo+OCt+ODp+ODs1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBwYXJ0aXRpb24gc3RhcnQgKGVhcmxpZXN0ICVsdSlcbiIKK21zZ3N0ciAi6K2m5ZGKOiDkuI3mraPjgarjg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgYzlp4vjgb7jgaPjgabjgYTjgb7jgZkgKOS4gOeVquacgOWInSAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNDAKK21zZ2lkICJ1bnJlY29nbml6ZWQgYm9vdGFibGUgZmxhZyAtIGNob29zZSAtIG9yICpcbiIKK21zZ3N0ciAi6KqN6K2Y44Gn44GN44Gq44GE44OW44O844OI5Y+v6IO944OV44Op44KwIC0tIC0g44GLICog44KS6YG444KT44Gn44GP44Gg44GV44GEXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNTcgZmRpc2svc2ZkaXNrLmM6MjE3MAorbXNnaWQgInBhcnRpYWwgYyxoLHMgc3BlY2lmaWNhdGlvbj9cbiIKK21zZ3N0ciAiYyxoLHMg44Gu5LiA6YOo44KS5oyH5a6a77yfXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxODEKK21zZ2lkICJFeHRlbmRlZCBwYXJ0aXRpb24gbm90IHdoZXJlIGV4cGVjdGVkXG4iCittc2dzdHIgIuaLoeW8teODkeODvOODhuOCo+OCt+ODp+ODs+OBjOS6iOacn+OBl+OBn+WgtOaJgOOBq+OBguOCiuOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjEzCittc2dpZCAiYmFkIGlucHV0XG4iCittc2dzdHIgIuS4jeato+OBquWFpeWKm1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjM1Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9uc1xuIgorbXNnc3RyICLjg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgYzlpJrjgZnjgY7jgb7jgZlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisi5Lul5LiL44Gu5pu45byP44Gn5YWl5Yqb44GX44Gm5LiL44GV44GEIC0tIOaMh+WumuOBl+OBquOBi+OBo+OBn+ODleOCo+ODvOODq+ODieOBq+OBr+WIneacn+WApOOCkuOCu+ODg+ODiOOBl+OBviIKKyLjgZlcbiIKKyI8c3RhcnQ+IDxzaXplPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorIuaZrumAmuOBryA8c3RhcnQ+IOOBqCA8c2l6ZT4gKOOBneOBl+OBpuaBkOOCieOBjyA8dHlwZT4p44KS5oyH5a6a44GZ44KL44Gg44GR44Gn5qeL44GE44G+44Gb44KT44CCXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBkZXZpY2UgLi4uXG4iCittc2dzdHIgIuS9v+OBhOaWuTogJXMgW+OCquODl+OCt+ODp+ODs10g44OH44OQ44Kk44K55ZCNLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTUKK21zZ2lkICJkZXZpY2U6IHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhIG9yIC9kZXYvc2RhIgorbXNnc3RyICLjg4fjg5DjgqTjgrk6IC9kZXYvaGRhIOOChCAvZGV2L3NkYSDjga7mp5jjgarkvZXjgYsiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgIuacieebiuOBquOCquODl+OCt+ODp+ODszoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTcKK21zZ2lkICIgICAgLXMgW29yIC0tc2hvdy1zaXplXTogbGlzdCBzaXplIG9mIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICAgLXMgW29yIC0tc2hvdy1zaXplXTog44OR44O844OG44Kj44K344On44Oz44K144Kk44K644Gu44Oq44K544OIIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiAgICAtYyBbb3IgLS1pZF06ICAgICAgICDjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgSUQg44Gu6KGo56S644G+44Gf44Gv5aSJ5pu0IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk5Cittc2dpZCAiICAgIC1sIFtvciAtLWxpc3RdOiAgICAgIGxpc3QgcGFydGl0aW9ucyBvZiBlYWNoIGRldmljZSIKK21zZ3N0ciAiICAgIC1sIFtvciAtLWxpc3RdOiAgICAgIOODh+ODkOOCpOOCueavjuOBruODkeODvOODhuOCo+OCt+ODp+ODs+ODquOCueODiCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAtZCBbb3IgLS1kdW1wXTogICAgICBpZGVtLCBidXQgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGxhdGVyIGlucHV0IgorbXNnc3RyICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAg5YmN44Gr5ZCM44GY44Gg44GM44CB5b6M44Gu5YWl5Yqb5pu45byP44Gr5rK/44GG44KI44GG44Gr44GZ44KLIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiAgICAtaSBbb3IgLS1pbmNyZW1lbnRdOiDjgrfjg6rjg7Pjg4DmlbDjgarjganjgIIwIOOBp+OBr+OBquOBjyAxIOOBi+OCiSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMgorbXNnaWQgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0L3JlcG9ydCBpbiB1bml0cyBvZiBzZWN0b3JzL2Jsb2Nrcy9jeWxpbmRlcnMvIgorIk1CIgorbXNnc3RyICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIOOCu+OCr+OCvy/jg5bjg63jg4Pjgq8v44K344Oq44Oz44OAL01CIOOBruODpuODi+ODg+ODiOOBruWPl+eQhi/loLHlkYoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDMKK21zZ2lkICIgICAgLVQgW29yIC0tbGlzdC10eXBlc106bGlzdCB0aGUga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICAgLVQgW29yIC0tbGlzdC10eXBlc1065pei55+l44Gu44OR44O844OG44Kj44K344On44Oz44K/44Kk44OX44Gu44Oq44K544OIIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA0Cittc2dpZCAiICAgIC1EIFtvciAtLURPU106ICAgICAgIGZvciBET1MtY29tcGF0aWJpbGl0eTogd2FzdGUgYSBsaXR0bGUgc3BhY2UiCittc2dzdHIgIiAgICAtRCBbb3IgLS1ET1NdOiAgICAgICBET1Mg5LqS5o+b44Oi44O844OJIC0tIOepuumWk+OBjOWwkeOBl+eEoemnhOOBq+OBquOCiuOBvuOBmSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAtUiBbb3IgLS1yZS1yZWFkXTogICBtYWtlIGtlcm5lbCByZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIOOCq+ODvOODjeODq+OBq+ODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODq+OCkuWGjeiqrei+vOOBv+OBleOBm+OCiyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgICAtTiMgOiAgICAgICAgICAgICAgICBjaGFuZ2Ugb25seSB0aGUgcGFydGl0aW9uIHdpdGggbnVtYmVyICMiCittc2dzdHIgIiAgICAtTiMgOiAgICAgICAgICAgICAgICDmjIflrprnlarlj7cjIOOBruODkeODvOODhuOCo+OCt+ODp+ODs+OBruOBv+WkieabtOOBmeOCiyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBkbyBub3QgYWN0dWFsbHkgd3JpdGUgdG8gZGlzayIKK21zZ3N0ciAiICAgIC1uIDogICAgICAgICAgICAgICAgIOODh+OCo+OCueOCr+OBuOOBruWun+mam+OBruabuOi+vOOBv+OCkuihjOOCj+OBquOBhCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOAorbXNnaWQgIiIKKyIgICAgLU8gZmlsZSA6ICAgICAgICAgICAgc2F2ZSB0aGUgc2VjdG9ycyB0aGF0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gdG8gZmlsZSIKK21zZ3N0ciAiICAgIC1PIGZpbGUgOiAgICAgICAgICAgIOS4iuabuOOBjeOBleOCjOOCi+OCu+OCr+OCv+OCkuODleOCoeOCpOODq+OBq+S/neWtmOOBmeOCiyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAtSSBmaWxlIDogICAgICAgICAgICByZXN0b3JlIHRoZXNlIHNlY3RvcnMgYWdhaW4iCittc2dzdHIgIiAgICAtSSBmaWxlIDogICAgICAgICAgICDjgrvjgq/jgr/jgpLjg5XjgqHjgqTjg6vjgYvjgonlvqnlhYPjgZnjgosiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgLXYgW29yIC0tdmVyc2lvbl06ICAgcHJpbnQgdmVyc2lvbiIKK21zZ3N0ciAiICAgIC12IFtvciAtLXZlcnNpb25dOiAgIOODkOODvOOCuOODp+ODs+OCkuihqOekuuOBmeOCiyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICDjgZPjga7jg6Hjg4Pjgrvjg7zjgrjjgpLooajnpLrjgZnjgosiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTIKK21zZ2lkICJkYW5nZXJvdXMgb3B0aW9uczoiCittc2dzdHIgIuWNsemZuuOBquOCquODl+OCt+ODp+ODszoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTMKK21zZ2lkICIgICAgLWcgW29yIC0tc2hvdy1nZW9tZXRyeV06IHByaW50IHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBnZW9tZXRyeSIKK21zZ3N0ciAiICAgIC1nIFtvciAtLXNob3ctZ2VvbWV0cnldOiDjgqvjg7zjg43jg6vjga7jgrjjgqrjg6Hjg4jjg6rmg4XloLHjgpLooajnpLrjgZnjgosiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTQKK21zZ2lkICIiCisiICAgIC1HIFtvciAtLXNob3ctcHQtZ2VvbWV0cnldOiBwcmludCBnZW9tZXRyeSBndWVzc2VkIGZyb20gdGhlIHBhcnRpdGlvbiAiCisidGFibGUiCittc2dzdHIgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IOmgmOWfn+ODhuODvOODluODq+OBi+OCieaOqOa4rOOBleOCjOOCi+OCuOOCquODoeODiOODquaDheWgseOCkuihqCIKKyLnpLrjgZnjgosiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCBbb3IgLS1zaG93LWV4dGVuZGVkXTog5ouh5by16aCY5Z+f44Oq44K544OI44KC6KGo56S644GZ44KLXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICDjgb7jgZ/jga/jgZ3jgozjgonjga7oqJjov7DlrZDjga7lhaXlipvjgpLlvpfjgosiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTcKK21zZ2lkICIiCisiICAgIC1MICBbb3IgLS1MaW51eF06ICAgICAgZG8gbm90IGNvbXBsYWluIGFib3V0IHRoaW5ncyBpcnJlbGV2YW50IGZvciBMaW51eCIKK21zZ3N0ciAiICAgIC1MICBbb3IgLS1MaW51eF06ICAgICAgTGludXgg44Gr44Gd44GQ44KP44Gq44GP44Gm44KC5paH5Y+l44KS5LqR44KP44Gq44GEIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAg6K2m5ZGK44Oh44OD44K744O844K444KS5oqR5Yi244GZ44KLIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiICAgIOOCuOOCquODoeODiOODquaknOWHuuOCkuW8t+WItuaMh+WumuOBp+OBjeOBvuOBmToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTrkvb/nlKjjgZnjgovjgrfjg6rjg7Pjg4DmlbDjgpLoqK3lrprjgZnjgosiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjEKK21zZ2lkICIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICBzZXQgdGhlIG51bWJlciBvZiBoZWFkcyB0byB1c2UiCittc2dzdHIgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIOS9v+eUqOOBmeOCi+ODmOODg+ODieaVsOOCkuioreWumuOBmeOCiyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLVMjIFtvciAtLXNlY3RvcnMgI106ICDkvb/nlKjjgZnjgovjgrvjgq/jgr/mlbDjgpLoqK3lrprjgZnjgosiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjMKK21zZ2lkICJZb3UgY2FuIGRpc2FibGUgYWxsIGNvbnNpc3RlbmN5IGNoZWNraW5nIHdpdGg6IgorbXNnc3RyICLnn5vnm77jga7jg4Hjgqfjg4Pjgq/jgpLooYzjgo/jgarjgYTjgojjgYbjgavjgafjgY3jgb7jgZk6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzI0Cittc2dpZCAiICAgIC1mICBbb3IgLS1mb3JjZV06ICAgICAgZG8gd2hhdCBJIHNheSwgZXZlbiBpZiBpdCBpcyBzdHVwaWQiCittc2dzdHIgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIOOBiuOBi+OBl+OBquaMh+WumuOCkuihjOOBo+OBpuOCguOAgeOBneOBruOBvuOBvuWun+ihjOOBl+OBvuOBmSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAi5L2/44GE5pa5OiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2VcdFx0IGxpc3QgYWN0aXZlIHBhcnRpdGlvbnMgb24gZGV2aWNlXG4iCittc2dzdHIgIiVzIOODh+ODkOOCpOOCuVx0XHQg44OH44OQ44Kk44K55LiK44Gu44Ki44Kv44OG44Kj44OW6aCY5Z+f44KS44Oq44K544OI44GX44G+44GZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIiCisiJXMg44OH44OQ44Kk44K5IG4xIG4yIC4uLiBuMSDjgpLjgqLjgq/jg4bjgqPjg5bjgavjgZfjgaYuLi4sIOaui+OCiuOCkumdnuOCouOCr+ODhuOCo+ODluOBq+OBl+OBvuOBmVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIlcyAtQW4g44OH44OQ44Kk44K5XHQgbiDjgpLjgqLjgq/jg4bjgqPjg7TjgavjgZfjgIHjgZ3jgozku6XlpJbjgpLpnZ7jgqLjgq/jg4bjgqPjg5bjgavjgZfjgb7jgZlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgc2ZkaXNrICIKKyJkb2Vzbid0IHN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDU2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIuWFqOOBpuOBruODgeOCp+ODg+OCr+OCkui2hei2iuOBleOBm+OCi+OBq+OBryAtLWZvcmNlIOODleODqeOCsOOCkuS9v+OBo+OBpuOBj+OBoOOBleOBhOOAglxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDk1Cittc2dpZCAibm8gY29tbWFuZD9cbiIKK21zZ3N0ciAi44Kz44Oe44Oz44OJ44Gq44GX77yfXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAidG90YWw6ICVsbHUgYmxvY2tzXG4iCittc2dzdHIgIuWQiOioiDogJWxsdSDjg5bjg63jg4Pjgq9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1wcmludC1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlclxuIgorbXNnc3RyICLkvb/jgYTmlrk6IHNmZGlzayAtLXByaW50LWlkIOODh+ODkOOCpOOCuSDjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pnlarlj7dcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MgorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgSWRcbiIKK21zZ3N0ciAi5L2/44GE5pa5OiBzZmRpc2sgLS1jaGFuZ2UtaWQg44OH44OQ44Kk44K5IOODkeODvOODhuOCo+OCt+ODp+ODs+eVquWPtyBJRFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAi5L2/44GE5pa5OiBzZmRpc2sgLS1pZCDjg4fjg5DjgqTjgrkg44OR44O844OG44Kj44K344On44Oz55Wq5Y+3IFtJRF1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY4MQorbXNnaWQgImNhbiBzcGVjaWZ5IG9ubHkgb25lIGRldmljZSAoZXhjZXB0IHdpdGggLWwgb3IgLXMpXG4iCittc2dzdHIgIuS4gOOBpOOBruODh+ODkOOCpOOCueOBruOBv+aMh+WumuOBp+OBjeOBvuOBmSAoLWwg44KEIC1zIOOCkumZpOOBjylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwNworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyByZWFkLXdyaXRlXG4iCittc2dzdHIgIiVzIOOCkuiqreOBv+abuOOBjeODouODvOODieOBp+mWi+OBkeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgIiVzIOOCkuiqrei+vOOBv+eUqOOBq+mWi+OBkeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczogT0tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjc1MyBmZGlzay9zZmRpc2suYzoyNzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3lsaW5kZXJzLCAlbGQgaGVhZHMsICVsZCBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiVzOiDjgrfjg6rjg7Pjg4DmlbAgJWxk44CB44OY44OD44OJ5pWwICVsZOOAgSVsZCDjgrvjgq/jgr8v44OI44Op44OD44KvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGdldCBzaXplIG9mICVzXG4iCittc2dzdHIgIiVzIOOBruOCteOCpOOCuuOCkuWPluW+l+OBp+OBjeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODg1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBhY3RpdmUgYnl0ZTogMHgleCBpbnN0ZWFkIG9mIDB4ODBcbiIKK21zZ3N0ciAi5LiN5q2j44Gq44OW44O844OI44OV44Op44KwOiAweDgwIOOBp+OBquOBjyAweCV4IOOBp+OBmVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTAzIGZkaXNrL3NmZGlzay5jOjI5NTggZmRpc2svc2ZkaXNrLmM6Mjk5MQorbXNnaWQgIiIKKyJEb25lXG4iCisiXG4iCittc2dzdHIgIiIKKyLntYLkuoZcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgJWQgYWN0aXZlIHByaW1hcnkgcGFydGl0aW9ucy4gVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sXG4iCisiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIKK21zZ3N0ciAiIgorIiVkIOWAi+OBruOCouOCr+ODhuOCo+ODluOBquWfuuacrOmgmOWfn+ODkeODvOODhuOCo+OCt+ODp+ODs+OBjOOBguOCiuOBvuOBmeOAglxuIgorIkxJTE8g44Gn44Gv5ZWP6aGM44GC44KK44G+44Gb44KT44GM44CBRE9TIE1CUiDjga8gMSDjgaTjga7jgqLjgq/jg4bjgqPjg5bjgarjg5Hjg7zjg4bjgqPjgrfjg6fjg7PjgZfjgYtcbiIKKyLjg5bjg7zjg4jjgafjgY3jgb7jgZvjgpPjgIJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODsyAlcyDjgavjga8gSUQgJXgg44GM44GC44KK44CB6Zqg44GV44KM44Gm44GE44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICLkuI3mraPjgaogSUQgJWx4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAi44GT44Gu44OH44Kj44K544Kv44Gv54++5Zyo5L2/55So5Lit44Gn44GZ44CCXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmF0YWwgZXJyb3I6IGNhbm5vdCBmaW5kICVzXG4iCittc2dzdHIgIuiHtOWRveeahOOBquOCqOODqeODvDogJXMg44GM6KaL44Gk44GL44KK44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIuitpuWRijogJXMg44Gv44OW44Ot44OD44Kv44OH44OQ44Kk44K544Gn44Gv44GC44KK44G+44Gb44KTXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzIKK21zZ2lkICJDaGVja2luZyB0aGF0IG5vLW9uZSBpcyB1c2luZyB0aGlzIGRpc2sgcmlnaHQgbm93IC4uLlxuIgorbXNnc3RyICLnj77lnKjjgIHoqrDjgoLjgZPjga7jg4fjgqPjgrnjgq/jgpLkvb/jgaPjgabjgYTjgarjgYTjgYvjgpLoqr/jgbnjgb7jgZkuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisiXG4iCisi44GT44Gu44OH44Kj44K544Kv44Gv54++5Zyo5L2/55So5Lit44Gn44GZXG4iCisiLS0g44OR44O844OG44Kj44K344On44Oz5YaN5qeL56+J44Gv44KE44KB44Gf5pa544GM44GE44GE44Gn44GX44KH44GG44CCXG4iCisiICAg5YWo44OV44Kh44Kk44Or44K344K544OG44Og44KS44Oe44Km44Oz44OI6Kej6Zmk44GX44CB44Gd44Gu44OH44Kj44K544Kv44Gr44K544Ov44OD44OX6aCY5Z+f44GMXG4iCisiICAg44GM44GC44KM44GwIHN3YXBvZmYg44GX44Gm44GP44Gg44GV44GE44CCXG4iCisiICAg44Gh44Gq44G/44GrIC0tbm8tcmVyZWFkIOODleODqeOCsOOBp+OBk+OBruODgeOCp+ODg+OCr+OCkuaKkeWItuOBp+OBjeOBvuOBmeOAglxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM4Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgYWxsIGNoZWNrcy5cbiIKK21zZ3N0ciAi5YWo44Gm44Gu44OB44Kn44OD44Kv44KS6LaF6LaK44GV44Gb44KL44Gr44GvIC0tZm9yY2Ug44OV44Op44Kw44KS5L2/44Gj44Gm44GP44Gg44GV44GE44CCXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICJPS1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIk9sZCBzaXR1YXRpb246XG4iCittc2dzdHIgIuWPpOOBhOWgtOmdojpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCBjaGFuZ2UgaXRcbiIKK21zZ3N0ciAi44OR44O844OG44Kj44K344On44OzICVkIOOBr+WtmOWcqOOBl+OBvuOBm+OCk+OBruOBp+OAgeWkieabtOOBp+OBjeOBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBzaXR1YXRpb246XG4iCittc2dzdHIgIuaWsOOBn+OBquWgtOmdojpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisi56eB44Gv44GT44KM44KJ44Gu44OR44O844OG44Kj44K344On44Oz44Gr6Zai5LiO44GX44Gf44GP44GC44KK44G+44Gb44KTIC0tIOWkieabtOOBl+OBvuOBm+OCk+OAglxuIgorIijmnKzlvZPjgavjgZPjgozjgpLooYzjgarjgYTjgZ/jgZHjgozjgbDjgIEtLWZvcmNlIOOCquODl+OCt+ODp+ODs+OCkuS9v+OBo+OBpuOBj+OBoOOBleOBhClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAi56eB44Gv44GT44KM44Gr6Zai5LiO44GX44Gf44GP44GC44KK44G+44Gb44KTIC0tIOaBkOOCieOBjyBObyDjgajnrZTjgYjjgovjgbnjgY3jgafjgZfjgofjgYZcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJBcmUgeW91IHNhdGlzZmllZCB3aXRoIHRoaXM/IFt5bnFdICIKK21zZ3N0ciAi44GT44KM44Gn44GC44Gq44Gf44Gu6KaB5rGC44Gv5rqA44Gf44GV44KM44G+44GZ44GL77yfIFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyB5b3Ugd2FudCB0byB3cml0ZSB0aGlzIHRvIGRpc2s/IFt5bnFdICIKK21zZ3N0ciAi44OH44Kj44K544Kv44G444Gu5pu444GN6L6844G/44KS6KGM44Gq44GE44G+44GZ44GL77yfIFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisic2ZkaXNrOiBwcmVtYXR1cmUgZW5kIG9mIGlucHV0XG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZmRpc2s6IOWFpeWKm+OBjOefreOBmeOBjuOBvuOBmVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAi5Lit5patIC0tIOS9leOCguWkieabtOOBl+OBvuOBm+OCk1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBsZWFzZSBhbnN3ZXIgb25lIG9mIHksbixxXG4iCittc2dzdHIgInksbixxIOOBruOBhOOBmuOCjOOBi+OBp+etlOOBiOOBpuOBj+OBoOOBleOBhFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdWNjZXNzZnVsbHkgd3JvdGUgdGhlIG5ldyBwYXJ0aXRpb24gdGFibGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIuaWsOOBn+OBquODkeODvOODhuOCo+OCt+ODp+ODs+OBruabuOOBjei+vOOBv+OBq+aIkOWKn1xuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMTA1Cittc2dpZCAiIgorIklmIHlvdSBjcmVhdGVkIG9yIGNoYW5nZWQgYSBET1MgcGFydGl0aW9uLCAvZGV2L2ZvbzcsIHNheSwgdGhlbiB1c2UgZGQoMSlcbiIKKyJ0byB6ZXJvIHRoZSBmaXJzdCA1MTIgYnl0ZXM6ICBkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKFNlZSBmZGlzayg4KS4pXG4iCittc2dzdHIgIiIKKyLjgoLjgZfjgIFET1Mg44OR44O844OG44Kj44K344On44Oz44KS5L2c5oiQ44G+44Gf44Gv5aSJ5pu044GX44Gf44Gq44KJ44GwIC0tIOOBn+OBqOOBiOOBsCAvZGV2L2Zvbzcg44CBXG4iCisiZGQoMSkg44KS44Gk44GL44Gj44Gm5pyA5Yid44GuIDUxMiDjg5DjgqTjg4jjgpLjgrzjg63jgavjgZfjgabkuIvjgZXjgYQ6XG4iCisiZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MVxuIgorIijoqbPntLDjga8gZmRpc2soOCnjgpLopovjgabjgY/jgaDjgZXjgYTjgIIpXG4iCisKKyM6IGZzY2svZnNjay5jOjMyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBjb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICLorablkYo6ICVzIOOCkumWi+OBkeOBvuOBm+OCkzogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGJhZCBmb3JtYXQgb24gbGluZSAlZCBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjM1MgorbXNnaWQgIiIKKyJXQVJOSU5HOiBZb3VyIC9ldGMvZnN0YWIgZG9lcyBub3QgY29udGFpbiB0aGUgZnNjayBwYXNzbm9cbiIKKyJcdGZpZWxkLiAgSSB3aWxsIGtsdWRnZSBhcm91bmQgdGhpbmdzIGZvciB5b3UsIGJ1dCB5b3VcbiIKKyJcdHNob3VsZCBmaXggeW91ciAvZXRjL2ZzdGFiIGZpbGUgYXMgc29vbiBhcyB5b3UgY2FuLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiAlczogbm90IGZvdW5kXG4iCittc2dzdHIgImZzY2s6ICVzOiDopovjgaTjgYvjgorjgb7jgZvjgpNcbiIKKworIzogZnNjay9mc2NrLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIKK21zZ3N0ciAiJXM6IHdhaXQ6IOWtkOODl+ODreOCu+OCueOBr+WtmOWcqOOBl+OBquOBhD8hP1xuIgorCisjOiBmc2NrL2ZzY2suYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZy4uLiAlcyBmb3IgZGV2aWNlICVzIGV4aXRlZCB3aXRoIHNpZ25hbCAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKK21zZ2lkICJDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpbGVzeXN0ZW0gdHlwZXNcbiIKK21zZ3N0ciAi44OV44Kh44Kk44Or44K344K544OG44Og44K/44Kk44OX44Gu44Gf44KB44Gu44Oh44Oi44Oq44KS56K65L+d44Gn44GN44G+44Gb44KT44Gn44GX44GfXG4iCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6ODkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyBub25leGlzdGVudCBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6IOWtmOWcqOOBl+OBquOBhOODh+ODkOOCpOOCueOCkuOCueOCreODg+ODl+OBl+OBpuOBhOOBvuOBmVxuIgorCisjOiBmc2NrL2ZzY2suYzo5MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogY2Fubm90IGNoZWNrICVzOiBmc2NrLiVzIG5vdCBmb3VuZFxuIgorbXNnc3RyICJmc2NrOiAlc+OCkuODgeOCp+ODg+OCr+OBp+OBjeOBvuOBm+OCkzogZnNjay4lc+OBr+imi+OBpOOBi+OCiuOBvuOBm+OCk1xuIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKK21zZ2lkICJDaGVja2luZyBhbGwgZmlsZSBzeXN0ZW1zLlxuIgorbXNnc3RyICLjgZnjgbnjgabjga7jg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DmpJzmn7vjgZfjgb7jgZnjgIJcbiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiLS3lvoXmqZ/kuK0tLSAo44OR44K5ICVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQg44OV44Kh44Kk44Or44K344K544OG44Og5Z6LXSBbZnMg44Kq44OX44K344OnIgorIuODs10gW2ZpbGVzeXMgLi4uXVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzOiDjg4fjg5DjgqTjgrnjgYzlpJrjgZnjgY7jgb7jgZlcbiIKKworIzogZnNjay9mc2NrLmM6MTEzNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICIlcyDjgpLplovjgZHjgb7jgZvjgpM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiL3Byb2Mg44Gv44Oe44Km44Oz44OI44GV44KM44Gm44GE44G+44GZ44GLP1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGZpbmQgbWF0Y2hpbmcgZmlsZXN5c3RlbTogJXNcbiIKK21zZ3N0ciAi5LiA6Ie044GZ44KL44OV44Kh44Kk44Or44K344K544OG44Og44GM6KaL44Gk44GL44KK44G+44Gb44KTOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGFyZ3VtZW50c1xuIgorbXNnc3RyICIlczog5byV5pWw44GM5aSa44GZ44GO44G+44GZXG4iCisKKyM6IGZzY2svZnNjay5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjayBmcm9tICVzXG4iCittc2dzdHIgImZzY2sgZnJvbSAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiJXM6IGZzY2tfcGF0aOOBruOBn+OCgeOBruODoeODouODquOCkueiuuS/neOBjOOBp+OBjeOBvuOBm+OCk+OAglxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MjI5Cittc2dpZCAiVHJ5IGBnZXRvcHQgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiYGdldG9wdCAtLWhlbHAnIOOBp+ips+e0sOaDheWgseOCkuiqv+OBueOBpuOBj+OBoOOBleOBhOOAglxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mjk1Cittc2dpZCAiZW1wdHkgbG9uZyBvcHRpb24gYWZ0ZXIgLWwgb3IgLS1sb25nIGFyZ3VtZW50IgorbXNnc3RyICItbCDjgoQgLS1sb25nIOW8leaVsOOBruW+jOOBruODreODs+OCsOOCquODl+OCt+ODp+ODs+OBjOepuuOBp+OBmSIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAiLXMg44GLIC0tc2hlbGwg5byV5pWw44Gu5b6M44Gu44K344Kn44Or44KS55+l44KK44G+44Gb44KTIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIwCittc2dpZCAiVXNhZ2U6IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICLkvb/jgYTmlrk6IGdldG9wdCDjgqrjg5fjgrfjg6fjg7PmloflrZfliJcg5YCkXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjEKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSBbLS1dIG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICBnZXRvcHQgW+OCquODl+OCt+ODp+ODs10gWy0tXSDjgqrjg5fjgrfjg6fjg7PmloflrZfliJcg5YCkXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjIKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSAtb3wtLW9wdGlvbnMgb3B0c3RyaW5nIFtvcHRpb25zXSBbLS1dXG4iCittc2dzdHIgIiIKKyIgICAgICAgZ2V0b3B0IFvjgqrjg5fjgrfjg6fjg7NdIC1vfC0tb3B0aW9ucyDjgqrjg5fjgrfjg6fjg7PmloflrZfliJcgW+OCquODl+OCt+ODp+ODs10gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAg5YCkXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjQKK21zZ2lkICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4iCittc2dzdHIgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAg44Ot44Oz44Kw44Kq44OX44K344On44Oz44GMIC0g5LiA44Gk44Gn5aeL44G+44KL44Gu44KS6Kix44GZXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjUKK21zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVGhpcyBzbWFsbCB1c2FnZSBndWlkZVxuIgorbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAg44GT44Gu44Gh44KH44Gj44Go44GX44Gf5L2/44GE5pa544KS6KGo56S644GZ44KLXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbCwgLS1sb25nb3B0aW9ucz1sb25nb3B0cyAgIOODreODs+OCsOOCquODl+OCt+ODp+ODs+OCkueQhuino+OBleOBm+OCi1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI3Cittc2dpZCAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iCittc2dzdHIgIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICDjgqjjg6njg7zloLHlkYrjga7pmpvjga7lkI3liY1cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOAorbXNnaWQgIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBTaG9ydCBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIOOCt+ODp+ODvOOBqOOCquODl+OCt+ODp+ODs+OCkueQhuino+OBleOBm+OCi1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgZ2V0b3B0KDMpIOOBruOCqOODqeODvOWgseWRiuOCkuihjOOCj+OBquOBhFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMwCittc2dpZCAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIE5vIG5vcm1hbCBvdXRwdXRcbiIKK21zZ3N0ciAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIOmAmuW4uOOBruWHuuWKm+OCkuihjOOCj+OBquOBhFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMxCittc2dpZCAiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVsbCBxdW90aW5nIGNvbnZlbnRpb25zXG4iCittc2dzdHIgIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICDjgrfjgqfjg6vjga7lvJXnlKjlj5bjgormsbrjgoHjgpLoqK3lrprjgZnjgotcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMgorbXNnaWQgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUZXN0IGZvciBnZXRvcHQoMSkgdmVyc2lvblxuIgorbXNnc3RyICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgZ2V0b3B0KDEpIOODkOODvOOCuOODp+ODs+OCkuODhuOCueODiOOBmeOCi1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMzCittc2dpZCAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIERvIG5vdCBxdW90ZSB0aGUgb3V0cHV0XG4iCittc2dzdHIgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICDlh7rlipvjgpLlvJXnlKjjgZfjgarjgYRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzNAorbXNnaWQgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBPdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorbXNnc3RyICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAg44OQ44O844K444On44Oz5oOF5aCx44KS5Ye65Yqb44GZ44KLXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozODggZ2V0b3B0L2dldG9wdC5jOjQ0NworbXNnaWQgIm1pc3Npbmcgb3B0c3RyaW5nIGFyZ3VtZW50IgorbXNnc3RyICLjgqrjg5fjgrfjg6fjg7PmloflrZfliJflvJXmlbDjgYzotrPjgorjgb7jgZvjgpMiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICLlhoXpg6jjgqjjg6njg7zjgIHkvZzogIXjgavpgKPntaHjgpLjgIIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZWQgZnJvbSBNSUxPXG4iCittc2dzdHIgIk1JTE8g44GL44KJ44OW44O844OI44GV44KM44G+44GX44GfXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJSdWZmaWFuIEJDRCBjbG9ja1xuIgorbXNnc3RyICLnspflv73jgaogQkNEIOOCr+ODreODg+OCr1xuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2xvY2twb3J0IGFkanVzdGVkIHRvIDB4JXhcbiIKK21zZ3N0ciAi44Kv44Ot44OD44Kv44Od44O844OI44KSIDB4JXgg44Gr5L+u5q2j44GX44G+44GX44GfXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJmdW5reSBUT1khXG4iCittc2dzdHIgIuOCpOOCq+OBl+OBnyBUT1khXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXRvbWljICVzIGZhaWxlZCBmb3IgMTAwMCBpdGVyYXRpb25zISIKK21zZ3N0ciAiJXM6IOS4jeWPr+WIhuOBqiVz44GuIDEwMDAg5Zue44Gu5Y+N5b6p44GM5aSx5pWXISIKKworIzogaHdjbG9jay9jbW9zLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMwNworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gL2Rldi9wb3J0OiAlcyIKK21zZ3N0ciAiL2Rldi9wb3J0IOOCkumWi+OBkeOBvuOBm+OCkzogJXMiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAi6Kix5Y+v44Gu5Y+W5b6X44KS6Kmm44GV44Gq44GL44Gj44Gf44Gu44Gn44CB6Kix5Y+v44Gu5Y+W5b6X44Gr5aSx5pWX44GX44G+44GX44Gf44CCXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyB1bmFibGUgdG8gZ2V0IEkvTyBwb3J0IGFjY2VzczogIHRoZSBpb3BsKDMpIGNhbGwgZmFpbGVkLlxuIgorbXNnc3RyICIlcyDjga8gSS9PIOODneODvOODiOOCouOCr+OCu+OCueOBjOOBp+OBjeOBvuOBm+OCkzogaW9wbCgzKSDjgrPjg7zjg6vjgavlpLHmlZfjgIJcbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JhYmx5IHlvdSBuZWVkIHJvb3QgcHJpdmlsZWdlcy5cbiIKK21zZ3N0ciAi5oGQ44KJ44GP44Or44O844OI5qip6ZmQ44GM5b+F6KaB44Gn44GZ44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluICVzIHRpbWUuXG4iCittc2dzdHIgIuODj+ODvOODieOCpuOCp+OCouaZguioiCVz5pmC5Yi744KS5L+d5oyB44GX44Gm44GE44KL44Go44G/44Gq44GX44G+44GZXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJVVEMiCittc2dzdHIgIlVUQyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNQorbXNnaWQgImxvY2FsIgorbXNnc3RyICLjg63jg7zjgqvjg6siCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2FybmluZzogdW5yZWNvZ25pemVkIHRoaXJkIGxpbmUgaW4gYWRqdGltZSBmaWxlXG4iCittc2dzdHIgIiVzOiDorablkYo6IGFkanRpbWUg44OV44Kh44Kk44Or44Gu5LiJ6KGM55uu44GM6KqN6K2Y44Gn44GN44G+44Gb44KTXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIijmnJ/lvoXjgZfjgZ/jga7jga86IGBVVEMnLCBgTE9DQUwnIOOBguOCi+OBhOOBr+S9leOCguOBquOBhOOBi+OBp+OBmeOAgilcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAi55u05YmN44Gu44Ga44KM44Gu5L+u5q2j44GvIDE5Njkg5bm05Lul6ZmNICVsZCDnp5LmmYLngrnjgafooYzjgarjgo/jgozjgb7jgZfjgZ9cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgY2FsaWJyYXRpb24gZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIuebtOWJjeOBruiqv+aVtOOBryAxOTY5IOW5tOS7pemZjSAlbGQg56eS5pmC54K544Gn6KGM44Gq44KP44KM44G+44GX44GfXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICJIYXJkd2FyZSBjbG9jayBpcyBvbiAlcyB0aW1lXG4iCittc2dzdHIgIuODj+ODvOODieOCpuOCp+OCouaZguioiOOBryVz5pmC5Yi744Gn44GZXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgIuS4jeaYjuOBqiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgZm9yIGNsb2NrIHRpY2suLi5cbiIKK21zZ3N0ciAi44Kv44Ot44OD44Kv44OB44OD44Kv44KS5b6F44Gj44Gm44GE44G+44GZLi4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5zeW5jaHJvbml6YXRpb24gZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmdvdCBjbG9jayB0aWNrXG4iCittc2dzdHIgIuOCr+ODreODg+OCr+ODgeODg+OCr+OCkuWPluW+l+OBl+OBvuOBl+OBn1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKK21zZ3N0ciAi44OP44O844OJ44Km44Kn44Ki5pmC6KiI44Gr5LiN5q2j44Gq5YCkOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQyMAorIywgYy1mb3JtYXQKK21zZ2lkICJIdyBjbG9jayB0aW1lIDogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiIgorIuODj+ODvOODieOCpuOCp+OCouaZguioiOaZguWIuyA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAxOTY5IOW5tOS7peadpSAlbGQg56eSXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHJlYWQgZnJvbSBIYXJkd2FyZSBDbG9jazogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorbXNnc3RyICLjg4/jg7zjg4njgqbjgqfjgqLmmYLoqIjjgYvjgonoqq3ovrzjgpPjgaDmmYLliLs6ICU0ZC8lLjJkLyUuMmQgJTAyZDolMDJkOiUwMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIuODj+ODvOODieOCpuOCp+OCouaZguioiOOCkiAlLjJkOiUuMmQ6JS4yZCDjgavoqK3lrpogPSAxOTY5IOW5tOS7peadpSAlbGQg56eSXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICJDbG9jayBub3QgY2hhbmdlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAi44Kv44Ot44OD44Kv44KS5aSJ5pu044GX44G+44Gb44KT44Gn44GX44GfIC0tIOODhuOCueODiOOBoOOBkeOBp+OBmeOAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1MzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaW1lIGVsYXBzZWQgc2luY2UgcmVmZXJlbmNlIHRpbWUgaGFzIGJlZW4gJS42ZiBzZWNvbmRzLlxuIgorIkRlbGF5aW5nIGZ1cnRoZXIgdG8gcmVhY2ggdGhlIG5ldyB0aW1lLlxuIgorbXNnc3RyICIiCisi5pmC5Yi744KS5Y+C54Wn44GX44Gf5pmC54K544GL44KJICUuNmYg56eS57WM6YGO44CCXG4iCisi5qyh44Gu5a6M5YWo44Gq56eS44G+44Gn6YGF44KJ44Gb44G+44GZ44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIHJlZ2lzdGVycyBjb250YWluIHZhbHVlcyB0aGF0IGFyZSBlaXRoZXIgaW52YWxpZCAoZS5nLiAiCisiNTB0aCBkYXkgb2YgbW9udGgpIG9yIGJleW9uZCB0aGUgcmFuZ2Ugd2UgY2FuIGhhbmRsZSAoZS5nLiBZZWFyIDIwOTUpLlxuIgorbXNnc3RyICIiCisi44OP44O844OJ44Km44Kn44Ki5pmC6KiI44Os44K444K544K/44GM44GK44GL44GX44Gq5YCkKOS+iyDkvZXmnIg1MOaXpSnjgavjgarjgaPjgabjgYTjgovjgYvjgIFcbiIKKyLmjZXmjYnjgafjgY3jgarjgYTnr4Tlm7Ljga7lgKQo5L6LIDIwOTXlubQp44Gr44Gq44Gj44Gm44GE44G+44GZ44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAgJS42ZiBzZWNvbmRzXG4iCittc2dzdHIgIiVzICAlLjZmIOenklxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gLS1kYXRlIG9wdGlvbiBzcGVjaWZpZWQuXG4iCittc2dzdHIgIi0tZGF0ZSDjgqrjg5fjgrfjg6fjg7PjgYzmjIflrprjgZXjgozjgabjgYTjgb7jgZvjgpPjgIJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICItLWRhdGUg5byV5pWw44GM6ZW344GZ44GO44G+44GZXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisiLS1kYXRlIOOCquODl+OCt+ODp+ODs+OBruWApOOBjOato+OBl+OBhOaXpeS7mOOBp+OBr+OBguOCiuOBvuOBm+OCk+OAglxuIgorIueJueOBq+OAgeOCr+OCqeODvOODhuODvOOCt+ODp+ODs+ODnuODvOOCr+OBjOWQq+OBvuOCjOOBpuOBhOOBvuOBmeOAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgImRhdGUg44Kz44Oe44Oz44OJ44KS55m66KGM44GX44G+44GZOiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDAKK21zZ2lkICJVbmFibGUgdG8gcnVuICdkYXRlJyBwcm9ncmFtIGluIC9iaW4vc2ggc2hlbGwuIHBvcGVuKCkgZmFpbGVkIgorbXNnc3RyICIiCisiL2Jpbi9zaCDjgrfjgqfjg6vlhoXjgacgJ2RhdGUnIOODl+ODreOCsOODqeODoOOCkuWun+ihjOOBp+OBjeOBvuOBm+OCk+OAglxuIgorInBvcGVuKCkg44GM5aSx5pWX44GX44G+44GX44Gf44CCIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcG9uc2UgZnJvbSBkYXRlIGNvbW1hbmQgPSAlc1xuIgorbXNnc3RyICJkYXRlIOOCs+ODnuODs+ODieOBi+OCieOBrui/lOetlCA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKyIlcyDjgavjgojjgaPjgabnmbrooYzjgZXjgozjgZ8gZGF0ZSDjgrPjg57jg7Pjg4njga/kuojmnJ/jgZvjgazntZDmnpzjgpLov5TjgZfjgb7jgZfjgZ/jgIJcbiIKKyLjgZ3jga7jgrPjg57jg7Pjg4njga86XG4iCisiICAlc1xuIgorIuOBneOBrui/lOetlOOBrzpcbiIKKyIgICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gaW50ZWdlciB3aGVyZSAiCisidGhlIGNvbnZlcnRlZCB0aW1lIHZhbHVlIHdhcyBleHBlY3RlZC5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICVzXG4iCittc2dzdHIgIiIKKyIlcyDjgavjgojjgaPjgabnmbrooYzjgZXjgozjgZ8gZGF0ZSDjgrPjg57jg7Pjg4njga/jgIHlpInmj5vmmYLliLvjgajjgZfjgabmsYLjgoHjgabjgYTjgovmlbTmlbDlgKTjga5cbiIKKyLjgYvjgo/jgorjgavkvZXjgYvliKXjga7jgoLjga7jgpLov5TjgZfjgabjgY3jgb7jgZfjgZ/jgIJcbiIKKyLjgZ3jga7jgrPjg57jg7Pjg4njga86XG4iCisiICAlc1xuIgorIuOBneOBruW/nOetlOOBrzpcbiIKKyIgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgImRhdGUgc3RyaW5nICVzIGVxdWF0ZXMgdG8gJWxkIHNlY29uZHMgc2luY2UgMTk2OS5cbiIKK21zZ3N0ciAiZGF0ZSDmloflrZfliJcgJXMg44KSIDE5Njkg5bm05Lul5p2lICVsZCDnp5LjgajjgZfjgb7jgZlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBzZXQgdGhlICIKKyJTeXN0ZW0gVGltZSBmcm9tIGl0LlxuIgorbXNnc3RyICIiCisi44OP44O844OJ44Km44Kn44Ki5pmC6KiI44Gv44CB5q2j44GX44GE5pmC5Yi744KS5ZCr44KT44Gn44GE44Gq44GE44Gu44Gn44CB44GT44GT44GL44KJ5b6X44KJ44KM44Gf5YCk44KSXG4iCisi44K344K544OG44Og5pmC5Yi744Gr6Kit5a6a44Gn44GN44G+44Gb44KT44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyNyBod2Nsb2NrL2h3Y2xvY2suYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBzZXR0aW1lb2ZkYXk6XG4iCittc2dzdHIgInNldHRpbWVvZmRheSDjgpLlkbzjgbPlh7rjgZfjgb7jgZk6XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyOCBod2Nsb2NrL2h3Y2xvY2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKK21zZ3N0ciAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMwIGh3Y2xvY2svaHdjbG9jay5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKK21zZ3N0ciAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMyBod2Nsb2NrL2h3Y2xvY2suYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgc3lzdGVtIGNsb2NrIGJlY2F1c2UgcnVubmluZyBpbiB0ZXN0IG1vZGUuXG4iCittc2dzdHIgIuODhuOCueODiOODouODvOODieOBp+WLleS9nOOBl+OBpuOBhOOCi+OBn+OCgeOAgeOCt+OCueODhuODoOOCr+ODreODg+OCr+OCkuioreWumuOBl+OBvuOBm+OCk+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIuOCt+OCueODhuODoOOCr+ODreODg+OCr+OCkuioreWumuOBmeOCi+OBq+OBr+OAgeOCueODvOODkeODvOODpuODvOOCtuOBp+OBquOBkeOCjOOBsOOBquOCiuOBvuOBm+OCk+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDUgaHdjbG9jay9od2Nsb2NrLmM6ODIzCittc2dpZCAic2V0dGltZW9mZGF5KCkgZmFpbGVkIgorbXNnc3RyICJzZXR0aW1lb2ZkYXkoKSDlkbzjgbPlh7rjgZfjgavlpLHmlZciCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc4MQorIywgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICLnj77lnKjjga7jgrfjgrnjg4bjg6DmmYLplpM6ICVsZCA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiXHRVVEM6ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSB0aGUgSGFyZHdhcmUgQ2xvY2sgcHJldmlvdXNseSBjb250YWluZWQgIgorImdhcmJhZ2UuXG4iCittc2dzdHIgIuODj+ODvOODieOCpuOCp+OCouaZguWIu+OBq+S7peWJjeOBruOCtOODn+OBjOWQq+OBvuOCjOOBpuOBiuOCiuOAgeOBmuOCjOOCkuS/ruato+OBp+OBjeOBvuOBm+OCk+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGxhc3QgY2FsaWJyYXRpb24gdGltZSBpcyB6ZXJvLFxuIgorInNvIGhpc3RvcnkgaXMgYmFkIGFuZCBjYWxpYnJhdGlvbiBzdGFydG92ZXIgaXMgbmVjZXNzYXJ5LlxuIgorbXNnc3RyICLliY3lm57jga7oqr/mlbTku6XmnaXjgIHlsJHjgarjgY/jgajjgoLkuIDml6XntYzpgY7jgZfjgarjgYTjgajjgIHjgZrjgozjgpLkv67mraPjgafjgY3jgb7jgZvjgpPjgIJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGl0IGhhcyBiZWVuIGxlc3MgdGhhbiBhIGRheSBzaW5jZSB0aGUgIgorImxhc3QgY2FsaWJyYXRpb24uXG4iCittc2dzdHIgIuWJjeWbnuOBruiqv+aVtOS7peadpeOAgeWwkeOBquOBj+OBqOOCguS4gOaXpee1jOmBjuOBl+OBquOBhOOBqOOAgeOBmuOCjOOCkuS/ruato+OBp+OBjeOBvuOBm+OCk+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yICIKKyJvZiAlZiBzZWNvbmRzL2RheS5cbiIKKyJBZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJ5ICVmIHNlY29uZHMvZGF5XG4iCittc2dzdHIgIiIKKyLpgY7ljrsgJTIkZCDnp5Ljga7plpPjgavjgIHkuIDml6XjgYLjgZ/jgoogJTMkZiDnp5LjgZrjgonjgZfjgabjgYTjgovjga7jgafjgZnjgYzjgIHjgq/jg63jg4Pjgq/jgYwgJTEiCisiJC4xZiDnp5LjgZrjgozjgb7jgZfjgZ/jgIJcbiIKKyLkuIDml6XjgYLjgZ/jgoogJTQkZiDnp5LjgZrjgozjgpLkv67mraPjgZfjgb7jgZlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAi5YmN5Zue44Gu5L+u5q2j44GL44KJ44Gu5pmC6ZaT44GvICVkIOenkuOBp+OBmVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiJWQg56eS44Gu5oy/5YWl44Go44CBJS42ZiDnp5LliY3jga7mmYLliLvjga7lj4LnhafjgYzlv4XopoHjgafjgZlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIuODhuOCueODiOODouODvOODieOBp+WLleS9nOOBl+OBpuOBhOOCi+OBn+OCgSBhZGp0aW1lIOODleOCoeOCpOODq+OCkuabtOaWsOOBl+OBvuOBm+OCk+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldvdWxkIGhhdmUgd3JpdHRlbiB0aGUgZm9sbG93aW5nIHRvICVzOlxuIgorIiVzIgorbXNnc3RyICIiCisi5pys5p2l44Gq44KJ44GwICVzIOOBq+S7peS4i+OBruOCiOOBhuOBq+abuOOBjei+vOOBvuOCjOOCi+OBr+OBmuOBp+OBl+OBnzpcbiIKKyIlcyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ291bGQgbm90IG9wZW4gZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgaW4gaXQgKCVzKSBmb3IgIgorIndyaXRpbmciCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwNiBod2Nsb2NrL2h3Y2xvY2suYzoxMDExCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgKCVzKSBpbiBpdCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRyaWZ0IGFkanVzdG1lbnQgcGFyYW1ldGVycyBub3QgdXBkYXRlZC5cbiIKK21zZ3N0ciAi44Ga44KM44Gu5L+u5q2j5YCk44Gv5pu05paw44GV44KM44G+44Gb44KT44Gn44GX44Gf44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IGFkanVzdCBpdC5cbiIKK21zZ3N0ciAi44OP44O844OJ44Km44Kn44Ki5pmC6KiI44GM44CB5q2j5bi444Gq5pmC5Yi744KS5ZCr44KT44Gn44GE44Gq44GE44Gu44Gn44CB5L+u5q2j44Gn44GN44G+44Gb44KT44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAi5YmN5Zue44Gu6Kq/5pW05Lul5p2l44CB5bCR44Gq44GP44Go44KC5LiA5pel57WM6YGO44GX44Gq44GE44Go44CB44Ga44KM44KS5L+u5q2j44Gn44GN44G+44Gb44KT44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICLlv4XopoHjgarkv67mraPjgYzkuIDnp5LmnKrmuoDjgarjga7jgafjgIHjgq/jg63jg4Pjgq/jgpLoqK3lrprjgZfjgb7jgZvjgpPjgIJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyAlcy5cbiIKK21zZ3N0ciAiJXMg44KS5L2/44GE44G+44GZ44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIGNsb2NrIGludGVyZmFjZSBmb3VuZC5cbiIKK21zZ3N0ciAi5Yip55So5Y+v6IO944Gq44Kv44Ot44OD44Kv44Kk44Oz44K/44O844OV44Kn44Kk44K544GM6KaL44Gk44GL44KK44G+44Gb44KT44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyMjEgaHdjbG9jay9od2Nsb2NrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAi44K344K544OG44Og44Kv44Ot44OD44Kv44KS6Kit5a6a44Gn44GN44G+44Gb44KT44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisi44Kr44O844ON44Or44GM44OP44O844OJ44Km44Kn44Ki5pmC6KiI44Gu44Gf44KB44Gu44Ko44Od44OD44Kv5YCk44KS5L+d5oyB44Gn44GN44KL44Gu44GvIEFscGhhIOODnuOCt+ODs1xuIgorIuOBoOOBkeOBp+OBmeOAglxuIgorIuOBk+OBriBod2Nsb2NrIOOBruikh+ijveOBryBBbHBoYSDku6XlpJbjga7jg57jgrfjg7Pjgafjg5Pjg6vjg4njgZXjgozjgb7jgZfjgZ9cbiIKKyIo44Gd44GX44Gm5b2T54S244CB54++5ZyoIEFscGhhIOS4iuOBp+Wun+ihjOOBleOCjOOBpuOBhOOBvuOBm+OCkynjgILlrp/ooYzjgafjgY3jgb7jgZvjgpPjgIJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gZ2V0IHRoZSBlcG9jaCB2YWx1ZSBmcm9tIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIuOCq+ODvOODjeODq+OBi+OCieOCqOODneODg+OCr+WApOOCkuWPluW+l+OBp+OBjeOBvuOBm+OCk+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAi44Kr44O844ON44Or44Gv44Ko44Od44OD44Kv5YCk44KSICVsdSDjgajmg7PlrprjgZfjgabjgYTjgb7jgZlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSAnZXBvY2gnIG9wdGlvbiB0byB0ZWxsIHRvIHdoYXQgIgorInZhbHVlIHRvIHNldCBpdC5cbiIKK21zZ3N0ciAiIgorIuOCqOODneODg+OCr+WApOOCkuioreWumuOBmeOCi+OBn+OCgeOBq+OBr+OAgeS9leOBruWApOOCkuioreWumuOBmeOCi+OBi+OCkuefpeOCieOBm+OCi+OBn+OCgeOBqyAnZXBvY2gnXG4iCisi44Kq44OX44K344On44Oz44KS5L2/44KP44Gq44GR44KM44Gw44Gq44KK44G+44Gb44KT44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICLjgqjjg53jg4Pjgq/jgpIgJWQg44Gr6Kit5a6a44GX44G+44Gb44KTIC0tIOODhuOCueODiOOBoOOBkeOBp+OBmeOAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIuOCq+ODvOODjeODq+OBq+OCqOODneODg+OCr+WApOOCkuioreWumuOBmeOCi+OBk+OBqOOBjOOBp+OBjeOBvuOBm+OCk+OBp+OBl+OBn+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjkwIG1pc2MtdXRpbHMvY2FsLmM6MzQ3IG1pc2MtdXRpbHMva2lsbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiVzIGZyb20gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaHdjbG9jayAtIHF1ZXJ5IGFuZCBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIChSVEMpXG4iCisiXG4iCisiVXNhZ2U6IGh3Y2xvY2sgW2Z1bmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGdW5jdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHNob3cgdGhpcyBoZWxwXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgdGhlIHJ0YyB0byB0aGUgdGltZSBnaXZlbiB3aXRoIC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBhZGp1c3QgdGhlIHJ0YyB0byBhY2NvdW50IGZvciBzeXN0ZW1hdGljIGRyaWZ0IHNpbmNlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgcHJpbnQgb3V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICBzZXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlIHRvIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHByaW50IG91dCB0aGUgdmVyc2lvbiBvZiBod2Nsb2NrIHRvIHN0ZG91dFxuIgorIlxuIgorIk9wdGlvbnM6IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICBzcGVjaWFsIC9kZXYvLi4uIGZpbGUgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdFxuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICBhY2Nlc3MgdGhlIElTQSBidXMgZGlyZWN0bHkgaW5zdGVhZCBvZiAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorIiAgICAgICAtLWRhdGUgICAgICAgICBzcGVjaWZpZXMgdGhlIHRpbWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLWVwb2NoPXllYXIgICBzcGVjaWZpZXMgdGhlIHllYXIgd2hpY2ggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZG8gbm90IGFjY2VzcyAvZXRjL2FkanRpbWUuIFJlcXVpcmVzIHRoZSB1c2Ugb2ZcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICBkbyBldmVyeXRoaW5nIGV4Y2VwdCBhY3R1YWxseSB1cGRhdGluZyB0aGUgaGFyZHdhcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBkZWJ1ZyBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJod2Nsb2NrIC0g44OP44O844OJ44Km44Kn44Ki5pmC6KiIIChSVEMpIOOBuOOBruWVj+OBhOWQiOOCj+OBm+OChOioreWumuOCkuihjOOBhlxuIgorIlxuIgorIuS9v+OBhOaWuTogaHdjbG9jayBb5qmf6IO9XSBb44Kq44OX44K344On44OzLi4uXVxuIgorIlxuIgorIuapn+iDvTpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAg44GT44Gu44OY44Or44OX44KS6KGo56S644GZ44KLXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIOODj+ODvOODieOCpuOCp+OCouaZguioiOOCkuiqreOBv+WPluOBo+OBpuOAgee1kOaenOOCkuihqOekuuOBmeOCi1xuIgorIiAgICAgICAtLXNldCAgICAgICAgICAtLWRhdGUg44Gn5LiO44GI44KJ44KM44Gf5pmC5Yi744KSIHJ0YyDjgavoqK3lrprjgZnjgotcbiIKKyIgIC1zIHwgLS1oY3Rvc3lzICAgICAg44K344K544OG44Og5pmC5Yi744KS44OP44O844OJ44Km44Kn44Ki5pmC6KiI44Gr5ZCI44KP44Gb44KLXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIOODj+ODvOODieOCpuOCp+OCouaZguioiOOCkuePvuWcqOOBruOCt+OCueODhuODoOaZguWIu+OBq+WQiOOCj+OBm+OCi1xuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICDnj77lnKjjga7jgr/jgqTjg6Djgr7jg7zjg7PjgpLjg5njg7zjgrnjgajjgZfjgZ/jgrfjgrnjg4bjg6DmmYLplpPjgavlkIjjgo/jgZsiCisi44KLXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIOaZguioiOOBjOacgOW+jOOBq+ioreWumuOBvuOBn+OBr+iqv+aVtOOBleOCjOOBn+aZgueCueOBi+OCieOAgeOCt+OCueODhuODoOeahCIKKyLjgapcbiIKKyIgICAgICAgICAgICAgICAgICAgICAg44Ga44KM44KS6KiI566X44GX44GmIHJ0YyDjgpLoqr/mlbTjgZnjgotcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAg44Kr44O844ON44Or44Gu44OP44O844OJ44Km44Kn44Ki5pmC5Yi744Gu44Ko44Od44OD44Kv5YCk44KS6KGo56S644GZ44KLXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIOOCq+ODvOODjeODq+OBruODj+ODvOODieOCpuOCp+OCouaZguWIu+OBruOCqOODneODg+OCr+WApCIKKyLjgpIgICAgICAgICAgICAgICAgICAgICAgIC0tZXBvY2gg44Go44GX44Gm5LiO44GI44KJ44KM44Gf5YCk44Gr6Kit5a6a44GZ44KLXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIGh3Y2xvY2sg44Gu44OQ44O844K444On44Oz44KS5qiZ5rqW5Ye65Yqb44Gr6KGo56S644GZ44KLXG4iCisiXG4iCisi44Kq44OX44K344On44OzOiBcbiIKKyIgIC11IHwgLS11dGMgICAgICAgICAg44OP44O844OJ44Km44Kn44Ki5pmC6KiI44KS5Y2U5a6a5LiW55WM5pmC5Yi744Gn5L+d5oyB44GZ44KLXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIOODj+ODvOODieOCpuOCp+OCouaZguioiOOCkuODreODvOOCq+ODq+aZguWIu+OBp+S/neaMgeOBmeOCi1xuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICDjg4fjg5Xjgqnjg6vjg4jjga7ku6Pjgo/jgorjgavkvb/nlKjjgZnjgosgL2Rldi8uLi4g44OV44Kh44Kk44Or44KS5oyH5a6a44GZIgorIuOCi1xuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICAlcyDjga7ku6Pjgo/jgorjgavjgIHnm7TmjqUgSVNBIOODkOOCueOBq+OCouOCr+OCu+OCueOBmeOCi1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBCSU9TIOOBq+WVj+mhjOOBjOOBguOCi+OBn+OCgeOAgXJ0YyDjga7lubTjgpLnhKHoppbjgZnjgotcbiIKKyIgICAgICAgLS1kYXRlICAgICAgICAg44OP44O844OJ44Km44Kn44Ki5pmC6KiI44Gr5oyH5a6a44GZ44KL5pmC5Yi7XG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIOODj+ODvOODieOCpuOCp+OCouaZguioiOOBruOCqOODneODg+OCr+WApOOBrui1t+a6kOOBq+aMh+WumuOBmeOCi+W5tFxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICAvZXRjL2FkanRpbWUg44Gr44Ki44Kv44K744K544GX44Gq44GE44CCLS11dGMg5Y+I44GvIC0tbG9jYWx0aW1lXG4iCisiICAgICAgICAgICAgICAgICAgICAgIOOBruOBhOOBmuOCjOOBi+OBruS9v+eUqOOCkuW/heimgeOBqOOBmeOCi1xuIgorIiAgICAgICAtLWFkamZpbGU944OR44K5IGFkanVzdCDjg5XjgqHjgqTjg6vjga7jg5HjgrnjgpLmjIflrprjgZnjgosgKOODh+ODleOCqeODq+ODiOOBr1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIOODj+ODvOODieOCpuOCp+OCouaZguioiOOCkuabtOaWsOOBmeOCi+S7peWkluOBruOBmeOBueOBpuOCkuihjOOBhlxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICDjg4fjg5Djg4PjgrDjg6Ljg7zjg4lcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICAgICAgICAgICDjgYLjgarjgZ/jga4gYWxwaGEg44Gu44K/44Kk44OX44KS5oyH56S644GZ44KLIChod2Nsb2NrKDgpIOWPgueFpylcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTQzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICLjgrfjgrnjg4bjg6Djgq/jg63jg4Pjgq/jgpLoqK3lrprjgafjgY3jgb7jgZvjgpPjgIJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMg44Gv5L2V44KJ44GL44Gu44Kq44OX44K344On44Oz5byV5pWw44KS5Y+W44KK44G+44GZ44CC44GC44Gq44Gf44GvICVkIOWAi+S4juOBiOOBvuOBl+OBn+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyLjgYLjgarjgZ/jga/mqZ/og73jgqrjg5fjgrfjg6fjg7PjgpLopIfmlbDlgIvmjIflrprjgZfjgb7jgZfjgZ/jgIJcbiIKKyLkuIDluqbjgavkuIDjgaTjga7mqZ/og73jga7jgb/ooYzjgarjgYbjgZPjgajjgYzjgafjgY3jgb7jgZnjgIJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiAtLXV0YyDjgaggLS1sb2NhbHRpbWUg44Kq44OX44K344On44Oz44Gv55u45LqS5o6S5LuW55qE44Gn44GZ44GM44CB5Lih5pa544GM5oyH5a6a44GV44KM44G+44GXIgorIuOBn+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IC0tYWRqdXN0IOOBqCAtLW5vYWRqZmlsZSDjgqrjg5fjgrfjg6fjg7Pjga/nm7jkupLmjpLku5bnmoTjgafjgZnjgYzjgIHkuKHmlrnjgYzmjIflrprjgZXjgozjgb7jgZciCisi44Gf44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGpmaWxlIGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IC0tYWRqZmlsZSDjgaggLS1ub2FkamZpbGUg44Kq44OX44K344On44Oz44Gv55u45LqS5o6S5LuW55qE44Gn44GZ44GM44CB5Lih5pa544GM5oyH5a6a44GV44KM44G+44GXIgorIuOBn+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIiCisiJXM6IC0tbm9hZGpmaWxlIOOCkuOBpOOBkeOBn+WgtOWQiOOAgS0tdXRjIOOBiyAtLWxvY2FsdGltZSDjga7jgYTjgZrjgozjgYvjgpLmjIflrprjgZfjgarjgZHjgozjgbAiCisi44Gq44KK44G+44Gb44KTXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAi5pyJ5Yq544Gq6Kit5a6a5pmC5Yi744GM44GC44KK44G+44Gb44KT44CC44Kv44Ot44OD44Kv44KS6Kit5a6a44Gn44GN44G+44Gb44KT44CCXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jay5cbiIKK21zZ3N0ciAiIgorIuaui+W/teOBquOBjOOCieOAgeODj+ODvOODieOCpuOCp+OCouOCr+aZguioiOOBruWkieabtOOBr+OCueODvOODkeODvOODpuODvOOCtuOBp+OBl+OBi+ihjOOBquOBiOOBvuOBm+OCk+OAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgU3lzdGVtIENsb2NrLlxuIgorbXNnc3RyICLmrovlv7XjgarjgYzjgonjgIHjgrfjgrnjg4bjg6DmmYLoqIjjga7lpInmm7Tjga/jgrnjg7zjg5Hjg7zjg6bjg7zjgrbjgafjgZfjgYvooYzjgarjgYjjgb7jgZvjgpPjgIJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUgIgorImtlcm5lbC5cbiIKK21zZ3N0ciAiIgorIuaui+W/teOBquOBjOOCieOAgeOCq+ODvOODjeODq+WGheOBruODj+ODvOODieOCpuOCp+OCouaZguioiOOBruOCqOODneODg+OCr+WApOOCkuWkieabtOOBp+OBjeOCi+OBruOBr+OAgVxuIgorIuOCueODvOODkeODvOODpuODvOOCtuOBoOOBkeOBp+OBmeOAglxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBhY2Nlc3MgdGhlIEhhcmR3YXJlIENsb2NrIHZpYSBhbnkga25vd24gbWV0aG9kLlxuIgorbXNnc3RyICLml6Lnn6Xjga7jganjgpPjgarmlrnms5XjgafjgoLjgIHjg4/jg7zjg4njgqbjgqfjgqLmmYLoqIjjgavjgqLjgq/jgrvjgrnjgafjgY3jgb7jgZvjgpPjgIJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIi0tZGVidWcg44Kq44OX44K344On44Oz44Gn44Ki44Kv44K744K55pa55rOV5qSc57Si44Gu6Kmz57Sw44Gr44Gk44GE44Gm6KaL44Gm44GP44Gg44GV44GE44CCXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSBLREdIV0NMSyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiS0RHSFdDTEsg44GL44KJ5aSJ5pu044Gu44Gf44KB44Gu5pmC5Yi744KS5Y+W5b6X44GZ44KL44Or44O844OX5Lit44Gn44GZXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NworbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQiCittc2dzdHIgIktER0hXQ0xLIOOBruaZguWIu+iqreOBv+WPluOCiuOBjOWkseaVl+OBl+OBvuOBl+OBnyIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICLmmYLliLvoqq3jgb/ovrzjgb/jga7jgZ/jgoHjga4gS0RHSFdDTEsgaW9jdGwg44GM44Or44O844OX5YaF44Gn5aSx5pWX44GX44G+44GX44GfIgorCisjOiBod2Nsb2NrL2tkLmM6ODIgaHdjbG9jay9ydGMuYzoyMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRpbWUgY2hhbmdlLlxuIgorbXNnc3RyICLmmYLliLvlpInmm7TlvoXjgaHjgYzjgr/jgqTjg6DjgqLjgqbjg4jjgZfjgb7jgZfjgZ/jgIJcbiIKKworIzogaHdjbG9jay9rZC5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIGZhaWxlZCB0byByZWFkIHRpbWUgZnJvbSAlcyIKK21zZ3N0ciAiJXMg44GL44KJ5pmC5Yi744KS6Kqt6L6844KA44Gf44KB44GuIGlvY3RsKCkg44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICJLRFNIV0NMSyBpb2N0bCDjgavlpLHmlZfjgZfjgb7jgZfjgZ8iCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIi9kZXYvdHR5MSDjgb7jgZ/jga8gL2Rldi92Yy8xIOOCkumWi+OBkeOBvuOBm+OCkyIKKworIzogaHdjbG9jay9rZC5jOjE4MAorbXNnaWQgIktER0hXQ0xLIGlvY3RsIGZhaWxlZCIKK21zZ3N0ciAiS0RHSFdDTEsgaW9jdGwg44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE0NyBod2Nsb2NrL3J0Yy5jOjI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuKCkgb2YgJXMgZmFpbGVkIgorbXNnc3RyICIlcyDjgbjjga4gb3BlbigpIOOBjOWkseaVl+OBl+OBvuOBl+OBnyIKKworIzogaHdjbG9jay9ydGMuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAi5pmC5Yi76Kqt44G/6L6844G/44Gu44Gf44KB44GuICVzIOOBuOOBriBpb2N0bCgpIOOBq+WkseaVl+OBl+OBvuOBl+OBn+OAglxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiJXMg44GL44KJ5pmC5Yi744KS5aSJ5pu044GZ44KL44Gf44KB44Gu44Or44O844OX5Lit44Gn44GZXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRvZXMgbm90IGhhdmUgaW50ZXJydXB0IGZ1bmN0aW9ucy4gIgorbXNnc3RyICIlcyDjga/libLjgorovrzjgb/mqZ/og73jgpLmjIHjgaPjgabjgYTjgb7jgZvjgpPjgIIgIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkKCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgIuOCr+ODreODg+OCr+ODgeODg+OCr+OCkuW+heOBpOOBn+OCgeOBriAlcyDjgbjjga4gcmVhZCgpIOOBjOWkseaVl+OBl+OBvuOBl+OBnyIKKworIzogaHdjbG9jay9ydGMuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgIuOCr+ODreODg+OCr+ODgeODg+OCr+OCkuW+heOBpOOBn+OCgeOBriAlcyDjgbjjga4gc2VsZWN0KCkg44GM5aSx5pWX44GX44G+44GX44GfIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIHRpbWVkIG91dFxuIgorbXNnc3RyICLjgq/jg63jg4Pjgq/jg4Hjg4Pjgq/jgpLlvoXjgaTjgZ/jgoHjga4gJXMg44G444GuIHNlbGVjdCgpIOOBjOOCv+OCpOODoOOCouOCpuODiOOBl+OBvuOBl+OBn1xuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAi5Ymy44KK6L6844G/5pu05paw44KS44Kq44OV44Gr44GZ44KL44Gf44KB44GuICVzIOOBuOOBriBpb2N0bCgpIOOBjOWkseaVl+OBl+OBvuOBl+OBnyIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgIiIKKyLlibLjgorovrzjgb/mm7TmlrDjgpLjgqrjg7PjgavjgZnjgovjgZ/jgoHjga4gJXMg44G444GuIGlvY3RsKCkg44GM5LqI5pyf44Gb44Gs5aSx5pWX44Gr57WC44KP44KK44G+44GX44GfIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIuaZguWIu+ioreWumuOBruOBn+OCgeOBriAlcyDjgbjjga4gaW9jdGwoKSDjgYzlpLHmlZfjgZfjgb7jgZfjgZ/jgIJcbiIKKworIzogaHdjbG9jay9ydGMuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoJXMpIHdhcyBzdWNjZXNzZnVsLlxuIgorbXNnc3RyICJpb2N0bCglcykg44Gr5oiQ5Yqf44GX44G+44GX44Gf44CCXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICIlcyDjga7jgqrjg7zjg5fjg7PjgavlpLHmlZfjgZfjgb7jgZfjgZ8iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDEwIGh3Y2xvY2svcnRjLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBtYW5pcHVsYXRlIHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLCB3ZSBtdXN0IGFjY2VzcyB0aGUgTGludXggJ3J0YycgIgorImRldmljZSBkcml2ZXIgdmlhIHRoZSBkZXZpY2Ugc3BlY2lhbCBmaWxlICVzLiAgVGhpcyBmaWxlIGRvZXMgbm90IGV4aXN0IG9uICIKKyJ0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiIgorIuOCq+ODvOODjeODq+WGheOBruOCqOODneODg+OCr+WApOOCkueul+WHuuOBmeOCi+OBq+OBr+OAgeOCueODmuOCt+ODo+ODq+ODleOCoeOCpOODqyAlcyDjgpLpgJrjgZjjgaZcbiIKKyJMaW51eCDjga4gJ3J0Yycg44OH44OQ44Kk44K544OJ44Op44Kk44OQ44Gr44Ki44Kv44K744K544GZ44KL5b+F6KaB44GM44GC44KK44G+44GZ44CC44GX44GL44GX44CB44GT44GuXG4iCisi44OV44Kh44Kk44Or44GM44K344K544OG44Og44Gr5a2Y5Zyo44GX44G+44Gb44KT44CCXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDE1IGh3Y2xvY2svcnRjLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICIlcyDjgpLjgqrjg7zjg5fjg7PjgafjgY3jgb7jgZvjgpMiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKFJUQ19FUE9DSF9SRUFEKSB0byAlcyBmYWlsZWQiCittc2dzdHIgIiVzIOOBuOOBriBpb2N0bChSVENfRVBPQ0hfUkVBRCkg44GM5aSx5pWX44GX44G+44GX44GfIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAiIgorIiUyJHMg44GL44KJIFJUQ19FUE9DSF9SRUFEIGlvY3RsIOOBq+OCiOOBo+OBpuOCqOODneODg+OCryAlMSRsZCDjgpLoqq3jgb/lj5bjgorjgb7jgZfjgZ/jgIJcbiIKKworIzogaHdjbG9jay9ydGMuYzo0NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVwb2NoIHZhbHVlIG1heSBub3QgYmUgbGVzcyB0aGFuIDE5MDAuICBZb3UgcmVxdWVzdGVkICVsZFxuIgorbXNnc3RyICIiCisi44Ko44Od44OD44Kv5YCk44GvIDE5MDAg5bm05Lul5YmN44Gn44Gv44GC44KK5b6X44G+44Gb44KT44CC44GC44Gq44Gf44GvICVsZCDjgpLopoHmsYLjgZfjgb7jgZfjgZ9cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0dGluZyBlcG9jaCB0byAlbGQgd2l0aCBSVENfRVBPQ0hfU0VUIGlvY3RsIHRvICVzLlxuIgorbXNnc3RyICIiCisiJTIkcyDjgYvjgokgUlRDX0VQT0NIX1JFQUQgaW9jdGwg44Gr44KI44Gj44Gm44Ko44Od44OD44KvICUxJGxkIOOCkuiqreOBv+WPluOCiuOBvuOBl+OBn+OAglxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyBkb2VzIG5vdCBoYXZlIHRoZSBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorbXNnc3RyICIlcyDjga7jgqvjg7zjg43jg6vjg4njg6njgqTjg5Djga8gUlRDX0VQT0NIX1NFVCBpb2N0bCDjgpLmjIHjgaPjgabjgYTjgb7jgZvjgpPjgIJcbiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICIlcyDjgbjjga4gaW9jdGwoUlRDX0VQT0NIX1NFVCkg44GM5aSx5pWX44GX44G+44GX44GfIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIgorbXNnc3RyICIlczogJXMg44KS5a6f6KGM44Gn44GN44G+44Gb44KTOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCittc2dzdHIgIuaWh+Wtl+WIl+WIneacn+WMlueUqOODoeODouODquOBjOeiuuS/neOBp+OBjeOBvuOBm+OCkyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAi5LiN5q2j44Gq44K/44Kk44Og44Ki44Km44OI5YCkOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgIuS4jeato+OBqumAn+W6pjogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNworbXNnaWQgInRvbyBtYW55IGFsdGVybmF0ZSBzcGVlZHMiCittc2dzdHIgIuS7o+abv+mAn+W6puOBjOWkmuOBmeOBjuOBvuOBmSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSDjgYzlpLHmlZc6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogbm90IGEgY2hhcmFjdGVyIGRldmljZSIKK21zZ3N0ciAiL2Rldi8lczog44Kt44Oj44Op44Kv44K/44OH44OQ44Kk44K544Gn44Gv44GC44KK44G+44Gb44KTIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIvZGV2LyVzOiDmqJnmupblhaXlipvjgajjgZfjgabplovjgY/jgZPjgajjgYzjgafjgY3jgb7jgZvjgpM6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBvcGVuIGZvciByZWFkL3dyaXRlIgorbXNnc3RyICIlczog6Kqt44G/5pu444GN5Lih55So44Gr44Kq44O844OX44Oz44Gn44GN44G+44Gb44KTIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGR1cCBwcm9ibGVtOiAlbSIKK21zZ3N0ciAiJXM6IOikh+ijveOBq+WVj+mhjOeZuueUnzogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICLjg6bjg7zjgrYiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VycyIKK21zZ3N0ciAi44Om44O844K2IgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiJXM6IHJlYWQ6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnB1dCBvdmVycnVuIgorbXNnc3RyICIlczog5YWl5Yqb44GM5rqi44KM44G+44GX44GfIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy04aGlMbVV3XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggIgorImxvZ2luX2hvc3RdIGJhdWRfcmF0ZSwuLi4gbGluZSBbdGVybXR5cGVdXG4iCisib3JcdFstaGlMbXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCBsb2dpbl9ob3N0XSAiCisibGluZSBiYXVkX3JhdGUsLi4uIFt0ZXJtdHlwZV1cbiIKK21zZ3N0ciAiIgorIuS9v+OBhOaWuTogJXMgWy04aGlMbVV3XSBbLWwg44Ot44Kw44Kk44Oz44OX44Ot44Kw44Op44OgXSBbLXQg44K/44Kk44Og44Ki44Km44OIXSBbLUkg5Yid5pyf5YyW5paHIgorIuWtl+WIl10gWy1IIOODreOCsOOCpOODs+ODm+OCueODiF0g44Oc44O844Os44O844OILC4uLiDooYwgW+err+acq+OCv+OCpOODl11cbiIKKyLlj4jjga9cdFstaGlMbXddIFstbCDjg63jgrDjgqTjg7Pjg5fjg63jgrDjg6njg6BdIFstdCDjgr/jgqTjg6DjgqLjgqbjg4ggWy1JIOWIneacn+WMluaWh+Wtl+WIl10gWy0iCisiSCDjg63jgrDjgqTjg7Pjg5vjgrnjg4hdIOihjCDjg5zjg7zjg6zjg7zjg4gsLi4uIFvnq6/mnKvjgr/jgqTjg5ddXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImxvZ2luOiDjg6Hjg6Ljg6rjgYzlsJHjgarjgYTjga7jgafjgIHjg63jgrDjgqTjg7PjgavlpLHmlZfjgZnjgovjgojjgYbjgafjgZlcbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MgorbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgdHR5Y2xhc3MiCittc2dzdHIgInR0eSDjgq/jg6njgrnnlKjjg6Hjg6Ljg6rjgYznorrkv53jgafjgY3jgb7jgZvjgpMiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciBncnBsaXN0IgorbXNnc3RyICLjgrDjg6vjg7zjg5fjg6rjgrnjg4jnlKjjg6Hjg6Ljg6rjgYznorrkv53jgafjgY3jgb7jgZvjgpMiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkIGJ5IGRlZmF1bHQuXG4iCittc2dzdHIgIiUyJHMg44GL44KJICUxJHMg44G444Gu44Ot44Kw44Kk44Oz44Gv44CB5Yid5pyf54q25oWL44Gn44Gv5ouS5ZCm44GV44KM44G+44GX44Gf44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICIlMiRzIOOBi+OCiSAlMSRzIOOBuOOBruODreOCsOOCpOODs+OBr+WQpuWumuOBleOCjOOBvuOBl+OBn+OAglxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTMzIGxvZ2luLXV0aWxzL2Noc2guYzoxMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHlvdSAodXNlciAlZCkgZG9uJ3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiDjgYLjgarjgZ8gKOODpuODvOOCtiAlZCkg44Gv5a2Y5Zyo44GX44G+44Gb44KT44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDAgbG9naW4tdXRpbHMvY2hzaC5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiDjg6bjg7zjgrYgXCIlc1wiIOOBr+WtmOWcqOOBl+OBvuOBm+OCk+OAglxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQ1IGxvZ2luLXV0aWxzL2Noc2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBlbnRyaWVzOyB1c2UgeXAlcyBpbnN0ZWFkLlxuIgorbXNnc3RyICIiCisiJXM6IOODreODvOOCq+ODq+OBrumgheebruOBl+OBi+WkieabtOOBp+OBjeOBvuOBm+OCkyAtLSDjgYvjgo/jgorjgasgeXAlcyDjgpLkvb/jgYTjgb7jgZfjgofjgYbjgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NiBsb2dpbi11dGlscy9jaHNoLmM6MTQyCittc2dpZCAiVW5rbm93biB1c2VyIGNvbnRleHQiCittc2dzdHIgIuS4jeaYjuOBquODpuODvOOCtuODvOOCs+ODs+ODhuOCreOCueODiCIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiVzOiAvZXRjL3Bhc3N3ZCDjga7jg4fjg5Xjgqnjg6vjg4jjgrPjg7Pjg4bjgq3jgrnjg4jjgpLoqK3lrprjgafjgY3jgb7jgZvjgpMiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZmluZ2VyIGluZm9ybWF0aW9uIGZvciAlcy5cbiIKK21zZ3N0ciAiJXMg44GuIGZpbmdlciDmg4XloLHjgpLlpInmm7TjgZfjgb7jgZnjgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBQQU0gZmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCittc2dzdHIgIiVzOiBQQU0g5aSx5pWX44CC5Lit5pat44GX44G+44GZOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjEyIGxvZ2luLXV0aWxzL2Noc2guYzoyMTEgbG9naW4tdXRpbHMvbG9naW4uYzo4MjcKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjc5IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDAgbW91bnQvbG9tb3VudC5jOjc0MgorIzogbW91bnQvbG9tb3VudC5jOjc0NQorbXNnaWQgIlBhc3N3b3JkOiAiCittc2dzdHIgIuODkeOCueODr+ODvOODiTogIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjE1IGxvZ2luLXV0aWxzL2Noc2guYzoyMTQKK21zZ2lkICJJbmNvcnJlY3QgcGFzc3dvcmQuIgorbXNnc3RyICLplpPpgZXjgaPjgZ/jg5Hjgrnjg6/jg7zjg4njgafjgZnjgIIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJmaW5nZXIg5oOF5aCx44Gv5aSJ5pu044GV44KM44G+44Gb44KT44Gn44GX44Gf44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIuS9v+OBhOaWuTogJXMgWyAtZiDjg5Xjg6vjg43jg7zjg6AgXSBbIC1vIOOCquODleOCo+OCuSBdICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWyAtcCBvZmZpY2UtcGhvbmUgXVxuIgorIlx0WyAtaCBob21lLXBob25lIF0gIgorbXNnc3RyICIiCisiWyAtcCDjgqrjg5XjgqPjgrnpm7voqbHnlarlj7cgXVxuIgorIlx0WyAtaCDoh6rlroXpm7voqbHnlarlj7cgXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICLjgqrjg5XjgqPjgrkiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIuOCquODleOCo+OCueOBrumbu+ipsSIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIuiHquWuheOBrumbu+ipsSIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQwMSBsb2dpbi11dGlscy9jaHNoLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJBYm9ydGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisi5Lit5pat44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmllbGQgaXMgdG9vIGxvbmcuXG4iCittc2dzdHIgIuODleOCo+ODvOODq+ODieOBjOmVt+OBmeOBjuOBvuOBmeOAglxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiclYycg44Gv6Kix5Y+v44GV44KM44G+44Gb44KT44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAi44Kz44Oz44OI44Ot44O844Or5paH5a2X44Gv6Kix5Y+v44GV44KM44G+44Gb44KT44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgImZpbmdlciDmg4XloLHjga/lpInmm7QgKuOBleOCjOOBvuOBm+OCk+OBp+OBl+OBnyrjgILjgb7jgZ/jgYLjgajjgafoqabjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiZmluZ2VyIOaDheWgseOCkuWkieabtOOBl+OBvuOBl+OBn+OAglxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBzaGVsbCBvZiAlc1xuIgorbXNnc3RyICIlczogJXMg44GvIC9ldGMvc2hlbGxzIOODquOCueODiOOBruS4reOBq+OBguOCiuOBvuOBm+OCk+OAglxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogUnVubmluZyBVSUQgZG9lc24ndCBtYXRjaCBVSUQgb2YgdXNlciB3ZSdyZSBhbHRlcmluZywgc2hlbGwgY2hhbmdlICIKKyJkZW5pZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBZb3VyIHNoZWxsIGlzIG5vdCBpbiAvZXRjL3NoZWxscywgc2hlbGwgY2hhbmdlIGRlbmllZFxuIgorbXNnc3RyICIiCisiJXM6IOOBguOBquOBn+OBruOCt+OCp+ODq+OBryAvZXRjL3NoZWxscyDjgavjgYLjgorjgb7jgZvjgpPjga7jgafjgIHjgrfjgqfjg6vjga7lpInmm7TjgYzmi5LlkKbjgZXjgozjgb7jgZciCisi44GfXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgc2hlbGwgZm9yICVzLlxuIgorbXNnc3RyICIlcyDjga7jgrfjgqfjg6vjgpLlpInmm7TjgZfjgb7jgZnjgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyMgorbXNnaWQgIk5ldyBzaGVsbCIKK21zZ3N0ciAi5paw44GX44GE44K344Kn44OrIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICLjgrfjgqfjg6vjgpLlpInmm7TjgZfjgb7jgZvjgpPjgafjgZfjgZ/jgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICLjgrfjgqfjg6vjga/lpInmm7QgKuOBleOCjOOBvuOBm+OCk+OBp+OBl+OBnyrjgILjgYLjgajjgafjgb7jgZ/oqabjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBjaGFuZ2VkLlxuIgorbXNnc3RyICLjgrfjgqfjg6vjgpLlpInmm7TjgZfjgb7jgZfjgZ/jgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1c2VybmFtZSBdXG4iCittc2dzdHIgIiIKKyLkvb/jgYTmlrk6ICVzIFsgLXMg44K344Kn44OrIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsg44Om44O844K25ZCNIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM0OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2hlbGwgbXVzdCBiZSBhIGZ1bGwgcGF0aCBuYW1lLlxuIgorbXNnc3RyICIlczog44K344Kn44Or44Gv44OV44Or44OR44K544Gn54Sh44GR44KM44Gw44Gq44KK44G+44Gb44KT44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiDjga/lrZjlnKjjgZfjgb7jgZvjgpPjgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBleGVjdXRhYmxlLlxuIgorbXNnc3RyICIlczogXCIlc1wiIOOBr+Wun+ihjOOBp+OBjeOBvuOBm+OCk+OAglxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogJyVjJyDjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPjgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6IOOCs+ODs+ODiOODreODvOODq+aWh+Wtl+OBr+ioseWPr+OBleOCjOOBvuOBm+OCk+OAglxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc1IGxvZ2luLXV0aWxzL2Noc2guYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIuitpuWRijogXCIlc1wiIOOBryAvZXRjL3NoZWxscyDjg6rjgrnjg4jjga7kuK3jgavjgYLjgorjgb7jgZvjgpPjgIJcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIg44GvIC9ldGMvc2hlbGxzIOODquOCueODiOOBruS4reOBq+OBguOCiuOBvuOBm+OCk+OAglxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVc2UgLWwgb3B0aW9uIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICIlczog44Oq44K544OI44KS6KaL44KL44Gr44GvIC1sIOOCquODl+OCt+ODp+ODs+OCkuS9v+OBo+OBpuOBj+OBoOOBleOBhFxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSAlcyAtbCB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAi44Oq44K544OI44KS6KaL44KL44Gr44Gv44CBJXMgLWwg44KS5L2/44Gj44Gm44GP44Gg44GV44GE44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICLnn6XjgonjgarjgYTjgrfjgqfjg6vjgafjgZnjgIJcbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuICVzIGZvciByZWFkaW5nLCBleGl0aW5nLiIKK21zZ3N0ciAiJXMg44KS6Kqt6L6844G/55So44Gr6ZaL44GR44G+44Gb44KT44CC57WC5LqG44GX44G+44GZIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MTQ4Cittc2dpZCAidXNhZ2U6IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXNlciAuLi5dXG4iCittc2dzdHIgIuS9v+OBhOaWuTogbGFzdCBbLSNdIFstZiDjg5XjgqHjgqTjg6tdIFstdCDnq6/mnKtdIFstaCDjg5vjgrnjg4jlkI1dIFvjg6bjg7zjgrYgLi4uXVxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzAyCittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIiAg44Ot44Kw44Kk44Oz44GX44Gf44G+44G+44Gn44GZIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJ3dG1wIGJlZ2lucyAlcyIKK21zZ3N0ciAiIgorIlxuIgorInd0bXAg44GvICVzIOOBi+OCieWni+OBvuOCiuOBvuOBmSAiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozODAgbG9naW4tdXRpbHMvbGFzdC5jOjM5OCBsb2dpbi11dGlscy9sYXN0LmM6NDQ5Cittc2dpZCAibGFzdDogbWFsbG9jIGZhaWx1cmUuXG4iCittc2dzdHIgImxhc3Q6IOODoeODouODqueiuuS/neOBq+WkseaVl+OAglxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgImxhc3Q6IGdldGhvc3RuYW1lIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisi5Ymy44KK6L6844G/44GM5YWl44KK44G+44GX44GfICUxMC4xMHMgJTUuNXMgXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiBjYW4ndCByZW9wZW4gdHR5OiAlcyIKK21zZ3N0ciAi6Ie05ZG955qE44Gq44Ko44Op44O8OiB0dHkg44KS5YaN44Kq44O844OX44Oz44Gn44GN44G+44Gb44KTOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6ICVzIGlzIG5vdCBhIHRlcm1pbmFsIgorbXNnc3RyICLoh7Tlkb3nmoTjgarjgqjjg6njg7w6ICVzIOOBr+OCv+ODvOODn+ODiuODq+OBp+OBr+OBguOCiuOBvuOBm+OCkyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMzgKK21zZ2lkICJGQVRBTDogYmFkIHR0eSIKK21zZ3N0ciAi6Ie05ZG955qE44Gq44Ko44Op44O8OiDkuI3mraPjgaogdHR5IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogLWggZm9yIHN1cGVyLXVzZXIgb25seS5cbiIKK21zZ3N0ciAibG9naW46IC1oIOOBr+OCueODvOODkeODvOODpuODvOOCtuWwgueUqOOBp+OBmeOAglxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ4OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9naW4gWy1mcF0gW3VzZXJuYW1lXVxuIgorbXNnc3RyICLkvb/jgYTmlrk6IGxvZ2luIFstZnBdIFvjg6bjg7zjgrblkI1dXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiUEFNIOOBruWIneacn+WMluOBjOOBp+OBjeOBvuOBm+OCkzogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTk1Cittc2dpZCAibG9naW46ICIKK21zZ3N0ciAi44Ot44Kw44Kk44OzOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkxvZ2luIOOBjOmWk+mBleOBo+OBpuOBhOOBvuOBmVxuIgorIlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJUT08gTUFOWSBMT0dJTiBUUklFUyAoJWQpIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiKuODreOCsOOCpOODs+ODiOODqeOCpOOBjOWkmuOBmeOBjuOBvuOBmSogKCVkKSAlcyDjgYvjgokgJXMg44G4LCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICLlpLHmlZfjgZfjgZ/jg63jgrDjgqTjg7Pjgrvjg4Pjgrfjg6fjg7MgJXMg44GL44KJICVzIOOBuCwgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIkxvZ2luIOOBjOmWk+mBleOBo+OBpuOBhOOBvuOBmVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIuOCu+ODg+OCt+ODp+ODs+OCu+ODg+ODiOOCouODg+ODl+OBq+WVj+mhjOOAguS4reaWreOBl+OBvuOBmeOAglxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MQorIywgYy1mb3JtYXQKK21zZ2lkICJOVUxMIHVzZXIgbmFtZSBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICJOVUxMIOODpuODvOOCtuWQjeOBjCAlczolZCDjgavjgYLjgorjgb7jgZnjgILkuK3mlq3jgZfjgb7jgZnjgIIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdXNlciBuYW1lIFwiJXNcIiBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICLnhKHlirnjgarjg6bjg7zjgrblkI0gXCIlc1wiIOOBjCAlczolZCDjgavjgYLjgorjgb7jgZnjgILkuK3mlq3jgZfjgb7jgZkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzE3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgImxvZ2luOiDjg6Hjg6Ljg6rjgYzotrPjgorjgb7jgZvjgpNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICLkuI3mraPjgarjg6bjg7zjgrblkI0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvZ2luIHJlZnVzZWQgb24gdGhpcyB0ZXJtaW5hbC5cbiIKK21zZ3N0ciAiJXMg44Gu44Ot44Kw44Kk44Oz44Gv44GT44Gu56uv5pyr44Gn44Gv5ouS5ZCm44GV44KM44G+44GX44Gf44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgRlJPTSAlcyBPTiBUVFkgJXMiCittc2dzdHIgIuODreOCsOOCpOODsyAlcyDjgpLmi5LntbbjgIElcyDjgYvjgokgVFRZICVzIOS4iuOBpyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiCittc2dzdHIgIuODreOCsOOCpOODsyAlcyDjgpLmi5LntbbjgIFUVFkgJXMg5LiK44GnIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjg2NworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiTG9naW4g44GM6ZaT6YGV44Gj44Gm44GE44G+44GZXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgIuODgOOCpOOCouODq+OCouODg+ODl+OBpyAlcyDjgavjgIElcyDjgavjgojjgosiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5OQorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCittc2dzdHIgIiVzIOOBqyBST09UIOOBjOODreOCsOOCpOODs+OAgSVzIOOBi+OCiSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMiCittc2dzdHIgIiVzIOOBqyBST09UIOOBjOODreOCsOOCpOODsyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIEZST00gJXMiCittc2dzdHIgIiVzIOOBqyAlcyDjgYzjg63jgrDjgqTjg7PjgIElcyDjgYvjgokiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwOAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyIKK21zZ3N0ciAiJXMg44GrICVzIOOBjOODreOCsOOCpOODsyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG5ldyBtYWlsLlxuIgorbXNnc3RyICLmlrDjgZfjgYTjg6HjgqTjg6vjgYzlsYrjgYTjgabjgYTjgb7jgZnjgIJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG1haWwuXG4iCittc2dzdHIgIuODoeOCpOODq+OBjOWxiuOBhOOBpuOBhOOBvuOBmeOAglxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiCittc2dzdHIgImxvZ2luOiBmb3JrIOOBq+WkseaVlzogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyMgorIywgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiVElPQ1NDVFRZIOOBq+WkseaVlzogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkg44Gr5aSx5pWXIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICLjg4fjgqPjg6zjgq/jg4jjg6ogJXMg44GM44GC44KK44G+44Gb44KT77yBXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dnaW5nIGluIHdpdGggaG9tZSA9IFwiL1wiLlxuIgorbXNnc3RyICLjg5vjg7zjg6Djg4fjgqPjg6zjgq/jg4jjg6ogXCIvXCIg44Gn44Ot44Kw44Kk44Oz44GX44G+44GZ44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgImxvZ2luOiDjgrfjgqfjg6vjgrnjgq/jg6rjg5fjg4jnlKjjga7jg6Hjg6Ljg6rjgYzjgYLjgorjgb7jgZvjgpPjgIJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iCittc2dzdHIgImxvZ2luOiDjgrfjgqfjg6vjgrnjgq/jg6rjg5fjg4jjgpLlrp/ooYzjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ86ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gc2hlbGw6ICVzLlxuIgorbXNnc3RyICJsb2dpbjog44K344Kn44Or44GM44GC44KK44G+44Gb44KTOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlcyBsb2dpbjogIgorbXNnc3RyICIiCisiXG4iCisiJXMg44Ot44Kw44Kk44OzOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lIG11Y2ggdG9vIGxvbmcuXG4iCittc2dzdHIgIuODreOCsOOCpOODs+WQjeOBjOmVt+OBmeOBjuOBvuOBmeOAglxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICLlkI3liY3jgYzplbfjgZnjgY7jgb7jgZkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMxMAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lcyBtYXkgbm90IHN0YXJ0IHdpdGggJy0nLlxuIgorbXNnc3RyICLjg63jgrDjgqTjg7PlkI3jga8gJy0nIOOBp+Wni+OBvuOBo+OBpuOBhOOBpuOBr+OBhOOBkeOBvuOBm+OCk+OAglxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgIuihjOmAgeOCiihsaW5lZmVlZCkg44GM5aSa44GZ44GO44G+44GZ44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIumBjuWkp+OBquihjOmAgeOCiihsaW5lZmVlZCkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIgorbXNnc3RyICIlZCDnp5Llvozjgavjg63jgrDjgqTjg7Pjga7mmYLplpPliIfjgoxcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgbG9naW46ICUuKnMgIgorbXNnc3RyICLmnIDntYLjg63jgrDjgqTjg7M6ICUuKnMgIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnJvbSAlLipzXG4iCittc2dzdHIgIiAlLipzIOOBi+OCiVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib24gJS4qc1xuIgorbXNnc3RyICIgJS4qcyDkuIpcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIiVzIOOBi+OCieOBruODreOCsOOCpOODs+OBjOWkseaVlywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAiJXMg44Gn44Gu44Ot44Kw44Kk44Oz44GM5aSx5pWXLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIgorbXNnc3RyICIlZCDlm54gJXMg44GL44KJ44Gu44Ot44Kw44Kk44Oz44GM5aSx5pWXLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIE9OICVzLCAlcyIKK21zZ3N0ciAiJWQg5ZueICVzIOOBp+OBruODreOCsOOCpOODs+OBjOWkseaVlywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyB5XG4iCittc2dzdHIgIuOBryB5IOOBp+OBmVxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgblxuIgorbXNnc3RyICLjga8gbiDjgafjgZlcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgIuS9v+OBhOaWuTogbWVzZyBbeSB8IG5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjk5Cittc2dpZCAibmV3Z3JwOiBXaG8gYXJlIHlvdT8iCittc2dzdHIgIm5ld2dycDog44GC44KT44Gf6Kqw77yfIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMDcgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTIxCittc2dpZCAibmV3Z3JwOiBzZXRnaWQiCittc2dzdHIgIm5ld2dycDogc2V0Z2lkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMTQgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE2Cittc2dpZCAibmV3Z3JwOiBObyBzdWNoIGdyb3VwLiIKK21zZ3N0ciAibmV3Z3JwOiDjgZ3jga7jgojjgYbjgarjgrDjg6vjg7zjg5fjga/jgYLjgorjgb7jgZvjgpPjgIIiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyNQorbXNnaWQgIm5ld2dycDogUGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm5ld2dycDog6Kix5Y+v44GM44GC44KK44G+44Gb44KTIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzIKK21zZ2lkICJuZXdncnA6IHNldHVpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXR1aWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzOAorbXNnaWQgIk5vIHNoZWxsIgorbXNnc3RyICLjgrfjgqfjg6vjgYzjgYLjgorjgb7jgZvjgpMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW5zXVxuIgorbXNnc3RyICLkvb/jgYTmlrk6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K+WIhl1cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgIuOCt+ODo+ODg+ODiOODgOOCpuODs+WHpueQhuOBr+S4reaWreOBleOCjOOBvuOBl+OBnyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9ubHkgcm9vdCBjYW4gc2h1dCBhIHN5c3RlbSBkb3duLlxuIgorbXNnc3RyICIlczogcm9vdCDjgaDjgZHjgYzjgrfjgrnjg4bjg6DjgpLjgrfjg6Pjg4Pjg4jjg4Djgqbjg7PjgafjgY3jgb7jgZnjgIJcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIuaYjuaXpeOBq+OBquOBo+OBpuOBl+OBvuOBhOOBvuOBmeOBjOOAgeOBneOCjOOBvuOBp+W+heOBpuOBquOBhOOBp+OBl+OCh++8n1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMxMAorbXNnaWQgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCittc2dzdHIgIuODoeODs+ODhuODiuODs+OCueeUqCAtLSBib3VuY2UsIGJvdWNlIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMzOQorbXNnaWQgIlRoZSBzeXN0ZW0gaXMgYmVpbmcgc2h1dCBkb3duIHdpdGhpbiA1IG1pbnV0ZXMiCittc2dzdHIgIuOCt+OCueODhuODoOOBryA1IOWIhuS7peWGheOBq+mBruaWreOBleOCjOOBvuOBmSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNDMKK21zZ2lkICJMb2dpbiBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4iCittc2dzdHIgIuODreOCsOOCpOODs+OBr+OBneOCjOaVheemgeatouOBleOCjOOBpuOBhOOBvuOBmeOAgiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVib290ZWQgYnkgJXM6ICVzIgorbXNnc3RyICIlcyDjgavjgojjgosgcmVib290OiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiJXMg44Gr44KI44KLIGhhbHQ6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzMgorbXNnaWQgIiIKKyJcbiIKKyJXaHkgYW0gSSBzdGlsbCBhbGl2ZSBhZnRlciByZWJvb3Q/IgorbXNnc3RyICIiCisiXG4iCisi44Gq44KT44Gn44Oq44OW44O844OI44GX44Gf44Gu44Gr44CB5L+644GM44G+44Gg55Sf44GN44Gm44GE44KL44KT44Gg77yfIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzNAorbXNnaWQgIiIKKyJcbiIKKyJOb3cgeW91IGNhbiB0dXJuIG9mZiB0aGUgcG93ZXIuLi4iCittc2dzdHIgIiIKKyJcbiIKKyLjgZXjgYLjgIHpm7vmupDjgpLliIfjgaPjgabjgoLjgYTjgYTjgafjgZnjgoguLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICLjgqvjg7zjg43jg6vjga4gcG93ZXItb2ZmIOapn+iDveOCkuWRvOOBs+WHuuOBl+OBpuOBhOOBvuOBmS4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIumbu+a6kOOCkuWIh+OCi+mam+OBruOCqOODqeODvFx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAi44OX44Ot44Kw44Op44OgIFwiJXNcIiDjgpLlrp/ooYzjgZfjgabjgYTjgb7jgZkuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nXHQlc1xuIgorbXNnc3RyICLlrp/ooYzjgqjjg6njg7xcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiCittc2dzdHIgIue3iuaApTogJXMg44GL44KJ44Gu44Oh44OD44K744O844K4OiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgaG91cnMgJWQgbWludXRlcyIKK21zZ3N0ciAi44K344K544OG44Og44GvICVkIOaZgumWkyAlZCDliIbjgafntYLkuobjgZfjgb7jgZkiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICLjgrfjgrnjg4bjg6Djga8gMSDmmYLplpMgJWQg5YiG44Gn57WC5LqG44GX44G+44GZIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBtaW51dGVzXG4iCittc2dzdHIgIuOCt+OCueODhuODoOOBryAlZCDliIbjgafntYLkuobjgZfjgb7jgZlcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBtaW51dGVcbiIKK21zZ3N0ciAi44K344K544OG44Og44GvIDEg5YiG44Gn57WC5LqG44GX44G+44GZXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIgorbXNnc3RyICLjgrfjgrnjg4bjg6Djga8q5LuK44GZ44GQ44GrKue1guS6huOBl+OBvuOBme+8gVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICJcdC4uLiAlcyAuLi5cbiIKK21zZ3N0ciAiXHQuLi4gJXMgLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTcwCittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHN3YXBvZmYuIFNocnVnISIKK21zZ3N0ciAic3dhcG9mZiDlrZDjg5fjg63jgrvjgrnjgpLotbfli5XjgafjgY3jgb7jgZvjgpPjgIIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTc4Cittc2dpZCAiQ2Fubm90IGV4ZWMgc3dhcG9mZiwgaG9waW5nIHVtb3VudCB3aWxsIGRvIHRoZSB0cmljay4iCittc2dzdHIgInN3YXBvZmYg44KS5a6f6KGM44Gn44GN44G+44Gb44KT44Gu44Gn44CB44Ki44Oz44Oe44Km44Oz44OI44KS6aOb44Gw44GZ44Go44GE44GE44Gn44GX44KH44GG44CCIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU5NworbXNnaWQgIkNhbm5vdCBmb3JrIGZvciB1bW91bnQsIHRyeWluZyBtYW51YWxseS4iCittc2dzdHIgInVtb3VudCDlrZDjg5fjg63jgrvjgrnjgpLotbfli5XjgafjgY3jgb7jgZvjgpPjgILmiYvli5XjgpLoqabjgZfjgabjgb/jgb7jgZnjgIIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICIlcyDjgpLlrp/ooYzjgafjgY3jgb7jgZvjgpPjgILjgqLjg7Pjg57jgqbjg7Pjg4jjgpLoqabjgb/jgb7jgZnjgIJcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTAKK21zZ2lkICJDYW5ub3QgZXhlYyB1bW91bnQsIGdpdmluZyB1cCBvbiB1bW91bnQuIgorbXNnc3RyICJ1bW91bnQg44KS5a6f6KGM44Gn44GN44G+44Gb44KT44CC44Ki44Oz44Oe44Km44Oz44OI44KS6Kum44KB44G+44GZ44CCIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxNQorbXNnaWQgIlVubW91bnRpbmcgYW55IHJlbWFpbmluZyBmaWxlc3lzdGVtcy4uLiIKK21zZ3N0ciAi5q6L44KK44Gu44OV44Kh44Kk44Or44K344K544OG44Og44KS44Ki44Oz44Oe44Km44Oz44OI44GX44G+44GZLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJzaHV0ZG93bjogQ291bGRuJ3QgdW1vdW50ICVzOiAlc1xuIgorbXNnc3RyICJzaHV0ZG93bjogJXMg44GuIHVtb3VudCDjgYzjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ86ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzIKK21zZ2lkICJCb290aW5nIHRvIHNpbmdsZSB1c2VyIG1vZGUuXG4iCittc2dzdHIgIuOCt+ODs+OCsOODq+ODpuODvOOCtuODouODvOODieOBp+ODluODvOODiOOBl+OBvuOBmeOAglxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTM2Cittc2dpZCAiZXhlYyBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAi44K344Oz44Kw44Or44Om44O844K244K344Kn44Or44Gu5a6f6KGM44Gr5aSx5pWX44GX44G+44GX44GfXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICLjgrfjg7PjgrDjg6vjg6bjg7zjgrbjgrfjgqfjg6vjga4gZm9yayDjgavlpLHmlZfjgZfjgb7jgZfjgZ9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICLjg5HjgqTjg5fjga7jgqrjg7zjg5fjg7Pjgafjgqjjg6njg7znmbrnlJ9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIxMgorbXNnaWQgImVycm9yIHNldHRpbmcgY2xvc2Utb24tZXhlYyBvbiAvZGV2L2luaXRjdGwiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI1OQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImZpbmFscHJvZ+Wun+ihjOaZguOBq+OCqOODqeODvOeZuueUn1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAiZmluYWxwcm9nIOOBriBmb3JrIOaZguOBq+OCqOODqeODvOeZuueUn1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQ1Cittc2dpZCAiIgorIlxuIgorIldyb25nIHBhc3N3b3JkLlxuIgorbXNnc3RyICIiCisiXG4iCisi6ZaT6YGV44Gj44Gf44OR44K544Ov44O844OJ44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MTgKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICLjg5Hjgrnjga4gbHN0YXQoMikg44GM5aSx5pWX44GX44G+44GX44GfXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MjYKK21zZ2lkICJzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgIuODkeOCueOBriBzdGF0KDIpIOOBjOWkseaVl+OBl+OBvuOBl+OBn1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgIuODh+OCo+ODrOOCr+ODiOODquOBruOCquODvOODl+ODs+OBjOWkseaVl+OBl+OBvuOBl+OBn1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTAxCisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3Bhd25pbmc6IFwiJXNcIiB0b28gZmFzdDogcXVlbmNoaW5nIGVudHJ5XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwOQorbXNnaWQgImZvcmsgZmFpbGVkXG4iCittc2dzdHIgIuWtkOODl+ODreOCu+OCueOBrui1t+WLleOBq+WkseaVl1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTQwIHRleHQtdXRpbHMvbW9yZS5jOjE2NjMKK21zZ2lkICJleGVjIGZhaWxlZFxuIgorbXNnc3RyICLlrp/ooYzjgavlpLHmlZdcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU2NAorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAiaW5pdHRhYiDjgpLplovjgZHjgb7jgZvjgpNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgIuerr+acq+OBjOOBquOBhOOBiyB0dHkg44Gu54q25oWL44KS5Y+W5b6X44Gn44GN44G+44Gb44KTXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igc3RvcHBpbmcgc2VydmljZTogXCIlc1wiXG4iCittc2dzdHIgIuOCteODvOODk+OCueOCkuWBnOatouOBmeOCi+mam+OBq+OCqOODqeODvOOBjOeZuueUn+OBl+OBvuOBl+OBnzogXCIlc1wiXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICLjgrXjg7zjg5PjgrnjgpLlgZzmraLjgZfjgb7jgZk6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMDcwCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJ1bm5pbmcgcHJvZ3JhbW1lOiBcIiVzXCJcbiIKK21zZ3N0ciAicHJvZ3JhbW1l5a6f6KGM5pmC44Gr44Ko44Op44O844GM55m655Sf44GX44G+44GX44GfOiBcIiVzXCJcbiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6NzUKK21zZ2lkICJ0b28gbWFueSBpb3YncyAoY2hhbmdlIGNvZGUgaW4gd2FsbC90dHltc2cuYykiCittc2dzdHIgImlvdiDjgYzlpJrjgZnjgY7jgb7jgZkgKHdhbGwvdHR5bXNnLmMg44Gu44Kz44O844OJ44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GEKSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIKK21zZ3N0ciAi6KGM5byV5pWw44GM6ZW344GZ44GO44G+44GZIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgIuWtkOODl+ODreOCu+OCueOCkui1t+WLleOBp+OBjeOBvuOBm+OCkyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICJmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiAq5LiN5q2j44Gq44Ko44Op44O8KiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIHBhc3N3b3JkIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiJXM6IOODkeOCueODr+ODvOODieODleOCoeOCpOODq+OBr+S9v+eUqOS4reOBp+OBmeOAglxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgZ3JvdXAgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczog44Kw44Or44O844OX44OV44Kh44Kk44Or44Gv5L2/55So5Lit44Gn44GZ44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSAlcyBmaWxlIGlzIGJ1c3kgKCVzIHByZXNlbnQpXG4iCittc2dzdHIgIiVzOiDjgZ3jga7jg5XjgqHjgqTjg6sgJXMg44Gv5L2/55So5Lit44Gn44GZICjnj77lnKjjga8gJXMpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiVzOiAlcyDjgpLjg6rjg7Pjgq/jgafjgY3jgb7jgZvjgpM6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IGdldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6ICVzIOOBruOCs+ODs+ODhuOCreOCueODiOOCkuWPluW+l+OBp+OBjeOBvuOBm+OCkyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogJXMg44Gu44Kz44Oz44OG44Kt44K544OI44KS6Kit5a6a44Gn44GN44G+44Gb44KTIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCB1bmxvY2sgJXM6ICVzICh5b3VyIGNoYW5nZXMgYXJlIHN0aWxsIGluICVzKVxuIgorbXNnc3RyICIlczogJXMg44Gu44Ot44OD44Kv44KS6Kej6Zmk44Gn44GN44G+44Gb44KTOiAlcyAo5aSJ5pu044GvICVzIOOBruOBvuOBvuOBp+OBmSlcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGZvcmtcbiIKK21zZ3N0ciAiJXM6IOWtkOODl+ODreOCu+OCueOCkui1t+WLleOBp+OBjeOBvuOBm+OCk1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiJXM6ICVzIOOBr+WkieabtOOBleOCjOOBvuOBm+OCk+OBp+OBl+OBn1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBjaGFuZ2VzIG1hZGVcbiIKK21zZ3N0ciAiJXM6IOWkieabtOOBleOCjOOBvuOBm+OCk+OBp+OBl+OBn1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IGdyb3VwcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAi44GT44Gu44K344K544OG44Og44Gn44Gv44K344Oj44OJ44Km44Kw44Or44O844OX44GM5L2/44KP44KM44Gm44GE44G+44GZ44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICLjgZPjga7jgrfjgrnjg4bjg6Djgafjga/jgrfjg6Pjg4njgqbjg5Hjgrnjg6/jg7zjg4njgYzkvb/jgo/jgozjgabjgYTjgb7jgZnjgIJcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCB5b3UgbGlrZSB0byBlZGl0ICVzIG5vdyBbeS9uXT8gIgorbXNnc3RyICLku4rjgZnjgZAgJXMg44KS57eo6ZuG44GX44G+44GZ44GLIFt5L25dPyAiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICLkvb/jgYTmlrk6ICVzIFvjg5XjgqHjgqTjg6tdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiDkuIDmmYLjg5XjgqHjgqTjg6vjgpLjgqrjg7zjg5fjg7PjgafjgY3jgb7jgZvjgpPjgIJcbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICIlc0AlcyDjgYvjgonmtYHjgozjgabjgY3jgZ/jg6Hjg4Pjgrvjg7zjgrgiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiAlcyDjgpLoqq3jgb/jgb7jgZvjgpMgLSDmqJnmupblhaXlipvjgpLkvb/jgYTjgb7jgZfjgofjgYbjgIJcbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiJXM6ICVzIOOCkuiqreOCgeOBvuOBm+OCk+OAglxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczog5LiA5pmC44OV44Kh44Kk44Or44Gu5oOF5aCx44KS5Y+W5b6X44Gn44GN44G+44Gb44KT44CCXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiDkuIDmmYLjg5XjgqHjgqTjg6vjgpLoqq3jgoHjgb7jgZvjgpPjgIJcbiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjQgbWlzYy11dGlscy9jYWwuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkYXkgdmFsdWU6IHVzZSAxLSVkIgorbXNnc3RyICLkuI3mraPjgarml6U6IDEtJWQg44KS5L2/44Gj44Gm44GP44Gg44GV44GEIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICLkuI3mraPjgarmnIg6IDEtMTIg44KS5L2/44Gj44Gm44GP44Gg44GV44GEIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM3MgorbXNnaWQgImlsbGVnYWwgeWVhciB2YWx1ZTogdXNlIDEtOTk5OSIKK21zZ3N0ciAi5LiN5q2j44Gq5bm0OiAxLTk5OTkg44KS5L2/44Gj44Gm44GP44Gg44GV44GEIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJXMgJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIgorbXNnc3RyICLkvb/jgYTmlrk6IGNhbCBbLTEzc21qeVZdIFtbW+aXpV0g5pyIXSDlubRdXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsrZm9ybWF0XSBbZGF5IG1vbnRoIHllYXJdXG4iCittc2dzdHIgIuS9v+OBhOaWuTogJXMgWyvmm7jlvI9dIFvml6Ug5pyIIOW5tF1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIuiBliBUaWIg44Gu5pelIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCittc2dzdHIgIuS9v+OBhOaWuTogJXMgTEFCRUw9PGxhYmVsPnxVVUlEPTx1dWlkPlxuIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjU1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byByZXNvbHZlICclcyciCittc2dzdHIgIiclcycg44KS6Kej5rG644Gn44GN44G+44Gb44KTIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzXG4iCittc2dzdHIgIiVzOiDkuI3mmI7jgarjgrfjgrDjg4rjg6sgJXNcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIHByb2Nlc3MgXCIlc1wiXG4iCittc2dzdHIgIiVzOiDjg5fjg63jgrvjgrkgXCIlc1wiIOOCkuimi+OBpOOBkeOCieOCjOOBvuOBm+OCk1xuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzOyB2YWxpZCBzaWduYWxzOlxuIgorbXNnc3RyICIlczog5LiN5piO44Gq44K344Kw44OK44OrICVzIC0tIOato+W4uOOBquOCt+OCsOODiuODqzpcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKK21zZ3N0ciAi5L2/44GE5pa5OiAlcyBbIC1zIOOCt+OCsOODiuODqyB8IC1wIF0gWyAtYSBdIOODl+ODreOCu+OCuUlEIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiICAgICAgICAlcyAtbCBbIOOCt+OCsOODiuODqyBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiBvcGVubG9nOiBwYXRobmFtZSB0b28gbG9uZ1xuIgorbXNnc3RyICJsb2dnZXI6IG9wZW5sb2c6IOODkeOCueWQjeOBjOmVt+OBmeOBjuOBvuOBmVxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgIuOCveOCseODg+ODiDogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgImNvbm5lY3Q6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiAlczogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiDkuI3mmI7jgaropoHntKDlkI06ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gcHJpb3JpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjog5LiN5piO44Gq5YSq5YWI5bqmOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiBsb2dnZXIgWy1pc10gWy1mIOODleOCoeOCpOODq10gWy1wIOWEquWFiOW6pl0gWy10IOOCv+OCsF0gWy11IOOCveOCseODg+ODiF0gWyDjg6Hjg4MiCisi44K744O844K4IC4uLiBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9vay5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9vayBbLWRmYV0gWy10IGNoYXJdIHN0cmluZyBbZmlsZV1cbiIKK21zZ3N0ciAi5L2/44GE5pa5OiBsb29rIFstZGZhXSBbLXQg44Kt44Oj44Op44Kv44K/XSDmloflrZfliJcgW+ODleOCoeOCpOODq11cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlcyDjgpLjgqrjg7zjg5fjg7PjgafjgY3jgb7jgZvjgpNcbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA5IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICIlMiRzIOOBi+OCiSAlMSRkIOODkOOCpOODiOWPluW+l+OBl+OBvuOBl+OBn1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTQzIG1pc2MtdXRpbHMvbmFtZWkuYzoxOTggbWlzYy11dGlscy9uYW1laS5jOjIyNQorIzogbWlzYy11dGlscy9uYW1laS5jOjI0NSBtaXNjLXV0aWxzL25hbWVpLmM6MjUyIG1pc2MtdXRpbHMvbmFtZWkuYzoyOTQKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAi44Oh44Oi44Oq44GM6Laz44KK44Gq44GEPyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCBzeW1saW5rOiAlcyIKK21zZ3N0ciAic3ltbGluayDjga7oqq3jgb/ovrzjgb/jgavlpLHmlZfjgZfjgb7jgZfjgZ86ICVzIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjMxIG1pc2MtdXRpbHMvbmFtZWkuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IHN0YXQgJyVzJyIKK21zZ3N0ciAiJyVzJyDjgpIgc3RhdCDjgafjgY3jgb7jgZvjgpMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gcGF0aG5hbWUgW3BhdGhuYW1lIC4uLl1cbiIKK21zZ3N0ciAiIgorIlxuIgorIuS9v+OBhOaWuTogJXMgW+OCquODl+OCt+ODp+ODs10g44OR44K55ZCNIFvjg5HjgrnlkI0gLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisi44Kq44OW44K344On44OzOlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAteCwgLS1tb3VudHBvaW50cyAgIHNob3cgbW91bnQgcG9pbnQgZGlyZWN0b3JpZXMgd2l0aCBhICdEJ1xuIgorIiAtbSwgLS1tb2RlcyAgICAgICAgIHNob3cgdGhlIG1vZGUgYml0cyBvZiBlYWNoIGZpbGVcbiIKKyIgLW8sIC0tb3duZXJzICAgICAgICBzaG93IG93bmVyIGFuZCBncm91cCBuYW1lIG9mIGVhY2ggZmlsZVxuIgorIiAtbCwgLS1sb25nICAgICAgICAgIHVzZSBhIGxvbmcgbGlzdGluZyBmb3JtYXQgKC1tIC1vIC12KSBcbiIKKyIgLW4sIC0tbm9zeW1saW5rcyAgICBkb24ndCBmb2xsb3cgc3ltbGlua3NcbiIKKyIgLXYsIC0tdmVydGljYWwgICAgICB2ZXJ0aWNhbCBhbGlnbiBvZiBtb2RlcyBhbmQgb3duZXJzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIG5hbWVpKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisi6Kmz57Sw5oOF5aCx44Gv44CBbmFtZWkoMSkg44KS56K66KqN44GX44Gm44GP44Gg44GV44GE44CCXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQ6ICVzIgorbXNnc3RyICJzdGF0IOOBjOWkseaVl+OBl+OBvuOBl+OBnzogJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiJXM6IOODoeODouODquOBjOi2s+OCiuOBvuOBm+OCk1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZW5hbWluZyAlcyB0byAlcyBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiVzOiAlcyDjgYvjgokgJXMg44G444Gu5ZCN5YmN44Gu5aSJ5pu044Gr5aSx5pWX44GX44G+44GX44GfOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAiY2FsbDogJXMgZnJvbSB0byBmaWxlcy4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisi6K2m5ZGKOiBgJXMnIOOBr+OCt+ODs+ODnOODquODg+OCr+ODquODs+OCr+OBp+OBmeOAglxuIgorIuacrOW9k+OBq+OBneOCjOOCkuS9v+OBhOOBn+OBhOOBquOCiSBgJXMgW+OCquODl+OCt+ODp+ODs10gJXMnIOOCkuS9v+OBhOOBvuOBl+OCh+OBhlxuIgorIlNjcmlwdCDjga/plovlp4vjgZfjgb7jgZvjgpPjgafjgZfjgZ/jgIJcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorbXNnc3RyICLkvb/jgYTmlrk6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFvjg5XjgqHjgqTjg6tdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIuOCueOCr+ODquODl+ODiOOCkumWi+Wni+OBl+OBvuOBl+OBn+OAgeODleOCoeOCpOODq+OBryAlcyDjgafjgZlcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yICVkOiAlc1xuIgorbXNnc3RyICIlczog5pu444GN6L6844G/44Ko44Op44O8ICVkOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAi44K544Kv44Oq44OX44OI44GvICVzIOOBq+mWi+Wni+OBl+OBvuOBl+OBnyIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczog5pu444GN6L6844G/44Ko44Op44O8OiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IOOCueOCr+ODquODl+ODiOODleOCoeOCpOODq+OCkuabuOOBjei+vOOCgOOBk+OBqOOBjOWHuuadpeOBvuOBm+OCk+OAguOCqOODqeODvDogJXMgXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorIlxuIgorIuOCueOCr+ODquODl+ODiOOBryAlcyDjgavntYLkuobjgZfjgb7jgZfjgZ8iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIuOCueOCr+ODquODl+ODiOOCkue1guS6huOBl+OBvuOBl+OBn+OAgeODleOCoeOCpOODq+OBryAlcyDjgafjgZlcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbnB0eSBmYWlsZWRcbiIKK21zZ3N0ciAib3BlbnB0eSDjgYzlpLHmlZdcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIHB0eSdzXG4iCittc2dzdHIgIuWIqeeUqOOBp+OBjeOCiyBwdHkg44GM44GC44KK44G+44Gb44KTXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iCittc2dzdHIgIiVzIDx0aW1pbmdmaWxlPiBbPHR5cGVzY3JpcHQ+IFs8ZGl2aXNvcj5dXVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorbXNnaWQgIndyaXRlIHRvIHN0ZG91dCBmYWlsZWQiCittc2dzdHIgIuaomea6luWHuuWKm+OBuOOBruabuOOBjei+vOOBv+OBjOWkseaVl+OBl+OBvuOBl+OBnyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5leHBlY3RlZCBlbmQgb2YgZmlsZSBvbiAlcyIKK21zZ3N0ciAiJXPjgafkuojmnJ/jgZfjgarjgYTjg5XjgqHjgqTjg6vjga7ntYLnq68iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAidHlwZXNjcmlwdCDjg5XjgqHjgqTjg6sgJXMg44Gu6Kqt44G/6L6844G/44GM5aSx5pWX44GX44G+44GX44GfIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIuODleOCoeOCpOODqyAnJXMnIOOCkumWi+OBkeOBvuOBm+OCkyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICJ0eXBlc2NyaXB0IOODleOCoeOCpOODqyAlcyDjgpLplovjgZHjgb7jgZvjgpMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiJXMg44GL44KJ5pmC5Yi744KS6Kqt6L6844KA44Gf44KB44GuIGlvY3RsKCkg44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IgorbXNnc3RyICIlczog5LqI5pyf44GX44Gq44GE44OV44Kh44Kk44Or5b2i5byPIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczog5byV5pWw44Ko44Op44O844CB5L2/44GE5pa544GvXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRlcm0gdGVybWluYWxfbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtdGVybSDnq6/mnKvlkI0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiAgWyAtcmVzZXQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiICBbIC1pbml0aWFsaXplIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIgIFsgLWRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc1IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NworIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiICBbIC1zdG9yZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtdGFicyBbIOOCv+ODljEg44K/44OWMiDjgr/jg5YzIC4uLiBdIF0gICAgICAo44K/44OW5pWwID0gMS0xNjApXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKK21zZ3N0ciAiICBbIC1jbHJ0YWJzIFsg44K/44OWMSDjgr/jg5YyIOOCv+ODljMgLi4uIF0gXSAgICjjgr/jg5bmlbAgPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCittc2dzdHIgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kdW1wICAgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1kdW1wICAgWzEtTlJfQ09OU09MRVNdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiICBbIC1maWxlIOODgOODs+ODl+ODleOCoeOCpOODq+WQjSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorbXNnc3RyICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorbXNnc3RyICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCittc2dzdHIgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSBibGFua1xuIgorbXNnc3RyICLlrZDjg5fjg63jgrvjgrnjgpLotbfli5XjgafjgY3jgb7jgZvjgpMiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgIuWtkOODl+ODreOCu+OCueOCkui1t+WLleOBp+OBjeOBvuOBm+OCkyIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBibGFuayBzdGF0dXNcbiIKK21zZ3N0ciAiJXMg44KSJXPjgafjgqrjg7zjg5fjg7PjgafjgY3jgb7jgZvjgpNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICLjg5Hjg6/jg7zjgrvjg7zjg5bjg6Ljg7zjg4njgavoqK3lrpoo5Y+I44Gv6Kej6ZmkKeOBp+OBjeOBvuOBm+OCk1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTIyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAia2xvZ2N0bCBlcnJvcjogJXNcbiIKK21zZ3N0ciAia2xvZ2N0bCDjgqjjg6njg7w6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JpdGluZyBzY3JlZW5kdW1wXG4iCittc2dzdHIgIuOCueOCr+ODquODvOODs+ODgOODs+ODl+abuOOBjei+vOOBv+OCqOODqeODvFxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IHJlYWQgJXNcbiIKK21zZ3N0ciAiJXMg44KS6Kqt44G/6L6844KA44GT44Go44GM44Gn44GN44G+44Gb44KTXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICRURVJNIGlzIG5vdCBkZWZpbmVkLlxuIgorbXNnc3RyICIlczogJFRFUk0g44GM5a6a576p44GV44KM44Gm44GE44G+44Gb44KT44CCXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdIFstVCB0aW1lb3V0XVxuIgorbXNnc3RyICLkvb/jgYTmlrk6ICVzIFstZF0gWy1wIHBpZOODleOCoeOCpOODq10gWy1zIOOCveOCseODg+ODiOODkeOCuV0gWy1UIOOCv+OCpOODoOOCouOCpuODiF1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyBbLXJ8dF0gWy1uIG51bV0gWy1zIHNvY2tldHBhdGhdXG4iCittc2dzdHIgIiAgICAgICAlcyBbLXJ8dF0gWy1uIOaVsOWtl10gWy1zIOOCveOCseODg+ODiOODkeOCuV1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIgICAgICAgJXMgLWtcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgIuS4jeato+OBquW8leaVsCIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorbXNnaWQgInNvY2tldCIKK21zZ3N0ciAi44K944Kx44OD44OIIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTcwCittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAi5o6l57aaIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTg5Cittc2dpZCAid3JpdGUiCittc2dzdHIgIuabuOOBjei+vOOBvyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE5NworIywgZnV6enkKK21zZ2lkICJyZWFkIGNvdW50IgorbXNnc3RyICIlYyDjgpLoqq3ovrzjgb9cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjIwMworIywgZnV6enkKK21zZ2lkICJiYWQgcmVzcG9uc2UgbGVuZ3RoIgorbXNnc3RyICLmgqrjgYTjg5XjgqHjgqTjg6vlkI3jga7plbfjgZUiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGNyZWF0ZSB1bml4IHN0cmVhbSBzb2NrZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgYmluZCB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAidW5peOOCveOCseODg+ODiCAlc+OCkuODkOOCpOODs+ODieOBp+OBjeOBvuOBm+OCkzogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbGlzdGVuIG9uIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICIlcyDjgpLplovjgZHjgb7jgZvjgpM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHJlYWRpbmcgZnJvbSBjbGllbnQsIGxlbiA9ICVkXG4iCittc2dzdHIgIiVzIOOBruiqrei+vOOBv+OCqOODqeODvFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZXJhdGlvbiAlZCwgaW5jb21pbmcgbnVtID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgIueUn+aIkOOBleOCjOOBn+ODqeODs+ODgOODoOOBqlVVSUQ6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICLnlJ/miJDjgZXjgozjgZ8gJWQgVVVJRDpcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBvcGVyYXRpb24gJWRcbiIKK21zZ3N0ciAi5LiN5q2j44Gq44Kq44OX44K344On44OzIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDY4IG1pc2MtdXRpbHMvdXVpZGQuYzo0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAi5LiN5q2j44Gq5pWwOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNhbGxpbmcgdXVpZGQgZGFlbW9uICglcyk6ICVzXG4iCittc2dzdHIgIiVzIOOBruODouODvOODieWkieabtOOCqOODqeODvDogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICJVVUlE44Gu44Oq44K544OIOlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZXhwZWN0ZWQgcmVwbHkgbGVuZ3RoIGZyb20gc2VydmVyICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkOiAlc1xuIgorbXNnc3RyICJwaWQgJWQg44Gn5a6f6KGM5Lit44GuIHV1aWRkIOOCkuW8t+WItue1guS6huOBp+OBjeOBvuOBm+OCkzogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJLaWxsZWQgdXVpZGQgcnVubmluZyBhdCBwaWQgJWRcbiIKK21zZ3N0ciAicGlkICVkIOOBp+Wun+ihjOS4reOBriB1dWlkZCDjgpLlvLfliLbntYLkuobjgZfjgb7jgZfjgZ9cbiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICLkvb/jgYTmlrk6ICVzIFstcl0gWy10XVxuIgorCisjOiBtaXNjLXV0aWxzL3doZXJlaXMuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpciAuLi4gLWYgXSBuYW1lLi4uXG4iCittc2dzdHIgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSDjg4fjgqPjg6zjgq/jg4jjg6ogLi4uIC1mIF0g5ZCN5YmNIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjEyOAorbXNnaWQgImNhbGxvYyBmYWlsZWQiCittc2dzdHIgImNhbGxvYyDjgYzlpLHmlZfjgZfjgb7jgZfjgZ8iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTUwCittc2dpZCAic3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAic3RyZHVwIOOBjOWkseaVl+OBl+OBvuOBl+OBnyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogcHJvYmluZyBpbml0aWFsaXphdGlvbiBmYWlsZWQiCittc2dzdHIgIuOCqOODqeODvDogVVVJRCDjga7op6PmnpDjgavlpLHmlZciCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IGFwcGVhcnMgdG8gY29udGFpbiAnJXMnIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAi44OH44Kj44K544KvICVzIOOBr+ato+W4uOOBquODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODq+OCkuWQq+OCk+OBp+OBhOOBvuOBm+OCk1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBmb3VuZCBhIG1hZ2ljIHN0cmluZyBhdCBvZmZzZXQgMHglanggLSBpZ25vcmUuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIHNlZWsgdG8gb2Zmc2V0IDB4JWp4IgorbXNnc3RyICIlczogb3BlbiDjgavlpLHmlZc6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgIiVzOiB3cml0ZSDjgYzlpLHmlZciCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIiV6ZCBieXRlcyBbIgorbXNnc3RyICIlemQg44OQ44Kk44OIIFsiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICIlczogb3BlbiDjgYzlpLHmlZciCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAi5LiN5q2j44Gq6Kit5a6a5YCkOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGRldmljZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiAlcyBb44Kq44OX44K344On44OzXSA844OV44Kh44Kk44Or5ZCNPlxuIgorIlxuIgorIuOCquODl+OCt+ODp+ODszpcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgd2lwZWZzKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisi6Kmz57Sw5oOF5aCx44Gv44CBd2lwZWZzKDgpIOOCkueiuuiqjeOBl+OBpuOBj+OBoOOBleOBhOOAglxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjM4NworbXNnaWQgIi0tb2Zmc2V0IGFuZCAtLWFsbCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IGNhbid0IGZpbmQgeW91ciB0dHkncyBuYW1lXG4iCittc2dzdHIgIndyaXRlOiDjgYLjgarjgZ/jga4gdHR5IOOBruWQjeWJjeOCkuimi+OBpOOBkeOCieOCjOOBvuOBm+OCk1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiB5b3UgaGF2ZSB3cml0ZSBwZXJtaXNzaW9uIHR1cm5lZCBvZmYuXG4iCittc2dzdHIgIndyaXRlOiDjgYLjgarjgZ/jga/mm7jjgY3ovrzjgb/mqKnpmZDjgpLjgqrjg5XjgavjgZfjgZ/jgb7jgb7jgafjgZnjgIJcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIOOBryAlcyDjgavjg63jgrDjgqTjg7PjgZfjgabjgYTjgb7jgZvjgpPjgIJcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIndyaXRlICVzIOOBryAlcyDjgafjga/jg6Hjg4Pjgrvjg7zjgrjjgpLnhKHlirnjgavjgZfjgabjgYTjgb7jgZlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICLkvb/jgYTmlrk6IHdyaXRlIOODpuODvOOCtiBbdHR5XVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlICVzIOOBr+ODreOCsOOCpOODs+OBl+OBpuOBhOOBvuOBm+OCk1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIOOBr+ODoeODg+OCu+ODvOOCuOOCkueEoeWKueOBq+OBl+OBpuOBhOOBvuOBmVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBsb2dnZWQgaW4gbW9yZSB0aGFuIG9uY2U7IHdyaXRpbmcgdG8gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIOOBr+ikh+aVsOODreOCsOOCpOODs+OBl+OBpuOBhOOBvuOBmSAtLSAlcyDjgasgd3JpdGUg44GX44G+44GZXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIChhcyAlcykgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICLjg6Hjg4Pjgrvjg7zjgrggZnJvbSAlc0AlcyAoJXMg44Go44GX44GmKSBvbiAlcyBhdCAlcyAuLi4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAi44Oh44OD44K744O844K4IGZyb20gJXNAJXMgb24gJXMgYXQgJXMgLi4uIgorCisjOiBtb3VudC9mc3RhYi5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBlcnJvciByZWFkaW5nICVzOiAlcyIKK21zZ3N0ciAi6K2m5ZGKOiAlcyDjga7oqq3ovrzjgb/jgqjjg6njg7w6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAi6K2m5ZGKOiAlcyDjgYzjgqrjg7zjg5fjg7PjgafjgY3jgb7jgZvjgpM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY291bGQgbm90IG9wZW4gJXMgLSB1c2luZyAlcyBpbnN0ZWFkXG4iCittc2dzdHIgIm1vdW50OiAlcyDjgpLjgqrjg7zjg5fjg7PjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ8gLS0g5Luj44KK44GrICVzIOOCkuS9v+OBhOOBvuOBmVxuIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICLjg63jg4Pjgq/jg5XjgqHjgqTjg6sgJXMg44KS5L2c5oiQ44Gn44GN44G+44Gb44KTOiAlcyAoLW4g44OV44Op44Kw44KS5L2/44Gj44Gm44GP44Gg44GV44GEKSIKKworIzogbW91bnQvZnN0YWIuYzo2MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbGluayBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIuODreODg+OCr+ODleOCoeOCpOODqyAlcyDjgpLjg6rjg7Pjgq/jgafjgY3jgb7jgZvjgpM6ICVzICgtbiDjg5Xjg6njgrDjgpLkvb/jgaPjgabjgY/jgaDjgZXjgYQpIgorCisjOiBtb3VudC9mc3RhYi5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBvcGVuIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAi44Ot44OD44Kv44OV44Kh44Kk44OrICVzIOOCkumWi+OBkeOBvuOBm+OCkzogJXMgKC1uIOODleODqeOCsOOCkuS9v+OBo+OBpuOBj+OBoOOBleOBhCkiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICLjg63jg4Pjgq/jg5XjgqHjgqTjg6sgJXMg44KS44Ot44OD44Kv44Gn44GN44G+44Gb44KTOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXMiCittc2dzdHIgIuODreODg+OCr+ODleOCoeOCpOODqyAlcyDjgpLjg63jg4Pjgq/jgafjgY3jgb7jgZvjgpM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MworbXNnaWQgInRpbWVkIG91dCIKK21zZ3N0ciAi44K/44Kk44Og44Ki44Km44OIIgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorIuODquODs+OCryAlcyDjgpLkvZzmiJDjgafjgY3jgb7jgZvjgpNcbiIKKyLlpJrliIbjgIHjgrTjg5/jgajljJbjgZfjgZ/jg63jg4Pjgq/jg5XjgqHjgqTjg6vjgYzjgYLjgovjga7jgafjga8gP1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjc5MiBtb3VudC9mc3RhYi5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyAoJXMpIC0gbXRhYiBub3QgdXBkYXRlZCIKK21zZ3N0ciAiJXMg44KS6ZaL44GR44G+44Gb44KTICglcykgLS0gbXRhYiDjga/mm7TmlrDjgZXjgozjgb7jgZvjgpMiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICIlcyDjgbjjga7mm7jjgY3ovrzjgb/jgqjjg6njg7w6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjg3NAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlc1xuIgorbXNnc3RyICIlcyDjga7jg6Ljg7zjg4nlpInmm7Tjgqjjg6njg7w6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG93bmVyIG9mICVzOiAlc1xuIgorbXNnc3RyICIlcyDjga7jgqrjg7zjg4rjg7zlpInmm7Tjgqjjg6njg7w6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODk4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiJXMg44Gu5ZCN5YmN44KSICVzIOOBq+WkieabtOOBp+OBjeOBvuOBm+OCkzogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBzZXQgY2FwYWNpdHkgb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiDjg4fjg5DjgqTjgrkgJXMg44Gu44Kt44Oj44OR44K344OG44Kj44KS6Kit5a6a44Gn44GN44G+44Gb44KTOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBvZmZzZXQgJTxQUkl1NjQ+IgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgc2l6ZWxpbWl0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorCisjOiBtb3VudC9sb21vdW50LmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiAlcyAodHlwZSAlPFBSSXUzMj4pIgorbXNnc3RyICIsIOaal+WPtyAlcyAo44K/44Kk44OXICU8UFJJdTMyPikiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJWQiCittc2dzdHIgIiwg44Kq44OV44K744OD44OIICVkIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiB0eXBlICVkXG4iCittc2dzdHIgIiwg5pqX5Y+344K/44Kk44OXICVkXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiDjg4fjg5DjgqTjgrkgJXMg44Gu5oOF5aCx44KS5Y+W5b6X44Gn44GN44G+44Gb44KTOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDMyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IG9wZW4gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiDjg4fjg5DjgqTjgrkgJXMg44KS44Kq44O844OX44Oz44Gn44GN44G+44Gb44KTOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczogL2RldiDjg4fjgqPjg6zjgq/jg4jjg6rjga/lrZjlnKjjgZfjgb7jgZvjgpPjgIIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NTkgbW91bnQvbG9tb3VudC5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIlczogZGV2L2xvb3AlczxOPiDjgpLopovjgovjgZ/jgoHjga7mqKnpmZDjgYzjgYLjgorjgb7jgZvjgpMiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBmcmVlIGxvb3AgZGV2aWNlIgorbXNnc3RyICIlczog56m644GE44Gm44GE44KLIGxvb3Ag44OH44OQ44Kk44K544GM6KaL44Gk44GL44KK44G+44Gb44KTIgorCisjOiBtb3VudC9sb21vdW50LmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZT8gKElmIHNvLCByZWNvbXBpbGUgb3IgYG1vZHByb2JlIGxvb3AnLikiCittc2dzdHIgIiIKKyIlczogbG9vcCDjg4fjg5DjgqTjgrnjgYzlhajjgY/opovjgaTjgYvjgorjgb7jgZvjgpPjgILjgqvjg7zjg43jg6vjgYwgbG9vcCDjg4fjg5DjgqTjgrnjgpLjgrXjg53jg7zjg4jjgZfjgaYiCisi44GE44Gq44GE44GL44KC44GX44KM44G+44Gb44KT44CCXG4iCisiICAgICAgICjjgZ3jgYbjgafjgYLjgozjgbDjgIHlho3jgrPjg7Pjg5HjgqTjg6vjgZnjgovjgYsgYG1vZHByb2JlIGxvb3Aubycg44GX44Gm5LiL44GV44GE44CCKSIKKworIzogbW91bnQvbG9tb3VudC5jOjYzNgorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hpbGUgcmVhZGluZyBwYXNzcGhyYXNlIgorbXNnc3RyICLjg5Hjgrnjg5Xjg6zjg7zjgrrjga7oqq3jgb/ovrzjgb/kuK3jgavjg6Hjg6Ljg6rjgYzotrPjgorjgarjgY/jgarjgorjgb7jgZfjgZ8iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAi6K2m5ZGKOiAlcyDjga/ml6LjgasgJXMg44Gr6Zai6YCj44Gl44GR44GV44KM44Gm44GE44G+44GZXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICLorablkYo6ICVzOiDjga/mm7jjgY3ovrzjgb/npoHmraLjgafjgZnjgIHoqq3ovrzjgb/lsILnlKjjgafjg57jgqbjg7Pjg4jjgZfjgb7jgZlcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb2NrIGludG8gbWVtb3J5LCBleGl0aW5nLlxuIgorbXNnc3RyICLjg6Hjg6Ljg6rjgavmoLzntI3jgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/jga7jgafjgIHntYLkuobjgZfjgb7jgZnjgIJcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBMT09QX1NFVF9GRCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImlvY3RsIExPT1BfU0VUX0ZEIOWkseaVlzogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgxNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSk6IOaIkOWKn1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IOaIkOWKn1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODQwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGRlbGV0ZSBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IOODh+ODkOOCpOOCuSAlcyDjgpLliYrpmaTjgafjgY3jgb7jgZvjgpM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKyLjgZPjga4gbW91bnQg44GvIGxvb3Ag44Gu44K144Od44O844OI44Gq44GX44Gn44Kz44Oz44OR44Kk44Or44GV44KM44G+44GX44Gf44CCXG4iCisi5YaN44Kz44Oz44OR44Kk44Or44GX44Gm44GP44Gg44GV44GE44CCXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIGxvb3BfZGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXZlIGluZm9cbiIKKyIgJTEkcyAtYSB8IC0tYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBhbGwgdXNlZFxuIgorIiAlMSRzIC1kIHwgLS1kZXRhY2ggPGxvb3BkZXY+IFs8bG9vcGRldj4gLi4uXSBkZWxldGVcbiIKKyIgJTEkcyAtZiB8IC0tZmluZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZCB1bnVzZWRcbiIKKyIgJTEkcyAtYyB8IC0tc2V0LWNhcGFjaXR5IDxsb29wZGV2PiAgICAgICAgICAgcmVzaXplXG4iCisiICUxJHMgLWogfCAtLWFzc29jaWF0ZWQgPGZpbGU+IFstbyA8bnVtPl0gICAgIGxpc3QgYWxsIGFzc29jaWF0ZWQgd2l0aCAiCisiPGZpbGU+XG4iCisiICUxJHMgWyBvcHRpb25zIF0gey1mfC0tZmluZHxsb29wZGV2fSA8ZmlsZT4gIHNldHVwXG4iCittc2dzdHIgIiIKKyJcbiIKKyLkvb/jgYTmlrk6XG4iCisiICUxJHMgbG9vcOODh+ODkOOCpOOCuSAgICAgICAgICAgICAgICAgICAgICAgICAgICDmg4XloLHjgpLjgb/jgotcbiIKKyIgJTEkcyAtYSB8IC0tYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5L2/55So44GV44KM44Gm44GE44KL5LiA6Kan44KS6KGo56S644GZ44KLXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcOODh+ODkOOCpOOCuT4gWzxsb29w44OH44OQ44Kk44K5Pi4uLl0g5YmK6ZmkXG4iCisiICUxJHMgLWYgfCAtLWZpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOacquS9v+eUqOOBruOCguOBruOCkuaknOe0ouOBmeOCi1xuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3Djg4fjg5DjgqTjgrk+ICAgICAg44Oq44K144Kk44K6XG4iCisiICUxJHMgLWogfCAtLWFzc29jaWF0ZWQgPOODleOCoeOCpOODqz4gWy1vIDxudW0+XSA844OV44Kh44Kk44OrPiDjgavplqLpgKPjgaXjgZHjgonjgozjgZ9cbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5LiA6Kan44KS6KGo56S6XG4iCisiICUxJHMgW+OCquODl+OCt+ODp+ODs10gey1mfC0tZmluZHxsb29wZGV2fSA844OV44Kh44Kk44OrPiDjgrvjg4Pjg4jjgqLjg4Pjg5dcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg5NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWUgfCAtLWVuY3J5cHRpb24gPHR5cGU+IGVuYWJsZSBkYXRhIGVuY3J5cHRpb24gd2l0aCBzcGVjaWZpZWQgPG5hbWUvbnVtPlxuIgorIiAtaCB8IC0taGVscCAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1vIHwgLS1vZmZzZXQgPG51bT4gICAgICBzdGFydCBhdCBvZmZzZXQgPG51bT4gaW50byBmaWxlXG4iCisiICAgICAgLS1zaXplbGltaXQgPG51bT4gICBsb29wIGxpbWl0ZWQgdG8gb25seSA8bnVtPiBieXRlcyBvZiB0aGUgZmlsZVxuIgorIiAtcCB8IC0tcGFzcy1mZCA8bnVtPiAgICAgcmVhZCBwYXNzcGhyYXNlIGZyb20gZmlsZSBkZXNjcmlwdG9yIDxudW0+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBzZXR1cCByZWFkLW9ubHkgbG9vcCBkZXZpY2VcbiIKKyIgICAgICAtLXNob3cgICAgICAgICAgICAgIHByaW50IGRldmljZSBuYW1lICh3aXRoIC1mIDxmaWxlPilcbiIKKyIgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgIHZlcmJvc2UgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi44Kq44OX44K344On44OzOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICDjgZPjga7jg5jjg6vjg5dcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIOODleOCoeOCpOODq+WGheOBruOCquODleOCu+ODg+ODiCA8bnVtPiDjgafplovlp4vjgZnjgotcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAg44OH44OQ44Kk44K55ZCN44KS6KGo56S644GZ44KLICgtZiA8ZmlsZT4g44Go5LiA57eS44Gr5oyH5a6aKVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDM0IG1vdW50L2xvbW91bnQuYzoxMDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvb3AgZGV2aWNlIGlzICVzXG4iCittc2dzdHIgIkxvb3Djg4fjg5DjgqTjgrkg44GvICVzIOOBp+OBmVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogZGV2aWNlIGlzIGJ1c3kiCittc2dzdHIgIiVzOiAlczog44OH44OQ44Kk44K544KS5L2/55So5Lit44Gn44GZIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKyLjgrPjg7Pjg5HjgqTjg6vmmYLjgasgbG9vcCDjgrXjg53jg7zjg4jjgYzmnInlirnjgavjgarjgaPjgabjgYTjgb7jgZvjgpPjgILlho3jgrPjg7Pjg5HjgqTjg6vjgZfjgabjgY/jgaDjgZUiCisi44GE44CCXG4iCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogaW1wcm9wZXJseSBxdW90ZWQgb3B0aW9uIHN0cmluZyAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdHJhbnNsYXRlZCAlcyAnJXMnIHRvICclcydcbiIKK21zZ3N0ciAibW91bnQ6ICUyJHMg44KEICUzJHMg5YaF44GrICUxJHMg44KS6KaL44Gk44GR44KJ44KM44G+44Gb44KTIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IG10YWIg44Gr44KI44KL44Go44CBJXMg44GvICVzIOOBq+ODnuOCpuODs+ODiOa4iOOBp+OBmSIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogbXRhYiDjgavjgojjgovjgajjgIElcyDjga8gJXMg44Gr44Oe44Km44Oz44OI44GV44KM44Gm44GE44G+44GZIgorCisjOiBtb3VudC9tb3VudC5jOjU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlcyBmb3Igd3JpdGluZzogJXMiCittc2dzdHIgIm1vdW50OiAlcyDjgpLmm7jjgY3ovrzjgb/nlKjjgavjgqrjg7zjg5fjg7PjgafjgY3jgb7jgZvjgpM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDogJXMg44Gu5pu444GN6L6844G/44Ko44Op44O8OiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzIgorbXNnc3RyICJtb3VudDogJXMg44Gu44Oi44O844OJ5aSJ5pu044Ko44Op44O8OiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJtb3VudDog44Kw44Or44O844OXaWQg44KS6Kit5a6a44Gn44GN44G+44Gb44KTOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiDjg6bjg7zjgrbjg7xpZCDjgpLoqK3lrprjgafjgY3jgb7jgZvjgpM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjcxNCBtb3VudC9tb3VudC5jOjE4NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAibW91bnQ6IOWtkOODl+ODreOCu+OCueOBrui1t+WLleOBjOOBp+OBjeOBvuOBm+OCkzogJXMiCisKKyM6IG1vdW50L21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyAlc1xuIgorbXNnc3RyICIlcyDjgpLoqabjgZfjgb7jgZlcbiIKKworIzogbW91bnQvbW91bnQuYzo4NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHlvdSBkaWRuJ3Qgc3BlY2lmeSBhIGZpbGVzeXN0ZW0gdHlwZSBmb3IgJXNcbiIKK21zZ3N0ciAibW91bnQ6ICVzIOOBuOOBruODleOCoeOCpOODq+OCt+OCueODhuODoOOCv+OCpOODl+OBruaMh+WumuOBjOOBguOCiuOBvuOBm+OCk1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiAgICAgICAlcyDlj4jjga8gJXMg44Gu44K/44Kk44OX44KS6Kmm44GX44Gm44G/44G+44GZXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICIgICAgICAg44Gd44GX44Gm44CB44Gd44KM44Gv44K544Ov44OD44OX56m66ZaT44Gu5qeY44Gn44GZ44CCXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIKK21zZ3N0ciAiICAgICAgIOOCv+OCpOODlyAlcyDjgpLoqabjgZfjgabjgb/jgb7jgZlcbiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiJXMg44Gv44K544Ov44OD44OX56m66ZaT44Gu44KI44GG44Gn44GZ44GtIC0tIOODnuOCpuODs+ODiOOBl+OBvuOBm+OCkyIKKworIzogbW91bnQvbW91bnQuYzoxMDAyCittc2dpZCAibW91bnQgZmFpbGVkIgorbXNnc3RyICLjg57jgqbjg7Pjg4jjgavlpLHmlZfjgZfjgb7jgZfjgZ8iCisKKyM6IG1vdW50L21vdW50LmM6MTAwNAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBtb3VudCAlcyBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHJvb3Qg44Gg44GR44GMICVzIOOCkiAlcyDjgavjg57jgqbjg7Pjg4jjgafjgY3jgb7jgZkiCisKKyM6IG1vdW50L21vdW50LmM6MTA3NAorbXNnaWQgIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiBsb29wIOODh+ODkOOCpOOCueOBjCAyIOWbnuaMh+WumuOBleOCjOOBvuOBl+OBnyIKKworIzogbW91bnQvbW91bnQuYzoxMDc5Cittc2dpZCAibW91bnQ6IHR5cGUgc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDog44K/44Kk44OX44GMIDIg5Zue5oyH5a6a44GV44KM44G+44GX44GfIgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBsb29wIOODh+ODkOOCpOOCueOBruioreWumuOCkuOCueOCreODg+ODl+OBl+OBvuOBmVxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICJtb3VudDogbXRhYiDjgavjgojjgovjgajjgIElcyDjga8gbG9vcCDjgajjgZfjgaYgJXMg44Gr44Oe44Km44Oz44OI5riI44Gn44GZIgorCisjOiBtb3VudC9tb3VudC5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGdvaW5nIHRvIHVzZSB0aGUgbG9vcCBkZXZpY2UgJXNcbiIKK21zZ3N0ciAibW91bnQ6IGxvb3Ag44OH44OQ44Kk44K5ICVzIOOCkuS9v+OBhOOBvuOBmVxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgIm1vdW50OiBzdG9sZW4gbG9vcD0lcyIKKworIzogbW91bnQvbW91bnQuYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBmYWlsZWQgc2V0dGluZyB1cCBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDogbG9vcCDjg4fjg5DjgqTjgrnjga7oqK3lrprjgavlpLHmlZfjgZfjgb7jgZfjgZ9cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzZXR1cCBsb29wIGRldmljZSBzdWNjZXNzZnVsbHlcbiIKK21zZ3N0ciAibW91bnQ6IGxvb3Ag44OH44OQ44Kk44K544Gu6Kit5a6a44Gr5oiQ5Yqf44GX44G+44GX44GfXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gJXMgZm91bmQgLSBjcmVhdGluZyBpdC4uXG4iCittc2dzdHIgIm1vdW50OiAlcyDjgYzopovjgaTjgYvjgorjgb7jgZvjgpMgLS0g5L2c5oiQ44GX44G+44GZLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIOOBjOOCquODvOODl+ODs+OBp+OBjeOBvuOBm+OCkzogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTIxNQorbXNnaWQgIm1vdW50OiBhcmd1bWVudCB0byAtcCBvciAtLXBhc3MtZmQgbXVzdCBiZSBhIG51bWJlciIKK21zZ3N0ciAibW91bnQ6IC1wIOOBvuOBn+OBryAtLXBhc3MtZmQg5byV5pWw44Gv5pWw5a2X44Gn44Gq44GR44KM44Gw44Gq44KK44G+44Gb44KTIgorCisjOiBtb3VudC9tb3VudC5jOjEyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBvcGVuICVzIGZvciBzZXR0aW5nIHNwZWVkIgorbXNnc3RyICJtb3VudDogJXMg44KS6YCf5bqm6Kit5a6a55So44Gr44Kq44O844OX44Oz44Gn44GN44G+44Gb44KTIgorCisjOiBtb3VudC9tb3VudC5jOjEyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgc3BlZWQ6ICVzIgorbXNnc3RyICJtb3VudDog6YCf5bqm44Gu6Kit5a6a44GM44Gn44GN44G+44Gb44KTOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiBtdGFiIOOBq+OCiOOCi+OBqOOAgSVzIOOBryAlcyDjgavjg57jgqbjg7Pjg4jmuIjjgafjgZlcbiIKKworIzogbW91bnQvbW91bnQuYzoxMzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgIm1vdW50OiDorablkYo6ICVzIOOBr+iqreOBv+abuOOBjeWPr+iDveOBqOOBl+OBpuODnuOCpuODs+ODiOOBleOCjOOBpuOBhOOCi+OCiOOBhuOBp+OBmeOAglxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTMKK21zZ2lkICIiCisibW91bnQ6IEkgY291bGQgbm90IGRldGVybWluZSB0aGUgZmlsZXN5c3RlbSB0eXBlLCBhbmQgbm9uZSB3YXMgc3BlY2lmaWVkIgorbXNnc3RyICJtb3VudDogbm9uZSDjgYzmjIflrprjgZXjgozjgb7jgZfjgZ/jgYzjgIHjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6Djgr/jgqTjg5fjgpLmsbrlrprjgafjgY3jgb7jgZvjgpMiCisKKyM6IG1vdW50L21vdW50LmM6MTQxNgorbXNnaWQgIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIm1vdW50OiDjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6Djgr/jgqTjg5fjgpLmjIflrprjgZnjgovlv4XopoHjgYzjgYLjgorjgb7jgZkiCisKKyM6IG1vdW50L21vdW50LmM6MTQxOQorbXNnaWQgIm1vdW50OiBtb3VudCBmYWlsZWQiCittc2dzdHIgIm1vdW50OiDjg57jgqbjg7Pjg4jjgavlpLHmlZfjgZfjgb7jgZfjgZ8iCisKKyM6IG1vdW50L21vdW50LmM6MTQyNSBtb3VudC9tb3VudC5jOjE0NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIG5vdCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAibW91bnQ6IOODnuOCpuODs+ODiOODneOCpOODs+ODiCAlcyDjga/jg4fjgqPjg6zjgq/jg4jjg6rjgafjga/jgYLjgorjgb7jgZvjgpMiCisKKyM6IG1vdW50L21vdW50LmM6MTQyNworbXNnaWQgIm1vdW50OiBwZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibW91bnQ6IOioseWPr+OBjOOBguOCiuOBvuOBm+OCkyIKKworIzogbW91bnQvbW91bnQuYzoxNDI5Cittc2dpZCAibW91bnQ6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVzZSBtb3VudCIKK21zZ3N0ciAibW91bnQ6IG1vdW50IOOCkuS9v+OBhuOBq+OBr+OCueODvOODkeODvOODpuODvOOCtuOBp+OBquOBkeOCjOOBsOOBquOCiuOBvuOBm+OCkyIKKworIzogbW91bnQvbW91bnQuYzoxNDMzIG1vdW50L21vdW50LmM6MTQzNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIOOBr+S9v+eUqOS4reOBp+OBmSIKKworIzogbW91bnQvbW91bnQuYzoxNDM5Cittc2dpZCAibW91bnQ6IHByb2MgYWxyZWFkeSBtb3VudGVkIgorbXNnc3RyICJtb3VudDogcHJvYyDjga/jg57jgqbjg7Pjg4jmuIjjgafjgZkiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9yICVzIGJ1c3kiCittc2dzdHIgIm1vdW50OiAlcyDjga8g44Oe44Km44Oz44OI5riI44GLICVzIOOBjOS9v+eUqOS4reOBp+OBmSIKKworIzogbW91bnQvbW91bnQuYzoxNDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6IOODnuOCpuODs+ODiOODneOCpOODs+ODiCAlcyDjgYzlrZjlnKjjgZfjgb7jgZvjgpMiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgYSBzeW1ib2xpYyBsaW5rIHRvIG5vd2hlcmUiCittc2dzdHIgIm1vdW50OiDjg57jgqbjg7Pjg4jjg53jgqTjg7Pjg4ggJXMg44Gv44Gp44GT44KC44GV44GX44Gm44GE44Gq44GE44K344Oz44Oc44Oq44OD44Kv44Oq44Oz44Kv44Gn44GZIgorCisjOiBtb3VudC9tb3VudC5jOjE0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDog44K544Oa44K344Oj44Or44OH44OQ44Kk44K5ICVzIOOBjOWtmOWcqOOBl+OBvuOBm+OCkyIKKworIzogbW91bnQvbW91bnQuYzoxNDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3RcbiIKKyIgICAgICAgKGEgcGF0aCBwcmVmaXggaXMgbm90IGEgZGlyZWN0b3J5KVxuIgorbXNnc3RyICIiCisibW91bnQ6IOOCueODmuOCt+ODo+ODq+ODh+ODkOOCpOOCuSAlcyDjgYzlrZjlnKjjgZfjgb7jgZvjgpNcbiIKKyIgICAgICAgKOODkeOCueOBruODh+OCo+ODrOOCr+ODiOODquOBjOOBguOCiuOBvuOBm+OCkylcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICJtb3VudDogJXMg44Gv44G+44Gg44Oe44Km44Oz44OI44GV44KM44Gm44GE44Gq44GE44GL44CB5LiN5q2j44Gq44Kq44OX44K344On44Oz44Gn44GZIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB3cm9uZyBmcyB0eXBlLCBiYWQgb3B0aW9uLCBiYWQgc3VwZXJibG9jayBvbiAlcyxcbiIKKyIgICAgICAgbWlzc2luZyBjb2RlcGFnZSBvciBoZWxwZXIgcHJvZ3JhbSwgb3Igb3RoZXIgZXJyb3IiCittc2dzdHIgIiIKKyJtb3VudDog6ZaT6YGV44Gj44Gf44OV44Kh44Kk44Or44K344K544OG44Og44K/44Kk44OX44CB5LiN5q2j44Gq44Kq44OX44K344On44Oz44CBXG4iCisiICAgICAgICVzIOOBruOCueODvOODkeODvOODluODreODg+OCr+OBjOS4jeato+OAgeOCs+ODvOODieODmuODvOOCuOOBvuOBn+OBr1xuIgorIiAgICAgICDjg5jjg6vjg5Hjg7zjg5fjg63jgrDjg6njg6Djga7mnKrmjIflrprjgIHmiJbjgYTjga/ku5bjga7jgqjjg6njg7wiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4NworbXNnaWQgIiIKKyIgICAgICAgKGZvciBzZXZlcmFsIGZpbGVzeXN0ZW1zIChlLmcuIG5mcywgY2lmcykgeW91IG1pZ2h0XG4iCisiICAgICAgIG5lZWQgYSAvc2Jpbi9tb3VudC48dHlwZT4gaGVscGVyIHByb2dyYW0pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ5NgorbXNnaWQgIiIKKyIgICAgICAgKGNvdWxkIHRoaXMgYmUgdGhlIElERSBkZXZpY2Ugd2hlcmUgeW91IGluIGZhY3QgdXNlXG4iCisiICAgICAgIGlkZS1zY3NpIHNvIHRoYXQgc3IwIG9yIHNkYSBvciBzbyBpcyBuZWVkZWQ/KSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDEKK21zZ2lkICIiCisiICAgICAgIChhcmVuJ3QgeW91IHRyeWluZyB0byBtb3VudCBhbiBleHRlbmRlZCBwYXJ0aXRpb24sXG4iCisiICAgICAgIGluc3RlYWQgb2Ygc29tZSBsb2dpY2FsIHBhcnRpdGlvbiBpbnNpZGU/KSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDgKK21zZ2lkICIiCisiICAgICAgIEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gaXMgZm91bmQgaW4gc3lzbG9nIC0gdHJ5XG4iCisiICAgICAgIGRtZXNnIHwgdGFpbCAgb3Igc29cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICLjg57jgqbjg7Pjg4jjg4bjg7zjg5bjg6vjgYzjgYTjgaPjgbHjgYTjgafjgZkiCisKKyM6IG1vdW50L21vdW50LmM6MTUxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IGNhbid0IHJlYWQgc3VwZXJibG9jayIKK21zZ3N0ciAibW91bnQ6ICVzOiDjgrnjg7zjg5Hjg7zjg5bjg63jg4Pjgq/jgpLoqq3jgoHjgb7jgZvjgpMiCisKKyM6IG1vdW50L21vdW50LmM6MTUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IHVua25vd24gZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXM6IOS4jeaYjuOBquODh+ODkOOCpOOCueOBp+OBmSIKKworIzogbW91bnQvbW91bnQuYzoxNTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB1bmtub3duIGZpbGVzeXN0ZW0gdHlwZSAnJXMnIgorbXNnc3RyICJtb3VudDog5pyq55+l44Gu44OV44Kh44Kk44Or44K344K544OG44Og44K/44Kk44OXICclcyciCisKKyM6IG1vdW50L21vdW50LmM6MTUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogcHJvYmFibHkgeW91IG1lYW50ICVzIgorbXNnc3RyICJtb3VudDog44GK44Gd44KJ44GP44GC44Gq44Gf44GvICVzIOOCkuaMh+WumuOBl+OBn+OBi+OBo+OBn+OBruOBp+OBl+OCh+OBhiIKKworIzogbW91bnQvbW91bnQuYzoxNTQyCittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAnaXNvOTY2MCc/IgorbXNnc3RyICJtb3VudDog5aSa5YiG44GC44Gq44Gf44GvICdpc285NjYwJyDjgpLmjIflrprjgZfjgZ/jgYvjgaPjgZ/jga7jgafjga/vvJ8iCisKKyM6IG1vdW50L21vdW50LmM6MTU0NQorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ3ZmYXQnPyIKK21zZ3N0ciAibW91bnQ6IOWkmuWIhuOBguOBquOBn+OBryAndmZhdCcg44KS5oyH5a6a44GX44Gf44GL44Gj44Gf44Gu44Gn44Gv77yfIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyDjga/plpPpgZXjgaPjgZ/jg4fjg5DjgqTjgrnnlarlj7fjgavjgarjgaPjgabjgYTjgovjgYvjgIHjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6Djgr/jgqTjg5dcbiIKKyIgICAgICAgJXMg44GM44K144Od44O844OI44GV44KM44Gm44GE44G+44Gb44KTIgorCisjOiBtb3VudC9tb3VudC5jOjE1NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSwgYW5kIHN0YXQgZmFpbHM/IgorbXNnc3RyICJtb3VudDogJXMg44Gv44OW44Ot44OD44Kv44OH44OQ44Kk44K544Gn44Gv44GC44KK44G+44Gb44KT44CB44Gg44GL44KJIHN0YXQg44GM5aSx5pWX77yfIgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorIm1vdW50OiDjgZPjga7jgqvjg7zjg43jg6vjga8gJXMg44KS44OW44Ot44OD44Kv44OH44OQ44Kk44K544Go44GX44Gm6KqN6K2Y44GX44G+44Gb44KTXG4iCisiICAgICAgICjjgYrjgZ3jgonjgY/jgIFgbW9kcHJvYmUg44OJ44Op44Kk44OQJyDjgZfjgarjgYTjgajjgYTjgZHjgarjgYTjga7jgafjga8/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UgKG1heWJlIHRyeSBgLW8gbG9vcCc/KSIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyDjga/jg5bjg63jg4Pjgq/jg4fjg5DjgqTjgrnjgafjga/jgYLjgorjgb7jgZvjgpMgKOWkmuWIhiBgLW8gbG9vcCcg44Go44KE44Gj44Gm44G/44Gf44KJPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMg44Gv44OW44Ot44OD44Kv44OH44OQ44Kk44K544Gn44Gv44GC44KK44G+44Gb44KTIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIHZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIOOBr+ato+W4uOOBquODluODreODg+OCr+ODh+ODkOOCpOOCueOBp+OBr+OBguOCiuOBvuOBm+OCkyIKKworIzogbW91bnQvbW91bnQuYzoxNTcyCittc2dpZCAiYmxvY2sgZGV2aWNlICIKK21zZ3N0ciAi44OW44Ot44OD44Kv44OH44OQ44Kk44K5ICIKKworIzogbW91bnQvbW91bnQuYzoxNTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgbW91bnQgJXMlcyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIOOCkuiqrei+vOOBv+WwgueUqOOBp+ODnuOCpuODs+ODiOOBp+OBjeOBvuOBm+OCkyIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICJtb3VudDogJXMlcyDjga/mm7jjgY3ovrzjgb/npoHmraLjgafjgZnjgYzjgIFgLXcnIOODleODqeOCsOOBjOaYjuekuueahOOBq+S4juOBiOOCieOCjOOBvuOBl+OBnyIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIm1vdW50OiAlcyVzIOOCkuiqrei+vOOBv+WwgueUqOOBp+ODnuOCpuODs+ODiOOBp+OBjeOBvuOBm+OCkyIKKworIzogbW91bnQvbW91bnQuYzoxNTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCwgbW91bnRpbmcgcmVhZC1vbmx5IgorbXNnc3RyICJtb3VudDogJXMlcyDjga/mm7jjgY3ovrzjgb/npoHmraLjgafjgZnjgIHoqq3ovrzjgb/lsILnlKjjgafjg57jgqbjg7Pjg4jjgZfjgb7jgZkiCisKKyM6IG1vdW50L21vdW50LmM6MTYwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAibW91bnQ6ICVzIOOBjOimi+OBpOOBi+OCiuOBvuOBm+OCkyAtLSDkvZzmiJDjgZfjgb7jgZkuLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjE2MTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMiCittc2dzdHIgIm1vdW50OiAlcyDjga8gJXMg44Gr44Oe44Km44Oz44OI5riI44Gn44GZXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIm1vdW50OiDjgr/jgqTjg5fjgYzkuI7jgYjjgonjgozjgabjgYTjgb7jgZvjgpMgLS0g44Kz44Ot44Oz44GM44GC44KL44Gu44GnIG5mcyDjga7mp5jjgafjgZnjgYxcbiIKKworIzogbW91bnQvbW91bnQuYzoxNzE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtIEknbGwgYXNzdW1lIGNpZnMgYmVjYXVzZSBvZiB0aGUgLy8gcHJlZml4XG4iCittc2dzdHIgIm1vdW50OiDjgr/jgqTjg5fjgYzkuI7jgYjjgonjgozjgabjgYTjgb7jgZvjgpMgLS0gLy8g44GM44GC44KL44Gu44GnIGNpZnMg44Gu5qeY44Gn44GZ44GMXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiAlcyDjga8gJXMg44Gr44Oe44Km44Oz44OI5riI44Gn44GZXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKyJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKyIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKyJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKyJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKyJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKyJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiBtb3VudCAtViAgICAgICAgICAgICAgICA6IOODkOODvOOCuOODp+ODs+OBruihqOekulxuIgorIiAgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgOiDjgZPjga7jg5jjg6vjg5fjgpLooajnpLpcbiIKKyIgICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgIDog44Oe44Km44Oz44OI5riI44OV44Kh44Kk44Or44K344K544OG44Og44Gu5LiA6KanXG4iCisiICAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICA6IOWQjOS4iuOAgeODnOODquODpeODvOODoOODqeODmeODq+OCkuWQq+OCgFxuIgorIuS7peS4iuOBjOaDheWgseihqOekuuOBq+mWouOBmeOCi+OCguOBruOBp+OBmeOAguasoeOBi+OCieOBr+ODnuOCpuODs+ODiOaTjeS9nOOBq+mWoumAo+OBmeOCi+OCguOBruOBp+OBmeOAglxuIgorIuOBneOBruOCs+ODnuODs+ODieOBryBgbW91bnQgWy10IGZzdHlwZV0g5L2V44KSIOOBqeOBk+OBuCfjgIJcbiIKKyIvZXRjL2ZzdGFiIOOBp+ips+e0sOOBq+OBpOOBhOOBpuaMh+WumuOBl+OBpuOBiuOBkeOBsOOAgeOBneOCjOOCkuecgeeVpeOBmeOCi+OBk+OBqOOBjOOBp+OBjeOBvuOBmeOAglxuIgorIiAgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgOiAvZXRjL2ZzdGFiIOOBruWGheWuueWFqOOBpuOCkuODnuOCpuODs+ODiOOBmeOCi1xuIgorIiAgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgOiBkZXZpY2Ug44KS5pei55+l44Gu5aC05omA44G444Oe44Km44Oz44OI44GZ44KLXG4iCisiICAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICA6IOaXouefpeOBruODh+ODkOOCpOOCueOCkiBkaXJlY3Rvcnkg44Gr44Oe44Km44Oz44OI44GZ44KLXG4iCisiICAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICA6IOmAmuW4uOOBriBtb3VudCDjgrPjg57jg7Pjg4lcbiIKKyLjgYLjgovjgajjgY3jga/jgIHjg4fjg5DjgqTjgrnjgpLlrp/pmpvjgavjga/jg57jgqbjg7Pjg4jjgZvjgZrjgIHjgYLjgovjgajjgY3jga/jg4fjg5DjgqTjgrnkuIrjgavopovjgaTjgZHjgZ9cbiIKKyLvvIjkuI7jgYjjgonjgozjgZ/jgr/jgqTjg5fjga7vvInjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DjgpLjg57jgqbjg7Pjg4jjgZnjgovjgZPjgajjgavnlZnmhI/jgZfjgb7jgZfjgofjgYbjgIJcbiIKKyLml6LjgavopovjgYjjgabjgYTjgovjg4fjgqPjg6zjgq/jg4jjg6rjg4Tjg6rjg7zjgpLku5bjga7loLTmiYDjgavjg57jgqbjg7Pjg4jjgafjgY3jgZ/jgorjgoLjgZfjgb7jgZk6XG4iCisiICAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIuOBvuOBn+OBr+OAgeOCteODluODhOODquODvOOCkuenu+WLlTpcbiIKKyIgICAgICAgIG1vdW50IC0tbW92ZSBvbGRkaXIgbmV3ZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgbW91bnQgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgIG1vdW50IC0tbWFrZS1yc2xhdmUgZGlyXG4iCisiICAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiZGV2aWNlIOOBq+OBr+OAgS9kZXYvaGRhMSDjgoQgL2Rldi9jZHJvbSDjga7mp5jjgavlkI3liY3jgafkuI7jgYjjgabjgoLjgIEtTCBsYWJlbCDjgpJcbiIKKyLkvb/jgaPjgabjg6njg5njg6vlkI3jgafkuI7jgYjjgabjgoLjgIEtVSB1dWlkIOOCkuS9v+OBo+OBpiB1dWlkIOOCkuS4juOBiOOBpuOCguOBi+OBvuOBhOOBvuOBm+OCk+OAglxuIgorIuOBneOBruS7luOBruOCquODl+OCt+ODp+ODszogWy1uZkZyc3Z3XSBbLW8g44Kq44OX44K344On44OzXSBbLXAgcGFzc3dkZmRdXG4iCisi44KC44Gj44Go6Kmz44GX44GE44GT44Go44KS55+l44KK44Gf44GR44KM44Gw44CBbWFuIDggbW91bnQg44Go5ZSx44GI44Gm44G/44G+44GX44KH44GG44CCXG4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiByb290IOOBoOOBkeOBjOOBneOCjOOCkuihjOOBquOBiOOBvuOBmSIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6IHJvb3Qg44Gg44GR44GM44Gd44KM44KS6KGM44Gq44GI44G+44GZIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICLkvZXjgoLjg57jgqbjg7Pjg4jjgZXjgozjgb7jgZvjgpPjgafjgZfjgZ8iCisKKyM6IG1vdW50L21vdW50LmM6MjMwNiBtb3VudC9tb3VudC5jOjIzMzIKK21zZ2lkICJtb3VudDogbm8gc3VjaCBwYXJ0aXRpb24gZm91bmQiCittc2dzdHIgIm1vdW50OiDjgZ3jga7jgojjgYbjgarjg5Hjg7zjg4bjgqPjgrfjg6fjg7Pjga/opovjgaTjgYvjgorjgb7jgZvjgpMiCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6ICUyJHMg44KEICUzJHMg5YaF44GrICUxJHMg44KS6KaL44Gk44GR44KJ44KM44G+44Gb44KTIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IHdhcm5pbmc6IG5vIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiAlc1xuIgorbXNnc3RyICJbbW50ZW50XTog6K2m5ZGKOiAlcyDjga7mnIDlvozjgavmlLnooYzjgYzjgYLjgorjgb7jgZvjgpNcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiBsaW5lICVkIGluICVzIGlzIGJhZCVzXG4iCittc2dzdHIgIlttbnRlbnRdOiAlMiRzIOOBriAlMSRkIOihjOebruOBr+S4jeato+OBp+OBmSUzJHNcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE5Cittc2dpZCAiOyByZXN0IG9mIGZpbGUgaWdub3JlZCIKK21zZ3N0ciAiLS0g54Sh6KaW44GX44G+44GZIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjMyCittc2dpZCAiYnVnIGluIHhzdHJuZHVwIGNhbGwiCittc2dzdHIgInhzdHJuZHVwIOWRvOOBs+WHuuOBl+OBruODkOOCsCIKKworIzogbW91bnQvc3VuZHJpZXMuYzoyMjUgbW91bnQvc3VuZHJpZXMuYzoyODEgbW91bnQvc3VuZHJpZXMuYzoyOTYKKyM6IG1vdW50L3htYWxsb2MuYzoxMQorbXNnaWQgIm5vdCBlbm91Z2ggbWVtb3J5IgorbXNnc3RyICLjg6Hjg6Ljg6rjgYzkuI3ljYHliIbjgafjgZkiCisKKyM6IG1vdW50L3N3YXBvbi5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgPHNwZWNpYWw+IHBhcmFtZXRlcjpcbiIKKyIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxmaWxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGZpbGUgdG8gYmUgdXNlZFxuIgorIlxuIgorbXNnc3RyICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICDkvb/nlKjjgZnjgovjg4fjg5DjgqTjgrnjga4gTEFCRUxcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIOS9v+eUqOOBmeOCi+ODh+ODkOOCpOOCueOBriBVVUlEXG4iCisiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDkvb/nlKjjgZnjgovjg4fjg5DjgqTjgrnjga7lkI3liY1cbiIKKyIgPGZpbGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOS9v+eUqOOBmeOCi+ODleOCoeOCpOODq+OBruWQjeWJjVxuIgorIlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIuS9v+OBhOaWuTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gICAgICAgICAgICAgICAgICAvZXRjL2ZzdGFiIOWGheOBp+aMh+WumuOBl+OBn+OCueODr+ODg+ODl+OCkuacieWKueOBq+OBmSIKKyLjgotcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIOaMh+WumuOBleOCjOOBn+OCueODr+ODg+ODl+OCkuacieWKueOBq+OBmeOCi1xuIgorIiAlMSRzIC1zICAgICAgICAgICAgICAgICAgICAgICAgICAgIOOCueODr+ODg+ODl+OBruS9v+eUqOeKtuazgeOCkuihqOekulxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIOODmOODq+ODl+OBruihqOekulxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIOODkOODvOOCuOODp+ODs+OBruihqOekulxuIgorIlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoxMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstdl0gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZSBhbGwgc3dhcHNcbiIKKyIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGRpc2FibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIuS9v+OBhOaWuTpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIOOBmeOBueOBpuOBruOCueODr+ODg+ODl+OCkueEoeWKueOBq+OBmeOCi1xuIgorIiAlMSRzIFstdl0gPHNwZWNpYWw+ICAgICAgICAgICAgICAg5oyH5a6a44GV44KM44Gf44K544Ov44OD44OX44KS54Sh5Yq544Gr44GZ44KLXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICDjg5jjg6vjg5fjga7ooajnpLpcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIOODkOODvOOCuOODp+ODs+OBruihqOekulxuIgorIlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiVzOiDkuojmnJ/jgZfjgarjgYTjg5XjgqHjgqTjg6vlvaLlvI8iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIlczog44K544Ov44OD44OX44KS5YaN5Yid5pyf5YyW44GX44Gm44GE44G+44GZ44CCIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMjMKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAi5a2Q44OX44Ot44K744K544Gu6LW35YuV44Gr5aSx5pWXIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKK21zZ2lkICJleGVjdiBmYWlsZWQiCittc2dzdHIgIuWun+ihjOOBq+WkseaVlyIKKworIzogbW91bnQvc3dhcG9uLmM6MjQ3Cittc2dpZCAid2FpdHBpZCBmYWlsZWQiCittc2dzdHIgIndhaXRwaWQg44Gr5aSx5pWXIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAiJXM6IOOCt+ODvOOCr+OBq+WkseaVlyIKKworIzogbW91bnQvc3dhcG9uLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBzaWduYXR1cmUgZmFpbGVkIgorbXNnc3RyICIlczog572y5ZCN44Gu5pu444GN6L6844G/44Gr5aSx5pWXIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvdW5kIHN3YXAgc2lnbmF0dXJlOiB2ZXJzaW9uICVkLCBwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5Cittc2dpZCAiZGlmZmVyZW50IgorbXNnc3RyICLnlbDjgarjgosiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgInNhbWUiCittc2dzdHIgIuWQjOOBmCIKKworIzogbW91bnQvc3dhcG9uLmM6Mzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzdGF0IGZhaWxlZCIKK21zZ3N0ciAiJXM6IHN0YXQg44GM5aSx5pWXIgorCisjOiBtb3VudC9zd2Fwb24uYzozOTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgIiVzOiDorablkYo6ICVzIOOBr+WuieWFqOOBp+OBquOBhOaoqemZkCAlMDRvIOOCkuaMgeOBoeOBvuOBmeOAgiAlMDRvIOOBjOOBiuWLp+OCgeOBp+OBmVxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyAtIGl0IGFwcGVhcnMgdG8gaGF2ZSBob2xlcy4iCittc2dzdHIgIiVzOiDjg5XjgqHjgqTjg6sgJXMg44KS44K544Kt44OD44OXIC0tIOODm+ODvOODq+OCkuaknOWHuuOAglxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAiJXM6IOOCteOCpOOCuuOBruWPluW+l+OBq+WkseaVlyIKKworIzogbW91bnQvc3dhcG9uLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIHN3YXAgaGVhZGVyIGZhaWxlZCIKK21zZ3N0ciAiJXM6IOOCueODr+ODg+ODl+ODmOODg+ODgOOBruiqreOBv+i+vOOBv+OBq+WkseaVl+OBl+OBvuOBl+OBnyIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKyIlczog44K944OV44OI44Km44Kn44Ki44K144K544Oa44Oz44OJ44OH44O844K/44KS5qSc5Ye644GX44G+44GX44Gf44CC44K544Ov44OD44OX572y5ZCN44KS5pu444GN44Gq44GK44GX44G+IgorIuOBmeOAgiIKKworIzogbW91bnQvc3dhcG9uLmM6NDc4IG1vdW50L3N3YXBvbi5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBvbiAlc1xuIgorbXNnc3RyICIlMiRzIOOBqyAlMSRzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9uIGZhaWxlZCIKK21zZ3N0ciAiJXMgc3dhcG9u44Gv5aSx5pWX44GX44G+44GX44GfIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzIOeUqOOBruODh+ODkOOCpOOCueOBjOimi+OBpOOBi+OCiuOBvuOBm+OCkyIKKworIzogbW91bnQvc3dhcG9uLmM6NTQwCittc2dpZCAiTm90IHN1cGVydXNlci4iCittc2dzdHIgIuOCueODvOODkeODvOODpuODvOOCtuODvOOBp+OBr+OBguOCiuOBvuOBm+OCkyIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb2ZmIGZhaWxlZCIKK21zZ3N0ciAiJXM6IHN3YXBvZmbjga/lpLHmlZfjgZfjgb7jgZfjgZ8iCisKKyM6IG1vdW50L3N3YXBvbi5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIHVuc3VwcG9ydGVkIHByb2dyYW0gbmFtZSAobXVzdCBiZSAnc3dhcG9uJyBvciAnc3dhcG9mZicpLiIKK21zZ3N0ciAiIgorIiclcycg44Gv44K144Od44O844OI44GX44Gm44GE44Gq44GE44OX44Ot44Kw44Op44Og5ZCN44Gn44GZICgnc3dhcG9uJyDjgb7jgZ/jga8gJ3N3YXBvZmYnIOOBp+OBguOCi+OBuSIKKyLjgY3jgafjgZkp44CCIgorCisjOiBtb3VudC91bW91bnQuYzo0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgLWZcbiIKK21zZ3N0ciAibW91bnQ6IC1mIOOCquODl+OCt+ODp+ODs+OBruOCteODneODvOODiOeEoeOBl+OBp+OCs+ODs+ODkeOCpOODq+OBleOCjOOBpuOBhOOBvuOBmVxuIgorCisjOiBtb3VudC91bW91bnQuYzoxMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAidW1vdW50OiDjgrDjg6vjg7zjg5cgaWQg44KS44K744OD44OI44Gn44GN44G+44Gb44KTOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAidW1vdW50OiDjg6bjg7zjgrbjg7wgaWQg44KS44K744OD44OI44Gn44GN44G+44Gb44KTOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJ1bW91bnQ6IOWtkOODl+ODreOCu+OCueOCkui1t+WLleOBp+OBjeOBvuOBm+OCkzogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlcyDjga/kuI3mraPjgarjg5bjg63jg4Pjgq/jg4fjg5DjgqTjgrnjgafjgZkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIKK21zZ3N0ciAidW1vdW50OiAlczog44Oe44Km44Oz44OI44GV44KM44Gm44GE44G+44Gb44KTIgorCisjOiBtb3VudC91bW91bnQuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogY2FuJ3Qgd3JpdGUgc3VwZXJibG9jayIKK21zZ3N0ciAidW1vdW50OiAlczog44K544O844OR44O844OW44Ot44OD44Kv44Gr5pu444GN6L6844KB44G+44Gb44KTIgorCisjOiBtb3VudC91bW91bnQuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVtb3VudDogJXM6IGRldmljZSBpcyBidXN5LlxuIgorIiAgICAgICAgKEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gYWJvdXQgcHJvY2Vzc2VzIHRoYXQgdXNlXG4iCisiICAgICAgICAgdGhlIGRldmljZSBpcyBmb3VuZCBieSBsc29mKDgpIG9yIGZ1c2VyKDEpKSIKK21zZ3N0ciAiIgorInVtb3VudCAlczog44OH44OQ44Kk44K544GM44OT44K444O844Gn44GZ44CCXG4iCisiICAgICAgICjjgZPjga7jg4fjg5DjgqTjgrnjgYzjg5fjg63jgrvjgrnjgavjgojjgaPjgabkvb/jgo/jgozjgabjgYTjgovjga7jgafjgYLjgozjgbDjgIFsc29mKDgp44KEZnVzZXIiCisiKDEp44KS5L2/44Gj44Gm6Kq/5p+744GZ44KL44Gu44GM5pyJ55uK44GL44KC44GX44KM44G+44Gb44KTKSIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAidW1vdW50OiAlczog6KaL44Gk44GL44KK44G+44Gb44KTIgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICJ1bW91bnQ6ICVzOiDjgqLjg7Pjg57jgqbjg7Pjg4jjgZnjgovjgavjga/jgrnjg7zjg5Hjg7zjg6bjg7zjgrbjgafjgarjgZHjgozjgbDjgarjgorjgb7jgZvjgpMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgInVtb3VudDogJXM6IOODluODreODg+OCr+ODh+ODkOOCpOOCueOBr+ODleOCoeOCpOODq+OCt+OCueODhuODoOS4iuOBp+ioseWPr+OBleOCjOOBvuOBm+OCkyIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHVtb3VudDIsIHRyeWluZyB1bW91bnQuLi5cbiIKK21zZ3N0ciAidW1vdW50MiDjgYzjgYLjgorjgb7jgZvjgpPjgIF1bW91bnQg44GX44Gm44G/44G+44GZLi4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogJXMg44Gv5L2/55So5Lit44Gn44GZIC0tIOiqrei+vOOBv+WwgueUqOOBqOOBl+OBpuWGjeODnuOCpuODs+ODiOOBl+OBvuOBmVxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb3VsZCBub3QgcmVtb3VudCAlcyByZWFkLW9ubHlcbiIKK21zZ3N0ciAidW1vdW50OiAlcyDjgpLoqq3ovrzjgb/lsILnlKjjgaflho3jg57jgqbjg7Pjg4jjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ9cbiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiVzIOOBr+OCouODs+ODnuOCpuODs+ODiOOBleOCjOOBvuOBl+OBn1xuIgorCisjOiBtb3VudC91bW91bnQuYzozNjcKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBmaW5kIGxpc3Qgb2YgZmlsZXN5c3RlbXMgdG8gdW5tb3VudCIKK21zZ3N0ciAidW1vdW50OiDjgqLjg7Pjg57jgqbjg7Pjg4jjga7jgZ/jgoHjga7jg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6Djg6rjgrnjg4jjgpLopovjgaTjgZHjgonjgozjgb7jgZvjgpMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICAgdW1vdW50IC1hIFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgdmZz44K/44Kk44OXXSBbLU8g44Kq44OX44K344On44OzXVxuIgorIiAgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzo0NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICLjg4fjg5DjgqTjgrkgJXMg44GvICVzIOOBq+mWoumAo+OBpeOBkeOBleOCjOOBpuOBhOOBvuOBmVxuIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAi44OH44OQ44Kk44K5ICVzIOOBryAlcyDjgavplqLpgKPjgaXjgZHjgZXjgozjgabjgYTjgb7jgZvjgpNcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDg3Cittc2dpZCAiQ2Fubm90IHVtb3VudCBcIlwiXG4iCittc2dzdHIgIlwiXCIg44KS44Ki44Oz44Oe44Km44Oz44OI44Gn44GN44G+44Gb44KTXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIiVzIOOCkuOCouODs+ODnuOCpuODs+ODiOOBl+OBvuOBmVxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MDYKK21zZ2lkICJ1bW91bnQ6IGNvbmZ1c2VkIHdoZW4gYW5hbHl6aW5nIG10YWIiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHVtb3VudCAlcyAtLSAlcyBpcyBtb3VudGVkIG92ZXIgaXQgb24gdGhlIHNhbWUgcG9pbnQuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxOAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZmluZCAlcyBpbiBtdGFiXG4iCittc2dzdHIgIm10YWIg44GrICVzIOOBjOimi+OBpOOBi+OCiuOBvuOBm+OCk1xuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6ICVzIOODnuOCpuODs+ODiOOBleOCjOOBpuOBhOOBvuOBm+OCkyAobXRhYiDjgavjgojjgovjgagpIgorCisjOiBtb3VudC91bW91bnQuYzo1NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBpdCBzZWVtcyAlcyBpcyBtb3VudGVkIG11bHRpcGxlIHRpbWVzIgorbXNnc3RyICJ1bW91bnQ6ICVzIOOBr+ikh+aVsOODnuOCpuODs+ODiOOBleOCjOOBpuOBhOOCi+OCiOOBhuOBp+OBmSIKKworIzogbW91bnQvdW1vdW50LmM6NTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAoYW5kIHlvdSBhcmUgbm90IHJvb3QpIgorbXNnc3RyICIiCisidW1vdW50OiAlcyDjga8gZnN0YWIg44Gr44GC44KK44G+44Gb44KTICjjgZXjgonjgavjgIHjgYLjgarjgZ/jga8gcm9vdCDjgafjga/jgYLjgorjgb7jgZvjgpMpIgorCisjOiBtb3VudC91bW91bnQuYzo1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBtb3VudCBkaXNhZ3JlZXMgd2l0aCB0aGUgZnN0YWIiCittc2dzdHIgInVtb3VudDogJXMg44GvIGZzdGFiIOOBqOS4gOiHtOOBl+OBquOBhOODnuOCpuODs+ODiOOBp+OBmSIKKworIzogbW91bnQvdW1vdW50LmM6NjEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogb25seSAlcyBjYW4gdW5tb3VudCAlcyBmcm9tICVzIgorbXNnc3RyICJ1bW91bnQ6ICVzIOOBoOOBkeOBjCAlcyDjgpIgJXMg44GL44KJ44Ki44Oz44Oe44Km44Oz44OI44Gn44GN44G+44GZIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAidW1vdW50OiByb290IOOBoOOBkeOBjOOBneOCjOOCkuihjOOBquOBiOOBvuOBmSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImNocnQgLSBtYW5pcHVsYXRlIHJlYWwtdGltZSBhdHRyaWJ1dGVzIG9mIGEgcHJvY2Vzcy5cbiIKKyJcbiIKKyJTZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gPHBvbGljeT4gPHByaW9yaXR5PiB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiR2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJcbiIKKyJTY2hlZHVsaW5nIHBvbGljaWVzOlxuIgorIiAgLWIgfCAtLWJhdGNoICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9CQVRDSFxuIgorIiAgLWYgfCAtLWZpZm8gICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9GSUZPXG4iCisiICAtaSB8IC0taWRsZSAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0lETEVcbiIKKyIgIC1vIHwgLS1vdGhlciAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfT1RIRVJcbiIKKyIgIC1yIHwgLS1yciAgICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfUlIgKGRlZmF1bHQpXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwXG4iCisiICAtcCB8IC0tcGlkICAgICAgICAgICBvcGVyYXRlIG9uIGV4aXN0aW5nIGdpdmVuIHBpZFxuIgorIiAgLW0gfCAtLW1heCAgICAgICAgICAgc2hvdyBtaW4gYW5kIG1heCB2YWxpZCBwcmlvcml0aWVzXG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgICBkaXNwbGF5IHN0YXR1cyBpbmZvcm1hdGlvblxuIgorIiAgLVYgfCAtLXZlcnNpb24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIiVzIOOBruODkeODvOODhuOCo+OCt+ODp+ODs+abuOOBjei+vOOBv+OBq+WkseaVl1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHBvbGljeTogIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgIuS4jeaYjlxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBhdHRyaWJ1dGVzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHByaW9yaXR5OiAlZFxuIgorbXNnc3RyICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHByaW9yaXR5OiAlZFxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICJTQ0hFRF8lcyBtaW4vbWF4IHByaW9yaXR5XHQ6ICVkLyVkXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbm90IHN1cHBvcnRlZD9cbiIKK21zZ3N0ciAiVENQIOe1jOeUseOBriBORlMg44Gv44K144Od44O844OI44GV44KM44Gm44GE44G+44Gb44KT44CCXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICIlczogb3BlbiDjgavlpLHmlZc6ICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIyNQorbXNnaWQgImN1cnJlbnQiCittc2dzdHIgIuePvuWcqCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjMzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAiJXMg44Gu44OR44O844OG44Kj44K344On44Oz5pu444GN6L6844G/44Gr5aSx5pWXXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHNldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIiVzIOOBruODkeODvOODhuOCo+OCt+ODp+ODs+abuOOBjei+vOOBv+OBq+WkseaVl1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyNDIKKyMsIGZ1enp5Cittc2dpZCAibmV3IgorbXNnc3RyICLmlrDjgZ/jgasiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXMiCittc2dzdHIgInR5cGVzY3JpcHQg44OV44Kh44Kk44OrICVzIOOBruiqreOBv+i+vOOBv+OBjOWkseaVl+OBl+OBvuOBl+OBnyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo1NworbXNnaWQgImlvcHJpb19nZXQgZmFpbGVkIgorbXNnc3RyICJpb3ByaW9fZ2V0IOOBjOWkseaVlyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICJpb3ByaW9fc2V0IOOBjOWkseaVlyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo4MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImlvbmljZSAtIHNldHMgb3IgZ2V0cyBwcm9jZXNzIGlvIHNjaGVkdWxpbmcgY2xhc3MgYW5kIHByaW9yaXR5LlxuIgorIlxuIgorIlVzYWdlOlxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIC1wIDxwaWQ+IFs8cGlkPiAuLi5dXG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gPGNvbW1hbmQ+IFs8YXJnPiAuLi5dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1uIDxjbGFzc2RhdGE+ICAgICAgY2xhc3MgZGF0YSAoMC03LCBsb3dlciBiZWluZyBoaWdoZXIgcHJpbylcbiIKKyIgIC1jIDxjbGFzcz4gICAgICAgICAgc2NoZWR1bGluZyBjbGFzc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAwOiBub25lLCAxOiByZWFsdGltZSwgMjogYmVzdC1lZmZvcnQsIDM6IGlkbGVcbiIKKyIgIC10ICAgICAgICAgICAgICAgICAgaWdub3JlIGZhaWx1cmVzXG4iCisiICAtaCAgICAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiaW9uaWNlIC0g44OX44Ot44K744K544GuaW/jgrnjgrHjgrjjg6Xjg7zjg6rjg7PjgrDjgq/jg6njgrnjg7vjg5fjg6njgqTjgqrjg6rjg4bjgqPjgpLlj5blvpfjg7voqK3lrprjgZkiCisi44KL44CCXG4iCisiXG4iCisi5L2/44GE5pa5OlxuIgorIiAgaW9uaWNlIFsg44Kq44OX44K344On44OzIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbm9jZSBbIOOCquODl+OCt+ODp+ODsyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIuOCquODl+OCt+ODp+ODszpcbiIKKyIgIC1uIDxjbGFzc2RhdGE+ICAgICAg44Kv44Op44K544OH44O844K/ICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICDjgrnjgrHjgrjjg6Xjg7zjg6rjg7PjgrDjgq/jg6njgrlcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMTog44Oq44Ki44Or44K/44Kk44OgLCAyOiDjg5njgrnjg4jjgqjjg5Xjgqnjg7zjg4gsIDM6IOOCouOCpOODieODq1xuIgorIiAgLXQgICAgICAgICAgICAgICAgICDjgqjjg6njg7zjgpLnhKHoppbjgZnjgotcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAg44GT44Gu44OY44Or44OXXG4iCisiXG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEwIHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBwYXJzZSBudW1iZXIgJyVzJyIKK21zZ3N0ciAi5pWw5a2XICclcycg44KS6Kej5p6Q44Gn44GN44G+44Gb44KTIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3Cittc2dpZCAiZXhlY3ZwIGZhaWxlZCIKK21zZ3N0ciAiZXhlY3Zw44Gr5aSx5pWXIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICIiCisi44Gd44GuIEN0cmwtQWx0LURlbCDjga7mjK/jgovoiJ7jgYTjgpLoqK3lrprjgZnjgovjgavjga8gcm9vdCDjgafnhKHjgZHjgozjgbDjgarjgorjgb7jgZvjgpPjgIJcbiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzo0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKK21zZ3N0ciAi5L2/44GE5pa5OiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIuODleOCoeOCpOODqyAlc+OAgeOBl+OBjeOBhOWApCAlbHXjgIHjg5HjgqTjg5flhoXjga7mnIDlpKfjgq3jg6Pjg6njgq/jgr/mlbDjga8gJWQg44Gn44GX44Gf44CCXG4iCisi56eS6ZaT5pyA5aSn44Kt44Oj44Op44Kv44K/6Lui6YCB44Os44O844OI44GvICVmIOOBp+OBl+OBn+OAglxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSBhbmQgdGltcm91dCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyAiCisiaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisi44OV44Kh44Kk44OrICVz44CB44GX44GN44GE5YCkICVsdSDlj4rjgbPjgr/jgqTjg6DjgqLjgqbjg4jlgKQgJWx144CB44OR44Kk44OX5YaF44Gu5pyA5aSn44Kt44Oj44Op44Kv44K/XG4iCisi5pWw44Gv44CBJWQg44Gn44GX44Gf44CC56eS6ZaT5pyA5aSn44Kt44Oj44Op44Kv44K/6Lui6YCB44Os44O844OI44GvICVmIOOBp+OBl+OBn+OAglxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIuS4jeato+OBquWGhemDqOWApDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAi5LiN5q2j44Gq6Kit5a6a5YCkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAi5LiN5q2j44Gq5Yid5pyf5YCkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIuS4jeato+OBquioreWumuaZguWIuzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAi5LiN5q2j44Gq5Yid5pyf5pmC5Yi7OiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pICIKKyJbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCittc2dzdHIgIiIKKyLkvb/jgYTmlrk6ICVzIFstcSBbLWkg6ZaT6ZqUXV0gKFstcyDlgKRdfFstUyDlgKRdKSAoWy10IOWApF18Wy1UIOWApF0pIFstZ3wtR10g44OV44Kh44KkIgorIuODqyBb44OV44Kh44Kk44OrLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjUwIHN5cy11dGlscy9jeXR1bmUuYzoyNjkgc3lzLXV0aWxzL2N5dHVuZS5jOjI4OQorIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICIlcyDjgpLplovjgZHjgb7jgZvjgpM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiJXMg44KS44GX44GN44GE5YCkICVkIOOBq+ioreWumuOBp+OBjeOBvuOBm+OCkzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGltZSB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiVzIOOCkuaZgumWk+OBl+OBjeOBhOWApCAlZCDjgavoqK3lrprjgafjgY3jgb7jgZvjgpM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyOTQgc3lzLXV0aWxzL2N5dHVuZS5jOjM1MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aHJlc2hvbGQgZm9yICVzOiAlc1xuIgorbXNnc3RyICIlcyDjgbjjga7jgZfjgY3jgYTlgKTjgYzlj5blvpfjgafjgY3jgb7jgZvjgpM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiJXMg44G444Gu44K/44Kk44Og44Ki44Km44OI44KS5Y+W5b6X44Gn44GN44G+44Gb44KTOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3VycmVudCB0aHJlc2hvbGQgYW5kICVsZCBjdXJyZW50IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6IOePvuWcqOOBrumWvuWApCAlbGQg5Y+K44Gz54++5Zyo44Gu44K/44Kk44Og44Ki44Km44OIICVsZFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgZGVmYXVsdCB0aHJlc2hvbGQgYW5kICVsZCBkZWZhdWx0IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6IOODh+ODleOCqeODq+ODiOmWvuWApCAlbGQg5Y+K44Gz44OH44OV44Kp44Or44OI44K/44Kk44Og44Ki44Km44OIICVsZFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzI3Cittc2dpZCAiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIgorbXNnc3RyICLjgrfjgrDjg4rjg6vjg4/jg7Pjg4njg6njgpLoqK3lrprjgafjgY3jgb7jgZvjgpMiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzEgc3lzLXV0aWxzL2N5dHVuZS5jOjM2NgorbXNnaWQgImdldHRpbWVvZmRheSBmYWlsZWQiCittc2dzdHIgImdldHRpbWVvZmRheSDjgYzlpLHmlZciCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozNDQgc3lzLXV0aWxzL2N5dHVuZS5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBpc3N1ZSBDWUdFVE1PTiBvbiAlczogJXNcbiIKK21zZ3N0ciAiJXMg44GnIENZR0VUTU9OIOOBjOeZuuihjOOBp+OBjeOBvuOBm+OCkzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorIiVzOiDmlbTmlbAgJWx144CB44Kt44Oj44Op44Kv44K/ICVsdS8lbHUgLS0gZmlmbzog6Za+5YCkICVsdeOAgeOCv+OCpOODoOOCouOCpuODiCAlbHXjgIFcbiIKKyIgICAg5pyA5aSnICVsdeOAgeePvuWcqCAlbHVcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiDmlbTmlbAv56eSOyAlZiDoqJjpjLIsICVmIOmAgeS/oSAo44Kt44Oj44Op44Kv44K/L+enkilcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6IOaVtOaVsCAlbHXjgIHjgq3jg6Pjg6njgq/jgr8gJWx1IC0tIGZpZm86IOOBl+OBjeOBhOWApCAlbHXjgIHjgr/jgqTjg6DjgqLjgqbjg4ggJWx144CBXG4iCisiICAgIOacgOWkpyAlbHXjgIHnj77lnKggJWx1XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYg5pW05pWwL+enkiAtLSAlZiDoqJjpjLIgKOOCreODo+ODqeOCr+OCvy/np5IpXG4iCisKKyM6IHN5cy11dGlscy9kbWVzZy5jOjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstbiBsZXZlbF0gWy1yXSBbLXMgYnVmc2l6ZV1cbiIKK21zZ3N0ciAi5L2/44GE5pa5OiAlcyBbLWNdIFstbiDjg6zjg5njg6tdIFstcl0gWy1zIOODkOODg+ODleOCoeOCteOCpOOCul1cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxmaWxlbmFtZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiAlcyBb44Kq44OX44K344On44OzXSA844OV44Kh44Kk44Or5ZCNPlxuIgorIlxuIgorIuOCquODl+OCt+ODp+ODszpcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIuips+e0sOaDheWgseOBr+OAgW5hbWVpKDEpIOOCkueiuuiqjeOBl+OBpuOBj+OBoOOBleOBhOOAglxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3CisjLCBmdXp6eQorbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgIuW8leaVsOOBjOWNgeWIhuOBp+OBr+OBguOCiuOBvuOBm+OCkyIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0OQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGxlbmd0aCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIuS4jeato+OBquioreWumuWApDogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9mZnNldCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIuS4jeato+OBquioreWumuWApDogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MworIywgZnV6enkKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICItLWRhdGUg44Kq44OX44K344On44Oz44GM5oyH5a6a44GV44KM44Gm44GE44G+44Gb44KT44CCXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWxsb2NhdGUgZmFpbGVkIgorbXNnc3RyICIlczogZmFsbG9jYXRlIOOBjOWkseaVlyIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlMSRzIFstc3h1bl1bLXcgI10gZmQjXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBmaWxlIFstY10gY29tbWFuZC4uLlxuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZGlyZWN0b3J5IFstY10gY29tbWFuZC4uLlxuIgorIiAgLXMgIC0tc2hhcmVkICAgICBHZXQgYSBzaGFyZWQgbG9ja1xuIgorIiAgLXggIC0tZXhjbHVzaXZlICBHZXQgYW4gZXhjbHVzaXZlIGxvY2tcbiIKKyIgIC11ICAtLXVubG9jayAgICAgUmVtb3ZlIGEgbG9ja1xuIgorIiAgLW4gIC0tbm9uYmxvY2sgICBGYWlsIHJhdGhlciB0aGFuIHdhaXRcbiIKKyIgIC13ICAtLXRpbWVvdXQgICAgV2FpdCBmb3IgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lXG4iCisiICAtbyAgLS1jbG9zZSAgICAgIENsb3NlIGZpbGUgZGVzY3JpcHRvciBiZWZvcmUgcnVubmluZyBjb21tYW5kXG4iCisiICAtYyAgLS1jb21tYW5kICAgIFJ1biBhIHNpbmdsZSBjb21tYW5kIHN0cmluZyB0aHJvdWdoIHRoZSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBEaXNwbGF5IHRoaXMgdGV4dFxuIgorIiAgLVYgIC0tdmVyc2lvbiAgICBEaXNwbGF5IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorIuS9v+OBhOaWuTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIOODleOCoeOCpOODqyBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSDjg4fjgqPjg6zjgq/jg4jjg6ogWy1jXSBjb21tYW5kLi4uXG4iCisiICAtcyAgLS1zaGFyZWQgICAgIOWFseacieODreODg+OCr+OCkuWPluW+l+OBmeOCi1xuIgorIiAgLXggIC0tZXhjbHVzaXZlICDmjpLku5bjg63jg4Pjgq/jgpLlj5blvpfjgZnjgotcbiIKKyIgIC11ICAtLXVubG9jayAgICAg44Ot44OD44Kv44KS5YmK6Zmk44GZ44KLXG4iCisiICAtbiAgLS1ub25ibG9jayAgIEZhaWwgcmF0aGVyIHRoYW4gd2FpdFxuIgorIiAgLXcgIC0tdGltZW91dCAgICBXYWl0IGZvciBhIGxpbWl0ZWQgYW1vdW50IG9mIHRpbWVcbiIKKyIgIC1vICAtLWNsb3NlICAgICAg44Kz44Oe44Oz44OJ44KS5a6f6KGM44GZ44KL5pig44GI44Gr44OV44Kh44Kk44Or44OH44Kj44K544Kv44Oq44OX44K/44KS44Kv44Ot44O844K644GZIgorIuOCi1xuIgorIiAgLWMgIC0tY29tbWFuZCAgICDjgrfjgqfjg6vjgpLpgJrjgZfjgabjgrfjg7PjgrDjg6vjgrPjg57jg7Pjg4nmloflrZfliJfjgpLlrp/ooYzjgZnjgotcbiIKKyIgIC1oICAtLWhlbHAgICAgICAg44GT44Gu44OG44Kt44K544OI44KS6KGo56S644GZ44KLXG4iCisiICAtViAgLS12ZXJzaW9uICAgIOODkOODvOOCuOODp+ODs+OCkuihqOekuuOBmeOCi1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoxOTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyByZXF1aXJlcyBleGFjdGx5IG9uZSBjb21tYW5kIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIOOBr+W8leaVsOOCkuimgeaxguOBl+OBvuOBmVxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IOODreODg+OCr+ODleOCoeOCpOODqyAlcyDjgpLplovjgZHjgb7jgZvjgpM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IOS4jeato+OBquaVsOWApDogJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZXF1aXJlcyBmaWxlIGRlc2NyaXB0b3IsIGZpbGUgb3IgZGlyZWN0b3J5XG4iCittc2dzdHIgIiVzOiDjg5XjgqHjgqTjg6vjg4fjgqPjgrnjgq/jg6rjg5fjgr/jgYvjg5XjgqHjgqTjg6vjgYvjg4fjgqPjg6zjgq/jg4jjg6rjgpLlv4XopoHjgajjgZfjgb7jgZlcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6Mjk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3JrIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiJXM6IOWtkOODl+ODreOCu+OCueOBrui1t+WLleOBq+WkseaVlzogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIuS9v+OBhOaWuTogJXMgW+OCquODl+OCt+ODp+ODs11cbiIKKyJcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLU0gPHNpemU+ICAgICBjcmVhdGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IG9mIHNpemUgPHNpemU+XG4iCisiICAtUyA8bnNlbXM+ICAgIGNyZWF0ZSBzZW1hcGhvcmUgYXJyYXkgd2l0aCA8bnNlbXM+IGVsZW1lbnRzXG4iCisiICAtUSAgICAgICAgICAgIGNyZWF0ZSBtZXNzYWdlIHF1ZXVlXG4iCisiICAtcCA8bW9kZT4gICAgIHBlcm1pc3Npb24gZm9yIHRoZSByZXNvdXJjZSAoZGVmYXVsdCBpcyAwNjQ0KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaXBjbWsoMSkuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyLoqbPntLDmg4XloLHjga/jgIFpcGNtaygxKSDjgpLnorroqo3jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIKKyJcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQyCittc2dpZCAiY3JlYXRlIHNoYXJlIG1lbW9yeSBmYWlsZWQiCittc2dzdHIgIuWFseacieODoeODouODquOBruS9nOaIkOOBq+WkseaVl+OBl+OBvuOBl+OBnyIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIuWFseacieODoeODouODqmlkOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgIuODoeODg+OCu+ODvOOCuOOCreODpeODvGlkOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTgKK21zZ2lkICJjcmVhdGUgc2VtYXBob3JlIGZhaWxlZCIKK21zZ3N0ciAi44K744Oe44OV44Kp44Gu5L2c5oiQ44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VtYXBob3JlIGlkOiAlZFxuIgorbXNnc3RyICLjgrvjg57jg5XjgqlpZDogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAi5LiN5q2j44GqIGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAiaWQgJXMgKCVzKSDjgpLliYrpmaTjgafjgY3jgb7jgZvjgpNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVwcmVjYXRlZCB1c2FnZTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCittc2dzdHIgIuW7g+atouS6iOWumuOBruS9v+OBhOaWuTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duIHJlc291cmNlIHR5cGU6ICVzXG4iCittc2dzdHIgIuS4jeaYjuOBquODquOCveODvOOCueOCv+OCpOODlzogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAi44Oq44K944O844K544KS5YmK6Zmk44GX44G+44GX44GfXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiIKKyIgICAgICAgICAgWy1RIG1zZ2tleV0gWy1NIHNobWtleV0gWy1TIHNlbWtleV0gLi4uIF1cbiIKK21zZ3N0ciAiIgorIuS9v+OBhOaWuTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICAgWy1RIG1zZ2tleV0gWy1NIHNobWtleV0gWy1TIHNlbWtleV0gLi4uIF1cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgorbXNnc3RyICIlczog5LiN5q2j44Gq44Kq44OX44K344On44OzIC0tICVjXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBrZXkgKCVzKVxuIgorbXNnc3RyICIlczog5LiN5q2j44Gq44Kt44O8ICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBrZXkiCittc2dzdHIgIuOCreODvOOBruioseWPr+OBjOOBguOCiuOBvuOBm+OCkyIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA5IHN5cy11dGlscy9pcGNybS5jOjI0OAorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBrZXkiCittc2dzdHIgIuaXouOBq+OCreODvOOBr+WJiumZpOOBleOCjOOBpuOBhOOBvuOBmSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjEyIHN5cy11dGlscy9pcGNybS5jOjI0MworbXNnaWQgImludmFsaWQga2V5IgorbXNnc3RyICLkuI3mraPjgarjgq3jg7wiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxNSBzeXMtdXRpbHMvaXBjcm0uYzoyNTMKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKKyMsIGZ1enp5Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGlkIgorbXNnc3RyICJtb3VudDog6Kix5Y+v44GM44GC44KK44G+44Gb44KTIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICLkuI3mraPjgaogaWQiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0OQorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBpZCIKK21zZ3N0ciAi5pei44Gr5YmK6Zmk44GV44KM44GfaWTjgafjgZkiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NAorbXNnaWQgInVua25vd24gZXJyb3IgaW4gaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiVzOiAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIKK21zZ3N0ciAiJXM6IOS4jeaYjuOBquW8leaVsCAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZSA6ICVzIC1hc21xIC10Y2x1cCBcbiIKK21zZ3N0ciAi5L2/44GE5pa5IDogJXMgLWFzbXEgLXRjbHVwIFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKK21zZ3N0ciAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIlx0JXMgLWgg44Gn44OY44Or44OX44KS6KGo56S644CCXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBpcGMgZmFjaWxpdGllcyBmb3Igd2hpY2ggeW91IGhhdmUgcmVhZCBhY2Nlc3MuXG4iCittc2dzdHIgIiIKKyIlcyDjga/jgYLjgarjgZ/jgYzoqq3jgb/ovrzjgb/jgqLjgq/jgrvjgrnjgafjgY3jgosgaXBjIOOBruizh+a6kOeKtuazgeOBquOBqeOBruaDheWgseOCkuaPkOS+m+OBl+OBvuOBmeOAglxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisi44Oq44K944O844K55oyH5a6aOlxuIgorIlx0LW0gOiDlhbHmnInjg6Hjg6Ljg6pcbiIKKyJcdC1xIDog44Oh44OD44K744O844K4XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKyJcdC1zIDog44K744Oe44OV44KpXG4iCisiXHQtYSA6IOWFqOOBpiAo5Yid5pyf5YCkKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3V0cHV0IEZvcm1hdDpcbiIKKyJcdC10IDogdGltZVxuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDogY3JlYXRvclxuIgorbXNnc3RyICIiCisi5Ye65Yqb5pu45byPOlxuIgorIlx0LXQgOiDmmYLplpNcbiIKKyJcdC1wIDog44OX44Ot44K744K5SURcbiIKKyJcdC1jIDog5L2c5oiQ6ICFXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1sIDogbGltaXRzXG4iCisiXHQtdSA6IHN1bW1hcnlcbiIKK21zZ3N0ciAiIgorIlx0LWwgOiDliLbpmZBcbiIKKyJcdC11IDog6KaB57SEXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIKK21zZ3N0ciAiLWkgaWQgWy1zIC1xIC1tXSA6IGlkIOOBq+OCiOOBo+OBpuitmOWIpeOBleOCjOOCi+ODquOCveODvOOCueOBruips+e0sFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNoYXJlZCBtZW1vcnlcbiIKK21zZ3N0ciAi44Kr44O844ON44Or44Gn44Gu5YWx5pyJ44Oh44Oi44Oq44Gu54K644Gu6Kit5a6a44GM44GV44KM44Gm44GE44G+44Gb44KTXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g5YWx5pyJ44Oh44Oi44Oq44Gu5Yi26ZmQIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAi44K744Kw44Oh44Oz44OI5pWw44Gu5pyA5aSn5YCkID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICLjgrvjgrDjg6Hjg7Pjg4jjgrXjgqTjgrrjga7mnIDlpKcgKOWNmOS9jTpLQikgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHRvdGFsIHNoYXJlZCBtZW1vcnkgKGtieXRlcykgPSAlbGx1XG4iCittc2dzdHIgIuWQiOioiOWFseacieODoeODouODquOBruacgOWkpyAo5Y2Y5L2NOktCKSA9ICVsbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWluIHNlZyBzaXplIChieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAi5pyA5bCP44K744Kw44Oh44Oz44OI44K144Kk44K6ICjljZjkvY0644OQ44Kk44OIKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIOWFseacieODoeODouODquOBrueKtuaFiyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJzZWdtZW50cyBhbGxvY2F0ZWQgJWRcbiIKK21zZ3N0ciAi56K65L+d44GV44KM44Gf44K744Kw44Oh44Oz44OIICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAi56K65L+d44GV44KM44Gf44Oa44O844K4ICAgICAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgcmVzaWRlbnQgICVsZFxuIgorbXNnc3RyICLlm7rlrprjgZXjgozjgZ/jg5rjg7zjgrggICAgICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgIuOCueODr+ODg+ODl+OBleOCjOOBn+ODmuODvOOCuCAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dhcCBwZXJmb3JtYW5jZTogJWxkIGF0dGVtcHRzXHQgJWxkIHN1Y2Nlc3Nlc1xuIgorbXNnc3RyICLjgrnjg6/jg4Pjg5fjga7li5XkvZw6ICVsZCDlm57oqabjgb8gJWxkIOWbnuaIkOWKn1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g5YWx5pyJ44Oh44Oi44Oq44K744Kw44Oh44Oz44OIIOS9nOaIkOiAhS/miYDmnInogIUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAic2htaWQiCittc2dzdHIgInNobWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAi5qip6ZmQIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImN1aWQiCittc2dzdHIgImN1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY2dpZCIKK21zZ3N0ciAiY2dpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJ1aWQiCittc2dzdHIgInVpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJnaWQiCittc2dzdHIgImdpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQXR0YWNoL0RldGFjaC9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIOWFseacieODoeODouODqiDntZDlkIgv5YiG6ZuiL+WkieabtOWbnuaVsCAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgIuaJgOacieiAhSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAi57WQ5ZCIIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImRldGFjaGVkIgorbXNnc3RyICLliIbpm6IiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk1Cittc2dpZCAiY2hhbmdlZCIKK21zZ3N0ciAi5aSJ5pu0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBDcmVhdG9yL0xhc3Qtb3AgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIOWFseacieODoeODouODqiDkvZzmiJDogIUv55u06L+R44Gu5ZG95LukIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiY3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJscGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g5YWx5pyJ44Oh44Oi44Oq44K744Kw44Oh44Oz44OIIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAia2V5IgorbXNnc3RyICLjgq3jg7wiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAiYnl0ZXMiCittc2dzdHIgIuODkOOCpOODiCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJuYXR0Y2giCittc2dzdHIgIm5hdHRjaCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgIueKtuaFiyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMjkgc3lzLXV0aWxzL2lwY3MuYzozMzEgc3lzLXV0aWxzL2lwY3MuYzozMzMKKyM6IHN5cy11dGlscy9pcGNzLmM6NDQ0IHN5cy11dGlscy9pcGNzLmM6NDQ2IHN5cy11dGlscy9pcGNzLmM6NTQ1CisjOiBzeXMtdXRpbHMvaXBjcy5jOjU0NyBzeXMtdXRpbHMvaXBjcy5jOjU0OSBzeXMtdXRpbHMvaXBjcy5jOjYwMAorIzogc3lzLXV0aWxzL2lwY3MuYzo2MDIgc3lzLXV0aWxzL2lwY3MuYzo2MzAgc3lzLXV0aWxzL2lwY3MuYzo2MzIKKyM6IHN5cy11dGlscy9pcGNzLmM6NjM0IHN5cy11dGlscy9pcGNzLmM6NjU3Cittc2dpZCAiTm90IHNldCIKK21zZ3N0ciAi44K744OD44OI44GV44KM44Gm44GE44G+44Gb44KTIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MQorbXNnaWQgImRlc3QiCittc2dzdHIgIuWvvuixoSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjIKK21zZ2lkICJsb2NrZWQiCittc2dzdHIgIuODreODg+OCryIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgIuOCq+ODvOODjeODq+OBp+OBruOCu+ODnuODleOCqeOBrueCuuOBruioreWumuOBjOOBleOCjOOBpuOBhOOBvuOBm+OCk1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g44K744Oe44OV44Kp44Gu5Yi26ZmQIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2YgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAi5pyA5aSn6YWN5YiX5pWwID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAi6YWN5YiX5q+O44Gu5pyA5aSn44K744Oe44OV44Kp5pWwID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICLjgrfjgrnjg4bjg6DlhajkvZPjga7mnIDlpKfjgrvjg57jg5XjgqnmlbAgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAic2Vtb3Ag5ZG844Gz5Ye644GX5q+O44Gu5pyA5aSn5ZG95Luk5pWwID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VtYXBob3JlIG1heCB2YWx1ZSA9ICVkXG4iCittc2dzdHIgIuOCu+ODnuODleOCqeacgOWkp+WApCA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDjgrvjg57jg5Xjgqnjga7nirbmhYsgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBhcnJheXMgPSAlZFxuIgorbXNnc3RyICLkvb/nlKjphY3liJfmlbAgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgc2VtYXBob3JlcyA9ICVkXG4iCittc2dzdHIgIueiuuS/neOBleOCjOOBn+OCu+ODnuODleOCqeaVsCA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g44K744Oe44OV44Kp6YWN5YiXIOS9nOaIkOiAhS/miYDmnInogIUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAic2VtaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgT3BlcmF0aW9uL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g44K744Oe44OV44KpIOWRveS7pC/lpInmm7Tlm57mlbAgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICLmnIDntYLmk43kvZwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1jaGFuZ2VkIgorbXNnc3RyICLmnIDntYLjga7lpInmm7QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDjgrvjg57jg5XjgqnphY3liJcgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAibnNlbXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3IgbWVzc2FnZSBxdWV1ZXNcbiIKK21zZ3N0ciAi44Kr44O844ON44Or44Gn44Gu44Oh44OD44K744O844K444Kt44Ol44O844Gu54K644Gu6Kit5a6a44GM44GV44KM44Gm44GE44G+44Gb44KTXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDjg6Hjg4Pjgrvjg7zjgrg6IOWItumZkCAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggcXVldWVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAi44K344K544OG44Og5YWo5L2T44Gn44Gu5pyA5aSn44Kt44Ol44O85pWwID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNpemUgb2YgbWVzc2FnZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAi5pyA5aSn44Oh44OD44K744O844K444K144Kk44K6ICjjg5DjgqTjg4gpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVmYXVsdCBtYXggc2l6ZSBvZiBxdWV1ZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAi44Kt44Ol44O844K144Kk44K65pyA5aSn5YCk44Gu5Yid5pyf5YCkICjjg5DjgqTjg4gpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIOODoeODg+OCu+ODvOOCuDog54q25oWLIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk4CisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBxdWV1ZXMgPSAlZFxuIgorbXNnc3RyICLnorrkv53muIjjgb/jgq3jg6Xjg7zmlbAgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGhlYWRlcnMgPSAlZFxuIgorbXNnc3RyICLkvb/nlKjmuIjjg5jjg4Pjg4AgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIHNwYWNlID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAi5L2/55So5riI56m66ZaTID0gJWQg44OQ44Kk44OIXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDjg6Hjg4Pjgrvjg7zjgrjjgq3jg6Xjg7w6IOS9nOaIkOiAhS/miYDmnInogIUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgIm1zcWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgU2VuZC9SZWN2L0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g44Oh44OD44K744O844K444Kt44Ol44O8IOmAgeS/oS/lj5fkv6Ev5aSJ5pu05Zue5pWwIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAic2VuZCIKK21zZ3N0ciAi6YCB5L+hIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInJlY3YiCittc2dzdHIgIuWPl+S/oSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJjaGFuZ2UiCittc2dzdHIgIuWkieabtCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFBJRHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIOODoeODg+OCu+ODvOOCuOOCreODpeODvCBQSURzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgImxzcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxycGlkIgorbXNnc3RyICJscnBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDjg6Hjg4Pjgrvjg7zjgrjjgq3jg6Xjg7wgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJ1c2VkLWJ5dGVzIgorbXNnc3RyICLkvb/nlKjjg5DjgqTjg4jmlbAiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAibWVzc2FnZXMiCittc2dzdHIgIuODoeODg+OCu+ODvOOCuCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1ODkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICJzaG1jdGwg44Gr5aSx5pWX44GX44G+44GX44GfIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2hhcmVkIG1lbW9yeSBTZWdtZW50IHNobWlkPSVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyLjgrfjgqfjgqLjg7zjg4njg6Hjg6Ljg6rjgrvjgrDjg6Hjg7Pjg4ggc2htaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKK21zZ3N0ciAi44Oi44O844OJPSUjb1x044Ki44Kv44K744K55qipPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcz0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKK21zZ3N0ciAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgImF0dF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImF0dF90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImRldF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImRldF90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAzIHN5cy11dGlscy9pcGNzLmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE1Cittc2dpZCAibXNnY3RsIGZhaWxlZCIKK21zZ3N0ciAibXNnY3Rs44GM5aSx5pWXIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisi44Oh44OD44K744O844K444Kt44Ol44O8IG1zcWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRtb2RlPSUjb1xuIgorbXNnc3RyICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICJjYnl0ZXM9JWxkXHRxYnl0ZXM9JWxkXHRxbnVtPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmN2X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAicmN2X3RpbWU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICJzZW1jdGwg44GM5aSx5pWX44GX44G+44GX44GfIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2VtYXBob3JlIEFycmF5IHNlbWlkPSVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyLjgrvjg57jg5XjgqnphY3liJcgc2VtaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHQgZ2lkPSVkXHQgY3VpZD0lZFx0IGNnaWQ9JWRcbiIKK21zZ3N0ciAidWlkPSVkXHQgZ2lkPSVkXHQgY3VpZD0lZFx0IGNnaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9kZT0lI28sIGFjY2Vzc19wZXJtcz0lI29cbiIKK21zZ3N0ciAi44Oi44O844OJPSUjbywg44Ki44Kv44K744K55qipPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJuc2VtcyA9ICVsZFxuIgorbXNnc3RyICJuc2VtcyA9ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJvdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgIm90aW1lID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJjdGltZSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAic2VtbnVtIgorbXNnc3RyICJzZW1udW0iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAidmFsdWUiCittc2dzdHIgIuWApCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJuY291bnQiCittc2dzdHIgIm5jb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ6Y291bnQiCittc2dzdHIgInpjb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJwaWQiCittc2dzdHIgInBpZCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorbXNnc3RyICIiCisiXG4iCisi5L2/44GE5pa5OiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHNwZWVkOiAlcyIKK21zZ3N0ciAi5LiN5q2j44Gq6YCf5bqmOiAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsZGF0dGFjaCBmcm9tICVzXG4iCittc2dzdHIgIiVzIGZyb20gJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAi5LiN5q2j44Gq44Kq44OX44K344On44OzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgbGluZSBkaXNjaXBsaW5lOiAlcyIKK21zZ3N0ciAi5LiN5q2j44GqIGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiCittc2dzdHIgIiVzIOOBr+OCt+ODquOCouODq+ODqeOCpOODs+OBp+OBr+OBguOCiuOBvuOBm+OCkyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICIlcyDjga7jgrXjgqTjgrrjgpLlj5blvpfjgafjgY3jgb7jgZvjgpMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAi6YCf5bqmICVkIOOBr+OCteODneODvOODiOOBleOCjOOBvuOBm+OCkyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjUxCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCBzZXQgbGluZSBkaXNjaXBsaW5lIgorbXNnc3RyICLjg4fjgqPjgrnjgq/jg4njg6njgqTjg5bkuIrjgacgc2VlayDjgafjgY3jgb7jgZvjgpMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworIywgZnV6enkKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICIlcyDjgpIgb3BlbiDjgafjgY3jgb7jgZvjgpMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0Cittc2dpZCAibm9uZSIKK21zZ3N0ciAi44Gq44GXIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NQorbXNnaWQgInBhcmEiCittc2dzdHIgIua6luS7ruaDs+WMliIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjYKK21zZ2lkICJmdWxsIgorbXNnc3RyICLlrozlhajku67mg7PljJYiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjEzNyBzeXMtdXRpbHMvbHNjcHUuYzoxNjAgc3lzLXV0aWxzL2xzY3B1LmM6NDU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlcyIKK21zZ3N0ciAi44Ko44Op44O8OiAlcyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgIiVzIOOBruiqreOBv+WPluOCiuOCqOODqeODvFxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgIuaomea6luWHuuWKm+OBuOOBruabuOOBjei+vOOBv+OBjOWkseaVl+OBl+OBvuOBl+OBnyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MjY3Cittc2dpZCAiZXJyb3I6IHVuYW1lIGZhaWxlZCIKK21zZ3N0ciAi44Ko44Op44O8OiB1bmFtZSDjgYzlpLHmlZciCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorbXNnaWQgImVycm9yOiBtYWxsb2MgZmFpbGVkIgorbXNnc3RyICLjgqjjg6njg7w6IG1hbGxvYyDjgavlpLHmlZciCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICLjgqjjg6njg7w6IC9zeXMg44OV44Kh44Kk44Or44K344K544OG44Og44Gv44Ki44Kv44K744K55LiN5Y+v6IO944Gn44GZ44CCIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiMgVGhlIGZvbGxvd2luZyBpcyB0aGUgcGFyc2FibGUgZm9ybWF0LCB3aGljaCBjYW4gYmUgZmVkIHRvIG90aGVyXG4iCisiIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRFxuIgorIiMgc3RhcnRpbmcgZnJvbSB6ZXJvLlxuIgorIiMgQ1BVLENvcmUsU29ja2V0LE5vZGUiCittc2dzdHIgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKKyMsIGZ1enp5Cittc2dpZCAiQ1BVIG9wLW1vZGUocyk6IgorbXNnc3RyICJDUFXjgr3jgrHjg4Pjg4jmlbA6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICLjgrPjgqLjgYLjgZ/jgorjga7jgrnjg6zjg4Pjg4nmlbA6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICLjgr3jgrHjg4Pjg4jjgYLjgZ/jgorjga7jgrPjgqLmlbA6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjcKK21zZ2lkICJDUFUgc29ja2V0KHMpOiIKK21zZ3N0ciAiQ1BV44K944Kx44OD44OI5pWwOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMxCittc2dpZCAiTlVNQSBub2RlKHMpOiIKK21zZ3N0ciAiTlVNQeODjuODvOODiToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMworbXNnaWQgIlZlbmRvciBJRDoiCittc2dzdHIgIuODmeODs+ODgOODvElEOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM1Cittc2dpZCAiQ1BVIGZhbWlseToiCittc2dzdHIgIkNQVeODleOCoeODn+ODquODvDoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAi44Oi44OH44OrOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICLjgrnjg4bjg4Pjg5Tjg7PjgrA6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDEKK21zZ2lkICJDUFUgTUh6OiIKK21zZ3N0ciAiQ1BVIE1IejoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIuS7ruaDs+WMljoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAi44OP44Kk44OR44O844OQ44Kk44K244O844OZ44Oz44OA44O8OiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUwCittc2dpZCAiVmlydHVhbGl6YXRpb24gdHlwZToiCittc2dzdHIgIuS7ruaDs+WMluOCv+OCpOODlzoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjYWNoZToiCittc2dzdHIgIiVzIOOCreODo+ODg+OCt+ODpToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbl1cbiIKK21zZ3N0ciAi5L2/44GE5pa5OiAlcyBb44Kq44OX44K344On44OzXVxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjkKK21zZ2lkICIiCisiQ1BVIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBoZWxwZXJcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgIHVzYWdlIGluZm9ybWF0aW9uXG4iCisiICAtcCwgLS1wYXJzZSAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0LlxuIgorIiAgLXMsIC0tc3lzcm9vdCAgdXNlIHRoZSBkaXJlY3RvcnkgYXMgYSBuZXcgc3lzdGVtIHJvb3QuXG4iCittc2dzdHIgIiIKKyJDUFUg44Ki44O844Kt44OG44Kv44OB44Oj5oOF5aCx44OY44Or44OR44O8XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICDkvb/jgYTmlrnjga7mg4XloLHjgpLooajnpLrjgZnjgotcbiIKKyIgIC1wLCAtLXBhcnNlICAgIOmAmuW4uOOBruWHuuWKm+ODleOCqeODvOODnuODg+ODiOOBruS7o+OCj+OCiuOBq+ino+aekOOBl+OChOOBmeOBhOW9ouW8j+OBp+WHuuWKm+OBmSIKKyLjgovjgIJcbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIOaWsOOBl+OBhOOCt+OCueODhuODoOODq+ODvOODiOOBqOOBl+OBpuOBk+OBruODh+OCo+ODrOOCr+ODiOODquOCkuS9v+OBhuOAglxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgIuOCqOODqeODvDogJXPjgbjkvZzmpa3jg4fjgqPjg6zjgq/jg4jjg6rjgpLlpInmm7TjgZnjgovjgIIgIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc3Cittc2dpZCAidXNhZ2U6IHJkZXYgWyAtcnYgXSBbIC1vIE9GRlNFVCBdIFsgSU1BR0UgWyBWQUxVRSBbIE9GRlNFVCBdIF0gXSIKK21zZ3N0ciAiIgorIuS9v+OBhOaWuTogcmRldiBbIC1ydiBdIFsgLW8g44Kq44OV44K744OD44OIIF0gWyDjgqTjg6Hjg7zjgrggWyDlgKQgWyDjgqrjg5Xjgrvjg4Pjg4ggXSBdIF0iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzgKK21zZ2lkICIiCisiICByZGV2IC9kZXYvZmQwICAob3IgcmRldiAvbGludXgsIGV0Yy4pIGRpc3BsYXlzIHRoZSBjdXJyZW50IFJPT1QgZGV2aWNlIgorbXNnc3RyICIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikg54++5Zyo44Gu44Or44O844OI44OH44OQ44Kk44K544KS6KGo56S6IgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc5Cittc2dpZCAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHNldHMgUk9PVCB0byAvZGV2L2hkYTIiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICDjg6vjg7zjg4jjgpIgL2Rldi9oZGEyIOOBq+ioreWumiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIOODq+ODvOODiOODleODqeOCsOOCkuioreWumiAo6Kqt6L685bCC55So54q25oWLKSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MQorbXNnaWQgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBzZXQgdGhlIFJBTURJU0sgc2l6ZSIKK21zZ3N0ciAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIFJBTSDjg4fjgqPjgrnjgq/jgrXjgqTjgrrjgpLoqK3lrpoiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODIKK21zZ2lkICIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBib290dXAgVklERU9NT0RFIgorbXNnc3RyICIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAg44OW44O844OI5pmC44Gu44OT44OH44Kq44Oi44O844OJ44KS6Kit5a6aIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgzCittc2dpZCAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHVzZSB0aGUgYnl0ZSBvZmZzZXQgTiIKK21zZ3N0ciAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIOODkOOCpOODiOOCquODleOCu+ODg+ODiCBOIOOCkuWIqeeUqCIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICByZGV2IC1SIOOBqOWQjOOBmCIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NQorbXNnaWQgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXIiCittc2dzdHIgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICByZGV2IC1yIOOBqOWQjOOBmCIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICByZGV2IC12IOOBqOWQjOOBmCIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisi5rOo5oSPOiDjg5Pjg4fjgqrjg6Ljg7zjg4njga86IC0zPeWwi+OBreOCiywgLTI95ouh5by1LCAtMT3pgJrluLhWZ2EsIDE944Kt44O8MSwgMj3jgq3jg7wyLC4uLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4OAorbXNnaWQgIiAgICAgIHVzZSAtUiAxIHRvIG1vdW50IHJvb3QgcmVhZG9ubHksIC1SIDAgZm9yIHJlYWQvd3JpdGUuIgorbXNnc3RyICIiCisiICAgICAg44Or44O844OI44KS6Kqt6L685bCC55So44Oe44Km44Oz44OI44GZ44KL44Gr44GvIC1SIDEg44KS44CBLVIgMCDjgafoqq3jgb/mm7jjgY3jg57jgqbjg7Pjg4jjgIIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAi44Kr44Oz44Oe44KS5qyg44GE44Gm44GE44G+44GZIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo3MiB0ZXh0LXV0aWxzL21vcmUuYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAi44Oh44Oi44Oq44GM6Laz44KK44G+44Gb44KTIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogXCIlcyBbb3B0aW9uc11cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChkZWZhdWx0czogXCIlc1wiIGFuZFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAoZGVmYXVsdDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgc2V0IHRoZSBwcm9maWxpbmcgbXVsdGlwbGllciB0byA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorIlx0IC12ICAgICAgICAgICAgcHJpbnQgdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICBwcmludCBhbGwgc3ltYm9scywgZXZlbiBpZiBjb3VudCBpcyAwXG4iCisiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgIHJlc2V0IGFsbCB0aGUgY291bnRlcnMgKHJvb3Qgb25seSlcbiIKKyJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorIlx0IC1WICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorbXNnc3RyICIiCisiJXM6IOS9v+OBhOaWuTogXCIlcyBb44Kq44OX44K344On44OzXVxuIgorIlx0IC1tIDzjg57jg4Pjg5fjg5XjgqHjgqTjg6s+ICjliJ3mnJ/lgKQgPSBcIiVzXCIg44GoKVxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPOODl+ODreODleOCoeOCpOODqz4gICAo5Yid5pyf5YCkID0gXCIlc1wiKVxuIgorIlx0IC1NIDzlgI3mlbA+ICAgICAgICAgICDjg5fjg63jg5XjgqHjgqTjg6vlkajmnJ/lgI3mlbDjgpIgPOWAjeaVsD4g44Gr6Kit5a6aXG4iCisiXHQgLWkgICAgICAgICAgICAgICAgICDjgrXjg7Pjg5fjg6rjg7PjgrDjgrnjg4bjg4Pjg5fjga7mg4XloLHjgavjgaTjgYTjgabjga7jgb/ooajnpLpcbiIKKyJcdCAtdiAgICAgICAgICAgICAgICAgIOips+e0sOaDheWgseOCkuihqOekulxuIgorIlx0IC1hICAgICAgICAgICAgICAgICAg44Kr44Km44Oz44OI44GMIDAg44Gn44KC44CB44GZ44G544Gm44Gu44K344Oz44Oc44Or44KS6KGo56S6XG4iCisiXHQgLWIgICAgICAgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgICAgICAgIOOBmeOBueOBpuOBruOCq+OCpuODs+OCv+OCkuODquOCu+ODg+ODiOOBmeOCiyAocm9vdCDjga7jgb8pXG4iCisiXHQgLW4gICAgICAgICAgICAgICAgICDjg5DjgqTjg4jjgqrjg7zjg4Djga7oh6rli5XmpJznn6XjgpLnhKHlirnljJbjgZnjgotcbiIKKyJcdCAtViAgICAgICAgICAgICAgICAgIOODkOODvOOCuOODp+ODs+aDheWgseOCkuihqOekuuOBl+OBpue1guS6huOBmeOCi1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZHByb2ZpbGU6IGVycm9yIHdyaXRpbmcgJXM6ICVzXG4iCittc2dzdHIgInJlYWRwcm9maWxlOiAlcyDjgbjjga7mm7jjgY3ovrzjgb/jgqjjg6njg7w6ICVzXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyByZXZlcnNlZCBieXRlIG9yZGVyLiBVc2UgLW4gdG8gZm9yY2UgbmF0aXZlIGJ5dGUgb3JkZXIuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6Mjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCittc2dzdHIgIuOCteODs+ODl+ODquODs+OCsOOCueODhuODg+ODlzogJWlcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzA1IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMoJWkpOiB3cm9uZyBtYXAgbGluZVxuIgorbXNnc3RyICIlczogJXMoJWkpOiDplpPpgZXjgaPjgZ/jg57jg4Pjg5fooYxcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIFwiX3N0ZXh0XCIgaW4gJXNcbiIKK21zZ3N0ciAiJXM6ICVzIOOBqyBcIl9zdGV4dFwiIOOBjOimi+OBpOOBi+OCiuOBvuOBm+OCk1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIlczog44OX44Ot44OV44Kh44Kk44Or44Ki44OJ44Os44K544GM56+E5Zuy5aSW44Gn44GZ44CC6ZaT6YGV44Gj44GfIG1hcCDjg5XjgqHjgqTjg6s/XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjQxMgorbXNnaWQgInRvdGFsIgorbXNnc3RyICLlkIjoqIgiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5IFstcHwtLXBpZF0gcGlkICBbLi4uIHBpZF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC1nfC0tcGdycCBwZ3JwIFsuLi4gcGdycF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC11fC0tdXNlciB1c2VyIFsuLi4gdXNlcl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi5L2/44GE5pa5OlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSBbLXB8LS1waWRdIHBpZCBbLi4uIHBpZF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC1nfC0tcGdycCBwZ3JwIFsuLi4gcGdycF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC11fC0tdXNlciB1c2VyIFsuLi4gdXNlcl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlIGZyb20gJXNcbiIKK21zZ3N0ciAicmVuaWNlIGZyb20gJXNcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiB1bmtub3duIHVzZXJcbiIKK21zZ3N0ciAicmVuaWNlOiAlczog55+l44KJ44Gq44GE44Om44O844K244Gn44GZXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IOS4jeato+OBquWApOOBp+OBmVxuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTUyIHN5cy11dGlscy9yZW5pY2UuYzoxNjQKK21zZ2lkICJnZXRwcmlvcml0eSIKK21zZ3N0ciAiZ2V0cHJpb3JpdHkiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTcKK21zZ2lkICJzZXRwcmlvcml0eSIKK21zZ3N0ciAic2V0cHJpb3JpdHkiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQ6IG9sZCBwcmlvcml0eSAlZCwgbmV3IHByaW9yaXR5ICVkXG4iCittc2dzdHIgIiVkOiDlj6TjgYTlhKrlhYjluqbjga8gJWTjgIHmlrDjgZ/jgarlhKrlhYjluqbjga8gJWQg44Gn44GZXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyIgICAgLWQgfCAtLWRldmljZSA8ZGV2aWNlPiAgICBzZWxlY3QgcnRjIGRldmljZSAocnRjMHxydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICBSVEMgdXNlcyBsb2NhbCB0aW1lem9uZVxuIgorIiAgICAtbSB8IC0tbW9kZSAgICAgICAgICAgICAgIHN0YW5kYnl8bWVtfC4uLiBzbGVlcCBtb2RlXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxzZWNvbmRzPiAgc2Vjb25kcyB0byBzbGVlcFxuIgorIiAgICAtdCB8IC0tdGltZSA8dGltZV90PiAgICAgIHRpbWUgdG8gd2FrZVxuIgorIiAgICAtdSB8IC0tdXRjICAgICAgICAgICAgICAgIFJUQyB1c2VzIFVUQ1xuIgorIiAgICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgIHZlcmJvc2UgbWVzc2FnZXNcbiIKKyIgICAgLVYgfCAtLXZlcnNpb24gICAgICAgICAgICBzaG93IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorIuS9v+OBhOaWuTogJXMgW+OCquODl+OCt+ODp+ODs11cbiIKKyIgICAgLWQgfCAtLWRldmljZSA844OH44OQ44Kk44K5PiAgcnRjIOODh+ODkOOCpOOCueOCkumBuOaKnuOBmeOCiyAocnRjMHxydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICDjg63jg7zjgqvjg6vmmYLplpPjgajjgZfjgaYgUlRDIOOCkuS9v+OBhlxuIgorIiAgICAtbSB8IC0tbW9kZSAgICAgICAgICAgICAgIHN0YW5kYnl8bWVtfC4uLiBzbGVlcCBtb2RlXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxzZWNvbmRzPiAg5oyH5a6a56eS44K544Oq44O844OX44GZ44KLXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAg44Oh44OD44K744O844K444KS6KGo56S644GZ44KLXG4iCisiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAg44OQ44O844K444On44Oz44KS6KGo56S644GZ44KLXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0NworbXNnaWQgInJlYWQgc3lzdGVtIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICJydGPmmYLplpPjgpLlpInmj5vjgZnjgosiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI0Cittc2dpZCAic2V0IHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyOAorbXNnaWQgImVuYWJsZSBydGMgYWxhcm0iCittc2dzdHIgInJ0Y+OCouODqeODvOODoOOCkuacieWKueOBq+OBmeOCiyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMzIKK21zZ2lkICJzZXQgcnRjIHdha2UgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVucmVjb2duaXplZCBzdXNwZW5kIHN0YXRlICclcydcbiIKK21zZ3N0ciAiJXM6IOiqjeitmOOBp+OBjeOBquOBhOOCteOCueODmuODs+ODieeKtuaFiyAnJXMnXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBpbnRlcnZhbCAlcyBzZWNvbmRzXG4iCittc2dzdHIgIuS4jeato+OBquOCreODvCIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiDkuI3mraPjgaogdGltZV90IOWApCAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIlczog44OQ44O844K444On44OzICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhc3N1bWluZyBSVEMgdXNlcyBVVEMgLi4uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgVVRDIHRpbWUuXG4iCittc2dzdHIgIlVUQyDmmYLplpPjgpLkvb/jgYTjgb7jgZnjgIJcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgbG9jYWwgdGltZS5cbiIKK21zZ3N0ciAi44Ot44O844Kr44Or5pmC6ZaT44KS5L2/44GE44G+44GZ44CCXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBtdXN0IHByb3ZpZGUgd2FrZSB0aW1lXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MTcKK21zZ2lkICJtYWxsb2MoKSBmYWlsZWQiCittc2dzdHIgIm1hbGxvYygpIOOBq+WkseaVlyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgZW5hYmxlZCBmb3Igd2FrZXVwIGV2ZW50c1xuIgorbXNnc3RyICIlczogJXMg44GvIGxwIOODh+ODkOOCpOOCueOBp+OBr+OBguOCiuOBvuOBm+OCk+OAglxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWtldXAgZnJvbSBcIiVzXCIgdXNpbmcgJXMgYXQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIlczogJXMg44Gu5ZCN5YmN44KSICVzIOOBq+WkieabtOOBp+OBjeOBvuOBm+OCkzogJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0OTYKK21zZ2lkICJydGMgcmVhZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjUwNQorbXNnaWQgImRpc2FibGUgcnRjIGFsYXJtIGludGVycnVwdCIKK21zZ3N0ciAicnRj44Ki44Op44O844Og44Gu5Ymy44KK6L6844G/44KS54Sh5Yq544Gr44GZ44KLIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGluZyBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzJXMgW29wdGlvbnNdIFtwcm9ncmFtIFtwcm9ncmFtIGFyZ3VtZW50c11dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIuS9v+OBhOaWuTogJXMlcyBbb3B0aW9uc10gW3Byb2dyYW0gW3Byb2dyYW0gYXJndW1lbnRzXV1cbiIKKyJcbiIKKyLjgqrjg5fjgrfjg6fjg7M6XG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBzYXlzIHdoYXQgb3B0aW9ucyBhcmUgYmVpbmcgc3dpdGNoZWQgb25cbiIKKyIgLVIsIC0tYWRkci1uby1yYW5kb21pemUgIGRpc2FibGVzIHJhbmRvbWl6YXRpb24gb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyAiCisic3BhY2VcbiIKKyIgLUYsIC0tZmRwaWMtZnVuY3B0cnMgICAgIG1ha2VzIGZ1bmN0aW9uIHBvaW50ZXJzIHBvaW50IHRvIGRlc2NyaXB0b3JzXG4iCisiIC1aLCAtLW1tYXAtcGFnZS16ZXJvICAgICB0dXJucyBvbiBNTUFQX1BBR0VfWkVST1xuIgorIiAtTCwgLS1hZGRyLWNvbXBhdC1sYXlvdXQgY2hhbmdlcyB0aGUgd2F5IHZpcnR1YWwgbWVtb3J5IGlzIGFsbG9jYXRlZFxuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgdHVybnMgb24gUkVBRF9JTVBMSUVTX0VYRUNcbiIKKyIgLUIsIC0tMzJiaXQgICAgICAgICAgICAgIHR1cm5zIG9uIEFERFJfTElNSVRfMzJCSVRcbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgIHR1cm5zIG9uIFNIT1JUX0lOT0RFXG4iCisiIC1TLCAtLXdob2xlLXNlY29uZHMgICAgICB0dXJucyBvbiBXSE9MRV9TRUNPTkRTXG4iCisiIC1ULCAtLXN0aWNreS10aW1lb3V0cyAgICB0dXJucyBvbiBTVElDS1lfVElNRU9VVFNcbiIKKyIgLTMsIC0tM2diICAgICAgICAgICAgICAgIGxpbWl0cyB0aGUgdXNlZCBhZGRyZXNzIHNwYWNlIHRvIGEgbWF4aW11bSBvZiAzICIKKyJHQlxuIgorIiAgICAgLS00Z2IgICAgICAgICAgICAgICAgaWdub3JlZCAoZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seSlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHNldGFyY2goOCkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLoqbPntLDmg4XloLHjga/jgIFzZXRhcmNoKDgpIOOCkueiuuiqjeOBl+OBpuOBj+OBoOOBleOBhOOAglxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVzXG4iCisiVHJ5IGAlcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiJXM6ICVzXG4iCisi6Kmz57Sw5oOF5aCx44KS5b6X44KL44Gr44Gv44CBYCVzIC0taGVscCcg44KS5a6f6KGM44GX44Gm5LiL44GV44GE44CCXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjE1IHN5cy11dGlscy9zZXRhcmNoLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIgJXM6IOiqjeitmOOBp+OBjeOBquOBhOOCouODvOOCreODhuOCr+ODgeODoyIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKK21zZ2lkICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK21zZ3N0ciAi5byV5pWw44GM5Y2B5YiG44Gn44Gv44GC44KK44G+44Gb44KTIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiJXMg44Gu44OR44O844OG44Kj44K344On44Oz5pu444GN6L6844G/44Gr5aSx5pWXXG4iCisKKyM6IHN5cy11dGlscy9zZXRzaWQuYzoyNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIKK21zZ3N0ciAi5L2/44GE5pa5OiAlcyDjg5fjg63jgrDjg6njg6AgW+W8leaVsCAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisi5L2/44GE5pa5OiAlcyA8ZGV2aWNlPiBbIC1pIDxJUlE+IHwgLXQgPFRJTUU+IHwgLWMgPENIQVJTPiB8IC13IDxXQUlUPiB8IFxuIgorIiAgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6OTEKK21zZ2lkICJtYWxsb2MgZXJyb3IiCittc2dzdHIgIm1hbGxvYyDjgqjjg6njg7wiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIlczog5LiN5q2j44Gq5YCk44Gn44GZXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBhbiBscCBkZXZpY2UuXG4iCittc2dzdHIgIiVzOiAlcyDjga8gbHAg44OH44OQ44Kk44K544Gn44Gv44GC44KK44G+44Gb44KT44CCXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3RhdHVzIGlzICVkIgorbXNnc3RyICIlcyDjga7nirbmhYvjga8gJWQg44Gn44GZIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgYnVzeSIKK21zZ3N0ciAiLCDjg5Pjgrjjg7wiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCDmupblgpnjgafjgY3jgabjgYTjgb7jgZkiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiwg55So57SZ44GM44GC44KK44G+44Gb44KTIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb24tbGluZSIKK21zZ3N0ciAiLCDjgaTjgarjgYzjgaPjgabjgYTjgb7jgZkiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCDjgqjjg6njg7wiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAiTFBHRVRJUlEg44Ko44Op44O8IgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIlcyDjga8gSVJRICVkIOOCkuS9v+OBhOOBvuOBmVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMg44Gv44Od44O844Oq44Oz44Kw44KS6KGM44GE44G+44GZXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgIuS9v+OBhOaWuTogJXMgW+OCquODl+OCt+ODp+ODs10gPOODl+ODreOCsOODqeODoD4gW+W8leaVsCAuLi5dXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjAKK21zZ2lkICIiCisiUnVuIHByb2dyYW0gd2l0aCBzb21lIG5hbWVzcGFjZXMgdW5zaGFyZWQgZnJvbSBwYXJlbnRcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgdW5zaGFyZSBtb3VudHMgbmFtZXNwYWNlXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIFVUUyBuYW1lc3BhY2UgKGhvc3RuYW1lIGV0YylcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorIiAgLW4sIC0tbmV0ICAgICAgICAgdW5zaGFyZSBuZXR3b3JrIG5hbWVzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1bnNoYXJlKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisi6Kmz57Sw5oOF5aCx44Gv44CBdW5zaGFyZSgxKSDjgpLnorroqo3jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTQKK21zZ2lkICJ1bnNoYXJlIGZhaWxlZCIKK21zZ3N0ciAidW5zaGFyZeOBq+WkseaVlyIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhlYyAlcyBmYWlsZWQiCittc2dzdHIgImV4ZWMgJXMg44Gr5aSx5pWXIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IGJhZCAtbCBhcmd1bWVudCAlcy5cbiIKK21zZ3N0ciAiY29sOiDkuI3mraPjgaogLWwg44Gu5byV5pWwICVzIOOBp+OBmeOAglxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sIFstYmZweF0gWy1sIG5saW5lXVxuIgorbXNnc3RyICLkvb/jgYTmlrk6IGNvbCBbLWJmcHhdIFstbCDooYzmlbBdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd3JpdGUgZXJyb3IuXG4iCittc2dzdHIgImNvbDog5pu444GN6L6844G/44Ko44Op44O844CCXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd2FybmluZzogY2FuJ3QgYmFjayB1cCAlcy5cbiIKK21zZ3N0ciAiY29sOiDorablkYo6ICVz44OQ44OD44Kv44Ki44OD44OX44Gn44GN44G+44Gb44KT44CCXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAicGFzdCBmaXJzdCBsaW5lIgorbXNnc3RyICLmnIDliJ3jga7ooYzku6XliY3jgpIiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAiLS0gbGluZSBhbHJlYWR5IGZsdXNoZWQiCittc2dzdHIgIuihjOOBr+aXouOBq+abuOOBjei+vOOBvuOCjOOBn+OBruOBpyIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICLkvb/jgYTmlrk6ICVzIFsgLSBdIFsgLTIgXSBbIOODleOCoeOCpOODqyAuLi4gXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgIuihjOOBjOmVt+OBmeOBjuOBvuOBmSIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzozNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbHVtbiBbLXR4XSBbLWMgY29sdW1uc10gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICLkvb/jgYTmlrk6IGNvbHVtbiBbLXR4XSBbLWMg44Kr44Op44Og5pWwXSBb44OV44Kh44Kk44OrIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgbGVuZ3RoIHZhbHVlLlxuIgorbXNnc3RyICJoZXhkdW1wOiDkuI3mraPjgarplbfjgZXjga7lgKTjgIJcbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgc2tpcCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDog5LiN5q2j44Gq44K544Kt44OD44OX5YCk44Gn44GZ44CCXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmbXRdIFstZiBmbXRfZmlsZV0gWy1uIGxlbmd0aF0gWy1zIHNraXBdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW+ODleOCoeOCpCIKKyLjg6sgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSBuYW1lMSBuYW1lMiAuLi5cbiIKK21zZ3N0ciAi5L2/44GE5pa5OiAlcyBbLWRmbHBjc3VdIFsr6KGM55Wq5Y+3IHwgKy/jg5Hjgr/jg7zjg7NdIOWQjeWJjTEg5ZCN5YmNMiAuLi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICLlh7rlipvjg5Djg4Pjg5XjgqHjga7norrkv53jgavlpLHmlZfjgZfjgb7jgZfjgZ8iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBvcHRpb24gXCItJWNcIlxuIgorbXNnc3RyICIlczog5LiN5piO44Gq44Kq44OX44K344On44OzIFwiLSVjXCJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczog44OH44Kj44Os44Kv44OI44OqICoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKioqKioqICVzOiBOb3QgYSB0ZXh0IGZpbGUgKioqKioqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKioqKioqICVzOiDjg4bjgq3jgrnjg4jjg5XjgqHjgqTjg6vjgafjga/jgYLjgorjgb7jgZvjgpMgKioqKioqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIltVc2UgcSBvciBRIHRvIHF1aXRdIgorbXNnc3RyICJb57WC5LqG44GZ44KL44Gr44GvIHEg44GLIFEg44KS5oq844GX44Gm5LiL44GV44GEXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tTW9yZS0tIgorbXNnc3RyICItLee2muOBkeOCiy0tIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiKE5leHQgZmlsZTogJXMpIgorbXNnc3RyICIo5qyh44Gu44OV44Kh44Kk44OrOiAlcykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIlvjgrnjg5rjg7zjgrnjgq3jg7zjgpLmirzjgZnjgajntprjgY3jgIEncScg44Gn57WC5LqG44CCXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi4gJWQg44Oa44O844K45oi744KK44G+44GZIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA4Cittc2dpZCAiLi4uYmFjayAxIHBhZ2UiCittc2dzdHIgIi4uLiAxIOODmuODvOOCuOaIu+OCiuOBvuOBmSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICIuLi4x6KGM6aOb44Gw44GX44G+44GZIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICIuLi4lZCDooYzpo5vjgbDjgZfjgb7jgZkiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioq5oi744KLKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMjgKK21zZ2lkICIiCisiXG4iCisiTW9zdCBjb21tYW5kcyBvcHRpb25hbGx5IHByZWNlZGVkIGJ5IGludGVnZXIgYXJndW1lbnQgay4gIERlZmF1bHRzIGluICIKKyJicmFja2V0cy5cbiIKKyJTdGFyICgqKSBpbmRpY2F0ZXMgYXJndW1lbnQgYmVjb21lcyBuZXcgZGVmYXVsdC5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzM1Cittc2dpZCAiIgorIjxzcGFjZT4gICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdXG4iCisieiAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV0qXG4iCisiPHJldHVybj4gICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbMV0qXG4iCisiZCBvciBjdHJsLUQgICAgICAgICAgICAgU2Nyb2xsIGsgbGluZXMgW2N1cnJlbnQgc2Nyb2xsIHNpemUsIGluaXRpYWxseSAxMV0qXG4iCisicSBvciBRIG9yIDxpbnRlcnJ1cHQ+ICAgRXhpdCBmcm9tIG1vcmVcbiIKKyJzICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBsaW5lcyBvZiB0ZXh0IFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyJiIG9yIGN0cmwtQiAgICAgICAgICAgICBTa2lwIGJhY2t3YXJkcyBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyInICAgICAgICAgICAgICAgICAgICAgICBHbyB0byBwbGFjZSB3aGVyZSBwcmV2aW91cyBzZWFyY2ggc3RhcnRlZFxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBsaW5lIG51bWJlclxuIgorIi88cmVndWxhciBleHByZXNzaW9uPiAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgcmVndWxhciBleHByZXNzaW9uIFsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgbGFzdCByLmUgWzFdXG4iCisiITxjbWQ+IG9yIDohPGNtZD4gICAgICAgRXhlY3V0ZSA8Y21kPiBpbiBhIHN1YnNoZWxsXG4iCisidiAgICAgICAgICAgICAgICAgICAgICAgU3RhcnQgdXAgL3Vzci9iaW4vdmkgYXQgY3VycmVudCBsaW5lXG4iCisiY3RybC1MICAgICAgICAgICAgICAgICAgUmVkcmF3IHNjcmVlblxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBuZXh0IGZpbGUgWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIHByZXZpb3VzIGZpbGUgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXJcbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICBSZXBlYXQgcHJldmlvdXMgY29tbWFuZFxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0MDQgdGV4dC11dGlscy9tb3JlLmM6MTQwOQorIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3MgJ2gnIGZvciBpbnN0cnVjdGlvbnMuXSIKK21zZ3N0ciAiWydoJyDjgq3jg7zjgafmk43kvZzmlrnms5VdIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQzCisjLCBjLWZvcm1hdAorbXNnaWQgIlwiJXNcIiBsaW5lICVkIgorbXNnc3RyICJcIiVzXCIgJWQg6KGMIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJb6Z2e44OV44Kh44Kk44OrXSAlZCDooYwiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiAg5aSn44GN44GZ44GOXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIuLi7po5vjgbDjgZfjgabjgYTjgb7jgZlcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYwNQorbXNnaWQgIlJlZ3VsYXIgZXhwcmVzc2lvbiBib3RjaCIKK21zZ3N0ciAi5q2j6KaP6KGo54++44GM44Oe44K644GEIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjEzCittc2dpZCAiIgorIlxuIgorIlBhdHRlcm4gbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKyJcbiIKKyLjg5Hjgr/jg7zjg7PjgYzopovjgaTjgYvjgorjgb7jgZvjgpNcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxNiB0ZXh0LXV0aWxzL3BnLmM6MTEyNyB0ZXh0LXV0aWxzL3BnLmM6MTI3OAorbXNnaWQgIlBhdHRlcm4gbm90IGZvdW5kIgorbXNnc3RyICLjg5Hjgr/jg7zjg7PjgYzopovjgaTjgYvjgorjgb7jgZvjgpMiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2NzcKK21zZ2lkICJjYW4ndCBmb3JrXG4iCittc2dzdHIgIuWtkOODl+ODreOCu+OCueOCkui1t+WLleOBp+OBjeOBvuOBm+OCk1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzE2Cittc2dpZCAiIgorIlxuIgorIi4uLlNraXBwaW5nICIKK21zZ3N0ciAiIgorIlxuIgorIi4uLumjm+OBsOOBl+OBpuOBhOOBvuOBmSAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiLi4u44OV44Kh44Kk44Or44KS6aOb44Gw44GX44G+44GZICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMgorbXNnaWQgIi4uLlNraXBwaW5nIGJhY2sgdG8gZmlsZSAiCittc2dzdHIgIi4uLuODleOCoeOCpOODq+OBq+aIu+OCiuOBvuOBmSAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMDAKK21zZ2lkICJMaW5lIHRvbyBsb25nIgorbXNnc3RyICLooYzjgYzplbfjgZnjgY7jgb7jgZkiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwNDMKK21zZ2lkICJObyBwcmV2aW91cyBjb21tYW5kIHRvIHN1YnN0aXR1dGUgZm9yIgorbXNnc3RyICLlpKfkvZPjga7jgZ/jgoHjga7ku6XliY3jga7jgrPjg57jg7Pjg4njgYzjgYLjgorjgb7jgZvjgpMiCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IG9kKDEpIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGhleGR1bXAoMSkuXG4iCittc2dzdHIgIm9kOiBvZCgxKSDjga8gaGV4ZHVtcCgxKSDjgavlj5bjgaPjgabku6Pjgo/jgonjgozjgb7jgZfjgZ/jgIJcbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJvZDogaGV4ZHVtcCgxKSBjb21wYXRpYmlsaXR5IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLSVjIG9wdGlvbiVzXG4iCittc2dzdHIgIm9kOiBoZXhkdW1wKDEpIOS6kuaPm+OBryAtJWMg44Kq44OX44K344On44Oz44KS44K144Od44O844OI44GX44G+44Gb44KTJXNcbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzNAorbXNnaWQgIjsgc2VlIHN0cmluZ3MoMSkuIgorbXNnc3RyICIgLS0gc3RyaW5nKDEpIOOCkuWPgueFp+OAgiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgImhleGR1bXA6ICVzIOOCkuiqreOCgeOBvuOBm+OCk+OAglxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDog6KGM44GM6ZW344GZ44GO44G+44GZ44CCXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDog6KSH5pWw44Gu5paH5a2X44Gu44OQ44Kk44OI5pWw44Kr44Km44Oz44OIXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDog5paH5a2XICVzIOOBruWkieaPm+OBq+OBpOOBhOOBpuS4jeato+OBquODkOOCpOODiOaVsOOBruOCq+OCpuODs+ODiOOCkuihjOOBhOOBvuOBl+OBn+OAglxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgImhleGR1bXA6ICUlcyDjga/nsr7luqbjgYvjgIHjg5DjgqTjg4jmlbDjgpLopoHmsYLjgZfjgb7jgZnjgIJcbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDog5LiN5q2j44Gq5pu45byPIHslc31cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDog5LiN5q2j44Gq5aSJ5o+b44Kt44Oj44Op44Kv44K/ICUlJXPjgIJcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NQorbXNnaWQgIiIKKyJBbGwgcmlnaHRzIHJlc2VydmVkLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyIgIGggICAgICAgICAgICAgICAgICAgICAgIHRoaXMgc2NyZWVuXG4iCisiICBxIG9yIFEgICAgICAgICAgICAgICAgICBxdWl0IHByb2dyYW1cbiIKKyIgIDxuZXdsaW5lPiAgICAgICAgICAgICAgIG5leHQgcGFnZVxuIgorIiAgZiAgICAgICAgICAgICAgICAgICAgICAgc2tpcCBhIHBhZ2UgZm9yd2FyZFxuIgorIiAgZCBvciBeRCAgICAgICAgICAgICAgICAgbmV4dCBoYWxmcGFnZVxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBsaW5lXG4iCisiICAkICAgICAgICAgICAgICAgICAgICAgICBsYXN0IHBhZ2VcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIHNlYXJjaCBmb3J3YXJkIGZvciByZWdleFxuIgorIiAgP3JlZ2V4PyBvciBecmVnZXheICAgICAgc2VhcmNoIGJhY2t3YXJkIGZvciByZWdleFxuIgorIiAgLiBvciBeTCAgICAgICAgICAgICAgICAgcmVkcmF3IHNjcmVlblxuIgorIiAgdyBvciB6ICAgICAgICAgICAgICAgICAgc2V0IHBhZ2Ugc2l6ZSBhbmQgZ28gdG8gbmV4dCBwYWdlXG4iCisiICBzIGZpbGVuYW1lICAgICAgICAgICAgICBzYXZlIGN1cnJlbnQgZmlsZSB0byBmaWxlbmFtZVxuIgorIiAgIWNvbW1hbmQgICAgICAgICAgICAgICAgc2hlbGwgZXNjYXBlXG4iCisiICBwICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBwcmV2aW91cyBmaWxlXG4iCisiICBuICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBuZXh0IGZpbGVcbiIKKyJcbiIKKyJNYW55IGNvbW1hbmRzIGFjY2VwdCBwcmVjZWRpbmcgbnVtYmVycywgZm9yIGV4YW1wbGU6XG4iCisiKzE8bmV3bGluZT4gKG5leHQgcGFnZSk7IC0xPG5ld2xpbmU+IChwcmV2aW91cyBwYWdlKTsgMTxuZXdsaW5lPiAoZmlyc3QgIgorInBhZ2UpLlxuIgorIlxuIgorIlNlZSBwZygxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjIyMworbXNnaWQgIk91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAi44Oh44Oi44Oq44GM6Laz44KK44G+44Gb44KTXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKyIlczog5L2/44GE5pa5OiAlcyBbLW51bWJlcl0gWy1wIHN0cmluZ10gWy1jZWZucnNdIFsrbGluZV0gWysvcGF0dGVybi9dIFvjg5XjgqHjgqQiCisi44OrXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IOOCquODl+OCt+ODp+ODs+OBr+W8leaVsOOCkuimgeaxguOBl+OBvuOBmSAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczog5LiN5q2j44Gq44Kq44OX44K344On44OzIC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzAKKyMsIGZ1enp5Cittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICIuLi7po5vjgbDjgZfjgabjgYTjgb7jgZlcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MgorIywgZnV6enkKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIuLi7po5vjgbDjgZfjgabjgYTjgb7jgZlcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM5NAorbXNnaWQgIk5vIG5leHQgZmlsZSIKK21zZ3N0ciAi5qyh44Gu44OV44Kh44Kk44Or44Gv44GC44KK44G+44Gb44KTIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk4CisjLCBmdXp6eQorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIumgmOWfn+OBjOWumue+qeOBleOCjOOBpuOBhOOBvuOBm+OCk1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6ICVzIOOBpyByZWFkIOOCqOODqeODvFxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmV4cGVjdGVkIEVPRiBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiDjg5XjgqHjgqTjg6slc+OBp+S6iOacn+OBl+OBquOBhOODleOCoeOCpOODq+OBrue1guerr1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTQwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBlcnJvciBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiAlcyDjgacgc2VlayDjgqjjg6njg7xcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBjcmVhdGUgdGVtcGZpbGVcbiIKK21zZ3N0ciAiJXM6IOS4gOaZguODleOCoeOCpOODq+OCkuS9nOaIkOOBp+OBjeOBvuOBm+OCk1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTA0NCB0ZXh0LXV0aWxzL3BnLmM6MTIxOSB0ZXh0LXV0aWxzL3BnLmM6MTI0NgorbXNnaWQgIlJFIGVycm9yOiAiCittc2dzdHIgIlJFIOOCqOODqeODvCIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMDEKK21zZ2lkICIoRU9GKSIKK21zZ3N0ciAiKEVPRikiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjI3IHRleHQtdXRpbHMvcGcuYzoxMjU0Cittc2dpZCAiTm8gcmVtZW1iZXJlZCBzZWFyY2ggc3RyaW5nIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICLplovjgZHjgb7jgZvjgpMiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzU4Cittc2dpZCAic2F2ZWQiCittc2dzdHIgIuS/neWtmOOBl+OBvuOBl+OBnyIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIjogIWNvbW1hbmTjga9yZmxhZ+ODouODvOODieOBp+OBr+ioseWPr+OBleOCjOOBvuOBm+OCk+OAglxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ5NworbXNnaWQgImZvcmsoKSBmYWlsZWQsIHRyeSBhZ2FpbiBsYXRlclxuIgorbXNnc3RyICJmb3JrKCkg44GM5aSx5pWX44GX44G+44GX44Gf44CB5b6M44Gn5a6f6KGM44GX55u044GX44Gm44GP44Gg44GV44GEXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNzA1Cittc2dpZCAiKE5leHQgZmlsZTogIgorbXNnc3RyICIo5qyh44Gu44OV44Kh44Kk44OrOiAiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTEzCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICLjg5Djg4Pjg5XjgqHnqbrplpPjgpLnorrkv53jgafjgY3jgb7jgZvjgpMiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiByZXYgW2ZpbGUgLi4uXVxuIgorbXNnc3RyICLkvb/jgYTmlrk6IHJldiBb44OV44Kh44Kk44OrIC4uLl1cbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjU4IHRleHQtdXRpbHMvdGFpbGYuYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiCittc2dzdHIgIlwiJXNcIuOCkuiqrei+vOOBv+eUqOOBq+mWi+OBkeOBvuOBm+OCkyIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjk2IHRleHQtdXRpbHMvdGFpbGYuYzoyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgXCIlc1wiIgorbXNnc3RyICJcIiVzXCLjgpJzdGF044Gn44GN44G+44Gb44KTIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgImluY29tcGxldGUgd3JpdGUgdG8gXCIlc1wiICh3cml0dGVuICV6ZCwgZXhwZWN0ZWQgJXpkKVxuIgorbXNnc3RyICIiCisiXCIlc1wiIOOBuOOBruabuOOBjei+vOOBv+OBjOWujOS6huOBl+OBvuOBm+OCkyAoJXpkIOabuOOBjei+vOOBv+WujOS6huOAgSV6ZCDmm7jjgY3ovrzjgb/kuojlrpopXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAobGltaXQgb2YgaW5vdGlmeSB3YXRjaGVzIHdhcyByZWFjaGVkKS4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiAlcyDjgpLplovjgZHjgb7jgZvjgpNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE5OSB0ZXh0LXV0aWxzL3RhaWxmLmM6MjAzCittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgIuS4jeato+OBquihjOaVsCIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICLkvb/jgYTmlrk6IHRhaWxmIFstbiBOIHwgLU5dIOODreOCsOODleOCoeOCpOODqyIKKworIzogdGV4dC11dGlscy91bC5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZmlsZS4uLlxuIgorbXNnc3RyICLkvb/jgYTmlrk6ICVzIFsgLWkgXSBbIC1056uv5pyrIF0g44OV44Kh44Kk44OrLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICJ0ZXJtaW5mbyDjga7oqq3jgb/ovrzjgb/kuK3jgavjg4jjg6njg5bjg6vnmbrnlJ8iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBlc2NhcGUgc2VxdWVuY2UgaW4gaW5wdXQ6ICVvLCAlb1xuIgorbXNnc3RyICLkuI3mmI7jgarjgqjjgrnjgrHjg7zjg5fjgrfjg7zjgrHjg7PjgrnjgYzlhaXlipvjgZXjgozjgb7jgZfjgZ86ICVvLCAlb1xuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIuXG4iCittc2dzdHIgIuODkOODg+ODleOCoeOBrueiuuS/neOBjOOBp+OBjeOBvuOBm+OCk+OAglxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIuWFpeWKm+ihjOOBjOmVt+OBmeOBjuOBvuOBmeOAglxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAi44OQ44OD44OV44Kh44KS5ouh5aSn44GZ44KL44Go44GN44Gr44Oh44Oi44Oq44GM6Laz44KK44Gq44GP44Gq44KK44G+44GX44Gf44CCXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstYiBTU1pdIFstdV0gRElTSyAgICAgQ2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorI34gIiAgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdIERJU0sgIExpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisjfiAiICAgICAgIGZkaXNrIC1zIFBBUlRJVElPTiAgICAgICAgICAgR2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyN+ICIgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICBHaXZlIGZkaXNrIHZlcnNpb25cbiIKKyN+ICJIZXJlIERJU0sgaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGIgb3IgL2Rldi9zZGFcbiIKKyN+ICJhbmQgUEFSVElUSU9OIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhN1xuIgorI34gIi11OiBnaXZlIFN0YXJ0IGFuZCBFbmQgaW4gc2VjdG9yIChpbnN0ZWFkIG9mIGN5bGluZGVyKSB1bml0c1xuIgorI34gIi1iIDIwNDg6IChmb3IgY2VydGFpbiBNTyBkaXNrcykgdXNlIDIwNDgtYnl0ZSBzZWN0b3JzXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLkvb/jgYTmlrk6IGZkaXNrIFstYiBTU1pdIFstdV0g44OH44Kj44K544KvICAgICDpoJjln5/jg4bjg7zjg5bjg6vjga7lpInmm7RcbiIKKyN+ICIgICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0g44OH44Kj44K544KvICDpoJjln5/jg4bjg7zjg5bjg6vjg6rjgrnjg4jjga7ooajnpLpcbiIKKyN+ICIgICAgICAgIGZkaXNrIC1zIOODkeODvOODhuOCo+OCt+ODp+ODsyAgICAgICAgICDjg5bjg63jg4Pjgq/jga7poJjln5/jgrXjgqTjgrrooajnpLpcbiIKKyN+ICIgICAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgICAgIGZkaXNrIOOBruODkOODvOOCuOODp+ODs+ihqOekulxuIgorI34gIuOBk+OBk+OBpyBg44OH44Kj44K544KvJyDjgajjga8gL2Rldi9oZGIg44KEIC9kZXYvc2RhIOOBruanmOOBquS9leOBi+OBruS6i+OBp+OBmVxuIgorI34gIuOBneOBl+OBpiBg6aCY5Z+fJyDjgajjga8gL2Rldi9oZGE3IOOBruanmOOBquS9leOBi+OBruS6i+OBp+OBmVxuIgorI34gIi11OiAo44K344Oq44Oz44OA44Gu5Luj44KP44KK44GrKeOCu+OCr+OCv+ODpuODi+ODg+ODiOOBrumWi+Wni+OAgee1gueCueOCkuS4juOBiOOBvuOBmVxuIgorI34gIi1iIDIwNDg6ICjjgYLjgovnqK7jga4gTU8g44OJ44Op44Kk44OW55So44GrKSAyMDQ4IOODkOOCpOODiOOBruOCu+OCr+OCv+OCteOCpOOCuuOCkuS9v+OBhOOBvuOBmVxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0gZGV2aWNlXG4iCisjfiAiRS5nLjogZmRpc2sgL2Rldi9oZGEgIChmb3IgdGhlIGZpcnN0IElERSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvc2RjICAoZm9yIHRoZSB0aGlyZCBTQ1NJIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9lZGEgIChmb3IgdGhlIGZpcnN0IFBTLzIgRVNESSBkcml2ZSlcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3JkL2MwZDAgIG9yOiBmZGlzayAvZGV2L2lkYS9jMGQwICAoZm9yIFJBSUQgZGV2aWNlcylcbiIKKyN+ICIgIC4uLlxuIgorI34gbXNnc3RyICIiCisjfiAi5L2/44GE5pa5OiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0g44OH44OQ44Kk44K5XG4iCisjfiAiICAg5L6LOiBmZGlzayAvZGV2L2hkYSAgKOS4gOeVquebruOBriBJREUg44OH44Kj44K544KvKVxuIgorI34gIiDlj4jjga86IGZkaXNrIC9kZXYvc2RjICAo5LiJ55Wq55uu44GuIFNDU0kg44OH44Kj44K544KvKVxuIgorI34gIiDlj4jjga86IGZkaXNrIC9kZXYvZWRhICAo5LiA55Wq55uu44GuIFBTLzIgRVNESSDjg4njg6njgqTjg5YpXG4iCisjfiAiIOWPiOOBrzogZmRpc2sgL2Rldi9yZC9jMGQwICDlj4jjga86IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChSQUlEIOODh+ODkOOCpOOCuSlcbiIKKyN+ICIgIC4uLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlxuIgorI34gIlRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIGZvciB0aGlzIGRpc2sgaXMgc2V0IHRvICVkLlxuIgorI34gIlRoZXJlIGlzIG5vdGhpbmcgd3Jvbmcgd2l0aCB0aGF0LCBidXQgdGhpcyBpcyBsYXJnZXIgdGhhbiAxMDI0LFxuIgorI34gImFuZCBjb3VsZCBpbiBjZXJ0YWluIHNldHVwcyBjYXVzZSBwcm9ibGVtcyB3aXRoOlxuIgorI34gIjEpIHNvZnR3YXJlIHRoYXQgcnVucyBhdCBib290IHRpbWUgKGUuZy4sIG9sZCB2ZXJzaW9ucyBvZiBMSUxPKVxuIgorI34gIjIpIGJvb3RpbmcgYW5kIHBhcnRpdGlvbmluZyBzb2Z0d2FyZSBmcm9tIG90aGVyIE9Tc1xuIgorI34gIiAgIChlLmcuLCBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJcbiIKKyN+ICLjgZPjga7jg4fjgqPjgrnjgq/jga7jgrfjg6rjg7Pjg4DmlbDjga8gJWQg44Gr6Kit5a6a44GV44KM44Gm44GE44G+44GZ44CCXG4iCisjfiAi6ZaT6YGV44GE44Gn44Gv44Gq44GE44Gu44Gn44GZ44GM44CBMTAyNCDjgpLotoXjgYjjgabjgYTjgovjgZ/jgoHjgIHku6XkuIvjga7loLTlkIhcbiIKKyN+ICLjgavllY/poYzjgpLnlJ/jgZjjgYbjgovkuovjgpLnorroqo3jgZfjgb7jgZfjgofjgYY6XG4iCisjfiAiMSkg44OW44O844OI5pmC44Gr5a6f6KGM44GZ44KL44K944OV44OI44Km44Kn44KiICjkvosuIOODkOODvOOCuOODp+ODs+OBjOWPpOOBhCBMSUxPKVxuIgorI34gIjIpIOWIpeOBriBPUyDjga7jg5bjg7zjg4jjgoTjg5Hjg7zjg4bjgqPjgrfjg6fjg7PkvZzmiJDjgr3jg5Xjg4hcbiIKKyN+ICIgICAo5L6LLiBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisKKyN+IG1zZ2lkICIjIHBhcnRpdGlvbiB0YWJsZSBvZiAlc1xuIgorI34gbXNnc3RyICIjICVzIOOBruODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODq1xuIgorCisjfiBtc2dpZCAiIgorI34gInVuaXQ6IHNlY3RvcnNcbiIKKyN+ICJcbiIKKyN+IG1zZ3N0ciAiIgorI34gInVuaXQ6IHNlY3RvcnNcbiIKKyN+ICJcbiIKKworI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICIg6ZaL5aeLPSU5bHUiCisKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAiLCDjgrXjgqTjgro9JTlsdSIKKworI34gbXNnaWQgIiwgYm9vdGFibGUiCisjfiBtc2dzdHIgIiwg44OW44O844OI5Y+v6IO9IgorCisjLCBmdXp6eQorI34gbXNnaWQgIkNsb2NrIGluIFVUQywgbm90IGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIuOCt+OCp+ODq+OCkuWkieabtOOBl+OBvuOBm+OCk+OBp+OBl+OBn+OAglxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBlcnJvcjogbGFiZWwgb25seSB3aXRoIHYxIHN3YXAgYXJlYVxuIgorI34gbXNnc3RyICIlczog44Ko44Op44O8OiDjgrnjg6/jg4Pjg5fjgpLmnInlirnjgavoqK3lrprjgZnjgovjgZ/jgoHjga7loLTmiYDjgYzjgarjgYTvvJ9cbiIKKworI34gbXNnaWQgImZhdGFsOiBmaXJzdCBwYWdlIHVucmVhZGFibGUiCisjfiBtc2dzdHIgIuiHtOWRveOCqOODqeODvDog5pyA5Yid44Gu44Oa44O844K444KS6Kqt6L6844KB44G+44Gb44KTIgorCisjfiBtc2dpZCAiIgorI34gIiVzOiBEZXZpY2UgJyVzJyBjb250YWlucyBhIHZhbGlkIFN1biBkaXNrbGFiZWwuXG4iCisjfiAiVGhpcyBwcm9iYWJseSBtZWFucyBjcmVhdGluZyB2MCBzd2FwIHdvdWxkIGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUuXG4iCisjfiAiTm8gc3dhcCB3YXMgY3JlYXRlZC4gSWYgeW91IHJlYWxseSB3YW50IHRvIGNyZWF0ZSB2MCBzd2FwIG9uIHRoYXQgIgorI34gImRldmljZSxcbiIKKyN+ICJ1c2UgdGhlIC1mIG9wdGlvbiB0byBmb3JjZSBpdC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiDjg4fjg5DjgqTjgrkgJyVzJyDjga/mraPluLjjgaogU3VuIOODh+OCo+OCueOCr+ODqeODmeODq+OCkuWQq+OCk+OBp+OBhOOBvuOBmeOAglxuIgorI34gIuOBk+OCjOOBr+OBiuOBneOCieOBjyB2MCDjgrnjg6/jg4Pjg5fjgpLkvZzjgovjgZPjgajjgYzjgYLjgarjgZ/jga7poJjln5/jg4bjg7zjg5bjg6vjgpLnoLTlo4rjgZfjgaZcbiIKKyN+ICLjgZfjgb7jgYbjgZPjgajjgpLmhI/lkbPjgZfjgb7jgZnjgILjgoLjgZfjgYLjgarjgZ/jgYzmnKzlvZPjgavjgZ3jga7jg4fjg5DjgqTjgrnjgasgdjAg44K544Ov44OD44OXXG4iCisjfiAi44KS5L2c5oiQ44GX44Gf44GR44KM44Gw44CBLWYg44Kq44OX44K344On44Oz44Gn5by36KaB44GX44Gm44GP44Gg44GV44GE44CCXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiDjgqvjg6zjg7Pjg4jjg4fjgqPjg6zjgq/jg4jjg6rjgavjgqLjgq/jgrvjgrnjgafjgY3jgb7jgZvjgpMgLS0gJXNcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gY2hkaXIgdG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIm5hbWVpOiAlcyDjgasgY2hrZGlyIOOBp+OBjeOBvuOBm+OCkyAtICVzICglZClcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3QgY2hkaXIgdG8gcm9vdCFcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IOODq+ODvOODiOODh+OCo+ODrOOCr+ODiOODquOBq+enu+WLleOBp+OBjeOBvuOBm+OCk++8gVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBzdGF0IHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiDjg6vjg7zjg4jjg4fjgqPjg6zjgq/jg4jjg6rjga7jg5XjgqHjgqTjg6vmg4XloLHjgpLlj5blvpfjgafjgY3jgb7jgZvjgpPvvIFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IOODkOODg+ODleOCoeOCquODvOODkOODvOODleODreODvFxuIgorCisjfiBtc2dpZCAiID8gY291bGQgbm90IGNoZGlyIGludG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/ICVzIOODh+OCo+ODrOOCr+ODiOODquOBq+enu+WLleOBp+OBjeOBvuOBm+OCkyAtLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IOOCt+ODs+ODnOODquODg+OCr+ODquODs+OCryAlcyDoqq3jgb/lj5bjgorkuK3jgavllY/poYzjgYzotbfjgY3jgb7jgZfjgZ8gLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgICoqKiBFWENFRURFRCBVTklYIExJTUlUIE9GIFNZTUxJTktTICoqKlxuIgorI34gbXNnc3RyICIgICoqKiDjgrfjg7Pjg5zjg6rjg4Pjgq/jg6rjg7Pjgq/mlbDjgYwgVU5JWCDjga7liLbpmZDjgpLotorjgYjjgb7jgZfjgZ8gKioqXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5rbm93biBmaWxlIHR5cGUgMCUwNm8gb24gZmlsZSAlc1xuIgorI34gbXNnc3RyICJuYW1laTog44OV44Kh44Kk44OrICUyJHMg44Gv44CB5LiN5piO44Gq44OV44Kh44Kk44Or44K/44Kk44OXIDAlMSQwNm8g44Gn44GZXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ29pbmcgdG8gbW91bnQgJXMgYnkgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzIOOCkiAlcyDjgafjg57jgqbjg7Pjg4jjgZfjgabjgYTjgb7jgZlcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJtb3VudDogbm8gTEFCRUw9LCBubyBVVUlEPSwgZ29pbmcgdG8gbW91bnQgJXMgYnkgcGF0aFxuIgorI34gbXNnc3RyICJtb3VudDogJXMg44KSICVzIOOBp+ODnuOCpuODs+ODiOOBl+OBvuOBmVxuIgorCisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczog5a2Q44OX44Ot44K744K544KS6LW35YuV44Gn44GN44G+44Gb44KTOiAlc1xuIgorCisjfiBtc2dpZCAiJXM6IHdhaXRwaWQ6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiB3YWlkcGlkOiAlc1xuIgorCisjfiBtc2dpZCAiJXM6IGNhbm5vdCBzdGF0ICVzOiAlc1xuIgorI34gbXNnc3RyICIlczogJXMg44Gu54q25oWL5Y+W5b6X44GM44Gn44GN44G+44Gb44KTOiAlc1xuIgorCisjfiBtc2dpZCAiY291bGQgbm90IHVtb3VudCAlcyAtIHRyeWluZyAlcyBpbnN0ZWFkXG4iCisjfiBtc2dzdHIgIiVzIOOCkuOCouODs+ODnuOCpuODs+ODiOOBp+OBjeOBvuOBm+OCk+OBp+OBl+OBnyAtLSDku6PjgorjgasgJXMg44KS5L2/44Gj44Gm44G/44G+44GZXG4iCisKKyN+IG1zZ2lkICJgJXMnOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKKyN+IG1zZ3N0ciAiYCVzJzog5LiN5q2j44Gq44OH44Kj44Os44Kv44OI44OqOiAnLicg44GM5pyA5Yid44Gn44Gv44GC44KK44G+44Gb44KTXG4iCisKKyN+IG1zZ2lkICJgJXMnOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorI34gbXNnc3RyICJgJXMnOiDkuI3mraPjgarjg4fjgqPjg6zjgq/jg4jjg6o6ICcuLicg44GMIDIg55Wq55uu44Gn44Gv44GC44KK44G+44Gb44KTXG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIG9wZW5fdHR5XG4iCisjfiBtc2dzdHIgIm9wZW5fdHR5IOOBruWRvOOBs+WHuuOBl+S4rVxuIgorCisjfiBtc2dpZCAiY2FsbGluZyB0ZXJtaW9faW5pdFxuIgorI34gbXNnc3RyICJ0ZXJtaW9faW5pdCDlkbzjgbPlh7rjgZfkuK1cbiIKKworI34gbXNnaWQgIndyaXRpbmcgaW5pdCBzdHJpbmdcbiIKKyN+IG1zZ3N0ciAi5Yid5pyf5YyW5paH5a2X5YiX44Gu5pu444GN6L6844G/5LitXG4iCisKKyN+IG1zZ2lkICJiZWZvcmUgYXV0b2JhdWRcbiIKKyN+IG1zZ3N0ciAi6Ieq5YuV44Oc44O844Os44O844OI5qSc5Ye65YmNXG4iCisKKyN+IG1zZ2lkICJ3YWl0aW5nIGZvciBjci1sZlxuIgorI34gbXNnc3RyICJjci1sZiDjgpLlvoXjgaPjgabjgYTjgb7jgZlcbiIKKworI34gbXNnaWQgInJlYWRpbmcgbG9naW4gbmFtZVxuIgorI34gbXNnc3RyICLjg63jgrDjgqTjg7PlkI3jgpLoqq3ovrzjgoHjgb7jgZvjgpNcbiIKKworI34gbXNnaWQgImFmdGVyIGdldG9wdCBsb29wXG4iCisjfiBtc2dzdHIgImdldG9wdCDjg6vjg7zjg5fjga7lvoxcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VhcmdzXG4iCisjfiBtc2dzdHIgIuW8leaVsOino+aekOOCkue1guS6huOBl+OBvuOBmVxuIgorCisjfiBtc2dpZCAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKyN+IG1zZ3N0ciAicGFyc2Vfc3BlZWRzIOOBq+WFpeOCiuOBvuOBl+OBn1xuIgorCisjfiBtc2dpZCAiZXhpdGluZyBwYXJzZXNwZWVkc1xuIgorI34gbXNnc3RyICJwYXJzZXNwZWVkcyDjgpLntYLjgo/jgorjgb7jgZlcbiIKKworI34gbXNnaWQgIm9wZW4oMilcbiIKKyN+IG1zZ3N0ciAib3BlbigyKVxuIgorCisjfiBtc2dpZCAiZHVwaW5nXG4iCisjfiBtc2dzdHIgIuikh+ijveS4rVxuIgorCisjfiBtc2dpZCAidGVybV9pbyAyXG4iCisjfiBtc2dzdHIgInRlcm1faW8gMlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgZXJyb3IuIgorI34gbXNnc3RyICLjg5Hjgrnjg6/jg7zjg4njgqjjg6njg7zjgIIiCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxsc1xuIgorI34gbXNnc3RyICLorablkYo6IFwiJXNcIiDjga8gL2V0Yy9zaGVsbHMg44Oq44K544OI44Gu5Lit44Gr44GC44KK44G+44Gb44KTXG4iCisKKyN+IG1zZ2lkICJDYW4ndCByZWFkICVzLCBleGl0aW5nLiIKKyN+IG1zZ3N0ciAiJXMg44KS6Kqt44KB44G+44Gb44KT44Gu44Gn57WC5LqG44GX44G+44GZ44CCIgorCisjfiBtc2dpZCAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorI34gbXNnc3RyICJ0aW1lb3V0ID0gJWQsIHF1aWV0ID0gJWQsIHJlYm9vdCA9ICVkXG4iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkICVzLCBhbmQgY2Fubm90IGlvY3RsIGR1bXBcbiIKKyN+IG1zZ3N0ciAiJXMg44KS6Kqt44KB44G+44Gb44KT44CB44Gd44GX44GmIGlvY3RsIOODgOODs+ODl+OBjOOBp+OBjeOBvuOBm+OCk1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZGV2aWNlIC9kZXYvbG9vcCMiCisjfiBtc2dzdHIgIm1vdW50OiAvZGV2L2xvb3AjIOOBjOWFqOOBj+imi+OBpOOBi+OCiuOBvuOBm+OCkyIKKworI34gbXNnaWQgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDog44OQ44OD44Kv44Kw44Op44Km44Oz44OJIFwiJXNcIlxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdpdmluZyB1cCBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IOirpuOCgeOBvuOBl+OBnyBcIiVzXCJcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAi5L2/44GE5pa5OiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAgJXMgWy12XSBbLXAg5YSq5YWI5bqmXSDjgrnjg5rjgrfjg6Pjg6vjg5XjgqHjgqTjg6sgLi4uXG4iCisjfiAiICAgICAgICAlcyBbLXNdXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIuS9v+OBhOaWuTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgICVzIC1hIFstdl1cbiIKKyN+ICIgICAgICAgICVzIFstdl0gWy1wIOWEquWFiOW6pl0g44K544Oa44K344Oj44Or44OV44Kh44Kk44OrIC4uLlxuIgorI34gIiAgICAgICAgJXMgWy1zXVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBjYW5ub3QgY2Fub25pY2FsaXplICVzOiAlc1xuIgorI34gbXNnc3RyICIlczogJXMg44KS6ZaL44GR44G+44Gb44KTOiAlc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTI2LjI0cyAlLTI2LjI0c1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogcmVuaWNlIHByaW9yaXR5IFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwcyBdIFsgWyAtdSBdIHVzZXJzIF1cbiIKKyN+IG1zZ3N0ciAiIgorI34gIuS9v+OBhOaWuTogcmVuaWNlIOWEquWFiOW6piBbIFsgLXAgXSDjg5fjg63jgrvjgrlJRCBdIFsgWyAtZyBdIOODl+ODreOCu+OCueOCsOODq+ODvOODl10gIgorI34gIlsgWyAtdSDjg6bjg7zjgrYgXVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIlVua25vd24gb3B0aW9uIGAlYycgaWdub3JlZCIKKyN+IG1zZ3N0ciAiJXM6IOS4jeaYjuOBquOCt+OCsOODiuODqyAlc1xuIgorCisjfiBtc2dpZCAiQXNzdW1pbmcgcGFnZXMgb2Ygc2l6ZSAlZCAobm90ICVkKVxuIgorI34gbXNnc3RyICLjgrXjgqTjgrogJWQgKCVkIOOBp+OBr+OBquOBjykg44Gu44Oa44O844K444KS6Kmm44GX44G+44GZXG4iCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZvdW5kIGEgJXMlcyVzXG4iCisjfiBtc2dzdHIgIuiHquWLleioreWumuOBpyAlcyVzJXMg44KS6KaL44Gk44GR44G+44GX44GfXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRHJpdmUgdHlwZVxuIgorI34gIiAgID8gICBhdXRvIGNvbmZpZ3VyZVxuIgorI34gIiAgIDAgICBjdXN0b20gKHdpdGggaGFyZHdhcmUgZGV0ZWN0ZWQgZGVmYXVsdHMpIgorI34gbXNnc3RyICIiCisjfiAi44OJ44Op44Kk44OW44K/44Kk44OXXG4iCisjfiAiICAgPyAgIOiHquWLleioreWumlxuIgorI34gIiAgIDAgICDjgqvjgrnjgr/jg6AgKOODj+ODvOODieOCpuOCp+OCouOBjOaknOWHuuOBl+OBn+WApOOCkuWIneacn+WApOOBqOOBl+OBpikiCisKKyN+IG1zZ2lkICJTZWxlY3QgdHlwZSAoPyBmb3IgYXV0bywgMCBmb3IgY3VzdG9tKTogIgorI34gbXNnc3RyICLjgr/jgqTjg5fjgpLpgbjjgpPjgafjgY/jgaDjgZXjgYQgKD8g44Gn6Ieq5YuV44CBMCDjgafjgqvjgrnjgr/jg6ApOiAiCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZhaWxlZC5cbiIKKyN+IG1zZ3N0ciAi6Ieq5YuV6Kit5a6a44GM5aSx5pWX44GX44G+44GX44Gf44CCXG4iCisKKyN+IG1zZ2lkICJBbHRlcm5hdGUgY3lsaW5kZXJzIgorI34gbXNnc3RyICLku6Pmm7/jgrfjg6rjg7Pjg4DmlbAiCisKKyN+IG1zZ2lkICJQaHlzaWNhbCBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIueJqeeQhuOCt+ODquODs+ODgOaVsCIKKworI34gbXNnaWQgIllvdSBtYXkgY2hhbmdlIGFsbCB0aGUgZGlzayBwYXJhbXMgZnJvbSB0aGUgeCBtZW51IgorI34gbXNnc3RyICLlhajjgabjga7jg4fjgqPjgrnjgq/jg5Hjg6njg6Hjg7zjgr/jgpIgeCDjg6Hjg4vjg6Xjg7zjgYvjgonlpInmm7TjgafjgY3jgb7jgZkiCisKKyN+IG1zZ2lkICIzLDVcIiBmbG9wcHkiCisjfiBtc2dzdHIgIjMsNVwiIOODleODreODg+ODlOODvCIKKworI34gbXNnaWQgIkxpbnV4IGN1c3RvbSIKKyN+IG1zZ3N0ciAiTGludXggY3VzdG9tIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzIGZyb20gdXRpbC1saW51eC0lc1xuIgorI34gbXNnc3RyICIlcyBmcm9tICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXMgZnJvbSAlcyVzXG4iCisjfiBtc2dzdHIgIiVzIGZyb20gJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAiJXM6IGNvdWxkIG5vdCBvcGVuICVzLCBzbyBVVUlEIGFuZCBMQUJFTCBjb252ZXJzaW9uIGNhbm5vdCBiZSBkb25lLlxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6ICVzIOOCkuOCquODvOODl+ODs+OBp+OBjeOBquOBi+OBo+OBn+OBruOBp+OAgVVVSUQg44GoIExBQkVMIOOBruWkieaPm+OCguihjOOBiOOBvuOBm+OCk+OAglxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBiYWQgVVVJRCIKKyN+IG1zZ3N0ciAibW91bnQ6IOS4jeato+OBqiBVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IGZhaWxlZCB3aXRoIG5mcyBtb3VudCB2ZXJzaW9uIDQsIHRyeWluZyAzLi5cbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG5mcyBtb3VudCB2ZXJzaW9uIDQg44Gn44Gv5aSx5pWX44GX44G+44GX44Gf44CCMyDjgpLoqabjgZfjgb7jgZkuLlxuIgorCisjfiBtc2dpZCAibW91bnQ6IG1vdW50aW5nICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiAlcyDjgpLjg57jgqbjg7Pjg4jjgZfjgb7jgZlcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW5ub3QgZmluZCAlcyBpbiAlcyIKKyN+IG1zZ3N0ciAibW91bnQ6ICUyJHMg5YaF44GrICUxJHMg44KS6KaL44Gk44GR44KJ44KM44G+44Gb44KTIgorCisjfiBtc2dpZCAibW91bnQ6IGVycm9yIHdoaWxlIGd1ZXNzaW5nIGZpbGVzeXN0ZW0gdHlwZVxuIgorI34gbXNnc3RyICJtb3VudDog44OV44Kh44Kk44Or44K344K544OG44Og5Z6L5o6o5a6a5Lit44Gr44Ko44Op44O844GM55m655SfXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBob3N0OmRpciBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDog5qW156uv44Gr6ZW344GEIOODm+OCueODiDrjg4fjgqPjg6zjgq/jg4jjg6og5byV5pWwXG4iCisKKyN+IG1zZ2lkICJtb3VudDogd2FybmluZzogbXVsdGlwbGUgaG9zdG5hbWVzIG5vdCBzdXBwb3J0ZWRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IOitpuWRijog6KSH5pWw44Gu44Ob44K544OI5ZCN44Gv44K144Od44O844OI44GV44KM44Gm44GE44G+44Gb44KTXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZGlyZWN0b3J5IHRvIG1vdW50IG5vdCBpbiBob3N0OmRpciBmb3JtYXRcbiIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiDjg57jgqbjg7Pjg4jlhYjjg4fjgqPjg6zjgq/jg4jjg6rjgYwg44Ob44K544OIOuODh+OCo+ODrOOCr+ODiOODqiDlvaLlvI/jgavjgarjgaPjgabjgYTjgb7jgZvjgpNcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzIOOBruOCouODieODrOOCueOBjOWPluW+l+OBp+OBjeOBvuOBm+OCk1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgIm1vdW50OiDkuI3mraPjgaogaHAtPmhfbGVuZ3RoIOWApOOCkuWPluW+l+OBl+OBvuOBl+OBn1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgb3B0aW9uIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiDjgqrjg5fjgrfjg6fjg7PlvJXmlbDjgYzplbfjgZnjgY7jgb7jgZlcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IFVucmVjb2duaXplZCBwcm90bz0gb3B0aW9uLlxuIgorI34gbXNnc3RyICLorablkYo6IHByb3RvPSDjgqrjg5fjgrfjg6fjg7PjgYznkIbop6PjgafjgY3jgb7jgZvjgpPjgIJcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IE9wdGlvbiBuYW1sZW4gaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAi6K2m5ZGKOiBuYW1sZW4g44Kq44OX44K344On44Oz44Gv44K144Od44O844OI44GV44KM44Gm44GE44G+44Gb44KT44CCXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBtb3VudCBwYXJhbWV0ZXI6ICVzPSVkXG4iCisjfiBtc2dzdHIgIuS4jeaYjuOBqiBuZnMg44Oe44Km44Oz44OI44OR44Op44Oh44O844K/OiAlcz0lZFxuIgorCisjfiBtc2dpZCAiV2FybmluZzogb3B0aW9uIG5vbG9jayBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICLorablkYo6IG5vbG9jayDjgqrjg5fjgrfjg6fjg7Pjga/jgrXjg53jg7zjg4jjgZXjgozjgabjgYTjgb7jgZvjgpPjgIJcbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIG1vdW50IG9wdGlvbjogJXMlc1xuIgorI34gbXNnc3RyICLkuI3mmI7jgaogbmZzIOODnuOCpuODs+ODiOOCquODl+OCt+ODp+ODszogJXMlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoP1xuIgorI34gbXNnc3RyICJtb3VudDog5LiN5q2j44GqIGhwLT5oX2xlbmd0aCDlgKTjgpLlj5blvpfvvJ9cbiIKKworI34gbXNnaWQgIm5mcyBiaW5kcmVzdnBvcnQiCisjfiBtc2dzdHIgIm5mcyBiaW5kcmVzdnBvcnQiCisKKyN+IG1zZ2lkICJuZnMgc2VydmVyIHJlcG9ydGVkIHNlcnZpY2UgdW5hdmFpbGFibGUiCisjfiBtc2dzdHIgIm5mcyDjgrXjg7zjg5Djga/jgrXjg7zjg5PjgrnjgYzliKnnlKjjgafjgY3jgarjgYTjgajloLHlkYrjgZfjgb7jgZfjgZ8iCisKKyN+IG1zZ2lkICJ1c2VkIHBvcnRtYXBwZXIgdG8gZmluZCBORlMgcG9ydFxuIgorI34gbXNnc3RyICJORlMg44Od44O844OI44KS6KaL44Gk44GR44KL44Gf44KB44GrIHBvcnRtYXBwZXIg44KS5Yip55SoXG4iCisKKyN+IG1zZ2lkICJ1c2luZyBwb3J0ICVkIGZvciBuZnMgZGVhbW9uXG4iCisjfiBtc2dzdHIgIm5mcyDjg4fjg7zjg6Ljg7Pjga7jgZ/jgoHjgasgJWQg55Wq44Od44O844OI44KS5Yip55SoXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBzdGF0dXMgcmV0dXJuIHZhbHVlOiAlZCIKKyN+IG1zZ3N0ciAi5LiN5piO44GqIG5mcyDjgrnjg4bjg7zjgr/jgrnlgKTjgpLov5TjgZfjgb7jgZfjgZ86ICVkIgorCisjfiBtc2dpZCAiaG9zdDogJXMsIGRpcmVjdG9yeTogJXNcbiIKKyN+IG1zZ3N0ciAi44Ob44K544OIOiAlcywg44OH44Kj44Os44Kv44OI44OqOiAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiAlcyDjga7jgqLjg4njg6zjgrnjgYzlj5blvpfjgafjgY3jgb7jgZvjgpNcbiIKKworI34gbXNnaWQgInVtb3VudDogZ290IGJhZCBob3N0cC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiDkuI3mraPjgaogaG9zdHAtPmhfbGVuZ3RoIOWApOOCkuWPluW+l+OBl+OBvuOBl+OBn1xuIgorCisjfiBtc2dpZCAiJXM6IG5vdCBjb21waWxlZCB3aXRoIG1pbml4IHYyIHN1cHBvcnRcbiIKKyN+IG1zZ3N0ciAiJXM6IG1pbml4IHYyIOOBruOCteODneODvOODiOOBpOOBjeOBp+OCs+ODs+ODkeOCpOODq+OBleOCjOOBpuOBhOOBvuOBm+OCk1xuIgorCisjfiBtc2dpZCAiU3ludGF4IGVycm9yOiAnJXMnXG4iCisjfiBtc2dzdHIgIuaWh+azleOCqOODqeODvDogJyVzJ1xuIgorCisjfiBtc2dpZCAiTm8gc3VjaCBwYXJhbWV0ZXIgc2V0OiAnJXMnXG4iCisjfiBtc2dzdHIgIuOBneOBruOCiOOBhuOBquioreWumuODkeODqeODoeOCv+OBr+OBguOCiuOBvuOBm+OCkzogJyVzJ1xuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtcCBdIGRldiBuYW1lXG4iCisjfiBtc2dzdHIgIiAgICVzIFsgLXAgXSDjg4fjg5DjgqTjgrkg5ZCN5YmNXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiICAgJXMgWyAtcCBdIGRldiBzaXplIHNlY3QgaGVhZHMgdHJhY2tzIHN0cmV0Y2ggZ2FwIHJhdGUgc3BlYzEgZm10X2dhcFxuIgorI34gbXNnc3RyICIiCisjfiAiICAgJXMgWyAtcCBdIGRldiBzaXplIHNlY3QgaGVhZHMgdHJhY2tzIHN0cmV0Y2ggZ2FwIHJhdGUgc3BlYzEgZm10X2dhcFxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGRldlxuIgorI34gbXNnc3RyICIgICAlcyBbIC1jIHwgLXkgfCAtbiB8IC1kIF0g44OH44OQ44Kk44K5XG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1jIHwgLXkgfCAtbiBdIGRldlxuIgorI34gbXNnc3RyICIgICAlcyBbIC1jIHwgLXkgfCAtbiBdIOODh+ODkOOCpOOCuVxuIgorCisjfiBtc2dpZCAiQm9vdCAoJTAyWCkiCisjfiBtc2dzdHIgIuODluODvOODiCAoJTAyWCkiCisKKyN+IG1zZ2lkICJOb25lICglMDJYKSIKKyN+IG1zZ3N0ciAi44Gq44GXICglMDJYKSIKKworI34gbXNnaWQgIldhcm5pbmc6IGRlbGV0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgJWRcbiIKKyN+IG1zZ3N0ciAi6K2m5ZGKOiAlZCDku6XpmY3jga7poJjln5/jgpLliYrpmaTjgZfjgb7jgZlcbiIKKworI34gbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCisjfiBtc2dzdHIgIumgmOWfnyAlaSDjga/jgrfjg6rjg7Pjg4DlooPnlYzjgafntYLjgo/jgaPjgabjgYTjgb7jgZvjgpM6XG4iCisKKyN+IG1zZ2lkICIiCisjfiAiXG4iCisjfiAiRGlzayAlczogJWQgaGVhZHMsICVkIHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorI34gIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAi44OH44Kj44K544KvICVzOiDjg5jjg4Pjg4kgJWQsIOOCu+OCr+OCvyAlZCwg44K344Oq44Oz44OAICVkXG4iCisjfiAi44Om44OL44OD44OIID0gJXMgb2YgJWQgKiAlZCDjg5DjgqTjg4hcbiIKKyN+ICJcbiIKKworI34gbXNnaWQgInZlcnNpb24iCisjfiBtc2dzdHIgIuODkOODvOOCuOODp+ODsyIKKworI34gbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIGZvciAlc1xuIgorI34gbXNnc3RyICIlcyDjgbjjga4gQkxLR0VUU0laRSBpb2N0bCDjgavlpLHmlZdcbiIKKworI34gbXNnaWQgIm51bWJlciBgJXMnIHRvIGAlcycgb3V0IG9mIHJhbmdlXG4iCisjfiBtc2dzdHIgIuWApCBgJXMnIOOBryBgJXMnIOOBq+OBqOOBo+OBpuevhOWbsuWkluOBp+OBmVxuIgorCisjfiBtc2dpZCAidW5yZWNvZ25pemVkIG9wdGlvbiBgJXMnXG4iCisjfiBtc2dzdHIgIuiqjeitmOOBp+OBjeOBquOBhOOCquODl+OCt+ODp+ODsyBgJXMnIOOBp+OBmVxuIgorCisjfiBtc2dpZCAib3B0aW9uIGAlcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgorI34gbXNnc3RyICLjgqrjg5fjgrfjg6fjg7MgYCVzJyDjga/lvJXmlbDjgpLlj5fjgZHku5jjgZHjgb7jgZvjgpNcbiIKKworI34gbXNnaWQgInVucmVjb2duaXplZCBvcHRpb24gYC0lYydcbiIKKyN+IG1zZ3N0ciAi6KqN6K2Y44Gn44GN44Gq44GE44Kq44OX44K344On44OzIGAtJWMnIOOBp+OBmVxuIgorCisjfiBtc2dpZCAiY291bGRuJ3Qgb3BlbiAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgIi9kZXYvdXJhbmRvbSDjgpLplovjgZHjgb7jgZvjgpMiCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkIHJhbmRvbSBkYXRhIGZyb20gL2Rldi91cmFuZG9tIgorI34gbXNnc3RyICIvZGV2L3VyYW5kb20g44GL44KJ44Op44Oz44OA44Og44OH44O844K/44GM6Kqt6L6844KB44G+44Gb44KTIgorCisjfiBtc2dpZCAiY2FuJ3Qgc3RhdCglcykiCisjfiBtc2dzdHIgIiglcykg44OV44Kh44Kk44Or5oOF5aCx44KS5Y+W5b6X44Gn44GN44G+44Gb44KTIgorCisjfiBtc2dpZCAiJXMgZG9lc24ndCBoYXZlIHRoZSBjb3JyZWN0IGZpbGVtb2RlcyIKKyN+IG1zZ3N0ciAiJXMg44Gv5q2j44GX44GE44OV44Kh44Kk44Or44Oi44O844OJ44Gn44Gv44GC44KK44G+44Gb44KTIgorCisjfiBtc2dpZCAiY2FuJ3QgcmVhZCBkYXRhIGZyb20gJXMiCisjfiBtc2dzdHIgIiVzIOOBi+OCieODh+ODvOOCv+OCkuiqrei+vOOCgeOBvuOBm+OCkyIKKworI34gbXNnaWQgIiIKKyN+ICJUb28gbWFueSB1c2VycyBsb2dnZWQgb24gYWxyZWFkeS5cbiIKKyN+ICJUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLml6Ljgavjg63jgrDjgqTjg7PjgZfjgabjgYTjgovjg6bjg7zjgrbjg7zmlbDjgYzlpJrjgZnjgY7jgb7jgZnjgIJcbiIKKyN+ICLjgb7jgZ/lvozjgafoqabjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIKKworI34gbXNnaWQgIllvdSBoYXZlIHRvbyBtYW55IHByb2Nlc3NlcyBydW5uaW5nLlxuIgorI34gbXNnc3RyICLjgYLjgarjgZ/jgYzlrp/ooYzjgZfjgabjgYTjgovjg5fjg63jgrvjgrnjgYzlpJrjgZnjgY7jgb7jgZnjgIJcbiIKKworI34gbXNnaWQgIlRoZSBwYXNzd29yZCBtdXN0IGhhdmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzLCB0cnkgYWdhaW4uXG4iCisjfiBtc2dzdHIgIuODkeOCueODr+ODvOODieOBr+acgOS9jiA2IOaWh+Wtl+W/heimgeOBp+OBmeOAguOCguOBhuS4gOW6puOChOOCiuebtOOBl+OBpuOBj+OBoOOBleOBhOOAglxuIgorCisjfiBtc2dpZCAiIgorI34gIlRoZSBwYXNzd29yZCBtdXN0IGNvbnRhaW4gY2hhcmFjdGVycyBvdXQgb2YgdHdvIG9mIHRoZSBmb2xsb3dpbmdcbiIKKyN+ICJjbGFzc2VzOiAgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBub24gYWxwaGFudW1lcmljXG4iCisjfiAiY2hhcmFjdGVycy4gU2VlIHBhc3N3ZCgxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIuODkeOCueODr+ODvOODieOBr+S7peS4i+OBrue1hOOBv+OBi+OCiSAyIOOBpOS7peS4iuOBp+ani+aIkOOBleOCjOOBreOBsOOBquOCiuOBvuOBm+OCkzpcbiIKKyN+ICLoi7HlpKfmloflrZfjgajoi7HlsI/mloflrZfjgIHmlbDlrZfjgajpnZ7jgqLjg6vjg5XjgqHjg5njg4Pjg4jmloflrZdcbiIKKyN+ICLoqbPjgZfjgYTmg4XloLHjga8gcGFzc3dkKDEpIOOCkuimi+OBvuOBl+OCh+OBhuOAglxuIgorCisjfiBtc2dpZCAiWW91IGNhbm5vdCByZXVzZSB0aGUgb2xkIHBhc3N3b3JkLlxuIgorI34gbXNnc3RyICLlj6TjgYTjg5Hjgrnjg6/jg7zjg4njga7lho3liKnnlKjjga/jgafjgY3jgb7jgZvjgpPjgIJcbiIKKworI34gbXNnaWQgIlBsZWFzZSBkb24ndCB1c2Ugc29tZXRoaW5nIGxpa2UgeW91ciB1c2VybmFtZSBhcyBwYXNzd29yZCFcbiIKKyN+IG1zZ3N0ciAi44Om44O844K25ZCN44Go5ZCM44GY44KI44GG44Gq44OR44K544Ov44O844OJ44KS5L2/44KP44Gq44GE44Gn44GP44Gg44GV44GE77yBXG4iCisKKyN+IG1zZ2lkICJQbGVhc2UgZG9uJ3QgdXNlIHNvbWV0aGluZyBsaWtlIHlvdXIgcmVhbG5hbWUgYXMgcGFzc3dvcmQhXG4iCisjfiBtc2dzdHIgIuOBguOBquOBn+OBruWun+WQjeOBruOCiOOBhuOBquODkeOCueODr+ODvOODieOCkuS9v+OCj+OBquOBhOOBp+OBj+OBoOOBleOBhO+8gVxuIgorCisjfiBtc2dpZCAiVXNhZ2U6IHBhc3N3ZCBbdXNlcm5hbWUgW3Bhc3N3b3JkXV1cbiIKKyN+IG1zZ3N0ciAi5L2/44GE5pa5OiBwYXNzd2QgW+ODpuODvOOCtuWQjSBb44OR44K544Ov44O844OJXV1cbiIKKworI34gbXNnaWQgIk9ubHkgcm9vdCBtYXkgdXNlIHRoZSBvbmUgYW5kIHR3byBhcmd1bWVudCBmb3Jtcy5cbiIKKyN+IG1zZ3N0ciAicm9vdCDjgaDjgZHjgYzkuIDjgaTjgb7jgZ/jga/kuozjgaTjga7lvJXmlbDlvaLlvI/jgaflrp/ooYzjgafjgY3jgb7jgZlcbiIKKworI34gbXNnaWQgIlVzYWdlOiBwYXNzd2QgWy1mb3FzdlZdIFt1c2VyIFtwYXNzd29yZF1dXG4iCisjfiBtc2dzdHIgIuS9v+OBhOaWuTogcGFzc3dkIFstZm9xc3ZWXSBb44Om44O844K2IFvjg5Hjgrnjg6/jg7zjg4ldXVxuIgorCisjfiBtc2dpZCAiQ2FuJ3QgZXhlYyAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXMg44KS5a6f6KGM44Gn44GN44G+44Gb44KTOiAlc1xuIgorCisjfiBtc2dpZCAiQ2Fubm90IGZpbmQgbG9naW4gbmFtZSIKKyN+IG1zZ3N0ciAi44Ot44Kw44Kk44Oz5ZCN44GM6KaL44Gk44GR44KJ44KM44G+44Gb44KTIgorCisjfiBtc2dpZCAiT25seSByb290IGNhbiBjaGFuZ2UgdGhlIHBhc3N3b3JkIGZvciBvdGhlcnMuXG4iCisjfiBtc2dzdHIgInJvb3Qg44Gg44GR44GM5LuW5Lq644Gu44OR44K544Ov44O844OJ44KS5aSJ5pu044Gn44GN44G+44GZXG4iCisKKyN+IG1zZ2lkICJDYW4ndCBmaW5kIHVzZXJuYW1lIGFueXdoZXJlLiBJcyBgJXMnIHJlYWxseSBhIHVzZXI/IgorI34gbXNnc3RyICLjg6bjg7zjgrblkI3jgYzjganjgZPjgavjgoLopovjgaTjgYvjgorjgb7jgZvjgpPjgIJgJXMnIOOBr+acrOW9k+OBq+ODpuODvOOCtuOBp+OBmeOBi++8nyIKKworI34gbXNnaWQgIlNvcnJ5LCBJIGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBwYXNzd29yZHMuIFVzZSB5cHBhc3N3ZCBpbnN0ZWFkLiIKKyN+IG1zZ3N0ciAiIgorI34gIuaui+W/teOBquOBjOOCieOAgeODreODvOOCq+ODq+OBruODkeOCueODr+ODvOODieOBruWkieabtOOBl+OBi+OBp+OBjeOBvuOBm+OCk+OAglxuIgorI34gIuOBi+OCj+OCiuOBqyB5cHBhc3N3ZCDjgpLkvb/jgaPjgabjgY/jgaDjgZXjgYTjgIIiCisKKyN+IG1zZ2lkICJVSUQgYW5kIHVzZXJuYW1lIGRvZXMgbm90IG1hdGNoLCBpbXBvc3RlciEiCisjfiBtc2dzdHIgIuODpuODvOOCtklEIOeVquWPt+OBqOODpuODvOOCtuWQjeOBjOS4gOiHtOOBl+OBvuOBm+OCk+OAguipkOensOOBoO+8gSIKKworI34gbXNnaWQgIkNoYW5naW5nIHBhc3N3b3JkIGZvciAlc1xuIgorI34gbXNnc3RyICIlcyDjga7jg5Hjgrnjg6/jg7zjg4njgpLlpInmm7TjgZfjgb7jgZlcbiIKKworI34gbXNnaWQgIkVudGVyIG9sZCBwYXNzd29yZDogIgorI34gbXNnc3RyICLnkIPjg5Hjgrnjg6/jg7zjg4njgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQ6ICIKKworI34gbXNnaWQgIklsbGVnYWwgcGFzc3dvcmQsIGltcG9zdGVyLiIKKyN+IG1zZ3N0ciAi5LiN5q2j44Gq44OR44K544Ov44O844OJ44CB6KmQ56ew44Gn44GZ44CCIgorCisjfiBtc2dpZCAiRW50ZXIgbmV3IHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIuaWsOODkeOCueODr+ODvOODieOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAgiIKKworI34gbXNnaWQgIlBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAi44OR44K544Ov44O844OJ44Gv5aSJ5pu044GV44KM44G+44Gb44KT44Gn44GX44Gf44CCIgorCisjfiBtc2dpZCAiUmUtdHlwZSBuZXcgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAi5paw44OR44K544Ov44O844OJ44KS44KC44GG5LiA5bqm5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiAiCisKKyN+IG1zZ2lkICJZb3UgbWlzc3BlbGxlZCBpdC4gUGFzc3dvcmQgbm90IGNoYW5nZWQuIgorI34gbXNnc3RyICLntrTjgorjgYzpgZXjgYTjgb7jgZnjgILlvozjgafjgoLjgYbkuIDluqboqabjgZfjgabjgY/jgaDjgZXjgYTjgIIiCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkLCB1c2VyICVzIgorI34gbXNnc3RyICLjg5Hjgrnjg6/jg7zjg4njga/lpInmm7TjgZXjgozjgb7jgZfjgZ/jgILjg6bjg7zjgrYgJXMiCisKKyN+IG1zZ2lkICJST09UIFBBU1NXT1JEIENIQU5HRUQiCisjfiBtc2dzdHIgIiogcm9vdCDjga7jg5Hjgrnjg6/jg7zjg4njgYzlpInmm7TjgZXjgozjgb7jgZfjgZ8gKiIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQgYnkgcm9vdCwgdXNlciAlcyIKKyN+IG1zZ3N0ciAi44OR44K544Ov44O844OJ44Gv44Or44O844OI44Gr44KI44Gj44Gm5aSJ5pu044GV44KM44G+44GX44Gf44CB44Om44O844K2ICVzIgorCisjfiBtc2dpZCAiY2FsbGluZyBzZXRwd25hbSB0byBzZXQgcGFzc3dvcmQuXG4iCisjfiBtc2dzdHIgIuODkeOCueODr+ODvOODieOCkuioreWumuOBmeOCi+OBn+OCgSBzZXRwd25hbSDjgpLlkbzjgbPlh7rjgZfkuK3jgIJcbiIKKworI34gbXNnaWQgIlBhc3N3b3JkIGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIuODkeOCueODr+ODvOODieOBr+WkieabtOOBleOCjOOBvuOBl+OBn+OAglxuIgorCisjfiBtc2dpZCAiJXM6IFslMDR4XTolbGQgKCVzKSBvZmZzZXQgJWQsICVzIGVuY3J5cHRpb25cbiIKKyN+IG1zZ3N0ciAiJXM6IFslMDR4XTolbGQgKCVzKSDjgqrjg5Xjgrvjg4Pjg4ggJWQsICVzIGVuY3J5cHRpb25cbiIKKworI34gbXNnaWQgIiIKKyN+ICJtb3VudDogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLlxuIgorI34gIiAgICAgICBNYXliZSAvZGV2L2xvb3AjIGhhcyBhIHdyb25nIG1ham9yIG51bWJlcj8iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogL2Rldi9sb29wIyDjgYzlhajjgY/opovjgaTjgYvjgorjgb7jgZvjgpNcbiIKKyN+ICIgICAgICAg5aSa5YiGIC9kZXYvbG9vcCMg44Gu44Oh44K444Oj44O855Wq5Y+344GM6ZaT6YGV44Gj44Gm44GE44KL44Gu44Gn44Gv77yfIgorCisjfiBtc2dpZCAiIgorI34gIm1vdW50OiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyN+ICIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlICh0aGVuIHJlY29tcGlsZSBvciBgaW5zbW9kIGxvb3AubycpLCBvclxuIgorI34gIiAgICAgICBtYXliZSAvZGV2L2xvb3AjIGhhcyB0aGUgd3JvbmcgbWFqb3IgbnVtYmVyPyIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBsb29wIOODh+ODkOOCpOOCueOBjOWFqOOBj+imi+OBpOOBi+OCiuOBvuOBm+OCk+OAguWkmuWIhuOBk+OBruOCq+ODvOODjeODq+OBryBsb29wIOODh+ODkOOCpOOCuSIKKyN+ICLjgpJcbiIKKyN+ICIgICAgICAg5omx44GI44G+44Gb44KTKOOBneOBhuOBoOOBqOOBl+OBn+OCieOAgeWGjeOCs+ODs+ODkeOCpOODq+OBmeOCi+OBiyBgaW5zbW9kIGxvb3AubyfjgZfjgaZcbiIKKyN+ICIgICAgICAg44GP44Gg44GV44GEKeOAguOBguOCi+OBhOOBr+OAgS9kZXYvbG9vcCMg44Gu44Oh44K444Oj44O855Wq5Y+344GM6ZaT6YGV44Gj44Gm44GE44KL44Gu44GLIgorI34gIuOCglxuIgorI34gIiAgICAgICDnn6Xjgozjgb7jgZvjgpPjgIIiCisKKyN+IG1zZ2lkICJJbml0ICh1cCB0byAxNiBoZXggZGlnaXRzKTogIgorI34gbXNnc3RyICLliJ3mnJ/ljJYgKDE2IOmAsuaVsOOBp+acgOWkpyAxNiDmloflrZfjgb7jgacpOiAiCisKKyN+IG1zZ2lkICJOb24taGV4IGRpZ2l0ICclYycuXG4iCisjfiBtc2dzdHIgIjE2IOmAsuaVsOOBp+OBr+OBquOBhOaWh+WtlyAnJWMn44CCXG4iCisKKyN+IG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBnZXQga2V5IGZvciBlbmNyeXB0aW9uIHN5c3RlbSAlZFxuIgorI34gbXNnc3RyICLmmpflj7fljJbjgrfjgrnjg4bjg6AgJWQg44Gu6Y215Y+W5b6X5pa55rOV44GM6Kej44KK44G+44Gb44KTXG4iCisKKyN+IG1zZ2lkICJtb3VudDogdGhpcyB2ZXJzaW9uIHdhcyBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIHRoZSB0eXBlIGBuZnMnIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IOOBk+OBruODkOODvOOCuOODp+ODs+OBryAnbmZzJyDjgr/jgqTjg5fjga7jgrXjg53jg7zjg4jjgarjgZfjgafjgrPjg7Pjg5HjgqTjg6vjgZXjgozjgabjgYTjgb7jgZkiCisKKyN+IG1zZ2lkICJtb3VudDogZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIGJ5IGtlcm5lbCIKKyN+IG1zZ3N0ciAibW91bnQ6IOODleOCoeOCpOODq+OCt+OCueODhuODoOOCv+OCpOODlyAlcyDjga/jgqvjg7zjg43jg6vjgYzjgrXjg53jg7zjg4jjgZfjgabjgYTjgb7jgZvjgpMiCisKKyN+IG1zZ2lkICJVVUlEIgorI34gbXNnc3RyICJVVUlEIgorCisjfiBtc2dpZCAidW1vdW50OiBvbmx5IHJvb3QgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKKyN+IG1zZ3N0ciAidW1vdW50OiByb290IOOBoOOBkeOBjCAlcyDjgpIgJXMg44GL44KJ44Ki44Oz44Oe44Km44Oz44OI44Gn44GN44G+44GZIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKworI34gbXNnaWQgIkNhbid0IG9wZW4gaGVscCBmaWxlIgorI34gbXNnc3RyICLjg5jjg6vjg5fjg5XjgqHjgqTjg6vjgpLplovjgZHjgb7jgZvjgpMiCisKKyN+IG1zZ2lkICInLiIKKyN+IG1zZ3N0ciAiJy4iCisKKyN+IG1zZ2lkICInXG4iCisjfiBtc2dzdHIgIidcbiIKKworI34gbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCIKKyN+IG1zZ3N0ciAi44OW44Ot44OD44KvICVkIGluIOODleOCoeOCpOODqyBgIgorCisjfiBtc2dpZCAiVGhlIGRpcmVjdG9yeSAnIgorI34gbXNnc3RyICLjg4fjgqPjg6zjgq/jg4jjg6ogJyIKKworI34gbXNnaWQgImlvY3RsKCkgdG8gb3BlbiAvZGV2L3R0eTEgZmFpbGVkIgorI34gbXNnc3RyICIvZGV2L3R0eTEg44KS44Kq44O844OX44Oz44GZ44KL44Gf44KB44GuIGlvY3RsIOOBjOWkseaVl+OBl+OBvuOBl+OBnyIKKworI34gbXNnaWQgIjogYmFkIGRpcmVjdG9yeTogc2l6ZTwzMiIKKyN+IG1zZ3N0ciAiOiDkuI3mraPjgarjg4fjgqPjg6zjgq/jg4jjg6o6IOOCteOCpOOCuuOBjCAzMiDmnKrmuoAiCisKKyN+IG1zZ2lkICJub3QgIgorI34gbXNnc3RyICLkuI0iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGFuIG9kZCBudW1iZXIgb2Ygc2VjdG9ycy5cbiIKKyN+IG1zZ3N0ciAi6K2m5ZGKOiDpoJjln58gJWQg44Gv5aWH5pWw44K744Kv44K/5pWw44Gr44Gq44Gj44Gm44GE44G+44GZ44CCXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiUmUtcmVhZCB0YWJsZSBmYWlsZWQgd2l0aCBlcnJvciAlZDogJXMuXG4iCisjfiAiUmVib290IHlvdXIgc3lzdGVtIHRvIGVuc3VyZSB0aGUgcGFydGl0aW9uIHRhYmxlIGlzIHVwZGF0ZWQuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLjg4bjg7zjg5bjg6vjga7lho3oqq3jgb/ovrzjgb/jgYzjgqjjg6njg7zjgrnjg4bjg7zjgr/jgrkgJWQg44Gn5aSx5pWXOiAlcy5cbiIKKyN+ICLpoJjln5/mg4XloLHjgpLmraPjgZfjgY/mm7TmlrDjgZXjgZvjgovjgavjga/jgrfjgrnjg4bjg6DjgpLlho3otbfli5XjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIKKworI34gbXNnaWQgIlNHSSByeGx2b2wiCisjfiBtc2dzdHIgIlNHSSByeGx2b2wiCisKKyN+IG1zZ2lkICJBU1QgV2luZG93cyBzd2FwZmlsZSIKKyN+IG1zZ3N0ciAiQVNUIFdpbmRvd3Mg44K544Ov44OD44OXIgorCisjfiBtc2dpZCAiQlNELzM4NiIKKyN+IG1zZ3N0ciAiQlNELzM4NiIKKworI34gbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mICIKKyN+IG1zZ3N0ciAi6K2m5ZGKOiDjg5Hjg7zjg4bjgqPjgrfjg6fjg7MgJXMg44GMIgorCisjfiBtc2dpZCAidGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisjfiBtc2dzdHIgIuODkeODvOODhuOCo+OCt+ODp+ODs+ODhuODvOODluODqyAo44K744Kv44K/ICVsdSnjga7kuIDpg6jjgpLlkKvjgpPjgafjgYrjgorjgIFcbiIKKworI34gbXNnaWQgImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKKyN+IG1zZ3N0ciAi44GT44KM44KS6KGM44GG44Go44CB56C05aOK44GV44KM44Gm44GX44G+44GG44GT44Go44Gr44Gq44KL44Gn44GX44KH44GGXG4iCisKKyN+IG1zZ2lkICIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKKyN+IG1zZ3N0ciAiIChMaW51eCDjgafjga/llY/poYzjgafjga/jgYLjgorjgb7jgZvjgpPjgZHjganjgoIpXG4iCisKKyN+IG1zZ2lkICIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorI34gbXNnc3RyICIo44Oq44K544OI44GZ44KL54K644Gg44GR44CC44Gd44Gu5YaF5a6544Gu5aSJ5pu044Gv6KGM44KP44Gq44GE44CCKVxuIgorCisjfiBtc2dpZCAiRE9TIGFuZCBMaW51eCB3aWxsIGludGVycHJldCB0aGUgY29udGVudHMgZGlmZmVyZW50bHkuXG4iCisjfiBtc2dzdHIgIkRPUyDjgoQgTGludXgg44Gn44Gv44Gd44Gu5YaF5a6544KS55Ww44Gq44Gj44Gf44KC44Gu44Go6Kej6YeI44GZ44KL44GT44Go44Gr44Gq44KK44G+44GZXG4iCisKKyN+IG1zZ2lkICJmb3IgcmVhZGluZyIKKyN+IG1zZ3N0ciAi6Kqt6L6844G/5Y+v6IO9IgorCisjfiBtc2dpZCAidXNhZ2U6IGJhbm5lciBbLXcgd2lkdGhdXG4iCisjfiBtc2dzdHIgIuS9v+OBhOaWuTogYmFubmVyIFstdyDluYVdXG4iCisKKyN+IG1zZ2lkICJNZXNzYWdlOiAiCisjfiBtc2dzdHIgIuODoeODg+OCu+ODvOOCuDogIgorCisjfiBtc2dpZCAiVGhlIGNoYXJhY3RlciAnJWMnIGlzIG5vdCBpbiBteSBjaGFyYWN0ZXIgc2V0IgorI34gbXNnc3RyICLmloflrZcgJyVjJyDjga/jgq3jg6Pjg6njgq/jgr/jgrvjg4Pjg4jlhoXjgavjgYLjgorjgb7jgZvjgpMiCisKKyN+IG1zZ2lkICJNZXNzYWdlICclcycgaXMgT0tcbiIKKyN+IG1zZ3N0ciAi44Oh44OD44K744O844K4ICclcycg44GvIE9LIOOBp+OBmVxuIgorCisjfiBtc2dpZCAiJXM6IG9wZW4gZm9yIHVwZGF0ZTogJW0iCisjfiBtc2dzdHIgIiVzOiDmm7TmlrDnlKjjgavjgqrjg7zjg5fjg7M6ICVtIgorCisjfiBtc2dpZCAiJXM6IG5vIHV0bXAgZW50cnkiCisjfiBtc2dzdHIgIiVzOiB1dG1wIOmgheebruOBq+OBguOCiuOBvuOBm+OCkyIKKworI34gbXNnaWQgImJhZGxvZ2luOiAlc1xuIgorI34gbXNnc3RyICLkuI3mraPjg63jgrDjgqTjg7M6ICVzXG4iCisKKyN+IG1zZ2lkICJzbGVlcGV4aXQgJWRcbiIKKyN+IG1zZ3N0ciAi44K544Oq44O844OX57WC5LqGICVkXG4iCisKKyN+IG1zZ2lkICIgICAgICAgWyB1c2VybmFtZSBdXG4iCisjfiBtc2dzdHIgIiAgICAgICAgWyDjg6bjg7zjgrblkI0gXVxuIgorCisjfiBtc2dpZCAiV2FybmluZzogbm8gS2VyYmVyb3MgdGlja2V0cyBpc3N1ZWRcbiIKKyN+IG1zZ3N0ciAi6K2m5ZGKOiBLZXJiZXJvcyDjg4HjgrHjg4Pjg4jjgYznmbrooYzjgZXjgozjgb7jgZvjgpNcbiIKKworI34gbXNnaWQgIlNvcnJ5IC0tIHlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuXG4iCisjfiBtc2dzdHIgIuaui+W/teOBp+OBmeOBjCAtLSDjgYLjgarjgZ/jga7jg5Hjgrnjg6/jg7zjg4njga/mnJ/pmZDliIfjgozjgafjgZnjgIJcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IHlvdXIgcGFzc3dvcmQgZXhwaXJlcyBvbiAlcyAlZCwgJWRcbiIKKyN+IG1zZ3N0ciAi6K2m5ZGKOiDjgYLjgarjgZ/jga7jg5Hjgrnjg6/jg7zjg4njga8gJXMgJWQsICVkIOOBq+acn+mZkOOBjOWIh+OCjOOBvuOBmVxuIgorCisjfiBtc2dpZCAiU29ycnkgLS0geW91ciBhY2NvdW50IGhhcyBleHBpcmVkLlxuIgorI34gbXNnc3RyICLmrovlv7XjgafjgZnjgYwgLS0g44GC44Gq44Gf44Gu44Ki44Kr44Km44Oz44OI44Gv5pyf6ZmQ5YiH44KM44Gn44GZ44CCXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiB5b3VyIGFjY291bnQgZXhwaXJlcyBvbiAlcyAlZCwgJWRcbiIKKyN+IG1zZ3N0ciAi6K2m5ZGKOiDjgYLjgarjgZ/jga7jgqLjgqvjgqbjg7Pjg4jjga8gJXMgJWQsICVkIOOBq+acn+mZkOOBjOWIh+OCjOOBvuOBmVxuIgorCisjfiBtc2dpZCAiVGhlIHBhc3N3b3JkIG11c3QgY29udGFpbiBjaGFyYWN0ZXJzIG91dCBvZiB0d28gb2YgdGhlIGZvbGxvd2luZ1xuIgorI34gbXNnc3RyICLjg5Hjgrnjg6/jg7zjg4njga/ku6XkuIvjga7lhoUgMiDnqK7poZ7jga/lkKvjgb7jgozjgarjgZHjgozjgbDjgarjgorjgb7jgZvjgpNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJjbGFzc2VzOiAgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBub24gYWxwaGFudW1lcmljXG4iCisjfiBtc2dzdHIgIueorumhnjog5aSn5paH5a2X44Go5bCP5paH5a2X44CB5pWw5YCk44Go6Z2e44Ki44Or44OV44Kh44OZ44OD44OI5pWw5YCkXG4iCisKKyN+IG1zZ2lkICJjaGFyYWN0ZXJzLiBTZWUgcGFzc3dkKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorI34gbXNnc3RyICLmloflrZfjgIJwYXNzd2QoMSkg44KS44G/44Gm6Kmz57Sw44KS6Kq/44G544Gm44GP44Gg44GV44GE44CCXG4iCisKKyN+IG1zZ2lkICJyZWJvb3RlZCIKKyN+IG1zZ3N0ciAi5YaN6LW35YuVIgorCisjfiBtc2dpZCAiaGFsdGVkIgorI34gbXNnc3RyICLlgZzmraIiCisKKyN+IG1zZ2lkICJzIgorI34gbXNnc3RyICIgIgorCisjfiBtc2dpZCAic25vdy5vbiIKKyN+IG1zZ3N0ciAic25vdy5vbiIKKworI34gbXNnaWQgInNub3cub2ZmIgorI34gbXNnc3RyICJzbm93Lm9mZiIKKworI34gbXNnaWQgInNvZnRzY3JvbGwub24iCisjfiBtc2dzdHIgInNvZnRzY3JvbGwub24iCisKKyN+IG1zZ2lkICJzb2Z0c2Nyb2xsLm9mZiIKKyN+IG1zZ3N0ciAic29mdHNjcm9sbC5vZmYiCisKKyN+IG1zZ2lkICJ1c2FnZTogdHNvcnQgWyBpbnB1dGZpbGUgXVxuIgorI34gbXNnc3RyICLkvb/jgYTmlrk6IHRzb3J0IFsg5YWl5Yqb44OV44Kh44Kk44OrIF1cbiIKKworI34gbXNnaWQgInRzb3J0OiBvZGQgZGF0YSBjb3VudC5cbiIKKyN+IG1zZ3N0ciAidHNvcnQ6IOWkieOBquODh+ODvOOCv+OCq+OCpuODs+ODiOOBp+OBmeOAglxuIgorCisjfiBtc2dpZCAidHNvcnQ6IGN5Y2xlIGluIGRhdGEuXG4iCisjfiBtc2dzdHIgInRzb3J0OiDjg4fjg7zjgr/jgYzlvqrnkrDjgZfjgabjgYTjgb7jgZnjgIJcbiIKKworI34gbXNnaWQgInRzb3J0OiBpbnRlcm5hbCBlcnJvciAtLSBjb3VsZCBub3QgZmluZCBjeWNsZS5cbiIKKyN+IG1zZ3N0ciAidHNvcnQ6IOWGhemDqOOCqOODqeODvCAtLSDlvqrnkrDjgpLopovjgaTjgZHjgonjgozjgb7jgZvjgpPjgafjgZfjgZ/jgIJcbiIKKworI34gbXNnaWQgIm1vdW50OiB3YXJuaW5nOiBjYW5ub3QgY2hhbmdlIG1vdW50ZWQgZGV2aWNlIHdpdGggYSByZW1vdW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiDorablkYo6IOWGjeODnuOCpuODs+ODiOOBp+OBruODnuOCpuODs+ODiOa4iOODh+ODkOOCpOOCueOBruWkieabtOOBr+OBp+OBjeOBvuOBm+OCk1xuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IGNhbm5vdCBjaGFuZ2UgZmlsZXN5c3RlbSB0eXBlIHdpdGggYSByZW1vdW50XG4iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDog6K2m5ZGKOiDlho3jg57jgqbjg7Pjg4jjgafjga7jg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6Djgr/jgqTjg5fjga7lpInmm7Tjga/jgafjgY3jgb7jgZvjgpNcbiIKKworI34gbXNnaWQgIm1vdW50OiAlcyBoYXMgd3JvbmcgbWFqb3Igb3IgbWlub3IgbnVtYmVyIgorI34gbXNnc3RyICJtb3VudDogJXMg44GM6ZaT6YGV44Gj44Gf44Oh44K444Oj44O85Y+I44Gv44Oe44Kk44OK44O855Wq5Y+344Gr44Gq44Gj44Gm44GE44G+44GZIgorCisjfiBtc2dpZCAibm90IG1vdW50ZWQgYW55dGhpbmciCisjfiBtc2dzdHIgIuS9leOCguODnuOCpuODs+ODiOOBl+OBvuOBm+OCk+OBp+OBl+OBnyIKKworI34gbXNnaWQgImRlZmF1bHQiCisjfiBtc2dzdHIgIuWIneacn+WApCIKKworI34gbXNnaWQgIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgIgorI34gbXNnc3RyICIlczogJWx1IGludHMsICVsdS8lbHUgY2hhcnM7ICIKKworI34gbXNnaWQgImZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgIgorI34gbXNnc3RyICJmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICIKKworI34gbXNnaWQgIiVsdSBtYXgsICVsdSBub3dcbiIKKyN+IG1zZ3N0ciAiJWx1IOOBjOacgOWkp+OAgeePvuWcqCAlbHVcbiIKKworI34gbXNnaWQgIiB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKKyN+IG1zZ3N0ciAiIFxuIgorCisjfiBtc2dpZCAic2VuZF90aW1lPSVzcmN2X3RpbWU9JXNjaGFuZ2VfdGltZT0lcyIKKyN+IG1zZ3N0ciAi6YCB5L+h5Zue5pWwPSVz5Y+X5L+h5Zue5pWwPSVz5aSJ5pu05Zue5pWwPSVzIgorCisjfiBtc2dpZCAiTm90IFNldFxuIgorI34gbXNnc3RyICLjgrvjg4Pjg4jjgZXjgozjgabjgYTjgb7jgZvjgpNcbiIKKworI34gbXNnaWQgIiAgcmRldiAtcyAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICBzZXQgdGhlIFNXQVAgZGV2aWNlIgorI34gbXNnc3RyICIgIHJkZXYgLXMgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAg44K544Ov44OD44OX44OH44OQ44Kk44K544KS6Kit5a6aIgorCisjfiBtc2dpZCAiICBzd2FwZGV2IC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtcyIKKyN+IG1zZ3N0ciAiICBzd2FwZGV2IC4uLiAgICAgICAgICAgICAgICAgICAgIHJkZXYgLXMg44Go5ZCM44GYIgorCisjfiBtc2dpZCAiYW55dGhpbmdcbiIKKyN+IG1zZ3N0ciAi44Gq44KT44Gn44KCXG4iCisKKyN+IG1zZ2lkICJUeXBlbWF0aWMgUmF0ZSBzZXQgdG8gJS4xZiBjcHMgKGRlbGF5ID0gJWQgbXMpXG4iCisjfiBtc2dzdHIgIuOCreODvOODquODlOODvOODiOmAn+W6puOCkiAlLjFmIGNwcyDjgavjgrvjg4Pjg4jjgZfjgb7jgZfjgZ8gKOOCpuOCp+OCpOODiOOBryAlZCBtcylcbiIKKworI34gbXNnaWQgIlVzYWdlOiBrYmRyYXRlIFstVl0gWy1zXSBbLXIgcmF0ZV0gWy1kIGRlbGF5XVxuIgorI34gbXNnc3RyICLkvb/jgYTmlrk6IGtiZHJhdGUgWy1WXSBbLXNdIFstciByYXRlXSBbLWQgZGVsYXldXG4iCisKKyN+IG1zZ2lkICJDYW5ub3Qgb3BlbiAvZGV2L3BvcnQiCisjfiBtc2dzdHIgIi9kZXYvcG9ydCDjgpLplovjgZHjgb7jgZvjgpMiCisKKyN+IG1zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcyVkLlxuIgorI34gbXNnc3RyICIlcyVkIOOBq+ODh+OCo+OCueOCr+ODqeODmeODq+OCkuabuOOBjei+vOOBv+OBvuOBmeOAglxuIgorCisjfiBtc2dpZCAiJXMlZCBjb250YWlucyBubyBkaXNrbGFiZWwuXG4iCisjfiBtc2dzdHIgIiVzJWQg44Gv44OH44Kj44K544Kv44Op44OZ44Or44KS5ZCr44KT44Gn44GE44G+44Gb44KT44CCXG4iCisKKyN+IG1zZ2lkICJCb290c3RyYXAgaW5zdGFsbGVkIG9uICVzJWQuXG4iCisjfiBtc2dzdHIgIuODluODvOODiOOCueODiOODqeODg+ODl+OBryAlcyVkIOOBq+OCpOODs+OCueODiOODvOODq+OBleOCjOOBvuOBl+OBn+OAglxuIgorCisjfiBtc2dpZCAiJXM6IHVua25vd24gZ2VvbWV0cnlcbiIKKyN+IG1zZ3N0ciAiJXM6IOS4jeaYjuOBquOCuOOCquODoeODiOODqlxuIgorCisjfiBtc2dpZCAiZXhlYyByYyBmYWlsZWRcbiIKKyN+IG1zZ3N0ciAicmMg44Gu5a6f6KGM44Gr5aSx5pWXXG4iCisKKyN+IG1zZ2lkICJmb3JrIG9mIHJjIHNoZWxsIGZhaWxlZFxuIgorI34gbXNnc3RyICJyYyDjgrfjgqfjg6vjga4gZm9yayDjgavlpLHmlZfjgZfjgb7jgZfjgZ9cbiIKKworI34gbXNnaWQgIkNhbm5vdCBnZXQgbG9vcCBpbmZvIgorI34gbXNnc3RyICJsb29wIOOBruaDheWgseOCkuWPluW+l+OBp+OBjeOBvuOBm+OCkyIKKworI34gbXNnaWQgIm1vdW50OiBibG9jayBkZXZpY2UgJXMgaXMgbm90IHBlcm1pdHRlZCBvbiBpdHMgZmlsZXN5c3RlbSIKKyN+IG1zZ3N0ciAibW91bnQ6IOODluODreODg+OCr+ODh+ODkOOCpOOCuSAlcyDjga/jgZ3jga7jg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DkuIrjgafoqLHlj6/jgZXjgozjgb7jgZvjgpMiCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IG1vdW50IFstaFZdXG4iCisjfiAiICAgICAgIG1vdW50IC1hIFstbmZGcnN2d10gWy10IHZmc3R5cGVzXVxuIgorI34gIiAgICAgICBtb3VudCBbLW5mcnN2d10gWy1vIG9wdGlvbnNdIHNwZWNpYWwgfCBub2RlXG4iCisjfiAiICAgICAgIG1vdW50IFstbmZyc3Z3XSBbLXQgdmZzdHlwZV0gWy1vIG9wdGlvbnNdIHNwZWNpYWwgbm9kZVxuIgorI34gIiAgICAgICBBIHNwZWNpYWwgZGV2aWNlIGNhbiBiZSBpbmRpY2F0ZWQgYnkgIC1MIGxhYmVsICBvciAgLVUgdXVpZCAuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLkvb/jgYTmlrk6IG1vdW50IFstaFZdXG4iCisjfiAiICAgICAgICBtb3VudCAtYSBbLW5mRnJzdnddIFstdCDjg5XjgqHjgqTjg6vjgrfjgrnjg4bjg6DlnotdXG4iCisjfiAiICAgICAgICBtb3VudCBbLW5mcnN2d10gWy1vIOOCquODl+OCt+ODp+ODs10gc3BlY2lhbCB8IG5vZGVcbiIKKyN+ICIgICAgICAgIG1vdW50IFstbmZyc3Z3XSBbLXQg44OV44Kh44Kk44Or44K344K544OG44Og5Z6LXSBbLW8g44Kq44OX44K344On44OzXSBzcGVjaWFsICIKKyN+ICJub2RlXG4iCisjfiAiICAgICAgICDjgrnjg5rjgrfjg6Pjg6vjg4fjg5DjgqTjgrnjga8gIC1MIOODqeODmeODqyAg5Y+I44GvICAtVSB1dWlkIOOBp+aMh+ekuuOBp+OBjeOBvuOBmeOAglxuIgorCisjfiBtc2dpZCAibW91bnQ6ICVzOiVzIGZhaWxlZCwgcmVhc29uIGdpdmVuIGJ5IHNlcnZlcjogJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzOiVzIOOBjOWkseaVl+OAgeOCteODvOODkOODvOOBi+OCieOBrueQhueUsTogJXNcbiIKKworI34gbXNnaWQgInVzYWdlOiAlcyBbLXNobSB8IC1tc2cgfCAtc2VtXSBpZFxuIgorI34gbXNnc3RyICJcXOS9v+OBhOaWuTogJXMgWy1zaG0gfCAtbXNnIHwgLXNlbV0gaWRcbiIKKworI34gbXNnaWQgInNzY2FuZiBlcnJvciIKKyN+IG1zZ3N0ciAic3NjYW5mIOOCqOODqeODvCIKKworI34gbXNnaWQgIlVzYWdlOiAlcyBbIC1zIHNoZWxsIF0gIgorI34gbXNnc3RyICLkvb/jgYTmlrk6ICVzIFsgLXMg44K344Kn44OrIF0gIgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vbmwuZ21vIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vbmwuZ21vCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZDMwYjIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ubC5nbW8KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vbmwucG8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ubC5wbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODM3OTYxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vbmwucG8KQEAgLTAsMCArMSwxMjI2MCBAQAorIyBEdXRjaCB0cmFuc2xhdGlvbnMgZm9yIHV0aWwtbGludXgtbmctMi4xNC4yLXJjMi4KKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZS4KKyMKKyMgYmxvY2sgICAgLT4gYmxvaworIyBzZWN0b3IgICAtPiBzZWN0b3IKKyMgY3lsaW5kZXIgLT4gY2lsaW5kZXIKKyMgdm9sdW1lICAgLT4gdm9sdW1lbgorIyAoaW5vZGUgYmxpamZ0IG9udmVydGFhbGQpCisjCisjIFRhY28gV2l0dGUgPHRjd2l0dGVAY3MudXUubmw+LCAyMDAyLCAyMDAzLgorIyBMdWsgQ2xhZXMgPGx1ay5jbGFlc0B1Z2VudC5iZT4sIDIwMDUuCisjIEJlbm5vIFNjaHVsZW5iZXJnIDxiZW5ub0B2ZXJ0YWFsdC5ubD4sIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkuCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4LW5nLTIuMTQuMi1yYzJcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDktMDEtMzEgMjA6NTIrMDEwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogQmVubm8gU2NodWxlbmJlcmcgPGJlbm5vQHZlcnRhYWx0Lm5sPlxuIgorIkxhbmd1YWdlLVRlYW06IER1dGNoIDx2ZXJ0YWxpbmdAdnJpanNjaHJpZnQub3JnPlxuIgorIk1JTUUtVmVyc2lvbjogMS4wXG4iCisiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XG4iCisiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgorIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgorIlgtUG9lZGl0LUxhbmd1YWdlOiBEdXRjaFxuIgorIlgtUG9lZGl0LUNvdW50cnk6IE5FVEhFUkxBTkRTXG4iCisiWC1Qb2VkaXQtU291cmNlQ2hhcnNldDogdXRmLThcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjYzCittc2dpZCAic2V0IHJlYWQtb25seSIKK21zZ3N0ciAiYWxsZWVuLWxlemVuIGluc3RlbGxlbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjcwCittc2dpZCAic2V0IHJlYWQtd3JpdGUiCittc2dzdHIgImxlemVuLWVuLXNjaHJpanZlbiBpbnN0ZWxsZW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3NgorbXNnaWQgImdldCByZWFkLW9ubHkiCittc2dzdHIgInNjaHJpamZzdGF0dXMgb3B2cmFnZW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo4MgorIywgZnV6enkKK21zZ2lkICJnZXQgbG9naWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJzZWN0b3Jncm9vdHRlIG9wdnJhZ2VuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IHBoeXNpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgInNlY3Rvcmdyb290dGUgb3B2cmFnZW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo5NAorbXNnaWQgImdldCBtaW5pbXVtIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDAKK21zZ2lkICJnZXQgb3B0aW1hbCBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2CisjLCBmdXp6eQorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICJvbmdlbGRpZ2UgaW5vZGUtZ3Jvb3R0ZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExMgorIywgZnV6enkKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgIkV4dHJhIHNlY3RvcmVuIHBlciBjaWxpbmRlciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExOAorbXNnaWQgImdldCBibG9ja3NpemUiCittc2dzdHIgImJsb2tncm9vdHRlIG9wdnJhZ2VuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAiYmxva2dyb290dGUgaW5zdGVsbGVuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgInNlY3RvcmFhbnRhbCBvcHZyYWdlbiAoMzItYml0cykiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAiZ3Jvb3R0ZSBpbiBieXRlcyBvcHZyYWdlbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgInZvb3J1aXRsZXppbmcgaW5zdGVsbGVuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAidm9vcnVpdGxlemluZyBvcHZyYWdlbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1NworbXNnaWQgInNldCBmaWxlc3lzdGVtIHJlYWRhaGVhZCIKK21zZ3N0ciAidm9vcnVpdGxlemluZyB2YW4gYmVzdGFuZHNzeXN0ZWVtIGluc3RlbGxlbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2MworbXNnaWQgImdldCBmaWxlc3lzdGVtIHJlYWRhaGVhZCIKK21zZ3N0ciAidm9vcnVpdGxlemluZyB2YW4gYmVzdGFuZHNzeXN0ZWVtIG9wdnJhZ2VuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTY3Cittc2dpZCAiZmx1c2ggYnVmZmVycyIKK21zZ3N0ciAiYnVmZmVycyBsZWVnbWFrZW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJwYXJ0aXRpZXRhYmVsIG9wbmlldXcgaW5sZXplbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAiR2VicnVpazpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFthcHBhcmF0ZW5dXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyBbLXZ8LXFdIG9wZHJhY2h0ZW4gYXBwYXJhdGVuXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIgorbXNnc3RyICJCZXNjaGlrYmFyZSBvcGRyYWNodGVuOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3Cittc2dpZCAiZ2V0IHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9ycyIKK21zZ3N0ciAiZ3Jvb3R0ZSBpbiA1MTItYnl0ZSBzZWN0b3JlbiBvcHZyYWdlbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBjb21tYW5kOiAlc1xuIgorbXNnc3RyICIlczogT25iZWtlbmRlIG9wZHJhY2h0OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIHZlcmVpc3QgZWVuIGFyZ3VtZW50XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZmFpbGVkLlxuIgorbXNnc3RyICIlcyBpcyBtaXNsdWt0LlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN1Y2NlZWRlZC5cbiIKK21zZ3N0ciAiJXMgaXMgdm9sdG9vaWQuXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0MjcgZGlzay11dGlscy9ibG9ja2Rldi5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiJXM6IGthbiAlcyBuaWV0IG9wZW5lblxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpb2N0bCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogaW9jdGwoKS1mb3V0IHZvb3IgJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIFN0YXJ0U2VjICAgICAgICAgICAgU2l6ZSAgIERldmljZVxuIgorbXNnc3RyICJTdGF0LiBSQSBTZWNHdCBCbG9HdCAgIFN0YXJ0U2VjICAgICAgICAgR3Jvb3R0ZSAgQXBwYXJhYXRcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6XG4iCittc2dzdHIgIkdlYnJ1aWs6XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Tk9URTogZWx2dHVuZSBvbmx5IHdvcmtzIHdpdGggMi40IGtlcm5lbHNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInBhcnNlIGVycm9yXG4iCittc2dzdHIgIidzZWVrJy1mb3V0IgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibWlzc2luZyBibG9ja2RldmljZSwgdXNlIC1oIGZvciBoZWxwXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJlbHZ0dW5lIGlzIG9ubHkgdXNlZnVsIG9uIG9sZGVyIGtlcm5lbHM7XG4iCisiZm9yIDIuNiB1c2UgSU8gc2NoZWR1bGVyIHN5c2ZzIHR1bmFibGVzIGluc3RlYWQuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIkZvcm1hdHRlcmVuLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgInZvbHRvb2lkXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAiQ29udHJvbGVyZW4uLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIkdlbGV6ZW46ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAiUHJvYmxlZW0gYmlqIGxlemVuIHZhbiBjaWxpbmRlciAlZDsgdmVyd2FjaHQ6ICVkLCBnZWxlemVuOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImJhZCBkYXRhIGluIGN5bCAlZFxuIgorIkNvbnRpbnVpbmcgLi4uICIKK21zZ3N0ciAiIgorIlNsZWNodGUgZ2VnZXZlbnMgaW4gY2lsaW5kZXIgJWRcbiIKKyJEb29yZ2Fhbi4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo5NgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtbiBdIGRldmljZVxuIgorbXNnc3RyICJHZWJydWlrOiAgJXMgWyAtbiBdIGFwcGFyYWF0XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMTggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4NAorIzogZGlzay11dGlscy9pc29zaXplLmM6MTgxIGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMTQgZGlzay11dGlscy9ta2ZzLmM6NTIKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4MTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTcyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ4NyBtaXNjLXV0aWxzL2RkYXRlLmM6MTc5IG1pc2MtdXRpbHMvcmVuYW1lLmM6NzkKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTQ3IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXMpXG4iCittc2dzdHIgIiVzICglcylcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIiVzOiBpcyBnZWVuIGJsb2stYXBwYXJhYXRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiS2FuIGh1aWRpZ2Ugc29vcnQgZm9ybWF0dGVyaW5nIG5pZXQgYmVwYWxlbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlcy1zaWRlZCwgJWQgdHJhY2tzLCAlZCBzZWMvdHJhY2suIFRvdGFsIGNhcGFjaXR5ICVkIGtCLlxuIgorbXNnc3RyICIlc3ppamRpZywgJWQgc3BvcmVuLCAlZCBzZWN0b3Jlbi9zcG9vci4gIFRvdGFsZSBjYXBhY2l0ZWl0ICVkIGtCLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiRG91YmxlIgorbXNnc3RyICJEdWJiZWwiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJTaW5nbGUiCittc2dzdHIgIkVua2VsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1odl0gWy14IGRpcl0gZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAteCBkaXIgICAgIGV4dHJhY3QgaW50byBkaXJcbiIKKyIgLXYgICAgICAgICBiZSBtb3JlIHZlcmJvc2VcbiIKKyIgZmlsZSAgICAgICBmaWxlIHRvIHRlc3RcbiIKK21zZ3N0ciAiIgorIkdlYnJ1aWs6ICAlcyBbLWh2XSBbLXggbWFwXSBiZXN0YW5kXG4iCisiICAtaCAgICAgICAgZGV6ZSBodWxwdGVrc3QgdG9uZW5cbiIKKyIgIC12ICAgICAgICBtZWVyIGluZm9ybWF0aWUgd2VlcmdldmVuXG4iCisiICAteCBtYXAgICAgdWl0cGFra2VuIGluIGRlemUgbWFwXG4iCisiICBiZXN0YW5kICAgdGUgdGVzdGVuIGJlc3RhbmRcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICIoVm9sZ2VuZCBiZXN0YW5kOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib3BlbiBmYWlsZWQ6ICVzIgorbXNnc3RyICJvcGVucHR5KCkgaXMgbWlzbHVrdFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTcyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIGZhaWxlZDogdW5hYmxlIHRvIGRldGVybWluZSBkZXZpY2Ugc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIlczogaXMgZ2VlbiBibG9rLWFwcGFyYWF0XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODQgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyNgorbXNnaWQgImZpbGUgbGVuZ3RoIHRvbyBzaG9ydCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg5IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxOTcKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNTggZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCBmYWlsZWQ6ICVzIgorbXNnc3RyICIoVm9sZ2VuZCBiZXN0YW5kOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2CisjLCBmdXp6eQorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIkdlZWYgaGV0IHNvb3J0IGJlc3RhbmRzc3lzdGVlbTogIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdXBlcmJsb2NrIHNpemUgKCVkKSB0b28gc21hbGwiCittc2dzdHIgImFhbnRhbCBibG9ra2VuIGlzIHRlIGtsZWluIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjIzCittc2dpZCAiemVybyBmaWxlIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgZXh0ZW5kcyBwYXN0IGVuZCBvZiBmaWxlc3lzdGVtXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogcGFydGl0aWUgJXMgbG9vcHQgdG90IG5hIGhldCBlaW5kZSB2YW4gZGUgc2NoaWpmXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogb2xkIGNyYW1mcyBmb3JtYXRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjcyIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozMzkKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NzcgbG9naW4tdXRpbHMvY2hmbi5jOjUyOSBsb2dpbi11dGlscy9jaHNoLmM6NDM5CisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE0MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzIxCittc2dpZCAibWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jKCkgaXMgbWlzbHVrdCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI5NworIywgZnV6enkKK21zZ2lkICJjcmMgZXJyb3IiCittc2dzdHIgIiwgZm91dCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorIywgZnV6enkKK21zZ2lkICJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiCittc2dzdHIgImhvb2ZkLWlub2RlIGlzIGdlZW4gbWFwIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByb290IG9mZnNldCAoJWx1KSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mzg3Cittc2dpZCAiZGF0YSBibG9jayB0b28gbGFyZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICJtb2V0IHppam4gKCVkLCAlZCwgJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjMgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAiU3VwZXJibG9rOiAlemQgYnl0ZXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzMworIywgYy1mb3JtYXQKK21zZ2lkICJub24tc2l6ZSAoJWxkIHZzICVsZCkgYnl0ZXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKFZvbGdlbmQgYmVzdGFuZDogJXMpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiYWFua29wcGVsZW4gaXMgbWlzbHVrdCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiYWFua29wcGVsZW4gaXMgbWlzbHVrdCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXRpbWUgZmFpbGVkOiAlcyIKK21zZ3N0ciAib25nZWxkaWdlIHRpamRzbGltaWV0OiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJta2RpciBmYWlsZWQ6ICVzIgorbXNnc3RyICIvZGV2OiBjaGRpcigpIGlzIG1pc2x1a3Q6ICVtIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTExCittc2dpZCAiZmlsZW5hbWUgbGVuZ3RoIGlzIHplcm8iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxNAorbXNnaWQgImJhZCBmaWxlbmFtZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUyMQorIywgZnV6enkKK21zZ2lkICJiYWQgaW5vZGUgb2Zmc2V0IgorbXNnc3RyICJvbmdlbGRpZ2UgaW5vZGUtZ3Jvb3R0ZSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUzNworbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NDAKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIHNpemUgYW5kIG5vbi16ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTcxCittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3NAorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICJmb3V0IGJpaiBzY2hyaWp2ZW4gdmFuICVzOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJmc3luYygpIGlzIG1pc2x1a3QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlY2lhbCBmaWxlIGhhcyBub24temVybyBvZmZzZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlmbyBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQgaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJta25vZCBmYWlsZWQ6ICVzIgorbXNnc3RyICJhYW5rb3BwZWxlbiBpcyBtaXNsdWt0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIHN0YXJ0ICglbGQpIDwgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBmaWxlIGRhdGEgb2Zmc2V0IgorbXNnc3RyICJvbmdlbGRpZyBJRDogJXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICJSZXNlcnZlcmVuIHZhbiBidWZmZXIgaXMgbWlzbHVrdFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzI3CisjLCBmdXp6eQorbXNnaWQgImNvbXBpbGVkIHdpdGhvdXQgLXggc3VwcG9ydCIKK21zZ3N0ciAidW1vdW50OiBnZWNvbXBpbGVlcmQgem9uZGVyIG9uZGVyc3RldW5pbmcgdm9vciAnLWYnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1sYXJ2c21mXSAvZGV2L25hbWVcbiIKK21zZ3N0ciAiR2VicnVpazogICVzIFstbGFydnNtZl0gL2Rldi9uYWFtXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiJXMgaXMgYWFuZ2Vrb3BwZWxkLlx0ICIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI1Cittc2dpZCAiRG8geW91IHJlYWxseSB3YW50IHRvIGNvbnRpbnVlIgorbXNnc3RyICJXaWx0IHUgZWNodCBkb29yZ2FhbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgImNvbnRyb2xlIGlzIGFmZ2Vicm9rZW4uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJab25lbnVtbWVyIDwgRUVSU1RFWk9ORSBpbiBiZXN0YW5kICclcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiWm9uZW51bW1lciA+PSBaT05FUyBpbiBiZXN0YW5kICclcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzgwCittc2dpZCAiUmVtb3ZlIGJsb2NrIgorbXNnc3RyICJCbG9rIHZlcndpamRlcmVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogdW5hYmxlIHRvIHNlZWsgdG8gYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIkxlZXNmb3V0OiBrYW4gZ2VlbiAnc2VlaycgZG9lbiBuYWFyIGJsb2sgaW4gYmVzdGFuZCAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIkxlZXNmb3V0OiBzbGVjaHQgYmxvayBpbiBiZXN0YW5kICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisiKkludGVybmUgZm91dCo6IHBvZ2luZyB0b3Qgc2NocmlqdmVuIG5hYXIgZWVuIHNsZWNodCBibG9rLlxuIgorIlNjaHJpamZ2ZXJ6b2VrIGlzIGdlbmVnZWVyZC5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICInc2VlaycgaXMgbWlzbHVrdCBpbiB3cml0ZV9ibG9jaygpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiU2NocmlqZmZvdXQ6IHNsZWNodCBibG9rIGluIGJlc3RhbmQgJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NDQKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9zdXBlcl9ibG9jayIKK21zZ3N0ciAiJ3NlZWsnIGlzIG1pc2x1a3QgaW4gd3JpdGVfc3VwZXJfYmxvY2soKSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAia2FuIHN1cGVyYmxvayBuaWV0IHNjaHJpanZlbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAia2FuIGlub2RlLWthYXJ0IG5pZXQgc2NocmlqdmVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgImthbiB6b25lLWthYXJ0IG5pZXQgc2NocmlqdmVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJrYW4gaW5vZGVzIG5pZXQgc2NocmlqdmVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1ODcKK21zZ2lkICJzZWVrIGZhaWxlZCIKK21zZ3N0ciAiJ3NlZWsnIGlzIG1pc2x1a3QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5MSBkaXNrLXV0aWxzL21rZnMubWluaXguYzozOTkKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIGJ1ZmZlciBmb3Igc3VwZXJibG9jayIKK21zZ3N0ciAicmVzZXJ2ZXJlbiB2YW4gYnVmZmVycyB2b29yIGJpdGthYXJ0ZW4gaXMgbWlzbHVrdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTk0Cittc2dpZCAidW5hYmxlIHRvIHJlYWQgc3VwZXIgYmxvY2siCittc2dzdHIgImthbiBzdXBlcmJsb2sgbmlldCBsZXplbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjEyCittc2dpZCAiYmFkIG1hZ2ljIG51bWJlciBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAib25nZWxkaWcgbWFnaXNjaCBudW1tZXIgaW4gc3VwZXJibG9rIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTQKK21zZ2lkICJPbmx5IDFrIGJsb2Nrcy96b25lcyBzdXBwb3J0ZWQiCittc2dzdHIgIkFsbGVlbiBibG9ra2VuL3pvbmVzIHZhbiAxSyB6aWpuIG1vZ2VsaWprIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTYKK21zZ2lkICJiYWQgc19pbWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAib25nZWxkaWcgJ3NfaW1hcF9ibG9ja3MnLXZlbGQgaW4gc3VwZXJibG9rIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAib25nZWxkaWcgJ3Nfem1hcF9ibG9ja3MnLXZlbGQgaW4gc3VwZXJibG9rIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjUKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiCittc2dzdHIgIkthbiBnZWVuIGJ1ZmZlciByZXNlcnZlcmVuIHZvb3IgaW5vZGUta2FhcnQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyOAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgbWFwIgorbXNnc3RyICJLYW4gZ2VlbiBidWZmZXIgcmVzZXJ2ZXJlbiB2b29yIHpvbmUta2FhcnQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzMworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiS2FuIGdlZW4gYnVmZmVyIHJlc2VydmVyZW4gdm9vciBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICJLYW4gZ2VlbiBidWZmZXIgcmVzZXJ2ZXJlbiB2b29yIGlub2RlLWFhbnRhbCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjM5Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBjb3VudCIKK21zZ3N0ciAiS2FuIGdlZW4gYnVmZmVyIHJlc2VydmVyZW4gdm9vciB6b25lLWFhbnRhbCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICJLYW4gaW5vZGUta2FhcnQgbmlldCBsZXplbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgIkthbiB6b25lLWthYXJ0IG5pZXQgbGV6ZW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlcyIKK21zZ3N0ciAiS2FuIGlub2RlcyBuaWV0IGxlemVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogRWVyc3RlWm9uZSAhPSBOb3JtYWxlRWVyc3RlWm9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkIGlub2Rlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIGJsb2trZW5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU0IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdGRhdGF6b25lPSVsZCAoJWxkKVxuIgorbXNnc3RyICJFZXJzdGVHZWdldmVuc1pvbmU9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiWm9uZUdyb290dGU9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIk1heEdyb290dGU9JWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIkJlc3RhbmRzc3lzdGVlbXN0YXR1cz0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIm5hYW1sZW5ndGU9JWRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjczIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtYXJrZWQgdW51c2VkLCBidXQgdXNlZCBmb3IgZmlsZSAnJXMnXG4iCittc2dzdHIgIiIKKyJJbm9kZSAlZCBpcyBnZW1hcmtlZXJkIGFscyBvbmdlYnJ1aWt0LCBtYWFyIHdvcmR0IGdlYnJ1aWt0IGRvb3IgYmVzdGFuZCAnJSIKKyJzJy5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICJNYXJrZXJlbiBhbHMgZ2VicnVpa3QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iCittc2dzdHIgIkhldCBiZXN0YW5kICclcycgaGVlZnQgbW9kdXMgJTA1b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogaGV0IGFhbnRhbCBpbm9kZXMgaXMgdGUgZ3Jvb3QuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NzQKK21zZ2lkICJyb290IGlub2RlIGlzbid0IGEgZGlyZWN0b3J5IgorbXNnc3RyICJob29mZC1pbm9kZSBpcyBnZWVuIG1hcCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzg4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMQorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayBoYXMgYmVlbiB1c2VkIGJlZm9yZS4gTm93IGluIGZpbGUgYCVzJy4iCittc2dzdHIgIkJsb2sgaXMgYWwgZWVyZGVyIGdlYnJ1aWt0LiAgTnUgaW4gYmVzdGFuZCAnJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzkwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU1CisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTAKK21zZ2lkICJDbGVhciIKK21zZ3N0ciAiV2lzc2VuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iCittc2dzdHIgIkJsb2sgJWQgaW4gYmVzdGFuZCAnJXMnIGlzIGdlbWFya2VlcmQgYWxzIG9uZ2VicnVpa3QuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiQ29ycmlnZXJlbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGRpcmVjdG9yeSAnJXMnIGNvbnRhaW5zIGEgYmFkIGlub2RlIG51bWJlciBmb3IgZmlsZSAnJS4qcycuIgorbXNnc3RyICJEZSBtYXAgJyVzJyBiZXZhdCBlZW4gb25nZWxkaWcgaW5vZGUtbnVtbWVyIHZvb3IgYmVzdGFuZCAnJS4qcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBWZXJ3aWpkZXJlbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTkxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorbXNnc3RyICIlczogb25nZWxkaWdlIG1hcDogJy4nIGlzIG5pZXQgZWVyc3RlXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorbXNnc3RyICIlczogb25nZWxkaWdlIG1hcDogJy4uJyBpcyBuaWV0IHR3ZWVkZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMTkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAiKippbnRlcm5lIGZvdXQqKiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwNCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiBzaXplIDwgMzIiCittc2dzdHIgIiVzOiBvbmdlbGRpZ2UgbWFwOiBncm9vdHRlIDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAiJ3NlZWsnIGlzIG1pc2x1a3QgaW4gYmFkX3pvbmUoKSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICJJbm9kZSAlZC1tb2R1cyBpcyBuaWV0IGdld2lzdC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIklub2RlICVkIGlzIG9uZ2VicnVpa3QsIG1hYXIgZ2VtYXJrZWVyZCBhbHMgZ2VicnVpa3QgaW4gZGUgYml0a2FhcnQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiSW5vZGUgJWQgaXMgZ2VicnVpa3QsIG1hYXIgbmlldCBhbHMgem9kYW5pZyBnZW1hcmtlZXJkIGluIGRlIGJpdGthYXJ0LiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICJNYXJrZXJlbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIChtb2RlID0gJTA3byksIGlfbmxpbmtzPSVkLCBjb3VudGVkPSVkLiIKK21zZ3N0ciAiSW5vZGUgJWQgKG1vZHVzID0gJTA3byksIGlfbmxpbmtzPSVkLCBnZXRlbGQ9JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgImlfbmxpbmtzIG9wIGdldGVsZCBhYW50YWwgaW5zdGVsbGVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIKK21zZ3N0ciAiWm9uZSAlZCBpcyBnZW1hcmtlZXJkIGFscyBpbiBnZWJydWlrLCBtYWFyIGdlZW4gYmVzdGFuZCBnZWJydWlrdCBoZXQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIk1hcmtlcmluZyB2ZXJ3aWpkZXJlbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJab25lICVkOiBpbiBnZWJydWlrLCBnZXRlbGQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWm9uZSAlZDogbmlldCBpbiBnZWJydWlrLCBnZXRlbGQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorbXNnaWQgImJhZCBpbm9kZSBzaXplIgorbXNnc3RyICJvbmdlbGRpZ2UgaW5vZGUtZ3Jvb3R0ZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI5MQorbXNnaWQgImJhZCB2MiBpbm9kZSBzaXplIgorbXNnc3RyICJvbmdlbGRpZ2UgdjItaW5vZGUtZ3Jvb3R0ZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMxNworbXNnaWQgIm5lZWQgdGVybWluYWwgZm9yIGludGVyYWN0aXZlIHJlcGFpcnMiCittc2dzdHIgInZvb3IgaW50ZXJhY3RpZXZlIHJlcGFyYXRpZXMgaXMgZWVuIHRlcm1pbmFsIHZlcmVpc3QiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJyVzJzogJXMiCittc2dzdHIgImthbiAnJXMnIG5pZXQgb3BlbmVuOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBjbGVhbiwgbm8gY2hlY2suXG4iCittc2dzdHIgIiVzIGlzIHNjaG9vbiwgZ2VlbiBjb250cm9sZS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JjaW5nIGZpbGVzeXN0ZW0gY2hlY2sgb24gJXMuXG4iCittc2dzdHIgIkdlZHdvbmdlbiBiZXN0YW5kc3N5c3RlZW1jb250cm9sZSB2YW4gJXMuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBvbiAlcyBpcyBkaXJ0eSwgbmVlZHMgY2hlY2tpbmcuXG4iCittc2dzdHIgIkJlc3RhbmRzc3lzdGVlbSBvcCAlcyBpcyB2ZXJ2dWlsZCwgZWVuIGNvbnRyb2xlIGlzIG5vZGlnLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2bGQgaW5vZGVzIGdlYnJ1aWt0ICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkIHpvbmVzIGdlYnJ1aWt0ICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZkIHJlZ3VsYXIgZmlsZXNcbiIKKyIlNmQgZGlyZWN0b3JpZXNcbiIKKyIlNmQgY2hhcmFjdGVyIGRldmljZSBmaWxlc1xuIgorIiU2ZCBibG9jayBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgbGlua3NcbiIKKyIlNmQgc3ltYm9saWMgbGlua3NcbiIKKyItLS0tLS1cbiIKKyIlNmQgZmlsZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2ZCBnZXdvbmUgYmVzdGFuZGVuXG4iCisiJTZkIG1hcHBlblxuIgorIiU2ZCBieXRlLWFwcGFyYXRlblxuIgorIiU2ZCBibG9rLWFwcGFyYXRlblxuIgorIiU2ZCBrb3BwZWxpbmdlblxuIgorIiU2ZCBzeW1ib2xpc2NoZSBrb3BwZWxpbmdlblxuIgorIi0tLS0tLVxuIgorIiU2ZCBiZXN0YW5kZW5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkZJTEUgU1lTVEVNIEhBUyBCRUVOIENIQU5HRURcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiQkVTVEFORFNTWVNURUVNIElTIFZFUkFOREVSRFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IG9wZW5lbiBpcyBtaXNsdWt0OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNlZWsgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6ICdzZWVrJy1mb3V0IG9wICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogbGVlc2ZvdXQgb3AgJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvciBjb3VudDogJWQsIHNlY3RvciBzaXplOiAlZFxuIgorbXNnc3RyICJhYW50YWwgc2VjdG9yZW46ICVkLCBzZWN0b3Jncm9vdHRlOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiBwYXJzZSBlcnJvclxuIgorbXNnc3RyICIlczogb3B0aWUtb250bGVkaW5nc2ZvdXRcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorbXNnc3RyICJHZWJydWlrOiAgJXMgWy14XSBbLWQgPGdldGFsPl0gaXNvOTY2MC1hZmJlZWxkaW5nXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisiR2VicnVpazogICVzIFstdl0gWy1OIGFhbnRhbF9pbm9kZXNdIFstViB2b2x1bWVubmFhbV1cbiIKKyIgICAgICAgICAgWy1GIGJlc3RhbmRzc3lzdGVlbW5hYW1dIGFwcGFyYWF0IFthYW50YWxfYmxva2tlbl1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzMAorbXNnaWQgInZvbHVtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICJ2b2x1bWVubmFhbSBpcyB0ZSBsYW5nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgImJlc3RhbmRzc3lzdGVlbW5hYW0gaXMgdGUgbGFuZyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBkZXZpY2UgJXMiCittc2dzdHIgImthbiBhcHBhcmFhdCAlcyBuaWV0IHZpbmRlbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBibG9jayBzcGVjaWFsIGRldmljZSIKK21zZ3N0ciAiJXMgaXMgZ2VlbiBibG9rLWFwcGFyYWF0IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAia2FuICVzIG5pZXQgb3BlbmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgc2l6ZSBvZiAlcyIKK21zZ3N0ciAia2FuIGdyb290dGUgdmFuICVzIG5pZXQgYmVwYWxlbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgImFyZ3VtZW50IHZvb3IgYmxva2tlbiBpcyB0ZSBncm9vdCAtLSBtYXhpbXVtIGlzICVsdSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIwMgorbXNnaWQgInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiCittc2dzdHIgInRlIHZlZWwgaW5vZGVzIC0tIG1heGltdW0gaXMgNTEyIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlLCBuZWVkIGF0IGxlYXN0ICVsbHUgYmxvY2tzIgorbXNnc3RyICJuaWV0IGdlbm9lZyBydWltdGU6IG1pbnN0ZW5zICVsdSBibG9ra2VuIG5vZGlnIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjIzIGZkaXNrL2ZkaXNrLmM6MjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2U6ICVzXG4iCittc2dzdHIgIkFwcGFyYWF0OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlZvbHVtZTogPCUtNnM+XG4iCittc2dzdHIgIlZvbHVtZW46IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIkJlc3RhbmRzc3lzdGVlbW5hYW06IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrU2l6ZTogJWRcbiIKK21zZ3N0ciAiQmxva2dyb290dGU6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gMSBibG9jaylcbiIKK21zZ3N0ciAiSW5vZGVzOiAlZCAoaW4gMSBibG9rKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAlbGxkIGJsb2NrcylcbiIKK21zZ3N0ciAiSW5vZGVzOiAlZCAoaW4gJWxkIGJsb2trZW4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrczogJWxsZFxuIgorbXNnc3RyICJCbG9ra2VuOiAlbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAiSW5vZGUtZWluZGU6ICVkLCBHZWdldmVuc2VpbmRlOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM5Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzdXBlcmJsb2NrIgorbXNnc3RyICJmb3V0IGJpaiBzY2hyaWp2ZW4gdmFuIHN1cGVyYmxvayIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI1OQorbXNnaWQgImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIKK21zZ3N0ciAiZm91dCBiaWogc2NocmlqdmVuIHZhbiBlZXJzdGUgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjQKK21zZ2lkICJlcnJvciB3cml0aW5nIGlub2RlIgorbXNnc3RyICJmb3V0IGJpaiBzY2hyaWp2ZW4gdmFuIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAiJ3NlZWsnLWZvdXQiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKK21zZ2lkICJlcnJvciB3cml0aW5nIC4gZW50cnkiCittc2dzdHIgImZvdXQgYmlqIHNjaHJpanZlbiB2YW4gLi1pdGVtIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6Mjc3Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAiZm91dCBiaWogc2NocmlqdmVuIHZhbiAuLi1pdGVtIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNsb3NpbmcgJXMiCittc2dzdHIgImZvdXQgYmlqIHNsdWl0ZW4gdmFuICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogbWtmcyBbLVZdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBkZXZpY2UgW3NpemVdXG4iCittc2dzdHIgIiIKKyJHZWJydWlrOiAgbWtmcyBbLVZdIFstdCBiZXN0YW5kc3N5c3RlZW1zb29ydF0gW2Jlc3RhbmRzc3lzdGVlbW9wdGllc10gIgorImFwcGFyYWF0IFtncm9vdHRlXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo4OCBkaXNrLXV0aWxzL21rZnMuYzo5NiBmZGlzay9jZmRpc2suYzozNTMKKyM6IGdldG9wdC9nZXRvcHQuYzo4NiBnZXRvcHQvZ2V0b3B0LmM6OTYgbG9naW4tdXRpbHMvd2FsbC5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT3V0IG9mIG1lbW9yeSFcbiIKK21zZ3N0ciAiJXM6IE9udm9sZG9lbmRlIGdlaGV1Z2VuIGJlc2NoaWtiYWFyIVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtmcyAoJXMpXG4iCittc2dzdHIgIm1rZnMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MTI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaF0gWy12XSBbLWIgYmxrc2l6ZV0gWy1lIGVkaXRpb25dIFstTiBlbmRpYW5dIFstaSBmaWxlXSBbLW4gIgorIm5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAtdiAgICAgICAgIGJlIHZlcmJvc2VcbiIKKyIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgKG5vbi16ZXJvIGV4aXQgc3RhdHVzKVxuIgorIiAtYiBibGtzaXplIHVzZSB0aGlzIGJsb2Nrc2l6ZSwgbXVzdCBlcXVhbCBwYWdlIHNpemVcbiIKKyIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgY3JhbWZzIGVuZGlhbm5lc3MgKGJpZ3xsaXR0bGV8aG9zdCksIGRlZmF1bHQgaG9zdFxuIgorIiAtaSBmaWxlICAgIGluc2VydCBhIGZpbGUgaW1hZ2UgaW50byB0aGUgZmlsZXN5c3RlbSAocmVxdWlyZXMgPj0gMi40LjApXG4iCisiIC1uIG5hbWUgICAgc2V0IG5hbWUgb2YgY3JhbWZzIGZpbGVzeXN0ZW1cbiIKKyIgLXAgICAgICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIgorIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisiIC16ICAgICAgICAgbWFrZSBleHBsaWNpdCBob2xlcyAocmVxdWlyZXMgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3NlZFxuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCittc2dzdHIgIiIKKyJHZWJydWlrOiAgJXMgWy1oXSBbLXZdIFstYiBibG9rZ3Jvb3R0ZV0gWy1lIGVkaXRpZV0gWy1pIGJlc3RhbmRdXG4iCisiICAgICAgICAgIFstbiBuYWFtXSBtYXBuYWFtIHVpdHZvZXJiZXN0YW5kXG4iCisiXG4iCisiIC1oICAgICAgICAgIGRlemUgaHVscHRla3N0IHRvbmVuXG4iCisiIC12ICAgICAgICAgIGdlZGV0YWlsbGVlcmRlIHVpdHZvZXIgcHJvZHVjZXJlblxuIgorIiAtViAgICAgICAgICBwcm9ncmFtbWF2ZXJzaWUgdG9uZW5cbiIKKyIgLUUgICAgICAgICAgdmFuIGFsbGUgd2FhcnNjaHV3aW5nZW4gZm91dGVuIG1ha2VuIChtZXQgbmlldC1udWwgIgorImFmc2x1aXRzdGF0dXMpXG4iCisiXG4iCisiIC1iIGJsb2tncm9vdHRlICBkZXplIGJsb2tncm9vdHRlIGdlYnJ1aWtlbjsgbW9ldCBnZWxpamsgemlqbiBhYW4gIgorInBhZ2luYWdyb290dGVcbiIKKyIgLWUgZWRpdGllICAgZWRpdGllbnVtbWVyIGluc3RlbGxlbiAoZGVlbCB2YW4gYmVzdGFuZHNzeXN0ZWVtLUlEKVxuIgorIiAtaSBiZXN0YW5kICBlZW4gYmVzdGFuZHNhZmJlZWxkaW5nIGludm9lZ2VuIGluIGhldCBiZXN0YW5kc3N5c3RlZW1cbiIKKyIgLW4gbmFhbSAgICAgdGUgZ2VicnVpa2VuIG5hYW0gdmFuICdjcmFtZnMnLWJlc3RhbmRzc3lzdGVlbVxuIgorIiAtcCAgICAgICAgICBvcHZ1bGxlbiBtZXQgJWQgYnl0ZXMgdm9vciBvcHN0YXJ0Y29kZVxuIgorIiAtcyAgICAgICAgICAob3VkZSBvcHRpZSwgd29yZHQgZ2VuZWdlZXJkKSBtYXBpbmdhbmdlbiBzb3J0ZXJlblxuIgorIiAteiAgICAgICAgICBleHBsaWNpZXRlIGdhdGVuIG1ha2VuXG4iCisiXG4iCisiIG1hcG5hYW0gPSBiYXNpc21hcCB2YW4gaGV0IGluIHRlIHBha2tlbiBiZXN0YW5kc3N5c3RlZW1cbiIKKyIgdWl0dm9lcmJlc3RhbmQgPSB0ZSBnZWJydWlrZW4gdWl0dm9lcmJlc3RhbmRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVmVyeSBsb25nICglenUgYnl0ZXMpIGZpbGVuYW1lIGAlcycgZm91bmQuXG4iCisiIFBsZWFzZSBpbmNyZWFzZSBNQVhfSU5QVVRfTkFNRUxFTiBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICBFeGl0aW5nLlxuIgorbXNnc3RyICIiCisiRXJnIGxhbmdlIGJlc3RhbmRzbmFhbSAnJTIkcycgZ2V2b25kZW4gKCUxJHp1IGJ5dGVzKTtcbiIKKyJ2ZXJob29nIE1BWF9JTlBVVF9OQU1FTEVOIGluIG1rY3JhbWZzLmMgZW4gaGVyY29tcGlsZWVyIC0tIGdlc3RvcHRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICJiZXN0YW5kc3N5c3RlZW0gaXMgdGUgZ3Jvb3QgLS0gZ2VzdG9wdFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFJRUVFOiBibG9jayBcImNvbXByZXNzZWRcIiB0byA+IDIqYmxvY2tsZW5ndGggKCVsZClcbiIKK21zZ3N0ciAiT0VQUzogYmxvayBpcyBcImdlY29tcHJpbWVlcmRcIiB0b3QgPiAyKmJsb2tsZW5ndGUgKCVsZClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiJTYuMmYlJSAoJStsZCBieXRlcylcdCVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorIldhYXJzY2h1d2luZzogZGUgZ2VzY2hhdHRlIGJlbm9kaWdkZSBncm9vdHRlIGlzICVsbGQgTUIgKGJvdmVuZ3JlbnMpLFxuIgorIm1hYXIgZGUgbWF4aW1hbGUgYWZiZWVsZGluZ3Nncm9vdHRlIGlzICV1IE1CLlxuIgorIkRpdCBnYWF0IG1pc3NjaGllbiBuaWV0IGx1a2tlbi5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg4MAorbXNnaWQgIlJPTSBpbWFnZSBtYXAiCittc2dzdHIgImlubGV6ZW4gdmFuIFJPTS1hZmJlZWxkaW5nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiSW5jbHVzaWVmOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpcmVjdG9yeSBkYXRhOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiTWFwZ2VnZXZlbnM6ICV6ZCBieXRlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkV2ZXJ5dGhpbmc6ICV6ZCBraWxvYnl0ZXNcbiIKK21zZ3N0ciAiQWxsZXM6ICV6ZCBraWxvYnl0ZXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgYy1mb3JtYXQKK21zZ2lkICJTdXBlciBibG9jazogJXpkIGJ5dGVzXG4iCittc2dzdHIgIlN1cGVyYmxvazogJXpkIGJ5dGVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICJDUkM6ICV4XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICIiCisibmlldCBnZW5vZWcgcnVpbXRlIGdlcmVzZXJ2ZWVyZCB2b29yIFJPTS1hZmJlZWxkaW5nICglbGxkIGdlcmVzZXJ2ZWVyZCwgJXp1ICIKKyJnZWJydWlrdClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzMworbXNnaWQgIlJPTSBpbWFnZSIKK21zZ3N0ciAiUk9NLWFmYmVlbGRpbmciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiU2NocmlqdmVuIHZhbiBST00tYWZiZWVsZGluZyBpcyBtaXNsdWt0ICglemQgJXpkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICJXYWFyc2NodXdpbmc6IGJlc3RhbmRzbmFtZW4gYWZnZWthcHQgdG90IDI1NSBieXRlcy5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlcyB3ZXJlIHNraXBwZWQgZHVlIHRvIGVycm9ycy5cbiIKK21zZ3N0ciAiV2FhcnNjaHV3aW5nOiBiZXN0YW5kZW4gemlqbiBvdmVyZ2VzbGFnZW4gdmFud2VnZSBmb3V0ZW4uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogYmVzdGFuZHNncm9vdHRlcyBhZmdla2FwdCB0b3QgJWx1IE1CIChtaW51cyAxIGJ5dGUpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiB1aWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKyJXYWFyc2NodXdpbmc6IFVJRCdzIGFmZ2VrYXB0IHRvdCAldSBiaXRzLlxuIgorIihEaXQga2FuIGVlbiB2ZWlsaWdoZWlkc3Byb2JsZWVtIHppam4uKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBnaWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKyJXYWFyc2NodXdpbmc6IEdJRCdzIGFmZ2VrYXB0IHRvdCAldSBiaXRzLlxuIgorIihEaXQga2FuIGVlbiB2ZWlsaWdoZWlkc3Byb2JsZWVtIHppam4uKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorIldBQVJTQ0hVV0lORzogYXBwYXJhYXRudW1tZXJzIGFmZ2VrYXB0IHRvdCAldSBiaXRzLiAgRGl0IGJldGVrZW50IHplZXJcbiIKKyJ3YWFyc2NoaWpubGlqayBkYXQgc29tbWlnZSBhcHBhcmFhdGJlc3RhbmRlbiBuaWV0IGp1aXN0IHp1bGxlbiB6aWpuLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstYyB8IC1sIGZpbGVuYW1lXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICIiCisiR2VicnVpazogICVzIFstYyB8IC1sIGJlc3RhbmRzbmFhbV0gWy1uWFhdIFstaVhYXSAvZGV2L25hYW0gW2Jsb2trZW5dXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiJXMgaXMgYWFuZ2Vrb3BwZWxkOyB6YWwgaGllciBnZWVuIGJlc3RhbmRzc3lzdGVlbSBtYWtlbiEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICInc2VlaycgbmFhciBvcHN0YXJ0YmxvayBpcyBtaXNsdWt0IGluIHdyaXRlX3RhYmxlcygpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTAKK21zZ2lkICJ1bmFibGUgdG8gY2xlYXIgYm9vdCBzZWN0b3IiCittc2dzdHIgIndpc3NlbiB2YW4gb3BzdGFydHNlY3RvciBpcyBtaXNsdWt0IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTIKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgIidzZWVrJyBpcyBtaXNsdWt0IGluIHdyaXRlX3RhYmxlcygpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTYKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJzY2hyaWp2ZW4gdmFuIGlub2RlLWthYXJ0IGlzIG1pc2x1a3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAic2NocmlqdmVuIHZhbiB6b25lLWthYXJ0IGlzIG1pc2x1a3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwMAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgInNjaHJpanZlbiB2YW4gaW5vZGVzIGlzIG1pc2x1a3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwOQorbXNnaWQgIndyaXRlIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAic2NocmlqdmVuIGlzIG1pc2x1a3QgaW4gd3JpdGVfYmxvY2soKSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjE3IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjI5MQorIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MzQwCittc2dpZCAidG9vIG1hbnkgYmFkIGJsb2NrcyIKK21zZ3N0ciAidGUgdmVlbCBzbGVjaHRlIGJsb2trZW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgIm9udm9sZG9lbmRlIGdvZWRlIGJsb2trZW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0MAorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzIGZvciBtYXBzIgorbXNnc3RyICJyZXNlcnZlcmVuIHZhbiBidWZmZXJzIHZvb3IgYml0a2FhcnRlbiBpcyBtaXNsdWt0IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgInJlc2VydmVyZW4gdmFuIGJ1ZmZlciB2b29yIGlub2RlcyBpcyBtaXNsdWt0IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk1heHNpemU9JWxkXG4iCisiXG4iCittc2dzdHIgIiIKKyJNYXhHcm9vdHRlPSVsZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NjkKK21zZ2lkICJzZWVrIGZhaWxlZCBkdXJpbmcgdGVzdGluZyBvZiBibG9ja3MiCittc2dzdHIgIidzZWVrJyBpcyBtaXNsdWt0IHRpamRlbnMgdGVzdGVuIHZhbiBibG9ra2VuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2VpcmQgdmFsdWVzIGluIGRvX2NoZWNrOiBwcm9iYWJseSBidWdzXG4iCittc2dzdHIgIiIKKyJWcmVlbWRlIHdhYXJkZW4gaW4gZG9fY2hlY2soKTogd2FhcnNjaGlqbmxpamsgZWVuIGludGVybmUgcHJvZ3JhbW1hZm91dFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MDggZGlzay11dGlscy9ta3N3YXAuYzozMTUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBjaGVja19ibG9ja3MiCittc2dzdHIgIidzZWVrJyBpcyBtaXNsdWt0IGluIGNoZWNrX2Jsb2NrcygpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MTcKK21zZ2lkICJiYWQgYmxvY2tzIGJlZm9yZSBkYXRhLWFyZWE6IGNhbm5vdCBtYWtlIGZzIgorbXNnc3RyICJzbGVjaHRlIGJsb2trZW4gdsOzw7NyIGdlZ2V2ZW5zZ2ViaWVkOiBrYW4gZ2VlbiBiZXN0YW5kc3N5c3RlZW0gbWFrZW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyMyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgYmFkIGJsb2Nrc1xuIgorbXNnc3RyICIlZCBzbGVjaHRlIGJsb2trZW5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIGJsb2NrXG4iCittc2dzdHIgIsOpw6luIHNsZWNodCBibG9rXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzNQorbXNnaWQgImNhbid0IG9wZW4gZmlsZSBvZiBiYWQgYmxvY2tzIgorbXNnc3RyICJrYW4gc2xlY2h0ZWJsb2trZW5iZXN0YW5kIG5pZXQgb3BlbmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkYmxvY2sgbnVtYmVyIGlucHV0IGVycm9yIG9uIGxpbmUgJWRcbiIKK21zZ3N0ciAiaW52b2VyZm91dCBpbiBzbGVjaHRibG9rbnVtbWVyIG9wIHJlZ2VsICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0MAorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJrYW4gc2xlY2h0ZWJsb2trZW5iZXN0YW5kIG5pZXQgbGV6ZW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJ0b2wgZXJyb3I6IG51bWJlciBvZiBibG9ja3Mgbm90IHNwZWNpZmllZCIKK21zZ3N0ciAiZm91dCBpbiBzdHJ0b2woKTogYWFudGFsIGJsb2trZW4gbmlldCBhYW5nZWdldmVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgJXMiCittc2dzdHIgImthbiBzdGF0dXMgdmFuICVzIG5pZXQgYmVwYWxlbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJvcGVuZW4gdmFuICVzIGlzIG1pc2x1a3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIKK21zZ3N0ciAia2FuIHNlY3Rvcmdyb290dGUgdm9vciAlcyBuaWV0IGJlcGFsZW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICJibG9jayBzaXplIHNtYWxsZXIgdGhhbiBwaHlzaWNhbCBzZWN0b3Igc2l6ZSBvZiAlcyIKK21zZ3N0ciAiYmxva2dyb290dGUgaXMga2xlaW5lciBkYW4gZnlzaWVrZSBzZWN0b3Jncm9vdHRlIHZhbiAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2l6ZSBvZiAlcyIKK21zZ3N0ciAia2FuIGdyb290dGUgdmFuICVzIG5pZXQgYmVwYWxlbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIndpbGwgbm90IHRyeSB0byBtYWtlIGZpbGVzeXN0ZW0gb24gJyVzJyIKK21zZ3N0ciAiemFsIG5pZXQgcHJvYmVyZW4gZWVuIGJlc3RhbmRzc3lzdGVlbSB0ZSBtYWtlbiBvcCAnJXMnIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjUKK21zZ2lkICJudW1iZXIgb2YgYmxvY2tzIHRvbyBzbWFsbCIKK21zZ3N0ciAiYWFudGFsIGJsb2trZW4gaXMgdGUga2xlaW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWRcbiIKK21zZ3N0ciAiT25nZWxkaWdlIGRvb3IgZ2VicnVpa2VyIGFhbmdlZ2V2ZW4gcGFnaW5hZ3Jvb3R0ZSAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWQsIGluc3RlYWQgb2YgdGhlIHN5c3RlbSB2YWx1ZSAlZFxuIgorbXNnc3RyICIiCisiRGUgb3BnZWdldmVuIHBhZ2luYWdyb290dGUgJWQgd29yZHQgZ2VicnVpa3QsIGluIHBsYWF0cyB2YW4gc3lzdGVlbXdhYXJkZSAlIgorImQuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBzd2FwIGhlYWRlciBzaXplLCBubyBsYWJlbCB3cml0dGVuLlxuIgorbXNnc3RyICIiCisiT25qdWlzdGUgZ3Jvb3R0ZSB2YW4ga29wIHZhbiB3aXNzZWxnZWhldWdlbjsgZXIgaXMgZ2VlbiBsYWJlbCBnZXNjaHJldmVuLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICJMYWJlbCB3YXMgdHJ1bmNhdGVkLlxuIgorbXNnc3RyICJMYWJlbCBpcyBhZmdla2FwdC5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gbGFiZWwsICIKK21zZ3N0ciAiZ2VlbiBsYWJlbCwgIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1dWlkXG4iCittc2dzdHIgImdlZW4gVVVJRFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI4MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1wUEFHRVNaXSBbLUwgbGFiZWxdIFstVSBVVUlEXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiIgorIkdlYnJ1aWs6ICAlcyBbLWNdIFstdjB8LXYxXSBbLXBwYWdpbmFncm9vdHRlXSAgICAgICAgICAgWy1MIGxhYmVsXSBbLVUgIgorIlVVSURdICAvZGV2L25hYW0gIFtibG9ra2VuXVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI5NworbXNnaWQgInRvbyBtYW55IGJhZCBwYWdlcyIKK21zZ3N0ciAidGUgdmVlbCBzbGVjaHRlIHBhZ2luYSdzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiT252b2xkb2VuZGUgZ2VoZXVnZW4gYmVzY2hpa2JhYXIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICLDqcOpbiBzbGVjaHRlIHBhZ2luYVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVsdSBzbGVjaHRlIHBhZ2luYSdzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDAyIGRpc2stdXRpbHMvbWtzd2FwLmM6NDM5IGRpc2stdXRpbHMvbWtzd2FwLmM6NjU5Cittc2dpZCAidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIKK21zZ3N0ciAidGVydWdzcG9lbGVuIHZhbiB3aXNzZWxnZWhldWdlbmFwcGFyYWF0IGlzIG1pc2x1a3QiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBuZXcgbGliYmxraWQgcHJvYmUiCittc2dzdHIgInJlc2VydmVyZW4gdmFuIGJ1ZmZlciB2b29yIGlub2RlcyBpcyBtaXNsdWt0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgIndpc3NlbiB2YW4gb3BzdGFydHNlY3RvciBpcyBtaXNsdWt0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHdhcm5pbmc6IGRvbid0IGVyYXNlIGJvb3RiaXRzIHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoJXMgcGFydGl0aW9uIHRhYmxlIGRldGVjdGVkKS4gIgorbXNnc3RyICIgICBwICAgICAgQlNELXBhcnRpdGlldGFiZWwgd2VlcmdldmVuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICBvbiB3aG9sZSBkaXNrLiAiCittc2dzdHIgIiAgIHMgICAgICBjb21wbGV0ZSBzY2hpamZsYWJlbCB3ZWVyZ2V2ZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICBzICAgICAgY29tcGxldGUgc2NoaWpmbGFiZWwgd2VlcmdldmVuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjUyNAorIywgYy1mb3JtYXQKK21zZ2lkICIlMSRzOiB3YXJuaW5nOiBpZ25vcmUgLVUgKFVVSURzIGFyZSB1bnN1cHBvcnRlZCBieSAlMSRzKVxuIgorbXNnc3RyICIiCisiJTEkczogd2FhcnNjaHV3aW5nOiBvcHRpZSAnLVUnIHdvcmR0IGdlbmVnZWVyZFxuIgorIihVVUlEJ3Mgd29yZGVuIGRvb3IgJTEkcyBuaWV0IG9uZGVyc3RldW5kKVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IHN1cHBvcnQgc3dhcHNwYWNlIHZlcnNpb24gJWQuXG4iCittc2dzdHIgIiVzOiBmb3V0OiBvbmJla2VuZGUgdmVyc2llICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQ4Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgImZvdXQ6IGthbiBVVUlEIG5pZXQgb250bGVkZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIKK21zZ3N0ciAiJXM6IGZvdXQ6IE5lcmdlbnMgb20gd2lzc2VsZ2VoZXVnZW4gb3AgaW4gdGUgc3RlbGxlbj9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc2l6ZSAlbGx1IEtpQiBpcyBsYXJnZXIgdGhhbiBkZXZpY2Ugc2l6ZSAlbGx1IEtpQlxuIgorbXNnc3RyICIlczogZm91dDogZ3Jvb3R0ZSAlbHUgS2lCIGlzIGdyb3RlciBkYW4gYXBwYXJhYXRncm9vdHRlIHZhbiAlbHUgS2lCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc3dhcCBhcmVhIG5lZWRzIHRvIGJlIGF0IGxlYXN0ICVsZCBLaUJcbiIKK21zZ3N0ciAiJXM6IGZvdXQ6IHdpc3NlbGdlaGV1Z2VuIG1vZXQgbWluc3RlbnMgJWxkIEtpQiB6aWpuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd2FybmluZzogdHJ1bmNhdGluZyBzd2FwIGFyZWEgdG8gJWxsdSBLaUJcbiIKK21zZ3N0ciAiJXM6IHdhYXJzY2h1d2luZzogd2lzc2VsZ2VoZXVnZW4gaXMgYWZnZWthcHQgdG90ICVsZCBLaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiB3aWxsIG5vdCB0cnkgdG8gbWFrZSBzd2FwZGV2aWNlIG9uICclcydcbiIKK21zZ3N0ciAiJXM6IGZvdXQ6IHphbCBuaWV0IHByb2JlcmVuIHdpc3NlbGdlaGV1Z2VuIHRlIG1ha2VuIG9wICclcydcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiAlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIHN3YXBzcGFjZS5cbiIKK21zZ3N0ciAiJXM6IGZvdXQ6ICVzIGlzIGFhbmdla29wcGVsZDsgemFsIGhpZXIgZ2VlbiB3aXNzZWxnZWhldWdlbiBtYWtlblxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiSW5zdGVsbGVuIHZhbiB3aXNzZWxnZWhldWdlbiBpcyBtaXNsdWt0OiBvbmxlZXNiYWFyIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyB1cCBzd2Fwc3BhY2UgdmVyc2lvbiAxLCBzaXplID0gJWxsdSBLaUJcbiIKK21zZ3N0ciAiSW5zdGVsbGVuIHZhbiB3aXNzZWxnZWhldWdlbiwgdmVyc2llICVkLCBncm9vdHRlID0gJWxsdSBLaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gd3JpdGUgc2lnbmF0dXJlIHBhZ2U6ICVzIgorbXNnc3RyICIlczogJXM6IHNjaHJpanZlbiB2YW4gdmluZ2VyYWZkcnVrcGFnaW5hIGlzIG1pc2x1a3Q6ICVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY3MworbXNnaWQgImZzeW5jIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMoKSBpcyBtaXNsdWt0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIlczogJXM6IGthbiBnZWVuIFNFTGludXgtYmVzdGFuZHNsYWJlbCB2ZXJrcmlqZ2VuOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MAorbXNnaWQgInVuYWJsZSB0byBtYXRjaHBhdGhjb24oKSIKK21zZ3N0ciAia2FuIHVpdCBoZXQgcGFkIGdlZW4gY29udGV4dCBiZXBhbGVuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MworbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgbmV3IHNlbGludXggY29udGV4dCIKK21zZ3N0ciAia2FuIGdlZW4gbmlldXdlIFNFTGludXgtY29udGV4dCBhYW5tYWtlbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTUKK21zZ2lkICJjb3VsZG4ndCBjb21wdXRlIHNlbGludXggY29udGV4dCIKK21zZ3N0ciAia2FuIGdlZW4gbmlldXdlIFNFTGludXgtY29udGV4dCBiZXJla2VuZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NzAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiJXM6IGthbiAlcyBuaWV0IGhlcmxhYmVsZW4gbmFhciAlczogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiAgJXMgIgorbXNnc3RyICJHZWJydWlrOlxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlICclcycgaXMgY29udHJvbCByYXcgZGV2ICh1c2UgcmF3PE4+IHdoZXJlIDxOPiBpcyBncmVhdGVyIHRoYW4gemVybylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSBibG9jayBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgImthbiB2ZXJncmVuZGVsaW5nc2Jlc3RhbmQgJXMgbmlldCB2ZXJncmVuZGVsZW46ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSBibG9jayBkZXZcbiIKK21zZ3N0ciAiV2FhcnNjaHV3aW5nOiAlcyBpcyBnZWVuIGJsb2stYXBwYXJhYXRcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIG1hc3RlciByYXcgZGV2aWNlICciCittc2dzdHIgImthbiBhcHBhcmFhdCAlcyBuaWV0IHZpbmRlbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgcmF3IGRldmljZSAnJXMnICglcylcbiIKK21zZ3N0ciAia2FuIGFwcGFyYWF0ICVzIG5pZXQgdmluZGVuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUmF3IGRldmljZSAnJXMnIGlzIG5vdCBhIGNoYXJhY3RlciBkZXZcbiIKK21zZ3N0ciAiL2Rldi8lczogaXMgZ2VlbiBieXRlLWFwcGFyYWF0IgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgcmF3IGRldlxuIgorbXNnc3RyICIlcyBpcyBnZWVuIHNlcmnDq2xlIGxpam4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHF1ZXJ5aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjQxIGRpc2stdXRpbHMvcmF3LmM6MjYxCisjLCBjLWZvcm1hdAorbXNnaWQgInJhdyVkOlx0Ym91bmQgdG8gbWFqb3IgJWQsIG1pbm9yICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHNldHRpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgImZvdXQgYmlqIHN0b3BwZW4gdmFuIHNlcnZpY2U6IFwiJXNcIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzc4IGZkaXNrL2NmZGlzay5jOjIwODMKK21zZ2lkICJVbnVzYWJsZSIKK21zZ3N0ciAiW29uYnJ1aWtiYWFyXSIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgwIGZkaXNrL2NmZGlzay5jOjIwODUKK21zZ2lkICJGcmVlIFNwYWNlIgorbXNnc3RyICJWcmlqZSBydWltdGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MworbXNnaWQgIkxpbnV4IGV4dDIiCittc2dzdHIgIkxpbnV4IGV4dDIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NQorbXNnaWQgIkxpbnV4IGV4dDMiCittc2dzdHIgIkxpbnV4IGV4dDMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NworbXNnaWQgIkxpbnV4IFhGUyIKK21zZ3N0ciAiTGludXggWEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozODkKK21zZ2lkICJMaW51eCBKRlMiCittc2dzdHIgIkxpbnV4IEpGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkxCittc2dpZCAiTGludXggUmVpc2VyRlMiCittc2dzdHIgIkxpbnV4IFJlaXNlckZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NworbXNnaWQgIkxpbnV4IgorbXNnc3RyICJMaW51eCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk2Cittc2dpZCAiT1MvMiBIUEZTIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5OAorbXNnaWQgIk9TLzIgSUZTIgorbXNnc3RyICJPUy8yIElGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDAyCittc2dpZCAiTlRGUyIKK21zZ3N0ciAiTlRGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaGFzIGJlZW4gY2hhbmdlZC5cbiIKK21zZ3N0ciAiRGUgc2NoaWpmIGlzIHZlcmFuZGVyZC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYm9vdCB0aGUgc3lzdGVtIHRvIGVuc3VyZSB0aGUgcGFydGl0aW9uIHRhYmxlIGlzIGNvcnJlY3RseSB1cGRhdGVkLlxuIgorbXNnc3RyICIiCisiU3RhcnQgaGV0IHN5c3RlZW0gb3BuaWV1dyBvcCBvbSBlciB6ZWtlciB2YW4gdGUgemlqbiBkYXQgZGUgcGFydGl0aWV0YWJlbCAiCisianVpc3Qgd29yZHQgYmlqZ2V3ZXJrdC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJXQUFSU0NIVVdJTkc6IEFscyB1IERPUy02LngtcGFydGl0aWVzIGdlbWFha3Qgb2YgZ2V3aWp6aWdkIGhlYnQsXG4iCisicmFhZHBsZWVnIGRhbiBoZXQgY2ZkaXNrLWhhbmRib2VrIHZvb3IgbWVlciBpbmZvcm1hdGllLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTYKK21zZ2lkICJGQVRBTCBFUlJPUiIKK21zZ3N0ciAiRkFUQUxFIEZPVVQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNworbXNnaWQgIlByZXNzIGFueSBrZXkgdG8gZXhpdCBjZmRpc2siCittc2dzdHIgIkRydWsgb3AgZWVuIHRvZXRzIG9tIGNmZGlzayBhZiB0ZSBzbHVpdGVuIgorCisjOiBmZGlzay9jZmRpc2suYzo1NjQgZmRpc2svY2ZkaXNrLmM6NTcyCittc2dpZCAiQ2Fubm90IHNlZWsgb24gZGlzayBkcml2ZSIKK21zZ3N0ciAiS2FuIGdlZW4gJ3NlZWsnIGRvZW4gb3Agc2NoaWpmIgorCisjOiBmZGlzay9jZmRpc2suYzo1NjYKK21zZ2lkICJDYW5ub3QgcmVhZCBkaXNrIGRyaXZlIgorbXNnc3RyICJLYW4gc2NoaWpmIG5pZXQgbGV6ZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjU3NAorbXNnaWQgIkNhbm5vdCB3cml0ZSBkaXNrIGRyaXZlIgorbXNnc3RyICJLYW4gbmlldCBuYWFyIHNjaGlqZiBzY2hyaWp2ZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjkxNworbXNnaWQgIlRvbyBtYW55IHBhcnRpdGlvbnMiCittc2dzdHIgIlRlIHZlZWwgcGFydGl0aWVzIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiUGFydGl0aWUgYmVnaW50IHbDs8OzciBzZWN0b3IgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTI3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJQYXJ0aXRpZSBlaW5kaWd0IHbDs8OzciBzZWN0b3IgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTMyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiUGFydGl0aWUgYmVnaW50IG5hIGVpbmRlIHZhbiBzY2hpamYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJQYXJ0aXRpZSBlaW5kaWd0IG5hIGVpbmRlIHZhbiBzY2hpamYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk0MgorbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGluIHRoZSBmaW5hbCBwYXJ0aWFsIGN5bGluZGVyIgorbXNnc3RyICJQYXJ0aXRpZSBlaW5kaWd0IGluIGRlIGxhYXRzdGUgZ2VkZWVsdGVsaWprZSBjaWxpbmRlciIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY2Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG5vdCBpbiBkaXNrIG9yZGVyIgorbXNnc3RyICJsb2dpc2NoZSBwYXJ0aXRpZXMgbGlnZ2VuIG5pZXQgaW4gc2NoaWpmdm9sZ29yZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2OQorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJsb2dpc2NoZSBwYXJ0aXRpZXMgb3ZlcmxhcHBlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTczCittc2dpZCAiZW5sYXJnZWQgbG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgInZlcmdyb3RlIGxvZ2lzY2hlIHBhcnRpdGllcyBvdmVybGFwcGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICIiCisiISEhIEludGVybmUgZm91dCBiaWogaGV0IG1ha2VuIHZhbiBsb2dpc2NoZSBzY2hpamYgem9uZGVyIHVpdGdlYnJlaWRlICIKKyJwYXJ0aXRpZSAhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMTQgZmRpc2svY2ZkaXNrLmM6MTAyNgorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxvZ2ljYWwgZHJpdmUgaGVyZSAtLSB3b3VsZCBjcmVhdGUgdHdvIGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiIKKyJLYW4gaGllciBnZWVuIGxvZ2lzY2hlIHNjaGlqZiBtYWtlbiAtLSB6b3UgdHdlZSB1aXRnZWJyZWlkZSBwYXJ0aXRpZXMgbWFrZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjExNjgKK21zZ2lkICJNZW51IGl0ZW0gdG9vIGxvbmcuIE1lbnUgbWF5IGxvb2sgb2RkLiIKK21zZ3N0ciAiTWVudS1pdGVtIGlzIHRlIGxhbmcuICBNZW51IHppZXQgZXIgbWlzc2NoaWVuIHJhYXIgdWl0LiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTIyNAorbXNnaWQgIk1lbnUgd2l0aG91dCBkaXJlY3Rpb24uIERlZmF1bHRpbmcgdG8gaG9yaXpvbnRhbC4iCittc2dzdHIgIk1lbnUgem9uZGVyIHJpY2h0aW5nLiAgU3RhbmRhYXJkIHdvcmR0IGdlYnJ1aWt0OiBob3Jpem9udGFhbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAiT25nZWxkaWdlIHRvZXRzIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIkRydWsgb3AgZWVuIHRvZXRzIG9tIHZlcmRlciB0ZSBnYWFuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NgorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIlByaW1hcnkiCittc2dzdHIgIlByaW1haXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYKK21zZ2lkICJDcmVhdGUgYSBuZXcgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIlAgPSBlZW4gbmlldXdlIHByaW1haXJlIHBhcnRpdGllIG1ha2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgIkxvZ2lzY2giCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIkwgPSBlZW4gbmlldXdlIGxvZ2lzY2hlIHBhcnRpdGllIG1ha2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMgZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkNhbmNlbCIKK21zZ3N0ciAiYW5udWxlcmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMKK21zZ2lkICJEb24ndCBjcmVhdGUgYSBwYXJ0aXRpb24iCittc2dzdHIgIkVzYyxFc2MgPSBHZWVuIHBhcnRpdGllIG1ha2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiISEhIEludGVybmUgZm91dCAhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiR3Jvb3R0ZSAoaW4gTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIkJlZ2luIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBiZWdpbm5pbmcgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiQiA9IHBhcnRpdGllIHRvZXZvZWdlbiBhYW4gYmVnaW4gdmFuIHZyaWplIHJ1aW10ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkVuZCIKK21zZ3N0ciAiRWluZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJFID0gUGFydGl0aWUgdG9ldm9lZ2VuIGFhbiBlaW5kZSB2YW4gdnJpamUgcnVpbXRlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTAwCittc2dpZCAiTm8gcm9vbSB0byBjcmVhdGUgdGhlIGV4dGVuZGVkIHBhcnRpdGlvbiIKK21zZ3N0ciAiRXIgaXMgZ2VlbiBydWltdGUgb20gZGUgdWl0Z2VicmVpZGUgcGFydGl0aWUgdGUgbWFrZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkdlZW4gcGFydGl0aWV0YWJlbCBhYW53ZXppZy5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3OAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiR2VlbiBwYXJ0aXRpZXRhYmVsIGFhbndlemlnLiAgR2VzdGFydCBtZXQgZWVuIGxlZ2UgdGFiZWwuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIk9uanVpc3RlIHZpbmdlcmFmZHJ1ayBpbiBwYXJ0aXRpZXRhYmVsIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTkyCittc2dpZCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIKK21zZ3N0ciAiT25iZWtlbmQgcGFydGl0aWV0YWJlbHR5cGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTQKK21zZ2lkICJEbyB5b3Ugd2lzaCB0byBzdGFydCB3aXRoIGEgemVybyB0YWJsZSBbeS9OXSA/IgorbXNnc3RyICJXaWx0IHUgbWV0IGVlbiBsZWdlIHRhYmVsIGJlZ2lubmVuIFtqL05dID8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NDIKK21zZ2lkICJZb3Ugc3BlY2lmaWVkIG1vcmUgY3lsaW5kZXJzIHRoYW4gZml0IG9uIGRpc2siCittc2dzdHIgIlUgaGVidCBtZWVyIGNpbGluZGVycyBhYW5nZWdldmVuIGRhbiBlciBvcCBkZSBzY2hpamYgcGFzc2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc0Cittc2dpZCAiQ2Fubm90IG9wZW4gZGlzayBkcml2ZSIKK21zZ3N0ciAiS2FuIHNjaGlqZiBuaWV0IG9wZW5lbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NiBmZGlzay9jZmRpc2suYzoxODY1Cittc2dpZCAiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIKK21zZ3N0ciAiIgorIlNjaGlqZiBpcyBhbHMgYWxsZWVuLWxlemVuIGdlb3BlbmQgLS0gdSBoZWJ0IGdlZW4gdG9lZ2FuZ3NyZWNodGVuIG9tIHRlICIKKyJzY2hyaWp2ZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2ODcKK21zZ2lkICIiCisiV2FybmluZyEhICBVbnN1cHBvcnRlZCBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZC4gVXNlIEdOVSBQYXJ0ZWQuIgorbXNnc3RyICIiCisiV2FhcnNjaHV3aW5nOiBuaWV0LW9uZGVyc3RldW5kZSBHUFQgKEdVSUQtcGFydGl0aWV0YWJlbCkgZ2V2b25kZW4hXG4iCisiR2VicnVpayBHTlUgJ3BhcnRlZCcuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIkthbiBzY2hpamZncm9vdHRlIG5pZXQgYmVwYWxlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTczMgorbXNnaWQgIkJhZCBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiT25nZWxkaWdlIHByaW1haXJlIHBhcnRpdGllIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzYyCittc2dpZCAiQmFkIGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICJPbmdlbGRpZ2UgbG9naXNjaGUgcGFydGl0aWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4NzcKK21zZ2lkICJXYXJuaW5nISEgIFRoaXMgbWF5IGRlc3Ryb3kgZGF0YSBvbiB5b3VyIGRpc2shIgorbXNnc3RyICJXYWFyc2NodXdpbmchISAgRGl0IGthbiBnZWdldmVucyBvcCB1dyBzY2hpamYgd2lzc2VuISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4MQorbXNnaWQgIiIKKyJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrPyAoeWVzIG9yIG5vKTogIgorbXNnc3RyICIiCisiV2VldCB1IHpla2VyIGRhdCB1IGRlIHBhcnRpdGlldGFiZWwgbmFhciBzY2hpamYgd2lsdCBzY2hyaWp2ZW4/IChqYSBvZiBuZWUpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODcKK21zZ2lkICJubyIKK21zZ3N0ciAibmVlIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg5Cittc2dpZCAiRGlkIG5vdCB3cml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiUGFydGl0aWV0YWJlbCBpcyBuaWV0IG5hYXIgc2NoaWpmIGdlc2NocmV2ZW4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxODkxCittc2dpZCAieWVzIgorbXNnc3RyICJqYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5NQorbXNnaWQgIlBsZWFzZSBlbnRlciBgeWVzJyBvciBgbm8nIgorbXNnc3RyICJBbnR3b29yZCBtZXQgJ2phJyBvZiAnbmVlJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIlNjaHJpanZlbiB2YW4gcGFydGl0aWV0YWJlbCBuYWFyIHNjaGlqZi4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNCBmZGlzay9jZmRpc2suYzoxOTI4Cittc2dpZCAiV3JvdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIkRlIHBhcnRpdGlldGFiZWwgaXMgbmFhciBzY2hpamYgZ2VzY2hyZXZlbi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKKyMsIGZ1enp5Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIlBhcnRpdGlldGFiZWwgaXMgZ2VzY2hyZXZlbiwgbWFhciBvcG5pZXV3IGlubGV6ZW4gaXMgbWlzbHVrdC4gIEhlcnN0YXJ0IHV3ICIKKyJzeXN0ZWVtIG9tIGRlIHRhYmVsIGJpaiB0ZSB3ZXJrZW4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM2Cittc2dpZCAiTm8gcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJFciBpcyBnZWVuIHByaW1haXJlIHBhcnRpdGllIGFscyBvcHN0YXJ0YmFhciBhYW5nZWdldmVuLiAgRE9TIE1CUiBrYW4gZGl0ICIKKyJuaWV0IG9wc3RhcnRlbi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJNZWVyIGRhbiDDqcOpbiBwcmltYWlyZSBwYXJ0aXRpZSBpcyBhbHMgb3BzdGFydGJhYXIgYWFuZ2VnZXZlbi4gIERPUyBNQlIga2FuICIKKyJkaXQgbmlldCBvcHN0YXJ0ZW4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICIiCisiR2VlZiBlZW4gYmVzdGFuZHNuYWFtIG9wLCBvZiBkcnVrIG9wIEVudGVyIHZvb3Igd2VlcmdhdmUgb3AgaGV0IHNjaGVybTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgIkthbiBiZXN0YW5kICclcycgbmlldCBvcGVuZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXNcbiIKK21zZ3N0ciAiU2NoaWpmOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNlY3RvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2VjdG9yICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgW2dlZW5dICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NworbXNnaWQgIiAgIFByaS9Mb2ciCittc2dzdHIgIiAgIFByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgICBQcmltYWlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiICAgTG9naXNjaCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA4OSBmZGlzay9mZGlzay5jOjE3NjcgZmRpc2svZmRpc2suYzoyMTA2CisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjI3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MTYgZmRpc2svc2ZkaXNrLmM6NjM4Cittc2dpZCAiVW5rbm93biIKK21zZ3N0ciAiW29uYmVrZW5kXSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NSBmZGlzay9jZmRpc2suYzoyNTYzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOQorbXNnaWQgIkJvb3QiCittc2dzdHIgIk9wc3QuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk5Cittc2dpZCAiTm9uZSIKK21zZ3N0ciAiZ2VlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNCBmZGlzay9jZmRpc2suYzoyMjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiBUYWJsZSBmb3IgJXNcbiIKK21zZ3N0ciAiUGFydGl0aWV0YWJlbCB2YW4gJXM6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzYKK21zZ2lkICIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iCittc2dzdHIgIiAgICAgICAgICAgICAgICBFZXJzdGUgICAgIExhYXRzdGVcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNworbXNnaWQgIiIKKyIgIyBUeXBlICAgICAgIFNlY3RvciAgICAgIFNlY3RvciAgIE9mZnNldCAgICBMZW5ndGggICBGaWxlc3lzdGVtIFR5cGUgKElEKSAiCisiRmxhZ1xuIgorbXNnc3RyICIiCisiICMgVHlwZSAgICAgICAgIHNlY3RvciAgICAgIHNlY3RvciBQbGFhdHMgICAgICBMZW5ndGUgQmVzdGFuZHNzeXN0ZWVtIChJRCkgIgorIlZsYWdcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzOAorbXNnaWQgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiAgICAgICAgICAtLS0tQmVnaW4tLS0tICAgICAgICAtLS0tRWluZGUtLS0tICAgICAgICAgICAgICAgICAgQWFudGFsXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjIKK21zZ2lkICIgIyBGbGFncyBIZWFkIFNlY3QgIEN5bCAgIElEICBIZWFkIFNlY3QgIEN5bCAgICAgU2VjdG9yICAgIFNlY3RvcnNcbiIKK21zZ3N0ciAiICMgIFZsYWcgIEtvcCAgU2VjICBDaWwgICBJRCAgIEtvcCAgU2VjICBDaWwgU3RhcnRzZWN0b3IgICAgc2VjdG9yZW5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICItLSAgLS0tLSAgLS0tICAtLS0gLS0tLSAtLS0tICAgLS0tICAtLS0gLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICJSdXciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IgorbXNnc3RyICJSID0gZGUgdGFiZWwgaW4gcnV3ZS1nZWdldmVuc2luZGVsaW5nIHdlZXJnZXZlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NyBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiU2VjdG9ycyIKK21zZ3N0ciAiU2VjdG9yZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcKK21zZ2lkICJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICJTID0gZGUgdGFiZWwgZ2VvcmRlbmQgb3Agc2VjdG9yZW4gd2VlcmdldmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU4Cittc2dpZCAiVGFibGUiCittc2dzdHIgIlRhYmVsIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU4Cittc2dpZCAiSnVzdCBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJUID0gZ2V3b29uIGRlIHBhcnRpdGlldGFiZWwgd2VlcmdldmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICJFc2MsRXNjID0gdGFiZWwgbmlldCB3ZWVyZ2V2ZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODcKK21zZ2lkICJIZWxwIFNjcmVlbiBmb3IgY2ZkaXNrIgorbXNnc3RyICJIdWxwc2NoZXJtIHZvb3IgY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg5Cittc2dpZCAiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIgorbXNnc3RyICJEaXQgaXMgY2ZkaXNrLCBlZW4gc2NoaWpmcGFydGl0aW9uZXJpbmdzcHJvZ3JhbW1hIHdhYXJtZWUgdSBvcCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MAorbXNnaWQgImFsbG93cyB5b3UgdG8gY3JlYXRlLCBkZWxldGUgYW5kIG1vZGlmeSBwYXJ0aXRpb25zIG9uIHlvdXIgaGFyZCIKK21zZ3N0ciAidXcgaGFyZGUgc2NoaWpmIHBhcnRpdGllcyBrdW50IG1ha2VuLCB3aWp6aWdlbiBvZiB2ZXJ3aWpkZXJlbi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTEKK21zZ2lkICJkaXNrIGRyaXZlLiIKK21zZ3N0ciAiICAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJPcGRyYWNodCAgIEJldGVrZW5pcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICItLS0tLS0tLSAgIC0tLS0tLS0tLSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgYiAgICAgICAgICBUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgICBiICAgICAgJ29wc3RhcnRiYWFyJy12bGFnIHZvb3IgaHVpZGlnZSBwYXJ0aXRpZSBhYW4vdWl0emV0dGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk4Cittc2dpZCAiICBkICAgICAgICAgIERlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgICBkICAgICAgaHVpZGlnZSBwYXJ0aXRpZSB2ZXJ3aWpkZXJlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgZyAgICAgICAgICBDaGFuZ2UgY3lsaW5kZXJzLCBoZWFkcywgc2VjdG9ycy1wZXItdHJhY2sgcGFyYW1ldGVycyIKK21zZ3N0ciAiICAgIGcgICAgICBjaWxpbmRlcnMsIGtvcHBlbiwgc2VjdG9yZW4tcGVyLXNwb29yIHdpanppZ2VuOyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgKndhYXJzY2h1d2luZyo6IGRlemUgb3B0aWUgZGllbnQgYWxsZWVuIHRlIHdvcmRlbiBnZWJydWlrdCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICAgZG9vciBtZW5zZW4gZGllIGVjaHQgd2V0ZW4gd2F0IHplIGRvZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgICBoICAgICAgZGl0IGh1bHBzY2hlcm0gdG9uZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgICBtICAgICAgc2NoaWpmZ2VicnVpayB2YW4gZGUgaHVpZGlnZSBwYXJ0aXRpZSBtYXhpbWFsaXNlcmVuOyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAgICAgICAgICBOb3RlOiBUaGlzIG1heSBtYWtlIHRoZSBwYXJ0aXRpb24gaW5jb21wYXRpYmxlIHdpdGgiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgZGl0IGthbiBlZW4gcGFydGl0aWUgaW5jb21wYXRpYmVsIG1ha2VuIG1ldCBET1MsIE9TLzIsIC4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAgICAgICAgICBET1MsIE9TLzIsIC4uLiIKK21zZ3N0ciAiICAgICAgICAgICAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDYKK21zZ2lkICIgIG4gICAgICAgICAgQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICIgICAgbiAgICAgIG5pZXV3ZSBwYXJ0aXRpZSBtYWtlbiBpbiBkZSB2cmlqZSBydWltdGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIgICAgcCAgICAgIHBhcnRpdGlldGFiZWwgd2VlcmdldmVuIG9wIHNjaGVybSBvZiBuYWFyIGJlc3RhbmQ7IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICAgZXIgemlqbiB2ZXJzY2hpbGxlbmRlIG9wbWFrZW4gd2FhcnVpdCB1IGt1bnQga2llemVuOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIgICAgICAgICAgICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIiCisiICAgICAgICAgICAgIHIgLSBydXdlIGdlZ2V2ZW5zIChleGFjdCB3YXQgbmFhciBzY2hpamYgem91IHdvcmRlbiBnZXNjaHJldmVuKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAgICAgICAgICAgICBzIC0gVGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICIgICAgICAgICAgICAgcyAtIHRhYmVsIGdlb3JkZW5kIG9wIHNlY3RvcmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEyCittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICIgICAgICAgICAgICAgdCAtIHRhYmVsIGluIHJ1d2Ugb3BtYWFrIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICAgcSAgICAgIHByb2dyYW1tYSBhZnNsdWl0ZW4gem9uZGVyIGRlIHBhcnRpdGlldGFiZWwgdGUgc2NocmlqdmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIgICAgdCAgICAgIGJlc3RhbmRzc3lzdGVlbXNvb3J0IHdpanppZ2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE1Cittc2dpZCAiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIKK21zZ3N0ciAiICAgIHUgICAgICBnZWJydWlrdGUgZWVuaGVpZCB2b29yIHBhcnRpdGllZ3Jvb3R0ZSB3aWp6aWdlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNgorbXNnaWQgIiAgICAgICAgICAgICBSb3RhdGVzIHRocm91Z2ggTUIsIHNlY3RvcnMgYW5kIGN5bGluZGVycyIKK21zZ3N0ciAiICAgICAgICAgICAgIChyb3RlZXJ0IGRvb3IgTUIsIHNlY3RvcmVuIGVuIGNpbGluZGVycykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiICAgIFcgICAgICBwYXJ0aXRpZXRhYmVsIG5hYXIgc2NoaWpmIHNjaHJpanZlbiAobW9ldCBtZXQgaG9vZmRsZXR0ZXIpOyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgb21kYXQgZGl0IG1vZ2VsaWprIGdlZ2V2ZW5zIG9wIGRlIHNjaGlqZiB3aXN0LCBkaWVudCB1IGhldCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICAgICAgICAgICBlaXRoZXIgY29uZmlybSBvciBkZW55IHRoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciIKK21zZ3N0ciAiICAgICAgICAgICAgIHNjaHJpanZlbiB0ZSBiZXZlc3RpZ2VuIG1ldCAnamEnIG9mIHRlIHdlaWdlcmVuIG1ldCAnbmVlJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIgICAgICAgICAgICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMQorbXNnaWQgIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIgorbXNnc3RyICIgIG9taG9vZyAgIGFhbndpanplciBuYWFyIHZvcmlnZSBwYXJ0aXRpZSB2ZXJwbGFhdHNlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMgorbXNnaWQgIkRvd24gQXJyb3cgICBNb3ZlIGN1cnNvciB0byB0aGUgbmV4dCBwYXJ0aXRpb24iCittc2dzdHIgIiAgb21sYWFnICAgYWFud2lqemVyIG5hYXIgdm9sZ2VuZGUgcGFydGl0aWUgdmVycGxhYXRzZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICIgIEN0cmwtTCAgIGhldCBzY2hlcm0gb3BuaWV1dyB0ZWtlbmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI0Cittc2dpZCAiICA/ICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgICAgPyAgICAgIGRpdCBodWxwc2NoZXJtIHRvbmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI2Cittc2dpZCAiTm90ZTogQWxsIG9mIHRoZSBjb21tYW5kcyBjYW4gYmUgZW50ZXJlZCB3aXRoIGVpdGhlciB1cHBlciBvciBsb3dlciIKK21zZ3N0ciAiIgorIk9wbWVya2luZzogYWxsZSBvcGRyYWNodGVuIGt1bm5lbiB6b3dlbCBtZXQgaG9vZmRsZXR0ZXIgYWxzIGtsZWluZSBsZXR0ZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgIndvcmRlbiBpbmdldm9lcmQgLS0gYmVoYWx2ZSBXLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMyCittc2dpZCAiQ3lsaW5kZXJzIgorbXNnc3RyICJDaWxpbmRlcnMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTgKK21zZ2lkICJDaGFuZ2UgY3lsaW5kZXIgZ2VvbWV0cnkiCittc2dzdHIgIkNpbGluZGVyZ2VvbWV0cmllIHdpanppZ2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzAKK21zZ2lkICJIZWFkcyIKK21zZ3N0ciAiS29wcGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5Cittc2dpZCAiQ2hhbmdlIGhlYWQgZ2VvbWV0cnkiCittc2dzdHIgIktvcHBlbmdlb21ldHJpZSB3aWp6aWdlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiCittc2dzdHIgIlNlY3Rvcmdlb21ldHJpZSB3aWp6aWdlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MQorbXNnaWQgIkRvbmUiCittc2dzdHIgIktsYWFyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICJLbGFhciBtZXQgd2lqemlnZW4gdmFuIGdlb21ldHJpZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM3NAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzOiAiCittc2dzdHIgIkdlZWYgaGV0IGFhbnRhbCBjaWxpbmRlcnM6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIk9uanVpc3RlIHdhYXJkZSB2b29yIGNpbGluZGVycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAiR2VlZiBoZXQgYWFudGFsIGtvcHBlbjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzk4IGZkaXNrL2NmZGlzay5jOjI5NjgKK21zZ2lkICJJbGxlZ2FsIGhlYWRzIHZhbHVlIgorbXNnc3RyICJPbmp1aXN0ZSB3YWFyZGUgdm9vciBrb3BwZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MDQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrOiAiCittc2dzdHIgIkdlZWYgaGV0IGFhbnRhbCBzZWN0b3JlbiBwZXIgc3Bvb3I6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQxMSBmZGlzay9jZmRpc2suYzoyOTc1Cittc2dpZCAiSWxsZWdhbCBzZWN0b3JzIHZhbHVlIgorbXNnc3RyICJPbmp1aXN0ZSB3YWFyZGUgdm9vciBzZWN0b3JlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUxNAorbXNnaWQgIkVudGVyIGZpbGVzeXN0ZW0gdHlwZTogIgorbXNnc3RyICJHZWVmIGhldCBzb29ydCBiZXN0YW5kc3N5c3RlZW06ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzMgorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBlbXB0eSIKK21zZ3N0ciAiS2FuIGJlc3RhbmRzc3lzdGVlbXNvb3J0IG5pZXQgbmFhciAnbGVlZycgdmVyYW5kZXJlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzNAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBleHRlbmRlZCIKK21zZ3N0ciAiS2FuIGJlc3RhbmRzc3lzdGVlbXNvb3J0IG5pZXQgbmFhciAndWl0Z2VicmVpZCcgdmVyYW5kZXJlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIj8oJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjggZmRpc2svY2ZkaXNrLmM6MjU3MQorbXNnaWQgIiwgTkMiCittc2dzdHIgIiwgTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NzYgZmRpc2svY2ZkaXNrLmM6MjU3OQorbXNnaWQgIk5DIgorbXNnc3RyICJOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU4NworbXNnaWQgIlByaS9Mb2ciCittc2dzdHIgIlByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biAoJTAyWCkiCittc2dzdHIgIk9uYmVrZW5kICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAiU2NoaWpmOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICJHcm9vdHRlOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQuJWxsZCBHQiIKK21zZ3N0ciAiR3Jvb3R0ZTogJWxsZCBieXRlcywgJWxsZC4lbGxkIEdCIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAiS29wcGVuOiAlZCAgIFNlY3RvcmVuIHBlciBzcG9vcjogJWQgICBDaWxpbmRlcnM6ICVsbGQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIk5hYW0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiVmxhZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MworbXNnaWQgIlBhcnQgVHlwZSIKK21zZ3N0ciAiUGFydC50eXBlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg0Cittc2dpZCAiRlMgVHlwZSIKK21zZ3N0ciAiQmVzdGFuZHNzeXN0ZWVtIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg1Cittc2dpZCAiW0xhYmVsXSIKK21zZ3N0ciAiW0xhYmVsXSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NworbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICIgICBTZWN0b3JlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4OQorbXNnaWQgIiAgQ3lsaW5kZXJzIgorbXNnc3RyICIgIENpbGluZGVycyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MQorbXNnaWQgIiAgU2l6ZSAoTUIpIgorbXNnc3RyICJHcm9vdHRlIChNQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiR3Jvb3R0ZSAoR0IpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIm9wc3RhcnRCYWFyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJCID0gaHVpZGlnZSBwYXJ0aXRpZSB3ZWwvbmlldCBhbHMgb3BzdGFydGJhYXIgbWFya2VyZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUiCittc2dzdHIgInZlcndpakRlcmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiRCA9IGRlemUgcGFydGl0aWUgdmVyd2lqZGVyZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJHZW9tZXRyeSIKK21zZ3N0ciAiR2VvbWV0cmllIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiQ2hhbmdlIGRpc2sgZ2VvbWV0cnkgKGV4cGVydHMgb25seSkiCittc2dzdHIgIkcgPSBzY2hpamZnZW9tZXRyaWUgd2lqemlnZW4gKGFsbGVlbiB2b29yIGV4cGVydHMpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiSHVscCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICJIID0gaHVscHNjaGVybSB0b25lbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIgorbXNnc3RyICJNYXhpbWVyZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiIgorIk0gPSBzY2hpamZnZWJydWlrIG1heGltYWxpc2VyZW4gdm9vciBodWlkaWdlIHBhcnRpdGllIChhbGxlZW4gdm9vciBleHBlcnRzKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAiTmlldXciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIk4gPSBuaWV1d2UgcGFydGl0aWUgbWFrZW4gaW4gZGUgdnJpamUgcnVpbXRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQiCittc2dzdHIgIlA6dG9uZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIlAgPSBwYXJ0aXRpZXRhYmVsIHdlZXJnZXZlbiAob3AgaGV0IHNjaGVybSBvZiBuYWFyIGVlbiBiZXN0YW5kKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIlE6c3RvcHBlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJRID0gcHJvZ3JhbW1hIGFmc2x1aXRlbiB6b25kZXIgcGFydGl0aWV0YWJlbCB0ZSBzY2hyaWp2ZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJUeXBlIgorbXNnc3RyICJUOnN5c3RlZW0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSAoRE9TLCBMaW51eCwgT1MvMiBhbmQgc28gb24pIgorbXNnc3RyICJUID0gYmVzdGFuZHNzeXN0ZWVtc29vcnQgd2lqemlnZW4gKERPUywgTGludXgsIE9TLzIsIC4uLikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAiVTplZW5oZWlkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAiVSA9IHdlZXJnYXZlLWVlbmhlaWQgd2lqemlnZW4gKE1CLCBzZWN0b3JlbiwgY2lsaW5kZXJzKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJXOnNjaHJpanZlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrICh0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSkiCittc2dzdHIgIlcgPSBwYXJ0aXRpZXRhYmVsIG5hYXIgc2NoaWpmIHNjaHJpanZlbiAoZGl0IGthbiBnZWdldmVucyB3aXNzZW4pIgorCisjOiBmZGlzay9jZmRpc2suYzoyODA1Cittc2dpZCAiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiCittc2dzdHIgIkthbiBkZXplIHBhcnRpdGllIG5pZXQgb3BzdGFydGJhYXIgbWFrZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiS2FuIGdlZW4gbGVnZSBwYXJ0aXRpZSB2ZXJ3aWpkZXJlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICJLYW4gZGV6ZSBwYXJ0aXRpZSBuaWV0IG1heGltYWxpc2VyZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDUKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIKK21zZ3N0ciAiRGV6ZSBwYXJ0aXRpZSBpcyBvbmJydWlrYmFhciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJEZXplIHBhcnRpdGllIGlzIGFsIGluIGdlYnJ1aWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NjQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHRoZSB0eXBlIG9mIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiS2FuIG5pZXQgaGV0IHR5cGUgdmFuIGVlbiBsZWdlIHBhcnRpdGllIHdpanppZ2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoyODkxIGZkaXNrL2NmZGlzay5jOjI4OTcKK21zZ2lkICJObyBtb3JlIHBhcnRpdGlvbnMiCittc2dzdHIgIkdlZW4gcGFydGl0aWVzIG1lZXIgb3ZlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAiT25qdWlzdGUgb3BkcmFjaHQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiR2VicnVpazogICVzIFtvcHRpZXNdIGFwcGFyYWF0ICAgICAgICAgICAgICBpbnRlcmFjdGllZlxuIgorIiAgICAgICAgICAlcyAtUHtyfHN8dH0gW29wdGllc10gYXBwYXJhYXQgICAgcGFydGl0aWV0YWJlbCB3ZWVyZ2V2ZW5cbiIKKyIgICAgICAgICAgJXMgLXYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1tYXZlcnNpZSB0b25lblxuIgorIk9wdGllczpcbiIKKyItYSAgIGVlbiBwaWpsIGdlYnJ1aWtlbiBpbiBwbGFhdHMgdmFuIGVlbiBpbnZlcnNlIGJhbGs7XG4iCisiLXogICBtZXQgbGVnZSBwYXJ0aXRpZXRhYmVsIHN0YXJ0ZW4sIGluIHBsYWF0cyB2YW4gZGV6ZSB2YW4gc2NoaWpmIHRlICIKKyJsZXplbjtcbiIKKyItYyBDIC1oIEsgLXMgUyAgIGFuZGVyZSB3YWFyZGVuIGFmZHdpbmdlbiB2b29yIGhldCBhYW50YWwgY2lsaW5kZXJzLCBrb3BwZW4gIgorImVuXG4iCisiICAgICAgICAgICAgICAgICBzZWN0b3Jlbi9zcG9vciBkYW4gZGUga2VybmVsIGFhbmdlZWZ0LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza2FpeGxhYmVsLmM6MjcKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIEFJWCBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IExpbnV4IGNhbm5vdCBoYW5kbGUgdGhlc2VcbiIKKyJcdGRpc2tzIGF0IHRoZSBtb21lbnQuICBOZXZlcnRoZWxlc3Mgc29tZVxuIgorIlx0YWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorIlx0My4gQmVmb3JlIGRlbGV0aW5nIHRoaXMgcGh5c2ljYWwgdm9sdW1lIGJlIHN1cmVcbiIKKyJcdCAgIHRvIHJlbW92ZSB0aGUgZGlzayBsb2dpY2FsbHkgZnJvbSB5b3VyIEFJWFxuIgorIlx0ICAgbWFjaGluZS4gIChPdGhlcndpc2UgeW91IGJlY29tZSBhbiBBSVhwZXJ0KS4iCittc2dzdHIgIiIKKyJcbiIKKyIgICAgRXIgc3RhYXQgZWVuIGdlbGRpZyBBSVgtbGFiZWwgb3AgZGV6ZSBzY2hpamYuXG4iCisiICAgIEhlbGFhcyBvbmRlcnN0ZXVudCBMaW51eCBkZXplIHNjaGlqdmVuIG9wIGRpdCBtb21lbnQgbmlldC5cbiIKKyIgICAgVG9jaCB3YXQgYWR2aWVzOlxuIgorIiAgICAxLiBCaWogc2NocmlqdmVuIHphbCBmZGlzayBkZSBpbmhvdWQgZXJ2YW4gV0lTU0VOLlxuIgorIiAgICAyLiBDb250cm9sZWVyIG9mIGRlemUgc2NoaWpmIEVDSFQgTklFVCBub2cgZGVlbCB1aXRtYWFrdFxuIgorIiAgICAgICB2YW4gZWVuIHZvbHVtZW5ncm9lcCAtLSBhbmRlcnMgd2lzdCB1IG1vZ2VsaWprIGRlIGFuZGVyZVxuIgorIiAgICAgICBzY2hpanZlbiBvb2ssIGFscyBlciBnZWVuIG1pcnJvciBpcy5cbiIKKyIgICAgMy4gSGFhbCwgdm9vcmRhdCB1IGRpdCBmeXNpZWtlIHZvbHVtZW4gd2lzdCwgZGUgc2NoaWpmIGxvZ2lzY2hcbiIKKyIgICAgICAgdWl0IHV3IEFJWC1tYWNoaW5lLiAgKEFuZGVycyB3b3JkdCB1IGVlbiBBSVhwZXJ0KS4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkJTRCBsYWJlbCBmb3IgZGV2aWNlOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiQlNELWxhYmVsIHZvb3IgYXBwYXJhYXQ6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjggZmRpc2svZmRpc2suYzozOTQgZmRpc2svZmRpc2suYzo0MTMKKyM6IGZkaXNrL2ZkaXNrLmM6NDMxIGZkaXNrL2ZkaXNrLmM6NDM4IGZkaXNrL2ZkaXNrLmM6NDYxIGZkaXNrL2ZkaXNrLmM6NDc5CisjOiBmZGlzay9mZGlzay5jOjQ5NSBmZGlzay9mZGlzay5jOjUxMQorbXNnaWQgIkNvbW1hbmQgYWN0aW9uIgorbXNnc3RyICJPcGRyYWNodCAgQWN0aWUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjkKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgICAgIGVlbiBCU0QtcGFydGl0aWUgdmVyd2lqZGVyZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzAKK21zZ2lkICIgICBlICAgZWRpdCBkcml2ZSBkYXRhIgorbXNnc3RyICIgICBlICAgICAgc2NoaWpmZ2VnZXZlbnMgYmV3ZXJrZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICAgICBib290c3RyYXAgaW5zdGFsbGVyZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzIKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBmaWxlc3lzdGVtIHR5cGVzIgorbXNnc3RyICIgICBsICAgICAgYmVrZW5kZSBiZXN0YW5kc3N5c3RlZW1zb29ydGVuIG9wc29tbWVuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMzIGZkaXNrL2ZkaXNrLmM6NDAwIGZkaXNrL2ZkaXNrLmM6NDE5CisjOiBmZGlzay9mZGlzay5jOjQzMiBmZGlzay9mZGlzay5jOjQ0NCBmZGlzay9mZGlzay5jOjQ2OSBmZGlzay9mZGlzay5jOjQ4NgorIzogZmRpc2svZmRpc2suYzo1MDIgZmRpc2svZmRpc2suYzo1MjAKK21zZ2lkICIgICBtICAgcHJpbnQgdGhpcyBtZW51IgorbXNnc3RyICIgICBtICAgICAgZGl0IG1lbnUgdG9uZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzQKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICAgICBlZW4gbmlldXdlIEJTRC1wYXJ0aXRpZSB0b2V2b2VnZW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgICAgIEJTRC1wYXJ0aXRpZXRhYmVsIHdlZXJnZXZlbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgICAgIGFmc2x1aXRlbiB6b25kZXIgd2lqemlnaW5nZW4gb3AgdGUgc2xhYW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzcgZmRpc2svZmRpc2suYzo0NzIgZmRpc2svZmRpc2suYzo0ODkKKyM6IGZkaXNrL2ZkaXNrLmM6NTA1IGZkaXNrL2ZkaXNrLmM6NTIzCittc2dpZCAiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiCittc2dzdHIgIiAgIHIgICAgICB0ZXJ1ZyBuYWFyIGhvb2ZkbWVudSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOAorbXNnaWQgIiAgIHMgICBzaG93IGNvbXBsZXRlIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgICAgIGNvbXBsZXRlIHNjaGlqZmxhYmVsIHdlZXJnZXZlbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgICAgYmVzdGFuZHNzeXN0ZWVtLUlEIHZhbiBwYXJ0aXRpZSB3aWp6aWdlbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiICAgdSAgICAgIGdlYnJ1aWt0ZSBlZW5oZWlkIHdpanppZ2VuIChjaWxpbmRlcnMvc2VjdG9yZW4pIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQxCittc2dpZCAiICAgdyAgIHdyaXRlIGRpc2tsYWJlbCB0byBkaXNrIgorbXNnc3RyICIgICB3ICAgICAgc2NoaWpmbGFiZWwgbmFhciBzY2hpamYgc2NocmlqdmVuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQzCittc2dpZCAiICAgeCAgIGxpbmsgQlNEIHBhcnRpdGlvbiB0byBub24tQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgeCAgICAgIEJTRC1wYXJ0aXRpZSBrb3BwZWxlbiBhYW4gbmlldC1CU0QtcGFydGl0aWUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVzIGhhcyBpbnZhbGlkIHN0YXJ0aW5nIHNlY3RvciAwLlxuIgorbXNnc3RyICJQYXJ0aXRpZSAlcyBoZWVmdCBvbmdlbGRpZ2UgYmVnaW5zZWN0b3IgMC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIGRpc2tsYWJlbCBvZiAlcyBhdCBzZWN0b3IgJWQuXG4iCittc2dzdHIgIkxlemVuIHZhbiBzY2hpamZsYWJlbCB2YW4gJXMgYmlqIHNlY3RvciAlZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAiRXIgaXMgZ2VlbiAqQlNELXBhcnRpdGllIG9wICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjAzCittc2dpZCAiQlNEIGRpc2tsYWJlbCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJCU0Qtc2NoaWpmbGFiZWxvcGRyYWNodCAobSB2b29yIGh1bHApOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyODMgZmRpc2svZmRpc2suYzoyMzI4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzgKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3QgJXMiCittc2dzdHIgIkVlcnN0ZSAlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJXMgb3IgK3NpemUgb3IgK3NpemVNIG9yICtzaXplSyIKK21zZ3N0ciAiTGFhdHN0ZSAlcyBvZiArYWFudGFsIG9mICthYW50YWxLIG9mICthYW50YWxNIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVzXG4iCittc2dzdHIgInR5cGU6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJWRcbiIKK21zZ3N0ciAidHlwZTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgInNjaGlqZjogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxhYmVsOiAlLipzXG4iCittc2dzdHIgImxhYmVsOiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmxhZ3M6IgorbXNnc3RyICJvcHRpZXM6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiB2ZXJ3aWpkZXJiYWFyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiBlY2MiCittc2dzdHIgIiBlY2MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGJhZHNlY3QiCittc2dzdHIgIiBzbGVjaHRlX3NlY3RvcmVuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzL3NlY3RvcjogJWxkXG4iCittc2dzdHIgImJ5dGVzL3NlY3RvcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy90cmFjazogJWxkXG4iCittc2dzdHIgInNlY3RvcmVuL3Nwb29yOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNAorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJzcG9yZW4vY2lsaW5kZXI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJzZWN0b3Jlbi9jaWxpbmRlcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiY2lsaW5kZXJzOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgInJwbTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnRlcmxlYXZlOiAlZFxuIgorbXNnc3RyICJ0dXNzZW5ydWltdGU6ICVkXG4iCisKKyMgbGV0IG9wOiBrb210IHZha2VyIHZvb3IKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tza2V3OiAlZFxuIgorbXNnc3RyICJ0cmFja3NrZXc6ICVkXG4iCisKKyMgbGV0IG9wOiBrb210IHZha2VyIHZvb3IKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJza2V3OiAlZFxuIgorbXNnc3RyICJjeWxpbmRlcnNrZXc6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgIm92ZXJzY2hha2VsZW4gdmFuIGtvcDogJWxkXHQjIG1pbGxpc2Vjb25kZW5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgInNwb29yLXRvdC1zcG9vciAnc2Vlayc6ICVsZFx0IyBtaWxsaXNlY29uZGVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgInNjaGlqZmdlZ2V2ZW5zOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpZXM6XG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIyAgICAgICBzdGFydCAgICAgICBlbmQgICAgICBzaXplICAgICBmc3R5cGUgICBbZnNpemUgYnNpemUgICBjcGddXG4iCittc2dzdHIgIiMgICAgICAgYmVnaW4gICAgIGVpbmRlICAgZ3Jvb3R0ZSAgIGJzeXN0ZWVtICAgW2dydHRlIGJsZ3J0ICAgY3BnXVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGluZyBkaXNrbGFiZWwgdG8gJXMuXG4iCittc2dzdHIgIlNjaHJpanZlbiB2YW4gc2NoaWpmbGFiZWwgbmFhciAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQxOSBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIKK21zZ3N0ciAiJXMgYmV2YXQgZ2VlbiBzY2hpamZsYWJlbC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJXaWx0IHUgZWVuIHNjaGlqZmxhYmVsIG1ha2VuPyAoeS9uKSAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgImJ5dGVzL3NlY3RvciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NworbXNnaWQgInNlY3RvcnMvdHJhY2siCittc2dzdHIgInNlY3RvcmVuL3Nwb29yIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY4Cittc2dpZCAidHJhY2tzL2N5bGluZGVyIgorbXNnc3RyICJzcG9yZW4vY2lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjkgZmRpc2svZmRpc2suYzo3NDAgZmRpc2svZmRpc2suYzoxNTkyCisjOiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJjeWxpbmRlcnMiCittc2dzdHIgImNpbGluZGVycyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ3NgorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXIiCittc2dzdHIgInNlY3RvcmVuL2NpbGluZGVyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgPD0gc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciAoZGVmYXVsdCkuXG4iCittc2dzdHIgIk1vZXQgPD0gc2VjdG9yZW4vc3Bvb3IgKiBzcG9yZW4vY2lsaW5kZXIgemlqbi5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAicnBtIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAidHVzc2VucnVpbXRlIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICJ0cmFja3NrZXciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgImN5bGluZGVyc2tldyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgIm92ZXJzY2hha2VsZW4gdmFuIGtvcCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NworbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWsiCittc2dzdHIgInNwb29yLXRvdC1zcG9vciAnc2VlayciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKK21zZ3N0ciAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU1MworIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgb3ZlcmxhcHMgd2l0aCBkaXNrIGxhYmVsIVxuIgorbXNnc3RyICJCb290c3RyYXAgb3ZlcmxhcHQgbWV0IHNjaGlqZmxhYmVsIVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIGluc3RhbGxlZCBvbiAlcy5cbiIKK21zZ3N0ciAiQm9vdHN0cmFwIGdlw69uc3RhbGxlZXJkIG9wICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAiUGFydGl0aWUgKGEtJWMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MTcgZmRpc2svZmRpc2suYzoyNDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJ0aXRpb25zIGhhcyBiZWVuIGNyZWF0ZWRcbiIKK21zZ3N0ciAiSGV0IG1heGltdW0gYWFudGFsIHBhcnRpdGllcyBpcyBhYW5nZW1hYWt0LlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGFscmVhZHkgZXhpc3RzLlxuIgorbXNnc3RyICJEZXplIHBhcnRpdGllIGJlc3RhYXQgYWwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogdG9vIG1hbnkgcGFydGl0aW9ucyAoJWQsIG1heGltdW0gaXMgJWQpLlxuIgorbXNnc3RyICJXYWFyc2NodXdpbmc6IHRlIHZlZWwgcGFydGl0aWVzICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJMZWVnbWFrZW4gdmFuIHNjaGlqZmJ1ZmZlcnMuLi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTYKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiIGZkaXNrIFtvcHRpb25zXSA8ZGlzaz4gICAgY2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorIiBmZGlzayBbb3B0aW9uc10gLWwgPGRpc2s+IGxpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisiIGZkaXNrIC1zIDxwYXJ0aXRpb24+ICAgICAgZ2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtYiA8c2l6ZT4gICAgICAgICAgICAgICAgIHNlY3RvciBzaXplICg1MTIsIDEwMjQsIDIwNDggb3IgNDA5NilcbiIKKyIgLWMgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggb2ZmIERPUy1jb21wYXRpYmxlIG1vZGVcbiIKKyIgLWggICAgICAgICAgICAgICAgICAgICAgICBwcmludCBoZWxwXG4iCisiIC11IDxzaXplPiAgICAgICAgICAgICAgICAgZ2l2ZSBzaXplcyBpbiBzZWN0b3JzIGluc3RlYWQgb2YgY3lsaW5kZXJzXG4iCisiIC12ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgdmVyc2lvblxuIgorIiAtQyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBjeWxpbmRlcnNcbiIKKyIgLUggPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgaGVhZHNcbiIKKyIgLVMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2tcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlc1xuIgorbXNnc3RyICJLYW4gJXMgbmlldCBvcGVuZW5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgJXNcbiIKK21zZ3N0ciAiS2FuICVzIG5pZXQgbGV6ZW5cbiIKKworIzogZmRpc2svZmRpc2suYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNlZWsgb24gJXNcbiIKK21zZ3N0ciAiS2FuIGdlZW4gJ3NlZWsnIGRvZW4gb3AgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlICVzXG4iCittc2dzdHIgIkthbiBuaWV0IHNjaHJpanZlbiBuYWFyICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzXG4iCittc2dzdHIgImlvY3RsKEJMS0dFVFNJWkUpIGlzIG1pc2x1a3Qgb3AgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIkthbiBnZWVuIGdlaGV1Z2VuIG1lZXIgcmVzZXJ2ZXJlblxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NgorbXNnaWQgIkZhdGFsIGVycm9yXG4iCittc2dzdHIgIkZhdGFsZSBmb3V0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgICAgd2VsL25pZXQgYWxzIGFsbGVlbi1sZXplbiBpbnN0ZWxsZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk2IGZkaXNrL2ZkaXNrLmM6NDQwCittc2dpZCAiICAgYiAgIGVkaXQgYnNkIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgYiAgICAgIGVlbiBCU0Qtc2NoaWpmbGFiZWwgYmV3ZXJrZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiAgIGMgICAgICB3ZWwvbmlldCBhbHMgYWFua29wcGVsYmFhciBpbnN0ZWxsZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgICAgIGVlbiBwYXJ0aXRpZSB2ZXJ3aWpkZXJlbiIKKworIzogZmRpc2svZmRpc2suYzozOTkgZmRpc2svZmRpc2suYzo0MTggZmRpc2svZmRpc2suYzo0NDMKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgIGwgICAgICBhbGxlIGJla2VuZGUgcGFydGl0aWV0eXBlbiBvcHNvbW1lbiIKKworIzogZmRpc2svZmRpc2suYzo0MDEgZmRpc2svZmRpc2suYzo0MjAgZmRpc2svZmRpc2suYzo0NDUKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgICAgIGVlbiBuaWV1d2UgcGFydGl0aWUgdG9ldm9lZ2VuIgorCisjOiBmZGlzay9mZGlzay5jOjQwMiBmZGlzay9mZGlzay5jOjQyMSBmZGlzay9mZGlzay5jOjQzMyBmZGlzay9mZGlzay5jOjQ0NgorbXNnaWQgIiAgIG8gICBjcmVhdGUgYSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgbyAgICAgIGVlbiBuaWV1d2UsIGxlZ2UgRE9TLXBhcnRpdGlldGFiZWwgbWFrZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorbXNnaWQgIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgICAgZGUgcGFydGl0aWV0YWJlbCB3ZWVyZ2V2ZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgICAgZWVuIG5pZXV3LCBsZWVnIFN1bi1zY2hpamZsYWJlbCBtYWtlbiIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgICAgc3lzdGVlbS1JRCB2YW4gcGFydGl0aWUgd2lqemlnZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA3IGZkaXNrL2ZkaXNrLmM6NDI2IGZkaXNrL2ZkaXNrLmM6NDUxCittc2dpZCAiICAgdSAgIGNoYW5nZSBkaXNwbGF5L2VudHJ5IHVuaXRzIgorbXNnc3RyICIgICB1ICAgICAgd2VlcmdhdmUvaW52b2VyLWVlbmhlaWQgd2lqemlnZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA4IGZkaXNrL2ZkaXNrLmM6NDI3IGZkaXNrL2ZkaXNrLmM6NDUyIGZkaXNrL2ZkaXNrLmM6NDc0CisjOiBmZGlzay9mZGlzay5jOjQ5MSBmZGlzay9mZGlzay5jOjUwNyBmZGlzay9mZGlzay5jOjUyNQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgdiAgICAgIGRlIHBhcnRpdGlldGFiZWwgY29udHJvbGVyZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA5IGZkaXNrL2ZkaXNrLmM6NDI4IGZkaXNrL2ZkaXNrLmM6NDUzIGZkaXNrL2ZkaXNrLmM6NDc1CisjOiBmZGlzay9mZGlzay5jOjQ5MiBmZGlzay9mZGlzay5jOjUwOCBmZGlzay9mZGlzay5jOjUyNgorbXNnaWQgIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IgorbXNnc3RyICIgICB3ICAgICAgZGUgdGFiZWwgbmFhciBzY2hpamYgc2NocmlqdmVuIGVuIGFmc2x1aXRlbiIKKworIzogZmRpc2svZmRpc2suYzo0MTAgZmRpc2svZmRpc2suYzo0NTQKK21zZ2lkICIgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiICAgeCAgICAgIGV4dHJhIGZ1bmN0aW9uYWxpdGVpdCAoYWxsZWVuIHZvb3IgZXhwZXJ0cykiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0Cittc2dpZCAiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGEgICAgICBvcHN0YXJ0YmFyZSBwYXJ0aXRpZSBzZWxlY3RlcmVuIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAgICAgb3BzdGFydGJlc3RhbmQtaXRlbSBiZXdlcmtlbiIKKworIzogZmRpc2svZmRpc2suYzo0MTYKK21zZ2lkICIgICBjICAgc2VsZWN0IHNnaSBzd2FwIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYyAgICAgIFNHSS13aXNzZWxnZWhldWdlbnBhcnRpdGllIHNlbGVjdGVyZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDM5Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIGJvb3RhYmxlIGZsYWciCittc2dzdHIgIiAgIGEgICAgICB3ZWwvbmlldCBhbHMgb3BzdGFydGJhYXIgaW5zdGVsbGVuIgorCisjOiBmZGlzay9mZGlzay5jOjQ0MQorbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciCittc2dzdHIgIiAgIGMgICAgICB3ZWwvbmlldCBhbHMgRE9TLWNvbXBhdGliZWwgaW5zdGVsbGVuIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MgorbXNnaWQgIiAgIGEgICBjaGFuZ2UgbnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGEgICAgICBhYW50YWwgYWx0ZXJuYXRpZXZlIGNpbGluZGVycyB3aWp6aWdlbiIKKworIzogZmRpc2svZmRpc2suYzo0NjMgZmRpc2svZmRpc2suYzo0ODEgZmRpc2svZmRpc2suYzo0OTcgZmRpc2svZmRpc2suYzo1MTMKK21zZ2lkICIgICBjICAgY2hhbmdlIG51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGMgICAgICBhYW50YWwgY2lsaW5kZXJzIHdpanppZ2VuIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NCBmZGlzay9mZGlzay5jOjQ4MiBmZGlzay9mZGlzay5jOjQ5OCBmZGlzay9mZGlzay5jOjUxNAorbXNnaWQgIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZCAgICAgIHJ1d2UgZ2VnZXZlbnMgdmFuIHBhcnRpdGlldGFiZWwgd2VlcmdldmVuIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAgICAgYWFudGFsIGV4dHJhIHNlY3RvcmVuIHBlciBjaWxpbmRlciB3aWp6aWdlbiIKKworIzogZmRpc2svZmRpc2suYzo0NjYgZmRpc2svZmRpc2suYzo0ODUgZmRpc2svZmRpc2suYzo1MDEgZmRpc2svZmRpc2suYzo1MTgKK21zZ2lkICIgICBoICAgY2hhbmdlIG51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiICAgaCAgICAgIGFhbnRhbCBrb3BwZW4gd2lqemlnZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY3Cittc2dpZCAiICAgaSAgIGNoYW5nZSBpbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiICAgaSAgICAgIHR1c3NlbnJ1aW10ZWZhY3RvciB3aWp6aWdlbiIKKworIzogZmRpc2svZmRpc2suYzo0NjgKK21zZ2lkICIgICBvICAgY2hhbmdlIHJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIgICBvICAgICAgcm90YXRpZXNuZWxoZWlkIHdpanppZ2VuIChyb25kamVzIHBlciBtaW51dXQpIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorbXNnaWQgIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siCittc2dzdHIgIiAgIHMgICAgICBhYW50YWwgc2VjdG9yZW4vc3Bvb3Igd2lqemlnZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIgICB5ICAgICAgYWFudGFsIGZ5c2lla2UgY2lsaW5kZXJzIHdpanppZ2VuIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MCBmZGlzay9mZGlzay5jOjQ5NiBmZGlzay9mZGlzay5jOjUxMgorbXNnaWQgIiAgIGIgICBtb3ZlIGJlZ2lubmluZyBvZiBkYXRhIGluIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBiICAgICAgYmVnaW4gdmFuIGdlZ2V2ZW5zIGluIGVlbiBwYXJ0aXRpZSB2ZXJwbGFhdHNlbiIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKK21zZ2lkICIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIgICBlICAgICAgdWl0Z2VicmVpZGUgcGFydGl0aWVzIHdlZXJnZXZlbiIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgICAgZWVuIG5pZXV3LCBsZWVnIElSSVgoU0dJKS1zY2hpamZsYWJlbCBtYWtlbiIKKworIzogZmRpc2svZmRpc2suYzo1MTYKK21zZ2lkICIgICBmICAgZml4IHBhcnRpdGlvbiBvcmRlciIKK21zZ3N0ciAiICAgZiAgICAgIHBhcnRpdGlldm9sZ29yZGUgcmVwYXJlcmVuIgorCisjOiBmZGlzay9mZGlzay5jOjUxOQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgaSAgICAgIHNjaGlqZi1JRCB3aWp6aWdlbiIKKworIzogZmRpc2svZmRpc2suYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3Qgc2V0IgorbXNnc3RyICJVIG1vZXQgaW5zdGVsbGVuOiIKKworIzogZmRpc2svZmRpc2suYzo3MzYKK21zZ2lkICJoZWFkcyIKK21zZ3N0ciAia29wcGVuIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAic2VjdG9yZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyVzLlxuIgorIllvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBleHRyYSBmdW5jdGlvbnMgbWVudS5cbiIKK21zZ3N0ciAiIgorIiVzJXMuXG4iCisiVSBrdW50IGRpdCBkb2VuIHZhbnVpdCBoZXQgbWVudSBtZXQgZXh0cmEgZnVuY3RpZXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiBlbiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvXG4iCisiICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvXG4iCisiICAgICAgICAgc2VjdG9ycyAoY29tbWFuZCAndScpLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBjeWxpbmRlcnMgYXMgZGlzcGxheSB1bml0cyBhcmUgZGVwcmVjYXRlZC4gVXNlIGNvbW1hbmQgJ3UnIHRvXG4iCisiICAgICAgICAgY2hhbmdlIHVuaXRzIHRvIHNlY3RvcnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG9mZnNldCBpbiBwcmltYXJ5IGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJPbmdlbGRpZ2UgcGxhYXRzIGluIHByaW1haXJlIHVpdGdlYnJlaWRlIHBhcnRpdGllXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorIldhYXJzY2h1d2luZzogcGFydGl0aWVzIG5hICMlZCB3b3JkZW4gZ2VuZWdlZXJkLlxuIgorIlplIHp1bGxlbiB3b3JkZW4gKnZlcndpamRlcmQqIGFscyB1IGRlemUgcGFydGl0aWV0YWJlbCBvcHNsYWF0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBleHRyYSBsaW5rIHBvaW50ZXIgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogZXh0cmEga29wcGVsaW5nc3ZlcndpanplciBpbiBwYXJ0aXRpZXRhYmVsICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogZXh0cmEgZ2VnZXZlbnMgaW4gcGFydGl0aWV0YWJlbCAlZCB3b3JkZW4gZ2VuZWdlZXJkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9taXR0aW5nIGVtcHR5IHBhcnRpdGlvbiAoJWQpXG4iCittc2dzdHIgImxlZ2UgcGFydGl0aWUgKCVkKSB3b3JkdCB3ZWdnZWxhdGVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIlNjaGlqZi1JRDogMHglMDh4XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBkaXNrIGlkZW50aWZpZXIgKGN1cnJlbnQgMHglMDh4KTogIgorbXNnc3RyICJOaWV1dyBzY2hpamYtSUQgKGh1aWRpZ2UgaXMgMHglMDh4KTogIgorCisjOiBmZGlzay9mZGlzay5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgRE9TIGRpc2tsYWJlbCB3aXRoIGRpc2sgaWRlbnRpZmllciAweCUwOHguXG4iCisiQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLlxuIgorIkFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJFciB3b3JkdCBlZW4gbmlldXdlIERPUy1wYXJ0aXRpZXRhYmVsIGFhbmdlbWFha3QgbWV0IHNjaGlqZi1JRCAweCUwOHguXG4iCisiV2lqemlnaW5nZW4gdmluZGVuIGVua2VsIGVuIGFsbGVlbiBpbiBoZXQgZ2VoZXVnZW4gcGxhYXRzLCB0b3RkYXQgdSBiZXNsdWl0ICIKKyJ6ZVxuIgorIndlZyB0ZSBzY2hyaWp2ZW4uICBEYWFybmEgaXMgZGUgb3VkZSBpbmhvdWQgdWl0ZXJhYXJkIG5pZXQgbWVlciAiCisiaGVyc3RlbGJhYXIuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3RlOiBzZWN0b3Igc2l6ZSBpcyAlZCAobm90ICVkKVxuIgorbXNnc3RyICJMZXQgb3A6IHNlY3Rvcmdyb290dGUgaXMgJWQgKG5pZXQgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJVIHp1bHQgZ2VlbiBwYXJ0aXRpZXRhYmVsIGt1bm5lbiB3ZWdzY2hyaWp2ZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkaXNrIGhhcyBib3RoIERPUyBhbmQgQlNEIG1hZ2ljLlxuIgorIkdpdmUgdGhlICdiJyBjb21tYW5kIHRvIGdvIHRvIEJTRCBtb2RlLlxuIgorbXNnc3RyICIiCisiRGV6ZSBzY2hpamYgYmV2YXQgem93ZWwgRE9TLSBhbHMgQlNELXZpbmdlcmFmZHJ1a2tlbi5cbiIKKyJHZWVmIGRlIG9wZHJhY2h0ICdiJyBvbSBuYWFyIEJTRC1tb2R1cyB0ZSBnYWFuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSBjb250YWlucyBuZWl0aGVyIGEgdmFsaWQgRE9TIHBhcnRpdGlvbiB0YWJsZSwgbm9yIFN1biwgU0dJIG9yIE9TRiAiCisiZGlza2xhYmVsXG4iCittc2dzdHIgIkFwcGFyYWF0IGJldmF0IGdlZW4gZ2VsZGlnIERPUy0sIFN1bi0sIFNHSS0gb2YgT1NGLXNjaGlqZmxhYmVsLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW50ZXJuYWwgZXJyb3JcbiIKK21zZ3N0ciAiSW50ZXJuZSBmb3V0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI4MworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmluZyBleHRyYSBleHRlbmRlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiRXh0cmEgdWl0Z2VicmVpZGUgcGFydGl0aWUgJWQgd29yZHQgZ2VuZWdlZXJkLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGludmFsaWQgZmxhZyAweCUwNHggb2YgcGFydGl0aW9uIHRhYmxlICVkIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHciCisiKHJpdGUpXG4iCittc2dzdHIgIiIKKyJXYWFyc2NodXdpbmc6IG9uanVpc3RlIG9wdGllIDB4JTA0eCB2YW4gcGFydGl0aWV0YWJlbCAlZCB6YWxcbiIKKyJ3b3JkZW4gZ2Vjb3JyaWdlZXJkIGJpaiBoZXQgc2NocmlqdmVuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImdvdCBFT0YgdGhyaWNlIC0gZXhpdGluZy4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJkcmllbWFhbCBFT0Ygb250dmFuZ2VuIC0tIGFmc2x1aXRpbmcuLi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMzYwCittc2dpZCAiSGV4IGNvZGUgKHR5cGUgTCB0byBsaXN0IGNvZGVzKTogIgorbXNnc3RyICJIZXgtY29kZSAodHlwIEwgb20gYWxsZSBjb2RlcyB0ZSB0b25lbik6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiJXMgKCV1LSV1LCBzdGFuZGFhcmQgJXUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnN1cHBvcnRlZCBzdWZmaXg6ICclcycuXG4iCittc2dzdHIgIk9uYmVrZW5kIGFjaHRlcnZvZWdzZWw6ICclcycuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VwcG9ydGVkOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaUJ5dGUpLCBNICAoTWViaUJ5dGUpLCBHICAoR2liaUJ5dGUpXG4iCittc2dzdHIgIiIKKyJNb2dlbGlqayB6aWpuOiAxMF5OOiBLQiAoa2lsb2J5dGUpLCBNQiAoTWVnYWJ5dGUpLCBHQiAoR2lnYWJ5dGUpXG4iCisiICAgICAgICAgICAgICAgIDJeTjogSyAgKEtpYmlieXRlKSwgTSAgKE1lYmlieXRlKSwgRyAgKEdpYmlieXRlKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgZGVmYXVsdCB2YWx1ZSAldVxuIgorbXNnc3RyICJTdGFuZGFhcmR3YWFyZGUgJXUgd29yZHQgZ2VicnVpa3RcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlZhbHVlIG91dCBvZiByYW5nZS5cbiIKK21zZ3N0ciAiV2FhcmRlIGxpZ3QgYnVpdGVuIGJlcmVpay5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNTE4Cittc2dpZCAiUGFydGl0aW9uIG51bWJlciIKK21zZ3N0ciAiUGFydGl0aWVudW1tZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAiV2FhcnNjaHV3aW5nOiBwYXJ0aXRpZSAlZCBoZWVmdCBlZW4gbGVnZSB0eXBlYWFuZHVpZGluZ1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJHZXNlbGVjdGVlcmRlIHBhcnRpdGllIGlzICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1NAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBwYXJ0aXRpb24gaXMgZGVmaW5lZCB5ZXQhXG4iCittc2dzdHIgIkVyIHppam4gbm9nIGdlZW4gcGFydGl0aWVzIGdlZGVmaW5pZWVyZCFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBwcmltYXJ5IHBhcnRpdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeSFcbiIKK21zZ3N0ciAiQWxsZSBwcmltYWlyZSBwYXJ0aXRpZXMgemlqbiBhbCBnZWRlZmluaWVlcmQhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgImN5bGluZGVyIgorbXNnc3RyICJjaWxpbmRlciIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICJzZWN0b3IiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIkVlbmhlaWQgdm9vciB3ZWVyZ2F2ZS9pbnZvZXIgaXMgdmVyYW5kZXJkIG5hYXI6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIldBQVJTQ0hVV0lORzogUGFydGl0aWUgJWQgaXMgZWVuIHVpdGdlYnJlaWRlIHBhcnRpdGllXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIHNldFxuIgorbXNnc3RyICJET1MtY29tcGF0aWJpbGl0ZWl0IGlzIGFhbmdlemV0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMgorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXRcbiIKK21zZ3N0ciAiRE9TLWNvbXBhdGliaWxpdGVpdCBpcyB1aXRnZXpldFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiUGFydGl0aWUgJWQgYmVzdGFhdCBub2cgbmlldCFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKyJUeXBlIDAgYmV0ZWtlbnQgb3AgdmVlbCBzeXN0ZW1lbiAndnJpamUgcnVpbXRlJ1xuIgorIihtYWFyIG5pZXQgb3AgTGludXgpLiAgSGV0IGlzIHdhYXJzY2hpam5saWprIG5pZXRcbiIKKyJ2ZXJzdGFuZGlnIG9tIHBhcnRpdGllcyB0ZSBoZWJiZW4gdmFuIHR5cGUgMC5cbiIKKyJFZW4gcGFydGl0aWUgdmVyd2lqZGVyZW4ga2FuIG1ldCBkZSBvcGRyYWNodCAnZCcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTczNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGNhbm5vdCBjaGFuZ2UgYSBwYXJ0aXRpb24gaW50byBhbiBleHRlbmRlZCBvbmUgb3IgdmljZSB2ZXJzYVxuIgorIkRlbGV0ZSBpdCBmaXJzdC5cbiIKK21zZ3N0ciAiIgorIlUga3VudCBlZW4gZ2V3b25lIHBhcnRpdGllIG5pZXQgdmVyYW5kZXJlbiBpbiBlZW4gdWl0Z2VicmVpZGUgb2YgYW5kZXJzb20uXG4iCisiVmVyd2lqZGVyIGRlIHBhcnRpdGllIGVlcnN0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiT3ZlcndlZWcgb20gcGFydGl0aWUgMyBhbHMgR2VoZWxlIFNjaGlqZiAoNSkgdGUgbGF0ZW4sIHpvYWxzXG4iCisiU3VuT1MvU29sYXJpcyBoZXQgdmVyd2FjaHQgZW4gb29rIExpbnV4IGhldCBoZXQgbGllZnN0IGhlZWZ0LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDkgYXMgdm9sdW1lIGhlYWRlciAoMCksXG4iCisiYW5kIHBhcnRpdGlvbiAxMSBhcyBlbnRpcmUgdm9sdW1lICg2KSwgYXMgSVJJWCBleHBlY3RzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiT3ZlcndlZWcgb20gcGFydGl0aWUgOSBhbHMgdm9sdW1lbmtvcCAoMCkgdGUgbGF0ZW4sIGVuXG4iCisicGFydGl0aWUgMTEgYWxzIGdlaGVlbCB2b2x1bWVuICg2KSwgem9hbHMgSVJJWCBoZXQgdmVyd2FjaHQuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc2OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2VkIHN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCB0byAleCAoJXMpXG4iCittc2dzdHIgIlN5c3RlZW10eXBlIHZhbiBwYXJ0aXRpZSAlZCBpcyB2ZXJhbmRlcmQgbmFhciAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgaXMgdW5jaGFuZ2VkOiAleCAoJXMpXG4iCittc2dzdHIgIlN5c3RlZW10eXBlIHZhbiBwYXJ0aXRpZSAlZCBpcyBvbnZlcmFuZGVyZDogJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAiIgorIlBhcnRpdGllICVkIGhlZWZ0IHZlcnNjaGlsbGVuZGUgZnlzaWVrZS9sb2dpc2NoZSBiZWdpbnB1bnRlbiAobmlldC1MaW51eD8pOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjkgZmRpc2svZmRpc2suYzoxODM3IGZkaXNrL2ZkaXNrLmM6MTg0NiBmZGlzay9mZGlzay5jOjE4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICBwaHlzPSglZCwgJWQsICVkKSAiCittc2dzdHIgIiAgICAgZnlzaWVrPSglZCwgJWQsICVkKSAgIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzAgZmRpc2svZmRpc2suYzoxODM4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImxvZ2lzY2g9KCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzNQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGVuZGluZ3M6XG4iCittc2dzdHIgIlBhcnRpdGllICVkIGhlZWZ0IHZlcnNjaGlsbGVuZGUgZnlzaWVrZS9sb2dpc2NoZSBlaW5kcHVudGVuOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICJQYXJ0aXRpZSAlaSBiZWdpbnQgbmlldCBvcCBlZW4gY2lsaW5kZXJncmVuczpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAxKVxuIgorbXNnc3RyICJtb2V0IHppam4gKCVkLCAlZCwgMSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnRpdGllICVpIGVpbmRpZ3QgbmlldCBvcCBlZW4gY2lsaW5kZXJncmVucy5cbiIKKworIzogZmRpc2svZmRpc2suYzoxODU3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAlZClcbiIKK21zZ3N0ciAibW9ldCB6aWpuICglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnRpdGllICVpIGJlZ2ludCBuaWV0IG9wIGVlbiBjaWxpbmRlcmdyZW5zOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiU2NoaWpmICVzOiAlbGQgTUIsICVsbGQgYnl0ZXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxODgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQuJWxkIEdCLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTY2hpamYgJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGhlYWRzLCAlbGx1IHNlY3RvcnMvdHJhY2ssICVkIGN5bGluZGVycyIKK21zZ3N0ciAiJWQga29wcGVuLCAlbGx1IHNlY3RvcmVuL3Nwb29yLCAlZCBjaWxpbmRlcnMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NworIywgYy1mb3JtYXQKK21zZ2lkICIsIHRvdGFsICVsbHUgc2VjdG9ycyIKK21zZ3N0ciAiLCB0b3RhYWwgJWxsdSBzZWN0b3JlbiIKKworIzogZmRpc2svZmRpc2suYzoxODkwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuaXRzID0gJXMgb2YgJWQgKiAlZCA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJFZW5oZWlkID0gJXMgdmFuICVkICogJWQgPSAlZCBieXRlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAib25nZWxkaWdlIGlub2RlLWdyb290dGUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuIgorIlxuIgorbXNnc3RyICIiCisiRXIgaG9lZnQgbmlldHMgZ2VkYWFuIHRlIHdvcmRlbi4gIERlIG9yZGVuaW5nIGlzIGFsIGdvZWQuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAzNgorIywgYy1mb3JtYXQKK21zZ2lkICJEb25lLlxuIgorbXNnc3RyICJWb2x0b29pZC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRvZXNuJ3QgbG9vayBsaWtlIGEgcGFydGl0aW9uIHRhYmxlXG4iCisiUHJvYmFibHkgeW91IHNlbGVjdGVkIHRoZSB3cm9uZyBkZXZpY2UuXG4iCisiXG4iCittc2dzdHIgIiIKKyJEaXQgbGlqa3QgbmlldCBvcCBlZW4gcGFydGl0aWV0YWJlbC5cbiIKKyJXYWFyc2NoaWpubGlqayBrb29zIHUgZWVuIHZlcmtlZXJkIGFwcGFyYWF0LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEJvb3QgICAgICBTdGFydCAgICAgICAgIEVuZCAgICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIE9wc3RhcnQgICBCZWdpbiAgICAgICBFaW5kZSAgICAgQmxva2tlbiAgIElEICBTeXN0ZWVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3OCBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjEwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTgKK21zZ2lkICJEZXZpY2UiCittc2dzdHIgIkFwcGFyYWF0IgorCisjOiBmZGlzay9mZGlzay5jOjIxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIgorbXNnc3RyICIiCisiXG4iCisiUGFydGl0aWV0YWJlbC1pdGVtcyBsaWdnZW4gbmlldCBpbiBzY2hpamZ2b2xnb3JkZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNjaGlqZiAlczogJWQga29wcGVuLCAlbGx1IHNlY3RvcmVuLCAlZCBjaWxpbmRlcnNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICJOciBBRiBLb3AgU2VjICBDaWwgS29wIFNlYyAgQ2lsICAgICAgQmVnaW4gICAgR3Jvb3R0ZSBJRFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogcGFydGl0aWUgJWQgYmV2YXQgc2VjdG9yIDBcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogaGVhZCAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJQYXJ0aXRpZSAlZDoga29wbnVtbWVyICVkIGlzIGdyb3RlciBkYW4gbWF4aW11bSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJQYXJ0aXRpZSAlZDogc2VjdG9ybnVtbWVyICVkIGlzIGdyb3RlciBkYW4gbWF4aW11bSAlbGx1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJQYXJ0aXRpZXMgJWQ6IGNpbGluZGVybnVtbWVyICVkIGlzIGdyb3RlciBkYW4gbWF4aW11bSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBwcmV2aW91cyBzZWN0b3JzICVkIGRpc2FncmVlcyB3aXRoIHRvdGFsICVkXG4iCittc2dzdHIgIiIKKyJQYXJ0aXRpZSAlZDogZWluZGUgdmFuIHZvcmlnZSBwYXJ0aXRpZSBpbiBzZWN0b3JlbiAlZCB2ZXJzY2hpbHQgdmFuIHRvdGFhbCAlIgorImRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjIzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBzdGFydC1vZi1kYXRhIGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJXYWFyc2NodXdpbmc6IG9uZ2VsZGlnZSBzdGFydC12YW4tZ2VnZXZlbnMgaW4gcGFydGl0aWUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBvdmVybGFwcyBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogcGFydGl0aWUgJWQgb3ZlcmxhcHQgcGFydGl0aWUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBpcyBlbXB0eVxuIgorbXNnc3RyICJXYWFyc2NodXdpbmc6IHBhcnRpdGllICVkIGlzIGxlZWdcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiTG9naXNjaGUgcGFydGl0aWUgJWQgbGlndCBuaWV0IGdlaGVlbCBiaW5uZW4gcGFydGl0aWUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlbGx1IGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIlRvdGFhbCBhYW50YWwgZ2VyZXNlcnZlZXJkZSBzZWN0b3JlbiAlbGQgaXMgZ3JvdGVyIGRhbiBtYXhpbXVtICVsbGRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSZW1haW5pbmcgJWxsZCB1bmFsbG9jYXRlZCAlZC1ieXRlIHNlY3RvcnNcbiIKK21zZ3N0ciAiJWxsZCBuaWV0LWdlcmVzZXJ2ZWVyZGUgc2VjdG9yZW5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzAxIGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxMQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlIGl0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iCittc2dzdHIgIiIKKyJQYXJ0aXRpZSAlZCBpcyBhbCBnZWRlZmluaWVlcmQuICBWZXJ3aWpkZXIgZGV6ZSBlZXJzdCxcbiIKKyJlbiB2b2VnIGhlbSBkYW4gb3BuaWV1dyB0b2UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWN0b3IgJWxsdSBpcyBhbCBnZXJlc2VydmVlcmRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGZyZWUgc2VjdG9ycyBhdmFpbGFibGVcbiIKK21zZ3N0ciAiR2VlbiB2cmlqZSBzZWN0b3JlbiBiZXNjaGlrYmFhclxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlMSRzLCArJTIkcyBvciArc2l6ZXtLLE0sR30iCittc2dzdHIgIkxhYXRzdGUgJXMsICslcyBvZiArZ3Jvb3R0ZXtLLE0sR30iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBBSVggZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIiAgICBTb3JyeSAtLSBkZXplIGZkaXNrIG9uZGVyc3RldW50IGdlZW4gQUlYLXNjaGlqZmxhYmVscy5cbiIKKyIgICAgQWxzIHUgcGFydGl0aWVzIHZhbiBoZXQgRE9TLXR5cGUgd2lsdCB0b2V2b2VnZW4sIG1hYWsgZGFuXG4iCisiICAgIGVlcnN0IGVlbiBuaWV1d2UsIGxlZ2UgRE9TLXBhcnRpdGlldGFiZWwuICAoR2VicnVpayAnbycuKVxuIgorIiAgICBXQUFSU0NIVVdJTkc6IERpdCB6YWwgZGUgaHVpZGlnZSBzY2hpamZpbmhvdWQgd2lzc2VuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgTWFjIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyIgICAgU29ycnkgLS0gZGV6ZSBmZGlzayBvbmRlcnN0ZXVudCBnZWVuIE1hYy1zY2hpamZsYWJlbHMuXG4iCisiICAgIEFscyB1IHBhcnRpdGllcyB2YW4gaGV0IERPUy10eXBlIHdpbHQgdG9ldm9lZ2VuLCBtYWFrIGRhblxuIgorIiAgICBlZXJzdCBlZW4gbmlldXdlLCBsZWdlIERPUy1wYXJ0aXRpZXRhYmVsLiAgKEdlYnJ1aWsgJ28nLilcbiIKKyIgICAgV0FBUlNDSFVXSU5HOiBEaXQgemFsIGRlIGh1aWRpZ2Ugc2NoaWpmaW5ob3VkIHdpc3Nlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICIiCisiVSBkaWVudCBlZXJzdCBlZW4gcGFydGl0aWUgdGUgdmVyd2lqZGVyZW5cbiIKKyJlbiBlZW4gdWl0Z2VicmVpZGUgcGFydGl0aWUgdG9lIHRlIHZvZWdlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICJBbGxlIGxvZ2lzY2hlIHBhcnRpdGllcyB6aWpuIGluIGdlYnJ1aWsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJBZGRpbmcgYSBwcmltYXJ5IHBhcnRpdGlvblxuIgorbXNnc3RyICJFZW4gcHJpbWFpcmUgcGFydGl0aWUgd29yZHQgdG9lZ2V2b2VnZC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKyJPcGRyYWNodCAgQWN0aWVcbiIKKyIgICAlc1xuIgorIiAgIHAgICAgICBwcmltYWlyZSBwYXJ0aXRpZSAoMS00KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJsICAgbG9naWNhbCAoNSBvciBvdmVyKSIKK21zZ3N0ciAibCAgICAgIGxvZ2lzY2hlIHBhcnRpdGllICg1IG9mIGhvZ2VyKSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAgICAgdWl0Z2VicmVpZGUgcGFydGl0aWUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICJPbmp1aXN0IHBhcnRpdGllbnVtbWVyIHZvb3IgdHlwZSAnJWMnXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisiRGUgcGFydGl0aWV0YWJlbCBpcyBnZXdpanppZ2QhXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkFhbnJvZXBlbiB2YW4gaW9jdGwoKSBvbSBwYXJ0aXRpZXRhYmVsIG9wbmlldXcgaW4gdGUgbGV6ZW4uLi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyJUaGUga2VybmVsIHN0aWxsIHVzZXMgdGhlIG9sZCB0YWJsZS4gVGhlIG5ldyB0YWJsZSB3aWxsIGJlIHVzZWQgYXRcbiIKKyJ0aGUgbmV4dCByZWJvb3Qgb3IgYWZ0ZXIgeW91IHJ1biBwYXJ0cHJvYmUoOCkgb3Iga3BhcnR4KDgpXG4iCittc2dzdHIgIiIKKyJcbiIKKyJXQUFSU0NIVVdJTkc6IE9wbmlldXcgaW5sZXplbiB2YW4gcGFydGl0aWV0YWJlbCBpcyBtaXNsdWt0IG1ldCBmb3V0ICVkOiAlcy5cbiIKKyJEZSBrZXJuZWwgZ2VicnVpa3Qgbm9nIGRlIG91ZGUgdGFiZWwuXG4iCisiRGUgbmlldXdlIHRhYmVsIHdvcmR0IGFsbGVlbiBuYSBvcG5pZXV3IG9wc3RhcnRlbiBnZWJydWlrdC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueSBET1MgNi54XG4iCisicGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgZmRpc2sgbWFudWFsIHBhZ2UgZm9yIGFkZGl0aW9uYWxcbiIKKyJpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIldBQVJTQ0hVV0lORzogQWxzIHUgRE9TLTYueC1wYXJ0aXRpZXMgZ2VtYWFrdCBvZiBnZXdpanppZ2QgaGVidCxcbiIKKyJyYWFkcGxlZWcgZGFuIGhldCBmZGlzay1oYW5kYm9layB2b29yIG1lZXIgaW5mb3JtYXRpZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJFcnJvciBjbG9zaW5nIGZpbGVcbiIKK21zZ3N0ciAiIgorIlxuIgorIkZvdXQgYmlqIHNsdWl0ZW4gdmFuIGJlc3RhbmRcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIkxlZWdtYWtlbiB2YW4gc2NoaWpmYnVmZmVycy4uLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBubyBkYXRhIGFyZWFcbiIKK21zZ3N0ciAiUGFydGl0aWUgJWQgaGVlZnQgZ2VlbiBnZWdldmVuc2dlYmllZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTYKK21zZ2lkICJOZXcgYmVnaW5uaW5nIG9mIGRhdGEiCittc2dzdHIgIk5pZXV3IGJlZ2luIHZhbiBnZWdldmVucyIKKworIzogZmRpc2svZmRpc2suYzoyNjcyCittc2dpZCAiRXhwZXJ0IGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIkV4cGVydG9wZHJhY2h0IChtIHZvb3IgaHVscCk6ICIKKworIzogZmRpc2svZmRpc2suYzoyNjg1Cittc2dpZCAiTnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiQWFudGFsIGNpbGluZGVycyIKKworIzogZmRpc2svZmRpc2suYzoyNzEwCittc2dpZCAiTnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICJBYW50YWwga29wcGVuIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzcKK21zZ2lkICJOdW1iZXIgb2Ygc2VjdG9ycyIKK21zZ3N0ciAiQWFudGFsIHNlY3RvcmVuIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogc2V0dGluZyBzZWN0b3Igb2Zmc2V0IGZvciBET1MgY29tcGF0aWJsaXR5XG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogc2VjdG9ycGxhYXRzIHdvcmR0IGluZ2VzdGVsZCB2b29yIERPUy1jb21wYXRpYmlsaXRlaXRcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBmZGlzayBkb2Vzbid0ICIKKyJzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJXYWFyc2NodXdpbmc6IEdQVCAoR1VJRC1wYXJ0aXRpZXRhYmVsKSBnZXZvbmRlbiBvcCAnJXMnIVxuIgorIkhldCBwcm9ncmFtbWEgJ2ZkaXNrJyBvbmRlcnN0ZXVudCBHUFQgbmlldC4gIEdlYnJ1aWsgR05VICdwYXJ0ZWQnLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAiU2NoaWpmICVzIGJldmF0IGdlZW4gZ2VsZGlnZSBwYXJ0aXRpZXRhYmVsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgzMQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJrYW4gJXMgbmlldCBvcGVuZW5cbiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAia2FuICVzIG5pZXQgb3BlbmVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlYzogdW5rbm93biBjb21tYW5kXG4iCittc2dzdHIgIiVjOiBvbmJla2VuZGUgb3BkcmFjaHRcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICIiCisiRGV6ZSBrZXJuZWwgdmluZHQgemVsZiBkZSBzZWN0b3Jncm9vdHRlIC0tIG9wdGllICctYicgd29yZHQgZ2VuZWdlZXJkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiV2FhcnNjaHV3aW5nOiBvcHRpZSAnLWInIChzZWN0b3Jncm9vdHRlIGluc3RlbGxlbikgZGllbnQgbWV0XG4iCisic2xlY2h0cyDDqcOpbiBhcHBhcmFhdCBnZWJydWlrdCB0ZSB3b3JkZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBhbiBPU0YvMSBkaXNrbGFiZWwgb24gJXMsIGVudGVyaW5nIGRpc2tsYWJlbCBtb2RlLlxuIgorbXNnc3RyICJPU0YvMS1zY2hpamZsYWJlbCBnZXZvbmRlbiBvcCAlczsgb3ZlcmdlZ2FhbiBpbiBzY2hpamZsYWJlbG1vZHVzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMTAKK21zZ2lkICJDb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJPcGRyYWNodCAobSB2b29yIGh1bHApOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiSGV0IGh1aWRpZ2Ugb3BzdGFydGJlc3RhbmQgaXM6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJHZWVmIGRlIG5hYW0gdmFuIGhldCBuaWV1d2Ugb3BzdGFydGJlc3RhbmQ6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiT3BzdGFydGJlc3RhbmQgYmxpamZ0IG9uZ2V3aWp6aWdkLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjMxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJIHBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiICBTb3JyeSwgaGV0IGV4cGVydHNtZW51IGlzIG5pZXQgYmVzY2hpa2JhYXIgdm9vciBTR0ktcGFydGl0aWV0YWJlbGxlbi5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2ttYWNsYWJlbC5jOjMwCittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBNYWMgbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBmZGlzaygxKSBjYW5ub3QgaGFuZGxlIHRoZXNlIGRpc2tzLlxuIgorIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisiXHROZXZlcnRoZWxlc3Mgc29tZSBhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCittc2dzdHIgIiIKKyJcbiIKKyIgICAgRXIgc3RhYXQgZWVuIGdlbGRpZyBNYWMtbGFiZWwgb3AgZGV6ZSBzY2hpamYuXG4iCisiICAgIEhlbGFhcyBvbmRlcnN0ZXVudCAnZmRpc2snIGRpdCB0eXBlIGxhYmVsIG5pZXQuXG4iCisiICAgIEdlYnJ1aWsgJ3BkaXNrJyBvZiAncGFydGVkJyBvbSBkZSBwYXJ0aXRpZXRhYmVsIGFhbiB0ZSBwYXNzZW4uXG4iCisiICAgIFRvY2ggd2F0IGFkdmllczpcbiIKKyIgICAgMS4gQmlqIHNjaHJpanZlbiB6YWwgZmRpc2sgZGUgaW5ob3VkIGVydmFuIFdJU1NFTi5cbiIKKyIgICAgMi4gQ29udHJvbGVlciBkYXQgZGV6ZSBzY2hpamYgRUNIVCBOSUVUIG5vZyBkZWVsIHVpdG1hYWt0XG4iCisiICAgICAgIHZhbiBlZW4gdm9sdW1lbmdyb2VwIC0tIGFuZGVycyB3aXN0IHUgbW9nZWxpamsgZGUgYW5kZXJlXG4iCisiICAgICAgIHNjaGlqdmVuIG9vaywgYWxzIGVyIGdlZW4gbWlycm9yIGlzLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODEKK21zZ2lkICJTR0kgdm9saGRyIgorbXNnc3RyICJTR0kgdm9saGRyIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODIKK21zZ2lkICJTR0kgdHJrcmVwbCIKK21zZ3N0ciAiU0dJIHRya3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MworbXNnaWQgIlNHSSBzZWNyZXBsIgorbXNnc3RyICJTR0kgc2VjcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg0Cittc2dpZCAiU0dJIHJhdyIKK21zZ3N0ciAiU0dJIHJ1dyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg1Cittc2dpZCAiU0dJIGJzZCIKK21zZ3N0ciAiU0dJIGJzZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg2Cittc2dpZCAiU0dJIHN5c3YiCittc2dzdHIgIlNHSSBzeXN2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODcKK21zZ2lkICJTR0kgdm9sdW1lIgorbXNnc3RyICJTR0kgdm9sdW1lbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiU0dJIGVmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIlNHSSBsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIlNHSSBybHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIHhmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIkxpbnV4IHdpc3NlbGdlaGV1Z2VuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTYgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUxCittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICJMaW51eCBuYXRpdmUiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTIgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MworbXNnaWQgIkxpbnV4IExWTSIKK21zZ3N0ciAiTGludXggTFZNIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTgKK21zZ2lkICJMaW51eCBSQUlEIgorbXNnc3RyICJMaW51eCBSQUlEIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJBY2NvcmRpbmcgdG8gTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMgdGhlIExhYmVsIG11c3Qgbm90IGNvbnRhaW4gbW9yZSB0aGFuICIKKyI1MTIgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlZvbGdlbnMgJ01JUFMgQ29tcHV0ZXIgU3lzdGVtcycgbWFnIGhldCBsYWJlbCBuaWV0IG1lZXIgZGFuIDUxMiBieXRlcyAiCisiYmV2YXR0ZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJTR0ktc2NoaWpmbGFiZWwgZ2V2b25kZW4gbWV0IGZvdXRpZXZlIGNvbnRyb2xlc29tLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnNcbiIKKyIlZCBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNjaGlqZiAlcyAoU0dJLXNjaGlqZmxhYmVsKTogJWQga29wcGVuLCAlbGx1IHNlY3RvcmVuXG4iCisiJWQgY2lsaW5kZXJzLCAlZCBmeXNpZWtlIGNpbGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RvcmVuL2NpbGluZGVyLCB0dXNzZW5ydWltdGUgJWQ6MVxuIgorIiVzXG4iCisiRWVuaGVpZCA9ICVzIHZhbiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTY2hpamYgJXMgKFNHSS1zY2hpamZsYWJlbCk6ICVkIGtvcHBlbiwgJWxsdSBzZWN0b3JlbiwgJWQgY2lsaW5kZXJzXG4iCisiRWVuaGVpZCA9ICVzIHZhbiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIHBhcnRpdGlvbnMgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgICBTdGFydCAgICAgICBFbmQgICBTZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKyItLS0tLSBQYXJ0aXRpZXMgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgICBCZWdpbiAgICAgRWluZGUgIFNlY3RvcmVuICBJRCAgU3lzdGVlbVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSBPcHN0YXJ0aW5mbyAtLS0tLVxuIgorIk9wc3RhcnRiZXN0YW5kOiAlc1xuIgorIi0tLS0tIE1hcGluZ2FuZ2VuIC0tLS0tXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIgorbXNnc3RyICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBncm9vdHRlJTh1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiT25nZWxkaWcgb3BzdGFydGJlc3RhbmQhXG4iCisiICAgIEhldCBvcHN0YXJ0YmVzdGFuZCBtb2V0IGVlbiBhYnNvbHV0ZSwgbmlldC1udWwgcGFkbmFhbSB6aWpuLFxuIgorIiAgICB6b2FscyBcIi91bml4XCIgb2YgXCIvdW5peC5zYXZlXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0TmFtZSBvZiBCb290ZmlsZSB0b28gbG9uZzogIDE2IGJ5dGVzIG1heGltdW0uXG4iCittc2dzdHIgIiIKKyJcbiIKKyIgICAgTmFhbSB2YW4gb3BzdGFydGJlc3RhbmQgaXMgdGUgbGFuZzogbWF4aW1hYWwgMTYgYnl0ZXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiICAgIE9wc3RhcnRiZXN0YW5kIG1vZXQgZWVuIHZvbGxlZGlnIGFhbmdlZ2V2ZW4gcGFkbmFhbSBoZWJiZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0QmUgYXdhcmUsIHRoYXQgdGhlIGJvb3RmaWxlIGlzIG5vdCBjaGVja2VkIGZvciBleGlzdGVuY2UuXG4iCisiXHRTR0kncyBkZWZhdWx0IGlzIFwiL3VuaXhcIiBhbmQgZm9yIGJhY2t1cCBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIiAgICBMZXQgb3A6IGVyIG5pZXQgd29yZHQgZ2Vjb250cm9sZWVyZCBvZiBoZXQgb3BzdGFydGJlc3RhbmQgYmVzdGFhdC5cbiIKKyIgICAgU0dJJ3Mgc3RhbmRhYXJkIGlzIFwiL3VuaXhcIiBlbiB2b29yIGJhY2t1cCBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIiAgICBPcHN0YXJ0YmVzdGFuZCBpcyB2ZXJhbmRlcmQgbmFhciBcIiVzXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICJFciBpcyBtZWVyIGRhbiDDqcOpbiBzY2hpamZpbmdhbmcgYWFud2V6aWcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4MworIywgYy1mb3JtYXQKK21zZ2lkICJObyBwYXJ0aXRpb25zIGRlZmluZWRcbiIKK21zZ3N0ciAiR2VlbiBwYXJ0aXRpZXMgZ2VkZWZpbmllZXJkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSVJJWCBsaWtlcyB3aGVuIFBhcnRpdGlvbiAxMSBjb3ZlcnMgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICJJUklYIGhvdWR0IGVydmFuIGRhdCBwYXJ0aXRpZSAxMSBkZSBnZWhlbGUgc2NoaWpmIGJlc2xhYXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIkRlIGdlaGVsZS1zY2hpamZwYXJ0aXRpZSBtb2V0IGJlZ2lubmVuIGJpaiBibG9rIDAsXG4iCisibmlldCBiaWogc2NoaWpmYmxvayAlZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBpcyBvbmx5ICVkIGRpc2tibG9jayBsYXJnZSxcbiIKKyJidXQgdGhlIGRpc2sgaXMgJWQgZGlza2Jsb2NrcyBsb25nLlxuIgorbXNnc3RyICIiCisiRGUgZ2VoZWxlLXNjaGlqZnBhcnRpdGllIGlzIHNsZWNodHMgJWQgc2NoaWpmYmxva2tlbiBncm9vdCxcbiIKKyJtYWFyIGRlIHNjaGlqZiBpcyAlZCBzY2hpamZibG9ra2VuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiRcOpbiBwYXJ0aXRpZSAoIzExKSBtb2V0IGRlIGdlaGVsZSBzY2hpamYgYmVzbGFhbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnRpdGllICVkIGJlZ2ludCBuaWV0IG9wIGVlbiBjaWxpbmRlcmdyZW5zLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnRpdGllICVkIGVpbmRpZ3QgbmlldCBvcCBlZW4gY2lsaW5kZXJncmVucy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIkRlIHBhcnRpdGllcyAlZCBlbiAlZCBvdmVybGFwcGVuIGVsa2FhciBtZXQgJWQgc2VjdG9yZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0ODQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAiT25nZWJydWlrdCBnYXQgdmFuICU4dSBzZWN0b3Jlbjogc2VjdG9yZW4gJTh1LSV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkRlIG9wc3RhcnRwYXJ0aXRpZSBiZXN0YWF0IG5pZXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkRlIHdpc3NlbGdlaGV1Z2VucGFydGl0aWUgYmVzdGFhdCBuaWV0LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gaGFzIG5vIHN3YXAgdHlwZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkRlIHdpc3NlbGdlaGV1Z2VucGFydGl0aWUgaGVlZnQgZ2VlbiBzb29ydGFhbmR1aWRpbmcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiICAgIFUgaGVidCBlZW4gb25nZWJydWlrZWxpamtlIG5hYW0gZ2Vrb3plbiB2b29yIGhldCBvcHN0YXJ0YmVzdGFuZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzMgorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSBZb3UgbWF5IGNoYW5nZSB0aGUgVGFnIG9mIG5vbi1lbXB0eSBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICJTb3JyeSwgdSBrdW50IGRlIHNvb3J0IHZhbiBuaWV0LWxlZ2UgcGFydGl0aWVzIG5pZXQgd2lqemlnZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzgKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIG9mIHR5cGUgXCJTR0kgdm9saGRyXCIsIHRoZSBJUklYIHN5c3RlbSB3aWxsIHJlbHkgb24gaXQgdG9cbiIKKyJyZXRyaWV2ZSBmcm9tIGl0cyBkaXJlY3Rvcnkgc3RhbmRhbG9uZSB0b29scyBsaWtlIHNhc2ggYW5kIGZ4LlxuIgorIk9ubHkgdGhlIFwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrIHNlY3Rpb24gbWF5IHZpb2xhdGUgdGhpcy5cbiIKKyJUeXBlIFlFUyBpZiB5b3UgYXJlIHN1cmUgYWJvdXQgdGFnZ2luZyB0aGlzIHBhcnRpdGlvbiBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIkhldCB3b3JkdCBzdGVyayBhYW5nZXJhZGVuIG9tIGRlIHBhcnRpdGllIG9wIHBsYWF0cyAwIHZhbiBoZXQgc29vcnRcbiIKKyInU0dJIHZvbGhkcicgdGUgbGF0ZW4gemlqbi4gIElSSVggdmVydHJvdXd0IGhpZXJvcCBiaWogaGV0IG9wem9la2VuXG4iCisidmFuIHByb2dyYW1tYSdzIHpvYWxzICdzYXNoJyBlbiAnZngnLiAgQWxsZWVuIGhldCBnZWhlbGUtc2NoaWpmZGVlbFxuIgorIidTR0kgdm9sdW1lbicgbWFnIGRlemUgcmVnZWwgb3ZlcnRyZWRlbi4gIFR5cCBKQSBhbHMgdSB6ZWtlciB3ZWV0XG4iCisiZGF0IHUgZGUgc29vcnQgdmFuIGRlemUgcGFydGl0aWUgd2lsdCB3aWp6aWdlbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIkpBXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiV2VldCB1IGRhdCB1IGVlbiBwYXJ0aXRpZW92ZXJsYXAgaGVidCBvcCBkZSBzY2hpamY/XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBlbnRpcmUgZGlzayBlbnRyeSBhdXRvbWF0aWNhbGx5LlxuIgorbXNnc3RyICJQb2dpbmcgdG90IGhldCBhdXRvbWF0aXNjaCBhYW5tYWtlbiB2YW4gZWVuIGdlaGVsZS1zY2hpamZpbmdhbmcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkRlIHZvbGxlZGlnZSBzY2hpamYgaXMgYWwgaW5nZWRlZWxkIGluIHBhcnRpdGllcy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiVSBoZWJ0IGVlbiBwYXJ0aXRpZS1vdmVybGFwIG9wIGRlIHNjaGlqZi4gIExvcyBkaXQgZWVyc3Qgb3AhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIkhldCB3b3JkdCBzdGVyayBhYW5nZXJhZGVuIG9tIGRlIGVsZmRlIHBhcnRpdGllIGRlIGdlaGVsZSBzY2hpamZcbiIKKyJ0ZSBsYXRlbiBiZXNsYWFuIGVuIHZhbiBoZXQgc29vcnQgJ1NHSSB2b2x1bWVuJyB0ZSBsYXRlbiB6aWpuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIGdldCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIlUgenVsdCBlZW4gcGFydGl0aWUtb3ZlcmxhcCBrcmlqZ2VuIG9wIGRlIHNjaGlqZi4gIExvcyBkaXQgZWVyc3Qgb3AhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIExhc3QgJXMiCittc2dzdHIgIiBMYWF0c3RlICVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBTR0kgZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuIgorIlxuIgorbXNnc3RyICIiCisiRXIgd29yZHQgZWVuIG5pZXV3IFNHSS1zY2hpamZsYWJlbCBnZW1hYWt0LiAgV2lqemlnaW5nZW4gdmluZGVuIGVua2VsXG4iCisiZW4gYWxsZWVuIGluIGhldCBnZWhldWdlbiBwbGFhdHMsIHRvdGRhdCB1IGJlc2x1aXQgemUgd2VnIHRlIHNjaHJpanZlbi5cbiIKKyJEYWFybmEgaXMgZGUgb3VkZSBpbmhvdWQgdWl0ZXJhYXJkIG5pZXQgbWVlciBoZXJzdGVsYmFhci5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjcxOCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiAgQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXMuICBVc2luZyBnZW9tZXRyeSBjeWxpbmRlciB2YWx1ZSBvZiAlIgorImQuXG4iCisiVGhpcyB2YWx1ZSBtYXkgYmUgdHJ1bmNhdGVkIGZvciBkZXZpY2VzID4gMzMuOCBHQi5cbiIKK21zZ3N0ciAiIgorIldhYXJzY2h1d2luZzogaW9jdGwoQkxLR0VUU0laRSkgaXMgbWlzbHVrdCBvcCAlcy5cbiIKKyJDaWxpbmRlcmdlb21ldHJpZXdhYXJkZSAlZCB3b3JkdCBudSBnZWJydWlrdC5cbiIKKyJEZXplIHdhYXJkZSBrYW4gdm9vciBhcHBhcmF0ZW4gPiAzMy44IEdCIHdvcmRlbiBhZmdla2FwdC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8ga2VlcCBwYXJhbWV0ZXJzIG9mIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiRXIgd29yZHQgZ2Vwcm9iZWVyZCBkZSBwYXJhbWV0ZXJzIHZhbiBwYXJ0aXRpZSAlZCB0ZSBiZWhvdWRlbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczNAorIywgYy1mb3JtYXQKK21zZ2lkICJJRD0lMDJ4XHRTVEFSVD0lZFx0TEVOR1RIPSVkXG4iCittc2dzdHIgIklEPSUwMnhcdFN0YXJ0PSVkXHRMZW5ndGU9JWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4Cittc2dpZCAiVW5hc3NpZ25lZCIKK21zZ3N0ciAiKG5pZXQtdG9lZ2V3ZXplbikiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MAorbXNnaWQgIlN1bk9TIHJvb3QiCittc2dzdHIgIlN1bk9TIHJvb3QiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MQorbXNnaWQgIlN1bk9TIHN3YXAiCittc2dzdHIgIlN1bk9TIHdpc3NlbGdlaGV1Z2VuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIKK21zZ2lkICJTdW5PUyB1c3IiCittc2dzdHIgIlN1bk9TIHVzciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQzCittc2dpZCAiV2hvbGUgZGlzayIKK21zZ3N0ciAiR2VoZWxlIHNjaGlqZiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0Cittc2dpZCAiU3VuT1Mgc3RhbmQiCittc2dzdHIgIlN1bk9TIHN0YW5kIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDUKK21zZ2lkICJTdW5PUyB2YXIiCittc2dzdHIgIlN1bk9TIHZhciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ2Cittc2dpZCAiU3VuT1MgaG9tZSIKK21zZ3N0ciAiU3VuT1MgaG9tZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIlN1bk9TIGFsdC1zZWN0b3JlbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4Cittc2dpZCAiU3VuT1MgY2FjaGVmcyIKK21zZ3N0ciAiU3VuT1MgY2FjaGVmcyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIlN1bk9TIGdlcmVzZXJ2ZWVyZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICJMaW51eCByYWlkYXV0b2RldGVjdGllIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iCisiUHJvYmFibHkgeW91J2xsIGhhdmUgdG8gc2V0IGFsbCB0aGUgdmFsdWVzLFxuIgorImUuZy4gaGVhZHMsIHNlY3RvcnMsIGN5bGluZGVycyBhbmQgcGFydGl0aW9uc1xuIgorIm9yIGZvcmNlIGEgZnJlc2ggbGFiZWwgKHMgY29tbWFuZCBpbiBtYWluIG1lbnUpXG4iCittc2dzdHIgIiIKKyJTdW4tc2NoaWpmbGFiZWwgZ2V2b25kZW4gbWV0IG9uanVpc3RlIGNvbnRyb2xlc29tLlxuIgorIldhYXJzY2hpam5saWprIHp1bHQgdSBhbGxlIHdhYXJkZW4gaW4gbW9ldGVuIHN0ZWxsZW4sXG4iCisiem9hbHMga29wcGVuLCBzZWN0b3JlbiwgY2lsaW5kZXJzIGVuIHBhcnRpdGllcywgb2YgZWVuXG4iCisidmVyc2UgbGFiZWwgbW9ldGVuIG1ha2VuIChvcGRyYWNodCAncycgaW4gaG9vZmRtZW51KS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgdmVyc2lvbiBbMHglMDh4XS5cbiIKK21zZ3N0ciAiU3VuLXNjaGlqZmxhYmVsIGdldm9uZGVuIG1ldCBmb3V0aWVmIHZlcnNpZW51bW1lciBbMHglMDh4XS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1MworIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3Jvbmcgc2FuaXR5IFsweCUwOHhdLlxuIgorbXNnc3RyICJTdW4tc2NoaWpmbGFiZWwgZ2V2b25kZW4gbWV0IGZvdXRpZWYgY29udHJvbGVudW1tZXIgWzB4JTA4eF0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgIlN1bi1zY2hpamZsYWJlbCBnZXZvbmRlbiBtZXQgZm91dGllZiBwYXJ0aXRpZS1hYW50YWwgWyV1XS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogV3JvbmcgdmFsdWVzIG5lZWQgdG8gYmUgZml4ZWQgdXAgYW5kIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSlcbiIKK21zZ3N0ciAiIgorIldhYXJzY2h1d2luZzogb25qdWlzdGUgd2FhcmRlcyBkaWVuZW4gdmVyYmV0ZXJkIHRlIHdvcmRlbiBlblxuIgorInp1bGxlbiBnZWNvcnJpZ2VlcmQgd29yZGVuIGJpaiBoZXQgd2Vnc2NocmlqdmVuICgndycpLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBzdW4gZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiRXIgd29yZHQgZWVuIG5pZXV3IFN1bi1zY2hpamZsYWJlbCBnZW1hYWt0LiAgV2lqemlnaW5nZW4gdmluZGVuIGVua2VsXG4iCisiZW4gYWxsZWVuIGluIGhldCBnZWhldWdlbiBwbGFhdHMsIHRvdGRhdCB1IGJlc2x1aXQgemUgd2VnIHRlIHNjaHJpanZlbi5cbiIKKyJEYWFybmEgaXMgZGUgb3VkZSBpbmhvdWQgdWl0ZXJhYXJkIG5pZXQgbWVlciBoZXJzdGVsYmFhci5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMQorbXNnaWQgIlNlY3RvcnMvdHJhY2siCittc2dzdHIgIlNlY3RvcmVuL3Nwb29yIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2Vzbid0IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJQYXJ0aXRpZSAlZCBlaW5kaWd0IG5pZXQgb3AgZWVuIGNpbGluZGVyZ3JlbnNcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgb3ZlcmxhcHMgd2l0aCBvdGhlcnMgaW4gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJQYXJ0aXRpZSAlZCBvdmVybGFwdCBtZXQgYW5kZXJlIGluIHNlY3RvcmVuICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICJPbmdlYnJ1aWt0IGdhdDogc2VjdG9yZW4gMC0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiT25nZWJydWlrdCBnYXQ6IHNlY3RvcmVuICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKyJBbmRlcmUgcGFydGl0aWVzIGJlc2xhYW4gYWwgZGUgZ2VoZWxlIHNjaGlqZi5cbiIKKyJWZXJ3aWpkZXIvdmVya2xlaW4gemUgYWx2b3JlbnMgaGV0IG9wbmlldXcgdGUgcHJvYmVyZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSB0aGlyZCBwYXJ0aXRpb24gY292ZXJzIHRoZSB3aG9sZSBkaXNrXG4iCisiYW5kIGlzIG9mIHR5cGUgYFdob2xlIGRpc2snXG4iCittc2dzdHIgIiIKKyJIZXQgd29yZHQgc3RlcmsgYWFuZ2VyYWRlbiBvbSBkZSBkZXJkZSBwYXJ0aXRpZSBkZSBnZWhlbGUgc2NoaWpmXG4iCisidGUgbGF0ZW4gYmVzbGFhbiBlbiB2YW4gaGV0IHNvb3J0ICdHZWhlbGUgc2NoaWpmJyB0ZSBsYXRlbiB6aWpuLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZCBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWN0b3IgJWQgaXMgYWwgZ2VyZXNlcnZlZXJkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlbid0IGNvdmVyZWQgdGhlIHdob2xlIGRpc2sgd2l0aCB0aGUgM3JkIHBhcnRpdGlvbiwgYnV0IHlvdXIgdmFsdWVcbiIKKyIlZCAlcyBjb3ZlcnMgc29tZSBvdGhlciBwYXJ0aXRpb24uIFlvdXIgZW50cnkgaGFzIGJlZW4gY2hhbmdlZFxuIgorInRvICVkICVzXG4iCittc2dzdHIgIiIKKyJVIGhlYnQgbWV0IGRlIGRlcmRlIHBhcnRpdGllIG5pZXQgZGUgZ2VoZWxlIHNjaGlqZiBpbmdlbm9tZW47XG4iCisidXcgd2FhcmRlICVkICVzIG92ZXJsYXB0IGVlbiBhbmRlcmUgcGFydGl0aWUuXG4iCisiVXcgaW52b2VyIGlzIGdld2lqemlnZCB0b3QgJWQgJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklmIHlvdSB3YW50IHRvIG1haW50YWluIFN1bk9TL1NvbGFyaXMgY29tcGF0aWJpbGl0eSwgY29uc2lkZXIgbGVhdmluZyB0aGlzXG4iCisicGFydGl0aW9uIGFzIFdob2xlIGRpc2sgKDUpLCBzdGFydGluZyBhdCAwLCB3aXRoICV1IHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorIkFscyB1IFN1bk9TL1NvbGFyaXMtY29tcGF0aWJpbGl0ZWl0IHdpbHQgYmVob3VkZW4sIGt1bnQgdSBkZXplIHBhcnRpdGllICIKKyJiZXRlclxuIgorImFscyBnZWhlbGUgc2NoaWpmICg1KSBsYXRlbiwgYmVnaW5uZW5kIGJpaiAwLCBtZXQgJXUgc2VjdG9yZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIFVGUywgRVhUMkZTIGZpbGVzeXN0ZW0gb3IgU3VuT1Mgc3dhcC4gUHV0dGluZyBMaW51eCBzd2FwXG4iCisidGhlcmUgbWF5IGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUgYW5kIGJvb3RibG9jay5cbiIKKyJUeXBlIFlFUyBpZiB5b3UncmUgdmVyeSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRoYXQgcGFydGl0aW9uXG4iCisidGFnZ2VkIHdpdGggODIgKExpbnV4IHN3YXApOiAiCittc2dzdHIgIiIKKyJIZXQgd29yZHQgc3RlcmsgYWFuZ2VyYWRlbiBvbSBkZSBwYXJ0aXRpZSBvcCBwbGFhdHMgMCB2YW4gaGV0IHNvb3J0IFVGUy1cbiIKKyJvZiBFWFQyRlMtYmVzdGFuZHNzeXN0ZWVtIG9mIFN1bk9TLXdpc3NlbGdlaGV1Z2VuIHRlIGxhdGVuIHppam4uICBPcCBkZXplXG4iCisicGxhYXRzIExpbnV4LXdpc3NlbGdlaGV1Z2VuIG5lZXJ6ZXR0ZW4gdmVybmllbHQgbW9nZWxpamsgdXcgcGFydGl0aWV0YWJlbFxuIgorImVuIG9wc3RhcnRibG9rLiAgVHlwIEpBIGFscyB1IGVyZyB6ZWtlciBiZW50IGRhdCB1IGRpZSBwYXJ0aXRpZSB2YW4gdHlwZSA4MlxuIgorIihMaW51eC13aXNzZWxnZWhldWdlbikgd2lsdCBsYXRlbiB6aWpuOiAiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTY2hpamYgJXMgKFN1bi1zY2hpamZsYWJlbCk6ICVkIGtvcHBlbiwgJWxsdSBzZWN0b3JlbiwgJWQgcnBtXG4iCisiJWQgY2lsaW5kZXJzLCAlZCBhbHRlcm5hdGlldmUgY2lsaW5kZXJzLCAlZCBmeXNpZWtlIGNpbGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RvcmVuL2NpbGluZGVyLCB0dXNzZW5ydWltdGUgJWQ6MVxuIgorIkxhYmVsLUlEOiAlc1xuIgorIlZvbHVtZW4tSUQ6ICVzXG4iCisiRWVuaGVpZCA9ICVzIHZhbiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNjaGlqZiAlcyAoU3VuLXNjaGlqZmxhYmVsKTogJWQga29wcGVuLCAlbGx1IHNlY3RvcmVuLCAlZCBjaWxpbmRlcnNcbiIKKyJFZW5oZWlkID0gJXMgdmFuICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEZsYWcgICAgU3RhcnQgICAgICAgRW5kICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIE9wdGllICAgQmVnaW4gICAgIEVpbmRlICAgQmxva2tlbiAgIElEICBTeXN0ZWVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MjUKK21zZ2lkICJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiQWFudGFsIGFsdGVybmF0aWV2ZSBjaWxpbmRlcnMiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MzcKK21zZ2lkICJFeHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiRXh0cmEgc2VjdG9yZW4gcGVyIGNpbGluZGVyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjQ0Cittc2dpZCAiSW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIlR1c3NlbnJ1aW10ZWZhY3RvciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1MQorbXNnaWQgIlJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICJSb3RhdGllc25lbGhlaWQgKHJwbSkiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTgKK21zZ2lkICJOdW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICJBYW50YWwgZnlzaWVrZSBjaWxpbmRlcnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICJMZWVnIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcKK21zZ2lkICJGQVQxMiIKK21zZ3N0ciAiRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OAorbXNnaWQgIlhFTklYIHJvb3QiCittc2dzdHIgIlhFTklYIHJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OQorbXNnaWQgIlhFTklYIHVzciIKK21zZ3N0ciAiWEVOSVggdXNyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwCittc2dpZCAiRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMQorbXNnaWQgIkV4dGVuZGVkIgorbXNnc3RyICJVaXRnZWJyZWlkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIG9wc3RhcnRiYWFyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgb3BzdGFydG1hbmFnZXIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTcKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIlc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOAorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjAKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIlc5NSBVaXRnZWIuIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIxCittc2dpZCAiT1BVUyIKK21zZ3N0ciAiT1BVUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMgorbXNnaWQgIkhpZGRlbiBGQVQxMiIKK21zZ3N0ciAiVmVyYm9yZ2VuIEZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIzCittc2dpZCAiQ29tcGFxIGRpYWdub3N0aWNzIgorbXNnc3RyICJDb21wYXEgZGlhZ25vc3RpZWsiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjQKK21zZ2lkICJIaWRkZW4gRkFUMTYgPDMyTSIKK21zZ3N0ciAiVmVyYm9yZ2VuIEZBVDE2IDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjUKK21zZ2lkICJIaWRkZW4gRkFUMTYiCittc2dzdHIgIlZlcmJvcmdlbiBGQVQxNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNgorbXNnaWQgIkhpZGRlbiBIUEZTL05URlMiCittc2dzdHIgIlZlcmJvcmdlbiBIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjcKK21zZ2lkICJBU1QgU21hcnRTbGVlcCIKK21zZ3N0ciAiQVNUIFNtYXJ0U2xlZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjgKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIgorbXNnc3RyICJWZXJib3JnZW4gVzk1IEZBVDMyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI5Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVmVyYi4gVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVmVyYi4gVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMxCittc2dpZCAiTkVDIERPUyIKK21zZ3N0ciAiTkVDIERPUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMgorbXNnaWQgIlBsYW4gOSIKK21zZ3N0ciAiUGxhbiA5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMzCittc2dpZCAiUGFydGl0aW9uTWFnaWMgcmVjb3ZlcnkiCittc2dzdHIgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIlZlbml4IDgwMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM1Cittc2dpZCAiUFBDIFBSZVAgQm9vdCIKK21zZ3N0ciAiUFBDIFBSZVAgb3BzdGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNgorbXNnaWQgIlNGUyIKK21zZ3N0ciAiU0ZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM3Cittc2dpZCAiUU5YNC54IgorbXNnc3RyICJRTlg0LngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzgKK21zZ2lkICJRTlg0LnggMm5kIHBhcnQiCittc2dzdHIgIlFOWDQueCAyZGUgZGVlbCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDNkZSBkZWVsIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQwCittc2dpZCAiT25UcmFjayBETSIKK21zZ3N0ciAiT25UcmFjayBETSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MQorbXNnaWQgIk9uVHJhY2sgRE02IEF1eDEiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDIKK21zZ2lkICJDUC9NIgorbXNnc3RyICJDUC9NIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQzCittc2dpZCAiT25UcmFjayBETTYgQXV4MyIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NAorbXNnaWQgIk9uVHJhY2tETTYiCittc2dzdHIgIk9uVHJhY2sgRE02IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ1Cittc2dpZCAiRVotRHJpdmUiCittc2dzdHIgIkVaLURyaXZlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ2Cittc2dpZCAiR29sZGVuIEJvdyIKK21zZ3N0ciAiR29sZGVuIEJvdyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NworbXNnaWQgIlByaWFtIEVkaXNrIgorbXNnc3RyICJQcmlhbSBFZGlzayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkyCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTkKK21zZ2lkICJTcGVlZFN0b3IiCittc2dzdHIgIlNwZWVkU3RvciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OQorbXNnaWQgIkdOVSBIVVJEIG9yIFN5c1YiCittc2dzdHIgIkdOVSBIVVJEIC8gU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGlCb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUzCittc2dpZCAiUEMvSVgiCittc2dzdHIgIlBDL0lYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU0Cittc2dpZCAiT2xkIE1pbml4IgorbXNnc3RyICJPdWRlIE1pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8gb3VkZSBMaW51eCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eCB3aXNzZWxnZWhldWdlbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIHZlcmJvcmdlbiBDOiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCB1aXRnZWJyZWlkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIk5URlMgdm9sdW1lbnNldCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorbXNnaWQgIkxpbnV4IHBsYWludGV4dCIKK21zZ3N0ciAiTGludXggcGxhaW50ZXh0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY0Cittc2dpZCAiQW1vZWJhIgorbXNnc3RyICJBbW9lYmEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjUKK21zZ2lkICJBbW9lYmEgQkJUIgorbXNnc3RyICJBbW9lYmEgQkJUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY2Cittc2dpZCAiQlNEL09TIgorbXNnc3RyICJCU0QvT1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjcKK21zZ2lkICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCittc2dzdHIgIklCTSBUaGlua3BhZCBoaWJlcm5hdGllIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY4Cittc2dpZCAiRnJlZUJTRCIKK21zZ3N0ciAiRnJlZUJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OQorbXNnaWQgIk9wZW5CU0QiCittc2dzdHIgIk9wZW5CU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzAKK21zZ2lkICJOZVhUU1RFUCIKK21zZ3N0ciAiTmVYVFNURVAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzEKK21zZ2lkICJEYXJ3aW4gVUZTIgorbXNnc3RyICJEYXJ3aW4gVUZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcyCittc2dpZCAiTmV0QlNEIgorbXNnc3RyICJOZXRCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzMKK21zZ2lkICJEYXJ3aW4gYm9vdCIKK21zZ3N0ciAiRGFyd2luIG9wc3RhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzQKKyMsIGZ1enp5Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc1Cittc2dpZCAiQlNESSBmcyIKK21zZ3N0ciAiQlNESSBiZXN0YW5kc3N5c3RlZW0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIkJTREkgd2lzc2VsZ2VoZXVnZW4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIkJvb3RXaXphcmQgdmVyYm9yZ2VuIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICJTb2xhcmlzIG9wc3RhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzkKK21zZ2lkICJTb2xhcmlzIgorbXNnc3RyICJTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgwCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTIpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVDEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQxNiA8MzJNKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MgorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2KSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQxNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJOb24tQlMtZ2VnZXZlbnMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODUKK21zZ2lkICJDUC9NIC8gQ1RPUyAvIC4uLiIKK21zZ3N0ciAiQ1AvTSAvIENUT1MgLyAuLi4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODcKK21zZ2lkICJEZWxsIFV0aWxpdHkiCittc2dzdHIgIkRlbGwgVXRpbGl0eSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OAorbXNnaWQgIkJvb3RJdCIKK21zZ3N0ciAiQm9vdEl0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg5Cittc2dpZCAiRE9TIGFjY2VzcyIKK21zZ3N0ciAiRE9TIGFjY2VzcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MQorbXNnaWQgIkRPUyBSL08iCittc2dzdHIgIkRPUyBSL08iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTQKK21zZ2lkICJCZU9TIGZzIgorbXNnc3RyICJCZU9TIGJlc3RhbmRzc3lzdGVlbSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorbXNnaWQgIkdQVCIKK21zZ3N0ciAiR1BUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk2Cittc2dpZCAiRUZJIChGQVQtMTIvMTYvMzIpIgorbXNnc3RyICJFRkkgKEZBVC0xMi8xNi8zMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTcKK21zZ2lkICJMaW51eC9QQS1SSVNDIGJvb3QiCittc2dzdHIgIkxpbnV4L1BBLVJJU0Mgb3BzdGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1Mgc2VjdW5kYWlyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICJWTXdhcmUgVk1GUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDIKK21zZ2lkICJWTXdhcmUgVk1LQ09SRSIKK21zZ3N0ciAiVk13YXJlIHZta2NvcmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA2Cittc2dpZCAiTEFOc3RlcCIKK21zZ3N0ciAiTEFOc3RlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDcKK21zZ2lkICJCQlQiCittc2dzdHIgIkJCVCIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3Igb24gJXMgLSBjYW5ub3Qgc2VlayB0byAlbHVcbiIKK21zZ3N0ciAiJ3NlZWsnLWZvdXQgb3AgJXMgLS0ga2FuIGdlZW4gJ3NlZWsnIGRvZW4gbmFhciAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3I6IHdhbnRlZCAweCUwOHglMDh4LCBnb3QgMHglMDh4JTA4eFxuIgorbXNnc3RyICInc2VlayctZm91dDogMHglMDh4JTA4eCB2ZXJ3YWNodCwgMHglMDh4JTA4eCBnZWtyZWdlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTUKK21zZ2lkICJvdXQgb2YgbWVtb3J5IC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIm9udm9sZG9lbmRlIGdlaGV1Z2VuIGJlc2NoaWtiYWFyIC0tIGdlc3RvcHRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIwIGZkaXNrL3NmZGlzay5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGVycm9yIG9uICVzIC0gY2Fubm90IHJlYWQgc2VjdG9yICVsdVxuIgorbXNnc3RyICJsZWVzZm91dCBvcCAlcyAtLSBrYW4gc2VjdG9yICVsdSBuaWV0IGxlemVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJFUlJPUjogc2VjdG9yICVsdSBkb2VzIG5vdCBoYXZlIGFuIG1zZG9zIHNpZ25hdHVyZVxuIgorbXNnc3RyICJGT1VUOiBzZWN0b3IgJWx1IGhlZWZ0IGdlZW4gTVNET1MtdmluZ2VyYWZkcnVrXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgInNjaHJpamZmb3V0IG9wICVzIC0tIGthbiBzZWN0b3IgJWx1IG5pZXQgc2NocmlqdmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgImthbiBwYXJ0aXRpb25lcmluZ3MtYmV3YWFyYmVzdGFuZCAoJXMpIG5pZXQgb3BlbmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICJzY2hyaWpmZm91dCBvcCAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgImthbiBzdGF0dXMgdmFuIHBhcnRpdGlvbmVyaW5ncy1oZXJzdGVsYmVzdGFuZCAoJXMpIG5pZXQgYmVwYWxlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDAKK21zZ2lkICJwYXJ0aXRpb24gcmVzdG9yZSBmaWxlIGhhcyB3cm9uZyBzaXplIC0gbm90IHJlc3RvcmluZ1xuIgorbXNnc3RyICIiCisicGFydGl0aW9uZXJpbmdzLWhlcnN0ZWxiZXN0YW5kIGhlZWZ0IG9uanVpc3RlIGdyb290dGUgLS0gbmlldCBoZXJzdGVsZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDQKK21zZ2lkICJvdXQgb2YgbWVtb3J5P1xuIgorbXNnc3RyICJvbnZvbGRvZW5kZSBnZWhldWdlbiBiZXNjaGlrYmFhclxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgImthbiBwYXJ0aXRpb25lcmluZ3MtaGVyc3RlbGJlc3RhbmQgKCVzKSBuaWV0IG9wZW5lblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcmVhZGluZyAlc1xuIgorbXNnc3RyICJmb3V0IGJpaiBsZXplbiB2YW4gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIGRldmljZSAlcyBmb3Igd3JpdGluZ1xuIgorbXNnc3RyICJrYW4gYXBwYXJhYXQgJXMgbmlldCBvcGVuZW4gb20gdGUgc2NocmlqdmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nIHNlY3RvciAlbHUgb24gJXNcbiIKK21zZ3N0ciAiZm91dCBiaWogc2NocmlqdmVuIHZhbiBzZWN0b3IgJWx1IG9wICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IGdlb21ldHJ5XG4iCittc2dzdHIgIlNjaGlqZiAlczoga2FuIGdlb21ldHJpZSBuaWV0IGJlcGFsZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICJTY2hpamYgJXM6IGthbiBncm9vdHRlIG5pZXQgYmVwYWxlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHN0YXJ0PSVsdSAtIHRoaXMgbG9va3MgbGlrZSBhIHBhcnRpdGlvbiByYXRoZXIgdGhhblxuIgorInRoZSBlbnRpcmUgZGlzay4gVXNpbmcgZmRpc2sgb24gaXQgaXMgcHJvYmFibHkgbWVhbmluZ2xlc3MuXG4iCisiW1VzZSB0aGUgLS1mb3JjZSBvcHRpb24gaWYgeW91IHJlYWxseSB3YW50IHRoaXNdXG4iCittc2dzdHIgIiIKKyJXYWFyc2NodXdpbmc6IGJlZ2luPSVsdSAtLSBkaXQgemlldCBlciB1aXQgYWxzIGVlbiBwYXJ0aXRpZVxuIgorImluIHBsYWF0cyB2YW4gZWVuIGdlaGVsZSBzY2hpamYuICBIaWVyb3AgZmRpc2sgZ2VicnVpa2VuIGlzXG4iCisid2FhcnNjaGlqbmxpamsgemlubG9vcy5cbiIKKyIoR2VicnVpayBkZSBvcHRpZSAtLWZvcmNlIGFscyB1IGRpdCBlY2h0IHdpbHQgZG9lbi4pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBoZWFkc1xuIgorbXNnc3RyICJXYWFyc2NodXdpbmc6IGlvY3RsKEhESU9fR0VUR0VPKSB6ZWd0IGRhdCBlciAlbHUga29wcGVuIHppam5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IHNlY3RvcnNcbiIKK21zZ3N0ciAiV2FhcnNjaHV3aW5nOiBpb2N0bChIRElPX0dFVEdFTykgemVndCBkYXQgZXIgJWx1IHNlY3RvcmVuIHppam5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIiIKKyJXYWFyc2NodXdpbmc6IGlvY3RsKEJMS0dFVFNJWkUvSERJT19HRVRHRU8pIHplZ3QgZGF0IGVyICVsdSBjaWxpbmRlcnMgemlqblxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJXYWFyc2NodXdpbmc6IG9ud2FhcnNjaGlqbmxpamsgYWFudGFsIHNlY3RvcmVuICglbHUpIC0tIG1lZXN0YWwgaG9vZ3N0ZW5zICIKKyI2My5cbiIKKyJEaXQgemFsIHByb2JsZW1lbiBnZXZlbiBtZXQgYWxsZSBzb2Z0d2FyZSBkaWUgQy9LL1MtYWRyZXNzZXJpbmcgZ2VicnVpa3QuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWx1IGN5bGluZGVycywgJWx1IGhlYWRzLCAlbHUgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIiCisiXG4iCisiU2NoaWpmICVzOiAlbHUgY2lsaW5kZXJzLCAlbHUga29wcGVuLCAlbHUgc2VjdG9yZW4vc3Bvb3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGhlYWQ6ICVsdSAoc2hvdWxkIGJlIGluIDAtJWx1KVxuIgorbXNnc3RyICIiCisiJXMgdmFuIHBhcnRpdGllICVzIGhlZWZ0IGVlbiBvbm1vZ2VsaWprZSB3YWFyZGUgdm9vciBrb3BwZW46ICVsdSAobW9ldCAiCisibGlnZ2VuIHR1c3NlbiAwIGVuICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgdmFuIHBhcnRpdGllICVzIGhlZWZ0IGVlbiBvbm1vZ2VsaWprZSB3YWFyZGUgdm9vciBzZWN0b3JlbjogJWx1IChtb2V0ICIKKyJsaWdnZW4gdHVzc2VuIDEgZW4gJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgY3lsaW5kZXJzOiAlbHUgKHNob3VsZCBiZSBpbiAwLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyB2YW4gcGFydGl0aWUgJXMgaGVlZnQgZWVuIG9ubW9nZWxpamtlIHdhYXJkZSB2b29yIGNpbGluZGVyczogJWx1IChtb2V0ICIKKyJsaWdnZW4gdHVzc2VuIDAgZW4gJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIiIKKyJJZCAgTmFhbVxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIC4uLlxuIgorbXNnc3RyICJIZXJpbmxlemVuIHZhbiBwYXJ0aXRpZXRhYmVsLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxMQorIywgZnV6enkKK21zZ2lkICIiCisiVGhlIGNvbW1hbmQgdG8gcmUtcmVhZCB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZC5cbiIKKyJSdW4gcGFydHByb2JlKDgpLCBrcGFydHgoOCkgb3IgcmVib290IHlvdXIgc3lzdGVtIG5vdyxcbiIKKyJiZWZvcmUgdXNpbmcgbWtmc1xuIgorbXNnc3RyICIiCisiSGV0IG9wbmlldXcgaW5sZXplbiB2YW4gZGUgcGFydGl0aWV0YWJlbCBpcyBtaXNsdWt0LlxuIgorIkhlcnN0YXJ0IHV3IHN5c3RlZW0gbnUsIHbDs8OzciBta2ZzIHRlIGdlYnJ1aWtlbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNsb3NpbmcgJXNcbiIKK21zZ3N0ciAiRm91dCBiaWogc2x1aXRlbiB2YW4gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBzdWNoIHBhcnRpdGlvblxuIgorbXNnc3RyICIlczogZGllIHBhcnRpdGllIGJlc3RhYXQgbmlldFxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4NzgKK21zZ2lkICJ1bnJlY29nbml6ZWQgZm9ybWF0IC0gdXNpbmcgc2VjdG9yc1xuIgorbXNnc3RyICJvbmJla2VuZGUgZWVuaGVpZCAtLSBcInNlY3RvcmVuXCIgd29yZHQgZ2VicnVpa3RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAib25iZXNjaGlrYmFyZSBlZW5oZWlkICAtLSBcIiVzXCIgd29yZHQgZ2VicnVpa3RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJFZW5oZWlkID0gY2lsaW5kZXJzIHZhbiAlbHUgYnl0ZXMsIGJsb2trZW4gdmFuIDEwMjQgYnl0ZXMsIHRlbGxlbmQgdmFuYWYgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgQXBwYXJhYXQgT3BzdCBCZWdpbiAgIEVpbmRlICAgI2NpbHMgICAjYmxva2tlbiAgIElEICBTeXN0ZWVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRWVuaGVpZCA9IHNlY3RvcmVuIHZhbiA1MTIgYnl0ZXMsIHRlbGxlbmQgdmFuYWYgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiBBcHBhcmFhdCBPcHN0ICAgIEJlZ2luICAgICBFaW5kZSAgI3NlY3RvcmVuICBJRCAgU3lzdGVlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVlbmhlaWQgPSBibG9ra2VuIHZhbiAxMDI0IGJ5dGVzLCB0ZWxsZW5kIHZhbmFmICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgIFN0YXJ0ICAgICAgIEVuZCAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgQXBwYXJhYXQgT3BzdCAgIEJlZ2luICAgICBFaW5kZSAgICNibG9ra2VuICAgSUQgIFN5c3RlZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IG1lYmlieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRWVuaGVpZCA9IG1lYmlieXRlcyB2YW4gMTA0ODU3NiBieXRlcywgYmxva2tlbiB2YW4gMTAyNCBieXRlcywgdGVsbGVuZCB2YW5hZiAiCisiJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgIE1pQiAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgQXBwYXJhYXQgT3BzIEJlZ2luICBFaW5kZSAgICBNaUIgICAjYmxva2tlbiAgIElEICBTeXN0ZWVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIgICAgYmVnaW46IChjLGsscykgdmVyd2FjaHQ6ICglbGQsJWxkLCVsZCkgZ2V2b25kZW46ICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMAorIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0ZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIgICAgZWluZGU6IChjLGsscykgdmVyd2FjaHQ6ICglbGQsJWxkLCVsZCkgZ2V2b25kZW46ICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgInBhcnRpdGllIGVpbmRpZ3Qgb3AgY2lsaW5kZXIgJWxkLCBuYSBoZXQgZWluZGUgdmFuIGRlIHNjaGlqZlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTMzCittc2dpZCAiTm8gcGFydGl0aW9ucyBmb3VuZFxuIgorbXNnc3RyICJHZWVuIHBhcnRpdGllcyBnZXZvbmRlbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJXYWFyc2NodXdpbmc6IGhldCBsaWprdCBlcm9wIGRhdCBkZSBwYXJ0aXRpZXRhYmVsIGdlbWFha3QgaXMgdm9vclxuIgorIiAgICAgICAgICAgICAgQy9LL1M9Ki8lbGQvJWxkIChpbiBwbGFhdHMgdmFuIHZvb3IgJWxkLyVsZC8lbGQpO1xuIgorIiAgICAgICAgICAgICAgZGl0IG92ZXJ6aWNodCBuZWVtdCBkaWUgZWVyc3RlIEMvSy9TLWdlb21ldHJpZSBhYW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAiZ2VlbiBwYXJ0aXRpZXRhYmVsIGFhbndlemlnXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RyYW5nZSwgb25seSAlZCBwYXJ0aXRpb25zIGRlZmluZWQuXG4iCittc2dzdHIgIlZyZWVtZDogc2xlY2h0cyAlZCBwYXJ0aXRpZXMgZ2VkZWZpbmllZXJkLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iCittc2dzdHIgIiIKKyJXYWFyc2NodXdpbmc6IHBhcnRpdGllICVzIGhlZWZ0IGdyb290dGUgMCwgbWFhciBpcyBuaWV0IGFhbmdlZ2V2ZW4gYWxzIExlZWdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiV2FhcnNjaHV3aW5nOiBwYXJ0aXRpZSAlcyBoZWVmdCBncm9vdHRlIDAgZW4gaXMgb3BzdGFydGJhYXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgbm9uemVybyBzdGFydFxuIgorbXNnc3RyICIiCisiV2FhcnNjaHV3aW5nOiBwYXJ0aXRpZSAlcyBoZWVmdCBncm9vdHRlIDAgbWFhciBlZW4gbmlldC1udWwgYmVnaW5zZWN0b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICJXYWFyc2NodXdpbmc6IHBhcnRpdGllICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIgorbXNnc3RyICJ2YWx0IG5pZXQgYmlubmVuIHBhcnRpdGllICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9ucyAlcyAiCittc2dzdHIgIldhYXJzY2h1d2luZzogcGFydGl0aWVzICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICJlbiAlcyBvdmVybGFwcGVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorIldhYXJzY2h1d2luZzogcGFydGl0aWUgJXMgYmV2YXQgZWVuIGRlZWwgdmFuIGRlIHBhcnRpdGlldGFiZWwgKHNlY3RvciAlbHUpLFxuIgorImVuIHphbCBkZXplIHZlcm5pZWxlbiBhbHMgemlqIHdvcmR0IGdldnVsZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAiV2FhcnNjaHV3aW5nOiBwYXJ0aXRpZSAlcyBiZWdpbnQgb3Agc2VjdG9yIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogcGFydGl0aWUgJXMgbG9vcHQgdG90IG5hIGhldCBlaW5kZSB2YW4gZGUgc2NoaWpmXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNjkKK21zZ2lkICIiCisiQW1vbmcgdGhlIHByaW1hcnkgcGFydGl0aW9ucywgYXQgbW9zdCBvbmUgY2FuIGJlIGV4dGVuZGVkXG4iCisiIChhbHRob3VnaCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gdW5kZXIgTGludXgpXG4iCittc2dzdHIgIiIKKyJWYW4gZGUgcHJpbWFpcmUgcGFydGl0aWVzIGthbiBlciB0ZW4gaG9vZ3N0ZSDDqcOpbiB1aXRnZWJyZWlkIHppam5cbiIKKyIob25kZXIgTGludXggaXMgZGl0IGVjaHRlciBnZWVuIHByb2JsZWVtKS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJXYWFyc2NodXdpbmc6IHBhcnRpdGllICVzIGJlZ2ludCBuaWV0IG9wIGVlbiBjaWxpbmRlcmdyZW5zXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IGVuZCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogcGFydGl0aWUgJXMgZWluZGlndCBuaWV0IG9wIGVlbiBjaWxpbmRlcmdyZW5zXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiV2FhcnNjaHV3aW5nOiBtZWVyZGVyZSBwcmltYWlyZSBwYXJ0aXRpZXMgemlqbiBnZW1hcmtlZXJkIGFscyBvcHN0YXJ0YmFhci5cbiIKKyJWb29yIExJTE8gbWFha3QgZGl0IG5pZXRzIHVpdCwgbWFhciBET1MgTUJSIHphbCBuaWV0IHZhbiBkZXplIHNjaGlqZiAiCisib3BzdGFydGVuLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzE4Cittc2dpZCAiIgorIldhcm5pbmc6IHVzdWFsbHkgb25lIGNhbiBib290IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zIG9ubHlcbiIKKyJMSUxPIGRpc3JlZ2FyZHMgdGhlIGBib290YWJsZScgZmxhZy5cbiIKK21zZ3N0ciAiIgorIldhYXJzY2h1d2luZzogbm9ybWFhbCBnZXNwcm9rZW4ga2FuIG1lbiBhbGxlZW4gdmFuIHByaW1haXJlXG4iCisicGFydGl0aWVzIG9wc3RhcnRlbi4gIExJTE8gbmVnZWVydCBkZSAnb3BzdGFydGJhYXInLXZsYWcuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMjQKK21zZ2lkICIiCisiV2FybmluZzogbm8gcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorIldhYXJzY2h1d2luZzogZXIgaXMgZ2VlbiBwcmltYWlyZSBwYXJ0aXRpZSBnZW1hcmtlZXJkIGFscyBvcHN0YXJ0YmFhci5cbiIKKyJWb29yIExJTE8gbWFha3QgZGl0IG5pZXRzIHVpdCwgbWFhciBET1MgTUJSIHphbCBuaWV0IHZhbiBkZXplIHNjaGlqZiAiCisib3BzdGFydGVuLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzM4Cittc2dpZCAic3RhcnQiCittc2dzdHIgImJlZ2luIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisicGFydGl0aWUgJXM6IGJlZ2luOiAoYyxrLHMpIHZlcndhY2h0OiAoJWxkLCVsZCwlbGQpIGdldm9uZGVuOiAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgImVpbmRlIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlczogZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisicGFydGl0aWUgJXM6IGVpbmRlOiAoYyxrLHMpIHZlcndhY2h0OiAoJWxkLCVsZCwlbGQpIGdldm9uZGVuOiAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJwYXJ0aXRpZSAlcyBlaW5kaWd0IG9wIGNpbGluZGVyICVsZCwgbmEgaGV0IGVpbmRlIHZhbiBkZSBzY2hpamZcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM3OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc2hpZnRlZCBzdGFydCBvZiB0aGUgZXh0ZCBwYXJ0aXRpb24gZnJvbSAlbGQgdG8gJWxkXG4iCisiKEZvciBsaXN0aW5nIHB1cnBvc2VzIG9ubHkuIERvIG5vdCBjaGFuZ2UgaXRzIGNvbnRlbnRzLilcbiIKK21zZ3N0ciAiIgorIldhYXJzY2h1d2luZzogYmVnaW4gdmFuIHVpdGdlYnJlaWRlIHBhcnRpdGllIGlzIHZlcnNjaG92ZW4gdmFuICVsZCBuYWFyICUiCisibGQuXG4iCisiKEFsbGVlbiB2b29yIHdlZXJnYXZlLiAgRGUgaW5ob3VkIHdvcmR0IG5pZXQgZ2V3aWp6aWdkLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM4NAorbXNnaWQgIiIKKyJXYXJuaW5nOiBleHRlbmRlZCBwYXJ0aXRpb24gZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeS5cbiIKKyJET1MgYW5kIExpbnV4IHdpbGwgaW50ZXJwcmV0IHRoZSBjb250ZW50cyBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIldhYXJzY2h1d2luZzogdWl0Z2VicmVpZGUgcGFydGl0aWUgYmVnaW50IG5pZXQgb3AgZWVuIGNpbGluZGVyZ3JlbnMuXG4iCisiRE9TIGVuIExpbnV4IHp1bGxlbiBkZSBpbmhvdWQgdmVyc2NoaWxsZW5kIGludGVycHJldGVyZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MDIgZmRpc2svc2ZkaXNrLmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zIC0gaWdub3JpbmcgdGhvc2UgcGFzdCBuciAoJWQpXG4iCittc2dzdHIgInRlIHZlZWwgcGFydGl0aWVzIC0tIGRpZSBuYSBudW1tZXIgKCVkKSB3b3JkZW4gZ2VuZWdlZXJkXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MTcKK21zZ2lkICJ0cmVlIG9mIHBhcnRpdGlvbnM/XG4iCittc2dzdHIgImVlbiBib29tIHZhbiBwYXJ0aXRpZXM/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAiRGlzayBNYW5hZ2VyIGdlZGV0ZWN0ZWVyZDsga2FuIGRpdCBuaWV0IGFhbiAtLSBnZXN0b3B0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIkRNNi12aW5nZXJhZmRydWsgZ2V2b25kZW4gLS0gZ2VzdG9wdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAidnJlZW1kLi4uLCBlZW4gdWl0Z2VicmVpZGUgcGFydGl0aWUgbWV0IGdyb290dGUgMD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCittc2dpZCAic3RyYW5nZS4uLiwgYSBCU0QgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAidnJlZW1kLi4uLCBlZW4gQlNELXBhcnRpdGllIG1ldCBncm9vdHRlIDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzOiB1bnJlY29nbml6ZWQgcGFydGl0aW9uIHRhYmxlIHR5cGVcbiIKK21zZ3N0ciAiJXM6IG9uYmVrZW5kIHBhcnRpdGlldGFiZWx0eXBlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIm9wdGllICctbicgd2VyZCBnZWdldmVuOiBlciBpcyBuaWV0cyBnZXdpanppZ2RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzMgorbXNnaWQgIkZhaWxlZCBzYXZpbmcgdGhlIG9sZCBzZWN0b3JzIC0gYWJvcnRpbmdcbiIKK21zZ3N0ciAiT3BzbGFhbiB2YW4gb3VkZSBzZWN0b3JlbiBpcyBtaXNsdWt0IC0tIGdlc3RvcHRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzNyBmZGlzay9zZmRpc2suYzoxNjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB3cml0aW5nIHRoZSBwYXJ0aXRpb24gb24gJXNcbiIKK21zZ3N0ciAiU2NocmlqdmVuIHZhbiBwYXJ0aXRpZSBvcCAlcyBpcyBtaXNsdWt0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3MTkKK21zZ2lkICJsb25nIG9yIGluY29tcGxldGUgaW5wdXQgbGluZSAtIHF1aXR0aW5nXG4iCittc2dzdHIgImxhbmdlIG9mIGluY29tcGxldGUgaW52b2VycmVnZWwgLS0gZ2VzdG9wdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiaW52b2VyZm91dDogJz0nIHZlcndhY2h0IG5hIHZlbGQgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogdW5leHBlY3RlZCBjaGFyYWN0ZXIgJWMgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiaW52b2VyZm91dDogb252ZXJ3YWNodCB0ZWtlbiAlYyBuYSB2ZWxkICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICJpbnZvZXIgbmlldCBoZXJrZW5kOiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxODEwCittc2dpZCAibnVtYmVyIHRvbyBiaWdcbiIKK21zZ3N0ciAiZ2V0YWwgaXMgdGUgZ3Jvb3RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxNAorbXNnaWQgInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtYmVyXG4iCittc2dzdHIgIm9uYmVncmVwZW4gdGVrZW5zIG5hIGdldGFsXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICJnZWVuIHJ1aW10ZSB2b29yIHBhcnRpdGllYmVzY2hyaWp2ZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTk3MQorbXNnaWQgImNhbm5vdCBidWlsZCBzdXJyb3VuZGluZyBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAia2FuIG9tdmF0dGVuZGUgdWl0Z2VicmVpZGUgcGFydGl0aWUgbmlldCBtYWtlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDIyCittc2dpZCAidG9vIG1hbnkgaW5wdXQgZmllbGRzXG4iCittc2dzdHIgInRlIHZlZWwgaW52b2VydmVsZGVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIkdlZW4gcnVpbXRlIHZvb3IgbWVlclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIk9uanVpc3RlIHNvb3J0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZ2l2ZW4gc2l6ZSAoJWx1KSBleGNlZWRzIG1heCBhbGxvd2FibGUgc2l6ZSAoJWx1KVxuIgorbXNnc3RyICIiCisiV2FhcnNjaHV3aW5nOiBnZWdldmVuIGdyb290ZSAoJWx1KSBpcyBncm90ZXIgZGFuIG1heGltYWFsIHRvZWdlbGF0ZW4gZ3Jvb3R0ZSAiCisiKCVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjExMworbXNnaWQgIldhcm5pbmc6IGVtcHR5IHBhcnRpdGlvblxuIgorbXNnc3RyICJXYWFyc2NodXdpbmc6IGxlZ2UgcGFydGl0aWVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogb25nZWxkaWcgcGFydGl0aWViZWdpbiAoZWVyc3RlIG1vZ2VsaWpraGVpZCBpcyAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNDAKK21zZ2lkICJ1bnJlY29nbml6ZWQgYm9vdGFibGUgZmxhZyAtIGNob29zZSAtIG9yICpcbiIKK21zZ3N0ciAib25iZWtlbmRlICdvcHN0YXJ0YmFhcictdmxhZyAtLSBraWVzICctJyBvZiAnKidcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1NyBmZGlzay9zZmRpc2suYzoyMTcwCittc2dpZCAicGFydGlhbCBjLGgscyBzcGVjaWZpY2F0aW9uP1xuIgorbXNnc3RyICJlZW4gZ2VkZWVsdGVsaWprZSBjLGsscy1zcGVjaWZpY2F0aWU/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxODEKK21zZ2lkICJFeHRlbmRlZCBwYXJ0aXRpb24gbm90IHdoZXJlIGV4cGVjdGVkXG4iCittc2dzdHIgIlVpdGdlYnJlaWRlIHBhcnRpdGllIHdhYXIgZGllIG5pZXQgdmVyd2FjaHQgd2VyZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjEzCittc2dpZCAiYmFkIGlucHV0XG4iCittc2dzdHIgIm9uZ2VsZGlnZSBpbnZvZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAidGUgdmVlbCBwYXJ0aXRpZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisiICBcbiIKKyJJbnZvZXIgaXMgaW4gZGV6ZSBpbmRlbGluZyAoYWZ3ZXppZ2UgdmVsZGVuIGtyaWpnZW4gZWVuIHN0YW5kYWFyZHdhYXJkZSk6XG4iCisiICA8YmVnaW4+IDxncm9vdHRlPiA8c29vcnQgW0UsUyxMLFgsaGV4XT4gPG9wc3RhcnRiYWFyIFstLCpdPiA8YyxrLHM+IDxjLGssIgorInM+XG4iCisiTWVlc3RhbCBob2VmdCB1IGFsbGVlbiA8YmVnaW4+IGVuIDxncm9vdHRlPiB0ZSBnZWJydWlrZW4gKGVuIG1vZ2VsaWprICIKKyI8c29vcnQ+KS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIGRldmljZSAuLi5cbiIKK21zZ3N0ciAiR2VicnVpazogICVzIFtvcHRpZXNdIGFwcGFyYWF0IC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAiICAoYXBwYXJhYXQgaXMgem9pZXRzIGFscyAvZGV2L2hkYSBvZiAvZGV2L3NkYSkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgIk51dHRpZ2Ugb3B0aWVzOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgICAtcyBbb3IgLS1zaG93LXNpemVdOiBsaXN0IHNpemUgb2YgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgLXMsIC0tc2hvdy1zaXplICAgICBwYXJ0aXRpZWdyb290dGVzIHRvbmVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiAgLWMsIC0taWQgICAgICAgICAgICBwYXJ0aXRpZS1JRCB0b25lbiBvZiB3aWp6aWdlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgICAtbCBbb3IgLS1saXN0XTogICAgICBsaXN0IHBhcnRpdGlvbnMgb2YgZWFjaCBkZXZpY2UiCittc2dzdHIgIiAgLWwsIC0tbGlzdCAgICAgICAgICBwYXJ0aXRpZXMgd2VlcmdldmVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAwCittc2dpZCAiICAgIC1kIFtvciAtLWR1bXBdOiAgICAgIGlkZW0sIGJ1dCBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgbGF0ZXIgaW5wdXQiCittc2dzdHIgIiIKKyIgIC1kLCAtLWR1bXAgICAgICAgICAgaWRlbSwgbWFhciBpbiBlZW4gb3BtYWFrIGdlc2NoaWt0IHZvb3IgbGF0ZXJlIGludm9lciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAtaSBbb3IgLS1pbmNyZW1lbnRdOiBudW1iZXIgY3lsaW5kZXJzIGV0Yy4gZnJvbSAxIGluc3RlYWQgb2YgZnJvbSAwIgorbXNnc3RyICIiCisiICAtaSwgLS1pbmNyZW1lbnQgICAgIGNpbGluZGVycy9zZWN0b3Jlbi8uLi4gbnVtbWVyZW4gdmFuYWYgMSBpbiBwbGFhdHMgIgorInZhbmFmIDAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDIKK21zZ2lkICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGFjY2VwdC9yZXBvcnQgaW4gdW5pdHMgb2Ygc2VjdG9ycy9ibG9ja3MvY3lsaW5kZXJzLyIKKyJNQiIKK21zZ3N0ciAiIgorIiAgLXVTLCAtdUIsIC11QywgLXVNICBpbnZvZXJlbi93ZWVyZ2V2ZW4gaW4gc2VjdG9yZW4vYmxva2tlbi9jaWxpbmRlcnMvTUIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDMKK21zZ2lkICIgICAgLVQgW29yIC0tbGlzdC10eXBlc106bGlzdCB0aGUga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgIC1ULCAtLWxpc3QtdHlwZXMgICAgYmVrZW5kZSBwYXJ0aXRpZXR5cGVuIG9wc29tbWVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA0Cittc2dpZCAiICAgIC1EIFtvciAtLURPU106ICAgICAgIGZvciBET1MtY29tcGF0aWJpbGl0eTogd2FzdGUgYSBsaXR0bGUgc3BhY2UiCittc2dzdHIgIiIKKyIgIC1ELCAtLURPUyAgICAgICAgICAgZWVuIGJlZXRqZSBydWltdGUgdmVyc3BpbGxlbiAodm9vciBET1MtY29tcGF0aWJpbGl0ZWl0KSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAtUiBbb3IgLS1yZS1yZWFkXTogICBtYWtlIGtlcm5lbCByZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisiICAtUiwgLS1yZS1yZWFkICAgICAgIGRlIHBhcnRpdGlldGFiZWwgb3BuaWV1dyBpbiBsYXRlbiBsZXplbiBkb29yIGRlIGtlcm5lbCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgICAtTiMgOiAgICAgICAgICAgICAgICBjaGFuZ2Ugb25seSB0aGUgcGFydGl0aW9uIHdpdGggbnVtYmVyICMiCittc2dzdHIgIiAgLU4jICAgICAgICAgICAgICAgICBhbGxlZW4gcGFydGl0aWUgbWV0IG51bW1lciAjIHdpanppZ2VuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA3Cittc2dpZCAiICAgIC1uIDogICAgICAgICAgICAgICAgIGRvIG5vdCBhY3R1YWxseSB3cml0ZSB0byBkaXNrIgorbXNnc3RyICIgIC1uICAgICAgICAgICAgICAgICAgbmlldCBlY2h0IG5hYXIgZGUgc2NoaWpmIHNjaHJpanZlbiwgZG9lbiBhbHNvZiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOAorbXNnaWQgIiIKKyIgICAgLU8gZmlsZSA6ICAgICAgICAgICAgc2F2ZSB0aGUgc2VjdG9ycyB0aGF0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gdG8gZmlsZSIKK21zZ3N0ciAiIgorIiAgLU8gYmVzdGFuZCAgICAgICAgICBkZSB0ZSBvdmVyc2NocmlqdmVuIHNlY3RvcmVuIG9wc2xhYW4gaW4gZGl0IGJlc3RhbmQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIgIC1JIGJlc3RhbmQgICAgICAgICAgZGV6ZSBvcGdlc2xhZ2VuIHNlY3RvcmVuIGhlcnN0ZWxsZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgLXYgW29yIC0tdmVyc2lvbl06ICAgcHJpbnQgdmVyc2lvbiIKK21zZ3N0ciAiICAtdiwgLS12ZXJzaW9uICAgICAgIHByb2dyYW1tYXZlcnNpZSB0b25lbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiAgLT8sIC0taGVscCAgICAgICAgICBkZXplIGh1bHB0ZWtzdCB0b25lbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMgorbXNnaWQgImRhbmdlcm91cyBvcHRpb25zOiIKK21zZ3N0ciAiR2V2YWFybGlqa2Ugb3B0aWVzOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIgIC1nLCAtLXNob3ctZ2VvbWV0cnkgICAgIGRlIGtlcm5lbHZpc2llIHZhbiBkZSBnZW9tZXRyaWUgd2VlcmdldmVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE0Cittc2dpZCAiIgorIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gIgorInRhYmxlIgorbXNnc3RyICIiCisiICAtRywgLS1zaG93LXB0LWdlb21ldHJ5ICBkZSB1aXQgZGUgcGFydGl0aWV0YWJlbCBhZmdlbGVpZGUgZ2VvbWV0cmllICIKKyJ3ZWVyZ2V2ZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgLXgsIC0tc2hvdy1leHRlbmRlZCAgICAgb29rIHVpdGdlYnJlaWRlIHBhcnRpdGllcyBvcG5lbWVuIGluIGRlIHVpdHZvZXIsXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBiZXNjaHJpanZlcnMgZXJ2YW4gdmVyd2FjaHRlbiBpbiBkZSBpbnZvZXIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTcKK21zZ2lkICIiCisiICAgIC1MICBbb3IgLS1MaW51eF06ICAgICAgZG8gbm90IGNvbXBsYWluIGFib3V0IHRoaW5ncyBpcnJlbGV2YW50IGZvciBMaW51eCIKK21zZ3N0ciAiIgorIiAgLUwsIC0tTGludXggICAgICAgICBuaWV0IGtsYWdlbiBvdmVyIGRpbmdlbiBkaWUgbmlldCByZWxldmFudCB6aWpuIHZvb3IgIgorIkxpbnV4IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAtcSwgLS1xdWlldCAgICAgICAgIHdhYXJzY2h1d2luZ2VuIG9uZGVyZHJ1a2tlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZXRlY3RlZCBnZW9tZXRyeSB1c2luZzoiCittc2dzdHIgIlUga3VudCBlZW4gYW5kZXJlIGRhbiBkZSBnZXZvbmRlbiBnZW9tZXRyaWUgYWZkd2luZ2VuIG1ldDoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIgIC1DIywgLS1jeWxpbmRlcnMgIyAgaGV0IGFhbnRhbCB0ZSBnZWJydWlrZW4gY2lsaW5kZXJzIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIxCittc2dpZCAiICAgIC1IIyBbb3IgLS1oZWFkcyAjXTogICAgc2V0IHRoZSBudW1iZXIgb2YgaGVhZHMgdG8gdXNlIgorbXNnc3RyICIgIC1IIywgLS1oZWFkcyAjICAgICAgaGV0IGFhbnRhbCB0ZSBnZWJydWlrZW4ga29wcGVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIyCittc2dpZCAiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiCittc2dzdHIgIiAgLVMjLCAtLXNlY3RvcnMgIyAgICBoZXQgYWFudGFsIHRlIGdlYnJ1aWtlbiBzZWN0b3JlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMworbXNnaWQgIllvdSBjYW4gZGlzYWJsZSBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcgd2l0aDoiCittc2dzdHIgIlUga3VudCBhbGxlIGNvbnNpc3RlbnRpZWNvbnRyb2xlcyB1aXR6ZXR0ZW4gbWV0OiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIgIC1mLCAtLWZvcmNlICAgICAgICAgcHJlY2llcyBkb2VuIGFscyBnZWdldmVuLCAqb29rKiBhbHMgaGV0IGRvbSBpcyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAiR2VicnVpazogIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZVx0XHQgbGlzdCBhY3RpdmUgcGFydGl0aW9ucyBvbiBkZXZpY2VcbiIKK21zZ3N0ciAiJXMgYXBwYXJhYXQgICAgICAgICAgICBhY3RpZXZlIHBhcnRpdGllcyBvcCBhcHBhcmFhdCB3ZWVyZ2V2ZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2UgbjEgbjIgLi4uIGFjdGl2YXRlIHBhcnRpdGlvbnMgbjEgLi4uLCBpbmFjdGl2YXRlIHRoZSByZXN0XG4iCittc2dzdHIgIiIKKyIlcyBhcHBhcmFhdCBuMSBuMiAuLi4gIGdlbm9lbWRlIHBhcnRpdGllcyBhY3RpdmVyZW4sIGRlIHJlc3QgZGUtYWN0aXZlcmVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLUFuIGRldmljZVx0IGFjdGl2YXRlIHBhcnRpdGlvbiBuLCBpbmFjdGl2YXRlIHRoZSBvdGhlciBvbmVzXG4iCittc2dzdHIgIiIKKyIlcyAtQW4gYXBwYXJhYXQgICAgICAgIHBhcnRpdGllIG4gYWN0aXZlcmVuLCBhbGxlIGFuZGVyZSBkZS1hY3RpdmVyZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgc2ZkaXNrICIKKyJkb2Vzbid0IHN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIldhYXJzY2h1d2luZzogR1BUIChHVUlELXBhcnRpdGlldGFiZWwpIGdldm9uZGVuIG9wICclcychXG4iCisiSGV0IHByb2dyYW1tYSAnc2ZkaXNrJyBvbmRlcnN0ZXVudCBHUFQgbmlldC4gIEdlYnJ1aWsgR05VICdwYXJ0ZWQnLlxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDU2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIkdlYnJ1aWsgJy0tZm9yY2UnIG9tIGRlemUgY29udHJvbGUgb3ZlciB0ZSBzbGFhbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgImdlZW4gb3BkcmFjaHQ/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAidG90YWw6ICVsbHUgYmxvY2tzXG4iCittc2dzdHIgInRvdGFhbDogJWxsdSBibG9ra2VuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzAKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tcHJpbnQtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXJcbiIKK21zZ3N0ciAiR2VicnVpazogIHNmZGlzayAtLXByaW50LWlkIGFwcGFyYWF0IHBhcnRpdGllbnVtbWVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzIKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tY2hhbmdlLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIElkXG4iCittc2dzdHIgIkdlYnJ1aWs6ICBzZmRpc2sgLS1jaGFuZ2UtaWQgYXBwYXJhYXQgcGFydGl0aWVudW1tZXIgSURcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3NAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBbSWRdXG4iCittc2dzdHIgIkdlYnJ1aWs6ICBzZmRpc2sgLS1pZCBhcHBhcmFhdCBwYXJ0aXRpZW51bW1lciBbSURdXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2ODEKK21zZ2lkICJjYW4gc3BlY2lmeSBvbmx5IG9uZSBkZXZpY2UgKGV4Y2VwdCB3aXRoIC1sIG9yIC1zKVxuIgorbXNnc3RyICJzbGVjaHRzIMOpw6luIGFwcGFyYWF0IGlzIG1vZ2VsaWprIChiZWhhbHZlIG1ldCAnLWwnIG9mICctcycpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgcmVhZC13cml0ZVxuIgorbXNnc3RyICJrYW4gJXMgbmlldCBvcGVuZW4gdm9vciBsZXplbi1lbi1zY2hyaWp2ZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwOQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyBmb3IgcmVhZGluZ1xuIgorbXNnc3RyICJrYW4gJXMgbmlldCBvcGVuZW4gb20gdGUgbGV6ZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiJXM6IE9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3NTMgZmRpc2svc2ZkaXNrLmM6Mjc4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlczogJWxkIGNpbGluZGVycywgJWxkIGtvcHBlbiwgJWxkIHNlY3RvcmVuL3Nwb29yXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGdldCBzaXplIG9mICVzXG4iCittc2dzdHIgImthbiBncm9vdHRlIHZhbiAlcyBuaWV0IG9wdnJhZ2VuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIGFjdGl2ZSBieXRlOiAweCV4IGluc3RlYWQgb2YgMHg4MFxuIgorbXNnc3RyICJvbmp1aXN0ZSAnb3BzdGFydGJhYXInLXZsYWc6IDB4JXggaW4gcGxhYXRzIHZhbiAweDgwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlZvbHRvb2lkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlICVkIGFjdGl2ZSBwcmltYXJ5IHBhcnRpdGlvbnMuIFRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLFxuIgorImJ1dCB0aGUgRE9TIE1CUiB3aWxsIG9ubHkgYm9vdCBhIGRpc2sgd2l0aCAxIGFjdGl2ZSBwYXJ0aXRpb24uXG4iCittc2dzdHIgIiIKKyJVIGhlYnQgJWQgYWN0aWV2ZSwgcHJpbWFpcmUgcGFydGl0aWVzLiAgRGl0IG1hYWt0IG5pZXRzIHVpdCB2b29yIExJTE8sXG4iCisibWFhciBET1MgTUJSIHN0YXJ0IGFsbGVlbiBvcCB2YW4gZWVuIHNjaGlqZiBtZXQgMSBhY3RpZXZlIHBhcnRpdGllLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBoYXMgaWQgJXggYW5kIGlzIG5vdCBoaWRkZW5cbiIKK21zZ3N0ciAicGFydGl0aWUgJXMgaGVlZnQgSUQgJXggZW4gaXMgbmlldCB2ZXJib3JnZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgSWQgJWx4XG4iCittc2dzdHIgIk9uZ2VsZGlnIElEICVseFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDA0Cittc2dpZCAiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UuXG4iCittc2dzdHIgIkRlemUgc2NoaWpmIGlzIG9wIGRpdCBtb21lbnQgaW4gZ2VicnVpay5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAiRmF0YWxlIGZvdXQ6IGthbiAlcyBuaWV0IHZpbmRlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICJXYWFyc2NodXdpbmc6ICVzIGlzIGdlZW4gYmxvay1hcHBhcmFhdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAiRXZlbiBjb250cm9sZXJlbiBvZiBpZW1hbmQgZGV6ZSBzY2hpamYgbnUgZ2VicnVpa3QuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisiXG4iCisiRGV6ZSBzY2hpamYgaXMgaW4gZ2VicnVpayAtLSBudSBoZXJwYXJ0aXRpb25lcmVuIGlzIGVlbiBzbGVjaHQgaWRlZS5cbiIKKyJPbnRrb3BwZWwgZWVyc3QgYWxsZSBiZXN0YW5kc3N5c3RlbWVuLCBlbiBzY2hha2VsIG1ldCAnc3dhcG9mZicgYWxsZVxuIgorIndpc3NlbGdlaGV1Z2VucGFydGl0aWVzIG9wIGRlemUgc2NoaWpmIHVpdC5cbiIKKyJPZiBnZWJydWlrIG9wdGllICctLW5vLXJlcmVhZCcgb20gZGV6ZSBjb250cm9sZSB0ZSBvbmRlcmRydWtrZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICJHZWJydWlrIC0tZm9yY2Ugb20gYWxsZSBjb250cm9sZXMgdGUgbmVnZXJlbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA0MgorbXNnaWQgIk9LXG4iCittc2dzdHIgIk9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2xkIHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiT3VkZSBzaXR1YXRpZTpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCBjaGFuZ2UgaXRcbiIKK21zZ3N0ciAiUGFydGl0aWUgJWQgYmVzdGFhdCBuaWV0OyBrYW4gZGV6ZSBkdXMgbmlldCB2ZXJhbmRlcmVuIVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBzaXR1YXRpb246XG4iCittc2dzdHIgIk5pZXV3ZSBzaXR1YXRpZTpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisiSG1tLi4uIHZyZWVtZGUgcGFydGl0aWVzIC0tIGVyIGlzIG5pZXRzIGdld2lqemlnZC5cbiIKKyIoQWxzIHUgZGl0IGVjaHQgd2lsdCwga3VudCB1IC0tZm9yY2UgZ2VicnVpa2VuLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiSG1tLi4uIHZyZWVtZGUgcGFydGl0aWVzIC0tIG1pc3NjaGllbiBtb2V0IHUgTmVlIGFudHdvb3JkZW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXJlIHlvdSBzYXRpc2ZpZWQgd2l0aCB0aGlzPyBbeW5xXSAiCittc2dzdHIgIkJlbnQgdSBoaWVybWVlIHRldnJlZGVuPyBbeW5xXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiCittc2dzdHIgIldpbHQgdSBkaXQgbmFhciBkZSBzY2hpamYgc2NocmlqdmVuPyBbeW5xXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGVuZCBvZiBpbnB1dFxuIgorbXNnc3RyICIiCisiXG4iCisic2ZkaXNrOiB2b29ydGlqZGlnIGVpbmRlIHZhbiBkZSBpbnZvZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4NQorbXNnaWQgIlF1aXR0aW5nIC0gbm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIkdlc3RvcHQgLS0gZXIgaXMgbmlldHMgZ2V3aWp6aWdkLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBsZWFzZSBhbnN3ZXIgb25lIG9mIHksbixxXG4iCittc2dzdHIgIkFudHdvb3JkIG1ldCAneScgKGphKSBvZiAnbicgKG5lZSkgb2YgJ3EnIChzdG9wcGVuKS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VjY2Vzc2Z1bGx5IHdyb3RlIHRoZSBuZXcgcGFydGl0aW9uIHRhYmxlXG4iCisiXG4iCittc2dzdHIgIiIKKyJEZSBuaWV1d2UgcGFydGl0aWV0YWJlbCBpcyBzdWNjZXN2b2wgZ2VzY2hyZXZlbi5cbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzEwNQorbXNnaWQgIiIKKyJJZiB5b3UgY3JlYXRlZCBvciBjaGFuZ2VkIGEgRE9TIHBhcnRpdGlvbiwgL2Rldi9mb283LCBzYXksIHRoZW4gdXNlIGRkKDEpXG4iCisidG8gemVybyB0aGUgZmlyc3QgNTEyIGJ5dGVzOiAgZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MVxuIgorIihTZWUgZmRpc2soOCkuKVxuIgorbXNnc3RyICIiCisiQWxzIHUgZWVuIERPUy1wYXJ0aXRpZSBnZW1hYWt0IG9mIGdld2lqemlnZCBoZWJ0LCBzdGVsIC9kZXYvZm9vNyxcbiIKKyJnZWJydWlrIGRhbiBkZCgxKSBvbSBkZSBlZXJzdGUgNTEyIGJ5dGVzIG51bCB0ZSBtYWtlbjpcbiIKKyIgIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTEgICh6aWUgbWFuIGZkaXNrKDgpKVxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiVzOiBrYW4gJXMgbmlldCBvcGVuZW46ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBiYWQgZm9ybWF0IG9uIGxpbmUgJWQgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozNTIKK21zZ2lkICIiCisiV0FSTklORzogWW91ciAvZXRjL2ZzdGFiIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZzY2sgcGFzc25vXG4iCisiXHRmaWVsZC4gIEkgd2lsbCBrbHVkZ2UgYXJvdW5kIHRoaW5ncyBmb3IgeW91LCBidXQgeW91XG4iCisiXHRzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo0NjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZzY2s6ICVzOiBub3QgZm91bmRcbiIKK21zZ3N0ciAidW1vdW50OiAlczogbmlldCBnZXZvbmRlbiIKKworIzogZnNjay9mc2NrLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZy4uLiAlcyBmb3IgZGV2aWNlICVzIGV4aXRlZCB3aXRoIHNpZ25hbCAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKKyMsIGZ1enp5Cittc2dpZCAiQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBmaWxlc3lzdGVtIHR5cGVzXG4iCittc2dzdHIgIm1vdW50OiB1IG1vZXQgZWVuIGJlc3RhbmRzc3lzdGVlbXNvb3J0IGFhbmdldmVuIgorCisjOiBmc2NrL2ZzY2suYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBza2lwcGluZyBiYWQgbGluZSBpbiAvZXRjL2ZzdGFiOiBiaW5kIG1vdW50IHdpdGggbm9uemVybyBmc2NrIHBhc3MgIgorIm51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIgorbXNnc3RyICIlczogJXMgaXMgZ2VlbiBwcmludGVyYXBwYXJhYXRcbiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKKyMsIGZ1enp5Cittc2dpZCAiQ2hlY2tpbmcgYWxsIGZpbGUgc3lzdGVtcy5cbiIKK21zZ3N0ciAiR2Vkd29uZ2VuIGJlc3RhbmRzc3lzdGVlbWNvbnRyb2xlIHZhbiAlcy5cbiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1CisjLCBmdXp6eQorbXNnaWQgIiIKKyJVc2FnZTogZnNjayBbLUFNTlBSVFZdIFsgLUMgWyBmZCBdIF0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIFtmaWxlc3lzIC4uLl1cbiIKK21zZ3N0ciAiIgorIkdlYnJ1aWs6ICBta2ZzIFstVl0gWy10IGJlc3RhbmRzc3lzdGVlbXNvb3J0XSBbYmVzdGFuZHNzeXN0ZWVtb3B0aWVzXSAiCisiYXBwYXJhYXQgW2dyb290dGVdXG4iCisKKyM6IGZzY2svZnNjay5jOjExMjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzOiAlcyBpcyBnZWVuIHByaW50ZXJhcHBhcmFhdFxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJLYW4gJXMgbmlldCBvcGVuZW46ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklzIC9wcm9jIG1vdW50ZWQ/XG4iCittc2dzdHIgIiVzIGlzIG9udGtvcHBlbGRcbiIKKworIzogZnNjay9mc2NrLmM6MTE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIHJvb3QgdG8gc2NhbiBmb3IgbWF0Y2hpbmcgZmlsZXN5c3RlbXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTE0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgZmluZCBtYXRjaGluZyBmaWxlc3lzdGVtOiAlc1xuIgorbXNnc3RyICJPbnRrb3BwZWxlbiB2YW4gcmVzdGVyZW5kZSBiZXN0YW5kc3N5c3RlbWVuLi4uIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBhcmd1bWVudHNcbiIKK21zZ3N0ciAiJXM6IG9uYmVrZW5kIGFyZ3VtZW50OiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgKCVzKVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMjg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgZnNja19wYXRoXG4iCittc2dzdHIgIkthbiBnZWVuIGJ1ZmZlciByZXNlcnZlcmVuIHZvb3IgaW5vZGVzIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MjI5Cittc2dpZCAiVHJ5IGBnZXRvcHQgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiUHJvYmVlciAnZ2V0b3B0IC0taGVscCcgdm9vciBtZWVyIGluZm9ybWF0aWUuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyOTUKK21zZ2lkICJlbXB0eSBsb25nIG9wdGlvbiBhZnRlciAtbCBvciAtLWxvbmcgYXJndW1lbnQiCittc2dzdHIgImxlZ2Ugb3B0aWVyZWVrcyBuYSBvcHRpZSAnLWwnIG9mICctLWxvbmcnIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzE1Cittc2dpZCAidW5rbm93biBzaGVsbCBhZnRlciAtcyBvciAtLXNoZWxsIGFyZ3VtZW50IgorbXNnc3RyICJvbmJla2VuZGUgc2hlbGwgbmEgb3B0aWUgJy1zJyBvZiAnLS1zaGVsbCciCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjAKK21zZ2lkICJVc2FnZTogZ2V0b3B0IG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIkdlYnJ1aWs6ICBnZXRvcHQgb3B0aWVyZWVrcyBwYXJhbWV0ZXJzXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjEKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSBbLS1dIG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICBnZXRvcHQgW29wdGllc10gWy0tXSBvcHRpZXJlZWtzIHBhcmFtZXRlcnNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiIgorIiAgICAgICAgICBnZXRvcHQgW29wdGllc10gLW98LS1vcHRpb25zIG9wdGllcmVla3MgW29wdGllc10gWy0tXSBwYXJhbWV0ZXJzXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjMKK21zZ2lkICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICBcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNAorbXNnaWQgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggc2luZ2xlIC1cbiIKK21zZ3N0ciAiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgICBsYW5nZSBvcHRpZXMgbWV0IMOpw6luICctJyB0b2VzdGFhblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI1Cittc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRoaXMgc21hbGwgdXNhZ2UgZ3VpZGVcbiIKK21zZ3N0ciAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICBkZXplIGh1bHB0ZWtzdCB0b25lblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI2Cittc2dpZCAiICAtbCwgLS1sb25nb3B0aW9ucz1sb25nb3B0cyAgIExvbmcgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLWwsIC0tbG9uZ29wdGlvbnM9b3B0aWVyZWVrcyAgdGUgaGVya2VubmVuIGxhbmdlIG9wdGllc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI3Cittc2dpZCAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iCittc2dzdHIgIiAgLW4sIC0tbmFtZT1wcm9ncmFtbWFuYWFtICAgICAgZm91dGVuIHJhcHBvcnRlcmVuIG9uZGVyIGRlemUgbmFhbVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI4Cittc2dpZCAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIFNob3J0IG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1vLCAtLW9wdGlvbnM9b3B0aWVyZWVrcyAgICAgIHRlIGhlcmtlbm5lbiBrb3J0ZSBvcHRpZXNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOQorbXNnaWQgIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBEaXNhYmxlIGVycm9yIHJlcG9ydGluZyBieSBnZXRvcHQoMylcbiIKK21zZ3N0ciAiIgorIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICAgZm91dHJhcHBvcnRhZ2UgdmFuIGdldG9wdCgzKSB1aXR6ZXR0ZW5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMAorbXNnaWQgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBub3JtYWwgb3V0cHV0XG4iCittc2dzdHIgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICAgZ2V3b25lIHVpdHZvZXIgb25kZXJkcnVra2VuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiIgorIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICAgYWFuaGFsaW5nc2NvbnZlbnRpZXMgdmFuIGRlemUgc2hlbGwgIgorImdlYnJ1aWtlblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKyIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgIGJlcGFsZW4gb2YgZGl0IGVlbiB2ZXJiZXRlcmRlIGdldG9wdCgxKSBpc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMzCittc2dpZCAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIERvIG5vdCBxdW90ZSB0aGUgb3V0cHV0XG4iCittc2dzdHIgIiAgLXUsIC0tdW5xdW90ZWQgICAgICAgICAgICAgICAgZGUgdWl0dm9lciBuaWV0IGFhbmhhbGVuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgICBwcm9ncmFtbWF2ZXJzaWUgdG9uZW5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjM4OCBnZXRvcHQvZ2V0b3B0LmM6NDQ3Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgIm9udGJyZWtlbmRlIG9wdGllcmVla3MiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0ICh2ZXJiZXRlcmRlKSAxLjEuNFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDQxCittc2dpZCAiaW50ZXJuYWwgZXJyb3IsIGNvbnRhY3QgdGhlIGF1dGhvci4iCittc2dzdHIgIippbnRlcm5lIGZvdXQqOyBuZWVtIGNvbnRhY3Qgb3AgbWV0IGRlIGF1dGV1ciIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAib3BnZXN0YXJ0IHZhbnVpdCBNSUxPXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJSdWZmaWFuIEJDRCBjbG9ja1xuIgorbXNnc3RyICJSdWZmaWFhbnNlIEJDRC1rbG9rXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICJrbG9rcG9vcnQgYWFuZ2VwYXN0IHRvdCAweCV4XG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJmdW5reSBUT1khXG4iCittc2dzdHIgImNvb2wgc3BlZWx0amUhXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXRvbWljICVzIGZhaWxlZCBmb3IgMTAwMCBpdGVyYXRpb25zISIKK21zZ3N0ciAiJXM6IGF0b21pc2NoZSAlcyBpcyBkdWl6ZW5kIGtlZXIgbWlzbHVrdCEiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHJlYWQgZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIkthbiAvZGV2L3BvcnQgbmlldCBvcGVuZW46ICVzIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIkdlZW4gdG9lc3RlbW1pbmcgZ2VrcmVnZW4sIHdhbnQgbmlldCBnZXByb2JlZXJkLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiJXMga2FuIGdlZW4gSS9PLXBvb3J0dG9lZ2FuZyBrcmlqZ2VuOiBpb3BsKDMpIGlzIG1pc2x1a3QuXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9iYWJseSB5b3UgbmVlZCByb290IHByaXZpbGVnZXMuXG4iCittc2dzdHIgIldhYXJzY2hpam5saWprIGhlYnQgdSByb290LXByaXZpbGVnZXMgbm9kaWcuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluICVzIHRpbWUuXG4iCittc2dzdHIgIkVyIHdvcmR0IGFhbmdlbm9tZW4gZGF0IGRlIGhhcmR3YXJla2xvayBvcCAlcyBzdGFhdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgIlVUQyIKK21zZ3N0ciAiVVRDLXRpamQiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAibG9rYWxlIHRpamQiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2FybmluZzogdW5yZWNvZ25pemVkIHRoaXJkIGxpbmUgaW4gYWRqdGltZSBmaWxlXG4iCittc2dzdHIgIiVzOiBXYWFyc2NodXdpbmc6IGRlcmRlIHJlZ2VsIGluIGFkanRpbWUtYmVzdGFuZCBpcyBuaWV0IGhlcmtlbmQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIihWZXJ3YWNodDogJ1VUQycgb2YgJ0xPQ0FMJyBvZiBuaWV0cy4pXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGRyaWZ0IGFkanVzdG1lbnQgZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIkxhYXRzdGUgdmVyc2NodWl2aW5nc2NvcnJlY3RpZSBpcyAlbGQgc2Vjb25kZW4gbmEgMTk2OSBnZWRhYW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJMYWF0c3RlIGNhbGlicmF0aWUgaXMgJWxkIHNlY29uZGVuIG5hIDE5NjkgZ2VkYWFuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICJIYXJkd2FyZWtsb2sgc3RhYXQgb3AgJXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgIm9uYmVrZW5kZSB0aWpkIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBmb3IgY2xvY2sgdGljay4uLlxuIgorbXNnc3RyICJXYWNodGVuIG9wIGtsb2t0aWsuLi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiLi4ua2xva3RpayBvbnR2YW5nZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHZhbHVlcyBpbiBoYXJkd2FyZSBjbG9jazogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorbXNnc3RyICJPbmdlbGRpZ2Ugd2FhcmRlbiBpbiBoYXJkd2FyZWtsb2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiSGFyZHdhcmVrbG9rdGlqZCBpczogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRlbiBzaW5kcyAiCisiMTk2OS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIlRpamQgZ2VsZXplbiB2YW4gZGUgaGFyZHdhcmVrbG9rOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIEhhcmR3YXJlIENsb2NrIHRvICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiSW5zdGVsbGVuIHZhbiBoYXJkd2FyZWtsb2sgb3AgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kZW4gc2luZHMgMTk2OS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb2NrIG5vdCBjaGFuZ2VkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJLbG9rIG5pZXQgZ2V3aWp6aWdkIC0tIGluIHRlc3Rtb2R1cy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIlZlcmxvcGVuIHRpamQgc2luZHMgbGFhdHN0ZSByZWZlcmVudGlldGlqZCBpcyAlLjZmIHNlY29uZGVuLlxuIgorIlVpdGdlc3RlbGQgdG90IGRlIHZvbGdlbmRlIHZvbGxlIHNlY29uZGUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIHJlZ2lzdGVycyBjb250YWluIHZhbHVlcyB0aGF0IGFyZSBlaXRoZXIgaW52YWxpZCAoZS5nLiAiCisiNTB0aCBkYXkgb2YgbW9udGgpIG9yIGJleW9uZCB0aGUgcmFuZ2Ugd2UgY2FuIGhhbmRsZSAoZS5nLiBZZWFyIDIwOTUpLlxuIgorbXNnc3RyICIiCisiRGUgaGFyZHdhcmVrbG9rIGJldmF0IHdhYXJkZW4gZGllIG9md2VsIG9uanVpc3QgemlqbiAoYmlqdm9vcmJlZWxkIGRlIDUwZSAiCisiZGFnIHZhbiBkZSBtYWFuZCkgb2YgYnVpdGVuIGhldCBvbmRlcnN0ZXVuZGUgYmVyZWlrIHZhbGxlbiAoYmlqdm9vcmJlZWxkIGhldCAiCisiamFhciAyMDk1KS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiJXMgICUuNmYgc2Vjb25kZW5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIC0tZGF0ZSBvcHRpb24gc3BlY2lmaWVkLlxuIgorbXNnc3RyICJHZWVuIG9wdGllIC0tZGF0ZSBnZWdldmVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1kYXRlIGFyZ3VtZW50IHRvbyBsb25nXG4iCittc2dzdHIgImFyZ3VtZW50IHZhbiAtLWRhdGUgaXMgdGUgbGFuZ1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiBpcyBub3QgYSB2YWxpZCBkYXRlLlxuIgorIkluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHF1b3RhdGlvbiBtYXJrcy5cbiIKK21zZ3N0ciAiIgorIkhldCBhcmd1bWVudCB2YW4gLS1kYXRlIGlzIGdlZW4gZ2VsZGlnZSBkYXR1bS5cbiIKKyJJbiBoZXQgYmlqem9uZGVyIGJldmF0IGhldCBhYW5oYWxpbmdzdGVrZW5zLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIlVpdHZvZXJpbmcgdmFuICdkYXRlJy1vcGRyYWNodDogJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQwCittc2dpZCAiVW5hYmxlIHRvIHJ1biAnZGF0ZScgcHJvZ3JhbSBpbiAvYmluL3NoIHNoZWxsLiBwb3BlbigpIGZhaWxlZCIKK21zZ3N0ciAiS2FuICdkYXRlJy1wcm9ncmFtbWEgbmlldCBpbiAvYmluL3NoIHVpdHZvZXJlbjogcG9wZW4oKSBpcyBtaXNsdWt0IgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcG9uc2UgZnJvbSBkYXRlIGNvbW1hbmQgPSAlc1xuIgorbXNnc3RyICJBbnR3b29yZCB2YW4gJ2RhdGUnLW9wZHJhY2h0ID0gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdHMuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAgJXNcbiIKK21zZ3N0ciAiIgorIkRlICdkYXRlJy1vcGRyYWNodCB1aXRnZXZvZXJkIGRvb3IgJXMgZ2FmIG9udmVyd2FjaHRlIHJlc3VsdGF0ZW4uXG4iCisiRGUgb3BkcmFjaHQgd2FzOlxuIgorIiAgJXNcbiIKKyJIZXQgYW50d29vcmQgd2FzOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIkRlICdkYXRlJy1vcGRyYWNodCB1aXRnZXZvZXJkIGRvb3IgJXMgZ2FmIGdlZW4gZ2VoZWVsIGdldGFsIHdhYXIgZGUgIgorImdlY29udmVydGVlcmRlIHRpamRzd2FhcmRlIHdlcmQgdmVyd2FjaHQuXG4iCisiRGUgb3BkcmFjaHQgd2FzOlxuIgorIiAgJXNcbiIKKyJIZXQgYW50d29vcmQgd2FzOlxuIgorIiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICJEYXR1bXRla3N0ICVzIGlzIGdlbGlqayBhYW4gJWxkIHNlY29uZGVuIHNpbmRzIDE5NjkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorIkRlIGhhcmR3YXJla2xvayBiZXZhdCBnZWVuIGdlbGRpZ2UgdGlqZCwgem9kYXQgZGUgc3lzdGVlbXRpamQgZXIgbmlldCBtZWUgIgorImluZ2VzdGVsZCBrYW4gd29yZGVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjcgaHdjbG9jay9od2Nsb2NrLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgc2V0dGltZW9mZGF5OlxuIgorbXNnc3RyICJBYW5yb2VwIHZhbiBzZXR0aW1lb2ZkYXkoKTpcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI4IGh3Y2xvY2svaHdjbG9jay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorbXNnc3RyICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzAgaHdjbG9jay9od2Nsb2NrLmM6ODA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorbXNnc3RyICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMzIGh3Y2xvY2svaHdjbG9jay5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBzeXN0ZW0gY2xvY2sgYmVjYXVzZSBydW5uaW5nIGluIHRlc3QgbW9kZS5cbiIKK21zZ3N0ciAiRGUgc3lzdGVlbWtsb2sgd29yZHQgbmlldCBpbmdlc3RlbGQgLS0gaW4gdGVzdG1vZHVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIlUgbW9ldCByb290IHppam4gb20gZGUgc3lzdGVlbWtsb2sgaW4gdGUga3VubmVuIHN0ZWxsZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgInNldHRpbWVvZmRheSgpIGlzIG1pc2x1a3QiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc4MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBzeXN0ZW0gdGltZTogJWxkID0gJXNcbiIKK21zZ3N0ciAibGV6ZW4gdmFuIHN5c3RlZW10aWpkIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRVVEM6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIHRoZSBIYXJkd2FyZSBDbG9jayBwcmV2aW91c2x5IGNvbnRhaW5lZCAiCisiZ2FyYmFnZS5cbiIKK21zZ3N0ciAiIgorIkRlIHZlcnNjaHVpdmluZ3NmYWN0b3Igd29yZHQgbmlldCBhYW5nZXBhc3QsXG4iCisib21kYXQgZGUgaGFyZHdhcmVrbG9rIGVlcmRlciByb21tZWwgYmV2YXR0ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGxhc3QgY2FsaWJyYXRpb24gdGltZSBpcyB6ZXJvLFxuIgorInNvIGhpc3RvcnkgaXMgYmFkIGFuZCBjYWxpYnJhdGlvbiBzdGFydG92ZXIgaXMgbmVjZXNzYXJ5LlxuIgorbXNnc3RyICIiCisiRGUgdmVyc2NodWl2aW5nc2ZhY3RvciB3b3JkdCBuaWV0IGFhbmdlcGFzdCxcbiIKKyJvbWRhdCBkZSBsYWF0c3RlIGNhbGlicmF0aWV0aWpkIG51bCB3YXMuXG4iCisiRXIgaXMgZHVzIGdlZW4gYnJ1aWtiYXJlIGdlc2NoaWVkZW5pcyxcbiIKKyJlbiBlZW4gbGF0ZXJlIGhlcmNhbGlicmF0aWUgaXMgbm9kaWcuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBpdCBoYXMgYmVlbiBsZXNzIHRoYW4gYSBkYXkgc2luY2UgdGhlICIKKyJsYXN0IGNhbGlicmF0aW9uLlxuIgorbXNnc3RyICIiCisiRGUgdmVyc2NodWl2aW5nc2ZhY3RvciB3b3JkdCBuaWV0IGFhbmdlcGFzdCxcbiIKKyJvbWRhdCBkZSB2b3JpZ2UgY2FsaWJyYXRpZSBtaW5kZXIgZGFuIMOpw6luIGRhZyBnZWxlZGVuIGlzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNsb2NrIGRyaWZ0ZWQgJS4xZiBzZWNvbmRzIGluIHRoZSBwYXN0ICVkIHNlY29uZHMgaW4gc3BpdGUgb2YgYSBkcmlmdCBmYWN0b3IgIgorIm9mICVmIHNlY29uZHMvZGF5LlxuIgorIkFkanVzdGluZyBkcmlmdCBmYWN0b3IgYnkgJWYgc2Vjb25kcy9kYXlcbiIKK21zZ3N0ciAiIgorIkRlIGtsb2sgaXMgJS4xZiBzZWNvbmRlbiB2ZXJzY2hvdmVuIGluIGRlIGxhYXRzdGUgJWQgc2Vjb25kZW4sXG4iCisib25kYW5rcyBlZW4gdmVyc2NodWl2aW5nc2ZhY3RvciB2YW4gJWYgc2Vjb25kZW4vZGFnLlxuIgorIkRlIHZlcnNjaHVpdmluZ3NmYWN0b3Igd29yZHQgbWV0ICVmIHNlY29uZGVuL2RhZyBhYW5nZXBhc3QuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHNpbmNlIGxhc3QgYWRqdXN0bWVudCBpcyAlZCBzZWNvbmRzXG4iCittc2dzdHIgIkRlIHZlcmxvcGVuIHRpamQgc2luZHMgZGUgdm9yaWdlIGFhbnBhc3NpbmcgaXMgJWQgc2Vjb25kZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkIHRvIGluc2VydCAlZCBzZWNvbmRzIGFuZCByZWZlciB0aW1lIGJhY2sgJS42ZiBzZWNvbmRzIGFnb1xuIgorbXNnc3RyICIiCisiRXIgbW9ldGVuICVkIHNlY29uZGVuIHdvcmRlbiBpbmdldm9lZ2QsXG4iCisiZW4gJS42ZiBzZWNvbmRlbiB6dWxsZW4gbGF0ZXIgdmVycmVrZW5kIHdvcmRlbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIkhldCBiZXN0YW5kIC9ldGMvYWRqdGltZSB3b3JkdCBuaWV0IGFhbmdlcGFzdCAtLSBpbiB0ZXN0bW9kdXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV291bGQgaGF2ZSB3cml0dGVuIHRoZSBmb2xsb3dpbmcgdG8gJXM6XG4iCisiJXMiCittc2dzdHIgIiIKKyJIZXQgdm9sZ2VuZGUgem91IG5hYXIgJXMgZ2VzY2hyZXZlbiB3b3JkZW46XG4iCisiJXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAxNworIywgYy1mb3JtYXQKK21zZ2lkICJEcmlmdCBhZGp1c3RtZW50IHBhcmFtZXRlcnMgbm90IHVwZGF0ZWQuXG4iCittc2dzdHIgIkRlIHBhcmFtZXRlcnMgdm9vciBkZSB2ZXJzY2h1aXZpbmdzYWFucGFzc2luZyB6aWpuIG5pZXQgYmlqZ2V3ZXJrdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICIiCisiRGUgaGFyZHdhcmVrbG9rIGJldmF0IGdlZW4gZ2VsZGlnZSB0aWpkLCB6b2RhdCBkaWUgbmlldCBhYW5nZXBhc3Qga2FuICIKKyJ3b3JkZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAiIgorIkRlIHZlcnNjaHVpdmluZ3NmYWN0b3Igd29yZHQgbmlldCBhYW5nZXBhc3QsXG4iCisib21kYXQgZGUgbGFhdHN0ZSBjYWxpYnJhdGlldGlqZCBudWwgd2FzLlxuIgorIkVyIGlzIGR1cyBnZWVuIGJydWlrYmFyZSBnZXNjaGllZGVuaXMsXG4iCisiZW4gZWVuIGxhdGVyZSBoZXJjYWxpYnJhdGllIGlzIG5vZGlnLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWRlZCBhZGp1c3RtZW50IGlzIGxlc3MgdGhhbiBvbmUgc2Vjb25kLCBzbyBub3Qgc2V0dGluZyBjbG9jay5cbiIKK21zZ3N0ciAiIgorIkRlIGJlbm9kaWdkZSBhYW5wYXNzaW5nIGlzIG1pbmRlciBkYW4gw6nDqW4gc2Vjb25kZTsgZGUga2xvayB3b3JkdCBuaWV0ICIKKyJ2ZXJhbmRlcmQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgIiVzIHdvcmR0IGdlYnJ1aWt0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIkdlZW4gYnJ1aWtiYXJlIGtsb2staW50ZXJmYWNlIGdldm9uZGVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkluc3RlbGxlbiB2YW4gZGUgc3lzdGVlbWtsb2sgaXMgbWlzbHVrdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBrZWVwcyBhbiBlcG9jaCB2YWx1ZSBmb3IgdGhlIEhhcmR3YXJlIENsb2NrIG9ubHkgb24gYW4gQWxwaGEgIgorIm1hY2hpbmUuXG4iCisiVGhpcyBjb3B5IG9mIGh3Y2xvY2sgd2FzIGJ1aWx0IGZvciBhIG1hY2hpbmUgb3RoZXIgdGhhbiBBbHBoYVxuIgorIihhbmQgdGh1cyBpcyBwcmVzdW1hYmx5IG5vdCBydW5uaW5nIG9uIGFuIEFscGhhIG5vdykuICBObyBhY3Rpb24gdGFrZW4uXG4iCittc2dzdHIgIiIKKyJEZSBrZXJuZWwgYmV3YWFydCBhbGxlZW4gYmlqIEFscGhhJ3MgZWVuIHRpamRwZXJrd2FhcmRlIHZvb3IgZGUgIgorImhhcmR3YXJla2xvay5cbiIKKyJEZXplIHZlcnNpZSB2YW4gJ2h3Y2xvY2snIGlzIGdlbWFha3Qgdm9vciBlZW4gYW5kZXIgc3lzdGVlbSBkYW4gZGUgQWxwaGFcbiIKKyIoZW4gZHJhYWl0IG51IGR1cyB2ZXJtb2VkZWxpamsgbmlldCBvcCBlZW4gQWxwaGEpLiAgR2VlbiBhY3RpZSBvbmRlcm5vbWVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBnZXQgdGhlIGVwb2NoIHZhbHVlIGZyb20gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiVmVya3JpamdlbiB2YW4gZGUgdGlqZHBlcmt3YWFyZGUgdmFuIGRlIGtlcm5lbCBpcyBtaXNsdWt0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAiS2VybmVsIG5lZW10IGFscyB0aWpkcGVya3dhYXJkZSAlbHUgYWFuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBzZXQgdGhlIGVwb2NoIHZhbHVlLCB5b3UgbXVzdCB1c2UgdGhlICdlcG9jaCcgb3B0aW9uIHRvIHRlbGwgdG8gd2hhdCAiCisidmFsdWUgdG8gc2V0IGl0LlxuIgorbXNnc3RyICIiCisiT20gZGUgdGlqZHBlcmt3YWFyZGUgaW4gdGUgc3RlbGxlbiBkaWVudCB1IGRlIG9wdGllIC0tZXBvY2ggdGUgZ2VicnVpa2VuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHRoZSBlcG9jaCB0byAlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiVGlqZHBlcmsgd29yZHQgbmlldCBpbmdlc3RlbGQgb3AgJWQgLS0gaW4gdGVzdG1vZHVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIkluc3RlbGxlbiB2YW4gZGUgdGlqZHBlcmt3YWFyZGUgaW4gZGUga2VybmVsIGlzIG1pc2x1a3QuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyOTAgbWlzYy11dGlscy9jYWwuYzozNDcgbWlzYy11dGlscy9raWxsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgKCVzKVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiaHdjbG9jayAtIHF1ZXJ5IGFuZCBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIChSVEMpXG4iCisiXG4iCisiVXNhZ2U6IGh3Y2xvY2sgW2Z1bmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGdW5jdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHNob3cgdGhpcyBoZWxwXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgdGhlIHJ0YyB0byB0aGUgdGltZSBnaXZlbiB3aXRoIC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBhZGp1c3QgdGhlIHJ0YyB0byBhY2NvdW50IGZvciBzeXN0ZW1hdGljIGRyaWZ0IHNpbmNlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgcHJpbnQgb3V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICBzZXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlIHRvIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHByaW50IG91dCB0aGUgdmVyc2lvbiBvZiBod2Nsb2NrIHRvIHN0ZG91dFxuIgorIlxuIgorIk9wdGlvbnM6IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICBzcGVjaWFsIC9kZXYvLi4uIGZpbGUgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdFxuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICBhY2Nlc3MgdGhlIElTQSBidXMgZGlyZWN0bHkgaW5zdGVhZCBvZiAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorIiAgICAgICAtLWRhdGUgICAgICAgICBzcGVjaWZpZXMgdGhlIHRpbWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLWVwb2NoPXllYXIgICBzcGVjaWZpZXMgdGhlIHllYXIgd2hpY2ggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZG8gbm90IGFjY2VzcyAvZXRjL2FkanRpbWUuIFJlcXVpcmVzIHRoZSB1c2Ugb2ZcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICBkbyBldmVyeXRoaW5nIGV4Y2VwdCBhY3R1YWxseSB1cGRhdGluZyB0aGUgaGFyZHdhcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBkZWJ1ZyBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJod2Nsb2NrIC0gZGUgaGFyZHdhcmVrbG9rIChSVEMpIGluc3RlbGxlbiBvZiB3YWFyZGVuIHdlZXJnZXZlblxuIgorIlxuIgorIkdlYnJ1aWs6ICBod2Nsb2NrIFtmdW5jdGllXSBbb3B0aWVzLi4uXVxuIgorIlxuIgorIkZ1bmN0aWVzOlxuIgorIiAgLS1oZWxwICAgICAgICBkZXplIGh1bHB0ZWtzdCB0b25lblxuIgorIiAgLS1zaG93ICAgICAgICBkZSBoYXJkd2FyZWtsb2sgbGV6ZW4gZW4gaGV0IHJlc3VsdGFhdCB3ZWVyZ2V2ZW5cbiIKKyIgIC0tc2V0ICAgICAgICAgZGUgaGFyZHdhcmVrbG9rIGluc3RlbGxlbiBvcCBkZSB0aWpkIGdlZ2V2ZW4gbWV0ICctLWRhdGUnXG4iCisiICAtLWhjdG9zeXMgICAgIGFhbiBkZSBoYW5kIHZhbiBkZSBoYXJkd2FyZWtsb2sgZGUgc3lzdGVlbWtsb2sgaW5zdGVsbGVuXG4iCisiICAtLXN5c3RvaGMgICAgIGFhbiBkZSBoYW5kIHZhbiBkZSBzeXN0ZWVta2xvayBkZSBoYXJkd2FyZWtsb2sgaW5zdGVsbGVuXG4iCisiICAtLWFkanVzdCAgICAgIGRlIGhhcmR3YXJla2xvayBhYW5wYXNzZW4gdGVyIGNvbXBlbnNhdGllIHZhbiBkZSAiCisic3lzdGVtYXRpc2NoZVxuIgorIiAgICAgICAgICAgICAgICB2ZXJzY2h1aXZpbmcgc2luZHMgZGUgbGFhdHN0ZSBpbnN0ZWxsaW5nL2FhbnBhc3NpbmdcbiIKKyIgIC0tZ2V0ZXBvY2ggICAgdGlqZHBlcmt3YWFyZGUgdmFuIGRlIGtlcm5lbCB0b25lblxuIgorIiAgLS1zZXRlcG9jaCAgICB0aWpkcGVya3dhYXJkZSB2YW4gZGUga2VybmVsIGluc3RlbGxlbiBvcCBkZSB3YWFyZGVcbiIKKyIgICAgICAgICAgICAgICAgZ2VnZXZlbiBtZXQgZGUgb3B0aWUgJy0tZXBvY2gnXG4iCisiICAtLXZlcnNpb24gICAgIHByb2dyYW1tYXZlcnNpZSB0b25lblxuIgorIlxuIgorIk9wdGllczogXG4iCisiICAtLXV0YyAgICAgICAgIGRlIGhhcmR3YXJla2xvayBiZXZhdCBkZSBnZWNvw7ZyZGluZWVyZGUgdW5pdmVyc2VsZSB0aWpkXG4iCisiICAtLWxvY2FsdGltZSAgIGRlIGhhcmR3YXJla2xvayBiZXZhdCBkZSBsb2thbGUgdGlqZFxuIgorIiAgLS1ydGM9QkVTVEFORCB0ZSBnZWJydWlrZW4gUlRDLWJlc3RhbmQgaW4gL2Rldi8gaW4gcGxhYXRzIHZhbiBzdGFuZGFhcmRcbiIKKyIgIC0tZGlyZWN0aXNhICAgZGUgSVNBLWJ1cyBkaXJlY3QgYmVuYWRlcmVuIGluIHBsYWF0cyB2YW4gdmlhICVzXG4iCisiICAtLWJhZHllYXIgICAgIGhldCBqYWFydGFsIHZhbiBkZSBoYXJkd2FyZWtsb2sgbmVnZXJlbiwgb21kYXQgZGUgQklPUyBzdHVrICIKKyJpc1xuIgorIiAgLS1kYXRlPVRJSkQgICBkZSB0aWpkIHdhYXJvcCBkZSBoYXJkd2FyZWtsb2sgbW9ldCB3b3JkZW4gaW5nZXN0ZWxkXG4iCisiICAtLWVwb2NoPUpBQVIgIGhldCBqYWFydGFsIGRhdCBoZXQgdGlqZHBlcmtiZWdpbiB2b29yIGRlIGhhcmR3YXJla2xvayBpc1xuIgorIiAgLS1ub2FkamZpbGUgICAvZXRjL2FkanRpbWUgbmlldCBnZWJydWlrZW4gKHZlcmVpc3QgJy0tdXRjJyBvZiAnLS0iCisibG9jYWx0aW1lJylcbiIKKyIgIC0tYWRqZmlsZT1CRVNUQU5EICB0ZSBnZWJydWlrZW4gdmVyc2NodWl2aW5nc3JlZ2lzdHJhdGllYmVzdGFuZFxuIgorIiAgICAgICAgICAgICAgICAgICAgIChzdGFuZGFhcmQgaXMgL2V0Yy9hZGp0aW1lKVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisiICAtLWplbnNlbiwgLS1hcmMsIC0tc3JtLCAtLWZ1bmt5LXRveVxuIgorIiAgICAgICAgICAgICAgICBoZXQgc29vcnQgQWxwaGEgZGF0IHUgZ2VicnVpa3QgICh6aWUgaHdjbG9jayg4KSlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTQzMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGNvbm5lY3QgdG8gYXVkaXQgc3lzdGVtXG4iCittc2dzdHIgIiVzOiBLYW4gZ2VlbiB2ZXJiaW5kaW5nIG1ha2VuIG1ldCBhdWRpdHN5c3RlZW1cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiIgorIiVzIGtlbnQgZ2VlbiBhbmRlcmUgYXJndW1lbnRlbiBkYW4gZnVuY3RpZXMgZW4gb3B0aWVzLlxuIgorIlUgZ2FmICVkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyJVIGhlYnQgdmVyc2NoaWxsZW5kZSBmdW5jdGllcyBhYW5nZWdldmVuLlxuIgorIlBlciBhYW5yb2VwIGthbiBzbGVjaHRzIMOpw6luIGZ1bmN0aWUgd29yZGVuIGdlYnJ1aWt0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tdXRjIGFuZCAtLWxvY2FsdGltZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3Ugc3BlY2lmaWVkICIKKyJib3RoLlxuIgorbXNnc3RyICIlczogRGUgb3B0aWVzIC0tdXRjIGVuIC0tbG9jYWx0aW1lIHNsdWl0ZW4gZWxrYWFyIHVpdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU3MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkanVzdCBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiJXM6IERlIG9wdGllcyAtLWFkanVzdCBlbiAtLW5vYWRqZmlsZSBzbHVpdGVuIGVsa2FhciB1aXQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGpmaWxlIGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIlczogRGUgb3B0aWVzIC0tYWRqZmlsZSBlbiAtLW5vYWRqZmlsZSBzbHVpdGVuIGVsa2FhciB1aXQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdpdGggLS1ub2FkamZpbGUsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCittc2dzdHIgIiVzOiBCaWogLS1ub2FkamZpbGUgbW9ldCB1IG9mIC0tdXRjIG9mIC0tbG9jYWx0aW1lIGFhbmdldmVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBzZXQtdG8gdGltZS4gIENhbm5vdCBzZXQgY2xvY2suXG4iCittc2dzdHIgIkdlZW4gYnJ1aWtiYXJlIGluc3RlbHRpamQuICBLYW4ga2xvayBuaWV0IGluc3RlbGxlbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICJTb3JyeSwgYWxsZWVuIHJvb3Qga2FuIGRlIGhhcmR3YXJla2xvayBpbnN0ZWxsZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBTeXN0ZW0gQ2xvY2suXG4iCittc2dzdHIgIlNvcnJ5LCBhbGxlZW4gcm9vdCBrYW4gZGUgc3lzdGVlbWtsb2sgaW5zdGVsbGVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIGluIHRoZSAiCisia2VybmVsLlxuIgorbXNnc3RyICIiCisiU29ycnksIGFsbGVlbiByb290IGthbiBpbiBkZSBrZXJuZWwgZGUgdGlqZHBlcmt3YWFyZGUgdm9vciBkZSBrbG9rICIKKyJpbnN0ZWxsZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB0aGUgSGFyZHdhcmUgQ2xvY2sgdmlhIGFueSBrbm93biBtZXRob2QuXG4iCittc2dzdHIgIiIKKyJLYW4gb3AgZ2VlbiBlbmtlbGUgYmVrZW5kZSBtYW5pZXIgdG9lZ2FuZyBrcmlqZ2VuIHRvdCBkZSBoYXJkd2FyZWtsb2suXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzZSB0aGUgLS1kZWJ1ZyBvcHRpb24gdG8gc2VlIHRoZSBkZXRhaWxzIG9mIG91ciBzZWFyY2ggZm9yIGFuIGFjY2VzcyAiCisibWV0aG9kLlxuIgorbXNnc3RyICIiCisiR2VicnVpayBkZSBvcHRpZSAtLWRlYnVnIG9tIGFsbGUgZGV0YWlscyBvdmVyIGRlIHpvZWt0b2NodFxuIgorIm5hYXIgZWVuIHRvZWdhbmdzbWV0aG9kZSB0ZSB6aWVuLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gS0RHSFdDTEsgdG8gY2hhbmdlXG4iCittc2dzdHIgIldhY2h0ZW4gaW4gbHVzIHRvdGRhdCBkZSB0aWpkIHZhbiBpb2N0bChLREdIV0NMSykgdmVyYW5kZXJ0Li4uXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NworbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQiCittc2dzdHIgIkhldCBsZXplbiB2YW4gZGUgdGlqZCB2aWEgaW9jdGwoS0RHSFdDTEspIGlzIG1pc2x1a3QiCisKKyM6IGh3Y2xvY2sva2QuYzo3NQorbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQgaW4gbG9vcCIKK21zZ3N0ciAiSGV0IGxlemVuIHZhbiBkZSB0aWpkIHZpYSBpb2N0bChLREdIV0NMSykgaXMgbWlzbHVrdCB0aWpkZW5zIGRlIGx1cyIKKworIzogaHdjbG9jay9rZC5jOjgyIGh3Y2xvY2svcnRjLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWVkIG91dCB3YWl0aW5nIGZvciB0aW1lIGNoYW5nZS5cbiIKK21zZ3N0ciAiV2FjaHRlbiBvcCB2ZXJhbmRlcmVuZGUgdGlqZCBkdXVyZGUgdGUgbGFuZy5cbiIKKworIzogaHdjbG9jay9rZC5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIGZhaWxlZCB0byByZWFkIHRpbWUgZnJvbSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBrYW4gZ2VlbiB0aWpkIGxlemVuIHVpdCAlcyIKKworIzogaHdjbG9jay9rZC5jOjE0MAorbXNnaWQgImlvY3RsIEtEU0hXQ0xLIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoS0RTSFdDTEspIGlzIG1pc2x1a3QiCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIk9wZW5lbiB2YW4gL2Rldi90dHkxIG9mIC9kZXYvdmMvMSBpcyBtaXNsdWt0IgorCisjOiBod2Nsb2NrL2tkLmM6MTgwCittc2dpZCAiS0RHSFdDTEsgaW9jdGwgZmFpbGVkIgorbXNnc3RyICJpb2N0bChLREdIV0NMSykgaXMgbWlzbHVrdCIKKworIzogaHdjbG9jay9ydGMuYzoxNDcgaHdjbG9jay9ydGMuYzoyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbigpIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAib3BlbigpIHZhbiAlcyBpcyBtaXNsdWt0IgorCisjOiBod2Nsb2NrL3J0Yy5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHJlYWQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJpb2N0bCgpIG9wICVzIG9tIGRlIHRpamQgdGUgbGV6ZW4gaXMgbWlzbHVrdFxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiV2FjaHRlbiBpbiBsdXMgdG90ZGF0IGRlIHRpamQgdmFuICVzIHZlcmFuZGVydC4uLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIKK21zZ3N0ciAiQXBwYXJhYXQgJXMgaGVlZnQgZ2VlbiBvbmRlcmJyZWtpbmdzZnVuY3RpZXMuICIKKworIzogaHdjbG9jay9ydGMuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJyZWFkKCkgdmFuICVzIHZvb3Igd2FjaHRlbiBvcCBrbG9rdGlrIGlzIG1pc2x1a3QiCisKKyM6IGh3Y2xvY2svcnRjLmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJzZWxlY3QoKSB2YW4gJXMgdm9vciB3YWNodGVuIG9wIGtsb2t0aWsgaXMgbWlzbHVrdCIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAic2VsZWN0KCkgdmFuICVzIHZvb3Igd2FjaHRlbiBvcCBrbG9rdGlrIGR1dXJkZSB0ZSBsYW5nXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIgorbXNnc3RyICJpb2N0bCgpIG9wICVzIG9tIGJpandlcmtpbmdzb25kZXJicmVraW5nZW4gdWl0IHRlIHpldHRlbiBpcyBtaXNsdWt0IgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAiIgorImlvY3RsKCkgb3AgJXMgb20gYmlqd2Vya2luZ3NvbmRlcmJyZWtpbmdlbiBhYW4gdGUgemV0dGVuIGlzIG9udmVyd2FjaHQgIgorIm1pc2x1a3QiCisKKyM6IGh3Y2xvY2svcnRjLmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gc2V0IHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAiaW9jdGwoKSBvcCAlcyBvbSB0aWpkIGluIHRlIHN0ZWxsZW4gaXMgbWlzbHVrdFxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCglcykgd2FzIHN1Y2Nlc3NmdWwuXG4iCittc2dzdHIgImlvY3RsKCVzKSBpcyBnZXNsYWFnZFxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcGVuIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiT3BlbmVuIHZhbiAlcyBpcyBtaXNsdWt0IgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxMCBod2Nsb2NrL3J0Yy5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gbWFuaXB1bGF0ZSB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbCwgd2UgbXVzdCBhY2Nlc3MgdGhlIExpbnV4ICdydGMnICIKKyJkZXZpY2UgZHJpdmVyIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwgZmlsZSAlcy4gIFRoaXMgZmlsZSBkb2VzIG5vdCBleGlzdCBvbiAiCisidGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKyJPbSBkZSB0aWpkcGVya3dhYXJkZSBpbiBkZSBrZXJuZWwgYWFuIHRlIGt1bm5lbiBwYXNzZW4sIGlzIHRvZWdhbmdcbiIKKyJ0b3QgaGV0ICdydGMnLXN0dXVycHJvZ3JhbW1hIHZhbiBMaW51eCBub2RpZyB2aWEgaGV0IHNwZWNpYWxlXG4iCisiYXBwYXJhYXRiZXN0YW5kICVzLiAgRGl0IGJlc3RhbmQgYmVzdGFhdCBuaWV0IG9wIGRpdCBzeXN0ZWVtLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxNSBod2Nsb2NrL3J0Yy5jOjQ1OQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiT3BlbmVuIHZhbiAlcyBpcyBtaXNsdWt0IgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgb3AgJXMgaXMgbWlzbHVrdCIKKworIzogaHdjbG9jay9ydGMuYzo0MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2UgaGF2ZSByZWFkIGVwb2NoICVsZCBmcm9tICVzIHdpdGggUlRDX0VQT0NIX1JFQUQgaW9jdGwuXG4iCittc2dzdHIgIkRlIHRpamRwZXJrd2FhcmRlICVsZCBpcyBnZWxlemVuIHVpdCAlcyBtZXQgaW9jdGwoUlRDX0VQT0NIX1JFQUQpLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIkRlIHRpamRwZXJrd2FhcmRlIG1hZyBuaWV0IG1pbmRlciB6aWpuIGRhbiAxOTAwLiAgVSB2cm9lZyBvbSAlbGQuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNldHRpbmcgZXBvY2ggdG8gJWxkIHdpdGggUlRDX0VQT0NIX1NFVCBpb2N0bCB0byAlcy5cbiIKK21zZ3N0ciAiIgorIlNjaHJpanZlbiB2YW4gdGlqZHBlcmt3YWFyZGUgb3AgJWxkIG5hYXIgJXMgbWV0IGlvY3RsKFJUQ19FUE9DSF9TRVQpLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyBkb2VzIG5vdCBoYXZlIHRoZSBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorbXNnc3RyICJIZXQga2VybmVsc3R1dXJwcm9ncmFtbWEgdm9vciAlcyBoZWVmdCBnZWVuIGlvY3RsKFJUQ19FUE9DSF9TRVQpLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgImlvY3RsKFJUQ19FUE9DSF9TRVQpIG9wICVzIGlzIG1pc2x1a3QiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZXhlYyAlczogJW0iCittc2dzdHIgIiVzOiBrYW4gJXMgbmlldCB1aXR2b2VyZW46ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozODMKK21zZ2lkICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKK21zZ3N0ciAib252b2xkb2VuZGUgZ2VoZXVnZW4gYmVzY2hpa2JhYXIgdm9vciBzdGFydHRla2VucmVla3MiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgdGltZW91dCB2YWx1ZTogJXMiCittc2dzdHIgIm9uZ2VsZGlnZSB0aWpkc2xpbWlldDogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgc3BlZWQ6ICVzIgorbXNnc3RyICJvbmdlbGRpZ2Ugc25lbGhlaWQ6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKK21zZ2lkICJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIgorbXNnc3RyICJ0ZSB2ZWVsIGFsdGVybmF0aWV2ZSBzbmVsaGVkZW4iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIi9kZXY6IGNoZGlyKCkgaXMgbWlzbHVrdDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBub3QgYSBjaGFyYWN0ZXIgZGV2aWNlIgorbXNnc3RyICIvZGV2LyVzOiBpcyBnZWVuIGJ5dGUtYXBwYXJhYXQiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY0MgorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBjYW5ub3Qgb3BlbiBhcyBzdGFuZGFyZCBpbnB1dDogJW0iCittc2dzdHIgIi9kZXYvJXM6IGthbiBkZXplIG5pZXQgb3BlbmVuIGFscyBzdGFuZGFhcmRpbnZvZXI6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBvcGVuIGZvciByZWFkL3dyaXRlIgorbXNnc3RyICIlczogaXMgbmlldCBvcGVuIHZvb3IgbGV6ZW4tZW4tc2NocmlqdmVuIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGR1cCBwcm9ibGVtOiAlbSIKK21zZ3N0ciAiJXM6IHByb2JsZWVtIG1ldCB2ZXJkdWJiZWxlbiB2YW4gc3RhbmRhYXJkaW52b2VyIGVuIC11aXR2b2VyOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXIiCittc2dzdHIgImdlYnJ1aWtlciIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXJzIgorbXNnc3RyICJnZWJydWlrZXJzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiJXM6IGdlbGV6ZW46ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnB1dCBvdmVycnVuIgorbXNnc3RyICIlczogaW52b2Vyb3Zlcmxvb3AiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiR2VicnVpazogICVzIFstOGhpTG1Vd10gWy1sIGlubG9ncHJvZ3JhbW1hXSBbLXQgdGlqZHNsaW1pZXRdIFstSCBpbmxvZ2hvc3RdXG4iCisiICAgICAgICAgIFstSSBzdGFydHRla2VucmVla3NdICBiYXVkcmF0ZSwuLi4gIGxpam4gIFt0ZXJtaW5hbHNvb3J0XVxuIgorIiAgICAgb2Y6ICBbLWhpTG13XSBbLWwgaW5sb2dwcm9ncmFtbWFdIFstdCB0aWpkc2xpbWlldF0gWy1IIGlubG9naG9zdF1cbiIKKyIgICAgICAgICAgWy1JIHN0YXJ0dGVrZW5yZWVrc10gIGxpam4gIGJhdWRyYXRlLC4uLiAgW3Rlcm1pbmFsc29vcnRdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImxvZ2luOiBlciBpcyB3ZWluaWcgdnJpaiBnZWhldWdlbiwgaW5sb2dnZW4ga2FuIG1pc2x1a2tlblxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAibWFsbG9jKCkgdm9vciB0dHljbGFzcyBpcyBtaXNsdWt0IgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMworbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIKK21zZ3N0ciAibWFsbG9jKCkgdm9vciBncnBsaXN0IGlzIG1pc2x1a3QiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkIGJ5IGRlZmF1bHQuXG4iCittc2dzdHIgIklubG9nZ2VuIG9wICVzIHZhbmFmICVzIHdvcmR0IHN0YW5kYWFyZCBnZXdlaWdlcmQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICJJbmxvZ2dlbiBvcCAlcyB2YW5hZiAlcyBpcyBnZXdlaWdlcmQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IGdlYnJ1aWtlciAlZCAob2Z0ZXdlbCB1KSBiZXN0YWF0IG5pZXQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDAgbG9naW4tdXRpbHMvY2hzaC5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiBnZWJydWlrZXIgJyVzJyBiZXN0YWF0IG5pZXQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiVzOiBrYW4gYWxsZWVuIGxva2FsZSB6YWtlbiB3aWp6aWdlbjsgZ2VicnVpayB5cCVzIGluIHBsYWF0cy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NiBsb2dpbi11dGlscy9jaHNoLmM6MTQyCittc2dpZCAiVW5rbm93biB1c2VyIGNvbnRleHQiCittc2dzdHIgIk9uYmVrZW5kZSBnZWJydWlrZXJzY29udGV4dCIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIlczogJXMgaXMgbmlldCBnZXJlY2h0aWdkIG9tIGRlIGZpbmdlci1pbmZvcm1hdGllIHZhbiAlcyB0ZSB3aWp6aWdlblxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTY0IGxvZ2luLXV0aWxzL2Noc2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBkZWZhdWx0IGNvbnRleHQgZm9yIC9ldGMvcGFzc3dkIgorbXNnc3RyICIlczogS2FuIHN0YW5kYWFyZGNvbnRleHQgdm9vciAvZXRjL3Bhc3N3ZCBuaWV0IGluc3RlbGxlbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBmaW5nZXIgaW5mb3JtYXRpb24gZm9yICVzLlxuIgorbXNnc3RyICJXaWp6aWdlbiB2YW4gZmluZ2VyLWluZm9ybWF0aWUgdm9vciAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBQQU0gZmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCittc2dzdHIgIiVzOiBQQU0tZm91dCAtLSBnZXN0b3B0OiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjEyIGxvZ2luLXV0aWxzL2Noc2guYzoyMTEgbG9naW4tdXRpbHMvbG9naW4uYzo4MjcKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjc5IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDAgbW91bnQvbG9tb3VudC5jOjc0MgorIzogbW91bnQvbG9tb3VudC5jOjc0NQorbXNnaWQgIlBhc3N3b3JkOiAiCittc2dzdHIgIldhY2h0d29vcmQ6ICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxNSBsb2dpbi11dGlscy9jaHNoLmM6MjE0Cittc2dpZCAiSW5jb3JyZWN0IHBhc3N3b3JkLiIKK21zZ3N0ciAiT25qdWlzdCB3YWNodHdvb3JkLiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIkZpbmdlci1pbmZvcm1hdGllIGlzIG5pZXQgZ2V3aWp6aWdkLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIgorbXNnc3RyICJHZWJydWlrOiAgJXMgWyAtZiB2b2xsZWRpZ2VfbmFhbSBdIFsgLW8ga2FudG9vciBdICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWyAtcCBvZmZpY2UtcGhvbmUgXVxuIgorIlx0WyAtaCBob21lLXBob25lIF0gIgorbXNnc3RyICIiCisiWyAtcCBrYW50b29yX3RlbGVmb29uIF1cbiIKKyIgICAgICAgICAgWyAtaCB0aHVpc190ZWxlZm9vbiBdICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMzMAorIywgYy1mb3JtYXQKK21zZ2lkICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKK21zZ3N0ciAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzgKK21zZ2lkICJPZmZpY2UiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OQorbXNnaWQgIk9mZmljZSBQaG9uZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzgwCittc2dpZCAiSG9tZSBQaG9uZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDAxIGxvZ2luLXV0aWxzL2Noc2guYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkFib3J0ZWQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBZmdlYnJva2VuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDM0CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZWxkIGlzIHRvbyBsb25nLlxuIgorbXNnc3RyICJ2ZWxkIGlzIHRlIGxhbmcuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJyVjJyBpcyBuaWV0IHRvZWdlc3RhYW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiU3R1dXJ0ZWtlbnMgemlqbiBuaWV0IHRvZWdlc3RhYW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIkZpbmdlci1pbmZvcm1hdGllIGlzIE5JRVQgZ2V3aWp6aWdkLiAgUHJvYmVlciBoZXQgbGF0ZXIgb3BuaWV1dy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiRmluZ2VyLWluZm9ybWF0aWUgaXMgZ2V3aWp6aWdkLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBpcyBuaWV0IGdlcmVjaHRpZ2Qgb20gZGUgc2hlbGwgdmFuICVzIHRlIHdpanppZ2VuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBSdW5uaW5nIFVJRCBkb2Vzbid0IG1hdGNoIFVJRCBvZiB1c2VyIHdlJ3JlIGFsdGVyaW5nLCBzaGVsbCBjaGFuZ2UgIgorImRlbmllZFxuIgorbXNnc3RyICIiCisiJXM6IEhldCB1aXR2b2VyZW5kZSBVSUQga29tdCBuaWV0IG92ZXJlZW4gbWV0IGRlIFVJRCB2YW4gZGUgZ2VicnVpa2VyXG4iCisid2llbnMgZ2VnZXZlbnMgd29yZGVuIGdld2lqemlnZCAtLSBzaGVsbC13aWp6aWdpbmcgaXMgZ2V3ZWlnZXJkLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBZb3VyIHNoZWxsIGlzIG5vdCBpbiAvZXRjL3NoZWxscywgc2hlbGwgY2hhbmdlIGRlbmllZFxuIgorbXNnc3RyICIiCisiJXM6IFV3IGh1aWRpZ2Ugc2hlbGwgc3RhYXQgbmlldCBpbiAvZXRjL3NoZWxscyAtLSBzaGVsbC13aWp6aWdpbmcgaXMgIgorImdld2VpZ2VyZC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBzaGVsbCBmb3IgJXMuXG4iCittc2dzdHIgIldpanppZ2VuIHZhbiBzdGFuZGFhcmQtc2hlbGwgdm9vciAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyMgorbXNnaWQgIk5ldyBzaGVsbCIKK21zZ3N0ciAiTmlldXdlIHNoZWxsIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJTaGVsbCBpcyBuaWV0IGdld2lqemlnZC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICJTaGVsbCBpcyBOSUVUIGdld2lqemlnZC4gIFByb2JlZXIgaGV0IGxhdGVyIG9wbmlldXcuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgY2hhbmdlZC5cbiIKK21zZ3N0ciAiU2hlbGwgaXMgZ2V3aWp6aWdkLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIkdlYnJ1aWs6ICAlcyBbIC1zIHNoZWxsIF0gWyBnZWJydWlrZXJzbmFhbSBdXG4iCisiICAgICAgICAgIGNoc2ggWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNoZWxsIG11c3QgYmUgYSBmdWxsIHBhdGggbmFtZS5cbiIKK21zZ3N0ciAiJXM6IHNoZWxsIG1vZXQgZWVuIHZvbGxlZGlnZSBwYWRuYWFtIHppam4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6ICclcycgYmVzdGFhdCBuaWV0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGV4ZWN1dGFibGUuXG4iCittc2dzdHIgIiVzOiAnJXMnIGlzIG5pZXQgdWl0dm9lcmJhYXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiVzOiAnJWMnIGlzIG5pZXQgdG9lZ2VzdGFhbi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6IFN0dXVydGVrZW5zIHppam4gbmlldCB0b2VnZXN0YWFuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc1IGxvZ2luLXV0aWxzL2Noc2guYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIldhYXJzY2h1d2luZzogJyVzJyBzdGFhdCBuaWV0IGluIC9ldGMvc2hlbGxzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICIlczogJyVzJyBzdGFhdCBuaWV0IGluIC9ldGMvc2hlbGxzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVzZSAtbCBvcHRpb24gdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIiVzOiBHZWJydWlrIG9wdGllICctbCcgb20gZGUgbGlqc3QgdGUgemllblxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSAlcyAtbCB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiR2VicnVpayAnJXMgLWwnIG9tIGRlIGxpanN0IHRlIHppZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICJHZWVuIGJla2VuZGUgc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9pc2xvY2FsLmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIG9wZW4gJXMgZm9yIHJlYWRpbmcsIGV4aXRpbmcuIgorbXNnc3RyICJLYW4gJXMgbmlldCBvcGVuZW4gb20gdGUgbGV6ZW4gLS0gZ2VzdG9wdCIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICIiCisiR2VicnVpazogIGxhc3QgWy0jXSBbLWYgYmVzdGFuZF0gWy10IHR0eV0gWy1oIGhvc3RuYWFtXSBbZ2VicnVpa2VyIC4uLl1cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIgIG5vZyBpbmdlbG9nZCIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wIGJlZ2ludCAlcyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjM4MCBsb2dpbi11dGlscy9sYXN0LmM6Mzk4IGxvZ2luLXV0aWxzL2xhc3QuYzo0NDkKK21zZ2lkICJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIKK21zZ3N0ciAibGFzdDogbWFsbG9jKCkgaXMgbWlzbHVrdFxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgImxhc3Q6IGdldGhvc3RuYW1lKCkgaXMgbWlzbHVrdCIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW50ZXJydXB0ZWQgJTEwLjEwcyAlNS41cyBcbiIKK21zZ3N0ciAiIgorIlxuIgorIm9uZGVyYnJva2VuICUxMC4xMHMgJTUuNXMgXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiBjYW4ndCByZW9wZW4gdHR5OiAlcyIKK21zZ3N0ciAiRkFUQUFMOiBrYW4gdHR5IG5pZXQgaGVyb3BlbmVuOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIKK21zZ3N0ciAiJXMgaXMgZ2VlbiBzZXJpw6tsZSBsaWpuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIzOAorbXNnaWQgIkZBVEFMOiBiYWQgdHR5IgorbXNnc3RyICJGQVRBQUw6IHNsZWNodGUgdHR5IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogLWggZm9yIHN1cGVyLXVzZXIgb25seS5cbiIKK21zZ3N0ciAibG9naW46IG9wdGllICctaCcga2FuIGFsbGVlbiBkb29yIHJvb3QgZ2VicnVpa3Qgd29yZGVuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgIkdlYnJ1aWs6ICBsb2dpbiBbLWZwXSBbZ2VicnVpa2Vyc25hYW1dXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiS2FuIFBBTSBuaWV0IGluaXRpYWxpc2VyZW46ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgImlubG9nbmFhbTogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJJTkxPR1BPR0lORyAlZCBJUyBNSVNMVUtUIFZBTkFGICVzIFZPT1IgJXMgLS0gJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiIgorIklubG9nZ2VnZXZlbnMgb25qdWlzdFxuIgorIlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJUT08gTUFOWSBMT0dJTiBUUklFUyAoJWQpIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiVEUgVkVFTCBJTkxPR1BPR0lOR0VOICglZCkgVkFOQUYgJXMgVk9PUiAlcyAtLSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJJTkxPR1NFU1NJRSBJUyBNSVNMVUtUIFZBTkFGICVzIFZPT1IgJXMgLS0gJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIklubG9nZ2VnZXZlbnMgb25qdWlzdFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlc3NpZS1pbnN0ZWxsaW5nc3Byb2JsZWVtIC0tIGdlc3RvcHRcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiTGVnZSBnZWJydWlrZXJzbmFhbSBpbiAlczolZCAtLSBnZXN0b3B0IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVzZXIgbmFtZSBcIiVzXCIgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiT25qdWlzdGUgZ2VicnVpa2Vyc25hYW0gJyVzJyBpbiAlczolZCAtLSBnZXN0b3B0IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJsb2dpbjogT252b2xkb2VuZGUgZ2VoZXVnZW4gYmVzY2hpa2JhYXJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICJPbmdlbGRpZ2UgZ2VicnVpa2Vyc25hYW0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvZ2luIHJlZnVzZWQgb24gdGhpcyB0ZXJtaW5hbC5cbiIKK21zZ3N0ciAiSW5sb2dnZW4gZG9vciAlcyBvcCBkZXplIHRlcm1pbmFsIGlzIGdld2VpZ2VyZC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiSU5MT0dHRU4gRE9PUiAlcyBWQU5BRiAlcyBJUyBHRVdFSUdFUkQgT1AgVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiSU5MT0dHRU4gRE9PUiAlcyBJUyBHRVdFSUdFUkQgT1AgVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjg2NworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiSW5sb2dnZWdldmVucyBvbmp1aXN0XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgIklOQkVMTEVOIE9QICVzIERPT1IgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5OQorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCittc2dzdHIgIlJPT1QtTE9HSU4gT1AgJXMgVkFOQUYgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIgorbXNnc3RyICJST09ULUxPR0lOIE9QICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAiTE9HSU4gT1AgJXMgRE9PUiAlcyBWQU5BRiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIgorbXNnc3RyICJMT0dJTiBPUCAlcyBET09SICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbmV3IG1haWwuXG4iCittc2dzdHIgIlUgaGVidCBuaWV1d2UgZS1tYWlsLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAiVSBoZWJ0IGUtbWFpbC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjoga2FuIGdlZW4gbmlldXcgcHJvY2VzIHN0YXJ0ZW46ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVElPQ1NDVFRZIGZhaWxlZDogJW0iCittc2dzdHIgImlvY3RsKFRJT0NTQ1RUWSkgaXMgbWlzbHVrdDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgaXMgbWlzbHVrdCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGRpcmVjdG9yeSAlcyFcbiIKK21zZ3N0ciAiRXIgaXMgZ2VlbiBtYXAgJXMhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dnaW5nIGluIHdpdGggaG9tZSA9IFwiL1wiLlxuIgorbXNnc3RyICJJbmdlbG9nZCBtZXQgaG9tZSA9ICcvJy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBtZW1vcnkgZm9yIHNoZWxsIHNjcmlwdC5cbiIKK21zZ3N0ciAibG9naW46IG9udm9sZG9lbmRlIGdlaGV1Z2VuIGJlc2NoaWtiYWFyIHZvb3Igc2hlbGwtc2NyaXB0XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogY291bGRuJ3QgZXhlYyBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorbXNnc3RyICJsb2dpbjoga2FuIHNoZWxsLXNjcmlwdCBuaWV0IHVpdHZvZXJlbjogJXNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBnZWVuIHNoZWxsOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyIlcyBpbmxvZ25hYW06ICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWUgbXVjaCB0b28gbG9uZy5cbiIKK21zZ3N0ciAiaW5sb2duYWFtIGlzIHZlZWwgdGUgbGFuZ1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICJOQUFNIGlzIHRlIGxhbmciCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMxMAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lcyBtYXkgbm90IHN0YXJ0IHdpdGggJy0nLlxuIgorbXNnc3RyICJpbmxvZ25hbWVuIG1vZ2VuIG5pZXQgYmVnaW5uZW4gbWV0ICctJ1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgInRlIHZlZWwgd2l0cmVnZWxzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIkVYQ0VTU0lFRiBhYW50YWwgd2l0cmVnZWxzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiSW5sb2dnZW4gZHV1cmRlIHRlIGxhbmc6IGFmZ2Vicm9rZW4gbmEgJWQgc2Vjb25kZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGxvZ2luOiAlLipzICIKK21zZ3N0ciAiTGFhdHN0ZSBrZWVyIGluZ2Vsb2dkOiAlLipzICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImZyb20gJS4qc1xuIgorbXNnc3RyICJ2YW5hZiAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvbiAlLipzXG4iCittc2dzdHIgIm9wICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIklOTE9HR0VOIElTIE1JU0xVS1QgVkFOQUYgJXMgLS0gJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAiSU5MT0dHRU4gSVMgTUlTTFVLVCBPUCAlcyAtLSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIgorbXNnc3RyICIlZCBJTkxPR01JU0xVS0tJTkdFTiBWQU5BRiAlcyAtLSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIE9OICVzLCAlcyIKK21zZ3N0ciAiJWQgSU5MT0dNSVNMVUtLSU5HRU4gT1AgJXMgLS0gICVzIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICJpcyAneScgKGphKVxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgblxuIgorbXNnc3RyICJpcyAnbicgKG5lZSlcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgIkdlYnJ1aWs6ICBtZXNnIFt5fG5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjk5Cittc2dpZCAibmV3Z3JwOiBXaG8gYXJlIHlvdT8iCittc2dzdHIgIm5ld2dycDogV2llIGJlbnQgdT8iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEwNyBsb2dpbi11dGlscy9uZXdncnAuYzoxMjEKK21zZ2lkICJuZXdncnA6IHNldGdpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXRnaWQoKSBpcyBtaXNsdWt0IgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMTQgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE2Cittc2dpZCAibmV3Z3JwOiBObyBzdWNoIGdyb3VwLiIKK21zZ3N0ciAibmV3Z3JwOiBEaWUgZ3JvZXAgYmVzdGFhdCBuaWV0LiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiBUb2VnYW5nIGdld2VpZ2VyZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTMyCittc2dpZCAibmV3Z3JwOiBzZXR1aWQiCittc2dzdHIgIm5ld2dycDogc2V0dWlkKCkgaXMgbWlzbHVrdCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIkdlZW4gc2hlbGwiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW5zXVxuIgorbXNnc3RyICJHZWJydWlrOiAgc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3x1dTpzc3wrbWludXRlbl1cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgIkFmc2x1aXRpbmdzcHJvY2VzIGlzIGFmZ2Vicm9rZW4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiVzOiBBbGxlZW4gcm9vdCBrYW4gZWVuIHN5c3RlZW0gYWZzbHVpdGVuLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGF0IG11c3QgYmUgdG9tb3Jyb3csIGNhbid0IHlvdSB3YWl0IHRpbGwgdGhlbj9cbiIKK21zZ3N0ciAiRGF0IG1vZXQgbW9yZ2VuIHppam47IGt1bnQgdSBuaWV0IHRvdCBkYW4gd2FjaHRlbj9cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMTAKK21zZ2lkICJmb3IgbWFpbnRlbmFuY2U7IGJvdW5jZSwgYm91bmNlIgorbXNnc3RyICJ2b29yIG9uZGVyaG91ZCAtLSBqb2VwaWUiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiSGV0IHN5c3RlZW0gd29yZHQgYmlubmVuIHZpamYgbWludXRlbiBhZmdlc2xvdGVuLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNDMKK21zZ2lkICJMb2dpbiBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4iCittc2dzdHIgIklubG9nZ2VuIGlzIGRhYXJvbSBuaWV0IHRvZWdlc3RhYW4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgIm9wbmlldXcgZ2VzdGFydCBkb29yICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiYWZnZXNsb3RlbiBkb29yICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzIKK21zZ2lkICIiCisiXG4iCisiV2h5IGFtIEkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVib290PyIKK21zZ3N0ciAiIgorIlxuIgorIldhYXJvbSBsZWVmIGlrIG5vZyBuYSBlZW4gaGVyc3RhcnQ/IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzNAorbXNnaWQgIiIKKyJcbiIKKyJOb3cgeW91IGNhbiB0dXJuIG9mZiB0aGUgcG93ZXIuLi4iCittc2dzdHIgIiIKKyJcbiIKKyJVIGt1bnQgZGUgY29tcHV0ZXIgbnUgdWl0c2NoYWtlbGVuLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGtlcm5lbCBwb3dlci1vZmYgZmFjaWxpdHkuLi5cbiIKK21zZ3N0ciAiRGUgdWl0c2NoYWtlbC12b29yemllbmluZyB2YW4gZGUga2VybmVsIHdvcmR0IGFhbmdlcm9lcGVuLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHBvd2VyaW5nIG9mZlx0JXNcbiIKK21zZ3N0ciAiRm91dCBiaWogaGV0IHVpdHNjaGFrZWxlblx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAiSGV0IHByb2dyYW1tYSAnJXMnIHdvcmR0IHVpdGdldm9lcmQuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nXHQlc1xuIgorbXNnc3RyICJGb3V0IHRpamRlbnMgdWl0dm9lcmluZzogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiQkVMQU5HUklKSzogYmVyaWNodCB2YW4gJXMgdm9vciBpZWRlcmVlbjoiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiCittc2dzdHIgIkhldCBzeXN0ZWVtIHdvcmR0IG92ZXIgJWQgdXVyIGVuICVkIG1pbnV0ZW4gYWZnZXNsb3Rlbi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICJIZXQgc3lzdGVlbSB3b3JkdCBvdmVyIDEgdXVyIGVuICVkIG1pbnV0ZW4gYWZnZXNsb3Rlbi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiSGV0IHN5c3RlZW0gd29yZHQgb3ZlciAlZCBtaW51dGVuIGFmZ2VzbG90ZW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgbWludXRlXG4iCittc2dzdHIgIkhldCBzeXN0ZWVtIHdvcmR0IG92ZXIgMSBtaW51dXQgYWZnZXNsb3Rlbi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gSU1NRURJQVRFTFkhXG4iCittc2dzdHIgIkhldCBzeXN0ZWVtIHdvcmR0IE5VIGFmZ2VzbG90ZW4hXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Li4uICVzIC4uLlxuIgorbXNnc3RyICJcdC4uLiAlcyAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzAKK21zZ2lkICJDYW5ub3QgZm9yayBmb3Igc3dhcG9mZi4gU2hydWchIgorbXNnc3RyICJmb3JrKCkgdm9vciBzd2Fwb2ZmIGlzIG1pc2x1a3QgLS0gbm91IGphIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICJVaXR2b2VyZW4gdmFuIHN3YXBvZmYgaXMgbWlzbHVrdDsgaG9wZWxpamsgbG9zdCB1bW91bnQgaGV0IG9wLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1OTcKK21zZ2lkICJDYW5ub3QgZm9yayBmb3IgdW1vdW50LCB0cnlpbmcgbWFudWFsbHkuIgorbXNnc3RyICJmb3JrKCkgdm9vciB1bW91bnQgaXMgbWlzbHVrdDsgZGFuIG1hYXIgem9uZGVyIG5pZXV3IHByb2Nlcy4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICJVaXR2b2VyZW4gdmFuICVzIGlzIG1pc2x1a3Q7IHVtb3VudCB3b3JkdCBnZXByb2JlZXJkLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgIlVpdHZvZXJlbiB2YW4gdW1vdW50IGlzIG1pc2x1a3QgLS0gZ2VzdG9wdCIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTUKK21zZ2lkICJVbm1vdW50aW5nIGFueSByZW1haW5pbmcgZmlsZXN5c3RlbXMuLi4iCittc2dzdHIgIk9udGtvcHBlbGVuIHZhbiByZXN0ZXJlbmRlIGJlc3RhbmRzc3lzdGVtZW4uLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iCittc2dzdHIgInNodXRkb3duOiBLYW4gJXMgbmlldCBvbnRrb3BwZWxlbjogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzMgorbXNnaWQgIkJvb3RpbmcgdG8gc2luZ2xlIHVzZXIgbW9kZS5cbiIKK21zZ3N0ciAiT3BzdGFydGVuIGluIMOpw6luZ2VicnVpa2Vyc21vZHVzLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTM2Cittc2dpZCAiZXhlYyBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAiVWl0dm9lcmVuIHZhbiDDqcOpbmdlYnJ1aWtlcnNzaGVsbCBpcyBtaXNsdWt0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJmb3JrKCkgdmFuIMOpw6luZ2VicnVpa2Vyc3NoZWxsIGlzIG1pc2x1a3RcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICJmb3V0IGJpaiBvcGVuZW4gdmFuIGZpZm9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIxMgorbXNnaWQgImVycm9yIHNldHRpbmcgY2xvc2Utb24tZXhlYyBvbiAvZGV2L2luaXRjdGwiCittc2dzdHIgImZvdXQgYmlqIGluc3RlbGxlbiB2YW4gc2x1aXRlbi1iaWotdWl0dm9lcmVuIG9wIC9kZXYvaW5pdGN0bCIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI1OQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImZvdXQgYmlqIHVpdHZvZXJlbiB2YW4gZmluYWxwcm9nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNjMKK21zZ2lkICJlcnJvciBmb3JraW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJmb3V0IGJpaiBmb3JrKCkgdmFuIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQ1Cittc2dpZCAiIgorIlxuIgorIldyb25nIHBhc3N3b3JkLlxuIgorbXNnc3RyICIiCisiXG4iCisiVmVya2VlcmQgd2FjaHR3b29yZC5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgImxzdGF0KCkgdmFuIHBhZCBpcyBtaXNsdWt0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MjYKK21zZ2lkICJzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgInN0YXQoKSB2YW4gcGFkIGlzIG1pc2x1a3RcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQzNAorbXNnaWQgIm9wZW4gb2YgZGlyZWN0b3J5IGZhaWxlZFxuIgorbXNnc3RyICJvcGVuZW4gdmFuIG1hcCBpcyBtaXNsdWt0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcGF3bmluZzogXCIlc1wiIHRvbyBmYXN0OiBxdWVuY2hpbmcgZW50cnlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAiZm9yaygpIGlzIG1pc2x1a3RcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU0MCB0ZXh0LXV0aWxzL21vcmUuYzoxNjYzCittc2dpZCAiZXhlYyBmYWlsZWRcbiIKK21zZ3N0ciAidWl0dm9lcmVuIGlzIG1pc2x1a3RcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU2NAorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAia2FuICdpbml0dGFiJyBuaWV0IG9wZW5lblxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NjMxCittc2dpZCAibm8gVEVSTSBvciBjYW5ub3Qgc3RhdCB0dHlcbiIKK21zZ3N0ciAiZ2VlbiBURVJNLCBvZiBrYW4gdHR5IG5pZXQgdmluZGVuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5MzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJmb3V0IGJpaiBzdG9wcGVuIHZhbiBzZXJ2aWNlOiBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAiZm91dCBiaWogc3RvcHBlbiB2YW4gc2VydmljZTogXCIlc1wiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJmb3V0IGJpaiB1aXR2b2VyZW4gdmFuIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAiIgorIkludGVybmUgZm91dDogdGUgdmVlbCBJT1YncyAgW2RlIGNvZGUgaW4gd2FsbC90dHltc2cuYyBkaWVudCB2ZXJhbmRlcmRdIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJleGNlc3NpdmVseSBsb25nIGxpbmUgYXJnIgorbXNnc3RyICJleGNlc3NpZWYgbGFuZyBhcmd1bWVudCIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JrIgorbXNnc3RyICJrYW4gZ2VlbiBuaWV1dyBwcm9jZXMgc3RhcnRlbiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICJmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiBCRVJPRVJERSBGT1VUTUVMRElORyAtLSB2ZWVsIHRlIGxhbmciCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBoZXQgYmVzdGFuZCAncGFzc3dkJyBpcyBpbiBnZWJydWlrXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBncm91cCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBoZXQgYmVzdGFuZCAnZ3JvdXAnIGlzIGluIGdlYnJ1aWtcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiJXM6IGhldCBiZXN0YW5kICVzIGlzIGluIGdlYnJ1aWsgKCVzIGlzIGFhbndlemlnKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBsaW5rICVzOiAlc1xuIgorbXNnc3RyICIlczoga2FuICVzIG5pZXQga29wcGVsZW46ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IGdldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IGthbiBjb250ZXh0IHZhbiAlcyBuaWV0IGJlcGFsZW4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IGthbiBjb250ZXh0IHZvb3IgJXMgbmlldCBpbnN0ZWxsZW4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHVubG9jayAlczogJXMgKHlvdXIgY2hhbmdlcyBhcmUgc3RpbGwgaW4gJXMpXG4iCittc2dzdHIgIiVzOiBrYW4gJXMgbmlldCBvbnRncmVuZGVsZW46ICVzICh1dyB3aWp6aWdpbmdlbiBzdGFhbiBub2cgaW4gJXMpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiVzOiBLYW4gZ2VlbiBuaWV1dyBwcm9jZXMgc3RhcnRlblxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiJXM6ICVzIGlzIG9uZ2V3aWp6aWdkXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIgorbXNnc3RyICIlczogZ2VlbiB3aWp6aWdpbmdlbiBnZW1hYWt0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgZ3JvdXBzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJVIGdlYnJ1aWt0IHNjaGFkdXdncm9lcGVuIG9wIGRpdCBzeXN0ZWVtLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IHBhc3N3b3JkcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiVSBnZWJydWlrdCBzY2hhZHV3d2FjaHR3b29yZGVuIG9wIGRpdCBzeXN0ZWVtLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldvdWxkIHlvdSBsaWtlIHRvIGVkaXQgJXMgbm93IFt5L25dPyAiCittc2dzdHIgIldpbHQgdSAlcyBudSBiZXdlcmtlbiBbeS9uXT8gIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbZmlsZV1cbiIKK21zZ3N0ciAiR2VicnVpazogICVzIFtiZXN0YW5kXVxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBvcGVuIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczoga2FuIHRpamRlbGlqayBiZXN0YW5kIG5pZXQgb3BlbmVuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJvYWRjYXN0IE1lc3NhZ2UgZnJvbSAlc0AlcyIKK21zZ3N0ciAiQmVyaWNodCB2YW4gJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiB6YWwgJXMgbmlldCBkaXJlY3QgbGV6ZW46ICBnZWJydWlrIHN0YW5kYWFyZGludm9lclxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICIlczoga2FuICVzIG5pZXQgbGV6ZW5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgc3RhdCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IGthbiB0aWpkZWxpamsgYmVzdGFuZCBuaWV0IHZpbmRlblxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczoga2FuIHRpamRlbGlqayBiZXN0YW5kIG5pZXQgbGV6ZW5cbiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjQgbWlzYy11dGlscy9jYWwuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkYXkgdmFsdWU6IHVzZSAxLSVkIgorbXNnc3RyICJvbmp1aXN0ZSBkYWd3YWFyZGU7ICBnZWJydWlrIDEtJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY4Cittc2dpZCAiaWxsZWdhbCBtb250aCB2YWx1ZTogdXNlIDEtMTIiCittc2dzdHIgIm9uanVpc3RlIG1hYW5kd2FhcmRlOyAgZ2VicnVpayAxLTEyIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM3MgorbXNnaWQgImlsbGVnYWwgeWVhciB2YWx1ZTogdXNlIDEtOTk5OSIKK21zZ3N0ciAib25qdWlzdGUgamFhcndhYXJkZTsgIGdlYnJ1aWsgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJXMgJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIgorbXNnc3RyICJHZWJydWlrOiAgY2FsIFstMTNzbWp5Vl0gW1tbZGFnXSBtYWFuZF0gamFhcl1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIKK21zZ3N0ciAiR2VicnVpazogICVzIFsrb3BtYWFrXSBbZGFnIG1hYW5kIGphYXJdXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyNTAKK21zZ2lkICJTdC4gVGliJ3MgRGF5IgorbXNnc3RyICJTaW50IFRpYnMiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIExBQkVMPTxsYWJlbD58VVVJRD08dXVpZD5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcmVzb2x2ZSAnJXMnIgorbXNnc3RyICJvcGVuZW4gdmFuICVzIGlzIG1pc2x1a3QiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXNcbiIKK21zZ3N0ciAiJXM6IG9uYmVrZW5kIHNpZ25hYWwgJXNcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIHByb2Nlc3MgXCIlc1wiXG4iCittc2dzdHIgIiVzOiBrYW4gcHJvY2VzICclcycgbmlldCB2aW5kZW5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlczsgdmFsaWQgc2lnbmFsczpcbiIKK21zZ3N0ciAiJXM6IG9uYmVrZW5kIHNpZ25hYWwgJXM7IGdlbGRpZ2Ugc2lnbmFsZW4gemlqbjpcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKK21zZ3N0ciAiR2VicnVpazogICVzIFsgLXMgc2lnbmFhbCB8IC1wIF0gWyAtYSBdIFBJRC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiICAgICAgICAgICVzIC1sIFsgc2lnbmFhbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiBvcGVubG9nOiBwYXRobmFtZSB0b28gbG9uZ1xuIgorbXNnc3RyICJsb2dnZXI6IG9wZW5sb2c6IHBhZG5hYW0gaXMgdGUgbGFuZ1xuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgInNvY2tldDogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgInZlcmJpbmRpbmc6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiAlczogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBvbmJla2VuZGUgdm9vcnppZW5pbmdzbmFhbSBpbiBwcmlvcml0ZWl0OiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gcHJpb3JpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogb25iZWtlbmRlIHByaW9yaXRlaXRzbmFhbTogJXNcbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisiR2VicnVpazogIGxvZ2dlciBbLWlzZF0gWy1mIGJlc3RhbmRdIFstcCBwcmlvcml0ZWl0XSBbLXQgdGFnXVxuIgorIiAgICAgICAgICAgICAgICAgWy11IHNvY2tldF0gW2JlcmljaHQuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9vay5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9vayBbLWRmYV0gWy10IGNoYXJdIHN0cmluZyBbZmlsZV1cbiIKK21zZ3N0ciAiR2VicnVpazogIGxvb2sgWy1kZmFdIFstdCB0ZWtlbl0gdGVrc3QgW2Jlc3RhbmRdXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwNSBtaXNjLXV0aWxzL21jb29raWUuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiS2FuICVzIG5pZXQgb3BlbmVuXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwOSBtaXNjLXV0aWxzL21jb29raWUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIKK21zZ3N0ciAiJWQgYnl0ZXMgb250dmFuZ2VuIHZhbiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTQzIG1pc2MtdXRpbHMvbmFtZWkuYzoxOTggbWlzYy11dGlscy9uYW1laS5jOjIyNQorIzogbWlzYy11dGlscy9uYW1laS5jOjI0NSBtaXNjLXV0aWxzL25hbWVpLmM6MjUyIG1pc2MtdXRpbHMvbmFtZWkuYzoyOTQKKyMsIGZ1enp5Cittc2dpZCAib3V0IG9mIG1lbW9yeT8iCittc2dzdHIgIm9udm9sZG9lbmRlIGdlaGV1Z2VuIGJlc2NoaWtiYWFyXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHN5bWxpbms6ICVzIgorbXNnc3RyICJrYW4gdGltaW5nc2Jlc3RhbmQgJXMgbmlldCBsZXplbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjIzMSBtaXNjLXV0aWxzL25hbWVpLmM6MjU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICJrYW4gc3RhdHVzIHZhbiAnJXMnIG5pZXQgb3B2cmFnZW4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgIkdlYnJ1aWs6ICBuYW1laSBbLW14XSBwYWRuYWFtIFtwYWRuYWFtIC4uLl1cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpZXM6XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDYxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIG5hbWVpKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisiVm9vciBtZWVyIGluZm9ybWF0aWUgemllIHNldGFyY2goOCkuXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzdGF0OiAlcyIKK21zZ3N0ciAia2FuIHN0YXR1cyB2YW4gJXMgbmlldCBiZXBhbGVuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBleGNlZWRlZCBsaW1pdCBvZiBzeW1saW5rcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiVzOiBvbnZvbGRvZW5kZSBnZWhldWdlbiBiZXNjaGlrYmFhclxuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZW5hbWluZyAlcyB0byAlcyBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiVzOiBoZXJub2VtZW4gdmFuICVzIHRvdCAlcyBpcyBtaXNsdWt0OiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAiR2VicnVpazogICVzIHZhbiBuYWFyIGJlc3RhbmRlbi4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisiV2FhcnNjaHV3aW5nOiAnJXMnIGlzIGVlbiBzeW1ib2xpc2NoZSBrb3BwZWxpbmc7XG4iCisiZ2VicnVpayAnJXMgW29wdGllc10gJXMnIGFscyB1IGRlemUgZWNodCB3aWx0IGdlYnJ1aWtlbi5cbiIKKyJTY3JpcHQgaXMgbmlldCBnZXN0YXJ0LlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2ZpbGVdXG4iCittc2dzdHIgIkdlYnJ1aWs6ICBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbYmVzdGFuZF1cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiU2NyaXB0IGlzIGdlc3RhcnQsIGhldCBiZXN0YW5kIGhlZXQgJyVzJy5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yICVkOiAlc1xuIgorbXNnc3RyICIlczogc2NocmlqZmZvdXQgJWQ6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkIG9uICVzIgorbXNnc3RyICJTY3JpcHQgaXMgZ2VzdGFydCBvcCAlcy4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IHNjaHJpamZmb3V0OiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IGthbiBzY3JpcHRiZXN0YW5kIG5pZXQgc2NocmlqdmVuOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2NyaXB0IGRvbmUgb24gJXMiCittc2dzdHIgIiIKKyJcbiIKKyJTY3JpcHQgaXMgYmXDq2luZGlnZCBvcCAlcy4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNjcmlwdCBpcyBiZcOraW5kaWdkLCBoZXQgYmVzdGFuZCBoZWV0ICclcycuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW5wdHkgZmFpbGVkXG4iCittc2dzdHIgIm9wZW5wdHkoKSBpcyBtaXNsdWt0XG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICJPbnZvbGRvZW5kZSBQVFknc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIDx0aW1pbmdmaWxlPiBbPHR5cGVzY3JpcHQ+IFs8ZGl2aXNvcj5dXVxuIgorbXNnc3RyICIlcyA8dGltaW5nc2Jlc3RhbmQ+IFs8c2NyaXB0YmVzdGFuZD4gWzx2ZXJzbmVsbGluZz5dXVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgImVyIHdlcmQgZWVuIGdldGFsIHZlcndhY2h0LCBtYWFyICclcycgd2VyZCBnZXZvbmRlbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAidmVyc25lbGxpbmcgaXMgJyVzJyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMDQKK21zZ2lkICJ3cml0ZSB0byBzdGRvdXQgZmFpbGVkIgorbXNnc3RyICJzY2hyaWp2ZW4gbmFhciBzdGFuZGFhcmR1aXR2b2VyIGlzIG1pc2x1a3QiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIm9udmVyd2FjaHQgZWluZGUgdmFuIGJlc3RhbmQgb3AgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAia2FuIHNjcmlwdGJlc3RhbmQgJXMgbmlldCBsZXplbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgImthbiB0aW1pbmdzYmVzdGFuZCAnJXMnIG5pZXQgb3BlbmVuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgImthbiBzY3JpcHRiZXN0YW5kICclcycgbmlldCBvcGVuZW4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICJrYW4gdGltaW5nc2Jlc3RhbmQgJXMgbmlldCBsZXplbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAidGltaW5nc2Jlc3RhbmQgJXM6ICVsdTogb252ZXJ3YWNodGUgb3BtYWFrIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczogT25iZWtlbmQgYXJndW1lbnQgLS0gZ2VicnVpazpcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKK21zZ3N0ciAiICBbIC10ZXJtIHRlcm1pbmFsbmFhbSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlc2V0IF1cbiIKK21zZ3N0ciAiICBbIC1yZXNldCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWluaXRpYWxpemUgXVxuIgorbXNnc3RyICIgIFsgLWluaXRpYWxpemUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1hcHBjdXJzb3JrZXlzIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1hcHBjdXJzb3JrZXlzIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzczCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZGVmYXVsdCBdXG4iCittc2dzdHIgIiAgWyAtZGVmYXVsdCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzUgbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc3CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGV8ZGVmYXVsdCBdXG4iCittc2dzdHIgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGV8ZGVmYXVsdCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJhY2tncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWJhY2tncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODEgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgzCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCittc2dzdHIgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKK21zZ3N0ciAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWludmVyc2VzY3JlZW4gW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWludmVyc2VzY3JlZW4gW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ib2xkIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ib2xkIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmV2ZXJzZSBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmV2ZXJzZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RvcmUgXVxuIgorbXNnc3RyICIgIFsgLXN0b3JlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xlYXIgW2FsbHxyZXN0XSBdXG4iCittc2dzdHIgIiAgWyAtY2xlYXIgW2FsbHxyZXN0XSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKK21zZ3N0ciAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKK21zZ3N0ciAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIgIFsgLWJsYW5rIFswLTYwfGZvcmNlfHBva2VdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZHVtcCAgIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtZHVtcCBbMS1BQU5UQUxfQ09OU09MRVNdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwZW5kIFsxLUFBTlRBTF9DT05TT0xFU10gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1maWxlIGR1bXBmaWxlbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtZmlsZSBkdW1wYmVzdGFuZHNuYWFtIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSBiZWxmcmVxdWVudGllIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgYmxhbmtcbiIKK21zZ3N0ciAia2FuIHNjaGVybSBuaWV0IG9wIHp3YXJ0IHpldHRlblxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgImthbiBzY2hlcm0gbmlldCB1aXQgendhcnRzdGFuZCBoYWxlblxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgImthbiBzY2hlcm10b2VzdGFuZCBuaWV0IG9wdnJhZ2VuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90ICh1bilzZXQgcG93ZXJzYXZlIG1vZGVcbiIKK21zZ3N0ciAia2FuIHN0cm9vbWJlc3BhcmluZ3Ntb2R1cyBuaWV0IGluc3RlbGxlblxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTIyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAia2xvZ2N0bCBlcnJvcjogJXNcbiIKK21zZ3N0ciAia2xvZ2N0bCgpIGlzIG1pc2x1a3Q6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JpdGluZyBzY3JlZW5kdW1wXG4iCittc2dzdHIgIkZvdXQgYmlqIHNjaHJpanZlbiB2YW4gc2NoZXJtYWZkcnVrXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgcmVhZCAlc1xuIgorbXNnc3RyICJLYW4gJXMgbmlldCBsZXplblxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6ICRURVJNIGlzIG5pZXQgZ2VkZWZpbmllZXJkLlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWRdIFstcCBwaWRmaWxlXSBbLXMgc29ja2V0cGF0aF0gWy1UIHRpbWVvdXRdXG4iCittc2dzdHIgIiIKKyJHZWJydWlrOiAgbGFzdCBbLSNdIFstZiBiZXN0YW5kXSBbLXQgdHR5XSBbLWggaG9zdG5hYW1dIFtnZWJydWlrZXIgLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIFstcnx0XSBbLW4gbnVtXSBbLXMgc29ja2V0cGF0aF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIgICAgICAgICAgJXMgLWwgWyBzaWduYWFsIF1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorIywgZnV6enkKK21zZ2lkICJiYWQgYXJndW1lbnRzIgorbXNnc3RyICJjb2w6IG9uZ2VsZGlnIGFyZ3VtZW50ICclcycgdmFuICctbCdcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorIywgZnV6enkKK21zZ2lkICJzb2NrZXQiCittc2dzdHIgInNvY2tldDogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNzAKKyMsIGZ1enp5Cittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAidmVyYmluZGluZzogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxODkKKyMsIGZ1enp5Cittc2dpZCAid3JpdGUiCittc2dzdHIgIlc6c2NocmlqdmVuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTk3CisjLCBmdXp6eQorbXNnaWQgInJlYWQgY291bnQiCittc2dzdHIgImR1dXJkZSB0ZSBsYW5nIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjAzCittc2dpZCAiYmFkIHJlc3BvbnNlIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgInV1aWRkIGRhZW1vbiBhbHJlYWR5IHJ1bm5pbmcgYXQgcGlkICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBjcmVhdGUgdW5peCBzdHJlYW0gc29ja2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBiaW5kIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICJLYW4gJXMgbmlldCBvcGVuZW46ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxpc3RlbiBvbiB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiS2FuICVzIG5pZXQgb3BlbmVuOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHJlYWRpbmcgZnJvbSBjbGllbnQsIGxlbiA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM3OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb3BlcmF0aW9uICVkXG4iCittc2dzdHIgIm9uZ2VsZGlnZSBvcHRpZSIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2OCBtaXNjLXV0aWxzL3V1aWRkLmM6NDg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJCYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogb25nZWxkaWdlIHdhYXJkZVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNhbGxpbmcgdXVpZGQgZGFlbW9uICglcyk6ICVzXG4iCittc2dzdHIgImZvdXQgYmlqIHdpanppZ2VuIHZhbiBtb2R1cyB2YW4gJXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgYW5kIHN1YnNlcXVlbnQgJWQgVVVJRCdzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNgorIywgYy1mb3JtYXQKK21zZ2lkICJMaXN0IG9mIFVVSUQnczpcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZXhwZWN0ZWQgcmVwbHkgbGVuZ3RoIGZyb20gc2VydmVyICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXJdIFstdF1cbiIKK21zZ3N0ciAiR2VicnVpazogICVzIFtvcHRpZXNdIGFwcGFyYWF0IC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3doZXJlaXMuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpciAuLi4gLWYgXSBuYW1lLi4uXG4iCittc2dzdHIgIkdlYnJ1aWs6ICB3aGVyZWlzIFstYm1zdV0gWy1CTVMgbWFwLi4uIC1mXSBuYWFtLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTI4CisjLCBmdXp6eQorbXNnaWQgImNhbGxvYyBmYWlsZWQiCittc2dzdHIgIm1hbGxvYygpIGlzIG1pc2x1a3QiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTUwCisjLCBmdXp6eQorbXNnaWQgInN0cmR1cCBmYWlsZWQiCittc2dzdHIgInNjaHJpanZlbiBuYWFyIHN0YW5kYWFyZHVpdHZvZXIgaXMgbWlzbHVrdCIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogcHJvYmluZyBpbml0aWFsaXphdGlvbiBmYWlsZWQiCittc2dzdHIgImZvdXQ6IGthbiBVVUlEIG5pZXQgb250bGVkZW4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IGFwcGVhcnMgdG8gY29udGFpbiAnJXMnIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiU2NoaWpmICVzIGJldmF0IGdlZW4gZ2VsZGlnZSBwYXJ0aXRpZXRhYmVsXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gc2VlayB0byBvZmZzZXQgMHglangiCittc2dzdHIgIiVzOiBvcGVuZW4gaXMgbWlzbHVrdDogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkoKSBpcyBtaXNsdWt0XG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlemQgYnl0ZXMgWyIKK21zZ3N0ciAiYnl0ZXMiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcGVuIGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSgpIGlzIG1pc2x1a3RcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMTUgbWlzYy11dGlscy93aXBlZnMuYzozMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgb2Zmc2V0ICclcycgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJPbmdlbGRpZ2UgZHJlbXBlbHdhYXJkZTogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxkZXZpY2U+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiR2VicnVpazogICVzIFtvcHRpZXNdIGFwcGFyYWF0IC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1hLCAtLWFsbCAgICAgICAgICAgd2lwZSBhbGwgbWFnaWMgc3RyaW5ncyAoQkUgQ0FSRUZVTCEpXG4iCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLW5vLWFjdCAgICAgICAgZXZlcnl0aGluZyB0byBiZSBkb25lIGV4Y2VwdCBmb3IgdGhlIHdyaXRlKCkgY2FsbFxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCB0byBlcmFzZSwgaW4gYnl0ZXNcbiIKKyIgLXAsIC0tcGFyc2FibGUgICAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgd2lwZWZzKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiVm9vciBtZWVyIGluZm9ybWF0aWUgemllIHNldGFyY2goOCkuXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6Mzg3Cittc2dpZCAiLS1vZmZzZXQgYW5kIC0tYWxsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogY2FuJ3QgZmluZCB5b3VyIHR0eSdzIG5hbWVcbiIKK21zZ3N0ciAid3JpdGU6IGthbiBkZSBuYWFtIHZhbiB1dyB0dHkgbmlldCB2aW5kZW5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogdSBoZWJ0IGJlcmljaHRlbnRvZWdhbmcgdWl0Z2V6ZXRcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIGlzIG5pZXQgaW5nZWxvZ2Qgb3AgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyBoZWJ0IGJlcmljaHRlbiB1aXRnZXpldCBvcCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiB3cml0ZSB1c2VyIFt0dHldXG4iCittc2dzdHIgIkdlYnJ1aWs6ICB3cml0ZSBnZWJydWlrZXIgW3R0eV1cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICJ3cml0ZTogJXMgaXMgbmlldCBpbmdlbG9nZFxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGhlZWZ0IGJlcmljaHRlbiB1aXRnZXpldFxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBsb2dnZWQgaW4gbW9yZSB0aGFuIG9uY2U7IHdyaXRpbmcgdG8gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGlzIG1lZXJkZXJlIGtlcmVuIGluZ2Vsb2dkOyBlciB3b3JkdCBnZXNjaHJldmVuIG5hYXIgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIkJlcmljaHQgdmFuICVzQCVzIChhbHMgJXMpIG9wICVzIG9tICVzLi4uIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIkJlcmljaHQgdmFuICVzQCVzIG9wICVzIG9tICVzLi4uIgorCisjOiBtb3VudC9mc3RhYi5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBlcnJvciByZWFkaW5nICVzOiAlcyIKK21zZ3N0ciAid2FhcnNjaHV3aW5nOiBmb3V0IGJpaiBsZXplbiB2YW4gJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAid2FhcnNjaHV3aW5nOiBrYW4gJXMgbmlldCBvcGVuZW46ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY291bGQgbm90IG9wZW4gJXMgLSB1c2luZyAlcyBpbnN0ZWFkXG4iCittc2dzdHIgIm1vdW50OiBrYW4gJXMgbmlldCBvcGVuZW4gLS0gJXMgd29yZHQgZ2VicnVpa3RcbiIKKworIzogbW91bnQvZnN0YWIuYzo1OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgY3JlYXRlIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorImthbiB2ZXJncmVuZGVsaW5nc2Jlc3RhbmQgJXMgbmlldCBhYW5tYWtlbjogJXMgIChnZWJydWlrIG9wdGllICctbicgb20gdGUgIgorImZvcmNlcmVuKSIKKworIzogbW91bnQvZnN0YWIuYzo2MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbGluayBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyJrYW4gdmVyZ3JlbmRlbGluZ3NiZXN0YW5kICVzIG5pZXQga29wcGVsZW46ICVzICAoZ2VicnVpayBvcHRpZSAnLW4nIG9tIHRlICIKKyJmb3JjZXJlbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisia2FuIHZlcmdyZW5kZWxpbmdzYmVzdGFuZCAlcyBuaWV0IG9wZW5lbjogJXMgIChnZWJydWlrIG9wdGllICctbicgb20gdGUgIgorImZvcmNlcmVuKSIKKworIzogbW91bnQvZnN0YWIuYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgImthbiB2ZXJncmVuZGVsaW5nc2Jlc3RhbmQgJXMgbmlldCB2ZXJncmVuZGVsZW46ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAia2FuIHZlcmdyZW5kZWxpbmdzYmVzdGFuZCAlcyBuaWV0IHZlcmdyZW5kZWxlbjogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICJkdXVyZGUgdGUgbGFuZyIKKworIzogbW91bnQvZnN0YWIuYzo2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbGluayAlc1xuIgorIlBlcmhhcHMgdGhlcmUgaXMgYSBzdGFsZSBsb2NrIGZpbGU/XG4iCittc2dzdHIgIiIKKyJLYW4ga29wcGVsaW5nICVzIG5pZXQgbWFrZW4uXG4iCisiTW9nZWxpamsgaXMgZXIgbm9nIGVlbiBvdWQgdmVyZ3JlbmRlbGluZ3NiZXN0YW5kP1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjc5MiBtb3VudC9mc3RhYi5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyAoJXMpIC0gbXRhYiBub3QgdXBkYXRlZCIKK21zZ3N0ciAia2FuICVzIG5pZXQgb3BlbmVuICglcykgLS0gbXRhYiBpcyBuaWV0IGJpamdld2Vya3QiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJmb3V0IGJpaiBzY2hyaWp2ZW4gdmFuICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzo4NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXNcbiIKK21zZ3N0ciAiZm91dCBiaWogd2lqemlnZW4gdmFuIG1vZHVzIHZhbiAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iCittc2dzdHIgImZvdXQgYmlqIHdpanppZ2VuIHZhbiBlaWdlbmFhciB2YW4gJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODk4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAia2FuICVzIG5pZXQgaGVybm9lbWVuIHRvdCAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgc2V0IGNhcGFjaXR5IG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDoga2FuIGdlZW4gaW5mb3JtYXRpZSB2ZXJrcmlqZ2VuIG92ZXIgYXBwYXJhYXQgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIGJlZ2lucHVudCAlPFBSSXU2ND4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIG1heGltYWxlIGdyb290dGUgJTxQUkl1NjQ+IgorCisjOiBtb3VudC9sb21vdW50LmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiAlcyAodHlwZSAlPFBSSXUzMj4pIgorbXNnc3RyICIsIGNvZGVyaW5nICVzIChzb29ydCAlPFBSSXUzMj4pIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICVkIgorbXNnc3RyICIsIGJlZ2lucHVudCAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gdHlwZSAlZFxuIgorbXNnc3RyICIsIGNvZGVyaW5nc3Nvb3J0ICVkXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBrYW4gZ2VlbiBpbmZvcm1hdGllIHZlcmtyaWpnZW4gb3ZlciBhcHBhcmFhdCAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDoga2FuIGFwcGFyYWF0ICVzIG5pZXQgb3BlbmVuOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczogbWFwICcvZGV2JyBiZXN0YWF0IG5pZXQuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiVzOiBnZWVuIHRvZWdhbmdzcmVjaHRlbiB0b3QgL2Rldi9sb29wIyIKKworIzogbW91bnQvbG9tb3VudC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGZyZWUgbG9vcCBkZXZpY2UiCittc2dzdHIgIiVzOiBrYW4gZ2VlbiB2cmlqIGx1cy1hcHBhcmFhdCB2aW5kZW4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlPyAoSWYgc28sIHJlY29tcGlsZSBvciBgbW9kcHJvYmUgbG9vcCcuKSIKK21zZ3N0ciAiIgorIiVzOiBLYW4gZ2VlbiBsdXMtYXBwYXJhYXQgdmluZGVuLiAgTWlzc2NoaWVuIGtlbnQgZGV6ZSBrZXJuZWwgZ2VlblxuIgorIiAgICAgICAgbHVzLWFwcGFyYWF0PyAgKERhbiBtb2V0IHUgZGUga2VybmVsIG9wbmlldXcgY29tcGlsZXJlbixcbiIKKyIgICAgICAgIG9mIG1pc3NjaGllbiBlZW4gJ21vZHByb2JlIGxvb3AnIGRvZW4/KSIKKworIzogbW91bnQvbG9tb3VudC5jOjYzNgorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hpbGUgcmVhZGluZyBwYXNzcGhyYXNlIgorbXNnc3RyICJPbnZvbGRvZW5kZSBnZWhldWdlbiBiZXNjaGlrYmFhciB0aWpkZW5zIGxlemVuIHZhbiB3YWNodHdvb3JkIgorCisjOiBtb3VudC9sb21vdW50LmM6Njc5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzIGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIndhYXJzY2h1d2luZzogJXMgaXMgYWwgZ2VyZWxhdGVlcmQgYWFuICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICIiCisid2FhcnNjaHV3aW5nOiAlcyBpcyBzY2hyaWpmYmV2ZWlsaWdkIGVuIHdvcmR0IGFscyBhbGxlZW4tbGV6ZW4gIgorImFhbmdla29wcGVsZC5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb2NrIGludG8gbWVtb3J5LCBleGl0aW5nLlxuIgorbXNnc3RyICJLYW4gcGFnaW5hJ3MgbmlldCB2YXN0emV0dGVuIGluIGhldCBnZWhldWdlbiAtLSBnZXN0b3B0XG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgTE9PUF9TRVRfRkQgZmFpbGVkOiAlc1xuIgorbXNnc3RyICJpb2N0bChMT09QX1NFVF9GRCkgaXMgbWlzbHVrdDogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgxNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSkgaXMgZ2VsdWt0XG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVsX2xvb3AoJXMpOiBzdWNjZXNzXG4iCittc2dzdHIgImx1cy1hcHBhcmFhdCAlcyBpcyB1aXRnZXNjaGFrZWxkXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZGVsZXRlIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAia2FuIGx1cy1hcHBhcmFhdCAlcyBuaWV0IHVpdHNjaGFrZWxlbjogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIG1vdW50IHdhcyBjb21waWxlZCB3aXRob3V0IGxvb3Agc3VwcG9ydC4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiIgorIkRlemUgdmVyc2llIHZhbiAnbW91bnQnIGlzIGdlY29tcGlsZWVyZCB6b25kZXIgbHVzLW9uZGVyc3RldW5pbmcuXG4iCisiSGVyY29tcGlsYXRpZSBpcyBub2RpZy5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIGxvb3BfZGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXZlIGluZm9cbiIKKyIgJTEkcyAtYSB8IC0tYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBhbGwgdXNlZFxuIgorIiAlMSRzIC1kIHwgLS1kZXRhY2ggPGxvb3BkZXY+IFs8bG9vcGRldj4gLi4uXSBkZWxldGVcbiIKKyIgJTEkcyAtZiB8IC0tZmluZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZCB1bnVzZWRcbiIKKyIgJTEkcyAtYyB8IC0tc2V0LWNhcGFjaXR5IDxsb29wZGV2PiAgICAgICAgICAgcmVzaXplXG4iCisiICUxJHMgLWogfCAtLWFzc29jaWF0ZWQgPGZpbGU+IFstbyA8bnVtPl0gICAgIGxpc3QgYWxsIGFzc29jaWF0ZWQgd2l0aCAiCisiPGZpbGU+XG4iCisiICUxJHMgWyBvcHRpb25zIF0gey1mfC0tZmluZHxsb29wZGV2fSA8ZmlsZT4gIHNldHVwXG4iCittc2dzdHIgIiIKKyJcbiIKKyJHZWJydWlrOlxuIgorIiAgJTEkcyA8bHVzLWFwcGFyYWF0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8gdG9uZW5cbiIKKyIgICUxJHMgLWEgfCAtLWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxlIGdlYnJ1aWt0ZSB0b25lblxuIgorIiAgJTEkcyAtZCB8IC0tZGV0YWNoIDxsdXMtYXBwYXJhYXQ+ICAgICAgICAgICAgICAgICAgIHZlcndpamRlcmVuXG4iCisiICAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWVuIG9uZ2VicnVpa3RlIHRvbmVuXG4iCisiICAlMSRzIC1qIHwgLS1hc3NvY2lhdGVkIDxiZXN0YW5kPiBbLW8gPG51bW1lcj5dICAgICAgZ2VyZWxhdGVlcmRlbiB0b25lblxuIgorIiAgJTEkcyBbb3B0aWVzXSB7LWZ8LS1maW5kfDxsdXMtYXBwYXJhYXQ+fSA8YmVzdGFuZD4gIGluc3RlbGxlblxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJPcHRpZXM6XG4iCisiICAtZSB8IC0tZW5jcnlwdGlvbiA8c29vcnQ+ICBkZXplIHNvb3J0IGVuY3J5cHRpZSBpbnNjaGFrZWxlblxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICAgICAgICAgZGV6ZSBodWxwdGVrc3QgdG9uZW5cbiIKKyIgIC1vIHwgLS1vZmZzZXQgPGdldGFsPiAgICAgIG9wIGRlemUgcG9zaXRpZSBpbiBoZXQgYmVzdGFuZCBiZWdpbm5lblxuIgorIiAgICAgICAtLXNpemVsaW1pdCA8Z2V0YWw+ICAgc2xlY2h0cyBkaXQgYWFudGFsIGJ5dGVzIHZhbiBiZXN0YW5kIGdlYnJ1aWtlblxuIgorIiAgLXAgfCAtLXBhc3MtZmQgPGdldGFsPiAgICAgd2FjaHR3b29yZHRla3N0IHVpdCBkZXplIGJlc3RhbmRzZGVzY3JpcHRvciAiCisibGV6ZW5cbiIKKyIgIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICAgIGVlbiBhbGxlZW4tbGV6ZW4gbHVzLWFwcGFyYWF0IGluc3RlbGxlblxuIgorIiAgICAgICAtLXNob3cgICAgICAgICAgICAgICAgYXBwYXJhYXRuYWFtIHRvbmVuIChiaWogJy1mIDxiZXN0YW5kPicpXG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgICBnZWRldGFpbGxlZXJkZSB1aXR2b2VyIHByb2R1Y2VyZW5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwMzQgbW91bnQvbG9tb3VudC5jOjEwNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9vcCBkZXZpY2UgaXMgJXNcbiIKK21zZ3N0ciAiTHVzLWFwcGFyYWF0IGlzICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDYxCisjLCBjLWZvcm1hdAorbXNnaWQgInN0b2xlbiBsb29wPSVzLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgImFmZ2VwYWt0IGx1cy1hcHBhcmFhdD0lczsgLi4uIG5pZXV3ZSBwb2dpbmdcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiBkZXZpY2UgaXMgYnVzeSIKK21zZ3N0ciAiJXM6IGFwcGFyYWF0ICVzIGlzIGJlemlnIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKyJCaWogaGV0IGNvbXBpbGVyZW4gd2FzIGdlZW4gbHVzLW9uZGVyc3RldW5pbmcgYmVzY2hpa2JhYXIuICBIZXJjb21waWxhdGllIGlzICIKKyJub2RpZy5cbiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIm1vdW50OiBvbmp1aXN0IGFhbmdlaGFhbGRlIHRla2VucmVla3MgJyVzJyIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHRyYW5zbGF0ZWQgJXMgJyVzJyB0byAnJXMnXG4iCittc2dzdHIgIm1vdW50OiBhcmd1bWVudCB2YW4gJXMgaXMgdmVydGFhbGQgdmFuICclcycgbmFhciAnJXMnXG4iCisKKyM6IG1vdW50L21vdW50LmM6NTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogdm9sZ2VucyBtdGFiIGlzICVzIGFsIGFhbmdla29wcGVsZCBvcCAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogdm9sZ2VucyBtdGFiIGlzICVzIGFhbmdla29wcGVsZCBvcCAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDoga2FuICVzIG5pZXQgb3BlbmVuIG9tIHRlIHNjaHJpanZlbjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTgxIG1vdW50L21vdW50LmM6MTE5OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIm1vdW50OiBmb3V0IGJpaiBzY2hyaWp2ZW4gdmFuICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzIgorbXNnc3RyICJtb3VudDogZm91dCBiaWogd2lqemlnZW4gdmFuIG1vZHVzIHZhbiAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGthbiBncm9lcC1JRCBuaWV0IGluc3RlbGxlbjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6Njc1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJtb3VudDoga2FuIGdlYnJ1aWtlci1JRCBuaWV0IGluc3RlbGxlbjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NzE0IG1vdW50L21vdW50LmM6MTg2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJtb3VudDoga2FuIGdlZW4gbmlldXcgcHJvY2VzIHN0YXJ0ZW46ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgJXNcbiIKK21zZ3N0ciAic29vcnQgJXMgd29yZHQgZ2Vwcm9iZWVyZFxuIgorCisjOiBtb3VudC9tb3VudC5jOjg3OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogeW91IGRpZG4ndCBzcGVjaWZ5IGEgZmlsZXN5c3RlbSB0eXBlIGZvciAlc1xuIgorbXNnc3RyICJtb3VudDogVSBnYWYgZ2VlbiBiZXN0YW5kc3N5c3RlZW1zb29ydCBhYW4gdm9vciAlcztcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgYWxsIHR5cGVzIG1lbnRpb25lZCBpbiAlcyBvciAlc1xuIgorbXNnc3RyICIgICAgICAgYWxsZSBzb29ydGVuIGdlbm9lbWQgaW4gJXMgb2YgJXMgd29yZGVuIGdlcHJvYmVlcmRcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIGFuZCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgc3dhcHNwYWNlXG4iCittc2dzdHIgIiAgICAgICBoZXQgbGlqa3QgZXJvcCBkYXQgZGl0IHdpc3NlbGdlaGV1Z2VuIGlzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIKK21zZ3N0ciAiICAgICAgIHNvb3J0ICVzIHdvcmR0IGdlcHJvYmVlcmRcbiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiJXMgemlldCBlciB1aXQgYWxzIHdpc3NlbGdlaGV1Z2VuIC0tIG5pZXQgYWFuZ2Vrb3BwZWxkIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDIKK21zZ2lkICJtb3VudCBmYWlsZWQiCittc2dzdHIgImFhbmtvcHBlbGVuIGlzIG1pc2x1a3QiCisKKyM6IG1vdW50L21vdW50LmM6MTAwNAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBtb3VudCAlcyBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IGFsbGVlbiByb290IGthbiAlcyBhYW5rb3BwZWxlbiBvcCAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMDc0Cittc2dpZCAibW91bnQ6IGxvb3AgZGV2aWNlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IGx1cy1hcHBhcmFhdCBpcyB0d2VlIGtlZXIgYWFuZ2VnZXZlbiIKKworIzogbW91bnQvbW91bnQuYzoxMDc5Cittc2dpZCAibW91bnQ6IHR5cGUgc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogc29vcnQgaXMgdHdlZSBrZWVyIGFhbmdlZ2V2ZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2tpcHBpbmcgdGhlIHNldHVwIG9mIGEgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAibW91bnQ6IGluc3RlbGxlbiB2YW4gbHVzLWFwcGFyYWF0IHdvcmR0IG92ZXJnZXNsYWdlblxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICJtb3VudDogdm9sZ2VucyBtdGFiIGlzICVzIGFsIGFscyBsdXMtYXBwYXJhYXQgYWFuZ2Vrb3BwZWxkIG9wICVzIgorCisjOiBtb3VudC9tb3VudC5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGdvaW5nIHRvIHVzZSB0aGUgbG9vcCBkZXZpY2UgJXNcbiIKK21zZ3N0ciAibW91bnQ6IGx1cy1hcHBhcmFhdCAlcyB6YWwgd29yZGVuIGdlYnJ1aWt0XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKyJtb3VudDogbHVzLWFwcGFyYWF0ICVzIGlzIGRvb3IgYW5kZXIgcHJvY2VzIGFmZ2VwYWt0OyAuLi4gbmlldXdlIHBvZ2luZ1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIgorbXNnc3RyICJtb3VudDogbHVzLWFwcGFyYWF0ICVzIGlzIGRvb3IgYW5kZXIgcHJvY2VzIGFmZ2VwYWt0IgorCisjOiBtb3VudC9tb3VudC5jOjExMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBpbnN0ZWxsZW4gdmFuIGx1cy1hcHBhcmFhdCBpcyBtaXNsdWt0XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE0MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2V0dXAgbG9vcCBkZXZpY2Ugc3VjY2Vzc2Z1bGx5XG4iCittc2dzdHIgIm1vdW50OiBsdXMtYXBwYXJhYXQgaXMgc3VjY2Vzdm9sIGluZ2VzdGVsZFxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vICVzIGZvdW5kIC0gY3JlYXRpbmcgaXQuLlxuIgorbXNnc3RyICJtb3VudDogZ2VlbiAlcyBnZXZvbmRlbiAtLSB3b3JkdCBudSBhYW5nZW1hYWt0Li4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgIm1vdW50OiBrYW4gJXMgbmlldCBvcGVuZW46ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIm1vdW50OiBhcmd1bWVudCB2YW4gJy1wJyBvZiAnLS1wYXNzLWZkJyBtb2V0IGVlbiBnZXRhbCB6aWpuIgorCisjOiBtb3VudC9tb3VudC5jOjEyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBvcGVuICVzIGZvciBzZXR0aW5nIHNwZWVkIgorbXNnc3RyICJtb3VudDoga2FuICVzIG5pZXQgb3BlbmVuIG9tIHNuZWxoZWlkIGluIHRlIHN0ZWxsZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50OiBrYW4gc25lbGhlaWQgbmlldCBpbnN0ZWxsZW46ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IHZvbGdlbnMgbXRhYiBpcyAlcyBhbCBhYW5nZWtvcHBlbGQgb3AgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxMzgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogd2FybmluZzogJXMgc2VlbXMgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlLlxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIGlzIGJlemlnIC0tIGFscyBhbGxlZW4tbGV6ZW4gaGVyYWFuZ2Vrb3BwZWxkXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQxMworbXNnaWQgIiIKKyJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsIGFuZCBub25lIHdhcyBzcGVjaWZpZWQiCittc2dzdHIgIm1vdW50OiBrYW4gYmVzdGFuZHNzeXN0ZWVtc29vcnQgbmlldCBiZXBhbGVuLCBlbiBlciBpcyBnZWVuIGFhbmdlZ2V2ZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTQxNgorbXNnaWQgIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIm1vdW50OiB1IG1vZXQgZWVuIGJlc3RhbmRzc3lzdGVlbXNvb3J0IGFhbmdldmVuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudDogYWFua29wcGVsZW4gaXMgbWlzbHVrdCIKKworIzogbW91bnQvbW91bnQuYzoxNDI1IG1vdW50L21vdW50LmM6MTQ2MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgbm90IGEgZGlyZWN0b3J5IgorbXNnc3RyICJtb3VudDogYWFua29wcGVsaW5nc3B1bnQgJXMgaXMgZ2VlbiBtYXAiCisKKyM6IG1vdW50L21vdW50LmM6MTQyNworbXNnaWQgIm1vdW50OiBwZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibW91bnQ6IHRvZWdhbmcgZ2V3ZWlnZXJkIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjkKK21zZ2lkICJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IgorbXNnc3RyICJtb3VudDogdSBtb2V0IHJvb3QgemlqbiBvbSBhYW4gdGUga3VubmVuIGtvcHBlbGVuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MzMgbW91bnQvbW91bnQuYzoxNDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgaXMgYmV6aWciCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IHByb2MgaXMgYWwgYWFuZ2Vrb3BwZWxkIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvciAlcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgaXMgYWwgYWFuZ2Vrb3BwZWxkIG9mICVzIGlzIGJlemlnIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogYWFua29wcGVsaW5nc3B1bnQgJXMgYmVzdGFhdCBuaWV0IgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICIiCisibW91bnQ6IGFhbmtvcHBlbGluZ3NwdW50ICVzIGlzIGVlbiBzeW1ib2xpc2NoZSBrb3BwZWxpbmcgZGllIG5lcmdlbnMgbmFhciAiCisid2lqc3QiCisKKyM6IG1vdW50L21vdW50LmM6MTQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBhcHBhcmFhdCAlcyBiZXN0YWF0IG5pZXQiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorIm1vdW50OiBhcHBhcmFhdCAlcyBiZXN0YWF0IG5pZXQgIChoZXQgcGFkIGJldmF0IGlldHMgZGF0IGdlZW4gbWFwIGlzKVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIG5vdCBtb3VudGVkIGFscmVhZHksIG9yIGJhZCBvcHRpb24iCittc2dzdHIgIm1vdW50OiAlcyBpcyBub2cgbmlldCBhYW5nZWtvcHBlbGQsIG9mIGVlbiBvbmdlbGRpZ2Ugb3B0aWUiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorIiAgICAgICBtaXNzaW5nIGNvZGVwYWdlIG9yIGhlbHBlciBwcm9ncmFtLCBvciBvdGhlciBlcnJvciIKK21zZ3N0ciAiIgorIm1vdW50OiBvbmp1aXN0ZSBiZXN0YW5kc3N5c3RlZW1zb29ydCwgb25nZWxkaWdlIG9wdGllLCBvbnRicmVrZW5kZSAiCisiY29kZXBhZ2luYSxcbiIKKyIgICAgICAgb250YnJla2VuZCBodWxwcHJvZ3JhbW1hLCBzbGVjaHQgc3VwZXJibG9rIG9wICVzLCBvZiBlZW4gYW5kZXJlIGZvdXQiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4NworbXNnaWQgIiIKKyIgICAgICAgKGZvciBzZXZlcmFsIGZpbGVzeXN0ZW1zIChlLmcuIG5mcywgY2lmcykgeW91IG1pZ2h0XG4iCisiICAgICAgIG5lZWQgYSAvc2Jpbi9tb3VudC48dHlwZT4gaGVscGVyIHByb2dyYW0pIgorbXNnc3RyICIiCisiICAgICAgICh2b29yIHNvbW1pZ2UgYmVzdGFuZHNzeXN0ZW1lbiAoYmlqdm9vcmJlZWxkIG5mcyBvZiBjaWZzKSBrYW5cbiIKKyIgICAgICAgZWVuIC9zYmluL21vdW50Ljx0eXBlPiBodWxwcHJvZ3JhbW1hIG5vZGlnIHppam4pIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKyIgICAgICAgKGlzIGRpdCBtaXNzY2hpZW4gZWVuIElERS1hcHBhcmFhdCB3YWFyIHUgaW4gZmVpdGUgaWRlLXNjc2kgIgorImdlYnJ1aWt0LFxuIgorIiAgICAgICB6b2RhdCBzcjAgb2Ygc2RhIG9mIGlldHMgZGVyZ2VsaWprcyBub2RpZyBpcz8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDEKK21zZ2lkICIiCisiICAgICAgIChhcmVuJ3QgeW91IHRyeWluZyB0byBtb3VudCBhbiBleHRlbmRlZCBwYXJ0aXRpb24sXG4iCisiICAgICAgIGluc3RlYWQgb2Ygc29tZSBsb2dpY2FsIHBhcnRpdGlvbiBpbnNpZGU/KSIKK21zZ3N0ciAiIgorIiAgICAgICAocHJvYmVlcnQgdSBtaXNzY2hpZW4gZWVuIHVpdGdlYnJlaWRlIHBhcnRpdGllIGFhbiB0ZSBrb3BwZWxlbixcbiIKKyIgICAgICAgaW4gcGxhYXRzIHZhbiBlZW4gZGFhcmluIG9wZ2Vub21lbiBsb2dpc2NoZSBwYXJ0aXRpZT8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDgKK21zZ2lkICIiCisiICAgICAgIEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gaXMgZm91bmQgaW4gc3lzbG9nIC0gdHJ5XG4iCisiICAgICAgIGRtZXNnIHwgdGFpbCAgb3Igc29cbiIKK21zZ3N0ciAiIgorIiAgICAgICBTb21zIHN0YWF0IGVyIG51dHRpZ2UgaW5mb3JtYXRpZSBpbiBoZXQgc3lzdGVlbWxvZyAtLVxuIgorIiAgICAgICBwcm9iZWVyIHpvaWV0cyBhbHM6ICBkbWVzZyB8IHRhaWxcbiIKKworIzogbW91bnQvbW91bnQuYzoxNTE0Cittc2dpZCAibW91bnQgdGFibGUgZnVsbCIKK21zZ3N0ciAiYWFua29wcGVsaW5nc3RhYmVsIGlzIHZvbCIKKworIzogbW91bnQvbW91bnQuYzoxNTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogY2FuJ3QgcmVhZCBzdXBlcmJsb2NrIgorbXNnc3RyICJtb3VudDogJXM6IGthbiBzdXBlcmJsb2sgbmlldCBsZXplbiIKKworIzogbW91bnQvbW91bnQuYzoxNTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogdW5rbm93biBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlczogb25iZWtlbmQgYXBwYXJhYXQiCisKKyM6IG1vdW50L21vdW50LmM6MTUyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdW5rbm93biBmaWxlc3lzdGVtIHR5cGUgJyVzJyIKK21zZ3N0ciAibW91bnQ6IG9uYmVrZW5kZSBiZXN0YW5kc3N5c3RlZW1zb29ydCAnJXMnIgorCisjOiBtb3VudC9tb3VudC5jOjE1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHByb2JhYmx5IHlvdSBtZWFudCAlcyIKK21zZ3N0ciAibW91bnQ6IHdhYXJzY2hpam5saWprIGJlZG9lbGRlIHUgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTU0MgorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAibW91bnQ6IG1vZ2VsaWprIGJlZG9lbGRlIHUgJ2lzbzk2NjAnPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDogbW9nZWxpamsgYmVkb2VsZGUgdSAndmZhdCc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyBoZWVmdCBvbmp1aXN0IGFwcGFyYWF0bnVtbWVyLCBvZiBiZXN0YW5kc3N5c3RlZW1zb29ydCAlcyB3b3JkdCAiCisibmlldCBvbmRlcnN0ZXVuZCIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAibW91bnQ6ICVzIGlzIGdlZW4gYmxvay1hcHBhcmFhdCwgZW4gc3RhdCgpIGlzIG1pc2x1a3QuLi4gaGVlbCB2cmVlbWQiCisKKyM6IG1vdW50L21vdW50LmM6MTU1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorIm1vdW50OiBkZSBrZXJuZWwgaGVya2VudCAlcyBuaWV0IGFscyBlZW4gYmxvay1hcHBhcmFhdFxuIgorIiAgICAgICAobWlzc2NoaWVuIGlzICdpbnNtb2Qgc3R1dXJwcm9ncmFtbWEnIG5vZGlnPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIm1vdW50OiAlcyBpcyBnZWVuIGJsb2stYXBwYXJhYXQgIChtaXNzY2hpZW4gJy1vIGxvb3AnIHByb2JlcmVuPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgaXMgZ2VlbiBibG9rLWFwcGFyYWF0IgorCisjOiBtb3VudC9tb3VudC5jOjE1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIHZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIGlzIGdlZW4gZ2VsZGlnIGJsb2stYXBwYXJhYXQiCisKKyM6IG1vdW50L21vdW50LmM6MTU3MgorbXNnaWQgImJsb2NrIGRldmljZSAiCittc2dzdHIgImJsb2stYXBwYXJhYXQgIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIKK21zZ3N0ciAibW91bnQ6IGthbiAlcyVzIG5pZXQgYWFua29wcGVsZW4gdm9vciBhbGxlZW4tbGV6ZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQgYnV0IGV4cGxpY2l0IGAtdycgZmxhZyBnaXZlbiIKK21zZ3N0ciAibW91bnQ6ICVzJXMgaXMgc2NocmlqZmJldmVpbGlnZCwgbWFhciBleHBsaWNpZXRlIG9wdGllICctdycgaXMgZ2VnZXZlbiIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIm1vdW50OiBrYW4gJXMlcyBuaWV0IGFhbmtvcHBlbGVuIHZvb3IgYWxsZWVuLWxlemVuIgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIGlzIHNjaHJpamZiZXZlaWxpZ2QgZW4gd29yZHQgYWxzIGFsbGVlbi1sZXplbiBhYW5nZWtvcHBlbGQiCisKKyM6IG1vdW50L21vdW50LmM6MTYwNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogZ2VlbiBtZWRpdW0gZ2V2b25kZW4gb3AgJXM7IC4uLiBuaWV1d2UgcG9naW5nXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIgorbXNnc3RyICJtb3VudDogZ2VlbiBtZWRpdW0gZ2V2b25kZW4gb3AgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyBiZXZhdCBnZWVuIFNFTGludXgtbGFiZWxzLlxuIgorIiAgICBVIGhlYnQgem9qdWlzdCBvcCBlZW4gU0VMaW51eC1jb21wdXRlciBlZW4gYmVzdGFuZHNzeXN0ZWVtIGFhbmdla29wcGVsZCAiCisiZGF0XG4iCisiICAgIGxhYmVscyBvbmRlcnN0ZXVudCBtYWFyIGVyIGdlZW4gYmV2YXQuICBXYWFyc2NoaWpubGlqayB6dWxsZW4gIgorImluZ2VwZXJrdGVcbiIKKyIgICAgcHJvZ3JhbW1hJ3MgQVZDLWJlcmljaHRlbiBnZW5lcmVyZW4gZW4gZ2VlbiB0b2VnYW5nIHRvdCBkaXQgIgorImJlc3RhbmRzc3lzdGVlbVxuIgorIiAgICBrdW5uZW4ga3Jpamdlbi4gIFZvb3IgbWVlciBkZXRhaWxzIHppZSByZXN0b3JlY29uKDgpIGVuIG1vdW50KDgpLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIm1vdW50OiBnZWVuIHNvb3J0IGdlZ2V2ZW4gLS0gTkZTIGFhbmdlbm9tZW4sIHZhbndlZ2UgZGUgZHViYmVsZSBwdW50XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICIiCisibW91bnQ6IGdlZW4gc29vcnQgZ2VnZXZlbiAtLSBDSUZTIGFhbmdlbm9tZW4sIHZhbndlZ2UgaGV0IC8vLXZvb3J2b2Vnc2VsXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiAlcyBpcyBhbCBhYW5nZWtvcHBlbGQgb3AgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxOTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogcHJpbnQgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBwcmludCB0aGlzIGhlbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdCBtb3VudGVkIGZpbGVzeXN0ZW1zXG4iCisiICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1ZGluZyB2b2x1bWUgbGFiZWxzXG4iCisiU28gZmFyIHRoZSBpbmZvcm1hdGlvbmFsIHBhcnQuIE5leHQgdGhlIG1vdW50aW5nLlxuIgorIlRoZSBjb21tYW5kIGlzIGBtb3VudCBbLXQgZnN0eXBlXSBzb21ldGhpbmcgc29tZXdoZXJlJy5cbiIKKyJEZXRhaWxzIGZvdW5kIGluIC9ldGMvZnN0YWIgbWF5IGJlIG9taXR0ZWQuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IG1vdW50IGFsbCBzdHVmZiBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgIDogbW91bnQgZGV2aWNlIGF0IHRoZSBrbm93biBwbGFjZVxuIgorIiAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICAgOiBtb3VudCBrbm93biBkZXZpY2UgaGVyZVxuIgorIiAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICAgOiBvcmRpbmFyeSBtb3VudCBjb21tYW5kXG4iCisiTm90ZSB0aGF0IG9uZSBkb2VzIG5vdCByZWFsbHkgbW91bnQgYSBkZXZpY2UsIG9uZSBtb3VudHNcbiIKKyJhIGZpbGVzeXN0ZW0gKG9mIHRoZSBnaXZlbiB0eXBlKSBmb3VuZCBvbiB0aGUgZGV2aWNlLlxuIgorIk9uZSBjYW4gYWxzbyBtb3VudCBhbiBhbHJlYWR5IHZpc2libGUgZGlyZWN0b3J5IHRyZWUgZWxzZXdoZXJlOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIm9yIG1vdmUgYSBzdWJ0cmVlOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgb2xkZGlyIG5ld2RpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIG1vdW50IGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBkaXJcbiIKKyJBIGRldmljZSBjYW4gYmUgZ2l2ZW4gYnkgbmFtZSwgc2F5IC9kZXYvaGRhMSBvciAvZGV2L2Nkcm9tLFxuIgorIm9yIGJ5IGxhYmVsLCB1c2luZyAgLUwgbGFiZWwgIG9yIGJ5IHV1aWQsIHVzaW5nICAtVSB1dWlkIC5cbiIKKyJPdGhlciBvcHRpb25zOiBbLW5mRnJzdnddIFstbyBvcHRpb25zXSBbLXAgcGFzc3dkZmRdLlxuIgorIkZvciBtYW55IG1vcmUgZGV0YWlscywgc2F5ICBtYW4gOCBtb3VudCAuXG4iCittc2dzdHIgIiIKKyJHZWJydWlrOiAgbW91bnQgICAgICAgICAgICAgICAgIDogYWFuZ2Vrb3BwZWxkZSBiZXN0YW5kc3N5c3RlbWVuIHRvbmVuXG4iCisiICAgICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1c2llZiB2b2x1bWVubGFiZWxzXG4iCisiICAgICAgICAgIG1vdW50IC1oICAgICAgICAgICAgICA6IGRlemUgaHVscHRla3N0IHRvbmVuXG4iCisiICAgICAgICAgIG1vdW50IC1WICAgICAgICAgICAgICA6IHByb2dyYW1tYXZlcnNpZSB0b25lblxuIgorIlxuIgorIlRvdCB6b3ZlciBoZXQgZGVlbCBkYXQgaW5mb3JtYXRpZSB3ZWVyZ2VlZnQuICBOdSBoZXQgYWFua29wcGVsZW4uXG4iCisiRGUgYWxnZW1lbmUgdm9ybSBpczogICdtb3VudCBbLXQgYmVzdGFuZHNzeXN0ZWVtc29vcnRdIGlldHMgZXJnZW5zJy5cbiIKKyJEZXRhaWxzIGRpZSBpbiAvZXRjL2ZzdGFiIHN0YWFuIGt1bm5lbiB3b3JkZW4gd2VnZ2VsYXRlbi5cbiIKKyIgICAgICAgICAgbW91bnQgLWEgWy10fC1PXSAgICAgIDogYWxsZXMgaW4gL2V0Yy9mc3RhYiBhYW5rb3BwZWxlblxuIgorIiAgICAgICAgICBtb3VudCBhcHBhcmFhdCAgICAgICAgOiBhcHBhcmFhdCBhYW5rb3BwZWxlbiBvcCBkZSBiZWtlbmRlIHBsYWF0c1xuIgorIiAgICAgICAgICBtb3VudCBtYXAgICAgICAgICAgICAgOiBiZWtlbmQgYXBwYXJhYXQgaGllciBhYW5rb3BwZWxlblxuIgorIiAgICAgICAgICBtb3VudCAtdCBzb29ydCBhcHBhcmFhdCBtYXAgOiB2b2xsZWRpZ2UgbW91bnQtb3BkcmFjaHRcbiIKKyJNZXJrIG9wIGRhdCBtZW4gbmlldCBlY2h0IGVlbiBhcHBhcmFhdCBhYW5rb3BwZWx0LCBtYWFyIGhldCBiZXN0YW5kc3N5c3RlZW1cbiIKKyIodmFuIGRlIGdlZ2V2ZW4gc29vcnQpIGRhdCB6aWNoIG9wIGRhdCBhcHBhcmFhdCBiZXZpbmR0LlxuIgorIlxuIgorIk1lbiBrYW4gb29rIGVlbiByZWVkcyB6aWNodGJhcmUgbWFwcGVuYm9vbSBlcmdlbnMgYW5kZXJzIGFhbmtvcHBlbGVuOlxuIgorIiAgICAgICAgICBtb3VudCAtLWJpbmQgb3VkZW1hcCBuaWV1d2VtYXBcbiIKKyJvZiBlZW4gc3ViYm9vbSB2ZXJwbGFhdHNlbjpcbiIKKyIgICAgICAgICAgbW91bnQgLS1tb3ZlIG91ZGVtYXAgbmlldXdlbWFwXG4iCisiTWVuIGthbiB2YW4gZWVuIGFhbmtvcHBlbGluZyBkZSBzb29ydCB2ZXJhbmRlcmVuLCBhbHMgJ21hcCcgZXJpbiB2b29ya29tdDpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNoYXJlZCBtYXBcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIG1hcFxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBtYXBcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXVuYmluZGFibGUgbWFwXG4iCisiTWVuIGthbiB2YW4gYWxsZSBhYW5rb3BwZWxpbmdlbiBpbiBlZW4gc3ViYm9vbSBkZSBzb29ydCB2ZXJhbmRlcmVuLFxuIgorImFscyAnbWFwJyBlcmluIHZvb3Jrb210OlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBtYXBcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBtYXBcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIG1hcFxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgbWFwXG4iCisiXG4iCisiRWVuIGFwcGFyYWF0IGthbiB3b3JkZW4gb3BnZWdldmVuIHZpYSBkZSBuYWFtLCB6ZWcgL2Rldi9oZGExIG9mIC9kZXYvY2Ryb20sXG4iCisib2YgdmlhIGhldCBsYWJlbCwgbWV0IC1MIGxhYmVsLCBvZiB2aWEgZGUgVVVJRCwgbWV0IC1VIFVVSUQuXG4iCisiQW5kZXJlIG9wdGllcyB6aWpuOiBbLW5mRnJzdnddIFstbyBvcHRpZXNdIFstcCAiCisid2FjaHR3b29yZGJlc3RhbmRzZGVzY3JpcHRvcl0uXG4iCisiVm9vciBtZWVyIGluZm9ybWF0aWUsIHppZSBtYW4gbW91bnQoOCkuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiBhbGxlZW4gcm9vdCBrYW4gZGF0IGRvZW4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIm1vdW50OiBhbGxlZW4gcm9vdCBrYW4gZGF0IGRvZW4iCisKKyM6IG1vdW50L21vdW50LmM6MjI4OAorbXNnaWQgIm5vdGhpbmcgd2FzIG1vdW50ZWQiCittc2dzdHIgImVyIGlzIG5pZXRzIGFhbmdla29wcGVsZCIKKworIzogbW91bnQvbW91bnQuYzoyMzA2IG1vdW50L21vdW50LmM6MjMzMgorbXNnaWQgIm1vdW50OiBubyBzdWNoIHBhcnRpdGlvbiBmb3VuZCIKK21zZ3N0ciAibW91bnQ6IGRpZSBwYXJ0aXRpZSBpcyBuaWV0IGdldm9uZGVuIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IGZpbmQgJXMgaW4gJXMgb3IgJXMiCittc2dzdHIgIm1vdW50OiBrYW4gJXMgbmlldCB2aW5kZW4gaW4gJXMgbm9jaCBpbiAlcyIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiB3YXJuaW5nOiBubyBmaW5hbCBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgJXNcbiIKK21zZ3N0ciAiIgorIlttbnRlbnRdOiB3YWFyc2NodXdpbmc6IGdlZW4gYWZzbHVpdGVuZCByZWdlbGVpbmRldGVrZW4gYWFuIGhldCBlaW5kIHZhbiAlc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiW21udGVudF06IHJlZ2VsICVkIGluICVzIGlzIG9uZ2VsZGlnJXNcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE5Cittc2dpZCAiOyByZXN0IG9mIGZpbGUgaWdub3JlZCIKK21zZ3N0ciAiOyByZXN0IHZhbiBiZXN0YW5kIGdlbmVnZWVyZCIKKworIzogbW91bnQvc3VuZHJpZXMuYzozMgorbXNnaWQgImJ1ZyBpbiB4c3RybmR1cCBjYWxsIgorbXNnc3RyICIqcHJvZ3JhbW1lZXJmb3V0KiBpbiBhYW5yb2VwIHZhbiB4c3RybmR1cCgpIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgIm9udm9sZG9lbmRlIGdlaGV1Z2VuIGJlc2NoaWtiYWFyIgorCisjOiBtb3VudC9zd2Fwb24uYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICBMQUJFTCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgICAgVVVJRCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZGV2aWNlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZmlsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBmaWxlIHRvIGJlIHVzZWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkRlIHBhcmFtZXRlciA8bmFhbT4ga2FuIHppam46XG4iCisiICB7LUwgbGFiZWwgfCBMQUJFTD1sYWJlbH0gICAgbGFiZWwgdmFuIHRlIGdlYnJ1aWtlbiBhcHBhcmFhdFxuIgorIiAgey1VIFVVSUQgIHwgVVVJRD1VVUlEfSAgICAgIFVVSUQgdmFuIHRlIGdlYnJ1aWtlbiBhcHBhcmFhdFxuIgorIiAgPGFwcGFyYWF0PiAgICAgICAgICAgICAgICAgIG5hYW0gdmFuIHRlIGdlYnJ1aWtlbiBhcHBhcmFhdFxuIgorIiAgPGJlc3RhbmQ+ICAgICAgICAgICAgICAgICAgIG5hYW0gdmFuIHRlIGdlYnJ1aWtlbiBiZXN0YW5kXG4iCisiXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkdlYnJ1aWs6XG4iCisiICAlMSRzIC1hIFstZV0gWy12XSAgICAgICAgICAgICAgICAgICAgIGFsbGUgd2lzc2VsZ2VoZXVnZW5zIGluc2NoYWtlbGVuICIKKyJkaWVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJtZWxkIHN0YWFuIGluIC9ldGMvZnN0YWJcbiIKKyIgICUxJHMgWy1wIDxwcmlvcml0ZWl0Pl0gWy12XSA8bmFhbT4gICAgZGl0IHdpc3NlbGdlaGV1Z2VuIGluc2NoYWtlbGVuXG4iCisiICAlMSRzIC1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlYnJ1aWtzc2FtZW52YXR0aW5nIHRvbmVuXG4iCisiICAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlemUgaHVscHRla3N0IHRvbmVuXG4iCisiICAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1tYXZlcnNpZSB0b25lblxuIgorIlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoxMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstdl0gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZSBhbGwgc3dhcHNcbiIKKyIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGRpc2FibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkdlYnJ1aWs6XG4iCisiICAlMSRzIC1hIFstdl0gICAgICAgICBhbGxlIHdpc3NlbGdlaGV1Z2VucyB1aXRzY2hha2VsZW5cbiIKKyIgICUxJHMgWy12XSA8bmFhbT4gICAgIGRpdCB3aXNzZWxnZWhldWdlbiB1aXRzY2hha2VsZW5cbiIKKyIgICUxJHMgLWggICAgICAgICAgICAgIGRlemUgaHVscHRla3N0IHRvbmVuXG4iCisiICAlMSRzIC1WICAgICAgICAgICAgICBwcm9ncmFtbWF2ZXJzaWUgdG9uZW5cbiIKKyJcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MTQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5leHBlY3RlZCBmaWxlIGZvcm1hdCIKK21zZ3N0ciAiJXM6ICVzOiBPbnZlcndhY2h0ZSBiZXN0YW5kc2luZGVsaW5nXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlaW5pdGlhbGl6aW5nIHRoZSBzd2FwLiIKK21zZ3N0ciAiIgorIiVzOiAlczogc2x1aW1lcmdlZ2V2ZW5zIGdldm9uZGVuIC0tXG4iCisid2lzc2VsZ2VoZXVnZW4gd29yZHQgb3BuaWV1dyBpbmdlc3RlbGRcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICJmb3JrKCkgaXMgbWlzbHVrdFxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3YgZmFpbGVkIgorbXNnc3RyICJ1aXR2b2VyZW4gaXMgbWlzbHVrdFxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNDcKKyMsIGZ1enp5Cittc2dpZCAid2FpdHBpZCBmYWlsZWQiCittc2dzdHIgInNldHVpZCgpIGlzIG1pc2x1a3QiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAiJ3NlZWsnIGlzIG1pc2x1a3QiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgInNjaHJpanZlbiBuYWFyIHN0YW5kYWFyZHVpdHZvZXIgaXMgbWlzbHVrdCIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKKyMsIGZ1enp5Cittc2dpZCAic2FtZSIKK21zZ3N0ciAiTmFhbSIKKworIzogbW91bnQvc3dhcG9uLmM6Mzg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgIiVzIGlzIG1pc2x1a3QuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjM5NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGluc2VjdXJlIHBlcm1pc3Npb25zICUwNG8sICUwNG8gc3VnZ2VzdGVkLiIKK21zZ3N0ciAiIgorIiVzOiBXYWFyc2NodXdpbmc6ICVzIGhlZWZ0IG9udmVpbGlnZSB0b2VnYW5nc3JlY2h0ZW46ICUwNG8gLS1cbiIKKyJhYW5nZXJhZGVuIHdvcmR0OiAlMDRvXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQwMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIC0gaXQgYXBwZWFycyB0byBoYXZlIGhvbGVzLiIKK21zZ3N0ciAiJXM6IEJlc3RhbmQgJXMgd29yZHQgb3Zlcmdlc2xhZ2VuIC0tIGhldCBsaWprdCBnYXRlbiB0ZSBoZWJiZW4uXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAiJ3NlZWsnIGlzIG1pc2x1a3QiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuIFJld3JpdGluZyB0aGUgc3dhcCBzaWduYXR1cmUuIgorbXNnc3RyICIiCisiJXM6ICVzOiBzbHVpbWVyZ2VnZXZlbnMgZ2V2b25kZW4gLS1cbiIKKyJ3aXNzZWxnZWhldWdlbiB3b3JkdCBvcG5pZXV3IGluZ2VzdGVsZFxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NzggbW91bnQvc3dhcG9uLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIG9uICVzXG4iCittc2dzdHIgIiVzIG9wICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvbiBmYWlsZWQiCittc2dzdHIgIiVzIGlzIG1pc2x1a3QuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzOiBrYW4gZ2VlbiBhcHBhcmFhdCB2aW5kZW4gdm9vciAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDAKKyMsIGZ1enp5Cittc2dpZCAiTm90IHN1cGVydXNlci4iCittc2dzdHIgIlUgYmVudCBuaWV0IHJvb3QuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvZmYgZmFpbGVkIgorbXNnc3RyICIlcyBpcyBtaXNsdWt0LlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyB1bnN1cHBvcnRlZCBwcm9ncmFtIG5hbWUgKG11c3QgYmUgJ3N3YXBvbicgb3IgJ3N3YXBvZmYnKS4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIC1mXG4iCittc2dzdHIgInVtb3VudDogZ2Vjb21waWxlZXJkIHpvbmRlciBvbmRlcnN0ZXVuaW5nIHZvb3IgJy1mJ1xuIgorCisjOiBtb3VudC91bW91bnQuYzoxMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAidW1vdW50OiBrYW4gZ3JvZXAtSUQgbmlldCBpbnN0ZWxsZW46ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJ1bW91bnQ6IGthbiBnZWJydWlrZXItSUQgbmlldCBpbnN0ZWxsZW46ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgInVtb3VudDoga2FuIGdlZW4gbmlldXcgcHJvY2VzIHN0YXJ0ZW46ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogaW52YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgInVtb3VudDogJXM6IG9uZ2VsZGlnIGJsb2stYXBwYXJhYXQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIKK21zZ3N0ciAidW1vdW50OiAlczogbmlldCBhYW5nZWtvcHBlbGQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBjYW4ndCB3cml0ZSBzdXBlcmJsb2NrIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBrYW4gbmlldCBuYWFyIHN1cGVyYmxvayBzY2hyaWp2ZW4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisidW1vdW50OiAlczogYXBwYXJhYXQgaXMgYmV6aWdcbiIKKyIgICAgICAgIChXZWxrZSBwcm9jZXNzZW4gaGV0IGFwcGFyYWF0IGdlYnJ1aWtlbiBrYW4gbW9nZWxpamtcbiIKKyIgICAgICAgICBnZXZvbmRlbiB3b3JkZW4gbWV0IGJlaHVscCB2YW4gbHNvZig4KSBvZiBmdXNlcigxKS4pIgorCisjOiBtb3VudC91bW91bnQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IGZvdW5kIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBuaWV0IGdldm9uZGVuIgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICJ1bW91bnQ6ICVzOiB1IG1vZXQgcm9vdCB6aWpuIG9tIHRlIGt1bm5lbiBvbnRrb3BwZWxlbiIKKworIzogbW91bnQvdW1vdW50LmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGJsb2NrIGRldmljZXMgbm90IHBlcm1pdHRlZCBvbiBmcyIKK21zZ3N0ciAidW1vdW50OiAlczogYmxvay1hcHBhcmF0ZW4gbmlldCB0b2VnZXN0YWFuIG9wIGJlc3RhbmRzc3lzdGVlbSIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHVtb3VudDIsIHRyeWluZyB1bW91bnQuLi5cbiIKK21zZ3N0ciAiZ2VlbiB1bW91bnQyIGFhbndlemlnOyBwb2dpbmcgbWV0IGdld29uZSB1bW91bnQuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6MjUyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgYnVzeSAtIHJlbW91bnRlZCByZWFkLW9ubHlcbiIKK21zZ3N0ciAidW1vdW50OiAlcyBpcyBiZXppZyAtLSBhbHMgYWxsZWVuLWxlemVuIGhlcmFhbmdla29wcGVsZFxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb3VsZCBub3QgcmVtb3VudCAlcyByZWFkLW9ubHlcbiIKK21zZ3N0ciAidW1vdW50OiBrYW4gJXMgbmlldCBhbHMgYWxsZWVuLWxlemVuIGhlcmFhbmtvcHBlbGVuXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1bW91bnRlZFxuIgorbXNnc3RyICIlcyBpcyBvbnRrb3BwZWxkXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjM2NworbXNnaWQgInVtb3VudDogY2Fubm90IGZpbmQgbGlzdCBvZiBmaWxlc3lzdGVtcyB0byB1bm1vdW50IgorbXNnc3RyICJ1bW91bnQ6IGthbiBnZWVuIGxpanN0IHZpbmRlbiBtZXQgYmVzdGFuZHNzeXN0ZW1lbiBvbSB0ZSBvbnRrb3BwZWxlbiIKKworIzogbW91bnQvdW1vdW50LmM6Mzk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisiR2VicnVpazogIHVtb3VudCBbLWRmbmxydl0gbWFwfGFwcGFyYWF0IC4uLlxuIgorIiAgICAgICAgICB1bW91bnQgLWEgWy1kZm5scnZdIFstdCBiZXN0YW5kc3N5c3RlZW1zb29ydGVuXSBbLU8gb3B0aWVzXVxuIgorIiAgICAgICAgICB1bW91bnQgWy1oVl1cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIndhYXJzY2h1d2luZzogJXMgaXMgYWwgZ2VyZWxhdGVlcmQgYWFuICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAid2FhcnNjaHV3aW5nOiAlcyBpcyBhbCBnZXJlbGF0ZWVyZCBhYW4gJXNcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDg3Cittc2dpZCAiQ2Fubm90IHVtb3VudCBcIlwiXG4iCittc2dzdHIgImthbiBuaWV0IFwiXCIgb250a29wcGVsZW5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byB1bW91bnQgJXNcbiIKK21zZ3N0ciAiUG9naW5nIHRvdCBvbnRrb3BwZWxlbiB2YW4gJXMuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCB1bW91bnQgJXMgLS0gJXMgaXMgbW91bnRlZCBvdmVyIGl0IG9uIHRoZSBzYW1lIHBvaW50LiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgJXMgaW4gbXRhYlxuIgorbXNnc3RyICJLYW4gJXMgbmlldCB2aW5kZW4gaW4gbXRhYlxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6ICVzIGlzIG5pZXQgYWFuZ2Vrb3BwZWxkICh2b2xnZW5zIG10YWIpIgorCisjOiBtb3VudC91bW91bnQuYzo1NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBpdCBzZWVtcyAlcyBpcyBtb3VudGVkIG11bHRpcGxlIHRpbWVzIgorbXNnc3RyICJ1bW91bnQ6IGhldCBsaWprdCBlcm9wIGRhdCAlcyBtZWVyZGVyZSBrZXJlbiBpcyBhYW5nZWtvcHBlbGQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBpbiB0aGUgZnN0YWIgKGFuZCB5b3UgYXJlIG5vdCByb290KSIKK21zZ3N0ciAidW1vdW50OiAlcyBzdGFhdCBuaWV0IGluIGZzdGFiIChlbiB1IGJlbnQgbmlldCByb290KSIKKworIzogbW91bnQvdW1vdW50LmM6NTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgbW91bnQgZGlzYWdyZWVzIHdpdGggdGhlIGZzdGFiIgorbXNnc3RyICJ1bW91bnQ6IGFhbmtvcHBlbGluZyBvcCAlcyBrb210IG5pZXQgb3ZlcmVlbiBtZXQgZnN0YWIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAidW1vdW50OiBhbGxlZW4gJXMga2FuICVzIG9udGtvcHBlbGVuIHZhbiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6NzAxCittc2dpZCAidW1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgInVtb3VudDogYWxsZWVuIHJvb3Qga2FuIGRhdCBkb2VuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiY2hydCAtIG1hbmlwdWxhdGUgcmVhbC10aW1lIGF0dHJpYnV0ZXMgb2YgYSBwcm9jZXNzLlxuIgorIlxuIgorIlNldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSA8cG9saWN5PiA8cHJpb3JpdHk+IHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJHZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIlxuIgorIlNjaGVkdWxpbmcgcG9saWNpZXM6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0ZJRk9cbiIKKyIgIC1pIHwgLS1pZGxlICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9SUiAoZGVmYXVsdClcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHBcbiIKKyIgIC1wIHwgLS1waWQgICAgICAgICAgIG9wZXJhdGUgb24gZXhpc3RpbmcgZ2l2ZW4gcGlkXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBzaG93IG1pbiBhbmQgbWF4IHZhbGlkIHByaW9yaXRpZXNcbiIKKyIgIC12IHwgLS12ZXJib3NlICAgICAgIGRpc3BsYXkgc3RhdHVzIGluZm9ybWF0aW9uXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAiSW5zdGVsbGVuIHZhbiBzeXN0ZWVtZWlnZW5zY2hhcHBlbiB2b29yICVzIGlzIG1pc2x1a3QiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgIm9uYmVrZW5kZSB0aWpkIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBhdHRyaWJ1dGVzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHByaW9yaXR5OiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBtaW4vbWF4IHByaW9yaXR5XHQ6ICVkLyVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwaWQiCittc2dzdHIgIiVzOiBvcGVuZW4gaXMgbWlzbHVrdDogJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjI1CisjLCBmdXp6eQorbXNnaWQgImN1cnJlbnQiCittc2dzdHIgIm5jb3VudCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjMzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAiSW5zdGVsbGVuIHZhbiBzeXN0ZWVtZWlnZW5zY2hhcHBlbiB2b29yICVzIGlzIG1pc2x1a3QiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHNldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIkluc3RlbGxlbiB2YW4gc3lzdGVlbWVpZ2Vuc2NoYXBwZW4gdm9vciAlcyBpcyBtaXNsdWt0IgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyNDIKKyMsIGZ1enp5Cittc2dpZCAibmV3IgorbXNnc3RyICJOaWV1dyIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAia2FuIHNjcmlwdGJlc3RhbmQgJXMgbmlldCBsZXplbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo1NworIywgZnV6enkKK21zZ2lkICJpb3ByaW9fZ2V0IGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSgpIGlzIG1pc2x1a3RcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorIywgZnV6enkKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSgpIGlzIG1pc2x1a3RcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisiXG4iCisiVXNhZ2U6XG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSA8Y29tbWFuZD4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBzY2hlZHVsaW5nIGNsYXNzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIDA6IG5vbmUsIDE6IHJlYWx0aW1lLCAyOiBiZXN0LWVmZm9ydCwgMzogaWRsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxMTAgc2NoZWR1dGlscy9pb25pY2UuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBwYXJzZSBudW1iZXIgJyVzJyIKK21zZ3N0ciAia2FuICVzIG5pZXQgb3BlbmVuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgInVpdHZvZXJlbiBpcyBtaXNsdWt0XG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgYmUgcm9vdCB0byBzZXQgdGhlIEN0cmwtQWx0LURlbCBiZWhhdmlvdXIuXG4iCittc2dzdHIgIiIKKyJVIG1vZXQgcm9vdCB6aWpuIG9tIGhldCBnZWRyYWcgdmFuIEN0cmwtQWx0LURlbCBpbiB0ZSBrdW5uZW4gc3RlbGxlbi5cbiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzo0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKK21zZ3N0ciAiR2VicnVpazogIGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCisKKyMgd2F0IGRpZSAiRm9yIiBiZXRla2VudDogZ2VlbiBpZGVlCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIlZvb3IgYmVzdGFuZCAlcywgZW4gbWV0IGRyZW1wZWx3YWFyZGUgJWx1LFxuIgorIndhcyBoZXQgbWF4aW11bSBhYW50YWwgdGVrZW5zIGluIGRlIGZpZm8gJWQsXG4iCisiZW4gZGUgbWF4aW1hbGUgb3ZlcmRyYWNodHNzbmVsaGVpZCAlZiB0ZWtlbnMvc2Vjb25kZS5cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIlZvb3IgYmVzdGFuZCAlcywgZW4gbWV0IGRyZW1wZWx3YWFyZGUgJWx1IGVuIHRpamRzbGltaWV0ICVsdSxcbiIKKyJ3YXMgaGV0IG1heGltdW0gYWFudGFsIHRla2VucyBpbiBkZSBmaWZvICVkLFxuIgorImVuIGRlIG1heGltYWxlIG92ZXJkcmFjaHRzc25lbGhlaWQgJWYgdGVrZW5zL3NlY29uZGUuXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBpbnRlcnZhbCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiT25nZWxkaWdlIGludGVydmFsd2FhcmRlOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJPbmdlbGRpZ2UgZHJlbXBlbHdhYXJkZTogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdmFsdWU6ICVzXG4iCittc2dzdHIgIk9uZ2VsZGlnZSBzdGFuZGFhcmRkcmVtcGVsd2FhcmRlOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIk9uZ2VsZGlnZSB3YWFyZGUgdm9vciB0aWpkc2xpbWlldDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiT25nZWxkaWdlIHN0YW5kYWFyZHdhYXJkZSB2b29yIHRpamRzbGltaWV0OiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pICIKKyJbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCittc2dzdHIgIiIKKyJHZWJydWlrOiAgJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgd2FhcmRlXXxbLVMgd2FhcmRlXSlcbiIKKyIgICAgICAgICAgKFstdCB3YWFyZGVdfFstVCB3YWFyZGVdKSBbLWd8LUddIGJlc3RhbmQgW2Jlc3RhbmQgLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjUwIHN5cy11dGlscy9jeXR1bmUuYzoyNjkgc3lzLXV0aWxzL2N5dHVuZS5jOjI4OQorIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJLYW4gJXMgbmlldCBvcGVuZW46ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiS2FuICVzIG5pZXQgaW5zdGVsbGVuIG9wIGRyZW1wZWx3YWFyZGUgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRpbWUgdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICJLYW4gJXMgbmlldCBpbnN0ZWxsZW4gb3AgdGlqZHNkcmVtcGVsICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjk0IHN5cy11dGlscy9jeXR1bmUuYzozNTEgc3lzLXV0aWxzL2N5dHVuZS5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGhyZXNob2xkIGZvciAlczogJXNcbiIKK21zZ3N0ciAiS2FuIGRyZW1wZWx3YWFyZGUgdm9vciAlcyBuaWV0IHZlcmtyaWpnZW46ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiS2FuIHRpamRzbGltaWV0IHZvb3IgJXMgbmlldCB2ZXJrcmlqZ2VuOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3VycmVudCB0aHJlc2hvbGQgYW5kICVsZCBjdXJyZW50IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6ICVsZCBpcyBodWlkaWdlIGRyZW1wZWx3YWFyZGUgZW4gJWxkIGlzIGh1aWRpZ2UgdGlqZHNsaW1pZXRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGRlZmF1bHQgdGhyZXNob2xkIGFuZCAlbGQgZGVmYXVsdCB0aW1lb3V0XG4iCittc2dzdHIgIiVzOiAlbGQgaXMgc3RhbmRhYXJkIGRyZW1wZWx3YWFyZGUgZW4gJWxkIGlzIHN0YW5kYWFyZCB0aWpkc2xpbWlldFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzI3Cittc2dpZCAiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIgorbXNnc3RyICJLYW4gZ2VlbiBzaWduYWFsaGFuZHZhdCBpbnN0ZWxsZW4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzEgc3lzLXV0aWxzL2N5dHVuZS5jOjM2NgorbXNnaWQgImdldHRpbWVvZmRheSBmYWlsZWQiCittc2dzdHIgImdldHRpbWVvZmRheSgpIGlzIG1pc2x1a3QiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozNDQgc3lzLXV0aWxzL2N5dHVuZS5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBpc3N1ZSBDWUdFVE1PTiBvbiAlczogJXNcbiIKK21zZ3N0ciAiS2FuIGlvY3RsKENZR0VUTU9OKSBuaWV0IHVpdHZvZXJlbiBvcCAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorIiVzOiAlbHUgb25kZXJicmVraW5nZW4sICVsdS8lbHUgdGVrZW5zO1xuIgorImZpZm86ICVsdSBkcmVtcGVsd2FhcmRlLCAlbHUgdGlqZHNsaW1pZXQsICVsdSBtYXhpbXVtLCAlbHUgbnVcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiBvbmRlcmJyZWtpbmdlbi9zZWM7ICVmIG9udHZhbmdlbiwgJWYgdmVyem9uZGVuICh0ZWtlbnMvc2VjKVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IG9uZGVyYnJla2luZ2VuLCAlbHUgdGVrZW5zO1xuIgorImZpZm86ICVsdSBkcmVtcGVsd2FhcmRlLCAlbHUgdGlqZHNsaW1pZXQsICVsdSBtYXhpbXVtLCAlbHUgbnVcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiBvbmRlcmJyZWtpbmdlbi9zZWM7ICVmIG9udHZhbmdlbiAodGVrZW5zL3NlYylcbiIKKworIzogc3lzLXV0aWxzL2RtZXNnLmM6NDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstbiBsZXZlbF0gWy1yXSBbLXMgYnVmc2l6ZV1cbiIKK21zZ3N0ciAiR2VicnVpazogICVzIFstY10gWy1uIG5pdmVhdV0gWy1zIGJ1ZmZlcmdyb290dGVdXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGZpbGVuYW1lPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIkdlYnJ1aWs6ICAlcyBbb3B0aWVzXSBhcHBhcmFhdCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlZvb3IgbWVlciBpbmZvcm1hdGllIHppZSBzZXRhcmNoKDgpLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3CisjLCBmdXp6eQorbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgIlRlIHdlaW5pZyBhcmd1bWVudGVuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ5CisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgbGVuZ3RoIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiT25nZWxkaWdlIGRyZW1wZWx3YWFyZGU6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTEKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJPbmdlbGRpZ2UgZHJlbXBlbHdhYXJkZTogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MworIywgZnV6enkKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICJHZWVuIG9wdGllIC0tZGF0ZSBnZWdldmVuLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTczCittc2dpZCAia2VlcCBzaXplIG1vZGUgKC1uIG9wdGlvbikgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhbGxvY2F0ZSBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkoKSBpcyBtaXNsdWt0XG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MTkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgcmVxdWlyZXMgZXhhY3RseSBvbmUgY29tbWFuZCBhcmd1bWVudFxuIgorbXNnc3RyICIlcyB2ZXJlaXN0IGVlbiBhcmd1bWVudFxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBrYW4gJXMgbmlldCBvcGVuZW46ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBudW1iZXI6ICVzXG4iCittc2dzdHIgIiVzOiBvbmdlbGRpZ2Ugd2FhcmRlXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjI5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICJmb3JrKCkgaXMgbWlzbHVrdFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyJcbiIKK21zZ3N0ciAiR2VicnVpazogICVzIFtvcHRpZXNdIGFwcGFyYWF0IC4uLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6OTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaXBjbWsoMSkuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWb29yIG1lZXIgaW5mb3JtYXRpZSB6aWUgc2V0YXJjaCg4KS5cbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQyCittc2dpZCAiY3JlYXRlIHNoYXJlIG1lbW9yeSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaGFyZWQgbWVtb3J5IGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisiR2VkZWVsZCBnZWhldWdlbnNlZ21lbnQgbWV0IHNobS1JRD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIHF1ZXVlIGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisiQmVyaWNodHdhY2h0cmlqIG1ldCBtc3EtSUQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4CisjLCBmdXp6eQorbXNnaWQgImNyZWF0ZSBzZW1hcGhvcmUgZmFpbGVkIgorbXNnc3RyICJnZXJlc2VydmVlcmRlIHNlbWFmb3JlbiA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2VtYXBob3JlIGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisiU2VtYWZvb3JhcnJheSBtZXQgc2VtLUlEPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjY0CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWQ6ICVzXG4iCittc2dzdHIgIm9uZ2VsZGlnIElEOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAia2FuIElEICVzIG5pZXQgdmVyd2lqZGVyZW4gKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJkZXByZWNhdGVkIHVzYWdlOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKK21zZ3N0ciAiQWZnZXJhZGVuIGdlYnJ1aWs6ICAlcyBbc2htIHwgbXNnIHwgc2VtXSBJRCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gcmVzb3VyY2UgdHlwZTogJXNcbiIKK21zZ3N0ciAib25iZWtlbmRlIGJyb25zb29ydDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAiYnJvbihuZW4pIHZlcndpamRlcmRcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisiR2VicnVpazogICVzIFsgWy1xIG1zcV9JRF0gWy1tIHNobV9JRF0gWy1zIHNlbV9JRF1cbiIKKyIgICAgICAgICAgICAgICAgICBbLVEgbXNxX3NsZXV0ZWxdIFstTSBzaG1fc2xldXRlbF0gWy1TIHNlbV9zbGV1dGVsXSAuLi4gXVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCittc2dzdHIgIiVzOiBvbmdlbGRpZ2Ugb3B0aWUgLS0gJWNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGtleSAoJXMpXG4iCittc2dzdHIgIiVzOiBvbmdlbGRpZ2Ugc2xldXRlbCAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwNiBzeXMtdXRpbHMvaXBjcm0uYzoyMzgKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICJ0b2VnYW5nIGdld2VpZ2VyZCB2b29yIHNsZXV0ZWwiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwOSBzeXMtdXRpbHMvaXBjcm0uYzoyNDgKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQga2V5IgorbXNnc3RyICJzbGV1dGVsIGlzIGFsIHZlcndpamRlcmQiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxMiBzeXMtdXRpbHMvaXBjcm0uYzoyNDMKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAib25nZWxkaWdlIHNsZXV0ZWwiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxNSBzeXMtdXRpbHMvaXBjcm0uYzoyNTMKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGtleSIKK21zZ3N0ciAib25iZWtlbmRlIGZvdXQgaW4gc2xldXRlbCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjM5Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGlkIgorbXNnc3RyICJ0b2VnYW5nIGdld2VpZ2VyZCB2b29yIElEIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICJvbmdlbGRpZyBJRCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ5Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGlkIgorbXNnc3RyICJJRCBpcyBhbCB2ZXJ3aWpkZXJkIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICJvbmJla2VuZGUgZm91dCBpbiBJRCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiVzOiAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIKK21zZ3N0ciAiJXM6IG9uYmVrZW5kIGFyZ3VtZW50OiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZSA6ICVzIC1hc21xIC10Y2x1cCBcbiIKK21zZ3N0ciAiR2VicnVpazogICVzIC1hc21xIC10Y2x1cFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKK21zZ3N0ciAiICAgICAgICAgICVzIFstc10gWy1tXSBbLXFdIC1pIElEXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIiAgICAgICAgICAlcyAtaCAgKHZvb3IgaHVscClcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzIGZvciB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKK21zZ3N0ciAiIgorIiVzIGdlZWZ0IGluZm9ybWF0aWUgb3ZlciBJUEMtdm9vcnppZW5pbmdlbiB3YWFydm9vciB1IGxlZXN0b2VnYW5nIGhlYnQuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJSZXNvdXJjZSBTcGVjaWZpY2F0aW9uOlxuIgorIlx0LW0gOiBzaGFyZWRfbWVtXG4iCisiXHQtcSA6IG1lc3NhZ2VzXG4iCittc2dzdHIgIiIKKyJCcm9ubmVua2V1emU6XG4iCisiICAgIC1tIDogZ2VkZWVsZCBnZWhldWdlblxuIgorIiAgICAtcSA6IGJlcmljaHRlblxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtcyA6IHNlbWFwaG9yZXNcbiIKKyJcdC1hIDogYWxsIChkZWZhdWx0KVxuIgorbXNnc3RyICIiCisiICAgIC1zIDogc2VtYWZvcmVuXG4iCisiICAgIC1hIDogYWxsZSAoaXMgc3RhbmRhYXJkKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3V0cHV0IEZvcm1hdDpcbiIKKyJcdC10IDogdGltZVxuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDogY3JlYXRvclxuIgorbXNnc3RyICIiCisiVWl0dm9lcmluZGVsaW5nOlxuIgorIiAgICAtdCA6IHRpamRcbiIKKyIgICAgLXAgOiBQSURcbiIKKyIgICAgLWMgOiBhYW5tYWtlclxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKyIgICAgLWwgOiBncmVuemVuXG4iCisiICAgIC11IDogc2FtZW52YXR0aW5nXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIKK21zZ3N0ciAiICAgIC1pIElEIFstc10gWy1tXSBbLXFdIDogZGV0YWlscyBvdmVyIGRlIG1ldCBJRCBhYW5nZWdldmVuIGJyb25cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iCittc2dzdHIgImtlcm5lbCBuaWV0IGluZ2VzdGVsZCB2b29yIGdlZGVlbGQgZ2VoZXVnZW5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBHZWRlZWxkIGdlaGV1Z2VuOiBncmVuemVuIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAibWF4aW11bSBhYW50YWwgc2VnbWVudGVuID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtYXhpbWFsZSBzZWdtZW50Z3Jvb3R0ZSAoa2lsb2J5dGVzKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAibWF4aW11bSB0b3RhYWwgZ2VkZWVsZCBnZWhldWdlbiAoa2lsb2J5dGVzKSA9ICVsbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWluIHNlZyBzaXplIChieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAibWluaW1hbGUgc2VnbWVudGdyb290dGUgKGJ5dGVzKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEdlZGVlbGQgZ2VoZXVnZW46IHN0YXR1cyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJzZWdtZW50cyBhbGxvY2F0ZWQgJWRcbiIKK21zZ3N0ciAiZ2VyZXNlcnZlZXJkZSBzZWdtZW50ZW4gPSAgJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgYWxsb2NhdGVkICVsZFxuIgorbXNnc3RyICJnZXJlc2VydmVlcmRlIHBhZ2luYSdzID0gJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc5CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHJlc2lkZW50ICAlbGRcbiIKK21zZ3N0ciAicGFnaW5hJ3MgaW4gZ2VoZXVnZW4gPSAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgc3dhcHBlZCAgICVsZFxuIgorbXNnc3RyICJwYWdpbmEncyBpbiB3aXNzZWxnZWhldWdlbiA9ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJTd2FwIHBlcmZvcm1hbmNlOiAlbGQgYXR0ZW1wdHNcdCAlbGQgc3VjY2Vzc2VzXG4iCittc2dzdHIgIldpc3NlbGdlaGV1Z2VucHJlc3RhdGllczogJWxkIHBvZ2luZ2VuLCAlbGQgc3VjY2Vzdm9sXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBHZWRlZWxkIGdlaGV1Z2VuOiBzZWdtZW50YWFubWFrZXJzL2VpZ2VuYWFycyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAic2htLUlEIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAicmVjaHRlbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjdWlkIgorbXNnc3RyICJtYWtlci1VSUQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY2dpZCIKK21zZ3N0ciAibWFrZXItR0lEIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAiVUlEIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImdpZCIKK21zZ3N0ciAiR0lEIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gR2VkZWVsZCBnZWhldWdlbjogYWFuaGVjaHQvb250aGVjaHQvd2lqemlnaW5nc3RpamRlbiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgImVpZ2VuYWFyIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImF0dGFjaGVkIgorbXNnc3RyICJhYW5nZWhlY2h0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImRldGFjaGVkIgorbXNnc3RyICJvbnRoZWNodCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTUKK21zZ2lkICJjaGFuZ2VkIgorbXNnc3RyICJnZXdpanppZ2QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gR2VkZWVsZCBnZWhldWdlbjogYWFubWFrZXIvbGFhdHN0ZS1vcGVyYXRpZSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImNwaWQiCittc2dzdHIgIm1ha2VyLVBJRCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJsYWF0c3RlLVBJRCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEdlZGVlbGQgZ2VoZXVnZW46IHNlZ21lbnRlbiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAic2xldXRlbCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJieXRlcyIKK21zZ3N0ciAiYnl0ZXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAibmF0dGNoIgorbXNnc3RyICJnZWhlY2h0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAic3RhdHVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMyOSBzeXMtdXRpbHMvaXBjcy5jOjMzMSBzeXMtdXRpbHMvaXBjcy5jOjMzMworIzogc3lzLXV0aWxzL2lwY3MuYzo0NDQgc3lzLXV0aWxzL2lwY3MuYzo0NDYgc3lzLXV0aWxzL2lwY3MuYzo1NDUKKyM6IHN5cy11dGlscy9pcGNzLmM6NTQ3IHN5cy11dGlscy9pcGNzLmM6NTQ5IHN5cy11dGlscy9pcGNzLmM6NjAwCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMiBzeXMtdXRpbHMvaXBjcy5jOjYzMCBzeXMtdXRpbHMvaXBjcy5jOjYzMgorIzogc3lzLXV0aWxzL2lwY3MuYzo2MzQgc3lzLXV0aWxzL2lwY3MuYzo2NTcKK21zZ2lkICJOb3Qgc2V0IgorbXNnc3RyICIoZ2VlbikiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAiZG9lbCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjIKK21zZ2lkICJsb2NrZWQiCittc2dzdHIgInZlcmdyZW5kZWxkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAiZGV6ZSBrZXJuZWwga2VudCBnZWVuIHNlbWFmb3JlblxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VtYWZvcmVuOiBncmVuemVuIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2YgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAibWF4aW11bSBhYW50YWwgYXJyYXlzID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAibWF4aW11bSBhYW50YWwgc2VtYWZvcmVuIHBlciBhcnJheSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAibWF4aW11bSBhYW50YWwgc2VtYWZvcmVuIHN5c3RlZW13aWpkID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG9wcyBwZXIgc2Vtb3AgY2FsbCA9ICVkXG4iCittc2dzdHIgIm1heGltdW0gYWFudGFsIG9wZXJhdGllcyBwZXIgc2Vtb3AoKS1hYW5yb2VwID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VtYXBob3JlIG1heCB2YWx1ZSA9ICVkXG4iCittc2dzdHIgIm1heGltYWxlIHNlbWFmb29yd2FhcmRlID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNlbWFmb3Jlbjogc3RhdHVzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAiZ2VicnVpa3RlIGFycmF5cyA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBzZW1hcGhvcmVzID0gJWRcbiIKK21zZ3N0ciAiZ2VyZXNlcnZlZXJkZSBzZW1hZm9yZW4gPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNlbWFmb3JlbjogYXJyYXlhYW5tYWtlcnMvZWlnZW5hYXJzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAic2VtaWQiCittc2dzdHIgInNlbS1JRCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBPcGVyYXRpb24vQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZW1hZm9yZW46IG9wZXJhdGllL3dpanppZ2luZ3N0aWpkZW4gLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICJsYWF0c3RlIG9wZXJhdGllIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3QtY2hhbmdlZCIKK21zZ3N0ciAibGFhdHN0IGdld2lqemlnZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNlbWFmb3JlbjogYXJyYXlzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAibnNlbXMiCittc2dzdHIgIm5zZW1zIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIG1lc3NhZ2UgcXVldWVzXG4iCittc2dzdHIgImtlcm5lbCBuaWV0IGluZ2VzdGVsZCB2b29yIGJlcmljaHR3YWNodHJpamVuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBCZXJpY2h0ZW46IGdyZW56ZW4gLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm1heGltdW0gYWFudGFsIHdhY2h0cmlqZW4gc3lzdGVlbXdpamQgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2l6ZSBvZiBtZXNzYWdlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJtYXhpbXVtZ3Jvb3R0ZSB2YW4gYmVyaWNodCAoYnl0ZXMpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVmYXVsdCBtYXggc2l6ZSBvZiBxdWV1ZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAic3RhbmRhYXJkLW1heGltdW1ncm9vdHRlIHZhbiB3YWNodHJpaiAoYnl0ZXMpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEJlcmljaHRlbjogc3RhdHVzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk4CisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBxdWV1ZXMgPSAlZFxuIgorbXNnc3RyICJnZXJlc2VydmVlcmRlIHdhY2h0cmlqZW4gPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGhlYWRlcnMgPSAlZFxuIgorbXNnc3RyICJnZWJydWlrdGUga29wcGVuID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBzcGFjZSA9ICVkIGJ5dGVzXG4iCittc2dzdHIgImdlYnJ1aWt0ZSBydWltdGUgPSAlZCBieXRlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXM6IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gQmVyaWNodHdhY2h0cmlqZW46IGFhbm1ha2Vycy9laWdlbmFhcnMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgIm1zcS1JRCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEJlcmljaHR3YWNodHJpamVuOiB2ZXJ6ZW5kL29udHZhbmcvd2lqemlnaW5nc3RpamRlbiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgInZlcnplbmRpbmciCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAicmVjdiIKK21zZ3N0ciAib250dmFuZ3N0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgImNoYW5nZSIKK21zZ3N0ciAid2lqemlnaW5nIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gQmVyaWNodHdhY2h0cmlqZW46IFBJRCdzIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgImxhLnplLlBJRCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAibGEub3YuUElEIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEJlcmljaHR3YWNodHJpamVuIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAidXNlZC1ieXRlcyIKK21zZ3N0ciAiZ2VicnVpa3QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAibWVzc2FnZXMiCittc2dzdHIgImJlcmljaHRlbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1ODkKKyMsIGZ1enp5Cittc2dpZCAic2htY3RsIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMoKSBpcyBtaXNsdWt0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2hhcmVkIG1lbW9yeSBTZWdtZW50IHNobWlkPSVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJHZWRlZWxkIGdlaGV1Z2Vuc2VnbWVudCBtZXQgc2htLUlEPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgIlVJRD0lZCAgR0lEPSVkLCAgbWFrZXItVUlEPSVkXHQgIG1ha2VyLUdJRD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjb1x0YWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJtb2R1cz0lI28gIHRvZWdhbmdzcmVjaHRlbj0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCittc2dzdHIgImJ5dGVzPSVsZCAgbGFhdHN0ZS1QSUQ9JWQgIG1ha2VyLVBJRD0lZCAgYWFuaGVjaHRpbmdlbj0lbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYXR0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiYWFuaGVjaHR0aWpkICAgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJvbnRoZWNodHRpamQgICA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAzIHN5cy11dGlscy9pcGNzLmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIndpanppZ2luZ3N0aWpkID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTUKKyMsIGZ1enp5Cittc2dpZCAibXNnY3RsIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMoKSBpcyBtaXNsdWt0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiQmVyaWNodHdhY2h0cmlqIG1ldCBtc3EtSUQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgIlVJRD0lZCAgR0lEPSVkLCAgbWFrZXItVUlEPSVkICBtYWtlci1HSUQ9JWQsICBtb2R1cz0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICIiCisiZ2VicnVpa3RlIGJ5dGVzPSVsZCAgd2FjaHRyaWpieXRlcz0lbGQgIGFhbnRhbCBiZXJpY2h0ZW49JWxkXG4iCisibGFhdHN0ZS16ZW5kZXItUElEPSVkICBsYWF0c3RlLW9udHZhbmdlci1QSUQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VuZF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgInZlcnplbmR0aWpkICAgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJvbnR2YW5nc3R0aWpkID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKKyMsIGZ1enp5Cittc2dpZCAic2VtY3RsIGZhaWxlZCIKK21zZ3N0ciAiJ3NlZWsnIGlzIG1pc2x1a3QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZW1hcGhvcmUgQXJyYXkgc2VtaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlbWFmb29yYXJyYXkgbWV0IHNlbS1JRD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJVSUQ9JWQgIEdJRD0lZCwgIG1ha2VyLVVJRD0lZCAgbWFrZXItR0lEPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZHVzPSUjbywgdG9lZ2FuZ3NyZWNodGVuPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJuc2VtcyA9ICVsZFxuIgorbXNnc3RyICJhYW50YWwgc2VtYWZvcmVuID0gJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm90aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAibGFhdHN0ZSBvcGVyYXRpZXRpamQgICA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImN0aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAibGFhdHN0ZSB3aWp6aWdpbmdzdGlqZCA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAic2VtbnVtIgorbXNnc3RyICJzZW1udW0iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAidmFsdWUiCittc2dzdHIgIndhYXJkZSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJuY291bnQiCittc2dzdHIgIm5jb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ6Y291bnQiCittc2dzdHIgInpjb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJwaWQiCittc2dzdHIgIlBJRCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorbXNnc3RyICIiCisiXG4iCisiR2VicnVpazogICVzIFstZGhWNzhuZW8xMl0gWy1zIDxzbmVsaGVpZD5dIDxsaWpucHJvdG9jb2w+IDxhcHBhcmFhdD5cbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6OTEKK21zZ2lkICIiCisiXG4iCisiS25vd24gPGxkaXNjPiBuYW1lczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIk1vZ2VsaWprZSBsaWpucHJvdG9jb2xsZW4gemlqbjpcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgc3BlZWQ6ICVzIgorbXNnc3RyICJvbmdlbGRpZ2Ugc25lbGhlaWQ6ICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibGRhdHRhY2ggZnJvbSAlc1xuIgorbXNnc3RyICJsZGF0dGFjaCAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE4NCB0ZXh0LXV0aWxzL3RhaWxmLmM6MjA2Cittc2dpZCAiaW52YWxpZCBvcHRpb24iCittc2dzdHIgIm9uZ2VsZGlnZSBvcHRpZSIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgbGluZSBkaXNjaXBsaW5lOiAlcyIKK21zZ3N0ciAib25nZWxkaWcgbGlqbnByb3RvY29sOiAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIHNlcmlhbCBsaW5lIgorbXNnc3RyICIlcyBpcyBnZWVuIHNlcmnDq2xlIGxpam4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJrYW4gdGVybWluYWxlaWdlbnNjaGFwcGVuIHZhbiAlcyBuaWV0IGJlcGFsZW4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAic25lbGhlaWQgJWQgaXMgbmlldCBtb2dlbGlqayIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgImthbiB0ZXJtaW5hbGVpZ2Vuc2NoYXBwZW4gdmFuICVzIG5pZXQgaW5zdGVsbGVuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKK21zZ2lkICJjYW5ub3Qgc2V0IGxpbmUgZGlzY2lwbGluZSIKK21zZ3N0ciAia2FuIGxpam5wcm90b2NvbCBuaWV0IGluc3RlbGxlbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3Cittc2dpZCAiY2Fubm90IGRhZW1vbml6ZSIKK21zZ3N0ciAia2FuIGVyIGdlZW4gYWNodGVyZ3JvbmRzZXJ2aWNlIHZhbiBtYWtlbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQKKyMsIGZ1enp5Cittc2dpZCAibm9uZSIKK21zZ3N0ciAiZ2VlbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUKK21zZ2lkICJwYXJhIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2Cittc2dpZCAiZnVsbCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxMzcgc3lzLXV0aWxzL2xzY3B1LmM6MTYwIHN5cy11dGlscy9sc2NwdS5jOjQ1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzIgorbXNnc3RyICJGb3V0IGluIHJlZ3VsaWVyZSBleHByZXNzaWU6ICIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgImZvdXQgYmlqIGxlemVuIHZhbiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgInNjaHJpanZlbiBuYWFyIHN0YW5kYWFyZHVpdHZvZXIgaXMgbWlzbHVrdCIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MjY3CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiB1bmFtZSBmYWlsZWQiCittc2dzdHIgImZvdXQ6IGthbiBVVUlEIG5pZXQgb250bGVkZW4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorIywgZnV6enkKK21zZ2lkICJlcnJvcjogbWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jKCkgaXMgbWlzbHVrdCIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTIxCittc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzYWJsZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNgorbXNnaWQgIkNvcmUocykgcGVyIHNvY2tldDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMxCittc2dpZCAiTlVNQSBub2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzMKK21zZ2lkICJWZW5kb3IgSUQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzkKK21zZ2lkICJTdGVwcGluZzoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQxCittc2dpZCAiQ1BVIE1IejoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorIywgZnV6enkKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIk91ZGUgc2l0dWF0aWU6XG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIkdlYnJ1aWs6ICAlcyBbb3B0aWVzXSBhcHBhcmFhdCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjcxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgImZvdXQgYmlqIHdpanppZ2VuIHZhbiBtb2R1cyB2YW4gJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzcKK21zZ2lkICJ1c2FnZTogcmRldiBbIC1ydiBdIFsgLW8gT0ZGU0VUIF0gWyBJTUFHRSBbIFZBTFVFIFsgT0ZGU0VUIF0gXSBdIgorbXNnc3RyICIiCisiR2VicnVpazogIHJkZXYgWyAtcnYgXSBbIC1vIFBMQUFUUyBdIFsgQUZCRUVMRElORyBbIFdBQVJERSBbIFBMQUFUUyBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAgKG9mIHJkZXYgL2xpbnV4LCBlbnouKSAgaHVpZGlnIFJPT1QtYXBwYXJhYXQgdG9uZW4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIFJPT1QgaW5zdGVsbGVuIG9wIC9kZXYvaGRhMiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiIgorIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBST09URkxBR1MgaW5zdGVsbGVuIChhbGxlZW4tbGV6ZW5zdGF0dXMpIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgxCittc2dpZCAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIHNldCB0aGUgUkFNRElTSyBzaXplIgorbXNnc3RyICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgUkFNRElTSy1ncm9vdHRlIGluc3RlbGxlbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBWSURFT01PRFVTIGJpaiBvcHN0YXJ0ZW4gaW5zdGVsbGVuIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgzCittc2dpZCAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHVzZSB0aGUgYnl0ZSBvZmZzZXQgTiIKK21zZ3N0ciAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIGRlIGJ5dGVwbGFhdHMgTiBnZWJydWlrZW4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODQKK21zZ2lkICIgIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1SIgorbXNnc3RyICIgIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAgaXMgaGV0emVsZmRlIGFscyByZGV2IC1SIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIGlzIGhldHplbGZkZSBhbHMgcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBpcyBoZXR6ZWxmZGUgYWxzIHJkZXYgLXYiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODcKK21zZ2lkICIiCisiTm90ZTogdmlkZW8gbW9kZXMgYXJlOiAtMz1Bc2ssIC0yPUV4dGVuZGVkLCAtMT1Ob3JtYWxWZ2EsIDE9a2V5MSwgMj1rZXkyLC4uLiIKK21zZ3N0ciAiIgorIk9wbWVya2luZzogdmlkZW9tb2RpIHppam46IC0zPXZyYWdlbiwgLTI9dWl0Z2VicmVpZCwgLTE9Z2V3b29uLFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgIDE9c2xldXRlbDEsIDI9c2xldXRlbDIsIC4uLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4OAorbXNnaWQgIiAgICAgIHVzZSAtUiAxIHRvIG1vdW50IHJvb3QgcmVhZG9ubHksIC1SIDAgZm9yIHJlYWQvd3JpdGUuIgorbXNnc3RyICIiCisiR2VicnVpayAnLVIgMScgb20gcm9vdCBhbHMgYWxsZWVuLWxlemVuIGFhbiB0ZSBrb3BwZWxlbixcbiIKKyIgICAgIG9mICctUiAwJyB2b29yIGxlemVuLWVuLXNjaHJpanZlbi4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAia29tbWEgb250YnJlZWt0IgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo3MiB0ZXh0LXV0aWxzL21vcmUuYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAib252b2xkb2VuZGUgZ2VoZXVnZW4gYmVzY2hpa2JhYXIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiBcIiVzIFtvcHRpb25zXVxuIgorIlx0IC1tIDxtYXBmaWxlPiAgKGRlZmF1bHRzOiBcIiVzXCIgYW5kXG4iCisiXHRcdFx0XHQgIFwiJXNcIilcbiIKKyJcdCAtcCA8cHJvLWZpbGU+IChkZWZhdWx0OiBcIiVzXCIpXG4iCisiXHQgLU0gPG11bHQ+ICAgICBzZXQgdGhlIHByb2ZpbGluZyBtdWx0aXBsaWVyIHRvIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICAgcHJpbnQgb25seSBpbmZvIGFib3V0IHRoZSBzYW1wbGluZyBzdGVwXG4iCisiXHQgLXYgICAgICAgICAgICBwcmludCB2ZXJib3NlIGRhdGFcbiIKKyJcdCAtYSAgICAgICAgICAgIHByaW50IGFsbCBzeW1ib2xzLCBldmVuIGlmIGNvdW50IGlzIDBcbiIKKyJcdCAtYiAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgaGlzdG9ncmFtLWJpbiBjb3VudHNcbiIKKyJcdCAtcyAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgY291bnRlcnMgd2l0aGluIGZ1bmN0aW9uc1xuIgorIlx0IC1yICAgICAgICAgICAgcmVzZXQgYWxsIHRoZSBjb3VudGVycyAocm9vdCBvbmx5KVxuIgorIlx0IC1uICAgICAgICAgICAgZGlzYWJsZSBieXRlIG9yZGVyIGF1dG8tZGV0ZWN0aW9uXG4iCisiXHQgLVYgICAgICAgICAgICBwcmludCB2ZXJzaW9uIGFuZCBleGl0XG4iCittc2dzdHIgIiIKKyIlczogR2VicnVpazogICVzIFtvcHRpZXNdXG4iCisiICAtTSA8bXVsdD4gIHByb2ZpbGVlcnZlcm1lbmlndnVsZGlnZXIgb3AgPG11bHQ+IGluc3RlbGxlblxuIgorIiAgLW0gPHN5bWJvbGVuYmVzdGFuZD4gICAoc3RhbmRhYXJkOiAlcyBlblxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlcylcbiIKKyIgIC1wIDxwcm9maWxlZXJiZXN0YW5kPiAgKHN0YW5kYWFyZDogJXMpXG4iCisiICAtYSAgICAgICAgIGFsbGUgc3ltYm9sZW4gdG9uZW4sIG9vayBhbHMgaGV0IGFhbnRhbCBudWwgaXNcbiIKKyIgIC1iICAgICAgICAgaW5kaXZpZHVlbGUgaGlzdG9ncmFtYmFsay1hYW50YWxsZW4gd2VlcmdldmVuXG4iCisiICAtaSAgICAgICAgIGFsbGVlbiBpbmZvIG92ZXIgYmVtb25zdGVyaW5nc3N0YXAgdG9uZW5cbiIKKyIgIC1uICAgICAgICAgYXV0b2RldGVjdGllIHZhbiBieXRldm9sZ29yZGUgdWl0emV0dGVuXG4iCisiICAtciAgICAgICAgIGFsbGUgdGVsbGVycyBvcG5pZXV3IG9wIG51bCBpbnN0ZWxsZW4gKGFsbGVlbiBkb29yIHJvb3QpXG4iCisiICAtcyAgICAgICAgIGluZGl2aWR1ZWxlIHRlbGxlcnMgaW4gZnVuY3RpZXMgd2VlcmdldmVuXG4iCisiICAtdiAgICAgICAgIGdlZGV0YWlsbGVlcmRlIHVpdHZvZXIgcHJvZHVjZXJlblxuIgorIiAgLVYgICAgICAgICBwcm9ncmFtbWF2ZXJzaWUgdG9uZW5cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJyZWFkcHJvZmlsZTogZm91dCBiaWogc2NocmlqdmVuIHZhbiAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuIFVzZSAtbiB0byBmb3JjZSBuYXRpdmUgYnl0ZSBvcmRlci5cbiIKK21zZ3N0ciAiIgorIk9tZ2VrZWVyZGUgYnl0ZS12b2xnb3JkZSB3b3JkdCBhYW5nZW5vbWVuLlxuIgorIkdlYnJ1aWsgJy1uJyBvbSBkZSB3ZXJrZWxpamtlIGJ5dGUtdm9sZ29yZGUgdGUgZ2VicnVpa2VuLlxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiQmVtb25zdGVyaW5nc3N0YXA6ICVpXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMwNSBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzKCVpKTogd3JvbmcgbWFwIGxpbmVcbiIKK21zZ3N0ciAiJXM6ICVzKCVpKTogZm91dGlldmUgcmVnZWwgaW4gc3ltYm9sZW5iZXN0YW5kXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBcIl9zdGV4dFwiIGluICVzXG4iCittc2dzdHIgIiVzOiBrYW4gXCJfc3RleHRcIiBuaWV0IHZpbmRlbiBpbiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIlczogcHJvZmlsZXJpbmdzYWRyZXMgdmFsdCBidWl0ZW4gYmVyZWlrLiAgVmVya2VlcmQgc3ltYm9sZW5iZXN0YW5kP1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo0MTIKK21zZ2lkICJ0b3RhbCIKK21zZ3N0ciAidG90YWFsIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6NTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJHZWJydWlrOlxuIgorIiAgcmVuaWNlIHByaW9yaXR5IFstcHwtLXBpZF0gUElELi4uXG4iCisiICByZW5pY2UgcHJpb3JpdHkgIC1nfC0tcGdycCBQR0lELi4uXG4iCisiICByZW5pY2UgcHJpb3JpdHkgIC11fC0tdXNlciBnZWJydWlrZXIuLi5cbiIKKyIgIHJlbmljZSAtaCB8IC0taGVscFxuIgorIiAgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICJyZW5pY2UgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiBvbmJla2VuZGUgZ2VicnVpa2VyXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IG9uZ2VsZGlnZSB3YWFyZGVcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1MiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY0Cittc2dpZCAiZ2V0cHJpb3JpdHkiCittc2dzdHIgImdldHByaW9yaXR5KCkiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTcKK21zZ2lkICJzZXRwcmlvcml0eSIKK21zZ3N0ciAic2V0cHJpb3JpdHkoKSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6IG91ZGUgcHJpb3JpdGVpdCBpcyAlZCwgbmlldXdlIHByaW9yaXRlaXQgaXMgJWRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisiR2VicnVpazogICVzIFtvcHRpZXNdXG4iCisiXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGFwcGFyYWF0PiAgIHRlIGdlYnJ1aWtlbiBoYXJkd2Fya2xvayAocnRjMHxydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICAgZGUgaGFyZHdhcmVrbG9rIGJldmF0IGxva2FsZSB0aWpkXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgIHNsYWFwbW9kdXMgKHN0YW5kYnl8bWVtfC4uLilcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZGVuPiAgYWFudGFsIHRlIHNsYXBlbiBzZWNvbmRlblxuIgorIiAgICAtdCB8IC0tdGltZSA8dGlqZHN0aXA+ICAgICBvbnR3YWtpbmdzdGlqZHN0aXBcbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICAgZGUgaGFyZHdhcmVrbG9rIGJldmF0IFVUQ1xuIgorIiAgICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgICBnZWRldGFpbGxlZXJkZSB1aXR2b2VyIHByb2R1Y2VyZW5cbiIKKyIgICAgLVYgfCAtLXZlcnNpb24gICAgICAgICAgICAgcHJvZ3JhbW1hdmVyc2llIHRvbmVuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAibGV6ZW4gdmFuIGhhcmR3YXJla2xvayIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDcKK21zZ2lkICJyZWFkIHN5c3RlbSB0aW1lIgorbXNnc3RyICJsZXplbiB2YW4gc3lzdGVlbXRpamQiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTY1Cittc2dpZCAiY29udmVydCBydGMgdGltZSIKK21zZ3N0ciAib216ZXR0ZW4gdmFuIGhhcmR3YXJla2xva3RpamQiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI0Cittc2dpZCAic2V0IHJ0YyBhbGFybSIKK21zZ3N0ciAiemV0dGVuIHZhbiBkZSB3ZWtrZXIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI4Cittc2dpZCAiZW5hYmxlIHJ0YyBhbGFybSIKK21zZ3N0ciAiYWFuemV0dGVuIHZhbiBkZSB3ZWtrZXIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjMyCittc2dpZCAic2V0IHJ0YyB3YWtlIGFsYXJtIgorbXNnc3RyICJ6ZXR0ZW4gdmFuIGRlIHdla2tlciIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVucmVjb2duaXplZCBzdXNwZW5kIHN0YXRlICclcydcbiIKK21zZ3N0ciAiJXM6IG9uYmVrZW5kZSBzbGFhcHRvZXN0YW5kICclcydcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICIlczogb25nZWxkaWcgaW50ZXJ2YWw6ICVzIHNlY29uZGVuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIHRpbWVfdCB2YWx1ZSAlc1xuIgorbXNnc3RyICIlczogb25nZWxkaWdlIHdhYXJkZSAlcyB2b29yIG9udHdha2luZ3N0aWpkc3RpcFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIlczogdmVyc2llICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhc3N1bWluZyBSVEMgdXNlcyBVVEMgLi4uXG4iCittc2dzdHIgIiVzOiBhYW5nZW5vbWVuIHdvcmR0IGRhdCBkZSBoYXJkd2FyZWtsb2sgVVRDIGJldmF0Li4uXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIFVUQyB0aW1lLlxuIgorbXNnc3RyICJVVEMgd29yZHQgZ2VicnVpa3QuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGxvY2FsIHRpbWUuXG4iCittc2dzdHIgIkxva2FsZSB0aWpkIHdvcmR0IGdlYnJ1aWt0LlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIgorbXNnc3RyICIlczogdSBkaWVudCBlZW4gd2VrdGlqZCBvcCB0ZSBnZXZlbiwgdmlhICctcycgb2YgJy10J1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQxNworbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAib252b2xkb2VuZGUgZ2VoZXVnZW4gYmVzY2hpa2JhYXIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgZW5hYmxlZCBmb3Igd2FrZXVwIGV2ZW50c1xuIgorbXNnc3RyICIlczogd2VrZ2ViZXVydGVuaXNzZW4gdm9vciAlcyB6aWpuIG5pZXQgaW5nZXNjaGFrZWxkXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAid2VrdGlqZHN0aXAgJWxkLCBzeXN0ZWVtdGlqZCAlbGQsIGhhcmR3YXJla2xva3RpamQgJWxkLCBzZWNvbmRlbiAldVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGltZSBkb2Vzbid0IGdvIGJhY2t3YXJkIHRvICVzXG4iCittc2dzdHIgIiVzOiB0aWpkIGxvb3B0IG5pZXQgYWNodGVydWl0IG5hYXIgJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdha2V1cCBmcm9tIFwiJXNcIiB1c2luZyAlcyBhdCAlc1xuIgorbXNnc3RyICIlczogb250d2FraW5nIHVpdCAnJXMnIHZpYSAlcyBvcCAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIlczoga2FuICVzIG5pZXQgaGVybGFiZWxlbiBuYWFyICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ5NgorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICJsZXplbiB2YW4gaGFyZHdhcmVrbG9rIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjUwNQorbXNnaWQgImRpc2FibGUgcnRjIGFsYXJtIGludGVycnVwdCIKK21zZ3N0ciAidWl0c2NoYWtlbGVuIHZhbiBoYXJkd2FyZWtsb2staW50ZXJydXB0IgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGluZyBvbiAlcy5cbiIKK21zZ3N0ciAiQWFuemV0dGVuIHZhbiAlcy5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJHZWJydWlrOiAgJXMlcyBbb3B0aWVzXSBbcHJvZ3JhbW1hIFtwcm9ncmFtbWEtYXJndW1lbnRlbl1dXG4iCisiXG4iCisiT3B0aWVzOlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAtdiwgLS12ZXJib3NlICAgICAgICAgICAgc2F5cyB3aGF0IG9wdGlvbnMgYXJlIGJlaW5nIHN3aXRjaGVkIG9uXG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplICBkaXNhYmxlcyByYW5kb21pemF0aW9uIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3MgIgorInNwYWNlXG4iCisiIC1GLCAtLWZkcGljLWZ1bmNwdHJzICAgICBtYWtlcyBmdW5jdGlvbiBwb2ludGVycyBwb2ludCB0byBkZXNjcmlwdG9yc1xuIgorIiAtWiwgLS1tbWFwLXBhZ2UtemVybyAgICAgdHVybnMgb24gTU1BUF9QQUdFX1pFUk9cbiIKKyIgLUwsIC0tYWRkci1jb21wYXQtbGF5b3V0IGNoYW5nZXMgdGhlIHdheSB2aXJ0dWFsIG1lbW9yeSBpcyBhbGxvY2F0ZWRcbiIKKyIgLVgsIC0tcmVhZC1pbXBsaWVzLWV4ZWMgIHR1cm5zIG9uIFJFQURfSU1QTElFU19FWEVDXG4iCisiIC1CLCAtLTMyYml0ICAgICAgICAgICAgICB0dXJucyBvbiBBRERSX0xJTUlUXzMyQklUXG4iCisiIC1JLCAtLXNob3J0LWlub2RlICAgICAgICB0dXJucyBvbiBTSE9SVF9JTk9ERVxuIgorIiAtUywgLS13aG9sZS1zZWNvbmRzICAgICAgdHVybnMgb24gV0hPTEVfU0VDT05EU1xuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgdHVybnMgb24gU1RJQ0tZX1RJTUVPVVRTXG4iCisiIC0zLCAtLTNnYiAgICAgICAgICAgICAgICBsaW1pdHMgdGhlIHVzZWQgYWRkcmVzcyBzcGFjZSB0byBhIG1heGltdW0gb2YgMyAiCisiR0JcbiIKKyIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGlnbm9yZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkpXG4iCittc2dzdHIgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICAgICAgICBkZXplIGh1bHB0ZWtzdCB0b25lblxuIgorIiAtdiwgLS12ZXJib3NlICAgICAgICAgICAgIG1lbGRlbiB3ZWxrZSBvcHRpZXMgaW5nZXNjaGFrZWxkIHdvcmRlblxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgIGZ1bmN0aWVwb2ludGVycyBuYWFyIGRlc2NyaXB0b3JzIGxhdGVuIHdpanplblxuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgIEFERFJfTElNSVRfMzJCSVQgaW5zY2hha2VsZW5cbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgICBTSE9SVF9JTk9ERSBpbnNjaGFrZWxlblxuIgorIiAtTCwgLS1hZGRyLWNvbXBhdC1sYXlvdXQgIHZpcnR1ZWVsIGdlaGV1Z2VuIG9wIGFuZGVyZSBtYW5pZXIgdG9ld2lqemVuXG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplICAgdmlydHVlbGUgYWRyZXNydWltdGUgbmlldCBodXNzZWxlblxuIgorIiAtUywgLS13aG9sZS1zZWNvbmRzICAgICAgIFdIT0xFX1NFQ09ORFMgaW5zY2hha2VsZW5cbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgICBTVElDS1lfVElNRU9VVFMgaW5zY2hha2VsZW5cbiIKKyIgLVgsIC0tcmVhZC1pbXBsaWVzLWV4ZWMgICBSRUFEX0lNUExJRVNfRVhFQyBpbnNjaGFrZWxlblxuIgorIiAtWiwgLS1tbWFwLXBhZ2UtemVybyAgICAgIE1NQVBfUEFHRV9aRVJPIGluc2NoYWtlbGVuXG4iCisiIC0zLCAtLTNnYiAgICAgICAgICAgICAgICAgZ2VicnVpa3RlIGFkcmVzcnVpbXRlIHRvdCAzIEdCIGJlcGVya2VuXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICAgKGdlbmVnZWVyZCwgc2xlY2h0cyBoZXJrZW5kIHZvb3IgIgorImNvbXBhdGliaWxpdGVpdClcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiVm9vciBtZWVyIGluZm9ybWF0aWUgemllIHNldGFyY2goOCkuXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJXNcbiIKKyJUcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyIlczogJXNcbiIKKyJUeXAgJyVzIC0taGVscCcgdm9vciBtZWVyIGluZm9ybWF0aWUuXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjE1IHN5cy11dGlscy9zZXRhcmNoLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIlczogT25iZWtlbmRlIGFyY2hpdGVjdHV1ciIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKK21zZ2lkICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK21zZ3N0ciAiVGUgd2VpbmlnIGFyZ3VtZW50ZW4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjY1IHN5cy11dGlscy9zZXRhcmNoLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBzZXQgcGVyc29uYWxpdHkgdG8gJXMiCittc2dzdHIgIkluc3RlbGxlbiB2YW4gc3lzdGVlbWVpZ2Vuc2NoYXBwZW4gdm9vciAlcyBpcyBtaXNsdWt0IgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgIkdlYnJ1aWs6ICAlcyBwcm9ncmFtbWEgW2FyZ3VtZW50IC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKyJHZWJydWlrOiAgJXMgPGFwcGFyYWF0PiBbIC1jIDxhYW50YWxfcG9naW5nZW5fYWx2b3JlbnNfdGVfc2xhcGVuPiB8XG4iCisiICAgICAgICAgIC10IDxzbGFhcHRpamQ+IHwgLXcgPHN0cm9iZV93YWNodHRpamQ+IHwgLWkgPElSUT4gfCAtYSBbb258b2ZmXSB8XG4iCisiICAgICAgICAgIC1DIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgLVQgW29ufG9mZl0gXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6OTEKK21zZ2lkICJtYWxsb2MgZXJyb3IiCittc2dzdHIgIm9udm9sZG9lbmRlIGdlaGV1Z2VuIGJlc2NoaWtiYWFyIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAiJXM6IG9uZ2VsZGlnZSB3YWFyZGVcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIKK21zZ3N0ciAiJXM6ICVzIGlzIGdlZW4gcHJpbnRlcmFwcGFyYWF0XG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3RhdHVzIGlzICVkIgorbXNnc3RyICJzdGF0dXMgdmFuICVzOiAlZCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiwgYmV6aWciCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCBnZXJlZWQiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiwgcGFwaWVyIGlzIG9wIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb24tbGluZSIKK21zZ3N0ciAiLCBzdGFhdCBhYW4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCBmb3V0IgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6Mjg1Cittc2dpZCAiTFBHRVRJUlEgZXJyb3IiCittc2dzdHIgImlvY3RsKExQR0VUSVJRKSBpcyBtaXNsdWt0IgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIlcyBnZWJydWlrdCBJUlEgJWRcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBwb2xsaW5nXG4iCittc2dzdHIgIiVzIHdvcmR0IGFjdGllZiBnZXBvbHN0XG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gPHByb2dyYW0+IFthcmdzLi4uXVxuIgorbXNnc3RyICJHZWJydWlrOiAgJXMgcHJvZ3JhbW1hIFthcmd1bWVudCAuLi5dXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjAKK21zZ2lkICIiCisiUnVuIHByb2dyYW0gd2l0aCBzb21lIG5hbWVzcGFjZXMgdW5zaGFyZWQgZnJvbSBwYXJlbnRcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgdW5zaGFyZSBtb3VudHMgbmFtZXNwYWNlXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIFVUUyBuYW1lc3BhY2UgKGhvc3RuYW1lIGV0YylcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorIiAgLW4sIC0tbmV0ICAgICAgICAgdW5zaGFyZSBuZXR3b3JrIG5hbWVzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdW5zaGFyZSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlZvb3IgbWVlciBpbmZvcm1hdGllIHppZSBzZXRhcmNoKDgpLlxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExNAorIywgZnV6enkKK21zZ2lkICJ1bnNoYXJlIGZhaWxlZCIKK21zZ3N0ciAiJ3NlZWsnIGlzIG1pc2x1a3QiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJleGVjICVzIGZhaWxlZCIKK21zZ3N0ciAidWl0dm9lcmVuIGlzIG1pc2x1a3RcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgImNvbDogb25nZWxkaWcgYXJndW1lbnQgJyVzJyB2YW4gJy1sJ1xuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sIFstYmZweF0gWy1sIG5saW5lXVxuIgorbXNnc3RyICJHZWJydWlrOiAgY29sIFstYmZweF0gWy1sIHRlX2J1ZmZlcmVuX2FhbnRhbF9yZWdlbHNdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd3JpdGUgZXJyb3IuXG4iCittc2dzdHIgImNvbDogc2NocmlqZmZvdXRcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6IFdhYXJzY2h1d2luZzoga2FuIG5pZXQgdGVydWcgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAicGFzdCBmaXJzdCBsaW5lIgorbXNnc3RyICJ0b3QgdsOzw7NyIGVlcnN0ZSByZWdlbCIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0gcmVnZWwgaXMgYWwgZG9vcmdlc3BvZWxkIgorCisjOiB0ZXh0LXV0aWxzL2NvbGNydC5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC0gXSBbIC0yIF0gWyBmaWxlIC4uLiBdXG4iCittc2dzdHIgIkdlYnJ1aWs6ICAlcyBbIC0gXSBbIC0yIF0gWyBiZXN0YW5kIC4uLiBdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mjk3Cittc2dpZCAibGluZSB0b28gbG9uZyIKK21zZ3N0ciAicmVnZWwgaXMgdGUgbGFuZyIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzozNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbHVtbiBbLXR4XSBbLWMgY29sdW1uc10gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJHZWJydWlrOiAgY29sdW1uIFstYyBhYW50YWxfa29sb21tZW5dIFstdF0gWy14XSBbYmVzdGFuZCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogb25nZWxkaWdlIHdhYXJkZSB2b29yIHRlX2ludGVycHJldGVyZW5fYWFudGFsXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IG9uZ2VsZGlnZSB3YWFyZGUgdm9vciBvdmVyX3RlX3NsYWFuX2FhbnRhbFxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbGVdIFstbiBsZW5ndGhdIFstcyBza2lwXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKyJHZWJydWlrOiAgaGV4ZHVtcCBbLWJjQ2RvdnhdIFstZSBvcG1hYWt0ZWtlbnJlZWtzXSBbLWYgb3BtYWFrYmVzdGFuZF1cbiIKKyIgICAgICAgICAgWy1uIHRlX2ludGVycHJldGVyZW5fYWFudGFsXSBbLXMgb3Zlcl90ZV9zbGFhbl9hYW50YWxdICIKKyJbYmVzdGFuZCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWy1kZmxwY3N1XSBbK2xpbmVudW0gfCArL3BhdHRlcm5dIG5hbWUxIG5hbWUyIC4uLlxuIgorbXNnc3RyICJHZWJydWlrOiAgJXMgWy1jZGZscHN1XSBbK3JlZ2VsbnVtbWVyIHwgKy9wYXRyb29uXSBuYWFtMSBuYWFtMiAuLi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICJSZXNlcnZlcmVuIHZhbiBidWZmZXIgaXMgbWlzbHVrdFxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gb3B0aW9uIFwiLSVjXCJcbiIKK21zZ3N0ciAiJXM6IG9uYmVrZW5kZSBvcHRpZSAnLSVjJ1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKiAlczogZGlyZWN0b3J5ICoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqICVzOiBtYXAgKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjU2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqKioqKiogJXM6IE5vdCBhIHRleHQgZmlsZSAqKioqKioqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqKioqKiogJXM6IEdlZW4gdGVrc3RiZXN0YW5kICoqKioqKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjY2NAorIywgYy1mb3JtYXQKK21zZ2lkICJbVXNlIHEgb3IgUSB0byBxdWl0XSIKK21zZ3N0ciAiW0dlYnJ1aWsgUSBvZiBxIG9tIGFmIHRlIHNsdWl0ZW5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1Nb3JlLS0iCittc2dzdHIgIi0tTWVlci0tIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiKE5leHQgZmlsZTogJXMpIgorbXNnc3RyICIoVm9sZ2VuZCBiZXN0YW5kOiAlcykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIltEcnVrIG9wIGRlIHNwYXRpZWJhbGsgb20gdmVyZGVyIHRlIGdhYW47ICdxJyBvbSBhZiB0ZSBzbHVpdGVuLl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uYmFjayAlZCBwYWdlcyIKK21zZ3N0ciAiLi4uJWQgcGFnaW5hJ3MgdGVydWciCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiLi4uMSBwYWdpbmEgdGVydWciCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTEKK21zZ2lkICIuLi5za2lwcGluZyBvbmUgbGluZSIKK21zZ3N0ciAiLi4uMSByZWdlbCBvdmVyc2xhYW5kIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICIuLi4lZCByZWdlbHMgb3ZlcnNsYWFuZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI5MAorbXNnaWQgIiIKKyJcbiIKKyIqKipCYWNrKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKipUZXJ1ZyoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzI4Cittc2dpZCAiIgorIlxuIgorIk1vc3QgY29tbWFuZHMgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBpbnRlZ2VyIGFyZ3VtZW50IGsuICBEZWZhdWx0cyBpbiAiCisiYnJhY2tldHMuXG4iCisiU3RhciAoKikgaW5kaWNhdGVzIGFyZ3VtZW50IGJlY29tZXMgbmV3IGRlZmF1bHQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBYW4gZGUgbWVlc3RlIG9wZHJhY2h0ZW4ga2FuIGVlbiBnZWhlZWwgZ2V0YWwgKGspIHZvb3JhZmdhYW4uXG4iCisiRGUgc3RhbmRhYXJkd2FhcmRlIHN0YWF0IHR1c3NlbiBoYWtlbi4gIEVlbiBzdGVyICgqKSBnZWVmdCBhYW5cbiIKKyJkYXQgZGUgd2FhcmRlIGsgZGUgbmlldXdlIHN0YW5kYWFyZGluc3RlbGxpbmcgd29yZHQuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMzUKK21zZ2lkICIiCisiPHNwYWNlPiAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFsxXSpcbiIKKyJkIG9yIGN0cmwtRCAgICAgICAgICAgICBTY3JvbGwgayBsaW5lcyBbY3VycmVudCBzY3JvbGwgc2l6ZSwgaW5pdGlhbGx5IDExXSpcbiIKKyJxIG9yIFEgb3IgPGludGVycnVwdD4gICBFeGl0IGZyb20gbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGxpbmVzIG9mIHRleHQgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorImIgb3IgY3RybC1CICAgICAgICAgICAgIFNraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGxpbmUgbnVtYmVyXG4iCisiLzxyZWd1bGFyIGV4cHJlc3Npb24+ICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiBsYXN0IHIuZSBbMV1cbiIKKyIhPGNtZD4gb3IgOiE8Y21kPiAgICAgICBFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBhdCBjdXJyZW50IGxpbmVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRyYXcgc2NyZWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIG5leHQgZmlsZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggcHJldmlvdXMgZmlsZSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCBwcmV2aW91cyBjb21tYW5kXG4iCittc2dzdHIgIiIKKyI8c3BhdGllPiAgICAgICAgICAgICAgICBEZSB2b2xnZW5kZSBrIHJlZ2VscyB0b25lbiAgW2h1aWRpZ2Ugc2NoZXJtZ3Jvb3R0ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEZSB2b2xnZW5kZSBrIHJlZ2VscyB0b25lbiAgW2h1aWRpZ2Ugc2NoZXJtZ3Jvb3R0ZV0iCisiKlxuIgorIjxlbnRlcj4gICAgICAgICAgICAgICAgIERlIHZvbGdlbmRlIGsgcmVnZWxzIHRvbmVuICBbMV0qXG4iCisiZCBvZiBjdHJsLUQgICAgICAgICAgICAgRGUgdGVrc3QgayByZWdlbHMgc2Nyb2xsZW4gIFsxMV0qXG4iCisicSBvZiBRIG9mIDxpbnRlcnJ1cHQ+ICAgQWZzbHVpdGVuXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgRWVuIHNjaGVybSB2ZXJkZXIgZW4gayByZWdlbHMgb3ZlcnNsYWFuICBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBFZW4gc2NoZXJtIHZlcmRlciBlbiBrIHNjaGVybWVuIG92ZXJzbGFhbiAgWzFdXG4iCisiYiBvZiBjdHJsLUIgICAgICAgICAgICAgRWVuIHNjaGVybSB0ZXJ1ZyBlbiBrIHNjaGVybWVuIG92ZXJzbGFhbiAgWzFdXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgSHVpZGlnZSByZWdlbG51bW1lciB0b25lblxuIgorIi88cmVndWxpZXJlIGV4cHJlc3NpZT4gIERlIGstZGUgb3ZlcmVlbmtvbXN0IHZhbiBkZXplIGV4cHJlc3NpZSB6b2VrZW4gIFsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgIERlIGstZGUgb3ZlcmVlbmtvbXN0IHZhbiB2b3JpZ2UgZXhwcmVzc2llIHpvZWtlbiAgIgorIlsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIFRlcnVnIG5hYXIgd2FhciBkZSB2b3JpZ2Ugem9la29wZHJhY2h0IHN0YXJ0dGVcbiIKKyIhPGNtZD4gb2YgOiE8Y21kPiAgICAgICBEZSBvcGRyYWNodCA8Y21kPiBpbiBlZW4gc3Vic2hlbGwgdWl0dm9lcmVuXG4iCisidiAgICAgICAgICAgICAgICAgICAgICAgRWRpdG9yIHN0YXJ0ZW4gKGJlZ2lubmVuZCBvcCBkZSBodWlkaWdlIHJlZ2VsKVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIEhldCBzY2hlcm0gdmVydmVyc2VuIChvcG5pZXV3IHRla2VuZW4pXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgTmFhciBoZXQgay1kZSB2b2xnZW5kZSBiZXN0YW5kICBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBOYWFyIGhldCBrLWRlIHZvcmlnZSBiZXN0YW5kICBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBIdWlkaWdlIGJlc3RhbmRzbmFhbSBlbiByZWdlbG51bW1lciB0b25lblxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIERlIHZvcmlnZSBvcGRyYWNodCBoZXJoYWxlblxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIltEcnVrIG9wICdoJyB2b29yIGluc3RydWN0aWVzLl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIlwiJXNcIiAgcmVnZWwgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW05vdCBhIGZpbGVdIGxpbmUgJWQiCittc2dzdHIgIltHZWVuIGJlc3RhbmRdICByZWdlbCAlZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTUyOQorbXNnaWQgIiAgT3ZlcmZsb3dcbiIKK21zZ3N0ciAiICBPdmVybG9vcFxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTc2Cittc2dpZCAiLi4uc2tpcHBpbmdcbiIKK21zZ3N0ciAiLi4ub3ZlcnNsYWFuZFxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICJSZWd1bGllcmUgZXhwcmVzc2llIGlzIHZlcmtub2VpZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiUGF0cm9vbiBuaWV0IGdldm9uZGVuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAiUGF0cm9vbiBuaWV0IGdldm9uZGVuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjc3Cittc2dpZCAiY2FuJ3QgZm9ya1xuIgorbXNnc3RyICJrYW4gZ2VlbiBuaWV1dyBwcm9jZXMgc3RhcnRlblxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzE2Cittc2dpZCAiIgorIlxuIgorIi4uLlNraXBwaW5nICIKK21zZ3N0ciAiIgorIlxuIgorIi4uLlZlcmRlciAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiLi4uVmVyZGVyIG5hYXIgYmVzdGFuZCAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjIKK21zZ2lkICIuLi5Ta2lwcGluZyBiYWNrIHRvIGZpbGUgIgorbXNnc3RyICIuLi5UZXJ1ZyBuYWFyIGJlc3RhbmQgIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiUmVnZWwgaXMgdGUgbGFuZyIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIkdlZW4gZWVyZGVyZSBvcGRyYWNodCIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJvZDogb2QoMSkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgaGV4ZHVtcCgxKS5cbiIKK21zZ3N0ciAib2Q6IG9kKDEpIHdvcmR0IGFmZ2VyYWRlbjsgZ2VicnVpayBoZXhkdW1wKDEpLlxuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBoZXhkdW1wKDEpIGNvbXBhdGliaWxpdHkgZG9lc24ndCBzdXBwb3J0IHRoZSAtJWMgb3B0aW9uJXNcbiIKK21zZ3N0ciAib2Q6IGhleGR1bXAoMSktY29tcGF0aWJpbGl0ZWl0IG9uZGVyc3RldW50IGRlIG9wdGllICctJWMnIG5pZXQlc1xuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTM0Cittc2dpZCAiOyBzZWUgc3RyaW5ncygxKS4iCittc2dzdHIgIjsgemllIHN0cmluZ3MoMSkuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDoga2FuICVzIG5pZXQgbGV6ZW5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgImhleGR1bXA6IHJlZ2VsIGlzIHRlIGxhbmdcbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBieXRlYWFudGFsIG1ldCBtZWVyZGVyZSBjb252ZXJzaWV0ZWtlbnNcbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgYnl0ZSBjb3VudCBmb3IgY29udmVyc2lvbiBjaGFyYWN0ZXIgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IG9uZ2VsZGlnIGJ5dGVhYW50YWwgdm9vciBjb252ZXJzaWV0ZWtlbiAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgImhleGR1bXA6ICUlcyB2ZXJlaXN0IGVlbiBwcmVjaXNpZSBvZiBlZW4gYnl0ZWFhbnRhbFxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDk2CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBmb3JtYXQgeyVzfVxuIgorbXNnc3RyICJoZXhkdW1wOiBvbmdlbGRpZ2Ugb3BtYWFrIHslc31cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogb25nZWxkaWcgY29udmVyc2lldGVrZW4gJSUlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ1Cittc2dpZCAiIgorIkFsbCByaWdodHMgcmVzZXJ2ZWQuXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIiAgaCAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBzY3JlZW5cbiIKKyIgIHEgb3IgUSAgICAgICAgICAgICAgICAgIHF1aXQgcHJvZ3JhbVxuIgorIiAgPG5ld2xpbmU+ICAgICAgICAgICAgICAgbmV4dCBwYWdlXG4iCisiICBmICAgICAgICAgICAgICAgICAgICAgICBza2lwIGEgcGFnZSBmb3J3YXJkXG4iCisiICBkIG9yIF5EICAgICAgICAgICAgICAgICBuZXh0IGhhbGZwYWdlXG4iCisiICBsICAgICAgICAgICAgICAgICAgICAgICBuZXh0IGxpbmVcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgcGFnZVxuIgorIiAgL3JlZ2V4LyAgICAgICAgICAgICAgICAgc2VhcmNoIGZvcndhcmQgZm9yIHJlZ2V4XG4iCisiICA/cmVnZXg/IG9yIF5yZWdleF4gICAgICBzZWFyY2ggYmFja3dhcmQgZm9yIHJlZ2V4XG4iCisiICAuIG9yIF5MICAgICAgICAgICAgICAgICByZWRyYXcgc2NyZWVuXG4iCisiICB3IG9yIHogICAgICAgICAgICAgICAgICBzZXQgcGFnZSBzaXplIGFuZCBnbyB0byBuZXh0IHBhZ2VcbiIKKyIgIHMgZmlsZW5hbWUgICAgICAgICAgICAgIHNhdmUgY3VycmVudCBmaWxlIHRvIGZpbGVuYW1lXG4iCisiICAhY29tbWFuZCAgICAgICAgICAgICAgICBzaGVsbCBlc2NhcGVcbiIKKyIgIHAgICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIHByZXZpb3VzIGZpbGVcbiIKKyIgIG4gICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIG5leHQgZmlsZVxuIgorIlxuIgorIk1hbnkgY29tbWFuZHMgYWNjZXB0IHByZWNlZGluZyBudW1iZXJzLCBmb3IgZXhhbXBsZTpcbiIKKyIrMTxuZXdsaW5lPiAobmV4dCBwYWdlKTsgLTE8bmV3bGluZT4gKHByZXZpb3VzIHBhZ2UpOyAxPG5ld2xpbmU+IChmaXJzdCAiCisicGFnZSkuXG4iCisiXG4iCisiU2VlIHBnKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiT252b2xkb2VuZGUgZ2VoZXVnZW4gYmVzY2hpa2JhYXIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKyIlczogR2VicnVpazogICVzIFstYWFudGFsX3JlZ2Vsc19wZXJfcGFnaW5hXSBbLXAgdGVfZ2VicnVpa2VuX3Byb21wdF1cbiIKKyIgICAgICAgICAgICAgIFstY2VmbnJzXSBbK3JlZ2VsbnVtbWVyXSBbKy9wYXRyb29uL10gW2Jlc3RhbmQgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IG9wdGllIHZlcmVpc3QgZWVuIGFyZ3VtZW50IC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVzXG4iCittc2dzdHIgIiVzOiBvbmdlbGRpZ2Ugb3B0aWUgLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MAorbXNnaWQgIi4uLnNraXBwaW5nIGZvcndhcmRcbiIKK21zZ3N0ciAiLi4udmVyZGVyLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzIKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIuLi50ZXJ1Zy4uLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJHZWVuIHZvbGdlbmQgYmVzdGFuZCIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIkdlZW4gdm9yaWcgYmVzdGFuZCIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IExlZXNmb3V0IGluIGJlc3RhbmQgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5leHBlY3RlZCBFT0YgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogT252ZXJ3YWNodGUgRU9GIGluIGJlc3RhbmQgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBlcnJvciBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBPbmJla2VuZGUgZm91dCBpbiBiZXN0YW5kICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgY3JlYXRlIHRlbXBmaWxlXG4iCittc2dzdHIgIiVzOiBLYW4gZ2VlbiB0aWpkZWxpamsgYmVzdGFuZCBtYWtlblxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTA0NCB0ZXh0LXV0aWxzL3BnLmM6MTIxOSB0ZXh0LXV0aWxzL3BnLmM6MTI0NgorbXNnaWQgIlJFIGVycm9yOiAiCittc2dzdHIgIkZvdXQgaW4gcmVndWxpZXJlIGV4cHJlc3NpZTogIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIwMQorbXNnaWQgIihFT0YpIgorbXNnc3RyICIoRU9GKSIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMjcgdGV4dC11dGlscy9wZy5jOjEyNTQKK21zZ2lkICJObyByZW1lbWJlcmVkIHNlYXJjaCBzdHJpbmciCittc2dzdHIgIkdlZW4gZWVyZGVyZSB6b2VrdGVrc3QiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICJLYW4gZGV6ZSBuaWV0IG9wZW5lbjogIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICJvcGdlc2xhZ2VuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ2NQorbXNnaWQgIjogIWNvbW1hbmQgbm90IGFsbG93ZWQgaW4gcmZsYWcgbW9kZS5cbiIKK21zZ3N0ciAiOiAhb3BkcmFjaHQgaXMgbmlldCB0b2VnZXN0YWFuIGluIGJlcGVya3RlIG1vZHVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ5NworbXNnaWQgImZvcmsoKSBmYWlsZWQsIHRyeSBhZ2FpbiBsYXRlclxuIgorbXNnc3RyICJmb3JrKCkgaXMgbWlzbHVrdDsgcHJvYmVlciBoZXQgbGF0ZXIgb3BuaWV1d1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTcwNQorbXNnaWQgIihOZXh0IGZpbGU6ICIKK21zZ3N0ciAiKFZvbGdlbmRlIGJlc3RhbmQ6ICIKKworIzogdGV4dC11dGlscy9yZXYuYzoxMTMKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyc3BhY2UiCittc2dzdHIgImthbiBnZWVuIGJ1ZmZlcnJ1aW10ZSByZXNlcnZlcmVuIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiR2VicnVpazogIHJldiBbYmVzdGFuZCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gXCIlc1wiIGZvciByZWFkIgorbXNnc3RyICJLYW4gJyVzJyBuaWV0IG9wZW5lbiB2b29yIGxlemVuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBcIiVzXCIiCittc2dzdHIgImthbiBzdGF0dXMgdmFuICclcycgbmlldCBvcHZyYWdlbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjEwOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW5jb21wbGV0ZSB3cml0ZSB0byBcIiVzXCIgKHdyaXR0ZW4gJXpkLCBleHBlY3RlZCAlemQpXG4iCittc2dzdHIgIm9udm9sbGVkaWdlIHNjaHJpamZvcGVyYXRpZSBuYWFyICclcycgKCVsZCBnZXNjaHJldmVuLCAlbGQgdmVyd2FjaHQpXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAobGltaXQgb2YgaW5vdGlmeSB3YXRjaGVzIHdhcyByZWFjaGVkKS4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiBrYW4gJXMgbmlldCBvcGVuZW5cbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE5OSB0ZXh0LXV0aWxzL3RhaWxmLmM6MjAzCittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgIm9uZ2VsZGlnIGFhbnRhbCByZWdlbHMiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoyMTAKK21zZ2lkICJ1c2FnZTogdGFpbGYgWy1uIE4gfCAtTl0gbG9nZmlsZSIKK21zZ3N0ciAiR2VicnVpazogIHRhaWxmIFstbiA8Z2V0YWw+IHwgLTxnZXRhbD5dICBsb2diZXN0YW5kIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgIkdlYnJ1aWs6ICAlcyBbLWldIFstdCB0ZXJtaW5hbHR5cGVdIGJlc3RhbmQuLi5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ0cm91YmxlIHJlYWRpbmcgdGVybWluZm8iCittc2dzdHIgInByb2JsZW1lbiBiaWogbGV6ZW4gdmFuIHRlcm1pbmZvIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAiT25iZWtlbmRlIHN0dXVyY29kZSBpbiBpbnZvZXI6ICVvLCAlb1xuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIuXG4iCittc2dzdHIgIlJlc2VydmVyZW4gdmFuIGJ1ZmZlciBpcyBtaXNsdWt0XG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5wdXQgbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiSW52b2VycmVnZWwgaXMgdGUgbGFuZ1xuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAiT252b2xkb2VuZGUgZ2VoZXVnZW4gYmVzY2hpa2JhYXIgdGlqZGVucyBncm9laWVuIHZhbiBidWZmZXJcbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBDaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICBHaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIEdpdmUgZmRpc2sgdmVyc2lvblxuIgorI34gIkhlcmUgRElTSyBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYiBvciAvZGV2L3NkYVxuIgorI34gImFuZCBQQVJUSVRJT04gaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGdpdmUgU3RhcnQgYW5kIEVuZCBpbiBzZWN0b3IgKGluc3RlYWQgb2YgY3lsaW5kZXIpIHVuaXRzXG4iCisjfiAiLWIgMjA0ODogKGZvciBjZXJ0YWluIE1PIGRpc2tzKSB1c2UgMjA0OC1ieXRlIHNlY3RvcnNcbiIKKyN+IG1zZ3N0ciAiIgorI34gIkdlYnJ1aWs6ICBmZGlzayBbLWIgU0VDVE9SR1JPT1RURV0gWy11XSBBUFBBUkFBVCAgICAgICBwYXJ0aXRpZXRhYmVsICIKKyN+ICJ3aWp6aWdlblxuIgorI34gIiAgICAgICAgICBmZGlzayAtbCBbLWIgU0VDVE9SR1JPT1RURV0gWy11XSBBUFBBUkFBVCAgICBwYXJ0aXRpZXRhYmVsICIKKyN+ICJ3ZWVyZ2V2ZW5cbiIKKyN+ICIgICAgICAgICAgZmRpc2sgLXMgUEFSVElUSUUgICAgcGFydGl0aWVncm9vdHRlIGluIGJsb2trZW4gd2VlcmdldmVuXG4iCisjfiAiICAgICAgICAgIGZkaXNrIC12ICAgICAgICAgICAgIHByb2dyYW1tYXZlcnNpZSB0b25lblxuIgorI34gIlxuIgorI34gIkhpZXIgaXMgQVBQQVJBQVQgem9pZXRzIGFscyAvZGV2L2hkYSBvZiAvZGV2L3NkYixcbiIKKyN+ICJlbiBQQVJUSVRJRSB6b2lldHMgYWxzIC9kZXYvaGRhNyBvZiAvZGV2L3NkYjQuXG4iCisjfiAiXG4iCisjfiAiLXUgICAgICAgIEJlZ2luIGVuIEVpbmRlIGluIHNlY3RvcmVlbmhlZGVuIChpbiBwbGFhdHMgdmFuICIKKyN+ICJjaWxpbmRlcmVlbmhlZGVuKVxuIgorI34gIi1iIDIwNDggICAodm9vciBzb21taWdlIE1PLXNjaGlqdmVuKSAyMDQ4LWJ5dGUgc2VjdG9yZW4gZ2VicnVpa2VuXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstbF0gWy1iIFNTWl0gWy11XSBkZXZpY2VcbiIKKyN+ICJFLmcuOiBmZGlzayAvZGV2L2hkYSAgKGZvciB0aGUgZmlyc3QgSURFIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9zZGMgIChmb3IgdGhlIHRoaXJkIFNDU0kgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L2VkYSAgKGZvciB0aGUgZmlyc3QgUFMvMiBFU0RJIGRyaXZlKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvcmQvYzBkMCAgb3I6IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChmb3IgUkFJRCBkZXZpY2VzKVxuIgorI34gIiAgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJHZWJydWlrOiAgZmRpc2sgWy1sXSBbLWIgU0VDVE9SR1JPT1RURV0gWy11XSBBUFBBUkFBVFxuIgorI34gIlxuIgorI34gIkJpanZvb3JiZWVsZDogIGZkaXNrIC9kZXYvaGRhICAgICAgKHZvb3IgZGUgZWVyc3RlIElERS1zY2hpamYpXG4iCisjfiAiICAgICAgICAgIG9mOiAgZmRpc2sgL2Rldi9zZGMgICAgICAodm9vciBkZSBkZXJkZSBTQ1NJLXNjaGlqZilcbiIKKyN+ICIgICAgICAgICAgb2Y6ICBmZGlzayAvZGV2L2VkYiAgICAgICh2b29yIGRlIHR3ZWVkZSBQUy8yLUVTREktc2NoaWpmKVxuIgorI34gIiAgICAgICAgICBvZjogIGZkaXNrIC9kZXYvcmQvYzBkMCAgKHZvb3IgUkFJRC1hcHBhcmF0ZW4pXG4iCisjfiAiICAgICAgICAgIC4uLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlxuIgorI34gIlRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIGZvciB0aGlzIGRpc2sgaXMgc2V0IHRvICVkLlxuIgorI34gIlRoZXJlIGlzIG5vdGhpbmcgd3Jvbmcgd2l0aCB0aGF0LCBidXQgdGhpcyBpcyBsYXJnZXIgdGhhbiAxMDI0LFxuIgorI34gImFuZCBjb3VsZCBpbiBjZXJ0YWluIHNldHVwcyBjYXVzZSBwcm9ibGVtcyB3aXRoOlxuIgorI34gIjEpIHNvZnR3YXJlIHRoYXQgcnVucyBhdCBib290IHRpbWUgKGUuZy4sIG9sZCB2ZXJzaW9ucyBvZiBMSUxPKVxuIgorI34gIjIpIGJvb3RpbmcgYW5kIHBhcnRpdGlvbmluZyBzb2Z0d2FyZSBmcm9tIG90aGVyIE9Tc1xuIgorI34gIiAgIChlLmcuLCBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJcbiIKKyN+ICJIZXQgYWFudGFsIGNpbGluZGVycyB2YW4gZGV6ZSBzY2hpamYgaXMgaW5nZXN0ZWxkIG9wICVkLlxuIgorI34gIkhpZXIgaXMgbmlldHMgbWlzIG1lZSwgbWFhciBoZXQgaXMgZ3JvdGVyIGRhbiAxMDI0IGVuIGthblxuIgorI34gImJpaiBiZXBhYWxkZSBpbnN0ZWxsaW5nZW4gcHJvYmxlbWVuIHZlcm9vcnpha2VuIG1ldDpcbiIKKyN+ICIxKSBvcHN0YXJ0c29mdHdhcmUgKGJpanZvb3JiZWVsZCBvdWRlIHZlcnNpZXMgdmFuIExJTE8pLFxuIgorI34gIjIpIHBhcnRpdGlvbmVyaW5nc3NvZnR3YXJlIHZhbiBhbmRlcmUgYmVzdHVyaW5nc3N5dGVtZW5cbiIKKyN+ICIgICAoYmlqdm9vcmJlZWxkIERPUyBGRElTSyBvZiBPUy8yIEZESVNLKS5cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJvdXQgaWYgbWVtb3J5IgorI34gbXNnc3RyICJvbnZvbGRvZW5kZSBnZWhldWdlbiBiZXNjaGlrYmFhciIKKworI34gbXNnaWQgIiMgcGFydGl0aW9uIHRhYmxlIG9mICVzXG4iCisjfiBtc2dzdHIgIiMgUGFydGl0aWV0YWJlbCB2YW4gJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1bml0OiBzZWN0b3JzXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJlZW5oZWlkOiBzZWN0b3JlbiBcbiIKKyN+ICJcbiIKKworI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICIgYmVnaW49JTlsdSIKKworI34gbXNnaWQgIiwgc2l6ZT0lOWx1IgorI34gbXNnc3RyICIsIGdyb290dGU9JTlsdSIKKworI34gbXNnaWQgIiwgYm9vdGFibGUiCisjfiBtc2dzdHIgIiwgb3BzdGFydGJhYXIiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiQ2xvY2sgaW4gVVRDLCBub3QgY2hhbmdlZC5cbiIKKyN+IG1zZ3N0ciAiU2hlbGwgaXMgbmlldCBnZXdpanppZ2QuXG4iCisKKyN+IG1zZ2lkICIlczogZXJyb3I6IGxhYmVsIG9ubHkgd2l0aCB2MSBzd2FwIGFyZWFcbiIKKyN+IG1zZ3N0ciAiJXM6IGZvdXQ6IGxhYmVsIGlzIGFsbGVlbiBtb2dlbGlqayBiaWogdmVyc2llLTEtd2lzc2VsZ2VoZXVnZW5cbiIKKworI34gbXNnaWQgImZhdGFsOiBmaXJzdCBwYWdlIHVucmVhZGFibGUiCisjfiBtc2dzdHIgImZhdGFhbDogZWVyc3RlIHBhZ2luYSBpcyBvbmxlZXNiYWFyIgorCisjfiBtc2dpZCAiIgorI34gIiVzOiBEZXZpY2UgJyVzJyBjb250YWlucyBhIHZhbGlkIFN1biBkaXNrbGFiZWwuXG4iCisjfiAiVGhpcyBwcm9iYWJseSBtZWFucyBjcmVhdGluZyB2MCBzd2FwIHdvdWxkIGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUuXG4iCisjfiAiTm8gc3dhcCB3YXMgY3JlYXRlZC4gSWYgeW91IHJlYWxseSB3YW50IHRvIGNyZWF0ZSB2MCBzd2FwIG9uIHRoYXQgIgorI34gImRldmljZSxcbiIKKyN+ICJ1c2UgdGhlIC1mIG9wdGlvbiB0byBmb3JjZSBpdC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiBBcHBhcmFhdCAnJXMnIGJldmF0IGVlbiBnZWxkaWcgU3VuLXNjaGlqZmxhYmVsLlxuIgorI34gIkRpdCBiZXRla2VudCB3YWFyc2NoaWpubGlqayBkYXQgaGV0IG1ha2VuIHZhbiB2ZXJzaWUtMC13aXNzZWxnZWhldWdlblxuIgorI34gInV3IHBhcnRpdGlldGFiZWwgem91IHZlcm5pZWxlbi4gIEVyIGlzIGdlZW4gd2lzc2VsZ2VoZXVnZW4gZ2VtYWFrdC5cbiIKKyN+ICJBbHMgdSBlY2h0IHZlcnNpZS0wLXdpc3NlbGdlaGV1Z2VuIG9wIGRpdCBhcHBhcmFhdCB3aWx0IG1ha2VuLFxuIgorI34gImt1bnQgdSBkZSBvcHRpZSAnLWYnIGdlYnJ1aWtlbiBvbSBoZXQgYWYgdGUgZHdpbmdlbi5cbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gZ2V0IGN1cnJlbnQgZGlyZWN0b3J5IC0gJXNcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGJlcGFsZW4gdmFuIGh1aWRpZ2UgbWFwIGlzIG1pc2x1a3QgLS0gJXNcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gY2hkaXIgdG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBuYWFyIG1hcCAlcyBnYWFuIGlzIG1pc2x1a3QgLS0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBjaGRpciB0byByb290IVxuIgorI34gbXNnc3RyICJuYW1laToga2FuIG5pZXQgbmFhciBob29mZG1hcCBnYWFuIVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBzdGF0IHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBrYW4gc3RhdHVzIHZhbiBob29mZG1hcCBuaWV0IGJlcGFsZW4hXG4iCisKKyN+IG1zZ2lkICJuYW1laTogYnVmIG92ZXJmbG93XG4iCisjfiBtc2dzdHIgIm5hbWVpOiBidWZmZXJvdmVybG9vcFxuIgorCisjfiBtc2dpZCAiID8gY291bGQgbm90IGNoZGlyIGludG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIj8/PyBuYWFyIG1hcCAlcyBnYWFuIGlzIG1pc2x1a3QgLS0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAiID8gcHJvYmxlbXMgcmVhZGluZyBzeW1saW5rICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICI/Pz8gcHJvYmxlbWVuIGJpaiBsZXplbiB2YW4gc3ltYm9saXNjaGUga29wcGVsaW5nICVzIC0tICVzICglZClcbiIKKworI34gbXNnaWQgIiAgKioqIEVYQ0VFREVEIFVOSVggTElNSVQgT0YgU1lNTElOS1MgKioqXG4iCisjfiBtc2dzdHIgIiAgKioqIE1BWElNVU0gQUFOVEFMIFNZTUJPTElTQ0hFIEtPUFBFTElOR0VOIElTIE9WRVJTQ0hSRURFTiAqKipcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmtub3duIGZpbGUgdHlwZSAwJTA2byBvbiBmaWxlICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBvbmJla2VuZGUgYmVzdGFuZHNzb29ydCAwJTA2byBiaWogYmVzdGFuZCAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvaW5nIHRvIG1vdW50ICVzIGJ5ICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiBhYW5rb3BwZWxlbiB2YW4gJXMgdmlhICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogbm8gTEFCRUw9LCBubyBVVUlEPSwgZ29pbmcgdG8gbW91bnQgJXMgYnkgcGF0aFxuIgorI34gbXNnc3RyICJtb3VudDogZ2VlbiBMQUJFTD0gbm9jaCBVVUlEPTsgYWFua29wcGVsZW4gdmFuICVzIHZpYSBwYWRcbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3QgZm9yazogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IEthbiBnZWVuIG5pZXV3IHByb2NlcyBzdGFydGVuOiAlc1xuIgorCisjfiBtc2dpZCAiJXM6IHdhaXRwaWQ6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiB3YWl0cGlkKCk6ICVzXG4iCisKKyN+IG1zZ2lkICIlczogY2Fubm90IHN0YXQgJXM6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiBrYW4gc3RhdHVzIHZhbiAlcyBuaWV0IG9wdnJhZ2VuOiAlc1xuIgorCisjfiBtc2dpZCAiY291bGQgbm90IHVtb3VudCAlcyAtIHRyeWluZyAlcyBpbnN0ZWFkXG4iCisjfiBtc2dzdHIgImthbiAlcyBuaWV0IG9udGtvcHBlbGVuOyBudSBwb2dpbmcgbWV0ICVzLi4uXG4iCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9wbC5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9wbC5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYzNzhlZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3BsLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9wbC5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3BsLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4MDE2Y2EKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9wbC5wbwpAQCAtMCwwICsxLDExODQ3IEBACisjIFBvbGlzaCB0cmFuc2xhdGlvbiBvZiB1dGlsLWxpbnV4LW5nCisjIENvcHlyaWdodCAoQykgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZS4KKyMgQW5kcnplaiBLcnp5c3p0b2Zvd2ljeiA8YW5rcnlAbWlmLnBnLmdkYS5wbD4sIDIwMDYuCisjIEpha3ViIEJvZ3VzeiA8cWJvb3NoQHBsZC1saW51eC5vcmc+LCAyMDA5LTIwMTAuCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4LW5nIDIuMTcuMS1yYzFcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTAtMDMtMDggMDk6MzArMDEwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogSmFrdWIgQm9ndXN6IDxxYm9vc2hAcGxkLWxpbnV4Lm9yZz5cbiIKKyJMYW5ndWFnZS1UZWFtOiBQb2xpc2ggPHRyYW5zbGF0aW9uLXRlYW0tcGxAbGlzdHMuc291cmNlZm9yZ2UubmV0PlxuIgorIk1JTUUtVmVyc2lvbjogMS4wXG4iCisiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTJcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0zOyBwbHVyYWw9bj09MSA/IDAgOiBuJTEwPj0yICYmIG4lMTA8PTQgJiYgKG4lMTAwPDEwICIKKyJ8fCBuJTEwMD49MjApID8gMSA6IDI7XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgInVzdGF3aWVuaWUgdHlsa28gZG8gb2Rjenl0dSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjcwCittc2dpZCAic2V0IHJlYWQtd3JpdGUiCittc2dzdHIgInVzdGF3aWVuaWUgZG8gb2Rjenl0dSBpIHphcGlzdSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjc2Cittc2dpZCAiZ2V0IHJlYWQtb25seSIKK21zZ3N0ciAicG9icmFuaWUgZmxhZ2kgdHlsa28gZG8gb2Rjenl0dSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAicG9icmFuaWUgcm96bWlhcnUgYmxva3UgKHNla3RvcmEpIGxvZ2ljem5lZ28iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo4OAorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJwb2JyYW5pZSByb3ptaWFydSBibG9rdSAoc2VrdG9yYSkgZml6eWN6bmVnbyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjk0Cittc2dpZCAiZ2V0IG1pbmltdW0gSS9PIHNpemUiCittc2dzdHIgInBvYnJhbmllIG1pbmltYWxuZWdvIHJvem1pYXJ1IHdlL3d5IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTAwCittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgInBvYnJhbmllIG9wdHltYWxuZWdvIHJvem1pYXJ1IHdlL3d5IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTA2Cittc2dpZCAiZ2V0IGFsaWdubWVudCBvZmZzZXQiCittc2dzdHIgInBvYnJhbmllIHd5cvN3bmFuaWEiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTIKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgInBvYnJhbmllIG1ha3N5bWFsbmVqIGxpemNieSBzZWt0b3LzdyBuYSC/sWRhbmllIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTE4Cittc2dpZCAiZ2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAicG9icmFuaWUgcm96bWlhcnUgYmxva3UiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMjUKK21zZ2lkICJzZXQgYmxvY2tzaXplIgorbXNnc3RyICJ1c3Rhd2llbmllIHJvem1pYXJ1IGJsb2t1IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgInBvYnJhbmllIDMyLWJpdG93ZWogbGljemJ5IHNla3RvcvN3IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTM3Cittc2dpZCAiZ2V0IHNpemUgaW4gYnl0ZXMiCittc2dzdHIgInBvYnJhbmllIHJvem1pYXJ1IHcgYmFqdGFjaCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgInVzdGF3aWVuaWUgb2Rjenl0dSB6IHd5cHJ6ZWR6ZW5pZW0iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTAKK21zZ2lkICJnZXQgcmVhZGFoZWFkIgorbXNnc3RyICJwb2JyYW5pZSB1c3Rhd2llbmlhIG9kY3p5dHUgeiB3eXByemVkemVuaWVtIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTU3Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJ1c3Rhd2llbmllIG9kY3p5dHUgeiB3eXByemVkemVuaWVtIGRsYSBzeXN0ZW11IHBsaWvzdyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2MworbXNnaWQgImdldCBmaWxlc3lzdGVtIHJlYWRhaGVhZCIKK21zZ3N0ciAicG9icmFuaWUgdXN0YXdpZW5pYSBvZGN6eXR1IHogd3lwcnplZHplbmllbSBkbGEgc3lzdGVtdSBwbGlr83ciCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjcKK21zZ2lkICJmbHVzaCBidWZmZXJzIgorbXNnc3RyICJvcHLzv25pZW5pZSBidWZvcvN3IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTcxCittc2dpZCAicmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAicG9ub3duZSBvZGN6eXRhbmllIHRhYmxpY3kgcGFydHljamkiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6XG4iCittc2dzdHIgIlNrs2FkbmlhOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgLS1yZXBvcnQgW2RldmljZXNdXG4iCittc2dzdHIgIiAgJXMgLS1yZXBvcnQgW3VyerFkemVuaWFdXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyBbLXZ8LXFdIHBvbGVjZW5pYSB1cnqxZHplbmlhXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIgorbXNnc3RyICJEb3N06nBuZSBwb2xlY2VuaWE6XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODcKK21zZ2lkICJnZXQgc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzIgorbXNnc3RyICJwb2JyYW5pZSByb3ptaWFydSB3IHNla3RvcmFjaCA1MTItYmFqdG93eWNoIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIiVzOiBOaWV6bmFuZSBwb2xlY2VuaWU6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgd3ltYWdhIGFyZ3VtZW50dVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZhaWxlZC5cbiIKK21zZ3N0ciAiJXMgbmllIHBvd2lvZLNvIHNp6i5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdWNjZWVkZWQuXG4iCittc2dzdHIgIiVzIHBvd2lvZLNvIHNp6i5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlczogbmllIG1vv25hIG90d29yennmICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBis7FkIGlvY3RsIG5hICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKK21zZ3N0ciAiUk8gICAgUkEgICBTU1ogICBCU1ogICBQb2N6U2VrdG9yICAgICAgICAgUm96bWlhciBVcnqxZHplbmllXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOlxuIgorbXNnc3RyICJTa7NhZG5pYTpcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHROT1RFOiBlbHZ0dW5lIG9ubHkgd29ya3Mgd2l0aCAyLjQga2VybmVsc1xuIgorbXNnc3RyICJcdDpVV0FHQTogZWx2dHVuZSBkemlhs2EgdHlsa28geiBqsWRyYW1pIDIuNFxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAiYrOxZCBza7NhZG5pXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJsb2NrZGV2aWNlLCB1c2UgLWggZm9yIGhlbHBcbiIKK21zZ3N0ciAiYnJhayB1cnqxZHplbmlhIGJsb2tvd2VnbywgLWggd3m2d2lldGxpIHBvbW9jXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZWx2dHVuZSBpcyBvbmx5IHVzZWZ1bCBvbiBvbGRlciBrZXJuZWxzO1xuIgorImZvciAyLjYgdXNlIElPIHNjaGVkdWxlciBzeXNmcyB0dW5hYmxlcyBpbnN0ZWFkLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorImVsdnR1bmUgamVzdCB1v3l0ZWN6bnkgdHlsa28gemUgc3RhcnN6eW1pIGqxZHJhbWk7XG4iCisiZGxhIGqxZGVyIDIuNiBuYWxlv3kgdb955iB1c3Rhd2ll8SBzeXNmcyBwbGFuaXN0eSBJL08uXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIkZvcm1hdG93YW5pZS4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo0OSBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJ6YWtv8WN6b25lXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAiV2VyeWZpa2FjamEuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIk9kY3p5dDogIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmxlbSByZWFkaW5nIGN5bGluZGVyICVkLCBleHBlY3RlZCAlZCwgcmVhZCAlZFxuIgorbXNnc3RyICJQcm9ibGVtIG9kY3p5dHUgY3lsaW5kcmEgJWQsIG9jemVraXdhbm8gJWQsIG9kY3p5dGFubyAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImJhZCBkYXRhIGluIGN5bCAlZFxuIgorIkNvbnRpbnVpbmcgLi4uICIKK21zZ3N0ciAiIgorImKz6mRuZSBkYW5lIG5hIGN5bGluZHJ6ZSAlZFxuIgorIktvbnR5bnVhY2phLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgIlNrs2FkbmlhOiAlcyBbIC1uIF0gdXJ6sWR6ZW5pZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTE4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODQKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE4MSBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTE0IGRpc2stdXRpbHMvbWtmcy5jOjUyCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODEyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3MgorIzogZGlzay11dGlscy9ta3N3YXAuYzo0ODcgbWlzYy11dGlscy9kZGF0ZS5jOjE3OSBtaXNjLXV0aWxzL3JlbmFtZS5jOjc5CisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE0NyBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCVzKVxuIgorbXNnc3RyICIlcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICIlczogbmllIGplc3QgdG8gdXJ6sWR6ZW5pZSBibG9rb3dlXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDIKK21zZ2lkICJDb3VsZCBub3QgZGV0ZXJtaW5lIGN1cnJlbnQgZm9ybWF0IHR5cGUiCittc2dzdHIgIk5pZSBtb79uYSBva3Jltmxp5iByb2R6YWp1IGFrdHVhbG5lZ28gZm9ybWF0dSIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlcy1zaWRlZCwgJWQgdHJhY2tzLCAlZCBzZWMvdHJhY2suIFRvdGFsIGNhcGFjaXR5ICVkIGtCLlxuIgorbXNnc3RyICIlc3N0cm9ubmUsICVkILZjaWW/ZWssICVkIHNla3QuL7ZjaWW/a+ouIKOxY3puYSBwb2plbW5vtuYgJWQga0IuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIkR3dSIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIlNpbmdsZSIKK21zZ3N0ciAiSmVkbm8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisiU2uzYWRuaWE6ICVzIFstaHZdIFsteCBrYXRhbG9nXSBwbGlrXG4iCisiIC1oICAgICAgICAgIHd5tndpZXRsZW5pZSB0ZWdvIG9waXN1XG4iCisiIC14IGthdGFsb2cgIHJvenBha293YW5pZSBkbyBrYXRhbG9ndVxuIgorIiAtdiAgICAgICAgICB3aeprc3phIGxpY3piYSBrb211bmlrYXTzd1xuIgorIiBwbGlrICAgICAgICBwbGlrIGRvIHNwcmF3ZHplbmlhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICJzdGF0IG5pZSBwb3dpb2SzbyBzaeo6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTY3IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbiBmYWlsZWQ6ICVzIgorbXNnc3RyICJvdHdhcmNpZSBuaWUgcG93aW9ks28gc2nqOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBmYWlsZWQ6IHVuYWJsZSB0byBkZXRlcm1pbmUgZGV2aWNlIHNpemU6ICVzIgorbXNnc3RyICJpb2N0bCBuaWUgcG93aW9ks28gc2nqOiBuaWUgbW+/bmEgb2tyZbZsaeYgcm96bWlhcnUgdXJ6sWR6ZW5pYTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICJuaWUgamVzdCB0byB1cnqxZHplbmllIGJsb2tvd2UgYW5pIHBsaWs6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgImSzdWdvtuYgcGxpa3UgemJ5dCBtYbNhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg5IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxOTcKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNTggZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGZhaWxlZDogJXMiCittc2dzdHIgIm9kY3p5dCBuaWUgcG93afNksyBzaeo6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjA3Cittc2dpZCAic3VwZXJibG9jayBtYWdpYyBub3QgZm91bmQiCittc2dzdHIgIm5pZSB6bmFsZXppb25vIGxpY3pieSBtYWdpY3puZWogc3VwZXJibG9rdSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxNgorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIm5pZW9ic7N1Z2l3YW5lIGNlY2h5IHN5c3RlbXUgcGxpa/N3IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAicm96bWlhciBzdXBlcmJsb2t1ICglZCkgemJ5dCBtYbN5IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjIzCittc2dpZCAiemVybyBmaWxlIGNvdW50IgorbXNnc3RyICJ6ZXJvd2EgbGljemJhIHBsaWvzdyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIGV4dGVuZHMgcGFzdCBlbmQgb2YgZmlsZXN5c3RlbVxuIgorbXNnc3RyICJ1d2FnYTogcGxpayB3eWNob2R6aSBwb3phIGtvbmllYyBzeXN0ZW11IHBsaWvzd1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgInV3YWdhOiBzdGFyeSBmb3JtYXQgY3JhbWZzXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNDYKK21zZ2lkICJ1bmFibGUgdG8gdGVzdCBDUkM6IG9sZCBjcmFtZnMgZm9ybWF0IgorbXNnc3RyICJuaWUgbW+/bmEgc3ByYXdkemnmIENSQzogc3RhcnkgZm9ybWF0IGNyYW1mcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3MiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzM5CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDc3IGxvZ2luLXV0aWxzL2NoZm4uYzo1MjkgbG9naW4tdXRpbHMvY2hzaC5jOjQzOQorIzogbWlzYy11dGlscy93aXBlZnMuYzoxNDEgc3lzLXV0aWxzL2N5dHVuZS5jOjMyMQorbXNnaWQgIm1hbGxvYyBmYWlsZWQiCittc2dzdHIgIm1hbGxvYyBuaWUgcG93aW9ks28gc2nqIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjk3Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICJis7FkIENSQyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorbXNnaWQgInJvb3QgaW5vZGUgaXMgbm90IGRpcmVjdG9yeSIKK21zZ3N0ciAiZ7Pzd255IGktd+p6ZbMgbmllIGplc3Qga2F0YWxvZ2llbSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgImKz6mRueSBvZmZzZXQgZ7Pzd25lZ28ga2F0YWxvZ3UgKCVsdSkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozODcKK21zZ2lkICJkYXRhIGJsb2NrIHRvbyBsYXJnZSIKK21zZ3N0ciAiYmxvayBkYW55Y2ggemJ5dCBkdb95IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzkxCisjLCBjLWZvcm1hdAorbXNnaWQgImRlY29tcHJlc3Npb24gZXJyb3IgJXAoJWQpOiAlcyIKK21zZ3N0ciAiYrOxZCBkZWtvbXByZXNqaSAlcCglZCk6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgaG9sZSBhdCAlbGQgKCV6ZClcbiIKK21zZ3N0ciAiICBkeml1cmEgcG9kICVsZCAoJXpkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDIzIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICB1bmNvbXByZXNzaW5nIGJsb2NrIGF0ICVsZCB0byAlbGQgKCVsZClcbiIKK21zZ3N0ciAiICBkZWtvbXByZXNqYSBibG9rdSBwb2QgJWxkIGRvICVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAibmllIGJsb2sgKCVsZCBiYWp083cpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1zaXplICglbGQgdnMgJWxkKSBieXRlcyIKK21zZ3N0ciAiYrPqZG55IHJvem1pYXIgKCVsZCB2cyAlbGQgYmFqdPN3KSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ6YXBpcyBuaWUgcG93afNksyBzaeo6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgImxjaG93biBmYWlsZWQ6ICVzIgorbXNnc3RyICJsY2hvd24gbmllIHBvd2lvZLNvIHNp6jogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiY2hvd24gbmllIHBvd2lvZLNvIHNp6jogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXRpbWUgZmFpbGVkOiAlcyIKK21zZ3N0ciAidXRpbWUgbmllIHBvd2lvZLNvIHNp6jogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgImktd+p6ZbMga2F0YWxvZ3UgbWEgemVyb3d5IG9mZnNldCBpIG5pZXplcm93eSByb3ptaWFyOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ5NAorIywgYy1mb3JtYXQKK21zZ2lkICJta2RpciBmYWlsZWQ6ICVzIgorbXNnc3RyICJta2RpciBuaWUgcG93aW9ks28gc2nqOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICJ6ZXJvd2EgZLN1Z2+25iBuYXp3eSBwbGlrdSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxNAorbXNnaWQgImJhZCBmaWxlbmFtZSBsZW5ndGgiCittc2dzdHIgImKz6mRuYSBks3Vnb7bmIG5hend5IHBsaWt1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCittc2dpZCAiYmFkIGlub2RlIG9mZnNldCIKK21zZ3N0ciAiYrPqZG55IG9mZnNldCBpLXfqerNhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTM3Cittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemUiCittc2dzdHIgImktd+p6ZbMgcGxpa3UgbWEgemVyb3d5IG9mZnNldCBpIG5pZXplcm93eSByb3ptaWFyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTQwCittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBzaXplIGFuZCBub24temVybyBvZmZzZXQiCittc2dzdHIgImktd+p6ZbMgcGxpa3UgbWEgemVyb3d5IHJvem1pYXIgaSBuaWV6ZXJvd3kgb2Zmc2V0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTcxCittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBvZmZzZXQiCittc2dzdHIgImRvd2mxemFuaWUgc3ltYm9saWN6bmUgbWEgemVyb3d5IG9mZnNldCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3NAorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gc2l6ZSIKK21zZ3N0ciAiZG93abF6YW5pZSBzeW1ib2xpY3puZSBtYSB6ZXJvd3kgcm96bWlhciIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICJis7FkIHJvem1pYXJ1IGRvd2mxemFuaWEgc3ltYm9saWN6bmVnbzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJzeW1saW5rIG5pZSBwb3dpb2SzbyBzaeo6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWNpYWwgZmlsZSBoYXMgbm9uLXplcm8gb2Zmc2V0OiAlcyIKK21zZ3N0ciAicGxpayBzcGVjamFsbnkgbWEgbmllemVyb3d5IG9mZnNldDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlmbyBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgImZpZm8gbWEgbmllemVyb3d5IHJvem1pYXI6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgImduaWF6ZG8gbWEgbmllemVyb3d5IHJvem1pYXI6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvZ3VzIG1vZGU6ICVzICglbykiCittc2dzdHIgImKz6mRueSB0cnliOiAlcyAoJW8pIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1rbm9kIGZhaWxlZDogJXMiCittc2dzdHIgIm1rbm9kIG5pZSBwb3dpb2SzbyBzaeo6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIHN0YXJ0ICglbGQpIDwgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKyJwb2N6sXRlayBkYW55Y2gga2F0YWxvZ3UgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICJrb25pZWMgZGFueWNoIGthdGFsb2d1ICglbGQpICE9IHBvY3qxdGVrIGRhbnljaCBwbGlrdSAoJWxkKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY5MAorbXNnaWQgImludmFsaWQgZmlsZSBkYXRhIG9mZnNldCIKK21zZ3N0ciAibmllcG9wcmF3bnkgb2Zmc2V0IGRhbnljaCBwbGlrdSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorbXNnaWQgImZhaWxlZCB0byBhbGxvY2F0ZSBvdXRidWZmZXIiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogcHJ6eWR6aWVsaeYgYnVmb3JhIHd5arZjaW93ZWdvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzI3Cittc2dpZCAiY29tcGlsZWQgd2l0aG91dCAteCBzdXBwb3J0IgorbXNnc3RyICJza29tcGlsb3dhbm8gYmV6IG9ic7N1Z2kgLXgiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1sYXJ2c21mXSAvZGV2L25hbWVcbiIKK21zZ3N0ciAiVb95Y2llOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIGplc3QgemFtb250b3dhbmUuXHQgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjUKK21zZ2lkICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiCittc2dzdHIgIkN6eSBuYSBwZXdubyBjaGNlc3oga29udHludW93YeYiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICJjaGVjayBhYm9ydGVkLlxuIgorbXNnc3RyICJzcHJhd2R6YW5pZSBwcnplcndhbmUuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJTdHJlZmEgbnIgPCBGSVJTVFpPTkUgdyBwbGlrdSBgJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzUyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yID49IFpPTkVTIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIlN0cmVmYSBuciA+PSBaT05FUyB3IHBsaWt1IGAlcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzgwCittc2dpZCAiUmVtb3ZlIGJsb2NrIgorbXNnc3RyICJVc3VuseYgYmxvayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IHVuYWJsZSB0byBzZWVrIHRvIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJCs7FkIG9kY3p5dHU6IG5pZSB1ZGGzbyBzaeogdXN0YXdp5iBuYSBibG9rIHcgcGxpa3UgJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJCs7FkIG9kY3p5dHU6IHdhZGxpd3kgYmxvayB3IHBsaWt1ICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisiQrOxZCB3ZXdu6nRyem55OiBwcvNiYSB6YXBpc3Ugd2FkbGl3ZWdvIGJsb2t1XG4iCisir7FkYW5pZSB6YXBpc3Ugemlnbm9yb3dhbmVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJwcnplbWllc3pjemVuaWUgbmllIHBvd2lvZLNvIHNp6iB3ZSB3cml0ZV9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI4CisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRlIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIkKzsWQgemFwaXN1OiB3YWRsaXd5IGJsb2sgdyBwbGlrdSAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICJwcnplbWllc3pjemVuaWUgbmllIHBvd2lvZLNvIHNp6iB3ZSB3cml0ZV9zdXBlcl9ibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAibmllIHVkYbNvIHNp6iB6YXBpc2HmIHN1cGVyYmxva3UiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1NgorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIk5pZSBtb79uYSB6YXBpc2HmIG1hcHkgaS136nqz83ciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1OAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiTmllIG1vv25hIHphcGlzYeYgbWFweSBzdHJlZiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTYwCittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiTmllIG1vv25hIHphcGlzYeYgaS136nqz83ciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU4NworbXNnaWQgInNlZWsgZmFpbGVkIgorbXNnc3RyICJwcnplbWllc3pjemVuaWUgbmllIHBvd2lvZLNvIHNp6iIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBidWZmZXIgZm9yIHN1cGVyYmxvY2siCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogcHJ6eWR6aWVsaeYgYnVmb3JhIGRsYSBzdXBlcmJsb2t1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAibmllIG1vv25hIG9kY3p5dGFjIHN1cGVyYmxva3UiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxMgorbXNnaWQgImJhZCBtYWdpYyBudW1iZXIgaW4gc3VwZXItYmxvY2siCittc2dzdHIgImKz6mRuYSBsaWN6YmEgbWFnaWN6bmEgdyBzdXBlcmJsb2t1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTQKK21zZ2lkICJPbmx5IDFrIGJsb2Nrcy96b25lcyBzdXBwb3J0ZWQiCittc2dzdHIgIldzcGllcmFuZSBzsSB0eWxrbyBibG9raS9zdHJlZnkgMWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJis+pkbmUgcG9sZSBzX2ltYXBfYmxvY2tzIHcgc3VwZXJibG9rdSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE4Cittc2dpZCAiYmFkIHNfem1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgImKz6mRuZSBwb2xlIHNfem1hcF9ibG9ja3MgdyBzdXBlcmJsb2t1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjUKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiCittc2dzdHIgIk5pZSBtb79uYSBwcnp5ZHppZWxp5iBidWZvcmEgZGxhIG1hcHkgaS136nqz83ciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyOAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgbWFwIgorbXNnc3RyICJOaWUgbW+/bmEgcHJ6eWR6aWVsaeYgYnVmb3JhIGRsYSBtYXB5IHN0cmVmIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgIk5pZSBtb79uYSBwcnp5ZHppZWxp5iBidWZvcmEgZGxhIGktd+p6s/N3IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzYKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBjb3VudCIKK21zZ3N0ciAiTmllIG1vv25hIHByenlkemllbGnmIGJ1Zm9yYSBkbGEgbGljem5pa2EgaS136nqz83ciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIk5pZSBtb79uYSBwcnp5ZHppZWxp5iBidWZvcmEgZGxhIGxpY3puaWthIHN0cmVmIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDEKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZSBtYXAiCittc2dzdHIgIk5pZSBtb79uYSBvZGN6eXRh5iBtYXB5IGktd+p6s/N3IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDMKK21zZ2lkICJVbmFibGUgdG8gcmVhZCB6b25lIG1hcCIKK21zZ3N0ciAiTmllIG1vv25hIG9kY3p5dGHmIG1hcHkgc3RyZWYiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlcyIKK21zZ3N0ciAiTmllIG1vv25hIG9kY3p5dGHmIGktd+p6s/N3IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIlV3YWdhOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgaW5vZGVzXG4iCittc2dzdHIgIiVsZCBpLXfqerPzd1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIGJsb2vzd1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiWm9uZXNpemU9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIk1heHNpemU9JWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIlN0YW4gc3lzdGVtdSBwbGlr83c9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJuYW1lbGVuPSVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJuYW1lbGVuPSVkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3MyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgYnV0IHVzZWQgZm9yIGZpbGUgJyVzJ1xuIgorbXNnc3RyICIiCisiSS136nplsyAlZCBvem5hY3pvbm8gamFrbyBuaWV1v3l3YW55IGFsZSBqZXN0IG9uIHW/eXdhbnkgcHJ6ZXogcGxpayAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjgKK21zZ2lkICJNYXJrIGluIHVzZSIKK21zZ3N0ciAiWm5hY3puaWsgdyB1v3ljaXUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iCittc2dzdHIgIlBsaWsgYCVzJyBtYSB0cnliICUwNW9cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzA2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpbm9kZSBjb3VudCB0b28gYmlnLlxuIgorbXNnc3RyICJVd2FnYTogbGljemJhIGktd+p6s/N3IHphIGR1v2EuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NzQKK21zZ2lkICJyb290IGlub2RlIGlzbid0IGEgZGlyZWN0b3J5IgorbXNnc3RyICJns/N3bnkgaS136nplsyBuaWUgamVzdCBrYXRhbG9naWVtIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3ODggZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiQmxvayBiebMgd2N6ZbZuaWVqIHW/eXR5LiBPYmVjbmllIHcgcGxpa3UgYCVzJy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc5MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjMKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NQorIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjEwCittc2dpZCAiQ2xlYXIiCittc2dzdHIgIld5Y3p5tmNp5iIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICJCbG9rICVkIHcgcGxpa3UgYCVzJyBqZXN0IG96bmFjem9ueSBqYWtvIG5pZXW/eXdhbnkuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiTmFwcmF3aeYiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiS2F0YWxvZyAnJXMnIHphd2llcmEgYrPqZG55IG51bWVyIGktd+p6s2EgZGxhIHBsaWt1ICclLipzJy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQ0Cittc2dpZCAiIFJlbW92ZSIKK21zZ3N0ciAiIFVzdW6x5iIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTkxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorbXNnc3RyICIlczogYrPqZG55IGthdGFsb2c6ICcuJyBuaWUgamVzdCBuYSBwb2N6sXRrdVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiJXM6IGKz6mRueSBrYXRhbG9nOiAnLi4nIG5pZSBqZXN0IG5hIGRydWdpZWogcG96eWNqaVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMTkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAiYrOxZCB3ZXdu6nRyem55IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTA0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiJXM6IGKz6mRueSBrYXRhbG9nOiByb3ptaWFyIDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAicHJ6ZW1pZXN6Y3plbmllIG5pZSBwb3dpb2SzbyBzaeogdyBiYWRfem9uZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICJUcnliIGktd+p6s2EgJWQgbmllIHd5Y3p5c3pjem9ueS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIkktd+p6ZbMgJWQgamVzdCBuaWV1v3l3YW55LCBhIHphem5hY3pvbnkgamFrbyB1v3l3YW55IHcgbWFwaWUgYml0b3dlai4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCB1c2VkLCBtYXJrZWQgdW51c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJJLXfqemWzICVkIGplc3Qgdb95d2FueSwgYSB6YXpuYWN6b255IGpha28gbmlldb95d2FueSB3IG1hcGllIGJpdG93ZWouIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTYKK21zZ2lkICJTZXQiCittc2dzdHIgIlVzdGF3aeYiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgY291bnRlZD0lZC4iCittc2dzdHIgIkktd+p6ZbMgJWQgKHRyeWIgPSAlMDdvKSwgaV9ubGlua3M9JWQsIG9ibGljem9ubz0lZC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMgorbXNnaWQgIlNldCBpX25saW5rcyB0byBjb3VudCIKK21zZ3N0ciAiVXN0YXdpZW5pZSBpX25saW5rcyBuYSBsaWN6Yuogb2JsaWN6b26xIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIKK21zZ3N0ciAiU3RyZWZhICVkOiB6YXpuYWN6b25hIGpha28gdb95d2FuYSwgYSC/YWRlbiBwbGlrIGplaiBuaWUgdb95d2EuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIk9kem5hY3p55iIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJTdHJlZmEgJWQ6IHW/eXdhbmEsIG5hbGljem9ubz0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbm90IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJTdHJlZmEgJWQ6IG5pZSB1v3l3YW5hLCBuYWxpY3pvbm89JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorbXNnaWQgImJhZCBpbm9kZSBzaXplIgorbXNnc3RyICJis+pkbnkgcm96bWlhciBpLXfqerNhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjkxCittc2dpZCAiYmFkIHYyIGlub2RlIHNpemUiCittc2dzdHIgImKz6mRueSByb3ptaWFyIGktd+p6s2EgdjIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMTcKK21zZ2lkICJuZWVkIHRlcm1pbmFsIGZvciBpbnRlcmFjdGl2ZSByZXBhaXJzIgorbXNnc3RyICJkbyBpbnRlcmFrY3lqbmVqIG5hcHJhd3kgcG90cnplYm55IGplc3QgdGVybWluYWwiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJyVzJzogJXMiCittc2dzdHIgIm5pZSBtb79uYSBvdHdvcnp55iAnJXMnOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBjbGVhbiwgbm8gY2hlY2suXG4iCittc2dzdHIgIiVzIGplc3QgY3p5c3R5LCBiZXogc3ByYXdkemFuaWEuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9yY2luZyBmaWxlc3lzdGVtIGNoZWNrIG9uICVzLlxuIgorbXNnc3RyICJXeW11c3plbmllIHNwcmF3ZHphbmllIHN5c3RlbXUgcGxpa/N3IG5hICVzLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gb24gJXMgaXMgZGlydHksIG5lZWRzIGNoZWNraW5nLlxuIgorbXNnc3RyICJTeXN0ZW0gcGxpa/N3ICVzIG5pZSBqZXN0IGN6eXN0eSwgd3ltYWdhIHNwcmF3ZHplbmlhLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2bGQgdb95d2FueWNoIGktd+p6s/N3ICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkIHW/eXdhbnljaCBzdHJlZiAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmQgend5a7N5Y2ggcGxpa/N3XG4iCisiJTZkIGthdGFsb2fzd1xuIgorIiU2ZCBwbGlr83cgdXJ6sWR6ZfEgem5ha293eWNoXG4iCisiJTZkIHBsaWvzdyB1cnqxZHpl8SBibG9rb3d5Y2hcbiIKKyIlNmQgZG93abF6YfFcbiIKKyIlNmQgZG93abF6YfEgc3ltYm9saWN6bnljaFxuIgorIi0tLS0tLVxuIgorIiU2ZCBwbGlr83dcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkZJTEUgU1lTVEVNIEhBUyBCRUVOIENIQU5HRURcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJaTU9EWUZJS09XQU5PIFNZU1RFTSBQTElL01dcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IG5pZSB1ZGGzbyBzaeogb3R3b3J6eeY6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogYrOxZCBwcnplbWllc3pjemFuaWEgbmEgJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBis7FkIG9kY3p5dHUgbmEgJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvciBjb3VudDogJWQsIHNlY3RvciBzaXplOiAlZFxuIgorbXNnc3RyICJsaWN6YmEgc2VrdG9y83c6ICVkLCByb3ptaWFyIHNla3RvcmE6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiBis7FkIHNrs2Fkbmkgb3BjamlcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorbXNnc3RyICJTa7NhZG5pYTogJXMgWy14XSBbLWQgPGxpY3piYT4+XSBvYnJhei1pc285NjYwXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisiU2uzYWRuaWE6ICVzIFstdl0gWy1OIGxpY3piYS1pLXfqerPzd10gWy1WIG5hendhIHdvbHVtaW51XVxuIgorIiAgICAgICAgICBbLUYgbmF6d2Etc3lzdGVtdS1wbGlr83ddIHVyerFkemVuaWUgW2xpY3piYS1ibG9r83ddXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAibmF6d2Egd29sdW1pbnUgemEgZLN1Z2EiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzcKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAibmF6d2Egc3lzdGVtdSBwbGlr83cgemEgZLN1Z2EiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJuaWUgbW+/bmEgd3lrb25h5iBzdGF0IG5hIHVyerFkemVuaXUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIG5pZSBqZXN0IHNwZWNqYWxueW0gdXJ6sWR6ZW5pZW0gYmxva293eW0iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNzEgc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIgorbXNnc3RyICJuaWUgbW+/bmEgb3R3b3J6eeYgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBzaXplIG9mICVzIgorbXNnc3RyICJuaWUgbW+/bmEgcG9icmHmIHJvem1pYXJ1ICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTg3CisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrcyBhcmd1bWVudCB0b28gbGFyZ2UsIG1heCBpcyAlbGx1IgorbXNnc3RyICJhcmd1bWVudCBsaWN6YmEtYmxva/N3IHphIGR1v3ksIG1ha3NpbXVtIHRvICVsbHUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMDIKK21zZ2lkICJ0b28gbWFueSBpbm9kZXMgLSBtYXggaXMgNTEyIgorbXNnc3RyICJ6YSBkdb9vIGktd+p6s/N3IC0gbWFrc2ltdW0gdG8gNTEyIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UsIG5lZWQgYXQgbGVhc3QgJWxsdSBibG9ja3MiCittc2dzdHIgInphIG1hs28gbWllanNjYSwgcG90cnplYmEgY28gbmFqbW5pZWogJWxsdSBibG9r83ciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjMgZmRpc2svZmRpc2suYzoyNjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZTogJXNcbiIKK21zZ3N0ciAiVXJ6sWR6ZW5pZTogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNAorIywgYy1mb3JtYXQKK21zZ2lkICJWb2x1bWU6IDwlLTZzPlxuIgorbXNnc3RyICJXb2x1bWluOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNQorIywgYy1mb3JtYXQKK21zZ2lkICJGU25hbWU6IDwlLTZzPlxuIgorbXNnc3RyICJOYXp3YUZTOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIlJvem1pYXJCbG9rdTogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJJLXfqerPzdzogJWQgKHcgMSBibG9rdSlcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAlbGxkIGJsb2NrcylcbiIKK21zZ3N0ciAiSS136nqz83c6ICVkICh3ICVsbGQgYmxva2FjaClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja3M6ICVsbGRcbiIKK21zZ3N0ciAiQmxva/N3OiAlbGxkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgZW5kOiAlZCwgRGF0YSBlbmQ6ICVkXG4iCittc2dzdHIgIktvbmllYyBpLXfqerPzdzogJWQsIEtvbmllYyBkYW55Y2g6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgImKzsWQgemFwaXN1IHN1cGVyYmxva3UiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNTkKK21zZ2lkICJlcnJvciB3cml0aW5nIHJvb3QgaW5vZGUiCittc2dzdHIgImKzsWQgemFwaXN1IGez83duZWdvIGktd+p6s2EiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjQKK21zZ2lkICJlcnJvciB3cml0aW5nIGlub2RlIgorbXNnc3RyICJis7FkIHphcGlzdSBpLXfqerNhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAiYrOxZCBwcnplbWllc3pjemFuaWEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKK21zZ2lkICJlcnJvciB3cml0aW5nIC4gZW50cnkiCittc2dzdHIgImKzsWQgemFwaXN1IHdwaXN1ICcuJyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3NworbXNnaWQgImVycm9yIHdyaXRpbmcgLi4gZW50cnkiCittc2dzdHIgImKzsWQgemFwaXN1IHdwaXN1ICcuLiciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2xvc2luZyAlcyIKK21zZ3N0ciAiYrOxZCB6YW15a2FuaWEgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBta2ZzIFstVl0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIGRldmljZSBbc2l6ZV1cbiIKK21zZ3N0ciAiU2uzYWRuaWE6IG1rZnMgWy1WXSBbLXQgdHlwZnNdIFtvcGNqZS1mc10gdXJ6sWR6ZW5pZSBbcm96bWlhcl1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6ODggZGlzay11dGlscy9ta2ZzLmM6OTYgZmRpc2svY2ZkaXNrLmM6MzUzCisjOiBnZXRvcHQvZ2V0b3B0LmM6ODYgZ2V0b3B0L2dldG9wdC5jOjk2IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE91dCBvZiBtZW1vcnkhXG4iCittc2dzdHIgIiVzOiBaYWJyYWuzbyBwYW1p6mNpIVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtmcyAoJXMpXG4iCittc2dzdHIgIm1rZnMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1oXSBbLXZdIFstYiBibGtzaXplXSBbLWUgZWRpdGlvbl0gWy1OIGVuZGlhbl0gWy1pIGZpbGVdIFstbiAiCisibmFtZV0gZGlybmFtZSBvdXRmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC12ICAgICAgICAgYmUgdmVyYm9zZVxuIgorIiAtRSAgICAgICAgIG1ha2UgYWxsIHdhcm5pbmdzIGVycm9ycyAobm9uLXplcm8gZXhpdCBzdGF0dXMpXG4iCisiIC1iIGJsa3NpemUgdXNlIHRoaXMgYmxvY2tzaXplLCBtdXN0IGVxdWFsIHBhZ2Ugc2l6ZVxuIgorIiAtZSBlZGl0aW9uIHNldCBlZGl0aW9uIG51bWJlciAocGFydCBvZiBmc2lkKVxuIgorIiAtTiBlbmRpYW4gIHNldCBjcmFtZnMgZW5kaWFubmVzcyAoYmlnfGxpdHRsZXxob3N0KSwgZGVmYXVsdCBob3N0XG4iCisiIC1pIGZpbGUgICAgaW5zZXJ0IGEgZmlsZSBpbWFnZSBpbnRvIHRoZSBmaWxlc3lzdGVtIChyZXF1aXJlcyA+PSAyLjQuMClcbiIKKyIgLW4gbmFtZSAgICBzZXQgbmFtZSBvZiBjcmFtZnMgZmlsZXN5c3RlbVxuIgorIiAtcCAgICAgICAgIHBhZCBieSAlZCBieXRlcyBmb3IgYm9vdCBjb2RlXG4iCisiIC1zICAgICAgICAgc29ydCBkaXJlY3RvcnkgZW50cmllcyAob2xkIG9wdGlvbiwgaWdub3JlZClcbiIKKyIgLXogICAgICAgICBtYWtlIGV4cGxpY2l0IGhvbGVzIChyZXF1aXJlcyA+PSAyLjMuMzkpXG4iCisiIGRpcm5hbWUgICAgcm9vdCBvZiB0aGUgZmlsZXN5c3RlbSB0byBiZSBjb21wcmVzc2VkXG4iCisiIG91dGZpbGUgICAgb3V0cHV0IGZpbGVcbiIKK21zZ3N0ciAiIgorIlNrs2FkbmlhOiAlcyBbLWhdIFstdl0gWy1iIHJvem1ibG9rdV0gWy1lIGVkeWNqYV0gWy1OIGVuZGlhbl0gWy1pIHBsaWtdIFstbiAiCisibmF6d2FdIGthdGFsb2cgcGxpa3d5XG4iCisiIC1oICAgICAgICAgICAgd3m2d2lldGxlbmllIHRlZ28gb3Bpc3VcbiIKKyIgLXYgICAgICAgICAgICB3aeprc3phIGxpY3piYSBrb211bmlrYXTzd1xuIgorIiAtRSAgICAgICAgICAgIHVjenluaWVuaWUgd3N6eXN0a2ljaCBvc3RyemW/ZfEgYrPqZGFtaSAobmllemVyb3d5IGtvZCAiCisid3lqtmNpYSlcbiIKKyIgLWIgcm96bWJsb2t1ICB1v3ljaWUgdGVnbyByb3ptaWFydSBibG9rdSwgbXVzaSBieeYgcvN3bnkgcm96bWlhcm93aSBzdHJvbnlcbiIKKyIgLWUgZWR5Y2phICAgICB1c3Rhd2llbmllIG51bWVydSBlZHljamkgKGN66rbmIGZzaWRhKVxuIgorIiAtTiBlbmRpYW4gICAgIGtvbGVqbm+25iBiYWp083cgdyBzs293aWUgKGJpZ3xsaXR0bGV8aG9zdCksIGRvbXm2bG5pZSBob3N0XG4iCisiIC1pIHBsaWsgICAgICAgd3N0YXdpZW5pZSBvYnJhenUgcGxpa3UgZG8gc3lzdGVtdSBwbGlr83cgKHd5bWFnYSA+PSAyLjQuMClcbiIKKyIgLW4gbmF6d2EgICAgICB1c3Rhd2llbmllIG5hend5IHN5c3RlbXUgcGxpa/N3IGNyYW1mc1xuIgorIiAtcCAgICAgICAgICAgIHd5cvN3bmFuaWUgZG8gJWQgYmFqdPN3IGRsYSBrb2R1IHJvenJ1Y2hvd2Vnb1xuIgorIiAtcyAgICAgICAgICAgIHNvcnRvd2FuaWUgd3Bpc/N3IHcga2F0YWxvZ3UgKHN0YXJhIG9wY2phLCBpZ25vcm93YW5hKVxuIgorIiAteiAgICAgICAgICAgIHR3b3J6ZW5pZSBqYXdueWNoIGR6aXVyICh3eW1hZ2EgPj0gMi4zLjM5KVxuIgorIiBrYXRhbG9nICAgICAgIGez83dueSBrYXRhbG9nIHN5c3RlbXUgcGxpa/N3IGRvIGtvbXByZXNqaVxuIgorIiBwbGlrd3kgICAgICAgIHBsaWsgd3lqtmNpb3d5XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIlpuYWxlemlvbm8gYmFyZHpvIGSzdWexIG5henfqIHBsaWt1ICglenUgYmFqdPN3KSBgJXMnLlxuIgorIiBQcm9zeuogendp6mtzennmIE1BWF9JTlBVVF9OQU1FTEVOIHcgbWtjcmFtZnMuYyBpIHByemVrb21waWxvd2HmLiAiCisiWmFrb/FjemVuaWUuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo0NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlsZXN5c3RlbSB0b28gYmlnLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAic3lzdGVtIHBsaWvzdyB6YSBkdb95LiBaYWtv8WN6ZW5pZS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIkGjQUFBOiBibG9rIFwic2tvbXByZXNvd2FueVwiIGRvIDIqZLN1Z2+25iBibG9rdSAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2xkIGJhanTzdylcdCVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorInV3YWdhOiBzemFjb3dhbnkgd3ltYWdhbnkgcm96bWlhciAoZ/NybmEgZ3JhbmljYSkgdG8gJWxsZE1CLCBhbGUgbWFrc3ltYWxueSAiCisicm96bWlhciBvYnJhenUgdG8gJXVNQi4gUHJvZ3JhbSBtb79lIHpnaW6x5iBwcnplZHdjemW2bmllLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiTWFwYSBvYnJhenUgUk9NIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiRG+zsWN6YW5pZTogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXJlY3RvcnkgZGF0YTogJXpkIGJ5dGVzXG4iCittc2dzdHIgIkRhbmUga2F0YWxvZ3U6ICV6ZCBiYWp083dcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgYy1mb3JtYXQKK21zZ2lkICJFdmVyeXRoaW5nOiAlemQga2lsb2J5dGVzXG4iCittc2dzdHIgIqOxY3puaWU6ICV6ZCBraWxvYmFqdPN3XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJTdXBlcmJsb2NrOiAlemQgYmFqdPN3XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICJDUkM6ICV4XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICIiCisicHJ6eWR6aWVsb25vIHphIG1hs28gbWllanNjYSBuYSBvYnJheiBST00gKHByenlkemllbG9ubyAlbGxkLCB1v3l0byAlenUpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIm9icmF6IFJPTSIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIgorbXNnc3RyICJis7FkIHphcGlzdSBvYnJhenUgUk9NICglemQgJXpkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICJ1d2FnYTogbmF6d3kgcGxpa/N3IHNrcvNjb25lIGRvIDI1NSBiYWp083cuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iCittc2dzdHIgInV3YWdhOiBwb21pbmnqdG8gcGxpa2kgeiBwb3dvZHUgYrPqZPN3LlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTUyCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgc2l6ZXMgdHJ1bmNhdGVkIHRvICVsdU1CIChtaW51cyAxIGJ5dGUpLlxuIgorbXNnc3RyICJ1d2FnYTogem1uaWVqc3pvbm8gcm96bWlhcnkgcGxpa/N3IGRvICVsdU1CIChtaW51cyAxIGJhanQpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiB1aWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKyJ1d2FnYTogdWlkeSBza3LzY29uZSBkbyAldSBiaXTzdyAobW+/ZSB0byByenV0b3dh5iBuYSBiZXpwaWVjemXxc3R3bykuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorInV3YWdhOiBnaWR5IHNrcvNjb25lIGRvICV1IGJpdPN3IChtb79lIHRvIHJ6dXRvd2HmIG5hIGJlenBpZWN6ZfFzdHdvKS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV0FSTklORzogZGV2aWNlIG51bWJlcnMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICBUaGlzIGFsbW9zdCBjZXJ0YWlubHkgbWVhbnNcbiIKKyJ0aGF0IHNvbWUgZGV2aWNlIGZpbGVzIHdpbGwgYmUgd3JvbmcuXG4iCittc2dzdHIgIiIKKyJVV0FHQTogbnVtZXJ5IHVyerFkemXxIHNrcvNjb25lIGRvICV1IGJpdPN3LiBQcmF3aWUgbmEgcGV3bm8gb3puYWN6YSB0bywgv2VcbiIKKyJrdPNyZbYgcGxpa3UgdXJ6sWR6ZfEgYupksSBuaWV3s2G2Y2l3ZS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWMgfCAtbCBmaWxlbmFtZV0gWy1uWFhdIFstaVhYXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiU2uzYWRuaWE6ICVzIFstYyB8IC1sIHBsaWtdIFstblhYXSBbLWlYWF0gL2Rldi9uYXp3YSBbYmxva2ldXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiJXMgamVzdCBwb2Rtb250b3dhbnk7IG9kbW93YSB1dHdvcnplbmlhIHRhbSBzeXN0ZW11IHBsaWvzdyEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJwcnplbWllc3pjemVuaWUgbmEgYmxvayByb3pydWNob3d5IG5pZSBwb3dpb2SzbyBzaeogd2Ugd3JpdGVfdGFibGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTAKK21zZ2lkICJ1bmFibGUgdG8gY2xlYXIgYm9vdCBzZWN0b3IiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogd3ljenm2Y2nmIHNla3RvcmEgcm96cnVjaG93ZWdvIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTIKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgInByemVtaWVzemN6ZW5pZSBuaWUgcG93aW9ks28gc2nqIHdlIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk2Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAibmllIHVkYbNvIHNp6iB6YXBpc2HmIG1hcHkgaS136nqz83ciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAibmllIHVkYbNvIHNp6iB6YXBpc2HmIG1hcHkgc3RyZWYiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwMAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogemFwaXNh5iBpLXfqerPzdyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA5Cittc2dpZCAid3JpdGUgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJ6YXBpcyBuaWUgcG93afNksyBzaeogd2Ugd3JpdGVfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIxNyBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyOTEKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM0MAorbXNnaWQgInRvbyBtYW55IGJhZCBibG9ja3MiCittc2dzdHIgInphIGR1v28gd2FkbGl3eWNoIGJsb2vzdyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjI1Cittc2dpZCAibm90IGVub3VnaCBnb29kIGJsb2NrcyIKK21zZ3N0ciAiemEgbWGzbyBkb2JyeWNoIGJsb2vzdyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQwCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogcHJ6eWR6aWVsaeYgYnVmb3LzdyBkbGEgbWFwIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogcHJ6eWR6aWVsaeYgYnVmb3JhIGRsYSBpLXfqerPzdyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJNYXhzaXplPSVsZFxuIgorIlxuIgorbXNnc3RyICIiCisiTWF4c2l6ZT0lbGRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDY5Cittc2dpZCAic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIgorbXNnc3RyICJwcnplbWllc3pjemVuaWUgbmllIHBvd2lvZLNvIHNp6iBwb2RjemFzIHNwcmF3ZHphbmlhIGJsb2vzdyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICJEeml3bmEgd2FydG+25iB3IGRvX2NoZWNrOiBwcmF3ZG9wb2RvYm5pZSBis+pkeVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MDggZGlzay11dGlscy9ta3N3YXAuYzozMTUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBjaGVja19ibG9ja3MiCittc2dzdHIgInByemVtaWVzemN6ZW5pZSBuaWUgcG93aW9ks28gc2nqIHcgY2hlY2tfYmxvY2tzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MTcKK21zZ2lkICJiYWQgYmxvY2tzIGJlZm9yZSBkYXRhLWFyZWE6IGNhbm5vdCBtYWtlIGZzIgorbXNnc3RyICJ3YWRsaXdlIGJsb2tpIHByemVkIG9ic3phcmVtIGRhbnljaDogbmllIG1vv25hIHV0d29yennmIHN5c3RlbXUgcGxpa/N3IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWQgd2FkbGl3eWNoIGJsb2vzd1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAiamVkZW4gd2FkbGl3eSBibG9rXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzNQorbXNnaWQgImNhbid0IG9wZW4gZmlsZSBvZiBiYWQgYmxvY2tzIgorbXNnc3RyICJuaWUgbW+/bmEgb3R3b3J6eeYgcGxpa3UgeiB3YWRsaXd5bWkgYmxva2FtaSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgImKz6mRueSBudW1lciB3YWRsaXdlZ28gYmxva3UgdyBsaW5paSAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDAKK21zZ2lkICJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIKK21zZ3N0ciAibmllIG1vv25hIG9kY3p5dGHmIHBsaWt1IHdhZGxpd3ljaCBibG9r83ciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJ0b2wgZXJyb3I6IG51bWJlciBvZiBibG9ja3Mgbm90IHNwZWNpZmllZCIKK21zZ3N0ciAiYrOxZCBzdHJ0b2w6IG5pZSBwb2Rhbm8gbGljemJ5IGJsb2vzdyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBzdGF0ICVzIgorbXNnc3RyICJuaWUgbW+/bmEgd3lrb25h5iBzdGF0IG5hICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIm5pZSBtb79uYSBvdHdvcnp55iAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2VjdG9yIHNpemUgZm9yICVzIgorbXNnc3RyICJuaWUgbW+/bmEgb2tyZbZsaeYgcm96bWlhcnUgc2VrdG9yYSBkbGEgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICJibG9jayBzaXplIHNtYWxsZXIgdGhhbiBwaHlzaWNhbCBzZWN0b3Igc2l6ZSBvZiAlcyIKK21zZ3N0ciAicm96bWlhciBibG9rdSBtbmllanN6eSBuab8gcm96bWlhciBmaXp5Y3puZWdvIHNla3RvcmEgbmEgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgIm5pZSBtb79uYSBva3Jltmxp5iByb3ptaWFydSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIndpbGwgbm90IHRyeSB0byBtYWtlIGZpbGVzeXN0ZW0gb24gJyVzJyIKK21zZ3N0ciAib2Rtb3dhIHV0d29yemVuaWEgc3lzdGVtdSBwbGlr83cgbmEgJyVzJyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjY1Cittc2dpZCAibnVtYmVyIG9mIGJsb2NrcyB0b28gc21hbGwiCittc2dzdHIgImxpY3piYSBibG9r83cgemJ5dCBtYbNhIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkXG4iCittc2dzdHIgIkKz6mRueSBwb2RhbnkgcHJ6ZXogdb95dGtvd25pa2Egcm96bWlhciBzdHJvbnkgJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiIgorIlW/eWNpZSBwb2RhbmVnbyBwcnpleiB1v3l0a293bmlrYSByb3ptaWFydSBzdHJvbnkgJWQgemFtaWFzdCBzeXN0ZW1vd2VnbyAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiQrPqZG55IHJvem1pYXIgbmFns/N3a2Egb2JzemFydSB3eW1pYW55LCBuaWUgemFwaXNhbm8gZXR5a2lldHkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxhYmVsIHdhcyB0cnVuY2F0ZWQuXG4iCittc2dzdHIgIkV0eWtpZXRhIHpvc3Rhs2Egc2ty82NvbmEuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGxhYmVsLCAiCittc2dzdHIgImJyYWsgZXR5a2lldHksICIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdXVpZFxuIgorbXNnc3RyICJicmFrIHV1aWRhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKyJTa7NhZG5pYTogJXMgWy1jXSBbLXBST1pNU1RST05ZXSBbLUwgZXR5a2lldGFdIFstVSBVVUlEXSAvZGV2L25hendhIFtibG9raV1cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyOTcKK21zZ2lkICJ0b28gbWFueSBiYWQgcGFnZXMiCittc2dzdHIgInphIGR1v28gd2FkbGl3eWNoIHN0cm9uIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiQnJhayBwYW1p6mNpIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIHBhZ2VcbiIKK21zZ3N0ciAiamVkbmEgd2FkbGl3YSBzdHJvbmFcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IGJhZCBwYWdlc1xuIgorbXNnc3RyICIlbHUgd2FkbGl3eWNoIHN0cm9uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDAyIGRpc2stdXRpbHMvbWtzd2FwLmM6NDM5IGRpc2stdXRpbHMvbWtzd2FwLmM6NjU5Cittc2dpZCAidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIKK21zZ3N0ciAibmllIHVkYbNvIHNp6iBwcnpld2luseYgdXJ6sWR6ZW5pYSBzd2FwYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTMKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgbmV3IGxpYmJsa2lkIHByb2JlIgorbXNnc3RyICJuaWUgdWRhs28gc2nqIHByenlkemllbGnmIG5vd2VqIHNvbmR5IGxpYmJsa2lkIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogcHJ6eXBpc2HmIHVyerFkemVuaWEgZG8gc29uZHkgbGliYmxraWQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQzCittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogdXN1brHmIHNla3RvcvN3IHJvenJ1Y2hvd3ljaCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB3YXJuaW5nOiBkb24ndCBlcmFzZSBib290Yml0cyBzZWN0b3JzXG4iCittc2dzdHIgIiVzOiAlczogdXdhZ2E6IG5pZSB1c3Vuaep0byBzZWt0b3LzdyByb3pydWNob3d5Y2hcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoJXMgcGFydGl0aW9uIHRhYmxlIGRldGVjdGVkKS4gIgorbXNnc3RyICIgICAgICAgICh3eWtyeXRvIHRhYmxpY+ogcGFydHljamkgJXMpLiAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgb24gd2hvbGUgZGlzay4gIgorbXNnc3RyICIgICAgICAgIG5hIGNhs3ltIGR5c2t1LiAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKGNvbXBpbGVkIHdpdGhvdXQgbGliYmxraWQpLiAiCittc2dzdHIgIiAgICAgICAgKHpidWRvd2FubyBiZXogbGliYmxraWQpLiAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiUxJHM6IHV3YWdhOiB6aWdub3Jvd2FubyAtVSAoVVVJRC15IG5pZSBzsSBvYnOzdWdpd2FuZSBwcnpleiAlMSRzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZG9lcyBub3Qgc3VwcG9ydCBzd2Fwc3BhY2UgdmVyc2lvbiAlZC5cbiIKK21zZ3N0ciAiJXM6IGJyYWsgb2Jzs3VnaSBvYnN6YXJ1IHd5bWlhbnkgdyB3ZXJzamkgJWQuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQ4Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgImKzsWQ6IGFuYWxpemEgVVVJRC1hIG5pZSBwb3dpb2SzYSBzaeoiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIKK21zZ3N0ciAiJXM6IGKzsWQ6IE5pZSBtYSBnZHppZSB1dHdvcnp55iBvYnN6YXJ1IHd5bWlhbnk/XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc2l6ZSAlbGx1IEtpQiBpcyBsYXJnZXIgdGhhbiBkZXZpY2Ugc2l6ZSAlbGx1IEtpQlxuIgorbXNnc3RyICIiCisiJXM6IGKzsWQ6IHJvem1pYXIgJWxsdSBLaUIgamVzdCB3aeprc3p5IG5pvyByb3ptaWFyIHVyerFkemVuaWEgJWxsdSBLaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzd2FwIGFyZWEgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJWxkIEtpQlxuIgorbXNnc3RyICIlczogYrOxZDogb2JzemFyIHd5bWlhbnkgbXVzaSBtaWXmIHByenluYWptbmllaiAlbGQgS2lCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YXJuaW5nOiB0cnVuY2F0aW5nIHN3YXAgYXJlYSB0byAlbGx1IEtpQlxuIgorbXNnc3RyICIlczogdXdhZ2E6IHptbmllanN6b25vIHJvem1pYXIgd3ltaWFueSBkbyAlbGx1IEtpQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHdpbGwgbm90IHRyeSB0byBtYWtlIHN3YXBkZXZpY2Ugb24gJyVzJ1xuIgorbXNnc3RyICIlczogYrOxZDogb2Rtb3dhIHV0d29yemVuaWEgb2JzemFydSB3eW1pYW55IG5hICclcydcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiAlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIHN3YXBzcGFjZS5cbiIKK21zZ3N0ciAiJXM6IGKzsWQ6ICVzIGplc3QgcG9kbW9udG93YW55OyBvZG1vd2EgdXR3b3J6ZW5pYSBvYnN6YXJ1IHd5bWlhbnkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjQ4Cittc2dpZCAiVW5hYmxlIHRvIHNldCB1cCBzd2FwLXNwYWNlOiB1bnJlYWRhYmxlIgorbXNnc3RyICJOaWUgdWRhs28gc2nqIHV0d29yennmIG9ic3phcnUgd3ltaWFueTogbmllY3p5dGVsbnkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIlR3b3J6ZW5pZSBvYnN6YXJ1IHd5bWlhbnkgdyB3ZXJzamkgMSwgcm96bWlhciA9ICVsbHUgS2lCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiJXM6ICVzOiBuaWUgdWRhs28gc2nqIHphcGlzYeYgc3Ryb255IHN5Z25hdHVyeTogJXMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICJmc3luYyBuaWUgcG93afNksyBzaeoiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIG9idGFpbiBzZWxpbnV4IGZpbGUgbGFiZWw6ICVzXG4iCittc2dzdHIgIiVzOiAlczogbmllIHVkYbNvIHNp6iB1enlza2HmIGV0eWtpZXR5IHBsaWt1IFNFTGludWtzYTogJXNcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTAKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgIm1hdGNocGF0aGNvbigpIG5pZSBwb3dpb2SzbyBzaeoiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBuZXcgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJuaWUgdWRhs28gc2nqIHV0d29yenljIG5vd2VnbyBrb250ZWtzdHUgU0VMaW51a3NhIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5NQorbXNnaWQgImNvdWxkbid0IGNvbXB1dGUgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJuaWUgdWRhs28gc2nqIHd5bGljennmIGtvbnRla3N0dSBTRUxpbnVrc2EiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NzAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiJXM6IG5pZSB1ZGGzbyBzaeogcHJ6ZWV0eWtpZXRvd2HmICVzIG5hICVzOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgICVzICIKK21zZ3N0ciAiIgorIlNrs2FkbmlhOlxuIgorIiAgJXMgIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlICclcycgaXMgY29udHJvbCByYXcgZGV2ICh1c2UgcmF3PE4+IHdoZXJlIDxOPiBpcyBncmVhdGVyIHRoYW4gemVybylcbiIKK21zZ3N0ciAiIgorIlVyerFkemVuaWUgJyVzJyBqZXN0IHN0ZXJ1arFjeW0gdXJ6sWR6ZW5pZW0gc3Vyb3d5bSAobmFsZb95IHW/eeYgcmF3PE4+LCAiCisiZ2R6aWUgPE4+IGplc3Qgd2nqa3N6ZSBvZCB6ZXJhKVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIGJsb2NrIGRldmljZSAnJXMnICglcylcbiIKK21zZ3N0ciAiTmllIG1vv25hIHpsb2thbGl6b3dh5iB1cnqxZHplbmlhIGJsb2tvd2VnbyAnJXMnICglcylcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgYmxvY2sgZGV2XG4iCittc2dzdHIgIlVyerFkemVuaWUgJyVzJyBuaWUgamVzdCB1cnqxZHplbmllbSBibG9rb3d5bVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE4NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBtYXN0ZXIgcmF3IGRldmljZSAnIgorbXNnc3RyICJOaWUgbW+/bmEgdXR3b3J6eeYgZ7Pzd25lZ28gdXJ6sWR6ZW5pYSBzdXJvd2VnbyAnIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIk5pZSBtb79uYSB6bG9rYWxpem93YeYgdXJ6sWR6ZW5pYSBzdXJvd2VnbyAnJXMnICglcylcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmF3IGRldmljZSAnJXMnIGlzIG5vdCBhIGNoYXJhY3RlciBkZXZcbiIKK21zZ3N0ciAiVXJ6sWR6ZW5pZSBzdXJvd2UgJyVzJyBuaWUgamVzdCB1cnqxZHplbmllbSB6bmFrb3d5bVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSByYXcgZGV2XG4iCittc2dzdHIgIlVyerFkemVuaWUgJyVzJyBuaWUgamVzdCB1cnqxZHplbmllbSBzdXJvd3ltXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHF1ZXJ5aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICJCs7FkIG9kcHl0eXdhbmlhIHVyerFkemVuaWEgc3Vyb3dlZ28gKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICJyYXclZDpcdHByenlwaXNhbm8gZG8gdXJ6sWR6ZW5pYSBtYWpvciAlZCwgbWlub3IgJWRcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igc2V0dGluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiQrOxZCB1c3Rhd2lhbmlhIHVyerFkemVuaWEgc3Vyb3dlZ28gKCVzKVxuIgorCisjOiBmZGlzay9jZmRpc2suYzozNzggZmRpc2svY2ZkaXNrLmM6MjA4MworbXNnaWQgIlVudXNhYmxlIgorbXNnc3RyICJCZXp1v3l0ZWN6bmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAiV29sbmUgbWllanNjZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgzCittc2dpZCAiTGludXggZXh0MiIKK21zZ3N0ciAiTGludXggZXh0MiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg1Cittc2dpZCAiTGludXggZXh0MyIKK21zZ3N0ciAiTGludXggZXh0MyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg3Cittc2dpZCAiTGludXggWEZTIgorbXNnc3RyICJMaW51eCBYRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4OQorbXNnaWQgIkxpbnV4IEpGUyIKK21zZ3N0ciAiTGludXggSkZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTEKK21zZ2lkICJMaW51eCBSZWlzZXJGUyIKK21zZ3N0ciAiTGludXggUmVpc2VyRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU3Cittc2dpZCAiTGludXgiCittc2dzdHIgIkxpbnV4IgorCisjOiBmZGlzay9jZmRpc2suYzozOTYKK21zZ2lkICJPUy8yIEhQRlMiCittc2dzdHIgIk9TLzIgSFBGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk4Cittc2dpZCAiT1MvMiBJRlMiCittc2dzdHIgIk9TLzIgSUZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MDIKK21zZ2lkICJOVEZTIgorbXNnc3RyICJOVEZTIgorCisjOiBmZGlzay9jZmRpc2suYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBoYXMgYmVlbiBjaGFuZ2VkLlxuIgorbXNnc3RyICJEeXNrIHpvc3RhsyB6bWllbmlvbnkuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIk5hbGW/eSB6cmVzdGFydG93YeYgc3lzdGVtLCBhYnkgemFwZXduaeYgcG9wcmF3bmUgdWFrdHVhbG5pZW5pZSB0YWJsaWN5ICIKKyJwYXJ0eWNqaS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVV0FHQTogamW2bGkgem9zdGGzeSB1dHdvcnpvbmUgbHViIHptb2R5Zmlrb3dhbmVcbiIKKyJqYWtpZWtvbHdpZWsgcGFydHljamUgRE9TIDYueCwgcHJvc3rqIHBvc3p1a2HmXG4iCisiZG9kYXRrb3d5Y2ggaW5mb3JtYWNqaSB3IG1hbnVhbHUgZG8gY2ZkaXNrYS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIkKjoUQgS1JZVFlDWk5ZIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTcKK21zZ2lkICJQcmVzcyBhbnkga2V5IHRvIGV4aXQgY2ZkaXNrIgorbXNnc3RyICJQcm9zeuogbmFjaXNuseYgZG93b2xueSBrbGF3aXN6LCBhYnkgemFrb/FjennmIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY0IGZkaXNrL2NmZGlzay5jOjU3MgorbXNnaWQgIkNhbm5vdCBzZWVrIG9uIGRpc2sgZHJpdmUiCittc2dzdHIgIk5pZSB1ZGGzbyBwcnplbWlltmNp5iBzaeogcG8gZHlza3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIk5pZSB1ZGGzbyBzaeogb2Rjenl0YeYgZHlza3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU3NAorbXNnaWQgIkNhbm5vdCB3cml0ZSBkaXNrIGRyaXZlIgorbXNnc3RyICJOaWUgdWRhs28gc2nqIHphcGlzYeYgZHlza3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkxNworbXNnaWQgIlRvbyBtYW55IHBhcnRpdGlvbnMiCittc2dzdHIgIlpieXQgZHW/byBwYXJ0eWNqaSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTIyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIlBhcnR5Y2phIHphY3p5bmEgc2nqIHByemVkIHNla3RvcmVtIDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiUGFydHljamEga2/xY3p5IHNp6iBwcnplZCBzZWt0b3JlbSAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJQYXJ0eWNqYSB6YWN6eW5hIHNp6iB6YSBrb/FjZW0gZHlza3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJQYXJ0eWNqYSBrb/Fjenkgc2nqIHphIGtv8WNlbSBkeXNrdSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgIlBhcnR5Y2phIGtv8WN6eSBzaeogbmEgb3N0YXRuaW0sIGN66rZjaW93eW0gY3lsaW5kcnplIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgIlBhcnR5Y2plIGxvZ2ljem5lIG5pZSBzsSB3IGtvbGVqbm+2Y2kgbmEgZHlza3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2OQorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJQYXJ0eWNqZSBsb2dpY3puZSB6YWNob2R6sSBuYSBzaWViaWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJQb3dp6mtzem9uZSBwYXJ0eWNqZSBsb2dpY3puZSB6YWNob2R6sSBuYSBzaWViaWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMDMKK21zZ2lkICIiCisiISEhISBJbnRlcm5hbCBlcnJvciBjcmVhdGluZyBsb2dpY2FsIGRyaXZlIHdpdGggbm8gZXh0ZW5kZWQgcGFydGl0aW9uICEhISEiCittc2dzdHIgIiIKKyIhISEhIEKzsWQgd2V3bup0cnpueSBwcnp5IHR3b3J6ZW5pdSBwYXJ0eWNqaSBsb2dpY3puZWogYmV6IHJvenN6ZXJ6b25laiAhISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDE0IGZkaXNrL2NmZGlzay5jOjEwMjYKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisiTmllIG1vv25hIHR1IHV0d29yennmIG5hcOpkdSBsb2dpY3puZWdvIC0gcG93c3Rhs3lieSBkd2llIHBhcnR5Y2plICIKKyJyb3pzemVyem9uZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICJaYSBks3VnYSBwb3p5Y2phIHcgbWVudSwgbW+/ZSB3eWdssWRh5iBkeml3bmllLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTIyNAorbXNnaWQgIk1lbnUgd2l0aG91dCBkaXJlY3Rpb24uIERlZmF1bHRpbmcgdG8gaG9yaXpvbnRhbC4iCittc2dzdHIgIk1lbnUgYmV6IGtpZXJ1bmt1LCBwcnp5aupjaWUgZG9tebZsbmVnbyBwb3ppb21lZ28uIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzU2Cittc2dpZCAiSWxsZWdhbCBrZXkiCittc2dzdHIgIk5pZWRvendvbG9ueSBrbGF3aXN6IgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIlByb3N66iBuYWNpc26x5iBrbGF3aXN6LCBhYnkga29udHludW93YeYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiR7Pzd25hIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2Cittc2dpZCAiQ3JlYXRlIGEgbmV3IHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJVdHdvcnplbmllIG5vd2UgcGFydHljamkgZ7Pzd25laiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNyBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODUKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJMb2dpY2FsIgorbXNnc3RyICJMb2dpY3puYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNworbXNnaWQgIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiVXR3b3J6ZW5pZSBub3dlaiBwYXJ0eWNqaSBsb2dpY3puZWoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MyBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiQ2FuY2VsIgorbXNnc3RyICJBbnVsdWoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MworbXNnaWQgIkRvbid0IGNyZWF0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiQmV6IHR3b3J6ZW5pYSBwYXJ0eWNqaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NAorbXNnaWQgIiEhISBJbnRlcm5hbCBlcnJvciAhISEiCittc2dzdHIgIiEhISBCs7FkIHdld27qdHJ6bnkgISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ3Cittc2dpZCAiU2l6ZSAoaW4gTUIpOiAiCittc2dzdHIgIlJvem1pYXIgKHcgTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIlBvY3qxdGVrIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBiZWdpbm5pbmcgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiRG9kYW5pZSBwYXJ0eWNqaSBuYSBwb2N6sXRrdSB3b2xuZWdvIG1pZWpzY2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJFbmQiCittc2dzdHIgIktvbmllYyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkRvZGFuaWUgcGFydHljamkgbmEga2/xY3Ugd29sbmVnbyBtaWVqc2NhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTAwCittc2dpZCAiTm8gcm9vbSB0byBjcmVhdGUgdGhlIGV4dGVuZGVkIHBhcnRpdGlvbiIKK21zZ3N0ciAiQnJhayBtaWVqc2NhIG5hIHV0d29yemVuaWUgcGFydHljamkgcm96c3plcnpvbmVqIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc0Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJCcmFrIHRhYmxpY3kgcGFydHljamkuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzgKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuIFN0YXJ0aW5nIHdpdGggemVybyB0YWJsZS4iCittc2dzdHIgIkJyYWsgdGFibGljeSBwYXJ0eWNqaS4gUm96cG9jeupjaWUgb2QgcHVzdGVqIHRhYmxpY3kuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkKz6mRuYSBzeWduYXR1cmEgdGFibGljeSBwYXJ0eWNqaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorbXNnaWQgIlVua25vd24gcGFydGl0aW9uIHRhYmxlIHR5cGUiCittc2dzdHIgIk5pZXpuYW55IHR5cCB0YWJsaWN5IHBhcnR5Y2ppIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAiQ3p5IHphY3qx5iBvZCBwdXN0ZWogdGFibGljeSBbdC9OXSA/IgorCisjOiBmZGlzay9jZmRpc2suYzoxNjQyCittc2dpZCAiWW91IHNwZWNpZmllZCBtb3JlIGN5bGluZGVycyB0aGFuIGZpdCBvbiBkaXNrIgorbXNnc3RyICJQb2Rhbm8gd2nqY2VqIGN5bGluZHLzdyBuab8gbWlltmNpIHNp6iBuYSBkeXNrdSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NAorbXNnaWQgIkNhbm5vdCBvcGVuIGRpc2sgZHJpdmUiCittc2dzdHIgIk5pZSBtb79uYSBvdHdvcnp55iB1cnqxZHplbmlhIGR5c2t1IgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc2IGZkaXNrL2NmZGlzay5jOjE4NjUKK21zZ2lkICJPcGVuZWQgZGlzayByZWFkLW9ubHkgLSB5b3UgaGF2ZSBubyBwZXJtaXNzaW9uIHRvIHdyaXRlIgorbXNnc3RyICJPdHdhcnRvIGR5c2sgdyB0cnliaWUgdHlsa28gZG8gb2Rjenl0dSAtIGJyYWsgcHJhd2EgemFwaXN1IgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorIlV3YWdhISBXeWtyeXRvIG5pZW9ic7N1Z2l3YW6xIHRhYmxpY+ogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkuIE5hbGW/eSAiCisidb955iBHTlUgUGFydGVkYS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MDYKK21zZ2lkICJDYW5ub3QgZ2V0IGRpc2sgc2l6ZSIKK21zZ3N0ciAiTmllIG1vv25hIHBvYnJh5iByb3ptaWFydSBkeXNrdSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTczMgorbXNnaWQgIkJhZCBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiQrPqZG5hIHBhcnR5Y2phIGez83duYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiQrPqZG5hIHBhcnR5Y2phIGxvZ2ljem5hIgorCisjOiBmZGlzay9jZmRpc2suYzoxODc3Cittc2dpZCAiV2FybmluZyEhICBUaGlzIG1heSBkZXN0cm95IGRhdGEgb24geW91ciBkaXNrISIKK21zZ3N0ciAiVXdhZ2EhIFRvIG1vv2Ugem5pc3pjennmIGRhbmUgbmEgZHlza3UhIgorCisjOiBmZGlzay9jZmRpc2suYzoxODgxCittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIkN6eSBuYSBwZXdubyB6YXBpc2HmIG5hIGR5c2sgdGFibGlj6iBwYXJ0eWNqaT8gKHRhayBsdWIgbmllKTogIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg3Cittc2dpZCAibm8iCittc2dzdHIgIm5pZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4OQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIk5pZSB6YXBpc2FubyB0YWJsaWN5IHBhcnR5Y2ppIgorCisjOiBmZGlzay9jZmRpc2suYzoxODkxCittc2dpZCAieWVzIgorbXNnc3RyICJ0YWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTUKK21zZ2lkICJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIKK21zZ3N0ciAiUHJvc3rqIHdwaXNh5iBcInRha1wiIGx1YiBcIm5pZVwiIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk5Cittc2dpZCAiV3JpdGluZyBwYXJ0aXRpb24gdGFibGUgdG8gZGlzay4uLiIKK21zZ3N0ciAiWmFwaXN5d2FuaWUgdGFibGljeSBwYXJ0eWNqaSBuYSBkeXNrdS4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNCBmZGlzay9jZmRpc2suYzoxOTI4Cittc2dpZCAiV3JvdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIlphcGlzYW5vIHRhYmxpY+ogcGFydHljamkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKK21zZ2lkICIiCisiV3JvdGUgcGFydGl0aW9uIHRhYmxlLCBidXQgcmUtcmVhZCB0YWJsZSBmYWlsZWQuICBSdW4gcGFydHByb2JlKDgpLCBrcGFydHgiCisiKDgpIG9yIHJlYm9vdCB0byB1cGRhdGUgdGFibGUuIgorbXNnc3RyICIiCisiWmFwaXNhbm8gdGFibGlj6iBwYXJ0eWNqaSwgYWxlIHBvbm93bnkgb2Rjenl0IG5pZSBwb3dp82SzIHNp6i4gUHJvc3rqICIKKyJ1cnVjaG9taeYgcGFydHByb2JlKDgpLCBrcGFydHgoOCkgbHViIHpyZXN0YXJ0b3dh5iBzeXN0ZW0sIGFieSB1YWt0dWFsbmnmICIKKyJ0YWJsaWPqLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzNgorbXNnaWQgIk5vIHByaW1hcnkgcGFydGl0aW9ucyBhcmUgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisir2FkbmEgeiBns/N3bnljaCBwYXJ0eWNqaSBuaWUgamVzdCB6YXpuYWN6b25hIGpha28gcm96cnVjaG93YS4gRE9TLW93eSBNQlIgIgorInRlZ28gbmllIHVydWNob21pLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzOAorbXNnaWQgIiIKKyJNb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIldp6mNlaiBuab8gamVkbmEgZ7Pzd25hIHBhcnR5Y2phIGplc3QgemF6bmFjem9uYSBqYWtvIHJvenJ1Y2hvd2EuIERPUy1vd3kgIgorIk1CUiB0ZWdvIG5pZSB1cnVjaG9taS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5OTYgZmRpc2svY2ZkaXNrLmM6MjExNSBmZGlzay9jZmRpc2suYzoyMTk5Cittc2dpZCAiRW50ZXIgZmlsZW5hbWUgb3IgcHJlc3MgUkVUVVJOIHRvIGRpc3BsYXkgb24gc2NyZWVuOiAiCittc2dzdHIgIiIKKyJQcm9zeuogd3Byb3dhZHpp5iBuYXp36iBwbGlrdSBsdWIgd2Npc26x5iBSRVRVUk4sIGFieSB3ebZ3aWV0bGnmIG5hIGVrcmFuaWU6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAwNSBmZGlzay9jZmRpc2suYzoyMTIzIGZkaXNrL2NmZGlzay5jOjIyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIgorbXNnc3RyICJOaWUgbW+/bmEgb3R3b3J6eeYgcGxpa3UgJyVzJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlc1xuIgorbXNnc3RyICJVcnqxZHplbmllIGR5c2t1OiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNla3RvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2VrdG9yICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgQnJhayAgICAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDcKK21zZ2lkICIgICBQcmkvTG9nIgorbXNnc3RyICIgICBHsy4vTG9nLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0OQorbXNnaWQgIiAgIFByaW1hcnkiCittc2dzdHIgIiAgIEez83duYSAgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiICAgTG9naWN6bmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwODkgZmRpc2svZmRpc2suYzoxNzY3IGZkaXNrL2ZkaXNrLmM6MjEwNgorIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIyNyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjE2IGZkaXNrL3NmZGlzay5jOjYzOAorbXNnaWQgIlVua25vd24iCittc2dzdHIgIk5pZXpuYW55IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk1IGZkaXNrL2NmZGlzay5jOjI1NjMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5Cittc2dpZCAiQm9vdCIKK21zZ3N0ciAiUm96cnVjaCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorbXNnaWQgIk5vbmUiCittc2dzdHIgIkJyYWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIlRhYmxpY2EgcGFydHljamkgZGxhICVzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzYKK21zZ2lkICIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iCittc2dzdHIgIiAgICAgICAgICAgICAgUGllcndzenkgICAgT3N0YXRuaVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM3Cittc2dpZCAiIgorIiAjIFR5cGUgICAgICAgU2VjdG9yICAgICAgU2VjdG9yICAgT2Zmc2V0ICAgIExlbmd0aCAgIEZpbGVzeXN0ZW0gVHlwZSAoSUQpICIKKyJGbGFnXG4iCittc2dzdHIgIiIKKyIgIyBUeXAgICAgICAgIHNla3RvciAgICAgIHNla3RvciAgICBPZmZzZXQgICBEs3Vnb7bmICAgIElEIHN5c3RlbXUgcGxpa/N3ICAgIgorIkZsYWdhXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgICAtLVBvY3qxdGtvd2UtLS0gICAgICAtLS0tS2/xY293ZS0tLS0gICBQaWVyd3N6eSAgIExpY3piYVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCittc2dpZCAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCittc2dzdHIgIiAjIEZsYWdpIEezb3cuU2VrdC4gQ3lsLiAgSUQgIEezb3cuU2VrdC4gQ3lsLiAgICBTZWt0b3IgICAgc2VrdG9y83dcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJSYXciCittc2dzdHIgIlN1cm93eSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgIld5cGlzYW5pZSB0YWJsaWN5IHcgc3Vyb3d5bSBmb3JtYWNpZSBkYW55Y2giCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlNla3RvcnkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcKK21zZ2lkICJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICJXeXBpc2FuaWUgdGFibGljeSB3IGtvbGVqbm+2Y2kgc2VrdG9y83ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAiVGFibGljYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiWnd5a7NlIHd5cGlzYW5pZSB0YWJsaWN5IHBhcnR5Y2ppIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICJCZXogd3lwaXN5d2FuaWEgdGFibGljeSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgIkVrcmFuIHBvbW9jeSBkbGEgY2ZkaXNrYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4OQorbXNnaWQgIlRoaXMgaXMgY2ZkaXNrLCBhIGN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbmluZyBwcm9ncmFtLCB3aGljaCIKK21zZ3N0ciAiVG8gamVzdCBjZmRpc2sgLSBvcGFydHkgbmEgY3Vyc2VzIHByb2dyYW0gZG8gcGFydHljam9ub3dhbmlhIGR5c2t1LCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MAorbXNnaWQgImFsbG93cyB5b3UgdG8gY3JlYXRlLCBkZWxldGUgYW5kIG1vZGlmeSBwYXJ0aXRpb25zIG9uIHlvdXIgaGFyZCIKK21zZ3N0ciAicG96d2FsYWqxY3kgdHdvcnp55iwgdXN1d2HmIGkgbW9keWZpa293YeYgcGFydHljamUgbmEgdHdhcmR5bSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MQorbXNnaWQgImRpc2sgZHJpdmUuIgorbXNnc3RyICJkeXNrdS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiBpIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJQb2xlY2VuaWUgICAgWm5hY3plbmllIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk2Cittc2dpZCAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCittc2dzdHIgIi0tLS0tLS0tLSAgICAtLS0tLS0tLS0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTcKK21zZ2lkICIgIGIgICAgICAgICAgVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGIgICAgICAgICAgUHJ6ZbOxY3plbmllIGZsYWdpIHJvenJ1Y2h1IGRsYSBiaWW/sWNlaiBwYXJ0eWNqaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgZCAgICAgICAgICBEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGQgICAgICAgICAgVXN1bmnqY2llIGJpZb+xY2VqIHBhcnR5Y2ppIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIgIGcgICAgICAgICAgWm1pYW5hIHBhcmFtZXRy83cgY3lsaW5kcvN3LCBns293aWMgaSBzZWt0b3LzdyBuYSC2Y2llv2NlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAwCittc2dpZCAiICAgICAgICAgICAgIFdBUk5JTkc6IFRoaXMgb3B0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgcGVvcGxlIHdobyIKK21zZ3N0ciAiICAgICAgICAgICAgIFVXQUdBOiB0YSBvcGNqYSBwb3dpbm5hIGJ55iB1v3l3YW5hIHR5bGtvIHByemV6IG9zb2J5IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAxCittc2dpZCAiICAgICAgICAgICAgIGtub3cgd2hhdCB0aGV5IGFyZSBkb2luZy4iCittc2dzdHIgIiAgICAgICAgICAgICB3aWVkerFjZSBjbyByb2JpsS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICBXebZ3aWV0bGVuaWUgdGVnbyBla3JhbnUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKyIgIG0gICAgICAgICAgWm1ha3N5bWFsaXpvd2FuaWUgd3lrb3J6eXN0YW5pYSBkeXNrdSBwcnpleiBiaWW/sWOxIHBhcnR5Y2rqIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA0Cittc2dpZCAiICAgICAgICAgICAgIE5vdGU6IFRoaXMgbWF5IG1ha2UgdGhlIHBhcnRpdGlvbiBpbmNvbXBhdGlibGUgd2l0aCIKK21zZ3N0ciAiICAgICAgICAgICAgIFV3YWdhOiBtb79lIHRvIHNwb3dvZG93YeYgbmlla29tcGF0eWJpbG5vtuYgcGFydHljamkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCittc2dzdHIgIiAgICAgICAgICAgICB6IERPUy1lbSwgT1MvMiBpdHAuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA2Cittc2dpZCAiICBuICAgICAgICAgIENyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiICBuICAgICAgICAgIFV0d29yemVuaWUgbm93ZWogcGFydHljamkgbmEgd29sbnltIG1pZWpzY3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIgIHAgICAgICAgICAgV3lwaXNhbmllIHRhYmxpY3kgcGFydHljamkgbmEgZWtyYW5pZSBsdWIgZG8gcGxpa3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDgKK21zZ2lkICIgICAgICAgICAgICAgVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IGZvcm1hdHMgZm9yIHRoZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAgICAgICAgICBNb79uYSB3eWJyYeYgamVkZW4geiBraWxrdSBy879ueWNoIGZvcm1hdPN3IGxpc3R5IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA5Cittc2dpZCAiICAgICAgICAgICAgIHRoYXQgeW91IGNhbiBjaG9vc2UgZnJvbToiCittc2dzdHIgIiAgICAgICAgICAgICBwYXJ0eWNqaToiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgICAgICAgICAgICAgciAtIFJhdyBkYXRhIChleGFjdGx5IHdoYXQgd291bGQgYmUgd3JpdHRlbiB0byBkaXNrKSIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHIgLSBzdXJvd2UgZGFuZSAodyB0YWtpZWogcG9zdGFjaSwgamFrIG5hIGR5c2t1KSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAgICAgICAgICAgICBzIC0gVGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICIgICAgICAgICAgICAgICAgcyAtIHRhYmxpY2EgdyBrb2xlam5vtmNpIHNla3RvcvN3IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEyCittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICIgICAgICAgICAgICAgICAgdCAtIHRhYmxpY2EgdyBmb3JtYWNpZSBzdXJvd3ltIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAgWmFrb/FjemVuaWUgcHJvZ3JhbXUgYmV6IHphcGlzdSB0YWJsaWN5IHBhcnR5Y2ppIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIgIHQgICAgICAgICAgWm1pYW5hIHR5cHUgc3lzdGVtdSBwbGlr83ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIgIHUgICAgICAgICAgWm1pYW5hIGplZG5vc3RlayB3ebZ3aWV0bGFuaWEgcm96bWlhcnUgcGFydHljamkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTYKK21zZ2lkICIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiCittc2dzdHIgIiAgICAgICAgICAgICBQcnpls7FjemEgbWnqZHp5IE1CLCBzZWt0b3JhbWkgaSBjeWxpbmRyYW1pIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE3Cittc2dpZCAiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiCittc2dzdHIgIiAgVyAgICAgICAgICBaYXBpcyB0YWJsaWN5IHBhcnR5Y2ppIG5hIGR5c2sgKG11c2kgYnnmIHdpZWxraWUgVykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIgICAgICAgICAgICAgUG9uaWV3Yb8gbW+/ZSB0byB6bmlzemN6eeYgZGFuZSBuYSBkeXNrdSwgbmFsZb95IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE5Cittc2dpZCAiICAgICAgICAgICAgIGVpdGhlciBjb25maXJtIG9yIGRlbnkgdGhlIHdyaXRlIGJ5IGVudGVyaW5nIGB5ZXMnIG9yIgorbXNnc3RyICIgICAgICAgICAgICAgcG90d2llcmR6aeYgbHViIGFudWxvd2HmIHphcGlzIHdwaXN1arFjIFwidGFrXCIgbHViIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIwCittc2dpZCAiICAgICAgICAgICAgIGBubyciCittc2dzdHIgIiAgICAgICAgICAgICBcIm5pZVwiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIxCittc2dpZCAiVXAgQXJyb3cgICAgIE1vdmUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBwYXJ0aXRpb24iCittc2dzdHIgIkfzcmEgICAgICAgICBQcnplc3VuaepjaWUga3Vyc29yYSBuYSBwb3ByemVkbmmxIHBhcnR5Y2rqIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIyCittc2dpZCAiRG93biBBcnJvdyAgIE1vdmUgY3Vyc29yIHRvIHRoZSBuZXh0IHBhcnRpdGlvbiIKK21zZ3N0ciAiRPOzICAgICAgICAgIFByemVzdW5p6mNpZSBrdXJzb3JhIG5hIG5hc3TqcG6xIHBhcnR5Y2rqIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIzCittc2dpZCAiQ1RSTC1MICAgICAgIFJlZHJhd3MgdGhlIHNjcmVlbiIKK21zZ3N0ciAiQ3RybC1MICAgICAgIE9kcnlzb3dhbmllIGVrcmFudSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICA/ICAgICAgICAgIFd5tndpZXRsZW5pZSB0ZWdvIGVrcmFudSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNgorbXNnaWQgIk5vdGU6IEFsbCBvZiB0aGUgY29tbWFuZHMgY2FuIGJlIGVudGVyZWQgd2l0aCBlaXRoZXIgdXBwZXIgb3IgbG93ZXIiCittc2dzdHIgIlV3YWdhOiB3c3p5c3RraWUgcG9sZWNlbmlhIG1vZ7EgYnnmIHVydWNob21pb25lIHdpZWxraW1pIGx1YiBtYbN5bWkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgImxpdGVyYW1pICh6IHd5arF0a2llbSB6YXBpc3UgLSBXKS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAiQ3lsaW5kcnkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTgKK21zZ2lkICJDaGFuZ2UgY3lsaW5kZXIgZ2VvbWV0cnkiCittc2dzdHIgIlptaWFuYSBsaWN6YnkgY3lsaW5kcvN3IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzAKK21zZ2lkICJIZWFkcyIKK21zZ3N0ciAiR7Nvd2ljZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJabWlhbmEgbGljemJ5IGezb3dpYyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiCittc2dzdHIgIlptaWFuYSBsaWN6Ynkgc2VrdG9y83ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICJLb25pZWMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIlpha2/xY3plbmllIHptaWFuIHcgZ2VvbWV0cmlpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzc0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIKK21zZ3N0ciAiTGljemJhIGN5bGluZHLzdzogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzg1IGZkaXNrL2NmZGlzay5jOjI5NTgKK21zZ2lkICJJbGxlZ2FsIGN5bGluZGVycyB2YWx1ZSIKK21zZ3N0ciAiTmllZG96d29sb25hIGxpY3piYSBjeWxpbmRy83ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTEKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGhlYWRzOiAiCittc2dzdHIgIkxpY3piYSBns293aWM6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAiTmllZG96d29sb25hIGxpY3piYSBns293aWMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MDQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrOiAiCittc2dzdHIgIkxpY3piYSBzZWt0b3LzdyBuYSC2Y2llv2NlOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MTEgZmRpc2svY2ZkaXNrLmM6Mjk3NQorbXNnaWQgIklsbGVnYWwgc2VjdG9ycyB2YWx1ZSIKK21zZ3N0ciAiTmllZG96d29sb25hIGxpY3piYSBzZWt0b3LzdyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUxNAorbXNnaWQgIkVudGVyIGZpbGVzeXN0ZW0gdHlwZTogIgorbXNnc3RyICJUeXAgc3lzdGVtdSBwbGlr83c6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzMgorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBlbXB0eSIKK21zZ3N0ciAiTmllIG1vv25hIHptaWVuaeYgdHlwdSBzeXN0ZW11IHBsaWvzdyBuYSBwdXN0eSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzNAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBleHRlbmRlZCIKK21zZ3N0ciAiTmllIG1vv25hIHptaWVuaeYgdHlwdSBzeXN0ZW11IHBsaWvzdyBuYSBwYXJ0eWNq6iByb3pzemVyem9usSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIj8/PyglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiLCBOSyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIk5LIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAiR7MvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICJOaWV6bmFueSAoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXMiCittc2dzdHIgIlVyerFkemVuaWU6ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQgTUIiCittc2dzdHIgIlJvem1pYXI6ICVsbGQgYmFqdPN3LCAlbGxkIE1CIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQuJWxsZCBHQiIKK21zZ3N0ciAiUm96bWlhcjogJWxsZCBiYWp083csICVsbGQuJWxsZCBHQiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3NworIywgYy1mb3JtYXQKK21zZ2lkICJIZWFkczogJWQgICBTZWN0b3JzIHBlciBUcmFjazogJWQgICBDeWxpbmRlcnM6ICVsbGQiCittc2dzdHIgIkezb3dpYzogJWQgICBTZWt0b3LzdyBuYSC2Y2llv2NlOiAlZCAgIEN5bGluZHLzdzogJWxsZCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MSBsb2dpbi11dGlscy9jaGZuLmM6Mzc3Cittc2dpZCAiTmFtZSIKK21zZ3N0ciAiTmF6d2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiRmxhZ2kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIlR5cCBwYXJ0eWNqaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIlN5c3RlbSBwbGlr83ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODUKK21zZ2lkICJbTGFiZWxdIgorbXNnc3RyICJbRXR5a2lldGFdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgICBTZWt0b3LzdyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4OQorbXNnaWQgIiAgQ3lsaW5kZXJzIgorbXNnc3RyICIgIEN5bGluZHLzdyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MQorbXNnaWQgIiAgU2l6ZSAoTUIpIgorbXNnc3RyICIgIFJvem1pYXIgKE1CKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MworbXNnaWQgIiAgU2l6ZSAoR0IpIgorbXNnc3RyICIgIFJvem1pYXIgKEdCKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIkJvb3RhYmxlIgorbXNnc3RyICJSb3pydWNoIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJQcnpls7FjemVuaWUgZmxhZ2kgcm96cnVjaHUgZGxhIGJpZb+xY2VqIHBhcnR5Y2ppIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJVc3XxIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiVXN1bmnqY2llIGJpZb+xY2VqIHBhcnR5Y2ppIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiR2VvbWV0cnkiCittc2dzdHIgIkdlb21ldHJpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkNoYW5nZSBkaXNrIGdlb21ldHJ5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICJabWlhbmEgZ2VvbWV0cmlpIGR5c2t1ICh0eWxrbyBkbGEgZWtzcGVydPN3KSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIkhlbHAiCittc2dzdHIgIlBvbW9jIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiUHJpbnQgaGVscCBzY3JlZW4iCittc2dzdHIgIld5tndpZXRsZW5pZSBla3JhbnUgcG9tb2N5IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUiCittc2dzdHIgIk1ha3N5bWFsaXp1aiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIiCisiWm1ha3N5bWFsaXpvd2FuaWUgd3lrb3J6eXN0YW5pYSBkeXNrdSBwcnpleiBiaWW/sWOxIHBhcnR5Y2rqICh0eWxrbyBkbGEgIgorImVrc3BlcnTzdykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJOZXciCittc2dzdHIgIk5vd2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIlV0d29yemVuaWUgbm93ZWogcGFydHljamkgbmEgd29sbnltIG1pZWpzY3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiV3lwaXN6IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICJXeXBpc2FuaWUgdGFibGljeSBwYXJ0eWNqaSBuYSBla3JhbmllIGx1YiBkbyBwbGlrdSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIlpha2/xY3oiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiWmFrb/FjemVuaWUgcHJvZ3JhbXUgYmV6IHphcGlzdSB0YWJsaWN5IHBhcnR5Y2ppIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAiVHlwIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAiWm1pYW5hIHR5cHUgc3lzdGVtdSBwbGlr83cgKERPUywgTGludXgsIE9TLzIgaXRkLikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAiSmVkbm9zdGtpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAiWm1pYW5hIGplZG5vc3RlayB3ebZ3aWV0bGFuaWEgcm96bWlhcnUgcGFydHljamkgKE1CLCBzZWt0LiwgY3lsLikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSIKK21zZ3N0ciAiWmFwaXN6IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhKSIKK21zZ3N0ciAiWmFwaXMgdGFibGljeSBwYXJ0eWNqaSBuYSBkeXNrIChtb79lIHRvIHpuaXN6Y3p55iBkYW5lKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgwNQorbXNnaWQgIkNhbm5vdCBtYWtlIHRoaXMgcGFydGl0aW9uIGJvb3RhYmxlIgorbXNnc3RyICJOaWUgbW+/bmEgdWN6eW5p5iB0ZWogcGFydHljamkgcm96cnVjaG93sSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgxNQorbXNnaWQgIkNhbm5vdCBkZWxldGUgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJOaWUgbW+/bmEgdXN1brHmIHB1c3RlaiBwYXJ0eWNqaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICJOaWUgbW+/bmEgem1ha3N5bWFsaXpvd2HmIHRlaiBwYXJ0eWNqaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NQorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIHVudXNhYmxlIgorbXNnc3RyICJUYSBwYXJ0eWNqYSBqZXN0IGJlenW/eXRlY3puYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJUYSBwYXJ0eWNqYSBqdb8gamVzdCB1v3l3YW5hIgorCisjOiBmZGlzay9jZmRpc2suYzoyODY0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSB0aGUgdHlwZSBvZiBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIk5pZSBtb79uYSB6bWllbmnmIHR5cHUgcHVzdGVqIHBhcnR5Y2ppIgorCisjOiBmZGlzay9jZmRpc2suYzoyODkxIGZkaXNrL2NmZGlzay5jOjI4OTcKK21zZ2lkICJObyBtb3JlIHBhcnRpdGlvbnMiCittc2dzdHIgIk5pZSBtYSB3aepjZWogcGFydHljamkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MDQKK21zZ2lkICJJbGxlZ2FsIGNvbW1hbmQiCittc2dzdHIgIk5pZWRvendvbG9uZSBwb2xlY2VuaWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiBpIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiU2uzYWRuaWE6XG4iCisiV3lwaXNhbmllIHdlcnNqaTpcbiIKKyIgICAgICAgICVzIC12XG4iCisiV3lwaXNhbmllIHRhYmxpY3kgcGFydHljamk6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcGNqZV0gdXJ6sWR6ZW5pZVxuIgorIlW/eWNpZSBpbnRlcmFrdHl3bmU6XG4iCisiICAgICAgICAlcyBbb3BjamVdIHVyerFkemVuaWVcbiIKKyJcbiIKKyJPcGNqZTpcbiIKKyItYTogdb95Y2llIHN0cnphs2tpIHphbWlhc3QgcG9ktndpZXRsZW5pYTtcbiIKKyItejogcm96cG9jeupjaWUgb2QgcHVzdGVqIHRhYmxpY3kgcGFydHljamkgemFtaWFzdCBvZGN6eXR1IGplaiB6IGR5c2t1O1xuIgorIi1jIEMgLWggSCAtcyBTOiB3eW11c3plbmllIGlubmVqIGxpY3pieSBjeWxpbmRy83csIGezb3dpYyBpIHNla3RvcvN3IG5hXG4iCisiICAgICAgICAgICAgICAgILZjaWW/Y2Ugbmm/IHByenlq6nRhIHByemV6IGqxZHJvLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza2FpeGxhYmVsLmM6MjcKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIEFJWCBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IExpbnV4IGNhbm5vdCBoYW5kbGUgdGhlc2VcbiIKKyJcdGRpc2tzIGF0IHRoZSBtb21lbnQuICBOZXZlcnRoZWxlc3Mgc29tZVxuIgorIlx0YWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorIlx0My4gQmVmb3JlIGRlbGV0aW5nIHRoaXMgcGh5c2ljYWwgdm9sdW1lIGJlIHN1cmVcbiIKKyJcdCAgIHRvIHJlbW92ZSB0aGUgZGlzayBsb2dpY2FsbHkgZnJvbSB5b3VyIEFJWFxuIgorIlx0ICAgbWFjaGluZS4gIChPdGhlcndpc2UgeW91IGJlY29tZSBhbiBBSVhwZXJ0KS4iCittc2dzdHIgIiIKKyJcbiIKKyJcdE5hIHR5bSBkeXNrdSBpc3RuaWVqZSBwb3ByYXduYSBldHlraWV0YSB0eXB1IEFJWC5cbiIKKyJcdE5pZXN0ZXR5IExpbnV4IG5pZSBvYmVjbmllIG5pZSBwb3RyYWZpIG9ic7N1v3nmXG4iCisiXHR0YWtpY2ggZHlza/N3LiBUeW0gbmllbW5pZWoga2lsa2EgdXdhZzpcbiIKKyJcdDEuIGZkaXNrIHpuaXN6Y3p5IGplaiB6YXdhcnRvtuYgcHJ6eSB6YXBpc2llLlxuIgorIlx0Mi4gTmFsZb95IHNp6iB1cGV3bmnmLCC/ZSB0ZW4gZHlzayBOSUUgcG96b3N0YWplXG4iCisiXHQgICBha3R5d26xIGN66rZjabEgv2FkbmVqIGdydXB5IHdvbHVtZW7zd1xuIgorIlx0ICAgKHcgcHJ6ZWNpd255bSB3eXBhZGt1IG1vv25hIHVzdW6x5iB0YWu/ZVxuIgorIlx0ICAgIHphd2FydG+25iBpbm55Y2ggZHlza/N3LCBqZbZsaSBuaWUgbWFqsSBrb3BpaSkuXG4iCisiXHQzLiBQcnplZCB1c3V3YW5pZW0gdGVnbyB3b2x1bWVudSBmaXp5Y3puZWdvIG5hbGW/eVxuIgorIiAgICAgc2nqIHVwZXduaeYsIL9lIGR5c2sgbG9naWN6bnkgem9zdGGzIHVzdW5p6nR5XG4iCisiICAgICBwb2QgQUlYLWVtICh3IHByemVjaXdueW0gd3lwYWRrdSBtb79uYSB6b3N0YeZcbiIKKyIgICAgIEFJWHBlcnRlbSkuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkV0eWtpZXRhIEJTRCBkbGEgdXJ6sWR6ZW5pYTogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOCBmZGlzay9mZGlzay5jOjM5NCBmZGlzay9mZGlzay5jOjQxMworIzogZmRpc2svZmRpc2suYzo0MzEgZmRpc2svZmRpc2suYzo0MzggZmRpc2svZmRpc2suYzo0NjEgZmRpc2svZmRpc2suYzo0NzkKKyM6IGZkaXNrL2ZkaXNrLmM6NDk1IGZkaXNrL2ZkaXNrLmM6NTExCittc2dpZCAiQ29tbWFuZCBhY3Rpb24iCittc2dzdHIgIlBvbGVjZW5pZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOQorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgdXN1bmnqY2llIHBhcnR5Y2ppIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMAorbXNnaWQgIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiCittc2dzdHIgIiAgIGUgICBlZHljamEgZGFueWNoIHVyerFkemVuaWEiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICB6YWluc3RhbG93YW5pZSBrb2R1IHJvenJ1Y2hvd2VnbyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMgorbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIGZpbGVzeXN0ZW0gdHlwZXMiCittc2dzdHIgIiAgIGwgICB3eXBpc2FuaWUgem5hbnljaCB0eXDzdyBzeXN0ZW3zdyBwbGlr83ciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICB3ebZ3aWV0bGVuaWUgdGVnbyBtZW51IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM0Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgZG9kYW5pZSBub3dlaiBwYXJ0eWNqaSBCU0QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIHd5cGlzYW5pZSB0YWJsaWN5IHBhcnR5Y2ppIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgIHpha2/xY3plbmllIGJleiB6YXBpc3l3YW5pYSB6bWlhbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiICAgciAgIHBvd3LzdCBkbyBns/N3bmVnbyBtZW51IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM4Cittc2dpZCAiICAgcyAgIHNob3cgY29tcGxldGUgZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgcG9rYXphbmllIGNhs2VqIGV0eWtpZXR5IGR5c2t1IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM5Cittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIGZpbGVzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICB6bWlhbmEgSUQgc3lzdGVtdSBwbGlr83cgcGFydHljamkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDAKK21zZ2lkICIgICB1ICAgY2hhbmdlIHVuaXRzIChjeWxpbmRlcnMvc2VjdG9ycykiCittc2dzdHIgIiAgIHUgICB6bWlhbmEgamVkbm9zdGVrIChjeWxpbmRyeS9zZWt0b3J5KSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgIHphcGlzYW5pZSBldHlraWV0eSBuYSBkeXNrIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQzCittc2dpZCAiICAgeCAgIGxpbmsgQlNEIHBhcnRpdGlvbiB0byBub24tQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgeCAgIHBvs7FjemVuaWUgcGFydHljamkgQlNEIHogcGFydHljarEgbmllLUJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIlBhcnR5Y2phICVzIG1hIG5pZXBvcHJhd255IHNla3RvciBwb2N6sXRrb3d5IDAuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICJPZGN6eXQgZXR5a2lldHkgZHlza3UgJXMgdyBzZWt0b3J6ZSAlZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAiTmEgJXMgbmllIG1hIHBhcnR5Y2ppICpCU0QuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyMDMKK21zZ2lkICJCU0QgZGlza2xhYmVsIGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIlBvbGVjZW5pZSBkbGEgZXR5a2lldHkgZHlza3UgQlNEIChtIHd5tndpZXRsYSBwb21vYyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI4MyBmZGlzay9mZGlzay5jOjIzMjggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzOAorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdCAlcyIKK21zZ3N0ciAiUGllcndzenkgJXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICVzIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsiCittc2dzdHIgIk9zdGF0bmkgJXMgYWxibyArcm96bWlhciwgK3Jvem1pYXJNIGx1YiArcm96bWlhcksiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJXNcbiIKK21zZ3N0ciAidHlwOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE5CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVkXG4iCittc2dzdHIgInR5cDogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgImR5c2s6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsYWJlbDogJS4qc1xuIgorbXNnc3RyICJldHlraWV0YTogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAiZmxhZ2kiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIHJlbW92YWJsZSIKK21zZ3N0ciAiIHd5am1vd2FsbnkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIEVDQyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiIHdhZGxpd2UiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXMvc2VjdG9yOiAlbGRcbiIKK21zZ3N0ciAiYmFqdPN3L3Nla3RvcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy90cmFjazogJWxkXG4iCittc2dzdHIgInNla3RvcvN3L7ZjaWW/a+o6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgIrZjaWW/ZWsvY3lsaW5kZXI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJzZWt0b3Lzdy9jeWxpbmRlcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiY3lsaW5kcvN3OiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgIm9ici4vbWluOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgImludGVybGVhdmU6ICVkXG4iCittc2dzdHIgInByemVwbG90OiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrc2tldzogJWRcbiIKK21zZ3N0ciAicHJ6ZXN1bmnqY2llIGRsYSC2Y2llv2tpOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAicHJ6ZXN1bmnqY2llIGRsYSBjeWxpbmRyYTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiem1pYW5hIGezb3dpY3k6ICVsZFx0XHQjIG1pbGlzZWt1bmRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgInptaWFuYSC2Y2llv2tpOiAlbGRcdFx0IyBtaWxpc2VrdW5kXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgImRhbmUgdXJ6sWR6ZW5pYTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgcGFydHljamk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIyAgICAgICBzdGFydCAgICAgICBlbmQgICAgICBzaXplICAgICBmc3R5cGUgICBbZnNpemUgYnNpemUgICBjcGddXG4iCittc2dzdHIgIiMgICAgICAgcG9jerF0ZWsgICAga29uaWVjICAgcm96bWlhciAgdHlwIEZTICAgW3IuZnIuIHIuYmxrLiAgYy9nXVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGluZyBkaXNrbGFiZWwgdG8gJXMuXG4iCittc2dzdHIgIlphcGlzIGV0eWtpZXR5IGR5c2t1IG5hICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDE5IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorbXNnc3RyICIlcyBuaWUgemF3aWVyYSBldHlraWV0eSBkeXNrdS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJVdHdvcnp55iBldHlraWV06iBkeXNrdT8gKHkvbikgIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICJiYWp083cvc2VrdG9yIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic2VrdG9y83cvtmNpZb9r6iIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAitmNpZb9lay9jeWxpbmRlciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAiY3lsaW5kcvN3IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDc2Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlciIKK21zZ3N0ciAic2VrdG9y83cvY3lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSA8PSBzZWN0b3JzL3RyYWNrICogdHJhY2tzL2N5bGluZGVyIChkZWZhdWx0KS5cbiIKK21zZ3N0ciAiTXVzaSBieeYgPD0gc2VrdG9y83cvtmNpZb9r6iAqILZjaWW/ZWsvY3lsaW5kZXIgKGRvbXm2bG5pZSkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODIKK21zZ2lkICJycG0iCittc2dzdHIgIm9ici4vbWluIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAicHJ6ZXBsb3QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODQKK21zZ2lkICJ0cmFja3NrZXciCittc2dzdHIgInByemVzdW5p6mNpZSBkbGEgtmNpZb9raSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NQorbXNnaWQgImN5bGluZGVyc2tldyIKK21zZ3N0ciAicHJ6ZXN1bmnqY2llIGRsYSBjeWxpbmRyYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgInptaWFuYSBns293aWN5IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg3Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlayIKK21zZ3N0ciAiem1pYW5hILZjaWW/a2kiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKK21zZ3N0ciAiS29kIHJvenJ1Y2hvd3k6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIktvZCByb3pydWNob3d5IHphY2hvZHppIG5hIGV0eWtpZXTqIGR5c2t1IVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIGluc3RhbGxlZCBvbiAlcy5cbiIKK21zZ3N0ciAiWmFpbnN0YWxvd2FubyBrb2Qgcm96cnVjaG93eSBuYSAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gKGEtJWMpOiAiCittc2dzdHIgIlBhcnR5Y2phIChhLSVjKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIlV0d29yem9ubyBqdb8gbWFrc3ltYWxusSBsaWN6YuogcGFydHljamlcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiIKK21zZ3N0ciAiVGEgcGFydHljamEganW/IGlzdG5pZWplLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHRvbyBtYW55IHBhcnRpdGlvbnMgKCVkLCBtYXhpbXVtIGlzICVkKS5cbiIKK21zZ3N0ciAiVXdhZ2E6IHphIGR1v28gcGFydHljamkgKCVkLCBtYWtzaW11bSB0byAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTeW5jaHJvbml6YWNqYSBkeXNr83cuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKyJTa7NhZG5pYTpcbiIKKyIgZmRpc2sgW29wY2plXSA8ZHlzaz4gICAgICB6bWlhbmEgdGFibGljeSBwYXJ0eWNqaVxuIgorIiBmZGlzayBbb3BjamVdIC1sIDxkeXNrPiAgIHd5cGlzYW5pZSB0YWJsaWMoeSkgcGFydHljamlcbiIKKyIgZmRpc2sgLXMgPHBhcnR5Y2phPiAgICAgICBwb2RhbmllIHJvem1pYXJ1IHBhcnR5Y2ppIHcgYmxva2FjaFxuIgorIlxuIgorIk9wY2plOlxuIgorIiAtYiA8cm96bWlhcj4gICAgICAgICAgICAgIHJvem1pYXIgYmxva3UgKDUxMiwgMTAyNCwgMjA0OCBsdWIgNDA5NilcbiIKKyIgLWMgICAgICAgICAgICAgICAgICAgICAgICB3ebOxY3plbmllIHRyeWJ1IGtvbXBhdHliaWxub7ZjaSB6IERPUy1lbVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHd5tndpZXRsZW5pZSBvcGlzdVxuIgorIiAtdSA8cm96bWlhcj4gICAgICAgICAgICAgIHBvZGF3YW5pZSByb3ptaWFy83cgdyBzZWt0b3JhY2ggemFtaWFzdCB3ICIKKyJjeWxpbmRyYWNoXG4iCisiIC12ICAgICAgICAgICAgICAgICAgICAgICAgd3m2d2lldGxlbmllIHdlcnNqaVxuIgorIiAtQyA8bGljemJhPiAgICAgICAgICAgICAgIHBvZGFuaWUgbGljemJ5IGN5bGluZHLzd1xuIgorIiAtSCA8bGljemJhPiAgICAgICAgICAgICAgIHBvZGFuaWUgbGljemJ5IGezb3dpY1xuIgorIiAtUyA8bGljemJhPiAgICAgICAgICAgICAgIHBvZGFuaWUgbGljemJ5IHNla3RvcvN3IG5hILZjaWW/Y2VcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIKK21zZ3N0ciAiTmllIG1vv25hIG90d29yennmICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byByZWFkICVzXG4iCittc2dzdHIgIk5pZSBtb79uYSBvZGN6eXRh5iAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2VlayBvbiAlc1xuIgorbXNnc3RyICJOaWUgbW+/bmEgem1pZW5p5iBwb3p5Y2ppIG5hICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSAlc1xuIgorbXNnc3RyICJOaWUgbW+/bmEgemFwaXNh5iAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlc1xuIgorbXNnc3RyICJpb2N0bCBCTEtHRVRTSVpFIG5pZSBwb3dp82SzIHNp6iBuYSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBhbnkgbW9yZSBtZW1vcnlcbiIKK21zZ3N0ciAiTmllIG1vv25hIHByenlkemllbGnmIHdp6mNlaiBwYW1p6mNpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAiQrOxZCBrcnl0eWN6bnlcbiIKKworIzogZmRpc2svZmRpc2suYzozOTUKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgcmVhZCBvbmx5IGZsYWciCittc2dzdHIgIiAgIGEgICB6bWlhbmEgZmxhZ2kgdHlsa28gZG8gb2Rjenl0dSIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAgbW9keWZpa2FjamEgZXR5a2lldHkgZHlza3UgQlNEIgorCisjOiBmZGlzay9mZGlzay5jOjM5NworbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIG1vdW50YWJsZSBmbGFnIgorbXNnc3RyICIgICBjICAgem1pYW5hIGZsYWdpIG1vbnRvd2Fsbm+2Y2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIHVzdW5p6mNpZSBwYXJ0eWNqaSIKKworIzogZmRpc2svZmRpc2suYzozOTkgZmRpc2svZmRpc2suYzo0MTggZmRpc2svZmRpc2suYzo0NDMKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgIGwgICB3eXBpc2FuaWUgem5hbnljaCB0eXDzdyBwYXJ0eWNqaSIKKworIzogZmRpc2svZmRpc2suYzo0MDEgZmRpc2svZmRpc2suYzo0MjAgZmRpc2svZmRpc2suYzo0NDUKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIGRvZGFuaWUgbm93ZWogcGFydHljamkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAyIGZkaXNrL2ZkaXNrLmM6NDIxIGZkaXNrL2ZkaXNrLmM6NDMzIGZkaXNrL2ZkaXNrLmM6NDQ2Cittc2dpZCAiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBvICAgdXR3b3J6ZW5pZSBub3dlaiwgcHVzdGVqIERPUy1vd2VqIHRhYmxpY3kgcGFydHljamkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorbXNnaWQgIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgd3lwaXNhbmllIHRhYmxpY3kgcGFydHljamkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgdXR3b3J6ZW5pZSBub3dlaiwgcHVzdGVqIGV0eWtpZXR5IGR5c2t1IFN1bmEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA2IGZkaXNrL2ZkaXNrLmM6NDI1IGZkaXNrL2ZkaXNrLmM6NDUwCittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIHN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgIHptaWFuYSBJRCBzeXN0ZW11IHBhcnR5Y2ppIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIHptaWFuYSBqZWRub3N0ZWsgd3m2d2lldGxhbmlhL3dwcm93YWR6YW5pYSIKKworIzogZmRpc2svZmRpc2suYzo0MDggZmRpc2svZmRpc2suYzo0MjcgZmRpc2svZmRpc2suYzo0NTIgZmRpc2svZmRpc2suYzo0NzQKKyM6IGZkaXNrL2ZkaXNrLmM6NDkxIGZkaXNrL2ZkaXNrLmM6NTA3IGZkaXNrL2ZkaXNrLmM6NTI1Cittc2dpZCAiICAgdiAgIHZlcmlmeSB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICB2ICAgd2VyeWZpa2FjamEgdGFibGljeSBwYXJ0eWNqaSIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiAgIHcgICB6YXBpcyB0YWJsaWN5IHBhcnR5Y2ppIG5hIGR5c2sgaSB6YWtv8WN6ZW5pZSIKKworIzogZmRpc2svZmRpc2suYzo0MTAgZmRpc2svZmRpc2suYzo0NTQKK21zZ2lkICIgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiICAgeCAgIGRvZGF0a293ZSBmdW5rY2plICh0eWxrbyBkbGEgZWtzcGVydPN3KSIKKworIzogZmRpc2svZmRpc2suYzo0MTQKK21zZ2lkICIgICBhICAgc2VsZWN0IGJvb3RhYmxlIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYSAgIHd5YvNyIHBhcnR5Y2ppIHJvenJ1Y2hvd2VqIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAgZWR5Y2phIHdwaXN1IHBsaWt1IHJvenJ1Y2hvd2VnbyIKKworIzogZmRpc2svZmRpc2suYzo0MTYKK21zZ2lkICIgICBjICAgc2VsZWN0IHNnaSBzd2FwIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYyAgIHd5YvNyIHBhcnR5Y2ppIHd5bWlhbnkgU0dJIgorCisjOiBmZGlzay9mZGlzay5jOjQzOQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnIgorbXNnc3RyICIgICBhICAgem1pYW5hIGZsYWdpIHJvenJ1Y2h1IgorCisjOiBmZGlzay9mZGlzay5jOjQ0MQorbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciCittc2dzdHIgIiAgIGMgICB6bWlhbmEgZmxhZ2kga29tcGF0eWJpbG5vtmNpIHogRE9TLWVtIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MgorbXNnaWQgIiAgIGEgICBjaGFuZ2UgbnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGEgICB6bWlhbmEgbGljemJ5IHptaWVubnljaCBjeWxpbmRy83ciCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYzIGZkaXNrL2ZkaXNrLmM6NDgxIGZkaXNrL2ZkaXNrLmM6NDk3IGZkaXNrL2ZkaXNrLmM6NTEzCittc2dpZCAiICAgYyAgIGNoYW5nZSBudW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICIgICBjICAgem1pYW5hIGxpY3pieSBjeWxpbmRy83ciCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY0IGZkaXNrL2ZkaXNrLmM6NDgyIGZkaXNrL2ZkaXNrLmM6NDk4IGZkaXNrL2ZkaXNrLmM6NTE0Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBkICAgd3lwaXNhbmllIHN1cm93eWNoIGRhbnljaCB0YWJsaWN5IHBhcnR5Y2ppIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAgem1pYW5hIGxpY3pieSBkb2RhdGtvd3ljaCBzZWt0b3LzdyBuYSBjeWxpbmRlciIKKworIzogZmRpc2svZmRpc2suYzo0NjYgZmRpc2svZmRpc2suYzo0ODUgZmRpc2svZmRpc2suYzo1MDEgZmRpc2svZmRpc2suYzo1MTgKK21zZ2lkICIgICBoICAgY2hhbmdlIG51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiICAgaCAgIHptaWFuYSBsaWN6YnkgZ7Nvd2ljIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NworbXNnaWQgIiAgIGkgICBjaGFuZ2UgaW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiAgIGkgICB6bWlhbmEgd3Nw87NjenlubmlrYSBwcnplcGxvdHUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY4Cittc2dpZCAiICAgbyAgIGNoYW5nZSByb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiICAgbyAgIHptaWFuYSBwcupka2+2Y2kgb2Jyb3Rvd2VqIChvYnIuL21pbikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDczIGZkaXNrL2ZkaXNrLmM6NDkwIGZkaXNrL2ZkaXNrLmM6NTA2IGZkaXNrL2ZkaXNrLmM6NTI0Cittc2dpZCAiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIKK21zZ3N0ciAiICAgcyAgIHptaWFuYSBsaWN6Ynkgc2VrdG9y83cgbmEgtmNpZb9r6iIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICB6bWlhbmEgbGljemJ5IGZpenljem55Y2ggY3lsaW5kcvN3IgorCisjOiBmZGlzay9mZGlzay5jOjQ4MCBmZGlzay9mZGlzay5jOjQ5NiBmZGlzay9mZGlzay5jOjUxMgorbXNnaWQgIiAgIGIgICBtb3ZlIGJlZ2lubmluZyBvZiBkYXRhIGluIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBiICAgcHJ6ZXN1bmnqY2llIHBvY3qxdGt1IGRhbnljaCBuYSBwYXJ0eWNqaSIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKK21zZ2lkICIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIgICBlICAgd3lwaXNhbmllIHBhcnR5Y2ppIHJvenN6ZXJ6b255Y2giCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDg0IGZkaXNrL2ZkaXNrLmM6NTAwIGZkaXNrL2ZkaXNrLmM6NTE3Cittc2dpZCAiICAgZyAgIGNyZWF0ZSBhbiBJUklYIChTR0kpIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZyAgIHV0d29yemVuaWUgdGFibGljeSBwYXJ0eWNqaSB0eXB1IElSSVggKFNHSSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE2Cittc2dpZCAiICAgZiAgIGZpeCBwYXJ0aXRpb24gb3JkZXIiCittc2dzdHIgIiAgIGYgICBwb3ByYXdpZW5pZSBrb2xlam5vtmNpIHBhcnR5Y2ppIgorCisjOiBmZGlzay9mZGlzay5jOjUxOQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgaSAgIHptaWFuYSBpZGVudHlmaWthdG9yYSBkeXNrdSIKKworIzogZmRpc2svZmRpc2suYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3Qgc2V0IgorbXNnc3RyICJUcnplYmEgd3Byb3dhZHpp5iBsaWN6YuoiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM2Cittc2dpZCAiaGVhZHMiCittc2dzdHIgImezb3dpYyIKKworIzogZmRpc2svZmRpc2suYzo3MzggZmRpc2svZmRpc2suYzoxNTkyIGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgInNlY3RvcnMiCittc2dzdHIgInNla3RvcvN3IgorCisjOiBmZGlzay9mZGlzay5jOjc0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMlcy5cbiIKKyJZb3UgY2FuIGRvIHRoaXMgZnJvbSB0aGUgZXh0cmEgZnVuY3Rpb25zIG1lbnUuXG4iCittc2dzdHIgIiIKKyIlcyVzLlxuIgorIk1vv25hIHRvIHpyb2Jp5iB6IHBvemlvbXUgbWVudSBmdW5rY2ppIGRvZGF0a293eWNoLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjc0NQorbXNnaWQgIiBhbmQgIgorbXNnc3RyICIgb3JheiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiVVdBR0E6IHJvem1pYXIgdGVnbyBkeXNrdSB0byAlZC4lZCBUQiAoJWxsdSBiYWp083cpLlxuIgorIkRPUy1vd3kgZm9ybWF0IHRhYmxpY3kgcGFydHljamkgbmllIG1vv2UgYnnmIHW/eXdhbnkgZGxhIGR5c2vzd1xuIgorIm5hIHdvbHVtZW5hY2ggd2nqa3N6eWNoIG5pvyAlbGx1IGJhanTzdyBkbGEgJWQtYmFqdG93eWNoIHNla3RvcvN3LlxuIgorIk5hbGW/eSB1v3nmIHBhcnRlZCgxKWEgaSBmb3JtYXR1IHRhYmxpY3kgcGFydHljamkgR1VJRCAoR1BUKS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzo3ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBkZXZpY2UgcHJlc2VudHMgYSBsb2dpY2FsIHNlY3RvciBzaXplIHRoYXQgaXMgc21hbGxlciB0aGFuXG4iCisidGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLiBBbGlnbmluZyB0byBhIHBoeXNpY2FsIHNlY3RvciAob3Igb3B0aW1hbFxuIgorIkkvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiVXJ6sWR6ZW5pZSBwcnplZHN0YXdpYSBsb2dpY3pueSByb3ptaWFyIHNla3RvcmEgbW5pZWpzenkgb2Qgcm96bWlhcnVcbiIKKyJmaXp5Y3puZWdvLiBaYWxlY2Egc2nqIHd5cvN3bmFuaWUgZG8gZ3JhbmljeSBzZWt0b3JhIGZpenljem5lZ29cbiIKKyIobHViIG9wdHltYWxuZWdvIGRsYSB3ZS93eSksIHcgcHJ6ZWNpd255bSB3eXBhZGt1IG1vv2UgdG8gd3CzeW6x5lxuIgorIm5hIHd5ZGFqbm+25i5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0b1xuIgorIiAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSIKK21zZ3N0ciAiIgorIlxuIgorIlVXQUdBOiB0cnliIGtvbXBhdHliaWxub7ZjaSB6IERPUy1lbSBqZXN0IHByemVzdGFyemGzeS4gWmRlY3lkb3dhbmllXG4iCisiICAgICAgIHphbGVjYSBzaeogd3mzsWN6eeYgdGVuIHRyeWIgKHBvbGVjZW5pZSAnYycpIgorCisjOiBmZGlzay9mZGlzay5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0b1xuIgorIiAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS5cbiIKK21zZ3N0ciAiIgorIiBpIHptaWVuaeYgamVkbm9zdGtpXG4iCisiICAgICAgIHd5tndpZXRsYW5pYSBuYSBzZWt0b3J5IChwb2xlY2VuaWUgJ3UnKS5cbiIKKworIzogZmRpc2svZmRpc2suYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IGN5bGluZGVycyBhcyBkaXNwbGF5IHVuaXRzIGFyZSBkZXByZWNhdGVkLiBVc2UgY29tbWFuZCAndScgdG9cbiIKKyIgICAgICAgICBjaGFuZ2UgdW5pdHMgdG8gc2VjdG9ycy5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlVXQUdBOiBjeWxpbmRyeSBqYWtvIGplZG5vc3RraSB3ebZ3aWV0bGFuaWEgc7EgcHJ6ZXN0YXJ6YbNlLiBMZXBpZWpcbiIKKyIgICAgICAgdb955iBwb2xlY2VuaWEgJ3UnLCBhYnkgem1pZW5p5iBqZWRub3N0a2kgbmEgc2VrdG9yeS5cbiIKKworIzogZmRpc2svZmRpc2suYzo4MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG9mZnNldCBpbiBwcmltYXJ5IGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJCs+pkbnkgb2Zmc2V0IHcgZ7Pzd25laiBwYXJ0eWNqaSByb3pzemVyem9uZWpcbiIKKworIzogZmRpc2svZmRpc2suYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IG9taXR0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgIyVkLlxuIgorIlRoZXkgd2lsbCBiZSBkZWxldGVkIGlmIHlvdSBzYXZlIHRoaXMgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICIiCisiVXdhZ2E6IHBvbWluaep0byBwYXJ0eWNqZSBwbyAjJWQuXG4iCisiQupksSB1c3Vuaep0ZSwgamW2bGkgdGFibGljYSBwYXJ0eWNqaSB6b3N0YW5pZSB6YXBpc2FuYS5cbiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJVd2FnYTogbmFkbWlhcm93eSB3c2thvG5payCzsWN6sWN5IHcgdGFibGljeSBwYXJ0eWNqaSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjg2MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpZ25vcmluZyBleHRyYSBkYXRhIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJVd2FnYTogemlnbm9yb3dhbm8gbmFkbWlhcm93ZSBkYW5lIHcgdGFibGljeSBwYXJ0eWNqaSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjg5MworIywgYy1mb3JtYXQKK21zZ2lkICJvbWl0dGluZyBlbXB0eSBwYXJ0aXRpb24gKCVkKVxuIgorbXNnc3RyICJwb21pbmnqdG8gcHVzdLEgcGFydHljauogKCVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGlkZW50aWZpZXI6IDB4JTA4eFxuIgorbXNnc3RyICJJZGVudHlmaWthdG9yIGR5c2t1OiAweCUwOHhcbiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIk5vd3kgaWRlbnR5ZmlrYXRvciBkeXNrdSAoYmllv7FjeSAweCUwOHgpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlR3b3J6ZW5pZSBub3dlaiBldHlraWV0eSBkeXNrdSB0eXB1IERPUyB6IGlkZW50eWZpa2F0b3JlbSBkeXNrdSAweCUwOHguXG4iCisiWm1pYW55IHBvem9zdGFusSB0eWxrbyB3IHBhbWnqY2kgZG8gY2h3aWxpIGljaCB6YXBpc2FuaWEuXG4iCisiUG90ZW0sIG9jenl3abZjaWUsIHBvcHJ6ZWRuaWEgemF3YXJ0b7bmIGLqZHppZSBuaWUgZG8gb2R6eXNrYW5pYS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdGU6IHNlY3RvciBzaXplIGlzICVkIChub3QgJWQpXG4iCittc2dzdHIgIlV3YWdhOiByb3ptaWFyIHNla3RvcmEgdG8gJWQgKG5pZSAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIk5pZSBi6mR6aWUgbW+/bmEgemFwaXNh5iB0YWJsaWN5IHBhcnR5Y2ppLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZGlzayBoYXMgYm90aCBET1MgYW5kIEJTRCBtYWdpYy5cbiIKKyJHaXZlIHRoZSAnYicgY29tbWFuZCB0byBnbyB0byBCU0QgbW9kZS5cbiIKK21zZ3N0ciAiIgorIlRlbiBkeXNrIG1hIHpuYWN6bmlraSBtYWdpY3puZSB6YXLzd25vIERPUy1hLCBqYWsgaSBCU0QuXG4iCisiUG9sZWNlbmllICdiJyBwcnpls7FjenkgdyB0cnliIEJTRC5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisiVXJ6sWR6ZW5pZSBuaWUgemF3aWVyYSBwb3ByYXduZWogRE9TLW93ZWogdGFibGljeSBwYXJ0eWNqaSBhbmkgZXR5a2lldHkgIgorImR5c2t1IFN1biwgU0dJIGFuaSBPU0ZcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgIkludGVybmFsIGVycm9yXG4iCittc2dzdHIgIkKzsWQgd2V3bup0cnpueVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSWdub3JpbmcgZXh0cmEgZXh0ZW5kZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIlppZ25vcm93YW5vIG5hZG1pYXJvd7EgcGFydHljauogcm96c3plcnpvbrEgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHglMDR4IG9mIHBhcnRpdGlvbiB0YWJsZSAlZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3IgorIihyaXRlKVxuIgorbXNnc3RyICIiCisiVXdhZ2E6IG5pZXBvcHJhd25hIGZsYWdhIDB4JTA0eCB0YWJsaWN5IHBhcnR5Y2ppICVkIGLqZHppZSBwb3ByYXdpb25hIHByenkgIgorInphcGlzaWUgKHcpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorInRyenkgcmF6eSBvdHJ6eW1hbm8gRU9GIC0gemFrb/FjemVuaWUuLi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMzYwCittc2dpZCAiSGV4IGNvZGUgKHR5cGUgTCB0byBsaXN0IGNvZGVzKTogIgorbXNnc3RyICJLb2Qgc3plc25hc3Rrb3d5IChMIHd5tndpZXRsYSBsaXN06ik6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiJXMgKCV1LSV1LCBkb215tmxuaWUgJXUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnN1cHBvcnRlZCBzdWZmaXg6ICclcycuXG4iCittc2dzdHIgIk5pZW9ic7N1Z2l3YW55IHByenlyb3N0ZWs6ICclcycuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VwcG9ydGVkOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaUJ5dGUpLCBNICAoTWViaUJ5dGUpLCBHICAoR2liaUJ5dGUpXG4iCittc2dzdHIgIiIKKyJPYnOzdWdpd2FuZTogMTBeTjogS0IgKGtpbG9iYWp0eSksIE1CIChtZWdhYmFqdHkpLCBHQiAoZ2lnYWJhanR5KVxuIgorIiAgICAgICAgICAgICAgMl5OOiBLICAoa2liaWJhanR5KSwgTSAgKG1lYmliYWp0eSksIEcgIChnaWJpYmFqdHkpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ4OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBkZWZhdWx0IHZhbHVlICV1XG4iCittc2dzdHIgIlByenlq6nRvIHdhcnRvtuYgZG9tebZsbrEgJXVcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlZhbHVlIG91dCBvZiByYW5nZS5cbiIKK21zZ3N0ciAiV2FydG+25iBzcG96YSB6YWtyZXN1LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1MTgKK21zZ2lkICJQYXJ0aXRpb24gbnVtYmVyIgorbXNnc3RyICJOdW1lciBwYXJ0eWNqaSIKKworIzogZmRpc2svZmRpc2suYzoxNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXMgZW1wdHkgdHlwZVxuIgorbXNnc3RyICJVd2FnYTogcGFydHljamEgJWQgbWEgcHVzdHkgdHlwXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1MSBmZGlzay9mZGlzay5jOjE1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VsZWN0ZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIld5YnJhbm8gcGFydHljauogJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiTmllIHpkZWZpbmlvd2FubyBqZXN6Y3plIHBhcnR5Y2ppIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIHByaW1hcnkgcGFydGl0aW9ucyBoYXZlIGJlZW4gZGVmaW5lZCBhbHJlYWR5IVxuIgorbXNnc3RyICJXc3p5c3RraWUgZ7Pzd25lIHBhcnR5Y2plIHpvc3Rhs3kganW/IHpkZWZpbmlvd2FuZSFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAiY3lsaW5kZXIiCittc2dzdHIgImN5bGluZGVyIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJzZWN0b3IiCittc2dzdHIgInNla3RvciIKKworIzogZmRpc2svZmRpc2suYzoxNTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGRpc3BsYXkvZW50cnkgdW5pdHMgdG8gJXNcbiIKK21zZ3N0ciAiWm1pYW5hIGplZG5vc3RlayB3ebZ3aWV0bGFuaWEvd3Byb3dhZHphbmlhIG5hIGxpY3pi6iAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogUGFydGl0aW9uICVkIGlzIGFuIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJVV0FHQTogcGFydHljamEgJWQgamVzdCBwYXJ0eWNqsSByb3pzemVyem9usVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIKK21zZ3N0ciAiRmxhZ2Ega29tcGF0eWJpbG5vtmNpIHogRE9TLWVtIGplc3QgdXN0YXdpb25hXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMgorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXRcbiIKK21zZ3N0ciAiRmxhZ2Ega29tcGF0eWJpbG5vtmNpIHogRE9TLWVtIG5pZSBqZXN0IHVzdGF3aW9uYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiUGFydHljamEgJWQgamVzemN6ZSBuaWUgaXN0bmllamUhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisiVHlwIDAgb3puYWN6YSB3b2xuZSBtaWVqc2NlIGRsYSB3aWVsdSBzeXN0ZW3zd1xuIgorIihhbGUgbmllIExpbnVrc2EpLiBQb3NpYWRhbmllIHBhcnR5Y2ppIHR5cHUgMFxuIgorImplc3QgcmFjemVqIG5pZW2xZHJlLiBNb79uYSB1c3VuseYgcGFydHljauogcHJ6eVxuIgorInW/eWNpdSBwb2xlY2VuaWEgYGQnLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8gYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKyJEZWxldGUgaXQgZmlyc3QuXG4iCittc2dzdHIgIiIKKyJOaWUgbW+/bmEgem1pZW5p5iBpc3RuaWVqsWNlaiBwYXJ0eWNqaSBuYSByb3pzemVyem9usSBhbmkgb2R3cm90bmllLlxuIgorIk5hbGW/eSBqsSBuYWpwaWVydyB1c3VuseYuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gMyBhcyBXaG9sZSBkaXNrICg1KSxcbiIKKyJhcyBTdW5PUy9Tb2xhcmlzIGV4cGVjdHMgaXQgYW5kIGV2ZW4gTGludXggbGlrZXMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJOYWpsZXBpZWogcG96b3N0YXdp5iBwYXJ0eWNq6iAzIGpha28gY2GzeSBkeXNrICg1KSxcbiIKKyJwb25pZXdhvyB0ZWdvIG9jemVrdWplIFN1bk9TL1NvbGFyaXMgaSBuYXdldCBMaW51eCB0byBsdWJpLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDkgYXMgdm9sdW1lIGhlYWRlciAoMCksXG4iCisiYW5kIHBhcnRpdGlvbiAxMSBhcyBlbnRpcmUgdm9sdW1lICg2KSwgYXMgSVJJWCBleHBlY3RzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiTmFqcGVwaWVqIHBvem9zdGF3aeYgcGFydHljauogOSBqYWtvIG5hZ7Pzd2VrIHdvbHVtZW51ICgwKSxcbiIKKyJhIHBhcnR5Y2rqIDExIGpha28gY2GzeSB3b2x1bWVuICg2KSwgcG9uaWV3Yb8gdGVnbyBvY3pla3VqZSBJUklYLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICJabWllbmlvbm8gdHlwIHN5c3RlbXUgcGFydHljamkgJWQgbmEgJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICJUeXAgc3lzdGVtdSBwYXJ0eWNqaSAlZCBuaWUgem9zdGGzIHptaWVuaW9ueTogJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAiIgorIlBhcnR5Y2phICVkIG1hIHLzv25lIHBvY3qxdGtpIGZpenljenkgaSBsb2dpY3pueSAobmllIGplc3QgbGludWtzb3dhPyk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyOSBmZGlzay9mZGlzay5jOjE4MzcgZmRpc2svZmRpc2suYzoxODQ2IGZkaXNrL2ZkaXNrLmM6MTg1NgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKK21zZ3N0ciAiIGZpenljem55PSglZCwgJWQsICVkKSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzMCBmZGlzay9mZGlzay5jOjE4MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naWNhbD0oJWQsICVkLCAlZClcbiIKK21zZ3N0ciAibG9naWN6bnk9KCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzNQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGVuZGluZ3M6XG4iCittc2dzdHIgIlBhcnR5Y2phICVkIG1hIHLzv25lIGtv8WNlIGZpenljem55IGkgbG9naWN6bnk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCittc2dzdHIgIlBhcnR5Y2phICVpIG5pZSB6YWN6eW5hIHNp6iBuYSBncmFuaWN5IGN5bGluZHJhOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgInBvd2lubm8gYnnmICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQYXJ0eWNqYSAlaSBuaWUga2/xY3p5IHNp6iBuYSBncmFuaWN5IGN5bGluZHJhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsICVkKVxuIgorbXNnc3RyICJwb3dpbm5vIGJ55iAoJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnR5Y2phICVpIG5pZSB6YWN6eW5hIHNp6iBuYSBncmFuaWN5IGJsb2t1IGZpenljem5lZ28uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg3NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkIE1CLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEeXNrICVzOiAlbGQgTUIsIGJhanTzdzogJWxsZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkR5c2sgJXM6ICVsZC4lbGQgR0IsIGJhanTzdzogJWxsZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgaGVhZHMsICVsbHUgc2VjdG9ycy90cmFjaywgJWQgY3lsaW5kZXJzIgorbXNnc3RyICJns293aWM6ICVkLCBzZWt0b3Lzdy+2Y2llv2vqOiAlbGx1LCBjeWxpbmRy83c6ICVkIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCB0b3RhbCAlbGx1IHNlY3RvcnMiCittc2dzdHIgIiwgdyBzdW1pZSBzZWt0b3LzdzogJWxsdSIKKworIzogZmRpc2svZmRpc2suYzoxODkwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuaXRzID0gJXMgb2YgJWQgKiAlZCA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIkplZG5vc3RrYSA9ICVzLCBjenlsaSAlZCAqICVkID0gJWQgYmFqdPN3XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6ICV1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIlJvem1pYXIgc2VrdG9yYSAobG9naWN6bnkvZml6eWN6bnkpIHcgYmFqdGFjaDogJXUgLyAlbHVcbiIKKworIzogZmRpc2svZmRpc2suYzoxODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiUm96bWlhciB3ZS93eSAobWluaW1hbG55L29wdHltYWxueSkgdyBiYWp0YWNoOiAlbHUgLyAlbHVcbiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICJPZmZzZXQgd3ly83duYW5pYSB3IGJhanRhY2g6ICVsdVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIk5pZSBtYSBuaWMgZG8genJvYmllbmlhLCBrb2xlam5vtuYganW/IGplc3QgcHJhd2lks293YS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvbmUuXG4iCittc2dzdHIgIlpha2/xY3pvbmUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisiTmllIHd5Z2yxZGEgdG8gbmEgdGFibGlj6iBwYXJ0eWNqaVxuIgorIlByYXdkb3BvZG9ibmllIHd5YnJhbm8gbmlld7NhtmNpd2UgdXJ6sWR6ZW5pZS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBCb290ICAgICAgU3RhcnQgICAgICAgICBFbmQgICAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBSb3pydWNoICAgUG9jerF0ZWsgICAgICBLb25pZWMgICBCbG9r83cgICBJRCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3OCBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjEwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTgKK21zZ2lkICJEZXZpY2UiCittc2dzdHIgIlVyerFkemVuaWUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjExNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiUGFydGl0aW9uIHRhYmxlIGVudHJpZXMgYXJlIG5vdCBpbiBkaXNrIG9yZGVyXG4iCittc2dzdHIgIiIKKyJcbiIKKyJXcGlzeSB3IHRhYmxpY3kgcGFydHljamkgbmllIHOxIHcgdGVqIGtvbGVqbm+2Y2ksIGNvIG5hIGR5c2t1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEeXNrICVzOiBns293aWM6ICVkLCBzZWt0b3LzdzogJWxsdSwgY3lsaW5kcvN3OiAlZFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iCittc2dzdHIgIk5yIEZsICBHsyBTZWt0IEN5bCAgR7MgU2VrdCBDeWwgICAgIFBvY3qxdGVrICAgUm96bSBJRFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgIlV3YWdhOiBwYXJ0eWNqYSAlZCB6YXdpZXJhIHNla3RvciAwXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IGhlYWQgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAiUGFydHljamEgJWQ6IGezb3dpY2EgJWQgd2nqa3N6YSBuab8gbWFrc3ltYWxuYSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJQYXJ0eWNqYSAlZDogc2VrdG9yICVkIHdp6mtzenkgbmm/IG1ha3N5bWFsbnkgJWxsdVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9ucyAlZDogY3lsaW5kZXIgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAiUGFydHljamEgJWQ6IGN5bGluZGVyICVkIHdp6mtzenkgbmm/IG1ha3N5bWFsbnkgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogcHJldmlvdXMgc2VjdG9ycyAlZCBkaXNhZ3JlZXMgd2l0aCB0b3RhbCAlZFxuIgorbXNnc3RyICIiCisiUGFydHljamEgJWQ6IHBvcHJ6ZWRuaWEgbGljemJhIHNla3RvcvN3ICVkIG5pZSB6Z2FkemEgc2nqIHogY2Gza293aXSxICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiVXdhZ2E6IGKz6mRueSBwb2N6sXRlayBkYW55Y2ggZGxhIHBhcnR5Y2ppICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgb3ZlcmxhcHMgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJVd2FnYTogcGFydHljamEgJWQgemFjaG9kemkgbmEgcGFydHljauogJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAiVXdhZ2E6IHBhcnR5Y2phICVkIGplc3QgcHVzdGFcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiUGFydHljamEgbG9naWN6bmEgJWQgbmllIHphd2llcmEgc2nqIHcgcGWzbmkgdyBwYXJ0eWNqaSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICIiCisiQ2Gza293aXRhIGxpY3piYSBwcnp5ZHppZWxvbnljaCBzZWt0b3LzdyAlbGx1IGplc3Qgd2nqa3N6YSBuab8gbWFrc3ltYWxuYSAlIgorImxsdVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVtYWluaW5nICVsbGQgdW5hbGxvY2F0ZWQgJWQtYnl0ZSBzZWN0b3JzXG4iCittc2dzdHIgIlBvem9zdGGzbyAlbGxkIG5pZXByenlkemllbG9ueWNoIHNla3RvcvN3ICVkLWJhanRvd3ljaFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzMDEgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDExCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBpcyBhbHJlYWR5IGRlZmluZWQuICBEZWxldGUgaXQgYmVmb3JlIHJlLWFkZGluZyBpdC5cbiIKK21zZ3N0ciAiIgorIlBhcnR5Y2phICVkIGplc3QganW/IHpkZWZpbmlvd2FuYS4gTmFsZb95IGqxIHVzdW6x5iBwcnplZCBwb25vd255bSAiCisiZG9kYW5pZW0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWt0b3IgJWxsdSBqZXN0IGp1vyBwcnp5ZHppZWxvbnlcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGZyZWUgc2VjdG9ycyBhdmFpbGFibGVcbiIKK21zZ3N0ciAiTmllIG1hIGp1vyB3b2xueWNoIHNla3RvcvN3XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiT3N0YXRuaSAlMSRzLCArJTIkcyBsdWIgK3Jvem1pYXJ7SyxNLEd9IgorCisjOiBmZGlzay9mZGlzay5jOjI0NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgQUlYIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyJcdE5pZXN0ZXR5IHRhIHdlcnNqYSBmZGlza2EgbmllIG9ic7N1Z3VqZSBldHlraWV0IGR5c2t1IHR5cHUgQUlYLlxuIgorIlx0QWJ5IGRvZGHmIERPUy1vd2UgcGFydHljamUsIG5hbGW/eSBuYWpwaWVydyB1dHdvcnp55lxuIgorIlx0cHVzdLEgRE9TLW93sSB0YWJsaWPqIHBhcnR5Y2ppIChwb2xlY2VuaWVtIG8pLlxuIgorIlx0VVdBR0E6IHpuaXN6Y3p5IHRvIG9iZWNusSB6YXdhcnRvtuYgZHlza3UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0Tmllc3RldHkgdGEgd2Vyc2phIGZkaXNrYSBuaWUgb2Jzs3VndWplIGV0eWtpZXQgZHlza3UgdHlwdSBNYWMuXG4iCisiXHRBYnkgZG9kYeYgRE9TLW93ZSBwYXJ0eWNqZSwgbmFsZb95IG5hanBpZXJ3IHV0d29yennmXG4iCisiXHRwdXN0sSBET1Mtb3exIHRhYmxpY+ogcGFydHljamkgKHBvbGVjZW5pZW0gbykuXG4iCisiXHRVV0FHQTogem5pc3pjenkgdG8gb2JlY26xIHphd2FydG+25iBkeXNrdS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICJOYWpwaWVydyB0cnplYmEgdXN1brHmIGpha7G2IHBhcnR5Y2rqIGkgZG9kYeYgcGFydHljauogcm96c3plcnpvbrFcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICJXc3p5c3RraWUgcGFydHljamUgbG9naWN6bmUgc7Egd3lrb3J6eXN0YW5lXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJBZGRpbmcgYSBwcmltYXJ5IHBhcnRpdGlvblxuIgorbXNnc3RyICJEb2RhbmllIHBhcnR5Y2ppIGez83duZWpcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKyJQb2xlY2VuaWVcbiIKKyIgICAlc1xuIgorIiAgIHAgICBwYXJ0eWNqYSBns/N3bmEgKDEtNClcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAibCAgIGxvZ2ljYWwgKDUgb3Igb3ZlcikiCittc2dzdHIgImwgICBwYXJ0eWNqYSBsb2dpY3puYSAoNSB3end5vykiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImUgICBleHRlbmRlZCIKK21zZ3N0ciAiZSAgIHBhcnR5Y2phIHJvenN6ZXJ6b25hIgorCisjOiBmZGlzay9mZGlzay5jOjI1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXJ0aXRpb24gbnVtYmVyIGZvciB0eXBlIGAlYydcbiIKK21zZ3N0ciAiTmllcG9wcmF3bnkgbnVtZXIgcGFydHljamkgZGxhIHR5cHUgYCVjJ1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBwYXJ0aXRpb24gdGFibGUgaGFzIGJlZW4gYWx0ZXJlZCFcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlRhYmxpY2EgcGFydHljamkgem9zdGGzYSB6bW9keWZpa293YW5hIVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJXeXdvs3l3YW5pZSBpb2N0bCgpIHcgY2VsdSBwb25vd25lZ28gb2Rjenl0dSB0YWJsaWN5IHBhcnR5Y2ppLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQgd2l0aCBlcnJvciAlZDogJXMuXG4iCisiVGhlIGtlcm5lbCBzdGlsbCB1c2VzIHRoZSBvbGQgdGFibGUuIFRoZSBuZXcgdGFibGUgd2lsbCBiZSB1c2VkIGF0XG4iCisidGhlIG5leHQgcmVib290IG9yIGFmdGVyIHlvdSBydW4gcGFydHByb2JlKDgpIG9yIGtwYXJ0eCg4KVxuIgorbXNnc3RyICIiCisiXG4iCisiVVdBR0E6IHBvbm93bnkgb2Rjenl0IHRhYmxpY3kgcGFydHljamkgemFrb/FjenmzIHNp6iBis+pkZW0gJWQ6ICVzLlxuIgorIkqxZHJvIG5hZGFsIHW/eXdhIHN0YXJlaiB0YWJsaWN5LiBOb3dhIHRhYmxpY2EgYupkemllIHW/eXdhbmEgcG9cbiIKKyJuYXN06nBueW0gcmVzdGFyY2llIHN5c3RlbXUgYWxibyBwbyB1cnVjaG9taWVuaXUgcGFydHByb2JlKDgpIGx1YiBrcGFydHgoOClcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueSBET1MgNi54XG4iCisicGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgZmRpc2sgbWFudWFsIHBhZ2UgZm9yIGFkZGl0aW9uYWxcbiIKKyJpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlVXQUdBOiBKZbZsaSB6b3N0YbN5IHV0d29yem9uZSBsdWIgem1vZHlmaWtvd2FuZSBwYXJ0eWNqZSBET1MtYSA2LngsXG4iCisicHJvc3rqIHpvYmFjennmIGRvZGF0a293ZSBpbmZvcm1hY2plIHcgbWFudWFsdSBkbyBmZGlza2EuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRXJyb3IgY2xvc2luZyBmaWxlXG4iCittc2dzdHIgIiIKKyJcbiIKKyJCs7FkIHBvZGN6YXMgemFteWthbmlhIHBsaWt1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICJTeW5jaHJvbml6YWNqYSBkeXNr83cuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICJQYXJ0eWNqYSAlZCBuaWUgbWEgb2JzemFydSBkYW55Y2hcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjU2Cittc2dpZCAiTmV3IGJlZ2lubmluZyBvZiBkYXRhIgorbXNnc3RyICJOb3d5IHBvY3qxdGVrIGRhbnljaCIKKworIzogZmRpc2svZmRpc2suYzoyNjcyCittc2dpZCAiRXhwZXJ0IGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIlBvbGVjZW5pZSBla3NwZXJ0YSAobSB3ebZ3aWV0bGEgcG9tb2MpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY4NQorbXNnaWQgIk51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIkxpY3piYSBjeWxpbmRy83ciCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjcxMAorbXNnaWQgIk51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiTGljemJhIGezb3dpYyIKKworIzogZmRpc2svZmRpc2suYzoyNzM3Cittc2dpZCAiTnVtYmVyIG9mIHNlY3RvcnMiCittc2dzdHIgIkxpY3piYSBzZWt0b3LzdyIKKworIzogZmRpc2svZmRpc2suYzoyNzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHNldHRpbmcgc2VjdG9yIG9mZnNldCBmb3IgRE9TIGNvbXBhdGlibGl0eVxuIgorbXNnc3RyICJVd2FnYTogdXN0YXdpYW5pZSBvZmZzZXR1IHNla3RvcmEgZGxhIGtvbXBhdHliaWxub7ZjaSB6IERPUy1lbVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlVXQUdBOiBOYSAnJXMnIHd5a3J5dG8gdGFibGlj6iBwYXJ0eWNqaSBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSEgZmRpc2sgIgorIm5pZSBvYnOzdWd1amUgR1BULiBOYWxlv3kgdb955iBHTlUgUGFydGVkYS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXMgZG9lc24ndCBjb250YWluIGEgdmFsaWQgcGFydGl0aW9uIHRhYmxlXG4iCittc2dzdHIgIkR5c2sgJXMgbmllIHphd2llcmEgcG9wcmF3bmVqIHRhYmxpY3kgcGFydHljamlcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIk5pZSBtb79uYSBvdHdvcnp55iAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJuaWUgbW+/bmEgb3R3b3J6eeYgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IG5pZXpuYW5lIHBvbGVjZW5pZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBrZXJuZWwgZmluZHMgdGhlIHNlY3RvciBzaXplIGl0c2VsZiAtIC1iIG9wdGlvbiBpZ25vcmVkXG4iCittc2dzdHIgIkqxZHJvIHNhbW8gcm96cG96bmFqZSByb3ptaWFyIHNla3RvcmEgLSBvcGNqYSAtYiB6aWdub3Jvd2FuYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHRoZSAtYiAoc2V0IHNlY3RvciBzaXplKSBvcHRpb24gc2hvdWxkIGJlIHVzZWQgd2l0aCBvbmUgc3BlY2lmaWVkICIKKyJkZXZpY2VcbiIKK21zZ3N0ciAiIgorIlV3YWdhOiBvcGNqYSAtYiAocm96bWlhciBzZWt0b3JhKSBwb3dpbm5hIGJ55iB1v3l3YW5hIHogb2tyZbZsb255bSAiCisidXJ6sWR6ZW5pZW1cbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIk5hICVzIHd5a3J5dG8gZXR5a2lldOogZHlza3UgT1NGLzEsIHdlarZjaWUgdyB0cnliIGV0eWtpZXR5IGR5c2t1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIlBvbGVjZW5pZSAobSB3ebZ3aWV0bGEgcG9tb2MpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiT2JlY255IHBsaWsgcm96cnVjaG93eSB0bzogJXNcbiIKKworIzogZmRpc2svZmRpc2suYzozMDI4Cittc2dpZCAiUGxlYXNlIGVudGVyIHRoZSBuYW1lIG9mIHRoZSBuZXcgYm9vdCBmaWxlOiAiCittc2dzdHIgIlByb3N66iB3cGlzYeYgbmF6d+ogbm93ZWdvIHBsaWt1IHJvenJ1Y2hvd2VnbzogIgorCisjOiBmZGlzay9mZGlzay5jOjMwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdCBmaWxlIHVuY2hhbmdlZFxuIgorbXNnc3RyICJQbGlrIHJvenJ1Y2hvd3kgcG96b3N0YbMgYmV6IHptaWFuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzEwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRTb3JyeSwgbm8gZXhwZXJ0cyBtZW51IGZvciBTR0kgcGFydGl0aW9uIHRhYmxlcyBhdmFpbGFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdE5pZXN0ZXR5IG1lbnUgZWtzcGVydGEgZGxhIHRhYmxpY3kgcGFydHljamkgU0dJIG5pZSBqZXN0IGRvc3TqcG5lLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIE1hYyBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IGZkaXNrKDEpIGNhbm5vdCBoYW5kbGUgdGhlc2UgZGlza3MuXG4iCisiXHRVc2UgZWl0aGVyIHBkaXNrIG9yIHBhcnRlZCB0byBtb2RpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyJcdE5ldmVydGhlbGVzcyBzb21lIGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0TmEgdHltIGR5c2t1IGlzdG5pZWplIHBvcHJhd25hIGV0eWtpZXRhIHR5cHUgTWFjLlxuIgorIlx0Tmllc3RldHkgTGludXggbmllIG9iZWNuaWUgbmllIHBvdHJhZmkgb2Jzs3W/eeZcbiIKKyJcdHRha2ljaCBkeXNr83cuIFR5bSBuaWVtbmllaiBraWxrYSB1d2FnOlxuIgorIlx0MS4gZmRpc2sgem5pc3pjenkgamVqIHphd2FydG+25iBwcnp5IHphcGlzaWUuXG4iCisiXHQyLiBOYWxlv3kgc2nqIHVwZXduaeYsIL9lIHRlbiBkeXNrIE5JRSBwb3pvc3RhamVcbiIKKyJcdCAgIGFrdHl3brEgY3rqtmNpsSC/YWRuZWogZ3J1cHkgd29sdW1lbvN3XG4iCisiXHQgICAodyBwcnplY2l3bnltIHd5cGFka3UgbW+/bmEgdXN1brHmIHRha79lXG4iCisiXHQgICAgemF3YXJ0b7bmIGlubnljaCBkeXNr83csIGpltmxpIG5pZSBtYWqxIGtvcGlpKS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgxCittc2dpZCAiU0dJIHZvbGhkciIKK21zZ3N0ciAiU0dJIHZvbGhkciIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgyCittc2dpZCAiU0dJIHRya3JlcGwiCittc2dzdHIgIlNHSSB0cmtyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODMKK21zZ2lkICJTR0kgc2VjcmVwbCIKK21zZ3N0ciAiU0dJIHNlY3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NAorbXNnaWQgIlNHSSByYXciCittc2dzdHIgIlNHSSByYXciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NQorbXNnaWQgIlNHSSBic2QiCittc2dzdHIgIlNHSSBic2QiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NgorbXNnaWQgIlNHSSBzeXN2IgorbXNnc3RyICJTR0kgc3lzdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg3Cittc2dpZCAiU0dJIHZvbHVtZSIKK21zZ3N0ciAiU0dJIHZvbHVtZSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiU0dJIGVmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIlNHSSBsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIlNHSSBybHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIHhmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIkxpbnV4IHN3YXAiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTEKK21zZ2lkICJMaW51eCBuYXRpdmUiCittc2dzdHIgIkxpbnV4IG5hdGl2ZSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYzCittc2dpZCAiTGludXggTFZNIgorbXNnc3RyICJMaW51eCBMVk0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5OAorbXNnaWQgIkxpbnV4IFJBSUQiCittc2dzdHIgIkxpbnV4IFJBSUQiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkFjY29yZGluZyB0byBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyB0aGUgTGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gIgorIjUxMiBieXRlc1xuIgorbXNnc3RyICIiCisiWmdvZG5pZSB6IHd5dHljem55bWkgTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMgZXR5a2lldGEgbmllIG1vv2UgemF3aWVyYeYgIgorIndp6mNlaiBuab8gNTEyIGJhanTzd1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHNnaSBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKK21zZ3N0ciAiV3lrcnl0byBldHlraWV06iBkeXNrdSBTR0kgeiBis+pkbrEgc3VtsSBrb250cm9sbrEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRHlzayAlcyAoZXR5a2lldGEgZHlza3UgU0dJKTogZ7Nvd2ljOiAlZCwgc2VrdG9y83c6ICVsbHVcbiIKKyJjeWxpbmRy83c6ICVkLCBmaXp5Y3pueWNoIGN5bGluZHLzdzogJWRcbiIKKyJkb2RhdGtvd3ljaCBzZWt0b3Lzdy9jeWxpbmRlcjogJWQsIHByemVwbG90ICVkOjFcbiIKKyIlc1xuIgorIkplZG5vc3RrYSA9ICVzLCBjenlsaSAlZCAqICVkIGJhanTzd1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRHlzayAlcyAoZXR5a2lldGEgZHlza3UgU0dJKTogZ7Nvd2ljOiAlZCwgc2VrdG9y83c6ICVsbHUsIGN5bGluZHLzdzogJWRcbiIKKyJKZWRub3N0a2E6ICVzLCBjenlsaSAlZCAqICVkIGJhanTzd1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiLS0tLS0gcGFydHljamUgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgICBQb2N6sXRlayAgIEtvbmllYyBTZWt0b3LzdyBJRCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG4iCisiQm9vdGZpbGU6ICVzXG4iCisiLS0tLS0gRGlyZWN0b3J5IEVudHJpZXMgLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIFJvenJ1Y2ggLS0tLS1cbiIKKyJQbGlrIHJvenJ1Y2h1OiAlc1xuIgorIi0tLS0tIFdwaXN5IGthdGFsb2d1IC0tLS0tXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIgorbXNnc3RyICIlMmQ6ICUtMTBzIHNla3RvciU1dSByb3ptaWFyJTh1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiTmllcG9wcmF3bnkgcGxpayByb3pydWNob3d5IVxuIgorIlx0UGxpayByb3pydWNob3d5IG11c2kgYnnmIGJlend6Z2zqZG6xLCBuaWVwdXN0sSC2Y2llv2uxLFxuIgorIlx0bnAuIFwiL3VuaXhcIiBsdWIgXCIvdW5peC5zYXZlXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0TmFtZSBvZiBCb290ZmlsZSB0b28gbG9uZzogIDE2IGJ5dGVzIG1heGltdW0uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdE5hendhIHBsaWt1IHJvenJ1Y2hvd2VnbyB6Ynl0IGSzdWdhOiBtYWtzaW11bSB0byAxNiBiYWp083cuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRQbGlrIHJvenJ1Y2hvd3kgbXVzaSBtaWXmIHBls26xILZjaWW/a+ouXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0QmUgYXdhcmUsIHRoYXQgdGhlIGJvb3RmaWxlIGlzIG5vdCBjaGVja2VkIGZvciBleGlzdGVuY2UuXG4iCisiXHRTR0kncyBkZWZhdWx0IGlzIFwiL3VuaXhcIiBhbmQgZm9yIGJhY2t1cCBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0VXdhZ2E6IHByb2dyYW0gbmllIHNwcmF3ZHphIGlzdG5pZW5pYSBwbGlrdSByb3pydWNob3dlZ28uXG4iCisiXHREb215tmxueSBkbGEgU0dJIHRvIFwiL3VuaXhcIiBvcmF6IFwidW5peC5zYXZlXCIgZGxhIGtvcGlpIHphcGFzb3dlai5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0UGxpayByb3pydWNob3d5IHptaWVuaW9ueSBuYSBcIiVzXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICJJc3RuaWVqZSB3aepjZWogbmm/IGplZGVuIHdwaXMgZGxhIGNhs2VnbyBkeXNrdS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJOaWUgemRlZmluaW93YW5vIL9hZG5laiBwYXJ0eWNqaVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiSVJJWCBsdWJpIGdkeSBwYXJ0eWNqYSAxMSBwb2tyeXdhIGNhs3kgZHlzay5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBzaG91bGQgc3RhcnQgYXQgYmxvY2sgMCxcbiIKKyJub3QgYXQgZGlza2Jsb2NrICVkLlxuIgorbXNnc3RyICIiCisiUGFydHljamEgY2GzZWdvIGR5c2t1IHBvd2lubmEgemFjenluYeYgc2nqIG9kIGJsb2t1IDAsXG4iCisiYSBuaWUgYmxva3UgZHlza3UgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gaXMgb25seSAlZCBkaXNrYmxvY2sgbGFyZ2UsXG4iCisiYnV0IHRoZSBkaXNrIGlzICVkIGRpc2tibG9ja3MgbG9uZy5cbiIKK21zZ3N0ciAiIgorIlBhcnR5Y2phIGNhs2VnbyBkeXNrdSBtYSByb3ptaWFyIHR5bGtvICVkIGJsb2vzdyBkeXNrdSxcbiIKKyJwb2RjemFzIGdkeSBkeXNrIG1hICVkIGJsb2vzdy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJPbmUgUGFydGl0aW9uICgjMTEpIHNob3VsZCBjb3ZlciB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIkplZG5hIHBhcnR5Y2phICgjMTEpIHBvd2lubmEgcG9rcnl3YeYgY2GzeSBkeXNrLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiUGFydHljamEgJWQgbmllIHphY3p5bmEgc2nqIG5hIGdyYW5pY3kgY3lsaW5kcmEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiUGFydHljamEgJWQgbmllIGtv8WN6eSBzaeogbmEgZ3JhbmljeSBjeWxpbmRyYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIlBhcnR5Y2plICVkIGkgJWQgemFjaG9kerEgbmEgc2llYmllICVkIHNla3RvcmFtaS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ4NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgb2YgJTh1IHNlY3RvcnMgLSBzZWN0b3JzICU4dS0ldVxuIgorbXNnc3RyICJOaWV1v3l3YW55IG9kc3TqcCAlOHUgc2VrdG9y83cgLSBzZWt0b3J5ICU4dS0ldVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgYm9vdCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQYXJ0eWNqYSByb3pydWNob3dhIG5pZSBpc3RuaWVqZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiUGFydHljamEgd3ltaWFueSBuaWUgaXN0bmllamUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisiUGFydHljamEgd3ltaWFueSBuaWUgamVzdCB0eXB1IHN3YXAuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiXHRXeWJyYW5vIG5pZXN0YW5kYXJkb3exIG5henfqIHBsaWt1IHJvenJ1Y2hvd2Vnby5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzMgorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSBZb3UgbWF5IGNoYW5nZSB0aGUgVGFnIG9mIG5vbi1lbXB0eSBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICJNb79uYSB6bWllbmnmIHpuYWN6bmlrIHR5bGtvIGRsYSBuaWVwdXN0eWNoIHBhcnR5Y2ppLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJaZGVjeWRvd2FuaWUgemFsZWNhIHNp6iwgYWJ5IHBhcnR5Y2phIHBvZCBvZmZzZXRlbSAwIGJ5s2EgdHlwdVxuIgorIlwiU0dJIHZvbGhkclwiOyBzeXN0ZW0gSVJJWCBwb2xlZ2EgbmEgdHltIHByenkgb2RjenljaWUgeiBrYXRhbG9ndVxuIgorInNhbW9kemllbG55Y2ggbmFyeupkemksIHRha2ljaCBqYWsgc2FzaCBpIGZ4LiBKZWR5bmllIHNla2NqYSBjYbNlZ29cbiIKKyJkeXNrdSBcIlNHSSB2b2x1bWVcIiBtb79lIGJ55iBuaWV6Z29kbmEgeiB0eW0gemFsZWNlbmllbS5cbiIKKyJQcm9zeuogd3Bpc2HmIFRBSywgamW2bGkgbmEgcGV3bm8gdGEgcGFydHljamEgbWEgYnnmIG96bmFjem9uYSBpbmFjemVqLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiVEFLXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiTmEgdHltIGR5c2t1IHBhcnR5Y2plIHphY2hvZHqxIG5hIHNpZWJpZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICJBdHRlbXB0aW5nIHRvIGdlbmVyYXRlIGVudGlyZSBkaXNrIGVudHJ5IGF1dG9tYXRpY2FsbHkuXG4iCittc2dzdHIgIlBy82JhIGF1dG9tYXR5Y3puZWdvIHd5Z2VuZXJvd2FuaWEgd3Bpc3kgZGxhIGNhs2VnbyBkeXNrdS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZW50aXJlIGRpc2sgaXMgYWxyZWFkeSBjb3ZlcmVkIHdpdGggcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAiQ2GzeSBkeXNrIGplc3QganW/IHBva3J5dHkgcGFydHljamFtaS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiIgorIk5hIHR5bSBkeXNrdSBwYXJ0eWNqZSB6YWNob2R6sSBuYSBzaWViaWUuIE5hanBpZXJ3IHRyemViYSB0byBwb3ByYXdp5iFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY0NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCBlbGV2ZW50aCBwYXJ0aXRpb25cbiIKKyJjb3ZlcnMgdGhlIGVudGlyZSBkaXNrIGFuZCBpcyBvZiB0eXBlIGBTR0kgdm9sdW1lJ1xuIgorbXNnc3RyICIiCisiWmRlY3lkb3dhbmllIHphbGVjYSBzaeosIGFieSBwYXJ0eWNqYSBqZWRlbmFzdGFcbiIKKyJwb2tyeXdhs2EgY2GzeSBkeXNrIGkgYnmzYSB0eXB1IGBTR0kgdm9sdW1lJ1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIGdldCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKyJOYSB0eW0gZHlza3UgcGFydHljamUgYupksSB6YWNob2R6abN5IG5hIHNpZWJpZS4gTmFqcGllcncgdHJ6ZWJhIHRvICIKKyJwb3ByYXdp5iFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgTGFzdCAlcyIKK21zZ3N0ciAiIE9zdGF0bmkgJXMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IFNHSSBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd2lsbCBiZSB1bnJlY292ZXJhYmx5IGxvc3QuXG4iCisiXG4iCittc2dzdHIgIiIKKyJUd29yemVuaWUgbm93ZWogZXR5a2lldHkgZHlza3UgU0dJLiBabWlhbnkgcG96b3N0YW6xIHR5bGtvIHcgcGFtaepjaVxuIgorImRvIGNod2lsaSBpY2ggemFwaXNhbmlhLiBQb3RlbSwgb2N6eXdptmNpZSwgcG9wcnplZG5pYSB6YXdhcnRvtuZcbiIKKyJi6mR6aWUgbmllIGRvIG9kenlza2FuaWEuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKyJVd2FnYTogaW9jdGwgQkxLR0VUU0laRSBuYSAlcyBuaWUgcG93afNksyBzaeouIFByenlq6nRvIGxpY3pi6iBjeWxpbmRy83cgJSIKKyJkLlxuIgorIlRhIHdhcnRvtuYgbW+/ZSBieeYgdWNp6nRhIGRsYSB1cnqxZHpl8SA+IDMzLjhHQi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8ga2VlcCBwYXJhbWV0ZXJzIG9mIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiUHLzYmEgemFjaG93YW5pYSBwYXJhbWV0cvN3IHBhcnR5Y2ppICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklEPSUwMnhcdFNUQVJUPSVkXHRMRU5HVEg9JWRcbiIKK21zZ3N0ciAiSUQ9JTAyeFx0UE9DWqFURUs9JWRcdESjVUdPpsY9JWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4Cittc2dpZCAiVW5hc3NpZ25lZCIKK21zZ3N0ciAiQmV6IHByenlkemlhs3UiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MAorbXNnaWQgIlN1bk9TIHJvb3QiCittc2dzdHIgIlN1bk9TIHJvb3QiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MQorbXNnaWQgIlN1bk9TIHN3YXAiCittc2dzdHIgIlN1bk9TIHN3YXAiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MgorbXNnaWQgIlN1bk9TIHVzciIKK21zZ3N0ciAiU3VuT1MgdXNyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDMKK21zZ2lkICJXaG9sZSBkaXNrIgorbXNnc3RyICJDYbN5IGR5c2siCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBzdGFuZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICJTdW5PUyB2YXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICJTdW5PUyBhbHQgc2VjdG9ycyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4Cittc2dpZCAiU3VuT1MgY2FjaGVmcyIKK21zZ3N0ciAiU3VuT1MgY2FjaGVmcyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIlN1bk9TIHJlc2VydmVkIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDMKK21zZ2lkICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCittc2dzdHIgIkxpbnV4IFJBSUQgYXV0b2RldGVjdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjEzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorIlByb2JhYmx5IHlvdSdsbCBoYXZlIHRvIHNldCBhbGwgdGhlIHZhbHVlcyxcbiIKKyJlLmcuIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMgYW5kIHBhcnRpdGlvbnNcbiIKKyJvciBmb3JjZSBhIGZyZXNoIGxhYmVsIChzIGNvbW1hbmQgaW4gbWFpbiBtZW51KVxuIgorbXNnc3RyICIiCisiV3lrcnl0byBldHlraWV06iBkeXNrdSBTdW5hIHogYrPqZG6xIHN1bbEga29udHJvbG6xLlxuIgorIlByYXdkb3BvZG9ibmllIGLqZHppZSB0cnplYmEgdXN0YXdp5iB3c3p5c3RraWUgd2FydG+2Y2ksXG4iCisidHpuLiBns293aWNlLCBzZWt0b3J5LCBjeWxpbmRyeSBpIHBhcnR5Y2plIGFsYm8gd3ltdXNp5lxuIgorInV0d29yemVuaWUgbm93ZWogZXR5a2lldHkgKHBvbGVjZW5pZSBzIHcgbWVudSBns/N3bnltKVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICJXeWtyeXRvIGV0eWtpZXTqIGR5c2t1IFN1bmEgeiBis+pkbrEgd2Vyc2qxIFsweCUwOHhdLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBzYW5pdHkgWzB4JTA4eF0uXG4iCittc2dzdHIgIiIKKyJXeWtyeXRvIGV0eWtpZXTqIGR5c2t1IFN1bmEgeiBis+pkbnltIHpuYWN6bmlraWVtIHBvcHJhd25vtmNpIFsweCUwOHhdLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICJXeWtyeXRvIGV0eWtpZXTqIGR5c2t1IFN1bmEgeiBis+pkbrEgbGljemKxIHBhcnR5Y2ppIFsldV0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJVd2FnYTogQrPqZG5lIHdhcnRvtmNpIG11c3qxIGJ55iBwb3ByYXdpb25lLCBjbyBuYXN0sXBpIHByenkgemFwaXNpZSAodylcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlR3b3J6ZW5pZSBub3dlaiBldHlraWV0eSBkeXNrdSBTdW5hLiBabWlhbnkgcG96b3N0YW6xIHR5bGtvIHcgcGFtaepjaVxuIgorImRvIGNod2lsaSBpY2ggemFwaXNhbmlhLiBQb3RlbSwgb2N6eXdptmNpZSwgcG9wcnplZG5pYSB6YXdhcnRvtuYgYupkemllXG4iCisibmllIGRvIG9kenlza2FuaWEuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICJTZWt0b3Lzdy+2Y2llv2vqIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2Vzbid0IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJQYXJ0eWNqYSAlZCBuaWUga2/xY3p5IHNp6iBuYSBncmFuaWN5IGN5bGluZHJhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiUGFydHljamEgJWQgemFjaG9kemkgbmEgaW5uZSB3IHNla3RvcmFjaCAlZC0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzIDAtJWRcbiIKK21zZ3N0ciAiTmlldb95d2FueSBvZHN06nAgLSBzZWt0b3J5IDAtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIk5pZXW/eXdhbnkgb2RzdOpwIC0gc2VrdG9yeSAlZC0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdGhlciBwYXJ0aXRpb25zIGFscmVhZHkgY292ZXIgdGhlIHdob2xlIGRpc2suXG4iCisiRGVsZXRlIHNvbWUvc2hyaW5rIHRoZW0gYmVmb3JlIHJldHJ5LlxuIgorbXNnc3RyICIiCisiSW5uZSBwYXJ0eWNqZSBqdb8gcG9rcnl3YWqxIGNhs3kgZHlzay5cbiIKKyJOYWpwaWVydyB0cnplYmEgY2+2IHVzdW6x5i96bW5pZWpzennmLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiWmRlY3lkb3dhbmllIHphbGVjYSBzaeosIGFieSB0cnplY2lhIHBhcnR5Y2phIHBva3J5d2GzYSBjYbN5IGR5c2tcbiIKKyJpIGJ5s2EgdHlwdSBgQ2GzeSBkeXNrJ1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZCBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWt0b3IgJWQgamVzdCBqdb8gcHJ6eWR6aWVsb255XG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlbid0IGNvdmVyZWQgdGhlIHdob2xlIGRpc2sgd2l0aCB0aGUgM3JkIHBhcnRpdGlvbiwgYnV0IHlvdXIgdmFsdWVcbiIKKyIlZCAlcyBjb3ZlcnMgc29tZSBvdGhlciBwYXJ0aXRpb24uIFlvdXIgZW50cnkgaGFzIGJlZW4gY2hhbmdlZFxuIgorInRvICVkICVzXG4iCittc2dzdHIgIiIKKyJOaWUgcG9rcnl0byBjYbNlZ28gZHlza3UgdHJ6ZWNpsSBwYXJ0eWNqsSwgYWxlIHdhcnRvtuYgJWQgJXNcbiIKKyJwb2tyeXdhIGlubrEgcGFydHljauouIFdwaXMgem9zdGGzIHptaWVuaW9ueSBuYSAlZCAlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyJBYnkgemFjaG93YeYga29tcGF0eWJpbG5vtuYgeiBTdW5PUy1lbS9Tb2xhcmlzZW0sIG5hamxlcGllaiBwb3pvc3Rhd2nmXG4iCisidOogcGFydHljauogamFrbyBjYbN5IGR5c2sgKDUpLCB6YWN6eW5harFjsSBzaeogb2QgMCwgbyAldSBzZWt0b3JhY2hcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIlpkZWN5ZG93YW5pZSB6YWxlY2Egc2nqLCBhYnkgcGFydHljamEgcG9kIG9mZnNldGVtIDAgYnmzYVxuIgorInR5cHUgVUZTLCBFWFQyRlMgbHViIFN1bk9TIHN3YXAuIFVtaWVzemN6ZW5pZSB0dXRhaiBwYXJ0eWNqaVxuIgorInd5bWlhbnkgTGludWtzYSBtb79lIHpuaXN6Y3p55iB0YWJsaWPqIHBhcnR5Y2ppIGkgYmxva1xuIgorInJvenJ1Y2hvd3kuIFByb3N66iB3cGlzYeYgVEEsIGpltmxpIG5hIHBld25vIHRhIHBhcnR5Y2phIG1hXG4iCisibWll5iB0eXAgODIgKExpbnV4IHN3YXApOiAiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEeXNrICVzIChldHlraWV0YSBkeXNrdSBTdW5hKTogZ7Nvd2ljOiAlZCwgc2VrdG9y83c6ICVsbHUsIHJwbTogJWRcbiIKKyJjeWxpbmRy83c6ICVkLCB6bWllbm55Y2ggY3lsaW5kcvN3OiAlZCwgZml6eWN6bnljaCBjeWxpbmRy83c6ICVkXG4iCisiZG9kYXRrb3d5Y2ggc2VrdG9y83cvY3lsaW5kZXI6ICVkLCBwcnplcGxvdDogJWQ6MVxuIgorIklEIGV0eWtpZXR5OiAlc1xuIgorIklEIHdvbHVtZW51OiAlc1xuIgorIkplZG5vc3RrYTogJXMsIGN6eWxpICVkICogNTEyIGJhanTzd1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkR5c2sgJXMgKGV0eWtpZXRhIGR5c2t1IFN1bmEpOiBns293aWM6ICVkLCBzZWt0b3LzdzogJWxsdSwgY3lsaW5kcvN3OiAlZFxuIgorIkplZG5vc3RrYTogJXMsIGN6eWxpICVkICogNTEyIGJhanTzd1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBGbGFnYSAgIFBvY3qxdGVrICAgIEtvbmllYyBCbG9r83cgICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MjUKK21zZ2lkICJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiTGljemJhIHptaWVubnljaCBjeWxpbmRy83ciCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MzcKK21zZ2lkICJFeHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiRG9kYXRrb3d5Y2ggc2VrdG9y83cgbmEgY3lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NDQKK21zZ2lkICJJbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiV3Nw87NjenlubmlrIHByemVwbG90dSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1MQorbXNnaWQgIlJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICJQcupka2+25iBvYnJvdG93YSAocnBtKSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1OAorbXNnaWQgIk51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIkxpY3piYSBmaXp5Y3pueWNoIGN5bGluZHLzdyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgIkJyYWsiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICJGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4Cittc2dpZCAiWEVOSVggcm9vdCIKK21zZ3N0ciAiWEVOSVggcm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5Cittc2dpZCAiWEVOSVggdXNyIgorbXNnc3RyICJYRU5JWCB1c3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAKK21zZ2lkICJGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjExCittc2dpZCAiRXh0ZW5kZWQiCittc2dzdHIgIlJvenN6ZXJ6b25hIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYIHN0YXJ0b3dhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgQm9vdCBNYW5hZ2VyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICJXOTUgUm96c3ouIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIxCittc2dpZCAiT1BVUyIKK21zZ3N0ciAiT1BVUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMgorbXNnaWQgIkhpZGRlbiBGQVQxMiIKK21zZ3N0ciAiVWtyeXRhIEZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIzCittc2dpZCAiQ29tcGFxIGRpYWdub3N0aWNzIgorbXNnc3RyICJDb21wYXEgZGlhZ25vc3RpY3MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjQKK21zZ2lkICJIaWRkZW4gRkFUMTYgPDMyTSIKK21zZ3N0ciAiVWtyeXRhIEZBVDE2IDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjUKK21zZ2lkICJIaWRkZW4gRkFUMTYiCittc2dzdHIgIlVrcnl0YSBGQVQxNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNgorbXNnaWQgIkhpZGRlbiBIUEZTL05URlMiCittc2dzdHIgIlVrcnl0YSBIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjcKK21zZ2lkICJBU1QgU21hcnRTbGVlcCIKK21zZ3N0ciAiQVNUIFNtYXJ0U2xlZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjgKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIgorbXNnc3RyICJVa3J5dGEgVzk1IEZBVDMyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI5Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVWtyeXRhIFc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMTYgKExCQSkiCittc2dzdHIgIlVrcnl0YSBXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzEKK21zZ2lkICJORUMgRE9TIgorbXNnc3RyICJORUMgRE9TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMyCittc2dpZCAiUGxhbiA5IgorbXNnc3RyICJQbGFuIDkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzMKK21zZ2lkICJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIKK21zZ3N0ciAiUGFydGl0aW9uTWFnaWMgcmVjb3ZlcnkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzQKK21zZ2lkICJWZW5peCA4MDI4NiIKK21zZ3N0ciAiVmVuaXggODAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzUKK21zZ2lkICJQUEMgUFJlUCBCb290IgorbXNnc3RyICJQUEMgUFJlUCBCb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM2Cittc2dpZCAiU0ZTIgorbXNnc3RyICJTRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzcKK21zZ2lkICJRTlg0LngiCittc2dzdHIgIlFOWDQueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOAorbXNnaWQgIlFOWDQueCAybmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IHBhcnQuIDIuIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM5Cittc2dpZCAiUU5YNC54IDNyZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggcGFydC4gMy4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDAKK21zZ2lkICJPblRyYWNrIERNIgorbXNnc3RyICJPblRyYWNrIERNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQxCittc2dpZCAiT25UcmFjayBETTYgQXV4MSIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MgorbXNnaWQgIkNQL00iCittc2dzdHIgIkNQL00iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDMKK21zZ2lkICJPblRyYWNrIERNNiBBdXgzIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ0Cittc2dpZCAiT25UcmFja0RNNiIKK21zZ3N0ciAiT25UcmFja0RNNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NQorbXNnaWQgIkVaLURyaXZlIgorbXNnc3RyICJFWi1Ecml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NgorbXNnaWQgIkdvbGRlbiBCb3ciCittc2dzdHIgIkdvbGRlbiBCb3ciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDcKK21zZ2lkICJQcmlhbSBFZGlzayIKK21zZ3N0ciAiUHJpYW0gRWRpc2siCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk5Cittc2dpZCAiU3BlZWRTdG9yIgorbXNnc3RyICJTcGVlZFN0b3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICJHTlUgSFVSRCBsdWIgU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiU3RhcnkgTWluaXgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTUKK21zZ2lkICJNaW5peCAvIG9sZCBMaW51eCIKK21zZ3N0ciAiTWluaXggLyBzdGFyeSBMaW51eCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eCBzd2FwIC8gU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIHVrcnl0eSBkeXNrIEM6IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU5Cittc2dpZCAiTGludXggZXh0ZW5kZWQiCittc2dzdHIgIkxpbnV4IGV4dCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYxCittc2dpZCAiTlRGUyB2b2x1bWUgc2V0IgorbXNnc3RyICJOVEZTIHZvbHVtZSBzZXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjIKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIkxpbnV4IHBsYWludGV4dCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NAorbXNnaWQgIkFtb2ViYSIKK21zZ3N0ciAiQW1vZWJhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY1Cittc2dpZCAiQW1vZWJhIEJCVCIKK21zZ3N0ciAiQW1vZWJhIEJCVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NgorbXNnaWQgIkJTRC9PUyIKK21zZ3N0ciAiQlNEL09TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY3Cittc2dpZCAiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIgorbXNnc3RyICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjgKK21zZ2lkICJGcmVlQlNEIgorbXNnc3RyICJGcmVlQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY5Cittc2dpZCAiT3BlbkJTRCIKK21zZ3N0ciAiT3BlbkJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MAorbXNnaWQgIk5lWFRTVEVQIgorbXNnc3RyICJOZVhUU1RFUCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MQorbXNnaWQgIkRhcndpbiBVRlMiCittc2dzdHIgIkRhcndpbiBVRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzIKK21zZ2lkICJOZXRCU0QiCittc2dzdHIgIk5ldEJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MworbXNnaWQgIkRhcndpbiBib290IgorbXNnc3RyICJEYXJ3aW4gYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NAorbXNnaWQgIkhGUyAvIEhGUysiCittc2dzdHIgIkhGUyAvIEhGUysiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzUKK21zZ2lkICJCU0RJIGZzIgorbXNnc3RyICJCU0RJIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc2Cittc2dpZCAiQlNESSBzd2FwIgorbXNnc3RyICJCU0RJIHN3YXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIlVrcnl0YSBCb290IFdpemFyZCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OAorbXNnaWQgIlNvbGFyaXMgYm9vdCIKK21zZ3N0ciAiU29sYXJpcyBib290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc5Cittc2dpZCAiU29sYXJpcyIKK21zZ3N0ciAiU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MAorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTEyKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgxCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODIKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTE2KSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MworbXNnaWQgIlN5cmlueCIKK21zZ3N0ciAiU3lyaW54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg0Cittc2dpZCAiTm9uLUZTIGRhdGEiCittc2dzdHIgIk5vbi1GUyBkYXRhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg1Cittc2dpZCAiQ1AvTSAvIENUT1MgLyAuLi4iCittc2dzdHIgIkNQL00gLyBDVE9TIC8gLi4uIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg3Cittc2dpZCAiRGVsbCBVdGlsaXR5IgorbXNnc3RyICJEZWxsIFV0aWxpdHkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODgKK21zZ2lkICJCb290SXQiCittc2dzdHIgIkJvb3RJdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OQorbXNnaWQgIkRPUyBhY2Nlc3MiCittc2dzdHIgIkRPUyBhY2Nlc3MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTEKK21zZ2lkICJET1MgUi9PIgorbXNnc3RyICJET1MgUi9PIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk0Cittc2dpZCAiQmVPUyBmcyIKK21zZ3N0ciAiQmVPUyBmcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorbXNnaWQgIkdQVCIKK21zZ3N0ciAiR1BUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk2Cittc2dpZCAiRUZJIChGQVQtMTIvMTYvMzIpIgorbXNnc3RyICJFRkkgKEZBVC0xMi8xNi8zMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTcKK21zZ2lkICJMaW51eC9QQS1SSVNDIGJvb3QiCittc2dzdHIgIkxpbnV4L1BBLVJJU0MgYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1Mgc2Vjb25kYXJ5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICJWTXdhcmUgVk1GUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDIKK21zZ2lkICJWTXdhcmUgVk1LQ09SRSIKK21zZ3N0ciAiVk13YXJlIFZNS0NPUkUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA2Cittc2dpZCAiTEFOc3RlcCIKK21zZ3N0ciAiTEFOc3RlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDcKK21zZ2lkICJCQlQiCittc2dzdHIgIkJCVCIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3Igb24gJXMgLSBjYW5ub3Qgc2VlayB0byAlbHVcbiIKK21zZ3N0ciAiYrOxZCBwcnplbWllc3pjemFuaWEgbmEgJXMgLSBuaWUgbW+/bmEgcHJ6ZXN1brHmIG5hICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgImKzsWQgcHJ6ZW1pZXN6Y3phbmlhOiC/sWRhbm8gMHglMDh4JTA4eCwgb3RyenltYW5vIDB4JTA4eCUwOHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1Cittc2dpZCAib3V0IG9mIG1lbW9yeSAtIGdpdmluZyB1cFxuIgorbXNnc3RyICJicmFrIHBhbWnqY2kgLSBwb2RkYWrqIHNp6lxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjAgZmRpc2svc2ZkaXNrLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZXJyb3Igb24gJXMgLSBjYW5ub3QgcmVhZCBzZWN0b3IgJWx1XG4iCittc2dzdHIgImKzsWQgb2Rjenl0dSBuYSAlcyAtIG5pZSBtb79uYSBvZGN6eXRh5iBzZWt0b3JhICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiQqOhRDogc2VrdG9yICVsdSBuaWUgemF3aWVyYSBzeWduYXR1cnkgTVNET1NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzIC0gY2Fubm90IHdyaXRlIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiYrOxZCB6YXBpc3UgbmEgJXMgLSBuaWUgbW+/bmEgemFwaXNh5iBzZWt0b3JhICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHNlY3RvciBzYXZlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJuaWUgbW+/bmEgb3R3b3J6eeYgcGxpa3UgemFwaXN1IHNla3RvcmEgcGFydHljamkgKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiYrOxZCB6YXBpc3UgbmEgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJuaWUgbW+/bmEgd3lrb25h5iBzdGF0IG5hIHBsaWt1IG9kdHdhcnphbmlhIHBhcnR5Y2ppICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAicGxpayBvZHR3YXJ6YW5pYSBwYXJ0eWNqaSBtYSBis+pkbnkgcm96bWlhciAtIGJleiBvZHR3YXJ6YW5pYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDQKK21zZ2lkICJvdXQgb2YgbWVtb3J5P1xuIgorbXNnc3RyICJicmFrIHBhbWnqY2k/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAibmllIG1vv25hIG90d29yennmIHBsaWt1IG9kdHdhcnphbmlhIHBhcnR5Y2ppICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiYrOxZCBvZGN6eXR1ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAibmllIG1vv25hIG90d29yennmIHVyerFkemVuaWEgJXMgZG8gemFwaXN1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nIHNlY3RvciAlbHUgb24gJXNcbiIKK21zZ3N0ciAiYrOxZCB6YXBpc3Ugc2VrdG9yYSAlbHUgbmEgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgZ2VvbWV0cnlcbiIKK21zZ3N0ciAiRHlzayAlczogbmllIG1vv25hIHBvYnJh5iBnZW9tZXRyaWlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICJEeXNrICVzOiBuaWUgbW+/bmEgcG9icmHmIHJvem1pYXJ1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc3RhcnQ9JWx1IC0gdGhpcyBsb29rcyBsaWtlIGEgcGFydGl0aW9uIHJhdGhlciB0aGFuXG4iCisidGhlIGVudGlyZSBkaXNrLiBVc2luZyBmZGlzayBvbiBpdCBpcyBwcm9iYWJseSBtZWFuaW5nbGVzcy5cbiIKKyJbVXNlIHRoZSAtLWZvcmNlIG9wdGlvbiBpZiB5b3UgcmVhbGx5IHdhbnQgdGhpc11cbiIKK21zZ3N0ciAiIgorIlV3YWdhOiBwb2N6sXRlaz0lbHUgLSB3eWdssWRhIHRvIG5hIHBhcnR5Y2rqLCBhIG5pZSBjYbN5IGR5c2suXG4iCisiVb95d2FuaWUgbmEgbmllaiBmZGlza2EgcHJhd2RvcG9kb2JuaWUgbmljIG5pZSBkYS5cbiIKKyJbSmW2bGkgbmFwcmF3ZOogbyB0byBjaG9kemkgLSBwcm9zeuogdb955iBvcGNqaSAtLWZvcmNlXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAiVXdhZ2E6IEhESU9fR0VUR0VPIHR3aWVyZHppLCC/ZSBsaWN6YmEgZ7Nvd2ljIHRvICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgc2VjdG9yc1xuIgorbXNnc3RyICJVd2FnYTogSERJT19HRVRHRU8gdHdpZXJkemksIL9lIGxpY3piYSBzZWt0b3LzdyB0byAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIlV3YWdhOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHR3aWVyZHppLCC/ZSBsaWN6YmEgY3lsaW5kcvN3IHRvICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJVd2FnYTogbWGzbyBwcmF3ZG9wb2RvYm5hIGxpY3piYSBzZWt0b3LzdyAoJWx1KSAtIHp3eWtsZSBzsSBuYWp3eb9laiA2M1xuIgorIlNwb3dvZHVqZSB0byBwcm9ibGVteSB6IGthv2R5bSBvcHJvZ29yYW1vd2FuaWVtIHW/eXdharFjeW0gYWRyZXNvd2FuaWEgQy9ILyIKKyJTLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIkR5c2sgJXM6IGN5bGluZHLzdzogJWx1LCBns293aWM6ICVsdSwgc2VrdG9y83cgbmEgtmNpZb9jZTogJWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRsYSBwYXJ0eWNqaSAlcyBtYSBuaWVtb79saXexIGxpY3pi6iBns293aWM6ICVsdSAocG93aW5uYSBieeYgMC0lbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBzZWN0b3I6ICVsdSAoc2hvdWxkIGJlIGluIDEtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRsYSBwYXJ0eWNqaSAlcyBtYSBuaWVtb79saXexIGxpY3pi6iBzZWt0b3LzdzogJWx1IChwb3dpbm5hIGJ55iAxLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGN5bGluZGVyczogJWx1IChzaG91bGQgYmUgaW4gMC0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgZGxhIHBhcnR5Y2ppICVzIG1hIG5pZW1vv2xpd7EgbGljemLqIGN5bGluZHLzdzogJWx1IChwb3dpbm5hIGJ55iAwLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZCAgTmFtZVxuIgorIlxuIgorbXNnc3RyICIiCisiSWQgIE5hendhXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iCittc2dzdHIgIlBvbm93bnkgb2Rjenl0IHRhYmxpY3kgcGFydHljamkuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCittc2dpZCAiIgorIlRoZSBjb21tYW5kIHRvIHJlLXJlYWQgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQuXG4iCisiUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIG9yIHJlYm9vdCB5b3VyIHN5c3RlbSBub3csXG4iCisiYmVmb3JlIHVzaW5nIG1rZnNcbiIKK21zZ3N0ciAiIgorIlBvbGVjZW5pZSBwb25vd25lZ28gb2Rjenl0dSB0YWJsaWN5IHBhcnR5Y2ppIG5pZSBwb3dpb2SzbyBzaeouXG4iCisiUHJ6ZWQgbWtmcyBuYWxlv3kgdXJ1Y2hvbWnmIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIGx1YlxuIgorInpyZXN0YXJ0b3dh5iBzeXN0ZW0uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxNworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjbG9zaW5nICVzXG4iCittc2dzdHIgIkKzsWQgemFteWthbmlhICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IG5pZSBtYSB0YWtpZWogcGFydHljamlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODc4Cittc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCAtIHVzaW5nIHNlY3RvcnNcbiIKK21zZ3N0ciAibmllcm96cG96bmFueSBmb3JtYXQgLSB1v3ljaWUgc2VrdG9y83dcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAiZm9ybWF0IG5pZXphaW1wbGVtZW50b3dhbnkgLSB1v3ljaWUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJKZWRub3N0a2EgPSBjeWxpbmRyeSwgY3p5bGkgJWx1IGJhanTzdywgYmxva2kgMTAyNC1iYWp0b3dlIGxpY3pvbmUgb2QgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgIFVyerFkei5Sb3pyLiBQb2N6sXRlayBLb25pZWMgI2N5bC4gICAgI2Jsb2vzdyAgIElkICBTeXN0ZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IHNlY3RvcnMgb2YgNTEyIGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJKZWRub3N0a2EgPSBzZWt0b3J5IDUxMi1iYWp0b3dlLCBsaWN6b25lIG9kICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgICBTdGFydCAgICAgICBFbmQgICAjc2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgIFVyerFkei4gUm96cnVjaCBQb2N6sXRlayAgIEtvbmllYyAjc2VrdG9y83cgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkplZG5vc3RrYSA9IGJsb2tpIDEwMjQtYmFqdG93ZSwgbGljem9uZSBvZCAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICBTdGFydCAgICAgICBFbmQgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICBVcnqxZHouUm96cnVjaCBQb2N6sXRlayAgICBLb25pZWMgI2Jsb2vzdyAgIElkICBTeXN0ZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IG1lYmlieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiSmVkbm9zdGthID0gbWViaWJhanR5ICgxMDQ4NTc2IGJhanTzdyksIGJsb2tpIDEwMjQtYmFqdG93ZSwgbGljem9uZSBvZCAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgVXJ6sWR6LlJvenIuIFBvY3ouICAgS29uaWVjIE1pQiAgICAjYmxva/N3ICAgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIlx0XHRwb2N6sXRlazogKGMsaCxzKSBvY3pla2l3YW5lICglbGQsJWxkLCVsZCksIG90cnp5bWFubyAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdGVuZDogKGMsaCxzKSBvY3pla2l3YW5lICglbGQsJWxkLCVsZCksIG90cnp5bWFubyAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJwYXJ0eWNqYSBrb/Fjenkgc2nqIG5hIGN5bGluZHJ6ZSAlbGQsIHphIGtv8WNlbSBkeXNrdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTMzCittc2dpZCAiTm8gcGFydGl0aW9ucyBmb3VuZFxuIgorbXNnc3RyICJOaWUgem5hbGV6aW9ubyC/YWRuZWogcGFydHljamlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJVd2FnYTogdGFibGljYSBwYXJ0eWNqaSB3eWdssWRhLCBqYWtieSB6b3N0YbNhIHV0d29yem9uYVxuIgorIiAgZGxhIEMvSC9TPSovJWxkLyVsZCAoemFtaWFzdCAlbGQvJWxkLyVsZCkuXG4iCisiRGxhIHRlZ28gbGlzdGluZ3UgemGzb79vbm8gdOogZ2VvbWV0cmnqLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgInRhYmxpY2EgcGFydHljamkgbmllIGlzdG5pZWplLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg4CisjLCBjLWZvcm1hdAorbXNnaWQgInN0cmFuZ2UsIG9ubHkgJWQgcGFydGl0aW9ucyBkZWZpbmVkLlxuIgorbXNnc3RyICJkeml3bmUsIHpkZWZpbmlvd2FubyB0eWxrbyAlZCBwYXJ0eWNqaS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBidXQgaXMgbm90IG1hcmtlZCBFbXB0eVxuIgorbXNnc3RyICJVd2FnYTogcGFydHljamEgJXMgbWEgcm96bWlhciAwLCBhbGUgbmllIGplc3QgemF6bmFjem9uYSBqYWtvIHB1c3RhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIGlzIGJvb3RhYmxlXG4iCittc2dzdHIgIlV3YWdhOiBwYXJ0eWNqYSAlcyBtYSByb3ptaWFyIDAsIGEgamVzdCByb3pydWNob3dhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiVXdhZ2E6IHBhcnR5Y2phICVzIG1hIHJvem1pYXIgMCBpIG5pZXplcm93eSBwb2N6sXRla1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyAiCittc2dzdHIgIlV3YWdhOiBwYXJ0eWNqYSAlcyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgbm90IGNvbnRhaW5lZCBpbiBwYXJ0aXRpb24gJXNcbiIKK21zZ3N0ciAibmllIHphd2llcmEgc2nqIHcgcGFydHljamkgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb25zICVzICIKK21zZ3N0ciAiVXdhZ2E6IHBhcnR5Y2plICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICJpICVzIHphY2hvZHqxIG5hIHNpZWJpZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgY29udGFpbnMgcGFydCBvZiB0aGUgcGFydGl0aW9uIHRhYmxlIChzZWN0b3IgJWx1KSxcbiIKKyJhbmQgd2lsbCBkZXN0cm95IGl0IHdoZW4gZmlsbGVkXG4iCittc2dzdHIgIiIKKyJVd2FnYTogcGFydHljamEgJXMgemF3aWVyYSBjeuq25iB0YWJsaWN5IHBhcnR5Y2ppIChzZWt0b3IgJWx1KVxuIgorImkgem9zdGFuaWUgem5pc3pjem9uYSBwbyBqZWogd3lwZbNuaWVuaXVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgc3RhcnRzIGF0IHNlY3RvciAwXG4iCittc2dzdHIgIlV3YWdhOiBwYXJ0eWNqYSAlcyB6YWN6eW5hIHNp6iBvZCBzZWt0b3JhIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIlV3YWdhOiBwYXJ0eWNqYSAlcyB3eXN0YWplIHphIGtvbmllYyBkeXNrdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjY5Cittc2dpZCAiIgorIkFtb25nIHRoZSBwcmltYXJ5IHBhcnRpdGlvbnMsIGF0IG1vc3Qgb25lIGNhbiBiZSBleHRlbmRlZFxuIgorIiAoYWx0aG91Z2ggdGhpcyBpcyBub3QgYSBwcm9ibGVtIHVuZGVyIExpbnV4KVxuIgorbXNnc3RyICIiCisiU3BvtnLzZCBwYXJ0eWNqaSBns/N3bnljaCBuYWp3eb9laiBqZWRuYSBtb79lIGJ55iByb3pzemVyem9uYVxuIgorIiAoamVkbmFrv2UgbmllIGplc3QgdG8gcHJvYmxlbWVtIHBvZCBMaW51a3NlbSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJVd2FnYTogcGFydHljamEgJXMgbmllIHphY3p5bmEgc2nqIG5hIGdyYW5pY3kgY3lsaW5kcmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI5MworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3QgZW5kIGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiVXdhZ2E6IHBhcnR5Y2phICVzIG5pZSBrb/Fjenkgc2nqIG5hIGdyYW5pY3kgY3lsaW5kcmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxMQorbXNnaWQgIiIKKyJXYXJuaW5nOiBtb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJVd2FnYTogd2nqY2VqIG5pvyBqZWRuYSBns/N3bmEgcGFydHljamEgamVzdCB6YXpuYWN6b25hIGpha28gcm96cnVjaG93YVxuIgorIihha3R5d25hKS4gRGxhIExJTE8gbmllIG1hIHRvIHpuYWN6ZW5pYSwgYWxlIERPUy1vd3kgTUJSIG5pZSB1cnVjaG9taVxuIgorInN5c3RlbXUgeiB0ZWdvIGR5c2t1LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzE4Cittc2dpZCAiIgorIldhcm5pbmc6IHVzdWFsbHkgb25lIGNhbiBib290IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zIG9ubHlcbiIKKyJMSUxPIGRpc3JlZ2FyZHMgdGhlIGBib290YWJsZScgZmxhZy5cbiIKK21zZ3N0ciAiIgorIlV3YWdhOiB6d3lrbGUgbW+/bmEgdXJ1Y2hvbWnmIHN5c3RlbSB0eWxrbyB6IHBhcnR5Y2ppIGez83dueWNoLlxuIgorIkxJTE8gbmllIGJpZXJ6ZSBwb2QgdXdhZ+ogZmxhZ2kgcm96cnVjaHUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMjQKK21zZ2lkICIiCisiV2FybmluZzogbm8gcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorIlV3YWdhOiC/YWRuYSBwYXJ0eWNqYSBns/N3bmEgbmllIGplc3QgemF6bmFjem9uYSBqYWtvIHJvenJ1Y2hvd2EgKGFrdHl3bmEpLlxuIgorIk5pZSBtYSB0byB6bmFjemVuaWEgZGxhIExJTE8sIGFsZSBET1Mtb3d5IE1CUiBuaWUgdXJ1Y2hvbWkgc3lzdGVtdSB6IHRlZ29cbiIKKyJkeXNrdS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMzOAorbXNnaWQgInN0YXJ0IgorbXNnc3RyICJwb2N6sXRlayIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisicGFydGl0aW9uICVzOiBzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorInBhcnR5Y2phICVzOiBwb2N6sXRlazogKGMsaCxzKSBvY3pla2l3YW5lICglbGQsJWxkLCVsZCksIG90cnp5bWFubyAoJWxkLCVsZCwlIgorImxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQ3Cittc2dpZCAiZW5kIgorbXNnc3RyICJrb25pZWMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzOiBlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJwYXJ0eWNqYSAlczoga29uaWVjOiAoYyxoLHMpIG9jemVraXdhbmUgKCVsZCwlbGQsJWxkKSwgb3RyenltYW5vICglbGQsJWxkLCUiCisibGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJwYXJ0eWNqYSAlcyBrb/Fjenkgc2nqIG5hIGN5bGluZHJ6ZSAlbGQsIHphIGtv8WNlbSBkeXNrdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzaGlmdGVkIHN0YXJ0IG9mIHRoZSBleHRkIHBhcnRpdGlvbiBmcm9tICVsZCB0byAlbGRcbiIKKyIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorbXNnc3RyICIiCisiVXdhZ2E6IHByemVzdW5p6nRvIHBvY3qxdGVrIHBhcnR5Y2ppIHJvenN6ZXpyb25laiB6ICVsZCBuYSAlbGRcbiIKKyIodHlsa28gbmEgcG90cnplYnkgbGlzdHkgLSBiZXogem1pYW55IHphd2FydG+2Y2kpLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiVXdhZ2E6IHBhcnR5Y2phIHJvenN6ZXJ6b25hIG5pZSB6YWN6eW5hIHNp6iBuYSBncmFuaWN5IGN5bGluZHJhLlxuIgorIkRPUyBpIExpbnV4IGluYWN6ZWogemludGVycHJldHVqsSBqZWogemF3YXJ0b7bmLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICJ6Ynl0IGR1v28gcGFydHljamkgLSB6aWdub3Jvd2FubyBwcnpla3JhY3pharFjZSBuciAlZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDE3Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICJkcnpld28gcGFydHljamk/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAid3lrcnl0byBEaXNrIE1hbmFnZXIgLSBwcm9ncmFtIG5pZSBtb79lIHRlZ28gb2Jzs3W/eeZcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUzMgorbXNnaWQgIkRNNiBzaWduYXR1cmUgZm91bmQgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAid3lrcnl0byBzeWduYXR1cuogRE02IC0gcG9kZGFq6iBzaepcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1MgorbXNnaWQgInN0cmFuZ2UuLi4sIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgImR6aXduZS4uLiBwYXJ0eWNqYSByb3pzemVyem9uYSByb3ptaWFydSAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJkeml3bmUuLi4gcGFydHljamEgQlNEIHJvem1pYXJ1IDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzOiB1bnJlY29nbml6ZWQgcGFydGl0aW9uIHRhYmxlIHR5cGVcbiIKK21zZ3N0ciAiICVzOiBuaWVyb3pwb3puYW55IHR5cCB0YWJsaWN5IHBhcnR5Y2ppXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgInBvZGFubyBmbGFn6iAtbjogYmV6IHptaWFuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzIKK21zZ2lkICJGYWlsZWQgc2F2aW5nIHRoZSBvbGQgc2VjdG9ycyAtIGFib3J0aW5nXG4iCittc2dzdHIgIk5pZSB1ZGGzbyBzaeogemFwaXNh5iBzdGFyeWNoIHNla3RvcvN3IC0gcHJ6ZXJ3YW5vXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzcgZmRpc2svc2ZkaXNrLmM6MTY0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgIk5pZSB1ZGGzbyBzaeogemFwaXNh5iBwYXJ0eWNqaSBuYSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzE5Cittc2dpZCAibG9uZyBvciBpbmNvbXBsZXRlIGlucHV0IGxpbmUgLSBxdWl0dGluZ1xuIgorbXNnc3RyICJks3VnYSBsdWIgbmlla29tcGxldG5hIGxpbmlhIG5hIHdlarZjaXUgLSB6YWtv8WN6ZW5pZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiYrOxZCB3ZWq2Y2lhOiBvY3pla2l3YW5vIGA9JyBwbyBwb2x1ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IHVuZXhwZWN0ZWQgY2hhcmFjdGVyICVjIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgImKzsWQgd2VqtmNpYTogb2N6ZWtpd2FubyB6bmFrdSAlYyBwbyBwb2x1ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICJuaWVyb3pwb3puYW5lIHdlarZjaWU6ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTAKK21zZ2lkICJudW1iZXIgdG9vIGJpZ1xuIgorbXNnc3RyICJsaWN6YmEgemJ5dCBkdb9hXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICJrb/Fjb3dlILZtaWVjaSBwbyBsaWN6YmllXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICJicmFrIG1pZWpzY2EgbmEgZGVza3J5cHRvciBwYXJ0eWNqaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTcxCittc2dpZCAiY2Fubm90IGJ1aWxkIHN1cnJvdW5kaW5nIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJuaWUgbW+/bmEgemJ1ZG93YeYgb3RhY3pharFjZWogcGFydHljamkgcm96c3plcnpvbmVqXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwMjIKK21zZ2lkICJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIKK21zZ3N0ciAiemJ5dCBkdb9vIHDzbCB3ZWq2Y2lvd3ljaFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDU2Cittc2dpZCAiTm8gcm9vbSBmb3IgbW9yZVxuIgorbXNnc3RyICJCcmFrIG1pZWpzY2EgbmEgd2nqY2VqXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNzUKK21zZ2lkICJJbGxlZ2FsIHR5cGVcbiIKK21zZ3N0ciAiTmllZG96d29sb255IHR5cFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGdpdmVuIHNpemUgKCVsdSkgZXhjZWVkcyBtYXggYWxsb3dhYmxlIHNpemUgKCVsdSlcbiIKK21zZ3N0ciAiVXdhZ2E6IHBvZGFueSByb3ptaWFyICglbHUpIHByemVrcmFjemEgbWFrc3ltYWxueSBkb3B1c3pjemFsbnkgKCVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjExMworbXNnaWQgIldhcm5pbmc6IGVtcHR5IHBhcnRpdGlvblxuIgorbXNnc3RyICJVd2FnYTogcHVzdGEgcGFydHljamFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIlV3YWdhOiBis+pkbnkgcG9jerF0ZWsgcGFydHljamkgKG5hamJsab9zenkgJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTQwCittc2dpZCAidW5yZWNvZ25pemVkIGJvb3RhYmxlIGZsYWcgLSBjaG9vc2UgLSBvciAqXG4iCittc2dzdHIgIm5pZXJvenBvem5hbmEgZmxhZ2Egcm96cnVjaHUgLSBwcm9zeuogd3licmHmIC0gbHViICpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1NyBmZGlzay9zZmRpc2suYzoyMTcwCittc2dpZCAicGFydGlhbCBjLGgscyBzcGVjaWZpY2F0aW9uP1xuIgorbXNnc3RyICJjeuq2Y2lvd2Egc3BlY3lmaWthY2phIGMsaCxzP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICJQYXJ0eWNqYSByb3pzemVyem9uYSBuaWUgdGFtLCBnZHppZSBqZWogb2N6ZWtpd2Fub1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjEzCittc2dpZCAiYmFkIGlucHV0XG4iCittc2dzdHIgImKz6mRuZSB3ZWq2Y2llXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMzUKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zXG4iCittc2dzdHIgInpieXQgZHW/byBwYXJ0eWNqaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjY4Cittc2dpZCAiIgorIklucHV0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OyBhYnNlbnQgZmllbGRzIGdldCBhIGRlZmF1bHQgdmFsdWUuXG4iCisiPHN0YXJ0PiA8c2l6ZT4gPHR5cGUgW0UsUyxMLFgsaGV4XT4gPGJvb3RhYmxlIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyJVc3VhbGx5IHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSA8c3RhcnQ+IGFuZCA8c2l6ZT4gKGFuZCBwZXJoYXBzIDx0eXBlPikuXG4iCittc2dzdHIgIiIKKyJXZWq2Y2llIGplc3QgdyBuYXN06nB1arFjZWogcG9zdGFjaSAocHVzdGUgcG9sYSBvem5hY3pharEgd2FydG+25iAiCisiZG9tebZsbrEpOlxuIgorIjxwb2N6sXRlaz4gPHJvem1pYXI+IDx0eXAgW0UsUyxMLFgsaGV4XT4gPHJvenJ1Y2ggWy0sKj4gPGMsaCxzPiA8YyxoLHM+XG4iCisiWnd5a2xlIHRyemViYSBwb2Rh5iB0eWxrbyA8cG9jerF0ZWs+IGkgPHJvem1pYXI+IChvcmF6IGV3ZW50dWFsbmllIDx0eXA+KS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIGRldmljZSAuLi5cbiIKK21zZ3N0ciAiU2uzYWRuaWE6ICVzIFtvcGNqZV0gdXJ6sWR6ZW5pZS4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAidXJ6sWR6ZW5pZTogY2+2IHcgc3R5bHUgL2Rldi9oZGEgbHViIC9kZXYvc2RhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk2Cittc2dpZCAidXNlZnVsIG9wdGlvbnM6IgorbXNnc3RyICJwcnp5ZGF0bmUgb3BjamU6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgIC1zIFtsdWIgLS1zaG93LXNpemVdOiB3eXBpc2FuaWUgcm96bWlhcnUgcGFydHljamkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTgKK21zZ2lkICIgICAgLWMgW29yIC0taWRdOiAgICAgICAgcHJpbnQgb3IgY2hhbmdlIHBhcnRpdGlvbiBJZCIKK21zZ3N0ciAiICAgIC1jIFtsdWIgLS1pZF06ICAgICAgICB3eXBpc2FuaWUgbHViIHptaWFuYSBJRCBwYXJ0eWNqaSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgICAtbCBbb3IgLS1saXN0XTogICAgICBsaXN0IHBhcnRpdGlvbnMgb2YgZWFjaCBkZXZpY2UiCittc2dzdHIgIiAgICAtbCBbbHViIC0tbGlzdF06ICAgICAgd3lwaXNhbmllIHBhcnR5Y2ppIHoga2G/ZGVnbyB1cnqxZHplbmlhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAwCittc2dpZCAiICAgIC1kIFtvciAtLWR1bXBdOiAgICAgIGlkZW0sIGJ1dCBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgbGF0ZXIgaW5wdXQiCittc2dzdHIgIiAgICAtZCBbbHViIC0tZHVtcF06ICAgICAgancuLCBhbGUgdyBmb3JtYWNpZSBvZHBvd2llZG5pbSBkbGEgd2VqtmNpYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAtaSBbb3IgLS1pbmNyZW1lbnRdOiBudW1iZXIgY3lsaW5kZXJzIGV0Yy4gZnJvbSAxIGluc3RlYWQgb2YgZnJvbSAwIgorbXNnc3RyICIgICAgLWkgW2x1YiAtLWluY3JlbWVudF06IGxpY3piYSBjeWxpbmRy83cgaXRwLiBvZCAxIHphbWlhc3Qgb2QgMCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMgorbXNnaWQgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0L3JlcG9ydCBpbiB1bml0cyBvZiBzZWN0b3JzL2Jsb2Nrcy9jeWxpbmRlcnMvIgorIk1CIgorbXNnc3RyICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogICBvcGVyb3dhbmllIG5hIGplZG5vc3RrYWNoOiBzZWt0b3IvYmxvay9jeWxpbmRlci9NQiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgICAtVCBbbHViIC0tbGlzdC10eXBlc106IHd5cGlzYW5pZSB6bmFueWNoIHR5cPN3IHBhcnR5Y2ppIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA0Cittc2dpZCAiICAgIC1EIFtvciAtLURPU106ICAgICAgIGZvciBET1MtY29tcGF0aWJpbGl0eTogd2FzdGUgYSBsaXR0bGUgc3BhY2UiCittc2dzdHIgIiIKKyIgICAgLUQgW2x1YiAtLURPU106ICAgICAgIGtvbXBhdHliaWxub7bmIHogRE9TLWVtOiBtYXJub3dhbmllIG9kcm9iaW55ICIKKyJtaWVqc2NhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA1Cittc2dpZCAiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIG1ha2Uga2VybmVsIHJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKyIgICAgLVIgW2x1YiAtLXJlLXJlYWRdOiAgIHd5bXVzemVuaWUgb2Rjenl0dSB0YWJsaWN5IHBhcnR5Y2ppIHByemV6IGqxZHJvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA2Cittc2dpZCAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIGNoYW5nZSBvbmx5IHRoZSBwYXJ0aXRpb24gd2l0aCBudW1iZXIgIyIKK21zZ3N0ciAiICAgIC1OIyA6ICAgICAgICAgICAgICAgICB6bWlhbmEgdHlsa28gcGFydHljamkgbyBudW1lcnplICMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiAgICAtbiA6ICAgICAgICAgICAgICAgICAgbmllIHphcGlzeXdhbmllIG5pY3plZ28gbmEgZHlzayIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOAorbXNnaWQgIiIKKyIgICAgLU8gZmlsZSA6ICAgICAgICAgICAgc2F2ZSB0aGUgc2VjdG9ycyB0aGF0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gdG8gZmlsZSIKK21zZ3N0ciAiIgorIiAgICAtTyBwbGlrIDogICAgICAgICAgICAgemFwaXMgZG8gcGxpa3Ugc2VrdG9y83cgcHJ6ZWQgaWNoIG5hZHBpc2FuaWVtIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA5Cittc2dpZCAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIHJlc3RvcmUgdGhlc2Ugc2VjdG9ycyBhZ2FpbiIKK21zZ3N0ciAiICAgIC1JIHBsaWsgOiAgICAgICAgICAgICBvZHR3b3J6ZW5pZSB0eWNoIHNla3RvcvN3IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEwCittc2dpZCAiICAgIC12IFtvciAtLXZlcnNpb25dOiAgIHByaW50IHZlcnNpb24iCittc2dzdHIgIiAgICAtdiBbbHViIC0tdmVyc2lvbl06ICAgd3lwaXNhbmllIHdlcnNqaSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiAgICAtPyBbbHViIC0taGVscF06ICAgICAgd3lwaXNhbmllIHRlaiBpbmZvcm1hY2ppIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEyCittc2dpZCAiZGFuZ2Vyb3VzIG9wdGlvbnM6IgorbXNnc3RyICJuaWViZXpwaWVjem5lIG9wY2plOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIgICAgLWcgW2x1YiAtLXNob3ctZ2VvbWV0cnldOiB3eXBpc2FuaWUgaW5mb3JtYWNqaSBqsWRyYSBvIGdlb21ldHJpaSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorbXNnaWQgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IHByaW50IGdlb21ldHJ5IGd1ZXNzZWQgZnJvbSB0aGUgcGFydGl0aW9uICIKKyJ0YWJsZSIKK21zZ3N0ciAiIgorIiAgICAtRyBbbHViIC0tc2hvdy1wdC1nZW9tZXRyeV06IHd5cGlzYW5pZSBnZW9tZXRyaWkgb2RnYWRuaep0ZWogeiB0YWJsLiAiCisicGFydC4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCBbbHViIC0tc2hvdy1leHRlbmRlZF06IHd5cGlzeXdhbmllIHRha79lIHBhcnR5Y2ppIHJvenN6ZXJ6b255Y2hcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsdWIgb2N6ZWtpd2FuaWUgaWNoIGRlc2tyeXB0b3LzdyBuYSB3ZWq2Y2l1IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiIKKyIgICAgLUwgIFtsdWIgLS1MaW51eF06ICAgICBwb21pbmnqY2llIG9zdHJ6Zb9l8SBiZXogem5hY3plbmlhIGRsYSBMaW51a3NhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbbHViIC0tcXVpZXRdOiAgICAgcG9taW5p6mNpZSBvc3RyemW/ZfEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgWW91IGNhbiBvdmVycmlkZSB0aGUgZGV0ZWN0ZWQgZ2VvbWV0cnkgdXNpbmc6IgorbXNnc3RyICIgICAgTW+/bmEgd3ltdXNp5iBpbm6xIGdlb21ldHJp6iBwcnp5IHW/eWNpdToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLUMjIFtsdWIgLS1jeWxpbmRlcnMgI106IHVzdGF3aWVuaWUgbGljemJ5IGN5bGluZHLzdyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1IIyBbbHViIC0taGVhZHMgI106ICAgdXN0YXdpZW5pZSBsaWN6YnkgZ7Nvd2ljIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIyCittc2dpZCAiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiCittc2dzdHIgIiAgICAtUyMgW2x1YiAtLXNlY3RvcnMgI106IHVzdGF3aWVuaWUgbGljemJ5IHNla3RvcvN3IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIzCittc2dpZCAiWW91IGNhbiBkaXNhYmxlIGFsbCBjb25zaXN0ZW5jeSBjaGVja2luZyB3aXRoOiIKK21zZ3N0ciAiTW+/bmEgd3mzsWN6eeYgc3ByYXdkemFuaWUgc3Dzam5vtmNpIHByenkgdb95Y2l1IG9wY2ppOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIiCisiICAgIC1mICBbbHViIC0tZm9yY2VdOiAgICAgd3lrb255d2FuaWUgd3N6eXN0a2ljaCwgbmF3ZXQgZ7N1cGljaCBwb2xlY2XxIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMwCittc2dpZCAiVXNhZ2U6IgorbXNnc3RyICJTa7NhZG5pYToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIlcyB1cnqxZHplbmllXHRcdCB3eXBpc2FuaWUgYWt0eXdueWNoIHBhcnR5Y2ppIG5hIHVyerFkemVuaXVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2UgbjEgbjIgLi4uIGFjdGl2YXRlIHBhcnRpdGlvbnMgbjEgLi4uLCBpbmFjdGl2YXRlIHRoZSByZXN0XG4iCittc2dzdHIgIiIKKyIlcyB1cnqxZHplbmllIG4xIG4yIC4uLiB1YWt0eXduaWVuaWUgcGFydHljamkgbjEgLi4uLCB3ebOxY3plbmllIHJlc3p0eVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIlcyAtQW4gdXJ6sWR6ZW5pZVx0IHVha3R5d25pZW5pZSBwYXJ0eWNqaSBuLCB3ebOxY3plbmllIHBvem9zdGGzeWNoXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJVV0FHQTogbmEgJyVzJyB3eWtyeXRvIHRhYmxpY+ogcGFydHljamkgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkhICIKKyJOYXJ66mR6aWUgc2ZkaXNrIG5pZSBvYnOzdWd1amUgR1BULiBOYWxlv3kgdb955iBHTlUgUGFydGVkYS5cbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICJBYnkgd3mzsWN6eeYgdGVuIHRlc3QsIG5hbGW/eSB1v3nmIGZsYWdpIC0tZm9yY2UuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0OTUKK21zZ2lkICJubyBjb21tYW5kP1xuIgorbXNnc3RyICJicmFrIHBvbGVjZW5pYT9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjYyNworIywgYy1mb3JtYXQKK21zZ2lkICJ0b3RhbDogJWxsdSBibG9ja3NcbiIKK21zZ3N0ciAicmF6ZW06ICVsbHUgYmxva/N3XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzAKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tcHJpbnQtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXJcbiIKK21zZ3N0ciAic2uzYWRuaWE6IHNmZGlzayAtLXByaW50LWlkIHVyerFkemVuaWUgbnVtZXItcGFydHljamlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MgorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgSWRcbiIKK21zZ3N0ciAic2uzYWRuaWE6IHNmZGlzayAtLWNoYW5nZS1pZCB1cnqxZHplbmllIG51bWVyLXBhcnR5Y2ppIElEXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzQKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0taWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgW0lkXVxuIgorbXNnc3RyICJza7NhZG5pYTogc2ZkaXNrIC0taWQgdXJ6sWR6ZW5pZSBudW1lci1wYXJ0eWNqaSBbSURdXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2ODEKK21zZ2lkICJjYW4gc3BlY2lmeSBvbmx5IG9uZSBkZXZpY2UgKGV4Y2VwdCB3aXRoIC1sIG9yIC1zKVxuIgorbXNnc3RyICJtb79uYSBva3Jltmxp5iB0eWxrbyBqZWRubyB1cnqxZHplbmllIChjaHliYSC/ZSB6IC1sIGx1YiAtcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwNworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyByZWFkLXdyaXRlXG4iCittc2dzdHIgIm5pZSBtb79uYSBvdHdvcnp55iAlcyBkbyBvZGN6eXR1IGkgemFwaXN1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIKK21zZ3N0ciAibmllIG1vv25hIG90d29yennmICVzIGRvIG9kY3p5dHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiJXM6IE9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3NTMgZmRpc2svc2ZkaXNrLmM6Mjc4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlczogY3lsaW5kcvN3OiAlbGQsIGezb3dpYzogJWxkLCBzZWt0b3LzdyBuYSC2Y2llv2NlOiAlbGRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IHNpemUgb2YgJXNcbiIKK21zZ3N0ciAiTmllIG1vv25hIHBvYnJh5iByb3ptaWFydSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODg1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBhY3RpdmUgYnl0ZTogMHgleCBpbnN0ZWFkIG9mIDB4ODBcbiIKK21zZ3N0ciAiYrPqZG55IGJhanQgcnV6cnVjaHU6IDB4JXggemFtaWFzdCAweDgwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkdvdG93ZVxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisiTmEgZHlza3Ugc7EgJWQgYWt0eXduZSBwYXJ0eWNqZSBns/N3bmUuIE5pZSBtYSB0byB6bmFjemVuaWEgZGxhIExJTE8sXG4iCisiYWxlIERPUy1vd3kgTUJSIHBvdHJhZmkgdXJ1Y2hvbWnmIGR5c2sgdHlsa28geiBqZWRusSBha3R5d26xIHBhcnR5Y2qxLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBoYXMgaWQgJXggYW5kIGlzIG5vdCBoaWRkZW5cbiIKK21zZ3N0ciAicGFydHljamEgJXMgbWEgSUQgJXggaSBuaWUgamVzdCB1a3J5dGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgSWQgJWx4XG4iCittc2dzdHIgIkKz6mRueSBJRCAlbHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAwNAorbXNnaWQgIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlLlxuIgorbXNnc3RyICJUZW4gZHlzayBqZXN0IGFrdHVhbG5pZSB1v3l3YW55LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhdGFsIGVycm9yOiBjYW5ub3QgZmluZCAlc1xuIgorbXNnc3RyICJCs7FkIGtyeXR5Y3pueTogbmllIG1vv25hIG9kbmFsZbzmICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIlV3YWdhOiAlcyBuaWUgamVzdCB1cnqxZHplbmllbSBibG9rb3d5bVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAiU3ByYXdkemFuaWUgY3p5IG5pa3QgbmllIHW/eXdhIHRlcmF6IHRlZ28gZHlza3UuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisiXG4iCisiVGVuIGR5c2sgamVzdCBha3R1YWxuaWUgdb95d2FueSAtIHJlcGFydHljam9ub3dhbmllIGplc3QgcmFjemVqIHqzeW0gIgorInBvbXlzs2VtLlxuIgorIlByb3N66iBvZG1vbnRvd2HmIHdzenlzdGtpZSBzeXN0ZW15IHBsaWvzdyBvcmF6IHd5s7FjennmIHBhcnR5Y2plIHd5bWlhbnlcbiIKKyJ6IHRlZ28gZHlza3UuXG4iCisiQWJ5IHBvbWluseYgdGVuIHRlc3QsIG1vv25hIHW/eeYgZmxhZ2kgLS1uby1yZXJlYWQuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICJNb79uYSB1v3nmIGZsYWdpIC0tZm9yY2UsIGFieSBwb21pbrHmIHdzenlzdGtpZSB0ZXN0eS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA0MgorbXNnaWQgIk9LXG4iCittc2dzdHIgIk9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2xkIHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiU3RhcmEgc3l0dWFjamE6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgY2hhbmdlIGl0XG4iCittc2dzdHIgIlBhcnR5Y2phICVkIG5pZSBpc3RuaWVqZSwgbmllIG1vv25hIGplaiB6bWllbmnmXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiTm93YSBzeXR1YWNqYTpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisiTmllIHBvZG9iYWqxIG1pIHNp6iB0ZSBwYXJ0eWNqZSAtIG5pZSB6bWllbmlvbm9cbiIKKyIoamW2bGkgbmEgcGV3bm8gdGFrIG1harEgd3lnbLFkYeYgLSBwcm9zeuogdb955iBvcGNqaSAtLWZvcmNlKS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiTmllIHBvZG9iYSBtaSBzaeogdG8gLSBwcmF3ZG9wb2RvYm5pZSBuYWxlv3kgb2Rwb3dpZWR6aWXmIE5pZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICJDenkgdGUgem1pYW55IHOxIHNhdHlzZmFrY2pvbnVqsWNlPyBbeW5xXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiCittc2dzdHIgIkN6eSB6YXBpc2HmIHptaWFueSBuYSBkeXNrIFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisic2ZkaXNrOiBwcmVtYXR1cmUgZW5kIG9mIGlucHV0XG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZmRpc2s6IHByemVkd2N6ZXNueSBrb25pZWMgd2VqtmNpYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiV3lqtmNpZSAtIGJleiB6bWlhblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBsZWFzZSBhbnN3ZXIgb25lIG9mIHksbixxXG4iCittc2dzdHIgIlByb3N66iBvZHBvd2llZHppZeYgamVkbnltIHogeSxuLHFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VjY2Vzc2Z1bGx5IHdyb3RlIHRoZSBuZXcgcGFydGl0aW9uIHRhYmxlXG4iCisiXG4iCittc2dzdHIgIiIKKyJaYXBpc2FubyBub3exIHRhYmxpY+ogcGFydHljamlcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzEwNQorbXNnaWQgIiIKKyJJZiB5b3UgY3JlYXRlZCBvciBjaGFuZ2VkIGEgRE9TIHBhcnRpdGlvbiwgL2Rldi9mb283LCBzYXksIHRoZW4gdXNlIGRkKDEpXG4iCisidG8gemVybyB0aGUgZmlyc3QgNTEyIGJ5dGVzOiAgZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MVxuIgorIihTZWUgZmRpc2soOCkuKVxuIgorbXNnc3RyICIiCisiSmW2bGkgdXR3b3J6b25vIGx1YiB6bWllbmlvbm8gcGFydHljauogdHlwdSBET1MsIG5wLiAvZGV2L2ZvbzcsIG5hbGW/eVxuIgorInW/eeYgZGQoMSksIGFieSB3eXplcm93YeYgcGllcndzemUgNTEyIGJhanTzdzpcbiIKKyJkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKHdp6mNlaiB3IGZkaXNrKDgpKVxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogY291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiVVdBR0E6IG5pZSB1ZGGzbyBzaeogb3R3b3J6eeYgJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBiYWQgZm9ybWF0IG9uIGxpbmUgJWQgb2YgJXNcbiIKK21zZ3N0ciAiVVdBR0E6IGKz6mRueSBmb3JtYXQgdyBsaW5paSAlZCB6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjM1MgorbXNnaWQgIiIKKyJXQVJOSU5HOiBZb3VyIC9ldGMvZnN0YWIgZG9lcyBub3QgY29udGFpbiB0aGUgZnNjayBwYXNzbm9cbiIKKyJcdGZpZWxkLiAgSSB3aWxsIGtsdWRnZSBhcm91bmQgdGhpbmdzIGZvciB5b3UsIGJ1dCB5b3VcbiIKKyJcdHNob3VsZCBmaXggeW91ciAvZXRjL2ZzdGFiIGZpbGUgYXMgc29vbiBhcyB5b3UgY2FuLlxuIgorIlxuIgorbXNnc3RyICIiCisiVVdBR0E6IHBsaWsgL2V0Yy9mc3RhYiBuaWUgemF3aWVyYSBwb2xhIGZzY2sgcGFzc25vLlxuIgorIlx0VHltIHJhemVtIHRvIG9iZWpk6iwgYWxlIHBsaWsgbmFsZb9hs29ieSBuYXByYXdp5lxuIgorIlx0amFrIG5hanN6eWJjaWVqLlxuIgorIlxuIgorCisjOiBmc2NrL2ZzY2suYzo0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogJXM6IG5vdCBmb3VuZFxuIgorbXNnc3RyICJmc2NrOiAlczogbmllIHpuYWxlemlvbm9cbiIKKworIzogZnNjay9mc2NrLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIKK21zZ3N0ciAiJXM6IHdhaXQ6IEJyYWsgcHJvY2VzdSBwb3RvbW5lZ28/IVxuIgorCisjOiBmc2NrL2ZzY2suYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZy4uLiAlcyBmb3IgZGV2aWNlICVzIGV4aXRlZCB3aXRoIHNpZ25hbCAlZC5cbiIKK21zZ3N0ciAiVXdhZ2EuLi4gJXMgZGxhIHVyerFkemVuaWEgJXMgemFrb/Fjem9uZSBzeWduYbNlbSAlZC5cbiIKKworIzogZnNjay9mc2NrLmM6NjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVzOiBzdGF0dXMgaXMgJXgsIHNob3VsZCBuZXZlciBoYXBwZW4uXG4iCittc2dzdHIgIiVzICVzOiBzdGF0dXMgdG8gJXgsIHRvIG5pZSBwb3dpbm5vIHNp6iBuaWdkeSB6ZGFyennmLlxuIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIlpha2/xY3pvbm8gJXMgKGtvZCB3eWq2Y2lhICVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzIGZvciAlc1xuIgorbXNnc3RyICIlczogQrOxZCAlZCBwb2RjemFzIHd5d2+zeXdhbmlhIGZzY2suJXMgZGxhICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjcyNAorbXNnaWQgIiIKKyJFaXRoZXIgYWxsIG9yIG5vbmUgb2YgdGhlIGZpbGVzeXN0ZW0gdHlwZXMgcGFzc2VkIHRvIC10IG11c3QgYmUgcHJlZml4ZWRcbiIKKyJ3aXRoICdubycgb3IgJyEnLlxuIgorbXNnc3RyICIiCisiQWxibyB3c3p5c3RraWUsIGFsYm8gv2FkZW4geiB0eXDzdyBwcnpla2F6YW55Y2ggb3BjamkgLXQgbXVzaSBieeZcbiIKKyJwb3ByemVkem9ueSAnbm8nIGx1YiAnIScuXG4iCisKKyM6IGZzY2svZnNjay5jOjc0MworbXNnaWQgIkNvdWxkbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgZmlsZXN5c3RlbSB0eXBlc1xuIgorbXNnc3RyICJOaWUgbW+/bmEgcHJ6eWR6aWVsaeYgcGFtaepjaSBkbGEgdHlw83cgc3lzdGVt83cgcGxpa/N3XG4iCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKyIlczogcG9taW5p6nRvIGKz6mRusSBsaW5p6iB3IC9ldGMvZnN0YWI6IG1vbnRvd2FuaWUgdHlwdSBiaW5kIHogbmllemVyb3d5bSAiCisibnVtZXJlbSBwcnplYmllZ3UgZnNja1xuIgorCisjOiBmc2NrL2ZzY2suYzo4OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIgorbXNnc3RyICIlczogcG9taW5p6nRvIG5pZWlzdG5pZWqxY2UgdXJ6sWR6ZW5pZVxuIgorCisjOiBmc2NrL2ZzY2suYzo5MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogY2Fubm90IGNoZWNrICVzOiBmc2NrLiVzIG5vdCBmb3VuZFxuIgorbXNnc3RyICJmc2NrOiBuaWUgbW+/bmEgc3ByYXdkemnmICVzOiBuaWUgem5hbGV6aW9ubyBmc2NrLiVzXG4iCisKKyM6IGZzY2svZnNjay5jOjk3NAorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIlNwcmF3ZHphbmllIHdzenlzdGtpY2ggc3lzdGVt83cgcGxpa/N3LlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0td2FpdGluZy0tIChwYXNzICVkKVxuIgorbXNnc3RyICItLW9jemVraXdhbmllLS0gKHByemViaWVnICVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICIiCisiU2uzYWRuaWE6IGZzY2sgWy1BTU5QUlRWXSBbIC1DIFsgZmQgXSBdIFstdCB0eXBmc10gW29wY2plLWZzXSBbc3lzdGVtLSIKKyJwbGlr83cgLi4uXVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzOiB6YSBkdb9vIHVyerFkemXxXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiTmllIG1vv25hIG90d29yennmICVzOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIklzIC9wcm9jIG1vdW50ZWQ/XG4iCittc2dzdHIgIkN6eSAvcHJvYyBqZXN0IHphbW9udG93YW55P1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiVHJ6ZWJhIGJ55iByb290ZW0sIGFieSB6bmFsZbzmIHBhc3VqsWNlIHN5c3RlbXkgcGxpa/N3OiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGZpbmQgbWF0Y2hpbmcgZmlsZXN5c3RlbTogJXNcbiIKK21zZ3N0ciAiTmllIHVkYbNvIHNp6iBvZG5hbGW85iBwYXN1arFjZWdvIHN5c3RlbXUgcGxpa/N3OiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGFyZ3VtZW50c1xuIgorbXNnc3RyICIlczogemJ5dCBkdb9vIGFyZ3VtZW5083dcbiIKKworIzogZnNjay9mc2NrLmM6MTI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiZnNjayB6IHBha2lldHUgJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTI4OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgZnNja19wYXRoXG4iCittc2dzdHIgIiVzOiBOaWUgbW+/bmEgcHJ6eWR6aWVsaeYgcGFtaepjaSBkbGEgZnNja19wYXRoXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJQb2xlY2VuaWUgYGdldG9wdCAtLWhlbHAnIHBvendvbGkgdXp5c2th5iB3aepjZWogaW5mb3JtYWNqaS5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAicHVzdGEgb3BjamEgZLN1Z2EgcG8gb3BjamkgLWwgbHViIC0tbG9uZyIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAibmllem5hbmEgcG93s29rYSBwbyBvcGNqaSAtcyBsdWIgLS1zaGVsbCIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiU2uzYWRuaWE6IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldHJ5XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjEKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSBbLS1dIG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICBnZXRvcHQgW29wY2plXSBbLS1dIG9wdHN0cmluZyBwYXJhbWV0cnlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbb3BjamVdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wY2plXSBbLS1dXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjMKK21zZ2lkICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICBwYXJhbWV0cnlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNAorbXNnaWQgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggc2luZ2xlIC1cbiIKK21zZ3N0ciAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBaZXp3b2xlbmllIG5hIGSzdWdpZSBvcGNqZSB6IGplZG55bSAtIG5hICIKKyJwb2N6sXRrdVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI1Cittc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRoaXMgc21hbGwgdXNhZ2UgZ3VpZGVcbiIKK21zZ3N0ciAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRlbiBrcvN0a2kgb3BpcyB1v3ljaWFcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNgorbXNnaWQgIiAgLWwsIC0tbG9uZ29wdGlvbnM9bG9uZ29wdHMgICBMb25nIG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIiCisiICAtbCwgLS1sb25nb3B0aW9ucz1vcGNqZSAgICAgIESzdWdpZSBvcGNqZSwgamFraWUgbWFqsSBieeYgcm96cG96bmF3YW5lXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjcKK21zZ2lkICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1lIHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIKK21zZ3N0ciAiICAtbiwgLS1uYW1lPXByb2dyYW0gICAgICAgICAgIE5hendhIHogamFrsSBtYWqxIGJ55iB6Z7Nhc3phbmUgYrPqZHlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOAorbXNnaWQgIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBTaG9ydCBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiIgorIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBLcvN0a2llIG9wY2plLCBqYWtpZSBtYWqxIGJ55iByb3pwb3puYXdhbmVcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOQorbXNnaWQgIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBEaXNhYmxlIGVycm9yIHJlcG9ydGluZyBieSBnZXRvcHQoMylcbiIKK21zZ3N0ciAiIgorIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBXebOxY3plbmllIGtvbXVuaWthdPN3IGKz6mTzdyB6IGdldG9wdCgzKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMwCittc2dpZCAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIE5vIG5vcm1hbCBvdXRwdXRcbiIKK21zZ3N0ciAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIEJleiBzdGFuZGFyZG93ZWdvIHd5arZjaWFcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMQorbXNnaWQgIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICBTZXQgc2hlbGwgcXVvdGluZyBjb252ZW50aW9uc1xuIgorbXNnc3RyICIiCisiICAtcywgLS1zaGVsbD1wb3ezb2thICAgICAgICAgIFVzdGF3aWVuaWUga29ud2VuY2ppIGN5dG93YW5pYSBwb3ezb2tpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzIKK21zZ2lkICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgVGVzdCBmb3IgZ2V0b3B0KDEpIHZlcnNpb25cbiIKK21zZ3N0ciAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFNwcmF3ZHplbmllIHdlcnNqaSBnZXRvcHQoMSlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMworbXNnaWQgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUgdGhlIG91dHB1dFxuIgorbXNnc3RyICIgIC11LCAtLXVucXVvdGUgICAgICAgICAgICAgICAgQmV6IGN5dG93YW5pYSB3eWq2Y2lhXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIFd5cGlzYW5pZSBpbmZvcm1hY2ppIG8gd2Vyc2ppXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozODggZ2V0b3B0L2dldG9wdC5jOjQ0NworbXNnaWQgIm1pc3Npbmcgb3B0c3RyaW5nIGFyZ3VtZW50IgorbXNnc3RyICJicmFrIHBhcmFtZXRydSBvcHRzdHJpbmciCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChyb3pzemVyem9ueSkgMS4xLjRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICJis7FkIHdld27qdHJ6bnksIHByb3N66iBza29udGFrdG93YeYgc2nqIGF1dG9yZW0uIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9vdGVkIGZyb20gTUlMT1xuIgorbXNnc3RyICJ1cnVjaG9taW9ubyB6IE1JTE9cbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIlplZ2FyIFJ1ZmZpYW4gQkNEXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICJjbG9ja3BvcnQgem1pZW5pb255IG5hIDB4JXhcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZ1bmt5IFRPWSFcbiIKK21zZ3N0ciAiZG9icmEgWkFCQVdLQSFcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhdG9taWMgJXMgZmFpbGVkIGZvciAxMDAwIGl0ZXJhdGlvbnMhIgorbXNnc3RyICIlczogYXRvbW93ZSAlcyBuaWUgcG93aW9ks28gc2nqIGRsYSAxMDAwIGl0ZXJhY2ppISIKKworIzogaHdjbG9jay9jbW9zLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICJjbW9zX3JlYWQoKTogemFwaXMgcG9kIGFkcmVzIHN0ZXJ1arFjeSAlWCBuaWUgcG93afNksyBzaeo6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICJjbW9zX3JlYWQoKTogb2Rjenl0IGRhbnljaCBzcG9kIGFkcmVzdSAlWCBuaWUgcG93afNksyBzaeo6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjMwNworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImNtb3Nfd3JpdGUoKTogemFwaXMgcG9kIGFkcmVzIHN0ZXJ1arFjeSAlWCBuaWUgcG93afNksyBzaeo6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImNtb3Nfd3JpdGUoKTogemFwaXMgZGFueWNoIHBvZCBhZHJlcyAlWCBuaWUgcG93afNksyBzaeo6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAvZGV2L3BvcnQ6ICVzIgorbXNnc3RyICJOaWUgbW+/bmEgb3R3b3J6eeYgL2Rldi9wb3J0OiAlcyIKKworIzogaHdjbG9jay9jbW9zLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkkgZmFpbGVkIHRvIGdldCBwZXJtaXNzaW9uIGJlY2F1c2UgSSBkaWRuJ3QgdHJ5LlxuIgorbXNnc3RyICJOaWUgdWRhs28gc2nqIHV6eXNrYeYgdXByYXduaWXxLCBwb25pZXdhvyB0ZWdvIG5pZSBwcvNib3dhbm8uXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyB1bmFibGUgdG8gZ2V0IEkvTyBwb3J0IGFjY2VzczogIHRoZSBpb3BsKDMpIGNhbGwgZmFpbGVkLlxuIgorbXNnc3RyICIiCisiJXMgbmllIG1vv2UgdXp5c2th5iBkb3N06nB1IGRvIHBvcnTzdyB3ZS93eTogd3l3b7NhbmllIGlvcGwoMykgbmllIHBvd2lvZLNvICIKKyJzaeouXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICJQcm9iYWJseSB5b3UgbmVlZCByb290IHByaXZpbGVnZXMuXG4iCittc2dzdHIgIlByYXdkb3BvZG9ibmllIHd5bWFnYW5lIHOxIHVwcmF3bmllbmlhIGFkbWluaXN0cmF0b3JhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiAlcyB0aW1lLlxuIgorbXNnc3RyICJQcnp5aup0bywgv2UgemVnYXIgc3Byeup0b3d5IHByemVjaG93dWplIGN6YXMgJXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJVVEMiCittc2dzdHIgIlVUQyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNQorbXNnaWQgImxvY2FsIgorbXNnc3RyICJsb2thbG55IgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIlczogVXdhZ2E6IG5pZXJvenBvem5hbmEgdHJ6ZWNpYSBsaW5pYSB3IHBsaWt1IGFkanRpbWVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIihFeHBlY3RlZDogYFVUQycgb3IgYExPQ0FMJyBvciBub3RoaW5nLilcbiIKK21zZ3N0ciAiKE9jemVraXdhbm86IGBVVEMnLCBgTE9DQUwnIGx1YiBuaWMpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBkcmlmdCBhZGp1c3RtZW50IGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJPc3RhdG5pYSBrb3Jla3RhIG5pZWRva7NhZG5vtmNpIHd5a29uYW5hICVsZCBzZWt1bmQgcG8gMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBjYWxpYnJhdGlvbiBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiT3N0YXRuaWEga2FsaWJyYWNqYSB3eWtvbmFuYSAlbGQgc2VrdW5kIHBvIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIkhhcmR3YXJlIGNsb2NrIGlzIG9uICVzIHRpbWVcbiIKK21zZ3N0ciAiWmVnYXIgc3Byeup0b3d5IHByemVjaG93dWplIGN6YXMgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAidW5rbm93biIKK21zZ3N0ciAibmllem5hbnkiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGZvciBjbG9jayB0aWNrLi4uXG4iCittc2dzdHIgIk9jemVraXdhbmllIG5hIHByemVza29rIHplZ2FyYS4uLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc3luY2hyb25pemF0aW9uIGZhaWxlZFxuIgorbXNnc3RyICIuLi5zeW5jaHJvbml6YWNqYSBuaWUgcG93aW9ks2Egc2nqXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1OAorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5nb3QgY2xvY2sgdGlja1xuIgorbXNnc3RyICIuLi53ebNhcGFubyBwcnplc2tvayB6ZWdhcmFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIkKz6mRuZSB3YXJ0b7ZjaSB3IHplZ2FyemUgc3Byeup0b3d5bTogJTRkLSUuMmQtJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKyJDemFzIHplZ2FyYSBzcHJ66nRvd2VnbzogJTRkLSUuMmQtJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWt1bmQgcG8gMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSByZWFkIGZyb20gSGFyZHdhcmUgQ2xvY2s6ICU0ZC8lLjJkLyUuMmQgJTAyZDolMDJkOiUwMmRcbiIKK21zZ3N0ciAiQ3phcyBvZGN6eXRhbnkgeiB6ZWdhcmEgc3Byeup0b3dlZ286ICU0ZC0lLjJkLSUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIlVzdGF3aWFuaWUgemVnYXJhIHNwcnrqdG93ZWdvIG5hICUuMmQ6JS4yZDolLjJkID0gJWxkIHNla3VuZCBvZCAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICJDbG9jayBub3QgY2hhbmdlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiWmVnYXIgbmllIHptaWVuaW9ueSAtIHRvIHR5bGtvIHRlc3QuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIkN6YXMgbWluaW9ueSBvZCB3em9yY293ZWdvIHRvICUuNmYgc2VrdW5kLlxuIgorIkRhbHN6ZSBvY3pla2l3YW5pZSB3IGNlbHUgb3NpsWduaepjaWEgbm93ZWdvIGN6YXN1LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIlJlamVzdHJ5IHplZ2FyYSBzcHJ66nRvd2VnbyB6YXdpZXJharEgd2FydG+2Y2kgbmllcHJhd2lks293ZSAobnAuIDUwLiBkemll8SAiCisibWllc2mxY2EpIGx1YiBzcG96YSB6YWtyZXN1LCBrdPNyeSB0ZW4gcHJvZ3JhbSBtb79lIG9ic7N1v3nmIChucC4gcm9rICIKKyIyMDk1KS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiJXMgICUuNmYgc2VrdW5kXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAiTmllIHBvZGFubyBvcGNqaSAtLWRhdGUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLWRhdGUgYXJndW1lbnQgdG9vIGxvbmdcbiIKK21zZ3N0ciAiUGFyYW1ldHIgLS1kYXRlIHpieXQgZLN1Z2lcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgdmFsdWUgb2YgdGhlIC0tZGF0ZSBvcHRpb24gaXMgbm90IGEgdmFsaWQgZGF0ZS5cbiIKKyJJbiBwYXJ0aWN1bGFyLCBpdCBjb250YWlucyBxdW90YXRpb24gbWFya3MuXG4iCittc2dzdHIgIiIKKyJXYXJ0b7bmIG9wY2ppIC0tZGF0ZSBuaWUgamVzdCBwb3ByYXdusSBkYXSxLlxuIgorIlcgc3pjemVn82xub7ZjaSB6YXdpZXJhIHpuYWtpIGN5dG93YW5pYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIklzc3VpbmcgZGF0ZSBjb21tYW5kOiAlc1xuIgorbXNnc3RyICJXeXdvs3l3YW5pZSBwb2xlY2VuaWEgZGF0ZTogJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQwCittc2dpZCAiVW5hYmxlIHRvIHJ1biAnZGF0ZScgcHJvZ3JhbSBpbiAvYmluL3NoIHNoZWxsLiBwb3BlbigpIGZhaWxlZCIKK21zZ3N0ciAiIgorIk5pZSB1ZGGzbyBzaeogdXJ1Y2hvbWnmIHByb2dyYW11ICdkYXRlJyBwb3ezb2uxIC9iaW4vc2guIHBvcGVuKCkgbmllICIKKyJwb3dpb2SzbyBzaeoiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgIm9kcG93aWVkvCB6IHBvbGVjZW5pYSBkYXRlID0gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdHMuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAgJXNcbiIKK21zZ3N0ciAiIgorIlBvbGVjZW5pZSBkYXRlIHd5d2+zYW5lIHByemV6ICVzIHp3cvNjabNvIG5pZW9jemVraXdhbnkgd3luaWsuXG4iCisiV3lrb25hbmUgcG9sZWNlbmllOlxuIgorIiAgJXNcbiIKKyJPdHJ6eW1hbmEgb2Rwb3dpZWS8OlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIlBvbGVjZW5pZSBkYXRlIHd5d2+zYW5lIHByemV6ICVzIHp3cvNjabNvIGNvtiBpbm5lZ28gbmm/IGxpY3piYSBjYbNrb3dpdGEsICIKKyJnZHppZSBvY3pla2l3YW5vIHNrb253ZXJ0b3dhbmVnbyBjemFzdS5cbiIKKyJXeWtvbmFuZSBwb2xlY2VuaWU6XG4iCisiICAlc1xuIgorIk90cnp5bWFuYSBvZHBvd2llZLw6XG4iCisiICAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICKzYfFjdWNoIGRhdGUgJXMgcvN3bnkgamVzdCAlbGQgc2VrdW5kIG9kIDE5NjkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorIlplZ2FyIHNwcnrqdG93eSBuaWUgemF3aWVyYSBwcmF3aWSzb3dlZ28gY3phc3UsIHdp6mMgbmllIG1vv25hIHogbmllZ28gIgorInVzdGF3aeYgY3phc3Ugc3lzdGVtb3dlZ28uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyNyBod2Nsb2NrL2h3Y2xvY2suYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBzZXR0aW1lb2ZkYXk6XG4iCittc2dzdHIgIld5d2+zeXdhbmllIHNldHRpbWVvZmRheTpcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI4IGh3Y2xvY2svaHdjbG9jay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorbXNnc3RyICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzAgaHdjbG9jay9od2Nsb2NrLmM6ODA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorbXNnc3RyICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMzIGh3Y2xvY2svaHdjbG9jay5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBzeXN0ZW0gY2xvY2sgYmVjYXVzZSBydW5uaW5nIGluIHRlc3QgbW9kZS5cbiIKK21zZ3N0ciAiQmV6IHVzdGF3aWFuaWEgemVnYXJhIHN5c3RlbW93ZWdvIC0gdHJ5YiB0ZXN0b3d5LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkRvIHVzdGF3aWVuaWEgemVnYXJhIHN5c3RlbW93ZWdvIHRyemViYSBieeYgc3VwZXJ1v3l0a293bmlraWVtLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDUgaHdjbG9jay9od2Nsb2NrLmM6ODIzCittc2dpZCAic2V0dGltZW9mZGF5KCkgZmFpbGVkIgorbXNnc3RyICJzZXR0aW1lb2ZkYXkoKSBuaWUgcG93aW9ks28gc2nqIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBzeXN0ZW0gdGltZTogJWxkID0gJXNcbiIKK21zZ3N0ciAiQWt0dWFsbnkgY3phcyBzeXN0ZW1vd3k6ICVsZCA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiXHRVVEM6ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSB0aGUgSGFyZHdhcmUgQ2xvY2sgcHJldmlvdXNseSBjb250YWluZWQgIgorImdhcmJhZ2UuXG4iCittc2dzdHIgIiIKKyJCZXogem1pYW55IHdzcPOzY3p5bm5pa2Ega29yZWt0eSwgcG9uaWV3Yb8gemVnYXIgc3Byeup0b3d5IHBvcHJ6ZWRuaW8gIgorInphd2llcmGzILZtaWVjaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGxhc3QgY2FsaWJyYXRpb24gdGltZSBpcyB6ZXJvLFxuIgorInNvIGhpc3RvcnkgaXMgYmFkIGFuZCBjYWxpYnJhdGlvbiBzdGFydG92ZXIgaXMgbmVjZXNzYXJ5LlxuIgorbXNnc3RyICIiCisiQmV6IHptaWFueSB3c3Dzs2N6eW5uaWthIGtvcmVrdHksIHBvbmlld2G/IGN6YXMgb3N0YXRuaWVqIGthbGlicmFjamkgamVzdCAiCisiemVyb3d5LFxuIgorIndp6mMgaGlzdG9yaWEgamVzdCBis+pkbmEgaSB0cnplYmEgcG9ub3duaWUgemFjerHmIGthbGlicmFjauouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBpdCBoYXMgYmVlbiBsZXNzIHRoYW4gYSBkYXkgc2luY2UgdGhlICIKKyJsYXN0IGNhbGlicmF0aW9uLlxuIgorbXNnc3RyICIiCisiQmV6IHptaWFueSB3c3Dzs2N6eW5uaWthIGtvcmVrdHksIHBvbmlld2G/IG5pZSBtaW6xsyBkemll8SBvZCBwb3ByemVkbmllaiAiCisia2FsaWJyYWNqaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yICIKKyJvZiAlZiBzZWNvbmRzL2RheS5cbiIKKyJBZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJ5ICVmIHNlY29uZHMvZGF5XG4iCittc2dzdHIgIiIKKyJaZWdhciB6Ym9jenmzIG8gJS4xZiBzZWt1bmQgcHJ6ZXogb3N0YXRuaWUgJWQgc2VrdW5kIG1pbW8gd3Nw87NjenlubmlrYSAiCisia29yZWt0eSAlZiBzZWt1bmQvZHppZfEuXG4iCisiWm1pYW5hIHdzcPOzY3p5bm5pa2Ega29yZWt0eSBvICVmIHNla3VuZC9kemll8VxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJDemFzIG9kIG9zdGF0bmllaiBrb3Jla3R5IHRvICVkIHNla3VuZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiIgorIld5bWFnYW5lIHdzdGF3aWVuaWUgJWQgc2VrdW5kIGkgcHJ6ZXN1bmnqY2llIGN6YXN1IHd6b3Jjb3dlZ28gJS42ZiBzZWt1bmQgIgorIndzdGVjelxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHVwZGF0aW5nIGFkanRpbWUgZmlsZSBiZWNhdXNlIG9mIHRlc3RpbmcgbW9kZS5cbiIKK21zZ3N0ciAiQmV6IHVha3R1YWxuaWFuaWEgcGxpa3UgYWRqdGltZSAtIHRyeWIgdGVzdG93eS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIlphcGlzYW5vYnkgbmFzdOpwdWqxY2UgZGFuZSBkbyAlczpcbiIKKyIlcyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ291bGQgbm90IG9wZW4gZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgaW4gaXQgKCVzKSBmb3IgIgorIndyaXRpbmciCittc2dzdHIgIiIKKyJOaWUgdWRhs28gc2nqIG90d29yennmIHBsaWt1IHogcGFyYW1ldHJhbWkga29yZWt0eSB6ZWdhcmEgKCVzKSBkbyB6YXBpc3UiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIk5pZSB1ZGGzbyBzaeogdWFrdHVhbG5p5iBwbGlrdSB6IHBhcmFtZXRyYW1pIGtvcmVrdHkgemVnYXJhICglcykiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJQYXJhbWV0cnkga29yZWt0eSB6ZWdhcmEgbmllIHpvc3Rhs3kgemFwaXNhbmUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IGFkanVzdCBpdC5cbiIKK21zZ3N0ciAiIgorIlplZ2FyIHNwcnrqdG93eSBuaWUgemF3aWVyYSBwcmF3aWSzb3dlZ28gY3phc3UsIHdp6mMgbmllIG1vv25hIGdvICIKKyJza29yeWdvd2HmLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAiIgorIkJleiB1c3Rhd2lhbmlhIHplZ2FyYSwgcG9uaWV3Yb8gY3phcyBvc3RhdG5pZWogcG9wcmF3a2kgamVzdCB6ZXJvd3ksIHdp6mMgIgorImhpc3RvcmlhIGplc3QgYrPqZG5hLiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA4OQorIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkZWQgYWRqdXN0bWVudCBpcyBsZXNzIHRoYW4gb25lIHNlY29uZCwgc28gbm90IHNldHRpbmcgY2xvY2suXG4iCittc2dzdHIgIiIKKyJXeW1hZ2FuYSBrb3Jla3RhIGplc3QgbW5pZWpzemEgbmm/IGplZG5hIHNla3VuZGEgLSBiZXogdXN0YXdpYW5pYSB6ZWdhcmEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgIlW/eXdhbnkgaW50ZXJmZWpzOiAlcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNworIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgY2xvY2sgaW50ZXJmYWNlIGZvdW5kLlxuIgorbXNnc3RyICJOaWUgem5hbGV6aW9ubyB1v3l0ZWN6bmVnbyBpbnRlcmZlanN1IHplZ2FyYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTIyMSBod2Nsb2NrL2h3Y2xvY2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICJOaWUgdWRhs28gc2nqIHVzdGF3aeYgemVnYXJhIHN5c3RlbW93ZWdvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGtlZXBzIGFuIGVwb2NoIHZhbHVlIGZvciB0aGUgSGFyZHdhcmUgQ2xvY2sgb25seSBvbiBhbiBBbHBoYSAiCisibWFjaGluZS5cbiIKKyJUaGlzIGNvcHkgb2YgaHdjbG9jayB3YXMgYnVpbHQgZm9yIGEgbWFjaGluZSBvdGhlciB0aGFuIEFscGhhXG4iCisiKGFuZCB0aHVzIGlzIHByZXN1bWFibHkgbm90IHJ1bm5pbmcgb24gYW4gQWxwaGEgbm93KS4gIE5vIGFjdGlvbiB0YWtlbi5cbiIKK21zZ3N0ciAiIgorIkqxZHJvIHByemVjaG93dWplIHdhcnRvtuYgZXBvY2ggZGxhIHplZ2FyYSBzcHJ66nRvd2VnbyB3ebOxY3puaWUgZGxhIG1hc3p5biAiCisiQWxwaGEuXG4iCisiVGEga29waWEgaHdjbG9ja2Egem9zdGGzYSB6YnVkb3dhbmEgZGxhIGlubmVqIG1hc3p5bnkgKHdp6mMgcmFjemVqIG5pZVxuIgorImR6aWGzYSB0ZXJheiBuYSBtYXN6eW5pZSBBbHBoYSkuIFphbmllY2hhbm8gZHppYbNhbmlhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBnZXQgdGhlIGVwb2NoIHZhbHVlIGZyb20gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiTmllIHVkYbNvIHNp6iB1enlza2HmIHdhcnRvtmNpIGVwb2NoIHogarFkcmEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2VybmVsIGlzIGFzc3VtaW5nIGFuIGVwb2NoIHZhbHVlIG9mICVsdVxuIgorbXNnc3RyICJKsWRybyBwcnp5am11amUgd2FydG+25iBlcG9jaCAlbHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSAnZXBvY2gnIG9wdGlvbiB0byB0ZWxsIHRvIHdoYXQgIgorInZhbHVlIHRvIHNldCBpdC5cbiIKK21zZ3N0ciAiIgorIkFieSB1c3Rhd2nmIHdhcnRvtuYgZXBvY2gsIG5hbGW/eSB1v3nmIG9wY2ppICdlcG9jaCcgdyBjZWx1IHByemVrYXphbmlhICIKKyJ3YXJ0b7ZjaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyB0aGUgZXBvY2ggdG8gJWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIkJleiB1c3Rhd2lhbmlhIHdhcnRvtmNpIGVwb2NoIG5hICVkIC0gdHJ5YiB0ZXN0b3d5LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIk5pZSB1ZGGzbyBzaeogdXN0YXdp5iB3YXJ0b7ZjaSBlcG9jaCB3IGqxZHJ6ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI5MCBtaXNjLXV0aWxzL2NhbC5jOjM0NyBtaXNjLXV0aWxzL2tpbGwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZnJvbSAlc1xuIgorbXNnc3RyICIlcyB6IHBha2lldHUgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaHdjbG9jayAtIHF1ZXJ5IGFuZCBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIChSVEMpXG4iCisiXG4iCisiVXNhZ2U6IGh3Y2xvY2sgW2Z1bmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGdW5jdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHNob3cgdGhpcyBoZWxwXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgdGhlIHJ0YyB0byB0aGUgdGltZSBnaXZlbiB3aXRoIC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBhZGp1c3QgdGhlIHJ0YyB0byBhY2NvdW50IGZvciBzeXN0ZW1hdGljIGRyaWZ0IHNpbmNlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgcHJpbnQgb3V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICBzZXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlIHRvIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHByaW50IG91dCB0aGUgdmVyc2lvbiBvZiBod2Nsb2NrIHRvIHN0ZG91dFxuIgorIlxuIgorIk9wdGlvbnM6IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICBzcGVjaWFsIC9kZXYvLi4uIGZpbGUgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdFxuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICBhY2Nlc3MgdGhlIElTQSBidXMgZGlyZWN0bHkgaW5zdGVhZCBvZiAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorIiAgICAgICAtLWRhdGUgICAgICAgICBzcGVjaWZpZXMgdGhlIHRpbWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLWVwb2NoPXllYXIgICBzcGVjaWZpZXMgdGhlIHllYXIgd2hpY2ggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZG8gbm90IGFjY2VzcyAvZXRjL2FkanRpbWUuIFJlcXVpcmVzIHRoZSB1c2Ugb2ZcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICBkbyBldmVyeXRoaW5nIGV4Y2VwdCBhY3R1YWxseSB1cGRhdGluZyB0aGUgaGFyZHdhcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBkZWJ1ZyBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJod2Nsb2NrIC0gb2Rjenl0eXdhbmllIGkgdXN0YXdpYW5pZSB6ZWdhcmEgc3Byeup0b3dlZ28gKFJUQylcbiIKKyJcbiIKKyJTa7NhZG5pYTogaHdjbG9jayBbZnVua2NqYV0gW29wY2plLi4uXVxuIgorIlxuIgorIkZ1bmtjamU6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHd5tndpZXRsZW5pZSB0ZWdvIG9waXN1XG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIG9kY3p5dCB6ZWdhcmEgc3Byeup0b3dlZ28gaSB3eXBpc2FuaWUgd3luaWt1XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHVzdGF3aWVuaWUgUlRDIG5hIGN6YXMgcG9kYW55IHByenkgdb95Y2l1IC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICB1c3Rhd2llbmllIGN6YXN1IHN5c3RlbW93ZWdvIHdnIHplZ2FyYSBzcHJ66nRvd2Vnb1xuIgorIiAgLXcgfCAtLXN5c3RvaGMgICAgICB1c3Rhd2llbmllIHplZ2FyYSBzcHJ66nRvd2VnbyB3ZyBjemFzdSBzeXN0ZW1vd2Vnb1xuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICB1c3Rhd2llbmllIGN6YXN1IHN5c3RlbW93ZWdvIHcgb3BhcmNpdSBvIGJpZb+xY7EgIgorInN0cmVm6lxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjemFzb3exXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGtvcmVrdGEgUlRDIHBvZCBrsXRlbSBis+pkdSBzeXN0ZW1hdHljem5lZ28gb2QgY3phc3VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgb3N0YXRuaWVnbyB1c3Rhd2lhbmlhIGx1YiBrb3J5Z293YW5pYSB6ZWdhcmFcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgd3lwaXNhbmllIHdhcnRvtmNpIGVwb2NoIHplZ2FyYSBzcHJ66nRvd2VnbyB3IGqxZHJ6ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICB1c3Rhd2llbmllIHdhcnRvtmNpIGVwb2NoIHplZ2FyYSBzcHJ66nRvd2VnbyB3IGqxZHJ6ZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBuYSB3YXJ0b7bmIHBvZGFusSBwcnp5IHW/eWNpdSBvcGNqaSAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHd5cGlzYW5pZSBpbmZvcm1hY2ppIG8gd2Vyc2ppIGh3Y2xvY2thIG5hIHN0YW5kYXJkb3dlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHd5arZjaWVcbiIKKyJcbiIKKyJPcGNqZTpcbiIKKyIgIC11IHwgLS11dGMgICAgICAgICAgemVnYXIgc3Byeup0b3d5IHByemVjaG93dWplIGN6YXMgdyBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgemVnYXIgc3Byeup0b3d5IHByemVjaG93dWplIGN6YXMgbG9rYWxueVxuIgorIiAgLWYgfCAtLXJ0Yz22Y2llv2thICBwbGlrIHNwZWNqYWxueSAvZGV2Ly4uLiBkbyB1v3ljaWEgemFtaWFzdCBkb215tmxuZWdvXG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGJlenBvtnJlZG5pIGRvc3TqcCBkbyBzenlueSBJU0EgemFtaWFzdCAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICB6aWdub3Jvd2FuaWUgcm9rdSBSVEMgemUgd3pnbOpkdSBuYSB3YWRsaXd5IEJJT1NcbiIKKyIgICAgICAgLS1kYXRlICAgICAgICAgb2tyZbZsZW5pZSBjemFzdSBkbyB1c3Rhd2llbmlhIHplZ2FyYSBzcHJ66nRvd2Vnb1xuIgorIiAgICAgICAtLWVwb2NoPXJvayAgICBva3JltmxlbmllIHJva3UsIG9kIGt083JlZ28gcm96cG9jenluYSBzaeogd2FydG+25lxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlcG9jaCB6ZWdhcmEgc3Byeup0b3dlZ29cbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgcG9taW5p6mNpZSB1v3ljaWEgcGxpa3UgL2V0Yy9hZGp0aW1lLiBXeW1hZ2EgcG9kYW5pYVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAtLXV0YyBsdWIgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBsaWsgb2tyZbZsZW5pZSC2Y2llv2tpIGRvIHBsaWt1IGtvcmVrdHkgKGRvbXm2bG5hIHRvXG4iCisiICAgICAgICAgICAgICAgICAgICAgIC9ldGMvYWRqdGltZSlcbiIKKyIgICAgICAgLS10ZXN0ICAgICAgICAgd3lrb25hbmllIHdzenlzdGtpZWdvIG9wcvNjeiB3s2G2Y2l3ZWdvIHVha3R1YWxuaWFuaWFcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgemVnYXJhIHNwcnrqdG93ZWdvIGN6eSBjemVnb2tvbHdpZWsgaW5uZWdvXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIHRyeWIgZGlhZ25vc3R5Y3pueVxuIgorIlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisiXG4iCittc2dzdHIgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIG9rcmW2bGVuaWUgcm9kemFqdSBBbHBoeSBuYSBwb3RyemVieSBod2Nsb2NrYSAoc3pjemVn87N5IHcgbWFuIGh3Y2xvY2siCisiKDgpKVxuIgorIlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNDMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gY29ubmVjdCB0byBhdWRpdCBzeXN0ZW1cbiIKK21zZ3N0ciAiJXM6IE5pZSBtb79uYSBwb7OxY3p55iBzaeogeiBzeXN0ZW1lbSBhdWR5dHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMgbmllIHByenlqbXVqZSBhcmd1bWVudPN3IG5pZSBi6mSxY3ljaCBvcGNqaW1pLiBQb2Rhbm8gJWQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlIHNwZWNpZmllZCBtdWx0aXBsZSBmdW5jdGlvbnMuXG4iCisiWW91IGNhbiBvbmx5IHBlcmZvcm0gb25lIGZ1bmN0aW9uIGF0IGEgdGltZS5cbiIKK21zZ3N0ciAiIgorIlBvZGFubyB3aWVsZSBmdW5rY2ppLlxuIgorIkplZG5vcmF6b3dvIG1vv25hIHd5a29uYeYgdHlsa28gamVkbrEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS11dGMgYW5kIC0tbG9jYWx0aW1lIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSBzcGVjaWZpZWQgIgorImJvdGguXG4iCittc2dzdHIgIiVzOiBPcGNqZSAtLXV0YyBpIC0tbG9jYWx0aW1lIHd5a2x1Y3pharEgc2nqIHd6YWplbW5pZS4gUG9kYW5vIG9iaWUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGp1c3QgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogT3BjamUgLS1hZGp1c3QgaSAtLW5vYWRqZmlsZSB3eWtsdWN6YWqxIHNp6iB3emFqZW1uaWUuIFBvZGFubyBvYmllLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqZmlsZSBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBPcGNqZSAtLWFkamZpbGUgaSAtLW5vYWRqZmlsZSB3eWtsdWN6YWqxIHNp6iB3emFqZW1uaWUuIFBvZGFubyBvYmllLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIiCisiJXM6IFcgcHJ6eXBhZGt1IHW/eWNpYSAtLW5vYWRqZmlsZSB0cnplYmEgcG9kYeYgLS11dGMgbHViIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiIgorIkJyYWsgemRhdG5lZ28gZG8gdb95Y2lhIGN6YXN1IGRvIHVzdGF3aWVuaWEuIE5pZSBtb79uYSB1c3Rhd2nmIHplZ2FyYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICJOaWVzdGV0eSB0eWxrbyBzdXBlcnW/eXRrb3duaWsgbW+/ZSB6bWllbmnmIHplZ2FyIHNwcnrqdG93eS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyNAorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIFN5c3RlbSBDbG9jay5cbiIKK21zZ3N0ciAiTmllc3RldHkgdHlsa28gc3VwZXJ1v3l0a293bmlrIG1vv2Ugem1pZW5p5iB6ZWdhciBzeXN0ZW1vd3kuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2sgZXBvY2ggaW4gdGhlICIKKyJrZXJuZWwuXG4iCittc2dzdHIgIiIKKyJOaWVzdGV0eSB0eWxrbyBzdXBlcnW/eXRrb3duaWsgbW+/ZSB6bWllbmnmIHdhcnRvtuYgZXBvY2ggemVnYXJhIHNwcnrqdG93ZWdvICIKKyJ3IGqxZHJ6ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgYW55IGtub3duIG1ldGhvZC5cbiIKK21zZ3N0ciAiTmllIG1vv25hIHV6eXNrYeYgZG9zdOpwdSBkbyB6ZWdhcmEgc3Byeup0b3dlZ28gv2FkbrEgem5hbrEgbWV0b2SxLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2UgdGhlIC0tZGVidWcgb3B0aW9uIHRvIHNlZSB0aGUgZGV0YWlscyBvZiBvdXIgc2VhcmNoIGZvciBhbiBhY2Nlc3MgIgorIm1ldGhvZC5cbiIKK21zZ3N0ciAiIgorIlByb3N66iB1v3nmIG9wY2ppIC0tZGVidWcsIGFieSB6b2JhY3p55iBzemN6ZWfzs3kgcG9zenVraXdhbmlhIG1ldG9keSAiCisiZG9zdOpwdS5cbiIKKworIzogaHdjbG9jay9rZC5jOjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tIEtER0hXQ0xLIHRvIGNoYW5nZVxuIgorbXNnc3RyICJPY3pla2l3YW5pZSB3IHDqdGxpIG5hIHptaWFu6iBjemFzdSB6IEtER0hXQ0xLXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NworbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQiCittc2dzdHIgIm5pZSBwb3dp82SzIHNp6iBpb2N0bCBLREdIV0NMSyBkbyBvZGN6eXR1IGN6YXN1IgorCisjOiBod2Nsb2NrL2tkLmM6NzUKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIGluIGxvb3AiCittc2dzdHIgIm5pZSBwb3dp82SzIHNp6iBpb2N0bCBLREdIV0NMSyBkbyBvZGN6eXR1IGN6YXN1IHcgcOp0bGkiCisKKyM6IGh3Y2xvY2sva2QuYzo4MiBod2Nsb2NrL3J0Yy5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iCittc2dzdHIgIlByemVrcm9jem9ubyBsaW1pdCBjemFzdSBvY3pla2l3YW5pYSBuYSB6bWlhbuogY3phc3UuXG4iCisKKyM6IGh3Y2xvY2sva2QuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSBmYWlsZWQgdG8gcmVhZCB0aW1lIGZyb20gJXMiCittc2dzdHIgIm5pZSBwb3dp82SzIHNp6iBpb2N0bCgpIGRvIG9kY3p5dHUgY3phc3UgeiAlcyIKKworIzogaHdjbG9jay9rZC5jOjE0MAorbXNnaWQgImlvY3RsIEtEU0hXQ0xLIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwgS0RTSFdDTEsgbmllIHBvd2nzZLMgc2nqIgorCisjOiBod2Nsb2NrL2tkLmM6MTc2Cittc2dpZCAiQ2FuJ3Qgb3BlbiAvZGV2L3R0eTEgb3IgL2Rldi92Yy8xIgorbXNnc3RyICJOaWUgbW+/bmEgb3R3b3J6eeYgL2Rldi90dHkxIGFuaSAvZGV2L3ZjLzEiCisKKyM6IGh3Y2xvY2sva2QuYzoxODAKK21zZ2lkICJLREdIV0NMSyBpb2N0bCBmYWlsZWQiCittc2dzdHIgImlvY3RsIEtER0hXQ0xLIG5pZSBwb3dp82SzIHNp6iIKKworIzogaHdjbG9jay9ydGMuYzoxNDcgaHdjbG9jay9ydGMuYzoyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbigpIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAibmllIHBvd2lvZLNvIHNp6iBvcGVuKCkgZGxhICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHJlYWQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJuaWUgcG93afNksyBzaeogaW9jdGwoKSBuYSAlcyBkbyBvZGN6eXR1IGN6YXN1LlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiT2N6ZWtpd2FuaWUgdyBw6nRsaSBuYSB6bWlhbuogY3phc3UgeiAlc1xuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIKK21zZ3N0ciAiJXMgbmllIG1hIGZ1bmtjamkgcHJ6ZXJ3YfEuICIKKworIzogaHdjbG9jay9ydGMuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJuaWUgcG93aW9ks28gc2nqIHJlYWQoKSBuYSAlcyB3IGNlbHUgb2N6ZWtpd2FuaWEgbmEgcHJ6ZXNrb2sgemVnYXJhIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAibmllIHBvd2nzZLMgc2nqIHNlbGVjdCgpIG5hICVzIHcgY2VsdSBvY3pla2l3YW5pYSBuYSBwcnplc2tvayB6ZWdhcmEiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgdGltZWQgb3V0XG4iCittc2dzdHIgIiIKKyJzZWxlY3QoKSBuYSAlcyB3IGNlbHUgb2N6ZWtpd2FuaWEgbmEgcHJ6ZXNrb2sgemVnYXJhIHByemVrcm9jenmzIGxpbWl0ICIKKyJjemFzdVxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAibmllIHBvd2nzZLMgc2nqIGlvY3RsKCkgbmEgJXMgdyBjZWx1IHd5s7FjemVuaWEgcHJ6ZXJ3YfEgdWFrdHVhbG5pZfEiCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvbiB1cGRhdGUgaW50ZXJydXB0cyBmYWlsZWQgdW5leHBlY3RlZGx5IgorbXNnc3RyICIiCisibmllb2N6ZWtpd2FuaWUgbmllIHBvd2nzZLMgc2nqIGlvY3RsKCkgbmEgJXMgdyBjZWx1IHezsWN6ZW5pYSBwcnplcndh8WEgIgorInVha3R1YWxuaWXxIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIm5pZSBwb3dp82SzIHNp6iBpb2N0bCgpIG5hICVzIHcgY2VsdSB1c3Rhd2llbmlhIGN6YXN1XG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiaW9jdGwoJXMpIHBvd2nzZLMgc2nqLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcGVuIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiT3R3YXJjaWUgJXMgbmllIHBvd2lvZLNvIHNp6iIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisiQWJ5IHptaWVuaeYgd2FydG+25iBlcG9jaCB3IGqxZHJ6ZSwgdHJ6ZWJhIGRvc3Rh5iBzaeogZG8gbGludWtzb3dlZ28gIgorInN0ZXJvd25pa2EgdXJ6sWR6ZW5pYSAncnRjJyBwb3ByemV6IHBsaWsgdXJ6sWR6ZW5pYSBzcGVjamFsbmVnbyAlcy4gVGVuIHBsaWsgIgorIm5pZSBpc3RuaWVqZSB3IHR5bSBzeXN0ZW1pZS5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0MTUgaHdjbG9jay9ydGMuYzo0NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIk5pZSBtb79uYSBvdHdvcnp55iAlcyIKKworIzogaHdjbG9jay9ydGMuYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1JFQUQpIHRvICVzIGZhaWxlZCIKK21zZ3N0ciAibmllIHBvd2nzZLMgc2nqIGlvY3RsKFJUQ19FUE9DSF9SRUFEKSBuYSAlcyIKKworIzogaHdjbG9jay9ydGMuYzo0MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2UgaGF2ZSByZWFkIGVwb2NoICVsZCBmcm9tICVzIHdpdGggUlRDX0VQT0NIX1JFQUQgaW9jdGwuXG4iCittc2dzdHIgIm9kY3p5dGFubyB3YXJ0b7bmIGVwb2NoICVsZCB6ICVzIHByenkgdb95Y2l1IGlvY3RsLWEgUlRDX0VQT0NIX1JFQUQuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlcG9jaCB2YWx1ZSBtYXkgbm90IGJlIGxlc3MgdGhhbiAxOTAwLiAgWW91IHJlcXVlc3RlZCAlbGRcbiIKK21zZ3N0ciAiV2FydG+25iBlcG9jaCBuaWUgbW+/ZSBieeYgbW5pZWpzemEgbmm/IDE5MDAuIK+xZGFubyAlbGRcbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0dGluZyBlcG9jaCB0byAlbGQgd2l0aCBSVENfRVBPQ0hfU0VUIGlvY3RsIHRvICVzLlxuIgorbXNnc3RyICIiCisidXN0YXdpYW5pZSB3YXJ0b7ZjaSBlcG9jaCBuYSAlbGQgcHJ6eSB1v3ljaXUgaW9jdGwtYSBSVENfRVBPQ0hfU0VUIG5hICVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyBkb2VzIG5vdCBoYXZlIHRoZSBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorbXNnc3RyICJTdGVyb3duaWsgdXJ6sWR6ZW5pYSB3IGqxZHJ6ZSBkbGEgJXMgbmllIG1hIGlvY3RsLWEgUlRDX0VQT0NIX1NFVC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJuaWUgcG93afNksyBzaeogaW9jdGwoUlRDX0VQT0NIX1NFVCkgbmEgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZXhlYyAlczogJW0iCittc2dzdHIgIiVzOiBuaWUgbW+/bmEgd3l3b7Nh5iAlczogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM4MworbXNnaWQgImNhbid0IG1hbGxvYyBpbml0c3RyaW5nIgorbXNnc3RyICJuaWUgbW+/bmEgd3lrb25h5iBtYWxsb2MgZGxhILNh8WN1Y2hhIGluaWNqdWqxY2VnbyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAiYrPqZG5hIHdhcnRvtuYgbGltaXR1IGN6YXN1OiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgImKz6mRuYSBzenlia2+25jogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNworbXNnaWQgInRvbyBtYW55IGFsdGVybmF0ZSBzcGVlZHMiCittc2dzdHIgInpieXQgZHW/byB6YW1pZW5ueWNoIHN6eWJrb7ZjaSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSBuaWUgcG93aW9ks28gc2nqOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIi9kZXYvJXM6IHRvIG5pZSBqZXN0IHVyerFkemVuaWUgem5ha293ZSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IGNhbm5vdCBvcGVuIGFzIHN0YW5kYXJkIGlucHV0OiAlbSIKK21zZ3N0ciAiL2Rldi8lczogbmllIG1vv25hIG90d29yennmIGpha28gc3RhbmRhcmRvd2Ugd2VqtmNpZTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiCittc2dzdHIgIiVzOiBuaWUgamVzdCBvdHdhcnRlIGRvIG9kY3p5dHUgaSB6YXBpc3UiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZHVwIHByb2JsZW06ICVtIgorbXNnc3RyICIlczogcHJvYmxlbSB6IGR1cDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICJ1v3l0a293bmlrIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlcnMiCittc2dzdHIgInW/eXRrb3duaWvzdyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTAzMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZDogJW0iCittc2dzdHIgIiVzOiByZWFkOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW5wdXQgb3ZlcnJ1biIKK21zZ3N0ciAiJXM6IHByemVwZbNuaWVuaWUgd2VqtmNpYSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstOGhpTG1Vd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IICIKKyJsb2dpbl9ob3N0XSBiYXVkX3JhdGUsLi4uIGxpbmUgW3Rlcm10eXBlXVxuIgorIm9yXHRbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggbG9naW5faG9zdF0gIgorImxpbmUgYmF1ZF9yYXRlLC4uLiBbdGVybXR5cGVdXG4iCittc2dzdHIgIiIKKyJTa7NhZG5pYTogJXMgWy04aGlMbVV3XSBbLWwgcHJvZ3JhbV9sb2dpbl0gWy10IGxpbWl0X2N6YXN1XSBbLUkgIgorIrNh8WN1Y2hfaW5pY2p1arFjeV0gWy1IIGhvc3RdIGxpY3piYV9ib2TzdywuLi4gW3R5cF90ZXJtaW5hbGFdXG4iCisibHViXHRbLWhpTG13XSBbLWwgcHJvZ3JhbV9sb2dpbl0gWy10IGxpbWl0X2N6YXN1XSBbLUkgs2HxY3VjaF9pbmljanVqsWN5XSBbLSIKKyJIIGhvc3RdIGxpbmlhIGxpY3piYV9ib2TzdywuLi4gW3R5cF90ZXJtaW5hbGFdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImxvZ2luOiBtYbNvIHBhbWnqY2ksIGxvZ293YW5pZSBtb79lIHNp6iBuaWUgdWRh5lxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAibmllIG1vv25hIHd5a29uYeYgbWFsbG9jIGRsYSB0dHljbGFzcyIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTMKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCittc2dzdHIgIm5pZSBtb79uYSB3eWtvbmHmIG1hbGxvYyBkbGEgZ3JwbGlzdCIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiTG9nb3dhbmllIG5hICVzIHogJXMgZG9tebZsbmllIHphYnJvbmlvbmUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICJMb2dvd2FuaWUgbmEgJXMgeiAlcyB6YWJyb25pb25lLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTMzIGxvZ2luLXV0aWxzL2Noc2guYzoxMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHlvdSAodXNlciAlZCkgZG9uJ3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiBUeSAodb95dGtvd25payAlZCkgbmllIGlzdG5pZWplc3ouXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDAgbG9naW4tdXRpbHMvY2hzaC5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiB1v3l0a293bmlrIFwiJXNcIiBuaWUgaXN0bmllamUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiIKKyIlczogdHltIG5hcnrqZHppZW0gbW+/bmEgem1pZW5p5iB0eWxrbyB3cGlzeSBsb2thbG5lOyBwcm9zeuogdb955iB5cCVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU2IGxvZ2luLXV0aWxzL2Noc2guYzoxNDIKK21zZ2lkICJVbmtub3duIHVzZXIgY29udGV4dCIKK21zZ3N0ciAiTmllem5hbnkga29udGVrc3Qgdb95dGtvd25pa2EiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgZmluZ2VyIGluZm8gb2YgJXNcbiIKK21zZ3N0ciAiIgorIiVzOiAlcyBuaWUgamVzdCBhdXRvcnl6b3dhbnkgZG8gem1pYW55IGluZm9ybWFjamkgZmluZ2VyIHW/eXRrb3duaWthICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiVzOiBOaWUgbW+/bmEgdXN0YXdp5iBkb215tmxuZWdvIGtvbnRla3N0dSBkbGEgL2V0Yy9wYXNzd2QiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZmluZ2VyIGluZm9ybWF0aW9uIGZvciAlcy5cbiIKK21zZ3N0ciAiWm1pYW5hIGluZm9ybWFjamkgZmluZ2VyIGRsYSAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBQQU0gZmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCittc2dzdHIgIiVzOiBuaWVwb3dvZHplbmllIFBBTSwgcHJ6ZXJ3YW5vOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjEyIGxvZ2luLXV0aWxzL2Noc2guYzoyMTEgbG9naW4tdXRpbHMvbG9naW4uYzo4MjcKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjc5IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDAgbW91bnQvbG9tb3VudC5jOjc0MgorIzogbW91bnQvbG9tb3VudC5jOjc0NQorbXNnaWQgIlBhc3N3b3JkOiAiCittc2dzdHIgIkhhc7NvOiAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTUgbG9naW4tdXRpbHMvY2hzaC5jOjIxNAorbXNnaWQgIkluY29ycmVjdCBwYXNzd29yZC4iCittc2dzdHIgIkhhc7NvIG5pZXByYXdpZLNvd2UuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiSW5mb3JtYWNqZSBmaW5nZXIgbmllIHpvc3Rhs3kgem1pZW5pb25lLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIgorbXNnc3RyICJTa7NhZG5pYTogJXMgWyAtZiBwZbNuYS1uYXp3YSBdIFsgLW8gcG9r82ogXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlsgLXAgb2ZmaWNlLXBob25lIF1cbiIKKyJcdFsgLWggaG9tZS1waG9uZSBdICIKK21zZ3N0ciAiIgorIlsgLXAgdGVsZWZvbi1iaXVyb3d5IF1cbiIKKyJcdFsgLWggdGVsZWZvbi1kb21vd3kgXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICJCaXVybyIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OQorbXNnaWQgIk9mZmljZSBQaG9uZSIKK21zZ3N0ciAiVGVsLiBiaXVyb3d5IgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzgwCittc2dpZCAiSG9tZSBQaG9uZSIKK21zZ3N0ciAiVGVsLiBkb21vd3kiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlByemVyd2Fuby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAicG9sZSB6Ynl0IGSzdWdpZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0MgorIywgYy1mb3JtYXQKK21zZ2lkICInJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICInJWMnIG5pZSBqZXN0IGRvendvbG9ueS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICJabmFraSBzdGVydWqxY2UgbmllIHOxIGRvendvbG9uZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxMgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiSW5mb3JtYWNqZSBmaW5nZXIgKk5JRSogem9zdGGzeSB6bWllbmlvbmUuIFByb3N66iBzcHLzYm93YeYgcPO8bmllai5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiSW5mb3JtYWNqZSBmaW5nZXIgem1pZW5pb25lLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBuaWUgamVzdCBhdXRvcnl6b3dhbnkgZG8gem1pYW55IHBvd7Nva2kgJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogQmllv7FjeSBVSUQgbmllIHpnYWR6YSBzaeogeiBVSUQtZW0gdb95dGtvd25pa2EsIGt083JlZ28gZG90eWN6eSB6bWlhbmE7ICIKKyJ6bWlhbmEgemFicm9uaW9uYVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBZb3VyIHNoZWxsIGlzIG5vdCBpbiAvZXRjL3NoZWxscywgc2hlbGwgY2hhbmdlIGRlbmllZFxuIgorbXNnc3RyICIlczogUG93s29rYSBuaWUgamVzdCB3IC9ldGMvc2hlbGxzLCB6bWlhbmEgemFicm9uaW9uYVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiWm1pYW5hIHBvd7Nva2kgZGxhICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJOb3dhIHBvd7Nva2EiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIlBvd7Nva2EgbmllIHpvc3Rhs2Egem1pZW5pb25hLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIlBvd7Nva2EgKk5JRSogem9zdGGzYSB6bWllbmlvbmEuIFByb3N66iBzcHLzYm93YeYgcPO8bmllai5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBjaGFuZ2VkLlxuIgorbXNnc3RyICJQb3ezb2thIHptaWVuaW9uYS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1c2VybmFtZSBdXG4iCittc2dzdHIgIiIKKyJTa7NhZG5pYTogJXMgWyAtcyBwb3ezb2thIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsgdb95dGtvd25payBdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNoZWxsIG11c3QgYmUgYSBmdWxsIHBhdGggbmFtZS5cbiIKK21zZ3N0ciAiJXM6IHBvd7Nva2EgbXVzaSBieeYgcG9kYW5hIHBls26xILZjaWW/a7EuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBuaWUgaXN0bmllamUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgZXhlY3V0YWJsZS5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBuaWUgamVzdCB3eWtvbnl3YWxueS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6ICclYycgbmllIGplc3QgZG96d29sb255LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogWm5ha2kgc3RlcnVqsWNlIG5pZSBzsSBkb3p3b2xvbmUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzUgbG9naW4tdXRpbHMvY2hzaC5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiVXdhZ2E6IFwiJXNcIiBuaWUgd3lzdOpwdWplIHcgL2V0Yy9zaGVsbHMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICIlczogXCIlc1wiIG5pZSB3eXN06nB1amUgdyAvZXRjL3NoZWxscy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IE9wY2phIC1sIHBva2G/ZSBsaXN06i5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIlBvbGVjZW5pZSAlcyAtbCBwb2thv2UgbGlzdOouXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICJCcmFrIHpuYW55Y2ggcG93s29rLlxuIgorCisjOiBsb2dpbi11dGlscy9pc2xvY2FsLmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIG9wZW4gJXMgZm9yIHJlYWRpbmcsIGV4aXRpbmcuIgorbXNnc3RyICJOaWUgdWRhs28gc2nqIG90d29yennmICVzIGRvIG9kY3p5dHUsIHpha2/xY3plbmllLiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICJTa7NhZG5pYTogbGFzdCBbLSNdIFstZiBwbGlrXSBbLXQgdHR5XSBbLWggaG9zdF0gW3W/eXRrb3duaWsgLi4uXVxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzAyCittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIiAgbmFkYWwgemFsb2dvd2FueSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wIHphY3p5bmEgc2nqICVzIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzgwIGxvZ2luLXV0aWxzL2xhc3QuYzozOTggbG9naW4tdXRpbHMvbGFzdC5jOjQ0OQorbXNnaWQgImxhc3Q6IG1hbGxvYyBmYWlsdXJlLlxuIgorbXNnc3RyICJsYXN0OiBtYWxsb2MgbmllIHBvd2lvZLNvIHNp6i5cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQyNQorbXNnaWQgImxhc3Q6IGdldGhvc3RuYW1lIgorbXNnc3RyICJsYXN0IGdldGhvc3RuYW1lIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisicHJ6ZXJ3YW5vICUxMC4xMHMgJTUuNXMgXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiBjYW4ndCByZW9wZW4gdHR5OiAlcyIKK21zZ3N0ciAiQqOhRCBLUllUWUNaTlk6IG5pZSBtb79uYSBwb25vd25pZSBvdHdvcnp55iB0dHk6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogJXMgaXMgbm90IGEgdGVybWluYWwiCittc2dzdHIgIkKjoUQgS1JZVFlDWk5ZOiAlcyBuaWUgamVzdCB0ZXJtaW5hbGVtIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIzOAorbXNnaWQgIkZBVEFMOiBiYWQgdHR5IgorbXNnc3RyICJCo6FEIEtSWVRZQ1pOWTogYrPqZG55IHR0eSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgImxvZ2luOiAtaCBqZXN0IHR5bGtvIGRsYSBzdXBlcnW/eXRrb3duaWthLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ4OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9naW4gWy1mcF0gW3VzZXJuYW1lXVxuIgorbXNnc3RyICJTa7NhZG5pYTogbG9naW4gWy1mcF0gW3W/eXRrb3duaWtdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiTmllIHVkYbNvIHNp6iB6YWluaWNqb3dh5iBQQU06ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgImxvZ2luOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIkKjykRORSBMT0dPV0FOSUUgJWQuIFogJXMgTkEgS09OVE8gJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTG9naW4gaW5jb3JyZWN0XG4iCisiXG4iCittc2dzdHIgIiIKKyJOaWVwb3ByYXduZSBsb2dvd2FuaWVcbiIKKyJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIlpCWVQgRFWvTyBQUtNCIExPR09XQU5JQSAoJWQpIFogJXMgTkEgS09OVE8gJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIk5JRVVEQU5BIFNFU0pBIExPR09XQU5JQSBaICVzIE5BIEtPTlRPICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICIiCisiXG4iCisiTmllcG9wcmF3bmUgbG9nb3dhbmllXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkwIGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk3IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIgorbXNnc3RyICIiCisiXG4iCisiUHJvYmxlbSB6IHVzdGFub3dpZW5pZW0gc2VzamksIHByemVyd2Fuby5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiUFVTVEEgbmF6d2Egdb95dGtvd25pa2EgdyAlczolZC4gUHJ6ZXJ3YW5vLiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB1c2VyIG5hbWUgXCIlc1wiIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIk5pZXBvcHJhd25hIG5hendhIHW/eXRrb3duaWthIFwiJXNcIiB3ICVzOiVkLiBQcnplcndhbm8uIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJsb2dpbjogYnJhayBwYW1p6mNpXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzYxCittc2dpZCAiSWxsZWdhbCB1c2VybmFtZSIKK21zZ3N0ciAiTmllZG96d29sb25hIG5hendhIHW/eXRrb3duaWthIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb2dpbiByZWZ1c2VkIG9uIHRoaXMgdGVybWluYWwuXG4iCittc2dzdHIgIkxvZ293YW5pZSBuYSBrb250byAlcyB6IHRlZ28gdGVybWluYWxhIG5pZSBqZXN0IGRvendvbG9uZS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiTE9HT1dBTklFIE5BIEtPTlRPICVzIFpBQlJPTklPTkUgWiAlcyBOQSBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgT04gVFRZICVzIgorbXNnc3RyICJMT0dPV0FOSUUgJXMgWkFCUk9OSU9ORSBOQSBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICJOaWVwb3ByYXduZSBsb2dvd2FuaWVcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRJQUxVUCBBVCAlcyBCWSAlcyIKK21zZ3N0ciAiV0RaV09OSUVOSUUgTkEgJXMgUFJaRVogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5OQorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCittc2dzdHIgIkxPR09XQU5JRSBOQSBST09UQSBOQSAlcyBaICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyIKK21zZ3N0ciAiTE9HT1dBTklFIE5BIFJPT1RBIE5BICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAiTE9HT1dBTklFIE5BICVzIE5BIEtPTlRPICVzIFogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwOAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyIKK21zZ3N0ciAiTE9HT1dBTklFIE5BICVzIE5BIEtPTlRPICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbmV3IG1haWwuXG4iCittc2dzdHIgIkplc3Qgbm93YSBwb2N6dGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEzMQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBtYWlsLlxuIgorbXNnc3RyICJKZXN0IHBvY3p0YS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjogbmllcG93b2R6ZW5pZSBmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRJT0NTQ1RUWSBmYWlsZWQ6ICVtIgorbXNnc3RyICJUSU9DU0NUVFkgbmllIHBvd2lvZLNvIHNp6jogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgbmllIHBvd2lvZLNvIHNp6iIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGRpcmVjdG9yeSAlcyFcbiIKK21zZ3N0ciAiQnJhayBrYXRhbG9ndSAlcyFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2dpbmcgaW4gd2l0aCBob21lID0gXCIvXCIuXG4iCittc2dzdHIgIkxvZ293YW5pZSB6IGthdGFsb2dpZW0gZG9tb3d5bSA9IFwiL1wiLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICJsb2dpbjogYnJhayBwYW1p6mNpIGRsYSBza3J5cHR1IHBvd7Nva2kuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogY291bGRuJ3QgZXhlYyBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorbXNnc3RyICJsb2dpbjogbmllIHVkYbNvIHNp6iB1cnVjaG9taeYgc2tyeXB0dSBwb3ezb2tpOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBicmFrIHBvd7Nva2k6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyIlcyBsb2dpbjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJuYXp3YSB1v3l0a293bmlrYSB6Ynl0IGSzdWdhLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICJOQVpXQSB6Ynl0IGSzdWdhIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoICctJy5cbiIKK21zZ3N0ciAibmF6d3kgdb95dGtvd25pa/N3IG5pZSBtb2exIHNp6iB6YWN6eW5h5iBvZCAnLScuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBiYXJlIGxpbmVmZWVkcy5cbiIKK21zZ3N0ciAiemJ5dCBkdb9vIHB1c3R5Y2ggbGluaWkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIk5BRE1JQVJPV0Uga2/xY2UgbGluaWkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJQcnpla3JvY3pvbnkgbGltaXQgY3phc3UgbG9nb3dhbmlhIChzZWt1bmQ6ICVkKVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBsb2dpbjogJS4qcyAiCittc2dzdHIgIk9zdGF0bmllIGxvZ293YW5pZTogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAieiAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvbiAlLipzXG4iCittc2dzdHIgIm5hICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIkKjykRORSBMT0dPV0FOSUUgWiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAiQqPKRE5FIExPR09XQU5JRSBOQSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBGUk9NICVzLCAlcyIKK21zZ3N0ciAiJWQgQqPKRE5ZQ0ggTE9HT1dB0SBaICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIE9OICVzLCAlcyIKK21zZ3N0ciAiJWQgQqPKRE5ZQ0ggTE9HT1dB0SBOQSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyB5XG4iCittc2dzdHIgImplc3Qgd7OxY3pvbmUgKHkpXG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBuXG4iCittc2dzdHIgImplc3Qgd3mzseZ6b25lIChuKVxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBtZXNnIFt5IHwgbl1cbiIKK21zZ3N0ciAiU2uzYWRuaWE6IG1lc2cgW3kgfCBuXVxuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo5OQorbXNnaWQgIm5ld2dycDogV2hvIGFyZSB5b3U/IgorbXNnc3RyICJuZXdncnA6IGtpbSBqZXN0ZbY/IgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMDcgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTIxCittc2dpZCAibmV3Z3JwOiBzZXRnaWQiCittc2dzdHIgIm5ld2dycDogc2V0Z2lkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMTQgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE2Cittc2dpZCAibmV3Z3JwOiBObyBzdWNoIGdyb3VwLiIKK21zZ3N0ciAibmV3Z3JwOiBuaWUgbWEgdGFraWVqIGdydXB5LiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiBicmFrIHVwcmF3bmll8SIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTMyCittc2dpZCAibmV3Z3JwOiBzZXR1aWQiCittc2dzdHIgIm5ld2dycDogc2V0dWlkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzgKK21zZ2lkICJObyBzaGVsbCIKK21zZ3N0ciAiQnJhayBwb3ezb2tpIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKK21zZ3N0ciAiU2uzYWRuaWE6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnV0XVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjEzNAorbXNnaWQgIlNodXRkb3duIHByb2Nlc3MgYWJvcnRlZCIKK21zZ3N0ciAiUHJvY2VzIHd5s7FjemFuaWEgcHJ6ZXJ3YW55IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiVzOiBUeWxrbyByb290IG1vv2Ugd3mzsWN6eeYgc3lzdGVtLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGF0IG11c3QgYmUgdG9tb3Jyb3csIGNhbid0IHlvdSB3YWl0IHRpbGwgdGhlbj9cbiIKK21zZ3N0ciAiVG8gbXVzaSBieeYganV0cm8sIG5pZSB6YWN6ZWth5iBkbyB0ZWdvIGN6YXN1P1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMxMAorbXNnaWQgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCittc2dzdHIgIncgY2VsdSBrb25zZXJ3YWNqaSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMzkKK21zZ2lkICJUaGUgc3lzdGVtIGlzIGJlaW5nIHNodXQgZG93biB3aXRoaW4gNSBtaW51dGVzIgorbXNnc3RyICJTeXN0ZW0gd3mzsWN6eSBzaeogdyBjabFndSA1IG1pbnV0IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM0MworbXNnaWQgIkxvZ2luIGlzIHRoZXJlZm9yZSBwcm9oaWJpdGVkLiIKK21zZ3N0ciAiTG9nb3dhbmllIG5pZSBqZXN0IHdp6mMgZG96d29sb25lLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVib290ZWQgYnkgJXM6ICVzIgorbXNnc3RyICJ6cmVzdGFydG93YW55IHByemV6IHW/eXRrb3duaWthICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiemF0cnp5bWFueSBwcnpleiB1v3l0a293bmlrYSAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDMyCittc2dpZCAiIgorIlxuIgorIldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iCittc2dzdHIgIiIKKyJcbiIKKyJDemVtdSBuYWRhbCC/eWrqIHBvIHJlc3RhcmNpZT8iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDM0Cittc2dpZCAiIgorIlxuIgorIk5vdyB5b3UgY2FuIHR1cm4gb2ZmIHRoZSBwb3dlci4uLiIKK21zZ3N0ciAiIgorIlxuIgorIlRlcmF6IG1vv25hIHd5s7FjennmIHphc2lsYW5pZS4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBrZXJuZWwgcG93ZXItb2ZmIGZhY2lsaXR5Li4uXG4iCittc2dzdHIgIld5d2+zeXdhbmllIGZ1bmtjamkgd3mzsWN6ZW5pYSB6YXNpbGFuaWEgdyBqsWRyemUuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcG93ZXJpbmcgb2ZmXHQlc1xuIgorbXNnc3RyICJCs7FkIHd5s7FjemFuaWEgemFzaWxhbmlhXHQlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICJFeGVjdXRpbmcgdGhlIHByb2dyYW0gXCIlc1wiIC4uLlxuIgorbXNnc3RyICJVcnVjaGFtaWFuaWUgcHJvZ3JhbXUgXCIlc1wiLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGV4ZWN1dGluZ1x0JXNcbiIKK21zZ3N0ciAiQrOxZCB1cnVjaGFtaWFuaWFcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiCittc2dzdHIgIlBJTE5FOiB6Ymlvcm93eSBrb211bmlrYXQgb2Qgdb95dGtvd25pa2EgJXM6IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBob3VycyAlZCBtaW51dGVzIgorbXNnc3RyICJTeXN0ZW0gd3mzsWN6eSBzaeogemEgJWQgZ29kemluIGkgJWQgbWludXQiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICJTeXN0ZW0gd3mzsWN6eSBzaeogemEgZ29kemlu6iBpICVkIG1pbnV0IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBtaW51dGVzXG4iCittc2dzdHIgIlN5c3RlbSB3ebOxY3p5IHNp6iB6YSAlZCBtaW51dFxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwNgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIG1pbnV0ZVxuIgorbXNnc3RyICJTeXN0ZW0gd3mzsWN6eSBzaeogemEgbWludXTqXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIgorbXNnc3RyICJTeXN0ZW0gd3mzsWN6eSBzaeogWkFSQVohXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Li4uICVzIC4uLlxuIgorbXNnc3RyICJcdC4uLiAlcyAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzAKK21zZ2lkICJDYW5ub3QgZm9yayBmb3Igc3dhcG9mZi4gU2hydWchIgorbXNnc3RyICJOaWUgbW+/bmEgd3lrb25h5iBmb3JrIGRsYSBzd2Fwb2ZmLiBFaGguLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTc4Cittc2dpZCAiQ2Fubm90IGV4ZWMgc3dhcG9mZiwgaG9waW5nIHVtb3VudCB3aWxsIGRvIHRoZSB0cmljay4iCittc2dzdHIgIk5pZSBtb79uYSB3eWtvbmHmIHN3YXBvZmYsIGJ55iBtb79lIHVtb3VudCB0byB6cm9iaS4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiTmllIG1vv25hIHd5a29uYeYgZm9yayBkbGEgdW1vdW50LCBwcvNiYSB6cm9iaWVuaWEgdGVnbyBy6mN6bmllLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGV4ZWMgJXMsIHRyeWluZyB1bW91bnQuXG4iCittc2dzdHIgIk5pZSBtb79uYSB1cnVjaG9taeYgJXMsIHBy82JhIHVydWNob21pZW5pYSB1bW91bnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjEwCittc2dpZCAiQ2Fubm90IGV4ZWMgdW1vdW50LCBnaXZpbmcgdXAgb24gdW1vdW50LiIKK21zZ3N0ciAiTmllIG1vv25hIHVydWNob21p5iB1bW91bnQsIHBvbWluaepjaWUgb2Rtb250b3d5d2FuaWEuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxNQorbXNnaWQgIlVubW91bnRpbmcgYW55IHJlbWFpbmluZyBmaWxlc3lzdGVtcy4uLiIKK21zZ3N0ciAiT2Rtb250b3d5d2FuaWUgd3N6eXN0a2ljaCBwb3pvc3Rhs3ljaCBzeXN0ZW3zdyBwbGlr83cuLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iCittc2dzdHIgInNodXRkb3duOiBuaWUgdWRhs28gc2nqIG9kbW9udG93YeYgJXM6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzIKK21zZ2lkICJCb290aW5nIHRvIHNpbmdsZSB1c2VyIG1vZGUuXG4iCittc2dzdHIgIlVydWNoYW1pYW5pZSB3IHRyeWJpZSBqZWRub3W/eXRrb3duaWtvd3ltLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTM2Cittc2dpZCAiZXhlYyBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAidXJ1Y2hvbWllbmllIHBvd7Nva2kgdHJ5YnUgamVkbm91v3l0a293bmlrb3dlZ28gbmllIHBvd2lvZLNvIHNp6lxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTQwCittc2dpZCAiZm9yayBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAiIgorInd5a29uYW5pZSBmb3JrIGRsYSBwb3ezb2tpIHRyeWJ1IGplZG5vdb95dGtvd25pa293ZWdvIG5pZSBwb3dpb2SzbyBzaepcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICJis7FkIHBvZGN6YXMgb3R3aWVyYW5pYSBmaWZvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMTIKK21zZ2lkICJlcnJvciBzZXR0aW5nIGNsb3NlLW9uLWV4ZWMgb24gL2Rldi9pbml0Y3RsIgorbXNnc3RyICJis7FkIHBvZGN6YXMgdXN0YXdpYW5pYSBmbGFnaSBjbG9zZS1vbi1leGVjIG5hIC9kZXYvaW5pdGN0bCIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI1OQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImKzsWQgdXJ1Y2hhbWlhbmlhIHByb2Nlc3UgZmluYWxwcm9nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNjMKK21zZ2lkICJlcnJvciBmb3JraW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJis7FkIHBvZGN6YXMgd3lrb255d2FuaWEgZm9yayBkbGEgcHJvY2VzdSBmaW5hbHByb2dcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0NQorbXNnaWQgIiIKKyJcbiIKKyJXcm9uZyBwYXNzd29yZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkKz6mRuZSBoYXOzby5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgImxzdGF0ILZjaWW/a2kgbmllIHBvd2lvZLNvIHNp6lxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2Cittc2dpZCAic3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJzdGF0ILZjaWW/a2kgbmllIHBvd2lvZLNvIHNp6lxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgIm90d2FyY2llIGthdGFsb2d1IG5pZSBwb3dpb2SzbyBzaepcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwMQorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwYXduaW5nOiBcIiVzXCIgdG9vIGZhc3Q6IHF1ZW5jaGluZyBlbnRyeVxuIgorbXNnc3RyICJ6Ynl0IHN6eWJraWUgb2RyYWR6YW5pZSBzaeogXCIlc1wiOiB3eXSzdW1pZW5pZSB3cGlzdVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAiZm9yayBuaWUgcG93aW9ks28gc2nqXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NDAgdGV4dC11dGlscy9tb3JlLmM6MTY2MworbXNnaWQgImV4ZWMgZmFpbGVkXG4iCittc2dzdHIgImV4ZWMgbmllIHBvd2lvZLNvIHNp6lxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0Cittc2dpZCAiY2Fubm90IG9wZW4gaW5pdHRhYlxuIgorbXNnc3RyICJuaWUgbW+/bmEgb3R3b3J6eeYgcGxpa3UgaW5pdHRhYlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NjMxCittc2dpZCAibm8gVEVSTSBvciBjYW5ub3Qgc3RhdCB0dHlcbiIKK21zZ3N0ciAiYnJhayBURVJNIGx1YiBuaWUgbW+/bmEgd3lrb25h5iBzdGF0IG5hIHR0eVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTM4CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJis7FkIHphdHJ6eW15d2FuaWEgdXOzdWdpOiBcIiVzXCJcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjk1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTdG9wcGVkIHNlcnZpY2U6ICVzXG4iCittc2dzdHIgIlphdHJ6eW1hbm8gdXOzdWfqOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBydW5uaW5nIHByb2dyYW1tZTogXCIlc1wiXG4iCittc2dzdHIgImKzsWQgdXJ1Y2hhbWlhbmlhIHByb2dyYW11OiBcIiVzXCJcbiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6NzUKK21zZ2lkICJ0b28gbWFueSBpb3YncyAoY2hhbmdlIGNvZGUgaW4gd2FsbC90dHltc2cuYykiCittc2dzdHIgInpieXQgZHW/byBpb3YgKHRyemViYSB6bWllbmnmIGtvZCB3IHdhbGwvdHR5bXNnLmMpIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJleGNlc3NpdmVseSBsb25nIGxpbmUgYXJnIgorbXNnc3RyICJ6Ynl0IGSzdWdpIGFyZ3VtZW50IgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgIm5pZSBtb79uYSB3eWtvbmHmIGZvcmsiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJmb3JrOiAlcyIKK21zZ3N0ciAiZm9yazogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQkFEIEVSUk9SIgorbXNnc3RyICIlczogWqNZIEKjoUQiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBwbGlrIGhhc2WzIGplc3QgemFq6nR5LlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgZ3JvdXAgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogcGxpayBncnVwIGplc3QgemFq6nR5LlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgJXMgZmlsZSBpcyBidXN5ICglcyBwcmVzZW50KVxuIgorbXNnc3RyICIlczogcGxpayAlcyBqZXN0IHphaup0eSAoaXN0bmllamUgJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgbGluayAlczogJXNcbiIKK21zZ3N0ciAiJXM6IG5pZSBtb79uYSBkb3dpsXph5iAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogbmllIG1vv25hIHV6eXNrYeYga29udGVrc3R1IGRsYSAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogbmllIG1vv25hIHVzdGF3aeYga29udGVrc3R1IGRsYSAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiJXM6IG5pZSBtb79uYSBvZGJsb2tvd2HmICVzOiAlcyAoem1pYW55IHOxIG5hZGFsIHcgJXMpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiVzOiBuaWUgbW+/bmEgd3lrb25h5iBmb3JrXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHVuY2hhbmdlZFxuIgorbXNnc3RyICIlczogJXMgbmllem1pZW5pb255XG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIgorbXNnc3RyICIlczogbmllIHd5a29uYW5vIHptaWFuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgZ3JvdXBzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJXIHR5bSBzeXN0ZW1pZSB1v3l3YW5lIHOxIGdydXB5IHVrcnl0ZSAoc2hhZG93KS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBwYXNzd29yZHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIlcgdHltIHN5c3RlbWllIHW/eXdhbmUgc7EgaGFzs2EgdWtyeXRlIChzaGFkb3cpLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldvdWxkIHlvdSBsaWtlIHRvIGVkaXQgJXMgbm93IFt5L25dPyAiCittc2dzdHIgIkN6eSBtb2R5Zmlrb3dh5iB0ZXJheiAlcyBbeS9uXT8gIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbZmlsZV1cbiIKK21zZ3N0ciAiU2uzYWRuaWE6ICVzIFtwbGlrXVxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBvcGVuIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogbmllIG1vv25hIG90d29yennmIHBsaWt1IHR5bWN6YXNvd2Vnby5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICJaYmlvcm93eSBrb211bmlrYXQgb2Qgdb95dGtvd25pa2EgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiBvZG1vd2EgY3p5dGFuaWEgJXMgLSB1v3l0ZSBi6mR6aWUgc3RhbmRhcmRvd2Ugd2VqtmNpZS5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiJXM6IG5pZSBtb79uYSBvZGN6eXRh5iAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgc3RhdCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IG5pZSBtb79uYSB3eWtvbmHmIHN0YXQgbmEgcGxpa3UgdHltY3phc293eW0uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBuaWUgbW+/bmEgb2Rjenl0YeYgcGxpa3UgdHltY3phc293ZWdvLlxuIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2NCBtaXNjLXV0aWxzL2NhbC5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgIm5pZWRvendvbG9uYSB3YXJ0b7bmIGRuaWE6IGRvcHVzemN6YWxuZSB0byAxLSVkIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICJuaWVkb3p3b2xvbmEgd2FydG+25iBtaWVzabFjYTogZG9wdXN6Y3phbG5lIHRvIDEtMTIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzcyCittc2dpZCAiaWxsZWdhbCB5ZWFyIHZhbHVlOiB1c2UgMS05OTk5IgorbXNnc3RyICJuaWVkb3p3b2xvbmEgd2FydG+25iByb2t1OiBkb3B1c3pjemFsbmUgdG8gMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJXMgJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIgorbXNnc3RyICJTa7NhZG5pYTogY2FsIFstMTNzbWp5Vl0gW1tbZHppZfFdIG1pZXNpsWNdIHJva11cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIKK21zZ3N0ciAiU2uzYWRuaWE6ICVzIFsrZm9ybWF0XSBbZHppZfEgbWllc2mxYyByb2tdXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyNTAKK21zZ2lkICJTdC4gVGliJ3MgRGF5IgorbXNnc3RyICJEemll8SCmd2nqdGVnbyBUaWJhIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCittc2dzdHIgIlNrs2FkbmlhOiAlcyBMQUJFTD08ZXR5a2lldGE+fFVVSUQ9PHV1aWQ+XG4iCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAibmllIG1vv25hIG9kbmFsZbzmICclcyciCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXNcbiIKK21zZ3N0ciAiJXM6IG5pZXpuYW55IHN5Z25hsyAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgcHJvY2VzcyBcIiVzXCJcbiIKK21zZ3N0ciAiJXM6IG5pZSB6bmFsZXppb25vIHByb2Nlc2UgXCIlc1wiXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjMxNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXM7IHZhbGlkIHNpZ25hbHM6XG4iCittc2dzdHIgIiVzOiBuaWV6bmFueSBzeWduYbMgJXM7IHBvcHJhd25lIHN5Z25hs3k6XG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtcyBzaWduYWwgfCAtcCBdIFsgLWEgXSBwaWQgLi4uXG4iCittc2dzdHIgIlNrs2FkbmlhOiAlcyBbIC1zIHN5Z25hsyB8IC1wIF0gWyAtYSBdIFBJRCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIiAgICAgICAgICAlcyAtbCBbIHN5Z25hsyBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiBvcGVubG9nOiBwYXRobmFtZSB0b28gbG9uZ1xuIgorbXNnc3RyICJsb2dnZXI6IG9wZW5sb2c6ILZjaWW/a2EgemJ5dCBks3VnYVxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgInNvY2tldDogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgImNvbm5lY3Q6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiAlczogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBuaWV6bmFuYSBuYXp3YSBrYXRlZ29yaWk6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gcHJpb3JpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogbmllem5hbmEgbmF6d2EgcHJpb3J5dGV0dTogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogbG9nZ2VyIFstaXNdIFstZiBmaWxlXSBbLXAgcHJpXSBbLXQgdGFnXSBbLXUgc29ja2V0XSBbIG1lc3NhZ2UgLi4uIF1cbiIKK21zZ3N0ciAiIgorIlNrs2FkbmlhOiBsb2dnZXIgWy1pc10gWy1mIHBsaWtdIFstcCBwcmlvcnl0ZXRdIFstdCB6bmFjem5pa10gWy11IGduaWF6ZG9dICIKKyJbIGtvbXVuaWthdCAuLi4gXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgIlNrs2FkbmlhOiBsb29rIFstZGZhXSBbLXQgem5ha10gs2HxY3VjaCBbcGxpa11cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJOaWUgbW+/bmEgb3R3b3J6eeYgJXNcbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA5IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICJPZGVicmFubyAlZCBiYWp083cgb2QgJXNcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0Cittc2dpZCAib3V0IG9mIG1lbW9yeT8iCittc2dzdHIgImJyYWsgcGFtaepjaT8iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgc3ltbGluazogJXMiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogb2Rjenl0YeYgZG93abF6YW5pYSBzeW1ib2xpY3puZWdvOiAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjIzMSBtaXNjLXV0aWxzL25hbWVpLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogd3lrb25h5iBzdGF0IG5hICclcyciCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gcGF0aG5hbWUgW3BhdGhuYW1lIC4uLl1cbiIKK21zZ3N0ciAiIgorIlxuIgorIlNrs2FkbmlhOiAlcyBbb3BjamVdILZjaWW/a2EgW7ZjaWW/a2EgLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiT3BjamU6XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHd5tndpZXRsZW5pZSB0ZWdvIG9waXN1XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgd3lwaXNhbmllIGthdGFsb2fzdyBwdW5rdPN3IG1vbnRvd2FuaWEgeiAnRCdcbiIKKyIgLW0sIC0tbW9kZXMgICAgICAgICB3eXBpc2FuaWUgYml083cgdXByYXduaWXxIGthv2RlZ28gcGxpa3VcbiIKKyIgLW8sIC0tb3duZXJzICAgICAgICB3eXBpc2FuaWUgd7NhtmNpY2llbGEgaSBncnVweSBrYb9kZWdvIHBsaWt1XG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdb95Y2llIGSzdWdpZWdvIGZvcm1hdHUgbGlzdHkgKC1tIC1vIC12KVxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGJleiBwb2Sxv2FuaWEgemEgZG93abF6YW5pYW1pIHN5bWJvbGljem55bWlcbiIKKyIgLXYsIC0tdmVydGljYWwgICAgICBwaW9ub3dlIHd5cvN3bmFuaWUgdXByYXduaWXxIGkgd7NhtmNpY2llbGlcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIG5hbWVpKDEpLlxuIgorbXNnc3RyICIiCisiXG4iCisiV2nqY2VqIGluZm9ybWFjamkgdyBuYW1laSgxKS5cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdDogJXMiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogd3lrb25h5iBzdGF0OiAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUzMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXhjZWVkZWQgbGltaXQgb2Ygc3ltbGlua3MiCittc2dzdHIgIiVzOiBwcnpla3JvY3pvbm8gbGltaXQgZG93abF6YfEgc3ltYm9saWN6bnljaCIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIlczogYnJhayBwYW1p6mNpXG4iCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlbmFtaW5nICVzIHRvICVzIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiJXM6IHptaWFuYSBuYXp3eSAlcyBuYSAlcyBuaWUgcG93aW9ks2Egc2nqOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAiU2uzYWRuaWE6ICVzIHogbmEgcGxpa2kuLi5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGAlcycgaXMgYSBsaW5rLlxuIgorIlVzZSBgJXMgW29wdGlvbnNdICVzJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LlxuIgorIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIKK21zZ3N0ciAiIgorIlV3YWdhOiBgJXMnIGplc3QgZG93abF6YW5pZW0uXG4iCisiUHJvc3rqIHW/eeYgYCVzIFtvcGNqZV0gJXMnLCBqZb9lbGkgbmFwcmF3ZOogbWEgYnkgdb95dHkuXG4iCisiU2tyeXB0IG5pZSB1cnVjaG9taW9ueS5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorbXNnc3RyICJTa7NhZG5pYTogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW3BsaWtdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNrcnlwdCB1cnVjaG9taW9ueSwgcGxpayB0byAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3IgJWQ6ICVzXG4iCittc2dzdHIgIiVzOiBis7FkIHphcGlzdSAlZDogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQgb24gJXMiCittc2dzdHIgIlNrcnlwdCB1cnVjaG9taW9ueSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczogYrOxZCB6YXBpc3U6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczogbmllIG1vv25hIHphcGlzYeYgcGxpa3Ugc2tyeXB0dSwgYrOxZDogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNjcmlwdCBkb25lIG9uICVzIgorbXNnc3RyICIiCisiXG4iCisiU2tyeXB0IHd5a29uYW55ICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzNworIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgZG9uZSwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJTa3J5cHQgd3lrb25hbnksIHBsaWsgdG8gJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbnB0eSBmYWlsZWRcbiIKK21zZ3N0ciAib3BlbnB0eSBuaWUgcG93aW9ks28gc2nqXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICJCcmFrIHdvbG55Y2ggcHR5XG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iCittc2dzdHIgIiVzIDxwbGlrX2N6YXPzdz4gWzxza3J5cHQ+IFs8ZHppZWxuaWs+XV1cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJleHBlY3RlZCBhIG51bWJlciwgYnV0IGdvdCAnJXMnIgorbXNnc3RyICJvY3pla2l3YW5vIGxpY3pieSwgb3RyenltYW5vICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTYgbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXZpc29yICclcyciCittc2dzdHIgImR6aWVsbmlrICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTA0Cittc2dpZCAid3JpdGUgdG8gc3Rkb3V0IGZhaWxlZCIKK21zZ3N0ciAiemFwaXMgbmEgc3RhbmRhcmRvd2Ugd3lqtmNpZSBuaWUgcG93afNksyBzaeoiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIm5pZW9jemVraXdhbnkga29uaWVjIHBsaWt1ICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgIm5pZSB1ZGGzbyBzaeogb2Rjenl0YeYgcGxpa3Ugc2tyeXB0dSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIm5pZSBtb79uYSBwbGlrdSBjemFz83cgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAibmllIG1vv25hIG90d29yennmIHBsaWt1IHNrcnlwdHUgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICJuaWUgdWRhs28gc2nqIG9kY3p5dGHmIHBsaWt1IGN6YXPzdyAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IgorbXNnc3RyICJwbGlrIGN6YXPzdyAlczogJWx1OiBuaWVvY3pla2l3YW55IGZvcm1hdCIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBBcmd1bWVudCBlcnJvciwgdXNhZ2VcbiIKK21zZ3N0ciAiJXM6IEKzsWQgYXJndW1lbnR1LCBza7NhZG5pYVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorbXNnc3RyICIgIFsgLXRlcm0gbmF6d2FfdGVybWluYWxhIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVzZXQgXVxuIgorbXNnc3RyICIgIFsgLXJlc2V0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCittc2dzdHIgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiICBbIC1kZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc5IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODMKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NQorIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorbXNnc3RyICIgIFsgLXN0YW5kb3V0IFsgYXRyIF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiICBbIC1zdG9yZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorbXNnc3RyICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsYW5rIFswLTYwfGZvcmNlfHBva2VdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS1MSUNaQkFfS09OU09MXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGVuZCBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWFwcGVuZCBbMS1MSUNaQkFfS09OU09MXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiICBbIC1maWxlIHBsaWtfenJ6dXR1IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSBjeupzdG90bGl3b7bmIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgYmxhbmtcbiIKK21zZ3N0ciAibmllIG1vv25hIHd5bXVzaeYgd3lnYXN6ZW5pYVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgIm5pZSBtb79uYSB3eW11c2nmIGJyYWt1IHd5Z2FzemVuaWFcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA3MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IGJsYW5rIHN0YXR1c1xuIgorbXNnc3RyICJuaWUgbW+/bmEgb2Rjenl0YeYgc3RhbnUgd3lnYXN6ZW5pYVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCAodW4pc2V0IHBvd2Vyc2F2ZSBtb2RlXG4iCittc2dzdHIgIm5pZSBtb79uYSB3s7FjennmL3d5s7FjennmIHRyeWJ1IG9zemN66mR6YW5pYSBlbmVyZ2lpXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICJis7FkIGtsb2djdGw6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JpdGluZyBzY3JlZW5kdW1wXG4iCittc2dzdHIgIkKzsWQgemFwaXN1IHpyenV0dSBla3JhbnVcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIk5pZSBtb79uYSBvZGN6eXRh5iAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6IG5pZSB6ZGVmaW5pb3dhbm8gJFRFUk0uXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdIFstVCB0aW1lb3V0XVxuIgorbXNnc3RyICJTa7NhZG5pYTogJXMgWy1kXSBbLXAgcGxpa19waWRdIFstcyBnbmlhemRvXSBbLVQgbGltaXRfY3phc3VdXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgWy1yfHRdIFstbiBudW1dIFstcyBzb2NrZXRwYXRoXVxuIgorbXNnc3RyICIgICAgICAgICAgJXMgWy1yfHRdIFstbiBsaWN6YmFdIFstcyBnbmlhemRvXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiAgICAgICAgICAlcyAta1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTUyCittc2dpZCAiYmFkIGFyZ3VtZW50cyIKK21zZ3N0ciAiYrPqZG5lIGFyZ3VtZW50eSIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorbXNnaWQgInNvY2tldCIKK21zZ3N0ciAic29ja2V0IgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTcwCittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAiY29ubmVjdCIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE4OQorbXNnaWQgIndyaXRlIgorbXNnc3RyICJ6YXBpcyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE5NworbXNnaWQgInJlYWQgY291bnQiCittc2dzdHIgIm9kY3p5dGFueSByb3ptaWFyIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjAzCittc2dpZCAiYmFkIHJlc3BvbnNlIGxlbmd0aCIKK21zZ3N0ciAiYrPqZG5hIGSzdWdvtuYgb2Rwb3dpZWR6aSIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1dWlkZCBkYWVtb24gYWxyZWFkeSBydW5uaW5nIGF0IHBpZCAlc1xuIgorbXNnc3RyICJkZW1vbiB1dWlkZCBqdb8gZHppYbNhIHogcGlkZW0gJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBjcmVhdGUgdW5peCBzdHJlYW0gc29ja2V0OiAlcyIKK21zZ3N0ciAiTmllIHVkYbNvIHNp6iB1dHdvcnp55iBnbmlhemRhIHVuaWtzb3dlZ286ICVzIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGJpbmQgdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIk5pZSB1ZGGzbyBzaeogZG93abF6YeYgZ25pYXpkYSB1bmlrc293ZWdvICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxpc3RlbiBvbiB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiTmllIHVkYbNvIHNp6iB1cnVjaG9taeYgbmFzs3VjaGl3YW5pYSBuYSBnbmllvGR6aWUgdW5pa3Nvd3ltICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHJlYWRpbmcgZnJvbSBjbGllbnQsIGxlbiA9ICVkXG4iCittc2dzdHIgIkKzsWQgb2Rjenl0dSBvZCBrbGllbnRhLCBks3Vnb7bmID0gJWRcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIm9wZXJhY2phICVkLCBvZGVicmFuYSBsaWN6YmEgPSAlZFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIld5Z2VuZXJvd2FueSBVVUlEIGN6YXNvd3k6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICJXeWdlbmVyb3dhbnkgVVVJRCBsb3Nvd3k6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIld5Z2VuZXJvd2FueSBVVUlEIGN6YXNvd3kgJXMgaSAlZCBrb2xlam55Y2hcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICJXeWdlbmVyb3dhbmUgVVVJRC15IHcgbGljemJpZSAlZDpcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIG9wZXJhdGlvbiAlZFxuIgorbXNnc3RyICJOaWVwcmF3aWSzb3dhIG9wZXJhY2phICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICJCs+pkbmEgbGljemJhOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2FsbGluZyB1dWlkZCBkYWVtb24gKCVzKTogJXNcbiIKK21zZ3N0ciAiQrOxZCB3eXdvs2FuaWEgZGVtb25hIHV1aWRkICglcyk6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgYW5kIHN1YnNlcXVlbnQgJWQgVVVJRCdzXG4iCittc2dzdHIgIiVzIGkga29sZWpuZSBVVUlELXkgdyBsaWN6YmllICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGlzdCBvZiBVVUlEJ3M6XG4iCittc2dzdHIgIkxpc3RhIFVVSUQt83c6XG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCByZXBseSBsZW5ndGggZnJvbSBzZXJ2ZXIgJWRcbiIKK21zZ3N0ciAiTmllb2N6ZWtpd2FuYSBks3Vnb7bmIG9kcG93aWVkemkgb2Qgc2Vyd2VyYSAlZFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIk5pZSB1ZGGzbyBzaeogemFiaeYgdXVpZGQgZHppYbNharFjZWdvIHogcGlkZW0gJWQ6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgIlphYml0byB1dWlkZCBkemlhs2FqsWNlZ28geiBwaWRlbSAlZFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRnZW4uYzozMgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1yXSBbLXRdXG4iCittc2dzdHIgIlNrs2FkbmlhOiAlcyBbLXJdIFstdF1cbiIKKworIzogbWlzYy11dGlscy93aGVyZWlzLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBkaXIgLi4uIC1mIF0gbmFtZS4uLlxuIgorbXNnc3RyICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0ga2F0YWxvZyAuLi4gLWYgXSBuYXp3YS4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjEyOAorbXNnaWQgImNhbGxvYyBmYWlsZWQiCittc2dzdHIgImNhbGxvYyBuaWUgcG93aW9ks28gc2nqIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE1MAorbXNnaWQgInN0cmR1cCBmYWlsZWQiCittc2dzdHIgInN0cmR1cCBuaWUgcG93aW9ks28gc2nqIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICJis7FkOiAlczogaW5pY2phbGl6YWNqYSBwcvNib3dhbmlhIG5pZSBwb3dpb2SzYSBzaeoiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJis7FkOiAlczogd3lkYWplIHNp6iB6YXdpZXJh5iB0YWJsaWPqIHBhcnR5Y2ppICclcyciCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIm5pZSB6bmFsZXppb25vILNh8WN1Y2hhIG1hZ2ljem5lZ28gcG9kIG9mZnNldGVtIDB4JWp4IC0gemlnbm9yb3dhbm8uIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIHNlZWsgdG8gb2Zmc2V0IDB4JWp4IgorbXNnc3RyICIlczogbmllIHVkYbNvIHNp6iB6bWllbmnmIHBvs2+/ZW5pYSBuYSAweCVqeCIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGZhaWxlZCIKK21zZ3N0ciAiemFwaXMgbmllIHBvd2nzZLMgc2nqOiAlcyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXpkIGJ5dGVzIFsiCittc2dzdHIgIiV6ZCBiYWp083cgWyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiXSBlcmFzZWQgYXQgb2Zmc2V0IDB4JWp4ICglcylcbiIKK21zZ3N0ciAiXSB1c3Vuaep0byBwb2Qgb2Zmc2V0ZW0gMHglanggKCVzKVxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI5MiBtb3VudC9zd2Fwb24uYzoxOTggbW91bnQvc3dhcG9uLmM6MjY2CisjOiBtb3VudC9zd2Fwb24uYzo0MTEgbW91bnQvc3dhcG9uLmM6NTcwIG1vdW50L3N3YXBvbi5jOjc3MgorIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3BlbiBmYWlsZWQiCittc2dzdHIgIiVzOiBuaWUgdWRhs28gc2nqIG90d29yennmIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxNSBtaXNjLXV0aWxzL3dpcGVmcy5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAicG9kYW5vIGKz6mRusSB3YXJ0b7bmIG9mZnNldHUgJyVzJyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxkZXZpY2U+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlNrs2FkbmlhOiAlcyBbb3BjamVdIDxuYXp3YV9wbGlrdT5cbiIKKyJcbiIKKyJPcGNqZTpcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisiIC1hLCAtLWFsbCAgICAgICAgICAgdXN1bmnqY2llIHdzenlzdGtpY2ggs2HxY3VjaPN3IG1hZ2ljem55Y2ggKE9TVFJPr05JRSEpXG4iCisiIC1oLCAtLWhlbHAgICAgICAgICAgd3m2d2lldGxlbmllIHRlZ28gb3Bpc3VcbiIKKyIgLW4sIC0tbm8tYWN0ICAgICAgICB3c3p5c3RrbyBwb3phIHezYbZjaXd5bWkgb3BlcmFjamFtaSB6YXBpc3VcbiIKKyIgLW8sIC0tb2Zmc2V0IDxuPiAgICBvZmZzZXQgZG8gdXN1bmnqY2lhIHcgYmFqdGFjaFxuIgorIiAtcCwgLS1wYXJzYWJsZSAgICAgIHd5arZjaWUgdyBmb3JtYWNpZSBkbyBwcnpldHdvcnplbmlhXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgd2lwZWZzKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisiV2nqY2VqIGluZm9ybWFjamkgdyB3aXBlZnMoOCkuXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6Mzg3Cittc2dpZCAiLS1vZmZzZXQgYW5kIC0tYWxsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCittc2dzdHIgIi0tb2Zmc2V0IGkgLS1hbGwgd3lrbHVjemFqsSBzaeogd3phamVtbmllIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZTogbmllIHpuYWxlemlvbm8gbmF6d3kgdHR5XG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IHlvdSBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdHVybmVkIG9mZi5cbiIKK21zZ3N0ciAid3JpdGU6IHByYXdvIHphcGlzdSBqZXN0IHd5s7Fjem9uZS5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6IHW/eXRrb3duaWsgJXMgbmllIGplc3QgemFsb2dvd2FueSBuYSAlcy5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyBtYSB3ebOxY3pvbmUga29tdW5pa2F0eSBuYSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiB3cml0ZSB1c2VyIFt0dHldXG4iCittc2dzdHIgIlNrs2FkbmlhOiB3cml0ZSB1v3l0a293bmlrIFt0dHldXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIG5vdCBsb2dnZWQgaW5cbiIKK21zZ3N0ciAid3JpdGU6IHW/eXRrb3duaWsgJXMgbmllIGplc3QgemFsb2dvd2FueVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIG1hIHd5s7Fjem9uZSBrb211bmlrYXR5XG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIGxvZ2dlZCBpbiBtb3JlIHRoYW4gb25jZTsgd3JpdGluZyB0byAlc1xuIgorbXNnc3RyICJ3cml0ZTogdb95dGtvd25payAlcyBqZXN0IHphbG9nb3dhbnkgd2nqY2VqIG5pvyByYXo7IG5hcGlzYW5vIG5hICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIChhcyAlcykgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICJLb211bmlrYXQgb2QgJXNAJXMgKGpha28gJXMpIG5hICVzIG8gJXMuLi4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiS29tdW5pa2F0IG9kICVzQCVzIG5hICVzIG8gJXMuLi4iCisKKyM6IG1vdW50L2ZzdGFiLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGVycm9yIHJlYWRpbmcgJXM6ICVzIgorbXNnc3RyICJ1d2FnYTogYrOxZCBvZGN6eXR1ICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzIgbW91bnQvZnN0YWIuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgInV3YWdhOiBuaWUgbW+/8WEgb3R3b3J6eeYgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY291bGQgbm90IG9wZW4gJXMgLSB1c2luZyAlcyBpbnN0ZWFkXG4iCittc2dzdHIgIm1vdW50OiBuaWUgdWRhs28gc2nqIG90d29yennmICVzIC0gdb95Y2llICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NTkwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGNyZWF0ZSBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIm5pZSBtb79uYSB1dHdvcnp55iBwbGlrdSBibG9rYWR5ICVzOiAlcyAob3BjamEgLW4gcG9taW5pZSB0bykiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICJuaWUgbW+/bmEgZG93abF6YeYgcGxpa3UgYmxva2FkeSAlczogJXMgKG9wY2phIC1uIHBvbWluaWUgdG8pIgorCisjOiBtb3VudC9mc3RhYi5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBvcGVuIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAibmllIG1vv25hIG90d29yennmIHBsaWt1IGJsb2thZHkgJXM6ICVzIChvcGNqYSAtbiBwb21pbmllIHRvKSIKKworIzogbW91bnQvZnN0YWIuYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIk5pZSBtb79uYSB6YWJsb2tvd2HmIHBsaWt1IGJsb2thZHkgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAibmllIG1vv25hIHphYmxva293YeYgcGxpa3UgYmxva2FkeSAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICJ1cLN5brGzIGxpbWl0IGN6YXN1IgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorIk5pZSBtb79uYSB1dHdvcnp55iBkb3dpsXphbmlhICVzXG4iCisiQnnmIG1vv2UgcG96b3N0YbMgbmllYWt0dWFsbnkgcGxpayBibG9rYWR5P1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjc5MiBtb3VudC9mc3RhYi5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyAoJXMpIC0gbXRhYiBub3QgdXBkYXRlZCIKK21zZ3N0ciAibmllIG1vv25hIG90d29yennmICVzICglcykgLSBuaWUgdWFrdHVhbG5pb25vIHBsaWt1IG10YWIiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJis7FkIHphcGlzdSAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODc0CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzXG4iCittc2dzdHIgImKzsWQgcG9kY3phcyB6bWlhbnkgdXByYXduaWXxIHBsaWt1ICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBvd25lciBvZiAlczogJXNcbiIKK21zZ3N0ciAiYrOxZCBwb2RjemFzIHptaWFueSB3s2G2Y2ljaWVsYSBwbGlrdSAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgcmVuYW1lICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICJuaWUgbW+/bmEgem1pZW5p5iBuYXp3eSAlcyBuYSAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBzZXQgY2FwYWNpdHkgb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBuaWUgbW+/bmEgdXN0YXdp5iBwb2plbW5vtmNpIHVyerFkemVuaWEgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIG9mZnNldCAlPFBSSXU2ND4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIGxpbWl0IHJvem1pYXJ1ICU8UFJJdTY0PiIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gJXMgKHR5cGUgJTxQUkl1MzI+KSIKK21zZ3N0ciAiLCBzenlmcm93YW5pZSAlcyAodHlwICU8UFJJdTMyPikiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJWQiCittc2dzdHIgIiwgb2Zmc2V0ICVkIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiB0eXBlICVkXG4iCittc2dzdHIgIiwgdHlwIHN6eWZyb3dhbmlhICVkXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBuaWUgbW+/bmEgdXp5c2th5iBpbmZvcm1hY2ppIG8gdXJ6sWR6ZW5pdSAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogbmllIG1vv25hIG90d29yennmIHVyerFkemVuaWEgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NDggbW91bnQvbG9tb3VudC5jOjQ4MCBtb3VudC9sb21vdW50LmM6NTQyCisjOiBtb3VudC9sb21vdW50LmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iCittc2dzdHIgIiVzOiBrYXRhbG9nIC9kZXYgbmllIGlzdG5pZWplLiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ1OSBtb3VudC9sb21vdW50LmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiVzOiBicmFrIHVwcmF3bmll8SBkbyBzcHJhd2R6ZW5pYSAvZGV2L2xvb3AlczxOPiIKKworIzogbW91bnQvbG9tb3VudC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGZyZWUgbG9vcCBkZXZpY2UiCittc2dzdHIgIiVzOiBuaWUgdWRhs28gc2nqIG9kbmFsZbzmIL9hZG5lZ28gd29sbmVnbyB1cnqxZHplbmlhIGxvb3AiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlPyAoSWYgc28sIHJlY29tcGlsZSBvciBgbW9kcHJvYmUgbG9vcCcuKSIKK21zZ3N0ciAiIgorIiVzOiBOaWUgdWRhs28gc2nqIG9kbmFsZbzmIL9hZG5lZ28gdXJ6sWR6ZW5pYSBsb29wLiBNb79lIHRvIGqxZHJvXG4iCisiICAgICAgIG5pZSBvYnOzdWd1amUgdXJ6sWR6ZfEgbG9vcD8gKGpltmxpIHRhaywgbmFsZb95IGplIHpyZWtvbXBpbG93YeYsXG4iCisiICAgICAgIGx1YiB3eWtvbmHmIGBtb2Rwcm9iZSBsb29wJy4pIgorCisjOiBtb3VudC9sb21vdW50LmM6NjM2Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGlsZSByZWFkaW5nIHBhc3NwaHJhc2UiCittc2dzdHIgIkJyYWsgcGFtaepjaSBwb2RjemFzIG9kY3p5dHUgaGFzs2EiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAidXdhZ2E6ICVzIGplc3QganW/IHp3abF6YW55IHogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iCittc2dzdHIgIiIKKyJ1d2FnYTogJXM6IHphYmV6cGllY3pvbnkgcHJ6ZWQgemFwaXNlbSwgdb95Y2llIHRyeWJ1IHR5bGtvIGRvIG9kY3p5dHVcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb2NrIGludG8gbWVtb3J5LCBleGl0aW5nLlxuIgorbXNnc3RyICJOaWUgdWRhs28gc2nqIHphYmxva293YeYgdyBwYW1p6mNpLCB6YWtv8WN6ZW5pZS5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBMT09QX1NFVF9GRCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgImlvY3RsIExPT1BfU0VUX0ZEIG5pZSBwb3dp82SzIHNp6jogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgxNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSk6IHN1a2Nlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IHN1a2Nlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODQwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGRlbGV0ZSBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG5pZSBtb79uYSB1c3VuseYgdXJ6sWR6ZW5pYSAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIG1vdW50IHdhcyBjb21waWxlZCB3aXRob3V0IGxvb3Agc3VwcG9ydC4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiIgorIlRlbiBwcm9ncmFtIG1vdW50IHpvc3RhsyBza29tcGlsb3dhbnkgYmV6IG9ic7N1Z2kgdXJ6sWR6ZfEgbG9vcC4gUHJvc3rqICIKKyJwcnpla29tcGlsb3dh5i5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNrs2FkbmlhOlxuIgorIiAlMSRzIHVyerFkemVuaWVfbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICBwb2RhbmllIGluZm9ybWFjamlcbiIKKyIgJTEkcyAtYSB8IC0tYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGEgd3N6eXN0a2ljaCB1v3l3YW55Y2hcbiIKKyIgJTEkcyAtZCB8IC0tZGV0YWNoIDx1cnqxZHouPiBbPHVyerFkei4+IC4uLl0gdXN1bmnqY2llXG4iCisiICUxJHMgLWYgfCAtLWZpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpuYWxlemllbmllIG5pZXW/eXdhbmVnb1xuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPHVyerFkei4+ICAgICAgICAgICB6bWlhbmEgcm96bWlhcnVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8cGxpaz4gWy1vIDxudW0+XSAgICAgbGlzdGEgcG93abF6YW55Y2ggeiA8cGxpa2llbT5cbiIKKyIgJTEkcyBbIG9wY2plIF0gey1mfC0tZmluZHx1cnqxZHoufSA8cGxpaz4gICAga29uZmlndXJhY2phXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIDx0eXBlPiBlbmFibGUgZGF0YSBlbmNyeXB0aW9uIHdpdGggc3BlY2lmaWVkIDxuYW1lL251bT5cbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbyB8IC0tb2Zmc2V0IDxudW0+ICAgICAgc3RhcnQgYXQgb2Zmc2V0IDxudW0+IGludG8gZmlsZVxuIgorIiAgICAgIC0tc2l6ZWxpbWl0IDxudW0+ICAgbG9vcCBsaW1pdGVkIHRvIG9ubHkgPG51bT4gYnl0ZXMgb2YgdGhlIGZpbGVcbiIKKyIgLXAgfCAtLXBhc3MtZmQgPG51bT4gICAgIHJlYWQgcGFzc3BocmFzZSBmcm9tIGZpbGUgZGVzY3JpcHRvciA8bnVtPlxuIgorIiAtciB8IC0tcmVhZC1vbmx5ICAgICAgICAgc2V0dXAgcmVhZC1vbmx5IGxvb3AgZGV2aWNlXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICBwcmludCBkZXZpY2UgbmFtZSAod2l0aCAtZiA8ZmlsZT4pXG4iCisiIC12IHwgLS12ZXJib3NlICAgICAgICAgICB2ZXJib3NlIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIk9wY2plOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwPiAgd7OxY3plbmllIHN6eWZyb3dhbmlhIGRhbnljaCBvIDxuYXp3aWUvbnVtZXJ6ZT5cbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIHRlbiBvcGlzXG4iCisiIC1vIHwgLS1vZmZzZXQgPG51bT4gICAgICByb3pwb2N66mNpZSBvZCBvZmZzZXR1IDxudW0+IHcgcGxpa3VcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIG9ncmFuaWN6ZW5pZSBkbyBuYWp3eb9laiA8bnVtPiBiYWp083cgcGxpa3VcbiIKKyIgLXAgfCAtLXBhc3MtZmQgPG51bT4gICAgIG9kY3p5dCBoYXOzYSB6IGRlc2tyeXB0b3JhIDxudW0+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICB1c3Rhd2llbmllIHVyerFkemVuaWEgbG9vcCB0eWxrbyBkbyBvZGN6eXR1XG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICB3eXBpc2FuaWUgbmF6d3kgdXJ6sWR6ZW5pYSAoeiAtZiA8cGxpaz4pXG4iCisiIC12IHwgLS12ZXJib3NlICAgICAgICAgICB0cnliIHplIHN6Y3plZ/Ozb3d5bWkgaW5mb3JtYWNqYW1pXG4iCisiXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDM0IG1vdW50L2xvbW91bnQuYzoxMDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvb3AgZGV2aWNlIGlzICVzXG4iCittc2dzdHIgIlVyerFkemVuaWUgbG9vcDogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RvbGVuIGxvb3A9JXMuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAidWtyYWR6aW9ueSBsb29wPSVzLi4uIHBvbm93bmEgcHLzYmFcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiBkZXZpY2UgaXMgYnVzeSIKK21zZ3N0ciAiJXM6ICVzOiB1cnqxZHplbmllIGplc3QgemFq6nRlIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKyJCcmFrIG9ic7N1Z2kgdXJ6sWR6ZfEgbG9vcCB3IHRyYWtjaWUga29tcGlsYWNqaS4gUHJvc3rqIHByemVrb21waWxvd2HmLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisibW91bnQ6IHdhcm5pbmc6IC9ldGMvbXRhYiBpcyBub3Qgd3JpdGFibGUgKGUuZy4gcmVhZC1vbmx5IGZpbGVzeXN0ZW0pLlxuIgorIiAgICAgICBJdCdzIHBvc3NpYmxlIHRoYXQgaW5mb3JtYXRpb24gcmVwb3J0ZWQgYnkgbW91bnQoOCkgaXMgbm90XG4iCisiICAgICAgIHVwIHRvIGRhdGUuIEZvciBhY3R1YWwgaW5mb3JtYXRpb24gYWJvdXQgc3lzdGVtIG1vdW50IHBvaW50c1xuIgorIiAgICAgICBjaGVjayB0aGUgL3Byb2MvbW91bnRzIGZpbGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJtb3VudDogdXdhZ2E6IHBsaWt1IC9ldGMvbXRhYiBuaWUgbW+/bmEgemFwaXN5d2HmIChucC4gc3lzdGVtIHBsaWvzd1xuIgorIiAgICAgICBqZXN0IHR5bGtvIGRvIG9kY3p5dHUpLiBNb79saXdlLCC/ZSBpbmZvcm1hY2plIHpns2FzemFuZSBwcnplelxuIgorIiAgICAgICBtb3VudCg4KSBuaWUgc7EgYWt0dWFsbmUuIFezYbZjaXdlIGluZm9ybWFjamUgbyBwdW5rdGFjaFxuIgorIiAgICAgICBtb250b3dhbmlhIG1vv25hIHpuYWxlvOYgdyBwbGlrdSAvcHJvYy9tb3VudHMuXG4iCisiXG4iCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHRyYW5zbGF0ZWQgJXMgJyVzJyB0byAnJXMnXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo1MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzIGZvciB3cml0aW5nOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjY3MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo2NzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJuaWUgbW+/bmEgcG9icmHmIHJvem1pYXJ1ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjcxNCBtb3VudC9tb3VudC5jOjE4NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjg3OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogeW91IGRpZG4ndCBzcGVjaWZ5IGEgZmlsZXN5c3RlbSB0eXBlIGZvciAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IGFsbCB0eXBlcyBtZW50aW9uZWQgaW4gJXMgb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgYW5kIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyBzd2Fwc3BhY2VcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSB0eXBlICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDIKK21zZ2lkICJtb3VudCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTA3NAorbXNnaWQgIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMDc5Cittc2dpZCAibW91bnQ6IHR5cGUgc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2tpcHBpbmcgdGhlIHNldHVwIG9mIGEgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTExMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZ29pbmcgdG8gdXNlIHRoZSBsb29wIGRldmljZSAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzdG9sZW4gbG9vcD0lcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzZXR1cCBsb29wIGRldmljZSBzdWNjZXNzZnVsbHlcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vICVzIGZvdW5kIC0gY3JlYXRpbmcgaXQuLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMjE1Cittc2dpZCAibW91bnQ6IGFyZ3VtZW50IHRvIC1wIG9yIC0tcGFzcy1mZCBtdXN0IGJlIGEgbnVtYmVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG9wZW4gJXMgZm9yIHNldHRpbmcgc3BlZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHNwZWVkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHdhcm5pbmc6ICVzIHNlZW1zIHRvIGJlIG1vdW50ZWQgcmVhZC13cml0ZS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTMKK21zZ2lkICIiCisibW91bnQ6IEkgY291bGQgbm90IGRldGVybWluZSB0aGUgZmlsZXN5c3RlbSB0eXBlLCBhbmQgbm9uZSB3YXMgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQxNgorbXNnaWQgIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDE5Cittc2dpZCAibW91bnQ6IG1vdW50IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQyOQorbXNnaWQgIm1vdW50OiBtdXN0IGJlIHN1cGVydXNlciB0byB1c2UgbW91bnQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDMzIG1vdW50L21vdW50LmM6MTQzNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgYnVzeSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MzkKK21zZ2lkICJtb3VudDogcHJvYyBhbHJlYWR5IG1vdW50ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgYSBzeW1ib2xpYyBsaW5rIHRvIG5vd2hlcmUiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdFxuIgorIiAgICAgICAoYSBwYXRoIHByZWZpeCBpcyBub3QgYSBkaXJlY3RvcnkpXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorIiAgICAgICBtaXNzaW5nIGNvZGVwYWdlIG9yIGhlbHBlciBwcm9ncmFtLCBvciBvdGhlciBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTAxCittc2dpZCAiIgorIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorIiAgICAgICBpbnN0ZWFkIG9mIHNvbWUgbG9naWNhbCBwYXJ0aXRpb24gaW5zaWRlPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTE0Cittc2dpZCAibW91bnQgdGFibGUgZnVsbCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiBjYW4ndCByZWFkIHN1cGVyYmxvY2siCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogdW5rbm93biBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB1bmtub3duIGZpbGVzeXN0ZW0gdHlwZSAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogcHJvYmFibHkgeW91IG1lYW50ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU0MgorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDUKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICd2ZmF0Jz8iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBoYXMgd3JvbmcgZGV2aWNlIG51bWJlciBvciBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSAobWF5YmUgdHJ5IGAtbyBsb29wJz8pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU3MgorbXNnaWQgImJsb2NrIGRldmljZSAiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgbW91bnQgJXMlcyByZWFkLW9ubHkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU4MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCwgbW91bnRpbmcgcmVhZC1vbmx5IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTYwNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNzE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtIEknbGwgYXNzdW1lIGNpZnMgYmVjYXVzZSBvZiB0aGUgLy8gcHJlZml4XG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxODExCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiBtb3VudCAtViAgICAgICAgICAgICAgICAgOiBwcmludCB2ZXJzaW9uXG4iCisiICAgICAgIG1vdW50IC1oICAgICAgICAgICAgICAgICA6IHByaW50IHRoaXMgaGVscFxuIgorIiAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgOiBsaXN0IG1vdW50ZWQgZmlsZXN5c3RlbXNcbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDogaWRlbSwgaW5jbHVkaW5nIHZvbHVtZSBsYWJlbHNcbiIKKyJTbyBmYXIgdGhlIGluZm9ybWF0aW9uYWwgcGFydC4gTmV4dCB0aGUgbW91bnRpbmcuXG4iCisiVGhlIGNvbW1hbmQgaXMgYG1vdW50IFstdCBmc3R5cGVdIHNvbWV0aGluZyBzb21ld2hlcmUnLlxuIgorIkRldGFpbHMgZm91bmQgaW4gL2V0Yy9mc3RhYiBtYXkgYmUgb21pdHRlZC5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDogbW91bnQgYWxsIHN0dWZmIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAgICAgICBtb3VudCBkZXZpY2UgICAgICAgICAgICAgOiBtb3VudCBkZXZpY2UgYXQgdGhlIGtub3duIHBsYWNlXG4iCisiICAgICAgIG1vdW50IGRpcmVjdG9yeSAgICAgICAgICA6IG1vdW50IGtub3duIGRldmljZSBoZXJlXG4iCisiICAgICAgIG1vdW50IC10IHR5cGUgZGV2IGRpciAgICA6IG9yZGluYXJ5IG1vdW50IGNvbW1hbmRcbiIKKyJOb3RlIHRoYXQgb25lIGRvZXMgbm90IHJlYWxseSBtb3VudCBhIGRldmljZSwgb25lIG1vdW50c1xuIgorImEgZmlsZXN5c3RlbSAob2YgdGhlIGdpdmVuIHR5cGUpIGZvdW5kIG9uIHRoZSBkZXZpY2UuXG4iCisiT25lIGNhbiBhbHNvIG1vdW50IGFuIGFscmVhZHkgdmlzaWJsZSBkaXJlY3RvcnkgdHJlZSBlbHNld2hlcmU6XG4iCisiICAgICAgIG1vdW50IC0tYmluZCBvbGRkaXIgbmV3ZGlyXG4iCisib3IgbW92ZSBhIHN1YnRyZWU6XG4iCisiICAgICAgIG1vdW50IC0tbW92ZSBvbGRkaXIgbmV3ZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgbW91bnQgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXVuYmluZGFibGUgZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgYWxsIHRoZSBtb3VudHMgaW4gYSBtb3VudCBzdWJ0cmVlXG4iCisiY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ycHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJ1bmJpbmRhYmxlIGRpclxuIgorIkEgZGV2aWNlIGNhbiBiZSBnaXZlbiBieSBuYW1lLCBzYXkgL2Rldi9oZGExIG9yIC9kZXYvY2Ryb20sXG4iCisib3IgYnkgbGFiZWwsIHVzaW5nICAtTCBsYWJlbCAgb3IgYnkgdXVpZCwgdXNpbmcgIC1VIHV1aWQgLlxuIgorIk90aGVyIG9wdGlvbnM6IFstbmZGcnN2d10gWy1vIG9wdGlvbnNdIFstcCBwYXNzd2RmZF0uXG4iCisiRm9yIG1hbnkgbW9yZSBkZXRhaWxzLCBzYXkgIG1hbiA4IG1vdW50IC5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjIyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjMwNiBtb3VudC9tb3VudC5jOjIzMzIKK21zZ2lkICJtb3VudDogbm8gc3VjaCBwYXJ0aXRpb24gZm91bmQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyMzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBmaW5kICVzIGluICVzIG9yICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogd2FybmluZzogbm8gZmluYWwgbmV3bGluZSBhdCB0aGUgZW5kIG9mICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiBsaW5lICVkIGluICVzIGlzIGJhZCVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE5Cittc2dpZCAiOyByZXN0IG9mIGZpbGUgaWdub3JlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjMyCittc2dpZCAiYnVnIGluIHhzdHJuZHVwIGNhbGwiCittc2dzdHIgIiIKKworIzogbW91bnQvc3VuZHJpZXMuYzoyMjUgbW91bnQvc3VuZHJpZXMuYzoyODEgbW91bnQvc3VuZHJpZXMuYzoyOTYKKyM6IG1vdW50L3htYWxsb2MuYzoxMQorbXNnaWQgIm5vdCBlbm91Z2ggbWVtb3J5IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgPHNwZWNpYWw+IHBhcmFtZXRlcjpcbiIKKyIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxmaWxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGZpbGUgdG8gYmUgdXNlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCBwcmlvcml0eV0gWy12XSBbLWZdIDxzcGVjaWFsPiAgZW5hYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjEwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBzd2Fwc1xuIgorIiAlMSRzIFstdl0gPHNwZWNpYWw+ICAgICAgICAgICAgICAgZGlzYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5leHBlY3RlZCBmaWxlIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlaW5pdGlhbGl6aW5nIHRoZSBzd2FwLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMjMKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKK21zZ2lkICJleGVjdiBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjQ3Cittc2dpZCAid2FpdHBpZCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsc2VlayBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBzaWduYXR1cmUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZm91bmQgc3dhcCBzaWduYXR1cmU6IHZlcnNpb24gJWQsIHBhZ2Utc2l6ZSAlZCwgJXMgYnl0ZSBvcmRlciIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJkaWZmZXJlbnQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5CisjLCBmdXp6eQorbXNnaWQgInNhbWUiCittc2dzdHIgIk5hendhIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN0YXQgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM5NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW5zZWN1cmUgcGVybWlzc2lvbnMgJTA0bywgJTA0byBzdWdnZXN0ZWQuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgLSBpdCBhcHBlYXJzIHRvIGhhdmUgaG9sZXMuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZ2V0IHNpemUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDc4IG1vdW50L3N3YXBvbi5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9uIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmaW5kIHRoZSBkZXZpY2UgZm9yICVzIgorbXNnc3RyICJuaWUgbW+/bmEgcG9icmHmIHJvem1pYXJ1ICVzIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDAKK21zZ2lkICJOb3Qgc3VwZXJ1c2VyLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvZmYgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIHVuc3VwcG9ydGVkIHByb2dyYW0gbmFtZSAobXVzdCBiZSAnc3dhcG9uJyBvciAnc3dhcG9mZicpLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgLWZcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibmllIG1vv25hIHBvYnJh5iByb3ptaWFydSAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IG1vdW50ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1bW91bnQ6ICVzOiBkZXZpY2UgaXMgYnVzeS5cbiIKKyIgICAgICAgIChJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGFib3V0IHByb2Nlc3NlcyB0aGF0IHVzZVxuIgorIiAgICAgICAgIHRoZSBkZXZpY2UgaXMgZm91bmQgYnkgbHNvZig4KSBvciBmdXNlcigxKSkiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1bW91bnQyLCB0cnlpbmcgdW1vdW50Li4uXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MjUyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgYnVzeSAtIHJlbW91bnRlZCByZWFkLW9ubHlcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb3VsZCBub3QgcmVtb3VudCAlcyByZWFkLW9ubHlcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoyNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdW1vdW50ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzozNjcKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBmaW5kIGxpc3Qgb2YgZmlsZXN5c3RlbXMgdG8gdW5tb3VudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzozOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ4NworbXNnaWQgIkNhbm5vdCB1bW91bnQgXCJcIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCB1bW91bnQgJXMgLS0gJXMgaXMgbW91bnRlZCBvdmVyIGl0IG9uIHRoZSBzYW1lIHBvaW50LiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgJXMgaW4gbXRhYlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBtb3VudGVkIChhY2NvcmRpbmcgdG8gbXRhYikiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogaXQgc2VlbXMgJXMgaXMgbW91bnRlZCBtdWx0aXBsZSB0aW1lcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgaW4gdGhlIGZzdGFiIChhbmQgeW91IGFyZSBub3Qgcm9vdCkiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgbW91bnQgZGlzYWdyZWVzIHdpdGggdGhlIGZzdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiY2hydCAtIG1hbmlwdWxhdGUgcmVhbC10aW1lIGF0dHJpYnV0ZXMgb2YgYSBwcm9jZXNzLlxuIgorIlxuIgorIlNldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSA8cG9saWN5PiA8cHJpb3JpdHk+IHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJHZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIlxuIgorIlNjaGVkdWxpbmcgcG9saWNpZXM6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0ZJRk9cbiIKKyIgIC1pIHwgLS1pZGxlICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9SUiAoZGVmYXVsdClcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHBcbiIKKyIgIC1wIHwgLS1waWQgICAgICAgICAgIG9wZXJhdGUgb24gZXhpc3RpbmcgZ2l2ZW4gcGlkXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBzaG93IG1pbiBhbmQgbWF4IHZhbGlkIHByaW9yaXRpZXNcbiIKKyIgIC12IHwgLS12ZXJib3NlICAgICAgIGRpc3BsYXkgc3RhdHVzIGluZm9ybWF0aW9uXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd25cbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBhdHRyaWJ1dGVzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHByaW9yaXR5OiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBtaW4vbWF4IHByaW9yaXR5XHQ6ICVkLyVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwaWQiCittc2dzdHIgIiVzOiBuaWUgdWRhs28gc2nqIG90d29yennmOiAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMjUKK21zZ2lkICJjdXJyZW50IgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzMworbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHNldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCisjLCBmdXp6eQorbXNnaWQgIm5ldyIKK21zZ3N0ciAiTm93YSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiJXM6IG5pZSB1ZGGzbyBzaeogb3R3b3J6eeY6ICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NTcKK21zZ2lkICJpb3ByaW9fZ2V0IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjc1Cittc2dpZCAiaW9wcmlvX3NldCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisiXG4iCisiVXNhZ2U6XG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSA8Y29tbWFuZD4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBzY2hlZHVsaW5nIGNsYXNzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIDA6IG5vbmUsIDE6IHJlYWx0aW1lLCAyOiBiZXN0LWVmZm9ydCwgMzogaWRsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxMTAgc2NoZWR1dGlscy9pb25pY2UuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBwYXJzZSBudW1iZXIgJyVzJyIKK21zZ3N0ciAibmllIG1vv25hIG90d29yennmICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3Cittc2dpZCAiZXhlY3ZwIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjExNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyBpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pICIKKyJbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGltZSB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwMCBzeXMtdXRpbHMvY3l0dW5lLmM6MzU3IHN5cy11dGlscy9jeXR1bmUuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRpbWVvdXQgZm9yICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMjcKK21zZ2lkICJDYW4ndCBzZXQgc2lnbmFsIGhhbmRsZXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzQ0IHN5cy11dGlscy9jeXR1bmUuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYywgJWYgc2VuZCAoY2hhci9zZWMpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJTa7NhZG5pYTogJXMgWy1jIHwgLWwgcGxpa10gWy1uWFhdIFstaVhYXSAvZGV2L25hendhIFtibG9raV1cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxmaWxlbmFtZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiU2uzYWRuaWE6ICVzIFtvcGNqZV0gPG5hendhX3BsaWt1PlxuIgorIlxuIgorIk9wY2plOlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1rZWVwLXNpemUgICAgIGRvbid0IG1vZGlmeSB0aGUgbGVuZ3RoIG9mIHRoZSBmaWxlXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorIiAtbCwgLS1sZW5ndGggPG51bT4gIGxlbmd0aCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBmYWxsb2NhdGUoMSkuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0NworbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0OQorbXNnaWQgImludmFsaWQgbGVuZ3RoIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jIG5pZSBwb3dpb2SzbyBzaeoiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MTkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgcmVxdWlyZXMgZXhhY3RseSBvbmUgY29tbWFuZCBhcmd1bWVudFxuIgorbXNnc3RyICIlcyB3eW1hZ2EgYXJndW1lbnR1XG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IG5pZSBtb79uYSBvdHdvcnp55iAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogYrOxZCBvZGN6eXR1IG5hICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjI5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogbmllIHVkYbNvIHNp6iBvdHdvcnp55jogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDIKK21zZ2lkICJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hhcmVkIG1lbW9yeSBpZDogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo2NAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCByZW1vdmUgaWQgJXMgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgImRlcHJlY2F0ZWQgdXNhZ2U6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duIHJlc291cmNlIHR5cGU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBrZXkgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwNiBzeXMtdXRpbHMvaXBjcm0uYzoyMzgKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwOSBzeXMtdXRpbHMvaXBjcm0uYzoyNDgKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQga2V5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxMiBzeXMtdXRpbHMvaXBjcm0uYzoyNDMKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjM5Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0NAorbXNnaWQgImludmFsaWQgaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ5Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NAorbXNnaWQgInVua25vd24gZXJyb3IgaW4gaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIGFyZ3VtZW50OiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzIGZvciB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk91dHB1dCBGb3JtYXQ6XG4iCisiXHQtdCA6IHRpbWVcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2hhcmVkIG1lbW9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VnIHNpemUgKGtieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyByZXNpZGVudCAgJWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgc3dhcHBlZCAgICVsZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3YXAgcGVyZm9ybWFuY2U6ICVsZCBhdHRlbXB0c1x0ICVsZCBzdWNjZXNzZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgInNobWlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImNnaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJ1aWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJnaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQXR0YWNoL0RldGFjaC9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImRldGFjaGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk1Cittc2dpZCAiY2hhbmdlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBDcmVhdG9yL0xhc3Qtb3AgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImNwaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJrZXkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJieXRlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgIm5hdHRjaCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMyOSBzeXMtdXRpbHMvaXBjcy5jOjMzMSBzeXMtdXRpbHMvaXBjcy5jOjMzMworIzogc3lzLXV0aWxzL2lwY3MuYzo0NDQgc3lzLXV0aWxzL2lwY3MuYzo0NDYgc3lzLXV0aWxzL2lwY3MuYzo1NDUKKyM6IHN5cy11dGlscy9pcGNzLmM6NTQ3IHN5cy11dGlscy9pcGNzLmM6NTQ5IHN5cy11dGlscy9pcGNzLmM6NjAwCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMiBzeXMtdXRpbHMvaXBjcy5jOjYzMCBzeXMtdXRpbHMvaXBjcy5jOjYzMgorIzogc3lzLXV0aWxzL2lwY3MuYzo2MzQgc3lzLXV0aWxzL2lwY3MuYzo2NTcKK21zZ2lkICJOb3Qgc2V0IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MgorbXNnaWQgImxvY2tlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2YgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBwZXIgYXJyYXkgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJzZW1hcGhvcmUgbWF4IHZhbHVlID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgc2VtYXBob3JlcyA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3Qtb3AiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgIm5zZW1zIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3IgbWVzc2FnZSBxdWV1ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzaXplIG9mIG1lc3NhZ2UgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVmYXVsdCBtYXggc2l6ZSBvZiBxdWV1ZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk4CisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBxdWV1ZXMgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk5CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgaGVhZGVycyA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBzcGFjZSA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzOiBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUxMiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorIzogc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJtc3FpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgU2VuZC9SZWN2L0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAic2VuZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInJlY3YiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJjaGFuZ2UiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFBJRHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHJwaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJ1c2VkLWJ5dGVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAibWVzc2FnZXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1ODkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTaGFyZWQgbWVtb3J5IFNlZ21lbnQgc2htaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYXR0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAzIHN5cy11dGlscy9pcGNzLmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTUKK21zZ2lkICJtc2djdGwgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJNZXNzYWdlIFF1ZXVlIG1zcWlkPSVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJjdl90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZW1hcGhvcmUgQXJyYXkgc2VtaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibnNlbXMgPSAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJvdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAic2VtbnVtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAidmFsdWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJuY291bnQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ6Y291bnQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJwaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjkxCittc2dpZCAiIgorIlxuIgorIktub3duIDxsZGlzYz4gbmFtZXM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgc3BlZWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJsZGF0dGFjaCBmcm9tICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBsaW5lIGRpc2NpcGxpbmU6ICVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiCittc2dzdHIgIiVzIG5pZSBqZXN0IHNwZWNqYWxueW0gdXJ6sWR6ZW5pZW0gYmxva293eW0iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAibmllIG1vv25hIHBvYnJh5iByb3ptaWFydSAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWVkICVkIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1MQorbXNnaWQgImNhbm5vdCBzZXQgbGluZSBkaXNjaXBsaW5lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworIywgZnV6enkKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICJuaWUgbW+/bmEgb3R3b3J6eeYgJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0CisjLCBmdXp6eQorbXNnaWQgIm5vbmUiCittc2dzdHIgInpha2/xY3pvbmVcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUKK21zZ2lkICJwYXJhIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2Cittc2dpZCAiZnVsbCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxMzcgc3lzLXV0aWxzL2xzY3B1LmM6MTYwIHN5cy11dGlscy9sc2NwdS5jOjQ1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzIgorbXNnc3RyICJis7FkIHphbXlrYW5pYSAlcyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgImKzsWQgemFteWthbmlhICVzIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKK21zZ2lkICJlcnJvcjogc3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoyNjcKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorbXNnaWQgImVycm9yOiBtYWxsb2MgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXJcbiIKKyIjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElEXG4iCisiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisiIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKK21zZ2lkICJDUFUgb3AtbW9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI1Cittc2dpZCAiVGhyZWFkKHMpIHBlciBjb3JlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzUKK21zZ2lkICJDUFUgZmFtaWx5OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzcKK21zZ2lkICJNb2RlbDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1MAorbXNnaWQgIlZpcnR1YWxpemF0aW9uIHR5cGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjYWNoZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbl1cbiIKK21zZ3N0ciAidb95Y2llOiAlcyBbIC1uIF0gdXJ6sWR6ZW5pZVxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjkKK21zZ2lkICIiCisiQ1BVIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBoZWxwZXJcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgIHVzYWdlIGluZm9ybWF0aW9uXG4iCisiICAtcCwgLS1wYXJzZSAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0LlxuIgorIiAgLXMsIC0tc3lzcm9vdCAgdXNlIHRoZSBkaXJlY3RvcnkgYXMgYSBuZXcgc3lzdGVtIHJvb3QuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NzE4CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiBjaGFuZ2Ugd29ya2luZyBkaXJlY3RvcnkgdG8gJXMuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzcKK21zZ2lkICJ1c2FnZTogcmRldiBbIC1ydiBdIFsgLW8gT0ZGU0VUIF0gWyBJTUFHRSBbIFZBTFVFIFsgT0ZGU0VUIF0gXSBdIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzgKK21zZ2lkICIiCisiICByZGV2IC9kZXYvZmQwICAob3IgcmRldiAvbGludXgsIGV0Yy4pIGRpc3BsYXlzIHRoZSBjdXJyZW50IFJPT1QgZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgwCittc2dpZCAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgUk9PVEZMQUdTIChyZWFkb25seSBzdGF0dXMpIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODEKK21zZ2lkICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NQorbXNnaWQgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODgKK21zZ2lkICIgICAgICB1c2UgLVIgMSB0byBtb3VudCByb290IHJlYWRvbmx5LCAtUiAwIGZvciByZWFkL3dyaXRlLiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjI0NQorbXNnaWQgIm1pc3NpbmcgY29tbWEiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NzIgdGV4dC11dGlscy9tb3JlLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIm91dCBvZiBtZW1vcnkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6IFwiJXMgW29wdGlvbnNdXG4iCisiXHQgLW0gPG1hcGZpbGU+ICAoZGVmYXVsdHM6IFwiJXNcIiBhbmRcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsZT4gKGRlZmF1bHQ6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIgdG8gPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBwcmludCBvbmx5IGluZm8gYWJvdXQgdGhlIHNhbXBsaW5nIHN0ZXBcbiIKKyJcdCAtdiAgICAgICAgICAgIHByaW50IHZlcmJvc2UgZGF0YVxuIgorIlx0IC1hICAgICAgICAgICAgcHJpbnQgYWxsIHN5bWJvbHMsIGV2ZW4gaWYgY291bnQgaXMgMFxuIgorIlx0IC1iICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBoaXN0b2dyYW0tYmluIGNvdW50c1xuIgorIlx0IC1zICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBjb3VudGVycyB3aXRoaW4gZnVuY3Rpb25zXG4iCisiXHQgLXIgICAgICAgICAgICByZXNldCBhbGwgdGhlIGNvdW50ZXJzIChyb290IG9ubHkpXG4iCisiXHQgLW4gICAgICAgICAgICBkaXNhYmxlIGJ5dGUgb3JkZXIgYXV0by1kZXRlY3Rpb25cbiIKKyJcdCAtViAgICAgICAgICAgIHByaW50IHZlcnNpb24gYW5kIGV4aXRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZHByb2ZpbGU6IGVycm9yIHdyaXRpbmcgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuIFVzZSAtbiB0byBmb3JjZSBuYXRpdmUgYnl0ZSBvcmRlci5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMDUgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyglaSk6IHdyb25nIG1hcCBsaW5lXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIFwiX3N0ZXh0XCIgaW4gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjQxMgorbXNnaWQgInRvdGFsIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5IFstcHwtLXBpZF0gcGlkICBbLi4uIHBpZF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC1nfC0tcGdycCBwZ3JwIFsuLi4gcGdycF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC11fC0tdXNlciB1c2VyIFsuLi4gdXNlcl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlIGZyb20gJXNcbiIKK21zZ3N0ciAiVXJ6sWR6ZW5pZTogJXNcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiB1bmtub3duIHVzZXJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTM0CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTcKK21zZ2lkICJzZXRwcmlvcml0eSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkOiBvbGQgcHJpb3JpdHkgJWQsIG5ldyBwcmlvcml0eSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyIgICAgLWQgfCAtLWRldmljZSA8ZGV2aWNlPiAgICBzZWxlY3QgcnRjIGRldmljZSAocnRjMHxydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICBSVEMgdXNlcyBsb2NhbCB0aW1lem9uZVxuIgorIiAgICAtbSB8IC0tbW9kZSAgICAgICAgICAgICAgIHN0YW5kYnl8bWVtfC4uLiBzbGVlcCBtb2RlXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxzZWNvbmRzPiAgc2Vjb25kcyB0byBzbGVlcFxuIgorIiAgICAtdCB8IC0tdGltZSA8dGltZV90PiAgICAgIHRpbWUgdG8gd2FrZVxuIgorIiAgICAtdSB8IC0tdXRjICAgICAgICAgICAgICAgIFJUQyB1c2VzIFVUQ1xuIgorIiAgICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgIHZlcmJvc2UgbWVzc2FnZXNcbiIKKyIgICAgLVYgfCAtLXZlcnNpb24gICAgICAgICAgICBzaG93IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0MgorbXNnaWQgInJlYWQgcnRjIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDcKK21zZ2lkICJyZWFkIHN5c3RlbSB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTY1Cittc2dpZCAiY29udmVydCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyNAorbXNnaWQgInNldCBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjgKK21zZ2lkICJlbmFibGUgcnRjIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjMyCittc2dpZCAic2V0IHJ0YyB3YWtlIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIHRpbWVfdCB2YWx1ZSAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIlczogYrOxZCBvZGN6eXR1IG5hICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhc3N1bWluZyBSVEMgdXNlcyBVVEMgLi4uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgVVRDIHRpbWUuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgbG9jYWwgdGltZS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3Cittc2dpZCAibWFsbG9jKCkgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGVuYWJsZWQgZm9yIHdha2V1cCBldmVudHNcbiIKK21zZ3N0ciAiJXM6IG5pZSBqZXN0IHRvIHVyerFkemVuaWUgYmxva293ZVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWtldXAgZnJvbSBcIiVzXCIgdXNpbmcgJXMgYXQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIlczogbmllIHVkYbNvIHNp6iBwcnplZXR5a2lldG93YeYgJXMgbmEgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDk2Cittc2dpZCAicnRjIHJlYWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo1MDUKK21zZ2lkICJkaXNhYmxlIHJ0YyBhbGFybSBpbnRlcnJ1cHQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzo1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hpbmcgb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgc2V0YXJjaCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVzXG4iCisiVHJ5IGAlcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjE1IHN5cy11dGlscy9zZXRhcmNoLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNjUgc3lzLXV0aWxzL3NldGFyY2guYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBhbiBscCBkZXZpY2UuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdGF0dXMgaXMgJWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHJlYWR5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICIsIG9uLWxpbmUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGVycm9yIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgcG9sbGluZ1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gPHByb2dyYW0+IFthcmdzLi4uXVxuIgorbXNnc3RyICJTa7NhZG5pYTogJXMgW29wY2plXSB1cnqxZHplbmllLi4uXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjAKK21zZ2lkICIiCisiUnVuIHByb2dyYW0gd2l0aCBzb21lIG5hbWVzcGFjZXMgdW5zaGFyZWQgZnJvbSBwYXJlbnRcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgdW5zaGFyZSBtb3VudHMgbmFtZXNwYWNlXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIFVUUyBuYW1lc3BhY2UgKGhvc3RuYW1lIGV0YylcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorIiAgLW4sIC0tbmV0ICAgICAgICAgdW5zaGFyZSBuZXR3b3JrIG5hbWVzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1bnNoYXJlKDEpLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE0CisjLCBmdXp6eQorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICJwcnplbWllc3pjemVuaWUgbmllIHBvd2lvZLNvIHNp6iIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICIlcyBuaWUgcG93aW9ks28gc2nqLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IGJhZCAtbCBhcmd1bWVudCAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sIFstYmZweF0gWy1sIG5saW5lXVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd3JpdGUgZXJyb3IuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAicGFzdCBmaXJzdCBsaW5lIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAiLS0gbGluZSBhbHJlYWR5IGZsdXNoZWQiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mjk3Cittc2dpZCAibGluZSB0b28gbG9uZyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjM3NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sdW1uIFstdHhdIFstYyBjb2x1bW5zXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgbGVuZ3RoIHZhbHVlLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWy1kZmxwY3N1XSBbK2xpbmVudW0gfCArL3BhdHRlcm5dIG5hbWUxIG5hbWUyIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGluaXRpYWxpemUgbGluZSBidWZmZXJcbiIKK21zZ3N0ciAibmllIHVkYbNvIHNp6iBwcnp5ZHppZWxp5iBidWZvcmEgd3lqtmNpb3dlZ28iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBvcHRpb24gXCItJWNcIlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjUxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqICVzOiBkaXJlY3RvcnkgKioqXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKioqKioqKiAlczogTm90IGEgdGV4dCBmaWxlICoqKioqKioqXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIltVc2UgcSBvciBRIHRvIHF1aXRdIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICItLU1vcmUtLSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiKE5leHQgZmlsZTogJXMpIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUxCittc2dpZCAiLi4uc2tpcHBpbmcgb25lIGxpbmUiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MworIywgYy1mb3JtYXQKK21zZ2lkICIuLi5za2lwcGluZyAlZCBsaW5lcyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjkwCittc2dpZCAiIgorIlxuIgorIioqKkJhY2sqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzI4Cittc2dpZCAiIgorIlxuIgorIk1vc3QgY29tbWFuZHMgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBpbnRlZ2VyIGFyZ3VtZW50IGsuICBEZWZhdWx0cyBpbiAiCisiYnJhY2tldHMuXG4iCisiU3RhciAoKikgaW5kaWNhdGVzIGFyZ3VtZW50IGJlY29tZXMgbmV3IGRlZmF1bHQuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMzNQorbXNnaWQgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0MworIywgYy1mb3JtYXQKK21zZ2lkICJcIiVzXCIgbGluZSAlZCIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTU3NgorbXNnaWQgIi4uLnNraXBwaW5nXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYwNQorbXNnaWQgIlJlZ3VsYXIgZXhwcmVzc2lvbiBib3RjaCIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjEzCittc2dpZCAiIgorIlxuIgorIlBhdHRlcm4gbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxNiB0ZXh0LXV0aWxzL3BnLmM6MTEyNyB0ZXh0LXV0aWxzL3BnLmM6MTI3OAorbXNnaWQgIlBhdHRlcm4gbm90IGZvdW5kIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2NzcKK21zZ2lkICJjYW4ndCBmb3JrXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMAorbXNnaWQgIi4uLlNraXBwaW5nIHRvIGZpbGUgIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjIKK21zZ2lkICIuLi5Ta2lwcGluZyBiYWNrIHRvIGZpbGUgIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMDAKK21zZ2lkICJMaW5lIHRvbyBsb25nIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwNDMKK21zZ2lkICJObyBwcmV2aW91cyBjb21tYW5kIHRvIHN1YnN0aXR1dGUgZm9yIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IG9kKDEpIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGhleGR1bXAoMSkuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJvZDogaGV4ZHVtcCgxKSBjb21wYXRpYmlsaXR5IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLSVjIG9wdGlvbiVzXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzNAorbXNnaWQgIjsgc2VlIHN0cmluZ3MoMSkuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBieXRlIGNvdW50IGZvciBjb252ZXJzaW9uIGNoYXJhY3RlciAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBjb252ZXJzaW9uIGNoYXJhY3RlciAlJSVzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMjMKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIlczogWmFicmFrs28gcGFtaepjaSFcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiAlcyBbLW51bWJlcl0gWy1wIHN0cmluZ10gWy1jZWZucnNdIFsrbGluZV0gWysvcGF0dGVybi9dIFtmaWxlc11cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzAKK21zZ2lkICIuLi5za2lwcGluZyBmb3J3YXJkXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MgorbXNnaWQgIi4uLnNraXBwaW5nIGJhY2t3YXJkXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjM5NAorbXNnaWQgIk5vIG5leHQgZmlsZSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk4Cittc2dpZCAiTm8gcHJldmlvdXMgZmlsZSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBSZWFkIGVycm9yIGZyb20gJXMgZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuZXhwZWN0ZWQgRU9GIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGVycm9yIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDQ0IHRleHQtdXRpbHMvcGcuYzoxMjE5IHRleHQtdXRpbHMvcGcuYzoxMjQ2Cittc2dpZCAiUkUgZXJyb3I6ICIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIwMQorbXNnaWQgIihFT0YpIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjI3IHRleHQtdXRpbHMvcGcuYzoxMjU0Cittc2dpZCAiTm8gcmVtZW1iZXJlZCBzZWFyY2ggc3RyaW5nIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzU4Cittc2dpZCAic2F2ZWQiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTcwNQorbXNnaWQgIihOZXh0IGZpbGU6ICIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjExMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyc3BhY2UiCittc2dzdHIgIk5pZSBtb79uYSBwcnp5ZHppZWxp5iBidWZvcmEgZGxhIGktd+p6s/N3IgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6NTggdGV4dC11dGlscy90YWlsZi5jOjkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiCittc2dzdHIgIm5pZSBtb79uYSBvdHdvcnp55iAlcyIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjk2IHRleHQtdXRpbHMvdGFpbGYuYzoyMTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IFwiJXNcIiIKK21zZ3N0ciAibmllIG1vv25hIG90d29yennmICVzIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgImluY29tcGxldGUgd3JpdGUgdG8gXCIlc1wiICh3cml0dGVuICV6ZCwgZXhwZWN0ZWQgJXpkKVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAobGltaXQgb2YgaW5vdGlmeSB3YXRjaGVzIHdhcyByZWFjaGVkKS4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiBuaWUgbW+/bmEgb3R3b3J6eeYgJXNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE5OSB0ZXh0LXV0aWxzL3RhaWxmLmM6MjAzCittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLWkgXSBbIC10VGVybSBdIGZpbGUuLi5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgInRyb3VibGUgcmVhZGluZyB0ZXJtaW5mbyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy91bC5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnB1dCBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGVuIGdyb3dpbmcgYnVmZmVyLlxuIgorbXNnc3RyICIiCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9wdF9CUi5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9wdF9CUi5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVkMzhkOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3B0X0JSLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9wdF9CUi5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3B0X0JSLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyODkyYTcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9wdF9CUi5wbwpAQCAtMCwwICsxLDEyNzMyIEBACisjIFBvcnR1Z3Vlc2UgdHJhbnNsYXRpb24gb2YgdGhlIHV0aWwtbGludXggbWVzc2FnZXMuCisjIENvcHlyaWdodCAoQykgMjAwMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQXJuYWxkbyBDYXJ2YWxobyBkZSBNZWxvIDxhY21lQGNvbmVjdGl2YS5jb20uYnI+LCAxOTk5LTIwMDAKKyMgUmljYXJkbyBTdGVmYW5pIDxyaWNhcmRvc0BmcmFuY2FuZXQuY29tLmJyPiwgMTk5OQorIyBNYXJjdXMgTW9yZWlyYSA8bWFyY3VzbXNAZnJiLmJyPgorIyBQYXVsbyBIZW5yaXF1ZSBSIFBpbmhlaXJvIDxudWxvQHN1bC5jb20uYnI+CisjIDxzdXBwb3J0QHR1cmJvbGludXguY29tPiwgMjAwMC4KKyMgQWx2YXJvIEFudHVuZXMgPGFsdmFyb0BuZXRwYXIuY29tLmJyPiwgMjAwMAorIyBSb2RyaWdvIFN0dWx6ZXIgTG9wZXMgPHJvZHJpZ29AY29uZWN0aXZhLmNvbS5icj4sIDIwMDEKKyMKKyMgRnJlZSByZWRpc3RyaWJ1dGlvbiBpcyBwZXJtaXR0ZWQuCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4IDIuMTFiXG4iCisiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPlxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEwLTAzLTIyIDA5OjM3KzAxMDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTA1LTI0IDE2OjAzLTAzOjAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBSb2RyaWdvIFN0dWx6ZXIgTG9wZXMgPHJvZHJpZ29AY29uZWN0aXZhLmNvbS5icj5cbiIKKyJMYW5ndWFnZS1UZWFtOiBCcmF6aWxpYW4gUG9ydHVndWVzZSA8bGRwLWJyQGJhemFyLmNvbmVjdGl2YS5jb20uYnI+XG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgorIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKKyJYLUdlbmVyYXRvcjogS0JhYmVsIDAuOFxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NjMKK21zZ2lkICJzZXQgcmVhZC1vbmx5IgorbXNnc3RyICJjb25maWd1cmFyIHNvbWVudGUgbGVpdHVyYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjcwCittc2dpZCAic2V0IHJlYWQtd3JpdGUiCittc2dzdHIgImNvbmZpZ3VyYXIgbGVpdHVyYS9ncmF2YefjbyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjc2Cittc2dpZCAiZ2V0IHJlYWQtb25seSIKK21zZ3N0ciAib2J0ZXIgc29tZW50ZSBsZWl0dXJhIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODIKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAib2J0ZXIgdGFtYW5obyBkZSBzZXRvciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4CisjLCBmdXp6eQorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJvYnRlciB0YW1hbmhvIGRlIHNldG9yIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6OTQKK21zZ2lkICJnZXQgbWluaW11bSBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTAwCittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwNgorIywgZnV6enkKK21zZ2lkICJnZXQgYWxpZ25tZW50IG9mZnNldCIKK21zZ3N0ciAidGFtYW5obyBkZSBpbm9kZSBpbnbhbGlkbyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExMgorIywgZnV6enkKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgIlNldG9yZXMgZXh0cmFzIHBvciBjaWxpbmRybzogIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTE4CisjLCBmdXp6eQorbXNnaWQgImdldCBibG9ja3NpemUiCittc2dzdHIgIm9idGVyIHRhbWFuaG8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMjUKKyMsIGZ1enp5Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAib2J0ZXIgdGFtYW5obyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzMQorbXNnaWQgImdldCAzMi1iaXQgc2VjdG9yIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IHNpemUgaW4gYnl0ZXMiCittc2dzdHIgIm9idGVyIHRhbWFuaG8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNDQKK21zZ2lkICJzZXQgcmVhZGFoZWFkIgorbXNnc3RyICJjb25maWd1cmFyIHJlYWRhaGVhZCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1MAorbXNnaWQgImdldCByZWFkYWhlYWQiCittc2dzdHIgIm9idGVyIHJlYWRhaGVhZCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1NworIywgZnV6enkKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgImNvbmZpZ3VyYXIgcmVhZGFoZWFkIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTYzCisjLCBmdXp6eQorbXNnaWQgImdldCBmaWxlc3lzdGVtIHJlYWRhaGVhZCIKK21zZ3N0ciAib2J0ZXIgcmVhZGFoZWFkIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTY3Cittc2dpZCAiZmx1c2ggYnVmZmVycyIKK21zZ3N0ciAiZGVzY2FycmVnYXIgYnVmZmVycyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgImxlciBub3ZhbWVudGUgdGFiZWxhIGRlIHBhcnRp5/VlcyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6XG4iCittc2dzdHIgIlVzbzoiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyAtLXJlcG9ydCBbZGV2aWNlc11cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICVzIFstdnwtcV0gY29tbWFuZHMgZGV2aWNlc1xuIgorbXNnc3RyICJVc286ICVzIFstVl0gWy12fC1xXSBjb21hbmRvcyBkaXNwb3NpdGl2b3NcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJBdmFpbGFibGUgY29tbWFuZHM6XG4iCittc2dzdHIgIkNvbWFuZG9zIGRpc3Bvbu12ZWlzOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImdldCBzaXplIGluIDUxMi1ieXRlIHNlY3RvcnMiCittc2dzdHIgIm9idGVyIHRhbWFuaG8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiJXM6IGNvbWFuZG8gZGVzY29uaGVjaWRvOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIGV4aWdlIHVtIGFyZ3VtZW50b1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6Mzc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgImJ1c2NhIGZhbGhvdSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdWNjZWVkZWQuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXM6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpb2N0bCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogZXJybyBkZSBsZWl0dXJhIGVtICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk8gICAgUkEgICBTU1ogICBCU1ogICBTdGFydFNlYyAgICAgICAgICAgIFNpemUgICBEZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAiVXNvOlxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJcdE5PVEU6IGVsdnR1bmUgb25seSB3b3JrcyB3aXRoIDIuNCBrZXJuZWxzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJwYXJzZSBlcnJvclxuIgorbXNnc3RyICJlcnJvIGRlIGJ1c2NhIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibWlzc2luZyBibG9ja2RldmljZSwgdXNlIC1oIGZvciBoZWxwXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJlbHZ0dW5lIGlzIG9ubHkgdXNlZnVsIG9uIG9sZGVyIGtlcm5lbHM7XG4iCisiZm9yIDIuNiB1c2UgSU8gc2NoZWR1bGVyIHN5c2ZzIHR1bmFibGVzIGluc3RlYWQuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIkZvcm1hdGFuZG8uLi4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo0OSBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJjb25jbHXtZG9cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlZlcmlmeWluZyAuLi4gIgorbXNnc3RyICJWZXJpZmljYW5kby4uLiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjcxCittc2dpZCAiUmVhZDogIgorbXNnc3RyICJMZXI6ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAiUHJvYmxlbWEgYW8gbGVyIG8gY2lsaW5kcm8gJWQ6IGVzcGVyYWRvICVkLCBsaWRvICVkXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiYmFkIGRhdGEgaW4gY3lsICVkXG4iCisiQ29udGludWluZyAuLi4gIgorbXNnc3RyICIiCisiRGFkb3MgaW524WxpZG9zIG5vIGNpbGluZHJvICVkXG4iCisiQ29udGludWFuZG8uLi4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo5NgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtbiBdIGRldmljZVxuIgorbXNnc3RyICJVc286ICVzIFsgLW4gXSBkaXNwb3NpdGl2b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTE4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODQKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE4MSBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTE0IGRpc2stdXRpbHMvbWtmcy5jOjUyCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODEyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3MgorIzogZGlzay11dGlscy9ta3N3YXAuYzo0ODcgbWlzYy11dGlscy9kZGF0ZS5jOjE3OSBtaXNjLXV0aWxzL3JlbmFtZS5jOjc5CisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE0NyBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxOTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzICglcylcbiIKK21zZ3N0ciAiJXMgZW0gJXNcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICIlczogbuNvIOkgdW0gZGlzcG9zaXRpdm8gZGUgZGlzcXVldGVzXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDIKK21zZ2lkICJDb3VsZCBub3QgZGV0ZXJtaW5lIGN1cnJlbnQgZm9ybWF0IHR5cGUiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgZGV0ZXJtaW5hciBvIHRpcG8gZGUgZm9ybWF0YefjbyBhdHVhbCIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlcy1zaWRlZCwgJWQgdHJhY2tzLCAlZCBzZWMvdHJhY2suIFRvdGFsIGNhcGFjaXR5ICVkIGtCLlxuIgorbXNnc3RyICIlcyBmYWNlcywgJWQgdHJpbGhhcywgJWQgc2V0b3Jlcy90cmlsaGEuIENhcGFjaWRhZGUgdG90YWwgZGUgJWQgS2IuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIkR1cGxhIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICJTaW1wbGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1odl0gWy14IGRpcl0gZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAteCBkaXIgICAgIGV4dHJhY3QgaW50byBkaXJcbiIKKyIgLXYgICAgICAgICBiZSBtb3JlIHZlcmJvc2VcbiIKKyIgZmlsZSAgICAgICBmaWxlIHRvIHRlc3RcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgIihQcvN4aW1vIGFycXVpdm86ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2NyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIm9wZW5wdHkgZmFsaG91XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgZmFpbGVkOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGRldmljZSBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgYSBibG9jayBkZXZpY2Ugb3IgZmlsZTogJXMiCittc2dzdHIgIiVzOiBu428g6SB1bSBkaXNwb3NpdGl2byBkZSBkaXNxdWV0ZXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4NCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI2Cittc2dpZCAiZmlsZSBsZW5ndGggdG9vIHNob3J0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGZhaWxlZDogJXMiCittc2dzdHIgIihQcvN4aW1vIGFycXVpdm86ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIwNworbXNnaWQgInN1cGVyYmxvY2sgbWFnaWMgbm90IGZvdW5kIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTYKKyMsIGZ1enp5Cittc2dpZCAidW5zdXBwb3J0ZWQgZmlsZXN5c3RlbSBmZWF0dXJlcyIKK21zZ3N0ciAiRGlnaXRlIG8gdGlwbyBkbyBzaXN0ZW1hIGRlIGFycXVpdm9zOiAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAiTvptZXJvIGRlIHNldG9yZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKKyMsIGZ1enp5Cittc2dpZCAiemVybyBmaWxlIGNvdW50IgorbXNnc3RyICJwYXJhIG8gYXJxdWl2byIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAiQXZpc286IGEgcGFydGnn428gJXMgc2UgZXN0ZW5kZSBhbOltIGRvIGZpbSBkbyBkaXNjb1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI0NgorbXNnaWQgInVuYWJsZSB0byB0ZXN0IENSQzogb2xkIGNyYW1mcyBmb3JtYXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3MiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzM5CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDc3IGxvZ2luLXV0aWxzL2NoZm4uYzo1MjkgbG9naW4tdXRpbHMvY2hzaC5jOjQzOQorIzogbWlzYy11dGlscy93aXBlZnMuYzoxNDEgc3lzLXV0aWxzL2N5dHVuZS5jOjMyMQorbXNnaWQgIm1hbGxvYyBmYWlsZWQiCittc2dzdHIgIm1hbGxvYyBmYWxob3UiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyOTcKKyMsIGZ1enp5Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICIsIGVycm8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjQKKyMsIGZ1enp5Cittc2dpZCAicm9vdCBpbm9kZSBpcyBub3QgZGlyZWN0b3J5IgorbXNnc3RyICJpbm9kZSByYWl6IG7jbyDpIHVtIGRpcmV083JpbyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM4NworbXNnaWQgImRhdGEgYmxvY2sgdG9vIGxhcmdlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVjb21wcmVzc2lvbiBlcnJvciAlcCglZCk6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgaG9sZSBhdCAlbGQgKCV6ZClcbiIKK21zZ3N0ciAiZGV2ZXJpYSBzZXIgKCVkLCAlZCwgJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjMgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAiZXNwYedvIHVzYWRvOiAlZCBieXRlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1zaXplICglbGQgdnMgJWxkKSBieXRlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBmYWlsZWQ6ICVzIgorbXNnc3RyICIoUHLzeGltbyBhcnF1aXZvOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxjaG93biBmYWlsZWQ6ICVzIgorbXNnc3RyICJtb3VudCBmYWxob3UiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNob3duIGZhaWxlZDogJXMiCittc2dzdHIgIm1vdW50IGZhbGhvdSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXRpbWUgZmFpbGVkOiAlcyIKK21zZ3N0ciAiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0OTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgIi9kZXY6IGNoZGlyKCkgZmFsaG91OiAlbSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTQKK21zZ2lkICJiYWQgZmlsZW5hbWUgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MjEKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGlub2RlIG9mZnNldCIKK21zZ3N0ciAidGFtYW5obyBkZSBpbm9kZSBpbnbhbGlkbyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUzNworbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NDAKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIHNpemUgYW5kIG5vbi16ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTcxCittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3NAorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICJlcnJvIGFvIGdyYXZhciAlczogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN5bWxpbmsgZmFpbGVkOiAlcyIKK21zZ3N0ciAiZnN5bmMgZmFsaG91IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWNpYWwgZmlsZSBoYXMgbm9uLXplcm8gb2Zmc2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjI1CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZm8gaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAic29ja2V0IGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvZ3VzIG1vZGU6ICVzICglbykiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAibW91bnQgZmFsaG91IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIHN0YXJ0ICglbGQpIDwgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBmaWxlIGRhdGEgb2Zmc2V0IgorbXNnc3RyICJpZCBpbnbhbGlkbzogJXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGFsb2NhciBidWZmZXIuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MjcKKyMsIGZ1enp5Cittc2dpZCAiY29tcGlsZWQgd2l0aG91dCAteCBzdXBwb3J0IgorbXNnc3RyICJ1bW91bnQ6IGNvbXBpbGFkbyBzZW0gc3Vwb3J0ZSBhIC1mXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1sYXJ2c21mXSAvZGV2L25hbWVcbiIKK21zZ3N0ciAiVXNvOiAlcyBbIC1sYXJ2c21mXSBkaXNwb3NpdGl2b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIGVzdOEgbW9udGFkby5cdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI1Cittc2dpZCAiRG8geW91IHJlYWxseSB3YW50IHRvIGNvbnRpbnVlIgorbXNnc3RyICJWb2PqIHJlYWxtZW50ZSBkZXNlamEgY29udGludWFyPyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgInZlcmlmaWNh5+NvIGFudWxhZGEuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiTvptZXJvIGRlIHpvbmEgbWVub3IgcXVlIEZJUlNUWk9ORSBubyBhcnF1aXZvIGAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiTvptZXJvIGRlIHpvbmEgbWFpb3Igb3UgaWd1YWwgYSBaT05FUyBubyBhcnF1aXZvIGAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozODAKK21zZ2lkICJSZW1vdmUgYmxvY2siCittc2dzdHIgIlJlbW92ZXIgYmxvY28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogdW5hYmxlIHRvIHNlZWsgdG8gYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIkVycm8gZGUgbGVpdHVyYTogbuNvIGZvaSBwb3Nz7XZlbCBidXNjYXIgYmxvY28gbm8gYXJxdWl2byAnIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiRXJybyBkZSBsZWl0dXJhOiBibG9jbyBkZWZlaXR1b3NvIG5vIGFycXVpdm8gJyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisiRXJybyBpbnRlcm5vOiB0ZW50YW5kbyBncmF2YXIgYmxvY28gZGVmZWl0dW9zby5cbiIKKyJTb2xpY2l0YefjbyBkZSBncmF2YefjbyBpZ25vcmFkYS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJidXNjYSBmYWxob3UgZW0gd3JpdGVfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiRXJybyBkZSBncmF2YefjbzogYmxvY28gZGVmZWl0dW9zbyBubyBhcnF1aXZvICciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICJidXNjYSBmYWxob3UgZW0gd3JpdGVfc3VwZXJfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgc3VwZXItYmxvY2siCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgZ3JhdmFyIHN1cGVyYmxvY28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1NgorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgZ3JhdmFyIG1hcGEgZGUgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1OAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBncmF2YXIgbWFwYSBkZSB6b25hIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGdyYXZhciBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU4NworbXNnaWQgInNlZWsgZmFpbGVkIgorbXNnc3RyICJidXNjYSBmYWxob3UiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5MSBkaXNrLXV0aWxzL21rZnMubWluaXguYzozOTkKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIGJ1ZmZlciBmb3Igc3VwZXJibG9jayIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBhbG9jYXIgYnVmZmVycyBwYXJhIG1hcGFzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBsZXIgc3VwZXJibG9jbyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjEyCittc2dpZCAiYmFkIG1hZ2ljIG51bWJlciBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAibvptZXJvIG3hZ2ljbyBpbnbhbGlkbyBubyBzdXBlcmJsb2NvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTQKK21zZ2lkICJPbmx5IDFrIGJsb2Nrcy96b25lcyBzdXBwb3J0ZWQiCittc2dzdHIgIlNvbWVudGUgMUsgYmxvY29zL3pvbmFzIHN1cG9ydGFkb3MiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJjYW1wbyBzX2ltYXBfYmxvY2tzIGluduFsaWRvIG5vIHN1cGVyYmxvY28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxOAorbXNnaWQgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJjYW1wbyBzX3ptYXBfYmxvY2tzIGluduFsaWRvIG5vIHN1cGVyYmxvY28iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyNQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIG1hcCIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhbG9jYXIgYnVmZmVyIHBhcmEgbWFwYSBkZSBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyOAorIywgZnV6enkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhbG9jYXIgYnVmZmVyIHBhcmEgbWFwYSBkZSBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzMworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhbG9jYXIgYnVmZmVyIHBhcmEgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzYKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBjb3VudCIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhbG9jYXIgYnVmZmVyIHBhcmEgY29udGFnZW0gZGUgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIGNvdW50IgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGFsb2NhciBidWZmZXIgcGFyYSBjb250YWdlbSBkZSB6b25hcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGxlciBtYXBhIGRlIGlub2RlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgbGVyIG1hcGEgZGUgem9uYXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlcyIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBsZXIgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIkF2aXNvOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgaW5vZGVzXG4iCittc2dzdHIgIiVsZCBpbm9kZXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgYmxvY2tzXG4iCittc2dzdHIgIiVsZCBibG9jb3NcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU0IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdGRhdGF6b25lPSVsZCAoJWxkKVxuIgorbXNnc3RyICJQcmltZWlyYSB6b25hIGRlIGRhZG9zID0gJWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiVGFtYW5obyBkYSB6b25hID0gJWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIlRhbWFuaG8gbeF4aW1vID0gJWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIkVzdGFkbyBkbyBzaXN0ZW1hIGRlIGFycXVpdm9zID0gJWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJuYW1lbGVuPSVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJDb21wcmltZW50byBkbyBub21lID0gJWRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjczIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgYnV0IHVzZWQgZm9yIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJJbm9kZSAlZCBtYXJjYWRvIGNvbW8gbuNvIHV0aWxpemFkbywgbWFzIHVzYWRvIHBlbG8gYXJxdWl2byAnIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI4Cittc2dpZCAiTWFyayBpbiB1c2UiCittc2dzdHIgIk1hcmNhIGVtIHVzbyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iCittc2dzdHIgIiB0ZW0gbW9kbyAlMDVvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcwNiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaW5vZGUgY291bnQgdG9vIGJpZy5cbiIKK21zZ3N0ciAiQXZpc286IGNvbnRhZ2VtIGRlIGlub2RlcyBncmFuZGUgZGVtYWlzLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAiaW5vZGUgcmFpeiBu428g6SB1bSBkaXJldPNyaW8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc4OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiTyBibG9jbyBq4SBmb2kgdXNhZG8uIEFnb3JhIG5vIGFycXVpdm8gYCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzkwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU1CisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTAKK21zZ2lkICJDbGVhciIKK21zZ3N0ciAiTGltcGFyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICInIGVzdOEgbWFyY2FkbyBjb21vIG7jbyB1dGlsaXphZG8uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiQ29ycmV0byIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiIGNvbnTpbSB1bSBu+m1lcm8gZGUgaW5vZGUgaW524WxpZG8gcGFyYSBvIGFycXVpdm8gJyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDQKK21zZ2lkICIgUmVtb3ZlIgorbXNnc3RyICIgUmVtb3ZlciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTkxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKK21zZ3N0ciAiOiBkaXJldPNyaW8gaW524WxpZG86ICcuJyBu428g6SBvIHByaW1laXJvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiOiBkaXJldPNyaW8gaW524WxpZG86ICcuLicgbuNvIOkgbyBzZWd1bmRvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTExOQorbXNnaWQgImludGVybmFsIGVycm9yIgorbXNnc3RyICJlcnJvIGludGVybm8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiOiBkaXJldPNyaW8gaW524WxpZG86IHRhbWFuaG8gPCAzMiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEzNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGJhZF96b25lIgorbXNnc3RyICJidXNjYSBmYWxob3UgZW0gYmFkX3pvbmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDUgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtb2RlIG5vdCBjbGVhcmVkLiIKK21zZ3N0ciAiTyBtb2RvIGRvIGlub2RlICVkIG7jbyBmb2kgbGltcG8uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbm90IHVzZWQsIG1hcmtlZCB1c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICIiCisiTyBpbm9kZSAlZCBu428gZXN04SBzZW5kbyB1c2FkbywgbWFzIGVzdOEgbWFyY2FkbyBjb21vIGVtIHVzbyBubyBiaXRtYXAuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiIgorIk8gaW5vZGUgJWQgZXN04SBzZW5kbyB1c2FkbywgbWFzIGVzdOEgbWFyY2FkbyBjb21vIG7jbyB1dGlsaXphZG8gbm8gYml0bWFwLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICJDb25maWd1cmFyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJbm9kZSAlZCAobW9kbyA9ICUwN28pLCBpX25saW5rcyA9ICVkLCBjb250YWRvcyA9ICVkLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIyCittc2dpZCAiU2V0IGlfbmxpbmtzIHRvIGNvdW50IgorbXNnc3RyICJDb25maWd1cmFyIGlfbmxpbmtzIHBhcmEgY29udGFnZW0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICJab25hICVkIG1hcmNhZGEgZW0gdXNvLCBtYXMgbmVuaHVtIGFycXVpdm8gYSB1c2EuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIkRlc21hcmNhciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiWm9uYSAlZDogJXMgZW0gdXNvLCBjb250YWRvcyA9ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbm90IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJab25hICVkOiAlcyBlbSB1c28sIGNvbnRhZG9zID0gJWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorbXNnaWQgImJhZCBpbm9kZSBzaXplIgorbXNnc3RyICJ0YW1hbmhvIGRlIGlub2RlIGluduFsaWRvIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjkxCittc2dpZCAiYmFkIHYyIGlub2RlIHNpemUiCittc2dzdHIgInRhbWFuaG8gZGUgaW5vZGUgdjIgaW524WxpZG8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMTcKK21zZ2lkICJuZWVkIHRlcm1pbmFsIGZvciBpbnRlcmFjdGl2ZSByZXBhaXJzIgorbXNnc3RyICLpIG5lY2Vzc+FyaW8gdW0gdGVybWluYWwgcGFyYSByZXBhcm9zIGludGVyYXRpdm9zIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzIxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAnJXMnIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiJXMgZXN04SBsaW1wbzsgc2VtIHZlcmlmaWNh5+NvLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcmNpbmcgZmlsZXN5c3RlbSBjaGVjayBvbiAlcy5cbiIKK21zZ3N0ciAiRm9y52FuZG8gdmVyaWZpY2Hn428gZG8gc2lzdGVtYSBkZSBhcnF1aXZvcyBlbSAlcy5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIG9uICVzIGlzIGRpcnR5LCBuZWVkcyBjaGVja2luZy5cbiIKK21zZ3N0ciAiTyBzaXN0ZW1hIGRlIGFycXVpdm9zIGVtICVzIGVzdOEgc3VqbzogcHJlY2lzYSBkZSB2ZXJpZmljYefjb1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2bGQgaW5vZGVzIHVzYWRvcyAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTZsZCB6b25lcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiJTZsZCB6b25hcyB1c2FkYXMgKCVsZCUlKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmQgcmVndWxhciBmaWxlc1xuIgorIiU2ZCBkaXJlY3Rvcmllc1xuIgorIiU2ZCBjaGFyYWN0ZXIgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGJsb2NrIGRldmljZSBmaWxlc1xuIgorIiU2ZCBsaW5rc1xuIgorIiU2ZCBzeW1ib2xpYyBsaW5rc1xuIgorIi0tLS0tLVxuIgorIiU2ZCBmaWxlc1xuIgorbXNnc3RyICIiCisiXG4iCisiJTZkIGFycXVpdm9zIHJlZ3VsYXJlc1xuIgorIiU2ZCBkaXJldPNyaW9zXG4iCisiJTZkIGFycXVpdm9zIGRlIGRpc3Bvc2l0aXZvcyBkZSBjYXJhY3RlcmVzXG4iCisiJTZkIGFycXVpdm9zIGRlIGRpc3Bvc2l0aXZvcyBkZSBibG9jb3NcbiIKKyIlNmQgdu1uY3Vsb3NcbiIKKyIlNmQgdu1uY3Vsb3Mgc2ltYvNsaWNvc1xuIgorIi0tLS0tLVxuIgorIiU2ZCBhcnF1aXZvc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiRklMRSBTWVNURU0gSEFTIEJFRU4gQ0hBTkdFRFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJPIFNJU1RFTUEgREUgQVJRVUlWT1MgRk9JIEFMVEVSQURPXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBvcGVuOiAlc1xuIgorbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNlZWsgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGVycm8gZGUgcHJvY3VyYSBlbSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGVycm8gZGUgbGVpdHVyYSBlbSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9yIGNvdW50OiAlZCwgc2VjdG9yIHNpemU6ICVkXG4iCittc2dzdHIgImNvbnRhZ2VtIGRlIHNldG9yOiAlZCwgdGFtYW5obyBkZSBzZXRvcjogJWRcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAiJXM6IG9w5+NvIGVycm8gZGUgcGFyc2VyXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKK21zZ3N0ciAiVXNvOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXZdIFstTiBuci1vZi1pbm9kZXNdIFstViB2b2x1bWUtbmFtZV1cbiIKKyIgICAgICAgWy1GIGZzbmFtZV0gZGV2aWNlIFtibG9jay1jb3VudF1cbiIKK21zZ3N0ciAiIgorIlVzbzogJXMgWy12XSBbLU4gbnItZGUtaW5vZGVzXSBbLVYgbm9tZS12b2x1bWVdXG4iCisiICAgICAgIFstRiBub21lIGRlIHNpc3QgYXJxdWl2b3NdIGRpc3Bvc2l0aXZvIFtjb250YWdlbS1kZS1ibG9jb3NdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAibm9tZSBkZSB2b2x1bWUgbXVpdG8gbG9uZ28iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzcKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAiZnNuYW1lIG5vbWUgbXVpdG8gbG9uZ28iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIHZlcmlmaWNhciBzdGF0dXMgZGUgZGlzcG9zaXRpdm8gJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIG7jbyDpIHVtIGRpc3Bvc2l0aXZvIGRlIGJsb2NvcyBlc3BlY2lhbCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE3MSBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMiCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBzaXplIG9mICVzIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIG9idGVyIG8gdGFtYW5obyBkZSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgInBhcuJtZXRyb3MgZGUgYmxvY28gbXVpdG8gZ3JhbmRlcywgbeF4aW1vIOkgJWx1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjAyCittc2dpZCAidG9vIG1hbnkgaW5vZGVzIC0gbWF4IGlzIDUxMiIKK21zZ3N0ciAibXVpdG9zIGlub2RlcyAtIG3heGltbyDpIDUxMiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAicG91Y28gZXNwYedvLCDpIG5lY2Vzc+FyaW8gcGVsbyBtZW5vcyAlbHUgYmxvY29zIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjIzIGZkaXNrL2ZkaXNrLmM6MjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2U6ICVzXG4iCittc2dzdHIgIkRpc3Bvc2l0aXZvOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlZvbHVtZTogPCUtNnM+XG4iCittc2dzdHIgIlZvbHVtZTogPCUtNnM+XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRlNuYW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiRlNuYW1lOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIlRhbUJsb2NvOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluIDEgYmxvY2spXG4iCittc2dzdHIgIklub2RlczogJWQgKGVtIDEgYmxvY28pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluICVsbGQgYmxvY2tzKVxuIgorbXNnc3RyICJJbm9kZXM6ICVkIChlbSAlbGQgYmxvY29zKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJCbG9ja3M6ICVsbGRcbiIKK21zZ3N0ciAiQmxvY29zOiAlbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAiSW5vZGUgZmltOiAlZCwgRGFkb3MgZmltOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM5Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzdXBlcmJsb2NrIgorbXNnc3RyICJlcnJvIGdyYXZhbmRvIHN1cGVyYmxvY28iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNTkKK21zZ2lkICJlcnJvciB3cml0aW5nIHJvb3QgaW5vZGUiCittc2dzdHIgImVycm8gZ3JhdmFuZG8gaW5vZGUgcm9vdCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NAorbXNnaWQgImVycm9yIHdyaXRpbmcgaW5vZGUiCittc2dzdHIgImVycm8gZ3JhdmFuZG8gaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAiZXJybyBkZSBidXNjYSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3MworbXNnaWQgImVycm9yIHdyaXRpbmcgLiBlbnRyeSIKK21zZ3N0ciAiZXJybyBncmF2YW5kbyAuIGVudHJhZGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzcKK21zZ2lkICJlcnJvciB3cml0aW5nIC4uIGVudHJ5IgorbXNnc3RyICJlcnJvIGdyYXZhbmRvIC4uIGVudHJhZGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2xvc2luZyAlcyIKK21zZ3N0ciAiZXJybyBmZWNoYW5kbyAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICIiCisiVXNvOiBta2ZzIFstVl0gWy10IHRpcG9TaXN0QXJxXSBbb3Dn9WVzLXNpc3RBcnFdIGRpc3Bvc2l0aXZvIFt0YW1hbmhvXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo4OCBkaXNrLXV0aWxzL21rZnMuYzo5NiBmZGlzay9jZmRpc2suYzozNTMKKyM6IGdldG9wdC9nZXRvcHQuYzo4NiBnZXRvcHQvZ2V0b3B0LmM6OTYgbG9naW4tdXRpbHMvd2FsbC5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT3V0IG9mIG1lbW9yeSFcbiIKK21zZ3N0ciAiJXM6IG1lbfNyaWEgaW5zdWZpY2llbnRlIVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rZnMgKCVzKVxuIgorbXNnc3RyICJta2ZzIHZlcnPjbyAlcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImZpbGVzeXN0ZW0gdG9vIGJpZy4gIEV4aXRpbmcuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBndWVzdGltYXRlIG9mIHJlcXVpcmVkIHNpemUgKHVwcGVyIGJvdW5kKSBpcyAlbGxkTUIsIGJ1dCBtYXhpbXVtICIKKyJpbWFnZSBzaXplIGlzICV1TUIuICBXZSBtaWdodCBkaWUgcHJlbWF0dXJlbHkuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg4MAorbXNnaWQgIlJPTSBpbWFnZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg5NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW5jbHVkaW5nOiAlc1xuIgorbXNnc3RyICJpZCBpbnbhbGlkbzogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXJlY3RvcnkgZGF0YTogJXpkIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgYy1mb3JtYXQKK21zZ2lkICJFdmVyeXRoaW5nOiAlemQga2lsb2J5dGVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJlc3Bh528gdXNhZG86ICVkIGJ5dGVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICJBdmlzbzogY29udGFnZW0gZGUgaW5vZGVzIGdyYW5kZSBkZW1haXMuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIHNpemVzIHRydW5jYXRlZCB0byAlbHVNQiAobWludXMgMSBieXRlKS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiB1aWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ2lkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIlVzbzogJXMgWy1jIHwgLWwgTm9tZUFycXVpdm9dIFstblhYXSBbLWlYWF0gZGlzcG9zaXRpdm8gW2Jsb2Nvc11cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2UgYSBmaWxlc3lzdGVtIGhlcmUhIgorbXNnc3RyICIlcyBlc3ThIG1vbnRhZG87IG7jbyBjcmlhcuEgdW0gc2lzdGVtYSBkZSBhcnF1aXZvcyBhcXVpISIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTg4Cittc2dpZCAic2VlayB0byBib290IGJsb2NrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgImJ1c2NhIGRlIGJsb2NvIGRlIGJvb3QgZmFsaG91IGVtIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkwCittc2dpZCAidW5hYmxlIHRvIGNsZWFyIGJvb3Qgc2VjdG9yIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGxpbXBhciBvIHNldG9yIGRlIGJvb3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MgorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAiYnVzY2EgZmFsaG91IGVtIHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk2Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBncmF2YXIgbWFwYSBkZSBpbm9kZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBncmF2YXIgbWFwYSBkZSB6b25hcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjAwCittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBncmF2YXIgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgImdyYXZh5+NvIGZhbGhvdSBlbSB3cml0ZV9ibG9jayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjE3IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjI5MQorIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MzQwCittc2dpZCAidG9vIG1hbnkgYmFkIGJsb2NrcyIKK21zZ3N0ciAibvptZXJvIGV4Y2Vzc2l2byBkZSBibG9jb3MgZGVmZWl0dW9zb3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgIm7jbyBo4SBibG9jb3Mgc2VtIHByb2JsZW1hcyBzdWZpY2llbnRlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQwCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgYWxvY2FyIGJ1ZmZlcnMgcGFyYSBtYXBhcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQ5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGFsb2NhciBidWZmZXJzIHBhcmEgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk1heHNpemU9JWxkXG4iCisiXG4iCittc2dzdHIgIiIKKyJUYW1hbmhvIG3heGltbyA9ICVsZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NjkKK21zZ2lkICJzZWVrIGZhaWxlZCBkdXJpbmcgdGVzdGluZyBvZiBibG9ja3MiCittc2dzdHIgImJ1c2NhIGZhbGhvdSBkdXJhbnRlIHRlc3RlIGRlIGJsb2NvcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICJWYWxvcmVzIGVzdHJhbmhvcyBlbSBkb19jaGVjazogcHJvdmF2ZWxtZW50ZSBlcnJvc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MDggZGlzay11dGlscy9ta3N3YXAuYzozMTUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBjaGVja19ibG9ja3MiCittc2dzdHIgImJ1c2NhIGZhbGhvdSBlbSBjaGVja19ibG9ja3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUxNworbXNnaWQgImJhZCBibG9ja3MgYmVmb3JlIGRhdGEtYXJlYTogY2Fubm90IG1ha2UgZnMiCittc2dzdHIgIiIKKyJibG9jb3MgZGVmZWl0dW9zb3MgYW50ZXMgZGEg4XJlYSBkZSBkYWRvczogbuNvIOkgcG9zc+12ZWwgY3JpYXIgc2lzdGVtYSBkZSAiCisiYXJxdWl2b3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyMyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgYmFkIGJsb2Nrc1xuIgorbXNnc3RyICIlZCBibG9jb3MgZGVmZWl0dW9zb3NcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIGJsb2NrXG4iCittc2dzdHIgInVtIGJsb2NvIGRlZmVpdHVvc29cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgYXJxdWl2byBkZSBibG9jb3MgZGVmZWl0dW9zb3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWRibG9jayBudW1iZXIgaW5wdXQgZXJyb3Igb24gbGluZSAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0MAorIywgZnV6enkKK21zZ2lkICJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBsZXIgYSB1bmlkYWRlIGRlIGRpc2NvIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgImVycm8gZGUgc3RydG9sOiBu+m1lcm8gZGUgYmxvY29zIG7jbyBlc3BlY2lmaWNhZG8iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBzdGF0ICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzZWN0b3Igc2l6ZSBmb3IgJXMiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgb2J0ZXIgbyB0YW1hbmhvIGRlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgb2J0ZXIgbyB0YW1hbmhvIGRlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICJu428gc2Vy4SB0ZW50YWRvIGNyaWFyIHNpc3RlbWEgZGUgYXJxdWl2b3MgZW0gJyVzJyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjY1CisjLCBmdXp6eQorbXNnaWQgIm51bWJlciBvZiBibG9ja3MgdG9vIHNtYWxsIgorbXNnc3RyICJO+m1lcm8gZGUgc2V0b3JlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICJUYW1hbmhvIGRlIHDhZ2luYSBlc3BlY2lmaWNhZG8gcGVsbyB1c3XhcmlvICVkIGluduFsaWRvXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWQsIGluc3RlYWQgb2YgdGhlIHN5c3RlbSB2YWx1ZSAlZFxuIgorbXNnc3RyICIiCisiVXNhbmRvIHRhbWFuaG8gZGUgcOFnaW5hIGVzcGVjaWZpY2FkbyBwZWxvIHVzdeFyaW8gJWQsIGVtIHZleiBkb3MgdmFsb3JlcyBkbyAiCisic2lzdGVtYSAlZC8lZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICJMYWJlbCB3YXMgdHJ1bmNhdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICJy83R1bG8iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHV1aWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI4MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1wUEFHRVNaXSBbLUwgbGFiZWxdIFstVSBVVUlEXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiVXNvOiAlcyBbLWNdIFstdjB8LXYxXSBbLXBUYW1Q4WddIGRpc3Bvc2l0aXZvIFtibG9jb3NdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICJu+m1lcm8gZXhjZXNzaXZvIGRlIHDhZ2luYXMgaW524WxpZGFzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiTWVt83JpYSBpbnN1ZmljaWVudGUiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICJ1bWEgcOFnaW5hIGluduFsaWRhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVkIHDhZ2luYXMgaW524WxpZGFzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDAyIGRpc2stdXRpbHMvbWtzd2FwLmM6NDM5IGRpc2stdXRpbHMvbWtzd2FwLmM6NjU5Cittc2dpZCAidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCByZWJvYmluYXIgbyBkaXNwb3NpdGl2byBkZSBwZXJtdXRhIChzd2FwKSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIG5ldyBsaWJibGtpZCBwcm9iZSIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBhbG9jYXIgYnVmZmVycyBwYXJhIGlub2RlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTUKK21zZ2lkICJ1bmFibGUgdG8gYXNzaWduIGRldmljZSB0byBsaWJsa2lkIHByb2JlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBlcmFzZSBib290Yml0cyBzZWN0b3JzIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGxpbXBhciBvIHNldG9yIGRlIGJvb3QiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogd2FybmluZzogZG9uJ3QgZXJhc2UgYm9vdGJpdHMgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgICglcyBwYXJ0aXRpb24gdGFibGUgZGV0ZWN0ZWQpLiAiCittc2dzdHIgIiAgIHAgICBtb3N0cmEgYSB0YWJlbGEgZGUgcGFydGnn9WVzIEJTRCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgb24gd2hvbGUgZGlzay4gIgorbXNnc3RyICIgICBzICAgbW9zdHJhIG8gcvN0dWxvIGRvIGRpc2NvIGNvbXBsZXRvIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoY29tcGlsZWQgd2l0aG91dCBsaWJibGtpZCkuICIKK21zZ3N0ciAiICAgcyAgIG1vc3RyYSBvIHLzdHVsbyBkbyBkaXNjbyBjb21wbGV0byIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTEkczogd2FybmluZzogaWdub3JlIC1VIChVVUlEcyBhcmUgdW5zdXBwb3J0ZWQgYnkgJTEkcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IHN1cHBvcnQgc3dhcHNwYWNlIHZlcnNpb24gJWQuXG4iCittc2dzdHIgIiVzIC0gZXJybzogdmVyc+NvICVkIGRlc2NvbmhlY2lkYVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0OAorIywgZnV6enkKK21zZ2lkICJlcnJvcjogVVVJRCBwYXJzaW5nIGZhaWxlZCIKK21zZ3N0ciAiRXJybyBubyBmZWNoYW1lbnRvIGRlICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIKK21zZ3N0ciAiJXMgLSBlcnJvOiBuZW5odW0gbHVnYXIgcGFyYSBhdGl2YXIgcGVybXV0YSAoc3dhcCk/XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHNpemUgJWxsdSBLaUIgaXMgbGFyZ2VyIHRoYW4gZGV2aWNlIHNpemUgJWxsdSBLaUJcbiIKK21zZ3N0ciAiJXM6IGVycm8gLSB0YW1hbmhvICVsZCDpIG1haW9yIGRvIHF1ZSBvIHRhbWFuaG8gZG8gZGlzcG9zaXRpdm8gJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc3dhcCBhcmVhIG5lZWRzIHRvIGJlIGF0IGxlYXN0ICVsZCBLaUJcbiIKK21zZ3N0ciAiJXMgLSBlcnJvOiBhIOFyZWEgZGUgcGVybXV0YSAoc3dhcCkgcHJlY2lzYSB0ZXIgcGVsbyBtZW5vcyAlbGQga0JcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YXJuaW5nOiB0cnVuY2F0aW5nIHN3YXAgYXJlYSB0byAlbGx1IEtpQlxuIgorbXNnc3RyICIlcyAtLSBhdmlzbzogcmVkdXppbmRvIOFyZWEgZGUgcGVybXV0YSAoc3dhcCkgcGFyYSAlbGQga0JcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogd2lsbCBub3QgdHJ5IHRvIG1ha2Ugc3dhcGRldmljZSBvbiAnJXMnXG4iCittc2dzdHIgIk7jbyBzZXLhIHRlbnRhZG8gY3JpYXIgZGlzcG9zaXRpdm8gZGUgcGVybXV0YSAoc3dhcCkgZW0gJyVzJyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogJXMgaXMgbW91bnRlZDsgd2lsbCBub3QgbWFrZSBzd2Fwc3BhY2UuXG4iCittc2dzdHIgIiVzIGVzdOEgbW9udGFkbzsgbuNvIGNyaWFy4SB1bSBzaXN0ZW1hIGRlIGFycXVpdm9zIGFxdWkhIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBjb25maWd1cmFyIGVzcGHnbyBkZSBwZXJtdXRhIChzd2FwKTogaWxlZ+12ZWwiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIHVwIHN3YXBzcGFjZSB2ZXJzaW9uIDEsIHNpemUgPSAlbGx1IEtpQlxuIgorbXNnc3RyICJDb25maWd1cmFuZG8gZXNwYedvIGRlIHBlcm11dGEgKHN3YXApIHZlcnPjbyAlZCwgdGFtYW5obyA9ICVsZCBieXRlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gd3JpdGUgc2lnbmF0dXJlIHBhZ2U6ICVzIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGdyYXZhciBhIHDhZ2luYSBkZSBhc3NpbmF0dXJhIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY3MworbXNnaWQgImZzeW5jIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMgZmFsaG91IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBtYXRjaHBhdGhjb24oKSIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBzdGF0ICVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgZ3JhdmFyIGlub2RlcyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTUKK21zZ2lkICJjb3VsZG4ndCBjb21wdXRlIHNlbGludXggY29udGV4dCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjcwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byByZWxhYmVsICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIHJlbm9tZWFyICVzIHBhcmEgJXM6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgICVzICIKK21zZ3N0ciAiVXNvOiIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGJsb3F1ZWFyIG8gYXJxdWl2byBkZSBibG9xdWVpbyAlczogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICJBdmlzbzogJXMgbuNvIOkgdW0gZGlzcG9zaXRpdm8gZGUgYmxvY29zXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBtYXN0ZXIgcmF3IGRldmljZSAnIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIHZlcmlmaWNhciBzdGF0dXMgZGUgZGlzcG9zaXRpdm8gJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgdmVyaWZpY2FyIHN0YXR1cyBkZSBkaXNwb3NpdGl2byAlcyIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iCittc2dzdHIgIi9kZXYvJXMgbuNvIOkgdW0gZGlzcG9zaXRpdm8gZGUgY2FyYWN0ZXJlcyIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIHJhdyBkZXZcbiIKK21zZ3N0ciAiJXMgbuNvIOkgdW0gZGlzcG9zaXRpdm8gZGUgYmxvY29zIGVzcGVjaWFsIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBxdWVyeWluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBzZXR0aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICJlcnJvIGFvIGdyYXZhciAlczogJXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM3OCBmZGlzay9jZmRpc2suYzoyMDgzCittc2dpZCAiVW51c2FibGUiCittc2dzdHIgIkludXRpbGl64XZlbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgwIGZkaXNrL2NmZGlzay5jOjIwODUKK21zZ2lkICJGcmVlIFNwYWNlIgorbXNnc3RyICJFc3Bh528gbGl2cmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MworbXNnaWQgIkxpbnV4IGV4dDIiCittc2dzdHIgIkxpbnV4IGV4dDIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NQorIywgZnV6enkKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9jZmRpc2suYzozODcKKyMsIGZ1enp5Cittc2dpZCAiTGludXggWEZTIgorbXNnc3RyICJMaW51eCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5CisjLCBmdXp6eQorbXNnaWQgIkxpbnV4IEpGUyIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorIywgZnV6enkKK21zZ2lkICJMaW51eCBSZWlzZXJGUyIKK21zZ3N0ciAiTGludXggbmF0aXZhIgorCisjOiBmZGlzay9jZmRpc2suYzozOTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NworbXNnaWQgIkxpbnV4IgorbXNnc3RyICJMaW51eCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk2Cittc2dpZCAiT1MvMiBIUEZTIgorbXNnc3RyICJIUEZTIGRvIE9TLzIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5OAorbXNnaWQgIk9TLzIgSUZTIgorbXNnc3RyICJJRlMgZG8gT1MvMiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDAyCittc2dpZCAiTlRGUyIKK21zZ3N0ciAiTlRGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaGFzIGJlZW4gY2hhbmdlZC5cbiIKK21zZ3N0ciAiTyBkaXNjbyBmb2kgYWx0ZXJhZG8uXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIlJlaW5pY2lhbGl6ZSBvIHNpc3RlbWEgcGFyYSBhc3NlZ3VyYXIgcXVlIGEgdGFiZWxhIGRlIHBhcnRp5/VlcyBzZWphICIKKyJhdHVhbGl6YWRhIGNvcnJldGFtZW50ZS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBVklTTzogU2Ugdm9j6iB0aXZlciBjcmlhZG8gb3UgYWx0ZXJhZG8gcXVhbHF1ZXJcbiIKKyJwYXJ0aefjbyBET1MgNi54LCBjb25zdWx0ZSBhIHDhZ2luYSBkZSBtYW51YWxcbiIKKyJkbyBjZmRpc2sgcGFyYSBvYnRlciBpbmZvcm1h5/VlcyBhZGljaW9uYWlzLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTYKK21zZ2lkICJGQVRBTCBFUlJPUiIKK21zZ3N0ciAiRVJSTyBGQVRBTCIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE3Cittc2dpZCAiUHJlc3MgYW55IGtleSB0byBleGl0IGNmZGlzayIKK21zZ3N0ciAiUHJlc3Npb25lIHF1YWxxdWVyIHRlY2xhIHBhcmEgc2FpciBkbyBjZmRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NCBmZGlzay9jZmRpc2suYzo1NzIKK21zZ2lkICJDYW5ub3Qgc2VlayBvbiBkaXNrIGRyaXZlIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIHJlYWxpemFyIGJ1c2NhIG5hIHVuaWRhZGUgZGUgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgbGVyIGEgdW5pZGFkZSBkZSBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgZ3JhdmFyIG5hIHVuaWRhZGUgZGUgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjkxNworbXNnaWQgIlRvbyBtYW55IHBhcnRpdGlvbnMiCittc2dzdHIgIk76bWVybyBleGNlc3Npdm8gZGUgcGFydGnn9WVzIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiQSBwYXJ0aefjbyBjb21l52EgYW50ZXMgZG8gc2V0b3IgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTI3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJBIHBhcnRp5+NvIHRlcm1pbmEgYW50ZXMgZG8gc2V0b3IgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTMyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiQSBwYXJ0aefjbyBjb21l52EgZGVwb2lzIGRvIGZpbSBkbyBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTM3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIkEgcGFydGnn428gc2UgZXN0ZW5kZSBhdOkgZGVwb2lzIGRvIGZpbSBkbyBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY2Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG5vdCBpbiBkaXNrIG9yZGVyIgorbXNnc3RyICJwYXJ0aef1ZXMgbPNnaWNhcyBmb3JhIGRhIG9yZGVtIGRvIGRpc2NvIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjkKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAicGFydGnn9WVzIGzzZ2ljYXMgc29icmVwb3N0YXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJwYXJ0aef1ZXMgbPNnaWNhcyBhdW1lbnRhZGFzIHNvYnJlcG9zdGFzIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICIhISEhIEVycm8gaW50ZXJubyBhbyBjcmlhciB1bmlkYWRlIGzzZ2ljYSBzZW0gcGFydGnn428gZXN0ZW5kaWRhICEhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMTQgZmRpc2svY2ZkaXNrLmM6MTAyNgorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxvZ2ljYWwgZHJpdmUgaGVyZSAtLSB3b3VsZCBjcmVhdGUgdHdvIGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiIKKyJO428g6SBwb3Nz7XZlbCBjcmlhciB1bmlkYWRlIGzzZ2ljYSBhcXVpIC0tIGNyaWFyaWEgZHVhcyBwYXJ0aef1ZXMgZXN0ZW5kaWRhcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICJJdGVtIGRlIG1lbnUgbG9uZ28gZGVtYWlzLiBPIG1lbnUgcG9kZSBmaWNhciBjb20gYXNwZWN0byBlc3RyYW5oby4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEyMjQKKyMsIGZ1enp5Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiTWVudSBzZW0gZGlyZefjby4gQXNzdW1pbmRvIGhvcml6b250YWwgY29tbyBwYWRy428uIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzU2Cittc2dpZCAiSWxsZWdhbCBrZXkiCittc2dzdHIgIlRlY2xhIGlsZWdhbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM3OQorbXNnaWQgIlByZXNzIGEga2V5IHRvIGNvbnRpbnVlIgorbXNnc3RyICJQcmVzc2lvbmUgdW1hIHRlY2xhIHBhcmEgY29udGludWFyIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NgorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIlByaW1hcnkiCittc2dzdHIgIlByaW3hcmlhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2Cittc2dpZCAiQ3JlYXRlIGEgbmV3IHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJDcmlhIHVtYSBub3ZhIHBhcnRp5+NvIHByaW3hcmlhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgIkzzZ2ljYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNworbXNnaWQgIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiQ3JpYSB1bWEgbm92YSBwYXJ0aefjbyBs82dpY2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MyBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiQ2FuY2VsIgorbXNnc3RyICJDYW5jZWxhciIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICJO428gY3JpYXIgdW1hIHBhcnRp5+NvIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiISEhIEVycm8gaW50ZXJubyAhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiVGFtYW5obyAoZW0gTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIklu7WNpbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgYmVnaW5uaW5nIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkFkaWNpb25hciBwYXJ0aefjbyBubyBpbu1jaW8gZG8gZXNwYedvIGxpdnJlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiRW5kIgorbXNnc3RyICJGaW0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJBZGljaW9uYXIgcGFydGnn428gbm8gZmluYWwgZG8gZXNwYedvIGxpdnJlIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTAwCittc2dpZCAiTm8gcm9vbSB0byBjcmVhdGUgdGhlIGV4dGVuZGVkIHBhcnRpdGlvbiIKK21zZ3N0ciAiRXNwYedvIGluc3VmaWNpZW50ZSBwYXJhIGNyaWHn428gZGUgcGFydGnn428gZXN0ZW5kaWRhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc0CisjLCBmdXp6eQorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAibmVuaHVtYSB0YWJlbGEgZGUgcGFydGnn9WVzIHByZXNlbnRlLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc4CisjLCBmdXp6eQorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiTW9zdHJhciB0YWJlbGEgZGUgcGFydGnn9WVzIG5hIHRlbGEgb3UgaW1wcmltaXIgZW0gdW0gYXJxdWl2byIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU4OAorbXNnaWQgIkJhZCBzaWduYXR1cmUgb24gcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJBc3NpbmF0dXJhIGluduFsaWRhIG5hIHRhYmVsYSBkZSBwYXJ0aef1ZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTIKKyMsIGZ1enp5Cittc2dpZCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIKK21zZ3N0ciAibmVuaHVtYSB0YWJlbGEgZGUgcGFydGnn9WVzIHByZXNlbnRlLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjQyCittc2dpZCAiWW91IHNwZWNpZmllZCBtb3JlIGN5bGluZGVycyB0aGFuIGZpdCBvbiBkaXNrIgorbXNnc3RyICIiCisiRm9yYW0gZXNwZWNpZmljYWRvcyBtYWlzIGNpbGluZHJvcyBkbyBxdWUgYSBxdWFudGlkYWRlIHF1ZSBjYWJlIG5vIGRpc2NvIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc0Cittc2dpZCAiQ2Fubm90IG9wZW4gZGlzayBkcml2ZSIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhYnJpciBhIHVuaWRhZGUgZGUgZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzYgZmRpc2svY2ZkaXNrLmM6MTg2NQorbXNnaWQgIk9wZW5lZCBkaXNrIHJlYWQtb25seSAtIHlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gd3JpdGUiCittc2dzdHIgIkRpc2NvIGFiZXJ0byBzb21lbnRlIHBhcmEgbGVpdHVyYSAtIHZvY+ogbuNvIHRlbSBwZXJtaXNz428gcGFyYSBncmF2YXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2ODcKK21zZ2lkICIiCisiV2FybmluZyEhICBVbnN1cHBvcnRlZCBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZC4gVXNlIEdOVSBQYXJ0ZWQuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MDYKK21zZ2lkICJDYW5ub3QgZ2V0IGRpc2sgc2l6ZSIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBvYnRlciBvIHRhbWFuaG8gZG8gZGlzY28iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MzIKK21zZ2lkICJCYWQgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIlBhcnRp5+NvIHByaW3hcmlhIGluduFsaWRhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzYyCittc2dpZCAiQmFkIGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICJQYXJ0aefjbyBs82dpY2EgaW524WxpZGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4NzcKK21zZ2lkICJXYXJuaW5nISEgIFRoaXMgbWF5IGRlc3Ryb3kgZGF0YSBvbiB5b3VyIGRpc2shIgorbXNnc3RyICJBdmlzbyEhIElzdG8gcG9kZSBkZXN0cnVpciBkYWRvcyBleGlzdGVudGVzIG5vIGRpc2NvISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4MQorIywgZnV6enkKK21zZ2lkICIiCisiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzaz8gKHllcyBvciBubyk6ICIKK21zZ3N0ciAiIgorIlRlbSBjZXJ0ZXphIGRlIHF1ZSBkZXNlamEgZ3JhdmFyIGEgdGFiZWxhIGRlIHBhcnRp5/VlcyBubyBkaXNjbz8gKHNpbSBvdSAiCisibmFvKToiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODcKK21zZ2lkICJubyIKK21zZ3N0ciAibmFvIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg5Cittc2dpZCAiRGlkIG5vdCB3cml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiQSB0YWJlbGEgZGUgcGFydGnn9WVzIE7DTyBmb2kgZ3JhdmFkYSBubyBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5MQorbXNnaWQgInllcyIKK21zZ3N0ciAic2ltIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk1Cittc2dpZCAiUGxlYXNlIGVudGVyIGB5ZXMnIG9yIGBubyciCittc2dzdHIgIlJlc3BvbmRhIGBzaW0nIG91IGBuYW8nIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk5Cittc2dpZCAiV3JpdGluZyBwYXJ0aXRpb24gdGFibGUgdG8gZGlzay4uLiIKK21zZ3N0ciAiR3JhdmFuZG8gdGFiZWxhIGRlIHBhcnRp5/VlcyBubyBkaXNjby4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNCBmZGlzay9jZmRpc2suYzoxOTI4Cittc2dpZCAiV3JvdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIkEgdGFiZWxhIGRlIHBhcnRp5/VlcyBmb2kgZ3JhdmFkYSBubyBkaXNjbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNgorIywgZnV6enkKK21zZ2lkICIiCisiV3JvdGUgcGFydGl0aW9uIHRhYmxlLCBidXQgcmUtcmVhZCB0YWJsZSBmYWlsZWQuICBSdW4gcGFydHByb2JlKDgpLCBrcGFydHgiCisiKDgpIG9yIHJlYm9vdCB0byB1cGRhdGUgdGFibGUuIgorbXNnc3RyICIiCisiVGFiZWxhIGRlIHBhcnRp5/VlcyBncmF2YWRhLCBtYXMgYSByZWxlaXR1cmEgZGEgdGFiZWxhIGZhbGhvdS4gUmVpbmljaWFsaXplICIKKyJwYXJhIGF0dWFsaXphciBhIHRhYmVsYS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIk7jbyBleGlzdGVtIHBhcnRp5/VlcyBwcmlt4XJpYXMgbWFyY2FkYXMgY29tbyBpbmljaWFsaXrhdmVpcy4gTUJSIERPUyBu428gIgorInBvZGUgaW5pY2lhbGl6YXIgaXNzby4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJNYWlzIGRlIHVtYSBwYXJ0aefjbyBwcmlt4XJpYSBlc3ThIG1hcmNhZGEgY29tbyBpbmljaWFsaXrhdmVsLiBNQlIgRE9TIG7jbyAiCisicG9kZSBpbmljaWFsaXphciBpc3NvLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTk5NiBmZGlzay9jZmRpc2suYzoyMTE1IGZkaXNrL2NmZGlzay5jOjIxOTkKK21zZ2lkICJFbnRlciBmaWxlbmFtZSBvciBwcmVzcyBSRVRVUk4gdG8gZGlzcGxheSBvbiBzY3JlZW46ICIKK21zZ3N0ciAiRGlnaXRlIHVtIG5vbWUgZGUgYXJxdWl2byBvdSBwcmVzc2lvbmUgRU5URVIgcGFyYSBleGliaXIgbmEgdGVsYTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgbyBhcnF1aXZvICclcyciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXNcbiIKK21zZ3N0ciAiVW5pZGFkZSBkZSBkaXNjbzogJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxOAorbXNnaWQgIlNlY3RvciAwOlxuIgorbXNnc3RyICJTZXRvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2V0b3IgJWQ6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDUKK21zZ2lkICIgICBOb25lICAgIgorbXNnc3RyICIgIE5lbmh1bSAgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ3Cittc2dpZCAiICAgUHJpL0xvZyIKK21zZ3N0ciAiICAgUHJpL2zzZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0OQorbXNnaWQgIiAgIFByaW1hcnkiCittc2dzdHIgIiAgIFByaW3hcmlhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiICAgTPNnaWNhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICJEZXNjb25oZWNpZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTUgZmRpc2svY2ZkaXNrLmM6MjU2MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkKK21zZ2lkICJCb290IgorbXNnc3RyICJJbmljaWFsaXphciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiKCUwMlgpIgorbXNnc3RyICJEZXNjICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorIywgZnV6enkKK21zZ2lkICJOb25lIgorbXNnc3RyICJDb25jbHXtZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIlRhYmVsYSBkZSBwYXJ0aef1ZXMgZGUgJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNgorIywgZnV6enkKK21zZ2lkICIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iCittc2dzdHIgIiAgICAgICAgICAgIFByaW0uICAgINpsdC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNworIywgZnV6enkKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjIFRpcG8gICAgIFNldG9yICAgIFNldG9yICAgIERlc2xvYy4gQ29tcHIuICAgVGlwbyBzaXN0LiBhcnFzLiAoSUQpICAiCisiT3Dn9WVzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKKyMsIGZ1enp5Cittc2dpZCAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCittc2dzdHIgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIxCisjLCBmdXp6eQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiAgICAgICAgIC0tLSBJbu1jaW8gLS0tICAgICAgIC0tLS0gRmltIC0tLS0gICAgICAgTvptLiBpbmljaWFsIGRlXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjIKKyMsIGZ1enp5Cittc2dpZCAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCittc2dzdHIgIiAjIE9wcy4gIENhYi4gU2V0LiBDaWwuICBJRCAgQ2FiLiBTZXQuIENpbC4gICBTZXRvciAgIFNldG9yZXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworIywgZnV6enkKK21zZ2lkICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLS0tLSAtLS0tLS0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlJhdyIKK21zZ3N0ciAiQnJ1dG9zIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIHVzaW5nIHJhdyBkYXRhIGZvcm1hdCIKK21zZ3N0ciAiTW9zdHJhciBhIHRhYmVsYSB1c2FuZG8gZm9ybWF0byBkZSBkYWRvcyBicnV0b3MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlNldG9yZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcKK21zZ2lkICJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICJNb3N0cmFyIGEgdGFiZWxhIG9yZGVuYWRhIHBvciBzZXRvcmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU4Cittc2dpZCAiVGFibGUiCittc2dzdHIgIlRhYmVsYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiTW9zdHJhciBzb21lbnRlIGEgdGFiZWxhIGRlIHBhcnRp5/VlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkRvbid0IHByaW50IHRoZSB0YWJsZSIKK21zZ3N0ciAiTuNvIG1vc3RyYXIgYSB0YWJlbGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODcKK21zZ2lkICJIZWxwIFNjcmVlbiBmb3IgY2ZkaXNrIgorbXNnc3RyICJUZWxhIGRlIGFqdWRhIGRvIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4OQorbXNnaWQgIlRoaXMgaXMgY2ZkaXNrLCBhIGN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbmluZyBwcm9ncmFtLCB3aGljaCIKK21zZ3N0ciAiIgorIkVzdGUg6SBvIGNmZGlzaywgdW0gcHJvZ3JhbWEgZGUgcGFydGljaW9uYW1lbnRvIGRlIGRpc2NvIGJhc2VhZG8gZW0gZnVu5/VlcyAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgImN1cnNlcywgcXVlIHBlcm1pdGUgY3JpYXIsIGV4Y2x1aXIgZSBhbHRlcmFyIHBhcnRp5/VlcyBuYSB1bmlkYWRlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgImRlIGRpc2NvIHLtZ2lkby4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICJDb21hbmRvICAgICAgU2lnbmlmaWNhZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTYKK21zZ2lkICItLS0tLS0tICAgICAgLS0tLS0tLSIKK21zZ3N0ciAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTcKK21zZ2lkICIgIGIgICAgICAgICAgVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGIgICAgICAgICAgQWx0ZXJuYSBhIG9w5+NvIGRhIHBhcnRp5+NvIGF0dWFsIGNvbW8gaW5pY2lhbGl64XZlbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTgKK21zZ2lkICIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBkICAgICAgICAgIEV4Y2x1aSBhIHBhcnRp5+NvIGF0dWFsLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgZyAgICAgICAgICBDaGFuZ2UgY3lsaW5kZXJzLCBoZWFkcywgc2VjdG9ycy1wZXItdHJhY2sgcGFyYW1ldGVycyIKK21zZ3N0ciAiIgorIiAgZyAgICAgICAgICBBbHRlcmEgcGFy4m1ldHJvcyBkZSBjaWxpbmRyb3MsIGNhYmXnYXMsIHNldG9yZXMgcG9yIHRyaWxoYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiAgICAgICAgICAgICBBVklTTzogRXN0YSBvcOfjbyBz8yBkZXZlIHNlciB1c2FkYSBwb3IgcGVzc29hcyBxdWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgICAgICAgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLiIKK21zZ3N0ciAiICAgICAgICAgICAgIHNhaWJhbSBleGF0YW1lbnRlIG8gcXVlIGVzdONvIGZhemVuZG8uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAyCittc2dpZCAiICBoICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgIGggICAgICAgICAgTW9zdHJhIGVzdGEgdGVsYS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgbSAgICAgICAgICBNYXhpbWl6YSBvIHVzbyBkZSBkaXNjbyBkYSBwYXJ0aefjbyBhdHVhbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgICAgICAgICAgTm90ZTogVGhpcyBtYXkgbWFrZSB0aGUgcGFydGl0aW9uIGluY29tcGF0aWJsZSB3aXRoIgorbXNnc3RyICIgICAgICAgICAgICAgTm90YTogSXN0byBwb2RlIHRvcm5hciBhIHBhcnRp5+NvIGluY29tcGF07XZlbCBjb20iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCittc2dzdHIgIiAgICAgICAgICAgICBET1MsIE9TLzIgLi4uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA2Cittc2dpZCAiICBuICAgICAgICAgIENyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiICBuICAgICAgICAgIENyaWEgdW1hIG5vdmEgcGFydGnn428gYSBwYXJ0aXIgZG8gZXNwYedvIGxpdnJlLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgcCAgICAgICAgICBQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIiAgcCAgICAgICAgICBNb3N0cmEgYSB0YWJlbGEgZGUgcGFydGnn9WVzIG5hIHRlbGEgb3UgZW0gdW0gYXJxdWl2by4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDgKK21zZ2lkICIgICAgICAgICAgICAgVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IGZvcm1hdHMgZm9yIHRoZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAgICAgICAgICBQb2RlLXNlIHNlbGVjaW9uYXIgZGl2ZXJzb3MgZm9ybWF0b3MgZGlmZXJlbnRlcyBwYXJhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA5Cittc2dpZCAiICAgICAgICAgICAgIHRoYXQgeW91IGNhbiBjaG9vc2UgZnJvbToiCittc2dzdHIgIiAgICAgICAgICAgICB1bWEgcGFydGnn4286IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEwCittc2dpZCAiICAgICAgICAgICAgICAgIHIgLSBSYXcgZGF0YSAoZXhhY3RseSB3aGF0IHdvdWxkIGJlIHdyaXR0ZW4gdG8gZGlzaykiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgICAgciAtIERhZG9zIGJydXRvcyAoZXhhdGFtZW50ZSBvIHF1ZSBzZXJpYSBncmF2YWRvIG5vIGRpc2NvKS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHMgLSBUYWJlbGEgb3JkZW5hZGEgcG9yIHNldG9yZXMuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEyCittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICIgICAgICAgICAgICAgICAgdCAtIFRhYmVsYSBlbSBmb3JtYXRvIGJydXRvLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgcSAgICAgICAgICBRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICBxICAgICAgICAgIFNhaSBkbyBwcm9ncmFtYSBzZW0gZ3JhdmFyIGEgdGFiZWxhIGRlIHBhcnRp5/Vlcy4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTQKK21zZ2lkICIgIHQgICAgICAgICAgQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIiAgdCAgICAgICAgICBBbHRlcmEgbyB0aXBvIGRlIHNpc3RlbWEgZGUgYXJxdWl2b3MuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE1Cittc2dpZCAiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIKK21zZ3N0ciAiICB1ICAgICAgICAgIEFsdGVyYSB1bmlkYWRlcyBkZSBleGliaefjbyBkbyB0YW1hbmhvIGRhcyBwYXJ0aef1ZXMuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE2Cittc2dpZCAiICAgICAgICAgICAgIFJvdGF0ZXMgdGhyb3VnaCBNQiwgc2VjdG9ycyBhbmQgY3lsaW5kZXJzIgorbXNnc3RyICIgICAgICAgICAgICAgQWx0ZXJuYSBlbnRyZSBNQiwgc2V0b3JlcyBlIGNpbGluZHJvcy4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiIgorIiAgVyAgICAgICAgICBHcmF2YSB0YWJlbGEgZGUgcGFydGnn9WVzIG5vIGRpc2NvICjpIG5lY2Vzc+FyaW8gdXNhciBXICIKKyJtYWn6c2N1bG8pLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiAgICAgICAgICAgICBDb21vIGVzdGEgb3Dn428gcG9kZSBkZXN0cnVpciBkYWRvcyBubyBkaXNjbywgdm9j6iBkZXZlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE5Cittc2dpZCAiICAgICAgICAgICAgIGVpdGhlciBjb25maXJtIG9yIGRlbnkgdGhlIHdyaXRlIGJ5IGVudGVyaW5nIGB5ZXMnIG9yIgorbXNnc3RyICIgICAgICAgICAgICAgY29uZmlybWFyIG91IGNhbmNlbGFyIGEgZ3JhdmHn428gaW5kaWNhbmRvIGBzaW0nIG91IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIwCittc2dpZCAiICAgICAgICAgICAgIGBubyciCittc2dzdHIgIiAgICAgICAgICAgICBgbuNvJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMQorbXNnaWQgIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIgorbXNnc3RyICJTZXRhIHAvIGNpbWEgIE1vdmUgbyBjdXJzb3IgcGFyYSBhIHBhcnRp5+NvIGFudGVyaW9yLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMgorbXNnaWQgIkRvd24gQXJyb3cgICBNb3ZlIGN1cnNvciB0byB0aGUgbmV4dCBwYXJ0aXRpb24iCittc2dzdHIgIlNldGEgcC8gYmFpeG8gICAgTW92ZSBvIGN1cnNvciBwYXJhIGEgcHLzeGltYSBwYXJ0aefjby4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDVFJMLUwgICAgICAgUmVkZXNlbmhhIGEgdGVsYS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjQKK21zZ2lkICIgID8gICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgPyAgICAgICAgICBNb3N0cmEgZXN0YSB0ZWxhLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNgorbXNnaWQgIk5vdGU6IEFsbCBvZiB0aGUgY29tbWFuZHMgY2FuIGJlIGVudGVyZWQgd2l0aCBlaXRoZXIgdXBwZXIgb3IgbG93ZXIiCittc2dzdHIgIk5vdGE6IFRvZG9zIG9zIGNvbWFuZG9zIHBvZGVtIHNlciBkaWdpdGFkb3MgZW0gbGV0cmFzIG1hafpzY3VsYXMgb3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgIm1pbvpzY3VsYXMgKGV4Y2V0byBXKS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAiQ2lsaW5kcm9zIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICJBbHRlcmFyIGdlb21ldHJpYSBkb3MgY2lsaW5kcm9zIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzAKK21zZ2lkICJIZWFkcyIKK21zZ3N0ciAiQ2FiZedhcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICJBbHRlcmFyIGdlb21ldHJpYSBkYXMgY2FiZedhcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiCittc2dzdHIgIkFsdGVyYXIgZ2VvbWV0cmlhIGRvcyBzZXRvcmVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAiQ29uY2x17WRvIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICJBIGFsdGVyYefjbyBkYSBnZW9tZXRyaWEgZm9pIGNvbmNsde1kYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM3NAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzOiAiCittc2dzdHIgIkRpZ2l0ZSBvIG76bWVybyBkZSBjaWxpbmRyb3M6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIlZhbG9yIGRlIGNpbGluZHJvcyBpbnbhbGlkbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAiRGlnaXRlIG8gbvptZXJvIGRlIGNhYmXnYXM6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAiVmFsb3IgZGUgY2FiZedhcyBpbnbhbGlkbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQwNAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2s6ICIKK21zZ3N0ciAiRGlnaXRlIG8gbvptZXJvIGRlIHNldG9yZXMgcG9yIHRyaWxoYTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDExIGZkaXNrL2NmZGlzay5jOjI5NzUKK21zZ2lkICJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiCittc2dzdHIgIlZhbG9yIGRlIHNldG9yZXMgaW524WxpZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MTQKK21zZ2lkICJFbnRlciBmaWxlc3lzdGVtIHR5cGU6ICIKK21zZ3N0ciAiRGlnaXRlIG8gdGlwbyBkbyBzaXN0ZW1hIGRlIGFycXVpdm9zOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzIKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZW1wdHkiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWx0ZXJhciBvIHRpcG8gZGUgc2lzdGVtYSBkZSBhcnF1aXZvcyBwYXJhIHZhemlvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGFsdGVyYXIgbyB0aXBvIGRlIHNpc3RlbWEgZGUgYXJxdWl2b3MgcGFyYSBlc3RlbmRpZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rKCUwMlgpIgorbXNnc3RyICJEZXNjICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiLCBOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIk5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAiUHJpL2zzZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAiRGVzY29uaGVjaWRvICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAiRGlzY286ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjcwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICJUYW1hbmhvOiAlbGxkIGJ5dGVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjczCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgIlRhbWFuaG86ICVsbGQgYnl0ZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAiQ2FiZedhczogJWQgIFNldG9yZXMgcG9yIFRyaWxoYTogJWQgIENpbGluZHJvczogJWQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIk5vbWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiT3Dn9WVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgzCittc2dpZCAiUGFydCBUeXBlIgorbXNnc3RyICJUaXBvIFBhcnQuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg0Cittc2dpZCAiRlMgVHlwZSIKK21zZ3N0ciAiVGlwbyBTQSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NQorbXNnaWQgIltMYWJlbF0iCittc2dzdHIgIltS83R1bG9dIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3CisjLCBmdXp6eQorbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICIgIFNldG9yZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKKyMsIGZ1enp5Cittc2dpZCAiICBDeWxpbmRlcnMiCittc2dzdHIgIkNpbGluZHJvcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MQorIywgZnV6enkKK21zZ2lkICIgIFNpemUgKE1CKSIKK21zZ3N0ciAiVGFtLiAoTWIpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkzCisjLCBmdXp6eQorbXNnaWQgIiAgU2l6ZSAoR0IpIgorbXNnc3RyICJUYW0uIChHYikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJCb290YWJsZSIKK21zZ3N0ciAiSW5pY2lhbGkuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJBbHRlcm5hIGEgb3Dn428gZGEgcGFydGnn428gYXR1YWwgY29tbyBpbmljaWFsaXrhdmVsIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJFeGNsdWlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiRXhjbHVpciBhIHBhcnRp5+NvIGF0dWFsIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiR2VvbWV0cnkiCittc2dzdHIgIkdlb21ldHJpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkNoYW5nZSBkaXNrIGdlb21ldHJ5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICJBbHRlcmFyIGEgZ2VvbWV0cmlhIGRvIGRpc2NvIChzb21lbnRlIHBhcmEgdXN14XJpb3MgYXZhbudhZG9zKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIkhlbHAiCittc2dzdHIgIkFqdWRhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiUHJpbnQgaGVscCBzY3JlZW4iCittc2dzdHIgIk1vc3RyYXIgdGVsYSBkZSBhanVkYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIgorbXNnc3RyICJNYXhpbWl6ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIiCisiTWF4aW1pemFyIG8gdXNvIGRlIGRpc2NvIHBhcmEgYSBwYXJ0aefjbyBhdHVhbCAoc29tZW50ZSBwYXJhIHVzdeFyaW9zICIKKyJhdmFu52Fkb3MpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICJOb3ZhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICJDcmlhciBub3ZhIHBhcnRp5+NvIGEgcGFydGlyIGRvIGVzcGHnbyBsaXZyZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IgorbXNnc3RyICJNb3N0cmUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIk1vc3RyYXIgdGFiZWxhIGRlIHBhcnRp5/VlcyBuYSB0ZWxhIG91IGltcHJpbWlyIGVtIHVtIGFycXVpdm8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IgorbXNnc3RyICJTYWlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlNhaXIgZG8gcHJvZ3JhbWEgc2VtIGdyYXZhciBhIHRhYmVsYSBkZSBwYXJ0aef1ZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJUeXBlIgorbXNnc3RyICJUaXBvIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAiQWx0ZXJhciBvIHRpcG8gZG8gc2lzdGVtYSBkZSBhcnF1aXZvcyAoRE9TLCBMaW51eCwgT1MvMiBlIG91dHJvcykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAiVW5pZGFkZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkgKE1CLCBzZWN0LCBjeWwpIgorbXNnc3RyICIiCisiTXVkYXIgdW5pZGFkZXMgbW9zdHJhZGFzIHBhcmEgbyB0YW1hbmhvIGRhcyBwYXJ0aef1ZXMgKE1CLCBzZXRvcmVzLCAiCisiY2lsaW5kcm9zKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJHcmF2YXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIgorbXNnc3RyICJHcmF2YXIgdGFiZWxhIGRlIHBhcnRp5/VlcyBubyBkaXNjbyAoaXN0byBwb2RlcuEgZGVzdHJ1aXIgZGFkb3MpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODA1Cittc2dpZCAiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgdG9ybmFyIGVzdGEgcGFydGnn428gaW5pY2lhbGl64XZlbC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBleGNsdWlyIHVtYSBwYXJ0aefjbyB2YXppYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIG1heGltaXphciBlc3RhIHBhcnRp5+NvIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ1Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgdW51c2FibGUiCittc2dzdHIgIkVzdGEgcGFydGnn428g6SBpbnV0aWxpeuF2ZWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDcKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyBhbHJlYWR5IGluIHVzZSIKK21zZ3N0ciAiRXN0YSBwYXJ0aefjbyBq4SBlc3ThIHNlbmRvIHVzYWRhIgorCisjOiBmZGlzay9jZmRpc2suYzoyODY0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSB0aGUgdHlwZSBvZiBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWx0ZXJhciBvIHRpcG8gZGUgdW1hIHBhcnRp5+NvIHZhemlhIgorCisjOiBmZGlzay9jZmRpc2suYzoyODkxIGZkaXNrL2NmZGlzay5jOjI4OTcKK21zZ2lkICJObyBtb3JlIHBhcnRpdGlvbnMiCittc2dzdHIgIlNlbSBtYWlzIHBhcnRp5/VlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAiQ29tYW5kbyBpbnbhbGlkbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkxNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAwIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiVXNvOlxuIgorIk1vc3RyYXIgdmVyc+NvOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJNb3N0cmFyIHRhYmVsYSBkZSBwYXJ0aef1ZXM6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcOf1ZXNdIGRpc3Bvc2l0aXZvXG4iCisiVXNvIGludGVyYXRpdm86XG4iCisiICAgICAgICAlcyBbb3Dn9WVzXSBkaXNwb3NpdGl2b1xuIgorIlxuIgorIk9w5/VlczpcbiIKKyItYTogVXNhciBzZXRhIGVtIHZleiBkZSByZWFsY2UuXG4iCisiLXo6IEluaWNpYXIgY29tIHVtYSB0YWJlbGEgZGUgemVybyBwYXJ0aef1ZXMsIGVtIHZleiBkZSBsZXIgYSB0YWJlbGEgZG8gIgorImRpc2NvLlxuIgorIi1jIEMgLWggSCAtcyBTOiBTb2JyZXBvciBhcyBzdXBvc2nn9WVzIGRvIGtlcm5lbCBxdWFudG8gYSBu+m1lcm8gZGUgIgorImNpbGluZHJvcyxcbiIKKyIgICAgICAgICAgICAgICAgbvptZXJvIGRlIGNhYmXnYXMgZSBu+m1lcm8gZGUgc2V0b3Jlcy90cmlsaGEuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrYWl4bGFiZWwuYzoyNworbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgQUlYIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgTGludXggY2Fubm90IGhhbmRsZSB0aGVzZVxuIgorIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisiXHRhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCisiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorIlx0ICAgdG8gcmVtb3ZlIHRoZSBkaXNrIGxvZ2ljYWxseSBmcm9tIHlvdXIgQUlYXG4iCisiXHQgICBtYWNoaW5lLiAgKE90aGVyd2lzZSB5b3UgYmVjb21lIGFuIEFJWHBlcnQpLiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RXhpc3RlIHVtIHLzdHVsbyBBSVggduFsaWRvIG5lc3RlIGRpc2NvLlxuIgorIlx0SW5mZWxpem1lbnRlLCBvIExpbnV4IG7jbyDpIGNhcGF6IGRlIG1hbmlwdWxhciBkaXNjb3NcbiIKKyJcdGRlIHRhbCB0aXBvIGF0dWFsbWVudGUuIE7jbyBvYnN0YW50ZSwgYWxndW5zXG4iCisiXHRjb25zZWxob3M6XG4iCisiXHQxLiBmZGlzayBkZXN0cnVpcuEgc2V1IGNvbnRl+mRvIG5hIGdyYXZh5+NvLlxuIgorIlx0Mi4gQ2VydGlmaXF1ZS1zZSBkZSBxdWUgbyBkaXNjbyBOw08g6SBtYWlzIHVtYSBwYXJ0ZSB2aXRhbFxuIgorIlx0ICAgZGUgdW0gZ3J1cG8gZGUgdm9sdW1lcyAoZG8gY29udHLhcmlvLCB2b2PqIHBvZGVy4SBhcGFnYXJcbiIKKyJcdCAgIHRhbWLpbSBvdXRyb3MgZGlzY29zLCBzZSBu428gaG91dmVyIGVzcGVsaGFtZW50bykuXG4iCisiXHQzLiBBbnRlcyBkZSBleGNsdWlyIGVzdGUgdm9sdW1lIGbtc2ljbywgY2VydGlmaXF1ZS1zZSBkZVxuIgorIlx0ICAgcmVtb3ZlciBvIGRpc2NvIGxvZ2ljYW1lbnRlIGRlIHN1YSBt4XF1aW5hIEFJWFxuIgorIlx0ICAgKGRvIGNvbnRy4XJpbyB2b2PqIGly4SBzZSB0b3JuYXIgdW0gQUlYcGVydCkuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIlLzdHVsbyBCU0QgZG8gZGlzcG9zaXRpdm86ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjggZmRpc2svZmRpc2suYzozOTQgZmRpc2svZmRpc2suYzo0MTMKKyM6IGZkaXNrL2ZkaXNrLmM6NDMxIGZkaXNrL2ZkaXNrLmM6NDM4IGZkaXNrL2ZkaXNrLmM6NDYxIGZkaXNrL2ZkaXNrLmM6NDc5CisjOiBmZGlzay9mZGlzay5jOjQ5NSBmZGlzay9mZGlzay5jOjUxMQorbXNnaWQgIkNvbW1hbmQgYWN0aW9uIgorbXNnc3RyICJDb21hbmRvIC0gYefjbyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOQorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgZXhjbHVpIHVtYSBwYXJ0aefjbyBCU0QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzAKK21zZ2lkICIgICBlICAgZWRpdCBkcml2ZSBkYXRhIgorbXNnc3RyICIgICBlICAgZWRpdGEgZGFkb3MgZG8gZGlzY28iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICBpbnN0YWxhIGPzZGlnbyBkZSBpbmljaWFsaXph5+NvIChib290c3RyYXApIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMyCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gZmlsZXN5c3RlbSB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIGxpc3RhIG9zIHRpcG9zIGRlIHNpc3RlbWFzIGRlIGFycXVpdm9zIGNvbmhlY2lkb3MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICBtb3N0cmEgZXN0ZSBtZW51IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM0Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgY3JpYSB1bWEgbm92YSBwYXJ0aefjbyBCU0QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIG1vc3RyYSBhIHRhYmVsYSBkZSBwYXJ0aef1ZXMgQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM2IGZkaXNrL2ZkaXNrLmM6NDA0IGZkaXNrL2ZkaXNrLmM6NDIzCisjOiBmZGlzay9mZGlzay5jOjQzNCBmZGlzay9mZGlzay5jOjQ0OCBmZGlzay9mZGlzay5jOjQ3MSBmZGlzay9mZGlzay5jOjQ4OAorIzogZmRpc2svZmRpc2suYzo1MDQgZmRpc2svZmRpc2suYzo1MjIKK21zZ2lkICIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIgorbXNnc3RyICIgICBxICAgc2FpIHNlbSBzYWx2YXIgYXMgYWx0ZXJh5/VlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiICAgciAgIHZvbHRhciBhbyBtZW51IHByaW5jaXBhbCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOAorbXNnaWQgIiAgIHMgICBzaG93IGNvbXBsZXRlIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgIG1vc3RyYSBvIHLzdHVsbyBkbyBkaXNjbyBjb21wbGV0byIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgYWx0ZXJhIGEgaWRlbnRpZmljYefjbyBkbyBzaXN0ZW1hIGRlIGFycXVpdm9zIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQwCittc2dpZCAiICAgdSAgIGNoYW5nZSB1bml0cyAoY3lsaW5kZXJzL3NlY3RvcnMpIgorbXNnc3RyICIgICB1ICAgYWx0ZXJhIHVuaWRhZGVzIChjaWxpbmRyb3Mvc2V0b3JlcykiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDEKK21zZ2lkICIgICB3ICAgd3JpdGUgZGlza2xhYmVsIHRvIGRpc2siCittc2dzdHIgIiAgIHcgICBncmF2YSBvIHLzdHVsbyBkbyBkaXNjbyBubyBkaXNjbyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MworbXNnaWQgIiAgIHggICBsaW5rIEJTRCBwYXJ0aXRpb24gdG8gbm9uLUJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIHggICB2aW5jdWxhIHBhcnRp5+NvIEJTRCBhIHBhcnRp5+NvIG7jbyBCU0QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVzIGhhcyBpbnZhbGlkIHN0YXJ0aW5nIHNlY3RvciAwLlxuIgorbXNnc3RyICJBIHBhcnRp5+NvICVzIHBvc3N1aSBzZXRvciBpbmljaWFsIDAgaW524WxpZG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICJMZW5kbyBy83R1bG8gZGUgZGlzY28gZGUgJXMgbm8gc2V0b3IgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIk7jbyBleGlzdGUgcGFydGnn428gKkJTRCBlbSAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjIwMworbXNnaWQgIkJTRCBkaXNrbGFiZWwgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQ29tYW5kbyBwYXJhIHLzdHVsbyBkZSBkaXNjbyBCU0QgKHRlY2xlIG0gcGFyYSBvYnRlciBhanVkYSk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI4MyBmZGlzay9mZGlzay5jOjIzMjggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzOAorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdCAlcyIKK21zZ3N0ciAiUHJpbWVpcm8gJXMiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICVzIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsiCittc2dzdHIgItpsdGltbyAlcyBvdSArdGFtYW5obyBvdSArdGFtYW5obyBNIG91ICArdGFtYW5obyBLIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVzXG4iCittc2dzdHIgInRpcG86ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJWRcbiIKK21zZ3N0ciAidGlwbzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgImRpc2NvOiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibGFiZWw6ICUuKnNcbiIKK21zZ3N0ciAicvN0dWxvOiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmxhZ3M6IgorbXNnc3RyICJvcOf1ZXM6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiByZW1vdmFibGUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIGVjYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiIGJhZHNlY3QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXMvc2VjdG9yOiAlbGRcbiIKK21zZ3N0ciAiYnl0ZXMvc2V0b3I6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvdHJhY2s6ICVsZFxuIgorbXNnc3RyICJzZXRvcmVzL3RyaWxoYTogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAidHJpbGhhcy9jaWxpbmRybzogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInNldG9yZXMvY2lsaW5kcm86ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyczogJWxkXG4iCittc2dzdHIgImNpbGluZHJvczogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAicnBtOiAlZFxuIgorbXNnc3RyICJSUE06ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW50ZXJsZWF2ZTogJWRcbiIKK21zZ3N0ciAiaW50ZXJsZWF2ZTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgInRyYWNrc2tldzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnNrZXc6ICVkXG4iCittc2dzdHIgImN5bGluZGVyc2tldzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsaXNzZWd1bmRvc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQzCisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWs6ICVsZFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiYnVzY2EgdHJpbGhhIGEgdHJpbGhhOiAlbGRcdCMgbWlsaXNzZWd1bmRvc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImRyaXZlZGF0YTogIgorbXNnc3RyICJkcml2ZWRhdGE6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJWQgcGFydGl0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkIHBhcnRp5/VlczpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIyAgICAgICBpbu1jaW8gICAgICBmaW0gICAgICB0YW1hbmhvICB0aXBvU0EgICBbZnNpemUgYnNpemUgICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiR3JhdmFuZG8gcvN0dWxvIGRlIGRpc2NvIGVtICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDE5IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorbXNnc3RyICIlcyBu428gY29udOltIHVtIHLzdHVsbyBkZSBkaXNjby5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJWb2PqIGRlc2VqYSBjcmlhciB1bSBy83R1bG8gZGUgZGlzY28/IChzL24pICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NgorbXNnaWQgImJ5dGVzL3NlY3RvciIKK21zZ3N0ciAiYnl0ZXMvc2V0b3IiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjcKK21zZ2lkICJzZWN0b3JzL3RyYWNrIgorbXNnc3RyICJzZXRvcmVzL3RyaWxoYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAidHJpbGhhcy9jaWxpbmRybyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAiY2lsaW5kcm9zIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDc2Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlciIKK21zZ3N0ciAic2V0b3Jlcy9jaWxpbmRybyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIDw9IHNlY3RvcnMvdHJhY2sgKiB0cmFja3MvY3lsaW5kZXIgKGRlZmF1bHQpLlxuIgorbXNnc3RyICJQcmVjaXNhIHNlciA8PSBzZXRvcmVzL3RyaWxoYSAqIHRyaWxoYXMvY2lsaW5kcm8gKHBhZHLjbykuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODIKK21zZ2lkICJycG0iCittc2dzdHIgIlJQTSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MworbXNnaWQgImludGVybGVhdmUiCittc2dzdHIgImludGVybGVhdmUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODQKK21zZ2lkICJ0cmFja3NrZXciCittc2dzdHIgInRyYWNrc2tldyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NQorbXNnaWQgImN5bGluZGVyc2tldyIKK21zZ3N0ciAiY3lsaW5kZXJza2V3IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg2Cittc2dpZCAiaGVhZHN3aXRjaCIKK21zZ3N0ciAiaGVhZHN3aXRjaCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NworbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWsiCittc2dzdHIgImJ1c2NhIHRyaWxoYSBhIHRyaWxoYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXA6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorbXNnc3RyICJCb290c3RyYXAgKGPzZGlnbyBkZSBpbmljaWFsaXph5+NvKTogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIG92ZXJsYXBzIHdpdGggZGlzayBsYWJlbCFcbiIKK21zZ3N0ciAiQm9vdHN0cmFwIChj82RpZ28gZGUgaW5pY2lhbGl6Yefjbykgc29icmVwb3N0byBhbyBy83R1bG8gZG8gZGlzY28hXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgaW5zdGFsbGVkIG9uICVzLlxuIgorbXNnc3RyICJCb290c3RyYXAgKGPzZGlnbyBkZSBpbmljaWFsaXph5+NvKSBpbnN0YWxhZG8gZW0gJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIChhLSVjKTogIgorbXNnc3RyICJQYXJ0aefjbyAoYS0lYyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYxNyBmZGlzay9mZGlzay5jOjI0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgaGFzIGJlZW4gY3JlYXRlZFxuIgorbXNnc3RyICJPIG76bWVybyBt4XhpbW8gZGUgcGFydGnn9WVzIGZvaSBjcmlhZG9cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiIKK21zZ3N0ciAiRXN0YSBwYXJ0aefjbyBq4SBleGlzdGUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogdG9vIG1hbnkgcGFydGl0aW9ucyAoJWQsIG1heGltdW0gaXMgJWQpLlxuIgorbXNnc3RyICJBdmlzbzogbvptZXJvIGRlIHBhcnRp5/VlcyBleGNlc3Npdm8gKCVkOyBvIG3heGltbyAg6SAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTaW5jcm9uaXphbmRvIGRpc2Nvcy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTYKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiIGZkaXNrIFtvcHRpb25zXSA8ZGlzaz4gICAgY2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorIiBmZGlzayBbb3B0aW9uc10gLWwgPGRpc2s+IGxpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisiIGZkaXNrIC1zIDxwYXJ0aXRpb24+ICAgICAgZ2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtYiA8c2l6ZT4gICAgICAgICAgICAgICAgIHNlY3RvciBzaXplICg1MTIsIDEwMjQsIDIwNDggb3IgNDA5NilcbiIKKyIgLWMgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggb2ZmIERPUy1jb21wYXRpYmxlIG1vZGVcbiIKKyIgLWggICAgICAgICAgICAgICAgICAgICAgICBwcmludCBoZWxwXG4iCisiIC11IDxzaXplPiAgICAgICAgICAgICAgICAgZ2l2ZSBzaXplcyBpbiBzZWN0b3JzIGluc3RlYWQgb2YgY3lsaW5kZXJzXG4iCisiIC12ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgdmVyc2lvblxuIgorIiAtQyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBjeWxpbmRlcnNcbiIKKyIgLUggPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgaGVhZHNcbiIKKyIgLVMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2tcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlc1xuIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGFicmlyICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byByZWFkICVzXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgbGVyICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZWVrIG9uICVzXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgcmVhbGl6YXIgYnVzY2EgZW0gJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlICVzXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgZ3JhdmFyIGVtICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzXG4iCittc2dzdHIgImlvY3RsIEJMS0dFVFNJWkUgIGZhbGhvdSBlbSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBhbnkgbW9yZSBtZW1vcnlcbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhbG9jYXIgbWFpcyBxdWFscXVlciBtZW3zcmlhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAiRXJybyBmYXRhbFxuIgorCisjOiBmZGlzay9mZGlzay5jOjM5NQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSByZWFkIG9ubHkgZmxhZyIKK21zZ3N0ciAiICAgYSAgIGFsdGVybmEgdW1hIG9w5+NvIGRlIHNvbWVudGUgbGVpdHVyYSIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAgZWRpdGEgcvN0dWxvIEJTRCBubyBkaXNjbyIKKworIzogZmRpc2svZmRpc2suYzozOTcKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBtb3VudGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYyAgIGFsdGVybmEgYSBvcOfjbyBcIm1vbnThdmVsXCIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIGV4Y2x1aSB1bWEgcGFydGnn428iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk5IGZkaXNrL2ZkaXNrLmM6NDE4IGZkaXNrL2ZkaXNrLmM6NDQzCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICBsICAgbGlzdGEgb3MgdGlwb3MgZGUgcGFydGnn428gY29uaGVjaWRvcyIKKworIzogZmRpc2svZmRpc2suYzo0MDEgZmRpc2svZmRpc2suYzo0MjAgZmRpc2svZmRpc2suYzo0NDUKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIGNyaWEgdW1hIG5vdmEgcGFydGnn428iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAyIGZkaXNrL2ZkaXNrLmM6NDIxIGZkaXNrL2ZkaXNrLmM6NDMzIGZkaXNrL2ZkaXNrLmM6NDQ2Cittc2dpZCAiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBvICAgY3JpYSB1bWEgbm92YSB0YWJlbGEgZGUgcGFydGnn9WVzIERPUyB2YXppYSIKKworIzogZmRpc2svZmRpc2suYzo0MDMgZmRpc2svZmRpc2suYzo0MjIgZmRpc2svZmRpc2suYzo0NDcgZmRpc2svZmRpc2suYzo0NzAKKyM6IGZkaXNrL2ZkaXNrLmM6NDg3IGZkaXNrL2ZkaXNrLmM6NTAzIGZkaXNrL2ZkaXNrLmM6NTIxCittc2dpZCAiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBtb3N0cmEgYSB0YWJlbGEgZGUgcGFydGnn9WVzIgorCisjOiBmZGlzay9mZGlzay5jOjQwNSBmZGlzay9mZGlzay5jOjQyNCBmZGlzay9mZGlzay5jOjQzNSBmZGlzay9mZGlzay5jOjQ0OQorbXNnaWQgIiAgIHMgICBjcmVhdGUgYSBuZXcgZW1wdHkgU3VuIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgIGNyaWEgdW0gbm92byBy83R1bG8gZGUgZGlzY28gU3VuIHZhemlvIgorCisjOiBmZGlzay9mZGlzay5jOjQwNiBmZGlzay9mZGlzay5jOjQyNSBmZGlzay9mZGlzay5jOjQ1MAorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICBhbHRlcmEgYSBpZGVudGlmaWNh5+NvIGRhIHBhcnRp5+NvIHBhcmEgbyBzaXN0ZW1hIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIGFsdGVyYSBhcyB1bmlkYWRlcyBkYXMgZW50cmFkYXMgbW9zdHJhZGFzIgorCisjOiBmZGlzay9mZGlzay5jOjQwOCBmZGlzay9mZGlzay5jOjQyNyBmZGlzay9mZGlzay5jOjQ1MiBmZGlzay9mZGlzay5jOjQ3NAorIzogZmRpc2svZmRpc2suYzo0OTEgZmRpc2svZmRpc2suYzo1MDcgZmRpc2svZmRpc2suYzo1MjUKK21zZ2lkICIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHYgICB2ZXJpZmljYSBhIHRhYmVsYSBkZSBwYXJ0aef1ZXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA5IGZkaXNrL2ZkaXNrLmM6NDI4IGZkaXNrL2ZkaXNrLmM6NDUzIGZkaXNrL2ZkaXNrLmM6NDc1CisjOiBmZGlzay9mZGlzay5jOjQ5MiBmZGlzay9mZGlzay5jOjUwOCBmZGlzay9mZGlzay5jOjUyNgorbXNnaWQgIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IgorbXNnc3RyICIgICB3ICAgZ3JhdmEgYSB0YWJlbGEgbm8gZGlzY28gZSBzYWkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDEwIGZkaXNrL2ZkaXNrLmM6NDU0Cittc2dpZCAiICAgeCAgIGV4dHJhIGZ1bmN0aW9uYWxpdHkgKGV4cGVydHMgb25seSkiCittc2dzdHIgIiAgIHggICBmdW5jaW9uYWxpZGFkZSBhZGljaW9uYWwgKHNvbWVudGUgcGFyYSB1c3XhcmlvcyBhdmFu52Fkb3MpIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAgdG9ybmEgYSBwYXJ0aefjbyBpbmljaWFsaXrhdmVsIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAgZWRpdGEgdW1hIGVudHJhZGEgZGUgYXJxdWl2byBkZSBpbmljaWFsaXph5+NvIgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIgICBjICAgc2VsZWNpb25hIHVtYSBwYXJ0aefjbyBkZSBwZXJtdXRhIChzd2FwKSBzZ2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDM5Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIGJvb3RhYmxlIGZsYWciCittc2dzdHIgIiAgIGEgICBhbHRlcm5hIGEgb3Dn428gXCJpbmljaWFsaXrhdmVsXCIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICAgYyAgIGFsdGVybmEgYSBvcOfjbyBcImNvbXBhdGliaWxpZGFkZVwiIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MgorbXNnaWQgIiAgIGEgICBjaGFuZ2UgbnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGEgICBhbHRlcmFyIG76bWVybyBkZSBjaWxpbmRyb3MgYWx0ZXJuYXRpdm9zIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgIGFsdGVyYXIgbvptZXJvIGRlIGNpbGluZHJvcyIKKworIzogZmRpc2svZmRpc2suYzo0NjQgZmRpc2svZmRpc2suYzo0ODIgZmRpc2svZmRpc2suYzo0OTggZmRpc2svZmRpc2suYzo1MTQKK21zZ2lkICIgICBkICAgcHJpbnQgdGhlIHJhdyBkYXRhIGluIHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGQgICBtb3N0cmFyIG9zIGRhZG9zIHNlbSBmb3JtYXRh5+NvIGRhIHRhYmVsYSBkZSBwYXJ0aef1ZXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY1Cittc2dpZCAiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiAgIGUgICBhbHRlcmFyIG76bWVybyBkZSBzZXRvcmVzIGV4dHJhcyBwb3IgY2lsaW5kcm8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY2IGZkaXNrL2ZkaXNrLmM6NDg1IGZkaXNrL2ZkaXNrLmM6NTAxIGZkaXNrL2ZkaXNrLmM6NTE4Cittc2dpZCAiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIiAgIGggICBhbHRlcmFyIG76bWVybyBkZSBjYWJl52FzIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NworbXNnaWQgIiAgIGkgICBjaGFuZ2UgaW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiAgIGkgICBhbHRlcmFyIGZhdG9yIGRlIFwiaW50ZXJsZWF2ZVwiIgorCisjOiBmZGlzay9mZGlzay5jOjQ2OAorbXNnaWQgIiAgIG8gICBjaGFuZ2Ugcm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIiAgIG8gICBhbHRlcmFyIHZlbG9jaWRhZGUgZGUgcm90YefjbyAoUlBNKSIKKworIzogZmRpc2svZmRpc2suYzo0NzMgZmRpc2svZmRpc2suYzo0OTAgZmRpc2svZmRpc2suYzo1MDYgZmRpc2svZmRpc2suYzo1MjQKK21zZ2lkICIgICBzICAgY2hhbmdlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrIgorbXNnc3RyICIgICBzICAgYWx0ZXJhciBu+m1lcm8gZGUgc2V0b3Jlcy90cmlsaGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIgICB5ICAgYWx0ZXJhciBu+m1lcm8gZGUgY2lsaW5kcm9zIGbtc2ljb3MiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGIgICBtb3ZlciBpbu1jaW8gZG9zIGRhZG9zIGVtIHVtYSBwYXJ0aefjbyIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKK21zZ2lkICIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIgICBlICAgbGlzdGFyIHBhcnRp5/VlcyBlc3RlbmRpZGFzIgorCisjOiBmZGlzay9mZGlzay5jOjQ4NCBmZGlzay9mZGlzay5jOjUwMCBmZGlzay9mZGlzay5jOjUxNworIywgZnV6enkKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgY3JpYXIgdW1hIHRhYmVsYSBkZSBwYXJ0aef1ZXMgSVJJWCIKKworIzogZmRpc2svZmRpc2suYzo1MTYKK21zZ2lkICIgICBmICAgZml4IHBhcnRpdGlvbiBvcmRlciIKK21zZ3N0ciAiICAgZiAgIGNvcnJpZ2Ugb3JkZW0gZGUgcGFydGnn428iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5CisjLCBmdXp6eQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgdSAgIGFsdGVyYSBhcyB1bmlkYWRlcyBkYXMgZW50cmFkYXMgbW9zdHJhZGFzIgorCisjOiBmZGlzay9mZGlzay5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBzZXQiCittc2dzdHIgIlZvY+ogcHJlY2lzYSBjb25maWd1cmFyIgorCisjOiBmZGlzay9mZGlzay5jOjczNgorbXNnaWQgImhlYWRzIgorbXNnc3RyICJjYWJl52FzIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAic2V0b3JlcyIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisiJXMlcy5cbiIKKyJWb2PqIHBvZGUgZmF6ZXIgaXN0byBhIHBhcnRpciBkbyBtZW51IGRlIGZ1buf1ZXMgZXh0cmFzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjc0NQorbXNnaWQgIiBhbmQgIgorbXNnc3RyICIgZSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvXG4iCisiICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvXG4iCisiICAgICAgICAgc2VjdG9ycyAoY29tbWFuZCAndScpLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBjeWxpbmRlcnMgYXMgZGlzcGxheSB1bml0cyBhcmUgZGVwcmVjYXRlZC4gVXNlIGNvbW1hbmQgJ3UnIHRvXG4iCisiICAgICAgICAgY2hhbmdlIHVuaXRzIHRvIHNlY3RvcnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG9mZnNldCBpbiBwcmltYXJ5IGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJEZXNsb2NhbWVudG8gaW524WxpZG8gZW0gdW1hIHBhcnRp5+NvIHByaW3hcmlhIGVzdGVuZGlkYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogb21pdHRpbmcgcGFydGl0aW9ucyBhZnRlciAjJWQuXG4iCisiVGhleSB3aWxsIGJlIGRlbGV0ZWQgaWYgeW91IHNhdmUgdGhpcyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJBdmlzbzogcG9udGVpcm8gZGUgdu1uY3VsbyBleHRyYSBuYSB0YWJlbGEgZGUgcGFydGnn9WVzICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIkF2aXNvOiBpZ25vcmFuZG8gZGFkb3MgZXh0cmFzIG5hIHRhYmVsYSBkZSBwYXJ0aef1ZXMgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm9taXR0aW5nIGVtcHR5IHBhcnRpdGlvbiAoJWQpXG4iCittc2dzdHIgIkF0ZW7n4286IHBhcnRp5+NvIHZhemlhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkNyaWFuZG8gdW0gbm92byBy83R1bG8gZGUgZGlzY28gRE9TLiBBcyBhbHRlcmHn9WVzIHBlcm1hbmVjZXLjb1xuIgorInNvbWVudGUgZW0gbWVt83JpYSBhdOkgcXVlIHZvY+ogZGVjaWRhIGdyYXbhLWxhcy4gQXDzcyBpc3RvLCDpIGNsYXJvLFxuIgorIm8gY29udGX6ZG8gYW50ZXJpb3IgbuNvIHBvZGVy4SBtYWlzIHNlciByZWN1cGVyYWRvLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAiTm90YTogbyB0YW1hbmhvIGRvIHNldG9yIOkgJWQgKG7jbyAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIlZvY+ogbuNvIHBvZGVy4SBncmF2YXIgYSB0YWJlbGEgZGUgcGFydGnn9WVzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZGlzayBoYXMgYm90aCBET1MgYW5kIEJTRCBtYWdpYy5cbiIKKyJHaXZlIHRoZSAnYicgY29tbWFuZCB0byBnbyB0byBCU0QgbW9kZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjEyNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSBjb250YWlucyBuZWl0aGVyIGEgdmFsaWQgRE9TIHBhcnRpdGlvbiB0YWJsZSwgbm9yIFN1biwgU0dJIG9yIE9TRiAiCisiZGlza2xhYmVsXG4iCittc2dzdHIgIiIKKyJPIGRpc3Bvc2l0aXZvIG7jbyBjb2506W0gbmVtIHVtYSB0YWJlbGEgZGUgcGFydGnn9WVzIERPUyB24WxpZGEgbmVtIHVtICIKKyJy83R1bG8gZGUgZGlzY28gU3VuLCBPU0Ygb3UgU0dJXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJJbnRlcm5hbCBlcnJvclxuIgorbXNnc3RyICJFcnJvIGludGVybm9cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJJZ25vcmFuZG8gcGFydGnn428gZXN0ZW5kaWRhIGV4dHJhICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogaW52YWxpZCBmbGFnIDB4JTA0eCBvZiBwYXJ0aXRpb24gdGFibGUgJWQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyIKKyIocml0ZSlcbiIKK21zZ3N0ciAiIgorIkF2aXNvOiBhIG9w5+NvIGluduFsaWRhIDB4JTA0eCBkYSB0YWJlbGEgZGUgcGFydGnn9WVzICVkIHNlcuEgY29ycmlnaWRhIHBvciAiCisiZ3JhdmHn428gKHcpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkVPRiAoZmltIGRlIGFycXVpdm8pIHJlY2ViaWRvIHRy6nMgdmV6ZXMgLSBzYWluZG8uLi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMzYwCittc2dpZCAiSGV4IGNvZGUgKHR5cGUgTCB0byBsaXN0IGNvZGVzKTogIgorbXNnc3RyICJD82RpZ28gaGV4YWRlY2ltYWwgKGRpZ2l0ZSBMIHBhcmEgbGlzdGFyIG9zIGPzZGlnb3MpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM5MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgKCV1LSV1LCBkZWZhdWx0ICV1KTogIgorbXNnc3RyICIlcyAoJWQtJWQsIHBhZHLjbyAlZCk6IgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgc3VmZml4OiAnJXMnLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VwcG9ydGVkOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaUJ5dGUpLCBNICAoTWViaUJ5dGUpLCBHICAoR2liaUJ5dGUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBkZWZhdWx0IHZhbHVlICV1XG4iCittc2dzdHIgIlVzYW5kbyB2YWxvciBwYWRy428gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlZhbHVlIG91dCBvZiByYW5nZS5cbiIKK21zZ3N0ciAiVmFsb3IgZm9yYSBkbyBpbnRlcnZhbG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgIk76bWVybyBkYSBwYXJ0aefjbyIKKworIzogZmRpc2svZmRpc2suYzoxNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXMgZW1wdHkgdHlwZVxuIgorbXNnc3RyICJBdmlzbzogYSBwYXJ0aefjbyAlZCBwb3NzdWkgdGlwbyB2YXppb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZWxlY3RlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiSWdub3JhbmRvIHBhcnRp5+NvIGVzdGVuZGlkYSBleHRyYSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiTmVuaHVtYSBwYXJ0aefjbyBkZWZpbmlkYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1ODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkFsbCBwcmltYXJ5IHBhcnRpdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeSFcbiIKK21zZ3N0ciAiRGVudHJlIGFzIHBhcnRp5/VlcyBwcmlt4XJpYXMsIHBlbG8gbWVub3MgdW1hIHBvZGUgc2VyIGVzdGVuZGlkYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJjeWxpbmRlciIKK21zZ3N0ciAiY2lsaW5kcm8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgInNlY3RvciIKK21zZ3N0ciAic2V0b3IiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIk11ZGFuZG8gYXMgdW5pZGFkZXMgZGFzIGVudHJhZGFzIG1vc3RyYWRhcyBwYXJhICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIkFWSVNPOiBBIHBhcnRp5+NvICVkIOkgdW1hIHBhcnRp5+NvIGVzdGVuZGlkYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIKK21zZ3N0ciAiQSBvcOfjbyBkZSBjb21wYXRpYmlsaWRhZGUgRE9TIGVzdOEgYXRpdmFkYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBub3Qgc2V0XG4iCittc2dzdHIgIkEgb3Dn428gZGUgY29tcGF0aWJpbGlkYWRlIERPUyBu428gZXN04SBhdGl2YWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyMworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICJBIHBhcnRp5+NvICVkIGFpbmRhIG7jbyBleGlzdGUhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisiVGlwbyAwIHNpZ25pZmljYSBlc3Bh528gbGl2cmUgcGFyYSBtdWl0b3Mgc2lzdGVtYXNcbiIKKyIobWFzIG7jbyBwYXJhIG8gTGludXgpLiBNYW50ZXIgcGFydGnn9WVzXG4iCisidGlwbyAwIG7jbyDpIHJlY29tZW5k4XZlbC4gVm9j6iBwb2RlIGV4Y2x1aXJcbiIKKyJ1bWEgcGFydGnn428gdXNhbmRvIG8gY29tYW5kbyBgZCcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTczNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGNhbm5vdCBjaGFuZ2UgYSBwYXJ0aXRpb24gaW50byBhbiBleHRlbmRlZCBvbmUgb3IgdmljZSB2ZXJzYVxuIgorIkRlbGV0ZSBpdCBmaXJzdC5cbiIKK21zZ3N0ciAiIgorIlZvY+ogbuNvIHBvZGUgYWx0ZXJhciB1bWEgcGFydGnn428gbm9ybWFsIHBhcmEgZXN0ZW5kaWRhIG91IHZpY2UtdmVyc2EuXG4iCisiRXhjbHVhIGEgcGFydGnn428gYW50ZXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gMyBhcyBXaG9sZSBkaXNrICg1KSxcbiIKKyJhcyBTdW5PUy9Tb2xhcmlzIGV4cGVjdHMgaXQgYW5kIGV2ZW4gTGludXggbGlrZXMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJDb25zaWRlcmUgbWFudGVyIGEgcGFydGnn428gMyBjb21vIGRpc2NvIGludGVpcm8gKDUpLFxuIgorInVtYSB2ZXogcXVlIG8gU3VuT1MvU29sYXJpcyBlc3BlcmEgaXN0byBlIGF06SBtZXNtbyBvIExpbnV4IGdvc3RhIGRpc3RvLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5IGFzIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImFuZCBwYXJ0aXRpb24gMTEgYXMgZW50aXJlIHZvbHVtZSAoNiksIGFzIElSSVggZXhwZWN0cyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkNvbnNpZGVyZSBtYW50ZXIgYSBwYXJ0aefjbyA5IGNvbW8gY2FiZedhbGhvIGRlIHZvbHVtZSAoMClcbiIKKyJlIGEgcGFydGnn428gMTEgY29tbyB1bSB2b2x1bWUgaW50ZWlybyAoNiksIHVtYSB2ZXogcXVlIG8gSVJJWCBlc3BlcmEgaXN0by5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5nZWQgc3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIHRvICV4ICglcylcbiIKK21zZ3N0ciAiTyB0aXBvIGRhIHBhcnRp5+NvICVkIGZvaSBhbHRlcmFkbyBwYXJhICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgaXMgdW5jaGFuZ2VkOiAleCAoJXMpXG4iCittc2dzdHIgIk8gdGlwbyBkYSBwYXJ0aefjbyAlZCBmb2kgYWx0ZXJhZG8gcGFyYSAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyNworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGJlZ2lubmluZ3MgKG5vbi1MaW51eD8pOlxuIgorbXNnc3RyICJBIHBhcnRp5+NvICVkIHBvc3N1aSBpbu1jaW9zIGbtc2ljby9s82dpY28gZGlmZXJlbnRlcyAobuNvIExpbnV4Pyk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyOSBmZGlzay9mZGlzay5jOjE4MzcgZmRpc2svZmRpc2suYzoxODQ2IGZkaXNrL2ZkaXNrLmM6MTg1NgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKK21zZ3N0ciAiICAgICBm7XMuID0gKCVkLCAlZCwgJWQpICIKKworIzogZmRpc2svZmRpc2suYzoxODMwIGZkaXNrL2ZkaXNrLmM6MTgzOAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpY2FsPSglZCwgJWQsICVkKVxuIgorbXNnc3RyICJs82dpY28gPSAoJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAiQSBwYXJ0aefjbyAlZCBwb3NzdWkgZmlucyBm7XNpY28vbPNnaWNvIGRpZmVyZW50ZXM6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCittc2dzdHIgIkEgcGFydGnn428gJWkgbuNvIGluaWNpYSBlbSB1bSBsaW1pdGUgZGUgY2lsaW5kcm86XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgMSlcbiIKK21zZ3N0ciAiZGV2ZXJpYSBzZXIgKCVkLCAlZCwgMSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxODUzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJBIHBhcnRp5+NvICVkIG7jbyB0ZXJtaW5hIGVtIHVtIGxpbWl0ZSBkZSBjaWxpbmRyby5cbiIKKworIzogZmRpc2svZmRpc2suYzoxODU3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAlZClcbiIKK21zZ3N0ciAiZGV2ZXJpYSBzZXIgKCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIHBoeXNpY2FsIHNlY3RvciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiQSBwYXJ0aefjbyAlaSBu428gaW5pY2lhIGVtIHVtIGxpbWl0ZSBkZSBjaWxpbmRybzpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQgTUIsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQuJWxkIEdCLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNjbyAlczogJWQgY2FiZedhcywgJWQgc2V0b3JlcywgJWQgY2lsaW5kcm9zXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJWQgaGVhZHMsICVsbHUgc2VjdG9ycy90cmFjaywgJWQgY3lsaW5kZXJzIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXM6ICVkIGNhYmXnYXMsICVkIHNldG9yZXMsICVkIGNpbGluZHJvc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCB0b3RhbCAlbGx1IHNlY3RvcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVbml0cyA9ICVzIG9mICVkICogJWQgPSAlZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXM6ICVkIGNhYmXnYXMsICVkIHNldG9yZXMsICVkIGNpbGluZHJvc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAidGFtYW5obyBkZSBpbm9kZSBpbnbhbGlkbyIKKworIzogZmRpc2svZmRpc2suYzoyMDA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3RoaW5nIHRvIGRvLiBPcmRlcmluZyBpcyBjb3JyZWN0IGFscmVhZHkuXG4iCisiXG4iCittc2dzdHIgIiIKKyJOYWRhIGEgZmF6ZXIuIE9yZGVtIGrhIGVzdOEgY29ycmV0YVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRvbmUuXG4iCittc2dzdHIgIiIKKyJDb25jbHXtZG9cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRvZXNuJ3QgbG9vayBsaWtlIGEgcGFydGl0aW9uIHRhYmxlXG4iCisiUHJvYmFibHkgeW91IHNlbGVjdGVkIHRoZSB3cm9uZyBkZXZpY2UuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMDc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgQm9vdCAgICBJbu1jaW8gICAgICBGaW0gICAgQmxvY29zICAgSWQgIFNpc3RlbWFcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5OAorbXNnaWQgIkRldmljZSIKK21zZ3N0ciAiRGlzcG9zaXRpdm8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjExNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiUGFydGl0aW9uIHRhYmxlIGVudHJpZXMgYXJlIG5vdCBpbiBkaXNrIG9yZGVyXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQYXJ0aef1ZXMgbPNnaWNhcyBmb3JhIGRhIG9yZGVtIGRvIGRpc2NvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXM6ICVkIGNhYmXnYXMsICVkIHNldG9yZXMsICVkIGNpbGluZHJvc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICJObyBPQSAgQ2IgU2V0ICBDaWwgIENiIFNldCAgQ2lsICAgIElu7WNpbyAgICBUYW0gIElEXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIKK21zZ3N0ciAiQXZpc286IGEgcGFydGnn428gJWQgY29udOltIG8gc2V0b3IgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRp5+NvICVkOiBhIGNhYmXnYSAlZCDpIG1haW9yIGRvIHF1ZSBvIG3heGltbzogJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHNlY3RvciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIlBhcnRp5+NvICVkOiBvIHNldG9yICVkIOkgbWFpb3IgZG8gcXVlIG8gbeF4aW1vOiAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9ucyAlZDogY3lsaW5kZXIgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAiUGFydGnn428gJWQ6IG8gY2lsaW5kcm8gJWQg6SBtYWlvciBkbyBxdWUgbyBt4XhpbW86ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHByZXZpb3VzIHNlY3RvcnMgJWQgZGlzYWdyZWVzIHdpdGggdG90YWwgJWRcbiIKK21zZ3N0ciAiIgorIlBhcnRp5+NvICVkOiBvcyBzZXRvcmVzIGFudGVyaW9yZXMgJWQgbuNvIGVzdONvIGRlIGFjb3JkbyBjb20gbyB0b3RhbDogJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjIzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBzdGFydC1vZi1kYXRhIGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJBdmlzbzogaW7tY2lvIGRlIGRhZG9zIGluduFsaWRvIG5hIHBhcnRp5+NvICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgb3ZlcmxhcHMgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJBdmlzbzogYSBwYXJ0aefjbyAlZCBzb2JyZXD1ZS1zZSDgIHBhcnRp5+NvICVkLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGlzIGVtcHR5XG4iCittc2dzdHIgIkF2aXNvOiBhIHBhcnRp5+NvICVkIGVzdOEgdmF6aWFcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiQSBwYXJ0aefjbyBs82dpY2EgJWQgbuNvIGVzdOEgY29tcGxldGFtZW50ZSBuYSBwYXJ0aefjbyAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlRvdGFsIGFsbG9jYXRlZCBzZWN0b3JzICVsbHUgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAiTyB0b3RhbCBkZSBzZXRvcmVzIGFsb2NhZG9zLCAlZCwg6SBtYWlvciBkbyBxdWUgbyBt4XhpbW86ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUmVtYWluaW5nICVsbGQgdW5hbGxvY2F0ZWQgJWQtYnl0ZSBzZWN0b3JzXG4iCittc2dzdHIgIiVkIHNldG9yZXMgbuNvIGFsb2NhZG9zXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjMwMSBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjIwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGlzIGFscmVhZHkgZGVmaW5lZC4gIERlbGV0ZSBpdCBiZWZvcmUgcmUtYWRkaW5nIGl0LlxuIgorbXNnc3RyICIiCisiQSBwYXJ0aefjbyAlZCBq4SBlc3ThIGRlZmluaWRhLiBFeGNsdWEgZXNzYSBwYXJ0aefjbyBhbnRlcyBkZSBhZGljaW9u4S1sYSAiCisibm92YW1lbnRlLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlbGx1IGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIk8gc2V0b3IgJWQgauEgZXN04SBhbG9jYWRvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBmcmVlIHNlY3RvcnMgYXZhaWxhYmxlXG4iCittc2dzdHIgIk7jbyBo4SBzZXRvcmVzIGxpdnJlcyBkaXNwb27tdmVpc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlMSRzLCArJTIkcyBvciArc2l6ZXtLLE0sR30iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNDcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIEFJWCBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iCittc2dzdHIgIiIKKyJWb2PqIHByZWNpc2EgZXhjbHVpciBhbGd1bWEgcGFydGnn428gZSBhZGljaW9uYXIgdW1hIHBhcnRp5+NvIGVzdGVuZGlkYSAiCisiYW50ZXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGwgbG9naWNhbCBwYXJ0aXRpb25zIGFyZSBpbiB1c2VcbiIKK21zZ3N0ciAicGFydGnn9WVzIGzzZ2ljYXMgZm9yYSBkYSBvcmRlbSBkbyBkaXNjbyIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBZGRpbmcgYSBwcmltYXJ5IHBhcnRpdGlvblxuIgorbXNnc3RyICJQYXJ0aefjbyBwcmlt4XJpYSBpbnbhbGlkYSIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKyJDb21hbmRvIC0gYefjb1xuIgorIiAgICVzXG4iCisiICAgcCAgIHBhcnRp5+NvIHByaW3hcmlhICgxLTQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIgorbXNnc3RyICJsICAgbPNnaWNhICg1IG91IHN1cGVyaW9yKSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAgZXN0ZW5kaWRhIgorCisjOiBmZGlzay9mZGlzay5jOjI1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXJ0aXRpb24gbnVtYmVyIGZvciB0eXBlIGAlYydcbiIKK21zZ3N0ciAiTvptZXJvIGRlIHBhcnRp5+NvIGluduFsaWRvIHBhcmEgbyB0aXBvIGAlYydcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhXG4iCisiXG4iCittc2dzdHIgIiIKKyJBIHRhYmVsYSBkZSBwYXJ0aef1ZXMgZm9pIGFsdGVyYWRhIVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJDaGFtYW5kbyBpb2N0bCgpIHBhcmEgcmVsZXIgdGFiZWxhIGRlIHBhcnRp5/Vlcy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55IERPUyA2LnhcbiIKKyJwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBmZGlzayBtYW51YWwgcGFnZSBmb3IgYWRkaXRpb25hbFxuIgorImluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiQVZJU086IFNlIHZvY+ogdGl2ZXIgY3JpYWRvIG91IGFsdGVyYWRvIHF1YWxxdWVyXG4iCisicGFydGnn428gRE9TIDYueCwgY29uc3VsdGUgYSBw4WdpbmEgZGUgbWFudWFsXG4iCisiZG8gZmRpc2sgcGFyYSBvYnRlciBpbmZvcm1h5/VlcyBhZGljaW9uYWlzLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJFcnJvciBjbG9zaW5nIGZpbGVcbiIKK21zZ3N0ciAiRXJybyBubyBmZWNoYW1lbnRvIGRlICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICJTaW5jcm9uaXphbmRvIGRpc2Nvcy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgbm8gZGF0YSBhcmVhXG4iCittc2dzdHIgIkEgcGFydGnn428gJWQgbuNvIHBvc3N1aSDhcmVhIGRlIGRhZG9zXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiTm92byBpbu1jaW8gZG9zIGRhZG9zIgorCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQ29tYW5kbyBhdmFu52FkbyAobSBwYXJhIGFqdWRhKTogIgorCisjOiBmZGlzay9mZGlzay5jOjI2ODUKK21zZ2lkICJOdW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICJO+m1lcm8gZGUgY2lsaW5kcm9zIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIk76bWVybyBkZSBjYWJl52FzIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzcKK21zZ2lkICJOdW1iZXIgb2Ygc2VjdG9ycyIKK21zZ3N0ciAiTvptZXJvIGRlIHNldG9yZXMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBzZXR0aW5nIHNlY3RvciBvZmZzZXQgZm9yIERPUyBjb21wYXRpYmxpdHlcbiIKK21zZ3N0ciAiIgorIkF2aXNvOiBjb25maWd1cmFuZG8gbyBkZXNsb2NhbWVudG8gZGUgc2V0b3IgcGFyYSBjb21wYXRpYmlsaWRhZGUgY29tIERPU1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAiTyBkaXNjbyAlcyBu428gY29udOltIHVtYSB0YWJlbGEgZGUgcGFydGnn9WVzIHbhbGlkYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGFicmlyICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlYzogdW5rbm93biBjb21tYW5kXG4iCittc2dzdHIgIiVjOiBjb21hbmRvIGRlc2NvbmhlY2lkbzpcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICIiCisiRXN0ZSBrZXJuZWwgbG9jYWxpemEgbyB0YW1hbmhvIGRlIHNldG9yIHBvciBjb250YSBwcvNwcmlhIC0gb3Dn428gLWIgIgorImlnbm9yYWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiQXZpc286IGEgb3Dn428gLWIgKGNvbmZpZ3VyYXIgdGFtYW5obyBkZSBzZXRvcikgZGV2ZSBzZXIgdXNhZGEgY29tIHVtICIKKyJkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG9cbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBhbiBPU0YvMSBkaXNrbGFiZWwgb24gJXMsIGVudGVyaW5nIGRpc2tsYWJlbCBtb2RlLlxuIgorbXNnc3RyICIiCisiRGV0ZWN0YWRvIHVtIHLzdHVsbyBPU0YvMSBlbSAlcywgZW50cmFuZG8gZW0gbW9kbyBkZSBy83R1bG8uXG4iCisiUGFyYSByZXRvcm5hciBhbyBtb2RvIGRlIHRhYmVsYSBkZSBwYXJ0aef1ZXMgZG8gRE9TLCB1c2UgbyBjb21hbmRvICdyJy5cbiIKKworIzogZmRpc2svZmRpc2suYzozMDEwCittc2dpZCAiQ29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQ29tYW5kbyAobSBwYXJhIGFqdWRhKTogIgorCisjOiBmZGlzay9mZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBjdXJyZW50IGJvb3QgZmlsZSBpczogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIk8gYXJxdWl2byBkZSBib290IGF0dWFsIOk6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJJbmZvcm1lIG8gbm9tZSBkbyBub3ZvIGFycXVpdm8gZGUgYm9vdDogIgorCisjOiBmZGlzay9mZGlzay5jOjMwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdCBmaWxlIHVuY2hhbmdlZFxuIgorbXNnc3RyICJBcnF1aXZvIGRlIGJvb3QgaW5hbHRlcmFkb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjMxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJIHBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiXHREZXNjdWxwZS4gTuNvIGjhIHVtIG1lbnUgYXZhbudhZG8gZGlzcG9u7XZlbCBwYXJhIHRhYmVsYXMgZGUgcGFydGnn428gIgorIlNHSS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2ttYWNsYWJlbC5jOjMwCisjLCBmdXp6eQorbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgTWFjIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgZmRpc2soMSkgY2Fubm90IGhhbmRsZSB0aGVzZSBkaXNrcy5cbiIKKyJcdFVzZSBlaXRoZXIgcGRpc2sgb3IgcGFydGVkIHRvIG1vZGlmeSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorIlx0TmV2ZXJ0aGVsZXNzIHNvbWUgYWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorbXNnc3RyICIiCisiXG4iCisiXHRFeGlzdGUgdW0gcvN0dWxvIEFJWCB24WxpZG8gbmVzdGUgZGlzY28uXG4iCisiXHRJbmZlbGl6bWVudGUsIG8gTGludXggbuNvIOkgY2FwYXogZGUgbWFuaXB1bGFyIGRpc2Nvc1xuIgorIlx0ZGUgdGFsIHRpcG8gYXR1YWxtZW50ZS4gTuNvIG9ic3RhbnRlLCBhbGd1bnNcbiIKKyJcdGNvbnNlbGhvczpcbiIKKyJcdDEuIGZkaXNrIGRlc3RydWly4SBzZXUgY29udGX6ZG8gbmEgZ3JhdmHn428uXG4iCisiXHQyLiBDZXJ0aWZpcXVlLXNlIGRlIHF1ZSBvIGRpc2NvIE7DTyDpIG1haXMgdW1hIHBhcnRlIHZpdGFsXG4iCisiXHQgICBkZSB1bSBncnVwbyBkZSB2b2x1bWVzIChkbyBjb250cuFyaW8sIHZvY+ogcG9kZXLhIGFwYWdhclxuIgorIlx0ICAgdGFtYultIG91dHJvcyBkaXNjb3MsIHNlIG7jbyBob3V2ZXIgZXNwZWxoYW1lbnRvKS5cbiIKKyJcdDMuIEFudGVzIGRlIGV4Y2x1aXIgZXN0ZSB2b2x1bWUgZu1zaWNvLCBjZXJ0aWZpcXVlLXNlIGRlXG4iCisiXHQgICByZW1vdmVyIG8gZGlzY28gbG9naWNhbWVudGUgZGUgc3VhIG3hcXVpbmEgQUlYXG4iCisiXHQgICAoZG8gY29udHLhcmlvIHZvY+ogaXLhIHNlIHRvcm5hciB1bSBBSVhwZXJ0KS4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MQorbXNnaWQgIlNHSSB2b2xoZHIiCittc2dzdHIgInZvbGhkciBTR0kiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MgorbXNnaWQgIlNHSSB0cmtyZXBsIgorbXNnc3RyICJ0cmtyZXBsIFNHSSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgzCittc2dpZCAiU0dJIHNlY3JlcGwiCittc2dzdHIgInNlY3JlcGwgU0dJIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODQKK21zZ2lkICJTR0kgcmF3IgorbXNnc3RyICJyYXcgU0dJIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODUKK21zZ2lkICJTR0kgYnNkIgorbXNnc3RyICJic2QgU0dJIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODYKK21zZ2lkICJTR0kgc3lzdiIKK21zZ3N0ciAic3lzdiBTR0kiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NworbXNnaWQgIlNHSSB2b2x1bWUiCittc2dzdHIgInZvbHVtZSBTR0kiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OAorbXNnaWQgIlNHSSBlZnMiCittc2dzdHIgImVmcyBTR0kiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OQorbXNnaWQgIlNHSSBsdm9sIgorbXNnc3RyICJsdm9sIFNHSSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkwCittc2dpZCAiU0dJIHJsdm9sIgorbXNnc3RyICJybHZvbCBTR0kiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MQorbXNnaWQgIlNHSSB4ZnMiCittc2dzdHIgInhmcyBTR0kiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MgorbXNnaWQgIlNHSSB4ZnNsb2ciCittc2dzdHIgIlNHSSB4ZnNsb2ciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MworbXNnaWQgIlNHSSB4bHYiCittc2dzdHIgIlNHSSB4bHYiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NAorbXNnaWQgIlNHSSB4dm0iCittc2dzdHIgIlNHSSB4dm0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NSBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAKK21zZ2lkICJMaW51eCBzd2FwIgorbXNnc3RyICJMaW51eCBzd2FwIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTYgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUxCittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICJMaW51eCBuYXRpdmEiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTIgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MworbXNnaWQgIkxpbnV4IExWTSIKK21zZ3N0ciAiTGludXggTFZNIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTgKK21zZ2lkICJMaW51eCBSQUlEIgorbXNnc3RyICJMaW51eCBSQUlEIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJBY2NvcmRpbmcgdG8gTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMgdGhlIExhYmVsIG11c3Qgbm90IGNvbnRhaW4gbW9yZSB0aGFuICIKKyI1MTIgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIkRlIGFjb3JkbyBjb20gYSBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYy4sIG8gcvN0dWxvIG7jbyBwb2RlIGNvbnRlciBtYWlzICIKKyJkbyBxdWUgNTEyIGJ5dGVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJEZXRlY3RhZG8gcvN0dWxvIGRlIGRpc2NvIFNHSSBjb20gc29tYSBkZSB2ZXJpZmljYefjbyBpbmNvcnJldGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnNcbiIKKyIlZCBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2NvICVzIChy83R1bG8gZGUgZGlzY28gU0dJKTogJWQgY2FiZedhcywgJWQgc2V0b3Jlc1xuIgorIiVkIGNpbGluZHJvcywgJWQgY2lsaW5kcm9zIGbtc2ljb3NcbiIKKyIlZCBzZXRvcmVzL2NpbCBleHRyYXMsIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiVW5pZGFkZXMgPSAlcyBkZSAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2NvICVzIChy83R1bG8gZGUgZGlzY28gU0dJKTogJWQgY2FiZedhcywgJWQgc2V0b3JlcywgJWQgY2lsaW5kcm9zXG4iCisiVW5pZGFkZXMgPSAlcyBkZSAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIHBhcnRp5/VlcyAtLS0tLVxuIgorIiUqcyAgSW5mbyAgICAgIElu7WNpbyAgICAgIEZpbSAgIFNldG9yZXMgIElkICBTaXN0ZW1hXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSBpbmZvcm1h5/VlcyBkZSBpbmljaWFsaXph5+NvIC0tLS0tXG4iCisiQXJxdWl2byBkZSBpbmljaWFsaXph5+NvOiAlc1xuIgorIi0tLS0tIGVudHJhZGFzIGRlIGRpcmV083JpbyAtLS0tLVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiUyZDogJS0xMHMgc2VjdG9yJTV1IHNpemUlOHVcbiIKK21zZ3N0ciAiJTJkOiAlLTEwcyBzZXRvciAlNXUgdGFtYW5obyAlOHVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSW52YWxpZCBCb290ZmlsZSFcbiIKKyJcdFRoZSBib290ZmlsZSBtdXN0IGJlIGFuIGFic29sdXRlIG5vbi16ZXJvIHBhdGhuYW1lLFxuIgorIlx0ZS5nLiBcIi91bml4XCIgb3IgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBcnF1aXZvIGRlIGluaWNpYWxpemHn428gaW524WxpZG8hXG4iCisiXHRPIGFycXVpdm8gZGUgaW5pY2lhbGl6YefjbyBwcmVjaXNhIGNvcnJlc3BvbmRlciBhIHVtIGNhbWluaG8gXG4iCisiXHRkaWZlcmVudGUgZGUgemVybzsgcG9yIGV4ZW1wbG8sIFwiL3VuaXhcIiBvdSBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0Tm9tZSBkZSBhcnF1aXZvIGRlIGluaWNpYWxpemHn428gbG9uZ28gZGVtYWlzOiBvIG3heGltbyBwZXJtaXRpZG8g6SBkZSAxNiAiCisiYnl0ZXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRPIGFycXVpdm8gZGUgaW5pY2lhbGl6YefjbyBwcmVjaXNhIHRlciB1bSBjYW1pbmhvIHRvdGFsbWVudGUgcXVhbGlmaWNhZG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0QmUgYXdhcmUsIHRoYXQgdGhlIGJvb3RmaWxlIGlzIG5vdCBjaGVja2VkIGZvciBleGlzdGVuY2UuXG4iCisiXHRTR0kncyBkZWZhdWx0IGlzIFwiL3VuaXhcIiBhbmQgZm9yIGJhY2t1cCBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RXN0ZWphIGNpZW50ZSBkZSBxdWUgYSBleGlzdOpuY2lhIGRvIGFycXVpdm8gZGUgaW5pY2lhbGl6YefjbyBu429cbiIKKyJcdCDpIGNvbmZlcmlkYS4gTyBwYWRy428gZGEgU0dJIOkgXCIvdW5peFwiIGUsIHBhcmEgbyBiYWNrdXAsIFwiL3VuaXguc2F2ZSIKKyJcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0QXJxdWl2byBkZSBpbmljaWFsaXph5+NvIGFsdGVyYWRvIHBhcmEgXCIlc1wiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1vcmUgdGhhbiBvbmUgZW50aXJlIGRpc2sgZW50cnkgcHJlc2VudC5cbiIKK21zZ3N0ciAiTWFpcyBkbyBxdWUgdW1hIGVudHJhZGEgZGUgZGlzY28gaW50ZWlybyBwcmVzZW50ZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJOZW5odW1hIHBhcnRp5+NvIGRlZmluaWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSVJJWCBsaWtlcyB3aGVuIFBhcnRpdGlvbiAxMSBjb3ZlcnMgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICJPIElSSVggZ29zdGEgcXVhbmRvIGEgcGFydGnn428gMTEgYWJyYW5nZSB0b2RvIG8gZGlzY28uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIkEgcGFydGnn428gZGUgZGlzY28gaW50ZWlybyBkZXZlIGluaWNpYXIgbm8gYmxvY28gMCxcbiIKKyJu428gbm8gYmxvY28gZGUgZGlzY28gJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gaXMgb25seSAlZCBkaXNrYmxvY2sgbGFyZ2UsXG4iCisiYnV0IHRoZSBkaXNrIGlzICVkIGRpc2tibG9ja3MgbG9uZy5cbiIKK21zZ3N0ciAiIgorIkEgcGFydGnn428gZGUgZGlzY28gaW50ZWlybyB0ZW0gdW0gdGFtYW5obyBkZSBhcGVuYXMgJWQgYmxvY29zIGRlIGRpc2NvLFxuIgorIm1hcyBvIGRpc2NvIHRlbSAlZCBibG9jb3MgZGUgdGFtYW5oby5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJPbmUgUGFydGl0aW9uICgjMTEpIHNob3VsZCBjb3ZlciB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIlVtYSBwYXJ0aefjbyAobrogMTEpIGRldmUgYWJyYW5nZXIgdG9kbyBvIGRpc2NvLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiQSBwYXJ0aefjbyAlZCBu428gaW5pY2lhIGVtIHVtIGxpbWl0ZSBkZSBjaWxpbmRyby5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJBIHBhcnRp5+NvICVkIG7jbyB0ZXJtaW5hIGVtIHVtIGxpbWl0ZSBkZSBjaWxpbmRyby5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIkFzIHBhcnRp5/VlcyAlZCBlICVkIHNlIHNvYnJlcPVlbSBwb3IgJWQgc2V0b3Jlcy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ4NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTAyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAiSW50ZXJ2YWxvIG7jbyB1dGlsaXphZG8gZGUgJThkIHNldG9yZXMgLSBzZXRvcmVzICU4ZCAtICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkEgcGFydGnn428gZGUgaW5pY2lhbGl6YefjbyBu428gZXhpc3RlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBIHBhcnRp5+NvIGRlIHBlcm11dGEgbuNvIGV4aXN0ZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGhhcyBubyBzd2FwIHR5cGUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBIHBhcnRp5+NvIGRlIHBlcm11dGEgbuNvIHBvc3N1aSB0aXBvIGRlIHBlcm11dGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiXHRWb2PqIGVzY29saGV1IHVtIG5vbWUgZGUgYXJxdWl2byBkZSBpbmljaWFsaXph5+NvIGluY29tdW0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnkgWW91IG1heSBjaGFuZ2UgdGhlIFRhZyBvZiBub24tZW1wdHkgcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAiIgorIkRlc2N1bHBlLiBWb2PqIHBvZGUgYWx0ZXJhciBhcGVuYXMgYSBldGlxdWV0YSBkZSBwYXJ0aef1ZXMgbuNvIHZhemlhcy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzOAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgb2YgdHlwZSBcIlNHSSB2b2xoZHJcIiwgdGhlIElSSVggc3lzdGVtIHdpbGwgcmVseSBvbiBpdCB0b1xuIgorInJldHJpZXZlIGZyb20gaXRzIGRpcmVjdG9yeSBzdGFuZGFsb25lIHRvb2xzIGxpa2Ugc2FzaCBhbmQgZnguXG4iCisiT25seSB0aGUgXCJTR0kgdm9sdW1lXCIgZW50aXJlIGRpc2sgc2VjdGlvbiBtYXkgdmlvbGF0ZSB0aGlzLlxuIgorIlR5cGUgWUVTIGlmIHlvdSBhcmUgc3VyZSBhYm91dCB0YWdnaW5nIHRoaXMgcGFydGl0aW9uIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiUmVjb21lbmRhLXNlIGZvcnRlbWVudGUgcXVlIGEgcGFydGnn428gbm8gZGVzbG9jYW1lbnRvIDAgc2VqYSBkb1xuIgorInRpcG8gXCJ2b2xoZHIgU0dJXCIsIGrhIHF1ZSBvIHNpc3RlbWEgSVJJWCBpcuEgdXPhLWxhIHBhcmEgcmVjdXBlcmFyXG4iCisiZGUgc2V1IGRpcmV083JpbyBmZXJyYW1lbnRhcyBpbmRlcGVuZGVudGVzIGNvbW8gbyBzYXNoIGUgbyBmeC5cbiIKKyJTb21lbnRlIGEgc2Xn428gZGUgZGlzY28gaW50ZWlybyBcInZvbHVtZSBTR0lcIiBwb2RlIHZpb2xhciBpc3RvLlxuIgorIkRpZ2l0ZSBTSU0gc2UgdGl2ZXIgY2VydGV6YSBkZSBxdWUgZGVzZWphIGV0aXF1ZXRhciBlc3RhIHBhcnRp5+NvIGRlIG1vZG8gIgorImRpZmVyZW50ZS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU2OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBZb3Uga25vdywgWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrP1xuIgorbXNnc3RyICJWb2PqIHNhYmlhIHF1ZSB0ZW0gdW1hIHNvYnJlcG9zaefjbyBkZSBwYXJ0aef1ZXMgbm8gZGlzY28/XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBlbnRpcmUgZGlzayBlbnRyeSBhdXRvbWF0aWNhbGx5LlxuIgorbXNnc3RyICJUZW50YW5kbyBnZXJhciBlbnRyYWRhIGRlIGRpc2NvIGludGVpcm8gYXV0b21hdGljYW1lbnRlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlbnRpcmUgZGlzayBpcyBhbHJlYWR5IGNvdmVyZWQgd2l0aCBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICJPIGRpc2NvIGludGVpcm8gauEgZXN04SBjb2JlcnRvIGNvbSBwYXJ0aef1ZXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIkV4aXN0ZSB1bWEgc29icmVwb3Np5+NvIGRlIHBhcnRp5/VlcyBubyBkaXNjby4gQ29ycmlqYS1hIGFudGVzIVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjQ0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IGVsZXZlbnRoIHBhcnRpdGlvblxuIgorImNvdmVycyB0aGUgZW50aXJlIGRpc2sgYW5kIGlzIG9mIHR5cGUgYFNHSSB2b2x1bWUnXG4iCittc2dzdHIgIiIKKyJSZWNvbWVuZGEtc2UgZm9ydGVtZW50ZSBxdWUgYSBwYXJ0aefjbyAxMVxuIgorImN1YnJhIHRvZG8gbyBkaXNjbyBlIHNlamEgZG8gdGlwbyBgdm9sdW1lIFNHSSdcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBnZXQgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICJIYXZlcuEgdW1hIHNvYnJlcG9zaefjbyBkZSBwYXJ0aef1ZXMgbm8gZGlzY28uIENvcnJpamEtYSBhbnRlcyFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgTGFzdCAlcyIKK21zZ3N0ciAiINpsdGltbyAlcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgU0dJIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3aWxsIGJlIHVucmVjb3ZlcmFibHkgbG9zdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkNyaWFuZG8gdW0gbm92byBy83R1bG8gZGUgZGlzY28gU0dJLiBBcyBhbHRlcmHn9WVzIHBlcm1hbmVjZXLjb1xuIgorInNvbWVudGUgZW0gbWVt83JpYSBhdOkgcXVlIHZvY+ogZGVjaWRhIGdyYXbhLWxhcy4gQXDzcyBpc3RvLCDpIGNsYXJvLFxuIgorIm8gY29udGX6ZG8gYW50ZXJpb3IgbuNvIHBvZGVy4SBtYWlzIHNlciByZWN1cGVyYWRvLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzE4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6ICBCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlcy4gIFVzaW5nIGdlb21ldHJ5IGN5bGluZGVyIHZhbHVlIG9mICUiCisiZC5cbiIKKyJUaGlzIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgZm9yIGRldmljZXMgPiAzMy44IEdCLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIGtlZXAgcGFyYW1ldGVycyBvZiBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIlRlbnRhbmRvIG1hbnRlciBvcyBwYXLibWV0cm9zIGRhIHBhcnRp5+NvICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklEPSUwMnhcdFNUQVJUPSVkXHRMRU5HVEg9JWRcbiIKK21zZ3N0ciAiSUQ9JTAyeFx0SU7NQ0lPPSVkXHRDT01QUklNRU5UTz0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgKK21zZ2lkICJVbmFzc2lnbmVkIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MAorbXNnaWQgIlN1bk9TIHJvb3QiCittc2dzdHIgInJvb3QgU3VuT1MiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MQorbXNnaWQgIlN1bk9TIHN3YXAiCittc2dzdHIgInBlcm11dGEgU3VuT1MiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MgorbXNnaWQgIlN1bk9TIHVzciIKK21zZ3N0ciAidXNyIFN1bk9TIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDMKK21zZ2lkICJXaG9sZSBkaXNrIgorbXNnc3RyICJEaXNjbyBpbnRlaXJvIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQKK21zZ2lkICJTdW5PUyBzdGFuZCIKK21zZ3N0ciAic3RhbmQgU3VuT1MiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NQorbXNnaWQgIlN1bk9TIHZhciIKK21zZ3N0ciAidmFyIFN1bk9TIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDYKK21zZ2lkICJTdW5PUyBob21lIgorbXNnc3RyICJob21lIFN1bk9TIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIiVkIHNldG9yZXMgbuNvIGFsb2NhZG9zXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorIywgZnV6enkKK21zZ2lkICJTdW5PUyBjYWNoZWZzIgorbXNnc3RyICJob21lIFN1bk9TIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDkKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgInVzciBTdW5PUyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICJEZXRlY+fjbyBhdXRvbeF0aWNhIGRlIFJBSUQgTGludXgiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorIkRldGVjdGFkbyBy83R1bG8gZGUgZGlzY28gU3VuIGNvbSBzb21hIGRlIHZlcmlmaWNh5+NvIGluY29ycmV0YS5cbiIKKyJQcm92YXZlbG1lbnRlIHNlcuEgbmVjZXNz4XJpbyBjb25maWd1cmFyIHRvZG9zIG9zIHZhbG9yZXMsIGlzdG8g6SwgY2FiZedhcywgIgorInNldG9yZXMgZVxuIgorInBhcnRp5/VlcyBvdSBmb3LnYXIgdW0gcvN0dWxvIG5vdm8gKGNvbWFuZG8gcyBubyBtZW51IHByaW5jaXBhbCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICJEZXRlY3RhZG8gcvN0dWxvIGRlIGRpc2NvIFNHSSBjb20gc29tYSBkZSB2ZXJpZmljYefjbyBpbmNvcnJldGEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBzYW5pdHkgWzB4JTA4eF0uXG4iCittc2dzdHIgIkRldGVjdGFkbyBy83R1bG8gZGUgZGlzY28gU0dJIGNvbSBzb21hIGRlIHZlcmlmaWNh5+NvIGluY29ycmV0YS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgIkRldGVjdGFkbyBy83R1bG8gZGUgZGlzY28gU0dJIGNvbSBzb21hIGRlIHZlcmlmaWNh5+NvIGluY29ycmV0YS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJBdmlzbzogYSBvcOfjbyBpbnbhbGlkYSAweCUwNHggZGEgdGFiZWxhIGRlIHBhcnRp5/VlcyAlZCBzZXLhIGNvcnJpZ2lkYSBwb3IgIgorImdyYXZh5+NvICh3KVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBzdW4gZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiQ3JpYW5kbyB1bSBub3ZvIHLzdHVsbyBkZSBkaXNjbyBTdW4uIEFzIGFsdGVyYef1ZXMgcGVybWFuZWNlcuNvXG4iCisic29tZW50ZSBlbSBtZW3zcmlhIGF06SBxdWUgdm9j6iBkZWNpZGEgZ3JhduEtbGFzLiBBcPNzIGlzdG8sIOkgY2xhcm8sXG4iCisibyBjb250ZfpkbyBhbnRlcmlvciBu428gcG9kZXLhIG1haXMgc2VyIHJlY3VwZXJhZG8uXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICJTZXRvcmVzL3RyaWxoYSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiQSBwYXJ0aefjbyAlZCBu428gdGVybWluYSBlbSB1bSBsaW1pdGUgZGUgY2lsaW5kcm9cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgb3ZlcmxhcHMgd2l0aCBvdGhlcnMgaW4gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICJBIHBhcnRp5+NvICVkIHNvYnJlcPVlLXNlIGEgb3V0cmFzIG5vcyBzZXRvcmVzICVkIC0gJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAwLSVkXG4iCittc2dzdHIgIkludGVydmFsbyBu428gdXRpbGl6YWRvIC0gc2V0b3JlcyAwIC0gJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIkludGVydmFsbyBu428gdXRpbGl6YWRvIC0gc2V0b3JlcyAlZCAtICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKyJPdXRyYXMgcGFydGnn9WVzIGrhIGNvYnJlbSBvIGRpc2NvIGludGVpcm8uXG4iCisiRXhjbHVhIG91IHJlZHV6YSBhbGd1bWFzIGFudGVzIGRlIHRlbnRhciBub3ZhbWVudGUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiUmVjb21lbmRhLXNlIGZvcnRlbWVudGUgcXVlIGEgcGFydGnn428gMTFcbiIKKyJjdWJyYSB0b2RvIG8gZGlzY28gZSBzZWphIGRvIHRpcG8gYHZvbHVtZSBTR0knXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIk8gc2V0b3IgJWQgauEgZXN04SBhbG9jYWRvXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlbid0IGNvdmVyZWQgdGhlIHdob2xlIGRpc2sgd2l0aCB0aGUgM3JkIHBhcnRpdGlvbiwgYnV0IHlvdXIgdmFsdWVcbiIKKyIlZCAlcyBjb3ZlcnMgc29tZSBvdGhlciBwYXJ0aXRpb24uIFlvdXIgZW50cnkgaGFzIGJlZW4gY2hhbmdlZFxuIgorInRvICVkICVzXG4iCittc2dzdHIgIiIKKyJWb2PqIG7jbyBjb2JyaXUgbyBkaXNjbyBpbnRlaXJvIGNvbSBhIHRlcmNlaXJhIHBhcnRp5+NvLCBtYXMgc2V1IHZhbG9yXG4iCisiJWQgJXMgY29icmUgYWxndW1hIG91dHJhIHBhcnRp5+NvLiBTdWEgZW50cmFkYSBmb2kgYWx0ZXJhZGFcbiIKKyJwYXJhICVkICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklmIHlvdSB3YW50IHRvIG1haW50YWluIFN1bk9TL1NvbGFyaXMgY29tcGF0aWJpbGl0eSwgY29uc2lkZXIgbGVhdmluZyB0aGlzXG4iCisicGFydGl0aW9uIGFzIFdob2xlIGRpc2sgKDUpLCBzdGFydGluZyBhdCAwLCB3aXRoICV1IHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorIlNlIHZvY+ogZGVzZWphIG1hbnRlciBjb21wYXRpYmlsaWRhZGUgY29tIFN1bk9TL1NvbGFyaXMsIGNvbnNpZGVyZSBkZWl4YXJcbiIKKyJlc3RhIHBhcnRp5+NvIGNvbW8gdW0gZGlzY28gaW50ZWlybyAoNSksIGNvbWXnYW5kbyBlbSAwLCBjb20gJXUgc2V0b3Jlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBVRlMsIEVYVDJGUyBmaWxlc3lzdGVtIG9yIFN1bk9TIHN3YXAuIFB1dHRpbmcgTGludXggc3dhcFxuIgorInRoZXJlIG1heSBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlIGFuZCBib290YmxvY2suXG4iCisiVHlwZSBZRVMgaWYgeW91J3JlIHZlcnkgc3VyZSB5b3Ugd291bGQgbGlrZSB0aGF0IHBhcnRpdGlvblxuIgorInRhZ2dlZCB3aXRoIDgyIChMaW51eCBzd2FwKTogIgorbXNnc3RyICIiCisiUmVjb21lbmRhLXNlIGZvcnRlbWVudGUgcXVlIGEgcGFydGnn428gbm8gZGVzbG9jYW1lbnRvIDBcbiIKKyJzZWphIGRvIHRpcG8gVUZTLCBzaXN0ZW1hIGRlIGFycXVpdm9zIEVYVDJGUyBvdSBwZXJtdXRhIFN1bk9zLlxuIgorIkNvbG9jYXIgYSBwZXJtdXRhIGRvIExpbnV4IGFsaSBwb2RlIGRlc3RydWlyIGEgdGFiZWxhIGRlIHBhcnRp5/VlcyBlXG4iCisidHJhdmFyIGEgaW5pY2lhbGl6Yefjby5cbiIKKyJEaWdpdGUgU0lNIHNlIHRpdmVyIGNlcnRlemEgZGUgcXVlIGRlc2VqYSByb3R1bGFyIGVzdGEgcGFydGnn428gY29tbyA4MiAiCisiKHBlcm11dGEgZG8gTGludXgpOiAiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIHJwbVxuIgorIiVkIGN5bGluZGVycywgJWQgYWx0ZXJuYXRlIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyJMYWJlbCBJRDogJXNcbiIKKyJWb2x1bWUgSUQ6ICVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzY28gJXMgKHLzdHVsbyBkZSBkaXNjbyBTdW4pOiAlZCBjYWJl52FzLCAlZCBzZXRvcmVzLCAlZCBSUE1cbiIKKyIlZCBjaWxpbmRyb3MsICVkIGNpbGluZHJvcyBhbHRlcm5hdGl2b3MsICVkIGNpbGluZHJvcyBm7XNpY29zXG4iCisiJWQgc2V0b3JlcyBleHRyYXMvY2lsaW5kcm8sIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiVW5pZGFkZXMgPSAlcyBkZSAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNjbyAlcyAocvN0dWxvIGRlIGRpc2NvIFN1bik6ICVkIGNhYmXnYXMsICVkIHNldG9yZXMsICVkIGNpbGluZHJvc1xuIgorIlVuaWRhZGVzID0gJXMgZGUgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgRmxhZyAgICBTdGFydCAgICAgICBFbmQgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgT3Dn428gICBJbu1jaW8gICAgICBGaW0gICAgQmxvY29zICAgSWQgIFNpc3RlbWFcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYyNQorbXNnaWQgIk51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICJO+m1lcm8gZGUgY2lsaW5kcm9zIGFsdGVybmF0aXZvcyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYzNworbXNnaWQgIkV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICJTZXRvcmVzIGV4dHJhcyBwb3IgY2lsaW5kcm86ICIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY0NAorbXNnaWQgIkludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICJGYXRvciBkZSBcIkludGVybGVhdmVcIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1MQorbXNnaWQgIlJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICJWZWxvY2lkYWRlIGRlIHJvdGHn428gKFJQTSkiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTgKK21zZ2lkICJOdW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICJO+m1lcm8gZGUgY2lsaW5kcm9zIGbtc2ljb3MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICJWYXppYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3Cittc2dpZCAiRkFUMTIiCittc2dzdHIgIkZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgKK21zZ2lkICJYRU5JWCByb290IgorbXNnc3RyICJyb290IFhFTklYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkKK21zZ2lkICJYRU5JWCB1c3IiCittc2dzdHIgInVzciBYRU5JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMAorbXNnaWQgIkZBVDE2IDwzMk0iCittc2dzdHIgIkZBVDE2IDwgMzIgTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMQorbXNnaWQgIkV4dGVuZGVkIgorbXNnc3RyICJFc3RlbmRpZGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTIKK21zZ2lkICJGQVQxNiIKK21zZ3N0ciAiRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTMKK21zZ2lkICJIUEZTL05URlMiCittc2dzdHIgIkhQRlMgb3UgTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNAorbXNnaWQgIkFJWCIKK21zZ3N0ciAiQUlYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE1Cittc2dpZCAiQUlYIGJvb3RhYmxlIgorbXNnc3RyICJBSVggaW5pY2lhbGl64XZlbCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNgorbXNnaWQgIk9TLzIgQm9vdCBNYW5hZ2VyIgorbXNnc3RyICJHZXJlbmMuIEluaWNpYWxpei4gT1MvMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNworIywgZnV6enkKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIkZBVDMyIFdpbjk1IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE4CisjLCBmdXp6eQorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiRkFUMzIgV2luOTUgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTkKKyMsIGZ1enp5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJGQVQxNiBXaW45NSAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMAorIywgZnV6enkKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIkVzdGVuZGlkYSBXaW45NSAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMQorbXNnaWQgIk9QVVMiCittc2dzdHIgIk9QVVMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjIKK21zZ2lkICJIaWRkZW4gRkFUMTIiCittc2dzdHIgIkZBVDEyIEVzY29uZGlkYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMworbXNnaWQgIkNvbXBhcSBkaWFnbm9zdGljcyIKK21zZ3N0ciAiRGlhZ27zc3RpY28gQ29tcGFxIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI0Cittc2dpZCAiSGlkZGVuIEZBVDE2IDwzMk0iCittc2dzdHIgIkZBVDE2IEVzY29uZGlkYSA8IDMyIE0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjUKK21zZ2lkICJIaWRkZW4gRkFUMTYiCittc2dzdHIgIkZBVDE2IEVzY29uZGlkYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNgorbXNnaWQgIkhpZGRlbiBIUEZTL05URlMiCittc2dzdHIgIkhQRlMgb3UgTlRGUyBFc2NvbmRpZGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjcKK21zZ2lkICJBU1QgU21hcnRTbGVlcCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI4CisjLCBmdXp6eQorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIkZBVDMyIFdpbiA5NSBFc2NvbmRpZGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKKyMsIGZ1enp5Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiRkFUMzIgV2luOTUgRXNjb25kaWRhIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCisjLCBmdXp6eQorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMTYgKExCQSkiCittc2dzdHIgIkZBVDE2IFdpbjk1IEVzY29uZGlkYSAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIkRPUyBORUMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJSZWN1cGVyYefjbyBkbyBQYXJ0aXRpb25NYWdpYyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNAorbXNnaWQgIlZlbml4IDgwMjg2IgorbXNnc3RyICJWZW5peCA4MDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNQorbXNnaWQgIlBQQyBQUmVQIEJvb3QiCittc2dzdHIgIkJvb3QgUFJlUCBQUEMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMqogcGFydGUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIlFOWDQueCAzqiBwYXJ0ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MAorbXNnaWQgIk9uVHJhY2sgRE0iCittc2dzdHIgIkRNIE9uVHJhY2siCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDEKK21zZ2lkICJPblRyYWNrIERNNiBBdXgxIgorbXNnc3RyICJETTYgT25UcmFjayBBdXgxIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQyCittc2dpZCAiQ1AvTSIKK21zZ3N0ciAiQ1AvTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MworbXNnaWQgIk9uVHJhY2sgRE02IEF1eDMiCittc2dzdHIgIkRNNiBPblRyYWNrIEF1eDMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDQKK21zZ2lkICJPblRyYWNrRE02IgorbXNnc3RyICJETTYgT25UcmFjayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NQorbXNnaWQgIkVaLURyaXZlIgorbXNnc3RyICJFWi1Ecml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NgorbXNnaWQgIkdvbGRlbiBCb3ciCittc2dzdHIgIkdvbGRlbiBCb3ciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDcKK21zZ2lkICJQcmlhbSBFZGlzayIKK21zZ3N0ciAiRWRpc2sgUHJpYW0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk5Cittc2dpZCAiU3BlZWRTdG9yIgorbXNnc3RyICJTcGVlZFN0b3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICJHTlUgSFVSRCBvdSBTeXNWIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUwCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMjg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTEKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAzODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDM4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MgorbXNnaWQgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKK21zZ3N0ciAiTXVsdGktQm9vdCBEaXNrU2VjdXJlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUzCittc2dpZCAiUEMvSVgiCittc2dzdHIgIlBDL0lYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU0Cittc2dpZCAiT2xkIE1pbml4IgorbXNnc3RyICJNaW5peCBhbnRpZ28iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTUKK21zZ2lkICJNaW5peCAvIG9sZCBMaW51eCIKK21zZ3N0ciAiTGludXggYW50aWdvL01pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2CisjLCBmdXp6eQorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eCBzd2FwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU4Cittc2dpZCAiT1MvMiBoaWRkZW4gQzogZHJpdmUiCittc2dzdHIgIlVuaWRhZGUgQzogT1MvMiBvY3VsdGEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTkKK21zZ2lkICJMaW51eCBleHRlbmRlZCIKK21zZ3N0ciAiRXN0ZW5kaWRhIExpbnV4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIkNvbmp1bnRvIGRlIHZvbHVtZXMgTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorIywgZnV6enkKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIkxpbnV4IGV4dDIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjQKK21zZ2lkICJBbW9lYmEiCittc2dzdHIgIkFtb2ViYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NQorbXNnaWQgIkFtb2ViYSBCQlQiCittc2dzdHIgIkFtb2ViYSBCQlQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjYKK21zZ2lkICJCU0QvT1MiCittc2dzdHIgIkJTRC9PUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NworbXNnaWQgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKK21zZ3N0ciAiSGliZXJuYefjbyBJQk0gVGhpbmtwYWQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjgKK21zZ2lkICJGcmVlQlNEIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjkKK21zZ2lkICJPcGVuQlNEIgorbXNnc3RyICJPcGVuQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIk5lWFRTVEVQIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcxCittc2dpZCAiRGFyd2luIFVGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcyCisjLCBmdXp6eQorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiT3BlbkJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MworbXNnaWQgIkRhcndpbiBib290IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzQKKyMsIGZ1enp5Cittc2dpZCAiSEZTIC8gSEZTKyIKK21zZ3N0ciAiSFBGUyBkbyBPUy8yIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc1Cittc2dpZCAiQlNESSBmcyIKK21zZ3N0ciAic2lzdC4gYXJxLiBCU0RJIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc2Cittc2dpZCAiQlNESSBzd2FwIgorbXNnc3RyICJwZXJtdXRhIEJTREkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OAorbXNnaWQgIlNvbGFyaXMgYm9vdCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc5Cittc2dpZCAiU29sYXJpcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgwCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTIpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVDEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQxNiA8IDMyIE0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVDE2KSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MworbXNnaWQgIlN5cmlueCIKK21zZ3N0ciAiU3lyaW54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg0Cittc2dpZCAiTm9uLUZTIGRhdGEiCittc2dzdHIgIkRhZG9zIE7jby1GUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NQorbXNnaWQgIkNQL00gLyBDVE9TIC8gLi4uIgorbXNnc3RyICJDUC9NIC8gQ1RPUyAvIC4uLiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NworbXNnaWQgIkRlbGwgVXRpbGl0eSIKK21zZ3N0ciAiVXRpbGl04XJpbyBEZWxsIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg4CisjLCBmdXp6eQorbXNnaWQgIkJvb3RJdCIKK21zZ3N0ciAiSW5pY2lhbGl6YXIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODkKK21zZ2lkICJET1MgYWNjZXNzIgorbXNnc3RyICJBY2Vzc28gRE9TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkxCittc2dpZCAiRE9TIFIvTyIKK21zZ3N0ciAiRE9TIFIvTyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NAorbXNnaWQgIkJlT1MgZnMiCittc2dzdHIgInNpc3QuIGFycS4gQmVPUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorIywgZnV6enkKK21zZ2lkICJHUFQiCittc2dzdHIgIkVGSSBHUFQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIkVGSSAoRkFULTEyLzE2LzMyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NworbXNnaWQgIkxpbnV4L1BBLVJJU0MgYm9vdCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMAorbXNnaWQgIkRPUyBzZWNvbmRhcnkiCittc2dzdHIgIkRPUyBzZWN1bmThcmlvIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJlcnJvIGRlIGJ1c2NhIGVtICVzIC0gbuNvIGZvaSBwb3Nz7XZlbCBidXNjYXIgYXTpICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgImVycm8gZGUgYnVzY2E6IGRlc2VqYWRvIDB4JTA4eCUwOHgsIG9idGlkbyAweCUwOHglMDh4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAibWVt83JpYSBpbnN1ZmljaWVudGUgLSBkZXNpc3RpbmRvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiZXJybyBkZSBsZWl0dXJhIGVtICVzIC0gbuNvIGZvaSBwb3Nz7XZlbCBsZXIgbyBzZXRvciAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkVSUk9SOiBzZWN0b3IgJWx1IGRvZXMgbm90IGhhdmUgYW4gbXNkb3Mgc2lnbmF0dXJlXG4iCittc2dzdHIgIkVSUk86IG8gc2V0b3IgJWx1IG7jbyBwb3NzdWkgdW1hIGFzc2luYXR1cmEgTVMtRE9TXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgImVycm8gZGUgZ3JhdmHn428gZW0gJXMgLSBu428gZm9pIHBvc3PtdmVsIGdyYXZhciBubyBzZXRvciAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiBzZWN0b3Igc2F2ZSBmaWxlICglcylcbiIKK21zZ3N0ciAiIgorIm7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgbyBhcnF1aXZvIGRlIHNhbHZhbWVudG8gZGUgc2V0b3IgZGEgcGFydGnn428gKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiZXJybyBkZSBncmF2YefjbyBlbSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgc3RhdCBhcnF1aXZvIGRlIHJlc3RhdXJh5+NvIGRlIHBhcnRp5+NvICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAiIgorIm8gYXJxdWl2byBkZSByZXN0YXVyYefjbyBkYSBwYXJ0aefjbyBwb3NzdWkgdGFtYW5obyBpbmNvcnJldG8gLSBu428gIgorInJlc3RhdXJhbmRvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/XG4iCittc2dzdHIgIm1lbfNyaWEgaW5zdWZpY2llbnRlP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgbyBhcnF1aXZvIGRlIHJlc3RhdXJh5+NvIGRlIHBhcnRp5+NvICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiZXJybyBuYSBsZWl0dXJhIGRlICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBhYnJpciBvIGRpc3Bvc2l0aXZvICVzIHBhcmEgZ3JhdmHn429cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICJlcnJvIG5hIGdyYXZh5+NvIGRvIHNldG9yICVsdSBlbSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBnZW9tZXRyeVxuIgorbXNnc3RyICJEaXNjbyAlczogbuNvIGZvaSBwb3Nz7XZlbCBvYnRlciBhIGdlb21ldHJpYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBzaXplXG4iCittc2dzdHIgIkRpc2NvICVzOiBu428gZm9pIHBvc3PtdmVsIG9idGVyIG8gdGFtYW5ob1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHN0YXJ0PSVsdSAtIHRoaXMgbG9va3MgbGlrZSBhIHBhcnRpdGlvbiByYXRoZXIgdGhhblxuIgorInRoZSBlbnRpcmUgZGlzay4gVXNpbmcgZmRpc2sgb24gaXQgaXMgcHJvYmFibHkgbWVhbmluZ2xlc3MuXG4iCisiW1VzZSB0aGUgLS1mb3JjZSBvcHRpb24gaWYgeW91IHJlYWxseSB3YW50IHRoaXNdXG4iCittc2dzdHIgIiIKKyJBdmlzbzogaW7tY2lvID0gICVsdSAtIElzdG8gcGFyZWNlIHNlciB1bWEgcGFydGnn428gZSBu428gbyBkaXNjb1xuIgorImludGVpcm8uIFVzYXIgZmRpc2sgbmVsYSBwcm92YXZlbG1lbnRlIG7jbyB0cmFy4SBxdWFscXVlciByZXN1bHRhZG9cbiIKKyIodXNlIGEgb3Dn428gLS1mb3JjZSBzZSByZWFsbWVudGUgcXVpc2VyIHJlYWxpemFyIGVzdGEgb3BlcmHn428pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAiQXZpc286IEhESU9fR0VUR0VPIGluZm9ybWEgcXVlIGjhICVsdSBjYWJl52FzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iCittc2dzdHIgIkF2aXNvOiBIRElPX0dFVEdFTyBpbmZvcm1hIHF1ZSBo4SAlbHUgc2V0b3Jlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogQkxLR0VUU0laRS9IRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBjeWxpbmRlcnNcbiIKK21zZ3N0ciAiQXZpc286IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gaW5mb3JtYSBxdWUgaOEgJWx1IGNpbGluZHJvc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJBdmlzbzogbvptZXJvIGRlIHNldG9yZXMgaW1wcm924XZlbCAoJWx1KSAtIG5vcm1hbG1lbnRlIG5vIG3heGltbyA2My5cbiIKKyJJc3RvIGNhdXNhcuEgcHJvYmxlbWFzIGEgdG9kbyBzb2Z0d2FyZSBxdWUgdXNhciBlbmRlcmXnYW1lbnRvIENpbC9DYWIvIgorIlNldG9yLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2NvICVzOiAlbHUgY2lsaW5kcm9zLCAlbHUgY2FiZedhcywgJWx1IHNldG9yZXMvdHJpbGhhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRhIHBhcnRp5+NvICVzIHBvc3N1aSB2YWxvciBpbXBvc3PtdmVsIHBhcmEgY2FiZedhOiAlbHUgKGRldmVyaWEgZXN0YXIgIgorImVudHJlIDAgZSAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBzZWN0b3I6ICVsdSAoc2hvdWxkIGJlIGluIDEtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGRhIHBhcnRp5+NvICVzIHBvc3N1aSB2YWxvciBpbXBvc3PtdmVsIHBhcmEgc2V0b3I6ICVsdSAoZGV2ZXJpYSBlc3RhciAiCisiZW50cmUgMSBlICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGN5bGluZGVyczogJWx1IChzaG91bGQgYmUgaW4gMC0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgZGEgcGFydGnn428gJXMgcG9zc3VpIHZhbG9yIGltcG9zc+12ZWwgcGFyYSBvIGNpbGluZHJvOiAlbHUgKGRldmVyaWEgIgorImVzdGFyIGVudHJlIDAgZSAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWQgIE5hbWVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIk5vbWUgSWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSAuLi5cbiIKK21zZ3N0ciAiUmVsZW5kbyBhIHRhYmVsYSBkZSBwYXJ0aef1ZXMuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCisjLCBmdXp6eQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKyJPIGNvbWFuZG8gcGFyYSByZWxlciBhIHRhYmVsYSBkZSBwYXJ0aef1ZXMgZmFsaG91LlxuIgorIlJlaW5pY2lhbGl6ZSBvIHNpc3RlbWEgYWdvcmEsIGFudGVzIGRlIHVzYXIgbyBta2ZzLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2xvc2luZyAlc1xuIgorbXNnc3RyICJFcnJvIG5vIGZlY2hhbWVudG8gZGUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBzdWNoIHBhcnRpdGlvblxuIgorbXNnc3RyICIlczogcGFydGnn428gaW5leGlzdGVudGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODc4Cittc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCAtIHVzaW5nIHNlY3RvcnNcbiIKK21zZ3N0ciAiZm9ybWF0byBu428gcmVjb25oZWNpZG8gLSB1c2FuZG8gc2V0b3Jlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5pbXBsZW1lbnRlZCBmb3JtYXQgLSB1c2luZyAlc1xuIgorbXNnc3RyICJmb3JtYXRvIG7jbyBpbXBsZW1lbnRhZG8gLSB1c2FuZG8gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJVbmlkYWRlcyA9IGNpbGluZHJvcyBkZSAlbHUgYnl0ZXMsIGJsb2NvcyBkZSAxMDI0IGJ5dGVzLCBjb250YW5kbyBhIHBhcnRpciAiCisiZGUgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRGlzcCAgIEJvb3QgSW7tY2lvICAgIEZpbSAgIENpbHMgICAgQmxvY29zICAgIElkICBTaXN0ZW1hXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiVW5pZGFkZXMgPSBzZXRvcmVzIGRlIDUxMiBieXRlcywgY29udGFuZG8gYSBwYXJ0aXIgZGUgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgICBTdGFydCAgICAgICBFbmQgICAjc2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBEaXNwICAgQm9vdCAgICBJbu1jaW8gICAgICBGaW0gIFNldG9yZXMgICBJZCAgU2lzdGVtYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVuaWRhZGVzID0gYmxvY29zIGRlIDEwMjQgYnl0ZXMsIGNvbnRhbmRvIGEgcGFydGlyIGRlICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICBTdGFydCAgICAgICBFbmQgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRGlzcCAgIEJvb3QgICBJbu1jaW8gICAgICBGaW0gICBCbG9jb3MgICAgSWQgIFNpc3RlbWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVuaWRhZGVzID0gbWVnYWJ5dGVzIGRlIDEwNDg1NzYgYnl0ZXMsIGJsb2NvcyBvZiAxMDI0IGJ5dGVzLCBjb250YW5kbyBhICIKKyJwYXJ0aXIgZGUgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgIEVuZCAgICBNaUIgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRGlzcCAgIEJvb3QgSW7tY2lvICBGaW0gICAgIE1CICAgQmxvY29zICAgIElkICBTaXN0ZW1hXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisiXHRcdGlu7WNpbzogKGNpbCxjYWIsc2V0KSBlc3BlcmFkbyAoJWxkLCVsZCwlbGQpIGVuY29udHJhZG8gKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyJcdFx0ZmltOiAoY2lsLGNhYixzZXQpIGVzcGVyYWRvICglbGQsJWxkLCVsZCkgZW5jb250cmFkbyAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJhIHBhcnRp5+NvIHRlcm1pbmEgbm8gY2lsaW5kcm8gJWxkLCBhbOltIGRvIGZpbmFsIGRvIGRpc2NvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzMKK21zZ2lkICJObyBwYXJ0aXRpb25zIGZvdW5kXG4iCittc2dzdHIgIk5lbmh1bWEgcGFydGnn428gZW5jb250cmFkYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTM3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJBdmlzbzogYSBwcmltZWlyYSBwYXJ0aefjbyBwYXJlY2UgdGVyIHNpZG8gZmVpdGFcbiIKKyIgcGFyYSBDaWwvQ2FiL1NldCA9ICovJWxkLyVsZCAoZW0gdmV6IGRlICVsZC8lbGQvJWxkKS5cbiIKKyJQYXJhIGVzdGEgbGlzdGFnZW0gc2Vy4SBhc3N1bWlkYSBhcXVlbGEgZ2VvbWV0cmlhLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIm5lbmh1bWEgdGFiZWxhIGRlIHBhcnRp5/VlcyBwcmVzZW50ZS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIKK21zZ3N0ciAiZXN0cmFuaG8sIHNvbWVudGUgJWQgcGFydGnn9WVzIGVzdONvIGRlZmluaWRhcy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBidXQgaXMgbm90IG1hcmtlZCBFbXB0eVxuIgorbXNnc3RyICIiCisiQXZpc286IGEgcGFydGnn428gJXMgcG9zc3VpIHRhbWFuaG8gMCwgbWFzIG7jbyBlc3ThIG1hcmNhZGEgY29tbyB2YXppYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBpcyBib290YWJsZVxuIgorbXNnc3RyICJBdmlzbzogYSBwYXJ0aefjbyAlcyBwb3NzdWkgdGFtYW5obyAwIGUg6SBpbmljaWFsaXrhdmVsXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiQXZpc286IGEgcGFydGnn428gJXMgcG9zc3VpIHRhbWFuaG8gMCBlIGlu7WNpbyBkaWZlcmVudGUgZGUgemVyb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyAiCittc2dzdHIgIkF2aXNvOiBhIHBhcnRp5+NvICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIgorbXNnc3RyICJu428gZXN04SBjb250aWRhIG5hIHBhcnRp5+NvICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9ucyAlcyAiCittc2dzdHIgIkF2aXNvOiBhcyBwYXJ0aef1ZXMgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgImUgJXMgc2Ugc29icmVw9WVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAiQXZpc286IGEgcGFydGnn428gJXMgY29tZedhIG5vIHNldG9yIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIkF2aXNvOiBhIHBhcnRp5+NvICVzIHNlIGVzdGVuZGUgYWzpbSBkbyBmaW0gZG8gZGlzY29cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorIywgZnV6enkKK21zZ2lkICIiCisiQW1vbmcgdGhlIHByaW1hcnkgcGFydGl0aW9ucywgYXQgbW9zdCBvbmUgY2FuIGJlIGV4dGVuZGVkXG4iCisiIChhbHRob3VnaCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gdW5kZXIgTGludXgpXG4iCittc2dzdHIgIkRlbnRyZSBhcyBwYXJ0aef1ZXMgcHJpbeFyaWFzLCBwZWxvIG1lbm9zIHVtYSBwb2RlIHNlciBlc3RlbmRpZGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJBdmlzbzogYSBwYXJ0aefjbyAlcyBu428gaW5pY2lhIGVtIHVtIGxpbWl0ZSBkZSBjaWxpbmRyb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJBdmlzbzogYSBwYXJ0aefjbyAlcyBu428gdGVybWluYSBlbSB1bSBsaW1pdGUgZGUgY2lsaW5kcm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxMQorbXNnaWQgIiIKKyJXYXJuaW5nOiBtb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJBdmlzbzogbWFpcyBkZSB1bWEgcGFydGnn428gcHJpbeFyaWEgZXN04SBtYXJjYWRhIGNvbW8gaW5pY2lhbGl64XZlbCAiCisiKGF0aXZhKS5cbiIKKyJJc3RvIG7jbyBmYXogZGlmZXJlbudhIHBhcmEgbyBMSUxPLCBtYXMgbyBNQlIgRE9TIG7jbyBpbmljaWFsaXphcuEgZXN0ZSAiCisiZGlzY28uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTgKK21zZ2lkICIiCisiV2FybmluZzogdXN1YWxseSBvbmUgY2FuIGJvb3QgZnJvbSBwcmltYXJ5IHBhcnRpdGlvbnMgb25seVxuIgorIkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIgorbXNnc3RyICIiCisiQXZpc286IG5vcm1hbG1lbnRlIG8gYm9vdCBwb2RlIHNlciBkYWRvIHNvbWVudGUgZGUgcGFydGnn9WVzIHByaW3hcmlhcy5cbiIKKyJPIExJTE8gZGVzY29uc2lkZXJhIG8gZmxhZyBgaW5pY2lhbGl64XZlbCcuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMjQKK21zZ2lkICIiCisiV2FybmluZzogbm8gcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorIkF2aXNvOiBuZW5odW1hIHBhcnRp5+NvIHByaW3hcmlhIGVzdOEgbWFyY2FkYSBjb21vIGluaWNpYWxpeuF2ZWwgKGF0aXZhKS5cbiIKKyJJc3RvIG7jbyBmYXogZGlmZXJlbudhIHBhcmEgbyBMSUxPLCBtYXMgbyBNQlIgRE9TIG7jbyBpbmljaWFsaXphcuEgZXN0ZSAiCisiZGlzY28uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKKyMsIGZ1enp5Cittc2dpZCAic3RhcnQiCittc2dzdHIgInN0YXR1cyIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisicGFydGl0aW9uICVzOiBzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorInBhcnRp5+NvICVzIC0gaW7tY2lvOiAoY2lsLCBjYWIsIHNldCkgZXNwZXJhZG8gKCVsZCwlbGQsJWxkKSBlbmNvbnRyYWRvICglbGQsIgorIiVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKKyMsIGZ1enp5Cittc2dpZCAiZW5kIgorbXNnc3RyICJlbnZpbyIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorInBhcnRp5+NvICVzIC0gZmltOiAoY2lsLCBjYWIsIHNldCkgZXNwZXJhZG8gKCVsZCwlbGQsJWxkKSBlbmNvbnRyYWRvICglbGQsJSIKKyJsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJhIHBhcnRp5+NvICVzIHRlcm1pbmEgbm8gY2lsaW5kcm8gJWxkLCBhbOltIGRvIGZpbSBkbyBkaXNjb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzc4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc2hpZnRlZCBzdGFydCBvZiB0aGUgZXh0ZCBwYXJ0aXRpb24gZnJvbSAlbGQgdG8gJWxkXG4iCisiKEZvciBsaXN0aW5nIHB1cnBvc2VzIG9ubHkuIERvIG5vdCBjaGFuZ2UgaXRzIGNvbnRlbnRzLilcbiIKK21zZ3N0ciAiQXZpc286IGRlc2xvY2FtZW50byBpbmljaWEgbmEgcGFydGnn428gZXh0ZCBkZSAgJWxkIHBhcmEgJWxkXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzODQKKyMsIGZ1enp5Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICJBdmlzbzogYSBwYXJ0aefjbyBleHRlbmRpZGEgbuNvIGluaWNpYSBlbSB1bSBsaW1pdGUgZGUgY2lsaW5kcm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQwMiBmZGlzay9zZmRpc2suYzoxNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnMgLSBpZ25vcmluZyB0aG9zZSBwYXN0IG5yICglZClcbiIKK21zZ3N0ciAibvptZXJvIGV4Y2Vzc2l2byBkZSBwYXJ0aef1ZXMgLSBpZ25vcmFuZG8gYXF1ZWxhcyBhbOltIGRvIG66ICVkXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MTcKK21zZ2lkICJ0cmVlIG9mIHBhcnRpdGlvbnM/XG4iCittc2dzdHIgIuFydm9yZSBkZSBwYXJ0aef1ZXM/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAiR2VyZW5jaWFkb3IgZGUgZGlzY28gZGV0ZWN0YWRvIC0gbuNvIOkgcG9zc+12ZWwgdHJhdGFyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIkFzc2luYXR1cmEgRE02IGVuY29udHJhZGEgLSBkZXNpc3RpbmRvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTIKK21zZ2lkICJzdHJhbmdlLi4uLCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJlc3RyYW5oby4uLiB1bWEgcGFydGnn428gZXN0ZW5kaWRhIGRlIHRhbWFuaG8gMD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCittc2dpZCAic3RyYW5nZS4uLiwgYSBCU0QgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAiZXN0cmFuaG8uLi4gdW1hIHBhcnRp5+NvIEJTRCBkZSB0YW1hbmhvIDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iCittc2dzdHIgIiAlczogcGFydGnn428gbuNvIHJlY29uaGVjaWRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgImEgb3Dn428gLW4gZm9pIGZvcm5lY2lkYTogbmFkYSBmb2kgYWx0ZXJhZG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzMgorbXNnaWQgIkZhaWxlZCBzYXZpbmcgdGhlIG9sZCBzZWN0b3JzIC0gYWJvcnRpbmdcbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBzYWx2YXIgb3Mgc2V0b3JlcyBhbnRpZ29zIC0gYWJvcnRhbmRvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzcgZmRpc2svc2ZkaXNrLmM6MTY0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgZ3JhdmFyIGEgcGFydGnn428gZW0gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAibGluaGEgZGUgZW50cmFkYSBsb25nYSBkZW1haXMgb3UgaW5jb21wbGV0YSAtIGVuY2VycmFuZG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc1NQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogYD0nIGV4cGVjdGVkIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgImVycm8gZGUgZW50cmFkYTogYD0nIGVzcGVyYWRvIGFw83MgbyBjYW1wbyAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzYyCisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiB1bmV4cGVjdGVkIGNoYXJhY3RlciAlYyBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICJlcnJvIGRlIGVudHJhZGE6IGNhcmFjdGVyZSBpbmVzcGVyYWRvICVjIGFw83MgbyBjYW1wbyAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAiZW50cmFkYSBu428gcmVjb25oZWNpZGE6ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTAKK21zZ2lkICJudW1iZXIgdG9vIGJpZ1xuIgorbXNnc3RyICJu+m1lcm8gZ3JhbmRlIGRlbWFpc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxODE0Cittc2dpZCAidHJhaWxpbmcganVuayBhZnRlciBudW1iZXJcbiIKK21zZ3N0ciAibGl4byBhcPNzIG8gbvptZXJvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICJzZW0gZXNwYedvIHBhcmEgbyBkZXNjcml0b3IgZGEgcGFydGnn429cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTk3MQorbXNnaWQgImNhbm5vdCBidWlsZCBzdXJyb3VuZGluZyBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBjcmlhciBhIHBhcnRp5+NvIGVzdGVuZGlkYSBlbnZvbHTzcmlhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwMjIKK21zZ2lkICJ0b28gbWFueSBpbnB1dCBmaWVsZHNcbiIKK21zZ3N0ciAibvptZXJvIGV4Y2Vzc2l2byBkZSBjYW1wb3MgZGUgZW50cmFkYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDU2Cittc2dpZCAiTm8gcm9vbSBmb3IgbW9yZVxuIgorbXNnc3RyICJO428gaOEgZXNwYedvIHBhcmEgbWFpc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIlRpcG8gaW524WxpZG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIkF2aXNvOiB0YW1hbmhvIGRhZG8gKCVsdSkgZXhjZWRlIG8gdGFtYW5obyBt4XhpbW8gcGVybWl0aWRvICglbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMTMKK21zZ2lkICJXYXJuaW5nOiBlbXB0eSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiQXRlbufjbzogcGFydGnn428gdmF6aWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIkF2aXNvOiBpbu1jaW8gZGUgcGFydGnn428gaW524WxpZG8gKG1haXMgYWRpYW50YWRvICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE0MAorbXNnaWQgInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIgorbXNnc3RyICJvcOfjbyBkZSBpbmljaWFsaXph5+NvIG7jbyByZWNvbmhlY2lkYTogc2VsZWNpb25lIC0gb3UgKlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTU3IGZkaXNrL3NmZGlzay5jOjIxNzAKK21zZ2lkICJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iCittc2dzdHIgImVzcGVjaWZpY2Hn428gY2lsLGNhYixzZXQgcGFyY2lhbD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE4MQorbXNnaWQgIkV4dGVuZGVkIHBhcnRpdGlvbiBub3Qgd2hlcmUgZXhwZWN0ZWRcbiIKK21zZ3N0ciAiUGFydGnn428gZXN0ZW5kaWRhIG7jbyBlc3ThIG5vIGx1Z2FyIGVzcGVyYWRvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMTMKK21zZ2lkICJiYWQgaW5wdXRcbiIKK21zZ3N0ciAiZW50cmFkYSBpbnbhbGlkYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjM1Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9uc1xuIgorbXNnc3RyICJO+m1lcm8gZXhjZXNzaXZvIGRlIHBhcnRp5/Vlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjY4Cittc2dpZCAiIgorIklucHV0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OyBhYnNlbnQgZmllbGRzIGdldCBhIGRlZmF1bHQgdmFsdWUuXG4iCisiPHN0YXJ0PiA8c2l6ZT4gPHR5cGUgW0UsUyxMLFgsaGV4XT4gPGJvb3RhYmxlIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyJVc3VhbGx5IHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSA8c3RhcnQ+IGFuZCA8c2l6ZT4gKGFuZCBwZXJoYXBzIDx0eXBlPikuXG4iCittc2dzdHIgIiIKKyJFbnRyYWRhIG5vIGZvcm1hdG8gYSBzZWd1aXI7IGNhbXBvcyBhdXNlbnRlcyByZWNlYmVtIHZhbG9yIHBhZHLjby5cbiIKKyI8aW7tY2lvPiA8dGFtYW5obz4gPHRpcG8gW0UsUyxMLFgsaGV4YV0+IDxpbmljaWFsaXrhdmVsIFstLCpdPiA8Y2lsLGNhYixzZXQ+ICIKKyI8Y2lsLGNhYixzZXQ+XG4iCisiTm9ybWFsbWVudGUgc/Mg6SBuZWNlc3PhcmlvIGVzcGVjaWZpY2FyIDxpbu1jaW8+IGUgPHRhbWFuaG8+IChlLCB0YWx2ZXosICIKKyI8dGlwbz4pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gZGV2aWNlIC4uLlxuIgorbXNnc3RyICJVc286ICVzIFtvcOf1ZXNdIGRpc3Bvc2l0aXZvIC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAiZGlzcG9zaXRpdm86IGFsZ28gY29tbyAvZGV2L2hkYSBvdSAvZGV2L3NkYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NgorbXNnaWQgInVzZWZ1bCBvcHRpb25zOiIKK21zZ3N0ciAib3Dn9WVzIPp0ZWlzOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgICAtcyBbb3IgLS1zaG93LXNpemVdOiBsaXN0IHNpemUgb2YgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAtcyBbb3UgLS1zaG93LXNpemVdOiBsaXN0YSBvIHRhbWFuaG8gZGUgdW1hIHBhcnRp5+NvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiAgICAtYyBbb3UgLS1pZF06ICAgICAgICBtb3N0cmEgb3UgYWx0ZXJhIGEgSUQgZGEgcGFydGnn428iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIgICAgLWwgW291IC0tbGlzdF06ICAgICAgbGlzdGEgYXMgcGFydGnn9WVzIGRlIGNhZGEgZGlzcG9zaXRpdm8iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAtZCBbb3UgLS1kdW1wXTogICAgICBpZGVtLCBtYXMgZW0gdW0gZm9ybWF0byBhZGVxdWFkbyBwYXJhIGVudHJhZGEgIgorInBvc3RlcmlvciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAtaSBbb3IgLS1pbmNyZW1lbnRdOiBudW1iZXIgY3lsaW5kZXJzIGV0Yy4gZnJvbSAxIGluc3RlYWQgb2YgZnJvbSAwIgorbXNnc3RyICIiCisiICAgIC1pIFtvdSAtLWluY3JlbWVudF06IG51bWVyYSBvcyBjaWxpbmRyb3MsIGV0Yy4gYSBwYXJ0aXIgZGUgMSwgZW0gdmV6IGRlIDAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDIKK21zZ2lkICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGFjY2VwdC9yZXBvcnQgaW4gdW5pdHMgb2Ygc2VjdG9ycy9ibG9ja3MvY3lsaW5kZXJzLyIKKyJNQiIKK21zZ3N0ciAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBhY2VpdGEvaW5mb3JtYSBlbSB1bmlkYWRlcyBkZSBzZXRvcmVzL2Jsb2Nvcy8iCisiY2lsaW5kcm9zL01CIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAzCittc2dpZCAiICAgIC1UIFtvciAtLWxpc3QtdHlwZXNdOmxpc3QgdGhlIGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgIC1UIFtvdSAtLWxpc3QtdHlwZXNdOmxpc3RhIG9zIHRpcG9zIGRlIHBhcnRp5+NvIGNvbmhlY2lkb3MiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorIiAgICAtRCBbb3UgLS1ET1NdOiAgICAgICBwYXJhIGNvbXBhdGliaWxpZGFkZSBjb20gRE9TOiBkZXNwZXJkaedhIHVtIHBvdWNvICIKKyJkZSBlc3Bh528iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgLVIgW29yIC0tcmUtcmVhZF06ICAgbWFrZSBrZXJuZWwgcmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgIC1SIFtvdSAtLXJlLXJlYWRdOiAgIGZheiBvIGtlcm5lbCByZWxlciBhIHRhYmVsYSBkZSBwYXJ0aef1ZXMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDYKK21zZ2lkICIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIgorbXNnc3RyICIgICAgLU4jIDogICAgICAgICAgICAgICAgYWx0ZXJhIHNvbWVudGUgYSBwYXJ0aefjbyBkZSBu+m1lcm8gIyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBkbyBub3QgYWN0dWFsbHkgd3JpdGUgdG8gZGlzayIKK21zZ3N0ciAiICAgIC1uIDogICAgICAgICAgICAgICAgIG7jbyBncmF2YSBubyBkaXNjbywgcmVhbG1lbnRlIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIiCisiICAgIC1PIGFycXVpdm8gOiAgICAgICAgICBzYWx2YSBvcyBzZXRvcmVzIHF1ZSBzZXLjbyBzb2JyZXNjcml0b3MgZW0gYXJxdWl2byIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAtSSBmaWxlIDogICAgICAgICAgICByZXN0b3JlIHRoZXNlIHNlY3RvcnMgYWdhaW4iCittc2dzdHIgIiAgICAtSSBhcnF1aXZvIDogICAgICAgICByZXN0YXVyYSBvcyBzZXRvcmVzIGdyYXZhZG9zIGVtIGFycXVpdm8iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgLXYgW29yIC0tdmVyc2lvbl06ICAgcHJpbnQgdmVyc2lvbiIKK21zZ3N0ciAiICAgIC12IFtvdSAtLXZlcnNpb25dOiAgIG1vc3RyYSBhIHZlcnPjbyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiAgICAtPyBbb3UgLS1oZWxwXTogICAgICBtb3N0cmEgZXN0YSBtZW5zYWdlbSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMgorbXNnaWQgImRhbmdlcm91cyBvcHRpb25zOiIKK21zZ3N0ciAib3Dn9WVzIHBlcmlnb3NhczoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTMKK21zZ2lkICIgICAgLWcgW29yIC0tc2hvdy1nZW9tZXRyeV06IHByaW50IHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBnZW9tZXRyeSIKK21zZ3N0ciAiIgorIiAgICAtZyBbb3UgLS1zaG93LWdlb21ldHJ5XTogbW9zdHJhIGEgc3Vwb3Np5+NvIGRvIGtlcm5lbCBzb2JyZSBhIGdlb21ldHJpYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorIywgZnV6enkKK21zZ2lkICIiCisiICAgIC1HIFtvciAtLXNob3ctcHQtZ2VvbWV0cnldOiBwcmludCBnZW9tZXRyeSBndWVzc2VkIGZyb20gdGhlIHBhcnRpdGlvbiAiCisidGFibGUiCittc2dzdHIgIiIKKyIgICAgLWcgW291IC0tc2hvdy1nZW9tZXRyeV06IG1vc3RyYSBhIHN1cG9zaefjbyBkbyBrZXJuZWwgc29icmUgYSBnZW9tZXRyaWEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCBbb3UgLS1zaG93LWV4dGVuZGVkXTogdGFtYultIGxpc3RhIHBhcnRp5/VlcyBlc3RlbmRpZGFzIG5hIHNh7WRhXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdSBlc3BlcmEgZGVzY3JpdG9yZXMgcGFyYSBlbGFzIG5hIGVudHJhZGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTcKK21zZ2lkICIiCisiICAgIC1MICBbb3IgLS1MaW51eF06ICAgICAgZG8gbm90IGNvbXBsYWluIGFib3V0IHRoaW5ncyBpcnJlbGV2YW50IGZvciBMaW51eCIKK21zZ3N0ciAiIgorIiAgICAtTCAgW291IC0tTGludXhdOiAgICAgIG7jbyByZWNsYW1hIGRlIGNvaXNhcyBpcnJlbGV2YW50ZXMgcGFyYSBvIExpbnV4IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbb3UgLS1xdWlldF06ICAgICAgc3VwcmltZSBtZW5zYWdlbnMgZGUgYXZpc28iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgWW91IGNhbiBvdmVycmlkZSB0aGUgZGV0ZWN0ZWQgZ2VvbWV0cnkgdXNpbmc6IgorbXNnc3RyICIgICAgVm9j6iBwb2RlIGFudWxhciBhIGdlb21ldHJpYSBkZXRlY3RhZGEgdXNhbmRvOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAtQyMgW29yIC0tY3lsaW5kZXJzICNdOnNldCB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyB0byB1c2UiCittc2dzdHIgIiAgICAtQyMgW291IC0tY3lsaW5kZXJzICNdOmRlZmluZSBvIG76bWVybyBkZSBjaWxpbmRyb3MgYSB1c2FyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIxCittc2dpZCAiICAgIC1IIyBbb3IgLS1oZWFkcyAjXTogICAgc2V0IHRoZSBudW1iZXIgb2YgaGVhZHMgdG8gdXNlIgorbXNnc3RyICIgICAgLUgjIFtvdSAtLWhlYWRzICNdOiAgICBkZWZpbmUgbyBu+m1lcm8gZGUgY2FiZedhcyBhIHVzYXIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjIKK21zZ2lkICIgICAgLVMjIFtvciAtLXNlY3RvcnMgI106ICBzZXQgdGhlIG51bWJlciBvZiBzZWN0b3JzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1TIyBbb3UgLS1zZWN0b3JzICNdOiAgZGVmaW5lIG8gbvptZXJvIGRlIHNldG9yZXMgYSB1c2FyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIzCittc2dpZCAiWW91IGNhbiBkaXNhYmxlIGFsbCBjb25zaXN0ZW5jeSBjaGVja2luZyB3aXRoOiIKK21zZ3N0ciAiVm9j6iBwb2RlIGRlc2F0aXZhciB0b2RhcyBhcyB2ZXJpZmljYef1ZXMgZGUgY29uc2lzdOpuY2lhIGNvbToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjQKK21zZ2lkICIgICAgLWYgIFtvciAtLWZvcmNlXTogICAgICBkbyB3aGF0IEkgc2F5LCBldmVuIGlmIGl0IGlzIHN0dXBpZCIKK21zZ3N0ciAiICAgIC1mICBbb3UgLS1mb3JjZV06ICAgICAgZmHnYSBvIHF1ZSBldSBtYW5kYXIsIG1lc21vIHF1ZSBzZWphIGlkaW90YSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAiVXNvOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2VcdFx0IGxpc3QgYWN0aXZlIHBhcnRpdGlvbnMgb24gZGV2aWNlXG4iCittc2dzdHIgIiVzIGRpc3Bvc2l0aXZvXHRcdGxpc3RhIHBhcnRp5/VlcyBhcyBhdGl2YXMgbm8gZGlzcG9zaXRpdm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2UgbjEgbjIgLi4uIGFjdGl2YXRlIHBhcnRpdGlvbnMgbjEgLi4uLCBpbmFjdGl2YXRlIHRoZSByZXN0XG4iCittc2dzdHIgIiIKKyIlcyBkaXNwb3NpdGl2byBuMSBuMi4uLiBhdGl2YSBhcyBwYXJ0aef1ZXMgbjEuLi4sIGRlaXhhbmRvIGluYXRpdmFzIGFzICIKKyJkZW1haXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtQW4gZGV2aWNlXHQgYWN0aXZhdGUgcGFydGl0aW9uIG4sIGluYWN0aXZhdGUgdGhlIG90aGVyIG9uZXNcbiIKK21zZ3N0ciAiIgorIiVzIC1BbiBkaXNwb3NpdGl2b1xuIgorIiBhdGl2YSBhIHBhcnRp5+NvIG4sIGRlc2F0aXZhIGFzIGRlbWFpc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBzZmRpc2sgIgorImRvZXNuJ3Qgc3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIlVzZSBhIG9w5+NvIC0tZm9yY2UgcGFyYSBjYW5jZWxhciB0b2RhcyBhcyB2ZXJpZmljYef1ZXMuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0OTUKK21zZ2lkICJubyBjb21tYW5kP1xuIgorbXNnc3RyICJuZW5odW0gY29tYW5kbz9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjYyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidG90YWw6ICVsbHUgYmxvY2tzXG4iCittc2dzdHIgInRvdGFsOiAlZCBibG9jb3NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1wcmludC1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlclxuIgorbXNnc3RyICJVc286IHNmZGlzayAtLXByaW50LWlkIGRpc3Bvc2l0aXZvIG76bWVyby1wYXJ0aefjb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcyCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWNoYW5nZS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBJZFxuIgorbXNnc3RyICJVc286IHNmZGlzayAtLWNoYW5nZS1pZCBkaXNwb3NpdGl2byBu+m1lcm8tcGFydGnn428gSURcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3NAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBbSWRdXG4iCittc2dzdHIgIlVzbzogc2ZkaXNrIC0taWQgZGlzcG9zaXRpdm8gbvptZXJvLXBhcnRp5+NvIFtJRF1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY4MQorbXNnaWQgImNhbiBzcGVjaWZ5IG9ubHkgb25lIGRldmljZSAoZXhjZXB0IHdpdGggLWwgb3IgLXMpXG4iCittc2dzdHIgInBvZGUgZXNwZWNpZmljYXIgc29tZW50ZSB1bSBkaXNwb3NpdGl2byAoZXhjZXRvIGNvbSAtbCBvdSAtcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgcmVhZC13cml0ZVxuIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGFicmlyICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXMgcGFyYSBsZWl0dXJhIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczogT0tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjc1MyBmZGlzay9zZmRpc2suYzoyNzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3lsaW5kZXJzLCAlbGQgaGVhZHMsICVsZCBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiVzOiAlbGQgY2lsaW5kcm9zLCAlbGQgY2FiZedhcywgJWxkIHNldG9yZXMvdHJpbGhhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4MDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgc2l6ZSBvZiAlc1xuIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIG9idGVyIG8gdGFtYW5obyBkZSAlcyIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgImJ5dGUgYXRpdm8gaW524WxpZG86IDB4JXggZW0gdmV6IGRlIDB4ODBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkwMyBmZGlzay9zZmRpc2suYzoyOTU4IGZkaXNrL3NmZGlzay5jOjI5OTEKK21zZ2lkICIiCisiRG9uZVxuIgorIlxuIgorbXNnc3RyICIiCisiQ29uY2x17WRvXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlICVkIGFjdGl2ZSBwcmltYXJ5IHBhcnRpdGlvbnMuIFRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLFxuIgorImJ1dCB0aGUgRE9TIE1CUiB3aWxsIG9ubHkgYm9vdCBhIGRpc2sgd2l0aCAxIGFjdGl2ZSBwYXJ0aXRpb24uXG4iCittc2dzdHIgIiIKKyJWb2PqIHBvc3N1aSAlZCBwYXJ0aef1ZXMgcHJpbeFyaWFzIGF0aXZhcy4gSXN0byBu428gZmF6IGRpZmVyZW7nYSBwYXJhIG9cbiIKKyJMSUxPLCBtYXMgbyBNQlIgRE9TIHPzIGluaWNpYWxpemFy4SBlbSBkaXNjb3MgY29tIHVtYSBwYXJ0aefjbyBhdGl2YS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgImEgcGFydGnn428gJXMgcG9zc3VpIElEICV4IGUgbuNvIGVzdOEgZXNjb25kaWRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICJJRCBpbnbhbGlkYTogJWx4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAiRXN0ZSBkaXNjbyBlc3ThIGF0dWFsbWVudGUgc2VuZG8gdXNhZG8uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmF0YWwgZXJyb3I6IGNhbm5vdCBmaW5kICVzXG4iCittc2dzdHIgIkVycm8gZmF0YWw6IG7jbyBmb2kgcG9zc+12ZWwgZW5jb250cmFyICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIkF2aXNvOiAlcyBu428g6SB1bSBkaXNwb3NpdGl2byBkZSBibG9jb3NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzMgorbXNnaWQgIkNoZWNraW5nIHRoYXQgbm8tb25lIGlzIHVzaW5nIHRoaXMgZGlzayByaWdodCBub3cgLi4uXG4iCittc2dzdHIgIlZlcmlmaWNhbmRvIHNlIG5pbmd16W0gZXN04SB1c2FuZG8gZXN0ZSBkaXNjbyBubyBtb21lbnRvLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzQKK21zZ2lkICIiCisiXG4iCisiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UgLSByZXBhcnRpdGlvbmluZyBpcyBwcm9iYWJseSBhIGJhZCBpZGVhLlxuIgorIlVtb3VudCBhbGwgZmlsZSBzeXN0ZW1zLCBhbmQgc3dhcG9mZiBhbGwgc3dhcCBwYXJ0aXRpb25zIG9uIHRoaXMgZGlzay5cbiIKKyJVc2UgdGhlIC0tbm8tcmVyZWFkIGZsYWcgdG8gc3VwcHJlc3MgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkVzdGUgZGlzY28gZXN04SBzZW5kbyB1c2FkbyBubyBtb21lbnRvLiBSZXBhcnRpY2lvbuEtbG8gcHJvdmF2ZWxtZW50ZSBu428g6SAiCisidW1hIGJvYSBpZOlpYS4gRGVzbW9udGUgdG9kb3Mgb3Mgc2lzdGVtYXMgZGUgYXJxdWl2b3MgZSBmYedhICBzd2Fwb2ZmICBkZSAiCisidG9kYXMgYXMgcGFydGnn9WVzIGRlIHBlcm11dGEgZGVzdGUgZGlzY28uIFVzZSBhIG9w5+NvIC0tbm8tcmVyZWFkIHBhcmEgIgorInN1cHJpbWlyIGVzdGEgdmVyaWZpY2Hn428uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICJVc2UgYSBvcOfjbyAtLWZvcmNlIHBhcmEgY2FuY2VsYXIgdG9kYXMgYXMgdmVyaWZpY2Hn9WVzLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDQyCittc2dpZCAiT0tcbiIKK21zZ3N0ciAiT0tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1MQorIywgYy1mb3JtYXQKK21zZ2lkICJPbGQgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJTaXR1YefjbyBhbnRpZ2E6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgY2hhbmdlIGl0XG4iCittc2dzdHIgIkEgcGFydGnn428gJWQgbuNvIGV4aXN0ZTsgbuNvIOkgcG9zc+12ZWwgYWx0ZXLhLWxhLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBzaXR1YXRpb246XG4iCittc2dzdHIgIlNpdHVh5+NvIG5vdmE6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjgKK21zZ2lkICIiCisiSSBkb24ndCBsaWtlIHRoZXNlIHBhcnRpdGlvbnMgLSBub3RoaW5nIGNoYW5nZWQuXG4iCisiKElmIHlvdSByZWFsbHkgd2FudCB0aGlzLCB1c2UgdGhlIC0tZm9yY2Ugb3B0aW9uLilcbiIKK21zZ3N0ciAiIgorIkV1IG7jbyBnb3N0byBkZXN0YXMgcGFydGnn9WVzOiBuYWRhIGZvaSBhbHRlcmFkb1xuIgorIihzZSB2b2PqIHJlYWxtZW50ZSBxdWlzZXIgdXPhLWxhcywgdXNlIGEgb3Dn428gLS1mb3JjZSkuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzEKK21zZ2lkICJJIGRvbid0IGxpa2UgdGhpcyAtIHByb2JhYmx5IHlvdSBzaG91bGQgYW5zd2VyIE5vXG4iCittc2dzdHIgIkV1IG7jbyBnb3N0byBkaXN0byAtIHByb3ZhdmVsbWVudGUgdm9j6iBkZXZlcmlhIHJlc3BvbmRlciBO429cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJBcmUgeW91IHNhdGlzZmllZCB3aXRoIHRoaXM/IFt5bnFdICIKK21zZ3N0ciAiVm9j6iBlc3ThIHNhdGlzZmVpdG8gY29tIGlzdG8/IFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyB5b3Ugd2FudCB0byB3cml0ZSB0aGlzIHRvIGRpc2s/IFt5bnFdICIKK21zZ3N0ciAiRGVzZWphIGdyYXZhciBpc3RvIG5vIGRpc2NvPyBbeW5xXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGVuZCBvZiBpbnB1dFxuIgorbXNnc3RyICIiCisiXG4iCisic2ZkaXNrOiBmaW5hbCBkZSBlbnRyYWRhIHByZW1hdHVyb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiU2FpbmRvIC0gbmFkYSBmb2kgYWx0ZXJhZG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIgorbXNnc3RyICJSZXNwb25kYSB5LCBuIG91IHFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VjY2Vzc2Z1bGx5IHdyb3RlIHRoZSBuZXcgcGFydGl0aW9uIHRhYmxlXG4iCisiXG4iCittc2dzdHIgIiIKKyJOb3ZhIHRhYmVsYSBkZSBwYXJ0aef1ZXMgZ3JhdmFkYSBjb20gc3VjZXNzb1xuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMTA1Cittc2dpZCAiIgorIklmIHlvdSBjcmVhdGVkIG9yIGNoYW5nZWQgYSBET1MgcGFydGl0aW9uLCAvZGV2L2ZvbzcsIHNheSwgdGhlbiB1c2UgZGQoMSlcbiIKKyJ0byB6ZXJvIHRoZSBmaXJzdCA1MTIgYnl0ZXM6ICBkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKFNlZSBmZGlzayg4KS4pXG4iCittc2dzdHIgIiIKKyJTZSB2b2PqIGNyaW91IG91IGFsdGVyb3UgdW1hIHBhcnRp5+NvIERPUywgcG9yIGV4ZW1wbG8sIC9kZXYvZm9vNywgdXNlIGRkIgorIigxKVxuIgorInBhcmEgemVyYXIgb3MgcHJpbWVpcm9zIDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyICIKKyJjb3VudD0xXG4iCisiKGNvbnN1bHRlIGZkaXNrKDgpKS5cbiIKKworIzogZnNjay9mc2NrLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBjb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlczogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGJhZCBmb3JtYXQgb24gbGluZSAlZCBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjM1MgorbXNnaWQgIiIKKyJXQVJOSU5HOiBZb3VyIC9ldGMvZnN0YWIgZG9lcyBub3QgY29udGFpbiB0aGUgZnNjayBwYXNzbm9cbiIKKyJcdGZpZWxkLiAgSSB3aWxsIGtsdWRnZSBhcm91bmQgdGhpbmdzIGZvciB5b3UsIGJ1dCB5b3VcbiIKKyJcdHNob3VsZCBmaXggeW91ciAvZXRjL2ZzdGFiIGZpbGUgYXMgc29vbiBhcyB5b3UgY2FuLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjQ2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZnNjazogJXM6IG5vdCBmb3VuZFxuIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBu428gZW5jb250cmFkbyIKKworIzogZnNjay9mc2NrLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZy4uLiAlcyBmb3IgZGV2aWNlICVzIGV4aXRlZCB3aXRoIHNpZ25hbCAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKKyMsIGZ1enp5Cittc2dpZCAiQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBmaWxlc3lzdGVtIHR5cGVzXG4iCittc2dzdHIgIm1vdW50OiB2b2PqIHByZWNpc2EgZXNwZWNpZmljYXIgbyB0aXBvIGRvIHNpc3RlbWEgZGUgYXJxdWl2b3MiCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6ODkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgbm9uZXhpc3RlbnQgZGV2aWNlXG4iCittc2dzdHIgIiVzOiAlcyBu428g6SB1bSBkaXNwb3NpdGl2byBscC5cbiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKKyMsIGZ1enp5Cittc2dpZCAiQ2hlY2tpbmcgYWxsIGZpbGUgc3lzdGVtcy5cbiIKK21zZ3N0ciAiRm9y52FuZG8gdmVyaWZpY2Hn428gZG8gc2lzdGVtYSBkZSBhcnF1aXZvcyBlbSAlcy5cbiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1CisjLCBmdXp6eQorbXNnaWQgIiIKKyJVc2FnZTogZnNjayBbLUFNTlBSVFZdIFsgLUMgWyBmZCBdIF0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIFtmaWxlc3lzIC4uLl1cbiIKK21zZ3N0ciAiIgorIlVzbzogbWtmcyBbLVZdIFstdCB0aXBvU2lzdEFycV0gW29w5/Vlcy1zaXN0QXJxXSBkaXNwb3NpdGl2byBbdGFtYW5ob11cbiIKKworIzogZnNjay9mc2NrLmM6MTEyMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGRldmljZXNcbiIKK21zZ3N0ciAiJXM6ICVzIG7jbyDpIHVtIGRpc3Bvc2l0aXZvIGxwLlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGFicmlyICVzOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJcyAvcHJvYyBtb3VudGVkP1xuIgorbXNnc3RyICIlcyBkZXNtb250YWRvXG4iCisKKyM6IGZzY2svZnNjay5jOjExNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSByb290IHRvIHNjYW4gZm9yIG1hdGNoaW5nIGZpbGVzeXN0ZW1zOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGZpbmQgbWF0Y2hpbmcgZmlsZXN5c3RlbTogJXNcbiIKK21zZ3N0ciAiRGVzbW9udGFuZG8gcXVhaXNxdWVyIHNpc3RlbWFzIGRlIGFycXVpdm9zIHJlbWFuZXNjZW50ZXMuLi4iCisKKyM6IGZzY2svZnNjay5jOjExNTYgZnNjay9mc2NrLmM6MTI0MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGFyZ3VtZW50c1xuIgorbXNnc3RyICIlczogc2luYWwgZGVzY29uaGVjaWRvICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZzY2sgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBkZSAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgZnNja19wYXRoXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWxvY2FyIGJ1ZmZlciBwYXJhIGlub2RlcyIKKworIzogZ2V0b3B0L2dldG9wdC5jOjIyOQorbXNnaWQgIlRyeSBgZ2V0b3B0IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIlRlbnRlIGBnZXRvcHQgLS1oZWxwJyBwYXJhIG1haW9yZXMgaW5mb3JtYef1ZXMuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyOTUKK21zZ2lkICJlbXB0eSBsb25nIG9wdGlvbiBhZnRlciAtbCBvciAtLWxvbmcgYXJndW1lbnQiCittc2dzdHIgIm9w5+NvIGxvbmdhIHZhemlhIGRlcG9pcyBkZSBhcmd1bWVudG8gLWwgb3UgLS1sb25nIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzE1Cittc2dpZCAidW5rbm93biBzaGVsbCBhZnRlciAtcyBvciAtLXNoZWxsIGFyZ3VtZW50IgorbXNnc3RyICJpbnRlcnByZXRhZG9yIGRlIGNvbWFuZG9zIGRlc2NvbmhlY2lkbyBhcPNzIGFyZ3VtZW50byAtcyBvdSAtLXNoZWxsIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIwCittc2dpZCAiVXNhZ2U6IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICJVc286IGdldG9wdCB0ZXh0b19vcOf1ZXMgcGFy4m1ldHJvc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIxCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgZ2V0b3B0IFtvcOf1ZXNdIFstLV0gdGV4dG9fb3Dn9WVzIHBhcuJtZXRyb3NcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbb3Dn9WVzXSAtb3wtLW9w5/VlcyB0ZXh0b19vcOf1ZXMgW29w5/Vlc10gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAgcGFy4m1ldHJvc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI0Cittc2dpZCAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBBbGxvdyBsb25nIG9wdGlvbnMgc3RhcnRpbmcgd2l0aCBzaW5nbGUgLVxuIgorbXNnc3RyICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIFBlcm1pdGUgb3Dn9WVzIGxvbmdhcyBpbmljaWFuZG8gY29tIHVtIPpuaWNvICIKKyItXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjUKK21zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVGhpcyBzbWFsbCB1c2FnZSBndWlkZVxuIgorbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgTW9zdHJhIGVzdGUgcGVxdWVubyBndWlhIGRlIHVzb1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI2Cittc2dpZCAiICAtbCwgLS1sb25nb3B0aW9ucz1sb25nb3B0cyAgIExvbmcgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLWwsIC0tbG9uZ29wdGlvbnM9b3BzX2xvbmdhcyBPcOf1ZXMgbG9uZ2FzIGEgc2VyZW0gcmVjb25oZWNpZGFzXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjcKK21zZ2lkICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1lIHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIKK21zZ3N0ciAiIgorIiAgLW4sIC0tbmFtZT1ub21lX3Byb2cgICAgICAgICBPIG5vbWUgc29iIG8gcXVhbCBlcnJvcyBz428gcmVwb3J0YWRvc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI4Cittc2dpZCAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIFNob3J0IG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1vLCAtLW9wdGlvbnM9dGV4dG9fb3Dn9WVzICAgICBPcOf1ZXMgY3VydGFzIGEgc2VyZW0gcmVjb25oZWNpZGFzXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjkKK21zZ2lkICIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgRGlzYWJsZSBlcnJvciByZXBvcnRpbmcgYnkgZ2V0b3B0KDMpXG4iCittc2dzdHIgIiIKKyIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgRGVzYXRpdmEgYSBleGliaefjbyBkZSBlcnJvcyBwb3IgZ2V0b3B0KDMpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgU2VtIHNh7WRhIG5vcm1hbFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMxCittc2dpZCAiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVsbCBxdW90aW5nIGNvbnZlbnRpb25zXG4iCittc2dzdHIgIiIKKyIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgQ29uZmlndXJhIGFzIGNvbnZlbuf1ZXMgZGUgYXNwYXMgZG8gIgorImludGVycHJldGFkb3IgZGUgY29tYW5kb3NcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMgorbXNnaWQgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUZXN0IGZvciBnZXRvcHQoMSkgdmVyc2lvblxuIgorbXNnc3RyICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgVGVzdGUgZGUgdmVyc+NvIGRlIGdldG9wdCgxKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMzCittc2dpZCAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIERvIG5vdCBxdW90ZSB0aGUgb3V0cHV0XG4iCittc2dzdHIgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBO428gcXVvdGEgYSBzYe1kYVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzM0Cittc2dpZCAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCittc2dzdHIgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBNb3N0cmEgaW5mb3JtYef1ZXMgZGUgdmVyc+NvXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozODggZ2V0b3B0L2dldG9wdC5jOjQ0NworbXNnaWQgIm1pc3Npbmcgb3B0c3RyaW5nIGFyZ3VtZW50IgorbXNnc3RyICJmYWx0b3UgbyBhcmd1bWVudG8gdGV4dG9fb3Dn9WVzIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJnZXRvcHQgKGVuaGFuY2VkKSAxLjEuNFxuIgorbXNnc3RyICJnZXRvcHQgKG1lbGhvcmFkbykgMS4xLjApXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0NDEKK21zZ2lkICJpbnRlcm5hbCBlcnJvciwgY29udGFjdCB0aGUgYXV0aG9yLiIKK21zZ3N0ciAiZXJybyBpbnRlcm5vLCBlbnRyZSBlbSBjb250YXRvIGNvbSBvIGF1dG9yLiIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAiYm9vdCBleGVjdXRhZG8gZG8gTUlMT1xuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUnVmZmlhbiBCQ0QgY2xvY2tcbiIKK21zZ3N0ciAiUmVs82dpbyBCQ0QgUnVmZmlhblxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2xvY2twb3J0IGFkanVzdGVkIHRvIDB4JXhcbiIKK21zZ3N0ciAicG9ydGEgZG8gcmVs82dpbyBhanVzdGFkYSBwYXJhIDB4JXhcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZ1bmt5IFRPWSFcbiIKK21zZ3N0ciAiZnVua3kgVE9ZIVxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGF0b21pYyAlcyBmYWlsZWQgZm9yIDEwMDAgaXRlcmF0aW9ucyEiCittc2dzdHIgIiVzOiAlcyBhdPRtaWNvIGZhbGhvdSBwb3IgMTAwMCBpdGVyYef1ZXMhIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiByZWFkIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAvZGV2L3BvcnQ6ICVzIgorbXNnc3RyICJO428g6SBwb3Nz7XZlbCBhYnJpciAvZGV2L3BvcnQ6ICVzIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIk7jbyBjb25zZWd1aSBvYnRlciBwZXJtaXNz428gcG9ycXVlIG7jbyB0ZW50ZWkuXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyB1bmFibGUgdG8gZ2V0IEkvTyBwb3J0IGFjY2VzczogIHRoZSBpb3BsKDMpIGNhbGwgZmFpbGVkLlxuIgorbXNnc3RyICIiCisiJXMg6SBpbmNhcGF6IGRlIG9idGVyIGFjZXNzbyDgIHBvcnRhIGRlIEUvUzogYSBjaGFtYWRhIGlvcGwoMykgZmFsaG91LlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICJQcm92YXZlbG1lbnRlIHPjbyBuZWNlc3PhcmlvcyBwcml2aWzpZ2lvcyBkZSByb290LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiAlcyB0aW1lLlxuIgorbXNnc3RyICJQcmVzc3Vwb25kbyBxdWUgbyByZWzzZ2lvIGRlIGhhcmR3YXJlIOkgbWFudGlkbyBuYSBob3JhICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAibG9jYWwiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2FybmluZzogdW5yZWNvZ25pemVkIHRoaXJkIGxpbmUgaW4gYWRqdGltZSBmaWxlXG4iCittc2dzdHIgIiVzOiBBdmlzbzogYSB0ZXJjZWlyYSBsaW5oYSBkbyBhcnF1aXZvIGFkanRpbWUgbuNvIGZvaSByZWNvbmhlY2lkYVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiKEV4cGVjdGVkOiBgVVRDJyBvciBgTE9DQUwnIG9yIG5vdGhpbmcuKVxuIgorbXNnc3RyICIoRXNwZXJhZG86IGBVVEMnLCBgTE9DQUwnICBvdSBuYWRhLilcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGRyaWZ0IGFkanVzdG1lbnQgZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgItpsdGltbyBhanVzdGUgZGUgdmFyaWHn428gZmVpdG8gJWQgc2VndW5kb3MgYXDzcyAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBjYWxpYnJhdGlvbiBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAi2mx0aW1hIGNhbGlicmHn428gZmVpdGEgJWQgc2VndW5kb3MgYXDzcyAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICJIYXJkd2FyZSBjbG9jayBpcyBvbiAlcyB0aW1lXG4iCittc2dzdHIgIk8gcmVs82dpbyBkZSBoYXJkd2FyZSBlc3ThIG5hIGhvcmEgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAidW5rbm93biIKK21zZ3N0ciAiZGVzY29uaGVjaWRhIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBmb3IgY2xvY2sgdGljay4uLlxuIgorbXNnc3RyICJBZ3VhcmRhbmRvIHRpcXVlIGRvIHJlbPNnaW8uLi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiLi4uIHRpcXVlIGRvIHJlbPNnaW8gb2J0aWRvXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHZhbHVlcyBpbiBoYXJkd2FyZSBjbG9jazogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorbXNnc3RyICIiCisiVmFsb3JlcyBpbnbhbGlkb3Mgbm8gcmVs82dpbyBkZSBoYXJkd2FyZTogJTRkLyUuNGQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKyJIb3JhIGRvIHJlbPNnaW8gZGUgaGFyZHdhcmU6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2VndW5kb3MgIgorImRlc2RlIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIkhvcmEgbGlkYSBkbyByZWzzZ2lvIGRlIEhhcmR3YXJlOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyBIYXJkd2FyZSBDbG9jayB0byAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiIgorIkNvbmZpZ3VyYW5kbyBvIHJlbPNnaW8gZGUgaGFyZHdhcmUgcGFyYSAlLjJkOiUuMmQ6JS4yZCA9ICVkIHNlZ3VuZG9zIGRlc2RlICIKKyIxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICJDbG9jayBub3QgY2hhbmdlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiUmVs82dpbyBu428gYWx0ZXJhZG8gLSBhcGVuYXMgdGVzdGFuZG8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjUzNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlRpbWUgZWxhcHNlZCBzaW5jZSByZWZlcmVuY2UgdGltZSBoYXMgYmVlbiAlLjZmIHNlY29uZHMuXG4iCisiRGVsYXlpbmcgZnVydGhlciB0byByZWFjaCB0aGUgbmV3IHRpbWUuXG4iCittc2dzdHIgIiIKKyJPIHRlbXBvIGRlY29ycmlkbyBkZXNkZSBvIGhvcuFyaW8gZGUgcmVmZXLqbmNpYSBmb2kgZGUgJS42ZiBzZWd1bmRvcy5cbiIKKyIgQXRyYXNhbmRvIG1haXMgcGFyYSBjaGVnYXIgYW8gcHLzeGltbyBzZWd1bmRvIGNoZWlvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIk9zIHJlZ2lzdHJhZG9yZXMgZG8gcmVs82dpbyBkZSBoYXJkd2FyZSBjb2506m0gdmFsb3JlcyBpbnbhbGlkb3MgKHAuIGV4LiwgIgorIjUwuiBkaWEgZG8gbepzKSBvdSBhbOltIGRvIGludGVydmFsbyBxdWUgcG9kZW1vcyBtYW5pcHVsYXIgKHAuZXguLCBhbm8gIgorIjIwOTUpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIlcyAgJS42ZiBzZWd1bmRvc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gLS1kYXRlIG9wdGlvbiBzcGVjaWZpZWQuXG4iCittc2dzdHIgIk7jby4gT3Dn428gLS1kYXRlIGVzcGVjaWZpY2FkYVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICJmc25hbWUgbm9tZSBtdWl0byBsb25nbyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgdmFsdWUgb2YgdGhlIC0tZGF0ZSBvcHRpb24gaXMgbm90IGEgdmFsaWQgZGF0ZS5cbiIKKyJJbiBwYXJ0aWN1bGFyLCBpdCBjb250YWlucyBxdW90YXRpb24gbWFya3MuXG4iCittc2dzdHIgIiIKKyJPIHZhbG9yIGRhIG9w5+NvIC0tZGF0ZSBu428g6SB1bWEgZGF0YSB24WxpZGEuXG4iCisiRXNwZWNpZmljYW1lbnRlLCBlbGUgY29udOltIGFzcGFzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIkVtaXRpbmRvIGNvbWFuZG8gZGF0ZTogJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQwCittc2dpZCAiVW5hYmxlIHRvIHJ1biAnZGF0ZScgcHJvZ3JhbSBpbiAvYmluL3NoIHNoZWxsLiBwb3BlbigpIGZhaWxlZCIKK21zZ3N0ciAiIgorIk7jbyBmb2kgcG9zc+12ZWwgZXhlY3V0YXIgbyBwcm9ncmFtYSAnZGF0ZScgbm8gc2hlbGwgL2Jpbi9zaDogcG9wZW4oKSBmYWxob3UiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgInJlc3Bvc3RhIGRvIGNvbWFuZG8gZGF0ZSA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKyJPIGNvbWFuZG8gZGF0ZSBlbWl0aWRvIHBvciAlcyByZXRvcm5vdSByZXN1bHRhZG9zIGluZXNwZXJhZG9zLlxuIgorIk8gY29tYW5kbyBmb2k6XG4iCisiICAlc1xuIgorIkEgcmVzcG9zdGEgZm9pOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIk8gY29tYW5kbyBkYXRlIGVtaXRpZG8gcG9yICVzIHJldG9ybm91IHVtIHZhbG9yIGRpZmVyZW50ZSBkZSB1bSBpbnRlaXJvIG9uZGUgIgorIm8gdmFsb3IgZGUgaG9yYSBjb252ZXJ0aWRvIGVyYSBlc3BlcmFkby5cbiIKKyJPIGNvbWFuZG8gZm9pOlxuIgorIiAgJXNcbiIKKyJBIHJlc3Bvc3RhIGZvaTpcbiIKKyIgICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY3MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGF0ZSBzdHJpbmcgJXMgZXF1YXRlcyB0byAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5LlxuIgorbXNnc3RyICJTdHJpbmcgZGUgZGF0ZSAlcyBlcXVpdmFsZSBhICVkIHNlZ3VuZG9zIGRlc2RlIDE5NjkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorIk8gcmVs82dpbyBkZSBoYXJkd2FyZSBu428gY29udOltIHVtYSBob3JhIHbhbGlkYS4gRW0gZnVu5+NvIGRpc3NvLCBu428g6SAiCisicG9zc+12ZWwgY29uZmlndXJhciBhIGhvcmEgZG8gc2lzdGVtYSBhIHBhcnRpciBkZWxlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjcgaHdjbG9jay9od2Nsb2NrLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgc2V0dGltZW9mZGF5OlxuIgorbXNnc3RyICJDaGFtYW5kbyBzZXR0aW1lb2ZkYXk6XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyOCBod2Nsb2NrL2h3Y2xvY2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKK21zZ3N0ciAiXHR0di50dl9zZWMgPSAlbGQsIHR2LnR2X3VzZWMgPSAlbGRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMwIGh3Y2xvY2svaHdjbG9jay5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKK21zZ3N0ciAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMyBod2Nsb2NrL2h3Y2xvY2suYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgc3lzdGVtIGNsb2NrIGJlY2F1c2UgcnVubmluZyBpbiB0ZXN0IG1vZGUuXG4iCittc2dzdHIgIiIKKyJPIHJlbPNnaW8gZG8gc2lzdGVtYSBu428gZXN04SBzZW5kbyBhanVzdGFkbzogZXhlY3V0YW5kbyBlbSBtb2RvIGRlIHRlc3RlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIskgbmVjZXNz4XJpbyBzZXIgc3VwZXJ1c3XhcmlvIHBhcmEgYWp1c3RhciBvIHJlbPNnaW8gZG8gc2lzdGVtYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQ1IGh3Y2xvY2svaHdjbG9jay5jOjgyMworbXNnaWQgInNldHRpbWVvZmRheSgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dGltZW9mZGF5KCkgZmFsaG91IgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBzeXN0ZW0gdGltZTogJWxkID0gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRVVEM6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIHRoZSBIYXJkd2FyZSBDbG9jayBwcmV2aW91c2x5IGNvbnRhaW5lZCAiCisiZ2FyYmFnZS5cbiIKK21zZ3N0ciAiIgorIk8gZmF0b3IgZGUgdmFyaWHn428gbuNvIGVzdOEgc2VuZG8gYWp1c3RhZG8gcG9ycXVlIG8gcmVs82dpbyBkZSBoYXJkd2FyZSAiCisiY29udGluaGEgbGl4byBhbnRlcmlvcm1lbnRlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGxhc3QgY2FsaWJyYXRpb24gdGltZSBpcyB6ZXJvLFxuIgorInNvIGhpc3RvcnkgaXMgYmFkIGFuZCBjYWxpYnJhdGlvbiBzdGFydG92ZXIgaXMgbmVjZXNzYXJ5LlxuIgorbXNnc3RyICIiCisiTyBmYXRvciBkZSB2YXJpYefjbyBu428gZXN04SBzZW5kbyBhanVzdGFkbyBwb3JxdWUgbWVub3MgZGUgdW0gZGlhIHNlIHBhc3NvdSAiCisiZGVzZGUgYSD6bHRpbWEgY2FsaWJyYefjby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGl0IGhhcyBiZWVuIGxlc3MgdGhhbiBhIGRheSBzaW5jZSB0aGUgIgorImxhc3QgY2FsaWJyYXRpb24uXG4iCittc2dzdHIgIiIKKyJPIGZhdG9yIGRlIHZhcmlh5+NvIG7jbyBlc3ThIHNlbmRvIGFqdXN0YWRvIHBvcnF1ZSBtZW5vcyBkZSB1bSBkaWEgc2UgcGFzc291ICIKKyJkZXNkZSBhIPpsdGltYSBjYWxpYnJh5+NvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yICIKKyJvZiAlZiBzZWNvbmRzL2RheS5cbiIKKyJBZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJ5ICVmIHNlY29uZHMvZGF5XG4iCittc2dzdHIgIiIKKyJPIHJlbPNnaW8gdmFyaW91ICVkIHNlZ3VuZG9zIG5vcyD6bHRpbW9zICVkIHNlZ3VuZG9zLCBhcGVzYXIgZGUgdW0gZmF0b3IgZGUgIgorInZhcmlh5+NvIGRlICVmIHNlZ3VuZG9zL2RpYS5cbiIKKyJBanVzdGFuZG8gbyBmYXRvciBkZSB2YXJpYefjbyBlbSAlZiBzZWd1bmRvcy9kaWEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHNpbmNlIGxhc3QgYWRqdXN0bWVudCBpcyAlZCBzZWNvbmRzXG4iCittc2dzdHIgIk8gdGVtcG8gZGVzZGUgbyD6bHRpbW8gYWp1c3RlIOkgZGUgJWQgc2VndW5kb3NcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWQgdG8gaW5zZXJ0ICVkIHNlY29uZHMgYW5kIHJlZmVyIHRpbWUgYmFjayAlLjZmIHNlY29uZHMgYWdvXG4iCittc2dzdHIgIiIKKyLJIG5lY2Vzc+FyaW8gaW5zZXJpciAlZCBzZWd1bmRvcyBlIHJlZmVyZW5jaWFyIGEgaG9yYSBkZSAlLjZmIHNlZ3VuZG9zICIKKyJhdHLhc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHVwZGF0aW5nIGFkanRpbWUgZmlsZSBiZWNhdXNlIG9mIHRlc3RpbmcgbW9kZS5cbiIKK21zZ3N0ciAiTyBhcnF1aXZvIGFkanRpbWUgbuNvIGVzdOEgc2VuZG8gYXR1YWxpemFkbzogbW9kbyBkZSB0ZXN0ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIlRlcmlhIGdyYXZhZG8gbyBzZWd1aW50ZSBlbSAlczpcbiIKKyIlcyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ291bGQgbm90IG9wZW4gZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgaW4gaXQgKCVzKSBmb3IgIgorIndyaXRpbmciCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwNiBod2Nsb2NrL2h3Y2xvY2suYzoxMDExCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgKCVzKSBpbiBpdCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRyaWZ0IGFkanVzdG1lbnQgcGFyYW1ldGVycyBub3QgdXBkYXRlZC5cbiIKK21zZ3N0ciAiUGFy4m1ldHJvcyBkZSBhanVzdGUgZGUgdmFyaWHn428gbuNvIGF0dWFsaXphZG9zLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBhZGp1c3QgaXQuXG4iCittc2dzdHIgIiIKKyJPIHJlbPNnaW8gZGUgaGFyZHdhcmUgbuNvIGNvbnTpbSB1bWEgaG9yYSB24WxpZGEsIHBvcnRhbnRvIG7jbyDpIHBvc3PtdmVsICIKKyJhanVzdOEtbG8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAiIgorIk8gZmF0b3IgZGUgdmFyaWHn428gbuNvIGVzdOEgc2VuZG8gYWp1c3RhZG8gcG9ycXVlIG1lbm9zIGRlIHVtIGRpYSBzZSBwYXNzb3UgIgorImRlc2RlIGEg+mx0aW1hIGNhbGlicmHn428uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICIiCisiTyBhanVzdGUgbmVjZXNz4XJpbyDpIG1lbm9yIGRvIHF1ZSB1bSBzZWd1bmRvLCBwb3J0YW50byBvIHJlbPNnaW8gbuNvIHNlcuEgIgorImFqdXN0YWRvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nICVzLlxuIgorbXNnc3RyICJVc2FuZG8gJXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIGNsb2NrIGludGVyZmFjZSBmb3VuZC5cbiIKK21zZ3N0ciAiTuNvIGZvaSBlbmNvbnRyYWRhIHVtYSBpbnRlcmZhY2UgZGUgcmVs82dpbyB1dGlsaXrhdmVsLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIk7jbyDpIHBvc3PtdmVsIGFqdXN0YXIgbyByZWzzZ2lvIGRvIHNpc3RlbWEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisiTyBrZXJuZWwgbWFudOltIHVtIHZhbG9yIGRlIGVwb2NoIHBhcmEgbyByZWzzZ2lvIGRlIGhhcmR3YXJlIHNvbWVudGUgZW0gdW1hICIKKyJt4XF1aW5hIEFscGhhLlxuIgorIkVzdGEgY/NwaWEgZGUgaHdjbG9jayBmb2kgY29tcGlsYWRhIHBhcmEgdW1hIG3hcXVpbmEgZGlmZXJlbnRlIGRlIEFscGhhIChlLCAiCisiYXNzaW0sIHN1cPVlLXNlIHF1ZSBu428gZXN04SBzZW5kbyBleGVjdXRhZGEgZW0gdW1hIEFscGhhIG5vIG1vbWVudG8pLiAgIgorIk5lbmh1bWEgYefjbyBmb2kgcmVhbGl6YWRhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBnZXQgdGhlIGVwb2NoIHZhbHVlIGZyb20gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBvYnRlciBvIHZhbG9yIGRlIGVwb2NoIGRvIGtlcm5lbC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJLZXJuZWwgaXMgYXNzdW1pbmcgYW4gZXBvY2ggdmFsdWUgb2YgJWx1XG4iCittc2dzdHIgIk8ga2VybmVsIGVzdOEgcHJlc3N1cG9uZG8gdW0gdmFsb3IgZGUgZXBvY2ggZGUgJWx1XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIHNldCB0aGUgZXBvY2ggdmFsdWUsIHlvdSBtdXN0IHVzZSB0aGUgJ2Vwb2NoJyBvcHRpb24gdG8gdGVsbCB0byB3aGF0ICIKKyJ2YWx1ZSB0byBzZXQgaXQuXG4iCittc2dzdHIgIiIKKyJQYXJhIGNvbmZpZ3VyYXIgbyB2YWxvciBkZSBlcG9jaCwg6SBuZWNlc3PhcmlvIHVzYXIgYSBvcOfjbyAnZXBvY2gnIHBhcmEgIgorImluZm9ybWFyIHBhcmEgcXVlIHZhbG9yIGNvbmZpZ3Vy4S1sby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyB0aGUgZXBvY2ggdG8gJWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIkVwb2NoIG7jbyBjb25maWd1cmFkbyBwYXJhICVkOyBhcGVuYXMgdGVzdGFuZG8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiTuNvIOkgcG9zc+12ZWwgY29uZmlndXJhciBvIHZhbG9yIGRlIGVwb2NoIG5vIGtlcm5lbC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI5MCBtaXNjLXV0aWxzL2NhbC5jOjM0NyBtaXNjLXV0aWxzL2tpbGwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBkZSAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiaHdjbG9jayAtIHF1ZXJ5IGFuZCBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIChSVEMpXG4iCisiXG4iCisiVXNhZ2U6IGh3Y2xvY2sgW2Z1bmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGdW5jdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHNob3cgdGhpcyBoZWxwXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgdGhlIHJ0YyB0byB0aGUgdGltZSBnaXZlbiB3aXRoIC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBhZGp1c3QgdGhlIHJ0YyB0byBhY2NvdW50IGZvciBzeXN0ZW1hdGljIGRyaWZ0IHNpbmNlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgcHJpbnQgb3V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICBzZXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlIHRvIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHByaW50IG91dCB0aGUgdmVyc2lvbiBvZiBod2Nsb2NrIHRvIHN0ZG91dFxuIgorIlxuIgorIk9wdGlvbnM6IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICBzcGVjaWFsIC9kZXYvLi4uIGZpbGUgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdFxuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICBhY2Nlc3MgdGhlIElTQSBidXMgZGlyZWN0bHkgaW5zdGVhZCBvZiAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorIiAgICAgICAtLWRhdGUgICAgICAgICBzcGVjaWZpZXMgdGhlIHRpbWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLWVwb2NoPXllYXIgICBzcGVjaWZpZXMgdGhlIHllYXIgd2hpY2ggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZG8gbm90IGFjY2VzcyAvZXRjL2FkanRpbWUuIFJlcXVpcmVzIHRoZSB1c2Ugb2ZcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICBkbyBldmVyeXRoaW5nIGV4Y2VwdCBhY3R1YWxseSB1cGRhdGluZyB0aGUgaGFyZHdhcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBkZWJ1ZyBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJod2Nsb2NrIC0gY29uc3VsdGEgZSBhanVzdGEgbyByZWzzZ2lvIGRlIGhhcmR3YXJlIChSVEMpLlxuIgorIlxuIgorIlVzbzogaHdjbG9jayBbZnVu5+NvXSBbb3Dn9WVzLi4uXVxuIgorIlxuIgorIkZ1buf1ZXM6XG4iCisiICAtLWhlbHAgICAgICAgIE1vc3RyYSBlc3RhIGFqdWRhLlxuIgorIiAgLS1zaG93ICAgICAgICBM6iBvIHJlbPNnaW8gZGUgaGFyZHdhcmUgZSBpbXByaW1lIG8gcmVzdWx0YWRvLlxuIgorIiAgLS1zZXQgICAgICAgICBDb25maWd1cmEgbyBSVEMgcGFyYSBhIGhvcmEgZm9ybmVjaWRhIGNvbSAtLWRhdGUuXG4iCisiICAtLWhjdG9zeXMgICAgIENvbmZpZ3VyYSBhIGhvcmEgZG8gc2lzdGVtYSBhIHBhcnRpciBkbyByZWzzZ2lvIGRlICIKKyJoYXJkd2FyZS5cbiIKKyIgIC0tc3lzdG9oYyAgICAgQ29uZmlndXJhIG8gcmVs82dpbyBkZSBoYXJkd2FyZSBwYXJhIGEgaG9yYSBhdHVhbCBkbyAiCisic2lzdGVtYS5cbiIKKyIgIC0tYWRqdXN0ICAgICAgQWp1c3RhIG8gUlRDIHBhcmEgbGV2YXIgZW0gY29udGEgdmFyaWHn428gc2lzdGVt4XRpY2EgIgorImRlc2RlIFxuIgorIiAgICAgICAgICAgICAgICBxdWUgbyByZWzzZ2lvIGZvaSBhanVzdGFkbyBvdSBjb25maWd1cmFkbyBkYSD6bHRpbWEgdmV6LlxuIgorIiAgLS1nZXRlcG9jaCAgICBFeGliZSBvIHZhbG9yIGRlIGVwb2NoIGRvIHJlbPNnaW8gZGUgaGFyZHdhcmUgZG8ga2VybmVsLlxuIgorIiAgLS1zZXRlcG9jaCAgICBDb25maWd1cmEgbyB2YWxvciBkZSBlcG9jaCBkbyByZWzzZ2lvIGRlIGhhcmR3YXJlIGRvIGtlcm5lbCAiCisicGFyYSBvIFxuIgorIiAgICAgICAgICAgICAgICB2YWxvciBmb3JuZWNpZG8gY29tIC0tZXBvY2guXG4iCisiICAtLXZlcnNpb24gICAgIENvbG9jYSBhIHZlcnPjbyBkZSBod2Nsb2NrIGVtIHN0ZG91dC5cbiIKKyJcbiIKKyJPcOf1ZXM6IFxuIgorIiAgLS11dGMgICAgICAgICBPIHJlbPNnaW8gZGUgaGFyZHdhcmUg6SBtYW50aWRvIGVtIFVUQyAoaG9yYSB1bml2ZXJzYWwgIgorImNvb3JkZW5hZGEpLlxuIgorIiAgLS1sb2NhbHRpbWUgICBPIHJlbPNnaW8gZGUgaGFyZHdhcmUg6SBtYW50aWRvIGVtIGhvcmEgbG9jYWwuXG4iCisiICAtLWRpcmVjdGlzYSAgIEFjZXNzYSBvIGJhcnJhbWVudG8gSVNBIGRpcmV0YW1lbnRlLCBlbSB2ZXogZGUgJXMuXG4iCisiICAtLWJhZHllYXIgICAgIElnbm9yYSBvIGFubyBkbyBSVEMsIHBvaXMgYSBCSU9TIGVzdOEgY29tIHByb2JsZW1hcy5cbiIKKyIgIC0tZGF0ZSAgICAgICAgRXNwZWNpZmljYSBhIGhvcmEgcGFyYSBhIHF1YWwgY29uZmlndXJhciBvIHJlbPNnaW8gZGUgIgorImhhcmR3YXJlLlxuIgorIiAgLS1lcG9jaD1hbm8gIEVzcGVjaWZpY2EgbyBhbm8gaW5pY2lhbCBkbyB2YWxvciBcbiIKKyIgICAgICAgICAgICAgICAgZGUgZXBvY2ggZG8gcmVs82dpbyBkZSBoYXJkd2FyZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLUp8LS1qZW5zZW4sIC1BfC0tYXJjLCAtU3wtLXNybSwgLUZ8LS1mdW5reS10b3lcbiIKKyIgICAgICAgdGVsbCBod2Nsb2NrIHRoZSB0eXBlIG9mIGFscGhhIHlvdSBoYXZlIChzZWUgaHdjbG9jayg4KSlcbiIKKyJcbiIKK21zZ3N0ciAiIgorIiAgLS1qZW5zZW4sIC0tYXJjLCAtLXNybSwgLS1mdW5reS10b3lcbiIKKyIgICAgICAgICAgICAgICAgaW5mb3JtYSBhIGh3Y2xvY2sgbyB0aXBvIGRlIEFscGhhIHF1ZSB2b2PqIHRlbSAoY29uc3VsdGUgIgorImh3Y2xvY2soOCkpXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gY29ubmVjdCB0byBhdWRpdCBzeXN0ZW1cbiIKK21zZ3N0ciAiTuNvIOkgcG9zc+12ZWwgYWp1c3RhciBvIHJlbPNnaW8gZG8gc2lzdGVtYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMgbuNvIGFjZWl0YSBhcmd1bWVudG9zIHF1ZSBu428gc2VqYW0gZGUgb3Dn428uIFZvY+ogZm9ybmVjZXUgJWQuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyJWb2PqIGVzcGVjaWZpY291IG36bHRpcGxhcyBvcOf1ZXMgZGUgZnVu5+NvLlxuIgorIlZvY+ogc/MgcG9kZSBleGVjdXRhciB1bWEgZnVu5+NvIHBvciB2ZXouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS11dGMgYW5kIC0tbG9jYWx0aW1lIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSBzcGVjaWZpZWQgIgorImJvdGguXG4iCittc2dzdHIgIiIKKyIlczogQXMgb3Dn9WVzIC0tdXRjIGUgLS1sb2NhbHRpbWUgc+NvIG11dHVhbWVudGUgZXhjbHVzaXZhcy4gVm9j6iAiCisiZXNwZWNpZmljb3UgYW1iYXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IEFzIG9w5/VlcyAtLXV0YyBlIC0tbG9jYWx0aW1lIHPjbyBtdXR1YW1lbnRlIGV4Y2x1c2l2YXMuIFZvY+ogIgorImVzcGVjaWZpY291IGFtYmFzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogQXMgb3Dn9WVzIC0tdXRjIGUgLS1sb2NhbHRpbWUgc+NvIG11dHVhbWVudGUgZXhjbHVzaXZhcy4gVm9j6iAiCisiZXNwZWNpZmljb3UgYW1iYXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdpdGggLS1ub2FkamZpbGUsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYwMgorIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgc2V0LXRvIHRpbWUuICBDYW5ub3Qgc2V0IGNsb2NrLlxuIgorbXNnc3RyICIiCisiTuNvIGjhIHVtIGhvcuFyaW8gcGFyYSBhanVzdGUgdXRpbGl64XZlbC4gTuNvIOkgcG9zc+12ZWwgYWp1c3RhciBvIHJlbPNnaW8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jay5cbiIKK21zZ3N0ciAiU29tZW50ZSBvIHN1cGVydXN14XJpbyBwb2RlIGFsdGVyYXIgbyByZWzzZ2lvIGRlIGhhcmR3YXJlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgU3lzdGVtIENsb2NrLlxuIgorbXNnc3RyICJTb21lbnRlIG8gc3VwZXJ1c3XhcmlvIHBvZGUgYWx0ZXJhciBvIHJlbPNnaW8gZGUgaGFyZHdhcmUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2sgZXBvY2ggaW4gdGhlICIKKyJrZXJuZWwuXG4iCittc2dzdHIgIiIKKyJTb21lbnRlIG8gc3VwZXJ1c3XhcmlvIHBvZGUgYWx0ZXJhciBvIGVwb2NoIGRvIHJlbPNnaW8gZGUgaGFyZHdhcmUgbm8gIgorImtlcm5lbC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgYW55IGtub3duIG1ldGhvZC5cbiIKK21zZ3N0ciAiIgorIk7jbyDpIHBvc3PtdmVsIGFjZXNzYXIgbyBSZWzzZ2lvIGRlIEhhcmR3YXJlIHBvciBuZW5odW0gbel0b2RvIGNvbmhlY2lkby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIiIKKyJVc2UgYSBvcOfjbyAtLWRlYnVnIHBhcmEgY29uc3VsdGFyIG9zIGRldGFsaGVzIGRlIG5vc3NhIGJ1c2NhIHBvciB1bSBt6XRvZG8gIgorImRlIGFjZXNzby5cbiIKKworIzogaHdjbG9jay9rZC5jOjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tIEtER0hXQ0xLIHRvIGNoYW5nZVxuIgorbXNnc3RyICJBZ3VhcmRhbmRvIGVtIGxh528gYXTpIHF1ZSBhIGhvcmEgZGUgS0RHSFdDTEsgbXVkZS5cbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwgS0RHSFdDTEsgcGFyYSBsZXIgYSBob3JhIGZhbGhvdSIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICJpb2N0bCBLREdIV0NMSyBwYXJhIGxlciBhIGhvcmEgZmFsaG91IG5vIGxh528iCisKKyM6IGh3Y2xvY2sva2QuYzo4MiBod2Nsb2NrL3J0Yy5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iCittc2dzdHIgIlRlbXBvIGVzZ290YWRvIGVucXVhbnRvIGFndWFyZGF2YSBhIGhvcmEgbXVkYXIuXG4iCisKKyM6IGh3Y2xvY2sva2QuYzoxMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgZmFpbGVkIHRvIHJlYWQgdGltZSBmcm9tICVzIgorbXNnc3RyICJpb2N0bCgpIG7jbyBjb25zZWd1aXUgbGVyIGEgaG9yYSBkZSAvZGV2L3R0eTEiCisKKyM6IGh3Y2xvY2sva2QuYzoxNDAKK21zZ2lkICJpb2N0bCBLRFNIV0NMSyBmYWlsZWQiCittc2dzdHIgImlvY3RsIEtEU0hXQ0xLIGZhbGhvdSIKKworIzogaHdjbG9jay9rZC5jOjE3NgorIywgZnV6enkKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgL2Rldi90dHkxIgorCisjOiBod2Nsb2NrL2tkLmM6MTgwCittc2dpZCAiS0RHSFdDTEsgaW9jdGwgZmFpbGVkIgorbXNnc3RyICJpb2N0bCBLREdIV0NMSyBmYWxob3UiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgIm9wZW4oKSBkZSAlcyBmYWxob3UiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gcmVhZCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImlvY3RsKCkgcGFyYSAlcyBwYXJhIGxlciBhIGhvcmEgZmFsaG91LlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiQWd1YXJkYW5kbyBlbSBsYedvIGF06SBxdWUgYSBob3JhIGRlICVzIG11ZGUuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRvZXMgbm90IGhhdmUgaW50ZXJydXB0IGZ1bmN0aW9ucy4gIgorbXNnc3RyICIlcyBu428gcG9zc3VpIGZ1buf1ZXMgZGUgaW50ZXJydXDn428uICIKKworIzogaHdjbG9jay9ydGMuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJyZWFkKCkgcGFyYSAlcyBwYXJhIGFndWFyZGFyIHRpcXVlIGRvIHJlbPNnaW8gZmFsaG91IgorCisjOiBod2Nsb2NrL3J0Yy5jOjI4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgInJlYWQoKSBwYXJhICVzIHBhcmEgYWd1YXJkYXIgdGlxdWUgZG8gcmVs82dpbyBmYWxob3UiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjkxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIHRpbWVkIG91dFxuIgorbXNnc3RyICJyZWFkKCkgcGFyYSAlcyBwYXJhIGFndWFyZGFyIHRpcXVlIGRvIHJlbPNnaW8gZmFsaG91IgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoKSBwYXJhICVzIHBhcmEgZGVzbGlnYXIgaW50ZXJydXDn9WVzIGRlIGF0dWFsaXph5+NvIGZhbGhvdSIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgIiIKKyJpb2N0bCgpIHBhcmEgJXMgcGFyYSBsaWdhciBpbnRlcnJ1cOf1ZXMgZGUgYXR1YWxpemHn428gZmFsaG91IGluZXNwZXJhZGFtZW50ZSIKKworIzogaHdjbG9jay9ydGMuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byBzZXQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJpb2N0bCgpIHBhcmEgJXMgcGFyYSBhanVzdGFyIGEgaG9yYSBmYWxob3UuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiaW9jdGwoJXMpIHRldmUg6nhpdG8uXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICJBIGFiZXJ0dXJhIGRlICVzIGZhbGhvdSIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisiUGFyYSBtYW5pcHVsYXIgbyB2YWxvciBkZSBlcG9jaCBubyBrZXJuZWwsIOkgbmVjZXNz4XJpbyBhY2Vzc2FyIG8gZHJpdmVyIGRlICIKKyJkaXNwb3NpdGl2byAncnRjJyBkbyBMaW51eCwgYXRyYXbpcyBkbyBhcnF1aXZvIGRlIGRpc3Bvc2l0aXZvIGVzcGVjaWFsICVzLiAgIgorIk5vIGVudGFudG8sIGVzc2UgYXJxdWl2byBu428gZXhpc3RlIG5lc3RlIHNpc3RlbWEuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDE1IGh3Y2xvY2svcnRjLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGFicmlyICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgcGFyYSAlcyBmYWxob3UiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIndlIGhhdmUgcmVhZCBlcG9jaCAlbGQgZnJvbSAlcyB3aXRoIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorbXNnc3RyICJsZW1vcyBlcG9jaCAlbGQgZGUgJXMgY29tIGlvY3RsIFJUQ19FUE9DSF9SRUFELlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIk8gdmFsb3IgZGUgZXBvY2ggbuNvIHBvZGUgc2VyIG1lbm9yIHF1ZSAxOTAwLiAgVm9j6iBzb2xpY2l0b3UgJWxkLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZXR0aW5nIGVwb2NoIHRvICVsZCB3aXRoIFJUQ19FUE9DSF9TRVQgaW9jdGwgdG8gJXMuXG4iCittc2dzdHIgIkNvbmZpZ3VyYW5kbyBlcG9jaCBjb21vICVsZCBjb20gaW9jdGwgUlRDX0VQT0NIX1NFVCBwYXJhICVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBkZXZpY2UgZHJpdmVyIGZvciAlcyBkb2VzIG5vdCBoYXZlIHRoZSBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorbXNnc3RyICIiCisiTyBkcml2ZXIgZGUgZGlzcG9zaXRpdm8gZG8ga2VybmVsIHBhcmEgJXMgbuNvIHBvc3N1aSBvIGlvY3RsIFJUQ19FUE9DSF9TRVQuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKFJUQ19FUE9DSF9TRVQpIHRvICVzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgcGFyYSAlcyBmYWxob3UiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZXhlYyAlczogJW0iCittc2dzdHIgIiVzOiBjYW50IGV4ZWMgJXM6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozODMKK21zZ2lkICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKK21zZ3N0ciAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgdGltZW91dCB2YWx1ZTogJXMiCittc2dzdHIgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgInZlbG9jaWRhZGUgaW524WxpZGE6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKK21zZ2lkICJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIgorbXNnc3RyICJu+m1lcm8gZXhjZXNzaXZvIGRlIHZlbG9jaWRhZGVzIGFsdGVybmF0aXZhcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSBmYWxob3U6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogbm90IGEgY2hhcmFjdGVyIGRldmljZSIKK21zZ3N0ciAiL2Rldi8lcyBu428g6SB1bSBkaXNwb3NpdGl2byBkZSBjYXJhY3RlcmVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIvZGV2LyVzOiBu428gZm9pIHBvc3PtdmVsIGFicmlyIGNvbW8gZW50cmFkYSBwYWRy4286ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBvcGVuIGZvciByZWFkL3dyaXRlIgorbXNnc3RyICIlczogbuNvIGVzdOEgYWJlcnRvIHBhcmEgbGVpdHVyYS9ncmF2YefjbyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkdXAgcHJvYmxlbTogJW0iCittc2dzdHIgIiVzOiBwcm9ibGVtYSBkZSBkdXA6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlciIKK21zZ3N0ciAidXN14XJpbyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXJzIgorbXNnc3RyICJ1c3XhcmlvcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTAzMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZDogJW0iCittc2dzdHIgIiVzOiBsZWl0dXJhOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW5wdXQgb3ZlcnJ1biIKK21zZ3N0ciAiJXM6IGVudHJhZGEgZXhjZWRpZGEiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEyMDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy04aGlMbVV3XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggIgorImxvZ2luX2hvc3RdIGJhdWRfcmF0ZSwuLi4gbGluZSBbdGVybXR5cGVdXG4iCisib3JcdFstaGlMbXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCBsb2dpbl9ob3N0XSAiCisibGluZSBiYXVkX3JhdGUsLi4uIFt0ZXJtdHlwZV1cbiIKK21zZ3N0ciAiIgorIlVzbzogJXMgWy1oaUxtd10gWy1sIHByb2dyYW1hX2xvZ2luXSBbLXQgdGVtcG9fbGltaXRlXSBbLUkgc3RyaW5nX2luaWNdIFstSCAiCisiaG9zdF9sb2dpbl0gdGF4YV9iYXVkLC4uLiBsaW5oYSBbdGlwb190ZXJtXVxuIgorIm91XHRbLWhpTG13XSBbLWwgcHJvZ3JhbWFfbG9naW5dIFstdCB0ZW1wb19saW1pdGVdIFstSSBzdHJpbmdfaW5pY10gWy1IICIKKyJob3N0X2xvZ2luXSBsaW5oYSB0YXhhX2JhdWQsLi4uIFt0aXBvX3Rlcm1dXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImxvZ2luOiBwb3VjYSBtZW3zcmlhOyBvIGxvZ2luIHBvZGUgZmFsaGFyXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTIKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIHR0eWNsYXNzIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIG1hbGxvYyBwYXJhIHR0eWNsYXNzIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMworbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBtYWxsb2MgcGFyYSBncnBsaXN0IgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU1NAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZCBieSBkZWZhdWx0LlxuIgorbXNnc3RyICJMb2dpbiBlbSAlcyBkZSAlcyBuZWdhZG8gY29tbyBwYWRy428uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICJMb2dpbiBlbSAlcyBkZSAlcyBuZWdhZG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IHZvY+ogKHVzdeFyaW8gJWQpIG7jbyBleGlzdGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDAgbG9naW4tdXRpbHMvY2hzaC5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiB1c3XhcmlvIFwiJXNcIiBu428gZXhpc3RlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQ1IGxvZ2luLXV0aWxzL2Noc2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBlbnRyaWVzOyB1c2UgeXAlcyBpbnN0ZWFkLlxuIgorbXNnc3RyICIlczogc/MgcG9kZSBhbHRlcmFyIGVudHJhZGFzIGxvY2FpczsgdXNlIHlwJXMsIGVtIHZleiBkaXNzby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NiBsb2dpbi11dGlscy9jaHNoLmM6MTQyCittc2dpZCAiVW5rbm93biB1c2VyIGNvbnRleHQiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBmaW5nZXIgaW5mb3JtYXRpb24gZm9yICVzLlxuIgorbXNnc3RyICJBbHRlcmFuZG8gaW5mb3JtYef1ZXMgZGUgZmluZ2VyIGRlICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTg5IGxvZ2luLXV0aWxzL2Noc2guYzoxODggbG9naW4tdXRpbHMvbG9naW4uYzo1NzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBQQU0gZmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCittc2dzdHIgImxvZ2luOiBmYWxoYSBkZSBQQU07IGFib3J0YW5kbzogJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxMiBsb2dpbi11dGlscy9jaHNoLmM6MjExIGxvZ2luLXV0aWxzL2xvZ2luLmM6ODI3CisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo3OSBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQwIG1vdW50L2xvbW91bnQuYzo3NDIKKyM6IG1vdW50L2xvbW91bnQuYzo3NDUKK21zZ2lkICJQYXNzd29yZDogIgorbXNnc3RyICJTZW5oYToiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTUgbG9naW4tdXRpbHMvY2hzaC5jOjIxNAorbXNnaWQgIkluY29ycmVjdCBwYXNzd29yZC4iCittc2dzdHIgIlNlbmhhIGluY29ycmV0YS4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJJbmZvcm1h5/VlcyBkZSBmaW5nZXIgbuNvIGFsdGVyYWRhcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWyAtZiBmdWxsLW5hbWUgXSBbIC1vIG9mZmljZSBdICIKK21zZ3N0ciAiVXNvOiAlcyBbIC1mIG5vbWVfY29tcGxldG8gXSBbIC1vIGxvY2FsX2RlX3RyYWJhbGhvIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJbIC1wIG9mZmljZS1waG9uZSBdXG4iCisiXHRbIC1oIGhvbWUtcGhvbmUgXSAiCittc2dzdHIgIiIKKyJbIC1wIHRlbGVmb25lX2NvbWVyY2lhbCBdXG4iCisiXHRbIC1oIHRlbGVmb25lX3Jlc2lkZW5jaWFsIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc5Cittc2dpZCAiT2ZmaWNlIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozODAKK21zZ2lkICJIb21lIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkFib3J0YWRvLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDM0CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZWxkIGlzIHRvbyBsb25nLlxuIgorbXNnc3RyICJjYW1wbyBsb25nbyBkZW1haXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJyVjJyBu428g6SBwZXJtaXRpZG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiQ2FyYWN0ZXJlcyBkZSBjb250cm9sZSBu428gc+NvIHBlcm1pdGlkb3MuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIiIKKyJBcyBpbmZvcm1h5/VlcyBkZSBmaW5nZXIgKk7DTyogZm9yYW0gYWx0ZXJhZGFzLiBUZW50ZSBub3ZhbWVudGUgbWFpcyB0YXJkZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiQXMgaW5mb3JtYef1ZXMgZGUgZmluZ2VyIGZvcmFtIGFsdGVyYWRhcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgc2hlbGwgb2YgJXNcbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBu428gZXN04SBsaXN0YWRvIGVtIC9ldGMvc2hlbGxzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBSdW5uaW5nIFVJRCBkb2Vzbid0IG1hdGNoIFVJRCBvZiB1c2VyIHdlJ3JlIGFsdGVyaW5nLCBzaGVsbCBjaGFuZ2UgIgorImRlbmllZFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogU2V1IGludGVycHJldGFkb3IgZGUgY29tYW5kb3MgbuNvIGVzdOEgZW0gL2V0Yy9zaGVsbHM7IG11ZGFu52EgZGUgIgorImludGVycHJldGFkb3IgZGUgY29tYW5kb3MgbmVnYWRhLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiQWx0ZXJhbmRvIG8gaW50ZXJwcmV0YWRvciBkZSBjb21hbmRvcyBwYXJhIG8gdXN14XJpbyAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyMgorbXNnaWQgIk5ldyBzaGVsbCIKK21zZ3N0ciAiTm92byBpbnRlcnByZXRhZG9yIGRlIGNvbWFuZG9zIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJPIGludGVycHJldGFkb3IgZGUgY29tYW5kb3MgTsNPIGZvaSBhbHRlcmFkby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICIiCisiTyBpbnRlcnByZXRhZG9yIGRlIGNvbWFuZG9zICpOw08qIGZvaSBhbHRlcmFkby4gVGVudGUgbm92YW1lbnRlIG1haXMgdGFyZGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgY2hhbmdlZC5cbiIKK21zZ3N0ciAiSW50ZXJwcmV0YWRvciBkZSBjb21hbmRvcyBhbHRlcmFkby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjMwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbIC1zIHNoZWxsIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsgdXNlcm5hbWUgXVxuIgorbXNnc3RyICJbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM0OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2hlbGwgbXVzdCBiZSBhIGZ1bGwgcGF0aCBuYW1lLlxuIgorbXNnc3RyICIiCisiJXM6IG8gaW50ZXJwcmV0YWRvciBkZSBjb21hbmRvcyBwcmVjaXNhIHNlciB1bSBub21lIGRlIGNhbWluaG8gY29tcGxldG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBu428gZXhpc3RlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGV4ZWN1dGFibGUuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIgbuNvIOkgZXhlY3V04XZlbC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6ICclYycgbuNvIOkgcGVybWl0aWRvLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogY2FyYWN0ZXJlcyBkZSBjb250cm9sZSBu428gc+NvIHBlcm1pdGlkb3MuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzUgbG9naW4tdXRpbHMvY2hzaC5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiQXZpc286ICBcIiVzXCIgbuNvIGVzdOEgbGlzdGFkbyBlbSAvZXRjL3NoZWxscy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIgbuNvIGVzdOEgbGlzdGFkbyBlbSAvZXRjL3NoZWxsc1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IHVzZSBhIG9w5+NvIC1sIHBhcmEgdmVyIGEgbGlzdGFcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIlVzZSAlcyAtbCBwYXJhIHZlciBhIGxpc3RhLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGtub3duIHNoZWxscy5cbiIKK21zZ3N0ciAiTmVuaHVtIGludGVycHJldGFkb3IgZGUgY29tYW5kb3MgY29uaGVjaWRvLlxuIgorCisjOiBsb2dpbi11dGlscy9pc2xvY2FsLmM6ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuICVzIGZvciByZWFkaW5nLCBleGl0aW5nLiIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlcyBwYXJhIGxlaXR1cmEiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzoxNDgKK21zZ2lkICJ1c2FnZTogbGFzdCBbLSNdIFstZiBmaWxlXSBbLXQgdHR5XSBbLWggaG9zdG5hbWVdIFt1c2VyIC4uLl1cbiIKK21zZ3N0ciAiVXNvOiBsYXN0IFstI10gWy1mIGFycXVpdm9dIFstdCB0dHldIFstaCBub21lX2hvc3RdIFt1c3XhcmlvIC4uLl1cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIgIGFpbmRhIGNvbmVjdGFkbyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wIGluaWNpYSAlcyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjM4MCBsb2dpbi11dGlscy9sYXN0LmM6Mzk4IGxvZ2luLXV0aWxzL2xhc3QuYzo0NDkKK21zZ2lkICJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIKK21zZ3N0ciAibGFzdDogZmFsaGEgZGUgbWFsbG9jLlxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgImxhc3Q6IGdldGhvc3RuYW1lIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisiaW50ZXJyb21waWRvICUxMC4xMHMgJTUuNXMgXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTk3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIm1vdW50OiBu428gZm9pIHBvc3PtdmVsIGFicmlyICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIKK21zZ3N0ciAiJXMgbuNvIOkgdW0gZGlzcG9zaXRpdm8gZGUgYmxvY29zIGVzcGVjaWFsIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIzOAorbXNnaWQgIkZBVEFMOiBiYWQgdHR5IgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICJsb2dpbjogLWggc29tZW50ZSBwb2RlIHNlciBlc3BlY2lmaWNhZG8gcGVsbyBzdXBlcnVzdeFyaW8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgIlVzbzogbG9naW4gWy1mcF0gW25vbWVfdXN14XJpb11cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgaW5pdGlhbGl6ZSBQQU06ICVzIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGluaWNpYWxpemFyIG8gUEFNOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1OTUKK21zZ2lkICJsb2dpbjogIgorbXNnc3RyICJsb2dpbjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJMT0dJTiBGQUxIT1U6ICVkIEEgUEFSVElSIERFICVzIFBBUkEgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTG9naW4gaW5jb3JyZWN0XG4iCisiXG4iCittc2dzdHIgIiIKKyJMb2dpbiBpbmNvcnJldG9cbiIKKyJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIiIKKyJO2k1FUk8gRVhDRVNTSVZPIERFIFRFTlRBVElWQVMgREUgTE9HSU4gKCVkKSBBIFBBUlRJUiBERSAlcyBQQVJBICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJTRVNTw08gREUgTE9HSU4gRkFMSE9VOiBBIFBBUlRJUiBERSAlcyBQQVJBICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICIiCisiXG4iCisiTG9naW4gaW5jb3JyZXRvXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkwIGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk3IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5VTEwgdXNlciBuYW1lIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB1c2VyIG5hbWUgXCIlc1wiIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3MTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiVzOiBtZW3zcmlhIGluc3VmaWNpZW50ZSFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICJOb21lIGRlIHVzdeFyaW8gaW524WxpZG8iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvZ2luIHJlZnVzZWQgb24gdGhpcyB0ZXJtaW5hbC5cbiIKK21zZ3N0ciAiJXM6IGxvZ2luIHJlY3VzYWRvIG5lc3RlIHRlcm1pbmFsLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIEZST00gJXMgT04gVFRZICVzIgorbXNnc3RyICIlczogTE9HSU4gUkVDVVNBRE8gQSBQQVJUSVIgREUgJXMgTk8gVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiJXM6IExPR0lOIFJFQ1VTQURPIE5PIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIkxvZ2luIGluY29ycmV0b1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRElBTFVQIEFUICVzIEJZICVzIgorbXNnc3RyICJESVNDQUdFTSBFTSAlcyBQT1IgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5OQorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCittc2dzdHIgIkxPR0lOIENPTU8gUk9PVCBFTSAlcyBBIFBBUlRJUiBERSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMiCittc2dzdHIgIkxPR0lOIENPTU8gUk9PVCBFTSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIEZST00gJXMiCittc2dzdHIgIkxPR0lOIEVNICVzIFBPUiAlcyBBIFBBUlRJUiBERSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIgorbXNnc3RyICJMT0dJTiBFTSAlcyBQT1IgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbmV3IG1haWwuXG4iCittc2dzdHIgIlZvY+ogdGVtIG1lbnNhZ2VucyAlcyBuYSBjYWl4YSBkZSBjb3JyZWlvLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG1haWwuXG4iCittc2dzdHIgIlZvY+ogdGVtIG1lbnNhZ2VucyAlcyBuYSBjYWl4YSBkZSBjb3JyZWlvLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiCittc2dzdHIgImxvZ2luOiBmYWxoYSBlbSBmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRJT0NTQ1RUWSBmYWlsZWQ6ICVtIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgZmFsaG91IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICJPIGRpcmV083JpbyAlcyBu428gZXhpc3RlIVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9nZ2luZyBpbiB3aXRoIGhvbWUgPSBcIi9cIi5cbiIKK21zZ3N0ciAiRmF6ZW5kbyBsb2dpbiBjb20gaG9tZSA9IFwiL1wiLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICJsb2dpbjogbuNvIGjhIG1lbfNyaWEgcGFyYSBzY3JpcHQgZGUgaW50ZXJwcmV0YWRvciBkZSBjb21hbmRvcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iCittc2dzdHIgIiIKKyJsb2dpbjogbuNvIGZvaSBwb3Nz7XZlbCBleGVjdXRhciBvIHNjcmlwdCBkbyBpbnRlcnByZXRhZG9yIGRlIGNvbWFuZG9zOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBu428gZXhpc3RlIGludGVycHJldGFkb3IgZGUgY29tYW5kb3M6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyIlcyB1c3XhcmlvOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lIG11Y2ggdG9vIGxvbmcuXG4iCittc2dzdHIgIm5vbWUgZGUgbG9naW4gbG9uZ28gZGVtYWlzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICJOT01FIGxvbmdvIGRlbWFpcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgIm5vbWVzIGRlIGxvZ2luIG7jbyBwb2RlbSBpbmljaWFyIGNvbSAnLScuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBiYXJlIGxpbmVmZWVkcy5cbiIKK21zZ3N0ciAiTvptZXJvIGV4Y2Vzc2l2byBkZSBzYWx0b3MgZGUgbGluaGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIlNhbHRvcyBkZSBsaW5oYSBFWENFU1NJVk9TIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiVGVtcG8gZGUgbG9naW4gZXNnb3RhZG8gYXDzcyAlZCBzZWd1bmRvc1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBsb2dpbjogJS4qcyAiCittc2dzdHIgItpsdGltbyBsb2dpbjogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAiYSBwYXJ0aXIgZGUgJS4qc1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib24gJS4qc1xuIgorbXNnc3RyICJlbTogJS4qc1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gRkFJTFVSRSBGUk9NICVzLCAlcyIKK21zZ3N0ciAiRkFMSEEgREUgTE9HSU4gQSBQQVJUSVIgREUgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gRkFJTFVSRSBPTiAlcywgJXMiCittc2dzdHIgIkZBTEhBIERFIExPR0lOIEVNICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIEZST00gJXMsICVzIgorbXNnc3RyICIlZCBGQUxIQVMgREUgTE9HSU4gQSBQQVJUSVIgREUgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICIlZCBGQUxIQVMgREUgTE9HSU4gRU0gJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICLpIHlcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5cbiIKK21zZ3N0ciAi6SBuXG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IG1lc2cgW3kgfCBuXVxuIgorbXNnc3RyICJVc286IG1lc2cgW3kgfCBuXVxuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo5OQorbXNnaWQgIm5ld2dycDogV2hvIGFyZSB5b3U/IgorbXNnc3RyICJuZXdncnA6IFF1ZW0g6SB2b2PqPyIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTA3IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyMQorbXNnaWQgIm5ld2dycDogc2V0Z2lkIgorbXNnc3RyICJuZXdncnA6IHNldGdpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIm5ld2dycDogZ3J1cG8gaW5leGlzdGVudGUuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMjUKK21zZ2lkICJuZXdncnA6IFBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJuZXdncnA6IHBlcm1pc3PjbyBuZWdhZGEiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIkludGVycHJldGFkb3IgZGUgY29tYW5kb3MgaW5leGlzdGVudGUiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW5zXVxuIgorbXNnc3RyICJVc286IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTM0Cittc2dpZCAiU2h1dGRvd24gcHJvY2VzcyBhYm9ydGVkIgorbXNnc3RyICJQcm9jZXNzbyBkZSBkZXNsaWdhbWVudG8gYWJvcnRhZG8iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPbmx5IHJvb3QgY2FuIHNodXQgYSBzeXN0ZW0gZG93bi5cbiIKK21zZ3N0ciAiJXM6IHNvbWVudGUgbyByb290IHBvZGUgZGVzbGlnYXIgdW0gc2lzdGVtYS5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIklzdG8gcHJlY2lzYSBzZXIgYW1hbmjjLiBWb2PqIHBvZGUgZXNwZXJhcj9cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMTAKK21zZ2lkICJmb3IgbWFpbnRlbmFuY2U7IGJvdW5jZSwgYm91bmNlIgorbXNnc3RyICJwYXJhIG1hbnV0ZW7n4287IGJvdW5jZSwgYm91bmNlIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMzOQorbXNnaWQgIlRoZSBzeXN0ZW0gaXMgYmVpbmcgc2h1dCBkb3duIHdpdGhpbiA1IG1pbnV0ZXMiCittc2dzdHIgIk8gc2lzdGVtYSBzZXLhIGRlc2xpZ2FkbyBkZW50cm8gZGUgNSBtaW51dG9zIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM0MworbXNnaWQgIkxvZ2luIGlzIHRoZXJlZm9yZSBwcm9oaWJpdGVkLiIKK21zZ3N0ciAiQXNzaW0sIGxvZ2lucyBlc3TjbyBwcm9pYmlkb3MuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVib290ZWQgYnkgJXM6ICVzIgorbXNnc3RyICIlcyBwb3IgJXM6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiJXMgcG9yICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzIKK21zZ2lkICIiCisiXG4iCisiV2h5IGFtIEkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVib290PyIKK21zZ3N0ciAiIgorIlxuIgorIlBvciBxdWUgZXUgYWluZGEgZXN0b3Ugdml2byBhcPNzIGEgcmVpbmljaWFsaXph5+NvPyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisiQWdvcmEgdm9j6iBwb2RlIGRlc2xpZ2FyIGEgZW5lcmdpYS4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBrZXJuZWwgcG93ZXItb2ZmIGZhY2lsaXR5Li4uXG4iCittc2dzdHIgIkNoYW1hbmRvIHJlY3Vyc28gZGUgZGVzbGlnYW1lbnRvIGRvIGtlcm5lbC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIkVycm8gYW8gZGVzbGlnYXJcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCittc2dzdHIgIkV4ZWN1dGFuZG8gbyBwcm9ncmFtYSBcIiVzXCIgLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGV4ZWN1dGluZ1x0JXNcbiIKK21zZ3N0ciAiRXJybyBhbyBleGVjdXRhclx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBob3VycyAlZCBtaW51dGVzIgorbXNnc3RyICJPIHNpc3RlbWEgc2Vy4SBkZXNsaWdhZG8gZW0gJWQgaG9yYXMgZSAlZCBtaW51dG8ocykiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICJPIHNpc3RlbWEgc2Vy4SBkZXNsaWdhZG8gZW0gMSBob3JhIGUgJWQgbWludXRvKHMpIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBtaW51dGVzXG4iCittc2dzdHIgIk8gc2lzdGVtYSBzZXLhIGRlc2xpZ2FkbyBlbSAlZCBtaW51dG9zXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgbWludXRlXG4iCittc2dzdHIgIk8gc2lzdGVtYSBzZXLhIGRlc2xpZ2FkbyBlbSAxIG1pbnV0b1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAiTyBzaXN0ZW1hIHNlcuEgZGVzbGlnYWRvIElNRURJQVRBTUVOVEUhXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Li4uICVzIC4uLlxuIgorbXNnc3RyICJcdC4uLiAlcyAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzAKK21zZ2lkICJDYW5ub3QgZm9yayBmb3Igc3dhcG9mZi4gU2hydWchIgorbXNnc3RyICJO428g6SBwb3Nz7XZlbCBmYXplciBmb3JrIHBhcmEgc3dhcG9mZi4gRHJvZ2EhIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICJO428g6SBwb3Nz7XZlbCBleGVjIHN3YXBvZmYuIEVzcGVyYW5kbyBxdWUgdW1vdW50IHJlc29sdmEgbyBwcm9ibGVtYS4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiTuNvIOkgcG9zc+12ZWwgZmF6ZXIgZm9yayBwYXJhIHVtb3VudDsgdGVudGFuZG8gbWFudWFsbWVudGUuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZXhlYyAlcywgdHJ5aW5nIHVtb3VudC5cbiIKK21zZ3N0ciAiTuNvIOkgcG9zc+12ZWwgZXhlYyAlczsgdGVudGFuZG8gdW1vdW50LlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgIk7jbyDpIHBvc3PtdmVsIGV4ZWMgdW1vdW50OyBkZXNpc3RpbmRvIGRlIHVtb3VudC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjE1Cittc2dpZCAiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIgorbXNnc3RyICJEZXNtb250YW5kbyBxdWFpc3F1ZXIgc2lzdGVtYXMgZGUgYXJxdWl2b3MgcmVtYW5lc2NlbnRlcy4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAic2h1dGRvd246IENvdWxkbid0IHVtb3VudCAlczogJXNcbiIKK21zZ3N0ciAic2h1dGRvd246IG7jbyBmb2kgcG9zc+12ZWwgZGVzbW9udGFyICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICJJbmljaWFsaXphbmRvIGVtIG1vZG8gbW9ub3VzdeFyaW8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJleGVjIGRlIGludGVycHJldGFkb3IgZGUgY29tYW5kb3MgbW9ub3VzdeFyaW8gZmFsaG91XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICJmb3JrIGRlIGludGVycHJldGFkb3IgZGUgY29tYW5kb3MgbW9ub3VzdeFyaW8gZmFsaG91XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMDgKK21zZ2lkICJlcnJvciBvcGVuaW5nIGZpZm9cbiIKK21zZ3N0ciAiZXJybyBhYnJpbmRvIGZpZm9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIxMgorbXNnaWQgImVycm9yIHNldHRpbmcgY2xvc2Utb24tZXhlYyBvbiAvZGV2L2luaXRjdGwiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI1OQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImVycm8gZXhlY3V0YW5kbyBmbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAiZXJybyBmYXplbmRvIGZvcmsgZmluYWxwcm9nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDUKK21zZ2lkICIiCisiXG4iCisiV3JvbmcgcGFzc3dvcmQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTZW5oYSBpbmNvcnJldGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MTgKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJsc3RhdCBkYSByb3RhIGZhbGhvdVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2Cittc2dpZCAic3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJlc3RhZG8gZGEgcm90YSBmYWxob3VcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQzNAorbXNnaWQgIm9wZW4gb2YgZGlyZWN0b3J5IGZhaWxlZFxuIgorbXNnc3RyICJhYmVydHVyYSBkbyBkaXJldPNyaW8gZmFsaG91XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcGF3bmluZzogXCIlc1wiIHRvbyBmYXN0OiBxdWVuY2hpbmcgZW50cnlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAibyBmb3JrIGZhbGhvdVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTQwIHRleHQtdXRpbHMvbW9yZS5jOjE2NjMKK21zZ2lkICJleGVjIGZhaWxlZFxuIgorbXNnc3RyICJleGVjIGZhbGhvdVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0Cittc2dpZCAiY2Fubm90IG9wZW4gaW5pdHRhYlxuIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGFicmlyIGluaXR0YWJcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgInNlbSBURVJNIG91IG7jbyDpIHBvc3PtdmVsIHN0YXQgdHR5XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5MzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJlcnJvIGFvIGdyYXZhciAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAiZXJybyBhbyBncmF2YXIgJXM6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJlcnJvIGV4ZWN1dGFuZG8gcHJvZ3JhbWFcbiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6NzUKK21zZ2lkICJ0b28gbWFueSBpb3YncyAoY2hhbmdlIGNvZGUgaW4gd2FsbC90dHltc2cuYykiCittc2dzdHIgIm76bWVybyBleGNlc3Npdm8gZGUgaW92cyAoYWx0ZXJlIG8gY/NkaWdvIGRlIHdhbGwvdHR5bXNnLmMpIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJleGNlc3NpdmVseSBsb25nIGxpbmUgYXJnIgorbXNnc3RyICJsaW5oYSBkZSBhcmd1bWVudG9zIGxvbmdhIGRlbWFpcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JrIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIHJlYWxpemFyIGZvcmsiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJmb3JrOiAlcyIKK21zZ3N0ciAiZm9yazogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQkFEIEVSUk9SIgorbXNnc3RyICIlczogRVJSTyBHUkFWRSIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBvIGFycXVpdm8gJXMgZXN04SBvY3VwYWRvLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIGdyb3VwIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiJXM6IG8gYXJxdWl2byAlcyBlc3ThIG9jdXBhZG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSAlcyBmaWxlIGlzIGJ1c3kgKCVzIHByZXNlbnQpXG4iCittc2dzdHIgIiVzOiBvIGFycXVpdm8gJXMgZXN04SBvY3VwYWRvICglcyBwcmVzZW50ZSkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBu428gZm9pIHBvc3PtdmVsIHZpbmN1bGFyICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIG9idGVyIG8gdGVtcG8tbGltaXRlIHBhcmEgJXM6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBzZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgb2J0ZXIgbyB0ZW1wby1saW1pdGUgcGFyYSAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiIgorIiVzOiBu428gZm9pIHBvc3PtdmVsIGRlc2Jsb3F1ZWFyICVzOiAlcyAoYXMgYWx0ZXJh5/VlcyBhaW5kYSBlc3TjbyBlbSAlcylcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGZvcmtcbiIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgcmVhbGl6YXIgZm9ya1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiJXM6ICVzIGluYWx0ZXJhZG9cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI5NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gY2hhbmdlcyBtYWRlXG4iCittc2dzdHIgIiVzOiBuZW5odW1hIGFsdGVyYefjbyByZWFsaXphZGFcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIlZvY+ogZXN04SB1c2FuZG8gZ3J1cG9zIHNvbWJyYSAoc2hhZG93KSBuZXN0ZSBzaXN0ZW1hXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJWb2PqIGVzdOEgdXNhbmRvIHNlbmhhcyBzb21icmEgKHNoYWRvdykgbmVzdGUgc2lzdGVtYVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldvdWxkIHlvdSBsaWtlIHRvIGVkaXQgJXMgbm93IFt5L25dPyAiCittc2dzdHIgIlZvY+ogZ29zdGFyaWEgZGUgZWRpdGFyICVzIGFnb3JhIFtzL25dIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbZmlsZV1cbiIKK21zZ3N0ciAiVXNvOiAlcyBbYXJxdWl2b11cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgYXJxdWl2byB0ZW1wb3LhcmlvLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyb2FkY2FzdCBNZXNzYWdlIGZyb20gJXNAJXMiCittc2dzdHIgIk1lbnNhZ2VtIGRlIGJyb2FkY2FzdCBkZSAlc0AlcyIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2lsbCBub3QgcmVhZCAlcyAtIHVzZSBzdGRpbi5cbiIKK21zZ3N0ciAiJXM6IG7jbyBzZXLhIGxpZG8gJXMgLSB1c2UgYSBlbnRyYWRhIHBhZHLjby5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgbGVyICVzLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCBzdGF0IGFycXVpdm8gdGVtcG9y4XJpby5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgbGVyIGFycXVpdm8gdGVtcG9y4XJpby5cbiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjQgbWlzYy11dGlscy9jYWwuYzozNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZGF5IHZhbHVlOiB1c2UgMS0lZCIKK21zZ3N0ciAidmFsb3IgZGUgYW5vIGluduFsaWRvOiB1c2UgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICJ2YWxvciBkZSBt6nMgaW524WxpZG86IHVzZSAxLTEyIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM3MgorbXNnaWQgImlsbGVnYWwgeWVhciB2YWx1ZTogdXNlIDEtOTk5OSIKK21zZ3N0ciAidmFsb3IgZGUgYW5vIGluduFsaWRvOiB1c2UgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjg1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgIlVzbzogY2FsIFstbWp5Vl0gW1tt6nNdIGFub11cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIKK21zZ3N0ciAiVXNvOiAlcyBbK2Zvcm1hdG9dIFtkaWEgbepzIGFub11cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIkRpYSBkZSBT428gVGliIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzo1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlcyIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlc1xuIgorbXNnc3RyICIlczogc2luYWwgZGVzY29uaGVjaWRvICVzXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBwcm9jZXNzIFwiJXNcIlxuIgorbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCBsb2NhbGl6YXIgbyBwcm9jZXNzbyBcIiVzXCJcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlczsgdmFsaWQgc2lnbmFsczpcbiIKK21zZ3N0ciAiJXM6IHNpbmFsIGRlc2NvbmhlY2lkbyAlczsgc2luYWlzIHbhbGlkb3M6XG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtcyBzaWduYWwgfCAtcCBdIFsgLWEgXSBwaWQgLi4uXG4iCittc2dzdHIgIlVzbzogJXMgWyAtcyBzaW5hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHNpbmFsIF1cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiBvcGVubG9nOiBwYXRobmFtZSB0b28gbG9uZ1xuIgorbXNnc3RyICJub21lIGRlIGxvZ2luIGxvbmdvIGRlbWFpcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic29ja2V0OiAlcy5cbiIKK21zZ3N0ciAiVGFtQmxvY286ICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiAlczogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogJXM6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gZmFjaWxpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogbm9tZSBkZSByZWN1cnNvIGRlc2NvbmhlY2lkbzogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBwcmlvcml0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBub21lIGRlIHByaW9yaWRhZGUgZGVzY29uaGVjaWRvOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisiVXNvOiBsb2dnZXIgWy1pc10gWy1mIGFycXVpdm9dIFstcCBwcmlvcmlkYWRlXSBbLXQgZXRpcXVldGFdIFstdSBzb3F1ZXRlXSAiCisiWyBtZW5zYWdlbSAuLi4gXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgIlVzbzogbG9vayBbLWRmYV0gWy10IGNoYXJdIHN0cmluZyBbYXJxdWl2b11cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGFicmlyICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwOSBtaXNjLXV0aWxzL21jb29raWUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIKK21zZ3N0ciAiT2J0aWRvcyAlZCBieXRlcyBkZSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTQzIG1pc2MtdXRpbHMvbmFtZWkuYzoxOTggbWlzYy11dGlscy9uYW1laS5jOjIyNQorIzogbWlzYy11dGlscy9uYW1laS5jOjI0NSBtaXNjLXV0aWxzL25hbWVpLmM6MjUyIG1pc2MtdXRpbHMvbmFtZWkuYzoyOTQKKyMsIGZ1enp5Cittc2dpZCAib3V0IG9mIG1lbW9yeT8iCittc2dzdHIgIm1lbfNyaWEgaW5zdWZpY2llbnRlP1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCBzeW1saW5rOiAlcyIKK21zZ3N0ciAiaW9jdGwoKSBu428gY29uc2VndWl1IGxlciBhIGhvcmEgZGUgL2Rldi90dHkxIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjMxIG1pc2MtdXRpbHMvbmFtZWkuYzoyNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgdmVyaWZpY2FyIHN0YXR1cyBkZSBkaXNwb3NpdGl2byAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gcGF0aG5hbWUgW3BhdGhuYW1lIC4uLl1cbiIKK21zZ3N0ciAiVXNvOiBuYW1laSBbLW14XSBub21lX2NhbWluaG8gW25vbWVfY2FtaW5obyAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgcGFydGnn9WVzOlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAteCwgLS1tb3VudHBvaW50cyAgIHNob3cgbW91bnQgcG9pbnQgZGlyZWN0b3JpZXMgd2l0aCBhICdEJ1xuIgorIiAtbSwgLS1tb2RlcyAgICAgICAgIHNob3cgdGhlIG1vZGUgYml0cyBvZiBlYWNoIGZpbGVcbiIKKyIgLW8sIC0tb3duZXJzICAgICAgICBzaG93IG93bmVyIGFuZCBncm91cCBuYW1lIG9mIGVhY2ggZmlsZVxuIgorIiAtbCwgLS1sb25nICAgICAgICAgIHVzZSBhIGxvbmcgbGlzdGluZyBmb3JtYXQgKC1tIC1vIC12KSBcbiIKKyIgLW4sIC0tbm9zeW1saW5rcyAgICBkb24ndCBmb2xsb3cgc3ltbGlua3NcbiIKKyIgLXYsIC0tdmVydGljYWwgICAgICB2ZXJ0aWNhbCBhbGlnbiBvZiBtb2RlcyBhbmQgb3duZXJzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIG5hbWVpKDEpLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzdGF0OiAlcyIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBzdGF0ICVzIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBleGNlZWRlZCBsaW1pdCBvZiBzeW1saW5rcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiVzOiBtZW3zcmlhIGluc3VmaWNpZW50ZSFcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCByZW5vbWVhciAlcyBwYXJhICVzLiBmYWxoYTogJXNcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYWxsOiAlcyBmcm9tIHRvIGZpbGVzLi4uXG4iCittc2dzdHIgImNoYW1hZGE6ICVzIGRlIHBhcmEgYXJxdWl2b3MuLi5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBgJXMnIGlzIGEgbGluay5cbiIKKyJVc2UgYCVzIFtvcHRpb25zXSAlcycgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC5cbiIKKyJTY3JpcHQgbm90IHN0YXJ0ZWQuXG4iCittc2dzdHIgIiIKKyJBdmlzbzogYCVzJyDpIHVtIGxpbmsgc2ltYvNsaWNvXG4iCisiVXNlIGAlcyBbb3Dn9WVzXSAlcycgc2Ugdm9j6iByZWFsbWVudGUgcXVlciB1c2FyIGlzdG8uXG4iCisiU2NyaXB0IG7jbyBpbmljaWFkby5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAiVXNvOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gW2FycXVpdm9dXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNjcmlwdCBpbmljaWFkbywgbyBhcnF1aXZvIOkgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvciAlZDogJXNcbiIKK21zZ3N0ciAiZXJybyBkZSBncmF2YefjbyBlbSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiU2NyaXB0IGluaWNpYWRvIGVtICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICJlcnJvIGRlIGdyYXZh5+NvIGVtICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgbG9jYWxpemFyIFwiX3N0ZXh0XCIgZW0gJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNjcmlwdCBkb25lIG9uICVzIgorbXNnc3RyICIiCisiXG4iCisiU2NyaXB0IGNvbmNsde1kbyBlbSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IGRvbmUsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiU2NyaXB0IGNvbmNsde1kbywgbyBhcnF1aXZvIOkgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbnB0eSBmYWlsZWRcbiIKK21zZ3N0ciAib3BlbnB0eSBmYWxob3VcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIHB0eSdzXG4iCittc2dzdHIgInB0eXMgZXNnb3RhZG9zXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJleHBlY3RlZCBhIG51bWJlciwgYnV0IGdvdCAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTYgbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXZpc29yICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMDQKKyMsIGZ1enp5Cittc2dpZCAid3JpdGUgdG8gc3Rkb3V0IGZhaWxlZCIKK21zZ3N0ciAiQSBhYmVydHVyYSBkZSAlcyBmYWxob3UiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBu428gY29uc2VndWl1IGxlciBhIGhvcmEgZGUgL2Rldi90dHkxIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgbyBhcnF1aXZvICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgbyBhcnF1aXZvICclcyciCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBu428gY29uc2VndWl1IGxlciBhIGhvcmEgZGUgL2Rldi90dHkxIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICJ0aW1pbmdzIGZpbGUgJXM6ICVsdTogdW5leHBlY3RlZCBmb3JtYXQiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBBcmd1bWVudCBlcnJvciwgdXNhZ2VcbiIKK21zZ3N0ciAiJXM6IGVycm8gZGUgYXJndW1lbnRvOyB1c29cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKK21zZ3N0ciAiICBbIC10ZXJtIG5vbWVfdGVybWluYWwgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiAgWyAtcmVzZXQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiICBbIC1pbml0aWFsaXplIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIgIFsgLWRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc1IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NworIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiICBbIC1zdG9yZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorbXNnc3RyICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCittc2dzdHIgIiAgWyAtYmxhbmsgWzAtNjBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZHVtcCAgIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtZHVtcCAgIFsxLU5VTV9DT05TT0xFU10gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1hcHBlbmQgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1hcHBlbmQgWzEtTlVNX0NPTlNPTEVTXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiICBbIC1maWxlIGFycXVpdm9fZGVzY2FyZ2EgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2Vyc2F2ZSBbb258dnN5bmN8aHN5bmN8cG93ZXJkb3dufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXBvd2Vyc2F2ZSBbb258dnN5bmN8aHN5bmN8cG93ZXJkb3dufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcmRvd24gWzAtNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcmRvd24gWzAtNjBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxlbmd0aCBbMC0yMDAwXSBdXG4iCittc2dzdHIgIiAgWyAtYmxlbmd0aCBbMC0yMDAwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJmcmVxIGZyZXFudW1iZXIgXVxuIgorbXNnc3RyICIgIFsgLWJmcmVxIG51bV9mcmVxIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIGJsYW5rXG4iCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgcmVhbGl6YXIgZm9yayIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIHVuYmxhbmtcbiIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCByZWFsaXphciBmb3JrIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IGJsYW5rIHN0YXR1c1xuIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGFicmlyICVzICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90ICh1bilzZXQgcG93ZXJzYXZlIG1vZGVcbiIKK21zZ3N0ciAibuNvIOkgcG9zc+12ZWwgYWx0ZXJhciBvIGVzdGFkbyBkbyBtb2RvIGRlIGNvbnNlcnZh5+NvIGRlIGVuZXJnaWFcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEyMiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTMwCisjLCBjLWZvcm1hdAorbXNnaWQgImtsb2djdGwgZXJyb3I6ICVzXG4iCittc2dzdHIgImVycm8gZGUga2xvZ2N0bDogJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciB3cml0aW5nIHNjcmVlbmR1bXBcbiIKK21zZ3N0ciAiRXJybyBhbyBncmF2YXIgZGVzY2FyZ2EgZGUgdGVsYVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJFRFUk0gaXMgbm90IGRlZmluZWQuXG4iCittc2dzdHIgIiVzOiAkVEVSTSBpbmRlZmluaWRvLlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWRdIFstcCBwaWRmaWxlXSBbLXMgc29ja2V0cGF0aF0gWy1UIHRpbWVvdXRdXG4iCittc2dzdHIgIlVzbzogbGFzdCBbLSNdIFstZiBhcnF1aXZvXSBbLXQgdHR5XSBbLWggbm9tZV9ob3N0XSBbdXN14XJpbyAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgWy1yfHRdIFstbiBudW1dIFstcyBzb2NrZXRwYXRoXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHNpbmFsIF1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorIywgZnV6enkKK21zZ2lkICJiYWQgYXJndW1lbnRzIgorbXNnc3RyICJjb2w6IGFyZ3VtZW50byBpbnbhbGlkbyBwYXJhIC1sICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTU5CisjLCBmdXp6eQorbXNnaWQgInNvY2tldCIKK21zZ3N0ciAibmZzIHNvY2tldCIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE3MAorIywgZnV6enkKK21zZ2lkICJjb25uZWN0IgorbXNnc3RyICJuZnMgY29ubmVjdCIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE4OQorIywgZnV6enkKK21zZ2lkICJ3cml0ZSIKK21zZ3N0ciAiR3JhdmFyIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTk3CisjLCBmdXp6eQorbXNnaWQgInJlYWQgY291bnQiCittc2dzdHIgInJlYWQgJWNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjIwMworbXNnaWQgImJhZCByZXNwb25zZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1dWlkZCBkYWVtb24gYWxyZWFkeSBydW5uaW5nIGF0IHBpZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtIHNvY2tldDogJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgYmluZCB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbGlzdGVuIG9uIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGFicmlyICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciByZWFkaW5nIGZyb20gY2xpZW50LCBsZW4gPSAlZFxuIgorbXNnc3RyICJFcnJvIGFvIGxlciAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZXJhdGlvbiAlZCwgaW5jb21pbmcgbnVtID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEICVzIGFuZCAlZCBmb2xsb3dpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCAlZCBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBvcGVyYXRpb24gJWRcbiIKK21zZ3N0ciAiaWQgaW524WxpZG86ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiTvptZXJvIGluduFsaWRvOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNhbGxpbmcgdXVpZGQgZGFlbW9uICglcyk6ICVzXG4iCittc2dzdHIgImVycm8gYW8gYWx0ZXJhciBvIG1vZG8gZGUgJXM6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgYW5kIHN1YnNlcXVlbnQgJWQgVVVJRCdzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNgorIywgYy1mb3JtYXQKK21zZ2lkICJMaXN0IG9mIFVVSUQnczpcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZXhwZWN0ZWQgcmVwbHkgbGVuZ3RoIGZyb20gc2VydmVyICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXJdIFstdF1cbiIKK21zZ3N0ciAiVXNvOiAlcyBbb3Dn9WVzXSBkaXNwb3NpdGl2byAuLi5cbiIKKworIzogbWlzYy11dGlscy93aGVyZWlzLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBkaXIgLi4uIC1mIF0gbmFtZS4uLlxuIgorbXNnc3RyICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5vbWUuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKKyMsIGZ1enp5Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jIGZhbGhvdSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxNTAKKyMsIGZ1enp5Cittc2dpZCAic3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiQSBhYmVydHVyYSBkZSAlcyBmYWxob3UiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICJFcnJvIG5vIGZlY2hhbWVudG8gZGUgJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJPIGRpc2NvICVzIG7jbyBjb2506W0gdW1hIHRhYmVsYSBkZSBwYXJ0aef1ZXMgduFsaWRhXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gc2VlayB0byBvZmZzZXQgMHglangiCittc2dzdHIgIiVzOiBu428gZm9pIHBvc3PtdmVsIGFicmlyICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IGZhbGhvdVxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXpkIGJ5dGVzIFsiCittc2dzdHIgImJ5dGVzIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJdIGVyYXNlZCBhdCBvZmZzZXQgMHglanggKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjkyIG1vdW50L3N3YXBvbi5jOjE5OCBtb3VudC9zd2Fwb24uYzoyNjYKKyM6IG1vdW50L3N3YXBvbi5jOjQxMSBtb3VudC9zd2Fwb24uYzo1NzAgbW91bnQvc3dhcG9uLmM6NzcyCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTU5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogb3BlbiBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgZmFsaG91XG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiVmFsb3IgZGVmaW5pZG8gaW524WxpZG86ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIlVzbzogJXMgW29w5/Vlc10gZGlzcG9zaXRpdm8gLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWEsIC0tYWxsICAgICAgICAgICB3aXBlIGFsbCBtYWdpYyBzdHJpbmdzIChCRSBDQVJFRlVMISlcbiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0tbm8tYWN0ICAgICAgICBldmVyeXRoaW5nIHRvIGJlIGRvbmUgZXhjZXB0IGZvciB0aGUgd3JpdGUoKSBjYWxsXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IHRvIGVyYXNlLCBpbiBieXRlc1xuIgorIiAtcCwgLS1wYXJzYWJsZSAgICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB3aXBlZnMoOCkuXG4iCittc2dzdHIgIkFzIGluZm9ybWHn9WVzIGRlIGZpbmdlciBmb3JhbSBhbHRlcmFkYXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6Mzg3Cittc2dpZCAiLS1vZmZzZXQgYW5kIC0tYWxsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogY2FuJ3QgZmluZCB5b3VyIHR0eSdzIG5hbWVcbiIKK21zZ3N0ciAid3JpdGU6IG7jbyBmb2kgcG9zc+12ZWwgbG9jYWxpemFyIG8gbm9tZSBkbyB0dHlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogc3VhIHBlcm1pc3PjbyBkZSBncmF2YefjbyBlc3ThIGRlc2F0aXZhZGEuXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIG5vdCBsb2dnZWQgaW4gb24gJXMuXG4iCittc2dzdHIgIndyaXRlOiAlcyBu428gZXN04SBjb25lY3RhZG8gZW0gJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZCBvbiAlc1xuIgorbXNnc3RyICJ3cml0ZTogJXMgLSBtZW5zYWdlbnMgZGVzYXRpdmFkYXMgZW0gJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICJVc286IHdyaXRlIHVzdeFyaW8gW3R0eV1cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICJ3cml0ZTogJXMgbuNvIGVzdOEgY29uZWN0YWRvLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIC0gbWVuc2FnZW5zIGRlc2F0aXZhZGFzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIGxvZ2dlZCBpbiBtb3JlIHRoYW4gb25jZTsgd3JpdGluZyB0byAlc1xuIgorbXNnc3RyICJ3cml0ZTogJXMgZXN04SBjb25lY3RhZG8gbWFpcyBkZSB1bWEgdmV6OyBlc2NyZXZlbmRvIHBhcmEgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIk1lbnNhZ2VtIGRlICVzQCVzIChjb21vICVzKSBlbSAlcyBlbSAlcyAuLi4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiTWVuc2FnZW0gZGUgJXNAJXMgZW0gJXMgZW0gJXMgLi4uIgorCisjOiBtb3VudC9mc3RhYi5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBlcnJvciByZWFkaW5nICVzOiAlcyIKK21zZ3N0ciAiQXZpc286IGVycm8gYW8gbGVyICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzIgbW91bnQvZnN0YWIuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgIkF2aXNvOiBu428gZm9pIHBvc3PtdmVsIGFicmlyICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNvdWxkIG5vdCBvcGVuICVzIC0gdXNpbmcgJXMgaW5zdGVhZFxuIgorbXNnc3RyICJtb3VudDogbuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlcyAtIHVzYW5kbyAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisibuNvIGZvaSBwb3Nz7XZlbCBjcmlhciBvIGFycXVpdm8gZGUgYmxvcXVlaW8gJXM6ICVzICh1c2UgYSBvcOfjbyAtbiBwYXJhICIKKyJhbnVsYXIpIgorCisjOiBtb3VudC9mc3RhYi5jOjYxNgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBsaW5rIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorIm7jbyBmb2kgcG9zc+12ZWwgdmluY3VsYXIgbyBhcnF1aXZvIGRlIGJsb3F1ZWlvICVzOiAlcyAodXNlIGEgb3Dn428gLW4gcGFyYSAiCisiYW51bGFyKSIKKworIzogbW91bnQvZnN0YWIuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyJu428gZm9pIHBvc3PtdmVsIGFicmlyIG8gYXJxdWl2byBkZSBibG9xdWVpbyAlczogJXMgKHVzZSBhIG9w5+NvIC1uIHBhcmEgIgorImFudWxhcikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGJsb3F1ZWFyIG8gYXJxdWl2byBkZSBibG9xdWVpbyAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo2NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGJsb3F1ZWFyIG8gYXJxdWl2byBkZSBibG9xdWVpbyAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICJ0ZW1wbyBlc2dvdGFkbyIKKworIzogbW91bnQvZnN0YWIuYzo2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbGluayAlc1xuIgorIlBlcmhhcHMgdGhlcmUgaXMgYSBzdGFsZSBsb2NrIGZpbGU/XG4iCittc2dzdHIgIiIKKyJO428gZm9pIHBvc3PtdmVsIGNyaWFyIG8gdu1uY3VsbyAlc1xuIgorIlRhbHZleiBoYWphIHVtIGFycXVpdm8gZGUgYmxvcXVlaW8gdmVuY2lkbz9cbiIKKworIzogbW91bnQvZnN0YWIuYzo3OTIgbW91bnQvZnN0YWIuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgKCVzKSAtIG10YWIgbm90IHVwZGF0ZWQiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXMgKCVzKSAtIG10YWIgbuNvIGF0dWFsaXphZG8iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJlcnJvIGFvIGdyYXZhciAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODc0CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzXG4iCittc2dzdHIgImVycm8gYW8gYWx0ZXJhciBvIG1vZG8gZGUgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBvd25lciBvZiAlczogJXNcbiIKK21zZ3N0ciAiZXJybyBhbyBhbHRlcmFyIG8gbW9kbyBkZSAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgcmVuYW1lICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIHJlbm9tZWFyICVzIHBhcmEgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IHNldCBjYXBhY2l0eSBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG7jbyBmb2kgcG9zc+12ZWwgb2J0ZXIgaW5mb3JtYef1ZXMgc29icmUgbyBkaXNwb3NpdGl2byAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlPFBSSXU2ND4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjM4OQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHNpemVsaW1pdCAlPFBSSXU2ND4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uICVzICh0eXBlICU8UFJJdTMyPikiCittc2dzdHIgIlRpcG8gZGUgY3JpcHRvZ3JhZmlhIG7jbyBzdXBvcnRhZG86ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiVGlwbyBkZSBjcmlwdG9ncmFmaWEgbuNvIHN1cG9ydGFkbzogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBnZXQgaW5mbyBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG7jbyBmb2kgcG9zc+12ZWwgb2J0ZXIgaW5mb3JtYef1ZXMgc29icmUgbyBkaXNwb3NpdGl2byAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogbuNvIGZvaSBwb3Nz7XZlbCBhYnJpciBvIGRpc3Bvc2l0aXZvICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IC9kZXYgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LiIKK21zZ3N0ciAiJXM6IHVzdeFyaW8gXCIlc1wiIG7jbyBleGlzdGUuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NTkgbW91bnQvbG9tb3VudC5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZnJlZSBsb29wIGRldmljZSIKK21zZ3N0ciAibW91bnQ6IG7jbyBmb2kgcG9zc+12ZWwgbG9jYWxpemFyIG5lbmh1bSBkaXNwb3NpdGl2byBkZSBsYedvIGxpdnJlIgorCisjOiBtb3VudC9sb21vdW50LmM6NjA2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yIGBtb2Rwcm9iZSBsb29wJy4pIgorbXNnc3RyICIiCisibW91bnQ6IE7jbyBmb2kgcG9zc+12ZWwgbG9jYWxpemFyIG5lbmh1bSBkaXNwb3NpdGl2byBkZSBsYedvIGUsIGRlIGFjb3JkbyAiCisiY29tICVzLFxuIgorIiAgICAgICBlc3RlIGtlcm5lbCBu428gY29uaGVjZSBvIGRpc3Bvc2l0aXZvIGRlIGxh529cbiIKKyIgICAgICAgKHNlIGZvciBlc3RlIG8gY2FzbywgcmVjb21waWxlIG91IHVzZSBgaW5zbW9kIGxvb3AubycpLiIKKworIzogbW91bnQvbG9tb3VudC5jOjYzNgorIywgZnV6enkKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoaWxlIHJlYWRpbmcgcGFzc3BocmFzZSIKK21zZ3N0ciAiRmFsdGEgbWVt83JpYSBxdWFuZG8gbyBidWZmZXIgY3Jlc2NlLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlcyBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJPIHNldG9yICVkIGrhIGVzdOEgYWxvY2Fkb1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njk1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iCittc2dzdHIgIm1vdW50OiAlcyVzIOkgcHJvdGVnaWRvIGNvbnRyYSBncmF2YefjbzsgbW9udGFuZG8gc29tZW50ZSBwYXJhIGxlaXR1cmEiCisKKyM6IG1vdW50L2xvbW91bnQuYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbG9jayBpbnRvIG1lbW9yeSwgZXhpdGluZy5cbiIKK21zZ3N0ciAiTuNvIOkgcG9zc+12ZWwgYmxvcXVlYXIgKGxvY2spIG5hIG1lbfNyaWEsIHNhaW5kb1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVkKTogc3VjZXNzb1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IHN1Y2Vzc29cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg0MAorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBkZWxldGUgZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBu428gZm9pIHBvc3PtdmVsIGV4Y2x1aXIgbyBkaXNwb3NpdGl2byAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIG1vdW50IHdhcyBjb21waWxlZCB3aXRob3V0IGxvb3Agc3VwcG9ydC4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiRXN0ZSBtb3VudCBmb2kgY29tcGlsYWRvIHNlbSBzdXBvcnRlIGEgbGHnb3MuIFJlY29tcGlsZS1vLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorInVzYWdlOlxuIgorIiAgJXMgZGlzcG9zaXRpdm9fbGHnbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGThICIKKyJpbmZvcm1h5/Vlc1xuIgorIiAgJXMgLWQgZGlzcG9zaXRpdm9fbGHnbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICIKKyJleGNsdWlcbiIKKyIgICVzIFsgLWUgY3JpcHRvZ3JhZmlhIF0gWyAtbyBkZXNsb2NhbWVudG8gXSBkaXNwb3NpdGl2b19sYedvIGFycXVpdm8gIyAiCisiY29uZmlndXJh5+NvXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIDx0eXBlPiBlbmFibGUgZGF0YSBlbmNyeXB0aW9uIHdpdGggc3BlY2lmaWVkIDxuYW1lL251bT5cbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbyB8IC0tb2Zmc2V0IDxudW0+ICAgICAgc3RhcnQgYXQgb2Zmc2V0IDxudW0+IGludG8gZmlsZVxuIgorIiAgICAgIC0tc2l6ZWxpbWl0IDxudW0+ICAgbG9vcCBsaW1pdGVkIHRvIG9ubHkgPG51bT4gYnl0ZXMgb2YgdGhlIGZpbGVcbiIKKyIgLXAgfCAtLXBhc3MtZmQgPG51bT4gICAgIHJlYWQgcGFzc3BocmFzZSBmcm9tIGZpbGUgZGVzY3JpcHRvciA8bnVtPlxuIgorIiAtciB8IC0tcmVhZC1vbmx5ICAgICAgICAgc2V0dXAgcmVhZC1vbmx5IGxvb3AgZGV2aWNlXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICBwcmludCBkZXZpY2UgbmFtZSAod2l0aCAtZiA8ZmlsZT4pXG4iCisiIC12IHwgLS12ZXJib3NlICAgICAgICAgICB2ZXJib3NlIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTAzNCBtb3VudC9sb21vdW50LmM6MTA3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTG9vcCBkZXZpY2UgaXMgJXNcbiIKK21zZ3N0ciAibG9vcDogbuNvIGZvaSBwb3Nz7XZlbCBhYnJpciBvIGRpc3Bvc2l0aXZvICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBvIGRpc3Bvc2l0aXZvIGVzdOEgb2N1cGFkbyIKKworIzogbW91bnQvbG9tb3VudC5jOjEwODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbG9vcCBzdXBwb3J0IHdhcyBhdmFpbGFibGUgYXQgY29tcGlsZSB0aW1lLiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICJO428gaGF2aWEgc3Vwb3J0ZSBhIGxh528gZGlzcG9u7XZlbCBxdWFuZG8gZGEgY29tcGlsYefjby4gUmVjb21waWxlLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisibW91bnQ6IHdhcm5pbmc6IC9ldGMvbXRhYiBpcyBub3Qgd3JpdGFibGUgKGUuZy4gcmVhZC1vbmx5IGZpbGVzeXN0ZW0pLlxuIgorIiAgICAgICBJdCdzIHBvc3NpYmxlIHRoYXQgaW5mb3JtYXRpb24gcmVwb3J0ZWQgYnkgbW91bnQoOCkgaXMgbm90XG4iCisiICAgICAgIHVwIHRvIGRhdGUuIEZvciBhY3R1YWwgaW5mb3JtYXRpb24gYWJvdXQgc3lzdGVtIG1vdW50IHBvaW50c1xuIgorIiAgICAgICBjaGVjayB0aGUgL3Byb2MvbW91bnRzIGZpbGUuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGltcHJvcGVybHkgcXVvdGVkIG9wdGlvbiBzdHJpbmcgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjM3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHRyYW5zbGF0ZWQgJXMgJyVzJyB0byAnJXMnXG4iCittc2dzdHIgIm1vdW50OiBu428gZm9pIHBvc3PtdmVsIGxvY2FsaXphciAlcyBlbSAlcyBvdSAlcyIKKworIzogbW91bnQvbW91bnQuYzo1MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMiCittc2dzdHIgIm1vdW50OiBkZSBhY29yZG8gY29tIG10YWIsICVzIGrhIGVzdOEgbW9udGFkbyBlbSAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogZGUgYWNvcmRvIGNvbSBtdGFiLCAlcyBlc3ThIG1vbnRhZG8gZW0gJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzIGZvciB3cml0aW5nOiAlcyIKK21zZ3N0ciAibW91bnQ6IG7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXMgcGFyYSBncmF2YefjbzogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTgxIG1vdW50L21vdW50LmM6MTE5OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIm1vdW50OiBlcnJvIGFvIGdyYXZhciAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGVycm8gYW8gYWx0ZXJhciBtb2RvIGRlICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IG7jbyBmb2kgcG9zc+12ZWwgY29uZmlndXJhciB2ZWxvY2lkYWRlOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJtb3VudDogbuNvIGZvaSBwb3Nz7XZlbCBjb25maWd1cmFyIHZlbG9jaWRhZGU6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjcxNCBtb3VudC9tb3VudC5jOjE4NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAibW91bnQ6IG7jbyBmb2kgcG9zc+12ZWwgcmVhbGl6YXIgZm9yazogJXMiCisKKyM6IG1vdW50L21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyAlc1xuIgorbXNnc3RyICJFeHBlcmltZW50YW5kbyAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg3OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogeW91IGRpZG4ndCBzcGVjaWZ5IGEgZmlsZXN5c3RlbSB0eXBlIGZvciAlc1xuIgorbXNnc3RyICJtb3VudDogbuNvIGZvaSBlc3BlY2lmaWNhZG8gdW0gdGlwbyBkZSBzaXN0ZW1hIGRlIGFycXVpdm9zIHBhcmEgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgYWxsIHR5cGVzIG1lbnRpb25lZCBpbiAlcyBvciAlc1xuIgorbXNnc3RyICIgICAgICAgZXhwZXJpbWVudGFyZWkgdG9kb3Mgb3MgdGlwb3MgbWVuY2lvbmFkb3MgZW0gJXMgb3UgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIGFuZCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgc3dhcHNwYWNlXG4iCittc2dzdHIgIiAgICAgICBlIHBhcmVjZSBzZXIgdW0gZXNwYedvIGRlIHBlcm11dGFcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgdHlwZSAlc1xuIgorbXNnc3RyICIgICAgICAgZXhwZXJpbWVudGFyZWkgbyB0aXBvICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiCittc2dzdHIgIiVzIHBhcmVjZSBlc3Bh528gZGUgcGVybXV0YSAtIG7jbyBtb250YWRvIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDIKK21zZ2lkICJtb3VudCBmYWlsZWQiCittc2dzdHIgIm1vdW50IGZhbGhvdSIKKworIzogbW91bnQvbW91bnQuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIgorbXNnc3RyICJtb3VudDogc29tZW50ZSBvIHJvb3QgcG9kZSBtb250YXIgJXMgZW0gJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTA3NAorbXNnaWQgIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiBkaXNwb3NpdGl2byBkZSBsYedvIGVzcGVjaWZpY2FkbyBkdWFzIHZlemVzIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzkKK21zZ2lkICJtb3VudDogdHlwZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiB0aXBvIGVzcGVjaWZpY2FkbyBkdWFzIHZlemVzIgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBpZ25vcmFuZG8gYSBjb25maWd1cmHn428gZGUgdW0gZGlzcG9zaXRpdm8gZGUgbGHnb1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMgYXMgbG9vcCIKK21zZ3N0ciAibW91bnQ6IGRlIGFjb3JkbyBjb20gbXRhYiwgJXMgauEgZXN04SBtb250YWRvIGVtICVzIgorCisjOiBtb3VudC9tb3VudC5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGdvaW5nIHRvIHVzZSB0aGUgbG9vcCBkZXZpY2UgJXNcbiIKK21zZ3N0ciAibW91bnQ6IHNlcuEgdXNhZG8gbyBkaXNwb3NpdGl2byBkZSBsYedvICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgInVtb3VudDogJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjExMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBmYWxoYSBhbyBjb25maWd1cmFyIGRpc3Bvc2l0aXZvIGRlIGxh529cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzZXR1cCBsb29wIGRldmljZSBzdWNjZXNzZnVsbHlcbiIKK21zZ3N0ciAibW91bnQ6IGNvbmZpZ3VyYefjbyBkZSBkaXNwb3NpdGl2byBkZSBsYedvIHJlYWxpemFkYSBjb20gc3VjZXNzb1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vICVzIGZvdW5kIC0gY3JlYXRpbmcgaXQuLlxuIgorbXNnc3RyICJtb3VudDogbmVuaHVtICVzIGVuY29udHJhZG8gLSBjcmlhbmRvLW8uLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IG7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMjI4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG9wZW4gJXMgZm9yIHNldHRpbmcgc3BlZWQiCittc2dzdHIgIm1vdW50OiBu428gZm9pIHBvc3PtdmVsIGFicmlyICVzIHBhcmEgY29uZmlndXJh5+NvIGRhIHZlbG9jaWRhZGUiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50OiBu428gZm9pIHBvc3PtdmVsIGNvbmZpZ3VyYXIgdmVsb2NpZGFkZTogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTMyMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IGRlIGFjb3JkbyBjb20gbXRhYiwgJXMgauEgZXN04SBtb250YWRvIGVtICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgInVtb3VudDogJXMgZXN04SBvY3VwYWRvIC0gcmVtb250YWRvIHNvbWVudGUgcGFyYSBsZWl0dXJhXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQxMworbXNnaWQgIiIKKyJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsIGFuZCBub25lIHdhcyBzcGVjaWZpZWQiCittc2dzdHIgIiIKKyJtb3VudDogbuNvIGZvaSBwb3Nz7XZlbCBkZXRlcm1pbmFyIG8gdGlwbyBkbyBzaXN0ZW1hIGRlIGFycXVpdm9zIGUgbmVuaHVtICIKKyJmb2kgZXNwZWNpZmljYWRvIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTYKK21zZ2lkICJtb3VudDogeW91IG11c3Qgc3BlY2lmeSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICJtb3VudDogdm9j6iBwcmVjaXNhIGVzcGVjaWZpY2FyIG8gdGlwbyBkbyBzaXN0ZW1hIGRlIGFycXVpdm9zIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudDogYSBtb250YWdlbSBmYWxob3UiCisKKyM6IG1vdW50L21vdW50LmM6MTQyNSBtb3VudC9tb3VudC5jOjE0NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIG5vdCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAibW91bnQ6IG8gcG9udG8gZGUgbW9udGFnZW0gJXMgbuNvIOkgdW0gZGlyZXTzcmlvIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjcKK21zZ2lkICJtb3VudDogcGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm1vdW50OiBwZXJtaXNz428gbmVnYWRhIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjkKK21zZ2lkICJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IgorbXNnc3RyICJtb3VudDog6SBuZWNlc3PhcmlvIHNlciBzdXBlcnVzdeFyaW8gcGFyYSBtb250YXIiCisKKyM6IG1vdW50L21vdW50LmM6MTQzMyBtb3VudC9tb3VudC5jOjE0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIGJ1c3kiCittc2dzdHIgIm1vdW50OiAlcyBlc3ThIG9jdXBhZG8iCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IHByb2MgauEgbW9udGFkbyIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIGrhIG1vbnRhZG8gb3UgJXMgb2N1cGFkbyIKKworIzogbW91bnQvbW91bnQuYzoxNDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6IG8gcG9udG8gZGUgbW9udGFnZW0gJXMgbuNvIGV4aXN0ZSIKKworIzogbW91bnQvbW91bnQuYzoxNDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBhIHN5bWJvbGljIGxpbmsgdG8gbm93aGVyZSIKK21zZ3N0ciAibW91bnQ6IG8gcG9udG8gZGUgbW9udGFnZW0gJXMg6SB1bSB27W5jdWxvIHNpbWLzbGljbyBwYXJhIGx1Z2FyIGFsZ3VtIgorCisjOiBtb3VudC9tb3VudC5jOjE0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogbyBkaXNwb3NpdGl2byBlc3BlY2lhbCAlcyBu428gZXhpc3RlIgorCisjOiBtb3VudC9tb3VudC5jOjE0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdFxuIgorIiAgICAgICAoYSBwYXRoIHByZWZpeCBpcyBub3QgYSBkaXJlY3RvcnkpXG4iCittc2dzdHIgIiIKKyJtb3VudDogbyBkaXNwb3NpdGl2byBlc3BlY2lhbCAlcyBu428gZXhpc3RlXG4iCisiICAgICAgICh1bSBwcmVmaXhvIGRlIGNhbWluaG8gbuNvIOkgdW0gZGlyZXTzcmlvKVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIG5vdCBtb3VudGVkIGFscmVhZHksIG9yIGJhZCBvcHRpb24iCittc2dzdHIgIm1vdW50OiAlcyBq4SBu428gZXN04SBtb250YWRvIG91IG9w5+NvIGluduFsaWRhIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogd3JvbmcgZnMgdHlwZSwgYmFkIG9wdGlvbiwgYmFkIHN1cGVyYmxvY2sgb24gJXMsXG4iCisiICAgICAgIG1pc3NpbmcgY29kZXBhZ2Ugb3IgaGVscGVyIHByb2dyYW0sIG9yIG90aGVyIGVycm9yIgorbXNnc3RyICIiCisibW91bnQ6IHRpcG8gZGUgc2lzdGVtYSBkZSBhcnF1aXZvcyBpbmNvcnJldG8sIG9w5+NvIGluduFsaWRhLCBzdXBlcmJsb2NvICIKKyJpbnbhbGlkbyBlbSAlcyxcbiIKKyIgICAgICAgb3UgbvptZXJvIGV4Y2Vzc2l2byBkZSBzaXN0ZW1hcyBkZSBhcnF1aXZvcyBtb250YWRvcyIKKworIzogbW91bnQvbW91bnQuYzoxNDg3Cittc2dpZCAiIgorIiAgICAgICAoZm9yIHNldmVyYWwgZmlsZXN5c3RlbXMgKGUuZy4gbmZzLCBjaWZzKSB5b3UgbWlnaHRcbiIKKyIgICAgICAgbmVlZCBhIC9zYmluL21vdW50Ljx0eXBlPiBoZWxwZXIgcHJvZ3JhbSkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDk2Cittc2dpZCAiIgorIiAgICAgICAoY291bGQgdGhpcyBiZSB0aGUgSURFIGRldmljZSB3aGVyZSB5b3UgaW4gZmFjdCB1c2VcbiIKKyIgICAgICAgaWRlLXNjc2kgc28gdGhhdCBzcjAgb3Igc2RhIG9yIHNvIGlzIG5lZWRlZD8pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUwMQorbXNnaWQgIiIKKyIgICAgICAgKGFyZW4ndCB5b3UgdHJ5aW5nIHRvIG1vdW50IGFuIGV4dGVuZGVkIHBhcnRpdGlvbixcbiIKKyIgICAgICAgaW5zdGVhZCBvZiBzb21lIGxvZ2ljYWwgcGFydGl0aW9uIGluc2lkZT8pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUwOAorbXNnaWQgIiIKKyIgICAgICAgSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBpcyBmb3VuZCBpbiBzeXNsb2cgLSB0cnlcbiIKKyIgICAgICAgZG1lc2cgfCB0YWlsICBvciBzb1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUxNAorbXNnaWQgIm1vdW50IHRhYmxlIGZ1bGwiCittc2dzdHIgInRhYmVsYSBkZSBtb250YWdlbSBjaGVpYSIKKworIzogbW91bnQvbW91bnQuYzoxNTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogY2FuJ3QgcmVhZCBzdXBlcmJsb2NrIgorbXNnc3RyICJtb3VudDogJXM6IG7jbyBmb2kgcG9zc+12ZWwgbGVyIG8gc3VwZXJibG9jbyIKKworIzogbW91bnQvbW91bnQuYzoxNTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogdW5rbm93biBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlczogZGlzcG9zaXRpdm8gZGUgYmxvY29zIGRlc2NvbmhlY2lkbyIKKworIzogbW91bnQvbW91bnQuYzoxNTI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdW5rbm93biBmaWxlc3lzdGVtIHR5cGUgJyVzJyIKK21zZ3N0ciAiICAgbCAgIGxpc3RhIG9zIHRpcG9zIGRlIHNpc3RlbWFzIGRlIGFycXVpdm9zIGNvbmhlY2lkb3MiCisKKyM6IG1vdW50L21vdW50LmM6MTUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogcHJvYmFibHkgeW91IG1lYW50ICVzIgorbXNnc3RyICJtb3VudDogcHJvdmF2ZWxtZW50ZSB2b2PqIHF1ZXJpYSBkaXplciAlcyIKKworIzogbW91bnQvbW91bnQuYzoxNTQyCisjLCBmdXp6eQorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAibW91bnQ6IHRhbHZleiB2b2PqIHF1aXNlc3NlIGRpemVyIGlzbzk2NjA/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDUKKyMsIGZ1enp5Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDogdGFsdmV6IHZvY+ogcXVpc2Vzc2UgZGl6ZXIgaXNvOTY2MD8iCisKKyM6IG1vdW50L21vdW50LmM6MTU0OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaGFzIHdyb25nIGRldmljZSBudW1iZXIgb3IgZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIgorbXNnc3RyICIiCisibW91bnQ6ICVzIHBvc3N1aSBu+m1lcm8gZGUgZGlzcG9zaXRpdm8gaW5jb3JyZXRvIG91IG8gdGlwbyBkZSBzaXN0ZW1hIGRlICIKKyJhcnF1aXZvcyAlcyBu428g6SBzdXBvcnRhZG8iCisKKyM6IG1vdW50L21vdW50LmM6MTU1NgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlLCBhbmQgc3RhdCBmYWlscz8iCittc2dzdHIgIm1vdW50OiAlcyBu428g6SB1bSBkaXNwb3NpdGl2byBkZSBibG9jb3MgZSBzdGF0IGZhbGhhPyIKKworIzogbW91bnQvbW91bnQuYzoxNTU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHRoZSBrZXJuZWwgZG9lcyBub3QgcmVjb2duaXplICVzIGFzIGEgYmxvY2sgZGV2aWNlXG4iCisiICAgICAgIChtYXliZSBgbW9kcHJvYmUgZHJpdmVyJz8pIgorbXNnc3RyICIiCisibW91bnQ6IG8ga2VybmVsIG7jbyByZWNvbmhlY2UgJXMgY29tbyBkaXNwb3NpdGl2byBkZSBibG9jb3NcbiIKKyIgICAgICAgKHRhbHZleiBgaW5zbW9kIGRyaXZlcic/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UgKG1heWJlIHRyeSBgLW8gbG9vcCc/KSIKK21zZ3N0ciAibW91bnQ6ICVzIG7jbyDpIHVtIGRpc3Bvc2l0aXZvIGRlIGJsb2NvcyAodGFsdmV6IHRlbnRhciBgLW8gbG9vcCc/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlcyBu428g6SB1bSBkaXNwb3NpdGl2byBkZSBibG9jb3MiCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgbuNvIOkgdW0gZGlzcG9zaXRpdm8gZGUgYmxvY29zIHbhbGlkbyIKKworIzogbW91bnQvbW91bnQuYzoxNTcyCittc2dpZCAiYmxvY2sgZGV2aWNlICIKK21zZ3N0ciAiZGlzcG9zaXRpdm8gZGUgYmxvY29zICIKKworIzogbW91bnQvbW91bnQuYzoxNTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgbW91bnQgJXMlcyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiBu428gZm9pIHBvc3PtdmVsIG1vbnRhciAlcyVzIHNvbWVudGUgcGFyYSBsZWl0dXJhIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkIGJ1dCBleHBsaWNpdCBgLXcnIGZsYWcgZ2l2ZW4iCittc2dzdHIgIm1vdW50OiAlcyVzIOkgcHJvdGVnaWRvIGNvbnRyYSBncmF2YefjbyBtYXMgYSBvcOfjbyAtdyBmb2kgcGFzc2FkYSIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIm1vdW50OiBu428gZm9pIHBvc3PtdmVsIG1vbnRhciAlcyVzIHNvbWVudGUgcGFyYSBsZWl0dXJhIgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIOkgcHJvdGVnaWRvIGNvbnRyYSBncmF2YefjbzsgbW9udGFuZG8gc29tZW50ZSBwYXJhIGxlaXR1cmEiCisKKyM6IG1vdW50L21vdW50LmM6MTYwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAibW91bnQ6IG5lbmh1bSAlcyBlbmNvbnRyYWRvIC0gY3JpYW5kby1vLi4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIGrhIG1vbnRhZG8gZW0gJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxNjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogJXMgZG9lcyBub3QgY29udGFpbiBTRUxpbnV4IGxhYmVscy5cbiIKKyIgICAgICAgWW91IGp1c3QgbW91bnRlZCBhbiBmaWxlIHN5c3RlbSB0aGF0IHN1cHBvcnRzIGxhYmVscyB3aGljaCBkb2VzIG5vdFxuIgorIiAgICAgICBjb250YWluIGxhYmVscywgb250byBhbiBTRUxpbnV4IGJveC4gSXQgaXMgbGlrZWx5IHRoYXQgY29uZmluZWRcbiIKKyIgICAgICAgYXBwbGljYXRpb25zIHdpbGwgZ2VuZXJhdGUgQVZDIG1lc3NhZ2VzIGFuZCBub3QgYmUgYWxsb3dlZCBhY2Nlc3MgdG9cbiIKKyIgICAgICAgdGhpcyBmaWxlIHN5c3RlbS4gIEZvciBtb3JlIGRldGFpbHMgc2VlIHJlc3RvcmVjb24oOCkgYW5kIG1vdW50KDgpLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTcxMAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiB0aGUgY29sb25cbiIKK21zZ3N0ciAiIgorIm1vdW50OiBuZW5odW0gdGlwbyBmb2kgZm9ybmVjaWRvIC0gc3Vwb25kbyBuZnMgcG9yIGNhdXNhIGRvcyBkb2lzLXBvbnRvc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtIEknbGwgYXNzdW1lIGNpZnMgYmVjYXVzZSBvZiB0aGUgLy8gcHJlZml4XG4iCittc2dzdHIgIiIKKyJtb3VudDogbmVuaHVtIHRpcG8gZm9pIGZvcm5lY2lkbyAtIHN1cG9uZG8gbmZzIHBvciBjYXVzYSBkb3MgZG9pcy1wb250b3NcbiIKKworIzogbW91bnQvbW91bnQuYzoxODExCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6ICVzIGrhIG1vbnRhZG8gZW0gJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxOTQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKyJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKyIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKyJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKyJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKyJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKyJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorbXNnc3RyICIiCisiVXNvOiAgIG1vdW50IC1WICAgICAgICAgICAgICAgICA6IG1vc3RyYSB2ZXJz429cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogbW9zdHJhIGVzdGEgYWp1ZGFcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdGEgc2lzdGVtYXMgZGUgYXJxdWl2b3MgbW9udGFkb3NcbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDogaWRlbSwgaW5jbHVpbmRvIHLzdHVsb3MgZGUgdm9sdW1lc1xuIgorIkVzdGFzIGVyYW0gYXMgb3Dn9WVzIGRlIGluZm9ybWHn428uIEFnb3JhIGFzIGRlIG1vbnRhZ2VtLlxuIgorIk8gY29tYW5kbyDpIGBtb3VudCBbLXQgdGlwb1NBXSBhbGd1bWEtY29pc2EgYWxndW0tbHVnYXInLlxuIgorIkRldGFsaGVzIGVuY29udHJhZG9zIGVtIC9ldGMvZnN0YWIgcG9kZW0gc2VyIG9taXRpZG9zLlxuIgorIiAgICAgICBtb3VudCAtYSAgICAgICAgICAgICAgICAgOiBtb250YSB0dWRvIGNvbnRpZG8gZW0gL2V0Yy9mc3RhYlxuIgorIiAgICAgICBtb3VudCBkaXNwb3NpdGl2byAgICAgICAgOiBtb250YSBkaXNwb3NpdGl2byBubyBsdWdhciBjb25oZWNpZG9cbiIKKyIgICAgICAgbW91bnQgZGlyZXTzcmlvICAgICAgICAgIDogbW9udGEgZGlzcG9zaXRpdm8gY29uaGVjaWRvIGFxdWlcbiIKKyIgICAgICAgbW91bnQgLXQgdGlwbyBkZXYgZGlyICAgIDogY29tYW5kbyBub3JtYWwgZGUgbW9udGFnZW1cbiIKKyJOb3RlIHF1ZSBu428gc2UgbW9udGEgcmVhbG1lbnRlIHVtIGRpc3Bvc2l0aXZvLCBtb250YS1zZSB1bVxuIgorInNpc3RlbWEgZGUgYXJxdWl2b3MgKGRlIHVtIGRldGVybWluYWRvIHRpcG8pIGVuY29udHJhZG8gbm8gZGlzcG9zaXRpdm8uXG4iCisiUG9kZS1zZSBtb250YXIgdGFtYultIGVtIG91dHJvIGx1Z2FyIHVtYSDhcnZvcmUgZGUgZGlyZXTzcmlvcyBcbiIKKyJhbnRlcmlvcm1lbnRlIHZpc+12ZWw6XG4iCisiICAgICAgIG1vdW50IC0tYmluZCBkaXItYW50aWdvIGRpci1ub3ZvXG4iCisiVW0gZGlzcG9zaXRpdm8gcG9kZSBzZXIgaW5mb3JtYWRvIHBlbG8gbm9tZSwgZGlnYW1vcyAvZGV2L2hkYTEgb3UgL2Rldi8iCisiY2Ryb20sXG4iCisib3UgcG9yIHVtIHLzdHVsbywgdXNhbmRvIC1MIHLzdHVsbyBvdSBwb3IgdXVpZCwgdXNhbmRvIC1VIHV1aWQuXG4iCisiT3V0cmFzIG9w5/VlczogWy1uZkZyc3Z3XSBbLW8gb3Dn9WVzXS5cbiIKKyJQYXJhIG1haXMgZGV0YWxoZXMsIGNvbnN1bHRlIGBtYW4gOCBtb3VudCcuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiBvcGVyYefjbyBleGNsdXNpdmEgZGUgcm9vdCIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6IG9wZXJh5+NvIGV4Y2x1c2l2YSBkZSByb290IgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjMwNiBtb3VudC9tb3VudC5jOjIzMzIKK21zZ2lkICJtb3VudDogbm8gc3VjaCBwYXJ0aXRpb24gZm91bmQiCittc2dzdHIgIm1vdW50OiB0YWwgcGFydGnn428gbuNvIGZvaSBlbmNvbnRyYWRhIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IGZpbmQgJXMgaW4gJXMgb3IgJXMiCittc2dzdHIgIm1vdW50OiBu428gZm9pIHBvc3PtdmVsIGxvY2FsaXphciAlcyBlbSAlcyBvdSAlcyIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiB3YXJuaW5nOiBubyBmaW5hbCBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgJXNcbiIKK21zZ3N0ciAiW21udGVudF06IGF2aXNvOiBu428gaOEgbm92YSBsaW5oYSBmaW5hbCBubyBmaW5hbCBkZSAlc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiW21udGVudF06IGxpbmhhICVkIGVtICVzIHRlbSAlcyBpbnbhbGlkbyhhKVxuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTkKK21zZ2lkICI7IHJlc3Qgb2YgZmlsZSBpZ25vcmVkIgorbXNnc3RyICI7IHJlc3RvIGRvIGFycXVpdm8gaWdub3JhZG8iCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAiZXJybyBuYSBjaGFtYWRhIGEgeHN0cm5kdXAiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MjI1IG1vdW50L3N1bmRyaWVzLmM6MjgxIG1vdW50L3N1bmRyaWVzLmM6Mjk2CisjOiBtb3VudC94bWFsbG9jLmM6MTEKK21zZ2lkICJub3QgZW5vdWdoIG1lbW9yeSIKK21zZ3N0ciAibuNvIGjhIG1lbfNyaWEgc3VmaWNpZW50ZSIKKworIzogbW91bnQvc3dhcG9uLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSA8c3BlY2lhbD4gcGFyYW1ldGVyOlxuIgorIiB7LUwgbGFiZWwgfCBMQUJFTD1sYWJlbH0gICAgICAgICAgICAgTEFCRUwgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIFVVSUQgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGRldmljZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGZpbGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZmlsZSB0byBiZSB1c2VkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstZV0gWy12XSBbLWZdICAgICAgICAgICAgIGVuYWJsZSBhbGwgc3dhcHMgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICUxJHMgWy1wIHByaW9yaXR5XSBbLXZdIFstZl0gPHNwZWNpYWw+ICBlbmFibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1zICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgc3dhcCB1c2FnZSBzdW1tYXJ5XG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIHN3YXBzXG4iCisiICUxJHMgWy12XSA8c3BlY2lhbD4gICAgICAgICAgICAgICBkaXNhYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIyMworIywgZnV6enkKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAibyBmb3JrIGZhbGhvdVxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3YgZmFpbGVkIgorbXNnc3RyICJleGVjIGZhbGhvdVxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNDcKKyMsIGZ1enp5Cittc2dpZCAid2FpdHBpZCBmYWlsZWQiCittc2dzdHIgInNldHVpZCgpIGZhbGhvdSIKKworIzogbW91bnQvc3dhcG9uLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbHNlZWsgZmFpbGVkIgorbXNnc3RyICJidXNjYSBmYWxob3UiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgIkEgYWJlcnR1cmEgZGUgJXMgZmFsaG91IgorCisjOiBtb3VudC9zd2Fwb24uYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvdW5kIHN3YXAgc2lnbmF0dXJlOiB2ZXJzaW9uICVkLCBwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5Cittc2dpZCAiZGlmZmVyZW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorIywgZnV6enkKK21zZ2lkICJzYW1lIgorbXNnc3RyICJOb21lIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzdGF0IGZhaWxlZCIKK21zZ3N0ciAiYnVzY2EgZmFsaG91IgorCisjOiBtb3VudC9zd2Fwb24uYzozOTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgInN3YXBvbjogYXZpc286ICVzIHBvc3N1aSBwZXJtaXNz9WVzIGluc2VndXJhcyAlMDRvOyBzdWdlcmUtc2UgMDYwMFxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyAtIGl0IGFwcGVhcnMgdG8gaGF2ZSBob2xlcy4iCittc2dzdHIgInN3YXBvbjogaWdub3JhbmRvIGFycXVpdm8gJXMgLSBlbGUgcGFyZWNlIHRlciBidXJhY29zLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBnZXQgc2l6ZSBmYWlsZWQiCittc2dzdHIgImJ1c2NhIGZhbGhvdSIKKworIzogbW91bnQvc3dhcG9uLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIHN3YXAgaGVhZGVyIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxhc3RfcGFnZSAweCUwOGxseCBpcyBsYXJnZXIgdGhhbiBhY3R1YWwgc2l6ZSBvZiBzd2Fwc3BhY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIChVc2UgLS1maXhwZ3N6IHRvIHJlaW5pdGlhbGl6ZSBpdC4pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc29mdHdhcmUgc3VzcGVuZCBkYXRhIGRldGVjdGVkLiBSZXdyaXRpbmcgdGhlIHN3YXAgc2lnbmF0dXJlLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NzggbW91bnQvc3dhcG9uLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIG9uICVzXG4iCittc2dzdHIgIiVzIGVtICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvbiBmYWlsZWQiCittc2dzdHIgImJ1c2NhIGZhbGhvdSIKKworIzogbW91bnQvc3dhcG9uLmM6NTA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZmluZCB0aGUgZGV2aWNlIGZvciAlcyIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgbG9jYWxpemFyIFwiX3N0ZXh0XCIgZW0gJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQwCisjLCBmdXp6eQorbXNnaWQgIk5vdCBzdXBlcnVzZXIuIgorbXNnc3RyICJO428gZGVmaW5pZG9cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgImJ1c2NhIGZhbGhvdSIKKworIzogbW91bnQvc3dhcG9uLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgdW5zdXBwb3J0ZWQgcHJvZ3JhbSBuYW1lIChtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAtZlxuIgorbXNnc3RyICJ1bW91bnQ6IGNvbXBpbGFkbyBzZW0gc3Vwb3J0ZSBhIC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IG7jbyBmb2kgcG9zc+12ZWwgY29uZmlndXJhciB2ZWxvY2lkYWRlOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiBu428gZm9pIHBvc3PtdmVsIGNvbmZpZ3VyYXIgdmVsb2NpZGFkZTogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjEzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBu428gZm9pIHBvc3PtdmVsIHJlYWxpemFyIGZvcms6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogaW52YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgInVtb3VudDogJXM6IGRpc3Bvc2l0aXZvIGRlIGJsb2NvcyBpbnbhbGlkbyIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBu428gbW9udGFkbyIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgInVtb3VudDogJXM6IG7jbyBmb2kgcG9zc+12ZWwgZ3JhdmFyIHN1cGVyYmxvY28iCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgZm91bmQiCittc2dzdHIgInVtb3VudDogJXM6IG7jbyBlbmNvbnRyYWRvIgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBwcmVjaXNhIHNlciBzdXBlcnVzdeFyaW8gcGFyYSBkZXNtb250YXIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgIiIKKyJ1bW91bnQ6ICVzOiBkaXNwb3NpdGl2b3MgZGUgYmxvY29zIG7jbyBwZXJtaXRpZG9zIG5vIHNpc3RlbWEgZGUgYXJxdWl2b3MiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiAlcyIKK21zZ3N0ciAidW1vdW50OiAlczogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1bW91bnQyLCB0cnlpbmcgdW1vdW50Li4uXG4iCittc2dzdHIgIm7jbyBleGlzdGUgdW1vdW50MiwgdGVudGFuZG8gdW1vdW50Li4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogJXMgZXN04SBvY3VwYWRvIC0gcmVtb250YWRvIHNvbWVudGUgcGFyYSBsZWl0dXJhXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvdWxkIG5vdCByZW1vdW50ICVzIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6IG7jbyBmb2kgcG9zc+12ZWwgcmVtb250YXIgJXMgc29tZW50ZSBwYXJhIGxlaXR1cmFcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiVzIGRlc21vbnRhZG9cbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgIiIKKyJ1bW91bnQ6IG7jbyBmb2kgcG9zc+12ZWwgbG9jYWxpemFyIGEgbGlzdGEgZGUgc2lzdGVtYXMgZGUgYXJxdWl2b3MgYSAiCisiZGVzbW9udGFyIgorCisjOiBtb3VudC91bW91bnQuYzozOTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogdW1vdW50IC1oIHwgLVZcbiIKKyIgICAgICAgdW1vdW50IC1hIFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgdmZzdHlwZXNdIFstTyBvcHRzXVxuIgorIiAgICAgICB1bW91bnQgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIHNwZWNpYWwgfCBub2RlLi4uXG4iCittc2dzdHIgIiIKKyJVc286IHVtb3VudCBbLWhWXVxuIgorIiAgICAgICB1bW91bnQgLWEgWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgdGlwb3Nfc2lzdF9hcnFfdmlydF1cbiIKKyIgICAgICAgdW1vdW50IFstZl0gWy1yXSBbLW5dIFstdl0gZXNwZWNpYWwgfCBu8y4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzo0NjgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiTyBzZXRvciAlZCBq4SBlc3ThIGFsb2NhZG9cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJPIHNldG9yICVkIGrhIGVzdOEgYWxvY2Fkb1xuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKKyMsIGZ1enp5Cittc2dpZCAiQ2Fubm90IHVtb3VudCBcIlwiXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXNcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byB1bW91bnQgJXNcbiIKK21zZ3N0ciAiVGVudGFuZG8gZGVzbW9udGFyICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBsb2NhbGl6YXIgJXMgZW0gbXRhYlxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6ICVzIG7jbyBlc3ThIG1vbnRhZG8gKGRlIGFjb3JkbyBjb20gbXRhYikiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGl0IHNlZW1zICVzIGlzIG1vdW50ZWQgbXVsdGlwbGUgdGltZXMiCittc2dzdHIgInVtb3VudDogcGFyZWNlIHF1ZSAlcyBlc3ThIG1vbnRhZG8gbfpsdGlwbGFzIHZlemVzIgorCisjOiBtb3VudC91bW91bnQuYzo1NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgaW4gdGhlIGZzdGFiIChhbmQgeW91IGFyZSBub3Qgcm9vdCkiCittc2dzdHIgInVtb3VudDogJXMgbuNvIGVzdOEgbmEgZnN0YWIgKGUgdm9j6iBu428g6SByb290KSIKKworIzogbW91bnQvdW1vdW50LmM6NTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgbW91bnQgZGlzYWdyZWVzIHdpdGggdGhlIGZzdGFiIgorbXNnc3RyICJ1bW91bnQ6IGEgbW9udGFnZW0gZGUgJXMgbuNvIGVzdOEgZGUgYWNvcmRvIGNvbSBhIGZzdGFiIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBvbmx5ICVzIGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCittc2dzdHIgInVtb3VudDogc29tZW50ZSAlcyBwb2RlIGRlc21vbnRhciAlcyBkZSAlcyIKKworIzogbW91bnQvdW1vdW50LmM6NzAxCittc2dpZCAidW1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgInVtb3VudDogb3BlcmHn428gZXhjbHVzaXZhIGRlIHJvb3QiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MuXG4iCisiXG4iCisiU2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIkdldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiXG4iCisiU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX1JSIChkZWZhdWx0KVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgb3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHNob3cgbWluIGFuZCBtYXggdmFsaWQgcHJpb3JpdGllc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKyIgIC1WIHwgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGdyYXZhciBhIHBhcnRp5+NvIGVtICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgImRlc2NvbmhlY2lkYSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwcmlvcml0eTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbm90IHN1cHBvcnRlZD9cbiIKK21zZ3N0ciAiTkZTIHNvYnJlIFRDUCBu428g6SBzdXBvcnRhZG8uXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMjUKK21zZ2lkICJjdXJyZW50IgorbXNnc3RyICJhdHVhbCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjMzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBncmF2YXIgYSBwYXJ0aefjbyBlbSAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGdyYXZhciBhIHBhcnRp5+NvIGVtICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0MgorIywgZnV6enkKK21zZ2lkICJuZXciCittc2dzdHIgIm5vdmFzICIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBu428gY29uc2VndWl1IGxlciBhIGhvcmEgZGUgL2Rldi90dHkxIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjU3CisjLCBmdXp6eQorbXNnaWQgImlvcHJpb19nZXQgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IGZhbGhvdVxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjc1CisjLCBmdXp6eQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IGZhbGhvdVxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGFicmlyICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgImV4ZWMgZmFsaG91XG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgYmUgcm9vdCB0byBzZXQgdGhlIEN0cmwtQWx0LURlbCBiZWhhdmlvdXIuXG4iCittc2dzdHIgIiIKKyLJIG5lY2Vzc+FyaW8gc2VyIHJvb3QgcGFyYSBjb25maWd1cmFyIG8gY29tcG9ydGFtZW50byBkZSBDdHJsLUFsdC1EZWwuXG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIlVzbzogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjExNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyBpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKyJBcnF1aXZvICVzLCBwYXJhIG8gdmFsb3IgZGUgbGltaWFyIGRlICVsdSwgbyBu+m1lcm8gbeF4aW1vIGRlIGNhcmFjdGVyZXMgZW0gIgorImZpZm8gZXJhIGRlICVkXG4iCisiZSBhIHRheGEgZGUgdHJhbnNmZXLqbmNpYSBt4XhpbWEsIGVtIGNhcmFjdGVyZXMgcG9yIHNlZ3VuZG8sIGVyYSBkZSAlZi5cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkFycXVpdm8gJXMsIHBhcmEgbyB2YWxvciBkZSBsaW1pYXIgZGUgJWx1IGUgdmFsb3IgZGUgdGVtcG8tbGltaXRlIGRlICVsdSwgbyAiCisibvptZXJvIG3heGltbyBkZSBjYXJhY3RlcmVzIGVtIGZpZm8gZXJhIGRlICVkXG4iCisiZSBhIHRheGEgZGUgdHJhbnNmZXLqbmNpYSBt4XhpbWEsIGVtIGNhcmFjdGVyZXMgcG9yIHNlZ3VuZG8sIGVyYSBkZSAlZi5cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGludGVydmFsIHZhbHVlOiAlc1xuIgorbXNnc3RyICJWYWxvciBkZSBpbnRlcnZhbG8gaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZhbG9yIGRlZmluaWRvIGluduFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiVmFsb3IgcGFkcuNvIGluduFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIlZhbG9yIGRlIGRlZmluaefjbyBkZSBob3LhcmlvIGluduFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJWYWxvciBwYWRy428gZGUgaG9y4XJpbyBpbnbhbGlkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstcSBbLWkgaW50ZXJ2YWxdXSAoWy1zIHZhbHVlXXxbLVMgdmFsdWVdKSAoWy10IHZhbHVlXXxbLVQgdmFsdWVdKSAiCisiWy1nfC1HXSBmaWxlIFtmaWxlLi4uXVxuIgorbXNnc3RyICIiCisiVXNvOiAlcyBbLXEgWy1pIGludGVydmFsb11dIChbLXMgdmFsb3JdfFstUyB2YWxvcl0pIChbLXQgdmFsb3JdfFstVCB2YWxvcl0pICIKKyJbLWd8LUddIGFycXVpdm8gW2FycXVpdm8uLi5dXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTAgc3lzLXV0aWxzL2N5dHVuZS5jOjI2OSBzeXMtdXRpbHMvY3l0dW5lLmM6Mjg5CisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBjb25maWd1cmFyICVzIHBhcmEgbyBsaW1pYXIgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRpbWUgdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGRlZmluaXIgJXMgcGFyYSBvIGxpbWlhciBkZSBob3LhcmlvICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjk0IHN5cy11dGlscy9jeXR1bmUuYzozNTEgc3lzLXV0aWxzL2N5dHVuZS5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGhyZXNob2xkIGZvciAlczogJXNcbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBvYnRlciBvIGxpbWlhciBwYXJhICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzAwIHN5cy11dGlscy9jeXR1bmUuYzozNTcgc3lzLXV0aWxzL2N5dHVuZS5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGltZW91dCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgb2J0ZXIgbyB0ZW1wby1saW1pdGUgcGFyYSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIOkgbyBsaW1pYXIgJXMgZSAlbGQg6SBvIHRlbXBvLWxpbWl0ZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGRlZmF1bHQgdGhyZXNob2xkIGFuZCAlbGQgZGVmYXVsdCB0aW1lb3V0XG4iCittc2dzdHIgIiVzOiAlbGQg6SBvIGxpbWlhciAlcyBlICVsZCDpIG8gdGVtcG8tbGltaXRlICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMjcKK21zZ2lkICJDYW4ndCBzZXQgc2lnbmFsIGhhbmRsZXIiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgY29uZmlndXJhciBtYW5pcHVsYWRvciBkZSBzaW5hbCIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAiZ2V0dGltZW9mZGF5IGZhbGhvdSIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjM0NCBzeXMtdXRpbHMvY3l0dW5lLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGlzc3VlIENZR0VUTU9OIG9uICVzOiAlc1xuIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGVtaXRpciBDWUdFVE1PTiBlbSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IGxpbWlhciwgJWx1IHRlbXBvLWxpbWl0ZSwgJWx1IG3heCwgJWx1ICIKKyJhZ29yYVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYywgJWYgc2VuZCAoY2hhci9zZWMpXG4iCittc2dzdHIgIiAgICVmIGludC9zOyAlZiByZWNlYmlkb3MsICVmIGVudmlhZG9zIChjaGFyL3MpXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorIiVzOiAlbHUgaW50cywgJWx1IGNoYXJzOyBmaWZvOiAlbHUgbGltaWFyLCAlbHUgdGVtcG8tbGltaXRlLCAlbHUgbeF4LCAlbHUgIgorImFnb3JhXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgaW50L3M7ICVmIHJlY2ViaWRvcyAoY2hhci9zKVxuIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJVc286ICVzIFstY10gWy1uIG7tdmVsXSBbLXMgdGFtYW5ob19idWZmZXJdXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGZpbGVuYW1lPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIlVzbzogJXMgW29w5/Vlc10gZGlzcG9zaXRpdm8gLi4uXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLWtlZXAtc2l6ZSAgICAgZG9uJ3QgbW9kaWZ5IHRoZSBsZW5ndGggb2YgdGhlIGZpbGVcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCisiIC1sLCAtLWxlbmd0aCA8bnVtPiAgbGVuZ3RoIG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3CisjLCBmdXp6eQorbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgIk76bWVybyBleGNlc3Npdm8gZGUgYXJndW1lbnRvcy5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0OQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGxlbmd0aCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIlZhbG9yIGRlZmluaWRvIGluduFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgb2Zmc2V0IHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiVmFsb3IgZGVmaW5pZG8gaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKKyMsIGZ1enp5Cittc2dpZCAibm8gZmlsZW5hbWUgc3BlY2lmaWVkLiIKK21zZ3N0ciAiTuNvLiBPcOfjbyAtLWRhdGUgZXNwZWNpZmljYWRhXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBmYWxob3VcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlMSRzIFstc3h1bl1bLXcgI10gZmQjXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBmaWxlIFstY10gY29tbWFuZC4uLlxuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZGlyZWN0b3J5IFstY10gY29tbWFuZC4uLlxuIgorIiAgLXMgIC0tc2hhcmVkICAgICBHZXQgYSBzaGFyZWQgbG9ja1xuIgorIiAgLXggIC0tZXhjbHVzaXZlICBHZXQgYW4gZXhjbHVzaXZlIGxvY2tcbiIKKyIgIC11ICAtLXVubG9jayAgICAgUmVtb3ZlIGEgbG9ja1xuIgorIiAgLW4gIC0tbm9uYmxvY2sgICBGYWlsIHJhdGhlciB0aGFuIHdhaXRcbiIKKyIgIC13ICAtLXRpbWVvdXQgICAgV2FpdCBmb3IgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lXG4iCisiICAtbyAgLS1jbG9zZSAgICAgIENsb3NlIGZpbGUgZGVzY3JpcHRvciBiZWZvcmUgcnVubmluZyBjb21tYW5kXG4iCisiICAtYyAgLS1jb21tYW5kICAgIFJ1biBhIHNpbmdsZSBjb21tYW5kIHN0cmluZyB0aHJvdWdoIHRoZSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBEaXNwbGF5IHRoaXMgdGV4dFxuIgorIiAgLVYgIC0tdmVyc2lvbiAgICBEaXNwbGF5IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoxOTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyByZXF1aXJlcyBleGFjdGx5IG9uZSBjb21tYW5kIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIGV4aWdlIHVtIGFyZ3VtZW50b1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBu428gZm9pIHBvc3PtdmVsIGFicmlyICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICJO+m1lcm8gaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjI5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICJvIGZvcmsgZmFsaG91XG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICJVc286ICVzIFtvcOf1ZXNdIGRpc3Bvc2l0aXZvIC4uLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDIKK21zZ2lkICJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJNZW3zcmlhIGNvbXBhcnRpbGhhZGE6IHNobWlkIGRlIHNlZ21lbnRvID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUwCittc2dpZCAiY3JlYXRlIG1lc3NhZ2UgcXVldWUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBxdWV1ZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIm1zcWlkIGRhIGZpbGEgZGUgbWVuc2FnZW5zOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTgKKyMsIGZ1enp5Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgInNlbeFmb3JvcyBhbG9jYWRvczogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZW1hcGhvcmUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZW1pZCBkZSBhcnJheSBkZSBzZW3hZm9yb3M6ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjY0CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWQ6ICVzXG4iCittc2dzdHIgImlkIGluduFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCByZW1vdmVyIGlkICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6OTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRlcHJlY2F0ZWQgdXNhZ2U6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorbXNnc3RyICJVc286ICVzIFtzaG0gfCBtc2cgfCBzZW1dIGlkLi4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duIHJlc291cmNlIHR5cGU6ICVzXG4iCittc2dzdHIgInRpcG8gZGUgcmVjdXJzbyBkZXNjb25oZWNpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNvdXJjZShzKSBkZWxldGVkXG4iCittc2dzdHIgInJlY3Vyc28ocykgZXhjbHXtZG9cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGtleSAoJXMpXG4iCittc2dzdHIgIlRlY2xhIGlsZWdhbCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorIywgZnV6enkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICJtb3VudDogcGVybWlzc+NvIG5lZ2FkYSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA5IHN5cy11dGlscy9pcGNybS5jOjI0OAorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBrZXkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjEyIHN5cy11dGlscy9pcGNybS5jOjI0MworIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAiaWQgaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxNSBzeXMtdXRpbHMvaXBjcm0uYzoyNTMKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKKyMsIGZ1enp5Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGlkIgorbXNnc3RyICJtb3VudDogcGVybWlzc+NvIG5lZ2FkYSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ0CisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgaWQiCittc2dzdHIgImlkIGluduFsaWRvOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQgaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU0Cittc2dpZCAidW5rbm93biBlcnJvciBpbiBpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiVzIGVtICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gYXJndW1lbnQ6ICVzXG4iCittc2dzdHIgIiVzOiBzaW5hbCBkZXNjb25oZWNpZG8gJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2UgOiAlcyAtYXNtcSAtdGNsdXAgXG4iCittc2dzdHIgIlVzbyA6ICVzIC1hc21xIC10Y2x1cCBcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCittc2dzdHIgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIC1oIGZvciBoZWxwLlxuIgorbXNnc3RyICJcdCVzIC1oIHBhcmEgYWp1ZGEuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHlvdSBoYXZlIHJlYWQgYWNjZXNzLlxuIgorbXNnc3RyICIlcyBmb3JuZWNlIGluZm9ybWHn9WVzIHNvYnJlIHJlY3Vyc29zIGRvIGlwYyBwYXJhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisiRXNwZWNpZmljYefjbyBkZSByZWN1cnNvOlxuIgorIlx0LW0gOiBtZW3zcmlhIGNvbXBhcnRpbGhhZGFcbiIKKyJcdC1xIDogbWVuc2FnZW5zXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKyJcdC1zIDogc2Vt4WZvcm9zXG4iCisiXHQtYSA6IHR1ZG8gKHBhZHLjbylcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk91dHB1dCBGb3JtYXQ6XG4iCisiXHQtdCA6IHRpbWVcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JcbiIKK21zZ3N0ciAiIgorIkZvcm1hdG8gZGUgc2HtZGE6XG4iCisiXHQtdCA6IGhvcuFyaW9cbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyaWFkb3JcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LWwgOiBsaW1pdHNcbiIKKyJcdC11IDogc3VtbWFyeVxuIgorbXNnc3RyICIiCisiXHQtbCA6IGxpbWl0ZXNcbiIKKyJcdC11IDogcmVzdW1vXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIKK21zZ3N0ciAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFsaGVzIHNvYnJlIG8gcmVjdXJzbyBpZGVudGlmaWNhZG8gcG9yIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2hhcmVkIG1lbW9yeVxuIgorbXNnc3RyICJvIGtlcm5lbCBu428gZXN04SBjb25maWd1cmFkbyBwYXJhIG1lbfNyaWEgY29tcGFydGlsaGFkYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLSBMaW1pdGVzIGRhIG1lbfNyaWEgY29tcGFydGlsaGFkYSAtXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIHNlZ21lbnRzID0gJWx1XG4iCittc2dzdHIgIm76bWVybyBt4XhpbW8gZGUgc2VnbWVudG9zOiAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJ0YW1hbmhvIG3heGltbyBkbyBzZWdtZW50byAoS2IpOiAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1heCB0b3RhbCBzaGFyZWQgbWVtb3J5IChrYnl0ZXMpID0gJWxsdVxuIgorbXNnc3RyICJtZW3zcmlhIGNvbXBhcnRpbGhhZGEgdG90YWwgbeF4aW1hIChLYik6ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWluIHNlZyBzaXplIChieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAidGFtYW5obyBt7W5pbW8gZG8gc2VnbWVudG8gKGJ5dGVzKTogJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItIFN0YXR1cyBkYSBtZW3zcmlhIGNvbXBhcnRpbGhhZGEgLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJzZWdtZW50cyBhbGxvY2F0ZWQgJWRcbiIKK21zZ3N0ciAic2VnbWVudG9zIGFsb2NhZG9zOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBhbGxvY2F0ZWQgJWxkXG4iCittc2dzdHIgInDhZ2luYXMgYWxvY2FkYXMgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc5CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHJlc2lkZW50ICAlbGRcbiIKK21zZ3N0ciAicOFnaW5hcyByZXNpZGVudGVzOiAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgc3dhcHBlZCAgICVsZFxuIgorbXNnc3RyICJw4WdpbmFzIHBlcm11dGFkYXM6ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJTd2FwIHBlcmZvcm1hbmNlOiAlbGQgYXR0ZW1wdHNcdCAlbGQgc3VjY2Vzc2VzXG4iCittc2dzdHIgIkRlc2VtcGVuaG8gZGUgcGVybXV0YTogJWxkIHRlbnRhdGl2YXNcdCAlbGQgc3VjZXNzb3NcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudCBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiQ3JpYWRvcmVzL2Rvbm9zIGRlIHNlZ21lbnRvcyBkZSBtZW3zcmlhIGNvbXBhcnRpbGhhZGFcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAic2htaWQiCittc2dzdHIgInNobWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAicGVybXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAiY3VpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjZ2lkIgorbXNnc3RyICJjZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAidWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImdpZCIKK21zZ3N0ciAiZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICJIb3LhcmlvcyBkZSBhbmV4Yefjby9kZXN0YWNhbWVudG8vYWx0ZXJh5+NvIGRhIG1lbfNyaWEgY29tcGFydGlsaGFkYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgInByb3ByaWV04XJpbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAiYW5leGFkbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJkZXRhY2hlZCIKK21zZ3N0ciAiZGVzdGFjYWRvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorbXNnaWQgImNoYW5nZWQiCittc2dzdHIgImFsdGVyYWRvIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBDcmVhdG9yL0xhc3Qtb3AgLS0tLS0tLS1cbiIKK21zZ3N0ciAiQ3JpYWRvci/6bHRpbWEgb3AgZGEgbWVt83JpYSBjb21wYXJ0aWxoYWRhXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiY3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJscGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItIFNlZ21lbnRvcyBkYSBtZW3zcmlhIGNvbXBhcnRpbGhhZGEgLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAiY2hhdmUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAiYnl0ZXMiCittc2dzdHIgImJ5dGVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgIm5hdHRjaCIKK21zZ3N0ciAibmF0dGNoIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAic3RhdHVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMyOSBzeXMtdXRpbHMvaXBjcy5jOjMzMSBzeXMtdXRpbHMvaXBjcy5jOjMzMworIzogc3lzLXV0aWxzL2lwY3MuYzo0NDQgc3lzLXV0aWxzL2lwY3MuYzo0NDYgc3lzLXV0aWxzL2lwY3MuYzo1NDUKKyM6IHN5cy11dGlscy9pcGNzLmM6NTQ3IHN5cy11dGlscy9pcGNzLmM6NTQ5IHN5cy11dGlscy9pcGNzLmM6NjAwCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMiBzeXMtdXRpbHMvaXBjcy5jOjYzMCBzeXMtdXRpbHMvaXBjcy5jOjYzMgorIzogc3lzLXV0aWxzL2lwY3MuYzo2MzQgc3lzLXV0aWxzL2lwY3MuYzo2NTcKKyMsIGZ1enp5Cittc2dpZCAiTm90IHNldCIKK21zZ3N0ciAiTuNvIGRlZmluaWRvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAiZGVzdCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjIKK21zZ2lkICJsb2NrZWQiCittc2dzdHIgImJsb3F1ZWFkbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgIm8ga2VybmVsIG7jbyBlc3ThIGNvbmZpZ3VyYWRvIHBhcmEgc2Vt4WZvcm9zXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBMaW1pdGVzIGRlIHNlbeFmb3JvIC0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgIm76bWVybyBt4XhpbW8gZGUgYXJyYXlzOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBwZXIgYXJyYXkgPSAlZFxuIgorbXNnc3RyICJt4XhpbW8gZGUgc2Vt4WZvcm9zIHBvciBhcnJheTogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICJt4XhpbW8gZ2VyYWwgZGUgc2Vt4WZvcm9zIGRvIHNpc3RlbWE6ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBvcHMgcGVyIHNlbW9wIGNhbGwgPSAlZFxuIgorbXNnc3RyICJt4XhpbW8gZGUgb3BzIHBvciBjaGFtYWRhIHNlbW9wOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJzZW1hcGhvcmUgbWF4IHZhbHVlID0gJWRcbiIKK21zZ3N0ciAidmFsb3IgbeF4aW1vIGRlIHNlbeFmb3JvOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLSBTdGF0dXMgZGUgc2Vt4WZvcm8gLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGFycmF5cyA9ICVkXG4iCittc2dzdHIgImFycmF5cyB1c2Fkb3M6ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBzZW1hcGhvcmVzID0gJWRcbiIKK21zZ3N0ciAic2Vt4WZvcm9zIGFsb2NhZG9zOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0gQ3JpYWRvcmVzL2Rvbm9zIGRlIGFycmF5cyBkZSBzZW3hZm9yb3MgLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAic2VtaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiSG9y4XJpb3MgZGUgb3BlcmHn428vYWx0ZXJh5+NvIGRlIG1lbfNyaWEgY29tcGFydGlsaGFkYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3Qtb3AiCittc2dzdHIgIvpsdGltYS1vcCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgIvp0aW1hLWFsdGVyYefjbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEFycmF5cyBkZSBzZW3hZm9yb3MgLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAibnNlbXMiCittc2dzdHIgIm5zZW1zIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBtZXNzYWdlIHF1ZXVlc1xuIgorbXNnc3RyICJvIGtlcm5lbCBu428gZXN04SBjb25maWd1cmFkbyBwYXJhIHNlbeFmb3Jvc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLSBNZW5zYWdlbnM6IGxpbWl0ZXMgLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggcXVldWVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAibvptZXJvIG3heGltbyBnZXJhbCBkZSBmaWxhcyBubyBzaXN0ZW1hOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2l6ZSBvZiBtZXNzYWdlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJ0YW1hbmhvIG3heGltbyBkYSBtZW5zYWdlbSAoYnl0ZXMpOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJkZWZhdWx0IG1heCBzaXplIG9mIHF1ZXVlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJ0YW1hbmhvIG3heGltbyBwYWRy428gZGEgZmlsYSAoYnl0ZXMpOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLSBNZW5zYWdlbnM6IHN0YXR1cyAtLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk4CisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBxdWV1ZXMgPSAlZFxuIgorbXNnc3RyICJmaWxhcyBhbG9jYWRhczogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBoZWFkZXJzID0gJWRcbiIKK21zZ3N0ciAiY2FiZedhbGhvcyB1c2Fkb3M6ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIgorbXNnc3RyICJlc3Bh528gdXNhZG86ICVkIGJ5dGVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gRmlsYXMgZGUgbWVuc2FnZW5zOiBjcmlhZG9yZXMvZG9ub3MgLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUxMiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorIzogc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJtc3FpZCIKK21zZ3N0ciAibXNxaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBTZW5kL1JlY3YvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIkhvcuFyaW9zIGRlIGVudmlvL3JlY2Vw5+NvL2FsdGVyYefjbyBkZSBmaWxhcyBkZSBtZW5zYWdlbnNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJzZW5kIgorbXNnc3RyICJlbnZpbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJyZWN2IgorbXNnc3RyICJyZWNlYmltZW50byIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJjaGFuZ2UiCittc2dzdHIgImFsdGVyYefjbyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFBJRHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tIFBJRHMgZGUgZmlsYXMgZGUgbWVuc2FnZW5zIC0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICJsc3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAibHJwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLSBGaWxhcyBkZSBtZW5zYWdlbnMgLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAidXNlZC1ieXRlcyIKK21zZ3N0ciAiYnl0ZXMgdXNhZG9zIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgIm1lc3NhZ2VzIgorbXNnc3RyICJtZW5zYWdlbnMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTg5CisjLCBmdXp6eQorbXNnaWQgInNobWN0bCBmYWlsZWQiCittc2dzdHIgImZzeW5jIGZhbGhvdSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiTWVt83JpYSBjb21wYXJ0aWxoYWRhOiBzaG1pZCBkZSBzZWdtZW50byA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJieXRlcz0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKK21zZ3N0ciAiYnl0ZXM9JWRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImF0dF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImF0dF90aW1lPSVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGV0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiZGV0X3RpbWU9JXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAzIHN5cy11dGlscy9pcGNzLmM6NjMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJjaGFuZ2VfdGltZT0lcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTUKKyMsIGZ1enp5Cittc2dpZCAibXNnY3RsIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMgZmFsaG91IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisibXNxaWQgZGEgZmlsYSBkZSBtZW5zYWdlbnM6ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRtb2RlPSUjb1xuIgorbXNnc3RyICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICJjYnl0ZXM9JWxkXHRxYnl0ZXM9JWxkXHRxbnVtPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAic2VuZF90aW1lPSVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmN2X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAicmN2X3RpbWU9JXMiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjQ4IHN5cy11dGlscy9pcGNzLmM6NjcwCisjLCBmdXp6eQorbXNnaWQgInNlbWN0bCBmYWlsZWQiCittc2dzdHIgImJ1c2NhIGZhbGhvdSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisic2VtaWQgZGUgYXJyYXkgZGUgc2Vt4WZvcm9zOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJuc2VtcyA9ICVsZFxuIgorbXNnc3RyICJuc2VtcyA9ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJvdGltZSA9ICVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJjdGltZSA9ICVzIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAic2VtbnVtIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInZhbHVlIgorbXNnc3RyICJ2YWxvciIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJuY291bnQiCittc2dzdHIgIm5jb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ6Y291bnQiCittc2dzdHIgInpjb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJwaWQiCittc2dzdHIgInBpZCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjkxCittc2dpZCAiIgorIlxuIgorIktub3duIDxsZGlzYz4gbmFtZXM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHNwZWVkOiAlcyIKK21zZ3N0ciAiaWQgaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGRhdHRhY2ggZnJvbSAlc1xuIgorbXNnc3RyICIlcyBkZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxODQgdGV4dC11dGlscy90YWlsZi5jOjIwNgorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAiaWQgaW524WxpZG86ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBsaW5lIGRpc2NpcGxpbmU6ICVzIgorbXNnc3RyICJpZCBpbnbhbGlkbzogJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiJXMgbuNvIOkgdW0gZGlzcG9zaXRpdm8gZGUgYmxvY29zIGVzcGVjaWFsIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgb2J0ZXIgbyB0YW1hbmhvIGRlICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlZWQgJWQgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIG9idGVyIG8gdGFtYW5obyBkZSAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjUxCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCBzZXQgbGluZSBkaXNjaXBsaW5lIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIHJlYWxpemFyIGJ1c2NhIG5hIHVuaWRhZGUgZGUgZGlzY28iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworIywgZnV6enkKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIG9idGVyIG8gdGFtYW5obyBkZSAlcyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQKKyMsIGZ1enp5Cittc2dpZCAibm9uZSIKK21zZ3N0ciAiQ29uY2x17WRvIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NQorbXNnaWQgInBhcmEiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjYKK21zZ2lkICJmdWxsIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjEzNyBzeXMtdXRpbHMvbHNjcHUuYzoxNjAgc3lzLXV0aWxzL2xzY3B1LmM6NDU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgIiwgZXJybyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgImVycm8gbmEgbGVpdHVyYSBkZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgIkEgYWJlcnR1cmEgZGUgJXMgZmFsaG91IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoyNjcKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHVuYW1lIGZhaWxlZCIKK21zZ3N0ciAiRXJybyBubyBmZWNoYW1lbnRvIGRlICVzXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorIywgZnV6enkKK21zZ2lkICJlcnJvcjogbWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jIGZhbGhvdSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTIxCittc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzYWJsZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNgorbXNnaWQgIkNvcmUocykgcGVyIHNvY2tldDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMxCittc2dpZCAiTlVNQSBub2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzMKK21zZ2lkICJWZW5kb3IgSUQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzkKK21zZ2lkICJTdGVwcGluZzoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQxCittc2dpZCAiQ1BVIE1IejoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorIywgZnV6enkKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIlNpdHVh5+NvIGFudGlnYTpcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1MAorbXNnaWQgIlZpcnR1YWxpemF0aW9uIHR5cGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjYWNoZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbl1cbiIKK21zZ3N0ciAiVXNvOiAlcyBbb3Dn9WVzXSBkaXNwb3NpdGl2byAuLi5cbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjcxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgImVycm8gYW8gYWx0ZXJhciBvIG1vZG8gZGUgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzcKKyMsIGZ1enp5Cittc2dpZCAidXNhZ2U6IHJkZXYgWyAtcnYgXSBbIC1vIE9GRlNFVCBdIFsgSU1BR0UgWyBWQUxVRSBbIE9GRlNFVCBdIF0gXSIKK21zZ3N0ciAiIgorIlVzbzogcmRldiBbIC1yc3YgXSBbIC1vIERFU0xPQ0FNRU5UTyBdIFsgSU1BR0VNIFsgVkFMT1IgWyBERVNMT0NBTUVOVE9dIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAgKG91IHJkZXYgL2xpbnV4LCBldGMuKSBleGliZSBvIGRpc3Bvc2l0aXZvIFJBSVogYXR1YWwiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIGRlZmluZSBhIFJBSVogY29tbyAvZGV2L2hkYTIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODAKK21zZ2lkICIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBST09URkxBR1MgKHJlYWRvbmx5IHN0YXR1cykiCittc2dzdHIgIiIKKyIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgZGVmaW5lIFJPT1RGTEFHUyAoc3RhdHVzIGRlIHNvbWVudGUgIgorImxlaXR1cmEpIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgxCittc2dpZCAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIHNldCB0aGUgUkFNRElTSyBzaXplIgorbXNnc3RyICIiCisiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIGRlZmluZSBvIHRhbWFuaG8gZG8gUkFNRElTSyAoZGlzY28gZGUgUkFNKSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiIKKyIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAgZGVmaW5lIG8gVklERU9NT0RFIChtb2RvIGRlIHbtZGVvKSBkZSAiCisiaW5pY2lhbGl6YefjbyIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2EgbyBkZXNsb2NhbWVudG8gZGUgYnl0ZXMgTiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBvIG1lc21vIHF1ZSByZGV2IC1SIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIG8gbWVzbW8gcXVlIHJkZXYgLXIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODYKK21zZ2lkICIgIHZpZG1vZGUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC12IgorbXNnc3RyICIgIHZpZG1vZGUgLi4uICAgICAgICAgICAgICAgICAgICAgbyBtZXNtbyBxdWUgcmRldiAtdiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisiTm90YTogb3MgbW9kb3MgZGUgdu1kZW8gc+NvOiAtMz1Bc2ssIC0yPUV4dGVuZGVkLCAtMT1Ob3JtYWxWZ2EsIDE9a2V5MSwgIgorIjI9a2V5MiwuLi4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODgKK21zZ2lkICIgICAgICB1c2UgLVIgMSB0byBtb3VudCByb290IHJlYWRvbmx5LCAtUiAwIGZvciByZWFkL3dyaXRlLiIKK21zZ3N0ciAiIgorIiAgICAgIHVzZSAtUiAxIHBhcmEgbW9udGFyIGEgcmFpeiBzb21lbnRlIHBhcmEgbGVpdHVyYSwgLVIgMCBmb3IgbGVpdHVyYS8iCisiZ3JhdmHn428uIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjI0NQorbXNnaWQgIm1pc3NpbmcgY29tbWEiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NzIgdGV4dC11dGlscy9tb3JlLmM6Nzk4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICJtZW3zcmlhIGluc3VmaWNpZW50ZT9cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiBcIiVzIFtvcHRpb25zXVxuIgorIlx0IC1tIDxtYXBmaWxlPiAgKGRlZmF1bHRzOiBcIiVzXCIgYW5kXG4iCisiXHRcdFx0XHQgIFwiJXNcIilcbiIKKyJcdCAtcCA8cHJvLWZpbGU+IChkZWZhdWx0OiBcIiVzXCIpXG4iCisiXHQgLU0gPG11bHQ+ICAgICBzZXQgdGhlIHByb2ZpbGluZyBtdWx0aXBsaWVyIHRvIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICAgcHJpbnQgb25seSBpbmZvIGFib3V0IHRoZSBzYW1wbGluZyBzdGVwXG4iCisiXHQgLXYgICAgICAgICAgICBwcmludCB2ZXJib3NlIGRhdGFcbiIKKyJcdCAtYSAgICAgICAgICAgIHByaW50IGFsbCBzeW1ib2xzLCBldmVuIGlmIGNvdW50IGlzIDBcbiIKKyJcdCAtYiAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgaGlzdG9ncmFtLWJpbiBjb3VudHNcbiIKKyJcdCAtcyAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgY291bnRlcnMgd2l0aGluIGZ1bmN0aW9uc1xuIgorIlx0IC1yICAgICAgICAgICAgcmVzZXQgYWxsIHRoZSBjb3VudGVycyAocm9vdCBvbmx5KVxuIgorIlx0IC1uICAgICAgICAgICAgZGlzYWJsZSBieXRlIG9yZGVyIGF1dG8tZGV0ZWN0aW9uXG4iCisiXHQgLVYgICAgICAgICAgICBwcmludCB2ZXJzaW9uIGFuZCBleGl0XG4iCittc2dzdHIgIiIKKyIlczogVXNvOiBcIiVzIFtvcOf1ZXNdXG4iCisiXHQgLW0gPGFycV9tYXBhPiAgKHBhZHLjbyA9IFwiJXNcIilcbiIKKyJcdCAtcCA8YXJxX3Bybz4gKHBhZHLjbyA9IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIGNvbmZpZ3VyYSBvIHBlcmZpbCBkZSBtdWx0aXBsaWNh5+NvIHBhcmEgPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBtb3N0cmEgc29tZW50ZSBpbmZvcm1h5/VlcyBzb2JyZSBvIHBhc3NvIGRlIGFtb3N0cmFnZW0uXG4iCisiXHQgLXYgICAgICAgICAgICBtb3N0cmEgZGFkb3MgZGV0YWxoYWRvcy5cbiIKKyJcdCAtYSAgICAgICAgICAgIG1vc3RyYSB0b2RvcyBvcyBz7W1ib2xvcywgbWVzbW8gc2UgYSBjb250YWdlbSBmb3IgMC5cbiIKKyJcdCAtciAgICAgICAgICAgIHJlaW5pY2lhbGl6YSB0b2RvcyBvcyBjb250YWRvcmVzIChzb21lbnRlIHJvb3QpXG4iCisiXHQgLVYgICAgICAgICAgICBtb3N0cmEgYSB2ZXJz428gZSBzYWlcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZWFkcHJvZmlsZTogZXJyb3Igd3JpdGluZyAlczogJXNcbiIKK21zZ3N0ciAibW91bnQ6IGVycm8gYW8gZ3JhdmFyICVzOiAlcyIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuIFVzZSAtbiB0byBmb3JjZSBuYXRpdmUgYnl0ZSBvcmRlci5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiUGFzc28gZGUgYW1vc3RyYWdlbTogJWlcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzA1IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMoJWkpOiB3cm9uZyBtYXAgbGluZVxuIgorbXNnc3RyICIlczogJXMoJWkpOiBsaW5oYSBkZSBtYXBhIGluY29ycmV0YVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIgorbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCBsb2NhbGl6YXIgXCJfc3RleHRcIiBlbSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjQxMgorbXNnaWQgInRvdGFsIgorbXNnc3RyICJ0b3RhbCIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBkZSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiB1c3XhcmlvIGRlc2NvbmhlY2lkb1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTM0CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiB2YWxvciBpbnbhbGlkb1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTUyIHN5cy11dGlscy9yZW5pY2UuYzoxNjQKK21zZ2lkICJnZXRwcmlvcml0eSIKK21zZ3N0ciAiZ2V0cHJpb3JpdHkiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTcKK21zZ2lkICJzZXRwcmlvcml0eSIKK21zZ3N0ciAic2V0cHJpb3JpdHkiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQ6IG9sZCBwcmlvcml0eSAlZCwgbmV3IHByaW9yaXR5ICVkXG4iCittc2dzdHIgIiVkOiBwcmlvcmlkYWRlIGFudGlnYSA9ICVkOyBwcmlvcmlkYWRlIG5vdmEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgW29wdGlvbnNdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGRldmljZT4gICAgc2VsZWN0IHJ0YyBkZXZpY2UgKHJ0YzB8cnRjMXwuLi4pXG4iCisiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIHVzZXMgbG9jYWwgdGltZXpvbmVcbiIKKyIgICAgLW0gfCAtLW1vZGUgICAgICAgICAgICAgICBzdGFuZGJ5fG1lbXwuLi4gc2xlZXAgbW9kZVxuIgorIiAgICAtcyB8IC0tc2Vjb25kcyA8c2Vjb25kcz4gIHNlY29uZHMgdG8gc2xlZXBcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB0aW1lIHRvIHdha2VcbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBSVEMgdXNlcyBVVENcbiIKKyIgICAgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICB2ZXJib3NlIG1lc3NhZ2VzXG4iCisiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgc2hvdyB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDIKKyMsIGZ1enp5Cittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAibGVpdHVyYS9ncmF2YefjbyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDcKK21zZ2lkICJyZWFkIHN5c3RlbSB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTY1Cittc2dpZCAiY29udmVydCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyNAorbXNnaWQgInNldCBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjgKK21zZ2lkICJlbmFibGUgcnRjIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjMyCittc2dpZCAic2V0IHJ0YyB3YWtlIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5yZWNvZ25pemVkIHN1c3BlbmQgc3RhdGUgJyVzJ1xuIgorbXNnc3RyICIgJXM6IHBhcnRp5+NvIG7jbyByZWNvbmhlY2lkYVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICJUZWNsYSBpbGVnYWwiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCB0aW1lX3QgdmFsdWUgJXNcbiIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB2ZXJzaW9uICVzXG4iCittc2dzdHIgIiVzIHZlcnPjbyAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAiVXNhbmRvICVzLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgbG9jYWwgdGltZS5cbiIKK21zZ3N0ciAiVXNhbmRvICVzLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3CisjLCBmdXp6eQorbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jIGZhbGhvdSIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgZW5hYmxlZCBmb3Igd2FrZXVwIGV2ZW50c1xuIgorbXNnc3RyICIlczogJXMgbuNvIOkgdW0gZGlzcG9zaXRpdm8gbHAuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGltZSBkb2Vzbid0IGdvIGJhY2t3YXJkIHRvICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWtldXAgZnJvbSBcIiVzXCIgdXNpbmcgJXMgYXQgJXNcbiIKK21zZ3N0ciAiTWVuc2FnZW0gZGUgJXNAJXMgZW0gJXMgZW0gJXMgLi4uIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIHJlbm9tZWFyICVzIHBhcmEgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDk2CisjLCBmdXp6eQorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICIsIHByb250byIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo1MDUKK21zZ2lkICJkaXNhYmxlIHJ0YyBhbGFybSBpbnRlcnJ1cHQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzo1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hpbmcgb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgc2V0YXJjaCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjE0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiVGVudGUgYGdldG9wdCAtLWhlbHAnIHBhcmEgbWFpb3JlcyBpbmZvcm1h5/Vlcy5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyMTUgc3lzLXV0aWxzL3NldGFyY2guYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIgJXM6IHBhcnRp5+NvIG7jbyByZWNvbmhlY2lkYVxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI0OSBzeXMtdXRpbHMvc2V0YXJjaC5jOjI1NgorIywgZnV6enkKK21zZ2lkICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK21zZ3N0ciAiTvptZXJvIGV4Y2Vzc2l2byBkZSBhcmd1bWVudG9zLlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBncmF2YXIgYSBwYXJ0aefjbyBlbSAlc1xuIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgIlVzbzogJXMgcHJvZ3JhbWEgW2FyZyAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisiVXNvOiAlcyA8ZGlzcG9zaXRpdm8+IFsgLWkgPElSUT4gfCAtdCA8SE9SQT4gfCAtYyA8Q0hBUlM+IHwgLXcgPEVTUEVSQT4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo5MQorbXNnaWQgIm1hbGxvYyBlcnJvciIKK21zZ3N0ciAiZXJybyBkZSBtYWxsb2MiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIlczogdmFsb3IgaW524WxpZG9cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIKK21zZ3N0ciAiJXM6ICVzIG7jbyDpIHVtIGRpc3Bvc2l0aXZvIGxwLlxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN0YXR1cyBpcyAlZCIKK21zZ3N0ciAibyBzdGF0dXMgZGUgJXMg6SAlZCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiwgb2N1cGFkbyIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHJlYWR5IgorbXNnc3RyICIsIHByb250byIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG91dCBvZiBwYXBlciIKK21zZ3N0ciAiLCBzZW0gcGFwZWwiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvbi1saW5lIgorbXNnc3RyICIsIG9uLWxpbmUiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCBlcnJvIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6Mjg1Cittc2dpZCAiTFBHRVRJUlEgZXJyb3IiCittc2dzdHIgImVycm8gTFBHRVRJUlEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgSVJRICVkXG4iCittc2dzdHIgIiVzIHVzYW5kbyBJUlEgJWRcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBwb2xsaW5nXG4iCittc2dzdHIgIiVzIHVzYW5kbyBjb25zdWx0YSAocG9sbGluZylcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgIlVzbzogJXMgcHJvZ3JhbWEgW2FyZyAuLi5dXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjAKK21zZ2lkICIiCisiUnVuIHByb2dyYW0gd2l0aCBzb21lIG5hbWVzcGFjZXMgdW5zaGFyZWQgZnJvbSBwYXJlbnRcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgdW5zaGFyZSBtb3VudHMgbmFtZXNwYWNlXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIFVUUyBuYW1lc3BhY2UgKGhvc3RuYW1lIGV0YylcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorIiAgLW4sIC0tbmV0ICAgICAgICAgdW5zaGFyZSBuZXR3b3JrIG5hbWVzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdW5zaGFyZSgxKS5cbiIKK21zZ3N0ciAiQXMgaW5mb3JtYef1ZXMgZGUgZmluZ2VyIGZvcmFtIGFsdGVyYWRhcy5cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTQKKyMsIGZ1enp5Cittc2dpZCAidW5zaGFyZSBmYWlsZWQiCittc2dzdHIgImJ1c2NhIGZhbGhvdSIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJleGVjIGZhbGhvdVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IGJhZCAtbCBhcmd1bWVudCAlcy5cbiIKK21zZ3N0ciAiY29sOiBhcmd1bWVudG8gaW524WxpZG8gcGFyYSAtbCAlcy5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKK21zZ3N0ciAiVXNvOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmhhXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdyaXRlIGVycm9yLlxuIgorbXNnc3RyICJjb2w6IGVycm8gZGUgZ3JhdmHn428uXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd2FybmluZzogY2FuJ3QgYmFjayB1cCAlcy5cbiIKK21zZ3N0ciAiY29sOiBhdmlzbzogbuNvIOkgcG9zc+12ZWwgZmF6ZXIgYmFja3VwIGRlICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgInBhc3QgZmlyc3QgbGluZSIKK21zZ3N0ciAiYWzpbSBkYSBwcmltZWlyYSBsaW5oYSIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0gbGluaGEgauEgZGVzY2FycmVnYWRhIgorCisjOiB0ZXh0LXV0aWxzL2NvbGNydC5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC0gXSBbIC0yIF0gWyBmaWxlIC4uLiBdXG4iCittc2dzdHIgIlVzbzogJXMgWyAtIF0gWyAtMiBdIFsgYXJxdWl2byAuLi4gXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgImxpbmhhIGxvbmdhIGRlbWFpcyIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzozNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbHVtbiBbLXR4XSBbLWMgY29sdW1uc10gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJVc286IGNvbHVtbiBbLXR4XSBbLWMgY29sdW5hc10gW2FycXVpdm8gLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBsZW5ndGggdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IHZhbG9yIGRlIGNvbXByaW1lbnRvIGluY29ycmV0by5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgc2tpcCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdmFsb3IgcGFyYSBwdWxhciBpbmNvcnJldG8uXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6MTMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbGVdIFstbiBsZW5ndGhdIFstcyBza2lwXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKyJoZXhkdW1wOiBbLWJjZG92eF0gWy1lIGZtdF0gWy1mIGFycV9mbXRdIFstbiBjb21wcl0gWy1zIHB1bGFyXSAiCisiW2FycXVpdm8gLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSBuYW1lMSBuYW1lMiAuLi5cbiIKK21zZ3N0ciAiVXNvOiAlcyBbLWRmbHBjc3VdIFsrbvptZXJvX2RhX2xpbmhhIHwgKy9wYWRy429dIG5vbWUxIG5vbWUyIC4uLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyOTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBpbml0aWFsaXplIGxpbmUgYnVmZmVyXG4iCittc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgYWxvY2FyIGJ1ZmZlci5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBvcHRpb24gXCItJWNcIlxuIgorbXNnc3RyICIlczogc2luYWwgZGVzY29uaGVjaWRvICVzXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjUxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqICVzOiBkaXJlY3RvcnkgKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmV083JpbyAqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKioqKioqKiAlczogTm90IGEgdGV4dCBmaWxlICoqKioqKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKioqKioqKiAlczogbuNvIOkgdW0gYXJxdWl2byBkZSB0ZXh0byAqKioqKioqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo2NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1VzZSBxIG9yIFEgdG8gcXVpdF0iCittc2dzdHIgIltVc2UgcSBvdSBRIHBhcmEgc2Fpcl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICItLU1vcmUtLSIKK21zZ3N0ciAiLS1NYWlzLS0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICIoTmV4dCBmaWxlOiAlcykiCittc2dzdHIgIihQcvN4aW1vIGFycXVpdm86ICVzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyBzcGFjZSB0byBjb250aW51ZSwgJ3EnIHRvIHF1aXQuXSIKK21zZ3N0ciAiW1ByZXNzaW9uZSBlc3Bh528gcGFyYSBjb250aW51YXIsICdxJyBwYXJhIHNhaXIuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLi4uYmFjayAlZCBwYWdlcyIKK21zZ3N0ciAiLi4udm9sdGFyICVkIHDhZ2luYShzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwOAorIywgZnV6enkKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiLi4udm9sdGFyICVkIHDhZ2luYShzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorIywgZnV6enkKK21zZ2lkICIuLi5za2lwcGluZyBvbmUgbGluZSIKK21zZ3N0ciAiLi4uIHB1bGFuZG8gJWQgbGluaGEocykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICIuLi4gcHVsYW5kbyAlZCBsaW5oYShzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI5MAorbXNnaWQgIiIKKyJcbiIKKyIqKipCYWNrKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKipWb2x0YXIqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMyOAorbXNnaWQgIiIKKyJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgRGVmYXVsdHMgaW4gIgorImJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMzUKK21zZ2lkICIiCisiPHNwYWNlPiAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFsxXSpcbiIKKyJkIG9yIGN0cmwtRCAgICAgICAgICAgICBTY3JvbGwgayBsaW5lcyBbY3VycmVudCBzY3JvbGwgc2l6ZSwgaW5pdGlhbGx5IDExXSpcbiIKKyJxIG9yIFEgb3IgPGludGVycnVwdD4gICBFeGl0IGZyb20gbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGxpbmVzIG9mIHRleHQgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorImIgb3IgY3RybC1CICAgICAgICAgICAgIFNraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGxpbmUgbnVtYmVyXG4iCisiLzxyZWd1bGFyIGV4cHJlc3Npb24+ICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiBsYXN0IHIuZSBbMV1cbiIKKyIhPGNtZD4gb3IgOiE8Y21kPiAgICAgICBFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBhdCBjdXJyZW50IGxpbmVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRyYXcgc2NyZWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIG5leHQgZmlsZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggcHJldmlvdXMgZmlsZSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCBwcmV2aW91cyBjb21tYW5kXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQwNCB0ZXh0LXV0aWxzL21vcmUuYzoxNDA5CisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyAnaCcgZm9yIGluc3RydWN0aW9ucy5dIgorbXNnc3RyICJbUHJlc3Npb25lICdoJyBwYXJhIG9idGVyIGluc3Rydef1ZXMuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0MworIywgYy1mb3JtYXQKK21zZ2lkICJcIiVzXCIgbGluZSAlZCIKK21zZ3N0ciAiXCIlc1wiIGxpbmhhICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbTuNvIOkgdW0gYXJxdWl2b10gbGluaGEgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiAgRXN0b3Vyb1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTc2Cittc2dpZCAiLi4uc2tpcHBpbmdcbiIKK21zZ3N0ciAiLi4ucHVsYW5kb1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICJFeHByZXNz428gcmVndWxhciBtYWxmb3JtYWRhIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjEzCittc2dpZCAiIgorIlxuIgorIlBhdHRlcm4gbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQYWRy428gbuNvIGVuY29udHJhZG9cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxNiB0ZXh0LXV0aWxzL3BnLmM6MTEyNyB0ZXh0LXV0aWxzL3BnLmM6MTI3OAorbXNnaWQgIlBhdHRlcm4gbm90IGZvdW5kIgorbXNnc3RyICJQYWRy428gbuNvIGVuY29udHJhZG8iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2NzcKK21zZ2lkICJjYW4ndCBmb3JrXG4iCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgcmVhbGl6YXIgZm9ya1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzE2Cittc2dpZCAiIgorIlxuIgorIi4uLlNraXBwaW5nICIKK21zZ3N0ciAiIgorIlxuIgorIi4uLlB1bGFuZG8gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIwCisjLCBmdXp6eQorbXNnaWQgIi4uLlNraXBwaW5nIHRvIGZpbGUgIgorbXNnc3RyICIuLi5QdWxhbmRvICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMgorIywgZnV6enkKK21zZ2lkICIuLi5Ta2lwcGluZyBiYWNrIHRvIGZpbGUgIgorbXNnc3RyICJkZSB2b2x0YSBhbyBhcnF1aXZvIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiTGluaGEgbG9uZ2EgZGVtYWlzIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDQzCittc2dpZCAiTm8gcHJldmlvdXMgY29tbWFuZCB0byBzdWJzdGl0dXRlIGZvciIKK21zZ3N0ciAiTuNvIGjhIGNvbWFuZG8gYW50ZXJpb3IgcGFyYSBzZXIgc3Vic3RpdHXtZG8iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IG9kKDEpIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGhleGR1bXAoMSkuXG4iCittc2dzdHIgIm9kOiBvZCgxKSBmb2kgZGVwcmVjaWFkbyBwYXJhIGhleGR1bXAoMSkuXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IGhleGR1bXAoMSkgY29tcGF0aWJpbGl0eSBkb2Vzbid0IHN1cHBvcnQgdGhlIC0lYyBvcHRpb24lc1xuIgorbXNnc3RyICJvZDogYSBjb21wYXRpYmlsaWRhZGUgY29tIGhleGR1bXAoMSkgbuNvIHN1cG9ydGEgYSBvcOfjbyAtJWMlc1xuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTM0Cittc2dpZCAiOyBzZWUgc3RyaW5ncygxKS4iCittc2dzdHIgIjsgY29uc3VsdGUgc3RyaW5ncygxKS4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBu428gZm9pIHBvc3PtdmVsIGxlciAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgImhleGR1bXA6IGxpbmhhIGxvbmdhIGRlbWFpcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBjb250YWdlbSBkZSBieXRlcyBjb20gbfpsdGlwbG9zIGNhcmFjdGVyZXMgZGUgY29udmVyc+NvLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBieXRlIGNvdW50IGZvciBjb252ZXJzaW9uIGNoYXJhY3RlciAlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogY29udGFnZW0gZGUgYnl0ZXMgaW524WxpZGEgcGFyYSBjYXJhY3RlcmUgZGUgY29udmVyc+NvICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgImhleGR1bXA6ICUlIGV4aWdlIHVtYSBwcmVjaXPjbyBvdSB1bWEgY29udGFnZW0gZGUgYnl0ZXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGZvcm1hdCB7JXN9XG4iCittc2dzdHIgImhleGR1bXA6IGZvcm1hdG8gaW524WxpZG97JXN9XG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iCittc2dzdHIgImhleGR1bXA6IGNhcmFjdGVyZSBkZSBjb252ZXJz428gaW524WxpZG8gJSUlcy5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NQorbXNnaWQgIiIKKyJBbGwgcmlnaHRzIHJlc2VydmVkLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyIgIGggICAgICAgICAgICAgICAgICAgICAgIHRoaXMgc2NyZWVuXG4iCisiICBxIG9yIFEgICAgICAgICAgICAgICAgICBxdWl0IHByb2dyYW1cbiIKKyIgIDxuZXdsaW5lPiAgICAgICAgICAgICAgIG5leHQgcGFnZVxuIgorIiAgZiAgICAgICAgICAgICAgICAgICAgICAgc2tpcCBhIHBhZ2UgZm9yd2FyZFxuIgorIiAgZCBvciBeRCAgICAgICAgICAgICAgICAgbmV4dCBoYWxmcGFnZVxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBsaW5lXG4iCisiICAkICAgICAgICAgICAgICAgICAgICAgICBsYXN0IHBhZ2VcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIHNlYXJjaCBmb3J3YXJkIGZvciByZWdleFxuIgorIiAgP3JlZ2V4PyBvciBecmVnZXheICAgICAgc2VhcmNoIGJhY2t3YXJkIGZvciByZWdleFxuIgorIiAgLiBvciBeTCAgICAgICAgICAgICAgICAgcmVkcmF3IHNjcmVlblxuIgorIiAgdyBvciB6ICAgICAgICAgICAgICAgICAgc2V0IHBhZ2Ugc2l6ZSBhbmQgZ28gdG8gbmV4dCBwYWdlXG4iCisiICBzIGZpbGVuYW1lICAgICAgICAgICAgICBzYXZlIGN1cnJlbnQgZmlsZSB0byBmaWxlbmFtZVxuIgorIiAgIWNvbW1hbmQgICAgICAgICAgICAgICAgc2hlbGwgZXNjYXBlXG4iCisiICBwICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBwcmV2aW91cyBmaWxlXG4iCisiICBuICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBuZXh0IGZpbGVcbiIKKyJcbiIKKyJNYW55IGNvbW1hbmRzIGFjY2VwdCBwcmVjZWRpbmcgbnVtYmVycywgZm9yIGV4YW1wbGU6XG4iCisiKzE8bmV3bGluZT4gKG5leHQgcGFnZSk7IC0xPG5ld2xpbmU+IChwcmV2aW91cyBwYWdlKTsgMTxuZXdsaW5lPiAoZmlyc3QgIgorInBhZ2UpLlxuIgorIlxuIgorIlNlZSBwZygxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjIyMworIywgZnV6enkKK21zZ2lkICJPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIk1lbfNyaWEgaW5zdWZpY2llbnRlIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6ICVzIFstbnVtYmVyXSBbLXAgc3RyaW5nXSBbLWNlZm5yc10gWytsaW5lXSBbKy9wYXR0ZXJuL10gW2ZpbGVzXVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiYSBvcOfjbyBgJXMnIGV4aWdlIHVtIGFyZ3VtZW50b1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJXNcbiIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MAorIywgZnV6enkKK21zZ2lkICIuLi5za2lwcGluZyBmb3J3YXJkXG4iCittc2dzdHIgIi4uLnB1bGFuZG9cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MgorIywgZnV6enkKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIuLi5wdWxhbmRvXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTQKKyMsIGZ1enp5Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICIoUHLzeGltbyBhcnF1aXZvOiAlcykiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTgKKyMsIGZ1enp5Cittc2dpZCAiTm8gcHJldmlvdXMgZmlsZSIKK21zZ3N0ciAiTmVuaHVtYSBwYXJ0aefjbyBkZWZpbmlkYVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IGVycm8gZGUgbGVpdHVyYSBlbSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmV4cGVjdGVkIEVPRiBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjk0MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogZXJybyBkZSBwcm9jdXJhIGVtICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCBsZXIgYXJxdWl2byB0ZW1wb3LhcmlvLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTA0NCB0ZXh0LXV0aWxzL3BnLmM6MTIxOSB0ZXh0LXV0aWxzL3BnLmM6MTI0NgorIywgZnV6enkKK21zZ2lkICJSRSBlcnJvcjogIgorbXNnc3RyICIsIGVycm8iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMjcgdGV4dC11dGlscy9wZy5jOjEyNTQKK21zZ2lkICJObyByZW1lbWJlcmVkIHNlYXJjaCBzdHJpbmciCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjEzMTAKKyMsIGZ1enp5Cittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICJO428gZm9pIHBvc3PtdmVsIGFicmlyICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzU4CisjLCBmdXp6eQorbXNnaWQgInNhdmVkIgorbXNnc3RyICJlbnZpbyIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKKyMsIGZ1enp5Cittc2dpZCAiZm9yaygpIGZhaWxlZCwgdHJ5IGFnYWluIGxhdGVyXG4iCittc2dzdHIgIkEgc2VuaGEgKk7DTyogZm9pIGFsdGVyYWRhLiBUZW50ZSBub3ZhbWVudGUgbWFpcyB0YXJkZS5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKKyMsIGZ1enp5Cittc2dpZCAiKE5leHQgZmlsZTogIgorbXNnc3RyICIoUHLzeGltbyBhcnF1aXZvOiAlcykiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzcGFjZSIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhbG9jYXIgZXNwYedvIGVtIGJ1ZmZlclxuIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiVXNvOiByZXYgW2FycXVpdm8gLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6NTggdGV4dC11dGlscy90YWlsZi5jOjkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiCittc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXMgcGFyYSBsZWl0dXJhIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgXCIlc1wiIgorbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIHZlcmlmaWNhciBzdGF0dXMgZGUgZGlzcG9zaXRpdm8gJXMiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5jb21wbGV0ZSB3cml0ZSB0byBcIiVzXCIgKHdyaXR0ZW4gJXpkLCBleHBlY3RlZCAlemQpXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoIChsaW1pdCBvZiBpbm90aWZ5IHdhdGNoZXMgd2FzIHJlYWNoZWQpLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2guIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgcmVhZCBpbm90aWZ5IGV2ZW50cyIKK21zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgYWJyaXIgJXM6ICVzXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxOTkgdGV4dC11dGlscy90YWlsZi5jOjIwMworIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG51bWJlciBvZiBsaW5lcyIKK21zZ3N0ciAibvptZXJvIGAlcycgaW524WxpZG9cbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorIywgZnV6enkKK21zZ2lkICJ1c2FnZTogdGFpbGYgWy1uIE4gfCAtTl0gbG9nZmlsZSIKK21zZ3N0ciAiVXNvOiAlcyBbYXJxdWl2b11cbiIKKworIzogdGV4dC11dGlscy91bC5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZmlsZS4uLlxuIgorbXNnc3RyICJVc286ICVzIFsgLWkgXSBbIC10VGVybSBdIGFycXVpdm8uLi5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ0cm91YmxlIHJlYWRpbmcgdGVybWluZm8iCittc2dzdHIgInByb2JsZW1hcyBuYSBsZWl0dXJhIGRlIHRlcm1pbmZvIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAiU2Vx/OpuY2lhIGRlIGVzY2FwZSBkZXNjb25oZWNpZGEgbmEgZW50cmFkYTogJW8sICVvXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo0MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlci5cbiIKK21zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhbG9jYXIgYnVmZmVyLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIkxpbmhhIGRlIGVudHJhZGEgbG9uZ2EgZGVtYWlzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAiRmFsdGEgbWVt83JpYSBxdWFuZG8gbyBidWZmZXIgY3Jlc2NlLlxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBDaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICBHaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIEdpdmUgZmRpc2sgdmVyc2lvblxuIgorI34gIkhlcmUgRElTSyBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYiBvciAvZGV2L3NkYVxuIgorI34gImFuZCBQQVJUSVRJT04gaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGdpdmUgU3RhcnQgYW5kIEVuZCBpbiBzZWN0b3IgKGluc3RlYWQgb2YgY3lsaW5kZXIpIHVuaXRzXG4iCisjfiAiLWIgMjA0ODogKGZvciBjZXJ0YWluIE1PIGRpc2tzKSB1c2UgMjA0OC1ieXRlIHNlY3RvcnNcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlVzbzogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNDTyAgICAgQWx0ZXJhIGEgdGFiZWxhIGRlIHBhcnRp5/Vlcy5cbiIKKyN+ICIgICAgICAgZmRpc2sgLWwgWy1iIFNTWl0gWy11XSBESVNDTyAgTGlzdGEgYShzKSB0YWJlbGEocykgZGUgcGFydGnn9WVzLlxuIgorI34gIiAgICAgICBmZGlzayAtcyBQQVJUScfDTyAgICAgICAgICAgROEgbyB0YW1hbmhvIGRhKHMpIHBhcnRp5+NvKPVlcyksIGVtICIKKyN+ICJibG9jb3MuXG4iCisjfiAiICAgICAgIGZkaXNrIC12ICAgICAgICAgICAgICAgICAgICAgROEgYSB2ZXJz428gZG8gZmRpc2suXG4iCisjfiAiQXF1aSwgRElTQ08g6SBhbGdvIGNvbW8gL2Rldi9oZGIgb3UgL2Rldi9zZGFcbiIKKyN+ICJlIFBBUlRJx8NPIOkgYWxnbyBjb21vIC9kZXYvaGRhNy5cbiIKKyN+ICItdTogZOEgSW7tY2lvIGUgRmltIGVtIHVuaWRhZGVzIGRlIHNldG9yIChlbSB2ZXogZGUgY2lsaW5kcm8pLlxuIgorI34gIi1iIDIwNDg6IChwYXJhIGNlcnRhcyB1bmlkYWRlcyBNTykgdXNhciBzZXRvcmVzIGRlICAyMDQ4IGJ5dGVzLlxuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0gZGV2aWNlXG4iCisjfiAiRS5nLjogZmRpc2sgL2Rldi9oZGEgIChmb3IgdGhlIGZpcnN0IElERSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvc2RjICAoZm9yIHRoZSB0aGlyZCBTQ1NJIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9lZGEgIChmb3IgdGhlIGZpcnN0IFBTLzIgRVNESSBkcml2ZSlcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3JkL2MwZDAgIG9yOiBmZGlzayAvZGV2L2lkYS9jMGQwICAoZm9yIFJBSUQgZGV2aWNlcylcbiIKKyN+ICIgIC4uLlxuIgorI34gbXNnc3RyICIiCisjfiAiVXNvOiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0gZGlzcG9zaXRpdm9cbiIKKyN+ICJFeC46IGZkaXNrIC9kZXYvaGRhICAocGFyYSBvIHByaW1laXJvIGRpc2NvIElERSk7XG4iCisjfiAiIG91IDogZmRpc2sgL2Rldi9zZGMgIChwYXJhIG8gdGVyY2Vpcm8gZGlzY28gU0NTSSApO1xuIgorI34gIiBvdSA6IGZkaXNrIC9kZXYvZWRhICAocGFyYSBhIHByaW1laXJhIHVuaWRhZGUgRVNESSBQUy8yKTtcbiIKKyN+ICIgb3UgOiBmZGlzayAvZGV2L3JkL2MwZDAgIG91IDogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKHBhcmEgZGlzcG9zaXRpdm9zICIKKyN+ICJSQUlEKVxuIgorI34gIiAgLi4uXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiXG4iCisjfiAiVGhlIG51bWJlciBvZiBjeWxpbmRlcnMgZm9yIHRoaXMgZGlzayBpcyBzZXQgdG8gJWQuXG4iCisjfiAiVGhlcmUgaXMgbm90aGluZyB3cm9uZyB3aXRoIHRoYXQsIGJ1dCB0aGlzIGlzIGxhcmdlciB0aGFuIDEwMjQsXG4iCisjfiAiYW5kIGNvdWxkIGluIGNlcnRhaW4gc2V0dXBzIGNhdXNlIHByb2JsZW1zIHdpdGg6XG4iCisjfiAiMSkgc29mdHdhcmUgdGhhdCBydW5zIGF0IGJvb3QgdGltZSAoZS5nLiwgb2xkIHZlcnNpb25zIG9mIExJTE8pXG4iCisjfiAiMikgYm9vdGluZyBhbmQgcGFydGl0aW9uaW5nIHNvZnR3YXJlIGZyb20gb3RoZXIgT1NzXG4iCisjfiAiICAgKGUuZy4sIERPUyBGRElTSywgT1MvMiBGRElTSylcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlxuIgorI34gIk8gbvptZW9yIGRlIGNpbGluZHJvcyBwYXJhIGVzdGUgZGlzY28gZXN04SBjb25maWd1cmFkbyBwYXJhICVkLlxuIgorI34gIk7jbyBleGlzdGUgbmFkYSBkZSBlcnJhZG8sIG1hcyBpc3RvIOkgbWFpb3IgcXVlIDEwMjQsXG4iCisjfiAiZSBwb2RlIGVtIGNlcnRhcyBjb25maWd1cmHn9WVzIGNhdXNhciBwcm9ibGVtYXMgY29tOlxuIgorI34gIjEpIHByb2dyYW1hcyBxdWUgZXhlY3V0YW0gZW0gdGVtcG8gZGUgaW5pY2lhbGl6YefjbyAodmVyc/VlcyB2ZWxoYXMgZG8gIgorI34gIkxJTE8pXG4iCisjfiAiMikgaW5pY2lhbGl6YefjbyBlIHByb2dyYW1hcyBkZSBwYXJ0aWNpb25hbWVudG8gZGUgb3V0cm9zIE9Tc1xuIgorI34gIiAgIChwLmV4LiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm91dCBpZiBtZW1vcnkiCisjfiBtc2dzdHIgIm1lbfNyaWEgaW5zdWZpY2llbnRlP1xuIgorCisjfiBtc2dpZCAiIyBwYXJ0aXRpb24gdGFibGUgb2YgJXNcbiIKKyN+IG1zZ3N0ciAiIyB0YWJlbGEgZGUgcGFydGnn428gZGUgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAidW5pdDogc2VjdG9yc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIlZCBzZXRvcmVzIG7jbyBhbG9jYWRvc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICJzdGF0dXMiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBzaXplPSU5bHUiCisjfiBtc2dzdHIgIlRhbWFuaG8gbeF4aW1vID0gJWxkXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBib290YWJsZSIKKyN+IG1zZ3N0ciAiQUlYIGluaWNpYWxpeuF2ZWwiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiQ2xvY2sgaW4gVVRDLCBub3QgY2hhbmdlZC5cbiIKKyN+IG1zZ3N0ciAiTyBpbnRlcnByZXRhZG9yIGRlIGNvbWFuZG9zIE7DTyBmb2kgYWx0ZXJhZG8uXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGVycm9yOiBsYWJlbCBvbmx5IHdpdGggdjEgc3dhcCBhcmVhXG4iCisjfiBtc2dzdHIgIiVzIC0gZXJybzogbmVuaHVtIGx1Z2FyIHBhcmEgYXRpdmFyIHBlcm11dGEgKHN3YXApP1xuIgorCisjfiBtc2dpZCAiZmF0YWw6IGZpcnN0IHBhZ2UgdW5yZWFkYWJsZSIKKyN+IG1zZ3N0ciAiZmF0YWw6IHByaW1laXJhIHDhZ2luYSBpbGVn7XZlbCIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAiJXM6IERldmljZSAnJXMnIGNvbnRhaW5zIGEgdmFsaWQgU3VuIGRpc2tsYWJlbC5cbiIKKyN+ICJUaGlzIHByb2JhYmx5IG1lYW5zIGNyZWF0aW5nIHYwIHN3YXAgd291bGQgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyN+ICJObyBzd2FwIHdhcyBjcmVhdGVkLiBJZiB5b3UgcmVhbGx5IHdhbnQgdG8gY3JlYXRlIHYwIHN3YXAgb24gdGhhdCAiCisjfiAiZGV2aWNlLFxuIgorI34gInVzZSB0aGUgLWYgb3B0aW9uIHRvIGZvcmNlIGl0LlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6IG8gZGlzcG9zaXRpdm8gJyVzJyBjb2506W0gdW0gcvN0dWxvIGRlIGRpc2NvIFN1biB24WxpZG8uXG4iCisjfiAiIElzdG8gcHJvdmF2ZWxtZW50ZSBzaWduaWZpY2EgcXVlIGNyaWFyIGEgcGVybXV0YSAoc3dhcCkgdjAgZGVzdHJ1aXLhIHN1YSAiCisjfiAidGFiZWxhIGRlIHBhcnRp5/Vlcy5cbiIKKyN+ICIgTmVuaHVtYSBwZXJtdXRhIGNyaWFkYS4gU2Ugdm9j6iByZWFsbWVudGUgZGVzZWphIGNyaWFyIHVtYSBwZXJtdXRhIHYwICIKKyN+ICJuZXNzZSBkaXNwb3NpdGl2bywgdXNlXG4iCisjfiAiYSBvcOfjbyAtZiBwYXJhIGZvcudhciBhIGNyaWHn428uXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBu428gZm9pIHBvc3PtdmVsIG9idGVyIG8gZGlyZXTzcmlvIGF0dWFsIC0gJXNcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gY2hkaXIgdG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBu428gZm9pIHBvc3PtdmVsIG11ZGFyIHBhcmEgbyBkaXJldPNyaW8gJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IGNoZGlyIHRvIHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBu428gZm9pIHBvc3PtdmVsIG11ZGFyIHBhcmEgbyBkaXJldPNyaW8gcmFpeiFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3Qgc3RhdCByb290IVxuIgorI34gbXNnc3RyICJuYW1laTogbuNvIGZvaSBwb3Nz7XZlbCBzdGF0IHJhaXohXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAibmFtZWk6IGJ1ZiBvdmVyZmxvd1xuIgorI34gbXNnc3RyICIgIEVzdG91cm9cbiIKKworI34gbXNnaWQgIiA/IGNvdWxkIG5vdCBjaGRpciBpbnRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyBu428gZm9pIHBvc3PtdmVsIG11ZGFyIHBhcmEgbyBkaXJldPNyaW8gJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IHByb2JsZW1hcyBhbyBsZXIgbGluayBzaW1i82xpY28gJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgICoqKiBFWENFRURFRCBVTklYIExJTUlUIE9GIFNZTUxJTktTICoqKlxuIgorI34gbXNnc3RyICIgICoqKiBMSU1JVEUgREUgTElOS1MgU0lNQtNMSUNPUyBETyBVTklYIEVYQ0VESURPICoqKlxuIgorCisjfiBtc2dpZCAibmFtZWk6IHVua25vd24gZmlsZSB0eXBlIDAlMDZvIG9uIGZpbGUgJXNcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IHRpcG8gZGUgYXJxdWl2byBkZXNjb25oZWNpZG8gMCUwNm8gbm8gYXJxdWl2byAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBnb2luZyB0byBtb3VudCAlcyBieSAlc1xuIgorI34gbXNnc3RyICJtb3VudDogbW9udGFuZG8gJXMgcG9yICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAibW91bnQ6IG5vIExBQkVMPSwgbm8gVVVJRD0sIGdvaW5nIHRvIG1vdW50ICVzIGJ5IHBhdGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG1vbnRhbmRvICVzIHBvciAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBjYW5ub3QgZm9yazogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IG7jbyBmb2kgcG9zc+12ZWwgcmVhbGl6YXIgZm9ya1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiB3YWl0cGlkOiAlc1xuIgorI34gbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBjYW5ub3Qgc3RhdCAlczogJXNcbiIKKyN+IG1zZ3N0ciAic3dhcG9uOiBu428gZm9pIHBvc3PtdmVsIHN0YXQgJXM6ICVzXG4iCisKKyN+IG1zZ2lkICJjb3VsZCBub3QgdW1vdW50ICVzIC0gdHJ5aW5nICVzIGluc3RlYWRcbiIKKyN+IG1zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBlZmV0dWFyIHVtb3VudCBlbSAlcyAtIHRlbnRhbmRvICVzIGVtIHZleiBkZWxlXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMlLTEwcyUtMTBzJS0xMHMlLTEwcyUtMTBzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMlLTEwcyAgJS0yMHMlLTIwcyUtMjBzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMlLTEwcyUtMTBzJS0xMHNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEyc1xuIgorI34gbXNnc3RyICIlLTEwcyUtMTBzJS0xMHMlLTEwcyUtMTBzJS0xMHMlLTEyc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKyN+IG1zZ3N0ciAiJS04cyUtMTBzICAlLTI2LjI0cyAlLTI2LjI0c1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzJS0xMHMlLTEwcyUtMTBzJS0xMHNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMlLTEwcyAgJS0yMHMlLTIwcyUtMjBzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMlLTEwcyUtMTBzJS0xMHMlLTEycyUtMTJzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiY2hmbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjogZmFsaGEgZGUgUEFNOyBhYm9ydGFuZG86ICVzXG4iCisKKyN+IG1zZ2lkICJDYW4ndCByZWFkICVzLCBleGl0aW5nLiIKKyN+IG1zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBsZXIgJXM7IHNhaW5kby4iCisKKyN+IG1zZ2lkICJsb2dpbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjogZmFsaGEgZGUgUEFNOyBhYm9ydGFuZG86ICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogYmFja2dyb3VuZGluZyBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHRlbnRhbmRvIG1vbnRhciBlbSBzZWd1bmRvIHBsYW5vIFwiJXNcIlxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdpdmluZyB1cCBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGRlc2lzdGluZG8gZGUgXCIlc1wiXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCisjfiBtc2dzdHIgIjogZGlyZXTzcmlvIGluduFsaWRvOiAnLicgbuNvIOkgbyBwcmltZWlyb1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCisjfiBtc2dzdHIgIjogZGlyZXTzcmlvIGluduFsaWRvOiAnLi4nIG7jbyDpIG8gc2VndW5kb1xuIgorCisjfiBtc2dpZCAiY2FsbGluZyBvcGVuX3R0eVxuIgorI34gbXNnc3RyICJjYWxsaW5nIG9wZW5fdHR5XG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIHRlcm1pb19pbml0XG4iCisjfiBtc2dzdHIgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKworI34gbXNnaWQgIndyaXRpbmcgaW5pdCBzdHJpbmdcbiIKKyN+IG1zZ3N0ciAid3JpdGluZyBzdHJpbmcgaW5pdFxuIgorCisjfiBtc2dpZCAiYmVmb3JlIGF1dG9iYXVkXG4iCisjfiBtc2dzdHIgImJlZm9yZSBhdXRvYmF1ZFxuIgorCisjfiBtc2dpZCAid2FpdGluZyBmb3IgY3ItbGZcbiIKKyN+IG1zZ3N0ciAid2FpdGluZyBmb3IgY3ItbGZcbiIKKworI34gbXNnaWQgInJlYWRpbmcgbG9naW4gbmFtZVxuIgorI34gbXNnc3RyICJyZWFkaW5nIGxvZ2luIG5hbWVcbiIKKworI34gbXNnaWQgImFmdGVyIGdldG9wdCBsb29wXG4iCisjfiBtc2dzdHIgImFmdGVyIGdldG9wdCBsb29wXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlYXJnc1xuIgorI34gbXNnc3RyICJleGl0aW5nIHBhcnNlYXJnc1xuIgorCisjfiBtc2dpZCAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKyN+IG1zZ3N0ciAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VzcGVlZHNcbiIKKyN+IG1zZ3N0ciAiZXhpdGluZyBwYXJzZXNwZWVkc1xuIgorCisjfiBtc2dpZCAib3BlbigyKVxuIgorI34gbXNnc3RyICJvcGVuKDIpXG4iCisKKyN+IG1zZ2lkICJkdXBpbmdcbiIKKyN+IG1zZ3N0ciAiZHVwaW5nXG4iCisKKyN+IG1zZ2lkICJ0ZXJtX2lvIDJcbiIKKyN+IG1zZ3N0ciAidGVybV9pbyAyXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBlcnJvci4iCisjfiBtc2dzdHIgIkVycm8gZGUgc2VuaGEuIgorCisjfiBtc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHNcbiIKKyN+IG1zZ3N0ciAiQXZpc286ICBcIiVzXCIgbuNvIGVzdOEgbGlzdGFkbyBlbSAvZXRjL3NoZWxsc1xuIgorCisjfiBtc2dpZCAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorI34gbXNnc3RyICJ0aW1lb3V0ID0gJWQsIHF1aWV0ID0gJWQsIHJlYm9vdCA9ICVkXG4iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkICVzLCBhbmQgY2Fubm90IGlvY3RsIGR1bXBcbiIKKyN+IG1zZ3N0ciAiIgorI34gIm7jbyBmb2kgcG9zc+12ZWwgbGVyICVzIGUgbuNvIOkgcG9zc+12ZWwgcmVhbGl6YXIgaW9jdGwgZGEgZGVzY2FyZ2FcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGRldmljZSAvZGV2L2xvb3AjIgorI34gbXNnc3RyICJtb3VudDogbuNvIGZvaSBwb3Nz7XZlbCBsb2NhbGl6YXIgcXVhbHF1ZXIgZGlzcG9zaXRpdm8gL2Rldi9sb29wIyIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAiVXNvOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gWy1wIHByaW9yaWRhZGVdIGVzcGVjaWFsIC4uLlxuIgorI34gIiAgICAgICAlcyBbLXNdXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIlVzbzogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcmlkYWRlXSBlc3BlY2lhbCAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBjYW5ub3QgY2Fub25pY2FsaXplICVzOiAlc1xuIgorI34gbXNnc3RyICIlczogbuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlczogJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogcmVuaWNlIHByaW9yaXR5IFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwcyBdIFsgWyAtdSBdIHVzZXJzIF1cbiIKKyN+IG1zZ3N0ciAiIgorI34gInJlbmljZSBwcmlvcmlkYWRlIFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwcyBdIFsgWyAtdSBdIHVzdeFyaW9zIF1cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJVbmtub3duIG9wdGlvbiBgJWMnIGlnbm9yZWQiCisjfiBtc2dzdHIgIiVzOiBzaW5hbCBkZXNjb25oZWNpZG8gJXNcbiIKKworI34gbXNnaWQgIkFzc3VtaW5nIHBhZ2VzIG9mIHNpemUgJWQgKG5vdCAlZClcbiIKKyN+IG1zZ3N0ciAiQXNzdW1pbmRvIHDhZ2luYXMgZGUgdGFtYW5obyAlZCAobuNvICVkKVxuIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmb3VuZCBhICVzJXMlc1xuIgorI34gbXNnc3RyICJBIGNvbmZpZ3VyYefjbyBhdXRvbeF0aWNhIGVuY29udHJvdSB1bShhKSAlcyVzJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJEcml2ZSB0eXBlXG4iCisjfiAiICAgPyAgIGF1dG8gY29uZmlndXJlXG4iCisjfiAiICAgMCAgIGN1c3RvbSAod2l0aCBoYXJkd2FyZSBkZXRlY3RlZCBkZWZhdWx0cykiCisjfiBtc2dzdHIgIiIKKyN+ICJUaXBvIGRhIHVuaWRhZGVcbiIKKyN+ICIgICA/ICAgY29uZmlndXJh5+NvIGF1dG9t4XRpY2FcbiIKKyN+ICIgICAwICAgcGVyc29uYWxpemFkYSAoY29tIHBhZHL1ZXMgZGV0ZWN0YWRvcyBwb3IgaGFyZHdhcmUpIgorCisjfiBtc2dpZCAiU2VsZWN0IHR5cGUgKD8gZm9yIGF1dG8sIDAgZm9yIGN1c3RvbSk6ICIKKyN+IG1zZ3N0ciAiU2VsZWNpb25lIG8gdGlwbyAoPyBwYXJhIGF1dG9t4XRpY2EsIDAgcGFyYSBwZXJzb25hbGl6YWRhKTogIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmYWlsZWQuXG4iCisjfiBtc2dzdHIgIkEgY29uZmlndXJh5+NvIGF1dG9t4XRpY2EgZmFsaG91LlxuIgorCisjfiBtc2dpZCAiQWx0ZXJuYXRlIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiQ2lsaW5kcm9zIEFsdGVybmF0aXZvcyIKKworI34gbXNnaWQgIlBoeXNpY2FsIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAiQ2lsaW5kcm9zIGbtc2ljb3MiCisKKyN+IG1zZ2lkICJZb3UgbWF5IGNoYW5nZSBhbGwgdGhlIGRpc2sgcGFyYW1zIGZyb20gdGhlIHggbWVudSIKKyN+IG1zZ3N0ciAiVm9j6iBwb2RlIGFsdGVyYXIgdG9kb3Mgb3MgcGFy4m1ldHJvcyBkbyBkaXNjbyBhIHBhcnRpciBkbyBtZW51IHgiCisKKyN+IG1zZ2lkICIzLDVcIiBmbG9wcHkiCisjfiBtc2dzdHIgIkRpc3F1ZXRlIGRlIDMsNSBwb2wuIgorCisjfiBtc2dpZCAiTGludXggY3VzdG9tIgorI34gbXNnc3RyICJMaW51eCBwZXJzb25hbGl6YWRvIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzIGZyb20gdXRpbC1saW51eC0lc1xuIgorI34gbXNnc3RyICIlcyBkZSAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzIGZyb20gJXMlc1xuIgorI34gbXNnc3RyICIlcyBkZSAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICIlczogY291bGQgbm90IG9wZW4gJXMsIHNvIFVVSUQgYW5kIExBQkVMIGNvbnZlcnNpb24gY2Fubm90IGJlIGRvbmUuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogbuNvIGZvaSBwb3Nz7XZlbCBhYnJpciAlcyAtIGNvbnZlcnP1ZXMgZGUgVVVJRCBlIExBQkVMIG7jbyBwb2RlbSAiCisjfiAic2VyIGZlaXRhc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiBiYWQgVVVJRCIKKyN+IG1zZ3N0ciAibW91bnQ6IFVVSUQgaW524WxpZGEiCisKKyN+IG1zZ2lkICJtb3VudDogZmFpbGVkIHdpdGggbmZzIG1vdW50IHZlcnNpb24gNCwgdHJ5aW5nIDMuLlxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IGZhbGhvdSBjb20gbyBtb3VudCBkbyBuZnMgdmVyc+NvIDQsIHRlbnRhbmRvIGNvbSBvIDMuLlxuIgorI34gIiBcbiIKKworI34gbXNnaWQgIm1vdW50OiBtb3VudGluZyAlc1xuIgorI34gbXNnc3RyICJtb3VudDogbW9udGFuZG8gJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW5ub3QgZmluZCAlcyBpbiAlcyIKKyN+IG1zZ3N0ciAibW91bnQ6IG7jbyBmb2kgcG9zc+12ZWwgbG9jYWxpemFyICVzIGVtICVzIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBlcnJvciB3aGlsZSBndWVzc2luZyBmaWxlc3lzdGVtIHR5cGVcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHZvY+ogcHJlY2lzYSBlc3BlY2lmaWNhciBvIHRpcG8gZG8gc2lzdGVtYSBkZSBhcnF1aXZvcyIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIGhvc3Q6ZGlyIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiBhcmd1bWVudG8gaG9zdDpkaXIgZXhjZXNzaXZhbWVudGUgbG9uZ29cbiIKKworI34gbXNnaWQgIm1vdW50OiB3YXJuaW5nOiBtdWx0aXBsZSBob3N0bmFtZXMgbm90IHN1cHBvcnRlZFxuIgorI34gbXNnc3RyICJtb3VudDogYXZpc286IG5vbWVzIGRlIGhvc3QgbfpsdGlwbG9zIG7jbyBz428gc3Vwb3J0YWRvc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGRpcmVjdG9yeSB0byBtb3VudCBub3QgaW4gaG9zdDpkaXIgZm9ybWF0XG4iCisjfiBtc2dzdHIgIm1vdW50OiBkaXJldPNyaW8gYSBtb250YXIgbuNvIGVzdOEgbm8gZm9ybWF0byBob3N0OmRpclxuIgorCisjfiBtc2dpZCAibW91bnQ6IGNhbid0IGdldCBhZGRyZXNzIGZvciAlc1xuIgorI34gbXNnc3RyICJtb3VudDogbuNvIOkgcG9zc+12ZWwgb2J0ZXIgZW5kZXJl528gcGFyYSAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgIm1vdW50OiBvYnRpZG8gaHAtPmhfbGVuZ3RoIGluduFsaWRvXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBvcHRpb24gYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGFyZ3VtZW50byBkZSBvcOfjbyBleGNlc3NpdmFtZW50ZSBsb25nb1xuIgorCisjfiBtc2dpZCAiV2FybmluZzogVW5yZWNvZ25pemVkIHByb3RvPSBvcHRpb24uXG4iCisjfiBtc2dzdHIgIkF2aXNvOiBvcOfjbyBwcm90bz0gbuNvIHJlY29uaGVjaWRhLlxuIgorCisjfiBtc2dpZCAiV2FybmluZzogT3B0aW9uIG5hbWxlbiBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICJBdmlzbzogYSBvcOfjbyBuYW1sZW4gbuNvIOkgc3Vwb3J0YWRhLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgcGFyYW1ldGVyOiAlcz0lZFxuIgorI34gbXNnc3RyICJwYXLibWV0cm8gZGUgbW9udGFnZW0gZGUgbmZzIGRlc2NvbmhlY2lkbzogJXM9JWRcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IG9wdGlvbiBub2xvY2sgaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAiQXZpc286IGEgb3Dn428gbm9sb2NrIG7jbyDpIHN1cG9ydGFkYS5cbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIG1vdW50IG9wdGlvbjogJXMlc1xuIgorI34gbXNnc3RyICJvcOfjbyBkZSBtb250YWdlbSBkZSBuZnMgZGVzY29uaGVjaWRhOiAlcyVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGg/XG4iCisjfiBtc2dzdHIgIm1vdW50OiBvYnRpZG8gaHAtPmhfbGVuZ3RoIGluduFsaWRvP1xuIgorCisjfiBtc2dpZCAibmZzIGJpbmRyZXN2cG9ydCIKKyN+IG1zZ3N0ciAibmZzIGJpbmRyZXN2cG9ydCIKKworI34gbXNnaWQgInVzZWQgcG9ydG1hcHBlciB0byBmaW5kIE5GUyBwb3J0XG4iCisjfiBtc2dzdHIgInVzYWRvIHBvcnRtYXBwZXIgcGFyYSBsb2NhbGl6YXIgcG9ydGEgTkZTXG4iCisKKyN+IG1zZ2lkICJ1c2luZyBwb3J0ICVkIGZvciBuZnMgZGVhbW9uXG4iCisjfiBtc2dzdHIgInVzYW5kbyBwb3J0YSAlZCBwYXJhIG8gZGFlbW9uIGRvIG5mc1xuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgc3RhdHVzIHJldHVybiB2YWx1ZTogJWQiCisjfiBtc2dzdHIgInZhbG9yIGRlIHJldG9ybm8gZGUgc3RhdHVzIGRlIG5mcyBkZXNjb25oZWNpZG86ICVkIgorCisjfiBtc2dpZCAiaG9zdDogJXMsIGRpcmVjdG9yeTogJXNcbiIKKyN+IG1zZ3N0ciAiaG9zdDogJXMsIGRpcmV083JpbzogJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgInVtb3VudDogbuNvIGZvaSBwb3Nz7XZlbCBvYnRlciBlbmRlcmXnbyBkZSAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBnb3QgYmFkIGhvc3RwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJ1bW91bnQ6IG9idGlkbyBob3N0cC0+aF9sZW5ndGggaW524WxpZG9cbiIKKworI34gbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCIKKyN+IG1zZ3N0ciAiTyBibG9jbyAlZCBubyBhcnF1aXZvIGAiCisKKyN+IG1zZ2lkICI6IGJhZCBkaXJlY3Rvcnk6IHNpemU8MzIiCisjfiBtc2dzdHIgIjogZGlyZXTzcmlvIGluduFsaWRvOiB0YW1hbmhvIDwgMzIiCisKKyN+IG1zZ2lkICJub3QgIgorI34gbXNnc3RyICJu428gIgorCisjfiBtc2dpZCAiJXM6IG5vdCBjb21waWxlZCB3aXRoIG1pbml4IHYyIHN1cHBvcnRcbiIKKyN+IG1zZ3N0ciAiJXM6IG7jbyBjb21waWxhZG8gY29tIHN1cG9ydGUgYSBtaW5peCB2MlxuIgorCisjfiBtc2dpZCAiU3ludGF4IGVycm9yOiAnJXMnXG4iCisjfiBtc2dzdHIgIkVycm8gZGUgc2ludGF4ZTogJyVzJ1xuIgorCisjfiBtc2dpZCAiTm8gc3VjaCBwYXJhbWV0ZXIgc2V0OiAnJXMnXG4iCisjfiBtc2dzdHIgIk7jbyBo4SB0YWwgcGFy4m1ldHJvIGRlZmluaWRvOiAnJXMnXG4iCisKKyN+IG1zZ2lkICJ1c2FnZTogJXMgWyAtcCBdIGRldiBuYW1lXG4iCisjfiBtc2dzdHIgIlVzbzogJXMgWyAtcCBdIGRpc3Bvc2l0aXZvXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiICAgICAgICVzIFsgLXAgXSBkZXYgc2l6ZSBzZWN0IGhlYWRzIHRyYWNrcyBzdHJldGNoIGdhcCByYXRlIHNwZWMxICIKKyN+ICJmbXRfZ2FwXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIgICAgICAgJXMgWyAtcCBdIGRpc3AgdGFtIHNldCBjYWJl5yB0cmlsaGFzIGV4dCAgIGludGVydiB0YXhhIHNwZWMxICIKKyN+ICJmbXRfaW50ZXJ2XG4iCisKKyN+IG1zZ2lkICIgICAgICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGRldlxuIgorI34gbXNnc3RyICIgICAgICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGRpc3BcbiIKKworI34gbXNnaWQgIiAgICAgICAlcyBbIC1jIHwgLXkgfCAtbiBdIGRldlxuIgorI34gbXNnc3RyICIgICAgICAgJXMgWyAtYyB8IC15IHwgLW4gXSBkaXNwXG4iCisKKyN+IG1zZ2lkICJCb290ICglMDJYKSIKKyN+IG1zZ3N0ciAiQm9vdCAoJTAyWCkiCisKKyN+IG1zZ2lkICJOb25lICglMDJYKSIKKyN+IG1zZ3N0ciAiTmVuaHVtICglMDJYKSIKKworI34gbXNnaWQgIldhcm5pbmc6IGRlbGV0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgJWRcbiIKKyN+IG1zZ3N0ciAiQXZpc286IGV4Y2x1aW5kbyBwYXJ0aef1ZXMgYXDzcyAlZFxuIgorCisjfiBtc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKKyN+IG1zZ3N0ciAiQSBwYXJ0aefjbyAlaSBu428gdGVybWluYSBlbSB1bSBsaW1pdGUgZGUgY2lsaW5kcm86XG4iCisKKyN+IG1zZ2lkICIiCisjfiAiXG4iCisjfiAiRGlzayAlczogJWQgaGVhZHMsICVkIHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorI34gIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAiRGlzY28gJXM6ICVkIGNhYmXnYXMsICVkIHNldG9yZXMsICVkIGNpbGluZHJvc1xuIgorI34gIlVuaWRhZGVzID0gJXMgZGUgJWQgKiAlZCBieXRlc1xuIgorI34gIlxuIgorCisjfiBtc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGhhcyBhbiBvZGQgbnVtYmVyIG9mIHNlY3RvcnMuXG4iCisjfiBtc2dzdHIgIkF2aXNvOiBhIHBhcnRp5+NvICVkIHBvc3N1aSB1bSBu+m1lcm8g7W1wYXIgZGUgc2V0b3Jlcy5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJSZS1yZWFkIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyN+ICJSZWJvb3QgeW91ciBzeXN0ZW0gdG8gZW5zdXJlIHRoZSBwYXJ0aXRpb24gdGFibGUgaXMgdXBkYXRlZC5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkEgcmVsZWl0dXJhIGRhIHRhYmVsYSBkZSBwYXJ0aef1ZXMgZmFsaG91LiBFcnJvICVkOiAlcy5cbiIKKyN+ICJSZWluaWNpYWxpemUgbyBzaXN0ZW1hIHBhcmEgYXNzZWd1cmFyLXNlIGRlIHF1ZSBhIHRhYmVsYSBkZSBwYXJ0aef1ZXMgIgorI34gInNlamEgYXR1YWxpemFkYS5cbiIKKworI34gbXNnaWQgIkFTVCBXaW5kb3dzIHN3YXBmaWxlIgorI34gbXNnc3RyICJBcnF1aXZvIGRlIHBlcm11dGEgV2luZG93cyBBU1QiCisKKyN+IG1zZ2lkICJCU0QvMzg2IgorI34gbXNnc3RyICJCU0QvMzg2IgorCisjfiBtc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGNvbnRhaW5zIHBhcnQgb2YgIgorI34gbXNnc3RyICJBdmlzbzogYSBwYXJ0aefjbyAlcyBjb2506W0gcGFydGUgZGEgIgorCisjfiBtc2dpZCAidGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisjfiBtc2dzdHIgInRhYmVsYSBkZSBwYXJ0aef1ZXMgKHNldG9yICVsdSkgXG4iCisKKyN+IG1zZ2lkICJhbmQgd2lsbCBkZXN0cm95IGl0IHdoZW4gZmlsbGVkXG4iCisjfiBtc2dzdHIgImUgZGVzdHJ1aXLhIGEgdGFiZWxhIHF1YW5kbyBjaGVpYVxuIgorCisjfiBtc2dpZCAiIChhbHRob3VnaCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gdW5kZXIgTGludXgpXG4iCisjfiBtc2dzdHIgIiAoZW1ib3JhIGlzdG8gbuNvIHNlamEgdW0gcHJvYmxlbWEgbm8gTGludXgpXG4iCisKKyN+IG1zZ2lkICIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorI34gbXNnc3RyICIoUGFyYSBwcm9w83NpdG9zIHNvbWVudGUgZGUgbGlzdGFnZW0uIE7jbyBhbHRlcmUgc2V1IGNvbnRl+mRvLilcbiIKKworI34gbXNnaWQgIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorI34gbXNnc3RyICJET1MgZSBMaW51eCB2428gaW50ZXJwcmV0YXIgc2V1IGNvbnRl+mRvIGRpZmVyZW50ZW1lbnRlLlxuIgorCisjfiBtc2dpZCAidmVyc2lvbiIKKyN+IG1zZ3N0ciAidmVyc+NvIgorCisjfiBtc2dpZCAiZm9yIHJlYWRpbmciCisjfiBtc2dzdHIgInBhcmEgbGVpdHVyYSIKKworI34gbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIGZvciAlc1xuIgorI34gbXNnc3RyICJpb2N0bCBCTEtHRVRTSVpFIGZhbGhvdSBwYXJhICVzXG4iCisKKyN+IG1zZ2lkICJ1c2FnZTogYmFubmVyIFstdyB3aWR0aF1cbiIKKyN+IG1zZ3N0ciAiVXNvOiBiYW5uZXIgWy13IGxhcmd1cmFdXG4iCisKKyN+IG1zZ2lkICJNZXNzYWdlOiAiCisjfiBtc2dzdHIgIk1lbnNhZ2VtOiAiCisKKyN+IG1zZ2lkICJUaGUgY2hhcmFjdGVyICclYycgaXMgbm90IGluIG15IGNoYXJhY3RlciBzZXQiCisjfiBtc2dzdHIgIk8gY2FyYWN0ZXJlICclYycgbuNvIGZheiBwYXJ0ZSBkbyBtZXUgY29uanVudG8gZGUgY2FyYWN0ZXJlcyIKKworI34gbXNnaWQgIk1lc3NhZ2UgJyVzJyBpcyBPS1xuIgorI34gbXNnc3RyICJBIG1lbnNhZ2VtICclcycgZXN04SBPS1xuIgorCisjfiBtc2dpZCAibnVtYmVyIGAlcycgdG8gYCVzJyBvdXQgb2YgcmFuZ2VcbiIKKyN+IG1zZ3N0ciAibvptZXJvIGAlcycgYSBgJXMnIGZvcmEgZG8gaW50ZXJ2YWxvXG4iCisKKyN+IG1zZ2lkICJ1bnJlY29nbml6ZWQgb3B0aW9uIGAlcydcbiIKKyN+IG1zZ3N0ciAib3Dn428gYCVzJyBu428gcmVjb25oZWNpZGFcbiIKKworI34gbXNnaWQgIm9wdGlvbiBgJXMnIGRvZXNuJ3QgYWxsb3cgYW4gYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAiYSBvcOfjbyBgJXMnIG7jbyBwZXJtaXRlIHVtIGFyZ3VtZW50b1xuIgorCisjfiBtc2dpZCAidW5yZWNvZ25pemVkIG9wdGlvbiBgLSVjJ1xuIgorI34gbXNnc3RyICJvcOfjbyBgLSVjJyBu428gcmVjb25oZWNpZGFcbiIKKworI34gbXNnaWQgIlVzYWdlOiAlcyBbIC1zIHNoZWxsIF0gIgorI34gbXNnc3RyICJVc286ICVzIFsgLXMgaW50ZXJwcmV0YWRvcl9kZV9jb21hbmRvcyBdICIKKworI34gbXNnaWQgIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKKyN+IG1zZ3N0ciAiICAgICAgIFsgbm9tZV91c3XhcmlvIF1cbiIKKworI34gbXNnaWQgImNvdWxkbid0IG9wZW4gL2Rldi91cmFuZG9tIgorI34gbXNnc3RyICJu428gZm9pIHBvc3PtdmVsIGFicmlyIC9kZXYvdXJhbmRvbSIKKworI34gbXNnaWQgImNvdWxkbid0IHJlYWQgcmFuZG9tIGRhdGEgZnJvbSAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgbGVyIGRhZG9zIGFsZWF083Jpb3MgZGUgL2Rldi91cmFuZG9tIgorCisjfiBtc2dpZCAiY2FuJ3Qgc3RhdCglcykiCisjfiBtc2dzdHIgIm7jbyBmb2kgcG9zc+12ZWwgc3RhdCglcykiCisKKyN+IG1zZ2lkICIlcyBkb2Vzbid0IGhhdmUgdGhlIGNvcnJlY3QgZmlsZW1vZGVzIgorI34gbXNnc3RyICIlcyBu428gcG9zc3VpIG9zIG1vZG9zIGRlIGFycXVpdm8gY29ycmV0b3MiCisKKyN+IG1zZ2lkICJjYW4ndCByZWFkIGRhdGEgZnJvbSAlcyIKKyN+IG1zZ3N0ciAibuNvIGZvaSBwb3Nz7XZlbCBsZXIgZGFkb3MgZGUgJXMiCisKKyN+IG1zZ2lkICIiCisjfiAiVG9vIG1hbnkgdXNlcnMgbG9nZ2VkIG9uIGFscmVhZHkuXG4iCisjfiAiVHJ5IGFnYWluIGxhdGVyLlxuIgorI34gbXNnc3RyICIiCisjfiAiTvptZXJvIG3heGltbyBkZSB1c3XhcmlvcyBq4SBjb25lY3RhZG9zLlxuIgorI34gIlRlbnRlIG5vdmFtZW50ZSBtYWlzIHRhcmRlLlxuIgorCisjfiBtc2dpZCAiWW91IGhhdmUgdG9vIG1hbnkgcHJvY2Vzc2VzIHJ1bm5pbmcuXG4iCisjfiBtc2dzdHIgIk76bWVybyBleGNlc3Npdm8gZGUgcHJvY2Vzc29zIGVtIGV4ZWN15+NvLlxuIgorCisjfiBtc2dpZCAiVGhlIHBhc3N3b3JkIG11c3QgaGF2ZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMsIHRyeSBhZ2Fpbi5cbiIKKyN+IG1zZ3N0ciAiQSBzZW5oYSBkZXZlIHRlciBwZWxvIG1lbm9zIDYgY2FyYWN0ZXJlczsgdGVudGUgbm92YW1lbnRlLlxuIgorCisjfiBtc2dpZCAiVGhlIHBhc3N3b3JkIG11c3QgY29udGFpbiBjaGFyYWN0ZXJzIG91dCBvZiB0d28gb2YgdGhlIGZvbGxvd2luZ1xuIgorI34gbXNnc3RyICJBIHNlbmhhIGRldmUgY29udGVyIGNhcmFjdGVyZXMgZGUgdW1hIGRhcyBkdWFzIGNsYXNzZXMgc2VndWludGVzOlxuIgorCisjfiBtc2dpZCAiIgorI34gImNsYXNzZXM6ICB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLCBkaWdpdHMgYW5kIG5vbiBhbHBoYW51bWVyaWNcbiIKKyN+IG1zZ3N0ciAiIgorI34gImxldHJhcyBtYWn6c2N1bGFzIGUgbWlu+nNjdWxhcywgZO1naXRvcyBlIGNhcmFjdGVyZXMgbuNvIGFsZmFudW3pcmljb3MuXG4iCisKKyN+IG1zZ2lkICJjaGFyYWN0ZXJzLiBTZWUgcGFzc3dkKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorI34gbXNnc3RyICJDb25zdWx0ZSBwYXNzd2QoMSkgcGFyYSBtYWlvcmVzIGluZm9ybWHn9WVzLlxuIgorCisjfiBtc2dpZCAiWW91IGNhbm5vdCByZXVzZSB0aGUgb2xkIHBhc3N3b3JkLlxuIgorI34gbXNnc3RyICJWb2PqIG7jbyBwb2RlIHJldXRpbGl6YXIgYSBzZW5oYSBhbnRpZ2EuXG4iCisKKyN+IG1zZ2lkICJQbGVhc2UgZG9uJ3QgdXNlIHNvbWV0aGluZyBsaWtlIHlvdXIgdXNlcm5hbWUgYXMgcGFzc3dvcmQhXG4iCisjfiBtc2dzdHIgIk7jbyB1c2UgYWxnbyBjb21vIHNldSBub21lIGRlIHVzdeFyaW8gY29tbyBzZW5oYSFcbiIKKworI34gbXNnaWQgIlBsZWFzZSBkb24ndCB1c2Ugc29tZXRoaW5nIGxpa2UgeW91ciByZWFsbmFtZSBhcyBwYXNzd29yZCFcbiIKKyN+IG1zZ3N0ciAiTuNvIHVzZSBhbGdvIGNvbW8gc2V1IG5vbWUgcmVhbCBjb21vIHNlbmhhIVxuIgorCisjfiBtc2dpZCAiVXNhZ2U6IHBhc3N3ZCBbdXNlcm5hbWUgW3Bhc3N3b3JkXV1cbiIKKyN+IG1zZ3N0ciAiVXNvOiBwYXNzd2QgW25vbWVfdXN14XJpbyBbc2VuaGFdXVxuIgorCisjfiBtc2dpZCAiT25seSByb290IG1heSB1c2UgdGhlIG9uZSBhbmQgdHdvIGFyZ3VtZW50IGZvcm1zLlxuIgorI34gbXNnc3RyICJTb21lbnRlIHJvb3QgcG9kZSB1c2FyIG9zIGZvcm1hdG9zIGRlIHVtIGUgZG9pcyBhcmd1bWVudG9zLlxuIgorCisjfiBtc2dpZCAiVXNhZ2U6IHBhc3N3ZCBbLWZvcXN2Vl0gW3VzZXIgW3Bhc3N3b3JkXV1cbiIKKyN+IG1zZ3N0ciAiVXNvOiBwYXNzd2QgWy1mb3FzdlZdIFtub21lX3VzdeFyaW8gW3NlbmhhXV1cbiIKKworI34gbXNnaWQgIkNhbid0IGV4ZWMgJXM6ICVzXG4iCisjfiBtc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgZXhlYyAlczogJXNcbiIKKworI34gbXNnaWQgIkNhbm5vdCBmaW5kIGxvZ2luIG5hbWUiCisjfiBtc2dzdHIgIk7jbyBmb2kgcG9zc+12ZWwgbG9jYWxpemFyIG8gbm9tZSBkZSBsb2dpbiIKKworI34gbXNnaWQgIk9ubHkgcm9vdCBjYW4gY2hhbmdlIHRoZSBwYXNzd29yZCBmb3Igb3RoZXJzLlxuIgorI34gbXNnc3RyICJTb21lbnRlIHJvb3QgcG9kZSBhbHRlcmFyIHNlbmhhcyBkZSB0ZXJjZWlyb3MuXG4iCisKKyN+IG1zZ2lkICJDYW4ndCBmaW5kIHVzZXJuYW1lIGFueXdoZXJlLiBJcyBgJXMnIHJlYWxseSBhIHVzZXI/IgorI34gbXNnc3RyICIiCisjfiAiTuNvIGZvaSBwb3Nz7XZlbCBlbmNvbnRyYXIgbyBub21lIGRlIHVzdeFyaW8gZW0gbmVuaHVtIGx1Z2FyLiBgJXMnICIKKyN+ICJyZWFsbWVudGUg6SB1bSBub21lIGRlIHVzdeFyaW8/IgorCisjfiBtc2dpZCAiU29ycnksIEkgY2FuIG9ubHkgY2hhbmdlIGxvY2FsIHBhc3N3b3Jkcy4gVXNlIHlwcGFzc3dkIGluc3RlYWQuIgorI34gbXNnc3RyICJFdSBz8yBwb3NzbyBhbHRlcmFyIHNlbmhhcyBsb2NhaXMuIFVzZSB5cHBhc3N3ZC4iCisKKyN+IG1zZ2lkICJVSUQgYW5kIHVzZXJuYW1lIGRvZXMgbm90IG1hdGNoLCBpbXBvc3RlciEiCisjfiBtc2dzdHIgIk5vbWUgZGUgdXN14XJpbyBlIFVJRCBu428gY29ycmVzcG9uZGVtLCBpbXBvc3RvciEiCisKKyN+IG1zZ2lkICJDaGFuZ2luZyBwYXNzd29yZCBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAiQWx0ZXJhbmRvIGEgc2VuaGEgcGFyYSBvIHVzdeFyaW8gJXNcbiIKKworI34gbXNnaWQgIkVudGVyIG9sZCBwYXNzd29yZDogIgorI34gbXNnc3RyICJJbmZvcm1lIGEgc2VuaGEgYW50ZXJpb3I6ICIKKworI34gbXNnaWQgIklsbGVnYWwgcGFzc3dvcmQsIGltcG9zdGVyLiIKKyN+IG1zZ3N0ciAiU2VuaGEgaW5jb3JyZXRhLCBpbXBvc3Rvci4iCisKKyN+IG1zZ2lkICJFbnRlciBuZXcgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiSW5mb3JtZSBhIG5vdmEgc2VuaGE6ICIKKworI34gbXNnaWQgIlBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAiQSBzZW5oYSBOw08gZm9pIGFsdGVyYWRhLiIKKworI34gbXNnaWQgIlJlLXR5cGUgbmV3IHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIlJlZGlnaXRlIGEgbm92YSBzZW5oYTogIgorCisjfiBtc2dpZCAiWW91IG1pc3NwZWxsZWQgaXQuIFBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAiVm9j6iBu428gYSBpbmZvcm1vdSBjb3JyZXRhbWVudGUuIEEgc2VuaGEgbuNvIGZvaSBhbHRlcmFkYS4iCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkLCB1c2VyICVzIgorI34gbXNnc3RyICJzZW5oYSBhbHRlcmFkYSwgdXN14XJpbyAlcyIKKworI34gbXNnaWQgIlJPT1QgUEFTU1dPUkQgQ0hBTkdFRCIKKyN+IG1zZ3N0ciAiQSBTRU5IQSBETyBST09UIEZPSSBBTFRFUkFEQSIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQgYnkgcm9vdCwgdXNlciAlcyIKKyN+IG1zZ3N0ciAic2VuaGEgYWx0ZXJhZGEgcGVsbyByb290LCB1c3XhcmlvICVzIgorCisjfiBtc2dpZCAiY2FsbGluZyBzZXRwd25hbSB0byBzZXQgcGFzc3dvcmQuXG4iCisjfiBtc2dzdHIgImNoYW1hbmRvIHNldHB3bmFtIHBhcmEgZGVmaW5pciBhIHNlbmhhLlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgY2hhbmdlZC5cbiIKKyN+IG1zZ3N0ciAiU2VuaGEgYWx0ZXJhZGEuXG4iCisKKyN+IG1zZ2lkICJyZWJvb3RlZCIKKyN+IG1zZ3N0ciAicmVpbmljaWFsaXphZG8iCisKKyN+IG1zZ2lkICJoYWx0ZWQiCisjfiBtc2dzdHIgInBhcmFkbyIKKworI34gbXNnaWQgIiVzOiBbJTA0eF06JWxkICglcykgb2Zmc2V0ICVkLCAlcyBlbmNyeXB0aW9uXG4iCisjfiBtc2dzdHIgIiVzOiBbJTA0eF06JWxkICglcykgZGVzbG9jYW1lbnRvICVkLCBjcmlwdG9ncmFmaWEgJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJtb3VudDogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLlxuIgorI34gIiAgICAgICBNYXliZSAvZGV2L2xvb3AjIGhhcyBhIHdyb25nIG1ham9yIG51bWJlcj8iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogTuNvIGZvaSBwb3Nz7XZlbCBsb2NhbGl6YXIgbmVuaHVtIGRpc3Bvc2l0aXZvIGRlIGxh528uXG4iCisjfiAiICAgICAgIFRhbHZleiBkZXYvbG9vcCMgdGVuaGEgdW0gbvptZXJvIHByaW5jaXBhbCBpbmNvcnJldG8/IgorCisjfiBtc2dpZCAiIgorI34gIm1vdW50OiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyN+ICIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlICh0aGVuIHJlY29tcGlsZSBvciBgaW5zbW9kIGxvb3AubycpLCBvclxuIgorI34gIiAgICAgICBtYXliZSAvZGV2L2xvb3AjIGhhcyB0aGUgd3JvbmcgbWFqb3IgbnVtYmVyPyIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBO428gZm9pIHBvc3PtdmVsIGxvY2FsaXphciBuZW5odW0gZGlzcG9zaXRpdm8gZGUgbGHnby4gVGFsdmV6IGVzdGUgIgorI34gImtlcm5lbFxuIgorI34gIiAgICAgICBu428gY29uaGXnYSBvIGRpc3Bvc2l0aXZvIGRlIGxh528gKHNlIGZvciBlc3RlIG8gY2FzbywgcmVjb21waWxlICIKKyN+ICJvdSB1c2UgYGluc21vZCBsb29wLm8nKVxuIgorI34gIiAgICAgICBvdSB0YWx2ZXogZGV2L2xvb3AjIHRlbmhhIHVtIG76bWVybyBwcmluY2lwYWwgaW5jb3JyZXRvPyIKKworI34gbXNnaWQgIkluaXQgKHVwIHRvIDE2IGhleCBkaWdpdHMpOiAiCisjfiBtc2dzdHIgIkluaWNpYWxpemHn428gKGF06SAxNiBk7WdpdG9zIGhleGFkZWNpbWFpcyk6IgorCisjfiBtc2dpZCAiTm9uLWhleCBkaWdpdCAnJWMnLlxuIgorI34gbXNnc3RyICJEaWdpdG8gbuNvIGhleGFkZWNpbWFsICclYycuXG4iCisKKyN+IG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBnZXQga2V5IGZvciBlbmNyeXB0aW9uIHN5c3RlbSAlZFxuIgorI34gbXNnc3RyICIiCisjfiAiTyBtb2RvIGRlIG9idGVyIGEgY2hhdmUgcGFyYSBvIHNpc3RlbWEgZGUgY3JpcHRvZ3JhZmlhICVkIG7jbyDpICIKKyN+ICJjb25oZWNpZG9cbiIKKworI34gbXNnaWQgIm1vdW50OiB0aGlzIHZlcnNpb24gd2FzIGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgdGhlIHR5cGUgYG5mcyciCisjfiBtc2dzdHIgIm1vdW50OiBlc3RhIHZlcnPjbyBmb2kgY29tcGlsYWRhIHNlbSBzdXBvcnRlIGFvIHRpcG8gYG5mcyciCisKKyN+IG1zZ2lkICJtb3VudDogZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIGJ5IGtlcm5lbCIKKyN+IG1zZ3N0ciAibW91bnQ6IG8gdGlwbyBkZSBzaXN0ZW1hIGRlIGFycXVpdm9zICVzIG7jbyDpIHN1cG9ydGFkbyBwZWxvIGtlcm5lbCIKKworI34gbXNnaWQgIlVVSUQiCisjfiBtc2dzdHIgIlVVSUQiCisKKyN+IG1zZ2lkICJub3QgbW91bnRlZCBhbnl0aGluZyIKKyN+IG1zZ3N0ciAibmFkYSBmb2kgbW9udGFkbyIKKworI34gbXNnaWQgInVtb3VudDogb25seSByb290IGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCisjfiBtc2dzdHIgInVtb3VudDogc29tZW50ZSByb290IHBvZGUgZGVzbW9udGFyICVzIGRlICVzIgorCisjfiBtc2dpZCAiZGVmYXVsdCIKKyN+IG1zZ3N0ciAicGFkcuNvIgorCisjfiBtc2dpZCAiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyAiCisjfiBtc2dzdHIgIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgIgorCisjfiBtc2dpZCAiZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAiCisjfiBtc2dzdHIgImZpZm86ICVsdSBsaW1pYXIsICVsdSB0ZW1wby1saW1pdGUsICIKKworI34gbXNnaWQgIiVsdSBtYXgsICVsdSBub3dcbiIKKyN+IG1zZ3N0ciAiJWx1IG3heCwgJWx1IGFnb3JhXG4iCisKKyN+IG1zZ2lkICIgd2hpY2ggeW91IGhhdmUgcmVhZCBhY2Nlc3MuXG4iCisjfiBtc2dzdHIgIiBvcyBxdWFpcyB2b2PqIHRlbSBhY2Vzc28gZGUgbGVpdHVyYS5cbiIKKworI34gbXNnaWQgIiUtMTBzJS0xMHMlLTEwcyUtMTBzJS0xMHMlLTEyc1xuIgorI34gbXNnc3RyICIlLTEwcyUtMTBzJS0xMHMlLTEwcyUtMTBzJS0xMnNcbiIKKworI34gbXNnaWQgIiAgcmRldiAtcyAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICBzZXQgdGhlIFNXQVAgZGV2aWNlIgorI34gbXNnc3RyICIiCisjfiAiICByZGV2IC1zIC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgIGRlZmluZSBvIGRpc3Bvc2l0aXZvIGRlIFNXQVAgKHBlcm11dGEpIgorCisjfiBtc2dpZCAiICBzd2FwZGV2IC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtcyIKKyN+IG1zZ3N0ciAiICBzd2FwZGV2IC4uLiAgICAgICAgICAgICAgICAgICAgIG8gbWVzbW8gcXVlIHJkZXYgLXMiCisKKyN+IG1zZ2lkICJDYW4ndCBvcGVuIGhlbHAgZmlsZSIKKyN+IG1zZ3N0ciAiTuNvIGZvaSBwb3Nz7XZlbCBhYnJpciBvIGFycXVpdm8gZGUgYWp1ZGEiCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9xdW90LnNlZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3F1b3Quc2VkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxMjJjNDYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9xdW90LnNlZApAQCAtMCwwICsxLDYgQEAKK3MvIlwoW14iXSpcKSIv4oCcXDHigJ0vZworcy9gXChbXmAnXSpcKScv4oCYXDHigJkvZworcy8gJ1woW15gJ10qXCknIC8g4oCYXDHigJkgL2cKK3MvICdcKFteYCddKlwpJyQvIOKAmFwx4oCZL2cKK3MvXidcKFteYCddKlwpJyAv4oCYXDHigJkgL2cKK3Mv4oCc4oCdLyIiL2cKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3JlbW92ZS1wb3RjZGF0ZS5zaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9yZW1vdmUtcG90Y2RhdGUuc2luCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MzZjNDkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9yZW1vdmUtcG90Y2RhdGUuc2luCkBAIC0wLDAgKzEsMTkgQEAKKyMgU2VkIHNjcmlwdCB0aGF0IHJlbW92ZSB0aGUgUE9ULUNyZWF0aW9uLURhdGUgbGluZSBpbiB0aGUgaGVhZGVyIGVudHJ5CisjIGZyb20gYSBQT1QgZmlsZS4KKyMKKyMgVGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gdGhlIGZpcnN0IGFuZCB0aGUgZm9sbG93aW5nIG9jY3VycmVuY2VzIG9mIHRoZQorIyBwYXR0ZXJuIGlzIGFjaGlldmVkIGJ5IGxvb2tpbmcgYXQgdGhlIGhvbGQgc3BhY2UuCisvXiJQT1QtQ3JlYXRpb24tRGF0ZTogLioiJC97Cit4CisjIFRlc3QgaWYgdGhlIGhvbGQgc3BhY2UgaXMgZW1wdHkuCitzL1AvUC8KK3RhCisjIFllcyBpdCB3YXMgZW1wdHkuIEZpcnN0IG9jY3VycmVuY2UuIFJlbW92ZSB0aGUgbGluZS4KK2cKK2QKK2JiCis6YQorIyBUaGUgaG9sZCBzcGFjZSB3YXMgbm9uZW1wdHkuIEZvbGxvd2luZyBvY2N1cnJlbmNlcy4gRG8gbm90aGluZy4KK3gKKzpiCit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ydS5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ydS5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRhNTkxZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3J1LmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ydS5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3J1LnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhMmVlOTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9ydS5wbwpAQCAtMCwwICsxLDEyNDc4IEBACisjIFRyYW5zbGF0aW9uIG9mIHV0aWwtbGludXgtMi4xMy1wcmU3LnBvIHRvIFJ1c3NpYW4KKyMgQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBJbmMuCisjIFRoaXMgZmlsZSBpcyBwdXQgaW4gdGhlIHB1YmxpYyBkb21haW4uCisjCisjIFBhdmVsIE1hcnlhbm92IDxhY2lkX2phY2tAdWtyLm5ldD4sIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYuCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4IDIuMTMtcHJlN1xuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT5cbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wMy0yMiAwOTozNyswMTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAwNi0wMy0wNyAxMjo0MiswMjAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBQYXZlbCBNYXJ5YW5vdiA8YWNpZF9qYWNrQHVrci5uZXQ+XG4iCisiTGFuZ3VhZ2UtVGVhbTogUnVzc2lhbiA8cnVAbGkub3JnPlxuIgorIk1JTUUtVmVyc2lvbjogMS4wXG4iCisiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUtPSTgtUlxuIgorIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKKyJYLUdlbmVyYXRvcjogS0JhYmVsIDEuMTEuMVxuIgorIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NjMKK21zZ2lkICJzZXQgcmVhZC1vbmx5IgorbXNnc3RyICLV09TBzs/XydTYINTPzNjLzyDEzNEg3tTFzsnRIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAi1dPUwc7P18nU2CDe1MXOycUt2sHQydPYIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzYKK21zZ2lkICJnZXQgcmVhZC1vbmx5IgorbXNnc3RyICLQz8zV3snU2CDUz8zYy88gxMzRIN7Uxc7J0SIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCisjLCBmdXp6eQorbXNnaWQgImdldCBsb2dpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgItDPzNXeydTYINLB2s3F0iDTxcvUz9LBIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IHBoeXNpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgItDPzNXeydTYINLB2s3F0iDTxcvUz9LBIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6OTQKK21zZ2lkICJnZXQgbWluaW11bSBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTAwCittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwNgorIywgZnV6enkKK21zZ2lkICJnZXQgYWxpZ25tZW50IG9mZnNldCIKK21zZ3N0ciAizsXXxdLO2cog0sHazcXSIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTEyCisjLCBmdXp6eQorbXNnaWQgImdldCBtYXggc2VjdG9ycyBwZXIgcmVxdWVzdCIKK21zZ3N0ciAi5M/Qz8zOydTFzNjO2cUg08XL1M/S2SDOwSDDyczJzsTSIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTE4Cittc2dpZCAiZ2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAi0M/M1d7J1Ngg0sHazcXSIMLMz8vBIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAi1dPUwc7P18nU2CDSwdrNxdIgwszPy8EiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzEKK21zZ2lkICJnZXQgMzItYml0IHNlY3RvciBjb3VudCIKK21zZ3N0ciAi0M/M1d7J1Nggy8/Myd7F09TXzyAzMi3CydTO2cgg08XL1M/Sz9ciCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAi0M/M1d7J1Ngg0sHazcXSINcgwsHK1MHIIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTQ0Cittc2dpZCAic2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAi1dPUwc7P18nU2CDV0NLF1sTBwN3FxSDe1MXOycUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTAKK21zZ2lkICJnZXQgcmVhZGFoZWFkIgorbXNnc3RyICLQz8zV3snU2CDV0NLF1sTBwN3FxSDe1MXOycUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKKyMsIGZ1enp5Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICLV09TBzs/XydTYINXQ0sXWxMHA3cXFIN7Uxc7JxSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2MworIywgZnV6enkKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgItDPzNXeydTYINXQ0sXWxMHA3cXFIN7Uxc7JxSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgIs/eydPUydTYIMLVxsXS2SIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgItDF0sXeydTB1Ngg1MHCzMnD1SDSwdrExczP1yIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAi6dPQz8zY2s/Xwc7JxTpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFvV09TSz8rT1NfBXVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgWy12fC1xXSBjb21tYW5kcyBkZXZpY2VzXG4iCittc2dzdHIgIiAgJXMgWy12fC1xXSDLz83BzsTZINXT1NLPytPU18HNXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIgorbXNnc3RyICLkz9PU1dDO2cUgy8/Nwc7E2TpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NworIywgZnV6enkKK21zZ2lkICJnZXQgc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzIgorbXNnc3RyICLQz8zV3snU2CDSwdrNxdIg1yDCwcrUwcgiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiJXM6IO7FydrXxdPUzsHRIMvPzcHOxME6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKK21zZ3N0ciAi5MzRICVzINTSxcLVxdTT0SDB0sfVzcXO1FxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6Mzc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgItDPydPLINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3VjY2VlZGVkLlxuIgorbXNnc3RyICIlcyDawdfF0tvFziDV09DF287PLlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDI3IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzOiDOxdfP2s3P1s7PIM/Uy9LZ1NggJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW9jdGwgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IM/bycLLwSDV0NLB18zFzsnRINfXz8TPzS3X2dfPxM/NIM7BICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU3RhcnRTZWMgICAgICAgICAgICBTaXplICAgRGV2aWNlXG4iCittc2dzdHIgIv7UICAgIPrQICAg88vUICAg4szLICAg7sHe88XL1CAgICAg8sHazcXSICAgIPXT1NLPytPU189cbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6XG4iCittc2dzdHIgIsnT0M/M2NrP18HOycU6XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Tk9URTogZWx2dHVuZSBvbmx5IHdvcmtzIHdpdGggMi40IGtlcm5lbHNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInBhcnNlIGVycm9yXG4iCittc2dzdHIgIs/bycLLwSDQz8nTy8EiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjExMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWlzc2luZyBibG9ja2RldmljZSwgdXNlIC1oIGZvciBoZWxwXG4iCittc2dzdHIgIiVzIM7FINHXzNHF1NPRIMLMz97O2c0g1dPU0s/K09TXz80gyczJIMbByszPzVxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImVsdnR1bmUgaXMgb25seSB1c2VmdWwgb24gb2xkZXIga2VybmVscztcbiIKKyJmb3IgMi42IHVzZSBJTyBzY2hlZHVsZXIgc3lzZnMgdHVuYWJsZXMgaW5zdGVhZC4uXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcm1hdHRpbmcgLi4uICIKK21zZ3N0ciAi99nQz8zO0cXU09Egxs/SzcHUydLP18HOycUgLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgIsfP1M/Xz1xuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmVyaWZ5aW5nIC4uLiAiCittc2dzdHIgIvfZ0M/MztHF1NPRINDSz9fF0svBIC4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MQorbXNnaWQgIlJlYWQ6ICIKK21zZ3N0ciAi/tTFzsnFOiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAi79vJwsvBIN7Uxc7J0SDDyczJzsTSwSAlZCwgz9bJxMHMz9PYICVkLCDQ0s/eydTBzs8gJWRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJiYWQgZGF0YSBpbiBjeWwgJWRcbiIKKyJDb250aW51aW5nIC4uLiAiCittc2dzdHIgIiIKKyLQzM/IycUgxMHOztnFINcgw8nMyc7E0sUgJWRcbiIKKyLw0s/Ez8zWxc7JxSAuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLW4gXSBkZXZpY2VcbiIKK21zZ3N0ciAiydPQz8zY2s/Xwc7JxTogJXMgWyAtbiBdINXT1NLPytPU189cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjExOCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg0CisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxODEgZGlzay11dGlscy9ta2ZzLmJmcy5jOjExNCBkaXNrLXV0aWxzL21rZnMuYzo1MgorIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjgxMiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzIKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDg3IG1pc2MtdXRpbHMvZGRhdGUuYzoxNzkgbWlzYy11dGlscy9yZW5hbWUuYzo3OQorIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNDcgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICglcylcbiIKK21zZ3N0ciAiJXMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6IM7FIMLMz97Oz8Ug1dPU0s/K09TXz1xuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQyCittc2dpZCAiQ291bGQgbm90IGRldGVybWluZSBjdXJyZW50IGZvcm1hdCB0eXBlIgorbXNnc3RyICLuxdfP2s3P1s7PIMLZzM8gz9DSxcTFzMnU2CDUxcvV3cnKINTJ0CDGz9LNwdTBIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgIiVzLdPUz9LPzs7JyiwgJWQgxM/Sz9bFyywgJWQg08XL1C/Ez9LP1ssuIO/C3cHRIMXNy8/T1NggJWQgy+IuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIuTXz8rOz8oiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJTaW5nbGUiCittc2dzdHIgIu/Eyc7B0s7ZyiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaHZdIFsteCBkaXJdIGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisiIC12ICAgICAgICAgYmUgbW9yZSB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB0byB0ZXN0XG4iCittc2dzdHIgIiIKKyLJ09DPzNjaz9fBzsnFOiAlcyBbLWh2XSBbLXggy8HUwczPx10gxsHKzFxuIgorIiAtaCAgICAgICAgINfZ18/EINzUz8og09DSwdfLyVxuIgorIiAteCDLwdTBzM/HIMna18zF3sXOycUg1yDLwdTBzM/HXG4iCisiIC12ICAgICAgICAg0M/E0s/CztnKINLF1snNXG4iCisiIMbByswgICAgICAgxsHKzCDEzNEg0NLP18XSy8lcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICIo88zFxNXA3cnKIMbBysw6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2NyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIm9wZW5wdHkg2sHXxdLbyczT0SDOxdXEwd7FylxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTcyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBmYWlsZWQ6IHVuYWJsZSB0byBkZXRlcm1pbmUgZGV2aWNlIHNpemU6ICVzIgorbXNnc3RyICIlczog0NLFxNXQ0sXWxMXOycUgLSDOxdfP2s3P1s7PIM/Q0sXExczJ1Ngg0sHazcXSIMbByszP18/KINPJ09TFzdlcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIlcyDOxSDR18zRxdTT0SDCzM/eztnNINXT1NLPytPU18/NIMnMySDGwcrMz81cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4NCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI2CisjLCBmdXp6eQorbXNnaWQgImZpbGUgbGVuZ3RoIHRvbyBzaG9ydCIKK21zZ3N0ciAiJXM6IM7F18XSztnKIGNyYW1mcyAtINLB2s3F0iDGwcrMwSDTzMnby8/NIM3BzFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg5IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxOTcKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNTggZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCBmYWlsZWQ6ICVzIgorbXNnc3RyICIo88zFxNXA3cnKIMbBysw6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIwNworbXNnaWQgInN1cGVyYmxvY2sgbWFnaWMgbm90IGZvdW5kIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTYKKyMsIGZ1enp5Cittc2dpZCAidW5zdXBwb3J0ZWQgZmlsZXN5c3RlbSBmZWF0dXJlcyIKK21zZ3N0ciAi99fFxMnUxSDUydAgxsHKzM/Xz8og08nT1MXN2ToiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAi68/Myd7F09TXzyDTxcvUz9LP1yIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyMworbXNnaWQgInplcm8gZmlsZSBjb3VudCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIGV4dGVuZHMgcGFzdCBlbmQgb2YgZmlsZXN5c3RlbVxuIgorbXNnc3RyICLw0sXE1dDSxdbExc7JxTog0sHaxMXMICVzINLB09DPzM/HwcXU09EgxM8gy8/Ow8EgxMnTy8FcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogb2xkIGNyYW1mcyBmb3JtYXRcbiIKK21zZ3N0ciAiJXM6INDSxcTV0NLF1sTFzsnFIC0g09TB0tnKIM/C0sHaIGNyYW1mcywgzsXUIENSQ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjcyIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozMzkKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NzcgbG9naW4tdXRpbHMvY2hmbi5jOjUyOSBsb2dpbi11dGlscy9jaHNoLmM6NDM5CisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE0MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzIxCittc2dpZCAibWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyOTcKKyMsIGZ1enp5Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICIsIM/bycLLwSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorIywgZnV6enkKK21zZ2lkICJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiCittc2dzdHIgIsvP0s7F18/KIGlub2RlIM7FINHXzNHF1NPRIMvB1MHMz8fPzSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM4NworbXNnaWQgImRhdGEgYmxvY2sgdG9vIGxhcmdlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVjb21wcmVzc2lvbiBlcnJvciAlcCglZCk6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgaG9sZSBhdCAlbGQgKCV6ZClcbiIKK21zZ3N0ciAiICAnxNnSwScg1yAlbGQgKCVkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDIzIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICB1bmNvbXByZXNzaW5nIGJsb2NrIGF0ICVsZCB0byAlbGQgKCVsZClcbiIKK21zZ3N0ciAiICDSwdPQwcvP19nXwcXU09EgwszPyyAlbGQg1yAlbGQgKCVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm9uLWJsb2NrICglbGQpIGJ5dGVzIgorbXNnc3RyICIlczog7sXCzM/eztnFICglbGQpIMLBytTZXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vbi1zaXplICglbGQgdnMgJWxkKSBieXRlcyIKK21zZ3N0ciAiJXM6IOLF2tLB2s3F0s7ZxSAoJWxkINDSz9TJ1yAlbGQpIMLBytTZXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGZhaWxlZDogJXMiCittc2dzdHIgIijzzMXE1cDdycogxsHKzDogJXMpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibW91bnQg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibW91bnQg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXRpbWUgZmFpbGVkOiAlcyIKK21zZ3N0ciAizsXXxdLOz8Ug2s7B3sXOycUg1MHKzS3B1dTBOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJta2RpciBmYWlsZWQ6ICVzIgorbXNnc3RyICIvZGV2OiBjaGRpcigpINrB18XS28nM09EgzsXVxMHexco6ICVtIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTExCittc2dpZCAiZmlsZW5hbWUgbGVuZ3RoIGlzIHplcm8iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxNAorbXNnaWQgImJhZCBmaWxlbmFtZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUyMQorIywgZnV6enkKK21zZ2lkICJiYWQgaW5vZGUgb2Zmc2V0IgorbXNnc3RyICLOxdfF0s7ZyiDSwdrNxdIgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MzcKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTQwCittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBzaXplIGFuZCBub24temVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3MQorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzQKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2l6ZSBlcnJvciBpbiBzeW1saW5rOiAlcyIKK21zZ3N0ciAiJXM6IM/bycLLwSDSwdrNxdLBINcg08nN18/Myd7F08vPyiDT09nMy8UgYCVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzeW1saW5rIGZhaWxlZDogJXMiCittc2dzdHIgImZzeW5jINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlY2lhbCBmaWxlIGhhcyBub24temVybyBvZmZzZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlmbyBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQgaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImJvZ3VzIG1vZGU6ICVzICglbykiCittc2dzdHIgIiVzOiDGycvUydfO2cog0sXWyc0gzsEgYCVzJyAoJW8pXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rbm9kIGZhaWxlZDogJXMiCittc2dzdHIgIm1vdW50INrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Njg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisiJXM6IM7F18XSztnKIGNyYW1mcyAtIMvPzsXDIMTBzs7ZyCDLwdTBzM/HwSAoJWxkKSAhPSDOwd7BzM8gxMHOztnIIMbByszBICglIgorImxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgZmlsZSBkYXRhIG9mZnNldCIKK21zZ3N0ciAiJXM6IM7F18XSztnKIGNyYW1mcyAtIM/bycLP3s7PxSDTzcXdxc7JxSDEwc7O2cggxsHKzMFcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICLuxdfP2s3P1s7PINfZxMXMydTYIMLVxsXSLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzI3CisjLCBmdXp6eQorbXNnaWQgImNvbXBpbGVkIHdpdGhvdXQgLXggc3VwcG9ydCIKK21zZ3N0ciAiJXM6IM/Uy8/N0MnMydLP18HOIMLF2iDQz8TExdLWy8kgLXhcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtZVxuIgorbXNnc3RyICLp09DPzNjaz9fBzsnFOiAlcyBbLWxhcnZzbWZdIC9kZXYvyc3RXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiJXMg0NLJzc/O1MnSz9fBzi5cdCAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyNQorbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byBjb250aW51ZSIKK21zZ3N0ciAi99kgxMXK09TXydTFzNjOzyDIz9TJ1MUg0NLPxM/M1snU2CIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgItDSz9fF0svBINDSxdLXwc7BLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNDggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAi+s/OwSBuciA8IEZJUlNUWk9ORSDXIMbByszFIGAlcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAi+s/OwSBuciA+PSBaT05FUyDXIMbByszFIGAlcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzgwCittc2dpZCAiUmVtb3ZlIGJsb2NrIgorbXNnc3RyICL1xMHMydTYIMLMz8siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAi79vJwsvBIN7Uxc7J0TogzsXXz9rNz9bOzyDOwcrUySDCzM/LINcgxsHKzMUgJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICLv28nCy8Eg3tTFzsnROiDP28nCz97O2cogwszPyyDXIMbByszFICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisi987V1NLFzs7R0SDP28nCy8E6INDP0NnUy8Eg2sHQydPB1Nggz9vJws/eztnKIMLMz8tcbiIKKyL6wdDSz9MgzsEg2sHQydPYINDSz8nHzs/SydLP18HOXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAi0M/J08sg1yB3cml0ZV9ibG9jayDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAi79vJwsvBINrB0MnTyTogzsXXxdLO2cogwszPyyDXIMbByszFICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgItDPydPLINcgd3JpdGVfc3VwZXJfYmxvY2sg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAizsXXz9rNz9bOzyDawdDJ08HU2CDT1dDF0sLMz8siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1NgorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIu7F18/azc/Wzs8g2sHQydPB1Nggy8HS1NUgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1OAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAi7sXXz9rNz9bOzyDawdDJ08HU2CDLwdLU1SB6b25lIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICLuxdfP2s3P1s7PINrB0MnTwdTYIGlub2RlJ9kiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU4NworbXNnaWQgInNlZWsgZmFpbGVkIgorbXNnc3RyICLQz8nTyyDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTEgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6Mzk5CisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBidWZmZXIgZm9yIHN1cGVyYmxvY2siCittc2dzdHIgIs7F18/azc/Wzs8g19nExczJ1NggwtXGxdLZIMTM0SDLwdLUIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAizsXXz9rNz9bOzyDQ0s/eydTB1Ngg09XQxdLCzM/LIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICLOxdfF0s7PxSDNwcfJ3sXTy8/FIN7J08zPINcg09XQxdLCzM/LxSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE0Cittc2dpZCAiT25seSAxayBibG9ja3Mvem9uZXMgc3VwcG9ydGVkIgorbXNnc3RyICLwz8TExdLWydfBwNTT0SDUz8zYy88gMWsgwszPy8kv2s/O2SIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE2Cittc2dpZCAiYmFkIHNfaW1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgIs7F18XSzs/FINDPzMUgc19pbWFwX2Jsb2NrcyDXINPV0MXSwszPy8UiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxOAorbXNnaWQgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICLOxdfF0s7PxSDQz8zFIHNfem1hcF9ibG9ja3Mg1yDT1dDF0sLMz8vFIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjUKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiCittc2dzdHIgIu7F18/azc/Wzs8g0sHazcXT1MnU2CDC1cbF0iDEzNEgy8HS1NkgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyOAorIywgZnV6enkKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAi7sXXz9rNz9bOzyDSwdrNxdPUydTYIMLVxsXSIMTM0SDLwdLU2SBpbm9kZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICLuxdfP2s3P1s7PINLB2s3F09TJ1NggwtXGxdIgxMzRIGlub2RlJ8/XIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzYKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBjb3VudCIKK21zZ3N0ciAi7sXXz9rNz9bOzyDX2cTFzMnU2CDC1cbF0iDEzNEg3snTzMEgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIu7F18/azc/Wzs8g19nExczJ1NggwtXGxdIgxMzRIN7J08zBINrPziIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICLuxdfP2s3P1s7PINDSz97J1MHU2CDLwdLU1SBpbm9kZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgIu7F18/azc/Wzs8g0NLP3snUwdTYIMvB0tTVINrPziIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ1Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGVzIgorbXNnc3RyICLuxdfP2s3P1s7PINDSz97J1MHU2CBpbm9kZSfZIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIvDSxcTV0NLF1sTFzsnFOiDwxdLXwdEg2s/OwSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkIGlub2RlJ8/XXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGJsb2Nrc1xuIgorbXNnc3RyICIlbGQgwszPy8/XXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NCBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3RkYXRhem9uZT0lbGQgKCVsZClcbiIKK21zZ3N0ciAi8MXS18HRINrPzsEgxMHOztnIPSVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmVzaXplPSVkXG4iCittc2dzdHIgIvLB2s3F0iDaz87ZPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJNYXhzaXplPSVsZFxuIgorbXNnc3RyICLtwcvTLiDSwdrNxdI9JWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIvPP09TP0c7JxSDGwcrMz9fPyiDTydPUxc3ZPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisixMzJzsEgyc3Fzsk9JWRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjczIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtYXJrZWQgdW51c2VkLCBidXQgdXNlZCBmb3IgZmlsZSAnJXMnXG4iCittc2dzdHIgIklub2RlICVkINDPzcXexc4gy8HLIM7FydPQz8zY2tXFzdnKLCDOzyDJ09DPzNja1cXU09EgxsHKzM/NICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICLwz83F1MnU2Cwgy8HLIMnT0M/M2NrVxc3ZyiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc0OAorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZmlsZSBgJXMnIGhhcyBtb2RlICUwNW9cbiIKK21zZ3N0ciAi5sHKzCBgJXMnIM7ByM/EydTT0SDXINLF1snNxSAlMDVvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcwNiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaW5vZGUgY291bnQgdG9vIGJpZy5cbiIKK21zZ3N0ciAi8NLFxNXQ0sXWxMXOycU6IN7J08zPIGlub2RlINPMydvLz80g18XMycvPLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAiy8/SzsXXz8ogaW5vZGUgzsUg0dfM0cXU09Egy8HUwczPx8/NIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3ODggZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAi4szPyyDC2cwgydPQz8zY2s/Xwc4g0sHOxcUuIPTF0MXS2CDXIMbByszFIGAlcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3OTAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIzCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTUKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxMAorbXNnaWQgIkNsZWFyIgorbXNnc3RyICLv3snT1MnU2CIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICLizM/LICVkINcgxsHKzMUgYCVzJyDQz83F3sXOIMvByyDOxcnT0M/M2NrVxc3Zyi4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzUKK21zZ2lkICJDb3JyZWN0IgorbXNnc3RyICLp09DSwdfJ1NgiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAi68HUwczPxyAnJXMnINPPxMXS1snUIM7F18XSztnKIM7PzcXSIGlub2RlIMTM0SDGwcrMwSAnJS4qcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiD1xMHMydTYIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCittc2dzdHIgIiVzOiDOxdfF0s7ZyiDLwdTBzM/HOiAnLicgzsUg0MXS19nKXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorbXNnc3RyICIlczogzsXXxdLO2cogy8HUwczPxzogJy4uJyDOxSDX1M/Sz8pcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTE5Cittc2dpZCAiaW50ZXJuYWwgZXJyb3IiCittc2dzdHIgItfO1dTSxc7O0dEgz9vJwsvBIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTA0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiJXM6IM7F18XSztnKIMvB1MHMz8c6INLB2s3F0iA8IDMyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTM1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gYmFkX3pvbmUiCittc2dzdHIgItDPydPLINcgYmFkX3pvbmUg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICLyxdbJzSBpbm9kZSAlZCDOxSDP3sndxc4uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbm90IHVzZWQsIG1hcmtlZCB1c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJJbm9kZSAlZCDOxSDJ09DPzNja1cXU09EsINDPzcXexc4gy8HLIMnT0M/M2NrVxc3ZyiDXIGJpdG1hcCfFLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIHVzZWQsIG1hcmtlZCB1bnVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIklub2RlICVkIMnT0M/M2NrVxdTT0Swg0M/Nxd7FziDLwcsgzsXJ09DPzNja1cXN2cog1yBiaXRtYXAnxS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNgorbXNnaWQgIlNldCIKK21zZ3N0ciAi8NLJ09fPydTYIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJbm9kZSAlZCAo0sXWyc0gPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgIvDSydPXz8nU2CBpX25saW5rcyfVIN7J08zPIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIKK21zZ3N0ciAi+s/OwSAlZDog0M/Nxd7FzsEgy8HLIMnT0M/M2NrVxc3B0Swgzs8gydPQz8zY2tXA3cnIIMXFIMbByszP1yDOxdQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIvPO0dTYIM3F1MvVIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIvrPzsEgJWQ6IMnT0M/M2NrVxdTT0SwgY291bnRlZD0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbm90IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICL6z87BICVkOiDOxSDJ09DPzNja1cXU09EsIGNvdW50ZWQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorbXNnaWQgImJhZCBpbm9kZSBzaXplIgorbXNnc3RyICLOxdfF0s7ZyiDSwdrNxdIgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyOTEKK21zZ2lkICJiYWQgdjIgaW5vZGUgc2l6ZSIKK21zZ3N0ciAizsXXxdLO2cog0sHazcXSIHYyIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzE3Cittc2dpZCAibmVlZCB0ZXJtaW5hbCBmb3IgaW50ZXJhY3RpdmUgcmVwYWlycyIKK21zZ3N0ciAiztXWxc4g1MXSzcnOwcwgxMzRIMnO1MXSwcvUydfOz8fPIMnT0NLB18zFzsnRIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzIxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYICclcyciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgY2xlYW4sIG5vIGNoZWNrLlxuIgorbXNnc3RyICIlcyDeydPULCDQ0s/XxdLLwSDOxSDO1dbOwS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JjaW5nIGZpbGVzeXN0ZW0gY2hlY2sgb24gJXMuXG4iCittc2dzdHIgIvrB0NXTy8HF1NPRINDSz9fF0svBIMbByszP18/KINPJ09TFzdkgzsEgJXMuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBvbiAlcyBpcyBkaXJ0eSwgbmVlZHMgY2hlY2tpbmcuXG4iCittc2dzdHIgIubByszP18HRINPJ09TFzcEgzsEgJXMg0M/X0sXWxMXOwSwgztXWzsEg0NLP18XSy8EuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2bGQgaW5vZGVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIiCisiXG4iCisi6dPQz8zY2tXA1NPRICU2bGQgaW5vZGVzICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICLp09DPzNja1cDU09EgJTZsZCDaz84gKCVsZCUlKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmQgcmVndWxhciBmaWxlc1xuIgorIiU2ZCBkaXJlY3Rvcmllc1xuIgorIiU2ZCBjaGFyYWN0ZXIgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGJsb2NrIGRldmljZSBmaWxlc1xuIgorIiU2ZCBsaW5rc1xuIgorIiU2ZCBzeW1ib2xpYyBsaW5rc1xuIgorIi0tLS0tLVxuIgorIiU2ZCBmaWxlc1xuIgorbXNnc3RyICIiCisiXG4iCisiJTZkIM/C2d7O2cggxsHKzM/XXG4iCisiJTZkIMvB1MHMz8fP11xuIgorIiU2ZCDGwcrMz9cg08nN18/M2M7ZyCDV09TSz8rT1NdcbiIKKyIlNmQgxsHKzM/XIMLMz97O2cgg1dPU0s/K09TXXG4iCisiJTZkINPT2czPy1xuIgorIiU2ZCDTyc3Xz8zJ3sXTy8nIINPT2czPy1xuIgorIi0tLS0tLVxuIgorIiU2ZCDGwcrMz9dcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkZJTEUgU1lTVEVNIEhBUyBCRUVOIENIQU5HRURcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisi5uHq7O/34fEg8+nz9OXt4SDi+ezhIOn67eXu5e7hXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBvcGVuOiAlc1xuIgorbXNnc3RyICIlczogzsXXz9rNz9bOzyDP1MvS2dTYIDogJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzZWVrIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiDP28nCy8Eg0M/J08vBIM7BICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogz9vJwsvBIN7Uxc7J0SDOwSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9yIGNvdW50OiAlZCwgc2VjdG9yIHNpemU6ICVkXG4iCittc2dzdHIgIt7J08zPINPFy9TP0s/XOiAlZCwg0sHazcXSINPFy9TP0sE6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiDP28nCy8Eg0MHS08nOx8Egz9DDycpcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorbXNnc3RyICLp09DPzNjaz9fBzsnFOiAlcyBbLXhdIFstZCA8zs/NxdI+XSBpc285NjYwLc/C0sHaXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisi6dPQz8zY2s/Xwc7JxTogJXMgWy12XSBbLU4gy8/MLdfPX2lub2RlJ8/XXSBbLVYgyc3RX9TPzcFdXG4iCisiICAgICAgIFstRiDJzdFfxtNdINXT1NLPytPU188gW97J08zPX8LMz8vP111cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzMAorbXNnaWQgInZvbHVtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICLJzdEg1M/NwSDTzMnby8/NIMTMyc7Oz8UiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzcKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAiyc3RIMbByswuINPJ09TFzdkg08zJ28vPzSDEzMnOzs/FIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IGRldmljZSAlcyIKK21zZ3N0ciAizsXXz9rNz9bOzyDP0NLFxMXMydTYINPP09TP0c7JxSDV09TSz8rT1NfBICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIGJsb2NrIHNwZWNpYWwgZGV2aWNlIgorbXNnc3RyICIlcyDOxSDR18zRxdTT0SDP08/C2c0gwszP3s7ZzSDV09TSz8rT1NfPzSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE3MSBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMiCittc2dzdHIgIs7F18/azc/Wzs8gz9TL0tnU2CAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgIs7F18/azc/Wzs8g0M/M1d7J1Ngg0sHazcXSICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIKK21zZ3N0ciAiwdLH1c3FztQgwszPy8/XINPMydvLz80g18XMycssIM3By9PJzdXNIC0gJWx1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjAyCittc2dpZCAidG9vIG1hbnkgaW5vZGVzIC0gbWF4IGlzIDUxMiIKK21zZ3N0ciAi08zJ28vPzSDNzs/HzyBpbm9kZSfP1ywgzcHL08nN1c0gLSA1MTIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UsIG5lZWQgYXQgbGVhc3QgJWxsdSBibG9ja3MiCittc2dzdHIgIs7FIMjXwdTBxdQgzcXT1MEsIM7V1s7PIMvByyDNyc7JzdXNICVsdSDCzM/Lz9ciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjMgZmRpc2svZmRpc2suYzoyNjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZTogJXNcbiIKK21zZ3N0ciAi9dPU0s/K09TXzzogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNAorIywgYy1mb3JtYXQKK21zZ2lkICJWb2x1bWU6IDwlLTZzPlxuIgorbXNnc3RyICL0z806IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIunN0SDGwcrMLiDTydPUxc3ZOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIvLB2s3F0iDCzM/LwTogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJJbm9kZSfZOiAlZCAo1yAxIMLMz8vFKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAlbGxkIGJsb2NrcylcbiIKK21zZ3N0ciAiSW5vZGUn2TogJWQgKNcgJWxkIMLMz8vByClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tzOiAlbGxkXG4iCittc2dzdHIgIuLMz8vJOiAlbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAi68/OxcMgaW5vZGU6ICVkLCDLz87FwyDEwc7O2cg6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgIs/bycLLwSDawdDJ08kg09XQxdLCzM/LwSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI1OQorbXNnaWQgImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIKK21zZ3N0ciAiz9vJwsvBINrB0MnTySDLz9LOxdfPx88gaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjQKK21zZ2lkICJlcnJvciB3cml0aW5nIGlub2RlIgorbXNnc3RyICLP28nCy8Eg2sHQydPJIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAiz9vJwsvBINDPydPLwSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3MworbXNnaWQgImVycm9yIHdyaXRpbmcgLiBlbnRyeSIKK21zZ3N0ciAiz9vJwsvBINrB0MnTySAuINzMxc3FztTBIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6Mjc3Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAiz9vJwsvBINrB0MnTySAuLiDczMXNxc7UwSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjbG9zaW5nICVzIgorbXNnc3RyICLP28nCy8Eg2sHL0tnUydEgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBta2ZzIFstVl0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIGRldmljZSBbc2l6ZV1cbiIKK21zZ3N0ciAi6dPQz8zY2s/Xwc7JxTogbWtmcyBbLVZdIFstdCDUydBfxtNdIFvP0MPJyV/G010g1dPU0s/K09TXzyBb0sHazcXSXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo4OCBkaXNrLXV0aWxzL21rZnMuYzo5NiBmZGlzay9jZmRpc2suYzozNTMKKyM6IGdldG9wdC9nZXRvcHQuYzo4NiBnZXRvcHQvZ2V0b3B0LmM6OTYgbG9naW4tdXRpbHMvd2FsbC5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT3V0IG9mIG1lbW9yeSFcbiIKK21zZ3N0ciAiJXM6IO7FIMjXwdTBxdQg0MHN0dTJIVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtmcyAoJXMpXG4iCittc2dzdHIgIm1rZnMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MTI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaF0gWy12XSBbLWIgYmxrc2l6ZV0gWy1lIGVkaXRpb25dIFstTiBlbmRpYW5dIFstaSBmaWxlXSBbLW4gIgorIm5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAtdiAgICAgICAgIGJlIHZlcmJvc2VcbiIKKyIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgKG5vbi16ZXJvIGV4aXQgc3RhdHVzKVxuIgorIiAtYiBibGtzaXplIHVzZSB0aGlzIGJsb2Nrc2l6ZSwgbXVzdCBlcXVhbCBwYWdlIHNpemVcbiIKKyIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgY3JhbWZzIGVuZGlhbm5lc3MgKGJpZ3xsaXR0bGV8aG9zdCksIGRlZmF1bHQgaG9zdFxuIgorIiAtaSBmaWxlICAgIGluc2VydCBhIGZpbGUgaW1hZ2UgaW50byB0aGUgZmlsZXN5c3RlbSAocmVxdWlyZXMgPj0gMi40LjApXG4iCisiIC1uIG5hbWUgICAgc2V0IG5hbWUgb2YgY3JhbWZzIGZpbGVzeXN0ZW1cbiIKKyIgLXAgICAgICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIgorIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisiIC16ICAgICAgICAgbWFrZSBleHBsaWNpdCBob2xlcyAocmVxdWlyZXMgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3NlZFxuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCittc2dzdHIgIiIKKyLJ09DPzNjaz9fBzsnFOiAlcyBbLWhdIFstdl0gWy1iINLazV/CzMtdIFstZSDJ2sTBzsnFXSBbLWkgxsHKzF0gWy1uIMnN0V0gIgorIsnN0V/LwdQg19nIX8bBysxcbiIKKyIgLWggICAgICAgICDX2dfPxCDc1M/KINPQ0sHXy8lcbiIKKyIgLXYgICAgICAgICDQz8TSz8LO2cog0sXWyc1cbiIKKyIgLUUgICAgICAgICDTz9rEwc7JxSDX08XIIM/bycLPyyDTINDSxcTV0NLF1sTFzsnFzSAozsXO1czF18/KINPUwdTV0yAiCisi19nIz8TBKVxuIgorIiAtYiDS2s1fwszLIMnT0M/M2NrP18HOycUg3NTPx88g0sHazcXSwSDCzM/LwSwgxM/M1sXOINLB187R1NjT0SDSwdrNxdLVICIKKyLT1NLBzsnD2VxuIgorIiAtZSDJ2sTBzsnFINXT1MHOz9fLwSDOz83F0sEgydrEwc7J0SAo3sHT1NggZnNpZClcbiIKKyIgLWkgxsHKzCAgICDX09TB18vBIMbByszBIM/C0sHawSDXIMbByszP19XAINPJ09TFzdUgKNTSxcLVxdTT0SA+PSAyLjQuMClcbiIKKyIgLW4gyc3RICAgICDV09TBzs/Xy8Egyc3FzskgxsHKzM/Xz8og08nT1MXN2SBjcmFtZnNcbiIKKyIgLXAgICAgICAgICDawdDPzM7FzsnFICVkIMLBytTBzckgxMzRINrBx9LV2s/ezs/HzyDLz8TBXG4iCisiIC1zICAgICAgICAg08/S1MnSz9fLwSDTz8TF0tbJzc/HzyDLwdTBzM/HwSAo1dPUwdLF19vB0SDP0MPJ0SwgIgorIsnHzs/SydLVxdTT0SlcbiIKKyIgLXogICAgICAgICDTz9rEwc7JxSDR187ZyCDE2dIgKNTSxcLVxdTT0SA+PSAyLjMuMzkpXG4iCisiIMnN0V/LwdQgICAgy8/SzsXXz8ogy8HUwczPxyDT1snNwcXNz8ogxsHKzM/Xz8og08nT1MXN2VxuIgorIiDX2chfxsHKzCAgINfZyM/Ezs/KIMbBysxcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjMzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIu7BysTFzs8g08zJ28vPzSDEzMnOzs/FICgldSDCwcrUKSDJzdEgxsHKzMEgYCVzJy5cbiIKKyIg8M/WwczVytPUwSwg1dfFzMne2NTFIE1BWF9JTlBVVF9OQU1FTEVOINcgbWtjcmFtZnMuYyDJINDF0sXLz83QyczJ0tXK1MUuICAiCisi+sHXxdLbxc7JxSDSwcLP1NkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo0NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlsZXN5c3RlbSB0b28gYmlnLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAixsHKzM/XwdEg08nT1MXNwSDTzMnby8/NINfFzMnLwS4gIPrB18XS28XOycUg0sHCz9TZLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFJRUVFOiBibG9jayBcImNvbXByZXNzZWRcIiB0byA+IDIqYmxvY2tsZW5ndGggKCVsZClcbiIKK21zZ3N0ciAiQUlFRUU6IMLMz8sgXCLT1sHUXCIg1yA+IDIqxMzJzsFfwszPy8EgKCVsZClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJTYuMmYlJSAoJStsZCBieXRlcylcdCVzXG4iCittc2dzdHIgIiU2LjJmJSUgKCUrZCDCwcrUKVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorItDSxcTV0NLF1sTFzsnFOiDQ0snCzMnaydTFzNjOzyDU0sXC1cXN2cog0sHazcXSICjXxdLIztHRIMfSwc7Jw8EpINPP09TB18zRxdQgIgorIiVMZO3iLCDBIM3By9PJzcHM2M7ZyiDSwdrNxdIgz8LSwdrBIC0gJXXt4i4gIPfP2s3P1s7PINDSxdbExdfSxc3Fzs7PxSAiCisi2sHXxdLbxc7JxSDSwcLP1NkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4ODAKK21zZ2lkICJST00gaW1hZ2UgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5jbHVkaW5nOiAlc1xuIgorbXNnc3RyICL3y8zA3sHROiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEaXJlY3RvcnkgZGF0YTogJXpkIGJ5dGVzXG4iCittc2dzdHIgIuTBzs7ZxSDLwdTBzM/HwTogJWQgwsHK1FxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTA4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFdmVyeXRoaW5nOiAlemQga2lsb2J5dGVzXG4iCittc2dzdHIgIvfTxTogJWQgy8nMz8LBytRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICLz1dDF0sLMz8s6ICVkIMLBytRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDUkM6ICV4XG4iCittc2dzdHIgIkNSQzogJXhcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICIiCisizsUgyNfB1MHF1CDNxdPUwSwg19nExczFzs7Px88gxMzRIFJPTS3PwtLB2sEgKCVMZCDX2cTFzMXOzywgJWQgIgorIsnT0M/M2NrVxdTT0SlcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzMworbXNnaWQgIlJPTSBpbWFnZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTM3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIgorbXNnc3RyICL6wdDJ09ggUk9NLc/C0sHawSDawdfF0tvJzMHT2CDOxdXEwd7FyiAoJWQgJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZW5hbWVzIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMuXG4iCittc2dzdHIgItDSxcTV0NLF1sTFzsnFOiDJzcXOwSDGwcrMz9cg1c3Fztjbxc7ZIMTPIDI1NSDCwcrULlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZXJyb3JzLlxuIgorbXNnc3RyICLQ0sXE1dDSxdbExc7JxTogydot2sEgz9vJws/LIMLZzMkg0NLP0NXdxc7ZIMbByszZLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTUyCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgc2l6ZXMgdHJ1bmNhdGVkIHRvICVsdU1CIChtaW51cyAxIGJ5dGUpLlxuIgorbXNnc3RyICLQ0sXE1dDSxdbExc7JxTog0sHazcXS2SDGwcrMz9cg1c3Fztjbxc7ZIMTPICVsde3iICjNyc7V0yAxIMLBytQpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiB1aWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKyLQ0sXE1dDSxdbExc7JxTogdWlkJ9kg1c3Fztjbxc7ZIMTPICV1IMLJ1C4gICj81M8gzc/WxdQgy8HTwdTY09EgIgorIsLF2s/QwdPOz9PUyS4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorItDSxcTV0NLF1sTFzsnFOiBnaWQn2SDVzcXO2NvFztkgxM8gJXUgwsnULiAgKPzUzyDNz9bF1CDLwdPB1NjT0SAiCisiwsXaz9DB087P09TJLilcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV0FSTklORzogZGV2aWNlIG51bWJlcnMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICBUaGlzIGFsbW9zdCBjZXJ0YWlubHkgbWVhbnNcbiIKKyJ0aGF0IHNvbWUgZGV2aWNlIGZpbGVzIHdpbGwgYmUgd3JvbmcuXG4iCittc2dzdHIgIiIKKyLw8uXk9fDy5fbk5e7p5Tog3snTzM8g1dPU0s/K09TXINXNxc7Y28XOzyDEzyAldSDCydQuICD81M8g0NLBy9TJ3sXTy8lcbiIKKyLX08XHxMEgz9rOwd7BxdQsIN7UzyDOxcvP1M/S2cUgxsHKzNkg1dPU0s/K09TXIMLZzMkgzsXXxdLO2S5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWMgfCAtbCBmaWxlbmFtZV0gWy1uWFhdIFstaVhYXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAi6dPQz8zY2s/Xwc7JxTogJXMgWy1jIHwgLWwgyc3RX8bByszBXSBbLW5YWF0gWy1pWFhdIC9kZXYvyc3RIFvCzM/LyV1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2UgYSBmaWxlc3lzdGVtIGhlcmUhIgorbXNnc3RyICIlcyDQ0snNz87UydLP18HOOyDOxSDTz9rEwdfBytTFINrExdPYIMbByszP19XAINPJ09TFzdUhIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxODgKK21zZ2lkICJzZWVrIHRvIGJvb3QgYmxvY2sgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAi0M/J08sg2sHH0tXaz97Oz8fPIMLMz8vBINcgd3JpdGVfdGFibGVzINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MAorbXNnaWQgInVuYWJsZSB0byBjbGVhciBib290IHNlY3RvciIKK21zZ3N0ciAizsXXz9rNz9bOzyDP3snT1MnU2CDawcfS1drP3s7ZyiDTxcvUz9IiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MgorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAi0M/J08sg1yB3cml0ZV90YWJsZXMg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk2Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAizsXXz9rNz9bOzyDawdDJ08HU2CDLwdLU1SBpbm9kZSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk4Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICLOxdfP2s3P1s7PINrB0MnTwdTYIMvB0tTVINrPziIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjAwCittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAizsXXz9rNz9bOzyDawdDJ08HU2CBpbm9kZSfZIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgItrB0MnT2CDXIHdyaXRlX2Jsb2NrINrB18XS28nMwdPYIM7F1cTB3sXKIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMTcgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjkxCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzozNDAKK21zZ2lkICJ0b28gbWFueSBiYWQgYmxvY2tzIgorbXNnc3RyICLTzMnby8/NIM3Oz8fPINDMz8jJyCDCzM/Lz9ciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIyNQorbXNnaWQgIm5vdCBlbm91Z2ggZ29vZCBibG9ja3MiCittc2dzdHIgIs7FIMjXwdTBxdQgyM/Sz9vJyCDCzM/Lz9ciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0MAorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzIGZvciBtYXBzIgorbXNnc3RyICLOxdfP2s3P1s7PINfZxMXMydTYIMLVxsXS2SDEzNEgy8HS1CIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQ5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICLOxdfP2s3P1s7PINfZxMXMydTYIMLVxsXS2SDEzNEgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk1heHNpemU9JWxkXG4iCisiXG4iCittc2dzdHIgIiIKKyLtwcvTLiDSwdrNxdI9JWxkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ2OQorbXNnaWQgInNlZWsgZmFpbGVkIGR1cmluZyB0ZXN0aW5nIG9mIGJsb2NrcyIKK21zZ3N0ciAi0M/J08sg188g19LFzdEg0NLP18XSy8kgwszPy8/XINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJXZWlyZCB2YWx1ZXMgaW4gZG9fY2hlY2s6IHByb2JhYmx5IGJ1Z3NcbiIKK21zZ3N0ciAi7sXQz87R1M7ZxSDazsHexc7J0SDXIGRvX2NoZWNrOiDXz9rNz9bOzyDTws/KXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUwOCBkaXNrLXV0aWxzL21rc3dhcC5jOjMxNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIKK21zZ3N0ciAi0M/J08sg1yBjaGVja19ibG9ja3Mg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTE3Cittc2dpZCAiYmFkIGJsb2NrcyBiZWZvcmUgZGF0YS1hcmVhOiBjYW5ub3QgbWFrZSBmcyIKK21zZ3N0ciAi0MzPyMnFIMLMz8vJINDF0sXEIGRhdGEtYXJlYTogzsXXz9rNz9bOzyDTz9rEwdTYIMbTIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWQg0MzPyMnIIMLMz8vP11xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAiz8TJziDQzM/Iz8ogwszPy1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzUKK21zZ2lkICJjYW4ndCBvcGVuIGZpbGUgb2YgYmFkIGJsb2NrcyIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYIMbByswg0MzPyMnIIMLMz8vP1yIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQwCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICLuxdfP2s3P1s7PINDSz97J1MHU2CDTIMTJ08vP18/HzyDOwcvP0MnUxczRIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgIs/bycLLwSBzdHJ0b2w6IMvPzMnexdPU188gwszPy8/XIM7FINrBxMHOzyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBzdGF0ICVzIgorbXNnc3RyICLOxdfP2s3P1s7PIM/Q0sXExczJ1Ngg08/T1M/RzsnFICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIs7F18/azc/Wzs8gz9TL0tnU2CVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2VjdG9yIHNpemUgZm9yICVzIgorbXNnc3RyICLOxdfP2s3P1s7PINDPzNXeydTYINLB2s3F0iAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrIHNpemUgc21hbGxlciB0aGFuIHBoeXNpY2FsIHNlY3RvciBzaXplIG9mICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzaXplIG9mICVzIgorbXNnc3RyICLOxdfP2s3P1s7PINDPzNXeydTYINLB2s3F0iAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIndpbGwgbm90IHRyeSB0byBtYWtlIGZpbGVzeXN0ZW0gb24gJyVzJyIKK21zZ3N0ciAi0M/Q2dTLwSDTz9rEwdTYIMbByszP19XAINPJ09TFzdUgzsEgJyVzJyDX2dDPzM7FzsEgzsUgwtXExdQiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2NQorIywgZnV6enkKK21zZ2lkICJudW1iZXIgb2YgYmxvY2tzIHRvbyBzbWFsbCIKK21zZ3N0ciAi68/Myd7F09TXzyDTxcvUz9LP1yIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICLuxdfF0s7ZyiDSwdrNxdIg09TSwc7Jw9kgJWQsINXLwdrBzs7ZyiDQz8zY2s/XwdTFzMXNXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWQsIGluc3RlYWQgb2YgdGhlIHN5c3RlbSB2YWx1ZSAlZFxuIgorbXNnc3RyICIiCisi6dPQz8zY2tXF1NPRINrBxMHOztnKINDPzNjaz9fB1MXMxc0g0sHazcXSINPU0sHOycPZICVkLCDXzcXT1M8g08nT1MXNztnIICIKKyLazsHexc7JyiAlZC8lZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAi7sXXxdLO2cog0sHazcXSIHN3YXAt2sHHz8zP18vBLCDNxdTLwSDOxSDawdDJ08HOwS5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFiZWwgd2FzIHRydW5jYXRlZC5cbiIKK21zZ3N0ciAi7cXUy8EgwtnMzyDVy8/Sz97FzsEuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGxhYmVsLCAiCittc2dzdHIgIsLF2iDNxdTLySwgIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1dWlkXG4iCittc2dzdHIgIs7F1CB1dWlkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jXSBbLXBQQUdFU1pdIFstTCBsYWJlbF0gWy1VIFVVSURdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICIiCisi6dPQz8zY2s/Xwc7JxTogJXMgWy1jXSBbLXYwfC12MV0gWy1wUEFHRVNaXSBbLUwgzcXUy8FdIC9kZXYvyc3RIFvCzM/LyV1cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyOTcKK21zZ2lkICJ0b28gbWFueSBiYWQgcGFnZXMiCittc2dzdHIgItPMydvLz80gzc7Px88g0MzPyMnIINPU0sHOycMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzEwIG1pc2MtdXRpbHMvbG9vay5jOjE4MiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTc5CisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDE2IHRleHQtdXRpbHMvbW9yZS5jOjIwMjcKK21zZ2lkICJPdXQgb2YgbWVtb3J5IgorbXNnc3RyICLuxSDI18HUwcXUINDBzdHUySIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBwYWdlXG4iCittc2dzdHIgIs/EzsEg0MzPyMHRINPU0sHOycPBXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSBiYWQgcGFnZXNcbiIKK21zZ3N0ciAiJWx1INDMz8jJyCDT1NLBzsnDXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDAyIGRpc2stdXRpbHMvbWtzd2FwLmM6NDM5IGRpc2stdXRpbHMvbWtzd2FwLmM6NjU5Cittc2dpZCAidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIKK21zZ3N0ciAizsXXz9rNz9bOzyDQxdLFzc/UwdTYINXT1NLPytPU188gxMzRINPXz9DJzsfBIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgbmV3IGxpYmJsa2lkIHByb2JlIgorbXNnc3RyICLOxdfP2s3P1s7PINfZxMXMydTYIMLVxsXS2SDEzNEgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgIs7F18/azc/Wzs8gz97J09TJ1Ngg2sHH0tXaz97O2cog08XL1M/SIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHdhcm5pbmc6IGRvbid0IGVyYXNlIGJvb3RiaXRzIHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoJXMgcGFydGl0aW9uIHRhYmxlIGRldGVjdGVkKS4gIgorbXNnc3RyICIgICBwICAg19nXz8Qg1MHCzMnD2SDSwdrExczP1yBCU0QiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiICAgcyAgIM/Uz8LSwdbFzsnFINDPzM7PyiDNxdTLySDEydPLwSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKGNvbXBpbGVkIHdpdGhvdXQgbGliYmxraWQpLiAiCittc2dzdHIgIiAgIHMgICDP1M/C0sHWxc7JxSDQz8zOz8ogzcXUy8kgxMnTy8EiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkb2VzIG5vdCBzdXBwb3J0IHN3YXBzcGFjZSB2ZXJzaW9uICVkLlxuIgorbXNnc3RyICIlczogz9vJwsvBOiDOxcna18XT1M7B0SDXxdLTydEgJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyLv28nCy8Eg2sHL0tnUydEgxsHKzMFcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBOb3doZXJlIHRvIHNldCB1cCBzd2FwIG9uP1xuIgorbXNnc3RyICIlczogz9vJwsvBOiDuycfExSDOxSDV09TBzs/XzMXOIMbByswg09fP0MnOx8E/XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHNpemUgJWxsdSBLaUIgaXMgbGFyZ2VyIHRoYW4gZGV2aWNlIHNpemUgJWxsdSBLaUJcbiIKK21zZ3N0ciAiJXM6IM/bycLLwTog0sHazcXSICVsdSDCz8zY28UsIN7FzSDSwdrNxdIg1dPU0s/K09TXwSAlbHVcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc3dhcCBhcmVhIG5lZWRzIHRvIGJlIGF0IGxlYXN0ICVsZCBLaUJcbiIKK21zZ3N0ciAiIgorIiVzOiDP28nCy8E6INDSz9PU0sHO09TXzyDEzNEg09fP0MnOx8EgxM/M1s7PIMLZ1Ngg0M8gy9LBys7FyiDNxdLFICVsZMviXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd2FybmluZzogdHJ1bmNhdGluZyBzd2FwIGFyZWEgdG8gJWxsdSBLaUJcbiIKK21zZ3N0ciAiJXM6INDSxcTV0NLF1sTFzsnFOiDQ0s/T1NLBztPU188gxMzRINPXz9DJzsfBINXNxc7Y28HF1NPRIMTPICVsZMviXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHdpbGwgbm90IHRyeSB0byBtYWtlIHN3YXBkZXZpY2Ugb24gJyVzJ1xuIgorbXNnc3RyICLwz9DZ1MvBINPP2sTB1Ngg1dPU0s/K09TXzyDEzNEg09fP0MnOx8EgzsEgJyVzJyDX2dDPzM7FzsEgzsUgwtXExdQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6ICVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2Ugc3dhcHNwYWNlLlxuIgorbXNnc3RyICIlcyDQ0snNz87UydLP18HOOyDOxSDTz9rEwdfBytTFINrExdPYIMbByszP19XAINPJ09TFzdUhIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAi7sXXz9rNz9bOzyDV09TBzs/XydTYINDSz9PU0sHO09TXzyDEzNEg09fP0MnOx8E6IM7F3snUwcXN2coiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIHVwIHN3YXBzcGFjZSB2ZXJzaW9uIDEsIHNpemUgPSAlbGx1IEtpQlxuIgorbXNnc3RyICIiCisi9dPUwc7B18zJ18HF1NPRINDSz9PU0sHO09TXzyDEzNEg09fP0MnOx8Eg18XS08nJICVkLCDSwdrNxdIgPSAlbGx1IMviXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byB3cml0ZSBzaWduYXR1cmUgcGFnZTogJXMiCittc2dzdHIgIs7F18/azc/Wzs8g2sHQydPB1Ngg09TSwc7Jw9Ug0yDTycfOwdTV0s/KIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY3MworbXNnaWQgImZzeW5jIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gb2J0YWluIHNlbGludXggZmlsZSBsYWJlbDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MAorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgIs7F18/azc/Wzs8gz9DSxcTFzMnU2CDTz9PUz9HOycUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgbmV3IHNlbGludXggY29udGV4dCIKK21zZ3N0ciAizsXXz9rNz9bOzyDawdDJ08HU2CBpbm9kZSfZIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5NQorbXNnaWQgImNvdWxkbid0IGNvbXB1dGUgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NzAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIHJlbGFiZWwgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgIs7F18/azc/Wzs8g0MXSxcnNxc7P18HU2CAlcyDXICVzOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiICAlcyAiCittc2dzdHIgIunT0M/M2NrP18HOycU6XG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgJyVzJyBpcyBjb250cm9sIHJhdyBkZXYgKHVzZSByYXc8Tj4gd2hlcmUgPE4+IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTQ1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIGJsb2NrIGRldmljZSAnJXMnICglcylcbiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDawcLMz8vJ0s/XwdTYIMbByswgwszPy8nSz9fLySAlczogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICLw0sXE1dDSxdbExc7JxTogJXMgzsUg0dfM0cXU09EgwszP3s7ZzSDV09TSz8rT1NfPzVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gbWFzdGVyIHJhdyBkZXZpY2UgJyIKK21zZ3N0ciAizsXXz9rNz9bOzyDP0NLFxMXMydTYINPP09TP0c7JxSDV09TSz8rT1NfBICVzIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICLOxdfP2s3P1s7PIM/Q0sXExczJ1Ngg08/T1M/RzsnFINXT1NLPytPU18EgJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIvZGV2LyVzOiDOxcLMz97Oz8Ug1dPU0s/K09TXzyIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIHJhdyBkZXZcbiIKK21zZ3N0ciAiJXMgzsUg0dfM0cXU09Egz9PPwtnNIMLMz97O2c0g1dPU0s/K09TXz80iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHF1ZXJ5aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjQxIGRpc2stdXRpbHMvcmF3LmM6MjYxCisjLCBjLWZvcm1hdAorbXNnaWQgInJhdyVkOlx0Ym91bmQgdG8gbWFqb3IgJWQsIG1pbm9yICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHNldHRpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIs/bycLLwSDP09TBzs/Xy8kg08XS18nTwTogXCIlc1wiIgorCisjOiBmZGlzay9jZmRpc2suYzozNzggZmRpc2svY2ZkaXNrLmM6MjA4MworbXNnaWQgIlVudXNhYmxlIgorbXNnc3RyICLuxcnT0M/M2NrVxc3ZyiIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgwIGZkaXNrL2NmZGlzay5jOjIwODUKK21zZ2lkICJGcmVlIFNwYWNlIgorbXNnc3RyICLz18/Cz8TOz8Ug0NLP09TSwc7T1NfPIgorCisjOiBmZGlzay9jZmRpc2suYzozODMKK21zZ2lkICJMaW51eCBleHQyIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9jZmRpc2suYzozODUKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICJMaW51eCBleHQzIgorCisjOiBmZGlzay9jZmRpc2suYzozODcKK21zZ2lkICJMaW51eCBYRlMiCittc2dzdHIgIkxpbnV4IFhGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBKRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIuTJ08sgwtnMIMnazcXOxc4uXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorItDF0sXawcfS1drJ1MUg08nT1MXN1Swg3tTPwtkg1cLFxMnU2NPRINcg1M/NLCDe1M8g1MHCzMnDwSDSwdrExczP1yDLz9LSxcvUzs8gIgorIs/Czs/XzMXOwS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyLw8uXk9fDy5fbk5e7p5Tog5dPMySDX2SDTz9rEwdfBzMkgySDJ2s3FztHMyVxuIgorIsvBy8nFLczJws8g0sHaxMXM2SBET1MgNi54LCDQz9bBzNXK09TBLCDQ0s/e1MnUxVxuIgorIs/QxdLB1MnXztXAINPU0sHOycPVINLVy8/Xz8TT1NfBIGNmZGlzayDEzNFcbiIKKyLQz8zV3sXOydEgxM/Qz8zOydTFzNjOz8ogyc7Gz9LNwcPJyS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIu7l6fPw8uH36e3h8SDv++ni6+EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNworbXNnaWQgIlByZXNzIGFueSBrZXkgdG8gZXhpdCBjZmRpc2siCittc2dzdHIgIu7B1s3J1MUgzMDC1cAgy8zB18nb1SDEzNEg19nIz8TBIMnaIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY0IGZkaXNrL2NmZGlzay5jOjU3MgorbXNnaWQgIkNhbm5vdCBzZWVrIG9uIGRpc2sgZHJpdmUiCittc2dzdHIgIu7F18/azc/Wzs8gzsHK1MkgzsEgxMnTy8/Xz80gzsHLz9DJ1MXMxSIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY2Cittc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIKK21zZ3N0ciAi7sXXz9rNz9bOzyDQ0s/eydTB1Ngg0yDEydPLz9fPx88gzsHLz9DJ1MXM0SIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIu7F18/azc/Wzs8g2sHQydPB1NggzsEgxMnTy8/X2cogzsHLz9DJ1MXM2CIKKworIzogZmRpc2svY2ZkaXNrLmM6OTE3Cittc2dpZCAiVG9vIG1hbnkgcGFydGl0aW9ucyIKK21zZ3N0ciAi88zJ28vPzSDNzs/HzyDSwdrExczP1yIKKworIzogZmRpc2svY2ZkaXNrLmM6OTIyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIvLB2sTFzCDOwd7JzsHF1NPRIMTPINPFy9TP0sEgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTI3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICLywdrExcwg2sHLwc7eydfBxdTT0SDEzyDTxcvUz9LBIDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIvLB2sTFzCDOwd7JzsHF1NPRINDP08zFIMvPzsPBIMTJ08vBIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAi8sHaxMXMINrBy8HO3snXwcXU09Eg0M/TzMUgy8/Ow8EgxMnTy8EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk0MgorbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGluIHRoZSBmaW5hbCBwYXJ0aWFsIGN5bGluZGVyIgorbXNnc3RyICLywdrExcwg2sHLwc7eydfBxdTT0SDOwSDQz9PMxcTOxc0gw8nMyc7E0sUg0sHaxMXMwSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY2Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG5vdCBpbiBkaXNrIG9yZGVyIgorbXNnc3RyICLMz8fJ3sXTy8nFINLB2sTFzNkgycTV1CDOxSDQzyDQz9LRxMvVIMTJ08vP1yIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgIszPx8nexdPLycUg0sHaxMXM2SDQxdLFy9LZ18HA1NPRIgorCisjOiBmZGlzay9jZmRpc2suYzo5NzMKK21zZ2lkICJlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAi1dfFzMnexc7O2cUgzM/Hyd7F08vJxSDEydPLySDQxdLFy9LZ18HA1NPRIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICIiCisiISEhISD3ztXU0sXOztHRIM/bycLLwSDQ0skg08/axMHOyckgzM/Hyd7F08vPx88gxMnTy8EgwsXaINLB09vJ0sXOzs/HzyAiCisi0sHaxMXMwSAhISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDE0IGZkaXNrL2NmZGlzay5jOjEwMjYKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisi7sXXz9rNz9bOzyDTz9rEwdTYINrExdPYIMzPx8nexdPLycogxMnTyyAtLSDC2czJIMLZINPP2sTBztkgxNfBINLB09vJ0sXOztnIICIKKyLSwdrExczBIgorCisjOiBmZGlzay9jZmRpc2suYzoxMTY4Cittc2dpZCAiTWVudSBpdGVtIHRvbyBsb25nLiBNZW51IG1heSBsb29rIG9kZC4iCittc2dzdHIgIvDVzsvUIM3FzsAg08zJ28vPzSDEzMnOztnKLiDtxc7AIM3P1sXUINfZx8zRxMXU2CDOxd7F1MvPLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTIyNAorIywgZnV6enkKK21zZ2lkICJNZW51IHdpdGhvdXQgZGlyZWN0aW9uLiBEZWZhdWx0aW5nIHRvIGhvcml6b250YWwuIgorbXNnc3RyICLtxc7AIMLF2iDOwdDSwdfMxc7J0S4g8M8g1c3PzN7BzsnAIMnT0M/M2NrVxdTT0SDHz9LJ2s/O1MHM2M7PxS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAi7sXEz9DV09TJzdnKIMvMwN4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNzkKK21zZ2lkICJQcmVzcyBhIGtleSB0byBjb250aW51ZSIKK21zZ3N0ciAi7sHWzcnUxSDLzMHXydvVIMTM0SDQ0s/Ez8zWxc7J0SIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNiBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODYKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJQcmltYXJ5IgorbXNnc3RyICLv087P187PyiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNgorbXNnaWQgIkNyZWF0ZSBhIG5ldyBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAi88/axMHU2CDOz9fZyiDP087P187PyiDSwdrExcwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg1CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiTG9naWNhbCIKK21zZ3N0ciAi7M/Hyd7F08vJyiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNworbXNnaWQgIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAi88/axMHU2CDOz9fZyiDMz8fJ3sXTy8nKINLB2sTFzCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzIGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJDYW5jZWwiCittc2dzdHIgIu/UzcXOwSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICLuxSDTz9rEwdfB1Ngg0sHaxMXMIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiISEhIPfO1dTSxc7O0dEgz9vJwsvBICEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NworbXNnaWQgIlNpemUgKGluIE1CKTogIgorbXNnc3RyICLywdrNxdIgKNcg7eIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIu7B3sHMzyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgYmVnaW5uaW5nIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIuTPwsHXydTYINLB2sTFzCDXIM7B3sHMzyDT18/Cz8TOz8fPINDSz9PU0sHO09TXwSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkVuZCIKK21zZ3N0ciAi68/OxcMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICLkz8LB18nU2CDSwdrExcwg1yDLz87FwyDT18/Cz8TOz8fPINDSz9PU0sHO09TXwSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTUwMAorbXNnaWQgIk5vIHJvb20gdG8gY3JlYXRlIHRoZSBleHRlbmRlZCBwYXJ0aXRpb24iCittc2dzdHIgIu7F1CDNxdPUwSDEzNEg08/axMHOydEg0sHT28nSxc7Oz8fPINLB2sTFzMEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIu7F1CDUwcLMycPZINLB2sTFzM/XLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc4Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLiBTdGFydGluZyB3aXRoIHplcm8gdGFibGUuIgorbXNnc3RyICLuxdQg1MHCzMnD2SDSwdrExczP1y4g7sHeyc7Bxc0g1MHCzMnD1SDTIM7VzNEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIu7F18XSzsHRINPJx87B1NXSwSDXINTBwszJw8Ug0sHaxMXMz9ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTIKK21zZ2lkICJVbmtub3duIHBhcnRpdGlvbiB0YWJsZSB0eXBlIgorbXNnc3RyICLuxcna18XT1M7ZyiDUydAg1MHCzMnD2SDSwdrExczP1yIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5NAorbXNnaWQgIkRvIHlvdSB3aXNoIHRvIHN0YXJ0IHdpdGggYSB6ZXJvIHRhYmxlIFt5L05dID8iCittc2dzdHIgIujP1MnUxSDOwd7B1Ngg1MHCzMnD1SDTIM7VzNEgW8Qv7l0gPyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAi99kg1cvB2sHMySDDyczJzsTSz9cgws/M2NvFLCDexc0gzc/WxdQgwtnU2CDOwSDEydPLxSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NAorbXNnaWQgIkNhbm5vdCBvcGVuIGRpc2sgZHJpdmUiCittc2dzdHIgIu7F18/azc/Wzs8gz9TL0tnU2CDEydPLz9fZyiDOwcvP0MnUxczYIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc2IGZkaXNrL2NmZGlzay5jOjE4NjUKK21zZ2lkICJPcGVuZWQgZGlzayByZWFkLW9ubHkgLSB5b3UgaGF2ZSBubyBwZXJtaXNzaW9uIHRvIHdyaXRlIgorbXNnc3RyICLkydPLIM/Uy9LZ1CDUz8zYy88gxMzRIN7Uxc7J0SAtINUg18HTIM7F1CDSwdrSxdvFzsnRIM7BINrB0MnT2CIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY4NworbXNnaWQgIiIKKyJXYXJuaW5nISEgIFVuc3VwcG9ydGVkIEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkLiBVc2UgR05VIFBhcnRlZC4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTcwNgorbXNnaWQgIkNhbm5vdCBnZXQgZGlzayBzaXplIgorbXNnc3RyICLuxdfP2s3P1s7PINDPzNXeydTYINLB2s3F0iDEydPLwSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTczMgorbXNnaWQgIkJhZCBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAi8MzPyM/KIM/Tzs/Xzs/KINLB2sTFzCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAi8MzPyM/KIMzPx8nexdPLycog0sHaxMXMIgorCisjOiBmZGlzay9jZmRpc2suYzoxODc3Cittc2dpZCAiV2FybmluZyEhICBUaGlzIG1heSBkZXN0cm95IGRhdGEgb24geW91ciBkaXNrISIKK21zZ3N0ciAi8NLFxNXQ0sXWxMXOycUhISAg/NTPIM3P1sXUINXOyd7Uz9bJ1NggxMHOztnFIM7BINfB28XNIMTJ08vFISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4MQorbXNnaWQgIiIKKyJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrPyAoeWVzIG9yIG5vKTogIgorbXNnc3RyICIiCisi99kg1dfF0sXO2Swg3tTPIMjP1MnUxSDawdDJ08HU2CDUwcLMycPVINLB2sTFzM/XIM7BIMTJ08s/ICjEwSDJzMkgzsXUKTogIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg3Cittc2dpZCAibm8iCittc2dzdHIgIs7F1CIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4OQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIvTBwszJw8Eg0sHaxMXMz9cgzsUg2sHQydPBzsEgzsEgxMnTyyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5MQorbXNnaWQgInllcyIKK21zZ3N0ciAixMEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTUKK21zZ2lkICJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIKK21zZ3N0ciAi8M/WwczVytPUwSwg19fFxMnUxSBgxMEnIMnMySBgzsXUJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIvTBwszJw8Eg0sHaxMXMz9cg2sHQydPZ18HF1NPRIM7BIMTJ08suLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICL0wcLMycPBINLB2sTFzM/XINrB0MnTwc7BIM7BIMTJ08siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKKyMsIGZ1enp5Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIvTBwszJw8Eg0sHaxMXMz9cg2sHQydPBzsEsIM7PINDP19TP0s7PxSDe1MXOycUg1MHCzMnD2SDawdfF0tvJzM/T2CAiCisizsXVxMHexcouICDwxdLF2sHH0tXaydTF09gsIN7Uz8LZIM/Czs/XydTYINTBwszJw9UuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM2Cittc2dpZCAiTm8gcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyLuxdQgz9POz9fO2cgg0sHaxMXMz9csINDPzcXexc7O2cggy8HLINrBx9LV2s/eztnFLiBET1Mnz9fTy8nKIE1CUiDOxSDNz9bF1CAiCisi19nQz8zOydTYINrBx9LV2svVLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzOAorbXNnaWQgIiIKKyJNb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIuLPzMXFLCDexc0gz8TJziDP087P187PyiDSwdrExcwg0M/Nxd7FziDLwcsg2sHH0tXaz97O2couIERPUyfP19PLycogTUJSIM7FICIKKyLNz9bF1CDX2dDPzM7J1Ngg2sHH0tXay9UuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICL318XEydTFIMnN0SDGwcrMwSDJzMkgzsHWzcnUxSBSRVRVUk4sIN7Uz8LZINfZ18XT1MkgzsEg3MvSwc46ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAwNSBmZGlzay9jZmRpc2suYzoyMTIzIGZkaXNrL2NmZGlzay5jOjIyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIgorbXNnc3RyICLuxdfP2s3P1s7PIM/Uy9LZ1NggxsHKzCAnJXMnIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzXG4iCittc2dzdHIgIuTJ08vP19nKIM7By8/QydTFzNg6ICVzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTgKK21zZ2lkICJTZWN0b3IgMDpcbiIKK21zZ3N0ciAi88XL1M/SIDA6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkOlxuIgorbXNnc3RyICLzxcvUz9IgJWQ6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDUKK21zZ2lkICIgICBOb25lICAgIgorbXNnc3RyICIgICDuxdQgICAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDcKK21zZ2lkICIgICBQcmkvTG9nIgorbXNnc3RyICIgICDv084v7M/HIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ5Cittc2dpZCAiICAgUHJpbWFyeSIKK21zZ3N0ciAiICAg79POz9fOz8oiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIgICDsz8fJ3sXTy8nKIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICLuxcna18XT1M7ZyiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NSBmZGlzay9jZmRpc2suYzoyNTYzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOQorbXNnaWQgIkJvb3QiCittc2dzdHIgIvrBx9LV2s/eztnKIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk5Cittc2dpZCAiTm9uZSIKK21zZ3N0ciAi7sXUIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM0IGZkaXNrL2NmZGlzay5jOjIyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIFRhYmxlIGZvciAlc1xuIgorbXNnc3RyICL0wcLMycPBINLB2sTFzM/XIMTM0SAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM2Cittc2dpZCAiICAgICAgICAgICAgICAgRmlyc3QgICAgICAgTGFzdFxuIgorbXNnc3RyICIgICAgICAgICAgICAgIPDF0tfZyiAgIPDP08zFxM4uXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjIPTJ0CAgICAgICAg88XL1M/SICAgICAg88XL1M/SICAg883F3S4gICAgIOTMyc7BICAgIPTJ0CDGwcrMLtPJ09QuICAoSUQpICIKKyLmzMHHXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKKyMsIGZ1enp5Cittc2dpZCAiICAgICAgICAgLS0tU3RhcnRpbmctLS0tICAgICAgLS0tLUVuZGluZy0tLS0tICAgIFN0YXJ0ICAgICBOdW1iZXIgb2ZcbiIKK21zZ3N0ciAiICAgICAgICAgLS0tLe7B3sHMzy0tLS0gICAgICAtLS0t68/OxcMtLS0tLSAgICDwxdLX2cogICAg/snTzM9cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMgorIywgZnV6enkKK21zZ2lkICIgIyBGbGFncyBIZWFkIFNlY3QgIEN5bCAgIElEICBIZWFkIFNlY3QgIEN5bCAgICAgU2VjdG9yICAgIFNlY3RvcnNcbiIKK21zZ3N0ciAiICMg5szBx8kg58/MLiDzxcvUIOPJzCAgIElEICDnz8wuIPPFy9Qg48nMICAgICDTxcvUz9IgICAg08XL1M/Sz9dcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworIywgZnV6enkKK21zZ2lkICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICLz2dLPyiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgIvfZ18XT1Mkg1MHCzMnD1SwgydPQz8zY2tXRIMbP0s3B1CDT2dLZyCDEwc7O2cgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIvPFy9TP0tkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcKK21zZ2lkICJQcmludCB0aGUgdGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICL32dfF09TJINTBwszJw9UsINXQz9LRxM/exc7O1cAg0M8g08XL1M/Swc0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAi9MHCzMnDwSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAi8NLP09TPINfZ18XT1Mkg1MHCzMnD1SDSwdrExczP1yIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkRvbid0IHByaW50IHRoZSB0YWJsZSIKK21zZ3N0ciAi7sUg19nXz8TJ1Ngg1MHCzMnD1SIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgIvzL0sHOINPQ0sHXy8kgxMzRIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4OQorbXNnaWQgIlRoaXMgaXMgY2ZkaXNrLCBhIGN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbmluZyBwcm9ncmFtLCB3aGljaCIKK21zZ3N0ciAi/NTPIGNmZGlzayAtINDSz8vM0dTB0SDQ0s/H0sHNzcEgxMzRINLB2s3F1MvJIMTJ08vBLCDLz9TP0sHRIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkwCittc2dpZCAiYWxsb3dzIHlvdSB0byBjcmVhdGUsIGRlbGV0ZSBhbmQgbW9kaWZ5IHBhcnRpdGlvbnMgb24geW91ciBoYXJkIgorbXNnc3RyICLQz9rXz8zRxdQg18HNINPP2sTB18HU2Cwg1cTBzNHU2CDJIMnazcXO0dTYINLB2sTFzNkgzsEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTEKK21zZ2lkICJkaXNrIGRyaXZlLiIKK21zZ3N0ciAi09fPxc0gzsHLz9DJ1MXMxSDOwSDWxdPUy8/NIMTJ08vFLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MworbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKK21zZ3N0ciAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk1Cittc2dpZCAiQ29tbWFuZCAgICAgIE1lYW5pbmciCittc2dzdHIgIuvPzcHOxMEgICAgICD6zsHexc7JxSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICItLS0tLS0tICAgICAgLS0tLS0tLS0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTcKK21zZ2lkICIgIGIgICAgICAgICAgVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGIgICAgICAgICAg8MXSxcvMwN7FzsnFINrBx9LV2s/ezs/HzyDGzMHHwSDUxcvV3cXHzyDSwdrExczBIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk4Cittc2dpZCAiICBkICAgICAgICAgIERlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgZCAgICAgICAgICD1xMHMxc7JxSDUxcvV3cXHzyDSwdrExczBIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIgIGcgICAgICAgICAg883FzsEg0MHSwc3F1NLP1yDDyczJzsTSz9csIMfPzM/Xz8ssINPFy9TP0s/XIM7BIMTP0s/Wy9UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgICAgICAgICAgV0FSTklORzogVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBwZW9wbGUgd2hvIgorbXNnc3RyICIgICAgICAgICAgICAg8PLl5PXw8uX25OXu6eU6IPzUwSDP0MPJ0SDEz8zWzsEgydPQz8zY2s/XwdTY09Eg1M/M2MvPIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAxCittc2dpZCAiICAgICAgICAgICAgIGtub3cgd2hhdCB0aGV5IGFyZSBkb2luZy4iCittc2dzdHIgIiAgICAgICAgICAgICDUxc3JLCDL1M8g2s7BxdQsIN7UzyDPziDExczBxdQuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAyCittc2dpZCAiICBoICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgIGggICAgICAgICAg99nXz8Qg3NTPyiDT0NLB18vJIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAzCittc2dpZCAiICBtICAgICAgICAgIE1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIG0gICAgICAgICAg5M/XxdPUySDEzyDNwcvTyc3VzcEgydPQz8zY2s/Xwc7JxSDUxcvV3cXHzyDSwdrExczBIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA0Cittc2dpZCAiICAgICAgICAgICAgIE5vdGU6IFRoaXMgbWF5IG1ha2UgdGhlIHBhcnRpdGlvbiBpbmNvbXBhdGlibGUgd2l0aCIKK21zZ3N0ciAiICAgICAgICAgICAgIPDSyc3F3sHOycU6IPzUzyDNz9bF1CDTxMXMwdTYINLB2sTFzCDOxdPP183F09TJzdnNINMgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDYKK21zZ2lkICIgIG4gICAgICAgICAgQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICIgIG4gICAgICAgICAg88/axMHOycUgzs/Xz8fPINLB2sTFzMEgzsEg09fPws/Ezs/NINDSz9PU0sHO09TXxSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgcCAgICAgICAgICBQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIiAgcCAgICAgICAgICD32dfPxCDUwcLMycPZINLB2sTFzM/XIM7BINzL0sHOIMnMySDXIMbByswiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDgKK21zZ2lkICIgICAgICAgICAgICAgVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IGZvcm1hdHMgZm9yIHRoZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAgICAgICAgICDz1d3F09TX1cXUIM7F08vPzNjLzyDSwdrMyd7O2cggxs/SzcHUz9ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIGNob29zZSBmcm9tOiIKK21zZ3N0ciAiICAgICAgICAgICAgIMTM0SDSwdrExczP1ywgydogy8/Uz9LZyCDX2SDNz9bF1MUg19nC0sHU2DoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgICAgICAgICAgICAgciAtIFJhdyBkYXRhIChleGFjdGx5IHdoYXQgd291bGQgYmUgd3JpdHRlbiB0byBkaXNrKSIKK21zZ3N0ciAiIgorIiAgICAgICAgICAgICAgICByIC0g89nS2cUgxMHOztnFICjOxdDP09LFxNPU18XOzs8sIN7UzyDC1cTF1CDawdDJ08HOzyDOwSAiCisixMnTyykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHMgLSD0wcLMycPBLCDV0M/S0cTP3sXOzsHRINDPINPFy9TP0sHNIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEyCittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICIgICAgICAgICAgICAgICAgdCAtIPTBwszJw8Eg1yDGz9LNwdTFINPZ0tnIIMTBzs7ZyCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgcSAgICAgICAgICBRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICBxICAgICAgICAgIPfZyM/EIMnaINDSz8fSwc3N2SDCxdog2sHQydPJINTBwszJw9kg0sHaxMXMz9ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTQKK21zZ2lkICIgIHQgICAgICAgICAgQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIiAgdCAgICAgICAgICDzzcXOwSDUydDBIMbByszP18/KINPJ09TFzdkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIgIHUgICAgICAgICAg6drNxc7FzsnFIMXEyc7Jw9kgydrNxdLFzsnRIM/Uz8LSwdbBxc3Px88g0sHazcXSwSDSwdrExczBIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE2Cittc2dpZCAiICAgICAgICAgICAgIFJvdGF0ZXMgdGhyb3VnaCBNQiwgc2VjdG9ycyBhbmQgY3lsaW5kZXJzIgorbXNnc3RyICIgICAgICAgICAgICAg/sXSxcTVxdTT0SDexdLF2iDt4iwg08XL1M/S2SDJIMPJzMnOxNLZIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE3Cittc2dpZCAiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiCittc2dzdHIgIiIKKyIgIFcgICAgICAgICAg+sHQydPYINTBwszJw9kg0sHaxMXMz9cgzsEgxMnTyyAo1NLFwtXF1NPRINfXxdPUySDawcfMwdfO1cAgVykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIgICAgICAgICAgICAg9C7LLiDc1M8gzc/WxdQg0sHa0tXbydTYIMTBzs7ZxSDOwSDEydPLxSwg19kgxM/M1s7ZIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE5Cittc2dpZCAiICAgICAgICAgICAgIGVpdGhlciBjb25maXJtIG9yIGRlbnkgdGhlIHdyaXRlIGJ5IGVudGVyaW5nIGB5ZXMnIG9yIgorbXNnc3RyICIgICAgICAgICAgICAg0M/E1NfF0sTJ1NggyczJIM/UzcXOydTYINrB0MnT2CwgzsHC0sHXIGDEwScgyczJIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIwCittc2dpZCAiICAgICAgICAgICAgIGBubyciCittc2dzdHIgIiAgICAgICAgICAgICBgzsXUJyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMQorbXNnaWQgIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIgorbXNnc3RyICLz1NLFzMvBINfXxdLIIPDF0sXNxd3FzsnFIMvV0tPP0sEgzsEg0NLFxNnE1d3JyiDSwdrExcwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjIKK21zZ2lkICJEb3duIEFycm93ICAgTW92ZSBjdXJzb3IgdG8gdGhlIG5leHQgcGFydGl0aW9uIgorbXNnc3RyICLz1NLFzMvBINfOydog8MXSxc3F3cXOycUgy9XS08/SwSDOwSDTzMXE1cDdycog0sHaxMXMIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIzCittc2dpZCAiQ1RSTC1MICAgICAgIFJlZHJhd3MgdGhlIHNjcmVlbiIKK21zZ3N0ciAiQ1RSTC1MICAgICAgIPDF0sXSydPP19nXwc7JxSDcy9LBzsEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjQKK21zZ2lkICIgID8gICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgPyAgICAgICAgICD32dfPxCDc1M/KINPQ0sHXy8kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICLw0snNxd7BzsnFOiD308Ugy8/Nwc7E2SDNz8fV1CDC2dTYINfXxcTFztkg1yDXxdLIzsXNIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI3Cittc2dpZCAiY2FzZSBsZXR0ZXJzIChleGNlcHQgZm9yIFdyaXRlcykuIgorbXNnc3RyICLJzMkgzsnWzsXNINLFx8nT1NLFICjawSDJ08vMwN7FzsnFzSDawdDJ08kpLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMyCittc2dpZCAiQ3lsaW5kZXJzIgorbXNnc3RyICLjyczJzsTS2SIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OAorbXNnaWQgIkNoYW5nZSBjeWxpbmRlciBnZW9tZXRyeSIKK21zZ3N0ciAi6drNxc7J1Nggx8XPzcXU0snAIMPJzMnOxNLBIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzAKK21zZ2lkICJIZWFkcyIKK21zZ3N0ciAi58/Mz9fLySIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICLp2s3FzsnU2CDHxc/NxdTSycAgx8/Mz9fLySIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiCittc2dzdHIgIunazcXOydTYIMfFz83F1NLJwCDTxcvUz9LBIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAi58/Uz9fPIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICLnz9TP188g0yDJ2s3FzsXOycXNIMfFz83F1NLJySIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM3NAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzOiAiCittc2dzdHIgIvfXxcTJ1MUgy8/Myd7F09TXzyDDyczJzsTSz9c6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzg1IGZkaXNrL2NmZGlzay5jOjI5NTgKK21zZ2lkICJJbGxlZ2FsIGN5bGluZGVycyB2YWx1ZSIKK21zZ3N0ciAi7sXXxdLOz8Ug2s7B3sXOycUgw8nMyc7E0s/XIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzkxCittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBoZWFkczogIgorbXNnc3RyICL318XEydTFIMvPzMnexdPU188gx8/Mz9fPyzoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTggZmRpc2svY2ZkaXNrLmM6Mjk2OAorbXNnaWQgIklsbGVnYWwgaGVhZHMgdmFsdWUiCittc2dzdHIgIu7F18XSzs/FINrOwd7FzsnFIMfPzM/Xz8siCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MDQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrOiAiCittc2dzdHIgIvfXxcTJ1MUgy8/Myd7F09TXzyDTxcvUz9LP1yDOwSDEz9LP1svVOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQxMSBmZGlzay9jZmRpc2suYzoyOTc1Cittc2dpZCAiSWxsZWdhbCBzZWN0b3JzIHZhbHVlIgorbXNnc3RyICLuxdfF0s7PxSDazsHexc7JxSDTxcvUz9LP1yIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUxNAorbXNnaWQgIkVudGVyIGZpbGVzeXN0ZW0gdHlwZTogIgorbXNnc3RyICL318XEydTFINTJ0CDGwcrMz9fPyiDTydPUxc3ZOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzMgorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBlbXB0eSIKK21zZ3N0ciAi7sXXz9rNz9bOzyDJ2s3FzsnU2CDUydAg5vMgzsEg0NXT1NXAIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICLuxdfP2s3P1s7PIMnazcXOydTYINTJ0CDm8yDOwSDSwdPbydLFzs7VwCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIlVuayglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiLCBOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIk5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAi79POL+zPxyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAi7sXJ2tfF09TO2cogKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzIgorbXNnc3RyICLkydPLz9fZyiDOwcvP0MnUxczYOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICLywdrNxdI6ICVsbGQgwsHK1CwgJWxsZCDt4iIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgIvLB2s3F0jogJWxsZCDCwcrULCAlbGxkLiVsbGQg5+IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGVhZHM6ICVkICAgU2VjdG9ycyBwZXIgVHJhY2s6ICVkICAgQ3lsaW5kZXJzOiAlbGxkIgorbXNnc3RyICLnz8zP18/LOiAlZCAgIPPFy9TP0s/XIM7BIMTP0s/Wy9U6ICVkICAg48nMyc7E0s/XOiAlbGxkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgxIGxvZ2luLXV0aWxzL2NoZm4uYzozNzcKK21zZ2lkICJOYW1lIgorbXNnc3RyICLpzdEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAi5szBx8kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIvTJ0CDSwdrExczBIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg0Cittc2dpZCAiRlMgVHlwZSIKK21zZ3N0ciAi9MnQIObzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg1Cittc2dpZCAiW0xhYmVsXSIKK21zZ3N0ciAiW+3F1MvBXSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NworbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICIgICAg88XL1M/S2SIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4OQorbXNnaWQgIiAgQ3lsaW5kZXJzIgorbXNnc3RyICIgIOPJzMnOxNLZIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkxCittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIiAg8sHazcXSICjt4ikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiICDywdrNxdIgKOfiKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIkJvb3RhYmxlIgorbXNnc3RyICL6wcfS1douIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICLwxdLFy8zA3snU2CDawcfS1drP3s7ZyiDGzMHHINTFy9XdxcfPINLB2sTFzMEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUiCittc2dzdHIgIvXEwczJ1NgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICL1xMHMydTYINTFy9Xdycog0sHaxMXMIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiR2VvbWV0cnkiCittc2dzdHIgIufFz83F1NLJ0SIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkNoYW5nZSBkaXNrIGdlb21ldHJ5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICLp2s3FzsnU2CDHxc/NxdTSycAgxMnTy8EgKNTPzNjLzyDEzNEg3MvT0MXS1M/XKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIkhlbHAiCittc2dzdHIgIvPQ0sHXy8EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJQcmludCBoZWxwIHNjcmVlbiIKK21zZ3N0ciAi99nXxdPUySDcy9LBziDT0NLB18vJIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUiCittc2dzdHIgIu3By9MuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIiIKKyLkz9fF09TJIMTPIM3By9PJzdXNwSDJ09DPzNjaz9fBzsnFINTFy9XdxcfPINLB2sTFzMEgKNTPzNjLzyDEzNEg3MvT0MXS1M/XKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAi7s/X2coiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIvPP2sTB1Nggzs/X2cog0sHaxMXMIM7BINPXz8LPxM7PzSDQ0s/T1NLBztPU18UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAi99nXxdPUySIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAi99nXxdPUySDUwcLMycPVINLB2sTFzM/XIM7BINzL0sHOIMnMySDXIMbByswiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IgorbXNnc3RyICL32cjPxCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICL32crUySDJ2iDQ0s/H0sHNzdkgwsXaINrB0MnTySDUwcLMycPZINLB2sTFzM/XIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAi9MnQIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAi6drNxc7J1Ngg1MnQIMbByszP18/KINPJ09TFzdkgKERPUywgTGludXgsIE9TLzIgySDULsQuKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIlVuaXRzIgorbXNnc3RyICLlxC4gydrNLiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIkNoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSAoTUIsIHNlY3QsIGN5bCkiCittc2dzdHIgIiIKKyLp2s3FzsnU2CDFxMnOycPZIMnazcXSxc7J0SDP1M/C0sHWwcXNz8fPINLB2s3F0sEg0sHaxMXMwSAo7eIsINPFy9QuLCDDycwuKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICL6wdDJ09giCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIgorbXNnc3RyICL6wdDJ08HU2CDUwcLMycPVINLB2sTFzM/XIM7BIMTJ08sgKNzUzyDNz9bF1CDSwdrS1dvJ1NggxMHOztnFKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgwNQorbXNnaWQgIkNhbm5vdCBtYWtlIHRoaXMgcGFydGl0aW9uIGJvb3RhYmxlIgorbXNnc3RyICLuxdfP2s3P1s7PINPExczB1Ngg3NTP1CDSwdrExcwg2sHH0tXaz97O2c0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDVxMHMydTYINDV09TPyiDSwdrExcwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MzUgZmRpc2svY2ZkaXNrLmM6MjgzNworbXNnaWQgIkNhbm5vdCBtYXhpbWl6ZSB0aGlzIHBhcnRpdGlvbiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDNwcvTyc3J2snSz9fB1Ngg3NTP1CDSwdrExcwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDUKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIKK21zZ3N0ciAi/NTP1CDSwdrExcwgzsXJ09DPzNja1cXN2coiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDcKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyBhbHJlYWR5IGluIHVzZSIKK21zZ3N0ciAi/NTP1CDSwdrExcwg1dbFIMnT0M/M2NrVxdTT0SIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICLuxdfP2s3P1s7PIMnazcXOydTYINTJ0CDQ1dPUz8fPINLB2sTFzMEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAi8sHaxMXMz9cgws/M2NvFIM7F1CIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAi7sXXxdLOwdEgy8/Nwc7EwSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkxNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKK21zZ3N0ciAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIlByaW50IHZlcnNpb246XG4iCisiICAgICAgICAlcyAtdlxuIgorIlByaW50IHBhcnRpdGlvbiB0YWJsZTpcbiIKKyIgICAgICAgICVzIC1QIHtyfHN8dH0gW29wdGlvbnNdIGRldmljZVxuIgorIkludGVyYWN0aXZlIHVzZTpcbiIKKyIgICAgICAgICVzIFtvcHRpb25zXSBkZXZpY2VcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIi1hOiBVc2UgYXJyb3cgaW5zdGVhZCBvZiBoaWdobGlnaHRpbmc7XG4iCisiLXo6IFN0YXJ0IHdpdGggYSB6ZXJvIHBhcnRpdGlvbiB0YWJsZSwgaW5zdGVhZCBvZiByZWFkaW5nIHRoZSBwdCBmcm9tIGRpc2s7XG4iCisiLWMgQyAtaCBIIC1zIFM6IE92ZXJyaWRlIHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzLFxuIgorIiAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIGhlYWRzIGFuZCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2suXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyLp09DPzNjaz9fBzsnFOlxuIgorIvfZ18/EINfF0tPJyTpcbiIKKyIgICAgICAgICVzIC12XG4iCisi99nXz8Qg1MHCzMnD2SDSwdrExczP1zpcbiIKKyIgICAgICAgICVzIC1QIHtyfHN8dH0gW8/Qw8nJXSDV09TSz8rT1NfPXG4iCisi6c7UxdLBy9TJ187PxSDJ09DPzNjaz9fBzsnFOlxuIgorIiAgICAgICAgJXMgW8/Qw8nJXSDV09TSz8rT1NfPXG4iCisiXG4iCisi79DDyck6XG4iCisiLWE6IOnT0M/M2NrP18HU2CDT1NLFzMvJINfNxdPUzyDQz8TT18XUy8k7XG4iCisiLXo6IO7B3sHU2CDTIM7VzMXXz8og1MHCzMnD2SDSwdrExczP1yDXzcXT1M8g3tTFzsnRIPTyINMgxMnTy8E7XG4iCisiLWMgQyAtaCBIIC1zIFM6IPDF0sXL0tnU2CDQz87R1MnFINHE0sEgzyDLz8zJ3sXT1NfFIMPJzMnOxNLP1yxcbiIKKyIgICAgICAgICAgICAgICAgx8/Mz9fPyyDJIN7J08zFINPFy9TP0s/XIM7BIMTP0s/Wy9UuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrYWl4bGFiZWwuYzoyNworbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgQUlYIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgTGludXggY2Fubm90IGhhbmRsZSB0aGVzZVxuIgorIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisiXHRhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCisiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorIlx0ICAgdG8gcmVtb3ZlIHRoZSBkaXNrIGxvZ2ljYWxseSBmcm9tIHlvdXIgQUlYXG4iCisiXHQgICBtYWNoaW5lLiAgKE90aGVyd2lzZSB5b3UgYmVjb21lIGFuIEFJWHBlcnQpLiIKK21zZ3N0ciAiIgorIlxuIgorIlx07sEg3NTPzSDEydPLxSDF09TYINfF0s7B0SDNxdTLwSBBSVguXG4iCisiXHTrINPP1sHMxc7JwCDOwSDEwc7O2cogzc/Nxc7UIExpbnV4IM7FXG4iCisiXHTNz9bF1CDPwtLBwsHU2dfB1Ngg3NTJIMTJ08vJLiD0xc0gzsVcbiIKKyJcdM3FzsXFINfP1CDOxdPLz8zYy88g08/XxdTP1zpcbiIKKyJcdDEuIPDSySDawdDJ08kgZmRpc2sg0sHa0tXbydQg19PFIMTBzs7ZxVxuIgorIlx0ICAgzsEgxMnTy8UuXG4iCisiXHQyLiD1wsXEydTF09gsIN7Uz8LZINzUz9QgxMnTyyDu5SDR18zRzNPRXG4iCisiXHQgICDXwdbOz8og3sHT1NjAIMfS1dDQ2SDUz83P1y4gKOnOwd7FINfZXG4iCisiXHQgICDNz9bF1MUg09TF0sXU2CDX08Ugz9PUwczYztnFIMTJ08vJLFxuIgorIlx0ICAgxdPMySDPzskgzsUgz9TaxdLLwczFztkuKVxuIgorIlx0My4g8MXSxcQg1cTBzMXOycXNINzUz8fPIMbJ2snexdPLz8fPXG4iCisiXHQgICDUz83BINXCxcTJ1MXT2Cwg3tTPIMzPx8nexdPLySDVxMHMyczJXG4iCisiXHQgICDEydPLIMnaIEFJWCDT18/FyiDNwdvJztkuICjpzsHexSwg19lcbiIKKyJdXHQgICDT1MHOxdTFIEFJWHBlcnQnz80pLiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQlNEIGxhYmVsIGZvciBkZXZpY2U6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyLtxdTLwSBCU0QgxMzRINXT1NLPytPU18E6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjggZmRpc2svZmRpc2suYzozOTQgZmRpc2svZmRpc2suYzo0MTMKKyM6IGZkaXNrL2ZkaXNrLmM6NDMxIGZkaXNrL2ZkaXNrLmM6NDM4IGZkaXNrL2ZkaXNrLmM6NDYxIGZkaXNrL2ZkaXNrLmM6NDc5CisjOiBmZGlzay9mZGlzay5jOjQ5NSBmZGlzay9mZGlzay5jOjUxMQorbXNnaWQgIkNvbW1hbmQgYWN0aW9uIgorbXNnc3RyICLkxcrT1NfJxSDLz83BzsTZIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICDVxMHMxc7JxSDSwdrExczBIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMAorbXNnaWQgIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiCittc2dzdHIgIiAgIGUgICDSxcTBy9TJ0s/Xwc7JxSDEwc7O2cggxMnTy8EiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICDV09TBzs/Xy8EgYm9vdHN0cmFwIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMyCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gZmlsZXN5c3RlbSB0eXBlcyIKK21zZ3N0ciAiICAgbCAgINPQydPPyyDUydDP1yDJ2tfF09TO2cggxsHKzM/X2cgg08nT1MXNIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMzIGZkaXNrL2ZkaXNrLmM6NDAwIGZkaXNrL2ZkaXNrLmM6NDE5CisjOiBmZGlzay9mZGlzay5jOjQzMiBmZGlzay9mZGlzay5jOjQ0NCBmZGlzay9mZGlzay5jOjQ2OSBmZGlzay9mZGlzay5jOjQ4NgorIzogZmRpc2svZmRpc2suYzo1MDIgZmRpc2svZmRpc2suYzo1MjAKK21zZ2lkICIgICBtICAgcHJpbnQgdGhpcyBtZW51IgorbXNnc3RyICIgICBtICAg19nXz8Qg3NTPx88gzcXOwCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNAorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIMTPwsHXzMXOycUgzs/Xz8fPINLB2sTFzMEgQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM1Cittc2dpZCAiICAgcCAgIHByaW50IEJTRCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICDX2dfPxCDUwcLMycPZINLB2sTFzM/XIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgINfZyM/EIMLF2iDTz8jSwc7FzsnRIMnazcXOxc7JyiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiICAgciAgINfP2tfSwdQg1yDHzMHXzs/FIM3FzsAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzgKK21zZ2lkICIgICBzICAgc2hvdyBjb21wbGV0ZSBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICDP1M/C0sHWxc7JxSDQz8zOz8ogzcXUy8kgxMnTy8EiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzkKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3MgZmlsZXN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgIMnazcXOxc7JxSBpZCDGwcrMz9fPyiDTydPUxc3ZINLB2sTFzMEiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDAKK21zZ2lkICIgICB1ICAgY2hhbmdlIHVuaXRzIChjeWxpbmRlcnMvc2VjdG9ycykiCittc2dzdHIgIiAgIHUgICDJ2s3FzsXOycUgxcTJzsnDIMnazcXSxc7J0SAow8nMyc7E0tkv08XL1M/S2SkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDEKK21zZ2lkICIgICB3ICAgd3JpdGUgZGlza2xhYmVsIHRvIGRpc2siCittc2dzdHIgIiAgIHcgICDawdDJ09ggzcXUy8kgxMnTy8EgzsEgxMnTyyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MworbXNnaWQgIiAgIHggICBsaW5rIEJTRCBwYXJ0aXRpb24gdG8gbm9uLUJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIHggICDT19Ha2dfBzsnFINLB2sTFzMEgQlNEINMg0sHaxMXMz80gzsUtQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlcyBoYXMgaW52YWxpZCBzdGFydGluZyBzZWN0b3IgMC5cbiIKK21zZ3N0ciAi8sHaxMXMICVzINPPxMXS1snUIM7F18XSztnKIM7B3sHM2M7ZyiDO1czF18/KINPFy9TP0i5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIGRpc2tsYWJlbCBvZiAlcyBhdCBzZWN0b3IgJWQuXG4iCittc2dzdHIgIv7J1MHF1NPRIM3F1MvBIMTJ08vBICVzINMg08XL1M/SwSAlZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAi7sEgJXMgzsXUINLB2sTFzMEgKkJTRC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjIwMworbXNnaWQgIkJTRCBkaXNrbGFiZWwgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAi68/Nwc7EwSDNxdTLySDEydPLwSBCU0QgKG0gxMzRINPQ0sHXy8kpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyODMgZmRpc2svZmRpc2suYzoyMzI4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzgKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3QgJXMiCittc2dzdHIgIvDF0tfZyiAlcyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJXMgb3IgK3NpemUgb3IgK3NpemVNIG9yICtzaXplSyIKK21zZ3N0ciAi8M/TzMXEzsnKICVzIMnMySArc2l6ZSDJzMkgK3NpemVNIMnMySArc2l6ZUsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJXNcbiIKK21zZ3N0ciAi1MnQOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE5CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVkXG4iCittc2dzdHIgItTJ0DogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgIsTJ08s6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsYWJlbDogJS4qc1xuIgorbXNnc3RyICLNxdTLwTogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAixszBx8k6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiDT38XNztnKIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiBlY2MiCittc2dzdHIgIiBlY2MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGJhZHNlY3QiCittc2dzdHIgIiBiYWQt08XL1M/SIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzL3NlY3RvcjogJWxkXG4iCittc2dzdHIgIsLBytQv08XL1M/SOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAi08XL1M/S2S/Ez9LP1svBOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNAorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICLEz9LP1svJL8PJzMnOxNI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICLTxcvUz9LZL8PJzMnOxNI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyczogJWxkXG4iCittc2dzdHIgIsPJzMnOxNLZOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgIs/CL83JzjogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnRlcmxlYXZlOiAlZFxuIgorbXNnc3RyICLexdLFxM/Xwc7JxTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgItDF0sXLz9MgxM/Sz9bLyTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnNrZXc6ICVkXG4iCittc2dzdHIgItDF0sXLz9Mgw8nMyc7E0sE6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGVhZHN3aXRjaDogJWxkXHRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgItDF0sXLzMDexc7JxSDHz8zP18vJOiAlbGRcdFx0IyDNyczMydPFy9XOxFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQzCisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWs6ICVsZFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAi0M/J08sgxM/Sz9bLyTogJWxkXHQjIM3JzMzJ08XL1c7EXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgIsTBzs7ZxSDEydPLwTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQg0sHaxMXM2TpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIyAgICAgIM7B3sHMzyAgICAgy8/OxcMgICAgICDSwdrNxdIgICDUydAgxtMgICBbZnNpemUgYnNpemUgICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAi7cXUy8EgxMnTy8Eg2sHQydPZ18HF1NPRIM7BICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDE5IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorbXNnc3RyICIlcyDOxSDTz8TF0tbJ1CDNxdTLySDEydPLwS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICLoz9TJ1MUg08/axMHU2CDNxdTL1SDEydPLwT8gKMQvzikgIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICLCwcrUL9PFy9TP0iIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NworbXNnaWQgInNlY3RvcnMvdHJhY2siCittc2dzdHIgItPFy9TP0tkvxM/Sz9bLwSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAixM/Sz9bLyS/DyczJzsTSIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NzQwIGZkaXNrL2ZkaXNrLmM6MTU5MgorIzogZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAiY3lsaW5kZXJzIgorbXNnc3RyICLDyczJzsTS2SIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ3NgorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXIiCittc2dzdHIgItPFy9TP0tkvw8nMyc7E0iIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIDw9IHNlY3RvcnMvdHJhY2sgKiB0cmFja3MvY3lsaW5kZXIgKGRlZmF1bHQpLlxuIgorbXNnc3RyICLkz8zWzs8gwtnU2CA8PSDTxcvUz9LZL8TP0s/Wy8EgKiDEz9LP1svJL8PJzMnOxNIgKNDPINXNz8zewc7JwCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODIKK21zZ2lkICJycG0iCittc2dzdHIgIs/CL83JziIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MworbXNnaWQgImludGVybGVhdmUiCittc2dzdHIgIt7F0sXEz9fBzsnFIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICLQxdLFy8/TIMTP0s/Wy8kiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgItDF0sXLz9Mgw8nMyc7E0sEiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODYKK21zZ2lkICJoZWFkc3dpdGNoIgorbXNnc3RyICLQxdLFy8zA3sXOycUgx8/Mz9fLySIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NworbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWsiCittc2dzdHIgItDPydPLIMTP0s/Wy8kiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKK21zZ3N0ciAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU1MworIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgb3ZlcmxhcHMgd2l0aCBkaXNrIGxhYmVsIVxuIgorbXNnc3RyICJCb290c3RyYXAg0MXSxcvS2dfBxdTT0SDTIM3F1MvPyiDEydPLwSFcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iCittc2dzdHIgIkJvb3RzdHJhcCDV09TBzs/XzMXOIM7BICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAi8sHaxMXMIChhLSVjKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIuLZzM8g08/axMHOzyDNwcvTyc3BzNjOzyDXz9rNz9bOz8Ugy8/Myd7F09TXzyDSwdrExczP11xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGFscmVhZHkgZXhpc3RzLlxuIgorbXNnc3RyICL81M/UINLB2sTFzCDV1sUg09XdxdPU19XF1C5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIvDSxcTV0NLF1sTFzsnFOiDTzMnby8/NIM3Oz8fPINLB2sTFzM/XICglZCwgzcHL08nN1c0gLSAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLzyc7I0s/OydrJ0tXA1NPRIMTJ08vJLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NgorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgZmRpc2sgW29wdGlvbnNdIDxkaXNrPiAgICBjaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisiIGZkaXNrIFtvcHRpb25zXSAtbCA8ZGlzaz4gbGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyIgZmRpc2sgLXMgPHBhcnRpdGlvbj4gICAgICBnaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1iIDxzaXplPiAgICAgICAgICAgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGhlbHBcbiIKKyIgLXUgPHNpemU+ICAgICAgICAgICAgICAgICBnaXZlIHNpemVzIGluIHNlY3RvcnMgaW5zdGVhZCBvZiBjeWxpbmRlcnNcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB2ZXJzaW9uXG4iCisiIC1DIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVyc1xuIgorIiAtSCA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBoZWFkc1xuIgorIiAtUyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFja1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzXG4iCittc2dzdHIgIu7F18/azc/Wzs8gz9TL0tnU2CAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gcmVhZCAlc1xuIgorbXNnc3RyICLuxdfP2s3P1s7PINDSz97J1MHU2CAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2VlayBvbiAlc1xuIgorbXNnc3RyICLuxdfP2s3P1s7PIM7BytTJIM7BICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSAlc1xuIgorbXNnc3RyICLuxdfP2s3P1s7PINrB0MnTwdTYICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzXG4iCittc2dzdHIgIkJMS0dFVFNJWkUgaW9jdGwg2sHXxdLbyczT0SDOxdXEwd7FyiDOwSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBhbnkgbW9yZSBtZW1vcnlcbiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDX2cTFzMnU2CDF3cUg0MHN0dTJXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAi7sXJ09DSwdfJzcHRIM/bycLLwVxuIgorCisjOiBmZGlzay9mZGlzay5jOjM5NQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSByZWFkIG9ubHkgZmxhZyIKK21zZ3N0ciAiICAgYSAgINDF0sXLzMDexc7JxSDGzMHHwSDawcfS1drLySIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAg0sXEwcvUydLP18HOycUgzcXUy8kgxMnTy8EgYnNkIgorCisjOiBmZGlzay9mZGlzay5jOjM5NworbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIG1vdW50YWJsZSBmbGFnIgorbXNnc3RyICIgICBjICAg0MXSxcvMwN7FzsnFIMbMwcfBIM3PztTJ0s/Xwc7J0SIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAg1cTBzMXOycUg0sHaxMXMwSIKKworIzogZmRpc2svZmRpc2suYzozOTkgZmRpc2svZmRpc2suYzo0MTggZmRpc2svZmRpc2suYzo0NDMKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgIGwgICDT0MnTz8sgydrXxdPUztnIINTJ0M/XIMbByszP19nIINPJ09TFzSIKKworIzogZmRpc2svZmRpc2suYzo0MDEgZmRpc2svZmRpc2suYzo0MjAgZmRpc2svZmRpc2suYzo0NDUKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIMTPwsHXzMXOycUgzs/Xz8fPINLB2sTFzMEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAyIGZkaXNrL2ZkaXNrLmM6NDIxIGZkaXNrL2ZkaXNrLmM6NDMzIGZkaXNrL2ZkaXNrLmM6NDQ2Cittc2dpZCAiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBvICAg08/axMHOycUgzs/Xz8og0NXT1M/KINTBwszJw9kg0sHaxMXMz9cgRE9TIgorCisjOiBmZGlzay9mZGlzay5jOjQwMyBmZGlzay9mZGlzay5jOjQyMiBmZGlzay9mZGlzay5jOjQ0NyBmZGlzay9mZGlzay5jOjQ3MAorIzogZmRpc2svZmRpc2suYzo0ODcgZmRpc2svZmRpc2suYzo1MDMgZmRpc2svZmRpc2suYzo1MjEKK21zZ2lkICIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgINfZ18/EINTBwszJw9kg0sHaxMXMz9ciCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAg08/axMHOycUgzs/Xz8og3snT1M/KIM3F1MvJIMTJ08vBIFN1biIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgydrNxc7FzsnFIGlkINPJ09TFzdkg0sHaxMXMwSIKKworIzogZmRpc2svZmRpc2suYzo0MDcgZmRpc2svZmRpc2suYzo0MjYgZmRpc2svZmRpc2suYzo0NTEKK21zZ2lkICIgICB1ICAgY2hhbmdlIGRpc3BsYXkvZW50cnkgdW5pdHMiCittc2dzdHIgIiAgIHUgICDJ2s3FzsXOycUgxcTJzsnDIMnazcXSxc7J0SDcy9LBzsEv08/ExdLWyc3Px88iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA4IGZkaXNrL2ZkaXNrLmM6NDI3IGZkaXNrL2ZkaXNrLmM6NDUyIGZkaXNrL2ZkaXNrLmM6NDc0CisjOiBmZGlzay9mZGlzay5jOjQ5MSBmZGlzay9mZGlzay5jOjUwNyBmZGlzay9mZGlzay5jOjUyNQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgdiAgINDSz9fF0svBINTBwszJw9kg0sHaxMXMz9ciCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA5IGZkaXNrL2ZkaXNrLmM6NDI4IGZkaXNrL2ZkaXNrLmM6NDUzIGZkaXNrL2ZkaXNrLmM6NDc1CisjOiBmZGlzay9mZGlzay5jOjQ5MiBmZGlzay9mZGlzay5jOjUwOCBmZGlzay9mZGlzay5jOjUyNgorbXNnaWQgIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IgorbXNnc3RyICIgICB3ICAg2sHQydPYINTBwszJw9kg0sHaxMXMz9cgzsEgxMnTyyDJINfZyM/EIgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgICB4ICAgxM/Qz8zOydTFzNjOwdEgxtXOy8PJz87BzNjOz9PU2CAo1M/M2MvPIMTM0SDcy9PQxdLUz9cpIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAg19nCz9Ig2sHH0tXaz97Oz8fPINLB2sTFzMEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE1Cittc2dpZCAiICAgYiAgIGVkaXQgYm9vdGZpbGUgZW50cnkiCittc2dzdHIgIiAgIGIgICDSxcTBy9TJ0s/Xwc7JxSDTz8TF0tbJzc/HzyDawcfS1drP3s7Px88gxsHKzMEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE2Cittc2dpZCAiICAgYyAgIHNlbGVjdCBzZ2kgc3dhcCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGMgICDX2cLP0iDSwdrExczBIMTM0SDT18/Qyc7HwSBzZ2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDM5Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIGJvb3RhYmxlIGZsYWciCittc2dzdHIgIiAgIGEgICDQxdLFy8zA3sXOycUgxszBx8Eg2sHH0tXay8kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICAgYyAgINDF0sXLzMDexc7JxSDGzMHHwSBkb3Mt08/XzcXT1MnNz9PUySIKKworIzogZmRpc2svZmRpc2suYzo0NjIKK21zZ2lkICIgICBhICAgY2hhbmdlIG51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICIgICBhICAgydrNxc7FzsnFIMvPzMnexdPU18EgwczY1MXSzsHUydfO2cggw8nMyc7E0s/XIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgIMnazcXOxc7JxSDLz8zJ3sXT1NfBIMPJzMnOxNLP1yIKKworIzogZmRpc2svZmRpc2suYzo0NjQgZmRpc2svZmRpc2suYzo0ODIgZmRpc2svZmRpc2suYzo0OTggZmRpc2svZmRpc2suYzo1MTQKK21zZ2lkICIgICBkICAgcHJpbnQgdGhlIHJhdyBkYXRhIGluIHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGQgICDX2dfPxCDT2dLZyCDEwc7O2cgg1yDUwcLMycPFINLB2sTFzM/XIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAgydrNxc7FzsnFIMvPzMnexdPU18EgxM/Qz8zOydTFzNjO2cgg08XL1M/Sz9cgzsEgw8nMyc7E0iIKKworIzogZmRpc2svZmRpc2suYzo0NjYgZmRpc2svZmRpc2suYzo0ODUgZmRpc2svZmRpc2suYzo1MDEgZmRpc2svZmRpc2suYzo1MTgKK21zZ2lkICIgICBoICAgY2hhbmdlIG51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiICAgaCAgIMnazcXOxc7JxSDLz8zJ3sXT1NfBIMfPzM/Xz8siCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY3Cittc2dpZCAiICAgaSAgIGNoYW5nZSBpbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiICAgaSAgIMnazcXOxc7JxSDLz9zGxsnDycXO1MEg3sXSxcTP18HOydEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY4Cittc2dpZCAiICAgbyAgIGNoYW5nZSByb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiICAgbyAgIMnazcXOxc7JxSDTy8/Sz9PUySDX0sHdxc7J0SAoz8IvzcnOKSIKKworIzogZmRpc2svZmRpc2suYzo0NzMgZmRpc2svZmRpc2suYzo0OTAgZmRpc2svZmRpc2suYzo1MDYgZmRpc2svZmRpc2suYzo1MjQKK21zZ2lkICIgICBzICAgY2hhbmdlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrIgorbXNnc3RyICIgICBzICAgydrNxc7FzsnFIMvPzMnexdPU18Eg08XL1M/Sz9cgzsEgxM/Sz9bL1SIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICDJ2s3FzsXOycUgy8/Myd7F09TXwSDGydrJ3sXTy8nIIMPJzMnOxNLP1yIKKworIzogZmRpc2svZmRpc2suYzo0ODAgZmRpc2svZmRpc2suYzo0OTYgZmRpc2svZmRpc2suYzo1MTIKK21zZ2lkICIgICBiICAgbW92ZSBiZWdpbm5pbmcgb2YgZGF0YSBpbiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYiAgINDF0sXNxd3FzsnFIM7B3sHMwSDEwc7O2cgg0sHaxMXMwSIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKK21zZ2lkICIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIgICBlICAg09DJ08/LINLB09vJ0sXOztnIINLB2sTFzM/XIgorCisjOiBmZGlzay9mZGlzay5jOjQ4NCBmZGlzay9mZGlzay5jOjUwMCBmZGlzay9mZGlzay5jOjUxNworbXNnaWQgIiAgIGcgICBjcmVhdGUgYW4gSVJJWCAoU0dJKSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGcgICDTz9rEwc7JxSDUwcLMycPZINLB2sTFzM/XIElSSVggKFNHSSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE2Cittc2dpZCAiICAgZiAgIGZpeCBwYXJ0aXRpb24gb3JkZXIiCittc2dzdHIgIiAgIGYgICDawcvSxdDMxc7JxSDQz9LRxMvBINLB2sTFzM/XIgorCisjOiBmZGlzay9mZGlzay5jOjUxOQorIywgZnV6enkKK21zZ2lkICIgICBpICAgY2hhbmdlIHRoZSBkaXNrIGlkZW50aWZpZXIiCittc2dzdHIgIiAgIHUgICDJ2s3FzsXOycUgxcTJzsnDIMnazcXSxc7J0SDcy9LBzsEv08/ExdLWyc3Px88iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IHNldCIKK21zZ3N0ciAi99kgxM/M1s7ZINXT1MHOz9fJ1NgiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM2Cittc2dpZCAiaGVhZHMiCittc2dzdHIgIsfPzM/Xy8kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM4IGZkaXNrL2ZkaXNrLmM6MTU5MiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJzZWN0b3JzIgorbXNnc3RyICLTxcvUz9LZIgorCisjOiBmZGlzay9mZGlzay5jOjc0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMlcy5cbiIKKyJZb3UgY2FuIGRvIHRoaXMgZnJvbSB0aGUgZXh0cmEgZnVuY3Rpb25zIG1lbnUuXG4iCittc2dzdHIgIiIKKyIlcyVzLlxuIgorIvfZIM3P1sXUxSDTxMXMwdTYINzUzyDJ2iDNxc7AIMTP0M/MzsnUxczYztnIIMbVzsvDycouXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiDJICIKKworIzogZmRpc2svZmRpc2suYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFRoZSBzaXplIG9mIHRoaXMgZGlzayBpcyAlZC4lZCBUQiAoJWxsdSBieXRlcykuXG4iCisiRE9TIHBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgY2FuIG5vdCBiZSB1c2VkIG9uIGRyaXZlcyBmb3Igdm9sdW1lc1xuIgorImxhcmdlciB0aGFuICglbGx1IGJ5dGVzKSBmb3IgJWQtYnl0ZSBzZWN0b3JzLiBVc2UgcGFydGVkKDEpIGFuZCBHVUlEIFxuIgorInBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgKEdQVCkuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBkZXZpY2UgcHJlc2VudHMgYSBsb2dpY2FsIHNlY3RvciBzaXplIHRoYXQgaXMgc21hbGxlciB0aGFuXG4iCisidGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLiBBbGlnbmluZyB0byBhIHBoeXNpY2FsIHNlY3RvciAob3Igb3B0aW1hbFxuIgorIkkvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG9cbiIKKyIgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG9cbiIKKyIgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IGN5bGluZGVycyBhcyBkaXNwbGF5IHVuaXRzIGFyZSBkZXByZWNhdGVkLiBVc2UgY29tbWFuZCAndScgdG9cbiIKKyIgICAgICAgICBjaGFuZ2UgdW5pdHMgdG8gc2VjdG9ycy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgxOQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgb2Zmc2V0IGluIHByaW1hcnkgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIu7F18XSzs/FINPNxd3FzsnFINcgz9POz9fOz80g0sHT28nSxc7Oz80g0sHaxMXMxVxuIgorCisjOiBmZGlzay9mZGlzay5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogb21pdHRpbmcgcGFydGl0aW9ucyBhZnRlciAjJWQuXG4iCisiVGhleSB3aWxsIGJlIGRlbGV0ZWQgaWYgeW91IHNhdmUgdGhpcyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTog0NLP0NXTy8HA1NPRINLB2sTFzNkg0M/TzMUgIyVkLlxuIgorIu/OySDC1cTV1CDVxMHMxc7ZLCDF08zJINfZINPPyNLBzsnUxSDc1NUg1MHCzMnD1SDSwdrExczP1y5cbiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICIiCisi8NLFxNXQ0sXWxMXOycU6INXLwdrB1MXM2CDOwSDEz9DPzM7J1MXM2M7VwCDT09nMy9Ug1yDUwcLMycPFINLB2sTFzM/XICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTogycfOz9LJ0tXA1NPRIMTP0M/MzsnUxczYztnFIMTBzs7ZxSDXINTBwszJw8Ug0sHaxMXMz9cgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm9taXR0aW5nIGVtcHR5IHBhcnRpdGlvbiAoJWQpXG4iCittc2dzdHIgIvDSxcTV0NLF1sTFzsnFOiDQ1dPUz8og0sHaxMXMXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIvPP2sTBxdTT0SDOz9fB0SDNxdTLwSDEydPLwSBET1MuIOnazcXOxc7J0SDC1cTV1CDP09TB18HU2NPRXG4iCisi1M/M2MvPINcg0MHN0dTJIMTPINTFyCDQz9IsINDPy8Eg19kgzsUg0sXbydTFINrB0MnTwdTYIMnILlxuIgorIvDP08zFINzUz8fPLCDLz87F3s7PLCDQ0sXE2cTV3cXFINPPxMXS1snNz8UgzsXM2NrRIMLVxMXUXG4iCisi18/T09TBzs/XydTYLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAi8NLJzcXewc7JxTog0sHazcXSINPFy9TP0sEgLSAlZCAozsUgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICL32SDC1cTF1MUgzsUg1yDTz9PUz9HOyckg2sHQydPB1Ngg1MHCzMnD1SDSwdrExczP1y5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKyLuwSDc1M/NIMTJ08vFIMnNxcDU09EgzdzE1snLySBET1MgySBCU0QuXG4iCisi+sHEwcrUxSDLz83BzsTVICAnYicgxMzRINDF0sXIz8TBINcg0sXWyc0gQlNELlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSBjb250YWlucyBuZWl0aGVyIGEgdmFsaWQgRE9TIHBhcnRpdGlvbiB0YWJsZSwgbm9yIFN1biwgU0dJIG9yIE9TRiAiCisiZGlza2xhYmVsXG4iCittc2dzdHIgIiIKKyL109TSz8rT1NfPIM7FINPPxMXS1snUIM7JINfF0s7PyiDUwcLMycPZINLB2sTFzM/XIERPUywgzskgzcXUy8kgxMnTy8EgU3VuLCAiCisiU0dJIMnMySBPU0ZcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgIkludGVybmFsIGVycm9yXG4iCittc2dzdHIgIvfO1dTSxc7O0dEgz9vJwsvBXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI4MworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmluZyBleHRyYSBleHRlbmRlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAi6cfOz9LJ0tXF1NPRIMTP0M/MzsnUxczYztnKINLB09vJ0sXOztnKINLB2sTFzCAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGludmFsaWQgZmxhZyAweCUwNHggb2YgcGFydGl0aW9uIHRhYmxlICVkIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHciCisiKHJpdGUpXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTogzsXXxdLO2cogxszBxyAweCUwNHgg1MHCzMnD2SDSwdrExczP1yAlZCDC1cTF1CDJ09DSwdfMxc4gIgorItrB0MnT2MBcbiIKKworIzogZmRpc2svZmRpc2suYzoxMzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJnb3QgRU9GIHRocmljZSAtIGV4aXRpbmcuLlxuIgorbXNnc3RyICIiCisiXG4iCisi1NLJ1sTZINDPzNXexc4gRU9GIC0g2sHXxdLbxc7JxSDSwcLP1NkuLi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMzYwCittc2dpZCAiSGV4IGNvZGUgKHR5cGUgTCB0byBsaXN0IGNvZGVzKTogIgorbXNnc3RyICL7xdPUzsHEw8HUxdLJ3s7ZyiDLz8QgKNfXxcTJ1MUgTCDEzNEg0M/M1d7FzsnRINPQydPLwSDLz8TP1yk6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiJXMgKCV1LSV1LCDQzyDVzc/M3sHOycAgJXUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnN1cHBvcnRlZCBzdWZmaXg6ICclcycuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdXBwb3J0ZWQ6IDEwXk46IEtCIChLaWxvQnl0ZSksIE1CIChNZWdhQnl0ZSksIEdCIChHaWdhQnl0ZSlcbiIKKyIgICAgICAgICAgICAyXk46IEsgIChLaWJpQnl0ZSksIE0gIChNZWJpQnl0ZSksIEcgIChHaWJpQnl0ZSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgZGVmYXVsdCB2YWx1ZSAldVxuIgorbXNnc3RyICLp09DPzNja1cXU09Eg2s7B3sXOycUg0M8g1c3PzN7BzsnAICV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIvrOwd7FzsnFINrBINDSxcTFzMHNySDEycHQwdrPzsEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgIu7PzcXSINLB2sTFzMEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAi8NLFxNXQ0sXWxMXOycU6INLB2sTFzCAlZCDJzcXF1CDQ1dPUz8og1MnQXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1MSBmZGlzay9mZGlzay5jOjE1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VsZWN0ZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIvfZwtLBzs7ZyiDSwdrExcwgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAi8sHaxMXM2SDF3cUgzsUgz9DSxcTFzMXO2SFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBwcmltYXJ5IHBhcnRpdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeSFcbiIKK21zZ3N0ciAi99PFIM/Tzs/XztnFINLB2sTFzNkg1dbFIMLZzMkgz9DSxcTFzMXO2SFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAiY3lsaW5kZXIiCittc2dzdHIgIsPJzMnOxNIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgInNlY3RvciIKK21zZ3N0ciAi08XL1M/SIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICLp2s3FzsXOycUgxcTJzsnDIMnazcXSxc7J0SDcy9LBzsEv08/ExdLWyc3Px88gzsEgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAi8PLl5PXw8uX25OXu6eU6IPLB2sTFzCAlZCDOxSDR18zRxdTT0SDSwdPbydLFzs7ZzSDSwdrExczPzVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIKK21zZ3N0ciAi5szBxyBET1Mt08/XzcXT1MnNz9PUySDV09TBzs/XzMXOXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMgorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXRcbiIKK21zZ3N0ciAi5szBxyBET1Mt08/XzcXT1MnNz9PUySDOxSDV09TBzs/XzMXOXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyMworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICLywdrExcwgJWQgxd3FIM7FINPV3cXT1NfVxdQhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisi9MnQIDAgz9rOwd7BxdQg09fPws/Ezs/FINDSz9PU0sHO09TXz1xuIgorIsTM0SDNzs/Hycgg08nT1MXNICjOzyDOxSDEzNEgTGludXgpLlxuIgorIu7BzMneycUg0sHaxMXMz9cg1MnQwSAwIM7B18XSztHLwVxuIgorIs7F0sHa1c3Ozy4g99kgzc/WxdTFINXEwczJ1Ngg0sHaxMXMLFxuIgorIsnT0M/M2NrV0SDLz83BzsTVIGBkJy5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgY2Fubm90IGNoYW5nZSBhIHBhcnRpdGlvbiBpbnRvIGFuIGV4dGVuZGVkIG9uZSBvciB2aWNlIHZlcnNhXG4iCisiRGVsZXRlIGl0IGZpcnN0LlxuIgorbXNnc3RyICIiCisi99kgzsUgzc/WxdTFIMnazcXOydTYINLB2sTFzCDOwSDSwdPbydLFzs7ZyiDJzMkgzsHPws/Sz9RcbiIKKyLzzsHewczBINXEwczJ1MUgxcfPLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisi8NLFxMzBx8HF1NPRIM/T1MHXydTYINLB2sTFzCAzINcg18nExSDDxczPx88gxMnTy8EgKDUpLFxuIgorIsvByyDUz8fPIM/WycTBxdQgU3VuT1MvU29sYXJpcywgySDLz9TP0tnKIMfPxMnU09EgxMHWxSDEzNEgTGludXguXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDkgYXMgdm9sdW1lIGhlYWRlciAoMCksXG4iCisiYW5kIHBhcnRpdGlvbiAxMSBhcyBlbnRpcmUgdm9sdW1lICg2KSwgYXMgSVJJWCBleHBlY3RzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisi8NLFxMzBx8HF1NPRIM/T1MHXydTYINLB2sTFzCA5INcg18nExSDawcfPzM/Xy8Eg1M/NwSAoMCksXG4iCisiwSDSwdrExcwgMTEg1yDXycTFIMPFzM/HzyDUz83BICg2KSwgy8HLINTPx88gz9bJxMHF1CBJUklYLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICLzydPUxc3O2cog1MnQINLB2sTFzMEgJWQgydrNxc7FziDOwSAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICLzydPUxc3O2cog1MnQINLB2sTFzMEgJWQgydrNxc7FziDOwSAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyNworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGJlZ2lubmluZ3MgKG5vbi1MaW51eD8pOlxuIgorbXNnc3RyICLywdrExcwgJWQgyc3FxdQg0sHazMneztnFIMbJ2snexdPLycUvzM/Hyd7F08vJxSDOwd7BzMEgKM7FLUxpbnV4Pyk6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyOSBmZGlzay9mZGlzay5jOjE4MzcgZmRpc2svZmRpc2suYzoxODQ2IGZkaXNrL2ZkaXNrLmM6MTg1NgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKK21zZ3N0ciAiICAgICDGydo9KCVkLCAlZCwgJWQpICIKKworIzogZmRpc2svZmRpc2suYzoxODMwIGZkaXNrL2ZkaXNrLmM6MTgzOAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpY2FsPSglZCwgJWQsICVkKVxuIgorbXNnc3RyICLMz8fJ3j0oJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAi8sHaxMXMICVkIMnNxcXUINLB2szJ3s7ZxSDGydrJ3sXTy8nFL8zPx8nexdPLycUgz8vPzt7BzsnROlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICLywdrExcwgJWkgzsHeyc7BxdTT0SDOxSDOwSDH0sHOycPFIMPJzMnOxNLBOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgIsTPzNbFziDC2dTYICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICLywdrExcwgJWkgzsUg2sHLwc7eydfBxdTT0SDOwSDH0sHOycPFIMPJzMnOxNLBLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsICVkKVxuIgorbXNnc3RyICLEz8zWxc4gwtnU2CAoJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gcGh5c2ljYWwgc2VjdG9yIGJvdW5kYXJ5LlxuIgorbXNnc3RyICLywdrExcwgJWkgzsHeyc7BxdTT0SDOxSDOwSDH0sHOycPFIMPJzMnOxNLBOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisi5MnTyyAlczogJWxkIO3iLCAlbGxkIMLBytRcbiIKKworIzogZmRpc2svZmRpc2suYzoxODgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQuJWxkIEdCLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyLkydPLICVzOiAlbGQuJWxkIOfiLCAlbGxkIMLBytRcbiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlZCBoZWFkcywgJWxsdSBzZWN0b3JzL3RyYWNrLCAlZCBjeWxpbmRlcnMiCittc2dzdHIgIiVkIMfPzM/Xz8ssICVkINPFy9TP0s/XL8TP0s/Wy9UsICVkIMPJzMnOxNLP1yIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgdG90YWwgJWxsdSBzZWN0b3JzIgorbXNnc3RyICIsINfTxcfPICVsbHUg08XL1M/Sz9ciCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIuXEyc7Jw9kgPSAlcyDQzyAlZCAqICVkID0gJWQgwsHK1FxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAizsXXxdLO2cog0sHazcXSIGlub2RlIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIu7F3sXHzyDX2dDPzM7R1NguIO/exdLFxM7P09TYINXWxSDXINDP0tHEy8UuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRG9uZS5cbiIKK21zZ3N0ciAiIgorIufP1M/Xz1xuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZG9lc24ndCBsb29rIGxpa2UgYSBwYXJ0aXRpb24gdGFibGVcbiIKKyJQcm9iYWJseSB5b3Ugc2VsZWN0ZWQgdGhlIHdyb25nIGRldmljZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIvzUzyDOxSDQz8jP1sUgzsEg1MHCzMnD1SDSwdrExczP11xuIgorIvfP2s3P1s7PLCDX2SDX2cLSwczJIM7F18XSzs/FINXT1NLPytPU188uXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMg+sHH0iAgICAg7sHewczPICAgICAgIOvPzsXDICAgICAgIOLMz8vJICAgSWQgIPPJ09TFzcFcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5OAorbXNnaWQgIkRldmljZSIKK21zZ3N0ciAi9dPU0i3XzyIKKworIzogZmRpc2svZmRpc2suYzoyMTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJQYXJ0aXRpb24gdGFibGUgZW50cmllcyBhcmUgbm90IGluIGRpc2sgb3JkZXJcbiIKK21zZ3N0ciAiIgorIlxuIgorIvDVzsvU2SDUwcLMycPZINLB2sTFzM/XINLB09DPzM/Wxc7ZIM7FINcgxMnTy8/Xz80g0M/S0cTLxVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIuTJ08sgJXM6ICVkIMfPzM/Xz8ssICVkINPFy9TP0s/XLCAlZCDDyczJzsTSz9dcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICIjICBBRiDnz8wg88XLICDjycwg58/MIPPFyyAg48nMICAgIO7B3sHMzyAgICAgIPLB2s0gSURcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBjb250YWlucyBzZWN0b3IgMFxuIgorbXNnc3RyICLw0sXE1dDSxdbExc7JxTog0sHaxMXMICVkINPPxMXS1snUIM7VzMXXz8og08XL1M/SXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IGhlYWQgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAi8sHaxMXMICVkOiDHz8zP18vBICVkIMLPzNjbxSwg3sXNIM3By9PJzdXNICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICLywdrExcwgJWQ6INPFy9TP0iAlZCDCz8zY28UsIN7FzSDNwcvTyc3VzSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9ucyAlZDogY3lsaW5kZXIgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAi8sHaxMXMICVkOiDDyczJzsTSICVkIMLPzNjbxSwg3sXNIM3By9PJzdXNICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHByZXZpb3VzIHNlY3RvcnMgJWQgZGlzYWdyZWVzIHdpdGggdG90YWwgJWRcbiIKK21zZ3N0ciAi8sHaxMXMICVkOiDQ0sXE2cTV3cnFINPFy9TP0tkgJWQg0NLP1MnXz9LF3sHUINPVzc3B0s7PzdUg2s7B3sXOycAgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjIzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBzdGFydC1vZi1kYXRhIGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICLw0sXE1dDSxdbExc7JxTogzsXXxdLOz8UgzsHewczPIMTBzs7ZyCDXINLB2sTFzMUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBvdmVybGFwcyBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIvDSxcTV0NLF1sTFzsnFOiDSwdrExcwgJWQg0MXSxcvS2dfBxdQg0sHaxMXMICVkLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGlzIGVtcHR5XG4iCittc2dzdHIgIvDSxcTV0NLF1sTFzsnFOiDSwdrExcwgJWQg0NXT1FxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naWNhbCBwYXJ0aXRpb24gJWQgbm90IGVudGlyZWx5IGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICLsz8fJ3sXTy8nKINLB2sTFzCAlZCDOxSDOwcjPxMnU09Egw8XMycvPzSDXINLB2sTFzMUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlbGx1IGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIiIKKyLz1c3NwdLOz8Ugy8/Myd7F09TXzyDX2cTFzMXOztnIINPFy9TP0s/XICVkIMLPzNjbxSwg3sXNIM3By9PJzdXNICVsbGRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSZW1haW5pbmcgJWxsZCB1bmFsbG9jYXRlZCAlZC1ieXRlIHNlY3RvcnNcbiIKK21zZ3N0ciAiJWxsZCDOxdrBztHU2cgg08XL1M/Sz9dcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzAxIGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxMQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlIGl0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iCittc2dzdHIgIiIKKyLywdrExcwgJWQg1dbFIM/Q0sXExczFzi4gIPXEwczJ1MUgxcfPINDF0sXEINTFzSwgy8HLINPOz9fBIMTPwsHXydTYIMXHzy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICLzxcvUz9IgJWQg1dbFINfZxMXMxc5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGZyZWUgc2VjdG9ycyBhdmFpbGFibGVcbiIKK21zZ3N0ciAi79TT1dTT1NfVwNQgxM/T1NXQztnFINPXz8LPxM7ZxSDTxcvUz9LZXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgQUlYIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyJcdOsg08/WwczFzsnAINzUz9QgZmRpc2sgzsUgzc/WxdQgz8LSwcLB1NnXwdTYXG4iCisiXHTNxdTLySDEydPLz9cgQUlYLiDl08zJINfZIMjP1MnUxSDEz8LB18nU2FxuIgorIlx00sHaxMXM2SDUydDBIERPUywg08/axMHK1MUg087B3sHMwSDOz9fVwCDQ1dPU1cBcbiIKKyJcdNTBwszJw9Ug0sHaxMXMz9cgRE9TICjJ09DPzNja1crUxSBvKS5cbiIKKyJcdPDy5eT18PLl9uTl7unlOiDw0skg3NTPzSDTz8TF0tbJzc/FIM7BXG4iCisiXHTEwc7Oz80gxMnTy8UgwtXExdQg0sHa0tXbxc7PLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIE1hYyBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHTrINPP1sHMxc7JwCDc1M/UIGZkaXNrIM7FIM3P1sXUIM/C0sHCwdTZ18HU2FxuIgorIlx0zcXUy8kgxMnTy8/XIEFJWC4g5dPMySDX2SDIz9TJ1MUgxM/CwdfJ1NhcbiIKKyJcdNLB2sTFzNkg1MnQwSBET1MsINPP2sTBytTFINPOwd7BzMEgzs/X1cAg0NXT1NXAXG4iCisiXHTUwcLMycPVINLB2sTFzM/XIERPUyAoydPQz8zY2tXK1MUgbykuXG4iCisiXHTw8uXk9fDy5fbk5e7p5Tog8NLJINzUz80g08/ExdLWyc3PxSDOwVxuIgorIlx0xMHOzs/NIMTJ08vFIMLVxMXUINLB2tLV28XOzy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICIiCisi887B3sHMwSDX2SDEz8zWztkg1cTBzMnU2CDOxcvP1M/S2cUg0sHaxMXM2SDJIMTPwsHXydTYINLB09vJ0sXOztnKINLB2sTFzFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIGxvZ2ljYWwgcGFydGl0aW9ucyBhcmUgaW4gdXNlXG4iCittc2dzdHIgIvrBxMXK09TXz9fBztkg19PFIMzPx8nexdPLycUg0sHaxMXM2VxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nIGEgcHJpbWFyeSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAi5M/CwdfM0cXU09Egz9POz9fOz8og0sHaxMXMXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29tbWFuZCBhY3Rpb25cbiIKKyIgICAlc1xuIgorIiAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KVxuIgorbXNnc3RyICIiCisi5MXK09TXycUgy8/Nwc7E2VxuIgorIiAgICVzXG4iCisiICAgcCAgIM/Tzs/Xzs/KINLB2sTFzCAoMS00KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJsICAgbG9naWNhbCAoNSBvciBvdmVyKSIKK21zZ3N0ciAibCAgIMzPx8nexdPLycogKDUgyczJIMLPzMXFKSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAg0sHT28nSxc7O2coiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICLuxdfF0s7ZyiDOz83F0iDSwdrExczBIMTM0SDUydDBIGAlYydcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhXG4iCisiXG4iCittc2dzdHIgIiIKKyL0wcLMycPBINLB2sTFzM/XIMLZzMEgydrNxc7FzsEhXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIvfZ2tnXwcXU09EgaW9jdGwoKSDEzNEg0MXSxd7J1NnXwc7J0SDUwcLMycPZINLB2sTFzM/XLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorIlxuIgorIvDy5eT18PLl9uTl7unlOiDwxdLF3snU2dfBzsnFINTBwszJw9kg0sHaxMXMz9cg2sHXxdLbyczP09ggzsXVxMHexcog0yAiCisiz9vJwsvPyiAlZDogJXMuXG4iCisi8cTSzyDX08Ugxd3FIMnT0M/M2NrVxdQg09TB0tXAINTBwszJw9UuXG4iCisi7s/XwdEg1MHCzMnDwSDC1cTF1CDJ09DPzNjaz9fBzsEg0NLJINPMxcTVwN3FyiDQxdLF2sHH0tXay8UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyLw8uXk9fDy5fbk5e7p5Tog5dPMySDX2SDTz9rEwczJIMnMySDJ2s3FzsnMyVxuIgorIsvBy8nFLczJws8g0sHaxMXM2SBET1MgNi54LCDQz9bBzNXK09TBLCDQ0s/e1MnUxVxuIgorItPU0sHOycPVINLVy8/Xz8TT1NfBIGZkaXNrIMTM0SDQz8zV3sXOydFcbiIKKyLEz9DPzM7J1MXM2M7PyiDJzsbP0s3Bw8nJLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkVycm9yIGNsb3NpbmcgZmlsZVxuIgorbXNnc3RyICIiCisiXG4iCisi79vJwsvBINrBy9LZ1MnRIMbByszBXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICLzyc7I0s/OydrJ0tXA1NPRIMTJ08vJLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBubyBkYXRhIGFyZWFcbiIKK21zZ3N0ciAi8sHaxMXMICVkIM7FIMnNxcXUIM/CzMHT1Mkg0yDEwc7O2c3JXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAi7s/Xz8UgzsHewczPIMTBzs7ZyCIKKworIzogZmRpc2svZmRpc2suYzoyNjcyCittc2dpZCAiRXhwZXJ0IGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIuvPzcHOxNkg3MvT0MXS1MEgKG0gxMzRINPQ0sHXy8kpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY4NQorbXNnaWQgIk51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIuvPzMnexdPU188gw8nMyc7E0s/XIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIuvPzMnexdPU188gx8/Mz9fPyyIKKworIzogZmRpc2svZmRpc2suYzoyNzM3Cittc2dpZCAiTnVtYmVyIG9mIHNlY3RvcnMiCittc2dzdHIgIuvPzMnexdPU188g08XL1M/Sz9ciCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBzZXR0aW5nIHNlY3RvciBvZmZzZXQgZm9yIERPUyBjb21wYXRpYmxpdHlcbiIKK21zZ3N0ciAiIgorIvDSxcTV0NLF1sTFzsnFOiDV09TBzsHXzMnXwcXU09Eg083F3cXOycUg08XL1M/SwSDEzNEg08/XzcXT1MnNz9PUySDTIERPU1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAi7sEgxMnTy8UgJXMgz9TT1dTT1NfVxdQg18XSzsHRINTBwszJw8Eg0sHaxMXMz9dcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIu7F18/azc/Wzs8gz9TL0tnU2CAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICLOxdfP2s3P1s7PIM/Uy9LZ1NggJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IM7FydrXxdPUzsHRIMvPzcHOxMFcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICL81M8g0cTSzyDTwc3PIM7ByM/EydQg0sHazcXSINPFy9TP0sEgLSDP0MPJ0SAtYiDQ0s/Jx87P0snSz9fBzsFcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB0aGUgLWIgKHNldCBzZWN0b3Igc2l6ZSkgb3B0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggb25lIHNwZWNpZmllZCAiCisiZGV2aWNlXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTogz9DDydEgLWIgKNXT1MHOz9fLwSDSwdrNxdLBINPFy9TP0sEpIMTPzNbOwSDC2dTYICIKKyLJ09DPzNjaz9fBzsEg0yDPxM7JzSDVy8Hawc7O2c0g1dPU0s/K09TXz81cbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIiIKKyLvws7B0tXWxc7BIM3F1MvBIMTJ08vBIE9TRi8xIM7BICVzLCDX2dDPzM7RxdTT0SDQxdLFyM/EINcg0sXWyc0gzcXUy8kgIgorIsTJ08vBLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMTAKK21zZ2lkICJDb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICLrz83BzsTBIChtIMTM0SDT0NLB18vJKTogIgorCisjOiBmZGlzay9mZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBjdXJyZW50IGJvb3QgZmlsZSBpczogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIvTFy9XdycogYm9vdC3GwcrMOiAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMjgKK21zZ2lkICJQbGVhc2UgZW50ZXIgdGhlIG5hbWUgb2YgdGhlIG5ldyBib290IGZpbGU6ICIKK21zZ3N0ciAi8M/WwczVytPUwSwg19fFxMnUxSDJzdEgzs/Xz8fPIGJvb3QtxsHKzME6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiQm9vdC3GwcrMIM7FIMnazcXOxc5cbiIKKworIzogZmRpc2svZmRpc2suYzozMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdFNvcnJ5LCBubyBleHBlcnRzIG1lbnUgZm9yIFNHSSBwYXJ0aXRpb24gdGFibGVzIGF2YWlsYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx06yDTz9bBzMXOycAgzcXOwCDcy9PQxdLUwSDEzNEg1MHCzMnDINLB2sTFzM/XIFNHSSDOxSDEz9PU1dDOzy5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2ttYWNsYWJlbC5jOjMwCisjLCBmdXp6eQorbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgTWFjIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgZmRpc2soMSkgY2Fubm90IGhhbmRsZSB0aGVzZSBkaXNrcy5cbiIKKyJcdFVzZSBlaXRoZXIgcGRpc2sgb3IgcGFydGVkIHRvIG1vZGlmeSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorIlx0TmV2ZXJ0aGVsZXNzIHNvbWUgYWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorbXNnc3RyICIiCisiXG4iCisiXHTuwSDc1M/NIMTJ08vFIMXT1Ngg18XSzsHRIM3F1MvBIEFJWC5cbiIKKyJcdOsg08/WwczFzsnAIM7BIMTBzs7ZyiDNz83FztQgTGludXggzsVcbiIKKyJcdM3P1sXUIM/C0sHCwdTZ18HU2CDc1MkgxMnTy8kuIPTFzSDOxVxuIgorIlx0zcXOxcUg18/UIM7F08vPzNjLzyDTz9fF1M/XOlxuIgorIlx0MS4g8NLJINrB0MnTySBmZGlzayDSwdrS1dvJ1CDX08UgxMHOztnFXG4iCisiXHQgICDOwSDEydPLxS5cbiIKKyJcdDIuIPXCxcTJ1MXT2Cwg3tTPwtkg3NTP1CDEydPLIO7lINHXzNHM09FcbiIKKyJcdCAgINfB1s7PyiDewdPU2MAgx9LV0NDZINTPzc/XLiAo6c7B3sUg19lcbiIKKyJcdCAgIM3P1sXUxSDT1MXSxdTYINfTxSDP09TBzNjO2cUgxMnTy8ksXG4iCisiXHQgICDF08zJIM/OySDOxSDP1NrF0svBzMXO2S4pXG4iCisiXHQzLiDwxdLFxCDVxMHMxc7Jxc0g3NTPx88gxsnayd7F08vPx89cbiIKKyJcdCAgINTPzcEg1cLFxMnUxdPYLCDe1M8gzM/Hyd7F08vJINXEwczJzMlcbiIKKyJcdCAgIMTJ08sgydogQUlYINPXz8XKIM3B28nO2S4gKOnOwd7FLCDX2VxuIgorIl1cdCAgINPUwc7F1MUgQUlYcGVydCfPzSkuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODEKK21zZ2lkICJTR0kgdm9saGRyIgorbXNnc3RyICJTR0kgdm9saGRyIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODIKK21zZ2lkICJTR0kgdHJrcmVwbCIKK21zZ3N0ciAiU0dJIHRya3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MworbXNnaWQgIlNHSSBzZWNyZXBsIgorbXNnc3RyICJTR0kgc2VjcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg0Cittc2dpZCAiU0dJIHJhdyIKK21zZ3N0ciAiU0dJIHJhdyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg1Cittc2dpZCAiU0dJIGJzZCIKK21zZ3N0ciAiU0dJIGJzZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg2Cittc2dpZCAiU0dJIHN5c3YiCittc2dzdHIgIlNHSSBzeXN2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODcKK21zZ2lkICJTR0kgdm9sdW1lIgorbXNnc3RyICJTR0kgdm9sdW1lIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODgKK21zZ2lkICJTR0kgZWZzIgorbXNnc3RyICJTR0kgZWZzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODkKK21zZ2lkICJTR0kgbHZvbCIKK21zZ3N0ciAiU0dJIGx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MAorbXNnaWQgIlNHSSBybHZvbCIKK21zZ3N0ciAiU0dJIHJsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTEKK21zZ2lkICJTR0kgeGZzIgorbXNnc3RyICJTR0kgeGZzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTIKK21zZ2lkICJTR0kgeGZzbG9nIgorbXNnc3RyICJTR0kgeGZzbG9nIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTMKK21zZ2lkICJTR0kgeGx2IgorbXNnc3RyICJTR0kgeGx2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTQKK21zZ2lkICJTR0kgeHZtIgorbXNnc3RyICJTR0kgeHZtIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTUgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwCittc2dpZCAiTGludXggc3dhcCIKK21zZ3N0ciAiTGludXgg09fP0CIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk2IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MQorbXNnaWQgIkxpbnV4IG5hdGl2ZSIKK21zZ3N0ciAiTGludXgg08/C09TXxc4uIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKyL3INPPz9TXxdTT1NfJySDTIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIM3F1MvBIM7FIMTPzNbOwSDTz8TF0tbB1Nggws/MxcUgIgorIjUxMiDCwcrUXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICLvws7B0tXWxc7BIM3F1MvBIMTJ08vBIHNnaSDTIM7F18XSzs/KIMvPztTSz8zYzs/KINPVzc3Pyi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi5MnTyyAlcyAozcXUy8EgxMnTy8EgU0dJKTogJWQgx8/Mz9fPyywgJWQg08XL1M/Sz9dcbiIKKyIlZCDDyczJzsTSz9csICVkIMbJ2snexdPLycggw8nMyc7E0s/XXG4iCisiJWQgxM/QINPFy9Qvw8nMLCDexdLFxM/Xwc7JxSAlZDoxXG4iCisiJXNcbiIKKyLlxMnOycPZID0gJXMg0M8gJWQgKiAlZCDCwcrUXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi5MnTyyAlcyAozcXUy8EgxMnTy8EgU0dJKTogJWQgx8/Mz9fPyywgJWQg08XL1M/Sz9csICVkIMPJzMnOxNLP11xuIgorIuXEyc7Jw9kgPSAlcyDQzyAlZCAqICVkIMLBytRcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIi0tLS0tLSDywdrExczZIC0tLS0tLVxuIgorIvIjICUqcyAg6c7GzyAgICDuwd7BzM8gICAgIOvPzsXDICAg88XL1M/S2SAgSWQgIPPJ09TFzcFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gQm9vdGluZm8gLS0tLS1cbiIKKyJCb290ZmlsZTogJXNcbiIKKyItLS0tLSBEaXJlY3RvcnkgRW50cmllcyAtLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0gQm9vdC3JzsbPIC0tLS0tXG4iCisiQm9vdC3GwcrMOiAlc1xuIgorIi0tLS0tIPDVzsvU2SDLwdTBzM/Hz9cgLS0tLS1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiUyZDogJS0xMHMg08XL1M/SJTV1INLB2s3F0iU4dVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJJbnZhbGlkIEJvb3RmaWxlIVxuIgorIlx0VGhlIGJvb3RmaWxlIG11c3QgYmUgYW4gYWJzb2x1dGUgbm9uLXplcm8gcGF0aG5hbWUsXG4iCisiXHRlLmcuIFwiL3VuaXhcIiBvciBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIu7F18XSztnKIEJvb3QtxsHKzCFcbiIKKyJcdEJvb3QtxsHKzCDEz8zWxc4gwtnU2CDBwtPPzMDUztnNIM7FztXMxdfZzSDQ1dTF19nNIMnNxc7FzSxcbiIKKyJcdM7B0NIuIFwiL3VuaXhcIiDJzMkgXCIvdW5peC5zYXZlXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0TmFtZSBvZiBCb290ZmlsZSB0b28gbG9uZzogIDE2IGJ5dGVzIG1heGltdW0uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdOnN0SBCb290LcbByszBINPMydvLz80gxMzJzs7PxTogIM3By9PJzdXNIDE2IMLBytQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRCb290LcbByswgxM/M1sXOIMnNxdTYINDPzM7P09TYwCDV1M/ezsXOzs/FINDV1MXXz8Ugyc3RLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdPrOwcrUxSwg3tTPINPV3cXT1NfP18HOycUgYm9vdC3GwcrMwSDOxSDQ0s/XxdLRxdTT0S5cbiIKKyJcdPcgU0dJINDPINXNz8zewc7JwCAtIFwiL3VuaXhcIiDJIMTM0SDSxdrF0tfOz8ogy8/QyckgXCIvdW5peC5zYXZlXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgaXMgY2hhbmdlZCB0byBcIiVzXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEJvb3QtxsHKzCDJ2s3FzsXOIM7BIFwiJXNcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJNb3JlIHRoYW4gb25lIGVudGlyZSBkaXNrIGVudHJ5IHByZXNlbnQuXG4iCittc2dzdHIgIvDSydPV1NPU19XF1CDCz8zFxSDPxM7Px88g0NXOy9TBIMTM0SDX08XHzyDEydPLwS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICLywdrExczZIM7FIM/Q0sXExczFztlcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJJUklYIGxpa2VzIHdoZW4gUGFydGl0aW9uIDExIGNvdmVycyB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIklSSVggzMDCydQsIMvPx8TBIPLB2sTFzCAxMSDPyNfB1NnXwcXUINfF09ggxMnTyy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBzaG91bGQgc3RhcnQgYXQgYmxvY2sgMCxcbiIKKyJub3QgYXQgZGlza2Jsb2NrICVkLlxuIgorbXNnc3RyICIiCisi8sHaxMXMINfTxcfPIMTJ08vBIMTPzNbFziDOwd7JzsHU2NPRINMgwszPy8EgMCxcbiIKKyLBIM7FINMgxMnTy8/Xz8fPIMLMz8vBICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKyLywdrNxdIg0sHaxMXMwSDX08XHzyDEydPLwSAtINTPzNjLzyAlZCDEydPLz9fZyCDCzM/Lz9csXG4iCisiwSDEzMnOwSDEydPLwSAtICVkIMTJ08vP19nIIMLMz8vP1y5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJPbmUgUGFydGl0aW9uICgjMTEpIHNob3VsZCBjb3ZlciB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIu/Eyc4g8sHaxMXMICgjMTEpIMTPzNbFziDPyNfB1NnXwdTYINfF09ggxMnTyy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIvLB2sTFzCAlZCDOxSDOwd7JzsHF1NPRIM7BIMfSwc7Jw8Ugw8nMyc7E0sEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAi8sHaxMXMICVkIM7FINrBy8HO3snXwcXU09EgzsEgx9LBzsnDxSDDyczJzsTSwS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIvLB2sTFzNkgJWQgySAlZCDQxdLFy9LZ18HA1NPRINcgJWQg08XL1M/SwcguXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0ODQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAi7sXJ09DPzNja1cXN2cog0NLPzcXW1dTPyyDJ2iAlOHUg08XL1M/Sz9cgLSDTxcvUz9LZICU4dS0ldVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgYm9vdCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyL6wcfS1drP3s7ZyiDSwdrExcwgzsUg09XdxdPU19XF1C5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisi8sHaxMXMINPXz9DJzsfBIM7FINPV3cXT1NfVxdQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisi8sHaxMXMINPXz9DJzsfBIM7FIMnNxcXUINTJ0CBzd2FwLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iCittc2dzdHIgIlx099kg19nC0sHMySDOxc/C2d7Oz8Ugyc3RIGJvb3QtxsHKzMEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnkgWW91IG1heSBjaGFuZ2UgdGhlIFRhZyBvZiBub24tZW1wdHkgcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAi6yDTz9bBzMXOycAg19kgzc/WxdTFIMnazcXOydTYIPTcxyDOxdDV09TZyCDSwdrExczP1y5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzOAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgb2YgdHlwZSBcIlNHSSB2b2xoZHJcIiwgdGhlIElSSVggc3lzdGVtIHdpbGwgcmVseSBvbiBpdCB0b1xuIgorInJldHJpZXZlIGZyb20gaXRzIGRpcmVjdG9yeSBzdGFuZGFsb25lIHRvb2xzIGxpa2Ugc2FzaCBhbmQgZnguXG4iCisiT25seSB0aGUgXCJTR0kgdm9sdW1lXCIgZW50aXJlIGRpc2sgc2VjdGlvbiBtYXkgdmlvbGF0ZSB0aGlzLlxuIgorIlR5cGUgWUVTIGlmIHlvdSBhcmUgc3VyZSBhYm91dCB0YWdnaW5nIHRoaXMgcGFydGl0aW9uIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisi7sHT1M/R1MXM2M7PINLFy8/Nxc7E1cXU09EsIN7Uz8LZINLB2sTFzCDTz1xuIgorItPNxd3FzsnFzSAwIMnNxcwg1MnQIFwiU0dJIHZvbGhkclwiLCDTydPUxc3BIElSSVhcbiIKKyLC1cTF1CDOwcTF0dTY09EgzsEgzsXHzyDEzNEgydrXzMXexc7J0SDJ2iDFx88gy8HUwczPx8FcbiIKKyLTwc3P09TP0dTFzNjO2cgg1dTJzMnUINTJ0MEgc2FzaCDJIGZ4LlxuIgorIvTPzNjLzyDSwdrExcwg19PFx88gxMnTy8EgXCJTR0kgdm9sdW1lXCIgzc/WxdQgzsHS1dvJ1Ngg3NTPLlxuIgorIvfXxcTJ1MUg5OEsIMXTzMkg19kg1dfF0sXO2Swg3tTPINLB2s3F1MnMySDc1M/UINLB2sTFzCDP1MTFzNjOzy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIuThXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAi+s7BxdTFIMzJINfZLCDe1M8g19kg0M/M1d7JzMkg0MXSxcvS2dfBzsnFINLB2sTFzM/XIM7BIMTJ08vFP1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAi99nQz8zO0cXU09Eg0M/Q2dTLwSDB19TPzcHUyd7F08vJINPP2sTB1Ngg0NXOy9Qg19PFx88gxMnTy8EuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIvfF09ggxMnTyyDV1sUg0sHawsnUIM7BINLB2sTFzNkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIvfZINDPzNXeyczJINDF0sXL0tnXwc7JxSDSwdrExczP1yDOwSDEydPLxS4g887B3sHMwSDJ09DSwdfY1MUg3NTPIVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjQ0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IGVsZXZlbnRoIHBhcnRpdGlvblxuIgorImNvdmVycyB0aGUgZW50aXJlIGRpc2sgYW5kIGlzIG9mIHR5cGUgYFNHSSB2b2x1bWUnXG4iCittc2dzdHIgIiIKKyLuwdPUz9HUxczYzs8g0sXLz83FzsTVxdTT0Swg3tTPwtkgz8TJzs7BxMPB1NnKXG4iCisi0sHaxMXMIM/I18HU2dfBzCDXxdPYIMTJ08sgySDJzcXMINTJ0CBgU0dJIHZvbHVtZSdcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBnZXQgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICL32SDQz8zV3snUxSDQxdLFy9LZ18HOycUg0sHaxMXMz9cgzsEgxMnTy8UuIPPOwd7BzMEgydPQ0sHX2NTFINzUzyFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgTGFzdCAlcyIKK21zZ3N0ciAiIPDP08zFxM7JyiAlcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgU0dJIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3aWxsIGJlIHVucmVjb3ZlcmFibHkgbG9zdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIvPP2sTBxdTT0SDOz9fB0SDNxdTLwSDEydPLwSBTR0kuIOnazcXOxc7J0SDC1cTV1CDP09TB18HU2NPRXG4iCisi1M/M2MvPINcg0MHN0dTJIMTPINTFyCDQz9IsINDPy8Eg19kgzsUg0sXbydTFINrB0MnTwdTYIMnILlxuIgorIvDP08zFINzUz8fPLCDLz87F3s7PLCDQ0sXE2cTV3cXFINPPxMXS1snNz8UgzsXM2NrRIMLVxMXUXG4iCisi18/T09TBzs/XydTYLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzE4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6ICBCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlcy4gIFVzaW5nIGdlb21ldHJ5IGN5bGluZGVyIHZhbHVlIG9mICUiCisiZC5cbiIKKyJUaGlzIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgZm9yIGRldmljZXMgPiAzMy44IEdCLlxuIgorbXNnc3RyICIiCisi8NLFxNXQ0sXWxMXOycU6IEJMS0dFVFNJWkUgaW9jdGwg2sHXxdLbyczT0SDOxdXEwd7FyiDOwSAlcy4g6dPQz8zY2tXF1NPRICIKKyLazsHexc7JxSDHxc/NxdTSyckgw8nMyc7E0sEgJWQuXG4iCisi/NTPINrOwd7FzsnFIM3P1sXUIMLZ1Ngg1c3Fztjbxc7PIMTM0SDV09TSz8rT1NcgPiAzMy44IOfiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byBrZWVwIHBhcmFtZXRlcnMgb2YgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICL32dDPzM7RxdTT0SDQz9DZ1MvBINPPyNLBzsnU2CDQwdLBzcXU0tkg0sHaxMXMwSAlZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczNAorIywgYy1mb3JtYXQKK21zZ2lkICJJRD0lMDJ4XHRTVEFSVD0lZFx0TEVOR1RIPSVkXG4iCittc2dzdHIgIklEPSUwMnhcdO7h/uHs7z0lZFx05Ozp7uE9JWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4Cittc2dpZCAiVW5hc3NpZ25lZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDAKK21zZ2lkICJTdW5PUyByb290IgorbXNnc3RyICJTdW5PUyByb290IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDEKK21zZ2lkICJTdW5PUyBzd2FwIgorbXNnc3RyICJTdW5PUyBzd2FwIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIKK21zZ2lkICJTdW5PUyB1c3IiCittc2dzdHIgIlN1bk9TIHVzciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQzCittc2dpZCAiV2hvbGUgZGlzayIKK21zZ3N0ciAiV2hvbGUgZGlzayIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0Cittc2dpZCAiU3VuT1Mgc3RhbmQiCittc2dzdHIgIlN1bk9TIHN0YW5kIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDUKK21zZ2lkICJTdW5PUyB2YXIiCittc2dzdHIgIlN1bk9TIHZhciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ2Cittc2dpZCAiU3VuT1MgaG9tZSIKK21zZ3N0ciAiU3VuT1MgaG9tZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3CisjLCBmdXp6eQorbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICIlbGxkIM7F2sHO0dTZyCDTxcvUz9LP11xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgY2FjaGVmcyIKK21zZ3N0ciAiU3VuT1MgaG9tZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ5CisjLCBmdXp6eQorbXNnaWQgIlN1bk9TIHJlc2VydmVkIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMworbXNnaWQgIkxpbnV4IHJhaWQgYXV0b2RldGVjdCIKK21zZ3N0ciAi4dfUz8/Q0sXExczFzsnFIExpbnV4IHJhaWQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorIu/CzsHS1dbFzsEgzcXUy8EgxMnTy8Egc3VuINMgzsXXxdLOz8pcbiIKKyLLz87U0s/M2M7PyiDT1c3Nz8ouIPfP2s3P1s7PINfBzVxuIgorItDPzsHEz8LJ1NPRINXT1MHOz9fJ1Ngg19PFINrOwd7FzsnRLFxuIgorIs7B0NIuIMfPzM/Xy8ksINPFy9TP0tksIMPJzMnOxNLZIMkg0sHaxMXM2SxcbiIKKyLJzMkg0NLJztXEydTFzNjOzyDPws7P18nU2CDNxdTL1SAoy8/Nwc7EwVxuIgorInMg1yDHzMHXzs/NIM3FzsApXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICLvws7B0tXWxc7BIM3F1MvBIMTJ08vBIHNnaSDTIM7F18XSzs/KIMvPztTSz8zYzs/KINPVzc3Pyi5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHNhbml0eSBbMHglMDh4XS5cbiIKK21zZ3N0ciAi78LOwdLV1sXOwSDNxdTLwSDEydPLwSBzZ2kg0yDOxdfF0s7PyiDLz87U0s/M2M7PyiDT1c3Nz8ouXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICLvws7B0tXWxc7BIM3F1MvBIMTJ08vBIHNnaSDTIM7F18XSzs/KIMvPztTSz8zYzs/KINPVzc3Pyi5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTogzsXXxdLO2cogxszBxyAweCUwNHgg1MHCzMnD2SDSwdrExczP1yAlZCDC1cTF1CDJ09DSwdfMxc4gIgorItrB0MnT2MBcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIvPP2sTBxdTT0SDOz9fB0SDNxdTLwSDEydPLwSBzdW4uIOnazcXOxc7J0SDC1cTV1CDP09TB18HU2NPRXG4iCisi1M/M2MvPINcg0MHN0dTJIMTPINTFyCDQz9IsINDPy8Eg19kgzsUg0sXbydTFINrB0MnTwdTYIMnILlxuIgorIvDP08zFINzUz8fPLCDLz87F3s7PLCDQ0sXE2cTV3cXFINPPxMXS1snNz8UgzsXM2NrRIMLVxMXUXG4iCisi18/T09TBzs/XydTYLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAi88XL1M/S2S/Ez9LP1svBIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2Vzbid0IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICLywdrExcwgJWQgzsEg2sHLwc7eydfBxdTT0SDOwSDH0sHOycPFIMPJzMnOxNLBXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAi8sHaxMXMICVkINDF0sXL0tnXwcXU09Eg0yDE0tXHyc3JINcg08XL1M/SwcggJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAwLSVkXG4iCittc2dzdHIgIu7FydPQz8zY2tXFzdnKINDSz83F1tXUz8sgLSDTxcvUz9LZIDAtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIu7FydPQz8zY2tXFzdnKINDSz83F1tXUz8sgLSDTxcvUz9LZICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKyLk0tXHycUg0sHaxMXM2SDV1sUgz8jXwdTZ18HA1CDXxdPYIMTJ08suXG4iCisi9cTBzMnUxSDOxcvP1M/S2cUgyczJINXNxc7Y28nUxSDJyCDQxdLFxCDQz9fUz9LOz8og0M/Q2dTLz8ouXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisi7sHT1M/R1MXM2M7PINLFy8/Nxc7E1cXU09EsIN7Uz8LZIM/Eyc7OwcTDwdTZylxuIgorItLB2sTFzCDPyNfB1NnXwcwg18XT2CDEydPLIMkgyc3FzCDUydAgYFNHSSB2b2x1bWUnXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIvPFy9TP0iAlZCDV1sUg19nExczFzlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZW4ndCBjb3ZlcmVkIHRoZSB3aG9sZSBkaXNrIHdpdGggdGhlIDNyZCBwYXJ0aXRpb24sIGJ1dCB5b3VyIHZhbHVlXG4iCisiJWQgJXMgY292ZXJzIHNvbWUgb3RoZXIgcGFydGl0aW9uLiBZb3VyIGVudHJ5IGhhcyBiZWVuIGNoYW5nZWRcbiIKKyJ0byAlZCAlc1xuIgorbXNnc3RyICIiCisi99kgzsUgz8jXwdTJzMkg18XT2CDEydPLIDMtzSDSwdrExczPzSwgzs8g18HbxSDazsHexc7JxVxuIgorIiVkICVzINrByNfB1MnMzyDE0tXHz8og0sHaxMXMLiD3wdsg0NXOy9QgwtnMIMnazcXOxc5cbiIKKyLOwSAlZCAlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyLl08zJINfZIMjP1MnUxSDJ09DPzNjaz9fB1Ngg08/XzcXT1MnNz9PU2CDTIFN1bk9TL1NvbGFyaXMsINDP09TB0sHK1MXT2FxuIgorIs/T1MHXydTYINzUz9Qg0sHaxMXMIMvByyDXxdPYIGRpc2sgKDUpLCDOwd7JzsHRINMgMCwg0yAldSDTxcvUz9LBzclcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIu7B09TP0dTFzNjOzyDSxcvPzcXOxNXF1NPRLCDe1M/C2SDSwdrExcwg089cbiIKKyLTzcXdxc7Jxc0gMCDC2cwg0yDGwcrMz9fPyiDTydPUxc3PyiBVRlMsXG4iCisiRVhUMkZTIMnMySDT18/Qz80gU3VuT1MuIPLB2s3F3cXOycUgzsEgzsXNINPXz9DBXG4iCisiTGludXggzc/WxdQg0sHa0tXbydTYINfB29Ug1MHCzMnD1SDSwdrExczP11xuIgorIskg2sHH0tXaz97O2cogwszPyy4g99fFxMnUxSDk4SwgxdPMySDX2SDQz8zOz9PU2MBcbiIKKyLV18XSxc7ZLCDe1M8gyM/UydTFINDPzcXUydTYINzUz9Qg0sHaxMXMIMvByyA4MlxuIgorIjgyIChMaW51eCDT18/QKTogIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBycG1cbiIKKyIlZCBjeWxpbmRlcnMsICVkIGFsdGVybmF0ZSBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiTGFiZWwgSUQ6ICVzXG4iCisiVm9sdW1lIElEOiAlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIuTJ08sgJXMgKM3F1MvBIMTJ08vBIFN1bik6ICVkIMfPzM/Xz8ssICVkINPFy9TP0s/XXG4iCisiJWQgz8IvzcnOLCAlZCDDyczJzsTSz9csICVkIMHM2NTF0s7B1MnXztnIIMPJzMnOxNLP11xuIgorIiVkIMbJ2snexdPLycggw8nMyc7E0s/XLCAlZCDEz9Ag08XL1C/DycwsIN7F0sXEz9fBzsnFICVkOjFcbiIKKyIlc1xuIgorIuXEyc7Jw9kgPSAlcyDQzyAlZCAqIDUxMiDCwcrUXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIuTJ08sgJXMgKM3F1MvBIMTJ08vBIFN1bik6ICVkIMfPzM/Xz8ssICVkINPFy9TP0s/XLCAlZCDDyczJzsTSz9dcbiIKKyLlxMnOycPZID0gJXMg0M8gJWQgKiA1MTIgwsHK1FxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyDmzMHHICAg7sHewczPICAgICDrz87FwyAgICAg4szPy8kgICBJZCAg88nT1MXNwVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjI1Cittc2dpZCAiTnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIuvPzMnexdPU188gwczY1MXSzsHUydfO2cggw8nMyc7E0s/XIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjM3Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIuTP0M/MzsnUxczYztnFINPFy9TP0tkgzsEgw8nMyc7E0iIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY0NAorbXNnaWQgIkludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICLrz9zGxsnDycXO1CDexdLFxM/Xwc7J0SIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1MQorbXNnaWQgIlJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICLzy8/Sz9PU2CDX0sHdxc7J0SAoz8IvzcnOKSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1OAorbXNnaWQgIk51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIuvPzMnexdPU188gxsnayd7F08vJyCDDyczJzsTSz9ciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICLw1dPUz8oiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICJGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4Cittc2dpZCAiWEVOSVggcm9vdCIKK21zZ3N0ciAiWEVOSVggcm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5Cittc2dpZCAiWEVOSVggdXNyIgorbXNnc3RyICJYRU5JWCB1c3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAKK21zZ2lkICJGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjExCittc2dpZCAiRXh0ZW5kZWQiCittc2dzdHIgIvLB09vJ0sXOztnKIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIkZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEzCittc2dpZCAiSFBGUy9OVEZTIgorbXNnc3RyICJIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTQKK21zZ2lkICJBSVgiCittc2dzdHIgIkFJWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNQorbXNnaWQgIkFJWCBib290YWJsZSIKK21zZ3N0ciAiQUlYINrBx9LV2s/eztnKIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgQm9vdC3Nxc7FxNbF0iIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNworbXNnaWQgIlc5NSBGQVQzMiIKK21zZ3N0ciAiVzk1IEZBVDMyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE4Cittc2dpZCAiVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJXOTUgRkFUMzIgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTkKK21zZ2lkICJXOTUgRkFUMTYgKExCQSkiCittc2dzdHIgIlc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMAorbXNnaWQgIlc5NSBFeHQnZCAoTEJBKSIKK21zZ3N0ciAiVzk1INLB09vJ0i4gKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICJPUFVTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIyCittc2dpZCAiSGlkZGVuIEZBVDEyIgorbXNnc3RyICLzy9LZ1NnKIEZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIzCittc2dpZCAiQ29tcGFxIGRpYWdub3N0aWNzIgorbXNnc3RyICJDb21wYXEgxMnBx87P09TJy8EiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjQKK21zZ2lkICJIaWRkZW4gRkFUMTYgPDMyTSIKK21zZ3N0ciAi88vS2dTZyiBGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI1Cittc2dpZCAiSGlkZGVuIEZBVDE2IgorbXNnc3RyICLzy9LZ1NnKIEZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAi88vS2dTZyiBIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjcKK21zZ2lkICJBU1QgU21hcnRTbGVlcCIKK21zZ3N0ciAiQVNUIFNtYXJ0U2xlZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjgKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIgorbXNnc3RyICLzy9LZ1NnKIFc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOQorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIvPL0tnU2cogVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAi88vS2dTZyiBXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzEKK21zZ2lkICJORUMgRE9TIgorbXNnc3RyICJORUMgRE9TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMyCittc2dpZCAiUGxhbiA5IgorbXNnc3RyICJQbGFuIDkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzMKK21zZ2lkICJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIKK21zZ3N0ciAiUGFydGl0aW9uTWFnaWMg18/T09TBzs/XzMXOycUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzQKK21zZ2lkICJWZW5peCA4MDI4NiIKK21zZ3N0ciAiVmVuaXggODAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzUKK21zZ2lkICJQUEMgUFJlUCBCb290IgorbXNnc3RyICJQUEMgUFJlUCBCb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM2Cittc2dpZCAiU0ZTIgorbXNnc3RyICJTRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzcKK21zZ2lkICJRTlg0LngiCittc2dzdHIgIlFOWDQueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOAorbXNnaWQgIlFOWDQueCAybmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDIt0SDewdPU2CIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDMt0SDewdPU2CIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MAorbXNnaWQgIk9uVHJhY2sgRE0iCittc2dzdHIgIk9uVHJhY2sgRE0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDEKK21zZ2lkICJPblRyYWNrIERNNiBBdXgxIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgxIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQyCittc2dpZCAiQ1AvTSIKK21zZ3N0ciAiQ1AvTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MworbXNnaWQgIk9uVHJhY2sgRE02IEF1eDMiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDQKK21zZ2lkICJPblRyYWNrRE02IgorbXNnc3RyICJPblRyYWNrRE02IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ1Cittc2dpZCAiRVotRHJpdmUiCittc2dzdHIgIkVaLURyaXZlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ2Cittc2dpZCAiR29sZGVuIEJvdyIKK21zZ3N0ciAiR29sZGVuIEJvdyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NworbXNnaWQgIlByaWFtIEVkaXNrIgorbXNnc3RyICJQcmlhbSBFZGlzayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkyCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTkKK21zZ2lkICJTcGVlZFN0b3IiCittc2dzdHIgIlNwZWVkU3RvciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OQorbXNnaWQgIkdOVSBIVVJEIG9yIFN5c1YiCittc2dzdHIgIkdOVSBIVVJEIMnMySBTeXNWIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUwCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMjg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTEKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAzODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDM4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MgorbXNnaWQgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKK21zZ3N0ciAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUzCittc2dpZCAiUEMvSVgiCittc2dzdHIgIlBDL0lYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU0Cittc2dpZCAiT2xkIE1pbml4IgorbXNnc3RyICJPbGQgTWluaXgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTUKK21zZ2lkICJNaW5peCAvIG9sZCBMaW51eCIKK21zZ3N0ciAiTWluaXggLyDT1MHS2cogTGludXgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTYKK21zZ2lkICJMaW51eCBzd2FwIC8gU29sYXJpcyIKK21zZ3N0ciAiTGludXgg09fP0CAvIFNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTgKK21zZ2lkICJPUy8yIGhpZGRlbiBDOiBkcml2ZSIKK21zZ3N0ciAiT1MvMiDTy9LZ1NnKIMTJ08sgQzoiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTkKK21zZ2lkICJMaW51eCBleHRlbmRlZCIKK21zZ3N0ciAiTGludXgg0sHT28nSxc4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjAgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MQorbXNnaWQgIk5URlMgdm9sdW1lIHNldCIKK21zZ3N0ciAiTlRGUyDOwcLP0iDUz83P1yIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorbXNnaWQgIkxpbnV4IHBsYWludGV4dCIKK21zZ3N0ciAiTGludXggcGxhaW50ZXh0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY0Cittc2dpZCAiQW1vZWJhIgorbXNnc3RyICJBbW9lYmEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjUKK21zZ2lkICJBbW9lYmEgQkJUIgorbXNnc3RyICJBbW9lYmEgQkJUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY2Cittc2dpZCAiQlNEL09TIgorbXNnc3RyICJCU0QvT1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjcKK21zZ2lkICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCittc2dzdHIgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OAorbXNnaWQgIkZyZWVCU0QiCittc2dzdHIgIkZyZWVCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjkKK21zZ2lkICJPcGVuQlNEIgorbXNnc3RyICJPcGVuQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIk5lWFRTVEVQIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcxCittc2dpZCAiRGFyd2luIFVGUyIKK21zZ3N0ciAiRGFyd2luIFVGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MgorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiTmV0QlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjczCittc2dpZCAiRGFyd2luIGJvb3QiCittc2dzdHIgIkRhcndpbiDawcfS1drP3s7ZyiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NAorIywgZnV6enkKK21zZ2lkICJIRlMgLyBIRlMrIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzUKK21zZ2lkICJCU0RJIGZzIgorbXNnc3RyICJCU0RJIMbTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc2Cittc2dpZCAiQlNESSBzd2FwIgorbXNnc3RyICJCU0RJINPXz9AiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIkJvb3QgV2l6YXJkINPL0tnU2coiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIlNvbGFyaXMg2sHH0i4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzkKK21zZ2lkICJTb2xhcmlzIgorbXNnc3RyICJTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgwCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTIpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODEKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MgorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2KSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgzCittc2dpZCAiU3lyaW54IgorbXNnc3RyICJTeXJpbngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODQKK21zZ2lkICJOb24tRlMgZGF0YSIKK21zZ3N0ciAi5MHOztnFIM7FIObzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg1Cittc2dpZCAiQ1AvTSAvIENUT1MgLyAuLi4iCittc2dzdHIgIkNQL00gLyBDVE9TIC8gLi4uIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg3Cittc2dpZCAiRGVsbCBVdGlsaXR5IgorbXNnc3RyICJEZWxsIFV0aWxpdHkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODgKK21zZ2lkICJCb290SXQiCittc2dzdHIgIkJvb3RJdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OQorbXNnaWQgIkRPUyBhY2Nlc3MiCittc2dzdHIgIkRPUyBhY2Nlc3MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTEKK21zZ2lkICJET1MgUi9PIgorbXNnc3RyICJET1MgUi9PIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk0Cittc2dpZCAiQmVPUyBmcyIKK21zZ3N0ciAiQmVPUyDG0yIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorIywgZnV6enkKK21zZ2lkICJHUFQiCittc2dzdHIgIkVGSSBHUFQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIkVGSSAoRkFULTEyLzE2LzMyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NworbXNnaWQgIkxpbnV4L1BBLVJJU0MgYm9vdCIKK21zZ3N0ciAiTGludXgvUEEtUklTQyDawcfSLiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1Mg19TP0sneztnKIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICLP28nCy8Eg0M/J08vBIM7BICVzIC0gzsXXz9rNz9bOzyDOwcrUySAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3I6IHdhbnRlZCAweCUwOHglMDh4LCBnb3QgMHglMDh4JTA4eFxuIgorbXNnc3RyICLP28nCy8Eg0M/J08vBOiDO1dbO2SAweCUwOHglMDh4LCDQz8zV3sXO2SAweCUwOHglMDh4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAizsXI18HUy8Eg0MHN0dTJIC0g08TBwNPYXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiz9vJwsvBIN7Uxc7J0SDTICVzIC0gzsXXz9rNz9bOzyDQ0s/eydTB1Ngg08XL1M/SICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAi7/vp4uvhOiDTxcvUz9IgJWx1IM7FIMnNxcXUINPJx87B1NXS2SBtc2Rvc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXMgLSBjYW5ub3Qgd3JpdGUgc2VjdG9yICVsdVxuIgorbXNnc3RyICLP28nCy8Eg2sHQydPJIM7BICVzIC0gzsXXz9rNz9bOzyDawdDJ08HU2CDTxcvUz9IgJWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIs7F18/azc/Wzs8gz9TL0tnU2CDGwcrMINMg08/I0sHOxc7O2c0g08XL1M/Sz80g0sHaxMXMwSAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICLP28nCy8Eg2sHQydPJIM7BICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDP0NLFxMXMydTYINPP09TP0c7JxSDGwcrMwSDXz9PT1MHOz9fMxc7J0SDSwdrExczBICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAiIgorIsbByswg18/T09TBzs/XzMXOydEg0sHaxMXMwSDJzcXF1CDOxdfF0s7ZyiDSwdrNxdIgLSDXz9PT1MHOz9fMxc7JxSDP1M3FzsXOz1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDQKK21zZ2lkICJvdXQgb2YgbWVtb3J5P1xuIgorbXNnc3RyICLOxcjXwdTLwSDQwc3R1Mk/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYIMbByswg18/T09TBzs/XzMXOydEg0sHaxMXMwSAgKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcmVhZGluZyAlc1xuIgorbXNnc3RyICLP28nCy8Eg3tTFzsnRICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYINXT1NLPytPU188gJXMgxMzRINrB0MnTyVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzZWN0b3IgJWx1IG9uICVzXG4iCittc2dzdHIgIs/bycLLwSDawdDJ08kg08XL1M/SwSAlbHUgzsEgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgZ2VvbWV0cnlcbiIKK21zZ3N0ciAi5MnTyyAlczogzsXXz9rNz9bOzyDQz8zV3snU2CDHxc/NxdTSycBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICLkydPLICVzOiDOxdfP2s3P1s7PINDPzNXeydTYINLB2s3F0lxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHN0YXJ0PSVsdSAtIHRoaXMgbG9va3MgbGlrZSBhIHBhcnRpdGlvbiByYXRoZXIgdGhhblxuIgorInRoZSBlbnRpcmUgZGlzay4gVXNpbmcgZmRpc2sgb24gaXQgaXMgcHJvYmFibHkgbWVhbmluZ2xlc3MuXG4iCisiW1VzZSB0aGUgLS1mb3JjZSBvcHRpb24gaWYgeW91IHJlYWxseSB3YW50IHRoaXNdXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTogzsHewczPPSVsdSAtINDPyM/WxSwg3tTPINzUzyDTy8/SxcVcbiIKKyLSwdrExcwsIN7FzSDXxdPYIMTJ08suIOnT0M/M2NrP18HOycUgzsEgzsXNIGZkaXNrXG4iCisi18XSz9HUzs8gzsUgyc3FxdQg083Z08zBLlxuIgorIlvp09DPzNja1crUxSDP0MPJwCAtLWZvcmNlLCDF08zJINfZIMTFytPU18nUxczYzs8gyM/UydTFINzUz8fPXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAi8NLFxNXQ0sXWxMXOycU6IEhESU9fR0VUR0VPINPPz8LdycwsIN7UzyDJzcXF1NPRICVsdSDHz8zP18/LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iCittc2dzdHIgIvDSxcTV0NLF1sTFzsnFOiBIRElPX0dFVEdFTyDTz8/C3cnMLCDe1M8gyc3FxdTT0SAlbHUg08XL1M/Sz9dcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTogQkxLR0VUU0laRS9IRElPX0dFVEdFTyDTz8/C3cnMLCDe1M8gyc3FxdTT0SAlbHUgw8nMyc7E0s/XXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdW5saWtlbHkgbnVtYmVyIG9mIHNlY3RvcnMgKCVsdSkgLSB1c3VhbGx5IGF0IG1vc3QgNjNcbiIKKyJUaGlzIHdpbGwgZ2l2ZSBwcm9ibGVtcyB3aXRoIGFsbCBzb2Z0d2FyZSB0aGF0IHVzZXMgQy9IL1MgYWRkcmVzc2luZy5cbiIKK21zZ3N0ciAiIgorIvDSxcTV0NLF1sTFzsnFOiDNwczP18XSz9HUzs/FIMvPzMnexdPU188g08XL1M/Sz9cgKCVsdSkgLSDPwtnezs8gycggNjNcbiIKKyL81M8g19naz9fF1CDQ0s/CzMXN2SDVINfTxcgg0NLPx9LBzc0sIMnT0M/M2NrVwN3JyCDBxNLF08HDycAgQy9IL1MuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWx1IGN5bGluZGVycywgJWx1IGhlYWRzLCAlbHUgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIiCisiXG4iCisi5MnTyyAlczogJWx1IMPJzMnOxNLP1ywgJWx1IMfPzM/Xz8ssICVsdSDTxcvUz9LP1y/Ez9LP1svVXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIKK21zZ3N0ciAiIgorIiVzINLB2sTFzMEgJXMgyc3FxdQgzsXXz9rNz9bOz8Ug2s7B3sXOycUgxMzRIMfPzM/Xy8k6ICVsdSAoxM/M1s7PIMLZ1NggzcXWxNUgIgorIjAtJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3Igc2VjdG9yOiAlbHUgKHNob3VsZCBiZSBpbiAxLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyDSwdrExczBICVzIMnNxcXUIM7F18/azc/Wzs/FINrOwd7FzsnFIMTM0SDTxcvUz9LBOiAlbHUgKMTPzNbOzyDC2dTYIM3F1sTVICIKKyIxLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGN5bGluZGVyczogJWx1IChzaG91bGQgYmUgaW4gMC0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMg0sHaxMXMwSAlcyDJzcXF1CDOxdfP2s3P1s7PxSDazsHexc7JxSDEzNEgw8nMyc7E0s/XOiAlbHUgKMTPzNbOzyDC2dTYICIKKyLNxdbE1SAwLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZCAgTmFtZVxuIgorIlxuIgorbXNnc3RyICIiCisiSWQgIOnN0VxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIC4uLlxuIgorbXNnc3RyICLwxdLF3snU2dfBxdTT0SDUwcLMycPBINLB2sTFzM/XLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxMQorIywgZnV6enkKK21zZ2lkICIiCisiVGhlIGNvbW1hbmQgdG8gcmUtcmVhZCB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZC5cbiIKKyJSdW4gcGFydHByb2JlKDgpLCBrcGFydHgoOCkgb3IgcmVib290IHlvdXIgc3lzdGVtIG5vdyxcbiIKKyJiZWZvcmUgdXNpbmcgbWtmc1xuIgorbXNnc3RyICIiCisi68/Nwc7EwSDQxdLF3snU2dfBzsnRINTBwszJw9kg0sHaxMXMz9dcbiIKKyLawdfF0tvJzMHT2CDOxdXEwd7Fyi4g8MXSxcfS1drJ1MUg09fPwFxuIgorItPJ09TFzdUg0MXSxcQgydPQz8zY2s/Xwc7Jxc0gbWtmc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2xvc2luZyAlc1xuIgorbXNnc3RyICLv28nCy8Eg2sHL0tnUydEgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBzdWNoIHBhcnRpdGlvblxuIgorbXNnc3RyICIlczogzsXUINTBy8/HzyDSwdrExczBXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg3OAorbXNnaWQgInVucmVjb2duaXplZCBmb3JtYXQgLSB1c2luZyBzZWN0b3JzXG4iCittc2dzdHIgIs7F0sHT0M/azsHOztnKIMbP0s3B1CAtIMnT0M/M2NrVwNTT0SDTxcvUz9LZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkyOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmltcGxlbWVudGVkIGZvcm1hdCAtIHVzaW5nICVzXG4iCittc2dzdHIgIs7Fz8LTzNXWydfBxc3ZyiDGz9LNwdQgLSDJ09DPzNja1cXU09EgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyLlxMnOycPZID0gw8nMyc7E0tkg0M8gJWx1IMLBytQsIMLMz8vJINDPIDEwMjQgwsHK1CwgzsHeyc7B0SDTICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICD109TSLdfPIPrBx9IgICDuwd4gICDrz87FwyAgICAjw8nMICAgICAjwszPy8kgICBJZCAg88nT1MXNwVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gc2VjdG9ycyBvZiA1MTIgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIuXEyc7Jw9kgPSDTxcvUz9LZINDPIDUxMiDCwcrULCDOwd7JzsHRINMgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAg9dPU0i3XzyD6wcfSICAg7sHewczPICAgICDrz87FwyAgICPTxcvUz9LZICBJZCAg88nT1MXNwVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIuXEyc7Jw9kgPSDCzM/LySDQzyAxMDI0IMLBytQsIM7B3snOwdEg0yAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICBTdGFydCAgICAgICBFbmQgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICD109TSLdfPIPrBx9IgIO7B3sHMzyAgICAg68/OxcMgICAgICPCzM/LySAgIElkICDzydPUxc3BXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIuXEyc7Jw9kgPSBtZWJpLcLBytTZINDPIDEwNDg1NzYgwsHK1CwgwszPy8kg0M8gMTAyNCDCwcrULCDOwd7JzsHRINMgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgIE1pQiAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgIPXT1NIt188g+sHH0iAgIO7B3iDrz87FwyAgICDtaUIgICAgICPCzM/LySAgIElkICDzydPUxc3BXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJcdFx0zsHewczPOiAoYyxoLHMpIM/WycTBzM/T2CAoJWxkLCVsZCwlbGQpIM7BysTFzs8gKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIlx0XHTLz87FwzogKGMsaCxzKSDP1snEwczP09ggKCVsZCwlbGQsJWxkKSDOwcrExc7PICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgItLB2sTFzCDawcvBzt7J18HF1NPRIM7BIMPJzMnOxNLFICVsZCwg0M/TzMUgy8/Ow8EgxMnTy8FcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAi8sHaxMXM2SDOxSDOwcrExc7ZXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFRoZSBwYXJ0aXRpb24gdGFibGUgbG9va3MgbGlrZSBpdCB3YXMgbWFkZVxuIgorIiAgZm9yIEMvSC9TPSovJWxkLyVsZCAoaW5zdGVhZCBvZiAlbGQvJWxkLyVsZCkuXG4iCisiRm9yIHRoaXMgbGlzdGluZyBJJ2xsIGFzc3VtZSB0aGF0IGdlb21ldHJ5LlxuIgorbXNnc3RyICIiCisi8NLFxNXQ0sXWxMXOycU6IPTBwszJw8Eg0sHaxMXMz9cg19nHzNHEydQg1MHLLFxuIgorItPMz9fOzyDPzsEgwtnMwSDTz9rEwc7BIMTM0SBDL0gvUz0qLyVsZC8lbGRcbiIKKyIo183F09TPICVsZC8lbGQvJWxkKS5cbiIKKyLkzNEgzMnT1MnOx8EgwtXExdQg0M/E0sHa1c3F18HU2NPRINzUwSDHxc/NxdTSydEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAi1MHCzMnDwSDSwdrExczP1yDP1NPV1NPU19XF1C5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIKK21zZ3N0ciAi09TSwc7Ozywgz9DSxcTFzMXO2SDUz8zYy88g0sHaxMXM2SAlZC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBidXQgaXMgbm90IG1hcmtlZCBFbXB0eVxuIgorbXNnc3RyICIiCisi8NLFxNXQ0sXWxMXOycU6INLB2sTFzCAlcyDJzcXF1CDO1czF18/KINLB2s3F0iwgzs8gz84gzsUg0M/Nxd7FziDLwcsg0NXT1M/KXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIGlzIGJvb3RhYmxlXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTog0sHaxMXMICVzIMnNxcXUIM7VzMXXz8og0sHazcXSIMkg0dfM0cXU09Eg2sHH0tXaz97O2c1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgbm9uemVybyBzdGFydFxuIgorbXNnc3RyICLw0sXE1dDSxdbExc7JxTog0sHaxMXMICVzIMnNxcXUIM7VzMXXz8og0sHazcXSIMkgzsXO1czF18/FIM7B3sHMz1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyAiCittc2dzdHIgIvDSxcTV0NLF1sTFzsnFOiDSwdrExcwgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5vdCBjb250YWluZWQgaW4gcGFydGl0aW9uICVzXG4iCittc2dzdHIgIs7FIM7ByM/EydTT0SDXINLB2sTFzMUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb25zICVzICIKK21zZ3N0ciAi8NLFxNXQ0sXWxMXOycU6INLB2sTFzNkgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgIskg0MXSxcvS2dfBxdTT0SDTICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorIvDSxcTV0NLF1sTFzsnFOiDSwdrExcwgJXMg08/ExdLWydQg3sHT1Ngg1MHCzMnD2SDSwdrExczP1yAo08XL1M/SICVsdSksXG4iCisiySDSwdrS1dvJ1CDFxSDQ0skg2sHQz8zOxc7JyVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAi8NLFxNXQ0sXWxMXOycU6INLB2sTFzCAlcyDOwd7JzsHF1NPRINMgztXMxdfPx88g08XL1M/SwVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBleHRlbmRzIHBhc3QgZW5kIG9mIGRpc2tcbiIKK21zZ3N0ciAi8NLFxNXQ0sXWxMXOycU6INLB2sTFzCAlcyDSwdPQz8zPx8HF1NPRIMTPIMvPzsPBIMTJ08vBXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNjkKK21zZ2lkICIiCisiQW1vbmcgdGhlIHByaW1hcnkgcGFydGl0aW9ucywgYXQgbW9zdCBvbmUgY2FuIGJlIGV4dGVuZGVkXG4iCisiIChhbHRob3VnaCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gdW5kZXIgTGludXgpXG4iCittc2dzdHIgIiIKKyLz0sXEySDP087P187ZyCDSwdrExczP1yDawd7B09TVwCDUz8zYy88gz8TJziDNz9bF1FxuIgorIsLZ1Ngg0sHT28nSxc4gKNTFzSDOxSDNxc7FxSwgxMzRIExpbnV4INzUzyDOxSDQ0s/CzMXNwSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICLw0sXE1dDSxdbExc7JxTog0sHaxMXMICVzIM7FIM7B3snOwcXU09EgzsEgx9LBzsnDxSDDyczJzsTSwVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICLw0sXE1dDSxdbExc7JxTog0sHaxMXMICVzIM7FINrBy8HO3snXwcXU09EgzsEgx9LBzsnDxSDDyczJzsTSwVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzExCittc2dpZCAiIgorIldhcm5pbmc6IG1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorIvDSxcTV0NLF1sTFzsnFOiDCz8zFxSDPxM7Px88g0sHaxMXMwSDQz83F3sXOzyDLwcsg2sHH0tXaz97O2cogKMHL1MnXztnKKVxuIgorIvzUzyDOxSDJzcXF1CDazsHexc7J0SDEzNEgTElMTywgzs8gRE9TJ8/X08vJyiBNQlIgzsUg2sHH0tXaydQg3NTP1CDEydPLLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzE4Cittc2dpZCAiIgorIldhcm5pbmc6IHVzdWFsbHkgb25lIGNhbiBib290IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zIG9ubHlcbiIKKyJMSUxPIGRpc3JlZ2FyZHMgdGhlIGBib290YWJsZScgZmxhZy5cbiIKK21zZ3N0ciAiIgorIvDSxcTV0NLF1sTFzsnFOiDPwtnezs8g2sHH0tXay8Egzc/WxdQgwtnU2CDX2dDPzM7FzsEg1M/M2MvPINMgz9POz9fO2cggIgorItLB2sTFzM/XXG4iCisiTElMTyDJx87P0snS1cXUIMbMwccgYNrBx9LV2s/eztnKJy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisi8NLFxNXQ0sXWxMXOycU6IM7F1CDP087P187Px88g0sHaxMXMwSwg0M/Nxd7Fzs7Px88gy8HLINrBx9LV2s/eztnKICIKKyIowcvUydfO2copXG4iCisi/NTPIM7FIMnNxcXUINrOwd7FzsnRIMTM0SBMSUxPLCDOzyBET1Mnz9fTy8nKIE1CUiDOxSDawcfS1drJ1CDc1M/UIMTJ08suXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAizsHewczPIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisi0sHaxMXMICVzOiDOwd7BzM86IChjLGgscykgz9bJxMHMz9PYICglbGQsJWxkLCVsZCkgzsHKxMXOzyAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgIsvPzsXDIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlczogZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisi0sHaxMXMICVzOiDLz87FwzogKGMsaCxzKSDP1snEwczP09ggKCVsZCwlbGQsJWxkKSDOwcrExc7PICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgItLB2sTFzCAlcyDawcvBzt7J18HF1NPRIM7BIMPJzMnOxNLFICVsZCwg0M/TzMUgy8/Ow8EgxMnTy8FcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM3OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc2hpZnRlZCBzdGFydCBvZiB0aGUgZXh0ZCBwYXJ0aXRpb24gZnJvbSAlbGQgdG8gJWxkXG4iCisiKEZvciBsaXN0aW5nIHB1cnBvc2VzIG9ubHkuIERvIG5vdCBjaGFuZ2UgaXRzIGNvbnRlbnRzLilcbiIKK21zZ3N0ciAiIgorIvDSxcTV0NLF1sTFzsnFOiDOwd7BzM8g0sHT28nSxc7Oz8fPINLB2sTFzMEg08TXyc7V1M8g0yAlbGQgzsEgJWxkXG4iCisiKPTPzNjLzyDEzNEg19nXz8TBIMzJ09TJzsfBLCDCxdogydrNxc7FzsnRIMXHzyDTz8TF0tbJzc/Hzy4pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzODQKK21zZ2lkICIiCisiV2FybmluZzogZXh0ZW5kZWQgcGFydGl0aW9uIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnkuXG4iCisiRE9TIGFuZCBMaW51eCB3aWxsIGludGVycHJldCB0aGUgY29udGVudHMgZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTog0sHT28nSxc7O2cog0sHaxMXMIM7FIM7B3snOwcXU09EgzsEgx9LBzsnDxSDSwdrExczBLlxuIgorIkRPUyDJIExpbnV4IMLVxNXUIMnO1MXS0NLF1MnSz9fB1Ngg08/ExdLWyc3PxSDQzy3T18/FzdUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MDIgZmRpc2svc2ZkaXNrLmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zIC0gaWdub3JpbmcgdGhvc2UgcGFzdCBuciAoJWQpXG4iCittc2dzdHIgItPMydvLz80gzc7Px88g0sHaxMXMz9cgLSDJx87P0snS1cDU09Eg3NTJINDP08zFxM7JxSDOz83F0sEgKCVkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDE3Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICLExdLF188g0sHaxMXMz9c/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAiz8LOwdLV1sXOIM3FzsXE1sXSIMTJ08vP1yAtIM7F18/azc/Wzs8gz8LSwcLP1MHU2FxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTMyCittc2dpZCAiRE02IHNpZ25hdHVyZSBmb3VuZCAtIGdpdmluZyB1cFxuIgorbXNnc3RyICLuwcrExc7BINPJx87B1NXSwSBETTYgIC0g08TBwNPYXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTIKK21zZ2lkICJzdHJhbmdlLi4uLCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICLT1NLBzs7PLi4uINLB09vJ0sXOztnKINLB2sTFzCDO1czF18/HzyDSwdrNxdLBP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICLT1NLBzs7PLi4uINLB2sTFzCBCU0QgztXMxdfPx88g0sHazcXSwT9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgJXM6IHVucmVjb2duaXplZCBwYXJ0aXRpb24gdGFibGUgdHlwZVxuIgorbXNnc3RyICIgJXM6IM7F0sHT0M/azsHOztnKINTJ0CDUwcLMycPZINLB2sTFzM/XXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIuLZzCDVy8Hawc4gxszBxyAtbjog7snexcfPIM7FIMnazcXOxc7PXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzIKK21zZ2lkICJGYWlsZWQgc2F2aW5nIHRoZSBvbGQgc2VjdG9ycyAtIGFib3J0aW5nXG4iCittc2dzdHIgIu/bycLLwSDTz8jSwc7FzsnRINPUwdLZyCDTxcvUz9LP1yAtINfZ0M/MztHF1NPRINDSxdLZ18HOycVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzNyBmZGlzay9zZmRpc2suYzoxNjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB3cml0aW5nIHRoZSBwYXJ0aXRpb24gb24gJXNcbiIKK21zZ3N0ciAi79vJwsvBINrB0MnTySDSwdrExczBIM7BICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3MTkKK21zZ2lkICJsb25nIG9yIGluY29tcGxldGUgaW5wdXQgbGluZSAtIHF1aXR0aW5nXG4iCittc2dzdHIgIsTMyc7OwdEgyczJIM7F2sHXxdLbxc7OwdEg09TSz8vBINfXz8TBIC0g19nQz8zO0cXU09Eg19nIz8RcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc1NQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogYD0nIGV4cGVjdGVkIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgIs/bycLLwSDX18/EwTogYD0nIM/WycTBzNPRINDP08zFINDPzNEgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogdW5leHBlY3RlZCBjaGFyYWN0ZXIgJWMgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiz9vJwsvBINfXz8TBOiDOxc/WycTBzs7ZyiDTyc3Xz8wgJWMg0M/TzMUg0M/M0SAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAizsXSwdPQz9rOwc7O2cog19fPxDogJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgIt7J08zPINPMydvLz80gws/M2NvPxVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxODE0Cittc2dpZCAidHJhaWxpbmcganVuayBhZnRlciBudW1iZXJcbiIKK21zZ3N0ciAizdXTz9Ig0M/TzMUg3snTzMFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTkzOAorbXNnaWQgIm5vIHJvb20gZm9yIHBhcnRpdGlvbiBkZXNjcmlwdG9yXG4iCittc2dzdHIgIs7F1CDNxdPUwSDEzNEgxMXTy9LJ0NTP0sEg0sHaxMXMwVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTcxCittc2dpZCAiY2Fubm90IGJ1aWxkIHN1cnJvdW5kaW5nIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICLOxdfP2s3P1s7PINPP2sTB1Nggz8vS1dbBwN3JyiDSwdPbydLFzs7ZyiDSwdrExcxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjAyMgorbXNnaWQgInRvbyBtYW55IGlucHV0IGZpZWxkc1xuIgorbXNnc3RyICLTzMnby8/NIM3Oz8fPINDPzMXKINfXz8TBXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIu3F09TBIMLPzNjbxSDOxdRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA3NQorbXNnaWQgIklsbGVnYWwgdHlwZVxuIgorbXNnc3RyICLuxdfF0s7ZyiDUydBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIiIKKyLw0sXE1dDSxdbExc7JxTog1cvB2sHOztnKINLB2s3F0iAoJWx1KSDQ0sXX2dvBxdQgzcHL08nNwczYzs8gxM/Q1dPUyc3ZyiAiCisi0sHazcXSICglbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMTMKK21zZ2lkICJXYXJuaW5nOiBlbXB0eSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAi8NLFxNXQ0sXWxMXOycU6INDV09TPyiDSwdrExcxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIvDSxcTV0NLF1sTFzsnFOiDOxdfF0s7PxSDOwd7BzM8g0sHaxMXMwSAo0sHOxcUgJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTQwCittc2dpZCAidW5yZWNvZ25pemVkIGJvb3RhYmxlIGZsYWcgLSBjaG9vc2UgLSBvciAqXG4iCittc2dzdHIgIs7F0sHT0M/awc7O2cog2sHH0tXaz97O2cogxszBxyAtINfZwsXSydTFIC0gyczJICpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1NyBmZGlzay9zZmRpc2suYzoyMTcwCittc2dpZCAicGFydGlhbCBjLGgscyBzcGVjaWZpY2F0aW9uP1xuIgorbXNnc3RyICLewdPUyd7OwdEg09DFw8nGycvBw8nRIGMsaCxzP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICLywdPbydLFzs7ZyiDSwdrExcwgzsUg1MHNLCDHxMUgz9bJxMHM09FcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIxMworbXNnaWQgImJhZCBpbnB1dFxuIgorbXNnc3RyICLOxdfF0s7ZyiDX18/EXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMzUKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zXG4iCittc2dzdHIgItPMydvLz80gzc7Px88g0sHaxMXMz9dcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisi99fPxCDXINPMxcTVwN3FzSDGz9LNwdTFOyDP1NPV1NPU19XA3cnFINDPzNEg0M/M1d7BwNQg2s7B3sXOydEg0M8gIgorItXNz8zewc7JwC5cbiIKKyI8zsHewczPPiA80sHazcXSPiA81MnQIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisi78LZ3s7PINfBzSDOxc/CyM/Eyc3PINTPzNjLzyDVy8HawdTYIDzOwd7BzM8+IMkgPNLB2s3F0j4gKMkg18/azc/Wzs8gIgorIjzUydA+KS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIGRldmljZSAuLi5cbiIKK21zZ3N0ciAi6dPQz8zY2s/Xwc7JxTogJXMgW8/Qw8nJXSDV09TSz8rT1NfPLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTUKK21zZ2lkICJkZXZpY2U6IHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhIG9yIC9kZXYvc2RhIgorbXNnc3RyICLV09TSz8rT1NfPOiDe1M8t1M8g19LPxMUgL2Rldi9oZGEgyczJIC9kZXYvc2RhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk2Cittc2dpZCAidXNlZnVsIG9wdGlvbnM6IgorbXNnc3RyICLwz8zF2s7ZxSDP0MPJyToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTcKK21zZ2lkICIgICAgLXMgW29yIC0tc2hvdy1zaXplXTogbGlzdCBzaXplIG9mIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICAgLXMgW8nMySAtLXNob3ctc2l6ZV06INPQydPPyyDSwdrNxdLP1yDSwdrExczP1yIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgICAtYyBbb3IgLS1pZF06ICAgICAgICBwcmludCBvciBjaGFuZ2UgcGFydGl0aW9uIElkIgorbXNnc3RyICIgICAgLWMgW8nMySAtLWlkXTogICAgICAgINfZ18/EIMnMySDJ2s3FzsXOycUgSWQg0sHaxMXMwSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgICAtbCBbb3IgLS1saXN0XTogICAgICBsaXN0IHBhcnRpdGlvbnMgb2YgZWFjaCBkZXZpY2UiCittc2dzdHIgIiAgICAtbCBbyczJIC0tbGlzdF06ICAgICAg09DJ08/LINLB2sTFzM/XIMvB1sTPx88g1dPU0s/K09TXwSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAtZCBbb3IgLS1kdW1wXTogICAgICBpZGVtLCBidXQgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGxhdGVyIGlucHV0IgorbXNnc3RyICIiCisiICAgIC1kIFvJzMkgLS1kdW1wXTogICAgICDEwc3QLCDOzyDXIMbP0s3B1MUsINDPxMjPxNHdxc0gxMzRIMTBzNjOxcrbxcfPICIKKyLX18/EwSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAtaSBbb3IgLS1pbmNyZW1lbnRdOiBudW1iZXIgY3lsaW5kZXJzIGV0Yy4gZnJvbSAxIGluc3RlYWQgb2YgZnJvbSAwIgorbXNnc3RyICIgICAgLWkgW8nMySAtLWluY3JlbWVudF06IN7J08zPIMPJzMnOxNLP1yDJINQuxC4g0yAxLCDBIM7FINMgMCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMgorbXNnaWQgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0L3JlcG9ydCBpbiB1bml0cyBvZiBzZWN0b3JzL2Jsb2Nrcy9jeWxpbmRlcnMvIgorIk1CIgorbXNnc3RyICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogICDQ0snFzS/P1N7F1CDXIMXEyc7Jw8HIINPFy9TP0tkvwszPy8kvw8nMyc7E0tkv7eIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDMKK21zZ2lkICIgICAgLVQgW29yIC0tbGlzdC10eXBlc106bGlzdCB0aGUga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICAgLVQgW8nMySAtLWxpc3QtdHlwZXNdOtPQydPPyyDJ2tfF09TO2cgg1MnQz9cg0sHaxMXMz9ciCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorIiAgICAtRCBbyczJIC0tRE9TXTogICAgICAgxMzRIERPUy3Tz9fNxdPUyc3P09TJOiDSwdPIz8TVxdTT0SDOxc3Oz8fPIM3F09TBIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA1Cittc2dpZCAiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIG1ha2Uga2VybmVsIHJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgICAtUiBbyczJIC0tcmUtcmVhZF06ICAg0MXSxd7J1NnXwc7JxSDRxNLPzSDUwcLMycPZINLB2sTFzM/XIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA2Cittc2dpZCAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIGNoYW5nZSBvbmx5IHRoZSBwYXJ0aXRpb24gd2l0aCBudW1iZXIgIyIKK21zZ3N0ciAiICAgIC1OIyA6ICAgICAgICAgICAgICAgICDJ2s3FzsXOycUg1M/M2MvPINLB2sTFzMEg0yDOz83F0s/NICMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiAgICAtbiA6ICAgICAgICAgICAgICAgICAgzsEg08HNz80gxMXMxSDOxSDawdDJ09nXwdTYIM7BIMTJ08siCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDgKK21zZ2lkICIiCisiICAgIC1PIGZpbGUgOiAgICAgICAgICAgIHNhdmUgdGhlIHNlY3RvcnMgdGhhdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHRvIGZpbGUiCittc2dzdHIgIiIKKyIgICAgLU8gxsHKzCA6ICAgICAgICAgICAgINPPyNLBzsXOycUg1yDGwcrMINPFy9TP0s/XLCDLz9TP0tnFIMLVxNXUICIKKyLQxdLF2sHQydPBztkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIgICAgLUkgxsHKzCA6ICAgICAgICAgICAgINfP09PUwc7P18zFzsnFINzUycgg08XL1M/Sz9ciCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgLXYgW29yIC0tdmVyc2lvbl06ICAgcHJpbnQgdmVyc2lvbiIKK21zZ3N0ciAiICAgIC12IFvJzMkgLS12ZXJzaW9uXTogICDX2dfPxCDOz83F0sEg18XS08nJIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzExCittc2dpZCAiICAgIC0/IFtvciAtLWhlbHBdOiAgICAgIHByaW50IHRoaXMgbWVzc2FnZSIKK21zZ3N0ciAiICAgIC0/IFvJzMkgLS1oZWxwXTogICAgICDX2dfPxCDc1M/HzyDTz8/C3cXOydEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTIKK21zZ2lkICJkYW5nZXJvdXMgb3B0aW9uczoiCittc2dzdHIgIu/QwdPO2cUgz9DDyck6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEzCittc2dpZCAiICAgIC1nIFtvciAtLXNob3ctZ2VvbWV0cnldOiBwcmludCB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgZ2VvbWV0cnkiCittc2dzdHIgIiAgICAtZyBbyczJIC0tc2hvdy1nZW9tZXRyeV06INfZ18/EIMfFz83F1NLJySwg1NLBy9TVxc3PyiDRxNLPzSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorbXNnaWQgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IHByaW50IGdlb21ldHJ5IGd1ZXNzZWQgZnJvbSB0aGUgcGFydGl0aW9uICIKKyJ0YWJsZSIKK21zZ3N0ciAiIgorIiAgICAtRyBbyczJIC0tc2hvdy1wdC1nZW9tZXRyeV06INfZ18/EIMfFz83F1NLJySwg0M/M1d7Fzs7PyiDJ2iDUwcLMycPZICIKKyLSwdrExczP1yIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNQorbXNnaWQgIiIKKyIgICAgLXggW29yIC0tc2hvdy1leHRlbmRlZF06IGFsc28gbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIG9uIG91dHB1dFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZXhwZWN0IGRlc2NyaXB0b3JzIGZvciB0aGVtIG9uIGlucHV0IgorbXNnc3RyICIiCisiICAgIC14IFvJzMkgLS1zaG93LWV4dGVuZGVkXTog1MHL1sUg19nXz8Qg09DJ08vBINLB09vJ0sXOztnIINLB2sTFzM/XIM7BICIKKyLX2cjPxMVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDJzMkgz9bJxMHFzdnFIMTF08vSydDUz9LZIMTM0SDOycggzsEg18jPxMUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTcKK21zZ2lkICIiCisiICAgIC1MICBbb3IgLS1MaW51eF06ICAgICAgZG8gbm90IGNvbXBsYWluIGFib3V0IHRoaW5ncyBpcnJlbGV2YW50IGZvciBMaW51eCIKK21zZ3N0ciAiICAgIC1MICBbyczJIC0tTGludXhdOiAgICAgIMnHzs/SydLP18HOycUg18XdxcosIM7F1c3F09TO2cggxMzRIExpbnV4IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbyczJIC0tcXVpZXRdOiAgICAgINDPxMHXzMXOycUg0NLFxNXQ0sXWxMHA3cnIINPPz8Ldxc7JyiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZXRlY3RlZCBnZW9tZXRyeSB1c2luZzoiCittc2dzdHIgIvfZIM3P1sXUxSDQxdLFy9LZ1Nggz8LOwdLV1sXOztXAIMfFz83F1NLJwCwgydPQz8zY2tXROiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAtQyMgW29yIC0tY3lsaW5kZXJzICNdOnNldCB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyB0byB1c2UiCittc2dzdHIgIiAgICAtQyMgW8nMySAtLWN5bGluZGVycyAjXTrV09TBzs/Xy8Eg3snTzMEgydPQz8zY2tXFzdnIIMPJzMnOxNLP1yIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1IIyBbyczJIC0taGVhZHMgI106ICAgINXT1MHOz9fLwSDeydPMwSDJ09DPzNja1cXN2cggx8/Mz9fPyyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLVMjIFvJzMkgLS1zZWN0b3JzICNdOiAg1dPUwc7P18vBIN7J08zBIMnT0M/M2NrVxc3ZyCDTxcvUz9LP1yIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMworbXNnaWQgIllvdSBjYW4gZGlzYWJsZSBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcgd2l0aDoiCittc2dzdHIgIvfZIM3P1sXUxSDP1MvMwN7J1Ngg0NLP18XSy9Ug19PFyCDQ0s/UydfP0sXeyco6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzI0Cittc2dpZCAiICAgIC1mICBbb3IgLS1mb3JjZV06ICAgICAgZG8gd2hhdCBJIHNheSwgZXZlbiBpZiBpdCBpcyBzdHVwaWQiCittc2dzdHIgIiIKKyIgICAgLWYgIFvJzMkgLS1mb3JjZV06ICAgICAg19nQz8zO0dTYINTPLCDe1M8g0SDTy8HW1SwgxMHWxSDF08zJINzUzyDHzNXQz9PU2CIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAi6dPQz8zY2s/Xwc7JxToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIlcyDV09TSz8rT1NfPXHRcdCDX2dfPxMnUINPQydPPyyDBy9TJ187ZyCDSwdrExczP1yDV09TSz8rT1NfBXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIiCisiJXMg1dPU0s/K09TXzyBuMSBuMiAuLi4gwcvUydfJ0tXF1CDSwdrExczZIG4xIC4uLiDJIMTF2sHL1MnXydLVxdQgz9PUwczYztnFXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLUFuIGRldmljZVx0IGFjdGl2YXRlIHBhcnRpdGlvbiBuLCBpbmFjdGl2YXRlIHRoZSBvdGhlciBvbmVzXG4iCittc2dzdHIgIiVzIC3V09TSz8rT1NfPIFx0IMHL1MnXydLVxdQg0sHaxMXMIG4sIMTF2sHL1MnXydLVxdQgxNLVx8nFINLB2sTFzNlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgc2ZkaXNrICIKKyJkb2Vzbid0IHN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICLp09DPzNja1crUxSDGzMHHIC0tZm9yY2UgxMzRIM/Uy8zA3sXOydEg19PFyCDQ0s/XxdLPyy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgIs7F1CDLz83BzsTZP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInRvdGFsOiAlbGx1IGJsb2Nrc1xuIgorbXNnc3RyICLX08XHzzogJWxsdSDCzM/Lz9dcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1wcmludC1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlclxuIgorbXNnc3RyICLJ09DPzNjaz9fBzsnFOiBzZmRpc2sgLS1wcmludC1pZCDV09TSz8rT1NfPIM7PzcXSX9LB2sTFzMFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MgorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgSWRcbiIKK21zZ3N0ciAiydPQz8zY2s/Xwc7JxTogc2ZkaXNrIC0tY2hhbmdlLWlkINXT1NLPytPU188gzs/NxdJf0sHaxMXMwSBJZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAiydPQz8zY2s/Xwc7JxTogc2ZkaXNrIC0taWQg1dPU0s/K09TXzyDOz83F0l/SwdrExczBIFtJZF1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY4MQorbXNnaWQgImNhbiBzcGVjaWZ5IG9ubHkgb25lIGRldmljZSAoZXhjZXB0IHdpdGggLWwgb3IgLXMpXG4iCittc2dzdHIgIs3P1s7PINXLwdrB1Ngg1M/M2MvPIM/Ezs8g1dPU0s/K09TXzyAoy9LPzcUg1MXILCDe1M8g0yAgLWwgyczJIC1zKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYICVzIMTM0SDe1MXOydEt2sHQydPJXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYICVzIMTM0SDe1MXOydFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiJXM6IO/rXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3NTMgZmRpc2svc2ZkaXNrLmM6Mjc4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlczogJWxkIMPJzMnOxNLP1ywgJWxkIMfPzM/Xz8ssICVsZCDTxcvUz9LP1y/Ez9LP1svVXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGdldCBzaXplIG9mICVzXG4iCittc2dzdHIgIu7F18/azc/Wzs8g0M/M1d7J1Ngg0sHazcXSICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIGFjdGl2ZSBieXRlOiAweCV4IGluc3RlYWQgb2YgMHg4MFxuIgorbXNnc3RyICLOxdfF0s7ZyiBhY3RpdmUtwsHK1DogMHgleCDXzcXT1M8gMHg4MFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTAzIGZkaXNrL3NmZGlzay5jOjI5NTggZmRpc2svc2ZkaXNrLmM6Mjk5MQorbXNnaWQgIiIKKyJEb25lXG4iCisiXG4iCittc2dzdHIgIiIKKyLnz9TP189cbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgJWQgYWN0aXZlIHByaW1hcnkgcGFydGl0aW9ucy4gVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sXG4iCisiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIKK21zZ3N0ciAiIgorIvUg18HTIMnNxcDU09EgJWQgwcvUydfO2cggz9POz9fO2cgg0sHaxMXMwS4g/NTPIM7FIMnNxcXUINrOwd7FzsnRIMTM0SBMSUxPLFxuIgorIs7PIERPUyfP19PLycogTUJSINrBx9LV2snUINTPzNjLzyDEydPLINMgz8TOyc0gwcvUydfO2c0g0sHaxMXMz80uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGhhcyBpZCAleCBhbmQgaXMgbm90IGhpZGRlblxuIgorbXNnc3RyICLSwdrExcwgJXMgyc3FxdQgaWQgJXggySDOxSDR18zRxdTT0SDTy9LZ1NnNXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICLuxdfF0s7ZyiBJZCAlbHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAwNAorbXNnaWQgIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlLlxuIgorbXNnc3RyICL81M/UIMTJ08sg08XK3sHTIMnT0M/M2NrVxdTT0S5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAi7sXJ09DSwdfJzcHRIM/bycLLwTogzsXXz9rNz9bOzyDOwcrUySAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICLw0sXE1dDSxdbExc7JxTogJXMgzsUg0dfM0cXU09EgwszP3s7ZzSDV09TSz8rT1NfPzVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAi8NLP18XS0cXU09EsIN7Uz8LZINPFyt7B0yDOycvUzyDOxSDJ09DPzNjaz9fBzCDc1M/UIMTJ08suLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisiXG4iCisi5MnTyyDTxcrewdMgydPQz8zY2tXF1NPRIC0g08vP0sXFINfTxcfPLCDSwdrNxdTLwSAtINzUzyDQzM/IwdEgycTF0S5cbiIKKyLywdrNz87UydLVytTFINfTxSDGwcrMz9fZxSDTydPUxc3ZIMkgz9TLzMDeydTFINfTxSDSwdrExczZINPXz9DJzsfBINzUz8fPICIKKyLEydPLwS5cbiIKKyLp09DPzNja1crUxSDGzMHHIC0tbm8tcmVyZWFkIMTM0SDP1M3Fztkg3NTPyiDQ0s/XxdLLyS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzOAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIGFsbCBjaGVja3MuXG4iCittc2dzdHIgIunT0M/M2NrVytTFIMbMwccgLS1mb3JjZSDEzNEgz9TLzMDexc7J0SDX08XIINDSz9fF0s/LLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDQyCittc2dpZCAiT0tcbiIKK21zZ3N0ciAi7+tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1MQorIywgYy1mb3JtYXQKK21zZ2lkICJPbGQgc2l0dWF0aW9uOlxuIgorbXNnc3RyICLz1MHSwdEg08nU1cHDydE6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgY2hhbmdlIGl0XG4iCittc2dzdHIgIvLB2sTFzCAlZCDOxSDT1d3F09TX1cXULCDOxdfP2s3P1s7PIMnazcXOydTYIMXHz1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBzaXR1YXRpb246XG4iCittc2dzdHIgIu7P18HRINPJ1NXBw8nROlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDY4Cittc2dpZCAiIgorIkkgZG9uJ3QgbGlrZSB0aGVzZSBwYXJ0aXRpb25zIC0gbm90aGluZyBjaGFuZ2VkLlxuIgorIihJZiB5b3UgcmVhbGx5IHdhbnQgdGhpcywgdXNlIHRoZSAtLWZvcmNlIG9wdGlvbi4pXG4iCittc2dzdHIgIiIKKyLuxSDO0sHX0dTT0SDNzsUg3NTJINLB2sTFzNkgLSDOyd7Fx88gzsUgydrNxc7Fzs8uXG4iCisiKOXTzMkg19kgxMXK09TXydTFzNjOzyDIz9TJ1MUg3NTPx88sIMnT0M/M2NrVytTFIM/Qw8nAIC0tZm9yY2UuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDcxCittc2dpZCAiSSBkb24ndCBsaWtlIHRoaXMgLSBwcm9iYWJseSB5b3Ugc2hvdWxkIGFuc3dlciBOb1xuIgorbXNnc3RyICLuxSDO0sHXydTT0SDNzsUg3NTPIC0g18/azc/Wzs8sINfBzSDTzMXE1cXUIM/U18XUydTYIO7F1FxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICL3wdMg1dPU0sHJ18HF1CDUwcvPyiDXwdLJwc7UPyBbxM7XXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiCittc2dzdHIgIvfZIMjP1MnUxSDawdDJ08HU2CDc1M8gzsEgxMnTyz8gW8TO110gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJzZmRpc2s6IHByZW1hdHVyZSBlbmQgb2YgaW5wdXRcbiIKK21zZ3N0ciAiIgorIlxuIgorInNmZGlzazog0NLF1sTF19LFzcXOzs/FIM/Lz87ewc7JxSDX18/EwVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAi+sHXxdLbxc7JxSDSwcLP1NkgLSDOyd7Fx88gzsUgydrNxc7Fzs9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIgorbXNnc3RyICLwz9bBzNXK09TBLCDP1NfF1NjUxSDELCDOIMnMySDXXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisi7s/XwdEg1MHCzMnDwSDSwdrExczP1yDV09DF287PINrB0MnTwc7BXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorIuXTzMkg19kg08/axMHMySDJzMkgydrNxc7JzMkg0sHaxMXMIERPUywg08vB1sXNLCAvZGV2L2ZvbzcsIMnT0M/M2NrVytTFICIKKyLawdTFzSBkZCgxKSxcbiIKKyLe1M/C2SDPws7VzMnU2CDQxdLX2cUgNTEyIMLBytQ6ICBkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiAiCisiY291bnQ9MVxuIgorIijzzS4gZmRpc2soOCkuKVxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiVzOiDOxdfP2s3P1s7PIM/Uy9LZ1NggJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBiYWQgZm9ybWF0IG9uIGxpbmUgJWQgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozNTIKK21zZ2lkICIiCisiV0FSTklORzogWW91ciAvZXRjL2ZzdGFiIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZzY2sgcGFzc25vXG4iCisiXHRmaWVsZC4gIEkgd2lsbCBrbHVkZ2UgYXJvdW5kIHRoaW5ncyBmb3IgeW91LCBidXQgeW91XG4iCisiXHRzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo0NjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZzY2s6ICVzOiBub3QgZm91bmRcbiIKK21zZ3N0ciAidW1vdW50OiAlczogzsUgzsHKxMXOIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlczogc3RhdHVzIGlzICV4LCBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjY0MworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCB3aXRoICVzIChleGl0IHN0YXR1cyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiJXM6IM/bycLLwSAlZCDQ0skg0sHT0MHLz9fLxSEgJXAoJWQpXG4iCisKKyM6IGZzY2svZnNjay5jOjcyNAorbXNnaWQgIiIKKyJFaXRoZXIgYWxsIG9yIG5vbmUgb2YgdGhlIGZpbGVzeXN0ZW0gdHlwZXMgcGFzc2VkIHRvIC10IG11c3QgYmUgcHJlZml4ZWRcbiIKKyJ3aXRoICdubycgb3IgJyEnLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjc0MworIywgZnV6enkKK21zZ2lkICJDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpbGVzeXN0ZW0gdHlwZXNcbiIKK21zZ3N0ciAibW91bnQ6INfZIMTPzNbO2SDVy8HawdTYINTJ0CDGwcrMz9fPyiDTydPUxc3ZIgorCisjOiBmc2NrL2ZzY2suYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBza2lwcGluZyBiYWQgbGluZSBpbiAvZXRjL2ZzdGFiOiBiaW5kIG1vdW50IHdpdGggbm9uemVybyBmc2NrIHBhc3MgIgorIm51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIgorbXNnc3RyICIlczogJXMgzsUgbHAt1dPU0s/K09TXzy5cbiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKKyMsIGZ1enp5Cittc2dpZCAiQ2hlY2tpbmcgYWxsIGZpbGUgc3lzdGVtcy5cbiIKK21zZ3N0ciAi+sHQ1dPLwcXU09Eg0NLP18XSy8EgxsHKzM/Xz8og08nT1MXN2SDOwSAlcy5cbiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1CisjLCBmdXp6eQorbXNnaWQgIiIKKyJVc2FnZTogZnNjayBbLUFNTlBSVFZdIFsgLUMgWyBmZCBdIF0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIFtmaWxlc3lzIC4uLl1cbiIKK21zZ3N0ciAi6dPQz8zY2s/Xwc7JxTogbWtmcyBbLVZdIFstdCDUydBfxtNdIFvP0MPJyV/G010g1dPU0s/K09TXzyBb0sHazcXSXVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgZGV2aWNlc1xuIgorbXNnc3RyICIlczogJXMgzsUgbHAt1dPU0s/K09TXzy5cbiIKKworIzogZnNjay9mc2NrLmM6MTEzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDP1MvS2dTYICVzOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJcyAvcHJvYyBtb3VudGVkP1xuIgorbXNnc3RyICIlcyDSwdrNz87UydLP18HOXG4iCisKKyM6IGZzY2svZnNjay5jOjExNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSByb290IHRvIHNjYW4gZm9yIG1hdGNoaW5nIGZpbGVzeXN0ZW1zOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGZpbmQgbWF0Y2hpbmcgZmlsZXN5c3RlbTogJXNcbiIKK21zZ3N0ciAi8sHazc/O1MnS1cDU09Eg19PFIM/T1MHX28nF09EgxsHKzM/X2cUg08nT1MXN2S4uLiIKKworIzogZnNjay9mc2NrLmM6MTE1NiBmc2NrL2ZzY2suYzoxMjQyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iCittc2dzdHIgIiVzOiDOxcna18XT1M7ZyiDB0sfVzcXO1DogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTI3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZnNjayBmcm9tICVzXG4iCittc2dzdHIgIiVzIMnaICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDSwdrNxdPUydTYIMLVxsXSIMTM0SBpbm9kZSfP1yIKKworIzogZ2V0b3B0L2dldG9wdC5jOjIyOQorbXNnaWQgIlRyeSBgZ2V0b3B0IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIvDP0NLPwtXK1MUgYGdldG9wdCAtLWhlbHAnIMTM0SDQz8zV3sXOydEgxM/Qz8zOydTFzNjOz8ogyc7Gz9LNwcPJyS5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAi0NXT1MHRIM/Qw8nRIGxvbmcg0M/TzMUgwdLH1c3FztTBIC1sIMnMySAtLWxvbmciCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMTUKK21zZ2lkICJ1bmtub3duIHNoZWxsIGFmdGVyIC1zIG9yIC0tc2hlbGwgYXJndW1lbnQiCittc2dzdHIgIs7FydrXxdPUztnKINvFzMwg0M/TzMUgwdLH1c3FztTBIC1zIMnMySAtLXNoZWxsIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIwCittc2dpZCAiVXNhZ2U6IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICLp09DPzNjaz9fBzsnFOiBnZXRvcHQg09TSz8vBX8/Qw8nKINDB0sHNxdTS2VxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIxCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgZ2V0b3B0IFvP0MPJyV0gWy0tXSDT1NLPy8Ffz9DDycog0MHSwc3F1NLZXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjIKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSAtb3wtLW9wdGlvbnMgb3B0c3RyaW5nIFtvcHRpb25zXSBbLS1dXG4iCittc2dzdHIgIiAgICAgICBnZXRvcHQgW8/Qw8nJXSAtb3wtLW9wdGlvbnMg09TSz8vBX8/Qw8nKIFvP0MPJyV0gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAg0MHSwc3F1NLZXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjQKK21zZ2lkICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4iCittc2dzdHIgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAg8sHa0sXbxc7JxSDEzMnOztnIIM/Qw8nKLCDOwd7JzsHA3cnI09Eg0yAiCisiz8TOz8fPIC1cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNQorbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBUaGlzIHNtYWxsIHVzYWdlIGd1aWRlXG4iCittc2dzdHIgIiIKKyIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAg/NTPIM7Fws/M2NvPxSDS1cvP18/E09TXzyDQzyDJ09DPzNjaz9fBzsnAXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbCwgLS1sb25nb3B0aW9ucz1sb25nb3B0cyAgIOTMyc7O2cUgz9DDyckgxMzRINLB09DP2s7B18HOydFcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNworbXNnaWQgIiIKKyIgIC1uLCAtLW5hbWU9cHJvZ25hbWUgICAgICAgICAgVGhlIG5hbWUgdW5kZXIgd2hpY2ggZXJyb3JzIGFyZSByZXBvcnRlZFxuIgorbXNnc3RyICIiCisiICAtbiwgLS1uYW1lPcnN0V/Q0s/H0sHNzdkgICAgIOnN0Swgz9Qgy8/Uz9LPx88g18XExdTT0SDP1N7F1CDPwiDP28nCy8HIXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjgKK21zZ2lkICIgIC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLW8sIC0tb3B0aW9ucz3T1NLPy8Ffz9DDycogICDrz9LP1MvJxSDP0MPJySDEzNEg0sHT0M/azsHXwc7J0VxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIiCisiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIO/Uy8zA3sXOycUgz9TexdTBIM/CIM/bycLLwcggZ2V0b3B0KDMpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAg4sXaIM/C2d7O2cgg19nIz8TO2cggxMHOztnIXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiIgorIiAgLXMsIC0tc2hlbGw928XMzCAgICAgICAgICAgICD109TBzs/Xy8Eg1dPMz9fJyiDawcvMLiDXIMvB19ney8kgxMzRINvFzMzBXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzIKK21zZ2lkICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgVGVzdCBmb3IgZ2V0b3B0KDEpIHZlcnNpb25cbiIKK21zZ3N0ciAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIPDSz9fF0svBINfF0tPJySBnZXRvcHQoMSlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMworbXNnaWQgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUgdGhlIG91dHB1dFxuIgorbXNnc3RyICIiCisiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIO7FINrBy8zA3sHU2CDXIMvB19ney8kg19nIz8TO2cUgxMHOztnFXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIPfZ18/EIMnOxs/SzcHDyckgzyDXxdLTyclcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjM4OCBnZXRvcHQvZ2V0b3B0LmM6NDQ3Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgIs/U09XU09TX1cXUIMHSx9XNxc7UINPU0s/LySDP0MPJyiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICJnZXRvcHQgKGVuaGFuY2VkKSAxLjEuNFxuIgorbXNnc3RyICJnZXRvcHQgKNXTz9fF0tvFztPU18/Xwc7O2copIDEuMS40XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0NDEKK21zZ2lkICJpbnRlcm5hbCBlcnJvciwgY29udGFjdCB0aGUgYXV0aG9yLiIKK21zZ3N0ciAi187V1NLFzs7R0SDP28nCy8EsINPX0dbJ1MXT2CDTIMHX1M/Sz80uIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9vdGVkIGZyb20gTUlMT1xuIgorbXNnc3RyICLawcfS1dbFziDJ2iBNSUxPXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJSdWZmaWFuIEJDRCBjbG9ja1xuIgorbXNnc3RyICJSdWZmaWFuIEJDRC3ewdPZXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICLQz9LUIN7B08/XINfZ09TB18zFziDOwSAweCV4XG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJmdW5reSBUT1khXG4iCittc2dzdHIgIsvMwdPTzsHRIOnn8vX76+EhXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXRvbWljICVzIGZhaWxlZCBmb3IgMTAwMCBpdGVyYXRpb25zISIKK21zZ3N0ciAiJXM6IMHUz83O2cogJXMg2sHXxdLbyczT0SDOxdXEwd7FyiDEzNEgMTAwMCDJ1MXSwcPJyiEiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHJlYWQgZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIu7F18/azc/Wzs8gz9TL0tnU2CAvZGV2L3BvcnQ6ICVzIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIiIKKyLuxdfP2s3P1s7PIMLZzM8g0M/M1d7J1Ngg0sHa0sXbxc7JxSwg0M/Uz83VIM7FIMLZzMEg19nQz8zOxc7BINDP0NnUy8EuXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyB1bmFibGUgdG8gZ2V0IEkvTyBwb3J0IGFjY2VzczogIHRoZSBpb3BsKDMpIGNhbGwgZmFpbGVkLlxuIgorbXNnc3RyICIiCisiJXMgzsXXz9rNz9bOzyDQz8zV3snU2CDEz9PU1dAgyyDQz9LU1SBJL086ICDX2drP1yBpb3BsKDMpINrB18XS28nM09EgIgorIs7F1cTB3sXKLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICL3z9rNz9bOzywg18HNIM7V1s7ZINDSydfJzMXHyckgcm9vdCfBLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiAlcyB0aW1lLlxuIgorbXNnc3RyICLwz8TSwdrVzcXXwcXU09EsIN7UzyDB0NDB0sHUztnFIN7B09kg19nT1MHXzMXO2SDQzyAlcyDX0sXNxc7JLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAizcXT1M7PzdUiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2FybmluZzogdW5yZWNvZ25pemVkIHRoaXJkIGxpbmUgaW4gYWRqdGltZSBmaWxlXG4iCittc2dzdHIgIiVzOiDw0sXE1dDSxdbExc7JxTogzsXSwdPQz9rOwc7OwdEg1NLF1NjRINPU0s/LwSDXIMbByszFIGFkanRpbWVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIihFeHBlY3RlZDogYFVUQycgb3IgYExPQ0FMJyBvciBub3RoaW5nLilcbiIKK21zZ3N0ciAiKO/WycTBzM/T2DogYFVUQycgyczJIGBMT0NBTCcgyczJIM7J3sXHzy4pXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGRyaWZ0IGFkanVzdG1lbnQgZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIuTB1MEg0M/TzMXEzsXKIMvP0tLFy9TJ0s/Xy8kgz9TLzM/Oxc7J0SAtICVsZCDTxcvVzsQg0M/TzMUgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBjYWxpYnJhdGlvbiBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAi5MHUwSDQz9PMxcTOxcogy8HMycLSz9fLySAtICVsZCDTxcvVzsQg0M/TzMUgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICLh0NDB0sHUztnFIN7B09kg19nT1MHXzMXO2SDQzyAlcyDX0sXNxc7JXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgIs7FydrXxdPUztnKIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBmb3IgY2xvY2sgdGljay4uLlxuIgorbXNnc3RyICLv1snEwcXU09Eg1MnLwc7YxSDewdPP1y4uLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc3luY2hyb25pemF0aW9uIGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1OAorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5nb3QgY2xvY2sgdGlja1xuIgorbXNnc3RyICIuLi7Qz8zV3sXOzyDUycvBztjFIN7B08/XXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHZhbHVlcyBpbiBoYXJkd2FyZSBjbG9jazogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorbXNnc3RyICLuxdfF0s7ZxSDazsHexc7J0SDXIMHQ0MHSwdTO2cgg3sHTwcg6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICLh0NDB0sHUzs/FINfSxc3ROiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkINPFy9XOxCDTIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIvfSxc3RLCDQ0s/eydTBzs7PxSDTIMHQ0MHSwdTO2cgg3sHTz9c6ICU0ZC8lLjJkLyUuMmQgJTAyZDolMDJkOiUwMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIuHQ0MHSwdTO2cUg3sHT2SDV09TBzsHXzMnXwcDU09Eg1yAlLjJkOiUuMmQ6JS4yZCA9ICVsZCDTxcvVzsQg0yAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICJDbG9jayBub3QgY2hhbmdlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAi/sHT2SDOxSDJ2s3FzsXO2SAtINTPzNjLzyDUxdPUydLP18HOycUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjUzNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlRpbWUgZWxhcHNlZCBzaW5jZSByZWZlcmVuY2UgdGltZSBoYXMgYmVlbiAlLjZmIHNlY29uZHMuXG4iCisiRGVsYXlpbmcgZnVydGhlciB0byByZWFjaCB0aGUgbmV3IHRpbWUuXG4iCittc2dzdHIgIiIKKyL30sXN0Swg0NLP28XE28XFINMgzsHewczBIM/U097F1MEsINPP09TB18nMzyAlLjZmINPFy9XOxC5cbiIKKyLkz9DPzM7J1MXM2M7B0SDawcTF0tbLwSDEzNEgxM/T1MnWxc7J0SDTzMXE1cDdxcog0M/Mzs/KINPFy9XOxNkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIHJlZ2lzdGVycyBjb250YWluIHZhbHVlcyB0aGF0IGFyZSBlaXRoZXIgaW52YWxpZCAoZS5nLiAiCisiNTB0aCBkYXkgb2YgbW9udGgpIG9yIGJleW9uZCB0aGUgcmFuZ2Ugd2UgY2FuIGhhbmRsZSAoZS5nLiBZZWFyIDIwOTUpLlxuIgorbXNnc3RyICIiCisi8sXHydPU0tkgwdDQwdLB1M7ZyCDewdPP1yDTz8TF0tbB1CDazsHexc7J0Swgy8/Uz9LZxSDMycLPIM7F18XSztkgKM7B0NIuLCA1MC0iCisiyiDExc7YIM3F09HDwSksIMzJws8gzsHIz8TR1NPRINrBINDSxcTFzMHNySDcxsbFy9TJ187Px88gxMnB0MHaz87BICjOwdDSLCAiCisiMjA5NSDHz8QpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIlcyAgJS42ZiDTxcvVzsRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIC0tZGF0ZSBvcHRpb24gc3BlY2lmaWVkLlxuIgorbXNnc3RyICLuxSDVy8Hawc7BIM/Qw8nRIC0tZGF0ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICLh0sfVzcXO1CAtLWRhdGUg08zJ28vPzSDEzMnOztnKXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisi+s7B3sXOycUgz9DDyckgLS1kYXRlIM7FINHXzNHF1NPRINfF0s7PyiDEwdTPyi5cbiIKKyL3IN7B09TOz9PUySwgz87PINPPxMXS1snUIMvB19ney8kuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJc3N1aW5nIGRhdGUgY29tbWFuZDogJXNcbiIKK21zZ3N0ciAi8M/EwcXU09Egy8/Nwc7E2SDEwdTZOiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDAKK21zZ2lkICJVbmFibGUgdG8gcnVuICdkYXRlJyBwcm9ncmFtIGluIC9iaW4vc2ggc2hlbGwuIHBvcGVuKCkgZmFpbGVkIgorbXNnc3RyICIiCisi7sXXz9rNz9bOzyDawdDV09TJ1Ngg0NLPx9LBzc3VICdkYXRlJyDXINvFzMzFIC9iaW4vc2guIHBvcGVuKCkg2sHXxdLbyczT0SAiCisizsXVxMHexcoiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgIs/U18XUIMvPzcHOxNkgZGF0ZSA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKyLrz83BzsTBIGRhdGUsINfZ2tfBzs7B0SAlcywg18/a19LB1MnMwSDOxc/WycTBzs7ZxSDSxdrVzNjUwdTZLlxuIgorIuvPzcHOxMEgwtnMwTpcbiIKKyIgICVzXG4iCisi79TXxdQgwtnMOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIuvPzcHOxMEgZGF0ZSwg19na18HOzsHRICVzLCDXz9rX0sHUyczBIN7Uzy3UzyDL0s/NxSDDxczPx88g3snTzMEsINTPx8TBIMvByyAiCisiz9bJxMHMz9PYINDSxc/C0sHaz9fBzs7PxSDazsHexc7JxSDX0sXNxc7JLlxuIgorIuvPzcHOxMEgwtnMwTpcbiIKKyIgICVzXG4iCisi79TXxdQgwtnMOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgImRhdGUgc3RyaW5nICVzIGVxdWF0ZXMgdG8gJWxkIHNlY29uZHMgc2luY2UgMTk2OS5cbiIKK21zZ3N0ciAi09TSz8vBIMTB1NkgJXMg0sHXztHF1NPRICVsZCDTxcvVzsTBzSDTIDE5NjkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorIuHQ0MHSwdTO2cUg3sHT2SDOxSDTz8TF0tbB1CDXxdLOz8fPINfSxc3FzsksINDP3NTPzdUg0yDOycggzsXXz9rNz9bOzyAiCisi1dPUwc7P18nU2CDTydPUxc3Oz8Ug19LFzdEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyNyBod2Nsb2NrL2h3Y2xvY2suYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBzZXR0aW1lb2ZkYXk6XG4iCittc2dzdHIgIvfZ2tnXwcXU09Egc2V0dGltZW9mZGF5OlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICLzydPUxc3O2cUg3sHT2SDOxSDV09TBzs/XzMXO2Swg0M/Uz83VIN7UzyDawdDV08sg1yDUxdPUz9fPzSDSxdbJzcUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0MiBod2Nsb2NrL2h3Y2xvY2suYzo4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSBzdXBlcnVzZXIgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAi5MzRINXT1MHOz9fLySDTydPUxc3O2cgg3sHTz9cgztXWztkg0NLB18Eg09XQxdLQz8zY2s/XwdTFzNEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0NSBod2Nsb2NrL2h3Y2xvY2suYzo4MjMKK21zZ2lkICJzZXR0aW1lb2ZkYXkoKSBmYWlsZWQiCittc2dzdHIgInNldHRpbWVvZmRheSgpINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc4MQorIywgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisi68/S0sXL1MnSz9fLwSDLz9zGxsnDycXO1MEgz9TLzM/Oxc7J0SDOxSDX2dDPzM7FzsEsINDP1M/N1SDe1M8gwdDQwdLB1M7ZxSAiCisi3sHT2SDSwc7FxSDTz8TF0tbBzMkgzdXTz9IuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorIuvP0tLFy9TJ0s/Xy8Egy8/cxsbJw8nFztTBIM/Uy8zPzsXOydEgzsUg19nQz8zOxc7BLCDQz9TPzdVcbiIKKyLe1M8g0M/TzMXEztHRIMvBzMnC0s/Xy8EgwtnMwSDO1czF18/KLCDQz9zUz83VIM7F18XSzsFcbiIKKyLI0s/Oz8zPx8nRIMkgzsXPwsjPxMnNINrB0NXTyyDLwczJwtLP18vJLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorIuvP0tLFy9TJ0s/Xy8Egy8/cxsbJw8nFztTBIM/Uy8zPzsXOydEgzsUg19nQz8zOxc7BLCDQz9TPzdUg3tTPINPPINfSxc3FzskgIgorItDP08zFxM7FyiDLwczJwtLP18vJINDSz9vMzyDNxc7FxSDEztEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2xvY2sgZHJpZnRlZCAlLjFmIHNlY29uZHMgaW4gdGhlIHBhc3QgJWQgc2Vjb25kcyBpbiBzcGl0ZSBvZiBhIGRyaWZ0IGZhY3RvciAiCisib2YgJWYgc2Vjb25kcy9kYXkuXG4iCisiQWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBieSAlZiBzZWNvbmRzL2RheVxuIgorbXNnc3RyICIiCisi/sHT2SDQxdLF18XExc7ZIM7BICUuMWYg08XL1c7EIM7B2sHELCAlZCDTxcvVzsQgzsXTzc/U0tEgzsEgy8/cxsbJw8nFztQgIgorIs/Uy8zPzsXOydEgJWYg08XL1c7EINcgxMXO2C5cbiIKKyLrz9zGxsnDycXO1CDP1MvMz87FzsnRIM7B09TSwcnXwcXU09EgzsEgJWYg08XL1c7EINcgxMXO2FxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIgorbXNnc3RyICL30sXN0SDQz9PMxSDQz9PMxcTOxcogy8/S0sXL1MnSz9fLySDTz9PUwdfM0cXUICVkINPFy9XOxFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAi7sXPwsjPxMnNzyDEz8LB18nU2CAlZCDTxcvVzsQgySDQxdLF18XT1Mkg3sHT2SDOwSAlLjZmINPFy9XOxCDOwdrBxFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHVwZGF0aW5nIGFkanRpbWUgZmlsZSBiZWNhdXNlIG9mIHRlc3RpbmcgbW9kZS5cbiIKK21zZ3N0ciAi5sHKzCBhZGp0aW1lIM7FIM/Czs/XzNHF1NPRLCDQz9TPzdUg3tTPINfLzMDexc4g0sXWyc0g1MXT1MnSz9fBzsnRLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldvdWxkIGhhdmUgd3JpdHRlbiB0aGUgZm9sbG93aW5nIHRvICVzOlxuIgorIiVzIgorbXNnc3RyICIiCisi88zFxNXA3cXFIMLVxMXUINrB0MnTwc7PINcgJXM6XG4iCisiJXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAxNworIywgYy1mb3JtYXQKK21zZ2lkICJEcmlmdCBhZGp1c3RtZW50IHBhcmFtZXRlcnMgbm90IHVwZGF0ZWQuXG4iCittc2dzdHIgIvDB0sHNxdTS2SDLz9LSxcvUydLP18vJIM/Uy8zPzsXOydEgzsUgz8LOz9fMxc7ZLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBhZGp1c3QgaXQuXG4iCittc2dzdHIgIiIKKyLh0NDB0sHUztnFIN7B09kgzsUg08/ExdLWwdQg18XSzs/HzyDX0sXNxc7JLCDQz9zUz83VIM/Uy8/S0sXL1MnSz9fB1NggycggIgorIs7F18/azc/Wzs8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAiIgorIuvP0tLFy9TJ0s/Xy8Egy8/cxsbJw8nFztTBIM/Uy8zPzsXOydEgzsUg19nQz8zOxc7BLCDQz9TPzdVcbiIKKyLe1M8g0M/TzMXEztHRIMvBzMnC0s/Xy8EgwtnMwSDO1czF18/KLCDQz9zUz83VIM7F18XSzsFcbiIKKyLI0s/Oz8zPx8nRIMkgzsXPwsjPxMnNINrB0NXTyyDLwczJwtLP18vJLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWRlZCBhZGp1c3RtZW50IGlzIGxlc3MgdGhhbiBvbmUgc2Vjb25kLCBzbyBub3Qgc2V0dGluZyBjbG9jay5cbiIKK21zZ3N0ciAiIgorIu7Fz8LIz8TJzcHRIMvP0tLFy9TJ0s/Xy8Eg08/T1MHXzNHF1CDNxc7Y28Ug08XL1c7E2Swg0M/c1M/N1SDewdPZIM7FICIKKyLOwdPU0sHJ18HA1NPRLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nICVzLlxuIgorbXNnc3RyICLp09DPzNja1cXU09EgJXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIGNsb2NrIGludGVyZmFjZSBmb3VuZC5cbiIKK21zZ3N0ciAi7sUgzsHKxMXOINDSycfPxM7ZyiDewdPP18/KIMnO1MXSxsXK0y5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTIyMSBod2Nsb2NrL2h3Y2xvY2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICLuxdfP2s3P1s7PINXT1MHOz9fJ1Ngg08nT1MXNztnFIN7B09kuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisi+s7B3sXOycUg18XLwSDEzNEgwdDQwdLB1M7ZyCDewdPP1yDRxNLPIMjSwc7J1CDUz8zYy88gzsEgQWxwaGEtzcHbyc7ByC5cbiIKKyL81MEgy8/QydEgaHdjbG9jayDC2czBINPP2sTBzsEgxMzRIM3B28nO2Swgz9TMyd7Oz8ogz9QgQWxwaGFcbiIKKyIoySwg1MHLyc0gz8LSwdrPzSwg08XK3sHTLCDQzy3XycTJzc/N1SwgzsEgQWxwaGEgzsUg0sHCz9TBxdQpLiAg5MXK09TXycUgIgorIs/Uy8zPzsXOzy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gZ2V0IHRoZSBlcG9jaCB2YWx1ZSBmcm9tIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIu7F18/azc/Wzs8g0M/M1d7J1Ngg2s7B3sXOycUg18XLwSDJ2iDRxNLBLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAi8cTSzyDQz8TSwdrVzcXXwcXULCDe1M8g2s7B3sXOycUg18XLwSAlbHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSAnZXBvY2gnIG9wdGlvbiB0byB0ZWxsIHRvIHdoYXQgIgorInZhbHVlIHRvIHNldCBpdC5cbiIKK21zZ3N0ciAiIgorIv7Uz8LZINXT1MHOz9fJ1Ngg2s7B3sXOycUg18XLwSwg19kgxM/M1s7ZIMnT0M/M2NrP18HU2CDP0MPJwCAnZXBvY2gnIMTM0SAiCisi1cvB2sHOydEgztXWzs/HzyDazsHexc7J0S5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyB0aGUgZXBvY2ggdG8gJWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIvfFyyDOxSDV09TBzsHXzMnXwcXU09Eg1yAlZCAtINTPzNjLzyDUxdPUydLP18HOycUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDV09TBzs/XydTYINcg0cTSxSDazsHexc7JxSDXxcvBLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjkwIG1pc2MtdXRpbHMvY2FsLmM6MzQ3IG1pc2MtdXRpbHMva2lsbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiVzIMnaICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorImh3Y2xvY2sgLSDP0NLP0yDJINXT1MHOz9fLwSDB0NDB0sHUztnIIN7B08/XIChSVEMpXG4iCisiXG4iCisi6dPQz8zY2s/Xwc7JxTogaHdjbG9jayBbxtXOy8PJ0V0gW8/Qw8nJLi4uXVxuIgorIlxuIgorIubVzsvDyck6XG4iCisiICAtLWhlbHAgICAgICAgINfZ18/EINzUz8og09DSwdfLyVxuIgorIiAgLS1zaG93ICAgICAgICDe1MXOycUgwdDQwdLB1M7ZyCDewdPP1yDJINfZ18/EINLF2tXM2NTB1MFcbiIKKyIgIC0tc2V0ICAgICAgICAg1dPUwc7P18vBIN7B08/XIMnT1MnOzs/HzyDX0sXNxc7JIM7BINfSxc3RLCDVy8Hawc7Oz8Ug0yAtLSIKKyJkYXRlXG4iCisiICAtLWhjdG9zeXMgICAgINXT1MHOz9fLwSDTydPUxc3Oz8fPINfSxc3Fzskg0M8gwdDQwdLB1M7ZzSDewdPBzVxuIgorIiAgLS1zeXN0b2hjICAgICDV09TBzs/Xy8EgwdDQwdLB1M7ZyCDewdPP1yDQzyDUxcvV3cXN1SDTydPUxc3Oz83VINfSxc3FzslcbiIKKyIgIC0tYWRqdXN0ICAgICAg0sXH1czJ0s/Xy8Eg3sHTz9cgydPUyc7Oz8fPINfSxc3FzskgxMzRINfZ3snTzMXOydEgIgorItPJ09TFzcHUyd7F08vPx89cbiIKKyIgICAgICAgICAgICAgICAgz9TLzM/Oxc7J0SDQz9PMxSDQz9PMxcTOxcog1dPUwc7P18vJIMnMySDSxcfVzMnSz9fLySDewdPP11xuIgorIiAgLS1nZXRlcG9jaCAgICDX2dfPxCDazsHexc7J0SDXxcvBIMHQ0MHSwdTO2cgg3sHTz9cg0cTSwVxuIgorIiAgLS1zZXRlcG9jaCAgICDV09TBzs/Xy8Eg2s7B3sXOydEg18XLwSDB0NDB0sHUztnIIN7B08/XINHE0sEg1yDazsHexc7JxSxcbiIKKyIgICAgICAgICAgICAgICAg1cvB2sHOzs/FINMgLS1lcG9jaFxuIgorIiAgLS12ZXJzaW9uICAgICDX2dfPxCDXxdLTyckgaHdjbG9jayDOwSDT1MHOxMHS1M7ZyiDX2cjPxFxuIgorIlxuIgorIu/Qw8nJOiBcbiIKKyIgIC0tdXRjICAgICAgICAgwdDQwdLB1M7ZxSDewdPZINfZ09TB18zFztkg0M8g19PFz8Ldxc3VINPLz8/SxMnOydLP18HOzs/N1SAiCisi19LFzcXOyVxuIgorIiAgLS1sb2NhbHRpbWUgICDB0NDB0sHUztnFIN7B09kg19nT1MHXzMXO2SDQzyDNxdPUzs/N1SDX0sXNxc7JXG4iCisiICAtLWRpcmVjdGlzYSAgINDS0c3PyiDEz9PU1dAgyyDbyc7FIElTQSDXzcXT1M8gJXNcbiIKKyIgIC0tYmFkeWVhciAgICAgycfOz9LJ0s/XwdTYIMfPxCDewdPP1yDJ09TJzs7Px88g19LFzcXOySDJ2i3awSDQz9fSxdbExc7Oz8fPICIKKyJiaW9zJ8FcbiIKKyIgIC0tZGF0ZSAgICAgICAg1cvB2sHOycUg19LFzcXOySwgy8/Uz9LPxSDC1cTF1CDV09TBzs/XzMXOzyDXIMHQ0MHSwdTO2cUgIgorIt7B09lcbiIKKyIgIC0tZXBvY2g9x8/EICAg1cvB2sHOycUgx8/EwSwg0yDLz9TP0s/HzyDOwd7JzsHF1NPRICDazsHexc7JxVxuIgorIiAgICAgICAgICAgICAgICDc0tkgwdDQwdLB1M7ZyCDewdPP11xuIgorIiAgLS1ub2FkamZpbGUgICDCxdogydPQz8zY2s/Xwc7J0SAvZXRjL2FkanRpbWUuIPTSxcLVxdQgydPQz8zY2s/Xwc7J0VxuIgorIiAgICAgICAgICAgICAgICDMycLPIC0tdXRjLCDMycLPIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisiXG4iCittc2dzdHIgIiIKKyIgIC0tamVuc2VuLCAtLWFyYywgLS1zcm0sIC0tZnVua3ktdG95XG4iCisiICAgICAgICAgICAgICAgINPPz8LdwcXUIGh3Y2xvY2sn1SDUydAg18HbxcogYWxwaGEgKNPNLiBod2Nsb2NrKDgpKVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNDMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGNvbm5lY3QgdG8gYXVkaXQgc3lzdGVtXG4iCittc2dzdHIgIu7F18/azc/Wzs8g1dPUwc7P18nU2CDTydPUxc3O2cUg3sHT2S5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMg0NLJzsnNwcXUIM7Fz9DDyc/OwczYztnFIMHSx9XNxc7U2S4gIPfBzSDQ0sXEz9PUwdfMxc7ZICVkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyL32SDVy8HawczJIM7F08vPzNjLzyDG1c7Lw8nKLlxuIgorIvfZIM3P1sXUxSDX2dDPzM7J1Ngg1M/M2MvPIM/EztUgxtXOy8PJwCDawSDSwdouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS11dGMgYW5kIC0tbG9jYWx0aW1lIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSBzcGVjaWZpZWQgIgorImJvdGguXG4iCittc2dzdHIgIiIKKyIlczog79DDyckgLS11dGMgySAtLWxvY2FsdGltZSDR18zRwNTT0SDX2sHJzc7PIMnTy8zA3sHA3cnNyS4g4SDX2SDVy8HawczJICIKKyLPwsUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGp1c3QgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczog79DDyckgLS1hZGp1c3QgySAtLW5vYWRqZmlsZSDR18zRwNTT0SDX2sHJzc7PIMnTy8zA3sHA3cnNyS4g4SDX2SDVy8HawczJICIKKyLPwsUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqZmlsZSBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiDv0MPJySAtLWFkanVzdCDJIC0tbm9hZGpmaWxlINHXzNHA1NPRINfawcnNzs8gydPLzMDewcDdyc3JLiDhINfZINXLwdrBzMkgIgorIs/CxS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU4OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2l0aCAtLW5vYWRqZmlsZSwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKK21zZ3N0ciAiJXM6IPMgLS1ub2FkamZpbGUg19kgxM/M1s7ZINXLwdrB1NggzMnCzyAtLXV0YywgzMnCzyAtLWxvY2FsdGltZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBzZXQtdG8gdGltZS4gIENhbm5vdCBzZXQgY2xvY2suXG4iCittc2dzdHIgIiIKKyLv1NPV1NPU19XF1CDQ0snHz8TOz8UgxMzRINXT1MHOz9fLySDX0sXN0S4g7sXXz9rNz9bOzyDV09TBzs/XydTYIN7B09kuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jay5cbiIKK21zZ3N0ciAi6yDTz9bBzMXOycAg1M/M2MvPINPV0MXS0M/M2NrP18HUxczYIM3P1sXUIMnazcXO0dTYIMHQ0MHSwdTO2cUg3sHT2S5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyNAorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIFN5c3RlbSBDbG9jay5cbiIKK21zZ3N0ciAi6yDTz9bBzMXOycAg1M/M2MvPINPV0MXS0M/M2NrP18HUxczYIM3P1sXUIMnazcXO0dTYINPJ09TFzc7ZxSDewdPZLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIGluIHRoZSAiCisia2VybmVsLlxuIgorbXNnc3RyICIiCisi6yDTz9bBzMXOycAg1M/M2MvPINPV0MXS0M/M2NrP18HUxczYIM3P1sXUIMnazcXO0dTYINcg0cTSxSDXxcsgwdDQwdLB1M7ZyCAiCisi3sHTz9cuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB0aGUgSGFyZHdhcmUgQ2xvY2sgdmlhIGFueSBrbm93biBtZXRob2QuXG4iCittc2dzdHIgIiIKKyLuxdfP2s3P1s7PINDPzNXeydTYIMTP09TV0CDLIMHQ0MHSwdTO2c0g3sHTwc0gy8HLyc0gwtkg1M8gzskgwtnMzyDJ2tfF09TO2c0gIgorItPQz9PPws/NLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2UgdGhlIC0tZGVidWcgb3B0aW9uIHRvIHNlZSB0aGUgZGV0YWlscyBvZiBvdXIgc2VhcmNoIGZvciBhbiBhY2Nlc3MgIgorIm1ldGhvZC5cbiIKK21zZ3N0ciAiIgorIunT0M/M2NrVytTFIM/Qw8nAIC0tZGVidWcsIN7Uz8LZINXXycTF1Ngg0M/E0s/CztXAIMnOxs/SzcHDycAgzyDOwdvFzSDQz8nTy8UgIgorIsTM0SDNxdTPxMEgxM/T1NXQwS5cbiIKKworIzogaHdjbG9jay9rZC5jOjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tIEtER0hXQ0xLIHRvIGNoYW5nZVxuIgorbXNnc3RyICL3IMPJy8zFIM/WycTBxdTT0SDJ2s3FzsXOycUg19LFzcXOySDJ2iBLREdIV0NMS1xuIgorCisjOiBod2Nsb2NrL2tkLmM6NTcKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIgorbXNnc3RyICJLREdIV0NMSyBpb2N0bCDQ0skg3tTFzsnJINfSxc3Fzskg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICJLREdIV0NMSyBpb2N0bCDQ0skg3tTFzsnJINfSxc3Fzskg1yDDycvMxSDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBod2Nsb2NrL2tkLmM6ODIgaHdjbG9jay9ydGMuYzoyMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRpbWUgY2hhbmdlLlxuIgorbXNnc3RyICLp09TFy8zPINfSxc3RIM/WycTBzsnRIMTM0SDTzcXO2SDX0sXNxc7JLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6MTA0CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgZmFpbGVkIHRvIHJlYWQgdGltZSBmcm9tICVzIgorbXNnc3RyICJpb2N0bCgpINrB18XS28nM09EgzsXVxMHexcog0NLJIN7Uxc7JySDX0sXNxc7JIMnaICVzIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICJpb2N0bCBLRFNIV0NMSyDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBod2Nsb2NrL2tkLmM6MTc2Cittc2dpZCAiQ2FuJ3Qgb3BlbiAvZGV2L3R0eTEgb3IgL2Rldi92Yy8xIgorbXNnc3RyICLuxdfP2s3P1s7PIM/Uy9LZ1NggL2Rldi90dHkxIMnMySAvZGV2L3ZjLzEiCisKKyM6IGh3Y2xvY2sva2QuYzoxODAKK21zZ2lkICJLREdIV0NMSyBpb2N0bCBmYWlsZWQiCittc2dzdHIgIktER0hXQ0xLIGlvY3RsINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgIm9wZW4oKSAlcyDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHJlYWQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJpb2N0bCgpICVzINDSySDe1MXOyckg19LFzcXOySDawdfF0tvJzNPRIM7F1cTB3sXKLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAi9yDDycvMxSDP1snEwcXU09EgxMzRINPNxc7ZINfSxc3RIMnaICVzXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRvZXMgbm90IGhhdmUgaW50ZXJydXB0IGZ1bmN0aW9ucy4gIgorbXNnc3RyICIlcyDOxSDJzcXF1CDG1c7Lw8nKINDSxdLZ18HOydEuICIKKworIzogaHdjbG9jay9ydGMuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJyZWFkKCkg1yAlcyDEzNEgz9bJxMHOydEg1MnLwc7Y0SDewdPP1yDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAic2VsZWN0KCkg1yAlcyDEzNEgz9bJxMHOydEg1MnLwc7Y0SDewdPP1yDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIHRpbWVkIG91dFxuIgorbXNnc3RyICLp09TFy8zPINfSxc3RIM/WycTBzsnRINTJy8HO2NEg3sHTz9cgc2VsZWN0KCkg1yAlc1xuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoKSDXICVzIMTM0SDX2cvMwN7FzsnRINDSxdLZ18HOycogz8LOz9fMxc7J0SDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAiIgorImlvY3RsKCkg1yAlcyDEzNEg18vMwN7FzsnRINDSxdLZ18HOycogz8LOz9fMxc7J0SDOxc/WycTBzs7PINrB18XS28nM09EgIgorIs7F1cTB3sXKIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImlvY3RsKCkg1yAlcyDEzNEg1dPUwc7P18vJINfSxc3Fzskg2sHXxdLbyczT0SDOxdXEwd7Fyi5cbiIKKworIzogaHdjbG9jay9ydGMuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoJXMpIHdhcyBzdWNjZXNzZnVsLlxuIgorbXNnc3RyICJpb2N0bCglcykg2sHXxdLbyczT0SDV09DF287PLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcGVuIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAi79TL0tnUycUgJXMg2sHXxdLbyczP09ggzsXVxMHexcoiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDEwIGh3Y2xvY2svcnRjLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBtYW5pcHVsYXRlIHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLCB3ZSBtdXN0IGFjY2VzcyB0aGUgTGludXggJ3J0YycgIgorImRldmljZSBkcml2ZXIgdmlhIHRoZSBkZXZpY2Ugc3BlY2lhbCBmaWxlICVzLiAgVGhpcyBmaWxlIGRvZXMgbm90IGV4aXN0IG9uICIKKyJ0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiIgorIuTM0SDJ2s3FzsXOydEg2s7B3sXOydEg18XLwSDXINHE0sUgzsXPwsjPxMnNzyDQz8zV3snU2CDEz9PU1dAgyyDE0sHK18XS1SAiCisi1dPU0s/K09TXwSBMaW51eCAncnRjJyDQz9PSxcTT1NfPzSDT0MXDycHM2M7Px88gxsHKzMEg1dPU0s/K09TXwSAlcy4g9yAiCisixMHOzs/KINPJ09TFzcUg3NTP1CDGwcrMIM/U09XU09TX1cXULlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxNSBod2Nsb2NrL3J0Yy5jOjQ1OQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAi7sXXz9rNz9bOzyDP1MvS2dTYICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfUkVBRCkg1yAlcyDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAiwtnMINDSz97J1MHOINfFyyAlbGQgydogJXMg3sXSxdogUlRDX0VQT0NIX1JFQUQgaW9jdGwuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlcG9jaCB2YWx1ZSBtYXkgbm90IGJlIGxlc3MgdGhhbiAxOTAwLiAgWW91IHJlcXVlc3RlZCAlbGRcbiIKK21zZ3N0ciAi+s7B3sXOycUg18XLwSDOxSDNz9bF1CDC2dTYIM3FztjbxSAxOTAwLiD32SDawdDSz9PJzMkgJWxkXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNldHRpbmcgZXBvY2ggdG8gJWxkIHdpdGggUlRDX0VQT0NIX1NFVCBpb2N0bCB0byAlcy5cbiIKK21zZ3N0ciAi18XLINXT1MHOwdfMydfBxdTT0SDXICVsZCDTIFJUQ19FUE9DSF9TRVQgaW9jdGwg1yAlcy5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwgZGV2aWNlIGRyaXZlciBmb3IgJXMgZG9lcyBub3QgaGF2ZSB0aGUgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKK21zZ3N0ciAi5NLBytfF0iDV09TSz8rT1NfBINHE0sEgxMzRICVzIM7FIMnNxcXUIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKFJUQ19FUE9DSF9TRVQpIHRvICVzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoUlRDX0VQT0NIX1NFVCkg1yAlcyDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIgorbXNnc3RyICIlczogzsXXz9rNz9bOzyDX2dDPzM7J1NggJXM6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozODMKK21zZ2lkICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKK21zZ3N0ciAizsXXz9rNz9bOzyDX2dDPzM7J1NggbWFsbG9jIMTM0SDT1NLPy8kgyc7Jw8nBzMnawcPJySIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAizsXXxdLOz8Ug2s7B3sXOycUg1MHKzS3B1dTBOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgIs7F18XSzsHRINPLz9LP09TYOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI3Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAi08zJ28vPzSDNzs/HzyDBzNjUxdLOwdTJ187ZyCDTy8/Sz9PUxcoiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIi9kZXY6IGNoZGlyKCkg2sHXxdLbyczT0SDOxdXEwd7FyjogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBub3QgYSBjaGFyYWN0ZXIgZGV2aWNlIgorbXNnc3RyICIvZGV2LyVzOiDOxcLMz97Oz8Ug1dPU0s/K09TXzyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IGNhbm5vdCBvcGVuIGFzIHN0YW5kYXJkIGlucHV0OiAlbSIKK21zZ3N0ciAiL2Rldi8lczogzsXXz9rNz9bOzyDP1MvS2dTYIMvByyDT1MHOxMHS1M7ZyiDX18/EOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3Qgb3BlbiBmb3IgcmVhZC93cml0ZSIKK21zZ3N0ciAiJXM6IM7FIM/Uy9LZ1CDEzNEg3tTFzsnRL9rB0MnTySIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkdXAgcHJvYmxlbTogJW0iCittc2dzdHIgIiVzOiDQ0s/CzMXNwSDE1cLMydLP18HOydE6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlciIKK21zZ3N0ciAi0M/M2NrP18HUxczYIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlcnMiCittc2dzdHIgItDPzNjaz9fB1MXMySIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTAzMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZDogJW0iCittc2dzdHIgIiVzOiDe1MXOycU6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnB1dCBvdmVycnVuIgorbXNnc3RyICIlczog0MXSxdDPzM7FzsnFINfXz8TBIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMjA2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstOGhpTG1Vd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IICIKKyJsb2dpbl9ob3N0XSBiYXVkX3JhdGUsLi4uIGxpbmUgW3Rlcm10eXBlXVxuIgorIm9yXHRbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggbG9naW5faG9zdF0gIgorImxpbmUgYmF1ZF9yYXRlLC4uLiBbdGVybXR5cGVdXG4iCittc2dzdHIgIiIKKyLp09DPzNjaz9fBzsnFOiAlcyBbLWhpTG13XSBbLWwg0NLPx9LBzc3BX9fIz8TBXSBbLXQg1MHKzS3B1dRdIFstSSAiCisi09TSz8vBX8nOycPJwczJ2sHDycldIFstSCDIz9PUX8TM0V/XyM/EwV0g08vP0s/T1Nhf0MXSxcTB3sksLi4uINDP0tQgIgorIlvUydBf1MXSzcnOwczBXVxuIgorIsnMyVx0Wy1oaUxtd10gWy1sINDSz8fSwc3NwV/XyM/EwV0gWy10INTBys0twdXUXSBbLUkg09TSz8vBX8nOycPJwczJ2sHDycldIFstIgorIkggyM/T1F/EzNFf18jPxMFdINDP0tQg08vP0s/T1Nhf0MXSxcTB3sksLi4uIFvUydBf1MXSzcnOwczBXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkxIGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBtZW1vcnkgbG93LCBsb2dpbiBtYXkgZmFpbFxuIgorbXNnc3RyICJsb2dpbjogzcHMzyDQwc3R1MksINfIz8Qg1yDTydPUxc3VIM3P1sXUINrB18XS28nU2NPRIM7F1cTB3sXKXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTIKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIHR0eWNsYXNzIgorbXNnc3RyICLOxdfP2s3P1s7PINfZ0M/MzsnU2CBtYWxsb2MgxMzRIHR0eWNsYXNzIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMworbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIKK21zZ3N0ciAizsXXz9rNz9bOzyDX2dDPzM7J1NggbWFsbG9jIMTM0SBncnBsaXN0IgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU1NAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZCBieSBkZWZhdWx0LlxuIgorbXNnc3RyICL3yM/EINcgJXMg0yAlcyDawdDSxd3FziDQzyDVzc/M3sHOycAuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICL3yM/EINcgJXMg0yAlcyDawdDSxd3Fzi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjEzMyBsb2dpbi11dGlscy9jaHNoLmM6MTE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB5b3UgKHVzZXIgJWQpIGRvbid0IGV4aXN0LlxuIgorbXNnc3RyICIlczog19kgKNDPzNjaz9fB1MXM2CAlZCkgzsUg09XdxdPU19XF1MUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDAgbG9naW4tdXRpbHMvY2hzaC5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdXNlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiDQz8zY2s/XwdTFzNggXCIlc1wiIM7FINPV3cXT1NfVxdQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiIKKyIlczogzc/Wzs8g1M/M2MvPIMnazcXOydTYIMzPy8HM2M7ZxSDczMXNxc7U2Tsg183F09TPINzUz8fPIMnT0M/M2NrVytTFIHlwJSIKKyJzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU2IGxvZ2luLXV0aWxzL2Noc2guYzoxNDIKK21zZ2lkICJVbmtub3duIHVzZXIgY29udGV4dCIKK21zZ3N0ciAi7sXJ2tfF09TO2cogy8/O1MXL09Qg0M/M2NrP18HUxczRIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIGZpbmdlciBpbmZvIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyDOxSDB19TP0snaz9fBziDEzNEgydrNxc7FzsnRIGZpbmdlci3JzsbP0s3Bw8nJIM/CICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiVzOiDuxdfP2s3P1s7PINXT1MHOz9fJ1Nggy8/O1MXL09Qg0M8g1c3PzN7BzsnAIMTM0SAvZXRjL3Bhc3N3ZCIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBmaW5nZXIgaW5mb3JtYXRpb24gZm9yICVzLlxuIgorbXNnc3RyICLp2s3FzsXOycUgyc7Gz9LNwcPJySBmaW5nZXIgxMzRICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTg5IGxvZ2luLXV0aWxzL2Noc2guYzoxODggbG9naW4tdXRpbHMvbG9naW4uYzo1NzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBQQU0gZmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCittc2dzdHIgImxvZ2luOiDTws/KIFBBTSwg19nQz8zO0cXU09Eg0NLF0tnXwc7JxTogJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxMiBsb2dpbi11dGlscy9jaHNoLmM6MjExIGxvZ2luLXV0aWxzL2xvZ2luLmM6ODI3CisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo3OSBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQwIG1vdW50L2xvbW91bnQuYzo3NDIKKyM6IG1vdW50L2xvbW91bnQuYzo3NDUKK21zZ2lkICJQYXNzd29yZDogIgorbXNnc3RyICLwwdLPzNg6ICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxNSBsb2dpbi11dGlscy9jaHNoLmM6MjE0Cittc2dpZCAiSW5jb3JyZWN0IHBhc3N3b3JkLiIKK21zZ3N0ciAi7sXXxdLO2cog0MHSz8zYLiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIunOxs/SzcHDydEgZmluZ2VyIM7FIMnazcXOxc7BLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIgorbXNnc3RyICLp09DPzNjaz9fBzsnFOiAlcyBbIC1mINDPzM7PxV/JzdEgXSBbIC1vIM7PzcXSX8/GydPBIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJbIC1wIG9mZmljZS1waG9uZSBdXG4iCisiXHRbIC1oIGhvbWUtcGhvbmUgXSAiCittc2dzdHIgIiIKKyJbIC1wINLBws/eycpf1MXMxcbPziBdXG4iCisiXHRbIC1oIMTPzcHbzsnKX9TFzMXGz84gXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQwMSBsb2dpbi11dGlscy9jaHNoLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJBYm9ydGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisi8NLF0tfBzi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAi0M/MxSDTzMnby8/NIMTMyc7Oz8UuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJyVjJyDawdDSxd3Fzi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICJDb250cm9sLdPJzdfPzNkg2sHQ0sXdxc7ZLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICLpzsbP0s3Bw8nRIGZpbmdlciAq7uUqIMnazcXOxc7BLiDwz9DSz8LVytTFIMXdxSDSwdog0M/Qz9rWxS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAi6c7Gz9LNwcPJ0SBmaW5nZXIgydrNxc7FzsEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgc2hlbGwgb2YgJXNcbiIKK21zZ3N0ciAiJXM6ICVzIM7FIMHX1M/SydrP18HOIMTM0SDJ2s3FzsXOydEg28XMzMEgJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczog+sHQ1d3Fzs7ZyiBVSUQgzsUg08/X0MHEwcXUINMgVUlEJ8/NINLFxMHL1MnS1cXNz8fPINDPzNjaz9fB1MXM0SwgIgorIsnazcXOxc7JxSDbxczMwSDawdDSxd3Fzs9cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogWW91ciBzaGVsbCBpcyBub3QgaW4gL2V0Yy9zaGVsbHMsIHNoZWxsIGNoYW5nZSBkZW5pZWRcbiIKK21zZ3N0ciAiJXM6IPfB2yDbxczMIM/U09XU09TX1cXUINcgL2V0Yy9zaGVsbHMsIMnazcXOxc7JxSDbxczMwSDawdDSxd3Fzs9cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBzaGVsbCBmb3IgJXMuXG4iCittc2dzdHIgIunazcXOxc7JxSDbxczMwSDEzNEgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjIKK21zZ2lkICJOZXcgc2hlbGwiCittc2dzdHIgIu7P19nKINvFzMwiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIvvFzMwgzsUgydrNxc6jzi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICL7xczMICru5SogydrNxc6jzi4g8M/Q0s/C1crUxSDF3cUg0sHaINDP0M/a1sUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgY2hhbmdlZC5cbiIKK21zZ3N0ciAi+8XMzCDJ2s3FzqPOLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIunT0M/M2NrP18HOycU6ICVzIFsgLXMg28XMzCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIMnN0V/Qz8zY2s/XwdTFzNEgXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiDbxczMIMTPzNbFziDC2dTYINDPzM7ZzSDTz9PUwdfO2c0gyc3FzsXNLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIgzsUg09XdxdPU19XF1C5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBleGVjdXRhYmxlLlxuIgorbXNnc3RyICIlczogXCIlc1wiIM7FINHXzNHF1NPRIMnT0M/MztHFzdnNLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogJyVjJyDawdDSxd3Fzi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6IENvbnRyb2wt08nN18/M2SDawdDSxd3FztkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzUgbG9naW4tdXRpbHMvY2hzaC5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAi8NLFxNXQ0sXWxMXOycU6IFwiJXNcIiDP1NPV1NPU19XF1CDXINPQydPLxSAvZXRjL3NoZWxsc1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiDP1NPV1NPU19XF1CDXINPQydPLxSAvZXRjL3NoZWxsc1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IMnT0M/M2NrVytTFIM/Qw8nAIC1sIG9wdGlvbiDEzNEg0NLP083P1NLBINPQydPLwVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSAlcyAtbCB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAi6dPQz8zY2tXK1MUgJXMgLWwgxMzRINDSz9PNz9TSwSDT0MnTy8EuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICLuxdQgydrXxdPUztnIINvFzMzP1y5cbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZywgZXhpdGluZy4iCittc2dzdHIgIs7F18/azc/Wzs8gz9TL0tnU2CAlcyDEzNEg3tTFzsnRXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzoxNDgKK21zZ2lkICJ1c2FnZTogbGFzdCBbLSNdIFstZiBmaWxlXSBbLXQgdHR5XSBbLWggaG9zdG5hbWVdIFt1c2VyIC4uLl1cbiIKK21zZ3N0ciAiIgorIsnT0M/M2NrP18HOycU6IGxhc3QgWy0jXSBbLWYgxsHKzF0gWy10IHR0eV0gWy1oIMnN0V/Iz9PUwV0gIgorIlvQz8zY2s/XwdTFzNggLi4uXVxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzAyCittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIiAg19PFIMXdxSDXINPJ09TFzcUiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInd0bXAgYmVnaW5zICVzIgorbXNnc3RyICIiCisiXG4iCisid3RtcCDOwd7BzNPRICVzIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzgwIGxvZ2luLXV0aWxzL2xhc3QuYzozOTggbG9naW4tdXRpbHMvbGFzdC5jOjQ0OQorbXNnaWQgImxhc3Q6IG1hbGxvYyBmYWlsdXJlLlxuIgorbXNnc3RyICJsYXN0OiBtYWxsb2Mg2sHXxdLbyczT0SDOxdXEwd7Fyi5cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQyNQorbXNnaWQgImxhc3Q6IGdldGhvc3RuYW1lIgorbXNnc3RyICJsYXN0OiBnZXRob3N0bmFtZSIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW50ZXJydXB0ZWQgJTEwLjEwcyAlNS41cyBcbiIKK21zZ3N0ciAiIgorIlxuIgorItDSxdLXwc4gJTEwLjEwcyAlNS41cyBcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6IGNhbid0IHJlb3BlbiB0dHk6ICVzIgorbXNnc3RyICLo8uXu7/fvOiDOxdfP2s3P1s7PINDP19TP0s7PIM/Uy9LZ1NggdHR5OiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIKK21zZ3N0ciAiJXMgzsUg0dfM0cXU09Egz9PPwtnNIMLMz97O2c0g1dPU0s/K09TXz80iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjM4Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgIujy5e7v9+86INDMz8jPyiB0dHkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICJsb2dpbjogLWgg1M/M2MvPIMTM0SDT1dDF0tDPzNjaz9fB1MXM0S5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvZ2luIFstZnBdIFt1c2VybmFtZV1cbiIKK21zZ3N0ciAiydPQz8zY2s/Xwc7JxTogbG9naW4gWy1mcF0gW8nN0V/Qz8zY2s/XwdTFzNFdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAi7sXXz9rNz9bOzyDJzsnDycHMydrJ0s/XwdTYIFBBTTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTk1Cittc2dpZCAibG9naW46ICIKK21zZ3N0ciAizM/Hyc46ICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOICVkIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAi8+Lv6iD36O/k4SAlZCDp+iAlcyDk7PEgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTG9naW4gaW5jb3JyZWN0XG4iCisiXG4iCittc2dzdHIgIiIKKyLuxdfF0s7ZyiDMz8fJzlxuIgorIlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJUT08gTUFOWSBMT0dJTiBUUklFUyAoJWQpIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAi8+zp++vv7SDt7u/n7yDw7/D59O/rIPfo7+ThICglZCkg6fogJXMg5OzxICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICLz4u/qIPPl8/Pp6SD36O/k4SDp+iAlcyDk7PEgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIiIKKyJcbiIKKyLuxdfF0s7ZyiDMz8fJzlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIvDSz8LMxc3BINXT1MHOz9fLySDTxdPTycksINDSxdLZ18HOycUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5VTEwgdXNlciBuYW1lIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIvD18/Tv5SDJzdEg0M/M2NrP18HUxczRINcgJXM6JWQuIPDSxdLZ18HOycUuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVzZXIgbmFtZSBcIiVzXCIgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAi7sXXxdLOz8Ugyc3RINDPzNjaz9fB1MXM0SBcIiVzXCIg1yAlczolZC4g8NLF0tnXwc7JxS4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzE3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgImxvZ2luOiDuxcjXwdTLwSDQwc3R1MlcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICL6wdDSxd3Fzs7PxSDJzdEg0M/M2NrP18HUxczRIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb2dpbiByZWZ1c2VkIG9uIHRoaXMgdGVybWluYWwuXG4iCittc2dzdHIgIiVzINfIz8QgzsEg3NTP1CDUxdLNyc7BzCDP1NfF0sfO1dQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgRlJPTSAlcyBPTiBUVFkgJXMiCittc2dzdHIgIvfo7+QgJXMg7/T35fLn7vX0IOn6ICVzIO7hIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiCittc2dzdHIgIvfo7+QgJXMg7/T35fLn7vX0IO7hIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIu7F18XSztnKIMzPx8nOXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgIkRJQUxVUCDu4SAlcyD+5fLl+iAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMgRlJPTSAlcyIKK21zZ3N0ciAi9+jv5CBST09UIPcgJXMg8yAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMiCittc2dzdHIgIvfo7+QgUk9PVCD3ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAi9+jv5CD3ICVzIP7l8uX6ICVzIOn6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIvfo7+Qg9yAlcyD+5fLl+iAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG5ldyBtYWlsLlxuIgorbXNnc3RyICL3wc0gzs/Xz8Ug0MnT2M3PLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAi98HNINDJ09jNzy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjog08LPyiDTz9rEwc7J0SDEz97F0s7Fx88g0NLPw8XT08E6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVElPQ1NDVFRZIGZhaWxlZDogJW0iCittc2dzdHIgIlRJT0NTQ1RUWSDawdfF0tvJzNPRIM7F1cTB3sXKOiAlbSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjI4Cittc2dpZCAic2V0dWlkKCkgZmFpbGVkIgorbXNnc3RyICJzZXR1aWQoKSDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICLuxdQgy8HUwczPx8EgJXMhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dnaW5nIGluIHdpdGggaG9tZSA9IFwiL1wiLlxuIgorbXNnc3RyICL3yM/EINcg08nT1MXN1SDTIMTPzcHbzsnNIMvB1MHMz8fPzSA9IFwiL1wiLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICJsb2dpbjogzsXUINDBzdHUySDEzNEg28XMzC3Ty9LJ0NTBLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGNvdWxkbid0IGV4ZWMgc2hlbGwgc2NyaXB0OiAlcy5cbiIKK21zZ3N0ciAibG9naW46IM7F18/azc/Wzs8g19nQz8zOydTYINvFzMwt08vSydDUOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiDOxdQg28XMzME6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVzIGxvZ2luOiAiCittc2dzdHIgIiIKKyJcbiIKKyIlcyDMz8fJzjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICLJzdEg0M/M2NrP18HUxczRINPMydvLz80gxMzJzs7PxS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAzCittc2dpZCAiTkFNRSB0b28gbG9uZyIKK21zZ3N0ciAi6e3xINPMydvLz80gxMzJzs7PxSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgIsnNxc7BINDPzNjaz9fB1MXMxcogzc/H1dQgzsUgzsHeyc7B1NjT0SDTICctJy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIwCisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IGJhcmUgbGluZWZlZWRzLlxuIgorbXNnc3RyICLTzMnby8/NIM3Oz8fPINDV09TZyCDQxdLF18/Ez9cg09TSz8suXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIv7y5frt5fLu+eUg0MXSxdfPxNkg09TSz8siCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIgorbXNnc3RyICL3yM/EINcg08nT1MXN1SDQ0sXX2dPJzCDQ0sXExcwgz9bJxMHOydEg1yAlZCDTxcvVzsRcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgbG9naW46ICUuKnMgIgorbXNnc3RyICLwz9PMxcTOycog18jPxCDXINPJ09TFzdU6ICUuKnMgIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnJvbSAlLipzXG4iCittc2dzdHIgIsnaICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAi1yAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorbXNnc3RyICLz4u/qIPfo7+ThIPcg8+nz9OXt9SDp+iAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAi8+Lv6iD36O/k4SD3IPPp8/Tl7fUg7uEgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgRlJPTSAlcywgJXMiCittc2dzdHIgIiVkIPPi7+kg9+jv5OEg6fogJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICIlZCDz4u/pIPfo7+ThIPcgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICItIMTBXG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBuXG4iCittc2dzdHIgIi0gzsXUXG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IG1lc2cgW3kgfCBuXVxuIgorbXNnc3RyICLJ09DPzNjaz9fBzsnFOiBtZXNnIFvEIHwgzl1cbiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAibmV3Z3JwOiD32SDL1M8/IgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMDcgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTIxCittc2dpZCAibmV3Z3JwOiBzZXRnaWQiCittc2dzdHIgIm5ld2dycDogc2V0Z2lkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMTQgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE2Cittc2dpZCAibmV3Z3JwOiBObyBzdWNoIGdyb3VwLiIKK21zZ3N0ciAibmV3Z3JwOiDuxdQg1MHLz8ogx9LV0NDZLiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiDkz9PU1dAg2sHQ0sXdxc4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIu7F1CDbxczMwSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCittc2dzdHIgIunT0M/M2NrP18HOycU6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K83JztXU2V1cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgIvDSz8PF09Mg19nLzMDexc7J0SDQ0sXS18HOIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiVzOiD0z8zYy88gcm9vdCDNz9bF1CDawdfF0tvB1Ngg0sHCz9TVINPJ09TFzdkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoYXQgbXVzdCBiZSB0b21vcnJvdywgY2FuJ3QgeW91IHdhaXQgdGlsbCB0aGVuP1xuIgorbXNnc3RyICL81M8gxM/M1s7PIMLZ1Ngg2sHX1NLBLCDTzc/WxdTFIMzJINfZINbEwdTYINTByyDEz8zHzz9cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMTAKK21zZ2lkICJmb3IgbWFpbnRlbmFuY2U7IGJvdW5jZSwgYm91bmNlIgorbXNnc3RyICLEzNEgz8LTzNXWydfBzsnROyDOwSDGyccsIM7BIMbJxyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMzkKK21zZ2lkICJUaGUgc3lzdGVtIGlzIGJlaW5nIHNodXQgZG93biB3aXRoaW4gNSBtaW51dGVzIgorbXNnc3RyICLzydPUxc3BINrB18XS28nUINPXz8Ag0sHCz9TVINcg1MXexc7JxSA1IM3JztXUIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM0MworbXNnaWQgIkxvZ2luIGlzIHRoZXJlZm9yZSBwcm9oaWJpdGVkLiIKK21zZ3N0ciAi88zFxM/XwdTFzNjOzywg18jPxCDXINPJ09TFzdUg2sHQ0sXdxc4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgItDF0sXawcfS1dbFziAlcyfPzTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhhbHRlZCBieSAlczogJXMiCittc2dzdHIgIs/T1MHOz9fMxc4gJXMnz806ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzMgorbXNnaWQgIiIKKyJcbiIKKyJXaHkgYW0gSSBzdGlsbCBhbGl2ZSBhZnRlciByZWJvb3Q/IgorbXNnc3RyICIiCisiXG4iCisi8M/exc3VINEg19PFIMXdxSDWydcg0M/TzMUg0MXSxdrBx9LV2svJPyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisi9MXQxdLYINfZIM3P1sXUxSDX2cvMwN7J1Ngg0MnUwc7JxS4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBrZXJuZWwgcG93ZXItb2ZmIGZhY2lsaXR5Li4uXG4iCittc2dzdHIgIvfZ2tnXwcXU09Eg09LFxNPU188g0cTSwSDEzNEg19nLzMDexc7J0SDQydTBzsnRLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHBvd2VyaW5nIG9mZlx0JXNcbiIKK21zZ3N0ciAi79vJwsvBINfZy8zA3sXOydEg0MnUwc7J0Vx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAi99nQz8zOxc7JxSDQ0s/H0sHNzdkgXCIlc1wiIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBleGVjdXRpbmdcdCVzXG4iCittc2dzdHIgIu/bycLLwSDX2dDPzM7FzsnRXHQlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJVUkdFTlQ6IGJyb2FkY2FzdCBtZXNzYWdlIGZyb20gJXM6IgorbXNnc3RyICLz8u/+7u86INvJ0s/Lz9fF3cHUxczYzs/FINPPz8Ldxc7JxSDP1CAlczoiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiCittc2dzdHIgIvPJ09TFzcEg2sHXxdLbydQg09fPwCDSwcLP1NUg3sXSxdogJWQg3sHTz9cgJWQgzcnO1dQiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICLzydPUxc3BINrB18XS28nUINPXz8Ag0sHCz9TVIN7F0sXaIDEg3sHTICVkIM3JztXUIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBtaW51dGVzXG4iCittc2dzdHIgIvPJ09TFzcEg2sHXxdLbydQg09fPwCDSwcLP1NUg3sXSxdogJWQgzcnO1dRcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBtaW51dGVcbiIKK21zZ3N0ciAi88nT1MXNwSDawdfF0tvJ1CDT18/AINLBws/U1SDexdLF2iAxIM3JztXU1VxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAi88nT1MXNwSDawdfF0tvBxdQg09fPwCDSwcLP1NUg7uXt5eTs5e7u7yFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx0Li4uICVzIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIu7F18/azc/Wzs8g08/axMHU2CDEz97F0s7JyiDQ0s/DxdPTIMTM0SBzd2Fwb2ZmLiDpx87P0snS1cXU09EhIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICLuxdfP2s3P1s7PINfZ0M/MzsnU2CBzd2Fwb2ZmLCDOwcTFwNPYLCDe1M8gdW1vdW50INPQ0sHXydTT0SDTINzUyc0uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU5NworbXNnaWQgIkNhbm5vdCBmb3JrIGZvciB1bW91bnQsIHRyeWluZyBtYW51YWxseS4iCittc2dzdHIgIu7F18/azc/Wzs8g08/axMHU2CDEz97F0s7JyiDQ0s/DxdPTIMTM0SB1bW91bnQsINDZ1MHA09gg19LV3s7VwC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICLuxdfP2s3P1s7PINfZ0M/MzsnU2CAlcywg0NnUwcDT2CB1bW91bnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjEwCittc2dpZCAiQ2Fubm90IGV4ZWMgdW1vdW50LCBnaXZpbmcgdXAgb24gdW1vdW50LiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDX2dDPzM7J1NggdW1vdW50LCDTxMHA09gg0MXSxcQgdW1vdW50LiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTUKK21zZ2lkICJVbm1vdW50aW5nIGFueSByZW1haW5pbmcgZmlsZXN5c3RlbXMuLi4iCittc2dzdHIgIvLB2s3PztTJ0tXA1NPRINfTxSDP09TB19vJxdPRIMbByszP19nFINPJ09TFzdkuLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iCittc2dzdHIgInNodXRkb3duOiDuxdfP2s3P1s7PINLB2s3PztTJ0s/XwdTYICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICL32dDPzM7RxdTT0SDawcfS1drLwSDXIM/Ezs/Qz8zY2s/XwdTFzNjTy8/NINLF1snNxS5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzNgorbXNnaWQgImV4ZWMgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgItfZ0M/MzsXOycUgz8TOz9DPzNjaz9fB1MXM2NPLz8fPINvFzMzBINrB18XS28nMz9PYIM7F1cTB3sXKXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICIiCisi08/axMHOycUgxM/exdLOxcfPINDSz8PF09PBIM/Ezs/Qz8zY2s/XwdTFzNjTy8/HzyDbxczMwSDawdfF0tvJzM/T2CAiCisizsXVxMHexcpcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICLP28nCy8Egz9TL0tnUydEgZmlmb1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjEyCittc2dpZCAiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIKK21zZ3N0ciAiz9vJwsvBINXT1MHOz9fLySBjbG9zZS1vbi1leGVjIM7BIC9kZXYvaW5pdGN0bCIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI1OQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgIs/bycLLwSDawdDV08vBIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAiz9vJwsvBINPP2sTBzsnRIMTP3sXSzsXHzyDQ0s/DxdPTwSBmaW5hbHByb2dcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0NQorbXNnaWQgIiIKKyJcbiIKKyJXcm9uZyBwYXNzd29yZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIu7F18XSztnKINDB0s/M2C5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgImxzdGF0INDV1Mkg2sHXxdLbyczT0SDOxdXEwd7FylxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2Cittc2dpZCAic3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJzdGF0INDV1Mkg2sHXxdLbyczT0SDOxdXEwd7FylxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgIs/Uy9LZ1MnFIMvB1MHMz8fBINrB18XS28nMz9PYIM7F1cTB3sXKXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcGF3bmluZzogXCIlc1wiIHRvbyBmYXN0OiBxdWVuY2hpbmcgZW50cnlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAi08/axMHOycUgxM/exdLOxcfPINDSz8PF09PBINrB18XS28nMz9PYIM7F1cTB3sXKXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NDAgdGV4dC11dGlscy9tb3JlLmM6MTY2MworbXNnaWQgImV4ZWMgZmFpbGVkXG4iCittc2dzdHIgItfZ0M/MzsXOycUg2sHXxdLbyczP09ggzsXVxMHexcpcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU2NAorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYIGluaXR0YWJcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgIs7F1CBURVJNIMnMySDOxdfP2s3P1s7PIM/Q0sXExczJ1Ngg08/T1M/RzsnFIHR0eVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTM4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBzdG9wcGluZyBzZXJ2aWNlOiBcIiVzXCJcbiIKK21zZ3N0ciAiz9vJwsvBIM/T1MHOz9fLySDTxdLXydPBOiBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAiz9vJwsvBIM/T1MHOz9fLySDTxdLXydPBOiBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMDcwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBydW5uaW5nIHByb2dyYW1tZTogXCIlc1wiXG4iCittc2dzdHIgIs/bycLLwSDawdDV08vBIGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAi08zJ28vPzSDNzs/HzyBpb3Ynz9cgKMnazcXOydTFIMvPxCDXIHdhbGwvdHR5bXNnLmMpIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJleGNlc3NpdmVseSBsb25nIGxpbmUgYXJnIgorbXNnc3RyICLe0sXa19newcrOzyDEzMnOzsHRINPU0s/LwSBhcmciCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAizsXXz9rNz9bOzyDTz9rEwdTYIMTP3sXSzsnKINDSz8PF09MiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJmb3JrOiAlcyIKK21zZ3N0ciAi08/axMHOycUgxM/exdLOxcfPINDSz8PF09PBOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiDw7O/o4fEg7/vp4uvhIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgcGFzc3dvcmQgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogxsHKzCDQwdLPzMXKINrBztHULlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgZ3JvdXAgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogxsHKzCDH0tXQ0CDawc7R1C5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiJXM6IMbByswgJXMg2sHO0dQgKNDSydPV1NPU19XF1CAlcylcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgbGluayAlczogJXNcbiIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8g09fR2sHU2CDTICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBnZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiDuxdfP2s3P1s7PINDPzNXeydTYIMvPztTFy9PUIMTM0SAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczog7sXXz9rNz9bOzyDV09TBzs/XydTYIMvPztTFy9PUIMTM0SAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8g0sHawszPy8nSz9fB1NggJXM6ICVzICjXwdvJIMnazcXOxc7J0SDX08Ugxd3FINcgJXMpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiVzOiDuxdfP2s3P1s7PINPP2sTB1NggxM/exdLOycog0NLPw8XT01xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiJXM6ICVzIM7FIMnazcXOxc5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI5NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gY2hhbmdlcyBtYWRlXG4iCittc2dzdHIgIiVzOiDJ2s3FzsXOydEgzsUg08TFzMHO2VxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IGdyb3VwcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAi99kgydPQz8zY2tXF1MUg1MXOxdfZxSDH0tXQ0NkgzsEg3NTPyiDTydPUxc3FLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IHBhc3N3b3JkcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAi99kgydPQz8zY2tXF1MUg1MXOxdfZxSDQwdLPzMkgzsEg3NTPyiDTydPUxc3FLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldvdWxkIHlvdSBsaWtlIHRvIGVkaXQgJXMgbm93IFt5L25dPyAiCittc2dzdHIgIujP1MnUxSDMySDX2SDTxcrewdMgz9TSxcTBy9TJ0s/XwdTYICVzIFvEL85dPyAiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICLJ09DPzNjaz9fBzsnFOiAlcyBbxsHKzF1cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8gz9TL0tnU2CDX0sXNxc7O2cogxsHKzC5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICL7ydLPy8/Xxd3B1MXM2M7PxSDTz8/C3cXOycUgz9QgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiDOxSDC1cTF1CDQ0s/eydTBziAlcyAtIMnT0M/M2NrVytTFINPUwc7EwdLUztnKINfXz8QuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgIiVzOiDOxdfP2s3P1s7PINDSz97J1MHU2CAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgc3RhdCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8gz9DSxcTFzMnU2CDTz9PUz9HOycUg19LFzcXOzs/HzyDGwcrMwS5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8g0NLP3snUwdTYINfSxc3Fzs7ZyiDGwcrMLlxuIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2NCBtaXNjLXV0aWxzL2NhbC5jOjM3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkYXkgdmFsdWU6IHVzZSAxLSVkIgorbXNnc3RyICLawdDSxd3Fzs7PxSDazsHexc7JxSDHz8TBOiDJ09DPzNja1crUxSAxLTk5OTkiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY4Cittc2dpZCAiaWxsZWdhbCBtb250aCB2YWx1ZTogdXNlIDEtMTIiCittc2dzdHIgItrB0NLF3cXOzs/FINrOwd7FzsnFIM3F09HDwTogydPQz8zY2tXK1MUgMS0xMiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNzIKK21zZ2lkICJpbGxlZ2FsIHllYXIgdmFsdWU6IHVzZSAxLTk5OTkiCittc2dzdHIgItrB0NLF3cXOzs/FINrOwd7FzsnFIMfPxME6IMnT0M/M2NrVytTFIDEtOTk5OSIKKworIzogbWlzYy11dGlscy9jYWwuYzo0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJWQiCittc2dzdHIgIiVzICVkIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjg1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgIsnT0M/M2NrP18HOycU6IGNhbCBbLTEzc21qeVZdIFtbzcXT0cNdIMfPxF1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIKK21zZ3N0ciAiydPQz8zY2s/Xwc7JxTogJXMgWyvGz9LNwdRdIFvExc7YIM3F09HDIMfPxF1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIuTFztgg89cuIOnawcLFzMzZIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzo1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYJXMiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXNcbiIKK21zZ3N0ciAiJXM6IM7FydrXxdPUztnKINPJx87BzCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgcHJvY2VzcyBcIiVzXCJcbiIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8gzsHK1Mkg0NLPw8XT0yBcIiVzXCJcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlczsgdmFsaWQgc2lnbmFsczpcbiIKK21zZ3N0ciAiJXM6IM7FydrXxdPUztnKINPJx87BzCAlczsg18XSztnFINPJx87BzNk6XG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtcyBzaWduYWwgfCAtcCBdIFsgLWEgXSBwaWQgLi4uXG4iCittc2dzdHIgIsnT0M/M2NrP18HOycU6ICVzIFsgLXMg08nHzsHMIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiICAgICAgICVzIC1sIFsg08nHzsHMIF1cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiBvcGVubG9nOiBwYXRobmFtZSB0b28gbG9uZ1xuIgorbXNnc3RyICLJzdEg0M/M2NrP18HUxczRINPMydvLz80gxMzJzs7PxS5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic29ja2V0OiAlcy5cbiIKK21zZ3N0ciAi8sHazcXSIMLMz8vBOiAlZFxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbm5lY3Q6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogJXM6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6ICVzOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIGZhY2lsaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IMnN0SDOxcna18XT1M7Px88g09LFxNPU18E6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gcHJpb3JpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogyc3RIM7FydrXxdPUzs/HzyDQ0snP0snUxdTBOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisiydPQz8zY2s/Xwc7JxTogbG9nZ2VyIFstaXNdIFstZiDGwcrMXSBbLXAg0NLJz9LJ1MXUXSBbLXQg1NzHXSBbLXUg08/LxdRdICIKKyJbINPPz8Ldxc7JxSAuLi4gXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgIsnT0M/M2NrP18HOycU6IGxvb2sgWy1kZmFdIFstdCDTyc3Xz8xdINPU0s/LwSBbxsHKzF1cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICLuxdfP2s3P1s7PIM/Uy9LZ1NggJXNcbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA5IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICLwz8zV3sXOzyAlZCDCwcrUIMnaICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxNDMgbWlzYy11dGlscy9uYW1laS5jOjE5OCBtaXNjLXV0aWxzL25hbWVpLmM6MjI1CisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjQ1IG1pc2MtdXRpbHMvbmFtZWkuYzoyNTIgbWlzYy11dGlscy9uYW1laS5jOjI5NAorIywgZnV6enkKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAizsXI18HUy8Eg0MHN0dTJP1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCBzeW1saW5rOiAlcyIKK21zZ3N0ciAiaW9jdGwoKSDawdfF0tvJzNPRIM7F1cTB3sXKINDSySDe1MXOyckg19LFzcXOySDJ2iAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjIzMSBtaXNjLXV0aWxzL25hbWVpLmM6MjU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICLOxdfP2s3P1s7PIM/Q0sXExczJ1Ngg08/T1M/RzsnFINXT1NLPytPU18EgJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgIsnT0M/M2NrP18HOycU6IG5hbWVpIFstbXhdINDV1MXXz8Vfyc3RIFvQ1dTF18/FX8nN0SAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQg0sHaxMXM2TpcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXgsIC0tbW91bnRwb2ludHMgICBzaG93IG1vdW50IHBvaW50IGRpcmVjdG9yaWVzIHdpdGggYSAnRCdcbiIKKyIgLW0sIC0tbW9kZXMgICAgICAgICBzaG93IHRoZSBtb2RlIGJpdHMgb2YgZWFjaCBmaWxlXG4iCisiIC1vLCAtLW93bmVycyAgICAgICAgc2hvdyBvd25lciBhbmQgZ3JvdXAgbmFtZSBvZiBlYWNoIGZpbGVcbiIKKyIgLWwsIC0tbG9uZyAgICAgICAgICB1c2UgYSBsb25nIGxpc3RpbmcgZm9ybWF0ICgtbSAtbyAtdikgXG4iCisiIC1uLCAtLW5vc3ltbGlua3MgICAgZG9uJ3QgZm9sbG93IHN5bWxpbmtzXG4iCisiIC12LCAtLXZlcnRpY2FsICAgICAgdmVydGljYWwgYWxpZ24gb2YgbW9kZXMgYW5kIG93bmVyc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBuYW1laSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTIyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdDogJXMiCittc2dzdHIgIs7F18/azc/Wzs8gz9DSxcTFzMnU2CDTz9PUz9HOycUgJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiJXM6IM7FyNfB1MvBINDBzdHUyVxuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZW5hbWluZyAlcyB0byAlcyBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiVzOiDQxdLFyc3Fzs/Xwc7JxSAlcyDXICVzINrB18XS28nMz9PYIM7F1cTB3sXKOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAiY2FsbDogJXMgydog1yDGwcrM2S4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisi8NLFxNXQ0sXWxMXOycU6IGAlcycg0dfM0cXU09Eg09PZzMvPyi5cbiIKKyLp09DPzNja1crUxSBgJXMgW8/Qw8nJXSAlcycsIMXTzMkg19kgxMXK09TXydTFzNjOzyDIz9TJ1MUg3NTPIMnT0M/M2NrP18HU2C5cbiIKKyLzy9LJ0NQgzsUg2sHQ1d3Fzi5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorbXNnc3RyICLJ09DPzNjaz9fBzsnFOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbxsHKzF1cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAi88vSydDUINrB0NXdxc4sIMbByswgLSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjI0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yICVkOiAlc1xuIgorbXNnc3RyICLP28nCy8Eg2sHQydPJIM7BICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkIG9uICVzIgorbXNnc3RyICLzy9LJ0NQg2sHQ1d3FziAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIKK21zZ3N0ciAiz9vJwsvBINrB0MnTySDOwSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCB3cml0ZSBzY3JpcHQgZmlsZSwgZXJyb3I6ICVzXG4iCittc2dzdHIgIiVzOiDOxdfP2s3P1s7PIM7BytTJINXT1NLPytPU188gxMzRICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorIlxuIgorIvPL0snQ1CDX2dDPzM7FziAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IGRvbmUsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAi88vSydDUINfZ0M/MzsXOLCDGwcrMIC0gJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbnB0eSBmYWlsZWRcbiIKK21zZ3N0ciAib3BlbnB0eSDawdfF0tvJzNPRIM7F1cTB3sXKXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICLuxSDI18HUwcXUIHB0eVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIDx0aW1pbmdmaWxlPiBbPHR5cGVzY3JpcHQ+IFs8ZGl2aXNvcj5dXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhwZWN0ZWQgYSBudW1iZXIsIGJ1dCBnb3QgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjU2IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGl2aXNvciAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTA0CisjLCBmdXp6eQorbXNnaWQgIndyaXRlIHRvIHN0ZG91dCBmYWlsZWQiCittc2dzdHIgIu/Uy9LZ1MnFICVzINrB18XS28nMz9PYIM7F1cTB3sXKIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgImlvY3RsKCkg2sHXxdLbyczT0SDOxdXEwd7FyiDQ0skg3tTFzsnJINfSxc3FzskgydogJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAi7sXXz9rNz9bOzyDP1MvS2dTYIMbByswgJyVzJyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAi7sXXz9rNz9bOzyDP1MvS2dTYIMbByswgJyVzJyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICJpb2N0bCgpINrB18XS28nM09EgzsXVxMHexcog0NLJIN7Uxc7JySDX0sXNxc7JIMnaICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IgorbXNnc3RyICIlczog7sXP1snEwc7O2cogy8/OxcMgxsHKzMEg1yDGwcrMxSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczog79vJwsvBIMHSx9XNxc7UwSwgydPQz8zY2s/Xwc7JxVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorbXNnc3RyICIgIFsgLXRlcm0gyc3RX9TF0s3JzsHMwSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlc2V0IF1cbiIKK21zZ3N0ciAiICBbIC1yZXNldCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWluaXRpYWxpemUgXVxuIgorbXNnc3RyICIgIFsgLWluaXRpYWxpemUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1hcHBjdXJzb3JrZXlzIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1hcHBjdXJzb3JrZXlzIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzczCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZGVmYXVsdCBdXG4iCittc2dzdHIgIiAgWyAtZGVmYXVsdCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzUgbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc3CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGV8ZGVmYXVsdCBdXG4iCittc2dzdHIgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGV8ZGVmYXVsdCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJhY2tncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWJhY2tncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODEgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgzCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCittc2dzdHIgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKK21zZ3N0ciAiICBbIC1zdGFuZG91dCBbIMHU1NLJwiBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdG9yZSBdXG4iCittc2dzdHIgIiAgWyAtc3RvcmUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIgIFsgLWJsYW5rIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS3+6fPs71/r7+7z7+zl6l0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1hcHBlbmQgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1hcHBlbmQgWzEt/unz7O9f6+/u8+/s5epdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZmlsZSBkdW1wZmlsZW5hbWUgXVxuIgorbXNnc3RyICIgIFsgLWZpbGUgyc3RX8bByszBX8TBzdDBIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSDewdPUz9TBIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIGJsYW5rXG4iCittc2dzdHIgIs7F18/azc/Wzs8g08/axMHU2CDEz97F0s7JyiDQ0s/DxdPTIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgdW5ibGFua1xuIgorbXNnc3RyICLOxdfP2s3P1s7PINPP2sTB1NggxM/exdLOycog0NLPw8XT0yIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBibGFuayBzdGF0dXNcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90ICh1bilzZXQgcG93ZXJzYXZlIG1vZGVcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDV09TBzs/XydTYL9PO0dTYINLF1snNINzOxdLHz9PCxdLF1sXOydFcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEyMiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTMwCisjLCBjLWZvcm1hdAorbXNnaWQgImtsb2djdGwgZXJyb3I6ICVzXG4iCittc2dzdHIgIs/bycLLwSBrbG9nY3RsOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIgorbXNnc3RyICLv28nCy8Eg2sHQydPJIMTBzdDBINzL0sHOwVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIu7F18/azc/Wzs8gz9TL0tnU2CAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6INDF0sXNxc7OwdEgJFRFUk0gzsUgz9DSxcTFzMXOwS5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdIFstVCB0aW1lb3V0XVxuIgorbXNnc3RyICIiCisiydPQz8zY2s/Xwc7JxTogbGFzdCBbLSNdIFstZiDGwcrMXSBbLXQgdHR5XSBbLWggyc3RX8jP09TBXSAiCisiW9DPzNjaz9fB1MXM2CAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgWy1yfHRdIFstbiBudW1dIFstcyBzb2NrZXRwYXRoXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbINPJx87BzCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTIKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGFyZ3VtZW50cyIKK21zZ3N0ciAiY29sOiDOxdfF0s7ZyiDB0sfVzcXO1CAtbCAlcy5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorIywgZnV6enkKK21zZ2lkICJzb2NrZXQiCittc2dzdHIgItPPy8XUIG5mcyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE3MAorIywgZnV6enkKK21zZ2lkICJjb25uZWN0IgorbXNnc3RyICJuZnMg0M/Ey8zA3sXOycUiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxODkKKyMsIGZ1enp5Cittc2dpZCAid3JpdGUiCittc2dzdHIgIvrB0MnT2CIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE5NworIywgZnV6enkKK21zZ2lkICJyZWFkIGNvdW50IgorbXNnc3RyICLe1MXOycUgJWNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjIwMworbXNnaWQgImJhZCByZXNwb25zZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1dWlkZCBkYWVtb24gYWxyZWFkeSBydW5uaW5nIGF0IHBpZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtIHNvY2tldDogJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgYmluZCB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDP1MvS2dTYICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsaXN0ZW4gb24gdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIu7F18/azc/Wzs8gz9TL0tnU2CAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcmVhZGluZyBmcm9tIGNsaWVudCwgbGVuID0gJWRcbiIKK21zZ3N0ciAi79vJwsvBIN7Uxc7J0SAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZXJhdGlvbiAlZCwgaW5jb21pbmcgbnVtID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEICVzIGFuZCAlZCBmb2xsb3dpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCAlZCBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBvcGVyYXRpb24gJWRcbiIKK21zZ3N0ciAizsXXxdLO2cogaWQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IM7F18XSzs/FINrOwd7FzsnFXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MjQgbWlzYy11dGlscy91dWlkZC5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2FsbGluZyB1dWlkZCBkYWVtb24gKCVzKTogJXNcbiIKK21zZ3N0ciAiz9vJwsvBINPNxc7ZINLF1snNwSAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCByZXBseSBsZW5ndGggZnJvbSBzZXJ2ZXIgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJLaWxsZWQgdXVpZGQgcnVubmluZyBhdCBwaWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRnZW4uYzozMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICLp09DPzNjaz9fBzsnFOiAlcyBbz9DDycldINXT1NLPytPU188uLi5cbiIKKworIzogbWlzYy11dGlscy93aGVyZWlzLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBkaXIgLi4uIC1mIF0gbmFtZS4uLlxuIgorbXNnc3RyICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gy8HUwczPxyAuLi4gLWYgXSDJzdEuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKKyMsIGZ1enp5Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTUwCisjLCBmdXp6eQorbXNnaWQgInN0cmR1cCBmYWlsZWQiCittc2dzdHIgIu/Uy9LZ1MnFICVzINrB18XS28nMz9PYIM7F1cTB3sXKIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBwcm9iaW5nIGluaXRpYWxpemF0aW9uIGZhaWxlZCIKK21zZ3N0ciAiIgorIlxuIgorIu/bycLLwSDawcvS2dTJ0SDGwcrMwVxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBhcHBlYXJzIHRvIGNvbnRhaW4gJyVzJyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIu7BIMTJ08vFICVzIM/U09XU09TX1cXUINfF0s7B0SDUwcLMycPBINLB2sTFzM/XXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gc2VlayB0byBvZmZzZXQgMHglangiCittc2dzdHIgIiVzOiDOxdfP2s3P1s7PIM/Uy9LZ1NggOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSDawdfF0tvJzNPRIM7F1cTB3sXKXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlemQgYnl0ZXMgWyIKK21zZ3N0ciAiwsHK1NkiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcGVuIGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSDawdfF0tvJzNPRIM7F1cTB3sXKXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAi7sXXxdLOz8Ug2s7B3sXOycUg1dPUwc7P18vJOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGRldmljZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICLp09DPzNjaz9fBzsnFOiAlcyBbz9DDycldINXT1NLPytPU188uLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIKK21zZ3N0ciAi6c7Gz9LNwcPJ0SBmaW5nZXIgydrNxc7FzsEuXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6Mzg3Cittc2dpZCAiLS1vZmZzZXQgYW5kIC0tYWxsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogY2FuJ3QgZmluZCB5b3VyIHR0eSdzIG5hbWVcbiIKK21zZ3N0ciAid3JpdGU6IM7F18/azc/Wzs8gzsHK1Mkgyc3RINfB28XHzyB0dHlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTog18HbxSDSwdrSxdvFzsnFIM7BINrB0MnT2CDC2czPINfZy8zA3sXOzy5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIM7FINfP28XMINcg08nT1MXN1SAlcy5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIndyaXRlOiDEzNEgJXMg08/Pwt3FzsnRIM/Uy8zA3sXO2SDOwSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiB3cml0ZSB1c2VyIFt0dHldXG4iCittc2dzdHIgInVzYWdlOiB3cml0ZSDQz8zY2s/XwdTFzNggW3R0eV1cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICJ3cml0ZTogJXMgzsUg18/bxcwg1yDTydPUxc3VXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZFxuIgorbXNnc3RyICJ3cml0ZTogxMzRICVzINPPz8Ldxc7J0SDP1MvMwN7FztlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbG9nZ2VkIGluIG1vcmUgdGhhbiBvbmNlOyB3cml0aW5nIHRvICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyDXz9vFzCDXINPJ09TFzdUgws/MxcUgz8TOz8fPINLB2sE7INrB0MnT2CDX2dDPzM7RxdTT0SDXICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIChhcyAlcykgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICLzz8/C3cXOycUgz9QgJXNAJXMgKMvByyAlcykgzsEgJXMg1yAlcyAuLi4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAi88/Pwt3FzsnFIM/UICVzQCVzIM7BICVzINcgJXMgLi4uIgorCisjOiBtb3VudC9mc3RhYi5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBlcnJvciByZWFkaW5nICVzOiAlcyIKK21zZ3N0ciAi0NLFxNXQ0sXWxMXOycU6IM/bycLLwSDe1MXOydEgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAi0NLFxNXQ0sXWxMXOycU6IM7F18/azc/Wzs8gz9TL0tnU2CAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjb3VsZCBub3Qgb3BlbiAlcyAtIHVzaW5nICVzIGluc3RlYWRcbiIKK21zZ3N0ciAibW91bnQ6IM7F18/azc/Wzs8gz9TL0tnU2CAlcyAtINfNxdPUzyDc1M/HzyDJ09DPzNja1cXU09EgJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo1OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgY3JlYXRlIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorIs7F18/azc/Wzs8g08/axMHU2CDGwcrMIMLMz8vJ0s/Xy8kgJXM6ICVzICjJ09DPzNja1crUxSDGzMHHIC1uIMTM0SAiCisi0MXSxc/Q0sXExczFzsnRKSIKKworIzogbW91bnQvZnN0YWIuYzo2MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbGluayBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyLOxdfP2s3P1s7PINPP2sTB1Ngg09PZzMvVIM7BIMbByswgwszPy8nSz9fLySAlczogJXMgKMnT0M/M2NrVytTFIMbMwccgLW4gxMzRICIKKyLQxdLFz9DSxcTFzMXOydEpIgorCisjOiBtb3VudC9mc3RhYi5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBvcGVuIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorIs7F18/azc/Wzs8gz9TL0tnU2CDGwcrMIMLMz8vJ0s/Xy8kgJXM6ICVzICjJ09DPzNja1crUxSDGzMHHIC1uIMTM0SAiCisi0MXSxc/Q0sXExczFzsnRKSIKKworIzogbW91bnQvZnN0YWIuYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIu7F18/azc/Wzs8g2sHCzM/LydLP18HU2CDGwcrMIMLMz8vJ0s/Xy8kgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAizsXXz9rNz9bOzyDawcLMz8vJ0s/XwdTYIMbByswgwszPy8nSz9fLySAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICLX0sXN0SDP1snEwc7J0SDJ09TFy8zPIgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorIu7F18/azc/Wzs8g08/axMHU2CDT09nMy9UgJXNcbiIKKyL3z9rNz9bOzywg09XdxdPU19XF1CDV09TB0sXX28nKIMbByswgwszPy8nSz9fLyT9cbiIKKworIzogbW91bnQvZnN0YWIuYzo3OTIgbW91bnQvZnN0YWIuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgKCVzKSAtIG10YWIgbm90IHVwZGF0ZWQiCittc2dzdHIgIs7F18/azc/Wzs8gz9TL0tnU2CAlcyAoJXMpIC0gbXRhYiDOxSDPws7P18zFziIKKworIzogbW91bnQvZnN0YWIuYzo4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIs/bycLLwSDawdDJ08kgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjg3NAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlc1xuIgorbXNnc3RyICLP28nCy8Eg083Fztkg0sXWyc3BICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iCittc2dzdHIgIs/bycLLwSDTzcXO2SDSxdbJzcEgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODk4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDQxdLFyc3Fzs/XwdTYICVzINcgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IHNldCBjYXBhY2l0eSBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IM7F18/azc/Wzs8g0M/M1d7J1Nggyc7Gz9LNwcPJwCDPwiDV09TSz8rT1NfFICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlPFBSSXU2ND4iCittc2dzdHIgIiwg083F3cXOycUgJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzozODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgc2l6ZWxpbWl0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCDPx9LBzsnexc7JxSDOwSDSwdrNxdIgJWxsZCIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uICVzICh0eXBlICU8UFJJdTMyPikiCittc2dzdHIgIiwg28nG0s/Xwc7JxSAlcyAo1MnQICVkKSIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMAorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlZCIKK21zZ3N0ciAiLCDTzcXdxc7JxSAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gdHlwZSAlZFxuIgorbXNnc3RyICIsINTJ0CDbycbSz9fBzsnRICVkXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiDOxdfP2s3P1s7PINDPzNXeydTYIMnOxs/SzcHDycAgz8Ig1dPU0s/K09TXxSAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogzsXXz9rNz9bOzyDP1MvS2dTYINXT1NLPytPU188gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NDggbW91bnQvbG9tb3VudC5jOjQ4MCBtb3VudC9sb21vdW50LmM6NTQyCisjOiBtb3VudC9sb21vdW50LmM6NTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczog0M/M2NrP18HUxczYIFwiJXNcIiDOxSDT1d3F09TX1cXULlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiVzOiDOxdQg0sHa0sXbxc7J0SDOwSDQ0s/Tzc/U0iAvZGV2L2xvb3AjIgorCisjOiBtb3VudC9sb21vdW50LmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZnJlZSBsb29wIGRldmljZSIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8gzsHK1Mkgzskgz8TOz8fPINPXz8LPxM7Px88g1dPU0s/K09TXwSDPwtLB1M7PyiDT19HaySIKKworIzogbW91bnQvbG9tb3VudC5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yIGBtb2Rwcm9iZSBsb29wJy4pIgorbXNnc3RyICIiCisiJXM6IO7F18/azc/Wzs8gzsHK1Mkgzskgz8TOz8fPINXT1NLPytPU18Egz8LSwdTOz8og09fR2skuIO3P1sXUIMLZ1NhcbiIKKyIgICAg3NTPINHE0s8gzsUg2s7BxdQgz8Ig1dPU0s/K09TXwcggz8LSwdTOz8og09fR2skuICj3INzUz80g08zV3sHFXG4iCisiICAgINDF0sXLz83QyczJ0tXK1MUg0cTSzyDJzMkg19nQz8zOydTFIGBtb2Rwcm9iZSBsb29wLm8nLikiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MzYKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGlsZSByZWFkaW5nIHBhc3NwaHJhc2UiCittc2dzdHIgIu7FIMjXwdTBxdQg0MHN0dTJINDSySDV18XMyd7FzsnJIMLVxsXSwS5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAi88XL1M/SICVkINXWxSDX2cTFzMXOXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2OTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzOiBpcyB3cml0ZS1wcm90ZWN0ZWQsIHVzaW5nIHJlYWQtb25seS5cbiIKK21zZ3N0ciAibW91bnQ6ICVzJXMg2sHdyd3FziDP1CDawdDJ08ksIM3PztTJ0tXF1NPRINTPzNjLzyDEzNEg3tTFzsnRIgorCisjOiBtb3VudC9sb21vdW50LmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iCittc2dzdHIgIu7F18/azc/Wzs8g2sHCzM/LydLP18HU2CDXINDBzdHUySwg2sHXxdLbxc7JxSDSwcLP1NkuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgTE9PUF9TRVRfRkQgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAic2V0X2xvb3AoJXMsJXMsJWxsdSk6INXT0MXbzs8g2sHXxdLbxc5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgzNgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWxfbG9vcCglcyk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAiZGVsX2xvb3AoJXMpOiDV09DF287PINrB18XS28XOXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZGVsZXRlIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogzsXXz9rNz9bOzyDVxMHMydTYINXT1NLPytPU188gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKyL81MEg18XS08nRIG1vdW50IMLZzMEgz9TLz83QyczJ0s/Xwc7BIMLF2iDQz8TExdLWy8kgbG9vcC4g8M/WwczVytPUwSwgIgorItfZ0M/MzsnUxSDQxdLFy8/N0MnM0cPALlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorIsnT0M/M2NrP18HOycU6XG4iCisiICAlcyBsb29wX9XT1NLPytPU188gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyDQz8zV3sXOycUgIgorIsnOxs/SzcHDyclcbiIKKyIgICVzIC1kIGxvb3Bf1dPU0s/K09TXzyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjINXEwczFzsnFXG4iCisiICAlcyAtZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyDQz8nTyyAiCisizsXJ09DPzNja1cXN2chcbiIKKyIgICVzIFsgLWUg28nG0s/Xwc7JxSBdIFsgLW8g083F3cXOycUgXSBsb29wX9XT1NLPytPU188gxsHKzCAjINXT1MHOz9fLwVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwMzQgbW91bnQvbG9tb3VudC5jOjEwNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkxvb3AgZGV2aWNlIGlzICVzXG4iCittc2dzdHIgImxvb3A6IM7F18/azc/Wzs8gz9TL0tnU2CDV09TSz8rT1NfPICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICJ1bW91bnQ6ICVzOiDV09TSz8rT1NfPINrBztHUzyIKKworIzogbW91bnQvbG9tb3VudC5jOjEwODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbG9vcCBzdXBwb3J0IHdhcyBhdmFpbGFibGUgYXQgY29tcGlsZSB0aW1lLiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisi8M/ExMXS1svBIGxvb3AgwtnMwSDOxcTP09TV0M7BINfPINfSxc3RIMvPzdDJzNHDyckuIPDP1sHM1crT1MEsINfZ0M/MzsnUxSAiCisi0MXSxcvPzcnM0cPJwC5cbiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIgorbXNnc3RyICJtb3VudDogzsXXz9rNz9bOzyDOwcrUySAlcyDXICVzIMnMySAlcyIKKworIzogbW91bnQvbW91bnQuYzo1MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMiCittc2dzdHIgIm1vdW50OiDTz8fMwdPOzyBtdGFiLCAlcyDV1sUg0NLJzc/O1MnSz9fBziDOwSAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDog08/HzMHTzs8gbXRhYiwgJXMg0NLJzc/O1MnSz9fBziDOwSAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDogzsXXz9rNz9bOzyDP1MvS2dTYICVzIMTM0SDawdDJ08k6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDogz9vJwsvBINrB0MnTySAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IM/bycLLwSDTzcXO2SDSxdbJzcEgJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJtb3VudDogzsXXz9rNz9bOzyDV09TBzs/XydTYINPLz9LP09TYOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJtb3VudDogzsXXz9rNz9bOzyDV09TBzs/XydTYINPLz9LP09TYOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiDOxdfP2s3P1s7PINPP2sTB1NggxM/exdLOycog0NLPw8XT0zogJXMiCisKKyM6IG1vdW50L21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyAlc1xuIgorbXNnc3RyICL32dDPzM7RxdTT0SDQz9DZ1MvBICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIm1vdW50OiDX2SDOxSDVy8HawczJINTJ0CDGwcrMz9fPyiDTydPUxc3ZIMTM0SAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiAgICAgICDRINDP0NLPwtXAINfTxSDUydDZLCDV0M/Nyc7BwN3JxdPRINcgJXMgyczJICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICIgICAgICAgySDPziDX2cfM0cTJ1CDLwcsg0NLP09TSwc7T1NfPIMTM0SDT18/Qyc7HwVxuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSB0eXBlICVzXG4iCittc2dzdHIgIiAgICAgICDRINDP0NLPwtXAINTJ0CAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb29rcyBsaWtlIHN3YXBzcGFjZSAtIG5vdCBtb3VudGVkIgorbXNnc3RyICIlcyDX2cfM0cTJ1CDLwcsg0NLP09TSwc7T1NfPIMTM0SDT18/Qyc7HwSAtIM7FINDSyc3PztTJ0s/Xwc4iCisKKyM6IG1vdW50L21vdW50LmM6MTAwMgorbXNnaWQgIm1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogbW91bnQvbW91bnQuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIgorbXNnc3RyICJtb3VudDog1M/M2MvPIHJvb3Qgzc/WxdQgzc/O1MnSz9fB1NggJXMgzsEgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTA3NAorbXNnaWQgIm1vdW50OiBsb29wIGRldmljZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiDV09TSz8rT1NfPIM/C0sHUzs/KINPX0drJINXLwdrBzs8gxNfB1sTZIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzkKK21zZ2lkICJtb3VudDogdHlwZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiDUydAg1cvB2sHOIMTXwdbE2SIKKworIzogbW91bnQvbW91bnQuYzoxMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBza2lwcGluZyB0aGUgc2V0dXAgb2YgYSBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDog0NLP0NXTy8HF1NPRINXT1MHOz9fLwSDV09TSz8rT1NfBIM/C0sHUzs/KINPX0drJXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICJtb3VudDog08/HzMHTzs8gbXRhYiwgJXMg1dbFINDSyc3PztTJ0s/Xwc4gzsEgJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTExMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZ29pbmcgdG8gdXNlIHRoZSBsb29wIGRldmljZSAlc1xuIgorbXNnc3RyICJtb3VudDog0M/Ex8/Uz9fLwSDLIMnT0M/M2NrP18HOycAg1dPU0s/K09TXwSDPwtLB1M7PyiDT19HaySAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBmYWlsZWQgc2V0dGluZyB1cCBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDog1dPUwc7P18vBINXT1NLPytPU18Egz8LSwdTOz8og09fR2skg2sHXxdLbyczB09ggzsXVxMHexcpcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzZXR1cCBsb29wIGRldmljZSBzdWNjZXNzZnVsbHlcbiIKK21zZ3N0ciAibW91bnQ6INXT1MHOz9fLwSDV09TSz8rT1NfBIM/C0sHUzs/KINPX0drJINXT0MXbzs8g2sHXxdLbyczB09hcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyAlcyBmb3VuZCAtIGNyZWF0aW5nIGl0Li5cbiIKK21zZ3N0ciAibW91bnQ6ICVzIM7FIM7BysTFziAtINPP2sTBxdTT0S4uLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjExOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICJtb3VudDogzsXXz9rNz9bOzyDP1MvS2dTYICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMjE1Cittc2dpZCAibW91bnQ6IGFyZ3VtZW50IHRvIC1wIG9yIC0tcGFzcy1mZCBtdXN0IGJlIGEgbnVtYmVyIgorbXNnc3RyICJtb3VudDogwdLH1c3FztQgxMzRIC1wIMnMySAtLXBhc3MtZmQgxM/M1sXOIMLZ1Ngg3snTzM/NIgorCisjOiBtb3VudC9tb3VudC5jOjEyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBvcGVuICVzIGZvciBzZXR0aW5nIHNwZWVkIgorbXNnc3RyICJtb3VudDogzsXXz9rNz9bOzyDP1MvS2dTYICVzIMTM0SDV09TBzs/Xy8kg08vP0s/T1MkiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50OiDOxdfP2s3P1s7PINXT1MHOz9fJ1Ngg08vP0s/T1Ng6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiDTz8fMwdPOzyBtdGFiLCAlcyDV1sUg0NLJzc/O1MnSz9fBziDOwSAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMzgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogd2FybmluZzogJXMgc2VlbXMgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlLlxuIgorbXNnc3RyICJ1bW91bnQ6ICVzINrBztHUIC0g0MXSxc3PztTJ0s/Xwc4g1M/M2MvPIMTM0SDe1MXOydFcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDEzCittc2dpZCAiIgorIm1vdW50OiBJIGNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGZpbGVzeXN0ZW0gdHlwZSwgYW5kIG5vbmUgd2FzIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorIm1vdW50OiDOxdfP2s3P1s7PIM/Q0sXExczJ1Ngg1MnQIMbByszP18/KINPJ09TFzdksIMkgzskgz8TOwSDOxSDC2czBINXLwdrBzsEiCisKKyM6IG1vdW50L21vdW50LmM6MTQxNgorbXNnaWQgIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIm1vdW50OiDX2SDEz8zWztkg1cvB2sHU2CDUydAgxsHKzM/Xz8og08nT1MXN2SIKKworIzogbW91bnQvbW91bnQuYzoxNDE5Cittc2dpZCAibW91bnQ6IG1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQ6IM3PztTJ0s/Xwc7JxSDawdfF0tvJzM/T2CDOxdXEwd7FyiIKKworIzogbW91bnQvbW91bnQuYzoxNDI1IG1vdW50L21vdW50LmM6MTQ2MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgbm90IGEgZGlyZWN0b3J5IgorbXNnc3RyICJtb3VudDog1M/ey8Egzc/O1MnSz9fBzsnRICVzIM7FINHXzNHF1NPRIMvB1MHMz8fPzSIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJtb3VudDogxM/T1NXQINrB0NLF3cXOIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjkKK21zZ2lkICJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IgorbXNnc3RyICIiCisibW91bnQ6IM7Fz8LIz8TJzc8gyc3F1Ngg0NLB18Eg09XQxdLQz8zY2s/XwdTFzNEgxMzRIMnT0M/M2NrP18HOydEgbW91bnQiCisKKyM6IG1vdW50L21vdW50LmM6MTQzMyBtb3VudC9tb3VudC5jOjE0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIGJ1c3kiCittc2dzdHIgIm1vdW50OiAlcyDawc7R1CIKKworIzogbW91bnQvbW91bnQuYzoxNDM5Cittc2dpZCAibW91bnQ6IHByb2MgYWxyZWFkeSBtb3VudGVkIgorbXNnc3RyICJtb3VudDogcHJvYyDV1sUg0NLJzc/O1MnSz9fBziIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzINXWxSDQ0snNz87UydLP18HOIMnMySAlcyDawc7R1CIKKworIzogbW91bnQvbW91bnQuYzoxNDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6INTP3svBIM3PztTJ0s/Xwc7J0SAlcyDOxSDT1d3F09TX1cXUIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICJtb3VudDog1M/ey8Egzc/O1MnSz9fBzsnRICVzINHXzNHF1NPRINPJzdfPzMnexdPLz8og09PZzMvPyiDXIM7Jy9XEwSIKKworIzogbW91bnQvbW91bnQuYzoxNDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6INPQxcPJwczYzs/FINXT1NLPytPU188gJXMgzsUg09XdxdPU19XF1CIKKworIzogbW91bnQvbW91bnQuYzoxNDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3RcbiIKKyIgICAgICAgKGEgcGF0aCBwcmVmaXggaXMgbm90IGEgZGlyZWN0b3J5KVxuIgorbXNnc3RyICIiCisibW91bnQ6INPQxcPJwczYzs/FINXT1NLPytPU188gJXMgzsUg09XdxdPU19XF1FxuIgorIiAgICAgICAo0NLFxsnL0yDQ1dTJIM7FINHXzNHF1NPRIMvB1MHMz8fPzSlcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICJtb3VudDogJXMg1dbFIM7FINDSyc3PztTJ0s/Xwc4gyczJIM7F18XSzsHRIM/Qw8nRIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogd3JvbmcgZnMgdHlwZSwgYmFkIG9wdGlvbiwgYmFkIHN1cGVyYmxvY2sgb24gJXMsXG4iCisiICAgICAgIG1pc3NpbmcgY29kZXBhZ2Ugb3IgaGVscGVyIHByb2dyYW0sIG9yIG90aGVyIGVycm9yIgorbXNnc3RyICIiCisibW91bnQ6IM7F18XSztnKINTJ0CDm8ywgzsXXxdLOwdEgz9DDydEsIM7F18XSztnKINPV0MXSwszPy1xuIgorIiAgICAgICDOwSAlcywgz9TT1dTT1NfVxdQgy8/Ez9fB0SDT1NLBzsnDwSDJzMkgxNLVx8HRIM/bycLLwSIKKworIzogbW91bnQvbW91bnQuYzoxNDg3Cittc2dpZCAiIgorIiAgICAgICAoZm9yIHNldmVyYWwgZmlsZXN5c3RlbXMgKGUuZy4gbmZzLCBjaWZzKSB5b3UgbWlnaHRcbiIKKyIgICAgICAgbmVlZCBhIC9zYmluL21vdW50Ljx0eXBlPiBoZWxwZXIgcHJvZ3JhbSkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDk2Cittc2dpZCAiIgorIiAgICAgICAoY291bGQgdGhpcyBiZSB0aGUgSURFIGRldmljZSB3aGVyZSB5b3UgaW4gZmFjdCB1c2VcbiIKKyIgICAgICAgaWRlLXNjc2kgc28gdGhhdCBzcjAgb3Igc2RhIG9yIHNvIGlzIG5lZWRlZD8pIgorbXNnc3RyICIiCisiICAgICAgICjXz9rNz9bOzywg3NTPIElERS3V09TSz8rT1NfPLCDBINfZIM7BINPBzc/NIMTFzMVcbiIKKyIgICAgICAgydPQz8zY2tXF1MUgaWRlLXNjc2ksIMkg0M/c1M/N1SDO1dbFziBzcjAsIHNkYSDJzMlcbiIKKyIgICAgICAg3tTPLc7JwtXE2CDQz8TPws7PxT8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDEKK21zZ2lkICIiCisiICAgICAgIChhcmVuJ3QgeW91IHRyeWluZyB0byBtb3VudCBhbiBleHRlbmRlZCBwYXJ0aXRpb24sXG4iCisiICAgICAgIGluc3RlYWQgb2Ygc29tZSBsb2dpY2FsIHBhcnRpdGlvbiBpbnNpZGU/KSIKK21zZ3N0ciAiIgorIiAgICAgICAozsUg0NnUwcXUxdPYIMzZINfZINDSyc3PztTJ0s/XwdTYINLB09vJ0sXOztnKINLB2sTFzFxuIgorIiAgICAgICDXzcXT1M8gz8TOz8fPIMnaIMzPx8nexdPLycgg0sHaxMXMz9cg187V1NLJIM7Fx88/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKyIgICAgICAg9yDOxcvP1M/S2cgg08zV3sHRyCDQz8zF2s7B0SDJzsbP0s3Bw8nRIM3P1sXUIMLZ1NhcbiIKKyIgICAgICAgzsHKxMXOwSDXIHN5c2xvZyAtINDP0NLPwtXK1MUgZG1lc2cgfCB0YWlsIMnMySDe1M8t1M9cbiIKKyIgICAgICAg1yDc1M/NINLPxMVcbiIKKworIzogbW91bnQvbW91bnQuYzoxNTE0Cittc2dpZCAibW91bnQgdGFibGUgZnVsbCIKK21zZ3N0ciAi1MHCzMnDwSDNz87UydLP18HOydEg2sHQz8zOxc7BIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiBjYW4ndCByZWFkIHN1cGVyYmxvY2siCittc2dzdHIgIm1vdW50OiAlczogzsXXz9rNz9bOzyDQ0s/eydTB1Ngg09XQxdLCzM/LIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzOiDOxcna18XT1M7PxSDV09TSz8rT1NfPIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHVua25vd24gZmlsZXN5c3RlbSB0eXBlICclcyciCittc2dzdHIgIm1vdW50OiDOxcna18XT1M7ZyiDUydAgxsHKzM/Xz8og08nT1MXN2SAnJXMnIgorCisjOiBtb3VudC9tb3VudC5jOjE1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHByb2JhYmx5IHlvdSBtZWFudCAlcyIKK21zZ3N0ciAibW91bnQ6INfP2s3P1s7PINfZIMnNxczJINcg18nE1SAlcyIKKworIzogbW91bnQvbW91bnQuYzoxNTQyCittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAnaXNvOTY2MCc/IgorbXNnc3RyICJtb3VudDogzc/WxdQgwtnU2CDX2SDJzcXMySDXINfJxNUgJ2lzbzk2NjAnPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDogzc/WxdQgwtnU2CDX2SDJzcXMySDXINfJxNUgJ3ZmYXQnPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBoYXMgd3JvbmcgZGV2aWNlIG51bWJlciBvciBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKyJtb3VudDogJXMgyc3FxdQgzsXXxdLO2cogzs/NxdIg1dPU0s/K09TXwSDJzMkg1MnQIObzICVzIM7FINDPxMTF0tbJ18HF1NPRIgorCisjOiBtb3VudC9tb3VudC5jOjE1NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSwgYW5kIHN0YXQgZmFpbHM/IgorbXNnc3RyICIiCisibW91bnQ6ICVzIM7FINHXzNHF1NPRIMLMz97O2c0g1dPU0s/K09TXz80sIMEgz9DSxcTFzMXOycUg08/T1M/RzsnRICIKKyLOxdfP2s3P1s7PPyIKKworIzogbW91bnQvbW91bnQuYzoxNTU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHRoZSBrZXJuZWwgZG9lcyBub3QgcmVjb2duaXplICVzIGFzIGEgYmxvY2sgZGV2aWNlXG4iCisiICAgICAgIChtYXliZSBgbW9kcHJvYmUgZHJpdmVyJz8pIgorbXNnc3RyICIiCisibW91bnQ6INHE0s8gzsUg0sHT0M/azsHF1CAlcyDLwcsgwszP3s7PxSDV09TSz8rT1NfPXG4iCisiICAgICAgICjNz9bF1CDC2dTYIGBpbnNtb2QgZHJpdmVyJz8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSAobWF5YmUgdHJ5IGAtbyBsb29wJz8pIgorbXNnc3RyICIiCisibW91bnQ6ICVzIM7FINHXzNHF1NPRIMLMz97O2c0g1dPU0s/K09TXz80gKM3P1sXUINDP0NLPws/XwdTYIGAtbyBsb29wJz8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIM7FINHXzNHF1NPRIMLMz97O2c0g1dPU0s/K09TXz80iCisKKyM6IG1vdW50L21vdW50LmM6MTU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgdmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgzsUg0dfM0cXU09Eg18XSztnNIMLMz97O2c0g1dPU0s/K09TXz80iCisKKyM6IG1vdW50L21vdW50LmM6MTU3MgorbXNnaWQgImJsb2NrIGRldmljZSAiCittc2dzdHIgIsLMz97Oz8Ug1dPU0s/K09TXzyAiCisKKyM6IG1vdW50L21vdW50LmM6MTU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG1vdW50ICVzJXMgcmVhZC1vbmx5IgorbXNnc3RyICJtb3VudDogzsXXz9rNz9bOzyDQ0snNz87UydLP18HU2CAlcyVzINTPzNjLzyDEzNEg3tTFzsnRIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkIGJ1dCBleHBsaWNpdCBgLXcnIGZsYWcgZ2l2ZW4iCittc2dzdHIgIm1vdW50OiAlcyVzINrB3cndxc4gz9Qg2sHQydPJLCDOzyDR187PINXLwdrBziDGzMHHIGAtdyciCisKKyM6IG1vdW50L21vdW50LmM6MTU4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCByZW1vdW50ICVzJXMgcmVhZC13cml0ZSwgaXMgd3JpdGUtcHJvdGVjdGVkIgorbXNnc3RyICJtb3VudDogzsXXz9rNz9bOzyDQ0snNz87UydLP18HU2CAlcyVzINTPzNjLzyDEzNEg3tTFzsnRIgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzINrB3cndxc4gz9Qg2sHQydPJLCDNz87UydLVxdTT0SDUz8zYy88gxMzRIN7Uxc7J0SIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogJXMgzsUgzsHKxMXOIC0g08/axMHF1NPRLi4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzINXWxSDQ0snNz87UydLP18HOIM7BICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIm1vdW50OiDOxSDC2cwg1cvB2sHOINTJ0CAtIMLVxMXUINDPxNLB2tXNxdfB1NjT0SBuZnMgydot2sEgxNfPxdTP3snRXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICIiCisibW91bnQ6IM7FIMLZzCDVy8Hawc4g1MnQIC0gwtXExdQg0M/E0sHa1c3F18HU2NPRIGNpZnMgydot2sEg0NLFxsnL08EgLy9cbiIKKworIzogbW91bnQvbW91bnQuYzoxODExCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6ICVzINXWxSDQ0snNz87UydLP18HOIM7BICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiBtb3VudCAtViAgICAgICAgICAgICAgICAgOiBwcmludCB2ZXJzaW9uXG4iCisiICAgICAgIG1vdW50IC1oICAgICAgICAgICAgICAgICA6IHByaW50IHRoaXMgaGVscFxuIgorIiAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgOiBsaXN0IG1vdW50ZWQgZmlsZXN5c3RlbXNcbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDogaWRlbSwgaW5jbHVkaW5nIHZvbHVtZSBsYWJlbHNcbiIKKyJTbyBmYXIgdGhlIGluZm9ybWF0aW9uYWwgcGFydC4gTmV4dCB0aGUgbW91bnRpbmcuXG4iCisiVGhlIGNvbW1hbmQgaXMgYG1vdW50IFstdCBmc3R5cGVdIHNvbWV0aGluZyBzb21ld2hlcmUnLlxuIgorIkRldGFpbHMgZm91bmQgaW4gL2V0Yy9mc3RhYiBtYXkgYmUgb21pdHRlZC5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDogbW91bnQgYWxsIHN0dWZmIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAgICAgICBtb3VudCBkZXZpY2UgICAgICAgICAgICAgOiBtb3VudCBkZXZpY2UgYXQgdGhlIGtub3duIHBsYWNlXG4iCisiICAgICAgIG1vdW50IGRpcmVjdG9yeSAgICAgICAgICA6IG1vdW50IGtub3duIGRldmljZSBoZXJlXG4iCisiICAgICAgIG1vdW50IC10IHR5cGUgZGV2IGRpciAgICA6IG9yZGluYXJ5IG1vdW50IGNvbW1hbmRcbiIKKyJOb3RlIHRoYXQgb25lIGRvZXMgbm90IHJlYWxseSBtb3VudCBhIGRldmljZSwgb25lIG1vdW50c1xuIgorImEgZmlsZXN5c3RlbSAob2YgdGhlIGdpdmVuIHR5cGUpIGZvdW5kIG9uIHRoZSBkZXZpY2UuXG4iCisiT25lIGNhbiBhbHNvIG1vdW50IGFuIGFscmVhZHkgdmlzaWJsZSBkaXJlY3RvcnkgdHJlZSBlbHNld2hlcmU6XG4iCisiICAgICAgIG1vdW50IC0tYmluZCBvbGRkaXIgbmV3ZGlyXG4iCisib3IgbW92ZSBhIHN1YnRyZWU6XG4iCisiICAgICAgIG1vdW50IC0tbW92ZSBvbGRkaXIgbmV3ZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgbW91bnQgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXVuYmluZGFibGUgZGlyXG4iCisiT25lIGNhbiBjaGFuZ2UgdGhlIHR5cGUgb2YgYWxsIHRoZSBtb3VudHMgaW4gYSBtb3VudCBzdWJ0cmVlXG4iCisiY29udGFpbmluZyB0aGUgZGlyZWN0b3J5IGRpcjpcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ycHJpdmF0ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJ1bmJpbmRhYmxlIGRpclxuIgorIkEgZGV2aWNlIGNhbiBiZSBnaXZlbiBieSBuYW1lLCBzYXkgL2Rldi9oZGExIG9yIC9kZXYvY2Ryb20sXG4iCisib3IgYnkgbGFiZWwsIHVzaW5nICAtTCBsYWJlbCAgb3IgYnkgdXVpZCwgdXNpbmcgIC1VIHV1aWQgLlxuIgorIk90aGVyIG9wdGlvbnM6IFstbmZGcnN2d10gWy1vIG9wdGlvbnNdIFstcCBwYXNzd2RmZF0uXG4iCisiRm9yIG1hbnkgbW9yZSBkZXRhaWxzLCBzYXkgIG1hbiA4IG1vdW50IC5cbiIKK21zZ3N0ciAiIgorIunT0M/M2NrP18HOycU6IG1vdW50IC1WICAgICAgICAgOiDX2dfPxCDXxdLTyclcbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDog19nXz8Qg3NTPyiDT0NLB18vJXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6INPQydPPyyDQ0snNz87UydLP18HOztnIIMbByszP19nIINPJ09TFzVxuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiDUzyDWxSDTwc3PxSwg18vMwN7B0SDNxdTLySDUz83P11xuIgorIuTPINPJyCDQz9IgwtnMwSDJzsbP0s3Bw8nPzs7B0SDewdPU2C4g5MHMxcUgycTF1CDNz87UydLP18HOycUuXG4iCisi68/Nwc7EwSBgbW91bnQgWy10INTJ0F/G010g3tTPLdTPIMvVxMEt1M8nLlxuIgorIuTF1MHMySwgzsHKxMXOztnFINcgL2V0Yy9mc3RhYiwgzc/H1dQgwtnU2CDQ0s/Q1d3FztkuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IM3PztTJ0s/Xwc7JxSDX08XHzyDTz8TF0tbJzc/HzyAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50INXT1NLPytPU188gICAgICAgICA6IM3PztTJ0s/Xwc7JxSDV09TSz8rT1NfBIM7BIMna18XT1M7PxSAiCisizcXT1M9cbiIKKyIgICAgICAgbW91bnQgy8HUwczPxyAgICAgICAgICAgIDogzc/O1MnSz9fBzsnFIMna18XT1M7Px88g1dPU0s/K09TXwSDOwSAiCisizsXHz1xuIgorIiAgICAgICBtb3VudCAtdCDUydAg1dPU0iDLwdQgICAgOiDPwtnezsHRIMvPzcHOxMEgzc/O1MnSz9fBzsnRXG4iCisi8M/NzsnUxSwg3tTPIG1vdW50IM7BINPBzc/NIMTFzMUgzc/O1MnS1cXUIM7FINXT1NLPytPU188sIMEgxsHKzM/X1cBcbiIKKyLTydPUxc3VICjVy8Hawc7Oz8fPINTJ0MEpLCDOwcrExc7O1cAgzsEg3NTPzSDV09TSz8rT1NfFLlxuIgorIu/OINTBy9bFIM3P1sXUIM3PztTJ0s/XwdTYINXWxSDXycTJzc/FIMTF0sXXzyDLwdTBzM/Hz9cgy9XEwSDVx8/Ezs86XG4iCisiICAgICAgIG1vdW50IC0tYmluZCDT1MHSX8vB1CDOz9dfy8HUXG4iCisiyczJINDF0sXNxd3B1Ngg0M/ExMXSxdfPOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUg09TB0l/LwdQgzs/XX8vB1FxuIgorIvXT1NLPytPU188gzc/WxdQgwtnU2CDVy8Hawc7PINDPIMnNxc7JLCDTy8HWxc0sIC9kZXYvaGRhMSDJzMkgL2Rldi9jZHJvbSxcbiIKKyLJzMkg0M8gzcXUy8UsIMnT0M/M2NrV0SAgLUwgzcXUy8EgIMnMySDQzyB1dWlkLCDJ09DPzNja1dEgIC1VIHV1aWQgLlxuIgorIuTS1cfJxSDP0MPJyTogWy1uZkZyc3Z3XSBbLW8gz9DDycldIFstcCBwYXNzd2RmZF0uXG4iCisi5MzRINDPzNXexc7J0SDCz8zFxSDQz8TSz8LOz8fPIM/QydPBzsnRIM7BwsXSydTFICBtYW4gOCBtb3VudCAuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiDUz8zYy88gcm9vdCDNz9bF1CDTxMXMwdTYINzUzyIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6INTPzNjLzyByb290IM3P1sXUINPExczB1Ngg3NTPIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICLOyd7Fx88gzsUgwtnMzyDQ0snNz87UydLP18HOzyIKKworIzogbW91bnQvbW91bnQuYzoyMzA2IG1vdW50L21vdW50LmM6MjMzMgorbXNnaWQgIm1vdW50OiBubyBzdWNoIHBhcnRpdGlvbiBmb3VuZCIKK21zZ3N0ciAibW91bnQ6INTBy8/KINLB2sTFzCDOxSDOwcrExc4iCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6IM7F18/azc/Wzs8gzsHK1MkgJXMg1yAlcyDJzMkgJXMiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogd2FybmluZzogbm8gZmluYWwgbmV3bGluZSBhdCB0aGUgZW5kIG9mICVzXG4iCittc2dzdHIgIlttbnRlbnRdOiDQ0sXE1dDSxdbExc7JxTogbm8gZmluYWwgbmV3bGluZSBhdCB0aGUgZW5kIG9mICVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogbGluZSAlZCBpbiAlcyBpcyBiYWQlc1xuIgorbXNnc3RyICJbbW50ZW50XTog09TSz8vBICVkINcgJXMg0MzPyMHRICVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxOQorbXNnaWQgIjsgcmVzdCBvZiBmaWxlIGlnbm9yZWQiCittc2dzdHIgIjsgz9PUwczYzsHRIN7B09TYIMbByszBINDSz8nHzs/SydLP18HOwSIKKworIzogbW91bnQvc3VuZHJpZXMuYzozMgorbXNnaWQgImJ1ZyBpbiB4c3RybmR1cCBjYWxsIgorbXNnc3RyICLP28nCy8Eg1yDX2drP18UgeHN0cm5kdXAiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MjI1IG1vdW50L3N1bmRyaWVzLmM6MjgxIG1vdW50L3N1bmRyaWVzLmM6Mjk2CisjOiBtb3VudC94bWFsbG9jLmM6MTEKK21zZ2lkICJub3QgZW5vdWdoIG1lbW9yeSIKK21zZ3N0ciAizsXI18HUy8Eg0MHN0dTJIgorCisjOiBtb3VudC9zd2Fwb24uYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICBMQUJFTCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgICAgVVVJRCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZGV2aWNlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZmlsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBmaWxlIHRvIGJlIHVzZWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstdl0gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZSBhbGwgc3dhcHNcbiIKKyIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGRpc2FibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0IgorbXNnc3RyICIlczog7sXP1snEwc7O2cogy8/OxcMgxsHKzMEg1yDGwcrMxSAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlaW5pdGlhbGl6aW5nIHRoZSBzd2FwLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMjMKKyMsIGZ1enp5Cittc2dpZCAiZm9yayBmYWlsZWQiCittc2dzdHIgItPP2sTBzsnFIMTP3sXSzsXHzyDQ0s/DxdPTwSDawdfF0tvJzM/T2CDOxdXEwd7FylxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3YgZmFpbGVkIgorbXNnc3RyICLX2dDPzM7FzsnFINrB18XS28nMz9PYIM7F1cTB3sXKXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI0NworIywgZnV6enkKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogbW91bnQvc3dhcG9uLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbHNlZWsgZmFpbGVkIgorbXNnc3RyICLQz8nTyyDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBzaWduYXR1cmUgZmFpbGVkIgorbXNnc3RyICLv1MvS2dTJxSAlcyDawdfF0tvJzM/T2CDOxdXEwd7FyiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKKyMsIGZ1enp5Cittc2dpZCAic2FtZSIKK21zZ3N0ciAi6c3RIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzdGF0IGZhaWxlZCIKK21zZ3N0ciAi0M/J08sg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaW5zZWN1cmUgcGVybWlzc2lvbnMgJTA0bywgJTA0byBzdWdnZXN0ZWQuIgorbXNnc3RyICIiCisiJXM6INDSxcTV0NLF1sTFzsnFOiAlcyDJzcXF1CDOxcLF2s/QwdPO2cUg0sHa0sXbxc7J0SAlMDRvLCDSxcvPzcXOxNXF1NPRICUiCisiMDRvXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQwMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIC0gaXQgYXBwZWFycyB0byBoYXZlIGhvbGVzLiIKK21zZ3N0ciAiJXM6IPDSz9DV08vBxdTT0SDGwcrMICVzIC0g0M/Iz9bFINcgzqPNIMnNxcDU09EgxNnS2S5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NDE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZ2V0IHNpemUgZmFpbGVkIgorbXNnc3RyICLQz8nTyyDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgc3dhcCBoZWFkZXIgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbGFzdF9wYWdlIDB4JTA4bGx4IGlzIGxhcmdlciB0aGFuIGFjdHVhbCBzaXplIG9mIHN3YXBzcGFjZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4gKFVzZSAtLWZpeHBnc3ogdG8gcmVpbml0aWFsaXplIGl0LikiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuIFJld3JpdGluZyB0aGUgc3dhcCBzaWduYXR1cmUuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ3OCBtb3VudC9zd2Fwb24uYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgb24gJXNcbiIKK21zZ3N0ciAiJXMgzsEgJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9uIGZhaWxlZCIKK21zZ3N0ciAi0M/J08sg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogbW91bnQvc3dhcG9uLmM6NTA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZmluZCB0aGUgZGV2aWNlIGZvciAlcyIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8gzsHK1Mkg1dPU0s/K09TXzyDEzNEgJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQwCisjLCBmdXp6eQorbXNnaWQgIk5vdCBzdXBlcnVzZXIuIgorbXNnc3RyICLuxSDT1dDF0tDPzNjaz9fB1MXM2C5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgItDPydPLINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IG1vdW50L3N3YXBvbi5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIHVuc3VwcG9ydGVkIHByb2dyYW0gbmFtZSAobXVzdCBiZSAnc3dhcG9uJyBvciAnc3dhcG9mZicpLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgLWZcbiIKK21zZ3N0ciAidW1vdW50OiDP1MvPzdDJzMnSz9fBziDCxdog0M/ExMXS1svJIC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IM7F18/azc/Wzs8g1dPUwc7P18nU2CDTy8/Sz9PU2DogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjExNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJtb3VudDogzsXXz9rNz9bOzyDV09TBzs/XydTYINPLz9LP09TYOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJ1bW91bnQ6IM7F18/azc/Wzs8g08/axMHU2CDEz97F0s7JyiDQ0s/DxdPTOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTYwCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGludmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJ1bW91bnQ6ICVzOiDOxdfF0s7PxSDCzM/ezs/FINXT1NLPytPU188iCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIKK21zZ3N0ciAidW1vdW50OiAlczogzsUg0NLJzc/O1MnSz9fBziIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgInVtb3VudDogJXM6IM7F18/azc/Wzs8g2sHQydPB1Ngg09XQxdLCzM/LIgorCisjOiBtb3VudC91bW91bnQuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVtb3VudDogJXM6IGRldmljZSBpcyBidXN5LlxuIgorIiAgICAgICAgKEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gYWJvdXQgcHJvY2Vzc2VzIHRoYXQgdXNlXG4iCisiICAgICAgICAgdGhlIGRldmljZSBpcyBmb3VuZCBieSBsc29mKDgpIG9yIGZ1c2VyKDEpKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IGZvdW5kIgorbXNnc3RyICJ1bW91bnQ6ICVzOiDOxSDOwcrExc4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBtdXN0IGJlIHN1cGVydXNlciB0byB1bW91bnQiCittc2dzdHIgIiIKKyJ1bW91bnQ6ICVzOiDOxc/CyM/Eyc3PIMnNxdTYINDSwdfBINPV0MXS0M/M2NrP18HUxczRIMTM0SDSwdrNz87UydLP18HOydEiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgInVtb3VudDogJXM6IMLMz97O2cUg1dPU0s/K09TXwSDOwSBmcyDawdDSxd3FztkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiAlcyIKK21zZ3N0ciAidW1vdW50OiAlczogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1bW91bnQyLCB0cnlpbmcgdW1vdW50Li4uXG4iCittc2dzdHIgIs7F1CB1bW91bnQyLCDX2dDPzM7RxdTT0SDQz9DZ1MvBIHVtb3VudC4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBidXN5IC0gcmVtb3VudGVkIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6ICVzINrBztHUIC0g0MXSxc3PztTJ0s/Xwc4g1M/M2MvPIMTM0SDe1MXOydFcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY291bGQgbm90IHJlbW91bnQgJXMgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogzsXXz9rNz9bOzyDQxdLFzc/O1MnSz9fB1NggJXMg1M/M2MvPIMTM0SDe1MXOydFcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiVzINLB2s3PztTJ0s/Xwc5cbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgInVtb3VudDogzsXXz9rNz9bOzyDOwcrUySDT0MnTz8sgxsHKzM/X2cgg08nT1MXNIMTM0SDSwdrNz87UydLP18HOydEiCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKK21zZ3N0ciAiIgorIunT0M/M2NrP18HOycU6IHVtb3VudCBbLWhWXVxuIgorIiAgICAgICB1bW91bnQgLWEgWy1mXSBbLXJdIFstbl0gWy12XSBbLXQg1MnQ2V/G010gWy1PIM/Qw8nJXVxuIgorIiAgICAgICB1bW91bnQgWy1mXSBbLXJdIFstbl0gWy12XSDT0MXDycHM2M7ZyiB8INXaxcwuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIvPFy9TP0iAlZCDV1sUg19nExczFzlxuIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBub3QgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIvPFy9TP0iAlZCDV1sUg19nExczFzlxuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAi7sXXz9rNz9bOzyDSwdrNz87UydLP18HU2CBcIlwiXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIvfZ0M/MztHF1NPRINDP0NnUy8Eg0sHazc/O1MnSz9fB1NggJXNcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCB1bW91bnQgJXMgLS0gJXMgaXMgbW91bnRlZCBvdmVyIGl0IG9uIHRoZSBzYW1lIHBvaW50LiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgJXMgaW4gbXRhYlxuIgorbXNnc3RyICLuxdfP2s3P1s7PIM7BytTJICVzINcgbXRhYlxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6ICVzIM7FINDSyc3PztTJ0s/Xwc4gKNPPx8zB087PIG10YWIpIgorCisjOiBtb3VudC91bW91bnQuYzo1NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBpdCBzZWVtcyAlcyBpcyBtb3VudGVkIG11bHRpcGxlIHRpbWVzIgorbXNnc3RyICJ1bW91bnQ6INDPyM/WxSwg3tTPICVzINDSyc3PztTJ0s/Xwc4gzsXTy8/M2MvPINLB2iIKKworIzogbW91bnQvdW1vdW50LmM6NTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAoYW5kIHlvdSBhcmUgbm90IHJvb3QpIgorbXNnc3RyICJ1bW91bnQ6ICVzIM7FINcgZnN0YWIgKMEg19kgzsUgcm9vdCkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIG1vdW50IGRpc2FncmVlcyB3aXRoIHRoZSBmc3RhYiIKK21zZ3N0ciAidW1vdW50OiDNz87UydLP18HOycUgJXMg0NLP1MnXz9LF3snUIGZzdGFiJ9UiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAidW1vdW50OiDUz8zYy88gJXMgzc/WxdQg0sHazc/O1MnSz9fB1NggJXMgz9QgJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjcwMQorbXNnaWQgInVtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICJ1bW91bnQ6INTPzNjLzyByb290IM3P1sXUINPExczB1Ngg3NTPIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiY2hydCAtIG1hbmlwdWxhdGUgcmVhbC10aW1lIGF0dHJpYnV0ZXMgb2YgYSBwcm9jZXNzLlxuIgorIlxuIgorIlNldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSA8cG9saWN5PiA8cHJpb3JpdHk+IHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJHZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIlxuIgorIlNjaGVkdWxpbmcgcG9saWNpZXM6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0ZJRk9cbiIKKyIgIC1pIHwgLS1pZGxlICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9SUiAoZGVmYXVsdClcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHBcbiIKKyIgIC1wIHwgLS1waWQgICAgICAgICAgIG9wZXJhdGUgb24gZXhpc3RpbmcgZ2l2ZW4gcGlkXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBzaG93IG1pbiBhbmQgbWF4IHZhbGlkIHByaW9yaXRpZXNcbiIKKyIgIC12IHwgLS12ZXJib3NlICAgICAgIGRpc3BsYXkgc3RhdHVzIGluZm9ybWF0aW9uXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAi79vJwsvBINrB0MnTySDSwdrExczBIM7BICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTA5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgIs7FydrXxdPUztnKIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBhdHRyaWJ1dGVzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHByaW9yaXR5OiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBtaW4vbWF4IHByaW9yaXR5XHQ6ICVkLyVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBub3Qgc3VwcG9ydGVkP1xuIgorbXNnc3RyICJORlMg3sXSxdogVENQIM7FINDPxMTF0tbJ18HF1NPRLlxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHBpZCIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8gz9TL0tnU2CA6ICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIyNQorIywgZnV6enkKK21zZ2lkICJjdXJyZW50IgorbXNnc3RyICJuY291bnQiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcHJpb3JpdHkiCittc2dzdHIgIu/bycLLwSDawdDJ08kg0sHaxMXMwSDOwSAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICLv28nCy8Eg2sHQydPJINLB2sTFzMEgzsEgJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCisjLCBmdXp6eQorbXNnaWQgIm5ldyIKK21zZ3N0ciAi7s/X2coiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXMiCittc2dzdHIgImlvY3RsKCkg2sHXxdLbyczT0SDOxdXEwd7FyiDQ0skg3tTFzsnJINfSxc3FzskgydogJXMiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NTcKKyMsIGZ1enp5Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkg2sHXxdLbyczT0SDOxdXEwd7FylxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjc1CisjLCBmdXp6eQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5INrB18XS28nM09EgzsXVxMHexcpcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisiXG4iCisiVXNhZ2U6XG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gLXAgPHBpZD4gWzxwaWQ+IC4uLl1cbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSA8Y29tbWFuZD4gWzxhcmc+IC4uLl1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorIiAgLWMgPGNsYXNzPiAgICAgICAgICBzY2hlZHVsaW5nIGNsYXNzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIDA6IG5vbmUsIDE6IHJlYWx0aW1lLCAyOiBiZXN0LWVmZm9ydCwgMzogaWRsZVxuIgorIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxMTAgc2NoZWR1dGlscy9pb25pY2UuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBwYXJzZSBudW1iZXIgJyVzJyIKK21zZ3N0ciAizsXXz9rNz9bOzyDP1MvS2dTYICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgItfZ0M/MzsXOycUg2sHXxdLbyczP09ggzsXVxMHexcpcbiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzoyNworIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBiZSByb290IHRvIHNldCB0aGUgQ3RybC1BbHQtRGVsIGJlaGF2aW91ci5cbiIKK21zZ3N0ciAi99kgxM/M1s7ZIMnNxdTYINDSwdfBIHJvb3QnwSDEzNEg1dPUwc7P18vJINPPwtnUydEgQ3RybC1BbHQtRGVsLlxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorbXNnc3RyICLp09DPzNjaz9fBzsnFOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIubByswgJXMsIOTM0SDQz9LPx8/Xz8fPINrOwd7FzsnRICVsdSwg7cHL08nN1c0g08nN18/Mz9cg1yBmaWZvIMLZzMkgJWQsXG4iCisiySDNwcvTyc3BzNjOwdEg08vP0s/T1Ngg0MXSxcTB3skg1yDTyc3Xz8zByC/TxcvVzsTVIMLZzMEgJWZcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIubByswgJXMsIOTM0SDQz9LPx8/Xz8fPINrOwd7FzsnRICVsdSDJINrOwd7FzsnRINTBys0twdXUwSAlbHUsIO3By9PJzdXNICIKKyLTyc3Xz8zP1yDXIGZpZm8gwtnMySAlZCxcbiIKKyLJIM3By9PJzcHM2M7B0SDTy8/Sz9PU2CDQxdLFxMHeySDXINPJzdfPzMHIL9PFy9XOxNUgwtnMwSAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIu7F18XSzs/FINrOwd7FzsnFIMnO1MXS18HMwTogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAi7sXXxdLOz8Ug2s7B3sXOycUg1dPUwc7P18vJOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAi7sXXxdLOz8Ug2s7B3sXOycUg0M8g1c3PzN7BzsnAOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIu7F18XSzs/FINrOwd7FzsnFINXT1MHOz9fLySDX0sXNxc7JOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICLuxdfF0s7PxSDazsHexc7JxSDX0sXNxc7JINDPINXNz8zewc7JwDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstcSBbLWkgaW50ZXJ2YWxdXSAoWy1zIHZhbHVlXXxbLVMgdmFsdWVdKSAoWy10IHZhbHVlXXxbLVQgdmFsdWVdKSAiCisiWy1nfC1HXSBmaWxlIFtmaWxlLi4uXVxuIgorbXNnc3RyICIiCisi6dPQz8zY2s/Xwc7JxTogJXMgWy1xIFstaSDJztTF0tfBzF1dIChbLXMg2s7B3sXOycVdfFstUyDazsHexc7JxV0pIChbLXQgIgorItrOwd7FzsnFXXxbLVQg2s7B3sXOycVdKSBbLWd8LUddIMbByswgW8bByswuLi5dXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTAgc3lzLXV0aWxzL2N5dHVuZS5jOjI2OSBzeXMtdXRpbHMvY3l0dW5lLmM6Mjg5CisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIu7F18/azc/Wzs8gz9TL0tnU2CAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICLuxdfP2s3P1s7PINXT1MHOz9fJ1NggJXMg1yDQz9LPx8/Xz8Ug2s7B3sXOycUgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRpbWUgdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICLuxdfP2s3P1s7PINXT1MHOz9fJ1NggJXMg1yDQz9LPx8/Xz8Ug2s7B3sXOycUg19LFzcXOySAlZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIu7F18/azc/Wzs8g0M/M1d7J1Ngg0M/Sz8fP18/FINrOwd7FzsnFIMTM0SAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwMCBzeXMtdXRpbHMvY3l0dW5lLmM6MzU3IHN5cy11dGlscy9jeXR1bmUuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRpbWVvdXQgZm9yICVzOiAlc1xuIgorbXNnc3RyICLuxdfP2s3P1s7PINDPzNXeydTYINTBys0twdXUIMTM0SAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN1cnJlbnQgdGhyZXNob2xkIGFuZCAlbGQgY3VycmVudCB0aW1lb3V0XG4iCittc2dzdHIgIiVzOiAlbGQg1MXL1d3FxSDQz9LPx8/Xz8Ug2s7B3sXOycUgySAlbGQg1MXL1d3JyiDUwcrNLcHV1FxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgZGVmYXVsdCB0aHJlc2hvbGQgYW5kICVsZCBkZWZhdWx0IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6ICVsZCDQz9LPx8/Xz8Ug2s7B3sXOycUg0M8g1c3PzN7BzsnAIMkgJWxkINTBys0twdXUINDPINXNz8zewc7JwFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzI3Cittc2dpZCAiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIgorbXNnc3RyICLuxdfP2s3P1s7PINXT1MHOz9fJ1Nggz8LSwcLP1N7JyyDTycfOwczBIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzMxIHN5cy11dGlscy9jeXR1bmUuYzozNjYKK21zZ2lkICJnZXR0aW1lb2ZkYXkgZmFpbGVkIgorbXNnc3RyICJnZXR0aW1lb2ZkYXkg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjM0NCBzeXMtdXRpbHMvY3l0dW5lLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGlzc3VlIENZR0VUTU9OIG9uICVzOiAlc1xuIgorbXNnc3RyICLuxdfP2s3P1s7PINfZxMHU2CBDWUdFVE1PTiDOwSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorIiVzOiAlbHUg0NLF0tnXLCAlbHUvJWx1INPJzdc7IGZpZm86ICVsdSDQz9LPxywgJWx1INTBys0twdXULCAlbHUgzcHL0ywgJWx1ICIKKyLTxcrewdNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiDQ0sXS2dcv08XLOyAlZiDawdAsICVmIM/U0NLB18zFzs8gKNPJzdcv08XLKVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1INDSxdLZ1ywgJWx1INPJzdc7IGZpZm86ICVsdSDQz9LPxywgJWx1INTBys0twdXULCAlbHUgzcHL0ywgJWx1ICIKKyLTxcrewdNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiDQ0sXS2dcv08XLOyAlZiDawdAgKNPJzdcv08XLKVxuIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICLp09DPzNjaz9fBzsnFOiAlcyBbLWNdIFstbiDV0s/Xxc7YXSBbLXMg0sHazV/C1cbF0sFdXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGZpbGVuYW1lPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIunT0M/M2NrP18HOycU6ICVzIFvP0MPJyV0g1dPU0s/K09TXzy4uLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1rZWVwLXNpemUgICAgIGRvbid0IG1vZGlmeSB0aGUgbGVuZ3RoIG9mIHRoZSBmaWxlXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorIiAtbCwgLS1sZW5ndGggPG51bT4gIGxlbmd0aCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBmYWxsb2NhdGUoMSkuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0NworIywgZnV6enkKK21zZ2lkICJubyBsZW5ndGggYXJndW1lbnQgc3BlY2lmaWVkIgorbXNnc3RyICLOxcjXwdTLwSDQwc3R1MkiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDkKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBsZW5ndGggdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICLuxdfF0s7PxSDazsHexc7JxSDV09TBzs/Xy8k6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTEKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICLuxdfF0s7PxSDazsHexc7JxSDV09TBzs/Xy8k6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKKyMsIGZ1enp5Cittc2dpZCAibm8gZmlsZW5hbWUgc3BlY2lmaWVkLiIKK21zZ3N0ciAi7sUg1cvB2sHOwSDP0MPJ0SAtLWRhdGUuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSDawdfF0tvJzNPRIM7F1cTB3sXKXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MTkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgcmVxdWlyZXMgZXhhY3RseSBvbmUgY29tbWFuZCBhcmd1bWVudFxuIgorbXNnc3RyICLkzNEgJXMg1NLFwtXF1NPRIMHSx9XNxc7UXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8gz9TL0tnU2CAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IM7F18XSzs/FINrOwd7FzsnFXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjI5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICLTz9rEwc7JxSDEz97F0s7Fx88g0NLPw8XT08Eg2sHXxdLbyczP09ggzsXVxMHexcpcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdXG4iCisiXG4iCittc2dzdHIgIunT0M/M2NrP18HOycU6ICVzIFvP0MPJyV0g1dPU0s/K09TXzy4uLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDIKK21zZ2lkICJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyLzxcfNxc7UINPP180uIMnT0C4g0MHN0dTJIHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MAorbXNnaWQgImNyZWF0ZSBtZXNzYWdlIHF1ZXVlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyLv3sXSxcTYINPPz8Ldxc7JyiBtc3FpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTgKKyMsIGZ1enp5Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgItfZxMXMxc7PINPFzcHGz9LP1yA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2VtYXBob3JlIGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisi7cHT08nXINPFzcHGz9LP1yBzZW1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo2NAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkOiAlc1xuIgorbXNnc3RyICLOxdfF0s7ZyiBpZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlbW92ZSBpZCAlcyAoJXMpXG4iCittc2dzdHIgIs7F18/azc/Wzs8g1cTBzMnU2CBpZCAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgImRlcHJlY2F0ZWQgdXNhZ2U6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorbXNnc3RyICLOxSDSxcvPzcXOxNXFzc/FIMnT0M/M2NrP18HOycU6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93biByZXNvdXJjZSB0eXBlOiAlc1xuIgorbXNnc3RyICLOxcna18XT1M7ZyiDUydAg0sXT1dLTwTogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAi0sXT1dLT2SjZKSDVxMHMxc4o2SlcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisiydPQz8zY2s/Xwc7JxTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgy8zA3l9tc2ddIFstTSDLzMDeX3NobV0gWy1TIMvMwN5fc2VtXSAuLi4gXVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCittc2dzdHIgIiVzOiDOxdfF0s7B0SDP0MPJ0SAtLSAlY1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwga2V5ICglcylcbiIKK21zZ3N0ciAiJXM6IM7F18XSztnKIMvMwN4gKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDYgc3lzLXV0aWxzL2lwY3JtLmM6MjM4Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGtleSIKK21zZ3N0ciAixMzRIMvMwN7BIMTP09TV0CDawdDSxd3FziIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA5IHN5cy11dGlscy9pcGNybS5jOjI0OAorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBrZXkiCittc2dzdHIgIsvMwN4g1dbFINXEwczFziIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjEyIHN5cy11dGlscy9pcGNybS5jOjI0MworbXNnaWQgImludmFsaWQga2V5IgorbXNnc3RyICLOxdfF0s7ZyiDLzMDeIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgIs7FydrXxdPUzsHRIM/bycLLwSDXIMvMwN7FIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgIsTM0SBpZCDEz9PU1dAg2sHQ0sXdxc4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0NAorbXNnaWQgImludmFsaWQgaWQiCittc2dzdHIgIs7F18XSztnKIGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQgaWQiCittc2dzdHIgImlkINXWxSDVxMHMxc4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NAorbXNnaWQgInVua25vd24gZXJyb3IgaW4gaWQiCittc2dzdHIgIs7FydrXxdPUzsHRIM/bycLLwSDXIGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzICglcylcbiIKK21zZ3N0ciAiJXM6ICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIGFyZ3VtZW50OiAlc1xuIgorbXNnc3RyICIlczogzsXJ2tfF09TO2cogwdLH1c3FztQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICLJ09DPzNjaz9fBzsnFOiAlcyAtYXNtcSAtdGNsdXAgXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorbXNnc3RyICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyAtaCBmb3IgaGVscC5cbiIKK21zZ3N0ciAiXHQlcyAtaCDEzNEg09DSwdfLyS5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzIGZvciB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKK21zZ3N0ciAiIgorIiVzINDSxcTP09TB18zRxdQgyc7Gz9LNwcPJwCDPINPSxcTT1NfByCBpcGMsIMsgy8/Uz9LZzSDX2SDJzcXF1MUgxM/T1NXQIM7BICIKKyLe1MXOycUuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJSZXNvdXJjZSBTcGVjaWZpY2F0aW9uOlxuIgorIlx0LW0gOiBzaGFyZWRfbWVtXG4iCisiXHQtcSA6IG1lc3NhZ2VzXG4iCittc2dzdHIgIiIKKyLz0MXDycbJy8HDydEg0sXT1dLTwTpcbiIKKyJcdC1tIDog08/XzV/J09Bf0MHN0dTYXG4iCisiXHQtcSA6INPPz8Ldxc7J0VxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtcyA6IHNlbWFwaG9yZXNcbiIKKyJcdC1hIDogYWxsIChkZWZhdWx0KVxuIgorbXNnc3RyICIiCisiXHQtcyA6INPFzcHGz9LZXG4iCisiXHQtYSA6INfTxSAo0M8g1c3PzN7BzsnAKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3V0cHV0IEZvcm1hdDpcbiIKKyJcdC10IDogdGltZVxuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDogY3JlYXRvclxuIgorbXNnc3RyICIiCisi5s/SzcHUINfZyM/EztnIIMTBzs7ZyDpcbiIKKyJcdC10IDog19LFzdFcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6INPP2sTB1MXM2FxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKyJcdC1sIDog0NLFxMXM2VxuIgorIlx0LXUgOiDT18/Ey8FcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICItaSBpZCBbLXMgLXEgLW1dIDog0M/E0s/Czs/T1MkgzyDSxdPV0tPFLCDJxMXO1MnGycPJ0s/Xwc7Oz80g0M8gaWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iCittc2dzdHIgItHE0s8gzsUgzsHT1NLPxc7PIMTM0SDJ09DPzNjaz9fBzsnRINPP183F09TOzyDJ09DPzNja1cXNz8og0MHN0dTJXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g8NLFxMXM2SDTz9fNLiDJ09AuINDBzdHUySAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIHNlZ21lbnRzID0gJWx1XG4iCittc2dzdHIgIs3By9PJzcHM2M7PxSDLz8zJ3sXT1NfPINPFx83FztTP1yA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VnIHNpemUgKGtieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAizcHL08nNwczYztnKINLB2s3F0iDTxcfNxc7UwSAoy8LBytQpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAizcHL08nN1c0g09XNzcHSzs/KINPP180uIMnT0C4g0MHN0dTJICjLwsHK1CkgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWluIHNlZyBzaXplIChieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAizcnOyc3BzNjO2cog0sHazcXSINPFx83FztTBICjCwcrUKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIPPP09TP0c7JxSDTz9fNLiDJ09AuINDBzdHUySAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJzZWdtZW50cyBhbGxvY2F0ZWQgJWRcbiIKK21zZ3N0ciAi19nExczFzs8g08XHzcXO1M/XICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAi19nExczFzs8g09TSwc7JwyAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgcmVzaWRlbnQgICVsZFxuIgorbXNnc3RyICLSxdrJxMXO1M7ZyCDT1NLBzsnDICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgItPU0sHOycMg09fP0MEgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3YXAgcGVyZm9ybWFuY2U6ICVsZCBhdHRlbXB0c1x0ICVsZCBzdWNjZXNzZXNcbiIKK21zZ3N0ciAi8NLPydrXz8TJ1MXM2M7P09TYINPXz9DBOiAlbGQg0M/Q2dTPyyBcdCAlbGQg1dPQxcjP11xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g88/axMHUxczJL9fMwcTFzNjD2SDTxcfNxc7UwSDTz9fNLiDJ09AuINDBzdHUySAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAic2htaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICLQ0sHXwSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjdWlkIgorbXNnc3RyICJjdWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImNnaWQiCittc2dzdHIgImNnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAidWlkIgorbXNnc3RyICJ1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiZ2lkIgorbXNnc3RyICJnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IEF0dGFjaC9EZXRhY2gvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0g/snTzM8g0M/Ey8zA3sXOycovz9TLzMDexc7Jyi/J2s3FzsXOydEg08/XzS4gydPQLiDQwc3R1MkgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEgc3lzLXV0aWxzL2lwY3MuYzozMDcKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTEyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOCBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm93bmVyIgorbXNnc3RyICLXzMHExczFwyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAi0M/Ey8zA3sXOzyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJkZXRhY2hlZCIKK21zZ3N0ciAiz9TLzMDexc7PIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorbXNnaWQgImNoYW5nZWQiCittc2dzdHIgIsnazcXOxc7PIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBDcmVhdG9yL0xhc3Qtb3AgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIPPP2sTB1MXM2C/Qz9PMxcTO0dEgz9DF0sHDydEg08/XzS4gydPQLiDQwc3R1MkgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJjcGlkIgorbXNnc3RyICJjcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImxwaWQiCittc2dzdHIgImxwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDzxcfNxc7U2SDTz9fNLiDJ09AuINDBzdHUySAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAiy8zA3iIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJieXRlcyIKK21zZ3N0ciAiwsHK1NkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAibmF0dGNoIgorbXNnc3RyICJuYXR0Y2giCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAic3RhdHVzIgorbXNnc3RyICLTz9PUz9HOycUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzI5IHN5cy11dGlscy9pcGNzLmM6MzMxIHN5cy11dGlscy9pcGNzLmM6MzMzCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ0NCBzeXMtdXRpbHMvaXBjcy5jOjQ0NiBzeXMtdXRpbHMvaXBjcy5jOjU0NQorIzogc3lzLXV0aWxzL2lwY3MuYzo1NDcgc3lzLXV0aWxzL2lwY3MuYzo1NDkgc3lzLXV0aWxzL2lwY3MuYzo2MDAKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAyIHN5cy11dGlscy9pcGNzLmM6NjMwIHN5cy11dGlscy9pcGNzLmM6NjMyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzNCBzeXMtdXRpbHMvaXBjcy5jOjY1NworbXNnaWQgIk5vdCBzZXQiCittc2dzdHIgIu7FINXT1MHOz9fMxc4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAizsHazsHexc7JxSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjIKK21zZ2lkICJsb2NrZWQiCittc2dzdHIgItrBwszPy8nSz9fBziIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgItHE0s8gzsUgzsHT1NLPxc7PIM7BIMnT0M/M2NrP18HOycUg08XNwcbP0s/XXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDw0sXExczZINPFzcHGz9LP1yAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgIs3By9PJzcHM2M7PxSDLz8zJ3sXT1NfPIM3B09PJ18/XID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAizcHL08nN1c0g08XNwcbP0s/XIM7BIM3B09PJ1yA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAizcHL08nN1c0g08XNwcbP0s/XIM7BINfTwCDTydPUxc3VID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG9wcyBwZXIgc2Vtb3AgY2FsbCA9ICVkXG4iCittc2dzdHIgIs3By9PJzdXNIM/QxdLBw8nKIM7BINfZ2s/XINPFzcHGz9LBID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VtYXBob3JlIG1heCB2YWx1ZSA9ICVkXG4iCittc2dzdHIgIs3By9PJzcHM2M7PxSDazsHexc7JxSDTxc3Bxs/SwSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDzz9PUz9HOycUg08XNwcbP0sEgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBhcnJheXMgPSAlZFxuIgorbXNnc3RyICLJ09DPzNjaz9fBzs8gzcHT08nXz9cgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgc2VtYXBob3JlcyA9ICVkXG4iCittc2dzdHIgItfZxMXMxc7PINPFzcHGz9LP1yA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g88/axMHUxczJL9fMwcTFzNjD2SDNwdPTydfP1yDTxc3Bxs/Sz9cgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAic2VtaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIOvPzMnexdPU188gz9DF0sHDycovydrNxc7FzsnKINPP180uIMnT0C4g0MHN0dTJIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1vcCIKK21zZ3N0ciAi0M/TzMXEztHRIM/QxdLBw8nRIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3QtY2hhbmdlZCIKK21zZ3N0ciAi0M/TzMXEzsXFIMnazcXOxc7JxSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIO3B09PJ19kg08XNwcbP0s/XIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAibnNlbXMiCittc2dzdHIgIm5zZW1zIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIG1lc3NhZ2UgcXVldWVzXG4iCittc2dzdHIgItHE0s8gzsUgzsHT1NLPxc7PIM7BIMnT0M/M2NrP18HOycUgz97F0sXEySDTz8/C3cXOycpcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIPPPz8Ldxc7J0Tog8NLFxMXM2SAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggcXVldWVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAizcHL08nN1c0gz97F0sXExcogxMzRINfTxcog08nT1MXN2SA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzaXplIG9mIG1lc3NhZ2UgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgIs3By9PJzcHM2M7ZyiDSwdrNxdIg08/Pwt3FzsnRICjCwcrUKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgImRlZmF1bHQgbWF4IHNpemUgb2YgcXVldWUgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgIs3By9PJzcHM2M7ZyiDQzyDVzc/M3sHOycAg0sHazcXSINPPz8Ldxc7J0SAowsHK1CkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g88/Pwt3FzsnROiDzz9PUz9HOycUtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OAorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgcXVldWVzID0gJWRcbiIKK21zZ3N0ciAi19nExczFzs8gz97F0sXExcogPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGhlYWRlcnMgPSAlZFxuIgorbXNnc3RyICLJ09DPzNjaz9fBzs8g2sHHz8zP18vP1yA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIgorbXNnc3RyICLJ09DPzNjaz9fBzs8g0NLP09TSwc7T1NfBID0gJWQgwsHK1FxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXM6IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g797F0sXEySDTz8/C3cXOyco6IPPP2sTB1MXMyS/XzMHExczYw9ktLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUxMiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorIzogc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJtc3FpZCIKK21zZ3N0ciAibXNxaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBTZW5kL1JlY3YvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0g68/Myd7F09TXzyDP1NDSwdfMxc7Jyi/Q0snFzcEvydrNxc7FzsnKIM/exdLFxMkg08/Pwt3FzsnKIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAic2VuZCIKK21zZ3N0ciAiz9TQ0sHXzMXOzyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJyZWN2IgorbXNnc3RyICLQ0snO0dTPIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgImNoYW5nZSIKK21zZ3N0ciAiydrNxc7Fzs8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBQSURzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBQSUQn2SDP3sXSxcTJINPPz8Ldxc7JyiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICJsc3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAibHJwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g797F0sXEySDTz8/C3cXOycogLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJ1c2VkLWJ5dGVzIgorbXNnc3RyICLJ09AuIMLBytTZIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgIm1lc3NhZ2VzIgorbXNnc3RyICLTz8/C3cXOydEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTg5CisjLCBmdXp6eQorbXNnaWQgInNobWN0bCBmYWlsZWQiCittc2dzdHIgImZzeW5jINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTaGFyZWQgbWVtb3J5IFNlZ21lbnQgc2htaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIvPFx83FztQg08/XzS4gydPQLiDQwc3R1Mkgc2htaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKK21zZ3N0ciAi0sXWyc09JSNvXHTQ0sHXwV/Ez9PU1dDBPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcz0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKK21zZ3N0ciAiwsHK1Nk9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgImF0dF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgItfSxc3RX9DPxMvMPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImRldF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgItfSxc3RX8/Uy8w9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDMgc3lzLXV0aWxzL2lwY3MuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hhbmdlX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAi19LFzdFfydrNxc49JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTUKKyMsIGZ1enp5Cittc2dpZCAibXNnY3RsIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk1lc3NhZ2UgUXVldWUgbXNxaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIu/exdLFxNgg08/Pwt3FzsnKIG1zcWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRtb2RlPSUjb1xuIgorbXNnc3RyICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx00sXWyc09JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKK21zZ3N0ciAiYy3CwcrU2T0lbGRcdHEtwsHK1Nk9JWxkXHRxLc7PzcXSPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICLX0sXN0V/P1NDSwdfLyT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICLX0sXN0V/Qz8zV3sXOydE9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKKyMsIGZ1enp5Cittc2dpZCAic2VtY3RsIGZhaWxlZCIKK21zZ3N0ciAi0M/J08sg2sHXxdLbyczT0SDOxdXEwd7FyiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisi7cHT08nXINPFzcHGz9LP1yBzZW1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICLSxdbJzT0lI28sINDSwdfBX8TP09TV0ME9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgIsst189f08XNID0gJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm90aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAi19LFzdFfz9DF0iA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImN0aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAi19LFzdFfydrNPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAi3snTzM8g08XNwcbP0s/XIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInZhbHVlIgorbXNnc3RyICLazsHexc7JxSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJuY291bnQiCittc2dzdHIgIm5jb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ6Y291bnQiCittc2dzdHIgInpjb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJwaWQiCittc2dzdHIgInBpZCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjkxCittc2dpZCAiIgorIlxuIgorIktub3duIDxsZGlzYz4gbmFtZXM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHNwZWVkOiAlcyIKK21zZ3N0ciAizsXXxdLO2cogaWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGRhdHRhY2ggZnJvbSAlc1xuIgorbXNnc3RyICIlcyDJ2iAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxODQgdGV4dC11dGlscy90YWlsZi5jOjIwNgorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAizsXXxdLO2cogaWQiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBsaW5lIGRpc2NpcGxpbmU6ICVzIgorbXNnc3RyICLOxdfF0s7ZyiBpZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiJXMgzsUg0dfM0cXU09Egz9PPwtnNIMLMz97O2c0g1dPU0s/K09TXz80iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAizsXXz9rNz9bOzyDQz8zV3snU2CDSwdrNxdIgJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIs7F18/azc/Wzs8g0M/M1d7J1Ngg0sHazcXSICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgIu7F18/azc/Wzs8gzsHK1MkgzsEgxMnTy8/Xz80gzsHLz9DJ1MXMxSIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3CisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCBkYWVtb25pemUiCittc2dzdHIgIs7F18/azc/Wzs8g0M/M1d7J1Ngg0sHazcXSICVzIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NAorIywgZnV6enkKK21zZ2lkICJub25lIgorbXNnc3RyICLuxdQiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1Cittc2dpZCAicGFyYSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NgorbXNnaWQgImZ1bGwiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTM3IHN5cy11dGlscy9sc2NwdS5jOjE2MCBzeXMtdXRpbHMvbHNjcHUuYzo0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlcyIKK21zZ3N0ciAi79vJwsvBIFJFOiAiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcGFyc2U6ICVzIgorbXNnc3RyICLP28nCy8Eg3tTFzsnRICVzXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE4NAorIywgZnV6enkKK21zZ2lkICJlcnJvcjogc3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAi79TL0tnUycUgJXMg2sHXxdLbyczP09ggzsXVxMHexcoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjI2NworIywgZnV6enkKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICIiCisiXG4iCisi79vJwsvBINrBy9LZ1MnRIMbByszBXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorIywgZnV6enkKK21zZ2lkICJlcnJvcjogbWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXJcbiIKKyIjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElEXG4iCisiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisiIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKK21zZ2lkICJDUFUgb3AtbW9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI1Cittc2dpZCAiVGhyZWFkKHMpIHBlciBjb3JlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzUKK21zZ2lkICJDUFUgZmFtaWx5OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzcKK21zZ2lkICJNb2RlbDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKKyMsIGZ1enp5Cittc2dpZCAiVmlydHVhbGl6YXRpb246IgorbXNnc3RyICLz1MHSwdEg08nU1cHDydE6XG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIunT0M/M2NrP18HOycU6ICVzIFvP0MPJyV0g1dPU0s/K09TXzy4uLlxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjkKK21zZ2lkICIiCisiQ1BVIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBoZWxwZXJcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgIHVzYWdlIGluZm9ybWF0aW9uXG4iCisiICAtcCwgLS1wYXJzZSAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0LlxuIgorIiAgLXMsIC0tc3lzcm9vdCAgdXNlIHRoZSBkaXJlY3RvcnkgYXMgYSBuZXcgc3lzdGVtIHJvb3QuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogY2hhbmdlIHdvcmtpbmcgZGlyZWN0b3J5IHRvICVzLiIKK21zZ3N0ciAiz9vJwsvBINPNxc7ZINLF1snNwSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIiIKKyLJ09DPzNjaz9fBzsnFOiByZGV2IFsgLXJ2IF0gWyAtbyDz7eX95e7p5SBdIFsg7+Ly4fogWyD67uH+5e7p5SAiCisiWyDz7eX95e7p5SBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKyIgIHJkZXYgL2Rldi9mZDAgICjJzMkgcmRldiAvbGludXggySDULsQuKSDP1M/C0sHWwcXUINTFy9XdxcUg1dPU0s/K09TXzyBST09UIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc5Cittc2dpZCAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHNldHMgUk9PVCB0byAvZGV2L2hkYTIiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICDV09TBzsHXzMnXwcXUIFJPT1Qg1yAvZGV2L2hkYTIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODAKK21zZ2lkICIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBST09URkxBR1MgKHJlYWRvbmx5IHN0YXR1cykiCittc2dzdHIgIiIKKyIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAg1dPUwc7P18vBIFJPT1RGTEFHUyAo09TB1NXTINTPzNjLzyDEzNEgIgorIt7Uxc7J0SkiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODEKK21zZ2lkICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiCittc2dzdHIgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICDV09TBzs/Xy8Eg0sHazcXSwSBSQU1ESVNLIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgyCittc2dpZCAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgYm9vdHVwIFZJREVPTU9ERSIKK21zZ3N0ciAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgINXT1MHOz9fLwSBWSURFT01PREUg2sHQ1dPLwSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICDJ09DPzNjaz9fBzsnFINPNxd3FzsnRIMLBytTP1yBOIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg0Cittc2dpZCAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtUiIKK21zZ3N0ciAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgINTPINbFLCDe1M8gySByZGV2IC1SIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgINTPINbFLCDe1M8gySByZGV2IC1yIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg2Cittc2dpZCAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtdiIKK21zZ3N0ciAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgINTPINbFLCDe1M8gySByZGV2IC12IgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg3Cittc2dpZCAiIgorIk5vdGU6IHZpZGVvIG1vZGVzIGFyZTogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLCAxPWtleTEsIDI9a2V5MiwuLi4iCittc2dzdHIgIiIKKyLw0snNxd7BzsnFOiDXycTFz9LF1snN2TogLTM989DSz9PJ1NgsIC0yPfLB09vJ0sXOztnKLCAtMT3vwtneztnKIFZnYSwgIgorIjE9y8zA3jEsIDI9y8zA3jIsLi4uIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiIKKyIgICAgICDJ09DPzNja1crUxSAtUiAxIMTM0SDNz87UydLP18HOydEgy8/SzsXXz8fPIMvB1MHMz8fBINTPzNjLzyDEzNEgIgorIt7Uxc7J0SwgLVIgMCDEzNEg3tTFzsnRL9rB0MnTyS4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAiz9TT1dTT1NfVxdQg2sHQ0dTB0SIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NzIgdGV4dC11dGlscy9tb3JlLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIm91dCBvZiBtZW1vcnkiCittc2dzdHIgIs7FyNfB1MvBINDBzdHUySIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6IFwiJXMgW29wdGlvbnNdXG4iCisiXHQgLW0gPG1hcGZpbGU+ICAoZGVmYXVsdHM6IFwiJXNcIiBhbmRcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsZT4gKGRlZmF1bHQ6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIgdG8gPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBwcmludCBvbmx5IGluZm8gYWJvdXQgdGhlIHNhbXBsaW5nIHN0ZXBcbiIKKyJcdCAtdiAgICAgICAgICAgIHByaW50IHZlcmJvc2UgZGF0YVxuIgorIlx0IC1hICAgICAgICAgICAgcHJpbnQgYWxsIHN5bWJvbHMsIGV2ZW4gaWYgY291bnQgaXMgMFxuIgorIlx0IC1iICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBoaXN0b2dyYW0tYmluIGNvdW50c1xuIgorIlx0IC1zICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBjb3VudGVycyB3aXRoaW4gZnVuY3Rpb25zXG4iCisiXHQgLXIgICAgICAgICAgICByZXNldCBhbGwgdGhlIGNvdW50ZXJzIChyb290IG9ubHkpXG4iCisiXHQgLW4gICAgICAgICAgICBkaXNhYmxlIGJ5dGUgb3JkZXIgYXV0by1kZXRlY3Rpb25cbiIKKyJcdCAtViAgICAgICAgICAgIHByaW50IHZlcnNpb24gYW5kIGV4aXRcbiIKK21zZ3N0ciAiIgorIiVzOiDp09DPzNjaz9fBzsnFOiBcIiVzIFvP0MPJyV1cbiIKKyJcdCAtbSA8bWFwLcbBysw+ICAo2s7B3sXOydEg0M8g1c3PzN7BzsnAOiBcIiVzXCIgySlcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8txsHKzD4gKNrOwd7FzsnFINDPINXNz8zewc7JwDogXCIlc1wiKVxuIgorIlx0IC1NIDzNzs/WPiAgICAg1dPUwc7P18vBIM3Oz9bJ1MXM0SDQ0s/GyczJ0s/Xwc7J0SDXIDzNzs/WPlxuIgorIlx0IC1pICAgICAgICAgICAg1M/M2MvPINfZ18/EIMnOxs/SzcHDyckgzyDbwcfFIMTJ08vSxdTJ2sHDyclcbiIKKyJcdCAtdiAgICAgICAgICAgINfZ18/EINDPxNLPws7PyiDJzsbP0s3Bw8nJXG4iCisiXHQgLWEgICAgICAgICAgICDX2dfPxCDX08XIINPJzdfPzM/XLCDEwdbFIMXTzMkgycgg3snTzM8gzsXO1czF18/FXG4iCisiXHQgLWIgICAgICAgICAgICDX2dfPxCDJzsTJ18nE1cHM2M7ZyCDT3sXU3snLz9cgaGlzdG9ncmFtLWJpblxuIgorIlx0IC1zICAgICAgICAgICAg19nXz8Qgyc7EydfJxNXBzNjO2cgg097F1N7Jy8/XINfO1dTSySDG1c7Lw8nKXG4iCisiXHQgLXIgICAgICAgICAgICDTwtLP0yDX08XIINPexdTeycvP1yAo1M/M2MvPIHJvb3QpXG4iCisiXHQgLW4gICAgICAgICAgICDP1MvMwN7FzsnFIMHX1M/P0NLFxMXMxc7J0SDQz9LRxMvBIMLBytTP11xuIgorIlx0IC1WICAgICAgICAgICAg19nXz8Qgzs/NxdLBINfF0tPJySDX2cjPxFxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJtb3VudDogz9vJwsvBINrB0MnTySAlczogJXMiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyByZXZlcnNlZCBieXRlIG9yZGVyLiBVc2UgLW4gdG8gZm9yY2UgbmF0aXZlIGJ5dGUgb3JkZXIuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6Mjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCittc2dzdHIgIvvBx1/EydPL0sXUydrBw8nJOiAlaVxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMDUgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyglaSk6IHdyb25nIG1hcCBsaW5lXG4iCittc2dzdHIgIiVzOiAlcyglaSk6IM7F18XSzsHRINPU0s/LwSBtYXBcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIFwiX3N0ZXh0XCIgaW4gJXNcbiIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8gzsHK1MkgXCJfc3RleHRcIiDXICVzXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcHJvZmlsZSBhZGRyZXNzIG91dCBvZiByYW5nZS4gV3JvbmcgbWFwIGZpbGU/XG4iCittc2dzdHIgIiVzOiDBxNLF0yBwcm9maWxlINrBINDSxcTFzMHNySDEycHQwdrPzsEuIO7F18XSztnKIMbByswgbWFwP1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo0MTIKK21zZ2lkICJ0b3RhbCIKK21zZ3N0ciAi19PFx88iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5IFstcHwtLXBpZF0gcGlkICBbLi4uIHBpZF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC1nfC0tcGdycCBwZ3JwIFsuLi4gcGdycF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC11fC0tdXNlciB1c2VyIFsuLi4gdXNlcl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgydogJXNcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiB1bmtub3duIHVzZXJcbiIKK21zZ3N0ciAicmVuaWNlOiAlczogzsXJ2tfF09TO2cog0M/M2NrP18HUxczYXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IM7F18XSzs/FINrOwd7FzsnFXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6INPUwdLZyiDQ0snP0snUxdQgJWQsIM7P19nKINDSyc/SydTF1CAlZFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgW29wdGlvbnNdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGRldmljZT4gICAgc2VsZWN0IHJ0YyBkZXZpY2UgKHJ0YzB8cnRjMXwuLi4pXG4iCisiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIHVzZXMgbG9jYWwgdGltZXpvbmVcbiIKKyIgICAgLW0gfCAtLW1vZGUgICAgICAgICAgICAgICBzdGFuZGJ5fG1lbXwuLi4gc2xlZXAgbW9kZVxuIgorIiAgICAtcyB8IC0tc2Vjb25kcyA8c2Vjb25kcz4gIHNlY29uZHMgdG8gc2xlZXBcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB0aW1lIHRvIHdha2VcbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBSVEMgdXNlcyBVVENcbiIKKyIgICAgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICB2ZXJib3NlIG1lc3NhZ2VzXG4iCisiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgc2hvdyB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDIKK21zZ2lkICJyZWFkIHJ0YyB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQ3Cittc2dpZCAicmVhZCBzeXN0ZW0gdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE2NQorbXNnaWQgImNvbnZlcnQgcnRjIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjQKK21zZ2lkICJzZXQgcnRjIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI4Cittc2dpZCAiZW5hYmxlIHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIzMgorbXNnaWQgInNldCBydGMgd2FrZSBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVucmVjb2duaXplZCBzdXNwZW5kIHN0YXRlICclcydcbiIKK21zZ3N0ciAiICVzOiDOxdLB09DP2s7Bzs7ZyiDUydAg1MHCzMnD2SDSwdrExczP11xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICIlczogzsXXxdLO2cogy8zA3iAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCB0aW1lX3QgdmFsdWUgJXNcbiIKK21zZ3N0ciAiJXM6IM7F18XSzsHRIM/Qw8nRIC0tICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIlcyDOwSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAi6dPQz8zY2tXF1NPRICVzLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgbG9jYWwgdGltZS5cbiIKK21zZ3N0ciAi6dPQz8zY2tXF1NPRICVzLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3CisjLCBmdXp6eQorbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jINrB18XS28nM09EgzsXVxMHexcoiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGVuYWJsZWQgZm9yIHdha2V1cCBldmVudHNcbiIKK21zZ3N0ciAiJXM6ICVzIM7FIGxwLdXT1NLPytPU188uXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGltZSBkb2Vzbid0IGdvIGJhY2t3YXJkIHRvICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWtldXAgZnJvbSBcIiVzXCIgdXNpbmcgJXMgYXQgJXNcbiIKK21zZ3N0ciAi88/Pwt3FzsnFIM/UICVzQCVzIM7BICVzINcgJXMgLi4uIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICLOxdfP2s3P1s7PINDF0sXJzcXOz9fB1NggJXMg1yAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0OTYKKyMsIGZ1enp5Cittc2dpZCAicnRjIHJlYWQiCittc2dzdHIgIiwgx8/Uz9ciCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NTA1Cittc2dpZCAiZGlzYWJsZSBydGMgYWxhcm0gaW50ZXJydXB0IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dpdGNoaW5nIG9uICVzLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMlcyBbb3B0aW9uc10gW3Byb2dyYW0gW3Byb2dyYW0gYXJndW1lbnRzXV1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBzYXlzIHdoYXQgb3B0aW9ucyBhcmUgYmVpbmcgc3dpdGNoZWQgb25cbiIKKyIgLVIsIC0tYWRkci1uby1yYW5kb21pemUgIGRpc2FibGVzIHJhbmRvbWl6YXRpb24gb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyAiCisic3BhY2VcbiIKKyIgLUYsIC0tZmRwaWMtZnVuY3B0cnMgICAgIG1ha2VzIGZ1bmN0aW9uIHBvaW50ZXJzIHBvaW50IHRvIGRlc2NyaXB0b3JzXG4iCisiIC1aLCAtLW1tYXAtcGFnZS16ZXJvICAgICB0dXJucyBvbiBNTUFQX1BBR0VfWkVST1xuIgorIiAtTCwgLS1hZGRyLWNvbXBhdC1sYXlvdXQgY2hhbmdlcyB0aGUgd2F5IHZpcnR1YWwgbWVtb3J5IGlzIGFsbG9jYXRlZFxuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgdHVybnMgb24gUkVBRF9JTVBMSUVTX0VYRUNcbiIKKyIgLUIsIC0tMzJiaXQgICAgICAgICAgICAgIHR1cm5zIG9uIEFERFJfTElNSVRfMzJCSVRcbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgIHR1cm5zIG9uIFNIT1JUX0lOT0RFXG4iCisiIC1TLCAtLXdob2xlLXNlY29uZHMgICAgICB0dXJucyBvbiBXSE9MRV9TRUNPTkRTXG4iCisiIC1ULCAtLXN0aWNreS10aW1lb3V0cyAgICB0dXJucyBvbiBTVElDS1lfVElNRU9VVFNcbiIKKyIgLTMsIC0tM2diICAgICAgICAgICAgICAgIGxpbWl0cyB0aGUgdXNlZCBhZGRyZXNzIHNwYWNlIHRvIGEgbWF4aW11bSBvZiAzICIKKyJHQlxuIgorIiAgICAgLS00Z2IgICAgICAgICAgICAgICAgaWdub3JlZCAoZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seSlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHNldGFyY2goOCkuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxNDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJXNcbiIKKyJUcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIvDP0NLPwtXK1MUgYGdldG9wdCAtLWhlbHAnIMTM0SDQz8zV3sXOydEgxM/Qz8zOydTFzNjOz8ogyc7Gz9LNwcPJyS5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyMTUgc3lzLXV0aWxzL3NldGFyY2guYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIgJXM6IM7F0sHT0M/azsHOztnKINTJ0CDUwcLMycPZINLB2sTFzM/XXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2CisjLCBmdXp6eQorbXNnaWQgIk5vdCBlbm91Z2ggYXJndW1lbnRzIgorbXNnc3RyICLOxcjXwdTLwSDQwc3R1MkiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjY1IHN5cy11dGlscy9zZXRhcmNoLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gc2V0IHBlcnNvbmFsaXR5IHRvICVzIgorbXNnc3RyICLv28nCy8Eg2sHQydPJINLB2sTFzMEgzsEgJXNcbiIKKworIzogc3lzLXV0aWxzL3NldHNpZC5jOjI2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBwcm9ncmFtIFthcmcgLi4uXVxuIgorbXNnc3RyICLJ09DPzNjaz9fBzsnFOiAlcyDQ0s/H0sHNzcEgW8HSx9XNxc7UIC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKyLp09DPzNjaz9fBzsnFOiAlcyA81dPU0s/K09TXzz4gWyAtaSA88PLl8vn34e7p5T4gfCAtdCA89/Ll7fE+IHwgLWMgPPPp7ffv7Pk+ICIKKyJ8IC13IDzv9unk4e7p5T4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo5MQorbXNnaWQgIm1hbGxvYyBlcnJvciIKK21zZ3N0ciAiz9vJwsvBIG1hbGxvYyIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiVzOiDOxdfF0s7PxSDazsHexc7JxVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgYW4gbHAgZGV2aWNlLlxuIgorbXNnc3RyICIlczogJXMgzsUgbHAt1dPU0s/K09TXzy5cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdGF0dXMgaXMgJWQiCittc2dzdHIgIiVzINPP09TP0c7JxSAtICVkIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgYnVzeSIKK21zZ3N0ciAiLCDawc7R1CIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHJlYWR5IgorbXNnc3RyICIsIMfP1M/XIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb3V0IG9mIHBhcGVyIgorbXNnc3RyICIsIM7F1CDC1c3Bx8kiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvbi1saW5lIgorbXNnc3RyICIsIM/OzMHKziIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGVycm9yIgorbXNnc3RyICIsIM/bycLLwSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI4NQorbXNnaWQgIkxQR0VUSVJRIGVycm9yIgorbXNnc3RyICLP28nCy8EgTFBHRVRJUlEiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgSVJRICVkXG4iCittc2dzdHIgIiVzIMnT0M/M2NrVxdQg0NLF0tnXwc7JxSAlZFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMgydPQz8zY2tXF1CDP0NLP01xuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIDxwcm9ncmFtPiBbYXJncy4uLl1cbiIKK21zZ3N0ciAiydPQz8zY2s/Xwc7JxTogJXMg0NLPx9LBzc3BIFvB0sfVzcXO1CAuLi5dXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjAKK21zZ2lkICIiCisiUnVuIHByb2dyYW0gd2l0aCBzb21lIG5hbWVzcGFjZXMgdW5zaGFyZWQgZnJvbSBwYXJlbnRcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgdW5zaGFyZSBtb3VudHMgbmFtZXNwYWNlXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIFVUUyBuYW1lc3BhY2UgKGhvc3RuYW1lIGV0YylcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorIiAgLW4sIC0tbmV0ICAgICAgICAgdW5zaGFyZSBuZXR3b3JrIG5hbWVzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdW5zaGFyZSgxKS5cbiIKK21zZ3N0ciAi6c7Gz9LNwcPJ0SBmaW5nZXIgydrNxc7FzsEuXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE0CisjLCBmdXp6eQorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICLQz8nTyyDawdfF0tvJzNPRIM7F1cTB3sXKIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXhlYyAlcyBmYWlsZWQiCittc2dzdHIgItfZ0M/MzsXOycUg2sHXxdLbyczP09ggzsXVxMHexcpcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgImNvbDogzsXXxdLO2cogwdLH1c3FztQgLWwgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmVdXG4iCittc2dzdHIgIsnT0M/M2NrP18HOycU6IGNvbCBbLWJmcHhdIFstbCDLz8wt189f09TSz8tdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd3JpdGUgZXJyb3IuXG4iCittc2dzdHIgImNvbDogz9vJwsvBINrB0MnTyS5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6INDSxcTV0NLF1sTFzsnFOiDOxdfP2s3P1s7PINDPxMTF0tbB1NggJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAicGFzdCBmaXJzdCBsaW5lIgorbXNnc3RyICLQz9PMxcTO0dEg0MXS18HRINPU0s/LwSIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0g09TSz8vBINXWxSDX2dLP187FzsEiCisKKyM6IHRleHQtdXRpbHMvY29sY3J0LmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLSBdIFsgLTIgXSBbIGZpbGUgLi4uIF1cbiIKK21zZ3N0ciAiydPQz8zY2s/Xwc7JxTogJXMgWyAtIF0gWyAtMiBdIFsgxsHKzCAuLi4gXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgItPU0s/LwSDTzMnby8/NIMTMyc7OwdEiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiydPQz8zY2s/Xwc7JxTogY29sdW1uIFstdHhdIFstYyDT1M/MwsPZXSBbxsHKzCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogzsXXxdLOz8Ug2s7B3sXOycUgxMzJztkuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IM7F18XSzs/FINrOwd7FzsnFINDSz9DV08vBLlxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbGVdIFstbiBsZW5ndGhdIFstcyBza2lwXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSDT1NLPy8Ffxs/SzcHUwV0gWy1mIMbBysxfxs/SzcHUwV0gWy1uIMTMyc7BXSBbLXMgIgorItDSz9DV08tdIFvGwcrMIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgIiIKKyLJ09DPzNjaz9fBzsnFOiAlcyBbLWRmbHBjc3VdIFsrzs/NxdJf09TSz8vJIHwgKy/bwcLMz85dIMnN0TEgyc3RMiAuLi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICLuxdfP2s3P1s7PINfZxMXMydTYIMLVxsXSLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gb3B0aW9uIFwiLSVjXCJcbiIKK21zZ3N0ciAiJXM6IM7FydrXxdPUzsHRIM/Qw8nRIFwiLSVjXCJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczogy8HUwczPxyAqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKioqKioqKiAlczogTm90IGEgdGV4dCBmaWxlICoqKioqKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKioqKioqKiAlczog7sUg1MXL09TP19nKIMbByswgKioqKioqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIltVc2UgcSBvciBRIHRvIHF1aXRdIgorbXNnc3RyICJb6dPQz8zY2tXK1MUgcSDJzMkgb3IgUSDEzNEg19nIz8TBXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tTW9yZS0tIgorbXNnc3RyICItLeTBzMXFLS0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICIoTmV4dCBmaWxlOiAlcykiCittc2dzdHIgIijzzMXE1cDdycogxsHKzDogJXMpIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzIHNwYWNlIHRvIGNvbnRpbnVlLCAncScgdG8gcXVpdC5dIgorbXNnc3RyICJb7sHWzcnUxSDQ0s/CxcwgxMzRINDSz8TPzNbFzsnRLCAncScgxMzRINfZyM/EwS5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmJhY2sgJWQgcGFnZXMiCittc2dzdHIgIi4uLs7B2sHEIM7BICVkINPU0sHOycMiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiLi4uzsHawcQgzsEgMSDT1NLBzsnD1SIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICIuLi7Q0s/Q1dPLwcXU09Egz8TOwSDT1NLPy8EiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc2tpcHBpbmcgJWQgbGluZXMiCittc2dzdHIgIi4uLtDSz9DV08vBxdTT0SAlZCDT1NLPyyIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI5MAorbXNnaWQgIiIKKyJcbiIKKyIqKipCYWNrKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKiruwdrBxCoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzI4Cittc2dpZCAiIgorIlxuIgorIk1vc3QgY29tbWFuZHMgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBpbnRlZ2VyIGFyZ3VtZW50IGsuICBEZWZhdWx0cyBpbiAiCisiYnJhY2tldHMuXG4iCisiU3RhciAoKikgaW5kaWNhdGVzIGFyZ3VtZW50IGJlY29tZXMgbmV3IGRlZmF1bHQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLiz8zY28nO09TX1SDLz83BzsQgz9DDyc/OwczYzs8g0NLFxNvF09TX1cXUIN7J08zP18/KIMHSx9XNxc7UIGsuIPrOwd7FzsnRINDPICIKKyLVzc/M3sHOycAg1yDLwdfZ3svByC5cbiIKKyL618XaxM/ey8EgKCopIM/azsHewcXULCDe1M8gwdLH1c3FztQg09TBzs/XydTT0SDOz9fZzSDazsHexc7Jxc0g0M8gIgorItXNz8zewc7JwC5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMzNQorbXNnaWQgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIKK21zZ3N0ciAiIgorIjzQ0s/Cxcw+ICAgICAgICAgICAgICAgIPfZ18/EINPMxcTVwN3JyCBrINPU0s/LINTFy9PUwSBb1MXL1d3JyiDSwdrNxdIgIgorItzL0sHOwV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICD32dfPxCDTzMXE1cDdycggayDT1NLPyyDUxcvT1MEgW9TFy9Xdycog0sHazcXSICIKKyLcy9LBzsFdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIPfZ18/EINPMxcTVwN3JyCBrINPU0s/LINTFy9PUwSBbMV0qXG4iCisiZCDJzMkgY3RybC1EICAgICAgICAgICAg8NLPy9LV1MvBIGsg09TSz8sgW9TFy9XdxcUg2s7B3sXOycUg0NLPy9LV1MvJLCAiCisiydrOwd7BzNjOzyAxMV0qXG4iCisicSDJzMkgUSDJzMkgPNDSxdLZ1y4+ICAg99nIz8QgydogbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIPDSz9DV08sg19DF0sXEIGsg09TSz8sg1MXL09TBIFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIPDSz9DV08sg19DF0sXEIGsg0M/MztnIINzL0sHOz9cg1MXL09TBIFsxXVxuIgorImIgyczJIGN0cmwtQiAgICAgICAgICAgIPDSz9DV08sgzsHawcQgayDQz8zO2cgg3MvSwc7P1yDUxcvT1MEgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAg8MXSxcjPxCDXIM3F09TPLCDTIMvP1M/Sz8fPIMLZzCDOwd7B1CDQ0sXE2cTV3cnKICIKKyLQz8nTy1xuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIO/Uz8LSwdbFzsnFIM7PzcXSwSDUxcvV3cXKINPU0s/LyVxuIgorIi880sXH1czR0s7PxSDX2dLB1sXOycU+IPDPydPLIGstx88g18jP1sTFzsnRINLFx9XM0dLOz8fPINfZ0sHWxc7J0SBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICDwz8nTyyBrLcfPINfIz9bExc7J0SDQz9PMxcTOxcfPINIu1y4gWzFdXG4iCisiITxjbWQ+IMnMySA6ITxjbWQ+ICAgICAg99nQz8zOxc7JxSA8Y21kPiDXINPVwi3bxczMxVxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIPrB0NXTyyAvdXNyL2Jpbi92aSDTINTFy9Xdxcog09TSz8vJXG4iCisiY3RybC1MICAgICAgICAgICAgICAgICAg8MXSxdLJ08/X2dfBzsnFINzL0sHOwVxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIPDF0sXIz8QgyyBrLc3VINPMxcTVwN3FzdUgxsHKzNUgWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAg8MXSxcjPxCDLIGstzdUg0NLFxNnE1d3FzdUgxsHKzNUgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAg79TPwtLB1sXOycUgyc3Fzskg1MXL1d3Fx88gxsHKzMEgySDOz83F0sEg09TSz8vJXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAg8M/X1M/Sxc7JxSDQ0sXE2cTV3cXKIMvPzcHOxNlcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQwNCB0ZXh0LXV0aWxzL21vcmUuYzoxNDA5CisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyAnaCcgZm9yIGluc3RydWN0aW9ucy5dIgorbXNnc3RyICJb7sHWzcnUxSAnaCcgxMzRINDPzNXexc7J0SDJztPU0tXLw8nKLl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIlwiJXNcIiDT1NLPy8EgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW05vdCBhIGZpbGVdIGxpbmUgJWQiCittc2dzdHIgIlvuxSDGwcrMXSDT1NLPy8EgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiAg8MXSxdDPzM7FzsnFXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIuLi7Q0s/Q1dPLwcXU09FcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYwNQorbXNnaWQgIlJlZ3VsYXIgZXhwcmVzc2lvbiBib3RjaCIKK21zZ3N0ciAi7sXLz9LSxcvUzs/FINLFx9XM0dLOz8Ug19nSwdbFzsnFIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjEzCittc2dpZCAiIgorIlxuIgorIlBhdHRlcm4gbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKyJcbiIKKyL7wcLMz84gzsUgzsHKxMXOXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAi+8HCzM/OIM7FIM7BysTFziIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTY3NworbXNnaWQgImNhbid0IGZvcmtcbiIKK21zZ3N0ciAizsXXz9rNz9bOzyDTz9rEwdTYIMTP3sXSzsnKINDSz8PF09NcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKyJcbiIKKyIuLi7w0s/Q1dPLwcXU09EgIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIwCittc2dpZCAiLi4uU2tpcHBpbmcgdG8gZmlsZSAiCittc2dzdHIgIi4uLvDSz9DV08vBxdTT0SDEzyDGwcrMwSAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjIKK21zZ2lkICIuLi5Ta2lwcGluZyBiYWNrIHRvIGZpbGUgIgorbXNnc3RyICIuLi7w0s/Q1dPLwcXU09Egz8LSwdTOzyDEzyDGwcrMwSAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMDAKK21zZ2lkICJMaW5lIHRvbyBsb25nIgorbXNnc3RyICLz1NLPy8Eg08zJ28vPzSDEzMnOzsHRIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDQzCittc2dpZCAiTm8gcHJldmlvdXMgY29tbWFuZCB0byBzdWJzdGl0dXRlIGZvciIKK21zZ3N0ciAi7sXUINDSxcTZxNXdxcogy8/Nwc7E2SDEzNEg2sHNxc7ZIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBvZCgxKSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciBoZXhkdW1wKDEpLlxuIgorbXNnc3RyICJvZDogb2QoMSkgy9LBys7FIM7FINLFy8/Nxc7E1cXU09EgxMzRIGhleGR1bXAoMSkuXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IGhleGR1bXAoMSkgY29tcGF0aWJpbGl0eSBkb2Vzbid0IHN1cHBvcnQgdGhlIC0lYyBvcHRpb24lc1xuIgorbXNnc3RyICJvZDog08/XzcXT1MnNz9PU2CBoZXhkdW1wKDEpIM7FINDPxMTF0tbJ18HF1CAtJWMgz9DDycAgJXNcbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzNAorbXNnaWQgIjsgc2VlIHN0cmluZ3MoMSkuIgorbXNnc3RyICI7INPNz9TSySBzdHJpbmdzKDEpLiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IM7F18/azc/Wzs8g0NLP3snUwdTYICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDog09TSz8vBINPMydvLz80gxMzJzs7B0S5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICJoZXhkdW1wOiDeydPMzyDCwcrUINMgzc7Px8/eydPMxc7O2c3JINPJzdfPzMHNySDQ0sXPwtLB2s/Xwc7J0S5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgYnl0ZSBjb3VudCBmb3IgY29udmVyc2lvbiBjaGFyYWN0ZXIgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IM7F18XSzs/FIN7J08zPIMLBytQgxMzRINPJzdfPzMEg0NLFz8LSwdrP18HOydEgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogJSVzIHJlcXVpcmVzIGEgcHJlY2lzaW9uIG9yIGEgYnl0ZSBjb3VudC5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogxMzRICUlcyDU0sXC1cXU09Eg1M/ezs/T1NggyczJIN7J08zPIMLBytQuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGZvcm1hdCB7JXN9XG4iCittc2dzdHIgImhleGR1bXA6IM7F18XSztnKIMbP0s3B1CB7JXN9XG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iCittc2dzdHIgImhleGR1bXA6IM7F18XSztnKINPJzdfPzCDQ0sXPwtLB2s/Xwc7J0SAlJSVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ1Cittc2dpZCAiIgorIkFsbCByaWdodHMgcmVzZXJ2ZWQuXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIiAgaCAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBzY3JlZW5cbiIKKyIgIHEgb3IgUSAgICAgICAgICAgICAgICAgIHF1aXQgcHJvZ3JhbVxuIgorIiAgPG5ld2xpbmU+ICAgICAgICAgICAgICAgbmV4dCBwYWdlXG4iCisiICBmICAgICAgICAgICAgICAgICAgICAgICBza2lwIGEgcGFnZSBmb3J3YXJkXG4iCisiICBkIG9yIF5EICAgICAgICAgICAgICAgICBuZXh0IGhhbGZwYWdlXG4iCisiICBsICAgICAgICAgICAgICAgICAgICAgICBuZXh0IGxpbmVcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgcGFnZVxuIgorIiAgL3JlZ2V4LyAgICAgICAgICAgICAgICAgc2VhcmNoIGZvcndhcmQgZm9yIHJlZ2V4XG4iCisiICA/cmVnZXg/IG9yIF5yZWdleF4gICAgICBzZWFyY2ggYmFja3dhcmQgZm9yIHJlZ2V4XG4iCisiICAuIG9yIF5MICAgICAgICAgICAgICAgICByZWRyYXcgc2NyZWVuXG4iCisiICB3IG9yIHogICAgICAgICAgICAgICAgICBzZXQgcGFnZSBzaXplIGFuZCBnbyB0byBuZXh0IHBhZ2VcbiIKKyIgIHMgZmlsZW5hbWUgICAgICAgICAgICAgIHNhdmUgY3VycmVudCBmaWxlIHRvIGZpbGVuYW1lXG4iCisiICAhY29tbWFuZCAgICAgICAgICAgICAgICBzaGVsbCBlc2NhcGVcbiIKKyIgIHAgICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIHByZXZpb3VzIGZpbGVcbiIKKyIgIG4gICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIG5leHQgZmlsZVxuIgorIlxuIgorIk1hbnkgY29tbWFuZHMgYWNjZXB0IHByZWNlZGluZyBudW1iZXJzLCBmb3IgZXhhbXBsZTpcbiIKKyIrMTxuZXdsaW5lPiAobmV4dCBwYWdlKTsgLTE8bmV3bGluZT4gKHByZXZpb3VzIHBhZ2UpOyAxPG5ld2xpbmU+IChmaXJzdCAiCisicGFnZSkuXG4iCisiXG4iCisiU2VlIHBnKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAi7sUgyNfB1MHF1CDQwc3R1MkiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKyIlczog6dPQz8zY2s/Xwc7JxTogJXMgWy3eydPMz10gWy1wINPU0s/LwV0gWy1jZWZucnNdIFsr09TSz8vBXSBbKy/bwcLMz84vXSAiCisiW8bByszZXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IMTM0SDP0MPJySDU0sXC1cXU09EgwdLH1c3FztQgLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJXNcbiIKK21zZ3N0ciAiJXM6IM7F18XSzsHRIM/Qw8nRIC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzAKK21zZ2lkICIuLi5za2lwcGluZyBmb3J3YXJkXG4iCittc2dzdHIgIi4uLtDSz9DV08vBxdTT0SDX0MXSxcRcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MgorbXNnaWQgIi4uLnNraXBwaW5nIGJhY2t3YXJkXG4iCittc2dzdHIgIi4uLtDSz9DV08vBxdTT0SDOwdrBxFxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICLuxdQg08zFxNXA3cXHzyDGwcrMwSIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIu7F1CDQ0sXE2cTV3cXHzyDGwcrMwSIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IO/bycLLwSDe1MXOydEgydogxsHKzMEgJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5leHBlY3RlZCBFT0YgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczog7sXP1snEwc7O2cogy8/OxcMgxsHKzMEg1yDGwcrMxSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGVycm9yIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IO7FydrXxdPUzsHRIM/bycLLwSDXIMbByszFICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgY3JlYXRlIHRlbXBmaWxlXG4iCittc2dzdHIgIiVzOiDuxdfP2s3P1s7PINPP2sTB1Ngg19LFzcXOztnKIMbBysxcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwNDQgdGV4dC11dGlscy9wZy5jOjEyMTkgdGV4dC11dGlscy9wZy5jOjEyNDYKK21zZ2lkICJSRSBlcnJvcjogIgorbXNnc3RyICLv28nCy8EgUkU6ICIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMDEKK21zZ2lkICIoRU9GKSIKK21zZ3N0ciAiKMvPzsXDIMbByszBKSIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMjcgdGV4dC11dGlscy9wZy5jOjEyNTQKK21zZ2lkICJObyByZW1lbWJlcmVkIHNlYXJjaCBzdHJpbmciCittc2dzdHIgIu7F1CDawdDPzc7Fzs7ZyCDT1NLPyyDQz8nTy8EiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICLuxdfP2s3P1s7PIM/Uy9LZ1NggIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICLTz8jSwc7FziIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIjogIcvPzcHOxMEgzsUg0sHa0sXbxc7BINcg0sXWyc3FIHJmbGFnLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ5NworbXNnaWQgImZvcmsoKSBmYWlsZWQsIHRyeSBhZ2FpbiBsYXRlclxuIgorbXNnc3RyICJmb3JrKCkg2sHXxdLbyczT0SDOxdXEwd7Fyiwg0M/Q0s/C1crUxSDF3cUg0sHaINDP0M/a1sVcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIijzzMXE1cDdycogxsHKzDogIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjExMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyc3BhY2UiCittc2dzdHIgIu7F18/azc/Wzs8g19nExczJ1NggwtXGxdLOz8Ug0NLP09TSwc7T1NfPXG4iCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiByZXYgW2ZpbGUgLi4uXVxuIgorbXNnc3RyICLJ09DPzNjaz9fBzsnFOiByZXYgW8bByswgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6NTggdGV4dC11dGlscy90YWlsZi5jOjkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiCittc2dzdHIgIu7F18/azc/Wzs8gz9TL0tnU2CBcIiVzXCIgxMzRIN7Uxc7J0VxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgXCIlc1wiIgorbXNnc3RyICLOxdfP2s3P1s7PIM/Q0sXExczJ1Ngg08/T1M/RzsnFINXT1NLPytPU18EgJXMiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5jb21wbGV0ZSB3cml0ZSB0byBcIiVzXCIgKHdyaXR0ZW4gJXpkLCBleHBlY3RlZCAlemQpXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoIChsaW1pdCBvZiBpbm90aWZ5IHdhdGNoZXMgd2FzIHJlYWNoZWQpLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2guIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgcmVhZCBpbm90aWZ5IGV2ZW50cyIKK21zZ3N0ciAiJXM6IM7F18/azc/Wzs8gz9TL0tnU2CAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgIuvPzMnexdPU188gw8nMyc7E0s/XIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjEwCisjLCBmdXp6eQorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICLT0M/M2NrP18HOycU6IHRhaWxmIGxvZy3GwcrMXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLWkgXSBbIC10VGVybSBdIGZpbGUuLi5cbiIKK21zZ3N0ciAi6dPQz8zY2s/Xwc7JxTogJXMgWyAtaSBdIFsgLXQg1MXSzcnOwcwgXSDGwcrMLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICLQ0s/CzMXNwSDe1MXOydEgdGVybWluZm8iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBlc2NhcGUgc2VxdWVuY2UgaW4gaW5wdXQ6ICVvLCAlb1xuIgorbXNnc3RyICLuxcna18XT1M7B0SBlc2NhcGUt0M/TzMXEz9fB1MXM2M7P09TYINfPINfIz8TO2cggxMHOztnIOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICLuxdfP2s3P1s7PINfZxMXMydTYIMLVxsXSLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIvPU0s/LwSDXyM/EztnIIMTBzs7ZyCDTzMnby8/NIMTMyc7OwdEuXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGVuIGdyb3dpbmcgYnVmZmVyLlxuIgorbXNnc3RyICLuxSDI18HUwcXUINDBzdHUySDQ0skg1dfFzMnexc7JySDC1cbF0sEuXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstYiBTU1pdIFstdV0gRElTSyAgICAgQ2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorI34gIiAgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdIERJU0sgIExpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisjfiAiICAgICAgIGZkaXNrIC1zIFBBUlRJVElPTiAgICAgICAgICAgR2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyN+ICIgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICBHaXZlIGZkaXNrIHZlcnNpb25cbiIKKyN+ICJIZXJlIERJU0sgaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGIgb3IgL2Rldi9zZGFcbiIKKyN+ICJhbmQgUEFSVElUSU9OIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhN1xuIgorI34gIi11OiBnaXZlIFN0YXJ0IGFuZCBFbmQgaW4gc2VjdG9yIChpbnN0ZWFkIG9mIGN5bGluZGVyKSB1bml0c1xuIgorI34gIi1iIDIwNDg6IChmb3IgY2VydGFpbiBNTyBkaXNrcykgdXNlIDIwNDgtYnl0ZSBzZWN0b3JzXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLp09DPzNjaz9fBzsnFOiBmZGlzayBbLWIgU1NaXSBbLXVdIOTp8+sgIOnazcXOxc7JxSDUwcLMycPZINLB2sTFzM/XXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0g5Onz6yAgICAgICDz0MnTz8sg1MHCzMnDKNkpINLB2sTFzM/XXG4iCisjfiAiICAgICAgIGZkaXNrIC1zIPLh+uTl7CAgICAgICAgICAgICAgICAgICD32dfPxCDSwdrNxdLBKM/XKSDSwdrExczBINcgIgorI34gIsLMz8vByFxuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgICAgICAg99nXz8Qg18XS08nJIGZkaXNrXG4iCisjfiAi+sTF09gg5Onz6yAtIN7Uzy3UzyDX0s/ExSAvZGV2L2hkYiDJzMkgL2Rldi9zZGEsXG4iCisjfiAiwSDy4frk5ewgICAtIN7Uzy3UzyDX0s/ExSAvZGV2L2hkYTdcbiIKKyN+ICItdTogz9DSxcTFzNHF1CDuwd7BzM8gySDrz87FwyDXIMXEyc7Jw8HIINPFy9TP0sEgKNfNxdPUzyDDyczJzsTSwSlcbiIKKyN+ICItYiAyMDQ4OiAoxMzRIM7Fy8/Uz9LZyCBNTy3EydPLz9cpIMnT0M/M2NrP18HOycUgMjA0OC3CwcrUz9fZyCDTxcvUz9LP11xuIgorCisjfiBtc2dpZCAiIgorI34gIlVzYWdlOiBmZGlzayBbLWxdIFstYiBTU1pdIFstdV0gZGV2aWNlXG4iCisjfiAiRS5nLjogZmRpc2sgL2Rldi9oZGEgIChmb3IgdGhlIGZpcnN0IElERSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvc2RjICAoZm9yIHRoZSB0aGlyZCBTQ1NJIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9lZGEgIChmb3IgdGhlIGZpcnN0IFBTLzIgRVNESSBkcml2ZSlcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3JkL2MwZDAgIG9yOiBmZGlzayAvZGV2L2lkYS9jMGQwICAoZm9yIFJBSUQgZGV2aWNlcylcbiIKKyN+ICIgIC4uLlxuIgorI34gbXNnc3RyICIiCisjfiAi6dPQz8zY2s/Xwc7JxTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdINXT1NLPytPU189cbiIKKyN+ICLuwdDSLjogZmRpc2sgL2Rldi9oZGEgICjEzNEg0MXS18/HzyBJREUtxMnTy8EpXG4iCisjfiAiICDJzMk6IGZkaXNrIC9kZXYvc2RjICAoxMzRINTSxdTYxcfPIFNDU0ktxMnTy8EpXG4iCisjfiAiICDJzMk6IGZkaXNrIC9kZXYvZWRhICAoxMzRINDF0tfPx88gUFMvMiBFU0RJLcTJ08vBKVxuIgorI34gIiAgyczJOiBmZGlzayAvZGV2L3JkL2MwZDAgIMnMyTogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKMTM0SBSQUlELSIKKyN+ICLV09TSz8rT1NcpXG4iCisjfiAiICAuLi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJUaGUgbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkaXNrIGlzIHNldCB0byAlZC5cbiIKKyN+ICJUaGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggdGhhdCwgYnV0IHRoaXMgaXMgbGFyZ2VyIHRoYW4gMTAyNCxcbiIKKyN+ICJhbmQgY291bGQgaW4gY2VydGFpbiBzZXR1cHMgY2F1c2UgcHJvYmxlbXMgd2l0aDpcbiIKKyN+ICIxKSBzb2Z0d2FyZSB0aGF0IHJ1bnMgYXQgYm9vdCB0aW1lIChlLmcuLCBvbGQgdmVyc2lvbnMgb2YgTElMTylcbiIKKyN+ICIyKSBib290aW5nIGFuZCBwYXJ0aXRpb25pbmcgc29mdHdhcmUgZnJvbSBvdGhlciBPU3NcbiIKKyN+ICIgICAoZS5nLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAi68/Myd7F09TXzyDDyczJzsTSz9cgxMzRINzUz8fPIMTJ08vBINXT1MHOz9fMxc7PINcgJWQuXG4iCisjfiAi8yDc1MnNINfTxSDXINDP0tHEy8UsIM7PINrOwd7FzsnFIMLPzNjbxSwg3sXNIDEwMjQsXG4iCisjfiAiySDXIM/UxMXM2M7ZyCDV09TBzs/Xy8HIIM3Px9XUINfP2s7Jy87V1Ngg0NLPwszFzdkg0zpcbiIKKyN+ICIxKSDQ0s/H0sHNzcHNySwg2sHQ1dPLwcXN2c0g0NLJINrBx9LV2svFICjOwdDSLiwg09TB0tnFINfF0tPJySBMSUxPKVxuIgorI34gIjIpINrBx9LV2svPyiDJINDSz8fSwc3Nwc3JINLB2s3F1MvJIMnaIMTS1cfJyCDv81xuIgorI34gIiAgICjOwdDSLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm91dCBpZiBtZW1vcnkiCisjfiBtc2dzdHIgIs7FyNfB1MvBINDBzdHUySIKKworI34gbXNnaWQgIiMgcGFydGl0aW9uIHRhYmxlIG9mICVzXG4iCisjfiBtc2dzdHIgIiMg1MHCzMnDwSDSwdrExczP1yAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICJ1bml0OiBzZWN0b3JzXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgIiVsbGQgzsXawc7R1NnIINPFy9TP0s/XXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIHN0YXJ0PSU5bHUiCisjfiBtc2dzdHIgIs7B3sHMzyIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAi7cHL0y4g0sHazcXSPSVsZFxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiwgYm9vdGFibGUiCisjfiBtc2dzdHIgIkFJWCDawcfS1drP3s7ZyiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJDbG9jayBpbiBVVEMsIG5vdCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICL7xczMIM7FIMnazcXOo84uXG4iCisKKyN+IG1zZ2lkICIlczogZXJyb3I6IGxhYmVsIG9ubHkgd2l0aCB2MSBzd2FwIGFyZWFcbiIKKyN+IG1zZ3N0ciAiJXM6IM/bycLLwTogzcXUy8Eg1M/M2MvPIM7BINPXz9At0NLP09TSwc7T1NfFIHYxXG4iCisKKyN+IG1zZ2lkICJmYXRhbDogZmlyc3QgcGFnZSB1bnJlYWRhYmxlIgorI34gbXNnc3RyICLI0sXOz9fPOiDQxdLXwdEg09TSwc7Jw8EgzsXeydTBwsXM2M7BIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICIlczogRGV2aWNlICclcycgY29udGFpbnMgYSB2YWxpZCBTdW4gZGlza2xhYmVsLlxuIgorI34gIlRoaXMgcHJvYmFibHkgbWVhbnMgY3JlYXRpbmcgdjAgc3dhcCB3b3VsZCBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlLlxuIgorI34gIk5vIHN3YXAgd2FzIGNyZWF0ZWQuIElmIHlvdSByZWFsbHkgd2FudCB0byBjcmVhdGUgdjAgc3dhcCBvbiB0aGF0ICIKKyN+ICJkZXZpY2UsXG4iCisjfiAidXNlIHRoZSAtZiBvcHRpb24gdG8gZm9yY2UgaXQuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczog9dPU0s/K09TXzyAnJXMnINPPxMXS1snUINfF0s7VwCDNxdTL1SDEydPLwSBTdW4uXG4iCisjfiAi98/azc/Wzs8sINzUzyDP2s7B3sHF1Cwg3tTPINPP2sTBzsnFINPXz9DBIHYwINLB2tLV28nUINfB29Ug1MHCzMnD1VxuIgorI34gItLB2sTFzM/XLiDz18/QIM7FINPP2sTBzi4g5dPMySDX2SDExcrT1NfJ1MXM2M7PIMjP1MnUxSDTz9rEwdTYINPXz9AgdjBcbiIKKyN+ICLOwSDc1M/NINXT1NLPytPU18UsIMnT0M/M2NrVytTFIM/Qw8nAIC1mIMTM0SDQ0snO1cTJ1MXM2M7Px88g08/axMHOydEuXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiDOxdfP2s3P1s7PINDPzNXeydTYINTFy9Xdycogy8HUwczPxyAtICVzXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGNoZGlyIHRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICJuYW1laTogzsXXz9rNz9bOzyDTzcXOydTYIMvB1MHMz8cgzsEgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IGNoZGlyIHRvIHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiDOxdfP2s3P1s7PINPNxc7J1Nggy8HUwczPxyDOwSDLz9LOxdfPyiFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3Qgc3RhdCByb290IVxuIgorI34gbXNnc3RyICJuYW1laTogzsXXz9rNz9bOzyDP0NLFxMXMydTYINPP09TP0c7JxSDLz9LOxdfPx88gy8HUwczPx8EhXG4iCisKKyN+IG1zZ2lkICJuYW1laTogYnVmIG92ZXJmbG93XG4iCisjfiBtc2dzdHIgIm5hbWVpOiDQxdLF0M/MzsXOycUgwtXGxdLBXG4iCisKKyN+IG1zZ2lkICIgPyBjb3VsZCBub3QgY2hkaXIgaW50byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAiID8gzsXXz9rNz9bOzyDTzcXOydTYIMvB1MHMz8cgzsEgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/INDSz8LMxc3ZINDSySDe1MXOyckg08nN18/Myd7F08vPyiDT09nMy8kgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgICoqKiBFWENFRURFRCBVTklYIExJTUlUIE9GIFNZTUxJTktTICoqKlxuIgorI34gbXNnc3RyICIgICoqKiDw8uX3+fvl7iDw8uXk5ewgVU5JWCDk7PEg8+nt9+/s6f7l8+vp6CDz8/ns7+sgKioqXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5rbm93biBmaWxlIHR5cGUgMCUwNm8gb24gZmlsZSAlc1xuIgorI34gbXNnc3RyICJuYW1laTogzsXJ2tfF09TO2cog1MnQIMbByszBIDAlMDZvINcgxsHKzMUgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJtb3VudDogZ29pbmcgdG8gbW91bnQgJXMgYnkgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IMLVxMXUINfZ0M/MzsXOzyDNz87UydLP18HOycUgJXMg08/HzMHTzs8gVVVJRFxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBubyBMQUJFTD0sIG5vIFVVSUQ9LCBnb2luZyB0byBtb3VudCAlcyBieSBwYXRoXG4iCisjfiBtc2dzdHIgIm1vdW50OiDC1cTF1CDX2dDPzM7Fzs8gzc/O1MnSz9fBzsnFICVzINPPx8zB087PIM3F1MvJXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczog7sXXz9rNz9bOzyDTz9rEwdTYIMTP3sXSzsnKINDSz8PF09NcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogd2FpdHBpZDogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IM7F18/azc/Wzs8gz9TL0tnU2CA6ICVzXG4iCisKKyN+IG1zZ2lkICIlczogY2Fubm90IHN0YXQgJXM6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiDOxdfP2s3P1s7PIM/Q0sXExczJ1Ngg08/T1M/RzsnFICVzOiAlc1xuIgorCisjfiBtc2dpZCAiY291bGQgbm90IHVtb3VudCAlcyAtIHRyeWluZyAlcyBpbnN0ZWFkXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLOxdfP2s3P1s7PINLB2s3PztTJ0s/XwdTYICVzIC0g183F09TPINzUz8fPINfZ0M/MztHF1NPRINDP0NnUy8EgJXNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiY2hmbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjog08LPyiBQQU0sINfZ0M/MztHF1NPRINDSxdLZ18HOycU6ICVzXG4iCisKKyN+IG1zZ2lkICJDYW4ndCByZWFkICVzLCBleGl0aW5nLiIKKyN+IG1zZ3N0ciAi7sXXz9rNz9bOzyDQ0s/eydTB1NggJXMsINrB18XS28XOycUg0sHCz9TZLiIKKworI34gbXNnaWQgImxvZ2luOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImxvZ2luOiDTws/KIFBBTSwg19nQz8zO0cXU09Eg0NLF0tnXwc7JxTogJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDogxs/Oz9fB0SDPwtLBws/Uy8EgXCIlc1wiXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ2l2aW5nIHVwIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDog08TBwNPYIFwiJXNcIlxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCisjfiBtc2dzdHIgImAlcyc6IM7F18XSztnKIMvB1MHMz8c6ICcuJyDOxSDQxdLX2cpcbiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCisjfiBtc2dzdHIgImAlcyc6IM7F18XSztnKIMvB1MHMz8c6ICcuLicgzsUg19TP0s/KXG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIG9wZW5fdHR5XG4iCisjfiBtc2dzdHIgItfZ2tnXwcXU09Egb3Blbl90dHlcbiIKKworI34gbXNnaWQgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKyN+IG1zZ3N0ciAi19na2dfBxdTT0SB0ZXJtaW9faW5pdFxuIgorCisjfiBtc2dpZCAid3JpdGluZyBpbml0IHN0cmluZ1xuIgorI34gbXNnc3RyICLawdDJ09nXwcXU09Eg09TSz8vBIMnOycPJwczJ2sHDyclcbiIKKworI34gbXNnaWQgImJlZm9yZSBhdXRvYmF1ZFxuIgorI34gbXNnc3RyICLQxdLFxCBhdXRvYmF1ZFxuIgorCisjfiBtc2dpZCAid2FpdGluZyBmb3IgY3ItbGZcbiIKKyN+IG1zZ3N0ciAiz9bJxMHF1NPRIGNyLWxmXG4iCisKKyN+IG1zZ2lkICJyZWFkaW5nIGxvZ2luIG5hbWVcbiIKKyN+IG1zZ3N0ciAi3snUwcXU09Egyc3RINDPzNjaz9fB1MXM0VxuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAi0M/TzMUgw8nLzMEgZ2V0b3B0XG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlYXJnc1xuIgorI34gbXNnc3RyICLX2cjPxCDJ2iBwYXJzZWFyZ3NcbiIKKworI34gbXNnaWQgImVudGVyZWQgcGFyc2Vfc3BlZWRzXG4iCisjfiBtc2dzdHIgItfZ0M/MzsXOINfIz8Qg1yBwYXJzZV9zcGVlZHNcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VzcGVlZHNcbiIKKyN+IG1zZ3N0ciAi19nIz8QgydogcGFyc2VzcGVlZHNcbiIKKworI34gbXNnaWQgIm9wZW4oMilcbiIKKyN+IG1zZ3N0ciAib3BlbigyKVxuIgorCisjfiBtc2dpZCAiZHVwaW5nXG4iCisjfiBtc2dzdHIgItfZ0M/MztHF1NPRIMTVwszJ0s/Xwc7JxVxuIgorCisjfiBtc2dpZCAidGVybV9pbyAyXG4iCisjfiBtc2dzdHIgInRlcm1faW8gMlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgZXJyb3IuIgorI34gbXNnc3RyICLv28nCy8Eg0MHSz8zRLiIKKworI34gbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzXG4iCisjfiBtc2dzdHIgIvDSxcTV0NLF1sTFzsnFOiBcIiVzXCIgz9TT1dTT1NfVxdQg1yDT0MnTy8UgL2V0Yy9zaGVsbHNcbiIKKworI34gbXNnaWQgInRpbWVvdXQgPSAlZCwgcXVpZXQgPSAlZCwgcmVib290ID0gJWRcbiIKKyN+IG1zZ3N0ciAi1MHKzS3B1dQgPSAlZCwgzc/M3sHOycUgPSAlZCwg0MXSxdrBx9LV2svBID0gJWRcbiIKKworI34gbXNnaWQgImNvdWxkbid0IHJlYWQgJXMsIGFuZCBjYW5ub3QgaW9jdGwgZHVtcFxuIgorI34gbXNnc3RyICLOxdfP2s3P1s7PINDSz97J1MHU2CAlcywgySDOxdfP2s3P1s7PINPExczB1NggxMHN0CBpb2N0bFxuIgorCisjfiBtc2dpZCAiLCBvZmZzZXQgJWxsZCIKKyN+IG1zZ3N0ciAiLCDTzcXdxc7JxSAlbGxkIgorCisjfiBtc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBkZXZpY2UgL2Rldi9sb29wIyIKKyN+IG1zZ3N0ciAiJXM6IM7F18/azc/Wzs8gzsHK1Mkgzskgz8TOz8fPINXT1NLPytPU18EgL2Rldi9sb29wIyIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy1lXSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gWy1wIHByaW9yaXR5XSBzcGVjaWFsfExBQkVMPXZvbHVtZV9uYW1lIC4uLlxuIgorI34gIiAgICAgICAlcyBbLXNdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLJ09DPzNjaz9fBzsnFOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgJXMgWy12XSBbLXAg0NLJz9LJ1MXUXSDT0MXDycHM2M7ZynxMQUJFTD3JzdFf1M/NwSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIsnT0M/M2NrP18HOycU6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstdl1cbiIKKyN+ICIgICAgICAgJXMgWy12XSDT0MXDycHM2M7ZyiAuLi5cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IGNhbm9uaWNhbGl6ZSAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IM7F18/azc/Wzs8gz9TL0tnU2CAlczogJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogcmVuaWNlIHByaW9yaXR5IFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwcyBdIFsgWyAtdSBdIHVzZXJzIF1cbiIKKyN+IG1zZ3N0ciAiIgorI34gIsnT0M/M2NrP18HOycU6IHJlbmljZSDQ0snP0snUxdQgWyBbIC1wIF0gcGlkJ9kgXSBbIFsgLWcgXSBwZ3JwJ9kgXSBbIFsgLSIKKyN+ICJ1IF0g0M/M2NrP18HUxczJIF1cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJVbmtub3duIG9wdGlvbiBgJWMnIGlnbm9yZWQiCisjfiBtc2dzdHIgIiVzOiDOxcna18XT1M7B0SDP0MPJ0SBcIi0lY1wiXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRXhjZWVkZWQgTUFYRU5UUklFUy4gIFJhaXNlIHRoaXMgdmFsdWUgaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgIgorI34gIkV4aXRpbmcuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLw0sXX2dvFziBNQVhFTlRSSUVTLiAg9dfFzMne2NTFINzUzyDazsHexc7JxSDXIG1rY3JhbWZzLmMgySAiCisjfiAi0MXSxcvPzdDJzMnS1crUxS4gIPrB18XS28XOycUg0sHCz9TZLlxuIgorCisjfiBtc2dpZCAiQXNzdW1pbmcgcGFnZXMgb2Ygc2l6ZSAlZCAobm90ICVkKVxuIgorI34gbXNnc3RyICLwz8TSwdrVzcXXwcXN2cog0sHazcXSINPU0sHOycMgJWQgKM7FICVkKVxuIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmb3VuZCBhICVzJXMlc1xuIgorI34gbXNnc3RyICLh19TPy8/OxsnH1dLBw8nRIM7B28zBICVzJXMlc1xuIgorCisjfiBtc2dpZCAiIgorI34gIkRyaXZlIHR5cGVcbiIKKyN+ICIgICA/ICAgYXV0byBjb25maWd1cmVcbiIKKyN+ICIgICAwICAgY3VzdG9tICh3aXRoIGhhcmR3YXJlIGRldGVjdGVkIGRlZmF1bHRzKSIKKyN+IG1zZ3N0ciAiIgorI34gIvTJ0CDEydPLwVxuIgorI34gIiAgID8gICDB19TPzcHUyd7F08vB0SDLz87GycfV0sHDydFcbiIKKyN+ICIgICAwICAg19nCz9LP3s7ZyiAo088g2s7B3sXOydHNySDQzyDVzc/M3sHOycAgxMzRIM/CzsHS1dbFzs7Px88gIgorI34gIs/Cz9LVxM/Xwc7J0SkiCisKKyN+IG1zZ2lkICJTZWxlY3QgdHlwZSAoPyBmb3IgYXV0bywgMCBmb3IgY3VzdG9tKTogIgorI34gbXNnc3RyICL32cLF0snUxSDUydAgKD8gLSDB19TPLCAwIC0g19nCz9LP3s7Zyik6ICIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZmFpbGVkLlxuIgorI34gbXNnc3RyICLh19TPy8/OxsnH1dLBw8nRINrB18XS28nMwdPYIM7F1cTB3sXKLlxuIgorCisjfiBtc2dpZCAiQWx0ZXJuYXRlIGN5bGluZGVycyIKKyN+IG1zZ3N0ciAi4czY1MXSzsHUydfO2cUgw8nMyc7E0tkiCisKKyN+IG1zZ2lkICJQaHlzaWNhbCBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIubJ2snexdPLycUgw8nMyc7E0tkiCisKKyN+IG1zZ2lkICJZb3UgbWF5IGNoYW5nZSBhbGwgdGhlIGRpc2sgcGFyYW1zIGZyb20gdGhlIHggbWVudSIKKyN+IG1zZ3N0ciAi99kgzc/WxdTFIMnazcXOydTYINfTxSDQwdLBzcXU0tkgxMnTy8EgydogzcXOwCB4IgorCisjfiBtc2dpZCAiMyw1XCIgZmxvcHB5IgorI34gbXNnc3RyICIzLDVcIiDEydPLIgorCisjfiBtc2dpZCAiTGludXggY3VzdG9tIgorI34gbXNnc3RyICJMaW51eCDawcvB2s7PyiIKKworI34gbXNnaWQgIiVzIGZyb20gdXRpbC1saW51eC0lc1xuIgorI34gbXNnc3RyICIlcyDJ2iB1dGlsLWxpbnV4LSVzXG4iCisKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJXMgydogJXMlc1xuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiB0aGUgbGFiZWwgJXMgb2NjdXJzIG9uIGJvdGggJXMgYW5kICVzXG4iCisjfiBtc2dzdHIgIiVzOiDP28nCy8E6IM3F1MvBICVzINfT1NLF3sHF1NPRINcgJXMgySAlc1xuIgorCisjfiBtc2dpZCAiIgorI34gIiVzOiBjb3VsZCBub3Qgb3BlbiAlcywgc28gVVVJRCBhbmQgTEFCRUwgY29udmVyc2lvbiBjYW5ub3QgYmUgZG9uZS5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIiVzOiDOxdfP2s3P1s7PIM/Uy9LZ1NggJXMsINDP3NTPzdUg0NLFz8LSwdrP18HOycUgVVVJRCDJIO3l9OvpIM7FIM3P1sXUICIKKyN+ICLC2dTYINfZ0M/MzsXOzy5cbiIKKworI34gbXNnaWQgIiVzOiBiYWQgVVVJRCIKKyN+IG1zZ3N0ciAiJXM6IM7F18XSztnKIFVVSUQiCisKKyN+IG1zZ2lkICJtb3VudDogZmFpbGVkIHdpdGggbmZzIG1vdW50IHZlcnNpb24gNCwgdHJ5aW5nIDMuLlxuIgorI34gbXNnc3RyICJtb3VudDog08LPyiDNz87UydLP18HOydEgbmZzINfF0tPJySA0LCDQ0s/C1cXU09EgMy4uXG4iCisKKyN+IG1zZ2lkICJtb3VudDogbW91bnRpbmcgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IM3PztTJ0tXF1NPRICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2Fubm90IGZpbmQgJXMgaW4gJXMiCisjfiBtc2dzdHIgIm1vdW50OiDOxdfP2s3P1s7PIM7BytTJICVzINcgJXMiCisKKyN+IG1zZ2lkICJtb3VudDogZXJyb3Igd2hpbGUgZ3Vlc3NpbmcgZmlsZXN5c3RlbSB0eXBlXG4iCisjfiBtc2dzdHIgIm1vdW50OiDP28nCy8Egz9DSxcTFzMXOydEg0NLFxNDPzMHHwcXNz8fPINTJ0MEgxsHKzM/Xz8og08nT1MXN2VxuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgaG9zdDpkaXIgYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IN7SxdrX2d7Bys7PIMTMyc7O2cogwdLH1c3FztQgaG9zdDpkaXJcbiIKKworI34gbXNnaWQgIm1vdW50OiB3YXJuaW5nOiBtdWx0aXBsZSBob3N0bmFtZXMgbm90IHN1cHBvcnRlZFxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6INDSxcTV0NLF1sTFzsnFOiDNzs/Hz8vSwdTO2cUgyc3FzsEgyM/T1M/XIM7FINDPxMTF0tbJ18HA1NPRXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZGlyZWN0b3J5IHRvIG1vdW50IG5vdCBpbiBob3N0OmRpciBmb3JtYXRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IMvB1MHMz8cgxMzRIM3PztTJ0s/Xwc7J0SDOxSDXIMbP0s3B1MUgaG9zdDpkaXJcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IM7F18/azc/Wzs8g0M/M1d7J1NggwcTSxdMgxMzRICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAibW91bnQ6INDPzNXexc4gzsXXxdLO2cogaHAtPmhfbGVuZ3RoXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBvcHRpb24gYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IN7SxdrX2d7Bys7PIMTMyc7O2cogwdLH1c3FztQgz9DDyclcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IFVucmVjb2duaXplZCBwcm90bz0gb3B0aW9uLlxuIgorI34gbXNnc3RyICLw0sXE1dDSxdbExc7JxTog7sXSwdPQz9rOwc7OwdEgz9DDydEgcHJvdG89IC5cbiIKKworI34gbXNnaWQgIldhcm5pbmc6IE9wdGlvbiBuYW1sZW4gaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAiV2FybmluZzog79DDydEgbmFtbGVuIM7FINDPxMTF0tbJ18HF1NPRLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgcGFyYW1ldGVyOiAlcz0lZFxuIgorI34gbXNnc3RyICLOxcna18XT1M7ZyiDQwdLBzcXU0iDNz87UydLP18HOydEgbmZzOiAlcz0lZFxuIgorCisjfiBtc2dpZCAiV2FybmluZzogb3B0aW9uIG5vbG9jayBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICLw0sXE1dDSxdbExc7JxTogz9DDydEgbm9sb2NrIM7FINDPxMTF0tbJ18HF1NPRLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgb3B0aW9uOiAlcyVzXG4iCisjfiBtc2dzdHIgIs7FydrXxdPUzsHRIM/Qw8nRIM3PztTJ0s/Xwc7J0SBuZnM6ICVzJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb3QgYmFkIGhwLT5oX2xlbmd0aD9cbiIKKyN+IG1zZ3N0ciAibW91bnQ6INDPzNXexc4gzsXXxdLO2cogaHAtPmhfbGVuZ3RoP1xuIgorCisjfiBtc2dpZCAibmZzIGJpbmRyZXN2cG9ydCIKKyN+IG1zZ3N0ciAibmZzIGJpbmRyZXN2cG9ydCIKKworI34gbXNnaWQgIm5mcyBzZXJ2ZXIgcmVwb3J0ZWQgc2VydmljZSB1bmF2YWlsYWJsZSIKKyN+IG1zZ3N0ciAi08XS18XSIG5mcyDTz8/C3cnMLCDe1M8g08XS18nTIM7FxM/T1NXQxc4iCisKKyN+IG1zZ2lkICJ1c2VkIHBvcnRtYXBwZXIgdG8gZmluZCBORlMgcG9ydFxuIgorI34gbXNnc3RyICLEzNEgzsHIz9bExc7J0SDQz9LUwSBORlMgydPQz8zY2tXF1NPRIHBvcnRtYXBwZXJcbiIKKworI34gbXNnaWQgInVzaW5nIHBvcnQgJWQgZm9yIG5mcyBkZWFtb25cbiIKKyN+IG1zZ3N0ciAixMzRIMTFzc/OwSBuZnMgydPQz8zY2tXF1NPRINDP0tQgJWRcbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIHN0YXR1cyByZXR1cm4gdmFsdWU6ICVkIgorI34gbXNnc3RyICLOxcna18XT1M7PxSDXz9rX0sHdwcXNz8Ug2s7B3sXOycUg08/T1M/RzsnRIG5mczogJWQiCisKKyN+IG1zZ2lkICJob3N0OiAlcywgZGlyZWN0b3J5OiAlc1xuIgorI34gbXNnc3RyICLIz9PUOiAlcywgy8HUwczPxzogJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgInVtb3VudDogzsXXz9rNz9bOzyDQz8zV3snU2CDBxNLF0yDEzNEgJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogZ290IGJhZCBob3N0cC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiDQz8zV3sXOIM7F18XSztnKIGhvc3RwLT5oX2xlbmd0aFxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1iYWQgcGF0aCBsZW5ndGhcbiIKKyN+IG1zZ3N0ciAiJXM6IM7F18XSztnKIGNyYW1mcyAtIM/bycLP3s7B0SDEzMnOwSDQ1dTJXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLXdyb25nIG1hZ2ljXG4iCisjfiBtc2dzdHIgIiVzOiDOxdfF0s7ZyiBjcmFtZnMgLSDP28nCz97O2cogbWFnaWNcbiIKKworI34gbXNnaWQgIiVzOiB3YXJuaW5nLS1maWxlIGxlbmd0aCB0b28gbG9uZywgcGFkZGVkIGltYWdlP1xuIgorI34gbXNnc3RyICIiCisjfiAiJXM6INDSxcTV0NLF1sTFzsnFIC0g0sHazcXSIMbByszBINPMydvLz80g18XMycsuINLB2sTV19vJytPRIM/C0sHaP1xuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1jcmMgZXJyb3JcbiIKKyN+IG1zZ3N0ciAiJXM6IM7F18XSztnKIGNyYW1mcyAtIM/bycLLwSBjcmNcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHN1cGVyYmxvY2tcbiIKKyN+IG1zZ3N0ciAiJXM6IM7F18XSztnKIGNyYW1mcyAtIM/bycLP3s7ZyiDT1dDF0sLMz8tcbiIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3NsLmdtbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3NsLmdtbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmQzMDExCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vc2wuZ21vCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3NsLnBvIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vc2wucG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E4YzdiMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3NsLnBvCkBAIC0wLDAgKzEsMTI1MTkgQEAKKyMgLSotIG1vZGU6IHBvIC0qLSBTbG92ZW5pYW4gdHJhbnNsYXRpb24gZm9yIHV0aWwtbGludXggcGFja2FnZS4KKyMgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBQcmltb74gUGV0ZXJsaW4gPHByaW1vei5wZXRlcmxpbkBiaW9maXoubWYudW5pLWxqLnNpPiwgMjAwMiwgMjAwMy4KKyMgU2ltb24gTWloZXZjIDxzaW1vbm1paGV2Y0B2b2xqYS5uZXQ+LCAyMDA1LCAyMDA2CisjICRJZDogdXRpbC1saW51eC0yLjEzLXByZTYuc2wucG8sdiAxLjMgMjAwNi8wMy8wNCAxOToyOTozNCBwZXRlcmxpbiBFeHAgJAorIworIyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gZnJlZWx5IGNvcHkgYW5kIGRpc3RyaWJ1dGUKKyMgdGhpcyBmaWxlIGFuZCBtb2RpZmllZCB2ZXJzaW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzCisjIGhlYWRlciBpcyBub3QgcmVtb3ZlZCBhbmQgbW9kaWZpZWQgdmVyc2lvbnMgYXJlIG1hcmtlZAorIyBhcyBzdWNoLgorIworbXNnaWQgIiIKK21zZ3N0ciAiIgorIlByb2plY3QtSWQtVmVyc2lvbjogdXRpbC1saW51eCAyLjEzLXByZTZcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDYtMDMtMDUgMTI6MjkrMDIwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogU2ltb24gTWloZXZjIDxzaW1vbm1paGV2Y0BlbWFpbC5zaT5cbiIKKyJMYW5ndWFnZS1UZWFtOiBTbG92ZW5pYW4gPHRyYW5zbGF0aW9uLXRlYW0tc2xAbGlzdHMuc291cmNlZm9yZ2UubmV0PlxuIgorIk1JTUUtVmVyc2lvbjogMS4wXG4iCisiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTJcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgIm5hc3Rhdmkgc2FtbyB6YSBicmFuamUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3MAorbXNnaWQgInNldCByZWFkLXdyaXRlIgorbXNnc3RyICJuYXN0YXZpIHphIHBpc2FuamUgaW4gYnJhbmplIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzYKK21zZ2lkICJnZXQgcmVhZC1vbmx5IgorbXNnc3RyICJwcmViZXJpIHNhbW8gemEgYnJhbmplIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODIKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAicHJlYmVyaSB2ZWxpa29zdCBzZWt0b3JqYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4CisjLCBmdXp6eQorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJwcmViZXJpIHZlbGlrb3N0IHNla3RvcmphIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6OTQKK21zZ2lkICJnZXQgbWluaW11bSBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTAwCittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwNgorIywgZnV6enkKK21zZ2lkICJnZXQgYWxpZ25tZW50IG9mZnNldCIKK21zZ3N0ciAic2xhYmEgdmVsaWtvc3QgaW5vZGEiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTIKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IgorbXNnc3RyICJEb2RhdG5pIHNla3RvcmppIG5hIHN0ZXpvIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTE4Cittc2dpZCAiZ2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAicHJlYmVyaSB2ZWxpa29zdCBibG9rYSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEyNQorbXNnaWQgInNldCBibG9ja3NpemUiCittc2dzdHIgIm5hc3RhdmkgdmVsaWtvc3QgYmxva2EiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzEKK21zZ2lkICJnZXQgMzItYml0IHNlY3RvciBjb3VudCIKK21zZ3N0ciAicHJlYmVyaSAzMi1iaXRubyC5dGV2aWxvIHNla3RvcmpldiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworIywgZnV6enkKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAicHJlYmVyaSB2ZWxpa29zdCh2IGJhanRpaCkiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNDQKK21zZ2lkICJzZXQgcmVhZGFoZWFkIgorbXNnc3RyICJuYXN0YXZpIGJyYW5qZS12bmFwcmVqIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAicHJlYmVyaSBicmFuamUtdm5hcHJlaiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1NworIywgZnV6enkKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgIm5hc3RhdmkgYnJhbmplLXZuYXByZWoiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJwcmViZXJpIGJyYW5qZS12bmFwcmVqIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTY3Cittc2dpZCAiZmx1c2ggYnVmZmVycyIKK21zZ3N0ciAiaXpwcmF6bmkgbWVkcG9tbmlsbmlrZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgInBvbm92bm8gcHJlYmVyaSB0YWJlbG8gcmF6ZGVsa292IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOlxuIgorbXNnc3RyICJVcG9yYWJhOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgLS1yZXBvcnQgW2RldmljZXNdXG4iCittc2dzdHIgIiAgJXMgLS1yZXBvcnQgW25hcHJhdmVdXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyBbLXZ8LXFdIHVrYXppIG5hcHJhdmVcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJBdmFpbGFibGUgY29tbWFuZHM6XG4iCittc2dzdHIgIlJhenBvbG++bGppdmkgdWthemk6XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODcKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9ycyIKK21zZ3N0ciAicHJlYmVyaSB2ZWxpa29zdCh2IGJhanRpaCkiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiJXM6IE5lem5hbiB1a2F6OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIHphaHRldmEgYXJndW1lbnRcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgZmFpbGVkLlxuIgorbXNnc3RyICJpc2thbmplIGplIGJpbG8gbmV1c3BluW5vIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN1Y2NlZWRlZC5cbiIKK21zZ3N0ciAiJXMgamUgdXNwZWxvLlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDI3IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzOiBuaSBtb2dv6GUgb2RwcmV0aSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpb2N0bCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogbmFwYWthIGlvY3RsIG5hICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU3RhcnRTZWMgICAgICAgICAgICBTaXplICAgRGV2aWNlXG4iCittc2dzdHIgIiIKKyJzYW1vIHphIGJyYW5qZSAgICBicmFuamUtdm5hcHJlaiAgICB2ZWxpa29zdCBzZWt0b3JqYSAgICB2ZWxpa29zdCBibG9rYSAiCisiemHoZXRuaSBzZWt0b3IgICAgdmVsaWtvc3QgICAgTmFwcmF2YVxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAidXBvcmFiYTpcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHROT1RFOiBlbHZ0dW5lIG9ubHkgd29ya3Mgd2l0aCAyLjQga2VybmVsc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAibmFwYWthIHByaSBpc2thbmp1IgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1pc3NpbmcgYmxvY2tkZXZpY2UsIHVzZSAtaCBmb3IgaGVscFxuIgorbXNnc3RyICIlcyBuaSBibG/obmEgZW5vdGEgb3ouIGRhdG90ZWthXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZWx2dHVuZSBpcyBvbmx5IHVzZWZ1bCBvbiBvbGRlciBrZXJuZWxzO1xuIgorImZvciAyLjYgdXNlIElPIHNjaGVkdWxlciBzeXNmcyB0dW5hYmxlcyBpbnN0ZWFkLi5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9ybWF0dGluZyAuLi4gIgorbXNnc3RyICJGb3JtYXRpcmFtbyAuLi4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo0OSBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJvcHJhdmxqZW5vXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAiUHJldmVyamFuamUuLi4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MQorbXNnaWQgIlJlYWQ6ICIKK21zZ3N0ciAiQmVyaTogIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmxlbSByZWFkaW5nIGN5bGluZGVyICVkLCBleHBlY3RlZCAlZCwgcmVhZCAlZFxuIgorbXNnc3RyICJUZb5hdmEgcHJpIGJyYW5qdSBzdGV6ZSAlZDogcHJp6GFrb3Zhbm8gJWQsIHByZWJyYW5vICVkXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiYmFkIGRhdGEgaW4gY3lsICVkXG4iCisiQ29udGludWluZyAuLi4gIgorbXNnc3RyICIiCisic2xhYmkgcG9kYXRraSBuYSBzdGV6aSAlZFxuIgorIk5hZGFsanVqZW1vLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgInVwb3JhYmE6ICVzIFsgLW4gXSBuYXByYXZhXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMTggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4NAorIzogZGlzay11dGlscy9pc29zaXplLmM6MTgxIGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMTQgZGlzay11dGlscy9ta2ZzLmM6NTIKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4MTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTcyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ4NyBtaXNjLXV0aWxzL2RkYXRlLmM6MTc5IG1pc2MtdXRpbHMvcmVuYW1lLmM6NzkKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTQ3IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjE5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgKCVzKVxuIgorbXNnc3RyICIlczogJXMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6IG5pIGJsb+huYSBuYXByYXZhXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDIKK21zZ2lkICJDb3VsZCBub3QgZGV0ZXJtaW5lIGN1cnJlbnQgZm9ybWF0IHR5cGUiCittc2dzdHIgIlRyZW51dG5lIHZyc3RlIGZvcm1hdGlyYW5qYSBuaSBtb+ggdWdvdG92aXRpIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgIiVzc3RyYW5za2EsICVkIHN0ZXosICVkIHNla3Rvcmpldi9zdGV6by4gU2t1cG5hIHZlbGlrb3N0ICVkIGtCLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiRG91YmxlIgorbXNnc3RyICJEdm8iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJTaW5nbGUiCittc2dzdHIgIkVubyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaHZdIFsteCBkaXJdIGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisiIC12ICAgICAgICAgYmUgbW9yZSB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB0byB0ZXN0XG4iCittc2dzdHIgIiIKKyJ1cG9yYWJhOiAlcyBbLWh2XSBbLWQgaW1lbmlrXSBkYXRvdGVrYVxuIgorIiAtaCAgICAgICAgIHByaWthvmkgdG8gcG9tb+hcbiIKKyIgLXggaW1lbmlrICByYXq5aXJpIHYgaW1lbmlrXG4iCisiIC12ICAgICAgICAgcHJpa2G+aSB2ZeggaW5mb3JtYWNpalxuIgorIiBkYXRvdGVrYSAgIGRhdG90ZWthLCBraSBqbyB0ZXN0aXJhbW9cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICIoTmFzbGVkbmphIGRhdG90ZWthOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib3BlbiBmYWlsZWQ6ICVzIgorbXNnc3RyICJvcGVucHR5IG5pIHVzcGVsXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIGZhaWxlZDogdW5hYmxlIHRvIGRldGVybWluZSBkZXZpY2Ugc2l6ZTogJXMiCittc2dzdHIgIiVzOiBvcG96b3JpbG8gLSB2ZWxpa29zdGkgZGF0b3Rl6G5lZ2Egc2lzdGVtYSBuaSBtb+ggdWdvdG92aXRpIFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgYSBibG9jayBkZXZpY2Ugb3IgZmlsZTogJXMiCittc2dzdHIgIiVzIG5pIGJsb+huYSBlbm90YSBvei4gZGF0b3Rla2FcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4NCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI2CisjLCBmdXp6eQorbXNnaWQgImZpbGUgbGVuZ3RoIHRvbyBzaG9ydCIKK21zZ3N0ciAiJXM6IG5ldmVsamF2ZW4gY3JhbWZzIC0gaW1lIGRhdG90ZWtlIGplIHByZWtyYXRrb1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg5IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxOTcKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNTggZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCBmYWlsZWQ6ICVzIgorbXNnc3RyICIoTmFzbGVkbmphIGRhdG90ZWthOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2CisjLCBmdXp6eQorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIlZuZXNpdGUgdnJzdG8gZGF0b3Rl6G5lZ2Egc2lzdGVtYTogIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdXBlcmJsb2NrIHNpemUgKCVkKSB0b28gc21hbGwiCittc2dzdHIgIql0ZXZpbG8gc2VrdG9yamV2IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjIzCittc2dpZCAiemVybyBmaWxlIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgZXh0ZW5kcyBwYXN0IGVuZCBvZiBmaWxlc3lzdGVtXG4iCittc2dzdHIgIk9wb3pvcmlsbzogcmF6ZGVsZWsgJXMgcG90ZWthIHphIGtvbmNlbSBkaXNrYVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBvbGQgY3JhbWZzIGZvcm1hdFxuIgorbXNnc3RyICIlczogb3Bvem9yaWxvIC0gc3RhcmEgc2xpa2EgY3JhbWZzLCBtYW5qa2EgQ1JDXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNDYKK21zZ2lkICJ1bmFibGUgdG8gdGVzdCBDUkM6IG9sZCBjcmFtZnMgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzIgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjMzOQorIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ3NyBsb2dpbi11dGlscy9jaGZuLmM6NTI5IGxvZ2luLXV0aWxzL2Noc2guYzo0MzkKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTQxIHN5cy11dGlscy9jeXR1bmUuYzozMjEKK21zZ2lkICJtYWxsb2MgZmFpbGVkIgorbXNnc3RyICJtYWxsb2MgbmkgdXNwZWwiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyOTcKKyMsIGZ1enp5Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICIsIG5hcGFrYSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorIywgZnV6enkKK21zZ2lkICJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiCittc2dzdHIgImtvcmVuc2tpIGlub2QgbmkgaW1lbmlrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByb290IG9mZnNldCAoJWx1KSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mzg3Cittc2dpZCAiZGF0YSBibG9jayB0b28gbGFyZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICIgICBsdWtuamEgdiAlbGQgKCVkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDIzIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICB1bmNvbXByZXNzaW5nIGJsb2NrIGF0ICVsZCB0byAlbGQgKCVsZClcbiIKK21zZ3N0ciAiICByYXq5aXJqYW0gYmxvayBtZWQgJWxkIGluICVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tYmxvY2sgKCVsZCkgYnl0ZXMiCittc2dzdHIgIiVzOiBuZWJsb+huaWggKCVsZCkgYmFqdG92XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vbi1zaXplICglbGQgdnMgJWxkKSBieXRlcyIKK21zZ3N0ciAiJXM6IFphcGlzYW5paCBzYW1vICVsdSBvZCBza3Vwbm8gJWx1IGJhanRvdiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKE5hc2xlZG5qYSBkYXRvdGVrYTogJXMpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAicHJpa2xvcCBuaSB1c3BlbCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAicHJpa2xvcCBuaSB1c3BlbCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXRpbWUgZmFpbGVkOiAlcyIKK21zZ3N0ciAibmVwcmF2aWxuYSB2cmVkbm9zdCB6YSBwcmVrb3Jh6Gl0ZXYg6GFzYTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ5NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtkaXIgZmFpbGVkOiAlcyIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSBuaSB1c3BlbDogJW0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTEKK21zZ2lkICJmaWxlbmFtZSBsZW5ndGggaXMgemVybyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTE0Cittc2dpZCAiYmFkIGZpbGVuYW1lIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCisjLCBmdXp6eQorbXNnaWQgImJhZCBpbm9kZSBvZmZzZXQiCittc2dzdHIgInNsYWJhIHZlbGlrb3N0IGlub2RhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTM3Cittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU0MAorbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gc2l6ZSBhbmQgbm9uLXplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzEKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTc0Cittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNpemUgZXJyb3IgaW4gc3ltbGluazogJXMiCittc2dzdHIgIiVzOiBuYXBh6G5hIHZlbGlrb3N0IHNpbWJvbG5lIHBvdmV6YXZlICwlc2BcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJmc3luYyBuaSB1c3BlbCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAiJXM6IHBvbmFyZWplbiBuYehpbiBuYSBgJXMnICglbylcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAicHJpa2xvcCBuaSB1c3BlbCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBzdGFydCAoJWxkKSA8IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKSArIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKyIlczogbmV2ZWxqYXZlbiBjcmFtZnMgLSBrb25lYyBwb2RhdGtvdiBpbWVuaWthICglbGQpIG5pIGVuYWsgemHoZXRrdSAiCisiZGF0b3Rl6G5paCBwb2RhdGtvdiAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgZmlsZSBkYXRhIG9mZnNldCIKK21zZ3N0ciAiJXMgbmV2ZWxqYXZlbiBjcmFtZnMgLSBuZXZlbGphdmVuIG9kbWlrIGRhdG90ZehuaWggcG9kYXRrb3ZcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICJaYSBtZWRwb21uaWxuaWsgbmkgbW9nb+hlIGRvZGVsaXRpIHBvbW5pbG5pa2EuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MjcKKyMsIGZ1enp5Cittc2dpZCAiY29tcGlsZWQgd2l0aG91dCAteCBzdXBwb3J0IgorbXNnc3RyICIlczogcHJldmVkZW5vIGJyZXogLXggYXJndW1lbnRhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1sYXJ2c21mXSAvZGV2L25hbWVcbiIKK21zZ3N0ciAiVXBvcmFiYTogJXMgWy1sYXJ2c21mXSAvZGV2L2ltZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIGplIHByaWtsb3BsamVuLlx0ICIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI1Cittc2dpZCAiRG8geW91IHJlYWxseSB3YW50IHRvIGNvbnRpbnVlIgorbXNnc3RyICJBbGkgcmVzIL5lbGl0ZSBuYWRhbGpldmF0aSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgInByZXZlcmphbmplIHByZWtpbmplbm8uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIgorbXNnc3RyICK5dGV2aWxvIG9ibW/oamEgPCBQUlZPT0JNT8hKRSB2IGRhdG90ZWtpIGAlcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiuXRldmlsbyBvYm1v6GphID49IE9CTU/ISkEgdiBkYXRvdGVraSBgJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiT2RzdHJhbmkgYmxvayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IHVuYWJsZSB0byBzZWVrIHRvIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJOYXBha2EgcHJpIGJyYW5qdTogaXNrYW5qZSBkbyBibG9rYSB2IGRhdG90ZWtpIG5pIG1vvm5vICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiTmFwYWthIHByaSBicmFuanU6IHBvuWtvZG92YW4gYmxvayB2IGRhdG90ZWtpICwlc2BcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisiTm90cmFuamEgbmFwYWthOiBwb3NrdXMgcGlzYW5qYSB2IHBvuWtvZG92YW4gYmxva1xuIgorIlphaHRldmEgcG8gcGlzYW5qdSBqZSBpZ25vcmlyYW5hLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA3Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgImlza2FuamUgbmkgdXNwZWxvIHYgd3JpdGVfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJOYXBha2EgcHJpIHBpc2FuanU6IHBvuWtvZG92YW4gYmxvayB2IGRhdG90ZWtpICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgIm5ldXNwZblubyBpc2thbmplIHYgd3JpdGVfc3VwZXJfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgc3VwZXItYmxvY2siCittc2dzdHIgInN1cGVyYmxva2EgbmkgbW++bm8gemFwaXNhdGkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1NgorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgInNlem5hbWEgaW5vZG92IG5pIG1vvm5vIHphcGlzYXRpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgInNlem5hbWEgb2Jtb+hpaiBuaSBtb75ubyB6YXBpc2F0aSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTYwCittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiWmFwaXMgaW5vZG92IG5pIG1vvmVuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1ODcKK21zZ2lkICJzZWVrIGZhaWxlZCIKK21zZ3N0ciAiaXNrYW5qZSBqZSBiaWxvIG5ldXNwZblubyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICJkb2RlbGl0ZXYgbWVkcG9tbmlsbmlrYSB6YSBzZXpuYW1lIG5pIHVzcGVsYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTk0Cittc2dpZCAidW5hYmxlIHRvIHJlYWQgc3VwZXIgYmxvY2siCittc2dzdHIgImJyYW5qZSBzdXBlcmJsb2thIG5pIG1vvm5vIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJwb7lrb2RvdmFuIHRpcCBkYXRvdGVrZSB2IHN1cGVyYmxva3UiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNAorbXNnaWQgIk9ubHkgMWsgYmxvY2tzL3pvbmVzIHN1cHBvcnRlZCIKK21zZ3N0ciAiU2FtbyAxayB2ZWxpa2kgYmxva2kvcG9kcm/oamEgc28gcG9kcHJ0aSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE2Cittc2dpZCAiYmFkIHNfaW1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgInBvuWtvZG92YW5vIHNfaW1hcF9ibG9ja3MgcG9samUgdiBzdXBlcmJsb2t1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAicG+5a29kb3ZhbiBzX3ptYXBfYmxvY2tzIHBvbGplIHYgc3VwZXJibG9rdSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI1Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgbWFwIgorbXNnc3RyICJEb2RlbGl0ZXYgbWVkcG9tbmlsbmlrYSB6YSBzZXpuYW0gaW5vZG92IG5pIG1vvm5hIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjgKKyMsIGZ1enp5Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBtYXAiCittc2dzdHIgIkRvZGVsaXRldiBtZWRwb21uaWxuaWthIHphIHNlem5hbSBpbm9kb3YgbmkgbW++bmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzMworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiRG9kZWxpdGV2IG1lZHBvbW5pbG5pa2EgemEgaW5vZGUgbmkgbW++bmEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICJEb2RlbGl0ZXYgbWVkcG9tbmlsbmlrYSB6YSC5dGV2aWxvIGlub2RvdiBuaSBtb75uYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjM5Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBjb3VudCIKK21zZ3N0ciAiRG9kZWxpdGV2IG1lZHBvbW5pbG5pa2EgemEguXRldmlsbyBwb2Ryb+hpaiBuaSBtb75uYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICJCcmFuamUgc2V6bmFtYSBpbm9kb3YgbmkgbW++bm8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MworbXNnaWQgIlVuYWJsZSB0byByZWFkIHpvbmUgbWFwIgorbXNnc3RyICJCcmFuamUgc2V6bmFtYSBwb2Ryb+hpaiBuaSBtb75ubyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ1Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGVzIgorbXNnc3RyICJCcmFuamUgaW5vZG92IG5pIG1vvm5vIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIk9wb3pvcmlsbzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGlub2Rlc1xuIgorbXNnc3RyICIlbGQgaW5vZG92XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGJsb2Nrc1xuIgorbXNnc3RyICIlbGQgYmxva292XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NCBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3RkYXRhem9uZT0lbGQgKCVsZClcbiIKK21zZ3N0ciAiUHJ2byBwb2RhdGtvdm5vIHBvZHJv6GplPSVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmVzaXplPSVkXG4iCittc2dzdHIgIlZlbGlrb3N0IHBvZHJv6GphPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJNYXhzaXplPSVsZFxuIgorbXNnc3RyICJOYWp2ZehqYSB2ZWxpa29zdD0lbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKK21zZ3N0ciAiU3RhbmplIGRhdC4gc2lzdGVtYT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorImRvbL5pbmEgZGF0b3Rla2U9JWRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjczIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtYXJrZWQgdW51c2VkLCBidXQgdXNlZCBmb3IgZmlsZSAnJXMnXG4iCittc2dzdHIgIklub2QgJWQgb3puYehlbiBrb3QgcHJvc3QsIHZlbmRhciBqZSC+ZSB6YXNlZGVuIHphIGRhdG90ZWtvICwlc2BcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICJPem5h6GksIGRhIGplIHYgcmFiaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc0OAorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZmlsZSBgJXMnIGhhcyBtb2RlICUwNW9cbiIKK21zZ3N0ciAiVGEgZGF0b3Rla2EgYCVzJyBqZSB2IHN0YW5qdSAlMDVvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcwNiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaW5vZGUgY291bnQgdG9vIGJpZy5cbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiC5dGV2aWxvIGlub2RvdiBwcmV2ZWxpa28uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NzQKK21zZ2lkICJyb290IGlub2RlIGlzbid0IGEgZGlyZWN0b3J5IgorbXNnc3RyICJrb3JlbnNraSBpbm9kIG5pIGltZW5payIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzg4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMQorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayBoYXMgYmVlbiB1c2VkIGJlZm9yZS4gTm93IGluIGZpbGUgYCVzJy4iCittc2dzdHIgIkJsb2sgamUgvmUgYmlsIHYgcmFiaS4gU2VkYWogamUgdiBkYXRvdGVraSBgJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzkwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU1CisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTAKK21zZ2lkICJDbGVhciIKK21zZ3N0ciAiUG/oaXN0aSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICJCbG9rICVkIHYgZGF0b3Rla2kgLCVzYCBqZSBvem5h6GVuIGtvdCBwcm9zdC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzUKK21zZ2lkICJDb3JyZWN0IgorbXNnc3RyICJQb3ByYXZpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZGlyZWN0b3J5ICclcycgY29udGFpbnMgYSBiYWQgaW5vZGUgbnVtYmVyIGZvciBmaWxlICclLipzJy4iCittc2dzdHIgIkRpcmVrdG9yeSAnJXMnIHZzZWJ1amUgcG+5a29kb3ZhbiC5dGV2aWxrbyBpbm9kYSB6YSBkYXRvdGVrbyAnJS4qcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIk9kc3RyYW5pIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4nIGlzbid0IGZpcnN0XG4iCittc2dzdHIgIiVzOiBwb7lrb2RvdmFuIGltZW5pazogJy4nIG5pIG5hIHBydmVtIG1lc3R1XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorbXNnc3RyICIlczogcG+5a29kb3ZhbiBpbWVuaWs6ICcuLicgbmkgbmEgZHJ1Z2VtIG1lc3R1XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTExOQorbXNnaWQgImludGVybmFsIGVycm9yIgorbXNnc3RyICJub3RyYW5qYSBuYXBha2EiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogc2l6ZSA8IDMyIgorbXNnc3RyICIlczogcG+5a29kb3ZhbiBpbWVuaWs6IHZlbGlrb3N0IDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAiaXNrYW5qZSB2IGJhZF96b25lIG5pIHVzcGVsbyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICJzdGFuamUgJWQgaW5vZGEgbmkgcG/oabnoZW5vIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbm90IHVzZWQsIG1hcmtlZCB1c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICJJbm9kICVkIG5pIHYgcmFidSwgb3puYehlbiBrb3QgdiByYWJpIHYgc2xpa2kuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiSW5vZCAlZCB2IHJhYmksIG96bmHoZW4ga290IG5pIHYgcmFiaSB2IHNsaWtpLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICJOYXN0YXZpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgKG1vZGUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorbXNnc3RyICJJbm9kICVkIChzdGFuamUgPSAlMDdvKSwgaV9ubGlua3M9JWQsIGNvdW50ZWQ9JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgImlfbmxpbmtzIG5hc3RhdmkgbmEgY291bnQgIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIKK21zZ3N0ciAiIgorIlBvZHJv6GplICVkOiBvem5h6GVubyBrb3QgdiByYWJpLCB2ZW5kYXIgZ2Egbm9iZW5hIGRhdG90ZWthIG5lIHVwb3JhYmxqYS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNgorbXNnaWQgIlVubWFyayIKK21zZ3N0ciAiT2R6bmHoaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJQb2Ryb+hqZSAlZDogdiByYWJpLCBjb3VudGVkPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBub3QgaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIlBvZHJv6GplICVkOiBuaSB2IHJhYmksIGNvdW50ZWQ9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorbXNnaWQgImJhZCBpbm9kZSBzaXplIgorbXNnc3RyICJzbGFiYSB2ZWxpa29zdCBpbm9kYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI5MQorbXNnaWQgImJhZCB2MiBpbm9kZSBzaXplIgorbXNnc3RyICJzbGFiYSB2ZWxpa29zdCB2MiBpbm9kYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMxNworbXNnaWQgIm5lZWQgdGVybWluYWwgZm9yIGludGVyYWN0aXZlIHJlcGFpcnMiCittc2dzdHIgInphIGludGVyYWt0aXZuYSBvcHJhdmlsYSBqZSBwb3RyZWJlbiB0ZXJtaW5hbCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMyMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJyVzJzogJXMiCittc2dzdHIgIiclcycgbmkgbW9nb+hlIG9kcHJldGkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgY2xlYW4sIG5vIGNoZWNrLlxuIgorbXNnc3RyICIlcyBqZSDoaXN0LCBwcmV2ZXJqYW5qZSBuaSBwb3RyZWJuby5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JjaW5nIGZpbGVzeXN0ZW0gY2hlY2sgb24gJXMuXG4iCittc2dzdHIgIlByaXNpbG5pIHByZWdsZWQgZGF0b3Rl6G5lZ2Egc2lzdGVtYSBuYSAlcy5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIG9uICVzIGlzIGRpcnR5LCBuZWVkcyBjaGVja2luZy5cbiIKK21zZ3N0ciAiRGF0b3Rl6G5pIHNpc3RlbSBuYSAlcyBuaSDoaXN0LCBwb3RyZWJ1amUgcHJlZ2xlZC5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZsZCBpbm9kZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmxkIGlub2RvdiBwb3JhYmxqZW5paCAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTZsZCB6b25lcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiJTZsZCBwb2Ryb+hpaiBwb3JhYmxqZW5paCAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmQgbmF2YWRuaWggZGF0b3Rla1xuIgorIiU2ZCBpbWVuaWtvdlxuIgorIiU2ZCBkYXRvdGVrIHpuYWtvdm5paCBuYXByYXZcbiIKKyIlNmQgZGF0b3RlayBibG/obmloIG5hcHJhdlxuIgorIiU2ZCBwb3ZlemF2XG4iCisiJTZkIHNpbWJvbG5paCBwb3ZlemF2XG4iCisiLS0tLS0tXG4iCisiJTZkIGRhdG90ZWtcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkZJTEUgU1lTVEVNIEhBUyBCRUVOIENIQU5HRURcbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiREFUT1RFyE5JIFNJU1RFTSBKRSBCSUwgU1BSRU1FTkpFTlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IG9kcGlyYW5qZSBuaSB1c3BlbG86ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogbmFwYWthIHByaSBpc2thbmp1IG5hICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogbmFwYWthIHByaSBicmFuanUgeiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9yIGNvdW50OiAlZCwgc2VjdG9yIHNpemU6ICVkXG4iCittc2dzdHIgIrl0ZXZpbG8gc2VrdG9yamV2OiAlZCwgdmVsaWtvc3Qgc2VrdG9yamV2OiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiBwYXJzZSBlcnJvclxuIgorbXNnc3RyICIlczogbmFwYWthIHByaSByYXrobGVuamV2YW5qdSBpemJpclxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLWltYWdlXG4iCittc2dzdHIgIlVwb3JhYmE6ICVzIFsteF0gWy1kIDy5dD5dIHNsaWthLWlzbzk2NjBcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy12XSBbLU4gbnItb2YtaW5vZGVzXSBbLVYgdm9sdW1lLW5hbWVdXG4iCisiICAgICAgIFstRiBmc25hbWVdIGRldmljZSBbYmxvY2stY291bnRdXG4iCittc2dzdHIgIiIKKyJVcG9yYWJhOiAlcyBbLWJdIFstTiC5dC4gaW5vZG92XSBbLVYgaW1lLW9ic2VnYVt2b2x1bWVdXVxuIgorIiAgICAgICAgIFstRiBpbWUgZGF0LiBzaXN0ZW1hXSBuYXByYXZhIFu5dC4gYmxva292XVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTMwCittc2dpZCAidm9sdW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgImltZSBvYnNlZ2EgamUgcHJlZG9sZ28iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzcKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAiaW1lIGRhdG90ZehuZWdhIHNpc3RlbWEgamUgcHJlZG9sZ28iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJzdGFuamEgbmFwcmF2ZSAlcyBuaSBtb2dv6GUgZG9iaXRpIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIGJsb2NrIHNwZWNpYWwgZGV2aWNlIgorbXNnc3RyICIlcyBuaSBwb3NlYm5hIGJsb+huYSBuYXByYXZhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAibmkgbW9nb+hlIG9kcHJldGkgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBzaXplIG9mICVzIgorbXNnc3RyICJuaSBtb2dv6GUgZG9iaXRpIHZlbGlrb3N0aSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgImJsb2NrcyBhcmd1bWVudCBwcmV2ZWxpaywgbmFqdmXoamkgamUgJWx1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjAyCittc2dpZCAidG9vIG1hbnkgaW5vZGVzIC0gbWF4IGlzIDUxMiIKK21zZ3N0ciAicHJldmXoIGlub2RvdiAtIG5hanZl6CA1MTIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UsIG5lZWQgYXQgbGVhc3QgJWxsdSBibG9ja3MiCittc2dzdHIgIm5pIHphZG9zdGkgcHJvc3RvcmEsIG5ham1hbmogJWx1IGJsb2tvdiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICJOYXByYXZhICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVm9sdW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiT2JzZWc6IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgImltZSBkYXQuIHNpc3RlbWE6IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrU2l6ZTogJWRcbiIKK21zZ3N0ciAiVmVsaWtvc3QgYmxva2E6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gMSBibG9jaylcbiIKK21zZ3N0ciAiSW5vZGk6ICVkICh2IGVuZW0gYmxva3UpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluICVsbGQgYmxvY2tzKVxuIgorbXNnc3RyICJJbm9kaTogJWQgKHYgJWxkIGJsb2tpaClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tzOiAlbGxkXG4iCittc2dzdHIgIkJsb2tpOiAlbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAia29uZWMgaW5vZG92OiAlZCwga29uZWMgcG9kYXRrb3Y6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgIm5hcGFrYSBwcmkgemFwaXNvdmFuanUgc3VwZXJibG9rYSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI1OQorbXNnaWQgImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIKK21zZ3N0ciAibmFwYWthIHByaSB6YXBpc292YW5qdSBrb3JlbnNrZWdhIGlub2RhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBpbm9kZSIKK21zZ3N0ciAibmFwYWthIHByaSB6YXBpc292YW5qdSBpbm9kYSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NworbXNnaWQgInNlZWsgZXJyb3IiCittc2dzdHIgIm5hcGFrYSBwcmkgaXNrYW5qdSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3MworbXNnaWQgImVycm9yIHdyaXRpbmcgLiBlbnRyeSIKK21zZ3N0ciAibmFwYWthIHByaSB6YXBpc292YW5qdSB2bm9zYSAuICIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3NworbXNnaWQgImVycm9yIHdyaXRpbmcgLi4gZW50cnkiCittc2dzdHIgIm5hcGFrYSBwcmkgemFwaXNvdmFuanUgdm5vc2EgLi4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2xvc2luZyAlcyIKK21zZ3N0ciAibmFwYWthIHByaSB6YXBpcmFuanUgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBta2ZzIFstVl0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIGRldmljZSBbc2l6ZV1cbiIKK21zZ3N0ciAiIgorIlVwb3JhYmE6IG1rZnMgWy1WXSBbLXQgdGlwIGRhdC4gc2lzdGVtYV0gW2l6YmlyZSBkYXQuIHNpc3QuXSBuYXByYXZhICIKKyJbdmVsaWtvc3RdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjg4IGRpc2stdXRpbHMvbWtmcy5jOjk2IGZkaXNrL2NmZGlzay5jOjM1MworIzogZ2V0b3B0L2dldG9wdC5jOjg2IGdldG9wdC9nZXRvcHQuYzo5NiBsb2dpbi11dGlscy93YWxsLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPdXQgb2YgbWVtb3J5IVxuIgorbXNnc3RyICIlczogWm1hbmprYWxvIHBvbW5pbG5pa2EhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjEwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtmcyAoJXMpXG4iCittc2dzdHIgIm1rZnMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MTI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaF0gWy12XSBbLWIgYmxrc2l6ZV0gWy1lIGVkaXRpb25dIFstTiBlbmRpYW5dIFstaSBmaWxlXSBbLW4gIgorIm5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAtdiAgICAgICAgIGJlIHZlcmJvc2VcbiIKKyIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgKG5vbi16ZXJvIGV4aXQgc3RhdHVzKVxuIgorIiAtYiBibGtzaXplIHVzZSB0aGlzIGJsb2Nrc2l6ZSwgbXVzdCBlcXVhbCBwYWdlIHNpemVcbiIKKyIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgY3JhbWZzIGVuZGlhbm5lc3MgKGJpZ3xsaXR0bGV8aG9zdCksIGRlZmF1bHQgaG9zdFxuIgorIiAtaSBmaWxlICAgIGluc2VydCBhIGZpbGUgaW1hZ2UgaW50byB0aGUgZmlsZXN5c3RlbSAocmVxdWlyZXMgPj0gMi40LjApXG4iCisiIC1uIG5hbWUgICAgc2V0IG5hbWUgb2YgY3JhbWZzIGZpbGVzeXN0ZW1cbiIKKyIgLXAgICAgICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIgorIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisiIC16ICAgICAgICAgbWFrZSBleHBsaWNpdCBob2xlcyAocmVxdWlyZXMgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3NlZFxuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCittc2dzdHIgIiIKKyJ1cG9yYWJhOiAlcyBbLWhdIFstdl0gWy1iIHZlbGlrb3N0IGJsb2thXSBbLWUgaXpkYWphXSBbLWkgZGF0b3Rla2FdIFstbiBpbWVdICIKKyJpbWVuaWsgaXpob2RuYV9kYXRvdGVrYVxuIgorIiAtaCAgICAgICAgICAgICAgICAgIHByaWthvmkgdG8gcG9tb+hcbiIKKyIgLXYgICAgICAgICAgICAgICAgICBwcmlrYb5pIHZl6CBpbmZvcm1hY2lqXG4iCisiIC1FICAgICAgICAgICAgICAgICAgc3ByZW1lbmkgdnNhIG9wb3pvcmlsYSB2IG5hcGFrZShuZW5p6GVsbmEgdnJlZG5vc3QgIgorIml6aG9kYSlcbiIKKyIgLWIgdmVsaWtvc3QgYmxva2EgICB1cG9yYWJpIHRvIHZlbGlrb3N0IGJsb2thLCBtb3JhIGJpdGkgZW5hayB2ZWxpa29zdGkgIgorInN0cmFuaVxuIgorIiAtZSBpemRhamEgICAgICAgICAgIG5hc3RhdmkguXRldmlsa28gaXpkYWplIChkZWwgaWRlbnRpZmlrYWNpamUoZnNpZCkgZGF0LiAiCisic2lzdGVtYSlcbiIKKyIgLWkgZGF0b3Rla2EgICAgICAgICB2c3Rhdmkgc2xpa28gZGF0b3Rla2UgdiBkYXRvdGXobmkgc2lzdGVtIChyYXpsaehpY2EgPj0gIgorIjIuNC4wKVxuIgorIiAtbiBpbWUgICAgICAgICAgICAgIG5hc3RhdmltIGltZSBkYXRvdGXobmVnYSBzaXN0ZW1hIGNyYW1mc1xuIgorIiAtcCAgICAgICAgICAgICAgICAgIHBvdmXoYWogemEgJWQgYmFqdG92IHphIHphZ29uc2tpIGtvZFxuIgorIiAtcyAgICAgICAgICAgICAgICAgIHJhenZyc3RpIHZub3NlIGltZW5pa292IChzdGFyZWq5aSBhcmd1bWVudCAtIHNlIG5lICIKKyJ1cG+5dGV2YSlcbiIKKyIgLXogICAgICAgICAgICAgICAgICBuYXJlZGkgamFzbmUgbHVrbmplIChyYXpsaehpY2EgPj0gMi4zLjM5KVxuIgorIiBpbWVuaWsgICAgICAgICAgICAgIGtvcmVuIGRhdG90ZehuZWdhIHNpc3RlbWEsIGtpIGdhIHN0aXNrYW1vXG4iCisiIGl6aG9kbmFfZGF0b3Rla2EgICAgaXpob2RuYSBkYXRvdGVrYVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MzM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVmVyeSBsb25nICglenUgYnl0ZXMpIGZpbGVuYW1lIGAlcycgZm91bmQuXG4iCisiIFBsZWFzZSBpbmNyZWFzZSBNQVhfSU5QVVRfTkFNRUxFTiBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICBFeGl0aW5nLlxuIgorbXNnc3RyICIiCisiT2JzdGFqYSB6ZWxvIGRvbGdhICgldSBiYWp0b3YpIGRhdG90ZWthIGAlcycuXG4iCisiJyBQcm9zaW0gZGEgcG92ZehhdGUgTUFYX0lOUFVUX05BTUVMRU4gdiBta2NyYW1mcy5jIGluIHBvbm92bm8gcHJldmVkZXRlLiAiCisiS29u6HVqZW0uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo0NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlsZXN5c3RlbSB0b28gYmlnLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiZGF0b3Rl6G5pIHNpc3RlbSBqZSBwcmV2ZWxpay4gS29u6HVqZW0uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQUlFRUU6IGJsb2NrIFwiY29tcHJlc3NlZFwiIHRvID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorbXNnc3RyICJBSUVFRTogYmxvayBcInN0aXNuamVuXCIgZG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2QgYmFqdG92KVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorIm9wb3pvcmlsbzogcHJpYmxpvmVrIHphaHRldmFuZSB2ZWxpa29zdGkgKHpnb3JuamEgbWVqYSkgamUgJUxkTUIsIGFtcGFrICIKKyJuYWp2ZehqYSB2ZWxpa29zdCBzbGlrZSBqZSAldU1CLiBMYWhrbyBrb27oYW1vIHByZWQga29uY2VtLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiVmtsanXobm86ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRpcmVjdG9yeSBkYXRhOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiUG9kYXRraSBpbWVuaWthOiAlZCBiYWp0b3ZcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICJWc2Ugc2t1cGFqOiAlZCBraWxvYmFqdG92XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN1cGVyIGJsb2NrOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiU3VwZXJibG9rOiAlZCBiYWp0b3ZcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDUkM6ICV4XG4iCittc2dzdHIgIkNSQzogJXhcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICJ6YSBST00gc2xpa28gbmkgemFkb3N0aSBwcm9zdG9yYSAoJUxkIHJlemVydmlyYW5vLCAlZCB2IHJhYmkpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiemFwaXNvdmFuamUgUk9NIHNsaWtlIG5pIHVzcGVsbyAoJWQgJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZW5hbWVzIHRydW5jYXRlZCB0byAyNTUgYnl0ZXMuXG4iCittc2dzdHIgIm9wb3pvcmlsbzogaW1lbmEgZGF0b3RlayBzbyBza3LoZW5hIG5hIDI1NSBiYWp0b3YuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iCittc2dzdHIgIm9wb3pvcmlsbzogbmVrYXRlcmUgZGF0b3Rla2Ugc28gYmlsZSBpZ25vcmlyYW5lIHphcmFkaSBuYXBhay5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIHNpemVzIHRydW5jYXRlZCB0byAlbHVNQiAobWludXMgMSBieXRlKS5cbiIKK21zZ3N0ciAid2FybmluZzogdmVsaWtvc3RpIGRhdG90ZWsgem1hbmphuWFuZSBuYSAlbHVNQiAoMSBiYWp0IG1hbmopLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiB1aWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIm9wb3pvcmlsbzogdWlkLWkgem1hbmq5YW5pIG5hICV1IGJpdG92LiAgKExhaGtvIHZwbGl2YSBuYSB2YXJub3N0LilcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ2lkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICJvcG96b3JpbG86IGdpZC1pIHptYW5quWFuaSBuYSAldSBiaXRvdi4gIChMYWhrbyB2cGxpdmEgbmEgdmFybm9zdC4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisiT1BPWk9SSUxPOiC5dGV2aWxrZSBuYXByYXYgem1hbmq5YW5lIG5hICV1IGJpdG92LiBUbyBza29yYWogemFnb3Rvdm8gIgorInBvbWVuaSxcbiIKKyJkYSBzZSBib2RvIHBvamF2aWxlIG5hcGFrZSB2IGRhdG90ZWthaCBuYXByYXYuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIlVwb3JhYmE6ICVzIFstYyB8IC1sIGltZSBkYXQuXSBbLW5YWF0gWy1pWFhdIC9kZXYvaW1lIFtibG9raV1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2UgYSBmaWxlc3lzdGVtIGhlcmUhIgorbXNnc3RyICIlcyBqZSBwcmlrbG9wbGplbjsgZGF0LiBzaXN0ZW1hIHphdG8gbmUgYm8gbmFyZWplbiEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJpc2thbmplIGRvIHphZ29uc2tlZ2EgYmxva2EgbmkgdXNwZWxvIHYgd3JpdGVfdGFibGVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTAKK21zZ2lkICJ1bmFibGUgdG8gY2xlYXIgYm9vdCBzZWN0b3IiCittc2dzdHIgInphZ29uc2tlZ2Egc2VrdG9yamEgbmkgbW9nb+hlIHBv6GlzdGl0aSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkyCittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJpc2thbmplIG5pIHVzcGVsbyB2IHdyaXRlX3RhYmxlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk2Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiemFwaXMgc2V6bmFtYSBpbm9kb3YgbmkgdXNwZWwiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5OAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiemFwaXMgc2V6bmFtYSBwb2Ryb+hpaiBuaSB1c3BlbCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjAwCittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiemFwaXMgaW5vZG92IG5pIHVzcGVsIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgInBpc2FuamUgbmkgdXNwZWxvIHYgd3JpdGVfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIxNyBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyOTEKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM0MAorbXNnaWQgInRvbyBtYW55IGJhZCBibG9ja3MiCittc2dzdHIgInByZXZl6CBwb7lrb2RvdmFuaWggYmxva292IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMjUKK21zZ2lkICJub3QgZW5vdWdoIGdvb2QgYmxvY2tzIgorbXNnc3RyICJwcmVtYWxvIG5lcG+5a29kb3ZhbmloIGJsb2tvdiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQwCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiCittc2dzdHIgImRvZGVsaXRldiBtZWRwb21uaWxuaWthIHphIHNlem5hbWUgbmkgdXNwZWxhIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgImRvZGVsaXRldiBtZWRwb21uaWxuaWthIHphIGlub2RlIG5pIHVzcGVsYSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJNYXhzaXplPSVsZFxuIgorIlxuIgorbXNnc3RyICIiCisiTmFqdmXoamEgdmVsaWtvc3Q9JWxkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ2OQorbXNnaWQgInNlZWsgZmFpbGVkIGR1cmluZyB0ZXN0aW5nIG9mIGJsb2NrcyIKK21zZ3N0ciAiaXNrYW5qZSBtZWQgdGVzdGlyYW5qZW0gYmxva292IG5pIHVzcGVsbyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIldlaXJkIHZhbHVlcyBpbiBkb19jaGVjazogcHJvYmFibHkgYnVnc1xuIgorbXNnc3RyICJOZW5hdmFkbmUgdnJlZG5vc3RpIHYgZG9fY2hlY2s6IHZlcmpldG5vIHByb2dyYW1za2EgbmFwYWthXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUwOCBkaXNrLXV0aWxzL21rc3dhcC5jOjMxNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIKK21zZ3N0ciAiaXNrYW5qZSB2IGNoZWNrX2Jsb2NrcyBuaSB1c3BlbG8iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUxNworbXNnaWQgImJhZCBibG9ja3MgYmVmb3JlIGRhdGEtYXJlYTogY2Fubm90IG1ha2UgZnMiCittc2dzdHIgIiIKKyJzbGFiaSBibG9raSBwcmVkIHBvZGF0a292bmltIG9ibW/oamVtOiBkYXRvdGXobmVnYSBzaXN0ZW1hIG5lIG1vcmVtIG5hcmVkaXRpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWQgcG+5a29kb3ZhbmloIGJsb2tvdlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAiZW4gcG+5a29kb3ZhbiBibG9rXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzNQorbXNnaWQgImNhbid0IG9wZW4gZmlsZSBvZiBiYWQgYmxvY2tzIgorbXNnc3RyICJuZSBtb3JlbSBvZHByZXRpIGRhdG90ZWtlIHMgcG+5a29kb3ZhbmltaSBibG9raSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQwCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJEaXNrb3ZuZWdhIHBvZ29uYSBuaSBtb2dv6GUgcHJlYnJhdGkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJ0b2wgZXJyb3I6IG51bWJlciBvZiBibG9ja3Mgbm90IHNwZWNpZmllZCIKK21zZ3N0ciAibmFwYWthIHYgc3RydG9sOiC5dGV2aWxvIGJsb2tvdiBuaSBwb2Rhbm8iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAic3RhbmphICVzIG5pIG1vZ2/oZSBkb2JpdGkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAibmkgbW9nb+hlIG9kcHJldGkgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzZWN0b3Igc2l6ZSBmb3IgJXMiCittc2dzdHIgIm5pIG1vZ2/oZSBkb2JpdGkgdmVsaWtvc3RpICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgIm5pIG1vZ2/oZSBkb2JpdGkgdmVsaWtvc3RpICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICJuYSAnJXMnIG5lIGJvIHBvc2t1c2EgbmFyZWRpdGkgZGF0b3Rl6G5pIHNpc3RlbSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjY1CisjLCBmdXp6eQorbXNnaWQgIm51bWJlciBvZiBibG9ja3MgdG9vIHNtYWxsIgorbXNnc3RyICKpdGV2aWxvIHNla3RvcmpldiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICJQb2RhbmEgdmVsaWtvc3Qgc3RyYW5pIG5pIGRvYnJhJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZCwgaW5zdGVhZCBvZiB0aGUgc3lzdGVtIHZhbHVlICVkXG4iCittc2dzdHIgIiIKKyJVcG9yYWJsamFtbyBwb2Rhbm8gdmVsaWtvc3Qgc3RyYW5pICVkIG5hbWVzdG8gc2lzdGVtc2tlIHZyZWRub3N0aSAlZC8lZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiUG+5a29kb3ZhbmEgdmVsaWtvc3QgZ2xhdmEgaXptZW5qYWxuZWdhIHByb3N0b3JhLCBvem5ha2EgbmkgemFwaXNhbmFcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFiZWwgd2FzIHRydW5jYXRlZC5cbiIKK21zZ3N0ciAiT3puYWthIGplIGJpbGEgc2tyYWq5YW5hXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICJuaSBvem5ha2UiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHV1aWRcbiIKK21zZ3N0ciAibmkgdXVpZC1hXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jXSBbLXBQQUdFU1pdIFstTCBsYWJlbF0gWy1VIFVVSURdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICJVcG9yYWJhOiAlcyBbLWNdIFstdjB8LXYxXSBbLXAgdmVsLiBzdHJhbmldIC9kZXYvaW1lIFtibG9raV1cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyOTcKK21zZ2lkICJ0b28gbWFueSBiYWQgcGFnZXMiCittc2dzdHIgInByZXZl6CBwb7lrb2RvdmFuaWggc3RyYW5pIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiWm1hbmprYWxvIGplIHBvbW5pbG5pa2EiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICJlbmEgcG+5a29kb3ZhbmEgc3RyYW5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVsdSBiYWQgcGFnZXNcbiIKK21zZ3N0ciAiJWx1IHBvuWtvZG92YW5paCBzdHJhbmlcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MDIgZGlzay11dGlscy9ta3N3YXAuYzo0MzkgZGlzay11dGlscy9ta3N3YXAuYzo2NTkKK21zZ2lkICJ1bmFibGUgdG8gcmV3aW5kIHN3YXAtZGV2aWNlIgorbXNnc3RyICJpem1lbmphbG5lIG5hcHJhdmUgbmkgbW9nb+hlIHByZXZpdGkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBuZXcgbGliYmxraWQgcHJvYmUiCittc2dzdHIgImRvZGVsaXRldiBtZWRwb21uaWxuaWthIHphIGlub2RlIG5pIHVzcGVsYSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTUKK21zZ2lkICJ1bmFibGUgdG8gYXNzaWduIGRldmljZSB0byBsaWJsa2lkIHByb2JlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBlcmFzZSBib290Yml0cyBzZWN0b3JzIgorbXNnc3RyICJ6YWdvbnNrZWdhIHNla3RvcmphIG5pIG1vZ2/oZSBwb+hpc3RpdGkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogd2FybmluZzogZG9uJ3QgZXJhc2UgYm9vdGJpdHMgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgICglcyBwYXJ0aXRpb24gdGFibGUgZGV0ZWN0ZWQpLiAiCittc2dzdHIgIiAgIHAgICBpenBpuWkgQlNELWpldm8gdGFiZWxvIHJhemRlbGtvdiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgb24gd2hvbGUgZGlzay4gIgorbXNnc3RyICIgICBzICAgcHJpa2G+aSBjZWxvc3RubyBvem5ha28gZGlza2EiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICBzICAgcHJpa2G+aSBjZWxvc3RubyBvem5ha28gZGlza2EiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkb2VzIG5vdCBzdXBwb3J0IHN3YXBzcGFjZSB2ZXJzaW9uICVkLlxuIgorbXNnc3RyICIlczogbmFwYWthOiBuZXpuYW5hIHJhemxp6GljYSAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0OAorIywgZnV6enkKK21zZ2lkICJlcnJvcjogVVVJRCBwYXJzaW5nIGZhaWxlZCIKK21zZ3N0ciAiIgorIlxuIgorIk5hcGFrYSBwcmkgemFwaXJhbmp1IGRhdG90ZWtlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIKK21zZ3N0ciAiJXM6IG5hcGFrYTogaXptZW5qYWxuZWdhIHByb3N0b3JhIG5pIG1vvm5vIG5pa2Ftb3IgbmFtZXN0aXRpP1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBuYXBha2E6IHZlbGlrb3N0ICVsdSBqZSB2ZehqYSBvZCB2ZWxpa29zdGkgbmFwcmF2ZSAlbHVcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc3dhcCBhcmVhIG5lZWRzIHRvIGJlIGF0IGxlYXN0ICVsZCBLaUJcbiIKK21zZ3N0ciAiJXM6IG5hcGFrYTogdmVsaWtvc3QgaXptZW5qYWxuZWdhIHByb3N0b3JhIG1vcmEgYml0aSB2c2FqICVsZCBLQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBvcG96b3JpbG86IG1lamEgaXptZW5qYWxuZWdhIHByb3N0b3JhIHBvc3RhdmxqZW5hIG5hICVsZEtCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHdpbGwgbm90IHRyeSB0byBtYWtlIHN3YXBkZXZpY2Ugb24gJyVzJ1xuIgorbXNnc3RyICJOYXByYXZhIGl6bWVuamFsbmVnYSBwcm9zdG9yYSBuZSBibyB1c3R2YXJqZW5hIG5hICwlc2AiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6ICVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2Ugc3dhcHNwYWNlLlxuIgorbXNnc3RyICIlcyBqZSBwcmlrbG9wbGplbjsgZGF0LiBzaXN0ZW1hIHphdG8gbmUgYm8gbmFyZWplbiEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjQ4Cittc2dpZCAiVW5hYmxlIHRvIHNldCB1cCBzd2FwLXNwYWNlOiB1bnJlYWRhYmxlIgorbXNnc3RyICJJem1lbmphbG5lZ2EgcHJvc3RvcmEgbmkgbW9nb+hlIG5hc3Rhdml0aTogbmViZXJsaml2IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyB1cCBzd2Fwc3BhY2UgdmVyc2lvbiAxLCBzaXplID0gJWxsdSBLaUJcbiIKK21zZ3N0ciAiUHJpcHJhdmxqYW1vIGl6bWVuamFsbmkgcHJvc3RvciByYXpsaehpY2UgJWQsIHZlbGlrb3N0ID0gJWxsdSBrQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gd3JpdGUgc2lnbmF0dXJlIHBhZ2U6ICVzIgorbXNnc3RyICJzdHJhbmkgcyBwb2RwaXNvbSBuaSBtb2dv6GUgemFwaXNhdGkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICJmc3luYyBuaSB1c3BlbCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gb2J0YWluIHNlbGludXggZmlsZSBsYWJlbDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MAorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgInN0YW5qYSAlcyBuaSBtb2dv6GUgZG9iaXRpIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgInphcGlzIGlub2RvdiBuaSB1c3BlbCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTUKK21zZ2lkICJjb3VsZG4ndCBjb21wdXRlIHNlbGludXggY29udGV4dCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjcwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byByZWxhYmVsICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICJuaSBtb2dv6GUgcHJlaW1lbm92YXRpICVzIHYgJXM6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgICVzICIKK21zZ3N0ciAiVXBvcmFiYTpcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJPbWVqaXR2ZW5lIGRhdG90ZWtlICVzIG5pIG1vZ2/oZSB6YWtsZW5pdGk6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSBibG9jayBkZXZcbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiAlcyBuaSBibG9rb3ZuYSBuYXByYXZhXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBtYXN0ZXIgcmF3IGRldmljZSAnIgorbXNnc3RyICJzdGFuamEgbmFwcmF2ZSAlcyBuaSBtb2dv6GUgZG9iaXRpIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJzdGFuamEgbmFwcmF2ZSAlcyBuaSBtb2dv6GUgZG9iaXRpIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUmF3IGRldmljZSAnJXMnIGlzIG5vdCBhIGNoYXJhY3RlciBkZXZcbiIKK21zZ3N0ciAiL2Rldi8lczogbmkgem5ha292bmEgbmFwcmF2YSIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIHJhdyBkZXZcbiIKK21zZ3N0ciAiJXMgbmkgcG9zZWJuYSBibG/obmEgbmFwcmF2YSIKKworIzogZGlzay11dGlscy9yYXcuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcXVlcnlpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNDEgZGlzay11dGlscy9yYXcuYzoyNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmF3JWQ6XHRib3VuZCB0byBtYWpvciAlZCwgbWlub3IgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igc2V0dGluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAibmFwYWthIHByaSB6YXVzdGF2bGphbmp1IHN0b3JpdHZlOiBcIiVzXCIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM3OCBmZGlzay9jZmRpc2suYzoyMDgzCittc2dpZCAiVW51c2FibGUiCittc2dzdHIgIk5ldXBvcmFibm8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAiTmV1cG9yYWJsamVuIHByb3N0b3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MworbXNnaWQgIkxpbnV4IGV4dDIiCittc2dzdHIgIkxpbnV4IGV4dDIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NQorbXNnaWQgIkxpbnV4IGV4dDMiCittc2dzdHIgIkxpbnV4IGV4dDMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NworbXNnaWQgIkxpbnV4IFhGUyIKK21zZ3N0ciAiTGludXggWEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozODkKKyMsIGZ1enp5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBYRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIkRpc2sgamUgYmlsIHNwcmVtZW5qZW4uXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIlBvbm92bm8gemG+ZW5pdGUgc2lzdGVtLCBkYSBibyByYXpkZWxpdHZlbmEgdGFiZWxhIHByYXZpbG5vIGG+dXJpcmFuYS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJPUE9aT1JJTE86IMhlIHN0ZSB1c3R2YXJpbGkgYWxpIHNwcmVtZW5pbGlcbiIKKyJET1MgNi54IHJhemRlbGtlLCBzaSBwcm9zaW0gb2dsZWp0ZVxuIgorInByaXJv6G5payBjZmRpc2thIHphIGRvZGF0bmUgaW5mb3JtYWNpamUuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNgorbXNnaWQgIkZBVEFMIEVSUk9SIgorbXNnc3RyICJVU09ETkEgTkFQQUtBIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTcKK21zZ2lkICJQcmVzcyBhbnkga2V5IHRvIGV4aXQgY2ZkaXNrIgorbXNnc3RyICJQcml0aXNuaWtlIGthdGVyb2tvbGkgdGlwa28gemEgaXpob2QgaXogY2ZkaXNrLWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NCBmZGlzay9jZmRpc2suYzo1NzIKK21zZ2lkICJDYW5ub3Qgc2VlayBvbiBkaXNrIGRyaXZlIgorbXNnc3RyICJJc2thbmplIG5hIGRpc2t1IG5pIG1vZ2/oZSIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY2Cittc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIKK21zZ3N0ciAiRGlza292bmVnYSBwb2dvbmEgbmkgbW9nb+hlIHByZWJyYXRpIgorCisjOiBmZGlzay9jZmRpc2suYzo1NzQKK21zZ2lkICJDYW5ub3Qgd3JpdGUgZGlzayBkcml2ZSIKK21zZ3N0ciAiTmEgZGlza292bmkgcG9nb24gbmkgbW9nb+hlIHBpc2F0aSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTE3Cittc2dpZCAiVG9vIG1hbnkgcGFydGl0aW9ucyIKK21zZ3N0ciAiUHJldmXoIHJhemRlbGtvdiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTIyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIlJhemRlbGVrIHNlIHph6G5lIHByZWQgc2VrdG9yamVtIDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiUmF6ZGVsZWsgc2Uga29u6GEgcHJlZCBzZWt0b3JqZW0gMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTMyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiUmF6ZGVsZWsgc2UgemHobmUgcG8ga29uY3UgZGlza2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICJSYXpkZWxlayBzZSBrb27oYSBwbyBrb25jdSBkaXNrYSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgIlJhemRlbGVrIHNlIGtvbuhhIHYgemFkbmppIGRlbG5pIHN0ZXppIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgImxvZ2nobmkgcmF6ZGVsa2kgbmlzbyB2IHByYXZlbSBkaXNrb3ZuZW0gcmVkdSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgImxvZ2nobmkgcmF6ZGVsa2kgc2UgcHJla3JpdmFqbyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTczCittc2dpZCAiZW5sYXJnZWQgbG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgInBvdmXoYW5pIGxvZ2nobmkgcmF6ZGVsa2kgc2UgcHJla3JpdmFqbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAwMworbXNnaWQgIiIKKyIhISEhIEludGVybmFsIGVycm9yIGNyZWF0aW5nIGxvZ2ljYWwgZHJpdmUgd2l0aCBubyBleHRlbmRlZCBwYXJ0aXRpb24gISEhISIKK21zZ3N0ciAiIgorIiEhISEgSW50ZXJuYSBuYXBha2EgcHJpIHVzdHZhcmphbmplIGxvZ2nobmVnYSBwb2dvbmEgYnJleiByYXq5aXJqZW5lZ2EgIgorInJhemRlbGthICEhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMTQgZmRpc2svY2ZkaXNrLmM6MTAyNgorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxvZ2ljYWwgZHJpdmUgaGVyZSAtLSB3b3VsZCBjcmVhdGUgdHdvIGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiIKKyJMb2dp6G5lZ2EgcG9nb25hIG5hIHRlbSBtZXN0dSBuaSBtb2dv6GUgdXN0dmFyaXRpIC0gdXN0dmFyaWxpIGJpIGR2YSAiCisicmF6uWlyamVuYSByYXpkZWxrYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICJNZW51anNraSB2bm9zIHByZWRvbGcuIE1lbnUgbGFoa28gaXpnbGVkYSBuZW5hdmFkbm8uIgorCisjOiBmZGlzay9jZmRpc2suYzoxMjI0CisjLCBmdXp6eQorbXNnaWQgIk1lbnUgd2l0aG91dCBkaXJlY3Rpb24uIERlZmF1bHRpbmcgdG8gaG9yaXpvbnRhbC4iCittc2dzdHIgIk1lbnUgYnJleiBzbWVyaS4gUHJpdnpldGEgamUgdm9kb3Jhdm5vLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM1NgorbXNnaWQgIklsbGVnYWwga2V5IgorbXNnc3RyICJOZWRvdm9samVuYSB0aXBrYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM3OQorbXNnaWQgIlByZXNzIGEga2V5IHRvIGNvbnRpbnVlIgorbXNnc3RyICJQcml0aXNuaXRlIGthdGVyb2tvbGkgdGlwa28gemEgbmFkYWxqZXZhbmplIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NgorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIlByaW1hcnkiCittc2dzdHIgIlByaW1hcmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2Cittc2dpZCAiQ3JlYXRlIGEgbmV3IHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJVc3R2YXJpIG5vdiBwcmltYXJlbiByYXpkZWxlayIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNyBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODUKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJMb2dpY2FsIgorbXNnc3RyICJMb2dp6GVuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3Cittc2dpZCAiQ3JlYXRlIGEgbmV3IGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICJVc3R2YXJpIG5vdiBsb2dp6GVuIHJhemRlbGVrIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMgZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkNhbmNlbCIKK21zZ3N0ciAiUHJla2xp6GkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MworbXNnaWQgIkRvbid0IGNyZWF0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiTmUgdXN0dmFyaSByYXpkZWxrYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NAorbXNnaWQgIiEhISBJbnRlcm5hbCBlcnJvciAhISEiCittc2dzdHIgIiEhISBJbnRlcm5hIG5hcGFrYSAhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiVmVsaWtvc3QgKHYgTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIlph6GV0ZWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJEb2RhaiByYXpkZWxlayBuYSB6YehldGVrIG5lemFzZWRlbmVnYSBwcm9zdG9yYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkVuZCIKK21zZ3N0ciAiS29uZWMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJEb2RhaiByYXpkZWxlayBuYSBrb25lYyBuZXphc2VkZW5lZ2EgcHJvc3RvcmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICJOaSBwcm9zdG9yYSB6YSB1c3R2YXJqYW5qZSByYXq5aXJqZW5lZ2EgcmF6ZGVsa2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKKyMsIGZ1enp5Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJOaSB0YWJlbGUgcmF6ZGVsa292LlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc4CisjLCBmdXp6eQorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiTmkgdGFiZWxlIHJhemRlbGtvdi4gVXBvcmFiYSBwcmF6bmUgdGFiZWxlLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU4OAorIywgZnV6enkKK21zZ2lkICJCYWQgc2lnbmF0dXJlIG9uIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiUG+5a29kb3ZhbiBwb2RwaXMgbmEgdGFiZWxpIHJhemRlbGtvdiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorIywgZnV6enkKK21zZ2lkICJVbmtub3duIHBhcnRpdGlvbiB0YWJsZSB0eXBlIgorbXNnc3RyICJOZXpuYW4gdGlwIHRhYmVsZSByYXpkZWxrb3YiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTQKK21zZ2lkICJEbyB5b3Ugd2lzaCB0byBzdGFydCB3aXRoIGEgemVybyB0YWJsZSBbeS9OXSA/IgorbXNnc3RyICJBbGkgvmVsaXRlIHph6GV0aSBzIHByYXpubyB0YWJlbG8gW3kvTl0gPyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAiTmF2ZWRsaSBzdGUgdmXoIHN0ZXosIGtvdCBqaWggamUgbmEgZGlza3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzQKK21zZ2lkICJDYW5ub3Qgb3BlbiBkaXNrIGRyaXZlIgorbXNnc3RyICJEaXNrb3ZuZSBlbm90ZSBuaSBtb2dv6GUgb2RwcmV0aSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NiBmZGlzay9jZmRpc2suYzoxODY1Cittc2dpZCAiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIKK21zZ3N0ciAiRGlzayBvZHBydCBzYW1vIHphIGJyYW5qZSAtIG5pbWF0ZSBkb3ZvbGplbmphIHphIHBpc2FuamUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2ODcKK21zZ2lkICIiCisiV2FybmluZyEhICBVbnN1cHBvcnRlZCBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZC4gVXNlIEdOVSBQYXJ0ZWQuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MDYKK21zZ2lkICJDYW5ub3QgZ2V0IGRpc2sgc2l6ZSIKK21zZ3N0ciAiVmVsaWtvc3RpIGRpc2tvdm5lIHN0ZXplIG5pIG1vZ2/oZSBwcmVicmF0aSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTczMgorbXNnaWQgIkJhZCBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiUG+5a29kb3ZhbiBwcmltYXJuaSByYXpkZWxlayIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiUG+5a29kb3ZhbiBsb2dp6G5pIHJhemRlbGVrIgorCisjOiBmZGlzay9jZmRpc2suYzoxODc3Cittc2dpZCAiV2FybmluZyEhICBUaGlzIG1heSBkZXN0cm95IGRhdGEgb24geW91ciBkaXNrISIKK21zZ3N0ciAiT3Bvem9yaWxvISEgVG8gbGFoa28gdW5p6GkgcG9kYXRrZSBuYSB2YbllbSBkaXNrdSEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODEKKyMsIGZ1enp5Cittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIiIKKyJTdGUgcHJlcHJp6GFuaSwgZGEgvmVsaXRlIHphcGlzYXRpIHRhYmVsbyByYXpkZWxrb3YgbmEgZGlzaz8gKGRhIGFsaSBuZSk6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4NworbXNnaWQgIm5vIgorbXNnc3RyICJuZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4OQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIlRhYmVsYSByYXpkZWxrb3YgbmkgYmlsYSB6YXBpc2FuYSBuYSBkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzoxODkxCittc2dpZCAieWVzIgorbXNnc3RyICJkYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5NQorbXNnaWQgIlBsZWFzZSBlbnRlciBgeWVzJyBvciBgbm8nIgorbXNnc3RyICJQcm9zaW0gdnBpuWl0ZSAsZGFgIGFsaSAsbmVgIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk5Cittc2dpZCAiV3JpdGluZyBwYXJ0aXRpb24gdGFibGUgdG8gZGlzay4uLiIKK21zZ3N0ciAiVGFiZWxhIHJhemRlbGtvdiBzZSB6YXBpc3VqZSBuYSBkaXNrLi4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI0IGZkaXNrL2NmZGlzay5jOjE5MjgKK21zZ2lkICJXcm90ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiVGFiZWxhIHJhemRlbGtvdiBqZSBiaWxhIHphcGlzYW5hIG5hIGRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKKyMsIGZ1enp5Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIlRhYmVsYSByYXpkZWxrb3YgemFwaXNhbmEsIGFtcGFrIHBvbm92bm8gYnJhbmplIHRhYmVsZSBuaSB1c3BlbG8uIFBvbm92bm8gIgorInphvmVuaXRlIHNpc3RlbSwgZGEgcG9zb2RvYml0ZSB0YWJlbG8uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM2Cittc2dpZCAiTm8gcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyJOb2JlbiBwcmltYXJuaSByYXpkZWxlayBuaSBvem5h6GVuIGtvdCB6YWdvbnNraS4gRE9TIE1CUiBzZSBuZSBtb3JlIHphZ25hdGkuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM4Cittc2dpZCAiIgorIk1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisiVmXoIGtvdCBlbiBwcmltYXJuaSByYXpkZWxlayBqZSBvem5h6GVuIGtvdCB6YWdvbnNraS4gRE9TIE1CUiBzZSBuZSBtb3JlICIKKyJ6YWduYXRpLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTk5NiBmZGlzay9jZmRpc2suYzoyMTE1IGZkaXNrL2NmZGlzay5jOjIxOTkKK21zZ2lkICJFbnRlciBmaWxlbmFtZSBvciBwcmVzcyBSRVRVUk4gdG8gZGlzcGxheSBvbiBzY3JlZW46ICIKK21zZ3N0ciAiVm5lc2l0ZSBpbWUgZGF0b3Rla2UgYWxpIHByaXRpc25pdGUgRU5URVIgemEgcHJpa2F6IG5hIHphc2xvbnU6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAwNSBmZGlzay9jZmRpc2suYzoyMTIzIGZkaXNrL2NmZGlzay5jOjIyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIgorbXNnc3RyICJEYXRvdGVrZSAsJXNgIG5pIG1vZ2/oZSBvZHByZXRpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzXG4iCittc2dzdHIgIkRpc2tvdm5hIGVub3RhOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNla3RvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2VrdG9yICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgQnJleiAgICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NworbXNnaWQgIiAgIFByaS9Mb2ciCittc2dzdHIgIiAgIFByaS9Mb2ciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgIFByaW1hcmVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiICAgTG9naehlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA4OSBmZGlzay9mZGlzay5jOjE3NjcgZmRpc2svZmRpc2suYzoyMTA2CisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjI3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MTYgZmRpc2svc2ZkaXNrLmM6NjM4Cittc2dpZCAiVW5rbm93biIKK21zZ3N0ciAiTmV6bmFubyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NSBmZGlzay9jZmRpc2suYzoyNTYzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOQorbXNnaWQgIkJvb3QiCittc2dzdHIgIlphZ29uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorIywgZnV6enkKK21zZ2lkICJOb25lIgorbXNnc3RyICJCcmV6IgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM0IGZkaXNrL2NmZGlzay5jOjIyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIFRhYmxlIGZvciAlc1xuIgorbXNnc3RyICJUYWJlbGEgcmF6ZGVsa292IHphICVzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzYKKyMsIGZ1enp5Cittc2dpZCAiICAgICAgICAgICAgICAgRmlyc3QgICAgICAgTGFzdFxuIgorbXNnc3RyICIgICAgICAgICAgICAgICBQcnZpICAgICAgICBaYWRuamlcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNworbXNnaWQgIiIKKyIgIyBUeXBlICAgICAgIFNlY3RvciAgICAgIFNlY3RvciAgIE9mZnNldCAgICBMZW5ndGggICBGaWxlc3lzdGVtIFR5cGUgKElEKSAiCisiRmxhZ1xuIgorbXNnc3RyICIiCisiICMgVGlwICAgICAgICBTZWt0b3IgICAgICBTZWt0b3IgICBPZG1payAgICAgRG9svmluYSAgVGlwIGRhdC4gc2lzdGVtYSAoSUQpICIKKyJaYXN0YXZpY2VcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzOAorIywgZnV6enkKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKKyMsIGZ1enp5Cittc2dpZCAiICAgICAgICAgLS0tU3RhcnRpbmctLS0tICAgICAgLS0tLUVuZGluZy0tLS0tICAgIFN0YXJ0ICAgICBOdW1iZXIgb2ZcbiIKK21zZ3N0ciAiICAgICAgICAgLS0tLVph6GV0bmktLS0gICAgICAtLS0tS29u6G5pLS0tLSAgWmHoZXRlayAgICAgqXRldmlsb1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCisjLCBmdXp6eQorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICIgIyAgIE96biBHbGF2IFNla3QgU3R6ICAgSUQgIEdsYXYgU2VrdCBTdHogICAgc2VrdG9yIHNla3RvcmpldlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIzCisjLCBmdXp6eQorbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tLS0tIC0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICJTdXJvdiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgIkl6cGlzIHRhYmVsZSB2IHN1cm92aSBvYmxpa2kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlNla3RvcmppIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiSXpwaXMgdGFiZWxlLCB1cmVqZW5lIHBvIHNla3RvcmppaCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIlRhYmxlIgorbXNnc3RyICJUYWJlbGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlNhbW8gaXpwaXMgdGFiZWxlIHJhemRlbGtvdiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkRvbid0IHByaW50IHRoZSB0YWJsZSIKK21zZ3N0ciAiQnJleiBpenBpc2EgdGFiZWxlIHJhemRlbGtvdiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgIk9zbm92bmEgbmF2b2RpbGEgemEgY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg5Cittc2dpZCAiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIgorbXNnc3RyICJDZmRpc2sgamUgdGVrc3Rvdm5pIHByb2dyYW0gemEgdXJlamFuamUgZGlza292bmloIHJhemRlbGtvdiwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgInMga2F0ZXJpbSBsYWhrbyB1c3R2YXJqYXRlLCBicmm5ZXRlIGFsaSBzcHJlbWluamF0ZSByYXpkZWxrZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MQorbXNnaWQgImRpc2sgZHJpdmUuIgorbXNnc3RyICJuYSB2YbllbSBkaXNrdS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICIgIFVrYXogICAgICAgIFBvbWVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk2Cittc2dpZCAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCittc2dzdHIgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk3Cittc2dpZCAiICBiICAgICAgICAgIFRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBiICAgICAgICAgIFByZWtsb3AgbWVkIHphZ29uc2tpbS9uZXphZ29uc2tpbSByYXpkZWxrb20iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTgKK21zZ2lkICIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBkICAgICAgICAgIEl6YnJpuWkgdHJlbnV0bmkgcmF6ZGVsZWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTkKK21zZ2lkICIgIGcgICAgICAgICAgQ2hhbmdlIGN5bGluZGVycywgaGVhZHMsIHNlY3RvcnMtcGVyLXRyYWNrIHBhcmFtZXRlcnMiCittc2dzdHIgIiAgZyAgICAgICAgICBTcHJlbWVuaSBwYXJhbWV0cmUgKLl0LiBzdGV6LCC5dC4gZ2xhdiwgc2VrdG9yamV2L3N0ZXpvKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiAgICAgICAgICAgICBPUE9aT1JJTE86IEl6YmlybyBuYWogaXpiZXJlam8gbGUgdGlzdGksIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAxCittc2dpZCAiICAgICAgICAgICAgIGtub3cgd2hhdCB0aGV5IGFyZSBkb2luZy4iCittc2dzdHIgIiAgICAgICAgICAgICBraSByYXp1bWVqbywga2FqIHBv6G5lam8uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAyCittc2dpZCAiICBoICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgIGggICAgICAgICAgcHJpa2G+aSB0byBwb21v6CIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgbSAgICAgICAgICBNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBtICAgICAgICAgIFBvcmFiaSBuYWp2ZeggcHJvc3RvcmEgemEgdHJlbnV0bmkgcmF6ZGVsZWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgICAgICAgICAgTm90ZTogVGhpcyBtYXkgbWFrZSB0aGUgcGFydGl0aW9uIGluY29tcGF0aWJsZSB3aXRoIgorbXNnc3RyICIgICAgICAgICAgICAgT3BvbWJhOiBUbyBsYWhrbyBuYXByYXZpIHJhemRlbGVrIG5lemRydb5saml2IHoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCittc2dzdHIgIiAgICAgICAgICAgICBET1MsIE9TLzIsIC4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiAgbiAgICAgICAgICBVc3R2YXJpIG5vdiByYXpkZWxlayBuYSBuZXphc2VkZW5lZ2EgcHJvc3RvcmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIgIHAgICAgICAgICAgUHJlcGm5aSB0YWJlbG8gcmF6ZGVsa292IG5hIHphc2xvbiBhbGkgdiBkYXRvdGVrbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOAorbXNnaWQgIiAgICAgICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhlIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgICAgICAgICAgIE9ic3RhamEgdmXoIHJhemxp6G5paCB6YXBpc292IHphIHBhcnRpY2lqbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIgICAgICAgICAgICAgbWVkIGthdGVyaW1pIGxhaGtvIGl6YmlyYXRlOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIiCisiICAgICAgICAgICAgICAgIHIgLSBuZW9iZGVsYW5pIHBvZGF0a2kgKG5hdGHobm8gdG8sIGthciBiaSBiaWxvIHphcGlzYW5vIG5hICIKKyJkaXNrKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAgICAgICAgICAgICBzIC0gVGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICIgICAgICAgICAgICAgICAgcyAtIFRhYmVsYSwgdXJlamVuYSBwbyBzZWt0b3JqaWgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTIKK21zZ2lkICIgICAgICAgICAgICAgICAgdCAtIFRhYmxlIGluIHJhdyBmb3JtYXQiCittc2dzdHIgIiAgICAgICAgICAgICAgICB0IC0gdGFiZWxhIHYgb2JsaWtpIG5lb2JkZWxhbmloIHBvZGF0a292IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAgWmFwdXN0aSBwcm9ncmFtLCBuZSBkYSBiaSB6YXBpc2FsIHRhYmVsbyByYXpkZWxrb3YiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTQKK21zZ2lkICIgIHQgICAgICAgICAgQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIiAgdCAgICAgICAgICBTcHJlbWVuaSB2cnN0byBkYXRvdGXobmVnYSBzaXN0ZW1hIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE1Cittc2dpZCAiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIKK21zZ3N0ciAiICB1ICAgICAgICAgIFNwcmVtZW5pIGVub3RlIGl6cGlzYSB2ZWxpa29zdGkgcmF6ZGVsa292IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE2Cittc2dpZCAiICAgICAgICAgICAgIFJvdGF0ZXMgdGhyb3VnaCBNQiwgc2VjdG9ycyBhbmQgY3lsaW5kZXJzIgorbXNnc3RyICIgICAgICAgICAgICAgS3JvvmkgbWVkIE1CLCBzZWt0b3JqaSBpbiBzdGV6YW1pIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE3Cittc2dpZCAiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiCittc2dzdHIgIiAgVyAgICAgICAgICBaYXBpuWkgdGFiZWxvIHJhemRlbGtvdiBuYSBkaXNrIChtb3JhIGJpdGkgdmVsaWtpIFchKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiAgICAgICAgICAgICBLZXIgbGFoa28gdGEgaXpiaXJhIHVuaehpIHBvZGF0a2UgbmEgZGlza3UsIG1vcmF0ZSwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgICAgICAgICAgZWl0aGVyIGNvbmZpcm0gb3IgZGVueSB0aGUgd3JpdGUgYnkgZW50ZXJpbmcgYHllcycgb3IiCittc2dzdHIgIiAgICAgICAgICAgICBpemJpcm8gcG90cmRpdGkgYWxpIHByZWtsaWNhdGkgeiB2bm9zb20gLGRhYCBhbGkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgICAgICAgICAgYG5vJyIKK21zZ3N0ciAiICAgICAgICAgICAgIGBuZSciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjEKK21zZ2lkICJVcCBBcnJvdyAgICAgTW92ZSBjdXJzb3IgdG8gdGhlIHByZXZpb3VzIHBhcnRpdGlvbiIKK21zZ3N0ciAiUHW56GljYSBnb3IgIFByZW1ha25pIGthemFsZWMgbmEgcHJlarluamkgcmF6ZGVsZWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjIKK21zZ2lkICJEb3duIEFycm93ICAgTW92ZSBjdXJzb3IgdG8gdGhlIG5leHQgcGFydGl0aW9uIgorbXNnc3RyICJQdbnoaWNhIGRvbCAgUHJlbWFrbmkga2F6YWxlYyBuYSBuYXNsZWRuamkgcmF6ZGVsZWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDVFJMLUwgICAgICAgT3N2Zb5pIGl6cGlzIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI0Cittc2dpZCAiICA/ICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIgID8gICAgICAgICAgSXpwablpIHRvIG9rbm8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICJPcG9tYmE6IFZzZSB1a2F6ZSBsYWhrbyB2cGm5ZXRlIHogdmVsaWtpbWkgYWxpIG1hbGltaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNworbXNnaWQgImNhc2UgbGV0dGVycyAoZXhjZXB0IGZvciBXcml0ZXMpLiIKK21zZ3N0ciAidGlza2FuaW1pIOhya2FtaSAoeiBpemplbW8gVykuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzIKK21zZ2lkICJDeWxpbmRlcnMiCittc2dzdHIgIlN0ZXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTgKK21zZ2lkICJDaGFuZ2UgY3lsaW5kZXIgZ2VvbWV0cnkiCittc2dzdHIgIlNwcmVtZW5pILl0ZXZpbG8gc3RleiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OSBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMwCittc2dpZCAiSGVhZHMiCittc2dzdHIgIkdsYXYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkKK21zZ2lkICJDaGFuZ2UgaGVhZCBnZW9tZXRyeSIKK21zZ3N0ciAiU3ByZW1lbmkguXRldmlsbyBnbGF2IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAiU3ByZW1lbmkguXRldmlsbyBzZWt0b3JqZXYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICJPcHJhdmxqZW5vIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICJTcHJlbWVtYmEgZ2VvbWV0cmlqZSBqZSBrb27oYW5hIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzc0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIKK21zZ3N0ciAiVm5lc2l0ZSC5dGV2aWxvIHN0ZXo6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIk5lZG92b2xqZW5hIHZyZWRub3N0IHN0ZXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTEKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGhlYWRzOiAiCittc2dzdHIgIlZuZXNpdGUguXRldmlsbyBnbGF2OiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTggZmRpc2svY2ZkaXNrLmM6Mjk2OAorbXNnaWQgIklsbGVnYWwgaGVhZHMgdmFsdWUiCittc2dzdHIgIk5lZG92b2xqZW5vILl0ZXZpbG8gZ2xhdiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQwNAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2s6ICIKK21zZ3N0ciAiVm5lc2l0ZSC5dGV2aWxvIHNla3RvcmpldiBuYSBzdGV6bzogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDExIGZkaXNrL2NmZGlzay5jOjI5NzUKK21zZ2lkICJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiCittc2dzdHIgIk5lZG92b2xqZW5vILl0ZXZpbG8gc2VrdG9yamV2IgorCisjOiBmZGlzay9jZmRpc2suYzoyNTE0Cittc2dpZCAiRW50ZXIgZmlsZXN5c3RlbSB0eXBlOiAiCittc2dzdHIgIlZuZXNpdGUgdnJzdG8gZGF0b3Rl6G5lZ2Egc2lzdGVtYTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTMyCittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IgorbXNnc3RyICJWcnN0ZSBkYXRvdGXobmVnYSBzaXN0ZW1hIG5pIG1v6CBzcHJlbWVuaXRpIG5hIHByYXpubyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzNAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBleHRlbmRlZCIKK21zZ3N0ciAiVnJzdGUgZGF0b3Rl6G5lZ2Egc2lzdGVtYSBuaSBtb+ggc3ByZW1lbml0aSBuYSByYXq5aXJqZW5vIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuayglMDJYKSIKK21zZ3N0ciAiVW5rKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY4IGZkaXNrL2NmZGlzay5jOjI1NzEKK21zZ2lkICIsIE5DIgorbXNnc3RyICIsIE5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTc2IGZkaXNrL2NmZGlzay5jOjI1NzkKK21zZ2lkICJOQyIKK21zZ3N0ciAiTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODcKK21zZ2lkICJQcmkvTG9nIgorbXNnc3RyICJQcmkvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICJOZXpuYW5vICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAiRGlza292bmkgUG9nb246ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjcwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICJWZWxpa29zdDogJWxsZCBiYWp0b3YsICVsbGQgTUIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQuJWxsZCBHQiIKK21zZ3N0ciAiVmVsaWtvc3Q6ICVsbGQgYmFqdG92LCAlbGxkLCVsbGQgR0IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAiR2xhdjogICVkICAgU2VrdG9yamV2L3N0ZXpvOiAgICVkICAgU3RlejogICAgICAlbGxkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgxIGxvZ2luLXV0aWxzL2NoZm4uYzozNzcKK21zZ2lkICJOYW1lIgorbXNnc3RyICJJbWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiT3puYWtlIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgzCittc2dpZCAiUGFydCBUeXBlIgorbXNnc3RyICJUaXAgUmF6ZC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODQKK21zZ2lkICJGUyBUeXBlIgorbXNnc3RyICJEYXQuIHNpc3RlbSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NQorbXNnaWQgIltMYWJlbF0iCittc2dzdHIgIltPem5ha2FdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3CisjLCBmdXp6eQorbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICJTZWt0b3JqZXYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKKyMsIGZ1enp5Cittc2dpZCAiICBDeWxpbmRlcnMiCittc2dzdHIgIlN0ZXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTEKKyMsIGZ1enp5Cittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIlZlbC4gKE1CKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MworIywgZnV6enkKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiVmVsLiAoR0IpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIlphZ29uc2tpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJQcmVrbG9waSB6YWdvbnNrbyB6YXN0YXZpY28gdHJlbnV0bmVnYSByYXpkZWxrYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSIKK21zZ3N0ciAiSXpicmm5aSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIkl6YnJpuWkgdGEgcmF6ZGVsZWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJHZW9tZXRyeSIKK21zZ3N0ciAiR2VvbWV0ci4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJDaGFuZ2UgZGlzayBnZW9tZXRyeSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiTmFzdGF2aSBnZW9tZXRyaWpvIGRpc2thIChzYW1vIHBvem5hdmFsY2kpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiUG9tb+giCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJQcmludCBoZWxwIHNjcmVlbiIKK21zZ3N0ciAiSXpwablpIHN0cmFuIHogbmF2b2RpbGkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSIKK21zZ3N0ciAiUmF6cHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIiIKKyJSYXpwcmkgdHJlbnV0bmkgcmF6ZGVsZWsg6GV6IGNlbG90bm8gbmV6YXNlZGVubyBvYm1v6GplIChzYW1vIHBvem5hdmFsY2kpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICJOb3ZhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICJVc3R2YXJpIG5vdiByYXpkZWxlayBpeiBuZXphc2VkZW5lZ2EgcHJvc3RvcmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiTmF0aXNuaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiSXpwablpIHRhYmVsbyByYXpkZWxrb3YgbmEgemFzbG9uIGFsaSBzaHJhbmkgdiBkYXRvdGVrbyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIkl6aG9kIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkl6aG9kIGl6IHByb2dyYW1hIGJyZXogemFwaXNhIHRhYmVsZSByYXpkZWxrb3YiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJUeXBlIgorbXNnc3RyICJUaXAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSAoRE9TLCBMaW51eCwgT1MvMiBhbmQgc28gb24pIgorbXNnc3RyICJTcHJlbWVuaSB0aXAgZGF0b3Rl6G5lZ2Egc2lzdGVtYSAoRE9TLCBMaW51eCwgT1MvMiBpdG4uKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIlVuaXRzIgorbXNnc3RyICJFbm90ZSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIkNoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSAoTUIsIHNlY3QsIGN5bCkiCittc2dzdHIgIlNwcmVtZW5pIGVub3RlIHByaWthemEgdmVsaWtvc3RpIHJhemRlbGtvdiAoTUIsIHNla3QsIGNpbCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSIKK21zZ3N0ciAiWmFwablpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhKSIKK21zZ3N0ciAiWmFwablpIHRhYmVsbyByYXpkZWxrb3YgbmEgZGlzayAodG8gbGFoa28gdW5p6GkgcG9kYXRrZSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MDUKK21zZ2lkICJDYW5ub3QgbWFrZSB0aGlzIHBhcnRpdGlvbiBib290YWJsZSIKK21zZ3N0ciAiVGUgcGFydGljaWplIHNlIG5lIG1vcmUgbmFzdGF2aXRpIGtvdCB6YWdvbnNrZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgxNQorbXNnaWQgIkNhbm5vdCBkZWxldGUgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJQcmF6bmVnYSByYXpkZWxrYSBzZSBuZSBtb3JlIHpicmlzYXRpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODM1IGZkaXNrL2NmZGlzay5jOjI4MzcKK21zZ2lkICJDYW5ub3QgbWF4aW1pemUgdGhpcyBwYXJ0aXRpb24iCittc2dzdHIgIlRlZ2EgcmF6ZGVsa2Egc2UgbmUgbW9yZSByYXpwcmV0aSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NQorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIHVudXNhYmxlIgorbXNnc3RyICJUYSByYXpkZWxlayBuaSB1cG9yYWJlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJUYSByYXpkZWxlayBzZSC+ZSB1cG9yYWJsamEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NjQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHRoZSB0eXBlIG9mIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiVGlwYSBwcmF6bmVnYSByYXpkZWxrYSBzZSBuZSBtb3JlIHNwcmVtZW5pdGkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAiTmkgdmXoIHJhemRlbGtvdiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAiTmFwYehlbiB1a2F6IgorCisjOiBmZGlzay9jZmRpc2suYzoyOTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorbXNnc3RyICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiUHJpbnQgdmVyc2lvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiUHJpbnQgcGFydGl0aW9uIHRhYmxlOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B0aW9uc10gZGV2aWNlXG4iCisiSW50ZXJhY3RpdmUgdXNlOlxuIgorIiAgICAgICAgJXMgW29wdGlvbnNdIGRldmljZVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiLWE6IFVzZSBhcnJvdyBpbnN0ZWFkIG9mIGhpZ2hsaWdodGluZztcbiIKKyItejogU3RhcnQgd2l0aCBhIHplcm8gcGFydGl0aW9uIHRhYmxlLCBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHB0IGZyb20gZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzogT3ZlcnJpZGUgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMsXG4iCisiICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHRoZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjay5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlVwb3JhYmE6XG4iCisiSXpwablpIHJhemxp6GljbzpcbiIKKyIgICAgICAgICAlcyAtdlxuIgorIkl6cGm5aSB0YWJlbG8gcmF6ZGVsa292OlxuIgorIiAgICAgICAgICVzIC1QIHtyfHN8dH0gW2l6YmlyZV0gbmFwcmF2YVxuIgorIkludGVyYWt0aXZuYSB1cG9yYWJhOlxuIgorIiAgICAgICAgICVzIFtpemJpcmVdIG5hcHJhdmFcbiIKKyJcbiIKKyJJemJpcmU6XG4iCisiLWE6IFVwb3JhYmkgcHW56GljbyBuYW1lc3RvIG9zdmV0bGpldmFuamE7XG4iCisiLXo6IFph6G5pIHMgcHJhem5vIHRhYmVsbyBwYXJ0aWNpaiBuYW1lc3RvIGJyYW5qYSB0cCB6IGRpc2thO1xuIgorIi1jIEMgLWggSCAtcyBTOiBQb3ZvemkgaWRlam8gamVkcmEgbyC5dGV2aWx1IHNsZWRpLCBnbGF2IGluIHNla3Rvcmpldi5cbiIKKworIzogZmRpc2svZmRpc2thaXhsYWJlbC5jOjI3Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBBSVggbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBMaW51eCBjYW5ub3QgaGFuZGxlIHRoZXNlXG4iCisiXHRkaXNrcyBhdCB0aGUgbW9tZW50LiAgTmV2ZXJ0aGVsZXNzIHNvbWVcbiIKKyJcdGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKKyJcdDMuIEJlZm9yZSBkZWxldGluZyB0aGlzIHBoeXNpY2FsIHZvbHVtZSBiZSBzdXJlXG4iCisiXHQgICB0byByZW1vdmUgdGhlIGRpc2sgbG9naWNhbGx5IGZyb20geW91ciBBSVhcbiIKKyJcdCAgIG1hY2hpbmUuICAoT3RoZXJ3aXNlIHlvdSBiZWNvbWUgYW4gQUlYcGVydCkuIgorbXNnc3RyICIiCisiXG4iCisiXHROYSB0ZW0gZGlza3UgamUgdmVsamF2bmEgb3puYWthIEFJWC5cbiIKKyJcdE5hIL5hbG9zdCBzIHRlbWkgZGlza2kgTGludXggdHJlbnV0bm9cbiIKKyJcdG5lIHpuYSByb2tvdmF0aS4gUG9tYWdhIG5haiB2YW0gcGFyXG4iCisiXHRuYXN2ZXRvdjpcbiIKKyJcdDEuIGZkaXNrIGJvIHVuaehpbCB2c2ViaW5vIGRpc2thIHByaSBwaXNhbmp1LlxuIgorIlx0Mi4gQm9kaXRlIHByZXByaehhbmksIGRhIHRhIGRpc2sgTkkgvml2bGplbmpza2VnYVxuIgorIlx0ICAgcG9tZW5hIG9ic2Vnb3ZuZSBza3VwaW5lW3ZvbHVtZSBncm91cF0uIChEcnVnYehlIHNlIGxhaGtvIHpnb2RpLFxuIgorIlx0ICAgZGEgYm9zdGUgYnJpc2FsaSB0dWRpIG9zdGFsZSBkaXNrZS5cbiIKKyJcdDMuIFByZWQgaXpicmlzb20gZml6aehuZWdhIG9ic2VnYSBib2RpdGUgcHJlcHJp6GFuaSxcbiIKKyJcdCAgIGRhIGRpc2sgb2RzdHJhbml0ZSBsb2dp6G5vLCBpeiB2YbllZ2EgQUlYXG4iCisiXHQgICByYeh1bmFsbmlrYS4gKERydWdh6GUgbGFoa28gcG9zdGFuZXRlIFxuIgorIlx0ICAgXCJzdHJva292bmphayB6YSBBSVhcIikuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkJTRCBvem5ha2EgemEgbmFwcmF2bzogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOCBmZGlzay9mZGlzay5jOjM5NCBmZGlzay9mZGlzay5jOjQxMworIzogZmRpc2svZmRpc2suYzo0MzEgZmRpc2svZmRpc2suYzo0MzggZmRpc2svZmRpc2suYzo0NjEgZmRpc2svZmRpc2suYzo0NzkKKyM6IGZkaXNrL2ZkaXNrLmM6NDk1IGZkaXNrL2ZkaXNrLmM6NTExCittc2dpZCAiQ29tbWFuZCBhY3Rpb24iCittc2dzdHIgIiAgVWtheiAgZGVqYW5qZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOQorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgemJyablpIHJhemRlbGVrIHRpcGEgQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMwCittc2dpZCAiICAgZSAgIGVkaXQgZHJpdmUgZGF0YSIKK21zZ3N0ciAiICAgZSAgIGG+dXJpcmFqIGRpc2tvdm5lIHBvZGF0a2UiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiAgIGkgICBuYW1lc3RpIHph6GV0bmkgbmFsYWdhbG5payIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMgorbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIGZpbGVzeXN0ZW0gdHlwZXMiCittc2dzdHIgIiAgIGwgICBpenBpuWkgem5hbmUgZGF0b3Rl6G5lIHNpc3RlbWUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICBpenBpuWkgdGEgbWVuaSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNAorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIGRvZGFqIG5vdm8gcGFydGljaWpvIHRpcGEgQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM1Cittc2dpZCAiICAgcCAgIHByaW50IEJTRCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBpenBpuWkgQlNELWpldm8gdGFiZWxvIHJhemRlbGtvdiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNiBmZGlzay9mZGlzay5jOjQwNCBmZGlzay9mZGlzay5jOjQyMworIzogZmRpc2svZmRpc2suYzo0MzQgZmRpc2svZmRpc2suYzo0NDggZmRpc2svZmRpc2suYzo0NzEgZmRpc2svZmRpc2suYzo0ODgKKyM6IGZkaXNrL2ZkaXNrLmM6NTA0IGZkaXNrL2ZkaXNrLmM6NTIyCittc2dpZCAiICAgcSAgIHF1aXQgd2l0aG91dCBzYXZpbmcgY2hhbmdlcyIKK21zZ3N0ciAiICAgcSAgIGtvbuhhaiwgbmUgZGEgYmkgc2hyYW5pbCBzcHJlbWVtYmUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzcgZmRpc2svZmRpc2suYzo0NzIgZmRpc2svZmRpc2suYzo0ODkKKyM6IGZkaXNrL2ZkaXNrLmM6NTA1IGZkaXNrL2ZkaXNrLmM6NTIzCittc2dpZCAiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiCittc2dzdHIgIiAgIHIgICB2cm5pIHNlIHYgZ2xhdm5pIG1lbmkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzgKK21zZ2lkICIgICBzICAgc2hvdyBjb21wbGV0ZSBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICBwcmlrYb5pIGNlbG9zdG5vIG96bmFrbyBkaXNrYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgc3ByZW1lbmkgaWQgcmF6ZGVs6G5lZ2EgZGF0b3Rl6G5lZ2Egc2lzdGVtYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiICAgdSAgIHNwcmVtZW5pIGVub3RlIChzdGV6ZS9zZWt0b3JqaSkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDEKK21zZ2lkICIgICB3ICAgd3JpdGUgZGlza2xhYmVsIHRvIGRpc2siCittc2dzdHIgIiAgIHcgICB6YXBpuWkgb3puYWtvIGRpc2thIG5hIGRpc2siCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDMKK21zZ2lkICIgICB4ICAgbGluayBCU0QgcGFydGl0aW9uIHRvIG5vbi1CU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICB4ICAgcG92Zb5pIHJhemRlbGVrIHRpcGEgQlNEIHogcmF6ZGVsa29tIGRydWdlZ2EgdGlwYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIlJhemRlbGVrICVzIGltYSBuZXZlbGphdm5pIHph6GV0bmkgc2VrdG9yIDAuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICJCZXJlbSBvem5ha28gZGlza2EgJXMgbmEgc2VrdG9yanUgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIk5hICVzIG5pIHJhemRlbGthIHRpcGEgKkJTRC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjIwMworbXNnaWQgIkJTRCBkaXNrbGFiZWwgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiVWtheiBCU0Qgb3puYWthIGRpc2thIChtIHphIHBvbW/oKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjgzIGZkaXNrL2ZkaXNrLmM6MjMyOCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM4CisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ICVzIgorbXNnc3RyICJQcnZpICVzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlcyBvciArc2l6ZSBvciArc2l6ZU0gb3IgK3NpemVLIgorbXNnc3RyICJaYWRuamkgJXMgYWxpICtzaXplIGFsaSArc2l6ZU0gYWxpICtzaXplSyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlc1xuIgorbXNnc3RyICJ2cnN0YTogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICJ2cnN0YTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgImRpc2s6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsYWJlbDogJS4qc1xuIgorbXNnc3RyICJvem5ha2E6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmbGFnczoiCittc2dzdHIgInphc3RhdmljZToiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIHJlbW92YWJsZSIKK21zZ3N0ciAiIG9kc3RyYW5saml2IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiBlY2MiCittc2dzdHIgIiBlY2MiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGJhZHNlY3QiCittc2dzdHIgIiBwb7lzZWt0b3IiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXMvc2VjdG9yOiAlbGRcbiIKK21zZ3N0ciAiYmFqdGkvc2VrdG9yOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL3RyYWNrOiAlbGRcbiIKK21zZ3N0ciAic2VrdG9yL3NsZWQ6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInNsZWQvc3RlemE6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJzZWt0b3Ivc3RlemE6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyczogJWxkXG4iCittc2dzdHIgInN0ZXplOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgIm9icmF0aS9taW46ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW50ZXJsZWF2ZTogJWRcbiIKK21zZ3N0ciAicHJlcGxldGVubzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnNrZXc6ICVkXG4iCittc2dzdHIgInBvuWV2bm9zdHNsZWRpOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJ6YW1lbmphdmEgZ2xhdmU6ICVsZFx0XHQjIG1pbGlzZWt1bmRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgImlza2FuamUgc2xlZC1kby1zbGVkaTogJWxkXHQjIG1pbGlzZWt1bmRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0NQorIywgYy1mb3JtYXQKK21zZ2lkICJkcml2ZWRhdGE6ICIKK21zZ3N0ciAiZGlza292bmkgcG9kYXRraTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlZCBwYXJ0aXRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgcmF6ZGVsa292OlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiMgICAgICAgc3RhcnQgICAgICAgZW5kICAgICAgc2l6ZSAgICAgZnN0eXBlICAgW2ZzaXplIGJzaXplICAgY3BnXVxuIgorbXNnc3RyICIiCisiIyAgICAgIHph6GV0ZWsgICAgIGtvbmVjICAgICB2ZWwgICB0aXAgZGF0IHNpc3QgIFt2ZWxkYXQgdmVsYmxvayBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiWmFwaXNvdmFuamUgb3puYWtlIGRpc2thIG5hICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDE5IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorbXNnc3RyICIlcyBuZSB2c2VidWplIG96bmFrZSBkaXNrYS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJBbGkgvmVsaXRlIHVzdHZhcml0aSBvem5ha28gZGlza2E/ICh5L24pICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NgorbXNnaWQgImJ5dGVzL3NlY3RvciIKK21zZ3N0ciAiYmFqdGkvc2VrdG9yIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic2VrdG9yamkvc2xlZCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAic2xlZGkvc3Rlem8iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjkgZmRpc2svZmRpc2suYzo3NDAgZmRpc2svZmRpc2suYzoxNTkyCisjOiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJjeWxpbmRlcnMiCittc2dzdHIgInN0ZXplIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDc2Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlciIKK21zZ3N0ciAic2VrdG9yamkvc3Rlem8iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSA8PSBzZWN0b3JzL3RyYWNrICogdHJhY2tzL2N5bGluZGVyIChkZWZhdWx0KS5cbiIKK21zZ3N0ciAiTW9yYSBiaXRpIDw9IHNla3RvcmppL3NsZWQgKiBzbGVkaS9zdGV6byAocHJpdnpldG8pLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgyCittc2dpZCAicnBtIgorbXNnc3RyICJvYnJhdGkvbWluIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAicHJlcGxldGVubyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAicG+5ZXZub3N0c2xlZGkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgInBvuWV2bm9zdHN0ZXplIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg2Cittc2dpZCAiaGVhZHN3aXRjaCIKK21zZ3N0ciAicHJlaG9kIGdsYXYiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODcKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrIgorbXNnc3RyICJpc2thbmplIHNsZWRpLWRvLXNsZWRpIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCittc2dzdHIgIlph6GV0bmkgbmFsYWdhbG5pazogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIG92ZXJsYXBzIHdpdGggZGlzayBsYWJlbCFcbiIKK21zZ3N0ciAiWmHoZXRuaSBuYWxhZ2FsbmlrIHNlIHByZWtyaXZhIHogb3puYWtvIGRpc2thIVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIGluc3RhbGxlZCBvbiAlcy5cbiIKK21zZ3N0ciAiWmHoZXRuaSBuYWxhZ2FsbmlrIGplIG5hbWW56GVuIG5hICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAiUmF6ZGVsZWsgKGEtJWMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MTcgZmRpc2svZmRpc2suYzoyNDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJ0aXRpb25zIGhhcyBiZWVuIGNyZWF0ZWRcbiIKK21zZ3N0ciAiTmFqdmXoamUgbW++bm8guXRldmlsbyByYXpkZWxrb3YgamUgYmlsbyB1c3R2YXJqZW5vXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMuXG4iCittc2dzdHIgIlRhIHJhemRlbGVrIL5lIG9ic3RhamEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogdG9vIG1hbnkgcGFydGl0aW9ucyAoJWQsIG1heGltdW0gaXMgJWQpLlxuIgorbXNnc3RyICJPcG96b3JpbG86IHByZXZl6CBwYXJ0aWNpaiAoJWQsIG5hanZl6CBwYSBqZSAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTaW5ocm9uaXphY2lqYSBkaXNrb3YuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIKK21zZ3N0ciAiJXMgbmkgbW9nb+hlIG9kcHJldGlcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgJXNcbiIKK21zZ3N0ciAiJXMgbmkgbW9nb+hlIHByZWJyYXRpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZWVrIG9uICVzXG4iCittc2dzdHIgIk5hICVzIGlza2FuamUgbmkgbW++bm9cbiIKKworIzogZmRpc2svZmRpc2suYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlICVzXG4iCittc2dzdHIgIk5hICVzIG5pIG1vZ2/oZSBwaXNhdGlcbiIKKworIzogZmRpc2svZmRpc2suYzoyODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXNcbiIKK21zZ3N0ciAiQkxLR0VUU0laRSBvZCBpb2N0bCBuaSB1c3BlbCBuYSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBhbnkgbW9yZSBtZW1vcnlcbiIKK21zZ3N0ciAiRG9kZWxqZXZhbmplIHBvbW5pbG5pa2EgbmkgdmXoIG1vZ2/oZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NgorbXNnaWQgIkZhdGFsIGVycm9yXG4iCittc2dzdHIgIlVzb2RuYSBuYXBha2FcbiIKKworIzogZmRpc2svZmRpc2suYzozOTUKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgcmVhZCBvbmx5IGZsYWciCittc2dzdHIgIiAgIGEgICBwcmVrbG9waSBzYW1vIHphIGJyYW5qZSIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAgc3ByZW1lbmkgb3puYWtvIGRpc2thIHRpcGEgQlNEIgorCisjOiBmZGlzay9mZGlzay5jOjM5NworbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIG1vdW50YWJsZSBmbGFnIgorbXNnc3RyICIgICBjICAgcHJla2xvcGkgemFzdGF2aWNvIHByaWtsb3Bsaml2byIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgemJyablpIHJhemRlbGVrIgorCisjOiBmZGlzay9mZGlzay5jOjM5OSBmZGlzay9mZGlzay5jOjQxOCBmZGlzay9mZGlzay5jOjQ0MworbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIGl6cGm5aSB6bmFuZSB2cnN0ZSByYXpkZWxrb3YiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICBkb2RhaiBub3YgcmF6ZGVsZWsiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAyIGZkaXNrL2ZkaXNrLmM6NDIxIGZkaXNrL2ZkaXNrLmM6NDMzIGZkaXNrL2ZkaXNrLmM6NDQ2Cittc2dpZCAiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBvICAgdXN0dmFyaSBub3ZvIHByYXpubyB0YWJlbG8gcmF6ZGVsa292IHRpcGEgTVMtRE9TIgorCisjOiBmZGlzay9mZGlzay5jOjQwMyBmZGlzay9mZGlzay5jOjQyMiBmZGlzay9mZGlzay5jOjQ0NyBmZGlzay9mZGlzay5jOjQ3MAorIzogZmRpc2svZmRpc2suYzo0ODcgZmRpc2svZmRpc2suYzo1MDMgZmRpc2svZmRpc2suYzo1MjEKK21zZ2lkICIgICBwICAgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIGl6cGm5aSB0YWJlbG8gcmF6ZGVsa292IgorCisjOiBmZGlzay9mZGlzay5jOjQwNSBmZGlzay9mZGlzay5jOjQyNCBmZGlzay9mZGlzay5jOjQzNSBmZGlzay9mZGlzay5jOjQ0OQorbXNnaWQgIiAgIHMgICBjcmVhdGUgYSBuZXcgZW1wdHkgU3VuIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgIHVzdHZhcmkgbm92byBwcmF6bm8gb3puYWtvIGRpc2thIHRpcGEgU3VuIgorCisjOiBmZGlzay9mZGlzay5jOjQwNiBmZGlzay9mZGlzay5jOjQyNSBmZGlzay9mZGlzay5jOjQ1MAorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICBzcHJlbWVuaSBzaXN0ZW1za2kgSUQgcmF6ZGVsa2EiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA3IGZkaXNrL2ZkaXNrLmM6NDI2IGZkaXNrL2ZkaXNrLmM6NDUxCittc2dpZCAiICAgdSAgIGNoYW5nZSBkaXNwbGF5L2VudHJ5IHVuaXRzIgorbXNnc3RyICIgICB1ICAgc3ByZW1lbmkgcHJpa2F6bmUvdm5vc25lIGVub3RlIgorCisjOiBmZGlzay9mZGlzay5jOjQwOCBmZGlzay9mZGlzay5jOjQyNyBmZGlzay9mZGlzay5jOjQ1MiBmZGlzay9mZGlzay5jOjQ3NAorIzogZmRpc2svZmRpc2suYzo0OTEgZmRpc2svZmRpc2suYzo1MDcgZmRpc2svZmRpc2suYzo1MjUKK21zZ2lkICIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHYgICBwcmV2ZXJpIHRhYmVsbyByYXpkZWxrb3YiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA5IGZkaXNrL2ZkaXNrLmM6NDI4IGZkaXNrL2ZkaXNrLmM6NDUzIGZkaXNrL2ZkaXNrLmM6NDc1CisjOiBmZGlzay9mZGlzay5jOjQ5MiBmZGlzay9mZGlzay5jOjUwOCBmZGlzay9mZGlzay5jOjUyNgorbXNnaWQgIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IgorbXNnc3RyICIgICB3ICAgemFwablpIHRhYmVsbyByYXpkZWxrb3YgbmEgZGlzayBpbiBrb27oYWoiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDEwIGZkaXNrL2ZkaXNrLmM6NDU0Cittc2dpZCAiICAgeCAgIGV4dHJhIGZ1bmN0aW9uYWxpdHkgKGV4cGVydHMgb25seSkiCittc2dzdHIgIiAgIHggICBkb2RhdG5lIG1vvm5vc3RpIChzYW1vIHphIHBvem5hdmFsY2UpIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAgaXpiZXJpIHphZ29uc2tpIHJhemRlbGVrIgorCisjOiBmZGlzay9mZGlzay5jOjQxNQorbXNnaWQgIiAgIGIgICBlZGl0IGJvb3RmaWxlIGVudHJ5IgorbXNnc3RyICIgICBiICAgdXJlZGkgemFnb25za29kYXRvdGXobmkgdm5vcyIKKworIzogZmRpc2svZmRpc2suYzo0MTYKK21zZ2lkICIgICBjICAgc2VsZWN0IHNnaSBzd2FwIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYyAgIGl6YmVyaSBpem1lbmphbG5pIHJhemRlbGVrIHRpcGEgc2dpIgorCisjOiBmZGlzay9mZGlzay5jOjQzOQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnIgorbXNnc3RyICIgICBhICAgcHJla2xvcGkgemFnb25za28gemFzdGF2aWNvIgorCisjOiBmZGlzay9mZGlzay5jOjQ0MQorbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciCittc2dzdHIgIiAgIGMgICBwcmVrbG9waSB6ZHJ1vmxqaXZvIHogRE9TIHphc3RhdmljbyIKKworIzogZmRpc2svZmRpc2suYzo0NjIKK21zZ2lkICIgICBhICAgY2hhbmdlIG51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICIgICBhICAgc3ByZW1lbmkguXRldmlsbyBpem1lbmnobmloIHN0ZXoiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYzIGZkaXNrL2ZkaXNrLmM6NDgxIGZkaXNrL2ZkaXNrLmM6NDk3IGZkaXNrL2ZkaXNrLmM6NTEzCittc2dpZCAiICAgYyAgIGNoYW5nZSBudW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICIgICBjICAgc3ByZW1lbmkguXRldmlsbyBzdGV6IgorCisjOiBmZGlzay9mZGlzay5jOjQ2NCBmZGlzay9mZGlzay5jOjQ4MiBmZGlzay9mZGlzay5jOjQ5OCBmZGlzay9mZGlzay5jOjUxNAorbXNnaWQgIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZCAgIGl6cGm5aSBzdXJvdmUgcG9kYXRrZSBpeiB0YWJlbGUgcmF6ZGVsa292IgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAgc3ByZW1lbmkguXRldmlsbyBkb2RhdGtpaCBzZWt0b3JqZXYgbmEgc3Rlem8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY2IGZkaXNrL2ZkaXNrLmM6NDg1IGZkaXNrL2ZkaXNrLmM6NTAxIGZkaXNrL2ZkaXNrLmM6NTE4Cittc2dpZCAiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIiAgIGggICBzcHJlbWVuaSC5dGV2aWxvIGdsYXYiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY3Cittc2dpZCAiICAgaSAgIGNoYW5nZSBpbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiICAgaSAgIHNwcmVtZW5pIGtvZWZpY2llbnQgcHJlcGxldGVub3N0aSIKKworIzogZmRpc2svZmRpc2suYzo0NjgKK21zZ2lkICIgICBvICAgY2hhbmdlIHJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIgICBvICAgc3ByZW1lbmkgaGl0cm9zdCB2cnRlbmphIChvYnJhdGkvbWluKSIKKworIzogZmRpc2svZmRpc2suYzo0NzMgZmRpc2svZmRpc2suYzo0OTAgZmRpc2svZmRpc2suYzo1MDYgZmRpc2svZmRpc2suYzo1MjQKK21zZ2lkICIgICBzICAgY2hhbmdlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrIgorbXNnc3RyICIgICBzICAgc3ByZW1lbmkguXRldmlsbyBzZWt0b3JqZXYvc2xlZCIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICBzcHJlbWVuaSC5dGV2aWxvIGZpemnobmloIHN0ZXoiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGIgICBwcmVtYWtuaSB6YehldGVrIHBvZGF0a292IHYgcmF6ZGVsa3UiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgzIGZkaXNrL2ZkaXNrLmM6NDk5IGZkaXNrL2ZkaXNrLmM6NTE1Cittc2dpZCAiICAgZSAgIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiICAgZSAgIGl6cGm5aSByYXq5aXJqZW5lIHJhemRlbGtlIgorCisjOiBmZGlzay9mZGlzay5jOjQ4NCBmZGlzay9mZGlzay5jOjUwMCBmZGlzay9mZGlzay5jOjUxNworbXNnaWQgIiAgIGcgICBjcmVhdGUgYW4gSVJJWCAoU0dJKSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGcgICB1c3R2YXJpIHRhYmVsbyByYXpkZWxrdm8gdGlwYSBJUklYIChTR0kpIgorCisjOiBmZGlzay9mZGlzay5jOjUxNgorbXNnaWQgIiAgIGYgICBmaXggcGFydGl0aW9uIG9yZGVyIgorbXNnc3RyICIgICBmICAgcG9wcmF2aSB2cnN0bmkgcmVkIHJhemRlbGtvdiIKKworIzogZmRpc2svZmRpc2suYzo1MTkKKyMsIGZ1enp5Cittc2dpZCAiICAgaSAgIGNoYW5nZSB0aGUgZGlzayBpZGVudGlmaWVyIgorbXNnc3RyICIgICB1ICAgc3ByZW1lbmkgcHJpa2F6bmUvdm5vc25lIGVub3RlIgorCisjOiBmZGlzay9mZGlzay5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBzZXQiCittc2dzdHIgIk5hc3Rhdml0aSBtb3JhdGUiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM2Cittc2dpZCAiaGVhZHMiCittc2dzdHIgImdsYXZlIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAic2VrdG9yamkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyVzLlxuIgorIllvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBleHRyYSBmdW5jdGlvbnMgbWVudS5cbiIKK21zZ3N0ciAiIgorIiVzJXMuXG4iCisiVG8gbGFoa28gc3Rvcml0ZSB2IG1lbmlqdSB6IGRvZGF0bmltaSBtb75ub3N0bWkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiBpbiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvXG4iCisiICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvXG4iCisiICAgICAgICAgc2VjdG9ycyAoY29tbWFuZCAndScpLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBjeWxpbmRlcnMgYXMgZGlzcGxheSB1bml0cyBhcmUgZGVwcmVjYXRlZC4gVXNlIGNvbW1hbmQgJ3UnIHRvXG4iCisiICAgICAgICAgY2hhbmdlIHVuaXRzIHRvIHNlY3RvcnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG9mZnNldCBpbiBwcmltYXJ5IGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJQb7lrb2RvdmFuIG9kbWlrIHYgcHJpbWFybmVtIHJherlpcmplbmVtIHJhemRlbGt1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorIk9wb3pvcmlsbzogb21lanVqZW0gcmF6ZGVsa2UgcG8gIyVkLlxuIgorIshlIHNocmFuaXRlIHRhIHJhemRlbGVrIGJvZG8gaXpicmlzYW5pLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBleHRyYSBsaW5rIHBvaW50ZXIgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIk9wb3pvcmlsbzogZG9kYXRuaSBwb3Zlem92YWxuaSBrYXphbGVjIHYgdGFiZWxpIHJhemRlbGtvdiAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjg2MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpZ25vcmluZyBleHRyYSBkYXRhIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJPcG96b3JpbG86IGRvZGF0bmkgcG9kYXRraSB2IHRhYmVsaSByYXpkZWxrb3YgJWQgbmUgYm9kbyB1cG+5dGV2YW5pXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvbWl0dGluZyBlbXB0eSBwYXJ0aXRpb24gKCVkKVxuIgorbXNnc3RyICJPcG96b3JpbG86IHByYXplbiByYXpkZWxla1xuIgorCisjOiBmZGlzay9mZGlzay5jOjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGlkZW50aWZpZXI6IDB4JTA4eFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBkaXNrIGlkZW50aWZpZXIgKGN1cnJlbnQgMHglMDh4KTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTQwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgRE9TIGRpc2tsYWJlbCB3aXRoIGRpc2sgaWRlbnRpZmllciAweCUwOHguXG4iCisiQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLlxuIgorIkFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJVc3R2YXJqYSBzZSBub3ZhIG96bmFrYSBkaXNrYSB0aXBhIERPUy4gU3ByZW1lbWJlIGJvZG8gb3N0YWxlIHYgcG9tbmlsbmlrdVxuIgorImRva2xlciBzZSBuZSBvZGxv6Gl0ZSwgZGEgamloIGJvc3RlIHphcGlzYWxpLiBQbyB0ZW0gcHJlarluamEgdnNlYmluYVxuIgorIm5lIGJvIHZl6CBvYm5vdmxqaXZhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAiT3BvbWJhOiB2ZWxpa29zdCBzZWt0b3JqYSBqZSAlZCAobmUgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJOZSBib3N0ZSBtb2dsaSB6YXBpc2F0aSB0YWJlbGUgcmF6ZGVsa292LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZGlzayBoYXMgYm90aCBET1MgYW5kIEJTRCBtYWdpYy5cbiIKKyJHaXZlIHRoZSAnYicgY29tbWFuZCB0byBnbyB0byBCU0QgbW9kZS5cbiIKK21zZ3N0ciAiIgorIlRhIGRpc2sgamUgb3puYehlayBrb3QgdGlwYSBET1MgaW4gdGlwYSBCU0QuXG4iCisiVXBvcmFiaXRlICdiJyB1a2F6LCBkYSBwcmVpZGV0ZSB2IEJTRCBuYehpbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisiTmFwcmF2YSBuZSB2c2VidWplIHZlbGphdm5lIHRhYmVsZSByYXpkZWxrb3YgdGlwYSBET1MsIG5pdGkgb3puYWtlIGRpc2thICIKKyJ0aXBhIFN1biwgU0dJIGFsaSBPU0ZcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgIkludGVybmFsIGVycm9yXG4iCittc2dzdHIgIk5vdHJhbmphIG5hcGFrYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSWdub3JpbmcgZXh0cmEgZXh0ZW5kZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIkRvZGF0bmkgcmF6uWlyamVuIHJhemRlbGVrICVkIG5lIGJvIHVwb7l0ZXZhblxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGludmFsaWQgZmxhZyAweCUwNHggb2YgcGFydGl0aW9uIHRhYmxlICVkIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHciCisiKHJpdGUpXG4iCittc2dzdHIgIiIKKyJPcG96b3JpbG86IG5ldmVsamF2bmEgemFzdGF2aWNhIDB4JTA0eCB0YWJlbGUgcmF6ZGVsa292ICVkIGJvIHBvcHJhdmxqZW5hIHogdyIKKyIocml0ZSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxMzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJnb3QgRU9GIHRocmljZSAtIGV4aXRpbmcuLlxuIgorbXNnc3RyICIiCisiXG4iCisiM3ggZG9ibGplbiBFT0YgLSBLb27odWplbS4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM2MAorbXNnaWQgIkhleCBjb2RlICh0eXBlIEwgdG8gbGlzdCBjb2Rlcyk6ICIKK21zZ3N0ciAiqWVzdG5hanN0ablrYSBrb2RhIChwcml0aXNuaSBMIHphIGl6Ym9yIGtvZCk6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiJXMgKCV1LSV1LCBwcml2emV0byAldSk6ICIKKworIzogZmRpc2svZmRpc2suYzoxNDYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuc3VwcG9ydGVkIHN1ZmZpeDogJyVzJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1cHBvcnRlZDogMTBeTjogS0IgKEtpbG9CeXRlKSwgTUIgKE1lZ2FCeXRlKSwgR0IgKEdpZ2FCeXRlKVxuIgorIiAgICAgICAgICAgIDJeTjogSyAgKEtpYmlCeXRlKSwgTSAgKE1lYmlCeXRlKSwgRyAgKEdpYmlCeXRlKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ4OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBkZWZhdWx0IHZhbHVlICV1XG4iCittc2dzdHIgIlVwb3JibGplbmEgYm8gcHJpdnpldGEgdnJlZG5vc3QgJXVcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlZhbHVlIG91dCBvZiByYW5nZS5cbiIKK21zZ3N0ciAiVnJlZG5vc3QgaXp2ZW4gZG9zZWdhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1MTgKK21zZ2lkICJQYXJ0aXRpb24gbnVtYmVyIgorbXNnc3RyICKpdGV2aWxrYSByYXpkZWxrYSIKKworIzogZmRpc2svZmRpc2suYzoxNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXMgZW1wdHkgdHlwZVxuIgorbXNnc3RyICJPcG96b3JpbG86IHJhemRlbGVrICVkIG5pbWEgdGlwYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJJemJyYW4gcmF6ZGVsZWsgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiTm9iZW4gcmF6ZGVsZWsguWUgbmkgZG9sb+hlbiFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBwcmltYXJ5IHBhcnRpdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeSFcbiIKK21zZ3N0ciAiVnNpIHByaW1hcm5pIHJhemRlbGtpIHNvIL5lIGRvbG/oZW5pIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTAKK21zZ2lkICJjeWxpbmRlciIKK21zZ3N0ciAic3RlemEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgInNlY3RvciIKK21zZ3N0ciAic2VrdG9yIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICJTcHJlbWluamFtIGVub3RlIHByaWthemEvdm5vc2EgbmEgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiT1BPWk9SSUxPOiBSYXpkZWxlayAlZCBqZSByYXq5aXJqZW5pIHJhemRlbGVrXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIHNldFxuIgorbXNnc3RyICJaZHJ1vmxqaXZvc3QgeiBET1MgamUgbmFzdGF2bGplbmEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMgorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXRcbiIKK21zZ3N0ciAiWmRydb5saml2b3N0IHogRE9TIG5pIG5hc3RhdmxqZW5hLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiUmF6ZGVsZWsgJWQguWUgbmUgb2JzdGFqYSFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKyJWIG1ub2dpaCBzaXN0ZW1paCBwb21lbmkgdGlwIDAgcHJhemVuIHByb3N0b3IsXG4iCisidiBMaW51eHUgcGEgbmUuIFJhemRlbGtvdiB0aXBhIDAgbmkgcGFtZXRubyBpbWV0aVxuIgorIlJhemRlbGVrIGxhaGtvIHpicmm5ZXRlIHogdWthem9tIGBkJy5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgY2Fubm90IGNoYW5nZSBhIHBhcnRpdGlvbiBpbnRvIGFuIGV4dGVuZGVkIG9uZSBvciB2aWNlIHZlcnNhXG4iCisiRGVsZXRlIGl0IGZpcnN0LlxuIgorbXNnc3RyICIiCisiUmF6ZGVsa2EgbmUgbW9yZXRlIHByZXR2b3JpdGkgdiByYXq5aXJqZW5lZ2EgYWxpIG9icmF0bm8uXG4iCisiTmFqcHJlaiBnYSB6YnJpuWl0ZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiAzIGFzIFdob2xlIGRpc2sgKDUpLFxuIgorImFzIFN1bk9TL1NvbGFyaXMgZXhwZWN0cyBpdCBhbmQgZXZlbiBMaW51eCBsaWtlcyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlJhem1pc2xpdGUgbyB0ZW0sIGRhIHB1c3RpdGUgcmF6ZGVsZWsgMyBrb3QgY2Vsb3RuaSBkaXNrICg1KS5cbiIKKyJUYWsgamUgZG9nb3ZvciB2IFN1bk9TL1NvbGFyaXMsIExpbnV4IHBhIGdhIHNwb7l0dWplLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5IGFzIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImFuZCBwYXJ0aXRpb24gMTEgYXMgZW50aXJlIHZvbHVtZSAoNiksIGFzIElSSVggZXhwZWN0cyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlJhemRlbGVrIDkgcHVzdGl0ZSBrb3Qgb2JzZWdvdm8gZ2xhdm9bdm9sdW1lIGhlYWRlcl0gKDApLFxuIgorInJhemRlbGVrIDExIHBhIGtvdCBjZWxvdG5pIGRlbCAoNiksIGtvdCBwcmnoYWt1amUgSVJJWC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5nZWQgc3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIHRvICV4ICglcylcbiIKK21zZ3N0ciAiVGlwIHJhemRlbGthICVkIGplIHNwcmVtZW5qZW4gdiAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICJUaXAgcmF6ZGVsa2EgJWQgamUgc3ByZW1lbmplbiB2ICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgYmVnaW5uaW5ncyAobm9uLUxpbnV4Pyk6XG4iCittc2dzdHIgIkZpemnobmkgemHoZXRlayByYXpkZWxrYSAlZCBuaSBlbmFrIGxvZ2nobmVtdSAobmUtTGludXg/KTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI5IGZkaXNrL2ZkaXNrLmM6MTgzNyBmZGlzay9mZGlzay5jOjE4NDYgZmRpc2svZmRpc2suYzoxODU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorbXNnc3RyICIgIGZpemnobmk9KCVkLCAlZCwgJWQpICIKKworIzogZmRpc2svZmRpc2suYzoxODMwIGZkaXNrL2ZkaXNrLmM6MTgzOAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpY2FsPSglZCwgJWQsICVkKVxuIgorbXNnc3RyICJsb2dp6G5pPSglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBlbmRpbmdzOlxuIgorbXNnc3RyICJGaXpp6G5hL2xvZ2nobmEga29uY2EgcmF6ZGVsa2EgJWQgc2UgbmUgdWplbWF0YTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKK21zZ3N0ciAiUmF6ZGVsZWsgJWkgc2UgbmUgemHobmUgbmEgbWVqaSBzdGV6OlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgIm1vcmFsIGJpIGJpdGkgKCVkLCAlZCwgMSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIlJhemRlbGVrICVpIHNlIG5lIGtvbuhhIG5hIG1lamkgc3Rlei5cbiIKKworIzogZmRpc2svZmRpc2suYzoxODU3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAlZClcbiIKK21zZ3N0ciAibW9yYWwgYmkgYml0aSAoJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gcGh5c2ljYWwgc2VjdG9yIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJSYXpkZWxlayAlaSBzZSBuZSB6YehuZSBuYSBtZWppIHN0ZXo6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg3NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkIE1CLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQgTUIsICVsbGQgYmFqdG92XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBiYWp0b3ZcbiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlZCBoZWFkcywgJWxsdSBzZWN0b3JzL3RyYWNrLCAlZCBjeWxpbmRlcnMiCittc2dzdHIgIiVkIGdsYXYsICVkIHNla3Rvcmpldi9zdGV6bywgJWQgc3RleiIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIsIHRvdGFsICVsbHUgc2VjdG9ycyIKK21zZ3N0ciAiLCBza3Vwbm8gJWx1IHNla3RvcmpldiIKKworIzogZmRpc2svZmRpc2suYzoxODkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVbml0cyA9ICVzIG9mICVkICogJWQgPSAlZCBieXRlc1xuIgorbXNnc3RyICIiCisiRW5vdGUgPSAlcyBvZCAlZCB4ICVkID0gJWQgYmFqdG92XG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6ICV1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICJzbGFiYSB2ZWxpa29zdCBpbm9kYSIKKworIzogZmRpc2svZmRpc2suYzoyMDA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3RoaW5nIHRvIGRvLiBPcmRlcmluZyBpcyBjb3JyZWN0IGFscmVhZHkuXG4iCisiXG4iCittc2dzdHIgIiIKKyJOaeggbmkgdHJlYmEgc3ByZW1lbml0aS4gUmVkIGplIL5lIHByYXZpbGVuLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRvbmUuXG4iCittc2dzdHIgIiIKKyJPcHJhdmxqZW5vXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisiVG8gbmUgaXpnbGVkYSBrb3QgdGFiZWxhIHJhemRlbGtvdlxuIgorIlZlcmpldG5vIHN0ZSBpemJyYWxpIG5hcGHobm8gbmFwcmF2by5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBCb290ICAgICAgU3RhcnQgICAgICAgICBFbmQgICAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBaYWdvbiAgICBaYehldGVrICAgICAgIEtvbmVjICAgICBCbG9raSAgICBJZCAgU2lzdGVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3OCBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjEwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTgKK21zZ2lkICJEZXZpY2UiCittc2dzdHIgIk5hcHJhdmEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjExNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiUGFydGl0aW9uIHRhYmxlIGVudHJpZXMgYXJlIG5vdCBpbiBkaXNrIG9yZGVyXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWbm9zaSB0YWJlbGUgcmF6ZGVsa292IG5pc28gdiBkaXNrb3ZuZW0gdnJzdG5lbSByZWR1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWQgZ2xhdiwgJWQgc2VrdG9yamV2LCAlZCBzdGV6XG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iCittc2dzdHIgIiCpdCBBRiBHbGF2IFNla3QgU3R6ICBHbGF2IFNla3QgU3R6ICAgWmHoZXRlayAgVmVsICBJRFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgIk9wb3pvcmlsbzogcmF6ZGVsZWsgJWQgdnNlYnVqZSBzZWt0b3IgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlJhemRlbGVrICVkOiBnbGF2YSAlZCBqZSB2ZehqYSBvZCBuYWp2ZehqZSAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogc2VjdG9yICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAiUmF6ZGVsZWsgJWQ6IHNla3RvciAlZCBqZSB2ZehqaSBvZCBuYWp2ZehqZWdhICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJSYXpkZWxraSAlZDogc3RlemEgJWQgamUgdmXoamEgb2QgbmFqdmXoamUgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogcHJldmlvdXMgc2VjdG9ycyAlZCBkaXNhZ3JlZXMgd2l0aCB0b3RhbCAlZFxuIgorbXNnc3RyICJSYXpkZWxlayAlZDogcHJlarluamkgc2VrdG9yamkgJWQgc2UgbmUgdWplbWFqbyBzIGNlbG90byAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHN0YXJ0LW9mLWRhdGEgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIk9wb3pvcmlsbzogcG+5a29kb3ZhbiB6YehldGVrIHBvZGF0a292IHYgcmF6ZGVsa3UgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBvdmVybGFwcyBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIk9wb3pvcmlsbzogcmF6ZGVsZWsgJWQgcHJla3JpdmEgcmF6ZGVsZWsgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiByYXpkZWxlayAlZCBqZSBwcmF6ZW5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiTG9naehuaSByYXpkZWxlayAlZCBuaSB2IGNlbG90aSB2IHJhemRlbGt1ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJWc290YSBkb2RlbGplbmloIHNla3RvcmpldiAlZCBqZSB2ZehqYSBvZCBuYWp2ZehqZSAlbGxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUmVtYWluaW5nICVsbGQgdW5hbGxvY2F0ZWQgJWQtYnl0ZSBzZWN0b3JzXG4iCittc2dzdHIgIiVsbGQgbmVkb2RlbGplbmloIHNla3RvcmpldlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzMDEgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDExCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBpcyBhbHJlYWR5IGRlZmluZWQuICBEZWxldGUgaXQgYmVmb3JlIHJlLWFkZGluZyBpdC5cbiIKK21zZ3N0ciAiUmF6ZGVsZWsgJWQgamUgvmUgZG9sb+hlbi4gWmJyablpdGUgZ2EgcHJlZGVuIGdhIHBvbm92bm8gZG9kYXRlLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlbGx1IGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIlNla3RvciAlZCBqZSC+ZSBkb2RlbGplblxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICJOaSB2ZeggcHJvc3RpaCBzZWt0b3JqZXZcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJTEkcywgKyUyJHMgb3IgK3NpemV7SyxNLEd9IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBBSVggZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0T3Byb3N0aXRlIC0gdGEgZmRpc2sgbmUgem5hIGRlbGF0aSB6IG96bmFrYW1pIGRpc2tvdiB0aXBhIEFJWC5cbiIKKyJcdMhlIL5lbGl0ZSBkb2RhdGkgcmF6ZGVsa2UgdGlwYSBET1MsIG5hanByZWogdXN0dmFyaXRlXG4iCisiXHQgbm92byBwcmF6bm8gdGFiZWxvIHJhemRlbGtvdiB0aXBhIERPUy4gKFVwb3JhYml0ZSBvLilcbiIKKyJcdE9QT1pPUklMTzogVG8gYm8gdW5p6GlsbyB0cmVudXRubyB2c2VidW5vIGRpc2thLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIE1hYyBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHRPcHJvc3RpdGUgLSB0YSBmZGlzayBuZSB6bmEgZGVsYXRpIHogb3puYWthbWkgZGlza292IHRpcGEgQUlYLlxuIgorIlx0yGUgvmVsaXRlIGRvZGF0aSByYXpkZWxrZSB0aXBhIERPUywgbmFqcHJlaiB1c3R2YXJpdGVcbiIKKyJcdCBub3ZvIHByYXpubyB0YWJlbG8gcmF6ZGVsa292IHRpcGEgRE9TLiAoVXBvcmFiaXRlIG8uKVxuIgorIlx0T1BPWk9SSUxPOiBUbyBibyB1bmnoaWxvIHRyZW51dG5vIHZzZWJ1bm8gZGlza2EuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBkZWxldGUgc29tZSBwYXJ0aXRpb24gYW5kIGFkZCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gZmlyc3RcbiIKK21zZ3N0ciAiSXpicmlzYXRpIG1vcmF0ZSBuZWsgcmF6ZGVsZWsgaW4gbmFqcHJlaiBkb2RhdGkgcmF6uWlyamVuIHJhemRlbGVrXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQWxsIGxvZ2ljYWwgcGFydGl0aW9ucyBhcmUgaW4gdXNlXG4iCittc2dzdHIgIlZzaSBsb2dp6G5pIHJhemRlbGtpIHNvIHYgdXBvcmFiaVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIkRvZGFqYSBzZSBwcmltYXJuaSByYXpkZWxla1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbW1hbmQgYWN0aW9uXG4iCisiICAgJXNcbiIKKyIgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNClcbiIKK21zZ3N0ciAiIgorIlVrYXpuYSBha2NpamFcbiIKKyIgICVzXG4iCisiICBwICAgcHJpbWFybmkgcmF6ZGVsZWsgKDEtNClcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAibCAgIGxvZ2ljYWwgKDUgb3Igb3ZlcikiCittc2dzdHIgImwgICBsb2dp6G5pICg1IGFsaSB2ZegpIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJlICAgZXh0ZW5kZWQiCittc2dzdHIgImUgICByYXq5aXJqZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICJOZXZlbGphdm5hILl0ZXZpbGthIHJhemRlbGthIHphIHRpcCBgJWMnXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisiVGFiZWxhIHJhemRlbGtvdiBqZSBiaWxhIHNwcmVtZW5qZW5hIVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJLbGnoZW0gaW9jdGwoKSB6YSBwb25vdm5vIGJyYW5qZSB0YWJlbGUgcmF6ZGVsa292LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorIlxuIgorIk9QT1pPUklMTzogUG9ub3ZubyBicmFuamUgdGFiZWxlIHJhemRlbGtvdiBuZSBibyB1c3BlbG8sIG5hcGFrYSAlZDogJXMuXG4iCisiSmVkcm8guWUgdmVkbm8gdXBvcmFibGphIHN0YXJvIHRhYmVsby5cbiIKKyJOb3ZhIHRhYmVsbyBibyB2IHVwb3JhYmkguWVsZSBwbyBuYXNsZWRuamVtIHphZ29udS5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueSBET1MgNi54XG4iCisicGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgZmRpc2sgbWFudWFsIHBhZ2UgZm9yIGFkZGl0aW9uYWxcbiIKKyJpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIk9QT1pPUklMTzogyGUgc3RlIHVzdHZhcmlsaSBhbGkgc3ByZW1pbmphbGkgcmF6ZGVsa2VcbiIKKyIgdGlwYSBET1MgNi54LCBzaSBwb2dsZWp0ZSBwcmlyb+huaWsgemEgZmRpc2sgemEgZG9kYXRuZVxuIgorImluZm9ybWFjaWplLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkVycm9yIGNsb3NpbmcgZmlsZVxuIgorbXNnc3RyICIiCisiXG4iCisiTmFwYWthIHByaSB6YXBpcmFuanUgZGF0b3Rla2VcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIlNpbmhyb25pemlyYW0gZGlza2UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICJSYXpkZWxlayAlZCBuaW1hIHBvZGF0a292bmVnYSBvYm1v6GphXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiTm92IHph6GV0ZWsgcG9kYXRrb3YiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY3MgorbXNnaWQgIkV4cGVydCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJTdHJva292bmkgdWtheiAobSB6YSBwb21v6Ck6ICIKKworIzogZmRpc2svZmRpc2suYzoyNjg1Cittc2dpZCAiTnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiqXRldmlsbyBzdGV6IgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIql0ZXZpbG8gZ2xhdiIKKworIzogZmRpc2svZmRpc2suYzoyNzM3Cittc2dpZCAiTnVtYmVyIG9mIHNlY3RvcnMiCittc2dzdHIgIql0ZXZpbG8gc2VrdG9yamV2IgorCisjOiBmZGlzay9mZGlzay5jOjI3MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogc2V0dGluZyBzZWN0b3Igb2Zmc2V0IGZvciBET1MgY29tcGF0aWJsaXR5XG4iCittc2dzdHIgIk9wb3pvcmlsbzogb2RtaWsgc2VrdG9yamEgYm8gbmFzdGF2bGplbiB0YWtvLCBkYSBibyB6ZHJ1vmxqaXYgeiBET1NcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBmZGlzayBkb2Vzbid0ICIKKyJzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXMgZG9lc24ndCBjb250YWluIGEgdmFsaWQgcGFydGl0aW9uIHRhYmxlXG4iCittc2dzdHIgIkRpc2sgJXMgbmUgdnNlYnVqZSB2ZWxqYXZuZSB0YWJlbGUgcmF6ZGVsa292XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgzMQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlcyBuZSBtb3JlbSBvZHByZXRpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg1MCBmZGlzay9zZmRpc2suYzoyNjA4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzIG5lIG1vcmVtIG9kcHJldGlcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IG5lem5hbiB1a2F6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIGtlcm5lbCBmaW5kcyB0aGUgc2VjdG9yIHNpemUgaXRzZWxmIC0gLWIgb3B0aW9uIGlnbm9yZWRcbiIKK21zZ3N0ciAiIgorIlRvIGplZHJvIG5hamRlIHZlbGlrb3N0IHNla3RvcmphIHNhbW9zdG9qbm8gLSAtYiBpemJpcmUgbmkgdXBvuXRldmFuYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHRoZSAtYiAoc2V0IHNlY3RvciBzaXplKSBvcHRpb24gc2hvdWxkIGJlIHVzZWQgd2l0aCBvbmUgc3BlY2lmaWVkICIKKyJkZXZpY2VcbiIKK21zZ3N0ciAiIgorIk9wb3pvcmlsbzogaXpiaXJhIC1iIChuYXN0YXZpIHZlbGlrb3N0IHNla3RvcmphKSBzZSBuYWogdXBvcmFibGphIHMgcG9kYW5vICIKKyJuYXByYXZvXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBhbiBPU0YvMSBkaXNrbGFiZWwgb24gJXMsIGVudGVyaW5nIGRpc2tsYWJlbCBtb2RlLlxuIgorbXNnc3RyICIiCisiTmEgJXMgamUgYmlsYSB6YXpuYW5hIG96bmFrYSBkaXNrYSB0aXBhIE9TRi8xLCB2c3RvcGEgdiBuYehpbiBvem5h6GV2YW5qYSAiCisiZGlza2EuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIlVrYXogKG0gemEgcG9tb+gpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisiVHJlbnV0bmEgemFnb25za2EgZGF0b3Rla2EgamU6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJQcm9zaW1vIHZwablpdGUgaW1lIG5vdmUgemFnb25za2UgZGF0b3Rla2U6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiWmFnb25za2EgZGF0b3Rla2EgbmkgYmlsYSBzcHJlbWVuamVuYVxuIgorCisjOiBmZGlzay9mZGlzay5jOjMxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJIHBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRaYSB0YWJlbGUgcGFydGljaWogdGlwYSBTR0kgvmFsIG5pIHN0cm9rb3ZuZWdhIG1lbmlqYS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2ttYWNsYWJlbC5jOjMwCisjLCBmdXp6eQorbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgTWFjIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgZmRpc2soMSkgY2Fubm90IGhhbmRsZSB0aGVzZSBkaXNrcy5cbiIKKyJcdFVzZSBlaXRoZXIgcGRpc2sgb3IgcGFydGVkIHRvIG1vZGlmeSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorIlx0TmV2ZXJ0aGVsZXNzIHNvbWUgYWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorbXNnc3RyICIiCisiXG4iCisiXHROYSB0ZW0gZGlza3UgamUgdmVsamF2bmEgb3puYWthIEFJWC5cbiIKKyJcdE5hIL5hbG9zdCBzIHRlbWkgZGlza2kgTGludXggdHJlbnV0bm9cbiIKKyJcdG5lIHpuYSByb2tvdmF0aS4gUG9tYWdhIG5haiB2YW0gcGFyXG4iCisiXHRuYXN2ZXRvdjpcbiIKKyJcdDEuIGZkaXNrIGJvIHVuaehpbCB2c2ViaW5vIGRpc2thIHByaSBwaXNhbmp1LlxuIgorIlx0Mi4gQm9kaXRlIHByZXByaehhbmksIGRhIHRhIGRpc2sgTkkgvml2bGplbmpza2VnYVxuIgorIlx0ICAgcG9tZW5hIG9ic2Vnb3ZuZSBza3VwaW5lW3ZvbHVtZSBncm91cF0uIChEcnVnYehlIHNlIGxhaGtvIHpnb2RpLFxuIgorIlx0ICAgZGEgYm9zdGUgYnJpc2FsaSB0dWRpIG9zdGFsZSBkaXNrZS5cbiIKKyJcdDMuIFByZWQgaXpicmlzb20gZml6aehuZWdhIG9ic2VnYSBib2RpdGUgcHJlcHJp6GFuaSxcbiIKKyJcdCAgIGRhIGRpc2sgb2RzdHJhbml0ZSBsb2dp6G5vLCBpeiB2YbllZ2EgQUlYXG4iCisiXHQgICByYeh1bmFsbmlrYS4gKERydWdh6GUgbGFoa28gcG9zdGFuZXRlIFxuIgorIlx0ICAgXCJzdHJva292bmphayB6YSBBSVhcIikuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODEKK21zZ2lkICJTR0kgdm9saGRyIgorbXNnc3RyICJTR0kgZ2xhdmFvYnNnYSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgyCittc2dpZCAiU0dJIHRya3JlcGwiCittc2dzdHIgIlNHSSBvZHppdnN0ZXplIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODMKK21zZ2lkICJTR0kgc2VjcmVwbCIKK21zZ3N0ciAiU0dJIG9keml2c2VrdCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg0Cittc2dpZCAiU0dJIHJhdyIKK21zZ3N0ciAiU0dJIHN1cm92IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODUKK21zZ2lkICJTR0kgYnNkIgorbXNnc3RyICJTR0kgYnNkIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODYKK21zZ2lkICJTR0kgc3lzdiIKK21zZ3N0ciAiU0dJIHN5c3YiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NworbXNnaWQgIlNHSSB2b2x1bWUiCittc2dzdHIgIlNHSSBvYnNlZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiU0dJIGVmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIlNHSSBsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIlNHSSBybHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIHhmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIkxpbnV4IGl6bWVuamFsbmkgcHJvc3RvciIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk2IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MQorbXNnaWQgIkxpbnV4IG5hdGl2ZSIKK21zZ3N0ciAiTGludXggZG9tYehhIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJVcG+5dGV2YWpv6CBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYy4gb3puYWthIG5lIHNtZSB2c2Vib3ZhdGkgdmXoIHRvIDUxMiAiCisiYmFqdG92XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJaYXpuYW5hIGplIGJpbGEgZGlza292bmEgb3puYWthIHRpcGEgU0dJIHogbmFwYehubyBrb250cm9sbm8gdnNvdG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnNcbiIKKyIlZCBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXMgKG96bmFrYSBkaXNrYSB0aXBhIFNHSSk6ICVkIGdsYXYsICVkIHNla3RvcmpldlxuIgorIiVkIHN0ZXosICVkIGZpemnobmloIHN0ZXpcbiIKKyIlZCBkb2RhdG5pIHNla3Qvc3Rlem8sIHByZXBsZXRlbm9zdCAlZDoxXG4iCisiJXNcbiIKKyJFbm90ZSA9ICVzIG9kICVkICogJWQgYmFqdG92XG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAob3puYWthIGRpc2thIHRpcGEgU0dJKTogJWQgZ2xhdiwgJWQgc2VrdG9yamV2LCAlZCBzdGV6XG4iCisiRW5vdGUgPSAlcyBvZCAlZCAqICVkIGJhanRvdlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiLS0tLS0gcmF6ZGVsa2kgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgIFph6GV0ZWsgICAgIEtvbmVjICBTZWt0b3IgICBJZCAgU2lzdGVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG4iCisiQm9vdGZpbGU6ICVzXG4iCisiLS0tLS0gRGlyZWN0b3J5IEVudHJpZXMgLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIFphZ29uaW5mbyAtLS0tLVxuIgorIlphZ29uc2thIGRhdC46ICVzXG4iCisiLS0tLS0gVm5vc2kgaW1lbmlrb3YgLS0tLS1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiUyZDogJS0xMHMgc2VrdG9yJTV1IHZlbGlrb3N0JTh1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiTmV2ZWxqYXZuYSB6YWdvbnNrYSBkYXQuIVxuIgorIlx0WmFnb25za2EgZGF0b3Rla2EgbW9yYSBiaXRpIGFic29sdXRuYSBuZW5p6GVsbmEgcG90LFxuIgorIlx0bnByLiBcIi91bml4XCIgYWxpIFwiL3VuaXguc2F2ZVwiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Mjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdE5hbWUgb2YgQm9vdGZpbGUgdG9vIGxvbmc6ICAxNiBieXRlcyBtYXhpbXVtLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRJbWUgemFnb25za2UgZGF0LiBqZSBwcmVkb2xnbzogbmFqdmXoIDE2IGJhanRvdi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBtdXN0IGhhdmUgYSBmdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdFphZ29uc2thIGRhdG90ZWthIG1vcmEgYml0aSBwb3BvbG5hIHBvdC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMxMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCZSBhd2FyZSwgdGhhdCB0aGUgYm9vdGZpbGUgaXMgbm90IGNoZWNrZWQgZm9yIGV4aXN0ZW5jZS5cbiIKKyJcdFNHSSdzIGRlZmF1bHQgaXMgXCIvdW5peFwiIGFuZCBmb3IgYmFja3VwIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRaYXZlZGF0aSBzZSBtb3JhdGUsIGRhIHNlIG5lIHByZWdsZWRhLCBhbGkgemFnb25za2EgZGF0LiBvYnN0YWphLlxuIgorIlx0UHJpdnpldG8gemEgU0dJIGpoZSBcIi91bml4XCIgaW4gemEgdmFybm9zdG5vIGtvcGlqbyBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0WmFnb25za2EgZGF0b3Rla2EgamUgc3ByZW1lbmplbmEgbmEgXCIlc1wiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1vcmUgdGhhbiBvbmUgZW50aXJlIGRpc2sgZW50cnkgcHJlc2VudC5cbiIKK21zZ3N0ciAiUHJpc290ZW4gamUgdmXoIGtvdCBlbiB2bm9zIGNlbG90bmVnYSBkaXNrYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICJOb2JlbiByYXpkZWxlayBuaSBkb2xv6GVuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSVJJWCBsaWtlcyB3aGVuIFBhcnRpdGlvbiAxMSBjb3ZlcnMgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICJJUklYLXUgamUgdrll6CDoZSByYXpkZWxlayAxMSBwcmVrcml2YSBjZWxvdGVuIGRpc2suXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorIlJhemRlbGVrIOhleiBjZWxvdGVuIGRpc2sgc2UgbW9yYSB6YehldGkgbmEgYmxva3UgMCxcbiIKKyJuZSBuYSBkaXNrb3ZuZW0gYmxva3UgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gaXMgb25seSAlZCBkaXNrYmxvY2sgbGFyZ2UsXG4iCisiYnV0IHRoZSBkaXNrIGlzICVkIGRpc2tibG9ja3MgbG9uZy5cbiIKK21zZ3N0ciAiIgorIkNlbG90bmEgZGlza292bmEgcGFydGljaWphIGplIHZlbGlrYSAlZCBkaXNrLiBibG9rb3YsXG4iCisiYW1wYWsgZGlzayBqZSBkb2xnICVkIGRpc2suIGJsb2tvdi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJPbmUgUGFydGl0aW9uICgjMTEpIHNob3VsZCBjb3ZlciB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIkVuIHJhemRlbGVrICgjMTEpIG5haiBiaSBwb2tyaXZhbCBjZWxvdGVuIGRpc2suXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJSYXpkZWxlayAlZCBzZSBuZSB6YehuZSBuYSBtZWppIHMgY2lsaW5kcm9tLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIlJhemRlbGVrICVkIHNlIG5lIGtvbuhhIG5hIG1lamkgcyBjaWxpbmRyb20uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIFBhcnRpdGlvbiAlZCBhbmQgJWQgb3ZlcmxhcCBieSAlZCBzZWN0b3JzLlxuIgorbXNnc3RyICJSYXpkZWxrYSAlZCBpbiAlZCBzZSBwcmVrcml2YXRhIHYgc2t1cG5vICVkIHNla3RvcmppaC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ4NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgb2YgJTh1IHNlY3RvcnMgLSBzZWN0b3JzICU4dS0ldVxuIgorbXNnc3RyICIlOHUgc2VrdG9yamV2IG5pIHYgcmFiaSAtIHNla3RvcmppICU4dS0ldVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgYm9vdCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJaYWdvbnNraSByYXpkZWxlayBuZSBvYnN0YWphLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJJem1lbmphbG5pIHJhemRlbGVrIG5lIG9ic3RhamEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisiSXptZW5qYWxuaSByYXpkZWxlayBuaW1hIGRvbG/oZW5lZ2EgdGlwYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMworIywgYy1mb3JtYXQKK21zZ2lkICJcdFlvdSBoYXZlIGNob3NlbiBhbiB1bnVzdWFsIGJvb3QgZmlsZSBuYW1lLlxuIgorbXNnc3RyICJcdEl6YnJhbGkgc3RlIG5lbmF2YWRubyBpbWUgemFnb25za2UgZGF0b3Rla2UuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnkgWW91IG1heSBjaGFuZ2UgdGhlIFRhZyBvZiBub24tZW1wdHkgcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAirmFsIGxhaGtvIHNwcmVtZW5pdGUgT3puYWtvIG5lcHJhem5paCByYXpkZWxrb3YuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzgKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIG9mIHR5cGUgXCJTR0kgdm9saGRyXCIsIHRoZSBJUklYIHN5c3RlbSB3aWxsIHJlbHkgb24gaXQgdG9cbiIKKyJyZXRyaWV2ZSBmcm9tIGl0cyBkaXJlY3Rvcnkgc3RhbmRhbG9uZSB0b29scyBsaWtlIHNhc2ggYW5kIGZ4LlxuIgorIk9ubHkgdGhlIFwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrIHNlY3Rpb24gbWF5IHZpb2xhdGUgdGhpcy5cbiIKKyJUeXBlIFlFUyBpZiB5b3UgYXJlIHN1cmUgYWJvdXQgdGFnZ2luZyB0aGlzIHBhcnRpdGlvbiBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIlByaXBvcm/obGppdm8gamUsIGRhIGplIHJhemRlbGVrIG5hIG9kbWlrdSAwIHRpcGEgXCJTR0kgdm9saGRyXCIsXG4iCisic2lzdGVtIElSSVggc2UgemFuYblhIG5hIHRvLCBkYSBsYWhrbyB1cG9yYWJsamEgb3JvZGphIGtvdCBzbyBcbiIKKyJzYXNoIGluIGZ4IHogbmplZ2EuIFNhbW8gXCJTR0kgb2JzZWdcIiBjZWxvdGVuIGRlbCBkaXNrYSBsYWhrb1xuIgorImtyuWkgdG8uIFZ0aXBrYWp0ZSBEQSwg6GUgcmVzbmnobm8gvmVsaXRlIG96bmHoaXRpIHRvIHBhcnRpY2lqbyBkcnVnYehlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiREFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU2OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBZb3Uga25vdywgWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrP1xuIgorbXNnc3RyICJBbGkgc2UgemF2ZWRhdGUsIGRhIHNlIHZhbSBuYSBkaXNrdSBwcmVrcml2YWpvIHJhemRlbGtpP1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAiU2Ftb2Rlam5pIHBvc2t1cyB2bm9zYSBjZWxvdG5lZ2EgZGlza2EuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkNlbG90ZW4gZGlzayBqZSC+ZSBwcmVrcml0IHogcmF6ZGVsa2kuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIk5hIGRpc2t1IHNlIHZhbSBwcmVrcml2YWpvIHJhemRlbGtpLiBQb3ByYXZpdGUgamloIVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjQ0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IGVsZXZlbnRoIHBhcnRpdGlvblxuIgorImNvdmVycyB0aGUgZW50aXJlIGRpc2sgYW5kIGlzIG9mIHR5cGUgYFNHSSB2b2x1bWUnXG4iCittc2dzdHIgIiIKKyJQcmlwb3Jv6GxqaXZvIGplLCBkYSBlbmFqc3RpIHJhemRlbGVrXG4iCisicHJla3JpdmEgY2Vsb3RlbiBkaXNrIGluIGplIHRpcGEgYFNHSSB2b2x1bWUnXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgZ2V0IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiUHJla3JpdmFsaSBzZSB2YW0gYm9kbyByYXpkZWxraSBuYSBkaXNrdS4gUG9wcmF2aXRlIGppaCFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgTGFzdCAlcyIKK21zZ3N0ciAiIFphZG5qaSAlcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgU0dJIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3aWxsIGJlIHVucmVjb3ZlcmFibHkgbG9zdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlVzdHZhcmphIHNlIG5vdmEgU0dJIG96bmFrYSBkaXNrYS4gU3ByZW1lbWJlIGJvZG8gb3N0YWxlIHYgcG9tbmlsbmlrdVxuIgorInNhbW8sIGRva2xlciBzZSBuZSBvZGxv6Gl0ZSwgZGEgamloIGJvc3RlIHphcGlzYWxpLiBQb3RlbSBibyBwcmVquW5qYVxuIgorInZzZWJpbmEgbmVwb3ZybmxqaXZhLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzE4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6ICBCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlcy4gIFVzaW5nIGdlb21ldHJ5IGN5bGluZGVyIHZhbHVlIG9mICUiCisiZC5cbiIKKyJUaGlzIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgZm9yIGRldmljZXMgPiAzMy44IEdCLlxuIgorbXNnc3RyICIiCisiT3Bvem9yaWxvOiBCTEtHRVRTSVpFIGlvY3RsIG5pIHVzcGVsIG5hICVzLiBVcG9yYWJsamEgc2UgZ2VvbWV0cmlqc2thICIKKyJ2cmVkbm9zdCBzdGV6ZSAlZC5cbiIKKyJUYSB2cmVkbm9zdCBzZSBsYWhrbyBza3JharlhIHphIG5hcHJhdmUgPiAzMy44IEdCLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byBrZWVwIHBhcmFtZXRlcnMgb2YgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJQb3NrdXMgb2hyYW5qYW5qYSBwYXJhbWV0cm92IHJhemRlbGthICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklEPSUwMnhcdFNUQVJUPSVkXHRMRU5HVEg9JWRcbiIKK21zZ3N0ciAiSUQ9JTAyeFx0WkHIRVRFSz0lZFx0RE9MrklOQT0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgKK21zZ2lkICJVbmFzc2lnbmVkIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MAorbXNnaWQgIlN1bk9TIHJvb3QiCittc2dzdHIgIlN1bk9TIGtvcmVuc2thIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDEKK21zZ2lkICJTdW5PUyBzd2FwIgorbXNnc3RyICJTdW5PUyBpem1lbmphbG5hIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIKK21zZ2lkICJTdW5PUyB1c3IiCittc2dzdHIgIlN1bk9TIHVzciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQzCittc2dpZCAiV2hvbGUgZGlzayIKK21zZ3N0ciAiQ2Vsb3RlbiBkaXNrIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQKK21zZ2lkICJTdW5PUyBzdGFuZCIKK21zZ3N0ciAiU3VuT1Mgc3RhbmQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NQorbXNnaWQgIlN1bk9TIHZhciIKK21zZ3N0ciAiU3VuT1MgdmFyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDYKK21zZ2lkICJTdW5PUyBob21lIgorbXNnc3RyICJTdW5PUyBob21lIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIiVsbGQgbmVkb2RlbGplbmloIHNla3RvcmpldlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgY2FjaGVmcyIKK21zZ3N0ciAiU3VuT1MgaG9tZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ5CisjLCBmdXp6eQorbXNnaWQgIlN1bk9TIHJlc2VydmVkIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMworbXNnaWQgIkxpbnV4IHJhaWQgYXV0b2RldGVjdCIKK21zZ3N0ciAiTGludXggcmFpZCBzYW1vemF6bmF2YSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjEzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorIlByb2JhYmx5IHlvdSdsbCBoYXZlIHRvIHNldCBhbGwgdGhlIHZhbHVlcyxcbiIKKyJlLmcuIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMgYW5kIHBhcnRpdGlvbnNcbiIKKyJvciBmb3JjZSBhIGZyZXNoIGxhYmVsIChzIGNvbW1hbmQgaW4gbWFpbiBtZW51KVxuIgorbXNnc3RyICIiCisiWmF6bmFuYSBqZSBiaWxhIHN1bi1vdmEgb3puYWthIGRpc2thIHogbmFwYehubyBrb250cm9sbm9cbiIKKyJ2c290by4gVmVyamV0bm8gYm9zdGUgbW9yYWxpIG5hc3Rhdml0aSB2c2UgdnJlZG5vc3RpXG4iCisiKG5wci4gZ2xhdmUsIHNla3RvcmppLCBzdGV6ZSwgcmF6ZGVsa2kpIGFsaSBwcmlzaWxpdGlcbiIKKyJzdmW+byBvem5ha28gKHVrYXogcyB2IGdsYXZuZW0gbWVuaWp1KVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgdmVyc2lvbiBbMHglMDh4XS5cbiIKK21zZ3N0ciAiWmF6bmFuYSBqZSBiaWxhIGRpc2tvdm5hIG96bmFrYSB0aXBhIFNHSSB6IG5hcGHobm8ga29udHJvbG5vIHZzb3RvLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTUzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3Jvbmcgc2FuaXR5IFsweCUwOHhdLlxuIgorbXNnc3RyICJaYXpuYW5hIGplIGJpbGEgZGlza292bmEgb3puYWthIHRpcGEgU0dJIHogbmFwYehubyBrb250cm9sbm8gdnNvdG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICJaYXpuYW5hIGplIGJpbGEgZGlza292bmEgb3puYWthIHRpcGEgU0dJIHogbmFwYehubyBrb250cm9sbm8gdnNvdG8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBXcm9uZyB2YWx1ZXMgbmVlZCB0byBiZSBmaXhlZCB1cCBhbmQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyhyaXRlKVxuIgorbXNnc3RyICIiCisiT3Bvem9yaWxvOiBuZXZlbGphdm5hIHphc3RhdmljYSAweCUwNHggdGFiZWxlIHJhemRlbGtvdiAlZCBibyBwb3ByYXZsamVuYSB6IHciCisiKHJpdGUpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IHN1biBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJVc3R2YXJqYSBzZSBub3ZhIGRpc2tvdm5hIG96bmFrYSB0aXBhIHN1bi4gU3ByZW1lbWJlIGJvZG8gb3N0YWxlIHZcbiIKKyJwb21uaWxuaWt1IHNhbW8gZG9rbGVyIHNlIG5lIG9kbG/oaXRlLCBkYSBqaWggYm9zdGUgemFwaXNhbGkuIFBvIHRlbVxuIgorImJvIHByZWq5bmphIHZzZWJpbmEgbmVwb3ZybmxqaXZhLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAiU2VrdG9yamkvc2xlZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiUmF6ZGVsZWsgJWQgc2UgbmUga29u6GEgbmEgbWVqaSBzIHN0ZXpvXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiUmF6ZGVsZWsgJWQgc2UgcHJla3JpdmEgeiBkcnVnaW1pIHYgc2VrdG9yamloICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICJOZXBvcmFibGplbiBwcm9zdG9yIC0gc2VrdG9yamkgMC0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiTmVwb3JhYmxqZW4gcHJvc3RvciAtIHNla3RvcmppICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKyJEcnVnaSByYXpkZWxraSC+ZSBwcmVrcml2YWpvIHZlcyBkaXNrLlxuIgorIkl6YnJpuWl0ZS9wb21hbmq5YWp0ZSBuZWthdGVyZSBwcmVkZW4gcG9ub3ZubyBwb3NrdXNpdGUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiUHJpcG9yb+hsaml2byBqZSwgZGEgZW5hanN0aSByYXpkZWxla1xuIgorInByZWtyaXZhIGNlbG90ZW4gZGlzayBpbiBqZSB0aXBhIGBTR0kgdm9sdW1lJ1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZCBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWt0b3IgJWQgamUgvmUgZG9kZWxqZW5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmVuJ3QgY292ZXJlZCB0aGUgd2hvbGUgZGlzayB3aXRoIHRoZSAzcmQgcGFydGl0aW9uLCBidXQgeW91ciB2YWx1ZVxuIgorIiVkICVzIGNvdmVycyBzb21lIG90aGVyIHBhcnRpdGlvbi4gWW91ciBlbnRyeSBoYXMgYmVlbiBjaGFuZ2VkXG4iCisidG8gJWQgJXNcbiIKK21zZ3N0ciAiIgorIk5pc3RlIHBva3JpbGkgY2Vsb3RuZWdhIGRpc2thIHMgdHJldGppbSByYXpkZWxrb20sIGFtcGFrIHZhuWEgdnJlZG5vc3RcbiIKKyIlZCAlcyBwcmVrcml2YSBuZWthdGVyZSBkcnVnZSByYXpkZWxrZS4gVmG5IHZub3MgamUgYmlsIHNwcmVtZW5qZW5cbiIKKyJuYSAlZCAlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyLIZSC+ZWxpdGUgb2hyYW5pdGkgemRydb5saml2b3N0IHMgU3VuT1MvU29sYXJpcywgcG90ZW0gcHVzdGl0ZVxuIgorInRhIHJhemRlbGVrIGtvdCBDZWxvdGVuIGRpc2sgKDUpLCB6IHph6GV0a29tIG5hIDAgaW4gJXUgc2VrdG9yamlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIlplbG8gamUgcHJpcG9yb+hsaml2byBwdXN0aXRpIHJhemRlbGVrIHogb2RtaWtvbSAwXG4iCisia290IFVGUywgRVhUMkZTIGRhdC4gc2lzdGVtIGFsaSBTdW5PUyBpem1lbmphbG5pLiDIZSBcbiIKKyJwb3N0YXZpdGUgdGphIExpbnV4IGl6bWVuamFsbmkgdG8gbGFoa28gdW5p6GkgdGFiZWxvIFxuIgorInJhemRlbGtvdiBpbiB6YWdvbnNraSBibG9rLiBWbmVzaXRlIERBLCDoZSByZXMgvmVsaXRlXG4iCisiZGEgc2UgdGEgcmF6ZGVsZWsgb3puYehpIGtvdCA4MiAoTGludXggaXptZW5qYWxuaSk6ICIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzIChvem5ha2EgZGlza2EgdGlwYSBTdW4pOiAlZCBnbGF2LCAlZCBzZWt0b3JqZXYsICVkIG9icmF0b3YvbWluXG4iCisiJWQgc3RleiwgJWQgZHJ1Z2loIHN0ZXosICVkIGZpemnobmloIHN0ZXpcbiIKKyIlZCBkb2RhdG5pIHNrdHIvc3R6LCBwcmVwbGV0ZW5vc3QgJWQ6MVxuIgorIiVzXG4iCisiRW5vdGUgPSAlcyBvZCAlZCAqIDUxMiBiYWp0b3ZcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAob3puYWthIGRpc2thIHRpcGEgU3VuKTogJWQgZ2xhdiwgJWQgc2VrdG9yamV2LCAlZCBzdGV6XG4iCisiRW5vdGUgPSVzIG9kICVkICogNTEyIGJhanRvdlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBaYXN0YXZhIFph6GV0ZWsgICAgS29uZWMgICBCbG9raSAgICBJZCAgU2lzdGVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MjUKK21zZ2lkICJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiqXRldmlsbyBkcnVnaWggc3RleiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYzNworbXNnaWQgIkV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICJEb2RhdG5pIHNla3RvcmppIG5hIHN0ZXpvIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjQ0Cittc2dpZCAiSW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIkZha3RvciBwcmVwbGV0ZW5vc3RpIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjUxCittc2dpZCAiUm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIkhpdHJvc3QgdnJ0ZW5qYSAob2JyYXRpL21pbikiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTgKK21zZ2lkICJOdW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICKpdGV2aWxvIGZpemnobmloIHN0ZXoiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICJQcmF6bm8iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICJGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4Cittc2dpZCAiWEVOSVggcm9vdCIKK21zZ3N0ciAiWEVOSVgga29yZW5za2kiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OQorbXNnaWQgIlhFTklYIHVzciIKK21zZ3N0ciAiWEVOSVggdXNyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwCittc2dpZCAiRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMQorbXNnaWQgIkV4dGVuZGVkIgorbXNnc3RyICJSYXq5aXJqZW4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTIKK21zZ2lkICJGQVQxNiIKK21zZ3N0ciAiRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTMKK21zZ2lkICJIUEZTL05URlMiCittc2dzdHIgIkhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNAorbXNnaWQgIkFJWCIKK21zZ3N0ciAiQUlYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE1Cittc2dpZCAiQUlYIGJvb3RhYmxlIgorbXNnc3RyICJBSVggemFnb25za2kiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTYKK21zZ2lkICJPUy8yIEJvb3QgTWFuYWdlciIKK21zZ3N0ciAiT1MvMiB6YWdvbnNraSB1cHJhdmxqYWxuaWsiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTcKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIlc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOAorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjAKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIlc5NSBSYXq5J2EgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICJPUFVTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIyCittc2dpZCAiSGlkZGVuIEZBVDEyIgorbXNnc3RyICJTa3JpdGkgRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjMKK21zZ2lkICJDb21wYXEgZGlhZ25vc3RpY3MiCittc2dzdHIgIkNvbXBhcSBkaWFnbm9zdGlrYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNAorbXNnaWQgIkhpZGRlbiBGQVQxNiA8MzJNIgorbXNnc3RyICJTa3JpdGkgRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNQorbXNnaWQgIkhpZGRlbiBGQVQxNiIKK21zZ3N0ciAiU2tyaXRpIEZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiU2tyaXRpIEhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNworbXNnaWQgIkFTVCBTbWFydFNsZWVwIgorbXNnc3RyICJBU1QgU21hcnRTbGVlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIlNrcml0aSBXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjkKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIChMQkEpIgorbXNnc3RyICJTa3JpdGkgVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiU2tyaXRpIFc5NSBGQVQxNiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIk5FQyBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzIKK21zZ2lkICJQbGFuIDkiCittc2dzdHIgIlBsYW4gOSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMworbXNnaWQgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorbXNnc3RyICJQYXJ0aXRpb25NYWdpYyBva3JldmFsbmkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzQKK21zZ2lkICJWZW5peCA4MDI4NiIKK21zZ3N0ciAiVmVuaXggODAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzUKK21zZ2lkICJQUEMgUFJlUCBCb290IgorbXNnc3RyICJQUEMgUFJlUCB6YWdvbnNraSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNgorbXNnaWQgIlNGUyIKK21zZ3N0ciAiU0ZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM3Cittc2dpZCAiUU5YNC54IgorbXNnc3RyICJRTlg0LngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzgKK21zZ2lkICJRTlg0LnggMm5kIHBhcnQiCittc2dzdHIgIlFOWDQueCAyLiBkZWwiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIlFOWDQueCAzLiBkZWwiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDAKK21zZ2lkICJPblRyYWNrIERNIgorbXNnc3RyICJPblRyYWNrIERNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQxCittc2dpZCAiT25UcmFjayBETTYgQXV4MSIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MgorbXNnaWQgIkNQL00iCittc2dzdHIgIkNQL00iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDMKK21zZ2lkICJPblRyYWNrIERNNiBBdXgzIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ0Cittc2dpZCAiT25UcmFja0RNNiIKK21zZ3N0ciAiT25UcmFja0RNNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NQorbXNnaWQgIkVaLURyaXZlIgorbXNnc3RyICJFWi1Ecml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NgorbXNnaWQgIkdvbGRlbiBCb3ciCittc2dzdHIgIkdvbGRlbiBCb3ciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDcKK21zZ2lkICJQcmlhbSBFZGlzayIKK21zZ3N0ciAiUHJpYW0gRWRpc2siCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk5Cittc2dpZCAiU3BlZWRTdG9yIgorbXNnc3RyICJTcGVlZFN0b3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICJHTlUgSFVSRCBhbGkgU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiU3RhcmkgTWluaXgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTUKK21zZ2lkICJNaW5peCAvIG9sZCBMaW51eCIKK21zZ3N0ciAiTWluaXggLyBzdGFyaSBMaW51eCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eCBpem1lbmphbG5pIC8gU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIHNrcml0aSBDOiBwb2dvbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCByYXq5aXJqZW4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjAgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MQorbXNnaWQgIk5URlMgdm9sdW1lIHNldCIKK21zZ3N0ciAiTlRGUyBvYnNlZ25hIG1ub75pY2EiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjIKKyMsIGZ1enp5Cittc2dpZCAiTGludXggcGxhaW50ZXh0IgorbXNnc3RyICJMaW51eCBwbGFpbnRleHQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjQKK21zZ2lkICJBbW9lYmEiCittc2dzdHIgIkFtb2ViYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NQorbXNnaWQgIkFtb2ViYSBCQlQiCittc2dzdHIgIkFtb2ViYSBCQlQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjYKK21zZ2lkICJCU0QvT1MiCittc2dzdHIgIkJTRC9PUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NworbXNnaWQgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKK21zZ3N0ciAiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY4Cittc2dpZCAiRnJlZUJTRCIKK21zZ3N0ciAiRnJlZUJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OQorbXNnaWQgIk9wZW5CU0QiCittc2dzdHIgIk9wZW5CU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzAKK21zZ2lkICJOZVhUU1RFUCIKK21zZ3N0ciAiTmVYVFNURVAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzEKK21zZ2lkICJEYXJ3aW4gVUZTIgorbXNnc3RyICJEYXJ3aW4gVUZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcyCittc2dpZCAiTmV0QlNEIgorbXNnc3RyICJOZXRCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzMKK21zZ2lkICJEYXJ3aW4gYm9vdCIKK21zZ3N0ciAiRGFyd2luIHphZ29uc2tpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc0CisjLCBmdXp6eQorbXNnaWQgIkhGUyAvIEhGUysiCittc2dzdHIgIk9TLzIgSFBGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NQorbXNnaWQgIkJTREkgZnMiCittc2dzdHIgIkJTREkgZGF0LiBzaXN0ZW0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIkJTREkgaXptZW5qYWxuaSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NworbXNnaWQgIkJvb3QgV2l6YXJkIGhpZGRlbiIKK21zZ3N0ciAic2tyaXRpIEJvb3QgV2l6emFyZCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OAorbXNnaWQgIlNvbGFyaXMgYm9vdCIKK21zZ3N0ciAiU29sYXJpcyB6YWdvbnNraSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NrdHIgKEZBVC0xMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODEKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiCittc2dzdHIgIkRSRE9TL3NrdHIgKEZBVC0xNiA8IDMyTSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODIKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNikiCittc2dzdHIgIkRSRE9TL3NrdHIgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJuZWRhdG90Zehub3Npc3RlbXNraSBwb2RhdGtpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg1Cittc2dpZCAiQ1AvTSAvIENUT1MgLyAuLi4iCittc2dzdHIgIkNQL00gLyBDVE9TIC8gLi4uIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg3Cittc2dpZCAiRGVsbCBVdGlsaXR5IgorbXNnc3RyICJEZWxsIFV0aWxpdHkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODgKK21zZ2lkICJCb290SXQiCittc2dzdHIgIkJvb3RJdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OQorbXNnaWQgIkRPUyBhY2Nlc3MiCittc2dzdHIgIkRPUyBkb3N0b3AiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTEKK21zZ2lkICJET1MgUi9PIgorbXNnc3RyICJET1Mgc2FtbyB6YSBicmFuamUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTQKK21zZ2lkICJCZU9TIGZzIgorbXNnc3RyICJCZU9TIGRhdC4gc2lzdC4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTUKKyMsIGZ1enp5Cittc2dpZCAiR1BUIgorbXNnc3RyICJFRkkgR1BUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk2Cittc2dpZCAiRUZJIChGQVQtMTIvMTYvMzIpIgorbXNnc3RyICJFRkkgKEZBVC0xMi8xNi8zMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTcKK21zZ2lkICJMaW51eC9QQS1SSVNDIGJvb3QiCittc2dzdHIgIkxpbnV4L1BBLVJJU0MgemFnb25za2kiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAwCittc2dpZCAiRE9TIHNlY29uZGFyeSIKK21zZ3N0ciAiRE9TIHNla3VuZGFybmkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAxCittc2dpZCAiVk13YXJlIFZNRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDIKK21zZ2lkICJWTXdhcmUgVk1LQ09SRSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNgorbXNnaWQgIkxBTnN0ZXAiCittc2dzdHIgIkxBTnN0ZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA3Cittc2dpZCAiQkJUIgorbXNnc3RyICJCQlQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yIG9uICVzIC0gY2Fubm90IHNlZWsgdG8gJWx1XG4iCittc2dzdHIgIm5hcGFrYSBwcmkgaXNrYW5qdSBuYSAlcyAtIGlza2FuamUgZG8gJWx1IG5pIG1vvm5vXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2OQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yOiB3YW50ZWQgMHglMDh4JTA4eCwgZ290IDB4JTA4eCUwOHhcbiIKK21zZ3N0ciAibmFwYWthIHByaSBpc2thbmp1OiB6YWh0ZXZhbm8gMHglMDh4JTA4eCwgZG9ibGplbm8gMHglMDh4JTA4eFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTUKK21zZ2lkICJvdXQgb2YgbWVtb3J5IC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgInBvbW5pbG5pa2EgamUgem1hbmprYWxvIC0gemFrbGp16HVqZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIwIGZkaXNrL3NmZGlzay5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGVycm9yIG9uICVzIC0gY2Fubm90IHJlYWQgc2VjdG9yICVsdVxuIgorbXNnc3RyICJuYXBhayBwcmkgYnJhbmp1IG5hICVzIC0gYnJhbmplIHNla3RvcmphICVsdSBuaSBtb75ub1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiTkFQQUtBOiBzZWt0b3IgJWx1IG5pbWEgb3puYWtlIHRpcGEgbXNkb3NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzIC0gY2Fubm90IHdyaXRlIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAibmFwYWthIHByaSBwaXNhbmp1IG5hICVzIC0gc2VrdG9yamEgJWx1IG5pIG1vvm5vIHphcGlzYXRpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgInNocmFuamVuZSBkYXRvdGVrZSBzZWt0b3JqYSByYXpkZWxrYSBuaSBtb2dv6GUgb2RwcmV0aSAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICJuYXBha2EgcHJpIHBpc2FuanUgbmEgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJzdGFuamEgb2Jub3ZpdHZlbmUgZGF0b3Rla2UgcmF6ZGVsa2EgbmkgbW9nb+hlIGRvYml0aSAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0MAorbXNnaWQgInBhcnRpdGlvbiByZXN0b3JlIGZpbGUgaGFzIHdyb25nIHNpemUgLSBub3QgcmVzdG9yaW5nXG4iCittc2dzdHIgIm9ibm92aXR2ZW5hIGRhdG90ZWthIHJhemRlbGthIGltYSBuYXBh6G5vIHZlbGlrb3N0IC0gbmUgb2JuYXZsamFtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/XG4iCittc2dzdHIgImplIHptYW5qa2FsbyBwb21uaWxuaWthP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIm9ibm92aXR2ZW5lIGRhdG90ZWtlIHJhemRlbGthIG5pIG1vZ2/oZSBvZHByZXRpICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAibmFwYWthIHByaSBicmFuanUgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIGRldmljZSAlcyBmb3Igd3JpdGluZ1xuIgorbXNnc3RyICJuYXByYXZlICVzIG5pIG1vZ2/oZSBvZHByZXRpIHphIGJyYW5qZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzZWN0b3IgJWx1IG9uICVzXG4iCittc2dzdHIgIm5hcGFrYSBwcmkgemFwaXNvdmFuanUgc2VrdG9yamEgJWx1IG5hICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IGdlb21ldHJ5XG4iCittc2dzdHIgIkRpc2sgJXM6IGdlb21ldHJpamUgbmkgbW9nb+hlIG5hanRpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ1NworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IHNpemVcbiIKK21zZ3N0ciAiRGlzayAlczogdmVsaWtvc3RpIG5pIG1vZ2/oZSBuYWp0aVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHN0YXJ0PSVsdSAtIHRoaXMgbG9va3MgbGlrZSBhIHBhcnRpdGlvbiByYXRoZXIgdGhhblxuIgorInRoZSBlbnRpcmUgZGlzay4gVXNpbmcgZmRpc2sgb24gaXQgaXMgcHJvYmFibHkgbWVhbmluZ2xlc3MuXG4iCisiW1VzZSB0aGUgLS1mb3JjZSBvcHRpb24gaWYgeW91IHJlYWxseSB3YW50IHRoaXNdXG4iCittc2dzdHIgIiIKKyJPcG96b3JpbG86IHph6GV0ZWs9JWx1IC0gdG8gamUgYm9saiBwb2RvYm5vIHJhemRlbGt1IGtvdFxuIgorImNlbG90bmVtdSBkaXNrdS4gVXBvcmFiYSBmZGlzay1hIG5hIG5qZW0gamUgdmVyamV0bm8gXG4iCisiYnJleiBzbWlzbGEuIFt1cG9yYWJpdGUgLS1mb3JjZSBpemJpcm8g6GUgdG8gcmVzIL5lbGl0ZV1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGhlYWRzXG4iCittc2dzdHIgIk9wb3pvcmlsbzogSERJT19HRVRHRU8gcHJhdmkgZGEgamUgJWx1IGdsYXZcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IHNlY3RvcnNcbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiBIRElPX0dFVEdFTyBwcmF2aSwgZGEgamUgJWx1IHNla3RvcmpldlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogQkxLR0VUU0laRS9IRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBjeWxpbmRlcnNcbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHByYXZpLCBkYSBqZSAlbHUgc3RlelxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJPcG96b3JpbG86IG1hbG8gdmVyamV0bm8guXRldmlsbyBzZWt0b3JqZXYgKCVsdSkgLSBwb25hdmFkaSBqaWggamUgNjNcbiIKKyJUbyBibyBwb3Z6cm/oaWxvIHRlvmF2ZSB6IHZzbyBwcm9ncmFtc2tvIG9wcmVtbywga2kgdXBvcmFibGphIEMvRy9TICIKKyJuYXNsYXZsamFuamUuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWx1IGN5bGluZGVycywgJWx1IGhlYWRzLCAlbHUgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWx1IHN0ZXosICVsdSBnbGF2LCAlbHUgc2VrdG9yamV2L3N0ZXpvXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIKK21zZ3N0ciAiJXMgb2QgcmF6ZGVsa2EgJXMgaW1hIG5lbW9nb+hvIHZyZWRub3N0IGdsYXZlOiAlbHUgKG1vcmEgYml0aSAwLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgb2QgcmF6ZGVsa2EgJXMgaW1hIG5lbW9nb+hvIHZyZWRub3N0IHNla3RvcmphOiAlbHUgKG1vcmEgYml0aSAxLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGN5bGluZGVyczogJWx1IChzaG91bGQgYmUgaW4gMC0lIgorImx1KVxuIgorbXNnc3RyICIlcyBvZCByYXpkZWxrYSAlcyBpbWEgbmVtb2dv6G8gdnJlZG5vc3Qgc3RlemU6ICVsdSAobW9yYSBiaXRpIDAtJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIiIKKyJJZCAgSW1lXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iCittc2dzdHIgIlBvbm92bm8gYmVyZW0gdGFiZWxvIHJhemRlbGtvdiAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCisjLCBmdXp6eQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKyJVa2F6IHBvbm92bmVnYSBicmFuamEgdGFiZWxlIHJhemRlbGtvdiBuaSB1c3BlbFxuIgorIlBvbm92bm8gemG+ZW5pdGUgdmG5IHNpc3RlbSB6ZGFqIHByZWQgdXBvcmFibyBta2ZzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxNworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjbG9zaW5nICVzXG4iCittc2dzdHIgIk5hcGFrYSBwcmkgemFwaXJhbmp1ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IHRhayByYXpkZWxlayBuZSBvYnN0YWphXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg3OAorbXNnaWQgInVucmVjb2duaXplZCBmb3JtYXQgLSB1c2luZyBzZWN0b3JzXG4iCittc2dzdHIgIm5lcmF6cG96bmF2bmEgb2JsaWthIC0gdXBvcmFibGphbSBzZWt0b3JqZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5pbXBsZW1lbnRlZCBmb3JtYXQgLSB1c2luZyAlc1xuIgorbXNnc3RyICJuZXBvZHBydGEgb2JsaWthIC0gdXBvcmFibGphbSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gY3lsaW5kZXJzIG9mICVsdSBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVub3RlID0gc3RlemUgcG8gJWx1IGJhanRvdiwgYmxva2kgcG8gMTAyNCBiYWp0b3YsILl0ZWplbSBvZCAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICAgIEVuZCAgICNjeWxzICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiBOYXByYXZhIFphZ29uIFph6GV0ZWsgS29uZWMgICNzdGV6ZSAgICAjYmxva2kgICAgSWQgIFNpc3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gc2VjdG9ycyBvZiA1MTIgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVub3RlID0gc2VrdG9yamkgcG8gNTEyIGJhanRvdiwguXRlamVtIG9kICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgICBTdGFydCAgICAgICBFbmQgICAjc2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgTmFwcmF2YSBaYWdvbiAgIFph6GV0ZWsgICAgIEtvbmVjICAjc2t0cmppICAgSWQgIFNpc3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkVub3RlID0gYmxva2kgcG8gMTAyNCBiYWp0b3YsILl0ZWplbSBvZCAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICBTdGFydCAgICAgICBFbmQgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIE5hcHJhdmEgWmFnb24gIFph6GV0ZWsgICAgIEtvbmVjICAgI2Jsb2tpICAgIElkICBTaXN0ZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IG1lYmlieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRW5vdGUgPSBNaUIgaXogMTA0ODU3NiBiYWp0b3YsIGJsb2tpIHBvIDEwMjQgYmFqdG92LCC5dGVqZSBzZSBvZCAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIk5hcHJhdmEgWmFnb24gWmHoZXRlayBLb25lYyAgIE1pQiAgICAjYmxva2kgICAgSWQgIFNpc3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIlx0XHR6YehldGVrOiAoc3R6LGcsc2t0KSBwcmnoYWtvdmFubyAoJWxkLCVsZCwlbGQpLCBuYWpkZW5vICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMAorIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0ZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisiXHRcdGtvbmVjOiAoc3R6LGcsc2t0KSBwcmnoYWtvdmFubyAoJWxkLCVsZCwlbGQpLCBuYWpkZW5vICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgInJhemRlbGVrIHNlIGtvbuhhIG5hIHN0ZXppICVsZCB6YSBrb25jZW0gZGlza2FcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiTm9iZW4gcmF6ZGVsZWsgbmkgYmlsIG5hamRlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBUaGUgcGFydGl0aW9uIHRhYmxlIGxvb2tzIGxpa2UgaXQgd2FzIG1hZGVcbiIKKyIgIGZvciBDL0gvUz0qLyVsZC8lbGQgKGluc3RlYWQgb2YgJWxkLyVsZC8lbGQpLlxuIgorIkZvciB0aGlzIGxpc3RpbmcgSSdsbCBhc3N1bWUgdGhhdCBnZW9tZXRyeS5cbiIKK21zZ3N0ciAiIgorIk9wb3pvcmlsbzogVGFiZWxhIHJhemRlbGtvdiBpemdsZWRhLCBrb3QgZGEgamUgYmlsYVxuIgorIiBuYXJlamVuYSB6YSBzdHovZy9za3Q9Ki8lbGQlbGQgKG5hbWVzdG8gJWxkLyVsZC8lbGQpLlxuIgorIlphIHRhIHNwaXNlayBzZSBwcml2emVtYSB0byBnZW9tZXRyaWpvLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIm5vYmVuYSB0YWJlbGEgcmF6ZGVsa292IG5pIG5hIHZvbGpvLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg4CisjLCBjLWZvcm1hdAorbXNnaWQgInN0cmFuZ2UsIG9ubHkgJWQgcGFydGl0aW9ucyBkZWZpbmVkLlxuIgorbXNnc3RyICJ6YW5pbWl2bywgc2FtbyAlZCByYXpkZWxrb3YgamUgZG9sb+hlbmloLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iCittc2dzdHIgIk9wb3pvcmlsbzogcmF6ZGVsZWsgJXMgaW1hIHZlbGlrb3N0IDAgYW1wYWsgbmkgb3puYehlbiBrb3QgUHJhemVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIGlzIGJvb3RhYmxlXG4iCittc2dzdHIgIk9wb3pvcmlsbzogcmF6ZGVsZWsgJXMgaW1hIHZlbGlrb3N0IDAgaW4gamUgb3puYehlbiBrb3QgemFnb25za2lcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgbm9uemVybyBzdGFydFxuIgorbXNnc3RyICJPcG96b3JpbG86IHJhemRlbGVrICVzIGltYSB2ZWxpa29zdCAwIGluIG5lbmnoZWxuaSB6YehldGVrXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzICIKK21zZ3N0ciAiT3Bvem9yaWxvOiByYXpkZWxlayAlcyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgbm90IGNvbnRhaW5lZCBpbiBwYXJ0aXRpb24gJXNcbiIKK21zZ3N0ciAibmkgdnNlYm92YW4gdiByYXpkZWxrdSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbnMgJXMgIgorbXNnc3RyICJPcG96b3JpbG86IHJhemRlbGtpICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICJpbiAlcyBzZSBwcmVrcml2YXRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorIk9wb3pvcmlsbzogcmF6ZGVsZWsgJXMgdnNlYnVqZSBkZWwgdGFiZWxlIHJhemRlbGtvdiAoc2VrdG9yICVsdSlcbiIKKyJpbiBibyB1bmnoZW4sIGtvIHNlIG5hcG9sbmlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgc3RhcnRzIGF0IHNlY3RvciAwXG4iCittc2dzdHIgIk9wb3pvcmlsbzogcmF6ZGVsZWsgJXMgc2UgemHobmUgbmEgc2VrdG9yanUgMFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBleHRlbmRzIHBhc3QgZW5kIG9mIGRpc2tcbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiByYXpkZWxlayAlcyBwb3Rla2EgemEga29uY2VtIGRpc2thXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNjkKK21zZ2lkICIiCisiQW1vbmcgdGhlIHByaW1hcnkgcGFydGl0aW9ucywgYXQgbW9zdCBvbmUgY2FuIGJlIGV4dGVuZGVkXG4iCisiIChhbHRob3VnaCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gdW5kZXIgTGludXgpXG4iCittc2dzdHIgIiIKKyJNZWQgcHJpbWFybmltaSByYXpkZWxraSBzZSBsYWhrbyByYXq5aXJpIHNhbW8gZWRlblxuIgorIiAo6GVwcmF2IHRvIG5pIHByb2JsZW0gcHJpIExpbnV4LXUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiByYXpkZWxlayAlcyBzZSBuZSB6YehuZSBuYSBtZWppIHMgc3Rlem9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI5MworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3QgZW5kIGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiByYXpkZWxlayAlcyBzZSBuZSBrb27oYSBuYSBtZWppIHMgc3Rlem9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxMQorbXNnaWQgIiIKKyJXYXJuaW5nOiBtb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyJPcG96b3JpbG86IHZl6CBrb3QgZW4gcHJpbWFybmkgcmF6ZGVsZWsgamUgb3puYehlbiBrb3QgemFnb25za2kgXG4iCisiVG8gbmkgcHJvYmxlbSB6YSBMSUxPLCBzYW1vIERPUyBNQlIgc2UgbmUgbW9yZSB6YWduYXRpIHMgdGVnYSBkaXNrYS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxOAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1c3VhbGx5IG9uZSBjYW4gYm9vdCBmcm9tIHByaW1hcnkgcGFydGl0aW9ucyBvbmx5XG4iCisiTElMTyBkaXNyZWdhcmRzIHRoZSBgYm9vdGFibGUnIGZsYWcuXG4iCittc2dzdHIgIiIKKyJPcG96b3JpbG86IHBvbmF2YWRpIHNlIGxhaGtvIHphZ2FuamEgcyBwcmltYXJuaWggcmF6ZGVsa292LCBzYW1vXG4iCisiTElMTyBuZSB1cG+5dGV2YSB6YXN0YXZpY2UgYGJvb3RhYmxlJy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiT3Bvem9yaWxvOiBub2JlbiBwcmltYXJuaSByYXpkZWxlayBuaSBvem5h6GVuIGtvdCB6YWdvbnNraVxuIgorIlRvIG5pIHByb2JsZW0gemEgTElMTywgc2FtbyBET1MgTUJSIHNlIG5lIG1vcmUgemFnbmF0aSBzIHRlZ2EgZGlza2EuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAiemHoZXRlayIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisicGFydGl0aW9uICVzOiBzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorInJhemRlbGVrICVzOiB6YehldGVrOiAoc3R6LGcsc2t0KSBwcmnoYWtvdmFubyAoJWxkLCVsZCwlbGQpLCBuYWpkZW5vICglbGQsJSIKKyJsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgImtvbmVjIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlczogZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisicmF6ZGVsZWsgJXM6IGtvbmVjOiAoc3R6LGcsc2t0KSBwcmnoYWtvdmFubyAoJWxkLCVsZCwlbGQpIG5hamRlbm8gKCVsZCwlbGQsJSIKKyJsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgInJhemRlbGVrICVzIHNlIGtvbuhhIG5hIHN0ZXppICVsZCwgemEga29uY2VtIGRpc2thXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHNoaWZ0ZWQgc3RhcnQgb2YgdGhlIGV4dGQgcGFydGl0aW9uIGZyb20gJWxkIHRvICVsZFxuIgorIihGb3IgbGlzdGluZyBwdXJwb3NlcyBvbmx5LiBEbyBub3QgY2hhbmdlIGl0cyBjb250ZW50cy4pXG4iCittc2dzdHIgIiIKKyJPcG96b3JpbG86IHph6GV0ZWsgcmF6uWlyamVuZWdhIHJhemRlbGthIGplIGJpbCBwcmVtYWtuamVuXG4iCisib2QgJWxkIG5hICVsZCAoU2FtbyB6YSBpenBpc292YW5qZSwgbmUgc3ByZW1pbmphanRlIHZzZWJpbmUuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiT3Bvem9yaWxvOiByYXq5aXJqZW4gcmF6ZGVsZWsgc2UgbmUgemHobmUgbmEgbWVqaSBzIHN0ZXpvLlxuIgorIkRPUyBpbiBMaW51eCBib3N0YSB0b2xtYehpbGEgdnNlYmlubyByYXpsaehuby5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQwMiBmZGlzay9zZmRpc2suYzoxNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnMgLSBpZ25vcmluZyB0aG9zZSBwYXN0IG5yICglZClcbiIKK21zZ3N0ciAicHJldmXoIHJhemRlbGtvdiAtIHBvILl0LiAlZCBuZSBib2RvIHVwb7l0ZXZhbmlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQxNworbXNnaWQgInRyZWUgb2YgcGFydGl0aW9ucz9cbiIKK21zZ3N0ciAiZHJldm8gcmF6ZGVsa292P1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTI1Cittc2dpZCAiZGV0ZWN0ZWQgRGlzayBNYW5hZ2VyIC0gdW5hYmxlIHRvIGhhbmRsZSB0aGF0XG4iCittc2dzdHIgInphem5hbiBqZSBVcHJhdmxqYWxuaWsgZGlza2EgLSB1cHJhdmxqYW5qZSB6IG5qaW0gbmkgcG9kcHJ0b1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTMyCittc2dpZCAiRE02IHNpZ25hdHVyZSBmb3VuZCAtIGdpdmluZyB1cFxuIgorbXNnc3RyICJETTYgcG9kcGlzIG5hamRlbiAtIGtvbuh1amVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTIKK21zZ2lkICJzdHJhbmdlLi4uLCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJ6YW5pbWl2by4uLiwgcmF6uWlyamVuIHJhemRlbGVrIHZlbGlrb3N0aSAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJ6YW5pbWl2by4uLiwgQlNEIHJhemRlbGVrIHZlbGlrb3N0aSAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgJXM6IHVucmVjb2duaXplZCBwYXJ0aXRpb24gdGFibGUgdHlwZVxuIgorbXNnc3RyICIgJXM6IG5lcHJlcG96bmFuIHRpcCB0YWJlbGUgcmF6ZGVsa292IgorCisjOiBmZGlzay9zZmRpc2suYzoxNjE2Cittc2dpZCAiLW4gZmxhZyB3YXMgZ2l2ZW46IE5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICItbiB6YXN0YXZpY2EgamUgYmlsIHBvZGFuYTogQnJleiBzcHJlbWVtYlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjMyCittc2dpZCAiRmFpbGVkIHNhdmluZyB0aGUgb2xkIHNlY3RvcnMgLSBhYm9ydGluZ1xuIgorbXNnc3RyICJOZXVzcGW5bm8gc2hyYW5qZXZhbmplIHN0YXJpaCBzZWt0b3JqZXYgLSBwcmVraW5qYW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzNyBmZGlzay9zZmRpc2suYzoxNjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB3cml0aW5nIHRoZSBwYXJ0aXRpb24gb24gJXNcbiIKK21zZ3N0ciAiTmV1c3BluW5vIHphcGlzb3ZhbmplIHJhemRlbGthIG5hICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3MTkKK21zZ2lkICJsb25nIG9yIGluY29tcGxldGUgaW5wdXQgbGluZSAtIHF1aXR0aW5nXG4iCittc2dzdHIgImRvbGdhIGFsaSBuZXBvcG9sbmEgdm5vc25hIHZyc3RpY2EgLSBrb27odWplbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAidmhvZG5hIG5hcGFrYTogYD0nIHByaehha292YW5vIHBvIHBvbGp1ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IHVuZXhwZWN0ZWQgY2hhcmFjdGVyICVjIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgInZob2RuYSBuYXBha2E6IG5lcHJp6GFrb3ZhbiB6bmFrICVjIHBvIHBvbGp1ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICJuZXByZXBvem5hbiB2aG9kOiAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxODEwCittc2dpZCAibnVtYmVyIHRvbyBiaWdcbiIKK21zZ3N0ciAicHJldmVsaWthILl0ZXZpbGthXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICK5dGV2aWxraSBzbGVkaWpvIOh1ZG5pIHBvZGF0a2lcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTkzOAorbXNnaWQgIm5vIHJvb20gZm9yIHBhcnRpdGlvbiBkZXNjcmlwdG9yXG4iCittc2dzdHIgInphIG9waXNuaWsgcmF6ZGVsa2EgbmkgcHJvc3RvcmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTk3MQorbXNnaWQgImNhbm5vdCBidWlsZCBzdXJyb3VuZGluZyBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAidXN0dmFyamFuamUgcmF6uWlyamVuZWdhIHJhemRlbGthIG9rb2xpIG9ic3RvamXoZWdhIG5pIHVzcGVsb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDIyCittc2dpZCAidG9vIG1hbnkgaW5wdXQgZmllbGRzXG4iCittc2dzdHIgInByZXZl6CB2aG9kbmloIHBvbGpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA1NgorbXNnaWQgIk5vIHJvb20gZm9yIG1vcmVcbiIKK21zZ3N0ciAiTmkgdmXoIHByb3N0b3JhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNzUKK21zZ2lkICJJbGxlZ2FsIHR5cGVcbiIKK21zZ3N0ciAiTmVwcmF2aWxlbiB0aXBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIk9wb3pvcmlsbzogcG9kYW5hIHZlbGlrb3N0ICglbHUpIHByZXNlZ2EgbmFqdmXoam8gZG92b2xqZW5vICglbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMTMKK21zZ2lkICJXYXJuaW5nOiBlbXB0eSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiBwcmF6ZW4gcmF6ZGVsZWtcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIk9wb3pvcmlsbzogcG+5a29kb3ZhbiB6YehldGVrIHJhemRlbGthIChuYWpwcmVqICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE0MAorbXNnaWQgInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIgorbXNnc3RyICJuZXByZXBvem5hbmEgemFnb25za2EgemFzdGF2aWNhIC0gaXp2ZXJpdGUgLSBhbGkgKlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTU3IGZkaXNrL3NmZGlzay5jOjIxNzAKK21zZ2lkICJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iCittc2dzdHIgImRlbG5hIHN0eixnLHNrdCBzcGVjaWZpa2FjaWphP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICJSYXq5aXJqZW4gcmF6ZGVsZWsgbmEgbmVwcmnoYWtvdmFuZW0gbWVzdHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIxMworbXNnaWQgImJhZCBpbnB1dFxuIgorbXNnc3RyICJzbGFiIHZub3NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAicHJldmXoIHJhemRlbGtvdlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjY4Cittc2dpZCAiIgorIklucHV0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OyBhYnNlbnQgZmllbGRzIGdldCBhIGRlZmF1bHQgdmFsdWUuXG4iCisiPHN0YXJ0PiA8c2l6ZT4gPHR5cGUgW0UsUyxMLFgsaGV4XT4gPGJvb3RhYmxlIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyJVc3VhbGx5IHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSA8c3RhcnQ+IGFuZCA8c2l6ZT4gKGFuZCBwZXJoYXBzIDx0eXBlPikuXG4iCittc2dzdHIgIiIKKyJWbm9zIHYgc2xlZGXoaSBvYmxpa2k7IG9kc290bmEgcG9samEgZG9iaWpvIHByaXZ6ZXRvIHZyZWRub3N0LlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlPiBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorIlBvbmF2YWRpIGplIHBvdHJlYm5vIHphcGlzYXRpIHNhbW8gPHN0YXJ0PiBpbiA8c2l6ZT4gKHboYXNpaCB0dWRpIDx0eXBlPikuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBkZXZpY2UgLi4uXG4iCittc2dzdHIgIlVwb3JhYmE6ICVzIFtpemJpcmVdIG5hcHJhdmEgLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTUKK21zZ2lkICJkZXZpY2U6IHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhIG9yIC9kZXYvc2RhIgorbXNnc3RyICJuYXByYXZhOiBucHIuIC9kZXYvaGRhIGFsaSAvZGV2L3NkYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NgorbXNnaWQgInVzZWZ1bCBvcHRpb25zOiIKK21zZ3N0ciAidXBvcmFibmUgaXpiaXJlOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgICAtcyBbb3IgLS1zaG93LXNpemVdOiBsaXN0IHNpemUgb2YgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgICAtcyBbYWxpIC0tc2hvdy1zaXplXTogaXpwablpIHZlbGlrb3N0IHJhemRlbGthIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiAgICAtYyBbYWxpIC0taWRdOiAgICAgICBpenBpuWkgYWxpIHNwcmVtZW5pIElkIHJhemRlbGthIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk5Cittc2dpZCAiICAgIC1sIFtvciAtLWxpc3RdOiAgICAgIGxpc3QgcGFydGl0aW9ucyBvZiBlYWNoIGRldmljZSIKK21zZ3N0ciAiICAgIC1sIFthbGkgLS1saXN0XTogICAgIGl6cGm5aSByYXpkZWxrZSB6YSB2c2FrbyBuYXByYXZvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAwCittc2dpZCAiICAgIC1kIFtvciAtLWR1bXBdOiAgICAgIGlkZW0sIGJ1dCBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgbGF0ZXIgaW5wdXQiCittc2dzdHIgIiIKKyIgICAgLWQgW2FsaSAtLWR1bXBdOiAgICAgcG9kb2JubyBrb3QgcHJlaiwgYW1wYWsgdiBvYmxpa2ksIHVwb3JhYm5pIHphICIKKyJrYXNuZWq5aSB2bm9zIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiAgICAtaSBbYWxpIC0taW5jcmVtZW50XToguXRldmlsbyBzdGV6LCBucHIuIG9kIDEgbmFtZXN0byBvZCAwIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAyCittc2dpZCAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBhY2NlcHQvcmVwb3J0IGluIHVuaXRzIG9mIHNlY3RvcnMvYmxvY2tzL2N5bGluZGVycy8iCisiTUIiCittc2dzdHIgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgc3ByZWptaS9wb3Jv6GFqIHYgZW5vdGFoIHNla3Rvcmpldi9ibG9rb3Yvc3Rlei9NQiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgICAtVCBbYWxpIC0tbGlzdC10eXBlc106aXpwablpIHpuYW5lIHRpcGUgcmF6ZGVsa292IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA0Cittc2dpZCAiICAgIC1EIFtvciAtLURPU106ICAgICAgIGZvciBET1MtY29tcGF0aWJpbGl0eTogd2FzdGUgYSBsaXR0bGUgc3BhY2UiCittc2dzdHIgIiIKKyIgICAgLUQgW2FsaSAtLURPU106ICAgICAgemEgemRydb5saml2b3N0IHogRE9TLW9tOiBwb3JhYmkgbWFsbyBwcm9zdG9yYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAtUiBbb3IgLS1yZS1yZWFkXTogICBtYWtlIGtlcm5lbCByZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisiICAgIC1SIFthbGkgLS1yZS1yZWFkXTogIHByaXNpbGkgamVkcm8gdiBwb25vdm5vIGJyYW5qZSB0YWJlbGUgcmF6ZGVsa292IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA2Cittc2dpZCAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIGNoYW5nZSBvbmx5IHRoZSBwYXJ0aXRpb24gd2l0aCBudW1iZXIgIyIKK21zZ3N0ciAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIHNwcmVtZW5pIHNhbW8gcmF6ZGVsa2UgcyC5dGV2aWxrbyAjIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA3Cittc2dpZCAiICAgIC1uIDogICAgICAgICAgICAgICAgIGRvIG5vdCBhY3R1YWxseSB3cml0ZSB0byBkaXNrIgorbXNnc3RyICIgICAgLW4gOiAgICAgICAgICAgICAgICAgbmUgemFwablpIHNwcmVtZW1iIG5hIGRpc2siCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDgKK21zZ2lkICIiCisiICAgIC1PIGZpbGUgOiAgICAgICAgICAgIHNhdmUgdGhlIHNlY3RvcnMgdGhhdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHRvIGZpbGUiCittc2dzdHIgIiAgICAtTyBkYXRvdGVrYSA6ICAgICAgICBzaHJhbmkgc2VrdG9yamUsIGtpIGJvZG8gcHJlcGlzYW5pIHYgZGF0b3Rla2kiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIgICAgLUkgZGF0b3Rla2E6ICAgICAgICAgcG9ub3ZubyBvYm5vdmkgdGUgc2VrdG9yamUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgLXYgW29yIC0tdmVyc2lvbl06ICAgcHJpbnQgdmVyc2lvbiIKK21zZ3N0ciAiICAgIC12IFthbGkgLS12ZXJzaW9uXTogIGl6cGm5aSByYXpsaehpY28iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgLT8gW29yIC0taGVscF06ICAgICAgcHJpbnQgdGhpcyBtZXNzYWdlIgorbXNnc3RyICIgICAgLT8gW2FsaSAtLWhlbHBdOiAgICAgaXpwablpIHRvIHNwb3Jv6GlsbyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMgorbXNnaWQgImRhbmdlcm91cyBvcHRpb25zOiIKK21zZ3N0ciAibmV2YXJuZSBpemJpcmU6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEzCittc2dpZCAiICAgIC1nIFtvciAtLXNob3ctZ2VvbWV0cnldOiBwcmludCB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgZ2VvbWV0cnkiCittc2dzdHIgIiIKKyIgICAgLWcgW2FsaSAtLXNob3ctZ2VvbWV0cnldOiBpenBpuWkgZ2VvbWV0cmlqbyB0YWtvLCBrb3QgZ2EgcmF6dW1lIGplZHJvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE0Cittc2dpZCAiIgorIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gIgorInRhYmxlIgorbXNnc3RyICIiCisiICAgIC1HIFthbGkgLS1zaG93LXB0LWdlb21ldHJ5XTogaXpwablpIHVnYW5qZW5vIGdvbWV0cmlqbyBpeiB0YWJlbGUgIgorInJhemRlbGtvdiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNQorbXNnaWQgIiIKKyIgICAgLXggW29yIC0tc2hvdy1leHRlbmRlZF06IGFsc28gbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIG9uIG91dHB1dFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZXhwZWN0IGRlc2NyaXB0b3JzIGZvciB0aGVtIG9uIGlucHV0IgorbXNnc3RyICIiCisiICAgIC14IFthbGkgLS1zaG93LWV4dGVuZGVkXTogaXpwablpIHR1ZGkgcmF6uWlyamVuZSByYXpkZWxrZSBhbGlcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmnoYWt1aiBvcGlzbmlrZSBuYSB2aG9kdSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNworbXNnaWQgIiIKKyIgICAgLUwgIFtvciAtLUxpbnV4XTogICAgICBkbyBub3QgY29tcGxhaW4gYWJvdXQgdGhpbmdzIGlycmVsZXZhbnQgZm9yIExpbnV4IgorbXNnc3RyICIiCisiICAgIC1MIFthbGkgLS1MaW51eF06ICAgICAgbmUgcHJpdG++dWogc2UgbmFkIHN0dmFybWksIGtpIG5pc28gcG9tZW1ibmUgemEgIgorIkxpbnV4IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbYWxpIC0tcXVpZXRdOiAgICAgbmUgcHJpa2G+aSBvcG96b3JpbCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZXRlY3RlZCBnZW9tZXRyeSB1c2luZzoiCittc2dzdHIgIiAgICBaYXpuYW5vIGdlb21ldHJpam8gbGFoa28gb2JpZGV0ZSB0YWtvIGRhIHVwb3JhYml0ZToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLUMjIFthbGkgLS1jeWxpbmRlcnMgI106bmFzdGF2aSC5dGV2aWxvIHN0ZXoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjEKK21zZ2lkICIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICBzZXQgdGhlIG51bWJlciBvZiBoZWFkcyB0byB1c2UiCittc2dzdHIgIiAgICAtSCMgW2FsaSAtLWhlYWRzICNdOiAgIG5hc3RhdmkguXRldmlsbyBnbGF2IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIyCittc2dpZCAiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiCittc2dzdHIgIiAgICAtUyMgW2FsaSAtLXNlY3RvcnMgI106IG5hc3RhdmkguXRldmlsbyBzZWt0b3JqZXYiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjMKK21zZ2lkICJZb3UgY2FuIGRpc2FibGUgYWxsIGNvbnNpc3RlbmN5IGNoZWNraW5nIHdpdGg6IgorbXNnc3RyICJWc2EgZG9zbGVkbm9zdG5hIHByZXZlcmphbmphIGxhaGtvIG9uZW1vZ2/oaXRlIHo6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzI0Cittc2dpZCAiICAgIC1mICBbb3IgLS1mb3JjZV06ICAgICAgZG8gd2hhdCBJIHNheSwgZXZlbiBpZiBpdCBpcyBzdHVwaWQiCittc2dzdHIgIiAgICAtZiBbYWxpIC0tZm9yY2VdOiAgICAgIG5hcmVkaSBrYXIgcmXoZW0gYnJleiB1Z292b3JvdiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAiVXBvcmFiYToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIlcyBuYXByYXZhXHRcdCBpenBpuWkgZGVqYXZuZSByYXpkZWxrZSBuYSBuYXByYXZpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIlcyBuYXByYXZhILl0MSC5dDIgLi4uIGFrdGl2aXJhaiByYXpkZWxlayBuMSAuLi4sIGRlYWt0aXZpcmFqIG9zdGFsZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIlcyAtIE5hcHJhdmFcdCBha3RpdmlyYSByYXpkZWxlayBuLCBkZWFrdGl2aXJhIG9zdGFsZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBzZmRpc2sgIgorImRvZXNuJ3Qgc3VwcG9ydCBHUFQuIFVzZSBHTlUgUGFydGVkLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIlVwb3JhYml0ZSAtLWZvcmNlIGl6YmlybyBkYSBvYmlkZXRlIHZzYSBwcmV2ZXJqYW5qYS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgIm5pIHVrYXphP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjI3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ0b3RhbDogJWxsdSBibG9ja3NcbiIKK21zZ3N0ciAic2t1cG5vOiAlbGx1IGJsb2tvdlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcwCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLXByaW50LWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyXG4iCittc2dzdHIgInVwb3JhYmE6IHNmZGlzayAtLXByaW50LWlkIG5hcHJhdmEguXQuIHJhemRlbGthXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzIKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tY2hhbmdlLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIElkXG4iCittc2dzdHIgInVwb3JhYmE6IHNmZGlzayAtLWNoYW5nZS1pZCBuYXByYXZhILl0LiByYXpkZWxrYSBJZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAidXBvcmFiYTogc2ZkaXNrIC0taWQgbmFwcmF2YSC5dC4gcmF6ZGVsa2EgW0lkXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjgxCittc2dpZCAiY2FuIHNwZWNpZnkgb25seSBvbmUgZGV2aWNlIChleGNlcHQgd2l0aCAtbCBvciAtcylcbiIKK21zZ3N0ciAibmF2ZWRldGUgbGFoa28gc2FtbyBlbm8gbmFwcmF2byAocmF6ZW4geiAtbCBhbGkgLXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgcmVhZC13cml0ZVxuIgorbXNnc3RyICIlcyBuaSBtb2dv6GUgb2RwcmV0aSB6YSBicmFuamUgaW4gcGlzYW5qZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgIiVzIG5pIG1vZ2/oZSBvZHByZXRpIHphIGJyYW5qZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczogVnJlZHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjc1MyBmZGlzay9zZmRpc2suYzoyNzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3lsaW5kZXJzLCAlbGQgaGVhZHMsICVsZCBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiVzOiAlbGQgc3RleiwgJWxkIGdsYXYsICVsZCBzZWt0b3JqZXYvc2xlZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IHNpemUgb2YgJXNcbiIKK21zZ3N0ciAiVmVsaWtvc3RpICVzIG5pIG1vZ2/oZSB1Z290b3ZpdGlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgInNsYWIgZGVqYXZuaSBiYWp0OiAweCV4IG5hbWVzdG8gMHg4MFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTAzIGZkaXNrL3NmZGlzay5jOjI5NTggZmRpc2svc2ZkaXNrLmM6Mjk5MQorbXNnaWQgIiIKKyJEb25lXG4iCisiXG4iCittc2dzdHIgIiIKKyJPcHJhdmxqZW5vXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlICVkIGFjdGl2ZSBwcmltYXJ5IHBhcnRpdGlvbnMuIFRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLFxuIgorImJ1dCB0aGUgRE9TIE1CUiB3aWxsIG9ubHkgYm9vdCBhIGRpc2sgd2l0aCAxIGFjdGl2ZSBwYXJ0aXRpb24uXG4iCittc2dzdHIgIiIKKyJJbWF0ZSAlZCBkZWphdm5paCBwcmltYXJuaWggcmF6ZGVsa292LiBaYSBMSUxPIHRvIG5pIHRlvmF2YSxcbiIKKyJhbXBhayBET1MgTUJSIHNlIGJvIG5hbG++aWwgc2FtbyB6IGRpc2tvdiwga2kgaW1ham8gMSBkZWphdmVuIHJhemRlbGVrLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBoYXMgaWQgJXggYW5kIGlzIG5vdCBoaWRkZW5cbiIKK21zZ3N0ciAicmF6ZGVsZWsgJXMgaW1hIGlkICV4IGluIG5pIHNrcml0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICJTbGFiIElkICVseFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDA0Cittc2dpZCAiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UuXG4iCittc2dzdHIgIlRhIGRpc2sgamUgdHJlbnV0bm8gdiByYWJpLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhdGFsIGVycm9yOiBjYW5ub3QgZmluZCAlc1xuIgorbXNnc3RyICJVc29kbmEgbmFwYWthOiAlcyBuaSBtb2dv6GUgbmFqdGlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiAlcyBuaSBibG9rb3ZuYSBuYXByYXZhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzIKK21zZ2lkICJDaGVja2luZyB0aGF0IG5vLW9uZSBpcyB1c2luZyB0aGlzIGRpc2sgcmlnaHQgbm93IC4uLlxuIgorbXNnc3RyICJQcmV2ZXJqYW0sIGRhIG5paOhlIG5lIHVwb3JhYmxqYSB0ZWdhIGRpc2thIC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM0Cittc2dpZCAiIgorIlxuIgorIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlIC0gcmVwYXJ0aXRpb25pbmcgaXMgcHJvYmFibHkgYSBiYWQgaWRlYS5cbiIKKyJVbW91bnQgYWxsIGZpbGUgc3lzdGVtcywgYW5kIHN3YXBvZmYgYWxsIHN3YXAgcGFydGl0aW9ucyBvbiB0aGlzIGRpc2suXG4iCisiVXNlIHRoZSAtLW5vLXJlcmVhZCBmbGFnIHRvIHN1cHByZXNzIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIiIKKyJcbiIKKyJUYSBkaXNrIGplIHRyZW51dG5vIHYgcmFiaSAtIHBvbm92bm8gcmF6ZGVsamV2YW5qZSBqZSB2ZXJqZXRubyBzbGFiYSBpZGVqYS5cbiIKKyJPZGtsb3BpdGUgdnNlIGRhdC4gc2lzdGVtZSBpbiBpemtsanXoaXRlIHZzZSBpem1lbmphbG5lIHJhemRlbGtlIG5hIHRlbSAiCisiZGlza3UuXG4iCisiVXBvcmFiaXRlIC0tbm8tcmVyZWFkIHphc3RhdmljbyBkYSBpemtsanXoaXRlIHRvIHByZXZlcmphbmplLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM4Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgYWxsIGNoZWNrcy5cbiIKK21zZ3N0ciAiVXBvcmFiaXRlIC0tZm9yY2UgaXpiaXJvIGRhIG9iaWRldGUgdnNhIHByZXZlcmphbmphLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDQyCittc2dpZCAiT0tcbiIKK21zZ3N0ciAiVlJFRFVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1MQorIywgYy1mb3JtYXQKK21zZ2lkICJPbGQgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJTdGFybyBzdGFuamU6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0LCBjYW5ub3QgY2hhbmdlIGl0XG4iCittc2dzdHIgIlJhemRlbGVrICVkIG5lIG9ic3RhamEgaW4gbmUgbW9yZSBiaXRpIHNwcmVtZW5qZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJOb3ZvIHN0YW5qZTpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisiVGUgcmF6ZGVsa2kgbWkgbmUgdXN0cmV6YWpvIC0gbmkgc3ByZW1lbWIuXG4iCisiKMhlIHJlcyC+ZWxpdGUgdG8sIHVwb3JhYml0ZSBpemJpcm8gLS1mb3JjZS4pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzEKK21zZ2lkICJJIGRvbid0IGxpa2UgdGhpcyAtIHByb2JhYmx5IHlvdSBzaG91bGQgYW5zd2VyIE5vXG4iCittc2dzdHIgIlRvIG1pIG5lIHVzdHJlemEgLSB2ZXJqZXRubyBiaSBtb3JhbGkgb2Rnb3Zvcml0aSBOZVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICJBbGkgc3RlIHphZG92b2xqbmkgcyB0ZW0/IFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyB5b3Ugd2FudCB0byB3cml0ZSB0aGlzIHRvIGRpc2s/IFt5bnFdICIKK21zZ3N0ciAiQWxpIL5lbGl0ZSB6YXBpc2F0aSB0byBuYSBkaXNrPyBbeW5xXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGVuZCBvZiBpbnB1dFxuIgorbXNnc3RyICIiCisiXG4iCisic2ZkaXNrOiBwcmV6Z29kZW4ga29uZWMgdm5vc2FcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4NQorbXNnaWQgIlF1aXR0aW5nIC0gbm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIktvbuh1amVtIC0gYnJleiBzcHJlbWVtYlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBsZWFzZSBhbnN3ZXIgb25lIG9mIHksbixxXG4iCittc2dzdHIgIlByb3NpbSwgZGEgb2Rnb3Zvcml6byB6IHksbixxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisiVGFiZWxhIHJhemRlbGtvdiBqZSB1c3BluW5vIHphcGlzYW5hXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorIshlIHN0ZSB1c3R2YXJpbGkgYWxpIHNwcmVtZW5pbGkgcmF6ZGVsZWsgdGlwYSBET1MsIG5wci4gL2Rldi9mb283LCBwb3RlbSAiCisidXBvcmFiaXRlXG4iCisiZGQoMSkgemF0bywgZGEgcG9zdGF2aXRlIHBydmloIDUxMiBiYWp0b3YgbmEgMDogZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyAiCisiYnM9NTEyIGNvdW50PTFcbiIKKyIoZ2xlaiBmZGlzayg4KS4pXG4iCisKKyM6IGZzY2svZnNjay5jOjMyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogY291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiJXM6ICVzIG5pIG1vZ2/oZSBvZHByZXRpOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogYmFkIGZvcm1hdCBvbiBsaW5lICVkIG9mICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MzUyCittc2dpZCAiIgorIldBUk5JTkc6IFlvdXIgL2V0Yy9mc3RhYiBkb2VzIG5vdCBjb250YWluIHRoZSBmc2NrIHBhc3Nub1xuIgorIlx0ZmllbGQuICBJIHdpbGwga2x1ZGdlIGFyb3VuZCB0aGluZ3MgZm9yIHlvdSwgYnV0IHlvdVxuIgorIlx0c2hvdWxkIGZpeCB5b3VyIC9ldGMvZnN0YWIgZmlsZSBhcyBzb29uIGFzIHlvdSBjYW4uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NDYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiAlczogbm90IGZvdW5kXG4iCittc2dzdHIgInVtb3VudDogJXM6IG5ldXNwZblubyBpc2thbmplIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlczogc3RhdHVzIGlzICV4LCBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjY0MworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCB3aXRoICVzIChleGl0IHN0YXR1cyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiJXM6IG5hcGFrYSAlZCBwcmkgcmF6uWlyamFuanUhICVwKCVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKKyMsIGZ1enp5Cittc2dpZCAiQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBmaWxlc3lzdGVtIHR5cGVzXG4iCittc2dzdHIgIm1vdW50OiB0aXAgZGF0LiBzaXN0ZW1hIG1vcmEgYml0aSBwb2RhbiIKKworIzogZnNjay9mc2NrLmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc2tpcHBpbmcgYmFkIGxpbmUgaW4gL2V0Yy9mc3RhYjogYmluZCBtb3VudCB3aXRoIG5vbnplcm8gZnNjayBwYXNzICIKKyJudW1iZXJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo4OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyBub25leGlzdGVudCBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6ICVzIG5pIGxwIG5hcHJhdmEuXG4iCisKKyM6IGZzY2svZnNjay5jOjkxOAorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiBjYW5ub3QgY2hlY2sgJXM6IGZzY2suJXMgbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6OTc0CisjLCBmdXp6eQorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIlByaXNpbG5pIHByZWdsZWQgZGF0b3Rl6G5lZ2Egc2lzdGVtYSBuYSAlcy5cbiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1CisjLCBmdXp6eQorbXNnaWQgIiIKKyJVc2FnZTogZnNjayBbLUFNTlBSVFZdIFsgLUMgWyBmZCBdIF0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIFtmaWxlc3lzIC4uLl1cbiIKK21zZ3N0ciAiIgorIlVwb3JhYmE6IG1rZnMgWy1WXSBbLXQgdGlwIGRhdC4gc2lzdGVtYV0gW2l6YmlyZSBkYXQuIHNpc3QuXSBuYXByYXZhICIKKyJbdmVsaWtvc3RdXG4iCisKKyM6IGZzY2svZnNjay5jOjExMjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzOiAlcyBuaSBscCBuYXByYXZhLlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICIlcyBuaSBtb2dv6GUgb2RwcmV0aTogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTEzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiJXMgamUgb2RrbG9wbGplblxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBmaW5kIG1hdGNoaW5nIGZpbGVzeXN0ZW06ICVzXG4iCittc2dzdHIgIk9ka2xhcGxqYW0gcHJlb3N0YWxlIGRhdG90ZehuZSBzaXN0ZW1lLi4uIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBhcmd1bWVudHNcbiIKK21zZ3N0ciAiJXM6IG5lem5hbiBhcmd1bWVudDogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTI3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZnNjayBmcm9tICVzXG4iCittc2dzdHIgIiVzIGl6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiRG9kZWxpdGV2IG1lZHBvbW5pbG5pa2EgemEgaW5vZGUgbmkgbW++bmEiCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJQb3NrdXNpdGUgYGdldG9wdCAtLWhlbHAnIHphIHZl6CBpbmZvcm1hY2lqLlxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mjk1Cittc2dpZCAiZW1wdHkgbG9uZyBvcHRpb24gYWZ0ZXIgLWwgb3IgLS1sb25nIGFyZ3VtZW50IgorbXNnc3RyICJkb2xnYSBwcmF6bmEgaXpiaXJhIHBvIC1sIGFsaSAtLWxvbmcgaXpiaXJhIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzE1Cittc2dpZCAidW5rbm93biBzaGVsbCBhZnRlciAtcyBvciAtLXNoZWxsIGFyZ3VtZW50IgorbXNnc3RyICJuZXpuYW5hIGx1cGluYSBwbyAtcyBhbGkgLXNoZWxsIGl6YmlyYSIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiVXBvcmFiYTogZ2V0b3B0IG9wdHN0cmluZyBwYXJhbWV0cmlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMQorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIFstLV0gb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbaXpiaXJlXSBbLS1dIG9wdHN0cmluZyBwYXJhbWV0cmlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiICAgICAgIGdldG9wdCBbaXpiaXJlXSAtb3wtLWl6YmlyZSBvcHRzdHJpbmcgW2l6YmlyZV0gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAgcGFyYW1ldHJpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjQKK21zZ2lkICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4iCittc2dzdHIgIiIKKyIgIC1hLiAtLWFsdGVybmF0aXZlICAgICAgICAgICAgRG92b2xpIGRvbGdlIGl6YmlyZSwga2kgc2UgemHobmVqbyB6IGVuaW0gLVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI1Cittc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRoaXMgc21hbGwgdXNhZ2UgZ3VpZGVcbiIKK21zZ3N0ciAiICAtaCAgLS1oZWxwICAgICAgICAgICAgICAgICAgIE1hbmq5YSBuYXZvZGlsYVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI2Cittc2dpZCAiICAtbCwgLS1sb25nb3B0aW9ucz1sb25nb3B0cyAgIExvbmcgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLWwgIC0tbG9uZ29wdGlvbnM9ZG9sZ2VpemJpcmUgICBEb2xnZSBpemJpcmUgemEgcHJlcG96bmF2b1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI3Cittc2dpZCAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iCittc2dzdHIgIiAgLW4sIC0tbmFtZT1pbWVwcm9ncmFtYSAgICAgICBJbWUgbmEga2F0ZXJlZ2Egc2UgbmFzbGF2bGpham8gbmFwYWtlXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjgKK21zZ2lkICIgIC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLW8sIC0tb3B0aW9ucz1uaXppemJpciAgICAgICBLcmF0a2UgaXpiaXJlIHphIHByZXBvem5hdm9cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOQorbXNnaWQgIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBEaXNhYmxlIGVycm9yIHJlcG9ydGluZyBieSBnZXRvcHQoMylcbiIKK21zZ3N0ciAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIE9uZW1vZ2/oaSBnZXRvcHQoMykgcG9yb+hhbmplIG5hcGFrXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgQnJleiBub3JtYWxuZWdhIGl6aG9kYVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMxCittc2dpZCAiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVsbCBxdW90aW5nIGNvbnZlbnRpb25zXG4iCittc2dzdHIgIiAgLXMsICAtLXNoZWxsPWx1cGluYSAgICAgICAgICBOYXN0YXZpIGx1cGluc2tvIGtvbnZlbmNpam8gY2l0aXJhbmphXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzIKK21zZ2lkICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgVGVzdCBmb3IgZ2V0b3B0KDEpIHZlcnNpb25cbiIKK21zZ3N0ciAiICAtVC4gLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgemEgcmF6bGnoaWNvIGdldG9wdCgxKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMzCittc2dpZCAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIERvIG5vdCBxdW90ZSB0aGUgb3V0cHV0XG4iCittc2dzdHIgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBOZSBjaXRpcmFqIGl6aG9kYVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzM0Cittc2dpZCAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCittc2dzdHIgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBJenBpuWkgaW5mb3JtYWNpamUgbyByYXpsaehpY2lcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjM4OCBnZXRvcHQvZ2V0b3B0LmM6NDQ3Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgIm1hbmprYSBpemJpcmEgbml6aXpiaXIgIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJnZXRvcHQgKGVuaGFuY2VkKSAxLjEuNFxuIgorbXNnc3RyICJnZXRwb3QgKHJherlpcmplbikgMS4xLjNcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICJub3RyYW5qYSBuYXBha2EsIHNwb3Jv6Gl0ZSBhdnRvcmp1LiIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAiemFnbmFubyBpeiBNSUxPXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJSdWZmaWFuIEJDRCBjbG9ja1xuIgorbXNnc3RyICJVcmEgUnVmZmlhbiBCQ0RcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImNsb2NrcG9ydCBhZGp1c3RlZCB0byAweCV4XG4iCittc2dzdHIgInZyYXRhIHVyZSBuYXJhdm5hbmEgbmEgMHgleFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICJ6YWJhdm5hIElHUkHIQSFcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhdG9taWMgJXMgZmFpbGVkIGZvciAxMDAwIGl0ZXJhdGlvbnMhIgorbXNnc3RyICIlczogYXRvbXNraSAlcyBuZXVzcGW5ZW4gdiAxMDAwIHBvbm92aXR2YWghIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiByZWFkIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAvZGV2L3BvcnQ6ICVzIgorbXNnc3RyICJPZHBydGplIHZyYXQgL2Rldi9wb3J0OiAlcyBuaSB1c3BlbG8iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAiRG92b2xqZW5qYSBtaSBuaSB1c3BlbG8gcHJpZG9iaXRpLCBrZXIgbmlzZW0gcG9za3VzaWwuXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyB1bmFibGUgdG8gZ2V0IEkvTyBwb3J0IGFjY2VzczogIHRoZSBpb3BsKDMpIGNhbGwgZmFpbGVkLlxuIgorbXNnc3RyICIlcyBuZSBtb3JlIGRvYml0aSBkb3N0b3BhIGRvIFYvSSB2cmF0OiBrbGljIGlvcGwoMykgbmV1c3BluWVuLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICJWZXJqZXRubyBwb3RyZWJ1amV0ZSBwcmF2aWNlIHNrcmJuaWthIHNpc3RlbWEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluICVzIHRpbWUuXG4iCittc2dzdHIgIlByaXZ6ZW1hbW8sIGRhIHN0cm9qbmEgdXJhIHRl6GUgdiAlcyDoYXN1LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAia3JhamV2bmVtIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIlczogT3Bvem9yaWxvOiBuZXByZXBvem5hbmEgdHJldGphIHZyc3RpY2EgdiBkYXRvdGVraSBhZGp0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIihQcmnoYWtvdmFubzogYFVUQycgYWxpIGBMT0NBTGAgYWxpIG5p6C4pXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGRyaWZ0IGFkanVzdG1lbnQgZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIlphZG5qYSBwcmlsYWdvZGl0ZXYgZHJzZW5qdSBvcHJhdmxqZW5hICVsZCBzZWt1bmQgcG8gbGV0dSAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJaYWRuamUgcHJldmVyamFuamUgbWVyIGplIGJpbG8gb3ByYXZsamVubyAlbGQgc2VrdW5kIHBvIGxldHUgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICJTdHJvam5hIHVyYSB0ZehlIHYgJXMg6GFzdVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJ1bmtub3duIgorbXNnc3RyICJuZXpuYW5lbSIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgZm9yIGNsb2NrIHRpY2suLi5cbiIKK21zZ3N0ciAiyGFrYW1vIG5hIHRpa3RhayB1cmUuLi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiLi4uZG9iaWxpIHRpa3Rhay5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIk5ldmVsamF2bmUgdnJlZG5vc3RpIHYgc3Ryb2puaSB1cmk6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiyGFzIHN0cm9qbmUgdXJlOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNla3VuZCBwbyBsZXR1IDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIshhcywgcHJlYnJhbiBpeiBzdHJvam5lIHVyZTogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyBIYXJkd2FyZSBDbG9jayB0byAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiU3Ryb2pubyB1cm8gbmFzdGF2bGphbW8gbmEgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2VrdW5kIHBvIGxldHUgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIlVyZSBuaSBzcHJlbWVuamVuYSAtIHpnb2xqIHByZWl6a3VzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1MzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaW1lIGVsYXBzZWQgc2luY2UgcmVmZXJlbmNlIHRpbWUgaGFzIGJlZW4gJS42ZiBzZWNvbmRzLlxuIgorIkRlbGF5aW5nIGZ1cnRoZXIgdG8gcmVhY2ggdGhlIG5ldyB0aW1lLlxuIgorbXNnc3RyICIiCisiyGFzLCBraSBqZSBwcmV0ZWtlbCBvZCByZWZlcmVu6G5lZ2EsIGplICAlLjZmIHNla3VuZC5cbiIKKyJQb3Zl6HVqZW1vIHphb3N0YW5laywgZGEgYmkgZG9zZWdsaSBuYXNsZWRuam8gY2VsbyBzZWt1bmRvLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIlJlZ2lzdHJpIHN0cm9qbmUgdXJlIHZzZWJ1amVqbyB2cmVkbm9zdGkga2kgc28gYm9kaXNpIG5ldmVsamF2bmVcbiIKKyIobnByLiA1MC4gZGFuIHYgbWVzZWN1KSwgYm9kaXNpIGl6dmVuIG5huWVnYSBkb3NlZ2EgKG5wci4gbGV0byAyMDk1KS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiJXMgICUuNmYgc2VrdW5kXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAiSXpiaXJhIC0tZGF0ZSBuaSBiaWxhIHBvZGFuYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICJJemJpcmEgLS1kYXRlIGplIHByZWRvbGdhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiBpcyBub3QgYSB2YWxpZCBkYXRlLlxuIgorIkluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHF1b3RhdGlvbiBtYXJrcy5cbiIKK21zZ3N0ciAiIgorIlZyZWRub3N0LCBwb2RhbmEgcHJpIGl6YmlyaSAtLWRhdGUgbmkgdmVsamF2ZW4gZGF0dW0uXG4iCisiTWVkIGRydWdpbSB2c2VidWplIG5hcmVrb3ZhamUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJc3N1aW5nIGRhdGUgY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiSXp2YWphbW8gdWtheiBkYXRlOiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDAKK21zZ2lkICJVbmFibGUgdG8gcnVuICdkYXRlJyBwcm9ncmFtIGluIC9iaW4vc2ggc2hlbGwuIHBvcGVuKCkgZmFpbGVkIgorbXNnc3RyICJOZSBtb3JlbW8gcG9nbmF0aSB1a2F6YSAnZGF0ZScgdiBsdXBpbmkgL2Jpbi9zaCwga2xpYyBwb3BlbigpIG5pIHVzcGVsIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcG9uc2UgZnJvbSBkYXRlIGNvbW1hbmQgPSAlc1xuIgorbXNnc3RyICJvZHppdiB1a2F6YSBkYXRlID0gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdHMuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAgJXNcbiIKK21zZ3N0ciAiIgorIlVrYXogZGF0ZSwga2kgZ2EgamUgcG9nbmFsICVzLCBqZSB2cm5pbCBuZXByaehha292YW4gcmV6dWx0YXQuXG4iCisiVWtheiBqZSBiaWw6XG4iCisiICAlc1xuIgorIk9keml2IHBhOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIlVrYXogZGF0ZSwga2kgZ2EgamUgcG9nbmFsICVzIGplIHZybmlsIG5la2FqIGRydWdlZ2Ega290ILl0ZXZpbG8sIGtqZXIgamUgIgorImJpbCBwcmnoYWtvdmFuIHphbWVuamFuIOhhcy5cbiIKKyJVa2F6IGplIGJpbDpcbiIKKyIgJXNcbiIKKyJPZHppdiBwYTpcbiIKKyIgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgImRhdGUgc3RyaW5nICVzIGVxdWF0ZXMgdG8gJWxkIHNlY29uZHMgc2luY2UgMTk2OS5cbiIKK21zZ3N0ciAibml6IGRhdHVtICVzIGplIGVuYWsgJWxkIHNla3VuZCBvZCBsZXRhIDE5NjkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorIlN0cm9qbmEgdXJhIG5lIHZzZWJ1amUgdmVsamF2bmVnYSDoYXNhLCB6YXRvIG5hc3RhdmxqYW5qZSBzaXN0ZW1za2VnYSDoYXNhICIKKyJpeiBuamUgbmkgbW9nb+hlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjcgaHdjbG9jay9od2Nsb2NrLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgc2V0dGltZW9mZGF5OlxuIgorbXNnc3RyICJLbGnoZW0gc2V0dGltZW9mZGF5OlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIlx0dHYudHZfc2VjID0gJWxkLCB0Yy50Y191c2VjID0gJWxkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICJTaXN0ZW1za2EgdXJhIG5lIGJvIG5hc3RhdmxqZW5hLCBrZXIgc2UgaXp2YWphIHRlc3RpcmFuamUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0MiBod2Nsb2NrL2h3Y2xvY2suYzo4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSBzdXBlcnVzZXIgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiU2FtbyBzaXN0ZW1za2kgc2tyYm5payBsYWhrbyBuYXN0YXZsamEgc2lzdGVtc2tvIHVyby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQ1IGh3Y2xvY2svaHdjbG9jay5jOjgyMworbXNnaWQgInNldHRpbWVvZmRheSgpIGZhaWxlZCIKK21zZ3N0ciAia2xpYyBzZXR0aW1lb2ZkYXkoKSBuaSB1c3BlbCIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkN1cnJlbnQgc3lzdGVtIHRpbWU6ICVsZCA9ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0VVRDOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSB0aGUgSGFyZHdhcmUgQ2xvY2sgcHJldmlvdXNseSBjb250YWluZWQgIgorImdhcmJhZ2UuXG4iCittc2dzdHIgIkZha3RvciBkcnNlbmphIG5lIGJvIG5hc3RhdmxqZW4sIGtlciBqZSBzdHJvam5hIHVyYSB2c2Vib3ZhbGEgc21ldGkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorIkZha3RvciBkcnNlbmphIG5lIGJvIG5hc3RhdmxqZW4sIGtlciBqYSB6YWRuamkga2FsaWJyYWNpanNraSDoYXMgMCxcbiIKKyJ6Z29kb3ZpbmEgamUgemF0byBwb7lrb2RvdmFuYS4gUG90cmVibmEgamUgcG9ub3ZuYSBrYWxpYnJhY2lqYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGl0IGhhcyBiZWVuIGxlc3MgdGhhbiBhIGRheSBzaW5jZSB0aGUgIgorImxhc3QgY2FsaWJyYXRpb24uXG4iCittc2dzdHIgIiIKKyJGYWt0b3IgZHJzZW5qYSBuZSBibyBuYXN0YXZsamVuLCB6YXRvIGtlciBqZSBtaW5pbCBtYW5qIGtvdCBlbiBkYW4gb2QgemFkbmplICIKKyJrYWxpYnJhY2lqZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yICIKKyJvZiAlZiBzZWNvbmRzL2RheS5cbiIKKyJBZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJ5ICVmIHNlY29uZHMvZGF5XG4iCittc2dzdHIgIiIKKyJVcmEgamUgZHJzZWxhICUuMWYgc2VrdW5kIHYgemFkbmppaCAlZCBzZWt1bmRhaCwgbmF2a2xqdWIgdGVtdSBkYSBqZSBmYWt0b3IgIgorImRyc2VuamEgJWYgc2VrdW5kL2Rhbi5cbiIKKyJQcmlsYWdhamFtIGZha3RvciBkcnNlbmphIHphICVmIHNla3VuZC9kYW5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiyGFzIG9kIHphZG5qZSBwcmlsYWdvZGl0dmUgamUgJWQgc2VrdW5kXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkIHRvIGluc2VydCAlZCBzZWNvbmRzIGFuZCByZWZlciB0aW1lIGJhY2sgJS42ZiBzZWNvbmRzIGFnb1xuIgorbXNnc3RyICJQb3RyZWJubyBqZSB2c3Rhdml0aSAlZCBzZWt1bmQgaW4gcHJldml0aSDoYXMgemEgJS42ZiBzZWt1bmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgImFkanRpbWUgbmUgYm8gcG9zb2RvYmxqZW4gemFyYWRpIHRlc3RuZWdhIG5h6GluYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIk5hICVzIGJpIGJpbG8gbmFwaXNhbm8gc2xlZGXoZTpcbiIKKyIlcyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ291bGQgbm90IG9wZW4gZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgaW4gaXQgKCVzKSBmb3IgIgorIndyaXRpbmciCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwNiBod2Nsb2NrL2h3Y2xvY2suYzoxMDExCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgKCVzKSBpbiBpdCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRyaWZ0IGFkanVzdG1lbnQgcGFyYW1ldGVycyBub3QgdXBkYXRlZC5cbiIKK21zZ3N0ciAiRHJzbmUgcHJpbGFnb2RpdHZlIHBhcmFtZXRyb3YgbmUgYm9kbyBwb3NvZG9ibGplbmUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IGFkanVzdCBpdC5cbiIKK21zZ3N0ciAiIgorIlN0cm9qbmEgdXJhIG5lIHZzZWJ1amUgdmVsamF2bmVnYSDoYXNhLCB6YXRvIHNlIGplIG5lIG1vcmUgcHJpbGFnb2RpdGkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAiIgorIkZha3RvciBkcnNlbmphIG5lIGJvIG5hc3RhdmxqZW4sIGtlciBqYSB6YWRuamkga2FsaWJyYWNpanNraSDoYXMgMCxcbiIKKyJ6Z29kb3ZpbmEgamUgemF0byBwb7lrb2RvdmFuYS4gUG90cmVibmEgamUgcG9ub3ZuYSBrYWxpYnJhY2lqYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA4OQorIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkZWQgYWRqdXN0bWVudCBpcyBsZXNzIHRoYW4gb25lIHNlY29uZCwgc28gbm90IHNldHRpbmcgY2xvY2suXG4iCittc2dzdHIgIiIKKyJQb3RyZWJuYSBwcmlsYWdvZGl0ZXYgamUgbWFuarlhIG9kIGVuZSBzZWt1bmQsIHphdG8gdXJhIG5lIGJvIG5hc3RhdmxqZW5hLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nICVzLlxuIgorbXNnc3RyICJVcG9yYWJsamFtICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIklza2FuamUgdXBvcmFibmVnYSB1cmluZWdhIHZtZXNuaWthIG5pIGJpbG8gdXNwZbluby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTIyMSBod2Nsb2NrL2h3Y2xvY2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICJTaXN0ZW1za2UgdXJlIHNlIG5lIGRhIG5hc3Rhdml0aS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBrZWVwcyBhbiBlcG9jaCB2YWx1ZSBmb3IgdGhlIEhhcmR3YXJlIENsb2NrIG9ubHkgb24gYW4gQWxwaGEgIgorIm1hY2hpbmUuXG4iCisiVGhpcyBjb3B5IG9mIGh3Y2xvY2sgd2FzIGJ1aWx0IGZvciBhIG1hY2hpbmUgb3RoZXIgdGhhbiBBbHBoYVxuIgorIihhbmQgdGh1cyBpcyBwcmVzdW1hYmx5IG5vdCBydW5uaW5nIG9uIGFuIEFscGhhIG5vdykuICBObyBhY3Rpb24gdGFrZW4uXG4iCittc2dzdHIgIiIKKyJKZWRybyBocmFuaSByYXpkb2JubyB2cmVkbm9zdCB6YSBTdHJvam5vIHVybyBzYW1vIG5hIEFscGhhIHN0cm9qdS5cbiIKKyJUYSBrb3BpamEgc3Ryb2puZSB1cmUgamUgYmlsYSB6Z3JhamVuYSB6YSBkcnVnZWdhXG4iCisiKGluIHpkYWogdmVyamV0bm8gbmUgdGXoZSBuYSBBbHBoYSBzdHJvanUpLiBCcmV6IHVrcmVwb3YuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGdldCB0aGUgZXBvY2ggdmFsdWUgZnJvbSB0aGUga2VybmVsLlxuIgorbXNnc3RyICJWcmVkbm9zdGkgZXBvY2ggbmkgbW9nb+hlIGRvYml0aSBvZCBqZWRyYS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJLZXJuZWwgaXMgYXNzdW1pbmcgYW4gZXBvY2ggdmFsdWUgb2YgJWx1XG4iCittc2dzdHIgIkplZHJvIHByZWRwb3N0YXZsamEsIGRhIGplIHZyZWRub3N0IGVwb2NoICVsdVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBzZXQgdGhlIGVwb2NoIHZhbHVlLCB5b3UgbXVzdCB1c2UgdGhlICdlcG9jaCcgb3B0aW9uIHRvIHRlbGwgdG8gd2hhdCAiCisidmFsdWUgdG8gc2V0IGl0LlxuIgorbXNnc3RyICLIZSBob+hldGUgbmFzdGF2aXRpIHZyZWRub3N0IGVwb2NoLCBtb3JhdGUgdXBvcmFiaXRpIGl6YmlybyAnZXBvY2gnXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJFcG9jaCBuZSBibyBuYXN0YXZsamVuIG5hICVkIC0gc2FtbyBwcmVpemt1uWFtLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIlZyZWRub3N0aSBlcG9jaCBuaSBiaWxvIG1vvm5vIG5hc3Rhdml0aS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI5MCBtaXNjLXV0aWxzL2NhbC5jOjM0NyBtaXNjLXV0aWxzL2tpbGwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBpeiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiaHdjbG9jayAtIHF1ZXJ5IGFuZCBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIChSVEMpXG4iCisiXG4iCisiVXNhZ2U6IGh3Y2xvY2sgW2Z1bmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGdW5jdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHNob3cgdGhpcyBoZWxwXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgdGhlIHJ0YyB0byB0aGUgdGltZSBnaXZlbiB3aXRoIC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBhZGp1c3QgdGhlIHJ0YyB0byBhY2NvdW50IGZvciBzeXN0ZW1hdGljIGRyaWZ0IHNpbmNlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgcHJpbnQgb3V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICBzZXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlIHRvIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHByaW50IG91dCB0aGUgdmVyc2lvbiBvZiBod2Nsb2NrIHRvIHN0ZG91dFxuIgorIlxuIgorIk9wdGlvbnM6IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICBzcGVjaWFsIC9kZXYvLi4uIGZpbGUgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdFxuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICBhY2Nlc3MgdGhlIElTQSBidXMgZGlyZWN0bHkgaW5zdGVhZCBvZiAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorIiAgICAgICAtLWRhdGUgICAgICAgICBzcGVjaWZpZXMgdGhlIHRpbWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLWVwb2NoPXllYXIgICBzcGVjaWZpZXMgdGhlIHllYXIgd2hpY2ggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZG8gbm90IGFjY2VzcyAvZXRjL2FkanRpbWUuIFJlcXVpcmVzIHRoZSB1c2Ugb2ZcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICBkbyBldmVyeXRoaW5nIGV4Y2VwdCBhY3R1YWxseSB1cGRhdGluZyB0aGUgaGFyZHdhcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBkZWJ1ZyBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJod2Nsb2NrIC0gcG92cHJhuWFqIGluIG5hc3Rhdmkgc3Ryb2pubyB1cm8gKFJUQylcbiIKKyJcbiIKKyJVcG9yYWJhOiBod2Nsb2NrIFtmdW5rY2lqYV0gW2l6YmlyZS4uLl1cbiIKKyJcbiIKKyJGdW5rY2lqZTpcbiIKKyIgIC0taGVscCAgICAgICAgcHJpa2G+aSB0byBwb21v6FxuIgorIiAgLS1zaG93ICAgICAgICBwcmViZXJpIHN0cm9qbm8gdXJvIGluIGl6cGm5aSByZXp1bHRhdFxuIgorIiAgLS1zZXQgICAgICAgICBuYXN0YXZpIHJ0YyBuYSDoYXMgcG9kYW4geiAtLWRhdGVcbiIKKyIgIC0taGN0b3N5cyAgICAgbmFzdGF2aSBzaXN0ZW1za2kg6GFzIG5hIHN0cm9qbm8gdXJvXG4iCisiICAtLXN5c3RvaGMgICAgIG5hc3Rhdmkgc3Ryb2pubyB1cm8gbmEgc2lzdGVtc2tpIOhhc1xuIgorIiAgLS1hZGp1c3QgICAgICBwb25hc3RhdmkgcnRjLCB0YWtvIGRhIHNlIHVwb7l0ZXZhIHNpc3RlbXNrbyBkcnNlbmplXG4iCisiICAgICAgICAgICAgICAgIG9ka2FyIGplIGJpbCB1cmEgbmF6YWRuamUgbmFzdGF2bGplbmFcbiIKKyIgIC0tZ2V0ZXBvY2ggICAgaXpwablpIHJhemRvYmplIGplZHJvdmUgc3Ryb2puZSB1cmVcbiIKKyIgIC0tc2V0ZXBvY2ggICAgbmFzdGF2aSByYXpkb2JqZSBqZWRyb3ZlIHN0cm9qbmUgdXJlIG5hIHZyZWRub3N0XG4iCisiICAgICAgICAgICAgICAgIHBvZGFubyB6IC0tZXBvY2hcbiIKKyIgIC0tdmVyc2lvbiAgICAgaXpwablpIHJhemxp6GljbyBod2Nsb2NrIG5hIHN0YW5kYXJkbmkgaXpob2RcbiIKKyJcbiIKKyJJemJpcmU6IFxuIgorIiAgLS11dGMgICAgICAgICBzdHJvam5hIHVyYSBqZSBzaHJhbmplbmEgdiBrb29yZGluaXJhbmVtIHVuaXZlcnphbG5lbSDoYXN1XG4iCisiICAtLWxvY2FsdGltZSAgIHN0cm9qbmEgdXJhIGplIHNocmFuamVuYSB2IGxva2FsbmVtIOhhc3VcbiIKKyIgIC0tZGlyZWN0aXNhICAgZG8gSVNBIHZvZGlsYSBkb3N0b3BhaiBuZXBvc3JlZG5vIG5hbWVzdG8gJXNcbiIKKyIgIC0tYmFkeWVhciAgICAgcHJlenJpIHJ0Y2pldm8gbGV0bywgemF0byBrZXIgamUgYmlvcyBwb7lrb2RvdmFuXG4iCisiICAtLWRhdGUgICAgICAgIHBvZGEg6GFzLCBuYSBrYXRlcmVnYSBqZSBuYXN0YXZsamVuYSBzdHJvam5hIHVyYVxuIgorIiAgLS1lcG9jaD1sZXRvICBwb2RhaiBsZXRvLCBraSBqZSB6YehldG5hIHZyZWRub3N0IGVwb2hlIHN0cm9qbmUgdXJlXG4iCisiICAtLW5vYWRqZmlsZSAgIG5lIGRvc3RvcGFqIGRvIC9ldGMvYWRqdGltZS4gWmFodGV2YSB1cG9yYWJvIC0tdXRjIGFsaVxuIgorIiAgICAgICAgICAgICAgICAtLWxvY2FsdGltZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisiICAtLWplbnNlbiwgLS1hcmMsIC0tc3JtLCAtLWZ1bmt5LXRveVxuIgorIiAgICAgICAgICAgICAgICBwb3ZlaiBod2Nsb2NrdSB0aXAgYWxwaGEsIGtpIGdhIGltYXAgKGdsZWogaHdjbG9jayg4KSlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTQzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICJTaXN0ZW1za2UgdXJlIHNlIG5lIGRhIG5hc3Rhdml0aS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMgbmUgc3ByZWplbWEgYXJndW1lbnRvdiBicmV6IGl6YmlyLiBQb2RhbGkgc3RlOiAlZC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgc3BlY2lmaWVkIG11bHRpcGxlIGZ1bmN0aW9ucy5cbiIKKyJZb3UgY2FuIG9ubHkgcGVyZm9ybSBvbmUgZnVuY3Rpb24gYXQgYSB0aW1lLlxuIgorbXNnc3RyICIiCisiUG9kYWxpIHN0ZSB2ZeggZnVua2Npai5cbiIKKyJJenZlZGV0ZSBsYWhrbyBzYW1vIGVubyBmdW5rY2lqbyBuYWVua3JhdC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiAtLXV0YyBpbiAtLWxvY2FsdGltZSBpemJpcmkgc2UgbWVkc2Vib2pubyBpemtsanXodWpldGEuIFBvZGFsaSBzdGUgb2JlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IC0tYWRqdXN0IGluIC0tbm9hZGpmaWxlIGl6YmlyaSBzZSBtZWRzZWJvam5vIGl6a2xqdeh1amV0YS4gUG9kYWxpIHN0ZSAiCisib2JlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogLS1hZGp1c3QgaW4gLS1ub2FkamZpbGUgaXpiaXJpIHNlIG1lZHNlYm9qbm8gaXprbGp16HVqZXRhLiBQb2RhbGkgc3RlICIKKyJvYmUuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdpdGggLS1ub2FkamZpbGUsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCittc2dzdHIgIiVzOiAtLW5vYWRqZmlsZSBtb3JhdGUgcG9kYXRpIHNrdXBhaiB6IC0tdXRjIGFsaSAtLWxvY2FsdGltZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBzZXQtdG8gdGltZS4gIENhbm5vdCBzZXQgY2xvY2suXG4iCittc2dzdHIgIk5pIHVwb3JhYm5lZ2EgbmFzdGF2aXR2ZW5lZ2Eg6GFzYS4gVXJhIG5lIGJvIG5hc3RhdmxqZW5hLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2suXG4iCittc2dzdHIgIq5hbCBsYWhrbyBzYW1vIHNpc3RlbXNraSBza3JibmlrIHNwcmVtaW5qYSBzdHJvam5vIHVyby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyNAorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIFN5c3RlbSBDbG9jay5cbiIKK21zZ3N0ciAirmFsIGxhaGtvIHNhbW8gc2lzdGVtc2tpIHNrcmJuaWsgc3ByZW1pbmogc2lzdGVtc2tvIHVyby5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUgIgorImtlcm5lbC5cbiIKK21zZ3N0ciAiIgorIq5hbCBsYWhrbyBzYW1vIHNpc3RlbXNraSBza3JibmlrIHNwcmVtaW5qYSByYXpkb2JqZSBzdHJvam5lIHVyZSB2IGplZHJ1LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBhY2Nlc3MgdGhlIEhhcmR3YXJlIENsb2NrIHZpYSBhbnkga25vd24gbWV0aG9kLlxuIgorbXNnc3RyICJEbyBzdHJvam5lIHVyZSBuaSBtb2dv6GUgZG9zdG9wYXRpIHBvIHpuYW5paCBtZXRvZGFoLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2UgdGhlIC0tZGVidWcgb3B0aW9uIHRvIHNlZSB0aGUgZGV0YWlscyBvZiBvdXIgc2VhcmNoIGZvciBhbiBhY2Nlc3MgIgorIm1ldGhvZC5cbiIKK21zZ3N0ciAiVXBvcmFiaXRlIC0tZGVidWcgaXpiaXJvLCB6YSBwb2Ryb2Jub3N0aSBvIGlza2FuanUgbWV0b2RlIGRvc3RvcGEuXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSBLREdIV0NMSyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiyGFrYW0gdiB6YW5raSBuYSBzcHJlbWVtYm8g6GFzYSBpeiBLREdIV0NMS1xuIgorCisjOiBod2Nsb2NrL2tkLmM6NTcKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIgorbXNnc3RyICJLREdIV0NMSyBpb2N0bCB6YSBicmFuamUg6GFzYSBuaSB1c3BlbG8iCisKKyM6IGh3Y2xvY2sva2QuYzo3NQorbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQgaW4gbG9vcCIKK21zZ3N0ciAiS0RHSFdDTEsgaW9jdGwgemEgYnJhbmplIOhhc2EgbmkgdXNwZWxvIHYgemFua2kiCisKKyM6IGh3Y2xvY2sva2QuYzo4MiBod2Nsb2NrL3J0Yy5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iCittc2dzdHIgIlNwcmVtZW1iYSDoYXNhIGplIHRyYWphbGEgcHJlZG9sZ28uXG4iCisKKyM6IGh3Y2xvY2sva2QuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSBmYWlsZWQgdG8gcmVhZCB0aW1lIGZyb20gJXMiCittc2dzdHIgImtsaWMgaW9jdGwoKSBuaSB1c3BlbCBwcmVicmF0aSDoYXNhIGl6ICVzIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICJpb2N0bCBLRFNIV0NMSyBuaSB1c3BlbCIKKworIzogaHdjbG9jay9rZC5jOjE3NgorbXNnaWQgIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIKK21zZ3N0ciAiL2Rldi90dHkxIGFsaSAvZGV2L3ZjLzEgbmkgbW9nb+hlIG9kcHJldGkiCisKKyM6IGh3Y2xvY2sva2QuYzoxODAKK21zZ2lkICJLREdIV0NMSyBpb2N0bCBmYWlsZWQiCittc2dzdHIgIktER0hXQ0xLIGlvY3RsIG5pIHVzcGVsIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE0NyBod2Nsb2NrL3J0Yy5jOjI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuKCkgb2YgJXMgZmFpbGVkIgorbXNnc3RyICJrbGljIG9wZW4oKSB6YSAlcyBuaSB1c3BlbCIKKworIzogaHdjbG9jay9ydGMuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAia2xpYyBpb2N0bCgpIGsgJXMgemEgYnJhbmplIOhhc2EgbmkgdXNwZWxcbiIKKworIzogaHdjbG9jay9ydGMuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gJXMgdG8gY2hhbmdlXG4iCittc2dzdHIgIshha2FtIHYgemFua2kgbmEgc3ByZW1lbWJvIOhhc2EgaXogJXNcbiIKKworIzogaHdjbG9jay9ydGMuYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZG9lcyBub3QgaGF2ZSBpbnRlcnJ1cHQgZnVuY3Rpb25zLiAiCittc2dzdHIgIiVzIG5pbWEgcHJla2luaXR2ZW5paCBmdW5rY2lqLiIKKworIzogaHdjbG9jay9ydGMuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJrbGljIHJlYWQoKSBrICVzIHphIOhha2FuamUgbmEgcHJlbWlrIHVyZSBuaSB1c3BlbCIKKworIzogaHdjbG9jay9ydGMuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgImtsaWMgc2VsZWN0KCkgayAlcyB6YSDoYWthbmplIG5hIHByZW1payB1cmUgbmkgdXNwZWwiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgdGltZWQgb3V0XG4iCittc2dzdHIgImtsaWMgc2VsZWN0KCkgayAlcyB6YSDoYWthbmplIG5hIHByZW1payB1cmUgamUgdHJhamFsIHByZWRvbGdvXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIgorbXNnc3RyICJrbGljIGlvY3RsKCkgayAlcyB6YSBpemtsb3AgcG9zb2RhYmxqYW5qYSBwcmVraW5pdGV2IG5pIHVzcGVsIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAiIgorImtsaWMgaW9jdGwoKSBrICVzIHphIHZrbG9wIHBvc29kYWJsamFuamEgcHJla2luaXRldiBuZXByaehha292YW5vIG5pIHVzcGVsIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImtsaWMgaW9jdGwoKSBrICVzIHphIG5hc3Rhdml0ZXYg6GFzYSBuaSB1c3BlbC5cbiIKKworIzogaHdjbG9jay9ydGMuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoJXMpIHdhcyBzdWNjZXNzZnVsLlxuIgorbXNnc3RyICJrbGljIGlvY3RsKCVzKSBqZSBiaWwgdXNwZbllbi5cbiIKKworIzogaHdjbG9jay9ydGMuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3BlbiBvZiAlcyBmYWlsZWQiCittc2dzdHIgIk9kcGlyYW5qZSAlcyBuaSB1c3BlbG8iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDEwIGh3Y2xvY2svcnRjLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBtYW5pcHVsYXRlIHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLCB3ZSBtdXN0IGFjY2VzcyB0aGUgTGludXggJ3J0YycgIgorImRldmljZSBkcml2ZXIgdmlhIHRoZSBkZXZpY2Ugc3BlY2lhbCBmaWxlICVzLiAgVGhpcyBmaWxlIGRvZXMgbm90IGV4aXN0IG9uICIKKyJ0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiIgorIlphIHNwcmVtaW5qYW5qZSB2cmVkbm9zdGkgcmF6ZG9iamEgdiBqZWRydSBqZSBwb3RyZWJubyBpbWV0aSBkb3N0b3AgZG8gIgorIkxpbnV4b3ZlZ2EgJ3J0YycgZ29uaWxuaWthIG5hcHJhdmUgc2tvemkgcG9zZWJubyBkYXRvdGVrbyBuYXByYXZlICVzLiBOYSB0ZW0gIgorInNpc3RlbXUgdGEgZGF0b3Rla2EgbmUgb2JzdGFqYS5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0MTUgaHdjbG9jay9ydGMuYzo0NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIk5pIG1vZ2/oZSBvZHByZXRpICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJrbGljIGlvY3RsKFJUQ19FUE9DSF9SRUFEKSBrICVzIG5pIHVzcGVsIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAicHJlYnJhbmEgamUgYmlsYSB2cmVkbm9zdCByYXpkb2JqYSAlbGQgaXogJXMgeiBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVwb2NoIHZhbHVlIG1heSBub3QgYmUgbGVzcyB0aGFuIDE5MDAuICBZb3UgcmVxdWVzdGVkICVsZFxuIgorbXNnc3RyICIiCisiVnJlZG5vc3QgcmF6ZG9iamEgbW9yYSBiaXRpIHZl6GphIGFsaSBlbmFrYSAxOTAwLiBaYWh0ZXZhbmEgamUgYmlsYSAlbGRcbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0dGluZyBlcG9jaCB0byAlbGQgd2l0aCBSVENfRVBPQ0hfU0VUIGlvY3RsIHRvICVzLlxuIgorbXNnc3RyICJuYXN0YXZsamFtIHZyZWRub3N0IHJhemRvYmphIG5hICVsZCB6IFJUQ19FUE9DSF9TRVQgaW9jdGwgbmEgJXMuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGRldmljZSBkcml2ZXIgZm9yICVzIGRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCittc2dzdHIgIkdvbmlsbmlrIGplZHJhIHphICVzIG5pbWEgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICJpb2N0bChSVENfRVBPQ0hfU0VUKSBrICVzIG5pIHVzcGVsIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGV4ZWMgJXM6ICVtIgorbXNnc3RyICIlczogbmUgbW9yZSBpenZlc3RpICVzOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCittc2dzdHIgInphIHph6GV0bmkgbml6IG5pIG1vZ2/oZSBkb2RlbGl0aSBwb21uaWxuaWthIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIgorbXNnc3RyICJuZXByYXZpbG5hIHZyZWRub3N0IHphIHByZWtvcmHoaXRldiDoYXNhOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgIm5lcHJhdmlsbmEgaGl0cm9zdDogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNworbXNnaWQgInRvbyBtYW55IGFsdGVybmF0ZSBzcGVlZHMiCittc2dzdHIgInByZXZl6CByYXpsaehuaWggaGl0cm9zdGkiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIi9kZXY6IGNoZGlyKCkgbmkgdXNwZWw6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogbm90IGEgY2hhcmFjdGVyIGRldmljZSIKK21zZ3N0ciAiL2Rldi8lczogbmkgem5ha292bmEgbmFwcmF2YSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IGNhbm5vdCBvcGVuIGFzIHN0YW5kYXJkIGlucHV0OiAlbSIKK21zZ3N0ciAiL2Rldi8lczogbmkgbW9nb+hlIG9kcHJldGkga290IHN0YW5kYXJkbmkgdmhvZDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiCittc2dzdHIgIiVzOiBuaSBvZHBydG8gemEgYnJhbmplL3Bpc2FuamUiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZHVwIHByb2JsZW06ICVtIgorbXNnc3RyICIlczogbmFwYWthIHByaSBwcmV2YXJpOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXIiCittc2dzdHIgInVwb3JhYm5payIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXJzIgorbXNnc3RyICJ1cG9yYWJuaWtpIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiJXM6IGJlcmk6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnB1dCBvdmVycnVuIgorbXNnc3RyICIlczogdmhvZCBqZSBwcmVwbGF2bGplbiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTIwNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiVXBvcmFiYTogJXMgWy1oaUxtd10gWy1sIHZwaXNuaV9wcm9ncmFtXSBbLXQgb2Rtb3JdIFstSSB6YehldG5pbml6XSBbLUggIgorInZwaXNubyBpbWUgZ29zdGl0ZWxqYV0gaGl0cm9zdF9wcmVub3NhX3ZfYmF1ZGloLC4uLiB2cnN0aWNhIFt0aXB0ZXJtaW5hbGFdXG4iCisiYWxpXHRbLWhpTG13XSBbLWwgdnBpc25pX3Byb2dyYW1dIFstdCBvZG1vcl0gWy1JIHph6GV0bmluaXpdIFstSCB2cGlzbm8gaW1lICIKKyJnb3N0aXRlbGphXSB2b2QgaGl0cm9zdF9wcmVub3NhX3ZfYmF1ZGloLC4uLiBbdGlwdGVybWluYWxhXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkxIGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBtZW1vcnkgbG93LCBsb2dpbiBtYXkgZmFpbFxuIgorbXNnc3RyICJ2cGlzOiB2cGlzIGplIGxhaGtvIG5ldXNwZbllbixrZXIgamUgbWFsbyBwcm9zdGVnYSBwb21uaWxuaWthXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTIKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIHR0eWNsYXNzIgorbXNnc3RyICJ6YSB0dHljbGFzcyBuaSBtb2dv6GUgZG9kZWxpdGkgcG9tbmlsbmlrYSIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTMKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCittc2dzdHIgInphIGdycGxpc3QgbmkgbW9nb+hlIGRvZGVsaXRpIHBvbW5pbG5pa2EiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkIGJ5IGRlZmF1bHQuXG4iCittc2dzdHIgIlZwaXMgbmEgJXMgaXogJXMgamUgemFuaWthbihwcml2emV0bykuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICJWcGlzIG5hICVzIGl6ICVzIGplIHphbmlrYW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IHZpICh1cG9yYWJuaWsgJWQpIG5lIG9ic3RhamF0ZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0MCBsb2dpbi11dGlscy9jaHNoLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1c2VyIFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IHVwb3JhYm5payBcIiVzXCIgbmUgb2JzdGphLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQ1IGxvZ2luLXV0aWxzL2Noc2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBlbnRyaWVzOyB1c2UgeXAlcyBpbnN0ZWFkLlxuIgorbXNnc3RyICIiCisiJXM6IGxhaGtvIHNwcmVtaW5qYSBzYW1vIGxva2FsbmUgdm5vc2U7IG5hbWVzdG8gdGVnYSB1cG9yYWJpdGUgeXAlcyAuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorIywgZnV6enkKK21zZ2lkICJVbmtub3duIHVzZXIgY29udGV4dCIKK21zZ3N0ciAiTmV6bmFuYSBuYXBha2EgdiB1cG9yYWJuablraSB6dmV6aVt1c2VyIGNvbnRleHRdIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIGZpbmdlciBpbmZvIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBuaW1hIHByaXN0b2pub3N0aSB6YSBzcHJlbWluamFuamUgaW5mb3JtYWNpamUgZmluZ2VyIG9kICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiVzOiBOZSBtb3JlIHNlIG5hc3Rhdml0aSBwcml2emV0ZSB6dmV6ZVtjb250ZXh0XSB6YSAvZXRjL3Bhc3N3ZCIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBmaW5nZXIgaW5mb3JtYXRpb24gZm9yICVzLlxuIgorbXNnc3RyICJTcHJlbWluamFtIGZpbmdlciBpbmZvcm1hY2lqbyB6YSAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJsb2dpbjogUEFNIG5pIHVzcGVsLCBwcmVraW5qYW06ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTIgbG9naW4tdXRpbHMvY2hzaC5jOjIxMSBsb2dpbi11dGlscy9sb2dpbi5jOjgyNworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6NzkgbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0MCBtb3VudC9sb21vdW50LmM6NzQyCisjOiBtb3VudC9sb21vdW50LmM6NzQ1Cittc2dpZCAiUGFzc3dvcmQ6ICIKK21zZ3N0ciAiR2VzbG86ICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxNSBsb2dpbi11dGlscy9jaHNoLmM6MjE0Cittc2dpZCAiSW5jb3JyZWN0IHBhc3N3b3JkLiIKK21zZ3N0ciAiTmFwYehubyBnZXNsby4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJGaW5nZXIgaW5mb3JtYWNpamEgbmkgc3ByZW1lbmplbmEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIlVwb3JhYmE6ICVzIFsgLWYgcG9sbm8taW1lXSBbIC1vIHBpc2FybmEgXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlsgLXAgb2ZmaWNlLXBob25lIF1cbiIKKyJcdFsgLWggaG9tZS1waG9uZSBdICIKK21zZ3N0ciAiIgorIlsgLXAgcGlzYXJuablraS10ZWwgXVxuIgorIlx0WyAtaCBkb21h6GktdGVsICAgXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc4Cittc2dpZCAiT2ZmaWNlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQwMSBsb2dpbi11dGlscy9jaHNoLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJBYm9ydGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiUHJla2luamVuby5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAicG9samUgamUgcHJlZG9sZ28uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJyVjJyBuaSBkb3ZvbGplbm8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiTmFkem9ybmkgem5ha2kgbmlzbyBkb3ZvbGplbmkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIkZpbmdlciBpbmZvcm1hY2lqYSBOSSBzcHJlbWVuamVuYS4gUG9za3VzaXRlIHBvbm92bm8ga2FzbmVqZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiRmluZ2VyIGluZm9ybWFjaWphIHNwcmVtZW5qZW5hLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyBuaW1hIHByaXN0b2pub3N0aSB6YSBzcHJlbWVtYm8gbHVwaW5lICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBSdW5uaW5nIFVJRCBkb2Vzbid0IG1hdGNoIFVJRCBvZiB1c2VyIHdlJ3JlIGFsdGVyaW5nLCBzaGVsbCBjaGFuZ2UgIgorImRlbmllZFxuIgorbXNnc3RyICIiCisiJXM6IFRla2/oaSBVSUQgbmUgdXN0cmV6YSBVSUR1IHVwb3JhYm5pa2EsIGtpIGdhIGG+dXJpcmFtbywgc3ByZW1lbWJhIGx1cGluZSAiCisiemFuaWthbmFcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogWW91ciBzaGVsbCBpcyBub3QgaW4gL2V0Yy9zaGVsbHMsIHNoZWxsIGNoYW5nZSBkZW5pZWRcbiIKK21zZ3N0ciAiJXM6IFZhuWEgbHVwaW5hIG5pIHYgL2V0Yy9zaGVsbHMsIHNwcmVtZW1iYSBsdXBpbmUgemFuaWthbmFcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBzaGVsbCBmb3IgJXMuXG4iCittc2dzdHIgIlNwcmVtaW5qYW0gbHVwaW5vIHphICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJOb3ZhIGx1cGluYSIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyOQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiTHVwaW5hIG5pIGJpbGEgc3ByZW1lbmplbmEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiTHVwaW5hIE5JIGJpbGEgc3ByZW1lbmplbmEuIFBvc2t1c2l0ZSB6bm92YSBrYXNuZWplLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIGNoYW5nZWQuXG4iCittc2dzdHIgIkx1cGluYSBqZSBiaWxhIHNwcmVtZW5qZW5hLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIlVwb3JhYmE6ICVzIFsgLXMgbHVwaW5hIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1cG9yYWJuablrbyBpbWVdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNoZWxsIG11c3QgYmUgYSBmdWxsIHBhdGggbmFtZS5cbiIKK21zZ3N0ciAiJXM6IGx1cGluYSBtb3JhIGJpdGkgcG9sbm8gaW1lIHBvdGkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBuZSBvYnN0YWphLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGV4ZWN1dGFibGUuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIgbmkgaXp2crlsaml2YS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6ICclYycgbmkgZG92b2xqZW5vLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogTmFkem9ybmkgem5ha2kgbmlzbyBkb3ZvbGplbmkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzUgbG9naW4tdXRpbHMvY2hzaC5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiT3Bvem9yaWxvOiBcIiVzXCIgbmkgbmEgc2V6bmFtdSB2IC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBuaSBuYSBzZXpuYW11IHYgL2V0Yy9zaGVsbHMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVc2UgLWwgb3B0aW9uIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICIlczogdXBvcmFiaXRlIC1sIHphIGl6cGlzIHNlem5hbWFcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIlVwb3JhYml0ZSAlcyAtbCB6YSBpenBpcyBzZXpuYW1hLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGtub3duIHNoZWxscy5cbiIKK21zZ3N0ciAiTmkgem5hbmloIGx1cGluLlxuIgorCisjOiBsb2dpbi11dGlscy9pc2xvY2FsLmM6ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuICVzIGZvciByZWFkaW5nLCBleGl0aW5nLiIKK21zZ3N0ciAiJXMgbmkgbW9nb+hlIG9kcHJldGkgemEgYnJhbmplXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzoxNDgKK21zZ2lkICJ1c2FnZTogbGFzdCBbLSNdIFstZiBmaWxlXSBbLXQgdHR5XSBbLWggaG9zdG5hbWVdIFt1c2VyIC4uLl1cbiIKK21zZ3N0ciAiIgorInVwb3JhYmE6IGxhc3QgWy0jXSBbLWYgZGF0XSBbLXQgdHR5XSBbLWggaW1lIGdvc3RpdGVsamFdIFt1cG9yYWJuaWsgLi4uXVxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzAyCittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIiAguWUgdmVkbm8gcHJpamF2bGplbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wIHph6GVuamEgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozODAgbG9naW4tdXRpbHMvbGFzdC5jOjM5OCBsb2dpbi11dGlscy9sYXN0LmM6NDQ5Cittc2dpZCAibGFzdDogbWFsbG9jIGZhaWx1cmUuXG4iCittc2dzdHIgImxhc3Q6IG1hbGxvYyBuaSB1c3BlbC5cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQyNQorbXNnaWQgImxhc3Q6IGdldGhvc3RuYW1lIgorbXNnc3RyICJsYXN0OiBkb2JpIGltZSBnb3N0aXRlbGphIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisicHJla2luamVubyAlMTAuMTBzICU1LjVzIFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIlVTT0ROQSBOQVBBS0E6IHR0eSBuaSBtb2dv6GUgem5vdmEgb2RwcmV0aTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogJXMgaXMgbm90IGEgdGVybWluYWwiCittc2dzdHIgIiVzIG5pIHBvc2VibmEgYmxv6G5hIG5hcHJhdmEiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjM4Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgIlVTT0ROQSBOQVBBS0E6IHBvuWtvZG92YW4gdHR5IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogLWggZm9yIHN1cGVyLXVzZXIgb25seS5cbiIKK21zZ3N0ciAibG9naW46IC1oIGplIG5hIHZvbGpvIHNhbW8gemEgc2lzdGVtc2tlZ2Egc2tyYm5pa2EuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgInVwb3JhYmE6IGxvZ2luIFstZnBdIFt1cG9yYWJuaWtdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiUEFNIG5pIG1v6CBpbmljaWFsaXppcmF0aTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTk1Cittc2dpZCAibG9naW46ICIKK21zZ3N0ciAicHJpamF2YTogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJORVVTUEWpTkEgUFJJSkFWQSAlZCBJWiAlcyBaQSBVUE9SQUJOSUtBICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkxvZ2luIGluY29ycmVjdFxuIgorIlxuIgorbXNnc3RyICIiCisiTmVwcmF2aWxuYSBwcmlqYXZhXG4iCisiXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRPTyBNQU5ZIExPR0lOIFRSSUVTICglZCkgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJQUkVWRcggUE9TS1VTT1YgUFJJSkFWRSAoJWQpIElaICVzIFpBICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICJORVVTUEWpTkEgUFJJSkFWTkEgU0VKQSBJWiAlcyB6YSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIk5ldXNwZbluYSBwcmlqYXZhXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkwIGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk3IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIgorbXNnc3RyICIiCisiXG4iCisiTmFwYWthIHByaSBuYXN0YXZsamFuanUgc2VqZSwgcHJla2luamFtLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MQorIywgYy1mb3JtYXQKK21zZ2lkICJOVUxMIHVzZXIgbmFtZSBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICJuaehlbG5vIHVwb3JhYm5puWtvIGltZSB2ICVzOiVkLiBQcmVraW5qYW0uIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVzZXIgbmFtZSBcIiVzXCIgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiTmVwcmF2aWxubyB1cG9yYWJuablrbyBpbWUgXCIlc1wiIHYgJXM6JWQuIFByZWtpbmphbS4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzE3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgImxvZ2luOiBabWFuamthbG8gamUgcHJvc3RlZ2EgcG9tbmlsbmlrYVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjc2MQorbXNnaWQgIklsbGVnYWwgdXNlcm5hbWUiCittc2dzdHIgIk5ldmVsamF2bm8gdXBvcmFibmm5a28gaW1lIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb2dpbiByZWZ1c2VkIG9uIHRoaXMgdGVybWluYWwuXG4iCittc2dzdHIgIiVzIG5hIHRlbSB0ZXJtaW5hbHUgamUgdnBpcyB6YW5pa2FuLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIEZST00gJXMgT04gVFRZICVzIgorbXNnc3RyICJWUElTICVzIFpBTklLQU4gT0QgJXMgTkEgVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiTE9HSU4gJXMgWkFOSUtBTiBOQSBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICJQcmlqYXZhIG5pIHVzcGVsYVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRElBTFVQIEFUICVzIEJZICVzIgorbXNnc3RyICJURUxFRk9OU0tBIFBSSUpBVkEgWiBMSU5JSkUgJXMsIFVQT1JBQk5JSyAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMgRlJPTSAlcyIKK21zZ3N0ciAiU0tSQk5JqUtBIFBSSUpBVkEgWiBSQchVTkFMTklLQSAlcywgVVBPUkFCTklLICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyIKK21zZ3N0ciAiU0tSQk5JqUtBIFBSSUpBVkEgTkEgTElOSUpJICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAiUFJJSkFWQSBOQSBMSU5JSkkgJXMgVVBPUkFCTklLQSAlcyBaIFJByFVOQUxOSUtBICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgIlBSSUpBVkEgTkEgTElOSUpJICVzIFVQT1JBQk5JS0EgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEyOQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBuZXcgbWFpbC5cbiIKK21zZ3N0ciAiyGFrYSB2YXMgbm92YSBwb7l0YS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG1haWwuXG4iCittc2dzdHIgIshha2EgdmFzIHBvuXRhLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiCittc2dzdHIgImxvZ2luOiB2ZWppdGV2IG5pIHVzcGVsYTogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyMgorIywgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiVElPQ1NDVFRZIG5pIHVzcGVsOiAlbSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjI4Cittc2dpZCAic2V0dWlkKCkgZmFpbGVkIgorbXNnc3RyICJrbGljIHNldHVpZCgpIG5pIHVzcGVsIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICJJbWVuaWsgJXMgbmUgb2JzdGFqYSFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2dpbmcgaW4gd2l0aCBob21lID0gXCIvXCIuXG4iCittc2dzdHIgIlZwaXN1amVtIHNlIHMgZG9tYehpbSBpbWVuaWtvbSA9IFwiL1wiLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICJsb2dpbjogbmkgcHJvc3RlZ2EgcG9tbmlsbmlrYSB6YSBsdXBpbnNraSBza3JpcHQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogY291bGRuJ3QgZXhlYyBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorbXNnc3RyICJsb2dpbjogc2tyaXB0YSB1a2F6bmUgbHVwaW5lIG5pIG1v6CBwb2duYXRpOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBuaSB1a2F6bmUgbHVwaW5lOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlcyBsb2dpbjogIgorbXNnc3RyICIiCisiXG4iCisiJXMgcHJpamF2YTogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJQcmlqYXZubyBpbWUgamUgcHJlZG9sZ28uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMworbXNnaWQgIk5BTUUgdG9vIGxvbmciCittc2dzdHIgIklNRSBqZSBwcmVkb2xnbyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgIlByaWphdm5hIGltZW5hIHNlIG5lIG1vcmVqbyB6YehldGkgeiB6bmFrb20gJy0nLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgInByZXZl6CBwb21pa292IHYgbm92byB2cnN0b1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjEKK21zZ2lkICJFWENFU1NJVkUgbGluZWZlZWRzIgorbXNnc3RyICJQUkVLT01FUk5JIHBvbWlraSB2IG5vdm8gdnJzdG8iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiB0aW1lZCBvdXQgYWZ0ZXIgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJQcmlqYXZhIGplIHBvdGVrbGEgcG8gJWQgc2VrdW5kYWguXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGxvZ2luOiAlLipzICIKK21zZ3N0ciAiWmFkbmphIHByaWphdmE6ICUuKnMgIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnJvbSAlLipzXG4iCittc2dzdHIgInogcmHodW5hbG5pa2EgJS4qc1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib24gJS4qc1xuIgorbXNnc3RyICJ6IGxpbmlqZSAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorbXNnc3RyICJORVVTUEWpTkEgUFJJSkFWQSBaICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICJORVVTUEWpTkEgUFJJSkFWQSBOQSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBGUk9NICVzLCAlcyIKK21zZ3N0ciAiJWQgTkVVU1BFqU5JSCBQUklKQVYgWiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBPTiAlcywgJXMiCittc2dzdHIgIiVkIE5FVVNQRalOSUggUFJJSkFWIE5BICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgImlzIHlcbiIKK21zZ3N0ciAiamUgeVxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgblxuIgorbXNnc3RyICJqZSBuXG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IG1lc2cgW3kgfCBuXVxuIgorbXNnc3RyICJ1cG9yYWJhOiBtZXNnIFt5IHwgbl1cbiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAibmV3Z3JwOiBLZG8gc2k/IgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMDcgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTIxCittc2dpZCAibmV3Z3JwOiBzZXRnaWQiCittc2dzdHIgIm5ld2dycDogbmFzdGF2aSBnaWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNCBsb2dpbi11dGlscy9uZXdncnAuYzoxMTYKK21zZ2lkICJuZXdncnA6IE5vIHN1Y2ggZ3JvdXAuIgorbXNnc3RyICJuZXdncnA6IFRha2Egc2t1cGluZSBuaS4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyNQorbXNnaWQgIm5ld2dycDogUGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm5ld2dycDogRG9zdG9wIHphbmlrYW4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IG5hc3RhdmkgdWlkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzgKK21zZ2lkICJObyBzaGVsbCIKK21zZ3N0ciAiTmkgdWthem5lIGx1cGluZSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCittc2dzdHIgIlVwb3JhYmE6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnV0XVxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjEzNAorbXNnaWQgIlNodXRkb3duIHByb2Nlc3MgYWJvcnRlZCIKK21zZ3N0ciAiUG9zdG9wZWsgemF1c3Rhdml0dmUgcHJla2luamVuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiVzOiBTaXN0ZW0gbGFoa28gemF1c3Rhdmkgc2FtbyBzaXN0ZW1za2kgc2tyYm5pay5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIlRvIHNlIG1vcmEgemdvZGl0aSBqdXRyaSwgYWxpIG5lIG1vcmV0ZSBwb+hha2F0aSBkbyB0YWtyYXQ/XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzEwCittc2dpZCAiZm9yIG1haW50ZW5hbmNlOyBib3VuY2UsIGJvdW5jZSIKK21zZ3N0ciAiemEgdnpkcr5ldmFuamUiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiU2lzdGVtIHNlIGJvIHphdXN0YXZpbCDoZXogcGV0IG1pbnV0IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM0MworbXNnaWQgIkxvZ2luIGlzIHRoZXJlZm9yZSBwcm9oaWJpdGVkLiIKK21zZ3N0ciAiUHJpamF2YSB6YXRvIG5pIGRvdm9samVuYS4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY1CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYm9vdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAicG9ub3ZubyB6YWduYWwgdXBvcmFibmlrICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAidXN0YXZpbCB1cG9yYWJuaWsgJXM6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzMgorbXNnaWQgIiIKKyJcbiIKKyJXaHkgYW0gSSBzdGlsbCBhbGl2ZSBhZnRlciByZWJvb3Q/IgorbXNnc3RyICIiCisiXG4iCisiWmFrYWogc2VtILllIHZlZG5vIGFrdGl2ZW4gcG8gcG9ub3ZuZW0gemFnb251PyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisiWmRhaiBsYWhrbyB2YXJubyBpemtsb3BpdGUgcmHodW5hbG5pay4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICJLbGnoZW0gamVkcm92byBpemtsanXoaXR2ZW5vIG1ldG9kby4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIk5hcGFrYSBwcmkgaXprbGp16GV2YW5qdVx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAiWmFnYW5qYW0gcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGV4ZWN1dGluZ1x0JXNcbiIKK21zZ3N0ciAiTmFwYWthIHByaSBpenZhamFuanVcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiCittc2dzdHIgIk5VSk5POiBvZGRhaiBzcG9yb+hpbG8gaXogJXM6IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBob3VycyAlZCBtaW51dGVzIgorbXNnc3RyICJTaXN0ZW0gc2UgYm8gdXN0YXZpbCDoZXogJWQgdXIgaW4gJWQgbWludXQuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAiU2lzdGVtIHNlIGJvIHVzdGF2aWwg6GV6IGVubyB1cm8gaW4gJWQgbWludXQuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBtaW51dGVzXG4iCittc2dzdHIgIlNpc3RlbSBzZSBibyB1c3RhdmlsIOhleiAlZCBtaW51dC5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBtaW51dGVcbiIKK21zZ3N0ciAiU2lzdGVtIHNlIGJvIHVzdGF2aWwg6GV6IGVubyBtaW51dG8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIgorbXNnc3RyICJTaXN0ZW0gc2UgdXN0YXZsamEgWkRBSi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx0Li4uICVzIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIk5pIG1vZ2/oZSB2ZWppdGkgemEgaXprbHXoaXRldiBpem1lbmphbG5lZ2EgcHJvc3RvcmEuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICIiCisiaXprbGp16Gl0dmUgaXptZW5qYWxuZWdhIHByb3N0b3JhIG5pIG1vZ2/oZSBpenZlc3RpLCB1cGFtLCBkYSBibyB1bW91bnQgdXNwZWwiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiVW1vdW50IHZlaml0ZXYgbmkgdXNwZWxhLCBwb2l6a3W5YW0gcm/obm8iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICJOaSBtb+ggaXp2ZXN0aSAlcywgcG9za3W5YW0geiB1bW91bnQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjEwCittc2dpZCAiQ2Fubm90IGV4ZWMgdW1vdW50LCBnaXZpbmcgdXAgb24gdW1vdW50LiIKK21zZ3N0ciAiTmkgbW/oIGl6dmVzdGkgdW1vdW50LCBuYWRhbGpuaSBwb3NrdXNpIG9wdbnoZW5pLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTUKK21zZ2lkICJVbm1vdW50aW5nIGFueSByZW1haW5pbmcgZmlsZXN5c3RlbXMuLi4iCittc2dzdHIgIk9ka2xhcGxqYW0gcHJlb3N0YWxlIGRhdG90ZehuZSBzaXN0ZW1lLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJzaHV0ZG93bjogQ291bGRuJ3QgdW1vdW50ICVzOiAlc1xuIgorbXNnc3RyICJzaHV0ZG93bjogVW1vdW50IG5pIHVzcGVsIHogJXM6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzIKK21zZ2lkICJCb290aW5nIHRvIHNpbmdsZSB1c2VyIG1vZGUuXG4iCittc2dzdHIgIlphZ29uIHYgZW5vdXBvcmFibmm5a2VtIG5h6GludS5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzNgorbXNnaWQgImV4ZWMgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgIml6dmVkYmEgZW5vdXBvcmFibmm5a2UgbHVwaW5lIG5pIHVzcGVsYVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTQwCittc2dpZCAiZm9yayBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAidmVqaXRldiBlbm91cG9yYWJuablrZSBsdXBpbmUgbmkgdXNwZWxhXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMDgKK21zZ2lkICJlcnJvciBvcGVuaW5nIGZpZm9cbiIKK21zZ3N0ciAibmFwYWthIHByaSBvZHBpcmFuanUgZmlmb1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjEyCittc2dpZCAiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIKK21zZ3N0ciAibmFwYWthIHByaSBuYXN0YXZsamFuanUgemFwaXJhbmphIHByaSBpenZyuWl0dmkgbmEgL2Rldi9pbml0Y3RsIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjU5Cittc2dpZCAiZXJyb3IgcnVubmluZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAibmFwYWthIG1lZCBpenZhamFuamVtIHBvc2xlZG5qZWdhIHByb2dyYW1hXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNjMKK21zZ2lkICJlcnJvciBmb3JraW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJuYXBhayBwcmkgdmVqaXR2aSBwb3NsZWRuamVnYSBwcm9ncmFtYVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQ1Cittc2dpZCAiIgorIlxuIgorIldyb25nIHBhc3N3b3JkLlxuIgorbXNnc3RyICIiCisiXG4iCisiTmFwYehubyBnZXNsby5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgImxzdGF0IGltZW5pa2EgbmkgdXNwZWxcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQyNgorbXNnaWQgInN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAic3RhdCBpbWVuaWthIG5pIHVzcGVsXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MzQKK21zZ2lkICJvcGVuIG9mIGRpcmVjdG9yeSBmYWlsZWRcbiIKK21zZ3N0ciAib3BlbiBpbWVuaWthIG5pIHVzcGVsXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcGF3bmluZzogXCIlc1wiIHRvbyBmYXN0OiBxdWVuY2hpbmcgZW50cnlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAidmVqaXRldiBuaSB1c3BlbGFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU0MCB0ZXh0LXV0aWxzL21vcmUuYzoxNjYzCittc2dpZCAiZXhlYyBmYWlsZWRcbiIKK21zZ3N0ciAiemFnb24gbmkgdXNwZWxcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU2NAorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAiaW5pdHRhYiBuaSBtb2dv6GUgb2RwcmV0aVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NjMxCittc2dpZCAibm8gVEVSTSBvciBjYW5ub3Qgc3RhdCB0dHlcbiIKK21zZ3N0ciAibmkgdGVybWluYWxhIGFsaSBuaSBtb2dv6GUgZG9zdG9wYXRpIGRvIHR0eVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTM4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBzdG9wcGluZyBzZXJ2aWNlOiBcIiVzXCJcbiIKK21zZ3N0ciAibmFwYWthIHByaSB6YXVzdGF2bGphbmp1IHN0b3JpdHZlOiBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAibmFwYWthIHByaSB6YXVzdGF2bGphbmp1IHN0b3JpdHZlOiBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMDcwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBydW5uaW5nIHByb2dyYW1tZTogXCIlc1wiXG4iCittc2dzdHIgIm5hcGFrYSBtZWQgaXp2YWphbmplbSBwb3NsZWRuamVnYSBwcm9ncmFtYVxuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAicHJldmXoIGlvdi1qZXYgKHNwcmVtZW5pIGtvZG8gdiB3YWxsL3R0eW1zZy5jKSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIKK21zZ3N0ciAicHJla29yYehpdGV2IGRvbL5pbmUgdnJzdGljZSBhcmd1bWVudGEiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAidmVqaXRldiBuaSBtb2dv6GEiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJmb3JrOiAlcyIKK21zZ3N0ciAidmVqaXRldjogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQkFEIEVSUk9SIgorbXNnc3RyICIlcyBSRVNOQSBOQVBBS0EiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgcGFzc3dvcmQgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogZGF0b3Rla2Egc2t1cGluZSBqZSB2IHJhYmkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBncm91cCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBkYXRvdGVrYSBza3VwaW5lIGplIHYgcmFiaS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiJXM6IGRhdG90ZWthICVzIGplIHYgcmFiaSAoJXMgZG9zZWdsaml2YSlcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgbGluayAlczogJXNcbiIKK21zZ3N0ciAiJXM6IG5pIG1vZ2/oZSBwb3ZlemF0aSAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogTmkgbW9nb+hlIGRvYml0aSB6dmV6ZSB6YSAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogTmkgbW9nb+hlIG5hc3Rhdml0aSB1cG9yYWJuablrZSB6dmV6ZSB6YSAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiJXM6IG5pIG1vZ2/oZSBvZGtsZW5pdGkgJXM6ICVzICh2YbllIHNwcmVtZW1iZSBzbyC5ZSB2ZWRubyB2ICVzKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgZm9ya1xuIgorbXNnc3RyICIlczogTmkgbW9nb+hlIHZlaml0aVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiJXM6ICVzIG5pIHNwcmVtZW5qZW5vXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIgorbXNnc3RyICIlczogYnJleiBzcHJlbWVtYlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IGdyb3VwcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiTmEgdGVtIHNpc3RlbXUgdXBvcmFibGphdGUgemFzZW7oZW5lIHNrdXBpbmUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJOYSB0ZW0gc2lzdGVtdSB1cG9yYWJsamF0ZSB6YXNlbuhlbmEgZ2VzbGEuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV291bGQgeW91IGxpa2UgdG8gZWRpdCAlcyBub3cgW3kvbl0/ICIKK21zZ3N0ciAiQWxpIL5lbGl0ZSBhvnVyaXJhdGkgJXMgW3kvbl0/ICIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgW2ZpbGVdXG4iCittc2dzdHIgInVwb3JhYmE6ICVzIFtkYXRvdGVrYV1cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IHph6GFzbmUgZGF0b3Rla2UgbmkgbW9nb+hlIG9kcHJldGkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJvYWRjYXN0IE1lc3NhZ2UgZnJvbSAlc0AlcyIKK21zZ3N0ciAiUHJlamV0byBzcG9yb+hpbG8gb2QgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiAlcyBuZSBibyBwcmVicmFuIC0gdXBvcmFiaSBzdGRpbi5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiJXMgJXMgbmkgbW9nb+hlIGJyYXRpLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlcyBuaSBtb2dv6GUgZG9iaXRpIHN0YW5qYSB6Yehhc25lIGRhdG90ZWtlLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogbmkgbW9nb+hlIGJyYXRpIGl6IHph6GFzbmUgZGF0b3Rla2UuXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgIm5ldmVsamF2bmEgdnJlZG5vc3QgbGV0YTogdXBvcmFiaXRlIDEtOTk5OSIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjgKK21zZ2lkICJpbGxlZ2FsIG1vbnRoIHZhbHVlOiB1c2UgMS0xMiIKK21zZ3N0ciAibmV2ZWxqYXZuYSB2cmVkbm9zdCBtZXNlY2E6IHVwb3JhYml0ZSAxLTEyIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM3MgorbXNnaWQgImlsbGVnYWwgeWVhciB2YWx1ZTogdXNlIDEtOTk5OSIKK21zZ3N0ciAibmV2ZWxqYXZuYSB2cmVkbm9zdCBsZXRhOiB1cG9yYWJpdGUgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJXMgJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY2FsIFstMTNzbWp5Vl0gW1tbZGF5XSBtb250aF0geWVhcl1cbiIKK21zZ3N0ciAidXBvcmFiYTogY2FsIFstMTNzbWp5Vl0gW1ttZXNlY10gbGV0b11cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIKK21zZ3N0ciAidXBvcmFiYTogJXMgWytmb3JtYXRdIFtkYW4gbWVzZWMgbGV0b11cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIkRhbiBzdC4gVGliYSIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgTEFCRUw9PGxhYmVsPnxVVUlEPTx1dWlkPlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byByZXNvbHZlICclcyciCittc2dzdHIgIm5pIG1vZ2/oZSBvZHByZXRpICVzIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzXG4iCittc2dzdHIgIiVzOiBuZXpuYW4gc2lnbmFsICVzXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBwcm9jZXNzIFwiJXNcIlxuIgorbXNnc3RyICIlczogcHJvY2VzYSBuaSBtb2dv6GUgbmFqdGkgXCIlc1wiXG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjMxNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXM7IHZhbGlkIHNpZ25hbHM6XG4iCittc2dzdHIgIiVzOiBuZXpuYW4gc2lnbmFsICVzOyB2ZWxqYXZuaSBzaWduYWxpOlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorbXNnc3RyICJ1cG9yYWJhOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIlx0JXMgLWwgW3NpZ25hbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiUHJpamF2bm8gaW1lIGplIHByZWRvbGdvLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQ6ICVzLlxuIgorbXNnc3RyICJWZWxpa29zdCBibG9rYTogJWRcbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb25uZWN0OiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiAlczogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBuZXpuYW5vIGltZSBwb3Nsb3BqYVtmYWNpbGl0eV06ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gcHJpb3JpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogbmV6bmFubyBwcmVkbm9zdG5vIGltZTogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogbG9nZ2VyIFstaXNdIFstZiBmaWxlXSBbLXAgcHJpXSBbLXQgdGFnXSBbLXUgc29ja2V0XSBbIG1lc3NhZ2UgLi4uIF1cbiIKK21zZ3N0ciAiIgorInVwb3JhYmE6IGxvZ2dlciBbLWlzXSBbLWYgZGF0XSBbLXAgcHJlZG5vc3RdIFstdCB6bmHoa2FdIFstdSB2dGnobmljYV0gIgorIlsgc3Bvcm/oaWxvIC4uLl1cbiIKKworIzogbWlzYy11dGlscy9sb29rLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb29rIFstZGZhXSBbLXQgY2hhcl0gc3RyaW5nIFtmaWxlXVxuIgorbXNnc3RyICJ1cG9yYWJhOiBsb29rIFstZGZhXSBbLXQgem5ha10gbml6IFtkYXRvdGVrYV1cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJOaSBtb2dv6GUgb2RwcmV0aSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDkgbWlzYy11dGlscy9tY29va2llLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdvdCAlZCBieXRlcyBmcm9tICVzXG4iCittc2dzdHIgIkRvYmxqZW5paCAlZCBiYWp0b3Ygb2QgJXNcbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE0MyBtaXNjLXV0aWxzL25hbWVpLmM6MTk4IG1pc2MtdXRpbHMvbmFtZWkuYzoyMjUKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyNDUgbWlzYy11dGlscy9uYW1laS5jOjI1MiBtaXNjLXV0aWxzL25hbWVpLmM6Mjk0CisjLCBmdXp6eQorbXNnaWQgIm91dCBvZiBtZW1vcnk/IgorbXNnc3RyICJqZSB6bWFuamthbG8gcG9tbmlsbmlrYT9cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgc3ltbGluazogJXMiCittc2dzdHIgImtsaWMgaW9jdGwoKSBuaSB1c3BlbCBwcmVicmF0aSDoYXNhIGl6ICVzIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjMxIG1pc2MtdXRpbHMvbmFtZWkuYzoyNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgInN0YW5qYSBuYXByYXZlICVzIG5pIG1vZ2/oZSBkb2JpdGkiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgInVwb3JhYmE6IG5hbWVpIFstbXhdIGltZW5payBbaW1lbmlrIC4uLl1cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCByYXpkZWxrb3Y6XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgbmFtZWkoMSkuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQ6ICVzIgorbXNnc3RyICJzdGFuamEgJXMgbmkgbW9nb+hlIGRvYml0aSIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUzMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXhjZWVkZWQgbGltaXQgb2Ygc3ltbGlua3MiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIlczogem1hbmprYWxvIHBvbW5pbG5pa2FcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogcHJlaW1lbm92YW5qZSAlcyBuYSAlcyBuaSB1c3BlbG86ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FsbDogJXMgZnJvbSB0byBmaWxlcy4uLlxuIgorbXNnc3RyICJrbGljOiAlcyBpeiBuYSBkYXRvdGVrZS4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisiT3Bvem9yaWxvOiBgJXMnIGplIHBvdmV6YXZhLlxuIgorIlVwb3JhYml0ZSBgJXMgW2l6YmlyZV0gJXMnIOhlIGpvIL5lbGl0ZSB1cG9yYWJpdGkuXG4iCisiU2tyaXB0IG5pIGJpbCBpenZyuWVuLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2ZpbGVdXG4iCittc2dzdHIgInVwb3JhYmE6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtkYXRvdGVrYV1cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiU2NyaXB0IHNlIGplIHph6GVsLCBkYXQuIGplICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MjQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3IgJWQ6ICVzXG4iCittc2dzdHIgIm5hcGFrYSBwcmkgcGlzYW5qdSBuYSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiU2NyaXB0IHNlIGplIHph6GVsIG5hICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICJuYXBha2EgcHJpIHBpc2FuanUgbmEgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczogemEgJXMgbmkgbW9nb+hlIG5hanRpIG5hcHJhdmVcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNjcmlwdCBkb25lIG9uICVzIgorbXNnc3RyICIiCisiXG4iCisiU2NyaXB0IGtvbuhhbiBuYSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IGRvbmUsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiU2NyaXB0IGtvbuhhbiwgZGF0LiBqZSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVucHR5IGZhaWxlZFxuIgorbXNnc3RyICJvcGVucHR5IG5pIHVzcGVsXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICJabWFuamthbG8gcHR5LWpldlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIDx0aW1pbmdmaWxlPiBbPHR5cGVzY3JpcHQ+IFs8ZGl2aXNvcj5dXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhwZWN0ZWQgYSBudW1iZXIsIGJ1dCBnb3QgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjU2IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGl2aXNvciAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTA0CisjLCBmdXp6eQorbXNnaWQgIndyaXRlIHRvIHN0ZG91dCBmYWlsZWQiCittc2dzdHIgIk9kcGlyYW5qZSAlcyBuaSB1c3BlbG8iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAia2xpYyBpb2N0bCgpIG5pIHVzcGVsIHByZWJyYXRpIOhhc2EgaXogJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiRGF0b3Rla2UgLCVzYCBuaSBtb2dv6GUgb2RwcmV0aSIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiRGF0b3Rla2UgLCVzYCBuaSBtb2dv6GUgb2RwcmV0aSIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICJrbGljIGlvY3RsKCkgbmkgdXNwZWwgcHJlYnJhdGkg6GFzYSBpeiAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAiJXM6IE5lcHJp6GFrb3ZhbiBrb25lYyBkYXRvdGVrZSB2ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQXJndW1lbnQgZXJyb3IsIHVzYWdlXG4iCittc2dzdHIgIiVzOiBOYXBha2UgcHJpIGl6YmlyaSwgdXBvcmFiaVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorbXNnc3RyICIgIFsgLXRlcm0gaW1lX3Rlcm1pbmFsYSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlc2V0IF1cbiIKK21zZ3N0ciAiICBbIC1yZXNldCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWluaXRpYWxpemUgXVxuIgorbXNnc3RyICIgIFsgLWluaXRpYWxpemUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFstc25vdyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiICBbIC1kZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc5IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODMKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NQorIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorbXNnc3RyICIgIFsgLXN0YW5kb3V0IFsgYXRyaWJ1dCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWludmVyc2VzY3JlZW4gW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWludmVyc2VzY3JlZW4gW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ib2xkIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ib2xkIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmV2ZXJzZSBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmV2ZXJzZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RvcmUgXVxuIgorbXNnc3RyICIgIFsgLXN0b3JlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xlYXIgW2FsbHxyZXN0XSBdXG4iCittc2dzdHIgIiAgWyAtY2xlYXIgW2FsbHxyZXN0XSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKK21zZ3N0ciAiICBbIC10YWJzIFsgdGFiMSB0YWIyIC4uLiBdIF0gICAgICAgICi5dC4gdGFiLW92ID0gMS0xNjApXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHRhYm4gPSAxLTE2MClcbiIKK21zZ3N0ciAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIC4uLiBdIF0gICAgICi5dC4gdGFiLW92ID0gMS0xNjApXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsYW5rIFswLTYwfGZvcmNlfHBva2VdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGFuayBbMC02MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kdW1wICAgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1kdW1wICAgWzEtqVRfVVBSQVZMSkFMTklLT1ZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwZW5kIFsxLalUX1VQUkFWTEpBTE5JS09WXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiICBbIC1maWxlIGl6aG9kbmFfZGF0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJkb3duIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiICBbIC1iZnJlcSBmcmVrdmVu6G5hX7l0LiBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSBibGFua1xuIgorbXNnc3RyICJ2ZWppdGV2IG5pIG1vZ2/oYSIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIHVuYmxhbmtcbiIKK21zZ3N0ciAidmVqaXRldiBuaSBtb2dv6GEiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgIiVzIG5lIG1vcmVtIG9kcHJldGlcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICJuaSBtb2dv6GUgbmFzdGF2aXRpIHBvd2Vyc2F2ZSBuYehpbmFcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEyMiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTMwCisjLCBjLWZvcm1hdAorbXNnaWQgImtsb2djdGwgZXJyb3I6ICVzXG4iCittc2dzdHIgImtsb2djdGwgbmFwYWthOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIgorbXNnc3RyICJOYXBha2EgcHJpIGJyYW5qdSB6YXNsb25za2VnYSBpenBpc2FcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTIwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgcmVhZCAlc1xuIgorbXNnc3RyICJOaSBtb2dv6GUgb2RwcmV0aSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6ICRURVJNIG5pIGRvbG/oZW4uXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstZF0gWy1wIHBpZGZpbGVdIFstcyBzb2NrZXRwYXRoXSBbLVQgdGltZW91dF1cbiIKK21zZ3N0ciAiIgorInVwb3JhYmE6IGxhc3QgWy0jXSBbLWYgZGF0XSBbLXQgdHR5XSBbLWggaW1lIGdvc3RpdGVsamFdIFt1cG9yYWJuaWsgLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIFstcnx0XSBbLW4gbnVtXSBbLXMgc29ja2V0cGF0aF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICJcdCVzIC1sIFtzaWduYWwgXVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTUyCisjLCBmdXp6eQorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgImNvbDogc2xhYiBhcmd1bWVudCAtbDogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTkKKyMsIGZ1enp5Cittc2dpZCAic29ja2V0IgorbXNnc3RyICJuZnMga2FuYWwiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNzAKKyMsIGZ1enp5Cittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAibmZzIHBvdmV6YXZhIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTg5CisjLCBmdXp6eQorbXNnaWQgIndyaXRlIgorbXNnc3RyICJaYXBpuWkiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxOTcKKyMsIGZ1enp5Cittc2dpZCAicmVhZCBjb3VudCIKK21zZ3N0ciAiYmVyaSAlY1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjAzCittc2dpZCAiYmFkIHJlc3BvbnNlIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgInV1aWRkIGRhZW1vbiBhbHJlYWR5IHJ1bm5pbmcgYXQgcGlkICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBjcmVhdGUgdW5peCBzdHJlYW0gc29ja2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBiaW5kIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICIlcyBuaSBtb2dv6GUgb2RwcmV0aTogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbGlzdGVuIG9uIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICIlcyBuaSBtb2dv6GUgb2RwcmV0aTogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcmVhZGluZyBmcm9tIGNsaWVudCwgbGVuID0gJWRcbiIKK21zZ3N0ciAiTmFwYWthIHByaSBicmFuanUgJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM3OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb3BlcmF0aW9uICVkXG4iCittc2dzdHIgIm5ldmVsamF2ZW4gaWQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IHNsYWJhIHZyZWRub3N0XG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MjQgbWlzYy11dGlscy91dWlkZC5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2FsbGluZyB1dWlkZCBkYWVtb24gKCVzKTogJXNcbiIKK21zZ3N0ciAiTmFwYWthIHByaSBzcHJlbWluamFuanUgbmHoaW5hICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGFuZCBzdWJzZXF1ZW50ICVkIFVVSUQnc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGlzdCBvZiBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmV4cGVjdGVkIHJlcGx5IGxlbmd0aCBmcm9tIHNlcnZlciAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qga2lsbCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIktpbGxlZCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGdlbi5jOjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1yXSBbLXRdXG4iCittc2dzdHIgIlVwb3JhYmE6ICVzIFtpemJpcmVdIG5hcHJhdmEgLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGltZW5payAuLi4gLWYgXSBpbWUuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKKyMsIGZ1enp5Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jIG5pIHVzcGVsIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE1MAorIywgZnV6enkKK21zZ2lkICJzdHJkdXAgZmFpbGVkIgorbXNnc3RyICJPZHBpcmFuamUgJXMgbmkgdXNwZWxvIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBwcm9iaW5nIGluaXRpYWxpemF0aW9uIGZhaWxlZCIKK21zZ3N0ciAiIgorIlxuIgorIk5hcGFrYSBwcmkgemFwaXJhbmp1IGRhdG90ZWtlXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IGFwcGVhcnMgdG8gY29udGFpbiAnJXMnIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiRGlzayAlcyBuZSB2c2VidWplIHZlbGphdm5lIHRhYmVsZSByYXpkZWxrb3ZcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgZm91bmQgYSBtYWdpYyBzdHJpbmcgYXQgb2Zmc2V0IDB4JWp4IC0gaWdub3JlLiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiJXM6IG9kcGlyYW5qZSBuaSB1c3BlbG86ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IG5pIHVzcGVsXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlemQgYnl0ZXMgWyIKK21zZ3N0ciAiYmFqdG92IgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJdIGVyYXNlZCBhdCBvZmZzZXQgMHglanggKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjkyIG1vdW50L3N3YXBvbi5jOjE5OCBtb3VudC9zd2Fwb24uYzoyNjYKKyM6IG1vdW50L3N3YXBvbi5jOjQxMSBtb3VudC9zd2Fwb24uYzo1NzAgbW91bnQvc3dhcG9uLmM6NzcyCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTU5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogb3BlbiBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgbmkgdXNwZWxcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMTUgbWlzYy11dGlscy93aXBlZnMuYzozMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgb2Zmc2V0ICclcycgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJOZXZlbGphdm5hIHZyZWRub3N0IG5hc3RhdmxqYW5qYTogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxkZXZpY2U+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiVXBvcmFiYTogJXMgW2l6YmlyZV0gbmFwcmF2YSAuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIKK21zZ3N0ciAiRmluZ2VyIGluZm9ybWFjaWphIHNwcmVtZW5qZW5hLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjM4NworbXNnaWQgIi0tb2Zmc2V0IGFuZCAtLWFsbCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IGNhbid0IGZpbmQgeW91ciB0dHkncyBuYW1lXG4iCittc2dzdHIgIndyaXRlOiBpbWVuYSB2YbllZ2EgdHR5IG5pIG1vZ2/oZSBuYWp0aVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiB5b3UgaGF2ZSB3cml0ZSBwZXJtaXNzaW9uIHR1cm5lZCBvZmYuXG4iCittc2dzdHIgIndyaXRlOiBkb3ZvbGplbmplIHphIHBpc2FuamUgaW1hdGUgaXprbG9wbGplbm8uXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIG5vdCBsb2dnZWQgaW4gb24gJXMuXG4iCittc2dzdHIgIndyaXRlOiAlcyBuaSBwcmlqYXZsamVuIG5hICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGltYSBvbmVtb2dv6GVuYSBzcG9yb+hpbGEgbmEgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICJ1cG9yYWJhOiB3cml0ZSB1cG9yYWJuaWsgW3R0eV1cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICJ3cml0ZTogJXMgc2UgbmkgcHJpamF2bGplblxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGltYSBvbmVtb2dv6GVuYSBzcG9yb+hpbGFcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbG9nZ2VkIGluIG1vcmUgdGhhbiBvbmNlOyB3cml0aW5nIHRvICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyBzZSBqZSBwcmlqYXZpbCB2Zegga290IGVua3JhdDsgcGm5ZW0gdiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyAoYXMgJXMpIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiU3Bvcm/oaWxvIGl6ICVzQCVzIChrb3QgJXMpIG5hICVzIHByaSAlcyAuLi4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiU3Bvcm/oaWxvIGl6ICVzQCVzIG5hICVzIHByaSAlcyAuLi4iCisKKyM6IG1vdW50L2ZzdGFiLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGVycm9yIHJlYWRpbmcgJXM6ICVzIgorbXNnc3RyICJvcG96b3JpbG86IG5hcGFrYSBwcmkgYnJhbmp1ICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzIgbW91bnQvZnN0YWIuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgIm9wb3pvcmlsbzogbmUgbW9yZW0gb2RwcmV0aSAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjb3VsZCBub3Qgb3BlbiAlcyAtIHVzaW5nICVzIGluc3RlYWRcbiIKK21zZ3N0ciAibW91bnQ6IG5pIG1vZ2/oZSBvZHByZXRpICVzIC0gdXBvcmFibGphbSAlcyBuYW1lc3RvIHRlZ2FcbiIKKworIzogbW91bnQvZnN0YWIuYzo1OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgY3JlYXRlIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorIm5pIG1vZ2/oZSB1c3R2YXJpdGkgb21laml0dmVuZSBkYXRvdGVrZSAlczogJXMgKHphIHBvdm96aXRldiB1cG9yYWJpIC1uKSIKKworIzogbW91bnQvZnN0YWIuYzo2MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbGluayBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIm9tZWppdHZlbmUgZGF0b3Rla2UgJXMgbmkgbW9nb+hlIHZlemF0aSA6ICVzICh6YSBwb3Zveml0ZXYgdXBvcmFiaSAtbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICJvbWVqaXR2ZW5lIGRhdG90ZWtlICVzIG5pIG1vZ2/oZSBvZHByZXRpOiAlcyAoemEgcG92b3ppdGV2IHVwb3JhYmkgLW4pIgorCisjOiBtb3VudC9mc3RhYi5jOjY0NworIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiT21laml0dmVuZSBkYXRvdGVrZSAlcyBuaSBtb2dv6GUgemFrbGVuaXRpOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXMiCittc2dzdHIgIm9tZWppdHZlbmUgZGF0b3Rla2UgJXMgbmkgbW9nb+hlIHpha2xlbml0aTogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICLoYXMgc2UgamUgaXp0ZWtlbCIKKworIzogbW91bnQvZnN0YWIuYzo2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbGluayAlc1xuIgorIlBlcmhhcHMgdGhlcmUgaXMgYSBzdGFsZSBsb2NrIGZpbGU/XG4iCittc2dzdHIgIiIKKyJQb3ZlemF2ZSAlcyBuaSBtb2dv6GUgdXN0dmFyaXRpXG4iCisiTW9nb+hlIG9ic3RhamEgbmV2ZWxqYXZuYSB6YWtsZXBuYSBkYXRvdGVrYT9cbiIKKworIzogbW91bnQvZnN0YWIuYzo3OTIgbW91bnQvZnN0YWIuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgKCVzKSAtIG10YWIgbm90IHVwZGF0ZWQiCittc2dzdHIgIiVzIG5pIG1vZ2/oZSBvZHByZXRpICglcykgLSBtdGFiIG5pIGG+dXJpcmFuIgorCisjOiBtb3VudC9mc3RhYi5jOjg1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAibmFwYWthIHByaSBwaXNhbmp1ICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzo4NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXNcbiIKK21zZ3N0ciAiTmFwYWthIHByaSBzcHJlbWluamFuanUgbmHoaW5hICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iCittc2dzdHIgIk5hcGFrYSBwcmkgc3ByZW1pbmphbmp1IG5h6GluYSAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgcmVuYW1lICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICJuaSBtb2dv6GUgcHJlaW1lbm92YXRpICVzIHYgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IHNldCBjYXBhY2l0eSBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IGluZm9ybWFjaWogbyBuYXByYXZpICVzIG5pIG1vZ2/oZSBkb2JpdGk6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBvZG1payAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjM4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIG9tZWppdGV2X3ZlbGlrb3N0aSAlbGxkIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzk3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gJXMgKHR5cGUgJTxQUkl1MzI+KSIKK21zZ3N0ciAiLCC5aWZyaXJhbmplICVzICh0aXAgJWQpIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICVkIgorbXNnc3RyICIsIG9kbWlrICVkIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiB0eXBlICVkXG4iCittc2dzdHIgIiwguWlmcmlybmkgdGlwICVkXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBpbmZvcm1hY2lqIG8gbmFwcmF2aSAlcyBuaSBtb2dv6GUgZG9iaXRpOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDMyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IG9wZW4gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiBuaSBtb2dv6GUgb2RwcmV0aSBuYXByYXZlICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IC9kZXYgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LiIKK21zZ3N0ciAiJXM6IHVwb3JhYm5payBcIiVzXCIgbmUgb2JzdGphLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiVzOiB6YSB2cG9nbGVkIHYgL2Rldi9sb29wIyBuaSBkb3ZvbGplbmphIgorCisjOiBtb3VudC9sb21vdW50LmM6NjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGZyZWUgbG9vcCBkZXZpY2UiCittc2dzdHIgIiVzOiBpc2thbmplIHByb3N0ZSBsb29wIG5hcHJhdmUgbmkgYmlsbyB1c3BluW5vXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlPyAoSWYgc28sIHJlY29tcGlsZSBvciBgbW9kcHJvYmUgbG9vcCcuKSIKK21zZ3N0ciAiIgorIiVzOiBsb29wIG5hcHJhdmUgbmkgbW9nb+hlIG5hanRpLiBNb2dv6GUgdG8gamVkcm8gbmUgdmUgemEgbmFwcmF2b1xuIgorIlx0dGUgdnJzdGUuICjIZSBqZSB0byByZXMsIHBvbm92bm8gcHJldmVkaSBqZWRybyBhbGkgc2kgcG9tYWdhaiB6IGBtb2Rwcm9iZSAiCisibG9vcCcuKSIKKworIzogbW91bnQvbG9tb3VudC5jOjYzNgorIywgZnV6enkKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoaWxlIHJlYWRpbmcgcGFzc3BocmFzZSIKK21zZ3N0ciAiUHJpIHBvdmXoZXZhbmp1IG1lZHBvbW5pbG5pa2EgamUgem1hbmprYWxvIHBvbW5pbG5pa2EuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2NzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzIGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIlNla3RvciAlZCBqZSC+ZSBkb2RlbGplblxuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njk1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iCittc2dzdHIgIm1vdW50OiAlcyVzIGplIHphuehpdGVuYSBwcmVkIHBpc2FuamVtLCBwcmlrbGFwbGphbSBzYW1vIHphIGJyYW5qZSIKKworIzogbW91bnQvbG9tb3VudC5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb2NrIGludG8gbWVtb3J5LCBleGl0aW5nLlxuIgorbXNnc3RyICJWIHBvbW5pbG5payBuaSBtb2dv6GUgemFrbGVuaXRpLCBrb27odWplbS5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBMT09QX1NFVF9GRCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjgxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic2V0X2xvb3AoJXMsJXMsJWxsdSwlbGx1KTogc3VjY2Vzc1xuIgorbXNnc3RyICJzZXRfbG9vcCglcywlcywlbGx1KTogdXNwZWhcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgzNgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWxfbG9vcCglcyk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAiZGVsX2xvb3AoJXMpOiB1c3BlaFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODQwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGRlbGV0ZSBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IG5hcHJhdmUgJXMgbmkgbW9nb+hlIHpicmlzYXRpOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgbW91bnQgd2FzIGNvbXBpbGVkIHdpdGhvdXQgbG9vcCBzdXBwb3J0LiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisiUHJvZ3JhbSBtb3VudCBqZSBiaWwgcHJldmVkZW4gYnJleiBwb2Rwb3JlIHphIGxvb3AuIFBvc2t1c2l0ZSBwb25vdm5vICIKKyJwcmV2ZXN0aSBtb3VudC5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIGxvb3BfZGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXZlIGluZm9cbiIKKyIgJTEkcyAtYSB8IC0tYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBhbGwgdXNlZFxuIgorIiAlMSRzIC1kIHwgLS1kZXRhY2ggPGxvb3BkZXY+IFs8bG9vcGRldj4gLi4uXSBkZWxldGVcbiIKKyIgJTEkcyAtZiB8IC0tZmluZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZCB1bnVzZWRcbiIKKyIgJTEkcyAtYyB8IC0tc2V0LWNhcGFjaXR5IDxsb29wZGV2PiAgICAgICAgICAgcmVzaXplXG4iCisiICUxJHMgLWogfCAtLWFzc29jaWF0ZWQgPGZpbGU+IFstbyA8bnVtPl0gICAgIGxpc3QgYWxsIGFzc29jaWF0ZWQgd2l0aCAiCisiPGZpbGU+XG4iCisiICUxJHMgWyBvcHRpb25zIF0gey1mfC0tZmluZHxsb29wZGV2fSA8ZmlsZT4gIHNldHVwXG4iCittc2dzdHIgIiIKKyJ1cG9yYWJhOlxuIgorIiAgJXMgbG9vcF9uYXByYXZhXHRcdFx0XHRcdCMgZG9iaSBpbmZvcm1hY2lqZVxuIgorIiAgJXMgLWQgbG9vcF9uYXByYXZhXHRcdFx0XHRcdCMgemJyablpXG4iCisiICAlcyAtZlx0XHRcdFx0XHRcdCMgbmFqZGkgbmV1cG9yYWJsamVuZVxuIgorIiAgJXMgWy1lILlpZnJpcmFuamVdIFstbyBvZG1pa10gey1mfGxvb3BfbmFwcmF2YX0gZGF0LiAjIG5hc3Rhdml0ZXZcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg5NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWUgfCAtLWVuY3J5cHRpb24gPHR5cGU+IGVuYWJsZSBkYXRhIGVuY3J5cHRpb24gd2l0aCBzcGVjaWZpZWQgPG5hbWUvbnVtPlxuIgorIiAtaCB8IC0taGVscCAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1vIHwgLS1vZmZzZXQgPG51bT4gICAgICBzdGFydCBhdCBvZmZzZXQgPG51bT4gaW50byBmaWxlXG4iCisiICAgICAgLS1zaXplbGltaXQgPG51bT4gICBsb29wIGxpbWl0ZWQgdG8gb25seSA8bnVtPiBieXRlcyBvZiB0aGUgZmlsZVxuIgorIiAtcCB8IC0tcGFzcy1mZCA8bnVtPiAgICAgcmVhZCBwYXNzcGhyYXNlIGZyb20gZmlsZSBkZXNjcmlwdG9yIDxudW0+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBzZXR1cCByZWFkLW9ubHkgbG9vcCBkZXZpY2VcbiIKKyIgICAgICAtLXNob3cgICAgICAgICAgICAgIHByaW50IGRldmljZSBuYW1lICh3aXRoIC1mIDxmaWxlPilcbiIKKyIgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgIHZlcmJvc2UgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDM0IG1vdW50L2xvbW91bnQuYzoxMDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJMb29wIGRldmljZSBpcyAlc1xuIgorbXNnc3RyICJsb29wOiBuaSBtb2dv6GUgb2RwcmV0aSBuYXByYXZlICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBuYXByYXZhIGplIHphcG9zbGVuYSIKKworIzogbW91bnQvbG9tb3VudC5jOjEwODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbG9vcCBzdXBwb3J0IHdhcyBhdmFpbGFibGUgYXQgY29tcGlsZSB0aW1lLiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisiTWVkIHByZXZhamFuamVtIG5pIGJpbG8gcG9kcG9yZSB6YSBsb29wIG5hcHJhdm8uIFBvc2t1c2l0ZSBwb25vdm5vICIKKyJwcmV2ZXN0aS5cbiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIgorbXNnc3RyICJtb3VudDogJXMgbmkgbW9nb+hlIG5hanRpIHYgJXMgYWxpICVzIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHBvIGV2aWRlbmNpIG10YWIgamUgJXMgvmUgcHJpa2xvcGxqZW5vIG5hICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU0MAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIG1vdW50ZWQgb24gJXMiCittc2dzdHIgIm1vdW50OiBwbyBldmlkZW5jaSBtdGFiIGplICVzIHByaWtsb3BsamVubyBuYSAlczwiCisKKyM6IG1vdW50L21vdW50LmM6NTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzIGZvciB3cml0aW5nOiAlcyIKK21zZ3N0ciAibW91bnQ6IGVub3RlICVzIG5pIG1v6CBvZHByZXRpIHphIHBpc2FuamU6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDogbmFwYWthIHByaSBwaXNhbmp1IG5hICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzIgorbXNnc3RyICJtb3VudDogbmFwYWthIHByaSBzcHJlbWluamFuanUgbmHoaW5hICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGhpdHJvc3RpIG5pIG1vZ2/oZSBuYXN0YXZpdGk6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiBoaXRyb3N0aSBuaSBtb2dv6GUgbmFzdGF2aXRpOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiBuaSBtb2dv6GUgdmVqaXRpOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIlBvc2t1uWFtIHogJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo4NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHlvdSBkaWRuJ3Qgc3BlY2lmeSBhIGZpbGVzeXN0ZW0gdHlwZSBmb3IgJXNcbiIKK21zZ3N0ciAibW91bnQ6IHphICVzIG5pc3RlIHBvZGFsaSB2cnN0ZSBkYXQuIHNpc3RlbWFcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgYWxsIHR5cGVzIG1lbnRpb25lZCBpbiAlcyBvciAlc1xuIgorbXNnc3RyICJcdFVwb3JhYmlsaSBzZSBib2RvIHZzaSB0aXBpIG9tZW5qZW5pIHYgJXMgYWxpICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICJcdGluIGl6Z2xlZGEga290IGRhIGplIGl6bWVuamFsbmkgcHJvc3RvclxuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSB0eXBlICVzXG4iCittc2dzdHIgIlx0VXBvcmFibGplbiBibyB0aXAgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiJXMgamUgcG9kb2JlbiBpem1lbmphbG5lbXUgcHJvc3RvcnUsIHphdG8gbmUgYm8gcHJpa2xvcGxqZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTAwMgorbXNnaWQgIm1vdW50IGZhaWxlZCIKK21zZ3N0ciAicHJpa2xvcCBuaSB1c3BlbCIKKworIzogbW91bnQvbW91bnQuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIgorbXNnc3RyICJtb3VudDogc2FtbyBzaXN0ZW1za2kgc2tyYm5payBsYWhrbyBwcmlrbG9waSAlcyBuYSAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMDc0Cittc2dpZCAibW91bnQ6IGxvb3AgZGV2aWNlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IGxvb3AgbmFwcmF2YSBqZSBwb2RhbmEgZHZha3JhdCIKKworIzogbW91bnQvbW91bnQuYzoxMDc5Cittc2dpZCAibW91bnQ6IHR5cGUgc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogdGlwIGplIHBvZGFuIGR2YWtyYXQiCisKKyM6IG1vdW50L21vdW50LmM6MTA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2tpcHBpbmcgdGhlIHNldHVwIG9mIGEgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAibW91bnQ6IG5hc3Rhdml0ZXYgbG9vcCBuYXByYXZlIGJvIHByZXNrb+hlbmFcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIGFzIGxvb3AiCittc2dzdHIgIm1vdW50OiBwbyBldmlkZW5jaSBtdGFiIGplICVzIL5lIHByaWtsb3BsamVubyBuYSAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiBsb29wIG5hcHJhdmEgJXMgYm8gdXBvcmFibGplbmFcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzdG9sZW4gbG9vcD0lcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzdG9sZW4gbG9vcD0lcyIKK21zZ3N0ciAidW1vdW50OiAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZmFpbGVkIHNldHRpbmcgdXAgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAibW91bnQ6IG5hc3Rhdml0ZXYgbG9vcCBuYXByYXZlIG5pIHVzcGVsYVxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNldHVwIGxvb3AgZGV2aWNlIHN1Y2Nlc3NmdWxseVxuIgorbXNnc3RyICJtb3VudDogbmFzdGF2aXRldiBsb29wIG5hcHJhdmUgamUgdXNwZWxhXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gJXMgZm91bmQgLSBjcmVhdGluZyBpdC4uXG4iCittc2dzdHIgIm1vdW50OiAlcyBibyB1c3R2YXJqZW4sIGtlciBnYSBuaXNlbSBuYbllbFxuIgorCisjOiBtb3VudC9tb3VudC5jOjExOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICJtb3VudDogJXMgbmkgbW9nb+hlIG9kcHJldGk6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIm1vdW50OiBhcmd1bWVudCBwcmkgLXAgYWxpIC0tcGFzcy1mZCBtb3JhIGJpdGkguXRldmlsa2EiCisKKyM6IG1vdW50L21vdW50LmM6MTIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG9wZW4gJXMgZm9yIHNldHRpbmcgc3BlZWQiCittc2dzdHIgIm1vdW50OiAlcyBuaSBtb2dv6GUgb2RwcmV0aSB6YSBuYXN0YXZpdGV2IGhpdHJvc3RpIgorCisjOiBtb3VudC9tb3VudC5jOjEyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgc3BlZWQ6ICVzIgorbXNnc3RyICJtb3VudDogaGl0cm9zdGkgbmkgbW9nb+hlIG5hc3Rhdml0aTogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTMyMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IHBvIGV2aWRlbmNpIG10YWIgamUgJXMgvmUgcHJpa2xvcGxqZW5vIG5hICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgInVtb3VudDogJXMgamUgemFwb3NsZW5hIC0gcG9ub3ZubyBwcmlrbGFwbGphbSBzYW1vIHphIGJyYW5qZVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTMKK21zZ2lkICIiCisibW91bnQ6IEkgY291bGQgbm90IGRldGVybWluZSB0aGUgZmlsZXN5c3RlbSB0eXBlLCBhbmQgbm9uZSB3YXMgc3BlY2lmaWVkIgorbXNnc3RyICJtb3VudDogVGlwYSBkYXQuIHNpc3RlbWEgbmkgYmlsbyBtb2dv6GUgdWdvdG92aXRpIGluIG5pIGJpbCBwb2RhbiIKKworIzogbW91bnQvbW91bnQuYzoxNDE2Cittc2dpZCAibW91bnQ6IHlvdSBtdXN0IHNwZWNpZnkgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAibW91bnQ6IHRpcCBkYXQuIHNpc3RlbWEgbW9yYSBiaXRpIHBvZGFuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudDogcHJpa2xvcCBuaSB1c3BlbCIKKworIzogbW91bnQvbW91bnQuYzoxNDI1IG1vdW50L21vdW50LmM6MTQ2MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgbm90IGEgZGlyZWN0b3J5IgorbXNnc3RyICJtb3VudDogcHJpa2xvcG5hIHRv6GthICVzIG5pIGltZW5payIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJtb3VudDogZG9zdG9wIHphdnJuamVuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjkKK21zZ2lkICJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IgorbXNnc3RyICJtb3VudDogdWtheiBtb3VudCBsYWhrbyB1cG9yYWJsamEgc2FtbyBzaXN0ZW1za2kgc2tyYm5payIKKworIzogbW91bnQvbW91bnQuYzoxNDMzIG1vdW50L21vdW50LmM6MTQzNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIGplIHYgcmFiaSIKKworIzogbW91bnQvbW91bnQuYzoxNDM5Cittc2dpZCAibW91bnQ6IHByb2MgYWxyZWFkeSBtb3VudGVkIgorbXNnc3RyICJtb3VudDogcHJvYyBqZSC+ZSBwcmlrbG9wbGplbiIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIGplIL5lIHByaWtsb3BsamVuIGFsaSAlcyB6YXBvc2xlbiIKKworIzogbW91bnQvbW91bnQuYzoxNDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6IHByaWtsb3BuYSB0b+hrYSAlcyBuZSBvYnN0YWphIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICJtb3VudDogcHJpa2xvcG5hIHRv6GthICVzIGplIHNpbWJvbG5hIHBvdmV6YXZhIGRvIG5p6GVzYXIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBwb3NlYm5hIG5hcHJhdmEgJXMgbmUgb2JzdGFqYSIKKworIzogbW91bnQvbW91bnQuYzoxNDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3RcbiIKKyIgICAgICAgKGEgcGF0aCBwcmVmaXggaXMgbm90IGEgZGlyZWN0b3J5KVxuIgorbXNnc3RyICIiCisibW91bnQ6IHBvc2VibmEgbmFwcmF2YSAlcyBuZSBvYnN0YWphXG4iCisiXHQocG90IG5pIGltZW5paylcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBub3QgbW91bnRlZCBhbHJlYWR5LCBvciBiYWQgb3B0aW9uIgorbXNnc3RyICJtb3VudDogJXMguWUgbmkgcHJpa2xvcGxqZW4gYWxpIG5lcHJhdmlsbmEgaXpiaXJhIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogd3JvbmcgZnMgdHlwZSwgYmFkIG9wdGlvbiwgYmFkIHN1cGVyYmxvY2sgb24gJXMsXG4iCisiICAgICAgIG1pc3NpbmcgY29kZXBhZ2Ugb3IgaGVscGVyIHByb2dyYW0sIG9yIG90aGVyIGVycm9yIgorbXNnc3RyICIiCisibW91bnQ6IG5hcGHoZW4gdGlwIGRhdC4gc2lzdGVtYSwgbmVwcmF2aWxuYSBpemJpcmEsIHBvuWtvZG92YW4gc3VwZXJibG9rIG5hICUiCisicyxcbiIKKyJcdG1hbmprYWpv6GEga29kbmEgc3RyYW4gYWxpIGRydWdlIG5hcGFrZSIKKworIzogbW91bnQvbW91bnQuYzoxNDg3Cittc2dpZCAiIgorIiAgICAgICAoZm9yIHNldmVyYWwgZmlsZXN5c3RlbXMgKGUuZy4gbmZzLCBjaWZzKSB5b3UgbWlnaHRcbiIKKyIgICAgICAgbmVlZCBhIC9zYmluL21vdW50Ljx0eXBlPiBoZWxwZXIgcHJvZ3JhbSkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDk2Cittc2dpZCAiIgorIiAgICAgICAoY291bGQgdGhpcyBiZSB0aGUgSURFIGRldmljZSB3aGVyZSB5b3UgaW4gZmFjdCB1c2VcbiIKKyIgICAgICAgaWRlLXNjc2kgc28gdGhhdCBzcjAgb3Igc2RhIG9yIHNvIGlzIG5lZWRlZD8pIgorbXNnc3RyICIiCisiXHQodG8gYmkgbGFoa28gYmlsYSBJREUgbmFwcmF2YSBwcmkga2F0ZXJpIHVwb3JhYmxqYXRlXG4iCisiXHRpZGUtc2NzaSB0YWtvLCBkYSBqZSBwb3RyZWJubyBpbWV0aSBzcjAgYWxpIHNkYSkiCisKKyM6IG1vdW50L21vdW50LmM6MTUwMQorbXNnaWQgIiIKKyIgICAgICAgKGFyZW4ndCB5b3UgdHJ5aW5nIHRvIG1vdW50IGFuIGV4dGVuZGVkIHBhcnRpdGlvbixcbiIKKyIgICAgICAgaW5zdGVhZCBvZiBzb21lIGxvZ2ljYWwgcGFydGl0aW9uIGluc2lkZT8pIgorbXNnc3RyICIiCisiXHQoYWxpIHBvc2t1uWF0ZSBwcmlrbG9waXRpIHJherlpcmplbiByYXpkZWxlayxcbiIKKyJcdG5hbWVzdG8gbm90cmFuamVnYSBsb2dp6G5lZ2EgcmF6ZGVsa2E/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKyJcdFYgbmVrYXRlcmloIHByaW1lcmloIGRvYml0ZSB1cG9yYWJuZSBpbmZvcm1hY2lqZSB2IHNpc3QuIGRuZXZuaWt1XG4iCisiXHRwb3NrdXNpdGUgeiBkbWVzZyB8IHRhaWxcbiIKKworIzogbW91bnQvbW91bnQuYzoxNTE0Cittc2dpZCAibW91bnQgdGFibGUgZnVsbCIKK21zZ3N0ciAicHJpa2xvcG5hIHRhYmVsYSBqZSBwb2xuYSIKKworIzogbW91bnQvbW91bnQuYzoxNTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogY2FuJ3QgcmVhZCBzdXBlcmJsb2NrIgorbXNnc3RyICJtb3VudDogJXM6IHN1cGVyYmxva2EgbmkgbW9nb+hlIHByZWJyYXRpIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzOiBuZXpuYW5hIG5hcHJhdmEiCisKKyM6IG1vdW50L21vdW50LmM6MTUyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHVua25vd24gZmlsZXN5c3RlbSB0eXBlICclcyciCittc2dzdHIgIm1vdW50OiBuZXpuYW4gdGlwIGRhdC4gc2lzdGVtYSAnJXMnIgorCisjOiBtb3VudC9tb3VudC5jOjE1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHByb2JhYmx5IHlvdSBtZWFudCAlcyIKK21zZ3N0ciAibW91bnQ6IHZlcmpldG5vIGplIGJpbG8gbWm5bGplbm8gJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTU0MgorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ2lzbzk2NjAnPyIKK21zZ3N0ciAibW91bnQ6IG1vZ2/oZSBqZSBiaWwgbWm5bGplbiAnaXNvOTY2MCc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDUKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICd2ZmF0Jz8iCittc2dzdHIgIm1vdW50OiBtb2dv6GUgamUgYmlsIG1puWxqZW4gJ3ZmYXQnPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBoYXMgd3JvbmcgZGV2aWNlIG51bWJlciBvciBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKyJtb3VudDogJXMgaW1hIG5hcGHobm8guXRldmlsa28gbmFwcmF2ZSBhbGkgcGEgZGF0b3Rl6G5vc2lzdGVtc2tpIHRpcCAlcyBuaSAiCisicG9kcHJ0IgorCisjOiBtb3VudC9tb3VudC5jOjE1NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSwgYW5kIHN0YXQgZmFpbHM/IgorbXNnc3RyICJtb3VudDogJXMgbmkgYmxv6G5hIG5hcHJhdmEgaW4gc3RhdCBuZSB1c3BlPyIKKworIzogbW91bnQvbW91bnQuYzoxNTU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHRoZSBrZXJuZWwgZG9lcyBub3QgcmVjb2duaXplICVzIGFzIGEgYmxvY2sgZGV2aWNlXG4iCisiICAgICAgIChtYXliZSBgbW9kcHJvYmUgZHJpdmVyJz8pIgorbXNnc3RyICIiCisibW91bnQ6IGplZHJvIG5lIHByZXBvem5hICVzIGtvdCBibG/obmUgbmFwcmF2ZVxuIgorIlx0KG1vZ2/oZSBgaW5zbW9kIGdvbmlsbmlrJz8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSAobWF5YmUgdHJ5IGAtbyBsb29wJz8pIgorbXNnc3RyICJtb3VudDogJXMgbmkgYmxv6G5hIG5hcHJhdmEgKHBvc2t1c2l0ZSBgLW8gbG9vcCc/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlcyBuaSBibG/obmEgbmFwcmF2YSIKKworIzogbW91bnQvbW91bnQuYzoxNTY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSB2YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlcyBuaSB2ZWxqYXZuYSBibG/obmEgbmFwcmF2YSIKKworIzogbW91bnQvbW91bnQuYzoxNTcyCittc2dpZCAiYmxvY2sgZGV2aWNlICIKK21zZ3N0ciAiYmxv6G5hIG5hcHJhdmEiCisKKyM6IG1vdW50L21vdW50LmM6MTU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG1vdW50ICVzJXMgcmVhZC1vbmx5IgorbXNnc3RyICJtb3VudDogJXMlcyBuaSBtb+ggcHJpa2xvcGl0aSBzYW1vIHphIGJyYW5qZSIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICJtb3VudDogJXMlcyBqZSB6YbnoaXRlbmEgcHJlZCBwaXNhbmplbSBhbXBhayBwb2RhbmEgamUgYC13JyB6YXN0YXZpY2EiCisKKyM6IG1vdW50L21vdW50LmM6MTU4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCByZW1vdW50ICVzJXMgcmVhZC13cml0ZSwgaXMgd3JpdGUtcHJvdGVjdGVkIgorbXNnc3RyICJtb3VudDogJXMlcyBuaSBtb+ggcHJpa2xvcGl0aSBzYW1vIHphIGJyYW5qZSIKKworIzogbW91bnQvbW91bnQuYzoxNTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCwgbW91bnRpbmcgcmVhZC1vbmx5IgorbXNnc3RyICJtb3VudDogJXMlcyBqZSB6YbnoaXRlbmEgcHJlZCBwaXNhbmplbSwgcHJpa2xhcGxqYW0gc2FtbyB6YSBicmFuamUiCisKKyM6IG1vdW50L21vdW50LmM6MTYwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAibW91bnQ6ICVzIGJvIHVzdHZhcmplbiwga2VyIGdhIG5pc2VtIG5huWVsXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIGplIL5lIHByaWtsb3BsamVuIHYgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxNjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogJXMgZG9lcyBub3QgY29udGFpbiBTRUxpbnV4IGxhYmVscy5cbiIKKyIgICAgICAgWW91IGp1c3QgbW91bnRlZCBhbiBmaWxlIHN5c3RlbSB0aGF0IHN1cHBvcnRzIGxhYmVscyB3aGljaCBkb2VzIG5vdFxuIgorIiAgICAgICBjb250YWluIGxhYmVscywgb250byBhbiBTRUxpbnV4IGJveC4gSXQgaXMgbGlrZWx5IHRoYXQgY29uZmluZWRcbiIKKyIgICAgICAgYXBwbGljYXRpb25zIHdpbGwgZ2VuZXJhdGUgQVZDIG1lc3NhZ2VzIGFuZCBub3QgYmUgYWxsb3dlZCBhY2Nlc3MgdG9cbiIKKyIgICAgICAgdGhpcyBmaWxlIHN5c3RlbS4gIEZvciBtb3JlIGRldGFpbHMgc2VlIHJlc3RvcmVjb24oOCkgYW5kIG1vdW50KDgpLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTcxMAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiB0aGUgY29sb25cbiIKK21zZ3N0ciAibW91bnQ6IHRpcCBuaSBiaWwgcG9kYW4gLSBwcmVkcG9zdGF2bGphIHNlIG5mcyB6YXJhZGkgZHZvcGnoamFcbiIKKworIzogbW91bnQvbW91bnQuYzoxNzE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICJtb3VudDogdGlwIG5pIGJpbCBwb2RhbiAtIHByZWRwb3N0YXZsamEgc2Ugc21iZnMgemFyYWRpIHByZWRwb25lIC8vIFxuIgorCisjOiBtb3VudC9tb3VudC5jOjE4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICJtb3VudDogJXMgamUgvmUgcHJpa2xvcGxqZW4gdiAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE5NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogcHJpbnQgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBwcmludCB0aGlzIGhlbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdCBtb3VudGVkIGZpbGVzeXN0ZW1zXG4iCisiICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1ZGluZyB2b2x1bWUgbGFiZWxzXG4iCisiU28gZmFyIHRoZSBpbmZvcm1hdGlvbmFsIHBhcnQuIE5leHQgdGhlIG1vdW50aW5nLlxuIgorIlRoZSBjb21tYW5kIGlzIGBtb3VudCBbLXQgZnN0eXBlXSBzb21ldGhpbmcgc29tZXdoZXJlJy5cbiIKKyJEZXRhaWxzIGZvdW5kIGluIC9ldGMvZnN0YWIgbWF5IGJlIG9taXR0ZWQuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IG1vdW50IGFsbCBzdHVmZiBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgIDogbW91bnQgZGV2aWNlIGF0IHRoZSBrbm93biBwbGFjZVxuIgorIiAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICAgOiBtb3VudCBrbm93biBkZXZpY2UgaGVyZVxuIgorIiAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICAgOiBvcmRpbmFyeSBtb3VudCBjb21tYW5kXG4iCisiTm90ZSB0aGF0IG9uZSBkb2VzIG5vdCByZWFsbHkgbW91bnQgYSBkZXZpY2UsIG9uZSBtb3VudHNcbiIKKyJhIGZpbGVzeXN0ZW0gKG9mIHRoZSBnaXZlbiB0eXBlKSBmb3VuZCBvbiB0aGUgZGV2aWNlLlxuIgorIk9uZSBjYW4gYWxzbyBtb3VudCBhbiBhbHJlYWR5IHZpc2libGUgZGlyZWN0b3J5IHRyZWUgZWxzZXdoZXJlOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIm9yIG1vdmUgYSBzdWJ0cmVlOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgb2xkZGlyIG5ld2RpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIG1vdW50IGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBkaXJcbiIKKyJBIGRldmljZSBjYW4gYmUgZ2l2ZW4gYnkgbmFtZSwgc2F5IC9kZXYvaGRhMSBvciAvZGV2L2Nkcm9tLFxuIgorIm9yIGJ5IGxhYmVsLCB1c2luZyAgLUwgbGFiZWwgIG9yIGJ5IHV1aWQsIHVzaW5nICAtVSB1dWlkIC5cbiIKKyJPdGhlciBvcHRpb25zOiBbLW5mRnJzdnddIFstbyBvcHRpb25zXSBbLXAgcGFzc3dkZmRdLlxuIgorIkZvciBtYW55IG1vcmUgZGV0YWlscywgc2F5ICBtYW4gOCBtb3VudCAuXG4iCittc2dzdHIgIiIKKyJVcG9yYWJhOiBtb3VudCAtViAgICAgICAgICAgICAgIDogaXpwaXMgcmF6bGnoaWNlXG4iCisiICAgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICA6IGl6cGlzIHRlIHBvbW/oaVxuIgorIiAgICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgOiBzZXpuYW0gcHJpa2xvcGxqZW5paCBkYXRvdGXobmloIHNpc3RlbW92XG4iCisiICAgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICA6IHNlem5hbSBwcmlrbC4gZGF0LiBzaXN0LiB6IG96bmFrYW1pICIKKyJvYnNlZ292XG4iCisiVG8gc28gYmlsZSBpbmZvcm1hdGl2bmUgaXpiaXJlLiBVa2F6IHphIHByaWtsb3AgaW1hIG9ibGlrb1xuIgorIiAgbW91bnQgWy10IHRpcF0gbmFwcmF2YSBpbWVuaWtcbiIKKyLIZSBqZSBuYXByYXZhIL5lIG5hdmVkZW5hIHYgL2V0Yy9mc3RhYiwgbGFoa28gcG9kcm9ibm9zdGkgaXpwdXN0aW1vLlxuIgorIiAgICAgICAgIG1vdW50IC1hIFstdHwtT10gICAgICAgXHQ6IHByaWtsb3AgdnNlaCBuYXByYXYsIG5hdmVkZW5paCB2IC9ldGMvIgorImZzdGFiXG4iCisiICAgICAgICAgbW91bnQgbmFwcmF2YSAgICAgICAgICBcdDogcHJpa2xvcCBuYXByYXZlIG5hIHpuYW5vIHByaWtsb3BubyAiCisidG/oa29cbiIKKyIgICAgICAgICBtb3VudCBpbWVuaWsgICAgICAgICAgIFx0OiBwcmlrbG9wIHpuYW5lIG5hcHJhdmUgbmEgaW1lbmlrXG4iCisiICAgICAgICAgbW91bnQgLXQgdGlwIG5hcHJhdmEgaW1lbmlrICAgOiB0aXBp6GVuIHVrYXogbW91bnRcbiIKKyJWIHJlc25pY2kgcHJhdnphcHJhdiBuZSBwcmlrbG9waW1vIG5hcHJhdmUsIGFtcGFrIGRhdG90ZehuaSBzaXN0ZW0gIgorIihwb2RhbmVnYVxuIgorInRpcGEpIG5hIHBvZGFuaSBuYXByYXZpLlxuIgorIlR1ZGkgdmlkbmkgaW1lbmlrIHYgb2JzdG9qZehlbSBkYXRvdGXobmVtIHNpc3RlbXUgbGFoa28gcHJpa2xvcGltbyBuYSBkcnVnbyAiCisidG/oa286XG4iCisiICAgICAgICAgbW91bnQgLS1iaW5kIHN0YXJpX2ltZW5payBub3ZpX2ltZW5pa1xuIgorIk1vZ2/oZSBqZSBwcmVtYWtuaXRpIHR1ZGkgY2VsbyBpbWVuablrbyBzdHJ1a3R1cm86XG4iCisiICAgICAgICAgbW91bnQgLS1tb3ZlIHN0YXJpX2ltZW5payBub3ZpX2ltZW5pa1xuIgorIk5hcHJhdm8gbGFoa28gbmFzbG92aW1vIHogaW1lbm9tIHBvc2VibmUgZGF0b3Rla2UsIG5wci4gL2Rldi9oZGExIGFsaSAvZGV2LyIKKyJjZHJvbSxcbiIKKyJ6IG96bmFrbyAoeiBpemJpcm8gLUwgb3puYWthKSwgYWxpIHogaWRlbnRpZmlrYWNpanNrbyC5dGV2aWxrbyAoeiBpemJpcm8gLVUgIgorInV1aWQpLlxuIgorIkRydWdlIGl6YmlyZTogWy1uZkZyc3Z3XSBbLW8gaXpiaXJlXS5cbiIKKyJQb2Ryb2Jub3N0aSBsYWhrbyBwb2m56GV0ZSB2IHByaXJv6G5pa3UgeiB1a2F6b206IG1hbiA4IG1vdW50XG4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiB0byBsYWhrbyBpenZlZGUgc2FtbyBzaXN0ZW1za2kgc2tyYm5payIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6IHRvIGxhaGtvIGl6dmVkZSBzYW1vIHNpc3RlbXNraSBza3JibmlrIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJuaeggbmkgYmlsbyBwcmlrbG9wbGplbm8iCisKKyM6IG1vdW50L21vdW50LmM6MjMwNiBtb3VudC9tb3VudC5jOjIzMzIKK21zZ2lkICJtb3VudDogbm8gc3VjaCBwYXJ0aXRpb24gZm91bmQiCittc2dzdHIgIm1vdW50OiB0YWtlZ2EgcmF6ZGVsa2EgbmlzZW0gbmG5ZWwiCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIG5pIG1vZ2/oZSBuYWp0aSB2ICVzIGFsaSAlcyIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiB3YXJuaW5nOiBubyBmaW5hbCBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgJXNcbiIKK21zZ3N0ciAiIgorIlttbnRlbnRdOiBvcG96b3JpbG86IG5hIGtvbmN1IGRhdG90ZWtlICVzIG1hbmprYSBwcmVob2QgbmEgemHoZXRlayB2cnN0aWNlXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogbGluZSAlZCBpbiAlcyBpcyBiYWQlc1xuIgorbXNnc3RyICJbbW50ZW50XTogdnJzdGljaSAlZCBpbiAlcyBzdGEgcG+5a29kb3Zhbmklc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTkKK21zZ2lkICI7IHJlc3Qgb2YgZmlsZSBpZ25vcmVkIgorbXNnc3RyICI7IHByZW9zdGFuZWsgZGF0b3Rla2UgYm8gaWdub3JpcmFuIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjMyCittc2dpZCAiYnVnIGluIHhzdHJuZHVwIGNhbGwiCittc2dzdHIgImhyb7noIHYga2xpY3UgeHN0cm5kdXAiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MjI1IG1vdW50L3N1bmRyaWVzLmM6MjgxIG1vdW50L3N1bmRyaWVzLmM6Mjk2CisjOiBtb3VudC94bWFsbG9jLmM6MTEKK21zZ2lkICJub3QgZW5vdWdoIG1lbW9yeSIKK21zZ3N0ciAicHJlbWFsbyBwb21uaWxuaWthIgorCisjOiBtb3VudC9zd2Fwb24uYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICBMQUJFTCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgICAgVVVJRCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZGV2aWNlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZmlsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBmaWxlIHRvIGJlIHVzZWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstdl0gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZSBhbGwgc3dhcHNcbiIKKyIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGRpc2FibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0IgorbXNnc3RyICIlczogTmVwcmnoYWtvdmFuIGtvbmVjIGRhdG90ZWtlIHYgJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWluaXRpYWxpemluZyB0aGUgc3dhcC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICJ2ZWppdGV2IG5pIHVzcGVsYVxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3YgZmFpbGVkIgorbXNnc3RyICJ6YWdvbiBuaSB1c3BlbFxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNDcKKyMsIGZ1enp5Cittc2dpZCAid2FpdHBpZCBmYWlsZWQiCittc2dzdHIgImtsaWMgc2V0dWlkKCkgbmkgdXNwZWwiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAiaXNrYW5qZSBqZSBiaWxvIG5ldXNwZblubyIKKworIzogbW91bnQvc3dhcG9uLmM6Mjc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIKK21zZ3N0ciAiT2RwaXJhbmplICVzIG5pIHVzcGVsbyIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKKyMsIGZ1enp5Cittc2dpZCAic2FtZSIKK21zZ3N0ciAiSW1lIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzdGF0IGZhaWxlZCIKK21zZ3N0ciAiaXNrYW5qZSBqZSBiaWxvIG5ldXNwZblubyIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaW5zZWN1cmUgcGVybWlzc2lvbnMgJTA0bywgJTA0byBzdWdnZXN0ZWQuIgorbXNnc3RyICIlczogb3Bvem9yaWxvOiAlcyBpbWEgbmV2YXJuYSBkb3ZvbGplbmphICUwNG8sIHN2ZXR1amVtICUwNG9cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgLSBpdCBhcHBlYXJzIHRvIGhhdmUgaG9sZXMuIgorbXNnc3RyICIlczogZGF0LiAlcyBuZSBibyB1cG+5dGV2YW5hIHphcmFkaSBsdWtlbmouXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAiaXNrYW5qZSBqZSBiaWxvIG5ldXNwZblubyIKKworIzogbW91bnQvc3dhcG9uLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIHN3YXAgaGVhZGVyIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxhc3RfcGFnZSAweCUwOGxseCBpcyBsYXJnZXIgdGhhbiBhY3R1YWwgc2l6ZSBvZiBzd2Fwc3BhY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIChVc2UgLS1maXhwZ3N6IHRvIHJlaW5pdGlhbGl6ZSBpdC4pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc29mdHdhcmUgc3VzcGVuZCBkYXRhIGRldGVjdGVkLiBSZXdyaXRpbmcgdGhlIHN3YXAgc2lnbmF0dXJlLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NzggbW91bnQvc3dhcG9uLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIG9uICVzXG4iCittc2dzdHIgIiVzIG5hICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvbiBmYWlsZWQiCittc2dzdHIgImlza2FuamUgamUgYmlsbyBuZXVzcGW5bm8iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzOiB6YSAlcyBuaSBtb2dv6GUgbmFqdGkgbmFwcmF2ZVxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDAKKyMsIGZ1enp5Cittc2dpZCAiTm90IHN1cGVydXNlci4iCittc2dzdHIgIk5pc3RlIHNpc3RlbXNraSBza3JibmlrLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb2ZmIGZhaWxlZCIKK21zZ3N0ciAiaXNrYW5qZSBqZSBiaWxvIG5ldXNwZblubyIKKworIzogbW91bnQvc3dhcG9uLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgdW5zdXBwb3J0ZWQgcHJvZ3JhbSBuYW1lIChtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAtZlxuIgorbXNnc3RyICJ1bW91bnQ6IHByZXZhamFuamUgamUgcG90ZWthbG8gYnJleiBwb2Rwb3JlIHphIC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGhpdHJvc3RpIG5pIG1vZ2/oZSBuYXN0YXZpdGk6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGhpdHJvc3RpIG5pIG1vZ2/oZSBuYXN0YXZpdGk6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJ1bW91bnQ6IHZlaml0ZXYgbmkgbW9nb+hhOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTYwCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGludmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBuZXZlbGphdm5hIGJsb+huYSBuYXByYXZhIgorCisjOiBtb3VudC91bW91bnQuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IG1vdW50ZWQiCittc2dzdHIgInVtb3VudDogJXM6IG5pIHByaWtsb3BsamVuYSIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgInVtb3VudDogJXM6IHN1cGVyYmxva2EgbmkgbW9nb+hlIHphcGlzYXRpIgorCisjOiBtb3VudC91bW91bnQuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVtb3VudDogJXM6IGRldmljZSBpcyBidXN5LlxuIgorIiAgICAgICAgKEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gYWJvdXQgcHJvY2Vzc2VzIHRoYXQgdXNlXG4iCisiICAgICAgICAgdGhlIGRldmljZSBpcyBmb3VuZCBieSBsc29mKDgpIG9yIGZ1c2VyKDEpKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IGZvdW5kIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBuZXVzcGW5bm8gaXNrYW5qZSIKKworIzogbW91bnQvdW1vdW50LmM6MTc1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVtb3VudCIKK21zZ3N0ciAidW1vdW50OiAlczogc2FtbyBzaXN0ZW1za2kgc2tyYm5payBsYWhrbyBvZGtsYXBsamEiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgInVtb3VudDogJXM6IG5hIGRhdC4gc2lzdC4gYmxv6G5lIG5hcHJhdmUgbmlzbyBkb3ZvbGplbmUiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiAlcyIKK21zZ3N0ciAidW1vdW50OiAlczogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1bW91bnQyLCB0cnlpbmcgdW1vdW50Li4uXG4iCittc2dzdHIgIm5pIHVtb3VudDIsIHBvc2t1uWFtIHogdW1vdW50Li4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogJXMgamUgemFwb3NsZW5hIC0gcG9ub3ZubyBwcmlrbGFwbGphbSBzYW1vIHphIGJyYW5qZVxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb3VsZCBub3QgcmVtb3VudCAlcyByZWFkLW9ubHlcbiIKK21zZ3N0ciAidW1vdW50OiBwb25vdm5pIHByaWtsb3AgJXMgc2FtbyB6YSBicmFuamUgbmkgbW9nb+hcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiVzIGplIG9ka2xvcGxqZW5cbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgInVtb3VudDogc2V6bmFtYSBkYXQuIHNpc3QuIHphIG9ka2xvcCBuaSBtb2dv6GUgbmFqdGkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKK21zZ3N0ciAiIgorIlVwb3JhYmE6IHVtb3VudCBbLWhWXVxuIgorIlx0ICB1bW91bnQgLWEgWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgdGlwIG5hdi4gZGF0LiBzaXN0Ll0gWy1PIGl6YmlyZV1cbiIKKyJcdCAgdW1vdW50IFstZl0gWy1yXSBbLW5dIFstdl0gcG9zZWJubyB8IHZvemxpuehlLi4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ2OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJTZWt0b3IgJWQgamUgvmUgZG9kZWxqZW5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJTZWt0b3IgJWQgamUgvmUgZG9kZWxqZW5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDg3CisjLCBmdXp6eQorbXNnaWQgIkNhbm5vdCB1bW91bnQgXCJcIlxuIgorbXNnc3RyICJuaSBtb2dv6GUgb2RrbG9waXRpIFwiXCJcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byB1bW91bnQgJXNcbiIKK21zZ3N0ciAiJXMgcG9za3W5YW0gb2RrbG9waXRpXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAiJXMgbmkgbW9nb+hlIG5hanRpIHYgbXRhYlxuIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICJ1bW91bnQ6ICVzIG5pIHByaWtsb3BsamVuIChnbGVkZSBuYSBtdGFiKSIKKworIzogbW91bnQvdW1vdW50LmM6NTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogaXQgc2VlbXMgJXMgaXMgbW91bnRlZCBtdWx0aXBsZSB0aW1lcyIKK21zZ3N0ciAidW1vdW50OiBpemdsZWRhIGtvdCBkYSBqZSAlcyB2ZehrcmF0IHByaWtsb3BsamVuIgorCisjOiBtb3VudC91bW91bnQuYzo1NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgaW4gdGhlIGZzdGFiIChhbmQgeW91IGFyZSBub3Qgcm9vdCkiCittc2dzdHIgInVtb3VudDogJXMgbmkgdiBmc3RhYiAoaW4gdmkgbmlzdGUgc2lzdGVtc2tpIHNrcmJuaWspIgorCisjOiBtb3VudC91bW91bnQuYzo1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBtb3VudCBkaXNhZ3JlZXMgd2l0aCB0aGUgZnN0YWIiCittc2dzdHIgInVtb3VudDogcHJpa2xvcCAlcyBqZSB2IG5hc3Byb3RqdSB6IGZzdGFiIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogb25seSAlcyBjYW4gdW5tb3VudCAlcyBmcm9tICVzIgorbXNnc3RyICJtb3VudDogc2FtbyBzaXN0ZW1za2kgc2tyYm5payBsYWhrbyBvZGtsb3BpICVzIG5hICVzIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAidW1vdW50OiBzYW1vIHNpc3RlbXNraSBza3JibmlrIG5hcmVkaSB0byIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImNocnQgLSBtYW5pcHVsYXRlIHJlYWwtdGltZSBhdHRyaWJ1dGVzIG9mIGEgcHJvY2Vzcy5cbiIKKyJcbiIKKyJTZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gPHBvbGljeT4gPHByaW9yaXR5PiB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiR2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJcbiIKKyJTY2hlZHVsaW5nIHBvbGljaWVzOlxuIgorIiAgLWIgfCAtLWJhdGNoICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9CQVRDSFxuIgorIiAgLWYgfCAtLWZpZm8gICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9GSUZPXG4iCisiICAtaSB8IC0taWRsZSAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0lETEVcbiIKKyIgIC1vIHwgLS1vdGhlciAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfT1RIRVJcbiIKKyIgIC1yIHwgLS1yciAgICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfUlIgKGRlZmF1bHQpXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwXG4iCisiICAtcCB8IC0tcGlkICAgICAgICAgICBvcGVyYXRlIG9uIGV4aXN0aW5nIGdpdmVuIHBpZFxuIgorIiAgLW0gfCAtLW1heCAgICAgICAgICAgc2hvdyBtaW4gYW5kIG1heCB2YWxpZCBwcmlvcml0aWVzXG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgICBkaXNwbGF5IHN0YXR1cyBpbmZvcm1hdGlvblxuIgorIiAgLVYgfCAtLXZlcnNpb24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIk5ldXNwZblubyB6YXBpc292YW5qZSByYXpkZWxrYSBuYSAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHBvbGljeTogIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjEwOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5rbm93blxuIgorbXNnc3RyICJuZXpuYW5lbSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwcmlvcml0eTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbm90IHN1cHBvcnRlZD9cbiIKK21zZ3N0ciAiTkZTIOhleiBUQ1AgbmkgcG9kcHJ0LlxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHBpZCIKK21zZ3N0ciAiJXM6IG9kcGlyYW5qZSBuaSB1c3BlbG86ICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIyNQorIywgZnV6enkKK21zZ2lkICJjdXJyZW50IgorbXNnc3RyICJuY291bnQiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcHJpb3JpdHkiCittc2dzdHIgIk5ldXNwZblubyB6YXBpc292YW5qZSByYXpkZWxrYSBuYSAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJOZXVzcGW5bm8gemFwaXNvdmFuamUgcmF6ZGVsa2EgbmEgJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCisjLCBmdXp6eQorbXNnaWQgIm5ldyIKK21zZ3N0ciAiTm92YSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAia2xpYyBpb2N0bCgpIG5pIHVzcGVsIHByZWJyYXRpIOhhc2EgaXogJXMiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NTcKKyMsIGZ1enp5Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgbmkgdXNwZWxcbiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorIywgZnV6enkKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBuaSB1c3BlbFxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICJuaSBtb2dv6GUgb2RwcmV0aSAlcyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTEKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBub25lIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTU5Cittc2dpZCAiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3IgaWRsZSBjbGFzcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcHJpbyBjbGFzcyAlZCIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE4NworIywgZnV6enkKK21zZ2lkICJleGVjdnAgZmFpbGVkIgorbXNnc3RyICJ6YWdvbiBuaSB1c3BlbFxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICJaYSBuYXN0YXZpdGV2IG9ibmG5YW5qYSBDdHJsLUFsdC1EZWwgbW9yYXRlIGJpdGkgc2lzdGVtc2tpIHNrcmJuaWsuXG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIlVwb3JhYmE6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiRGF0b3Rla2EgJXMsIFphIHByYWdvdm5vIHZyZWRub3N0ICVsdSwgTmFqdmXoIHpuYWtvdiB2IGZpZm8gamUgYmlsbyAlZCxcbiIKKyJpbiBuYWp2ZehqYSBoaXRyb3N0IHByZW5vc2EgJWYgem5ha292L3Nla3VuZG9cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkRhdG90ZWthICVzLCBaYSBwcmFnb3ZubyB2cmVkbm9zdCAlbHUgaW4gdnJlZG5vc3Qgb2Rtb3JhICVsdSwgTmFqdmXoIHpuYWtvdiAiCisidiBmaWZvIGplIGJpbG8gJWQsXG4iCisiaW4gbmFqdmXoamEgcHJlbm9zbmEgaGl0cm9zdCBqZSBiaWxhICVmIHpuYWtvdi9zZWt1bmRvXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBpbnRlcnZhbCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiTmV2ZWxqYXZuYSB2cmVkbm9zdCBpbnRlcnZhbGE6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdmFsdWU6ICVzXG4iCittc2dzdHIgIk5ldmVsamF2bmEgdnJlZG5vc3QgbmFzdGF2bGphbmphOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiTmV2ZWxqYXZuYSBwcml2emV0YSB2cmVkbm9zdDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJOZXZlbGphdm5hIHZyZWRub3N0IHphIG5hc3Rhdml0ZXYg6GFzYTolc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJOZXZlbGphdm5hIHZyZWRub3N0IHphIHByaXZ6ZXRpIOhhczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstcSBbLWkgaW50ZXJ2YWxdXSAoWy1zIHZhbHVlXXxbLVMgdmFsdWVdKSAoWy10IHZhbHVlXXxbLVQgdmFsdWVdKSAiCisiWy1nfC1HXSBmaWxlIFtmaWxlLi4uXVxuIgorbXNnc3RyICIiCisiVXBvcmFiYTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdnJlZG5vc3RdfFstUyB2cmVkbm9zdF0pIChbLXQgdnJlZG5vc3RdfCIKKyJbLVQgdnJlZG5vc3RdKSBbLWd8LUddIGRhdCBbIGRhdC4uLl1cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiJXMgbmkgbW9nb+hlIG9kcHJldGk6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiJXMgbmkgbW9nb+hlIG5hc3Rhdml0aSBuYSBwcmFnICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aW1lIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiJXMgbmkgbW9nb+hlIG5hc3Rhdml0aSBuYSDoYXNvdm5pIHByYWcgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyOTQgc3lzLXV0aWxzL2N5dHVuZS5jOjM1MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aHJlc2hvbGQgZm9yICVzOiAlc1xuIgorbXNnc3RyICJQcmFndSB6YSAlcyBuaSBtb2dv6GUgZG9iaXRpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzAwIHN5cy11dGlscy9jeXR1bmUuYzozNTcgc3lzLXV0aWxzL2N5dHVuZS5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGltZW91dCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIk9kbW9yYSB6YSAlcyBuaSBtb2dv6GUgZG9iaXRpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3VycmVudCB0aHJlc2hvbGQgYW5kICVsZCBjdXJyZW50IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6IHRyZW51dG5pIHByYWc6ICVsZCwgaW4gdHJlbnV0bmkgb2Rtb3I6ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgZGVmYXVsdCB0aHJlc2hvbGQgYW5kICVsZCBkZWZhdWx0IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6IHByaXZ6ZXRpIHByYWc6ICVsZCwgaW4gcHJpdnpldGkgb2Rtb3I6ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzI3Cittc2dpZCAiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIgorbXNnc3RyICJTaWduYWxuZWdhIHVwcmF2bGphbG5pa2EgbmkgbW9nb+hlIG5hc3Rhdml0aSIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAia2xpYyBnZXR0aW1lb2ZkYXkgbmkgdXNwZWwiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozNDQgc3lzLXV0aWxzL2N5dHVuZS5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBpc3N1ZSBDWUdFVE1PTiBvbiAlczogJXNcbiIKK21zZ3N0ciAiU2lnbmFsYSBDWUdFVE1PTiBuaSBtb2dv6GUgaXpkYXRpIG5hICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdS8lbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6ICVsdSC5dGV2aWwsICVsdS8lbHUgem5ha292OyBmaWZvOiAlbHUgcHJhZywgJWx1IG9kbW9yLCAlbHUgbmFqdmXoLCAlbHUgIgorInRyZW51dG5hXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYguXQuL3NlazsgJWYgc3ByZWpldG8sICVmIHBvc2xhbm8gKHpuYWsvc2VrKVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1ILl0LiwgJWx1IHpuYWtvdiwgZmlmbzogJWx1IHByYWcsICVsdSBvZG1vciwgJWx1IG5hanZl6CwgJWx1ICIKKyJ0cmVudXRuYVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYyAoY2hhci9zZWMpXG4iCittc2dzdHIgIiAgICVmILl0Li9zZWs7ICVmIHNwcmVqZXRpaCAoem5hay9zZWspXG4iCisKKyM6IHN5cy11dGlscy9kbWVzZy5jOjQ1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jXSBbLW4gbGV2ZWxdIFstcl0gWy1zIGJ1ZnNpemVdXG4iCittc2dzdHIgIlVwb3JhYmE6ICVzIFstY10gWy1uIHN0b3BuamFdIFstcyB2ZWxfbWVkcG9tXVxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxmaWxlbmFtZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICJVcG9yYWJhOiAlcyBbaXpiaXJlXSBuYXByYXZhIC4uLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1rZWVwLXNpemUgICAgIGRvbid0IG1vZGlmeSB0aGUgbGVuZ3RoIG9mIHRoZSBmaWxlXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorIiAtbCwgLS1sZW5ndGggPG51bT4gIGxlbmd0aCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBmYWxsb2NhdGUoMSkuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0NworIywgZnV6enkKK21zZ2lkICJubyBsZW5ndGggYXJndW1lbnQgc3BlY2lmaWVkIgorbXNnc3RyICJQcmV2ZeggYXJndW1lbnRvdi5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0OQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGxlbmd0aCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIk5ldmVsamF2bmEgdnJlZG5vc3QgbmFzdGF2bGphbmphOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgb2Zmc2V0IHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiTmV2ZWxqYXZuYSB2cmVkbm9zdCBuYXN0YXZsamFuamE6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKKyMsIGZ1enp5Cittc2dpZCAibm8gZmlsZW5hbWUgc3BlY2lmaWVkLiIKK21zZ3N0ciAiSXpiaXJhIC0tZGF0ZSBuaSBiaWxhIHBvZGFuYS5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3MworbXNnaWQgImtlZXAgc2l6ZSBtb2RlICgtbiBvcHRpb24pIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWxsb2NhdGUgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IG5pIHVzcGVsXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MTkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgcmVxdWlyZXMgZXhhY3RseSBvbmUgY29tbWFuZCBhcmd1bWVudFxuIgorbXNnc3RyICIlcyB6YWh0ZXZhIGFyZ3VtZW50XG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiJXM6ICVzIG5pIG1vZ2/oZSBvZHByZXRpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogc2xhYmEgdnJlZG5vc3RcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZXF1aXJlcyBmaWxlIGRlc2NyaXB0b3IsIGZpbGUgb3IgZGlyZWN0b3J5XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6Mjk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZm9yayBmYWlsZWQ6ICVzXG4iCittc2dzdHIgInZlaml0ZXYgbmkgdXNwZWxhXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICJVcG9yYWJhOiAlcyBbaXpiaXJlXSBuYXByYXZhIC4uLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDIKK21zZ2lkICJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTZWdtZW50IGRlbGplbmVnYSBwb21uaWxuaWthIHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MAorbXNnaWQgImNyZWF0ZSBtZXNzYWdlIHF1ZXVlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJtc3FpZCBzcG9yb+hpbG5lIHZyc3RlID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4CisjLCBmdXp6eQorbXNnaWQgImNyZWF0ZSBzZW1hcGhvcmUgZmFpbGVkIgorbXNnc3RyICJkb2RlbGplbmkgc2VtYWZvcmppID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZW1hcGhvcmUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZW1pZCBQb2xqIHNlbWFmb3JqZXY9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAibmV2ZWxqYXZuaSBpZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlbW92ZSBpZCAlcyAoJXMpXG4iCittc2dzdHIgImlkLWEgJXMgbmkgbW9nb+hlIG9kc3RyYW5pdGkgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJkZXByZWNhdGVkIHVzYWdlOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKK21zZ3N0ciAiemFzdGFyZWxhIHJhYmE6ICVzIHtza3VwX21lZHBvbSB8IHNwb3LobG8gfCBpZF9zZW1mcmphfSBpZCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gcmVzb3VyY2UgdHlwZTogJXNcbiIKK21zZ3N0ciAibmV6bmFuIHZpcjogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAidmlyL2kgc28gemJyaXNhbmlcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiJXM6IG5lZG92b2xqZW5hIGl6YmlyYSAtLSAlY1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwga2V5ICglcylcbiIKK21zZ3N0ciAiJXM6IG5lZG92b2xqZW4ga2xqdeggKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDYgc3lzLXV0aWxzL2lwY3JtLmM6MjM4Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGtleSIKK21zZ3N0ciAiemEga2xqdeggZG9zdG9wIHphbmlrYW4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwOSBzeXMtdXRpbHMvaXBjcm0uYzoyNDgKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQga2V5IgorbXNnc3RyICJrbGp16CBqZSC+ZSBiaWwgb2RzdHJhbmplbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjEyIHN5cy11dGlscy9pcGNybS5jOjI0MworbXNnaWQgImludmFsaWQga2V5IgorbXNnc3RyICJuZXZlbGphdmVuIGtsanXoIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgInYga2xqdeh1IGplIG5lem5hbmEgbmFwYWthICIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjM5Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGlkIgorbXNnc3RyICJ6YSBpZCBqZSBkb3N0b3AgemF2cm5qZW4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0NAorbXNnaWQgImludmFsaWQgaWQiCittc2dzdHIgIm5ldmVsamF2ZW4gaWQiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0OQorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBpZCIKK21zZ3N0ciAiaWQgamUgvmUgb2RzdHJhbmplbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU0Cittc2dpZCAidW5rbm93biBlcnJvciBpbiBpZCIKK21zZ3N0ciAidiBpZCBqZSBuZXpuYW5hIG5hcGFrYSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiVzOiAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIKK21zZ3N0ciAiJXM6IG5lem5hbiBhcmd1bWVudDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2UgOiAlcyAtYXNtcSAtdGNsdXAgXG4iCittc2dzdHIgInVwb3JhYmEgOiAlcyAtYXNtcSAtdGNsdXAgXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorbXNnc3RyICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyAtaCBmb3IgaGVscC5cbiIKK21zZ3N0ciAiXHQlcyAtaCB6YSBwb21v6C5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzIGZvciB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKK21zZ3N0ciAiJXMgcG9udWphIGluZm9ybWFjaWplIG8gaXBjIHBvc2xvcGppaCB6YSBrYXRlcmUgaW1hdGUgYnJhbG5pIGRvc3RvcFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisiU3BlY2lmaWthY2lqYSB2aXJhOlxuIgorIlx0LW0gOiBkZWxqZW5fcG9tXG4iCisiXHQtcSA6IHNwb3Jv6GlsYVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtcyA6IHNlbWFwaG9yZXNcbiIKKyJcdC1hIDogYWxsIChkZWZhdWx0KVxuIgorbXNnc3RyICIiCisiXHQtcyA6IHNlbWFmb3JqaVxuIgorIlx0LWEgOiB2c2UgKHByaXZ6ZXRvKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3V0cHV0IEZvcm1hdDpcbiIKKyJcdC10IDogdGltZVxuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDogY3JlYXRvclxuIgorbXNnc3RyICIiCisiT2JsaWthIEl6aG9kYTpcbiIKKyJcdC10IDog6GFzXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBzdHZhcm5pa1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKyJcdC1sIDogb21laml0dmVcbiIKKyJcdC11IDogcG92emV0ZWtcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICItaSBpZCBbLXMgLXEgLW1dIDogcG9kcm9ibm9zdGkgbyB2aXJ1IHByZXBvem5hbmVtIHBvIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2hhcmVkIG1lbW9yeVxuIgorbXNnc3RyICJ6YSBkZWxqZW4gcG9tbmlsbmlrIGplZHJvIG5pIG5hc3RhdmxqZW5vXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIE9tZWppdHZlIGRlbGplbmVnYSBwb21uaWxuaWthIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBzZWdtZW50cyA9ICVsdVxuIgorbXNnc3RyICJuYWouILl0LiBvZHNla292ID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJuYWouIHZlbGlrb3N0IG9kc2VrYSAoa0IpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAibmFqLiBza3Vwbm8gZGVsamVuZWdhIHBvbS4gKHN0cmFuaSkgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWluIHNlZyBzaXplIChieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAibmFqbWFuai4gdmVsLiBvZHNla2EgKEIpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIFN0YW5qZSBkZWxqZW5lZ2EgcG9tbmlsbmlrYSAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICIlZCBkb2RlbGplbmloIG9kc2Vrb3ZcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgYWxsb2NhdGVkICVsZFxuIgorbXNnc3RyICIlbGQgZG9kZWxqZW5paCBzdHJhbmlcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgcmVzaWRlbnQgICVsZFxuIgorbXNnc3RyICIlbGQgcHJpc290bmloIHN0cmFuaVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgIiVsZCBpem1lbmphbmloIHN0cmFuaVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJTd2FwIHBlcmZvcm1hbmNlOiAlbGQgYXR0ZW1wdHNcdCAlbGQgc3VjY2Vzc2VzXG4iCittc2dzdHIgIlXoaW5rb3ZpdG9zdCBpem1lbmphbG5lZ2EgcHJvc3RvcmE6ICVsZCBwb3NrdXNvdlx0ICVsZCB1c3BluW5paFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIHN0dmFybmlraS9sYXN0bmlraSBkZWxqZW5lZ2EgcG9tbmlsbmm5a2VnYSBvZHNla2EgLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAic2htaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICJkb3ZvbGplbmphIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImN1aWQiCittc2dzdHIgImN1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY2dpZCIKK21zZ3N0ciAiY2dpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJ1aWQiCittc2dzdHIgInVpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJnaWQiCittc2dzdHIgImdpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQXR0YWNoL0RldGFjaC9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLSBEZWxqZW5vIHBvbW5pbG5puWtpIHByaXBldGkvb2RwZXRpL3NwcmVtZW5qZW5pIOhhc2kgLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgImxhc3RuaWsiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiYXR0YWNoZWQiCittc2dzdHIgInByaXBldG8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgIm9kcGV0byIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTUKK21zZ2lkICJjaGFuZ2VkIgorbXNnc3RyICJzcHJlbWVuamVubyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQ3JlYXRvci9MYXN0LW9wIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gU3R2YXJpdGVsaiBkZWxqZW5lZ2EgcG9tbmlsbmlrYSAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiY3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJscGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIFNlZ21lbnRpIGRlbGplbmVnYSBwb21uaWxuaWthIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJrZXkiCittc2dzdHIgImtsanXoIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgImJ5dGVzIgorbXNnc3RyICJiYWp0b3YiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAibmF0dGNoIgorbXNnc3RyICJuYXR0Y2giCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAic3RhdHVzIgorbXNnc3RyICJzdGFuamUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzI5IHN5cy11dGlscy9pcGNzLmM6MzMxIHN5cy11dGlscy9pcGNzLmM6MzMzCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ0NCBzeXMtdXRpbHMvaXBjcy5jOjQ0NiBzeXMtdXRpbHMvaXBjcy5jOjU0NQorIzogc3lzLXV0aWxzL2lwY3MuYzo1NDcgc3lzLXV0aWxzL2lwY3MuYzo1NDkgc3lzLXV0aWxzL2lwY3MuYzo2MDAKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAyIHN5cy11dGlscy9pcGNzLmM6NjMwIHN5cy11dGlscy9pcGNzLmM6NjMyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzNCBzeXMtdXRpbHMvaXBjcy5jOjY1NworbXNnaWQgIk5vdCBzZXQiCittc2dzdHIgIk5lbmFzdGF2bGplbm8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAicG9ub3IiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICJ6YWtsZW5qZW4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2VtYXBob3Jlc1xuIgorbXNnc3RyICJ6YSBzZW1hZm9yamUgamVkcm8gbmkgcHJhdmlsbm8gbmFzdGF2bGplbm9cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLSBPbWVqaXR2ZSBzZW1hZm9yamV2IC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJuYWouILl0LiBwb2xqID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAibmFqLiC5dC4gc2VtYWZvcmpldiBuYSBwb2xqZSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAibmFqLiBzaXN0ZW1za2loIHNlbWFmb3JqZXYgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAibmFqLiC5dC4gb3BlcmFjaWogbmEga2xpYyBzZW1vcCA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbWFwaG9yZSBtYXggdmFsdWUgPSAlZFxuIgorbXNnc3RyICJuYWouIHZyZWRub3N0IHNlbWFmb3JqYSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gU3RhbmplIHNlbWFmb3JqYSAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAidXBvcmFibGplbmEgcG9samEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgc2VtYXBob3JlcyA9ICVkXG4iCittc2dzdHIgImRvZGVsamVuaSBzZW1hZm9yamkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLSBzdHZhcm5pa2kvbGFzdG5pa2kgcG9saiBzZW1hZm9yamV2IC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAic2VtaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLSDIYXNpIG9wZXJhY2lqL3NwcmVtZW1iIGRlbGplbmVnYSBwb21uaWxuaWthIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICJ6YWRuamEtb3AiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1jaGFuZ2VkIgorbXNnc3RyICJ6YWRuamEgc3ByZW1lbWJhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIEFycmF5cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIFNlbWFmb3JuYSBwb2xqYSAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAibnNlbXMiCittc2dzdHIgIrl0c2VtIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIG1lc3NhZ2UgcXVldWVzXG4iCittc2dzdHIgInphIHNwb3Jv6GlsbmUgdnJzdGUgamVkcm8gbmkgcHJhdmlsbm8gbmFzdGF2bGplbm9cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLSBTcG9yb+hpbGE6IE9tZWppdHZlIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm5hai4gc2lzdGVtc2tpaCB2cnN0ID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNpemUgb2YgbWVzc2FnZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAibmFqLiB2ZWxpa29zdCBzcG9yb+hpbGEgKEIpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVmYXVsdCBtYXggc2l6ZSBvZiBxdWV1ZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAibmFqLiBwcml2emV0YSB2ZWxpa29zdCB2cnN0ZSAoQikgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIFNwb3Jv6GlsYTogU3RhbmplIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHF1ZXVlcyA9ICVkXG4iCittc2dzdHIgImRvZGVsamVuZSB2cnN0ZSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk5CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgaGVhZGVycyA9ICVkXG4iCittc2dzdHIgInVwb3JhYmxqZW5lIGdsYXZlID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBzcGFjZSA9ICVkIGJ5dGVzXG4iCittc2dzdHIgInBvcmFibGplbiBwcm9zdG9yID0gJWQgYmFqdG92XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gU3Bvcm/oaWxuYSB2cnN0YTogc3R2YXJuaWtpL2xhc3RuaWtpIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgImlkc3BvcnZyc3QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBTZW5kL1JlY3YvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gyGFzaSBvZGRhamUvc3ByZWplbWEvc3ByZW1lbWJlIHNwb3Jv6GlsbmloIHZyc3QgLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgInBvuWxqaSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJyZWN2IgorbXNnc3RyICJzcHJlam1pIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgImNoYW5nZSIKK21zZ3N0ciAic3ByZW1lbmkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBQSURzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gUElELWkgc3Bvcm/oaWxuaWggdnJzdCAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgImxzcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxycGlkIgorbXNnc3RyICJscnBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0gU3Bvcm/oaWxuZSB2cnN0ZSAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAidXNlZC1ieXRlcyIKK21zZ3N0ciAicG9yYWJsamVuaS1iYWp0aSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAic3Bvcm/oaWxhIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU4OQorIywgZnV6enkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICJmc3luYyBuaSB1c3BlbCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiU2VnbWVudCBkZWxqZW5lZ2EgcG9tbmlsbmlrYSBzaG1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjb1x0YWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJuYehpbj0lI29cdGRvc3RvcF9kb3ZvbGplbmphPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcz0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKK21zZ3N0ciAiYmFqdGk9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgImF0dF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgImF0dF/oYXM9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiZGV0X+hhcz0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMyBzeXMtdXRpbHMvaXBjcy5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICLoYXNfc3ByZW1lbWJlPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE1CisjLCBmdXp6eQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgImZzeW5jIG5pIHVzcGVsIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisibXNxaWQgc3Bvcm/oaWxuZSB2cnN0ZSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRtb2RlPSUjb1xuIgorbXNnc3RyICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICJjYnl0ZXM9JWxkXHRxYnl0ZXM9JWxkXHRxbnVtPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJvZGRham5pX+hhcz0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJzcHJlamVtbmlf6GFzPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjQ4IHN5cy11dGlscy9pcGNzLmM6NjcwCisjLCBmdXp6eQorbXNnaWQgInNlbWN0bCBmYWlsZWQiCittc2dzdHIgImlza2FuamUgamUgYmlsbyBuZXVzcGW5bm8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZW1hcGhvcmUgQXJyYXkgc2VtaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorInNlbWlkIFBvbGogc2VtYWZvcmpldj0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJuYehpbj0lI28sIGRvc3RvcF9kb3ZvbGplbmphPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJuc2VtcyA9ICVsZFxuIgorbXNnc3RyICK5dHNlbSA9ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJvdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgIm90aW1lID0gJS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJjdGltZSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAic2VtbnVtIgorbXNnc3RyICK5dHNlbSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAidnJlZG5vc3QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAibmNvdW50IgorbXNnc3RyICJuY291bnQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICJ6Y291bnQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAicGlkIgorbXNnc3RyICJwaWQiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBzcGVlZDogJXMiCittc2dzdHIgIm5ldmVsamF2bmkgaWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGRhdHRhY2ggZnJvbSAlc1xuIgorbXNnc3RyICIlcyBpeiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxODQgdGV4dC11dGlscy90YWlsZi5jOjIwNgorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAibmV2ZWxqYXZlbiBpZCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGxpbmUgZGlzY2lwbGluZTogJXMiCittc2dzdHIgIm5ldmVsamF2bmkgaWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiCittc2dzdHIgIiVzIG5pIHBvc2VibmEgYmxv6G5hIG5hcHJhdmEiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAibmkgbW9nb+hlIGRvYml0aSB2ZWxpa29zdGkgJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIm5pIG1vZ2/oZSBkb2JpdGkgdmVsaWtvc3RpICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgIklza2FuamUgbmEgZGlza3UgbmkgbW9nb+hlIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTcKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IGRhZW1vbml6ZSIKK21zZ3N0ciAibmkgbW9nb+hlIGRvYml0aSB2ZWxpa29zdGkgJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0CisjLCBmdXp6eQorbXNnaWQgIm5vbmUiCittc2dzdHIgIkJyZXoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1Cittc2dpZCAicGFyYSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NgorbXNnaWQgImZ1bGwiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTM3IHN5cy11dGlscy9sc2NwdS5jOjE2MCBzeXMtdXRpbHMvbHNjcHUuYzo0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlcyIKK21zZ3N0ciAibmFwYWthIFJFOiAiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcGFyc2U6ICVzIgorbXNnc3RyICJuYXBha2EgcHJpIGJyYW5qdSAlc1xuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgIk9kcGlyYW5qZSAlcyBuaSB1c3BlbG8iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjI2NworIywgZnV6enkKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICIiCisiXG4iCisiTmFwYWthIHByaSB6YXBpcmFuanUgZGF0b3Rla2VcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTA2CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBtYWxsb2MgZmFpbGVkIgorbXNnc3RyICJtYWxsb2MgbmkgdXNwZWwiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXJcbiIKKyIjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElEXG4iCisiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisiIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKK21zZ2lkICJDUFUgb3AtbW9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI1Cittc2dpZCAiVGhyZWFkKHMpIHBlciBjb3JlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzUKK21zZ2lkICJDUFUgZmFtaWx5OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzcKK21zZ2lkICJNb2RlbDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKKyMsIGZ1enp5Cittc2dpZCAiVmlydHVhbGl6YXRpb246IgorbXNnc3RyICJTdGFybyBzdGFuamU6XG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIlVwb3JhYmE6ICVzIFtpemJpcmVdIG5hcHJhdmEgLi4uXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2OQorbXNnaWQgIiIKKyJDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGhlbHBlclxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuXG4iCisiICAtcywgLS1zeXNyb290ICB1c2UgdGhlIGRpcmVjdG9yeSBhcyBhIG5ldyBzeXN0ZW0gcm9vdC5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiBjaGFuZ2Ugd29ya2luZyBkaXJlY3RvcnkgdG8gJXMuIgorbXNnc3RyICJOYXBha2EgcHJpIHNwcmVtaW5qYW5qdSBuYehpbmEgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzcKK21zZ2lkICJ1c2FnZTogcmRldiBbIC1ydiBdIFsgLW8gT0ZGU0VUIF0gWyBJTUFHRSBbIFZBTFVFIFsgT0ZGU0VUIF0gXSBdIgorbXNnc3RyICJ1cG9yYWJhOiByZGV2IFsgLXJ2IF0gWyAtbyBPRE1JSyBdIFsgU0xJS0EgWyBWUkVETk9TVCBbIE9ETUlLIF0gXSBdIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc4Cittc2dpZCAiIgorIiAgcmRldiAvZGV2L2ZkMCAgKG9yIHJkZXYgL2xpbnV4LCBldGMuKSBkaXNwbGF5cyB0aGUgY3VycmVudCBST09UIGRldmljZSIKK21zZ3N0ciAiIgorIiAgcmRldiAvZGV2L2ZkMCAoYWxpIHJkZXYgL2xpbnV4LCBpdG4uKSBwcmlrYb5lIHRyZW51dG5vIGtvcmVuc2tvIG5hcHJhdm8iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiIgorIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBuYXN0YXZpIGtvcmVuc2tvIG5hcHJhdm8gbmEgL2Rldi9oZGEyIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgwCittc2dpZCAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgUk9PVEZMQUdTIChyZWFkb25seSBzdGF0dXMpIgorbXNnc3RyICIiCisiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIG5hc3Rhdmkga29yLiB6YXN0YXZpY2UgKHNhbW8gemEgYnJhbmplKSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MQorbXNnaWQgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBzZXQgdGhlIFJBTURJU0sgc2l6ZSIKK21zZ3N0ciAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIG5hc3RhdmkgdmVsaWtvc3QgcG9tLiBkaXNrYSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiAgcmRldiAtdiAvZGV2L2RmMCAxICAgICAgICAgICAgICBuYXN0YXZpIHphZ29uc2tpIGdyYWZp6G5pIG5h6GluIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgzCittc2dpZCAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHVzZSB0aGUgYnl0ZSBvZmZzZXQgTiIKK21zZ3N0ciAiICByZGV2IC1vIE4uIC4uLiAgICAgICAgICAgICAgICAgdXBvcmFiaSBiYWp0bmkgb2RtaWsgTiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBlbmFrbyBrb3QgcmRldiAtUiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NQorbXNnaWQgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXIiCittc2dzdHIgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBlbmFrbyBrb3QgcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBlbmFrbyBrb3QgcmRldiAtdiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisiT3BvbWJhOiBncmFmaehuaSBuYehpbmkgc286IC0zPVZwcmG5YWosIC0yPVJherlpcmplbiwgLTE9TmF2YWRuaVZHQSwgIgorIjE9a2xqdegxLCAyPWtsanXoMiwuLi4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODgKK21zZ2lkICIgICAgICB1c2UgLVIgMSB0byBtb3VudCByb290IHJlYWRvbmx5LCAtUiAwIGZvciByZWFkL3dyaXRlLiIKK21zZ3N0ciAiIgorIiAgICAgdXBvcmFiaSAtUiAxIHphIHByaWtsb3Aga29yZW5za2UgbmFwcmF2ZSB2IG5h6GludSBzYW1vIHphIGJyYW5qZSwgLVIgMCAiCisicGEgemEgYnJhbmplL3Bpc2FuamUiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAidmVqaWNhIG1hbmprYSIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NzIgdGV4dC11dGlscy9tb3JlLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIm91dCBvZiBtZW1vcnkiCittc2dzdHIgInptYW5qa2FsbyBqZSBwb21uaWxuaWthIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogXCIlcyBbb3B0aW9uc11cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChkZWZhdWx0czogXCIlc1wiIGFuZFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAoZGVmYXVsdDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgc2V0IHRoZSBwcm9maWxpbmcgbXVsdGlwbGllciB0byA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorIlx0IC12ICAgICAgICAgICAgcHJpbnQgdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICBwcmludCBhbGwgc3ltYm9scywgZXZlbiBpZiBjb3VudCBpcyAwXG4iCisiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgIHJlc2V0IGFsbCB0aGUgY291bnRlcnMgKHJvb3Qgb25seSlcbiIKKyJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorIlx0IC1WICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorbXNnc3RyICIiCisiJXM6IFVwb3JhYmE6IFwiJXMgW2l6YmlyZV1cbiIKKyJcdCAtbSA8cHJlc2xpa2RhdD4gKHByaXZ6ZXRhOiBcIiVzXCIgaW5cbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZGF0PiAocHJpdnpldG86IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgbmFzdGF2aSBwcm9maWxuaSB2ZehrcmF0bmlrIG5hIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICBpenBpuWkgaW5mb3JtYWNpamUgbyB2em9y6G5lbSBrb3Jha3VcbiIKKyJcdCAtdiAgICAgICAgICAgcG9kYXRrZSBpenBpuWkgZ29zdG9iZXNlZG5vXG4iCisiXHQgLWEgICAgICAgICAgIGl6cGm5aSB2c2Ugc2ltYm9sZSwgdHVkaSDoZSBqZSBwcmW5dGV2ZWsgMFxuIgorIlx0IC1iICAgICAgICAgICBpenBpuWkgc2Ftb3N0b2puZSBoaXN0b2dyYW1za2UgcHJluXRldmtlXG4iCisiXHQgLXMgICAgICAgICAgIGl6cGm5aSBzYW1vc3Rvam5lIHByZbl0ZXZrZSB6bm90cmFqIGZ1bmtjaWpcbiIKKyJcdCAtciAgICAgICAgICAgcG9ub3ZubyBuYXN0YXZpIHZzZSC5dGV2Y2UgKGxhaGtvIHNhbW8gc2tyYm5paylcbiIKKyJcdCAtbiAgICAgICAgICAgb25lbW9nb+hpIHNhbW96YXpuYXZvIGJhanRuZWdhIHJlZGFcbiIKKyJcdCAtViAgICAgICAgICAgaXpwablpIHJhemxp6GljbyBpbiBpemhvZFxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJtb3VudDogbmFwYWthIHByaSBwaXNhbmp1IG5hICVzOiAlcyIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuIFVzZSAtbiB0byBmb3JjZSBuYXRpdmUgYnl0ZSBvcmRlci5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiVnpvcuhuaV9rb3JhazogJWlcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzA1IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMoJWkpOiB3cm9uZyBtYXAgbGluZVxuIgorbXNnc3RyICIlczogJXMoJWkpOiBuYXBh6G5hIHByZXNsaWtvdmFsbmEobWFwKSB2cnN0aWNhXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBcIl9zdGV4dFwiIGluICVzXG4iCittc2dzdHIgIiVzOiBcIl9zdGV4dFwiIG5pIG1vZ2/oZSBuYWp0aSB2ICVzXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcHJvZmlsZSBhZGRyZXNzIG91dCBvZiByYW5nZS4gV3JvbmcgbWFwIGZpbGU/XG4iCittc2dzdHIgIiVzOiBwcm9maWwgbmFzbG92YSBqZSBpenZlbiBkb21ldGEuIE5hcGHobmEgcHJlc2xpay4obWFwKSBkYXQuP1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo0MTIKK21zZ2lkICJ0b3RhbCIKK21zZ3N0ciAic2t1cG5vIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSBbLXB8LS1waWRdIHBpZCAgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtZ3wtLXBncnAgcGdycCBbLi4uIHBncnBdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtdXwtLXVzZXIgdXNlciBbLi4uIHVzZXJdXG4iCisiIHJlbmljZSAtaCB8IC0taGVscFxuIgorIiByZW5pY2UgLXYgfCAtLXZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlbmljZSBmcm9tICVzXG4iCittc2dzdHIgIiVzIGl6ICVzXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogdW5rbm93biB1c2VyXG4iCittc2dzdHIgInJlbmljZTogJXM6IG5lem5hbiB1cG9yYWJuaWtcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEzNAorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAicmVuaWNlOiAlczogbmVwcmF2aWxuYSB2cmVkbm9zdFxuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTUyIHN5cy11dGlscy9yZW5pY2UuYzoxNjQKK21zZ2lkICJnZXRwcmlvcml0eSIKK21zZ3N0ciAiZG9iaXByaW9yaXRldG8iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTcKK21zZ2lkICJzZXRwcmlvcml0eSIKK21zZ3N0ciAibmFzdGF2aXByaW9yaXRldG8iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQ6IG9sZCBwcmlvcml0eSAlZCwgbmV3IHByaW9yaXR5ICVkXG4iCittc2dzdHIgIiVkOiBzdGFyYSBwcmlvcml0ZXRhICVkLCBub3ZhIHByaW9yaXRldGEgJWRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0NworbXNnaWQgInJlYWQgc3lzdGVtIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI0Cittc2dpZCAic2V0IHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyOAorbXNnaWQgImVuYWJsZSBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMzIKK21zZ2lkICJzZXQgcnRjIHdha2UgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIiAlczogbmVwcmVwb3puYW4gdGlwIHRhYmVsZSByYXpkZWxrb3YiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBpbnRlcnZhbCAlcyBzZWNvbmRzXG4iCittc2dzdHIgIiVzOiBuZWRvdm9samVuIGtsanXoICglcylcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIHRpbWVfdCB2YWx1ZSAlc1xuIgorbXNnc3RyICIlczogbmVkb3ZvbGplbmEgaXpiaXJhIC0tICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIlcyByYXpsaehpY2EgJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGFzc3VtaW5nIFJUQyB1c2VzIFVUQyAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgVVRDIHRpbWUuXG4iCittc2dzdHIgIlVwb3JhYmxqYW0gJXMuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICJVcG9yYWJsamFtICVzLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3CisjLCBmdXp6eQorbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jIG5pIHVzcGVsIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iCittc2dzdHIgIiVzOiAlcyBuaSBscCBuYXByYXZhLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIlNwb3Jv6GlsbyBpeiAlc0AlcyBuYSAlcyBwcmkgJXMgLi4uIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICJuaSBtb2dv6GUgcHJlaW1lbm92YXRpICVzIHYgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDk2CisjLCBmdXp6eQorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICIsIHByaXByYXZsamVuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjUwNQorbXNnaWQgImRpc2FibGUgcnRjIGFsYXJtIGludGVycnVwdCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGluZyBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzJXMgW29wdGlvbnNdIFtwcm9ncmFtIFtwcm9ncmFtIGFyZ3VtZW50c11dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAtdiwgLS12ZXJib3NlICAgICAgICAgICAgc2F5cyB3aGF0IG9wdGlvbnMgYXJlIGJlaW5nIHN3aXRjaGVkIG9uXG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplICBkaXNhYmxlcyByYW5kb21pemF0aW9uIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3MgIgorInNwYWNlXG4iCisiIC1GLCAtLWZkcGljLWZ1bmNwdHJzICAgICBtYWtlcyBmdW5jdGlvbiBwb2ludGVycyBwb2ludCB0byBkZXNjcmlwdG9yc1xuIgorIiAtWiwgLS1tbWFwLXBhZ2UtemVybyAgICAgdHVybnMgb24gTU1BUF9QQUdFX1pFUk9cbiIKKyIgLUwsIC0tYWRkci1jb21wYXQtbGF5b3V0IGNoYW5nZXMgdGhlIHdheSB2aXJ0dWFsIG1lbW9yeSBpcyBhbGxvY2F0ZWRcbiIKKyIgLVgsIC0tcmVhZC1pbXBsaWVzLWV4ZWMgIHR1cm5zIG9uIFJFQURfSU1QTElFU19FWEVDXG4iCisiIC1CLCAtLTMyYml0ICAgICAgICAgICAgICB0dXJucyBvbiBBRERSX0xJTUlUXzMyQklUXG4iCisiIC1JLCAtLXNob3J0LWlub2RlICAgICAgICB0dXJucyBvbiBTSE9SVF9JTk9ERVxuIgorIiAtUywgLS13aG9sZS1zZWNvbmRzICAgICAgdHVybnMgb24gV0hPTEVfU0VDT05EU1xuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgdHVybnMgb24gU1RJQ0tZX1RJTUVPVVRTXG4iCisiIC0zLCAtLTNnYiAgICAgICAgICAgICAgICBsaW1pdHMgdGhlIHVzZWQgYWRkcmVzcyBzcGFjZSB0byBhIG1heGltdW0gb2YgMyAiCisiR0JcbiIKKyIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGlnbm9yZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVzXG4iCisiVHJ5IGAlcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJQb3NrdXNpdGUgYGdldG9wdCAtLWhlbHAnIHphIHZl6CBpbmZvcm1hY2lqLlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjIxNSBzeXMtdXRpbHMvc2V0YXJjaC5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVucmVjb2duaXplZCBhcmNoaXRlY3R1cmUiCittc2dzdHIgIiAlczogbmVwcmVwb3puYW4gdGlwIHRhYmVsZSByYXpkZWxrb3YiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2CisjLCBmdXp6eQorbXNnaWQgIk5vdCBlbm91Z2ggYXJndW1lbnRzIgorbXNnc3RyICJQcmV2ZeggYXJndW1lbnRvdi5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNjUgc3lzLXV0aWxzL3NldGFyY2guYzozMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBzZXQgcGVyc29uYWxpdHkgdG8gJXMiCittc2dzdHIgIk5ldXNwZblubyB6YXBpc292YW5qZSByYXpkZWxrYSBuYSAlc1xuIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgInVwb3JhYmE6ICVzIHByb2dyYW0gW2l6YmlyYSAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisiVXBvcmFiYTogJXMgPG5hcHJhdmE+IFsgLWkgPElSUT4gfCAtdCA8yEFTPiB8IC1jIDxaTkFLST4gfCAtdyA8yEFLQUo+IHwgXG4iCisiICAgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8XG4iCisiICAgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6OTEKK21zZ2lkICJtYWxsb2MgZXJyb3IiCittc2dzdHIgIm5hcGFrYSB2IG1hbGxvYyIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiVzOiBzbGFiYSB2cmVkbm9zdFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgYW4gbHAgZGV2aWNlLlxuIgorbXNnc3RyICIlczogJXMgbmkgbHAgbmFwcmF2YS5cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdGF0dXMgaXMgJWQiCittc2dzdHIgIiVzIHN0YW5qZSBqZSAlZCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiwgemFwb3NsZW4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCBwcmlwcmF2bGplbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG91dCBvZiBwYXBlciIKK21zZ3N0ciAiLCBwYXBpcmphIGplIHptYW5qa2FsbyIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICIsIG9uLWxpbmUiCittc2dzdHIgIiwgcG92ZXphbm8iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCBuYXBha2EiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAibmFwYWthIHByaSBMUEdFVElSUSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBJUlEgJWRcbiIKK21zZ3N0ciAiJXMgdXBvcmFibGphIElSUSAlZFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMgdXBvcmFibGphIGdsYXNvdmFuamVcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgInVwb3JhYmE6ICVzIHByb2dyYW0gW2l6YmlyYSAuLi5dXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjAKK21zZ2lkICIiCisiUnVuIHByb2dyYW0gd2l0aCBzb21lIG5hbWVzcGFjZXMgdW5zaGFyZWQgZnJvbSBwYXJlbnRcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgdW5zaGFyZSBtb3VudHMgbmFtZXNwYWNlXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIFVUUyBuYW1lc3BhY2UgKGhvc3RuYW1lIGV0YylcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorIiAgLW4sIC0tbmV0ICAgICAgICAgdW5zaGFyZSBuZXR3b3JrIG5hbWVzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdW5zaGFyZSgxKS5cbiIKK21zZ3N0ciAiRmluZ2VyIGluZm9ybWFjaWphIHNwcmVtZW5qZW5hLlxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExNAorIywgZnV6enkKK21zZ2lkICJ1bnNoYXJlIGZhaWxlZCIKK21zZ3N0ciAiaXNrYW5qZSBqZSBiaWxvIG5ldXNwZblubyIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJ6YWdvbiBuaSB1c3BlbFxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IGJhZCAtbCBhcmd1bWVudCAlcy5cbiIKK21zZ3N0ciAiY29sOiBzbGFiIGFyZ3VtZW50IC1sOiAlcy5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKK21zZ3N0ciAidXBvcmFiYTogY29sIFstYmZweF0gWy1sILl0bGluaWplXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdyaXRlIGVycm9yLlxuIgorbXNnc3RyICJjb2w6IHBpc2FsbmEgbmFwYWthLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdhcm5pbmc6IGNhbid0IGJhY2sgdXAgJXMuXG4iCittc2dzdHIgImNvbDogb3Bvem9yaWxvOiB2YXJub3N0bm8ga29waXJhbmplICVzIG5pIG1vZ2/oZS5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICJwYXN0IGZpcnN0IGxpbmUiCittc2dzdHIgInphIHBydm8gdnJzdGljbyIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0gdnJzdGljYSBqZSC+ZSBzcGxha25qZW5hIgorCisjOiB0ZXh0LXV0aWxzL2NvbGNydC5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC0gXSBbIC0yIF0gWyBmaWxlIC4uLiBdXG4iCittc2dzdHIgInVwb3JhYmE6ICVzIFsgLSBdIFsgLTIgXSBbIGRhdCAuLi4gXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgInZyc3RpY2EgamUgcHJlZG9sZ2EiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAidXBvcmFiYTogY29sdW1uIFstdHhdIFstYyBzdG9scGVjXSBbZGF0IC4uLl1cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgbGVuZ3RoIHZhbHVlLlxuIgorbXNnc3RyICJoZXhkdW1wOiBzbGFiYSB2cmVkbm9zdCBkb2y+aW5lLlxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBza2lwIHZhbHVlLlxuIgorbXNnc3RyICJoZXhkdW1wOiBzbGFiYSB2cmVkbm9zdCBwcmVza29rYS5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgb2JsaWthXSBbLWYgb2Jsa19kYXRdIFstbiBkb2y+aW5hXSBbLXMgcHJlc2tva10gIgorIltkYXQgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSBuYW1lMSBuYW1lMiAuLi5cbiIKK21zZ3N0ciAidXBvcmFiYTogJXMgWy1kZmxwY3N1XSBbK3Zyc3RpY2EgfCArL3Z6b3JlY10gaW1lMSBpbWUyIC4uLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyOTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBpbml0aWFsaXplIGxpbmUgYnVmZmVyXG4iCittc2dzdHIgIlphIG1lZHBvbW5pbG5payBuaSBtb2dv6GUgZG9kZWxpdGkgcG9tbmlsbmlrYS5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBvcHRpb24gXCItJWNcIlxuIgorbXNnc3RyICIlczogbmV6bmFuYSBtb75ub3N0IFwiLSVjXCJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczogaW1lbmlrICoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKioqKioqICVzOiBOb3QgYSB0ZXh0IGZpbGUgKioqKioqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKioqKioqICVzOiBOaSB6bmFrb3ZuYSBkYXRvdGVrYSAqKioqKioqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo2NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1VzZSBxIG9yIFEgdG8gcXVpdF0iCittc2dzdHIgIltaYSBpemhvZCB1cG9yYWJpdGUgcSBhbGkgUV0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICItLU1vcmUtLSIKK21zZ3N0ciAiLS1OYXByZWotLSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIihOZXh0IGZpbGU6ICVzKSIKK21zZ3N0ciAiKE5hc2xlZG5qYSBkYXRvdGVrYTogJXMpIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzIHNwYWNlIHRvIGNvbnRpbnVlLCAncScgdG8gcXVpdC5dIgorbXNnc3RyICJbUHJpdGlzbml0ZSBwcmVzbGVkbmljbyB6YSBuYWRhbGpldmFuamUsIFEgemEgaXpob2QuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi5uYXphaiB6YSAlZCBzdHJhbmkiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiLi4ubmF6YWogemEgZW5vIHN0cmFuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUxCittc2dpZCAiLi4uc2tpcHBpbmcgb25lIGxpbmUiCittc2dzdHIgIi4uLnByZXNrb2sgdnJzdGljZSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MworIywgYy1mb3JtYXQKK21zZ2lkICIuLi5za2lwcGluZyAlZCBsaW5lcyIKK21zZ3N0ciAiLi4ucHJlc2tvayAlZCB2cnN0aWMiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqTmF6YWoqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMyOAorbXNnaWQgIiIKKyJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgRGVmYXVsdHMgaW4gIgorImJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisiXG4iCisiVmXoaW5pIHVrYXp2IHNlIGxhaGtvIGRvZGEgY2Vsb7l0ZXZpbHNraSBhcmd1bWVudCBrLiBQcml2emV0byB2IG9rbGVwYWppaC5cbiIKKyJadmV6ZGljYSAoKikgcG9tZW5pLCBkYSBibyBhcmd1bWVudCBvZCBzZWRhaiBuYXByZWogcHJpdnpldC5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMzNQorbXNnaWQgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIKK21zZ3N0ciAiIgorIjxwcmVzbGVkbmljYT4gICAgICAgICAgIFByaWthvmkgbmFzbGVkbmppaCBrIHZyc3RpYyBiZXNlZGlsYSBbdHJlbnV0bmEgIgorInZlbGlrb3N0IHphc2xvbmFdXG4iCisieiAgICAgICAgICAgICAgICAgICAgICAgUHJpa2G+aSBuYXNsZWRuamloIGsgdnJzdGljIGJlc2VkaWxhIFt0cmVudXRuYSAiCisidmVsaWtvc3QgemFzbG9uYV1cbiIKKyI8ZW50ZXI+ICAgICAgICAgICAgICAgICBQcmlrYb5pIG5hc2xlZG5qaWggayB2cnN0aWMgYmVzZWRpbGEgWzFdKlxuIgorImQgYWxpIGN0cmwtZCAgICAgICAgICAgIFBvbWFrbmkgc2UgemEgayB2cnN0aWMgW3RyZW51dG5hIHBvbWnobmEgaGl0cm9zdCwgIgorInBvbmF2YWRpIDExXSpcbiIKKyJxLCBRIGFsaSA8cHJla2luaXRldj4gICBQcmVraW5pIGl6cGlzXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgUHJlc2tv6GkgayB2cnN0aWMgYmVzZWRpbGEgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgUHJlc2tv6GkgayB6YXNsb25vdiBiZXNlZGlsYSBbMV1cbiIKKyJiIGFsaSBjdHJsLUIgICAgICAgICAgICBQcmVrb+hpIGsgemFzbG9ub3YgYmVzZWRpbGEgbmF6YWogWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgUG9qZGkgbmEgcHJvc3RvciB6YehldGthIHByZWq5bmplZ2EgaXNrYW5qYVxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIFByaWthvmkguXRldmlsa28gdnJzdGljZVxuIgorIi88cmVndWxhcm5pIGl6cmF6PiAgICAgIFBvabnoaSBrLXRvIHBvamF2aXRldiByZWd1bGFybmVnYSBpenJhemEgWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgUG9puehpIGstdG8gcG9qYXZpdGV2IHphZG5qZWdhIHJlZy4gaXpyYXphIFsxXVxuIgorIiE8dWthej4gYWxpIDohPHVrYXo+ICAgIFphvmVuaSB1a2F6IHYgcG9kbHVwaW5pXG4iCisidiAgICAgICAgICAgICAgICAgICAgICAgWmG+ZW5pIC91c3IvYmluL3ZpIG5hIHRyZW51dG5pIHZyc3RpY2lcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBPc3ZlvmkgemFzbG9uXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgUG9qZGkgbmEgay10byBkYXRvdGVrbyB6YSB0cmVudXRubyBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBQb2ppZCBuYSBrLXRvIGRhdG90ZWthIHByZWQgdHJlbnV0bm8gWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgUHJpa2G+aSBpbWUgdHJlbnV0bmUgZGF0b3Rla2UgaW4guXRldmlsa28gdnJzdGljZVxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFBvbm92aSBwcmVquW5qaSB1a2F6XG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0MDQgdGV4dC11dGlscy9tb3JlLmM6MTQwOQorIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3MgJ2gnIGZvciBpbnN0cnVjdGlvbnMuXSIKK21zZ3N0ciAiW1ByaXRpc25pdGUgJ2gnIHphIG5hdm9kaWxhLl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIlwiJXNcIiB2cnN0aWNhICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbTmkgZGF0b3Rla2FdIHZyc3RpY2EgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiAgUHJla29yYehpdGV2XG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIuLi5wcmVza29rXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MDUKK21zZ2lkICJSZWd1bGFyIGV4cHJlc3Npb24gYm90Y2giCittc2dzdHIgIktycGEgcmVndWxhcm5lZ2EgaXpyYXphIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjEzCittc2dpZCAiIgorIlxuIgorIlBhdHRlcm4gbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWem9yY2EgbmkgbW/oIG5hanRpXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAiVnpvcmNhIG5pIG1v6CBuYWp0aSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTY3NworbXNnaWQgImNhbid0IGZvcmtcbiIKK21zZ3N0ciAidmVqaXRldiBuaSBtb2dv6GFcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKyJcbiIKKyIuLi4gUHJlc2tvayAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiLi4uIFByZXNrb2sgbmEgZGF0b3Rla28gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAiLi4uIFByZXNrb2sgbmF6YWogbmEgZGF0b3Rla28gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiVnJzdGljYSBqZSBwcmVkb2xnYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIlphcmFkaSBuZW9ic3RvamXoZWdhIHByZWq5bmplZ2EgdWthemEgemFtZW5qYXZhIG5pIG1vZ2/oYSIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJvZDogb2QoMSkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgaGV4ZHVtcCgxKS5cbiIKK21zZ3N0ciAib2Q6IG9kKDEpIGplIG5hZG9tZbnoZW4gcyBwcm9ncmFtb20gaGV4ZHVtcCgxKS5cbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJvZDogaGV4ZHVtcCgxKSBjb21wYXRpYmlsaXR5IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLSVjIG9wdGlvbiVzXG4iCittc2dzdHIgIm9kOiBoZXhkdW1wKDEpIG5lIHBvZHBpcmEgaXpiaXJlIC0lYyBpemJpciVzXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzQKK21zZ2lkICI7IHNlZSBzdHJpbmdzKDEpLiIKK21zZ3N0ciAiOyBnbGVqdGUgc3RyaW5ncygxKS4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBicmFuamUgJXMgbmkgbW9nb+hlLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogdnJzdGljYSBqZSBwcmVkb2xnYS5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICJoZXhkdW1wOiC5dGV2ZWMgYmFqdG92IGplIG5hdmVkZW4geiB2ZehrcmF0bmltaSBwcmV0dm9ybmltaSB6bmFraS5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgYnl0ZSBjb3VudCBmb3IgY29udmVyc2lvbiBjaGFyYWN0ZXIgJXMuXG4iCittc2dzdHIgImhleGR1bXA6IHNsYWIguXRldmVjIGJhanRvdiB6YSBwcmV0dm9ybmkgem5hayAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiAlJXMgcmVxdWlyZXMgYSBwcmVjaXNpb24gb3IgYSBieXRlIGNvdW50LlxuIgorbXNnc3RyICJoZXhkdW1wOiAlJXMgemFodGV2YSBib2Rpc2kgbmF0YW7obm9zdCBib2Rpc2kguXRldmVjIGJhanRvdi5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDogc2xhYmEgb2JsaWthIFslc11cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogc2xhYiBwcmV0dm9ybmkgem5hayAlJSVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ1Cittc2dpZCAiIgorIkFsbCByaWdodHMgcmVzZXJ2ZWQuXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIiAgaCAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBzY3JlZW5cbiIKKyIgIHEgb3IgUSAgICAgICAgICAgICAgICAgIHF1aXQgcHJvZ3JhbVxuIgorIiAgPG5ld2xpbmU+ICAgICAgICAgICAgICAgbmV4dCBwYWdlXG4iCisiICBmICAgICAgICAgICAgICAgICAgICAgICBza2lwIGEgcGFnZSBmb3J3YXJkXG4iCisiICBkIG9yIF5EICAgICAgICAgICAgICAgICBuZXh0IGhhbGZwYWdlXG4iCisiICBsICAgICAgICAgICAgICAgICAgICAgICBuZXh0IGxpbmVcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgcGFnZVxuIgorIiAgL3JlZ2V4LyAgICAgICAgICAgICAgICAgc2VhcmNoIGZvcndhcmQgZm9yIHJlZ2V4XG4iCisiICA/cmVnZXg/IG9yIF5yZWdleF4gICAgICBzZWFyY2ggYmFja3dhcmQgZm9yIHJlZ2V4XG4iCisiICAuIG9yIF5MICAgICAgICAgICAgICAgICByZWRyYXcgc2NyZWVuXG4iCisiICB3IG9yIHogICAgICAgICAgICAgICAgICBzZXQgcGFnZSBzaXplIGFuZCBnbyB0byBuZXh0IHBhZ2VcbiIKKyIgIHMgZmlsZW5hbWUgICAgICAgICAgICAgIHNhdmUgY3VycmVudCBmaWxlIHRvIGZpbGVuYW1lXG4iCisiICAhY29tbWFuZCAgICAgICAgICAgICAgICBzaGVsbCBlc2NhcGVcbiIKKyIgIHAgICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIHByZXZpb3VzIGZpbGVcbiIKKyIgIG4gICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIG5leHQgZmlsZVxuIgorIlxuIgorIk1hbnkgY29tbWFuZHMgYWNjZXB0IHByZWNlZGluZyBudW1iZXJzLCBmb3IgZXhhbXBsZTpcbiIKKyIrMTxuZXdsaW5lPiAobmV4dCBwYWdlKTsgLTE8bmV3bGluZT4gKHByZXZpb3VzIHBhZ2UpOyAxPG5ld2xpbmU+IChmaXJzdCAiCisicGFnZSkuXG4iCisiXG4iCisiU2VlIHBnKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiWm1hbmprYWxvIGplIHBvbW5pbG5pa2EiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKyIlczogVXBvcmFiYTogJXMgWy25dGV2aWxvXSBbLXAgbml6XSBbLWNlZm5yc10gWyt2cnN0aWNhXSBbKy92em9yZWMvXSAiCisiW2RhdG90ZWtlXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IGl6YmlyYSB6YWh0ZXZhIGFyZ3VtZW50IC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVzXG4iCittc2dzdHIgIiVzOiBuZWRvdm9samVuYSBpemJpcmEgLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MAorbXNnaWQgIi4uLnNraXBwaW5nIGZvcndhcmRcbiIKK21zZ3N0ciAiLi4uIHByZXNrb2sgbmFwcmVqXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzIKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIuLi4gcHJlc2tvayBuYXphalxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJOYXNsZWRuamUgZGF0b3Rla2UgbmkiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTgKK21zZ2lkICJObyBwcmV2aW91cyBmaWxlIgorbXNnc3RyICJQcmVquW5qZSBkYXRvdGVrZSBuaSIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IE5hcGFrYSBwcmkgYnJhbmp1IGl6IGRhdG90ZWtlICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuZXhwZWN0ZWQgRU9GIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IE5lcHJp6GFrb3ZhbiBrb25lYyBkYXRvdGVrZSB2ICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogTmV6bmFuYSBuYXBha2EgdiBkYXRvdGVraSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIlczogWmHoYXNuZSBkYXRvdGVrZSBuaSBtb2dv6GUgdXN0dmFyaXRpXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDQ0IHRleHQtdXRpbHMvcGcuYzoxMjE5IHRleHQtdXRpbHMvcGcuYzoxMjQ2Cittc2dpZCAiUkUgZXJyb3I6ICIKK21zZ3N0ciAibmFwYWthIFJFOiAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIihFT0YpIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAiU2hyYW5qZW5lZ2EgaXNrYWxuZWdhIG5pemEgbmkiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICJOaSBtb2dv6GUgb2RwcmV0aSAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzU4Cittc2dpZCAic2F2ZWQiCittc2dzdHIgInNocmFuamVubyIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIjogIXVrYXogbmkgZG92b2xqZW4gdiByZmxhZyBuYehpbnUuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDk3Cittc2dpZCAiZm9yaygpIGZhaWxlZCwgdHJ5IGFnYWluIGxhdGVyXG4iCittc2dzdHIgImtsaWMgZm9yaygpIG5pIHVzcGVsLCBwb3NrdXNpdGUgcG96bmVqZVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTcwNQorbXNnaWQgIihOZXh0IGZpbGU6ICIKK21zZ3N0ciAiKE5hc2xlZG5qYSBkYXRvdGVrYTogIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjExMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyc3BhY2UiCittc2dzdHIgIlphIG1lZHBvbW5pbG5payBuaSBtb2dv6GUgZG9kZWxpdGkgcHJvc3RvcmEuXG4iCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiByZXYgW2ZpbGUgLi4uXVxuIgorbXNnc3RyICJVcG9yYWJhOiByZXYgW2RhdCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIKK21zZ3N0ciAiXCIlc1wiIG5pIG1vZ2/oZSBvZHByZXRpIHphIGJyYW5qZVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgXCIlc1wiIgorbXNnc3RyICJzdGFuamEgbmFwcmF2ZSAlcyBuaSBtb2dv6GUgZG9iaXRpIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgImluY29tcGxldGUgd3JpdGUgdG8gXCIlc1wiICh3cml0dGVuICV6ZCwgZXhwZWN0ZWQgJXpkKVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAobGltaXQgb2YgaW5vdGlmeSB3YXRjaGVzIHdhcyByZWFjaGVkKS4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiBuaSBtb2dv6GUgb2RwcmV0aSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgIk5ldmVsamF2bm8guXRldmlsbzogJXNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorIywgZnV6enkKK21zZ2lkICJ1c2FnZTogdGFpbGYgWy1uIE4gfCAtTl0gbG9nZmlsZSIKK21zZ3N0ciAiVXBvcmFiYTogdGFpbGYgZG5ldmRhdFtsb2ddXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLWkgXSBbIC10VGVybSBdIGZpbGUuLi5cbiIKK21zZ3N0ciAiVXBvcmFiYTogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZGF0Li4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICJwcmkgYnJhbmp1IHRlcm1pbmZvIGJhemUgcG9kYXRrLiBqZSBwcmm5bG8gZG8gbmFwYWtlIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAiTmEgdmhvZHUgamUgbmV6bmFubyB1YmW+bm8gemFwb3JlZGplOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJaYSBtZWRwb21uaWxuaWsgbmkgbW9nb+hlIGRvZGVsaXRpIHBvbW5pbG5pa2EuXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5wdXQgbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiVmhvZG5hIHZyc3RpY2EgamUgcHJlZG9sZ2EuXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGVuIGdyb3dpbmcgYnVmZmVyLlxuIgorbXNnc3RyICJQcmkgcG92ZehldmFuanUgbWVkcG9tbmlsbmlrYSBqZSB6bWFuamthbG8gcG9tbmlsbmlrYS5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBDaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICBHaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIEdpdmUgZmRpc2sgdmVyc2lvblxuIgorI34gIkhlcmUgRElTSyBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYiBvciAvZGV2L3NkYVxuIgorI34gImFuZCBQQVJUSVRJT04gaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGdpdmUgU3RhcnQgYW5kIEVuZCBpbiBzZWN0b3IgKGluc3RlYWQgb2YgY3lsaW5kZXIpIHVuaXRzXG4iCisjfiAiLWIgMjA0ODogKGZvciBjZXJ0YWluIE1PIGRpc2tzKSB1c2UgMjA0OC1ieXRlIHNlY3RvcnNcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlVwb3JhYmE6IGZkaXNrIFstYiB2ZWxzZWt0XSAtW3VdIERJU0sgICAgIFNwcmVtZW5pIHRhYmVsbyByYXpkZWxrb3ZcbiIKKyN+ICIgICAgICAgICBmZGlzayAtbCBbLWIgdmVsc2VrdF0gLVt1XSBESVNLICBJenBpuWkgdGFiZWxvL2UgcmF6ZGVsa292XG4iCisjfiAiICAgICAgICAgZmRpc2sgLXMgUkFaREVMRUsgICAgICAgICAgICAgICAgVnJuaSB2ZWxpa29zdC9pIHJhemRlbGtvdiB2ICIKKyN+ICJibG9raWhcbiIKKyN+ICIgICAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgICAgICBWcm5pIHJhemxp6GljbyBmZGlzay1hXG4iCisjfiAiRElTSyBqZSBsYWhrbyAvZGV2L2hkYiBhbGkgL2Rldi9zZGFcbiIKKyN+ICJSQVpERUxFSyBqZSBsYWhrbyAvZGV2L2hkYTdcbiIKKyN+ICIgdmVsc2VrdCAtIHZlbGlrb3N0IHNla3RvcmphXG4iCisjfiAiLXU6IHZybmkgWmHoZXRlayBpbiBLb25lYyB2IHNla3RvcnNraWggKG5hbWVzdG8gdiBzdGV6bmloKSBlbm90YWhcbiIKKyN+ICItYiAyMDQ4OiAoemEgbmVrYXRlcmUgTU8gZGlza2UpIHVwb3JhYmkgc2VrdG9yamUgdmVsaWtvc3RpIDIwNDgtYmFqdG92XG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstbF0gWy1iIFNTWl0gWy11XSBkZXZpY2VcbiIKKyN+ICJFLmcuOiBmZGlzayAvZGV2L2hkYSAgKGZvciB0aGUgZmlyc3QgSURFIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9zZGMgIChmb3IgdGhlIHRoaXJkIFNDU0kgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L2VkYSAgKGZvciB0aGUgZmlyc3QgUFMvMiBFU0RJIGRyaXZlKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvcmQvYzBkMCAgb3I6IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChmb3IgUkFJRCBkZXZpY2VzKVxuIgorI34gIiAgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJVcG9yYWJhOiBmZGlzayBbbF0gWy1iIHZlbHNla3RdIFstdV0gbmFwcmF2YVxuIgorI34gIk5wci46IGZkaXNrIC9kZXYvaGRhICh6YSBwcnYgSURFIGRpc2spXG4iCisjfiAiIGFsaTogZmRpc2sgL2Rldi9zZGMgKHphIHBydmkgU0NTSSBkaXNrKVxuIgorI34gIiBhbGk6IGZkaXNrIC9kZXYvZWRhICh6YSBwcnZpIFBTLzIgRVNESSBkaXNrKVxuIgorI34gIiBhbGk6IGZkaXNrIC9kZXYvcmQvYzBkMCBhbGkgZmRpc2sgL2Rldi9pZGEvYzBkMCAoemEgUkFJRCBuYXByYXZlKVxuIgorI34gIiAuLi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJUaGUgbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkaXNrIGlzIHNldCB0byAlZC5cbiIKKyN+ICJUaGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggdGhhdCwgYnV0IHRoaXMgaXMgbGFyZ2VyIHRoYW4gMTAyNCxcbiIKKyN+ICJhbmQgY291bGQgaW4gY2VydGFpbiBzZXR1cHMgY2F1c2UgcHJvYmxlbXMgd2l0aDpcbiIKKyN+ICIxKSBzb2Z0d2FyZSB0aGF0IHJ1bnMgYXQgYm9vdCB0aW1lIChlLmcuLCBvbGQgdmVyc2lvbnMgb2YgTElMTylcbiIKKyN+ICIyKSBib290aW5nIGFuZCBwYXJ0aXRpb25pbmcgc29mdHdhcmUgZnJvbSBvdGhlciBPU3NcbiIKKyN+ICIgICAoZS5nLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAiqXRldmlsbyBzdGV6IG5hIHRlbSBkaXNrdSBqZSBuYXN0YXZsamVubyBuYSAlZC5cbiIKKyN+ICJTIHRlbSBuaSBuaeggbmFyb2JlLCBhbXBhayB0byBqZSB2ZehqZSBrb3QgMTAyNCxcbiIKKyN+ICJpbiBiaSBsYWhrbyB2IGRvbG/oZW5paCBwcmltZXJpaCBwb3Z6cm/oaWxvIHRlvmF2ZSB6OlxuIgorI34gIjEpIHByb2dyYW1qZW0sIGtpIGRlbHVqZSBtZWQgemFnYW5qYW5qZW0gKG5wci4gc3RhcmUgcmF6bGnoaWNlIExJTE8pXG4iCisjfiAiMikgemFnb25za2ltIGluIHJhemRlbGpldmFsbmltIHByb2dyYW1qZW0gZHJ1Z2loXG4iCisjfiAib3BlcmFjaWpza2loIHNpc3RlbW92KG5wci4gRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm91dCBpZiBtZW1vcnkiCisjfiBtc2dzdHIgInptYW5qa2FsbyBqZSBwb21uaWxuaWthIgorCisjfiBtc2dpZCAiIyBwYXJ0aXRpb24gdGFibGUgb2YgJXNcbiIKKyN+IG1zZ3N0ciAiIyB0YWJlbGEgcmF6ZGVsa292IG9kICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gInVuaXQ6IHNlY3RvcnNcbiIKKyN+ICJcbiIKKyN+IG1zZ3N0ciAiJWxsZCBuZWRvZGVsamVuaWggc2VrdG9yamV2XG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIHN0YXJ0PSU5bHUiCisjfiBtc2dzdHIgInph6GV0ZWsiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBzaXplPSU5bHUiCisjfiBtc2dzdHIgIk5hanZl6GphIHZlbGlrb3N0PSVsZFxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiwgYm9vdGFibGUiCisjfiBtc2dzdHIgIkFJWCB6YWdvbnNraSIKKworIywgZnV6enkKKyN+IG1zZ2lkICJDbG9jayBpbiBVVEMsIG5vdCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICJMdXBpbmEgbmkgYmlsYSBzcHJlbWVuamVuYS5cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogZXJyb3I6IGxhYmVsIG9ubHkgd2l0aCB2MSBzd2FwIGFyZWFcbiIKKyN+IG1zZ3N0ciAiJXM6IG5hcGFrYTogb3puYWthIHNhbW8geiB2MSBpem1lbmphbG5pbSBwcm9zdG9yb21cbiIKKworI34gbXNnaWQgImZhdGFsOiBmaXJzdCBwYWdlIHVucmVhZGFibGUiCisjfiBtc2dzdHIgInVzb2RuYSBuYXBha2E6IHBydmEgc3RyYW4gbmViZXJsaml2YSIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAiJXM6IERldmljZSAnJXMnIGNvbnRhaW5zIGEgdmFsaWQgU3VuIGRpc2tsYWJlbC5cbiIKKyN+ICJUaGlzIHByb2JhYmx5IG1lYW5zIGNyZWF0aW5nIHYwIHN3YXAgd291bGQgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyN+ICJObyBzd2FwIHdhcyBjcmVhdGVkLiBJZiB5b3UgcmVhbGx5IHdhbnQgdG8gY3JlYXRlIHYwIHN3YXAgb24gdGhhdCAiCisjfiAiZGV2aWNlLFxuIgorI34gInVzZSB0aGUgLWYgb3B0aW9uIHRvIGZvcmNlIGl0LlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6IEVub3RhICclcycgdnNlYnVqZSB2ZWxqYXZubyBTdW5vdm8gb3puYWtvIGRpc2thLlxuIgorI34gIlRvIHBvbWVuaSwgZGEgYmkgdXN0dmFyamFuamUgaXptZW5qYWxuZWdhIHByb3N0b3JhIHYwIHVuaehpam8gIgorI34gInJhemRlbGl0dmVub1xuIgorI34gInRhYmVsby4gSXptZW5qYWxuaSBwcm9zdG9yIG5pIGJpbCB1c3R2YXJqZW4uIMhlIHJlcyC+ZWxpdGUgdXN0dmFyaXRpICIKKyN+ICJpem1lbmphbG5pIHByb3N0b3IgdjAgbmEgdGVqIG5hcHJhdmksIHVwb3JhYml0ZSBpemJpcm8gLWYuXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiB0cmVudXRuZWdhIGltZW5pa2EgbmkgbW9nb+hlIGRvYml0aSAtICVzXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGNoZGlyIHRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICJuYW1laTogc3ByZW1lbWJhIGltZW5pa2EgbmkgbW9nb+hhIHYgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IGNoZGlyIHRvIHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBzcHJlbWVtYmEgbmEga29yZW5za2kgaW1lbmlrIG5pIG1vZ2/oYSFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3Qgc3RhdCByb290IVxuIgorI34gbXNnc3RyICJuYW1laTogbmV6bmFubyBzdGFuamUgc2lzdC4gc2tyYm5pa2EhXG4iCisKKyN+IG1zZ2lkICJuYW1laTogYnVmIG92ZXJmbG93XG4iCisjfiBtc2dzdHIgIm5hbWVpOiBwcmVrb3Jh6Gl0ZXYgbWVkcG9tbmlsbmlrYVxuIgorCisjfiBtc2dpZCAiID8gY291bGQgbm90IGNoZGlyIGludG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgInByZWtsb3AgdiBpbWVuaWsgJXMgLSAlcyAoJWQpIG5pIG1vZ2/oXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgInRlvmF2ZSBwcmkgYnJhbmp1IHNpbWIuIHBvdmV6YXZlICVzIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAiICAqKiogRVhDRUVERUQgVU5JWCBMSU1JVCBPRiBTWU1MSU5LUyAqKipcbiIKKyN+IG1zZ3N0ciAiICAqKiogUFJFS09SQchJVEVWIFVOSVgtb3ZlIE1FSkUgU0lNQi4gUE9WRVpBViAqKipcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmtub3duIGZpbGUgdHlwZSAwJTA2byBvbiBmaWxlICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBuZXpuYW4gdGlwIGRhdG90ZWtlIDAlMDZvIHYgZGF0LiAlc1xuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBnb2luZyB0byBtb3VudCAlcyBieSAlc1xuIgorI34gbXNnc3RyICJtb3VudDogJXMgYm8gcHJpa2xvcGxqZW4gZ2xlZGUgbmEgVVVJRC1vbVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBubyBMQUJFTD0sIG5vIFVVSUQ9LCBnb2luZyB0byBtb3VudCAlcyBieSBwYXRoXG4iCisjfiBtc2dzdHIgIm1vdW50OiAlcyBibyBwcmlrbG9wbGplbiBnbGVkZSBuYSBvem5ha28iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczogTmkgbW9nb+hlIHZlaml0aVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiVzOiB3YWl0cGlkOiAlc1xuIgorI34gbXNnc3RyICIlczogb2RwaXJhbmplIG5pIHVzcGVsbzogJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IHN0YXQgJXM6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiB6YSAlcyBzdGFuamUgbmkgem5hbm86ICVzXG4iCisKKyN+IG1zZ2lkICJjb3VsZCBub3QgdW1vdW50ICVzIC0gdHJ5aW5nICVzIGluc3RlYWRcbiIKKyN+IG1zZ3N0ciAib2RrbG9wICVzIG5pIHVzcGVsIC0gcG9za3W5YW0geiAlc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTI2LjI0cyAlLTI2LjI0c1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKyN+IG1zZ3N0ciAiJS04cyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJjaGZuOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImxvZ2luOiBQQU0gbmkgdXNwZWwsIHByZWtpbmphbTogJXNcbiIKKworI34gbXNnaWQgIkNhbid0IHJlYWQgJXMsIGV4aXRpbmcuIgorI34gbXNnc3RyICIlcyBuaSBtb2dv6GUgcHJlYnJhdGksIHpha2xqdeh1amVtLiIKKworI34gbXNnaWQgImxvZ2luOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImxvZ2luOiBQQU0gbmkgdXNwZWwsIHByZWtpbmphbTogJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDogXCIlc1wiIGdyZSB2IG96YWRqZVxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdpdmluZyB1cCBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHByZWRhamEgc2UgXCIlc1wiXG4iCisKKyN+IG1zZ2lkICJgJXMnOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKKyN+IG1zZ3N0ciAiYCVzJzogcG+5a29kb3ZhbiBpbWVuaWs6ICcuJyBuaSBuYSBwcnZlbSBtZXN0dVxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKKyN+IG1zZ3N0ciAiYCVzJzogcG+5a29kb3ZhbiBkaXJla3RvcmlqOiAnLi4nIG5pIG5hIGRydWdlbSBtZXN0dVxuIgorCisjfiBtc2dpZCAiY2FsbGluZyBvcGVuX3R0eVxuIgorI34gbXNnc3RyICJrbGnoZW0gb3Blbl90dHlcbiIKKworI34gbXNnaWQgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKyN+IG1zZ3N0ciAia2xp6GVtIHRlcm1pb19pbml0XG4iCisKKyN+IG1zZ2lkICJ3cml0aW5nIGluaXQgc3RyaW5nXG4iCisjfiBtc2dzdHIgInphcGlzdWplbSB6YehldG5pIG5pelxuIgorCisjfiBtc2dpZCAiYmVmb3JlIGF1dG9iYXVkXG4iCisjfiBtc2dzdHIgInByZWQgYXV0b2JhdWRcbiIKKworI34gbXNnaWQgIndhaXRpbmcgZm9yIGNyLWxmXG4iCisjfiBtc2dzdHIgIuhha2FtIG5hIGNyLWxmXG4iCisKKyN+IG1zZ2lkICJyZWFkaW5nIGxvZ2luIG5hbWVcbiIKKyN+IG1zZ3N0ciAiYmVyZW0gcHJpamF2bm8gaW1lXG4iCisKKyN+IG1zZ2lkICJhZnRlciBnZXRvcHQgbG9vcFxuIgorI34gbXNnc3RyICJwbyBnZXRvcHQgemFua2lcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VhcmdzXG4iCisjfiBtc2dzdHIgInpha2xqdeh1amVtIHByZWdsZWQgYXJndW1lbnRvdlxuIgorCisjfiBtc2dpZCAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKyN+IG1zZ3N0ciAidnN0b3AgdiBwcmVnbGVkIGhpdHJvc3RpXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlc3BlZWRzXG4iCisjfiBtc2dzdHIgInpha2xqdeh1amVtIHByZWdsZWQgaGl0cm9zdGlcbiIKKworI34gbXNnaWQgIm9wZW4oMilcbiIKKyN+IG1zZ3N0ciAib3BlbigyKVxuIgorCisjfiBtc2dpZCAiZHVwaW5nXG4iCisjfiBtc2dzdHIgInByZXZhcmFcbiIKKworI34gbXNnaWQgInRlcm1faW8gMlxuIgorI34gbXNnc3RyICJ0ZXJtX2lvIDJcbiIKKworI34gbXNnaWQgIlBhc3N3b3JkIGVycm9yLiIKKyN+IG1zZ3N0ciAiTmFwYWthIHYgZ2VzbHUuIgorCisjfiBtc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHNcbiIKKyN+IG1zZ3N0ciAiT3Bvem9yaWxvOiBcIiVzXCIgbmkgbmEgc2V6bmFtdSB2IC9ldGMvc2hlbGxzXG4iCisKKyN+IG1zZ2lkICJ0aW1lb3V0ID0gJWQsIHF1aWV0ID0gJWQsIHJlYm9vdCA9ICVkXG4iCisjfiBtc2dzdHIgIuhhc292bmEgb21laml0ZXYgPSAlZCwgdGm5aW5hID0gJWQsIHBvbm92bmkgemFnb24gPSAlZFxuIgorCisjfiBtc2dpZCAiY291bGRuJ3QgcmVhZCAlcywgYW5kIGNhbm5vdCBpb2N0bCBkdW1wXG4iCisjfiBtc2dzdHIgIm5vIG1vZ2/oZSBicmF0aSAlcyBpbiBuaSBtb2dv6GUgZG9iaXRpIGl6cGlzYSBpb2N0bFxuIgorCisjfiBtc2dpZCAiLCBvZmZzZXQgJWxsZCIKKyN+IG1zZ3N0ciAiLCBvZG1payAlbGxkIgorCisjfiBtc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBkZXZpY2UgL2Rldi9sb29wIyIKKyN+IG1zZ3N0ciAiJXM6IG5hcHJhdmUgL2Rldi9sb29wIyBuaSBtb2dv6GUgbmFqdGkiCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAidXBvcmFiYTogJXMgWy1oVl1cbiIKKyN+ICJcdCAgJXMgLWEgWy1lXSBbLXZdXG4iCisjfiAiXHQgICVzIFstdl0gWy1wIHByZWRub3N0XSBwb3NlYm5hX2RhdHxMQUJFTD1vYnNlZ292b19pbWUgLi4uXG4iCisjfiAiXHQgICVzIFstc11cbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIHNwZWNpYWwgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJ1cG9yYWJhOiAlcyBbLWhWXVxuIgorI34gIlx0ICAlcyAtYSBbLXZdXG4iCisjfiAiXHQgICVzIFstdl0gcG9zZWJuYV9kYXRcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IGNhbm9uaWNhbGl6ZSAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6ICVzIG5pIG1vZ2/oZSBvZHByZXRpOiAlc1xuIgorCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiByZW5pY2UgcHJpb3JpdHkgWyBbIC1wIF0gcGlkcyBdIFsgWyAtZyBdIHBncnBzIF0gWyBbIC11IF0gdXNlcnMgXVxuIgorI34gbXNnc3RyICIiCisjfiAidXBvcmFiYTogcmVuaWNlIHByaW9yaXRldGEgWyBbIC1wIF0gcGlkLWkgXSBbIFsgLWcgXSBwc2t1cCBdIFsgWyAtdSBdICIKKyN+ICJ1cG9yYWJuaWtpIF1cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJVbmtub3duIG9wdGlvbiBgJWMnIGlnbm9yZWQiCisjfiBtc2dzdHIgIiVzOiBuZXpuYW5hIG1vvm5vc3QgXCItJWNcIlxuIgorCisjfiBtc2dpZCAiIgorI34gIkV4Y2VlZGVkIE1BWEVOVFJJRVMuICBSYWlzZSB0aGlzIHZhbHVlIGluIG1rY3JhbWZzLmMgYW5kIHJlY29tcGlsZS4gICIKKyN+ICJFeGl0aW5nLlxuIgorI34gbXNnc3RyICIiCisjfiAiUHJla29yYehlbiBNQVhFTlRSSUVTLiBQb3Zl6GFqdGUgdG9wIHZyZWRub3N0IHYgbWtjcmFtZnMgaW4gcG9ub3ZubyAiCisjfiAicHJldmVkaXRlLiBLb27odWplbS5cbiIKKworI34gbXNnaWQgIkFzc3VtaW5nIHBhZ2VzIG9mIHNpemUgJWQgKG5vdCAlZClcbiIKKyN+IG1zZ3N0ciAiUHJpdnplbWFtbyBzdHJhbmkgdmVsaWtvc3RpICVkIChpbiBuZSAlZClcbiIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZm91bmQgYSAlcyVzJXNcbiIKKyN+IG1zZ3N0ciAiU2Ftb3phem5hdmEgamUgbmG5bGE6ICVzJXMlc1xuIgorCisjfiBtc2dpZCAiIgorI34gIkRyaXZlIHR5cGVcbiIKKyN+ICIgICA/ICAgYXV0byBjb25maWd1cmVcbiIKKyN+ICIgICAwICAgY3VzdG9tICh3aXRoIGhhcmR3YXJlIGRldGVjdGVkIGRlZmF1bHRzKSIKKyN+IG1zZ3N0ciAiIgorI34gIlRpcCBwb2dvbmFcbiIKKyN+ICIgID8gICBzYW1vemF6bmF2YVxuIgorI34gIiAgMCAgIHBvIG1lcmkgKHMgcHJpdnpldGltaSBpemJpcmFtaSBzYW1vemF6bmF2ZSkiCisKKyN+IG1zZ2lkICJTZWxlY3QgdHlwZSAoPyBmb3IgYXV0bywgMCBmb3IgY3VzdG9tKTogIgorI34gbXNnc3RyICJJemJlcml0ZSB0aXAgKD8gemEgc2Ftb3phem5hdm8sIDAgemEgcG8gbWVyaSk6ICIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZmFpbGVkLlxuIgorI34gbXNnc3RyICJTYW1vemF6bmF2YSBuaSB1c3BlbGEuXG4iCisKKyN+IG1zZ2lkICJBbHRlcm5hdGUgY3lsaW5kZXJzIgorI34gbXNnc3RyICJBbHRlcm5hdGl2bmUgc3RlemUiCisKKyN+IG1zZ2lkICJQaHlzaWNhbCBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIkZpemnobmUgc3RlemUiCisKKyN+IG1zZ2lkICJZb3UgbWF5IGNoYW5nZSBhbGwgdGhlIGRpc2sgcGFyYW1zIGZyb20gdGhlIHggbWVudSIKKyN+IG1zZ3N0ciAiVnNlIGRpc2tvdm5lIHBhcmFtZXRyZSBsYWhrbyBzcHJlbWVuaXRlIHYgbWVuaWp1IHgiCisKKyN+IG1zZ2lkICIzLDVcIiBmbG9wcHkiCisjfiBtc2dzdHIgIjMsNVwiIG1laGtpIGRpc2siCisKKyN+IG1zZ2lkICJMaW51eCBjdXN0b20iCisjfiBtc2dzdHIgIkxpbnV4IHBvIG1lcmkiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXMgZnJvbSB1dGlsLWxpbnV4LSVzXG4iCisjfiBtc2dzdHIgIiVzIG9kIHV0aWwtbGludXgtJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJXMgaXogJXNcbiIKKworI34gbXNnaWQgIiVzOiBlcnJvcjogdGhlIGxhYmVsICVzIG9jY3VycyBvbiBib3RoICVzIGFuZCAlc1xuIgorI34gbXNnc3RyICIlczogbmFwYWthOiBvem5ha2EgJXMgc2UgcG9qYXZpIG5hICVzIGluICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiJXM6IGNvdWxkIG5vdCBvcGVuICVzLCBzbyBVVUlEIGFuZCBMQUJFTCBjb252ZXJzaW9uIGNhbm5vdCBiZSBkb25lLlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6ICVzIG5pIG1vZ2/oZSBvZHByZXRpLCB6YXRvIHByZXR2b3JiYSBtZWQgVVVJRCBpbiBPWk5BS0EgbmkgbW9nb+hhLlxuIgorCisjfiBtc2dpZCAiJXM6IGJhZCBVVUlEIgorI34gbXNnc3RyICIlczogcG+5a29kb3ZhbiBVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IGZhaWxlZCB3aXRoIG5mcyBtb3VudCB2ZXJzaW9uIDQsIHRyeWluZyAzLi5cbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG5mcyBwcmlrbG9wIG5pIHVzcGVsIHogcmF6bGnoaWNvIDQsIHBvc2t1uWFtIHMgMy4uXG4iCisKKyN+IG1zZ2lkICJtb3VudDogbW91bnRpbmcgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHByaWtsYXBsamEgc2UgJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW5ub3QgZmluZCAlcyBpbiAlcyIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzIG5pIG1vZ2/oZSBuYWp0aSB2ICVzIgorCisjfiBtc2dpZCAibW91bnQ6IGVycm9yIHdoaWxlIGd1ZXNzaW5nIGZpbGVzeXN0ZW0gdHlwZVxuIgorI34gbXNnc3RyICJtb3VudDogcHJpIHVnaWJhbmp1IHZyc3RlIGRhdC4gc2lzdC4gamUgcHJpuWxvIGRvIG5hcGFrZVxuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgaG9zdDpkaXIgYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGl6YmlyYSBnb3N0aXRlbGo6aW1lbmlrIGplIHByZWRvbGdhXG4iCisKKyN+IG1zZ2lkICJtb3VudDogd2FybmluZzogbXVsdGlwbGUgaG9zdG5hbWVzIG5vdCBzdXBwb3J0ZWRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG9wb3pvcmlsbzogdmXoa3JhdG5hIGltZW5hIGdvc3RpdGVsamV2IG5pc28gcG9kcHJ0YVxuIgorCisjfiBtc2dpZCAibW91bnQ6IGRpcmVjdG9yeSB0byBtb3VudCBub3QgaW4gaG9zdDpkaXIgZm9ybWF0XG4iCisjfiBtc2dzdHIgIm1vdW50OiBwcmlrbG9wbmkgaW1lbmlrIG5pIG9ibGlrZSBnb3N0aXRlbGo6aW1lbmlrXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiB6YSAlcyBuaSBtb2dv6GUgZG9iaXRpIG5hc2xvdmFcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb3QgYmFkIGhwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJtb3VudDogcG+5a29kb3ZhbiBocC0+aF9sZW5ndGhcbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIG9wdGlvbiBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogcHJlZG9sZyBwYXJhbWV0ZXIgaXpiaXJlXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBVbnJlY29nbml6ZWQgcHJvdG89IG9wdGlvbi5cbiIKKyN+IG1zZ3N0ciAiT3Bvem9yaWxvOiBpemJpcmEgcHJvdG89IGplIG5lem5hbmEuXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBPcHRpb24gbmFtbGVuIGlzIG5vdCBzdXBwb3J0ZWQuXG4iCisjfiBtc2dzdHIgIk9wb3pvcmlsbzogSXpiaXJhIG5hbWxlbiBuaSBwb2RwcnRhLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgcGFyYW1ldGVyOiAlcz0lZFxuIgorI34gbXNnc3RyICJwcmlrbG9wbmkgcGFyYW1ldGVyIG5mcyBqZSBuZXpuYW46ICVzPSVkXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBvcHRpb24gbm9sb2NrIGlzIG5vdCBzdXBwb3J0ZWQuXG4iCisjfiBtc2dzdHIgIk9wb3pvcmlsbzogaXpiaXJhIG5vbG9jayBuaSBwb2RwcnRhLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgb3B0aW9uOiAlcyVzXG4iCisjfiBtc2dzdHIgInByaWtsb3BuYSBpemJpcmEgbmZzIGplIG5lem5hbmE6ICVzJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb3QgYmFkIGhwLT5oX2xlbmd0aD9cbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHBvuWtvZG92YW4gaHAtPmhfbGVuZ3RoP1xuIgorCisjfiBtc2dpZCAibmZzIGJpbmRyZXN2cG9ydCIKKyN+IG1zZ3N0ciAibmZzIGJpbmRyZXN2cG9ydCIKKworI34gbXNnaWQgIm5mcyBzZXJ2ZXIgcmVwb3J0ZWQgc2VydmljZSB1bmF2YWlsYWJsZSIKKyN+IG1zZ3N0ciAic3RyZb5uaWsgbmZzIGplIHNwb3Jv6GlsLCBkYSBzdG9yaXRldiBuaSBkb3NlZ2xqaXZhIgorCisjfiBtc2dpZCAidXNlZCBwb3J0bWFwcGVyIHRvIGZpbmQgTkZTIHBvcnRcbiIKKyN+IG1zZ3N0ciAiemEgaXNrYW5qZSBORlMgdnJhdCBqZSBiaWwgdXBvcmFibGplbiBwb3J0bWFwcGVyXG4iCisKKyN+IG1zZ2lkICJ1c2luZyBwb3J0ICVkIGZvciBuZnMgZGVhbW9uXG4iCisjfiBtc2dzdHIgInVwb3JhYmxqYWpvIHNlICVkIHZyYXRhIHphIGRlbW9uYSBuZnNcbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIHN0YXR1cyByZXR1cm4gdmFsdWU6ICVkIgorI34gbXNnc3RyICJuZnMtamV2YSBwb3ZyYXRuYSB2cmVkbm9zdCBzdGFuamEgbmkgem5hbmE6ICVkICIKKworI34gbXNnaWQgImhvc3Q6ICVzLCBkaXJlY3Rvcnk6ICVzXG4iCisjfiBtc2dzdHIgImdvc3RpdGVsajogJXMsIGltZW5pazogJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgInVtb3VudDogbmFzbG92YSB6YSAlcyBuaSBtb2dv6GUgZG9iaXRpXG4iCisKKyN+IG1zZ2lkICJ1bW91bnQ6IGdvdCBiYWQgaG9zdHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgInVtb3VudDogcG+5a29kb3ZhbiBob3N0cC0+aF9sZW5ndGhcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHBhdGggbGVuZ3RoXG4iCisjfiBtc2dzdHIgIiVzOiBuZXZlbGphdmVuIGNyYW1mcyAtIHBvuWtvZG92YW5hIGRvbL5pbmEgcG90aVxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS13cm9uZyBtYWdpY1xuIgorI34gbXNnc3RyICIlczogbmV2ZWxqYXZlbiBjcmFtZnMgLSBuYXBh6GVuIHRpcCBkYXRvdGVrZVxuIgorCisjfiBtc2dpZCAiJXM6IHdhcm5pbmctLWZpbGUgbGVuZ3RoIHRvbyBsb25nLCBwYWRkZWQgaW1hZ2U/XG4iCisjfiBtc2dzdHIgIiVzOiBvcG96b3JpbG8gLSBkb2y+aW5hIGRhdG90ZWtlIGplIHByZWRvbGdhLCBkb3BvbG5qZW5hIHNsaWthP1xuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1jcmMgZXJyb3JcbiIKKyN+IG1zZ3N0ciAiJXM6IG5ldmVsamF2ZW4gY3JhbWZzIC0gbmFwYWthIHYgbmFkem9ybmkgdnNvdGlcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHN1cGVyYmxvY2tcbiIKKyN+IG1zZ3N0ciAiJXM6IG5ldmVsamF2ZW4gY3JhbWZzIC0gcG+5a29kb3ZhbiBzdXBlcmJsb2tcbiIKKworI34gbXNnaWQgIiVzOiBub3QgY29tcGlsZWQgd2l0aCBtaW5peCB2MiBzdXBwb3J0XG4iCisjfiBtc2dzdHIgIiVzOiBuaSBwcmV2ZWRlbm8gcyBwb2Rwb3JvIHphIE1pbml4IHYyXG4iCisKKyN+IG1zZ2lkICJTeW50YXggZXJyb3I6ICclcydcbiIKKyN+IG1zZ3N0ciAiU2tsYWRlbmpza2EgbmFwYWthOiAsJXNgXG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1wIF0gZGV2IG5hbWVcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtcCBdIGVub3RhIGltZVxuIgorCisjfiBtc2dpZCAiIgorI34gIiAgICVzIFsgLXAgXSBkZXYgc2l6ZSBzZWN0IGhlYWRzIHRyYWNrcyBzdHJldGNoIGdhcCByYXRlIHNwZWMxIGZtdF9nYXBcbiIKKyN+IG1zZ3N0ciAiIgorI34gIiAgICVzIFsgLXAgXSBlbm90YSB2ZWwgc2VrdCBnbGF2IHN0ZXogcmF6dGVnIHByZXNsIHN0b3BuamEgc3BlYzEgZm10X2dhcFxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGRldlxuIgorI34gbXNnc3RyICIgICAlcyBbIC1jIHwgLXkgfCAtbiB8IC1kIF0gZW5vdGFcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLWMgfCAteSB8IC1uIF0gZGV2XG4iCisjfiBtc2dzdHIgIiAgICVzIFsgLWMgfCAteSB8IC1uIF0gZW5vdGFcbiIKKworI34gbXNnaWQgIk5vbmUgKCUwMlgpIgorI34gbXNnc3RyICJCcmV6ICglMDJYKSIKKworI34gbXNnaWQgInZlcnNpb24iCisjfiBtc2dzdHIgInJhemxp6GljYSIKKworI34gbXNnaWQgIiIKKyN+ICJUb28gbWFueSB1c2VycyBsb2dnZWQgb24gYWxyZWFkeS5cbiIKKyN+ICJUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJQcmlqYXZsamVuaWggamUgvmUgcHJldmXoIHVwb3JhYm5pa292LlxuIgorI34gIlBvc2t1c2l0ZSBwb3puZWplLlxuIgorCisjfiBtc2dpZCAiWW91IGhhdmUgdG9vIG1hbnkgcHJvY2Vzc2VzIHJ1bm5pbmcuXG4iCisjfiBtc2dzdHIgIkhrcmF0aSB0ZehlIHByZXZl6CB2YblpaCBwcm9jZXNvdi5cbiIKKworI34gbXNnaWQgIlRoZSBwYXNzd29yZCBtdXN0IGhhdmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzLCB0cnkgYWdhaW4uXG4iCisjfiBtc2dzdHIgIkdlc2xvIG1vcmEgYml0aSBkb2xnbyB2c2FqIDYgem5ha292LCBwb3NrdXNpdGUguWUgZW5rcmF0LlxuIgorCisjfiBtc2dpZCAiIgorI34gIlRoZSBwYXNzd29yZCBtdXN0IGNvbnRhaW4gY2hhcmFjdGVycyBvdXQgb2YgdHdvIG9mIHRoZSBmb2xsb3dpbmdcbiIKKyN+ICJjbGFzc2VzOiAgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBub24gYWxwaGFudW1lcmljXG4iCisjfiAiY2hhcmFjdGVycy4gU2VlIHBhc3N3ZCgxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkdlc2xvIG1vcmEgdnNlYm92YXRpIHRha28g6HJrZSAodmVsaWtlIGFsaSBtYWxlKSwga290ILl0ZXZrZSBhbGkgZHJ1Z2VcbiIKKyN+ICJuZS1hbGZhbnVtZXJp6G5lIHpuYWtlLiBJeuhycG5larlhIG5hdm9kaWxhIHNvIG5hIHZvbGpvIHYgcGFzc3dkKDEpLlxuIgorCisjfiBtc2dpZCAiWW91IGNhbm5vdCByZXVzZSB0aGUgb2xkIHBhc3N3b3JkLlxuIgorI34gbXNnc3RyICJTdGFyZWdhIGdlc2xhIG5lIG1vcmV0ZSB6bm92YSB1cG9yYWJpdGkuXG4iCisKKyN+IG1zZ2lkICJQbGVhc2UgZG9uJ3QgdXNlIHNvbWV0aGluZyBsaWtlIHlvdXIgdXNlcm5hbWUgYXMgcGFzc3dvcmQhXG4iCisjfiBtc2dzdHIgIlByb3NpbSwgZGEgemEgZ2VzbG8gbmUgdXBvcmFibGphdGUgdXBvcmFibmm5a2VnYSBpbWVuYS5cbiIKKworI34gbXNnaWQgIlBsZWFzZSBkb24ndCB1c2Ugc29tZXRoaW5nIGxpa2UgeW91ciByZWFsbmFtZSBhcyBwYXNzd29yZCFcbiIKKyN+IG1zZ3N0ciAiUHJvc2ltLCBkYSB6YSBnZXNsbyBuZSB1cG9yYWJsamF0ZSB2YbllZ2EgaW1lbmEuXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFt1c2VybmFtZSBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICJVcG9yYWJhOiBwYXNzd2QgW3Vwb3JhYm5payBbZ2VzbG9dXVxuIgorCisjfiBtc2dpZCAiT25seSByb290IG1heSB1c2UgdGhlIG9uZSBhbmQgdHdvIGFyZ3VtZW50IGZvcm1zLlxuIgorI34gbXNnc3RyICIiCisjfiAiU2FtbyBzaXN0ZW1za2kgc2tyYm5payBsYWhrbyB1cHJhYmxqYSBvYmxpa28geiBlbmltIGFsaSBkdmVtYSAiCisjfiAiYXJndW1lbnRvbWEuXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFstZm9xc3ZWXSBbdXNlciBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICJVcG9yYWJhOiBwYXNzd2QgWy1mb3FzdlZdIFt1cG9yYWJuaWsgW2dlc2xvXV1cbiIKKworI34gbXNnaWQgIkNhbid0IGV4ZWMgJXM6ICVzXG4iCisjfiBtc2dzdHIgIk5pIG1v6CBwb2duYXRpICVzOiAlc1xuIgorCisjfiBtc2dpZCAiQ2Fubm90IGZpbmQgbG9naW4gbmFtZSIKKyN+IG1zZ3N0ciAiUHJpamF2bmVnYSBpbWVuYSBuaSBtb+ggbmFqdGkiCisKKyN+IG1zZ2lkICJPbmx5IHJvb3QgY2FuIGNoYW5nZSB0aGUgcGFzc3dvcmQgZm9yIG90aGVycy5cbiIKKyN+IG1zZ3N0ciAiU2FtbyBzaXN0ZW1za2kgc2tyYm5payBsYWhrbyBzcHJlbWluamEgZ2VzbGEgZHJ1Z2loIHVwb3JhYm5pa292LlxuIgorCisjfiBtc2dpZCAiQ2FuJ3QgZmluZCB1c2VybmFtZSBhbnl3aGVyZS4gSXMgYCVzJyByZWFsbHkgYSB1c2VyPyIKKyN+IG1zZ3N0ciAiVXBvcmFibmm5a2VnYSBpbWVuYSBuaSBtb+ggbmFqdGkuIEplICwlc2AgcmVzIHVwb3JhYm5paz8iCisKKyN+IG1zZ2lkICJTb3JyeSwgSSBjYW4gb25seSBjaGFuZ2UgbG9jYWwgcGFzc3dvcmRzLiBVc2UgeXBwYXNzd2QgaW5zdGVhZC4iCisjfiBtc2dzdHIgIiIKKyN+ICJTIHRlbSB1a2F6b20gbGFoa28gc3ByZW1pbmphdGUgc2FtbyBsb2thbG5hIGdlc2xhLiBVcG9yYWJpdGUgeXBwYXNzd2QuIgorCisjfiBtc2dpZCAiVUlEIGFuZCB1c2VybmFtZSBkb2VzIG5vdCBtYXRjaCwgaW1wb3N0ZXIhIgorI34gbXNnc3RyICJVSUQgaW4gdXBvcmFibmm5a28gaW1lIHNlIG5lIHVqZW1hdGEiCisKKyN+IG1zZ2lkICJDaGFuZ2luZyBwYXNzd29yZCBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAiU3ByZW1pbmphbW8gZ2VzbG8gemEgJXNcbiIKKworI34gbXNnaWQgIkVudGVyIG9sZCBwYXNzd29yZDogIgorI34gbXNnc3RyICJWbmVzaXRlIHN0YXJvIGdlc2xvOiAiCisKKyN+IG1zZ2lkICJJbGxlZ2FsIHBhc3N3b3JkLCBpbXBvc3Rlci4iCisjfiBtc2dzdHIgIkdlc2xvIG5pIHZlbGphdm5vLiIKKworI34gbXNnaWQgIkVudGVyIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJWbmVzaXRlIG5vdm8gZ2VzbG86ICIKKworI34gbXNnaWQgIlBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAiR2VzbG8gbmkgYmlsbyBzcHJlbWVuamVuby4iCisKKyN+IG1zZ2lkICJSZS10eXBlIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJQb25vdm5vIHZuZXNpdGUgbm92byBnZXNsbzogIgorCisjfiBtc2dpZCAiWW91IG1pc3NwZWxsZWQgaXQuIFBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAiR2VzbGkgc2UgbmUgdWplbWF0YS4gR2VzbG8gbmkgYmlsbyBzcHJlbWVuamVuby4iCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkLCB1c2VyICVzIgorI34gbXNnc3RyICJnZXNsbyBzcHJlbWVuamVubywgdXBvcmFibmlrICVzIgorCisjfiBtc2dpZCAiUk9PVCBQQVNTV09SRCBDSEFOR0VEIgorI34gbXNnc3RyICJTS1JCTkmpS08gR0VTTE8gU1BSRU1FTkpFTk8iCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkIGJ5IHJvb3QsIHVzZXIgJXMiCisjfiBtc2dzdHIgImdlc2xvIHNwcmVtZW5pbCBza3JibmlrLCB1cG9yYWJuaWsgJXMiCisKKyN+IG1zZ2lkICJQYXNzd29yZCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorI34gbXNnc3RyICJHZXNsbyBOSSBCSUxPIHNwcmVtZW5qZW5vLiBQb3NrdXNpdGUgcG96bmVqZS5cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkIGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIkdlc2xvIGplIGJpbG8gc3ByZW1lbmplbm8uXG4iCisKKyN+IG1zZ2lkICJVVUlEIgorI34gbXNnc3RyICJVVUlEIgorCisjfiBtc2dpZCAiQ2FuJ3Qgb3BlbiBoZWxwIGZpbGUiCisjfiBtc2dzdHIgIkRhdG90ZWtlIHMgcG9tb+hqbyBuaSBtb2dv6GUgb2RwcmV0aSIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3N0YW1wLXBvIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vc3RhbXAtcG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc4OGY3MAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3N0YW1wLXBvCkBAIC0wLDAgKzEgQEAKK3RpbWVzdGFtcApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vc3YuZ21vIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vc3YuZ21vCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYjI4ODcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9zdi5nbW8KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vc3YucG8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby9zdi5wbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTY0YmQxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vc3YucG8KQEAgLTAsMCArMSwxMjc2NiBAQAorIyBTd2VkaXNoIG1lc3NhZ2VzIGZvciB1dGlsLWxpbnV4LgorIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENocmlzdGlhbiBSb3NlIDxtZW50aG9zQG1lbnRob3MuY29tPiwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNC4KKyMgRGFuaWVsIE55bGFuZGVyIDxwb0BkYW5pZWxueWxhbmRlci5zZT4sIDIwMDcuCisjCisjIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBmcmVlbHkgY29weSBhbmQgZGlzdHJpYnV0ZQorIyB0aGlzIGZpbGUgYW5kIG1vZGlmaWVkIHZlcnNpb25zLCBwcm92aWRlZCB0aGF0IHRoaXMKKyMgaGVhZGVyIGlzIG5vdCByZW1vdmVkIGFuZCBtb2RpZmllZCB2ZXJzaW9ucyBhcmUgbWFya2VkCisjIGFzIHN1Y2guCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4LW5nIDIuMTMuMS1yYzFcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDctMTEtMTQgMDk6MjArMDEwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogRGFuaWVsIE55bGFuZGVyIDxwb0BkYW5pZWxueWxhbmRlci5zZT5cbiIKKyJMYW5ndWFnZS1UZWFtOiBTd2VkaXNoIDx0cC1zdkBsaXN0b3IudHAtc3Yuc2U+XG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLThcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgInN0w6RsbCBpbiBzb20gc2tyaXZza3lkZGFkIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAic3TDpGxsIGluIHNvbSBsw6RzIG9jaCBza3JpdiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjc2Cittc2dpZCAiZ2V0IHJlYWQtb25seSIKK21zZ3N0ciAiaMOkbXRhIHNrcml2c2t5ZGRhZCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCisjLCBmdXp6eQorbXNnaWQgImdldCBsb2dpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgImjDpG10YSBzZWt0b3JzdG9ybGVrIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IHBoeXNpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgImjDpG10YSBzZWt0b3JzdG9ybGVrIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6OTQKK21zZ2lkICJnZXQgbWluaW11bSBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTAwCittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwNgorIywgZnV6enkKK21zZ2lkICJnZXQgYWxpZ25tZW50IG9mZnNldCIKK21zZ3N0ciAiZmVsYWt0aWcgc3RvcmxlayBww6UgaW5vZCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExMgorIywgZnV6enkKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgIkV4dHJhIHNla3RvcmVyIHBlciBjeWxpbmRlciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExOAorbXNnaWQgImdldCBibG9ja3NpemUiCittc2dzdHIgImjDpG10YSBibG9ja3N0b3JsZWsiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMjUKK21zZ2lkICJzZXQgYmxvY2tzaXplIgorbXNnc3RyICJzdMOkbGwgaW4gYmxvY2tzdG9ybGVrIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgImjDpG10YSAzMi1iaXRhcnMgc2VrdG9yYW50YWwiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAiaMOkbXRhIHN0b3JsZWsgaSBieXRlIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTQ0Cittc2dpZCAic2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAic3TDpGxsIGluIGbDtnJ2w6Rnc2zDpHNuaW5nIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAiaMOkbXRhIGbDtnJ2w6Rnc2zDpHNuaW5nIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTU3Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJzdMOkbGwgaW4gZmlsc3lzdGVtc2bDtnJ2w6Rnc2zDpHNuaW5nIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTYzCittc2dpZCAiZ2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJow6RtdGEgZmlsc3lzdGVtc2bDtnJ2w6Rnc2zDpHNuaW5nIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTY3Cittc2dpZCAiZmx1c2ggYnVmZmVycyIKK21zZ3N0ciAidMO2bSBidWZmZXJ0YXIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJsw6RzIG9tIHBhcnRpdGlvbnN0YWJlbGxlbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAiQW52w6RuZG5pbmc6XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyAtLXJlcG9ydCBbZGV2aWNlc11cbiIKK21zZ3N0ciAiICAlcyAtLXJlcG9ydCBbZW5oZXRlcl1cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIFstdnwtcV0gY29tbWFuZHMgZGV2aWNlc1xuIgorbXNnc3RyICIgICVzIFstdnwtcV0ga29tbWFuZG9uIGVuaGV0ZXJcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJBdmFpbGFibGUgY29tbWFuZHM6XG4iCittc2dzdHIgIlRpbGxnw6RuZ2xpZ2Ega29tbWFuZG9uOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3Cittc2dpZCAiZ2V0IHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9ycyIKK21zZ3N0ciAiaMOkbXRhIHN0b3JsZWsgaSA1MTItYnl0ZSBzZWt0b3JlciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBjb21tYW5kOiAlc1xuIgorbXNnc3RyICIlczogT2vDpG50IGtvbW1hbmRvOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIGtyw6R2ZXIgZXR0IGFyZ3VtZW50XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZmFpbGVkLlxuIgorbXNnc3RyICIlcyBtaXNzbHlja2FkZXMuXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3VjY2VlZGVkLlxuIgorbXNnc3RyICIlcyBseWNrYWRlcy5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlczoga2FuIGludGUgw7ZwcG5hICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBpb2N0bC1mZWwgcMOlICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU3RhcnRTZWMgICAgICAgICAgICBTaXplICAgRGV2aWNlXG4iCittc2dzdHIgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU3RhcnRzZWt0b3IgIFN0b3JsZWsgRW5oZXRcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6XG4iCittc2dzdHIgImFudsOkbmRuaW5nOlxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJcdE5PVEU6IGVsdnR1bmUgb25seSB3b3JrcyB3aXRoIDIuNCBrZXJuZWxzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJwYXJzZSBlcnJvclxuIgorbXNnc3RyICJzw7ZrZmVsIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1pc3NpbmcgYmxvY2tkZXZpY2UsIHVzZSAtaCBmb3IgaGVscFxuIgorbXNnc3RyICIlcyDDpHIgaW5nZW4gYmxvY2tlbmhldCBlbGxlciBmaWxcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJlbHZ0dW5lIGlzIG9ubHkgdXNlZnVsIG9uIG9sZGVyIGtlcm5lbHM7XG4iCisiZm9yIDIuNiB1c2UgSU8gc2NoZWR1bGVyIHN5c2ZzIHR1bmFibGVzIGluc3RlYWQuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIkZvcm1hdGVyYXIuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NDkgZGlzay11dGlscy9mZGZvcm1hdC5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImRvbmVcbiIKK21zZ3N0ciAia2xhclxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmVyaWZ5aW5nIC4uLiAiCittc2dzdHIgIlZlcmlmaWVyYXIuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIkzDpHN0ZTogIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmxlbSByZWFkaW5nIGN5bGluZGVyICVkLCBleHBlY3RlZCAlZCwgcmVhZCAlZFxuIgorbXNnc3RyICJQcm9ibGVtIHZpZCBsw6RzbmluZyBhdiBjeWxpbmRlciAlZCwgZsO2cnbDpG50YWRlICVkLCBsw6RzdGUgJWRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJiYWQgZGF0YSBpbiBjeWwgJWRcbiIKKyJDb250aW51aW5nIC4uLiAiCittc2dzdHIgIiIKKyJmZWxha3RpZyBkYXRhIHDDpSBjeWxpbmRlciAlZFxuIgorIkZvcnRzw6R0dGVyLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiAlcyBbIC1uIF0gZW5oZXRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjExOCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg0CisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxODEgZGlzay11dGlscy9ta2ZzLmJmcy5jOjExNCBkaXNrLXV0aWxzL21rZnMuYzo1MgorIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjgxMiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzIKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDg3IG1pc2MtdXRpbHMvZGRhdGUuYzoxNzkgbWlzYy11dGlscy9yZW5hbWUuYzo3OQorIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNDcgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICglcylcbiIKK21zZ3N0ciAiJXMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6IGludGUgZW4gYmxvY2tlbmhldFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQyCittc2dpZCAiQ291bGQgbm90IGRldGVybWluZSBjdXJyZW50IGZvcm1hdCB0eXBlIgorbXNnc3RyICJLdW5kZSBpbnRlIGF2Z8O2cmEgbnV2YXJhbmRlIGZvcm1hdHR5cCIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlcy1zaWRlZCwgJWQgdHJhY2tzLCAlZCBzZWMvdHJhY2suIFRvdGFsIGNhcGFjaXR5ICVkIGtCLlxuIgorbXNnc3RyICIlc3NpZGlnLCAlZCBzcMOlciwgJWQgc2VrdG9yZXIvc3DDpXIuIFRvdGFsIGthcGFjaXRldCAlZCBrQi5cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIkRvdWJsZSIKK21zZ3N0ciAiRHViYmVsIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICJFbmtlbCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaHZdIFsteCBkaXJdIGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisiIC12ICAgICAgICAgYmUgbW9yZSB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB0byB0ZXN0XG4iCittc2dzdHIgIiIKKyJhbnbDpG5kbmluZzogJXMgWy1odl0gWy14IGthdF0gZmlsXG4iCisiIC1oICAgICAgICAgdmlzYSBkZW5uYSBoasOkbHB0ZXh0XG4iCisiIC14IGthdCAgICAgcGFja2EgdXBwIGkga2F0XG4iCisiIC12ICAgICAgICAgdmFyIG1lciB1dGbDtnJsaWdcbiIKKyIgZmlsICAgICAgICBmaWwgYXR0IHRlc3RhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN0YXQgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKE7DpHN0YSBmaWw6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2NyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIm9wZW5wdHkgbWlzc2x5Y2thZGVzXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIGZhaWxlZDogdW5hYmxlIHRvIGRldGVybWluZSBkZXZpY2Ugc2l6ZTogJXMiCittc2dzdHIgIiVzOiB2YXJuaW5nLS1rYW4gaW50ZSBhdmfDtnJhIGZpbHN5c3RlbXNzdG9ybGVrIFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgYSBibG9jayBkZXZpY2Ugb3IgZmlsZTogJXMiCittc2dzdHIgIiVzIMOkciBpbmdlbiBibG9ja2VuaGV0IGVsbGVyIGZpbFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKKyMsIGZ1enp5Cittc2dpZCAiZmlsZSBsZW5ndGggdG9vIHNob3J0IgorbXNnc3RyICIlczogb2dpbHRpZ3QgY3JhbWZzLS1maWxsw6RuZ2RlbiDDpHIgZsO2ciBrb3J0XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGZhaWxlZDogJXMiCittc2dzdHIgIihOw6RzdGEgZmlsOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2CisjLCBmdXp6eQorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIkFuZ2UgdHlwZW4gYXYgZmlsc3lzdGVtOiAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAiQW50YWwgc2VrdG9yZXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAiVmFybmluZzogcGFydGl0aW9uICVzIGZvcnRzw6R0dGVyIHV0YW5mw7ZyIGjDpXJkZGlza2VuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIiVzOiB2YXJuaW5nLS1nYW1tYWwgY3JhbWZzLWF2YmlsZCwgaW5nZW4gQ1JDXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNDYKK21zZ2lkICJ1bmFibGUgdG8gdGVzdCBDUkM6IG9sZCBjcmFtZnMgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzIgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjMzOQorIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ3NyBsb2dpbi11dGlscy9jaGZuLmM6NTI5IGxvZ2luLXV0aWxzL2Noc2guYzo0MzkKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTQxIHN5cy11dGlscy9jeXR1bmUuYzozMjEKK21zZ2lkICJtYWxsb2MgZmFpbGVkIgorbXNnc3RyICJtaW5uZXNhbGxva2VyaW5nIG1pc3NseWNrYWRlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI5NworIywgZnV6enkKK21zZ2lkICJjcmMgZXJyb3IiCittc2dzdHIgIiwgZmVsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY0CisjLCBmdXp6eQorbXNnaWQgInJvb3QgaW5vZGUgaXMgbm90IGRpcmVjdG9yeSIKK21zZ3N0ciAicm90aW5vZGVuIMOkciBpbnRlIGVuIGthdGFsb2ciCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHJvb3Qgb2Zmc2V0ICglbHUpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozODcKK21zZ2lkICJkYXRhIGJsb2NrIHRvbyBsYXJnZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzkxCisjLCBjLWZvcm1hdAorbXNnaWQgImRlY29tcHJlc3Npb24gZXJyb3IgJXAoJWQpOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgIGhvbGUgYXQgJWxkICglemQpXG4iCittc2dzdHIgIiAgaMOlbCB2aWQgJWxkICglZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyMyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgdW5jb21wcmVzc2luZyBibG9jayBhdCAlbGQgdG8gJWxkICglbGQpXG4iCittc2dzdHIgIiAgcGFja2FyIHVwcCBibG9jayB2aWQgJWxkIHRpbGwgJWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAiJXM6IElja2UtYmxvY2tieXRlICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vbi1zaXplICglbGQgdnMgJWxkKSBieXRlcyIKK21zZ3N0ciAiJXM6IElja2Utc3Rvcmxla3NieXRlICglbGQgZ2VudGVtb3QgJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBmYWlsZWQ6ICVzIgorbXNnc3RyICIoTsOkc3RhIGZpbDogJXMpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibW9udGVyaW5nIG1pc3NseWNrYWRlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibW9udGVyaW5nIG1pc3NseWNrYWRlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXRpbWUgZmFpbGVkOiAlcyIKK21zZ3N0ciAiZmVsYWt0aWd0IHRpbWVvdXR2w6RyZGU6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0OTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgIi9kZXY6IGNoZGlyKCkgbWlzc2x5Y2thZGVzOiAlbSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTQKK21zZ2lkICJiYWQgZmlsZW5hbWUgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MjEKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGlub2RlIG9mZnNldCIKK21zZ3N0ciAiZmVsYWt0aWcgc3RvcmxlayBww6UgaW5vZCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUzNworbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NDAKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIHNpemUgYW5kIG5vbi16ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTcxCittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3NAorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICIlczogc3Rvcmxla3NmZWwgaSBzeW1ib2xpc2thIGzDpG5rZW4gXCIlc1wiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN5bWxpbmsgZmFpbGVkOiAlcyIKK21zZ3N0ciAiZnN5bmMgbWlzc2x5Y2thZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWNpYWwgZmlsZSBoYXMgbm9uLXplcm8gb2Zmc2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjI1CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZm8gaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAic29ja2V0IGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJib2d1cyBtb2RlOiAlcyAoJW8pIgorbXNnc3RyICIlczogZmVsYWt0aWdhIHLDpHR0aWdoZXRlciBww6UgXCIlc1wiICglbylcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAibW9udGVyaW5nIG1pc3NseWNrYWRlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBzdGFydCAoJWxkKSA8IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKSArIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiCittc2dzdHIgIiVzOiBvZ2lsdGlndCBjcmFtZnMtLWthdGFsb2dkYXRhc2x1dCAoJWxkKSAhPSBmaWxkYXRhYsO2cmphbiAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgZmlsZSBkYXRhIG9mZnNldCIKK21zZ3N0ciAiJXM6IG9naWx0aWd0IGNyYW1mcy0tb2dpbHRpZ3QgZmlsZGF0YWF2c3TDpW5kXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MTQKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlIG91dGJ1ZmZlciIKK21zZ3N0ciAiS2FuIGludGUgYWxsb2tlcmEgYnVmZmVydC5cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworIywgZnV6enkKK21zZ2lkICJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiCittc2dzdHIgIiVzOiBrb21waWxlcmFkIHV0YW4gc3TDtmQgZsO2ciAteFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCittc2dzdHIgIkFudsOkbmRuaW5nOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtblxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbW91bnRlZC5cdCAiCittc2dzdHIgIiVzIMOkciBtb250ZXJhZC5cdCAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyNQorbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byBjb250aW51ZSIKK21zZ3N0ciAiVmlsbCBkdSB2ZXJrbGlnZW4gZm9ydHPDpHR0YSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgImtvbnRyb2xsIGF2YnJ1dGVuLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNDggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiWm9ubnVtbWVyIDwgXCJGSVJTVFpPTkVcIiBpIGZpbGVuIFwiJXNcIi4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA+PSBaT05FUyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJab25udW1tZXIgPj0gXCJaT05FU1wiIGkgZmlsZW4gXCIlc1wiLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiVGEgYm9ydCBibG9jayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IHVuYWJsZSB0byBzZWVrIHRvIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJMw6RzZmVsOiBrYW4gaW50ZSBzw7ZrYSB0aWxsIGJsb2NrZXQgaSBmaWxlbiBcIiVzXCJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiTMOkc2ZlbDogZmVsYWt0aWd0IGJsb2NrIGkgZmlsZW4gXCIlc1wiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQxOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSW50ZXJuYWwgZXJyb3I6IHRyeWluZyB0byB3cml0ZSBiYWQgYmxvY2tcbiIKKyJXcml0ZSByZXF1ZXN0IGlnbm9yZWRcbiIKK21zZ3N0ciAiIgorIkludGVybnQgZmVsOiBmw7Zyc8O2a2VyIGF0dCBza3JpdmEgZmVsYWt0aWd0IGJsb2NrXG4iCisiU2tyaXZiZWfDpHJhbiBpZ25vcmVyYXNcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJzw7ZrbmluZyBtaXNzbHlja2FkZXMgaSBcIndyaXRlX2Jsb2NrXCIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJTa3JpdmZlbDogZmVsYWt0aWd0IGJsb2NrIGkgZmlsZW4gXCIlc1wiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICJzw7ZrbmluZyBtaXNzbHlja2FkZXMgaSBcIndyaXRlX3N1cGVyX2Jsb2NrXCIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgc3VwZXItYmxvY2siCittc2dzdHIgImthbiBpbnRlIHNrcml2YSBzdXBlcmJsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTYKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJLYW4gaW50ZSBza3JpdmEgaW5vZHN0YWJlbGwiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1OAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAiS2FuIGludGUgc2tyaXZhIHpvbnRhYmVsbCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTYwCittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiS2FuIGludGUgc2tyaXZhIGlub2RlciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTg3Cittc2dpZCAic2VlayBmYWlsZWQiCittc2dzdHIgInPDtmtuaW5nIG1pc3NseWNrYWRlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICJrYW4gaW50ZSBhbGxva2VyYSBidWZmZXJ0YXIgZsO2ciB0YWJlbGxlciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTk0Cittc2dpZCAidW5hYmxlIHRvIHJlYWQgc3VwZXIgYmxvY2siCittc2dzdHIgImthbiBpbnRlIGzDpHNhIHN1cGVyYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxMgorbXNnaWQgImJhZCBtYWdpYyBudW1iZXIgaW4gc3VwZXItYmxvY2siCittc2dzdHIgImZlbGFrdGlnIG1hZ2lzayBzaWZmcmEgaSBzdXBlcmJsb2NrZXQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNAorbXNnaWQgIk9ubHkgMWsgYmxvY2tzL3pvbmVzIHN1cHBvcnRlZCIKK21zZ3N0ciAiRW5kYXN0IDEga0Igc3RvcmEgYmxvY2svem9uZXIgc3TDtmRzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTYKK21zZ2lkICJiYWQgc19pbWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiZmVsYWt0aWd0IFwic19pbWFwX2Jsb2Nrc1wiLWbDpGx0IGkgc3VwZXJibG9ja2V0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiZmVsYWt0aWd0IFwic196bWFwX2Jsb2Nrc1wiLWbDpGx0IGkgc3VwZXJibG9ja2V0IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjUKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiCittc2dzdHIgIkthbiBpbnRlIGFsbG9rZXJhIGJ1ZmZlcnQgZsO2ciBpbm9kc3RhYmVsbCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI4Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBtYXAiCittc2dzdHIgIkthbiBpbnRlIGFsbG9rZXJhIGJ1ZmZlcnQgZsO2ciB6b25rYXJ0YSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJLYW4gaW50ZSBhbGxva2VyYSBidWZmZXJ0IGbDtnIgaW5vZGVyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzYKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBjb3VudCIKK21zZ3N0ciAiS2FuIGludGUgYWxsb2tlcmEgYnVmZmVydCBmw7ZyIGlub2RzcsOka25hcmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIkthbiBpbnRlIGFsbG9rZXJhIGJ1ZmZlcnQgZsO2ciB6b25yw6RrbmFyZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICJLYW4gaW50ZSBsw6RzYSBpbm9kc3RhYmVsbCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgIkthbiBpbnRlIGzDpHNhIHpvbnRhYmVsbCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ1Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGVzIgorbXNnc3RyICJLYW4gaW50ZSBsw6RzYSBpbm9kZXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIKK21zZ3N0ciAiVmFybmluZzogXCJGaXJzdHpvbmVcIiAhPSBcIk5vcm1fZmlyc3R6b25lXCJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgaW5vZGVzXG4iCittc2dzdHIgIiVsZCBpbm9kZXJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgYmxvY2tzXG4iCittc2dzdHIgIiVsZCBibG9ja1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIlwiRmlyc3RkYXRhem9uZVwiPSVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmVzaXplPSVkXG4iCittc2dzdHIgIlpvbnN0b3JsZWs9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIk1heHN0b3JsZWs9JWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIkZpbHN5c3RlbXN0aWxsc3TDpW5kPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisiXCJuYW1lbGVuXCI9JWRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjczIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtYXJrZWQgdW51c2VkLCBidXQgdXNlZCBmb3IgZmlsZSAnJXMnXG4iCittc2dzdHIgIklub2QgJWQgw6RyIG1hcmtlcmFkIHNvbSBvYW52w6RuZCwgbWVuIGFudsOkbmRzIGbDtnIgZmlsZW4gXCIlc1wiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjgKK21zZ2lkICJNYXJrIGluIHVzZSIKK21zZ3N0ciAiTcOkcmsgc29tIGFudsOkbmQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iCittc2dzdHIgIkZpbGVuIFwiJXNcIiBoYXIgcsOkdHRpZ2hldGVybmEgJTA1b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIlZhcm5pbmc6IGFudGFsZXQgaW5vZGVyIMOkciBmw7ZyIHN0b3J0LlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAicm90aW5vZGVuIMOkciBpbnRlIGVuIGthdGFsb2ciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc4OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgaGFzIGJlZW4gdXNlZCBiZWZvcmUuIE5vdyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJCbG9ja2V0IGhhciBhbnbDpG50cyB0aWRpZ2FyZS4gTnUgaSBmaWxlbiBcIiVzXCIuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3OTAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIzCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTUKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxMAorbXNnaWQgIkNsZWFyIgorbXNnc3RyICJUw7ZtIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iCittc2dzdHIgIkJsb2NrICVkIGkgZmlsZW4gXCIlc1wiIMOkciBtYXJrZXJhdCBzb20gb2FudsOkbnQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiS29ycmlnZXJhIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZGlyZWN0b3J5ICclcycgY29udGFpbnMgYSBiYWQgaW5vZGUgbnVtYmVyIGZvciBmaWxlICclLipzJy4iCittc2dzdHIgIiIKKyJLYXRhbG9nZW4gXCIlc1wiIGlubmVow6VsbGVyIGV0dCBmZWxha3RpZ3QgaW5vZHNudW1tZXIgZsO2ciBmaWxlbiBcIiUuKnNcIi4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQ0Cittc2dpZCAiIFJlbW92ZSIKK21zZ3N0ciAiIFRhIGJvcnQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKK21zZ3N0ciAiJXM6IGZlbGFrdGlnIGthdGFsb2c6IFwiLlwiIGtvbW1lciBpbnRlIGbDtnJzdFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiJXM6IGZlbGFrdGlnIGthdGFsb2c6IFwiLi5cIiBrb21tZXIgaW50ZSBww6UgYW5kcmEgcGxhdHNcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTE5Cittc2dpZCAiaW50ZXJuYWwgZXJyb3IiCittc2dzdHIgImludGVybnQgZmVsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTA0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiJXM6IGZlbGFrdGlnIGthdGFsb2c6IHN0b3JsZWsgPCAzMiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEzNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGJhZF96b25lIgorbXNnc3RyICJzw7ZrbmluZyBtaXNzbHlja2FkZXMgaSBcImJhZF96b25lXCIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDUgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtb2RlIG5vdCBjbGVhcmVkLiIKK21zZ3N0ciAiSW5vZCAlZCDDpHIgaW50ZSB0w7ZtZC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIklub2QgJWQgw6RyIG9hbnbDpG5kLCBtYXJrZXJhZCBzb20gYW52w6RuZCBpIGJpdHRhYmVsbGVuLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIHVzZWQsIG1hcmtlZCB1bnVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIklub2QgJWQgw6RyIGFudsOkbmQsIG1hcmtlcmFkIHNvbSBvYW52w6RuZCBpIGJpdHRhYmVsbGVuLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICJTdMOkbGwgaW4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgY291bnRlZD0lZC4iCittc2dzdHIgIklub2QgJWQgKHLDpHR0aWdoZXQgPSAlMDdvKSwgaV9ubGlua3M9JWQsIHLDpGtuYWRlPSVkLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIyCittc2dpZCAiU2V0IGlfbmxpbmtzIHRvIGNvdW50IgorbXNnc3RyICJTdMOkbGwgaV9ubGlua3MgdGlsbCByw6RrbmF0IGFudGFsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIKK21zZ3N0ciAiWm9uICVkOiBtYXJrZXJhZCBzb20gYW52w6RuZCwgaW5nZW4gZmlsIGFudsOkbmRlciBkZW4uIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzYKK21zZ2lkICJVbm1hcmsiCittc2dzdHIgIkF2bWFya2VyYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJab24gJWQ6IGFudsOkbmRzLCByw6RrbmFkZT0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbm90IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJab24gJWQ6IGFudsOkbmRzIGludGUsIHLDpGtuYWRlPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODkgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc3CisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzkKK21zZ2lkICJiYWQgaW5vZGUgc2l6ZSIKK21zZ3N0ciAiZmVsYWt0aWcgc3RvcmxlayBww6UgaW5vZCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI5MQorbXNnaWQgImJhZCB2MiBpbm9kZSBzaXplIgorbXNnc3RyICJmZWxha3RpZyBzdG9ybGVrIHDDpSB2Mi1pbm9kIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzE3Cittc2dpZCAibmVlZCB0ZXJtaW5hbCBmb3IgaW50ZXJhY3RpdmUgcmVwYWlycyIKK21zZ3N0ciAiYmVow7Z2ZXIgdGVybWluYWwgZsO2ciBpbnRlcmFrdGl2YSByZXBhcmF0aW9uZXIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICclcyc6ICVzIgorbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgXCIlc1wiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiJXMgw6RyIHJlbnQsIGluZ2VuIGtvbnRyb2xsLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcmNpbmcgZmlsZXN5c3RlbSBjaGVjayBvbiAlcy5cbiIKK21zZ3N0ciAiVHZpbmdhciBmaWxzeXN0ZW1za29udHJvbGwgcMOlICVzLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gb24gJXMgaXMgZGlydHksIG5lZWRzIGNoZWNraW5nLlxuIgorbXNnc3RyICJGaWxzeXN0ZW1ldCBww6UgJXMgw6RyIHNtdXRzaWd0LCBiZWjDtnZlciBrb250cm9sbC5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZsZCBpbm9kZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmxkIGlub2RlciBhbnbDpG5kcyAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTZsZCB6b25lcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiJTZsZCB6b25lciBhbnbDpG5kcyAoJWxkJSUpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmQgdmFubGlnYSBmaWxlclxuIgorIiU2ZCBrYXRhbG9nZXJcbiIKKyIlNmQgdGVja2VuZW5oZXRzZmlsZXJcbiIKKyIlNmQgYmxvY2tlbmhldHNmaWxlclxuIgorIiU2ZCBsw6Rua2FyXG4iCisiJTZkIHN5bWJvbGlza2EgbMOkbmthclxuIgorIi0tLS0tLVxuIgorIiU2ZCBmaWxlclxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiRklMRSBTWVNURU0gSEFTIEJFRU4gQ0hBTkdFRFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiRklMU1lTVEVNRVQgSEFSIMOETkRSQVRTXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IG1pc3NseWNrYWRlcyBtZWQgYXR0IMO2cHBuYTogJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzZWVrIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBzw7ZrZmVsIHDDpSAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGzDpHNmZWwgcMOlICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3IgY291bnQ6ICVkLCBzZWN0b3Igc2l6ZTogJWRcbiIKK21zZ3N0ciAic2VrdG9yYW50YWw6ICVkLCBzZWt0b3JzdG9ybGVrOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiBwYXJzZSBlcnJvclxuIgorbXNnc3RyICIlczogZmVsIHZpZCBmbGFnZ3RvbGtuaW5nXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKK21zZ3N0ciAiQW52w6RuZG5pbmc6ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLWF2YmlsZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXZdIFstTiBuci1vZi1pbm9kZXNdIFstViB2b2x1bWUtbmFtZV1cbiIKKyIgICAgICAgWy1GIGZzbmFtZV0gZGV2aWNlIFtibG9jay1jb3VudF1cbiIKK21zZ3N0ciAiIgorIkFudsOkbmRuaW5nOiAlcyBbLXZdIFstTiBhbnRhbC1pbm9kZXJdIFstViB2b2x5bW5hbW5dXG4iCisiICAgICAgICAgICAgWy1GIGZpbHN5c3RlbXNuYW1uXSBlbmhldCBbYmxvY2thbnRhbF1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzMAorbXNnaWQgInZvbHVtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICJ2b2x5bW5hbW5ldCDDpHIgZsO2ciBsw6VuZ3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzcKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAiZmlsc3lzdGVtc25hbW5ldCDDpHIgZsO2ciBsw6VuZ3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJrYW4gaW50ZSB0YSBzdGF0dXMgcMOlIGVuaGV0ZW4gJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIMOkciBpbmdlbiBibG9ja3NwZWNpYWxlbmhldCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE3MSBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMiCittc2dzdHIgImthbiBpbnRlIMO2cHBuYSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgImthbiBpbnRlIGjDpG10YSBzdG9ybGVrZW4gcMOlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIKK21zZ3N0ciAiYmxvY2thcmd1bWVudGV0IMOkciBmw7ZyIHN0b3J0LCBtYXggw6RyICVsdSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIwMgorbXNnaWQgInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiCittc2dzdHIgImbDtnIgbcOlbmdhIGlub2RlciAtIG1heCDDpHIgNTEyIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlLCBuZWVkIGF0IGxlYXN0ICVsbHUgYmxvY2tzIgorbXNnc3RyICJpbnRlIHRpbGxyw6Rja2xpZ3QgbWVkIHV0cnltbWUsIGJlaMO2dmVyIG1pbnN0ICVsdSBibG9jayIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICJFbmhldDogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNAorIywgYy1mb3JtYXQKK21zZ2lkICJWb2x1bWU6IDwlLTZzPlxuIgorbXNnc3RyICJWb2x5bTogPCUtNnM+XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRlNuYW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiRmlsc3lzdGVtc25hbW46IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrU2l6ZTogJWRcbiIKK21zZ3N0ciAiQmxvY2tzdG9ybGVrOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluIDEgYmxvY2spXG4iCittc2dzdHIgIklub2RlcjogJWQgKGkgMSBibG9jaylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gJWxsZCBibG9ja3MpXG4iCittc2dzdHIgIklub2RlcjogJWQgKGkgJWxkIGJsb2NrKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJCbG9ja3M6ICVsbGRcbiIKK21zZ3N0ciAiQmxvY2s6ICVsZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlIGVuZDogJWQsIERhdGEgZW5kOiAlZFxuIgorbXNnc3RyICJJbm9kc3NsdXQ6ICVkLCBkYXRhc2x1dDogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzOQorbXNnaWQgImVycm9yIHdyaXRpbmcgc3VwZXJibG9jayIKK21zZ3N0ciAiZmVsIHZpZCBza3Jpdm5pbmcgYXYgc3VwZXJibG9jayIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI1OQorbXNnaWQgImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIKK21zZ3N0ciAiZmVsIHZpZCBza3Jpdm5pbmcgYXYgcm90aW5vZCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NAorbXNnaWQgImVycm9yIHdyaXRpbmcgaW5vZGUiCittc2dzdHIgImZlbCB2aWQgc2tyaXZuaW5nIGF2IGlub2QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjcKK21zZ2lkICJzZWVrIGVycm9yIgorbXNnc3RyICJzw7ZrZmVsIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjczCittc2dpZCAiZXJyb3Igd3JpdGluZyAuIGVudHJ5IgorbXNnc3RyICJmZWwgdmlkIHNrcml2bmluZyBhdiBcIi5cIi1wb3N0IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6Mjc3Cittc2dpZCAiZXJyb3Igd3JpdGluZyAuLiBlbnRyeSIKK21zZ3N0ciAiZmVsIHZpZCBza3Jpdm5pbmcgYXYgXCIuLlwiLXBvc3QiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2xvc2luZyAlcyIKK21zZ3N0ciAiZmVsIHZpZCBzdMOkbmduaW5nIGF2ICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogbWtmcyBbLVZdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBkZXZpY2UgW3NpemVdXG4iCittc2dzdHIgIiIKKyJBbnbDpG5kbmluZzogbWtmcyBbLVZdIFstdCBmaWxzeXN0ZW1zdHlwXSBbZmlsc3lzdGVtc2ZsYWdnb3JdIGVuaGV0ICIKKyJbc3Rvcmxla11cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6ODggZGlzay11dGlscy9ta2ZzLmM6OTYgZmRpc2svY2ZkaXNrLmM6MzUzCisjOiBnZXRvcHQvZ2V0b3B0LmM6ODYgZ2V0b3B0L2dldG9wdC5jOjk2IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE91dCBvZiBtZW1vcnkhXG4iCittc2dzdHIgIiVzOiBTbHV0IHDDpSBtaW5uZSFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZnMgKCVzKVxuIgorbXNnc3RyICJta2ZzICglcylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjEyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisiYW52w6RuZG5pbmc6ICVzIFstaF0gWy12XSBbLWIgYmxrc3RybF0gWy1lIHV0Z8OldmFdIFstaSBmaWxdIFstbiBuYW1uXSBrYXRuYW1uICIKKyJ1dGZpbFxuIgorIiAtaCAgICAgICAgIHZpc2EgZGVubmEgaGrDpGxwdGV4dFxuIgorIiAtdiAgICAgICAgIHZhciBpbmZvcm1hdGl2XG4iCisiIC1FICAgICAgICAgZ8O2ciBhbGxhIHZhcm5pbmdhciB0aWxsIGZlbCAoc2x1dHN0YXR1cyBpbnRlIG5vbGwpXG4iCisiIC1iIGJsa3N0cmwgYW52w6RuZCBkZW5uYSBibG9ja3N0b3JsZWssIG3DpXN0ZSB2YXJhIGxpa2EgbWVkIHNpZHN0b3JsZWtcbiIKKyIgLWUgdXRnw6V2YSAgc3TDpGxsIGluIGVkaXRpb25zbnVtbWVyIChkZWwgYXYgZnNpZClcbiIKKyIgLWkgZmlsICAgICBpbmZvZ2EgZW4gZmlsYXZiaWxkIGkgZmlsc3lzdGVtZXQgKGtyw6R2ZXIgPj0gMi40LjApXG4iCisiIC1uIG5hbW4gICAgc3TDpGxsIGluIG5hbW5ldCBww6UgY3JhbWZzLWZpbHN5c3RlbWV0XG4iCisiIC1wICAgICAgICAgZnlsbCB1dCBtZWQgJWQgYnl0ZSBmw7ZyIHN0YXJ0a29kXG4iCisiIC1zICAgICAgICAgc29ydGVyYSBrYXRhbG9ncG9zdGVyIChnYW1tYWwgZmxhZ2dhLCBpZ25vcmVyYWQpXG4iCisiIC16ICAgICAgICAgc2thcGEgZXhwbGljaXRhIGjDpWwgKGtyw6R2ZXIgPj0gMi4zLjM5KVxuIgorIiBrYXRuYW1uICAgIHJvdCBmw7ZyIGZpbHN5c3RlbWV0IHNvbSBza2Ega29tcHJpbWVyYXNcbiIKKyIgdXRmaWwgICAgICB1dGRhdGFmaWxcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjMzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIk15Y2tldCBsw6VuZ3QgKCV1IGJ5dGUpIGZpbG5hbW4gXCIlc1wiIGhpdHRhZGVzLlxuIgorIiDDlmthIE1BWF9JTlBVVF9OQU1FTEVOIGkgbWtjcmFtZnMuYyBvY2gga29tcGlsZXJhIG9tLiBBdnNsdXRhci5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICJmaWxzeXN0ZW1ldCDDpHIgZsO2ciBzdG9ydC4gQXZzbHV0YXIuXG4iCisKKyMgwrcgKGNlbnRlcmVkIGRvdCkgaXMgbm9ybWFsbHkgdXNlZCBhcyB0aGUgbXVsdGlwbGljYXRpb24gc2lnbiBpbiBTd2VkaXNoLgorIyBTZWUgIlN2ZW5za2Egc2tyaXZyZWdsZXIiIMKnMjYwLgorIworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIkFJRUVFOiBibG9jayBcImtvbXByaW1lcmF0XCIgdGlsbCA+IDLCt2Jsb2NrbMOkbmdkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIlNi4yZiUlICglK2QgYnl0ZSlcdCVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4NTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBndWVzdGltYXRlIG9mIHJlcXVpcmVkIHNpemUgKHVwcGVyIGJvdW5kKSBpcyAlbGxkTUIsIGJ1dCBtYXhpbXVtICIKKyJpbWFnZSBzaXplIGlzICV1TUIuICBXZSBtaWdodCBkaWUgcHJlbWF0dXJlbHkuXG4iCittc2dzdHIgIiIKKyJ2YXJuaW5nOiB1cHBza2F0dG5pbmcgYXYgYmVnw6RyZCBzdG9ybGVrICjDtnZyZSBncsOkbnMpIMOkciAlTGQgTUIsIG1lbiBtYXhpbWFsICIKKyJhdmJpbGRzc3RvcmxlayDDpHIgJXUgTUIuIFZpIGthbiBkw7YgaSBmw7ZydGlkLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiSW5rbHVzaXZlOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEaXJlY3RvcnkgZGF0YTogJXpkIGJ5dGVzXG4iCittc2dzdHIgIkthdGFsb2dkYXRhOiAlZCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkV2ZXJ5dGhpbmc6ICV6ZCBraWxvYnl0ZXNcbiIKK21zZ3N0ciAiQWxsdGluZzogJWQga2lsb2J5dGVcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJTdXBlcmJsb2NrOiAlZCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICJDUkM6ICV4XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UgYWxsb2NhdGVkIGZvciBST00gaW1hZ2UgKCVsbGQgYWxsb2NhdGVkLCAlenUgdXNlZClcbiIKK21zZ3N0ciAiIgorImludGUgdGlsbHLDpGNrbGlndCBtZWQgdXRyeW1tZSBhbGxva2VyYXQgZsO2ciBST00tYXZiaWxkICglbGxkIGFsbG9rZXJhdCwgJWQgIgorImFudsOkbnQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiUk9NLWF2YmlsZHNza3Jpdm5pbmcgbWlzc2x5Y2thZGVzICglZCAlZClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlbmFtZXMgdHJ1bmNhdGVkIHRvIDI1NSBieXRlcy5cbiIKK21zZ3N0ciAidmFybmluZzogZmlsbmFtbiBhdmtvcnRhZGUgdGlsbCAyNTUgYnl0ZS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlcyB3ZXJlIHNraXBwZWQgZHVlIHRvIGVycm9ycy5cbiIKK21zZ3N0ciAidmFybmluZzogZmlsZXIgaG9wcGFkZXMgw7Z2ZXIgcMOlIGdydW5kIGF2IGZlbC5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIHNpemVzIHRydW5jYXRlZCB0byAlbHVNQiAobWludXMgMSBieXRlKS5cbiIKK21zZ3N0ciAidmFybmluZzogZmlsc3Rvcmxla2FyIGF2a29ydGFkZSB0aWxsICVsdSBNQiAobWludXMgMSBieXRlKS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogdWlkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisidmFybmluZzogdWlkIGF2a29ydGFkZSB0aWxsICV1IGJpdGFyIChkZXR0YSBrYW4gdmFyYSBldHQgc8Oka2VyaGV0c3Byb2JsZW0pLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBnaWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKyJ2YXJuaW5nOiBnaWQgYXZrb3J0YWRlIHRpbGwgJXUgYml0YXIgKGRldHRhIGthbiB2YXJhIGV0dCBzw6RrZXJoZXRzcHJvYmxlbSkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisiVkFSTklORzogZW5oZXRzbnVtbWVyIGF2a29ydGFkZSB0aWxsICV1IGJpdGFyLiBEZXR0YSBiZXR5ZGVyIG1lZCBzdMO2cnN0YVxuIgorInNhbm5vbGlraGV0IGF0dCBlbiBkZWwgZW5oZXRzZmlsZXIga29tbWVyIGF0dCB2YXJhIGZlbGFrdGlnYS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWMgfCAtbCBmaWxlbmFtZV0gWy1uWFhdIFstaVhYXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiQW52w6RuZG5pbmc6ICVzIFstYyB8IC1sIGZpbG5hbW5dIFstblhYXSBbLWlYWF0gL2Rldi9uYW1uIFtibG9ja11cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2UgYSBmaWxlc3lzdGVtIGhlcmUhIgorbXNnc3RyICIlcyDDpHIgbW9udGVyYWQ7IGtvbW1lciBpbnRlIGF0dCBza2FwYSBldHQgZmlsc3lzdGVtIGjDpHIhIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxODgKK21zZ2lkICJzZWVrIHRvIGJvb3QgYmxvY2sgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAic8O2a25pbmcgdGlsbCBzdGFydGJsb2NrIG1pc3NseWNrYWRlcyBpIFwid3JpdGVfdGFibGVzXCIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MAorbXNnaWQgInVuYWJsZSB0byBjbGVhciBib290IHNlY3RvciIKK21zZ3N0ciAia2FuIGludGUgdMO2bW1hIHN0YXJ0c2VrdG9yIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTIKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgInPDtmtuaW5nIG1pc3NseWNrYWRlcyBpIFwid3JpdGVfdGFibGVzXCIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgImthbiBpbnRlIHNrcml2YSBpbm9kc3RhYmVsbCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk4Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJrYW4gaW50ZSBza3JpdmEgem9udGFiZWxsIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDAKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJrYW4gaW50ZSBza3JpdmEgaW5vZGVyIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgInNrcml2bmluZyBtaXNzbHlja2FkZXMgaSBcIndyaXRlX2Jsb2NrXCIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIxNyBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyOTEKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM0MAorbXNnaWQgInRvbyBtYW55IGJhZCBibG9ja3MiCittc2dzdHIgImbDtnIgbcOlbmdhIGZlbGFrdGlnYSBibG9jayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjI1Cittc2dpZCAibm90IGVub3VnaCBnb29kIGJsb2NrcyIKK21zZ3N0ciAiaW50ZSB0aWxscsOkY2tsaWd0IG1lZCBrb3JyZWt0YSBibG9jayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQwCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiCittc2dzdHIgImthbiBpbnRlIGFsbG9rZXJhIGJ1ZmZlcnRhciBmw7ZyIHRhYmVsbGVyIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgImthbiBpbnRlIGFsbG9rZXJhIGJ1ZmZlcnQgZsO2ciBpbm9kZXIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTWF4c2l6ZT0lbGRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIk1heHN0b3JsZWs9JWxkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ2OQorbXNnaWQgInNlZWsgZmFpbGVkIGR1cmluZyB0ZXN0aW5nIG9mIGJsb2NrcyIKK21zZ3N0ciAic8O2a25pbmcgbWlzc2x5Y2thZGVzIHVuZGVyIHRlc3QgYXYgYmxvY2siCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJXZWlyZCB2YWx1ZXMgaW4gZG9fY2hlY2s6IHByb2JhYmx5IGJ1Z3NcbiIKK21zZ3N0ciAiS29uc3RpZ2EgdsOkcmRlbiBpIFwiZG9fY2hlY2tcIjogdHJvbGlndHZpcyBwcm9ncmFtZmVsXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUwOCBkaXNrLXV0aWxzL21rc3dhcC5jOjMxNQorbXNnaWQgInNlZWsgZmFpbGVkIGluIGNoZWNrX2Jsb2NrcyIKK21zZ3N0ciAic8O2a25pbmcgbWlzc2x5Y2thZGVzIGkgXCJjaGVja19ibG9ja3NcIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTE3Cittc2dpZCAiYmFkIGJsb2NrcyBiZWZvcmUgZGF0YS1hcmVhOiBjYW5ub3QgbWFrZSBmcyIKK21zZ3N0ciAiZmVsYWt0aWdhIGJsb2NrIGbDtnJlIGRhdGFvbXLDpWRlOiBrYW4gaW50ZSBza2FwYSBmaWxzeXN0ZW0iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyMyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgYmFkIGJsb2Nrc1xuIgorbXNnc3RyICIlZCBmZWxha3RpZ2EgYmxvY2tcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIGJsb2NrXG4iCittc2dzdHIgImV0dCBmZWxha3RpZ3QgYmxvY2tcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgImthbiBpbnRlIMO2cHBuYSBmaWwgbWVkIGZlbGFrdGlnYSBibG9jayIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQwCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCByZWFkIGJhZGJsb2NrcyBmaWxlIgorbXNnc3RyICJLYW4gaW50ZSBpbnRlIGzDpHNhIGRpc2tlbmhldCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgInN0cnRvbCBlcnJvcjogbnVtYmVyIG9mIGJsb2NrcyBub3Qgc3BlY2lmaWVkIgorbXNnc3RyICJzdHJ0b2wtZmVsOiBhbnRhbGV0IGJsb2NrIMOkciBpbnRlIGFuZ2l2ZXQiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAia2FuIGludGUgdGEgc3RhdHVzIHDDpSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzZWN0b3Igc2l6ZSBmb3IgJXMiCittc2dzdHIgImthbiBpbnRlIGjDpG10YSBzdG9ybGVrZW4gcMOlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgImthbiBpbnRlIGjDpG10YSBzdG9ybGVrZW4gcMOlICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICJrb21tZXIgaW50ZSBhdHQgZsO2cnPDtmthIHNrYXBhIGZpbHN5c3RlbSBww6UgXCIlc1wiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjUKKyMsIGZ1enp5Cittc2dpZCAibnVtYmVyIG9mIGJsb2NrcyB0b28gc21hbGwiCittc2dzdHIgIkFudGFsIHNla3RvcmVyIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkXG4iCittc2dzdHIgIkFudsOkbmRhcmRlZmluaWVyYWRlIHNpZHN0b3JsZWtlbiAlZCDDpHIgZmVsYWt0aWdcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiIgorIkFudsOkbmRlciBhbnbDpG5kYXJkZWZpbmllcmFkZSBzaWRzdG9ybGVrZW4gJWQgaXN0w6RsbGV0IGbDtnIgc3lzdGVtdsOkcmRldCAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiRmVsYWt0aWcgc3RvcmxlayBww6UgdsOkeGxpbmdzaHV2dWQsIGluZ2VuIGV0aWtldHQgc2tyZXZzLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICJMYWJlbCB3YXMgdHJ1bmNhdGVkLlxuIgorbXNnc3RyICJFdGlrZXR0ZW4gdmFyIGF2a2FwYWQuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGxhYmVsLCAiCittc2dzdHIgImluZ2VuIGV0aWtldHQsICIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdXVpZFxuIgorbXNnc3RyICJpbmdldCB1dWlkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jXSBbLXBQQUdFU1pdIFstTCBsYWJlbF0gWy1VIFVVSURdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICIiCisiQW52w6RuZG5pbmc6ICVzIFstY10gWy12MHwtdjFdIFstcFNJRFNUT1JMRUtdIFstTCBldGlrZXR0XSAvZGV2L25hbW4gW2Jsb2NrXVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI5NworbXNnaWQgInRvbyBtYW55IGJhZCBwYWdlcyIKK21zZ3N0ciAiZsO2ciBtw6VuZ2EgZmVsYWt0aWdhIHNpZG9yIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiU2x1dCBww6UgbWlubmUiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICJlbiBmZWxha3RpZyBzaWRhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSBiYWQgcGFnZXNcbiIKK21zZ3N0ciAiJWx1IGZlbGFrdGlnYSBzaWRvclxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQwMiBkaXNrLXV0aWxzL21rc3dhcC5jOjQzOSBkaXNrLXV0aWxzL21rc3dhcC5jOjY1OQorbXNnaWQgInVuYWJsZSB0byByZXdpbmQgc3dhcC1kZXZpY2UiCittc2dzdHIgImthbiBpbnRlIHNwb2xhIHRpbGxiYWthIHbDpHhsaW5nc2VuaGV0ZW4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBuZXcgbGliYmxraWQgcHJvYmUiCittc2dzdHIgImthbiBpbnRlIGFsbG9rZXJhIGJ1ZmZlcnQgZsO2ciBpbm9kZXIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDE1Cittc2dpZCAidW5hYmxlIHRvIGFzc2lnbiBkZXZpY2UgdG8gbGlibGtpZCBwcm9iZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0MworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gZXJhc2UgYm9vdGJpdHMgc2VjdG9ycyIKK21zZ3N0ciAia2FuIGludGUgdMO2bW1hIHN0YXJ0c2VrdG9yIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHdhcm5pbmc6IGRvbid0IGVyYXNlIGJvb3RiaXRzIHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoJXMgcGFydGl0aW9uIHRhYmxlIGRldGVjdGVkKS4gIgorbXNnc3RyICIgICBwICAgc2tyaXYgdXQgQlNELXBhcnRpdGlvbnN0YWJlbGwiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiICAgcyAgIHZpc2EgZnVsbHN0w6RuZGlnIGRpc2tldGlrZXR0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoY29tcGlsZWQgd2l0aG91dCBsaWJibGtpZCkuICIKK21zZ3N0ciAiICAgcyAgIHZpc2EgZnVsbHN0w6RuZGlnIGRpc2tldGlrZXR0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjUyNAorIywgYy1mb3JtYXQKK21zZ2lkICIlMSRzOiB3YXJuaW5nOiBpZ25vcmUgLVUgKFVVSURzIGFyZSB1bnN1cHBvcnRlZCBieSAlMSRzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZG9lcyBub3Qgc3VwcG9ydCBzd2Fwc3BhY2UgdmVyc2lvbiAlZC5cbiIKK21zZ3N0ciAiJXM6IGZlbDogdmVyc2lvbiAlZCDDpHIgb2vDpG5kXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQ4CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBVVUlEIHBhcnNpbmcgZmFpbGVkIgorbXNnc3RyICJGZWwgdmlkIHN0w6RuZ25pbmcgYXYgZmlsXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIKK21zZ3N0ciAiJXM6IGZlbDogSW5nZW5zdGFucyBhdHQgc2thcGEgdsOkeGxpbmdzdXRyeW1tZT9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc2l6ZSAlbGx1IEtpQiBpcyBsYXJnZXIgdGhhbiBkZXZpY2Ugc2l6ZSAlbGx1IEtpQlxuIgorbXNnc3RyICIlczogZmVsOiBzdG9ybGVrZW4gJWx1IMOkciBzdMO2cnJlIMOkbiBlbmhldHNzdG9ybGVrZW4gJWx1XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHN3YXAgYXJlYSBuZWVkcyB0byBiZSBhdCBsZWFzdCAlbGQgS2lCXG4iCittc2dzdHIgIiVzOiBmZWw6IHbDpHhsaW5nc3V0cnltbWV0IG3DpXN0ZSB2YXJhIG1pbnN0ICVsZCBrQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiB2YXJuaW5nOiBhdmtvcnRhciB2w6R4bGluZ3N1dHJ5bW1ldCB0aWxsICVsZCBrQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHdpbGwgbm90IHRyeSB0byBtYWtlIHN3YXBkZXZpY2Ugb24gJyVzJ1xuIgorbXNnc3RyICIlczogZmVsOiBrb21tZXIgaW50ZSBhdHQgZsO2cnPDtmthIHNrYXBhIHbDpHhsaW5nc2VuaGV0IHDDpSBcIiVzXCJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiAlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIHN3YXBzcGFjZS5cbiIKK21zZ3N0ciAiJXM6IGZlbDogJXMgw6RyIG1vbnRlcmFkOyBrb21tZXIgaW50ZSBhdHQgc2thcGEgdsOkeGxpbmdzdXRyeW1tZS5cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NDgKK21zZ2lkICJVbmFibGUgdG8gc2V0IHVwIHN3YXAtc3BhY2U6IHVucmVhZGFibGUiCittc2dzdHIgIkthbiBpbnRlIHN0w6RsbGEgaW4gdsOkeGxpbmdzdXRyeW1tZTogb2zDpHNiYXJ0IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyB1cCBzd2Fwc3BhY2UgdmVyc2lvbiAxLCBzaXplID0gJWxsdSBLaUJcbiIKK21zZ3N0ciAiU3TDpGxsZXIgaW4gdsOkeGxpbmdzdXRyeW1tZSB2ZXJzaW9uICVkLCBzdG9ybGVrID0gJWxsdSBrQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gd3JpdGUgc2lnbmF0dXJlIHBhZ2U6ICVzIgorbXNnc3RyICJrYW4gaW50ZSBza3JpdmEgc2lnbmF0dXJzaWRhIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY3MworbXNnaWQgImZzeW5jIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMgbWlzc2x5Y2thZGVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIlczogJXM6IGt1bmRlIGludGUgZsOlIHNlbGludXgtZmlsZXRpa2V0dDogJXNcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTAKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgImt1bmRlIGludGUgbWF0Y2hwYXRoY29uKCkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBuZXcgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJrdW5kZSBpbnRlIHNrYXBhIG55dHQgc2VsaW51eC1zYW1tYW5oYW5nIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5NQorbXNnaWQgImNvdWxkbid0IGNvbXB1dGUgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJrdW5kZSBpbnRlIGJlcsOka25hIHNlbGludXgtc2FtbWFuaGFuZyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo3MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byByZWxhYmVsICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICIlczoga2FuIGludGUgYnl0YSBldGlrZXR0IHDDpSAlcyB0aWxsICVzOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiICAlcyAiCittc2dzdHIgIkFudsOkbmRuaW5nOlxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlICclcycgaXMgY29udHJvbCByYXcgZGV2ICh1c2UgcmF3PE4+IHdoZXJlIDxOPiBpcyBncmVhdGVyIHRoYW4gemVybylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSBibG9jayBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIkthbiBpbnRlIGzDpXNhIGzDpXNmaWxlbiAlczogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICJWYXJuaW5nOiAlcyDDpHIgaW5nZW4gYmxvY2tlbmhldFxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gbWFzdGVyIHJhdyBkZXZpY2UgJyIKK21zZ3N0ciAia2FuIGludGUgdGEgc3RhdHVzIHDDpSBlbmhldGVuICVzIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICJrYW4gaW50ZSB0YSBzdGF0dXMgcMOlIGVuaGV0ZW4gJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIvZGV2LyVzOiBpbmdlbiB0ZWNrZW5lbmhldCIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIHJhdyBkZXZcbiIKK21zZ3N0ciAiJXMgw6RyIGluZ2VuIGJsb2Nrc3BlY2lhbGVuaGV0IgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBxdWVyeWluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBzZXR0aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICJmZWwgdmlkIHN0b3BwYW5kZSBhdiB0asOkbnN0OiBcIiVzXCIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM3OCBmZGlzay9jZmRpc2suYzoyMDgzCittc2dpZCAiVW51c2FibGUiCittc2dzdHIgIk9hbnbDpG5kYmFyIgorCisjOiBmZGlzay9jZmRpc2suYzozODAgZmRpc2svY2ZkaXNrLmM6MjA4NQorbXNnaWQgIkZyZWUgU3BhY2UiCittc2dzdHIgIkxlZGlndCB1dHJ5bW1lIgorCisjOiBmZGlzay9jZmRpc2suYzozODMKK21zZ2lkICJMaW51eCBleHQyIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9jZmRpc2suYzozODUKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICJMaW51eCBleHQzIgorCisjOiBmZGlzay9jZmRpc2suYzozODcKK21zZ2lkICJMaW51eCBYRlMiCittc2dzdHIgIkxpbnV4IFhGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBKRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIkRpc2tlbiBoYXIgw6RuZHJhdHMuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIlN0YXJ0YSBvbSBzeXN0ZW1ldCBmw7ZyIGF0dCBmw7Zyc8Oka3JhIGRpZyBvbSBhdHQgcGFydGl0aW9uc3RhYmVsbGVuIGhhclxuIgorInVwcGRhdGVyYXRzIGtvcnJla3QuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnlcbiIKKyJET1MgNi54IHBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGNmZGlzayBtYW51YWxcbiIKKyJwYWdlIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiVkFSTklORzogT20gZHUgaGFyIHNrYXBhdCBlbGxlciDDpG5kcmF0IERPUyA2LngtXG4iCisicGFydGl0aW9uZXIgYsO2ciBkdSB0aXR0YSBpIG1hbnVhbGVuIGbDtnIgY2ZkaXNrXG4iCisiZsO2ciB5dHRlcmxpZ2FyZSBpbmZvcm1hdGlvbi5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIsOWREVTRElHRVJUIEZFTCIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE3Cittc2dpZCAiUHJlc3MgYW55IGtleSB0byBleGl0IGNmZGlzayIKK21zZ3N0ciAiVHJ5Y2sgdmFsZnJpIHRhbmdlbnQgZsO2ciBhdHQgYXZzbHV0YSBjZmRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NCBmZGlzay9jZmRpc2suYzo1NzIKK21zZ2lkICJDYW5ub3Qgc2VlayBvbiBkaXNrIGRyaXZlIgorbXNnc3RyICJLYW4gaW50ZSBzw7ZrYSBww6UgZGlza2VuaGV0IgorCisjOiBmZGlzay9jZmRpc2suYzo1NjYKK21zZ2lkICJDYW5ub3QgcmVhZCBkaXNrIGRyaXZlIgorbXNnc3RyICJLYW4gaW50ZSBpbnRlIGzDpHNhIGRpc2tlbmhldCIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIkthbiBpbnRlIHNrcml2YSBkaXNrZW5oZXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkxNworbXNnaWQgIlRvbyBtYW55IHBhcnRpdGlvbnMiCittc2dzdHIgIkbDtnIgbcOlbmdhIHBhcnRpdGlvbmVyIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiUGFydGl0aW9uZW4gYsO2cmphciBmw7ZyZSBzZWt0b3IgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTI3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJQYXJ0aXRpb25lbiBzbHV0YXIgZsO2cmUgc2VrdG9yIDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIlBhcnRpdG9uZW4gYsO2cmphciBlZnRlciBzbHV0ZXQgcMOlIGRpc2tlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTM3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIlBhcnRpdGlvbmVuIHNsdXRhciBlZnRlciBzbHV0ZXQgcMOlIGRpc2tlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgIlBhcnRpdGlvbmVuIHNsdXRhciBpIGRlbiBzbHV0bGlnYSBwYXJ0aWVsbGEgY3lsaW5kZXJuIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgImxvZ2lza2EgcGFydGl0aW9uZXIgw6RyIGludGUgaSBkaXNrb3JkbmluZyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgImxvZ2lza2EgcGFydGl0aW9uZXIgw7Z2ZXJsYXBwYXIgdmFyYW5kcmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJmw7Zyc3RvcmFkZSBsb2dpc2thIHBhcnRpdGlvbmVyIMO2dmVybGFwcGFyIHZhcmFuZHJhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICIiCisiISEhISBJbnRlcm50IGZlbCB2aWQgc2thcGFuZGUgYXYgbG9naXNrIGVuaGV0IHV0YW4gdXTDtmthZCBwYXJ0aXRpb24gISEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAxNCBmZGlzay9jZmRpc2suYzoxMDI2Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbG9naWNhbCBkcml2ZSBoZXJlIC0tIHdvdWxkIGNyZWF0ZSB0d28gZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorIkthbiBpbnRlIHNrYXBhIGxvZ2lzayBlbmhldCBow6RyIC0tIGRldCBza3VsbGUgc2thcGEgdHbDpSB1dMO2a2FkZSBwYXJ0aXRpb25lciIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICJNZW55cG9zdGVuIMOkciBmw7ZyIGzDpW5nLiBNZW55biBrYW4gc2Uga29uc3RpZyB1dC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEyMjQKKyMsIGZ1enp5Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiTWVueSB1dGFuIHJpa3RuaW5nLiBBbnbDpG5kZXIgc3RhbmRhcmR2w6RyZGV0IHbDpWdyw6R0LiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM1NgorbXNnaWQgIklsbGVnYWwga2V5IgorbXNnc3RyICJPZ2lsdGlnIHRhbmdlbnQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNzkKK21zZ2lkICJQcmVzcyBhIGtleSB0byBjb250aW51ZSIKK21zZ3N0ciAiVHJ5Y2sgZW4gdGFuZ2VudCBmw7ZyIGF0dCBmb3J0c8OkdHRhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NgorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIlByaW1hcnkiCittc2dzdHIgIlByaW3DpHIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYKK21zZ2lkICJDcmVhdGUgYSBuZXcgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIlNrYXBhIGVuIG55IHByaW3DpHIgcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgIkxvZ2lzayIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNworbXNnaWQgIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiU2thcGEgZW4gbnkgbG9naXNrIHBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzIGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJDYW5jZWwiCittc2dzdHIgIkF2YnJ5dCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICJTa2FwYSBpbnRlIG7DpWdvbiBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDQKK21zZ2lkICIhISEgSW50ZXJuYWwgZXJyb3IgISEhIgorbXNnc3RyICIhISEgSW50ZXJudCBmZWwgISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ3Cittc2dpZCAiU2l6ZSAoaW4gTUIpOiAiCittc2dzdHIgIlN0b3JsZWsgKGkgTUIpOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIkLDtnJqYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJMw6RnZyB0aWxsIHBhcnRpdGlvbiBpIGLDtnJqYW4gYXYgZGV0IGxlZGlnYSB1dHJ5bW1ldCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkVuZCIKK21zZ3N0ciAiU2x1dGV0IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBlbmQgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiTMOkZ2cgdGlsbCBwYXJ0aXRpb24gaSBzbHV0ZXQgYXYgZGV0IGxlZGlnYSB1dHJ5bW1ldCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTUwMAorbXNnaWQgIk5vIHJvb20gdG8gY3JlYXRlIHRoZSBleHRlbmRlZCBwYXJ0aXRpb24iCittc2dzdHIgIkluZ2VuIHBsYXRzIGF0dCBza2FwYSBkZW4gdXTDtmthZGUgcGFydGl0aW9uZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkluZ2VuIHBhcnRpdGlvbnN0YWJlbGwuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzgKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuIFN0YXJ0aW5nIHdpdGggemVybyB0YWJsZS4iCittc2dzdHIgIkluZ2VuIHBhcnRpdGlvbnN0YWJlbGwuIFN0YXJ0YXIgbWVkIHRvbSB0YWJlbGwuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkZlbGFrdGlnIHNpZ25hdHVyIHDDpSBwYXJ0aXRpb25zdGFiZWxsIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTkyCittc2dpZCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIKK21zZ3N0ciAiT2vDpG5kIHR5cCBhdiBwYXJ0aXRpb25zdGFiZWxsIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAiVmlsbCBkdSBiw7ZyamEgbWVkIGVuIHRvbSB0YWJlbGwgW2ovTl0/IgorCisjOiBmZGlzay9jZmRpc2suYzoxNjQyCittc2dpZCAiWW91IHNwZWNpZmllZCBtb3JlIGN5bGluZGVycyB0aGFuIGZpdCBvbiBkaXNrIgorbXNnc3RyICJEdSBhbmdhdiBmbGVyIGN5bGluZHJhciDDpG4gc29tIHJ5bXMgcMOlIGRpc2tlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NAorbXNnaWQgIkNhbm5vdCBvcGVuIGRpc2sgZHJpdmUiCittc2dzdHIgIkthbiBpbnRlIMO2cHBuYSBkaXNrZW5oZXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzYgZmRpc2svY2ZkaXNrLmM6MTg2NQorbXNnaWQgIk9wZW5lZCBkaXNrIHJlYWQtb25seSAtIHlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gd3JpdGUiCittc2dzdHIgIsOWcHBuYWRlIGRpc2tlbiBza3JpdnNreWRkYXQgLSBkdSBoYXIgaW5nZW4gYmVow7ZyaWdoZXQgYXR0IHNrcml2YSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY4NworbXNnaWQgIiIKKyJXYXJuaW5nISEgIFVuc3VwcG9ydGVkIEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkLiBVc2UgR05VIFBhcnRlZC4iCittc2dzdHIgIiIKKyJWYXJuaW5nISEgIEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIHVwcHTDpGNrdGVzIG1lbiBzdMO2ZHMgaW50ZS4gQW52w6RuZCBHTlUgIgorIlBhcnRlZC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MDYKK21zZ2lkICJDYW5ub3QgZ2V0IGRpc2sgc2l6ZSIKK21zZ3N0ciAiS2FuIGludGUgaMOkbXRhIGRpc2tzdG9ybGVrIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJGZWxha3RpZyBwcmltw6RyIHBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiRmVsYWt0aWcgbG9naXNrIHBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg3NworbXNnaWQgIldhcm5pbmchISAgVGhpcyBtYXkgZGVzdHJveSBkYXRhIG9uIHlvdXIgZGlzayEiCittc2dzdHIgIlZhcm5pbmchISBEZXR0YSBrYW4gZsO2cnN0w7ZyYSBkYXRhIHDDpSBkaW4gZGlzayEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODEKK21zZ2lkICIiCisiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzaz8gKHllcyBvciBubyk6ICIKK21zZ3N0ciAiIgorIsOEciBkdSBzw6RrZXIgcMOlIGF0dCBkdSB2aWxsIHNrcml2YSBwYXJ0aXRpb25zdGFiZWxsZW4gdGlsbCBkaXNrPyAoamEgZWxsZXIgIgorIm5laik6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4NworbXNnaWQgIm5vIgorbXNnc3RyICJuZWoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODkKK21zZ2lkICJEaWQgbm90IHdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJTa3JldiBpbnRlIHBhcnRpdGlvbnN0YWJlbGxlbiB0aWxsIGRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTEKK21zZ2lkICJ5ZXMiCittc2dzdHIgImphIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk1Cittc2dpZCAiUGxlYXNlIGVudGVyIGB5ZXMnIG9yIGBubyciCittc2dzdHIgIkFuZ2UgXCJqYVwiIGVsbGVyIFwibmVqXCIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTkKK21zZ2lkICJXcml0aW5nIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrLi4uIgorbXNnc3RyICJTa3JpdmVyIHBhcnRpdGlvbnN0YWJlbGwgdGlsbCBkaXNrLi4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI0IGZkaXNrL2NmZGlzay5jOjE5MjgKK21zZ2lkICJXcm90ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiU2tyZXYgcGFydGl0aW9uc3RhYmVsbCB0aWxsIGRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKKyMsIGZ1enp5Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIlNrcmV2IHBhcnRpdGlvbnN0YWJlbGxlbiwgbWVuIG9tbMOkc25pbmcgYXYgdGFiZWxsZW4gbWlzc2x5Y2thZGVzLiBTdGFydGEgb20gIgorImbDtnIgYXR0IHVwcGRhdGVyYSB0YWJlbGxlbi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIkluZ2EgcHJpbcOkcmEgcGFydGl0aW9uZXIgw6RyIG1hcmtlcmFkZSBzb20gc3RhcnRiYXJhLiBET1MgaHV2dWRzdGFydHBvc3RcbiIKKyIoTUJSKSBrYW4gaW50ZSBzdGFydGEgZGV0dGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM4Cittc2dpZCAiIgorIk1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisiTWVyIMOkbiBlbiBwcmltw6RyIHBhcnRpdGlvbiDDpHIgbWFya2VyYWQgc29tIHN0YXJ0YmFyLiBET1MgaHV2dWRzdGFydHBvc3RcbiIKKyIoTUJSKSBrYW4gaW50ZSBzdGFydGEgZGV0dGEuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICJBbmdlIGZpbG5hbW5ldCBlbGxlciB0cnljayBSRVRVUiBmw7ZyIGF0dCB2aXNhIHDDpSBza8Okcm1lbjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgIkthbiBpbnRlIMO2cHBuYSBmaWxlbiBcIiVzXCIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXNcbiIKK21zZ3N0ciAiRGlza2VuaGV0OiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNla3RvciAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiU2VrdG9yICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgSW5nZW4gICIKKworIyBQcmltw6RyL0xvZ2lzayBhbnRhciBqYWcKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDcKK21zZ2lkICIgICBQcmkvTG9nIgorbXNnc3RyICIgICBQcmkvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ5Cittc2dpZCAiICAgUHJpbWFyeSIKK21zZ3N0ciAiICAgUHJpbcOkciAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIgICBMb2dpc2sgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICJPa8OkbmQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTUgZmRpc2svY2ZkaXNrLmM6MjU2MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkKK21zZ2lkICJCb290IgorbXNnc3RyICJTdGFydCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorbXNnaWQgIk5vbmUiCittc2dzdHIgIkluZ2VuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM0IGZkaXNrL2NmZGlzay5jOjIyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIFRhYmxlIGZvciAlc1xuIgorbXNnc3RyICJQYXJ0aXRpb25zdGFiZWxsIGbDtnIgJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNgorbXNnaWQgIiAgICAgICAgICAgICAgIEZpcnN0ICAgICAgIExhc3RcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICAgRsO2cnN0YSAgICAgIFNpc3RhXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjIFR5cCAgICAgICAgU2VrdG9yICAgICAgU2VrdG9yICAgQXZzdMOlbmQgICBMw6RuZ2QgICAgRmlsc3lzdGVtc3R5cCAoSUQpICAgIgorIkZsYWdnYVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM4Cittc2dpZCAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCittc2dzdHIgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0gLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLVxuIgorCisjIFRoaXMgaXMgYnJva2VuCisjCisjIGZwX3ByaW50ZihmcCwgXygiICAgICAgICAgLS0tU3RhcnRpbmctLS0gICAgICAtLS0tRW5kaW5nLS0tLSAgICBTdGFydCBOdW1iZXIgb2ZcbiIpKTsKKyMgZnBfcHJpbnRmKGZwLCBfKCIgIyBGbGFncyBIZWFkIFNlY3QgQ3lsICAgSUQgIEhlYWQgU2VjdCBDeWwgICAgU2VjdG9yIFNlY3RvcnNcbiIpKTsKKyMgZnBfcHJpbnRmKGZwLCBfKCItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tLS0tIC0tLS0tLS0tLVxuIikpOworIworIyBUaGlzIG1ha2VzIG5vIHNlbnNlIHRvIHRyYW5zbGF0ZSBzZXBlcmF0ZWx5LCBzaW5jZSB0aGUgbGluZXMgYXJlIHZlcnkKKyMgbXVjaCByZWxhdGVkLiBJbiBmYWN0LCBpbiBzZXBlcmF0ZSBtZXNzYWdlcyBsaWtlIHRoZSBhYm92ZSBpdCBtYWtlcworIyBzZW5zZSB0byB0cmFuc2xhdGUgIlN0YXJ0IE51bWJlciBvZiI6IE9ubHkgaWYgeW91IGxvb2sgY2FyZWZ1bGx5IGluIHRoZQorIyBzb3VyY2UgeW91IHJlYWxpemUgdGhhdCAiU3RhcnQiIGJlbG9uZ3MgdG8gIlNlY3RvciIgaW4gYW5vdGhlciBtZXNzYWdlCisjICh0aGUgb25lIGZyb20gdGhlIGxpbmUgYmVsb3cgaW4gdGhlIHNvdXJjZSkuCisjCisjOiBmZGlzay9jZmRpc2suYzoyMjIxCisjLCBmdXp6eQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiAgICAgICAgIC0tLS1TdGFydC0tLS0tICAgICAgLS0tLS1TbHV0LS0tLS0gICBTdGFydC0gICAgQW50YWxcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMgorIywgZnV6enkKK21zZ2lkICIgIyBGbGFncyBIZWFkIFNlY3QgIEN5bCAgIElEICBIZWFkIFNlY3QgIEN5bCAgICAgU2VjdG9yICAgIFNlY3RvcnNcbiIKK21zZ3N0ciAiICMgRmxnZ3IgIEh2ZCBTZWt0IEN5bCAgIElEICBIdmQgIFNla3QgQ3lsICAgICBzZWt0b3IgICAgc2VrdG9yZXJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworIywgZnV6enkKK21zZ2lkICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICJSw6V0dCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgIlZpc2EgdGFiZWxsZW4gaSByw6V0dCBkYXRhZm9ybWF0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJTZWN0b3JzIgorbXNnc3RyICJTZWt0b3JlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIlZpc2EgdGFiZWxsZW4gc29ydGVyYWQgZWZ0ZXIgc2VrdG9yZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAiVGFiZWxsIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU4Cittc2dpZCAiSnVzdCBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJWaXNhIGJhcmEgcGFydGl0aW9uc3RhYmVsbGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICJWaXNhIGludGUgdGFiZWxsZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODcKK21zZ2lkICJIZWxwIFNjcmVlbiBmb3IgY2ZkaXNrIgorbXNnc3RyICJIasOkbHBza8Okcm0gZsO2ciBjZmRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODkKK21zZ2lkICJUaGlzIGlzIGNmZGlzaywgYSBjdXJzZXMgYmFzZWQgZGlzayBwYXJ0aXRpb25pbmcgcHJvZ3JhbSwgd2hpY2giCittc2dzdHIgIkRldCBow6RyIMOkciBjZmRpc2ssIGV0dCBjdXJzZXMtYmFzZXJhdCBkaXNrcGFydGl0aW9uZXJpbmdzcHJvZ3JhbSBzb20iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgImzDpXRlciBkaWcgc2thcGEsIHRhIGJvcnQgb2NoIMOkbmRyYSBwYXJ0aXRpb25lciBww6UgZGluIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgImjDpXJkZGlzay4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIkNvcHlyaWdodCDCqSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluIG9jaCBhZWIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTUKK21zZ2lkICJDb21tYW5kICAgICAgTWVhbmluZyIKK21zZ3N0ciAiS29tbWFuZG8gICAgIEJldHlkZWxzZSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICItLS0tLS0tLSAgICAgLS0tLS0tLS0tIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk3Cittc2dpZCAiICBiICAgICAgICAgIFRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBiICAgICAgICAgIFNsw6UgcMOlL2F2IHN0YXJ0YmFyaGV0c2ZsYWdnYW4gcMOlIGFrdHVlbGwgcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk4Cittc2dpZCAiICBkICAgICAgICAgIERlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgZCAgICAgICAgICBUYSBib3J0IGFrdHVlbGwgcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIiCisiICBnICAgICAgICAgIMOEbmRyYSBwYXJhbWV0cmFybmEgZsO2ciBjeWxpbmRyYXIsIGh1dnVkZW4sIHNla3RvcmVyLXBlci1zcMOlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiAgICAgICAgICAgICBWQVJOSU5HOiBEZW5uYSBmbGFnZ2EgYsO2ciBlbmRhc3QgYW52w6RuZGFzIGF2IHBlcnNvbmVyIHNvbSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICAgdmV0IHZhZCBkZSBnw7ZyLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMgorbXNnaWQgIiAgaCAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICBoICAgICAgICAgIFZpc2EgZGVubmEgaGrDpGxwc2vDpHJtIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAzCittc2dpZCAiICBtICAgICAgICAgIE1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIG0gICAgICAgICAgTWF4aW1lcmEgZGlza2FudsOkbmRhbmRldCBww6UgYWt0dWVsbCBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgICAgICAgICAgTm90ZTogVGhpcyBtYXkgbWFrZSB0aGUgcGFydGl0aW9uIGluY29tcGF0aWJsZSB3aXRoIgorbXNnc3RyICIiCisiICAgICAgICAgICAgIE9iczogRGV0dGEga2FuIGtvbW1hIGF0dCBnw7ZyYSBwYXJ0aXRpb25lbiBpbmtvbXBhdGliZWwgbWVkIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDYKK21zZ2lkICIgIG4gICAgICAgICAgQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICIgIG4gICAgICAgICAgU2thcGEgZW4gbnkgcGFydGl0aW9uIGZyw6VuIGxlZGlndCB1dHJ5bW1lIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA3Cittc2dpZCAiICBwICAgICAgICAgIFByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiIgorIiAgcCAgICAgICAgICBWaXNhIHBhcnRpdGlvbnN0YWJlbGxlbiBww6Ugc2vDpHJtZW4gZWxsZXIgc2tyaXYgZGVuIHRpbGwgZW4gZmlsIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICAgRGV0IGZpbm5zIGZsZXJhIG9saWthIGZvcm1hdCBww6UgcGFydGl0aW9uZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIGNob29zZSBmcm9tOiIKK21zZ3N0ciAiICAgICAgICAgICAgIHNvbSBkdSBrYW4gdsOkbGphIG1lbGxhbjoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgICAgICAgICAgICAgciAtIFJhdyBkYXRhIChleGFjdGx5IHdoYXQgd291bGQgYmUgd3JpdHRlbiB0byBkaXNrKSIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHIgLSBSw6UgZGF0YSAoZXhha3QgZGV0IHNvbSBza3VsbGUgc2tyaXZhcyB0aWxsIGRpc2tlbikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHMgLSBUYWJlbGwgc29ydGVyYWQgZWZ0ZXIgc2VrdG9yZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTIKK21zZ2lkICIgICAgICAgICAgICAgICAgdCAtIFRhYmxlIGluIHJhdyBmb3JtYXQiCittc2dzdHIgIiAgICAgICAgICAgICAgICB0IC0gVGFiZWxsIGkgcsOldHQgZm9ybWF0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAgQXZzbHV0YSBwcm9ncmFtbWV0IHV0YW4gYXR0IHNrcml2YSBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTQKK21zZ2lkICIgIHQgICAgICAgICAgQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIiAgdCAgICAgICAgICBCeXQgZmlsc3lzdGVtc3R5cGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE1Cittc2dpZCAiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIKK21zZ3N0ciAiICB1ICAgICAgICAgIEJ5dCBlbmhldGVyIHDDpSB2aXNuaW5nZW4gYXYgcGFydGl0aW9uc3N0b3JsZWsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTYKK21zZ2lkICIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiCittc2dzdHIgIiAgICAgICAgICAgICBCeXRlciBtZWxsYW4gTUIsIHNla3RvcmVyIG9jaCBjeWxpbmRyYXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiIgorIiAgVyAgICAgICAgICBTa3JpdiBwYXJ0aXRpb25zdGFiZWxsZW4gdGlsbCBkaXNrIChtw6VzdGUgdmFyYSBldHQgc3RvcnQgVykiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIgICAgICAgICAgICAgRWZ0ZXJzb20gZGV0dGEga2FuIGbDtnJzdMO2cmEgZGF0YSBww6UgZGlza2VuIG3DpXN0ZSBkdSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICAgICAgICAgICBlaXRoZXIgY29uZmlybSBvciBkZW55IHRoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciIKK21zZ3N0ciAiIgorIiAgICAgICAgICAgICBhbnRpbmdlbiBiZWtyw6RmdGEgZWxsZXIgYXZ2aXNhIGRldHRhIGdlbm9tIGF0dCBhbmdlIFwiamFcIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIgICAgICAgICAgICAgZWxsZXIgXCJuZWpcIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMQorbXNnaWQgIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIgorbXNnc3RyICJVcHBpbCAgICAgICAgRmx5dHRhIG1hcmvDtnJlbiB0aWxsIGbDtnJlZ8OlZW5kZSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjIKK21zZ2lkICJEb3duIEFycm93ICAgTW92ZSBjdXJzb3IgdG8gdGhlIG5leHQgcGFydGl0aW9uIgorbXNnc3RyICJOZXJwaWwgICAgICAgRmx5dHRhIG1hcmvDtnJlbiB0aWxsIG7DpHN0YSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDVFJMK0wgICAgICAgUml0YSBvbSBza8Okcm1lbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICA/ICAgICAgICAgIFZpc2EgZGVubmEgc2vDpHJtIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI2Cittc2dpZCAiTm90ZTogQWxsIG9mIHRoZSBjb21tYW5kcyBjYW4gYmUgZW50ZXJlZCB3aXRoIGVpdGhlciB1cHBlciBvciBsb3dlciIKK21zZ3N0ciAiT2JzOiBBbGxhIGtvbW1hbmRvbiBrYW4gYW5nZXMgYW50aW5nZW4gbWVkIHNtw6UgZWxsZXIgc3RvcmEgYm9rc3TDpHZlciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNworbXNnaWQgImNhc2UgbGV0dGVycyAoZXhjZXB0IGZvciBXcml0ZXMpLiIKK21zZ3N0ciAiKHV0b20gZsO2ciBza3Jpdm5pbmdhciBtZWQgVykuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzIKK21zZ2lkICJDeWxpbmRlcnMiCittc2dzdHIgIkN5bGluZHJhciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OAorbXNnaWQgIkNoYW5nZSBjeWxpbmRlciBnZW9tZXRyeSIKK21zZ3N0ciAiw4RuZHJhIGN5bGluZGVyZ2VvbWV0cmkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMAorbXNnaWQgIkhlYWRzIgorbXNnc3RyICJIdXZ1ZGVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU5Cittc2dpZCAiQ2hhbmdlIGhlYWQgZ2VvbWV0cnkiCittc2dzdHIgIsOEbmRyYSBodXZ1ZGdlb21ldHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAiw4RuZHJhIHNla3Rvcmdlb21ldHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAiS2xhciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MQorbXNnaWQgIkRvbmUgd2l0aCBjaGFuZ2luZyBnZW9tZXRyeSIKK21zZ3N0ciAiRsOkcmRpZyBtZWQgZ2VvbWV0cmnDpG5kcmluZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM3NAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzOiAiCittc2dzdHIgIkFuZ2UgYW50YWxldCBjeWxpbmRyYXI6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIk9naWx0aWd0IGFudGFsIGN5bGluZHJhciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAiQW5nZSBhbnRhbGV0IGh1dnVkZW46ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAiT2dpbHRpZ3QgYW50YWwgaHV2dWRlbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQwNAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2s6ICIKK21zZ3N0ciAiQW5nZSBhbnRhbGV0IHNla3RvcmVyIHBlciBzcMOlcjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDExIGZkaXNrL2NmZGlzay5jOjI5NzUKK21zZ2lkICJJbGxlZ2FsIHNlY3RvcnMgdmFsdWUiCittc2dzdHIgIk9naWx0aWd0IGFudGFsIHNla3RvcmVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTE0Cittc2dpZCAiRW50ZXIgZmlsZXN5c3RlbSB0eXBlOiAiCittc2dzdHIgIkFuZ2UgdHlwZW4gYXYgZmlsc3lzdGVtOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzIKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZW1wdHkiCittc2dzdHIgIkthbiBpbnRlIMOkbmRyYSBmaWxzeXN0ZW1zdHlwZW4gdGlsbCBldHQgdG9tdCB2w6RyZGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZXh0ZW5kZWQiCittc2dzdHIgIkthbiBpbnRlIMOkbmRyYSBmaWxzeXN0ZW1zdHlwZW4gdGlsbCB1dMO2a2FkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuayglMDJYKSIKK21zZ3N0ciAiT2vDpG5kKCUwMlgpIgorCisjIFZhZCDDpHIgZGV0dGE/CisjOiBmZGlzay9jZmRpc2suYzoyNTY4IGZkaXNrL2NmZGlzay5jOjI1NzEKK21zZ2lkICIsIE5DIgorbXNnc3RyICIsIE5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTc2IGZkaXNrL2NmZGlzay5jOjI1NzkKK21zZ2lkICJOQyIKK21zZ3N0ciAiTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODcKK21zZ2lkICJQcmkvTG9nIgorbXNnc3RyICJQcmkvTG9nIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICJPa8OkbmQgKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzIgorbXNnc3RyICJEaXNrZW5oZXQ6ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQgTUIiCittc2dzdHIgIlN0b3JsZWs6ICVsbGQgYnl0ZSwgJWxsZCBNQiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgIlN0b3JsZWs6ICVsbGQgYnl0ZSwgJWxsZCwlbGxkIEdCIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAiSHV2dWRlbjogJWQgICBTZWt0b3JlciBwZXIgc3DDpXI6ICVkICAgQ3lsaW5kcmFyOiAlbGxkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgxIGxvZ2luLXV0aWxzL2NoZm4uYzozNzcKK21zZ2lkICJOYW1lIgorbXNnc3RyICJOYW1uIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgyCittc2dpZCAiRmxhZ3MiCittc2dzdHIgIkZsYWdnb3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIlBhcnQuLXR5cCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIkZTLXR5cCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NQorbXNnaWQgIltMYWJlbF0iCittc2dzdHIgIltFdGlrZXR0XSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NworbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICIgICAgU2VrdG9yZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKK21zZ2lkICIgIEN5bGluZGVycyIKK21zZ3N0ciAiICBDeWxpbmRyYXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTEKK21zZ2lkICIgIFNpemUgKE1CKSIKK21zZ3N0ciAiICBTdG9ybGVrIChNQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiICBTdG9ybGVrIChHQikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJCb290YWJsZSIKK21zZ3N0ciAiU3RhcnRiYXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIlNsw6UgcMOlL2F2IHN0YXJ0YmFyaGV0c2ZsYWdnYW4gcMOlIGFrdHVlbGwgcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJUYSBib3J0IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiVGEgYm9ydCBha3R1ZWxsIHBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkdlb21ldHJ5IgorbXNnc3RyICJHZW9tZXRyaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkNoYW5nZSBkaXNrIGdlb21ldHJ5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICLDhG5kcmEgZGlza2dlb21ldHJpIChlbmRhc3QgZXhwZXJ0ZXIpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiSGrDpGxwIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiUHJpbnQgaGVscCBzY3JlZW4iCittc2dzdHIgIlZpc2EgaGrDpGxwc2vDpHJtIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUiCittc2dzdHIgIk1heGltZXJhIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIk1heGltZXJhIGRpc2thbnbDpG5kbmluZ2VuIGbDtnIgYWt0dWVsbCBwYXJ0aXRpb24gKGVuZGFzdCBleHBlcnRlcikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJOZXciCittc2dzdHIgIk55IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICJTa2FwYSBueSBwYXJ0aXRpb24gZnLDpW4gbGVkaWd0IHV0cnltbWUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiVmlzYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiVmlzYSBwYXJ0aXRpb25zdGFiZWxsZW4gcMOlIHNrw6RybWVuIGVsbGVyIHNrcml2IGRlbiB0aWxsIGVuIGZpbCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIkF2c2x1dGEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiQXZzbHV0YSBwcm9ncmFtbWV0IHV0YW4gYXR0IHNrcml2YSBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJUeXBlIgorbXNnc3RyICJUeXAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSAoRE9TLCBMaW51eCwgT1MvMiBhbmQgc28gb24pIgorbXNnc3RyICLDhG5kcmEgZmlsc3lzdGVtc3R5cGVuIChET1MsIExpbnV4LCBPUy8yIG9jaCBzw6UgdmlkYXJlKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIlVuaXRzIgorbXNnc3RyICJFbmhldGVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAiIgorIkJ5dCBlbmhldGVyIHDDpSB2aXNuaW5nZW4gYXYgcGFydGl0aW9uc3N0b3JsZWtlbiAoTUIsIHNla3RvcmVyLCBjeWxpbmRyYXIpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUiCittc2dzdHIgIlNrcml2IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhKSIKK21zZ3N0ciAiU2tyaXYgcGFydGl0aW9uc3RhYmVsbGVuIHRpbGwgZGlzayAoZGV0dGEga2FuIGbDtnJzdMO2cmEgZGF0YSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MDUKK21zZ2lkICJDYW5ub3QgbWFrZSB0aGlzIHBhcnRpdGlvbiBib290YWJsZSIKK21zZ3N0ciAiS2FuIGludGUgZ8O2cmEgZGVubmEgcGFydGl0aW9uIHN0YXJ0YmFyIgorCisjOiBmZGlzay9jZmRpc2suYzoyODE1Cittc2dpZCAiQ2Fubm90IGRlbGV0ZSBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIkthbiBpbnRlIHRhIGJvcnQgZW4gdG9tIHBhcnRpdGlvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICJLYW4gaW50ZSBtYXhpbWVyYSBkZW5uYSBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDUKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIKK21zZ3N0ciAiRGVubmEgcGFydGl0aW9uIMOkciBvYW52w6RuZGJhciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJEZW5uYSBwYXJ0aXRpb24gYW52w6RuZHMgcmVkYW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NjQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIHRoZSB0eXBlIG9mIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiS2FuIGludGUgw6RuZHJhIHR5cGVuIHDDpSBlbiB0b20gcGFydGl0aW9uIgorCisjOiBmZGlzay9jZmRpc2suYzoyODkxIGZkaXNrL2NmZGlzay5jOjI4OTcKK21zZ2lkICJObyBtb3JlIHBhcnRpdGlvbnMiCittc2dzdHIgIkluZ2UgZmxlciBwYXJ0aXRpb25lciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAiT2dpbHRpZ3Qga29tbWFuZG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkNvcHlyaWdodCDCqSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluIG9jaCBhZWJcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiUHJpbnQgdmVyc2lvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiUHJpbnQgcGFydGl0aW9uIHRhYmxlOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B0aW9uc10gZGV2aWNlXG4iCisiSW50ZXJhY3RpdmUgdXNlOlxuIgorIiAgICAgICAgJXMgW29wdGlvbnNdIGRldmljZVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiLWE6IFVzZSBhcnJvdyBpbnN0ZWFkIG9mIGhpZ2hsaWdodGluZztcbiIKKyItejogU3RhcnQgd2l0aCBhIHplcm8gcGFydGl0aW9uIHRhYmxlLCBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHB0IGZyb20gZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzogT3ZlcnJpZGUgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMsXG4iCisiICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHRoZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjay5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkFudsOkbmRuaW5nOlxuIgorIlZpc2EgdmVyc2lvbnNpbmZvcm1hdGlvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiVmlzYSBwYXJ0aXRpb25zdGFiZWxsOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbZmxhZ2dvcl0gZW5oZXRcbiIKKyJJbnRlcmFrdGl2IGFudsOkbmRuaW5nOlxuIgorIiAgICAgICAgJXMgW29wdGlvbnNdIGRldmljZVxuIgorIlxuIgorIkZsYWdnb3I6XG4iCisiLWE6IEFudsOkbmQgcGlsIGlzdMOkbGxldCBmw7ZyIG1hcmtlcmluZztcbiIKKyItejogQsO2cmphIG1lZCBlbiB0b20gcGFydGl0aW9uc3RhYmVsbCBpc3TDpGxsZXQgZsO2ciBhdHQgbMOkc2EgcGFydGl0aW9ucy1cbiIKKyIgICAgdGFiZWxsZW4gZnLDpW4gZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzogw4VzaWRvc8OkdHQga8Okcm5hbnMgdXBwZmF0dG5pbmcgb20gYW50YWxldCBjeWxpbmRyYXIsXG4iCisiICAgICAgICAgICAgICAgIGFudGFsZXQgaHV2dWRlbiBvY2ggYW50YWxldCBzZWt0b3JlciBwZXIgc3DDpXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYWl4bGFiZWwuYzoyNworbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgQUlYIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgTGludXggY2Fubm90IGhhbmRsZSB0aGVzZVxuIgorIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisiXHRhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCisiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorIlx0ICAgdG8gcmVtb3ZlIHRoZSBkaXNrIGxvZ2ljYWxseSBmcm9tIHlvdXIgQUlYXG4iCisiXHQgICBtYWNoaW5lLiAgKE90aGVyd2lzZSB5b3UgYmVjb21lIGFuIEFJWHBlcnQpLiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RGV0IGZpbm5zIGVuIGdpbHRpZyBBSVgtZXRpa2V0dCBww6UgZGVubmEgZGlzay5cbiIKKyJcdFR5dsOkcnIga2FuIGludGUgTGludXggaGFudGVyYSBkZXNzYSBkaXNrYXJcbiIKKyJcdGbDtnIgdGlsbGbDpGxsZXQuIEjDpHIgw6RyIGh1cnNvbWhlbHN0IGVuIGRlbCByw6VkOlxuIgorIlx0MS4gZmRpc2sga29tbWVyIGF0dCBmw7Zyc3TDtnJhIGRlc3MgaW5uZWjDpWxsIHZpZFxuIgorIlx0ICAgc2tyaXZuaW5nLlxuIgorIlx0Mi4gRsO2cnPDpGtyYSBkaWcgb20gYXR0IGRlbm5hIGRpc2sgSU5URSBmb3J0ZmFyYW5kZVxuIgorIlx0ICAgw6RyIGVuIHZpdGFsIGRlbCBpIGVuIHZvbHltZ3J1cHAgKGFubmFycyBrYW4gZHVcbiIKKyJcdCAgIHJhZGVyYSBkZSBhbmRyYSBkaXNrYXJuYSwgb20gZGUgaW50ZSBzcGVnbGFzKS5cbiIKKyJcdDMuIElubmFuIGR1IHRhciBib3J0IGRlbiBmeXNpc2thIHZvbHltZW4gYsO2ciBkdVxuIgorIlx0ICAgZsO2cnPDpGtyYSBkaWcgb20gYXR0IGR1IGxvZ2lza3QgdGFyIGJvcnQgZGlza2VuXG4iCisiXHQgICBmcsOlbiBkaW4gQUlYLW1hc2tpbiAoYW5uYXJzIGJsaXIgZHUgZW4gQUlYcGVydCkuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkJTRC1ldGlrZXR0IGbDtnIgZW5oZXQ6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjggZmRpc2svZmRpc2suYzozOTQgZmRpc2svZmRpc2suYzo0MTMKKyM6IGZkaXNrL2ZkaXNrLmM6NDMxIGZkaXNrL2ZkaXNrLmM6NDM4IGZkaXNrL2ZkaXNrLmM6NDYxIGZkaXNrL2ZkaXNrLmM6NDc5CisjOiBmZGlzay9mZGlzay5jOjQ5NSBmZGlzay9mZGlzay5jOjUxMQorbXNnaWQgIkNvbW1hbmQgYWN0aW9uIgorbXNnc3RyICJLb21tYW5kb8OldGfDpHJkIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICB0YSBib3J0IGVuIEJTRC1wYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzAKK21zZ2lkICIgICBlICAgZWRpdCBkcml2ZSBkYXRhIgorbXNnc3RyICIgICBlICAgcmVkaWdlcmEgZW5oZXRzZGF0YSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgIGluc3RhbGxlcmEgZsO2cnN0YXJ0YXJlIChib290c3RyYXApIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMyCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gZmlsZXN5c3RlbSB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIHZpc2Ega8OkbmRhIGZpbHN5c3RlbXN0eXBlciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMyBmZGlzay9mZGlzay5jOjQwMCBmZGlzay9mZGlzay5jOjQxOQorIzogZmRpc2svZmRpc2suYzo0MzIgZmRpc2svZmRpc2suYzo0NDQgZmRpc2svZmRpc2suYzo0NjkgZmRpc2svZmRpc2suYzo0ODYKKyM6IGZkaXNrL2ZkaXNrLmM6NTAyIGZkaXNrL2ZkaXNrLmM6NTIwCittc2dpZCAiICAgbSAgIHByaW50IHRoaXMgbWVudSIKK21zZ3N0ciAiICAgbSAgIHZpc2EgZGVubmEgbWVueSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNAorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgIGzDpGdnIHRpbGwgZW4gbnkgQlNELXBhcnRpdGlvbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNQorbXNnaWQgIiAgIHAgICBwcmludCBCU0QgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgc2tyaXYgdXQgQlNELXBhcnRpdGlvbnN0YWJlbGwiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzYgZmRpc2svZmRpc2suYzo0MDQgZmRpc2svZmRpc2suYzo0MjMKKyM6IGZkaXNrL2ZkaXNrLmM6NDM0IGZkaXNrL2ZkaXNrLmM6NDQ4IGZkaXNrL2ZkaXNrLmM6NDcxIGZkaXNrL2ZkaXNrLmM6NDg4CisjOiBmZGlzay9mZGlzay5jOjUwNCBmZGlzay9mZGlzay5jOjUyMgorbXNnaWQgIiAgIHEgICBxdWl0IHdpdGhvdXQgc2F2aW5nIGNoYW5nZXMiCittc2dzdHIgIiAgIHEgICBhdnNsdXRhIHV0YW4gYXR0IHNwYXJhIMOkbmRyaW5nYXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzcgZmRpc2svZmRpc2suYzo0NzIgZmRpc2svZmRpc2suYzo0ODkKKyM6IGZkaXNrL2ZkaXNrLmM6NTA1IGZkaXNrL2ZkaXNrLmM6NTIzCittc2dpZCAiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiCittc2dzdHIgIiAgIHIgICDDpXRlcmfDpSB0aWxsIGh1dnVkbWVueW4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzgKK21zZ2lkICIgICBzICAgc2hvdyBjb21wbGV0ZSBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICB2aXNhIGZ1bGxzdMOkbmRpZyBkaXNrZXRpa2V0dCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOQorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBmaWxlc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgw6RuZHJhIGVuIHBhcnRpdGlvbnMgZmlsc3lzdGVtc2lkIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQwCittc2dpZCAiICAgdSAgIGNoYW5nZSB1bml0cyAoY3lsaW5kZXJzL3NlY3RvcnMpIgorbXNnc3RyICIgICB1ICAgYnl0IGVuaGV0ZXIgKGN5bGluZHJhci9zZWt0b3JlcikiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDEKK21zZ2lkICIgICB3ICAgd3JpdGUgZGlza2xhYmVsIHRvIGRpc2siCittc2dzdHIgIiAgIHcgICBza3JpdiBkaXNrZXRpa2V0dCB0aWxsIGRpc2siCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDMKK21zZ2lkICIgICB4ICAgbGluayBCU0QgcGFydGl0aW9uIHRvIG5vbi1CU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICB4ICAgbMOkbmthIEJTRC1wYXJ0aXRpb24gdGlsbCBpY2tlLUJTRC1wYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVzIGhhcyBpbnZhbGlkIHN0YXJ0aW5nIHNlY3RvciAwLlxuIgorbXNnc3RyICJQYXJ0aXRpb25lbiAlcyBoYXIgb2dpbHRpZyBzdGFydHNla3RvciAwLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWRpbmcgZGlza2xhYmVsIG9mICVzIGF0IHNlY3RvciAlZC5cbiIKK21zZ3N0ciAiTMOkc2VyIGRpc2tldGlrZXR0IGbDtnIgJXMgdmlkIHNla3RvciAlZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAiRGV0IGZpbm5zIGluZ2VuICpCU0QtcGFydGl0aW9uIHDDpSAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjIwMworbXNnaWQgIkJTRCBkaXNrbGFiZWwgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQlNELWRpc2tldGlrZXR0c2tvbW1hbmRvIChtIGbDtnIgaGrDpGxwKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjgzIGZkaXNrL2ZkaXNrLmM6MjMyOCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM4CisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ICVzIgorbXNnc3RyICJGw7Zyc3RhICVzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlcyBvciArc2l6ZSBvciArc2l6ZU0gb3IgK3NpemVLIgorbXNnc3RyICJTaXN0YSAlcyBlbGxlciArc3RvcmxlayBlbGxlciArc3Rvcmxla00gZWxsZXIgK3N0b3JsZWtLIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVzXG4iCittc2dzdHIgInR5cDogJXNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICJ0eXA6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlzazogJS4qc1xuIgorbXNnc3RyICJkaXNrOiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibGFiZWw6ICUuKnNcbiIKK21zZ3N0ciAiZXRpa2V0dDogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAiZmxhZ2dvcjoiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIHJlbW92YWJsZSIKK21zZ3N0ciAiIGzDtnN0YWdiYXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIGVjYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiIGZlbHNla3QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXMvc2VjdG9yOiAlbGRcbiIKK21zZ3N0ciAiYnl0ZS9zZWt0b3I6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvdHJhY2s6ICVsZFxuIgorbXNnc3RyICJzZWt0b3Jlci9zcMOlcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAic3DDpXIvY3lsaW5kZXI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJzZWt0b3Jlci9jeWxpbmRlcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiY3lsaW5kcmFyOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgInZhcnYgcGVyIG1pbnV0OiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgImludGVybGVhdmU6ICVkXG4iCittc2dzdHIgIm1lbGxhbnJ1bTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgInNww6VyZsO2cnNranV0bmluZzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnNrZXc6ICVkXG4iCittc2dzdHIgImN5bGluZGVyZsO2cnNranV0bmluZzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiaHV2dWRieXRlOiAlbGRcdFx0YW50YWwgbWlsbGlzZWt1bmRlclxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQzCisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWs6ICVsZFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAic3DDpXItdGlsbC1zcMOlci1zw7ZrbmluZzogJWxkXHRhbnRhbCBtaWxsaXNla3VuZGVyXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgImVuaGV0c2RhdGE6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJWQgcGFydGl0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkIHBhcnRpdGlvbmVyOlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiMgICAgICAgc3RhcnQgICAgICAgZW5kICAgICAgc2l6ZSAgICAgZnN0eXBlICAgW2ZzaXplIGJzaXplICAgY3BnXVxuIgorbXNnc3RyICIjICAgICAgIGLDtnJqYW4gICAgICBzbHV0ICAgICBzdG9ybGVrICBmcy10eXAgICBbZnN0cmwgYnN0cmwgICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiU2tyaXZlciBkaXNrZXRpa2V0dCB0aWxsICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDE5IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorbXNnc3RyICIlcyBpbm5laMOlbGxlciBpbmdlbiBkaXNrZXRpa2V0dC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICJWaWxsIGR1IHNrYXBhIGVuIGRpc2tldGlrZXR0PyAoeS9uKSAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjYKK21zZ2lkICJieXRlcy9zZWN0b3IiCittc2dzdHIgImJ5dGUvc2VrdG9yIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAic2VrdG9yZXIvc3DDpXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjgKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXIiCittc2dzdHIgInNww6VyL2N5bGluZGVyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NzQwIGZkaXNrL2ZkaXNrLmM6MTU5MgorIzogZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAiY3lsaW5kZXJzIgorbXNnc3RyICJjeWxpbmRyYXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJzZWt0b3Jlci9jeWxpbmRlciIKKworIyDCtyAoY2VudGVyZWQgZG90KSBpcyBub3JtYWxseSB1c2VkIGFzIHRoZSBtdWx0aXBsaWNhdGlvbiBzaWduIGluIFN3ZWRpc2guCisjIFNlZSAiU3ZlbnNrYSBza3JpdnJlZ2xlciIgwqcyNjAuCisjCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgPD0gc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciAoZGVmYXVsdCkuXG4iCittc2dzdHIgIk3DpXN0ZSB2YXJhIDw9IHNla3RvcmVyL3Nww6VyIMK3IHNww6VyL2N5bGluZGVyIChzdGFuZGFyZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODIKK21zZ2lkICJycG0iCittc2dzdHIgInZhcnYgcGVyIG1pbnV0IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAibWVsbGFucnVtIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICJzcMOlcmbDtnJza2p1dG5pbmciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgImN5bGluZGVyZsO2cnNranV0bmluZyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgImh1dnVkYnl0eWUiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODcKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrIgorbXNnc3RyICJzcMOlci10aWxsLXNww6VyLXPDtmtuaW5nIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCittc2dzdHIgIkbDtnJzdGFydGFyZSAoYm9vdHN0cmFwKTogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIG92ZXJsYXBzIHdpdGggZGlzayBsYWJlbCFcbiIKK21zZ3N0ciAiRsO2cnN0YXJ0YXJlIChib290c3RyYXApIMO2dmVybGFwcGFyIG1lZCBkaXNrZXRpa2V0dCFcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iCittc2dzdHIgIkbDtnJzdGFydGFyZSAoYm9vdHN0cmFwKSBpbnN0YWxsZXJhZCBww6UgJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIChhLSVjKTogIgorbXNnc3RyICJQYXJ0aXRpb24gKGEtJWMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MTcgZmRpc2svZmRpc2suYzoyNDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJ0aXRpb25zIGhhcyBiZWVuIGNyZWF0ZWRcbiIKK21zZ3N0ciAiRGV0IG1heGltYWxhIGFudGFsZXQgcGFydGl0aW9uZXIgaGFyIHNrYXBhdHNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiIKK21zZ3N0ciAiRGVubmEgcGFydGl0aW9uIGZpbm5zIHJlZGFuLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHRvbyBtYW55IHBhcnRpdGlvbnMgKCVkLCBtYXhpbXVtIGlzICVkKS5cbiIKK21zZ3N0ciAiVmFybmluZzogZsO2ciBtw6VuZ2EgcGFydGl0aW9uZXIgKCVkLCBtYXggw6RyICVkKS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlN5bmtyb25pc2VyYXIgaMOlcmRkaXNrYXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIKK21zZ3N0ciAiS2FuIGludGUgw7ZwcG5hICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byByZWFkICVzXG4iCittc2dzdHIgIkthbiBpbnRlIGzDpHNhICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZWVrIG9uICVzXG4iCittc2dzdHIgIkthbiBpbnRlIHPDtmthIHDDpSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiS2FuIGludGUgc2tyaXZhICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzXG4iCittc2dzdHIgIkJMS0dFVFNJWkUtaW9jdGw6ZW4gbWlzc2x5Y2thZGVzIHDDpSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBhbnkgbW9yZSBtZW1vcnlcbiIKK21zZ3N0ciAiS2FuIGludGUgYWxsb2tlcmEgbWVyIG1pbm5lXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAiw5ZkZXNkaWdlcnQgZmVsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgc2zDpSBww6UvYXYgZW4gZmxhZ2dhIGbDtnIgc2tyaXZza3lkZCIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAgcmVkaWdlcmEgYnNkLWRpc2tldGlrZXR0IgorCisjOiBmZGlzay9mZGlzay5jOjM5NworbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIG1vdW50YWJsZSBmbGFnIgorbXNnc3RyICIgICBjICAgc2zDpSBww6UvYXYgbW9udGVyYmFyaGV0c2ZsYWdnYW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIHRhIGJvcnQgZW4gcGFydGl0aW9uIgorCisjOiBmZGlzay9mZGlzay5jOjM5OSBmZGlzay9mZGlzay5jOjQxOCBmZGlzay9mZGlzay5jOjQ0MworbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIGxpc3RhIGvDpG5kYSBwYXJ0aXRpb25zdHlwZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICBsw6RnZyB0aWxsIGVuIG55IHBhcnRpdGlvbiIKKworIzogZmRpc2svZmRpc2suYzo0MDIgZmRpc2svZmRpc2suYzo0MjEgZmRpc2svZmRpc2suYzo0MzMgZmRpc2svZmRpc2suYzo0NDYKK21zZ2lkICIgICBvICAgY3JlYXRlIGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIG8gICBza2FwYSBlbiBueSB0b20gRE9TLXBhcnRpdGlvbnN0YWJlbGwiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorbXNnaWQgIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgdmlzYSBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgc2thcGEgZW4gbnkgdG9tIFN1bi1kaXNrZXRpa2V0dCIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIgICB0ICAgw6RuZHJhIGVuIHBhcnRpdGlvbnMgc3lzdGVtLWlkIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIMOkbmRyYSB2aXNuaW5ncy0vcG9zdGVuaGV0ZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA4IGZkaXNrL2ZkaXNrLmM6NDI3IGZkaXNrL2ZkaXNrLmM6NDUyIGZkaXNrL2ZkaXNrLmM6NDc0CisjOiBmZGlzay9mZGlzay5jOjQ5MSBmZGlzay9mZGlzay5jOjUwNyBmZGlzay9mZGlzay5jOjUyNQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgdiAgIHZlcmlmaWVyYSBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA5IGZkaXNrL2ZkaXNrLmM6NDI4IGZkaXNrL2ZkaXNrLmM6NDUzIGZkaXNrL2ZkaXNrLmM6NDc1CisjOiBmZGlzay9mZGlzay5jOjQ5MiBmZGlzay9mZGlzay5jOjUwOCBmZGlzay9mZGlzay5jOjUyNgorbXNnaWQgIiAgIHcgICB3cml0ZSB0YWJsZSB0byBkaXNrIGFuZCBleGl0IgorbXNnc3RyICIgICB3ICAgc2tyaXYgdGFiZWxsZW4gdGlsbCBkaXNrIG9jaCBhdnNsdXRhIgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgICB4ICAgZXh0cmEgZnVua3Rpb25hbGl0ZXQgKGVuZGFzdCBleHBlcnRlcikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0Cittc2dpZCAiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGEgICB2w6RsaiBzdGFydGJhciBwYXJ0aXRpb24iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE1Cittc2dpZCAiICAgYiAgIGVkaXQgYm9vdGZpbGUgZW50cnkiCittc2dzdHIgIiAgIGIgICByZWRpZ2VyYSBzdGFydGZpbHNwb3N0IgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIgICBjICAgdsOkbGogc2dpLXbDpHhsaW5nc3BhcnRpdGlvbiIKKworIzogZmRpc2svZmRpc2suYzo0MzkKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgYm9vdGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYSAgIHNsw6UgcMOlL2F2IGVuIHN0YXJ0YmFyaGV0c2ZsYWdnYSIKKworIzogZmRpc2svZmRpc2suYzo0NDEKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBkb3MgY29tcGF0aWJpbGl0eSBmbGFnIgorbXNnc3RyICIgICBjICAgc2zDpSBww6UvYXYgZG9zLWtvbXBhdGliaWxpdGV0c2ZsYWdnYW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYyCittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYSAgIMOkbmRyYSBhbnRhbGV0IGFsdGVybmF0aXZhIGN5bGluZHJhciIKKworIzogZmRpc2svZmRpc2suYzo0NjMgZmRpc2svZmRpc2suYzo0ODEgZmRpc2svZmRpc2suYzo0OTcgZmRpc2svZmRpc2suYzo1MTMKK21zZ2lkICIgICBjICAgY2hhbmdlIG51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGMgICDDpG5kcmEgYW50YWxldCBjeWxpbmRyYXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY0IGZkaXNrL2ZkaXNrLmM6NDgyIGZkaXNrL2ZkaXNrLmM6NDk4IGZkaXNrL2ZkaXNrLmM6NTE0Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBkICAgc2tyaXYgdXQgZGVuIHLDpWEgZGF0YW4gaSBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY1Cittc2dpZCAiICAgZSAgIGNoYW5nZSBudW1iZXIgb2YgZXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiAgIGUgICDDpG5kcmEgYW50YWxldCBleHRyYSBzZWt0b3JlciBwZXIgY3lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY2IGZkaXNrL2ZkaXNrLmM6NDg1IGZkaXNrL2ZkaXNrLmM6NTAxIGZkaXNrL2ZkaXNrLmM6NTE4Cittc2dpZCAiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIiAgIGggICDDpG5kcmEgYW50YWxldCBodXZ1ZGVuIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NworbXNnaWQgIiAgIGkgICBjaGFuZ2UgaW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiAgIGkgICDDpG5kcmEgbWVsbGFucnVtc2Zha3RvciIKKworIzogZmRpc2svZmRpc2suYzo0NjgKK21zZ2lkICIgICBvICAgY2hhbmdlIHJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIgICBvICAgw6RuZHJhIHJvdGF0aW9uc2hhc3RpZ2hldCAodmFydiBwZXIgbWludXQpIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorbXNnaWQgIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siCittc2dzdHIgIiAgIHMgICDDpG5kcmEgYW50YWxldCBzZWt0b3Jlci9zcMOlciIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICDDpG5kcmEgYW50YWxldCBmeXNpc2thIGN5bGluZHJhciIKKworIzogZmRpc2svZmRpc2suYzo0ODAgZmRpc2svZmRpc2suYzo0OTYgZmRpc2svZmRpc2suYzo1MTIKK21zZ2lkICIgICBiICAgbW92ZSBiZWdpbm5pbmcgb2YgZGF0YSBpbiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYiAgIGZseXR0YSBiw7ZyamFuIHDDpSBkYXRhIGkgZW4gcGFydGl0aW9uIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MyBmZGlzay9mZGlzay5jOjQ5OSBmZGlzay9mZGlzay5jOjUxNQorbXNnaWQgIiAgIGUgICBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiAgIGUgICBsaXN0YSB1dMO2a2FkZSBwYXJ0aXRpb25lciIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgc2thcGEgZW4gSVJJWC1wYXJ0aXRpb25zdGFiZWxsIChTR0kpIgorCisjOiBmZGlzay9mZGlzay5jOjUxNgorbXNnaWQgIiAgIGYgICBmaXggcGFydGl0aW9uIG9yZGVyIgorbXNnc3RyICIgICBmICAgZml4YSBwYXJ0aXRpb25zb3JkbmluZ2VuIgorCisjOiBmZGlzay9mZGlzay5jOjUxOQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgaSAgIMOkbmRyYSBkaXNraWRlbnRpZmllcmFyZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IHNldCIKK21zZ3N0ciAiRHUgbcOlc3RlIHN0w6RsbGEgaW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM2Cittc2dpZCAiaGVhZHMiCittc2dzdHIgImh1dnVkZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM4IGZkaXNrL2ZkaXNrLmM6MTU5MiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJzZWN0b3JzIgorbXNnc3RyICJzZWt0b3JlciIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisiJXMlcy5cbiIKKyJEdSBrYW4gZ8O2cmEgZGV0dGEgZnLDpW4gbWVueW4gZXh0cmEgZnVua3Rpb25hbGl0ZXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiBvY2ggIgorCisjOiBmZGlzay9mZGlzay5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogVGhlIHNpemUgb2YgdGhpcyBkaXNrIGlzICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJET1MgcGFydGl0aW9uIHRhYmxlIGZvcm1hdCBjYW4gbm90IGJlIHVzZWQgb24gZHJpdmVzIGZvciB2b2x1bWVzXG4iCisibGFyZ2VyIHRoYW4gKCVsbHUgYnl0ZXMpIGZvciAlZC1ieXRlIHNlY3RvcnMuIFVzZSBwYXJ0ZWQoMSkgYW5kIEdVSUQgXG4iCisicGFydGl0aW9uIHRhYmxlIGZvcm1hdCAoR1BUKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW5cbiIKKyJ0aGUgcGh5c2ljYWwgc2VjdG9yIHNpemUuIEFsaWduaW5nIHRvIGEgcGh5c2ljYWwgc2VjdG9yIChvciBvcHRpbWFsXG4iCisiSS9PKSBzaXplIGJvdW5kYXJ5IGlzIHJlY29tbWVuZGVkLCBvciBwZXJmb3JtYW5jZSBtYXkgYmUgaW1wYWN0ZWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0b1xuIgorIiAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0b1xuIgorIiAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODE5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBvZmZzZXQgaW4gcHJpbWFyeSBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiRmVsYWt0aWd0IGF2c3TDpW5kIGkgcHJpbcOkciB1dMO2a2FkIHBhcnRpdGlvblxuIgorCisjOiBmZGlzay9mZGlzay5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogb21pdHRpbmcgcGFydGl0aW9ucyBhZnRlciAjJWQuXG4iCisiVGhleSB3aWxsIGJlIGRlbGV0ZWQgaWYgeW91IHNhdmUgdGhpcyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKyJWYXJuaW5nOiB1dGVsw6RtbmFyIHBhcnRpdGlvbmVyIGVmdGVyIG5yICVkLlxuIgorIkRlIGtvbW1lciBhdHQgdGFzIGJvcnQgb20gZHUgc3BhcmFyIGRlbm5hIHBhcnRpdGlvbnN0YWJlbGwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGV4dHJhIGxpbmsgcG9pbnRlciBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiVmFybmluZzogZXh0cmEgbMOkbmtwZWthcmUgaSBwYXJ0aXRpb25zdGFiZWxsICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIlZhcm5pbmc6IGlnbm9yZXJhciBleHRyYSBkYXRhIGkgcGFydGl0aW9uc3RhYmVsbCAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjg5MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib21pdHRpbmcgZW1wdHkgcGFydGl0aW9uICglZClcbiIKK21zZ3N0ciAiVmFybmluZzogdG9tIHBhcnRpdGlvblxuIgorCisjOiBmZGlzay9mZGlzay5jOjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGlkZW50aWZpZXI6IDB4JTA4eFxuIgorbXNnc3RyICJEaXNraWRlbnRpZmllcmFyZTogMHglMDh4XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBkaXNrIGlkZW50aWZpZXIgKGN1cnJlbnQgMHglMDh4KTogIgorbXNnc3RyICJOeSBkaXNraWRlbnRpZmllcmFyZSAobnV2YXJhbmRlIDB4JTA4eCk6ICIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IERPUyBkaXNrbGFiZWwgd2l0aCBkaXNrIGlkZW50aWZpZXIgMHglMDh4LlxuIgorIkNoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksIHVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS5cbiIKKyJBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiQnlnZ2VyIGVuIG55IERPUy1kaXNrZXRpa2V0dCBtZWQgZGlza2lkZW50aWZpZXJhcmVuIDB4JTA4eC5cbiIKKyLDhG5kcmluZ2FyIGtvbW1lciBlbmRhc3QgYXR0IGZpbm5hcyBpIG1pbm5ldCB0aWxsIGR1IGJlc3TDpG1tZXJcbiIKKyJkaWcgZsO2ciBhdHQgc2tyaXZhIGRlbS4gRWZ0ZXIgZGV0IGtvbW1lciBuYXR1cmxpZ3R2aXMgaW50ZSBkZXRcbiIKKyJ0aWRpZ2FyZSBpbm5laMOlbGxldCBhdHQga3VubmEgw6V0ZXJzdMOkbGxhcy5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdGU6IHNlY3RvciBzaXplIGlzICVkIChub3QgJWQpXG4iCittc2dzdHIgIk9ic2VydmVyYTogc2VrdG9yc3Rvcmxla2VuIMOkciAlZCAoaW50ZSAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkR1IGtvbW1lciBpbnRlIGF0dCBrdW5uYSBza3JpdmEgcGFydGl0aW9uc3RhYmVsbGVuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZGlzayBoYXMgYm90aCBET1MgYW5kIEJTRCBtYWdpYy5cbiIKKyJHaXZlIHRoZSAnYicgY29tbWFuZCB0byBnbyB0byBCU0QgbW9kZS5cbiIKK21zZ3N0ciAiIgorIkRlbm5hIGRpc2sgaGFyIGLDpWRlIG1hZ2lza2EgRE9TLSBvY2ggQlNELXNpZmZyb3IuXG4iCisiR2Uga29tbWFuZG90IFwiYlwiIGbDtnIgYXR0IGfDpSB0aWxsIEJTRC1sw6RnZS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisiRW5oZXRlbiBpbm5laMOlbGxlciB2YXJrZW4gZW4gZ2lsdGlnIERPUy1wYXJ0aXRpb25zdGFiZWxsIGVsbGVyIGVuIFN1bi0sIFNHSS0gIgorImVsbGVyIE9TRi1kaXNrZXRpa2V0dFxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW50ZXJuYWwgZXJyb3JcbiIKK21zZ3N0ciAiSW50ZXJudCBmZWxcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJJZ25vcmVyYXIgZXh0cmEgdXTDtmthZCBwYXJ0aXRpb24gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHglMDR4IG9mIHBhcnRpdGlvbiB0YWJsZSAlZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3IgorIihyaXRlKVxuIgorbXNnc3RyICIiCisiVmFybmluZzogb2dpbHRpZ2EgZmxhZ2dhbiAweCUwNHggaSBwYXJ0aXRpb25zdGFiZWxsICVkIGtvbW1lciBldHQga29ycmlnZXJhcyAiCisidmlkIHNrcml2bmluZyBtZWQgd1xuIgorCisjOiBmZGlzay9mZGlzay5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImdvdCBFT0YgdGhyaWNlIC0gZXhpdGluZy4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJtb3R0b2cgRU9GIHRyZSBnw6VuZ2VyIC0gYXZzbHV0YXIuLi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMzYwCittc2dpZCAiSGV4IGNvZGUgKHR5cGUgTCB0byBsaXN0IGNvZGVzKTogIgorbXNnc3RyICJIZXhhZGVjaW1hbCBrb2QgKHRyeWNrIEwgZsO2ciBhdHQgc2Uga29kZXIpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXUtJXUsIGRlZmF1bHQgJXUpOiAiCittc2dzdHIgIiVzICgldS0ldSwgc3RhbmRhcmR2w6RyZGUgJXUpOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnN1cHBvcnRlZCBzdWZmaXg6ICclcycuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdXBwb3J0ZWQ6IDEwXk46IEtCIChLaWxvQnl0ZSksIE1CIChNZWdhQnl0ZSksIEdCIChHaWdhQnl0ZSlcbiIKKyIgICAgICAgICAgICAyXk46IEsgIChLaWJpQnl0ZSksIE0gIChNZWJpQnl0ZSksIEcgIChHaWJpQnl0ZSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgZGVmYXVsdCB2YWx1ZSAldVxuIgorbXNnc3RyICJBbnbDpG5kZXIgc3RhbmRhcmR2w6RyZGV0ICV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIlbDpHJkZXQgw6RyIHV0YW5mw7ZyIGludGVydmFsbGV0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1MTgKK21zZ2lkICJQYXJ0aXRpb24gbnVtYmVyIgorbXNnc3RyICJQYXJ0aXRpb25zbnVtbWVyIgorCisjOiBmZGlzay9mZGlzay5jOjE1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGhhcyBlbXB0eSB0eXBlXG4iCittc2dzdHIgIlZhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXIgdG9tIHR5cFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJWYWxkZSBwYXJ0aXRpb24gJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiSW5nZW4gcGFydGl0aW9uIMOkciBkZWZpbmllcmFkIMOkbiFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBwcmltYXJ5IHBhcnRpdGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeSFcbiIKK21zZ3N0ciAiQWxsYSBwcmltw6RyYSBwYXJ0aXRpb25lciBoYXIgcmVkYW4gZGVmaW5pZXJhdHMhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgImN5bGluZGVyIgorbXNnc3RyICJjeWxpbmRlciIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICJzZWt0b3IiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIsOEbmRyYXIgdmlzbmluZ3MtL2lubWF0bmluZ3NlbmhldGVyIHRpbGwgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiVkFSTklORzogUGFydGl0aW9uICVkIMOkciBlbiB1dMO2a2FkIHBhcnRpdGlvblxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIKK21zZ3N0ciAiRE9TLWtvbXBhdGliaWxpdGV0c2ZsYWdnYSDDpHIgc2F0dFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBub3Qgc2V0XG4iCittc2dzdHIgIkRPUy1rb21wYXRpYmlsaXRldHNmbGFnZ2Egw6RyIGludGUgc2F0dFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIGZpbm5zIGludGUgw6RuIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlR5cGUgMCBtZWFucyBmcmVlIHNwYWNlIHRvIG1hbnkgc3lzdGVtc1xuIgorIihidXQgbm90IHRvIExpbnV4KS4gSGF2aW5nIHBhcnRpdGlvbnMgb2ZcbiIKKyJ0eXBlIDAgaXMgcHJvYmFibHkgdW53aXNlLiBZb3UgY2FuIGRlbGV0ZVxuIgorImEgcGFydGl0aW9uIHVzaW5nIHRoZSBgZCcgY29tbWFuZC5cbiIKK21zZ3N0ciAiIgorIlR5cCAwIGJldHlkZXIgbGVkaWd0IHV0cnltbWUgZsO2ciBtw6VuZ2FcbiIKKyJzeXN0ZW0gKG1lbiBpbnRlIGbDtnIgTGludXgpLiBBdHQgaGFcbiIKKyJwYXJ0aXRpb25lciBhdiB0eXAgMCDDpHIgZsO2cm1vZGxpZ2VuXG4iCisib2tsb2t0LiBEdSBrYW4gdGEgYm9ydCBlbiBwYXJ0aXRpb25cbiIKKyJnZW5vbSBhdHQgYW52w6RuZGEga29tbWFuZG90IFwiZFwiLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8gYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKyJEZWxldGUgaXQgZmlyc3QuXG4iCittc2dzdHIgIiIKKyJEdSBrYW4gaW50ZSDDpG5kcmEgZW4gcGFydGl0aW9uIHRpbGwgZW4gdXTDtmthZCBwYXJ0aXRpb24gZWxsZXIgdHbDpHJ0b21cbiIKKyJUYSBib3J0IGRlbiBmw7Zyc3QuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gMyBhcyBXaG9sZSBkaXNrICg1KSxcbiIKKyJhcyBTdW5PUy9Tb2xhcmlzIGV4cGVjdHMgaXQgYW5kIGV2ZW4gTGludXggbGlrZXMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJEdSBiw7ZyIMO2dmVydsOkZ2EgYXR0IGzDpG1uYSBwYXJ0aXRpb24gMyBzb20gSGVsIGRpc2sgKDUpLFxuIgorImVmdGVyc29tIFN1bk9TL1NvbGFyaXMgZsO2cnbDpG50YXIgc2lnIGRldCBvY2ggw6R2ZW4gTGludXhcbiIKKyJnaWxsYXIgZGV0LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5IGFzIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImFuZCBwYXJ0aXRpb24gMTEgYXMgZW50aXJlIHZvbHVtZSAoNiksIGFzIElSSVggZXhwZWN0cyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkR1IGLDtnIgw7Z2ZXJ2w6RnYSBhdHQgbMOkbW5hIHBhcnRpdGlvbiA5IHNvbSB2b2x5bWh1dnVkICgwKVxuIgorIm9jaCBwYXJ0aXRpb24gMTEgc29tIGhlbCB2b2x5bSAoNikgZWZ0ZXJzb20gSVJJWFxuIgorImbDtnJ2w6RudGFyIHNpZyBkZXQuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc2OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2VkIHN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCB0byAleCAoJXMpXG4iCittc2dzdHIgIsOEbmRyYWRlIHN5c3RlbXR5cGVuIGbDtnIgcGFydGl0aW9uICVkIHRpbGwgJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCBpcyB1bmNoYW5nZWQ6ICV4ICglcylcbiIKK21zZ3N0ciAiU3lzdGVtdHlwIGbDtnIgcGFydGl0aW9uICVkIMOkciBvZsO2csOkbmRyYWQgJXggKCVzKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBiZWdpbm5pbmdzIChub24tTGludXg/KTpcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIGhhciBvbGlrYSBmeXNpc2thL2xvZ2lza2EgYsO2cmphbiAoaWNrZS1MaW51eD8pOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjkgZmRpc2svZmRpc2suYzoxODM3IGZkaXNrL2ZkaXNrLmM6MTg0NiBmZGlzay9mZGlzay5jOjE4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICBwaHlzPSglZCwgJWQsICVkKSAiCittc2dzdHIgIiAgICAgZnlzPSglZCwgJWQsICVkKSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzMCBmZGlzay9mZGlzay5jOjE4MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naWNhbD0oJWQsICVkLCAlZClcbiIKK21zZ3N0ciAibG9naXNrPSglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBlbmRpbmdzOlxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgaGFyIG9saWthIGZ5c2lza2EvbG9naXNrYSBzbHV0OlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWkgYsO2cmphciBpbnRlIHDDpSBjeWxpbmRlcmdyw6RuczpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAxKVxuIgorbXNnc3RyICJib3JkZSB2YXJhICglZCwgJWQsIDEpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWkgc2x1dGFyIGludGUgcMOlIGN5bGluZGVyZ3LDpG5zLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsICVkKVxuIgorbXNnc3RyICJib3JkZSB2YXJhICglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlaSBiw7ZyamFyIGludGUgcMOlIGN5bGluZGVyZ3LDpG5zOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWxkIE1CLCAlbGxkIGJ5dGVcbiIKKworIzogZmRpc2svZmRpc2suYzoxODgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQuJWxkIEdCLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQsJWxkIEdCLCAlbGxkIGJ5dGVcbiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGhlYWRzLCAlbGx1IHNlY3RvcnMvdHJhY2ssICVkIGN5bGluZGVycyIKK21zZ3N0ciAiJWQgaHV2dWRlbiwgJWxsdSBzZWt0b3Jlci9zcMOlciwgJWQgY3lsaW5kcmFyIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCB0b3RhbCAlbGx1IHNlY3RvcnMiCittc2dzdHIgIiwgdG90YWx0ICVsbHUgc2VrdG9yZXIiCisKKyMgwrcgKGNlbnRlcmVkIGRvdCkgaXMgbm9ybWFsbHkgdXNlZCBhcyB0aGUgbXVsdGlwbGljYXRpb24gc2lnbiBpbiBTd2VkaXNoLgorIyBTZWUgIlN2ZW5za2Egc2tyaXZyZWdsZXIiIMKnMjYwLgorIworIzogZmRpc2svZmRpc2suYzoxODkwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuaXRzID0gJXMgb2YgJWQgKiAlZCA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIkVuaGV0ZXIgPSAlcyBhdiAlZCDCtyAlZCA9ICVkIGJ5dGVcbiIKKworIzogZmRpc2svZmRpc2suYzoxODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciBzaXplIChsb2dpY2FsL3BoeXNpY2FsKTogJXUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSS9PIHNpemUgKG1pbmltdW0vb3B0aW1hbCk6ICVsdSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQWxpZ25tZW50IG9mZnNldDogJWx1IGJ5dGVzXG4iCittc2dzdHIgImZlbGFrdGlnIHN0b3JsZWsgcMOlIGlub2QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuIgorIlxuIgorbXNnc3RyICIiCisiSW5nZW50aW5nIGF0dCBnw7ZyYS4gT3JkbmluZ2VuIMOkciByZWRhbiBrb3JyZWt0LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRvbmUuXG4iCittc2dzdHIgIiIKKyJGw6RyZGlnXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisiRGV0dGEgc2VyIGludGUgdXQgc29tIGVuIHBhcnRpdGlvbnN0YWJlbGxcbiIKKyJEdSB2YWxkZSBub2cgZmVsIGVuaGV0LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEJvb3QgICAgICBTdGFydCAgICAgICAgIEVuZCAgICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIFN0YXJ0ICAgICBCw7ZyamFuICAgICAgICBTbHV0ICAgICBCbG9jayAgICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3OCBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjEwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTgKK21zZ2lkICJEZXZpY2UiCittc2dzdHIgIkVuaGV0IgorCisjOiBmZGlzay9mZGlzay5jOjIxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIgorbXNnc3RyICIiCisiXG4iCisiUG9zdGVybmEgaSBwYXJ0aXRpb25zdGFiZWxsZW4gw6RyIGludGUgaSBkaXNrb3JkbmluZ1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWQgaHV2dWRlbiwgJWxsdSBzZWt0b3JlciwgJWQgY3lsaW5kcmFyXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJOciBBRiAgSGQgU2VjICBDeWwgIEhkIFNlYyAgQ3lsICAgICBTdGFydCAgICAgIFNpemUgSURcbiIKK21zZ3N0ciAiTnIgQUYgIEhkIFNlayAgQ3lsICBIZCBTZWsgIEN5bCAgICAgQsO2cmphbiAgICAgU3RybCBJRFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgIlZhcm5pbmc6IHBhcnRpdGlvbiAlZCBpbm5laMOlbGxlciBzZWt0b3IgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZDogaHV2dWQgJWQgw6RyIHN0w7ZycmUgw6RuIG1heGltYWxhICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHNlY3RvciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZDogc2VrdG9yICVkIMOkciBzdMO2cnJlIMOkbiBtYXhpbWFsYSAlbGx1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJQYXJ0aXRpb25lciAlZDogY3lsaW5kZXIgJWQgw6RyIHN0w7ZycmUgw6RuIG1heGltYWxhICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHByZXZpb3VzIHNlY3RvcnMgJWQgZGlzYWdyZWVzIHdpdGggdG90YWwgJWRcbiIKK21zZ3N0ciAiIgorIlBhcnRpdGlvbiAlZDogdGlkaWdhcmUgc2VrdG9yZXIgJWQgc3TDpG1tZXIgaW50ZSDDtnZlcmVucyBtZWQgdG90YWxhICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiVmFybmluZzogZmVsYWt0aWcgZGF0YWLDtnJqYW4gcMOlIHBhcnRpdGlvbiAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIG92ZXJsYXBzIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiVmFybmluZzogcGFydGl0aW9uICVkIMO2dmVybGFwcGFyIG1lZCBwYXJ0aXRpb24gJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAiVmFybmluZzogcGFydGl0aW9uICVkIMOkciB0b21cbiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiTG9naXNrIHBhcnRpdGlvbiAlZCDDpHIgaW50ZSBoZWx0IGludXRpIHBhcnRpdGlvbiAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlRvdGFsIGFsbG9jYXRlZCBzZWN0b3JzICVsbHUgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAiVG90YWxhIGFudGFsZXQgYWxsb2tlcmFkZSBzZWt0b3JlciAlbGQgw6RyIHN0w7ZycmUgw6RuIG1heGltYWxhICVsbGRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSZW1haW5pbmcgJWxsZCB1bmFsbG9jYXRlZCAlZC1ieXRlIHNlY3RvcnNcbiIKK21zZ3N0ciAiJWxsZCBvYWxsb2tlcmFkZSBzZWt0b3JlclxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzMDEgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDExCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBpcyBhbHJlYWR5IGRlZmluZWQuICBEZWxldGUgaXQgYmVmb3JlIHJlLWFkZGluZyBpdC5cbiIKK21zZ3N0ciAiIgorIlBhcnRpdGlvbiAlZCDDpHIgcmVkYW4gZGVmaW5pZXJhZC4gVGEgYm9ydCBkZW4gaW5uYW4gZHUgbMOkZ2dlciB0aWxsIGRlbiAiCisiaWdlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlbGx1IGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIlNla3RvciAlbGx1IMOkciByZWRhbiBhbGxva2VyYWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGZyZWUgc2VjdG9ycyBhdmFpbGFibGVcbiIKK21zZ3N0ciAiSW5nYSBsZWRpZ2Egc2VrdG9yZXIgw6RyIHRpbGxnw6RuZ2xpZ2FcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJTEkcywgKyUyJHMgb3IgK3NpemV7SyxNLEd9IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBBSVggZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0VHl2w6RyciAtIGRlbm5hIGZkaXNrIGthbiBpbnRlIGhhbnRlcmEgQUlYLWRpc2tldGlrZXR0ZXIuXG4iCisiXHRPbSBkdSB2aWxsIGzDpGdnYSB0aWxsIHBhcnRpdGlvbmVyIGF2IERPUy10eXAgYsO2ciBkdVxuIgorIlx0c2thcGEgZW4gbnkgdG9tIERPUy1wYXJ0aXRpb25zdGFiZWxsIGbDtnJzdCAoYW52w6RuZCBcIm9cIikuXG4iCisiXHRWQVJOSU5HOiBEZXR0YSBrb21tZXIgYXR0IGbDtnJzdMO2cmEgZGV0IG51dmFyYW5kZSBpbm5laMOlbGxldFxuIgorIlx0cMOlIGRpc2tlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIE1hYyBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHRUeXbDpHJyIC0gZGVubmEgZmRpc2sga2FuIGludGUgaGFudGVyYSBNYWMtZGlza2V0aWtldHRlci5cbiIKKyJcdE9tIGR1IHZpbGwgbMOkZ2dhIHRpbGwgcGFydGl0aW9uZXIgYXYgRE9TLXR5cCBiw7ZyIGR1XG4iCisiXHRza2FwYSBlbiBueSB0b20gRE9TLXBhcnRpdGlvbnN0YWJlbGwgZsO2cnN0IChhbnbDpG5kIFwib1wiKS5cbiIKKyJcdFZBUk5JTkc6IERldHRhIGtvbW1lciBhdHQgZsO2cnN0w7ZyYSBkZXQgbnV2YXJhbmRlIGlubmVow6VsbGV0XG4iCisiXHRww6UgZGlza2VuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iCittc2dzdHIgIiIKKyJEdSBtw6VzdGUgdGEgYm9ydCBlbiBwYXJ0aXRpb24gb2NoIGzDpGdnYSB0aWxsIGVuIHV0w7ZrYWQgcGFydGl0aW9uIGbDtnJzdFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIGxvZ2ljYWwgcGFydGl0aW9ucyBhcmUgaW4gdXNlXG4iCittc2dzdHIgIkFsbGEgbG9naXNrYSBwYXJ0aXRpb25lciBhbnbDpG5kc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nIGEgcHJpbWFyeSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiTMOkZ2dlciB0aWxsIGVuIHByaW3DpHIgcGFydGl0aW9uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29tbWFuZCBhY3Rpb25cbiIKKyIgICAlc1xuIgorIiAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KVxuIgorbXNnc3RyICIiCisiS29tbWFuZG/DpXRnw6RyZFxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW3DpHIgcGFydGl0aW9uICgxLTQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIgorbXNnc3RyICJsICAgbG9naXNrICg1IGVsbGVyIGjDtmdyZSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImUgICBleHRlbmRlZCIKK21zZ3N0ciAiZSAgIHV0w7ZrYWQiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICJPZ2lsdGlndCBwYXJ0aXRpb25zbnVtbWVyIGbDtnIgdHlwZW4gXCIlY1wiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisiUGFydGl0aW9uc3RhYmVsbGVuIGhhciDDpG5kcmF0cyFcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgaW9jdGwoKSB0byByZS1yZWFkIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiQW5yb3BhciBpb2N0bCgpIGbDtnIgYXR0IGzDpHNhIG9tIHBhcnRpdGlvbnN0YWJlbGxlbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyJUaGUga2VybmVsIHN0aWxsIHVzZXMgdGhlIG9sZCB0YWJsZS4gVGhlIG5ldyB0YWJsZSB3aWxsIGJlIHVzZWQgYXRcbiIKKyJ0aGUgbmV4dCByZWJvb3Qgb3IgYWZ0ZXIgeW91IHJ1biBwYXJ0cHJvYmUoOCkgb3Iga3BhcnR4KDgpXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWQVJOSU5HOiBPbWzDpHNuaW5nIGF2IHBhcnRpdGlvbnN0YWJlbGxlbiBtaXNzbHlja2FkZXMgbWVkIGZlbCAlZDogJXMuXG4iCisiS8Okcm5hbiBhbnbDpG5kZXIgZm9ydGZhcmFuZGUgZGVuIGdhbWxhIHRhYmVsbGVuLlxuIgorIkRlbiBueWEgdGFiZWxsZW4ga29tbWVyIGF0dCBhbnbDpG5kYXMgdmlkIG7DpHN0YSBvbXN0YXJ0LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55IERPUyA2LnhcbiIKKyJwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBmZGlzayBtYW51YWwgcGFnZSBmb3IgYWRkaXRpb25hbFxuIgorImluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiVkFSTklORzogT20gZHUgaGFyIHNrYXBhdCBlbGxlciDDpG5kcmF0IG7DpWdvbiBET1MgNi54LXBhcnRpdGlvblxuIgorImLDtnIgZHUgbMOkc2EgZmRpc2stbWFudWFsc2lkYW4gZsO2ciB5dHRlcmxpZ2FyZSBpbmZvcm1hdGlvbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJFcnJvciBjbG9zaW5nIGZpbGVcbiIKK21zZ3N0ciAiIgorIlxuIgorIkZlbCB2aWQgc3TDpG5nbmluZyBhdiBmaWxcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIlN5bmtyb25pc2VyYXIgaMOlcmRkaXNrYXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgaGFyIGluZ2V0IGRhdGFvbXLDpWRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiTnkgYsO2cmphbiB1dGF2IGRhdGEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY3MgorbXNnaWQgIkV4cGVydCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJFeHBlcnRrb21tYW5kbyAobSBmw7ZyIGhqw6RscCk6ICIKKworIzogZmRpc2svZmRpc2suYzoyNjg1Cittc2dpZCAiTnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiQW50YWwgY3lsaW5kcmFyIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIkFudGFsIGh1dnVkZW4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczNworbXNnaWQgIk51bWJlciBvZiBzZWN0b3JzIgorbXNnc3RyICJBbnRhbCBzZWt0b3JlciIKKworIzogZmRpc2svZmRpc2suYzoyNzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHNldHRpbmcgc2VjdG9yIG9mZnNldCBmb3IgRE9TIGNvbXBhdGlibGl0eVxuIgorbXNnc3RyICJWYXJuaW5nOiBzdMOkbGxlciBpbiBzZWt0b3JhdnN0w6VuZCBmw7ZyIERPUy1rb21wYXRpYmlsaXRldFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlZBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIHVwcHTDpGNrdGVzIHDDpSBcIiVzXCIhIFZlcmt0eWdldCBmZGlzayAiCisic2FrbmFyIHN0w7ZkIGbDtnIgR1BULiBBbnbDpG5kIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzIGRvZXNuJ3QgY29udGFpbiBhIHZhbGlkIHBhcnRpdGlvbiB0YWJsZVxuIgorbXNnc3RyICJEaXNrICVzIGlubmVow6VsbGVyIGludGUgZW4gZ2lsdGlnIHBhcnRpdGlvbnN0YWJlbGxcbiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIkthbiBpbnRlIMO2cHBuYSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IG9rw6RudCBrb21tYW5kb1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBrZXJuZWwgZmluZHMgdGhlIHNlY3RvciBzaXplIGl0c2VsZiAtIC1iIG9wdGlvbiBpZ25vcmVkXG4iCittc2dzdHIgIkRlbm5hIGvDpHJuYSBoaXR0YXIgc2rDpGx2IHNla3RvcnN0b3JsZWtlbiAtIGZsYWdnYW4gLWIgaWdub3JlcmFzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisiVmFybmluZzogZmxhZ2dhbiAtYiAoc3TDpGxsIGluIHNla3RvcnN0b3JsZWspIG3DpXN0ZSBhbnbDpG5kYXMgbWVkIGVuIGFuZ2l2ZW4gIgorImVuaGV0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBhbiBPU0YvMSBkaXNrbGFiZWwgb24gJXMsIGVudGVyaW5nIGRpc2tsYWJlbCBtb2RlLlxuIgorbXNnc3RyICJVcHB0w6Rja3RlIGVuIE9TRi8xLWRpc2tldGlrZXR0IHDDpSAlcywgZ8OlciBpbiBpIGRpc2tldGlrZXR0c2zDpGdlLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMTAKK21zZ2lkICJDb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJLb21tYW5kbyAobSBmw7ZyIGhqw6RscCk6ICIKKworIzogZmRpc2svZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgY3VycmVudCBib290IGZpbGUgaXM6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJBa3R1ZWxsIHN0YXJ0ZmlsIMOkcjogJXNcbiIKKworIzogZmRpc2svZmRpc2suYzozMDI4Cittc2dpZCAiUGxlYXNlIGVudGVyIHRoZSBuYW1lIG9mIHRoZSBuZXcgYm9vdCBmaWxlOiAiCittc2dzdHIgIkFuZ2UgbmFtbmV0IHDDpSBkZW4gbnlhIHN0YXJ0ZmlsZW46ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiU3RhcnRmaWxlbiBvZsO2csOkbmRyYWRcbiIKKworIzogZmRpc2svZmRpc2suYzozMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdFNvcnJ5LCBubyBleHBlcnRzIG1lbnUgZm9yIFNHSSBwYXJ0aXRpb24gdGFibGVzIGF2YWlsYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0VHl2w6RyciwgZGV0IGZpbm5zIGluZ2VuIGV4cGVydG1lbnkgdGlsbGfDpG5nbGlnIGbDtnIgU0dJLSIKKyJwYXJ0aXRpb25zdGFiZWxsZXIuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrbWFjbGFiZWwuYzozMAorbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgTWFjIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgZmRpc2soMSkgY2Fubm90IGhhbmRsZSB0aGVzZSBkaXNrcy5cbiIKKyJcdFVzZSBlaXRoZXIgcGRpc2sgb3IgcGFydGVkIHRvIG1vZGlmeSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorIlx0TmV2ZXJ0aGVsZXNzIHNvbWUgYWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorbXNnc3RyICIiCisiXG4iCisiXHREZXQgZmlubnMgZW4gZ2lsdGlnIE1hYy1ldGlrZXR0IHDDpSBkZW5uYSBkaXNrLlxuIgorIlx0VHl2w6RyciBrYW4gaW50ZSBmZGlzaygxKSBoYW50ZXJhIGRlc3NhIGRpc2thci5cbiIKKyJcdEFudsOkbmQgYW50aW5nZW4gcGRpc2sgZWxsZXIgcGFydGVkXG4iCisiXHRmw7ZyIGF0dCDDpG5kcmEgcGFydGl0aW9uc3RhYmVsbGVuLlxuIgorIlx0SMOkciDDpHIgaHVyc29taGVsc3QgZW4gZGVsIHLDpWQ6XG4iCisiXHQxLiBmZGlzayBrb21tZXIgYXR0IGbDtnJzdMO2cmEgZGVzcyBpbm5laMOlbGwgdmlkXG4iCisiXHQgICBza3Jpdm5pbmcuXG4iCisiXHQyLiBGw7Zyc8Oka3JhIGRpZyBvbSBhdHQgZGVubmEgZGlzayBJTlRFIGZvcnRmYXJhbmRlXG4iCisiXHQgICDDpHIgZW4gdml0YWwgZGVsIGkgZW4gdm9seW1ncnVwcCAoYW5uYXJzIGthbiBkdVxuIgorIlx0ICAgcmFkZXJhIGRlIGFuZHJhIGRpc2thcm5hLCBvbSBkZSBpbnRlIHNwZWdsYXMpLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODEKK21zZ2lkICJTR0kgdm9saGRyIgorbXNnc3RyICJTR0ktdm9saHZkIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODIKK21zZ2lkICJTR0kgdHJrcmVwbCIKK21zZ3N0ciAiU0dJLXNwcnJlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MworbXNnaWQgIlNHSSBzZWNyZXBsIgorbXNnc3RyICJTR0ktc2VrcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg0Cittc2dpZCAiU0dJIHJhdyIKK21zZ3N0ciAiU0dJIHLDpSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg1Cittc2dpZCAiU0dJIGJzZCIKK21zZ3N0ciAiU0dJIGJzZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg2Cittc2dpZCAiU0dJIHN5c3YiCittc2dzdHIgIlNHSSBzeXN2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODcKK21zZ2lkICJTR0kgdm9sdW1lIgorbXNnc3RyICJTR0ktdm9seW0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OAorbXNnaWQgIlNHSSBlZnMiCittc2dzdHIgIlNHSSBlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OQorbXNnaWQgIlNHSSBsdm9sIgorbXNnc3RyICJTR0kgbHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkwCittc2dpZCAiU0dJIHJsdm9sIgorbXNnc3RyICJTR0kgcnZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIHhmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIkxpbnV4IHbDpHhsaW5nIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTYgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUxCittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICJMaW51eCBlZ2VuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJFbmxpZ3QgTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMgZsOlciBldGlrZXR0ZW4gaW50ZSBpbm5laMOlbGxhIG1lciDDpG4gNTEyICIKKyJieXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJIaXR0YWRlIHNnaS1kaXNrZXRpa2V0dCBtZWQgZmVsYWt0aWcga29udHJvbGxzdW1tYS5cbiIKKworIyDCtyAoY2VudGVyZWQgZG90KSBpcyBub3JtYWxseSB1c2VkIGFzIHRoZSBtdWx0aXBsaWNhdGlvbiBzaWduIGluIFN3ZWRpc2guCisjIFNlZSAiU3ZlbnNrYSBza3JpdnJlZ2xlciIgwqcyNjAuCisjCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnNcbiIKKyIlZCBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXMgKFNHSS1kaXNrZXRpa2V0dCk6ICVkIGh1dnVkZW4sICVsbHUgc2VrdG9yZXJcbiIKKyIlZCBjeWxpbmRyYXIsICVkIGZ5c2lza2EgY3lsaW5kcmFyXG4iCisiJWQgZXh0cmEgc2VrdG9yZXIvY3lsaW5kZXIsIG1lbGxhbnJ1bSAlZDoxXG4iCisiJXNcbiIKKyJFbmhldGVyID0gJXMgYXYgJWQgwrcgJWQgYnl0ZVxuIgorIlxuIgorCisjIMK3IChjZW50ZXJlZCBkb3QpIGlzIG5vcm1hbGx5IHVzZWQgYXMgdGhlIG11bHRpcGxpY2F0aW9uIHNpZ24gaW4gU3dlZGlzaC4KKyMgU2VlICJTdmVuc2thIHNrcml2cmVnbGVyIiDCpzI2MC4KKyMKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzIChTR0ktZGlza2V0aWtldHQpOiAlZCBodXZ1ZGVuLCAlbGx1IHNla3RvcmVyLCAlZCBjeWxpbmRyYXJcbiIKKyJFbmhldGVyID0gJXMgYXYgJWQgwrcgJWQgYnl0ZVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiLS0tLS0gcGFydGl0aW9uZXIgLS0tLS1cbiIKKyJQdCAgJSpzICBJbmZvICAgICBCw7ZyamFuICAgICAgU2x1dCAgU2VrdG9yZXIgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSBTdGFydGluZm8gLS0tLS1cbiIKKyJTdGFydGZpbDogJXNcbiIKKyItLS0tLSBLYXRhbG9ncG9zdGVyIC0tLS0tXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIgorbXNnc3RyICIlMmQ6ICUtMTBzIHNla3RvciU1dSBzdG9ybGVrJTh1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiT2dpbHRpZyBzdGFydGZpbCFcbiIKKyJcdFN0YXJ0ZmlsZW4gbcOlc3RlIHZhcmEgZW4gYWJzb2x1dCBpY2tldG9tIHPDtmt2w6RnLFxuIgorIlx0dC5leC4gXCIvdW5peFwiIGVsbGVyIFwiL3VuaXguc2F2ZVwiLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Mjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdE5hbWUgb2YgQm9vdGZpbGUgdG9vIGxvbmc6ICAxNiBieXRlcyBtYXhpbXVtLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHROYW1uZXQgcMOlIHN0YXJ0ZmlsZW4gw6RyIGbDtnIgbMOlbmd0OiAxNiBieXRlIMOkciBtYXguXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgbXVzdCBoYXZlIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRTdGFydGZpbGVuIG3DpXN0ZSBoYSBlbiBmdWxsc3TDpG5kaWcgc8O2a3bDpGcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0QmUgYXdhcmUsIHRoYXQgdGhlIGJvb3RmaWxlIGlzIG5vdCBjaGVja2VkIGZvciBleGlzdGVuY2UuXG4iCisiXHRTR0kncyBkZWZhdWx0IGlzIFwiL3VuaXhcIiBhbmQgZm9yIGJhY2t1cCBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0T2JzZXJ2ZXJhIGF0dCBkZXQgaW50ZSBrb250cm9sbGVyYXMgb20gc3RhcnRmaWxlbiBmaW5ucy5cbiIKKyJcdFNHSTpzIHN0YW5kYXJkYWx0ZXJuYXRpdiDDpHIgXCIvdW5peFwiIHJlc3Bla3RpdmUgXCIvdW5peC5zYXZlXCJcbiIKKyJcdGbDtnIgc8Oka2VyaGV0c2tvcGlvci5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0U3RhcnRmaWxlbiDDpG5kcmFkZXMgdGlsbCBcIiVzXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICJEZXQgZmlubnMgZmxlciDDpG4gZW4gZGlza3Bvc3QuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4MworIywgYy1mb3JtYXQKK21zZ2lkICJObyBwYXJ0aXRpb25zIGRlZmluZWRcbiIKK21zZ3N0ciAiSW5nYSBwYXJ0aXRpb25lciDDpHIgYW5naXZuYVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiSVJJWCBnaWxsYXIgb20gcGFydGl0aW9uIDExIHTDpGNrZXIgaGVsYSBow6VyZGRpc2tlbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBzaG91bGQgc3RhcnQgYXQgYmxvY2sgMCxcbiIKKyJub3QgYXQgZGlza2Jsb2NrICVkLlxuIgorbXNnc3RyICIiCisiSGVsYSBkaXNrcGFydGl0aW9uZW4gbcOlc3RlIGLDtnJqYSB2aWQgYmxvY2sgMCxcbiIKKyJpbnRlIHZpZCBkaXNrYmxvY2sgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gaXMgb25seSAlZCBkaXNrYmxvY2sgbGFyZ2UsXG4iCisiYnV0IHRoZSBkaXNrIGlzICVkIGRpc2tibG9ja3MgbG9uZy5cbiIKK21zZ3N0ciAiIgorIkhlbGEgZGlza3BhcnRpdGlvbmVuIMOkciBlbmRhc3QgJWQgZGlza2Jsb2NrIHN0b3IsXG4iCisibWVuIGjDpXJkZGlza2VuIMOkciAlZCBkaXNrYmxvY2sgbMOlbmcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiT25lIFBhcnRpdGlvbiAoIzExKSBzaG91bGQgY292ZXIgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICJFbiBwYXJ0aXRpb24gKDExKSBtw6VzdGUgdMOkY2thIGhlbGEgaMOlcmRkaXNrZW4uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgYsO2cmphciBpbnRlIHDDpSBlbiBqw6RtbiBjeWxpbmRlcmdyw6Rucy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgc2x1dGFyIGludGUgcMOlIGVuIGrDpG1uIGN5bGluZGVyZ3LDpG5zLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBQYXJ0aXRpb24gJWQgYW5kICVkIG92ZXJsYXAgYnkgJWQgc2VjdG9ycy5cbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIG9jaCAlZCDDtnZlcmxhcHBhciB2YXJhbmRyYSBtZWQgJWQgc2VrdG9yZXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0ODQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAiT2FudsOkbnQgbWVsbGFucnVtIHDDpSAlOHUgc2VrdG9yZXIgLSBzZWt0b3Jlcm5hICU4dS0ldVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgYm9vdCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTdGFydHBhcnRpdGlvbmVuIGZpbm5zIGludGUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlbDpHhsaW5nc3BhcnRpdGlvbmVuIGZpbm5zIGludGUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisiXG4iCisiVsOkeGxpbmdzcGFydGl0aW9uZW4gaGFyIGluZ2VuIHbDpHhsaW5nc3R5cC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMworIywgYy1mb3JtYXQKK21zZ2lkICJcdFlvdSBoYXZlIGNob3NlbiBhbiB1bnVzdWFsIGJvb3QgZmlsZSBuYW1lLlxuIgorbXNnc3RyICJcdER1IGhhciB2YWx0IGV0dCBvdmFubGlndCBuYW1uIHDDpSBzdGFydGZpbGVuLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIlR5dsOkcnIsIGR1IGthbiDDpG5kcmEgdGFnZ2VuIHDDpSBpY2tlLXRvbW1hIHBhcnRpdGlvbmVyLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJEZXQgcmVrb21tZW5kZXJhcyB2YXJtdCBhdHQgcGFydGl0aW9uZW4gcMOlIGF2c3TDpW5kIDAgw6RyIGF2XG4iCisidHlwZW4gXCJTR0kgdm9saHZkXCIsIElSSVgtc3lzdGVtZXQga29tbWVyIGF0dCBmw7ZybGl0YSBzaWcgcMOlXG4iCisiZGV0IGbDtnIgYXR0IGjDpG10YSBzasOkbHZzdMOkbmRpZ2EgdmVya3R5ZyBzb20gc2FzaCBvY2ggZnggZnLDpW5cbiIKKyJrYXRhbG9nZW4uIEVuZGFzdCBkZW4gZnVsbHN0w6RuZGlnYSBcIlNHSS12b2x5bVwiLWRpc2tzZWt0aW9uZW5cbiIKKyJmw6VyIGxvdiBhdHQgYnJ5dGEgbW90IGRldHRhLiBTa3JpdiBpbiBKQSBvbSBkdSDDpHIgc8Oka2VyIHDDpSBhdHRcbiIKKyJkdSB2aWxsIGdlIGRlbm5hIHBhcnRpdGlvbiBlbiBhbm5hbiB0YWdnLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTQzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDkKK21zZ2lkICJZRVNcbiIKK21zZ3N0ciAiSkFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU2OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBZb3Uga25vdywgWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrP1xuIgorbXNnc3RyICJWZXQgZHUgb20gYXR0IHBhcnRpdGlvbmVyIMO2dmVybGFwcGFyIHZhcmFuZHJhIHDDpSBow6VyZGRpc2tlbj9cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyNgorIywgYy1mb3JtYXQKK21zZ2lkICJBdHRlbXB0aW5nIHRvIGdlbmVyYXRlIGVudGlyZSBkaXNrIGVudHJ5IGF1dG9tYXRpY2FsbHkuXG4iCittc2dzdHIgIkbDtnJzw7ZrZXIgYXR0IGdlbmVyZXJhIGZ1bGxzdMOkbmRpZyBkaXNrcG9zdCBhdXRvbWF0aXNrdC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZW50aXJlIGRpc2sgaXMgYWxyZWFkeSBjb3ZlcmVkIHdpdGggcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAiSGVsYSBkaXNrZW4gw6RyIHJlZGFuIHTDpGNrdCBtZWQgcGFydGl0aW9uZXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKyJEdSBoYXIgcGFydGl0aW9uZXIgc29tIMO2dmVybGFwcGFyIHZhcmFuZHJhIHDDpSBkaXNrZW4uIEZpeGEgZGV0IGbDtnJzdCFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY0NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCBlbGV2ZW50aCBwYXJ0aXRpb25cbiIKKyJjb3ZlcnMgdGhlIGVudGlyZSBkaXNrIGFuZCBpcyBvZiB0eXBlIGBTR0kgdm9sdW1lJ1xuIgorbXNnc3RyICIiCisiRGV0IHJla29tbWVuZGVyYXMgdmFybXQgYXR0IGRlbiBlbGZ0ZSBwYXJ0aXRpb25lblxuIgorInTDpGNrZXIgaGVsYSBow6VyZGRpc2tlbiBvY2ggw6RyIGF2IHR5cGVuIFwiU0dJLXZvbHltXCJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBnZXQgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICIiCisiRHUga29tbWVyIGF0dCBmw6Ugw7Z2ZXJsYXBwYW5kZSBwYXJ0aXRpb25lciBww6UgaMOlcmRkaXNrZW4uIEZpeGEgZGV0IGbDtnJzdCFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgTGFzdCAlcyIKK21zZ3N0ciAiIHNpc3RhICVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBTR0kgZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuIgorIlxuIgorbXNnc3RyICIiCisiQnlnZ2VyIGVuIG55IFNHSS1kaXNrZXRpa2V0dC4gw4RuZHJpbmdhciBrb21tZXIgZW5kYXN0IGF0dCBmaW5uYXMgaVxuIgorIm1pbm5ldCwgdGlsbCBkZXNzIGF0dCBkdSB2w6RsamVyIGF0dCBza3JpdmEgZGVtLiBFZnRlciBkZXQga29tbWVyXG4iCisibmF0dXJsaWd0dmlzIGRldCB0aWRpZ2FyZSBpbm5laMOlbGxldCBhdHQgdmFyYSBzcMOlcmzDtnN0IGJvcnRhLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzE4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6ICBCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlcy4gIFVzaW5nIGdlb21ldHJ5IGN5bGluZGVyIHZhbHVlIG9mICUiCisiZC5cbiIKKyJUaGlzIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgZm9yIGRldmljZXMgPiAzMy44IEdCLlxuIgorbXNnc3RyICIiCisiVmFybmluZzogQkxLR0VUU0laRS1pb2N0bCBtaXNzbHlja2FkZXMgcMOlICVzLiBBbnbDpG5kZXJcbiIKKyJnZW9tZXRyaWN5bGluZGVydsOkcmRldCAlZC5cbiIKKyJEZXR0YSB2w6RyZGUga2FuIHZhcmEgYXZrb3J0YXQgZsO2ciBlbmhldGVyID4gMzMsOCBHQi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8ga2VlcCBwYXJhbWV0ZXJzIG9mIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiRsO2cnPDtmtlciBhdHQgYmVow6VsbGEgcGFyYW1ldHJhcm5hIGbDtnIgcGFydGl0aW9uICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklEPSUwMnhcdFNUQVJUPSVkXHRMRU5HVEg9JWRcbiIKK21zZ3N0ciAiSUQ9JTAyeFx0QsOWUkpBTj0lZFx0TMOETkdEPSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIk90aWxsZGVsYWQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MAorbXNnaWQgIlN1bk9TIHJvb3QiCittc2dzdHIgIlN1bk9TIHJvdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1MgdsOkeGxpbmciCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MgorbXNnaWQgIlN1bk9TIHVzciIKK21zZ3N0ciAiU3VuT1MgdXNyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDMKK21zZ2lkICJXaG9sZSBkaXNrIgorbXNnc3RyICJIZWxhIGRpc2tlbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0Cittc2dpZCAiU3VuT1Mgc3RhbmQiCittc2dzdHIgIlN1bk9TIHN0YW5kIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDUKK21zZ2lkICJTdW5PUyB2YXIiCittc2dzdHIgIlN1bk9TIHZhciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ2Cittc2dpZCAiU3VuT1MgaG9tZSIKK21zZ3N0ciAiU3VuT1MgaG9tZSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIlN1bk9TIGFsdCBzZWt0b3JlciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4Cittc2dpZCAiU3VuT1MgY2FjaGVmcyIKK21zZ3N0ciAiU3VuT1MgY2FjaGVmcyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIlN1bk9TIHJlc2VydmVyYWQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMworbXNnaWQgIkxpbnV4IHJhaWQgYXV0b2RldGVjdCIKK21zZ3N0ciAiTGludXggcmFpZCBhdXRvZGV0ZWt0ZXJhZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjEzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorIlByb2JhYmx5IHlvdSdsbCBoYXZlIHRvIHNldCBhbGwgdGhlIHZhbHVlcyxcbiIKKyJlLmcuIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMgYW5kIHBhcnRpdGlvbnNcbiIKKyJvciBmb3JjZSBhIGZyZXNoIGxhYmVsIChzIGNvbW1hbmQgaW4gbWFpbiBtZW51KVxuIgorbXNnc3RyICIiCisiRGV0ZWt0ZXJhZGUgZW4gc3VuLWRpc2tldGlrZXR0IG1lZCBmZWxha3RpZ1xuIgorImtvbnRyb2xsc3VtbWEuIER1IG3DpXN0ZSB0cm9saWd0dmlzIHN0w6RsbGEgaW5cbiIKKyJhbGxhIHbDpHJkZW4sIGR2cy4gaHV2dWRlbiwgc2VrdG9yZXIsIGN5bGluZHJhclxuIgorIm9jaCBwYXJ0aXRpb25lciwgZWxsZXIgdHZpbmdhIGVuIG55IGV0aWtldHRcbiIKKyIoa29tbWFuZG90IHMgaSBodXZ1ZG1lbnluKVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICJIaXR0YWRlIHN1bi1kaXNrZXRpa2V0dCBtZWQgZmVsYWt0aWcgdmVyc2lvbiBbMHglMDh4XS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1MworIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3Jvbmcgc2FuaXR5IFsweCUwOHhdLlxuIgorbXNnc3RyICJIaXR0YWRlIHN1bi1kaXNrZXRpa2V0dCBtZWQgZmVsYWt0aWcga29udHJvbGxzdW1tYSBbMHglMDh4XS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1OAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgbnVtX3BhcnRpdGlvbnMgWyV1XS5cbiIKK21zZ3N0ciAiSGl0dGFkZSBzdW4tZGlza2V0aWtldHQgbWVkIGZlbGFrdGlnIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJWYXJuaW5nOiBGZWxha3RpZ2EgdsOkcmRlbiBiZWjDtnZlciByw6R0dGFzIHRpbGwgb2NoIGtvbW1lciBhdHQga29ycmlnZXJhcyBhdiB3IgorIihza3JpdilcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkJ5Z2dlciBlbiBueSBzdW4tZGlza2V0aWtldHQuIMOEbmRyaW5nYXIga29tbWVyIGF0dCBmw7ZyYmxpIGVuZGFzdCBpXG4iCisibWlubmV0LCB0aWxsIGRlc3MgYXR0IGR1IGJlc2x1dGFyIGRpZyBmw7ZyIGF0dCBza3JpdmEgZGVtLiBFZnRlciBkZXRcbiIKKyJrb21tZXIgbmF0dXJsaWd0dmlzIGRldCB0aWRpZ2FyZSBpbm5laMOlbGxldCBpbnRlIGF0dCB2YXJhXG4iCisiw6V0ZXJzdMOkbGxuaW5nc2JhcnQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICJTZWt0b3Jlci9zcMOlciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiUGFydGl0aW9uICVkIHNsdXRhciBpbnRlIHDDpSBqw6RtbiBjeWxpbmRlcmdyw6Ruc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBvdmVybGFwcyB3aXRoIG90aGVycyBpbiBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIlBhcnRpdGlvbiAlZCDDtnZlcmxhcHBhciBtZWQgYW5kcmEgcMOlIHNla3RvcmVybmEgJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAwLSVkXG4iCittc2dzdHIgIk9hbnbDpG50IG1lbGxhbnJ1bSAtIHNla3RvcmVybmEgMC0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiT2FudsOkbnQgbWVsbGFucnVtIC0gc2VrdG9yZXJuYSAlZC0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdGhlciBwYXJ0aXRpb25zIGFscmVhZHkgY292ZXIgdGhlIHdob2xlIGRpc2suXG4iCisiRGVsZXRlIHNvbWUvc2hyaW5rIHRoZW0gYmVmb3JlIHJldHJ5LlxuIgorbXNnc3RyICIiCisiQW5kcmEgcGFydGl0aW9uZXIgdMOkY2tlciByZWRhbiBoZWxhIGjDpXJkZGlza2VuLlxuIgorIlRhIGJvcnQva3J5bXAgZGVtIGlubmFuIGR1IGbDtnJzw7ZrZXIgaWdlbi5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSB0aGlyZCBwYXJ0aXRpb24gY292ZXJzIHRoZSB3aG9sZSBkaXNrXG4iCisiYW5kIGlzIG9mIHR5cGUgYFdob2xlIGRpc2snXG4iCittc2dzdHIgIiIKKyJEZXQgcmVrb21tZW5kZXJhcyB2YXJtdCBhdHQgZGVuIGVsZnRlIHBhcnRpdGlvbmVuXG4iCisidMOkY2tlciBoZWxhIGjDpXJkZGlza2VuIG9jaCDDpHIgYXYgdHlwZW4gXCJTR0ktdm9seW1cIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZCBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWt0b3IgJWQgw6RyIHJlZGFuIGFsbG9rZXJhZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZW4ndCBjb3ZlcmVkIHRoZSB3aG9sZSBkaXNrIHdpdGggdGhlIDNyZCBwYXJ0aXRpb24sIGJ1dCB5b3VyIHZhbHVlXG4iCisiJWQgJXMgY292ZXJzIHNvbWUgb3RoZXIgcGFydGl0aW9uLiBZb3VyIGVudHJ5IGhhcyBiZWVuIGNoYW5nZWRcbiIKKyJ0byAlZCAlc1xuIgorbXNnc3RyICIiCisiRHUgaGFyIGludGUgdMOkY2t0IGhlbGEgaMOlcmRkaXNrZW4gbWVkIGRlbiB0cmVkamUgcGFydGl0aW9uZW4sIG1lbiBkaXR0XG4iCisidsOkcmRlICVkICVzIHTDpGNrZXIgZW4gYW5uYW4gcGFydGl0aW9uLiBEaW4gaW5tYXRuaW5nIGhhciDDpG5kcmF0cyB0aWxsICVkICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklmIHlvdSB3YW50IHRvIG1haW50YWluIFN1bk9TL1NvbGFyaXMgY29tcGF0aWJpbGl0eSwgY29uc2lkZXIgbGVhdmluZyB0aGlzXG4iCisicGFydGl0aW9uIGFzIFdob2xlIGRpc2sgKDUpLCBzdGFydGluZyBhdCAwLCB3aXRoICV1IHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorIk9tIGR1IHZpbGwgYmVow6VsbGEga29tcGF0aWJpbGl0ZXQgbWVkIFN1bk9TL1NvbGFyaXMgYsO2ciBkdSBsw6RtbmEgZGVubmFcbiIKKyJwYXJ0aXRpb24gc29tIEhlbGEgZGlza2VuICg1KSwgbWVkIGLDtnJqYW4gcMOlIDAsIG9jaCBtZWQgJXUgc2VrdG9yZXJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIkRldCByZWtvbW1lbmRlcmFzIHZhcm10IGF0dCBwYXJ0aXRpb25lbiBww6UgYXZzdMOlbmQgMCDDpHJcbiIKKyJVRlMsIGZpbHN5c3RlbWV0IEVYVDJGUyBlbGxlciBTdW5PUyB2w6R4bGluZy4gQXR0IGzDpGdnYVxuIgorIkxpbnV4IHbDpHhsaW5nIGTDpHIga2FuIGbDtnJzdMO2cmEgZGluIHBhcnRpdGlvbnN0YWJlbGwgb2NoXG4iCisiZGl0dCBzdGFydGJsb2NrLlxuIgorIlNraXYgaW4gSkEgb20gZHUgw6RyIHbDpGxkaWd0IHPDpGtlciBww6UgYXR0IGR1IHZpbGwgYXR0XG4iCisiZGVubmEgcGFydGl0aW9uIHNrYSBoYSB0YWdnZW4gODIgKExpbnV4IHbDpHhsaW5nKTogIgorCisjIMK3IChjZW50ZXJlZCBkb3QpIGlzIG5vcm1hbGx5IHVzZWQgYXMgdGhlIG11bHRpcGxpY2F0aW9uIHNpZ24gaW4gU3dlZGlzaC4KKyMgU2VlICJTdmVuc2thIHNrcml2cmVnbGVyIiDCpzI2MC4KKyMKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4tZGlza2V0aWtldHQpOiAlZCBodXZ1ZGVuLCAlbGx1IHNla3RvcmVyLFxuIgorIiVkIHZhcnYgcGVyIG1pbnV0LCAlZCBjeWxpbmRyYXIsICVkIGFsdGVybmF0aXZhXG4iCisiY3lsaW5kcmFyLCAlZCBmeXNpc2thIGN5bGluZHJhciwgJWQgZXh0cmEgc2VrdG9yZXIvY3lsaW5kZXIsXG4iCisibWVsbGFucnVtICVkOjFcbiIKKyJFdGlrZXR0LWlkOiAlc1xuIgorIlZvbHltLWlkOiAlc1xuIgorIkVuaGV0ZXIgPSAlcyBhdiAlZCDCtyA1MTIgYnl0ZVxuIgorIlxuIgorCisjIMK3IChjZW50ZXJlZCBkb3QpIGlzIG5vcm1hbGx5IHVzZWQgYXMgdGhlIG11bHRpcGxpY2F0aW9uIHNpZ24gaW4gU3dlZGlzaC4KKyMgU2VlICJTdmVuc2thIHNrcml2cmVnbGVyIiDCpzI2MC4KKyMKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoU3VuLWRpc2tldGlrZXR0KTogJWQgaHV2dWRlbiwgJWxsdSBzZWt0b3JlciwgJWQgY3lsaW5kcmFyXG4iCisiRW5oZXRlciA9ICVzIGF2ICVkIMK3IDUxMiBieXRlXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEZsYWcgICAgU3RhcnQgICAgICAgRW5kICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzIEZsYWdnYSAgQsO2cmphbiAgICAgIFNsdXQgICBCbG9jayAgICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MjUKK21zZ2lkICJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiQW50YWwgYWx0ZXJuZXJhbmRlIGN5bGluZHJhciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYzNworbXNnaWQgIkV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICJFeHRyYSBzZWt0b3JlciBwZXIgY3lsaW5kZXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NDQKK21zZ2lkICJJbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiTWVsbGFucnVtc2Zha3RvciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1MQorbXNnaWQgIlJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICJSb3RhdGlvbnNoYXN0aWdoZXQgKHZhcnYgcGVyIG1pbnV0KSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1OAorbXNnaWQgIk51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIkFudGFsIGZ5c2lza2EgY3lsaW5kcmFyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYKK21zZ2lkICJFbXB0eSIKK21zZ3N0ciAiVG9tIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcKK21zZ2lkICJGQVQxMiIKK21zZ3N0ciAiRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OAorbXNnaWQgIlhFTklYIHJvb3QiCittc2dzdHIgIlhFTklYIHJvdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5Cittc2dpZCAiWEVOSVggdXNyIgorbXNnc3RyICJYRU5JWCB1c3IiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAKK21zZ2lkICJGQVQxNiA8MzJNIgorbXNnc3RyICJGQVQxNiA8IDMyIE1CIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjExCittc2dpZCAiRXh0ZW5kZWQiCittc2dzdHIgIlV0w7ZrYWQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTIKK21zZ2lkICJGQVQxNiIKK21zZ3N0ciAiRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTMKK21zZ2lkICJIUEZTL05URlMiCittc2dzdHIgIkhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNAorbXNnaWQgIkFJWCIKK21zZ3N0ciAiQUlYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE1Cittc2dpZCAiQUlYIGJvb3RhYmxlIgorbXNnc3RyICJBSVggc3RhcnRiYXIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTYKK21zZ2lkICJPUy8yIEJvb3QgTWFuYWdlciIKK21zZ3N0ciAiT1MvMiBCb290IE1hbmFnZXIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTcKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIlc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOAorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjAKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIlc5NSBVdMO2a2FkIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIxCittc2dpZCAiT1BVUyIKK21zZ3N0ciAiT1BVUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMgorbXNnaWQgIkhpZGRlbiBGQVQxMiIKK21zZ3N0ciAiRG9sZCBGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMworbXNnaWQgIkNvbXBhcSBkaWFnbm9zdGljcyIKK21zZ3N0ciAiQ29tcGFxLWRpYWdub3N0aWsiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjQKK21zZ2lkICJIaWRkZW4gRkFUMTYgPDMyTSIKK21zZ3N0ciAiRG9sZCBGQVQxNiA8IDMyIE1CIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI1Cittc2dpZCAiSGlkZGVuIEZBVDE2IgorbXNnc3RyICJEb2xkIEZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiRG9sZCBIUEZTL05URlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjcKK21zZ2lkICJBU1QgU21hcnRTbGVlcCIKK21zZ3N0ciAiQVNUIFNtYXJ0U2xlZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjgKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIgorbXNnc3RyICJEb2xkIFc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOQorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIkRvbGQgVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiRG9sZCBXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzEKK21zZ2lkICJORUMgRE9TIgorbXNnc3RyICJORUMgRE9TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMyCittc2dpZCAiUGxhbiA5IgorbXNnc3RyICJQbGFuIDkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzMKK21zZ2lkICJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIKK21zZ3N0ciAiUGFydGl0aW9uTWFnaWMtw6V0ZXJzdMOkbGxuaW5nIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIlZlbml4IDgwMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM1Cittc2dpZCAiUFBDIFBSZVAgQm9vdCIKK21zZ3N0ciAiUFBDIFBSZVAgc3RhcnQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMjphIGRlbGVuIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM5Cittc2dpZCAiUU5YNC54IDNyZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggMzplIGRlbGVuIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQwCittc2dpZCAiT25UcmFjayBETSIKK21zZ3N0ciAiT25UcmFjayBETSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MQorbXNnaWQgIk9uVHJhY2sgRE02IEF1eDEiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDIKK21zZ2lkICJDUC9NIgorbXNnc3RyICJDUC9NIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQzCittc2dpZCAiT25UcmFjayBETTYgQXV4MyIKK21zZ3N0ciAiT250cmFjayBETTYgQXV4MyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NAorbXNnaWQgIk9uVHJhY2tETTYiCittc2dzdHIgIk9uVHJhY2tETTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDUKK21zZ2lkICJFWi1Ecml2ZSIKK21zZ3N0ciAiRVotRHJpdmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDYKK21zZ2lkICJHb2xkZW4gQm93IgorbXNnc3RyICJHb2xkZW4gQm93IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ3Cittc2dpZCAiUHJpYW0gRWRpc2siCittc2dzdHIgIlByaWFtIEVkaXNrIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTIKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OQorbXNnaWQgIlNwZWVkU3RvciIKK21zZ3N0ciAiU3BlZWRTdG9yIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ5Cittc2dpZCAiR05VIEhVUkQgb3IgU3lzViIKK21zZ3N0ciAiR05VIEhVUkQgLyBTeXNWIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUwCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMjg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTEKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAzODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDM4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MgorbXNnaWQgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKK21zZ3N0ciAiRGlza1NlY3VyZSBNdWx0aS1zdGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiR2FtbWFsIE1pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8gZ2FtbWFsIExpbnV4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2Cittc2dpZCAiTGludXggc3dhcCAvIFNvbGFyaXMiCittc2dzdHIgIkxpbnV4IHbDpHhsaW5nIC8gU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIGRvbGQgQzotZW5oZXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTkKK21zZ2lkICJMaW51eCBleHRlbmRlZCIKK21zZ3N0ciAiTGludXggdXTDtmthZCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYxCittc2dpZCAiTlRGUyB2b2x1bWUgc2V0IgorbXNnc3RyICJOVEZTLXZvbHltc2FtbGluZyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorbXNnaWQgIkxpbnV4IHBsYWludGV4dCIKK21zZ3N0ciAiTGludXgga2xhcnRleHQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjQKK21zZ2lkICJBbW9lYmEiCittc2dzdHIgIkFtb2ViYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NQorbXNnaWQgIkFtb2ViYSBCQlQiCittc2dzdHIgIkFtb2ViYSBCQlQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjYKK21zZ2lkICJCU0QvT1MiCittc2dzdHIgIkJTRC9PUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NworbXNnaWQgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKK21zZ3N0ciAiSUJNIFRoaW5rcGFkLXZpbG9sw6RnZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OAorbXNnaWQgIkZyZWVCU0QiCittc2dzdHIgIkZyZWVCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjkKK21zZ2lkICJPcGVuQlNEIgorbXNnc3RyICJPcGVuQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIk5lWFRTVEVQIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcxCittc2dpZCAiRGFyd2luIFVGUyIKK21zZ3N0ciAiRGFyd2luIFVGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MgorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiTmV0QlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjczCittc2dpZCAiRGFyd2luIGJvb3QiCittc2dzdHIgIkRhcndpbiBzdGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NAorIywgZnV6enkKK21zZ2lkICJIRlMgLyBIRlMrIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzUKK21zZ2lkICJCU0RJIGZzIgorbXNnc3RyICJCU0RJIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc2Cittc2dpZCAiQlNESSBzd2FwIgorbXNnc3RyICJCU0RJIHbDpHhsaW5nIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc3Cittc2dpZCAiQm9vdCBXaXphcmQgaGlkZGVuIgorbXNnc3RyICJCb290IFdpemFyZCBkb2xkIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICJTb2xhcmlzIHN0YXJ0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc5Cittc2dpZCAiU29sYXJpcyIKK21zZ3N0ciAiU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MAorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTEyKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgxCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyIE1CKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MgorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2KSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgzCittc2dpZCAiU3lyaW54IgorbXNnc3RyICJTeXJpbngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODQKK21zZ2lkICJOb24tRlMgZGF0YSIKK21zZ3N0ciAiSWNrZS1maWxzeXN0ZW1zZGF0YSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NQorbXNnaWQgIkNQL00gLyBDVE9TIC8gLi4uIgorbXNnc3RyICJDUC9NIC8gQ1RPUyAvIC4uLiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NworbXNnaWQgIkRlbGwgVXRpbGl0eSIKK21zZ3N0ciAiRGVsbC12ZXJrdHlnIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg4Cittc2dpZCAiQm9vdEl0IgorbXNnc3RyICJCb290SXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODkKK21zZ2lkICJET1MgYWNjZXNzIgorbXNnc3RyICJET1Mtw6V0a29tc3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTEKK21zZ2lkICJET1MgUi9PIgorbXNnc3RyICJET1MgUi9PIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk0Cittc2dpZCAiQmVPUyBmcyIKK21zZ3N0ciAiQmVPUyBmcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorIywgZnV6enkKK21zZ2lkICJHUFQiCittc2dzdHIgIkVGSSBHUFQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIkVGSSAoRkFULTEyLzE2LzMyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NworbXNnaWQgIkxpbnV4L1BBLVJJU0MgYm9vdCIKK21zZ3N0ciAiTGludXgvUEEtUklTQyBzdGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1Mgc2VrdW5kw6RyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMQorbXNnaWQgIlZNd2FyZSBWTUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAyCittc2dpZCAiVk13YXJlIFZNS0NPUkUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDYKK21zZ2lkICJMQU5zdGVwIgorbXNnc3RyICJMQU5zdGVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiQkJUIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICJzw7ZrZmVsIHDDpSAlcyAtIGthbiBpbnRlIHNwb2xhIHRpbGwgJWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2OQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yOiB3YW50ZWQgMHglMDh4JTA4eCwgZ290IDB4JTA4eCUwOHhcbiIKK21zZ3N0ciAic8O2a2ZlbDogdmlsbGUgaGEgMHglMDh4JTA4eCwgZmljayAweCUwOHglMDh4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAic2x1dCBww6UgbWlubmUgLSBnZXIgdXBwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAibMOkc2ZlbCBww6UgJXMgLSBrYW4gaW50ZSBsw6RzYSBzZWt0b3IgJWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJFUlJPUjogc2VjdG9yICVsdSBkb2VzIG5vdCBoYXZlIGFuIG1zZG9zIHNpZ25hdHVyZVxuIgorbXNnc3RyICJGRUw6IHNla3RvciAlbHUgaGFyIGluZ2VuIG1zZG9zLXNpZ25hdHVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgInNrcml2ZmVsIHDDpSAlcyAtIGthbiBpbnRlIHNrcml2YSBzZWt0b3IgJWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgImthbiBpbnRlIMO2cHBuYSBwYXJ0aXRpb25zc2VrdG9yc3BhcmZpbCAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICJza3JpdmZlbCBww6UgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJrYW4gaW50ZSB0YSBzdGF0dXMgcMOlIHBhcnRpdGlvbnPDpXRlcnN0w6RsbG5pbmdzZmlsICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAicGFydGl0aW9uc8OldGVyc3TDpGxsbmluZ3NmaWxlbiBoYXIgZmVsIHN0b3JsZWsgLSDDpXRlcnN0w6RsbGVyIGludGVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQ0Cittc2dpZCAib3V0IG9mIG1lbW9yeT9cbiIKK21zZ3N0ciAic2x1dCBww6UgbWlubmU/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAia2FuIGludGUgw7ZwcG5hIHBhcnRpdGlvbnPDpXRlcnN0w6RsbG5pbmdzZmlsZW4gKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcmVhZGluZyAlc1xuIgorbXNnc3RyICJmZWwgdmlkIGzDpHNuaW5nIGF2ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAia2FuIGludGUgw7ZwcG5hIGVuaGV0ICVzIGbDtnIgc2tyaXZuaW5nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nIHNlY3RvciAlbHUgb24gJXNcbiIKK21zZ3N0ciAiZmVsIHZpZCBza3Jpdm5pbmcgYXYgc2VrdG9yICVsdSBww6UgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgZ2VvbWV0cnlcbiIKK21zZ3N0ciAiRGlzayAlczoga2FuIGludGUgZsOlIHRhZyBpIGdlb21ldHJpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ1NworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IHNpemVcbiIKK21zZ3N0ciAiRGlzayAlczoga2FuIGludGUgZsOlIHRhZyBpIHN0b3JsZWtcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzdGFydD0lbHUgLSB0aGlzIGxvb2tzIGxpa2UgYSBwYXJ0aXRpb24gcmF0aGVyIHRoYW5cbiIKKyJ0aGUgZW50aXJlIGRpc2suIFVzaW5nIGZkaXNrIG9uIGl0IGlzIHByb2JhYmx5IG1lYW5pbmdsZXNzLlxuIgorIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIgorbXNnc3RyICIiCisiVmFybmluZzogc3RhcnQ9JWx1IC0gZGV0dGEgc2VyIG1lciB1dCBzb20gZW4gcGFydGl0aW9uIMOkblxuIgorImhlbGEgZGlza2VuLiBBdHQgYW52w6RuZGEgZmRpc2sgcMOlIGRldCDDpHIgdHJvbGlndHZpcyBtZW5pbmdzbMO2c3QuXG4iCisiW0FudsOkbmQgZmxhZ2dhbiAtLWZvcmNlIG9tIGR1IHZlcmtsaWdlbiB2aWxsIGRldHRhXVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAiVmFybmluZzogSERJT19HRVRHRU8gc8OkZ2VyIGF0dCBkZXQgZmlubnMgJWx1IGh1dnVkZW5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IHNlY3RvcnNcbiIKK21zZ3N0ciAiVmFybmluZzogSERJT19HRVRHRU8gc8OkZ2VyIGF0dCBkZXQgZmlubnMgJWx1IHNla3RvcmVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGN5bGluZGVyc1xuIgorbXNnc3RyICJWYXJuaW5nOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHPDpGdlciBhdHQgZGV0IGZpbm5zICVsdSBjeWxpbmRyYXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1bmxpa2VseSBudW1iZXIgb2Ygc2VjdG9ycyAoJWx1KSAtIHVzdWFsbHkgYXQgbW9zdCA2M1xuIgorIlRoaXMgd2lsbCBnaXZlIHByb2JsZW1zIHdpdGggYWxsIHNvZnR3YXJlIHRoYXQgdXNlcyBDL0gvUyBhZGRyZXNzaW5nLlxuIgorbXNnc3RyICIiCisiVmFybmluZzogT3Nhbm5vbGlrdCBhbnRhbCBzZWt0b3JlciAoJWx1KSAtIHZhbmxpZ3R2aXMgw6RyIGRldCBzb20gbWVzdCA2M1xuIgorIkRldHRhIGtvbW1lciBhdHQgZ2UgcHJvYmxlbSBtZWQgYWxsIHByb2dyYW12YXJhIHNvbSBhbnbDpG5kZXIgQy9IL1MtIgorImFkcmVzc2VyaW5nLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRyYXIsICVsdSBodXZ1ZGVuLCAlbHUgc2VrdG9yZXIvc3DDpXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGhlYWQ6ICVsdSAoc2hvdWxkIGJlIGluIDAtJWx1KVxuIgorbXNnc3RyICIiCisiJXMgcMOlIHBhcnRpdGlvbiAlcyBoYXIgb23DtmpsaWd0IHbDpHJkZSBww6UgaHV2dWQ6ICVsdSAobcOlc3RlIHZhcmEgbWVsbGFuIDAtJSIKKyJsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgcMOlIHBhcnRpdGlvbiAlcyBoYXIgb23DtmpsaWd0IHbDpHJkZSBww6Ugc2VrdG9yOiAlbHUgKG3DpXN0ZSB2YXJhIG1lbGxhbiAxLSUiCisibHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICVsdSAoc2hvdWxkIGJlIGluIDAtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzIHDDpSBwYXJ0aXRpb24gJXMgaGFyIG9tw7ZqbGlndCB2w6RyZGUgcMOlIGN5bGluZGVyOiAlbHUgKG3DpXN0ZSB2YXJhIG1lbGxhbiAwLSUiCisibHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWQgIE5hbWVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIklkICBOYW1uXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgLi4uXG4iCittc2dzdHIgIkzDpHNlciBvbSBwYXJ0aXRpb25zdGFiZWxsZW4uLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCisjLCBmdXp6eQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKyJLb21tYW5kb3QgZsO2ciBhdHQgbMOkc2Egb20gcGFydGl0aW9uc3RhYmVsbGVuIG1pc3NseWNrYWRlc1xuIgorIlN0YXJ0YSBvbSBkaXR0IHN5c3RlbSBudSwgaW5uYW4gZHUgYW52w6RuZGVyIG1rZnNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNsb3NpbmcgJXNcbiIKK21zZ3N0ciAiRmVsIHZpZCBzdMOkbmduaW5nIGF2ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IGRldCBmaW5ucyBpbmdlbiBzw6VkYW4gcGFydGl0aW9uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg3OAorbXNnaWQgInVucmVjb2duaXplZCBmb3JtYXQgLSB1c2luZyBzZWN0b3JzXG4iCittc2dzdHIgIm9rw6RudCBmb3JtYXQgLSBhbnbDpG5kZXIgc2VrdG9yZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAib2ltcGxlbWVudGVyYXQgZm9ybWF0IC0gYW52w6RuZGVyICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBjeWxpbmRlcnMgb2YgJWx1IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRW5oZXRlciA9IGN5bGluZHJhciBtZWQgJWx1IGJ5dGUsIGJsb2NrIG1lZCAxMDI0IGJ5dGUsIHLDpGtuYXQgZnLDpW4gJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgICBFbmhldCBTdGFydCBCw7ZyamFuICAgU2x1dCAgICAgQ3lsLiAgICAgQmxvY2sgICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRW5oZXRlciA9IHNla3RvcmVyIG1lZCA1MTIgYnl0ZSwgcsOka25hdCBmcsOlbiAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICAgU3RhcnQgICAgICAgRW5kICAgI3NlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgRW5oZXQgU3RhcnQgICBCw7ZyamFuICAgICAgU2x1dCAgIFNla3RvcmVyICBJZCAgU3lzdGVtXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiRW5oZXRlciA9IGJsb2NrIG1lZCAxMDI0IGJ5dGUsIHLDpGtuYXQgZnLDpW4gJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgU3RhcnQgICAgICAgRW5kICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIEVuaGV0IFN0YXJ0ICBCw7ZyamFuICAgICAgU2x1dCAgICAgIEJsb2NrICAgSWQgIFN5c3RlbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gbWViaWJ5dGVzIG9mIDEwNDg1NzYgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJFbmhldGVyID0gbWViaWJ5dGUgbWVkIDEwNDg1NzYgYnl0ZSwgYmxvY2sgbWVkIDEwMjQgYnl0ZSwgcsOka25hdCBmcsOlbiAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIEVuaGV0IFN0YXJ0IELDtnJqYW4gU2x1dCAgICBNaUIgICAgICBCbG9jayAgIElkICBTeXN0ZW1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTExMworIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0c3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIlx0XHRiw7ZyamFuOiAoYyxoLHMpICglbGQsJWxkLCVsZCkgZsO2cnbDpG50YWRlcyAoJWxkLCVsZCwlbGQpIGhpdHRhZGVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdHNsdXQ6IChjLGgscykgKCVsZCwlbGQsJWxkKSBmw7ZydsOkbnRhZGVzICglbGQsJWxkLCVsZCkgaGl0dGFkZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgInBhcnRpdGlvbmVuIHNsdXRhciBww6UgY3lsaW5kZXIgJWxkLCB1dGFuZsO2ciBzbHV0ZXQgcMOlIGjDpXJkZGlza2VuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzMKK21zZ2lkICJObyBwYXJ0aXRpb25zIGZvdW5kXG4iCittc2dzdHIgIkluZ2EgcGFydGl0aW9uZXIgaGl0dGFkZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJWYXJuaW5nOiBQYXJ0aXRpb25zdGFiZWxsZW4gc2VyIHV0IHNvbSBvbSBkZW4gZ2pvcmRlc1xuIgorIiAgZsO2ciBDL0gvUz0qLyVsZC8lbGQgKGlzdMOkbGxldCBmw7ZyICVsZC8lbGQvJWxkKS5cbiIKKyJJIGRlbm5hIHZpc25pbmcga29tbWVyIGphZyBhdHQgYW50YWdhIGRlbiBnZW9tZXRyaW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAiaW5nZW4gcGFydGl0aW9uc3RhYmVsbCBmaW5ucyB0aWxsZ8OkbmdsaWcuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RyYW5nZSwgb25seSAlZCBwYXJ0aXRpb25zIGRlZmluZWQuXG4iCittc2dzdHIgImtvbnN0aWd0LCBlbmRhc3QgJWQgcGFydGl0aW9uZXIgw6RyIGFuZ2l2bmEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYnV0IGlzIG5vdCBtYXJrZWQgRW1wdHlcbiIKK21zZ3N0ciAiVmFybmluZzogcGFydGl0aW9uICVzIGhhciBzdG9ybGVrIDAgbWVuIMOkciBpbnRlIG1hcmtlcmFkIHRvbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBpcyBib290YWJsZVxuIgorbXNnc3RyICJWYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFyIHN0b3JsZWsgMCBvY2ggw6RyIHN0YXJ0YmFyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiVmFybmluZzogcGFydGl0aW9uICVzIGhhciBzdG9ybGVrIDAgb2NoIGVuIGLDtnJqYW4gc29tIGludGUgw6RyIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICJWYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5vdCBjb250YWluZWQgaW4gcGFydGl0aW9uICVzXG4iCittc2dzdHIgIsOkciBpbnRlIGlubmVzbHV0ZW4gaSBwYXJ0aXRpb24gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb25zICVzICIKK21zZ3N0ciAiVmFybmluZzogcGFydGl0aW9uZXJuYSAlcyAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiYW5kICVzIG92ZXJsYXBcbiIKK21zZ3N0ciAib2NoICVzIMO2dmVybGFwcGFyIHZhcmFuZHJhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorIlZhcm5pbmc6IHBhcnRpdGlvbiAlcyBpbm5laMOlbGxlciBlbiBkZWwgYXYgcGFydGl0aW9uc3RhYmVsbGVuIChzZWt0b3IgJWx1KSxcbiIKKyJvY2gga29tbWVyIGF0dCBmw7Zyc3TDtnJhIGRlbiBkw6UgZGVuIGZ5bGxzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIHN0YXJ0cyBhdCBzZWN0b3IgMFxuIgorbXNnc3RyICJWYXJuaW5nOiBwYXJ0aXRpb24gJXMgYsO2cmphciBww6Ugc2VrdG9yIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIlZhcm5pbmc6IHBhcnRpdGlvbiAlcyBmb3J0c8OkdHRlciB1dGFuZsO2ciBow6VyZGRpc2tlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjY5Cittc2dpZCAiIgorIkFtb25nIHRoZSBwcmltYXJ5IHBhcnRpdGlvbnMsIGF0IG1vc3Qgb25lIGNhbiBiZSBleHRlbmRlZFxuIgorIiAoYWx0aG91Z2ggdGhpcyBpcyBub3QgYSBwcm9ibGVtIHVuZGVyIExpbnV4KVxuIgorbXNnc3RyICIiCisiRW5kYXN0IGVuIGF2IGRlIHByaW3DpHJhIHBhcnRpdGlvbmVybmEga2FuIHZhcmEgdXTDtmthZFxuIgorIiAow6R2ZW4gb20gZGV0dGEgaW50ZSDDpHIgZXR0IHByb2JsZW0gdW5kZXIgTGludXgpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiVmFybmluZzogcGFydGl0aW9uICVzIGLDtnJqYXIgaW50ZSBww6UgZW4gasOkbW4gY3lsaW5kZXJncsOkbnNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI5MworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3QgZW5kIGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiVmFybmluZzogcGFydGl0aW9uICVzIHNsdXRhciBpbnRlIHDDpSBlbiBqw6RtbiBjeWxpbmRlcmdyw6Ruc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzExCittc2dpZCAiIgorIldhcm5pbmc6IG1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorIlZhcm5pbmc6IGZsZXIgw6RuIGVuIHByaW3DpHIgcGFydGl0aW9uIMOkciBtYXJrZXJhZCBzb20gc3RhcnRiYXIgKGFrdGl2KVxuIgorIkxJTE8gYnJ5ciBzaWcgaW50ZSBvbSBkZXR0YSwgbWVuIERPUyBodXZ1ZHN0YXJ0cG9zdCAoTUJSKSBrb21tZXIgaW50ZSBhdHRcbiIKKyJrdW5uYSBzdGFydGEgZGVubmEgZGlzay5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxOAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1c3VhbGx5IG9uZSBjYW4gYm9vdCBmcm9tIHByaW1hcnkgcGFydGl0aW9ucyBvbmx5XG4iCisiTElMTyBkaXNyZWdhcmRzIHRoZSBgYm9vdGFibGUnIGZsYWcuXG4iCittc2dzdHIgIiIKKyJWYXJuaW5nOiBub3JtYWx0IGthbiBtYW4gZW5kYXN0IHN0YXJ0YSBmcsOlbiBwcmltw6RyYSBwYXJ0aXRpb25lclxuIgorIkxJTE8gaWdub3JlcmFyIHN0YXJ0YmFyaGV0c2ZsYWdnYW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMjQKK21zZ2lkICIiCisiV2FybmluZzogbm8gcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorIlZhcm5pbmc6IGluZ2VuIHByaW3DpHIgcGFydGl0aW9uIMOkciBtYXJrZXJhZCBzb20gc3RhcnRiYXIgKGFrdGl2KVxuIgorIkxJTE8gYnJ5ciBzaWcgaW50ZSBvbSBkZXR0YSwgbWVuIERPUyBodXZ1ZHN0YXJ0cG9zdCAoTUJSKSBrb21tZXIgaW50ZSBhdHRcbiIKKyJrdW5uYSBzdGFydGEgZGVubmEgZGlzay5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMzOAorbXNnaWQgInN0YXJ0IgorbXNnc3RyICJiw7ZyamFuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisicGFydGl0aW9uICVzOiBiw7ZyamFuOiAoYyxoLHMpICglbGQsJWxkLCVsZCkgZsO2cnbDpG50YWRlcyAoJWxkLCVsZCwlbGQpICIKKyJoaXR0YWRlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQ3Cittc2dpZCAiZW5kIgorbXNnc3RyICJzbHV0IgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlczogZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisicGFydGl0aW9uICVzOiBzbHV0OiAoYyxoLHMpICglbGQsJWxkLCVsZCkgZsO2cnbDpG50YWRlcyAoJWxkLCVsZCwlbGQpICIKKyJoaXR0YWRlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAicGFydGl0aW9uICVzIHNsdXRhciBww6UgY3lsaW5kZXIgJWxkLCB1dGFuZsO2ciBzbHV0ZXQgcMOlIGjDpXJkZGlza2VuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHNoaWZ0ZWQgc3RhcnQgb2YgdGhlIGV4dGQgcGFydGl0aW9uIGZyb20gJWxkIHRvICVsZFxuIgorIihGb3IgbGlzdGluZyBwdXJwb3NlcyBvbmx5LiBEbyBub3QgY2hhbmdlIGl0cyBjb250ZW50cy4pXG4iCittc2dzdHIgIiIKKyJWYXJuaW5nOiDDpG5kcmFkZSBiw7ZyamFuIHDDpSBleHRkLXBhcnRpdGlvbmVuIGZyw6VuICVsZCB0aWxsICVsZFxuIgorIihFbmRhc3QgZsO2ciBsaXN0bmluZ3PDpG5kYW3DpWwuIMOEbmRyYSBpbnRlIGRlc3MgaW5uZWjDpWxsKS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM4NAorbXNnaWQgIiIKKyJXYXJuaW5nOiBleHRlbmRlZCBwYXJ0aXRpb24gZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeS5cbiIKKyJET1MgYW5kIExpbnV4IHdpbGwgaW50ZXJwcmV0IHRoZSBjb250ZW50cyBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIlZhcm5pbmc6IHV0w7ZrYWQgcGFydGl0aW9uIGLDtnJqYXIgaW50ZSBww6UgasOkbW4gY3lsaW5kZXJncsOkbnMuXG4iCisiRE9TIG9jaCBMaW51eCBrb21tZXIgYXR0IHRvbGthIGlubmVow6VsbGV0IGFubm9ybHVuZGEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MDIgZmRpc2svc2ZkaXNrLmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zIC0gaWdub3JpbmcgdGhvc2UgcGFzdCBuciAoJWQpXG4iCittc2dzdHIgImbDtnIgbcOlbmdhIHBhcnRpdGlvbmVyIC0gaWdub3JlcmFyIGRlIGVmdGVyIG51bW1lciAoJWQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MTcKK21zZ2lkICJ0cmVlIG9mIHBhcnRpdGlvbnM/XG4iCittc2dzdHIgInRyw6RkIG1lZCBwYXJ0aXRpb25lcj9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUyNQorbXNnaWQgImRldGVjdGVkIERpc2sgTWFuYWdlciAtIHVuYWJsZSB0byBoYW5kbGUgdGhhdFxuIgorbXNnc3RyICJ1cHB0w6Rja3RlIERpc2sgTWFuYWdlciAtIGthbiBpbnRlIGhhbnRlcmEgZGV0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIkRNNi1zaWduYXR1ciBoaXR0YWRlcyAtIGdlciB1cHBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1MgorbXNnaWQgInN0cmFuZ2UuLi4sIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgImtvbnN0aWd0LCBlbiB1dMO2a2FkIHBhcnRpdGlvbiBtZWQgc3RvcmxlayAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJrb25zdGlndCwgZW4gQlNELXBhcnRpdGlvbiBtZWQgc3RvcmxlayAwP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iCittc2dzdHIgIiAlczogb2vDpG5kIHR5cCBhdiBwYXJ0aXRpb25zdGFiZWxsXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIkZsYWdnYW4gLW4gYW5nYXZzOiBJbmdldCDDpG5kcmFkZXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzMgorbXNnaWQgIkZhaWxlZCBzYXZpbmcgdGhlIG9sZCBzZWN0b3JzIC0gYWJvcnRpbmdcbiIKK21zZ3N0ciAiTWlzc2x5Y2thZGVzIG1lZCBhdHQgc3BhcmEgZGUgZ2FtbGEgc2VrdG9yZXJuYSAtIGF2YnJ5dGVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzcgZmRpc2svc2ZkaXNrLmM6MTY0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgIk1pc3NseWNrYWRlcyBtZWQgYXR0IHNrcml2YSBwYXJ0aXRpb25lbiBww6UgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAibMOlbmcgZWxsZXIgb2Z1bGxzdMOkbmRpZyBpbmRhdGFyYWQgLSBhdnNsdXRhclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiaW5kYXRhZmVsOiBcIj1cIiBmw7ZydsOkbnRhcyBlZnRlciAlcy1mw6RsdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzYyCisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiB1bmV4cGVjdGVkIGNoYXJhY3RlciAlYyBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICJpbmRhdGFmZWw6IG92w6RudGF0IHRlY2tlbiAlYyBlZnRlciAlcy1mw6RsdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAib2vDpG5kIGluZGF0YTogJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgInRhbGV0IMOkciBmw7ZyIHN0b3J0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICJlZnRlcnNsw6RwYW5kZSBza3LDpHAgZWZ0ZXIgdGFsXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICJpbmdlbiBwbGF0cyBmw7ZyIHBhcnRpdGlvbnNoYW5kdGFnXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5NzEKK21zZ2lkICJjYW5ub3QgYnVpbGQgc3Vycm91bmRpbmcgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgImthbiBpbnRlIGJ5Z2dhIG9tZ2l2YW5kZSB1dMO2a2FkIHBhcnRpdGlvblxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDIyCittc2dpZCAidG9vIG1hbnkgaW5wdXQgZmllbGRzXG4iCittc2dzdHIgImbDtnIgbcOlbmdhIGluZGF0YWZpZWxkXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIkludGUgcGxhdHMgZsO2ciBtZXJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA3NQorbXNnaWQgIklsbGVnYWwgdHlwZVxuIgorbXNnc3RyICJPZ2lsdGlnIHR5cFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGdpdmVuIHNpemUgKCVsdSkgZXhjZWVkcyBtYXggYWxsb3dhYmxlIHNpemUgKCVsdSlcbiIKK21zZ3N0ciAiIgorIlZhcm5pbmc6IGFuZ2l2ZW4gc3RvcmxlayAoJWx1KSDDtnZlcnNrcmlkZXIgc3TDtnJzdGEgdGlsbMOldG5hIHN0b3JsZWtlbiAoJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTEzCittc2dpZCAiV2FybmluZzogZW1wdHkgcGFydGl0aW9uXG4iCittc2dzdHIgIlZhcm5pbmc6IHRvbSBwYXJ0aXRpb25cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIlZhcm5pbmc6IGZlbGFrdGlnIGLDtnJqYW4gcMOlIHBhcnRpdGlvbiAoZsO2cnN0YSAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNDAKK21zZ2lkICJ1bnJlY29nbml6ZWQgYm9vdGFibGUgZmxhZyAtIGNob29zZSAtIG9yICpcbiIKK21zZ3N0ciAib2vDpG5kIHN0YXJ0YmFyaGV0c2ZsYWdnYSAtIHbDpGxqIC0gZWxsZXIgKlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTU3IGZkaXNrL3NmZGlzay5jOjIxNzAKK21zZ2lkICJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iCittc2dzdHIgImMsaCxzLXNwZWNpZmlrYXRpb24gb2Z1bGxzdMOkbmRpZz9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE4MQorbXNnaWQgIkV4dGVuZGVkIHBhcnRpdGlvbiBub3Qgd2hlcmUgZXhwZWN0ZWRcbiIKK21zZ3N0ciAiVXTDtmthZCBwYXJ0aXRpb24gZmlubnMgaW50ZSBkw6RyIGRlbiBmw7ZydsOkbnRhZGVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMTMKK21zZ2lkICJiYWQgaW5wdXRcbiIKK21zZ3N0ciAiZmVsYWt0aWcgaW5kYXRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMzUKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zXG4iCittc2dzdHIgImbDtnIgbcOlbmdhIHBhcnRpdGlvbmVyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyNjgKK21zZ2lkICIiCisiSW5wdXQgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ7IGFic2VudCBmaWVsZHMgZ2V0IGEgZGVmYXVsdCB2YWx1ZS5cbiIKKyI8c3RhcnQ+IDxzaXplPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorIlVzdWFsbHkgeW91IG9ubHkgbmVlZCB0byBzcGVjaWZ5IDxzdGFydD4gYW5kIDxzaXplPiAoYW5kIHBlcmhhcHMgPHR5cGU+KS5cbiIKK21zZ3N0ciAiIgorIkluZGF0YSBww6UgZsO2bGphbmRlIGZvcm1hdDsgZsOkbHQgc29tIHNha25hcyBmw6VyIGV0dCBzdGFuZGFyZHbDpHJkZS5cbiIKKyI8YsO2cmphbj4gPHN0b3JsZWs+IDx0eXAgW0UsUyxMLFgsaGV4XT4gPHN0YXJ0YmFyIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyJWYW5sbGlndHZpcyBiZWjDtnZlciBkdSBiYXJhIGFuZ2UgPGLDtnJqYW4+IG9jaCA8c3Rvcmxlaz4gKG9jaCBrYW5za2UgPHR5cD4pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gZGV2aWNlIC4uLlxuIgorbXNnc3RyICJBbnbDpG5kbmluZzogJXMgW2ZsYWdnb3JdIGVuaGV0IC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAiZW5oZXQ6IG7DpWdvbnRpbmcgbGlrbmFuZGUgL2Rldi9oZGEgZWxsZXIgL2Rldi9zZGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTYKK21zZ2lkICJ1c2VmdWwgb3B0aW9uczoiCittc2dzdHIgImFudsOkbmRiYXJhIGZsYWdnb3I6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgIC1zIFtlbGxlciAtLXNob3ctc2l6ZV06IHZpc2Egc3RvcmxlayBww6UgZW4gcGFydGl0aW9uIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiAgICAtYyBbZWxsZXIgLS1pZF06ICAgICB2aXNhIGVsbGVyIMOkbmRyYSBwYXJ0aXRpb25zaWQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIgICAgLWwgW2VsbGVyIC0tbGlzdF06ICAgdmlzYSBwYXJ0aXRpb25lciBww6UgdmFyamUgZW5oZXQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAtZCBbZWxsZXIgLS1kdW1wXTogICBzYW1tYSwgbWVuIGkgZm9ybWF0IGzDpG1wbGlndCBmw7ZyIHNlbmFyZSBpbm1hdG5pbmciCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgLWkgW29yIC0taW5jcmVtZW50XTogbnVtYmVyIGN5bGluZGVycyBldGMuIGZyb20gMSBpbnN0ZWFkIG9mIGZyb20gMCIKK21zZ3N0ciAiIgorIiAgICAtaSBbZWxsZXIgLS1pbmNyZW1lbnRdOiBudW1yZXJhIGN5bGluZHJhciBvc3YgZnLDpW4gMSBpc3TDpGxsZXQgZsO2ciBmcsOlbiAwIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAyCittc2dpZCAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBhY2NlcHQvcmVwb3J0IGluIHVuaXRzIG9mIHNlY3RvcnMvYmxvY2tzL2N5bGluZGVycy8iCisiTUIiCittc2dzdHIgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0ZXJhL3JhcHBvcnRlcmEgaSBlbmhldGVyIG9tIHNla3RvcmVyL2Jsb2NrLyIKKyJjeWxpbmRyYXIvTUIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDMKK21zZ2lkICIgICAgLVQgW29yIC0tbGlzdC10eXBlc106bGlzdCB0aGUga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIgICAgLVQgW2VsbGVyIC0tbGlzdC10eXBlc106dmlzYSBkZSBrw6RuZGEgcGFydGl0aW9uc3R5cGVybmEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiICAgIC1EIFtlbGxlciAtLURPU106ICAgIGbDtnIgRE9TLWtvbXBhdGliaWxpdGV0OiBzbMO2c2EgbGl0ZSB1dHJ5bW1lIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA1Cittc2dpZCAiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIG1ha2Uga2VybmVsIHJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKyIgICAgLVIgW2VsbGVyIC0tcmUtcmVhZF06IGfDtnIgc8OlIGF0dCBrw6RybmFuIGzDpHNlciBvbSBwYXJ0aXRpb25zdGFiZWxsZW4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDYKK21zZ2lkICIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIgorbXNnc3RyICIgICAgLU48bnVtbWVyPjogICAgICAgICAgw6RuZHJhIGVuZGFzdCBwYXJ0aXRpb25lbiBtZWQgbnVtcmV0IDxudW1tZXI+IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA3Cittc2dpZCAiICAgIC1uIDogICAgICAgICAgICAgICAgIGRvIG5vdCBhY3R1YWxseSB3cml0ZSB0byBkaXNrIgorbXNnc3RyICIgICAgLW4gOiAgICAgICAgICAgICAgICAgc2tyaXYgaW50ZSB0aWxsIGjDpXJkZGlza2VuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIiCisiICAgIC1PIGZpbCA6ICAgICAgICAgICAgIHNwYXJhIHNla3RvcmVybmEgc29tIGtvbW1lciBhdHQgc2tyaXZhcyDDtnZlciB0aWxsICIKKyJmaWwiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIgICAgLUkgZmlsIDogICAgICAgICAgICAgw6V0ZXJzdMOkbGwgZGVzc2Egc2VrdG9yZXIgaWdlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIgorbXNnc3RyICIgICAgLXYgW2VsbGVyIC0tdmVyc2lvbl06IHZpc2EgdmVyc2lvbnNpbmZvcm1hdGlvbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiAgICAtPyBbZWxsZXIgLS1oZWxwXTogICB2aXNhIGRldHRhIG1lZGRlbGFuZGUiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTIKK21zZ2lkICJkYW5nZXJvdXMgb3B0aW9uczoiCittc2dzdHIgImZhcmxpZ2EgZmxhZ2dvcjoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTMKK21zZ2lkICIgICAgLWcgW29yIC0tc2hvdy1nZW9tZXRyeV06IHByaW50IHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBnZW9tZXRyeSIKK21zZ3N0ciAiICAgIC1nIFtlbGxlciAtLXNob3ctZ2VvbWV0cnldOiB2aXNhIGvDpHJuYW5zIGJpbGQgYXYgZ2VvbWV0cmluIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE0Cittc2dpZCAiIgorIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gIgorInRhYmxlIgorbXNnc3RyICIiCisiICAgIC1HIFtlbGxlciAtLXNob3ctcHQtZ2VvbWV0cnldOiBza3JpdiB1dCBnaXNzYWQgZ2VvbWV0cmkgZnLDpW4gIgorInBhcnRpdGlvbnN0YWJlbGxlbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNQorbXNnaWQgIiIKKyIgICAgLXggW29yIC0tc2hvdy1leHRlbmRlZF06IGFsc28gbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIG9uIG91dHB1dFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZXhwZWN0IGRlc2NyaXB0b3JzIGZvciB0aGVtIG9uIGlucHV0IgorbXNnc3RyICIiCisiICAgIC14IFtlbGxlciAtLXNob3ctZXh0ZW5kZWRdOiB2aXNhIMOkdmVuIHV0w7ZrYWRlIHBhcnRpdGlvbmVyIGkgdXRkYXRhXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGxlciBmw7ZydsOkbnRhIGhhbmR0YWcgZsO2ciBkZW0gc29tIGluZGF0YSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNworbXNnaWQgIiIKKyIgICAgLUwgIFtvciAtLUxpbnV4XTogICAgICBkbyBub3QgY29tcGxhaW4gYWJvdXQgdGhpbmdzIGlycmVsZXZhbnQgZm9yIExpbnV4IgorbXNnc3RyICIiCisiICAgIC1MICBbZWxsZXIgLS1MaW51eF06ICAga2xhZ2EgaW50ZSBww6Ugc2FrZXIgc29tIMOkciBpcnJlbGV2YW50YSBmw7ZyIExpbnV4IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbZWxsZXIgLS1xdWlldF06ICAgdW5kZXJ0cnljayB2YXJuaW5nc21lZGRlbGFuZGVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiICAgIER1IGthbiDDpXNpZG9zw6R0dGEgZGVuIGRldGVrdGVyYWRlIGdlb21ldHJpbiBnZW5vbSBhdHQgYW52w6RuZGE6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIwCittc2dpZCAiICAgIC1DIyBbb3IgLS1jeWxpbmRlcnMgI106c2V0IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIHRvIHVzZSIKK21zZ3N0ciAiIgorIiAgICAtQzx0YWw+IFtlbGxlciAtLWN5bGluZGVycyA8dGFsPl06c3TDpGxsIGluIGFudGFsZXQgY3lsaW5kcmFyIGF0dCBhbnbDpG5kYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1IPHRhbD4gW2VsbGVyIC0taGVhZHMgPHRhbD5dOnN0w6RsbCBpbiBhbnRhbGV0IGh1dnVkZW4gYXR0IGFudsOkbmRhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIyCittc2dpZCAiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiCittc2dzdHIgIiIKKyIgICAgLVM8dGFsPiBbZWxsZXIgLS1zZWN0b3JzIDx0YWw+XTpzdMOkbGwgaW4gYW50YWxldCBzZWt0b3JlciBhdHQgYW52w6RuZGEiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjMKK21zZ2lkICJZb3UgY2FuIGRpc2FibGUgYWxsIGNvbnNpc3RlbmN5IGNoZWNraW5nIHdpdGg6IgorbXNnc3RyICJEdSBrYW4gc3TDpG5nYSBhdiBhbGwga29uc2VrdmVuc2tvbnRyb2xsIG1lZDoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjQKK21zZ2lkICIgICAgLWYgIFtvciAtLWZvcmNlXTogICAgICBkbyB3aGF0IEkgc2F5LCBldmVuIGlmIGl0IGlzIHN0dXBpZCIKK21zZ3N0ciAiICAgIC1mICBbZWxsZXIgLS1mb3JjZV06ICAgZ8O2ciB2YWQgamFnIHPDpGdlciDDpHZlbiBvbSBkZXQgw6RyIGR1bXQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzAKK21zZ2lkICJVc2FnZToiCittc2dzdHIgIkFudsOkbmRuaW5nOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2VcdFx0IGxpc3QgYWN0aXZlIHBhcnRpdGlvbnMgb24gZGV2aWNlXG4iCittc2dzdHIgIiVzIGVuaGV0XHRcdCB2aXNhIGFrdGl2YSBwYXJ0aXRpb25lciBww6UgZW5oZXRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkZXZpY2UgbjEgbjIgLi4uIGFjdGl2YXRlIHBhcnRpdGlvbnMgbjEgLi4uLCBpbmFjdGl2YXRlIHRoZSByZXN0XG4iCittc2dzdHIgIiVzIGVuaGV0IG4xIG4yIC4uLiBha3RpdmVyYSBwYXJ0aXRpb25lciBuMSAuLi4sIGRlYWt0aXZlcmEgcmVzdGVuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLUFuIGRldmljZVx0IGFjdGl2YXRlIHBhcnRpdGlvbiBuLCBpbmFjdGl2YXRlIHRoZSBvdGhlciBvbmVzXG4iCittc2dzdHIgIiVzIC1BbiBlbmhldFx0IGFrdGl2ZXJhIHBhcnRpdGlvbiBuLCBkZWFrdGl2ZXJhIGRlIGFuZHJhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJWQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSB1cHB0w6Rja3RlcyBww6UgXCIlc1wiISBWZXJrdHlnZXQgc2ZkaXNrICIKKyJzYWtuYXIgc3TDtmQgZsO2ciBHUFQuIEFudsOkbmQgR05VIFBhcnRlZC5cbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICJBbnbDpG5kIGZsYWdnYW4gLS1mb3JjZSBmw7ZyIGF0dCB1bmRlcnRyeWNrYSBkZW5uYSBrb250cm9sbC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgImluZ2V0IGtvbW1hbmRvP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInRvdGFsOiAlbGx1IGJsb2Nrc1xuIgorbXNnc3RyICJ0b3RhbHQ6ICVsbHUgYmxvY2tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1wcmludC1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlclxuIgorbXNnc3RyICJhbnbDpG5kbmluZzogc2ZkaXNrIC0tcHJpbnQtaWQgZW5oZXQgcGFydGl0aW9uc251bW1lclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcyCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWNoYW5nZS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBJZFxuIgorbXNnc3RyICJhbnbDpG5kbmluZzogc2ZkaXNrIC0tY2hhbmdlLWlkIGVuaGV0IHBhcnRpdGlvbnNudW1tZXIgSWRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3NAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBbSWRdXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiBzZmRpc2sgLS1pZCBlbmhldCBwYXJ0aXRpb25zbnVtbWVyIFtJZF1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY4MQorbXNnaWQgImNhbiBzcGVjaWZ5IG9ubHkgb25lIGRldmljZSAoZXhjZXB0IHdpdGggLWwgb3IgLXMpXG4iCittc2dzdHIgImthbiBlbmRhc3QgYW5nZSBlbiBlbmhldCAodXRvbSBtZWQgLWwgZWxsZXIgLXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgcmVhZC13cml0ZVxuIgorbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgJXMgZsO2ciBsw6RzbmluZyBvY2ggc2tyaXZuaW5nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIKK21zZ3N0ciAia2FuIGludGUgw7ZwcG5hICVzIGbDtnIgbMOkc25pbmdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiJXM6IE9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3NTMgZmRpc2svc2ZkaXNrLmM6Mjc4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlczogJWxkIGN5bGluZHJhciwgJWxkIGh1dnVkZW4sICVsZCBzZWt0b3Jlci9zcMOlclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgc2l6ZSBvZiAlc1xuIgorbXNnc3RyICJLYW4gaW50ZSBow6RtdGEgc3Rvcmxla2VuIHDDpSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODg1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBhY3RpdmUgYnl0ZTogMHgleCBpbnN0ZWFkIG9mIDB4ODBcbiIKK21zZ3N0ciAiZmVsYWt0aWcgYWt0aXYgYnl0ZTogMHgleCBpc3TDpGxsZXQgZsO2ciAweDgwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkbDpHJkaWdcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgJWQgYWN0aXZlIHByaW1hcnkgcGFydGl0aW9ucy4gVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sXG4iCisiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIKK21zZ3N0ciAiIgorIkR1IGhhciAlZCBha3RpdmEgcHJpbcOkcmEgcGFydGl0aW9uZXIuIExJTE8gYnJ5ciBzaWcgaW50ZSBvbSBkZXR0YSwgbWVuXG4iCisiRE9TIGh1dnVkc3RhcnRwb3N0IChNQlIpIGthbiBlbmRhc3Qgc3RhcnRhIGVuIGjDpXJkZGlzayBtZWQgMSBha3RpdlxuIgorInBhcnRpdGlvbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgInBhcnRpdGlvbiAlcyBoYXIgaWQgJXggb2NoIMOkciBpbnRlIGRvbGRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgSWQgJWx4XG4iCittc2dzdHIgIkZlbGFrdGlndCBJZCAlbHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAwNAorbXNnaWQgIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlLlxuIgorbXNnc3RyICJEZW5uYSBow6VyZGRpc2sgYW52w6RuZHMgZsO2ciB0aWxsZsOkbGxldC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAiw5ZkZXNkaWdlcnQgZmVsOiBrYW4gaW50ZSBoaXR0YSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICJWYXJuaW5nOiAlcyDDpHIgaW5nZW4gYmxvY2tlbmhldFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAiS29udHJvbGxlcmFyIGF0dCBpbmdlbiBhbnbDpG5kZXIgaMOlcmRkaXNrZW4ganVzdCBudS4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM0Cittc2dpZCAiIgorIlxuIgorIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlIC0gcmVwYXJ0aXRpb25pbmcgaXMgcHJvYmFibHkgYSBiYWQgaWRlYS5cbiIKKyJVbW91bnQgYWxsIGZpbGUgc3lzdGVtcywgYW5kIHN3YXBvZmYgYWxsIHN3YXAgcGFydGl0aW9ucyBvbiB0aGlzIGRpc2suXG4iCisiVXNlIHRoZSAtLW5vLXJlcmVhZCBmbGFnIHRvIHN1cHByZXNzIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrZW4gYW52w6RuZHMgZsO2ciB0aWxsZsOkbGxldCAtIG9tcGFydGl0aW9uZXJpbmcgw6RyIHRyb2xpZ3R2aXMgZW4gZHVtXG4iCisiaWTDqS4gQXZtb250ZXJhIGFsbGEgZmlsc3lzdGVtLCBvY2ggc2UgdGlsbCBhdHQgYWxsYSB2w6R4bGluZ3NwYXJ0aXRpb25lclxuIgorInDDpSBkZW5uYSBkaXNrIMOkciB1dHbDpHhsYWRlLiBBbnbDpG5kIGZsYWdnYW4gLS1uby1yZXJlYWQgZsO2ciBhdHRcbiIKKyJ1bmRlcnRyeWNrYSBkZW5uYSBrb250cm9sbC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzOAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIGFsbCBjaGVja3MuXG4iCittc2dzdHIgIkFudsOkbmQgZmxhZ2dhbiAtLWZvcmNlIGbDtnIgYXR0IHVuZGVydHJ5Y2thIGFsbGEga29udHJvbGxlci5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA0MgorbXNnaWQgIk9LXG4iCittc2dzdHIgIk9LXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2xkIHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiVGlkaWdhcmUgc2l0dWF0aW9uOlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCwgY2Fubm90IGNoYW5nZSBpdFxuIgorbXNnc3RyICJQYXJ0aXRpb24gJWQgZmlubnMgaW50ZSwga2FuIGludGUgw6RuZHJhIGRlblxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBzaXR1YXRpb246XG4iCittc2dzdHIgIk55IHNpdHVhdGlvbjpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisiSmFnIGdpbGxhciBpbnRlIGRlc3NhIHBhcnRpdGlvbmVyIC0gaW5nZW50aW5nIMOkbmRyYWRlcy5cbiIKKyIoT20gZHUgdmVya2xpZ2VuIHZpbGwgZ8O2cmEgZGV0dGEgYsO2ciBkdSBhbnbDpG5kYSBmbGFnZ2FuIC0tZm9yY2UpLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDcxCittc2dpZCAiSSBkb24ndCBsaWtlIHRoaXMgLSBwcm9iYWJseSB5b3Ugc2hvdWxkIGFuc3dlciBOb1xuIgorbXNnc3RyICJKYWcgZ2lsbGFyIGludGUgZGV0dGEgLSBkdSBiw7ZyIG5vZyBzdmFyYSBuZWpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJBcmUgeW91IHNhdGlzZmllZCB3aXRoIHRoaXM/IFt5bnFdICIKK21zZ3N0ciAiw4RyIGR1IG7DtmpkIG1lZCBkZXR0YT8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIHlvdSB3YW50IHRvIHdyaXRlIHRoaXMgdG8gZGlzaz8gW3lucV0gIgorbXNnc3RyICJWaWxsIGR1IHNrcml2YSBkZXR0YSB0aWxsIGRpc2s/IFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisic2ZkaXNrOiBwcmVtYXR1cmUgZW5kIG9mIGlucHV0XG4iCittc2dzdHIgIiIKKyJcbiIKKyJzZmRpc2s6IGbDtnIgdGlkaWd0IHNsdXQgcMOlIGluZGF0YVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiQXZzbHV0YXIgLSBpbmdlbnRpbmcgw6RuZHJhZGVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGxlYXNlIGFuc3dlciBvbmUgb2YgeSxuLHFcbiIKK21zZ3N0ciAiU3ZhcmEgbWVkIGV0dCBhdiB5LCBuIGVsbGVyIHFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VjY2Vzc2Z1bGx5IHdyb3RlIHRoZSBuZXcgcGFydGl0aW9uIHRhYmxlXG4iCisiXG4iCittc2dzdHIgIiIKKyJMeWNrYWRlcyBza2FwYSBkZW4gbnlhIHBhcnRpdGlvbnN0YWJlbGxlblxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMTA1Cittc2dpZCAiIgorIklmIHlvdSBjcmVhdGVkIG9yIGNoYW5nZWQgYSBET1MgcGFydGl0aW9uLCAvZGV2L2ZvbzcsIHNheSwgdGhlbiB1c2UgZGQoMSlcbiIKKyJ0byB6ZXJvIHRoZSBmaXJzdCA1MTIgYnl0ZXM6ICBkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKFNlZSBmZGlzayg4KS4pXG4iCittc2dzdHIgIiIKKyJPbSBkdSBza2FwYWRlIGVsbGVyIMOkbmRyYWRlIGVuIERPUy1wYXJ0aXRpb24sIGzDpXQgb3NzIHPDpGdhIC9kZXYvZm9vNywgYsO2clxuIgorImR1IHNlZGFuIGFudsOkbmRhIGRkKDEpIGbDtnIgYXR0IG5vbGxzdMOkbGxhIGRlIGbDtnJzdGEgNTEyIGJ5dGVuOlxuIgorImRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2UgZmRpc2soOCkpLlxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiVzOiBrYW4gaW50ZSDDtnBwbmEgJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBiYWQgZm9ybWF0IG9uIGxpbmUgJWQgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozNTIKK21zZ2lkICIiCisiV0FSTklORzogWW91ciAvZXRjL2ZzdGFiIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZzY2sgcGFzc25vXG4iCisiXHRmaWVsZC4gIEkgd2lsbCBrbHVkZ2UgYXJvdW5kIHRoaW5ncyBmb3IgeW91LCBidXQgeW91XG4iCisiXHRzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo0NjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZzY2s6ICVzOiBub3QgZm91bmRcbiIKK21zZ3N0ciAidW1vdW50OiAlcyBoaXR0YWRlcyBpbnRlIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlczogc3RhdHVzIGlzICV4LCBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjY0MworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCB3aXRoICVzIChleGl0IHN0YXR1cyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiJXM6IGZlbCAlZCB2aWQgdXBwYWNrbmluZyEgJXAoJWQpXG4iCisKKyM6IGZzY2svZnNjay5jOjcyNAorbXNnaWQgIiIKKyJFaXRoZXIgYWxsIG9yIG5vbmUgb2YgdGhlIGZpbGVzeXN0ZW0gdHlwZXMgcGFzc2VkIHRvIC10IG11c3QgYmUgcHJlZml4ZWRcbiIKKyJ3aXRoICdubycgb3IgJyEnLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjc0MworIywgZnV6enkKK21zZ2lkICJDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpbGVzeXN0ZW0gdHlwZXNcbiIKK21zZ3N0ciAibW91bnQ6IGR1IG3DpXN0ZSBhbmdlIGZpbHN5c3RlbXN0eXBlbiIKKworIzogZnNjay9mc2NrLmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc2tpcHBpbmcgYmFkIGxpbmUgaW4gL2V0Yy9mc3RhYjogYmluZCBtb3VudCB3aXRoIG5vbnplcm8gZnNjayBwYXNzICIKKyJudW1iZXJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo4OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyBub25leGlzdGVudCBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6ICVzIMOkciBpbmdlbiBscC1lbmhldC5cbiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKKyMsIGZ1enp5Cittc2dpZCAiQ2hlY2tpbmcgYWxsIGZpbGUgc3lzdGVtcy5cbiIKK21zZ3N0ciAiVHZpbmdhciBmaWxzeXN0ZW1za29udHJvbGwgcMOlICVzLlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0td2FpdGluZy0tIChwYXNzICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjEwODUKKyMsIGZ1enp5Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICIiCisiQW52w6RuZG5pbmc6IG1rZnMgWy1WXSBbLXQgZmlsc3lzdGVtc3R5cF0gW2ZpbHN5c3RlbXNmbGFnZ29yXSBlbmhldCAiCisiW3N0b3JsZWtdXG4iCisKKyM6IGZzY2svZnNjay5jOjExMjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzOiAlcyDDpHIgaW5nZW4gbHAtZW5oZXQuXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIkthbiBpbnRlIMO2cHBuYSAlczogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTEzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiJXMgYXZtb250ZXJhZFxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBmaW5kIG1hdGNoaW5nIGZpbGVzeXN0ZW06ICVzXG4iCittc2dzdHIgIkF2bW9udGVyYXIgYWxsYSDDpXRlcnN0w6VlbmRlIGZpbHN5c3RlbS4uLiIKKworIzogZnNjay9mc2NrLmM6MTE1NiBmc2NrL2ZzY2suYzoxMjQyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iCittc2dzdHIgIiVzOiBva8OkbnQgYXJndW1lbnQ6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZzY2sgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBmcsOlbiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgZnNja19wYXRoXG4iCittc2dzdHIgIkthbiBpbnRlIGFsbG9rZXJhIGJ1ZmZlcnQgZsO2ciBpbm9kZXIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJGw7Zyc8O2ayBtZWQgXCJnZXRvcHQgLS1oZWxwXCIgZsO2ciBtZXIgaW5mb3JtYXRpb24uXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyOTUKK21zZ2lkICJlbXB0eSBsb25nIG9wdGlvbiBhZnRlciAtbCBvciAtLWxvbmcgYXJndW1lbnQiCittc2dzdHIgInRvbSBsw6VuZyBmbGFnZ2EgZWZ0ZXIgYXJndW1lbnRlbiAtbCBlbGxlciAtLWxvbmciCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMTUKK21zZ2lkICJ1bmtub3duIHNoZWxsIGFmdGVyIC1zIG9yIC0tc2hlbGwgYXJndW1lbnQiCittc2dzdHIgIm9rw6RudCBza2FsIGVmdGVyIGFyZ3VtZW50ZW4gLXMgZWxsZXIgLS1zaGVsbCIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiQW52w6RuZG5pbmc6IGdldG9wdCBmbGFnZ3N0csOkbmcgcGFyYW1ldHJhclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIxCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgZ2V0b3B0IFtmbGFnZ29yXSBbLS1dIGZsYWdnc3Ryw6RuZyBwYXJhbWV0cmFyXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjIKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSAtb3wtLW9wdGlvbnMgb3B0c3RyaW5nIFtvcHRpb25zXSBbLS1dXG4iCittc2dzdHIgIiAgICAgICBnZXRvcHQgW2ZsYWdnb3JdIC1vfC0tb3B0aW9ucyBmbGFnZ3N0csOkbmcgW2ZsYWdnb3JdIFstLV1cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMworbXNnaWQgIiAgICAgICAgICAgICAgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgICAgICAgIHBhcmFtZXRyYXJcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNAorbXNnaWQgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggc2luZ2xlIC1cbiIKK21zZ3N0ciAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBUaWxsw6V0IGzDpW5nYSBmbGFnZ29yIHNvbSBiw7ZyamFyIG1lZCBlbnNhbXQgLVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI1Cittc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRoaXMgc21hbGwgdXNhZ2UgZ3VpZGVcbiIKK21zZ3N0ciAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIERlbm5hIGVua2xhIGFudsOkbmRuaW5nc2d1aWRlXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbCwgLS1sb25nb3B0aW9ucz1sw6VuZ2ZsZyAgICBMw6VuZ2EgZmxhZ2dvciBhdHQga8Okbm5hIGlnZW5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNworbXNnaWQgIiIKKyIgIC1uLCAtLW5hbWU9cHJvZ25hbWUgICAgICAgICAgVGhlIG5hbWUgdW5kZXIgd2hpY2ggZXJyb3JzIGFyZSByZXBvcnRlZFxuIgorbXNnc3RyICIgIC1uLCAtLW5hbWU9cHJvZ3JhbW5hbW4gICAgICAgRGV0IG5hbW4gdW5kZXIgdmlsa2V0IGZlbCByYXBwb3J0ZXJhc1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI4Cittc2dpZCAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIFNob3J0IG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1vLCAtLW9wdGlvbnM9ZmxhZ2dzdHLDpG5nICAgIEtvcnRhIGZsYWdnb3IgYXR0IGvDpG5uYSBpZ2VuXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjkKK21zZ2lkICIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgRGlzYWJsZSBlcnJvciByZXBvcnRpbmcgYnkgZ2V0b3B0KDMpXG4iCittc2dzdHIgIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBTdMOkbmcgYXYgZmVscmFwcG9ydGVyaW5nIGF2IGdldG9wdCgzKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMwCittc2dpZCAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIE5vIG5vcm1hbCBvdXRwdXRcbiIKK21zZ3N0ciAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIEluZ2VuIG5vcm1hbCB1dGRhdGFcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMQorbXNnaWQgIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICBTZXQgc2hlbGwgcXVvdGluZyBjb252ZW50aW9uc1xuIgorbXNnc3RyICIiCisiICAtcywgLS1zaGVsbD1za2FsICAgICAgICAgICAgIFN0w6RsbCBpbiBrb252ZW50aW9uZXIgZsO2ciBza2FsY2l0ZXJpbmdcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMgorbXNnaWQgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICBUZXN0IGZvciBnZXRvcHQoMSkgdmVyc2lvblxuIgorbXNnc3RyICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgVW5kZXJzw7ZrIGdldG9wdCgxKS12ZXJzaW9uXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzMKK21zZ2lkICIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgRG8gbm90IHF1b3RlIHRoZSBvdXRwdXRcbiIKK21zZ3N0ciAiICAtdSwgLS11bnF1b3RlICAgICAgICAgICAgICAgIENpdGVyYSBpbnRlIHV0ZGF0YVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzM0Cittc2dpZCAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCittc2dzdHIgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBTa3JpdiB1dCB2ZXJzaW9uc2luZm9ybWF0aW9uXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozODggZ2V0b3B0L2dldG9wdC5jOjQ0NworbXNnaWQgIm1pc3Npbmcgb3B0c3RyaW5nIGFyZ3VtZW50IgorbXNnc3RyICJmbGFnZ3N0csOkbmdzYXJndW1lbnQgc2FrbmFzIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgImdldG9wdCAoZW5oYW5jZWQpIDEuMS40XG4iCittc2dzdHIgImdldG9wdCAodXTDtmthZCkgMS4xLjRcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICJpbnRlcm50IGZlbCwga29udGFrdGEgZsO2cmZhdHRhcmVuLiIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAic3RhcnRhZGUgZnLDpW4gTUlMT1xuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUnVmZmlhbiBCQ0QgY2xvY2tcbiIKK21zZ3N0ciAiUnVmZmlhbiBCQ0Qta2xvY2thXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICJrbG9ja3BvcnRlbiBqdXN0ZXJhZGVzIHRpbGwgMHgleFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICJow6RmdGlnIExFS1NBSyFcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhdG9taWMgJXMgZmFpbGVkIGZvciAxMDAwIGl0ZXJhdGlvbnMhIgorbXNnc3RyICIlczogYXRvbWlzayAlcyBtaXNzbHlja2FkZXMgZsO2ciAxMDAwIGl0ZXJhdGlvbmVyISIKKworIzogaHdjbG9jay9jbW9zLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMwNworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gL2Rldi9wb3J0OiAlcyIKK21zZ3N0ciAiS2FuIGludGUgw7ZwcG5hIC9kZXYvcG9ydDogJXMiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAiSmFnIG1pc3NseWNrYWRlcyBtZWQgYXR0IGbDpSB0aWxsw6V0ZWxzZSBlZnRlcnNvbSBqYWcgaW50ZSBmw7Zyc8O2a3RlLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiJXMga2FuIGludGUgZsOlIEkvTy1wb3J0dGlsbGfDpW5nOiBpb3BsKDMpLWFucm9wZXQgbWlzc2x5Y2thZGVzLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICJEdSBiZWjDtnZlciB0cm9saWd0dmlzIHJvb3QtcHJpdmlsZWdpZXIuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluICVzIHRpbWUuXG4iCittc2dzdHIgIkFudGFyIGF0dCBow6VyZHZhcnVrbG9ja2FuIGjDpWxsZXIgJXMtdGlkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAibG9rYWwiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2FybmluZzogdW5yZWNvZ25pemVkIHRoaXJkIGxpbmUgaW4gYWRqdGltZSBmaWxlXG4iCittc2dzdHIgIiVzOiBWYXJuaW5nOiBva8OkbmQgdHJlZGplIHJhZCBpIGFkanRpbWUtZmlsXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIihGw7ZydsOkbnRhZGU6IFwiVVRDXCIgZWxsZXIgXCJMT0NBTFwiIGVsbGVyIGluZ2VudGluZy4pXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGRyaWZ0IGFkanVzdG1lbnQgZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIlNlbmFzdGUgZHJhZ25pbmdzanVzdGVyaW5nIGdqb3JkZXMgJWxkIHNla3VuZGVyIGVmdGVyIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgY2FsaWJyYXRpb24gZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIlNlbmFzdGUga2FsaWJyZXJpbmcgZ2pvcmRlcyAlbGQgc2VrdW5kZXIgZWZ0ZXIgMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICJIw6VyZHZhcnVrbG9ja2FuIGjDpWxsZXIgJXMtdGlkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgIm9rw6RuZCIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgZm9yIGNsb2NrIHRpY2suLi5cbiIKK21zZ3N0ciAiVsOkbnRhciBww6Uga2xvY2t0aWNrLi4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5zeW5jaHJvbml6YXRpb24gZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmdvdCBjbG9jayB0aWNrXG4iCittc2dzdHIgIi4uLmZpY2sga2xvY2t0aWNrXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHZhbHVlcyBpbiBoYXJkd2FyZSBjbG9jazogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorbXNnc3RyICJPZ2lsdGlnYSB2w6RyZGVuIGkgaMOlcmR2YXJ1a2xvY2thbjogJTRkLSUuMmQtJS4yZCAlLjJkLiUuMmQuJS4yZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIkh2LWtsb2NrdGlkOiAlNGQtJS4yZC0lLjJkICUuMmQuJS4yZC4lLjJkID0gJWxkIHNla3VuZGVyIHNlZGFuIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIlRpZCBzb20gbMOkc3RzIGZyw6VuIGjDpXJkdmFydWtsb2NrYW46ICU0ZC0lLjJkLSUuMmQgJTAyZC4lMDJkLiUwMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKyJTdMOkbGxlciBow6VyZHZhcnVrbG9ja2FuIHRpbGwgJS4yZC4lLjJkLiUuMmQgPSAlbGQgc2VrdW5kZXIgc2VkYW4gMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIktsb2NrYW4gw6RyIGludGUgw6RuZHJhZCAtIHRlc3RhciBiYXJhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1MzUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaW1lIGVsYXBzZWQgc2luY2UgcmVmZXJlbmNlIHRpbWUgaGFzIGJlZW4gJS42ZiBzZWNvbmRzLlxuIgorIkRlbGF5aW5nIGZ1cnRoZXIgdG8gcmVhY2ggdGhlIG5ldyB0aW1lLlxuIgorbXNnc3RyICIiCisiVGlkIHNvbSBoYXIgZ8OldHQgc2VkYW4gcmVmZXJlbnN0aWRlbiDDpHIgJS42ZiBzZWt1bmRlci5cbiIKKyJGw7ZyZHLDtmplciB5dHRlcmxpZ2FyZSBmw7ZyIGF0dCBuw6UgbsOkc3RhIGhlbGEgc2VrdW5kLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIkjDpXJkdmFydWtsb2NrYW5zIHJlZ2lzdGVyIGlubmVow6VsbGVyIHbDpHJkZW4gc29tIGFudGluZ2VuIMOkciBvZ2lsdGlnYSAodC5leC4gIgorIjUwOmUgZGFnZW4gaSBtw6VuYWRlbikgZWxsZXIgdXRhbmbDtnIgZGV0IGludGVydmFsbCBzb20gdmkga2FuIGhhbnRlcmEgKHQuZXguICIKKyLDpXIgMjA5NSkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAgJS42ZiBzZWNvbmRzXG4iCittc2dzdHIgIiVzICAlLjZmIHNla3VuZGVyXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAiSW5nZW4gLS1kYXRlLWZsYWdnYSBhbmdhdnMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLWRhdGUgYXJndW1lbnQgdG9vIGxvbmdcbiIKK21zZ3N0ciAiLS1kYXRlLWFyZ3VtZW50ZXQgw6RyIGbDtnIgbMOlbmd0XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisiVsOkcmRldCBpIC0tZGF0ZS1mbGFnZ2FuIMOkciBvZ2lsdGlndC5cbiIKKyJJIHN5bm5lcmhldCBzb20gZGV0IGlubmVow6VsbGVyIGNpdGF0aW9uc3RlY2tlbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIklzc3VpbmcgZGF0ZSBjb21tYW5kOiAlc1xuIgorbXNnc3RyICJBbnJvcGFyIGRhdGUta29tbWFuZG90OiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDAKK21zZ2lkICJVbmFibGUgdG8gcnVuICdkYXRlJyBwcm9ncmFtIGluIC9iaW4vc2ggc2hlbGwuIHBvcGVuKCkgZmFpbGVkIgorbXNnc3RyICIiCisiS2FuIGludGUga8O2cmEgXCJkYXRlXCItcHJvZ3JhbW1ldCBpIHNrYWxldCAvYmluL3NoLiBwb3BlbigpIG1pc3NseWNrYWRlcyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3BvbnNlIGZyb20gZGF0ZSBjb21tYW5kID0gJXNcbiIKK21zZ3N0ciAic3ZhciBmcsOlbiBkYXRlLWtvbW1hbmRvdCA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKyJkYXRlLWtvbW1hbmRvdCBzb20gYW5yb3BhZGVzIGF2ICVzIHJldHVybmVyYWRlIG92w6RudGFkZSByZXN1bHRhdC5cbiIKKyJLb21tYW5kb3QgdmFyOlxuIgorIiAgJXNcbiIKKyJTdmFyZXQgdmFyOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorImRhdGUta29tbWFuZG90IHNvbSBhbnJvcGFkZXMgYXYgJXMgcmV0dXJuZXJhZGUgbsOlZ29udGluZyBhbm5hdCDDpG4gZXR0IGhlbHRhbCAiCisiZMOkciBkZW4ga29udmVydGVyYWRlIHRpZGVuIGbDtnJ2w6RudGFkZXMuXG4iCisiS29tbWFuZG90IHZhcjpcbiIKKyIgICVzXG4iCisiU3ZhcmV0IHZhcjpcbiIKKyIgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgImRhdGUgc3RyaW5nICVzIGVxdWF0ZXMgdG8gJWxkIHNlY29uZHMgc2luY2UgMTk2OS5cbiIKK21zZ3N0ciAiZGF0dW1zdHLDpG5nZW4gJXMgw6RyIGxpa2EgbWVkICVsZCBzZWt1bmRlciBzZWRhbiAxOTY5LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IHNldCB0aGUgIgorIlN5c3RlbSBUaW1lIGZyb20gaXQuXG4iCittc2dzdHIgIiIKKyJIw6VyZHZhcnVrbG9ja2FuIGlubmVow6VsbGVyIGludGUgZW4gZ2lsdGlnIHRpZCwgc8OlIHZpIGthbiBpbnRlIHN0w6RsbGEgIgorInN5c3RlbXRpZGVuIG1lZCBkZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyNyBod2Nsb2NrL2h3Y2xvY2suYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBzZXR0aW1lb2ZkYXk6XG4iCittc2dzdHIgIkFucm9wYXIgc2V0dGltZW9mZGF5OlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICJTdMOkbGxlciBpbnRlIHN5c3RlbWtsb2NrYW4gZWZ0ZXJzb20gdmkga8O2ciBpIHRlc3Rsw6RnZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQyIGh3Y2xvY2svaHdjbG9jay5jOjgyMAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIHN1cGVydXNlciB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICJNw6VzdGUgdmFyYSBzdXBlcmFudsOkbmRhcmVuIGbDtnIgYXR0IGt1bm5hIHN0w6RsbGEgc3lzdGVta2xvY2thbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQ1IGh3Y2xvY2svaHdjbG9jay5jOjgyMworbXNnaWQgInNldHRpbWVvZmRheSgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dGltZW9mZGF5KCkgbWlzc2x5Y2thZGVzIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkN1cnJlbnQgc3lzdGVtIHRpbWU6ICVsZCA9ICVzXG4iCittc2dzdHIgImzDpHMgc3lzdGVtdGlkIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRVVEM6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIHRoZSBIYXJkd2FyZSBDbG9jayBwcmV2aW91c2x5IGNvbnRhaW5lZCAiCisiZ2FyYmFnZS5cbiIKK21zZ3N0ciAiIgorIkp1c3RlcmFyIGludGUgZHJhZ25pbmdzZmFrdG9ybiBlZnRlcnNvbSBow6VyZHZhcnVrbG9ja2FuIHRpZGlnYXJlIGlubmVow7ZsbCAiCisic2tyw6RwLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgbGFzdCBjYWxpYnJhdGlvbiB0aW1lIGlzIHplcm8sXG4iCisic28gaGlzdG9yeSBpcyBiYWQgYW5kIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciBpcyBuZWNlc3NhcnkuXG4iCittc2dzdHIgIiIKKyJKdXN0ZXJhciBpbnRlIGRyYWduaW5nc2Zha3Rvcm4gZWZ0ZXJzb20gc2VuYXN0ZSBrYWxpYnJlcmluZ3N0aWRlblxuIgorIsOkciBub2xsLCBzw6UgaGlzdG9yaWtlbiDDpHIgdHJhc2lnIG9jaCBlbiBvbXN0YXJ0IGF2IGthbGlicmVyaW5nZW5cbiIKKyLDpHIgbsO2ZHbDpG5kaWcuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBpdCBoYXMgYmVlbiBsZXNzIHRoYW4gYSBkYXkgc2luY2UgdGhlICIKKyJsYXN0IGNhbGlicmF0aW9uLlxuIgorbXNnc3RyICIiCisiSnVzdGVyYXIgaW50ZSBkcmFnbmluZ3NmYWt0b3JuIGVmdGVyc29tIGRldCBoYXIgZ8OldHQgbWluZHJlIMOkbiBlbiBkYWcgc2VkYW4gIgorImRlbiBzZW5hc3RlIGthbGlicmVyaW5nZW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2xvY2sgZHJpZnRlZCAlLjFmIHNlY29uZHMgaW4gdGhlIHBhc3QgJWQgc2Vjb25kcyBpbiBzcGl0ZSBvZiBhIGRyaWZ0IGZhY3RvciAiCisib2YgJWYgc2Vjb25kcy9kYXkuXG4iCisiQWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBieSAlZiBzZWNvbmRzL2RheVxuIgorbXNnc3RyICIiCisiS2xvY2thbiBkcm9nIHNpZyAlLjFmIHNla3VuZGVyIHVuZGVyIGRlIHNlbmFzdGVyICVkIHNla3VuZGVybmEgdHJvdHMgZW4gIgorImRyYWduaW5nc2Zha3RvciBww6UgJWYgc2VrdW5kZXIvZGFnLlxuIgorIkp1c3RlcmFyIGRyYWduaW5nc2Zha3Rvcm4gbWVkICVmIHNla3VuZGVyL2RhZ1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIgorbXNnc3RyICJUaWQgc2VkYW4gc2VuYXN0ZSBqdXN0ZXJpbmdlbiDDpHIgJWQgc2VrdW5kZXJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWQgdG8gaW5zZXJ0ICVkIHNlY29uZHMgYW5kIHJlZmVyIHRpbWUgYmFjayAlLjZmIHNlY29uZHMgYWdvXG4iCittc2dzdHIgIiIKKyJCZWjDtnZlciBpbmZvZ2EgJWQgc2VrdW5kZXIgb2NoIHJlZmVyZXJhIHRpbGxiYWthIGkgdGlkZW4gJS42ZiBzZWt1bmRlciAiCisic2VkYW5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIlVwcGRhdGVyYXIgaW50ZSBhZGp0aW1lLWZpbGVuIGVmdGVyc29tIHZpIMOkciBpIHRlc3Rsw6RnZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIlNrdWxsZSBza3Jpdml0IGbDtmxqYW5kZSB0aWxsICVzOlxuIgorIiVzIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb3VsZCBub3Qgb3BlbiBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyBpbiBpdCAoJXMpIGZvciAiCisid3JpdGluZyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDA2IGh3Y2xvY2svaHdjbG9jay5jOjEwMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHVwZGF0ZSBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyAoJXMpIGluIGl0IgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJEcmFnbmluZ3NqdXN0ZXJpbmdzcGFyYW1ldHJhcm5hIHVwcGRhdGVyYWRlcyBpbnRlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBhZGp1c3QgaXQuXG4iCittc2dzdHIgIiIKKyJIw6VyZHZhcnVrbG9ja2FuIGlubmVow6VsbGVyIGludGUgZ2lsdGlnIHRpZCwgc8OlIHZpIGthbiBpbnRlIGp1c3RlcmEgZGVuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKyJKdXN0ZXJhciBpbnRlIGRyYWduaW5nc2Zha3Rvcm4gZWZ0ZXJzb20gc2VuYXN0ZSBrYWxpYnJlcmluZ3N0aWRlblxuIgorIsOkciBub2xsLCBzw6UgaGlzdG9yaWtlbiDDpHIgdHJhc2lnIG9jaCBlbiBvbXN0YXJ0IGF2IGthbGlicmVyaW5nZW5cbiIKKyLDpHIgbsO2ZHbDpG5kaWcuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICIiCisiRGVuIGp1c3RlcmluZyBzb20gYmVow7Z2cyDDpHIgbWluZHJlIMOkbiBlbiBzZWt1bmQsIHPDpSBzdMOkbGxlciBpbnRlIGtsb2NrYW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgIkFudsOkbmRlciAlcy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNworIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgY2xvY2sgaW50ZXJmYWNlIGZvdW5kLlxuIgorbXNnc3RyICJJbmdldCBhbnbDpG5kYmFydCBrbG9ja2dyw6Ruc3NuaXR0IGhpdHRhZGVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIkt1bmRlIGludGUgc3TDpGxsYSBzeXN0ZW1rbG9ja2FuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGtlZXBzIGFuIGVwb2NoIHZhbHVlIGZvciB0aGUgSGFyZHdhcmUgQ2xvY2sgb25seSBvbiBhbiBBbHBoYSAiCisibWFjaGluZS5cbiIKKyJUaGlzIGNvcHkgb2YgaHdjbG9jayB3YXMgYnVpbHQgZm9yIGEgbWFjaGluZSBvdGhlciB0aGFuIEFscGhhXG4iCisiKGFuZCB0aHVzIGlzIHByZXN1bWFibHkgbm90IHJ1bm5pbmcgb24gYW4gQWxwaGEgbm93KS4gIE5vIGFjdGlvbiB0YWtlbi5cbiIKK21zZ3N0ciAiIgorIkvDpHJuYW4gc3BhcmFyIGV0dCBlcG9rdsOkcmRlIGbDtnIgaMOlcmR2YXJ1a2xvY2thbiBlbmRhc3QgcMOlIEFscGhhLW1hc2tpbmVyLlxuIgorIkRlbm5hIGtvcGlhIGF2IGh3Y2xvY2sgYnlnZ2RlcyBmw7ZyIGVuIGFubmFuIG1hc2tpbiDDpG4gQWxwaGFcbiIKKyIob2NoIGvDtnJzIGTDpHJmw7ZyIHRyb2xpZ2VuIGludGUgcMOlIGVuIEFscGhhIGp1c3QgbnUpLiBJbmdlbiDDpXRnw6RyZCB1dGbDtnJkZXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGdldCB0aGUgZXBvY2ggdmFsdWUgZnJvbSB0aGUga2VybmVsLlxuIgorbXNnc3RyICJLdW5kZSBpbnRlIGbDpSB0YWcgaSBlcG9rdsOkcmRldCBmcsOlbiBrw6RybmFuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAiS8Okcm5hbiBhbnRhciBhdHQgZXBva3bDpHJkZXQgw6RyICVsdVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBzZXQgdGhlIGVwb2NoIHZhbHVlLCB5b3UgbXVzdCB1c2UgdGhlICdlcG9jaCcgb3B0aW9uIHRvIHRlbGwgdG8gd2hhdCAiCisidmFsdWUgdG8gc2V0IGl0LlxuIgorbXNnc3RyICIiCisiRsO2ciBhdHQgc3TDpGxsYSBlcG9rdsOkcmRldCBtw6VzdGUgZHUgYW52w6RuZGEgZmxhZ2dhbiBcImVwb2NoXCIgZsO2ciBhdHQgYW5nZSAiCisidmlsa2V0IHbDpHJkZSBkZXQgc2thIHN0w6RsbGFzIHRpbGwuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJTdMOkbGxlciBpbnRlIGVwb2tlbiB0aWxsICVkIC0gdGVzdGFyIGJhcmEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiS2FuIGludGUgc3TDpGxsYSBpbiBlcG9rdsOkcmRldCBpIGvDpHJuYW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyOTAgbWlzYy11dGlscy9jYWwuYzozNDcgbWlzYy11dGlscy9raWxsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZnLDpW4gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTMxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorImh3Y2xvY2sgLSBxdWVyeSBhbmQgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayAoUlRDKVxuIgorIlxuIgorIlVzYWdlOiBod2Nsb2NrIFtmdW5jdGlvbl0gW29wdGlvbnMuLi5dXG4iCisiXG4iCisiRnVuY3Rpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICBzaG93IHRoaXMgaGVscFxuIgorIiAgLXIgfCAtLXNob3cgICAgICAgICByZWFkIGhhcmR3YXJlIGNsb2NrIGFuZCBwcmludCByZXN1bHRcbiIKKyIgICAgICAgLS1zZXQgICAgICAgICAgc2V0IHRoZSBydGMgdG8gdGhlIHRpbWUgZ2l2ZW4gd2l0aCAtLWRhdGVcbiIKKyIgIC1zIHwgLS1oY3Rvc3lzICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBmcm9tIHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgLXcgfCAtLXN5c3RvaGMgICAgICBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIHRvIHRoZSBjdXJyZW50IHN5c3RlbSB0aW1lXG4iCisiICAgICAgIC0tc3lzdHogICAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZXpvbmVcbiIKKyIgICAgICAgLS1hZGp1c3QgICAgICAgYWRqdXN0IHRoZSBydGMgdG8gYWNjb3VudCBmb3Igc3lzdGVtYXRpYyBkcmlmdCBzaW5jZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICB0aGUgY2xvY2sgd2FzIGxhc3Qgc2V0IG9yIGFkanVzdGVkXG4iCisiICAgICAgIC0tZ2V0ZXBvY2ggICAgIHByaW50IG91dCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1zZXRlcG9jaCAgICAgc2V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZSB0byB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGdpdmVuIHdpdGggLS1lcG9jaFxuIgorIiAgLXYgfCAtLXZlcnNpb24gICAgICBwcmludCBvdXQgdGhlIHZlcnNpb24gb2YgaHdjbG9jayB0byBzdGRvdXRcbiIKKyJcbiIKKyJPcHRpb25zOiBcbiIKKyIgIC11IHwgLS11dGMgICAgICAgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gVVRDXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIGxvY2FsIHRpbWVcbiIKKyIgIC1mIHwgLS1ydGM9cGF0aCAgICAgc3BlY2lhbCAvZGV2Ly4uLiBmaWxlIHRvIHVzZSBpbnN0ZWFkIG9mIGRlZmF1bHRcbiIKKyIgICAgICAgLS1kaXJlY3Rpc2EgICAgYWNjZXNzIHRoZSBJU0EgYnVzIGRpcmVjdGx5IGluc3RlYWQgb2YgJXNcbiIKKyIgICAgICAgLS1iYWR5ZWFyICAgICAgaWdub3JlIHJ0YydzIHllYXIgYmVjYXVzZSB0aGUgYmlvcyBpcyBicm9rZW5cbiIKKyIgICAgICAgLS1kYXRlICAgICAgICAgc3BlY2lmaWVzIHRoZSB0aW1lIHRvIHdoaWNoIHRvIHNldCB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgICAgICAgLS1lcG9jaD15ZWFyICAgc3BlY2lmaWVzIHRoZSB5ZWFyIHdoaWNoIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICBoYXJkd2FyZSBjbG9jaydzIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tbm9hZGpmaWxlICAgIGRvIG5vdCBhY2Nlc3MgL2V0Yy9hZGp0aW1lLiBSZXF1aXJlcyB0aGUgdXNlIG9mXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorIiAgICAgICAtLWFkamZpbGU9cGF0aCBzcGVjaWZpZXMgdGhlIHBhdGggdG8gdGhlIGFkanVzdCBmaWxlIChkZWZhdWx0IGlzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIC9ldGMvYWRqdGltZSlcbiIKKyIgICAgICAgLS10ZXN0ICAgICAgICAgZG8gZXZlcnl0aGluZyBleGNlcHQgYWN0dWFsbHkgdXBkYXRpbmcgdGhlIGhhcmR3YXJlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGNsb2NrIG9yIGFueXRoaW5nIGVsc2VcbiIKKyIgIC1EIHwgLS1kZWJ1ZyAgICAgICAgZGVidWcgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisiaHdjbG9jayAtIGZyw6VnYSBvY2ggc3TDpGxsIGluIGjDpXJkdmFydWtsb2NrYW4gKFJUQylcbiIKKyJcbiIKKyJBbnbDpG5kbmluZzogaHdjbG9jayBbZnVua3Rpb25dIFtmbGFnZ29yLi4uXVxuIgorIlxuIgorIkZ1bmt0aW9uZXI6XG4iCisiICAtLWhlbHAgICAgICAgIHZpc2EgZGVubmEgaGrDpGxwXG4iCisiICAtLXNob3cgICAgICAgIGzDpHMgaMOlcmR2YXJ1a2xvY2thbiBvY2ggc2tyaXYgcmVzdWx0YXRldFxuIgorIiAgLS1zZXQgICAgICAgICBzdMOkbGwgcnRjOm4gdGlsbCB0aWRlbiBzb20gYW5nZXMgbWVkIC0tZGF0ZVxuIgorIiAgLS1oY3Rvc3lzICAgICBzdMOkbGwgc3lzdGVtdGlkZW4gZnLDpW4gaMOlcmR2YXJ1a2xvY2thblxuIgorIiAgLS1zeXN0b2hjICAgICBzdMOkbGwgaMOlcmR2YXJ1a2xvY2thbiB0aWxsIGFrdHVlbGwgc3lzdGVtdGlkXG4iCisiICAtLWFkanVzdCAgICAgIGp1c3RlcmEgcnRjOm4gZsO2ciBhdHQga29tcGVuc2VyYSBmw7ZyIHN5c3RlbWF0aXNrIGRyYWduaW5nXG4iCisiICAgICAgICAgICAgICAgIHNlZGFuIGtsb2NrYW4gc2VuYXN0IHN0w6RsbGRlcyBlbGxlciBqdXN0ZXJhZGVzXG4iCisiICAtLWdldGVwb2NoICAgIHNrcml2IHV0IGvDpHJuYW5zIHbDpHJkZSBww6UgaMOlcmR2YXJ1a2xvY2tlcG9rXG4iCisiICAtLXNldGVwb2NoICAgIHN0w6RsbCBrw6RybmFucyB2w6RyZGUgcMOlIGjDpXJkdmFydWtsb2NrZXBvayB0aWxsIHbDpHJkZXQgc29tXG4iCisiICAgICAgICAgICAgICAgIGFuZ2l2aXRzIG1lZCAtLWVwb2NoXG4iCisiICAtLXZlcnNpb24gICAgIHNrcml2IHV0IHZlcnNpb25zbnVtcmV0IHDDpSBod2Nsb2NrIHDDpSBzdGFuZGFyZCB1dFxuIgorIlxuIgorIkZsYWdnb3I6IFxuIgorIiAgLS11dGMgICAgICAgICBow6VyZHZhcnVrbG9ja2FuIGjDpWxscyBpIHVuaXZlcnNhbHRpZCAoVVRDKVxuIgorIiAgLS1sb2NhbHRpbWUgICBow6VyZHZhcnVrbG9ja2FuIGjDpWxscyBpIGxva2FsIHRpZFxuIgorIiAgLS1ydGM9cGF0aCAgICBzcGVjaWFsZmlsIC9kZXYvLi4uIGF0dCBhbnbDpG5kYSBpc3TDpGxsZXQgZsO2ciBzdGFuZGFyZFxuIgorIiAgLS1kaXJlY3Rpc2EgICBhbnbDpG5kIElTQS1idXNzZW4gZGlyZWt0IGlzdMOkbGxldCBmw7ZyICVzXG4iCisiICAtLWJhZHllYXIgICAgIGlnbm9yZXJhIMOlcmV0IGkgcnRjOm4gZWZ0ZXJzb20gYmlvc2V0IMOkciB0cmFzaWd0XG4iCisiICAtLWRhdGUgICAgICAgIGFuZ2VyIHRpZGVuIHNvbSBow6VyZHZhcnVrbG9ja2FuIHNrYSBzdMOkbGxhcyB0aWxsXG4iCisiICAtLWVwb2NoPcOlciAgICBhbmdlciBkZXQgw6VyIHNvbSDDpHIgYsO2cmphbiBww6UgaMOlcmR2YXJ1a2xvY2thbnMgZXBva3bDpHJkZVxuIgorIiAgLS1ub2FkamZpbGUgICBmw7Zyc8O2ayBpbnRlIGtvbW1hIMOldCAvZXRjL2FkanRpbWUuIEtyw6R2ZXIgYXR0IGFudGluZ2VuXG4iCisiICAgICAgICAgICAgICAgIC0tdXRjIGVsbGVyIC0tbG9jYWx0aW1lIGFudsOkbmRzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisiXG4iCittc2dzdHIgIiIKKyIgIC0tamVuc2VuLCAtLWFyYywgLS1zcm0sIC0tZnVua3ktdG95XG4iCisiICAgICAgICAgICAgICAgIHRhbGEgb20gZsO2ciBod2Nsb2NrIHZpbGtlbiB0eXAgYXYgYWxwaGEgZHUgaGFyIChzZSBod2Nsb2NrIgorIig4KSlcbiIKKworIyBhdWRpdCDDpHIgaW5nZXQgc3ZlbnNrdCBvcmQgbWVuIGhpdHRhciBpbnRlIHBhc3NhbmRlLiByZXZpc2lvbj8gZ3JhbnNrbmluZz8KKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICIlczogS3VuZGUgaW50ZSBhbnNsdXRhIHRpbGwgYXVkaXRzeXN0ZW1cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMgdGFyIGluZ2EgYXJndW1lbnQgc29tIGludGUgw6RyIGZsYWdnb3IuIER1IGFuZ2F2ICVkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyJEdSBoYXIgYW5naXZpdCBmbGVyYSBmdW5rdGlvbmVyXG4iCisiRHUga2FuIGJhcmEgdXRmw7ZyYSBlbiBmdW5rdGlvbiDDpXQgZ8Olbmdlbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBGbGFnZ29ybmEgLS11dGMgb2NoIC0tbG9jYWx0aW1lIMOkciDDtm1zZXNpZGlndCB1dGVzbHV0YW5kZS4gRHUgYW5nYXYgIgorImLDpWRhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6IEZsYWdnb3JuYSAtLWFkanVzdCBvY2ggLS1ub2FkamZpbGUgw6RyIMO2bXNlc2lkaWd0IHV0ZXNsdXRhbmRlLiBEdSBhbmdhdiAiCisiYsOlZGEuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqZmlsZSBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiBGbGFnZ29ybmEgLS1hZGp1c3Qgb2NoIC0tbm9hZGpmaWxlIMOkciDDtm1zZXNpZGlndCB1dGVzbHV0YW5kZS4gRHUgYW5nYXYgIgorImLDpWRhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIlczogTWVkIC0tbm9hZGpmaWxlIG3DpXN0ZSBkdSBhbmdlIGFudGluZ2VuIC0tdXRjIGVsbGVyIC0tbG9jYWx0aW1lXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiSW5nZW4gYW52w6RuZGJhciB0aWQgYXR0IHN0w6RsbGEuIEthbiBpbnRlIHN0w6RsbGEga2xvY2thbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICJUeXbDpHJyLCBlbmRhc3Qgc3VwZXJhbnbDpG5kYXJlbiBrYW4gw6RuZHJhIGjDpXJkdmFydWtsb2NrYW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBTeXN0ZW0gQ2xvY2suXG4iCittc2dzdHIgIlR5dsOkcnIsIGVuZGFzdCBzdXBlcmFudsOkbmRhcmVuIGthbiDDpG5kcmEgc3lzdGVta2xvY2thbi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUgIgorImtlcm5lbC5cbiIKK21zZ3N0ciAiIgorIlR5dsOkcnIsIGVuZGFzdCBzdXBlcmFudsOkbmRhcmVuIGthbiDDpG5kcmEgaMOlcmR2YXJ1a2xvY2thbnMgZXBvayBpIGvDpHJuYW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB0aGUgSGFyZHdhcmUgQ2xvY2sgdmlhIGFueSBrbm93biBtZXRob2QuXG4iCittc2dzdHIgIkthbiBpbnRlIGtvbW1hIMOldCBow6VyZHZhcnVrbG9ja2FuIHZpYSBuw6Vnb24ga8OkbmQgbWV0b2QuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzZSB0aGUgLS1kZWJ1ZyBvcHRpb24gdG8gc2VlIHRoZSBkZXRhaWxzIG9mIG91ciBzZWFyY2ggZm9yIGFuIGFjY2VzcyAiCisibWV0aG9kLlxuIgorbXNnc3RyICIiCisiQW52w6RuZCBmbGFnZ2FuIC0tZGVidWcgZsO2ciBhdHQgc2UgZGV0YWxqZXJuYSDDtnZlciB2w6VyIHPDtmtuaW5nIGVmdGVyIGVuICIKKyLDpXRrb21zdG1ldG9kLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gS0RHSFdDTEsgdG8gY2hhbmdlXG4iCittc2dzdHIgIlbDpG50YXIgaSBzbGluZ2FuIHDDpSBhdHQgdGlkZW4gZnLDpW4gS0RHSFdDTEsgc2thIMOkbmRyYXNcbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAiS0RHSFdDTEstaW9jdGwgZsO2ciBhdHQgbMOkc2EgdGlkIG1pc3NseWNrYWRlcyIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICJLREdIV0NMSy1pb2N0bCBmw7ZyIGF0dCBsw6RzYSB0aWQgbWlzc2x5Y2thZGVzIGkgc2xpbmdhbiIKKworIzogaHdjbG9jay9rZC5jOjgyIGh3Y2xvY2svcnRjLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWVkIG91dCB3YWl0aW5nIGZvciB0aW1lIGNoYW5nZS5cbiIKK21zZ3N0ciAiR2pvcmRlIHRpbWUtb3V0IHVuZGVyIHbDpG50YW4gcMOlIGF0dCB0aWRlbiBza3VsbGUgw6RuZHJhcy5cbiIKKworIzogaHdjbG9jay9rZC5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIGZhaWxlZCB0byByZWFkIHRpbWUgZnJvbSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBtaXNzbHlja2FkZXMgbWVkIGF0dCBsw6RzYSB0aWQgZnLDpW4gJXMiCisKKyM6IGh3Y2xvY2sva2QuYzoxNDAKK21zZ2lkICJpb2N0bCBLRFNIV0NMSyBmYWlsZWQiCittc2dzdHIgIktEU0hXQ0xLLWlvY3RsIG1pc3NseWNrYWRlcyIKKworIzogaHdjbG9jay9rZC5jOjE3NgorbXNnaWQgIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIKK21zZ3N0ciAiS2FuIGludGUgw7ZwcG5hIC9kZXYvdHR5MSBlbGxlciAvZGV2L3ZjLzEiCisKKyM6IGh3Y2xvY2sva2QuYzoxODAKK21zZ2lkICJLREdIV0NMSyBpb2N0bCBmYWlsZWQiCittc2dzdHIgIktER0hXQ0xLLWlvY3RsIG1pc3NseWNrYWRlcyIKKworIzogaHdjbG9jay9ydGMuYzoxNDcgaHdjbG9jay9ydGMuYzoyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbigpIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAib3BlbigpIHDDpSAlcyBtaXNzbHlja2FkZXMiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gcmVhZCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImlvY3RsKCkgdGlsbCAlcyBmw7ZyIGF0dCBsw6RzYSB0aWQgbWlzc2x5Y2thZGVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiVsOkbnRhciBpIHNsaW5nYW4gcMOlIGF0dCB0aWRlbiBmcsOlbiAlcyBza2Egw6RuZHJhc1xuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIKK21zZ3N0ciAiJXMgaGFyIGluZ2EgYXZicm90dHNmdW5rdGlvbmVyLiAiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAicmVhZCgpIHDDpSAlcyBmw7ZyIGF0dCB2w6RudGEgcMOlIGtsb2NrdGljayBtaXNzbHlja2FkZXMiCisKKyM6IGh3Y2xvY2svcnRjLmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJzZWxlY3QoKSBww6UgJXMgZsO2ciBhdHQgdsOkbnRhIHDDpSBrbG9ja3RpY2sgbWlzc2x5Y2thZGVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIHRpbWVkIG91dFxuIgorbXNnc3RyICJzZWxlY3QoKSBww6UgJXMgZsO2ciBhdHQgdsOkbnRhIHDDpSBrbG9ja3RpY2sgZ2pvcmRlIHRpbWUtb3V0XG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIgorbXNnc3RyICJpb2N0bCgpIHDDpSAlcyBmw7ZyIGF0dCBzbMOlIGF2IHVwcGRhdGVyaW5nc2F2YnJvdHQgbWlzc2x5Y2thZGVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAiaW9jdGwoKSBww6UgJXMgZsO2ciBhdHQgc2zDpSBww6UgdXBwZGF0ZXJpbmdzYXZicm90dCBtaXNzbHlja2FkZXMgb3bDpG50YXQiCisKKyM6IGh3Y2xvY2svcnRjLmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gc2V0IHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAiaW9jdGwoKSBww6UgJXMgZsO2ciBhdHQgc3TDpGxsYSB0aWRlbiBtaXNzbHlja2FkZXMuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiaW9jdGwoJXMpIGx5Y2thZGVzLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcGVuIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiw5ZwcG5pbmcgYXYgJXMgbWlzc2x5Y2thZGVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxMCBod2Nsb2NrL3J0Yy5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gbWFuaXB1bGF0ZSB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbCwgd2UgbXVzdCBhY2Nlc3MgdGhlIExpbnV4ICdydGMnICIKKyJkZXZpY2UgZHJpdmVyIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwgZmlsZSAlcy4gIFRoaXMgZmlsZSBkb2VzIG5vdCBleGlzdCBvbiAiCisidGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKyJGw7ZyIGF0dCDDpG5kcmEgZXBva3bDpHJkZXQgaSBrw6RybmFuIG3DpXN0ZSB2aSBrb21tYSDDpXQgTGludXggXCJydGNcIi1kcml2cnV0aW4gIgorInZpYSBzcGVjaWFsZW5oZXRzZmlsZW4gJXMuIERlbm5hIGZpbCBmaW5ucyBpbnRlIHDDpSBkZXR0YSBzeXN0ZW0uXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDE1IGh3Y2xvY2svcnRjLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJLYW4gaW50ZSDDtnBwbmEgJXMiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKFJUQ19FUE9DSF9SRUFEKSB0byAlcyBmYWlsZWQiCittc2dzdHIgImlvY3RsKFJUQ19FUE9DSF9SRUFEKSBww6UgJXMgbWlzc2x5Y2thZGVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAidmkgaGFyIGzDpHN0IGVwb2tlbiAlbGQgZnLDpW4gJXMgbWVkIFJUQ19FUE9DSF9SRUFELWlvY3RsLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIkVwb2t2w6RyZGV0IGbDpXIgaW50ZSB2YXJhIG1pbmRyZSDDpG4gMTkwMC4gRHUgYmVnw6RyZGUgJWxkXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNldHRpbmcgZXBvY2ggdG8gJWxkIHdpdGggUlRDX0VQT0NIX1NFVCBpb2N0bCB0byAlcy5cbiIKK21zZ3N0ciAic3TDpGxsZXIgZXBva2VuIHRpbGwgJWxkIG1lZCBSVENfRVBPQ0hfU0VULWlvY3RsIHDDpSAlcy5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwgZGV2aWNlIGRyaXZlciBmb3IgJXMgZG9lcyBub3QgaGF2ZSB0aGUgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKK21zZ3N0ciAiS8Okcm5kcml2cnV0aW5lbiBmw7ZyICVzIGhhciBpbnRlIFJUQ19FUE9DSF9TRVQtaW9jdGw6ZW4uXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKFJUQ19FUE9DSF9TRVQpIHRvICVzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgcMOlICVzIG1pc3NseWNrYWRlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBleGVjICVzOiAlbSIKK21zZ3N0ciAiJXM6IGthbiBpbnRlIGvDtnJhICVzOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCittc2dzdHIgImthbiBpbnRlIG1pbm5lc2FsbG9rZXJhIGluaXRpZXJpbmdzc3Ryw6RuZyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAiZmVsYWt0aWd0IHRpbWVvdXR2w6RyZGU6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHNwZWVkOiAlcyIKK21zZ3N0ciAiZmVsYWt0aWcgaGFzdGlnaGV0OiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI3Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAiZsO2ciBtw6VuZ2EgYWx0ZXJuYXRpdmEgaGFzdGlnaGV0ZXIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIi9kZXY6IGNoZGlyKCkgbWlzc2x5Y2thZGVzOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIi9kZXYvJXM6IGluZ2VuIHRlY2tlbmVuaGV0IgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIvZGV2LyVzOiBrYW4gaW50ZSDDtnBwbmEgc29tIHN0YW5kYXJkIGluOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3Qgb3BlbiBmb3IgcmVhZC93cml0ZSIKK21zZ3N0ciAiJXM6IGludGUgw7ZwcGVuIGbDtnIgbMOkc25pbmcvc2tyaXZuaW5nIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGR1cCBwcm9ibGVtOiAlbSIKK21zZ3N0ciAiJXM6IGR1cGxpY2VyaW5nc3Byb2JsZW06ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlciIKK21zZ3N0ciAiYW52w6RuZGFyZSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXJzIgorbXNnc3RyICJhbnbDpG5kYXJlIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiJXM6IGzDpHN0ZTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlucHV0IG92ZXJydW4iCittc2dzdHIgIiVzOiBpbmRhdGFzcGlsbCIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTIwNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiQW52w6RuZG5pbmc6ICVzIFstOGhpTG13XSBbLWwgaW5sb2dnbmluZ3Nwcm9ncmFtXSBbLXQgdGlkc2dyw6Ruc10gWy1JICIKKyJpbml0aWVyaW5nc3N0csOkbmddIFstSCBpbmxvZ2duaW5nc3bDpHJkXSBiYXVkaGFzdGlnaGV0LC4uLiBsaW5qZSAiCisiW3Rlcm1pbmFsdHlwXVxuIgorImVsbGVyXHRbLWhpTG13XSBbLWwgaW5sb2dnbmluZ3Nwcm9ncmFtXSBbLXQgdGlkc2dyw6Ruc10gWy1JICIKKyJpbml0aWVyaW5nc3N0csOkbmddIFstSCBpbmxvZ2duaW5nc3bDpHJkXSBsaW5qZSBiYXVkaGFzdGlnaGV0LC4uLiAiCisiW3Rlcm1pbmFsdHlwXVxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkxIGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBtZW1vcnkgbG93LCBsb2dpbiBtYXkgZmFpbFxuIgorbXNnc3RyICJsb2dpbjogbGl0ZSBtaW5uZSwgaW5sb2dnbmluZyBrYW4gbWlzc2x5Y2thc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAia2FuIGludGUgbWlubmVzYWxsb2tlcmEgZsO2ciB0dHljbGFzcyIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTMKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCittc2dzdHIgImthbiBpbnRlIG1pbm5lc2FsbG9rZXJhIGbDtnIgZ3JwbGlzdCIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiSW5sb2dnbmluZyBww6UgJXMgZnLDpW4gJXMgbmVrYXMgc29tIHN0YW5kYXJkLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZC5cbiIKK21zZ3N0ciAiSW5sb2dnbmluZyBww6UgJXMgZnLDpW4gJXMgbmVrYXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IGR1IChhbnbDpG5kYXJlICVkKSBmaW5ucyBpbnRlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogYW52w6RuZGFyZW4gXCIlc1wiIGZpbm5zIGludGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiVzOiBrYW4gZW5kYXN0IMOkbmRyYSBsb2thbGEgcG9zdGVyOyBhbnbDpG5kIHlwJXMgaXN0w6RsbGV0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU2IGxvZ2luLXV0aWxzL2Noc2guYzoxNDIKK21zZ2lkICJVbmtub3duIHVzZXIgY29udGV4dCIKK21zZ3N0ciAiT2vDpG50IGFudsOkbmRhcnNhbW1hbmhhbmciCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgZmluZ2VyIGluZm8gb2YgJXNcbiIKK21zZ3N0ciAiJXM6ICVzIHRpbGzDpXRzIGludGUgw6RuZHJhIGZpbmdlcmluZm9ybWF0aW9uZW4gZsO2ciAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTY0IGxvZ2luLXV0aWxzL2Noc2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBkZWZhdWx0IGNvbnRleHQgZm9yIC9ldGMvcGFzc3dkIgorbXNnc3RyICIlczogS2FuIGludGUgc3TDpGxsYSBpbiBzdGFuZGFyZHNhbW1hbmhhbmdldCBmw7ZyIC9ldGMvcGFzc3dkIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGZpbmdlciBpbmZvcm1hdGlvbiBmb3IgJXMuXG4iCittc2dzdHIgIsOEbmRyYXIgZmluZ2VyaW5mb3JtYXRpb24gZsO2ciAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJjaHNoOiBQQU0tZmVsLCBhdmJyeXRlcjogJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxMiBsb2dpbi11dGlscy9jaHNoLmM6MjExIGxvZ2luLXV0aWxzL2xvZ2luLmM6ODI3CisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo3OSBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQwIG1vdW50L2xvbW91bnQuYzo3NDIKKyM6IG1vdW50L2xvbW91bnQuYzo3NDUKK21zZ2lkICJQYXNzd29yZDogIgorbXNnc3RyICJMw7ZzZW5vcmQ6ICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxNSBsb2dpbi11dGlscy9jaHNoLmM6MjE0Cittc2dpZCAiSW5jb3JyZWN0IHBhc3N3b3JkLiIKK21zZ3N0ciAiRmVsYWt0aWd0IGzDtnNlbm9yZC4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJGaW5nZXJpbmZvcm1hdGlvbmVuIMOkbmRyYWRlcyBpbnRlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIgorbXNnc3RyICJBbnbDpG5kbmluZzogJXMgWyAtZiBmdWxsc3TDpG5kaWd0LW5hbW4gXSBbIC1vIGpvYmIgXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlsgLXAgb2ZmaWNlLXBob25lIF1cbiIKKyJcdFsgLWggaG9tZS1waG9uZSBdICIKK21zZ3N0ciAiIgorIlsgLXAgam9iYnRlbGVmb24gXVxuIgorIlx0WyAtaCBoZW10ZWxlZm9uIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc5Cittc2dpZCAiT2ZmaWNlIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozODAKK21zZ2lkICJIb21lIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkF2YnLDtnRzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDM0CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZWxkIGlzIHRvbyBsb25nLlxuIgorbXNnc3RyICJmw6RsdGV0IMOkciBmw7ZyIGzDpW5ndC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0MgorIywgYy1mb3JtYXQKK21zZ2lkICInJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICJcIiVjXCIgw6RyIGludGUgdGlsbMOldGV0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvbnRyb2wgY2hhcmFjdGVycyBhcmUgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIktvbnRyb2xsdGVja2VuIMOkciBpbnRlIHRpbGzDpXRuYS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxMgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiRmluZ2VyaW5mb3JtYXRpb25lbiDDpG5kcmFkZXMgKklOVEUqLiBGw7Zyc8O2ayBpZ2VuIHNlbmFyZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiRmluZ2VyaW5mb3JtYXRpb25lbiDDpG5kcmFkZXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgc2hlbGwgb2YgJXNcbiIKK21zZ3N0ciAiJXM6ICVzIHRpbGzDpXRzIGludGUgYnl0YSBza2FsZXQgZsO2ciAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogUnVubmluZyBVSUQgZG9lc24ndCBtYXRjaCBVSUQgb2YgdXNlciB3ZSdyZSBhbHRlcmluZywgc2hlbGwgY2hhbmdlICIKKyJkZW5pZWRcbiIKK21zZ3N0ciAiIgorIiVzOiBEZXQga8O2cmFuZGUgVUlEOmV0IHN0w6RtbWVyIGludGUgw7Z2ZXJlbnMgbWVkIFVJRCBmw7ZyIGRlbiBhbnbDpG5kYXJlIHZpICIKKyJmw7Zyc8O2a2VyIMOkbmRyYSwgc2thbGJ5dGUgbmVrYWRlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBZb3VyIHNoZWxsIGlzIG5vdCBpbiAvZXRjL3NoZWxscywgc2hlbGwgY2hhbmdlIGRlbmllZFxuIgorbXNnc3RyICIlczogRGl0dCBza2FsIMOkciBpbnRlIGkgL2V0Yy9zaGVsbHMsIHNrYWxieXRlIG5la2FkZXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBzaGVsbCBmb3IgJXMuXG4iCittc2dzdHIgIkJ5dGVyIHNrYWwgZsO2ciAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyMgorbXNnaWQgIk5ldyBzaGVsbCIKK21zZ3N0ciAiTnl0dCBza2FsIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJTa2FsZXQgYnl0dGVzIGludGUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiU2thbGV0IGJ5dHRlcyAqSU5URSouIEbDtnJzw7ZrIGlnZW4gc2VuYXJlLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIGNoYW5nZWQuXG4iCittc2dzdHIgIlNrYWxldCBieXR0ZXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbIC1zIHNoZWxsIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsgdXNlcm5hbWUgXVxuIgorbXNnc3RyICIiCisiQW52w6RuZG5pbmc6ICVzIFsgLXMgc2thbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIGFudsOkbmRhcm5hbW4gXVxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiVzOiBza2FsZXQgbcOlc3RlIHZhcmEgZW4gZnVsbHN0w6RuZGlnIHPDtmt2w6RnLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIgZmlubnMgaW50ZS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBleGVjdXRhYmxlLlxuIgorbXNnc3RyICIlczogXCIlc1wiIMOkciBpbnRlIGvDtnJiYXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiVzOiBcIiVjXCIgw6RyIGludGUgdGlsbMOldGV0LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogS29udHJvbGx0ZWNrZW4gw6RyIGludGUgdGlsbMOldG5hLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc1IGxvZ2luLXV0aWxzL2Noc2guYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIlZhcm5pbmc6IFwiJXNcIiBmaW5ucyBpbnRlIG1lZCBpIC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBmaW5ucyBpbnRlIG1lZCBpIC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6IGFudsOkbmQgZmxhZ2dhbiAtbCBmw7ZyIGF0dCBzZSBsaXN0YW5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIkFudsOkbmQgJXMgLWwgZsO2ciBhdHQgc2UgbGlzdGFuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGtub3duIHNoZWxscy5cbiIKK21zZ3N0ciAiSW5nYSBrw6RuZGEgc2thbC5cbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gb3BlbiAlcyBmb3IgcmVhZGluZywgZXhpdGluZy4iCittc2dzdHIgImthbiBpbnRlIMO2cHBuYSAlcyBmw7ZyIGzDpHNuaW5nIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MTQ4Cittc2dpZCAidXNhZ2U6IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXNlciAuLi5dXG4iCittc2dzdHIgIiIKKyJhbnbDpG5kbmluZzogbGFzdCBbLSNdIFstZiBmaWxdIFstdCB0dHldIFstaCB2w6RyZG5hbW5dIFthbnbDpG5kYXJlIC4uLl1cbiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIgIGZvcnRmYXJhbmRlIGlubG9nZ2FkIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJ3dG1wIGJlZ2lucyAlcyIKK21zZ3N0ciAiIgorIlxuIgorInd0bXAgYsO2cmphciAlcyIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjM4MCBsb2dpbi11dGlscy9sYXN0LmM6Mzk4IGxvZ2luLXV0aWxzL2xhc3QuYzo0NDkKK21zZ2lkICJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIKK21zZ3N0ciAibGFzdDogbWlubmVzYWxsb2tlcmluZ3NmZWwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0MjUKK21zZ2lkICJsYXN0OiBnZXRob3N0bmFtZSIKK21zZ3N0ciAibGFzdDogZ2V0aG9zdG5hbWUiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImludGVycnVwdGVkICUxMC4xMHMgJTUuNXMgXG4iCittc2dzdHIgIiIKKyJcbiIKKyJhdmJydXRlbiAlMTAuMTBzICU1LjVzIFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIsOWREVTRElHRVJUOiBrYW4gaW50ZSDDpXRlcsO2cHBuYSB0dHk6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6ICVzIGlzIG5vdCBhIHRlcm1pbmFsIgorbXNnc3RyICIlcyDDpHIgaW5nZW4gYmxvY2tzcGVjaWFsZW5oZXQiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjM4Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgIsOWREVTRElHRVJUOiBmZWxha3RpZyB0dHkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICJsb2dpbjogLWggZW5kYXN0IGbDtnIgc3VwZXJhbnbDpG5kYXJlbi5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvZ2luIFstZnBdIFt1c2VybmFtZV1cbiIKK21zZ3N0ciAiYW52w6RuZG5pbmc6IGxvZ2luIFstZnBdIFthbnbDpG5kYXJuYW1uXVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBpbml0aWFsaXplIFBBTTogJXMiCittc2dzdHIgIkt1bmRlIGludGUgaW5pdGllcmEgUEFNOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1OTUKK21zZ2lkICJsb2dpbjogIgorbXNnc3RyICJhbnbDpG5kYXJuYW1uOiAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIk1JU1NMWUNLQUQgSU5MT0dHTklORyAlZCBGUsOFTiAlcyBGw5ZSICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkxvZ2luIGluY29ycmVjdFxuIgorIlxuIgorbXNnc3RyICIiCisiRmVsYWt0aWcgaW5sb2dnbmluZ1xuIgorIlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJUT08gTUFOWSBMT0dJTiBUUklFUyAoJWQpIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiRsOWUiBNw4VOR0EgSU5MT0dHTklOR1NGw5ZSU8OWSyAoJWQpIEZSw4VOICVzIEbDllIgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIk1JU1NMWUNLQUQgSU5MT0dHTklOR1NTRVNTSU9OIEZSw4VOICVzIEbDllIgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIiIKKyJcbiIKKyJGZWxha3RpZyBpbmxvZ2duaW5nXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkwIGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk3IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIgorbXNnc3RyICIiCisiXG4iCisiUHJvYmxlbSBtZWQgdXBwcsOkdHRhbmRldCBhdiBzZXNzaW9uZW4sIGF2YnJ5dGVyLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MQorIywgYy1mb3JtYXQKK21zZ2lkICJOVUxMIHVzZXIgbmFtZSBpbiAlczolZC4gQWJvcnQuIgorbXNnc3RyICJBbnbDpG5kYXJuYW1uZXQgw6RyIE5VTEwgaSAlczolZC4gQXZicnl0ZXIuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVzZXIgbmFtZSBcIiVzXCIgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiT2dpbHRpZ3QgYW52w6RuZGFybmFtbiBcIiVzXCIgaSAlczolZC4gQXZicnl0ZXIuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJsb2dpbjogU2x1dCBww6UgbWlubmVcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICJPZ2lsdGlndCBhbnbDpG5kYXJuYW1uIgorCisjICVzIGJsaXIgaMOkciAicm9vdCIgaSBkZSBmbGVzdGEgZmFsbCB2YWQgamFnIGbDtnJzdMOlcgorIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9naW4gcmVmdXNlZCBvbiB0aGlzIHRlcm1pbmFsLlxuIgorbXNnc3RyICIlcy1pbmxvZ2duaW5nIG5la2FzIHDDpSBkZW5uYSB0ZXJtaW5hbC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiSU5MT0dHTklORyBBViAlcyBORUtBUyBGUsOFTiAlcyBQw4UgVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiSU5MT0dHTklORyBBViAlcyBORUtBUyBQw4UgVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjg2NworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiRmVsYWt0aWcgaW5sb2dnbmluZ1xuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRElBTFVQIEFUICVzIEJZICVzIgorbXNnc3RyICJVUFBSSU5HTklORyBQw4UgJXMgQVYgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5OQorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCittc2dzdHIgIlJPT1QtSU5MT0dHTklORyBQw4UgJXMgRlLDhU4gJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIgorbXNnc3RyICJST09ULUlOTE9HR05JTkcgUMOFICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAiSU5MT0dHTklORyBQw4UgJXMgQVYgJXMgRlLDhU4gJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwOAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyIKK21zZ3N0ciAiSU5MT0dHTklORyBQw4UgJXMgQVYgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEyOQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBuZXcgbWFpbC5cbiIKK21zZ3N0ciAiRHUgaGFyIG55IHBvc3QuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEzMQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBtYWlsLlxuIgorbXNnc3RyICJEdSBoYXIgcG9zdC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjogZ3JlbmFuZGUgbWlzc2x5Y2thZGVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRJT0NTQ1RUWSBmYWlsZWQ6ICVtIgorbXNnc3RyICJUSU9DU0NUVFkgbWlzc2x5Y2thZGVzOiAlbSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjI4Cittc2dpZCAic2V0dWlkKCkgZmFpbGVkIgorbXNnc3RyICJzZXR1aWQoKSBtaXNzbHlja2FkZXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBkaXJlY3RvcnkgJXMhXG4iCittc2dzdHIgIkthdGFsb2dlbiAlcyBmaW5ucyBpbnRlIVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9nZ2luZyBpbiB3aXRoIGhvbWUgPSBcIi9cIi5cbiIKK21zZ3N0ciAiTG9nZ2FyIGluIG1lZCBoZW1rYXRhbG9nID0gXCIvXCIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgImxvZ2luOiBpbmdldCBtaW5uZSBmw7ZyIHNrYWxza3JpcHQuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogY291bGRuJ3QgZXhlYyBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorbXNnc3RyICJsb2dpbjoga3VuZGUgaW50ZSBrw7ZyYSBza2Fsc2tyaXB0OiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBpbmdldCBza2FsOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlcyBsb2dpbjogIgorbXNnc3RyICIiCisiXG4iCisiJXMgYW52w6RuZGFybmFtbjogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJhbnbDpG5kYXJuYW1uZXQgw6RyIGFsbGRlbGVzIGbDtnIgbMOlbmd0LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICJOQU1ORVQgw6RyIGbDtnIgbMOlbmd0IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoICctJy5cbiIKK21zZ3N0ciAiYW52w6RuZGFybmFtbiBmw6VyIGludGUgYsO2cmphIG1lZCBcIi1cIi5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIwCisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IGJhcmUgbGluZWZlZWRzLlxuIgorbXNnc3RyICJmw7ZyIG3DpW5nYSB0b21tYSBueXJhZGVyLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjEKK21zZ2lkICJFWENFU1NJVkUgbGluZWZlZWRzIgorbXNnc3RyICJGw5ZSIE3DhU5HQSBueXJhZGVyIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiSW5sb2dnbmluZyBnam9yZGUgdGltZS1vdXQgZWZ0ZXIgJWQgc2VrdW5kZXJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgbG9naW46ICUuKnMgIgorbXNnc3RyICJTZW5hc3RlIGlubG9nZ25pbmc6ICUuKnMgIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnJvbSAlLipzXG4iCittc2dzdHIgImZyw6VuICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAicMOlICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIk1JU1NMWUNLQUQgSU5MT0dHTklORyBGUsOFTiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAiTUlTU0xZQ0tBRCBJTkxPR0dOSU5HIFDDhSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBGUk9NICVzLCAlcyIKK21zZ3N0ciAiJWQgTUlTU0xZQ0tBREUgSU5MT0dHTklOR0FSIEZSw4VOICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIE9OICVzLCAlcyIKK21zZ3N0ciAiJWQgTUlTU0xZQ0tBREUgSU5MT0dHTklOR0FSIFDDhSAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyB5XG4iCittc2dzdHIgIsOkciBww6UgKHkpXG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBuXG4iCittc2dzdHIgIsOkciBhdiAobilcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiBtZXNnIFt5IHwgbl1cbiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAibmV3Z3JwOiBWZW0gw6RyIGR1PyIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTA3IGxvZ2luLXV0aWxzL25ld2dycC5jOjEyMQorbXNnaWQgIm5ld2dycDogc2V0Z2lkIgorbXNnc3RyICJuZXdncnA6IHNldGdpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIm5ld2dycDogSW5nZW4gc8OlZGFuIGdydXBwLiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiDDhXRrb21zdCBuZWthcy4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIkluZ2V0IHNrYWwiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW5zXVxuIgorbXNnc3RyICJBbnbDpG5kbmluZzogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3x0dDpzc3wrbWludXRlcl1cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgIk5lZHN0w6RuZ25pbmdzZsO2cmxvcHBldCBhdmJydXRldCIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9ubHkgcm9vdCBjYW4gc2h1dCBhIHN5c3RlbSBkb3duLlxuIgorbXNnc3RyICIlczogRW5kYXN0IHJvb3Qga2FuIHN0w6RuZ2EgbmVyIGV0dCBzeXN0ZW0uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoYXQgbXVzdCBiZSB0b21vcnJvdywgY2FuJ3QgeW91IHdhaXQgdGlsbCB0aGVuP1xuIgorbXNnc3RyICJEZXQgbcOlc3RlIHZhcmEgaW1vcmdvbiwga2FuIGR1IGludGUgdsOkbnRhIHRpbGwgZGVzcz9cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMTAKK21zZ2lkICJmb3IgbWFpbnRlbmFuY2U7IGJvdW5jZSwgYm91bmNlIgorbXNnc3RyICJmw7ZyIHVuZGVyaMOlbGw7IHN0dWRzLCBzdHVkcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMzkKK21zZ2lkICJUaGUgc3lzdGVtIGlzIGJlaW5nIHNodXQgZG93biB3aXRoaW4gNSBtaW51dGVzIgorbXNnc3RyICJTeXN0ZW1ldCBzdMOkbmdzIG5lciBpbm9tIDUgbWludXRlciIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNDMKK21zZ2lkICJMb2dpbiBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4iCittc2dzdHIgIklubG9nZ25pbmcgw6RyIGTDpHJmw7ZyIGludGUgdGlsbMOldGVuLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVib290ZWQgYnkgJXM6ICVzIgorbXNnc3RyICJvbXN0YXJ0YWQgYXYgJXM6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoYWx0ZWQgYnkgJXM6ICVzIgorbXNnc3RyICJzdGFubmFkIGF2ICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzIKK21zZ2lkICIiCisiXG4iCisiV2h5IGFtIEkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVib290PyIKK21zZ3N0ciAiIgorIlxuIgorIlZhcmbDtnIgbGV2ZXIgamFnIGZvcnRmYXJhbmRlIGVmdGVyIG9tc3RhcnQ/IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzNAorbXNnaWQgIiIKKyJcbiIKKyJOb3cgeW91IGNhbiB0dXJuIG9mZiB0aGUgcG93ZXIuLi4iCittc2dzdHIgIiIKKyJcbiIKKyJOdSBrYW4gZHUgc3TDpG5nYSBhdiBzdHLDtm1tZW4uLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICJBbnJvcGFyIGvDpHJuYW5zIGF2c3TDpG5nbmluZ3NmYWNpbGl0ZXQuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcG93ZXJpbmcgb2ZmXHQlc1xuIgorbXNnc3RyICJGZWwgdmlkIGF2c3TDpG5nbmluZ1x0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAiS8O2ciBwcm9ncmFtbWV0IFwiJXNcIi4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBleGVjdXRpbmdcdCVzXG4iCittc2dzdHIgIkZlbCB2aWQga8O2cm5pbmcgYXZcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiCittc2dzdHIgIkJSw4VEU0tBTkRFOiBtZWRkZWxhbmRlIHRpbGwgYWxsYSBmcsOlbiAlczoiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiCittc2dzdHIgIlN5c3RlbWV0IGfDpXIgbmVyIG9tICVkIHRpbW1hciBvY2ggJWQgbWludXRlciIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBob3VyICVkIG1pbnV0ZXMiCittc2dzdHIgIlN5c3RlbWV0IGfDpXIgbmVyIG9tIDEgdGltbWUgb2NoICVkIG1pbnV0ZXIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiU3lzdGVtZXQgZ8OlciBuZXIgb20gJWQgbWludXRlclxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwNgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIG1pbnV0ZVxuIgorbXNnc3RyICJTeXN0ZW1ldCBnw6VyIG5lciBvbSAxIG1pbnV0XG4iCisKKyMgbXNnaWQgIlxhVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKKyMgbXNnc3RyICIiCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAiU3lzdGVtZXQgZ8OlciBuZXIgT01FREVMQkFSVCFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx0Li4uICVzLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTcwCittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHN3YXBvZmYuIFNocnVnISIKK21zZ3N0ciAiS2FuIGludGUgZ3JlbmEgZsO2ciBzd2Fwb2ZmLiBTdWNrISIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzgKK21zZ2lkICJDYW5ub3QgZXhlYyBzd2Fwb2ZmLCBob3BpbmcgdW1vdW50IHdpbGwgZG8gdGhlIHRyaWNrLiIKK21zZ3N0ciAiS2FuIGludGUga8O2cmEgc3dhcG9mZiwgaG9wcGFzIGF0dCB1bW91bnQgZml4YXIgZGV0LiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1OTcKK21zZ2lkICJDYW5ub3QgZm9yayBmb3IgdW1vdW50LCB0cnlpbmcgbWFudWFsbHkuIgorbXNnc3RyICJLYW4gaW50ZSBncmVuYSBmw7ZyIHVtb3VudCwgZsO2cnPDtmtlciBtYW51ZWxsdC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICJLYW4gaW50ZSBrw7ZyYSAlcywgZsO2cnPDtmtlciBtZWQgdW1vdW50LlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgIkthbiBpbnRlIGvDtnJhIHVtb3VudCwgZ2VyIHVwcCBtZWQgdW1vdW50LiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTUKK21zZ2lkICJVbm1vdW50aW5nIGFueSByZW1haW5pbmcgZmlsZXN5c3RlbXMuLi4iCittc2dzdHIgIkF2bW9udGVyYXIgYWxsYSDDpXRlcnN0w6VlbmRlIGZpbHN5c3RlbS4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAic2h1dGRvd246IENvdWxkbid0IHVtb3VudCAlczogJXNcbiIKK21zZ3N0ciAic2h1dGRvd246IEt1bmRlIGludGUgYXZtb250ZXJhICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICJTdGFydGFyIGkgZW5hbnbDpG5kYXJsw6RnZS5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzNgorbXNnaWQgImV4ZWMgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgImvDtnJuaW5nIGF2IGVuYW52w6RuZGFyc2thbCBtaXNzbHlja2FkZXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjE0MAorbXNnaWQgImZvcmsgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgImdyZW5pbmcgYXYgZW5hbnbDpG5kYXJza2FsIG1pc3NseWNrYWRlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjA4Cittc2dpZCAiZXJyb3Igb3BlbmluZyBmaWZvXG4iCittc2dzdHIgImZlbCB2aWQgw7ZwcG5hbmRlIGF2IGZpZm9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIxMgorbXNnaWQgImVycm9yIHNldHRpbmcgY2xvc2Utb24tZXhlYyBvbiAvZGV2L2luaXRjdGwiCittc2dzdHIgImZlbCB2aWQgaW5zdMOkbGxuaW5nIGF2IGNsb3NlLW9uLWV4ZWMgcMOlIC9kZXYvaW5pdGN0bCIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI1OQorbXNnaWQgImVycm9yIHJ1bm5pbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImZlbCB2aWQga8O2cm5pbmcgYXYgZmluYWxwcm9nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNjMKK21zZ2lkICJlcnJvciBmb3JraW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJmZWwgdmlkIGdyZW5pbmcgYXYgZmluYWxwcm9nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDUKK21zZ2lkICIiCisiXG4iCisiV3JvbmcgcGFzc3dvcmQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJGZWwgbMO2c2Vub3JkLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDE4Cittc2dpZCAibHN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAibHN0YXQoKSBww6Ugc8O2a3bDpGcgbWlzc2x5Y2thZGVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MjYKK21zZ2lkICJzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgInN0YXQoKSBww6Ugc8O2a3bDpGcgbWlzc2x5Y2thZGVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MzQKK21zZ2lkICJvcGVuIG9mIGRpcmVjdG9yeSBmYWlsZWRcbiIKK21zZ3N0ciAiw7ZwcG5hbmRlIGF2IGthdGFsb2cgbWlzc2x5Y2thZGVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcGF3bmluZzogXCIlc1wiIHRvbyBmYXN0OiBxdWVuY2hpbmcgZW50cnlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAiZ3JlbmluZyBtaXNzbHlja2FkZXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU0MCB0ZXh0LXV0aWxzL21vcmUuYzoxNjYzCittc2dpZCAiZXhlYyBmYWlsZWRcbiIKK21zZ3N0ciAia8O2cm5pbmcgbWlzc2x5Y2thZGVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NjQKK21zZ2lkICJjYW5ub3Qgb3BlbiBpbml0dGFiXG4iCittc2dzdHIgImthbiBpbnRlIMO2cHBuYSBpbml0dGFiXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo2MzEKK21zZ2lkICJubyBURVJNIG9yIGNhbm5vdCBzdGF0IHR0eVxuIgorbXNnc3RyICJpbmdlbiBURVJNIGVsbGVyIGthbiBpbnRlIHRhIHN0YXR1cyBww6UgdHR5XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5MzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJmZWwgdmlkIHN0b3BwYW5kZSBhdiB0asOkbnN0OiBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAiZmVsIHZpZCBzdG9wcGFuZGUgYXYgdGrDpG5zdDogXCIlc1wiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJmZWwgdmlkIGvDtnJuaW5nIGF2IGZpbmFscHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAiZsO2ciBtw6VuZ2EgaW92ICjDpG5kcmEga29kIGkgd2FsbC90dHltc2cuYykiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImV4Y2Vzc2l2ZWx5IGxvbmcgbGluZSBhcmciCittc2dzdHIgIm9uw7ZkaWd0IGzDpW5ndCBsaW5qZWFyZ3VtZW50IgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgImthbiBpbnRlIGdyZW5hIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZm9yazogJXMiCittc2dzdHIgImZvcms6ICVzIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEJBRCBFUlJPUiIKK21zZ3N0ciAiJXM6IEFMTFZBUkxJR1QgRkVMIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgcGFzc3dvcmQgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczogbMO2c2Vub3Jkc2ZpbGVuIMOkciB1cHB0YWdlbi5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIGdyb3VwIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiJXM6IGdydXBwZmlsZW4gw6RyIHVwcHRhZ2VuLlxuIgorCisjIF8oIiVzOiB0aGUgJXMgZmlsZSBpcyBidXN5ICglcyBwcmVzZW50KVxuIiksCisjIAlwcm9nbmFtZSwKKyMgCXByb2dyYW0gPT0gVklQVyA/ICJwYXNzd29yZCIgOiAiZ3JvdXAiLAorIyAJdG1wX2ZpbGUpOworIworIyBEZXR0YSDDpHIgdHJhc2lndCAtIFRoaXMgaXMgYnJva2VuCisjIC0KKyMgRGVsYSBhbGRyaWcgdXBwIGV0dCBtZWRkZWxhbmRlIHPDpSBow6RyLCBhbnbDpG5kIHR2w6UgbWVkZGVsYW5kZW4gaXN0w6RsbGV0CisjIC0KKyMgTmV2ZXIgc3BsaXQgYSBzZW50ZW5jZSBsaWtlIHRoaXMsIHVzZSB0d28gZnVsbCBtZXNzYWdlcyBpbnN0ZWFkCisjCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgJXMgZmlsZSBpcyBidXN5ICglcyBwcmVzZW50KVxuIgorbXNnc3RyICIlczogZmlsZW4gJXMgw6RyIHVwcHRhZ2VuICglcyBmaW5ucylcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgbGluayAlczogJXNcbiIKK21zZ3N0ciAiJXM6IGthbiBpbnRlIGzDpG5rYSAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlcyA6IEthbiBpbnRlIGbDpSBzYW1tYW5oYW5nIGbDtnIgJXMiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6IEthbiBpbnRlIHN0w6RsbGEgaW4gc2FtbWFuaGFuZyBmw7ZyICVzIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCB1bmxvY2sgJXM6ICVzICh5b3VyIGNoYW5nZXMgYXJlIHN0aWxsIGluICVzKVxuIgorbXNnc3RyICIlczoga2FuIGludGUgbMOlc2EgdXBwICVzOiAlcyAoZGluYSDDpG5kcmluZ2FyIMOkciBmb3J0ZmFyYW5kZSBpICVzKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgZm9ya1xuIgorbXNnc3RyICIlczogS2FuIGludGUgZ3JlbmFcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgdW5jaGFuZ2VkXG4iCittc2dzdHIgIiVzOiAlcyDDpHIgb2bDtnLDpG5kcmFkXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIgorbXNnc3RyICIlczogaW5nYSDDpG5kcmluZ2FyIGdqb3JkZXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIkR1IGFudsOkbmRlciBza3VnZ3J1cHBlciBww6UgZGV0dGEgc3lzdGVtLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IHBhc3N3b3JkcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiRHUgYW52w6RuZGVyIHNrdWdnbMO2c2Vub3JkIHDDpSBkZXR0YSBzeXN0ZW0uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV291bGQgeW91IGxpa2UgdG8gZWRpdCAlcyBub3cgW3kvbl0/ICIKK21zZ3N0ciAiVmlsbCBkdSByZWRpZ2VyYSAlcyBudSBbeS9uXT8gIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbZmlsZV1cbiIKK21zZ3N0ciAiYW52w6RuZG5pbmc6ICVzIFtmaWxdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBrYW4gaW50ZSDDtnBwbmEgdGVtcG9yw6RyIGZpbC5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICJNZWRkZWxhbmRlIHRpbGwgYWxsYSBmcsOlbiAlc0AlcyIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2lsbCBub3QgcmVhZCAlcyAtIHVzZSBzdGRpbi5cbiIKK21zZ3N0ciAiJXM6IGtvbW1lciBpbnRlIGF0dCBsw6RzYSAlcyAtIGFudsOkbmQgc3RhbmRhcmQgaW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgIiVzOiBrYW4gaW50ZSBsw6RzYSAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgc3RhdCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IGthbiBpbnRlIHRhIHN0YXR1cyBww6UgdGVtcG9yw6RyIGZpbC5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IGthbiBpbnRlIGzDpHNhIHRlbXBvcsOkciBmaWwuXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgIm9naWx0aWd0IMOlcnN2w6RyZGU6IGFudsOkbmQgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICJvZ2lsdGlndCBtw6VuYWRzdsOkcmRlOiBhbnbDpG5kIDEtMTIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzcyCittc2dpZCAiaWxsZWdhbCB5ZWFyIHZhbHVlOiB1c2UgMS05OTk5IgorbXNnc3RyICJvZ2lsdGlndCDDpXJzdsOkcmRlOiBhbnbDpG5kIDEtOTk5OSIKKworIzogbWlzYy11dGlscy9jYWwuYzo0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJWQiCittc2dzdHIgIiVzICVkIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjg1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiBjYWwgWy0xM3NtanlWXSBbW23DpW5hZF0gw6VyXVxuIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbK2Zvcm1hdF0gW2RheSBtb250aCB5ZWFyXVxuIgorbXNnc3RyICJhbnbDpG5kbmluZzogJXMgWytmb3JtYXRdIFtkYWcgbcOlbmFkIMOlcl1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIlN0LiBUaWJzIERhZyIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgTEFCRUw9PGxhYmVsPnxVVUlEPTx1dWlkPlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byByZXNvbHZlICclcyciCittc2dzdHIgImthbiBpbnRlIMO2cHBuYSAlcyIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlc1xuIgorbXNnc3RyICIlczogb2vDpG5kIHNpZ25hbCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgcHJvY2VzcyBcIiVzXCJcbiIKK21zZ3N0ciAiJXM6IGthbiBpbnRlIGhpdHRhIHByb2Nlc3NlbiBcIiVzXCJcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlczsgdmFsaWQgc2lnbmFsczpcbiIKK21zZ3N0ciAiJXM6IG9rw6RuZCBzaWduYWwgJXM7IGdpbHRpZ2Egc2lnbmFsZXI6XG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtcyBzaWduYWwgfCAtcCBdIFsgLWEgXSBwaWQgLi4uXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiYW52w6RuZGFybmFtbmV0IMOkciBhbGxkZWxlcyBmw7ZyIGzDpW5ndC5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic29ja2V0OiAlcy5cbiIKK21zZ3N0ciAiQmxvY2tzdG9ybGVrOiAlZFxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbm5lY3Q6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogJXM6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6ICVzOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIGZhY2lsaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICJsb2dnZXI6IG9rw6RudCBmYWNpbGl0ZXRzbmFtbjogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBwcmlvcml0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBva8OkbnQgcHJpb3JpdGV0c25hbW46ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6IGxvZ2dlciBbLWlzXSBbLWYgZmlsZV0gWy1wIHByaV0gWy10IHRhZ10gWy11IHNvY2tldF0gWyBtZXNzYWdlIC4uLiBdXG4iCittc2dzdHIgIiIKKyJhbnbDpG5kbmluZzogbG9nZ2VyIFstaXNdIFstZiBmaWxdIFstcCBwcmldIFstdCB0YWdnXSBbLXUgdXR0YWddICIKKyJbIG1lZGRlbGFuZGUgLi4uIF1cbiIKKworIzogbWlzYy11dGlscy9sb29rLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb29rIFstZGZhXSBbLXQgY2hhcl0gc3RyaW5nIFtmaWxlXVxuIgorbXNnc3RyICJhbnbDpG5kbmluZzogbG9vayBbLWRmYV0gWy10IHRlY2tlbl0gc3Ryw6RuZyBbZmlsXVxuIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDUgbWlzYy11dGlscy9tY29va2llLmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzXG4iCittc2dzdHIgIkt1bmRlIGludGUgw7ZwcG5hICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwOSBtaXNjLXV0aWxzL21jb29raWUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIKK21zZ3N0ciAiRmljayAlZCBieXRlIGZyw6VuICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxNDMgbWlzYy11dGlscy9uYW1laS5jOjE5OCBtaXNjLXV0aWxzL25hbWVpLmM6MjI1CisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjQ1IG1pc2MtdXRpbHMvbmFtZWkuYzoyNTIgbWlzYy11dGlscy9uYW1laS5jOjI5NAorIywgZnV6enkKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAic2x1dCBww6UgbWlubmU/XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHN5bWxpbms6ICVzIgorbXNnc3RyICJpb2N0bCgpIG1pc3NseWNrYWRlcyBtZWQgYXR0IGzDpHNhIHRpZCBmcsOlbiAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjIzMSBtaXNjLXV0aWxzL25hbWVpLmM6MjU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICJrYW4gaW50ZSB0YSBzdGF0dXMgcMOlIGVuaGV0ZW4gJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiBuYW1laSBbLW14XSBzw7ZrdsOkZyBbc8O2a3bDpGcgLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkIHBhcnRpdGlvbmVyOlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAteCwgLS1tb3VudHBvaW50cyAgIHNob3cgbW91bnQgcG9pbnQgZGlyZWN0b3JpZXMgd2l0aCBhICdEJ1xuIgorIiAtbSwgLS1tb2RlcyAgICAgICAgIHNob3cgdGhlIG1vZGUgYml0cyBvZiBlYWNoIGZpbGVcbiIKKyIgLW8sIC0tb3duZXJzICAgICAgICBzaG93IG93bmVyIGFuZCBncm91cCBuYW1lIG9mIGVhY2ggZmlsZVxuIgorIiAtbCwgLS1sb25nICAgICAgICAgIHVzZSBhIGxvbmcgbGlzdGluZyBmb3JtYXQgKC1tIC1vIC12KSBcbiIKKyIgLW4sIC0tbm9zeW1saW5rcyAgICBkb24ndCBmb2xsb3cgc3ltbGlua3NcbiIKKyIgLXYsIC0tdmVydGljYWwgICAgICB2ZXJ0aWNhbCBhbGlnbiBvZiBtb2RlcyBhbmQgb3duZXJzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ2MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBuYW1laSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkbDtnIgbWVyIGluZm9ybWF0aW9uLCBzZSBzZXRhcmNoKDgpLlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTIyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdDogJXMiCittc2dzdHIgImthbiBpbnRlIHRhIHN0YXR1cyBww6UgJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiJXM6IHNsdXQgcMOlIG1pbm5lXG4iCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlbmFtaW5nICVzIHRvICVzIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiJXM6IG5hbW5ieXRlIGF2ICVzIHRpbGwgJXMgbWlzc2x5Y2thZGVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAiYW5yb3BhOiAlcyBmcsOlbiB0aWxsIGZpbGVyLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBgJXMnIGlzIGEgbGluay5cbiIKKyJVc2UgYCVzIFtvcHRpb25zXSAlcycgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC5cbiIKKyJTY3JpcHQgbm90IHN0YXJ0ZWQuXG4iCittc2dzdHIgIiIKKyJWYXJuaW5nOiBcIiVzXCIgw6RyIGVuIGzDpG5rLlxuIgorIkFudsOkbmQgXCIlcyBbZmxhZ2dvcl0gJXNcIiBvbSBkdSB2ZXJrbGlnZW4gdmlsbCBhbnbDpG5kYSBkZW4uXG4iCisiU2tyaXB0ZXQgc3RhcnRhZGVzIGludGUuXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAiYW52w6RuZG5pbmc6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlNrcmlwdGV0IHN0YXJ0YWRlcywgZmlsZW4gw6RyICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MjQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3IgJWQ6ICVzXG4iCittc2dzdHIgInNrcml2ZmVsIHDDpSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiU2tyaXB0ZXQgc3RhcnRhZGVzICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICJza3JpdmZlbCBww6UgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczoga2FuIGludGUgaGl0dGEgZW5oZXRlbiBmw7ZyICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorIlxuIgorIlNrcmlwdGV0IGbDpHJkaWd0ICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzNworIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgZG9uZSwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJTa3JpcHRldCBmw6RyZGlndCwgZmlsZW4gw6RyICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW5wdHkgZmFpbGVkXG4iCittc2dzdHIgIm9wZW5wdHkgbWlzc2x5Y2thZGVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICJTbHV0IHDDpSBwdHk6ZXJcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyA8dGltaW5nZmlsZT4gWzx0eXBlc2NyaXB0PiBbPGRpdmlzb3I+XV1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorIywgZnV6enkKK21zZ2lkICJ3cml0ZSB0byBzdGRvdXQgZmFpbGVkIgorbXNnc3RyICLDlnBwbmluZyBhdiAlcyBtaXNzbHlja2FkZXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBtaXNzbHlja2FkZXMgbWVkIGF0dCBsw6RzYSB0aWQgZnLDpW4gJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiS2FuIGludGUgw7ZwcG5hIGZpbGVuIFwiJXNcIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiS2FuIGludGUgw7ZwcG5hIGZpbGVuIFwiJXNcIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICJpb2N0bCgpIG1pc3NseWNrYWRlcyBtZWQgYXR0IGzDpHNhIHRpZCBmcsOlbiAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAiJXM6IE92w6RudGF0IGZpbHNsdXQgaSAlcy1maWxcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBBcmd1bWVudCBlcnJvciwgdXNhZ2VcbiIKK21zZ3N0ciAiJXM6IEFyZ3VtZW50ZmVsLCBhbnbDpG5kbmluZ1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorbXNnc3RyICIgIFsgLXRlcm0gdGVybWluYWxuYW1uIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVzZXQgXVxuIgorbXNnc3RyICIgIFsgLXJlc2V0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCittc2dzdHIgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc25vdyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiICBbIC1kZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc5IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODMKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NQorIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKK21zZ3N0ciAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorbXNnc3RyICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWJvbGQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdW5kZXJsaW5lIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdG9yZSBdXG4iCittc2dzdHIgIiAgWyAtc3RvcmUgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLXRhYnMgWyB0YWJiMSB0YWJiMiB0YWJiMyAuLi4gXSBdICAgICAgKHRhYmJudW1tZXIgPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLWNscnRhYnMgWyB0YWJiMSB0YWJiMiB0YWJiMyAuLi4gXSBdICAgKHRhYmJudW1tZXIgPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIgIFsgLWJsYW5rIFswLTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWR1bXAgICBbMS1BTlRBTF9LT05TT0xMRVJdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwZW5kIFsxLUFOVEFMX0tPTlNPTExFUl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1maWxlIGR1bXBmaWxlbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtZmlsZSBkdW1wZmlsbmFtbiBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorbXNnc3RyICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorbXNnc3RyICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCittc2dzdHIgIiAgWyAtYmZyZXEgZnJla3ZlbnNudW1tZXIgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDYxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgYmxhbmtcbiIKK21zZ3N0ciAia2FuIGludGUgZ3JlbmEiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgImthbiBpbnRlIGdyZW5hIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IGJsYW5rIHN0YXR1c1xuIgorbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICJrYW4gaW50ZSBzdMOkbGxhIGluL8OldGVyc3TDpGxsYSBzdHLDtm1zcGFybMOkZ2V0XG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICJrbG9nY3RsLWZlbDogJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciB3cml0aW5nIHNjcmVlbmR1bXBcbiIKK21zZ3N0ciAiRmVsIHZpZCBza3Jpdm5pbmcgYXYgc2vDpHJtZHVtcFxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIkt1bmRlIGludGUgw7ZwcG5hICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICRURVJNIGlzIG5vdCBkZWZpbmVkLlxuIgorbXNnc3RyICIlczogJFRFUk0gw6RyIGludGUgYW5naXZlbi5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdIFstVCB0aW1lb3V0XVxuIgorbXNnc3RyICIiCisiYW52w6RuZG5pbmc6IGxhc3QgWy0jXSBbLWYgZmlsXSBbLXQgdHR5XSBbLWggdsOkcmRuYW1uXSBbYW52w6RuZGFyZSAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgWy1yfHRdIFstbiBudW1dIFstcyBzb2NrZXRwYXRoXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTIKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGFyZ3VtZW50cyIKK21zZ3N0ciAiY29sOiBmZWxha3RpZ3QgYXJndW1lbnQgJXMgdGlsbCAtbC5cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorIywgZnV6enkKK21zZ2lkICJzb2NrZXQiCittc2dzdHIgIm5mcy11dHRhZyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE3MAorIywgZnV6enkKK21zZ2lkICJjb25uZWN0IgorbXNnc3RyICJuZnMtYW5zbHV0IgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTg5CisjLCBmdXp6eQorbXNnaWQgIndyaXRlIgorbXNnc3RyICJTa3JpdiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE5NworIywgZnV6enkKK21zZ2lkICJyZWFkIGNvdW50IgorbXNnc3RyICJsw6RzdGUgJWNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjIwMworbXNnaWQgImJhZCByZXNwb25zZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1dWlkZCBkYWVtb24gYWxyZWFkeSBydW5uaW5nIGF0IHBpZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtIHNvY2tldDogJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgYmluZCB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiS2FuIGludGUgw7ZwcG5hICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsaXN0ZW4gb24gdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIkthbiBpbnRlIMO2cHBuYSAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcmVhZGluZyBmcm9tIGNsaWVudCwgbGVuID0gJWRcbiIKK21zZ3N0ciAiRmVsIHZpZCBsw6RzbmluZyBhdiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZXJhdGlvbiAlZCwgaW5jb21pbmcgbnVtID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEICVzIGFuZCAlZCBmb2xsb3dpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCAlZCBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBvcGVyYXRpb24gJWRcbiIKK21zZ3N0ciAib2dpbHRpZ3QgaWQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IGZlbGFrdGlndCB2w6RyZGVcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUyNCBtaXNjLXV0aWxzL3V1aWRkLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjYWxsaW5nIHV1aWRkIGRhZW1vbiAoJXMpOiAlc1xuIgorbXNnc3RyICJmZWwgdmlkIGJ5dGUgYXYgcsOkdHRpZ2hldGVyIHDDpSAlczogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCByZXBseSBsZW5ndGggZnJvbSBzZXJ2ZXIgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJLaWxsZWQgdXVpZGQgcnVubmluZyBhdCBwaWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRnZW4uYzozMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJBbnbDpG5kbmluZzogJXMgW2ZsYWdnb3JdIGVuaGV0IC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3doZXJlaXMuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpciAuLi4gLWYgXSBuYW1lLi4uXG4iCittc2dzdHIgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBrYXQgLi4uIC1mIF0gbmFtbi4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjEyOAorIywgZnV6enkKK21zZ2lkICJjYWxsb2MgZmFpbGVkIgorbXNnc3RyICJtaW5uZXNhbGxva2VyaW5nIG1pc3NseWNrYWRlcyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxNTAKKyMsIGZ1enp5Cittc2dpZCAic3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiw5ZwcG5pbmcgYXYgJXMgbWlzc2x5Y2thZGVzIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBwcm9iaW5nIGluaXRpYWxpemF0aW9uIGZhaWxlZCIKK21zZ3N0ciAiRmVsIHZpZCBzdMOkbmduaW5nIGF2IGZpbFxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBhcHBlYXJzIHRvIGNvbnRhaW4gJyVzJyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkRpc2sgJXMgaW5uZWjDpWxsZXIgaW50ZSBlbiBnaWx0aWcgcGFydGl0aW9uc3RhYmVsbFxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBmb3VuZCBhIG1hZ2ljIHN0cmluZyBhdCBvZmZzZXQgMHglanggLSBpZ25vcmUuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjY0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIHNlZWsgdG8gb2Zmc2V0IDB4JWp4IgorbXNnc3RyICIlczogbWlzc2x5Y2thZGVzIG1lZCBhdHQgw7ZwcG5hOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBtaXNzbHlja2FkZXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiV6ZCBieXRlcyBbIgorbXNnc3RyICJieXRlIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJdIGVyYXNlZCBhdCBvZmZzZXQgMHglanggKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjkyIG1vdW50L3N3YXBvbi5jOjE5OCBtb3VudC9zd2Fwb24uYzoyNjYKKyM6IG1vdW50L3N3YXBvbi5jOjQxMSBtb3VudC9zd2Fwb24uYzo1NzAgbW91bnQvc3dhcG9uLmM6NzcyCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTU5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogb3BlbiBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgbWlzc2x5Y2thZGVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiT2dpbHRpZ3QgaW5zdMOkbGx0IHbDpHJkZTogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxkZXZpY2U+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiQW52w6RuZG5pbmc6ICVzIFtmbGFnZ29yXSBlbmhldCAuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkbDtnIgbWVyIGluZm9ybWF0aW9uLCBzZSBzZXRhcmNoKDgpLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjM4NworbXNnaWQgIi0tb2Zmc2V0IGFuZCAtLWFsbCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IGNhbid0IGZpbmQgeW91ciB0dHkncyBuYW1lXG4iCittc2dzdHIgIndyaXRlOiBrYW4gaW50ZSBoaXR0YSBuYW1uZXQgcMOlIGRpbiB0dHlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogZHUgaGFyIGludGUgc2tyaXZyw6R0dGlnaGV0IGFrdGl2ZXJhZC5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIMOkciBpbnRlIGlubG9nZ2FkIHDDpSAlcy5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyBoYXIgbWVkZGVsYW5kZW4gYXZzdMOkbmdkYSBww6UgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICJhbnbDpG5kbmluZzogd3JpdGUgYW52w6RuZGFyZSBbdHR5XVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlOiAlcyDDpHIgaW50ZSBpbmxvZ2dhZFxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGhhciBtZWRkZWxhbmRlbiBhdnN0w6RuZ2RhXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIGxvZ2dlZCBpbiBtb3JlIHRoYW4gb25jZTsgd3JpdGluZyB0byAlc1xuIgorbXNnc3RyICJ3cml0ZTogJXMgw6RyIGxvZ2dhZCBpbiBtZXIgw6RuIGVuIGfDpW5nOyBza3JpdmVyIHRpbGwgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIk1lZGRlbGFuZGUgZnLDpW4gJXNAJXMgKHNvbSAlcykgcMOlICVzIGtsb2NrYW4gJXMgLi4uIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIk1lZGRlbGFuZGUgZnLDpW4gJXNAJXMgcMOlICVzIGtsb2NrYW4gJXMgLi4uIgorCisjOiBtb3VudC9mc3RhYi5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBlcnJvciByZWFkaW5nICVzOiAlcyIKK21zZ3N0ciAidmFybmluZzogZmVsIHZpZCBsw6RzbmluZyBhdiAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTcyIG1vdW50L2ZzdGFiLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICJ2YXJuaW5nOiBrYW4gaW50ZSDDtnBwbmEgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY291bGQgbm90IG9wZW4gJXMgLSB1c2luZyAlcyBpbnN0ZWFkXG4iCittc2dzdHIgIm1vdW50OiBrdW5kZSBpbnRlIMO2cHBuYSAlcyAtIGFudsOkbmRlciAlcyBpc3TDpGxsZXRcbiIKKworIzogbW91bnQvZnN0YWIuYzo1OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgY3JlYXRlIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAia2FuIGludGUgc2thcGEgbMOlc2ZpbGVuICVzOiAlcyAoYW52w6RuZCBmbGFnZ2FuIC1uIGbDtnIgYXR0IMOlc2lkb3PDpHR0YSkiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICJrYW4gaW50ZSBsw6Rua2EgbMOlc2ZpbGVuICVzOiAlcyAoYW52w6RuZCBmbGFnZ2FuIC1uIGbDtnIgYXR0IMOlc2lkb3PDpHR0YSkiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgbMOlc2ZpbGVuICVzOiAlcyAoYW52w6RuZCBmbGFnZ2FuIC1uIGbDtnIgYXR0IMOlc2lkb3PDpHR0YSkiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICJLYW4gaW50ZSBsw6VzYSBsw6VzZmlsZW4gJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAia2FuIGludGUgbMOlc2EgbMOlc2ZpbGVuICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzo2NjMKK21zZ2lkICJ0aW1lZCBvdXQiCittc2dzdHIgImdqb3JkZSB0aW1lLW91dCIKKworIzogbW91bnQvZnN0YWIuYzo2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbGluayAlc1xuIgorIlBlcmhhcHMgdGhlcmUgaXMgYSBzdGFsZSBsb2NrIGZpbGU/XG4iCittc2dzdHIgIiIKKyJLYW4gaW50ZSBza2FwYSBsw6Rua2VuICVzXG4iCisiRGV0IGZpbm5zIGthbnNrZSBlbiBrdmFyZ2zDtm1kIGzDpXNmaWw/XG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgJXMgKCVzKSAtIG10YWIgdXBwZGF0ZXJhZGVzIGludGUiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJmZWwgdmlkIHNrcml2bmluZyBhdiAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODc0CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzXG4iCittc2dzdHIgImZlbCB2aWQgYnl0ZSBhdiByw6R0dGlnaGV0ZXIgcMOlICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iCittc2dzdHIgImZlbCB2aWQgYnl0ZSBhdiByw6R0dGlnaGV0ZXIgcMOlICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg5OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCByZW5hbWUgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgImthbiBpbnRlIGJ5dGEgbmFtbiBww6UgJXMgdGlsbCAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgc2V0IGNhcGFjaXR5IG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDoga2FuIGludGUgZsOlIHRhZyBpIGluZm9ybWF0aW9uIG9tIGVuaGV0ZW4gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBhdnN0w6VuZCAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjM4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIHN0b3JsZWtzZ3LDpG5zICVsbGQiCisKKyM6IG1vdW50L2xvbW91bnQuYzozOTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiAlcyAodHlwZSAlPFBSSXUzMj4pIgorbXNnc3RyICIsIGtyeXB0ZXJpbmcgJXMgKHR5cCAlZCkiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJWQiCittc2dzdHIgIiwgYXZzdMOlbmQgJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiLCBrcnlwdGVyaW5nc3R5cCAlZFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGdldCBpbmZvIG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDoga2FuIGludGUgZsOlIHRhZyBpIGluZm9ybWF0aW9uIG9tIGVuaGV0ZW4gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgb3BlbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IGthbiBpbnRlIMO2cHBuYSBlbmhldGVuICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IC9kZXYgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LiIKK21zZ3N0ciAiJXM6IGFudsOkbmRhcmVuIFwiJXNcIiBmaW5ucyBpbnRlLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiVzOiBpbmdhIHLDpHR0aWdoZXRlciBhdHQgZ3JhbnNrYSAvZGV2L2xvb3AjIgorCisjOiBtb3VudC9sb21vdW50LmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZnJlZSBsb29wIGRldmljZSIKK21zZ3N0ciAiJXM6IGt1bmRlIGludGUgaGl0dGEgbsOlZ29uIGxlZGlnIHNsaW5nZW5oZXQiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlPyAoSWYgc28sIHJlY29tcGlsZSBvciBgbW9kcHJvYmUgbG9vcCcuKSIKK21zZ3N0ciAiIgorIiVzOiBLdW5kZSBpbnRlIGhpdHRhIG7DpWdvbiBzbGluZ2VuaGV0LiBEZW5uYSBrw6RybmEga8Okbm5lciBrYW5za2UgaW50ZVxuIgorIiAgICAgICB0aWxsIHNsaW5nZW5oZXRlbj8gKE9tIGRldCDDpHIgc8OlIGLDtnIgZHUga29tcGlsZXJhIG9tIGVsbGVyXG4iCisiICAgICAgIFwibW9kcHJvYmUgbG9vcFwiKS4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MzYKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGlsZSByZWFkaW5nIHBhc3NwaHJhc2UiCittc2dzdHIgIlNsdXQgcMOlIG1pbm5lIHZpZCB2w6R4YW5kZSBhdiBidWZmZXJ0LlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlcyBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJTZWt0b3IgJWQgw6RyIHJlZGFuIGFsbG9rZXJhZFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njk1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iCittc2dzdHIgIm1vdW50OiAlcyVzIMOkciBza3JpdnNreWRkYWQsIG1vbnRlcmFyIHNvbSBlbmRhc3QgbMOkc2JhciIKKworIzogbW91bnQvbG9tb3VudC5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb2NrIGludG8gbWVtb3J5LCBleGl0aW5nLlxuIgorbXNnc3RyICJLdW5kZSBpbnRlIGzDpXNhIGkgbWlubmUsIGF2c2x1dGFyLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiaW9jdGwgTE9PUF9TRVRfRkQgbWlzc2x5Y2thZGVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVsbHUpOiBseWNrYWRlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IGx5Y2thZGVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZGVsZXRlIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDoga2FuIGludGUgdGEgYm9ydCBlbmhldGVuICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgbW91bnQgd2FzIGNvbXBpbGVkIHdpdGhvdXQgbG9vcCBzdXBwb3J0LiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICJEZW5uYSBtb3VudCBrb21waWxlcmFkZXMgdXRhbiBzdMO2ZCBmw7ZyIHNsaW5nb3IuIER1IGLDtnIga29tcGlsZXJhIG9tLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorImFudsOkbmRuaW5nOlxuIgorIiAgJXMgc2xpbmdlbmhldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdlIGluZm9ybWF0aW9uXG4iCisiICAlcyAtZCBzbGluZ2VuaGV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGEgYm9ydFxuIgorIiAgJXMgLWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGhpdHRhIGxlZGlnXG4iCisiICAlcyBbLWUga3J5cHRlcmluZ10gWy1vIGF2c3TDpW5kXSB7LWZ8c2xpbmdlbmhldH0gZmlsICAjIGtvbmZpZ3VyYXRpb25cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIDx0eXBlPiBlbmFibGUgZGF0YSBlbmNyeXB0aW9uIHdpdGggc3BlY2lmaWVkIDxuYW1lL251bT5cbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbyB8IC0tb2Zmc2V0IDxudW0+ICAgICAgc3RhcnQgYXQgb2Zmc2V0IDxudW0+IGludG8gZmlsZVxuIgorIiAgICAgIC0tc2l6ZWxpbWl0IDxudW0+ICAgbG9vcCBsaW1pdGVkIHRvIG9ubHkgPG51bT4gYnl0ZXMgb2YgdGhlIGZpbGVcbiIKKyIgLXAgfCAtLXBhc3MtZmQgPG51bT4gICAgIHJlYWQgcGFzc3BocmFzZSBmcm9tIGZpbGUgZGVzY3JpcHRvciA8bnVtPlxuIgorIiAtciB8IC0tcmVhZC1vbmx5ICAgICAgICAgc2V0dXAgcmVhZC1vbmx5IGxvb3AgZGV2aWNlXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICBwcmludCBkZXZpY2UgbmFtZSAod2l0aCAtZiA8ZmlsZT4pXG4iCisiIC12IHwgLS12ZXJib3NlICAgICAgICAgICB2ZXJib3NlIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkFudsOkbmRuaW5nOlxuIgorIiAlMSRzIHNsaW5nZW5oZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZ2UgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbGlzdGEgYWxsYSBhbnbDpG5kYVxuIgorIiAlMSRzIC1kIHwgLS1kZXRhY2ggc2xpbmdlbmhldCAgICAgICAgICAgICAgICAgICAgICMgdGEgYm9ydFxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaGl0dGEgb2FudsOkbmRhXG4iCisiICUxJHMgWyBmbGFnZ29yIF0gey1mfC0tZmluZHxzbGluZ2VuaGV0fSBmaWwgICAgICAgIyBrb25maWd1cmVyYVxuIgorIlxuIgorIkZsYWdnb3I6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIDx0eXA+ICBha3RpdmVyYSBkYXRha3J5cHRlcmluZyBtZWQgYW5naXZldCA8bmFtbi9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICBkZW4gaMOkciBoasOkbHBlblxuIgorIiAtbyB8IC0tb2Zmc2V0IDxudW0+ICAgICAgc3RhcnRhIHDDpSBvZmZzZXQgPG51bT4gaSBmaWxlblxuIgorIiAtcCB8IC0tcGFzcy1mZCA8bnVtPiAgICAgbMOkcyBsw7ZzZW5mcmFzIGZyw6VuIGZpbGlkZW50aWZpZXJhcmUgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIGtvbmZpZ3VyZXJhIHNrcml2c2t5ZGRhZCBzbGluZ2VuaGV0XG4iCisiIC1zIHwgLS1zaG93ICAgICAgICAgICAgICBza3JpdiB1dCBlbmhldHNuYW1uIChtZWQgLWYgPGZpbD4pXG4iCisiIC12IHwgLS12ZXJib3NlICAgICAgICAgICBpbmZvcm1hdGl2dCBsw6RnZVxuIgorIlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTAzNCBtb3VudC9sb21vdW50LmM6MTA3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiTG9vcCBkZXZpY2UgaXMgJXNcbiIKK21zZ3N0ciAibG9vcDoga2FuIGludGUgw7ZwcG5hIGVuaGV0ZW4gJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDYxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogc3R1bGVuIGxvb3A9JXMgLi4uZsO2cnPDtmtlciBpZ2VuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBlbmhldGVuIMOkciB1cHB0YWdlbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbG9vcCBzdXBwb3J0IHdhcyBhdmFpbGFibGUgYXQgY29tcGlsZSB0aW1lLiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisiSW5nZXQgc3TDtmQgZsO2ciBzbGluZ29yIGZhbm5zIHRpbGxnw6RuZ2xpZ3QgdmlkIGtvbXBpbGVyaW5nZW4uIER1IGLDtnJcbiIKKyJrb21waWxlcmEgb20uXG4iCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogaW1wcm9wZXJseSBxdW90ZWQgb3B0aW9uIHN0cmluZyAnJXMnIgorbXNnc3RyICJtb3VudDogZmVsYWt0aWd0IGNpdGVyYWQgZmxhZ2dzdHLDpG5nIFwiJXNcIiIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHRyYW5zbGF0ZWQgJXMgJyVzJyB0byAnJXMnXG4iCittc2dzdHIgIm1vdW50OiDDtnZlcnNhdHRlICVzIFwiJXNcIiB0aWxsIFwiJXNcIlxuIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IGVubGlndCBtdGFiIMOkciAlcyByZWRhbiBtb250ZXJhdCBww6UgJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IGVubGlndCBtdGFiIMOkciAlcyBtb250ZXJhdCBww6UgJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzIGZvciB3cml0aW5nOiAlcyIKK21zZ3N0ciAibW91bnQ6IGthbiBpbnRlIMO2cHBuYSAlcyBmw7ZyIHNrcml2bmluZzogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTgxIG1vdW50L21vdW50LmM6MTE5OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3Igd3JpdGluZyAlczogJXMiCittc2dzdHIgIm1vdW50OiBmZWwgdmlkIHNrcml2bmluZyBhdiAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGZlbCB2aWQgYnl0ZSBhdiByw6R0dGlnaGV0ZXIgcMOlICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJtb3VudDoga2FuIGludGUgc3TDpGxsYSBpbiBncnVwcC1pZDogJXMiCisKKyM6IG1vdW50L21vdW50LmM6Njc1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJtb3VudDoga2FuIGludGUgc3TDpGxsYSBpbiBhbnbDpG5kYXItaWQ6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjcxNCBtb3VudC9tb3VudC5jOjE4NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAibW91bnQ6IGthbiBpbnRlIGdyZW5hOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIkbDtnJzw7ZrZXIgbWVkICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIm1vdW50OiBkdSBhbmdhdiBpbmdlbiBmaWxzeXN0ZW1zdHlwIGbDtnIgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgYWxsIHR5cGVzIG1lbnRpb25lZCBpbiAlcyBvciAlc1xuIgorbXNnc3RyICIgICAgICAgSmFnIGtvbW1lciBhdHQgZsO2cnPDtmthIG1lZCBhbGxhIHR5cGVyIG7DpG1uZGEgaSAlcyBlbGxlciAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgYW5kIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyBzd2Fwc3BhY2VcbiIKK21zZ3N0ciAiICAgICAgIG9jaCBkZXQgdmVya2FyIHNvbSBvbSBkZXR0YSDDpHIgdsOkeGxpbmdzdXRyeW1tZVxuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NworIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSB0eXBlICVzXG4iCittc2dzdHIgIiAgICAgICBKYWcga29tbWVyIGF0dCBmw7Zyc8O2a2EgbWVkIHR5cGVuICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiCittc2dzdHIgIiVzIHNlciB1dCBzb20gdsOkeGxpbmdzdXRyeW1tZSAtIG1vbnRlcmFzIGludGUiCisKKyM6IG1vdW50L21vdW50LmM6MTAwMgorbXNnaWQgIm1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW9udGVyaW5nIG1pc3NseWNrYWRlcyIKKworIzogbW91bnQvbW91bnQuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIgorbXNnc3RyICJtb3VudDogZW5kYXN0IHJvb3Qga2FuIG1vbnRlcmEgJXMgcMOlICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzQKK21zZ2lkICJtb3VudDogbG9vcCBkZXZpY2Ugc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICJtb3VudDogc2xpbmdlbmhldGVuIGFuZ2l2ZW4gdHbDpSBnw6VuZ2VyIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzkKK21zZ2lkICJtb3VudDogdHlwZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiB0eXBlbiBhbmdpdmVuIHR2w6UgZ8OlbmdlciIKKworIzogbW91bnQvbW91bnQuYzoxMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBza2lwcGluZyB0aGUgc2V0dXAgb2YgYSBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDogaG9wcGFyIMO2dmVyIGtvbmZpZ3VyYXRpb25lbiBhdiBlbiBzbGluZ2VuaGV0XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICJtb3VudDogZW5saWd0IG10YWIgw6RyICVzIHJlZGFuIG1vbnRlcmF0IHDDpSAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiBrb21tZXIgYXR0IGFudsOkbmRhIHNsaW5nZW5oZXRlbiAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogc3R1bGVuIGxvb3A9JXMgLi4uZsO2cnPDtmtlciBpZ2VuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgIm1vdW50OiBzdHVsZW4gbG9vcD0lcyIKKworIzogbW91bnQvbW91bnQuYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBmYWlsZWQgc2V0dGluZyB1cCBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDogbWlzc2x5Y2thZGVzIGtvbmZpZ3VyZXJhIHNsaW5nZW5oZXRlblxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNldHVwIGxvb3AgZGV2aWNlIHN1Y2Nlc3NmdWxseVxuIgorbXNnc3RyICJtb3VudDogbHlja2FkZXMga29uZmlndXJlcmEgc2xpbmdlbmhldGVuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gJXMgZm91bmQgLSBjcmVhdGluZyBpdC4uXG4iCittc2dzdHIgIm1vdW50OiBpbmdlbiAlcyBoaXR0YWRlcyAtIHNrYXBhciBkZW4uLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGthbiBpbnRlIMO2cHBuYSAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTIxNQorbXNnaWQgIm1vdW50OiBhcmd1bWVudCB0byAtcCBvciAtLXBhc3MtZmQgbXVzdCBiZSBhIG51bWJlciIKK21zZ3N0ciAibW91bnQ6IGFyZ3VtZW50IHRpbGwgLXAgZWxsZXIgLS1wYXNzLWZkIG3DpXN0ZSB2YXJhIGV0dCB0YWwiCisKKyM6IG1vdW50L21vdW50LmM6MTIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG9wZW4gJXMgZm9yIHNldHRpbmcgc3BlZWQiCittc2dzdHIgIm1vdW50OiBrYW4gaW50ZSDDtnBwbmEgJXMgZsO2ciBpbnN0w6RsbG5pbmcgYXYgaGFzdGlnaGV0IgorCisjOiBtb3VudC9tb3VudC5jOjEyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgc3BlZWQ6ICVzIgorbXNnc3RyICJtb3VudDoga2FuIGludGUgc3TDpGxsYSBpbiBoYXN0aWdoZXQ6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IGVubGlndCBtdGFiIMOkciAlcyByZWRhbiBtb250ZXJhdCBww6UgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxMzgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogd2FybmluZzogJXMgc2VlbXMgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlLlxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIMOkciB1cHB0YWdlbiAtIG1vbnRlcmFkZSBvbSBzb20gZW5kYXN0IGzDpHNiYXJcbiIKKworIzogbW91bnQvbW91bnQuYzoxNDEzCittc2dpZCAiIgorIm1vdW50OiBJIGNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGZpbGVzeXN0ZW0gdHlwZSwgYW5kIG5vbmUgd2FzIHNwZWNpZmllZCIKK21zZ3N0ciAibW91bnQ6IEphZyBrdW5kZSBpbnRlIGF2Z8O2cmEgZmlsc3lzdGVtc3R5cGVuLCBvY2ggaW5nZW4gYW5nYXZzIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTYKK21zZ2lkICJtb3VudDogeW91IG11c3Qgc3BlY2lmeSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICJtb3VudDogZHUgbcOlc3RlIGFuZ2UgZmlsc3lzdGVtc3R5cGVuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICJtb3VudDogbW9udGVyaW5nIG1pc3NseWNrYWRlcyIKKworIzogbW91bnQvbW91bnQuYzoxNDI1IG1vdW50L21vdW50LmM6MTQ2MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgbm90IGEgZGlyZWN0b3J5IgorbXNnc3RyICJtb3VudDogbW9udGVyaW5nc3B1bmt0ZW4gJXMgw6RyIGludGUgZW4ga2F0YWxvZyIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJtb3VudDogw6V0a29tc3QgbmVrYXMiCisKKyM6IG1vdW50L21vdW50LmM6MTQyOQorbXNnaWQgIm1vdW50OiBtdXN0IGJlIHN1cGVydXNlciB0byB1c2UgbW91bnQiCittc2dzdHIgIm1vdW50OiBtw6VzdGUgdmFyYSBzdXBlcmFudsOkbmRhcmVuIGbDtnIgYXR0IGFudsOkbmRhIG1vdW50IgorCisjOiBtb3VudC9tb3VudC5jOjE0MzMgbW91bnQvbW91bnQuYzoxNDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgw6RyIHVwcHRhZ2VuIgorCisjOiBtb3VudC9tb3VudC5jOjE0MzkKK21zZ2lkICJtb3VudDogcHJvYyBhbHJlYWR5IG1vdW50ZWQiCittc2dzdHIgIm1vdW50OiBwcm9jIMOkciByZWRhbiBtb250ZXJhZCIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzIMOkciByZWRhbiBtb250ZXJhZCBlbGxlciAlcyDDpHIgdXBwdGFnZW4iCisKKyM6IG1vdW50L21vdW50LmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBtb250ZXJpbmdzcHVua3RlbiAlcyBmaW5ucyBpbnRlIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICJtb3VudDogbW9udGVyaW5nc3B1bmt0ZW4gJXMgw6RyIGVuIHN5bWJvbGlzayBsw6RuayB0aWxsIGluZ2Vuc3RhbnMiCisKKyM6IG1vdW50L21vdW50LmM6MTQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiBzcGVjaWFsZW5oZXRlbiAlcyBmaW5ucyBpbnRlIgorCisjOiBtb3VudC9tb3VudC5jOjE0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdFxuIgorIiAgICAgICAoYSBwYXRoIHByZWZpeCBpcyBub3QgYSBkaXJlY3RvcnkpXG4iCittc2dzdHIgIiIKKyJtb3VudDogc3BlY2lhbGVuaGV0ZW4gJXMgZmlubnMgaW50ZVxuIgorIiAgICAgICAoZXR0IHPDtmt2w6Rnc3ByZWZpeCDDpHIgaW50ZSBlbiBrYXRhbG9nKVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIG5vdCBtb3VudGVkIGFscmVhZHksIG9yIGJhZCBvcHRpb24iCittc2dzdHIgIm1vdW50OiAlcyDDpHIgaW50ZSByZWRhbiBtb250ZXJhZCwgZWxsZXIgZmVsYWt0aWcgZmxhZ2dhIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB3cm9uZyBmcyB0eXBlLCBiYWQgb3B0aW9uLCBiYWQgc3VwZXJibG9jayBvbiAlcyxcbiIKKyIgICAgICAgbWlzc2luZyBjb2RlcGFnZSBvciBoZWxwZXIgcHJvZ3JhbSwgb3Igb3RoZXIgZXJyb3IiCittc2dzdHIgIiIKKyJtb3VudDogZmVsIGZpbHN5c3RlbXN0eXAsIGZlbGFrdGlnIGZsYWdnYSwgZmVsYWt0aWd0IHN1cGVyYmxvY2tcbiIKKyIgICAgICAgcMOlICVzLCBjb2RlcGFnZSBlbGxlciBoasOkbHBwcm9ncmFtIHNha25hcywgZWxsZXIgYW5uYXQgZmVsIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKyIgICAgICAgKGthbiBkZXR0YSB2YXJhIGRlbiBJREUtZW5oZXQgZMOkciBkdSBpIHNqw6RsdmEgdmVya2V0XG4iCisiICAgICAgIGFudsOkbmRlciBpZGUtc2NzaSBzw6UgYXR0IHNyMCBlbGxlciBzZGEgZWxsZXIgbsOlZ290XG4iCisiICAgICAgIGxpa25hbmRlIGJlaMO2dnM/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTAxCittc2dpZCAiIgorIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorIiAgICAgICBpbnN0ZWFkIG9mIHNvbWUgbG9naWNhbCBwYXJ0aXRpb24gaW5zaWRlPykiCittc2dzdHIgIiIKKyIgICAgICAgKGbDtnJzw7ZrZXIgZHUga2Fuc2tlIG1vbnRlcmEgZW4gdXTDtmthZCBwYXJ0aXRpb24sXG4iCisiICAgICAgIGlzdMOkbGxldCBmw7ZyIG7DpWdvbiBsb2dpc2sgcGFydGl0aW9uIGludXRpPykiCisKKyM6IG1vdW50L21vdW50LmM6MTUwOAorbXNnaWQgIiIKKyIgICAgICAgSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBpcyBmb3VuZCBpbiBzeXNsb2cgLSB0cnlcbiIKKyIgICAgICAgZG1lc2cgfCB0YWlsICBvciBzb1xuIgorbXNnc3RyICIiCisiICAgICAgIEkgZW4gZGVsIGZhbGwga2FuIGFudsOkbmRiYXIgaW5mb3JtYXRpb24gaGl0dGFzIGkgc3lzbG9nXG4iCisiICAgICAgIC0gcHJvdmEgZG1lc2cgfCB0YWlsIGVsbGVyIG7DpWdvdCBsaWtuYW5kZVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICJtb250ZXJpbmdzdGFiZWxsZW4gZnVsbCIKKworIzogbW91bnQvbW91bnQuYzoxNTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogY2FuJ3QgcmVhZCBzdXBlcmJsb2NrIgorbXNnc3RyICJtb3VudDogJXM6IGthbiBpbnRlIGzDpHNhIHN1cGVyYmxvY2siCisKKyM6IG1vdW50L21vdW50LmM6MTUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IHVua25vd24gZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXM6IG9rw6RuZCBlbmhldCIKKworIzogbW91bnQvbW91bnQuYzoxNTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB1bmtub3duIGZpbGVzeXN0ZW0gdHlwZSAnJXMnIgorbXNnc3RyICJtb3VudDogb2vDpG5kIGZpbHN5c3RlbXN0eXAgXCIlc1wiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHByb2JhYmx5IHlvdSBtZWFudCAlcyIKK21zZ3N0ciAibW91bnQ6IGR1IG1lbmFkZSB0cm9saWd0dmlzICVzIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDIKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICdpc285NjYwJz8iCittc2dzdHIgIm1vdW50OiBkdSBtZW5hZGUga2Fuc2tlIFwiaXNvOTY2MFwiPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDogZHUgbWVuYWRlIGthbnNrZSBcInZmYXRcIj8iCisKKyM6IG1vdW50L21vdW50LmM6MTU0OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaGFzIHdyb25nIGRldmljZSBudW1iZXIgb3IgZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIgorbXNnc3RyICJtb3VudDogJXMgaGFyIGZlbCBlbmhldHNudW1tZXIgZWxsZXIgc8OlIHN0w7ZkcyBmaWxzeXN0ZW1zdHlwZW4gJXMgaW50ZSIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAibW91bnQ6ICVzIMOkciBpbnRlIGVuIGJsb2NrZW5oZXQsIG9jaCBzdGF0dXN0YWduaW5nIG1pc3NseWNrYXM/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogdGhlIGtlcm5lbCBkb2VzIG5vdCByZWNvZ25pemUgJXMgYXMgYSBibG9jayBkZXZpY2VcbiIKKyIgICAgICAgKG1heWJlIGBtb2Rwcm9iZSBkcml2ZXInPykiCittc2dzdHIgIiIKKyJtb3VudDoga8Okcm5hbiBrw6RubmVyIGludGUgaWdlbiAlcyBzb20gZW4gYmxvY2tlbmhldFxuIgorIiAgICAgICAoa2Fuc2tlIFwiaW5zbW9kIGRyaXZydXRpblwiPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIm1vdW50OiAlcyDDpHIgaW5nZW4gYmxvY2tlbmhldCAoZsO2cnPDtmsga2Fuc2tlIG1lZCBcIi1vIGxvb3BcIj8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIMOkciBpbmdlbiBibG9ja2VuaGV0IgorCisjOiBtb3VudC9tb3VudC5jOjE1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIHZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIMOkciBpbmdlbiBnaWx0aWcgYmxvY2tlbmhldCIKKworIzogbW91bnQvbW91bnQuYzoxNTcyCittc2dpZCAiYmxvY2sgZGV2aWNlICIKK21zZ3N0ciAiYmxvY2tlbmhldCAiCisKKyM6IG1vdW50L21vdW50LmM6MTU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG1vdW50ICVzJXMgcmVhZC1vbmx5IgorbXNnc3RyICJtb3VudDoga2FuIGludGUgbW9udGVyYSAlcyVzIHNvbSBlbmRhc3QgbMOkc2JhciIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICJtb3VudDogJXMlcyDDpHIgc2tyaXZza3lkZGFkIG1lZCBlbiBleHBsaWNpdCBcIi13XCItZmxhZ2dhIGFuZ2F2cyIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIm1vdW50OiBrYW4gaW50ZSBtb250ZXJhICVzJXMgc29tIGVuZGFzdCBsw6RzYmFyIgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiAlcyVzIMOkciBza3JpdnNreWRkYWQsIG1vbnRlcmFyIHNvbSBlbmRhc3QgbMOkc2JhciIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogc3R1bGVuIGxvb3A9JXMgLi4uZsO2cnPDtmtlciBpZ2VuXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIMOkciByZWRhbiBtb250ZXJhZCBww6UgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxNjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogJXMgZG9lcyBub3QgY29udGFpbiBTRUxpbnV4IGxhYmVscy5cbiIKKyIgICAgICAgWW91IGp1c3QgbW91bnRlZCBhbiBmaWxlIHN5c3RlbSB0aGF0IHN1cHBvcnRzIGxhYmVscyB3aGljaCBkb2VzIG5vdFxuIgorIiAgICAgICBjb250YWluIGxhYmVscywgb250byBhbiBTRUxpbnV4IGJveC4gSXQgaXMgbGlrZWx5IHRoYXQgY29uZmluZWRcbiIKKyIgICAgICAgYXBwbGljYXRpb25zIHdpbGwgZ2VuZXJhdGUgQVZDIG1lc3NhZ2VzIGFuZCBub3QgYmUgYWxsb3dlZCBhY2Nlc3MgdG9cbiIKKyIgICAgICAgdGhpcyBmaWxlIHN5c3RlbS4gIEZvciBtb3JlIGRldGFpbHMgc2VlIHJlc3RvcmVjb24oOCkgYW5kIG1vdW50KDgpLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTcxMAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiB0aGUgY29sb25cbiIKK21zZ3N0ciAiIgorIm1vdW50OiBpbmdlbiB0eXAgYW5nYXZzIC0gamFnIGtvbW1lciBhdHQgYW50YSBuZnMgcMOlIGdydW5kIGF2IGtvbG9uZXRcbiIKKworIzogbW91bnQvbW91bnQuYzoxNzE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtIEknbGwgYXNzdW1lIGNpZnMgYmVjYXVzZSBvZiB0aGUgLy8gcHJlZml4XG4iCittc2dzdHIgIiIKKyJtb3VudDogaW5nZW4gdHlwIGFuZ2F2cyAtIGphZyBrb21tZXIgYXR0IGFudGEgY2lmcyBww6UgZ3J1bmQgLy8tcHJlZml4ZXRcbiIKKworIzogbW91bnQvbW91bnQuYzoxODExCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6ICVzIMOkciByZWRhbiBtb250ZXJhZCBww6UgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzoxOTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogcHJpbnQgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBwcmludCB0aGlzIGhlbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdCBtb3VudGVkIGZpbGVzeXN0ZW1zXG4iCisiICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1ZGluZyB2b2x1bWUgbGFiZWxzXG4iCisiU28gZmFyIHRoZSBpbmZvcm1hdGlvbmFsIHBhcnQuIE5leHQgdGhlIG1vdW50aW5nLlxuIgorIlRoZSBjb21tYW5kIGlzIGBtb3VudCBbLXQgZnN0eXBlXSBzb21ldGhpbmcgc29tZXdoZXJlJy5cbiIKKyJEZXRhaWxzIGZvdW5kIGluIC9ldGMvZnN0YWIgbWF5IGJlIG9taXR0ZWQuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IG1vdW50IGFsbCBzdHVmZiBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgIDogbW91bnQgZGV2aWNlIGF0IHRoZSBrbm93biBwbGFjZVxuIgorIiAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICAgOiBtb3VudCBrbm93biBkZXZpY2UgaGVyZVxuIgorIiAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICAgOiBvcmRpbmFyeSBtb3VudCBjb21tYW5kXG4iCisiTm90ZSB0aGF0IG9uZSBkb2VzIG5vdCByZWFsbHkgbW91bnQgYSBkZXZpY2UsIG9uZSBtb3VudHNcbiIKKyJhIGZpbGVzeXN0ZW0gKG9mIHRoZSBnaXZlbiB0eXBlKSBmb3VuZCBvbiB0aGUgZGV2aWNlLlxuIgorIk9uZSBjYW4gYWxzbyBtb3VudCBhbiBhbHJlYWR5IHZpc2libGUgZGlyZWN0b3J5IHRyZWUgZWxzZXdoZXJlOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIm9yIG1vdmUgYSBzdWJ0cmVlOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgb2xkZGlyIG5ld2RpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIG1vdW50IGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBkaXJcbiIKKyJBIGRldmljZSBjYW4gYmUgZ2l2ZW4gYnkgbmFtZSwgc2F5IC9kZXYvaGRhMSBvciAvZGV2L2Nkcm9tLFxuIgorIm9yIGJ5IGxhYmVsLCB1c2luZyAgLUwgbGFiZWwgIG9yIGJ5IHV1aWQsIHVzaW5nICAtVSB1dWlkIC5cbiIKKyJPdGhlciBvcHRpb25zOiBbLW5mRnJzdnddIFstbyBvcHRpb25zXSBbLXAgcGFzc3dkZmRdLlxuIgorIkZvciBtYW55IG1vcmUgZGV0YWlscywgc2F5ICBtYW4gOCBtb3VudCAuXG4iCittc2dzdHIgIiIKKyJBbnbDpG5kbmluZzogbW91bnQgLVYgICAgICAgICAgICAgICAgICA6IHZpc2EgdmVyc2lvblxuIgorIiAgICAgICAgICAgIG1vdW50IC1oICAgICAgICAgICAgICAgICAgOiB2aXNhIGRlbm5hIGhqw6RscHRleHRcbiIKKyIgICAgICAgICAgICBtb3VudCAgICAgICAgICAgICAgICAgICAgIDogdmlzYSBtb250ZXJhZGUgZmlsc3lzdGVtXG4iCisiICAgICAgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgICA6IHNhbW1hLCBpbmtsdXNpdmUgdm9seW1ldGlrZXR0ZXJcbiIKKyJEZXQgdmFyIGRlbiBpbmZvcm1hdGl2YSBkZWxlbi4gTnUga29tbWVyIHZpIHRpbGwgbW9udGVyaW5nLlxuIgorIktvbW1hbmRvdCDDpHIgXCJtb3VudCBbLXQgZmlsc3lzdGVtc3R5cF0gbsOlZ29udGluZyBow6RyXCIuXG4iCisiRGV0YWxqZXIgc29tIGthbiBoaXR0YXMgaSAvZXRjL2ZzdGFiIGthbiB1dGVsw6RtbmFzLlxuIgorIiAgICAgICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICAgOiBtb250ZXJhIGFsbHQgaSAvZXRjL2ZzdGFiXG4iCisiICAgICAgICAgICAgbW91bnQgZW5oZXQgICAgICAgICAgICAgICA6IG1vbnRlcmEgZW5oZXQgcMOlIGRlbiBrw6RuZGEgcGxhdHNlblxuIgorIiAgICAgICAgICAgIG1vdW50IGthdGFsb2cgICAgICAgICAgICAgOiBtb250ZXJhIGvDpG5kIGVuaGV0IGjDpHJcbiIKKyIgICAgICAgICAgICBtb3VudCAtdCB0eXAgZW5oZXQga2F0ICAgIDogdmFubGlndCBtb250ZXJpbmdza29tbWFuZG9cbiIKKyJPYnNlcnZlcmEgYXR0IG1hbiBlZ2VudGxpZ2VuIGludGUgbW9udGVyYXIgZW4gZW5oZXQsIHV0YW4gZXR0XG4iCisiZmlsc3lzdGVtIChhdiBhbmdpdmVuIHR5cCkgc29tIGZpbm5zIHDDpSBlbmhldGVuLlxuIgorIk1hbiBrYW4gb2Nrc8OlIG1vbnRlcmEgZXR0IHJlZGFuIHN5bmxpZ3Qga2F0YWxvZ3Ryw6RkIG7DpWdvbiBhbm5hbnN0YW5zOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgZ2FtbWFsa2F0YWxvZyBueWthdGFsb2dcbiIKKyJlbGxlciBmbHl0dGEgZXR0IHVuZGVydHLDpGQ6XG4iCisiICAgICAgIG1vdW50IC0tbW92ZSBnYW1tYWxrYXRhbG9nIG55a2F0YWxvZ1xuIgorIk1hbiBrYW4gw6RuZHJhIG1vbnRlcmluZ3N0eXBlbiBzb20gaW5uZWjDpWxsZXIga2F0YWxvZ2VuIFwia2F0YWxvZ1wiOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGthdGFsb2dcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIGthdGFsb2dcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUga2F0YWxvZ1xuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBrYXRhbG9nXG4iCisiTWFuIGthbiDDpG5kcmEgdHlwZW4gZsO2ciBhbGxhIG1vbnRlcmluZ2FybmEgaSBldHQgbW9udGVyaW5nc3VuZGVydHLDpGRcbiIKKyJzb20gaW5uZWjDpWxsZXIga2F0YWxvZ2VuIFwia2F0YWxvZ1wiOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBrYXRhbG9nXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2xhdmUga2F0YWxvZ1xuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUga2F0YWxvZ1xuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUga2F0YWxvZ1xuIgorIkVuIGVuaGV0IGthbiBhbmdlcyBtZWQgbmFtbiwgZXhlbXBlbHZpcyAvZGV2L2hkYTEgZWxsZXIgL2Rldi9jZHJvbSxcbiIKKyJlbGxlciBtZWQgZXRpa2V0dCwgZ2Vub20gYXR0IGFudsOkbmRhICAtTCBldGlrZXR0ICBlbGxlciBtZWQgdXVpZCxcbiIKKyJnZW5vbSBhdHQgYW52w6RuZGEgIC1VIHV1aWQuXG4iCisiQW5kcmEgZmxhZ2dvcjogWy1uZkZyc3Z3XSBbLW8gZmxhZ2dvcl0gWy1wIGzDtnNlbm9yZGZkXS5cbiIKKyJBbmdlICBtYW4gOCBtb3VudCAgZsO2ciB5dHRlcmxpZ2FyZSBkZXRhbGplci5cbiIKKworIzogbW91bnQvbW91bnQuYzoyMjc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IChlZmZlY3RpdmUgVUlEIGlzICVkKSIKK21zZ3N0ciAibW91bnQ6IGVuZGFzdCByb290IGthbiBnw7ZyYSBkZXQiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIm1vdW50OiBlbmRhc3Qgcm9vdCBrYW4gZ8O2cmEgZGV0IgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJpbmdlbnRpbmcgbW9udGVyYWRlcyIKKworIzogbW91bnQvbW91bnQuYzoyMzA2IG1vdW50L21vdW50LmM6MjMzMgorbXNnaWQgIm1vdW50OiBubyBzdWNoIHBhcnRpdGlvbiBmb3VuZCIKK21zZ3N0ciAibW91bnQ6IGluZ2VuIHPDpWRhbiBwYXJ0aXRpb24gaGl0dGFkZXMiCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6IGthbiBpbnRlIGhpdHRhICVzIGkgJXMgZWxsZXIgJXMiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogd2FybmluZzogbm8gZmluYWwgbmV3bGluZSBhdCB0aGUgZW5kIG9mICVzXG4iCittc2dzdHIgIlttbnRlbnRdOiB2YXJuaW5nOiBpbmdlbiBhdnNsdXRhbmRlIG55cmFkIHDDpSBzbHV0ZXQgYXYgJXNcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiBsaW5lICVkIGluICVzIGlzIGJhZCVzXG4iCittc2dzdHIgIlttbnRlbnRdOiByYWQgJWQgaSAlcyDDpHIgZmVsYWt0aWclc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTkKK21zZ2lkICI7IHJlc3Qgb2YgZmlsZSBpZ25vcmVkIgorbXNnc3RyICI7IHJlc3RlbiBhdiBmaWxlbiBpZ25vcmVyYXMiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAicHJvZ3JhbWZlbCBpIHhzdHJuZHVwLWFucm9wIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgImludGUgdGlsbHLDpGNrbGlndCBtZWQgbWlubmUiCisKKyM6IG1vdW50L3N3YXBvbi5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgPHNwZWNpYWw+IHBhcmFtZXRlcjpcbiIKKyIgey1MIGxhYmVsIHwgTEFCRUw9bGFiZWx9ICAgICAgICAgICAgIExBQkVMIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIHstVSB1dWlkICB8IFVVSUQ9dXVpZH0gICAgICAgICAgICAgICBVVUlEIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxkZXZpY2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGRldmljZSB0byBiZSB1c2VkXG4iCisiIDxmaWxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGZpbGUgdG8gYmUgdXNlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLWVdIFstdl0gWy1mXSAgICAgICAgICAgICBlbmFibGUgYWxsIHN3YXBzIGZyb20gL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCBwcmlvcml0eV0gWy12XSBbLWZdIDxzcGVjaWFsPiAgZW5hYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHN3YXAgdXNhZ2Ugc3VtbWFyeVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjEwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy12XSAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFsbCBzd2Fwc1xuIgorIiAlMSRzIFstdl0gPHNwZWNpYWw+ICAgICAgICAgICAgICAgZGlzYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiVzOiBPdsOkbnRhdCBmaWxzbHV0IGkgJXMtZmlsXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIyMworIywgZnV6enkKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAiZ3JlbmluZyBtaXNzbHlja2FkZXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjM5CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2IGZhaWxlZCIKK21zZ3N0ciAia8O2cm5pbmcgbWlzc2x5Y2thZGVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI0NworIywgZnV6enkKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgbWlzc2x5Y2thZGVzIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsc2VlayBmYWlsZWQiCittc2dzdHIgInPDtmtuaW5nIG1pc3NseWNrYWRlcyIKKworIzogbW91bnQvc3dhcG9uLmM6Mjc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIKK21zZ3N0ciAiw5ZwcG5pbmcgYXYgJXMgbWlzc2x5Y2thZGVzIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvdW5kIHN3YXAgc2lnbmF0dXJlOiB2ZXJzaW9uICVkLCBwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5Cittc2dpZCAiZGlmZmVyZW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorIywgZnV6enkKK21zZ2lkICJzYW1lIgorbXNnc3RyICJOYW1uIgorCisjOiBtb3VudC9zd2Fwb24uYzozODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzdGF0IGZhaWxlZCIKK21zZ3N0ciAiJXMgbWlzc2x5Y2thZGVzLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzozOTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgIiVzOiB2YXJuaW5nOiAlcyBoYXIgb3PDpGtyYSByw6R0dGlnaGV0ZXIgJTA0bywgZsO2cmVzbMOlciAlMDRvXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQwMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIC0gaXQgYXBwZWFycyB0byBoYXZlIGhvbGVzLiIKK21zZ3N0ciAiJXM6IEhvcHBhciDDtnZlciBmaWxlbiAlcyAtIGRlbiB2ZXJrYXIgaW5uZWjDpWxsYSBow6VsLlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBnZXQgc2l6ZSBmYWlsZWQiCittc2dzdHIgInPDtmtuaW5nIG1pc3NseWNrYWRlcyIKKworIzogbW91bnQvc3dhcG9uLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIHN3YXAgaGVhZGVyIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxhc3RfcGFnZSAweCUwOGxseCBpcyBsYXJnZXIgdGhhbiBhY3R1YWwgc2l6ZSBvZiBzd2Fwc3BhY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIChVc2UgLS1maXhwZ3N6IHRvIHJlaW5pdGlhbGl6ZSBpdC4pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc29mdHdhcmUgc3VzcGVuZCBkYXRhIGRldGVjdGVkLiBSZXdyaXRpbmcgdGhlIHN3YXAgc2lnbmF0dXJlLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NzggbW91bnQvc3dhcG9uLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIG9uICVzXG4iCittc2dzdHIgIiVzIHDDpSAlc1xuIgorCisjOiBtb3VudC9zd2Fwb24uYzo1MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb24gZmFpbGVkIgorbXNnc3RyICIlcyBtaXNzbHlja2FkZXMuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzOiBrYW4gaW50ZSBoaXR0YSBlbmhldGVuIGbDtnIgJXNcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQwCisjLCBmdXp6eQorbXNnaWQgIk5vdCBzdXBlcnVzZXIuIgorbXNnc3RyICJJbnRlIHN1cGVyYW52w6RuZGFyZS5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgIiVzIG1pc3NseWNrYWRlcy5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgdW5zdXBwb3J0ZWQgcHJvZ3JhbSBuYW1lIChtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciAtZlxuIgorbXNnc3RyICJ1bW91bnQ6IGtvbXBpbGVyYWQgdXRhbiBzdMO2ZCBmw7ZyIC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJ1bW91bnQ6IGthbiBpbnRlIHN0w6RsbGEgaW4gZ3J1cHAtaWQ6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJ1bW91bnQ6IGthbiBpbnRlIHN0w6RsbGEgaW4gYW52w6RuZGFyLWlkOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJ1bW91bnQ6IGthbiBpbnRlIGdyZW5hOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTYwCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGludmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBvZ2lsdGlnIGJsb2NrZW5oZXQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIKK21zZ3N0ciAidW1vdW50OiAlczogaW50ZSBtb250ZXJhZCIKKworIzogbW91bnQvdW1vdW50LmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGNhbid0IHdyaXRlIHN1cGVyYmxvY2siCittc2dzdHIgInVtb3VudDogJXM6IGthbiBpbnRlIHNrcml2YSBzdXBlcmJsb2NrIgorCisjOiBtb3VudC91bW91bnQuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVtb3VudDogJXM6IGRldmljZSBpcyBidXN5LlxuIgorIiAgICAgICAgKEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gYWJvdXQgcHJvY2Vzc2VzIHRoYXQgdXNlXG4iCisiICAgICAgICAgdGhlIGRldmljZSBpcyBmb3VuZCBieSBsc29mKDgpIG9yIGZ1c2VyKDEpKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IGZvdW5kIgorbXNnc3RyICJ1bW91bnQ6ICVzIGhpdHRhZGVzIGludGUiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBtdXN0IGJlIHN1cGVydXNlciB0byB1bW91bnQiCittc2dzdHIgInVtb3VudDogJXM6IG3DpXN0ZSB2YXJhIHN1cGVyYW52w6RuZGFyZSBmw7ZyIGF0dCBhdm1vbnRlcmEiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgInVtb3VudDogJXM6IGJsb2NrZW5oZXRlciDDpHIgaW50ZSB0aWxsw6V0bmEgcMOlIGZpbHN5c3RlbSIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHVtb3VudDIsIHRyeWluZyB1bW91bnQuLi5cbiIKK21zZ3N0ciAiaW5nZW4gdW1vdW50MiwgZsO2cnPDtmtlciBtZWQgdW1vdW50Li4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogJXMgw6RyIHVwcHRhZ2VuIC0gbW9udGVyYWRlIG9tIHNvbSBlbmRhc3QgbMOkc2JhclxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb3VsZCBub3QgcmVtb3VudCAlcyByZWFkLW9ubHlcbiIKK21zZ3N0ciAidW1vdW50OiBrdW5kZSBpbnRlIG1vbnRlcmEgb20gJXMgc29tIGVuZGFzdCBsw6RzYmFyXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1bW91bnRlZFxuIgorbXNnc3RyICIlcyBhdm1vbnRlcmFkXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjM2NworbXNnaWQgInVtb3VudDogY2Fubm90IGZpbmQgbGlzdCBvZiBmaWxlc3lzdGVtcyB0byB1bm1vdW50IgorbXNnc3RyICJ1bW91bnQ6IGthbiBpbnRlIGhpdHRhIGxpc3RhIG1lZCBmaWxzeXN0ZW0gYXR0IGF2bW9udGVyYSIKKworIzogbW91bnQvdW1vdW50LmM6Mzk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisiQW52w6RuZG5pbmc6IHVtb3VudCBbLWhWXVxuIgorIiAgICAgICAgICAgIHVtb3VudCAtYSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnMtdHlwZXJdIFstTyBhbHRlcm5hdGl2XVxuIgorIiAgICAgICAgICAgIHVtb3VudCBbLWZdIFstcl0gWy1uXSBbLXZdIHNwZWNpYWwgfCBub2QuLi5cbiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIlNla3RvciAlZCDDpHIgcmVkYW4gYWxsb2tlcmFkXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiU2VrdG9yICVkIMOkciByZWRhbiBhbGxva2VyYWRcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDg3Cittc2dpZCAiQ2Fubm90IHVtb3VudCBcIlwiXG4iCittc2dzdHIgIkthbiBpbnRlIGF2bW9udGVyYSBcIlwiXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIkbDtnJzw7ZrZXIgYXZtb250ZXJhICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAiS3VuZGUgaW50ZSBoaXR0YSAlcyBpIG10YWJcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IG1vdW50ZWQgKGFjY29yZGluZyB0byBtdGFiKSIKK21zZ3N0ciAidW1vdW50OiAlcyDDpHIgaW50ZSBtb250ZXJhZCAoZW5saWd0IG10YWIpIgorCisjOiBtb3VudC91bW91bnQuYzo1NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBpdCBzZWVtcyAlcyBpcyBtb3VudGVkIG11bHRpcGxlIHRpbWVzIgorbXNnc3RyICJ1bW91bnQ6IGRldCB2ZXJrYXIgc29tIG9tICVzIMOkciBtb250ZXJhZCBmbGVyYSBnw6VuZ2VyIgorCisjOiBtb3VudC91bW91bnQuYzo1NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgaW4gdGhlIGZzdGFiIChhbmQgeW91IGFyZSBub3Qgcm9vdCkiCittc2dzdHIgInVtb3VudDogJXMgw6RyIGludGUgaSBmc3RhYiAob2NoIGR1IMOkciBpbnRlIHJvb3QpIgorCisjOiBtb3VudC91bW91bnQuYzo1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBtb3VudCBkaXNhZ3JlZXMgd2l0aCB0aGUgZnN0YWIiCittc2dzdHIgInVtb3VudDogbW9udGVyaW5nIGF2ICVzIHN0w6RtbWVyIGludGUgw7Z2ZXJlbnMgbWVkIGZzdGFiIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBvbmx5ICVzIGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCittc2dzdHIgInVtb3VudDogZW5kYXN0ICVzIGthbiBhdm1vbnRlcmEgJXMgZnLDpW4gJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjcwMQorbXNnaWQgInVtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICJ1bW91bnQ6IGVuZGFzdCByb290IGthbiBnw7ZyYSBkZXQiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MuXG4iCisiXG4iCisiU2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIkdldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiXG4iCisiU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX1JSIChkZWZhdWx0KVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgb3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHNob3cgbWluIGFuZCBtYXggdmFsaWQgcHJpb3JpdGllc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKyIgIC1WIHwgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJNaXNzbHlja2FkZXMgbWVkIGF0dCBzdMOkbGxhIGluIHBlcnNvbmxpZ2hldCB0aWxsICVzIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHBvbGljeTogIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjEwOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5rbm93blxuIgorbXNnc3RyICJva8OkbmQiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIGF0dHJpYnV0ZXMiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTE1CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcHJpb3JpdHk6ICVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG1pbi9tYXggcHJpb3JpdHlcdDogJWQvJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIk5GUyDDtnZlciBUQ1Agc3TDtmRzIGludGUuXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICIlczogbWlzc2x5Y2thZGVzIG1lZCBhdHQgw7ZwcG5hOiAlc1xuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMjUKKyMsIGZ1enp5Cittc2dpZCAiY3VycmVudCIKK21zZ3N0ciAibnLDpGtuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzMKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHByaW9yaXR5IgorbXNnc3RyICJNaXNzbHlja2FkZXMgbWVkIGF0dCBzdMOkbGxhIGluIHBlcnNvbmxpZ2hldCB0aWxsICVzIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJNaXNzbHlja2FkZXMgbWVkIGF0dCBzdMOkbGxhIGluIHBlcnNvbmxpZ2hldCB0aWxsICVzIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyNDIKKyMsIGZ1enp5Cittc2dpZCAibmV3IgorbXNnc3RyICJOeSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSBtaXNzbHlja2FkZXMgbWVkIGF0dCBsw6RzYSB0aWQgZnLDpW4gJXMiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NTcKKyMsIGZ1enp5Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgbWlzc2x5Y2thZGVzXG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NzUKKyMsIGZ1enp5Cittc2dpZCAiaW9wcmlvX3NldCBmYWlsZWQiCittc2dzdHIgIm9wZW5wdHkgbWlzc2x5Y2thZGVzXG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImlvbmljZSAtIHNldHMgb3IgZ2V0cyBwcm9jZXNzIGlvIHNjaGVkdWxpbmcgY2xhc3MgYW5kIHByaW9yaXR5LlxuIgorIlxuIgorIlVzYWdlOlxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIC1wIDxwaWQ+IFs8cGlkPiAuLi5dXG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gPGNvbW1hbmQ+IFs8YXJnPiAuLi5dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1uIDxjbGFzc2RhdGE+ICAgICAgY2xhc3MgZGF0YSAoMC03LCBsb3dlciBiZWluZyBoaWdoZXIgcHJpbylcbiIKKyIgIC1jIDxjbGFzcz4gICAgICAgICAgc2NoZWR1bGluZyBjbGFzc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAwOiBub25lLCAxOiByZWFsdGltZSwgMjogYmVzdC1lZmZvcnQsIDM6IGlkbGVcbiIKKyIgIC10ICAgICAgICAgICAgICAgICAgaWdub3JlIGZhaWx1cmVzXG4iCisiICAtaCAgICAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEwIHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcGFyc2UgbnVtYmVyICclcyciCittc2dzdHIgImthbiBpbnRlIMO2cHBuYSAlcyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTEKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBub25lIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTU5Cittc2dpZCAiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3IgaWRsZSBjbGFzcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcHJpbyBjbGFzcyAlZCIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE4NworIywgZnV6enkKK21zZ2lkICJleGVjdnAgZmFpbGVkIgorbXNnc3RyICJrw7ZybmluZyBtaXNzbHlja2FkZXNcbiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzoyNworIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBiZSByb290IHRvIHNldCB0aGUgQ3RybC1BbHQtRGVsIGJlaGF2aW91ci5cbiIKK21zZ3N0ciAiRHUgbcOlc3RlIHZhcmEgcm9vdCBmw7ZyIGF0dCBrdW5uYSBzdMOkbGxhIGluIEN0cmwtQWx0LURlbC1iZXRlZW5kZXQuXG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIkFudsOkbmRuaW5nOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzIGluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkZpbCAlcywgZsO2ciB0csO2c2tlbHbDpHJkZSAlbHUsIHN0w7Zyc3RhIGFudGFsZXQgdGVja2VuIGkgZmlmb24gdmFyICVkLFxuIgorIm9jaCBkZW4gbWF4aW1hbGEgw7Z2ZXJmw7ZyaW5nc2hhc3RpZ2hldGVuIGkgdGVja2VuL3Nla3VuZCB2YXIgJWZcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorIkZpbCAlcywgZsO2ciB0csO2c2tlbHbDpHJkZSAlbHUgb2NoIHRpbWVvdXR2w6RyZGV0ICVsdSwgc3TDtnJzdGEgYW50YWxldCB0ZWNrZW4gaSAiCisiZmlmb24gdmFyICVkLFxuIgorIm9jaCBkZW4gbWF4aW1hbGEgw7Z2ZXJmw7ZyaW5nc2hhc3RpZ2hldGVuIGkgdGVja2VuL3Nla3VuZCB2YXIgJWZcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGludGVydmFsIHZhbHVlOiAlc1xuIgorbXNnc3RyICJPZ2lsdGlndCBpbnRlcnZhbGx2w6RyZGU6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdmFsdWU6ICVzXG4iCittc2dzdHIgIk9naWx0aWd0IGluc3TDpGxsdCB2w6RyZGU6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJPZ2lsdGlndCBzdGFuZGFyZHbDpHJkZTogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJPZ2lsdGlndCBpbnN0w6RsbHQgdGlkc3bDpHJkZTogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiT2dpbHRpZ3Qgc3RhbmRhcmR0aWRzdsOkcmRlOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pICIKKyJbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCittc2dzdHIgIiIKKyJBbnbDpG5kbmluZzogJXMgWy1xIFstaSBpbnRlcnZhbGxdXSAoWy1zIHbDpHJkZV18Wy1TIHbDpHJkZV0pIChbLXQgdsOkcmRlXXxbLVQgIgorInbDpHJkZV0pIFstZ3wtR10gZmlsIFtmaWwuLi5dXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTAgc3lzLXV0aWxzL2N5dHVuZS5jOjI2OSBzeXMtdXRpbHMvY3l0dW5lLmM6Mjg5CisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIkthbiBpbnRlIMO2cHBuYSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICJLYW4gaW50ZSBzdMOkbGxhIGluICVzIHRpbGwgdHLDtnNrZWx2w6RyZGUgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRpbWUgdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICJLYW4gaW50ZSBzdMOkbGxhIGluICVzIHRpbGwgdGlkc3Ryw7Zza2VsdsOkcmRlICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjk0IHN5cy11dGlscy9jeXR1bmUuYzozNTEgc3lzLXV0aWxzL2N5dHVuZS5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGhyZXNob2xkIGZvciAlczogJXNcbiIKK21zZ3N0ciAiS2FuIGludGUgZsOlIHRyw7Zza2VsdsOkcmRlIGbDtnIgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiS2FuIGludGUgZsOlIHRpbWUtb3V0IGbDtnIgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIGFrdHVlbGwgdHLDtnNrZWwgb2NoICVsZCBha3R1ZWxsIHRpbWUtb3V0XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIHN0YW5kYXJkdHLDtnNrZWwgb2NoICVsZCBzdGFuZGFyZHRpbWVvdXRcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMyNworbXNnaWQgIkNhbid0IHNldCBzaWduYWwgaGFuZGxlciIKK21zZ3N0ciAiS2FuIGludGUgc3TDpGxsYSBpbiBzaWduYWxoYW50ZXJhcmUiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzEgc3lzLXV0aWxzL2N5dHVuZS5jOjM2NgorbXNnaWQgImdldHRpbWVvZmRheSBmYWlsZWQiCittc2dzdHIgImdldHRpbWVvZmRheSBtaXNzbHlja2FkZXMiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozNDQgc3lzLXV0aWxzL2N5dHVuZS5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBpc3N1ZSBDWUdFVE1PTiBvbiAlczogJXNcbiIKK21zZ3N0ciAiS2FuIGludGUgdXRseXNhIENZR0VUTU9OIHDDpSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorIiVzOiAlbHUgYXZicm90dCwgJWx1LyVsdSB0ZWNrZW47IGZpZm86ICVsdSB0csO2c2tlbCwgJWx1IHRpbWUtb3V0LCAlbHUgbWF4LCAlIgorImx1IG51XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgYXZicm90dC9zOyAlZiBtb3R0LiwgJWYgc2tpY2thdCAodGVja2VuL3MpXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorIiVzOiAlbHUgYXZicm90dCwgJWx1IHRlY2tlbjsgZmlmbzogJWx1IHRyw7Zza2VsLCAlbHUgdGltZS1vdXQsICVsdSBtYXgsICVsdSAiCisibnVcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiBhdmJyb3R0L3NlazsgJWYgbW90dC4gKHRlY2tlbi9zKVxuIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJBbnbDpG5kbmluZzogJXMgWy1jXSBbLW4gbml2w6VdIFstcyBidWZmZXJ0c3Rvcmxla11cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZmlsZW5hbWU+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiQW52w6RuZG5pbmc6ICVzIFtmbGFnZ29yXSBlbmhldCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkbDtnIgbWVyIGluZm9ybWF0aW9uLCBzZSBzZXRhcmNoKDgpLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3CisjLCBmdXp6eQorbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgIkludGUgdGlsbHLDpGNrbGlndCBtw6VuZ2EgYXJndW1lbnQiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDkKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBsZW5ndGggdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJPZ2lsdGlndCBpbnN0w6RsbHQgdsOkcmRlOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgb2Zmc2V0IHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiT2dpbHRpZ3QgaW5zdMOkbGx0IHbDpHJkZTogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MworIywgZnV6enkKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICJJbmdlbiAtLWRhdGUtZmxhZ2dhIGFuZ2F2cy5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3MworbXNnaWQgImtlZXAgc2l6ZSBtb2RlICgtbiBvcHRpb24pIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWxsb2NhdGUgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IG1pc3NseWNrYWRlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzo2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICUxJHMgWy1zeHVuXVstdyAjXSBmZCNcbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGZpbGUgWy1jXSBjb21tYW5kLi4uXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBkaXJlY3RvcnkgWy1jXSBjb21tYW5kLi4uXG4iCisiICAtcyAgLS1zaGFyZWQgICAgIEdldCBhIHNoYXJlZCBsb2NrXG4iCisiICAteCAgLS1leGNsdXNpdmUgIEdldCBhbiBleGNsdXNpdmUgbG9ja1xuIgorIiAgLXUgIC0tdW5sb2NrICAgICBSZW1vdmUgYSBsb2NrXG4iCisiICAtbiAgLS1ub25ibG9jayAgIEZhaWwgcmF0aGVyIHRoYW4gd2FpdFxuIgorIiAgLXcgIC0tdGltZW91dCAgICBXYWl0IGZvciBhIGxpbWl0ZWQgYW1vdW50IG9mIHRpbWVcbiIKKyIgIC1vICAtLWNsb3NlICAgICAgQ2xvc2UgZmlsZSBkZXNjcmlwdG9yIGJlZm9yZSBydW5uaW5nIGNvbW1hbmRcbiIKKyIgIC1jICAtLWNvbW1hbmQgICAgUnVuIGEgc2luZ2xlIGNvbW1hbmQgc3RyaW5nIHRocm91Z2ggdGhlIHNoZWxsXG4iCisiICAtaCAgLS1oZWxwICAgICAgIERpc3BsYXkgdGhpcyB0ZXh0XG4iCisiICAtViAgLS12ZXJzaW9uICAgIERpc3BsYXkgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjE5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGNvbW1hbmQgYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMga3LDpHZlciBldHQgYXJndW1lbnRcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjE5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICIlczoga2FuIGludGUgw7ZwcG5hICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIlczogZmVsYWt0aWd0IHbDpHJkZVxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlcXVpcmVzIGZpbGUgZGVzY3JpcHRvciwgZmlsZSBvciBkaXJlY3RvcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3JrIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiZ3JlbmluZyBtaXNzbHlja2FkZXNcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdXG4iCisiXG4iCittc2dzdHIgIkFudsOkbmRuaW5nOiAlcyBbZmxhZ2dvcl0gZW5oZXQgLi4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1NIDxzaXplPiAgICAgY3JlYXRlIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBvZiBzaXplIDxzaXplPlxuIgorIiAgLVMgPG5zZW1zPiAgICBjcmVhdGUgc2VtYXBob3JlIGFycmF5IHdpdGggPG5zZW1zPiBlbGVtZW50c1xuIgorIiAgLVEgICAgICAgICAgICBjcmVhdGUgbWVzc2FnZSBxdWV1ZVxuIgorIiAgLXAgPG1vZGU+ICAgICBwZXJtaXNzaW9uIGZvciB0aGUgcmVzb3VyY2UgKGRlZmF1bHQgaXMgMDY0NClcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkbDtnIgbWVyIGluZm9ybWF0aW9uLCBzZSBzZXRhcmNoKDgpLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDIKK21zZ2lkICJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEZWxhdCBtaW5uZXNzZWdtZW50IHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MAorbXNnaWQgImNyZWF0ZSBtZXNzYWdlIHF1ZXVlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJNZWRkZWxhbmRla8O2IG1lZGRrw7ZpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTgKKyMsIGZ1enp5Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgImFsbG9rZXJhZGUgc2VtYWZvcmVyID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZW1hcGhvcmUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJTZW1hZm9ydmVrdG9yIHNlbWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjY0CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWQ6ICVzXG4iCittc2dzdHIgIm9naWx0aWd0IGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAia2FuIGludGUgdGEgYm9ydCBpZCAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgImRlcHJlY2F0ZWQgdXNhZ2U6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorbXNnc3RyICJmw7Zyw6VsZHJhZCBhbnbDpG5kbmluZzogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duIHJlc291cmNlIHR5cGU6ICVzXG4iCittc2dzdHIgIm9rw6RuZCB0eXAgYXYgcmVzdXJzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzb3VyY2UocykgZGVsZXRlZFxuIgorbXNnc3RyICJyZXN1cnNlciBib3J0dGFnbmFcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisiYW52w6RuZG5pbmc6ICVzIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiIKKyIgICAgICAgICAgICAgICBbLVEgbXNnbnlja2VsXSBbLU0gc2htbnlja2VsXSBbLVMgc2Vtbnlja2VsXSAuLi4gXVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCittc2dzdHIgIiVzOiBvdGlsbMOldGVuIGZsYWdnYSAtLSAlY1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwga2V5ICglcylcbiIKK21zZ3N0ciAiJXM6IG90aWxsw6V0ZW4gbnlja2VsICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBrZXkiCittc2dzdHIgIsOldGtvbXN0IG5la2FzIGbDtnIgbnlja2VsIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAicmVkYW4gYm9ydHRhZ2VuIG55Y2tlbCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjEyIHN5cy11dGlscy9pcGNybS5jOjI0MworbXNnaWQgImludmFsaWQga2V5IgorbXNnc3RyICJvZ2lsdGlnIG55Y2tlbCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjE1IHN5cy11dGlscy9pcGNybS5jOjI1MworbXNnaWQgInVua25vd24gZXJyb3IgaW4ga2V5IgorbXNnc3RyICJva8OkbnQgZmVsIGkgbnlja2VsIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgIsOldGtvbXN0IG5la2FzIGbDtnIgaWQiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0NAorbXNnaWQgImludmFsaWQgaWQiCittc2dzdHIgIm9naWx0aWd0IGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQgaWQiCittc2dzdHIgInJlZGFuIGJvcnR0YWdldCBpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU0Cittc2dpZCAidW5rbm93biBlcnJvciBpbiBpZCIKK21zZ3N0ciAib2vDpG50IGZlbCBpIGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzICglcylcbiIKK21zZ3N0ciAiJXM6ICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIGFyZ3VtZW50OiAlc1xuIgorbXNnc3RyICIlczogb2vDpG50IGFyZ3VtZW50OiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZSA6ICVzIC1hc21xIC10Y2x1cCBcbiIKK21zZ3N0ciAiYW52w6RuZG5pbmc6ICVzIC1hc21xIC10Y2x1cFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKK21zZ3N0ciAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIlx0JXMgLWggZsO2ciBoasOkbHAuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBpcGMgZmFjaWxpdGllcyBmb3Igd2hpY2ggeW91IGhhdmUgcmVhZCBhY2Nlc3MuXG4iCittc2dzdHIgIiIKKyIlcyB0aWxsaGFuZGFow6VsbGVyIGluZm9ybWF0aW9uIG9tIGlwYy1mYWNpbGl0ZXRlciBmw7ZyIHZpbGthIGR1IGhhclxuIgorImzDpHNyw6R0dGlnaGV0LlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisiUmVzdXJzc3BlY2lmaWthdGlvbjpcbiIKKyJcdC1tIDogZGVsYXQgbWlubmVcbiIKKyJcdC1xIDogbWVkZGVsYW5kZW5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LXMgOiBzZW1hcGhvcmVzXG4iCisiXHQtYSA6IGFsbCAoZGVmYXVsdClcbiIKK21zZ3N0ciAiIgorIlx0LXMgOiBzZW1hZm9yZXJcbiIKKyJcdC1hIDogYWxsYSAoc3RhbmRhcmQpXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdXRwdXQgRm9ybWF0OlxuIgorIlx0LXQgOiB0aW1lXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhdG9yXG4iCittc2dzdHIgIiIKKyJVdGRhdGFmb3JtYXQ6XG4iCisiXHQtdCA6IHRpZFxuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDogc2thcGFyZVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKyJcdC1sIDogZ3LDpG5zZXJcbiIKKyJcdC11IDogc2FtbWFuZmF0dG5pbmdcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICItaSBpZCBbLXMgLXEgLW1dIDogZGV0YWxqZXIgb20gcmVzdXJzZW4gc29tIGlkZW50aWZpZXJhcyBhdiBpZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNoYXJlZCBtZW1vcnlcbiIKK21zZ3N0ciAia8Okcm5hbiDDpHIgaW50ZSBrb25maWd1cmVyYWQgZsO2ciBkZWxhdCBtaW5uZVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEdyw6Ruc2VyIGbDtnIgZGVsYXQgbWlubmUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG51bWJlciBvZiBzZWdtZW50cyA9ICVsdVxuIgorbXNnc3RyICJtYXhpbWFsdCBhbnRhbCBzZWdtZW50ID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtYXhpbWFsIHNlZ21lbnRzdG9ybGVrIChraWxvYnl0ZSkgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHRvdGFsIHNoYXJlZCBtZW1vcnkgKGtieXRlcykgPSAlbGx1XG4iCittc2dzdHIgIm1heGltYWx0IHRvdGFsdCBkZWxhdCBtaW5uZSAoa2J5dGUpID0gJWxsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJtaW5pbWFsIHNlZ21lbnRzdG9ybGVrIChieXRlKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFN0YXR1cyBmw7ZyIGRlbGF0IG1pbm5lIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICJhbGxva2VyYWRlIHNlZ21lbnQgJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgYWxsb2NhdGVkICVsZFxuIgorbXNnc3RyICJhbGxva2VyYWRlIHNpZG9yICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyByZXNpZGVudCAgJWxkXG4iCittc2dzdHIgInJlc2lkZW50YSBzaWRvciAgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHN3YXBwZWQgICAlbGRcbiIKK21zZ3N0ciAidXR2w6R4bGFkZSBzaWRvciAgJWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3YXAgcGVyZm9ybWFuY2U6ICVsZCBhdHRlbXB0c1x0ICVsZCBzdWNjZXNzZXNcbiIKK21zZ3N0ciAiVsOkeGxpbmdzcHJlc3RhbmRhOiAlbGQgZsO2cnPDtmtcdCAgJWxkIGx5Y2thZGUgZsO2cnPDtmtcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudCBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNrYXBhcmUvw4RnYXJlIGF2IGRlbGFkZSBtaW5uZXNzZWdtZW50IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgInNobWlkIgorbXNnc3RyICJzaG1pZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MDgKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAicGVybXMiCittc2dzdHIgInLDpHR0aWdoIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImN1aWQiCittc2dzdHIgInZ1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY2dpZCIKK21zZ3N0ciAiY2dpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJ1aWQiCittc2dzdHIgInVpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJnaWQiCittc2dzdHIgImdpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQXR0YWNoL0RldGFjaC9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFRpbGzDpGdncy0vTMO2c2fDtnJuaW5ncy0vw4RuZHJpbmdzdGlkZXIgZsO2ciBkZWxhdCBtaW5uZSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgIsOkZ2FyZSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAidGlsbGFnZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJkZXRhY2hlZCIKK21zZ3N0ciAibMO2c2dqb3JkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorbXNnaWQgImNoYW5nZWQiCittc2dzdHIgIsOkbmRyYWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2thcGFyZS9TZW5hc3RlIG9wZXJhdGlvbiBww6UgZGVsYXQgbWlubmUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJjcGlkIgorbXNnc3RyICJjcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImxwaWQiCittc2dzdHIgImxwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBEZWxhZGUgbWlubmVzc2VnbWVudCAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAibnlja2VsIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgImJ5dGVzIgorbXNnc3RyICJieXRlIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgIm5hdHRjaCIKK21zZ3N0ciAiYW50dGlsbCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgInN0YXR1cyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMjkgc3lzLXV0aWxzL2lwY3MuYzozMzEgc3lzLXV0aWxzL2lwY3MuYzozMzMKKyM6IHN5cy11dGlscy9pcGNzLmM6NDQ0IHN5cy11dGlscy9pcGNzLmM6NDQ2IHN5cy11dGlscy9pcGNzLmM6NTQ1CisjOiBzeXMtdXRpbHMvaXBjcy5jOjU0NyBzeXMtdXRpbHMvaXBjcy5jOjU0OSBzeXMtdXRpbHMvaXBjcy5jOjYwMAorIzogc3lzLXV0aWxzL2lwY3MuYzo2MDIgc3lzLXV0aWxzL2lwY3MuYzo2MzAgc3lzLXV0aWxzL2lwY3MuYzo2MzIKKyM6IHN5cy11dGlscy9pcGNzLmM6NjM0IHN5cy11dGlscy9pcGNzLmM6NjU3Cittc2dpZCAiTm90IHNldCIKK21zZ3N0ciAiSW50ZSBpbnN0w6RsbGQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAibcOlbCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjIKK21zZ2lkICJsb2NrZWQiCittc2dzdHIgImzDpXN0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAia8Okcm5hbiDDpHIgaW50ZSBrb25maWd1cmVyYWQgZsO2ciBzZW1hZm9yZXJcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNlbWFmb3JncsOkbnNlciAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgIm1heGltYWx0IGFudGFsIHZla3RvcmVyID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAibWF4aW1hbHQgYW50YWwgc2VtYWZvcmVyIHBlciB2ZWt0b3IgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm1heGltYWx0IGFudGFsIHNlbWFmb3JlciBww6Ugc3lzdGVtZXQgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAibWF4aW1hbHQgYW50YWwgb3BlcmF0aW9uZXIgcGVyIHNlbWFmb3JvcHNhbnJvcCA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbWFwaG9yZSBtYXggdmFsdWUgPSAlZFxuIgorbXNnc3RyICJtYXh2w6RyZGUgcMOlIHNlbWFmb3IgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VtYWZvcnN0YXR1cyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGFycmF5cyA9ICVkXG4iCittc2dzdHIgImFudsOkbmRhIHZla3RvcmVyID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHNlbWFwaG9yZXMgPSAlZFxuIgorbXNnc3RyICJhbGxva2VyYWRlIHNlbWFmb3JlciA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2thcGFyZS/DhGdhcmUgYXYgc2VtYWZvcnZla3RvcmVyIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAic2VtaWQiCittc2dzdHIgInNlbWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFNlbWFmb3JvcGVyYXRpb24vw4RuZHJpbmdzdGlkZXIgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICJzZW5hc3RlLW9wIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3QtY2hhbmdlZCIKK21zZ3N0ciAic2VuYXN0LcOkbmRyYWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZW1hZm9ydmVrdG9yZXIgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAiYW50c2VtIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIG1lc3NhZ2UgcXVldWVzXG4iCittc2dzdHIgImvDpHJuYW4gw6RyIGludGUga29uZmlndXJlcmFkIGbDtnIgbWVkZGVsYW5kZWvDtmVyXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBNZWRkZWxhbmRlbjogR3LDpG5zZXIgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIm1heGltYWx0IGFudGFsIGvDtmVyIHDDpSBoZWxhIHN5c3RlbWV0ID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNpemUgb2YgbWVzc2FnZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAibWF4aW1hbCBzdG9ybGVrIHDDpSBtZWRkZWxhbmRlIChieXRlKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgImRlZmF1bHQgbWF4IHNpemUgb2YgcXVldWUgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgInN0YW5kYXJkbWF4c3RvcmxlayBww6Uga8O2IChieXRlKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBNZWRkZWxhbmRlOiBTdGF0dXMgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHF1ZXVlcyA9ICVkXG4iCittc2dzdHIgImFsbG9rZXJhZGUga8O2ZXIgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGhlYWRlcnMgPSAlZFxuIgorbXNnc3RyICJhbnbDpG5kYSBodXZ1ZGVuID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBzcGFjZSA9ICVkIGJ5dGVzXG4iCittc2dzdHIgImFudsOkbnQgdXRyeW1tZSA9ICVkIGJ5dGVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzOiBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIE1lZGRlbGFuZGVrw7ZlcjogU2thcGFyZS/DhGdhcmUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgIm1lZGRrw7ZpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tLSBNZWRkZWxhbmRla8O2ZXJuYXMgc8OkbmRuaW5ncy0vbW90dGFnbmluZ3MtL8OkbmRyaW5nc3RpZGVyIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAic2VuZCIKK21zZ3N0ciAic8OkbnQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAicmVjdiIKK21zZ3N0ciAibW90dGFnZXQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAiY2hhbmdlIgorbXNnc3RyICLDpG5kcmluZyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFBJRHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFBJRCBmw7ZyIG1lZGRlbGFuZGVrw7ZlciAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICJsc3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAibHJwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTWVkZGVsYW5kZWvDtmVyIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAidXNlZC1ieXRlcyIKK21zZ3N0ciAiYW52w6RuZGEtYnl0ZSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAibWVkZGVsYW5kZW4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTg5CisjLCBmdXp6eQorbXNnaWQgInNobWN0bCBmYWlsZWQiCittc2dzdHIgImZzeW5jIG1pc3NseWNrYWRlcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiRGVsYXQgbWlubmVzc2VnbWVudCBzaG1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjb1x0YWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJyw6R0dGlnaGV0PSUjb1x0w6V0a29tc3Ryw6R0dGlnaGV0ZXI9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk2CisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorbXNnc3RyICJieXRlPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJhdHRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJhdHRpZD0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJkZXR0aWQ9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDMgc3lzLXV0aWxzL2lwY3MuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hhbmdlX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiw6RuZHJpbmdzdGlkPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE1CisjLCBmdXp6eQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgImZzeW5jIG1pc3NseWNrYWRlcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk1lc3NhZ2UgUXVldWUgbXNxaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIk1lZGRlbGFuZGVrw7YgbWVkZGvDtmlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRtb2RlPSUjb1xuIgorbXNnc3RyICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0csOkdHRpZ2hldD0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICJjYnl0ZT0lbGRcdHFieXRlPSVsZFx0a8O2bnVtPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJzw6RuZG5pbmdzdGlkPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJjdl90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIm1vdHRhZ25pbmdzdGlkPSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjQ4IHN5cy11dGlscy9pcGNzLmM6NjcwCisjLCBmdXp6eQorbXNnaWQgInNlbWN0bCBmYWlsZWQiCittc2dzdHIgInPDtmtuaW5nIG1pc3NseWNrYWRlcyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiU2VtYWZvcnZla3RvciBzZW1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJyw6R0dGlnaGV0PSUjbywgw6V0a29tc3Ryw6R0dGlnaGV0ZXI9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgImFudHNlbSA9ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJvdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgIm90aWQgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICJjdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgImN0aWQgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAic2VtbnVtIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInZhbHVlIgorbXNnc3RyICJ2w6RyZGUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAibmNvdW50IgorbXNnc3RyICJucsOka24iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICJ6csOka24iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAicGlkIgorbXNnc3RyICJwaWQiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBzcGVlZDogJXMiCittc2dzdHIgIm9naWx0aWd0IGlkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMgZnLDpW4gJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvcHRpb24iCittc2dzdHIgIm9naWx0aWd0IGlkIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgbGluZSBkaXNjaXBsaW5lOiAlcyIKK21zZ3N0ciAib2dpbHRpZ3QgaWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiCittc2dzdHIgIiVzIMOkciBpbmdlbiBibG9ja3NwZWNpYWxlbmhldCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJrYW4gaW50ZSBow6RtdGEgc3Rvcmxla2VuIHDDpSAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWVkICVkIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHNldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAia2FuIGludGUgaMOkbXRhIHN0b3JsZWtlbiBww6UgJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1MQorIywgZnV6enkKK21zZ2lkICJjYW5ub3Qgc2V0IGxpbmUgZGlzY2lwbGluZSIKK21zZ3N0ciAiS2FuIGludGUgc8O2a2EgcMOlIGRpc2tlbmhldCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3CisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCBkYWVtb25pemUiCittc2dzdHIgImthbiBpbnRlIGjDpG10YSBzdG9ybGVrZW4gcMOlICVzIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NAorIywgZnV6enkKK21zZ2lkICJub25lIgorbXNnc3RyICJJbmdlbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUKK21zZ2lkICJwYXJhIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2Cittc2dpZCAiZnVsbCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxMzcgc3lzLXV0aWxzL2xzY3B1LmM6MTYwIHN5cy11dGlscy9sc2NwdS5jOjQ1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzIgorbXNnc3RyICJSRS1mZWw6ICIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgImZlbCB2aWQgbMOkc25pbmcgYXYgJXNcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTg0CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBzdHJkdXAgZmFpbGVkIgorbXNnc3RyICLDlnBwbmluZyBhdiAlcyBtaXNzbHlja2FkZXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjI2NworIywgZnV6enkKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICJGZWwgdmlkIHN0w6RuZ25pbmcgYXYgZmlsXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorIywgZnV6enkKK21zZ2lkICJlcnJvcjogbWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAibWlubmVzYWxsb2tlcmluZyBtaXNzbHlja2FkZXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXJcbiIKKyIjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElEXG4iCisiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisiIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKK21zZ2lkICJDUFUgb3AtbW9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI1Cittc2dpZCAiVGhyZWFkKHMpIHBlciBjb3JlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzUKK21zZ2lkICJDUFUgZmFtaWx5OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzcKK21zZ2lkICJNb2RlbDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKKyMsIGZ1enp5Cittc2dpZCAiVmlydHVhbGl6YXRpb246IgorbXNnc3RyICJUaWRpZ2FyZSBzaXR1YXRpb246XG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0OQorbXNnaWQgIkh5cGVydmlzb3IgdmVuZG9yOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY2FjaGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIkFudsOkbmRuaW5nOiAlcyBbZmxhZ2dvcl0gZW5oZXQgLi4uXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2OQorbXNnaWQgIiIKKyJDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGhlbHBlclxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuXG4iCisiICAtcywgLS1zeXNyb290ICB1c2UgdGhlIGRpcmVjdG9yeSBhcyBhIG5ldyBzeXN0ZW0gcm9vdC5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiBjaGFuZ2Ugd29ya2luZyBkaXJlY3RvcnkgdG8gJXMuIgorbXNnc3RyICJmZWwgdmlkIGJ5dGUgYXYgcsOkdHRpZ2hldGVyIHDDpSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgImFudsOkbmRuaW5nOiByZGV2IFsgLXJ2IF0gWyAtbyBBVlNUw4VORCBdIFsgQklMRCBbIFbDhFJERSBbIEFWU1TDhU5EIF0gXSBdIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc4Cittc2dpZCAiIgorIiAgcmRldiAvZGV2L2ZkMCAgKG9yIHJkZXYgL2xpbnV4LCBldGMuKSBkaXNwbGF5cyB0aGUgY3VycmVudCBST09UIGRldmljZSIKK21zZ3N0ciAiIgorIiAgcmRldiAvZGV2L2ZkMCAgKGVsbGVyIHJkZXYgL2xpbnV4LCBvc3YuKSB2aXNhciBkZW4gYWt0dWVsbGEgUk9ULWVuaGV0ZW4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHN0w6RsbGVyIGluIFJPVCB0aWxsIC9kZXYvaGRhMiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiIgorIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzdMOkbGxlciBpbiBST1RGTEFHR09STkEgKGVuZGFzdCBsw6RzYmFyKSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MQorbXNnaWQgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBzZXQgdGhlIFJBTURJU0sgc2l6ZSIKK21zZ3N0ciAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIHN0w6RsbGVyIGluIFJBTURJU0stc3Rvcmxla2VuIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgyCittc2dpZCAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgYm9vdHVwIFZJREVPTU9ERSIKK21zZ3N0ciAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIHN0w6RsbGVyIGluIEdSQUZJS0zDhEdFVCB2aWQgdXBwc3RhcnQiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODMKK21zZ2lkICIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAgdXNlIHRoZSBieXRlIG9mZnNldCBOIgorbXNnc3RyICIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAgYW52w6RuZCBieXRlYXZzdMOlbmQgTiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1tYSBzb20gcmRldiAtUiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NQorbXNnaWQgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXIiCittc2dzdHIgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1tYSBzb20gcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1tYSBzb20gcmRldiAtdiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisiT2JzOiBncmFmaWtsw6RnZW4gw6RyOiAtMz1GcsOlZ2EsIC0yPVV0w7ZrYXQsIC0xPU5vcm1hbFZnYSwgMT1ueWNrZWwxLCAiCisiMj1ueWNrZWwyLC4uLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4OAorbXNnaWQgIiAgICAgIHVzZSAtUiAxIHRvIG1vdW50IHJvb3QgcmVhZG9ubHksIC1SIDAgZm9yIHJlYWQvd3JpdGUuIgorbXNnc3RyICIiCisiICAgICAgYW52w6RuZCAtUiAxIGbDtnIgYXR0IG1vbnRlcmEgcm90ZW4gZW5kYXN0IGzDpHNiYXIsIC1SIDAgZsO2ciBsw6RzL3Nrcml2LiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzoyNDUKK21zZ2lkICJtaXNzaW5nIGNvbW1hIgorbXNnc3RyICJrb21tYSBzYWtuYXMiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjcyIHRleHQtdXRpbHMvbW9yZS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICJzbHV0IHDDpSBtaW5uZSIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6IFwiJXMgW29wdGlvbnNdXG4iCisiXHQgLW0gPG1hcGZpbGU+ICAoZGVmYXVsdHM6IFwiJXNcIiBhbmRcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsZT4gKGRlZmF1bHQ6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIgdG8gPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBwcmludCBvbmx5IGluZm8gYWJvdXQgdGhlIHNhbXBsaW5nIHN0ZXBcbiIKKyJcdCAtdiAgICAgICAgICAgIHByaW50IHZlcmJvc2UgZGF0YVxuIgorIlx0IC1hICAgICAgICAgICAgcHJpbnQgYWxsIHN5bWJvbHMsIGV2ZW4gaWYgY291bnQgaXMgMFxuIgorIlx0IC1iICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBoaXN0b2dyYW0tYmluIGNvdW50c1xuIgorIlx0IC1zICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBjb3VudGVycyB3aXRoaW4gZnVuY3Rpb25zXG4iCisiXHQgLXIgICAgICAgICAgICByZXNldCBhbGwgdGhlIGNvdW50ZXJzIChyb290IG9ubHkpXG4iCisiXHQgLW4gICAgICAgICAgICBkaXNhYmxlIGJ5dGUgb3JkZXIgYXV0by1kZXRlY3Rpb25cbiIKKyJcdCAtViAgICAgICAgICAgIHByaW50IHZlcnNpb24gYW5kIGV4aXRcbiIKK21zZ3N0ciAiIgorIiVzOiBBbnbDpG5kbmluZzogXCIlcyBbZmxhZ2dvcl1cbiIKKyJcdCAtbSA8dGFiZWxsZmlsPiAgKHN0YW5kYXJkYWx0ZXJuYXRpdjogXCIlc1wiIG9jaFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWw+ICAgIChzdGFuZGFyZGFsdGVybmF0aXY6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgICAgc3TDpGxsIGluIHByb2ZpbGVyaW5nc211bHRpcGxpa2F0b3JuIHRpbGwgPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICAgIHZpc2EgZW5kYXN0IGluZm9ybWF0aW9uIG9tIHNhbXBsaW5nc3N0ZWdldFxuIgorIlx0IC12ICAgICAgICAgICAgICB2aXNhIHV0ZsO2cmxpZyBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICAgIHZpc2EgYWxsYSBzeW1ib2xlciwgw6R2ZW4gb20gYW50YWxldCDDpHIgMFxuIgorIlx0IC1iICAgICAgICAgICAgICB2aXNhIGFudGFsIGluZGl2aWR1ZWxsYSBoaXN0b2dyYW0tYmluXG4iCisiXHQgLXMgICAgICAgICAgICAgIHZpc2EgaW5kaXZpZHVlbGxhIHLDpGtuYXJlIGlub20gZnVua3Rpb25lclxuIgorIlx0IC1yICAgICAgICAgICAgICBub2xsc3TDpGxsIGFsbGEgcsOka25hcmUgKGVuZGFzdCByb290KVxuIgorIlx0IC1uICAgICAgICAgICAgICBkZWFrdGl2ZXJhIGF1dG9tYXRpc2sgZGV0ZWt0ZXJpbmcgYXYgYnl0ZW9yZG5pbmdcbiIKKyJcdCAtViAgICAgICAgICAgICAgdmlzYSB2ZXJzaW9uc2luZm9ybWF0aW9uIG9jaCBhdnNsdXRhXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjIyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZHByb2ZpbGU6IGVycm9yIHdyaXRpbmcgJXM6ICVzXG4iCittc2dzdHIgIm1vdW50OiBmZWwgdmlkIHNrcml2bmluZyBhdiAlczogJXMiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyByZXZlcnNlZCBieXRlIG9yZGVyLiBVc2UgLW4gdG8gZm9yY2UgbmF0aXZlIGJ5dGUgb3JkZXIuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6Mjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCittc2dzdHIgIlNhbXBsaW5nc3N0ZWc6ICVpXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMwNSBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzKCVpKTogd3JvbmcgbWFwIGxpbmVcbiIKK21zZ3N0ciAiJXM6ICVzKCVpKTogZmVsYWt0aWcgdGFiZWxscmFkXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBcIl9zdGV4dFwiIGluICVzXG4iCittc2dzdHIgIiVzOiBrYW4gaW50ZSBoaXR0YSBcIl9zdGV4dFwiIGkgJXNcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBwcm9maWxlIGFkZHJlc3Mgb3V0IG9mIHJhbmdlLiBXcm9uZyBtYXAgZmlsZT9cbiIKK21zZ3N0ciAiJXM6IHByb2ZpbGFkcmVzc2VuIMOkciB1dGFuZsO2ciBpbnRlcnZhbGxldC4gRmVsIHRhYmVsbGZpbD9cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NDEyCittc2dpZCAidG90YWwiCittc2dzdHIgInRvdGFsdCIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICIlcyBmcsOlbiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiBva8OkbmQgYW52w6RuZGFyZVxuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTM0CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiBmZWxha3RpZ3QgdsOkcmRlXG4iCisKKyMgRGV0dGEgw6RyIHN5c3RlbWFucm9wIChnZXRwcmlvcml0eSgyKSkKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIyBEZXR0YSDDpHIgc3lzdGVtYW5yb3AgKHNldHByaW9yaXR5KDIpKQorIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6IGdhbW1hbCBwcmlvcml0ZXQgJWQsIG55IHByaW9yaXRldCAlZFxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgW29wdGlvbnNdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGRldmljZT4gICAgc2VsZWN0IHJ0YyBkZXZpY2UgKHJ0YzB8cnRjMXwuLi4pXG4iCisiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIHVzZXMgbG9jYWwgdGltZXpvbmVcbiIKKyIgICAgLW0gfCAtLW1vZGUgICAgICAgICAgICAgICBzdGFuZGJ5fG1lbXwuLi4gc2xlZXAgbW9kZVxuIgorIiAgICAtcyB8IC0tc2Vjb25kcyA8c2Vjb25kcz4gIHNlY29uZHMgdG8gc2xlZXBcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB0aW1lIHRvIHdha2VcbiIKKyIgICAgLXUgfCAtLXV0YyAgICAgICAgICAgICAgICBSVEMgdXNlcyBVVENcbiIKKyIgICAgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICB2ZXJib3NlIG1lc3NhZ2VzXG4iCisiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgc2hvdyB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKyJhbnbDpG5kbmluZzogJXMgW2ZsYWdnb3JdXG4iCisiICAgIC1kIHwgLS1kZXZpY2UgPGVuaGV0PiAgICAgdsOkbGogcnRjLWVuaGV0IChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyBhbnbDpG5kIGxva2FsIHRpZHN6b25cbiIKKyIgICAgLW0gfCAtLW1vZGUgICAgICAgICAgICAgICBzdGFuZGJ5fG1lbXwuLi4gc292bMOkZ2VcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNla3VuZGVyPiBzZWt1bmRlciBhdHQgc292YVxuIgorIiAgICAtdCB8IC0tdGltZSA8dGltZV90PiAgICAgIHRpZCBmw7ZyIHVwcHZha25hbmRlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIGFudsOkbmRlciBVVENcbiIKKyIgICAgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgICBpbmZvcm1hdGl2YSBtZWRkZWxhbmRlblxuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHZpc2EgdmVyc2lvblxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0MgorbXNnaWQgInJlYWQgcnRjIHRpbWUiCittc2dzdHIgImzDpHMgcnRjLXRpZCIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDcKK21zZ2lkICJyZWFkIHN5c3RlbSB0aW1lIgorbXNnc3RyICJsw6RzIHN5c3RlbXRpZCIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICJrb252ZXJ0ZXJhIHJ0Yy10aWQiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI0Cittc2dpZCAic2V0IHJ0YyBhbGFybSIKK21zZ3N0ciAic3TDpGxsIGluIHJ0Yy1hbGFybSIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjgKK21zZ2lkICJlbmFibGUgcnRjIGFsYXJtIgorbXNnc3RyICJha3RpdmVyYSBydGMtYWxhcm0iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjMyCittc2dpZCAic2V0IHJ0YyB3YWtlIGFsYXJtIgorbXNnc3RyICJzdMOkbGwgaW4gcnRjLXVwcHZha25pbmdzYWxhcm0iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIiVzOiBva8OkbnQgdsOkbnRlbMOkZ2VzdGlsbHN0w6VuZCBcIiVzXCJcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICIlczogb3RpbGzDpXRldCBpbnRlcnZhbGwgJXMgc2VrdW5kZXJcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiBvdGlsbMOldGV0IHbDpHJkZSBmw7ZyIHRpbWVfdCwgJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHZlcnNpb24gJXNcbiIKK21zZ3N0ciAiJXM6IHZlcnNpb24gJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGFzc3VtaW5nIFJUQyB1c2VzIFVUQyAuLi5cbiIKK21zZ3N0ciAiJXM6IGFudGFyIGF0dCBSVEMgYW52w6RuZGVyIFVUQyAuLi5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIFVUQyB0aW1lLlxuIgorbXNnc3RyICJBbnbDpG5kZXIgJXMtdGlkXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICJBbnbDpG5kZXIgJXMtdGlkXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBtdXN0IHByb3ZpZGUgd2FrZSB0aW1lXG4iCittc2dzdHIgIiVzOiBtw6VzdGUgdGlsbGhhbmRhaMOlbGxhIHVwcHZha25pbmdzdGlkXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDE3Cittc2dpZCAibWFsbG9jKCkgZmFpbGVkIgorbXNnc3RyICJtYWxsb2MoKSBtaXNzbHlja2FkZXMiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgZW5hYmxlZCBmb3Igd2FrZXVwIGV2ZW50c1xuIgorbXNnc3RyICIlczogJXMgw6RyIGludGUgYWt0aXZlcmFkIGbDtnIgdXBwdmFrbmluZ3Now6RuZGVsc2VyXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAiYWxhcm0gJWxkLCBzeXNfdGltZSAlbGQsIHJ0Y190aW1lICVsZCwgc2VrdW5kZXIgJXVcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIlczogdGlkZW4gZ8OlciBpbnRlIGJha2zDpG5nZXMgdGlsbCAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIiVzOiB1cHB2YWtuaW5nIGZyw6VuIFwiJXNcIiBtZWQgJXMga2xvY2thbiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIlczoga2FuIGludGUgYnl0YSBldGlrZXR0IHDDpSAlcyB0aWxsICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ5NgorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICJydGMgbMOkcyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo1MDUKK21zZ2lkICJkaXNhYmxlIHJ0YyBhbGFybSBpbnRlcnJ1cHQiCittc2dzdHIgImluYWt0aXZlcmEgcnRjLWFsYXJtYXZicm90dCIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzo1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hpbmcgb24gJXMuXG4iCittc2dzdHIgIlNsw6VyIHDDpSAlcy5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJBbnbDpG5kbmluZzogJXMlcyBbZmxhZ2dvcl0gW3Byb2dyYW0gW3Byb2dyYW1hcmd1bWVudF1dXG4iCisiXG4iCisiRmxhZ2dvcjpcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgc2V0YXJjaCg4KS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkbDtnIgbWVyIGluZm9ybWF0aW9uLCBzZSBzZXRhcmNoKDgpLlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVzXG4iCisiVHJ5IGAlcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiJXM6ICVzXG4iCisiUHJvdmEgbWVkIFwiJXMgLS1oZWxwXCIgZsO2ciBtZXIgaW5mb3JtYXRpb24uXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjE1IHN5cy11dGlscy9zZXRhcmNoLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIlczogQXJraXRla3R1cmVuIMOkciBva8OkbmQiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIkludGUgdGlsbHLDpGNrbGlndCBtw6VuZ2EgYXJndW1lbnQiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjY1IHN5cy11dGlscy9zZXRhcmNoLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBzZXQgcGVyc29uYWxpdHkgdG8gJXMiCittc2dzdHIgIk1pc3NseWNrYWRlcyBtZWQgYXR0IHN0w6RsbGEgaW4gcGVyc29ubGlnaGV0IHRpbGwgJXMiCisKKyM6IHN5cy11dGlscy9zZXRzaWQuYzoyNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIKK21zZ3N0ciAiYW52w6RuZG5pbmc6ICVzIHByb2dyYW0gW2FyZ3VtZW50IC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKyJBbnbDpG5kbmluZzogJXMgPGVuaGV0PiBbIC1pIDxJUlE+IHwgLXQgPFRJRD4gfCAtYyA8VEVDS0VOPiB8IFxuIgorIiAgICAgICAgICAgICAgIC13IDxWw4ROVEVUSUQ+IHwgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IFxuIgorIiAgICAgICAgICAgICAgIC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IC1UIFtvbnxvZmZdIF1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICJtaW5uZXNhbGxva2VyaW5nc2ZlbCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiVzOiBmZWxha3RpZ3QgdsOkcmRlXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBhbiBscCBkZXZpY2UuXG4iCittc2dzdHIgIiVzOiAlcyDDpHIgaW5nZW4gbHAtZW5oZXQuXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3RhdHVzIGlzICVkIgorbXNnc3RyICJzdGF0dXNlbiBmw7ZyICVzIMOkciAlZCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiwgdXBwdGFnZW4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCByZWFkeSIKK21zZ3N0ciAiLCByZWRvIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb3V0IG9mIHBhcGVyIgorbXNnc3RyICIsIHNsdXQgcMOlIHBhcHBlciIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICIsIG9uLWxpbmUiCittc2dzdHIgIiwgaW5rb3BwbGFkIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZXJyb3IiCittc2dzdHIgIiwgZmVsIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6Mjg1Cittc2dpZCAiTFBHRVRJUlEgZXJyb3IiCittc2dzdHIgIkxQR0VUSVJRLWZlbCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBJUlEgJWRcbiIKK21zZ3N0ciAiJXMgYW52w6RuZGVyIElSUSAlZFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMgYW52w6RuZGVyIHBvbGxuaW5nXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gPHByb2dyYW0+IFthcmdzLi4uXVxuIgorbXNnc3RyICJhbnbDpG5kbmluZzogJXMgcHJvZ3JhbSBbYXJndW1lbnQgLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjYwCittc2dpZCAiIgorIlJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB1c2FnZSBpbmZvcm1hdGlvbiAodGhpcylcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgbW91bnRzIG5hbWVzcGFjZVxuIgorIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIFN5c3RlbSBWIElQQyBuYW1lc3BhY2VcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIHVuc2hhcmUgbmV0d29yayBuYW1lc3BhY2VcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHVuc2hhcmUoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJGw7ZyIG1lciBpbmZvcm1hdGlvbiwgc2Ugc2V0YXJjaCg4KS5cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTQKKyMsIGZ1enp5Cittc2dpZCAidW5zaGFyZSBmYWlsZWQiCittc2dzdHIgInPDtmtuaW5nIG1pc3NseWNrYWRlcyIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJrw7ZybmluZyBtaXNzbHlja2FkZXNcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgImNvbDogZmVsYWt0aWd0IGFyZ3VtZW50ICVzIHRpbGwgLWwuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2wgWy1iZnB4XSBbLWwgbmxpbmVdXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiBjb2wgWy1iZnB4XSBbLWwgYW50YWxyYWRlcl1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiBza3JpdmZlbC5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6IHZhcm5pbmc6IGthbiBpbnRlIHPDpGtlcmhldHNrb3BpZXJhICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgInBhc3QgZmlyc3QgbGluZSIKK21zZ3N0ciAiZsO2cmJpIGbDtnJzdGEgcmFkZW4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAiLS0gbGluZSBhbHJlYWR5IGZsdXNoZWQiCittc2dzdHIgIi0tIHJhZGVuIHJlZGFuIHNwb2xhZCIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICJhbnbDpG5kbmluZzogJXMgWyAtIF0gWyAtMiBdIFsgZmlsIC4uLiBdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mjk3Cittc2dpZCAibGluZSB0b28gbG9uZyIKK21zZ3N0ciAicmFkZW4gw6RyIGbDtnIgbMOlbmciCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiYW52w6RuZG5pbmc6IGNvbHVtbiBbLXR4XSBbLWMga29sdW1uZXJdIFtmaWwgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBsZW5ndGggdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IGZlbGFrdGlndCBsw6RuZ2R2w6RyZGUuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IGZlbGFrdGlndCDDtnZlcmhvcHBuaW5nc3bDpHJkZS5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10ZmlsXSBbLW4gbMOkbmdkXSBbLXMgw7Z2ZXJob3BwXSBbZmlsIC4uLl1cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbLWRmbHBjc3VdIFsrbGluZW51bSB8ICsvcGF0dGVybl0gbmFtZTEgbmFtZTIgLi4uXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiAlcyBbLWRmbHBjc3VdIFsrcmFkbnVtbWVyIHwgKy9tw7Zuc3Rlcl0gbmFtbjEgbmFtbjIgLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGluaXRpYWxpemUgbGluZSBidWZmZXJcbiIKK21zZ3N0ciAiS2FuIGludGUgYWxsb2tlcmEgYnVmZmVydC5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIG9wdGlvbiBcIi0lY1wiXG4iCittc2dzdHIgIiVzOiBva8OkbmQgZmxhZ2dhIFwiLSVjXCJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczoga2F0YWxvZyAqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKioqKioqKiAlczogTm90IGEgdGV4dCBmaWxlICoqKioqKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKioqKioqKiAlczogSW50ZSBlbiB0ZXh0ZmlsICoqKioqKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjY2NAorIywgYy1mb3JtYXQKK21zZ2lkICJbVXNlIHEgb3IgUSB0byBxdWl0XSIKK21zZ3N0ciAiW0FudsOkbmQgcSBlbGxlciBRIGbDtnIgYXR0IGF2c2x1dGFdIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1Nb3JlLS0iCittc2dzdHIgIi0tTWVyLS0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICIoTmV4dCBmaWxlOiAlcykiCittc2dzdHIgIihOw6RzdGEgZmlsOiAlcykiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIltUcnljayBibGFua3N0ZWcgZsO2ciBhdHQgZm9ydHPDpHR0YSwgXCJxXCIgZsO2ciBhdHQgYXZzbHV0YS5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmJhY2sgJWQgcGFnZXMiCittc2dzdHIgIi4uLnRpbGxiYWthICVkIHNpZG9yIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA4Cittc2dpZCAiLi4uYmFjayAxIHBhZ2UiCittc2dzdHIgIi4uLnRpbGxiYWthIDEgc2lkYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICIuLi5ob3BwYXIgw7Z2ZXIgZW4gcmFkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnNraXBwaW5nICVkIGxpbmVzIgorbXNnc3RyICIuLi5ob3BwYXIgw7Z2ZXIgJWQgcmFkZXIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqVGlsbGJha2EqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMyOAorbXNnaWQgIiIKKyJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgRGVmYXVsdHMgaW4gIgorImJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisiXG4iCisiRGUgZmxlc3RhIGtvbW1hbmRvbiB2YWxmcml0dCBmw7ZyZWfDpW5nbmEgYXYgZXR0IGhlbHRhbHNhcmd1bWVudCBrLlxuIgorIlN0YW5kYXJkYWx0ZXJuYXRpdiBpbm9tIGhha3BhcmVudGVzZXIuXG4iCisiXG4iCisiU3Rqw6RybmEgKCopIGluZGlrZXJhciBhdHQgYXJndW1lbnRldCBibGlyIG55dHQgc3RhbmRhcmRhbHRlcm5hdGl2LlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzM1Cittc2dpZCAiIgorIjxzcGFjZT4gICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdXG4iCisieiAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV0qXG4iCisiPHJldHVybj4gICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbMV0qXG4iCisiZCBvciBjdHJsLUQgICAgICAgICAgICAgU2Nyb2xsIGsgbGluZXMgW2N1cnJlbnQgc2Nyb2xsIHNpemUsIGluaXRpYWxseSAxMV0qXG4iCisicSBvciBRIG9yIDxpbnRlcnJ1cHQ+ICAgRXhpdCBmcm9tIG1vcmVcbiIKKyJzICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBsaW5lcyBvZiB0ZXh0IFsxXVxuIgorImYgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyJiIG9yIGN0cmwtQiAgICAgICAgICAgICBTa2lwIGJhY2t3YXJkcyBrIHNjcmVlbmZ1bHMgb2YgdGV4dCBbMV1cbiIKKyInICAgICAgICAgICAgICAgICAgICAgICBHbyB0byBwbGFjZSB3aGVyZSBwcmV2aW91cyBzZWFyY2ggc3RhcnRlZFxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBsaW5lIG51bWJlclxuIgorIi88cmVndWxhciBleHByZXNzaW9uPiAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgcmVndWxhciBleHByZXNzaW9uIFsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgbGFzdCByLmUgWzFdXG4iCisiITxjbWQ+IG9yIDohPGNtZD4gICAgICAgRXhlY3V0ZSA8Y21kPiBpbiBhIHN1YnNoZWxsXG4iCisidiAgICAgICAgICAgICAgICAgICAgICAgU3RhcnQgdXAgL3Vzci9iaW4vdmkgYXQgY3VycmVudCBsaW5lXG4iCisiY3RybC1MICAgICAgICAgICAgICAgICAgUmVkcmF3IHNjcmVlblxuIgorIjpuICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBuZXh0IGZpbGUgWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIHByZXZpb3VzIGZpbGUgWzFdXG4iCisiOmYgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXJcbiIKKyIuICAgICAgICAgICAgICAgICAgICAgICBSZXBlYXQgcHJldmlvdXMgY29tbWFuZFxuIgorbXNnc3RyICIiCisiPGJsYW5rc3RlZz4gICAgICAgICAgICAgVmlzYSBuw6RzdGEgayByYWRlciBtZWQgdGV4dCBbYWt0dWVsbCBza8Okcm1zdG9ybGVrXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIFZpc2EgbsOkc3RhIGsgcmFkZXIgbWVkIHRleHQgW2FrdHVlbGwgc2vDpHJtc3Rvcmxla10qXG4iCisiPHJldHVyPiAgICAgICAgICAgICAgICAgVmlzYSBuw6RzdGEgayByYWRlciBtZWQgdGV4dCBbMV0qXG4iCisiZCBlbGxlciBjdHJsLUQgICAgICAgICAgUnVsbGEgayByYWRlciBbYWt0dWVsbCBydWxsbmluZ3NzdG9ybGVrLCBpbml0aWFsdCAxMV0iCisiKlxuIgorInEsIFEgZWxsZXIgPGF2YnJvdHQ+ICAgIEF2c2x1dGEgbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIEhvcHBhIGZyYW3DpXQgayByYWRlciBtZWQgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBIb3BwYSBmcmFtw6V0IGsgc2vDpHJtbMOkbmdkZXIgbWVkIHRleHQgWzFdXG4iCisiYiBlbGxlciBjdHJsLUIgICAgICAgICAgSG9wcGEgYmFrw6V0IGsgc2vDpHJtbMOkbmdkZXIgbWVkIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR8OlIHRpbGwgcGxhdHNlbiBkw6RyIGbDtnJlZ8OlZW5kZSBzw7ZrbmluZyBiw7ZyamFkZVxuIgorIj0gICAgICAgICAgICAgICAgICAgICAgIFZpc2EgYWt0dWVsbHQgcmFkbnVtbWVyXG4iCisiLzxyZWd1bGrDpHJ0IHV0dHJ5Y2s+ICAgIFPDtmsgZWZ0ZXIgZGVuIGs6dGUgZsO2cmVrb21zdGVuIGF2IHJlZ3VsasOkcnQgdXR0cnljayAiCisiWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU8O2ayBlZnRlciBkZW4gazp0ZSBmw7ZyZWtvbXN0ZW4gYXYgc2VuYXN0ZSByZWd1bGrDpHJhXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgdXR0cnlja2V0IFsxXVxuIgorIiE8a21kbz4gZWxsZXIgOiE8a21kbz4gIEvDtnIgPGttZG8+IGkgZXR0IHVuZGVyc2thbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0YSAvdXNyL2Jpbi92aSB2aWQgYWt0dWVsbCByYWRcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSaXRhIG9tIHNrw6RybWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR8OlIHRpbGwgazp0ZSBuw6RzdGEgZmlsIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEfDpSB0aWxsIGs6dGUgZsO2cmVnw6VlbmRlIGZpbCBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBWaXNhIGFrdHVlbGx0IGZpbG5hbW4gb2NoIHJhZG51bW1lclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFVwcHJlcGEgZsO2cmVnw6VlbmRlIGtvbW1hbmRvXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0MDQgdGV4dC11dGlscy9tb3JlLmM6MTQwOQorIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3MgJ2gnIGZvciBpbnN0cnVjdGlvbnMuXSIKK21zZ3N0ciAiW1RyeWNrIFwiaFwiIGbDtnIgaW5zdHJ1a3Rpb25lci5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQzCisjLCBjLWZvcm1hdAorbXNnaWQgIlwiJXNcIiBsaW5lICVkIgorbXNnc3RyICJcIiVzXCIgcmFkICVkIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICJbSW50ZSBlbiBmaWxdIHJhZCAlZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTUyOQorbXNnaWQgIiAgT3ZlcmZsb3dcbiIKK21zZ3N0ciAiICBTcGlsbFxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTc2Cittc2dpZCAiLi4uc2tpcHBpbmdcbiIKK21zZ3N0ciAiLi4uaG9wcGFyIMO2dmVyXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MDUKK21zZ2lkICJSZWd1bGFyIGV4cHJlc3Npb24gYm90Y2giCittc2dzdHIgIlJlZ3VsasOkcnQgdXR0cnlja3NtaXNjaG1hc2NoIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjEzCittc2dpZCAiIgorIlxuIgorIlBhdHRlcm4gbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKyJcbiIKKyJNw7Zuc3RyZXQgaGl0dGFkZXMgaW50ZVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjE2IHRleHQtdXRpbHMvcGcuYzoxMTI3IHRleHQtdXRpbHMvcGcuYzoxMjc4Cittc2dpZCAiUGF0dGVybiBub3QgZm91bmQiCittc2dzdHIgIk3Dtm5zdHJldCBoaXR0YWRlcyBpbnRlIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjc3Cittc2dpZCAiY2FuJ3QgZm9ya1xuIgorbXNnc3RyICJrYW4gaW50ZSBncmVuYVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzE2Cittc2dpZCAiIgorIlxuIgorIi4uLlNraXBwaW5nICIKK21zZ3N0ciAiIgorIlxuIgorIi4uLkhvcHBhciDDtnZlciAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiLi4uSG9wcGFyIMO2dmVyIHRpbGwgZmlsZW4gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAiLi4uSG9wcGFyIHRpbGxiYWthIHRpbGwgZmlsZW4gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiUmFkZW4gw6RyIGbDtnIgbMOlbmciCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwNDMKK21zZ2lkICJObyBwcmV2aW91cyBjb21tYW5kIHRvIHN1YnN0aXR1dGUgZm9yIgorbXNnc3RyICJJbmdldCB0aWRpZ2FyZSBrb21tYW5kbyBhdHQgZXJzw6R0dGEiCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IG9kKDEpIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGhleGR1bXAoMSkuXG4iCittc2dzdHIgIm9kOiBvZCgxKSBoYXIgZXJzYXR0cyBhdiBoZXhkdW1wKDEpLlxuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBoZXhkdW1wKDEpIGNvbXBhdGliaWxpdHkgZG9lc24ndCBzdXBwb3J0IHRoZSAtJWMgb3B0aW9uJXNcbiIKK21zZ3N0ciAib2Q6IGhleGR1bXAoMSkta29tcGF0aWJpbGl0ZXQgc3TDtmRlciBpbnRlIGZsYWdnYW4gLSVjJXNcbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzNAorbXNnaWQgIjsgc2VlIHN0cmluZ3MoMSkuIgorbXNnc3RyICI7IHNlIHN0cmluZ3MoMSkuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDoga2FuIGludGUgbMOkc2EgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJoZXhkdW1wOiByYWRlbiDDpHIgZsO2ciBsw6VuZy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBieXRlYW50YWwgbWVkIGZsZXJhIGtvbnZlcnRlcmluZ3N0ZWNrZW4uXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBmZWxha3RpZ3QgYnl0ZWFudGFsIGbDtnIga29udmVydGVyaW5nc3RlY2tlbiAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiAlJXMgcmVxdWlyZXMgYSBwcmVjaXNpb24gb3IgYSBieXRlIGNvdW50LlxuIgorbXNnc3RyICJoZXhkdW1vOiAlJXMga3LDpHZlciBldHQgcHJlY2lzaW9uc3bDpHJkZSBlbGxlciBldHQgYnl0ZWFudGFsLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDk2CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBmb3JtYXQgeyVzfVxuIgorbXNnc3RyICJoZXhkdW1wOiBmZWxha3RpZ3QgZm9ybWF0IHslc31cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogZmVsYWt0aWd0IGtvbnZlcnRlcmluZ3N0ZWNrZW4gJSUlcy5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NQorbXNnaWQgIiIKKyJBbGwgcmlnaHRzIHJlc2VydmVkLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyIgIGggICAgICAgICAgICAgICAgICAgICAgIHRoaXMgc2NyZWVuXG4iCisiICBxIG9yIFEgICAgICAgICAgICAgICAgICBxdWl0IHByb2dyYW1cbiIKKyIgIDxuZXdsaW5lPiAgICAgICAgICAgICAgIG5leHQgcGFnZVxuIgorIiAgZiAgICAgICAgICAgICAgICAgICAgICAgc2tpcCBhIHBhZ2UgZm9yd2FyZFxuIgorIiAgZCBvciBeRCAgICAgICAgICAgICAgICAgbmV4dCBoYWxmcGFnZVxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBsaW5lXG4iCisiICAkICAgICAgICAgICAgICAgICAgICAgICBsYXN0IHBhZ2VcbiIKKyIgIC9yZWdleC8gICAgICAgICAgICAgICAgIHNlYXJjaCBmb3J3YXJkIGZvciByZWdleFxuIgorIiAgP3JlZ2V4PyBvciBecmVnZXheICAgICAgc2VhcmNoIGJhY2t3YXJkIGZvciByZWdleFxuIgorIiAgLiBvciBeTCAgICAgICAgICAgICAgICAgcmVkcmF3IHNjcmVlblxuIgorIiAgdyBvciB6ICAgICAgICAgICAgICAgICAgc2V0IHBhZ2Ugc2l6ZSBhbmQgZ28gdG8gbmV4dCBwYWdlXG4iCisiICBzIGZpbGVuYW1lICAgICAgICAgICAgICBzYXZlIGN1cnJlbnQgZmlsZSB0byBmaWxlbmFtZVxuIgorIiAgIWNvbW1hbmQgICAgICAgICAgICAgICAgc2hlbGwgZXNjYXBlXG4iCisiICBwICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBwcmV2aW91cyBmaWxlXG4iCisiICBuICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBuZXh0IGZpbGVcbiIKKyJcbiIKKyJNYW55IGNvbW1hbmRzIGFjY2VwdCBwcmVjZWRpbmcgbnVtYmVycywgZm9yIGV4YW1wbGU6XG4iCisiKzE8bmV3bGluZT4gKG5leHQgcGFnZSk7IC0xPG5ld2xpbmU+IChwcmV2aW91cyBwYWdlKTsgMTxuZXdsaW5lPiAoZmlyc3QgIgorInBhZ2UpLlxuIgorIlxuIgorIlNlZSBwZygxKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjIyMworIywgZnV6enkKK21zZ2lkICJPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIlNsdXQgcMOlIG1pbm5lIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6ICVzIFstbnVtYmVyXSBbLXAgc3RyaW5nXSBbLWNlZm5yc10gWytsaW5lXSBbKy9wYXR0ZXJuL10gW2ZpbGVzXVxuIgorbXNnc3RyICIiCisiJXM6IEFudsOkbmRuaW5nOiAlcyBbLW51bWJlcl0gWy1wIHN0csOkbmddIFstY2VmbnJzXSBbK3JhZF0gWysvbcO2bnN0ZXIvXSAiCisiW2ZpbGVyXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IGZsYWdnYW4ga3LDpHZlciBldHQgYXJndW1lbnQgLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJXNcbiIKK21zZ3N0ciAiJXM6IG90aWxsw6V0ZW4gZmxhZ2dhIC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzAKK21zZ2lkICIuLi5za2lwcGluZyBmb3J3YXJkXG4iCittc2dzdHIgIi4uLmhvcHBhciBmcmFtw6V0XG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzIKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIuLi5ob3BwYXIgYmFrw6V0XG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTQKK21zZ2lkICJObyBuZXh0IGZpbGUiCittc2dzdHIgIkluZ2VuIG7DpHN0YSBmaWwiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTgKK21zZ2lkICJObyBwcmV2aW91cyBmaWxlIgorbXNnc3RyICJJbmdhIHRpZGlnYXJlIGZpbCIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEzDpHNmZWwgZnLDpW4gJXMtZmlsXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuZXhwZWN0ZWQgRU9GIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IE92w6RudGF0IGZpbHNsdXQgaSAlcy1maWxcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBlcnJvciBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBPa8OkbnQgZmVsIGkgJXMtZmlsXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgY3JlYXRlIHRlbXBmaWxlXG4iCittc2dzdHIgIiVzOiBLYW4gaW50ZSBza2FwYSB0ZW1wb3LDpHIgZmlsXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDQ0IHRleHQtdXRpbHMvcGcuYzoxMjE5IHRleHQtdXRpbHMvcGcuYzoxMjQ2Cittc2dpZCAiUkUgZXJyb3I6ICIKK21zZ3N0ciAiUkUtZmVsOiAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIihGaWxzbHV0KSIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMjcgdGV4dC11dGlscy9wZy5jOjEyNTQKK21zZ2lkICJObyByZW1lbWJlcmVkIHNlYXJjaCBzdHJpbmciCittc2dzdHIgIkluZ2VuIGlow6Vna29tbWVuIHPDtmtzdHLDpG5nIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAiS2FuIGludGUgw7ZwcG5hICIKKworIzogdGV4dC11dGlscy9wZy5jOjEzNTgKK21zZ2lkICJzYXZlZCIKK21zZ3N0ciAic3BhcmFkIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ2NQorbXNnaWQgIjogIWNvbW1hbmQgbm90IGFsbG93ZWQgaW4gcmZsYWcgbW9kZS5cbiIKK21zZ3N0ciAiOiAha29tbWFuZG8gaW50ZSB0aWxsw6V0ZXQgaSByZmxhZy1sw6RnZS5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiZm9yaygpIG1pc3NseWNrYWRlcywgZsO2cnPDtmsgaWdlbiBzZW5hcmVcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIihOw6RzdGEgZmlsOiAiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzcGFjZSIKK21zZ3N0ciAiS2FuIGludGUgYWxsb2tlcmEgYnVmZmVydHV0cnltbWVcbiIKKworIzogdGV4dC11dGlscy9yZXYuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHJldiBbZmlsZSAuLi5dXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiByZXYgW2ZpbCAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo1OCB0ZXh0LXV0aWxzL3RhaWxmLmM6OTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIKK21zZ3N0ciAiS2FuIGludGUgw7ZwcG5hIFwiJXNcIiBmw7ZyIGzDpHNuaW5nXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzo5NiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBcIiVzXCIiCittc2dzdHIgImthbiBpbnRlIHRhIHN0YXR1cyBww6UgZW5oZXRlbiAlcyIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJpbmNvbXBsZXRlIHdyaXRlIHRvIFwiJXNcIiAod3JpdHRlbiAlemQsIGV4cGVjdGVkICV6ZClcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2ggKGxpbWl0IG9mIGlub3RpZnkgd2F0Y2hlcyB3YXMgcmVhY2hlZCkuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaC4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCByZWFkIGlub3RpZnkgZXZlbnRzIgorbXNnc3RyICIlczoga2FuIGludGUgw7ZwcG5hICVzXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxOTkgdGV4dC11dGlscy90YWlsZi5jOjIwMworIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG51bWJlciBvZiBsaW5lcyIKK21zZ3N0ciAiT2dpbHRpZ3QgdGFsOiAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjEwCisjLCBmdXp6eQorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICJBbnbDpG5kbmluZzogdGFpbGYgbG9nZ2ZpbFxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgImFudsOkbmRuaW5nOiAlcyBbIC1pIF0gWyAtdFRlcm1pbmFsIF0gZmlsLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICJwcm9ibGVtIHZpZCBsw6RzbmluZyBhdiB0ZXJtaW5mbyIKKworIzogdGV4dC11dGlscy91bC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIGVzY2FwZSBzZXF1ZW5jZSBpbiBpbnB1dDogJW8sICVvXG4iCittc2dzdHIgIk9rw6RuZCBpbmLDpGRkbmluZ3NzZWt2ZW5zIGkgaW5kYXRhOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJLYW4gaW50ZSBhbGxva2VyYSBidWZmZXJ0LlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIkluZGF0YXJhZGVuIMOkciBmw7ZyIGzDpW5nLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIKK21zZ3N0ciAiU2x1dCBww6UgbWlubmUgdmlkIHbDpHhhbmRlIGF2IGJ1ZmZlcnQuXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstYiBTU1pdIFstdV0gRElTSyAgICAgQ2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorI34gIiAgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdIERJU0sgIExpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisjfiAiICAgICAgIGZkaXNrIC1zIFBBUlRJVElPTiAgICAgICAgICAgR2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyN+ICIgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICBHaXZlIGZkaXNrIHZlcnNpb25cbiIKKyN+ICJIZXJlIERJU0sgaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGIgb3IgL2Rldi9zZGFcbiIKKyN+ICJhbmQgUEFSVElUSU9OIGlzIHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhN1xuIgorI34gIi11OiBnaXZlIFN0YXJ0IGFuZCBFbmQgaW4gc2VjdG9yIChpbnN0ZWFkIG9mIGN5bGluZGVyKSB1bml0c1xuIgorI34gIi1iIDIwNDg6IChmb3IgY2VydGFpbiBNTyBkaXNrcykgdXNlIDIwNDgtYnl0ZSBzZWN0b3JzXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJBbnbDpG5kbmluZzogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICDDhG5kcmEgcGFydGl0aW9uc3RhYmVsbFxuIgorI34gIiAgICAgICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdGEgcGFydGl0aW9uc3RhYmVsbChlcilcbiIKKyN+ICIgICAgICAgICAgICBmZGlzayAtcyBQQVJUSVRJT04gICAgICAgICAgIFZpc2EgcGFydGl0aW9uc3N0b3JsZWsoYXIpIGkgIgorI34gImJsb2NrXG4iCisjfiAiICAgICAgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICBWaXNhIGZkaXNrcyB2ZXJzaW9uc251bW1lclxuIgorI34gIkRJU0sgw6RyIG7DpWdvbnRpbmcgbGlrbmFuZGUgL2Rldi9oZGIgZWxsZXIgL2Rldi9zZGFcbiIKKyN+ICJvY2ggUEFSVElUSU9OIMOkciBuw6Vnb250aW5nIGxpa25hbmRlIC9kZXYvaGRhN1xuIgorI34gIi11OiB2aXNhIGLDtnJqYW4gb2NoIHNsdXQgaSBzZWt0b3JlciAoaXN0w6RsbGV0IGbDtnIgY3lsaW5kcmFyKVxuIgorI34gIi1iIDIwNDg6IChmw7ZyIHZpc3NhIE1PLWVuaGV0ZXIpIGFudsOkbmQgMjA0OC1ieXRlc3Nla3RvcmVyXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstbF0gWy1iIFNTWl0gWy11XSBkZXZpY2VcbiIKKyN+ICJFLmcuOiBmZGlzayAvZGV2L2hkYSAgKGZvciB0aGUgZmlyc3QgSURFIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9zZGMgIChmb3IgdGhlIHRoaXJkIFNDU0kgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L2VkYSAgKGZvciB0aGUgZmlyc3QgUFMvMiBFU0RJIGRyaXZlKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvcmQvYzBkMCAgb3I6IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChmb3IgUkFJRCBkZXZpY2VzKVxuIgorI34gIiAgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJBbnbDpG5kbmluZzogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGVuaGV0XG4iCisjfiAiRXhlbXBlbHZpczogZmRpc2sgL2Rldi9oZGEgIChmw7ZyIGRlbiBmw7Zyc3RhIElERS1kaXNrZW4pXG4iCisjfiAiICAgICBlbGxlcjogZmRpc2sgL2Rldi9zZGMgIChmw7ZyIGRlbiB0cmVkamUgU0NTSS1kaXNrZW4pXG4iCisjfiAiICAgICBlbGxlcjogZmRpc2sgL2Rldi9lZGEgIChmw7ZyIGRlbiBmw7Zyc3RhIFBTLzItRVNESS1lbmhldGVuKVxuIgorI34gIiAgICAgZWxsZXI6IGZkaXNrIC9kZXYvcmQvYzBkMCBlbGxlcjogZmRpc2sgL2Rldi9pZGEvYzBkMCAoZsO2ciBSQUlELSIKKyN+ICJlbmhldGVyKVxuIgorI34gIiAgICAgLi4uXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiXG4iCisjfiAiVGhlIG51bWJlciBvZiBjeWxpbmRlcnMgZm9yIHRoaXMgZGlzayBpcyBzZXQgdG8gJWQuXG4iCisjfiAiVGhlcmUgaXMgbm90aGluZyB3cm9uZyB3aXRoIHRoYXQsIGJ1dCB0aGlzIGlzIGxhcmdlciB0aGFuIDEwMjQsXG4iCisjfiAiYW5kIGNvdWxkIGluIGNlcnRhaW4gc2V0dXBzIGNhdXNlIHByb2JsZW1zIHdpdGg6XG4iCisjfiAiMSkgc29mdHdhcmUgdGhhdCBydW5zIGF0IGJvb3QgdGltZSAoZS5nLiwgb2xkIHZlcnNpb25zIG9mIExJTE8pXG4iCisjfiAiMikgYm9vdGluZyBhbmQgcGFydGl0aW9uaW5nIHNvZnR3YXJlIGZyb20gb3RoZXIgT1NzXG4iCisjfiAiICAgKGUuZy4sIERPUyBGRElTSywgT1MvMiBGRElTSylcbiIKKyN+IG1zZ3N0ciAiIgorI34gIlxuIgorI34gIkFudGFsZXQgY3lsaW5kcmFyIGbDtnIgZGVubmEgZGlzayDDpHIgc2F0dCB0aWxsICVkLlxuIgorI34gIkRldCDDpHIgaW5nZXQgZmVsIG1lZCBkZXQsIG1lbiBkZXQgw6RyIHN0w7ZycmUgw6RuIDEwMjQsIG9jaCBrYW4gaVxuIgorI34gInZpc3NhIGtvbmZpZ3VyYXRpb25lciBvcnNha2EgcHJvYmxlbSBtZWQ6XG4iCisjfiAiMSkgcHJvZ3JhbXZhcmEgc29tIGvDtnIgdW5kZXIgdXBwc3RhcnQgKGV4ZW1wZWx2aXMgZ2FtbGEgdmVyc2lvbmVyXG4iCisjfiAiICAgYXYgTElMTylcbiIKKyN+ICIyKSBzdGFydC0gb2NoIHBhcnRpdGlvbmVyaW5nc3Byb2dyYW12YXJhIGZyw6VuIGFuZHJhIG9wZXJhdGl2c3lzdGVtXG4iCisjfiAiICAgKGV4ZW1lcGx2aXMgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm91dCBpZiBtZW1vcnkiCisjfiBtc2dzdHIgInNsdXQgcMOlIG1pbm5lIgorCisjfiBtc2dpZCAiIyBwYXJ0aXRpb24gdGFibGUgb2YgJXNcbiIKKyN+IG1zZ3N0ciAiIyBwYXJ0aXRpb25zdGFiZWxsIGbDtnIgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAidW5pdDogc2VjdG9yc1xuIgorI34gIlxuIgorI34gbXNnc3RyICJTdW5PUyBhbHQgc2VrdG9yZXIiCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIHN0YXJ0PSU5bHUiCisjfiBtc2dzdHIgImLDtnJqYW4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBzaXplPSU5bHUiCisjfiBtc2dzdHIgIk1heHN0b3JsZWs9JWxkXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiLCBib290YWJsZSIKKyN+IG1zZ3N0ciAiQUlYIHN0YXJ0YmFyIgorCisjLCBmdXp6eQorI34gbXNnaWQgIkNsb2NrIGluIFVUQywgbm90IGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIlNrYWxldCBieXR0ZXMgaW50ZS5cbiIKKworI34gbXNnaWQgIiVzOiBlcnJvcjogbGFiZWwgb25seSB3aXRoIHYxIHN3YXAgYXJlYVxuIgorI34gbXNnc3RyICIlczogZmVsOiBldGlrZXR0IGVuZGFzdCBtZWQgdjEgdsOkeGxpbmdzdXRyeW1tZVxuIgorCisjfiBtc2dpZCAiZmF0YWw6IGZpcnN0IHBhZ2UgdW5yZWFkYWJsZSIKKyN+IG1zZ3N0ciAiw7ZkZXNkaWdlcnQ6IGbDtnJzdGEgc2lkYW4gw6RyIG9sw6RzYmFyIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICIlczogRGV2aWNlICclcycgY29udGFpbnMgYSB2YWxpZCBTdW4gZGlza2xhYmVsLlxuIgorI34gIlRoaXMgcHJvYmFibHkgbWVhbnMgY3JlYXRpbmcgdjAgc3dhcCB3b3VsZCBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlLlxuIgorI34gIk5vIHN3YXAgd2FzIGNyZWF0ZWQuIElmIHlvdSByZWFsbHkgd2FudCB0byBjcmVhdGUgdjAgc3dhcCBvbiB0aGF0ICIKKyN+ICJkZXZpY2UsXG4iCisjfiAidXNlIHRoZSAtZiBvcHRpb24gdG8gZm9yY2UgaXQuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczogRW5oZXRlbiBcIiVzXCIgaW5uZWjDpWxsZXIgZW4gZ2lsdGlnIFN1bi1kaXNrZXRpa2V0dC5cbiIKKyN+ICJEZXR0YSBpbm5lYsOkciB0cm9saWd0dmlzIGF0dCBza2FwYW5kZXQgYXYgdjAtdsOkeGxpbmdzdXRyeW1tZSBza3VsbGUgXG4iCisjfiAiZsO2cnN0w7ZyYSBkaW4gcGFydGl0aW9uc3RhYmVsbC5cbiIKKyN+ICJJbmdldCB2w6R4bGluZ3N1dHJ5bW1lIGhhciBza2FwYXRzLiBPbSBkdSB2ZXJrbGlnZW4gdmlsbCBza2FwYSB2MC1cbiIKKyN+ICJ2w6R4bGluZ3N1dHJ5bW1lIHDDpSBkZW4gZW5oZXRlbiBrYW4gZHUgYW52w6RuZGEgZmxhZ2dhbiAtZiBmw7ZyIGF0dCB0dmluZ2FcbiIKKyN+ICJmcmFtIGRldC5cbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmFibGUgdG8gZ2V0IGN1cnJlbnQgZGlyZWN0b3J5IC0gJXNcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGt1bmRlIGludGUgZsOlIHRhZyBpIGFrdHVlbGwga2F0YWxvZyAtICVzXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGNoZGlyIHRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICJuYW1laToga3VuZGUgaW50ZSBieXRhIGthdGFsb2cgdGlsbCAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3QgY2hkaXIgdG8gcm9vdCFcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGt1bmRlIGludGUgYnl0YSBrYXRhbG9nIHRpbGwgcm90ZW4hXG4iCisKKyN+IG1zZ2lkICJuYW1laTogY291bGQgbm90IHN0YXQgcm9vdCFcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGt1bmRlIGludGUgdGEgc3RhdHVzIHDDpSByb3RlbiFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGJ1ZmZlcnRzcGlsbFxuIgorCisjfiBtc2dpZCAiID8gY291bGQgbm90IGNoZGlyIGludG8gJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IGt1bmRlIGludGUgYnl0YSBrYXRhbG9nIHRpbGwgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/IHByb2JsZW0gdmlkIGzDpHNuaW5nIGF2IHN5bWJvbGlza2EgbMOkbmtlbiAlcyAtICVzICglZClcbiIKKworI34gbXNnaWQgIiAgKioqIEVYQ0VFREVEIFVOSVggTElNSVQgT0YgU1lNTElOS1MgKioqXG4iCisjfiBtc2dzdHIgIiAgKioqIMOWVkVSU0tSRUQgVU5JWC1HUsOETlNFTiBGw5ZSIFNZTUJPTElTS0EgTMOETktBUiAqKipcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmtub3duIGZpbGUgdHlwZSAwJTA2byBvbiBmaWxlICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBva8OkbmQgZmlsdHlwIDAlMDZvIHDDpSBmaWxlbiAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvaW5nIHRvIG1vdW50ICVzIGJ5ICVzXG4iCisjfiBtc2dzdHIgIm1vdW50OiBrb21tZXIgYXR0IG1vbnRlcmEgJXMgZWZ0ZXIgJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBubyBMQUJFTD0sIG5vIFVVSUQ9LCBnb2luZyB0byBtb3VudCAlcyBieSBwYXRoXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDogaW5nZW4gTEFCRUw9LCBpbmdldCBVVUlEPSwga29tbWVyIGF0dCBtb250ZXJhICVzIGVmdGVyIHPDtmt2w6RnXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczogS2FuIGludGUgZ3JlbmFcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogd2FpdHBpZDogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IG1pc3NseWNrYWRlcyBtZWQgYXR0IMO2cHBuYTogJXNcbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3Qgc3RhdCAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IGthbiBpbnRlIHRhIHN0YXR1cyBww6UgJXM6ICVzXG4iCisKKyN+IG1zZ2lkICJjb3VsZCBub3QgdW1vdW50ICVzIC0gdHJ5aW5nICVzIGluc3RlYWRcbiIKKyN+IG1zZ3N0ciAia3VuZGUgaW50ZSBhdm1vbnRlcmEgJXMgLSBmw7Zyc8O2a2VyIG1lZCAlcyBpc3TDpGxsZXRcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisKKyN+IG1zZ2lkICJjaGZuOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImNoZm46IFBBTS1mZWwsIGF2YnJ5dGVyOiAlc1xuIgorCisjfiBtc2dpZCAiQ2FuJ3QgcmVhZCAlcywgZXhpdGluZy4iCisjfiBtc2dzdHIgIkthbiBpbnRlIGzDpHNhICVzLCBhdnNsdXRhci4iCisKKyN+IG1zZ2lkICJsb2dpbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjogUEFNLWZlbCwgYXZicnl0ZXI6ICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogYmFja2dyb3VuZGluZyBcIiVzXCJcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGbDtnJsw6RnZ2VyIFwiJXNcIiB0aWxsIGJha2dydW5kZW5cbiIKKworI34gbXNnaWQgIm1vdW50OiBnaXZpbmcgdXAgXCIlc1wiXG4iCisjfiBtc2dzdHIgIm1vdW50OiBnZXIgdXBwIFwiJXNcIlxuIgorCisjfiBtc2dpZCAiY2FsbGluZyBvcGVuX3R0eVxuIgorI34gbXNnc3RyICJhbnJvcGFyIG9wZW5fdHR5XG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIHRlcm1pb19pbml0XG4iCisjfiBtc2dzdHIgImFucm9wYXIgdGVybWlvX2luaXRcbiIKKworI34gbXNnaWQgIndyaXRpbmcgaW5pdCBzdHJpbmdcbiIKKyN+IG1zZ3N0ciAic2tyaXZlciBpbml0aWVyaW5nc3N0csOkbmdcbiIKKworI34gbXNnaWQgImJlZm9yZSBhdXRvYmF1ZFxuIgorI34gbXNnc3RyICJmw7ZyZSBhdXRvYmF1ZFxuIgorCisjfiBtc2dpZCAid2FpdGluZyBmb3IgY3ItbGZcbiIKKyN+IG1zZ3N0ciAidsOkbnRhciBww6UgY3ItbGZcbiIKKworI34gbXNnaWQgInJlYWRpbmcgbG9naW4gbmFtZVxuIgorI34gbXNnc3RyICJsw6RzZXIgYW52w6RuZGFybmFtblxuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAiZWZ0ZXIgZ2V0b3B0LXNsaW5nYVxuIgorCisjfiBtc2dpZCAiZXhpdGluZyBwYXJzZWFyZ3NcbiIKKyN+IG1zZ3N0ciAiYXZzbHV0YXIgcGFyc2VhcmdzXG4iCisKKyN+IG1zZ2lkICJlbnRlcmVkIHBhcnNlX3NwZWVkc1xuIgorI34gbXNnc3RyICJnaWNrIGluIGkgcGFyc2Vfc3BlZWRzXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlc3BlZWRzXG4iCisjfiBtc2dzdHIgImF2c2x1dGFyIHBhcnNlc3BlZWRzXG4iCisKKyN+IG1zZ2lkICJvcGVuKDIpXG4iCisjfiBtc2dzdHIgIm9wZW4oMilcbiIKKworI34gbXNnaWQgImR1cGluZ1xuIgorI34gbXNnc3RyICJkdXBsaWNlcmFyXG4iCisKKyN+IG1zZ2lkICJ0ZXJtX2lvIDJcbiIKKyN+IG1zZ3N0ciAidGVybV9pbyAyXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxsc1xuIgorI34gbXNnc3RyICJWYXJuaW5nOiBcIiVzXCIgZmlubnMgaW50ZSBtZWQgaSAvZXRjL3NoZWxsc1xuIgorCisjfiBtc2dpZCAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorI34gbXNnc3RyICJ0aW1lLW91dCA9ICVkLCB0eXN0ID0gJWQsIG9tc3RhcnQgPSAlZFxuIgorCisjfiBtc2dpZCAiY291bGRuJ3QgcmVhZCAlcywgYW5kIGNhbm5vdCBpb2N0bCBkdW1wXG4iCisjfiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgJXMsIG9jaCBrYW4gaW50ZSBkdW1wYSBpb2N0bFxuIgorCisjfiBtc2dpZCAiLCBvZmZzZXQgJWxsZCIKKyN+IG1zZ3N0ciAiLCBhdnN0w6VuZCAlbGxkIgorCisjfiBtc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBkZXZpY2UgL2Rldi9sb29wIyIKKyN+IG1zZ3N0ciAiJXM6IGt1bmRlIGludGUgaGl0dGEgbsOlZ29uIC9kZXYvbG9vcCMtZW5oZXQiCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAiYW52w6RuZG5pbmc6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0ZXRdIHNwZWNpYWx8TEFCRUw9dm9seW1uYW1uIC4uLlxuIgorI34gIiAgICAgICAlcyBbLXNdXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstdl1cbiIKKyN+ICIgICAgICAgJXMgWy12XSBzcGVjaWFsIC4uLlxuIgorI34gbXNnc3RyICIiCisjfiAiYW52w6RuZG5pbmc6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3QgY2Fub25pY2FsaXplICVzOiAlc1xuIgorI34gbXNnc3RyICIlczoga2FuIGludGUgZ8O2cmEgJXMga2Fub25pc2s6ICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6IHJlbmljZSBwcmlvcml0eSBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSB1c2VycyBdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJhbnbDpG5kbmluZzogcmVuaWNlIHByaW9yaXRldCBbIFsgLXAgXSBwaWQgXSBbIFsgLWcgXSBwZ3J1cHBlciBdXG4iCisjfiAiICAgICAgICAgICAgWyBbIC11IF0gYW52w6RuZGFyZSBdXG4iCisKKyN+IG1zZ2lkICJcdC0lY1x0RW5hYmxlICVzXG4iCisjfiBtc2dzdHIgIlx0LSVjXHRBa3RpdmVyYSAlc1xuIgorCisjfiBtc2dpZCAiVW5rbm93biBvcHRpb24gYCVjJyBpZ25vcmVkIgorI34gbXNnc3RyICJPa8OkbmRhIGZsYWdnYW4gXCIlY1wiIGlnbm9yZXJhZCIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorI34gbXNnc3RyICJcIiVzXCI6IGZlbGFrdGlnIGthdGFsb2c6IFwiLlwiIGtvbW1lciBpbnRlIGbDtnJzdFxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKKyN+IG1zZ3N0ciAiXCIlc1wiOiBmZWxha3RpZyBrYXRhbG9nOiBcIi4uXCIga29tbWVyIGludGUgcMOlIGFuZHJhIHBsYXRzXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBlcnJvci4iCisjfiBtc2dzdHIgIkzDtnNlbm9yZHNmZWwuIgorCisjfiBtc2dpZCAiIgorI34gIkV4Y2VlZGVkIE1BWEVOVFJJRVMuICBSYWlzZSB0aGlzIHZhbHVlIGluIG1rY3JhbWZzLmMgYW5kIHJlY29tcGlsZS4gICIKKyN+ICJFeGl0aW5nLlxuIgorI34gbXNnc3RyICIiCisjfiAiw5Z2ZXJza3JlZCBNQVhFTlRSSUVTLiDDlmthIGRldHRhIHbDpHJkZSBpIG1rY3JhbWZzLmMgb2NoIGtvbXBpbGVyYSBvbS4gIgorI34gIkF2c2x1dGFyLlxuIgorCisjfiBtc2dpZCAiQXNzdW1pbmcgcGFnZXMgb2Ygc2l6ZSAlZCAobm90ICVkKVxuIgorI34gbXNnc3RyICJBbnRhciBzaWRzdG9ybGVrZW4gJWQgKGludGUgJWQpXG4iCisKKyN+IG1zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlZCBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsZFxuIgorI34gbXNnc3RyICJUb3RhbGEgYW50YWxldCBhbGxva2VyYWRlIHNla3RvcmVyICVkIHN0w7ZycmUgw6RuIG1heGltYWxhICVsbGRcbiIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZm91bmQgYSAlcyVzJXNcbiIKKyN+IG1zZ3N0ciAiQXV0b21hdGlza2Ega29uZmlndXJhdGlvbmVuIGhpdHRhZGUgZW4gJXMlcyVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRHJpdmUgdHlwZVxuIgorI34gIiAgID8gICBhdXRvIGNvbmZpZ3VyZVxuIgorI34gIiAgIDAgICBjdXN0b20gKHdpdGggaGFyZHdhcmUgZGV0ZWN0ZWQgZGVmYXVsdHMpIgorI34gbXNnc3RyICIiCisjfiAiRW5oZXRzdHlwXG4iCisjfiAiICAgPyAgIGtvbmZpZ3VyZXJhIGF1dG9tYXRpc2t0XG4iCisjfiAiICAgMCAgIGFucGFzc2FkIChtZWQgaMOlcmR2YXJ1ZGV0ZWt0ZXJhZGUgc3RhbmRhcmRhbHRlcm5hdGl2KSIKKworI34gbXNnaWQgIlNlbGVjdCB0eXBlICg/IGZvciBhdXRvLCAwIGZvciBjdXN0b20pOiAiCisjfiBtc2dzdHIgIlbDpGxqIHR5cCAoPyBmw7ZyIGF1dG9tYXRpc2sga29uZmlndXJhdGlvbiwgMCBmw7ZyIGFucGFzc2FkKTogIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmYWlsZWQuXG4iCisjfiBtc2dzdHIgIkF1dG9tYXRpc2sga29uZmlndXJhdGlvbiBtaXNzbHlja2FkZXMuXG4iCisKKyN+IG1zZ2lkICJBbHRlcm5hdGUgY3lsaW5kZXJzIgorI34gbXNnc3RyICJBbHRlcm5hdGl2YSBjeWxpbmRyYXIiCisKKyN+IG1zZ2lkICJQaHlzaWNhbCBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIkZ5c2lza2EgY3lsaW5kcmFyIgorCisjfiBtc2dpZCAiWW91IG1heSBjaGFuZ2UgYWxsIHRoZSBkaXNrIHBhcmFtcyBmcm9tIHRoZSB4IG1lbnUiCisjfiBtc2dzdHIgIkR1IGthbiDDpG5kcmEgYWxsYSBkaXNrYXBhcmFtZXRyYXIgZnLDpW4geC1tZW55biIKKworI34gbXNnaWQgIjMsNVwiIGZsb3BweSIKKyN+IG1zZ3N0ciAiMyw1LXR1bXNkaXNrZXR0IgorCisjfiBtc2dpZCAiTGludXggY3VzdG9tIgorI34gbXNnc3RyICJMaW51eCBhbnBhc3NhZCIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlcyBmcm9tIHV0aWwtbGludXgtJXNcbiIKKyN+IG1zZ3N0ciAiJXMgZnLDpW4gJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJXMgZnLDpW4gJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogZXJyb3I6IHRoZSBsYWJlbCAlcyBvY2N1cnMgb24gYm90aCAlcyBhbmQgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGV0aWtldHRlbiAlcyBmw7ZyZWtvbW1lciBiw6VkZSBww6UgJXMgb2NoICVzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gIiVzOiBjb3VsZCBub3Qgb3BlbiAlcywgc28gVVVJRCBhbmQgTEFCRUwgY29udmVyc2lvbiBjYW5ub3QgYmUgZG9uZS5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBrdW5kZSBpbnRlIMO2cHBuYSAlcywgc8OlIFVVSUQgb2NoIEVUSUtFVFQta29udmVydGVyaW5nIGthbiBpbnRlICIKKyN+ICJ1dGbDtnJhcy5cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogYmFkIFVVSUQiCisjfiBtc2dzdHIgIm1vdW50OiBmZWxha3RpZyBVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IGZhaWxlZCB3aXRoIG5mcyBtb3VudCB2ZXJzaW9uIDQsIHRyeWluZyAzLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBtaXNzbHlja2FkZXMgbWVkIG1vbnRlcmluZyBhdiBuZnMgdmVyc2lvbiA0LCBmw7Zyc8O2a2VyIG1lZCAzLi4uXG4iCisKKyN+IG1zZ2lkICJtb3VudDogbW91bnRpbmcgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG1vbnRlcmFyICVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2Fubm90IGZpbmQgJXMgaW4gJXMiCisjfiBtc2dzdHIgIm1vdW50OiBrYW4gaW50ZSBoaXR0YSAlcyBpICVzIgorCisjfiBtc2dpZCAibW91bnQ6IGVycm9yIHdoaWxlIGd1ZXNzaW5nIGZpbGVzeXN0ZW0gdHlwZVxuIgorI34gbXNnc3RyICJtb3VudDogZmVsIHZpZCBnaXNzbmluZyBhdiBmaWxzeXN0ZW1zdHlwZW5cbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIGhvc3Q6ZGlyIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiDDtnZlcmRyaXZldCBsw6VuZ3QgdsOkcmQ6a2F0YWxvZy1hcmd1bWVudFxuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IG11bHRpcGxlIGhvc3RuYW1lcyBub3Qgc3VwcG9ydGVkXG4iCisjfiBtc2dzdHIgIm1vdW50OiB2YXJuaW5nOiBmbGVyYSBzYW10aWRpZ2EgdsOkcmRuYW1uIHN0w7ZkcyBpbnRlXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZGlyZWN0b3J5IHRvIG1vdW50IG5vdCBpbiBob3N0OmRpciBmb3JtYXRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGthdGFsb2cgYXR0IG1vbnRlcmEgw6RyIGludGUgcMOlIGZvcm1hdGV0IHbDpHJkOmthdGFsb2dcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGthbiBpbnRlIGbDpSB0YWcgaSBhZHJlc3MgZsO2ciAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgIm1vdW50OiBmaWNrIGZlbGFrdGlnIGhwLT5oX2xlbmd0aFxuIgorCisjfiBtc2dpZCAibW91bnQ6IGV4Y2Vzc2l2ZWx5IGxvbmcgb3B0aW9uIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiDDtnZlcmRyaXZldCBsw6VuZ3QgZmxhZ2dhcmd1bWVudFxuIgorCisjfiBtc2dpZCAiV2FybmluZzogVW5yZWNvZ25pemVkIHByb3RvPSBvcHRpb24uXG4iCisjfiBtc2dzdHIgIlZhcm5pbmc6IE9rw6RuZCBcInByb3RvPVwiLWZsYWdnYS5cbiIKKworI34gbXNnaWQgIldhcm5pbmc6IE9wdGlvbiBuYW1sZW4gaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAiVmFybmluZzogRmxhZ2dhbiBuYW1sZW4gc3TDtmRzIGludGUuXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBtb3VudCBwYXJhbWV0ZXI6ICVzPSVkXG4iCisjfiBtc2dzdHIgIm9rw6RuZCBuZnMtbW9udGVyaW5nc3BhcmFtZXRlcjogJXM9JWRcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IG9wdGlvbiBub2xvY2sgaXMgbm90IHN1cHBvcnRlZC5cbiIKKyN+IG1zZ3N0ciAiVmFybmluZzogZmxhZ2dhbiBub2xvY2sgc3TDtmRzIGludGUuXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBtb3VudCBvcHRpb246ICVzJXNcbiIKKyN+IG1zZ3N0ciAib2vDpG5kIG5mcy1tb250ZXJpbmdzZmxhZ2dhOiAlcyVzXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ290IGJhZCBocC0+aF9sZW5ndGg/XG4iCisjfiBtc2dzdHIgIm1vdW50OiBmaWNrIGZlbGFrdGlnIGhwLT5oX2xlbmd0aD9cbiIKKworI34gbXNnaWQgIm5mcyBiaW5kcmVzdnBvcnQiCisjfiBtc2dzdHIgIm5mcy1iaW5kcmVzdnBvcnQiCisKKyN+IG1zZ2lkICJuZnMgc2VydmVyIHJlcG9ydGVkIHNlcnZpY2UgdW5hdmFpbGFibGUiCisjfiBtc2dzdHIgIm5mcy1zZXJ2ZXJuIHJhcHBvcnRlcmFkZSBhdHQgdGrDpG5zdGVuIHZhciBvdGlsbGfDpG5nbGlnIgorCisjfiBtc2dpZCAidXNlZCBwb3J0bWFwcGVyIHRvIGZpbmQgTkZTIHBvcnRcbiIKKyN+IG1zZ3N0ciAiYW52w6RuZGUgcG9ydG1hcHBlciBmw7ZyIGF0dCBoaXR0YSBORlMtcG9ydGVuXG4iCisKKyN+IG1zZ2lkICJ1c2luZyBwb3J0ICVkIGZvciBuZnMgZGVhbW9uXG4iCisjfiBtc2dzdHIgImFudsOkbmRlciBwb3J0ICVkIGbDtnIgbmZzLWRlbW9uZW5cbiIKKworI34gbXNnaWQgInVua25vd24gbmZzIHN0YXR1cyByZXR1cm4gdmFsdWU6ICVkIgorI34gbXNnc3RyICJva8OkbnQgbmZzLXN0YXR1c3JldHVydsOkcmRlOiAlZCIKKworI34gbXNnaWQgImhvc3Q6ICVzLCBkaXJlY3Rvcnk6ICVzXG4iCisjfiBtc2dzdHIgInbDpHJkOiAlcywga2F0YWxvZzogJXNcbiIKKworI34gbXNnaWQgInVtb3VudDogY2FuJ3QgZ2V0IGFkZHJlc3MgZm9yICVzXG4iCisjfiBtc2dzdHIgInVtb3VudDoga2FuIGludGUgZsOlIHRhZyBpIGFkcmVzcyBmw7ZyICVzXG4iCisKKyN+IG1zZ2lkICJ1bW91bnQ6IGdvdCBiYWQgaG9zdHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgInVtb3VudDogZmljayBmZWxha3RpZyBob3N0cC0+aF9sZW5ndGhcbiIKKworI34gbXNnaWQgIm1heCB0b3RhbCBzaGFyZWQgbWVtb3J5IChwYWdlcykgPSAlbHVcbiIKKyN+IG1zZ3N0ciAibWF4aW1hbHQgdG90YWx0IGRlbGF0IG1pbm5lIChzaWRvcikgPSAlbHVcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHBhdGggbGVuZ3RoXG4iCisjfiBtc2dzdHIgIiVzOiBvZ2lsdGlndCBjcmFtZnMtLWZlbGFrdGlnIHPDtmt2w6Rnc2zDpG5nZFxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS13cm9uZyBtYWdpY1xuIgorI34gbXNnc3RyICIlczogb2dpbHRpZ3QgY3JhbWZzLS1mZWxha3RpZyBtYWdpc2sgc2lmZnJhXG4iCisKKyN+IG1zZ2lkICIlczogd2FybmluZy0tZmlsZSBsZW5ndGggdG9vIGxvbmcsIHBhZGRlZCBpbWFnZT9cbiIKKyN+IG1zZ3N0ciAiJXM6IHZhcm5pbmctLWZpbGzDpG5nZGVuIMOkciBmw7ZyIGzDpW5nLCB1dGZ5bGxkIGF2YmlsZD9cbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tY3JjIGVycm9yXG4iCisjfiBtc2dzdHIgIiVzOiBvZ2lsdGlndCBjcmFtZnMtLWNyYy1mZWxcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHN1cGVyYmxvY2tcbiIKKyN+IG1zZ3N0ciAiJXM6IG9naWx0aWd0IGNyYW1mcy0tZmVsYWt0aWd0IHN1cGVyYmxvY2tcbiIKKworI34gbXNnaWQgIlN5bnRheCBlcnJvcjogJyVzJ1xuIgorI34gbXNnc3RyICJTeW50YXhmZWw6IFwiJXNcIlxuIgorCisjfiBtc2dpZCAiTm8gc3VjaCBwYXJhbWV0ZXIgc2V0OiAnJXMnXG4iCisjfiBtc2dzdHIgIkluZ2VuIHPDpWRhbiBwYXJhbWV0ZXIgw6RyIGluc3TDpGxsZDogXCIlc1wiXG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1wIF0gZGV2IG5hbWVcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtcCBdIGVuaGV0IG5hbW5cbiIKKworI34gbXNnaWQgIiIKKyN+ICIgICAlcyBbIC1wIF0gZGV2IHNpemUgc2VjdCBoZWFkcyB0cmFja3Mgc3RyZXRjaCBnYXAgcmF0ZSBzcGVjMSBmbXRfZ2FwXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIgICAlcyBbIC1wIF0gZW5oZXQgc3RvcmxlayBzZWt0b3JlciBodXZ1ZGVuIHNww6VyIHV0c3Ryw6Rja25pbmcgbWVsbGFucnVtICIKKyN+ICJoYXN0aWdoZXQgc3BlYzEgZm9ybWF0YXZzdMOlbmRcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLWMgfCAteSB8IC1uIHwgLWQgXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGVuaGV0XG4iCisKKyN+IG1zZ2lkICIgICAlcyBbIC1jIHwgLXkgfCAtbiBdIGRldlxuIgorI34gbXNnc3RyICIgICAlcyBbIC1jIHwgLXkgfCAtbiBdIGVuaGV0XG4iCisKKyN+IG1zZ2lkICJ2ZXJzaW9uIgorI34gbXNnc3RyICJ2ZXJzaW9uIgorCisjfiBtc2dpZCAiY291bGRuJ3Qgb3BlbiAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgImt1bmRlIGludGUgw7ZwcG5hIC9kZXYvdXJhbmRvbSIKKworI34gbXNnaWQgImNvdWxkbid0IHJlYWQgcmFuZG9tIGRhdGEgZnJvbSAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2Egc2x1bXBkYXRhIGZyw6VuIC9kZXYvdXJhbmRvbSIKKworI34gbXNnaWQgImNhbid0IHN0YXQoJXMpIgorI34gbXNnc3RyICJrYW4gaW50ZSB0YSBzdGF0dXMgcMOlICVzIgorCisjfiBtc2dpZCAiJXMgZG9lc24ndCBoYXZlIHRoZSBjb3JyZWN0IGZpbGVtb2RlcyIKKyN+IG1zZ3N0ciAiJXMgaGFyIGludGUgcsOkdHQgZmlscsOkdHRpZ2hldGVyIgorCisjfiBtc2dpZCAiY2FuJ3QgcmVhZCBkYXRhIGZyb20gJXMiCisjfiBtc2dzdHIgImthbiBpbnRlIGzDpHNhIGRhdGEgZnLDpW4gJXMiCisKKyN+IG1zZ2lkICIiCisjfiAiVG9vIG1hbnkgdXNlcnMgbG9nZ2VkIG9uIGFscmVhZHkuXG4iCisjfiAiVHJ5IGFnYWluIGxhdGVyLlxuIgorI34gbXNnc3RyICIiCisjfiAiRsO2ciBtw6VuZ2EgYW52w6RuZGFyZSDDpHIgcmVkYW4gaW5sb2dnYWRlLlxuIgorI34gIkbDtnJzw7ZrIGlnZW4gc2VuYXJlLlxuIgorCisjfiBtc2dpZCAiWW91IGhhdmUgdG9vIG1hbnkgcHJvY2Vzc2VzIHJ1bm5pbmcuXG4iCisjfiBtc2dzdHIgIkR1IGhhciBmw7ZyIG3DpW5nYSBwcm9jZXNzZXIga8O2cmFuZGUuXG4iCisKKyN+IG1zZ2lkICJUaGUgcGFzc3dvcmQgbXVzdCBoYXZlIGF0IGxlYXN0IDYgY2hhcmFjdGVycywgdHJ5IGFnYWluLlxuIgorI34gbXNnc3RyICJMw7ZzZW5vcmRldCBtw6VzdGUgaGEgbWluc3QgNiB0ZWNrZW4sIGbDtnJzw7ZrIGlnZW4uXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVGhlIHBhc3N3b3JkIG11c3QgY29udGFpbiBjaGFyYWN0ZXJzIG91dCBvZiB0d28gb2YgdGhlIGZvbGxvd2luZ1xuIgorI34gImNsYXNzZXM6ICB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLCBkaWdpdHMgYW5kIG5vbiBhbHBoYW51bWVyaWNcbiIKKyN+ICJjaGFyYWN0ZXJzLiBTZWUgcGFzc3dkKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorI34gbXNnc3RyICIiCisjfiAiTMO2c2Vub3JkZXQgbcOlc3RlIGlubmVow6VsbGEgdGVja2VuIHNvbSB0aWxsaMO2ciB0dsOlIGF2IGbDtmxqYW5kZSBrbGFzc2VyOlxuIgorI34gInNtw6Ugb2NoIHN0b3JhIGJva3N0w6R2ZXIsIHNpZmZyb3Igb2NoIGlja2UtYWxmYW51bWVyaXNrYSB0ZWNrZW4uIFNlXG4iCisjfiAicGFzc3dkKDEpIGbDtnIgbWVyIGluZm9ybWF0aW9uLlxuIgorCisjfiBtc2dpZCAiWW91IGNhbm5vdCByZXVzZSB0aGUgb2xkIHBhc3N3b3JkLlxuIgorI34gbXNnc3RyICJEdSBrYW4gaW50ZSDDpXRlcmFudsOkbmRhIGRldCBnYW1sYSBsw7ZzZW5vcmRldC5cbiIKKworI34gbXNnaWQgIlBsZWFzZSBkb24ndCB1c2Ugc29tZXRoaW5nIGxpa2UgeW91ciB1c2VybmFtZSBhcyBwYXNzd29yZCFcbiIKKyN+IG1zZ3N0ciAiQW52w6RuZCBpbnRlIG7DpWdvbnRpbmcgc29tIGxpa25hciBkaXR0IGFudsOkbmRhcm5hbW4gc29tIGzDtnNlbm9yZCFcbiIKKworI34gbXNnaWQgIlBsZWFzZSBkb24ndCB1c2Ugc29tZXRoaW5nIGxpa2UgeW91ciByZWFsbmFtZSBhcyBwYXNzd29yZCFcbiIKKyN+IG1zZ3N0ciAiQW52w6RuZCBpbnRlIG7DpWdvbnRpbmcgc29tIGxpa25hciBkaXR0IHZlcmtsaWdhIG5hbW4gc29tIGzDtnNlbm9yZCFcbiIKKworI34gbXNnaWQgIlVzYWdlOiBwYXNzd2QgW3VzZXJuYW1lIFtwYXNzd29yZF1dXG4iCisjfiBtc2dzdHIgIkFudsOkbmRuaW5nOiBwYXNzd2QgW2FudsOkbmRhcm5hbW4gW2zDtnNlbm9yZF1dXG4iCisKKyN+IG1zZ2lkICJPbmx5IHJvb3QgbWF5IHVzZSB0aGUgb25lIGFuZCB0d28gYXJndW1lbnQgZm9ybXMuXG4iCisjfiBtc2dzdHIgIkVuZGFzdCByb290IGthbiBhbnbDpG5kYSBmb3JtZW4gbWVkIGVuIGVsbGVyIHR2w6UgYXJndW1lbnQuXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFstZm9xc3ZWXSBbdXNlciBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICJBbnbDpG5kbmluZzogcGFzc3dkIFstZm9xc3ZWXSBbYW52w6RuZGFyZSBbbMO2c2Vub3JkXV1cbiIKKworI34gbXNnaWQgIkNhbid0IGV4ZWMgJXM6ICVzXG4iCisjfiBtc2dzdHIgIkthbiBpbnRlIGvDtnJhICVzOiAlc1xuIgorCisjfiBtc2dpZCAiQ2Fubm90IGZpbmQgbG9naW4gbmFtZSIKKyN+IG1zZ3N0ciAiS2FuIGludGUgaGl0dGEgYW52w6RuZGFybmFtbiIKKworI34gbXNnaWQgIk9ubHkgcm9vdCBjYW4gY2hhbmdlIHRoZSBwYXNzd29yZCBmb3Igb3RoZXJzLlxuIgorI34gbXNnc3RyICJFbmRhc3Qgcm9vdCBrYW4gYnl0YSBsw7ZzZW5vcmRldCDDpXQgYW5kcmEuXG4iCisKKyN+IG1zZ2lkICJDYW4ndCBmaW5kIHVzZXJuYW1lIGFueXdoZXJlLiBJcyBgJXMnIHJlYWxseSBhIHVzZXI/IgorI34gbXNnc3RyICIiCisjfiAiS2FuIGludGUgaGl0dGEgYW52w6RuZGFybmFtbmV0IG7DpWdvbnN0YW5zLiDDhHIgXCIlc1wiIHZlcmtsaWdlbiBlbiAiCisjfiAiYW52w6RuZGFyZT8iCisKKyN+IG1zZ2lkICJTb3JyeSwgSSBjYW4gb25seSBjaGFuZ2UgbG9jYWwgcGFzc3dvcmRzLiBVc2UgeXBwYXNzd2QgaW5zdGVhZC4iCisjfiBtc2dzdHIgIiIKKyN+ICJUeXbDpHJyLCBqYWcga2FuIGJhcmEgYnl0YSBsb2thbGEgbMO2c2Vub3JkLiBBbnbDpG5kIHlwcGFzc3dkIGlzdMOkbGxldC4iCisKKyN+IG1zZ2lkICJVSUQgYW5kIHVzZXJuYW1lIGRvZXMgbm90IG1hdGNoLCBpbXBvc3RlciEiCisjfiBtc2dzdHIgIlVJRCBvY2ggYW52w6RuZGFybmFtbiBzdMOkbW1lciBpbnRlIMO2dmVyZW5zLCBiZWRyYWdhcmUhIgorCisjfiBtc2dpZCAiQ2hhbmdpbmcgcGFzc3dvcmQgZm9yICVzXG4iCisjfiBtc2dzdHIgIkJ5dGVyIGzDtnNlbm9yZGV0IGbDtnIgJXNcbiIKKworI34gbXNnaWQgIkVudGVyIG9sZCBwYXNzd29yZDogIgorI34gbXNnc3RyICJBbmdlIGdhbWxhIGzDtnNlbm9yZGV0OiAiCisKKyN+IG1zZ2lkICJJbGxlZ2FsIHBhc3N3b3JkLCBpbXBvc3Rlci4iCisjfiBtc2dzdHIgIk9naWx0aWd0IGzDtnNlbm9yZCwgYmVkcmFnYXJlLiIKKworI34gbXNnaWQgIkVudGVyIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJBbmdlIG55YSBsw7ZzZW5vcmRldDogIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgbm90IGNoYW5nZWQuIgorI34gbXNnc3RyICJMw7ZzZW5vcmRldCDDpG5kcmFkZXMgaW50ZS4iCisKKyN+IG1zZ2lkICJSZS10eXBlIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICJBbmdlIG55YSBsw7ZzZW5vcmRldCBww6Ugbnl0dDogIgorCisjfiBtc2dpZCAiWW91IG1pc3NwZWxsZWQgaXQuIFBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAiRHUgc3RhdmFkZSBmZWwgdGlsbCBkZXQuIEzDtnNlbm9yZGV0IMOkbmRyYWRlcyBpbnRlLiIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQsIHVzZXIgJXMiCisjfiBtc2dzdHIgImzDtnNlbm9yZGV0IMOkbmRyYWRlcywgYW52w6RuZGFyZSAlcyIKKworI34gbXNnaWQgIlJPT1QgUEFTU1dPUkQgQ0hBTkdFRCIKKyN+IG1zZ3N0ciAiUk9PVC1Mw5ZTRU5PUkRFVCDDhE5EUkFERVMiCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkIGJ5IHJvb3QsIHVzZXIgJXMiCisjfiBtc2dzdHIgImzDtnNlbm9yZGV0IMOkbmRyYWRlcyBhdiByb290LCBhbnbDpG5kYXJlICVzIgorCisjfiBtc2dpZCAiY2FsbGluZyBzZXRwd25hbSB0byBzZXQgcGFzc3dvcmQuXG4iCisjfiBtc2dzdHIgImFucm9wYXIgc2V0cHduYW0gZsO2ciBhdHQgc3TDpGxsYSBpbiBsw7ZzZW5vcmQuXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorI34gbXNnc3RyICJMw7ZzZW5vcmRldCDDpG5kcmFkZXMgKklOVEUqLiBGw7Zyc8O2ayBpZ2VuIHNlbmFyZS5cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkIGNoYW5nZWQuXG4iCisjfiBtc2dzdHIgIkzDtnNlbm9yZGV0IMOkbmRyYWRlcy5cbiIKKworI34gbXNnaWQgIm1vdW50OiB0aGlzIHZlcnNpb24gd2FzIGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgdGhlIHR5cGUgYG5mcyciCisjfiBtc2dzdHIgIm1vdW50OiBkZW5uYSB2ZXJzaW9uIGtvbXBpbGVyYWRlcyB1dGFuIHN0w7ZkIGbDtnIgdHlwZW4gXCJuZnNcIiIKKworI34gbXNnaWQgIkNhbm5vdCB1bW91bnQgXCIlc1wiXG4iCisjfiBtc2dzdHIgIkthbiBpbnRlIGF2bW9udGVyYSBcIiVzXCJcbiIKKworI34gbXNnaWQgIkNhbm5vdCB1bW91bnQgJXNcbiIKKyN+IG1zZ3N0ciAiS2FuIGludGUgYXZtb250ZXJhICVzXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICVkXG4iCisjfiBtc2dzdHIgIlZhcm5pbmc6IHV0ZWzDpG1uYXIgcGFydGl0aW9uZXIgZWZ0ZXIgJWRcbiIKKworI34gbXNnaWQgImdldCBzaXplIgorI34gbXNnc3RyICJow6RtdGEgc3RvcmxlayIKKworI34gbXNnaWQgIiVkIGJhZCBwYWdlc1xuIgorI34gbXNnc3RyICIlZCBmZWxha3RpZ2Egc2lkb3JcbiIKKworI34gbXNnaWQgIiVzOiBlcnJvcjogc2l6ZSAlbGQgaXMgbGFyZ2VyIHRoYW4gZGV2aWNlIHNpemUgJWRcbiIKKyN+IG1zZ3N0ciAiJXM6IGZlbDogc3Rvcmxla2VuICVsZCDDpHIgc3TDtnJyZSDDpG4gZW5oZXRzc3Rvcmxla2VuICVkXG4iCisKKyN+IG1zZ2lkICJUb3RhbCBhbGxvY2F0ZWQgc2VjdG9ycyAlZCBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWRcbiIKKyN+IG1zZ3N0ciAiVG90YWxhIGFudGFsZXQgYWxsb2tlcmFkZSBzZWt0b3JlciAlZCBzdMO2cnJlIMOkbiBtYXhpbWFsYSAlZFxuIgorCisjfiBtc2dpZCAiJXM6IG5vdCBjb21waWxlZCB3aXRoIG1pbml4IHYyIHN1cHBvcnRcbiIKKyN+IG1zZ3N0ciAiJXM6IGludGUga29tcGlsZXJhZCBtZWQgc3TDtmQgZsO2ciBtaW5peCB2MlxuIgorCisjfiBtc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgZm9yICVzXG4iCisjfiBtc2dzdHIgIkJMS0dFVFNJWkUtaW9jdGwgbWlzc2x5Y2thZGVzIGbDtnIgJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBmcyB0eXBlICVzIG5vdCBzdXBwb3J0ZWQgYnkga2VybmVsIgorI34gbXNnc3RyICJtb3VudDogZmlsc3lzdGVtc3R5cGVuICVzIHN0w7ZkcyBpbnRlIGF2IGvDpHJuYW4iCisKKyN+IG1zZ2lkICJtb3VudDogJXMgZHVwbGljYXRlIC0gbm90IG1vdW50ZWQiCisjfiBtc2dzdHIgIm1vdW50OiAlcyBkdWJibGVyYWQgLSBpbnRlIG1vbnRlcmFkIgorCisjfiBtc2dpZCAiVVVJRCIKKyN+IG1zZ3N0ciAiVVVJRCIKKworI34gbXNnaWQgIm1vdW50OiB0aGUgbGFiZWwgJXMgb2NjdXJzIG9uIGJvdGggJXMgYW5kICVzIC0gbm90IG1vdW50ZWRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IGV0aWtldHRlbiAlcyBmw7ZyZWtvbW1lciBww6UgYsOlZGUgJXMgb2NoICVzIC0gaW50ZSBtb250ZXJhZFxuIgorCisjfiBtc2dpZCAidW1vdW50OiBvbmx5IHJvb3QgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKKyN+IG1zZ3N0ciAidW1vdW50OiBlbmRhc3Qgcm9vdCBrYW4gYXZtb250ZXJhICVzIGZyw6VuICVzIgorCisjfiBtc2dpZCAiU2l6ZSAoTUIpIgorI34gbXNnc3RyICJTdG9ybGVrIChNQikiCisKKyN+IG1zZ2lkICJTaXplIChHQikiCisjfiBtc2dzdHIgIlN0b3JsZWsgKEdCKSIKKworI34gbXNnaWQgIldpbjk1IEZBVDMyIgorI34gbXNnc3RyICJXaW45NSBGQVQzMiIKKworI34gbXNnaWQgIldpbjk1IEZBVDMyIChMQkEpIgorI34gbXNnc3RyICJXaW45NSBGQVQzMiAoTEJBKSIKKworI34gbXNnaWQgIldpbjk1IEZBVDE2IChMQkEpIgorI34gbXNnc3RyICJXaW45NSBGQVQxNiAoTEJBKSIKKworI34gbXNnaWQgIldpbjk1IEV4dCdkIChMQkEpIgorI34gbXNnc3RyICJXaW45NSBVdMO2a2FkIChMQkEpIgorCisjfiBtc2dpZCAiSGlkZGVuIFdpbjk1IEZBVDMyIgorI34gbXNnc3RyICJEb2xkIFdpbjk1IEZBVDMyIgorCisjfiBtc2dpZCAiSGlkZGVuIFdpbjk1IEZBVDMyIChMQkEpIgorI34gbXNnc3RyICJEb2xkIFdpbjk1IEZBVDMyIChMQkEpIgorCisjfiBtc2dpZCAiSGlkZGVuIFdpbjk1IEZBVDE2IChMQkEpIgorI34gbXNnc3RyICJEb2xkIFdpbjk1IEZBVDE2IChMQkEpIgorCisjfiBtc2dpZCAiQm9vdCAoJTAyWCkiCisjfiBtc2dzdHIgIlN0YXJ0ICglMDJYKSIKKworI34gbXNnaWQgIk5vbmUgKCUwMlgpIgorI34gbXNnc3RyICJJbmdlbiAoJTAyWCkiCisKKyN+IG1zZ2lkICIlczogWyUwNHhdOiVsZCAoJXMpIG9mZnNldCAlZCwgJXMgZW5jcnlwdGlvblxuIgorI34gbXNnc3RyICIlczogWyUwNHhdOiVsZCAoJXMpIGF2c3TDpW5kICVkLCBrcnlwdGVyaW5nOiAlc1xuIgorCisjfiBtc2dpZCAiIgorI34gIm1vdW50OiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuXG4iCisjfiAiICAgICAgIE1heWJlIC9kZXYvbG9vcCMgaGFzIGEgd3JvbmcgbWFqb3IgbnVtYmVyPyIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBLdW5kZSBpbnRlIGhpdHRhIG7DpWdvbiBzbGluZ2VuaGV0LlxuIgorI34gIiAgICAgICBLYW5za2UgL2Rldi9sb29wIyBoYXIgZXR0IGZlbGFrdGlndCBodXZ1ZG51bW1lcj8iCisKKyN+IG1zZ2lkICIiCisjfiAibW91bnQ6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorI34gIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2UgKHRoZW4gcmVjb21waWxlIG9yIGBpbnNtb2QgbG9vcC5vJyksIG9yXG4iCisjfiAiICAgICAgIG1heWJlIC9kZXYvbG9vcCMgaGFzIHRoZSB3cm9uZyBtYWpvciBudW1iZXI/IgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IEt1bmRlIGludGUgaGl0dGEgbsOlZ29uIHNsaW5nZW5oZXQuIERlbm5hIGvDpHJuYSB2ZXQga2Fuc2tlIGludGVcbiIKKyN+ICIgICAgICAgb20gc2xpbmdlbmhldGVuIChvbSBkZXQgw6RyIHPDpSBiw7ZyIGR1IGtvbXBpbGVyYSBvbSBlbGxlclxuIgorI34gIiAgICAgICBcImluc21vZCBsb29wLm9cIiksIGVsbGVyIGthbnNrZSAvZGV2L2xvb3AjIGhhciBmZWwgaHV2dWRudW1tZXI/IgorCisjfiBtc2dpZCAiSW5pdCAodXAgdG8gMTYgaGV4IGRpZ2l0cyk6ICIKKyN+IG1zZ3N0ciAiSW5pdCAodXBwIHRpbGwgMTYgaGV4YWRlY2ltYWxhIHNpZmZyb3IpOiAiCisKKyN+IG1zZ2lkICJOb24taGV4IGRpZ2l0ICclYycuXG4iCisjfiBtc2dzdHIgIklja2UtaGV4YWRlY2ltYWwgc2lmZnJhIFwiJWNcIi5cbiIKKworI34gbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGdldCBrZXkgZm9yIGVuY3J5cHRpb24gc3lzdGVtICVkXG4iCisjfiBtc2dzdHIgIlZldCBpbnRlIGh1ciBqYWcgc2thIGbDpSB0YWcgaSBueWNrZWwgZsO2ciBrcnlwdGVyaW5nc3N5c3RlbSAlZFxuIgorCisjfiBtc2dpZCAiIgorI34gIlVuaXRzID0gbWVnYWJ5dGVzIG9mIDEwNDg1NzYgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICUiCisjfiAiZFxuIgorI34gIlxuIgorI34gbXNnc3RyICIiCisjfiAiRW5oZXRlciA9IG1lZ2FieXRlIG1lZCAxMDQ4NTc2IGJ5dGUsIGJsb2NrIG1lZCAxMDI0IGJ5dGUsIHLDpGtuYXQgZnLDpW4gJWRcbiIKKyN+ICJcbiIKKworI34gbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgIE1CICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCisjfiBtc2dzdHIgIiAgIEVuaGV0IFN0YXJ0IELDtnJqYW4gU2x1dCAgICBNQiAgICAgIEJsb2NrICAgSWQgIFN5c3RlbVxuIgorCisjfiBtc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKKyN+IG1zZ3N0ciAiUGFydGl0aW9uICVpIHNsdXRhciBpbnRlIHDDpSBjeWxpbmRlcmdyw6RuczpcbiIKKworI34gbXNnaWQgIkNhbid0IG9wZW4gaGVscCBmaWxlIgorI34gbXNnc3RyICJLYW4gaW50ZSDDtnBwbmEgaGrDpGxwZmlsIgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdHIuZ21vIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdHIuZ21vCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxYmE3NGMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby90ci5nbW8KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdHIucG8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby90ci5wbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzU5NzZjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdHIucG8KQEAgLTAsMCArMSwxMjY4NCBAQAorIyBUdXJraXNoIHRyYW5zbGF0aW9ucyBmb3IgdXRpbC1saW51eCBtZXNzYWdlcy4KKyMgQ29weXJpZ2h0IMKpIDIwMDQgTmlsZ8O8biBCZWxtYSBCdWfDvG5lci4KKyMKKyMgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGZyZWVseSBjb3B5IGFuZCBkaXN0cmlidXRlCisjIHRoaXMgZmlsZSBhbmQgbW9kaWZpZWQgdmVyc2lvbnMsIHByb3ZpZGVkIHRoYXQgdGhpcworIyBoZWFkZXIgaXMgbm90IHJlbW92ZWQgYW5kIG1vZGlmaWVkIHZlcnNpb25zIGFyZSBtYXJrZWQKKyMgYXMgc3VjaC4gTm8gd2FycmFudHkuCisjIE5pbGfDvG4gQmVsbWEgQnVnw7xuZXIgPG5pbGd1bkBidWd1bmVyLm5hbWUudHI+LCAyMDAxLCAuLi4sIDIwMDYuCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4IDIuMTMtcHJlN1xuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT5cbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wMy0yMiAwOTozNyswMTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAwNi0wMy0wNiAxNTo0NSswMjAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBOaWxnw7xuIEJlbG1hIEJ1Z8O8bmVyIDxuaWxndW5AYnVndW5lci5uYW1lLnRyPlxuIgorIkxhbmd1YWdlLVRlYW06IFR1cmtpc2ggPGdudS10ci11MTJhQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKKyJNSU1FLVZlcnNpb246IDEuMFxuIgorIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFxuIgorIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKKyJYLUdlbmVyYXRvcjogS0JhYmVsIDEuOS4xXG4iCisiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgInNhbHQtb2t1bnVyIGF5YXJsYW7EsXIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3MAorbXNnaWQgInNldCByZWFkLXdyaXRlIgorbXNnc3RyICJva3UteWF6IGF5YXJsYW7EsXIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3NgorbXNnaWQgImdldCByZWFkLW9ubHkiCittc2dzdHIgInNhbHQtb2t1bnVyIGlzZSAxIHZlcmlyIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODIKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAic2VrdMO2ciB1enVubHXEn3VudSB2ZXJpciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4CisjLCBmdXp6eQorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICJzZWt0w7ZyIHV6dW5sdcSfdW51IHZlcmlyIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6OTQKK21zZ2lkICJnZXQgbWluaW11bSBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTAwCittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwNgorIywgZnV6enkKK21zZ2lkICJnZXQgYWxpZ25tZW50IG9mZnNldCIKK21zZ3N0ciAiZMO8xJ/DvG0gc2F5xLFzxLEgaGF0YWzEsSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExMgorIywgZnV6enkKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgIlNpbGluZGlyIGJhxZ/EsW5hIGZhemxhZGFuIHNla3TDtnJsZXIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTgKK21zZ2lkICJnZXQgYmxvY2tzaXplIgorbXNnc3RyICJibG9rIHV6dW5sdcSfdW51IHZlcmlyIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAiYmxvayB1enVubHXEn3UgYmVsaXJ0aWxpciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzMQorbXNnaWQgImdldCAzMi1iaXQgc2VjdG9yIGNvdW50IgorbXNnc3RyICIzMiBiaXRsaWsgc2VrdMO2ciBzYXnEsXPEsW7EsSB2ZXJpciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICJib3l1dGxhcsSxIGJheXQgY2luc2luZGVuIHZlcmlyIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTQ0Cittc2dpZCAic2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAicmVhZGFoZWFkIGF5YXJsYW7EsXIgLSBzZWt0w7ZyIHNhecSxc8SxIGlsZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1MAorbXNnaWQgImdldCByZWFkYWhlYWQiCittc2dzdHIgInJlYWRhaGVhZCBva3VudXIgLSBzZWt0w7ZyIHNhecSxc8SxIG9sYXJhayIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1NworIywgZnV6enkKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgInJlYWRhaGVhZCBheWFybGFuxLFyIC0gc2VrdMO2ciBzYXnEsXPEsSBpbGUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICJyZWFkYWhlYWQgb2t1bnVyIC0gc2VrdMO2ciBzYXnEsXPEsSBvbGFyYWsiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjcKK21zZ2lkICJmbHVzaCBidWZmZXJzIgorbXNnc3RyICJ0YW1wb25sYXLEsSBib8WfYWx0xLFyIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTcxCittc2dpZCAicmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiYsO2bMO8bWxlbWUgdGFibG9zdSB5ZW5pZGVuIG9rdW51ciIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAiS3VsbGFuxLFtxLE6XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyAtLXJlcG9ydCBbZGV2aWNlc11cbiIKK21zZ3N0ciAiICAlcyAtLXJlcG9ydCBbQVlHSVRMQVJdXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyBbLXZ8LXFdIEtPTVVUTEFSIEFZR0lUTEFSXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIgorbXNnc3RyICJNw7xta8O8biBrb211dGxhcjpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4NworIywgZnV6enkKK21zZ2lkICJnZXQgc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzIgorbXNnc3RyICJib3l1dGxhcsSxIGJheXQgY2luc2luZGVuIHZlcmlyIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIiVzOiBCaWxpbm1leWVuIGtvbXV0OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIGJpciBhcmfDvG1hbmxhIGt1bGxhbsSxbMSxclxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6Mzc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgImVyacWfaW0gYmHFn2FyxLFzxLF6IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN1Y2NlZWRlZC5cbiIKK21zZ3N0ciAiJXMgYmHFn2FyxLFsZMSxLlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDI3IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzOiAlcyBhw6fEsWxhbcSxeW9yXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiAlcyDDvHplcmluZGUgRy/DhyBoYXRhc8SxXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU3RhcnRTZWMgICAgICAgICAgICBTaXplICAgRGV2aWNlXG4iCittc2dzdHIgIlJPICAgIFJBICBTYm95dSAgQmJveXUgQmHFn2xTa3QgICAgICBCb3l1dCAgIEF5Z8SxdFxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAia3VsbGFuxLFtxLE6XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Tk9URTogZWx2dHVuZSBvbmx5IHdvcmtzIHdpdGggMi40IGtlcm5lbHNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInBhcnNlIGVycm9yXG4iCittc2dzdHIgImVyacWfaW0gaGF0YXPEsSIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTEwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJsb2NrZGV2aWNlLCB1c2UgLWggZm9yIGhlbHBcbiIKK21zZ3N0ciAiJXMgYmlyIGJsb2sgYXlnxLF0xLEgeWEgZGEgZG9zeWFzxLEgZGXEn2lsXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZWx2dHVuZSBpcyBvbmx5IHVzZWZ1bCBvbiBvbGRlciBrZXJuZWxzO1xuIgorImZvciAyLjYgdXNlIElPIHNjaGVkdWxlciBzeXNmcyB0dW5hYmxlcyBpbnN0ZWFkLi5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9ybWF0dGluZyAuLi4gIgorbXNnc3RyICJCacOnZW1sZW5kaXJpbGl5b3IuLi4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo0OSBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJ0YW1hbVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmVyaWZ5aW5nIC4uLiAiCittc2dzdHIgIkRvxJ9ydWxhbsSxeW9yLi4uIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIk9rdW5hbjogIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmxlbSByZWFkaW5nIGN5bGluZGVyICVkLCBleHBlY3RlZCAlZCwgcmVhZCAlZFxuIgorbXNnc3RyICIlZCBzaWxpbmRpcmkgb2t1bnVya2VuIHNvcnVuIMOnxLFrdMSxLCAlZCBnZXJla2lya2VuICVkIG9rdW5kdVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImJhZCBkYXRhIGluIGN5bCAlZFxuIgorIkNvbnRpbnVpbmcgLi4uICIKK21zZ3N0ciAiIgorIiVkIHNpbGluZGlyaW5kZSB2ZXJpIGhhdGFsxLFcbiIKKyJEZXZhbSBlZGlsaXlvci4uLiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiAlcyBbIC1uIF0gQVlHSVRcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjExOCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg0CisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxODEgZGlzay11dGlscy9ta2ZzLmJmcy5jOjExNCBkaXNrLXV0aWxzL21rZnMuYzo1MgorIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjgxMiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzIKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDg3IG1pc2MtdXRpbHMvZGRhdGUuYzoxNzkgbWlzYy11dGlscy9yZW5hbWUuYzo3OQorIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNDcgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICglcylcbiIKK21zZ3N0ciAiJXM6ICglcylcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIiVzOiBiaXIgYmxvayBheWfEsXTEsSBkZcSfaWxcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAibWV2Y3V0IGJpw6dlbSB0w7xyw7wgc2FwdGFuYW1hZMSxIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgIiVzLXnDvHpsw7wsICVkIGl6LCAlZCBzZWt0w7ZyL2l6LiBUb3BsYW0gJWQga0IuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIsOHaWZ0IgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICJUZWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisia3VsbGFuxLFtxLE6ICVzIFstaHZdIFsteCBkaXppbl0gZG9zeWFcbiIKKyIgLWggICAgICAgICBidSB5YXJkxLFtIGlsZXRpc2luaSBnw7ZzdGVyaXJcbiIKKyIgLXggZGl6aW4gICBkaXppbiBpw6dpbmUgYcOnYXJcbiIKKyIgLXYgICAgICAgICBheXLEsW50xLFsxLEgw6fEsWt0xLEgdmVyaXJcbiIKKyIgZG9zeWEgICAgICBkZW5lbmVuIGRvc3lhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN0YXQgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKFNvbnJha2kgZG9zeWE6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2NyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIm9wZW5wdHkgYmHFn2FyxLFzxLF6XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIGZhaWxlZDogdW5hYmxlIHRvIGRldGVybWluZSBkZXZpY2Ugc2l6ZTogJXMiCittc2dzdHIgIiVzOiB1eWFyxLEgLS0gZG9zeWEgc2lzdGVtaSBib3l1IHNhcHRhbmFtxLF5b3IgXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vdCBhIGJsb2NrIGRldmljZSBvciBmaWxlOiAlcyIKK21zZ3N0ciAiJXMgYmlyIGJsb2sgYXlnxLF0xLEgeWEgZGEgZG9zeWFzxLEgZGXEn2lsXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODQgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyNgorIywgZnV6enkKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgIiVzOiBnZcOnZXJzaXogY3JhbWZzIC0tIGRvc3lhIHV6dW5sdcSfdSDDp29rIGvDvMOnw7xrXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGZhaWxlZDogJXMiCittc2dzdHIgIihTb25yYWtpIGRvc3lhOiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2CisjLCBmdXp6eQorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgIkRvc3lhIHNpc3RlbWkgdMO8csO8bsO8IHZlcmluOiAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAiU2VrdMO2ciBzYXnEsXPEsSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyMworbXNnaWQgInplcm8gZmlsZSBjb3VudCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIGV4dGVuZHMgcGFzdCBlbmQgb2YgZmlsZXN5c3RlbVxuIgorbXNnc3RyICJVeWFyxLE6ICVzIGRpc2sgYsO2bMO8bcO8IGRpc2sgc29udW51IGHFn8SxeW9yXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIiVzOiB1eWFyxLEgLS0gZXNraSBjcmFtZnMgZcWfbGVtaSwgQ1JDJ3NpelxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjcyIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozMzkKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NzcgbG9naW4tdXRpbHMvY2hmbi5jOjUyOSBsb2dpbi11dGlscy9jaHNoLmM6NDM5CisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE0MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzIxCittc2dpZCAibWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAiYmVsbGVrIGF5csSxbGFtYWTEsSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI5NworIywgZnV6enkKK21zZ2lkICJjcmMgZXJyb3IiCittc2dzdHIgIiwgaGF0YSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorIywgZnV6enkKK21zZ2lkICJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiCittc2dzdHIgImvDtmsgZMO8xJ/DvG3DvCBiaXIgZGl6aW4gZGXEn2lsIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByb290IG9mZnNldCAoJWx1KSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mzg3Cittc2dpZCAiZGF0YSBibG9jayB0b28gbGFyZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM5MQorIywgYy1mb3JtYXQKK21zZ2lkICJkZWNvbXByZXNzaW9uIGVycm9yICVwKCVkKTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICIgICVsZCBkZSBkZWxpayAoJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjMgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIgorbXNnc3RyICIgICVsZCBkZW4gJWxkIHllIGthZGFyIGJsb2sgc8Sxa8SxxZ90xLFyxLFsbWFtxLHFnyAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub24tYmxvY2sgKCVsZCkgYnl0ZXMiCittc2dzdHIgIiVzOiBibG9rc3V6ICglbGQpIGJheXRcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICIlczogYm95dXRzdXogKCVsZCB2cyAlbGQpIGJheXRcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZmFpbGVkOiAlcyIKK21zZ3N0ciAiKFNvbnJha2kgZG9zeWE6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGNob3duIGZhaWxlZDogJXMiCittc2dzdHIgIm1vdW50IGJhxZ9hcsSxc8SxeiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAibW91bnQgYmHFn2FyxLFzxLF6IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ6YW1hbiBhxZ/EsW3EsSBkZcSfZXJpIGhhdGFsxLE6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0OTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgIi9kZXY6IGNoZGlyKCkgYmHFn2FyxLFzxLF6OiAlbSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTQKK21zZ2lkICJiYWQgZmlsZW5hbWUgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MjEKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGlub2RlIG9mZnNldCIKK21zZ3N0ciAiZMO8xJ/DvG0gc2F5xLFzxLEgaGF0YWzEsSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUzNworbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NDAKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIHNpemUgYW5kIG5vbi16ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTcxCittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3NAorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICIlczogc2VtYm9saWsgYmHEnyBgJXMnIMO8emVyaW5kZSBib3l1dCBoYXRhc8SxXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN5bWxpbmsgZmFpbGVkOiAlcyIKK21zZ3N0ciAiZnN5bmMgaGF0YSB2ZXJkaSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAiJXM6IHNhaHRlIGtpcCBgJXMnICglbylcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAibW91bnQgYmHFn2FyxLFzxLF6IgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIHN0YXJ0ICglbGQpIDwgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgZW5kICglbGQpICE9IGZpbGUgZGF0YSBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorIiVzOiBnZcOnZXJzaXogY3JhbWZzIC0tIGRpemluIHZlcmlzaSBzb251ICglbGQpICE9IGRvc3lhIHZlcmlzaSBiYcWfbGFuZ8SxY8SxICglIgorImxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjkwCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgZmlsZSBkYXRhIG9mZnNldCIKK21zZ3N0ciAiJXM6IGdlw6dlcnNpeiBjcmFtZnMgLS0gZ2XDp2Vyc2l6IGRvc3lhIHZlcmlzaSBiYcWfbGFuZ8SxY8SxXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MTQKKyMsIGZ1enp5Cittc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlIG91dGJ1ZmZlciIKK21zZ3N0ciAiVGFtcG9uIGF5csSxbGFtYWTEsS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworIywgZnV6enkKK21zZ2lkICJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiCittc2dzdHIgIiVzOiAteCBkZXN0ZcSfaSBvbG1ha3PEsXrEsW4gZGVybGVubWnFn1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiAlcyBbLWxhcnZzbWZdIC9kZXYvxLBTxLBNXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiJXMgYmHEn2zEsS5cdCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI1Cittc2dpZCAiRG8geW91IHJlYWxseSB3YW50IHRvIGNvbnRpbnVlIgorbXNnc3RyICJHZXLDp2VrdGVuIGRldmFtIGV0bWVrIGlzdGl5b3IgbXVzdW51ej8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICJjaGVjayBhYm9ydGVkLlxuIgorbXNnc3RyICJkZW5ldGltIGR1cmR1LlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNDggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiYCVzJyBkb3N5YXPEsW5kYWtpIGLDtmxnZSBObyA8IMSwTEtCw5ZMR0UuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiYCVzJyBkb3N5YXPEsW5kYWtpIGLDtmxnZSBObyA+PSBCw5ZMR0Ugc2F5xLFzxLEuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzgwCittc2dpZCAiUmVtb3ZlIGJsb2NrIgorbXNnc3RyICJibG9rIGthbGTEsXLEsWxzxLFuIG3EsT8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiT2t1bWEgaGF0YXPEsTogJyVzJyBkb3N5YXPEsW5kYWtpIGJsb8SfYSBlcmnFn2lsZW1peW9yXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiBiYWQgYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIk9rdW1hIGhhdGFzxLE6ICclcycgZG9zeWFzxLFuZGFraSBiaXIgYmxvayBib3p1a1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyJCb3p1ayBibG/En2EgeWF6bWF5YSDDp2FsxLHFn8SxbMSxcmtlbiBpw6cgaGF0YSBvbHXFn3R1OlxuIgorIllhem1hIGlzdGXEn2kgeW9rc2F5xLFsZMSxXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDcKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAid3JpdGVfYmxvY2sgacWfbGVtaW5kZSBlcmnFn2ltIHNhxJ9sYW5hbWFkxLEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJZYXptYSBoYXRhc8SxOiAnJXMnIGRvc3lhc8SxbmRha2kgYmlyIGJsb2sgYm96dWtcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgInN1cGVyLWJsb2sgeWF6bWEgacWfbGVtaW5kZSBlcmnFn2ltIHNhxJ9sYW5hbWFkxLEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgc3VwZXItYmxvY2siCittc2dzdHIgInN1cGVyLWJsb2thIHlhesSxbGFtYWTEsSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiZMO8xJ/DvG0gZcWfbGVtaSB5YXrEsWxhbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgImLDtmxnZSB0YWJsb3N1IHlhesSxbGFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU2MAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgIkTDvMSfw7xtbGVyIHlhesSxbGFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU4NworbXNnaWQgInNlZWsgZmFpbGVkIgorbXNnc3RyICJlcmnFn2ltIGJhxZ9hcsSxc8SxeiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgYnVmZmVyIGZvciBzdXBlcmJsb2NrIgorbXNnc3RyICJ0YWJsb2xhciBpw6dpbiB0YW1wb24gYmVsbGVrIGF5csSxbGFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU5NAorbXNnaWQgInVuYWJsZSB0byByZWFkIHN1cGVyIGJsb2NrIgorbXNnc3RyICJzdXBlciBibG9rIG9rdW5hbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJzdXBlci1ibG9rdGFraSBiZXRpbWxleWljaSBudW1hcmEgaGF0YWzEsSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE0Cittc2dpZCAiT25seSAxayBibG9ja3Mvem9uZXMgc3VwcG9ydGVkIgorbXNnc3RyICJTYWRlY2UgMWsgYmxvay9iw7ZsZ2UgZGVzdGXEn2kgdmFyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTYKK21zZ2lkICJiYWQgc19pbWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAic3VwZXItYmxva3Rha2kgc19pbWFwX2Jsb2NrcyBhbGFuxLEgYm96dWsiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxOAorbXNnaWQgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJzdXBlci1ibG9rdGFraSBzX3ptYXBfYmxvY2tzIGFsYW7EsSBib3p1ayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI1Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgbWFwIgorbXNnc3RyICJkw7zEn8O8bSBlxZ9sZW1pIGnDp2luIHRhbXBvbiBiZWxsZWsgYXlyxLFsYW3EsXlvciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI4CisjLCBmdXp6eQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgbWFwIgorbXNnc3RyICJkw7zEn8O8bSBlxZ9sZW1pIGnDp2luIHRhbXBvbiBiZWxsZWsgYXlyxLFsYW3EsXlvciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICJEw7zEn8O8bWxlciBpw6dpbiB0YW1wb24gYmVsbGVrIGF5csSxbGFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICJEw7zEn8O8bSBzYXnEsXPEsSBrYWRhciB0YW1wb24gYmVsbGVrIGF5csSxbGFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgImLDtmxnZSBzYXnEsXPEsSBrYWRhciB0YW1wb24gYmVsbGVrIGF5csSxbGFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlIG1hcCIKK21zZ3N0ciAiRMO8xJ/DvG0gZcWfbGVtaSBva3VuYW3EsXlvciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgImLDtmxnZSB0YWJsb3N1IG9rdW5hbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDUKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZXMiCittc2dzdHIgIkTDvMSfw7xtbGVyIG9rdW5hbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIlV5YXLEsTogxLBsa0LDtmxnZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkIGTDvMSfw7xtXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1MyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWxkIGJsb2Nrc1xuIgorbXNnc3RyICIlbGQgYmxva1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIsSwbGtWZXJpQsO2bGdlc2kgPSAlbGQgKCVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lc2l6ZT0lZFxuIgorbXNnc3RyICJCw7ZsZ2VVenVubHXEn3UgPSAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF4c2l6ZT0lbGRcbiIKK21zZ3N0ciAiQXphbWlVenVubHVrID0gJWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIkRvc3lhU2lzdGVtaSBkdXJ1bXUgPSAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorImlzaW1VenVubHXEn3UgPSAlZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NzMgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1hcmtlZCB1bnVzZWQsIGJ1dCB1c2VkIGZvciBmaWxlICclcydcbiIKK21zZ3N0ciAiJWQuIGTDvMSfw7xtIHNlcmJlc3Qgb2xhcmFrIGltbGkgYW1hICclcycgZG9zeWFzxLEgacOnaW4ga3VsbGFuxLFsbcSxxZ9cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICJLdWxsYW7EsW1kYSBvbGFyYWsgaW1sZW5zaW4gbWk/IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIgorbXNnc3RyICJgJXMnICUwNW8ga2lwZSBzYWhpcFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIlV5YXLEsTogZMO8xJ/DvG0gc2F5xLFzxLEgw6dvayBiw7x5w7xrLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAia8O2ayBkw7zEn8O8bcO8IGJpciBkaXppbiBkZcSfaWwiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc4OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgaGFzIGJlZW4gdXNlZCBiZWZvcmUuIE5vdyBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJCbG9rIGAlcycgZG9zeWFzxLEgacOnaW4ga3VsbGFuxLFsxLF5b3IuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3OTAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIzCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTUKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxMAorbXNnaWQgIkNsZWFyIgorbXNnc3RyICJUZW1pemxlbnNpbiBtaT8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgJWQgaW4gZmlsZSBgJXMnIGlzIG1hcmtlZCBub3QgaW4gdXNlLiIKK21zZ3N0ciAiYCUyJHMnIGRvc3lhc8SxbsSxbiAlMSRkLiBibG/En3Uga3VsbGFuxLFtZGEgZGXEn2lsIG9sYXJhayBpbWxpLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzNQorbXNnaWQgIkNvcnJlY3QiCittc2dzdHIgIkRvxJ9ydSBtdT8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAiJyVzJyBkaXppbmkgJyUuKnMnIGRvc3lhc8SxIGnDp2luIGJpciBoYXRhbMSxIGTDvMSfw7xtIG51bWFyYXPEsSBpw6dlcml5b3IuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0NAorbXNnaWQgIiBSZW1vdmUiCittc2dzdHIgIiBTaWxpbnNpbiBtaT8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKK21zZ3N0ciAiJXM6IGRpemluIGhhdGFsxLE6ICcuJyBpbGsgZGXEn2lsXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorbXNnc3RyICIlczogZGl6aW4gaGF0YWzEsTogJy4uJyBpa2luY2kgZGXEn2lsXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTExOQorbXNnaWQgImludGVybmFsIGVycm9yIgorbXNnc3RyICJpw6cgaGF0YSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwNCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiBzaXplIDwgMzIiCittc2dzdHIgIiVzOiBkaXppbiBoYXRhbMSxOiB1enVubHVrIDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAiYmFkX3pvbmUnZGEgZXJpxZ9pbSBiYcWfYXLEsXPEsXoiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDUgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtb2RlIG5vdCBjbGVhcmVkLiIKK21zZ3N0ciAiJWQuZMO8xJ/DvG1kZSBraXAgdGVtaXogZGXEn2lsLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjA5CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG5vdCB1c2VkLCBtYXJrZWQgdXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiJWQuIGTDvMSfw7xtIGt1bGxhbsSxbWRhIGRlxJ9pbCBhbWEgYml0ZcWfbGVtZGUga3VsbGFuxLFtZGEgb2xhcmFrIGltbGkuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiJWQuZMO8xJ/DvG0ga3VsbGFuxLFtZGEgYW1hIGJpdGXFn2xlbWRlIGt1bGxhbsSxbWRhIGRlxJ9pbCBvbGFyYWsgaW1saS4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNgorbXNnaWQgIlNldCIKK21zZ3N0ciAixLBtbGVuc2luIG1pPyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIChtb2RlID0gJTA3byksIGlfbmxpbmtzPSVkLCBjb3VudGVkPSVkLiIKK21zZ3N0ciAiRMO8xJ/DvG0gJWQgKGtpcCA9ICUwN28pLCBpX25saW5rcyA9ICVkLCBzYXnEsWxhbiA9ICVkLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIyCittc2dpZCAiU2V0IGlfbmxpbmtzIHRvIGNvdW50IgorbXNnc3RyICJpX25saW5rcyBidSBzYXnEsXlhIGF5YXJsYW5zxLFuIG3EsT8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICJCw7ZsZ2UgJWQ6IGt1bGxhbsSxbWRhIG9sYXJhayBpbWxpIGFtYSBoacOnYmlyIGRvc3lhIGt1bGxhbm3EsXlvciIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM2Cittc2dpZCAiVW5tYXJrIgorbXNnc3RyICLEsG0ga2FsZMSxcsSxbHPEsW4gbcSxPyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICJCw7ZsZ2UgJWQ6IGt1bGxhbsSxbWRhLCBzYXnEsWxhbiA9ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBub3QgaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIkLDtmxnZSAlZDoga3VsbGFuxLFtIGTEscWfxLEsIHNhecSxbGFuID0gJWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorbXNnaWQgImJhZCBpbm9kZSBzaXplIgorbXNnc3RyICJkw7zEn8O8bSBzYXnEsXPEsSBoYXRhbMSxIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjkxCittc2dpZCAiYmFkIHYyIGlub2RlIHNpemUiCittc2dzdHIgInYyIGTDvMSfw7xtIHNhecSxc8SxIGhhdGFsxLEiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMTcKK21zZ2lkICJuZWVkIHRlcm1pbmFsIGZvciBpbnRlcmFjdGl2ZSByZXBhaXJzIgorbXNnc3RyICJldGtpbGXFn2ltbGkgb25hcsSxbSBpw6dpbiB0ZXJtaW5hbCBnZXJla2xpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzIxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIKK21zZ3N0ciAiJyVzJyBhw6fEsWxhbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiJXMgdGVtaXosIGRlbmV0aW0gZ2VyZWtzaXouXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9yY2luZyBmaWxlc3lzdGVtIGNoZWNrIG9uICVzLlxuIgorbXNnc3RyICIlcyBpw6dpbiBkb3N5YSBzaXN0ZW1pIGRlbmV0aW1pIMWfYXJ0LlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gb24gJXMgaXMgZGlydHksIG5lZWRzIGNoZWNraW5nLlxuIgorbXNnc3RyICIlcyDDvHplcmluZGVraSBkb3N5YSBzaXN0ZW1pIGTDvHplbnNpeiwgZGVuZXRsZW5tZXNpIGdlcmVraXlvci5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZsZCBpbm9kZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmxkIGTDvMSfw7xtIGt1bGxhbsSxbWRhICglJSVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkIGLDtmxnZSBrdWxsYW7EsW1kYSAoJSUlbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2ZCByZWd1bGFyIGZpbGVzXG4iCisiJTZkIGRpcmVjdG9yaWVzXG4iCisiJTZkIGNoYXJhY3RlciBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgYmxvY2sgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGxpbmtzXG4iCisiJTZkIHN5bWJvbGljIGxpbmtzXG4iCisiLS0tLS0tXG4iCisiJTZkIGZpbGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmQgbm9ybWFsIGRvc3lhXG4iCisiJTZkIGRpemluXG4iCisiJTZkIGthcmFrdGVyIGF5Z8SxdMSxIGRvc3lhc8SxXG4iCisiJTZkIGJsb2sgYXlnxLF0xLEgZG9zeWFzxLFcbiIKKyIlNmQgYmHEn1xuIgorIiU2ZCBzZW1ib2xpayBiYcSfXG4iCisiLS0tLS0tXG4iCisiJTZkIGRvc3lhXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJET1NZQSBTxLBTVEVNxLAgREXEnsSwxZ5UxLBSxLBMRMSwXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IGHDp8SxbGFtxLF5b3I6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczogJXMgw7x6ZXJpbmRlIGVyacWfaW0gaGF0YXPEsVxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6ICVzIMO8emVyaW5kZSBva3VtYSBoYXRhc8SxXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3IgY291bnQ6ICVkLCBzZWN0b3Igc2l6ZTogJWRcbiIKK21zZ3N0ciAic2VrdMO2ciBzYXnEsXPEsTogJWQsIHNla3TDtnIgdXp1bmx1xJ91OiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiBwYXJzZSBlcnJvclxuIgorbXNnc3RyICIlczogc2XDp2VuZWsgw6fDtnrDvG1sZW1lIGhhdGFzxLFcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorbXNnc3RyICJLdWxsYW7EsW3EsTogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy12XSBbLU4gbnItb2YtaW5vZGVzXSBbLVYgdm9sdW1lLW5hbWVdXG4iCisiICAgICAgIFstRiBmc25hbWVdIGRldmljZSBbYmxvY2stY291bnRdXG4iCittc2dzdHIgIiIKKyJLdWxsYW7EsW3EsTogJXMgWy12XSBbLU4gaS1kw7zEn8O8bVNhecSxc8SxXSBbLVYgYsO2bMO8bcSwc21pXVxuIgorIiAgICAgICBbLUYgZHN5U2lzdMSwc21pXSBheWfEsXQgW2Jsb2tTYXnEsXPEsV1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzMAorbXNnaWQgInZvbHVtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICJiw7Zsw7xtIGlzbWkgw6dvayB1enVuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgImRvc3lhIHNpc3RlbWkgaXNtaSDDp29rIHV6dW4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICIlcyBheWfEsXTEsW7EsW4gZHVydW0gYmlsZ2lzaSBhbMSxbmFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiVzIGJpciBibG9rLcO2emVsIGF5Z8SxdCBkZcSfaWwiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNzEgc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIgorbXNnc3RyICIlcyBhw6fEsWxhbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgc2l6ZSBvZiAlcyIKK21zZ3N0ciAiJXMgdXp1bmx1xJ91IGFsxLFuYW3EsXlvciIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgImJsb2sgYXJnw7xtYW5sYXLEsSDDp29rIGZhemxhLCBlbiDDp29rICVsdSBvbGFiaWxpciIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIwMgorbXNnaWQgInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiCittc2dzdHIgImTDvMSfw7xtIHNhecSxc8SxIMOnb2sgZmF6bGEgLSBlbiDDp29rIDUxMiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAieWVyIHlldGVyc2l6LCBlbiBheiAlbHUgYmxvayBnZXJla2l5b3IiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjMgZmRpc2svZmRpc2suYzoyNjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZTogJXNcbiIKK21zZ3N0ciAiQXlnxLF0OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlZvbHVtZTogPCUtNnM+XG4iCittc2dzdHIgIkLDtmzDvG06IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIkRTaXNtaTo8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIkJsb2tVenVubDogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICJEw7zEn8O8bSBzYXnEsXPEsTogJWQgKDEgYmxva3RhKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAlbGxkIGJsb2NrcylcbiIKK21zZ3N0ciAiRMO8xJ/DvG0gc2F5xLFzxLE6ICVkICglbGQgYmxva3RhKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJCbG9ja3M6ICVsbGRcbiIKK21zZ3N0ciAiQmxvayAjOiAlbGRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSBlbmQ6ICVkLCBEYXRhIGVuZDogJWRcbiIKK21zZ3N0ciAiU29uIGTDvMSfw7xtOiAlZCwgVmVyaSBzb251OiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM5Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzdXBlcmJsb2NrIgorbXNnc3RyICJzw7xwZXJibG9rIHlhesSxbMSxcmtlbiBoYXRhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjU5Cittc2dpZCAiZXJyb3Igd3JpdGluZyByb290IGlub2RlIgorbXNnc3RyICJrw7ZrIGTDvMSfw7xtw7wgeWF6xLFsxLFya2VuIGhhdGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjQKK21zZ2lkICJlcnJvciB3cml0aW5nIGlub2RlIgorbXNnc3RyICJkw7zEn8O8bSB5YXrEsWzEsXJrZW4gaGF0YSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NworbXNnaWQgInNlZWsgZXJyb3IiCittc2dzdHIgImVyacWfaW0gaGF0YXPEsSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3MworbXNnaWQgImVycm9yIHdyaXRpbmcgLiBlbnRyeSIKK21zZ3N0ciAiIC4gZ2lyZGlzaSB5YXrEsWzEsXJrZW4gaGF0YSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3NworbXNnaWQgImVycm9yIHdyaXRpbmcgLi4gZW50cnkiCittc2dzdHIgIiAuLiBnaXJkaXNpIHlhesSxbMSxcmtlbiBoYXRhIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNsb3NpbmcgJXMiCittc2dzdHIgIiVzIGthcGF0xLFsxLFya2VuIGhhdGEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBta2ZzIFstVl0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIGRldmljZSBbc2l6ZV1cbiIKK21zZ3N0ciAiIgorIkt1bGxhbsSxbcSxOiBta2ZzIFstVl0gWy10IGRzeVNpc3RUw7xyw7xdIFtkc3lTaXN0LXNlw6dlbmVrbGVyaV0gYXlnxLF0IFt1enVubHVrXVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo4OCBkaXNrLXV0aWxzL21rZnMuYzo5NiBmZGlzay9jZmRpc2suYzozNTMKKyM6IGdldG9wdC9nZXRvcHQuYzo4NiBnZXRvcHQvZ2V0b3B0LmM6OTYgbG9naW4tdXRpbHMvd2FsbC5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT3V0IG9mIG1lbW9yeSFcbiIKK21zZ3N0ciAiJXM6IEJlbGxlayB5ZXRlcnNpeiFcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZnMgKCVzKVxuIgorbXNnc3RyICJta2ZzICglcylcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjEyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisia3VsbGFuxLFtxLE6ICVzIFstaF0gWy12XSBbLWIgYmxrdXpdIFstZSBiYXNrxLFdIFstaSBkb3N5YV0gWy1uIGlzaW1dXG4iCisiICAgICAgICAgICBkaXppbmlzbWkgw6fEsWt0xLFkb3N5YXPEsVxuIgorIlxuIgorIiAtaCAgICAgICAgYnUgeWFyZMSxbSBpbGV0aXNpIGfDtnN0ZXJpbGlyXG4iCisiIC12ICAgICAgICDDp8Sxa3TEsSBkYWhhIGF5csSxbnTEsWzEsSBvbHVyXG4iCisiIC1FICAgICAgICB1eWFyxLFsYXIgaGF0YSBvbGFyYWsgdmVyaWxpciAoc8SxZsSxcmRhbiBmYXJrbMSxIMOnxLFrxLHFnyBrb2R1KVxuIgorIiAtYiBibGt1eiAgYnUgYmxvayB1enVubHXEn3Uga3VsbGFuxLFsxLFyLCBzYXlmYSB1enVubHXEn3VuYSBlxZ9pdCBvbG1hbMSxZMSxclxuIgorIiAtZSBiYXNrxLEgIGJhc2vEsSBudW1hcmFzxLFuxLEgYXlhcmxhciAoZG9zeWFzaXN0ZW1pIGtpbWxpxJ9pbmluIGJpciBwYXLDp2FzxLEpXG4iCisiIC1pIGRvc3lhICBkb3N5YSBzaXN0ZW1pbmUgYmlyIGRvc3lhIGXFn2xlbWkgc29rdcWfdHVydXIgKD49IDIuNC4wIGdlcmVraXIpXG4iCisiIC1uIGlzaW0gICBjcmFtZnMgZG9zeWEgc2lzdGVtaW5pbiBpc21pXG4iCisiIC1wICAgICAgICDDtm55w7xrbGVtZSBrb2R1bmEgJWQgYmF5dGzEsWsgYWTEsW1sYW1hIHV5Z3VsYW7EsXJcbiIKKyIgLXMgICAgICAgIGRpemluIGnDp2VyacSfaW5pIHPEsXJhbGFyIChlc2tpIHNlw6dlbmVrLCB5b2tzYXnEsWzEsXIpXG4iCisiIC16ICAgICAgICBiZWxpcmdpbiBkZWxpa2xlciB5YXBhciAoPj0gMi4zLjM5IGdlcmVraXIpXG4iCisiIGRpemluaXNtaSBzxLFrxLHFn3TEsXLEsWxhY2FrIGRvc3lhIHNpc3RlbWluaW4ga8O2a2RpemluaVxuIgorIiDDp2Rvc3lhc8SxICDDp8Sxa3TEsSBkb3N5YXPEsVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MzM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVmVyeSBsb25nICglenUgYnl0ZXMpIGZpbGVuYW1lIGAlcycgZm91bmQuXG4iCisiIFBsZWFzZSBpbmNyZWFzZSBNQVhfSU5QVVRfTkFNRUxFTiBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICBFeGl0aW5nLlxuIgorbXNnc3RyICIiCisiw4dvayB1enVuICgldSBiYXl0bMSxaykgZG9zeWEgaXNtaSBgJXMnIGJ1bHVuZHUuXG4iCisibWtjcmFtZnMuYyBpw6dpbmRlIE1BWF9JTlBVVF9OQU1FTEVOIGRlxJ9lcmluaSBhcnR0xLFyxLFuIHZlIHRla3JhciBkZXJsZXlpbi4gICAiCisiw4fEsWvEsWzEsXlvci5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICJkb3N5YSBzaXN0ZW1pIMOnb2sgYsO8ecO8ay4gIMOHxLFrbMSxeW9yLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFJRUVFOiBibG9jayBcImNvbXByZXNzZWRcIiB0byA+IDIqYmxvY2tsZW5ndGggKCVsZClcbiIKK21zZ3N0ciAiT0xBTUFaOiBibG9rIFwic8Sxa8SxxZ90xLFybWFzxLFcIiA+IDIqYmxva3V6dW5sdcSfdSAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiJSUlNi4yZiAoJStkIGJheXQpXHQlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODUzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ3Vlc3RpbWF0ZSBvZiByZXF1aXJlZCBzaXplICh1cHBlciBib3VuZCkgaXMgJWxsZE1CLCBidXQgbWF4aW11bSAiCisiaW1hZ2Ugc2l6ZSBpcyAldU1CLiAgV2UgbWlnaHQgZGllIHByZW1hdHVyZWx5LlxuIgorbXNnc3RyICIiCisidXlhcsSxOiBnZXJla2VuIHRhaG1pbmkgYm95dXQgKMO8c3Qgc8SxbsSxcikgJUxkIE1CLCBhbWEgZW4gYsO8ecO8ayBiZWxsZWtlxZ9sZW0gIgorImJveXUgJXUgTUIuICAgVmFraXRzaXogw7Zsw7xtLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAixLDDp2VyacSfaTogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGlyZWN0b3J5IGRhdGE6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJEaXppbiB2ZXJpc2k6ICVkIGJheXRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICJIZXBzaTogJWQga0JcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJTw7xwZXIgYmxvazogJWQgYmF5dFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNSQzogJXhcbiIKK21zZ3N0ciAiQ1JDOiAleFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTI1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlIGFsbG9jYXRlZCBmb3IgUk9NIGltYWdlICglbGxkIGFsbG9jYXRlZCwgJXp1IHVzZWQpXG4iCittc2dzdHIgIiIKKyJST00gYmVsbGVrZcWfbGVtaSBpw6dpbiBheXLEsWxhbiBhbGFuIHlldGVyc2l6ICglTGQgYXlyxLFsZMSxLCAlZCBrdWxsYW7EsWxkxLEpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiUk9NIGJlbGxla2XFn2xlbWkgeWF6bWFkYSBoYXRhICglZCAlZClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlbmFtZXMgdHJ1bmNhdGVkIHRvIDI1NSBieXRlcy5cbiIKK21zZ3N0ciAidXlhcsSxOiBkb3N5YSBpc2ltbGVyaSAyNTUgYmF5dCBvbGFyYWsga8Sxc2FsdMSxbGTEsS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlcyB3ZXJlIHNraXBwZWQgZHVlIHRvIGVycm9ycy5cbiIKK21zZ3N0ciAidXlhcsSxOiBoYXRhbGFyZGFuIGRvbGF5xLEgZG9zeWFsYXIgYXRsYW5kxLEuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgInV5YXLEsTogZG9zeWEgYm95dXRsYXLEsSAlbHVNQidhIGTDvMWfw7xyw7xsZMO8IChla3NpIDEgYmF5dCkuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IHVpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorInV5YXLEsToga3VsbGFuxLFjxLEga2ltbGlrbGVyaSAldSBiaXRlIGTDvMWfw7xyw7xsZMO8LiAoQnUgYmlyIGfDvHZlbmxpayBrYXlnxLFzxLEgIgorIm9sYWJpbGlyLilcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ2lkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisidXlhcsSxOiBncnVwIGtpbWxpa2xlcmkgJXUgYml0ZSBkw7zFn8O8csO8bGTDvC4gKEJ1IGJpciBnw7x2ZW5saWsga2F5Z8Sxc8SxICIKKyJvbGFiaWxpci4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisiVVlBUkk6IGF5Z8SxdCBudW1hcmFsYXLEsSAldSBiaXRsZSBzxLFuxLFybGFuZMSxLiBCdSBpxZ9sZW0gYmF6xLEgYXlnxLF0ICIKKyJkb3N5YWxhcsSxbsSxbiBpc2ltbGVyaW5pbiB5YW5sxLHFnyBvbG1hc8SxbmEgc2ViZXAgb2xhY2FrLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstYyB8IC1sIGZpbGVuYW1lXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICIiCisiS3VsbGFuxLFtxLE6ICVzIFstYyB8IC1sIGRvc3lhaXNtaV0gWy1uWFhdIFstaVhYXSAvZGV2L2lzaW0gW2Jsb2tTYXnEsXPEsV1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2UgYSBmaWxlc3lzdGVtIGhlcmUhIgorbXNnc3RyICIlcyBiYcSfbMSxOyBidXJhZGEgYmlyIGRvc3lhIHNpc3RlbWkgeWFwxLFsbWF5YWNhayEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJ3cml0ZV90YWJsZXMgacOnaW5kZSBiYcWfbGF0bWEgYmxvxJ91bmEgZXJpxZ9pbGVtZWRpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTAKK21zZ2lkICJ1bmFibGUgdG8gY2xlYXIgYm9vdCBzZWN0b3IiCittc2dzdHIgImJhxZ9sYXRtYSBzZWt0w7Zyw7wgdGVtaXpsZW5lbWl5b3IiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MgorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAid3JpdGVfdGFibGVzIGnDp2luZGUgZXJpxZ9pbSBiYcWfYXLEsXPEsXoiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgImTDvMSfw7xtIGXFn2xlbWkgeWF6xLFsYW3EsXlvciIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk4Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJiw7ZsZ2UgdGFibG9zdSB5YXrEsWxhbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDAKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJkw7zEn8O8bWxlciB5YXrEsWxhbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgIndyaXRlX2Jsb2NrIGnDp2luZSB5YXptYSBiYcWfYXLEsXPEsXoiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIxNyBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyOTEKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM0MAorbXNnaWQgInRvbyBtYW55IGJhZCBibG9ja3MiCittc2dzdHIgIsOnb2sgZmF6bGEgaGF0YWzEsSBibG9rIHZhciIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjI1Cittc2dpZCAibm90IGVub3VnaCBnb29kIGJsb2NrcyIKK21zZ3N0ciAiaXlpIGJsb2tsYXIgeWV0ZXJzaXoiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0MAorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzIGZvciBtYXBzIgorbXNnc3RyICJ0YWJsb2xhciBpw6dpbiB0YW1wb24gYmVsbGVrIGF5csSxbGFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0OQorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiZMO8xJ/DvG1sZXIgacOnaW4gdGFtcG9uIGJlbGxlayBheXLEsWxhbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk1heHNpemU9JWxkXG4iCisiXG4iCittc2dzdHIgIiIKKyJBemFtaXV6dW5sdWsgPSAlbGRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDY5Cittc2dpZCAic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIgorbXNnc3RyICJibG9rbGFyIGRlbmV0bGVuaXJrZW4gZXJpxZ9pbSBiYcWfYXLEsXPEsXoiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJXZWlyZCB2YWx1ZXMgaW4gZG9fY2hlY2s6IHByb2JhYmx5IGJ1Z3NcbiIKK21zZ3N0ciAiZG9fY2hlY2sgeWFwxLFsxLFya2VuIHR1aGFmIGRlxJ9lcmxlcjogeWF6xLFsxLFtIGhhdGFzxLEgb2xhYmlsaXJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTA4IGRpc2stdXRpbHMvbWtzd2FwLmM6MzE1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gY2hlY2tfYmxvY2tzIgorbXNnc3RyICJjaGVja19ibG9ja3MgacWfbGVtaW5kZSBlcmnFn2ltIGJhxZ9hcsSxc8SxeiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTE3Cittc2dpZCAiYmFkIGJsb2NrcyBiZWZvcmUgZGF0YS1hcmVhOiBjYW5ub3QgbWFrZSBmcyIKK21zZ3N0ciAidmVyaSBhbGFuxLFuZGFuIMO2bmNla2kgYmxva2xhciBoYXRhbMSxOiBkb3N5YSBzaXN0ZW1pIHlhcMSxbGFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyMyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgYmFkIGJsb2Nrc1xuIgorbXNnc3RyICIlZCBib3p1ayBibG9rXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBibG9ja1xuIgorbXNnc3RyICJiaXIgYm96dWsgYmxva1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzUKK21zZ2lkICJjYW4ndCBvcGVuIGZpbGUgb2YgYmFkIGJsb2NrcyIKK21zZ3N0ciAiYm96dWsgYmxva2xhciBkb3N5YXPEsSBhw6fEsWxhbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkYmxvY2sgbnVtYmVyIGlucHV0IGVycm9yIG9uIGxpbmUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDAKKyMsIGZ1enp5Cittc2dpZCAiY2Fubm90IHJlYWQgYmFkYmxvY2tzIGZpbGUiCittc2dzdHIgIkRpc2sgc8O8csO8Y8O8c8O8IG9rdW5hbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgInN0cnRvbCBoYXRhc8SxOiBibG9rIHNhecSxc8SxIGJlbGlydGlsbWVtacWfIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgJXMiCittc2dzdHIgIiVzIGR1cnVtIGJpbGdpbGVyaSBhbMSxbmFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiJXMgYcOnxLFsYW3EsXlvciIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIKK21zZ3N0ciAiJXMgdXp1bmx1xJ91IGFsxLFuYW3EsXlvciIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrIHNpemUgc21hbGxlciB0aGFuIHBoeXNpY2FsIHNlY3RvciBzaXplIG9mICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzaXplIG9mICVzIgorbXNnc3RyICIlcyB1enVubHXEn3UgYWzEsW5hbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2lsbCBub3QgdHJ5IHRvIG1ha2UgZmlsZXN5c3RlbSBvbiAnJXMnIgorbXNnc3RyICInJXMnIMO8emVyaW5kZSBkb3N5YSBzaXN0ZW1pIG9sdcWfdHVybWF5YSDDp2FsxLHFn8SxbG1heWFjYWsiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2NQorIywgZnV6enkKK21zZ2lkICJudW1iZXIgb2YgYmxvY2tzIHRvbyBzbWFsbCIKK21zZ3N0ciAiU2VrdMO2ciBzYXnEsXPEsSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICJrdWxsYW7EsWPEsSB0YXJhZsSxbmRhbiBiZWxpcnRpbGVuIHNheWZhIHV6dW5sdcSfdSAlZCBoYXRhbMSxXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyB1c2VyLXNwZWNpZmllZCBwYWdlIHNpemUgJWQsIGluc3RlYWQgb2YgdGhlIHN5c3RlbSB2YWx1ZSAlZFxuIgorbXNnc3RyICIiCisiS3VsbGFuxLFjxLEgdGFyYWbEsW5kYW4gYmVsaXJ0aWxlbiBzYXlmYSB1enVubHXEn3UgJWQga3VsbGFuxLFsxLF5b3IsXG4iCisiKHNpc3RlbSBkZcSfZXJpICVkLyVkIHllcmluZSlcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHN3YXAgaGVhZGVyIHNpemUsIG5vIGxhYmVsIHdyaXR0ZW4uXG4iCittc2dzdHIgIlRha2FzIGJhxZ9sxLHEn8SxIHV6dW5sdcSfdSBoYXRhbMSxLCBiaXIgZXRpa2V0IHlhesSxbG1hbcSxxZ8uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxhYmVsIHdhcyB0cnVuY2F0ZWQuXG4iCittc2dzdHIgIkV0aWtldCBrxLFzYWx0xLFsZMSxLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICJiaXIgZXRpa2V0IHlvaywgIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1dWlkXG4iCittc2dzdHIgIlVVSUQgeW9rXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jXSBbLXBQQUdFU1pdIFstTCBsYWJlbF0gWy1VIFVVSURdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICIiCisiS3VsbGFuxLFtxLE6ICVzIFstY10gWy12MHwtdjFdIFstcFNheWZhVXp1bmx1xJ91XSBbLUwgZXRpa2V0XVxuIgorIiAgICAgICAgICAgICAgICAvZGV2L2lzaW0gW2Jsb2tTYXnEsXPEsV1cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyOTcKK21zZ2lkICJ0b28gbWFueSBiYWQgcGFnZXMiCittc2dzdHIgIsOnb2sgZmF6bGEgYm96dWsgc2F5ZmEgdmFyIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiQmVsbGVrIHlldGVyc2l6IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIHBhZ2VcbiIKK21zZ3N0ciAiMSBib3p1ayBzYXlmYVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVsdSBib3p1ayBzYXlmYVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQwMiBkaXNrLXV0aWxzL21rc3dhcC5jOjQzOSBkaXNrLXV0aWxzL21rc3dhcC5jOjY1OQorbXNnaWQgInVuYWJsZSB0byByZXdpbmQgc3dhcC1kZXZpY2UiCittc2dzdHIgInRha2FzIGFsYW7EsW5kYSBiYcWfYSBnaWRpbGVtaXlvciIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIG5ldyBsaWJibGtpZCBwcm9iZSIKK21zZ3N0ciAiZMO8xJ/DvG1sZXIgacOnaW4gdGFtcG9uIGJlbGxlayBheXLEsWxhbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGVyYXNlIGJvb3RiaXRzIHNlY3RvcnMiCittc2dzdHIgImJhxZ9sYXRtYSBzZWt0w7Zyw7wgdGVtaXpsZW5lbWl5b3IiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogd2FybmluZzogZG9uJ3QgZXJhc2UgYm9vdGJpdHMgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgICglcyBwYXJ0aXRpb24gdGFibGUgZGV0ZWN0ZWQpLiAiCittc2dzdHIgIiAgIHAgICBCU0QgZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1bnUgZ8O2c3RlcmlyIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICBvbiB3aG9sZSBkaXNrLiAiCittc2dzdHIgIiAgIHMgICBkaXNrIGV0aWtldGluaW4gdGFtYW3EsW7EsSBnw7ZzdGVyaXIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIgICBzICAgZGlzayBldGlrZXRpbmluIHRhbWFtxLFuxLEgZ8O2c3RlcmlyIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjUyNAorIywgYy1mb3JtYXQKK21zZ2lkICIlMSRzOiB3YXJuaW5nOiBpZ25vcmUgLVUgKFVVSURzIGFyZSB1bnN1cHBvcnRlZCBieSAlMSRzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZG9lcyBub3Qgc3VwcG9ydCBzd2Fwc3BhY2UgdmVyc2lvbiAlZC5cbiIKK21zZ3N0ciAiJXM6IGhhdGE6IHPDvHLDvG0gJWQgYmlsaW5taXlvclxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0OAorIywgZnV6enkKK21zZ2lkICJlcnJvcjogVVVJRCBwYXJzaW5nIGZhaWxlZCIKK21zZ3N0ciAiIgorIlxuIgorIkRvc3lhIGthcGF0xLFsxLFya2VuIGhhdGFcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBOb3doZXJlIHRvIHNldCB1cCBzd2FwIG9uP1xuIgorbXNnc3RyICIlczogaGF0YTogVGFrYXMgYWxhbsSxbsSxIGtveWFjYWsgeWVyIHlvayBtdT9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc2l6ZSAlbGx1IEtpQiBpcyBsYXJnZXIgdGhhbiBkZXZpY2Ugc2l6ZSAlbGx1IEtpQlxuIgorbXNnc3RyICIlczogaGF0YTogJWx1IGF5Z8SxdMSxbiBib3l1dHVuZGFuIGLDvHnDvGsgKCVsdSlcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc3dhcCBhcmVhIG5lZWRzIHRvIGJlIGF0IGxlYXN0ICVsZCBLaUJcbiIKK21zZ3N0ciAiJXM6IGhhdGE6IHRha2FzIGFsYW7EsSBpw6dpbiBlbiBheiAlbGRrQiBnZXJla2l5b3JcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YXJuaW5nOiB0cnVuY2F0aW5nIHN3YXAgYXJlYSB0byAlbGx1IEtpQlxuIgorbXNnc3RyICIlczogdXlhcsSxOiB0YWthcyBhbGFuxLEgJWxka0IgaWxlIHPEsW7EsXJsYW7EsXlvclxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiB3aWxsIG5vdCB0cnkgdG8gbWFrZSBzd2FwZGV2aWNlIG9uICclcydcbiIKK21zZ3N0ciAiJyVzJyDDvHplcmluZGUgdGFrYXMgYXlnxLF0xLEgb2x1xZ90dXJ1bG1heWFjYWsiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6ICVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2Ugc3dhcHNwYWNlLlxuIgorbXNnc3RyICIlcyBiYcSfbMSxOyBidXJhZGEgYmlyIGRvc3lhIHNpc3RlbWkgeWFwxLFsbWF5YWNhayEiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjQ4Cittc2dpZCAiVW5hYmxlIHRvIHNldCB1cCBzd2FwLXNwYWNlOiB1bnJlYWRhYmxlIgorbXNnc3RyICJUYWthcyBhbGFuxLEgb2x1xZ90dXJ1bGFtxLF5b3I6IG9rdW5hYmlsaXIgZGXEn2lsIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyB1cCBzd2Fwc3BhY2UgdmVyc2lvbiAxLCBzaXplID0gJWxsdSBLaUJcbiIKK21zZ3N0ciAiVGFrYXMgYWxhbsSxIHPDvHLDvG0gJWQsIHV6dW5sdWsgPSAlbGx1IGtCIG9sYXJhayBheWFybGFuxLF5b3JcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiaW16YSBzYXlmYXPEsSB5YXrEsWxhbcSxeW9yIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY3MworbXNnaWQgImZzeW5jIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMgaGF0YSB2ZXJkaSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gb2J0YWluIHNlbGludXggZmlsZSBsYWJlbDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MAorIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gbWF0Y2hwYXRoY29uKCkiCittc2dzdHIgIiVzIGR1cnVtIGJpbGdpbGVyaSBhbMSxbmFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgbmV3IHNlbGludXggY29udGV4dCIKK21zZ3N0ciAiZMO8xJ/DvG1sZXIgeWF6xLFsYW3EsXlvciIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTUKK21zZ2lkICJjb3VsZG4ndCBjb21wdXRlIHNlbGludXggY29udGV4dCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjcwMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byByZWxhYmVsICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICIlcyAlcyBvbGFyYWsgZGXEn2nFn3RpcmlsZW1peW9yOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiICAlcyAiCittc2dzdHIgIkt1bGxhbsSxbcSxOlxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlICclcycgaXMgY29udHJvbCByYXcgZGV2ICh1c2UgcmF3PE4+IHdoZXJlIDxOPiBpcyBncmVhdGVyIHRoYW4gemVybylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSBibG9jayBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIiVzIGtpbGl0IGRvc3lhc8SxIGtpbGl0bGVuZW1peW9yOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgYmxvY2sgZGV2XG4iCittc2dzdHIgIlV5YXLEsTogJXMgYmlyIGJsb2sgYXlnxLF0xLEgZGXEn2lsXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBtYXN0ZXIgcmF3IGRldmljZSAnIgorbXNnc3RyICIlcyBheWfEsXTEsW7EsW4gZHVydW0gYmlsZ2lzaSBhbMSxbmFtxLF5b3IiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIiVzIGF5Z8SxdMSxbsSxbiBkdXJ1bSBiaWxnaXNpIGFsxLFuYW3EsXlvciIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iCittc2dzdHIgIi9kZXYvJXM6IGJpciBrYXJha3RlciBheWfEsXTEsSBkZcSfaWwiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSByYXcgZGV2XG4iCittc2dzdHIgIiVzIGJpciBibG9rLcO2emVsIGF5Z8SxdCBkZcSfaWwiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHF1ZXJ5aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjQxIGRpc2stdXRpbHMvcmF3LmM6MjYxCisjLCBjLWZvcm1hdAorbXNnaWQgInJhdyVkOlx0Ym91bmQgdG8gbWFqb3IgJWQsIG1pbm9yICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNTcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHNldHRpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgInNlcnZpcyBkdXJkdXJ1bHVya2VuIGhhdGE6IFwiJXNcIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzc4IGZkaXNrL2NmZGlzay5jOjIwODMKK21zZ2lkICJVbnVzYWJsZSIKK21zZ3N0ciAiS3VsbGFuxLHFn3PEsXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAiQm/FnyBBbGFuIgorCisjOiBmZGlzay9jZmRpc2suYzozODMKK21zZ2lkICJMaW51eCBleHQyIgorbXNnc3RyICJMaW51eCBleHQyIgorCisjOiBmZGlzay9jZmRpc2suYzozODUKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICJMaW51eCBleHQzIgorCisjOiBmZGlzay9jZmRpc2suYzozODcKK21zZ2lkICJMaW51eCBYRlMiCittc2dzdHIgIkxpbnV4IFhGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg5Cittc2dpZCAiTGludXggSkZTIgorbXNnc3RyICJMaW51eCBKRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5MQorbXNnaWQgIkxpbnV4IFJlaXNlckZTIgorbXNnc3RyICJMaW51eCBSZWlzZXJGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiTGludXgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiT1MvMiBIUEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiT1MvMiBJRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQwMgorbXNnaWQgIk5URlMiCittc2dzdHIgIk5URlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIkRpc2sgZGXEn2nFn3RpcmlsZGkuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorIkLDtmzDvG1sZW1lIHRhYmxvc3VudW4gZG/En3J1IG9sYXJhayBnw7xuY2VsbGVuZGnEn2luZGVuIGVtaW4gb2xhYmlsbWVrIGnDp2luXG4iCisic2lzdGVtaSB5ZW5pZGVuIGJhxZ9sYXTEsW4uXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnlcbiIKKyJET1MgNi54IHBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGNmZGlzayBtYW51YWxcbiIKKyJwYWdlIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiVVlBUkk6IEhlcmhhbmdpIGJpciBET1MgNi54IGLDtmzDvG3DvG7DvCBvbHXFn3R1cmR1eXNhbsSxeiB5YSBkYVxuIgorImRlxJ9pxZ9pa2xpayB5YXB0xLF5c2FuxLF6LCBsw7x0ZmVuIGNmZGlzayBtYW4gc2F5ZmFsYXLEsW5kYWtpXG4iCisiZWsgYmlsZ2lsZXJpIG9rdXl1bi5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIsOWTMOcTUPDnEwgSEFUQSIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE3Cittc2dpZCAiUHJlc3MgYW55IGtleSB0byBleGl0IGNmZGlzayIKK21zZ3N0ciAiY2ZkaXNrJ3RlbiDDp8Sxa21hayBpw6dpbiBoZXJoYW5naSBiaXIgdHXFn2EgYmFzxLFuxLF6IgorCisjOiBmZGlzay9jZmRpc2suYzo1NjQgZmRpc2svY2ZkaXNrLmM6NTcyCittc2dpZCAiQ2Fubm90IHNlZWsgb24gZGlzayBkcml2ZSIKK21zZ3N0ciAiRGlzayBzw7xyw7xjw7wgw7x6ZXJpbmRlIGFyYW1hIHlhcMSxbGFtxLF5b3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIkRpc2sgc8O8csO8Y8O8c8O8IG9rdW5hbcSxeW9yIgorCisjOiBmZGlzay9jZmRpc2suYzo1NzQKK21zZ2lkICJDYW5ub3Qgd3JpdGUgZGlzayBkcml2ZSIKK21zZ3N0ciAiRGlzayBzw7xyw7xjw7xzw7xuZSB5YXrEsWxhbcSxeW9yIgorCisjOiBmZGlzay9jZmRpc2suYzo5MTcKK21zZ2lkICJUb28gbWFueSBwYXJ0aXRpb25zIgorbXNnc3RyICJEaXNrIGLDtmzDvG3DvCBzYXnEsXPEsSDDp29rIGZhemxhIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiRGlzayBiw7Zsw7xtw7wgc8SxZsSxcsSxbmPEsSBzZWt0w7ZyZGVuIMO2bmNlIGJhxZ9sxLF5b3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiRGlzayBiw7Zsw7xtw7wgc8SxZsSxcsSxbmPEsSBzZWt0w7ZyZGVuIMO2bmNlIGJpdGl5b3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIkRpc2sgYsO2bMO8bcO8IGRpc2sgc29udW5kYW4gc29ucmEgYmHFn2zEsXlvciIKKworIzogZmRpc2svY2ZkaXNrLmM6OTM3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgIkRpc2sgYsO2bMO8bcO8IGRpc2sgc29udW5kYW4gc29ucmEgYml0aXlvciIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgIkRpc2sgYsO2bMO8bcO8IHNvbiBrxLFzbcOuIHNpbGluZGlyIGnDp2luZGUgYml0aXlvciIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY2Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG5vdCBpbiBkaXNrIG9yZGVyIgorbXNnc3RyICJtYW50xLFrc2FsIGLDtmzDvG1sZXIgc8SxcmFsYW1heWEgdXlndW4gZGXEn2lsIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjkKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAibWFudMSxa3NhbCBiw7Zsw7xtbGVyIGnDp2nDp2UgZ2XDp21pxZ8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJiw7x5w7x0w7xsZW4gbWFudMSxa3NhbCBiw7Zsw7xtbGVyIGnDp2nDp2UgZ2XDp2l5b3IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMDMKK21zZ2lkICIiCisiISEhISBJbnRlcm5hbCBlcnJvciBjcmVhdGluZyBsb2dpY2FsIGRyaXZlIHdpdGggbm8gZXh0ZW5kZWQgcGFydGl0aW9uICEhISEiCittc2dzdHIgIiIKKyIhISEhIEVrIGRpc2sgYsO2bMO8bcO8IGnDp2VybWV5ZW4gbWFudMSxa3NhbCBiw7Zsw7xtIG9sdcWfdHVydWx1cmtlbiBpw6cgaGF0YSAhISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDE0IGZkaXNrL2NmZGlzay5jOjEwMjYKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICJCdXJhZGEgbWFudMSxa3NhbCBiw7Zsw7xtIG9sdcWfdHVydWxhbcSxeW9yIC0tIGlraSBlayBiw7Zsw7xtIG9sdcWfYWNha3TEsSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICJNZW7DvCDDtsSfZXNpIMOnb2sgdXp1bi4gTWVuw7wgdHVoYWYgZ8O2csO8bmViaWxpci4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEyMjQKKyMsIGZ1enp5Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiTWVuw7wgecO2bnPDvHouIFlhdGF5IG9sYXJhayDDtm50YW7EsW1sYW7EsXlvci4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAiS3VyYWxkxLHFn8SxIHR1xZ8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNzkKK21zZ2lkICJQcmVzcyBhIGtleSB0byBjb250aW51ZSIKK21zZ3N0ciAiRGV2YW0gZXRtZWsgacOnaW4gYmlyIHR1xZ9hIGJhc8SxbsSxeiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNiBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODYKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJQcmltYXJ5IgorbXNnc3RyICJCaXJpbmNpbCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNgorbXNnaWQgIkNyZWF0ZSBhIG5ldyBwcmltYXJ5IHBhcnRpdGlvbiIKK21zZ3N0ciAiWWVuaSBiaXJpbmNpbCBkaXNrIGLDtmzDvG3DvCBvbHXFn3R1cnVyIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgIk1hbnTEsWtzYWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIlllbmkgbWFudMSxa3NhbCBkaXNrIGLDtmzDvG3DvCBvbHXFn3R1cnVyIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI4IGZkaXNrL2NmZGlzay5jOjE0ODMgZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkNhbmNlbCIKK21zZ3N0ciAiVmF6Z2XDpyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICJCaXIgZGlzayBiw7Zsw7xtw7wgb2x1xZ90dXJ1bG1heiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NAorbXNnaWQgIiEhISBJbnRlcm5hbCBlcnJvciAhISEiCittc2dzdHIgIiEhISDEsMOnIGhhdGEgISEhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ3Cittc2dpZCAiU2l6ZSAoaW4gTUIpOiAiCittc2dzdHIgIkFsYW4gKE1CKToiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJCZWdpbm5pbmciCittc2dzdHIgIkJhxZ9sYW5nxLHDpyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgYmVnaW5uaW5nIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkRpc2sgYsO2bMO8bcO8bsO8IGJvxZ8gYWxhbsSxbiBiYcWfbGFuZ8SxY8SxbmEgZWtsZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJFbmQiCittc2dzdHIgIlNvbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIkRpc2sgYsO2bMO8bW7DvCBib8WfIGFsYW7EsW4gc29udW5hIGVrbGVyIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTAwCittc2dpZCAiTm8gcm9vbSB0byBjcmVhdGUgdGhlIGV4dGVuZGVkIHBhcnRpdGlvbiIKK21zZ3N0ciAiRWsgZGlzayBiw7Zsw7xtw7xuw7wgb2x1xZ90dXJhY2FrIHllciB5b2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSB5b2suXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzgKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuIFN0YXJ0aW5nIHdpdGggemVybyB0YWJsZS4iCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSB5b2suIEJvxZ8gdGFibG8gaWxlIGJhxZ9sYW5hY2FrLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU4OAorbXNnaWQgIkJhZCBzaWduYXR1cmUgb24gcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJEaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3VuZGFraSBpbXphIGvDtnTDvCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorbXNnaWQgIlVua25vd24gcGFydGl0aW9uIHRhYmxlIHR5cGUiCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSB0w7xyw7wgYmlsaW5taXlvciIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5NAorbXNnaWQgIkRvIHlvdSB3aXNoIHRvIHN0YXJ0IHdpdGggYSB6ZXJvIHRhYmxlIFt5L05dID8iCittc2dzdHIgIlRlbWl6IGJpciB0YWJsbyBpbGUgYmHFn2xhbWFrIGlzdGVyIG1pc2luaXogW2UvSF0gPyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAiRGlza3RlIGJ1bHVuYW4gc2lsaW5kaXIgc2F5xLFzxLFuZGFuIGLDvHnDvGsgYmlyIHNhecSxIGJlbGlydHRpbml6IgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc0Cittc2dpZCAiQ2Fubm90IG9wZW4gZGlzayBkcml2ZSIKK21zZ3N0ciAiRGlzayBhw6fEsWxhbcSxeW9yIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc2IGZkaXNrL2NmZGlzay5jOjE4NjUKK21zZ2lkICJPcGVuZWQgZGlzayByZWFkLW9ubHkgLSB5b3UgaGF2ZSBubyBwZXJtaXNzaW9uIHRvIHdyaXRlIgorbXNnc3RyICJBw6fEsWxhbiBkaXNrIHNhbHQtb2t1bnVyIC0geWF6bWEgaXpuaW5peiB5b2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2ODcKK21zZ2lkICIiCisiV2FybmluZyEhICBVbnN1cHBvcnRlZCBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZC4gVXNlIEdOVSBQYXJ0ZWQuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MDYKK21zZ2lkICJDYW5ub3QgZ2V0IGRpc2sgc2l6ZSIKK21zZ3N0ciAiRGlza2luIHRvcGxhbSBhbGFuxLEgaGVzYXBsYW5hbcSxeW9yIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJCaXJpbmNpbCBkaXNrIGLDtmzDvG3DvCBib3p1ayIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiTWFudMSxa3NhbCBkaXNrIGLDtmzDvG3DvCBib3p1ayIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg3NworbXNnaWQgIldhcm5pbmchISAgVGhpcyBtYXkgZGVzdHJveSBkYXRhIG9uIHlvdXIgZGlzayEiCittc2dzdHIgIlV5YXLEsSEhIEJ1IGnFn2xlbSBkaXNrIMO8emVyaW5kZWtpIHZlcml5aSB5b2tlZGViaWxpciEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODEKK21zZ2lkICIiCisiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzaz8gKHllcyBvciBubyk6ICIKK21zZ3N0ciAiIgorIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51biBkaXNrZSB5YXrEsWxtYXPEsW7EsSBnZXLDp2VrdGVuIGlzdGl5b3IgbXVzdW51ej9cbiIKKyIoZXZldC9oYXnEsXIgeWEgZGEgeWVzL25vKTogIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg3Cittc2dpZCAibm8iCittc2dzdHIgImhhecSxciIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4OQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSBkaXNrZSB5YXrEsWxtYWTEsSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5MQorbXNnaWQgInllcyIKK21zZ3N0ciAiZXZldCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5NQorbXNnaWQgIlBsZWFzZSBlbnRlciBgeWVzJyBvciBgbm8nIgorbXNnc3RyICJMw7x0ZmVuIHlhIGBldmV0wrQgeWEgZGEgYGhhecSxcsK0IHlhesSxbsSxeiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSBkaXNrZSB5YXrEsWzEsXlvci4uLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNCBmZGlzay9jZmRpc2suYzoxOTI4Cittc2dpZCAiV3JvdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSBkaXNrZSB5YXrEsWxkxLEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKKyMsIGZ1enp5Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorIkLDtmzDvG1sZW1lIHRhYmxvc3UgeWF6xLFsZMSxIGFtYSB0YWJsbyB5ZW5pZGVuIG9rdW5hbWFkxLEuIFNpc3RlbWkgeWVuaWRlbiAiCisiYmHFn2xhdMSxbi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIsOWbnnDvGtsZW1lIGnDp2luIGltbGVubWnFnyBoacOnIGJpcmluY2lsIGRpc2sgYsO2bMO8bcO8IHlvay4gRE9TIE1CUiBidW51ICIKKyJiYcWfbGF0YW1heWFiaWxpci4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzgKK21zZ2lkICIiCisiTW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKyLDlm55w7xrbGVtZSBpw6dpbiBpbWxlbm1pxZ8gw6dvayBzYXnEsWRhIGJpcmluY2lsIGRpc2sgYsO2bMO8bcO8IHZhci4gRE9TIE1CUiBidW51ICIKKyJiYcWfbGF0YW1heWFiaWxpci4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5OTYgZmRpc2svY2ZkaXNrLmM6MjExNSBmZGlzay9jZmRpc2suYzoyMTk5Cittc2dpZCAiRW50ZXIgZmlsZW5hbWUgb3IgcHJlc3MgUkVUVVJOIHRvIGRpc3BsYXkgb24gc2NyZWVuOiAiCittc2dzdHIgIkRvc3lhIGlzbWluaSBnaXJpbiB5YSBkYSBFTlRFUiB0dcWfdW5hIGJhc8SxbjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgIiclcycgZG9zeWFzxLEgYcOnxLFsYW3EsXlvciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlc1xuIgorbXNnc3RyICJTYWJpdCBEaXNrOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlNla3TDtnIgMDpcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAyNQorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQ6XG4iCittc2dzdHIgIlNla3TDtnIgJWQ6XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDUKK21zZ2lkICIgICBOb25lICAgIgorbXNnc3RyICIgICBZb2sgICAgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ3Cittc2dpZCAiICAgUHJpL0xvZyIKK21zZ3N0ciAiICAgQmlyL01hbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0OQorbXNnaWQgIiAgIFByaW1hcnkiCittc2dzdHIgIiAgQmlyaW5jaWwgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDUxCittc2dpZCAiICAgTG9naWNhbCIKK21zZ3N0ciAiIE1hbnTEsWtzYWwgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICJCaWxpbm1leWVuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk1IGZkaXNrL2NmZGlzay5jOjI1NjMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5Cittc2dpZCAiQm9vdCIKK21zZ3N0ciAiQcOnxLFsxLHFnyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorbXNnaWQgIk5vbmUiCittc2dzdHIgIkhpw6diaXJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM0IGZkaXNrL2NmZGlzay5jOjIyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIFRhYmxlIGZvciAlc1xuIgorbXNnc3RyICIlcyBpw6dpbiBEaXNrIELDtmzDvG1sZW1lIFRhYmxvc3VcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNgorbXNnaWQgIiAgICAgICAgICAgICAgIEZpcnN0ICAgICAgIExhc3RcbiIKK21zZ3N0ciAiIELDtmzDvG0gICAgICAgICDEsGxrICAgICAgICAgIFNvbiAgICAgICAgICAgICAgU2VrdMO2ciAgICBEb3N5YVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM3Cittc2dpZCAiIgorIiAjIFR5cGUgICAgICAgU2VjdG9yICAgICAgU2VjdG9yICAgT2Zmc2V0ICAgIExlbmd0aCAgIEZpbGVzeXN0ZW0gVHlwZSAoSUQpICIKKyJGbGFnXG4iCittc2dzdHIgIiIKKyIgIyBUw7xyw7wgICAgICAgU2VrdMO2ciAgICAgIFNla3TDtnIgICAgQmHFn2wgICAgIFNhecSxc8SxICAgIFNpc3RlbWkgICBUw7xyw7wgICAgIgorIkZsYW1hXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gICAtLS0tLS0tLSAgICAtLS0tLS0tLS0gLS0tLS0tICAtLS0tLS0tLS0gIC0tLS0tLS0tLSAgLS0tLS0gICIKKyItLS0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMQorIywgZnV6enkKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgICAtLUJhxZ9sYW5nxLHDpy0tLSAgICAgIC0tLS1CaXRpxZ8tLS0tLSAgIEJhxZ9sYW5nxLHDpyAgU2VrdMO2clxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCisjLCBmdXp6eQorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICIgIyBGbGFtYSBLYWZhIFNla3QgU2xkICBLaW1sIEthZmEgU2VrdCBTbGQgICAgU2VrdMO2csO8ICAgU2F5xLFzxLFcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworIywgZnV6enkKK21zZ2lkICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAgLS0tLS0tLS0tIC0tLS0tLS0tLVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICJIYW0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IgorbXNnc3RyICJUYWJsbyB0ZW1lbCB2ZXJpIGJpw6dlbWkgb2xhcmFrIHlhesSxbMSxciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NyBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiU2VjdG9ycyIKK21zZ3N0ciAiU2VrdMO2ciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIlRhYmxveXUgc2VrdMO2cmxlcmUgZGHEn8SxbMSxbcSxbmEgZ8O2cmUgeWF6YXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJUYWJsZSIKK21zZ3N0ciAiVGFibG8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51IHlhemFyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICJUYWJsbyB5YXrEsWxhbcSxeW9yIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg3Cittc2dpZCAiSGVscCBTY3JlZW4gZm9yIGNmZGlzayIKK21zZ3N0ciAiY2ZkaXNrIFlhcmTEsW0gRWtyYW7EsSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4OQorbXNnaWQgIlRoaXMgaXMgY2ZkaXNrLCBhIGN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbmluZyBwcm9ncmFtLCB3aGljaCIKK21zZ3N0ciAiIgorIlNhYml0IGRpc2tpbml6ZGVraSBkaXNrIGLDtmzDvG1sZXJpbmkgb2x1xZ90dXJhYmlsbWVuaXppLCBzaWxlYmlsbWVuaXppIHZlIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkwCittc2dpZCAiYWxsb3dzIHlvdSB0byBjcmVhdGUsIGRlbGV0ZSBhbmQgbW9kaWZ5IHBhcnRpdGlvbnMgb24geW91ciBoYXJkIgorbXNnc3RyICIiCisiZGXEn2nFn3RpcmViaWxtZW5pemkgc2HEn2xheWFuIGV0a2lsZcWfaW1saSBiaXIgZGlzayBiw7Zsw7xtbGVtZSB1eWd1bGFtYXPEsWTEsXIuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgIiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIlRlbGlmIEhha2vEsSAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICIgS29tdXQgICAgICAgQW5sYW3EsSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICIgLS0tLS0gICAgICAgLS0tLS0tIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk3Cittc2dpZCAiICBiICAgICAgICAgIFRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBiICAgICAgICAgIFNlw6dpbGVuIGRpc2sgYsO2bMO8bcO8bsO8biBhw6fEsWzEscWfIGZsYW1hc8SxbsSxIGthbGTEsXLEsXIvaW5kaXJpciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgZCAgICAgICAgICBEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGQgICAgICAgICAgU2XDp2lsZW4gZGlzayBiw7Zsw7xtw7xuw7wgc2lsZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTkKK21zZ2lkICIgIGcgICAgICAgICAgQ2hhbmdlIGN5bGluZGVycywgaGVhZHMsIHNlY3RvcnMtcGVyLXRyYWNrIHBhcmFtZXRlcnMiCittc2dzdHIgIiAgZyAgICAgICAgICBTaWxpbmRpciwga2FmYSwgc2VrdMO2ci/EsHogcGFyYW1ldHJlbGVyaW5pIGRlxJ9pxZ90aXJpciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiAgICAgICAgICAgICBVWUFSSTogQnUgc2XDp2VuZWsgc2FkZWNlIG5lIHlhcHTEscSfxLFuxLEgaXlpIGJpbGVuIGtpxZ9pbGVyY2UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgICAgICAgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLiIKK21zZ3N0ciAiICAgICAgICAgICAgIGt1bGxhbsSxbGFiaWxpci4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICBCdSB5YXJkxLFtIGVrcmFuxLFuxLEgZ8O2c3RlcmlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAzCittc2dpZCAiICBtICAgICAgICAgIE1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIG0gICAgICAgICAgU2XDp2lsZW4gZGlzayBiw7Zsw7xtw7xuw7wga2FsYW4gYm/FnyB5ZXJlIHPEscSfZMSxcsSxciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAgICAgICAgICBOb3RlOiBUaGlzIG1heSBtYWtlIHRoZSBwYXJ0aXRpb24gaW5jb21wYXRpYmxlIHdpdGgiCittc2dzdHIgIiAgICAgICAgICAgICBCaWxnaTogRGlzayBiw7Zsw7xtw7xuw7wgRE9TLCBPUy8yIHZlIGJlbnplcmkgc2lzdGVtbGVybGUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCittc2dzdHIgIiAgICAgICAgICAgICB1eXVtc3V6bHVrIG9sdcWfdHVyYWJpbGlyLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiAgbiAgICAgICAgICBCb8WfIGFsYW5kYSB5ZW5pIGJpciBkaXNrIGLDtmzDvG3DvCBvbHXFn3R1cnVyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA3Cittc2dpZCAiICBwICAgICAgICAgIFByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiICBwICAgICAgICAgIERpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51IGVrcmFuYSB5YSBkYSBiaXIgZG9zeWF5YSB5YXphciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOAorbXNnaWQgIiAgICAgICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhlIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorIiAgICAgICAgICAgICBEaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3VudSBmYXJrbMSxIGJpw6dlbWxlcmRlIGVsZGUgZWRlYmlsaXJzaW5pei4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIGNob29zZSBmcm9tOiIKK21zZ3N0ciAiICAgICAgICAgICAgIEJ1IGJpw6dlbWxlcjoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgICAgICAgICAgICAgciAtIFJhdyBkYXRhIChleGFjdGx5IHdoYXQgd291bGQgYmUgd3JpdHRlbiB0byBkaXNrKSIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHIgLSBUZW1lbCB2ZXJpICh2ZXJpbmluIGRpc2tlIHlhesSxbGFuIGJpw6dlbWkpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzExCittc2dpZCAiICAgICAgICAgICAgICAgIHMgLSBUYWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIiAgICAgICAgICAgICAgICBzIC0gRGlzayBiw7Zsw7xtbGVyaW5pbiBzZWt0w7ZybGVyZSBkYcSfxLFsxLFtxLFuxLEgZ8O2c3RlcmlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEyCittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICIgICAgICAgICAgICAgICAgdCAtIEdlbGVuZWtzZWwgZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisiICBxICAgICAgICAgIERpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSBkaXNrdGVraSB5ZXJpbmUga2F5ZGVkaWxtZWRlbiDDp8Sxa8SxbMSxciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNAorbXNnaWQgIiAgdCAgICAgICAgICBDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAiICB0ICAgICAgICAgIERvc3lhIHNpc3RlbWkgdMO8csO8bsO8IGRlxJ9pxZ90aXJpciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNQorbXNnaWQgIiAgdSAgICAgICAgICBDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkiCittc2dzdHIgIiAgdSAgICAgICAgICBEaXNrIGLDtmzDvG3DvCBib3l1bnVuIGJpcmltaW5pIGRlxJ9pxZ90aXJpciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNgorbXNnaWQgIiAgICAgICAgICAgICBSb3RhdGVzIHRocm91Z2ggTUIsIHNlY3RvcnMgYW5kIGN5bGluZGVycyIKK21zZ3N0ciAiICAgICAgICAgICAgIE1CLCBzZWt0w7ZyLCBzaWxpbmRpciBiaXJpbWxlcmkgc8SxcmF5bGEgeWVyIGRlxJ9pxZ90aXJpciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNworbXNnaWQgIiAgVyAgICAgICAgICBXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAobXVzdCBlbnRlciB1cHBlciBjYXNlIFcpIgorbXNnc3RyICIgIFcgICAgICAgICAgRGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1bnUgZGlza3Rla2kgeWVyaW5lIHlhemFyLiAoQsO8ecO8ayBXKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiAgICAgICAgICAgICBEaXNrdGVraSB2ZXJpeWkgeWFubMSxxZ9sxLFrbGEga2F5YmV0bWVtZWsgacOnaW4gIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE5Cittc2dpZCAiICAgICAgICAgICAgIGVpdGhlciBjb25maXJtIG9yIGRlbnkgdGhlIHdyaXRlIGJ5IGVudGVyaW5nIGB5ZXMnIG9yIgorbXNnc3RyICIiCisiICAgICAgICAgICAgICdldmV0JyB5YSBkYSAnaGF5xLFyJyB5YXptYW7EsXogaXN0ZW5lcmVrIHZlcml5aSBkaXNrZSB5YXpkxLFyxLFwLCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIgICAgICAgICAgICAgeWF6ZMSxcm1heWFjYcSfxLFuxLF6YSBrZXNpbiBrYXJhciB2ZXJlYmlsaXJzaW5peiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMQorbXNnaWQgIlVwIEFycm93ICAgICBNb3ZlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgcGFydGl0aW9uIgorbXNnc3RyICJZdWthcsSxIE9rICAgIEvDvHJzw7Zyw7wgw7ZuY2VraSBkaXNrIGLDtmzDvG3DvG5lIGtheWTEsXLEsXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjIKK21zZ2lkICJEb3duIEFycm93ICAgTW92ZSBjdXJzb3IgdG8gdGhlIG5leHQgcGFydGl0aW9uIgorbXNnc3RyICJBxZ9hxJ/EsSBPayAgICAgS8O8cnPDtnLDvCBzb25yYWtpIGRpc2sgYsO2bMO8bcO8bmUga2F5ZMSxcsSxciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMworbXNnaWQgIkNUUkwtTCAgICAgICBSZWRyYXdzIHRoZSBzY3JlZW4iCittc2dzdHIgIkNUUkwtTCAgICAgICBFa3JhbsSxIHRhemVsZXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjQKK21zZ2lkICIgID8gICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgPyAgICAgICAgICBCdSB5YXJkxLFtIGVrcmFuxLFuxLEgZ8O2c3RlcmlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI2Cittc2dpZCAiTm90ZTogQWxsIG9mIHRoZSBjb21tYW5kcyBjYW4gYmUgZW50ZXJlZCB3aXRoIGVpdGhlciB1cHBlciBvciBsb3dlciIKK21zZ3N0ciAiQmlsZ2k6IEtheWRldCAoVykga29tdXR1IGTEscWfxLFuZGEgdMO8bSBrb211dGxhcsSxIGLDvHnDvGsgeWEgZGEga8O8w6fDvGsgaGFyZiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNworbXNnaWQgImNhc2UgbGV0dGVycyAoZXhjZXB0IGZvciBXcml0ZXMpLiIKK21zZ3N0ciAib2xhcmFrIGt1bGxhbmFiaWxpcnNpbml6LiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMyCittc2dpZCAiQ3lsaW5kZXJzIgorbXNnc3RyICJTaWxpbmRpciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OAorbXNnaWQgIkNoYW5nZSBjeWxpbmRlciBnZW9tZXRyeSIKK21zZ3N0ciAiU2lsaW5kaXIgZ2VvbWV0cmlzaW5pIGRlxJ9pxZ90aXJpciIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OSBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMwCittc2dpZCAiSGVhZHMiCittc2dzdHIgIkthZmEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkKK21zZ2lkICJDaGFuZ2UgaGVhZCBnZW9tZXRyeSIKK21zZ3N0ciAiS2FmYSBnZW9tZXRyaXNpbmkgZGXEn2nFn3RpcmlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAiU2VrdMO2ciBnZW9tZXRyaXNpbmkgZGXEn2nFn3RpcmlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAiVGFtYW0iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIkdlb21ldHJpIGRlxJ9pxZ9pa2xpxJ9pIHlhcMSxbGTEsSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM3NAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzOiAiCittc2dzdHIgIlNpbGluZGlyIHNhecSxc8SxbsSxIHZlcmluOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzODUgZmRpc2svY2ZkaXNrLmM6Mjk1OAorbXNnaWQgIklsbGVnYWwgY3lsaW5kZXJzIHZhbHVlIgorbXNnc3RyICJTaWxpbmRpciBzYXnEsXPEsSBrdXJhbGTEscWfxLEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTEKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGhlYWRzOiAiCittc2dzdHIgIkthZmEgc2F5xLFzxLFuxLEgdmVyaW46ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAiS2FmYSBzYXnEsXPEsSBrdXJhbGTEscWfxLEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MDQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrOiAiCittc2dzdHIgInNla3TDtnIvaXogc2F5xLFzxLFuxLEgdmVyaW46ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQxMSBmZGlzay9jZmRpc2suYzoyOTc1Cittc2dpZCAiSWxsZWdhbCBzZWN0b3JzIHZhbHVlIgorbXNnc3RyICJzZWt0w7ZyIHNhecSxc8SxIGt1cmFsZMSxxZ/EsSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUxNAorbXNnaWQgIkVudGVyIGZpbGVzeXN0ZW0gdHlwZTogIgorbXNnc3RyICJEb3N5YSBzaXN0ZW1pIHTDvHLDvG7DvCB2ZXJpbjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTMyCittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IgorbXNnc3RyICJEb3N5YSBzaXN0ZW1pIHTDvHLDvCBib8WfIG9sYXJhayBkZcSfacWfdGlyaWxlbWV6IgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICJEb3N5YSBzaXN0ZW1pIHTDvHLDvCBlayBvbGFyYWsgZGXEn2nFn3RpcmlsZW1leiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIk5lPyglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiLCBOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIk5DIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAiQmlyL01hbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAiQmlsaW5tZXllbiAoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXMiCittc2dzdHIgIlNhYml0IERpc2s6ICVzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQgTUIiCittc2dzdHIgIkJveXV0OiAlbGxkIGJheXQsICVsbGQgTUIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZC4lbGxkIEdCIgorbXNnc3RyICJCb3l1dDogJWxsZCBiYXl0LCAlbGxkLiVsbGQgR0IiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGVhZHM6ICVkICAgU2VjdG9ycyBwZXIgVHJhY2s6ICVkICAgQ3lsaW5kZXJzOiAlbGxkIgorbXNnc3RyICJLYWZhOiAlZCAgICAgICAgU2VrdMO2ci/EsHo6ICVkICAgICAgIFNpbGluZGlyOiAlbGxkICAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIsSwc2ltIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgyCittc2dpZCAiRmxhZ3MiCittc2dzdHIgIkZsYW1hIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgzCittc2dpZCAiUGFydCBUeXBlIgorbXNnc3RyICJCw7Zsw7xtIFTDvHLDvCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIkRTIFTDvHLDvCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NQorbXNnaWQgIltMYWJlbF0iCittc2dzdHIgIltFdGlrZXRdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgIFNla3TDtnIgICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4OQorbXNnaWQgIiAgQ3lsaW5kZXJzIgorbXNnc3RyICIgIFNpbGluZGlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkxCittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIiAgQm95IChNQikgIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkzCittc2dpZCAiICBTaXplIChHQikiCittc2dzdHIgIiAgQm95IChHQikgIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIkHDp8SxbMSxxZ8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIlNlw6dpbGVuIGRpc2sgYsO2bMO8bcO8bmRlIEHDp8SxbMSxxZ8gZmxhbWFzxLFuxLEga2FsZMSxcsSxci9pbmRpcmlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICJTaWwiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJTZcOnaWxlbiBkaXNrIGLDtmzDvG3DvG7DvCBrYWxkxLFyxLFyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiR2VvbWV0cnkiCittc2dzdHIgIkdlb21ldHJpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiQ2hhbmdlIGRpc2sgZ2VvbWV0cnkgKGV4cGVydHMgb25seSkiCittc2dzdHIgIkRpc2sgZ2VvbWV0cmlzaW5pIGRlxJ9pxZ90aXJpciAodXptYW5sYXIgacOnaW4pIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiWWFyZMSxbSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICJZYXJkxLFtIGVrcmFuxLFuxLEgZ8O2c3RlcmlyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUiCittc2dzdHIgIlPEscSfZMSxciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIChleHBlcnRzIG9ubHkpIgorbXNnc3RyICJTZcOnaWxlbiBkaXNrIGLDtmzDvG3DvG7DvCBrYWxhbiB5ZXJlIGfDtnJlIGF5YXJsYXIgKHV6bWFubGFyIGnDp2luKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAiWWVuaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIkNyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiQm/FnyBhbGFuZGEgeWVuaSBiaXIgZGlzayBiw7Zsw7xtw7wgb2x1xZ90dXJ1ciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IgorbXNnc3RyICJZYXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51IGVrcmFuYSB5YSBkYSBiaXIgZG9zeWF5YSB5YXphciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIsOHxLFrIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51IGRpc2tlIGtheWRldG1lZGVuIMOnxLFrYXIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJUeXBlIgorbXNnc3RyICJUw7xyw7wiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSAoRE9TLCBMaW51eCwgT1MvMiBhbmQgc28gb24pIgorbXNnc3RyICJEb3N5YSBzaXN0ZW1pIHTDvHLDvG7DvCBkZcSfacWfdGlyaXIgKERPUywgTGludXgsIE9TLzIsLi4sdnMpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiVW5pdHMiCittc2dzdHIgIkJpcmltIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAiR8O2c3RlcmlsZWNlayBib3kgYmlyaW1pbmkgZGXEn2nFn3RpcmlyIChNQiwgc2VrdCwgc2xkKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICJLYXlkZXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIgorbXNnc3RyICIiCisiRGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1bnUgZGlza2Uga2F5ZGVkZXIgKGJ1IGnFn2xlbSB2ZXJpbGVyaW4ga2F5YsSxbmEgc2ViZXAgIgorIm9sdXIpIgorCisjOiBmZGlzay9jZmRpc2suYzoyODA1Cittc2dpZCAiQ2Fubm90IG1ha2UgdGhpcyBwYXJ0aXRpb24gYm9vdGFibGUiCittc2dzdHIgIkJ1IGRpc2sgYsO2bMO8bcO8bmUgYcOnxLFsxLHFnyBrYXlkxLEgeWFwxLFsYW1heiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgxNQorbXNnaWQgIkNhbm5vdCBkZWxldGUgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJCaXIgYm/FnyBkaXNrIGLDtmzDvG3DvCBzaWxpbmVtZXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MzUgZmRpc2svY2ZkaXNrLmM6MjgzNworbXNnaWQgIkNhbm5vdCBtYXhpbWl6ZSB0aGlzIHBhcnRpdGlvbiIKK21zZ3N0ciAiQnUgZGlzayBiw7Zsw7xtw7wgc8SxxJ9kxLFyxLFsYW3EsXlvciIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NQorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIHVudXNhYmxlIgorbXNnc3RyICJCdSBkaXNrIGLDtmzDvG3DvCBrdWxsYW7EscWfc8SxeiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICJCdSBkaXNrIGLDtmzDvG3DvCB6YXRlbiBrdWxsYW7EsW1kYSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJCaXIgYm/FnyBkaXNrIGLDtmzDvG3DvG7DvG4gdMO8csO8IGRlxJ9pxZ90aXJpbGVtZXoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAiQmHFn2thIGRpc2sgYsO2bMO8bcO8IHlvayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkwNAorbXNnaWQgIklsbGVnYWwgY29tbWFuZCIKK21zZ3N0ciAiS3VyYWxkxLHFn8SxIGtvbXV0IgorCisjOiBmZGlzay9jZmRpc2suYzoyOTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorbXNnc3RyICJUZWxpZiBIYWtrxLEgwqkgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiS3VsbGFuxLFtxLE6XG4iCisiU8O8csO8bcO8IGfDtnN0ZXI6XG4iCisiICAgICAgICAlcyAtdlxuIgorIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51IGfDtnN0ZXI6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtzZcOnZW5la2xlcl0gYXlnxLF0XG4iCisiRXRraWxlxZ9pbWxpIGt1bGxhbsSxbTpcbiIKKyIgICAgICAgICVzIFtzZcOnZW5la2xlcl0gYXlnxLF0XG4iCisiXG4iCisiU2XDp2VuZWtsZXI6XG4iCisiLWE6IEF5ZMSxbmxhdG1hIHllcmluZSBvayBrdWxsYW7EsWzEsXI7XG4iCisiLXo6IERpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51IG9rdW1hZGFuIHPEsWbEsXIgdGFibG8gaWxlIGJhxZ9sYXI7XG4iCisiLWMgQyAtaCBIIC1zIFM6IMOHZWtpcmRla3RlIGthecSxdGzEsSBzaWxpbmRpciBzYXnEsXPEsShDKSwga2FmYSBzYXnEsXPEsShIKSxcbiIKKyIgICAgICAgICAgICAgICAgc2VrdMO2ci9peiBzYXnEsXPEsShTKSBkZcSfZXJsZXJpbmkgZGXEn2nFn3RpcmlyLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza2FpeGxhYmVsLmM6MjcKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIEFJWCBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IExpbnV4IGNhbm5vdCBoYW5kbGUgdGhlc2VcbiIKKyJcdGRpc2tzIGF0IHRoZSBtb21lbnQuICBOZXZlcnRoZWxlc3Mgc29tZVxuIgorIlx0YWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorIlx0My4gQmVmb3JlIGRlbGV0aW5nIHRoaXMgcGh5c2ljYWwgdm9sdW1lIGJlIHN1cmVcbiIKKyJcdCAgIHRvIHJlbW92ZSB0aGUgZGlzayBsb2dpY2FsbHkgZnJvbSB5b3VyIEFJWFxuIgorIlx0ICAgbWFjaGluZS4gIChPdGhlcndpc2UgeW91IGJlY29tZSBhbiBBSVhwZXJ0KS4iCittc2dzdHIgIiIKKyJcbiIKKyJcdERpc2sgw7x6ZXJpbmRlIGdlw6dlcmxpIGJpciBBSVggZXRpa2V0aSB2YXIuXG4iCisiXHROZSB5YXrEsWsga2ksIExpbnV4IMWfdSBhbmRhIGJ1IGRpc2tsZXJsZVxuIgorIlx0w6dhbMSxxZ9hbcSxeW9yLiBCdW5hIHJhxJ9tZW4gYmlyYXogdGF2c2l5ZTpcbiIKKyJcdDEuIGZkaXNrIGlsZSDDvHN0w7xuZSB5YXphcnNhbsSxeiBpw6dlcmnEn2luaSBrYXliZWRlY2Vrc2luaXouXG4iCisiXHQyLiBCdSBkaXNraW4gaGFsYSBiaXIgZ3J1YnVuIHlhxZ9hbXNhbCDDtm5lbWUgc2FoaXAgYmlyXG4iCisiXHQgICDDvHllc2kgb2xtYWTEscSfxLFuZGFuIGVtaW4gb2x1bi4gKEFrc2kgdGFrZGlyZGUsXG4iCisiXHQgICBheW5hbGFubWFtxLHFn3NhLCBkacSfZXIgZGlza2xlcmkgZGUgc2lsZWJpbGlyc2luaXouXG4iCisiXHQzLiBCdSBmaXppa3NlbCBiw7Zsw7xtw7wgc2lsbWVkZW4gw7ZuY2UgZGlza2kgQUlYXG4iCisiXHQgICBtYWtpbmFuxLF6ZGFuIG1hbnTEsWtzYWwgb2xhcmFrIGthbGTEsXJkxLHEn8SxbsSxemFcbiIKKyJcdCAgIGVtaW4gb2x1bi4gKEFrc2kgdGFrZGlyZGUgYmlyIEFJWHBlcnQgaGFsaW5lXG4iCisiXHQgICBnZWxlYmlsaXJzaW5pei4pIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIkF5Z8SxdCBpw6dpbiBCU0QgZGlzayBldGlrZXRpOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI4IGZkaXNrL2ZkaXNrLmM6Mzk0IGZkaXNrL2ZkaXNrLmM6NDEzCisjOiBmZGlzay9mZGlzay5jOjQzMSBmZGlzay9mZGlzay5jOjQzOCBmZGlzay9mZGlzay5jOjQ2MSBmZGlzay9mZGlzay5jOjQ3OQorIzogZmRpc2svZmRpc2suYzo0OTUgZmRpc2svZmRpc2suYzo1MTEKK21zZ2lkICJDb21tYW5kIGFjdGlvbiIKK21zZ3N0ciAiIEtvbXV0ICB5YXB0xLHEn8SxIGnFnyAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjkKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIGJpciBCU0QgZGlzayBiw7Zsw7xtw7xuw7wgc2lsZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzAKK21zZ2lkICIgICBlICAgZWRpdCBkcml2ZSBkYXRhIgorbXNnc3RyICIgICBlICAgYXlnxLF0IHZlcmlzaW5pIGTDvHplbmxlciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgIMO2bnnDvGtsZXlpY2kga3VyYXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzIKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBmaWxlc3lzdGVtIHR5cGVzIgorbXNnc3RyICIgICBsICAgYmlsaW5lbiBkb3N5YSBzaXN0ZW1pIHTDvHJsZXJpbmkgbGlzdGVsZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICBidSBtZW7DvHnDvCBnw7ZzdGVyaXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzQKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICB5ZW5pIGJpciBCU0QgZGlzayBiw7Zsw7xtw7wgZWtsZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIEJTRCBkaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3VudSBnw7ZzdGVyaXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzYgZmRpc2svZmRpc2suYzo0MDQgZmRpc2svZmRpc2suYzo0MjMKKyM6IGZkaXNrL2ZkaXNrLmM6NDM0IGZkaXNrL2ZkaXNrLmM6NDQ4IGZkaXNrL2ZkaXNrLmM6NDcxIGZkaXNrL2ZkaXNrLmM6NDg4CisjOiBmZGlzay9mZGlzay5jOjUwNCBmZGlzay9mZGlzay5jOjUyMgorbXNnaWQgIiAgIHEgICBxdWl0IHdpdGhvdXQgc2F2aW5nIGNoYW5nZXMiCittc2dzdHIgIiAgIHEgICBkZcSfacWfaWtsaWtsZXJpIGtheWRldG1lZGVuIMOnxLFrYXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzcgZmRpc2svZmRpc2suYzo0NzIgZmRpc2svZmRpc2suYzo0ODkKKyM6IGZkaXNrL2ZkaXNrLmM6NTA1IGZkaXNrL2ZkaXNrLmM6NTIzCittc2dpZCAiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiCittc2dzdHIgIiAgIHIgICBhbmEgbWVuw7x5ZSBkw7ZuZXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzgKK21zZ2lkICIgICBzICAgc2hvdyBjb21wbGV0ZSBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICBkaXNrIGV0aWtldGluaW4gdGFtYW3EsW7EsSBnw7ZzdGVyaXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzkKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3MgZmlsZXN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgIGRpc2sgYsO2bMO8bcO8bsO8biBkb3N5YSBzaXN0ZW1pIGtpbWxpxJ9pbmkgZ8O2c3RlcmlyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQwCittc2dpZCAiICAgdSAgIGNoYW5nZSB1bml0cyAoY3lsaW5kZXJzL3NlY3RvcnMpIgorbXNnc3RyICIgICB1ICAgYmlyaW0gZGXEn2nFn3RpcmlyIChzaWxpbmRpci9zZWt0w7ZyKSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgIGRpc2sgZXRpa2V0aW5pIGRpc2tlIHlhemFyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQzCittc2dpZCAiICAgeCAgIGxpbmsgQlNEIHBhcnRpdGlvbiB0byBub24tQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgeCAgIEJTRCBkaXNrIGLDtmzDvG3DvG7DvCBCU0Qtb2xtYXlhbiBiaXIgYsO2bMO8bWUgYmHEn2xhciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIiVzIGRpc2sgYsO2bMO8bcO8IGdlw6dlcnNpeiBiYcWfbGFuZ8Sxw6cgc2VrdMO2ciAwIGRlxJ9lcmluZSBzYWhpcC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIGRpc2tsYWJlbCBvZiAlcyBhdCBzZWN0b3IgJWQuXG4iCittc2dzdHIgIiVzIGRpc2sgZXRpa2V0aSBzZWt0w7ZyICVkIGRlbiBva3VudXlvci5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAiJXMgw7x6ZXJpbmRlICpCU0QgZGlzayBiw7Zsw7xtw7wgeW9rLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjAzCittc2dpZCAiQlNEIGRpc2tsYWJlbCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJCU0QgZGlzayBldGlrZXRpIGtvbXV0dSAoeWFyZMSxbSBpw6dpbiBtKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjgzIGZkaXNrL2ZkaXNrLmM6MjMyOCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM4CisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ICVzIgorbXNnc3RyICLEsGxrICVzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlcyBvciArc2l6ZSBvciArc2l6ZU0gb3IgK3NpemVLIgorbXNnc3RyICJTb24gJXMsICtzaXplLCArc2l6ZU0gdmV5YSArc2l6ZUsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJXNcbiIKK21zZ3N0ciAidMO8csO8OiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE5CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVkXG4iCittc2dzdHIgInTDvHLDvDogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgImRpc2s6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsYWJlbDogJS4qc1xuIgorbXNnc3RyICJldGlrZXQ6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmbGFnczoiCittc2dzdHIgImZsYW1hbGFyOiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgcmVtb3ZhYmxlIgorbXNnc3RyICIgc2lsaW5lYmlsaXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIGVjYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiIGJvenVrU2VrdMO2ciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcy9zZWN0b3I6ICVsZFxuIgorbXNnc3RyICJiYXl0L3Nla3TDtnI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvdHJhY2s6ICVsZFxuIgorbXNnc3RyICJzZWt0w7ZyL2l6OiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNAorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICJpei9zaWxpbmRpcjogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgInNla3TDtnIvc2lsaW5kaXI6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyczogJWxkXG4iCittc2dzdHIgInNpbGluZGlyIHNhecSxc8SxOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgImRldmlyIHNhecSxc8SxOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgImludGVybGVhdmU6ICVkXG4iCittc2dzdHIgInNlcnBpxZ90aXJtZTogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgIml6a2F5bWFzxLE6ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJza2V3OiAlZFxuIgorbXNnc3RyICJzaWxpbmRpcmtheW1hc8SxOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJrYWZhZGXEn2nFn2ltaSAlbGRcdFx0IyBtaWxpc2FuaXllXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlazogJWxkXHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICJpemRlbi1pemUgZ2XDp2nFnzogJWxkXHQjIG1pbGlzYW5peWVcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0NQorIywgYy1mb3JtYXQKK21zZ2lkICJkcml2ZWRhdGE6ICIKK21zZ3N0ciAiYXlnxLF0dmVyaXNpOiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJWQgcGFydGl0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkIGRpc2sgYsO2bMO8bcO8OlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiMgICAgICAgc3RhcnQgICAgICAgZW5kICAgICAgc2l6ZSAgICAgZnN0eXBlICAgW2ZzaXplIGJzaXplICAgY3BnXVxuIgorbXNnc3RyICIjICAgICBiYcWfbGFuZ8Sxw6cgICAgYml0acWfICAgICBib3kgICAgICBkc3TDvHLDvCAgIFtkYm95dSBiYm95dSAgIGNwZ11cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRpbmcgZGlza2xhYmVsIHRvICVzLlxuIgorbXNnc3RyICJEaXNrIGV0aWtldGkgJXMgw7x6ZXJpbmUgeWF6xLFsxLF5b3IuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MTkgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjb250YWlucyBubyBkaXNrbGFiZWwuXG4iCittc2dzdHIgIiVzIGRpc2sgZXRpa2V0aSBpw6dlcm1peW9yLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDI2Cittc2dpZCAiRG8geW91IHdhbnQgdG8gY3JlYXRlIGEgZGlza2xhYmVsPyAoeS9uKSAiCittc2dzdHIgIkJpciBkaXNrIGV0aWtldGkgb2x1xZ90dXJtYWsgaXN0ZXIgbWlzaW5pej8gKGUvaCkgIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICJiYXl0L3Nla3TDtnIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjcKK21zZ2lkICJzZWN0b3JzL3RyYWNrIgorbXNnc3RyICJzZWt0w7ZyL2l6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY4Cittc2dpZCAidHJhY2tzL2N5bGluZGVyIgorbXNnc3RyICJpei9zaWxpbmRpciIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAic2lsaW5kaXIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NzYKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyIgorbXNnc3RyICJzZWt0w7ZyL3NpbGluZGlyIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgPD0gc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciAoZGVmYXVsdCkuXG4iCittc2dzdHIgIiA8PSBzZWt0w7ZyL2l6ICogaXovc2lsaW5kaXIgKMO2bnRhbsSxbWzEsSkgb2xtYWzEsS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAicnBtIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAic2VycGnFn3Rpcm1lIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICJpemtheW1hc8SxIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg1Cittc2dpZCAiY3lsaW5kZXJza2V3IgorbXNnc3RyICJzaWxpbmRpcmtheW1hc8SxIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg2Cittc2dpZCAiaGVhZHN3aXRjaCIKK21zZ3N0ciAia2FmYWRlxJ9pxZ90aXJtZSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NworbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWsiCittc2dzdHIgIml6ZGVuLWl6ZSBnZcOnacWfIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCittc2dzdHIgIsOWbnnDvGtsZXlpY2k6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIsOWbnnDvGtsZXlpY2kgZGlzayBldGlrZXRpbmluIGFsYW7EsW5hIGdpcml5b3IhXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgaW5zdGFsbGVkIG9uICVzLlxuIgorbXNnc3RyICIlcyDDvHplcmluZSDDtm55w7xrbGV5aWNpIGt1cnVsZHUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIChhLSVjKTogIgorbXNnc3RyICJEaXNrIGLDtmzDvG3DvCAoYS0lYyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYxNyBmZGlzay9mZGlzay5jOjI0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgaGFzIGJlZW4gY3JlYXRlZFxuIgorbXNnc3RyICJPbHXFn3R1cnVsYWJpbGVjZWsgZGlzayBiw7Zsw7xtbGVyaW5pbiB0w7xtw7wgb2x1xZ90dXJ1bGR1XG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMuXG4iCittc2dzdHIgIkJ1IGRpc2sgYsO2bMO8bcO8IHphdGVuIHZhci5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIlV5YXLEsTogZGlzayBiw7Zsw7xtw7wgc2F5xLFzxLEgw6dvayBmYXpsYSAoJWQsIGVuIMOnb2sgJWQpLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlza2xlciBlxZ96YW1hbmxhbsSxeW9yLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NgorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgZmRpc2sgW29wdGlvbnNdIDxkaXNrPiAgICBjaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisiIGZkaXNrIFtvcHRpb25zXSAtbCA8ZGlzaz4gbGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyIgZmRpc2sgLXMgPHBhcnRpdGlvbj4gICAgICBnaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1iIDxzaXplPiAgICAgICAgICAgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGhlbHBcbiIKKyIgLXUgPHNpemU+ICAgICAgICAgICAgICAgICBnaXZlIHNpemVzIGluIHNlY3RvcnMgaW5zdGVhZCBvZiBjeWxpbmRlcnNcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB2ZXJzaW9uXG4iCisiIC1DIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVyc1xuIgorIiAtSCA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBoZWFkc1xuIgorIiAtUyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFja1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzXG4iCittc2dzdHIgIiVzIGHDp8SxbGFtxLF5b3JcbiIKKworIzogZmRpc2svZmRpc2suYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgJXNcbiIKK21zZ3N0ciAiJXMgb2t1bmFtxLF5b3JcbiIKKworIzogZmRpc2svZmRpc2suYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNlZWsgb24gJXNcbiIKK21zZ3N0ciAiJXMgw7x6ZXJpbmRlIGVyacWfaW0gb2xhbmFrc8SxelxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiJXMgeWF6xLFsYW3EsXlvclxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlc1xuIgorbXNnc3RyICIlcyDDvHplcmluZGUgQkxLR0VUU0laRSBpb2N0bCBoYXRhIHZlcmRpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGFueSBtb3JlIG1lbW9yeVxuIgorbXNnc3RyICJEYWhhIGZhemxhIGJlbGxlayBheXLEsWxhbcSxeW9yXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAiw5Zsw7xtY8O8bCBIYXRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIgICBhICAgc2FsdC1va3VudXIgZmxhbWFzxLFuxLEga2FsZMSxcsSxci9pbmRpcmlyIgorCisjOiBmZGlzay9mZGlzay5jOjM5NiBmZGlzay9mZGlzay5jOjQ0MAorbXNnaWQgIiAgIGIgICBlZGl0IGJzZCBkaXNrbGFiZWwiCittc2dzdHIgIiAgIGIgICBic2QgZGlzayBldGlrZXRpbmkgZMO8emVubGVyIgorCisjOiBmZGlzay9mZGlzay5jOjM5NworbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIG1vdW50YWJsZSBmbGFnIgorbXNnc3RyICIgICBjICAgYmHEn2xhbmFiaWxpciBmbGFtYXPEsW7EsSBrYWxkxLFyxLFyL2luZGlyaXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIGJpciBkaXNrIGLDtmzDvG3DvG7DvCBzaWxlciIKKworIzogZmRpc2svZmRpc2suYzozOTkgZmRpc2svZmRpc2suYzo0MTggZmRpc2svZmRpc2suYzo0NDMKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgIGwgICBiaWxpbmVuIGRpc2sgYsO2bMO8bcO8IHTDvHJsZXJpbmkgbGlzdGVsZXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICB5ZW5pIGJpciBkaXNrIGLDtmzDvG3DvCBla2xlciIKKworIzogZmRpc2svZmRpc2suYzo0MDIgZmRpc2svZmRpc2suYzo0MjEgZmRpc2svZmRpc2suYzo0MzMgZmRpc2svZmRpc2suYzo0NDYKK21zZ2lkICIgICBvICAgY3JlYXRlIGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIG8gICB5ZW5pIGJpciBET1MgZGlzayBiw7Zsw7xtw7wgb2x1xZ90dXJ1ciIKKworIzogZmRpc2svZmRpc2suYzo0MDMgZmRpc2svZmRpc2suYzo0MjIgZmRpc2svZmRpc2suYzo0NDcgZmRpc2svZmRpc2suYzo0NzAKKyM6IGZkaXNrL2ZkaXNrLmM6NDg3IGZkaXNrL2ZkaXNrLmM6NTAzIGZkaXNrL2ZkaXNrLmM6NTIxCittc2dpZCAiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHAgICBkaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3VudSBnw7ZzdGVyaXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAgeWVuaSBiaXIgU3VuIGRpc2sgZXRpa2V0aSBvbHXFn3R1cnVyIgorCisjOiBmZGlzay9mZGlzay5jOjQwNiBmZGlzay9mZGlzay5jOjQyNSBmZGlzay9mZGlzay5jOjQ1MAorbXNnaWQgIiAgIHQgICBjaGFuZ2UgYSBwYXJ0aXRpb24ncyBzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICBkaXNrIGLDtmzDvG3DvG7DvG4gc2lzdGVtIGtpbWxpxJ9pbmkgZGXEn2nFn3RpcmlyIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIGfDtnN0ZXJtZS9naXJkaSBiaXJpbWluaSBkZcSfacWfdGlyaXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA4IGZkaXNrL2ZkaXNrLmM6NDI3IGZkaXNrL2ZkaXNrLmM6NDUyIGZkaXNrL2ZkaXNrLmM6NDc0CisjOiBmZGlzay9mZGlzay5jOjQ5MSBmZGlzay9mZGlzay5jOjUwNyBmZGlzay9mZGlzay5jOjUyNQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgdiAgIGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51IGRvxJ9ydWxhciIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiAgIHcgICB0YWJsb3l1IGRpc2t0ZWtpIHllcmluZSB5YXphciB2ZSDDp8Sxa2FyIgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgICB4ICAgZmF6bGFkYW4gacWfbGV2c2VsbGlrICh1em1hbmxhciBpw6dpbikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0Cittc2dpZCAiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGEgICBhw6fEsWzEscWfIGRpc2sgYsO2bMO8bcO8bsO8IHNlw6dlciIKKworIzogZmRpc2svZmRpc2suYzo0MTUKK21zZ2lkICIgICBiICAgZWRpdCBib290ZmlsZSBlbnRyeSIKK21zZ3N0ciAiICAgYiAgIGHDp8SxbMSxxZ8gZG9zeWFzxLEgZ2lyZGlsZXJpbmkgZMO8emVubGVyIgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIgICBjICAgc2dpIHRha2FzIGLDtmzDvG3DvCBzZcOnaWxpciIKKworIzogZmRpc2svZmRpc2suYzo0MzkKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgYm9vdGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYSAgIGHDp8SxbMSxxZ8gZmxhbWFzxLFuxLEgaW5kaXJpci9rYWxkxLFyxLFyIgorCisjOiBmZGlzay9mZGlzay5jOjQ0MQorbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciCittc2dzdHIgIiAgIGMgICBkb3MgdXl1bWx1bHVrIGZsYW1hc8SxbsSxIGluZGlyaXIva2FsZMSxcsSxciIKKworIzogZmRpc2svZmRpc2suYzo0NjIKK21zZ2lkICIgICBhICAgY2hhbmdlIG51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICIgICBhICAgYWxtYcWfxLFrIHNpbGluZGlybGVyaW4gc2F5xLFzxLFuxLEgZGXEn2nFn3RpcmlyIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgIHNpbGluZGlyIHNhecSxc8SxbsSxIGRlxJ9pxZ90aXJpciIKKworIzogZmRpc2svZmRpc2suYzo0NjQgZmRpc2svZmRpc2suYzo0ODIgZmRpc2svZmRpc2suYzo0OTggZmRpc2svZmRpc2suYzo1MTQKK21zZ2lkICIgICBkICAgcHJpbnQgdGhlIHJhdyBkYXRhIGluIHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGQgICBkaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3VudW4gdGVtZWwgdmVyaXNpbmkgZ8O2c3RlcmlyIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAgc2lsaW5kaXIgYmHFn8SxbmEgZmF6bGFkYW4gc2VrdMO2ciBzYXnEsXPEsW7EsSBkZcSfacWfdGlyaXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY2IGZkaXNrL2ZkaXNrLmM6NDg1IGZkaXNrL2ZkaXNrLmM6NTAxIGZkaXNrL2ZkaXNrLmM6NTE4Cittc2dpZCAiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIiAgIGggICBrYWZhIHNhecSxc8SxbsSxIGRlxJ9pxZ90aXJpciIKKworIzogZmRpc2svZmRpc2suYzo0NjcKK21zZ2lkICIgICBpICAgY2hhbmdlIGludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICIgICBpICAgc2VycGnFn3Rpcm1lIGV0a2VuaW5pIGRlxJ9pxZ90aXJpciIKKworIzogZmRpc2svZmRpc2suYzo0NjgKK21zZ2lkICIgICBvICAgY2hhbmdlIHJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIgICBvICAgZGV2aXIgc2F5xLFzxLFuxLEgZGXEn2nFn3RpcmlyIChycG0pIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorbXNnaWQgIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siCittc2dzdHIgIiAgIHMgICBzZWt0w7ZyL2l6IHNhecSxc8SxbsSxIGRlxJ9pxZ90aXJpciIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiAgIHkgICBmaXppa3NlbCBzaWxpbmRpciBzYXnEsXPEsW7EsSBkZcSfacWfdGlyaXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGIgICBkaXNrIGLDtmzDvG3DvCBpw6dpbmRla2kgdmVyaW5pbiBiYcWfbGFuxLFjxLFuYSBnaWRlciIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKK21zZ2lkICIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIgICBlICAgZWsgZGlzayBiw7Zsw7xtbGVyaW5pIGxpc3RlbGVyIgorCisjOiBmZGlzay9mZGlzay5jOjQ4NCBmZGlzay9mZGlzay5jOjUwMCBmZGlzay9mZGlzay5jOjUxNworbXNnaWQgIiAgIGcgICBjcmVhdGUgYW4gSVJJWCAoU0dJKSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIGcgICBJUklYIChTR0kpIGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSBvbHXFn3R1cnVyIgorCisjOiBmZGlzay9mZGlzay5jOjUxNgorbXNnaWQgIiAgIGYgICBmaXggcGFydGl0aW9uIG9yZGVyIgorbXNnc3RyICIgICBmICAgZGlzayBiw7Zsw7xtbGVtZSBzxLFyYXPEsW7EsSBkw7x6ZWx0aXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5CisjLCBmdXp6eQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgdSAgIGfDtnN0ZXJtZS9naXJkaSBiaXJpbWluaSBkZcSfacWfdGlyaXIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IHNldCIKK21zZ3N0ciAiQmVsaXJ0aWxtZWxpIgorCisjOiBmZGlzay9mZGlzay5jOjczNgorbXNnaWQgImhlYWRzIgorbXNnc3RyICJrYWZhIgorCisjOiBmZGlzay9mZGlzay5jOjczOCBmZGlzay9mZGlzay5jOjE1OTIgZmRpc2svc2ZkaXNrLmM6OTMwCittc2dpZCAic2VjdG9ycyIKK21zZ3N0ciAic2VrdMO2ciIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisiJXMlcy5cbiIKKyJCdW51IGZhemxhZGFuIGnFn2xldmxlciBtZW7DvHPDvG5kZW4geWFwYWJpbGlyc2luaXouXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiB2ZSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvXG4iCisiICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvXG4iCisiICAgICAgICAgc2VjdG9ycyAoY29tbWFuZCAndScpLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBjeWxpbmRlcnMgYXMgZGlzcGxheSB1bml0cyBhcmUgZGVwcmVjYXRlZC4gVXNlIGNvbW1hbmQgJ3UnIHRvXG4iCisiICAgICAgICAgY2hhbmdlIHVuaXRzIHRvIHNlY3RvcnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG9mZnNldCBpbiBwcmltYXJ5IGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJCaXJpbmNpbCBlayBkaXNrIGLDtmzDvG3DvG5kZSBoaXphbGFtYSBoYXRhbMSxXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorIlV5YXLEsTogJWQuIGLDtmzDvG1kZW4gc29ucmFraWxlciBhdGxhbsSxeW9yLlxuIgorIkJ1IGLDtmzDvG1sZW1lIHRhYmxvc3VudSBrYXlkZWRlcnNlbml6LCBidW5sYXIgc2lsaW5tacWfIG9sYWNhay5cbiIKKworIzogZmRpc2svZmRpc2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZXh0cmEgbGluayBwb2ludGVyIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICJVeWFyxLE6ICVkIGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW5kYSBmYXpsYWRhbiBiYcSfIGltbGV5aWNpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIlV5YXLEsTogJWQgZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1bmRha2kgZmF6bGFkYW4gdmVyaSB5b2tzYXnEsWzEsXlvclxuIgorCisjOiBmZGlzay9mZGlzay5jOjg5MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib21pdHRpbmcgZW1wdHkgcGFydGl0aW9uICglZClcbiIKK21zZ3N0ciAiVXlhcsSxOiBib8WfIGRpc2sgYsO2bMO8bcO8XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4JTA4eC5cbiIKKyJDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uXG4iCisiQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlllbmkgYmlyIERPUyBkaXNrIGV0aWtldGkga3VyZ3VsYW7EsXlvci4gU2l6IG9ubGFyxLEgeWF6YW5hIGthZGFyICIKKyJkZcSfacWfaWtsaWtsZXJcbiIKKyJiZWxsZWt0ZSBiZWtsZXllY2VrLiBBa3NpIHRha2RpcmRlLCDDtm5jZWtpIGnDp2VyaWsga3VydGFyxLFsYW1heWFjYWsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3RlOiBzZWN0b3Igc2l6ZSBpcyAlZCAobm90ICVkKVxuIgorbXNnc3RyICJCaWxnaTogc2VrdMO2ciB1enVubHXEn3UgJWQgKCVkIGRlxJ9pbClcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51IGRpc2t0ZWtpIHllcmluZSBrYXlkZXRtZSB5ZXRraW5peiB5b2suXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkaXNrIGhhcyBib3RoIERPUyBhbmQgQlNEIG1hZ2ljLlxuIgorIkdpdmUgdGhlICdiJyBjb21tYW5kIHRvIGdvIHRvIEJTRCBtb2RlLlxuIgorbXNnc3RyICIiCisiQnUgZGlzayBoZW0gRE9TIGhlbSBkZSBCU0Qgb2xhcmFrIGltbGkuXG4iCisiQlNEIGtpcGluZSBnZcOnbWVrIGnDp2luICdiJyBrb211dHVudSB2ZXJpbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisiQXlnxLF0IG5lIGdlw6dlcmxpIGJpciBET1MgZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1IG5lIGRlIFN1biwgU0dJIHlhIGRhIE9TRiAiCisiZGlzayBldGlrZXRsZXJpIGnDp2VyaXlvci5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgIkludGVybmFsIGVycm9yXG4iCittc2dzdHIgIsSww6cgaGF0YVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSWdub3JpbmcgZXh0cmEgZXh0ZW5kZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIkZhemxhZGFuIGVrIGRpc2sgYsO2bMO8bcO8ICVkIHlva3NhecSxbMSxeW9yXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogaW52YWxpZCBmbGFnIDB4JTA0eCBvZiBwYXJ0aXRpb24gdGFibGUgJWQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyIKKyIocml0ZSlcbiIKK21zZ3N0ciAiIgorIlV5YXLEsTogZ2XDp2Vyc2l6IGJheXJhayAweCUwNHggJWQuIGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW5kYSB3KHlheikgaWxlICIKKyJkw7x6ZWx0aWxtacWfIG9sYWNha1xuIgorCisjOiBmZGlzay9mZGlzay5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImdvdCBFT0YgdGhyaWNlIC0gZXhpdGluZy4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEb3N5YSBzb251bmEgcmFzdGxhbmTEsSAtIMOnxLFrxLFsxLF5b3IuLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIk9uYWx0xLFsxLFrIGtvZCAoa29kIGxpc3Rlc2kgacOnaW4gTCB0dcWfbGF5xLFuKToiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXUtJXUsIGRlZmF1bHQgJXUpOiAiCittc2dzdHIgIiVzICgldS0ldSwgw7ZudGFuxLFtbMSxICV1KTogIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgc3VmZml4OiAnJXMnLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VwcG9ydGVkOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaUJ5dGUpLCBNICAoTWViaUJ5dGUpLCBHICAoR2liaUJ5dGUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGRlZmF1bHQgdmFsdWUgJXVcbiIKK21zZ3N0ciAiw5ZudGFuxLFtbMSxIGRlxJ9lciAldSBrdWxsYW7EsWzEsXlvclxuIgorCisjOiBmZGlzay9mZGlzay5jOjE0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmFsdWUgb3V0IG9mIHJhbmdlLlxuIgorbXNnc3RyICJEZcSfZXIga2Fwc2FtZMSxxZ/EsS5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNTE4Cittc2dpZCAiUGFydGl0aW9uIG51bWJlciIKK21zZ3N0ciAiRGlzayBiw7Zsw7xtw7wgbnVtYXJhc8SxIgorCisjOiBmZGlzay9mZGlzay5jOjE1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGhhcyBlbXB0eSB0eXBlXG4iCittc2dzdHIgIlV5YXLEsTogJWQgZGlzayBiw7Zsw7xtw7xuw7xuIHTDvHLDvCBib8WfIGfDtnLDvG7DvHlvclxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTEgZmRpc2svZmRpc2suYzoxNTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbGVjdGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJTZcOnaWxlbiBkaXNrIGLDtmzDvG3DvCAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9uIGlzIGRlZmluZWQgeWV0IVxuIgorbXNnc3RyICJUYW7EsW1sxLEgYmlyIGRpc2sgYsO2bMO8bcO8IGhlbsO8eiB5b2shXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgcHJpbWFyeSBwYXJ0aXRpb25zIGhhdmUgYmVlbiBkZWZpbmVkIGFscmVhZHkhXG4iCittc2dzdHIgIlTDvG0gYmlyaW5jaWwgYsO2bMO8bWxlciB6YXRlbiB0YW7EsW1sxLEhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgImN5bGluZGVyIgorbXNnc3RyICJzaWxpbmRpciIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICJzZWt0w7ZyIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICJnw7ZzdGVybWUvZ2lyZGkgYmlyaW1pICVzIG9sYXJhayBkZcSfacWfdGlyaWxpeW9yXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIlVZQVJJOiAlZCBkaXNrIGLDtmzDvG3DvCBiaXIgZWsgZGlzayBiw7Zsw7xtw7xcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgc2V0XG4iCittc2dzdHIgIkRPUyB1eXVtbHVsdWsgZmxhbWFzxLEgZXRraW5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldFxuIgorbXNnc3RyICJET1MgdXl1bWx1bHVrIGZsYW1hc8SxIGV0a2luIGRlxJ9pbFxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IGV4aXN0IHlldCFcbiIKK21zZ3N0ciAiJWQgZGlzayBiw7Zsw7xtw7wgaGVuw7x6IHlvayFcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKyJCaXLDp29rIHNpc3RlbWRlIChMaW51eCBkxLHFn8SxbmRhKSAwIHTDvHLDvCBib8WfIGFsYW7EsVxuIgorImfDtnN0ZXJpci4gMCB0w7xyw7xuZGUgYmlyIGRpc2sgYsO2bMO8bcO8bmUgc2FoaXAgb2xtYWtcbiIKKyJtdWh0ZW1lbGVuIHBlayB1eWd1biBvbG1heWFjYWt0xLFyLiAnZCcga29tdXR1bnVcbiIKKyJrdWxsYW5hcmFrIGJpciBkaXNrIGLDtmzDvG3DvG7DvCBzaWxlYmlsaXJzaW5pei5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgY2Fubm90IGNoYW5nZSBhIHBhcnRpdGlvbiBpbnRvIGFuIGV4dGVuZGVkIG9uZSBvciB2aWNlIHZlcnNhXG4iCisiRGVsZXRlIGl0IGZpcnN0LlxuIgorbXNnc3RyICIiCisiQmlyIGRpc2sgYsO2bMO8bcO8bsO8IGJpciBlayBiw7Zsw7xtw7xuIGnDp2luZGUgeWEgZGEgaGVyaGFuZ2kgYmlyIHllcmRlXG4iCisiZGXEn2nFn3RpcmVtZXpzaW5pei4gw5ZuY2Ugc2lsbWVuaXogZ2VyZWtpci5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiAzIGFzIFdob2xlIGRpc2sgKDUpLFxuIgorImFzIFN1bk9TL1NvbGFyaXMgZXhwZWN0cyBpdCBhbmQgZXZlbiBMaW51eCBsaWtlcyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkxpbnV4J2EgdXlndW4gb2xzYSBkYSBTdW5PUy9Tb2xhcmlzIGdlcmVrdGlyZGnEn2luZGVuLFxuIgorIjMuIGRpc2sgYsO2bMO8bcO8bsO8biBkaXNraW4gdGFtYW3EsSAoNSkgb2xhcmFrIGLEsXJha8SxbGTEscSfxLEga2FidWwgZWRpbGl5b3IuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDkgYXMgdm9sdW1lIGhlYWRlciAoMCksXG4iCisiYW5kIHBhcnRpdGlvbiAxMSBhcyBlbnRpcmUgdm9sdW1lICg2KSwgYXMgSVJJWCBleHBlY3RzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiSVJJWCBnZXJla3RpcmRpxJ9pbmRlbiwgMTEuIGRpc2sgYsO2bMO8bcO8IHTDvG0gJ3ZvbHVtZScgKDYpIHZlXG4iCisiOS4gZGlzayBiw7Zsw7xtw7wgJ3ZvbHVtZScgYmHFn2zEscSfxLEgKDYpIG9sYXJhayBixLFyYWvEsWxkxLHEn8SxIGthYnVsIGVkaWxpeW9yLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICIlZCBkaXNrIGLDtmzDvG3DvG7DvG4gc2lzdGVtIHTDvHLDvCAleCAoJXMpIG9sYXJhayBkZcSfacWfdGlyaWxkaVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSB0eXBlIG9mIHBhcnRpdGlvbiAlZCBpcyB1bmNoYW5nZWQ6ICV4ICglcylcbiIKK21zZ3N0ciAiJWQgZGlzayBiw7Zsw7xtw7xuw7xuIHNpc3RlbSB0w7xyw7wgJXggKCVzKSBvbGFyYWsgZGXEn2nFn3RpcmlsZGlcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgYmVnaW5uaW5ncyAobm9uLUxpbnV4Pyk6XG4iCittc2dzdHIgIiIKKyIlZCBkaXNrIGLDtmzDvG3DvCBmYXJrbMSxIGZpemlrc2VsL21hbnTEsWtzYWwgYmHFn2xhbmfEscOnbGFyYSBzYWhpcCAoTGludXggIgorImRlxJ9pbD8pOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjkgZmRpc2svZmRpc2suYzoxODM3IGZkaXNrL2ZkaXNrLmM6MTg0NiBmZGlzay9mZGlzay5jOjE4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICBwaHlzPSglZCwgJWQsICVkKSAiCittc2dzdHIgIiBmaXppa3NlbD0oJWQsICVkLCAlZCkgIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzAgZmRpc2svZmRpc2suYzoxODM4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iCittc2dzdHIgIm1hbnTEsWtzYWw9KCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzNQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGVuZGluZ3M6XG4iCittc2dzdHIgIiVkIGRpc2sgYsO2bMO8bcO8IGZhcmtsxLEgZml6aWtzZWwvbWFudMSxa3NhbCBiaXRpxZ9sZXJlIHNhaGlwOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICIlaSBkaXNrIGLDtmzDvG3DvG7DvG4gYmHFn2xhbmfEsWPEsSBzaWxpbmRpciBzxLFuxLFybGFyxLEgZMSxxZ/EsW5kYTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAxKVxuIgorbXNnc3RyICIoJWQsICVkLCAxKSBvbG1hbMSxeWTEsVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiJWkuIGRpc2sgYsO2bMO8bcO8IHNpbGluZGlyIHPEsW7EsXLEsW5kYSBiaXRtaXlvci5cbiIKKworIzogZmRpc2svZmRpc2suYzoxODU3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAlZClcbiIKK21zZ3N0ciAiKCVkLCAlZCwgJWQpIG9sbWFsxLF5ZMSxXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIHBoeXNpY2FsIHNlY3RvciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiJWkgZGlzayBiw7Zsw7xtw7xuw7xuIGJhxZ9sYW5nxLFjxLEgc2lsaW5kaXIgc8SxbsSxcmxhcsSxIGTEscWfxLFuZGE6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg3NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkIE1CLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQgTUIgJWxsZCBiYXl0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBiYXl0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJWQgaGVhZHMsICVsbHUgc2VjdG9ycy90cmFjaywgJWQgY3lsaW5kZXJzIgorbXNnc3RyICIlZCBrYWZhLCAlZCBzZWt0w7ZyL2l6LCAlZCBzaWxpbmRpciIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgdG90YWwgJWxsdSBzZWN0b3JzIgorbXNnc3RyICIsIHRvcGxhbSAlbGx1IHNla3TDtnIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorIkJpcmltbGVyID0gJXMgLyAlZCAqICVkID0gJWQgYmF5dFxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiZMO8xJ/DvG0gc2F5xLFzxLEgaGF0YWzEsSIKKworIzogZmRpc2svZmRpc2suYzoyMDA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3RoaW5nIHRvIGRvLiBPcmRlcmluZyBpcyBjb3JyZWN0IGFscmVhZHkuXG4iCisiXG4iCittc2dzdHIgIiIKKyJIacOnYmlyIMWfZXkgeWFwxLFsbWFkxLEuIFPEsXJhbGFtYSB6YXRlbiBkb8SfcnUuXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRG9uZS5cbiIKK21zZ3N0ciAiIgorIkJpdHRpXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisiQnUgYmlyIGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSBnaWJpIGfDtnLDvG5tw7x5b3IuXG4iCisiR2FsaWJhIHlhbmzEscWfIGF5Z8SxdCBzZcOndGluaXouXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgQcOnxLFsxLHFnyAgICBCYcWfbGFuZ8Sxw6cgICAgIEJpdGnFnyAgQmxva1NhecSxc8SxIEttbCBTaXN0ZW1cbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5OAorbXNnaWQgIkRldmljZSIKK21zZ3N0ciAiQXlnxLF0IgorCisjOiBmZGlzay9mZGlzay5jOjIxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1IGdpcmRpbGVyaSBkaXNrdGVraSBzxLFyYXPEsW5kYSBkZcSfaWxcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBrYWZhLCAlZCBzZWt0w7ZyLCAlZCBzaWxpbmRpclxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iCittc2dzdHIgIk5vIEFGICBIZCBTa3QgIFNsbiAgSGQgU2t0ICBTbGQgICAgQmHFn2xhbmfEscOnICAgQm95ICBLbWxcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBjb250YWlucyBzZWN0b3IgMFxuIgorbXNnc3RyICJVeWFyxLE6ICVkIGRpc2sgYsO2bMO8bcO8IDAuIHNla3TDtnLDvCBpw6dlcml5b3JcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogaGVhZCAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICIiCisiJWQgZGlzayBiw7Zsw7xtw7w6IGthZmEgc2F5xLFzxLEgJWQgZW4gw6dvayBvbGFiaWxlY2XEn2kgJWQgZGXEn2VyaW5kZW4gYsO8ecO8a1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogc2VjdG9yICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAiIgorIiVkIGRpc2sgYsO2bMO8bcO8OiBzZWt0w7ZyIHNhecSxc8SxICVkIGVuIMOnb2sgb2xhYmlsZWNlxJ9pICVkIGRlxJ9lcmluZGVuIGLDvHnDvGtcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbnMgJWQ6IGN5bGluZGVyICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIiIKKyIlZCBkaXNrIGLDtmzDvG3DvDogc2lsaW5kaXIgc2F5xLFzxLEgJWQgZW4gw6dvayBvbGFiaWxlY2XEn2kgJWQgZGXEn2VyaW5kZW4gYsO8ecO8a1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBwcmV2aW91cyBzZWN0b3JzICVkIGRpc2FncmVlcyB3aXRoIHRvdGFsICVkXG4iCittc2dzdHIgIiVkIGRpc2sgYsO2bMO8bcO8OiDDtm5jZWtpIHNla3TDtnIgc2F5xLFzxLEgJWQgdG9wbGFtICVkIGlsZSDDp2VsacWfaXlvclxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHN0YXJ0LW9mLWRhdGEgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIlV5YXLEsTogJWQgZGlzayBiw7Zsw7xtw7xuw7xuIHZlcmktYmHFn2xhbmfEsWPEsSBoYXRhbMSxXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgb3ZlcmxhcHMgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICJVeWFyxLE6ICVkIGlsZSAlZCBkaXNrIGLDtmzDvG1sZXJpIGJpcmJpcmluZSBnaXJtacWfLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGlzIGVtcHR5XG4iCittc2dzdHIgIlV5YXLEsTogJWQgZGlzayBiw7Zsw7xtw7wgYm/Fn1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naWNhbCBwYXJ0aXRpb24gJWQgbm90IGVudGlyZWx5IGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJNYW50xLFrc2FsIGRpc2sgYsO2bMO8bcO8ICVkIHRhbWFtZW4gJWQgZGlzayBiw7Zsw7xtw7xuw7xuIGnDp2luZGUgZGXEn2lsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICIiCisiVGFoc2lzIGVkaWxlbiBzZWt0w7ZyIHNhecSxc8SxICVkIGVuIGZhemxhIG9sbWFzxLEgZ2VyZWtlbiAlbGxkIGRlxJ9lcmluZGVuICIKKyJiw7x5w7xrXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUmVtYWluaW5nICVsbGQgdW5hbGxvY2F0ZWQgJWQtYnl0ZSBzZWN0b3JzXG4iCittc2dzdHIgIiVsbGQgc2VrdMO2ciBrdWxsYW7EsWxtYW3EscWfXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjMwMSBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjIwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGlzIGFscmVhZHkgZGVmaW5lZC4gIERlbGV0ZSBpdCBiZWZvcmUgcmUtYWRkaW5nIGl0LlxuIgorbXNnc3RyICIlZCBkaXNrIGLDtmzDvG3DvCB6YXRlbiBhdGFubcSxxZ8uIFllbmlkZW4gZWtsZW1lZGVuIMO2bmNlIHNpbG1lbGlzaW5pei5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJTZWt0w7ZyICVkIHphdGVuIGt1bGxhbsSxbWRhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBmcmVlIHNlY3RvcnMgYXZhaWxhYmxlXG4iCittc2dzdHIgIkJvxZ90YSBzZWt0w7ZyIHlva1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlMSRzLCArJTIkcyBvciArc2l6ZXtLLE0sR30iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNDcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIEFJWCBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHRCdSBmZGlzayBBSVggZGlzayBldGlrZXRsZXJpIGlsZSDDp2FsxLHFn2FtYXouXG4iCisiXHRET1MgYsO2bMO8bWxlcmkgZWtsZW1layBpc3RpeW9yc2FuxLF6IMO2bmNlIHllbmlcbiIKKyJcdGJpciBET1MgZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1IG9sdcWfdHVydW4uIChvIGlsZSlcbiIKKyJcdFVZQVJJOiBCdSBpxZ9sZW0gaWxlIGRpc2t0ZWtpIHTDvG0gYmlsZ2lsZSBrYXliYWxhY2FrdMSxci5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0QnUgZmRpc2sgQUlYIGRpc2sgZXRpa2V0bGVyaSBpbGUgw6dhbMSxxZ9hbWF6LlxuIgorIlx0RE9TIGLDtmzDvG1sZXJpIGVrbGVtZWsgaXN0aXlvcnNhbsSxeiDDtm5jZSB5ZW5pXG4iCisiXHRiaXIgRE9TIGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSBvbHXFn3R1cnVuLiAobyBpbGUpXG4iCisiXHRVWUFSSTogQnUgacWfbGVtIGlsZSBkaXNrdGVraSB0w7xtIGJpbGdpbGUga2F5YmFsYWNha3TEsXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBkZWxldGUgc29tZSBwYXJ0aXRpb24gYW5kIGFkZCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gZmlyc3RcbiIKK21zZ3N0ciAiIgorIsOWbmNlIGJhesSxIGRpc2sgYsO2bMO8bWxlcmluaSBzaWxpcCBvbmRhbiBzb25yYSBlayBkaXNrIGLDtmzDvG3DvG7DvCBla2xlbWVsaXNpbml6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgbG9naWNhbCBwYXJ0aXRpb25zIGFyZSBpbiB1c2VcbiIKK21zZ3N0ciAiVMO8bSBtYW50xLFrc2FsIGLDtmzDvG1sZXIga3VsbGFuxLFtZGFcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIkJpciBiaXJpbmNpbCBkaXNrIGLDtmzDvG3DvCBla2xlbml5b3JcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKyIgS29tdXQgeWFwdMSxxJ/EsSBpxZ9cbiIKKyIgICAlc1xuIgorIiAgIHAgICBiaXJpbmNpbCBkaXNrIGLDtmzDvG3DvCAoMS00KVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJsICAgbG9naWNhbCAoNSBvciBvdmVyKSIKK21zZ3N0ciAibCAgIG1hbnTEsWtzYWwgKDUgdmV5YSDDvHplcmkpIgorCisjOiBmZGlzay9mZGlzay5jOjI1MTAKK21zZ2lkICJlICAgZXh0ZW5kZWQiCittc2dzdHIgImUgICBlayIKKworIzogZmRpc2svZmRpc2suYzoyNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgcGFydGl0aW9uIG51bWJlciBmb3IgdHlwZSBgJWMnXG4iCittc2dzdHIgIlTDvHIgJyVjJyBpw6dpbiBkaXNrIGLDtmzDvG3DvCBudW1hcmFzxLEgZ2XDp2Vyc2l6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisiRGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1IHphdGVuIGRlxJ9pxZ9tacWfdGkhXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIkRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdW51IHllbmlkZW4gb2t1bWFrIGnDp2luIGlvY3RsKCkgw6dhxJ9yxLFsxLF5b3IuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQgd2l0aCBlcnJvciAlZDogJXMuXG4iCisiVGhlIGtlcm5lbCBzdGlsbCB1c2VzIHRoZSBvbGQgdGFibGUuIFRoZSBuZXcgdGFibGUgd2lsbCBiZSB1c2VkIGF0XG4iCisidGhlIG5leHQgcmVib290IG9yIGFmdGVyIHlvdSBydW4gcGFydHByb2JlKDgpIG9yIGtwYXJ0eCg4KVxuIgorbXNnc3RyICIiCisiXG4iCisiVVlBUkk6IERpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSB5ZW5pZGVuIG9rdW5hbWFkxLEuIEhhdGE6ICVkOiVzLlxuIgorIsOHZWtpcmRlayBoYWxhIGVza2kgdGFibG95dSBrdWxsYW7EsXlvci5cbiIKKyJZZW5pIHRhYmxvIG1ha2luYXnEsSB5ZW5pZGVuIGJhxZ9sYXR0xLHEn8SxbsSxemRhIGdlw6dlcmxpIG9sYWNhay5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueSBET1MgNi54XG4iCisicGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgZmRpc2sgbWFudWFsIHBhZ2UgZm9yIGFkZGl0aW9uYWxcbiIKKyJpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlVZQVJJOiBIZXJoYW5naSBiaXIgRE9TIDYueCBiw7Zsw7xtw7xuw7wgb2x1xZ90dXJkdXlzYW7EsXogeWEgZGFcbiIKKyJkZcSfacWfaWtsaWsgeWFwdMSxeXNhbsSxeiwgbMO8dGZlbiBmZGlzayBtYW4gc2F5ZmFsYXLEsW5kYWtpXG4iCisiZWsgYmlsZ2lsZXJpIG9rdXl1bi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJFcnJvciBjbG9zaW5nIGZpbGVcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRvc3lhIGthcGF0xLFsxLFya2VuIGhhdGFcbiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIkRpc2tsZXIgZcWfemFtYW5sYW7EsXlvci5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgbm8gZGF0YSBhcmVhXG4iCittc2dzdHIgIiVkIGRpc2sgYsO2bMO8bcO8IHZlcmkgYWxhbsSxbmEgc2FoaXAgZGXEn2lsXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiWWVuaSB2ZXJpIGJhxZ9sYW5nxLFjxLEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY3MgorbXNnaWQgIkV4cGVydCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJVem1hbiBrb211dGxhcsSxICh5YXJkxLFtIGnDp2luIG0pOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY4NQorbXNnaWQgIk51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIlNpbGluZGlyIHNhecSxc8SxIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIkthZmEgc2F5xLFzxLEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczNworbXNnaWQgIk51bWJlciBvZiBzZWN0b3JzIgorbXNnc3RyICJTZWt0w7ZyIHNhecSxc8SxIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogc2V0dGluZyBzZWN0b3Igb2Zmc2V0IGZvciBET1MgY29tcGF0aWJsaXR5XG4iCittc2dzdHIgIlV5YXLEsTogU2VrdMO2ciBoaXphbGFtYXPEsSBET1MgdXl1bWx1IG9sYXJhayB5YXDEsWzEsXlvclxuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAiJXMgZGlza2kgZ2XDp2VybGkgYmlyIGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSBpw6dlcm1peW9yXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgzMQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlcyBhw6fEsWxhbcSxeW9yXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg1MCBmZGlzay9zZmRpc2suYzoyNjA4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiVzIGHDp8SxbGFtxLF5b3JcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IGtvbXV0IGJpbGlubWl5b3JcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICIiCisiQnUgw6dla2lyZGVrIHNla3TDtnIgdXp1bmx1xJ91bnUga2VuZGlzaSBidWx1ci4gLSAtYiBzZcOnZW5lxJ9pIHlva3NhecSxbGTEsVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHRoZSAtYiAoc2V0IHNlY3RvciBzaXplKSBvcHRpb24gc2hvdWxkIGJlIHVzZWQgd2l0aCBvbmUgc3BlY2lmaWVkICIKKyJkZXZpY2VcbiIKK21zZ3N0ciAiIgorIlV5YXLEsTogLWIgKHNla3TDtnIgdXp1bmx1xJ91IGF5YXLEsSkgc2XDp2VuZcSfaSB0ZWsgYXlnxLF0IGlsZSBrdWxsYW7EsWxtxLHFnyAiCisib2xtYWzEsXlkxLFcbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIiIKKyIlcyDDvHplcmluZGUgT1NGLzEgZGlzayBldGlrZXRpIHNhcHRhbmTEsSwgZGlzayBldGlrZXRpIGtpcGluZSBnaXJpbGl5b3IuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIktvbXV0ICh5YXJkxLFtIGnDp2luIG0pOiAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisiXG4iCisixZ51IGFua2kgw7ZuecO8a2xlbWUgZG9zeWFzxLE6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJMw7x0ZmVuIHllbmkgYcOnxLFsxLHFnyBkb3N5YXPEsW7EsW4gaXNtaW5pIGdpcmluaXo6IgorCisjOiBmZGlzay9mZGlzay5jOjMwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdCBmaWxlIHVuY2hhbmdlZFxuIgorbXNnc3RyICJBw6fEsWzEscWfIGRvc3lhc8SxIGRlxJ9pxZ90aXJpbG1lZGlcbiIKKworIzogZmRpc2svZmRpc2suYzozMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdFNvcnJ5LCBubyBleHBlcnRzIG1lbnUgZm9yIFNHSSBwYXJ0aXRpb24gdGFibGVzIGF2YWlsYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0U0dJIGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSBpw6dpbiB1em1hbiBtZW7DvHPDvCB5b2suXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrbWFjbGFiZWwuYzozMAorIywgZnV6enkKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIE1hYyBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IGZkaXNrKDEpIGNhbm5vdCBoYW5kbGUgdGhlc2UgZGlza3MuXG4iCisiXHRVc2UgZWl0aGVyIHBkaXNrIG9yIHBhcnRlZCB0byBtb2RpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyJcdE5ldmVydGhlbGVzcyBzb21lIGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0RGlzayDDvHplcmluZGUgZ2XDp2VybGkgYmlyIEFJWCBldGlrZXRpIHZhci5cbiIKKyJcdE5lIHlhesSxayBraSwgTGludXggxZ91IGFuZGEgYnUgZGlza2xlcmxlXG4iCisiXHTDp2FsxLHFn2FtxLF5b3IuIEJ1bmEgcmHEn21lbiBiaXJheiB0YXZzaXllOlxuIgorIlx0MS4gZmRpc2sgaWxlIMO8c3TDvG5lIHlhemFyc2FuxLF6IGnDp2VyacSfaW5pIGtheWJlZGVjZWtzaW5pei5cbiIKKyJcdDIuIEJ1IGRpc2tpbiBoYWxhIGJpciBncnVidW4geWHFn2Ftc2FsIMO2bmVtZSBzYWhpcCBiaXJcbiIKKyJcdCAgIMO8eWVzaSBvbG1hZMSxxJ/EsW5kYW4gZW1pbiBvbHVuLiAoQWtzaSB0YWtkaXJkZSxcbiIKKyJcdCAgIGF5bmFsYW5tYW3EscWfc2EsIGRpxJ9lciBkaXNrbGVyaSBkZSBzaWxlYmlsaXJzaW5pei5cbiIKKyJcdDMuIEJ1IGZpemlrc2VsIGLDtmzDvG3DvCBzaWxtZWRlbiDDtm5jZSBkaXNraSBBSVhcbiIKKyJcdCAgIG1ha2luYW7EsXpkYW4gbWFudMSxa3NhbCBvbGFyYWsga2FsZMSxcmTEscSfxLFuxLF6YVxuIgorIlx0ICAgZW1pbiBvbHVuLiAoQWtzaSB0YWtkaXJkZSBiaXIgQUlYcGVydCBoYWxpbmVcbiIKKyJcdCAgIGdlbGViaWxpcnNpbml6LikiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MQorbXNnaWQgIlNHSSB2b2xoZHIiCittc2dzdHIgIlNHSSB2b2xoZHIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MgorbXNnaWQgIlNHSSB0cmtyZXBsIgorbXNnc3RyICJTR0kgdHJrcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgzCittc2dpZCAiU0dJIHNlY3JlcGwiCittc2dzdHIgIlNHSSBzZWNyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODQKK21zZ2lkICJTR0kgcmF3IgorbXNnc3RyICJTR0kgaGFtIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODUKK21zZ2lkICJTR0kgYnNkIgorbXNnc3RyICJTR0kgYnNkIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODYKK21zZ2lkICJTR0kgc3lzdiIKK21zZ3N0ciAiU0dJIHN5c3YiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NworbXNnaWQgIlNHSSB2b2x1bWUiCittc2dzdHIgIlNHSSBiw7Zsw7xtw7wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OAorbXNnaWQgIlNHSSBlZnMiCittc2dzdHIgIlNHSSBlZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OQorbXNnaWQgIlNHSSBsdm9sIgorbXNnc3RyICJTR0kgbHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkwCittc2dpZCAiU0dJIHJsdm9sIgorbXNnc3RyICJTR0kgcmx2b2wiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MQorbXNnaWQgIlNHSSB4ZnMiCittc2dzdHIgIlNHSSB4ZnMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MgorbXNnaWQgIlNHSSB4ZnNsb2ciCittc2dzdHIgIlNHSSB4ZnNsb2ciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MworbXNnaWQgIlNHSSB4bHYiCittc2dzdHIgIlNHSSB4bHYiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NAorbXNnaWQgIlNHSSB4dm0iCittc2dzdHIgIlNHSSB4dm0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NSBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAKK21zZ2lkICJMaW51eCBzd2FwIgorbXNnc3RyICJMaW51eCB0YWthcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk2IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MQorbXNnaWQgIkxpbnV4IG5hdGl2ZSIKK21zZ3N0ciAiTGludXggZG/En2FsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYydlIGfDtnJlLCBFdGlrZXQgNTEyIGJheXR0YW4gZmF6bGFzxLFuxLEgacOnZXJlbWV6XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJZYW5sxLHFnyBzYcSfbGFtYSB0b3BsYW3EsSB2ZXJlbiBzZ2kgZGlzayBldGlrZXRpIHNhcHRhbmTEsS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgZXRpa2V0aSk6ICVkIGthZmEsICVkIHNla3TDtnJcbiIKKyIlZCBzaWxpbmRpciwgJWQgZml6aWtzZWwgc2lsaW5kaXJcbiIKKyIlZCBlayBzZWt0w7ZyL3NsZCwgc2VycGnFn3Rpcm1lICVkOjFcbiIKKyIlc1xuIgorIkJpcmltID0gJXMgICglZCAqICVkIGJheXQpXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgZXRpa2V0aSk6ICVkIGthZmEsICVkIHNla3TDtnIsICVkIHNpbGluZGlyXG4iCisiQmlyaW0gPSAlcyAgKCVkICogJWQgYmF5dClcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIGRpc2sgYsO2bMO8bWxlcmkgLS0tLS1cbiIKKyJCbCMgJSpzICBCaWxnaSAgIEJhxZ9sYW5nxLHDpyAgIEJpdGnFnyAgU2VrdG9yICBLaW1sIFNpc3RlbVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSDDlm55w7xrbGVtZSBCaWxnaWxlcmkgLS0tLS1cbiIKKyLDlm55w7xrbGVtZSBkb3N5YXPEsTogJXNcbiIKKyItLS0tLSBEaXppbiBHaXJkaWxlcmkgLS0tLS1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiUyZDogJS0xMHMgc2VrdMO2ciU1dSBib3klOHVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSW52YWxpZCBCb290ZmlsZSFcbiIKKyJcdFRoZSBib290ZmlsZSBtdXN0IGJlIGFuIGFic29sdXRlIG5vbi16ZXJvIHBhdGhuYW1lLFxuIgorIlx0ZS5nLiBcIi91bml4XCIgb3IgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLDlm55w7xrbGVtZSBkb3N5YXPEsSBnZcOnZXJzaXohXG4iCisiXHTDlm55w7xrbGVtZSBkb3N5YXPEsW7EsW4gb2t1bmFiaWxpciBiaXIgaXNtaSBvbG1hbMSxZMSxcixcbiIKKyJcdMO2cm4uIFwiL3VuaXhcIiB5YSBkYSBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0w5ZuecO8a2xlbWUgZG9zeWFzxLFuxLFuIGlzbWkgw6dvayB1enVuOiAgZW4gw6dvayAxNiBiYXl0LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIG11c3QgaGF2ZSBhIGZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0w5ZuecO8a2xlbWUgZG9zeWFzxLFuxLFuIGlzbWkgZG9zeWEgeW9sdW51IGRhIGnDp2VybWVsaS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMxMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCZSBhd2FyZSwgdGhhdCB0aGUgYm9vdGZpbGUgaXMgbm90IGNoZWNrZWQgZm9yIGV4aXN0ZW5jZS5cbiIKKyJcdFNHSSdzIGRlZmF1bHQgaXMgXCIvdW5peFwiIGFuZCBmb3IgYmFja3VwIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHTDlm55w7xrbGVtZSBkb3N5YXPEsW7EsW4gdmFybMSxxJ/EsW7EsSBkZW5ldGxlbWVkacSfaW5pIGJpbG1lbGlzaW5pei5cbiIKKyJcdFNHSSBpw6dpbiBcIi91bml4XCIgw7ZudGFuxLFtbMSxIMO2bnnDvGtsZW1lIGRvc3lhc8SxZMSxciB2ZSB5ZWRlayBkb3N5YXPEsW7EsW5cbiIKKyLDtm50YW7EsW1sxLEgaXNtaSBcIi91bml4LnNhdmVcImRpci5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0w5ZuecO8a2xlbWUgZG9zeWFzxLEgXCIlc1wiIG9sYXJhayBkZcSfacWfdGlyaWxkaS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJNb3JlIHRoYW4gb25lIGVudGlyZSBkaXNrIGVudHJ5IHByZXNlbnQuXG4iCittc2dzdHIgIkJpcmRlbiBmYXpsYSB0w7xtIGRpc2sgZ2lyZGlzaSB2YXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4MworIywgYy1mb3JtYXQKK21zZ2lkICJObyBwYXJ0aXRpb25zIGRlZmluZWRcbiIKK21zZ3N0ciAiQXRhbm3EscWfIGRpc2sgYsO2bMO8bcO8IHlva1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiMTEuIGRpc2sgYsO2bMO8bcO8IHTDvG0gZGlza2kga2Fwc2FkxLHEn8SxbmRhIElSSVgnZSB1eWd1biBvbHVyLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIHNob3VsZCBzdGFydCBhdCBibG9jayAwLFxuIgorIm5vdCBhdCBkaXNrYmxvY2sgJWQuXG4iCittc2dzdHIgIiIKKyJEaXNraW4gdMO8bcO8bsO8IGthcGxheWFuIGJpciBkaXNrIGLDtmzDvG3DvCBibG9rIDAnZGFuIGJhxZ9sYW1hbMSxeWTEsS5cbiIKKyIlZC4gYmxva3RhbiBkZcSfaWxcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBpcyBvbmx5ICVkIGRpc2tibG9jayBsYXJnZSxcbiIKKyJidXQgdGhlIGRpc2sgaXMgJWQgZGlza2Jsb2NrcyBsb25nLlxuIgorbXNnc3RyICIiCisiRGlza2luIHTDvG3DvG7DvCBrYXBsYWTEscSfxLEgYmVsaXJ0aWxlbiBkaXNrIGLDtmzDvG3DvCAlZCBibG9rLFxuIgorImRpc2tpbiB0YW1hbcSxIGlzZSAlZCBibG9rLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiVGVrIGRpc2sgYsO2bMO8bcO8ICgjMTEpIHTDvG0gZGlza2kga2FwbGFtYWzEsXlkxLEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICIlZCBkaXNrIGLDtmzDvG3DvCBzaWxpbmRpciBzxLFuxLFyxLFuZGEgYmHFn2xhbcSxeW9yLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIiVkIGRpc2sgYsO2bMO8bcO8IHNpbGluZGlyIHPEsW7EsXLEsW5kYSBiaXRtaXlvci5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIiVkIGRpc2sgYsO2bMO8bcO8IGlsZSAlZCBiaXJiaXJpbmluICVkIHNla3TDtnIgacOnaW5lIGdpcml5b3IuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0ODQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAiJTh1IHNla3TDtnJsw7xrIGJvxZ9sdWsga3VsbGFuxLFsbWFkxLEgLSAgJTh1LSV1IHNla3TDtnJsZXJpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIsOWbnnDvGtsZW1lIGRpc2sgYsO2bMO8bcO8IHlvay5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiVGFrYXMgYsO2bMO8bcO8IHlvay5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGhhcyBubyBzd2FwIHR5cGUuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJUYWthcyBiw7Zsw7xtw7xuw7xuIHTDvHLDvCB0YWthcyBkZcSfaWwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiXHRLdWxsYW7EscWfc8SxeiBiaXIgw7ZuecO8a2xlbWUgZG9zeWFzxLEgc2XDp3Rpbml6LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIkJvxZ8gb2xtYXlhbiBiaXIgZGlzayBiw7Zsw7xtw7xuw7xuIGV0aWtldGluaSBkZcSfacWfdGlyZWJpbGlyc2luaXohXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzgKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIG9mIHR5cGUgXCJTR0kgdm9saGRyXCIsIHRoZSBJUklYIHN5c3RlbSB3aWxsIHJlbHkgb24gaXQgdG9cbiIKKyJyZXRyaWV2ZSBmcm9tIGl0cyBkaXJlY3Rvcnkgc3RhbmRhbG9uZSB0b29scyBsaWtlIHNhc2ggYW5kIGZ4LlxuIgorIk9ubHkgdGhlIFwiU0dJIHZvbHVtZVwiIGVudGlyZSBkaXNrIHNlY3Rpb24gbWF5IHZpb2xhdGUgdGhpcy5cbiIKKyJUeXBlIFlFUyBpZiB5b3UgYXJlIHN1cmUgYWJvdXQgdGFnZ2luZyB0aGlzIHBhcnRpdGlvbiBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIkfDtnJlbGkga29udW11IDAgb2xhbiBkaXNrIGLDtmzDvG3DvG7DvG4gXCJTR0kgdm9saGRyXCIgdMO8csO8bmRlIG9sbWFzxLFcbiIKKyJ0YXZzaXllIGVkaWxpci4gSVJJWCBzaXN0ZW1pIG9udW4gc2FzaCB2ZSBmeCBnaWJpIGRpemluIGFyYcOnbGFyxLFuZGFuXG4iCisib251IGVsZGUgZXRtZXllIMOnYWzEscWfYWNha3TEsXIuIFNhZGVjZSB0w7xtIGRpc2sgYsO2bMO8bcO8IG9sYXJha1xuIgorIlwiU0dJIHZvbHVtZVwiIG9udW5sYSDDp2VsacWfZWJpbGlyLiBCdSBkaXNrIGLDtmzDvG3DvG7DvCBmYXJrbMSxXG4iCisib2x1xZ90dXJtYWsgaXN0aXlvcnNhbsSxeiBFVkVUIHlhesSxbi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIkVWRVRcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU2OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBZb3Uga25vdywgWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrP1xuIgorbXNnc3RyICIiCisiRGlzayDDvHplcmluZGVraSBkacSfZXIgYsO2bMO8bWxlcmluIMO8emVyaW5lIHRhxZ9hbiBiaXIgZGlzayBiw7Zsw7xtw7xcbiIKKyJhecSxcmTEscSfxLFuxLF6xLFuIGZhcmvEsW5kYSBtxLFzxLFuxLF6P1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAiVMO8bSBkaXNrIGdpcmRpc2kgb3RvbWF0aWsgb2xhcmFrIMO8cmV0aWxtZXllIMOnYWzEscWfxLFsxLF5b3IuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIlTDvG0gZGlzayBhbGFuxLEgemF0ZW4gZGlzayBiw7Zsw7xtbGVyaW5jZSBrdWxsYW7EsWxtxLHFny5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiIgorIkRpc2sgw7x6ZXJpbmRla2kgZGnEn2VyIGLDtmzDvG1sZXJpbiDDvHplcmluZSB0YcWfYW4gYmlyIGRpc2sgYsO2bMO8bcO8XG4iCisiYXnEsXJkxLHEn8SxbsSxei4gw5ZuY2UgYnVudSBkw7x6ZWx0aW4hXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIk9uYmlyaW5jaSBkaXNrIGLDtmzDvG3DvG7DvG4gdMO8bSBkaXNraSBrYXBzYW1hc8SxIHZlIGBTR0kgdm9sdW1lJ1xuIgorInTDvHLDvG5kZSBvbG1hc8SxIHRhdnNpeWUgZWRpbGlyLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIGdldCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKyJEaXNrIMO8emVyaW5kZWtpIGRpxJ9lciBiw7Zsw7xtbGVyaW4gw7x6ZXJpbmUgdGHFn2FuIGJpciBkaXNrIGLDtmzDvG3DvFxuIgorImF5xLFyYWNha3PEsW7EsXouIMOWbmNlIGJ1bnUgZMO8emVsdGluIVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiBMYXN0ICVzIgorbXNnc3RyICIgU29uICVzIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBTR0kgZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdpbGwgYmUgdW5yZWNvdmVyYWJseSBsb3N0LlxuIgorIlxuIgorbXNnc3RyICIiCisiQmlyIHllbmkgU0dJIGRpc2sgZXRpa2V0aSBrdXJndWxhbsSxeW9yLiBTaXogZGlza2UgeWF6YW5hIGthZGFyXG4iCisiZGXEn2nFn2lrbGlrbGVyIGJlbGxla3RlIHR1dHVsYWNhay4gxZ7DvHBoZXNpeiwgeWF6xLFsZMSxa3RhbiBzb25yYSxcbiIKKyJkaXNrdGUgYnVsdW5hbiB0w7xtIGJpbGdpeWkgYmlyIGRhaGEgZ2VyaSBhbGFtYW1hayDDvHplcmVcbiIKKyJrYXliZWRlY2Vrc2luaXouXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKyJVeWFyxLE6ICBCTEtHRVRTSVpFIGlvY3RsICVzIMO8emVyaW5kZSBiYcWfYXLEsXPEsXouICBTaWxpbmRpciBnZW9tZXRyaXNpIGnDp2luICUiCisiZFxuIgorImRlxJ9lcmkga3VsbGFuxLFsxLF5b3IuIEJ1IGRlxJ9lciAzMy44IEdCJ2RhbiBiw7x5w7xrIGF5Z8SxdGxhcmRhIGvEsXJwxLFsYWJpbGlyLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byBrZWVwIHBhcmFtZXRlcnMgb2YgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICIlZCBkaXNrIGLDtmzDvG3DvG7DvG4gcGFyYW1ldHJlbGVyaSBva3VubWF5YSDDp2FsxLHFn8SxbMSxeW9yLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklEPSUwMnhcdFNUQVJUPSVkXHRMRU5HVEg9JWRcbiIKK21zZ3N0ciAiS2ltbGlrPSUwMnhcdEJhxZ9sYW5nxLHDpz0lZFx0Qm95PSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiU3VuT1Mgcm9vdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1MgdGFrYXMiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MgorbXNnaWQgIlN1bk9TIHVzciIKK21zZ3N0ciAiU3VuT1MgdXNyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDMKK21zZ2lkICJXaG9sZSBkaXNrIgorbXNnc3RyICJUw7xtIGRpc2siCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICJTdW5PUyBzdGFuZCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICJTdW5PUyB2YXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworIywgZnV6enkKK21zZ2lkICJTdW5PUyBhbHQgc2VjdG9ycyIKK21zZ3N0ciAiJWxsZCBzZWt0w7ZyIGt1bGxhbsSxbG1hbcSxxZ9cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4CisjLCBmdXp6eQorbXNnaWQgIlN1bk9TIGNhY2hlZnMiCittc2dzdHIgIlN1bk9TIGhvbWUiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OQorIywgZnV6enkKK21zZ2lkICJTdW5PUyByZXNlcnZlZCIKK21zZ3N0ciAiU3VuT1MgdXNyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDMKK21zZ2lkICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCittc2dzdHIgIkxpbnV4IHJhaWQgb3Rvc2FwdGFtYSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjEzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorIlByb2JhYmx5IHlvdSdsbCBoYXZlIHRvIHNldCBhbGwgdGhlIHZhbHVlcyxcbiIKKyJlLmcuIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMgYW5kIHBhcnRpdGlvbnNcbiIKKyJvciBmb3JjZSBhIGZyZXNoIGxhYmVsIChzIGNvbW1hbmQgaW4gbWFpbiBtZW51KVxuIgorbXNnc3RyICIiCisiWWFubMSxxZ8gc2HEn2xhbWEgdG9wbGFtxLEgdmVyZW4gYmlyIHN1biBkaXNrIGV0aWtldGkgc2FwdGFuZMSxLlxuIgorIlTDvG0gZGXEn2VybGVyaSDDtnJuLiBrYWZhLCBzZWt0w7ZyLCBzaWxpbmRpciB2ZSBkaXNrIGLDtmzDvG1sZXJpbmlcbiIKKyJiZWxpcmxlbWVuaXogeWEgZGEgYmHFn3RhbiBiaXIgdGVtaXogZXRpa2V0IChhbmEgbWVuw7xkZW4gcyBrb211dHUgaWxlKVxuIgorIm9sdcWfdHVybWFuxLF6IGdlcmVrZWJpbGVjZWsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICJZYW5sxLHFnyBzYcSfbGFtYSB0b3BsYW3EsSB2ZXJlbiBzZ2kgZGlzayBldGlrZXRpIHNhcHRhbmTEsS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHNhbml0eSBbMHglMDh4XS5cbiIKK21zZ3N0ciAiWWFubMSxxZ8gc2HEn2xhbWEgdG9wbGFtxLEgdmVyZW4gc2dpIGRpc2sgZXRpa2V0aSBzYXB0YW5kxLEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICJZYW5sxLHFnyBzYcSfbGFtYSB0b3BsYW3EsSB2ZXJlbiBzZ2kgZGlzayBldGlrZXRpIHNhcHRhbmTEsS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJVeWFyxLE6IGdlw6dlcnNpeiBiYXlyYWsgMHglMDR4ICVkLiBkaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3VuZGEgdyh5YXopIGlsZSAiCisiZMO8emVsdGlsbWnFnyBvbGFjYWtcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIkJpciB5ZW5pIHN1biBkaXNrIGV0aWtldGkga3VyZ3VsYW7EsXlvci4gU2l6IGRpc2tlIHlhemFuYSBrYWRhclxuIgorImRlxJ9pxZ9pa2xpa2xlciBiZWxsZWt0ZSB0dXR1bGFjYWsuIMWew7xwaGVzaXosIHlhesSxbGTEsWt0YW4gc29ucmEsXG4iCisiZGlza3RlIGJ1bHVuYW4gdMO8bSBiaWxnaXlpIGJpciBkYWhhIGdlcmkgYWxhbWFtYWsgw7x6ZXJlXG4iCisia2F5YmVkZWNla3Npbml6LlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAiU2VrdMO2ci9peiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiJWQgZGlzayBiw7Zsw7xtw7wgc2lsaW5kaXIgc8SxbsSxcsSxbmRhIGJpdG1peW9yXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiJWQgZGlzayBiw7Zsw7xtw7wgZGnEn2VybGVyaXlsZSAlZC0lZCBzZWt0w7ZybGVyaW5kZSDDvHN0w7xzdGUgYmluaXlvclxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzIDAtJWRcbiIKK21zZ3N0ciAiS3VsbGFuxLFsbWFtxLHFnyBib8WfbHVrIC0gMC0lZCBzZWt0w7ZybGVyaW5kZVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiS3VsbGFuxLFsbWFtxLHFnyBib8WfbHVrIC0gJWQtJWQgc2VrdMO2cmxlcmluZGVcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3RoZXIgcGFydGl0aW9ucyBhbHJlYWR5IGNvdmVyIHRoZSB3aG9sZSBkaXNrLlxuIgorIkRlbGV0ZSBzb21lL3NocmluayB0aGVtIGJlZm9yZSByZXRyeS5cbiIKK21zZ3N0ciAiIgorIkRpxJ9lciBkaXNrIGLDtmzDvG1sZXJpIHphdGVuIGRpc2tpIGthcGxhbcSxxZ8uXG4iCisiVGVrcmFyIGRlbmVtZWRlbiDDtm5jZSBiYXrEsWxhcsSxbsSxIHNpbG1lbml6IHlhIGRhXG4iCisia8O8w6fDvGx0bWVuaXogZ2VyZWsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgdGhpcmQgcGFydGl0aW9uIGNvdmVycyB0aGUgd2hvbGUgZGlza1xuIgorImFuZCBpcyBvZiB0eXBlIGBXaG9sZSBkaXNrJ1xuIgorbXNnc3RyICIiCisiT25iaXJpbmNpIGRpc2sgYsO2bMO8bcO8bsO8biB0w7xtIGRpc2tpIGthcHNhbWFzxLEgdmUgYFNHSSB2b2x1bWUnXG4iCisidMO8csO8bmRlIG9sbWFzxLEgdGF2c2l5ZSBlZGlsaXIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkIGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIlNla3TDtnIgJWQgemF0ZW4ga3VsbGFuxLFtZGFcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmVuJ3QgY292ZXJlZCB0aGUgd2hvbGUgZGlzayB3aXRoIHRoZSAzcmQgcGFydGl0aW9uLCBidXQgeW91ciB2YWx1ZVxuIgorIiVkICVzIGNvdmVycyBzb21lIG90aGVyIHBhcnRpdGlvbi4gWW91ciBlbnRyeSBoYXMgYmVlbiBjaGFuZ2VkXG4iCisidG8gJWQgJXNcbiIKK21zZ3N0ciAiIgorIsOcw6fDvG5jw7wgZGlzayBiw7Zsw7xtw7xuw7x6IHTDvG0gZGlza2kga2FwbGFkxLHEn8SxIGdpYmkgJWQgJXMgZGXEn2VyaXlsZVxuIgorImRpxJ9lciBkaXNrIGLDtmzDvG1sZXJpbmUgZGUgZ2XDp2l5b3IuIEdpcmRpxJ9pbml6IGRlxJ9lciAlZCAlcyBvbGFyYWtcbiIKKyJkZcSfacWfdGlyaWxkaS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWYgeW91IHdhbnQgdG8gbWFpbnRhaW4gU3VuT1MvU29sYXJpcyBjb21wYXRpYmlsaXR5LCBjb25zaWRlciBsZWF2aW5nIHRoaXNcbiIKKyJwYXJ0aXRpb24gYXMgV2hvbGUgZGlzayAoNSksIHN0YXJ0aW5nIGF0IDAsIHdpdGggJXUgc2VjdG9yc1xuIgorbXNnc3RyICIiCisiU3VuT1MvU29sYXJpcyB1eXVtbHVsdcSfdSBzYcSfbGFtYWsgaXN0ZXJzZW5peiwgYnUgZGlzayBiw7Zsw7xtw7xuw7wgMCBkYW5cbiIKKyJiYcWfbGF5YW4gJXUgc2VrdMO2cmzDvGsgdMO8bSBkaXNrICg1KSBvbGFyYWsgYsSxcmFrbWF5xLEgZ8O2esO2bsO8bmUgYWxhYmlsaXJzaW5pelxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBVRlMsIEVYVDJGUyBmaWxlc3lzdGVtIG9yIFN1bk9TIHN3YXAuIFB1dHRpbmcgTGludXggc3dhcFxuIgorInRoZXJlIG1heSBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlIGFuZCBib290YmxvY2suXG4iCisiVHlwZSBZRVMgaWYgeW91J3JlIHZlcnkgc3VyZSB5b3Ugd291bGQgbGlrZSB0aGF0IHBhcnRpdGlvblxuIgorInRhZ2dlZCB3aXRoIDgyIChMaW51eCBzd2FwKTogIgorbXNnc3RyICIiCisiR8O2cmVsaSBkZcSfZXJpIDAgZGEgb2xhbiBVRlMsIEVYVDJGUyBkb3N5YSBzaXN0ZW1pIHlhIGRhIFN1bk9TIHRha2FzXG4iCisiZGlzayBiw7Zsw7xtw7wgdGF2c2l5ZSBlZGlsaXIuIExpbnV4IHRha2FzIGFsYW7EsW7EsSBrb3ltYWsgZGlzayBiw7Zsw7xtbGVtZVxuIgorInRhYmxvbnV6dSB2ZSDDtm55w7xrbGVtZSBibG9rdW51enUgYm96YWJpbGVjZWsuIEJ1IGRpc2sgYsO2bMO8bcO8bsO8esO8blxuIgorIjgyIGV0aWtldGxpIChMaW51eCB0YWthcykgb2xtYXPEsW7EsSBpc3RlZGnEn2luaXpkZW4gZW1pbnNlbml6IGzDvHRmZW5cbiIKKyJFVkVUIHlhesSxbsSxejogIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBycG1cbiIKKyIlZCBjeWxpbmRlcnMsICVkIGFsdGVybmF0ZSBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiTGFiZWwgSUQ6ICVzXG4iCisiVm9sdW1lIElEOiAlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGV0aWtldGkpOiAlZCBrYWZhLCAlZCBzZWt0w7ZyLCAlZCBycG1cbiIKKyIlZCBzaWxpbmRpciwgJWQgYWxtYcWfxLFrIHNpbGluZGlyLCAlZCBmaXppa3NlbCBzaWxpbmRpclxuIgorIiVkIGZhemxhZGFuIHNla3Qvc2xkLCBzZXJwacWfdGlybWUgJWQ6MVxuIgorIiVzXG4iCisiQmlyaW0gPSAlcyAgKCVkICogNTEyIGJheXQpXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGV0aWtldGkpOiAlZCBrYWZhLCAlZCBzZWt0w7ZyLCAlZCBzaWxpbmRpclxuIgorIkJpcmltID0gJXMgICglZCAqIDUxMiBiYXl0KVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyBGbGFtYSBCYcWfbGFuZ8Sxw6cgICAgQml0acWfICAgQmxvayMgICBLaW1sIFNpc3RlbVxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjI1Cittc2dpZCAiTnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIkFsbWHFn8SxayBzaWxpbmRpcmxlcmluIHNhecSxc8SxIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjM3Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIlNpbGluZGlyIGJhxZ/EsW5hIGZhemxhZGFuIHNla3TDtnJsZXIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NDQKK21zZ2lkICJJbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiU2VycGnFn3Rpcm1lIGV0a2VuaSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1MQorbXNnaWQgIlJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICJEZXZpciBzYXnEsXPEsSAocnBtKSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1OAorbXNnaWQgIk51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIkZpemlrc2VsIHNpbGluZGlybGVyaW4gc2F5xLFzxLEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICJCb8WfIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcKK21zZ2lkICJGQVQxMiIKK21zZ3N0ciAiRkFUMTIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OAorbXNnaWQgIlhFTklYIHJvb3QiCittc2dzdHIgIlhFTklYIHJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OQorbXNnaWQgIlhFTklYIHVzciIKK21zZ3N0ciAiWEVOSVggdXNyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwCittc2dpZCAiRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMQorbXNnaWQgIkV4dGVuZGVkIgorbXNnc3RyICJFayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMgorbXNnaWQgIkZBVDE2IgorbXNnc3RyICJGQVQxNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMworbXNnaWQgIkhQRlMvTlRGUyIKK21zZ3N0ciAiSFBGUy9OVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE0Cittc2dpZCAiQUlYIgorbXNnc3RyICJBSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTUKK21zZ2lkICJBSVggYm9vdGFibGUiCittc2dzdHIgIkFJWCDDtm55w7xrbGVuZWJpbGlyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE2Cittc2dpZCAiT1MvMiBCb290IE1hbmFnZXIiCittc2dzdHIgIk9TLzIgw5ZuecO8a2xlbWUgWcO2bmV0aWNpc2kiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTcKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIlc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOAorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjAKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIlc5NSBFeHQnZCAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMQorbXNnaWQgIk9QVVMiCittc2dzdHIgIk9QVVMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjIKK21zZ2lkICJIaWRkZW4gRkFUMTIiCittc2dzdHIgIkdpemxpIEZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIzCittc2dpZCAiQ29tcGFxIGRpYWdub3N0aWNzIgorbXNnc3RyICJDb21wYXEgdGXFn2hpcyBzaXN0ZW1pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI0Cittc2dpZCAiSGlkZGVuIEZBVDE2IDwzMk0iCittc2dzdHIgIkdpemxpIEZBVDE2IDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjUKK21zZ2lkICJIaWRkZW4gRkFUMTYiCittc2dzdHIgIkdpemxpIEZBVDE2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiR2l6bGkgSFBGUy9OVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI3Cittc2dpZCAiQVNUIFNtYXJ0U2xlZXAiCittc2dzdHIgIkFTVCBTbWFydFNsZWVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI4Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiIKK21zZ3N0ciAiR2l6bGkgVzk1IEZBVDMyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI5Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiR2l6bGkgVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiR2l6bGkgVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMxCittc2dpZCAiTkVDIERPUyIKK21zZ3N0ciAiTkVDIERPUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMgorbXNnaWQgIlBsYW4gOSIKK21zZ3N0ciAiUGxhbiA5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMzCittc2dpZCAiUGFydGl0aW9uTWFnaWMgcmVjb3ZlcnkiCittc2dzdHIgIkRpc2sgQsO2bMO8bcO8IGtheWTEsSBrdXJ0YXJtYSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNAorbXNnaWQgIlZlbml4IDgwMjg2IgorbXNnc3RyICJWZW5peCA4MDI4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNQorbXNnaWQgIlBQQyBQUmVQIEJvb3QiCittc2dzdHIgIlBQQyBQUmVQIMOWbnnDvGtsZW1lIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM2Cittc2dpZCAiU0ZTIgorbXNnc3RyICJTRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzcKK21zZ2lkICJRTlg0LngiCittc2dzdHIgIlFOWDQueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOAorbXNnaWQgIlFOWDQueCAybmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDIuIGLDtmzDvG0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIlFOWDQueCAzLiBiw7Zsw7xtIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQwCittc2dpZCAiT25UcmFjayBETSIKK21zZ3N0ciAiT25UcmFjayBETSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MQorbXNnaWQgIk9uVHJhY2sgRE02IEF1eDEiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDIKK21zZ2lkICJDUC9NIgorbXNnc3RyICJDUC9NIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQzCittc2dpZCAiT25UcmFjayBETTYgQXV4MyIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NAorbXNnaWQgIk9uVHJhY2tETTYiCittc2dzdHIgIk9uVHJhY2tETTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDUKK21zZ2lkICJFWi1Ecml2ZSIKK21zZ3N0ciAiRVotRHJpdmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDYKK21zZ2lkICJHb2xkZW4gQm93IgorbXNnc3RyICJHb2xkZW4gQm93IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ3Cittc2dpZCAiUHJpYW0gRWRpc2siCittc2dzdHIgIlByaWFtIEVkaXNrIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTIKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OQorbXNnaWQgIlNwZWVkU3RvciIKK21zZ3N0ciAiU3BlZWRTdG9yIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ5Cittc2dpZCAiR05VIEhVUkQgb3IgU3lzViIKK21zZ3N0ciAiR05VIEhVUkQgdmV5YSBTeXNWIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUwCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMjg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTEKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAzODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDM4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MgorbXNnaWQgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKK21zZ3N0ciAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUzCittc2dpZCAiUEMvSVgiCittc2dzdHIgIlBDL0lYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU0Cittc2dpZCAiT2xkIE1pbml4IgorbXNnc3RyICJFc2tpIE1pbml4IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbml4IC8gZXNraSBMaW51eCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eCB0YWthcyAvIFNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTgKK21zZ2lkICJPUy8yIGhpZGRlbiBDOiBkcml2ZSIKK21zZ3N0ciAiT1MvMiBnaXpsaSBDOiBheWfEsXTEsSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCBlayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYxCittc2dpZCAiTlRGUyB2b2x1bWUgc2V0IgorbXNnc3RyICJOVEZTIGLDtmzDvG0ga8O8bWVzaSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorbXNnaWQgIkxpbnV4IHBsYWludGV4dCIKK21zZ3N0ciAiTGludXggc2FsdG1ldGluIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY0Cittc2dpZCAiQW1vZWJhIgorbXNnc3RyICJBbW9lYmEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjUKK21zZ2lkICJBbW9lYmEgQkJUIgorbXNnc3RyICJBbW9lYmEgQkJUIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY2Cittc2dpZCAiQlNEL09TIgorbXNnc3RyICJCU0QvT1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjcKK21zZ2lkICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCittc2dzdHIgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OAorbXNnaWQgIkZyZWVCU0QiCittc2dzdHIgIkZyZWVCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjkKK21zZ2lkICJPcGVuQlNEIgorbXNnc3RyICJPcGVuQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIk5lWFRTVEVQIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcxCittc2dpZCAiRGFyd2luIFVGUyIKK21zZ3N0ciAiRGFyd2luIFVGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MgorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiTmV0QlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjczCittc2dpZCAiRGFyd2luIGJvb3QiCittc2dzdHIgIkRhcndpbiBib290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc0CisjLCBmdXp6eQorbXNnaWQgIkhGUyAvIEhGUysiCittc2dzdHIgIk9TLzIgSFBGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NQorbXNnaWQgIkJTREkgZnMiCittc2dzdHIgIkJTREkgZHMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIkJTREkgdGFrYXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIsOWbnnDvGtsZW1lIHNpaGlyYmF6xLEgZ2l6bGkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIlNvbGFyaXMgYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICJEUy1vbG1heWFuIHZlcmkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODUKK21zZ2lkICJDUC9NIC8gQ1RPUyAvIC4uLiIKK21zZ3N0ciAiQ1AvTSAvIENUT1MgLyAuLi4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODcKK21zZ2lkICJEZWxsIFV0aWxpdHkiCittc2dzdHIgIkRlbGwgVXlndWxhbWFzxLEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODgKK21zZ2lkICJCb290SXQiCittc2dzdHIgIkJvb3RJdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OQorbXNnaWQgIkRPUyBhY2Nlc3MiCittc2dzdHIgIkRPUyBlcmnFn2ltaSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MQorbXNnaWQgIkRPUyBSL08iCittc2dzdHIgIkRPUyBSL08iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTQKK21zZ2lkICJCZU9TIGZzIgorbXNnc3RyICJCZU9TIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk1CisjLCBmdXp6eQorbXNnaWQgIkdQVCIKK21zZ3N0ciAiRUZJIEdQVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NgorbXNnaWQgIkVGSSAoRkFULTEyLzE2LzMyKSIKK21zZ3N0ciAiRUZJIChGQVQtMTIvMTYvMzIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk3Cittc2dpZCAiTGludXgvUEEtUklTQyBib290IgorbXNnc3RyICJMaW51eC9QQS1SSVNDIMO2bnnDvGtsZW1lc2kiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAwCittc2dpZCAiRE9TIHNlY29uZGFyeSIKK21zZ3N0ciAiRE9TIGlraW5jaWwiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAxCittc2dpZCAiVk13YXJlIFZNRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDIKK21zZ2lkICJWTXdhcmUgVk1LQ09SRSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNgorbXNnaWQgIkxBTnN0ZXAiCittc2dzdHIgIkxBTnN0ZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA3Cittc2dpZCAiQkJUIgorbXNnc3RyICJCQlQiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yIG9uICVzIC0gY2Fubm90IHNlZWsgdG8gJWx1XG4iCittc2dzdHIgIiVzIMO8emVyaW5kZSBlcmnFn2ltIGhhdGFzxLEgLSAlbHUgeWEgZXJpxZ9pbGVtaXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgImVyacWfaW0gaGF0YXPEsTogMHglMDh4JTA4eCBpc3RlbmRpLCAweCUwOHglMDh4IGFsxLFuZMSxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiYmVsbGVrIHlldGVyc2l6IC0gYsSxcmFrxLFsxLF5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIwIGZkaXNrL3NmZGlzay5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGVycm9yIG9uICVzIC0gY2Fubm90IHJlYWQgc2VjdG9yICVsdVxuIgorbXNnc3RyICIlcyDDvHplcmluZGUgb2t1bWEgaGF0YXPEsSAtICVsdSBzZWt0w7Zyw7wgb2t1bmFtxLF5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkVSUk9SOiBzZWN0b3IgJWx1IGRvZXMgbm90IGhhdmUgYW4gbXNkb3Mgc2lnbmF0dXJlXG4iCittc2dzdHIgIkhBVEE6ICVsdSBzZWt0w7Zyw7wgbXNkb3MgaW16YXPEsSB0YcWfxLFtxLF5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzIC0gY2Fubm90IHdyaXRlIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiJXMgw7x6ZXJpbmRlIHlhem1hIGhhdGFzxLEgLSAlbHUgc2VrdMO2csO8bmUgeWF6xLFsYW3EsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHNlY3RvciBzYXZlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJkaXNrIGLDtmzDvG3DvCBzZWt0w7ZyIGthecSxdCBkb3N5YXPEsSAoJXMpIGHDp8SxbGFtxLF5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzIMO8emVyaW5kZSB5YXptYSBoYXRhc8SxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAiZGlzayBiw7Zsw7xtw7wgdGVrcmFyIG9sdcWfdHVybWEgZG9zeWFzxLEgKCVzKSBkdXJ1bSBiaWxnaWxlcmkgYWzEsW5hbcSxeW9yXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0MAorbXNnaWQgInBhcnRpdGlvbiByZXN0b3JlIGZpbGUgaGFzIHdyb25nIHNpemUgLSBub3QgcmVzdG9yaW5nXG4iCittc2dzdHIgIiIKKyJkaXNrIGLDtmzDvG3DvCB0ZWtyYXIgb2x1xZ90dXJtYSBkb3N5YXPEsW7EsW4gdXp1bmx1xJ91IGhhdGFsxLEgLSB0ZWtyYXIgIgorIm9sdcWfdHVydWxhbcSxeW9yXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/XG4iCittc2dzdHIgImJlbGxlayB5ZXRlcnNpej9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJkaXNrIGLDtmzDvG3DvCB0ZWtyYXIgb2x1xZ90dXJtYSBkb3N5YXPEsSAoJXMpIGHDp8SxbGFtxLF5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiJXMgb2t1bnVya2VuIGhhdGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzYzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIGRldmljZSAlcyBmb3Igd3JpdGluZ1xuIgorbXNnc3RyICIlcyBheWfEsXTEsSB5YXrEsWxtYWsgw7x6ZXJlIGHDp8SxbGFtxLF5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICIlbHUgc2VrdMO2csO8bsO8ICVzIMO8emVyaW5lIHlhem1hZGEgaGF0YVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBnZW9tZXRyeVxuIgorbXNnc3RyICJEaXNrICVzOiBnZW9tZXRyaSBhbMSxbmFtxLF5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICJEaXNrICVzOiBib3l1IGFsxLFuYW3EsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHN0YXJ0PSVsdSAtIHRoaXMgbG9va3MgbGlrZSBhIHBhcnRpdGlvbiByYXRoZXIgdGhhblxuIgorInRoZSBlbnRpcmUgZGlzay4gVXNpbmcgZmRpc2sgb24gaXQgaXMgcHJvYmFibHkgbWVhbmluZ2xlc3MuXG4iCisiW1VzZSB0aGUgLS1mb3JjZSBvcHRpb24gaWYgeW91IHJlYWxseSB3YW50IHRoaXNdXG4iCittc2dzdHIgIiIKKyJVeWFyxLE6IGJhxZ9sYW5nxLHDpz0lbHUgLSBidSBkaXNraW4gdGFtYW3EsSBkZcSfaWwgZGUgYmlyIGRpc2sgYsO2bMO8bcO8XG4iCisiZ2liaSBnw7Zyw7xuw7x5b3IuIGZkaXNrIGt1bGxhbm1hayBhbmxhbWzEsSBvbG1heWFjYWsuXG4iCisiW0J1bnUgbXV0bGFrYSB5YXBtYWsgaXN0aXlvcnNhbsSxeiAtLWZvcmNlIHNlw6dlbmXEn2luaSBrdWxsYW5hYmlsaXJzaW5pel1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEhESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGhlYWRzXG4iCittc2dzdHIgIlV5YXLEsTogSERJT19HRVRHRU8gJWx1IGthZmEgYmlsZGlyaXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgc2VjdG9yc1xuIgorbXNnc3RyICJVeWFyxLE6IEhESU9fR0VUR0VPICVsdSBzZWt0w7ZyIGJpbGRpcml5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIlV5YXLEsTogQkxLR0VUU0laRS9IRElPX0dFVEdFTyAlbHUgc2lsaW5kaXIgYmlsZGlyaXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJVeWFyxLE6IHNla3TDtnIgc2F5xLFzxLEgKCVsdSkgZW4gZmF6bGEgNjMgb2xhYmlsZWNlxJ9pbmRlbiBwZWsgc2VrdMO2clxuIgorInNhecSxc8SxbmEgYmVuemVtaXlvci4gQnUgY2hzIGFkcmVzbGVtZSBrdWxsYW7EsWxhbiB5YXrEsWzEsW1sYXJsYSBzb3J1biAiCisiw6fEsWthcsSxci5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbHUgY3lsaW5kZXJzLCAlbHUgaGVhZHMsICVsdSBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiIKKyJcbiIKKyJEaXNrICVzOiAlbHUgc2lsaW5kaXIsICVsdSBrYWZhLCAlbHUgc2VrdMO2ci9pelxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKyIlcyAoJXMgZGlzayBiw7Zsw7xtw7xuZGVraSkgeWFubMSxxZ8ga2FmYSBzYXnEsXPEsSBpw6dlcml5b3I6ICVsdSAoMC0lbHUgYXJhc8SxbmRhICIKKyJvbG1hbMSxeWTEsSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICIiCisiJXMgKCVzIGRpc2sgYsO2bMO8bcO8bmRla2kpIHlhbmzEscWfIHNla3TDtnIgc2F5xLFzxLEgacOnZXJpeW9yOiAlbHUgKDEtJWx1IGFyYXPEsW5kYSAiCisib2xtYWzEsXlkxLEpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICVsdSAoc2hvdWxkIGJlIGluIDAtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzICglcyBkaXNrIGLDtmzDvG3DvG5kZWtpKSB5YW5sxLHFnyBzaWxpbmRpciBzYXnEsXPEsSBpw6dlcml5b3I6ICVsdSAoMC0lbHUgIgorImFyYXPEsW5kYSBvbG1hbMSxeWTEsSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZCAgTmFtZVxuIgorIlxuIgorbXNnc3RyICIiCisiS2ltbCDEsHNpbVxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIC4uLlxuIgorbXNnc3RyICJEaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3UgeWVuaWRlbiBva3VudXlvciAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCisjLCBmdXp6eQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKyJEaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3VudW4geWVuaWRlbiBva3VubWFzxLEgYmHFn2FyxLFsYW1hZMSxXG4iCisibWtmcyBrdWxsYW5hYmlsbWVrIGnDp2luIHNpc3RlbWkgeWVuaWRlbiBiYcWfbGF0bWFsxLFzxLFuxLF6LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2xvc2luZyAlc1xuIgorbXNnc3RyICIlcyBrYXBhdMSxbMSxcmtlbiBoYXRhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gc3VjaCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiJXM6IGLDtnlsZSBiaXIgZGlzayBiw7Zsw7xtw7wgeW9rXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjg3OAorbXNnaWQgInVucmVjb2duaXplZCBmb3JtYXQgLSB1c2luZyBzZWN0b3JzXG4iCittc2dzdHIgImJpw6dlbSBiaWxpbm1peW9yIC0gc2VrdMO2ciBzYXnEsXPEsSBrdWxsYW7EsWzEsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5pbXBsZW1lbnRlZCBmb3JtYXQgLSB1c2luZyAlc1xuIgorbXNnc3RyICJkZXN0ZWtsZW5tZXllbiBiacOnZW0gLSAlcyBrdWxsYW7EsWzEsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gY3lsaW5kZXJzIG9mICVsdSBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorImJpcmltbGVyID0gJWx1IGJheXRsxLFrIHNpbGluZGlyLCAxMDI0IGJheXRsxLFrIGJsb2ssICVkJ2RlbiBiYcWfbGF5YXJha1xuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICAgIEVuZCAgICNjeWxzICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWxpbmRpciAgIGJsb2tcbiIKKyIgICBBeWfEsXQgw5ZueWtsIEJhbGFuZ8Sxw6cgQml0acWfIHNhecSxc8SxICAgc2F5xLFzxLFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IHNlY3RvcnMgb2YgNTEyIGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJiaXJpbWxlciA9IDUxMiBiYXl0bMSxayBzZWt0w7ZyLCAlZCdkZW4gYmHFn2xheWFyYWtcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKyIgICAgQXlnxLF0IMOWbnnDvGtsIEJhxZ9sYW5nxLHDpyAgIEJpdGnFnyAgIHNla3TDtnIgIEtpbWwgU2lzdGVtXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhecSxc8SxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisiYmlyaW0gPSAxMDI0IGJheXRsxLFrIGJsb2ssICVkJ2RlbiBiYcWfbGF5YXJha1xuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICBTdGFydCAgICAgICBFbmQgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIiAgIEF5Z8SxdCDDlm55w7xrbCBCYcWfbGFuZ8Sxw6cgICBCaXRpxZ8gICAgYmxvayAgICBLaW1sIFNpc3RlbVxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhecSxc8SxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBtZWJpYnl0ZXMgb2YgMTA0ODU3NiBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorImJpcmltbGVyID0gMTA0ODU3NiBiYXl0bMSxayBtZWJpYmF5dCwgMTAyNCBiYXl0bMSxayBibG9rLCAlZCdkZW4gYmHFn2xheWFyYWtcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgIE1pQiAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiICAgQXlnxLF0IMOWbnnDvGsgQmHFn2wgICBCaXRpxZ8gICAgTWlCICAgICBibG9rICAgIEtpbWwgU2lzdGVtXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhecSxc8SxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisiXHRcdGJhxZ9sYW5nxLHDpzogKHNsZCxrYWZhLHNla3QpICglbGQsJWxkLCVsZCkgZ2VyZWtpcmtlbiAoJWxkLCVsZCwlbGQpICIKKyJidWx1bmR1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIlx0XHRiaXRpxZ86IChzbGQsa2FmYSxzZWt0KSAoJWxkLCVsZCwlbGQpIGdlcmVraXJrZW4gKCVsZCwlbGQsJWxkKSBidWx1bmR1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJkaXNrIGLDtmzDvG3DvCBkaXNrIHNvbnVuZGFuIHNvbnJhLCAlbGQuIHNpbGluZGlyZGUgYml0aXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTMzCittc2dpZCAiTm8gcGFydGl0aW9ucyBmb3VuZFxuIgorbXNnc3RyICJEaXNrIGLDtmzDvG3DvCBidWx1bmFtYWTEsVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBUaGUgcGFydGl0aW9uIHRhYmxlIGxvb2tzIGxpa2UgaXQgd2FzIG1hZGVcbiIKKyIgIGZvciBDL0gvUz0qLyVsZC8lbGQgKGluc3RlYWQgb2YgJWxkLyVsZC8lbGQpLlxuIgorIkZvciB0aGlzIGxpc3RpbmcgSSdsbCBhc3N1bWUgdGhhdCBnZW9tZXRyeS5cbiIKK21zZ3N0ciAiIgorIlV5YXLEsTogRGlzayBiw7Zsw7xtw7xuw7xuIHNsZC9rYWZhL3Nla3Qgc8SxcmFsYW1hc8SxICovJWxkLyVsZFxuIgorIiglbGQvJWxkLyVsZCB5ZXJpbmUpIHlhcMSxbG3EscWfIGfDtnLDvG7DvHlvci5cbiIKKyJCdSBsaXN0ZWxlbWUgYnUgZ2VvbWV0cml5bGUga2FidWwgZWRpbGl5b3IuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAiZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1IHlvay5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIKK21zZ3N0ciAidHVoYWYsIHNhZGVjZSAlZCBkaXNrIGLDtmzDvG3DvCBhdGFubcSxxZ8uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYnV0IGlzIG5vdCBtYXJrZWQgRW1wdHlcbiIKK21zZ3N0ciAiVXlhcsSxOiAlcyBkaXNrIGLDtmzDvG3DvCBzxLFmxLFyIHV6dW5sdWt0YSBhbWEgYm/FnyBvbGFyYWsgaW1saSBkZcSfaWxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiVXlhcsSxOiAlcyBkaXNrIGLDtmzDvG3DvCBzxLFmxLFyIHV6dW5sdWt0YSB2ZSDDtm55w7xrbGVuZWJpbGlyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiVXlhcsSxOiAlcyBkaXNrIGLDtmzDvG3DvCBzxLFmxLFyIHV6dW5sdWt0YSB2ZSBiYcWfbGFuZ8SxY8SxIDAgZGEgZGXEn2lsXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzICIKK21zZ3N0ciAiVXlhcsSxOiAlcyBkaXNrIGLDtmzDvG3DvCAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgbm90IGNvbnRhaW5lZCBpbiBwYXJ0aXRpb24gJXNcbiIKK21zZ3N0ciAiJXMgZGlzayBiw7Zsw7xtw7xuZGUgZGXEn2lsXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9ucyAlcyAiCittc2dzdHIgIlV5YXLEsTogJXMgZGlzayBiw7Zsw7xtw7wgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgInZlICVzIGJpcmJpcmluZSBnaXJtacWfXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorIlV5YXLEsTogJXMgZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1bnVuIGJpciBrxLFzbcSxbsSxIGnDp2VyZGnEn2luZGVuIChzZWt0w7ZyICVsdSlcbiIKKyJkb2xkdcSfdW5kYSBvbnUgYm96YWNha1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAiVXlhcsSxOiAlcyBkaXNrIGLDtmzDvG3DvCAwLiBzZWt0w7ZyZGUgYmHFn2zEsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBleHRlbmRzIHBhc3QgZW5kIG9mIGRpc2tcbiIKK21zZ3N0ciAiVXlhcsSxOiAlcyBkaXNrIGLDtmzDvG3DvCBkaXNrIHNvbnVudSBhxZ/EsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjY5Cittc2dpZCAiIgorIkFtb25nIHRoZSBwcmltYXJ5IHBhcnRpdGlvbnMsIGF0IG1vc3Qgb25lIGNhbiBiZSBleHRlbmRlZFxuIgorIiAoYWx0aG91Z2ggdGhpcyBpcyBub3QgYSBwcm9ibGVtIHVuZGVyIExpbnV4KVxuIgorbXNnc3RyICIiCisiQmlyaW5jaWwgZGlzayBiw7Zsw7xtbGVyaW5kZW4gZW4gw6dvayBiaXJpIGVrIGRpc2sgYsO2bMO8bcO8bmRlIGJ1bHVuYWJpbGlyLlxuIgorIiAoxZ7DvHBoZXNpeiBMaW51eCBhbHTEsW5kYSBidSBiaXIgc29ydW4gZGXEn2lsZGlyKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIlV5YXLEsTogJXMgZGlzayBiw7Zsw7xtw7wgYmlyIHNpbGluZGlyIHPEsW7EsXLEsW5kYW4gYmHFn2xhbcSxeW9yXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IGVuZCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIlV5YXLEsTogJXMgZGlzayBiw7Zsw7xtw7wgYmlyIHNpbGluZGlyIHPEsW7EsXLEsW5kYSBiaXRtaXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzExCittc2dpZCAiIgorIldhcm5pbmc6IG1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorIlV5YXLEsTogYmlyZGVuIGZhemxhIGRpc2sgYsO2bMO8bcO8IMO2bnnDvGtsZW1lIGZsYW1hc8SxIGnDp2VyaXlvci5cbiIKKyJCdSBMSUxPIGnDp2luIHNvcnVuIHlhcmF0bWF6IGFtYSBET1MgTUJSIGJ1IGRpc2tpIMOnYWzEscWfdMSxcmFtYXouXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTgKK21zZ2lkICIiCisiV2FybmluZzogdXN1YWxseSBvbmUgY2FuIGJvb3QgZnJvbSBwcmltYXJ5IHBhcnRpdGlvbnMgb25seVxuIgorIkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIgorbXNnc3RyICIiCisiVXlhcsSxOiBiaXJpbmNpbCBkaXNrIGLDtmzDvG1sZXJpbmRlbiBzYWRlY2UgYmlyIHRhbmVzaSDDtm55w7xrbGVuZWJpbGlyLFxuIgorIkxJTE8gYGJvb3RhYmxlJyBmbGFtYXPEsW5hIGFsZMSxcm1hei5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiVXlhcsSxIGhpw6diaXIgZGlzayBiw7Zsw7xtw7wgw7ZuecO8a2xlbWUgYmF5cmHEn8SxIGnDp2VybWl5b3JcbiIKKyJCdSBMSUxPIGnDp2luIHNvcnVuIG9sdcWfdHVybWF6IGFtYSBET1MgTUJSIGJ1IGRpc2tpIMOnYWzEscWfdMSxcmFtYXouXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAiYmHFn2xhbmfEscOnIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJwYXJ0aXRpb24gJXM6IHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisiJXM6IGJhxZ9sYW5nxLHDpzogKHNsZCxrYWZhLHNla3QpIHPEsXJhc8SxeWxhICglbGQsJWxkLCVsZCkgb2xtYWzEsXlkxLFcbiIKKyIoJWxkLCVsZCwlbGQpIGJ1bHVuZHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0NworbXNnaWQgImVuZCIKK21zZ3N0ciAiYml0acWfIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlczogZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisiJXM6IGJpdGnFnzogKHNsZCxrYWZhLHNla3QpIHPEsXJhc8SxeWxhICglbGQsJWxkLCVsZCkgb2xtYWzEsXlkxLFcbiIKKyIoJWxkLCVsZCwlbGQpIGJ1bHVuZHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgIiVzIGRpc2tpbiBzb251bnUgYcWfYXJhayAlbGQuIHNpbGluZGlyZGUgYml0aXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzaGlmdGVkIHN0YXJ0IG9mIHRoZSBleHRkIHBhcnRpdGlvbiBmcm9tICVsZCB0byAlbGRcbiIKKyIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorbXNnc3RyICIiCisiVXlhcsSxOiBlayBkaXNrIGLDtmzDvG3DvG7DvG4gYmHFn2xhbmfEsWPEsSAlbGQgZGVuICVsZCB5ZSBrYXlkxLFyxLFsZMSxXG4iCisiKFNhZGVjZSBsaXN0ZSB1eXVtbHVsdcSfdSBpw6dpbi4gxLDDp2VyacSfaSBkZcSfacWfbWl5b3IuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisiVXlhcsSxOiBlayBkaXNrIGLDtmzDvG3DvCBiaXIgc2lsaW5kaXIgc8SxbsSxcsSxbmRhIGJhxZ9sYW3EsXlvci5cbiIKKyJET1MgdmUgTGludXggacOnZXJpa2xlcmkgZmFya2zEsSB5b3J1bWxheWFjYWt0xLFyLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICJkaXNrIGLDtmzDvG3DvCBzYXnEsXPEsSDDp29rIGZhemxhIC0gQnUgc29udW5jdXN1ICglZCkgZGlzayBiw7Zsw7xtw7xcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQxNworbXNnaWQgInRyZWUgb2YgcGFydGl0aW9ucz9cbiIKK21zZ3N0ciAiYcSfYWPEsW5kYSB5b2sgc2F5xLFsc8SxbiBtxLE/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAiRGlzayB5w7ZuZXRpY2lzaSBzYXB0YWTEsSAtIGJ1bHVuYW4gRE02IGltemFzxLFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUzMgorbXNnaWQgIkRNNiBzaWduYXR1cmUgZm91bmQgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiaWxlIMOnYWzEscWfxLFsYW3EsXlvciAtIGLEsXJha8SxbMSxeW9yXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTIKK21zZ2lkICJzdHJhbmdlLi4uLCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJ0dWhhZi4uLiwgc8SxZsSxciB1enVubHVrdGEgYmlyIGVrIGRpc2sgYsO2bMO8bcO8P1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICJ0dWhhZi4uLiwgc8SxZsSxciB1enVubHVrdGEgYmlyIEJTRCBkaXNrIGLDtmzDvG3DvD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgJXM6IHVucmVjb2duaXplZCBwYXJ0aXRpb24gdGFibGUgdHlwZVxuIgorbXNnc3RyICIgJXM6IGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSB0w7xyw7wgdGFuxLFubcSxeW9yXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIi1uIGZsYW1hc8SxIHZlcmlsbWnFnzogSGnDp2JpciDFn2V5IGRlxJ9pxZ9tZWRpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzIKK21zZ2lkICJGYWlsZWQgc2F2aW5nIHRoZSBvbGQgc2VjdG9ycyAtIGFib3J0aW5nXG4iCittc2dzdHIgIkVza2kgc2VrdMO2cmxlcmUgeWF6bWFkYSBiYcWfYXLEsXPEsXpsxLFrIC0gw6fEsWvEsWzEsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjM3IGZkaXNrL3NmZGlzay5jOjE2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHdyaXRpbmcgdGhlIHBhcnRpdGlvbiBvbiAlc1xuIgorbXNnc3RyICIlcyBkaXNrIGLDtmzDvG3DvG5lIHlhemFya2VuIGhhdGEgb2x1xZ90dVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzE5Cittc2dpZCAibG9uZyBvciBpbmNvbXBsZXRlIGlucHV0IGxpbmUgLSBxdWl0dGluZ1xuIgorbXNnc3RyICJ1enVuIHZlIGVrc2lrIGdpcmRpIHNhdMSxcsSxIC0gw6fEsWvEsWzEsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiZ2lyZGkgaGF0YXPEsTogJXMgYWxhbsSxbmRhbiBzb25yYSBiaXIgYD0nIGdlcmVrbGlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnB1dCBlcnJvcjogdW5leHBlY3RlZCBjaGFyYWN0ZXIgJWMgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiZ2lyZGkgaGF0YXPEsTogJWMga2FyYWt0ZXJpIGdlcmVrc2l6ICglcyBhbGFuxLFuZGFuIHNvbnJhKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzY4CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBpbnB1dDogJXNcbiIKK21zZ3N0ciAiYW5sYcWfxLFsbWF5YW4gZ2lyZGk6ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTAKK21zZ2lkICJudW1iZXIgdG9vIGJpZ1xuIgorbXNnc3RyICJzYXnEsSDDp29rIGLDvHnDvGtcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxNAorbXNnaWQgInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtYmVyXG4iCittc2dzdHIgInNhecSxZGFuIHNvbnJhc8SxbmRhIHPDvHByw7xudMO8XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICJkaXNrIGLDtmzDvG3DvCBiZXRpbWxleWljaSBpw6dpbiB5ZXIgeW9rXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5NzEKK21zZ2lkICJjYW5ub3QgYnVpbGQgc3Vycm91bmRpbmcgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgImt1xZ9hdGFuIGVrIGRpc2sgYsO2bMO8bcO8IGt1cmd1bGFuYW3EsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDIyCittc2dpZCAidG9vIG1hbnkgaW5wdXQgZmllbGRzXG4iCittc2dzdHIgImdpcmRpIGFsYW5sYXLEsSDDp29rIGZhemxhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIkRhaGEgZmF6bGEgeWVyIHlva1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIkt1cmFsZMSxxZ/EsSB0w7xyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZ2l2ZW4gc2l6ZSAoJWx1KSBleGNlZWRzIG1heCBhbGxvd2FibGUgc2l6ZSAoJWx1KVxuIgorbXNnc3RyICJVeWFyxLE6IGJlbGlydGlsZW4gKCVsdSkgdXp1bmx1aywgaXppbiB2ZXJpbGVuICglbHUpIHV6dW5sdWt0YW4gZmF6bGFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjExMworbXNnaWQgIldhcm5pbmc6IGVtcHR5IHBhcnRpdGlvblxuIgorbXNnc3RyICJVeWFyxLE6IGJvxZ8gZGlzayBiw7Zsw7xtw7xcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEyNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgcGFydGl0aW9uIHN0YXJ0IChlYXJsaWVzdCAlbHUpXG4iCittc2dzdHIgIlV5YXLEsTogZGlzayBiw7Zsw7xtw7wgYmHFn2xhbmfEsWPEsSBoYXRhbMSxIChlbiBlcmtlbiAlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNDAKK21zZ2lkICJ1bnJlY29nbml6ZWQgYm9vdGFibGUgZmxhZyAtIGNob29zZSAtIG9yICpcbiIKK21zZ3N0ciAiYW5sYcWfxLFsbWF5YW4gw7ZuecO8a2xlbWUgZmxhbWFzxLE7IC0geWEgZGEgKiBzZcOnaW5pelxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTU3IGZkaXNrL3NmZGlzay5jOjIxNzAKK21zZ2lkICJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iCittc2dzdHIgImvEsXNtaSBzbGQsa2FmYSxzZWt0IMO2emVsbGlrbGVyaT9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE4MQorbXNnaWQgIkV4dGVuZGVkIHBhcnRpdGlvbiBub3Qgd2hlcmUgZXhwZWN0ZWRcbiIKK21zZ3N0ciAiRWsgZGlzayBiw7Zsw7xtw7wgZ2VyZWtlbiB5ZXJkZSBkZcSfaWxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIxMworbXNnaWQgImJhZCBpbnB1dFxuIgorbXNnc3RyICJnaXJkaSBoYXRhbMSxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMzUKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zXG4iCittc2dzdHIgIsOnb2sgZmF6bGEgZGlzayBiw7Zsw7xtw7wgdmFyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyNjgKK21zZ2lkICIiCisiSW5wdXQgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ7IGFic2VudCBmaWVsZHMgZ2V0IGEgZGVmYXVsdCB2YWx1ZS5cbiIKKyI8c3RhcnQ+IDxzaXplPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorIlVzdWFsbHkgeW91IG9ubHkgbmVlZCB0byBzcGVjaWZ5IDxzdGFydD4gYW5kIDxzaXplPiAoYW5kIHBlcmhhcHMgPHR5cGU+KS5cbiIKK21zZ3N0ciAiIgorIkdpcmRpIGJpw6dlbWkgYcWfYcSfxLFkYWtpIGdpYmlkaXI7IHZlcmlsbWV5ZW4gYWxhbmxhcmEgw7ZudGFuxLFtbMSxIGRlxJ9lcmxlciAiCisiYXRhbsSxci5cbiIKKyI8YmHFn2xhbmfEscOnPiA8dXp1bmx1az4gPHTDvHLDvCBbRSxTLEwsWCxoZXhdPiA8w7ZuecO8a2xlbWUgWy0sKl0+XG4iCisiPHNsZCxrYWZhLHNla3Q+IDxzbGQsa2FmYSxzZWt0PlxuIgorIkdlbmVsbGlrbGUgPGJhxZ9sYW5nxLHDpz4gdmUgPHV6dW5sdWs+IGRlxJ9lcmxlcmkgKHZlIHRhYmlpIGtpIDx0w7xyw7w+KVxuIgorImJlbGlydG1layB5ZXRlcmxpZGlyLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gZGV2aWNlIC4uLlxuIgorbXNnc3RyICJLdWxsYW7EsW3EsTogJXMgW3Nlw6dlbmVrbGVyXSBheWfEsXQgLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTUKK21zZ2lkICJkZXZpY2U6IHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhIG9yIC9kZXYvc2RhIgorbXNnc3RyICJheWfEsXQ6IC9kZXYvaGRhIHZleWEgL2Rldi9zZGEgZ2liaSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NgorbXNnaWQgInVzZWZ1bCBvcHRpb25zOiIKK21zZ3N0ciAia3VsbGFuxLHFn2zEsSBzZcOnZW5la2xlcjoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTcKK21zZ2lkICIgICAgLXMgW29yIC0tc2hvdy1zaXplXTogbGlzdCBzaXplIG9mIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICAgLXMgIC0tc2hvdy1zaXplICAgICBkaXNrIGLDtmzDvG3DvCB1enVubHVrbGFyxLEgbGlzdGVsZW5pciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgICAtYyBbb3IgLS1pZF06ICAgICAgICBwcmludCBvciBjaGFuZ2UgcGFydGl0aW9uIElkIgorbXNnc3RyICIiCisiICAgIC1jICAtLWlkICAgICAgICAgICAgZGlzayBiw7Zsw7xtw7wga2ltbGnEn2kgZGXEn2nFn3RpcmlsaXIgeWEgZGEgZ8O2c3RlcmlsaXIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIgICAgLWwgIC0tbGlzdCAgICAgICAgICBheWfEsXRsYXLEsW4gZGlzayBiw7Zsw7xtbGVyaW5pIGxpc3RlbGVyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAwCittc2dpZCAiICAgIC1kIFtvciAtLWR1bXBdOiAgICAgIGlkZW0sIGJ1dCBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgbGF0ZXIgaW5wdXQiCittc2dzdHIgIiIKKyIgICAgLWQgIC0tZHVtcCAgICAgICAgICBkw7Zrw7xtbGVyLCBhbWEgc29ucmFraSBnaXJkaWxlciBpw6dpbiB1eWd1biBiacOnZW1kZSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAtaSBbb3IgLS1pbmNyZW1lbnRdOiBudW1iZXIgY3lsaW5kZXJzIGV0Yy4gZnJvbSAxIGluc3RlYWQgb2YgZnJvbSAwIgorbXNnc3RyICIgICAgLWkgIC0taW5jcmVtZW50ICAgICBzaWxpbmRpciBzYXnEsXPEsSB2LnMuIDAgeWVyaW5lIDEgZGVuIGl0aWJhcmVuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAyCittc2dpZCAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBhY2NlcHQvcmVwb3J0IGluIHVuaXRzIG9mIHNlY3RvcnMvYmxvY2tzL2N5bGluZGVycy8iCisiTUIiCittc2dzdHIgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNICBzZWt0w7ZyL2Jsb2svc2lsaW5kaXIvTUIgYmlyaW1sZXJpeWxlIGRlxJ9lciBhbMSxci8iCisiZ8O2c3RlcmlyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAzCittc2dpZCAiICAgIC1UIFtvciAtLWxpc3QtdHlwZXNdOmxpc3QgdGhlIGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgIC1UICAtLWxpc3QtdHlwZXMgICAgYmlsaW5lbiBkaXNrIGLDtmzDvG3DvCB0w7xybGVyaW5pIGxpc3RlbGVyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA0Cittc2dpZCAiICAgIC1EIFtvciAtLURPU106ICAgICAgIGZvciBET1MtY29tcGF0aWJpbGl0eTogd2FzdGUgYSBsaXR0bGUgc3BhY2UiCittc2dzdHIgIiIKKyIgICAgLUQgIC0tRE9TICAgICAgICAgICBET1MtdXl1bWx1bHXEn3UgacOnaW46IGJpciBkaXNrIGLDtmzDvG3DvG7DvCDDp29yYWtsYcWfdMSxcsSxciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAtUiBbb3IgLS1yZS1yZWFkXTogICBtYWtlIGtlcm5lbCByZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICAgLVIgIC0tcmUtcmVhZCAgICAgICDDp2VraXJkZWsgeWVuaWRlbiBva3VtYSB0YWJsb3N1IHlhcGFyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA2Cittc2dpZCAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIGNoYW5nZSBvbmx5IHRoZSBwYXJ0aXRpb24gd2l0aCBudW1iZXIgIyIKK21zZ3N0ciAiICAgIC1OIyAgICAgICAgICAgICAgICAgc2FkZWNlICMgbnVtYXJhbMSxIGRpc2sgYWxhbsSxIGRlxJ9pxZ90aXJpbGlyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA3Cittc2dpZCAiICAgIC1uIDogICAgICAgICAgICAgICAgIGRvIG5vdCBhY3R1YWxseSB3cml0ZSB0byBkaXNrIgorbXNnc3RyICIgICAgLW4gICAgICAgICAgICAgICAgICBnZXLDp2VrdGUgZGlza2UgeWF6xLFsbWF6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIgICAgLU8gZG9zeWEgICAgICAgICAgICDDvHN0w7xuZSB5YXphcmFrIHNla3TDtnJsZXJpIGRvc3lheWEga2F5ZGVkZXIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgLUkgZmlsZSA6ICAgICAgICAgICAgcmVzdG9yZSB0aGVzZSBzZWN0b3JzIGFnYWluIgorbXNnc3RyICIgICAgLUkgZG9zeWEgICAgICAgICAgICBzZWt0w7ZybGVyaSBidSBkb3N5YWRhbiB0ZWtyYXIgb2x1xZ90dXJ1ciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIgorbXNnc3RyICIgICAgLXYgIC0tdmVyc2lvbiAgICAgICBzw7xyw7xtIGJpbGdpbGVyaW5pIGfDtnN0ZXJpciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiAgICAtPyAgLS1oZWxwICAgICAgICAgIGJ1IHlhcmTEsW0gaWxldGlzaW5pIGfDtnN0ZXJpciB2ZSDDp8Sxa2FyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEyCittc2dpZCAiZGFuZ2Vyb3VzIG9wdGlvbnM6IgorbXNnc3RyICJ0ZWhsaWtlbGkgc2XDp2VuZWtsZXI6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEzCittc2dpZCAiICAgIC1nIFtvciAtLXNob3ctZ2VvbWV0cnldOiBwcmludCB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgZ2VvbWV0cnkiCittc2dzdHIgIiAgICAtZyAgLS1zaG93LWdlb21ldHJ5IMOnZWtpcmRlxJ9pbiBnZW9tZXRyaSBiaWxnaXNpbmkgZ8O2c3RlcmlyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE0Cittc2dpZCAiIgorIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gIgorInRhYmxlIgorbXNnc3RyICIiCisiICAgIC1HIFt2ZXlhIC0tc2hvdy1wdC1nZW9tZXRyeV06IGLDtmzDvG1sZW1lIHRhYmxvc3VuZGFuIGFsxLFuYW4gZ2VvbWV0cml5aSAiCisiYmFzYXIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCAgLS1zaG93LWV4dGVuZGVkIGVrIGRpc2sgYsO2bMO8bWxlcmluaSBnw7ZzdGVyaXIgdmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICBiZXRpbWxleWljaWxlcmkgacOnaW4gZ2lyZGkgYmVrbGVyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiIKKyIgICAgLUwgIC0tTGludXggICAgICAgICBMaW51eCBpbGUgYWxha2FzxLF6IMWfZXlsZXIgaGFra8SxbmRhIGhhdGEgw7xyZXRtZXoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgLXEgIFtvciAtLXF1aWV0XTogICAgICBzdXBwcmVzcyB3YXJuaW5nIG1lc3NhZ2VzIgorbXNnc3RyICIgICAgLXEgIC0tcXVpZXQgICAgICAgICB1eWFyxLFsYXLEsSBlbmdlbGxlciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZXRlY3RlZCBnZW9tZXRyeSB1c2luZzoiCittc2dzdHIgIlNhcHRhbmFuIGdlb21ldHJpeWkgYcWfbWFrIGnDp2luIHNlw6dlbmVrbGVyOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAtQyMgW29yIC0tY3lsaW5kZXJzICNdOnNldCB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyB0byB1c2UiCittc2dzdHIgIiAgICAtQyMgIC0tY3lsaW5kZXJzICMgIGt1bGxhbsSxbGFjYWsgc2lsaW5kaXIgc2F5xLFzxLEgYmVsaXJ0aWxpciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMQorbXNnaWQgIiAgICAtSCMgW29yIC0taGVhZHMgI106ICAgIHNldCB0aGUgbnVtYmVyIG9mIGhlYWRzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1IIyAgLS1oZWFkcyAjICAgICAga3VsYW7EsWxhY2FrIGthZmEgc2F5xLFzxLEgYmVsaXJ0aWxpciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIgICAgLVMjICAtLXNlY3RvcnMgIyAgICBrdWxsYW7EsWxhY2FrIHNla3TDtnIgc2F5xLFzxLEgYmVsaXJ0aWxpciIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMworbXNnaWQgIllvdSBjYW4gZGlzYWJsZSBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcgd2l0aDoiCittc2dzdHIgIkthcmFybMSxbMSxayBkZW5ldGltbGVyaW5pIGV0a2lzaXpsZcWfdGlybWUgc2XDp2VuZWtsZXJpOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgICAtZiAgW29yIC0tZm9yY2VdOiAgICAgIGRvIHdoYXQgSSBzYXksIGV2ZW4gaWYgaXQgaXMgc3R1cGlkIgorbXNnc3RyICIgICAgLWYgIC0tZm9yY2UgICAgICAgICB5YXDEsWxhY2FrIGnFn2xlbSBoYXRhbMSxIGRhIG9sc2EgeWFwxLFsxLFyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMwCittc2dpZCAiVXNhZ2U6IgorbXNnc3RyICJLdWxsYW7EsW3EsToiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIlcyBheWfEsXRcdFx0IGF5Z8SxdCDDvHN0w7xuZGVraSBldGtpbiBkaXNrIGLDtmzDvG1sZXJpbmkgZ8O2c3RlcmlyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIiCisiJXMgYXlnxLF0IG4xIG4yIC4uLiBuMSwgbjIgaWxlIGJlbGlydGlsZW4gZGlzayBiw7Zsw7xtbGVyaSBldGtpbmxlxZ90aXJpbGlyLFxuIgorIiAgICAgICAgICAgICAgICAgICBkacSfZXJsZXJpIGV0a2lzaXpsZcWfdGlyaWxpclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIiCisiJXMgLUFuIGF5Z8SxdFx0IG4uIGRpc2sgYsO2bMO8bcO8bsO8IGV0a2lubGXFn3RpcmlsaXIsIGRpxJ9lcmxlcmluaSAiCisiZXRraXNpemxlxZ90aXJpbGlyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiVMO8bSBkZW5ldGltbGVyaSBrYWxkxLFybWFrIGnDp2luIC0tZm9yY2Ugc2XDp2VuZcSfaW5pIGt1bGxhbsSxbi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgIktvbXV0P1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInRvdGFsOiAlbGx1IGJsb2Nrc1xuIgorbXNnc3RyICJ0b3BsYW06ICVsbHUgYmxva1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcwCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLXByaW50LWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyXG4iCittc2dzdHIgIkt1bGxhbsSxbcSxOiBzZmRpc2sgLS1wcmludC1pZCBheWfEsXQgZGlzay1iw7Zsw7xtw7wtbnVtYXJhc8SxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzIKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tY2hhbmdlLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIElkXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiBzZmRpc2sgLS1jaGFuZ2UtaWQgYXlnxLF0IGRpc2stYsO2bMO8bcO8LW51bWFyYXPEsSBraW1saWtcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3NAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBbSWRdXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiBzZmRpc2sgLS1pZCBheWfEsXQgZGlzay1iw7Zsw7xtw7wtbnVtYXJhc8SxIFtraW1saWtdXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2ODEKK21zZ2lkICJjYW4gc3BlY2lmeSBvbmx5IG9uZSBkZXZpY2UgKGV4Y2VwdCB3aXRoIC1sIG9yIC1zKVxuIgorbXNnc3RyICJzYWRlY2UgYmlyIGF5Z8SxdCBiZWxpcnRpbGViaWxpciAoLWwgeWEgZGEgLXMgaWxlIGdlcmVraXIpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMgcmVhZC13cml0ZVxuIgorbXNnc3RyICIlcyBva3UteWF6IGHDp8SxbGFtxLF5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwOQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyBmb3IgcmVhZGluZ1xuIgorbXNnc3RyICIlcyBva3VtYWsgacOnaW4gYcOnxLFsYW3EsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczogVEFNQU1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjc1MyBmZGlzay9zZmRpc2suYzoyNzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3lsaW5kZXJzLCAlbGQgaGVhZHMsICVsZCBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiVzOiAlbGQgc2lsaW5kaXIsICVsZCBrYWZhLCAlbGQgc2VrdMO2ci9pelxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgc2l6ZSBvZiAlc1xuIgorbXNnc3RyICIlcyBnaWJpIGJpciBib3l1dCBhbMSxbmFtxLF5b3JcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgImhhdGFsxLEgZXRraW4gYmF5dDogMHg4MCB5ZXJpbmUgMHgleFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTAzIGZkaXNrL3NmZGlzay5jOjI5NTggZmRpc2svc2ZkaXNrLmM6Mjk5MQorbXNnaWQgIiIKKyJEb25lXG4iCisiXG4iCittc2dzdHIgIiIKKyJCaXR0aVxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisiJWQgZXRraW4gYmlyaW5jaWwgZGlzayBiw7Zsw7xtw7wgdmFyLiBCdSBMSUxPIGnDp2luIHNvcnVuIG9sbWFtYWtsYSBiZXJhYmVyXG4iCisiRE9TIE1CUiBzYWRlY2UgMSBldGtpbiBkaXNrIGLDtmzDvG3DvCDDtm55w7xrbGVtZXNpIHlhcGFiaWxpci5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgIiVzIGRpc2sgYsO2bMO8bcO8bsO8biBraW1sacSfaSAleCB2ZSBnaXpsaSBkZcSfaWxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgSWQgJWx4XG4iCittc2dzdHIgIktpbWxpayAlbHggaGF0YWzEsVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDA0Cittc2dpZCAiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UuXG4iCittc2dzdHIgIkJ1IGRpc2sgxZ91IGFuIGt1bGxhbsSxbMSxeW9yLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhdGFsIGVycm9yOiBjYW5ub3QgZmluZCAlc1xuIgorbXNnc3RyICLDlmzDvG1jw7xsIGhhdGE6ICVzIGJ1bHVuYW3EsXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICJVeWFyxLE6ICVzIGJpciBibG9rIGF5Z8SxdMSxIGRlxJ9pbFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAiRGlza2luIGt1bGxhbsSxbWRhIG9sdXAgb2xtYWTEscSfxLEgZGVuZXRsZW5peW9yLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzQKK21zZ2lkICIiCisiXG4iCisiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UgLSByZXBhcnRpdGlvbmluZyBpcyBwcm9iYWJseSBhIGJhZCBpZGVhLlxuIgorIlVtb3VudCBhbGwgZmlsZSBzeXN0ZW1zLCBhbmQgc3dhcG9mZiBhbGwgc3dhcCBwYXJ0aXRpb25zIG9uIHRoaXMgZGlzay5cbiIKKyJVc2UgdGhlIC0tbm8tcmVyZWFkIGZsYWcgdG8gc3VwcHJlc3MgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkJ1IGRpc2sgxZ91IGFuZGEga3VsbGFuxLFtZGEgb2xkdcSfdW5kYW4geWVuaWRlbiBiw7Zsw7xtbGVtZWsgacOnaW46XG4iCisiVMO8bSBkb3N5YSBzaXN0ZW1sZXJpbmkgdW1vdW50IGVkaW4gdmUgYnUgZGlzayDDvHplcmluZGVraSB0w7xtIHRha2FzXG4iCisiYWxhbmxhcsSxbsSxIHN3YXBvZmYgaWxlIGthcGF0xLFuLiAtLW5vLXJlcmVhZCBiYXlyYcSfxLFuxLEga3VsbGFuYXJha1xuIgorInllbmlkZW4gb2t1bWEgacWfbGVtaW5pIGVuZ2VsbGV5aW4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICJUw7xtIGRlbmV0aW1sZXJpIGthbGTEsXJtYWsgacOnaW4gLS1mb3JjZSBzZcOnZW5lxJ9pbmkga3VsbGFuxLFuLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDQyCittc2dpZCAiT0tcbiIKK21zZ3N0ciAiVEFNQU1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1MQorIywgYy1mb3JtYXQKK21zZ2lkICJPbGQgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJFc2tpIGR1cnVtOlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCwgY2Fubm90IGNoYW5nZSBpdFxuIgorbXNnc3RyICIlZC4gZGlzayBiw7Zsw7xtw7wgb2xtYWTEscSfxLFuZGFuIGdlw6dpbGVtaXlvclxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBzaXR1YXRpb246XG4iCittc2dzdHIgIlllbmkgZHVydW06XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjgKK21zZ2lkICIiCisiSSBkb24ndCBsaWtlIHRoZXNlIHBhcnRpdGlvbnMgLSBub3RoaW5nIGNoYW5nZWQuXG4iCisiKElmIHlvdSByZWFsbHkgd2FudCB0aGlzLCB1c2UgdGhlIC0tZm9yY2Ugb3B0aW9uLilcbiIKK21zZ3N0ciAiIgorIkJ1IGRpc2sgYsO2bMO8bWxlcmluZGUgaGnDpyBiaXIgZGXEn2nFn2lrbGlrIHlhcMSxbG1hZMSxLlxuIgorIihCdW51IGdlcsOnZWt0ZW4gaXN0aXlvcnNhbsSxeiAtLWZvcmNlIHNlw6dlbmXEn2luaSBrdWxsYW7EsW4uKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDcxCittc2dpZCAiSSBkb24ndCBsaWtlIHRoaXMgLSBwcm9iYWJseSB5b3Ugc2hvdWxkIGFuc3dlciBOb1xuIgorbXNnc3RyICJVeWd1bGFuYW3EsXlvciAtIHNpeiBkZSBIYXnEsXIgZGVyZGluaXosIGLDvHnDvGsgaWh0aW1hbGxlXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXJlIHlvdSBzYXRpc2ZpZWQgd2l0aCB0aGlzPyBbeW5xXSAiCittc2dzdHIgIkJ1bmRhbiBtZW1udW4gbXVzdW51ej8gW2Voc10gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIHlvdSB3YW50IHRvIHdyaXRlIHRoaXMgdG8gZGlzaz8gW3lucV0gIgorbXNnc3RyICJCdW51IGRpc2tlIHlhem1hayBpc3RlciBtaXNpbml6PyBbZWhzXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGVuZCBvZiBpbnB1dFxuIgorbXNnc3RyICIiCisiXG4iCisic2ZkaXNrOiBnaXJkaSBzb251IGVrc2lrXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODUKK21zZ2lkICJRdWl0dGluZyAtIG5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICLDh8Sxa8SxbMSxeW9yIC0gRGXEn2nFn2lrbGlrIHlva1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBsZWFzZSBhbnN3ZXIgb25lIG9mIHksbixxXG4iCittc2dzdHIgIkzDvHRmZW4gZSwgaCwgcyBoYXJmbGVyaW5kZW4gYmlyaSBpbGUgeWFuxLF0bGF5xLFuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisiWWVuaSBkaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3UgYmHFn2FyxLF5bGEgeWF6xLFsZMSxXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorIkJpciBET1MgZGlzayBiw7Zsw7xtw7xuw7wgKMO2cm4uIC9kZXYvZm9vNykgb2x1xZ90dXJkdXlzYW7EsXogeWEgZGEgIgorImRlxJ9pxZ90aXJkaXlzZW5pelxuIgorImlsayA1MTIgYmF5dMSxbsSxIHPEsWbEsXJsYW1hayBpw6dpbiBkZCBrdWxsYW7EsW46XG4iCisiZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MVxuIgorIihkYWhhIGZhemxhIGJpbGdpIGnDp2luOiBmZGlzayg4KS4pXG4iCisKKyM6IGZzY2svZnNjay5jOjMyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogY291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiJXM6ICVzIGHDp8SxbGFtxLF5b3I6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBiYWQgZm9ybWF0IG9uIGxpbmUgJWQgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozNTIKK21zZ2lkICIiCisiV0FSTklORzogWW91ciAvZXRjL2ZzdGFiIGRvZXMgbm90IGNvbnRhaW4gdGhlIGZzY2sgcGFzc25vXG4iCisiXHRmaWVsZC4gIEkgd2lsbCBrbHVkZ2UgYXJvdW5kIHRoaW5ncyBmb3IgeW91LCBidXQgeW91XG4iCisiXHRzaG91bGQgZml4IHlvdXIgL2V0Yy9mc3RhYiBmaWxlIGFzIHNvb24gYXMgeW91IGNhbi5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo0NjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZzY2s6ICVzOiBub3QgZm91bmRcbiIKK21zZ3N0ciAidW1vdW50OiAlczogeW9rIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlczogc3RhdHVzIGlzICV4LCBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjY0MworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCB3aXRoICVzIChleGl0IHN0YXR1cyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiJXM6IHPEsWvEscWfdMSxcm1hIGHDp8SxbMSxcmtlbiBoYXRhICVkISAlcCglZClcbiIKKworIzogZnNjay9mc2NrLmM6NzI0Cittc2dpZCAiIgorIkVpdGhlciBhbGwgb3Igbm9uZSBvZiB0aGUgZmlsZXN5c3RlbSB0eXBlcyBwYXNzZWQgdG8gLXQgbXVzdCBiZSBwcmVmaXhlZFxuIgorIndpdGggJ25vJyBvciAnIScuXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzQzCisjLCBmdXp6eQorbXNnaWQgIkNvdWxkbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgZmlsZXN5c3RlbSB0eXBlc1xuIgorbXNnc3RyICJtb3VudDogZG9zeWEgc2lzdGVtaSB0w7xyw7xuw7wgYmVsaXJ0bWVsaXNpbml6IgorCisjOiBmc2NrL2ZzY2suYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBza2lwcGluZyBiYWQgbGluZSBpbiAvZXRjL2ZzdGFiOiBiaW5kIG1vdW50IHdpdGggbm9uemVybyBmc2NrIHBhc3MgIgorIm51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIG5vbmV4aXN0ZW50IGRldmljZVxuIgorbXNnc3RyICIlczogJXMgYmlyIGxwIGF5Z8SxdMSxIGRlxJ9pbC5cbiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKKyMsIGZ1enp5Cittc2dpZCAiQ2hlY2tpbmcgYWxsIGZpbGUgc3lzdGVtcy5cbiIKK21zZ3N0ciAiJXMgacOnaW4gZG9zeWEgc2lzdGVtaSBkZW5ldGltaSDFn2FydC5cbiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1CisjLCBmdXp6eQorbXNnaWQgIiIKKyJVc2FnZTogZnNjayBbLUFNTlBSVFZdIFsgLUMgWyBmZCBdIF0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIFtmaWxlc3lzIC4uLl1cbiIKK21zZ3N0ciAiIgorIkt1bGxhbsSxbcSxOiBta2ZzIFstVl0gWy10IGRzeVNpc3RUw7xyw7xdIFtkc3lTaXN0LXNlw6dlbmVrbGVyaV0gYXlnxLF0IFt1enVubHVrXVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgZGV2aWNlc1xuIgorbXNnc3RyICIlczogJXMgYmlyIGxwIGF5Z8SxdMSxIGRlxJ9pbC5cbiIKKworIzogZnNjay9mc2NrLmM6MTEzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiJXMgYcOnxLFsYW3EsXlvcjogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTEzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiJXMgc2lzdGVtZGVuIGF5csSxbGTEsVxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBmaW5kIG1hdGNoaW5nIGZpbGVzeXN0ZW06ICVzXG4iCittc2dzdHIgIkthbGFuIGRvc3lhIGlzdGVtbGVyaSBheXLEsWzEsXlvci4uLiIKKworIzogZnNjay9mc2NrLmM6MTE1NiBmc2NrL2ZzY2suYzoxMjQyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iCittc2dzdHIgIiVzOiBiaWxpbm1leWVuIGFyZ8O8bWFuOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiJTIkcyBkZWtpICUxJHNcbiIKKworIzogZnNjay9mc2NrLmM6MTI4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZzY2tfcGF0aFxuIgorbXNnc3RyICJEw7zEn8O8bWxlciBpw6dpbiB0YW1wb24gYmVsbGVrIGF5csSxbGFtxLF5b3IiCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJEYWhhIGZhemxhIGJpbGdpIGnDp2luIGBnZXRvcHQgLS1oZWxwJyB5YXrEsW7EsXouXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyOTUKK21zZ2lkICJlbXB0eSBsb25nIG9wdGlvbiBhZnRlciAtbCBvciAtLWxvbmcgYXJndW1lbnQiCittc2dzdHIgIi1sIHlhIGRhIC0tbG9uZyBpw6dpbiBhcmfDvG1hbiBvbGFyYWsgdXp1biBzZcOnZW5layB2ZXJpbG1lbWnFnyIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAiLXMgeWEgZGEgLS1zaGVsbCBzZcOnZW5la2xlcmkgaWxlIGJlbGlydGlsZW4ga2FidWsgYmlsaW5taXlvciIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiS3VsbGFuxLFtxLE6IGdldG9wdCBzZcOnZW5lay1kaXpnZXNpIHBhcmFtZXRyZWxlclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIxCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgZ2V0b3B0IFtzZcOnZW5la2xlcl0gWy0tXSBzZcOnZW5lay1kaXpnZXNpIHBhcmFtZXRyZWxlclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIyCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B0aW9uc10gWy0tXVxuIgorbXNnc3RyICIiCisiICAgICAgIGdldG9wdCBbc2XDp2VuZWtsZXJdIC1vfC0tb3B0aW9ucyBzZcOnZW5lay1kaXpnZXNpIFtzZcOnZW5la2xlcl0gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAgcGFyYW1ldHJlbGVyXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjQKK21zZ2lkICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4iCittc2dzdHIgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgIHRlayAtIGlsZSBiYcWfbGF5YW4gdXp1biBzZcOnZW5la2xlcmUgaXppblxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWxpclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI1Cittc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgIFRoaXMgc21hbGwgdXNhZ2UgZ3VpZGVcbiIKK21zZ3N0ciAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICBCdSB5YXJkxLFtIGlsZXRpc2luaSBnw7ZzdGVyaXJcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNgorbXNnaWQgIiAgLWwsIC0tbG9uZ29wdGlvbnM9bG9uZ29wdHMgICBMb25nIG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1sLCAtLWxvbmdvcHRpb25zPXV6dW5TZcOnbmsgICB0YW7EsW5hY2FrIHV6dW4gc2XDp2VuZWsgYmVsaXJ0aWxpclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI3Cittc2dpZCAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iCittc2dzdHIgIiAgLW4sIC0tbmFtZT11eWdpc21pICAgICAgICAgICAgSGF0YWxhciBidSBpc2ltIGFsdMSxbmRhIHJhcG9ybGFuxLFyXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjgKK21zZ2lkICIgIC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iCittc2dzdHIgIiAgLW8sIC0tb3B0aW9ucz1zw6dua2Rpemdlc2kgICAgIFRhbsSxbmFjYWsga8Sxc2Egc2XDp2VuZWtsZXIgYmVsaXJ0aWxpclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIiCisiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgICBnZXRvcHQoMykndW4gw7xyZXR0acSfaSBoYXRhbGFyIGfDtnN0ZXJpbG1lelxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMwCittc2dpZCAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIE5vIG5vcm1hbCBvdXRwdXRcbiIKK21zZ3N0ciAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIE5vcm1hbGRlIHZlcmlsZW4gw6fEsWt0xLEgdmVyaWxtZXpcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMQorbXNnaWQgIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICBTZXQgc2hlbGwgcXVvdGluZyBjb252ZW50aW9uc1xuIgorbXNnc3RyICIgIC1zLCAtLXNoZWxsPWthYnVrVMO8csO8ICAgICAgICAgS3VsbGFuxLFsYWNhayBrYWJ1ayB0w7xyw7wgYmVsaXJ0aWxpclxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICAgZ2V0b3B0KDEpIHPDvHLDvG3DvCBpw6dpbiB0ZXN0XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzMKK21zZ2lkICIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgRG8gbm90IHF1b3RlIHRoZSBvdXRwdXRcbiIKK21zZ3N0ciAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgICDDh8Sxa3TEsSB0xLFybmFrIGnDp2luZSBhbMSxbm1helxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzM0Cittc2dpZCAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCittc2dzdHIgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgU8O8csO8bSBiaWxnaWxlcmluaSBnw7ZzdGVyaXJcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjM4OCBnZXRvcHQvZ2V0b3B0LmM6NDQ3Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgInNlw6dlbmVrLWRpemdlc2kgdmVyaWxtZW1pxZ8iCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0IChnZWxpxZ9tacWfKSAxLjEuNFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDQxCittc2dpZCAiaW50ZXJuYWwgZXJyb3IsIGNvbnRhY3QgdGhlIGF1dGhvci4iCittc2dzdHIgImnDpyBoYXRhLCB5YXphcmEgYmlsZGlyaW4uIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9vdGVkIGZyb20gTUlMT1xuIgorbXNnc3RyICJNSUxPJ2RhbiBhw6fEsWxkxLFcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICJzYWF0cG9ydHUgMHgleCdlIGF5YXJsYW5kxLFcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZ1bmt5IFRPWSFcbiIKK21zZ3N0ciAiZnVua3kgVGltZU9mWWVhciFcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhdG9taWMgJXMgZmFpbGVkIGZvciAxMDAwIGl0ZXJhdGlvbnMhIgorbXNnc3RyICIlczogMTAwMCB5aW5lbGVtZSBpw6dpbiBhdG9taWsgJXMgYmHFn2FyxLFzxLF6ISIKKworIzogaHdjbG9jay9jbW9zLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMwNworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gL2Rldi9wb3J0OiAlcyIKK21zZ3N0ciAiL2Rldi9wb3J0IGHDp8SxbGFtxLF5b3I6ICVzIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIkRlbmVubWVkacSfaW5kZW4gZXJpxZ9pbSBpemlubGVyaSBhbMSxbmFtYWTEsS5cbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIHVuYWJsZSB0byBnZXQgSS9PIHBvcnQgYWNjZXNzOiAgdGhlIGlvcGwoMykgY2FsbCBmYWlsZWQuXG4iCittc2dzdHIgIiVzIEcvw4cgcG9ydHUgZXJpxZ9pbWkgYWxhbcSxeW9yOiBpb3BsKDMpIMOnYcSfcsSxc8SxIGJhxZ9hcsSxc8Sxei5cbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JhYmx5IHlvdSBuZWVkIHJvb3QgcHJpdmlsZWdlcy5cbiIKK21zZ3N0ciAiU2l6ZSByb290IHlldGtpbGVyaSBnZXJla2xpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiAlcyB0aW1lLlxuIgorbXNnc3RyICJEb25hbsSxbSBzYWF0aW5pbiAlcyBkZSB0dXR1bGR1xJ91IHZhcnNhecSxbMSxeW9yLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAiVVRDIgorbXNnc3RyICJVVEMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjUKK21zZ2lkICJsb2NhbCIKK21zZ3N0ciAieWVyZWwiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2FybmluZzogdW5yZWNvZ25pemVkIHRoaXJkIGxpbmUgaW4gYWRqdGltZSBmaWxlXG4iCittc2dzdHIgIiVzOiBVeWFyxLE6IGFkanRpbWUgZG9zeWFzxLFuZGFraSDDvMOnw7xuY8O8IHNhdMSxciBhbmxhxZ/EsWxhbWFkxLFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIihFeHBlY3RlZDogYFVUQycgb3IgYExPQ0FMJyBvciBub3RoaW5nLilcbiIKK21zZ3N0ciAiKEdlcmVrZW46IGBVVEMnLCBgTE9DQUwnIHlhIGRhIGhpw6diaXJpLilcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAiU29uIHNhcG1hIGF5YXLEsSAxOTY5IGRhbiBzb25yYWtpICVsZC4gc2FuaXllZGUgeWFwxLFsZMSxXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJTb24gZMO8emVsdG1lIDE5NjkgZGFuIHNvbnJha2kgJWxkLiBzYW5peWVkZSB5YXDEsWxkxLFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIkhhcmR3YXJlIGNsb2NrIGlzIG9uICVzIHRpbWVcbiIKK21zZ3N0ciAiRG9uYW7EsW0gc2FhdGkgJXMgZGVuIGJlcmkgYcOnxLFrXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgInVua25vd24iCittc2dzdHIgImJpbGlubWV5ZW4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGZvciBjbG9jayB0aWNrLi4uXG4iCittc2dzdHIgInNhYXQgdGlraSBpw6dpbiBiZWtsZW5peW9yLi4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5zeW5jaHJvbml6YXRpb24gZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmdvdCBjbG9jayB0aWNrXG4iCittc2dzdHIgIi4uLiBzYWF0IHRpa2kgYWzEsW5kxLFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIkRvbmFuxLFtIHNhYXRpbmRlIGdlw6dlcnNpeiBkZcSfZXJsZXI6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiRG9uYW7EsW0gemFtYW7EsTogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9IDE5NjkgecSxbMSxbmRhbiBiZXJpICVsZCAiCisic2FuaXllXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHJlYWQgZnJvbSBIYXJkd2FyZSBDbG9jazogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorbXNnc3RyICJEb25hbsSxbSBzYWF0aW5kZW4gb2t1bmFuOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIEhhcmR3YXJlIENsb2NrIHRvICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisiRG9uYW7EsW0gU2FhdGkgJS4yZDolLjJkOiUuMmQgPSAxOTY5IGRhbiBiZXJpICVsZCBzYW5peWUgb2xhcmFrIGF5YXJsYW7EsXlvclxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIlNhYXQgZGXEn2nFn21leWVjZWsgLSBzYWRlY2UgdGVzdCBlZGlsaXlvci5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIkJhxZ9sYW5nxLHDpyB6YW1hbsSxbmRhbiBiZXJpIGdlw6dlbiB6YW1hbiAlLjZmIHNhbml5ZSBvbGR1LlxuIgorIkdlY2lrbWUgc29ucmFraSB0YW0gc2FuaXlleWUga2FkYXIgb2xhbmRhbiBkYWhhIGZhemxhLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIkRvbmFuxLFtIHNhYXRpIHlhem1hw6dsYXLEsSBoZW0gZ2XDp2Vyc2l6IChhecSxbiA1MC4gZ8O8bsO8IGdpYmkpIGhlbSBkZSBlbGRlICIKKyJlZGlsZWJpbGlyIG9sbWF5YW4gYmlyIGFyYWzEsWt0YSAoMjUwMCB5xLFsxLEgZ2liaSkgZGXEn2VybGVyIGnDp2VyaXlvci5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiJXMgICUuNmYgc2FuaXllXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAiLS1kYXRlIHNlw6dlbmXEn2kgYmVsaXJ0aWxtZW1pxZ8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyMQorIywgYy1mb3JtYXQKK21zZ2lkICItLWRhdGUgYXJndW1lbnQgdG9vIGxvbmdcbiIKK21zZ3N0ciAiLS1kYXRlIGlsZSB2ZXJpbGVuIGFyZ8O8bWFuIMOnb2sgdXp1blxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiBpcyBub3QgYSB2YWxpZCBkYXRlLlxuIgorIkluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHF1b3RhdGlvbiBtYXJrcy5cbiIKK21zZ3N0ciAiIgorIi0tZGF0ZSBzZcOnZW5lxJ9pbmluIGRlxJ9lcmkgZ2XDp2Vyc2l6LlxuIgorIkF5csSxY2EgdMSxcm5hayBpxZ9hcmV0bGVyaSBkZSBpw6dlcml5b3IuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJc3N1aW5nIGRhdGUgY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiVmVyaWxlbiBkYXRlIGtvbXV0dTogJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQwCittc2dpZCAiVW5hYmxlIHRvIHJ1biAnZGF0ZScgcHJvZ3JhbSBpbiAvYmluL3NoIHNoZWxsLiBwb3BlbigpIGZhaWxlZCIKK21zZ3N0ciAiIgorIidkYXRlJyB1eWd1bGFtYXPEsSAvYmluL3NoIGthYnXEn3VuZGEgw6dhbMSxxZ90xLFyxLFsYW3EsXlvci4gcG9wZW4oKSBiYcWfYXLEsXPEsXoiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgImRhdGUga29tdXR1bnVuIHNvbnVjdSA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKyIlcyB0YXJhZsSxbmRhbiB2ZXJpbGVuIGRhdGUga29tdXR1IGFubGHFn8SxbG1heWFuIHNvbnXDp2xhciB2ZXJkaS5cbiIKKyJLb211dDpcbiIKKyIgICVzXG4iCisiU29udcOnOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorIiVzIHRhcmFmxLFuZGFuIHZlcmlsZW4gZGF0ZSBrb211dHUgZMO2bsO8xZ90w7xyw7xsbcO8xZ8gemFtYW4gZGXEn2VyaSBvbGFyYWsgYmlyICIKKyJ0YW1zYXnEsSB5ZXJpbmUgZmFya2zEsSBiaXLFn2V5bGVybGUgc29udcOnbGFuZMSxLlxuIgorIktvbXV0OlxuIgorIiAgJXNcbiIKKyJTb251w6c6XG4iCisiICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJkYXRlIHN0cmluZyAlcyBlcXVhdGVzIHRvICVsZCBzZWNvbmRzIHNpbmNlIDE5NjkuXG4iCittc2dzdHIgInRhcmloIGRpemdlc2kgJXMgMTk2OSBkYW4gYmVyaSAlbGQgc2FuaXlleWUgZcWfaXR0aXIuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3Qgc2V0IHRoZSAiCisiU3lzdGVtIFRpbWUgZnJvbSBpdC5cbiIKK21zZ3N0ciAiIgorIkRvbmFuxLFtIFNhYXRpIGdlw6dlcmxpIGJpciB6YW1hbiBkZcSfZXJpIGnDp2VybWVkacSfaW5kZW4gU2lzdGVtIFphbWFuxLEgbyBkZcSfZXJlICIKKyJheWFybGFuYW1hei5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI3IGh3Y2xvY2svaHdjbG9jay5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIHNldHRpbWVvZmRheTpcbiIKK21zZ3N0ciAic2V0dGltZW9mZGF5IMOnYcSfcsSxc8SxOlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICJUZXN0IGtpcGluZGUgw6dhbMSxxZ/EsWxkxLHEn8SxbmRhbiBzaXN0ZW0gc2FhdGkgZGXEn2nFn21peW9yLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIlNpc3RlbSBzYWF0aW5pbiBheWFybGFubWFzxLEgcm9vdCB5ZXRraXNpbmRlZGlyLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDUgaHdjbG9jay9od2Nsb2NrLmM6ODIzCittc2dpZCAic2V0dGltZW9mZGF5KCkgZmFpbGVkIgorbXNnc3RyICJzZXR0aW1lb2ZkYXkoKSBiYcWfYXLEsXPEsXoiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc4MQorIywgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisiRG9uYW7EsW0gc2FhdGluaW4gw7ZuY2VraSBkZcSfZXJsZXJpIGJvenVrIG9sZHXEn3VuZGFuIHNhcG1hIGZha3TDtnLDvCAiCisiYXlhcmxhbmFtxLF5b3IuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorIlNvbiBkw7x6ZWx0bWUgemFtYW7EsSBzxLFmxLFyIG9sZHXEn25kYW4gc2FwbWEgZmFrdMO2csO8IGF5YXJzxLF6LFxuIgorInlhbmkgZ2XDp21pxZ8gaGF0YWzEsSB2ZSBiaXIgZMO8emVsdG1lIGJhxZ9sYW5nxLFjxLEgZ2VyZWtpeW9yLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorIlNvbiBkw7x6ZWx0bWVkZW4gYmVyaSAxIGfDvG5kZW4gYXogemFtYW4gZ2XDp3RpxJ9pbmRlbiBzYXBtYSBmYWt0w7Zyw7wgIgorImF5YXJsYW5hbcSxeW9yLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNsb2NrIGRyaWZ0ZWQgJS4xZiBzZWNvbmRzIGluIHRoZSBwYXN0ICVkIHNlY29uZHMgaW4gc3BpdGUgb2YgYSBkcmlmdCBmYWN0b3IgIgorIm9mICVmIHNlY29uZHMvZGF5LlxuIgorIkFkanVzdGluZyBkcmlmdCBmYWN0b3IgYnkgJWYgc2Vjb25kcy9kYXlcbiIKK21zZ3N0ciAiIgorIiUzJGYgc2FuaXllL2fDvG4gc2FwbWEgZmFrdMO2csO8bmUgcmHEn21lbiwgJTIkZCBzYW5peWUgacOnaW5kZSBzYWF0ICUxJC4xZiAiCisic2FuaXllIHNhcHTEsS5cbiIKKyJTYXBtYSBmYWt0w7Zyw7wgJTQkZiBzYW5peWUvZ8O8biBvbGFyYWsgYXlhcmxhbsSxeW9yXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHNpbmNlIGxhc3QgYWRqdXN0bWVudCBpcyAlZCBzZWNvbmRzXG4iCittc2dzdHIgIlNvbiBheWFybGFtYWRhbiBiZXJpICVkIHNhbml5ZSBnZcOndGlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWQgdG8gaW5zZXJ0ICVkIHNlY29uZHMgYW5kIHJlZmVyIHRpbWUgYmFjayAlLjZmIHNlY29uZHMgYWdvXG4iCittc2dzdHIgIiVkIHNhbml5ZSBnaXJtZWsgZ2VyZWtsaSB2ZSB6YW1hbiAlLjZmIHNhbml5ZSDDtm5jZXNpbmUgYWl0XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgdXBkYXRpbmcgYWRqdGltZSBmaWxlIGJlY2F1c2Ugb2YgdGVzdGluZyBtb2RlLlxuIgorbXNnc3RyICJhZGp0aW1lIGRvc3lhc8SxIHRlc3Qga2lwaW5kZSBvbHVuZHXEn3VuZGFuIGfDvG5jZWxsZW5taXlvci5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorIkHFn2HEn8SxZGFraSAlcyBlIHlhesSxbG1hbMSxOlxuIgorIiVzIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb3VsZCBub3Qgb3BlbiBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyBpbiBpdCAoJXMpIGZvciAiCisid3JpdGluZyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDA2IGh3Y2xvY2svaHdjbG9jay5jOjEwMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHVwZGF0ZSBmaWxlIHdpdGggdGhlIGNsb2NrIGFkanVzdG1lbnQgcGFyYW1ldGVycyAoJXMpIGluIGl0IgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJTYXBtYSBheWFyIHBhcmFtZXRyZWxlcmkgZ8O8bmNlbGxlbm1lZGkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IGFkanVzdCBpdC5cbiIKK21zZ3N0ciAiRG9uYW7EsW0gc2FhdGkgZ2XDp2VybGkgYmlyIHphbWFuIGnDp2VybWVkacSfaW5kZW4gYXlhcmxhbmFtxLF5b3IuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAiIgorIlNvbiBkw7x6ZWx0bWUgemFtYW7EsSBzxLFmxLFyIG9sZHXEn25kYW4gc2FwbWEgZmFrdMO2csO8IGF5YXJzxLF6LFxuIgorInlhbmkgZ2XDp21pxZ8gaGF0YWzEsSB2ZSBiaXIgZMO8emVsdG1lIGJhxZ9sYW5nxLFjxLEgZ2VyZWtpeW9yLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIk5lZWRlZCBhZGp1c3RtZW50IGlzIGxlc3MgdGhhbiBvbmUgc2Vjb25kLCBzbyBub3Qgc2V0dGluZyBjbG9jay5cbiIKK21zZ3N0ciAiR2VyZWtlbiBheWFyIGJpciBzYW5peWVuaW4gYWx0xLFuZGEgb2xkdcSfdW5kYW4gc2FhdCBheWFybGFubcSxeW9yLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nICVzLlxuIgorbXNnc3RyICIlcyBrdWxsYW5hcmFrLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIkt1bGxhbsSxbGFiaWxpciBiaXIgc2FhdCBhcmF5w7x6w7wgeW9rLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjIxIGh3Y2xvY2svaHdjbG9jay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIlNpc3RlbSBzYWF0aSBheWFybGFuYW3EsXlvci5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBrZWVwcyBhbiBlcG9jaCB2YWx1ZSBmb3IgdGhlIEhhcmR3YXJlIENsb2NrIG9ubHkgb24gYW4gQWxwaGEgIgorIm1hY2hpbmUuXG4iCisiVGhpcyBjb3B5IG9mIGh3Y2xvY2sgd2FzIGJ1aWx0IGZvciBhIG1hY2hpbmUgb3RoZXIgdGhhbiBBbHBoYVxuIgorIihhbmQgdGh1cyBpcyBwcmVzdW1hYmx5IG5vdCBydW5uaW5nIG9uIGFuIEFscGhhIG5vdykuICBObyBhY3Rpb24gdGFrZW4uXG4iCittc2dzdHIgIiIKKyLDh2VraXJkZWsgc2FkZWNlIEFscGhhIG1ha2luYSDDvHN0w7xuZGUgRG9uYW7EsW0gU2FhdGkgacOnaW4gYmlyIGTDtm5lbXNlbGxpayAiCisiZGXEn2VyaSBzYWtsYXIuXG4iCisiaHdjbG9jayd1biBidSBrb3B5YXPEsSBiaXIgQWxwaGEgacOnaW4gZGVybGVubWVtacWfLiBCaXIgxZ9leSB5YXDEsWxtYWTEsS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gZ2V0IHRoZSBlcG9jaCB2YWx1ZSBmcm9tIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgIsOHZWtpcmRla3RlbiBkw7ZuZW1zZWxsaWsgZGXEn2VyaSBhbMSxbmFtxLF5b3IuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2VybmVsIGlzIGFzc3VtaW5nIGFuIGVwb2NoIHZhbHVlIG9mICVsdVxuIgorbXNnc3RyICLDh2VraXJkZWsgZMO2bmVtc2VsbGlrIGRlxJ9lcmluaSAlbHUgdmFyc2F5xLF5b3JcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSAnZXBvY2gnIG9wdGlvbiB0byB0ZWxsIHRvIHdoYXQgIgorInZhbHVlIHRvIHNldCBpdC5cbiIKK21zZ3N0ciAiIgorIkTDtm5lbXNlbGxpayBkZcSfZXJpbmluIGF5YXJsYW5hYmlsbWVzaSBpw6dpbiwgYXlhcmxhbmFjYWsgZGXEn2VyaSAnZXBvY2gnICIKKyJzZcOnZW5lxJ9pIGlsZSB2ZXJtZWxpc2luaXouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICJEw7ZuZW1zZWxsaWsgJWQgb2xhcmFrIGF5YXJsYW5tYXlhY2FrIC0gc2FkZWNlIHRlc3QgZWRpbGl5b3IuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiw4dla2lyZGVrdGUgZMO2bmVtc2VsbGlrIGRlxJ9lcmkgYXlhcmxhbmFtxLF5b3IuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyOTAgbWlzYy11dGlscy9jYWwuYzozNDcgbWlzYy11dGlscy9raWxsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZyb20gJXNcbiIKK21zZ3N0ciAiJTIkcyBkZWtpICUxJHNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTMxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorImh3Y2xvY2sgLSBxdWVyeSBhbmQgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayAoUlRDKVxuIgorIlxuIgorIlVzYWdlOiBod2Nsb2NrIFtmdW5jdGlvbl0gW29wdGlvbnMuLi5dXG4iCisiXG4iCisiRnVuY3Rpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICBzaG93IHRoaXMgaGVscFxuIgorIiAgLXIgfCAtLXNob3cgICAgICAgICByZWFkIGhhcmR3YXJlIGNsb2NrIGFuZCBwcmludCByZXN1bHRcbiIKKyIgICAgICAgLS1zZXQgICAgICAgICAgc2V0IHRoZSBydGMgdG8gdGhlIHRpbWUgZ2l2ZW4gd2l0aCAtLWRhdGVcbiIKKyIgIC1zIHwgLS1oY3Rvc3lzICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBmcm9tIHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgLXcgfCAtLXN5c3RvaGMgICAgICBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIHRvIHRoZSBjdXJyZW50IHN5c3RlbSB0aW1lXG4iCisiICAgICAgIC0tc3lzdHogICAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZXpvbmVcbiIKKyIgICAgICAgLS1hZGp1c3QgICAgICAgYWRqdXN0IHRoZSBydGMgdG8gYWNjb3VudCBmb3Igc3lzdGVtYXRpYyBkcmlmdCBzaW5jZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICB0aGUgY2xvY2sgd2FzIGxhc3Qgc2V0IG9yIGFkanVzdGVkXG4iCisiICAgICAgIC0tZ2V0ZXBvY2ggICAgIHByaW50IG91dCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1zZXRlcG9jaCAgICAgc2V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZSB0byB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGdpdmVuIHdpdGggLS1lcG9jaFxuIgorIiAgLXYgfCAtLXZlcnNpb24gICAgICBwcmludCBvdXQgdGhlIHZlcnNpb24gb2YgaHdjbG9jayB0byBzdGRvdXRcbiIKKyJcbiIKKyJPcHRpb25zOiBcbiIKKyIgIC11IHwgLS11dGMgICAgICAgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gVVRDXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIGxvY2FsIHRpbWVcbiIKKyIgIC1mIHwgLS1ydGM9cGF0aCAgICAgc3BlY2lhbCAvZGV2Ly4uLiBmaWxlIHRvIHVzZSBpbnN0ZWFkIG9mIGRlZmF1bHRcbiIKKyIgICAgICAgLS1kaXJlY3Rpc2EgICAgYWNjZXNzIHRoZSBJU0EgYnVzIGRpcmVjdGx5IGluc3RlYWQgb2YgJXNcbiIKKyIgICAgICAgLS1iYWR5ZWFyICAgICAgaWdub3JlIHJ0YydzIHllYXIgYmVjYXVzZSB0aGUgYmlvcyBpcyBicm9rZW5cbiIKKyIgICAgICAgLS1kYXRlICAgICAgICAgc3BlY2lmaWVzIHRoZSB0aW1lIHRvIHdoaWNoIHRvIHNldCB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgICAgICAgLS1lcG9jaD15ZWFyICAgc3BlY2lmaWVzIHRoZSB5ZWFyIHdoaWNoIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICBoYXJkd2FyZSBjbG9jaydzIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tbm9hZGpmaWxlICAgIGRvIG5vdCBhY2Nlc3MgL2V0Yy9hZGp0aW1lLiBSZXF1aXJlcyB0aGUgdXNlIG9mXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorIiAgICAgICAtLWFkamZpbGU9cGF0aCBzcGVjaWZpZXMgdGhlIHBhdGggdG8gdGhlIGFkanVzdCBmaWxlIChkZWZhdWx0IGlzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIC9ldGMvYWRqdGltZSlcbiIKKyIgICAgICAgLS10ZXN0ICAgICAgICAgZG8gZXZlcnl0aGluZyBleGNlcHQgYWN0dWFsbHkgdXBkYXRpbmcgdGhlIGhhcmR3YXJlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGNsb2NrIG9yIGFueXRoaW5nIGVsc2VcbiIKKyIgIC1EIHwgLS1kZWJ1ZyAgICAgICAgZGVidWcgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisiaHdjbG9jayAtIERvbmFuxLFtIHNhYXRpbmkgKFJUQykgYXlhcmxhbWFrIHZlIHNvcmd1bGFtYWsgacOnaW4ga3VsbGFuxLFsxLFyLlxuIgorIlxuIgorIkt1bGxhbsSxbcSxOiBod2Nsb2NrIFvEsMWeTEVWXSBbU0XDh0VORUsuLi5dXG4iCisiXG4iCisixLDFnkxFVmxlcjpcbiIKKyIgIC0taGVscCAgICAgICAgYnUgeWFyZMSxbSBpbGV0aXNpbmkgZ8O2c3RlcmlyXG4iCisiICAtLXNob3cgICAgICAgIGRvbmFuxLFtIHNhYXRpIG9rdW51ciB2ZSBzb251Y3UgZ8O2c3RlcmlsaXJcbiIKKyIgIC0tc2V0ICAgICAgICAgZG9uYW7EsW0gc2FhdGkgLS1kYXRlIGlsZSB2ZXJpbGVuIGRlxJ9lcmUgYXlhcmxhbsSxclxuIgorIiAgLS1oY3Rvc3lzICAgICBzaXN0ZW0gemFtYW7EsSBkb25hbsSxbSBzYWF0aW5kZW4gYXlhcmxhbsSxclxuIgorIiAgLS1zeXN0b2hjICAgICBkb25hbsSxbSBzYWF0aSBzaXN0ZW0gc2FhdGluZGVuIGF5YXJsYW7EsXJcbiIKKyIgIC0tYWRqdXN0ICAgICAgc2FhdGluIHNvbiBheWFyxLFuZGFuIGJlcmkgb2x1xZ9hbiBzaXN0ZW1hdGlrIHNhcG1heWEgZ8O2cmVcbiIKKyIgICAgICAgICAgICAgICAgZG9uYW7EsW0gc2FhdGkgYXlhcmxhbsSxclxuIgorIiAgLS1nZXRlcG9jaCAgICDDp2VraXJkZcSfaW4gZG9uYW7EsW0gc2FhdGkgZMO2bmVtc2VsbGlrIGRlxJ9lcmkgZ8O2c3RlcmlsaXJcbiIKKyIgIC0tc2V0ZXBvY2ggICAgw6dla2lyZGXEn2luIGRvbmFuxLFtIHNhYXRpIGTDtm5lbXNlbGxpayBkZcSfZXJpIC0tZXBvY2hcbiIKKyIgICAgICAgICAgICAgICAgaWxlIHZlcmlsZW4gZGXEn2VyZSBheWFybGFuxLFyXG4iCisiICAtLXZlcnNpb24gICAgIGh3Y2xvY2sgc8O8csO8bSBiaWxnaWxlcmkgZ8O2c3RlcmlsaXJcbiIKKyJcbiIKKyJTRcOHRU5FS2xlcjogXG4iCisiICAtLXV0YyAgICAgICAgIGRvbmFuxLFtIHNhYXRpIGtvb3JkaW5hdGzEsSBldnJlbnNlbCB6YW1hbmRhIHR1dHVsdXJcbiIKKyIgIC0tbG9jYWx0aW1lICAgZG9uYW7EsW0gc2FhdGkgeWVyZWwgemFtYW5kYSB0dXR1bHVyXG4iCisiICAtLWRpcmVjdGlzYSAgICVzIHllcmluZSBJU0EgdmVyaXlvbHVuYSBkb8SfcnVkYW4gZXJpxZ9pbGlyXG4iCisiICAtLWJhZHllYXIgICAgIGJpb3MgYm96dWsgb2xkdcSfdW5kYSBkb25hbsSxbSBzYWF0aW5pbiB5xLFsxLEgZ8O2emFyZMSxIGVkaWxpclxuIgorIiAgLS1kYXRlICAgICAgICBkb25hbsSxbSBzYWF0aW5pbiBheWFybGFuYWNhxJ/EsSBkZcSfZXIgYmVsaXJ0aWxpclxuIgorIiAgLS1lcG9jaD1ZSUwgICBkb25hbsSxbSBzYWF0aW5pbiBkw7ZuZW1zZWxsaWsgYmHFn2xhbmfEscOnIGRlxJ9lcmkgb2xhblxuIgorIiAgICAgICAgICAgICAgICBZSUwgYmVsaXJ0aWxpclxuIgorIiAgLS1ub2FkamZpbGUgICAvZXRjL2FkanRpbWUgb2t1bm1hei4gWWEgLS11dGMgeWEgZGEgLS1sb2NhbHRpbWUga3VsbGFubWFrXG4iCisiICAgICAgICAgICAgICAgIGdlcmVraXIuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisiXG4iCittc2dzdHIgIiIKKyIgIC0tamVuc2VuLCAtLWFyYywgLS1zcm0sIC0tZnVua3ktdG95XG4iCisiICAgICAgICAgICAgICAgIEFscGhhJ27EsXrEsW4gaHdjbG9jayB0w7xyw7wgYmVsaXJ0aWxpclxuIgorIiAgICAgICAgICAgICAgIChod2Nsb2NrKDgpIG1hbiBzYXlmYXPEsW5hIGJha8SxbsSxeilcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTQzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICJTaXN0ZW0gc2FhdGkgYXlhcmxhbmFtxLF5b3IuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdGFrZXMgbm8gbm9uLW9wdGlvbiBhcmd1bWVudHMuICBZb3Ugc3VwcGxpZWQgJWQuXG4iCittc2dzdHIgIiVzIHNlw6dlbmXEn2kgYXJnw7xtYW4gYWxtYXouICAlZCB2ZXJpbGRpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyLDh29rIHNhecSxZGEgacWfbGV2IGJlbGlydHRpbml6LlxuIgorIkJpciBkZWZhZGEgc2FkZWNlIGJpciBpxZ9sZXYgdXlndWxhbmFiaWxpci5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiIgorIiVzOiAtLXV0YyB2ZSAtLWxvY2FsdGltZSBzZcOnZW5la2xlcmkgYmlyYmlyaXlsZSDDp2VsacWfaXlvci4gIMSwa2lzaSBkZSAiCisiYmVsaXJ0aWxtacWfLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6ICAtLWFkanVzdCB2ZSAtLW5vYWRqZmlsZSBzZcOnZW5la2xlcmkgYmlyYmlyaXlsZSDDp2VsacWfaXIuXG4iCisiU2l6IGlraXNpbmkgZGUgYmVsaXJ0bWnFn3Npbml6LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogIC0tYWRqdXN0IHZlIC0tbm9hZGpmaWxlIHNlw6dlbmVrbGVyaSBiaXJiaXJpeWxlIMOnZWxpxZ9pci5cbiIKKyJTaXogaWtpc2luaSBkZSBiZWxpcnRtacWfc2luaXouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdpdGggLS1ub2FkamZpbGUsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCittc2dzdHIgIiVzOiAtLW5vYWRqZmlsZSBpbGUgeWEgLS11dGMgeWEgZGEgLS1sb2NhbHRpbWUgYmVsaXJ0aWxtZWxpZGlyXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiWmFtYW4gYXlhcmxhbWEga3VsbGFuxLFtZMSxxZ/EsS4gIFNhYXQgYXlhcmxhbmFtYXouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jay5cbiIKK21zZ3N0ciAiRG9uYW7EsW0gc2FhdGkgc2FkZWNlIHJvb3QgdGFyYWbEsW5kYW4gZGXEn2nFn3RpcmlsZWJpbGlyLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgU3lzdGVtIENsb2NrLlxuIgorbXNnc3RyICJTaXN0ZW0gc2FhdGkgc2FkZWNlIHJvb3QgdGFyYWbEsW5kYW4gZGXEn2nFn3RpcmlsZWJpbGlyLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIGluIHRoZSAiCisia2VybmVsLlxuIgorbXNnc3RyICIiCisiw4dla2lyZGVrdGVraSBEb25hbsSxbSBTYWF0aSBkw7ZuZW1zZWxsaWsgZGXEn2VyaSBzYWRlY2Ugcm9vdCB0YXJhZsSxbmRhbiAiCisiZGXEn2nFn3RpcmlsZWJpbGlyLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBhY2Nlc3MgdGhlIEhhcmR3YXJlIENsb2NrIHZpYSBhbnkga25vd24gbWV0aG9kLlxuIgorbXNnc3RyICJCaWxpbmVuIGhlciBoYW5naSBiaXIgecO2bnRlbWxlIERvbmFuxLFtIFNhYXRpbmUgZXJpxZ9pbGVtaXlvci5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIiIKKyJCaXIgZXJpxZ9pbSB5w7ZudGVtaSBpw6dpbiBhcmFtYSBheXLEsW50xLFsYXLEsW7EsSBnw7ZybWVrIGnDp2luIC0tZGVidWcgc2XDp2VuZcSfaW5pICIKKyJrdWxsYW7EsW4uXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSBLREdIV0NMSyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiS0RHSFdDTEsgemFtYW4gZGXEn2nFn3RpcmlsbWVrIMO8emVyZSDDp2V2cmltIGnDp2luZGUgYmVrbGVuaXlvci5cbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAiS0RHSFdDTEsgaW9jdGwgemFtYW7EsSBva3VtYWRhIGJhxZ9hcsSxc8SxeiIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICJLREdIV0NMSyBpb2N0bCDDp2V2cmltIGnDp2luZGUgemFtYW7EsSBva3VtYWRhIGJhxZ9hcsSxc8SxeiIKKworIzogaHdjbG9jay9rZC5jOjgyIGh3Y2xvY2svcnRjLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWVkIG91dCB3YWl0aW5nIGZvciB0aW1lIGNoYW5nZS5cbiIKK21zZ3N0ciAiWmFtYW7EsSBkZcSfacWfdGlybWVrIGnDp2luIHphbWFuYcWfxLFtxLEgYmVrbGVuaXlvci5cbiIKKworIzogaHdjbG9jay9rZC5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIGZhaWxlZCB0byByZWFkIHRpbWUgZnJvbSAlcyIKK21zZ3N0ciAiaW9jdGwoKSAlcyBkZW4gemFtYW7EsSBva3V5YW1hZMSxIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICJpb2N0bCBLRFNIV0NMSyBiYcWfYXLEsXPEsXoiCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIi9kZXYvdHR5MSB2ZXlhIC9kZXYvdmMvMSBhw6fEsWxhbcSxeW9yIgorCisjOiBod2Nsb2NrL2tkLmM6MTgwCittc2dpZCAiS0RHSFdDTEsgaW9jdGwgZmFpbGVkIgorbXNnc3RyICJLREdIV0NMSyBpb2N0bCBiYcWfYXLEsXPEsXoiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgIiVzIGnDp2luIG9wZW4oKSBpxZ9sZXZpIGhhdGEgdmVyZGkiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gcmVhZCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImlvY3RsKCkgJXMgZGVuIHphbWFuIG9rdW1hZGEgYmHFn2FyxLFzxLF6XG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tICVzIHRvIGNoYW5nZVxuIgorbXNnc3RyICIlcyBkZW4gemFtYW7EsSBkZcSfacWfdGlybWVrIGnDp2luIMOnZXZyaW0gacOnaW5kZSBiZWtsZW5peW9yXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRvZXMgbm90IGhhdmUgaW50ZXJydXB0IGZ1bmN0aW9ucy4gIgorbXNnc3RyICIlcyBpw6dpbiBrZXNtZSBpxZ9sZXZsZXJpIHlvay4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIGZhaWxlZCIKK21zZ3N0ciAicmVhZCgpICVzIGRlbiBzYWF0IGRhcmJlc2kgYmVrbGVya2VuIGhhdGEgdmVyZGkiCisKKyM6IGh3Y2xvY2svcnRjLmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICJzZWxlY3QoKSAlcyBkZW4gc2FhdCBkYXJiZXNpIGJla2xlcmtlbiBoYXRhIHZlcmRpIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIHRpbWVkIG91dFxuIgorbXNnc3RyICJzZWxlY3QoKSAlcyBkZW4gc2FhdCBkYXJiZXNpIGJla2xlcmtlbiB6YW1hbmHFn8SxbcSxbmEgdcSfcmFkxLFcbiIKKworIzogaHdjbG9jay9ydGMuYzozMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9mZiB1cGRhdGUgaW50ZXJydXB0cyBmYWlsZWQiCittc2dzdHIgImlvY3RsKCkgJXMgZGVuIGfDvG5jZWxsZW1lIGtlc21lbGVyaW5pIGR1cmR1cmFtYWTEsSIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgImlvY3RsKCkgJXMgZGVuIGfDvG5jZWxsZW1lIGtlc21lbGVyaW5pIGHDp21hc8SxIGdlcmVraXJrZW4gaGF0YSB2ZXJkaSIKKworIzogaHdjbG9jay9ydGMuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byBzZXQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJpb2N0bCgpICVzIGRlbiB6YW1hbsSxIGF5YXJsYXlhbWFkxLEuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiaW9jdGwoJXMpIGJhxZ9hcsSxbGTEsS5cbiIKKworIzogaHdjbG9jay9ydGMuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3BlbiBvZiAlcyBmYWlsZWQiCittc2dzdHIgIiVzIGHDp8SxbGFtYWTEsSIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisiw4dla2lyZGVrdGVraSBkw7ZuZW1zZWxsaWsgZGXEn2VyaW5pIGRlxJ9pxZ90aXJtZWsgacOnaW4gYXlnxLF0IMO2emVsIGRvc3lhc8SxICVzICIKKyLDvHplcmluZGVuIExpbnV4ICdydGMnIGF5Z8SxdCBzw7xyw7xjw7xzw7xuZSBlcmnFn2lsbWVsaWRpci4gICBCdSBkb3N5YSBzaXN0ZW1kZSAiCisieW9rLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxNSBod2Nsb2NrL3J0Yy5jOjQ1OQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiJXMgYcOnxLFsYW3EsXlvciIKKworIzogaHdjbG9jay9ydGMuYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1JFQUQpIHRvICVzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoUlRDX0VQT0NIX1JFQUQpICVzIGnDp2luIGJhxZ9hcsSxc8SxeiIKKworIzogaHdjbG9jay9ydGMuYzo0MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2UgaGF2ZSByZWFkIGVwb2NoICVsZCBmcm9tICVzIHdpdGggUlRDX0VQT0NIX1JFQUQgaW9jdGwuXG4iCittc2dzdHIgIlJUQ19FUE9DSF9SRUFEIGlvY3RsIGlsZSBkw7ZuZW1zZWxsaWsgJWxkICVzIGRlbiBva3VuYWJpbGlyLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIiIKKyJEw7ZuZW1zZWxsaWsgZGXEn2VyaW5pbiBiYcWfbGFuZ8SxY8SxIDE5MDAgecSxbMSxbmRhbiDDtm5jZSBvbGFtYXouICAlbGQgaXN0ZW5kaS5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0dGluZyBlcG9jaCB0byAlbGQgd2l0aCBSVENfRVBPQ0hfU0VUIGlvY3RsIHRvICVzLlxuIgorbXNnc3RyICJSVENfRVBPQ0hfU0VUIGlvY3RsIGlsZSBkw7ZuZW1zZWxsaWsgJWxkICVzIGRlbiBheWFybGFuxLF5b3IuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGRldmljZSBkcml2ZXIgZm9yICVzIGRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCittc2dzdHIgIiVzIGnDp2luIMOnZWtpcmRlayBheWfEsXQgc8O8csO8Y8O8c8O8bmRlIFJUQ19FUE9DSF9TRVQgaW9jdGwgeW9rLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgImlvY3RsKFJUQ19FUE9DSF9TRVQpICVzIGnDp2luIGhhdGEgdmVyZGkiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZXhlYyAlczogJW0iCittc2dzdHIgIiVzOiAlcyDDp2FsxLHFn3TEsXLEsWxhbcSxeW9yOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCittc2dzdHIgImJhxZ9sYXRtYSBkaXpnZXNpIGnDp2luIHllciBheXLEsWxhbcSxeW9yIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIgorbXNnc3RyICJ6YW1hbiBhxZ/EsW3EsSBkZcSfZXJpIGhhdGFsxLE6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHNwZWVkOiAlcyIKK21zZ3N0ciAiaGF0YWzEsSBoxLF6OiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI3Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAiYWxtYcWfxLFrIGjEsXogw6dvayB5w7xrc2VrIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2RldjogY2hkaXIoKSBmYWlsZWQ6ICVtIgorbXNnc3RyICIvZGV2OiBjaGRpcigpIGJhxZ9hcsSxc8SxejogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2LyVzOiBub3QgYSBjaGFyYWN0ZXIgZGV2aWNlIgorbXNnc3RyICIvZGV2LyVzOiBiaXIga2FyYWt0ZXIgYXlnxLF0xLEgZGXEn2lsIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIvZGV2LyVzOiBzdGFuZGFydCBnaXJkaSBvbGFyYWsgYcOnxLFsYW3EsXlvcjogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiCittc2dzdHIgIiVzOiBva3UveWF6IGnDp2luIGHDp8SxayBkZcSfaWwiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZHVwIHByb2JsZW06ICVtIgorbXNnc3RyICIlczogw6dvxJ9hbHRtYSBzb3J1bnU6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo5NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlciIKK21zZ3N0ciAia3VsbGFuxLFjxLEiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VycyIKK21zZ3N0ciAia3VsbGFuxLFjxLEiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQ6ICVtIgorbXNnc3RyICIlczogb2t1bmFuOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW5wdXQgb3ZlcnJ1biIKK21zZ3N0ciAiJXM6IGdpcmRpIGdlw6dlcnNpeiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTIwNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiS3VsbGFuxLFtxLE6ICVzIFstaGlMbXddIFstbCBnaXJpxZ8sX3V5Z3VsYW1hc8SxXSBbLXQgemFtYW5BxZ/EsW3EsV1cbiIKKyIgICAgICAgICAgICAgIFstSSBiYcWfbGF0bWFEaXpnZXNpXSBbLUggZ2lyacWfX21ha2luYXPEsV0gYmHEn2xhbnTEsV9oxLF6xLEsLi4uXG4iCisiICAgICAgICAgICAgICBzYXTEsXIgW3Rlcm1pbmFsVMO8csO8XVxuIgorIiAgICAgICB5YSBkYSAgWy1oaUxtd10gWy1sIGdpcmnFnyxfdXlndWxhbWFzxLFdIFstdCB6YW1hbkHFn8SxbcSxXVxuIgorIiAgICAgICAgICAgICAgWy1JIGJhxZ9sYXRtYURpemdlc2ldIFstSCBnaXJpxZ9fbWFraW5hc8SxXSBzYXTEsXJcbiIKKyIgICAgICAgICAgICAgIGJhxJ9sYW50xLFfaMSxesSxLC4uLiBbdGVybWluYWxUw7xyw7xdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImdpcmnFnzogYmVsbGVrIGF6LCBnaXJpxZ8geWFwxLFsYW1heWFiaWxpclxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAidHR5Y2xhc3MgacOnaW4gYmVsbGVrIGF5csSxbGFtYWTEsSIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTMKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCittc2dzdHIgImdycGxpc3QgacOnaW4gYmVsbGVrIGF5csSxbGFtYWTEsSIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiJXMgw7x6ZXJpbmRlbiAlcyBtYWtpbmFzxLFuYSBnaXJpxZ9lIMO2bnRhbsSxbWzEsSBvbGFyYWsgaXppbiB2ZXJpbG1lZGkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICIlcyDDvHplcmluZGVuICVzIG1ha2luYXPEsW5hIGdpcmnFn2UgaXppbiB2ZXJpbG1lZGkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IFNpeiAoJWQpIHlva3N1bnV6LlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogXCIlc1wiIHlvay5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0NSBsb2dpbi11dGlscy9jaHNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4gb25seSBjaGFuZ2UgbG9jYWwgZW50cmllczsgdXNlIHlwJXMgaW5zdGVhZC5cbiIKK21zZ3N0ciAiJXM6IHNhZGVjZSB5ZXJlbCBnaXJkaWxlcmkgZGXEn2nFn3RpcmViaWxpcjsgeWVyaW5lIHlwJXMga3VsbGFuxLFuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU2IGxvZ2luLXV0aWxzL2Noc2guYzoxNDIKK21zZ2lkICJVbmtub3duIHVzZXIgY29udGV4dCIKK21zZ3N0ciAiS3VsbGFuxLFjxLEgYmHEn2xhbcSxIGJpbGlubWl5b3IiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgZmluZ2VyIGluZm8gb2YgJXNcbiIKK21zZ3N0ciAiIgorIiVzOiAlcywgJXMga3VsbGFuxLFjxLFzxLFuxLFuIGtpxZ9pc2VsIGJpbGdpbGVyaW5pIGRlxJ9pxZ90aXJtZXllIHlldGtpbGkgZGXEn2lsXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiVzOiAvZXRjL3Bhc3N3ZCBpw6dpbiDDtm50YW7EsW1sxLEgYmHEn2xhbSBiZWxpcnRpbGVtaXlvciIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBmaW5nZXIgaW5mb3JtYXRpb24gZm9yICVzLlxuIgorbXNnc3RyICIlcyBpw6dpbiBrdWxsYW7EsWPEsSBiaWxnaWxlcmkgZGXEn2nFn3RpcmlsaXlvci5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJsb2dpbjogUEFNIGhhdGFzxLEsIMOnxLFrxLFsxLF5b3I6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTIgbG9naW4tdXRpbHMvY2hzaC5jOjIxMSBsb2dpbi11dGlscy9sb2dpbi5jOjgyNworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6NzkgbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0MCBtb3VudC9sb21vdW50LmM6NzQyCisjOiBtb3VudC9sb21vdW50LmM6NzQ1Cittc2dpZCAiUGFzc3dvcmQ6ICIKK21zZ3N0ciAiUGFyb2xhOiAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTUgbG9naW4tdXRpbHMvY2hzaC5jOjIxNAorbXNnaWQgIkluY29ycmVjdCBwYXNzd29yZC4iCittc2dzdHIgIlBhcm9sYSB5YW5sxLHFny4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJLdWxsYW7EsWPEsSBiaWxnaWxlcmkgZGXEn2nFn21lZGkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIkt1bGxhbsSxbcSxOiAlcyBbIC1mIGFkLXNveWFkxLEgXSBbIC1vIGnFnyB5ZXJpIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJbIC1wIG9mZmljZS1waG9uZSBdXG4iCisiXHRbIC1oIGhvbWUtcGhvbmUgXSAiCittc2dzdHIgIiIKKyJbIC1wIGnFny10ZWxlZm9udSBdXG4iCisiXHRbIC1oIGV2LXRlbGVmb251IF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc5Cittc2dpZCAiT2ZmaWNlIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozODAKK21zZ2lkICJIb21lIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkLEsXJha8SxbGTEsS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAiYWxhbiDDp29rIHV6dW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJyVjJyBrdWxsYW7EsWxhbWF6LlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvbnRyb2wgY2hhcmFjdGVycyBhcmUgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIktvbnRyb2wga2FyYWt0ZXJsZXJpIGt1bGxhbsSxbGFtYXouXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIkt1bGxhbsSxY8SxIGJpbGdpbGVyaSBkZcSfacWfdGlyaWxlbWVkaS4gRGFoYSBzb25yYSB0ZWtyYXIgZGVuZXlpbi5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiS3VsbGFuxLFjxLEgYmlsZ2lsZXJpIGRlxJ9pxZ90aXJpbGRpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcywgJXMga3VsbGFuxLFjxLFzxLFuxLFuIGthYnXEn3VudSBkZcSfacWfdGlybWV5ZSB5ZXRraWxpIGRlxJ9pbFxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogUnVubmluZyBVSUQgZG9lc24ndCBtYXRjaCBVSUQgb2YgdXNlciB3ZSdyZSBhbHRlcmluZywgc2hlbGwgY2hhbmdlICIKKyJkZW5pZWRcbiIKK21zZ3N0ciAiIgorIiVzOiBrYWJ1xJ91biBrdWxsYW7EsWPEsSBraW1sacSfaSBkZcSfacWfdGlyZGnEn2ltaXoga3VsbGFuxLFjxLEga2ltbGlrbGVcbiIKKyJheW7EsSBkZcSfaWwsIGthYnVrIGRlxJ9pxZ9pa2xpxJ9pIGthYnVsIGVkaWxtZWRpXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiVzOiBCdSBrYWJ1ayAvZXRjL3NoZWxscyBkb3N5YXPEsW5kYSB5b2ssIGthYnVrIGRlxJ9pxZ90aXJpbGVtZWRpXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgc2hlbGwgZm9yICVzLlxuIgorbXNnc3RyICIlcyBpw6dpbiBrYWJ1ayBkZcSfacWfdGlyaWxpeW9yLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJZZW5pIGthYnVrIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJLYWJ1ayBkZcSfacWfdGlyaWxtZWRpLFxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIkthYnVrIGRlxJ9pxZ90aXJpbGVtZWRpLiBEYWhhIHNvbnJhIHRla3JhciBkZW5leWluLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIGNoYW5nZWQuXG4iCittc2dzdHIgIkthYnVrIGRlxJ9pxZ90aXJpbGRpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorIkt1bGxhbsSxbcSxOiAlcyBbIC1zIGthYnVrIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsga3VsbGFuxLFjxLFfaXNtaSBdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNoZWxsIG11c3QgYmUgYSBmdWxsIHBhdGggbmFtZS5cbiIKK21zZ3N0ciAiJXM6IGthYnVrIHRhbSBiaXIgZG9zeWEgeW9sdSBpw6dlcm1lbGkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiB5b2suXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgZXhlY3V0YWJsZS5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiDDp2FsxLHFn3TEsXLEsWxhYmlsaXIgZGXEn2lsLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogJyVjJyBrdWxsYW7EsWxhbWF6LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogS29udHJvbCBrYXJha3Rlcmxlcmkga3VsbGFuxLFsYW1hei5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NSBsb2dpbi11dGlscy9jaHNoLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICJVeWFyxLE6IFwiJXNcIiAvZXRjL3NoZWxscyBkb3N5YXPEsW5kYSB5b2suXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICIlczogXCIlc1wiICAvZXRjL3NoZWxscyBkb3N5YXPEsW5kYSB5b2suXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVc2UgLWwgb3B0aW9uIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICIlczogbGlzdGV5aSBnw7ZybWVrIGnDp2luICAtbCBzZcOnZW5lxJ9pbmkga3VsbGFuxLFuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNlICVzIC1sIHRvIHNlZSBsaXN0LlxuIgorbXNnc3RyICJMaXN0ZXlpIGfDtnJtZWsgacOnaW4gJXMgLWwga3VsbGFuxLFuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGtub3duIHNoZWxscy5cbiIKK21zZ3N0ciAiS3VsbGFuxLFsYWJpbGVjZWsga2FidWtsYXIgYmVsaXJsZW5tZW1pxZ8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2lzbG9jYWwuYzo4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIG9wZW4gJXMgZm9yIHJlYWRpbmcsIGV4aXRpbmcuIgorbXNnc3RyICIlcyBva3VtYWsgacOnaW4gYcOnxLFsYW3EsXlvciIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICIiCisiS3VsbGFuxLFtxLE6IGxhc3QgWy0jXSBbLWYgZG9zeWFdIFstdCB0dHldIFstaCBtYWtpbmFBZMSxXSBba3VsbGFuxLFjxLEgLi4uXVxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzAyCittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIiAgxZ91IGFuIHNpc3RlbWRlIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJ3dG1wIGJlZ2lucyAlcyIKK21zZ3N0ciAiIgorIlxuIgorInd0bXAga2F5xLF0bGFyxLFuxLFuIGJhxZ9sYW5nxLFjxLE6ICVzIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzgwIGxvZ2luLXV0aWxzL2xhc3QuYzozOTggbG9naW4tdXRpbHMvbGFzdC5jOjQ0OQorbXNnaWQgImxhc3Q6IG1hbGxvYyBmYWlsdXJlLlxuIgorbXNnc3RyICJsYXN0OiBiZWxsZWsgYXlyxLFsYW1hZMSxLlxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgImxhc3Q6IGdldGhvc3RuYW1lIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisiZHVyZHVydWxkdTogJTEwLjEwcyAlNS41cyBcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6IGNhbid0IHJlb3BlbiB0dHk6ICVzIgorbXNnc3RyICLDlkzDnE1Dw5xMOiB0dHkgdGVrcmFyIGHDp8SxbGFtxLF5b3I6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6ICVzIGlzIG5vdCBhIHRlcm1pbmFsIgorbXNnc3RyICIlcyBiaXIgYmxvay3DtnplbCBheWfEsXQgZGXEn2lsIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIzOAorbXNnaWQgIkZBVEFMOiBiYWQgdHR5IgorbXNnc3RyICLDlkzDnE1Dw5xMOiB0dHkgaGF0YWzEsSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgImxvZ2luOiAtaCBzYWRlY2Ugcm9vdCB0YXJhZsSxbmRhbiBrdWxsYW7EsWxhYmlsaXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgIkt1bGxhbsSxbcSxOiBsb2dpbiBbLWZwXSBba3VsbGFuxLFjxLFdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiUEFNIGJhxZ9sYXTEsWxhbWFkxLE6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgIkt1bGxhbsSxY8SxIGlzbWk6ICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOICVkIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiJTMkcyAlMiRzIMOcWkVSxLBOREVOICUxJGQgREVGQSBHxLBSRU1FRMSwLCAlNCRzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTG9naW4gaW5jb3JyZWN0XG4iCisiXG4iCittc2dzdHIgIiIKKyJHaXJpxZ8gYmHFn2FyxLFzxLF6XG4iCisiXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRPTyBNQU5ZIExPR0lOIFRSSUVTICglZCkgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICIlMyRzICUyJHMgw5xaRVLEsE5ERU4gw4dPSyBGQVpMQSBHxLBSxLDFniBERU5FRMSwICglMSRkKSwgJTQkcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOIFNFU1NJT04gRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICIlcyBNQUvEsE5BU0lOQSAlcyDEsMOHxLBOIEfEsFLEsMWeIE9UVVJVTVUgS0FQQU5ESSwgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorIkdpcmnFnyBiYcWfYXLEsXPEsXpcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTAgbG9naW4tdXRpbHMvbG9naW4uYzo2OTcgbG9naW4tdXRpbHMvbG9naW4uYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlc3Npb24gc2V0dXAgcHJvYmxlbSwgYWJvcnQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJPdHVydW0gYXlhcmxhcsSxIHNvcnVudSwgw6fEsWvEsWzEsXlvci5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiJXMgacWfbGV2aW5pbiAlZC4gc2F0xLFyxLFuZGEga3VsbGFuxLFjxLEgaXNtaSB5b2sgKE5VTEwpLiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB1c2VyIG5hbWUgXCIlc1wiIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIiIKKyIlMiRzIGnFn2xldmluaW4gJTMkZC4gc2F0xLFyxLFuZGEga3VsbGFuxLFjxLEgaXNtaSBcIiUxJHNcIiBnZcOnZXJzaXouIMOHxLFrxLFsxLF5b3IuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJsb2dpbjogQmVsbGVrIHlldGVyc2l6XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzYxCittc2dpZCAiSWxsZWdhbCB1c2VybmFtZSIKK21zZ3N0ciAiS3VsbGFuxLFjxLEgaXNtaSBrdXJhbGTEscWfxLEiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvZ2luIHJlZnVzZWQgb24gdGhpcyB0ZXJtaW5hbC5cbiIKK21zZ3N0ciAiJXMgacOnaW4gYnUgdGVybWluYWxkZW4gZ2lyacWfIHJlZGRlZGlsZGkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgRlJPTSAlcyBPTiBUVFkgJXMiCittc2dzdHIgIiVzIMSww4fEsE4gJXMgTUFLxLBOQVNJTkRBTiAlcyBURVJNxLBOQUzEsE5FIEfEsFLEsMWeIFJFRERFRMSwTETEsCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiCittc2dzdHIgIiVzIMSww4fEsE4gJXMgVEVSTcSwTkFMxLBORSBHxLBSxLDFniBSRURERUTEsExExLAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICJHaXJpxZ8gYmHFn2FyxLFzxLF6XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgIiVzIMOcWkVSxLBOREVOICVzIMSwU03EsFlMRSBESUFMVVAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5OQorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCittc2dzdHIgIiVzIMOcWkVSxLBOREVOICVzIE1BS8SwTkFTSU5BIFJPT1QgR8SwUsSwxZ7EsCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMiCittc2dzdHIgIiVzIMOcWkVSxLBOREUgUk9PVCBHxLBSxLDFnsSwIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMgRlJPTSAlcyIKK21zZ3N0ciAiJXMgw5xaRVLEsE5ERU4gJXMsICVzIE1BS8SwTkFTSU5BIEfEsFJExLAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwOAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyIKK21zZ3N0ciAiJXMgw5xaRVLEsE5ERU4gJXMgU8SwU1RFTUUgR8SwUkTEsCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG5ldyBtYWlsLlxuIgorbXNnc3RyICJZZW5pIGUtcG9zdGFuxLF6IHZhci5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG1haWwuXG4iCittc2dzdHIgIkUtcG9zdGFuxLF6IHZhci5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICJsb2dpbjogYXN0IHPDvHJlw6cgb2x1xZ90dXJtYSBiYcWfYXLEsXPEsXo6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVElPQ1NDVFRZIGZhaWxlZDogJW0iCittc2dzdHIgIlRJT0NTQ1RUWSBiYcWfYXLEsXPEsXo6ICVtIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjgKK21zZ2lkICJzZXR1aWQoKSBmYWlsZWQiCittc2dzdHIgInNldHVpZCgpIGJhxZ9hcsSxc8SxeiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGRpcmVjdG9yeSAlcyFcbiIKK21zZ3N0ciAiJXMgZGl6aW5pIHlvayFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2dpbmcgaW4gd2l0aCBob21lID0gXCIvXCIuXG4iCittc2dzdHIgIkV2IGRpemluaSBcIi9cIiBpbGUgZ2lyacWfLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICJsb2dpbjoga2FidWsgYmV0acSfaSBpw6dpbiBiZWxsZWsgeWV0ZXJzaXouXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogY291bGRuJ3QgZXhlYyBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorbXNnc3RyICJsb2dpbjoga2FidWsgYmV0acSfaSDDp2FsxLHFn3TEsXLEsWxhbWFkxLE6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIHNoZWxsOiAlcy5cbiIKK21zZ3N0ciAibG9naW46IGthYnVrIHlvazogJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJXMgbG9naW46ICIKK21zZ3N0ciAiIgorIlxuIgorIiVzIGt1bGxhbsSxY8SxIGlzbWk6ICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWUgbXVjaCB0b28gbG9uZy5cbiIKK21zZ3N0ciAiS3VsbGFuxLFjxLEgYWTEsW7EsXogw6dvayB1enVuLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICLEsFPEsE0gw6dvayB1enVuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoICctJy5cbiIKK21zZ3N0ciAia3VsbGFuxLFjxLEgaXNpbWxlcmkgYmlyICctJyBpbGUgYmHFn2xheWFtYXouXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBiYXJlIGxpbmVmZWVkcy5cbiIKK21zZ3N0ciAiw6dvayBmYXpsYSBib8WfIGdlw6dpbGRpLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjEKK21zZ2lkICJFWENFU1NJVkUgbGluZWZlZWRzIgorbXNnc3RyICJIQURExLBOREVOIEZBWkxBIGJvxZ8gZ2lyacWfIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiR2lyacWfICVkIHNhbml5ZSBzb25yYSB6YW1hbiBhxZ/EsW3EsW5hIHXEn3JhZMSxXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGxvZ2luOiAlLipzICIKK21zZ3N0ciAiU29uIGdpcmnFnzogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAic3VsYXLEsW5kYSAlLipzIG1ha2luYXPEsW5hIHlhcMSxbGTEsVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib24gJS4qc1xuIgorbXNnc3RyICJzdWxhcsSxbmRhICUuKnMga29uc29sdW5hIHlhcMSxbGTEsVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gRkFJTFVSRSBGUk9NICVzLCAlcyIKK21zZ3N0ciAiJXMgTUFLxLBOQVNJTkRBTiAlcyBHxLBSxLDFnsSwIEJBxZ5BUklTSVoiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAiJXMgw5xaRVLEsE5ERU4gJXMgR8SwUsSwxZ7EsCBCQcWeQVJJU0laIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgRlJPTSAlcywgJXMiCittc2dzdHIgIiUzJHMgJTIkcyBNQUvEsE5BU0lOREFOICUxJGQgS0VSRSBHxLBSRU1FRMSwIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICIlMyRzICUyJHMgw5xaRVLEsE5ERU4gJTEkZCBLRVJFIEfEsFJFTUVExLAiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyB5XG4iCittc2dzdHIgIkJhxZ9rYWxhcsSxIHXDp2JpcmltZSB5YXphYmlsaXIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBuXG4iCittc2dzdHIgIkJhxZ9rYWxhcsSxIHXDp2JpcmltZSB5YXphbWF6LlxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBtZXNnIFt5IHwgbl1cbiIKK21zZ3N0ciAiS3VsbGFuxLFtxLE6IG1lc2cgW3kgfCBuXVxuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo5OQorbXNnaWQgIm5ld2dycDogV2hvIGFyZSB5b3U/IgorbXNnc3RyICJuZXdncnA6IFNpeiBraW0gc2luaXo/IgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMDcgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTIxCittc2dpZCAibmV3Z3JwOiBzZXRnaWQiCittc2dzdHIgIm5ld2dycDogc2V0Z2lkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMTQgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE2Cittc2dpZCAibmV3Z3JwOiBObyBzdWNoIGdyb3VwLiIKK21zZ3N0ciAibmV3Z3JwOiBCw7Z5bGUgYmlyIGdydXAgeW9rLiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiBFcmnFn2ltIGVuZ2VsbGVuZGkiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgIkthYnVrIHlvayIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCittc2dzdHIgIkt1bGxhbsSxbcSxOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCtkYWtpa2FdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTM0Cittc2dpZCAiU2h1dGRvd24gcHJvY2VzcyBhYm9ydGVkIgorbXNnc3RyICJLYXBhdG1hIGnFn2xlbWkgZHVyZHVydWxkdSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9ubHkgcm9vdCBjYW4gc2h1dCBhIHN5c3RlbSBkb3duLlxuIgorbXNnc3RyICIlczogU2FkZWNlIHJvb3Qgc2lzdGVtaSBrYXBhdGFiaWxpci5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIkTDvG5lIGthZGFyIGJla2xleWViaWxlY2VrIG1pc2luaXo/XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzEwCittc2dpZCAiZm9yIG1haW50ZW5hbmNlOyBib3VuY2UsIGJvdW5jZSIKK21zZ3N0ciAidGXFn2hpcyBpw6dpbjsgesSxcGxhLCB6xLFwbGEiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiU2lzdGVtIDUgZGFraWtheWEga2FkYXIga2FwYW7EsXlvciIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNDMKK21zZ2lkICJMb2dpbiBpcyB0aGVyZWZvcmUgcHJvaGliaXRlZC4iCittc2dzdHIgIkJ1IG5lZGVubGUgZ2lyacWfbGVyIHlhc2FrbGFuZMSxLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVib290ZWQgYnkgJXM6ICVzIgorbXNnc3RyICIlcyB0YXJhZsSxbmRhbiB5YWVuaWRlbiBiYcWfbGF0xLFsZMSxOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiJXMgdGFyYWbEsW5kYW4ga2FwYXTEsWxkxLE6ICVzIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzMgorbXNnaWQgIiIKKyJcbiIKKyJXaHkgYW0gSSBzdGlsbCBhbGl2ZSBhZnRlciByZWJvb3Q/IgorbXNnc3RyICIiCisiXG4iCisiVGVrcmFyIGfDtnLDvMWfbWVrIMO8emVyZS4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisixZ5pbWRpIG1ha2luYW7EsW4gZW5lcmppc2luaSBrZXNlYmlsaXJzaW5pei4uLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBrZXJuZWwgcG93ZXItb2ZmIGZhY2lsaXR5Li4uXG4iCittc2dzdHIgIsOHZWtpcmRla3Rla2kgZW5lcmppIGthcGF0bWEgc2lzdGVtaSDDp2HEn3LEsWzEsXlvci4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIkVuZXJqaSBrYXBhdMSxbMSxcmtlbiBoYXRhIG9sdcWfdHVcdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCittc2dzdHIgIlwiJXNcIiB1eWd1bGFtYXPEsSDDp2FsxLHFn3TEsXLEsWzEsXlvciAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nXHQlc1xuIgorbXNnc3RyICLDh2FsxLHFn3TEsXJtYSBzxLFyYXPEsW5kYSBoYXRhXHQlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJVUkdFTlQ6IGJyb2FkY2FzdCBtZXNzYWdlIGZyb20gJXM6IgorbXNnc3RyICLDlk5FTUzEsDogJXMnZGVuIHV5YXLEsToiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiCittc2dzdHIgIlNpc3RlbSAlZCBzYWF0ICVkIGRha2lrYXlhIGthZGFyIGthcGFuxLF5b3IiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICJTaXN0ZW0gMSBzYWF0ICVkIGRha2lrYXlhIGthZGFyIGthcGFuxLF5b3IiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiU2lzdGVtICVkIGRha2lrYXlhIGthZGFyIGthcGFuxLF5b3JcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBtaW51dGVcbiIKK21zZ3N0ciAiU2lzdGVtIDEgZGFraWtheWEga2FkYXIga2FwYW7EsXlvclxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBJTU1FRElBVEVMWSFcbiIKK21zZ3N0ciAiU2lzdGVtIMWeVSBBTkRBIGthcGFuxLF5b3IhXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Li4uICVzIC4uLlxuIgorbXNnc3RyICJcdC4uLiAlcyAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzAKK21zZ2lkICJDYW5ub3QgZm9yayBmb3Igc3dhcG9mZi4gU2hydWchIgorbXNnc3RyICJzd2Fwb2ZmIGFzdCBzw7xyZcOnIG9sYW3EsXlvci4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTc4Cittc2dpZCAiQ2Fubm90IGV4ZWMgc3dhcG9mZiwgaG9waW5nIHVtb3VudCB3aWxsIGRvIHRoZSB0cmljay4iCittc2dzdHIgInN3YXBvZmYgw6dhbMSxxZ90xLFyxLFsYW3EsXlvciwgdW1vdW50IGRlbmVuZWNlay4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAidW1vdW50IGFzdCBzw7xyZcOnIG9sYW3EsXlvciwgZG/En3J1ZGFuIMOnYWzEscWfdMSxcsSxbG1hc8SxIGRlbmVuZWNlay4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICIlcyDDp2FsxLHFn3TEsXLEsWxhbcSxeW9yLiB1bW91bnQgZGVuZW5lY2VrLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgInVtb3VudCDDp2FsxLHFn3TEsXLEsWxhbcSxeW9yLCB1bW91bnQnZGFuIHZhemdlw6dpbGl5b3IuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxNQorbXNnaWQgIlVubW91bnRpbmcgYW55IHJlbWFpbmluZyBmaWxlc3lzdGVtcy4uLiIKK21zZ3N0ciAiS2FsYW4gZG9zeWEgaXN0ZW1sZXJpIGF5csSxbMSxeW9yLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJzaHV0ZG93bjogQ291bGRuJ3QgdW1vdW50ICVzOiAlc1xuIgorbXNnc3RyICJzaHV0ZG93bjogJXMgYXlyxLFsYW1hZMSxOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICJUZWsga3VsbGFuxLFjxLFsxLEga2lwIGJhxZ9sYXTEsWzEsXlvci5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzNgorbXNnaWQgImV4ZWMgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgIlRlayBrdWxsYW7EsWPEsWzEsSBrYWJ1ayDDp2FsxLHFn3TEsXLEsWxhbWFkxLFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjE0MAorbXNnaWQgImZvcmsgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgIlRlayBrdWxsYW7EsWPEsWzEsSBrYWJ1xJ91biBhc3Qgc8O8cmVjZSBhbMSxbmFtYWTEsVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjA4Cittc2dpZCAiZXJyb3Igb3BlbmluZyBmaWZvXG4iCittc2dzdHIgImZpZm8gYcOnxLFsxLFya2VuIGhhdGFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIxMgorbXNnaWQgImVycm9yIHNldHRpbmcgY2xvc2Utb24tZXhlYyBvbiAvZGV2L2luaXRjdGwiCittc2dzdHIgIi9kZXYvaW5pdGN0bCDDvHN0w7xuZGUgY2xvc2Utb24tZXhlYyBheWFybGFuxLFya2VuIGhhdGEiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNTkKK21zZ2lkICJlcnJvciBydW5uaW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICJ1w6cgdXlndWxhbWEgw6dhbMSxxZ90xLFyxLFsxLFya2VuIGhhdGFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI2MworbXNnaWQgImVycm9yIGZvcmtpbmcgZmluYWxwcm9nXG4iCittc2dzdHIgInXDpyB1eWd1bGFtYSBhc3Qgc8O8cmVjZSBhbMSxbsSxcmtlbiBoYXRhXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDUKK21zZ2lkICIiCisiXG4iCisiV3JvbmcgcGFzc3dvcmQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQYXJvbGEgeWFubMSxxZ8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MTgKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJkb3N5YSB5b2x1IGR1cnVtIGJpbGdpbGVyaSBhbMSxbmFtYWTEsVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDI2Cittc2dpZCAic3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICJkb3N5YSB5b2x1IGR1cnVtIGJpbGdpbGVyaSBhbMSxbmFtYWTEsVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgImRpemluZSBnZcOnaWxlbWVkaVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTAxCisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3Bhd25pbmc6IFwiJXNcIiB0b28gZmFzdDogcXVlbmNoaW5nIGVudHJ5XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwOQorbXNnaWQgImZvcmsgZmFpbGVkXG4iCittc2dzdHIgImFzdCBzw7xyZcOnIG9sdcWfdHVydWxhbWFkxLFcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU0MCB0ZXh0LXV0aWxzL21vcmUuYzoxNjYzCittc2dpZCAiZXhlYyBmYWlsZWRcbiIKK21zZ3N0ciAiw6dhbMSxxZ90xLFybWEgYmHFn2FyxLFzxLF6XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NjQKK21zZ2lkICJjYW5ub3Qgb3BlbiBpbml0dGFiXG4iCittc2dzdHIgImluaXR0YWIgYcOnxLFsYW3EsXlvclxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NjMxCittc2dpZCAibm8gVEVSTSBvciBjYW5ub3Qgc3RhdCB0dHlcbiIKK21zZ3N0ciAiWWEgVEVSTSBib8WfIHlhIGRhIHR0eSBkdXJ1bSBiaWxnaWxlcmkgYWzEsW5hbcSxeW9yXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5MzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJzZXJ2aXMgZHVyZHVydWx1cmtlbiBoYXRhOiBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAic2VydmlzIGR1cmR1cnVsdXJrZW4gaGF0YTogXCIlc1wiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJ1w6cgdXlndWxhbWEgw6dhbMSxxZ90xLFyxLFsxLFya2VuIGhhdGFcbiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6NzUKK21zZ2lkICJ0b28gbWFueSBpb3YncyAoY2hhbmdlIGNvZGUgaW4gd2FsbC90dHltc2cuYykiCittc2dzdHIgImlvdiBzYXnEsXPEsSDDp29rIGZhemxhICh3YWxsL3R0eW1zZy5jIGRlIGtvZHUgZGXEn2nFn3RpcikiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImV4Y2Vzc2l2ZWx5IGxvbmcgbGluZSBhcmciCittc2dzdHIgInNhdMSxciBhcmfDvG1hbsSxIGdlcmXEn2luZGVuIHV6dW4iCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAiYXN0IHPDvHJlw6cgb2x1xZ90dXJ1bGFtxLF5b3IiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJmb3JrOiAlcyIKK21zZ3N0ciAiZm9yazogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQkFEIEVSUk9SIgorbXNnc3RyICIlczogQsSwTMSwTk1FWUVOIEhBVEEiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiBwYXJvbGEgZG9zeWFzxLEgbWXFn2d1bC5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIGdyb3VwIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiJXM6IGdydXAgZG9zeWFzxLEgbWXFn2d1bC5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiJXM6ICVzIGRvc3lhc8SxIG1lxZ9ndWwuICglcyBoYXrEsXIpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiVzOiAlcyBpw6dpbiBiYcSfIG9sdcWfdHVydWxhbcSxeW9yOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBnZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiAlcyBpw6dpbiBiYcSfbGFtIGFsxLFuYW3EsXlvciIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczogJXMgacOnaW4gYmHEn2xhbSBiZWxpcmxlbmVtaXlvciIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiIgorIiVzOiAlcyBpw6dpbiBiYcSfIGthbGTEsXLEsWxhbcSxeW9yOiAlcyAoZGXEn2nFn2lrbGlrbGVyaW5peiBoYWxhICVzIGnDp2luZGUpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiVzOiBBc3Qgc8O8cmXDpyBvbHXFn3R1cnVsYW3EsXlvclxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiJXM6ICVzIGRlxJ9pxZ9tZWRpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIGNoYW5nZXMgbWFkZVxuIgorbXNnc3RyICIlczogeWFwxLFsYW4gZGXEn2nFn2lrbGlrIHlva1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IGdyb3VwcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiQnUgc2lzdGVtZGUgZ8O2bGdlIGdydXBsYXIga3VsbGFuxLFsxLF5b3IuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICJCdSBzaXN0ZW1kZSBnw7ZsZ2UgcGFyb2xhbGFyIGt1bGxhbsSxbMSxeW9yLlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldvdWxkIHlvdSBsaWtlIHRvIGVkaXQgJXMgbm93IFt5L25dPyAiCittc2dzdHIgIiVzIGRvc3lhc8SxbsSxIMWfaW1kaSBkw7x6ZW5sZW1layBpc3RlciBtaXNpbml6IFtlL2hdPyAiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICJLdWxsYW7EsW3EsTogJXMgW2Rvc3lhXVxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBvcGVuIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogZ2XDp2ljaSBkb3N5YSBhw6fEsWxhbcSxeW9yLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyb2FkY2FzdCBNZXNzYWdlIGZyb20gJXNAJXMiCittc2dzdHIgIiVzQCVzIGRlbiBVeWFyxLEiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiAlcyBva3VuYW1heWFjYWsgLSBzdGRHIGt1bGxhbsSxbi5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiJXM6ICVzIG9rdW5hbcSxeW9yLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogZ2XDp2ljaSBkb3N5YSBkdXJ1bSBiaWxnaWxlcmkgYWzEsW5hbcSxeW9yLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkIHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIlczogZ2XDp2ljaSBkb3N5YSBva3VuYW3EsXlvci5cbiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjQgbWlzYy11dGlscy9jYWwuYzozNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZGF5IHZhbHVlOiB1c2UgMS0lZCIKK21zZ3N0ciAiecSxbCBkZcSfZXJpIGt1cmFsZMSxxZ/EsTogMS05OTk5IGFyYXPEsW5kYSBvbG1hbMSxIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2OAorbXNnaWQgImlsbGVnYWwgbW9udGggdmFsdWU6IHVzZSAxLTEyIgorbXNnc3RyICJheSBudW1hcmFzxLEga3VyYWxkxLHFn8SxOiAxLi4xMiBhcmFzxLFuZGEgb2xtYWzEsSIKKworIzogbWlzYy11dGlscy9jYWwuYzozNzIKK21zZ2lkICJpbGxlZ2FsIHllYXIgdmFsdWU6IHVzZSAxLTk5OTkiCittc2dzdHIgInnEsWwgZGXEn2VyaSBrdXJhbGTEscWfxLE6IDEtOTk5OSBhcmFzxLFuZGEgb2xtYWzEsSIKKworIzogbWlzYy11dGlscy9jYWwuYzo0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJWQiCittc2dzdHIgIiVzICVkIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjg1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiBjYWwgWy0xM3NtanlWXSBbW2F5XSB5xLFsXVxuIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbK2Zvcm1hdF0gW2RheSBtb250aCB5ZWFyXVxuIgorbXNnc3RyICJrdWxsYW7EsW3EsTogJXMgWytiacOnZW1dIFtnw7xuIGF5IHnEsWxdXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyNTAKK21zZ2lkICJTdC4gVGliJ3MgRGF5IgorbXNnc3RyICJTdC4gVGliIEfDvG7DvCIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgTEFCRUw9PGxhYmVsPnxVVUlEPTx1dWlkPlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6NTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byByZXNvbHZlICclcyciCittc2dzdHIgIiVzIGHDp8SxbGFtxLF5b3IiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXNcbiIKK21zZ3N0ciAiJXM6IGJpbGlubWV5ZW4gc2lueWFsOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgcHJvY2VzcyBcIiVzXCJcbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiBzw7xyZWNpIGJ1bHVuYW3EsXlvclxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzOyB2YWxpZCBzaWduYWxzOlxuIgorbXNnc3RyICIlczogJXMgc2lueWFsaSBiaWxpbm1peW9yOyBnZcOnZXJsaSBzaW55YWxsZXI6XG4iCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtcyBzaWduYWwgfCAtcCBdIFsgLWEgXSBwaWQgLi4uXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiAlcyBbIC1zIHNpbnlhbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHNpbnlhbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiS3VsbGFuxLFjxLEgYWTEsW7EsXogw6dvayB1enVuLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQ6ICVzLlxuIgorbXNnc3RyICJCbG9rVXp1bmw6ICVkXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ubmVjdDogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiAlczogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogJXM6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gZmFjaWxpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogYmlsaW5tZXllbiB5ZXRlbmVrIGlzbWk6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gcHJpb3JpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjogYmlsaW5tZXllbiDDtm5jZWxpayBpc21pOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisia3VsbGFuxLFtxLE6IGxvZ2dlciBbLWlzXSBbLWYgZG9zeWFdIFstcCBwcmldIFstdCBiYcWfbMSxa10gWy11IHNva2V0XSAiCisiWyBpbGV0aSAuLi4gXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiBsb29rIFstZGZhXSBbLXQga2FyYWt0ZXJdIGRpemdlIFtkb3N5YV1cbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlcyBhw6fEsWxhbWFkxLFcbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA5IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICIlZCBiYXl0ICVzIGRvc3lhc8SxbmRhbiBhbMSxbmTEsVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTQzIG1pc2MtdXRpbHMvbmFtZWkuYzoxOTggbWlzYy11dGlscy9uYW1laS5jOjIyNQorIzogbWlzYy11dGlscy9uYW1laS5jOjI0NSBtaXNjLXV0aWxzL25hbWVpLmM6MjUyIG1pc2MtdXRpbHMvbmFtZWkuYzoyOTQKKyMsIGZ1enp5Cittc2dpZCAib3V0IG9mIG1lbW9yeT8iCittc2dzdHIgImJlbGxlayB5ZXRlcnNpej9cbiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgc3ltbGluazogJXMiCittc2dzdHIgImlvY3RsKCkgJXMgZGVuIHphbWFuxLEgb2t1eWFtYWTEsSIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjIzMSBtaXNjLXV0aWxzL25hbWVpLmM6MjU0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICIlcyBheWfEsXTEsW7EsW4gZHVydW0gYmlsZ2lzaSBhbMSxbmFtxLF5b3IiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiBuYW1laSBbLW14XSBkb3N5YVlvbHUgW2Rvc3lhWW9sdSAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiJWQgZGlzayBiw7Zsw7xtw7w6XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgbmFtZWkoMSkuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQ6ICVzIgorbXNnc3RyICIlcyBkdXJ1bSBiaWxnaWxlcmkgYWzEsW5hbcSxeW9yIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBleGNlZWRlZCBsaW1pdCBvZiBzeW1saW5rcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiVzOiBiZWxsZWsgeWV0ZXJzaXpcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogJXMgICVzIG9sYXJhayBkZcSfacWfdGlyaWxlbWVkaTogJXNcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYWxsOiAlcyBmcm9tIHRvIGZpbGVzLi4uXG4iCittc2dzdHIgIsOnYcSfcsSxOiAlcyBoYW5naSBkb3N5YWxhcmxhIMOnYWzEscWfYWNhaz9cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGAlcycgaXMgYSBsaW5rLlxuIgorIlVzZSBgJXMgW29wdGlvbnNdICVzJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LlxuIgorIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIKK21zZ3N0ciAiIgorIlV5YXLEsTogYCVzJyBiaXIgc2VtYm9saWsgYmHEnyBkb3N5YXPEsS5cbiIKKyJHZXLDp2VrdGVuIGt1bGxhbm1hayBpc3RpeW9yc2FuxLF6IGAlcyBbc2XDp2VuZWtsZXJdICVzJyBpbGUga3VsbGFuxLFuLlxuIgorIkJldGlrIGJhxZ9sYXTEsWxtYWTEsS5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorbXNnc3RyICJrdWxsYW7EsW3EsTogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2Rvc3lhXVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICJCZXRpayBiYcWfbGF0xLFsZMSxLCBkb3N5YXPEsSAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjI0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yICVkOiAlc1xuIgorbXNnc3RyICIlcyDDvHplcmluZGUgeWF6bWEgaGF0YXPEsVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiJXMgZGUgYmV0aWsgYmHFn2xhdMSxbGTEsSIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXMgw7x6ZXJpbmRlIHlhem1hIGhhdGFzxLFcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgd3JpdGUgc2NyaXB0IGZpbGUsIGVycm9yOiAlc1xuIgorbXNnc3RyICIlczogJXMgacOnaW4gYXlnxLF0IGlzbWkgYnVsdW5hbcSxeW9yXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorIlxuIgorIiVzIMO8emVyaW5kZSBiZXRpayB0YW1hbWxhbmTEsSIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IGRvbmUsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiQmV0aWsgdGFtYW1sYW5kxLEsIGRvc3lhc8SxICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW5wdHkgZmFpbGVkXG4iCittc2dzdHIgIm9wZW5wdHkgYmHFn2FyxLFzxLF6XG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICJwdHkgc2F5xLFzxLEgeWV0ZXJzaXpcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyA8dGltaW5nZmlsZT4gWzx0eXBlc2NyaXB0PiBbPGRpdmlzb3I+XV1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorIywgZnV6enkKK21zZ2lkICJ3cml0ZSB0byBzdGRvdXQgZmFpbGVkIgorbXNnc3RyICIlcyBhw6fEsWxhbWFkxLEiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSAlcyBkZW4gemFtYW7EsSBva3V5YW1hZMSxIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIiclcycgZG9zeWFzxLEgYcOnxLFsYW3EsXlvciIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiJyVzJyBkb3N5YXPEsSBhw6fEsWxhbcSxeW9yIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGltaW5nIGZpbGUgJXMiCittc2dzdHIgImlvY3RsKCkgJXMgZGVuIHphbWFuxLEgb2t1eWFtYWTEsSIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInRpbWluZ3MgZmlsZSAlczogJWx1OiB1bmV4cGVjdGVkIGZvcm1hdCIKK21zZ3N0ciAiJXM6ICVzIGRveWFzxLFuZGEgYmVrbGVubWVkaWsgZG9zeWEgc29udVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczogQXJnw7xtYW4gaGF0YXPEsSwga3VsbGFuxLFtxLFcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKK21zZ3N0ciAiICBbIC10ZXJtIHRlcm1pbmFsX2lzbWkgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiAgWyAtcmVzZXQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiICBbIC1pbml0aWFsaXplIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIgIFsgLWRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc1IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NworIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiICBbIC1zdG9yZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorbXNnc3RyICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCittc2dzdHIgIiAgWyAtYmxhbmsgWzAtNjBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZHVtcCAgIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtZHVtcCAgIFsxLUtvbnNvbF9ucl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1hcHBlbmQgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1hcHBlbmQgWzEtS29uc29sX25yXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiICBbIC1maWxlIGTDtmvDvG1Eb3N5YXPEsSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorbXNnc3RyICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorbXNnc3RyICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCittc2dzdHIgIiAgWyAtYmZyZXEgZnJla2Fuc19uciBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSBibGFua1xuIgorbXNnc3RyICJhc3Qgc8O8cmXDpyBvbHXFn3R1cnVsYW3EsXlvciIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIHVuYmxhbmtcbiIKK21zZ3N0ciAiYXN0IHPDvHJlw6cgb2x1xZ90dXJ1bGFtxLF5b3IiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgIiVzIGHDp8SxbGFtxLF5b3JcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICJla29ub21pIGtpcGkgZGVuZXRpbSBkxLHFn8SxXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICJrbG9nY3RsIGhhdGFzxLE6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JpdGluZyBzY3JlZW5kdW1wXG4iCittc2dzdHIgIkVrcmFuIGTDtmvDvG3DvCB5YXrEsWzEsXJrZW4gaGF0YVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIiVzIGHDp8SxbGFtYWTEsVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiJXM6ICRURVJNIGF0YW5tYW3EscWfLlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWRdIFstcCBwaWRmaWxlXSBbLXMgc29ja2V0cGF0aF0gWy1UIHRpbWVvdXRdXG4iCittc2dzdHIgIiIKKyJLdWxsYW7EsW3EsTogbGFzdCBbLSNdIFstZiBkb3N5YV0gWy10IHR0eV0gWy1oIG1ha2luYUFkxLFdIFtrdWxsYW7EsWPEsSAuLi5dXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgWy1yfHRdIFstbiBudW1dIFstcyBzb2NrZXRwYXRoXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHNpbnlhbCBdXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTIKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGFyZ3VtZW50cyIKK21zZ3N0ciAiY29sOiAtbCBhcmfDvG1hbsSxICVzIGhhdGFsxLEuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTkKKyMsIGZ1enp5Cittc2dpZCAic29ja2V0IgorbXNnc3RyICJuZnMgc29rZXRpIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTcwCisjLCBmdXp6eQorbXNnaWQgImNvbm5lY3QiCittc2dzdHIgIm5mcyBiYcSfbGFudMSxc8SxIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTg5CisjLCBmdXp6eQorbXNnaWQgIndyaXRlIgorbXNnc3RyICJLYXlkZXQiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxOTcKKyMsIGZ1enp5Cittc2dpZCAicmVhZCBjb3VudCIKK21zZ3N0ciAiJWMgb2t1bmR1XG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyMDMKK21zZ2lkICJiYWQgcmVzcG9uc2UgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGNyZWF0ZSB1bml4IHN0cmVhbSBzb2NrZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGJpbmQgdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgIiVzIGHDp8SxbGFtxLF5b3I6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxpc3RlbiBvbiB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiJXMgYcOnxLFsYW3EsXlvcjogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcmVhZGluZyBmcm9tIGNsaWVudCwgbGVuID0gJWRcbiIKK21zZ3N0ciAiJXMgb2t1bnVya2VuIGhhdGFcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM3OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb3BlcmF0aW9uICVkXG4iCittc2dzdHIgImtpbWxpayBnZcOnZXJzaXoiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiTnVtYXJhIGdlw6dlcnNpejogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUyNCBtaXNjLXV0aWxzL3V1aWRkLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjYWxsaW5nIHV1aWRkIGRhZW1vbiAoJXMpOiAlc1xuIgorbXNnc3RyICIlcyBpw6dpbiBraXAgZGXEn2nFn3RpcmlsaXJrZW4gaGF0YTogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBhbmQgc3Vic2VxdWVudCAlZCBVVUlEJ3NcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCByZXBseSBsZW5ndGggZnJvbSBzZXJ2ZXIgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGtpbGwgdXVpZGQgcnVubmluZyBhdCBwaWQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJLaWxsZWQgdXVpZGQgcnVubmluZyBhdCBwaWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRnZW4uYzozMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJLdWxsYW7EsW3EsTogJXMgW3Nlw6dlbmVrbGVyXSBheWfEsXQgLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpemluIC4uLiAtZiBdIGlzaW0uLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKKyMsIGZ1enp5Cittc2dpZCAiY2FsbG9jIGZhaWxlZCIKK21zZ3N0ciAiYmVsbGVrIGF5csSxbGFtYWTEsSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxNTAKKyMsIGZ1enp5Cittc2dpZCAic3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiJXMgYcOnxLFsYW1hZMSxIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBwcm9iaW5nIGluaXRpYWxpemF0aW9uIGZhaWxlZCIKK21zZ3N0ciAiIgorIlxuIgorIkRvc3lhIGthcGF0xLFsxLFya2VuIGhhdGFcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIlcyBkaXNraSBnZcOnZXJsaSBiaXIgZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1IGnDp2VybWl5b3JcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgZm91bmQgYSBtYWdpYyBzdHJpbmcgYXQgb2Zmc2V0IDB4JWp4IC0gaWdub3JlLiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiJXM6IGHDp8SxbGFtxLF5b3I6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IGJhxZ9hcsSxc8SxelxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXpkIGJ5dGVzIFsiCittc2dzdHIgImJheXQiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcGVuIGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBiYcWfYXLEsXPEsXpcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMTUgbWlzYy11dGlscy93aXBlZnMuYzozMTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgb2Zmc2V0ICclcycgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJBeWFyIGRlxJ9lcmkgZ2XDp2Vyc2l6OiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGRldmljZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICJLdWxsYW7EsW3EsTogJXMgW3Nlw6dlbmVrbGVyXSBheWfEsXQgLi4uXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWEsIC0tYWxsICAgICAgICAgICB3aXBlIGFsbCBtYWdpYyBzdHJpbmdzIChCRSBDQVJFRlVMISlcbiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0tbm8tYWN0ICAgICAgICBldmVyeXRoaW5nIHRvIGJlIGRvbmUgZXhjZXB0IGZvciB0aGUgd3JpdGUoKSBjYWxsXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IHRvIGVyYXNlLCBpbiBieXRlc1xuIgorIiAtcCwgLS1wYXJzYWJsZSAgICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB3aXBlZnMoOCkuXG4iCittc2dzdHIgIkt1bGxhbsSxY8SxIGJpbGdpbGVyaSBkZcSfacWfdGlyaWxkaS5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozODcKK21zZ2lkICItLW9mZnNldCBhbmQgLS1hbGwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICJ3cml0ZToga3VsbGFuZMSxxJ/EsW7EsXogdHR5IGlzbWkgYnVsdW5hbcSxeW9yXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IHlvdSBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdHVybmVkIG9mZi5cbiIKK21zZ3N0ciAid3JpdGU6IHlhem1hIGl6aW5sZXJpbml6IGthcGFsxLEuXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIG5vdCBsb2dnZWQgaW4gb24gJXMuXG4iCittc2dzdHIgIndyaXRlOiAlcyBpbGUgJXMgw7x6ZXJpbmRlIGdpcmnFnyB5YXDEsWxtYW3EscWfLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIKK21zZ3N0ciAid3JpdGU6ICVzIGlsZXRpbGVyaSAlcyDDvHplcmluZGUga2FwYWzEsVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiB3cml0ZSB1c2VyIFt0dHldXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiB3cml0ZSBrdWxsYW7EsWPEsSBbdHR5XVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlOiAlcyBzaXN0ZW1kZSBkZcSfaWxcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkXG4iCittc2dzdHIgIndyaXRlOiBpbGV0aWxlciAlcyBpw6dpbiBrYXBhbMSxXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIGxvZ2dlZCBpbiBtb3JlIHRoYW4gb25jZTsgd3JpdGluZyB0byAlc1xuIgorbXNnc3RyICJ3cml0ZTogJXMgYmlyZGVuIGZhemxhIGdpcmnFnyB5YXBtxLHFnzsgJXMnZSB5YXrEsXlvclxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyAoYXMgJXMpIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiJXNAJXMgZGVuIGlsZXRpIHZhciAoJXMgb2xhcmFrLCAlcyDDvHplcmluZGVuLCDFn3UgYW4gJXMpIC4uLiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICIlc0AlcyBkZW4gaWxldGkgdmFyICglcyDDvHplcmluZGVuLCDFn3UgYW4gJXMpIC4uLiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgInV5YXLEsTogJXMgb2t1bnVya2VuIGhhdGE6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAidXlhcsSxOiAlcyBhw6fEsWxhbcSxeW9yOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNvdWxkIG5vdCBvcGVuICVzIC0gdXNpbmcgJXMgaW5zdGVhZFxuIgorbXNnc3RyICJtb3VudDogJXMgYcOnxLFsYW1hZMSxIC0geWVyaW5lICVzIGt1bGxhbsSxbMSxeW9yXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NTkwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGNyZWF0ZSBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKyJraWxpdCBkb3N5YXPEsSAlcyBvbHXFn3R1cnVsYW3EsXlvcjogJXMgKHpvcmxhbWFrIGnDp2luIC1uIHNlw6dlbmXEn2luaSBrdWxsYW7EsW4pIgorCisjOiBtb3VudC9mc3RhYi5jOjYxNgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBsaW5rIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAiIgorIiVzIGtpbGl0IGRvc3lhc8SxIGnDp2luIGJhxJ8gb2x1xZ90dXJ1bGFtxLF5b3I6ICVzICh6b3JsYW1hayBpw6dpbiAtbiBzZcOnZW5lxJ9pbmkgIgorImt1bGxhbsSxbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIlcyBraWxpdCBkb3N5YXPEsSBhw6fEsWxhbcSxeW9yOiAlcyAoem9ybGFtYWsgacOnaW4gLW4gc2XDp2VuZcSfaW5pIGt1bGxhbsSxbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICIlcyBraWxpdCBkb3N5YXPEsSBraWxpdGxlbmVtaXlvcjogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo2NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzIgorbXNnc3RyICIlcyBraWxpdCBkb3N5YXPEsSBraWxpdGxlbmVtaXlvcjogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICJ6YW1hbiBhxZ/EsW3EsSIKKworIzogbW91bnQvZnN0YWIuYzo2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbGluayAlc1xuIgorIlBlcmhhcHMgdGhlcmUgaXMgYSBzdGFsZSBsb2NrIGZpbGU/XG4iCittc2dzdHIgIiIKKyIlcyBiYcSfxLEgb2x1xZ90dXJ1bGFtxLF5b3JcbiIKKyJLYWxtxLHFnyBiaXIga2lsaXQgZG9zeWFzxLEgb2xhYmlsaXIgbWk/XG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICIlcyBhw6fEsWxhbcSxeW9yICglcykgLSBtdGFiIGfDvG5jZWwgZGXEn2lsIgorCisjOiBtb3VudC9mc3RhYi5jOjg1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAiJXMgeWF6xLFsxLFya2VuIGhhdGE6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjg3NAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlc1xuIgorbXNnc3RyICIlcyBpw6dpbiBraXAgZGXEn2nFn3RpcmlsaXJrZW4gaGF0YTogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG93bmVyIG9mICVzOiAlc1xuIgorbXNnc3RyICIlcyBpw6dpbiBraXAgZGXEn2nFn3RpcmlsaXJrZW4gaGF0YTogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgcmVuYW1lICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICIlcyAlcyBvbGFyYWsgZGXEn2nFn3RpcmlsZW1peW9yOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6MzYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBzZXQgY2FwYWNpdHkgb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiAlcyBheWfEsXTEsSBoYWtrxLFuZGEgYmlsZ2kgYWzEsW5hbcSxeW9yOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlPFBSSXU2ND4iCittc2dzdHIgIiwgYmHFn2wgJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzozODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgc2l6ZWxpbWl0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCBib3lzxLFuxLFyxLEgJWxsZCIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uICVzICh0eXBlICU8UFJJdTMyPikiCittc2dzdHIgIiwgJXMgxZ9pZnJlbGVtZSB0w7xyw7wgKCVkKSBiaWxpbm1peW9yIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICVkIgorbXNnc3RyICIsIGJhxZ9sICVkIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiB0eXBlICVkXG4iCittc2dzdHIgIiwgxZ9pZnJlbGVtZSB0w7xyw7wgJWQgYmlsaW5taXlvclxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGdldCBpbmZvIG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogJXMgYXlnxLF0xLEgaGFra8SxbmRhIGJpbGdpIGFsxLFuYW3EsXlvcjogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogJXMgYXlnxLF0xLEgYcOnxLFsYW3EsXlvcjogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ0OCBtb3VudC9sb21vdW50LmM6NDgwIG1vdW50L2xvbW91bnQuYzo1NDIKKyM6IG1vdW50L2xvbW91bnQuYzo1ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iCittc2dzdHIgIiVzOiBcIiVzXCIgeW9rLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiVzOiAvZGV2L2xvb3AjIGnDp2luIGl6aW5sZXIgeWV0ZXJzaXoiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBmcmVlIGxvb3AgZGV2aWNlIgorbXNnc3RyICIlczogaGnDpyBzZXJiZXN0IGxvb3AgYXlnxLF0xLEgeW9rIgorCisjOiBtb3VudC9sb21vdW50LmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZT8gKElmIHNvLCByZWNvbXBpbGUgb3IgYG1vZHByb2JlIGxvb3AnLikiCittc2dzdHIgIiIKKyIlczogSGnDpyBiaXIgbG9vcCBheWfEsXTEsSBidWx1bmFtYWTEsS4gQnUgw6dla2lyZGVrIGxvb3AgYXlnxLF0xLEgaGFra8SxbmRhXG4iCisiICAgICAgIGJpbGdpeWUgc2FoaXAgZGXEn2lsLiAoYG1vZHByb2JlIGxvb3AnIGRlbmV5aW4sIHNvbnXDpyBhbGFtYXpzYW7EsXpcbiIKKyIgICAgICAgw6dla2lyZGXEn2kgeWVuaWRlbiBkZXJsZXlpbi4pIgorCisjOiBtb3VudC9sb21vdW50LmM6NjM2CisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hpbGUgcmVhZGluZyBwYXNzcGhyYXNlIgorbXNnc3RyICJUYW1wb24gYsO8ecO8dMO8bMO8cmtlbiBiZWxsZWsgeWV0bWVkaS5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiU2VrdMO2ciAlZCB6YXRlbiBrdWxsYW7EsW1kYVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njk1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iCittc2dzdHIgIm1vdW50OiAlcyVzIHlhem1hIGtvcnVtYWzEsSwgc2FsdC1va3VudXIgb2xhcmFrIGJhxJ9sYW7EsXlvciIKKworIzogbW91bnQvbG9tb3VudC5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb2NrIGludG8gbWVtb3J5LCBleGl0aW5nLlxuIgorbXNnc3RyICJCZWxsZWsgacOnaW5kZSBraWxpdGxlbmVtZWRpLCDDp8Sxa8SxbMSxeW9yLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVsbHUpOiBiYcWfYXLEsWzEsVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IGJhxZ9hcsSxbMSxXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZGVsZXRlIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDogJXMgYXlnxLF0xLEgc2lsaW5lbWl5b3I6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIkJ1IG1vdW50IGxvb3AgZGVzdGXEn2kgb2xtYWtzxLF6xLFuIGRlcmxlbm1pxZ8uIEzDvHRmZW4geWVuaWRlbiBkZXJsZXlpbi5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIGxvb3BfZGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXZlIGluZm9cbiIKKyIgJTEkcyAtYSB8IC0tYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBhbGwgdXNlZFxuIgorIiAlMSRzIC1kIHwgLS1kZXRhY2ggPGxvb3BkZXY+IFs8bG9vcGRldj4gLi4uXSBkZWxldGVcbiIKKyIgJTEkcyAtZiB8IC0tZmluZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZCB1bnVzZWRcbiIKKyIgJTEkcyAtYyB8IC0tc2V0LWNhcGFjaXR5IDxsb29wZGV2PiAgICAgICAgICAgcmVzaXplXG4iCisiICUxJHMgLWogfCAtLWFzc29jaWF0ZWQgPGZpbGU+IFstbyA8bnVtPl0gICAgIGxpc3QgYWxsIGFzc29jaWF0ZWQgd2l0aCAiCisiPGZpbGU+XG4iCisiICUxJHMgWyBvcHRpb25zIF0gey1mfC0tZmluZHxsb29wZGV2fSA8ZmlsZT4gIHNldHVwXG4iCittc2dzdHIgIiIKKyJrdWxsYW7EsW3EsTpcbiIKKyIgICVzIGxvb3BfYXlnxLF0xLEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJpbGdpIHZlcmlsaXJcbiIKKyIgICVzIC1kIGxvb3BfYXlnxLF0xLEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNpbG1lXG4iCisiICAlcyAtZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIgorImt1bGxhbsSxbG1hbcSxxZ9sYXJcbiIKKyIgICVzIFsgLWUgxZ9pZnJlbGVtZSBdIFsgLW8ga29udW0gXSB7LWZ8bG9vcF9heWfEsXTEsX0gZG9zeWEgIyBheWFybGFtYVxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwMzQgbW91bnQvbG9tb3VudC5jOjEwNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkxvb3AgZGV2aWNlIGlzICVzXG4iCittc2dzdHIgImxvb3A6ICVzIGF5Z8SxdMSxIGHDp8SxbGFtxLF5b3I6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDYxCisjLCBjLWZvcm1hdAorbXNnaWQgInN0b2xlbiBsb29wPSVzLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogZGV2aWNlIGlzIGJ1c3kiCittc2dzdHIgInVtb3VudDogJXM6IGF5Z8SxdCBtZcWfZ3VsIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIkRlcmxlbWUgc8SxcmFzxLFuZGEgbG9vcCBkZXN0ZcSfaSB2ZXJpbG1lbWnFny4gTMO8dGZlbiB5ZW5pZGVuIGRlcmxleWluLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjI4OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisibW91bnQ6IHdhcm5pbmc6IC9ldGMvbXRhYiBpcyBub3Qgd3JpdGFibGUgKGUuZy4gcmVhZC1vbmx5IGZpbGVzeXN0ZW0pLlxuIgorIiAgICAgICBJdCdzIHBvc3NpYmxlIHRoYXQgaW5mb3JtYXRpb24gcmVwb3J0ZWQgYnkgbW91bnQoOCkgaXMgbm90XG4iCisiICAgICAgIHVwIHRvIGRhdGUuIEZvciBhY3R1YWwgaW5mb3JtYXRpb24gYWJvdXQgc3lzdGVtIG1vdW50IHBvaW50c1xuIgorIiAgICAgICBjaGVjayB0aGUgL3Byb2MvbW91bnRzIGZpbGUuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGltcHJvcGVybHkgcXVvdGVkIG9wdGlvbiBzdHJpbmcgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjM3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHRyYW5zbGF0ZWQgJXMgJyVzJyB0byAnJXMnXG4iCittc2dzdHIgIm1vdW50OiAlcyAgJXMgeWEgZGEgJXMgacOnaW5kZSBidWx1bmFtxLF5b3IiCisKKyM6IG1vdW50L21vdW50LmM6NTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogbXRhYidhIGfDtnJlLCAlcyB6YXRlbiAlcyDDvHplcmluZGUgYmHEn2zEsSIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDogbXRhYidhIGfDtnJlLCAlcyAlcyDDvHplcmluZGUgYmHEn2zEsSIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDogJXMgeWF6bWFrIGnDp2luIGHDp8SxbGFtxLF5b3I6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDogJXMgeWF6xLFsxLFya2VuIGhhdGE6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXMiCittc2dzdHIgIm1vdW50OiAlcyBraXBpIGRlxJ9pxZ90aXJpbGlya2VuIGhhdGE6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJtb3VudDogaMSxeiBheWFybGFuYW3EsXlvcjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6Njc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGjEsXogYXlhcmxhbmFtxLF5b3I6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjcxNCBtb3VudC9tb3VudC5jOjE4NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAibW91bnQ6IGFzdCBzw7xyZcOnIG9sdcWfdHVydWxhbcSxeW9yOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIiVzIGRlbmVuaXlvclxuIgorCisjOiBtb3VudC9tb3VudC5jOjg3OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogeW91IGRpZG4ndCBzcGVjaWZ5IGEgZmlsZXN5c3RlbSB0eXBlIGZvciAlc1xuIgorbXNnc3RyICJtb3VudDogJXMgacOnaW4gYmlyIGRvc3lhIHNpc3RlbWkgdMO8csO8IGJlbGlydGlsbWVtacWfXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IGFsbCB0eXBlcyBtZW50aW9uZWQgaW4gJXMgb3IgJXNcbiIKK21zZ3N0ciAiICAgICAgICVzIHlhIGRhICVzIGnDp2luZGVraSBhbsSxbGFuIHTDvG0gdMO8cmxlciBkZW5lbmVjZWtcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIGFuZCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgc3dhcHNwYWNlXG4iCittc2dzdHIgIiAgICAgICB2ZSBidSB0YWthcyBhbGFuxLEgZ2liaSBnw7Zyw7xuw7x5b3JcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgdHlwZSAlc1xuIgorbXNnc3RyICIgICAgICAgJXMgdMO8csO8IGRlbmVuZWNla1xuIgorCisjOiBtb3VudC9tb3VudC5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb29rcyBsaWtlIHN3YXBzcGFjZSAtIG5vdCBtb3VudGVkIgorbXNnc3RyICIlcyB0YWthcyBhbGFuxLEgZ2liaSBnw7Zyw7xuw7x5b3IgLSBiYcSfbGFubWFkxLEiCisKKyM6IG1vdW50L21vdW50LmM6MTAwMgorbXNnaWQgIm1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQgYmHFn2FyxLFzxLF6IgorCisjOiBtb3VudC9tb3VudC5jOjEwMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gbW91bnQgJXMgb24gJXMiCittc2dzdHIgIm1vdW50OiAlcyAlcyDDvHplcmluZGUgc2FkZWNlIHJvb3QgdGFyYWbEsW5kYW4gYmHEn2xhbmFiaWxpciIKKworIzogbW91bnQvbW91bnQuYzoxMDc0Cittc2dpZCAibW91bnQ6IGxvb3AgZGV2aWNlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IGxvb3AgYXlnxLF0xLEgaWtpIGtlcmUgYmVsaXJ0aWxtacWfIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzkKK21zZ2lkICJtb3VudDogdHlwZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiB0w7xyw7wgaWtpIGRlZmEgYmVsaXJ0aWxtacWfIgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiBsb29wIGF5Z8SxdMSxIGF5YXJsYXLEsSBhdGxhbsSxeW9yXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICJtb3VudDogbXRhYidhIGfDtnJlLCAlcyB6YXRlbiAlcyDDvHplcmluZGUgYmHEn2zEsSIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiAlcyBsb29wIGF5Z8SxdMSxbsSxbiBrdWxsYW7EsW3EsW5hIGdpZGlsaXlvclxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBmYWlsZWQgc2V0dGluZyB1cCBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDogbG9vcCBheWfEsXTEsSBheWFybGFyxLEgeWFwxLFsYW1hZMSxXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE0MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2V0dXAgbG9vcCBkZXZpY2Ugc3VjY2Vzc2Z1bGx5XG4iCittc2dzdHIgIm1vdW50OiBsb29wIGF5Z8SxdMSxIGF5YXJsYXLEsSB0YW1hbWxhbmTEsVxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vICVzIGZvdW5kIC0gY3JlYXRpbmcgaXQuLlxuIgorbXNnc3RyICJtb3VudDogJXMgeW9rIC0gb2x1xZ90dXJ1bHV5b3IuLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIGHDp8SxbGFtxLF5b3I6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIm1vdW50OiAtcCB2ZSAtLXBhc3MtZmQgc2XDp2VuZWtsZXJpbmluIGFyZ8O8bWFuxLEgYmlyIHNhecSxIG9sbWFsxLFkxLFyIgorCisjOiBtb3VudC9tb3VudC5jOjEyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBvcGVuICVzIGZvciBzZXR0aW5nIHNwZWVkIgorbXNnc3RyICJtb3VudDogaMSxesSxIGF5YXJsYW1hayBpw6dpbiAlcyBhw6fEsWxhbcSxeW9yIgorCisjOiBtb3VudC9tb3VudC5jOjEyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgc3BlZWQ6ICVzIgorbXNnc3RyICJtb3VudDogaMSxeiBheWFybGFuYW3EsXlvcjogJXMiCisKKyM6IG1vdW50L21vdW50LmM6MTMyMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IG10YWInYSBnw7ZyZSwgJXMgemF0ZW4gJXMgw7x6ZXJpbmRlIGJhxJ9sxLEiCisKKyM6IG1vdW50L21vdW50LmM6MTM4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHdhcm5pbmc6ICVzIHNlZW1zIHRvIGJlIG1vdW50ZWQgcmVhZC13cml0ZS5cbiIKK21zZ3N0ciAidW1vdW50OiAlcyBtZcWfZ3VsLSBzYWx0LW9rdW51ciBvbGFyYWsgeWVuaWRlbiBiYcSfbGFuZMSxXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQxMworbXNnaWQgIiIKKyJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsIGFuZCBub25lIHdhcyBzcGVjaWZpZWQiCittc2dzdHIgIm1vdW50OiBEb3N5YSBzaXN0ZW1pIHTDvHLDvCBzYXB0YW5hbWFkxLEgdmUgYmVsaXJ0aWxtZW1pxZ8iCisKKyM6IG1vdW50L21vdW50LmM6MTQxNgorbXNnaWQgIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIm1vdW50OiBkb3N5YSBzaXN0ZW1pIHTDvHLDvG7DvCBiZWxpcnRtZWxpc2luaXoiCisKKyM6IG1vdW50L21vdW50LmM6MTQxOQorbXNnaWQgIm1vdW50OiBtb3VudCBmYWlsZWQiCittc2dzdHIgIm1vdW50OiBiYcSfbGFuYW1hZMSxIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIm1vdW50OiBiYcSfbGFtYSBub2t0YXPEsSAlcyBiaXIgZGl6aW4gZGXEn2lsIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjcKK21zZ2lkICJtb3VudDogcGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm1vdW50OiBlcmnFn2ltIGVuZ2VsbGVuZGkiCisKKyM6IG1vdW50L21vdW50LmM6MTQyOQorbXNnaWQgIm1vdW50OiBtdXN0IGJlIHN1cGVydXNlciB0byB1c2UgbW91bnQiCittc2dzdHIgIm1vdW50OiByb290IHRhcmFmxLFuZGFuIGt1bGxhbsSxbG1hbMSxIgorCisjOiBtb3VudC9tb3VudC5jOjE0MzMgbW91bnQvbW91bnQuYzoxNDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgbWXFn2d1bCIKKworIzogbW91bnQvbW91bnQuYzoxNDM5Cittc2dpZCAibW91bnQ6IHByb2MgYWxyZWFkeSBtb3VudGVkIgorbXNnc3RyICJtb3VudDogcHJvYyB6YXRlbiBiYcSfbMSxIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvciAlcyBidXN5IgorbXNnc3RyICJtb3VudDogeWEgJXMgemF0ZW4gYmHEn2zEsSB5YSBkYSAlcyBtZcWfZ3VsIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogYmHEn2xhbWEgbm9rdGFzxLEgJXMgeW9rIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICJtb3VudDogYmHEn2xhbWEgbm9rdGFzxLEgJXMgaGnDp2JpciB5ZXJlIHNlbWJvbGlrIGJhxJ8gc2HEn2xhbcSxeW9yIgorCisjOiBtb3VudC9tb3VudC5jOjE0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogw7Z6ZWwgYXlnxLF0ICVzIHlvayIKKworIzogbW91bnQvbW91bnQuYzoxNDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3RcbiIKKyIgICAgICAgKGEgcGF0aCBwcmVmaXggaXMgbm90IGEgZGlyZWN0b3J5KVxuIgorbXNnc3RyICIiCisibW91bnQ6IMO2emVsIGF5Z8SxdCAlcyB5b2tcbiIKKyIgICAgICAgKGRvc3lhIHlvbHUgw7ZuZWtpIGJpciBkaXppbiBkZcSfaWwpXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTQ3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgbm90IG1vdW50ZWQgYWxyZWFkeSwgb3IgYmFkIG9wdGlvbiIKK21zZ3N0ciAibW91bnQ6ICVzIHphdGVuIGJhxJ9sxLEgZGXEn2lsLCB5YSBkYSBzZcOnZW5layB5YW5sxLHFnyIKKworIzogbW91bnQvbW91bnQuYzoxNDgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHdyb25nIGZzIHR5cGUsIGJhZCBvcHRpb24sIGJhZCBzdXBlcmJsb2NrIG9uICVzLFxuIgorIiAgICAgICBtaXNzaW5nIGNvZGVwYWdlIG9yIGhlbHBlciBwcm9ncmFtLCBvciBvdGhlciBlcnJvciIKK21zZ3N0ciAiIgorIm1vdW50OiBkb3N5YSBzaXN0ZW1pIHTDvHLDvCB5YW5sxLHFnywgc2XDp2VuZWsgeWFubMSxxZ8sICVzIMO8emVyaW5kZSBzdXBlcmJsb2tcbiIKKyIgICAgICAgaGF0YWzEsSwga2FyYWt0ZXIga8O8bWVzaSBla3NpaywgeWEgZGEgYmHFn2thIGJpciBoYXRhIG9sYWJpbGlyIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKyIgICAgICAgKGZpaWxlbiBpZGUtc2NzaSBrdWxsYW7EsWxkxLHEn8SxbmEgZ8O2cmUgYnUgYmlyIElERSBheWfEsXRcbiIKKyIgICAgICAgIG9sYWJpbGlyIG1pPyBCdXJhZGEgc3IwLCBzZGEgZ2liaSBiaXLFn2V5bGVyIG9sbWFsxLEsIGRlxJ9pbCBtaT8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDEKK21zZ2lkICIiCisiICAgICAgIChhcmVuJ3QgeW91IHRyeWluZyB0byBtb3VudCBhbiBleHRlbmRlZCBwYXJ0aXRpb24sXG4iCisiICAgICAgIGluc3RlYWQgb2Ygc29tZSBsb2dpY2FsIHBhcnRpdGlvbiBpbnNpZGU/KSIKK21zZ3N0ciAiIgorIiAgICAgICAoacOnaW5kZWtpIGJpciBtYW50xLFrc2FsIGRpc2sgYsO2bMO8bcO8IHllcmluZVxuIgorIiAgICAgICAgYmlyIGVrIGRpc2sgYsO2bMO8bcO8bsO8IGJhxJ9sYW1heWEgw6dhbMSxxZ9txLF5b3IgbXVzdW51ej8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDgKK21zZ2lkICIiCisiICAgICAgIEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gaXMgZm91bmQgaW4gc3lzbG9nIC0gdHJ5XG4iCisiICAgICAgIGRtZXNnIHwgdGFpbCAgb3Igc29cbiIKK21zZ3N0ciAiIgorIiAgICAgICBCYXrEsSBkdXJ1bWxhcmRhIHN5c2xvZydkYSBidWx1bmFuIGJpbGdpbGVyIHlhcmFybMSxZMSxci5cbiIKKyIgICAgICAgZG1lc2cgfCB0YWlsICBnaWJpIGJpcsWfZXlsZXIgZGVuZXlpblxuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICJiYcSfIHRhYmxvc3UgZG9sdSIKKworIzogbW91bnQvbW91bnQuYzoxNTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogY2FuJ3QgcmVhZCBzdXBlcmJsb2NrIgorbXNnc3RyICJtb3VudDogJXM6IHN1cGVyYmxvayBva3VuYW3EsXlvciIKKworIzogbW91bnQvbW91bnQuYzoxNTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogdW5rbm93biBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlczogYXlnxLF0IGJpbGlubWl5b3IiCisKKyM6IG1vdW50L21vdW50LmM6MTUyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdW5rbm93biBmaWxlc3lzdGVtIHR5cGUgJyVzJyIKK21zZ3N0ciAibW91bnQ6IGRvc3lhIHNpc3RlbWkgdMO8csO8ICclcycgYmlsaW5taXlvciIKKworIzogbW91bnQvbW91bnQuYzoxNTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBwcm9iYWJseSB5b3UgbWVhbnQgJXMiCittc2dzdHIgIm1vdW50OiBoZXJoYWxkZSAlcyBrYXN0ZXR0aW5peiIKKworIzogbW91bnQvbW91bnQuYzoxNTQyCittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAnaXNvOTY2MCc/IgorbXNnc3RyICJtb3VudDogJ2lzbzk2NjAnIGthc3RldG1pxZ8gb2xhYmlsaXIgbWlzaW5pej8iCisKKyM6IG1vdW50L21vdW50LmM6MTU0NQorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ3ZmYXQnPyIKK21zZ3N0ciAibW91bnQ6ICd2ZmF0JyBrYXN0ZXRtacWfIG9sYWJpbGlyIG1pc2luaXo/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyB5YW5sxLHFnyBheWfEsXQgbnVtYXJhc8SxbmEgc2FoaXAgeWEgZGEgZG9zeWEgc2lzdGVtaSB0w7xyw7wgJXMgIgorImRlc3Rla2xlbm1peW9yIgorCisjOiBtb3VudC9tb3VudC5jOjE1NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSwgYW5kIHN0YXQgZmFpbHM/IgorbXNnc3RyICIiCisibW91bnQ6ICVzIGJpciBibG9rIGF5Z8SxdMSxIG9sbWF5YWJpbGlyIG1pIHZlIGR1cnVtIGJpbGdpbGVyaSBhbMSxbmFtYXlhYmlsaXIgIgorIm1pPyIKKworIzogbW91bnQvbW91bnQuYzoxNTU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHRoZSBrZXJuZWwgZG9lcyBub3QgcmVjb2duaXplICVzIGFzIGEgYmxvY2sgZGV2aWNlXG4iCisiICAgICAgIChtYXliZSBgbW9kcHJvYmUgZHJpdmVyJz8pIgorbXNnc3RyICIiCisibW91bnQ6IMOnZWtpcmRlayAlcyBheWfEsXTEsW7EsSBiaXIgYmxvayBheWfEsXTEsSBvbGFyYWsgdGFuxLFtxLF5b3JcbiIKKyIgICAgICAgKGBpbnNtb2Qgc8O8csO8Y8O8JyBkZW5lbmViaWxpcj8pIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSAobWF5YmUgdHJ5IGAtbyBsb29wJz8pIgorbXNnc3RyICJtb3VudDogJXMgYmlyIGJsb2sgYXlnxLF0xLEgZGXEn2lsICggYC1vIGxvb3AnIGRlbmVuZWJpbGlyIG1pPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXMgYmlyIGJsb2sgYXlnxLF0xLEgZGXEn2lsIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIHZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIGdlw6dlcmxpIGJpciBibG9rIGF5Z8SxdMSxIGRlxJ9pbCIKKworIzogbW91bnQvbW91bnQuYzoxNTcyCittc2dpZCAiYmxvY2sgZGV2aWNlICIKK21zZ3N0ciAiYmxvayBheWfEsXTEsSAiCisKKyM6IG1vdW50L21vdW50LmM6MTU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG1vdW50ICVzJXMgcmVhZC1vbmx5IgorbXNnc3RyICJtb3VudDogJXMlcyBzYWx0LW9rdW51ciBiYcSfbGFuYW3EsXlvciIKKworIzogbW91bnQvbW91bnQuYzoxNTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCBidXQgZXhwbGljaXQgYC13JyBmbGFnIGdpdmVuIgorbXNnc3RyICIiCisibW91bnQ6ICVzJXMgeWF6bWEga29ydW1hbMSxIG9sZHXEn3UgaGFsZGUgYWxlbmVuIGAtdycgc2XDp2VuZcSfaSBiZWxpcnRpbG1pxZ8iCisKKyM6IG1vdW50L21vdW50LmM6MTU4MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCByZW1vdW50ICVzJXMgcmVhZC13cml0ZSwgaXMgd3JpdGUtcHJvdGVjdGVkIgorbXNnc3RyICJtb3VudDogJXMlcyBzYWx0LW9rdW51ciBiYcSfbGFuYW3EsXlvciIKKworIzogbW91bnQvbW91bnQuYzoxNTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCwgbW91bnRpbmcgcmVhZC1vbmx5IgorbXNnc3RyICJtb3VudDogJXMlcyB5YXptYSBrb3J1bWFsxLEsIHNhbHQtb2t1bnVyIG9sYXJhayBiYcSfbGFuxLF5b3IiCisKKyM6IG1vdW50L21vdW50LmM6MTYwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAibW91bnQ6ICVzIHlvayAtIG9sdcWfdHVydWx1eW9yLi4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzIHphdGVuICVzIMO8emVyaW5kZSBiYcSfbMSxXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIm1vdW50OiB0w7xyIGJlbGlydGlsbWVtacWfIC0gJzonIGnDp2VyZGnEn2luZGVuIG5mcyB2YXJzYXnEsWzEsXlvclxuIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgY2lmcyBiZWNhdXNlIG9mIHRoZSAvLyBwcmVmaXhcbiIKK21zZ3N0ciAibW91bnQ6IHTDvHIgYmVsaXJ0aWxtZW1pxZ8gLSAnLy8nIMO2bmVraSBpw6dlcmRpxJ9pbmRlbiBjaWZzIHZhcnNhecSxbMSxeW9yXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiAlcyB6YXRlbiAlcyDDvHplcmluZGUgYmHEn2zEsVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE5NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogcHJpbnQgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBwcmludCB0aGlzIGhlbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdCBtb3VudGVkIGZpbGVzeXN0ZW1zXG4iCisiICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1ZGluZyB2b2x1bWUgbGFiZWxzXG4iCisiU28gZmFyIHRoZSBpbmZvcm1hdGlvbmFsIHBhcnQuIE5leHQgdGhlIG1vdW50aW5nLlxuIgorIlRoZSBjb21tYW5kIGlzIGBtb3VudCBbLXQgZnN0eXBlXSBzb21ldGhpbmcgc29tZXdoZXJlJy5cbiIKKyJEZXRhaWxzIGZvdW5kIGluIC9ldGMvZnN0YWIgbWF5IGJlIG9taXR0ZWQuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IG1vdW50IGFsbCBzdHVmZiBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgIDogbW91bnQgZGV2aWNlIGF0IHRoZSBrbm93biBwbGFjZVxuIgorIiAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICAgOiBtb3VudCBrbm93biBkZXZpY2UgaGVyZVxuIgorIiAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICAgOiBvcmRpbmFyeSBtb3VudCBjb21tYW5kXG4iCisiTm90ZSB0aGF0IG9uZSBkb2VzIG5vdCByZWFsbHkgbW91bnQgYSBkZXZpY2UsIG9uZSBtb3VudHNcbiIKKyJhIGZpbGVzeXN0ZW0gKG9mIHRoZSBnaXZlbiB0eXBlKSBmb3VuZCBvbiB0aGUgZGV2aWNlLlxuIgorIk9uZSBjYW4gYWxzbyBtb3VudCBhbiBhbHJlYWR5IHZpc2libGUgZGlyZWN0b3J5IHRyZWUgZWxzZXdoZXJlOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIm9yIG1vdmUgYSBzdWJ0cmVlOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgb2xkZGlyIG5ld2RpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIG1vdW50IGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBkaXJcbiIKKyJBIGRldmljZSBjYW4gYmUgZ2l2ZW4gYnkgbmFtZSwgc2F5IC9kZXYvaGRhMSBvciAvZGV2L2Nkcm9tLFxuIgorIm9yIGJ5IGxhYmVsLCB1c2luZyAgLUwgbGFiZWwgIG9yIGJ5IHV1aWQsIHVzaW5nICAtVSB1dWlkIC5cbiIKKyJPdGhlciBvcHRpb25zOiBbLW5mRnJzdnddIFstbyBvcHRpb25zXSBbLXAgcGFzc3dkZmRdLlxuIgorIkZvciBtYW55IG1vcmUgZGV0YWlscywgc2F5ICBtYW4gOCBtb3VudCAuXG4iCittc2dzdHIgIiIKKyJLdWxsYW7EsW3EsTogbW91bnQgW3Nlw6dlbmVrbGVyXSBbYXlnxLF0XSBbZGl6aW5dXG4iCisiQmlsZ2lsZW5kaXJtZTpcbiIKKyIgIG1vdW50ICAgICAgICAgICAgICAgICBiYcSfbMSxIGRvc3lhIHNpc3RlbWxlcmluaSBnw7ZzdGVyaXIuXG4iCisiICBtb3VudCAtbCAgICAgICAgICAgICAgw7xzdHRla2luZSBlayBvbGFyYWsgYsO2bMO8bSBldGlrZXRsZXJpbmkgZ8O2c3RlcmlyXG4iCisiICBtb3VudCAtViAgICAgICAgICAgICAgc8O8csO8bSBiaWxnaWxlcmluaSBnw7ZzdGVyaXJcbiIKKyIgIG1vdW50IC1oICAgICAgICAgICAgICBidSB5YXJkxLFtIGlsZXRpc2luaSBnw7ZzdGVyaXJcbiIKKyJcbiIKKyJCaXIgYXlnxLF0xLEgYmHEn2xhbWE6XG4iCisiICBtb3VudCAtYSBbLXR8LU9dIC4uLiAvZXRjL2ZzdGFiJ2RhIGJ1bHVuYW5sYXLEsW4gdGFtYW3EsW7EsSBiYcSfbGFyXG4iCisiICBtb3VudCBheWfEsXQgICAgICAgICAgYnUgYXlnxLF0xLEgL2V0Yy9mc3RhYidkYSBiZWxpcnRpbG1pxZ8gZGl6aW5lIGJhxJ9sYXJcbiIKKyIgIG1vdW50IGRpemluICAgICAgICAgIGJ1IGRpemluZSAvZXRjL2ZzdGFiJ2RhIGJlbGlydGlsbWnFnyBheWfEsXTEsSBiYcSfbGFyXG4iCisiICBtb3VudCAtdCBUw5xSIEFZR0lUIETEsFrEsE4gICAgIFTDnFIgdMO8csO8bmRla2kgQVlHSVTEsSBExLBaxLBOZSBiYcSfbGFyXG4iCisiXG4iCisiQmHEn2zEsSBiaXIgZG9zeWEgc2lzdGVtaW5kZWtpIGnFn2xlbWxlcjpcbiIKKyIgIG1vdW50IC0tYmluZCBFU0vEsETEsFrEsE4gWUVOxLBExLBaxLBOXG4iCisiICAgICAgICAgICAgICAgICBFU0vEsETEsFrEsE5kZSBiYcSfbMSxIG9sYW4gYXlnxLF0xLEgWUVOxLBExLBaxLBOZSB5ZW5pZGVuIGJhxJ9sYXJcbiIKKyIgIG1vdW50IC0tbW92ZSBFU0vEsETEsFrEsE4gWUVOxLBExLBaxLBOXG4iCisiICAgICAgICAgICAgICAgICBFU0vEsETEsFrEsE5kZSBiYcSfbMSxIG9sYW4gYXlnxLF0xLFuIGRvc3lhIHNpc3RlbWluZGVraSB5ZXJpbmlcbiIKKyIgICAgICAgICAgICAgICAgIFlFTsSwRMSwWsSwTiBvbGFyYWsgZGXEn2nFn3RpcmlyLlxuIgorIlxuIgorIkRpxJ9lciBzZcOnZW5la2xlcjogWy1uZkZyc3Z3XSBbLW8gc2XDp2VuZWtsZXJdIFstcCBwYXJvbGFdLlxuIgorIiAgbW91bnQgLW8gcmVtb3VudCxybyBExLBaxLBOICAgICBExLBaxLBOaSBzYWx0LW9rdW51ciBvbGFyYWsgeWVuaWRlbiBiYcSfbGFyLlxuIgorIiAgbW91bnQgLW8gcmVtb3VudCxydyBExLBaxLBOICAgICBExLBaxLBOaSBva3UteWF6IG9sYXJhayB5ZW5pZGVuIGJhxJ9sYXIuXG4iCisiXG4iCisiw4dldmlyaSBoYXRhbGFyxLFuxLEgPGdudS10ckBiZWxnZWxlci5vcmc+IGFkcmVzaW5lIGJpbGRpcmluaXouXG4iCisiRGFoYSBmYXpsYSBiaWxnaSBlZGlubWVrIGnDp2luICdtYW4gOCBtb3VudCcgeWF6YWJpbGlyc2luaXouXG4iCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiBidW51IHNhZGVjZSByb290IHlhcGFiaWxpciIKKworIzogbW91bnQvbW91bnQuYzoyMjc3Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAibW91bnQ6IGJ1bnUgc2FkZWNlIHJvb3QgeWFwYWJpbGlyIgorCisjOiBtb3VudC9tb3VudC5jOjIyODgKK21zZ2lkICJub3RoaW5nIHdhcyBtb3VudGVkIgorbXNnc3RyICJoacOnYmlyIMWfZXkgYmHEn2xhbm1hZMSxIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDYgbW91bnQvbW91bnQuYzoyMzMyCittc2dpZCAibW91bnQ6IG5vIHN1Y2ggcGFydGl0aW9uIGZvdW5kIgorbXNnc3RyICJtb3VudDogYsO2eWxlIGJpciBkaXNrIGLDtmzDvG3DvCB5b2siCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6ICVzICAlcyB5YSBkYSAlcyBpw6dpbmRlIGJ1bHVuYW3EsXlvciIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiB3YXJuaW5nOiBubyBmaW5hbCBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgJXNcbiIKK21zZ3N0ciAiW21udGVudF06IHV5YXLEsTogJXMgZG9zeWFzxLFuxLFuIHNvbnVuZGEgc29uIGJpciBzYXTEsXJzb251IGdlcmVrbGlcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiBsaW5lICVkIGluICVzIGlzIGJhZCVzXG4iCittc2dzdHIgIlttbnRlbnRdOiAlZCBzYXTEsXLEsSAlcyBkb3N5YXPEsW5kYSBoYXRhbMSxJXNcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE5Cittc2dpZCAiOyByZXN0IG9mIGZpbGUgaWdub3JlZCIKK21zZ3N0ciAiOyBkb3N5YW7EsW4ga2FsYW7EsSB5b2tzYXnEsWxkxLEiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAieHN0cm5kdXAgw6dhxJ9yxLFzxLFuZGEgeWF6xLFsxLFtIGhhdGFzxLEiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MjI1IG1vdW50L3N1bmRyaWVzLmM6MjgxIG1vdW50L3N1bmRyaWVzLmM6Mjk2CisjOiBtb3VudC94bWFsbG9jLmM6MTEKK21zZ2lkICJub3QgZW5vdWdoIG1lbW9yeSIKK21zZ3N0ciAieWV0ZXJsaSBiZWxsZWsgeW9rIgorCisjOiBtb3VudC9zd2Fwb24uYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICBMQUJFTCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgICAgVVVJRCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZGV2aWNlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZmlsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBmaWxlIHRvIGJlIHVzZWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstdl0gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZSBhbGwgc3dhcHNcbiIKKyIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGRpc2FibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0IgorbXNnc3RyICIlczogJXMgZG95YXPEsW5kYSBiZWtsZW5tZWRpayBkb3N5YSBzb251XG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIyMworIywgZnV6enkKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAiYXN0IHPDvHJlw6cgb2x1xZ90dXJ1bGFtYWTEsVxuIgorCisjOiBtb3VudC9zd2Fwb24uYzoyMzkKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3YgZmFpbGVkIgorbXNnc3RyICLDp2FsxLHFn3TEsXJtYSBiYcWfYXLEsXPEsXpcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MjQ3CisjLCBmdXp6eQorbXNnaWQgIndhaXRwaWQgZmFpbGVkIgorbXNnc3RyICJzZXR1aWQoKSBiYcWfYXLEsXPEsXoiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAiZXJpxZ9pbSBiYcWfYXLEsXPEsXoiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgIiVzIGHDp8SxbGFtYWTEsSIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKKyMsIGZ1enp5Cittc2dpZCAic2FtZSIKK21zZ3N0ciAixLBzaW0iCisKKyM6IG1vdW50L3N3YXBvbi5jOjM4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN0YXQgZmFpbGVkIgorbXNnc3RyICJlcmnFn2ltIGJhxZ9hcsSxc8SxeiIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogaW5zZWN1cmUgcGVybWlzc2lvbnMgJTA0bywgJTA0byBzdWdnZXN0ZWQuIgorbXNnc3RyICIlczogdXlhcsSxOiAlcyBnw7x2ZW5jZXNpeiBpemlubGVyICglMDRvKSBpw6dlcml5b3IsICUwNG8gw7ZuZXJpbGlyXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQwMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNraXBwaW5nIC0gaXQgYXBwZWFycyB0byBoYXZlIGhvbGVzLiIKK21zZ3N0ciAiJXM6ICVzIGF0bGFuxLF5b3IgLSBiYXrEsSBkZWxpa2xlciBpw6dlcml5b3IgZ2liaSBnw7Zyw7xuw7x5b3IuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGdldCBzaXplIGZhaWxlZCIKK21zZ3N0ciAiZXJpxZ9pbSBiYcWfYXLEsXPEsXoiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDc4IG1vdW50L3N3YXBvbi5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBvbiAlc1xuIgorbXNnc3RyICIlcyAlcyDDvHplcmluZGVcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9uIGZhaWxlZCIKK21zZ3N0ciAiZXJpxZ9pbSBiYcWfYXLEsXPEsXoiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzOiAlcyBpw6dpbiBheWfEsXQgaXNtaSBidWx1bmFtxLF5b3JcbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQwCisjLCBmdXp6eQorbXNnaWQgIk5vdCBzdXBlcnVzZXIuIgorbXNnc3RyICJyb290IGRlxJ9pbC5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgImVyacWfaW0gYmHFn2FyxLFzxLF6IgorCisjOiBtb3VudC9zd2Fwb24uYzo4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyB1bnN1cHBvcnRlZCBwcm9ncmFtIG5hbWUgKG11c3QgYmUgJ3N3YXBvbicgb3IgJ3N3YXBvZmYnKS4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIC1mXG4iCittc2dzdHIgInVtb3VudDogLWYgacOnaW4gZGVzdGVrIGnDp2VybWVrc2l6aW4gZGVybGVubWnFn1xuIgorCisjOiBtb3VudC91bW91bnQuYzoxMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIm1vdW50OiBoxLF6IGF5YXJsYW5hbcSxeW9yOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTE0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiBoxLF6IGF5YXJsYW5hbcSxeW9yOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJ1bW91bnQ6IGFzdCBzw7xyZcOnIG9sdcWfdHVydWxhbcSxeW9yOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTYwCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGludmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBibG9rIGF5Z8SxdMSxIGdlw6dlcnNpeiIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBiYcSfbGFubWFkxLEiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBjYW4ndCB3cml0ZSBzdXBlcmJsb2NrIgorbXNnc3RyICJ1bW91bnQ6ICVzOiBzdXBlcmJsb2sgeWF6xLFsYW3EsXlvciIKKworIzogbW91bnQvdW1vdW50LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1bW91bnQ6ICVzOiBkZXZpY2UgaXMgYnVzeS5cbiIKKyIgICAgICAgIChJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGFib3V0IHByb2Nlc3NlcyB0aGF0IHVzZVxuIgorIiAgICAgICAgIHRoZSBkZXZpY2UgaXMgZm91bmQgYnkgbHNvZig4KSBvciBmdXNlcigxKSkiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAidW1vdW50OiAlczogeW9rIgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBiYcSfxLEga2FsZMSxcm1hayBpw6dpbiByb290IGdlcmVrbGkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBibG9jayBkZXZpY2VzIG5vdCBwZXJtaXR0ZWQgb24gZnMiCittc2dzdHIgInVtb3VudDogJXM6IGRvc3lhIHNpc3RlbWluZGUgYmxvayBheWfEsXRsYXJhIGl6aW4geW9rIgorCisjOiBtb3VudC91bW91bnQuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogJXMiCittc2dzdHIgInVtb3VudDogJXM6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdW1vdW50MiwgdHJ5aW5nIHVtb3VudC4uLlxuIgorbXNnc3RyICJ1bW91bnQyIHlvaywgdW1vdW50IGRlbmVuaXlvci4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBidXN5IC0gcmVtb3VudGVkIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIG1lxZ9ndWwtIHNhbHQtb2t1bnVyIG9sYXJhayB5ZW5pZGVuIGJhxJ9sYW5kxLFcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY291bGQgbm90IHJlbW91bnQgJXMgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogJXMgc2FsdCBva3VudXIgb2xhcmFrIHllbmlkZW4gYmHEn2xhbmFtxLF5b3JcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiVzIHNpc3RlbWRlbiBheXLEsWxkxLFcbiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgInVtb3VudDogYXlyxLFsYWNhayBkb3N5YSBzaXN0ZW1sZXJpbmluIGxpc3Rlc2kgYnVsdW5hbcSxeW9yIgorCisjOiBtb3VudC91bW91bnQuYzozOTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogdW1vdW50IC1oIHwgLVZcbiIKKyIgICAgICAgdW1vdW50IC1hIFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgdmZzdHlwZXNdIFstTyBvcHRzXVxuIgorIiAgICAgICB1bW91bnQgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIHNwZWNpYWwgfCBub2RlLi4uXG4iCittc2dzdHIgIiIKKyJLdWxsYW7EsW3EsTogdW1vdW50IFstaFZdXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWZdIFstbF0gWy1yXSBbLW5dIFstdl0gWy10IGRzLXTDvHLDvF0gWy1PIHNlw6dlbmVrbGVyXVxuIgorIiAgICAgICB1bW91bnQgWy1mXSBbLXJdIFstbl0gWy12XSDDtnplbCB8IGTDvMSfw7xtLi4uXG4iCisiQmHEn2zEsSBkb3N5YSBzaXN0ZW1sZXJpbmkgYXnEsXJtYWsgacOnaW4ga3VsbGFuxLFsxLFyLlxuIgorIiAgLWggICAgICAgICAgYnUgeWFyZMSxbSBpbGV0aXNpbmkgZ8O2c3RlcmlyIHZlIMOnxLFrYXJcbiIKKyIgIC1WICAgICAgICAgIHPDvHLDvG0gYmlsZ2lsZXJpbmkgZ8O2c3RlcmlyIHZlIMOnxLFrYXJcbiIKKyIgIC1hICAgICAgICAgIC9ldGMvbXRhYidkYSBrYXnEsXRsxLEgdMO8bSBkb3N5YSBzaXN0ZW1sZXJpbmkgYXnEsXLEsXJcbiIKKyIgIC12ICAgICAgICAgIMOnxLFrdMSxIGF5csSxbnTEsSBpw6dlcmlyXG4iCisiICAtbiAgICAgICAgICAvZXRjL210YWIgZG9zeWFzxLFuYSB5YXptYXpcbiIKKyIgIC1yICAgICAgICAgIGF5xLFybWEgYmHFn2FyxLFzxLF6IG9sdXJzYSBzYWx0LW9rdW51ciBvbGFyYWsgYmHEn2xhbWF5xLEgZGVuZXJcbiIKKyIgIC1mICAgICAgICAgIGRvc3lhIHNpc3RlbWkgZXJpxZ9pbGViaWxpciBkZcSfaWxzZSBiaWxlIGRvc3lhIHNpc3RlbWluaSAiCisiYXnEsXLEsXJcbiIKKyIgIC1sICAgICAgICAgIGRvc3lhIHNpc3RlbWluaSBtdXRsYWthIGF5xLFyxLFyLiAoZW4gYXogbGludXgtMi40LjExIGdlcmVraXIpXG4iCisiICAtdCBkcy10w7xyw7wgIC1hIHNlw6dlbmXEn2kgaWxlIGt1bGxhbsSxbGTEscSfxLFuZGEgc2FkZWNlIHTDvHLDvCBiZWxpcnRpbGVuIGRvc3lhXG4iCisiICAgICAgICAgICAgICBzaXN0ZW1sZXJpbmkgYXnEsXLEsXJcbiIKKyJcbiIKKyLDh2V2aXJpIGhhdGFsYXLEsW7EsSA8Z251LXRyQGJlbGdlbGVyLm9yZz4gYWRyZXNpbmUgYmlsZGlyaW5pelxuIgorIkRhaGEgZmF6bGEgYmlsZ2kgZWRpbm1layBpw6dpbiAnbWFuIDggdW1vdW50JyB5YXrEsW7EsXouXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ2OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJTZWt0w7ZyICVkIHphdGVuIGt1bGxhbsSxbWRhXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiU2VrdMO2ciAlZCB6YXRlbiBrdWxsYW7EsW1kYVxuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAiXCJcIiBheXLEsWxhbWF6XG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIiVzIHNpc3RlbWRlbiBheXLEsWxtYXlhIMOnYWzEscWfxLFsxLF5b3JcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUxMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCB1bW91bnQgJXMgLS0gJXMgaXMgbW91bnRlZCBvdmVyIGl0IG9uIHRoZSBzYW1lIHBvaW50LiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgJXMgaW4gbXRhYlxuIgorbXNnc3RyICJtdGFiIGnDp2luZGUgJXMgYnVsdW5hbWFkxLFcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IG1vdW50ZWQgKGFjY29yZGluZyB0byBtdGFiKSIKK21zZ3N0ciAidW1vdW50OiAlcyBiYcSfbMSxIGRlxJ9pbCAobXRhYiBpw6dpbmRlIHlvaykiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGl0IHNlZW1zICVzIGlzIG1vdW50ZWQgbXVsdGlwbGUgdGltZXMiCittc2dzdHIgInVtb3VudDogJXMgZGVmYWxhcmNhIGJhxJ9sYW5txLHFnyBnw7Zyw7xuw7x5b3IiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBpbiB0aGUgZnN0YWIgKGFuZCB5b3UgYXJlIG5vdCByb290KSIKK21zZ3N0ciAidW1vdW50OiAlcyBmc3RhYiBpw6dpbmRlIHlvayAodmUgc2l6IHJvb3QgZGXEn2lsc2luaXopIgorCisjOiBtb3VudC91bW91bnQuYzo1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBtb3VudCBkaXNhZ3JlZXMgd2l0aCB0aGUgZnN0YWIiCittc2dzdHIgInVtb3VudDogJXMgYmHEn8SxIGZzdGFiIGlsZSDDp2VsacWfaXlvciIKKworIzogbW91bnQvdW1vdW50LmM6NjEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogb25seSAlcyBjYW4gdW5tb3VudCAlcyBmcm9tICVzIgorbXNnc3RyICJ1bW91bnQ6IHNhZGVjZSAlMSRzICUzJHMgYXlnxLF0xLFuxLEgJTIkcyBkaXppbmluZGVuIGF5xLFyYWJpbGlyIgorCisjOiBtb3VudC91bW91bnQuYzo3MDEKK21zZ2lkICJ1bW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCIKK21zZ3N0ciAidW1vdW50OiBidSBzYWRlY2Ugcm9vdCB0YXJhZsSxbmRhbiB5YXDEsWxhYmlsaXIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJjaHJ0IC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MuXG4iCisiXG4iCisiU2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIkdldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiXG4iCisiU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKyIgIC1iIHwgLS1iYXRjaCAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfQkFUQ0hcbiIKKyIgIC1mIHwgLS1maWZvICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisiICAtbyB8IC0tb3RoZXIgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX09USEVSXG4iCisiICAtciB8IC0tcnIgICAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX1JSIChkZWZhdWx0KVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorIiAgLXAgfCAtLXBpZCAgICAgICAgICAgb3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIKKyIgIC1tIHwgLS1tYXggICAgICAgICAgIHNob3cgbWluIGFuZCBtYXggdmFsaWQgcHJpb3JpdGllc1xuIgorIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKyIgIC1WIHwgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICIlcyBkaXNrIGLDtmzDvG3DvG5lIHlhemFya2VuIGhhdGEgb2x1xZ90dVxuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHBvbGljeTogIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjEwOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5rbm93blxuIgorbXNnc3RyICJiaWxpbm1leWVuIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBhdHRyaWJ1dGVzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHByaW9yaXR5OiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBtaW4vbWF4IHByaW9yaXR5XHQ6ICVkLyVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBub3Qgc3VwcG9ydGVkP1xuIgorbXNnc3RyICJUQ1Agw7x6ZXJpbmRlbiBORlMgZGVzdGVrbGVubWl5b3IuXG4iCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICIlczogYcOnxLFsYW3EsXlvcjogJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjI1CisjLCBmdXp6eQorbXNnaWQgImN1cnJlbnQiCittc2dzdHIgIm5zYXnEsXPEsSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjMzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAiJXMgZGlzayBiw7Zsw7xtw7xuZSB5YXphcmtlbiBoYXRhIG9sdcWfdHVcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAiJXMgZGlzayBiw7Zsw7xtw7xuZSB5YXphcmtlbiBoYXRhIG9sdcWfdHVcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCisjLCBmdXp6eQorbXNnaWQgIm5ldyIKK21zZ3N0ciAiWWVuaSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiaW9jdGwoKSAlcyBkZW4gemFtYW7EsSBva3V5YW1hZMSxIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjU3CisjLCBmdXp6eQorbXNnaWQgImlvcHJpb19nZXQgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IGJhxZ9hcsSxc8SxelxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjc1CisjLCBmdXp6eQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICJvcGVucHR5IGJhxZ9hcsSxc8SxelxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICIlcyBhw6fEsWxhbcSxeW9yIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgIsOnYWzEscWfdMSxcm1hIGJhxZ9hcsSxc8SxelxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICIiCisiQ3RybC1BbHQtRGVsIGRhdnJhbsSxxZ/EsW7EsW4gYmVsaXJsZW5tZXNpIHNhZGVjZSByb290IHRhcmFmxLFuZGFuIHlhcMSxbGFiaWxpci5cbiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzo0MgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogY3RybGFsdGRlbCBoYXJkfHNvZnRcbiIKK21zZ3N0ciAiS3VsbGFuxLFtxLE6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiRG9zeWEgJXMsIGXFn2lrIGRlxJ9lcmkgJWx1LCBmaWZvJ2Rha2kgZW4gZmF6bGEga2FyYWt0ZXIgc2F5xLFzxLEgJWQgdmVcbiIKKyJrYXJha3Rlci9zYW5peWUgY2luc2luZGVuIGVuIHnDvGtzZWsgYWt0YXLEsW0gaMSxesSxICVmIGlkaVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSBhbmQgdGltcm91dCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyAiCisiaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiRG9zeWEgJXMsIGXFn2lrIGRlxJ9lcmkgJWx1LCB6YW1hbiBhxZ/EsW3EsSBkZcSfZXJpICVsdSxcbiIKKyJmaWZvJ2Rha2kgZW4gZmF6bGEga2FyYWt0ZXIgc2F5xLFzxLEgJWQgdmVcbiIKKyJrYXJha3Rlci9zYW5peWUgY2luc2luZGVuIGVuIHnDvGtzZWsgYWt0YXLEsW0gaMSxesSxICVmIGlkaVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIkFyYWzEsWsgZGXEn2VyaSBnZcOnZXJzaXo6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdmFsdWU6ICVzXG4iCittc2dzdHIgIkF5YXIgZGXEn2VyaSBnZcOnZXJzaXo6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHZhbHVlOiAlc1xuIgorbXNnc3RyICLDlm50YW7EsW1sxLEgZGXEn2VyIGdlw6dlcnNpejogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJaYW1hbiBheWFyIGRlxJ9lcmkgZ2XDp2Vyc2l6OiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICLDlm50YW7EsW1sxLEgemFtYW4gZGXEn2VyaSBnZcOnZXJzaXo6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXEgWy1pIGludGVydmFsXV0gKFstcyB2YWx1ZV18Wy1TIHZhbHVlXSkgKFstdCB2YWx1ZV18Wy1UIHZhbHVlXSkgIgorIlstZ3wtR10gZmlsZSBbZmlsZS4uLl1cbiIKK21zZ3N0ciAiIgorIkt1bGxhbsSxbcSxOiAlcyBbLXEgWy1pIGFyYWzEsWtdXSAoWy1zIGRlxJ9lcl18Wy1TIGRlxJ9lcl0pIChbLXQgZGXEn2VyXXxbLVQgIgorImRlxJ9lcl0pIFstZ3wtR10gZG9zeWEgW2Rvc3lhLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjUwIHN5cy11dGlscy9jeXR1bmUuYzoyNjkgc3lzLXV0aWxzL2N5dHVuZS5jOjI4OQorIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICIlcyBhw6fEsWxhbcSxeW9yOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiVzICVkIGXFn2lrIGRlxJ9lcmluZSBheWFybGFuYW3EsXlvcjogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGltZSB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiVzICVkIHphbWFuIGXFn2lrIGRlxJ9lcmluZSBheWFybGFuYW3EsXlvcjogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIiVzIGnDp2luIGXFn2lrIGRlxJ9lcmkgYWzEsW5hbcSxeW9yOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzAwIHN5cy11dGlscy9jeXR1bmUuYzozNTcgc3lzLXV0aWxzL2N5dHVuZS5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGltZW91dCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIiVzIGnDp2luIHphbWFuIGHFn8SxbcSxIGRlxJ9lcmkgYWzEsW5hbcSxeW9yOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3VycmVudCB0aHJlc2hvbGQgYW5kICVsZCBjdXJyZW50IHRpbWVvdXRcbiIKK21zZ3N0ciAiJXM6ICVsZCBlxZ9payB2ZSAlbGQgemFtYW4gYcWfxLFtxLEgbWV2Y3V0XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIGXFn2lrIHZlICVsZCB6YW1hbiBhxZ/EsW3EsSDDtm50YW7EsW1sxLFcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMyNworbXNnaWQgIkNhbid0IHNldCBzaWduYWwgaGFuZGxlciIKK21zZ3N0ciAic2lueWFsIHlha2FsYXnEsWPEsSBheWFybGFuYW3EsXlvciIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAiZ2V0dGltZW9mZGF5IGJhxZ9hcsSxc8SxeiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjM0NCBzeXMtdXRpbHMvY3l0dW5lLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGlzc3VlIENZR0VUTU9OIG9uICVzOiAlc1xuIgorbXNnc3RyICIlcyDDvHplcmluZGUgQ1lHRVRNT04gdXlndWxhbmFtxLF5b3I6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IGtlc21lLCAlbHUvJWx1IGthcmt0OyBmaWZvOiAlbHUgZcWfaWssICVsdSB6YW0uYcWfLCBlbsOnb2sgJWx1LCDFn3VhbiAlIgorImx1XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYga2VzbWUvczsgJWYga2F5xLF0LCAlZiBnw7ZuZGVyaSAoa2Fya3QvcylcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisiJXM6ICVsdSBrZXNtZSwgJWx1IGthcmFrdGVyOyBmaWZvOiBlxZ9payAlbHUsIHphbWFuIGHFn8SxbcSxICVsdSwgZW4gw6dvayAlbHUsICIKKyLFn2ltZGlraSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiBrZXNtZS9zZWM7ICVmIGthecSxdCAoa2Fya3QvcylcbiIKKworIzogc3lzLXV0aWxzL2RtZXNnLmM6NDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstbiBsZXZlbF0gWy1yXSBbLXMgYnVmc2l6ZV1cbiIKK21zZ3N0ciAiS3VsbGFuxLFtxLE6ICVzIFstY10gWy1uIHNldml5ZV0gWy1zIHRhbXBvbkJveXVdXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGZpbGVuYW1lPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIkt1bGxhbsSxbcSxOiAlcyBbc2XDp2VuZWtsZXJdIGF5Z8SxdCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgZmFsbG9jYXRlKDEpLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDcKKyMsIGZ1enp5Cittc2dpZCAibm8gbGVuZ3RoIGFyZ3VtZW50IHNwZWNpZmllZCIKK21zZ3N0ciAiw4dvayBmYXpsYSBhcmfDvG1hbiBiZWxpcnRpbGRpLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ5CisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgbGVuZ3RoIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiQXlhciBkZcSfZXJpIGdlw6dlcnNpejogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MQorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9mZnNldCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIkF5YXIgZGXEn2VyaSBnZcOnZXJzaXo6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKKyMsIGZ1enp5Cittc2dpZCAibm8gZmlsZW5hbWUgc3BlY2lmaWVkLiIKK21zZ3N0ciAiLS1kYXRlIHNlw6dlbmXEn2kgYmVsaXJ0aWxtZW1pxZ8uXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZmFsbG9jYXRlIGZhaWxlZCIKK21zZ3N0ciAib3BlbnB0eSBiYcWfYXLEsXPEsXpcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlMSRzIFstc3h1bl1bLXcgI10gZmQjXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBmaWxlIFstY10gY29tbWFuZC4uLlxuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZGlyZWN0b3J5IFstY10gY29tbWFuZC4uLlxuIgorIiAgLXMgIC0tc2hhcmVkICAgICBHZXQgYSBzaGFyZWQgbG9ja1xuIgorIiAgLXggIC0tZXhjbHVzaXZlICBHZXQgYW4gZXhjbHVzaXZlIGxvY2tcbiIKKyIgIC11ICAtLXVubG9jayAgICAgUmVtb3ZlIGEgbG9ja1xuIgorIiAgLW4gIC0tbm9uYmxvY2sgICBGYWlsIHJhdGhlciB0aGFuIHdhaXRcbiIKKyIgIC13ICAtLXRpbWVvdXQgICAgV2FpdCBmb3IgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lXG4iCisiICAtbyAgLS1jbG9zZSAgICAgIENsb3NlIGZpbGUgZGVzY3JpcHRvciBiZWZvcmUgcnVubmluZyBjb21tYW5kXG4iCisiICAtYyAgLS1jb21tYW5kICAgIFJ1biBhIHNpbmdsZSBjb21tYW5kIHN0cmluZyB0aHJvdWdoIHRoZSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBEaXNwbGF5IHRoaXMgdGV4dFxuIgorIiAgLVYgIC0tdmVyc2lvbiAgICBEaXNwbGF5IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoxOTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyByZXF1aXJlcyBleGFjdGx5IG9uZSBjb21tYW5kIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIGJpciBhcmfDvG1hbmxhIGt1bGxhbsSxbMSxclxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiAlcyBhw6fEsWxhbcSxeW9yOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICJOdW1hcmEgZ2XDp2Vyc2l6OiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlcXVpcmVzIGZpbGUgZGVzY3JpcHRvciwgZmlsZSBvciBkaXJlY3RvcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3JrIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiYXN0IHPDvHJlw6cgb2x1xZ90dXJ1bGFtYWTEsVxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyJcbiIKK21zZ3N0ciAiS3VsbGFuxLFtxLE6ICVzIFtzZcOnZW5la2xlcl0gYXlnxLF0IC4uLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDIKK21zZ2lkICJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyJQYXlsYcWfxLFtbMSxIGJlbGxlayBCw7Zsw7x0IHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MAorbXNnaWQgImNyZWF0ZSBtZXNzYWdlIHF1ZXVlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyLEsGxldGkgS3V5cnXEn3UgaWx0a2ltbD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTgKKyMsIGZ1enp5Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgImF5csSxbG3EscWfIHNlbWFmb3Igc2F5xLFzxLEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorIlNlbWFmb3IgRGl6aXNpIHNlbWtpbWw9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAia2ltbGlrIGdlw6dlcnNpejogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlbW92ZSBpZCAlcyAoJXMpXG4iCittc2dzdHIgImtpbWxpayAlcyBrYWxkxLFyxLFsYW3EsXlvciAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgImRlcHJlY2F0ZWQgdXNhZ2U6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorbXNnc3RyICIiCisiZXNraSBrdWxsYW7EsW3EsTogJXMge3NobSB8IG1zZyB8IHNlbX0ga2ltbGlrIC4uLlxuIgorIktpbWxpayBpbGUgYmVsaXJ0aWxlbiDDtnprYXluYcSfxLEga2FsZMSxcsSxclxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93biByZXNvdXJjZSB0eXBlOiAlc1xuIgorbXNnc3RyICLDtnprYXluYWsgdMO8csO8IGJpbGlubWl5b3I6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNvdXJjZShzKSBkZWxldGVkXG4iCittc2dzdHIgIsO2emtheW5hayhsYXIpIHNpbGluZGlcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisia3VsbGFuxLFtxLE6ICVzIFsgWy1xIG1zcWtpbWxdIFstbSBzaG1raW1sXSBbLXMgc2Vta2ltbF1cbiIKKyIgICAgICAgICAgICAgIFstUSBtc2dhbmhdIFstTSBzaG1hbmhdIFstUyBzZW1hbmhdIC4uLiBdXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiJXM6IGt1cmFsZMSxxZ/EsSBzZcOnZW5layAtLSAlY1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwga2V5ICglcylcbiIKK21zZ3N0ciAiJXM6IGt1cmFsZMSxxZ/EsSB0dcWfICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBrZXkiCittc2dzdHIgImFuYWh0YXIgacOnaW4gZXJpxZ9pbSBlbmdlbGxlbmRpIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAiYW5haHRhciB6YXRlbiBzaWxpbm1pxZ8iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxMiBzeXMtdXRpbHMvaXBjcm0uYzoyNDMKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAiYW5haHRhciBnZcOnZXJzaXoiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxNSBzeXMtdXRpbHMvaXBjcm0uYzoyNTMKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGtleSIKK21zZ3N0ciAiYW5haHRhcmRhIGJpbGlubWV5ZW4gaGF0YSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjM5Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGlkIgorbXNnc3RyICJraW1saWsgacOnaW4gaXppbmxlciB5ZXRlcnNpeiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ0Cittc2dpZCAiaW52YWxpZCBpZCIKK21zZ3N0ciAia2ltbGlrIGdlw6dlcnNpeiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ5Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGlkIgorbXNnc3RyICJraW1saWsgemF0ZW4gc2lsaW5tacWfIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICJraW1saWt0ZSBiaWxpbm1leWVuIGhhdGEiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgKCVzKVxuIgorbXNnc3RyICIlczogJXMgKCVzKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gYXJndW1lbnQ6ICVzXG4iCittc2dzdHIgIiVzOiBiaWxpbm1leWVuIGFyZ8O8bWFuOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZSA6ICVzIC1hc21xIC10Y2x1cCBcbiIKK21zZ3N0ciAia3VsbGFuxLFtxLE6ICVzIC1hc21xIC10Y2x1cCBcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCittc2dzdHIgIiAgICAgICAgICAgJXMgWy1zIC1tIC1xXSAtaSBraW1saWtcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyAtaCBmb3IgaGVscC5cbiIKK21zZ3N0ciAiICAgICAgICAgICAlcyAtaCB5YXJkxLFtIGFsbWFrIGnDp2luLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHlvdSBoYXZlIHJlYWQgYWNjZXNzLlxuIgorbXNnc3RyICIlcyBva3VtYSBlcmnFn2ltaW5peiBvbGFuIGlwYyB5ZXRlbmVrbGVyaSBoYWtrxLFuZGEgYmlsZ2kgc2HEn2xhci5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlJlc291cmNlIFNwZWNpZmljYXRpb246XG4iCisiXHQtbSA6IHNoYXJlZF9tZW1cbiIKKyJcdC1xIDogbWVzc2FnZXNcbiIKK21zZ3N0ciAiIgorIsOWemtheW5hayDDtnplbGxpa2xlcmk6XG4iCisiXHQtbSA6IHBheWxhxZ/EsW1sxLEgYmVsbGVrXG4iCisiXHQtcSA6IGlsZXRpbGVyXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKyJcdC1zIDogc2VtYWZvcmxhclxuIgorIlx0LWEgOiB0w7xtw7wgKMO2bnRhbsSxbWzEsSlcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk91dHB1dCBGb3JtYXQ6XG4iCisiXHQtdCA6IHRpbWVcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JcbiIKK21zZ3N0ciAiIgorIsOHxLFrdMSxIGJpw6dlbWk6XG4iCisiXHQtdCA6IHphbWFuXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBvbHXFn3R1cmFuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1sIDogbGltaXRzXG4iCisiXHQtdSA6IHN1bW1hcnlcbiIKK21zZ3N0ciAiIgorIlx0LWwgOiBzxLFuxLFybGFyXG4iCisiXHQtdSA6IMO2emV0XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIKK21zZ3N0ciAiIgorIi1pIGtpbWxpayBbLXMgLXEgLW1dIDoga2ltbGlrIGlsZSBiZWxpcnRpbGVuIMO2emtheW5hayBoYWtrxLFuZGEgYmlsZ2kgdmVyaXJcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iCittc2dzdHIgIsOnZWtpcmRlayBwYXlsYcWfxLFtbMSxIGJlbGxlayBpw6dpbiB5YXDEsWxhbmTEsXLEsWxtYW3EscWfXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIFBheWxhxZ/EsW1sxLEgQmVsbGVrIFPEsW7EsXJsYXLEsSAtLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAiYXphbWkgYsO2bMO8dCBzYXnEsXPEsSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VnIHNpemUgKGtieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAiYXphbWkgYsO2bMO8dCBib3l1IChrYikgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1heCB0b3RhbCBzaGFyZWQgbWVtb3J5IChrYnl0ZXMpID0gJWxsdVxuIgorbXNnc3RyICJhemFtaSB0b3BsYW0gcGF5bGHFn8SxbWzEsSBiZWxsZWsgKHNheWZhKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJhc2dhcmkgYsO2bMO8dCBib3l1IChiYXl0KSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0gUGF5bGHFn8SxbWzEsSBCZWxsZWsgRHVydW11IC0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICJheXLEsWxtxLHFnyBiw7Zsw7x0IHNhecSxc8SxICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAiYXlyxLFsbcSxxZ8gc2F5ZmEgc2F5xLFzxLEgICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyByZXNpZGVudCAgJWxkXG4iCittc2dzdHIgImJ1bHVuYW4gc2F5ZmEgc2F5xLFzxLEgICAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgc3dhcHBlZCAgICVsZFxuIgorbXNnc3RyICJ0YWthc2zEsSBzYXlmYSBzYXnEsXPEsSAgICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJTd2FwIHBlcmZvcm1hbmNlOiAlbGQgYXR0ZW1wdHNcdCAlbGQgc3VjY2Vzc2VzXG4iCittc2dzdHIgIlRha2FzIHZlcmltaTogJWxkIGRlbmVtZVx0ICVsZCBiYcWfYXLEsVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0gUGF5bGHFn8SxbWzEsSBCZWxsZWsgQsO2bMO8dCBPbHXFn3R1cnVjdWxhcsSxL0tlbmRpbGVyaSAtLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAic2htaWQiCittc2dzdHIgInNobWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAiaXppbmxlciIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjdWlkIgorbXNnc3RyICJja3VsbGtpbWwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY2dpZCIKK21zZ3N0ciAiY2draW1sIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAia3VsbGtpbSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJnaWQiCittc2dzdHIgImdraW1sIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIFBheWxhxZ/EsW1sxLEgQmVsbGVrIEVrbGVtZS9BecSxcm1hL0RlxJ9pxZ9pa2xpayBaYW1hbmxhcsSxIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEgc3lzLXV0aWxzL2lwY3MuYzozMDcKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTEyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOCBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm93bmVyIgorbXNnc3RyICJzYWhpYmkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiYXR0YWNoZWQiCittc2dzdHIgImVrbGVtZSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJkZXRhY2hlZCIKK21zZ3N0ciAiYXnEsXJtYSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTUKK21zZ2lkICJjaGFuZ2VkIgorbXNnc3RyICJkZcSfacWfaWtsaWsiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tIFBheWxhxZ/EsW1sxLEgQmVsbGVrIE9sdcWfdHVydWN1L1NvbiBpxZ9sZW0gLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImNwaWQiCittc2dzdHIgImNwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAibHBpZCIKK21zZ3N0ciAibHBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0gUGF5bGHFn8SxbWzEsSBCZWxsZWsgQsO2bMO8dGxlcmkgLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJrZXkiCittc2dzdHIgImFuYWh0YXIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAiYnl0ZXMiCittc2dzdHIgImJheXQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAibmF0dGNoIgorbXNnc3RyICJla1NhecSxc8SxIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAiZHVydW0iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzI5IHN5cy11dGlscy9pcGNzLmM6MzMxIHN5cy11dGlscy9pcGNzLmM6MzMzCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ0NCBzeXMtdXRpbHMvaXBjcy5jOjQ0NiBzeXMtdXRpbHMvaXBjcy5jOjU0NQorIzogc3lzLXV0aWxzL2lwY3MuYzo1NDcgc3lzLXV0aWxzL2lwY3MuYzo1NDkgc3lzLXV0aWxzL2lwY3MuYzo2MDAKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAyIHN5cy11dGlscy9pcGNzLmM6NjMwIHN5cy11dGlscy9pcGNzLmM6NjMyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzNCBzeXMtdXRpbHMvaXBjcy5jOjY1NworbXNnaWQgIk5vdCBzZXQiCittc2dzdHIgIkJlbGlybGVubWVkaSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjEKK21zZ2lkICJkZXN0IgorbXNnc3RyICJoZWRlZiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjIKK21zZ2lkICJsb2NrZWQiCittc2dzdHIgImtpbGl0bGkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2VtYXBob3Jlc1xuIgorbXNnc3RyICLDp2VraXJkZWsgc2VtYWZvcmxhciBpw6dpbiB5YXDEsWxhbmTEsXLEsWxtYW3EscWfXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZW1hZm9yIFPEsW7EsXJsYXLEsSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgImF6YW1pIGRpemkgc2F5xLFzxLEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBwZXIgYXJyYXkgPSAlZFxuIgorbXNnc3RyICJkaXppIGJhxZ/EsW5hIGF6YW1pIHNlbWFmb3Igc2F5xLFzxLEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgInTDvG0gc2lzdGVtZGVraSBhemFtaSBzZW1hZm9yIHNhecSxc8SxID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG9wcyBwZXIgc2Vtb3AgY2FsbCA9ICVkXG4iCittc2dzdHIgInNlbW9wIMOnYcSfcsSxc8SxIGJhxZ/EsW5hIGF6YW1pIGnFn2xlbSBzYXnEsXPEsSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbWFwaG9yZSBtYXggdmFsdWUgPSAlZFxuIgorbXNnc3RyICJzZW1hZm9yIGF6YW1pIGRlxJ9lcmkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gU2VtYWZvciBEdXJ1bXUgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJrdWxsYW7EsWxhbiBkaXppIHNhecSxc8SxID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHNlbWFwaG9yZXMgPSAlZFxuIgorbXNnc3RyICJheXLEsWxtxLHFnyBzZW1hZm9yIHNhecSxc8SxID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZW1hZm9yIERpemlsZXJpIE9sdcWfdHVydWN1L0tlbmRpIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAic2VtaWQiCittc2dzdHIgInNlbWtpbWwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLSBQYXlsYcWfxLFtbMSxIEJlbGxlayDEsMWfbGVtL0RlxJ9pxZ9pa2xpayBaYW1hbmxhcsSxIC0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICJzb24tacWfbCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgInNvbi1kZcSfxZ8iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBTZW1hZm9yIERpemlsZXJpIC0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgIm5zZW1zIgorbXNnc3RyICJzZW1TYXnEsXPEsSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBtZXNzYWdlIHF1ZXVlc1xuIgorbXNnc3RyICLDp2VraXJkZWsgaWxldGkga3V5cnVrbGFyxLEgacOnaW4geWFwxLFsYW5kxLFyxLFsbWFtxLHFn1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gxLBsZXRpbGVyOiBTxLFuxLFybGFyIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICJ0w7xtIHNpc3RlbWRla2kgYXphbWkga3V5cnVrIHNhecSxc8SxID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNpemUgb2YgbWVzc2FnZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAiYXphbWkgaWxldGkgdXp1bmx1xJ91IChiYXl0KSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgImRlZmF1bHQgbWF4IHNpemUgb2YgcXVldWUgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgIsO2bnRhbsSxbWzEsSBhemFtaSBrdXlydWsgYm95dSAoYmF5dCkgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gxLBsZXRpbGVyOiBEdXJ1bSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OAorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgcXVldWVzID0gJWRcbiIKK21zZ3N0ciAiYXlyxLFsbcSxxZ8ga3V5cnVrIHNhecSxc8SxID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBoZWFkZXJzID0gJWRcbiIKK21zZ3N0ciAia3VsbGFuxLFsbcSxxZ8gYmHFn2zEsWsgc2F5xLFzxLEgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIHNwYWNlID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAia3VsbGFuxLFsbcSxxZ8gYWxhbiA9ICVkIGJheXRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzOiBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIMSwbGV0aSBLdXlydWtsYXLEsTogT2x1xZ90dXJ1Y3UvS2VuZGkgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgImlsdGtpbWwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBTZW5kL1JlY3YvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDEsGxldGkgS3V5cnVrbGFyxLEgR8O2bmQvQWzEsW0vRGXEn2nFny4gWmFtYW5sYXLEsSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgImfDtm5kZXJpbSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJyZWN2IgorbXNnc3RyICJhbMSxbSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJjaGFuZ2UiCittc2dzdHIgImRlxJ9pxZ9pbSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFBJRHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIMSwbGV0aSBLdXlydWtsYXLEsSBQSUQnbGVyaSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICJsc3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJscnBpZCIKK21zZ3N0ciAibHJwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gxLBsZXRpIEt1eXJ1a2xhcsSxIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAidXNlZC1ieXRlcyIKK21zZ3N0ciAia3VsbC1iYXl0IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgIm1lc3NhZ2VzIgorbXNnc3RyICJpbGV0aS1zYXnEsXPEsSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1ODkKKyMsIGZ1enp5Cittc2dpZCAic2htY3RsIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMgaGF0YSB2ZXJkaSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiUGF5bGHFn8SxbWzEsSBiZWxsZWsgQsO2bMO8dCBzaG1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFxuIgorbXNnc3RyICJrdWxsa2ltbD0lZFx0Z2tpbWw9JWRcdGNrdWxsa2ltbD0lZFx0Y2draW1sPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgImtpcD0lI29cdGVyacWfaW1faXpuaT0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCittc2dzdHIgImJheXQ9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRla1NhecSxc8SxPSVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJhdHRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJhdHRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJkZXRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMyBzeXMtdXRpbHMvaXBjcy5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNQorIywgZnV6enkKK21zZ2lkICJtc2djdGwgZmFpbGVkIgorbXNnc3RyICJmc3luYyBoYXRhIHZlcmRpIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisixLBsZXRpIEt1eXJ1xJ91IGlsdGtpbWw9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgImt1bGxraW1sPSVkXHRna2ltbD0lZFx0Y2t1bGxraW1sPSVkXHRjZ2tpbWw9JWRcdGtpcD0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICJjYmF5dD0lbGRcdHFiYXl0PSVsZFx0cVNhecSxc8SxPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJnw7ZuZGVyaW1femFtYW7EsT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJhbMSxxZ9femFtYW7EsT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY0OCBzeXMtdXRpbHMvaXBjcy5jOjY3MAorIywgZnV6enkKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICJlcmnFn2ltIGJhxZ9hcsSxc8SxeiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisiU2VtYWZvciBEaXppc2kgc2Vta2ltbD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJrdWxsa2ltbD0lZFx0IGdraW1sPSVkXHQgY2t1bGxraW1sPSVkXHQgY2draW1sPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgImtpcD0lI28sIGVyacWfaW1faXpuaT0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibnNlbXMgPSAlbGRcbiIKK21zZ3N0ciAic2VtU2F5xLFzxLEgPSAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAib3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJvdGltZSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImN0aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAiY3RpbWUgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAic2VtbnVtIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInZhbHVlIgorbXNnc3RyICJkZcSfZXIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAibmNvdW50IgorbXNnc3RyICJuc2F5xLFzxLEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICJ6c2F5xLFzxLEiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAicGlkIgorbXNnc3RyICJwaWQiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBzcGVlZDogJXMiCittc2dzdHIgImtpbWxpayBnZcOnZXJzaXo6ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGRhdHRhY2ggZnJvbSAlc1xuIgorbXNnc3RyICIlMiRzIGRla2kgJTEkc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxODQgdGV4dC11dGlscy90YWlsZi5jOjIwNgorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAia2ltbGlrIGdlw6dlcnNpeiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGxpbmUgZGlzY2lwbGluZTogJXMiCittc2dzdHIgImtpbWxpayBnZcOnZXJzaXo6ICVzXG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiCittc2dzdHIgIiVzIGJpciBibG9rLcO2emVsIGF5Z8SxdCBkZcSfaWwiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiJXMgdXp1bmx1xJ91IGFsxLFuYW3EsXlvciIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWVkICVkIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHNldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiJXMgdXp1bmx1xJ91IGFsxLFuYW3EsXlvciIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjUxCisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCBzZXQgbGluZSBkaXNjaXBsaW5lIgorbXNnc3RyICJEaXNrIHPDvHLDvGPDvCDDvHplcmluZGUgYXJhbWEgeWFwxLFsYW3EsXlvciIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3CisjLCBmdXp6eQorbXNnaWQgImNhbm5vdCBkYWVtb25pemUiCittc2dzdHIgIiVzIHV6dW5sdcSfdSBhbMSxbmFtxLF5b3IiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0CisjLCBmdXp6eQorbXNnaWQgIm5vbmUiCittc2dzdHIgIkhpw6diaXJpIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NQorbXNnaWQgInBhcmEiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjYKK21zZ2lkICJmdWxsIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjEzNyBzeXMtdXRpbHMvbHNjcHUuYzoxNjAgc3lzLXV0aWxzL2xzY3B1LmM6NDU2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgIlJFIGhhdGFzxLE6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHBhcnNlOiAlcyIKK21zZ3N0ciAiJXMgb2t1bnVya2VuIGhhdGFcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTg0CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBzdHJkdXAgZmFpbGVkIgorbXNnc3RyICIlcyBhw6fEsWxhbWFkxLEiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjI2NworIywgZnV6enkKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICIiCisiXG4iCisiRG9zeWEga2FwYXTEsWzEsXJrZW4gaGF0YVxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MDYKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IG1hbGxvYyBmYWlsZWQiCittc2dzdHIgImJlbGxlayBheXLEsWxhbWFkxLEiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXJcbiIKKyIjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElEXG4iCisiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisiIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKK21zZ2lkICJDUFUgb3AtbW9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI1Cittc2dpZCAiVGhyZWFkKHMpIHBlciBjb3JlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzUKK21zZ2lkICJDUFUgZmFtaWx5OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzcKK21zZ2lkICJNb2RlbDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKKyMsIGZ1enp5Cittc2dpZCAiVmlydHVhbGl6YXRpb246IgorbXNnc3RyICJFc2tpIGR1cnVtOlxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDkKK21zZ2lkICJIeXBlcnZpc29yIHZlbmRvcjoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUwCittc2dpZCAiVmlydHVhbGl6YXRpb24gdHlwZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNhY2hlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uXVxuIgorbXNnc3RyICJLdWxsYW7EsW3EsTogJXMgW3Nlw6dlbmVrbGVyXSBheWfEsXQgLi4uXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2OQorbXNnaWQgIiIKKyJDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGhlbHBlclxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuXG4iCisiICAtcywgLS1zeXNyb290ICB1c2UgdGhlIGRpcmVjdG9yeSBhcyBhIG5ldyBzeXN0ZW0gcm9vdC5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiBjaGFuZ2Ugd29ya2luZyBkaXJlY3RvcnkgdG8gJXMuIgorbXNnc3RyICIlcyBpw6dpbiBraXAgZGXEn2nFn3RpcmlsaXJrZW4gaGF0YTogJXNcbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgImt1bGxhbsSxbcSxOiByZGV2IFsgLXJ2IF0gWyAtbyBLT05VTSBdIFsgWUFOU0kgWyBERcSeRVIgWyBLT05VTSBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiAgcmRldiAvZGV2L2ZkMCAgKHZleWEgcmRldiAvbGludXgsIHZiLikgS8OWSyBheWfEsXTEsSBnw7ZzdGVyaXIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIEvDlkvDvCAvZGV2L2hkYTIgJ3llIGF5YXJsYXIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODAKK21zZ2lkICIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBST09URkxBR1MgKHJlYWRvbmx5IHN0YXR1cykiCittc2dzdHIgIiIKKyIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgS8OWSyBCYXlyYWtsYXLEsSBiZWxpcmxlbmlyIChzYWx0LW9rdW51cikiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODEKK21zZ2lkICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiCittc2dzdHIgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBSQU1ESVNLIGJveXUgYmVsaXJsZW5pciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICDDtm55w7xrbGVtZSBWSURFT01PREUgYmVsaXJsZW5pciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MworbXNnaWQgIiAgcmRldiAtbyBOIC4uLiAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGJ5dGUgb2Zmc2V0IE4iCittc2dzdHIgIiIKKyIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAgYmF5dCBnw7ZyZWxpIGtvbnVtdSBOIG9sYXJhayBiZWxpcmxlbmlyIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg0Cittc2dpZCAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtUiIKK21zZ3N0ciAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHJkZXYgLVIgaWxlIGF5bsSxIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHJkZXYgLXIgaWxlIGF5bsSxIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg2Cittc2dpZCAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtdiIKK21zZ3N0ciAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHJkZXYgLXYgaWxlIGF5bsSxIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg3Cittc2dpZCAiIgorIk5vdGU6IHZpZGVvIG1vZGVzIGFyZTogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLCAxPWtleTEsIDI9a2V5MiwuLi4iCittc2dzdHIgIiIKKyJCaWxnaTogdmlkZW8ga2lwbGVyaTogLTM9U29yLCAtMj1HZWxpxZ9tacWfLCAtMT1Ob3JtYWxWZ2EsIDE9dHXFnzEsIDI9dHXFnzIsLi4uIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiAgICAgIGvDtmvDvCBzYWx0LW9rdW51ciBiYcSfbGFtYWsgacOnaW4gLVIgMSwgb2t1LXlheiBpw6dpbiAtUiAwIGt1bGxhbsSxbi4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAidmlyZ8O8bCBla3NpayIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NzIgdGV4dC11dGlscy9tb3JlLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIm91dCBvZiBtZW1vcnkiCittc2dzdHIgImJlbGxlayB5ZXRlcnNpeiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6IFwiJXMgW29wdGlvbnNdXG4iCisiXHQgLW0gPG1hcGZpbGU+ICAoZGVmYXVsdHM6IFwiJXNcIiBhbmRcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsZT4gKGRlZmF1bHQ6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIgdG8gPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBwcmludCBvbmx5IGluZm8gYWJvdXQgdGhlIHNhbXBsaW5nIHN0ZXBcbiIKKyJcdCAtdiAgICAgICAgICAgIHByaW50IHZlcmJvc2UgZGF0YVxuIgorIlx0IC1hICAgICAgICAgICAgcHJpbnQgYWxsIHN5bWJvbHMsIGV2ZW4gaWYgY291bnQgaXMgMFxuIgorIlx0IC1iICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBoaXN0b2dyYW0tYmluIGNvdW50c1xuIgorIlx0IC1zICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBjb3VudGVycyB3aXRoaW4gZnVuY3Rpb25zXG4iCisiXHQgLXIgICAgICAgICAgICByZXNldCBhbGwgdGhlIGNvdW50ZXJzIChyb290IG9ubHkpXG4iCisiXHQgLW4gICAgICAgICAgICBkaXNhYmxlIGJ5dGUgb3JkZXIgYXV0by1kZXRlY3Rpb25cbiIKKyJcdCAtViAgICAgICAgICAgIHByaW50IHZlcnNpb24gYW5kIGV4aXRcbiIKK21zZ3N0ciAiIgorIiVzOiBLdWxsYW7EsW3EsTogXCIlcyBbc2XDp2VuZWtsZXJdXG4iCisiXHQgLW0gPGXFn2xlbWRvc3lhc8SxPiAgKMO2bnRhbsSxbWzEsSA9IFwiJXNcIiB2ZVxuIgorIlx0ICAgICAgICAgICAgICAgICAgICAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm9kb3N5YXPEsT4gICAgKMO2bnRhbsSxbWzEsSA9IFwiJXNcIilcbiIKKyJcdCAtTSA8w6dhcnBhbj4gICAgICAgIHByb2ZpbCDDp2/En3VsbGF5xLFjxLEgYmVsaXJ0aWxpclxuIgorIlx0IC1pICAgICAgICAgICAgICAgICDDtnJuZWtsZW1lIGFkxLFtxLEgaGFra8SxbmRhIGJpbGdpIHZlcmlyXG4iCisiXHQgLXYgICAgICAgICAgICAgICAgIGF5csSxbnTEsWzEsSBiaWxnaSB2ZXJpclxuIgorIlx0IC1hICAgICAgICAgICAgICAgICBzYXnEsXPEsSAwIGJpbGUgb2xzYSB0w7xtIHNlbWJvbGxlcmkgZ8O2c3RlcmlyXG4iCisiXHQgLWIgICAgICAgICAgICAgICAgIGhpc3RvZ3JhbS1iaW4gc2F5xLFsYXLEsW7EsSB0ZWsgdGVrIGfDtnN0ZXJpclxuIgorIlx0IC1zICAgICAgICAgICAgICAgICBpxZ9sZXZsZXJpbiBpw6dpbmRla2kgYmHEn8SxbXPEsXogc2F5YcOnbGFyxLEgYmFzYXJcbiIKKyJcdCAtciAgICAgICAgICAgICAgICAgdMO8bSBzYXlhw6dsYXIgc8SxZsSxcmxhbsSxciAoc2FkZWNlIHJvb3QpXG4iCisiXHQgLW4gICAgICAgICAgICAgICAgIGJheXQgc8SxcmFsYW1hc8SxbsSxbiBzYXB0YW5tYXPEsW7EsSDDtm5sZXJcbiIKKyJcdCAtViAgICAgICAgICAgICAgICAgc8O8csO8bSBiaWxnaWxlcmluaSBnw7ZzdGVyaXIgdmUgw6fEsWthclxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyMjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICJtb3VudDogJXMgeWF6xLFsxLFya2VuIGhhdGE6ICVzIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgcmV2ZXJzZWQgYnl0ZSBvcmRlci4gVXNlIC1uIHRvIGZvcmNlIG5hdGl2ZSBieXRlIG9yZGVyLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI4NAorIywgYy1mb3JtYXQKK21zZ2lkICJTYW1wbGluZ19zdGVwOiAlaVxuIgorbXNnc3RyICLDlnJuZWtsZW1lX2FkxLFtxLE6ICVpXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMwNSBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzKCVpKTogd3JvbmcgbWFwIGxpbmVcbiIKK21zZ3N0ciAiJXM6ICVzKCVpKTogZcWfbGVtIHNhdMSxcsSxIHlhbmzEscWfXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBcIl9zdGV4dFwiIGluICVzXG4iCittc2dzdHIgIiVzOiBcIl9zdGV4dFwiICVzIGnDp2luZGUgYnVsdW5hbcSxeW9yXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcHJvZmlsZSBhZGRyZXNzIG91dCBvZiByYW5nZS4gV3JvbmcgbWFwIGZpbGU/XG4iCittc2dzdHIgIiVzOiBwcm9maWwgYWRyZXNpIGthcHNhbWTEscWfxLEuIEXFn2xlbSBkb3N5YXPEsSB5YW5sxLHFnyBvbGFiaWxpciBtaT9cbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NDEyCittc2dpZCAidG90YWwiCittc2dzdHIgInRvcGxhbSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICIlMiRzIGRla2kgJTEkc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiBrdWxsYW7EsWPEsSBiaWxpbm1peW9yXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IGRlxJ9lciBoYXRhbMSxXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6IGVza2kgw7ZuY2VsaWsgJWQsIHllbmkgw7ZuY2VsaWsgJWRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0NworbXNnaWQgInJlYWQgc3lzdGVtIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI0Cittc2dpZCAic2V0IHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyOAorbXNnaWQgImVuYWJsZSBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMzIKK21zZ2lkICJzZXQgcnRjIHdha2UgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIiAlczogZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1IHTDvHLDvCB0YW7EsW5txLF5b3JcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIGludGVydmFsICVzIHNlY29uZHNcbiIKK21zZ3N0ciAiJXM6IGt1cmFsZMSxxZ/EsSB0dcWfICglcylcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIHRpbWVfdCB2YWx1ZSAlc1xuIgorbXNnc3RyICIlczoga3VyYWxkxLHFn8SxIHNlw6dlbmVrIC0tICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIiCisiJXMgc8O8csO8bSAlc1xuIgorIsOHZXZpcmkgaGF0YWxhcsSxbsSxIDxnbnUtdHItdTEyYUBsaXN0c3NvdXJjZWZvcmdlLm5ldD4gYWRyZXNpbmUgYmlsZGlyaW5pelxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAiJXMga3VsbGFuYXJhay5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGxvY2FsIHRpbWUuXG4iCittc2dzdHIgIiVzIGt1bGxhbmFyYWsuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBtdXN0IHByb3ZpZGUgd2FrZSB0aW1lXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MTcKKyMsIGZ1enp5Cittc2dpZCAibWFsbG9jKCkgZmFpbGVkIgorbXNnc3RyICJiZWxsZWsgYXlyxLFsYW1hZMSxIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iCittc2dzdHIgIiVzOiAlcyBiaXIgbHAgYXlnxLF0xLEgZGXEn2lsLlxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDY1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIiVzQCVzIGRlbiBpbGV0aSB2YXIgKCVzIMO8emVyaW5kZW4sIMWfdSBhbiAlcykgLi4uIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIlcyAlcyBvbGFyYWsgZGXEn2nFn3RpcmlsZW1peW9yOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ5NgorIywgZnV6enkKK21zZ2lkICJydGMgcmVhZCIKK21zZ3N0ciAiLCBoYXrEsXIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NTA1Cittc2dpZCAiZGlzYWJsZSBydGMgYWxhcm0gaW50ZXJydXB0IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dpdGNoaW5nIG9uICVzLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMlcyBbb3B0aW9uc10gW3Byb2dyYW0gW3Byb2dyYW0gYXJndW1lbnRzXV1cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBzYXlzIHdoYXQgb3B0aW9ucyBhcmUgYmVpbmcgc3dpdGNoZWQgb25cbiIKKyIgLVIsIC0tYWRkci1uby1yYW5kb21pemUgIGRpc2FibGVzIHJhbmRvbWl6YXRpb24gb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyAiCisic3BhY2VcbiIKKyIgLUYsIC0tZmRwaWMtZnVuY3B0cnMgICAgIG1ha2VzIGZ1bmN0aW9uIHBvaW50ZXJzIHBvaW50IHRvIGRlc2NyaXB0b3JzXG4iCisiIC1aLCAtLW1tYXAtcGFnZS16ZXJvICAgICB0dXJucyBvbiBNTUFQX1BBR0VfWkVST1xuIgorIiAtTCwgLS1hZGRyLWNvbXBhdC1sYXlvdXQgY2hhbmdlcyB0aGUgd2F5IHZpcnR1YWwgbWVtb3J5IGlzIGFsbG9jYXRlZFxuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgdHVybnMgb24gUkVBRF9JTVBMSUVTX0VYRUNcbiIKKyIgLUIsIC0tMzJiaXQgICAgICAgICAgICAgIHR1cm5zIG9uIEFERFJfTElNSVRfMzJCSVRcbiIKKyIgLUksIC0tc2hvcnQtaW5vZGUgICAgICAgIHR1cm5zIG9uIFNIT1JUX0lOT0RFXG4iCisiIC1TLCAtLXdob2xlLXNlY29uZHMgICAgICB0dXJucyBvbiBXSE9MRV9TRUNPTkRTXG4iCisiIC1ULCAtLXN0aWNreS10aW1lb3V0cyAgICB0dXJucyBvbiBTVElDS1lfVElNRU9VVFNcbiIKKyIgLTMsIC0tM2diICAgICAgICAgICAgICAgIGxpbWl0cyB0aGUgdXNlZCBhZGRyZXNzIHNwYWNlIHRvIGEgbWF4aW11bSBvZiAzICIKKyJHQlxuIgorIiAgICAgLS00Z2IgICAgICAgICAgICAgICAgaWdub3JlZCAoZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seSlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHNldGFyY2goOCkuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxNDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJXNcbiIKKyJUcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIkRhaGEgZmF6bGEgYmlsZ2kgacOnaW4gYGdldG9wdCAtLWhlbHAnIHlhesSxbsSxei5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyMTUgc3lzLXV0aWxzL3NldGFyY2guYzoyMzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIgJXM6IGRpc2sgYsO2bMO8bWxlbWUgdGFibG9zdSB0w7xyw7wgdGFuxLFubcSxeW9yXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2CisjLCBmdXp6eQorbXNnaWQgIk5vdCBlbm91Z2ggYXJndW1lbnRzIgorbXNnc3RyICLDh29rIGZhemxhIGFyZ8O8bWFuIGJlbGlydGlsZGkuXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjY1IHN5cy11dGlscy9zZXRhcmNoLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gc2V0IHBlcnNvbmFsaXR5IHRvICVzIgorbXNnc3RyICIlcyBkaXNrIGLDtmzDvG3DvG5lIHlhemFya2VuIGhhdGEgb2x1xZ90dVxuIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiAlcyBwcm9ncmFtIFthcmcgLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyA8ZGV2aWNlPiBbIC1pIDxJUlE+IHwgLXQgPFRJTUU+IHwgLWMgPENIQVJTPiB8IC13IDxXQUlUPiB8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorIkt1bGxhbsSxbcSxOiAlcyA8YXlnxLF0PiBbIC1pIDxJUlE+IHwgLXQgPFpBTUFOPiB8IC1jIDxLQVJLVD4gfCAtdyA8R0VDxLBLTUU+ICIKKyJ8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICJiZWxsZWsgYXnEsXJtYSBoYXRhc8SxIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAiJXM6IGRlxJ9lciBoYXRhbMSxXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBhbiBscCBkZXZpY2UuXG4iCittc2dzdHIgIiVzOiAlcyBiaXIgbHAgYXlnxLF0xLEgZGXEn2lsLlxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN0YXR1cyBpcyAlZCIKK21zZ3N0ciAiJXMgZHVydW11ICVkIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgYnVzeSIKK21zZ3N0ciAiLCBtZcWfZ3VsIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgcmVhZHkiCittc2dzdHIgIiwgaGF6xLFyIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb3V0IG9mIHBhcGVyIgorbXNnc3RyICIsIGthxJ/EsXQgeW9rIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb24tbGluZSIKK21zZ3N0ciAiLCDDp2FsxLHFn8SxeW9yIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZXJyb3IiCittc2dzdHIgIiwgaGF0YSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI4NQorbXNnaWQgIkxQR0VUSVJRIGVycm9yIgorbXNnc3RyICJMUEdFVElSUSBoYXRhc8SxIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIlcyBJUlEgJWQga3VsbGFuxLF5b3JcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBwb2xsaW5nXG4iCittc2dzdHIgIiVzIHNvcmd1bGFtYSBrdWxsYW7EsXlvclxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjU3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIDxwcm9ncmFtPiBbYXJncy4uLl1cbiIKK21zZ3N0ciAia3VsbGFuxLFtxLE6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjAKK21zZ2lkICIiCisiUnVuIHByb2dyYW0gd2l0aCBzb21lIG5hbWVzcGFjZXMgdW5zaGFyZWQgZnJvbSBwYXJlbnRcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgdW5zaGFyZSBtb3VudHMgbmFtZXNwYWNlXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIFVUUyBuYW1lc3BhY2UgKGhvc3RuYW1lIGV0YylcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorIiAgLW4sIC0tbmV0ICAgICAgICAgdW5zaGFyZSBuZXR3b3JrIG5hbWVzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdW5zaGFyZSgxKS5cbiIKK21zZ3N0ciAiS3VsbGFuxLFjxLEgYmlsZ2lsZXJpIGRlxJ9pxZ90aXJpbGRpLlxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExNAorIywgZnV6enkKK21zZ2lkICJ1bnNoYXJlIGZhaWxlZCIKK21zZ3N0ciAiZXJpxZ9pbSBiYcWfYXLEsXPEsXoiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJleGVjICVzIGZhaWxlZCIKK21zZ3N0ciAiw6dhbMSxxZ90xLFybWEgYmHFn2FyxLFzxLF6XG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogYmFkIC1sIGFyZ3VtZW50ICVzLlxuIgorbXNnc3RyICJjb2w6IC1sIGFyZ8O8bWFuxLEgJXMgaGF0YWzEsS5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKK21zZ3N0ciAia3VsbGFuxLFtxLE6IGNvbCBbLWJmcHhdIFstbCBzYXTEsXJzYXnEsXPEsV1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiB5YXptYSBoYXRhc8SxLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdhcm5pbmc6IGNhbid0IGJhY2sgdXAgJXMuXG4iCittc2dzdHIgImNvbDogdXlhcsSxOiAlcyB5ZWRla2xlbmVtaXlvci5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICJwYXN0IGZpcnN0IGxpbmUiCittc2dzdHIgImdlw6dlbiBpbGsgc2F0xLFyIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgIi0tIGxpbmUgYWxyZWFkeSBmbHVzaGVkIgorbXNnc3RyICItLSBzYXTEsXIgemF0ZW4gZ2XDp3RpIgorCisjOiB0ZXh0LXV0aWxzL2NvbGNydC5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC0gXSBbIC0yIF0gWyBmaWxlIC4uLiBdXG4iCittc2dzdHIgImt1bGxhbsSxbcSxOiAlcyBbIC0gXSBbIC0yIF0gWyBkb3N5YSAuLi4gXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgInNhdMSxciDDp29rIHV6dW4iCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAia3VsbGFuxLFtxLE6IGNvbHVtbiBbLXR4XSBbLWMgc8O8dHVuXSBbZG9zeWEgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBsZW5ndGggdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IHV6dW5sdWsgaGF0YWzEsS5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgc2tpcCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogYXRsYW1hIGRlxJ9lcmkgaGF0YWzEsS5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgYmnDp2VtXSBbLWYgYmnDp2VtRG9zeWFzxLFdIFstbiB1enVubHVrXSBbLXMgYXRsYW5hbl0gIgorIltkb3N5YSAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWy1kZmxwY3N1XSBbK2xpbmVudW0gfCArL3BhdHRlcm5dIG5hbWUxIG5hbWUyIC4uLlxuIgorbXNnc3RyICJrdWxsYW7EsW3EsTogJXMgWy1kZmxwY3N1XSBbK3NhdMSxcm51bSB8ICsva2FsxLFwXSBpc2ltMSBpc2ltMiAuLi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICJUYW1wb24gYXlyxLFsYW1hZMSxLlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gb3B0aW9uIFwiLSVjXCJcbiIKK21zZ3N0ciAiJXM6IFwiLSVjXCIgZGl5ZSBiaXIgc2XDp2VuZWsgYmlsaW5taXlvclxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKiAlczogZGlyZWN0b3J5ICoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqICVzOiBkaXppbiAqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKioqKioqKiAlczogTm90IGEgdGV4dCBmaWxlICoqKioqKioqXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyIqKioqKioqKiAlczogQmlyIG1ldGluIGRvc3lhc8SxIGRlxJ9pbCAqKioqKioqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo2NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1VzZSBxIG9yIFEgdG8gcXVpdF0iCittc2dzdHIgIlvDh8Sxa21hayBpw6dpbiBxIHlhIGRhIFEga3VsbGFuxLFuXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tTW9yZS0tIgorbXNnc3RyICItLUJhxZ9rYS0tIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiKE5leHQgZmlsZTogJXMpIgorbXNnc3RyICIoU29ucmFraSBkb3N5YTogJXMpIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzIHNwYWNlIHRvIGNvbnRpbnVlLCAncScgdG8gcXVpdC5dIgorbXNnc3RyICJbRGV2YW0gZXRtZWsgacOnaW4gYm/Fn2x1ayDDp3VidcSfdW5hLCDDp8Sxa21hayBpw6dpbiAncScgdHXFn3VuYSBiYXPEsW7EsXouXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi5rYWxhbiAlZCBzYXlmYSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwOAorbXNnaWQgIi4uLmJhY2sgMSBwYWdlIgorbXNnc3RyICIuLi5rYWxhbiAxIHNheWZhIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUxCittc2dpZCAiLi4uc2tpcHBpbmcgb25lIGxpbmUiCittc2dzdHIgIi4uLmJpciBzYXTEsXIgYXRsYW7EsXlvciIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MworIywgYy1mb3JtYXQKK21zZ2lkICIuLi5za2lwcGluZyAlZCBsaW5lcyIKK21zZ3N0ciAiLi4uJWQgc2F0xLFyIGF0bGFuxLF5b3IiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqS2FsYW4qKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMyOAorbXNnaWQgIiIKKyJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgRGVmYXVsdHMgaW4gIgorImJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisiXG4iCisiS29tdXRsYXLEsW4gw6dvxJ91IGJpciBrIHRhbXNhecSxIGFyZ8O8bWFuIGFsYWJpbGlyLiBWZXJpbG1lenNlIGvDtsWfZWxpXG4iCisicGFyYW50ZXpsZXJsZSBiZWxpcnRpbGVubGVyIMO2bnRhbsSxbWzEsWTEsXIuIFnEsWxkxLF6ICgqKSBpxZ9hcmV0aSB5ZW5pIMO2bnRhbsSxbWzEsVxuIgorImRlxJ9lciBvbGFjYcSfxLFuxLEgYmVsaXJ0aXIuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMzUKK21zZ2lkICIiCisiPHNwYWNlPiAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFsxXSpcbiIKKyJkIG9yIGN0cmwtRCAgICAgICAgICAgICBTY3JvbGwgayBsaW5lcyBbY3VycmVudCBzY3JvbGwgc2l6ZSwgaW5pdGlhbGx5IDExXSpcbiIKKyJxIG9yIFEgb3IgPGludGVycnVwdD4gICBFeGl0IGZyb20gbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGxpbmVzIG9mIHRleHQgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorImIgb3IgY3RybC1CICAgICAgICAgICAgIFNraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGxpbmUgbnVtYmVyXG4iCisiLzxyZWd1bGFyIGV4cHJlc3Npb24+ICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiBsYXN0IHIuZSBbMV1cbiIKKyIhPGNtZD4gb3IgOiE8Y21kPiAgICAgICBFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBhdCBjdXJyZW50IGxpbmVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRyYXcgc2NyZWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIG5leHQgZmlsZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggcHJldmlvdXMgZmlsZSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCBwcmV2aW91cyBjb21tYW5kXG4iCittc2dzdHIgIiIKKyI8Ym/Fn2x1az4gICAgICAgTWV0bmluIHNvbnJha2kgayBzYXTEsXLEsW7EsSBnw7ZzdGVyaXIgW2VrcmFuxLFuIHNhdMSxciBzYXnEsXPEsV1cbiIKKyJ6ICAgICAgICAgICAgICBNZXRuaW4gc29ucmFraSBrIHNhdMSxcsSxbsSxIGfDtnN0ZXJpciBbZWtyYW7EsW4gc2F0xLFyIHNhecSxc8SxXSpcbiIKKyI8ZW50ZXI+ICAgICAgICBNZXRuaW4gc29ucmFraSBrIHNhdMSxcsSxbsSxIGfDtnN0ZXJpciBbMV0qXG4iCisiZCB2ZXlhIGN0cmwtRCAgTWV0bmkgayBzYXTEsXIgaWxlcmxldGlyIFtnZW5lbGxpa2xlIDExIHNhdMSxcl0qXG4iCisicSB2ZXlhIFEgeWEgZGEgPGtlc21lPlxuIgorIiAgICAgICAgICAgICAgIG1vcmUnZGFuIMOnxLFrxLFsxLFyLlxuIgorInMgICAgICAgICAgICAgIE1ldG5pbiBrIHNhdMSxcsSxbsSxIGF0bGFyIFsxXVxuIgorImYgICAgICAgICAgICAgIE1ldG5pbiBrIGVrcmFubMSxayBiw7Zsw7xtw7xuw7wgYXRsYXIgWzFdXG4iCisiYiB2ZXlhIGN0cmwtQiAgTWV0bmluIGdlcml5ZSBkb8SfcnUgayBla3JhbmzEsWsgYsO2bMO8bcO8bsO8IGF0bGFyIFsxXVxuIgorIicgICAgICAgICAgICAgIEFyYW1hbsSxbiBpbGsgYmHFn2xhdMSxbGTEscSfxLEgeWVyZSBkw7ZuZXJcbiIKKyI9ICAgICAgICAgICAgICBPIGFua2kgc2F0xLFyIG51bWFyYXPEsW7EsSBnw7ZzdGVyaXJcbiIKKyIvPGTDvHplbmxpIGlmYWRlPlxuIgorIiAgICAgICAgICAgICAgIETDvHplbmxpIGlmYWRlIGlsZSBiZWxpcnRpbGVuIGsnxLFuY8SxIGXFn2xlxZ9tZXlpIGFyYXIgWzFdXG4iCisibiAgICAgICAgICAgICAgU29uIGTDvHplbmxpIGlmYWRlIGlsZSBiZWxpcnRpbGVuIHNvbnJha2kgayfEsW5jxLEgZcWfbGXFn21leWlcbiIKKyIgICAgICAgICAgICAgICBhcmFyIFsxXVxuIgorIiE8a29tdXQ+IHZleWEgOiE8a29tdXQ+XG4iCisiICAgICAgICAgICAgICAgQWx0IGthYnXEn3VuZGEgPGtvbXV0PnUgw6dhbMSxxZ90xLFyxLFyXG4iCisidiAgICAgICAgICAgICAgQnVsdW51bGFuIHNhdMSxcmRhIC91c3IvYmluL3ZpIMOnYWzEscWfdMSxcsSxbMSxclxuIgorImN0cmwtTCAgICAgICAgIEVrcmFuxLEgdGF6ZWxlclxuIgorIjpuICAgICAgICAgICAgIFNvbnJha2kgayfEsW5jxLEgc2F0xLFyYSBnaWRlciBbMV1cbiIKKyI6cCAgICAgICAgICAgICDDlm5jZWtpIGsnxLFuY8SxIHNhdMSxcmEgZ2lkZXIgWzFdXG4iCisiOmYgICAgICAgICAgICAgRG9zeWEgaXNtaW5pIHZlIHNhdMSxciBudW1hcmFzxLFuxLEgZ8O2c3RlcmlyXG4iCisiLiAgICAgICAgICAgICAgw5ZuY2VraSBrb211dCB0ZWtyYXJsYW7EsXJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQwNCB0ZXh0LXV0aWxzL21vcmUuYzoxNDA5CisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyAnaCcgZm9yIGluc3RydWN0aW9ucy5dIgorbXNnc3RyICJbWWFyZMSxbSBiYcWfbMSxa2xhcsSxIGnDp2luICdoJyB0dcWfdW5hIGJhc8SxbsSxel0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIlwiJXNcIiBzYXTEsXIgJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW05vdCBhIGZpbGVdIGxpbmUgJWQiCittc2dzdHIgIltEb3N5YSBkZcSfaWxdIHNhdMSxciAlZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTUyOQorbXNnaWQgIiAgT3ZlcmZsb3dcbiIKK21zZ3N0ciAiICBUYcWfbWFcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTU3NgorbXNnaWQgIi4uLnNraXBwaW5nXG4iCittc2dzdHIgIi4uLmF0bGFuxLF5b3JcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYwNQorbXNnaWQgIlJlZ3VsYXIgZXhwcmVzc2lvbiBib3RjaCIKK21zZ3N0ciAiRMO8emVubGkgaWZhZGUgYWNlbWljZSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiS2FsxLFwIGJ1bHVuYW1hZMSxXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAiS2FsxLFwIGJ1bHVuYW1hZMSxIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjc3Cittc2dpZCAiY2FuJ3QgZm9ya1xuIgorbXNnc3RyICJhc3Qgc8O8cmXDpyBvbHXFn3R1cnVsYW1hZMSxXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MTYKK21zZ2lkICIiCisiXG4iCisiLi4uU2tpcHBpbmcgIgorbXNnc3RyICIiCisiXG4iCisiLi4uQXRsYW7EsXlvciAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiLi4uRG9zeWF5YSBhdGxhbsSxeW9yOiAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjIKK21zZ2lkICIuLi5Ta2lwcGluZyBiYWNrIHRvIGZpbGUgIgorbXNnc3RyICIuLi7Dlm5jZWtpIGRvc3lheWEgYXRsYW7EsXlvcjogIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiU2F0xLFyIMOnb2sgdXp1biIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIlllcmluaSBhbGFjYWsgw7ZuY2VzaW5kZSBiaXIga29tdXQgeW9rIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBvZCgxKSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciBoZXhkdW1wKDEpLlxuIgorbXNnc3RyICJvZDogb2QoMSkgaGV4ZHVtcCgxKSBpw6dpbiB1eWd1biBidWx1bm1hbcSxxZ90xLEuXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IGhleGR1bXAoMSkgY29tcGF0aWJpbGl0eSBkb2Vzbid0IHN1cHBvcnQgdGhlIC0lYyBvcHRpb24lc1xuIgorbXNnc3RyICJvZDogaGV4ZHVtcCgxKSB1eXVtbHVsdcSfdSAtJWMgc2XDp2VuZcSfaW5pIGRlc3Rla2xlbWl5b3Ilc1xuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTM0Cittc2dpZCAiOyBzZWUgc3RyaW5ncygxKS4iCittc2dzdHIgIjsgQmFrOiBzdHJpbmdzKDEpLiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iCittc2dzdHIgImhleGR1bXA6ICVzIG9rdW5hbcSxeW9yLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogc2F0xLFyIMOnb2sgdXp1bi5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBieXRlIGNvdW50IHdpdGggbXVsdGlwbGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzLlxuIgorbXNnc3RyICJoZXhkdW1wOiDDp29rbHUgZMO2bsO8xZ/DvG0ga2FyYWt0ZXJsZXJpeWxlIGJheXQgc2F5xLFzxLEuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBkw7Zuw7zFn8O8bSBrYXJha3RlcmkgJXMgacOnaW4gYmF5dCBzYXnEsXPEsSBoYXRhbMSxLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgImhleGR1bXA6ICUlcyBiaXIgZHV5YXJsxLFrIHlhIGRhIGJheXQgc2F5xLFzxLEgZ2VyZWt0aXJpci5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDogYmnDp2VtIGhhdGFsxLEgeyVzfVxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBjb252ZXJzaW9uIGNoYXJhY3RlciAlJSVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBkw7Zuw7zFn8O8bSBrYXJha3RlcmkgJSUlcyBoYXRhbMSxLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ1Cittc2dpZCAiIgorIkFsbCByaWdodHMgcmVzZXJ2ZWQuXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIiAgaCAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBzY3JlZW5cbiIKKyIgIHEgb3IgUSAgICAgICAgICAgICAgICAgIHF1aXQgcHJvZ3JhbVxuIgorIiAgPG5ld2xpbmU+ICAgICAgICAgICAgICAgbmV4dCBwYWdlXG4iCisiICBmICAgICAgICAgICAgICAgICAgICAgICBza2lwIGEgcGFnZSBmb3J3YXJkXG4iCisiICBkIG9yIF5EICAgICAgICAgICAgICAgICBuZXh0IGhhbGZwYWdlXG4iCisiICBsICAgICAgICAgICAgICAgICAgICAgICBuZXh0IGxpbmVcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgcGFnZVxuIgorIiAgL3JlZ2V4LyAgICAgICAgICAgICAgICAgc2VhcmNoIGZvcndhcmQgZm9yIHJlZ2V4XG4iCisiICA/cmVnZXg/IG9yIF5yZWdleF4gICAgICBzZWFyY2ggYmFja3dhcmQgZm9yIHJlZ2V4XG4iCisiICAuIG9yIF5MICAgICAgICAgICAgICAgICByZWRyYXcgc2NyZWVuXG4iCisiICB3IG9yIHogICAgICAgICAgICAgICAgICBzZXQgcGFnZSBzaXplIGFuZCBnbyB0byBuZXh0IHBhZ2VcbiIKKyIgIHMgZmlsZW5hbWUgICAgICAgICAgICAgIHNhdmUgY3VycmVudCBmaWxlIHRvIGZpbGVuYW1lXG4iCisiICAhY29tbWFuZCAgICAgICAgICAgICAgICBzaGVsbCBlc2NhcGVcbiIKKyIgIHAgICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIHByZXZpb3VzIGZpbGVcbiIKKyIgIG4gICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIG5leHQgZmlsZVxuIgorIlxuIgorIk1hbnkgY29tbWFuZHMgYWNjZXB0IHByZWNlZGluZyBudW1iZXJzLCBmb3IgZXhhbXBsZTpcbiIKKyIrMTxuZXdsaW5lPiAobmV4dCBwYWdlKTsgLTE8bmV3bGluZT4gKHByZXZpb3VzIHBhZ2UpOyAxPG5ld2xpbmU+IChmaXJzdCAiCisicGFnZSkuXG4iCisiXG4iCisiU2VlIHBnKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiQmVsbGVrIHlldGVyc2l6IgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6ICVzIFstbnVtYmVyXSBbLXAgc3RyaW5nXSBbLWNlZm5yc10gWytsaW5lXSBbKy9wYXR0ZXJuL10gW2ZpbGVzXVxuIgorbXNnc3RyICIiCisiJXM6IEt1bGxhbsSxbcSxOiAlcyBbLW51bWJlcl0gWy1wIGRpemdlXSBbLWNlZm5yc10gWytzYXTEsXJdIFsrL2thbMSxcC9dICIKKyJbZG9zeWFsYXJdXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlc1xuIgorbXNnc3RyICIlczogc2XDp2VuZWsgYmlyIGFyZ8O8bWFubGEga3VsbGFuxLFsxLFyIC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVzXG4iCittc2dzdHIgIiVzOiBrdXJhbGTEscWfxLEgc2XDp2VuZWsgLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MAorbXNnaWQgIi4uLnNraXBwaW5nIGZvcndhcmRcbiIKK21zZ3N0ciAiLi4uaWxlcmkgYXRsYW7EsXlvclxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcyCittc2dpZCAiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIKK21zZ3N0ciAiLi4uZ2VyaSBhdGxhbsSxeW9yXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTQKK21zZ2lkICJObyBuZXh0IGZpbGUiCittc2dzdHIgIlNvbnJhc8SxbmRhIGRvc3lhIHlvayIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIsOWbmNlc2luZGUgZG9zeWEgeW9rIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBSZWFkIGVycm9yIGZyb20gJXMgZmlsZVxuIgorbXNnc3RyICIlczogJXMgZG9zeWFzxLFuZGFuIG9rdW1hIGhhdGFzxLFcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5leHBlY3RlZCBFT0YgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogJXMgZG95YXPEsW5kYSBiZWtsZW5tZWRpayBkb3N5YSBzb251XG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczogJXMgZG95YXPEsW5kYSBiaWxpbm1leWVuIGhhdGFcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBjcmVhdGUgdGVtcGZpbGVcbiIKK21zZ3N0ciAiJXM6IGdlw6dpY2kgZG9zeWEgb2x1xZ90dXJ1bGFtxLF5b3IuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDQ0IHRleHQtdXRpbHMvcGcuYzoxMjE5IHRleHQtdXRpbHMvcGcuYzoxMjQ2Cittc2dpZCAiUkUgZXJyb3I6ICIKK21zZ3N0ciAiUkUgaGF0YXPEsToiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIihEb3N5YVNvbnUpIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAiQXJhbWEgZGl6Z2VzaSB5b2siCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICJBw6fEsWxhbcSxeW9yIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICJrYXlkZWRpbGRpIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ2NQorbXNnaWQgIjogIWNvbW1hbmQgbm90IGFsbG93ZWQgaW4gcmZsYWcgbW9kZS5cbiIKK21zZ3N0ciAiOiByZmxhZyBraXBpbmRlICEga29tdXR1IGt1bGxhbsSxbG1hei5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiQWx0IHPDvHJlw6cgb2x1xZ90dXJ1bGFtYWTEsSwgZGFoYSBzb25yYSB0ZWtyYXIgZGVuZXlpblxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTcwNQorbXNnaWQgIihOZXh0IGZpbGU6ICIKK21zZ3N0ciAiKFNvbnJha2kgZG9zeWE6ICIKKworIzogdGV4dC11dGlscy9yZXYuYzoxMTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJUYW1wb24gYWxhbsSxIGF5csSxbGFtYWTEsVxuIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAia3VsbGFuxLFtxLE6IHJldiBbZG9zeWEgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6NTggdGV4dC11dGlscy90YWlsZi5jOjkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiCittc2dzdHIgIlwiJXNcIiBva3VtYWsgacOnaW4gYcOnxLFsYW3EsXlvclxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgXCIlc1wiIgorbXNnc3RyICIlcyBheWfEsXTEsW7EsW4gZHVydW0gYmlsZ2lzaSBhbMSxbmFtxLF5b3IiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5jb21wbGV0ZSB3cml0ZSB0byBcIiVzXCIgKHdyaXR0ZW4gJXpkLCBleHBlY3RlZCAlemQpXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoIChsaW1pdCBvZiBpbm90aWZ5IHdhdGNoZXMgd2FzIHJlYWNoZWQpLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2guIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgcmVhZCBpbm90aWZ5IGV2ZW50cyIKK21zZ3N0ciAiJXM6ICVzIGHDp8SxbGFtxLF5b3JcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE5OSB0ZXh0LXV0aWxzL3RhaWxmLmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIGxpbmVzIgorbXNnc3RyICJgJXMnIGdlw6dlcnNpeiBzYXnEsVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjEwCisjLCBmdXp6eQorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICJLdWxsYW7EsW3EsTogdGFpbGYgZ8O8bmzDvGtfZG9zeWFzxLFcbiIKKworIzogdGV4dC11dGlscy91bC5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZmlsZS4uLlxuIgorbXNnc3RyICJrdWxsYW7EsW3EsTogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZG9zeWEuLi5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ0cm91YmxlIHJlYWRpbmcgdGVybWluZm8iCittc2dzdHIgInRlcm1pbmZvIG9rdW5tYXlhIMOnYWzEscWfxLFsxLF5b3IiCisKKyM6IHRleHQtdXRpbHMvdWwuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBlc2NhcGUgc2VxdWVuY2UgaW4gaW5wdXQ6ICVvLCAlb1xuIgorbXNnc3RyICJHaXJkaWRla2kgw7ZuY2VsZW1lIGRpemdlc2kgYmlsaW5taXlvcjogJW8sICVvXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo0MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlci5cbiIKK21zZ3N0ciAiVGFtcG9uIGF5csSxbGFtYWTEsS5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnB1dCBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICJHaXJkaSBzYXTEsXLEsSDDp29rIHV6dW4uXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGVuIGdyb3dpbmcgYnVmZmVyLlxuIgorbXNnc3RyICJUYW1wb24gYsO8ecO8dMO8bMO8cmtlbiBiZWxsZWsgeWV0bWVkaS5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBDaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICBHaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIEdpdmUgZmRpc2sgdmVyc2lvblxuIgorI34gIkhlcmUgRElTSyBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYiBvciAvZGV2L3NkYVxuIgorI34gImFuZCBQQVJUSVRJT04gaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGdpdmUgU3RhcnQgYW5kIEVuZCBpbiBzZWN0b3IgKGluc3RlYWQgb2YgY3lsaW5kZXIpIHVuaXRzXG4iCisjfiAiLWIgMjA0ODogKGZvciBjZXJ0YWluIE1PIGRpc2tzKSB1c2UgMjA0OC1ieXRlIHNlY3RvcnNcbiIKKyN+IG1zZ3N0ciAiIgorI34gIkt1bGxhbsSxbcSxOlxuIgorI34gIiAgICBmZGlzayBbLWIgU2t0VXpdIFstdV0gRGlTSyAgICBEaXNrIGLDtmzDvG1sZW1lIHRhYmxvc3VudSBkZcSfacWfdGlyaXJcbiIKKyN+ICIgICAgZmRpc2sgLWwgWy1iIFNrdFV6XSBbLXVdIERpU0sgRGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1bnUgbGlzdGVsZXJcbiIKKyN+ICIgICAgZmRpc2sgLXMgQsOWTMOcTSAgICAgICAgICAgICAgICBCw7Zsw7xtIHV6dW5sdWtsYXLEsW7EsSBibG9rIGNpbnNpbmRlbiAiCisjfiAidmVyaXJcbiIKKyN+ICIgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICAgZmRpc2sgc8O8csO8bSBiaWxnaWxlcmluaSBnw7ZzdGVyaXJcbiIKKyN+ICJCdXJhZGE6XG4iCisjfiAiRGlTSyAvZGV2L2hkYiB2ZXlhIC9kZXYvc2RhIGdpYmkgdmVcbiIKKyN+ICJCw5ZMw5xNIC9kZXYvaGRiNyBnaWJpIHZlcmlsaXIuXG4iCisjfiAiLXU6IEJhxZ9sYW5nxLHDpyB2ZSBiaXRpxZ8gc2VrdMO2cmxlcmluaSAoc2lsaW5kaXIgZGXEn2lsKSB2ZXJpclxuIgorI34gIi1iIDIwNDg6IDIwNDggYmF5dGzEsWsgc2VrdMO2cmxlciBrdWxsYW7EsWzEsXJcbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1sXSBbLWIgU1NaXSBbLXVdIGRldmljZVxuIgorI34gIkUuZy46IGZkaXNrIC9kZXYvaGRhICAoZm9yIHRoZSBmaXJzdCBJREUgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L3NkYyAgKGZvciB0aGUgdGhpcmQgU0NTSSBkaXNrKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvZWRhICAoZm9yIHRoZSBmaXJzdCBQUy8yIEVTREkgZHJpdmUpXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9yZC9jMGQwICBvcjogZmRpc2sgL2Rldi9pZGEvYzBkMCAgKGZvciBSQUlEIGRldmljZXMpXG4iCisjfiAiICAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkt1bGxhbsSxbcSxOiBmZGlzayBbLWxdIFstYiBTa3RdIFstdV0gYXlnxLF0XG4iCisjfiAiICDDlnJuZcSfaW46XG4iCisjfiAiICAgZmRpc2sgL2Rldi9oZGEgIChpbGsgSURFIGRpc2spXG4iCisjfiAiICAgZmRpc2sgL2Rldi9zZGMgICjDvMOnw7xuY8O8IFNDU0kgZGlzaylcbiIKKyN+ICIgICBmZGlzayAvZGV2L2VkYSAgKGlsayBQUy8yIEVTREkgYXlnxLF0xLEpXG4iCisjfiAiICAgZmRpc2sgL2Rldi9yZC9jMGQwICB2ZXlhXG4iCisjfiAiICAgZmRpc2sgL2Rldi9pZGEvYzBkMCAgKFJBSUQgYXlnxLF0bGFyxLEpXG4iCisjfiAiICAuLi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJUaGUgbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkaXNrIGlzIHNldCB0byAlZC5cbiIKKyN+ICJUaGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggdGhhdCwgYnV0IHRoaXMgaXMgbGFyZ2VyIHRoYW4gMTAyNCxcbiIKKyN+ICJhbmQgY291bGQgaW4gY2VydGFpbiBzZXR1cHMgY2F1c2UgcHJvYmxlbXMgd2l0aDpcbiIKKyN+ICIxKSBzb2Z0d2FyZSB0aGF0IHJ1bnMgYXQgYm9vdCB0aW1lIChlLmcuLCBvbGQgdmVyc2lvbnMgb2YgTElMTylcbiIKKyN+ICIyKSBib290aW5nIGFuZCBwYXJ0aXRpb25pbmcgc29mdHdhcmUgZnJvbSBvdGhlciBPU3NcbiIKKyN+ICIgICAoZS5nLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAiQnUgZGlzayBpw6dpbiBzaWxpbmRpciBzYXnEsXPEsSAlZCBvbGFyYWsgYmVsaXJsZW5kaS5cbiIKKyN+ICJZYW5sxLHFnyBiaXIgxZ9leSB5b2sgZmFrYXQgMTAyNCBzaWxpbmRpcmRlbiBiw7x5w7xrIGRlxJ9lcmxlcmxlXG4iCisjfiAiYmF6xLEgeWF6xLFsxLFtbGFyIHNvcnVuIMOnxLFrYWJpbGlyOlxuIgorI34gIjEpIMO2bnnDvGtsZW1lIHPEsXJhc8SxbmRhIMOnYWzEscWfYW4geWF6xLFsxLFtbGFyICjDtnJuLiBMSUxPJ251biBlc2tpIHPDvHLDvG1sZXJpKVxuIgorI34gIjIpIGRpxJ9lciBpxZ9sZXRpbSBzaXN0ZW1sZXJpbmluIMO2bnnDvGtsZW1lIHZlIGRpc2sgYsO2bMO8bWxlbWUgeWF6xLFsxLFtbGFyxLFcbiIKKyN+ICIgICAow7Zybi4gRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm91dCBpZiBtZW1vcnkiCisjfiBtc2dzdHIgImJlbGxlayB5ZXRlcnNpeiIKKworI34gbXNnaWQgIiMgcGFydGl0aW9uIHRhYmxlIG9mICVzXG4iCisjfiBtc2dzdHIgIiMgJXMgZGlzayBiw7Zsw7xtbGVtZSB0YWJsb3N1XG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiIgorI34gInVuaXQ6IHNlY3RvcnNcbiIKKyN+ICJcbiIKKyN+IG1zZ3N0ciAiJWxsZCBzZWt0w7ZyIGt1bGxhbsSxbG1hbcSxxZ9cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIgc3RhcnQ9JTlsdSIKKyN+IG1zZ3N0ciAiYmHFn2xhbmfEscOnIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiwgc2l6ZT0lOWx1IgorI34gbXNnc3RyICJBemFtaVV6dW5sdWsgPSAlbGRcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIGJvb3RhYmxlIgorI34gbXNnc3RyICJBSVggw7ZuecO8a2xlbmViaWxpciIKKworIywgZnV6enkKKyN+IG1zZ2lkICJDbG9jayBpbiBVVEMsIG5vdCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICJLYWJ1ayBkZcSfacWfdGlyaWxtZWRpLFxuIgorCisjfiBtc2dpZCAiJXM6IGVycm9yOiBsYWJlbCBvbmx5IHdpdGggdjEgc3dhcCBhcmVhXG4iCisjfiBtc2dzdHIgIiVzOiBoYXRhOiBzYWRlY2UgdjEgdGFrYXMgYWxhbmzEsSBldGlrZXRcbiIKKworI34gbXNnaWQgImZhdGFsOiBmaXJzdCBwYWdlIHVucmVhZGFibGUiCisjfiBtc2dzdHIgIsO2bMO8bWPDvGw6IGlsayBzYXlmYSBva3VuYWJpbGlyIGRlxJ9pbCIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAiJXM6IERldmljZSAnJXMnIGNvbnRhaW5zIGEgdmFsaWQgU3VuIGRpc2tsYWJlbC5cbiIKKyN+ICJUaGlzIHByb2JhYmx5IG1lYW5zIGNyZWF0aW5nIHYwIHN3YXAgd291bGQgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyN+ICJObyBzd2FwIHdhcyBjcmVhdGVkLiBJZiB5b3UgcmVhbGx5IHdhbnQgdG8gY3JlYXRlIHYwIHN3YXAgb24gdGhhdCAiCisjfiAiZGV2aWNlLFxuIgorI34gInVzZSB0aGUgLWYgb3B0aW9uIHRvIGZvcmNlIGl0LlxuIgorI34gbXNnc3RyICIiCisjfiAiJXM6ICclcycgYXlnxLF0xLEgYmlyIGdlw6dlcmxpIFN1biBkaXNrIGV0aWtldGkgacOnZXJpeW9yLlxuIgorI34gIkJ1IGR1cnVtZGEgdjAgdGFrYXMgYWxhbsSxIG9sdcWfdHVybWFrIGLDtmzDvG1sZW1lIHRhYmxvc3VudSBib3phY2HEn8SxbmRhblxuIgorI34gInRha2FzIGFsYW7EsSBvbHXFn3R1cnVsbWFkxLEuIEJ1cmFkYSBtdXRsYWthIGJpciB2MCB0YWthcyBhbGFuxLEgb2x1xZ90dXJtYWtcbiIKKyN+ICJpc3RpeW9yc2FuxLF6IC1mIHNlw6dlbmXEn2kgaWxlIGJ1bnUgeWFwYWJpbGlyc2luaXouXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGdldCBjdXJyZW50IGRpcmVjdG9yeSAtICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiDDp2FsxLHFn8SxbGFuIGRpemluZSBnZcOnaWxlbWl5b3IgLSAlc1xuIgorCisjfiBtc2dpZCAibmFtZWk6IHVuYWJsZSB0byBjaGRpciB0byAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAibmFtZWk6ICVzIGRpemluaW5lIGdlw6dpbGVtaXlvciAtICVzICglZClcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3QgY2hkaXIgdG8gcm9vdCFcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IGvDtmsgZGl6aW5lIGdlw6dpbGVtZWRpIVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBzdGF0IHJvb3QhXG4iCisjfiBtc2dzdHIgIm5hbWVpOiBLw7ZrIGRpemluIGR1cnVtIGJpbGdpbGVyaSBhbMSxbmFtYWTEsSFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKyN+IG1zZ3N0ciAibmFtZWk6IHRhbXBvbiBiZWxsZWt0ZSB0YcWfbWFcbiIKKworI34gbXNnaWQgIiA/IGNvdWxkIG5vdCBjaGRpciBpbnRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyAlcyBpw6dpbmRlIGNoZGlyIHlhcGFtYWTEsSAtICVzICglZClcbiIKKworI34gbXNnaWQgIiA/IHByb2JsZW1zIHJlYWRpbmcgc3ltbGluayAlcyAtICVzICglZClcbiIKKyN+IG1zZ3N0ciAiJXMgc2VtYm9saWsgYmHEn8SxIG9rdW51cmtlbiBoYXRhIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAiICAqKiogRVhDRUVERUQgVU5JWCBMSU1JVCBPRiBTWU1MSU5LUyAqKipcbiIKKyN+IG1zZ3N0ciAiICAqKiogVU5JWCBTRU1CT0zEsEsgQkHEniBTSU5JUkxBUkkgQcWeSUxESSAqKipcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmtub3duIGZpbGUgdHlwZSAwJTA2byBvbiBmaWxlICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiAgMCUwNm8gZG9zeWEgdMO8csO8ICVzIGRvc3lhc8SxbmRhIGFubGHFn8SxbGFtYWTEsVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBnb2luZyB0byBtb3VudCAlcyBieSAlc1xuIgorI34gbXNnc3RyICJtb3VudDogJXMgVVVJRCdzaW5lIGfDtnJlIGJhxJ9sYW7EsXlvclxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIm1vdW50OiBubyBMQUJFTD0sIG5vIFVVSUQ9LCBnb2luZyB0byBtb3VudCAlcyBieSBwYXRoXG4iCisjfiBtc2dzdHIgIm1vdW50OiAlcyBldGlrZXRpbmUgZ8O2cmUgYmHEn2xhbsSxeW9yXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczogQXN0IHPDvHJlw6cgb2x1xZ90dXJ1bGFtxLF5b3JcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogd2FpdHBpZDogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IGHDp8SxbGFtxLF5b3I6ICVzXG4iCisKKyN+IG1zZ2lkICIlczogY2Fubm90IHN0YXQgJXM6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiAlcyBkdXJ1bSBiaWxnaWxlcmkgYWzEsW5hbcSxeW9yOiAlc1xuIgorCisjfiBtc2dpZCAiY291bGQgbm90IHVtb3VudCAlcyAtIHRyeWluZyAlcyBpbnN0ZWFkXG4iCisjfiBtc2dzdHIgInVtb3VudCAlcyBnZXLDp2VrbGXFn3RpcmlsZW1lZGktIHllcmluZSAlcyBkZW5lbml5b3JcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiY2hmbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjogUEFNIGhhdGFzxLEsIMOnxLFrxLFsxLF5b3I6ICVzXG4iCisKKyN+IG1zZ2lkICJDYW4ndCByZWFkICVzLCBleGl0aW5nLiIKKyN+IG1zZ3N0ciAiJXMgb2t1bmFtxLF5b3IsIGLEsXJha8SxbMSxeW9yLiIKKworI34gbXNnaWQgImxvZ2luOiBQQU0gRmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCisjfiBtc2dzdHIgImxvZ2luOiBQQU0gaGF0YXPEsSwgw6fEsWvEsWzEsXlvcjogJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBiYWNrZ3JvdW5kaW5nIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDogXCIlc1wiIGFydGFsYW5hIGFsxLFuxLF5b3JcbiIKKworI34gbXNnaWQgIm1vdW50OiBnaXZpbmcgdXAgXCIlc1wiXG4iCisjfiBtc2dzdHIgIm1vdW50OiBcIiVzXCIgYsSxcmFrxLFsxLF5b3JcbiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorI34gbXNnc3RyICJgJXMnOiBkaXppbiBoYXRhbMSxOiAnLicgaWxrIGRlxJ9pbFxuIgorCisjfiBtc2dpZCAiYCVzJzogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKKyN+IG1zZ3N0ciAiYCVzJzogZGl6aW4gaGF0YWzEsTogJy4uJyBpa2luY2kgZGXEn2lsXG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIG9wZW5fdHR5XG4iCisjfiBtc2dzdHIgIm9wZW5fdHR5IMOnYcSfcsSxbMSxeW9yXG4iCisKKyN+IG1zZ2lkICJjYWxsaW5nIHRlcm1pb19pbml0XG4iCisjfiBtc2dzdHIgInRlcm1pb19pbml0IMOnYcSfcsSxbMSxeW9yXG4iCisKKyN+IG1zZ2lkICJ3cml0aW5nIGluaXQgc3RyaW5nXG4iCisjfiBtc2dzdHIgImJhxZ9sYXRtYSBkaXpnZXNpIHlhesSxbMSxeW9yXG4iCisKKyN+IG1zZ2lkICJiZWZvcmUgYXV0b2JhdWRcbiIKKyN+IG1zZ3N0ciAiYmHEn2xhbnTEsSBoxLF6xLEgc2FwdGFtYSDDtm5jZXNpXG4iCisKKyN+IG1zZ2lkICJ3YWl0aW5nIGZvciBjci1sZlxuIgorI34gbXNnc3RyICJjci1sZiBpw6dpbiBiZWtsZW5peW9yXG4iCisKKyN+IG1zZ2lkICJyZWFkaW5nIGxvZ2luIG5hbWVcbiIKKyN+IG1zZ3N0ciAia3VsbGFuxLFjxLEgaXNtaSBva3VudXlvclxuIgorCisjfiBtc2dpZCAiYWZ0ZXIgZ2V0b3B0IGxvb3BcbiIKKyN+IG1zZ3N0ciAiZ2V0b3B0IMOnZXZyaW1pIHNvbnJhc8SxXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlYXJnc1xuIgorI34gbXNnc3RyICJwYXJzZWFyZ3Mgw6fEsWvEsXlvclxuIgorCisjfiBtc2dpZCAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKyN+IG1zZ3N0ciAicGFyc2Vfc3BlZWRzIGdpcmlsZGlcbiIKKworI34gbXNnaWQgImV4aXRpbmcgcGFyc2VzcGVlZHNcbiIKKyN+IG1zZ3N0ciAicGFyc2VzcGVlZHMnZGVuIMOnxLFrxLFseW9yXG4iCisKKyN+IG1zZ2lkICJvcGVuKDIpXG4iCisjfiBtc2dzdHIgIm9wZW4oMilcbiIKKworI34gbXNnaWQgImR1cGluZ1xuIgorI34gbXNnc3RyICLDp2/En2FsdMSxeW9yXG4iCisKKyN+IG1zZ2lkICJ0ZXJtX2lvIDJcbiIKKyN+IG1zZ3N0ciAidGVybV9pbyAyXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBlcnJvci4iCisjfiBtc2dzdHIgIlBhcm9sYSBoYXRhc8SxLiIKKworI34gbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzXG4iCisjfiBtc2dzdHIgIlV5YXLEsTogXCIlc1wiIC9ldGMvc2hlbGxzIGRvc3lhc8SxbmRhIHlvay5cbiIKKworI34gbXNnaWQgInRpbWVvdXQgPSAlZCwgcXVpZXQgPSAlZCwgcmVib290ID0gJWRcbiIKKyN+IG1zZ3N0ciAiemFtYW4gYcWfxLFtxLEgPSAlZCwgYmFzaXQgPSAlZCwgeWVuaWRlbiA9ICVkXG4iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkICVzLCBhbmQgY2Fubm90IGlvY3RsIGR1bXBcbiIKKyN+IG1zZ3N0ciAiJXMgb2t1bmFtYWTEsSB2ZSBpb2N0bCBkw7Zrw7xtbGVuZW1peW9yXG4iCisKKyN+IG1zZ2lkICIsIG9mZnNldCAlbGxkIgorI34gbXNnc3RyICIsIGJhxZ9sICVsbGQiCisKKyN+IG1zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGRldmljZSAvZGV2L2xvb3AjIgorI34gbXNnc3RyICIlczogL2Rldi9sb29wIyBnaWJpIGJpciBheWfEsXQgYnVsdW5hbWFkxLEiCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAia3VsbGFuxLFtxLE6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgICAgICVzIFstdl0gWy1wIMO2bmNlbGlrXSDDtnplbHxMQUJFTD1veWx1bV9pc21pIC4uLlxuIgorI34gIiAgICAgICAgICAgJXMgWy1zXVxuIgorCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLXZdXG4iCisjfiAiICAgICAgICVzIFstdl0gc3BlY2lhbCAuLi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gImt1bGxhbsSxbcSxOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAgICAgJXMgWy12XSDDtnplbCAuLi5cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IGNhbm9uaWNhbGl6ZSAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6ICVzIGHDp8SxbGFtxLF5b3I6ICVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6IHJlbmljZSBwcmlvcml0eSBbIFsgLXAgXSBwaWRzIF0gWyBbIC1nIF0gcGdycHMgXSBbIFsgLXUgXSB1c2VycyBdXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJrdWxsYW7EsW3EsTogcmVuaWNlIMO2bmNlbGlrIFsgWyAtcCBdIHBpZCBdIFsgWyAtZyBdIHBncnAgXSBbIFsgLXUgXSAiCisjfiAia3VsbGFuxLFjxLEgXVxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIlVua25vd24gb3B0aW9uIGAlYycgaWdub3JlZCIKKyN+IG1zZ3N0ciAiJXM6IFwiLSVjXCIgZGl5ZSBiaXIgc2XDp2VuZWsgYmlsaW5taXlvclxuIgorCisjfiBtc2dpZCAiIgorI34gIkV4Y2VlZGVkIE1BWEVOVFJJRVMuICBSYWlzZSB0aGlzIHZhbHVlIGluIG1rY3JhbWZzLmMgYW5kIHJlY29tcGlsZS4gICIKKyN+ICJFeGl0aW5nLlxuIgorI34gbXNnc3RyICIiCisjfiAiTUFYRU5UUklFUyBhxZ/EsWxkxLEuICBta2NyYW1mcy5jIGnDp2luZGUgYnUgZGXEn2VyaSB5w7xrc2VsdGluIHZlIHllbmlkZW4gIgorI34gImRlcmxleWluLiAgIMOHxLFrxLFsxLF5b3IuXG4iCisKKyN+IG1zZ2lkICJBc3N1bWluZyBwYWdlcyBvZiBzaXplICVkIChub3QgJWQpXG4iCisjfiBtc2dzdHIgIlNheWZhIHV6dW5sdcSfdSBvbGFyYWsgJWQga3VsbGFuxLFsxLF5b3IgKCVkIGRlxJ9pbClcbiIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZm91bmQgYSAlcyVzJXNcbiIKKyN+IG1zZ3N0ciAiT3RvbWF0aWsgeWFwxLFsYW5kxLFybWEgdGFyYWbEsW5kYW4gYmlyICVzJXMlcyBidWx1bmR1XG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRHJpdmUgdHlwZVxuIgorI34gIiAgID8gICBhdXRvIGNvbmZpZ3VyZVxuIgorI34gIiAgIDAgICBjdXN0b20gKHdpdGggaGFyZHdhcmUgZGV0ZWN0ZWQgZGVmYXVsdHMpIgorI34gbXNnc3RyICIiCisjfiAiQXlnxLF0IHTDvHLDvFxuIgorI34gIiAgID8gICBvdG8geWFwxLFsYW5kxLFybWFcbiIKKyN+ICIgICAwICAgw7Z6ZWwgKHNhcHRhbmFuIMO2bnRhbsSxbWxhcmEgc2FoaXAgZG9uYW7EsW1sYSkiCisKKyN+IG1zZ2lkICJTZWxlY3QgdHlwZSAoPyBmb3IgYXV0bywgMCBmb3IgY3VzdG9tKTogIgorI34gbXNnc3RyICJBeWfEsXQgVMO8csO8ICg/OiBvdG8sIDA6IMO2emVsKTogIgorCisjfiBtc2dpZCAiQXV0b2NvbmZpZ3VyZSBmYWlsZWQuXG4iCisjfiBtc2dzdHIgIk90b3lhcMSxbGFuZMSxcm1hIGhhdGEgdmVyZGkuXG4iCisKKyN+IG1zZ2lkICJBbHRlcm5hdGUgY3lsaW5kZXJzIgorI34gbXNnc3RyICJBbG1hxZ/EsWsgc2lsaW5kaXJsZXIiCisKKyN+IG1zZ2lkICJQaHlzaWNhbCBjeWxpbmRlcnMiCisjfiBtc2dzdHIgIkZpemlrc2VsIHNpbGluZGlybGVyIgorCisjfiBtc2dpZCAiWW91IG1heSBjaGFuZ2UgYWxsIHRoZSBkaXNrIHBhcmFtcyBmcm9tIHRoZSB4IG1lbnUiCisjfiBtc2dzdHIgIlTDvG0gZGlzayBwYXJhbWV0cmVsZXJpbmkgeCBtZW7DvHPDvG5kZW4gZGXEn2nFn3RpcmViaWxpcnNpbml6IgorCisjfiBtc2dpZCAiMyw1XCIgZmxvcHB5IgorI34gbXNnc3RyICIzLDVcIiBmbG9wcHkiCisKKyN+IG1zZ2lkICJMaW51eCBjdXN0b20iCisjfiBtc2dzdHIgIkxpbnV4IMO2emVsIgorCisjfiBtc2dpZCAiJXMgZnJvbSB1dGlsLWxpbnV4LSVzXG4iCisjfiBtc2dzdHIgInV0aWwtbGludXgtJTIkcyBzw7xyw7xtw7xuZGVraSAlMSRzXG4iCisKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJTIkcyUzJHMgZGVraSAlMSRzXG4iCisKKyN+IG1zZ2lkICIlczogZXJyb3I6IHRoZSBsYWJlbCAlcyBvY2N1cnMgb24gYm90aCAlcyBhbmQgJXNcbiIKKyN+IG1zZ3N0ciAiJXM6IGVycm9yOiBldGlrZXQgJXMgaGVtICVzIGhlbSBkZSAlcyBpw6dpbiBrdWxsYW7EsWxtxLHFn1xuIgorCisjfiBtc2dpZCAiIgorI34gIiVzOiBjb3VsZCBub3Qgb3BlbiAlcywgc28gVVVJRCBhbmQgTEFCRUwgY29udmVyc2lvbiBjYW5ub3QgYmUgZG9uZS5cbiIKKyN+IG1zZ3N0ciAiJXM6ICVzIGHDp8SxbGFtYWTEsSwgVVVJRCB2ZSBMQUJFTCBkw7Zuw7zFn8O8bcO8IHlhcMSxbG3EscWfIG9sbWF5YWJpbGlyLlxuIgorCisjfiBtc2dpZCAiJXM6IGJhZCBVVUlEIgorI34gbXNnc3RyICIlczogVVVJRCBoYXRhbMSxIgorCisjfiBtc2dpZCAibW91bnQ6IGZhaWxlZCB3aXRoIG5mcyBtb3VudCB2ZXJzaW9uIDQsIHRyeWluZyAzLi5cbiIKKyN+IG1zZ3N0ciAibW91bnQ6IG5mcyBtb3VudCBzw7xyw7xtIDQgaWxlIGJhxZ9hcsSxc8SxeiwgMyBkZW5lbml5b3IuLi5cbiIKKworI34gbXNnaWQgIm1vdW50OiBtb3VudGluZyAlc1xuIgorI34gbXNnc3RyICJtb3VudDogJXMgYmHEn2xhbsSxeW9yXG4iCisKKyN+IG1zZ2lkICJtb3VudDogY2Fubm90IGZpbmQgJXMgaW4gJXMiCisjfiBtc2dzdHIgIm1vdW50OiAlcyAgJXMgacOnaW5kZSBidWx1bmFtxLF5b3IiCisKKyN+IG1zZ2lkICJtb3VudDogZXJyb3Igd2hpbGUgZ3Vlc3NpbmcgZmlsZXN5c3RlbSB0eXBlXG4iCisjfiBtc2dzdHIgIm1vdW50OiBkb3N5YSBzaXN0ZW1pIHTDvHLDvCBiZWxpcmxlbmlya2VuIGhhdGFcbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIGhvc3Q6ZGlyIGFyZ3VtZW50XG4iCisjfiBtc2dzdHIgIm1vdW50OiBtYWtpbmE6ZGl6aW4gYXJnw7xtYW7EsSBnZXJlxJ9pbmRlbiB1enVuXG4iCisKKyN+IG1zZ2lkICJtb3VudDogd2FybmluZzogbXVsdGlwbGUgaG9zdG5hbWVzIG5vdCBzdXBwb3J0ZWRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6IHV5YXLEsTogw6dva2x1IG1ha2luYSBpc2ltbGVyaSBkZXN0ZWtsZW5taXlvclxuIgorCisjfiBtc2dpZCAibW91bnQ6IGRpcmVjdG9yeSB0byBtb3VudCBub3QgaW4gaG9zdDpkaXIgZm9ybWF0XG4iCisjfiBtc2dzdHIgIm1vdW50OiBiYcSfbGFuxLFsYWNhayBkaXppbiBtYWtpbmE6ZGl6aW4gYmnDp2VtaW5kZSBkZcSfaWxcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzIGnDp2luIGFkcmVzIGFsxLFuYW3EsXlvclxuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgIm1vdW50OiB5YW5sxLHFnyBocC0+aF9sZW5ndGggYWzEsW5kxLFcbiIKKworI34gbXNnaWQgIm1vdW50OiBleGNlc3NpdmVseSBsb25nIG9wdGlvbiBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDogc2XDp2VuZWsgYXJnw7xtYW7EsSBnZXJlxJ9pbmRlbiB1enVuXG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBVbnJlY29nbml6ZWQgcHJvdG89IG9wdGlvbi5cbiIKKyN+IG1zZ3N0ciAiVXlhcsSxOiBwcm90bz0gc2XDp2VuZcSfaSBiaWxpbm1peW9yLlxuIgorCisjfiBtc2dpZCAiV2FybmluZzogT3B0aW9uIG5hbWxlbiBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICJVeWFyxLE6IG5hbWxlbiBzZcOnZW5lxJ9pIGRlc3Rla2xlbm1peW9yLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgcGFyYW1ldGVyOiAlcz0lZFxuIgorI34gbXNnc3RyICJiaWxpbm1leWVuIG5mcyBiYcSfIHBhcmFtZXRyZXNpOiAlcz0lZFxuIgorCisjfiBtc2dpZCAiV2FybmluZzogb3B0aW9uIG5vbG9jayBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICJVeWFyxLE6IG5vbG9jayBzZcOnZW5lxJ9pIGRlc3Rla2xlbm1peW9yLlxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgbW91bnQgb3B0aW9uOiAlcyVzXG4iCisjfiBtc2dzdHIgImJpbGlubWV5ZW4gbmZzIGJhxJ8gc2XDp2VuZcSfaTogJXMlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGdvdCBiYWQgaHAtPmhfbGVuZ3RoP1xuIgorI34gbXNnc3RyICJtb3VudDogeWFubMSxxZ8gaHAtPmhfbGVuZ3RoIGFsxLFuZMSxP1xuIgorCisjfiBtc2dpZCAibmZzIGJpbmRyZXN2cG9ydCIKKyN+IG1zZ3N0ciAibmZzIGJpbmRyZXN2cG9ydCIKKworI34gbXNnaWQgIm5mcyBzZXJ2ZXIgcmVwb3J0ZWQgc2VydmljZSB1bmF2YWlsYWJsZSIKKyN+IG1zZ3N0ciAibmZzIHN1bnVjdSBzZXJ2aXNpIGt1bGxhbsSxbWTEscWfxLEgb2xhcmFrIHJhcG9ybGFkxLEiCisKKyN+IG1zZ2lkICJ1c2VkIHBvcnRtYXBwZXIgdG8gZmluZCBORlMgcG9ydFxuIgorI34gbXNnc3RyICJORlMgcG9ydHVudSBidWxtYWsgacOnaW4gcG9ydG1hcHBlciBrdWxsYW7EsWxkxLFcbiIKKworI34gbXNnaWQgInVzaW5nIHBvcnQgJWQgZm9yIG5mcyBkZWFtb25cbiIKKyN+IG1zZ3N0ciAibmZzIGFydGFsYW4gc8O8cmVjaSBpw6dpbiAlZCBwb3J0dSBrdWxsYW7EsWzEsXlvclxuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgc3RhdHVzIHJldHVybiB2YWx1ZTogJWQiCisjfiBtc2dzdHIgImJpbGlubWV5ZW4gbmZzIGR1cnVtIHNvbnXDpyBkZcSfZXJpOiAlZCIKKworI34gbXNnaWQgImhvc3Q6ICVzLCBkaXJlY3Rvcnk6ICVzXG4iCisjfiBtc2dzdHIgIm1ha2luYTogJXMsIGRpemluOiAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiAlcyBpw6dpbiBhZHJlcyBhbMSxbmFtxLF5b3JcbiIKKworI34gbXNnaWQgInVtb3VudDogZ290IGJhZCBob3N0cC0+aF9sZW5ndGhcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiB5YW5sxLHFnyBob3N0cC0+aF9sZW5ndGggYWzEsW5kxLFcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tYmFkIHBhdGggbGVuZ3RoXG4iCisjfiBtc2dzdHIgIiVzOiBnZcOnZXJzaXogY3JhbWZzIC0tIGRvc3lhIHlvbHUgdXp1bmx1xJ91IGhhdGFsxLFcbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0td3JvbmcgbWFnaWNcbiIKKyN+IG1zZ3N0ciAiJXM6IGdlw6dlcnNpeiBjcmFtZnMgLS0gaGF0YWzEsSBkb3N5YSBraW1sacSfaVxuIgorCisjfiBtc2dpZCAiJXM6IHdhcm5pbmctLWZpbGUgbGVuZ3RoIHRvbyBsb25nLCBwYWRkZWQgaW1hZ2U/XG4iCisjfiBtc2dzdHIgIiVzOiB1eWFyxLEgLS0gZG9zeWEgdXp1bmx1xJ91IMOnb2sgYsO8ecO8aywgYWTEsW1sxLEgZcWfbGVtP1xuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1jcmMgZXJyb3JcbiIKKyN+IG1zZ3N0ciAiJXM6IGdlw6dlcnNpeiBjcmFtZnMtLWNyYyBoYXRhc8SxXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWJhZCBzdXBlcmJsb2NrXG4iCisjfiBtc2dzdHIgIiVzOiBnZcOnZXJzaXogY3JhbWZzIC0tIGhhdGFsxLEgc8O8cGVyYmxva1xuIgorCisjfiBtc2dpZCAiZmxvY2s6IHVua25vd24gb3B0aW9uLCBhYm9ydGluZy5cbiIKKyN+IG1zZ3N0ciAiZmxvY2s6IGJpbGlubWV5ZW4gc2XDp2VuZWssIMOnxLFrxLFsxLF5b3JcbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZSBmbG9jayBbLS1zaGFyZWRdIFstLXRpbWVvdXQ9c2Vjb25kc10gZmlsZW5hbWUgY29tbWFuZCB7YXJnIGFyZy4uLn1cbiIKKyN+IG1zZ3N0ciAiIgorI34gIkt1bGxhbsSxbcSxOiBmbG9jayBbLS1zaGFyZWRdIFstLXRpbWVvdXQ9c2FuaXllXSBkb3N5YWlzbWkga29tdXQge2FyZyAiCisjfiAiYXJnLi4ufVxuIgorCisjfiBtc2dpZCAiU3ludGF4IGVycm9yOiAnJXMnXG4iCisjfiBtc2dzdHIgIlPDtnpkaXppbWkgaGF0YXPEsTogJyVzJ1xuIgorCisjfiBtc2dpZCAiTm8gc3VjaCBwYXJhbWV0ZXIgc2V0OiAnJXMnXG4iCisjfiBtc2dzdHIgIkLDtnlsZSBiaXIgcGFyYW1ldHJlIHlvazogJyVzJ1xuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtcCBdIGRldiBuYW1lXG4iCisjfiBtc2dzdHIgIiAgICVzIFsgLXAgXSBheWfEsXQgaXNpbVxuIgorCisjfiBtc2dpZCAiIgorI34gIiAgICVzIFsgLXAgXSBkZXYgc2l6ZSBzZWN0IGhlYWRzIHRyYWNrcyBzdHJldGNoIGdhcCByYXRlIHNwZWMxIGZtdF9nYXBcbiIKKyN+IG1zZ3N0ciAiIgorI34gIiAgICVzIFsgLXAgXSBheWfEsXQgdXp1bmx1ayBzZWt0b3Iga2FmYSBpeiBnZXJpbG1lIGJvxZ9sdWsgb3JhbiDDtnplbGxpazEgIgorI34gImZtdF9nYXBcbiIKKworI34gbXNnaWQgIiAgICVzIFsgLWMgfCAteSB8IC1uIHwgLWQgXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGF5Z8SxdFxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSBheWfEsXRcbiIKKworI34gbXNnaWQgInZlcnNpb24iCisjfiBtc2dzdHIgInPDvHLDvG0iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCBvcGVuIC9kZXYvdXJhbmRvbSIKKyN+IG1zZ3N0ciAiL2Rldi91cmFuZG9tIGHDp8SxbGFtYWTEsSIKKworI34gbXNnaWQgImNvdWxkbid0IHJlYWQgcmFuZG9tIGRhdGEgZnJvbSAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgIi9kZXYvdXJhbmRvbSdkYW4gcmFzZ2VsZSB2ZXJpIG9rdW5hbWFkxLEiCisKKyN+IG1zZ2lkICJjYW4ndCBzdGF0KCVzKSIKKyN+IG1zZ3N0ciAic3RhdCAlcyB5YXDEsWxhbWFkxLEiCisKKyN+IG1zZ2lkICIlcyBkb2Vzbid0IGhhdmUgdGhlIGNvcnJlY3QgZmlsZW1vZGVzIgorI34gbXNnc3RyICIlcyBkb8SfcnUgZG9zeWEga2lwbGVyaW5lIHNhaGlwIGRlxJ9pbCIKKworI34gbXNnaWQgImNhbid0IHJlYWQgZGF0YSBmcm9tICVzIgorI34gbXNnc3RyICIlcyBkb3N5YXPEsW5kYW4gdmVyaSBva3VuYW3EsXlvciIKKworI34gbXNnaWQgIiIKKyN+ICJUb28gbWFueSB1c2VycyBsb2dnZWQgb24gYWxyZWFkeS5cbiIKKyN+ICJUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJLdWxsYW7EsWPEsSBzYXnEsXPEsSBzxLFuxLFyxLEgYcWfxLFsZMSxLlxuIgorI34gIkRhaGEgc29ucmEgdGVrcmFyIGRlbmV5aW4uXG4iCisKKyN+IG1zZ2lkICJZb3UgaGF2ZSB0b28gbWFueSBwcm9jZXNzZXMgcnVubmluZy5cbiIKKyN+IG1zZ3N0ciAiw4dhbMSxxZ90xLFyYWJpbGVjZcSfaW5peiB1eWd1bGFtYSBzYXnEsXPEsW7EsSBhxZ90xLFuxLF6LlxuIgorCisjfiBtc2dpZCAiVGhlIHBhc3N3b3JkIG11c3QgaGF2ZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMsIHRyeSBhZ2Fpbi5cbiIKKyN+IG1zZ3N0ciAiUGFyb2xhIGVuIGF6IDYga2FyYWt0ZXIgdXp1bmx1a3RhIG9sbWFsxLFkxLFyLCB0ZWtyYXIgZGVuZXlpbi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJUaGUgcGFzc3dvcmQgbXVzdCBjb250YWluIGNoYXJhY3RlcnMgb3V0IG9mIHR3byBvZiB0aGUgZm9sbG93aW5nXG4iCisjfiAiY2xhc3NlczogIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgbm9uIGFscGhhbnVtZXJpY1xuIgorI34gImNoYXJhY3RlcnMuIFNlZSBwYXNzd2QoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJCaXIgcGFyb2xhIGJ1IGthcmFrdGVyIGdydXBsYXLEsW7EsW4gZW4gYXogaWtpc2luZGVraSBrYXJha3RlcmxlcmlcbiIKKyN+ICJpw6dlcm1lbGlkaXI6IGLDvHnDvGsgdmUga8O8w6fDvGsgaGFyZmxlciwgcmFrYW1sYXIsIGnFn2FyZXRsZXIuXG4iCisjfiAiRGFoYSBmYXpsYSBiaWxnaSBpw6dpbjogJ21hbiAxIHBhc3N3ZCdcbiIKKworI34gbXNnaWQgIllvdSBjYW5ub3QgcmV1c2UgdGhlIG9sZCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAiRXNraSBwYXJvbGFuxLF6xLEgeWVuaWRlbiBrdWxsYW5hbWF6c8SxbsSxei5cbiIKKworI34gbXNnaWQgIlBsZWFzZSBkb24ndCB1c2Ugc29tZXRoaW5nIGxpa2UgeW91ciB1c2VybmFtZSBhcyBwYXNzd29yZCFcbiIKKyN+IG1zZ3N0ciAiTMO8dGZlbiBwYXJvbGEgb2xhcmFrIGt1bGxhbsSxY8SxIGFkxLFuxLF6IGdpYmkgxZ9leWxlcmkga3VsbGFubWF5xLFuxLF6IVxuIgorCisjfiBtc2dpZCAiUGxlYXNlIGRvbid0IHVzZSBzb21ldGhpbmcgbGlrZSB5b3VyIHJlYWxuYW1lIGFzIHBhc3N3b3JkIVxuIgorI34gbXNnc3RyICJMw7x0ZmVuIHBhcm9sYSBvbGFyYWsgYWQtc295YWTEsSBnaWJpIMWfZXlsZXJpIGt1bGxhbm1hecSxbsSxeiFcbiIKKworI34gbXNnaWQgIlVzYWdlOiBwYXNzd2QgW3VzZXJuYW1lIFtwYXNzd29yZF1dXG4iCisjfiBtc2dzdHIgIkt1bGxhbsSxbcSxOiBwYXNzd2QgW2t1bGxhbsSxY8SxxLBzbWkgW3Bhcm9sYV1dXG4iCisKKyN+IG1zZ2lkICJPbmx5IHJvb3QgbWF5IHVzZSB0aGUgb25lIGFuZCB0d28gYXJndW1lbnQgZm9ybXMuXG4iCisjfiBtc2dzdHIgIkFyZ8O8bWFubMSxIGt1bGxhbsSxbSBzYWRlY2Ugcm9vdCBpw6dpbiBtw7xta8O8bmTDvHIuXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFstZm9xc3ZWXSBbdXNlciBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICJLdWxsYW7EsW3EsTogcGFzc3dkIFstZm9xc3ZWXSBba3VsbGFuxLFjxLEgW3Bhcm9sYV1dXG4iCisKKyN+IG1zZ2lkICJDYW4ndCBleGVjICVzOiAlc1xuIgorI34gbXNnc3RyICIlcyDDp2FsxLHFn3TEsXLEsWxhbcSxeW9yOiAlc1xuIgorCisjfiBtc2dpZCAiQ2Fubm90IGZpbmQgbG9naW4gbmFtZSIKKyN+IG1zZ3N0ciAiS3VsbGFuxLFjxLEgaXNtaSBidWx1bmFtxLF5b3IiCisKKyN+IG1zZ2lkICJPbmx5IHJvb3QgY2FuIGNoYW5nZSB0aGUgcGFzc3dvcmQgZm9yIG90aGVycy5cbiIKKyN+IG1zZ3N0ciAiRGnEn2VybGVyaW5pbiBwYXJvbGFzxLFuxLEgc2FkZWNlIHJvb3QgZGXEn2nFn3RpcmViaWxpci5cbiIKKworI34gbXNnaWQgIkNhbid0IGZpbmQgdXNlcm5hbWUgYW55d2hlcmUuIElzIGAlcycgcmVhbGx5IGEgdXNlcj8iCisjfiBtc2dzdHIgIiIKKyN+ICJLdWxsYW7EsWPEsSBpc21pIGhpw6diaXIgeWVyZGUgYnVsdW5hbcSxeW9yLiBgJXMnIGdlcsOnZWt0ZW4gYmlyIGt1bGxhbsSxY8SxICIKKyN+ICJpc21pIG1pPyIKKworI34gbXNnaWQgIlNvcnJ5LCBJIGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBwYXNzd29yZHMuIFVzZSB5cHBhc3N3ZCBpbnN0ZWFkLiIKKyN+IG1zZ3N0ciAiIgorI34gIlNhZGVjZSB5ZXJlbCBwYXJvbGFsYXIgZGXEn2nFn3RpcmlsZWJpbGlyLiBCdW51biB5ZXJpbmUgeXBwYXNzd2Qga3VsbGFuxLFuLiIKKworI34gbXNnaWQgIlVJRCBhbmQgdXNlcm5hbWUgZG9lcyBub3QgbWF0Y2gsIGltcG9zdGVyISIKKyN+IG1zZ3N0ciAiS3VsbGFuxLFjxLEga2ltbGnEn2kgaWxlIGt1bGxhbsSxY8SxIGlzbWkgdXl1xZ9tdXlvciwgc2FodGVrYXIhIgorCisjfiBtc2dpZCAiQ2hhbmdpbmcgcGFzc3dvcmQgZm9yICVzXG4iCisjfiBtc2dzdHIgIiVzIGnDp2luIHBhcm9sYSBkZcSfacWfdGlyaWxpeW9yXG4iCisKKyN+IG1zZ2lkICJFbnRlciBvbGQgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiRXNraSBwYXJvbGFuxLF6xLEgeWF6xLFuxLF6OiAiCisKKyN+IG1zZ2lkICJJbGxlZ2FsIHBhc3N3b3JkLCBpbXBvc3Rlci4iCisjfiBtc2dzdHIgIkt1cmFsZMSxxZ/EsSBwYXJvbGEuIgorCisjfiBtc2dpZCAiRW50ZXIgbmV3IHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgIlllbmkgcGFyb2xhbsSxesSxIHlhesSxbsSxejogIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgbm90IGNoYW5nZWQuIgorI34gbXNnc3RyICJQYXJvbGEgZGXEn2nFn3RpcmlsZGkuIgorCisjfiBtc2dpZCAiUmUtdHlwZSBuZXcgcGFzc3dvcmQ6ICIKKyN+IG1zZ3N0ciAiWWVuaSBwYXJvbGFuxLF6xLEgdGVrcmFyIHlhesSxbsSxejogIgorCisjfiBtc2dpZCAiWW91IG1pc3NwZWxsZWQgaXQuIFBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAiWWFubMSxxZ8geWF6ZMSxbsSxei4gUGFyb2xhIGRlxJ9pxZ90aXJpbG1lZGkuIgorCisjfiBtc2dpZCAicGFzc3dvcmQgY2hhbmdlZCwgdXNlciAlcyIKKyN+IG1zZ3N0ciAiJXMgacOnaW4gcGFyb2xhIGRlxJ9pxZ90aXJpbGRpIgorCisjfiBtc2dpZCAiUk9PVCBQQVNTV09SRCBDSEFOR0VEIgorI34gbXNnc3RyICJST09UIFBBUk9MQVNJIERFxJ7EsMWeVMSwUsSwTETEsCIKKworI34gbXNnaWQgInBhc3N3b3JkIGNoYW5nZWQgYnkgcm9vdCwgdXNlciAlcyIKKyN+IG1zZ3N0ciAiJXMgacOnaW4gcGFyb2xhIHJvb3QgdGFyYWbEsW5kYW4gZGXEn2nFn3RpcmlsZGkiCisKKyN+IG1zZ2lkICJjYWxsaW5nIHNldHB3bmFtIHRvIHNldCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAicGFyb2xhecSxIGtheWRldG1layBpw6dpbiBzZXRwd25hbSDDp2HEn3LEsWzEsXlvci5cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIlBhcm9sYSBkZcSfacWfdGlyaWxtZWRpISBEYWhhIHNvbnJhIHRla3JhciBkZW5leWluLlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgY2hhbmdlZC5cbiIKKyN+IG1zZ3N0ciAiUGFyb2xhIGRlxJ9pxZ90aXJpbGRpLlxuIgorCisjfiBtc2dpZCAibW91bnQ6IHRoaXMgdmVyc2lvbiB3YXMgY29tcGlsZWQgd2l0aG91dCBzdXBwb3J0IGZvciB0aGUgdHlwZSBgbmZzJyIKKyN+IG1zZ3N0ciAibW91bnQ6IGJ1IHPDvHLDvG0gYG5mcycgdMO8csO8IGnDp2luIGRlc3RlayBvbG1ha3PEsXrEsW4gZGVybGVubWnFnyIKKworI34gbXNnaWQgIldhcm5pbmc6IG9taXR0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgJWRcbiIKKyN+IG1zZ3N0ciAiVXlhcsSxOiAlZCBiw7Zsw7xtw7xuZGVuIHNvbnJha2lsZXIgYXRsYW7EsXlvclxuIgorCisjfiBtc2dpZCAiJXM6IG5vdCBjb21waWxlZCB3aXRoIG1pbml4IHYyIHN1cHBvcnRcbiIKKyN+IG1zZ3N0ciAiJXM6IG1pbml4IHYyIGRlc3RlxJ9peWxlIGRlcmxlbm1lbWnFn1xuIgorCisjfiBtc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgZm9yICVzXG4iCisjfiBtc2dzdHIgIkJMS0dFVFNJWkUgaW9jdGwgJXMgacOnaW4gYmHFn2FyxLFzxLF6XG4iCisKKyN+IG1zZ2lkICJtb3VudDogZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIGJ5IGtlcm5lbCIKKyN+IG1zZ3N0ciAibW91bnQ6IGRvc3lhIHNpc3RlbWkgdMO8csO8ICVzIMOnZWtpcmRlayB0YXJhZsSxbmRhbiBkZXN0ZWtsZW5taXlvciIKKworI34gbXNnaWQgIm1vdW50OiAlcyBkdXBsaWNhdGUgLSBub3QgbW91bnRlZCIKKyN+IG1zZ3N0ciAibW91bnQ6ICVzIHlpbmVsZW5kaSAtIGJhxJ9sYW5tYWTEsSIKKworI34gbXNnaWQgIlVVSUQiCisjfiBtc2dzdHIgIlVVSUQiCisKKyN+IG1zZ2lkICJtb3VudDogdGhlIGxhYmVsICVzIG9jY3VycyBvbiBib3RoICVzIGFuZCAlcyAtIG5vdCBtb3VudGVkXG4iCisjfiBtc2dzdHIgIm1vdW50OiBldGlrZXQgJXMgaGVtICVzIGhlbSBkZSAlcyBpw6dpbiBnw7Zyw7xuw7x5b3IgLSBiYcSfbGFubWFkxLFcbiIKKworI34gbXNnaWQgIkJvb3QgKCUwMlgpIgorI34gbXNnc3RyICJCb290ICglMDJYKSIKKworI34gbXNnaWQgIk5vbmUgKCUwMlgpIgorI34gbXNnc3RyICJZb2sgKCUwMlgpIgorCisjfiBtc2dpZCAiJXM6IFslMDR4XTolbGQgKCVzKSBvZmZzZXQgJWQsICVzIGVuY3J5cHRpb25cbiIKKyN+IG1zZ3N0ciAiJXM6IFslMDR4XTolbGQgKCVzKSBnw7ZyZWxpIGtvbnVtICVkLCAlcyDFn2lmcmVsZW1lXG4iCisKKyN+IG1zZ2lkICIiCisjfiAibW91bnQ6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS5cbiIKKyN+ICIgICAgICAgTWF5YmUgL2Rldi9sb29wIyBoYXMgYSB3cm9uZyBtYWpvciBudW1iZXI/IgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6IEhpw6cgYmlyIGxvb3AgYXlnxLF0xLEgYnVsdW5hbWFkxLEuXG4iCisjfiAiICAgICAgIC9kZXYvbG9vcCMgYmlyIHlhbmzEscWfIG1ham9yIG51bWFyYXPEsSBpw6dlcml5b3Igb2xhYmlsaXIgbWk/IgorCisjfiBtc2dpZCAiIgorI34gIm1vdW50OiBDb3VsZCBub3QgZmluZCBhbnkgbG9vcCBkZXZpY2UuIE1heWJlIHRoaXMga2VybmVsIGRvZXMgbm90IGtub3dcbiIKKyN+ICIgICAgICAgYWJvdXQgdGhlIGxvb3AgZGV2aWNlICh0aGVuIHJlY29tcGlsZSBvciBgaW5zbW9kIGxvb3AubycpLCBvclxuIgorI34gIiAgICAgICBtYXliZSAvZGV2L2xvb3AjIGhhcyB0aGUgd3JvbmcgbWFqb3IgbnVtYmVyPyIKKyN+IG1zZ3N0ciAiIgorI34gIm1vdW50OiBIacOnIGJpciBsb29wIGF5Z8SxdMSxIGJ1bHVuYW1hZMSxLiBCdSDDp2VraXJkZWsgeWEgbG9vcCBheWfEsXTEsSAiCisjfiAiaGFra8SxbmRhXG4iCisjfiAiICAgICAgIGJpbGdpeWUgc2FoaXAgZGXEn2lsIChgaW5zbW9kIGxvb3AubycgZGVuZXlpbiwgc29udcOnIGFsYW1henNhbsSxelxuIgorI34gIiAgICAgICDDp2VraXJkZcSfaSB5ZW5pZGVuIGRlcmxleWluLikgeWEgZGEgL2Rldi9sb29wIyB5YW5sxLHFnyBtYWrDtnIgIgorI34gIm51bWFyYXPEsW5hXG4iCisjfiAiICAgICAgIHNhaGlwIG9sYWJpbGlyPyIKKworI34gbXNnaWQgIkluaXQgKHVwIHRvIDE2IGhleCBkaWdpdHMpOiAiCisjfiBtc2dzdHIgIkJhxZ9sYW5nxLHDpyAoMTYgdGFuZXllIGthZGFyIG9uYWx0xLFsxLFrIHJha2FtKTogIgorCisjfiBtc2dpZCAiTm9uLWhleCBkaWdpdCAnJWMnLlxuIgorI34gbXNnc3RyICInJWMnIG9uYWx0xLFsxLFrIGJpciByYWthbSBkZcSfaWwuXG4iCisKKyN+IG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBnZXQga2V5IGZvciBlbmNyeXB0aW9uIHN5c3RlbSAlZFxuIgorI34gbXNnc3RyICIlZCDFn2lmcmVsZW1lIHNpc3RlbWkgacOnaW4gbmFzxLFsIGFuYWh0YXIgYWzEsW5hY2HEn8SxIGJpbGlubWl5b3JcbiIKKworI34gbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCisjfiBtc2dzdHIgIiVpIGRpc2sgYsO2bMO8bcO8bsO8biBiaXRpxZ9pIHNpbGluZGlyIHPEsW7EsXJsYXLEsSBkxLHFn8SxbmRhOlxuIgorCisjfiBtc2dpZCAiQ2FuJ3Qgb3BlbiBoZWxwIGZpbGUiCisjfiBtc2dzdHIgIllhcmTEsW0gZG9zeWFzxLEgYcOnxLFsYW3EsXlvciIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJEaXNrICVzOiAlZCBoZWFkcywgJWQgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisjfiAiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisjfiAiXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJcbiIKKyN+ICJEaXNrICVzOiAlZCBrYWZhLCAlZCBzZWt0w7ZyLCAlZCBzaWxpbmRpclxuIgorI34gIkJpcmltID0gJXMgICglZCAqICVkIGJheXRsxLFrKVxuIgorI34gIlxuIgorCisjfiBtc2dpZCAibnVtYmVyIGAlcycgdG8gYCVzJyBvdXQgb2YgcmFuZ2VcbiIKKyN+IG1zZ3N0ciAiYCVzJyBgJXMnIGFyYWzEscSfxLFuxLFuIGTEscWfxLFuZGFcbiIKKworI34gbXNnaWQgInVucmVjb2duaXplZCBvcHRpb24gYCVzJ1xuIgorI34gbXNnc3RyICJgJXMnIHNlw6dlbmXEn2kgYmlsaW5taXlvclxuIgorCisjfiBtc2dpZCAib3B0aW9uIGAlcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgorI34gbXNnc3RyICJgJXMnIHNlw6dlbmXEn2kgYmlyIGFyZ8O8bWFuc8SxeiBrdWxsYW7EsWzEsXJcbiIKKworI34gbXNnaWQgInVucmVjb2duaXplZCBvcHRpb24gYC0lYydcbiIKKyN+IG1zZ3N0ciAiYC0lYycgc2XDp2VuZcSfaSBiaWxpbm1peW9yXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEyc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEyc1xuIgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdWsuZ21vIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdWsuZ21vCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MTg2MjkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby91ay5nbW8KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdWsucG8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby91ay5wbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWQyNWFiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdWsucG8KQEAgLTAsMCArMSwxMjYyMCBAQAorIyBVa3JhaW5pYW4gdHJhbnNsYXRpb24gdG8gdXRpbC1saW51eC4KKyMgQ29weXJpZ2h0IChDKSAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jCisjIFRoaXMgZmlsZSBpcyBwdXQgaW4gdGhlIHB1YmxpYyBkb21haW4uCisjIE1heGltIFYuIER6aXVtYW5lbmtvIDxtdmRAbXlsaW51eC5jb20udWE+LCAyMDA0LTIwMDYuCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4IDIuMTMtcHJlN1xuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT5cbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wMy0yMiAwOTozNyswMTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAwNi0wNC0wNiAxMDo0NSswMjAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBNYXhpbSBWLiBEeml1bWFuZW5rbyA8bXZkQG15bGludXguY29tLnVhPlxuIgorIkxhbmd1YWdlLVRlYW06IFVrcmFpbmlhbiA8dHJhbnNsYXRpb24tdGVhbS11a0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgItCy0YHRgtCw0L3QvtCy0LjRgtC4INGP0Log0LvQuNGI0LUt0LTQu9GPLdGH0LjRgtCw0L3QvdGPIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAi0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0LTQu9GPINGH0LjRgtCw0L3QvdGPLdC30LDQv9C40YHRgyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjc2Cittc2dpZCAiZ2V0IHJlYWQtb25seSIKK21zZ3N0ciAi0L7RgtGA0LjQvNCw0YLQuCDRgdGC0LDQvSDQu9C40YjQtS3QtNC70Y8t0YfQuNGC0LDQvdC90Y8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo4MgorIywgZnV6enkKK21zZ2lkICJnZXQgbG9naWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICLQvtGC0YDQuNC80LDRgtC4INGA0L7Qt9C80ZbRgCDRgdC10LrRgtC+0YDRgyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjg4CisjLCBmdXp6eQorbXNnaWQgImdldCBwaHlzaWNhbCBibG9jayAoc2VjdG9yKSBzaXplIgorbXNnc3RyICLQvtGC0YDQuNC80LDRgtC4INGA0L7Qt9C80ZbRgCDRgdC10LrRgtC+0YDRgyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjk0Cittc2dpZCAiZ2V0IG1pbmltdW0gSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwMAorbXNnaWQgImdldCBvcHRpbWFsIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDYKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGFsaWdubWVudCBvZmZzZXQiCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRgNC+0LfQvNGW0YAg0LLRg9C30LvQsCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExMgorIywgZnV6enkKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgItCU0L7QtNCw0YLQutC+0LLQuNGFINGB0LXQutGC0L7RgNGW0LIg0YMg0YbQuNC70ZbQvdC00YDRliIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExOAorbXNnaWQgImdldCBibG9ja3NpemUiCittc2dzdHIgItC+0YLRgNC40LzQsNGC0Lgg0YDQvtC30LzRltGAINCx0LvQvtC60YMiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMjUKK21zZ2lkICJzZXQgYmxvY2tzaXplIgorbXNnc3RyICLQstGB0YLQsNC90L7QstC40YLQuCDRgNC+0LfQvNGW0YAg0LHQu9C+0LrRgyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzMQorbXNnaWQgImdldCAzMi1iaXQgc2VjdG9yIGNvdW50IgorbXNnc3RyICLQvtGC0YDQuNC80LDRgtC4IDMyLdCx0ZbRgtC90YMg0LrRltC70YzQutGW0YHRgtGMINGB0LXQutGC0L7RgNGW0LIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAi0L7RgtGA0LjQvNCw0YLQuCDRgNC+0LfQvNGW0YAg0YMg0LHQsNC50YLQsNGFIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTQ0Cittc2dpZCAic2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAi0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0YDQtdC20LjQvCDQv9C+0L/QtdGA0LXQtNC90YzQvtCz0L4g0YfQuNGC0LDQvdC90Y8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTAKK21zZ2lkICJnZXQgcmVhZGFoZWFkIgorbXNnc3RyICLQvtGC0YDQuNC80LDRgtC4INGB0YLQsNC9INGA0LXQttC40LzRgyDQv9C+0L/QtdGA0LXQtNC90YzQvtCz0L4g0YfQuNGC0LDQvdC90Y8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKKyMsIGZ1enp5Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICLQstGB0YLQsNC90L7QstC40YLQuCDRgNC10LbQuNC8INC/0L7Qv9C10YDQtdC00L3RjNC+0LPQviDRh9C40YLQsNC90L3RjyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2MworIywgZnV6enkKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgItC+0YLRgNC40LzQsNGC0Lgg0YHRgtCw0L0g0YDQtdC20LjQvNGDINC/0L7Qv9C10YDQtdC00L3RjNC+0LPQviDRh9C40YLQsNC90L3RjyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgItGB0LrQuNC90YPRgtC4INCx0YPRhNC10YDQuCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgItC/0LXRgNC10YfQuNGC0LDRgtC4INGC0LDQsdC70LjRhtGOINGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6XG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFvQv9GA0LjRgdGC0YDQvtGXXVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgWy12fC1xXSBjb21tYW5kcyBkZXZpY2VzXG4iCittc2dzdHIgIiAgJXMgWy12fC1xXSDQutC+0LzQsNC90LTQuCDQv9GA0LjRgdGC0YDQvtGXXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIgorbXNnc3RyICLQlNC+0YHRgtGD0L/QvdGWINC60L7QvNCw0L3QtNC4OlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImdldCBzaXplIGluIDUxMi1ieXRlIHNlY3RvcnMiCittc2dzdHIgItC+0YLRgNC40LzQsNGC0Lgg0YDQvtC30LzRltGAINGDINCx0LDQudGC0LDRhSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBjb21tYW5kOiAlc1xuIgorbXNnc3RyICIlczog0J3QtdCy0ZbQtNC+0LzQsCDQutC+0LzQsNC90LTQsDogJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgorbXNnc3RyICIlcyDQstC40LzQsNCz0LDRlCDQstC60LDQt9GD0LLQsNC90L3RjyDQsNGA0LPRg9C80LXQvdGC0YNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXMgZmFpbGVkLlxuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQv9GA0Lgg0LLRgdGC0LDQvdC+0LLQu9C10L3QvdGWINC/0L7Qt9C40YbRltGXIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN1Y2NlZWRlZC5cbiIKK21zZ3N0ciAiJXMg0LLQuNC60L7QvdCw0L3Qvi5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW9jdGwgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6INC/0L7QvNC40LvQutCwIGlvY3RsINC00LvRjyAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDgxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIFN0YXJ0U2VjICAgICAgICAgICAgU2l6ZSAgIERldmljZVxuIgorbXNnc3RyICLQp9GCICDQn9C+0KfRgiAg0KDQt9C80KEg0KDQt9C80JHQuyAgICDQn9C+0YfQodC10LrRgiAgICDQoNC+0LfQvNGW0YAgINCf0YDQuNGB0YLRgNGW0LlcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6XG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzpcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHROT1RFOiBlbHZ0dW5lIG9ubHkgd29ya3Mgd2l0aCAyLjQga2VybmVsc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0L/QvtC30LjRhtGW0Y7QstCw0L3QvdGPIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1pc3NpbmcgYmxvY2tkZXZpY2UsIHVzZSAtaCBmb3IgaGVscFxuIgorbXNnc3RyICIlcyDQvdC1INGUINCx0LvQvtGH0L3QuNC8INC/0YDQuNGB0YLRgNC+0ZTQvCDRh9C4INGE0LDQudC70L7QvFxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImVsdnR1bmUgaXMgb25seSB1c2VmdWwgb24gb2xkZXIga2VybmVscztcbiIKKyJmb3IgMi42IHVzZSBJTyBzY2hlZHVsZXIgc3lzZnMgdHVuYWJsZXMgaW5zdGVhZC4uXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcm1hdHRpbmcgLi4uICIKK21zZ3N0ciAi0KTQvtGA0LzQsNGC0YPQstCw0L3QvdGPIC4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo0OSBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICLQstC40LrQvtC90LDQvdC+XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAi0J/QtdGA0LXQstGW0YDQutCwIC4uLiAiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MQorbXNnaWQgIlJlYWQ6ICIKK21zZ3N0ciAi0KfQuNGC0LDQvdC90Y86ICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JsZW0gcmVhZGluZyBjeWxpbmRlciAlZCwgZXhwZWN0ZWQgJWQsIHJlYWQgJWRcbiIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0LfRh9C40YLRg9Cy0LDQvdC90Y8g0YbQuNC70ZbQvdC00YDRgyAlZCwg0L7Rh9GW0LrRg9Cy0LDQu9C+0YHRjCAlZCwg0L/RgNC+0YfQuNGC0LDQvdC+ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiYmFkIGRhdGEgaW4gY3lsICVkXG4iCisiQ29udGludWluZyAuLi4gIgorbXNnc3RyICIiCisi0L/QvtGI0LrQvtC00LbQtdC90ZYg0LTQsNC90ZYg0YMg0YbQuNC70ZbQvdC00YDRliAlZFxuIgorItCf0YDQvtC00L7QstC20LXQvdC90Y8gLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgWyAtbiBdINC/0YDQuNGB0YLRgNGW0LlcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjExOCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg0CisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxODEgZGlzay11dGlscy9ta2ZzLmJmcy5jOjExNCBkaXNrLXV0aWxzL21rZnMuYzo1MgorIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjgxMiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzIKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDg3IG1pc2MtdXRpbHMvZGRhdGUuYzoxNzkgbWlzYy11dGlscy9yZW5hbWUuYzo3OQorIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNDcgc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICglcylcbiIKK21zZ3N0ciAiJXMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3QgYSBibG9jayBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6INC90LUg0ZQg0LHQu9C+0YfQvdC40Lwg0L/RgNC40YHRgtGA0L7RlNC8XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDIKK21zZ2lkICJDb3VsZCBub3QgZGV0ZXJtaW5lIGN1cnJlbnQgZm9ybWF0IHR5cGUiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LfQvdCw0YfQuNGC0Lgg0L/QvtGC0L7Rh9C90LjQuSDRgtC40L8g0YTQvtGA0LzQsNGC0YMiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMtc2lkZWQsICVkIHRyYWNrcywgJWQgc2VjL3RyYWNrLiBUb3RhbCBjYXBhY2l0eSAlZCBrQi5cbiIKK21zZ3N0ciAiJXMt0YHRgtC+0YDQvtC90LgsICVkINC00L7RgNGW0LbQvtC6LCAlZCDRgdC10LrRgi/QtNC+0YDRltC20LrRgy4g0JfQsNCz0LDQu9GM0L3QuNC5INC+0LEn0ZTQvCAlZCDQutCxLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiRG91YmxlIgorbXNnc3RyICLQlNCy0ZYiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJTaW5nbGUiCittc2dzdHIgItCe0LTQvdCwIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1odl0gWy14IGRpcl0gZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAteCBkaXIgICAgIGV4dHJhY3QgaW50byBkaXJcbiIKKyIgLXYgICAgICAgICBiZSBtb3JlIHZlcmJvc2VcbiIKKyIgZmlsZSAgICAgICBmaWxlIHRvIHRlc3RcbiIKK21zZ3N0ciAiIgorItCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgWy1odl0gWy14INC60LDRgtCw0LvQvtCzXSDRhNCw0LnQu1xuIgorIiAtaCAgICAgICAgINCy0LjQstC10YHRgtC4INGG0Y4g0LTQvtCy0ZbQtNC60YNcbiIKKyIgLXgg0LrQsNGC0LDQu9C+0LMg0YDQvtC30L/QsNC60YPQstCw0YLQuCDRgyDQutCw0YLQsNC70L7Qs1xuIgorIiAtdiAgICAgICAgINCx0ZbQu9GM0YjQtSDQv9C+0LTRgNC+0LHQuNGG0YxcbiIKKyIg0YTQsNC50LsgICAgICAg0YTQsNC50Lsg0LTQu9GPINC/0LXRgNC10LLRltGA0LrQuFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdGF0IGZhaWxlZDogJXMiCittc2dzdHIgIijQndCw0YHRgtGD0L/QvdC40Lkg0YTQsNC50Ls6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2NyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgItC/0L7QvNC40LvQutCwIG9wZW5wdHlcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgZmFpbGVkOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGRldmljZSBzaXplOiAlcyIKK21zZ3N0ciAiJXM6INC/0L7Qv9C10YDQtdC00LbQtdC90L3RjyAtINC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LfQvdCw0YfQuNGC0Lgg0YDQvtC30LzRltGAINGE0LDQudC70L7QstC+0Zcg0YHQuNGB0YLQtdC80LhcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIlcyDQvdC1INGUINCx0LvQvtGH0L3QuNC8INC/0YDQuNGB0YLRgNC+0ZTQvCDRh9C4INGE0LDQudC70L7QvFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKKyMsIGZ1enp5Cittc2dpZCAiZmlsZSBsZW5ndGggdG9vIHNob3J0IgorbXNnc3RyICIlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5IGNyYW1mcyAtINC00L7QstC20LjQvdCwINGE0LDQudC70YMg0L3QsNC00YLQviDQutC+0YDQvtGC0LrQsFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg5IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxOTcKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNTggZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCBmYWlsZWQ6ICVzIgorbXNnc3RyICIo0J3QsNGB0YLRg9C/0L3QuNC5INGE0LDQudC7OiAlcykiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMDcKK21zZ2lkICJzdXBlcmJsb2NrIG1hZ2ljIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE2CisjLCBmdXp6eQorbXNnaWQgInVuc3VwcG9ydGVkIGZpbGVzeXN0ZW0gZmVhdHVyZXMiCittc2dzdHIgItCS0LLQtdC00ZbRgtGMINGC0LjQvyDRhNCw0LnQu9C+0LLQvtGXINGB0LjRgdGC0LXQvNC4OiAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAi0JrRltC70YzQutGW0YHRgtGMINGB0LXQutGC0L7RgNGW0LIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDRgNC+0LfQtNGW0LsgJXMg0L/QvtGI0LjRgNGO0ZTRgtGM0YHRjyDQt9CwINC80LXQttGWINC00LjRgdC60YNcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogb2xkIGNyYW1mcyBmb3JtYXRcbiIKK21zZ3N0ciAiJXM6INC/0L7Qv9C10YDQtdC00LbQtdC90L3RjyAtINGB0YLQsNGA0LjQuSDRgtC40L8g0L7QsdGA0LDQt9GDIGNyYW1mcywg0L3QtdC80LDRlCDQutC+0L3RgtGA0L7Qu9GM0L3QvtGXINGB0YPQvNC4XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNDYKK21zZ2lkICJ1bmFibGUgdG8gdGVzdCBDUkM6IG9sZCBjcmFtZnMgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzIgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjMzOQorIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ3NyBsb2dpbi11dGlscy9jaGZuLmM6NTI5IGxvZ2luLXV0aWxzL2Noc2guYzo0MzkKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTQxIHN5cy11dGlscy9jeXR1bmUuYzozMjEKK21zZ2lkICJtYWxsb2MgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstC40LTRltC70LXQvdC90Y8g0L/QsNC8J9GP0YLRliIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI5NworIywgZnV6enkKK21zZ2lkICJjcmMgZXJyb3IiCittc2dzdHIgIiwg0L/QvtC80LjQu9C60LAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjQKKyMsIGZ1enp5Cittc2dpZCAicm9vdCBpbm9kZSBpcyBub3QgZGlyZWN0b3J5IgorbXNnc3RyICLQutC+0YDQtdC90LXQstC40Lkg0LLRg9C30L7QuyDQvdC1INGUINC60LDRgtCw0LvQvtCz0L7QvCIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM4NworbXNnaWQgImRhdGEgYmxvY2sgdG9vIGxhcmdlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVjb21wcmVzc2lvbiBlcnJvciAlcCglZCk6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgaG9sZSBhdCAlbGQgKCV6ZClcbiIKK21zZ3N0ciAiICDQtNGW0YDQutCwINC90LAgJWxkICglZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyMyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgdW5jb21wcmVzc2luZyBibG9jayBhdCAlbGQgdG8gJWxkICglbGQpXG4iCittc2dzdHIgIiAg0YDQvtC30YLQuNGB0LrQsNGU0YLRjNGB0Y8g0LHQu9C+0Log0LcgJWxkINC00L4gJWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAiJXM6INCd0LUt0LHQu9C+0YfQvdGWICglbGQpINCx0LDQudGC0LhcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICIlczog0JHQtdC30YDQvtC30LzRltGA0L3RliAoJWxkINC/0YDQvtGC0LggJWxkKSDQsdCw0LnRgtC4XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGZhaWxlZDogJXMiCittc2dzdHIgIijQndCw0YHRgtGD0L/QvdC40Lkg0YTQsNC50Ls6ICVzKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibGNob3duIGZhaWxlZDogJXMiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0ZbQtNC60LvRjtGH0LXQvdC90Y8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNob3duIGZhaWxlZDogJXMiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0ZbQtNC60LvRjtGH0LXQvdC90Y8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInV0aW1lIGZhaWxlZDogJXMiCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDQv9C10YDRltC+0LTRgyDQvtGH0ZbQutGD0LLQsNC90L3RjzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ5NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibWtkaXIgZmFpbGVkOiAlcyIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAgY2hkaXIoXCIvZGV2XCIpOiAlbSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTQKK21zZ2lkICJiYWQgZmlsZW5hbWUgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MjEKKyMsIGZ1enp5Cittc2dpZCAiYmFkIGlub2RlIG9mZnNldCIKK21zZ3N0ciAi0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INGA0L7Qt9C80ZbRgCDQstGD0LfQu9CwIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTM3Cittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU0MAorbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gc2l6ZSBhbmQgbm9uLXplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzEKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTc0Cittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1ODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInNpemUgZXJyb3IgaW4gc3ltbGluazogJXMiCittc2dzdHIgIiVzOiDQv9C+0LzQuNC70LrQvtCy0LjQuSDRgNC+0LfQvNGW0YAg0YMg0YHQuNC80LLQvtC70ZbRh9C90L7QvNGDINC/0L7RgdC40LvQsNC90L3RliBgJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN5bWxpbmsgZmFpbGVkOiAlcyIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LLQuNC60L7QvdCw0L3QvdGPIGZzeW5jIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWNpYWwgZmlsZSBoYXMgbm9uLXplcm8gb2Zmc2V0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjI1CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZm8gaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAic29ja2V0IGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJib2d1cyBtb2RlOiAlcyAoJW8pIgorbXNnc3RyICIlczog0YTRltC60YLQuNCy0L3RliDQv9GA0LDQstCwINC90LAgYCVzJyAoJW8pXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1rbm9kIGZhaWxlZDogJXMiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0ZbQtNC60LvRjtGH0LXQvdC90Y8iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Njg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisiJXM6INC90LXQv9GA0LDQstC40LvRjNC90LjQuSBjcmFtZnMgLSDQutGW0L3QtdGG0Ywg0LTQsNC90LjRhSDQutCw0YLQsNC70L7Qs9GDICglbGQpICE9INC/0L7Rh9Cw0YLQutGDINGE0LDQudC70L7QstC40YUgIgorItC00LDQvdC40YUgKCVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY5MAorIywgZnV6enkKK21zZ2lkICJpbnZhbGlkIGZpbGUgZGF0YSBvZmZzZXQiCittc2dzdHIgIiVzOiDQvdC10L/RgNCw0LLQuNC70YzQvdC40LkgY3JhbWZzIC0g0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC30YHRg9CyINGE0LDQudC70L7QstC40YUg0LTQsNC90LjRhVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NzE0CisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBhbGxvY2F0ZSBvdXRidWZmZXIiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTRltC70LjRgtC4INCx0YPRhNC10YAuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MjcKKyMsIGZ1enp5Cittc2dpZCAiY29tcGlsZWQgd2l0aG91dCAteCBzdXBwb3J0IgorbXNnc3RyICIlczog0LfRltCx0YDQsNC90L4g0LHQtdC3INC/0ZbQtNGC0YDQuNC80LrQuCAteFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgWy1sYXJ2c21mXSAvZGV2L9C90LDQt9Cy0LBcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQuXHQgIgorbXNnc3RyICIlcyDQv9GW0LTQutC70Y7Rh9C10L3Qvi5cdCAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyNQorbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byBjb250aW51ZSIKK21zZ3N0ciAi0JLQuCDQtNGW0LnRgdC90L4g0LHQsNC20LDRlNGC0LUg0L/RgNC+0LTQvtCy0LbQuNGC0LgiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICJjaGVjayBhYm9ydGVkLlxuIgorbXNnc3RyICLQv9C10YDQtdCy0ZbRgNC60YMg0L/QtdGA0LXRgNCy0LDQvdC+LlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNDggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAibnIg0LfQvtC90LggPCBGSVJTVFpPTkUg0YMg0YTQsNC50LvRliBgJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzUyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yID49IFpPTkVTIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIm5yINC30L7QvdC4ID49IFpPTkVTINGDINGE0LDQudC70ZYgYCVzJy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM1NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozODAKK21zZ2lkICJSZW1vdmUgYmxvY2siCittc2dzdHIgItCS0LjQtNCw0LvQuNGC0Lgg0LHQu9C+0LoiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0YfQuNGC0LDQvdC90Y86INC/0L7QvNC40LvQutCwINC/0YDQuCDQv9C+0LfQuNGG0ZbRjtCy0LDQvdC90ZYg0L3QsCDQsdC70L7QuiDRgyDRhNCw0LnQu9GWICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0YfQuNGC0LDQvdC90Y86INC90LXQv9GA0LDQstC40LvRjNC90LjQuSDQsdC70L7QuiDRgyDRhNCw0LnQu9GWICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisi0JLQvdGD0YLRgNGW0YjQvdGPINC/0L7QvNC40LvQutCwOiDRgdC/0YDQvtCx0LAg0LfQsNC/0LjRgdGDINGDINC/0L7RiNC60L7QtNC20LXQvdC40Lkg0LHQu9C+0LpcbiIKKyLQntC/0LXRgNCw0YbRltGPINC30LDQv9C40YHRgyDQv9GA0L7RltCz0L3QvtGA0L7QstCw0L3QsFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA3Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0YDQuCDQv9C+0LfQuNGG0ZbRjtCy0LDQvdC90ZYg0YMg0YTRg9C90LrRhtGW0Zcgd3JpdGVfYmxvY2siCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICLQn9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YM6INC/0L7RiNC60L7QtNC20LXQvdC40Lkg0LHQu9C+0Log0YMg0YTQsNC50LvRliAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQv9GA0Lgg0L/QvtC30LjRhtGW0Y7QstCw0L3QvdGWINGDINGE0YPQvdC60YbRltGXIHdyaXRlX3N1cGVyX2Jsb2NrIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NDYgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk0Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHN1cGVyLWJsb2NrIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YMg0YHRg9C/0LXRgNCx0LvQvtC60YMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1NgorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgItCd0LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cw0L/QuNGB0LDRgtC4INC80LDQv9GDINCy0YPQt9C70ZbQsiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU4Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICLQndC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQsNC/0LjRgdCw0YLQuCDQvNCw0L/RgyDQt9C+0L0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU2MAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgItCd0LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cw0L/QuNGB0LDRgtC4INCy0YPQt9C70LgiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU4NworbXNnaWQgInNlZWsgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQv9GA0Lgg0LLRgdGC0LDQvdC+0LLQu9C10L3QvdGWINC/0L7Qt9C40YbRltGXIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTEgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6Mzk5CisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBidWZmZXIgZm9yIHN1cGVyYmxvY2siCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTRltC70LjRgtC4INCx0YPRhNC10YDQuCDQtNC70Y8g0LzQsNC/IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0YDQvtGH0LjRgtCw0YLQuCDRgdGD0L/QtdGA0LHQu9C+0LoiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxMgorbXNnaWQgImJhZCBtYWdpYyBudW1iZXIgaW4gc3VwZXItYmxvY2siCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LAg0YHQuNCz0L3QsNGC0YPRgNCwINGB0YPQv9C10YDQsdC70L7QutCwIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTQKK21zZ2lkICJPbmx5IDFrIGJsb2Nrcy96b25lcyBzdXBwb3J0ZWQiCittc2dzdHIgItCf0ZbQtNGC0YDQuNC80YPRjtGC0YzRgdGPINC70LjRiNC1IDFrINCx0LvQvtC60Lgv0LfQvtC90YMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICLQvdC10L/RgNCw0LLQuNC70YzQvdC1IHNfaW1hcF9ibG9ja3Mg0L/QvtC70LUg0YMg0YHRg9C/0LXRgNCx0LvQvtGG0ZYiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxOAorbXNnaWQgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICLQvdC10L/RgNCw0LLQuNC70YzQvdC1IHNfem1hcF9ibG9ja3Mg0L/QvtC70LUg0YMg0YHRg9C/0LXRgNCx0LvQvtGG0ZYiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyNQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIG1hcCIKK21zZ3N0ciAi0J3QtSDQstC00LDRlNGC0YzRgdGPINCy0LjQtNGW0LvQuNGC0Lgg0LHRg9GE0LXRgCDQtNC70Y8g0LzQsNC/0Lgg0LLRg9C30LvRltCyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjgKKyMsIGZ1enp5Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBtYXAiCittc2dzdHIgItCd0LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTRltC70LjRgtC4INCx0YPRhNC10YAg0LTQu9GPINC80LDQv9C4INCy0YPQt9C70ZbQsiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICLQndC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC00ZbQu9C40YLQuCDQsdGD0YTQtdGAINC00LvRjyDQstGD0LfQu9GW0LIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICLQndC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC00ZbQu9C40YLQuCDQsdGD0YTQtdGAINC00LvRjyDQu9GW0YfQuNC70YzQvdC40LrQsCDQstGD0LfQu9GW0LIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgItCd0LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTRltC70LjRgtC4INCx0YPRhNC10YAg0LTQu9GPINC70ZbRh9C40LvRjNC90LjQutCwINC30L7QvSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICLQndC1INCy0LTQsNGU0YLRjNGB0Y8g0L/RgNC+0YfQuNGC0LDRgtC4INC80LDQv9GDINCy0YPQt9C70ZbQsiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQzCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgem9uZSBtYXAiCittc2dzdHIgItCd0LUg0LLQtNCw0ZTRgtGM0YHRjyDQv9GA0L7Rh9C40YLQsNGC0Lgg0LzQsNC/0YMg0LfQvtC9IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDUKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZXMiCittc2dzdHIgItCd0LUg0LLQtNCw0ZTRgtGM0YHRjyDQv9GA0L7Rh9C40YLQsNGC0Lgg0LLRg9C30LvQuCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkINCy0YPQt9C70ZbQslxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkINCx0LvQvtC60ZbQslxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgItCf0LXRgNGI0LAg0LfQvtC90LAg0LTQsNC90LjRhT0lbGQgKCVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lc2l6ZT0lZFxuIgorbXNnc3RyICLQoNC+0LfQvNGW0YAg0LfQvtC90Lg9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgItCc0LDQutGBLtGA0L7Qt9C80ZbRgD0lbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKK21zZ3N0ciAi0KHRgtCw0L0g0YTQsNC50LvQvtCy0L7RlyDRgdC40YHRgtC10LzQuD0lZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm5hbWVsZW49JWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorItC00L7QstC2LtC90LDQt9Cy0Lg9JWRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjczIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyNAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtYXJrZWQgdW51c2VkLCBidXQgdXNlZCBmb3IgZmlsZSAnJXMnXG4iCittc2dzdHIgItCS0YPQt9C+0LsgJWQg0L/QvtC30L3QsNGH0LXQvdC40Lkg0Y/QuiDQstGW0LvRjNC90LjQuSwg0LDQu9C1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPINGDICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcyOAorbXNnaWQgIk1hcmsgaW4gdXNlIgorbXNnc3RyICLQn9C+0LfQvdCw0YfQuNGC0Lgg0Y/QuiDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNC90LjQuSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Njk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc0OAorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZmlsZSBgJXMnIGhhcyBtb2RlICUwNW9cbiIKK21zZ3N0ciAi0KTQsNC50LsgYCVzJyDQvNCw0ZQg0L/RgNCw0LLQsCDQtNC+0YHRgtGD0L/RgyAlMDVvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcwNiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaW5vZGUgY291bnQgdG9vIGJpZy5cbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDQt9C90LDRh9C10L3QvdGPINC70ZbRh9C40LvRjNC90LjQutCwINCy0YPQt9C70ZbQsiDQvdCw0LTRgtC+INCy0LXQu9C40LrQtS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzY2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjc3NAorbXNnaWQgInJvb3QgaW5vZGUgaXNuJ3QgYSBkaXJlY3RvcnkiCittc2dzdHIgItC60L7RgNC10L3QtdCy0LjQuSDQstGD0LfQvtC7INC90LUg0ZQg0LrQsNGC0LDQu9C+0LPQvtC8IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3ODggZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAi0JHQu9C+0Log0LLQttC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPINGA0LDQvdGW0YjQtS4g0KLQtdC/0LXRgCDRgyDRhNCw0LnQu9GWIGAlcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3OTAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIzCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTUKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxMAorbXNnaWQgIkNsZWFyIgorbXNnc3RyICLQntGH0LjRgdGC0LjRgtC4IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iCittc2dzdHIgItCR0LvQvtC6ICVkINC3INGE0LDQudC70YMgYCVzJyDQv9C+0LfQvdCw0YfQtdC90LjQuSDQstGW0LvRjNC90LjQvC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzUKK21zZ2lkICJDb3JyZWN0IgorbXNnc3RyICLQktC40L/RgNCw0LLQuNGC0LgiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAi0JrQsNGC0LDQu9C+0LMgJyVzJyDQvNGW0YHRgtC40YLRjCDQvdC10L/RgNCw0LLQuNC70YzQvdGDINC60ZbQu9GM0LrRltGB0YLRjCDQstGD0LfQu9GW0LIg0LTQu9GPINGE0LDQudC70YMgJyUuKnMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDQKK21zZ2lkICIgUmVtb3ZlIgorbXNnc3RyICIg0JLQuNC00LDQu9C40YLQuCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTkxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorbXNnc3RyICIlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC60LDRgtCw0LvQvtCzOiDQtdC70LXQvNC10L3RgiAnLicg0L3QtSDQv9C10YDRiNC40LlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTk5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCittc2dzdHIgIiVzOiDQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0LrQsNGC0LDQu9C+0LM6INC10LvQtdC80LXQvdGCICcuLicg0L3QtSDQtNGA0YPQs9C40LlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwMSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTE5Cittc2dpZCAiaW50ZXJuYWwgZXJyb3IiCittc2dzdHIgItCy0L3Rg9GC0YDRltGI0L3RjyDQv9C+0LzQuNC70LrQsCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwNCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiBzaXplIDwgMzIiCittc2dzdHIgIiVzOiDQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0LrQsNGC0LDQu9C+0LM6INGA0L7Qt9C80ZbRgCA8IDMyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTM1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gYmFkX3pvbmUiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0YDQuCDQv9C+0LfQuNGG0ZbRjtCy0LDQvdC90ZYg0YMg0YTRg9C90LrRhtGW0ZcgYmFkX3pvbmUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDUgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtb2RlIG5vdCBjbGVhcmVkLiIKK21zZ3N0ciAi0J/RgNCw0LLQsCDQtNC+0YHRgtGD0L/RgyDQstGD0LfQu9CwICVkINC90LUg0L7Rh9C40YnQtdC90ZYuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbm90IHVzZWQsIG1hcmtlZCB1c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICIiCisi0JLRg9C30L7QuyAlZCDQvdC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPLCDQsNC70LUg0L/QvtC30L3QsNGH0LXQvdC40Lkg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDQvdC40Lwg0YMg0LHRltGC0L7QstGW0Lkg0LzQsNC/0ZYuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAi0JLRg9C30L7QuyAlZCDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjywg0LDQu9C1INC/0L7Qt9C90LDRh9C10L3QuNC5INCy0ZbQu9GM0L3QuNC8INGDINCx0ZbRgtC+0LLRltC5INC80LDQv9GWLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICLQktGB0YLQsNC90L7QstC40YLQuCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIChtb2RlID0gJTA3byksIGlfbmxpbmtzPSVkLCBjb3VudGVkPSVkLiIKK21zZ3N0ciAi0JLRg9C30L7QuyAlZCAo0L/RgNCw0LLQsCA9ICUwN28pLCBpX25saW5rcz0lZCwg0LvRltGH0LjQu9GM0L3QuNC6PSVkLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIyCittc2dpZCAiU2V0IGlfbmxpbmtzIHRvIGNvdW50IgorbXNnc3RyICLQktGB0YLQsNC90L7QstC40YLQuCBpX25saW5rcyDRgyDQt9C90LDRh9C10L3QvdGPINC70ZbRh9C40LvRjNC90LjQutCwIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTgwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbWFya2VkIGluIHVzZSwgbm8gZmlsZSB1c2VzIGl0LiIKK21zZ3N0ciAiIgorItCX0L7QvdCwICVkOiDQv9C+0LfQvdCw0YfQtdC90LAg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDQvdC+0Y4sINCw0LvQtSDQstC+0L3QsCDQvdC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPINGE0LDQudC70LDQvNC4LiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM2Cittc2dpZCAiVW5tYXJrIgorbXNnc3RyICLQl9C90Y/RgtC4INC/0L7Qt9C90LDRh9C10L3QvdGPIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgItCX0L7QvdCwICVkOiDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjywg0LvRltGH0LjQu9GM0L3QuNC6PSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBub3QgaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgItCX0L7QvdCwICVkOiDQvdC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPLCDQu9GW0YfQuNC70YzQvdC40Lo9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4OSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzcKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3OQorbXNnaWQgImJhZCBpbm9kZSBzaXplIgorbXNnc3RyICLQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YDQvtC30LzRltGAINCy0YPQt9C70LAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyOTEKK21zZ2lkICJiYWQgdjIgaW5vZGUgc2l6ZSIKK21zZ3N0ciAi0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC90L7QvNC10YAg0LLRg9C30LvQsCDQstC10YDRgdGW0ZcgMiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMxNworbXNnaWQgIm5lZWQgdGVybWluYWwgZm9yIGludGVyYWN0aXZlIHJlcGFpcnMiCittc2dzdHIgItC00LvRjyDRltC90YLQtdGA0LDQutGC0LjQstC90L7Qs9C+INCy0ZbQtNC90L7QstC70LXQvdC90Y8g0L3QtdC+0LHRhdGW0LTQvdC40Lkg0YLQtdGA0LzRltC90LDQuyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMyMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJyVzJzogJXMiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4ICclcyciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgY2xlYW4sIG5vIGNoZWNrLlxuIgorbXNnc3RyICIlcyAtINGH0LjRgdGC0LjQuSwg0L/QtdGA0LXQstGW0YDQutCwINC90LUg0LLQuNC60L7QvdGD0LLQsNGC0LjQvNC10YLRjNGB0Y8uXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9yY2luZyBmaWxlc3lzdGVtIGNoZWNrIG9uICVzLlxuIgorbXNnc3RyICLQn9GA0LjQvNGD0YHQvtCy0LAg0L/QtdGA0LXQstGW0YDQutCwINGE0LDQudC70L7QstC+0Zcg0YHQuNGB0YLQtdC80Lgg0L3QsCAlcy5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIG9uICVzIGlzIGRpcnR5LCBuZWVkcyBjaGVja2luZy5cbiIKK21zZ3N0ciAi0KTQsNC50LvQvtCy0LAg0YHQuNGB0YLQtdC80LAg0L3QsCAlcyDQv9C+0YjQutC+0LTQttC10L3QsCwg0L/QvtGC0YDRltCx0L3QsCDQv9C10YDQtdCy0ZbRgNC60LAuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2bGQgaW5vZGVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIiCisiXG4iCisiJTZsZCDQstC40LrQvtGA0LjRgdGC0LDQvdC40YUg0LLRg9C30LvRltCyICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkINCy0LjQutC+0YDQuNGB0YLQsNC90LjRhSDQt9C+0L0gKCVsZCUlKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmQgcmVndWxhciBmaWxlc1xuIgorIiU2ZCBkaXJlY3Rvcmllc1xuIgorIiU2ZCBjaGFyYWN0ZXIgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGJsb2NrIGRldmljZSBmaWxlc1xuIgorIiU2ZCBsaW5rc1xuIgorIiU2ZCBzeW1ib2xpYyBsaW5rc1xuIgorIi0tLS0tLVxuIgorIiU2ZCBmaWxlc1xuIgorbXNnc3RyICIiCisiXG4iCisiJTZkINC30LLQuNGH0LDQudC90LjRhSDRhNCw0LnQu9GW0LJcbiIKKyIlNmQg0LrQsNGC0LDQu9C+0LPRltCyXG4iCisiJTZkINGE0LDQudC70ZbQsiDRgdC40LzQstC+0LvRjNC90LjRhSDQv9GA0LjRgdGC0YDQvtGX0LJcbiIKKyIlNmQg0YTQsNC50LvRltCyINCx0LvQvtGH0L3QuNGFINC/0YDQuNGB0YLRgNC+0ZfQslxuIgorIiU2ZCDQv9C+0YHQuNC70LDQvdGMXG4iCisiJTZkINGB0LjQvNCy0L7Qu9GM0L3QuNGFINC/0L7RgdC40LvQsNC90YxcbiIKKyItLS0tLS1cbiIKKyIlNmQg0YTQsNC50LvRltCyXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorItCk0JDQmdCb0J7QktCQINCh0JjQodCi0JXQnNCQINCX0JDQl9Cd0JDQm9CQINCX0JzQhtCdXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBvcGVuOiAlc1xuIgorbXNnc3RyICIlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0Lg6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIlczog0L/QvtC80LjQu9C60LAg0L/QvtC30LjRhtGW0Y7QstCw0L3QvdGPINC90LAgJXNcbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiDQv9C+0LzQuNC70LrQsCDQv9C+0LfQuNGG0ZbRjtCy0LDQvdC90Y8g0L3QsCAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9yIGNvdW50OiAlZCwgc2VjdG9yIHNpemU6ICVkXG4iCittc2dzdHIgItC60ZbQu9GM0LrRltGB0YLRjCDRgdC10LrRgtC+0YDRltCyOiAlZCwg0YDQvtC30LzRltGAINGB0LXQutGC0L7RgNCwOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiBwYXJzZSBlcnJvclxuIgorbXNnc3RyICIlczog0L/QvtC80LjQu9C60LAg0L/RgNC4INCw0L3QsNC70ZbQt9GWINC/0LDRgNCw0LzQtdGC0YDQsCDQutC+0LzQsNC90LTQvdC+0LPQviDRgNGP0LTQutCwXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKK21zZ3N0ciAi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBbLXhdIFstZCA80LrRltC70YzQutGW0YHRgtGMPl0gaXNvOTY2MC3QvtCx0YDQsNC3XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBbLXZdIFstTiBuci1vZi1pbm9kZXNdIFstViDQvdCw0LfQstCwLdGC0L7QvNGDXVxuIgorIiAgICAgICBbLUYg0L3QsNC30LLQsC7RhNCw0LnQuy7RgdC40YHRgl0g0L/RgNC40YHRgtGA0ZbQuSBb0LrRltC70YzQutGW0YHRgtGMLdCx0LvQvtC60ZbQsl1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzMAorbXNnaWQgInZvbHVtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICLQvdCw0LfQstCwINGC0L7QvNGDINC30LDQvdCw0LTRgtC+INC00L7QstCz0LAiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzcKK21zZ2lkICJmc25hbWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAi0L3QsNC30LLQsCDRhNCw0LnQu9C+0LLQvtGXINGB0LjRgdGC0LXQvNC4INC90LDQtNGC0L4g0LTQvtCy0LPQsCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBkZXZpY2UgJXMiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGW0L3RhNC+0YDQvNCw0YbRltGOINC/0YDQviAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBibG9jayBzcGVjaWFsIGRldmljZSIKK21zZ3N0ciAiJXMg0L3QtSDRlCDRgdC/0LXRhtGW0LDQu9GM0L3QuNC8INGE0LDQudC70L7QvCDQsdC70L7Rh9C90L7Qs9C+INC/0YDQuNGB0YLRgNC+0Y4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNzEgc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGA0L7Qt9C80ZbRgCAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiYmxvY2tzIGFyZ3VtZW50IHRvbyBsYXJnZSwgbWF4IGlzICVsbHUiCittc2dzdHIgItC/0LDRgNCw0LzQtdGC0YAg0LrRltC70YzQutC+0YHRgtGWINCx0LvQvtC60ZbQsiDQvdCw0LTRgtC+INCy0LXQu9C40LrQuNC5LCDQvNCw0LrRgdC40LzRg9C8ICVsdSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIwMgorbXNnaWQgInRvbyBtYW55IGlub2RlcyAtIG1heCBpcyA1MTIiCittc2dzdHIgItC90LDQtNGC0L4g0LHQsNCz0LDRgtC+INCy0YPQt9C70ZbQsiAtINC80LDQutGB0LjQvNGD0LwgNTEyIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlLCBuZWVkIGF0IGxlYXN0ICVsbHUgYmxvY2tzIgorbXNnc3RyICLQvdC1INCy0LjRgdGC0LDRh9Cw0ZQg0L/RgNC+0YHRgtC+0YDRgywg0L/QvtGC0YDRltCx0L3QviDQv9GA0LjQvdCw0LnQvNC90ZYgJWx1INCx0LvQvtC60ZbQsiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICLQn9GA0LjRgdGC0YDRltC5OiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlZvbHVtZTogPCUtNnM+XG4iCittc2dzdHIgItCi0L7QvDogPCUtNnM+XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRlNuYW1lOiA8JS02cz5cbiIKK21zZ3N0ciAi0J3QsNC30LLQsCDRhC7RgS46IDwlLTZzPlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrU2l6ZTogJWRcbiIKK21zZ3N0ciAi0KDQvtC30LzRltGAINCx0LvQvtC60YM6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gMSBibG9jaylcbiIKK21zZ3N0ciAi0JLRg9C30LvRltCyOiAlZCAo0YMgMSDQsdC70L7RhtGWKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAlbGxkIGJsb2NrcylcbiIKK21zZ3N0ciAi0JLRg9C30LvRltCyOiAlZCAo0YMgJWxkINCx0LvQvtC60LDRhSlcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tzOiAlbGxkXG4iCittc2dzdHIgItCR0LvQvtC60ZbQsjogJWxkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgZW5kOiAlZCwgRGF0YSBlbmQ6ICVkXG4iCittc2dzdHIgItCa0ZbQvdC10YbRjCDQstGD0LfQu9GW0LI6ICVkLCDQmtGW0L3QtdGG0Ywg0LTQsNC90LjRhTogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzOQorbXNnaWQgImVycm9yIHdyaXRpbmcgc3VwZXJibG9jayIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfQsNC/0LjRgdGDINGB0YPQv9C10YDQsdC70L7QutGDIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjU5Cittc2dpZCAiZXJyb3Igd3JpdGluZyByb290IGlub2RlIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YMg0LrQvtGA0LXQvdC10LLQvtCz0L4g0LLRg9C30LvQsCIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI2NAorbXNnaWQgImVycm9yIHdyaXRpbmcgaW5vZGUiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30LDQv9C40YHRgyDQstGD0LfQu9CwIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0L/QvtC30LjRhtGW0Y7QstCw0L3QvdGPIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjczCittc2dpZCAiZXJyb3Igd3JpdGluZyAuIGVudHJ5IgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YMg0LXQu9C10LzQtdC90YLQsCAnLiciCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzcKK21zZ2lkICJlcnJvciB3cml0aW5nIC4uIGVudHJ5IgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YMg0LXQu9C10LzQtdC90YLQsCAnLi4nIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNsb3NpbmcgJXMiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30LDQutGA0LjQstCw0L3QvdGPICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogbWtmcyBbLVZdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBkZXZpY2UgW3NpemVdXG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogbWtmcyBbLVZdIFstdCDRgtC40L/QpNChXSBb0L/QsNGA0LDQvNC10YLRgNC4LdCk0KFdINC/0YDQuNGB0YLRgNGW0LkgW9GA0L7Qt9C80ZbRgF1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6ODggZGlzay11dGlscy9ta2ZzLmM6OTYgZmRpc2svY2ZkaXNrLmM6MzUzCisjOiBnZXRvcHQvZ2V0b3B0LmM6ODYgZ2V0b3B0L2dldG9wdC5jOjk2IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE91dCBvZiBtZW1vcnkhXG4iCittc2dzdHIgIiVzOiDQndC10LTQvtGB0YLQsNGC0L3RjNC+INC/0LDQvCfRj9GC0ZYhXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICJta2ZzICglcylcbiIKK21zZ3N0ciAibWtmcyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzoxMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1oXSBbLXZdIFstYiBibGtzaXplXSBbLWUgZWRpdGlvbl0gWy1OIGVuZGlhbl0gWy1pIGZpbGVdIFstbiAiCisibmFtZV0gZGlybmFtZSBvdXRmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC12ICAgICAgICAgYmUgdmVyYm9zZVxuIgorIiAtRSAgICAgICAgIG1ha2UgYWxsIHdhcm5pbmdzIGVycm9ycyAobm9uLXplcm8gZXhpdCBzdGF0dXMpXG4iCisiIC1iIGJsa3NpemUgdXNlIHRoaXMgYmxvY2tzaXplLCBtdXN0IGVxdWFsIHBhZ2Ugc2l6ZVxuIgorIiAtZSBlZGl0aW9uIHNldCBlZGl0aW9uIG51bWJlciAocGFydCBvZiBmc2lkKVxuIgorIiAtTiBlbmRpYW4gIHNldCBjcmFtZnMgZW5kaWFubmVzcyAoYmlnfGxpdHRsZXxob3N0KSwgZGVmYXVsdCBob3N0XG4iCisiIC1pIGZpbGUgICAgaW5zZXJ0IGEgZmlsZSBpbWFnZSBpbnRvIHRoZSBmaWxlc3lzdGVtIChyZXF1aXJlcyA+PSAyLjQuMClcbiIKKyIgLW4gbmFtZSAgICBzZXQgbmFtZSBvZiBjcmFtZnMgZmlsZXN5c3RlbVxuIgorIiAtcCAgICAgICAgIHBhZCBieSAlZCBieXRlcyBmb3IgYm9vdCBjb2RlXG4iCisiIC1zICAgICAgICAgc29ydCBkaXJlY3RvcnkgZW50cmllcyAob2xkIG9wdGlvbiwgaWdub3JlZClcbiIKKyIgLXogICAgICAgICBtYWtlIGV4cGxpY2l0IGhvbGVzIChyZXF1aXJlcyA+PSAyLjMuMzkpXG4iCisiIGRpcm5hbWUgICAgcm9vdCBvZiB0aGUgZmlsZXN5c3RlbSB0byBiZSBjb21wcmVzc2VkXG4iCisiIG91dGZpbGUgICAgb3V0cHV0IGZpbGVcbiIKK21zZ3N0ciAiIgorItCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgWy1oXSBbLXZdIFstYiDRgNC+0LfQvF/QsdC7XSBbLWUg0LLQuNC00LDQvdC90Y9dIFstaSDRhNCw0LnQu10gWy1uINC90LDQt9Cy0LBdICIKKyLQvdCw0LfQsl/QutCw0YIg0YTQsNC50Ltf0LLQuNCyXG4iCisiIC1oICAgICAgICAg0LLQuNCy0LXRgdGC0Lgg0YbRjiDQtNC+0LLRltC00LrRg1xuIgorIiAtdiAgICAgICAgINC00L7QutC70LDQtNC90ZbRiNC40Lkg0LLQuNCy0ZbQtFxuIgorIiAtRSAgICAgICAgINCy0LLQsNC20LDRgtC4INCy0YHRliDQv9C+0L/QtdGA0LXQtNC20LXQvdC90Y8g0L/QvtC80LjQu9C60LDQvNC4ICjQvdC10L3Rg9C70YzQvtCy0LjQuSDQutC+0LQg0LfQsNCy0LXRgNGI0LXQvdC90Y8pXG4iCisiIC1iINGA0L7Qt9C8X9Cx0Lsg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INGG0LXQuSDRgNC+0LfQvNGW0YAg0LHQu9C+0LrRgywg0L/QvtCy0LjQvdC10L0g0LTQvtGA0ZbQstC90Y7QstCw0YLQuCDRgNC+0LfQvNGW0YDRgyAiCisi0YHRgtC+0YDRltC90LrQuFxuIgorIiAtZSDQstC40LTQsNC90L3RjyDQstGB0YLQsNC90L7QstC40YLQuCDQvdC+0LzQtdGAINCy0LjQtNCw0L3QvdGPICjRh9Cw0YHRgtC40L3QsCDQstGW0LQgZnNpZClcbiIKKyIgLWkg0YTQsNC50LsgICAg0LLRgdGC0LDQstC40YLQuCDRhNCw0LnQuyDQvtCx0YDQsNC30YMg0YMg0YTQsNC50LvQvtCy0YMg0YHQuNGB0YLQtdC80YMgKNCy0LjQvNCw0LPQsNGUID49IDIuNC4wKVxuIgorIiAtbiDQvdCw0LfQstCwICAg0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0L3QsNC30LLRgyDRhNCw0LnQu9C+0LLQvtGXINGB0LjRgdGC0LXQvNC4IGNyYW1mc1xuIgorIiAtcCAgICAgICAgINC30LDRgNC10LfQtdGA0LLRg9Cy0LDRgtC4ICVkINCx0LDQudGCINC00LvRjyDQutC+0LTRgyDQt9Cw0LLQsNC90YLQsNC20YPQstCw0YfQsFxuIgorIiAtcyAgICAgICAgINGB0L7RgNGC0YPQstCw0YLQuCDQtdC70LXQvNC10L3RgtC4INC60LDRgtCw0LvQvtCz0YMgKNC30LDRgdGC0LDRgNGW0LvQuNC5INC/0LDRgNCw0LzQtdGC0YAsINGW0LPQvdC+0YDRg9GU0YLRjNGB0Y8pXG4iCisiIC16ICAgICAgICAg0YHRgtCy0L7RgNGO0LLQsNGC0Lgg0Y/QstC90ZYg0LTRltGA0LrQuCAo0LLQuNC80LDQs9Cw0ZQgPj0gMi4zLjM5KVxuIgorIiDQvdCw0LfQsl/QutCw0YIgICDQutC+0YDQtdC90LXQstC40Lkg0LrQsNGC0LDQu9C+0LMg0LzQsNC50LHRg9GC0L3RjNC+0Zcg0YHRgtC40YHQvdGD0YLQvtGXINGE0LDQudC70L7QstC+0Zcg0YHQuNGB0YLQtdC80LhcbiIKKyIg0YTQsNC50Ltf0LLQuNCyICAg0YTQsNC50Lsg0LLQuNCy0L7QtNGDXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJWZXJ5IGxvbmcgKCV6dSBieXRlcykgZmlsZW5hbWUgYCVzJyBmb3VuZC5cbiIKKyIgUGxlYXNlIGluY3JlYXNlIE1BWF9JTlBVVF9OQU1FTEVOIGluIG1rY3JhbWZzLmMgYW5kIHJlY29tcGlsZS4gIEV4aXRpbmcuXG4iCittc2dzdHIgIiIKKyLQl9C90LDQudC00LXQvdC+INC90LDQtNGC0L4g0LTQvtCy0LPRliAoJXUg0LHQsNC50YIpINC90LDQt9Cy0Lgg0YTQsNC50LvRltCyIGAlcycuXG4iCisiINCX0LHRltC70YzRiNGC0LUg0LfQvdCw0YfQtdC90L3RjyBNQVhfSU5QVVRfTkFNRUxFTiDRgyDRhNCw0LnQu9GWIG1rY3JhbWZzLmMg0YLQsCDQv9C10YDQtdC60L7QvNC/0ZbQu9GO0LnRgtC1LlxuIgorItCX0LDQstC10YDRiNC10L3QvdGPLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImZpbGVzeXN0ZW0gdG9vIGJpZy4gIEV4aXRpbmcuXG4iCittc2dzdHIgItGE0LDQudC70L7QstCwINGB0LjRgdGC0LXQvNCwINC90LDQtNGC0L4g0LLQtdC70LjQutCwLiDQl9Cw0LLQtdGA0YjQtdC90L3Rjy5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIkFJRUVFOiDQsdC70L7QuiBcItGB0YLQuNGB0L3QtdC90LjQuVwiID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiJTYuMmYlJSAoJStkINCx0LDQudGC0ZbQsilcdCVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4NTMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBndWVzdGltYXRlIG9mIHJlcXVpcmVkIHNpemUgKHVwcGVyIGJvdW5kKSBpcyAlbGxkTUIsIGJ1dCBtYXhpbXVtICIKKyJpbWFnZSBzaXplIGlzICV1TUIuICBXZSBtaWdodCBkaWUgcHJlbWF0dXJlbHkuXG4iCittc2dzdHIgIiIKKyLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC+0YfRltC60YPQstCw0L3QuNC5INC90LXQvtCx0YXRltC00L3QuNC5INGA0L7Qt9C80ZbRgCAo0LLQtdGA0YXQvdGPINC80LXQttCwKSDRgdC60LvQsNC00LDRlCAlTGTQnNCxLCDQsNC70LUgIgorItC80LDQutGB0LjQvNCw0LvRjNC90LjQuSDRgNC+0LfQvNGW0YAg0L7QsdGA0LDQt9GDICV10JzQsS4gINCc0L7QttC70LjQstC1INC/0LXRgNC10LTRh9Cw0YHQvdC1INCw0LLQsNGA0ZbQudC90LUg0LfQsNCy0LXRgNGI0LXQvdC90Y8uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4ODAKK21zZ2lkICJST00gaW1hZ2UgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5jbHVkaW5nOiAlc1xuIgorbXNnc3RyICLQktC60LvRjtGH0LDRlNGC0YzRgdGPOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEaXJlY3RvcnkgZGF0YTogJXpkIGJ5dGVzXG4iCittc2dzdHIgItCU0LDQvdGWINC60LDRgtCw0LvQvtCz0YM6ICVkINCx0LDQudGCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkV2ZXJ5dGhpbmc6ICV6ZCBraWxvYnl0ZXNcbiIKK21zZ3N0ciAi0JfQsNCz0LDQu9C+0Lw6ICVkINC60ZbQu9C+0LHQsNC50YJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICLQodGD0L/QtdGA0LHQu9C+0Lo6ICVkINCx0LDQudGCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICLQmtC+0L3RgtGA0L7Qu9GM0L3QsCDRgdGD0LzQsDogJXhcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyNQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICLQvdC1INCy0LjRgdGC0LDRh9Cw0ZQg0L/RgNC+0YHRgtC+0YDRgyDQtNC70Y8gUk9NINC+0LHRgNCw0LfRgyAo0LLQuNC00ZbQu9C10L3QviAlTGQsINCy0LjQutC+0YDQuNGB0YLQsNC90L4gJWQpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfQsNC/0LjRgdGDIFJPTSDQvtCx0YDRltC30YMgKCVkICVkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC90LDQt9Cy0LAg0YTQsNC50LvRgyDQvtCx0YDRltC30LDQvdCwINC00L4gMjU1INCx0LDQudGC0ZbQsi5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlcyB3ZXJlIHNraXBwZWQgZHVlIHRvIGVycm9ycy5cbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDRhNCw0LnQuyDQv9GA0L7Qv9GD0YnQtdC90LjQuSDQstC90LDRgdC70ZbQtNC+0Log0L/QvtC80LjQu9C+0LouXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0YDQvtC30LzRltGA0Lgg0YTQsNC50LvRltCyINC+0LHRgNGW0LfQsNC90ZYg0LTQviAlbHXQnNCxICjQvNGW0L3Rg9GBIDEg0LHQsNC50YIpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiB1aWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3RjzogdWlkINC+0LHRgNGW0LfQsNC90ZYg0LTQviAldSDQsdGW0YIuICjQptC1INC80L7QttC1INC30LDQs9GA0L7QttGD0LLQsNGC0Lgg0LHQtdC30L/QtdGG0ZYuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBnaWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3RjzogZ2lkINC+0LHRgNGW0LfQsNC90ZYg0LTQviAldSDQsdGW0YIuICjQptC1INC80L7QttC1INC30LDQs9GA0L7QttGD0LLQsNGC0Lgg0LHQtdC30L/QtdGG0ZYuKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorItCj0JLQkNCT0JA6INC90L7QvNC10YDQuCDQv9GA0LjRgdGC0YDQvtGX0LIg0L7QsdGA0ZbQt9Cw0L3RliDQtNC+ICV1INCx0ZbRgi4g0KbQtSDQvNCw0LnQttC1INC30LDQstC20LTQuCDQvtC30L3QsNGH0LDRlFxuIgorItGJ0L4g0LTQtdGP0LrRliDRhNCw0LnQu9C4INC/0YDQuNGB0YLRgNC+0ZfQsiDQsdGD0LTRg9GC0Ywg0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC80LguXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKyLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86ICVzIFstYyB8IC1sINC90LDQt9Cy0LBf0YTQsNC50LvRg10gWy1uWFhdIFstaVhYXSAvZGV2L9C90LDQt9Cy0LAgW9Cx0LvQvtC60LhdXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiJXMg0L/RltC00LrQu9GO0YfQtdC90LjQuTsg0YLRg9GCINC90LUg0LzQvtC20L3QsCDRgdGC0LLQvtGA0Y7QstCw0YLQuCDRhNCw0LnQu9C+0LLRgyDRgdC40YHRgtC10LzRgyEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQv9C+0LfQuNGG0ZbRjtCy0LDQvdC90Y8g0L3QsCDQt9Cw0LLQsNC90YLQsNC20YPQstCw0LvRjNC90LjQuSDQsdC70L7QuiDRgyDRhNGD0L3QutGG0ZbRlyB3cml0ZV90YWJsZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MAorbXNnaWQgInVuYWJsZSB0byBjbGVhciBib290IHNlY3RvciIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YfQuNGB0YLQuNGC0Lgg0LfQsNCy0LDQvdGC0LDQttGD0LLQsNC70YzQvdC40Lkg0YHQtdC60YLQvtGAIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTIKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0L7Qt9C40YbRltGO0LLQsNC90L3RjyDRgyDRhNGD0L3QutGG0ZbRlyB3cml0ZV90YWJsZXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cw0L/QuNGB0LDRgtC4INC80LDQv9GDINCy0YPQt9C70ZbQsiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk4Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQsNC/0LjRgdCw0YLQuCDQvNCw0L/RgyDQt9C+0L0iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwMAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cw0L/QuNGB0LDRgtC4INCy0YPQt9C70LgiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwOQorbXNnaWQgIndyaXRlIGZhaWxlZCBpbiB3cml0ZV9ibG9jayIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfQsNC/0LjRgdGDINGDINGE0YPQvdC60YbRltGXIHdyaXRlX2Jsb2NrIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMTcgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjkxCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzozNDAKK21zZ2lkICJ0b28gbWFueSBiYWQgYmxvY2tzIgorbXNnc3RyICLQvdCw0LTRgtC+INCx0LDQs9Cw0YLQviDQv9C+0YjQutC+0LTQttC10L3QuNGFINCx0LvQvtC60ZbQsiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjI1Cittc2dpZCAibm90IGVub3VnaCBnb29kIGJsb2NrcyIKK21zZ3N0ciAi0L3QtdC00L7RgdGC0LDRgtC90YzQviDQvdC10L/QvtGI0LrQvtC00LbQtdC90LjRhSDQsdC70L7QutGW0LIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0MAorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzIGZvciBtYXBzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC00ZbQu9C40YLQuCDQsdGD0YTQtdGA0Lgg0LTQu9GPINC80LDQvyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQ5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC00ZbQu9C40YLQuCDQsdGD0YTQtdGAINC00LvRjyDQstGD0LfQu9GW0LIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTWF4c2l6ZT0lbGRcbiIKKyJcbiIKK21zZ3N0ciAiIgorItCc0LDQutGBLtGA0L7Qt9C80ZbRgD0lbGRcbiIKKyJcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDY5Cittc2dpZCAic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQv9C+0LfQuNGG0ZbRjtCy0LDQvdC90Y8g0L/RgNC4INC/0LXRgNC10LLRltGA0YbRliDQsdC70L7QutGW0LIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJXZWlyZCB2YWx1ZXMgaW4gZG9fY2hlY2s6IHByb2JhYmx5IGJ1Z3NcbiIKK21zZ3N0ciAi0J3QtdC30YDQvtC30YPQvNGW0LvQtSDQt9C90LDRh9C10L3QvdGPINGDINGE0YPQvdC60YbRltGXIGRvX2NoZWNrOiDQvNC+0LbQu9C40LLQviDQv9C+0LzQuNC70LrQsFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MDggZGlzay11dGlscy9ta3N3YXAuYzozMTUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBjaGVja19ibG9ja3MiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0L7Qt9C40YbRltGO0LLQsNC90L3RjyDRgyDRhNGD0L3QutGG0ZbRlyBjaGVja19ibG9ja3MiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUxNworbXNnaWQgImJhZCBibG9ja3MgYmVmb3JlIGRhdGEtYXJlYTogY2Fubm90IG1ha2UgZnMiCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90ZYg0LHQu9C+0LrQuCDQv9C10YDQtdC0INC+0LHQu9Cw0YHRgtGOINC00LDQvdC40YU6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDRgdGC0LLQvtGA0LjRgtC4INCk0KEiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyMyBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgYmFkIGJsb2Nrc1xuIgorbXNnc3RyICIlZCDQv9C+0YjQutC+0LTQttC10L3QuNGFINCx0LvQvtC60ZbQslxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAi0L7QtNC40L0g0L/QvtGI0LrQvtC00LbQtdC90LjQuSDQsdC70L7QulxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzUKK21zZ2lkICJjYW4ndCBvcGVuIGZpbGUgb2YgYmFkIGJsb2NrcyIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0Lgg0YTQsNC50Lsg0L/QvtGI0LrQvtC00LbQtdC90LjRhSDQsdC70L7QutGW0LIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWRibG9jayBudW1iZXIgaW5wdXQgZXJyb3Igb24gbGluZSAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0MAorIywgZnV6enkKK21zZ2lkICJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0YDQvtGH0LjRgtCw0YLQuCDQtNC40YHQutC+0LLQuNC5INC/0YDQuNGB0YLRgNGW0LkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJ0b2wgZXJyb3I6IG51bWJlciBvZiBibG9ja3Mgbm90IHNwZWNpZmllZCIKK21zZ3N0ciAic3RydG9sINC/0L7QvNC40LvQutCwOiDQvdC1INCy0LrQsNC30LDQvdC+INC60ZbQu9GM0LrRltGB0YLRjCDQsdC70L7QutGW0LIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC30LDQv9GD0YHRgtC40YLQuCAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0YDQvtC30LzRltGAICVzIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmxvY2sgc2l6ZSBzbWFsbGVyIHRoYW4gcGh5c2ljYWwgc2VjdG9yIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjU1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGA0L7Qt9C80ZbRgCAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIndpbGwgbm90IHRyeSB0byBtYWtlIGZpbGVzeXN0ZW0gb24gJyVzJyIKK21zZ3N0ciAi0YTQsNC50LvQvtCy0LAg0YHQuNGB0YLQtdC80LAg0L3QtSDQsdGD0LTQtSDRgdGC0LLQvtGA0LXQvdCwINC90LAgJyVzJyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjY1CisjLCBmdXp6eQorbXNnaWQgIm51bWJlciBvZiBibG9ja3MgdG9vIHNtYWxsIgorbXNnc3RyICLQmtGW0LvRjNC60ZbRgdGC0Ywg0YHQtdC60YLQvtGA0ZbQsiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70YzQvdC40Lkg0LLQutCw0LfQsNC90LjQuSDQutC+0YDQuNGB0YLRg9Cy0LDRh9C10Lwg0YDQvtC30LzRltGAINGB0YLQvtGA0ZbQvdC60LggJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZCwgaW5zdGVhZCBvZiB0aGUgc3lzdGVtIHZhbHVlICVkXG4iCittc2dzdHIgIiIKKyLQktC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyDQstC60LDQt9Cw0L3QuNC5INC60L7RgNC40YHRgtGD0LLQsNGH0LXQvCDRgNC+0LfQvNGW0YAg0YHRgtC+0YDRltC90LrQuCAlZCwg0LfQsNC80ZbRgdGC0Ywg0YHQuNGB0YLQtdC80L3QuNGFICIKKyLQt9C90LDRh9C10L3RjCAlZC8lZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiIgorItCd0LXQv9GA0LDQstC40LvRjNC90LjQuSDRgNC+0LfQvNGW0YAg0LfQsNCz0L7Qu9C+0LLQutGDINGA0L7Qt9C00ZbQu9GDINC/0ZbQtNC60LDRh9C60LgsINC10YLQuNC60LXRgtC60YMg0L3QtSDQt9Cw0L/QuNGB0LDQvdC+LlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICJMYWJlbCB3YXMgdHJ1bmNhdGVkLlxuIgorbXNnc3RyICLQldGC0LjQutC10YLQutGDINC+0LHRgNGW0LfQsNC90L4uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGxhYmVsLCAiCittc2dzdHIgItC90LXQvNCw0ZQg0LXRgtC40LrQtdGC0LrQuCwgIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1dWlkXG4iCittc2dzdHIgItC90LXQvNCw0ZQgdXVpZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI4MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1wUEFHRVNaXSBbLUwgbGFiZWxdIFstVSBVVUlEXSAvZGV2L25hbWUgW2Jsb2Nrc11cbiIKK21zZ3N0ciAiIgorItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgWy1jXSBbLXYwfC12MV0gWy1wUEFHRVNaXSBbLUwg0LXRgtC40LrQtdGC0LrQsF0gL2Rldi/QvdCw0LfQstCwIFvQsdC70L7QutC4XVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI5NworbXNnaWQgInRvbyBtYW55IGJhZCBwYWdlcyIKK21zZ3N0ciAi0L3QsNC00YLQviDQsdCw0LPQsNGC0L4g0L/QvtGI0LrQvtC00LbQtdC90LjRhSDRgdGC0L7RgNGW0L3QvtC6IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMxMCBtaXNjLXV0aWxzL2xvb2suYzoxODIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE3OQorIzogdGV4dC11dGlscy9tb3JlLmM6MjAxNiB0ZXh0LXV0aWxzL21vcmUuYzoyMDI3Cittc2dpZCAiT3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAi0J3QtdC00L7RgdGC0LDRgtC90YzQviDQv9Cw0Lwn0Y/RgtGWIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIHBhZ2VcbiIKK21zZ3N0ciAi0L7QtNC90LAg0L/QvtGI0LrQvtC00LbQtdC90LAg0YHRgtC+0YDRltC90LrQsFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgYmFkIHBhZ2VzXG4iCittc2dzdHIgIiVsdSDQv9C+0YjQutC+0LTQttC10L3QuNGFINGB0YLQvtGA0ZbQvdC+0LpcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MDIgZGlzay11dGlscy9ta3N3YXAuYzo0MzkgZGlzay11dGlscy9ta3N3YXAuYzo2NTkKK21zZ2lkICJ1bmFibGUgdG8gcmV3aW5kIHN3YXAtZGV2aWNlIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstGB0YLQsNC90L7QstC70LXQvdC90Y8g0L/QvtC30LjRhtGW0Zcg0L3QsCDQv9C+0YfQsNGC0L7QuiDQv9GA0LjRgdGC0YDQvtGOINC/0ZbQtNC60LDRh9C60LgiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDEzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBuZXcgbGliYmxraWQgcHJvYmUiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTRltC70LjRgtC4INCx0YPRhNC10YAg0LTQu9GPINCy0YPQt9C70ZbQsiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTUKK21zZ2lkICJ1bmFibGUgdG8gYXNzaWduIGRldmljZSB0byBsaWJsa2lkIHByb2JlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBlcmFzZSBib290Yml0cyBzZWN0b3JzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L7Rh9C40YHRgtC40YLQuCDQt9Cw0LLQsNC90YLQsNC20YPQstCw0LvRjNC90LjQuSDRgdC10LrRgtC+0YAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogd2FybmluZzogZG9uJ3QgZXJhc2UgYm9vdGJpdHMgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgICglcyBwYXJ0aXRpb24gdGFibGUgZGV0ZWN0ZWQpLiAiCittc2dzdHIgIiAgIHAgICDQstC40LLQtdGB0YLQuCDRgtCw0LHQu9C40YbRjiDRgNC+0LfQtNGW0LvRltCyIEJTRCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgb24gd2hvbGUgZGlzay4gIgorbXNnc3RyICIgICBzICAg0L/QvtC60LDQt9Cw0YLQuCDQstGB0Y4g0LXRgtC40LrQtdGC0LrRgyDQtNC40YHQutGDIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICAoY29tcGlsZWQgd2l0aG91dCBsaWJibGtpZCkuICIKK21zZ3N0ciAiICAgcyAgINC/0L7QutCw0LfQsNGC0Lgg0LLRgdGOINC10YLQuNC60LXRgtC60YMg0LTQuNGB0LrRgyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTEkczogd2FybmluZzogaWdub3JlIC1VIChVVUlEcyBhcmUgdW5zdXBwb3J0ZWQgYnkgJTEkcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU0MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IHN1cHBvcnQgc3dhcHNwYWNlIHZlcnNpb24gJWQuXG4iCittc2dzdHIgIiVzOiDQv9C+0LzQuNC70LrQsDog0L3QtdCy0ZbQtNC+0LzQsCDQstC10YDRgdGW0Y8gJWRcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyLQn9C+0LzQuNC70LrQsCDQt9Cw0LrRgNC40LLQsNC90L3RjyDRhNCw0LnQu9GDXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIKK21zZ3N0ciAiJXM6INC/0L7QvNC40LvQutCwOiDQndC1INCy0LrQsNC30LDQvdC+INC00LUg0YHRgtCy0L7RgNC40YLQuCDQvtCx0LvQsNGB0YLRjCDQv9GW0LTQutCw0YfQutC4P1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU3NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiDQv9C+0LzQuNC70LrQsDog0YDQvtC30LzRltGAICVsdSDQsdGW0LvRjNGI0LjQuSDQvdGW0LYg0YDQvtC30LzRltGAINC/0YDQuNGB0YLRgNC+0Y4gJWx1XG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IHN3YXAgYXJlYSBuZWVkcyB0byBiZSBhdCBsZWFzdCAlbGQgS2lCXG4iCittc2dzdHIgIiVzOiDQv9C+0LzQuNC70LrQsDog0L7QsdC70LDRgdGC0Ywg0L/RltC00LrQsNGH0LrQuCDQv9C+0LLQuNC90L3QsCDQsdGD0YLQuCDQv9GA0LjQvdCw0LnQvNC90ZYgJWxk0LrQsVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiDQv9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC+0LHQu9Cw0YHRgtGMINC/0ZbQtNC60LDRh9C60Lgg0LLRltC00YHRltC60LDRlNGC0YzRgdGPINC00L4gJWxk0LrQsVxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiB3aWxsIG5vdCB0cnkgdG8gbWFrZSBzd2FwZGV2aWNlIG9uICclcydcbiIKK21zZ3N0ciAi0J3QtSDQsdGD0LTQtSDRgdGC0LLQvtGA0LXQvdC+INC/0YDQuNGB0YLRgNGW0Lkg0L/RltC00LrQsNGH0LrQuCDQvdCwICclcyciCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6ICVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2Ugc3dhcHNwYWNlLlxuIgorbXNnc3RyICIlcyDQv9GW0LTQutC70Y7Rh9C10L3QuNC5OyDRgtGD0YIg0L3QtSDQvNC+0LbQvdCwINGB0YLQstC+0YDRjtCy0LDRgtC4INGE0LDQudC70L7QstGDINGB0LjRgdGC0LXQvNGDISIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2NDgKK21zZ2lkICJVbmFibGUgdG8gc2V0IHVwIHN3YXAtc3BhY2U6IHVucmVhZGFibGUiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGB0YLQsNC90L7QstC40YLQuCDQv9GA0L7RgdGC0ZbRgCDQv9GW0LTQutCw0YfQutC4OiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L/RgNC+0YfQuNGC0LDRgtC4IgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyB1cCBzd2Fwc3BhY2UgdmVyc2lvbiAxLCBzaXplID0gJWxsdSBLaUJcbiIKK21zZ3N0ciAi0JLRgdGC0LDQvdC+0LLQu9GO0ZTRgtGM0YHRjyDQvtCx0LvQsNGB0YLRjCDQv9GW0LTQutCw0YfQutC4INCy0LXRgNGB0ZbRlyAlZCwg0YDQvtC30LzRltGAID0gJWxsdSDQutCxXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byB3cml0ZSBzaWduYXR1cmUgcGFnZTogJXMiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cw0L/QuNGB0LDRgtC4INGB0YLQvtGA0ZbQvdC60YMg0L/RltC00L/QuNGB0YMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjczCittc2dpZCAiZnN5bmMgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstC40LrQvtC90LDQvdC90Y8gZnN5bmMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIG9idGFpbiBzZWxpbnV4IGZpbGUgbGFiZWw6ICVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2OTAKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIG1hdGNocGF0aGNvbigpIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQsNC/0YPRgdGC0LjRgtC4ICVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY5MworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIG5ldyBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cw0L/QuNGB0LDRgtC4INCy0YPQt9C70LgiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njk1Cittc2dpZCAiY291bGRuJ3QgY29tcHV0ZSBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo3MDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmFibGUgdG8gcmVsYWJlbCAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0LXRgNC10LnQvNC10L3Rg9Cy0LDRgtC4ICVzINGDICVzOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiICAlcyAiCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzpcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSAnJXMnIGlzIGNvbnRyb2wgcmF3IGRldiAodXNlIHJhdzxOPiB3aGVyZSA8Tj4gaXMgZ3JlYXRlciB0aGFuIHplcm8pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQsNCx0LvQvtC60YPQstCw0YLQuCDRhNCw0LnQuyDQsdC70L7QutGD0LLQsNC90L3RjyAlczogJXNcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoxNTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86ICVzINC90LUg0ZQg0LHQu9C+0YfQvdC40Lwg0L/RgNC40YHRgtGA0L7RlNC8XG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBtYXN0ZXIgcmF3IGRldmljZSAnIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L7RgtGA0LjQvNCw0YLQuCDRltC90YTQvtGA0LzQsNGG0ZbRjiDQv9GA0L4gJXMiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjA1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGW0L3RhNC+0YDQvNCw0YbRltGOINC/0YDQviAlcyIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iCittc2dzdHIgIi9kZXYvJXM6INC90LUg0ZQg0YHQuNC80LLQvtC70YzQvdC40Lwg0L/RgNC40YHRgtGA0L7RlNC8IgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgcmF3IGRldlxuIgorbXNnc3RyICIlcyDQvdC1INGUINGB0L/QtdGG0ZbQsNC70YzQvdC40Lwg0YTQsNC50LvQvtC8INCx0LvQvtGH0L3QvtCz0L4g0L/RgNC40YHRgtGA0L7RjiIKKworIzogZGlzay11dGlscy9yYXcuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcXVlcnlpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNDEgZGlzay11dGlscy9yYXcuYzoyNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmF3JWQ6XHRib3VuZCB0byBtYWpvciAlZCwgbWlub3IgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igc2V0dGluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfRg9C/0LjQvdC10L3QvdGPINGB0LvRg9C20LHQuDogXCIlc1wiIgorCisjOiBmZGlzay9jZmRpc2suYzozNzggZmRpc2svY2ZkaXNrLmM6MjA4MworbXNnaWQgIlVudXNhYmxlIgorbXNnc3RyICLQndC1INCy0LjQutC+0YDQuNGB0YLQsNC90L4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAi0JLRltC70YzQvdC40Lkg0L/RgNC+0YHRgtGW0YAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MworbXNnaWQgIkxpbnV4IGV4dDIiCittc2dzdHIgIkxpbnV4IGV4dDIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NQorbXNnaWQgIkxpbnV4IGV4dDMiCittc2dzdHIgIkxpbnV4IGV4dDMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NworbXNnaWQgIkxpbnV4IFhGUyIKK21zZ3N0ciAiTGludXggWEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozODkKK21zZ2lkICJMaW51eCBKRlMiCittc2dzdHIgIkxpbnV4IEpGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkxCittc2dpZCAiTGludXggUmVpc2VyRlMiCittc2dzdHIgIkxpbnV4IFJlaXNlckZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NworbXNnaWQgIkxpbnV4IgorbXNnc3RyICJMaW51eCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk2Cittc2dpZCAiT1MvMiBIUEZTIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5OAorbXNnaWQgIk9TLzIgSUZTIgorbXNnc3RyICJPUy8yIElGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDAyCittc2dpZCAiTlRGUyIKK21zZ3N0ciAiTlRGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaGFzIGJlZW4gY2hhbmdlZC5cbiIKK21zZ3N0ciAi0JTQuNGB0Log0LHRg9C70L4g0LfQvNGW0L3QtdC90L4uXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorItCf0LXRgNC10LfQsNCy0LDQvdGC0LDQttGC0LUg0YHQuNGB0YLQtdC80YMg0YnQvtCxINCy0L/QtdCy0L3QuNGC0LjRgdGMLCDRidC+INGC0LDQsdC70LjRhtGPINGA0L7Qt9C00ZbQu9GW0LIg0LrQvtGA0LXQutGC0L3QviAiCisi0L7QvdC+0LLQu9C10L3QsC5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueVxuIgorIkRPUyA2LnggcGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgY2ZkaXNrIG1hbnVhbFxuIgorInBhZ2UgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQo9CS0JDQk9CQOiDQr9C60YnQviDQstC4INGB0YLQstC+0YDQuNC70Lgg0LDQsdC+INC30LzRltC90LjRgtC4INCx0YPQtNGMLdGP0LrRllxuIgorIkRPUyA2Lngg0YDQvtC30LTRltC70LgsINC/0LXRgNC10LPQu9GP0L3RjNGC0LUgbWFuINGB0YLQvtGA0ZbQvdC60YMg0LcgY2ZkaXNrXG4iCisi0YnQvtCxINC+0YLRgNC40LzQsNGC0Lgg0LTQvtC60LvQsNC00L3RltGI0YMg0ZbQvdGE0L7RgNC80LDRhtGW0Y4uXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNgorbXNnaWQgIkZBVEFMIEVSUk9SIgorbXNnc3RyICLQpNCQ0KLQkNCb0KzQndCQINCf0J7QnNCY0JvQmtCQIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTcKK21zZ2lkICJQcmVzcyBhbnkga2V5IHRvIGV4aXQgY2ZkaXNrIgorbXNnc3RyICLQndCw0YLQuNGB0L3RltGC0Ywg0LHRg9C00Ywt0Y/QutGDINC60LvQsNCy0ZbRiNGDINC00LvRjyDQt9Cw0LLQtdGA0YjQtdC90L3RjyBjZmRpc2siCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NCBmZGlzay9jZmRpc2suYzo1NzIKK21zZ2lkICJDYW5ub3Qgc2VlayBvbiBkaXNrIGRyaXZlIgorbXNnc3RyICLQn9C+0LzQuNC70LrQsCDQv9C+0LfQuNGG0ZbRjtCy0LDQvdC90Y8g0L3QsCDQtNC40YHQutC+0LLQvtC80YMg0L/RgNC40YHRgtGA0L7RlyIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY2Cittc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0YDQvtGH0LjRgtCw0YLQuCDQtNC40YHQutC+0LLQuNC5INC/0YDQuNGB0YLRgNGW0LkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU3NAorbXNnaWQgIkNhbm5vdCB3cml0ZSBkaXNrIGRyaXZlIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQsNC/0LjRgdCw0YLQuCDQvdCwINC00LjRgdC60L7QstC40Lkg0L/RgNC40YHRgtGA0ZbQuSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTE3Cittc2dpZCAiVG9vIG1hbnkgcGFydGl0aW9ucyIKK21zZ3N0ciAi0J3QsNC00YLQviDQsdCw0LPQsNGC0L4g0YDQvtC30LTRltC70ZbQsiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTIyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgItCg0L7Qt9C00ZbQuyDQv9C+0YfQuNC90LDRlNGC0YzRgdGPINC/0LXRgNC10LQg0YHQtdC60YLQvtGA0L7QvCAwIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgItCg0L7Qt9C00ZbQuyDQt9Cw0LrRltC90YfRg9GU0YLRjNGB0Y8g0L/QtdGA0LXQtCDRgdC10LrRgtC+0YDQvtC8IDAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYWZ0ZXIgZW5kLW9mLWRpc2siCittc2dzdHIgItCg0L7Qt9C00ZbQuyDQv9C+0YfQuNC90LDRlNGC0YzRgdGPINC/0ZbRgdC70Y8g0LrRltC90YbRjyDQtNC40YHQutGDIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAi0KDQvtC30LTRltC7INC30LDQutGW0L3Rh9GD0ZTRgtGM0YHRjyDQv9GW0YHQu9GPINC60ZbQvdGG0Y8g0LTQuNGB0LrRgyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgItCg0L7Qt9C00ZbQuyDQt9Cw0LrRltC90YfRg9GU0YLRjNGB0Y8g0YMg0L7RgdGC0LDQvdC90YzQvtC80YMg0L3QtdC/0L7QstC90L7QvNGDINGG0LjQu9GW0L3QtNGA0ZYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2NgorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBub3QgaW4gZGlzayBvcmRlciIKK21zZ3N0ciAi0LvQvtCz0ZbRh9C90ZYg0YDQvtC30LTRltC70Lgg0L3QtSDRgyDRgtC+0LzRgyDQv9C+0YDRj9C00LrRgyDRj9C6INC90LAg0LTQuNGB0LrRgyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgItC70L7Qs9GW0YfQvdGWINGA0L7Qt9C00ZbQu9C4INC/0LXRgNC10LrRgNC40LLQsNGO0YLRjNGB0Y8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjk3MworbXNnaWQgImVubGFyZ2VkIGxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICLQt9Cx0ZbQu9GM0YjQtdC90ZYg0LvQvtCz0ZbRh9C90ZYg0YDQvtC30LTRltC70Lgg0L/QtdGA0LXQutGA0LjQstCw0Y7RgtGM0YHRjyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAwMworbXNnaWQgIiIKKyIhISEhIEludGVybmFsIGVycm9yIGNyZWF0aW5nIGxvZ2ljYWwgZHJpdmUgd2l0aCBubyBleHRlbmRlZCBwYXJ0aXRpb24gISEhISIKK21zZ3N0ciAiIgorIiEhISEg0JLQvdGD0YLRgNGW0YjQvdGPINC/0L7QvNC40LvQutCwINGB0YLQstC+0YDQtdC90L3RjyDQu9C+0LPRltGH0L3QvtCz0L4g0L/RgNC40YHRgtGA0L7RjiDQsdC10Lcg0YDQvtC30YjQuNGA0LXQvdC+0LPQviAiCisi0YDQvtC30LTRltC70YMgISEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAxNCBmZGlzay9jZmRpc2suYzoxMDI2Cittc2dpZCAiIgorIkNhbm5vdCBjcmVhdGUgbG9naWNhbCBkcml2ZSBoZXJlIC0tIHdvdWxkIGNyZWF0ZSB0d28gZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDRgdGC0LLQvtGA0LjRgtC4INGC0YPRgiDQu9C+0LPRltGH0L3QuNC5INC/0YDQuNGB0YLRgNGW0LkgLS0g0LHRg9C00LUg0YHRgtCy0L7RgNC10L3QviDQtNCy0LAg0YDQvtC30YjQuNGA0LXQvdC40YUgIgorItGA0L7Qt9C00ZbQu9C4IgorCisjOiBmZGlzay9jZmRpc2suYzoxMTY4Cittc2dpZCAiTWVudSBpdGVtIHRvbyBsb25nLiBNZW51IG1heSBsb29rIG9kZC4iCittc2dzdHIgItCf0YPQvdC60YIg0LzQtdC90Y4g0L3QsNC00YLQviDQtNC+0LLQs9C40LkuINCc0LXQvdGOINCy0LjQs9C70Y/QtNCw0YLQuNC80LUg0LTQuNCy0L3Qvi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEyMjQKKyMsIGZ1enp5Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAi0JzQtdC90Y4g0LHQtdC3INC+0YDRltGU0L3RgtCw0YbRltGXLiDQotC40L/QvtCy0LAg0L7RgNGW0ZTQvdGC0LDRhtGW0Y8gLSDQs9C+0YDQuNC30L7QvdGC0LDQu9GM0L3QsC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAi0J3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC60LvRjtGHIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgItCd0LDRgtC40YHQvdGW0YLRjCDQsdGD0LTRjC3Rj9C60YMg0LrQu9Cw0LLRltGI0YMg0LTQu9GPINC/0YDQvtC00L7QstC20LXQvdC90Y8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAi0J/QtdGA0LLQuNC90L3QuNC5IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2Cittc2dpZCAiQ3JlYXRlIGEgbmV3IHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICLQodGC0LLQvtGA0LjRgtC4INC90L7QstC40Lkg0YDQvtC30LTRltC7IgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3IGZkaXNrL2NmZGlzay5jOjIwNTQgZmRpc2svY2ZkaXNrLmM6MjU4NQorIzogZmRpc2svY2ZkaXNrLmM6MjU4OAorbXNnaWQgIkxvZ2ljYWwiCittc2dzdHIgItCb0L7Qs9GW0YfQvdC40LkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgItCh0YLQstC+0YDQuNGC0Lgg0L3QvtCy0LjQuSDQu9C+0LPRltGH0L3QuNC5INC/0YDQuNGB0YLRgNGW0LkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MyBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiQ2FuY2VsIgorbXNnc3RyICLQktGW0LTQvNGW0L3QuNGC0LgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MworbXNnaWQgIkRvbid0IGNyZWF0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAi0J3QtSDRgdGC0LLQvtGA0Y7QstCw0YLQuCDRgNC+0LfQtNGW0LsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDQKK21zZ2lkICIhISEgSW50ZXJuYWwgZXJyb3IgISEhIgorbXNnc3RyICIhISEg0JLQvdGD0YLRgNGW0YjQvdGPINC/0L7QvNC40LvQutCwICEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NworbXNnaWQgIlNpemUgKGluIE1CKTogIgorbXNnc3RyICLQoNC+0LfQvNGW0YAgKNGDIE1CKTogIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQmVnaW5uaW5nIgorbXNnc3RyICLQn9C+0YfQsNGC0L7QuiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgYmVnaW5uaW5nIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgItCU0L7QtNCw0YLQuCDRgNC+0LfQtNGW0Lsg0L3QsCDQv9C+0YfQsNGC0LrRgyDQstGW0LvRjNC90L7Qs9C+INC/0YDQvtGB0YLQvtGA0YMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJFbmQiCittc2dzdHIgItCa0ZbQvdC10YbRjCIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgItCU0L7QtNCw0YLQuCDRgNC+0LfQtNGW0Lsg0L3QsNC/0YDQuNC60ZbQvdGG0ZYg0LLRltC70YzQvdC+0LPQviDQv9GA0L7RgdGC0L7RgNGDIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTAwCittc2dpZCAiTm8gcm9vbSB0byBjcmVhdGUgdGhlIGV4dGVuZGVkIHBhcnRpdGlvbiIKK21zZ3N0ciAi0J3QtdC00L7RgdGC0LDRgtC90YzQviDQv9GA0L7RgdGC0L7RgNGDINC00LvRjyDRgdGC0LLQvtGA0LXQvdC90Y8g0YDQvtC30YjQuNGA0LXQvdC+0LPQviDRgNC+0LfQtNGW0LvRgyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3NAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAi0JLRltC00YHRg9GC0L3RjyDRgtCw0LHQu9C40YbRjyDRgNC+0LfQtNGW0LvRltCyLlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc4Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLiBTdGFydGluZyB3aXRoIHplcm8gdGFibGUuIgorbXNnc3RyICLQktGW0LTRgdGD0YLQvdGPINGC0LDQsdC70LjRhtGPINGA0L7Qt9C00ZbQu9GW0LIg0LDQsdC+INC90LXQstGW0LTQvtC80LAg0YHQuNCz0L3QsNGC0YPRgNCwINGC0LDQsdC70LjRhtGWINGA0L7Qt9C00ZbQu9GW0LIuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgItCd0LXQv9GA0LDQstC40LvRjNC90LAg0YHQuNCz0L3QsNGC0YPRgNCwINGC0LDQsdC70LjRhtGWINGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1OTIKK21zZ2lkICJVbmtub3duIHBhcnRpdGlvbiB0YWJsZSB0eXBlIgorbXNnc3RyICLQotCw0LHQu9C40YbRjyDRgNC+0LfQtNGW0LvRltCyINC90LXQstGW0LTQvtC80L7Qs9C+INGC0LjQv9GDIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAi0JHQsNC20LDRlNGC0LUg0L/QvtGH0LDRgtC4INC3INC90YPQu9GM0L7QstC+0Zcg0YLQsNCx0LvQuNGG0ZYgW3kvTl0gPyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAi0JLQuCDQstC60LDQt9Cw0LvQuCDQsdGW0LvRjNGI0LUg0YbQuNC70ZbQvdC00YDRltCyINC90ZbQtiDRlCDQvdCwINC00LjRgdC60YMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzQKK21zZ2lkICJDYW5ub3Qgb3BlbiBkaXNrIGRyaXZlIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCDQv9GA0LjRgdGC0YDRltC5INC00LjRgdC60YMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzYgZmRpc2svY2ZkaXNrLmM6MTg2NQorbXNnaWQgIk9wZW5lZCBkaXNrIHJlYWQtb25seSAtIHlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gd3JpdGUiCittc2dzdHIgItCS0ZbQtNC60YDQuNGC0LjQuSDQtNC40YHQuiDQu9C40YjQtSDQtNC70Y8g0YfQuNGC0LDQvdC90Y8gLSDRgyDQstCw0YEg0L3QtdC80LDRlCDQv9GA0LDQsiDQtNC70Y8g0LfQsNC/0LjRgdGDIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGA0L7Qt9C80ZbRgCDQtNC40YHQutGDIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70YzQvdC40Lkg0L/QtdGA0LLQuNC90L3QuNC5INGA0L7Qt9C00ZbQuyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAi0J3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC70L7Qs9GW0YfQvdC40Lkg0YDQvtC30LTRltC7IgorCisjOiBmZGlzay9jZmRpc2suYzoxODc3Cittc2dpZCAiV2FybmluZyEhICBUaGlzIG1heSBkZXN0cm95IGRhdGEgb24geW91ciBkaXNrISIKK21zZ3N0ciAi0KPQstCw0LPQsCEhINCm0LUg0LzQvtC20LUg0LfQvdC40YnQuNGC0Lgg0LTQsNC90ZYg0L3QsCDQtNC40YHQutGDISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4MQorbXNnaWQgIiIKKyJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrPyAoeWVzIG9yIG5vKTogIgorbXNnc3RyICIiCisi0JLQuCDQstC/0LXQstC90LXQvdGWLCDRidC+INCx0LDQttCw0ZTRgtC1INC30LDQv9C40YHQsNGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsiDQvdCwINC00LjRgdC6PyAoeWVzINCw0LHQviBubyk6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4NworbXNnaWQgIm5vIgorbXNnc3RyICJubyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4OQorbXNnaWQgIkRpZCBub3Qgd3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2siCittc2dzdHIgItCd0LUg0LfQsNC/0LjRgdGD0LLQsNGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsiDQvdCwINC00LjRgdC6IgorCisjOiBmZGlzay9jZmRpc2suYzoxODkxCittc2dpZCAieWVzIgorbXNnc3RyICJ5ZXMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTUKK21zZ2lkICJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIKK21zZ3N0ciAi0JLQstC10LTRltGC0YwgYHllcyco0YLQsNC6KSDQsNCx0L4gYG5vJyjQvdGWKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5OQorbXNnaWQgIldyaXRpbmcgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2suLi4iCittc2dzdHIgItCX0LDQv9C40YHRg9GU0YLRjNGB0Y8g0YLQsNCx0LvQuNGG0Y8g0YDQvtC30LTRltC70ZbQsiDQvdCwINC00LjRgdC6Li4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI0IGZkaXNrL2NmZGlzay5jOjE5MjgKK21zZ2lkICJXcm90ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAi0KLQsNCx0LvQuNGG0Y8g0YDQvtC30LTRltC70ZbQsiDQt9Cw0L/QuNGB0LDQvdCwINC90LAg0LTQuNGB0LoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKKyMsIGZ1enp5Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorItCi0LDQsdC70LjRhtGPINGA0L7Qt9C00ZbQu9GW0LIg0LfQsNC/0LjRgdCw0L3QsCwg0LDQu9C1INCy0LjQvdC40LrQu9CwINC/0L7QvNC40LvQutCwINC/0YDQuCDRl9GXINC/0LXRgNC10YfQuNGC0YPQstCw0L3QvdGWLiAiCisi0J/QtdGA0LXQt9Cw0LLQsNC90YLQsNC20YLQtdGB0Ywg0LTQu9GPINC+0L3QvtCy0LvQtdC90L3RjyDRgtCw0LHQu9C40YbRli4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorItCd0LXQvNCw0ZQg0L/QtdGA0LLQuNC90L3QuNGFINGA0L7Qt9C00ZbQu9GW0LIg0L/QvtC30L3QsNGH0LXQvdC40YUg0Y/QuiDQt9Cw0LLQsNC90YLQsNC20YPQstCw0LvRjNC90ZYuIERPUyBNQlIg0L3QtSDQt9C80L7QttC1ICIKKyLQt9Cw0LLQsNC90YLQsNC20YPQstCw0YLQuNGB0YwuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM4Cittc2dpZCAiIgorIk1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisi0JHRltC70YzRiCDQvdGW0LYg0L7QtNC40L0g0YDQvtC30LTRltC7INC/0L7Qt9C90LDRh9C10L3QuNC5INGP0Log0LfQsNCy0LDQvdGC0LDQttGD0LLQsNC70YzQvdC40LkuIERPUyBNQlIg0L3QtSDQt9C80L7QttC1ICIKKyLQt9Cw0LLQsNC90YLQsNC20YPQstCw0YLQuNGB0YwuIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICLQktCy0LXQtNGW0YLRjCDQvdCw0LfQstGDINGE0LDQudC70YMg0LDQsdC+INC90LDRgtC40YHQvdGW0YLRjCBFbnRlciwg0YnQvtCxINCy0ZbQtNC+0LHRgNCw0LfQuNGC0Lgg0LXQutGA0LDQvTogIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDA1IGZkaXNrL2NmZGlzay5jOjIxMjMgZmRpc2svY2ZkaXNrLmM6MjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBmaWxlICclcyciCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4INGE0LDQudC7ICclcyciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXNcbiIKK21zZ3N0ciAi0JTQuNGB0LrQvtCy0LjQuSDQv9GA0LjRgdGC0ZbQuTogJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxOAorbXNnaWQgIlNlY3RvciAwOlxuIgorbXNnc3RyICLQodC10LrRgtC+0YAgMDpcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAyNQorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQ6XG4iCittc2dzdHIgItCh0LXQutGC0L7RgCAlZDpcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NQorbXNnaWQgIiAgIE5vbmUgICAiCittc2dzdHIgIiAgINCd0LXQvNCw0ZQgICAgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ3Cittc2dpZCAiICAgUHJpL0xvZyIKK21zZ3N0ciAiICAg0J/QtdGA0LIv0JvQvtCzICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0OQorbXNnaWQgIiAgIFByaW1hcnkiCittc2dzdHIgIiAgINCf0LXRgNCy0LjQvdC90LjQuSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA1MQorbXNnaWQgIiAgIExvZ2ljYWwiCittc2dzdHIgIiAgINCb0L7Qs9GW0YfQvdC40LkgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICLQndC10LLRltC00L7QvNC40LkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTUgZmRpc2svY2ZkaXNrLmM6MjU2MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkKK21zZ2lkICJCb290IgorbXNnc3RyICLQl9Cw0LLQsNC9LiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorbXNnaWQgIk5vbmUiCittc2dzdHIgItCd0LXQvNCw0ZQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgItCi0LDQsdC70LjRhtGPINGA0L7Qt9C00ZbQu9GW0LIg0LTQu9GPICVzXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzYKK21zZ2lkICIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iCittc2dzdHIgIiAgICAgICAgICAgINCf0LXRgNGI0LjQuSAgICDQntGB0YLQsNC90L3RltC5XG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjINCi0LjQvyAgICAgINCh0LXQutGC0L7RgCAgINCh0LXQutGC0L7RgCAgINCX0YHRg9CyICAgINCU0L7QstC20LjQvdCwICDQotC40L8g0YTQsNC50LsuINGB0LjRgdGC0LXQvNC4KElEKSDQntC30L3QsNC60LhcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzOAorbXNnaWQgIiIKKyItLSAtLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAiCisiLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMQorIywgZnV6enkKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgICAtLS3Qn9C+0YfQsNGC0L7Qui0tLSAgICAgICAtLS0t0JrRltC90LXRhtGMLS0tLSAgINCf0L7Rh9Cw0YLQui4gICDQmtGW0LvRjNC6LlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCisjLCBmdXp6eQorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICIgIyDQntC30L3QsNC6INCT0L7QuyAg0KHQtdC60YIg0KbQuNC7ICAgSUQgINCT0L7QuyAg0KHQtdC60YIg0KbQuNC7ICAgINCh0LXQutGC0L7RgCAg0KHQtdC60YLQvtGA0ZbQslxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIzCisjLCBmdXp6eQorbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJSYXciCittc2dzdHIgItCd0LXRhNC+0YDQvNCw0YLQvtCyLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgItCS0LjQstC10YHRgtC4INGC0LDQsdC70LjRhtGOINGDICfQvdC10YTQvtGA0LzQsNGC0L7QstCw0L3QvtC80YMnINCy0LjQs9C70Y/QtNGWIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJTZWN0b3JzIgorbXNnc3RyICLQodC10LrRgtC+0YDQuCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgItCS0LjQstC10YHRgtC4INGC0LDQsdC70LjRhtGOINGB0L7RgNGC0L7QstCw0L3RgyDQt9CwINGB0LXQutGC0L7RgNCw0LzQuCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIlRhYmxlIgorbXNnc3RyICLQotCw0LHQu9C40YbRjyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAi0J/RgNC+0YHRgtC+INCy0LjQstC10YHRgtC4INGC0LDQsdC70LjRhtGOINGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJEb24ndCBwcmludCB0aGUgdGFibGUiCittc2dzdHIgItCd0LUg0LLQuNCy0L7QtNC40YLQuCDRgtCw0LHQu9C40YbRjiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgItCV0LrRgNCw0L0g0Lcg0LTQvtCy0ZbQtNC60L7RjiDQtNC70Y8gY2ZkaXNrIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg5Cittc2dpZCAiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIgorbXNnc3RyICLQptC1IGNmZGlzayAtINC60L7QvdGB0L7Qu9GM0L3QsCDQv9GA0L7Qs9GA0LDQvNCwINGA0L7QsdC+0YLQuCDQtyDRgNC+0LfQtNGW0LvQsNC80Lgg0L3QsCDQsdCw0LfRliBjdXJzZXMsINGP0LrQsCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MAorbXNnaWQgImFsbG93cyB5b3UgdG8gY3JlYXRlLCBkZWxldGUgYW5kIG1vZGlmeSBwYXJ0aXRpb25zIG9uIHlvdXIgaGFyZCIKK21zZ3N0ciAi0LTQvtC30LLQvtC70Y/RlCDRgdGC0LLQvtGA0Y7QstCw0YLQuCwg0LLQuNC00LDQu9GP0YLQuCDRgtCwINC30LzRltC90Y7QstCw0YLQuCDRgNC+0LfQtNGW0LvQuCDQstCw0YjQvtCz0L4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTEKK21zZ2lkICJkaXNrIGRyaXZlLiIKK21zZ3N0ciAi0LbQvtGA0YHRgtC60L7Qs9C+INC00LjRgdC60YMuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkzCittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorbXNnc3RyICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTUKK21zZ2lkICJDb21tYW5kICAgICAgTWVhbmluZyIKK21zZ3N0ciAi0JrQvtC80LDQvdC00LAgICAgICDQn9GA0LjQt9C90LDRh9C10L3QvdGPIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk2Cittc2dpZCAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCittc2dzdHIgIi0tLS0tLS0gICAgICAtLS0tLS0tLS0tLSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NworbXNnaWQgIiAgYiAgICAgICAgICBUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgYiAgICAgICAgICDQn9C10YDQtdC80LjQutC90YPRgtC4INC+0LfQvdCw0LrRgyDQt9Cw0LLQsNC90YLQsNC20LXQvdC90Y8g0L/QvtGC0L7Rh9C90L7Qs9C+INGA0L7Qt9C00ZbQu9GDIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk4Cittc2dpZCAiICBkICAgICAgICAgIERlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiAgZCAgICAgICAgICDQktC40LTQsNC70LjRgtC4INC/0L7RgtC+0YfQvdC40Lkg0YDQvtC30LTRltC7IgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIgIGcgICAgICAgICAg0JfQvNGW0L3QuNGC0Lgg0L/QsNGA0LDQvNC10YLRgNC4OiDRhtC40LvRltC90LTRgNC4LCDQs9C+0LvQvtCy0LrQuCwg0YHQtdC60YLQvtGA0Lgt0L3QsC3QtNC+0YDRltC20LrRgyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAgICAgICAgICBXQVJOSU5HOiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHBlb3BsZSB3aG8iCittc2dzdHIgIiAgICAgICAgICAgICDQo9CS0JDQk9CQOiDQptC10Lkg0L/QsNGA0LDQvNC10YLRgCDQv9C+0LLQuNC90LXQvSDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC0LjRgdGMINC70LjRiNC1INC70Y7QtNGM0LzQuCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICAg0Y/QutGWINC30L3QsNGO0YLRjCwg0YnQviDQstC+0L3QuCDRgNC+0LHQu9GP0YLRjC4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICDQktC40LLQtdGB0YLQuCDRhtGOINC00L7QstGW0LTQutGDIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAzCittc2dpZCAiICBtICAgICAgICAgIE1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIG0gICAgICAgICAg0JzQsNC60YHQuNC80ZbQt9GD0LLQsNGC0Lgg0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPINC00LjRgdC60YMg0L/QvtGC0L7Rh9C90LjQvCDRgNC+0LfQtNGW0LvQvtC8IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA0Cittc2dpZCAiICAgICAgICAgICAgIE5vdGU6IFRoaXMgbWF5IG1ha2UgdGhlIHBhcnRpdGlvbiBpbmNvbXBhdGlibGUgd2l0aCIKK21zZ3N0ciAiICAgICAgICAgICAgINCX0LDRg9Cy0LDQttGC0LU6INGG0LUg0LzQvtC20LUg0LfRgNC+0LHQuNGC0Lgg0YDQvtC30LTRltC7INC90LXRgdGD0LzRltGB0L3QuNC8INC3IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA1Cittc2dpZCAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorbXNnc3RyICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDYKK21zZ2lkICIgIG4gICAgICAgICAgQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICIgIG4gICAgICAgICAg0KHRgtCy0L7RgNC40YLQuCDQvdC+0LLQuNC5INGA0L7Qt9C00ZbQuyDRgyDQstGW0LvRjNC90L7QvNGDINC/0YDQvtGB0YLQvtGA0ZYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDcKK21zZ2lkICIgIHAgICAgICAgICAgUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIgIHAgICAgICAgICAg0JLQuNCy0LXRgdGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsiDQvdCwINC10LrRgNCw0L0g0LDQsdC+INGDINGE0LDQudC7IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICAg0IQg0LTQtdC60ZbQu9GM0LrQsCDRhNC+0YDQvNCw0YLRltCyINCy0LjQstC+0LTRgyDRgNC+0LfQtNGW0LvRltCyOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gY2hvb3NlIGZyb206IgorbXNnc3RyICIgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEwCittc2dpZCAiICAgICAgICAgICAgICAgIHIgLSBSYXcgZGF0YSAoZXhhY3RseSB3aGF0IHdvdWxkIGJlIHdyaXR0ZW4gdG8gZGlzaykiCittc2dzdHIgIiIKKyIgICAgICAgICAgICAgICAgciAtINC90LUg0YTQvtGA0LzQsNGC0L7QstCw0L3RliDQtNCw0L3RliAo0YMg0LLQuNCz0LvRj9C00ZYsINCyINGP0LrQvtC80YMg0LLQvtC90Lgg0LfQsNC/0LjRiNGD0YLRjNGB0Y8gIgorItC90LAg0LTQuNGB0LopIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzExCittc2dpZCAiICAgICAgICAgICAgICAgIHMgLSBUYWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIiAgICAgICAgICAgICAgICBzIC0g0KLQsNCx0LvQuNGG0Y8g0YHQvtGA0YLQvtCy0LDQvdCwINC/0L4g0YHQtdC60YLQvtGA0LDQvCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMgorbXNnaWQgIiAgICAgICAgICAgICAgICB0IC0gVGFibGUgaW4gcmF3IGZvcm1hdCIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHQgLSDRgtCw0LHQu9C40YbRjyDQvdC1INGE0L7RgNC80LDRgtC+0LLQsNC90LjRhSDQtNCw0L3QuNGFIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAg0JLQuNC50YLQuCDQtyDQv9GA0L7Qs9GA0LDQvNC4INCx0LXQtyDQt9Cw0L/QuNGB0YMg0YLQsNCx0LvQuNGG0ZYg0YDQvtC30LTRltC70ZbQsiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNAorbXNnaWQgIiAgdCAgICAgICAgICBDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAiICB0ICAgICAgICAgINCX0LzRltC90LjRgtC4INGC0LjQvyDRhNCw0LnQu9C+0LLQvtGXINGB0LjRgdGC0LXQvNC4IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE1Cittc2dpZCAiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIKK21zZ3N0ciAiICB1ICAgICAgICAgINCX0LzRltC90LjRgtC4INC+0LTQuNC90LjRhtGWINCy0LjQvNGW0YDRjtCy0LDQvdC90Y8g0YDQvtC30LzRltGA0YMg0YDQvtC30LTRltC70ZbQsiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNgorbXNnaWQgIiAgICAgICAgICAgICBSb3RhdGVzIHRocm91Z2ggTUIsIHNlY3RvcnMgYW5kIGN5bGluZGVycyIKK21zZ3N0ciAiICAgICAgICAgICAgINCf0LXRgNC10LzQuNC60LDRlCDQvNGW0LYg0JzQsSwg0YHQtdC60YLQvtGA0LDQvNC4INGC0LAg0YbQuNC70ZbQvdC00YDQsNC80LgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiIgorIiAgVyAgICAgICAgICDQl9Cw0L/QuNGB0LDRgtC4INGC0LDQsdC70LjRhtGOINGA0L7Qt9C00ZbQu9GW0LIg0L3QsCDQtNC40YHQuiAoIFcg0L/QvtCy0LjQvdC10L0g0LHRg9GC0Lgg0LIg0LLQtdGA0YXQvdGM0L7QvNGDICIKKyLRgNC10LPRltGB0YLRgNGWKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAgICAgICAgICBTaW5jZSB0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSBvbiB0aGUgZGlzaywgeW91IG11c3QiCittc2dzdHIgIiAgICAgICAgICAgICDQptC1INC80L7QttC1INC30YDRg9C50L3Rg9Cy0LDRgtC4INC00LDQvdGWINC90LAg0LTQuNGB0LrRgywg0YLQvtC80YMg0L3QtdC+0LHRhdGW0LTQvdC+INCw0LHQviIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICAgICAgICAgICBlaXRoZXIgY29uZmlybSBvciBkZW55IHRoZSB3cml0ZSBieSBlbnRlcmluZyBgeWVzJyBvciIKK21zZ3N0ciAiICAgICAgICAgICAgINC/0ZbQtNGC0LLQtdGA0LTQuNGC0Lgg0LDQsdC+INCy0ZbQtNC80L7QstC40YLQuNGB0Ywg0LLRltC0INC30LDQv9C40YHRgyDQvdCw0LHRgNCw0LLRiNC4IGB5ZXMnINGH0LggIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIwCittc2dpZCAiICAgICAgICAgICAgIGBubyciCittc2dzdHIgIiAgICAgICAgICAgICBgbm8nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIxCittc2dpZCAiVXAgQXJyb3cgICAgIE1vdmUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBwYXJ0aXRpb24iCittc2dzdHIgItCh0YLRgNGW0LvQutCw0JLQs9C+0YDRgyDQn9C10YDQtdC80ZbRgdGC0LjRgtC4INC60YPRgNGB0L7RgCDQvdCwINC/0L7Qv9C10YDQtdC00L3RjiDQv9C+0LfQuNGG0ZbRjiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMgorbXNnaWQgIkRvd24gQXJyb3cgICBNb3ZlIGN1cnNvciB0byB0aGUgbmV4dCBwYXJ0aXRpb24iCittc2dzdHIgItCh0YLRgNGW0LvQutCw0JLQvdC40LcgINCf0LXRgNC10LzRltGB0YLQuNGC0Lgg0LrRg9GA0YHQvtGAINGDINC90LDRgdGC0YPQv9C90YMg0L/QvtC30LjRhtGW0Y4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjMKK21zZ2lkICJDVFJMLUwgICAgICAgUmVkcmF3cyB0aGUgc2NyZWVuIgorbXNnc3RyICJDVFJMLUwgICAgICAg0J7QvdC+0LLQu9GO0ZQg0LLQvNGW0YHRgiDQtdC60YDQsNC90YMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjQKK21zZ2lkICIgID8gICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgPyAgICAgICAgICDQktC40LLQvtC00LjRgtGMINGG0Y4g0LTQvtCy0ZbQtNC60YMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICLQl9Cw0YPQstCw0LbRgtC1OiDQktGB0ZYg0LrQvtC80LDQvdC00Lgg0LLQstC+0LTRj9GC0YzRgdGPINCw0LHQviDRgyDQvdC40LbQvdGM0L7QvNGDINCw0LHQviDRgyDQstC10YDRhdC90YzQvtC80YMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgItGA0LXQs9GW0YHRgtGA0LDRhSAo0LfQsCDQstC40L3Rj9GC0LrQvtC8IChXKdC30LDQv9C40YHRgykuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzIKK21zZ2lkICJDeWxpbmRlcnMiCittc2dzdHIgItCm0LjQu9GW0L3QtNGA0ZbQsiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OAorbXNnaWQgIkNoYW5nZSBjeWxpbmRlciBnZW9tZXRyeSIKK21zZ3N0ciAi0JfQvNGW0L3QuNGC0Lgg0LPQtdC+0LzQtdGC0YDRltGOINGG0LjQu9GW0L3QtNGA0YMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMAorbXNnaWQgIkhlYWRzIgorbXNnc3RyICLQk9C+0LvQvtCy0LrQuCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICLQl9C80ZbQvdC40YLQuCDQs9C10L7QvNC10YLRgNGW0Y4g0LPQvtC70L7QstC60LgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJDaGFuZ2Ugc2VjdG9yIGdlb21ldHJ5IgorbXNnc3RyICLQl9C80ZbQvdC40YLQuCDQs9C10L7QvNC10YLRgNGW0Y4g0YHQtdC60YLQvtGA0YMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICLQktC40LrQvtC90LDQvdC+IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICLQl9Cw0LLQtdGA0YjQuNGC0Lgg0LfQvNGW0L3RgyDQs9C10L7QvNC10YLRgNGW0ZciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNzQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGN5bGluZGVyczogIgorbXNnc3RyICLQktCy0LXQtNGW0YLRjCDQutGW0LvRjNC60ZbRgdGC0Ywg0YbQuNC70ZbQvdC00YDRltCyOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzODUgZmRpc2svY2ZkaXNrLmM6Mjk1OAorbXNnaWQgIklsbGVnYWwgY3lsaW5kZXJzIHZhbHVlIgorbXNnc3RyICLQndC10LTQvtC/0YPRgdGC0LjQvNC1INC30L3QsNGH0LXQvdC90Y8g0YbQuNC70ZbQvdC00YDRltCyIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzkxCittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBoZWFkczogIgorbXNnc3RyICLQktCy0LXQtNGW0YLRjCDQs9C10L7QvNC10YLRgNGW0Y4g0LPQvtC70L7QstC+0Lo6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAi0J3QtdC00L7Qv9GD0YHRgtC40LzQtSDQt9C90LDRh9C10L3QvdGPINCz0L7Qu9C+0LLQvtC6IgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICLQktCy0LXQtNGW0YLRjCDQutGW0LvRjNC60ZbRgdGC0Ywg0YHQtdC60YLQvtGA0ZbQsiDQvdCwINC00L7RgNGW0LbQutGDOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MTEgZmRpc2svY2ZkaXNrLmM6Mjk3NQorbXNnaWQgIklsbGVnYWwgc2VjdG9ycyB2YWx1ZSIKK21zZ3N0ciAi0J3QtdC00L7Qv9GD0YHRgtC40LzQtSDQt9C90LDRh9C10L3QvdGPINGB0LXQutGC0L7RgNGW0LIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MTQKK21zZ2lkICJFbnRlciBmaWxlc3lzdGVtIHR5cGU6ICIKK21zZ3N0ciAi0JLQstC10LTRltGC0Ywg0YLQuNC/INGE0LDQudC70L7QstC+0Zcg0YHQuNGB0YLQtdC80Lg6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzMgorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBlbXB0eSIKK21zZ3N0ciAi0KLQuNC/INCk0KEg0L3QtSDQvNC+0LbQtSDQsdGD0YLQuCDQv9C+0YDQvtC20L3RltC8IgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICLQndC1INC80L7QttC90LAg0LfQvNGW0L3RjtCy0LDRgtC4INGC0LjQvyDQpNChINC90LAg0YDQvtC30YjQuNGA0LXQvdC40LkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rKCUwMlgpIgorbXNnc3RyICLQndC10LLRltC0KCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTY4IGZkaXNrL2NmZGlzay5jOjI1NzEKK21zZ2lkICIsIE5DIgorbXNnc3RyICIsINCd0JoiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NzYgZmRpc2svY2ZkaXNrLmM6MjU3OQorbXNnaWQgIk5DIgorbXNnc3RyICLQndCaIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAi0J/QtdGA0LIv0JvQvtCzIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICLQndC10LLRltC00L7QvNC40LkgKCUwMlgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzIgorbXNnc3RyICLQn9GA0LjRgdGC0ZbQuSDQtNC40YHQutGDOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICLQoNC+0LfQvNGW0YA6ICVsbGQg0LHQsNC50YIsICVsbGQg0JzQsSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkLiVsbGQgR0IiCittc2dzdHIgItCg0L7Qt9C80ZbRgDogJWxsZCDQsdCw0LnRgiwgJWxsZC4lbGxkINCT0LEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGVhZHM6ICVkICAgU2VjdG9ycyBwZXIgVHJhY2s6ICVkICAgQ3lsaW5kZXJzOiAlbGxkIgorbXNnc3RyICLQk9C+0LvQvtCy0L7QujogJWQgICDQodC10LrRgtC+0YDRltCyINC90LAg0LTQvtGA0ZbQttC60YM6ICVkICAg0KbQuNC70ZbQvdC00YDRltCyOiAlbGxkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgxIGxvZ2luLXV0aWxzL2NoZm4uYzozNzcKK21zZ2lkICJOYW1lIgorbXNnc3RyICLQndCw0LfQstCwIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgyCittc2dpZCAiRmxhZ3MiCittc2dzdHIgItCe0LfQvdCw0LrQuCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MworbXNnaWQgIlBhcnQgVHlwZSIKK21zZ3N0ciAi0KLQuNC/INGA0L7Qt9C0LiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgItCi0LjQvyDQpNChIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg1Cittc2dpZCAiW0xhYmVsXSIKK21zZ3N0ciAiW9Cf0L7Qt9C90LDRh9C60LBdIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgINCh0LXQutGC0L7RgNGW0LIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKK21zZ2lkICIgIEN5bGluZGVycyIKK21zZ3N0ciAiICDQptC40LvRltC90LTRgNGW0LIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTEKK21zZ2lkICIgIFNpemUgKE1CKSIKK21zZ3N0ciAi0KDQvtC30LzRltGAICjQnNCxKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MworbXNnaWQgIiAgU2l6ZSAoR0IpIgorbXNnc3RyICLQoNC+0LfQvNGW0YAgKNCT0LEpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgItCX0LDQstCw0L3RgtCw0LYuIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICLQn9C10YDQtdC80LjQutC90YPRgtC4INC+0LfQvdCw0LrRgyDQt9Cw0LLQsNC90YLQsNC20LXQvdC90Y8g0L/QvtGC0L7Rh9C90L7Qs9C+INGA0L7Qt9C00ZbQu9GDIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICLQktC40LTQsNC70LjRgtC4IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAi0JLQuNC00LDQu9C40YLQuCDQv9C+0YLQvtGH0L3QuNC5INGA0L7Qt9C00ZbQuyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkdlb21ldHJ5IgorbXNnc3RyICLQk9C10L7QvNC10YLRgNGW0Y8iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJDaGFuZ2UgZGlzayBnZW9tZXRyeSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAi0JfQvNGW0L3QuNGC0Lgg0LPQtdC+0LzQtdGC0YDRltGOINC00LjRgdC60YMgKNC70LjRiNC1INC00LvRjyDRhNCw0YXRltCy0YbRltCyKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIkhlbHAiCittc2dzdHIgItCU0L7QstGW0LTQutCwIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiUHJpbnQgaGVscCBzY3JlZW4iCittc2dzdHIgItCS0LjQstC10YHRgtC4INCy0ZbQutC90L4g0Lcg0LTQvtCy0ZbQtNC60L7RjiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIgorbXNnc3RyICLQnNCw0LrRgdC40LzRg9C8IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgItCc0LDQutGB0LjQvNGW0LfRg9Cy0LDRgtC4INCy0LjQutC+0YDQuNGB0YLQsNC90L3RjyDQtNC40YHQutGDINC/0L7RgtC+0YfQvdC40Lwg0YDQvtC30LTRltC70L7QvCAo0LTQu9GPINGE0LDRhdGW0LLRhtGW0LIpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICLQndC+0LLQuNC5IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICLQodGC0LLQvtGA0LjRgtC4INC90L7QstC40Lkg0YDQvtC30LTRltC7INGDINCy0ZbQu9GM0L3QvtC80YMg0L/RgNC+0YHRgtC+0YDRliIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IgorbXNnc3RyICLQktC40LLQtdGB0YLQuCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAi0JLQuNCy0LXRgdGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsiDQvdCwINC10LrRgNCw0L0g0LDQsdC+INGDINGE0LDQudC7IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCIKK21zZ3N0ciAi0JLQuNGF0ZbQtCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICLQktC40LnRgtC4INC3INC/0YDQvtCz0YDQsNC80Lgg0LHQtdC3INC30LDQv9C40YHRgyDRgtCw0LHQu9C40YbRliDRgNC+0LfQtNGW0LvRltCyIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAi0KLQuNC/IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAi0JfQvNGW0L3QuNGC0Lgg0YLQuNC/INGE0LDQudC70L7QstC+0Zcg0YHQuNGB0YLQtdC80LggKERPUywgTGludXgsIE9TLzIg0YLQsCDRltC9LikiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAi0J7QtNC40L3QuNGG0ZYiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJDaGFuZ2UgdW5pdHMgb2YgdGhlIHBhcnRpdGlvbiBzaXplIGRpc3BsYXkgKE1CLCBzZWN0LCBjeWwpIgorbXNnc3RyICLQl9C80ZbQvdC40YLQuCDQvtC00LjQvdC40YbRliDQstC40LzRltGA0Y7QstCw0L3QvdGPINGA0L7Qt9C80ZbRgNGW0LIg0YDQvtC30LTRltC70YMgKNCc0JEuINGB0LXQutGCLCDRhtC40LspIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUiCittc2dzdHIgItCX0LDQv9C40YHQsNGC0LgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIgorbXNnc3RyICLQl9Cw0L/QuNGB0LDRgtC4INGC0LDQsdC70LjRhtGOINGA0L7Qt9C00ZbQu9GW0LIg0L3QsCDQtNC40YHQuiAo0LzQvtC20LUg0LfRltC/0YHRg9Cy0LDRgtC4INC00LDQvdGWKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgwNQorbXNnaWQgIkNhbm5vdCBtYWtlIHRoaXMgcGFydGl0aW9uIGJvb3RhYmxlIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfRgNC+0LHQuNGC0Lgg0YDQvtC30LTRltC7INC30LDQstCw0L3RgtCw0LbRg9Cy0LDQu9GM0L3QuNC8IgorCisjOiBmZGlzay9jZmRpc2suYzoyODE1Cittc2dpZCAiQ2Fubm90IGRlbGV0ZSBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTQsNC70LjRgtC4INC/0L7RgNC+0LbQvdGW0Lkg0YDQvtC30LTRltC7IgorCisjOiBmZGlzay9jZmRpc2suYzoyODM1IGZkaXNrL2NmZGlzay5jOjI4MzcKK21zZ2lkICJDYW5ub3QgbWF4aW1pemUgdGhpcyBwYXJ0aXRpb24iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvNCw0LrRgdC40LzRltC30YPQstCw0YLQuCDRhtC10Lkg0YDQvtC30LTRltC7IgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ1Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgdW51c2FibGUiCittc2dzdHIgItCm0LXQuSDRgNC+0LfQtNGW0Lsg0L3QtSDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NworbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIGFscmVhZHkgaW4gdXNlIgorbXNnc3RyICLQptC10Lkg0YDQvtC30LTRltC7INCy0LbQtSDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQvNGW0L3QuNGC0Lgg0YLQuNC/INC/0L7RgNC+0LbQvdGM0L7Qs9C+INGA0L7Qt9C00ZbQu9GDIgorCisjOiBmZGlzay9jZmRpc2suYzoyODkxIGZkaXNrL2NmZGlzay5jOjI4OTcKK21zZ2lkICJObyBtb3JlIHBhcnRpdGlvbnMiCittc2dzdHIgItCd0LXQvNCw0ZQg0LHRltC70YzRiNC1INGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MDQKK21zZ2lkICJJbGxlZ2FsIGNvbW1hbmQiCittc2dzdHIgItCd0LXQv9GA0LDQstC40LvRjNC90LAg0LrQvtC80LDQvdC00LAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIkNvcHlyaWdodCAoQykgMTk5NC0yMDAyIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOlxuIgorItCS0LjQstGW0LQg0LLQtdGA0YHRltGXOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyLQktC40LLRltC0INGC0LDQsdC70LjRhtGWINGA0L7Qt9C00ZbQu9GW0LI6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFvQv9Cw0YDQsNC80LXRgtGA0LhdINC/0YDQuNGB0YLRgNGW0LlcbiIKKyLQhtC90YLQtdGA0LDQutGC0LjQstC90LUg0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOlxuIgorIiAgICAgICAgJXMgW9C/0LDRgNCw0LzQtdGC0YDQuF0g0L/RgNC40YHRgtGA0ZbQuVxuIgorIlxuIgorItCf0LDRgNCw0LzQtdGC0YDQuDpcbiIKKyItYTog0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INGB0YLRgNGW0LvQutC4INC30LDQvNGW0YHRgtGMINC/0ZbQtNGB0LLRltGH0YPQstCw0L3QvdGPO1xuIgorIi16OiDQn9C+0YfQsNGC0Lgg0Lcg0L3Rg9C70YzQvtCy0L7RlyDRgtCw0LHQu9C40YbRliDRgNC+0LfQtNGW0LvRltCyLCDQsCDQvdC1INGH0LjRgtCw0YLQuCDRl9GXINC3INC00LjRgdC60YM7XG4iCisiLWMg0KYgLWgg0JMgLXMg0KE6INCf0LXRgNC10LLQuNC30L3QsNGH0LjRgtC4INC+0YLRgNC40LzQsNC90YMg0LLRltC0INGP0LTRgNCwINC60ZbQu9GM0LrRltGB0YLRjCDRhtC40LvRltC90LTRgNGW0LIsXG4iCisiICAgICAgICAgICAgICAgINC60ZbQu9GM0LrRltGB0YLRjCDQs9C+0LvQvtCy0L7QuiDRgtCwINC60ZbQu9GM0LrRltGB0YLRjCDRgdC10LrRgtC+0YDRltCyL9C00L7RgNGW0LbQutGDLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza2FpeGxhYmVsLmM6MjcKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIEFJWCBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IExpbnV4IGNhbm5vdCBoYW5kbGUgdGhlc2VcbiIKKyJcdGRpc2tzIGF0IHRoZSBtb21lbnQuICBOZXZlcnRoZWxlc3Mgc29tZVxuIgorIlx0YWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorIlx0My4gQmVmb3JlIGRlbGV0aW5nIHRoaXMgcGh5c2ljYWwgdm9sdW1lIGJlIHN1cmVcbiIKKyJcdCAgIHRvIHJlbW92ZSB0aGUgZGlzayBsb2dpY2FsbHkgZnJvbSB5b3VyIEFJWFxuIgorIlx0ICAgbWFjaGluZS4gIChPdGhlcndpc2UgeW91IGJlY29tZSBhbiBBSVhwZXJ0KS4iCittc2dzdHIgIiIKKyJcbiIKKyJcdNCd0LAg0YbRjNC+0LzRgyDQtNC40YHQutGDINC30L3QsNC50LTQtdC90L4g0L/RgNCw0LLQuNC70YzQvdGDINC10YLQuNC60LXRgtC60YMgQUlYINC00LjRgdC60YMuXG4iCisiXHTQndCw0LbQsNC70Ywg0L3QsNGA0LDQt9GWIExpbnV4INC90LUg0L/RltC00YLRgNC40LzRg9GUINGG0LXQuSDRgtC40L8g0LTQuNGB0LrRltCyLlxuIgorIlx00J/RgNC+0YLQtSDQtNC10Y/QutGWINC/0L7RgNCw0LTQuDpcbiIKKyJcdDEuIGZkaXNrINC30L3QuNGJ0LjRgtGMINCy0LzRltGB0YIg0L/RgNC4INC30LDQv9C40YHRgy5cbiIKKyJcdDIuINCf0LXRgNC10LLRltGA0YLQtSwg0YnQviDRhtC10Lkg0LTQuNGB0Log0J3QlSDRlCDQttC40YLRgtGU0LLQvlxuIgorIlx0ICAg0L3QtdC+0LHRhdGW0LTQvdC+0Y4g0YfQsNGB0YLQuNC90L7RjiDQs9GA0YPQv9C4INGC0L7QvNGW0LIuICjQoyDRltC90YjQvtC80YMg0LLQuNC/0LDQtNC60YNcbiIKKyJcdCAgINGC0LDQutC+0LYg0LzQvtC20L3QsCDRgdGC0LXRgNGC0Lgg0ZbQvdGI0ZYg0LTQuNGB0LrQuC4pXG4iCisiXHQzLiDQn9C10YDQtdC0INCy0LjQtNCw0LvQtdC90L3Rj9C8INGG0YzQvtCz0L4g0YTRltC30LjRh9C90L7Qs9C+INGC0L7QvNGDINC/0LXRgNC10LrQvtC90LDQudGC0LXRgdGMINGJ0L5cbiIKKyJcdCAgINC00LjRgdC60L4g0LvQvtCz0ZbRh9C90L4g0LLQuNC00LDQu9C10L3QuNC5INC3IEFJWFxuIgorIlx0ICAg0YHQuNGB0YLQtdC80LguICAo0KMg0ZbQvdGI0L7QvNGDINCy0LjQv9Cw0LTQutGDINCy0Lgg0YHRgtCw0L3QtdGC0LUg0YTQsNGF0ZbQstGG0LXQvCDQtyBBSVgpLiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQlNEIGxhYmVsIGZvciBkZXZpY2U6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJCU0Qg0LXRgtC40LrQtdGC0LrQsCDQv9GA0LjRgdGC0YDQvtGOOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI4IGZkaXNrL2ZkaXNrLmM6Mzk0IGZkaXNrL2ZkaXNrLmM6NDEzCisjOiBmZGlzay9mZGlzay5jOjQzMSBmZGlzay9mZGlzay5jOjQzOCBmZGlzay9mZGlzay5jOjQ2MSBmZGlzay9mZGlzay5jOjQ3OQorIzogZmRpc2svZmRpc2suYzo0OTUgZmRpc2svZmRpc2suYzo1MTEKK21zZ2lkICJDb21tYW5kIGFjdGlvbiIKK21zZ3N0ciAi0JrQvtC80LDQvdC00LAg0LTRltGPIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICDQstC40LTQsNC70LjRgtC4IEJTRCDRgNC+0LfQtNGW0LsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzAKK21zZ2lkICIgICBlICAgZWRpdCBkcml2ZSBkYXRhIgorbXNnc3RyICIgICBlICAg0YDQtdC00LDQs9GD0LLQsNGC0Lgg0LTQsNC90ZYg0LTQuNGB0LrRgyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgINCy0YHRgtCw0L3QvtCy0LjRgtC4IGJvb3RzdHJhcCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMgorbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIGZpbGVzeXN0ZW0gdHlwZXMiCittc2dzdHIgIiAgIGwgICDQv9C10YDQtdC70ZbQuiDQstGW0LTQvtC80LjRhSDRgtC40L/RltCyINGE0LDQudC70L7QstC40YUg0YHQuNGB0YLQtdC8IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMzIGZkaXNrL2ZkaXNrLmM6NDAwIGZkaXNrL2ZkaXNrLmM6NDE5CisjOiBmZGlzay9mZGlzay5jOjQzMiBmZGlzay9mZGlzay5jOjQ0NCBmZGlzay9mZGlzay5jOjQ2OSBmZGlzay9mZGlzay5jOjQ4NgorIzogZmRpc2svZmRpc2suYzo1MDIgZmRpc2svZmRpc2suYzo1MjAKK21zZ2lkICIgICBtICAgcHJpbnQgdGhpcyBtZW51IgorbXNnc3RyICIgICBtICAg0LLQuNCy0LXRgdGC0Lgg0YbQtSDQvNC10L3RjiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNAorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgbiAgINC00L7QtNCw0YLQuCDQvdC+0LLQuNC5IEJTRCDRgNC+0LfQtNGW0LsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgINCy0LjQstC10YHRgtC4INGC0LDQsdC70LjRhtGOINGA0L7Qt9C00ZbQu9GW0LIgQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM2IGZkaXNrL2ZkaXNrLmM6NDA0IGZkaXNrL2ZkaXNrLmM6NDIzCisjOiBmZGlzay9mZGlzay5jOjQzNCBmZGlzay9mZGlzay5jOjQ0OCBmZGlzay9mZGlzay5jOjQ3MSBmZGlzay9mZGlzay5jOjQ4OAorIzogZmRpc2svZmRpc2suYzo1MDQgZmRpc2svZmRpc2suYzo1MjIKK21zZ2lkICIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIgorbXNnc3RyICIgICBxICAg0LLQuNC50YLQuCDQsdC10Lcg0LfQsdC10YDQtdC20LXQvdC90Y8g0LfQvNGW0L0iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzcgZmRpc2svZmRpc2suYzo0NzIgZmRpc2svZmRpc2suYzo0ODkKKyM6IGZkaXNrL2ZkaXNrLmM6NTA1IGZkaXNrL2ZkaXNrLmM6NTIzCittc2dpZCAiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiCittc2dzdHIgIiAgIHIgICDQv9C+0LLQtdGA0L3Rg9GC0LjRgdGMINC00L4g0LPQvtC70L7QstC90L7Qs9C+INC80LXQvdGOIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM4Cittc2dpZCAiICAgcyAgIHNob3cgY29tcGxldGUgZGlza2xhYmVsIgorbXNnc3RyICIgICBzICAg0L/QvtC60LDQt9Cw0YLQuCDQstGB0Y4g0LXRgtC40LrQtdGC0LrRgyDQtNC40YHQutGDIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM5Cittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIGZpbGVzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICDQt9C80ZbQvdC40YLQuCDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgCDRhNCw0LnQu9C+0LLQvtGXINGB0LjRgdGC0LXQvNC4INGA0L7Qt9C00ZbQu9GDIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQwCittc2dpZCAiICAgdSAgIGNoYW5nZSB1bml0cyAoY3lsaW5kZXJzL3NlY3RvcnMpIgorbXNnc3RyICIgICB1ICAg0LfQvNGW0L3QuNGC0Lgg0L7QtNC40L3QuNGG0ZYg0LLQuNC80ZbRgNGDICjRhtC40LvRltC90LTRgNC4L9GB0LXQutGC0L7RgNC4KSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MQorbXNnaWQgIiAgIHcgICB3cml0ZSBkaXNrbGFiZWwgdG8gZGlzayIKK21zZ3N0ciAiICAgdyAgINC30LDQv9C40YHQsNGC0Lgg0LXRgtC40LrQtdGC0LrRgyDQtNC40YHQutGDINC90LAg0LTQuNGB0LoiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDMKK21zZ2lkICIgICB4ICAgbGluayBCU0QgcGFydGl0aW9uIHRvIG5vbi1CU0QgcGFydGl0aW9uIgorbXNnc3RyICIgICB4ICAg0L/QvtGB0LjQu9Cw0L3QvdGPINC3IEJTRCDRgNC+0LfQtNGW0LvRgyDQvdCwINC90LUtQlNEINGA0L7Qt9C00ZbQuyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgItCg0L7Qt9C00ZbQuyAlcyDQvNCw0ZQg0L3QtdC/0YDQsNCy0LjQu9GM0L3RgyDQutGW0LvRjNC60ZbRgdGC0Ywg0YHQtdC60YLQvtGA0ZbQsiAwLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWRpbmcgZGlza2xhYmVsIG9mICVzIGF0IHNlY3RvciAlZC5cbiIKK21zZ3N0ciAi0KfQuNGC0LDRlNGC0YzRgdGPINC10YLQuNC60LXRgtC60LAg0LTQuNGB0LrRgyAlcyDQtyDRgdC10LrRgtC+0YDRgyAlZC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAi0J3QtdC80LDRlCAqQlNEINGA0L7Qt9C00ZbQu9GW0LIg0L3QsCAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjIwMworbXNnaWQgIkJTRCBkaXNrbGFiZWwgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAi0JrQvtC80LDQvdC00LAg0YDQtdC20LjQvNGDIEJTRCDQtdGC0LjQutC10YLQutC4INC00LjRgdC60YMgKG0gLSDQtNC+0LLRltC00LrQsCk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI4MyBmZGlzay9mZGlzay5jOjIzMjggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzOAorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdCAlcyIKK21zZ3N0ciAi0J/QtdGA0YjQuNC5ICVzIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlcyBvciArc2l6ZSBvciArc2l6ZU0gb3IgK3NpemVLIgorbXNnc3RyICLQntGB0YLQsNC90L3RltC5ICVzINCw0LHQviArc2l6ZSDQsNCx0L4gK3NpemVNINCw0LHQviArc2l6ZUsiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJXNcbiIKK21zZ3N0ciAi0YLQuNC/OiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE5CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVkXG4iCittc2dzdHIgItGC0LjQvzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXNrOiAlLipzXG4iCittc2dzdHIgItC00LjRgdC6OiAlLipzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibGFiZWw6ICUuKnNcbiIKK21zZ3N0ciAi0LXRgtC40LrQtdGC0LrQsDogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAi0L7Qt9C90LDQutC4OiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgcmVtb3ZhYmxlIgorbXNnc3RyICIg0LfQvNGW0L3QvdC40LkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIGVjYyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICIgYmFkc2VjdCIKK21zZ3N0ciAiINC/0L7RiNC6LtGB0LXQutGCIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzL3NlY3RvcjogJWxkXG4iCittc2dzdHIgItCx0LDQudGCL9GB0LXQutGC0L7RgDogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy90cmFjazogJWxkXG4iCittc2dzdHIgItGB0LXQutGC0L7RgNGW0LIv0LTQvtGA0ZbQttC60YM6ICVsZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrcy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgItC00L7RgNGW0LbQvtC6L9GG0LjQu9GW0L3QtNGAOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAi0LLQtdC60YLQvtGA0ZbQsi/RhtC40LvRltC90LTRgDogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAi0YbQuNC70ZbQvdC00YDRltCyOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgItC+0LEv0YXQsjogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnRlcmxlYXZlOiAlZFxuIgorbXNnc3RyICLRh9C10YDQs9GD0LLQsNC90L3RjzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgItC00L7RgNGW0LbQui7Rg9GF0LjQuzogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnNrZXc6ICVkXG4iCittc2dzdHIgItGG0LjQu9GW0L3QtNGALtGD0YXQuNC7OiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICLQv9C10YDQtdC80LjQui7Qs9C+0LvQvtCy0L7QujogJWxkXHRcdCMg0LzRltC70ZbRgdC10LrRg9C90LRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgItC/0LXRgNC10YUu0L3QsNGB0YIu0LTQvtGA0ZbQttC60Lg6ICVsZFx0IyDQvNGW0LvRltGB0LXQutGD0L3QtFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImRyaXZlZGF0YTogIgorbXNnc3RyICLQtNCw0L3RljoiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCDRgNC+0LfQtNGW0LvRltCyOlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiMgICAgICAgc3RhcnQgICAgICAgZW5kICAgICAgc2l6ZSAgICAgZnN0eXBlICAgW2ZzaXplIGJzaXplICAgY3BnXVxuIgorbXNnc3RyICIjICAgICAg0L/QvtGH0LDRgtC+0LogICAgINC60ZbQvdC10YbRjCAgINGA0L7Qt9C80ZbRgCAgICDRgtC40L8g0YTRgSAgIFvRgNC+0LfQvC7RhNGBINGA0L7Qt9C8LtCx0LsgY3BnXVxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGluZyBkaXNrbGFiZWwgdG8gJXMuXG4iCittc2dzdHIgItCX0LDQv9C40YEg0LXRgtC40LrQtdGC0LrQuCDQtNC40YHQutGDINGDICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDE5IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorbXNnc3RyICIlcyDQvdC1INC80ZbRgdGC0LjRgtGMINC10YLQuNC60LXRgtC60Lgg0LTQuNGB0LrRgy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyNgorbXNnaWQgIkRvIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRpc2tsYWJlbD8gKHkvbikgIgorbXNnc3RyICLQodGC0LLQvtGA0LjRgtC4INC90L7QstGDINC10YLQuNC60LXRgtC60YMg0LTQuNGB0LrRgz8gKHkvbikgIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICLQsdCw0LnRgi/RgdC10LrRgtC+0YAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjcKK21zZ2lkICJzZWN0b3JzL3RyYWNrIgorbXNnc3RyICLRgdC10LrRgtC+0YDRltCyL9C00L7RgNGW0LbQutGDIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY4Cittc2dpZCAidHJhY2tzL2N5bGluZGVyIgorbXNnc3RyICLQtNC+0YDRltC20L7Qui/RhtC40LvRltC90LTRgCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAi0YbQuNC70ZbQvdC00YDQuCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ3NgorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXIiCittc2dzdHIgItGB0LXQutGC0L7RgNGW0LIv0YbQuNC70ZbQvdC00YAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSA8PSBzZWN0b3JzL3RyYWNrICogdHJhY2tzL2N5bGluZGVyIChkZWZhdWx0KS5cbiIKK21zZ3N0ciAi0J/QvtCy0LjQvdC90L4g0LHRg9GC0LggPD0g0YHQtdC60YLQvtGA0ZbQsi/QtNC+0YDRltC20LrRgyAqINC00L7RgNGW0LbQvtC6L9GG0LjQu9GW0L3QtNGAICjRgtC40L/QvtCy0L4pLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgyCittc2dpZCAicnBtIgorbXNnc3RyICLQvtCxL9GF0LIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODMKK21zZ2lkICJpbnRlcmxlYXZlIgorbXNnc3RyICLRh9C10YDQs9GD0LLQsNC90L3RjyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAi0LTQvtGA0ZbQttC6LtGD0YXQuNC7IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg1Cittc2dpZCAiY3lsaW5kZXJza2V3IgorbXNnc3RyICLRhtC40LvRltC90LTRgC7Rg9GF0LjQuyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgItC/0LXRgNC10YUu0LPQvtC70L7QstC+0LoiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODcKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrIgorbXNnc3RyICLQv9C10YDQtdGFLtC90LDRgdGCLtC00L7RgNGW0LbQutC4IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCittc2dzdHIgIkJvb3RzdHJhcDogJXNib290IC0+IGJvb3QlcyAoJXMpOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIG92ZXJsYXBzIHdpdGggZGlzayBsYWJlbCFcbiIKK21zZ3N0ciAiQm9vdHN0cmFwINC/0LXRgNC10LrRgNC40LLQsNGU0YLRjNGB0Y8g0Lcg0LXRgtC40LrQtdGC0LrQvtGOINC00LjRgdC60YMhXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgaW5zdGFsbGVkIG9uICVzLlxuIgorbXNnc3RyICLQktGB0YLQsNC90L7QstC70LXQvdC+INGDICVzLlxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAi0KDQvtC30LTRltC7IChhLSVjKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgItCS0LbQtSDRgdGC0LLQvtGA0LXQvdC+INC80LDQutGB0LjQvNCw0LvRjNC90YMg0LrRltC70YzQutGW0YHRgtGMINGA0L7Qt9C00ZbQu9GW0LJcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiIKK21zZ3N0ciAi0KbQtdC5INGA0L7Qt9C00ZbQuyDQstC20LUg0ZbRgdC90YPRlC5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0L3QsNC00YLQviDQsdCw0LPQsNGC0L4g0YDQvtC30LTRltC70ZbQsiAoJWQsINC80LDQutGB0LjQvNGD0LwgLSAlZCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQodC40L3RhdGA0L7QvdGW0LfRg9GO0YLRjNGB0Y8g0LTQuNGB0LrQuC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTYKK21zZ2lkICIiCisiVXNhZ2U6XG4iCisiIGZkaXNrIFtvcHRpb25zXSA8ZGlzaz4gICAgY2hhbmdlIHBhcnRpdGlvbiB0YWJsZVxuIgorIiBmZGlzayBbb3B0aW9uc10gLWwgPGRpc2s+IGxpc3QgcGFydGl0aW9uIHRhYmxlKHMpXG4iCisiIGZkaXNrIC1zIDxwYXJ0aXRpb24+ICAgICAgZ2l2ZSBwYXJ0aXRpb24gc2l6ZShzKSBpbiBibG9ja3NcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtYiA8c2l6ZT4gICAgICAgICAgICAgICAgIHNlY3RvciBzaXplICg1MTIsIDEwMjQsIDIwNDggb3IgNDA5NilcbiIKKyIgLWMgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggb2ZmIERPUy1jb21wYXRpYmxlIG1vZGVcbiIKKyIgLWggICAgICAgICAgICAgICAgICAgICAgICBwcmludCBoZWxwXG4iCisiIC11IDxzaXplPiAgICAgICAgICAgICAgICAgZ2l2ZSBzaXplcyBpbiBzZWN0b3JzIGluc3RlYWQgb2YgY3lsaW5kZXJzXG4iCisiIC12ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgdmVyc2lvblxuIgorIiAtQyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBjeWxpbmRlcnNcbiIKKyIgLUggPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgaGVhZHNcbiIKKyIgLVMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgdHJhY2tcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlc1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gcmVhZCAlc1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L/RgNC+0YfQuNGC0LDRgtC4ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZWVrIG9uICVzXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQv9C10YDQtdC50YLQuCDQvdCwICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSAlc1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQsNC/0LjRgdCw0YLQuCAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlc1xuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCBCTEtHRVRTSVpFIGlvY3RsINC90LAgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTRltC70LjRgtC4INC00L7QtNCw0YLQutC+0LLRgyDQv9Cw0Lwn0Y/RgtGMXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk2Cittc2dpZCAiRmF0YWwgZXJyb3JcbiIKK21zZ3N0ciAi0KTQsNGC0LDQu9GM0L3QsCDQv9C+0LzQuNC70LrQsFxuIgorCisjOiBmZGlzay9mZGlzay5jOjM5NQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSByZWFkIG9ubHkgZmxhZyIKK21zZ3N0ciAiICAgYSAgINC/0LXRgNC10LzQuNC60L3Rg9GC0Lgg0L7Qt9C90LDQutGDINC70LjRiNC1LdC00LvRjy3Rh9C40YLQsNC90L3RjyIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIgICBiICAg0YDQtdC00LDQs9GD0LLQsNGC0LggYnNkINC10YLQuNC60LXRgtC60YMg0LTQuNGB0LrRgyIKKworIzogZmRpc2svZmRpc2suYzozOTcKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBtb3VudGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYyAgINC/0LXRgNC10LzQuNC60L3Rg9GC0Lgg0L7Qt9C90LDQutGDINC80L7QvdGC0YPQstCw0L3QvdGPIgorCisjOiBmZGlzay9mZGlzay5jOjM5OCBmZGlzay9mZGlzay5jOjQxNyBmZGlzay9mZGlzay5jOjQ0MgorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGQgICDQstC40LTQsNC70LjRgtC4INGA0L7Qt9C00ZbQuyIKKworIzogZmRpc2svZmRpc2suYzozOTkgZmRpc2svZmRpc2suYzo0MTggZmRpc2svZmRpc2suYzo0NDMKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgIGwgICDQv9C10YDQtdC70ZbQuiDQstGW0LTQvtC80LjRhSDRgtC40L/RltCyINGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICDQtNC+0LTQsNGC0Lgg0L3QvtCy0LjQuSDQv9GA0LjRgdGC0YDRltC5IgorCisjOiBmZGlzay9mZGlzay5jOjQwMiBmZGlzay9mZGlzay5jOjQyMSBmZGlzay9mZGlzay5jOjQzMyBmZGlzay9mZGlzay5jOjQ0NgorbXNnaWQgIiAgIG8gICBjcmVhdGUgYSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgbyAgINGB0YLQstC+0YDQuNGC0Lgg0L3QvtCy0YMg0L/QvtGA0L7QttC90Y4gRE9TINGC0LDQsdC70LjRhtGOINGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorbXNnaWQgIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAg0LLQuNCy0LXRgdGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsiIKKworIzogZmRpc2svZmRpc2suYzo0MDUgZmRpc2svZmRpc2suYzo0MjQgZmRpc2svZmRpc2suYzo0MzUgZmRpc2svZmRpc2suYzo0NDkKK21zZ2lkICIgICBzICAgY3JlYXRlIGEgbmV3IGVtcHR5IFN1biBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICDRgdGC0LLQvtGA0LjRgtC4INC90L7QstGDINC/0L7RgNC+0LbQvdGOIFN1biDQtdGC0LjQutC10YLQutGDINC00LjRgdC60YMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA2IGZkaXNrL2ZkaXNrLmM6NDI1IGZkaXNrL2ZkaXNrLmM6NDUwCittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIHN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgINC30LzRltC90LjRgtC4INGB0LjRgdGC0LXQvNC90LjQuSDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgCDRgNC+0LfQtNGW0LvRgyIKKworIzogZmRpc2svZmRpc2suYzo0MDcgZmRpc2svZmRpc2suYzo0MjYgZmRpc2svZmRpc2suYzo0NTEKK21zZ2lkICIgICB1ICAgY2hhbmdlIGRpc3BsYXkvZW50cnkgdW5pdHMiCittc2dzdHIgIiAgIHUgICDQt9C80ZbQvdC40YLQuCDQvtC00LjQvdC40YbRliDQstGW0LTQvtCx0YDQsNC20LXQvdC90Y8v0LLQstC+0LTRgyIKKworIzogZmRpc2svZmRpc2suYzo0MDggZmRpc2svZmRpc2suYzo0MjcgZmRpc2svZmRpc2suYzo0NTIgZmRpc2svZmRpc2suYzo0NzQKKyM6IGZkaXNrL2ZkaXNrLmM6NDkxIGZkaXNrL2ZkaXNrLmM6NTA3IGZkaXNrL2ZkaXNrLmM6NTI1Cittc2dpZCAiICAgdiAgIHZlcmlmeSB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICB2ICAg0L/QtdGA0LXQstGW0YDQuNGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsiIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiAgIHcgICDQt9Cw0L/QuNGB0LDRgtC4INGC0LDQsdC70LjRhtGOINC90LAg0LTQuNGB0Log0YLQsCDQstC40LnRgtC4IgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIgICB4ICAg0LTQvtC00LDRgtC60L7QstCwINGE0YPQvdC60YbRltC+0L3QsNC70YzQvdGW0YHRgtGMICjQtNC70Y8g0YTQsNGF0ZbQstGG0ZbQsikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0Cittc2dpZCAiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGEgICDQstC40LHRgNCw0YLQuCDQt9Cw0LLQsNC90YLQsNC20YPQstCw0LvRjNC90LjQuSDRgNC+0LfQtNGW0LsiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE1Cittc2dpZCAiICAgYiAgIGVkaXQgYm9vdGZpbGUgZW50cnkiCittc2dzdHIgIiAgIGIgICDRgNC10LTQsNCz0YPQstCw0YLQuCDQtdC70LXQvNC10L3RgiDQt9Cw0LLQsNC90YLQsNC20YPQstCw0LvRjNC90L7Qs9C+INGE0LDQudC70YMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE2Cittc2dpZCAiICAgYyAgIHNlbGVjdCBzZ2kgc3dhcCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGMgICDQstC40LHRgNCw0YLQuCBzZ2kg0YDQvtC30LTRltC7INC/0ZbQtNC60LDRh9C60LgiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDM5Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIGJvb3RhYmxlIGZsYWciCittc2dzdHIgIiAgIGEgICDQv9C10YDQtdC80LjQutC90YPRgtC4INC+0LfQvdCw0LrRgyDQt9Cw0LLQsNC90YLQsNC20LXQvdC90Y8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiICAgYyAgINC/0LXRgNC10LzQuNC60L3Rg9GC0Lgg0L7Qt9C90LDQutGDINGB0YPQvNGW0YHQvdC+0YHRgtGWINC3IGRvcyIKKworIzogZmRpc2svZmRpc2suYzo0NjIKK21zZ2lkICIgICBhICAgY2hhbmdlIG51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICIgICBhICAg0LfQvNGW0L3QuNGC0Lgg0LrRltC70YzQutGW0YHRgtGMINC30LDQv9Cw0YHQvdC40YUg0YbQuNC70ZbQvdC00YDRltCyIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiICAgYyAgINC30LzRltC90LjRgtC4INC60ZbQu9GM0LrRltGB0YLRjCDRhtC40LvRltC90LTRgNGW0LIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY0IGZkaXNrL2ZkaXNrLmM6NDgyIGZkaXNrL2ZkaXNrLmM6NDk4IGZkaXNrL2ZkaXNrLmM6NTE0Cittc2dpZCAiICAgZCAgIHByaW50IHRoZSByYXcgZGF0YSBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBkICAg0LLQuNCy0LXRgdGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsiDRgyDQvdC1INGE0L7RgNC80LDRgtC+0LLQsNC90L7QvNGDINCy0LjQs9C70Y/QtNGWIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICDQt9C80ZbQvdC40YLQuCDQutGW0LvRjNC60ZbRgdGC0Ywg0LTQvtC00LDRgtC60L7QstC40YUg0YHQtdC60YLQvtGA0ZbQsiDQvdCwINGG0LjQu9GW0L3QtNGAIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NiBmZGlzay9mZGlzay5jOjQ4NSBmZGlzay9mZGlzay5jOjUwMSBmZGlzay9mZGlzay5jOjUxOAorbXNnaWQgIiAgIGggICBjaGFuZ2UgbnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICIgICBoICAg0LfQvNGW0L3QuNGC0Lgg0LrRltC70YzQutGW0YHRgtGMINCz0L7Qu9C+0LLQvtC6IgorCisjOiBmZGlzay9mZGlzay5jOjQ2NworbXNnaWQgIiAgIGkgICBjaGFuZ2UgaW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiAgIGkgICDQt9C80ZbQvdC40YLQuCDRhNCw0LrRgtC+0YAg0YfQtdGA0LPRg9Cy0LDQvdC90Y8iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY4Cittc2dpZCAiICAgbyAgIGNoYW5nZSByb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiICAgbyAgINC30LzRltC90LjRgtC4INGI0LLQuNC00LrRltGB0YLRjCDQvtCx0LXRgNGC0LDQvdC90Y8gKHJwbSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDczIGZkaXNrL2ZkaXNrLmM6NDkwIGZkaXNrL2ZkaXNrLmM6NTA2IGZkaXNrL2ZkaXNrLmM6NTI0Cittc2dpZCAiICAgcyAgIGNoYW5nZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjayIKK21zZ3N0ciAiICAgcyAgINC30LzRltC90LjRgtC4INC60ZbQu9GM0LrRltGB0YLRjCDRgdC10LrRgtC+0YDRltCyL9C00L7RgNGW0LbQutGDIgorCisjOiBmZGlzay9mZGlzay5jOjQ3NgorbXNnaWQgIiAgIHkgICBjaGFuZ2UgbnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIKK21zZ3N0ciAiICAgeSAgINC30LzRltC90LjRgtC4INC60ZbQu9GM0LrRltGB0YLRjCDRhNGW0LfQuNGH0L3QuNGFINGG0LjQu9GW0L3QtNGA0ZbQsiIKKworIzogZmRpc2svZmRpc2suYzo0ODAgZmRpc2svZmRpc2suYzo0OTYgZmRpc2svZmRpc2suYzo1MTIKK21zZ2lkICIgICBiICAgbW92ZSBiZWdpbm5pbmcgb2YgZGF0YSBpbiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgYiAgINC/0LXRgNC10LzRltGB0YLQuNGC0Lgg0L/QvtGH0LDRgtC+0Log0LTQsNC90LjRhSDRgNC+0LfQtNGW0LvRgyIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKK21zZ2lkICIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIgICBlICAg0LLQuNCy0LXRgdGC0Lgg0YHQv9C40YHQvtC6INGA0L7Qt9GI0LjRgNC10L3QuNGFINGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDg0IGZkaXNrL2ZkaXNrLmM6NTAwIGZkaXNrL2ZkaXNrLmM6NTE3Cittc2dpZCAiICAgZyAgIGNyZWF0ZSBhbiBJUklYIChTR0kpIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZyAgINGB0YLQstC+0YDQuNGC0LggSVJJWCAoU0dJKSDRgtCw0LHQu9C40YbRjiDRgNC+0LfQtNGW0LvRltCyIgorCisjOiBmZGlzay9mZGlzay5jOjUxNgorbXNnaWQgIiAgIGYgICBmaXggcGFydGl0aW9uIG9yZGVyIgorbXNnc3RyICIgICBmICAg0LLQuNC/0YDQsNCy0LjRgtC4INC/0L7RgNGP0LTQvtC6INGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5CisjLCBmdXp6eQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgdSAgINC30LzRltC90LjRgtC4INC+0LTQuNC90LjRhtGWINCy0ZbQtNC+0LHRgNCw0LbQtdC90L3Rjy/QstCy0L7QtNGDIgorCisjOiBmZGlzay9mZGlzay5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBzZXQiCittc2dzdHIgItCd0LXQvtCx0YXRltC00L3QviDQstGB0YLQsNC90L7QstC40YLQuCIKKworIzogZmRpc2svZmRpc2suYzo3MzYKK21zZ2lkICJoZWFkcyIKK21zZ3N0ciAi0LPQvtC70L7QstC60LgiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM4IGZkaXNrL2ZkaXNrLmM6MTU5MiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJzZWN0b3JzIgorbXNnc3RyICLRgdC10LrRgtC+0YDQuCIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisiJXMlcy5cbiIKKyLQktC4INC80L7QttC10YLQtSDQt9GA0L7QsdC40YLQuCDRhtC1INC3INC80LXQvdGOINC00L7QtNCw0YLQutC+0LLQuNGFINGE0YPQvdC60YbRltC5LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjc0NQorbXNnaWQgIiBhbmQgIgorbXNnc3RyICIg0YLQsCAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvXG4iCisiICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvXG4iCisiICAgICAgICAgc2VjdG9ycyAoY29tbWFuZCAndScpLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBjeWxpbmRlcnMgYXMgZGlzcGxheSB1bml0cyBhcmUgZGVwcmVjYXRlZC4gVXNlIGNvbW1hbmQgJ3UnIHRvXG4iCisiICAgICAgICAgY2hhbmdlIHVuaXRzIHRvIHNlY3RvcnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG9mZnNldCBpbiBwcmltYXJ5IGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70YzQvdC40Lkg0LfRgdGD0LIg0YMg0LPQvtC70L7QstC90L7QvNGDINGA0L7Qt9GI0LjRgNC10L3QvtC80YMg0YDQvtC30LTRltC70ZZcbiIKKworIzogZmRpc2svZmRpc2suYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IG9taXR0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgIyVkLlxuIgorIlRoZXkgd2lsbCBiZSBkZWxldGVkIGlmIHlvdSBzYXZlIHRoaXMgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICIiCisi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDRgNC+0LfQtNGW0LvQuCDQv9GW0YHQu9GPICMlZCDQv9GA0L7Qv9GD0YHQutCw0Y7RgtGM0YHRjy5cbiIKKyLQktC+0L3QuCDQsdGD0LTRg9GC0Ywg0LLQuNC00LDQu9C10L3Rliwg0Y/QutGJ0L4g0LLQuCDQt9Cx0LXRgNC10LbQtdGC0LUg0YbRjiDRgtCw0LHQu9C40YbRjiDRgNC+0LfQtNGW0LvRltCyLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBleHRyYSBsaW5rIHBvaW50ZXIgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0LTQvtC00LDRgtC60L7QstC40Lkg0LLQutCw0LfRltCy0L3QuNC6INGDINGC0LDQsdC70LjRhtGWINGA0L7Qt9C00ZbQu9GW0LIgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaWdub3JpbmcgZXh0cmEgZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDQtNC+0LTQsNGC0LrQvtCy0ZYg0LTQsNC90ZYg0YMg0YLQsNCx0LvQuNGG0ZYg0YDQvtC30LTRltC70ZbQsiDQv9GA0L7RltCz0L3QvtGA0L7QstCw0L3QviAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjg5MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib21pdHRpbmcgZW1wdHkgcGFydGl0aW9uICglZClcbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDQv9C+0YDQvtC20L3RltC5INGA0L7Qt9C00ZbQu1xuIgorCisjOiBmZGlzay9mZGlzay5jOjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGlkZW50aWZpZXI6IDB4JTA4eFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBkaXNrIGlkZW50aWZpZXIgKGN1cnJlbnQgMHglMDh4KTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTQwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgRE9TIGRpc2tsYWJlbCB3aXRoIGRpc2sgaWRlbnRpZmllciAweCUwOHguXG4iCisiQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLlxuIgorIkFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyLQodGC0LLQvtGA0Y7RlNGC0YzRgdGPINC90L7QstCwINC10YLQuNC60LXRgtC60LAgRE9TINGA0L7Qt9C00ZbQu9GDLiDQl9C80ZbQvdC4INC30LDQu9C40YjQsNGC0LjQvNGD0YLRjNGB0Y8g0YMg0L/QsNC8J9GP0YLRlixcbiIKKyLQtNC+0LrQuCDQstC4INC90LUg0LLQuNGA0ZbRiNC40YLQtSDRl9GFINC30LDQv9C40YHQsNGC0LguINCf0ZbRgdC70Y8g0YfQvtCz0L4sINC30LLQuNGH0LDQudC90L4sINC/0L7Qv9C10YDQtdC00L3RltC5INCy0LzRltGB0YJcbiIKKyLQsdGD0LTQtSDQstGC0YDQsNGH0LXQvdC+LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90ZTogc2VjdG9yIHNpemUgaXMgJWQgKG5vdCAlZClcbiIKK21zZ3N0ciAi0J/RgNC40LzRltGC0LrQsDog0YDQvtC30LzRltGAINGB0LXQutGC0L7RgNGDICVkICjQvdC1ICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgbm90IGJlIGFibGUgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAi0JLQuCDQvdC1INC30LzQvtC20LXRgtC1INC30LDQv9C40YHQsNGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKyLQptC10Lkg0LTQuNGB0Log0LzQsNGUINGP0LogRE9TINGB0LjQs9C90LDRgtGD0YDRgywg0YLQsNC6INGWIEJTRC5cbiIKKyLQlNCw0LnRgtC1INC60L7QvNCw0L3QtNGDICdiJywg0YnQvtCxINC/0LXRgNC10LnRgtC4INGDIEJTRCDRgNC10LbQuNC8LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldmljZSBjb250YWlucyBuZWl0aGVyIGEgdmFsaWQgRE9TIHBhcnRpdGlvbiB0YWJsZSwgbm9yIFN1biwgU0dJIG9yIE9TRiAiCisiZGlza2xhYmVsXG4iCittc2dzdHIgIiIKKyLQn9GA0LjRgdGC0YDRltC5INC90LUg0LzRltGB0YLQuNGC0Ywg0LDQvdGWINC/0YDQsNCy0LjQu9GM0L3QvtGXIERPUyDRgtCw0LHQu9C40YbRliDRgNC+0LfQtNGW0LvRltCyLCDQsNC90ZYgU3VuLCBTR0kg0YfQuCBPU0YgIgorItC10YLQuNC60LXRgtC60Lgg0LTQuNGB0LrRg1xuIgorCisjOiBmZGlzay9mZGlzay5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW50ZXJuYWwgZXJyb3JcbiIKK21zZ3N0ciAi0JLQvdGD0YLRgNGW0YjQvdGPINC/0L7QvNC40LvQutCwXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI4MworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmluZyBleHRyYSBleHRlbmRlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAi0JTQvtC00LDRgtC60L7QstGWINGA0L7Qt9GI0LjRgNC10L3RliDRgNC+0LfQtNGW0LvQuCDRltCz0L3QvtGA0YPRjtGC0YzRgdGPICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogaW52YWxpZCBmbGFnIDB4JTA0eCBvZiBwYXJ0aXRpb24gdGFibGUgJWQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyIKKyIocml0ZSlcbiIKK21zZ3N0ciAiIgorItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0L3QtdC/0YDQsNCy0LjQu9GM0L3QsCDQvtC30L3QsNC60LAgMHglMDR4INGC0LDQsdC70LjRhtGWINGA0L7Qt9C00ZbQu9GW0LIgJWQg0LHRg9C00LUg0LLQuNC/0YDQsNCy0LvQtdC90LAgIgorItC/0YDQuCB3KNC30LDQv9C40YHRgylcbiIKKworIzogZmRpc2svZmRpc2suYzoxMzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJnb3QgRU9GIHRocmljZSAtIGV4aXRpbmcuLlxuIgorbXNnc3RyICIiCisiXG4iCisi0YLRgNC40YfRliDQvtGC0YDQuNC80LDQvdC+IEVPRiAtINC30LDQstC10YDRiNC10L3QvdGPLi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMzYwCittc2dpZCAiSGV4IGNvZGUgKHR5cGUgTCB0byBsaXN0IGNvZGVzKTogIgorbXNnc3RyICLQqNGW0YHRgtC90LDQtNGG0Y/RgtC60L7QstC40Lkg0LrQvtC0ICjQvdCw0LHQtdGA0ZbRgtGMIEwg0YnQvtCxINC/0LXRgNC10LPQu9GP0L3Rg9GC0Lgg0L/QtdGA0LXQu9GW0Log0LrQvtC00ZbQsikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXUtJXUsIGRlZmF1bHQgJXUpOiAiCittc2dzdHIgIiVzICgldS0ldSwg0YLQuNC/0L7QstC+ICV1KTogIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgc3VmZml4OiAnJXMnLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VwcG9ydGVkOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaUJ5dGUpLCBNICAoTWViaUJ5dGUpLCBHICAoR2liaUJ5dGUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGRlZmF1bHQgdmFsdWUgJXVcbiIKK21zZ3N0ciAi0JLQuNC60L7RgNC40YHRgtC+0LLRg9GU0YLRjNGB0Y8g0YLQuNC/0L7QstC1INC30L3QsNGH0LXQvdC90Y8gJXVcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlZhbHVlIG91dCBvZiByYW5nZS5cbiIKK21zZ3N0ciAi0JfQvdCw0YfQtdC90L3RjyDQt9CwINC80LXQttCw0LzQuCDQtNGW0LDQv9Cw0LfQvtC90YMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgItCd0L7QvNC10YAg0YDQvtC30LTRltC70YMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaGFzIGVtcHR5IHR5cGVcbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDRgNC+0LfQtNGW0LsgJWQg0LzQsNGUINC/0L7RgNC+0LbQvdGUINC/0L7Qu9C1INGC0LjQv9GDXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1MSBmZGlzay9mZGlzay5jOjE1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VsZWN0ZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgItCS0LjQsdGA0LDQvdC40Lkg0YDQvtC30LTRltC7ICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1NAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBwYXJ0aXRpb24gaXMgZGVmaW5lZCB5ZXQhXG4iCittc2dzdHIgItCp0LUg0L3QtSDQstC40LfQvdCw0YfQtdC90L4g0LbQvtC00L3QvtCz0L4g0YDQvtC30LTRltC70YMhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgcHJpbWFyeSBwYXJ0aXRpb25zIGhhdmUgYmVlbiBkZWZpbmVkIGFscmVhZHkhXG4iCittc2dzdHIgItCS0YHRliDQv9C10YDQstC40L3QvdGWINGA0L7Qt9C00ZbQu9C4INCy0LbQtSDQsdGD0LvQuCDQstC40LfQvdCw0YfQtdC90ZYhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgImN5bGluZGVyIgorbXNnc3RyICLRhtC40LvRltC90LTRgCIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICLRgdC10LrRgtC+0YAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgItCX0LzRltC90Y7RjtGC0YzRgdGPINC+0LTQuNC90LjRhtGWINCy0ZbQtNC+0LHRgNCw0LbQtdC90L3Rjy/QstCy0L7QtNGDINC90LAgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAi0KPQktCQ0JPQkDog0KDQvtC30LTRltC7ICVkINGUINGA0L7Qt9GI0LjRgNC10L3QuNC8INGA0L7Qt9C00ZbQu9C+0LxcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgc2V0XG4iCittc2dzdHIgItCe0LfQvdCw0LrRgyDRgdGD0LzRltGB0L3QvtGB0YLRliDQtyBET1Mg0LLRgdGC0LDQvdC+0LLQu9C10L3QvlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBub3Qgc2V0XG4iCittc2dzdHIgItCe0LfQvdCw0LrRgyDRgdGD0LzRltGB0L3QvtGB0YLRliDQtyBET1Mg0L3QtSDQstGB0YLQsNC90L7QstC70LXQvdC+XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyMworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICLQoNC+0LfQtNGW0LsgJWQg0YnQtSDQvdC1INGW0YHQvdGD0ZQhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisi0J3QsCDQsdCw0LPQsNGC0YzQvtGFINGB0LjRgdGC0LXQvNCw0YUg0YLQuNC/IDAg0L7Qt9C90LDRh9Cw0ZQg0LLRltC70YzQvdC40Lkg0L/RgNC+0YHRgtGW0YBcbiIKKyIo0LDQu9C1INC90LUg0L3QsCBMaW51eCkuINCc0LDRgtC4INGA0L7Qt9C00ZbQu9C4INC3INGC0LjQv9C+0LwgMCwgXG4iCisi0LzQvtC20LvQuNCy0L4sINC90LXRgNC+0LfRgdGD0LTQu9C40LLQvi4g0JLQuCDQvNC+0LbQtdGC0LUg0LLQuNC00LDQu9C40YLQuFxuIgorItGA0L7Qt9C00ZbQuyDQstC40LrQvtGA0LjRgdGC0L7QstGD0Y7Rh9C4INC60L7QvNCw0L3QtNGDIGBkJy5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgY2Fubm90IGNoYW5nZSBhIHBhcnRpdGlvbiBpbnRvIGFuIGV4dGVuZGVkIG9uZSBvciB2aWNlIHZlcnNhXG4iCisiRGVsZXRlIGl0IGZpcnN0LlxuIgorbXNnc3RyICIiCisi0J3QtSDQvNC+0LbQvdCwINC/0LXRgNC10YLQstC+0YDRjtCy0LDRgtC4INC/0LXRgNCy0LjQvdC90LjQuSDRgNC+0LfQtNGW0Lsg0YMg0YDQvtC30YjQuNGA0LXQvdC40LksINCw0LHQviDQvdCw0LLQv9Cw0LrQuFxuIgorItCh0L/QvtGH0LDRgtC60YMg0LLQuNC00LDQu9GW0YLRjCDQudC+0LPQvi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiAzIGFzIFdob2xlIGRpc2sgKDUpLFxuIgorImFzIFN1bk9TL1NvbGFyaXMgZXhwZWN0cyBpdCBhbmQgZXZlbiBMaW51eCBsaWtlcyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorItCe0LHQvNGW0YDQutGD0LnRgtC1INCy0LDRgNGW0LDQvdGCINGA0L7Qt9GC0LDRiNGD0LLQsNC90L3RjyDRgNC+0LfQtNGW0LvRgyAzINC90LAg0LLQtdGB0Ywg0LTQuNC6ICg1KSxcbiIKKyLRgtC+0LzRgyDRidC+INC90LAg0YbQtSDQv9C+0LrQu9Cw0LTQsNGO0YLRjNGB0Y8gU3VuT1MvU29sYXJpcywg0YLQsCBMaW51eCDRgtCw0LrQvtC2INGG0LUg0YHQv9GA0LjQudC80LDRlC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gOSBhcyB2b2x1bWUgaGVhZGVyICgwKSxcbiIKKyJhbmQgcGFydGl0aW9uIDExIGFzIGVudGlyZSB2b2x1bWUgKDYpLCBhcyBJUklYIGV4cGVjdHMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKyLQntCx0LzRltGA0LrRg9C50YLQtSDRgNC+0LfRgtCw0YjRg9Cy0LDQvdC90Y8g0YDQvtC30LTRltC70YMgOSDRj9C6INC30LDQs9C+0LvQvtCy0LrRgyDRgtC+0LzRgyAoMCksXG4iCisi0YLQsCDRgNC+0LfQtNGW0LvRgyAxMSDQvdCwINCy0LXRgdGMINGC0L7QvCAoNiksINGC0L7QvNGDINGJ0L4gSVJJWCDQvdCwINGG0LUg0L/QvtC60LvQsNC00LDRlNGC0YzRgdGPLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICLQl9C80ZbQvdC10L3QviDRgtC40L8g0YHQuNGB0YLQtdC80Lgg0YDQvtC30LTRltC70YMgJWQg0L3QsCAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICLQl9C80ZbQvdC10L3QviDRgtC40L8g0YHQuNGB0YLQtdC80Lgg0YDQvtC30LTRltC70YMgJWQg0L3QsCAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyNworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGJlZ2lubmluZ3MgKG5vbi1MaW51eD8pOlxuIgorbXNnc3RyICLQoyDRgNC+0LfQtNGW0LvRgyAlZCDQstGW0LTRgNGW0LfQvdGP0Y7RgtGM0YHRjyDRhNGW0LfQuNGH0L3QuNC5INGC0LAg0LvQvtCz0ZbRh9C90LjQuSDQv9C+0YfQsNGC0L7QuiAo0L3QtS1MaW51eD8pOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4MjkgZmRpc2svZmRpc2suYzoxODM3IGZkaXNrL2ZkaXNrLmM6MTg0NiBmZGlzay9mZGlzay5jOjE4NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICBwaHlzPSglZCwgJWQsICVkKSAiCittc2dzdHIgIiAgICAg0YTRltC3PSglZCwgJWQsICVkKSAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzMCBmZGlzay9mZGlzay5jOjE4MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naWNhbD0oJWQsICVkLCAlZClcbiIKK21zZ3N0ciAi0LvQvtCz0ZbRh9C90LjQuT0oJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAi0KMg0YDQvtC30LTRltC70YMgJWQg0LLRltC00YDRltC30L3Rj9GO0YLRjNGB0Y8g0YTRltC30LjRh9C90LjQuSDRgtCwINC70L7Qs9GW0YfQvdC40Lkg0LrRltC90YbRljpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeTpcbiIKK21zZ3N0ciAi0KDQvtC30LTRltC7ICVpINC90LUg0L/QvtGH0LjQvdCw0ZTRgtGM0YHRjyDQvdCwINC80LXQttGWINGG0LjQu9GW0L3QtNGA0YM6XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgMSlcbiIKK21zZ3N0ciAi0L/QvtCy0LjQvdC90L4g0LHRg9GC0LggKCVkLCAlZCwgMSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgItCg0L7Qt9C00ZbQuyAlaSDQvdC1INC30LDQutGW0L3Rh9GD0ZTRgtGM0YHRjyDQvdCwINC80LXQttGWINGG0LjQu9GW0L3QtNGA0YMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgJWQpXG4iCittc2dzdHIgItC/0L7QstC40L3QvdC+INCx0YPRgtC4ICglZCwgJWQsICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgItCg0L7Qt9C00ZbQuyAlaSDQvdC1INC/0L7Rh9C40L3QsNGU0YLRjNGB0Y8g0L3QsCDQvNC10LbRliDRhtC40LvRltC90LTRgNGDOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisi0JTQuNGB0LogJXM6ICVsZCDQnNCxLCAlbGxkINCx0LDQudGCXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisi0JTQuNGB0LogJXM6ICVsZC4lbGQg0JPQsSwgJWxsZCDQsdCw0LnRglxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVkIGhlYWRzLCAlbGx1IHNlY3RvcnMvdHJhY2ssICVkIGN5bGluZGVycyIKK21zZ3N0ciAiJWQg0LPQvtC70L7QstC+0LosICVkINGB0LXQutGC0L7RgNGW0LIv0LTQvtGA0ZbQttC60YMsICVkINGG0LjQu9GW0L3QtNGA0ZbQsiIKKworIzogZmRpc2svZmRpc2suYzoxODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgdG90YWwgJWxsdSBzZWN0b3JzIgorbXNnc3RyICIsINC30LDQs9Cw0LvQvtC8ICVsbHUg0YHQtdC60YLQvtGA0ZbQsiIKKworIzogZmRpc2svZmRpc2suYzoxODkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVbml0cyA9ICVzIG9mICVkICogJWQgPSAlZCBieXRlc1xuIgorbXNnc3RyICIiCisi0J7QtNC40L3QuNGG0ZYg0LLQuNC80ZbRgNGDID0gJXMg0LcgJWQgKiAlZCA9ICVkINCx0LDQudGCXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6ICV1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiAlbHUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICLQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YDQvtC30LzRltGAINCy0YPQt9C70LAiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuIgorIlxuIgorbXNnc3RyICIiCisi0J3QtdC80LDRlCDRidC+INGA0L7QsdC40YLQuC4g0J/QvtGA0Y/QtNC+0Log0LLQttC1INC60L7RgNC10LrRgtC90LjQuS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEb25lLlxuIgorbXNnc3RyICIiCisi0JLQuNC60L7QvdCw0L3QvlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZG9lc24ndCBsb29rIGxpa2UgYSBwYXJ0aXRpb24gdGFibGVcbiIKKyJQcm9iYWJseSB5b3Ugc2VsZWN0ZWQgdGhlIHdyb25nIGRldmljZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorItCd0LUg0YHRhdC+0LbQtSDQvdCwINGC0LDQsdC70LjRhtGOINGA0L7Qt9C00ZbQu9GW0LJcbiIKKyLQnNC+0LbQu9C40LLQviDQstC4INCy0LjQsdGA0LDQu9C4INC90LXQv9GA0LDQstC40LvRjNC90LjQuSDQv9GA0LjRgdGC0YDRltC5LlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEJvb3QgICAgICBTdGFydCAgICAgICAgIEVuZCAgICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiJSpzINCX0LDQstCw0L3RgiAg0J/QvtGH0LDRgtC+0LogICAgINCa0ZbQvdC10YbRjCAgICAg0JHQu9C+0LrRltCyICDQhtC0ICDQodC40YHRgtC10LzQsFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIxMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk4Cittc2dpZCAiRGV2aWNlIgorbXNnc3RyICLQn9GA0LjRgdGC0YDRltC5IgorCisjOiBmZGlzay9mZGlzay5jOjIxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIgorbXNnc3RyICIiCisiXG4iCisi0JXQu9C10LzQtdC90YLQuCDRgtCw0LHQu9C40YbRliDRgNC+0LfQtNGW0LvRltCyINC90LUg0YMg0YLQvtC80YMg0L/QvtGA0Y/QtNC60YMsINGP0Log0L3QsCDQtNC40YHQutGDXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi0JTQuNGB0LogJXM6ICVkINCz0L7Qu9C+0LLQvtC6LCAlZCDRgdC10LrRgtC+0YDRltCyLCAlZCDRhtC40LvRltC90LTRgNGW0LJcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5yIEFGICBIZCBTZWMgIEN5bCAgSGQgU2VjICBDeWwgICAgIFN0YXJ0ICAgICAgU2l6ZSBJRFxuIgorbXNnc3RyICLihJYg0JDQutGCINCT0L7QuyDQodC10Log0KbQuNC7INCT0L7QuyDQodC10LogINCm0LjQuyAg0J/QvtGH0LDRgtC+0LogICDQoNC+0LfQvNGW0YAg0IbQtFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0YDQvtC30LTRltC7ICVkINC80ZbRgdGC0LjRgtGMINC90YPQu9GM0L7QstC40Lkg0YHQtdC60YLQvtGAXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IGhlYWQgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAi0KDQvtC30LTRltC7ICVkOiDQs9C+0LvQvtCy0LrQsCAlZCDQv9C10YDQtdCy0LjRidGD0ZQg0LzQsNC60YHQuNC80YPQvCAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogc2VjdG9yICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAi0KDQvtC30LTRltC7ICVkOiDRgdC10LrRgtC+0YAgJWQg0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNGD0LwgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbnMgJWQ6IGN5bGluZGVyICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgItCg0L7Qt9C00ZbQuyAlZDog0YbQuNC70ZbQvdC00YAgJWQg0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNGD0LwgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogcHJldmlvdXMgc2VjdG9ycyAlZCBkaXNhZ3JlZXMgd2l0aCB0b3RhbCAlZFxuIgorbXNnc3RyICIiCisi0KDQvtC30LTRltC7ICVkOiDQutGW0LvRjNC60ZbRgdGC0Ywg0L/QvtC/0LXRgNC10LTQvdGW0YUg0YHQtdC60YLQvtGA0ZbQsiAlZCDQstGW0LTRgNGW0LfQvdGP0ZTRgtGM0YHRjyDQstGW0LQg0LfQsNCz0LDQu9GM0L3QvtGXICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDQvdC10L/RgNCw0LLQuNC70YzQvdCwINC+0LHQu9Cw0YHRgtGMINC/0L7Rh9Cw0YLQutGDINC00LDQvdC40YUg0YMg0YDQvtC30LTRltC70ZYgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBvdmVybGFwcyBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0YDQvtC30LTRltC7ICVkINC/0LXRgNC10LrRgNC40LLQsNGU0YLRjNGB0Y8g0Lcg0YDQvtC30LTRltC70L7QvCAlZC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyMjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBpcyBlbXB0eVxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INGA0L7Qt9C00ZbQuyAlZCDQv9C+0YDQvtC20L3RltC5XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1NgorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgItCb0L7Qs9GW0YfQvdC40Lkg0YDQvtC30LTRltC7ICVkINC90LUg0LLQvNGW0YnRg9GU0YLRjNGB0Y8g0YbRltC70LrQvtC8INGDINGA0L7Qt9C00ZbQuyAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlRvdGFsIGFsbG9jYXRlZCBzZWN0b3JzICVsbHUgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAi0JfQsNCz0LDQu9GM0L3QsCDQutGW0LvRjNC60ZbRgdGC0Ywg0YDQvtC30L/QvtC00ZbQu9C10L3QuNGFINGB0LXQutGC0L7RgNGW0LIgJWQg0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNGD0LwgJWxsZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlJlbWFpbmluZyAlbGxkIHVuYWxsb2NhdGVkICVkLWJ5dGUgc2VjdG9yc1xuIgorbXNnc3RyICIlbGxkINC90LXRgNC+0LfQv9C+0LTRltC70LXQvdC40YUg0YHQtdC60YLQvtGA0ZbQslxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzMDEgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDExCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBpcyBhbHJlYWR5IGRlZmluZWQuICBEZWxldGUgaXQgYmVmb3JlIHJlLWFkZGluZyBpdC5cbiIKK21zZ3N0ciAi0KDQvtC30LTRltC7ICVkINCy0LbQtSDQstC40LfQvdCw0YfQtdC90LjQuS4gINCS0LjQtNCw0LvRltGC0Ywg0LnQvtCz0L4g0L/QtdGA0LXQtCDQv9C+0LLRgtC+0YDQvdC40Lwg0LTQvtC00LDQstCw0L3QvdGP0LwuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVsbHUgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAi0KHQtdC60YLQvtGAICVkINCy0LbQtSDRgNC+0LfQv9C+0LTRltC70LXQvdC40LlcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGZyZWUgc2VjdG9ycyBhdmFpbGFibGVcbiIKK21zZ3N0ciAi0J3QtdC80LDRlCDQvdCw0Y/QstC90LjRhSDQstGW0LvRjNC90LjRhSDRgdC10LrRgtC+0YDRltCyXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgQUlYIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKyJcdNCf0YDQvtCx0LDRh9GC0LUgLSDRhtGPINC/0YDQvtCz0YDQsNC80LAgZmRpc2sg0L3QtSDQv9GW0LTRgtGA0LjQvNGD0ZQgQUlYINC10YLQuNC60LXRgtC60Lgg0LTQuNGB0LrRgy5cbiIKKyJcdNCv0LrRidC+INCy0Lgg0LHQsNC20LDRlNGC0LUg0LTQvtC00LDRgtC4IERPUyDRgNC+0LfQtNGW0LvQuCwg0YHRgtCy0L7RgNGW0YLRjCDRgdC/0L7Rh9Cw0YLQutGDINC90L7QstGDXG4iCisiXHRET1Mg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsi4gKNCS0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0LrQvtC80LDQvdC00YMgby4pXG4iCisiXHTQl9CQ0KHQotCV0KDQldCW0JXQndCd0K86INCm0LUg0L/RgNC40LfQstC10LTQtSDQtNC+INC30L3QuNGJ0LXQvdC90Y8g0L/QvtGC0L7Rh9C90L7Qs9C+INCy0LzRltGB0YLRgyDQtNC40YHQutGDLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIE1hYyBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisiXHTQn9GA0L7QsdCw0YfRgtC1IC0g0YbRjyDQv9GA0L7Qs9GA0LDQvNCwIGZkaXNrINC90LUg0L/RltC00YLRgNC40LzRg9GUIEFJWCDQtdGC0LjQutC10YLQutC4INC00LjRgdC60YMuXG4iCisiXHTQr9C60YnQviDQstC4INCx0LDQttCw0ZTRgtC1INC00L7QtNCw0YLQuCBET1Mg0YDQvtC30LTRltC70LgsINGB0YLQstC+0YDRltGC0Ywg0YHQv9C+0YfQsNGC0LrRgyDQvdC+0LLRg1xuIgorIlx0RE9TINGC0LDQsdC70LjRhtGOINGA0L7Qt9C00ZbQu9GW0LIuICjQktC40LrQvtGA0LjRgdGC0L7QstGD0LnRgtC1INC60L7QvNCw0L3QtNGDIG8uKVxuIgorIlx00JfQkNCh0KLQldCg0JXQltCV0J3QndCvOiDQptC1INC/0YDQuNC30LLQtdC00LUg0LTQviDQt9C90LjRidC10L3QvdGPINC/0L7RgtC+0YfQvdC+0LPQviDQstC80ZbRgdGC0YMg0LTQuNGB0LrRgy5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGRlbGV0ZSBzb21lIHBhcnRpdGlvbiBhbmQgYWRkIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBmaXJzdFxuIgorbXNnc3RyICIiCisi0KHQv9C+0YfQsNGC0LrRgyDQvdC10L7QsdGF0ZbQtNC90L4g0LLQuNC00LDQu9C40YLQuCDQtNC10Y/QutC40Lkg0YDQvtC30LTRltC7INGC0LAg0LTQvtC00LDRgtC4INGA0L7Qt9GI0LjRgNC10L3QuNC5INGA0L7Qt9C00ZbQu1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIGxvZ2ljYWwgcGFydGl0aW9ucyBhcmUgaW4gdXNlXG4iCittc2dzdHIgItCj0YHRliDQu9C+0LPRltGH0L3RliDRgNC+0LfQtNGW0LvQuCDQt9Cw0LnQvdGP0YLRllxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWRkaW5nIGEgcHJpbWFyeSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAi0JTQvtC00LDRlNGC0YzRgdGPINC/0LXRgNCy0LjQvdC90LjQuSDRgNC+0LfQtNGW0LtcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKyLQmtC+0LzQsNC90LTQsCDQtNGW0Y9cbiIKKyIgICAlc1xuIgorIiAgIHAgICDQv9C10YDQstC40L3QvdC40Lkg0YDQvtC30LTRltC7ICgxLTQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIgorbXNnc3RyICJsICAg0LvQvtCz0ZbRh9C90LjQuSAoNSDQsNCx0L4g0LHRltC70YzRiNC1KSIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICJlICAg0YDQvtC30YjQuNGA0LXQvdC40LkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70YzQvdC40Lkg0L3QvtC80LXRgCDRgNC+0LfQtNGW0LvRgyDQtNC70Y8g0YLQuNC/0YMgYCVjJ1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBwYXJ0aXRpb24gdGFibGUgaGFzIGJlZW4gYWx0ZXJlZCFcbiIKKyJcbiIKK21zZ3N0ciAiIgorItCi0LDQsdC70LjRhtGPINGA0L7Qt9C00ZbQu9GW0LIg0LHRg9C70LAg0LfQvNGW0L3QtdC90LAhXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgItCS0LjQutC70LjQutCw0ZTRgtGM0YHRjyBpb2N0bCgpLCDRidC+0LEg0L/QtdGA0LXRh9C40YLQsNGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsi5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyJUaGUga2VybmVsIHN0aWxsIHVzZXMgdGhlIG9sZCB0YWJsZS4gVGhlIG5ldyB0YWJsZSB3aWxsIGJlIHVzZWQgYXRcbiIKKyJ0aGUgbmV4dCByZWJvb3Qgb3IgYWZ0ZXIgeW91IHJ1biBwYXJ0cHJvYmUoOCkgb3Iga3BhcnR4KDgpXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQl9CQ0KHQotCV0KDQldCW0JXQndCd0K86INCf0LXRgNC10YfQuNGC0YPQstCw0L3QvdGPINGC0LDQsdC70LjRhtGWINGA0L7Qt9C00ZbQu9GW0LIg0LfQsNCy0LXRgNGI0LjQu9C+0YHRjCDQtyDQv9C+0LzQuNC70LrQvtGOICVkOiAlcy5cbiIKKyLQr9C00YDQviDQtNC+0YHRliDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZQg0YHRgtCw0YDRgyDRgtCw0LHQu9C40YbRjiDRgNC+0LfQtNGW0LvRltCyLlxuIgorItCd0L7QstCwINGC0LDQsdC70LjRhtGPINGA0L7Qt9C00ZbQu9GW0LIg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC40LzQtdGC0YzRgdGPINC/0ZbRgdC70Y8g0L/QtdGA0LXQt9Cw0LLQsNC90YLQsNC20LXQvdC90Y8uXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQl9CQ0KHQotCV0KDQldCW0JXQndCd0K86INCv0LrRidC+INCy0Lgg0YHRgtCy0L7RgNC40LvQuCDQsNCx0L4g0LfQvNGW0L3QuNC70Lgg0LHRg9C00Ywt0Y/QutGWIERPUyA2LnhcbiIKKyLRgNC+0LfQtNGW0LvQuCwg0L/QtdGA0LXQs9C70Y/QvdGM0YLQtSBtYW4t0YHRgtC+0YDRltC90LrRgyDQtyBmZGlzayDQtNC70Y8g0L7RgtGA0LjQvNCw0L3QvdGPINC00L7QtNCw0YLQutC+0LLQvtGXXG4iCisi0ZbQvdGE0L7RgNC80LDRhtGW0ZcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRXJyb3IgY2xvc2luZyBmaWxlXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQn9C+0LzQuNC70LrQsCDQt9Cw0LrRgNC40LLQsNC90L3RjyDRhNCw0LnQu9GDXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICLQodC40L3RhdGA0L7QvdGW0LfQsNGG0ZbRjyDQtNC40YHQutGW0LIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICLQoNC+0LfQtNGW0LsgJWQg0L3QtSDQvNCw0ZQg0L7QsdC70LDRgdGC0ZYg0LTQsNC90LjRhVxuIgorCisjOiBmZGlzay9mZGlzay5jOjI2NTYKK21zZ2lkICJOZXcgYmVnaW5uaW5nIG9mIGRhdGEiCittc2dzdHIgItCd0L7QstC40Lkg0L/QvtGH0LDRgtC+0Log0LTQsNC90LjRhSIKKworIzogZmRpc2svZmRpc2suYzoyNjcyCittc2dpZCAiRXhwZXJ0IGNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgItCa0L7QvNCw0L3QtNC4INC10LrRgdC/0LXRgNGC0L3QvtCz0L4g0YDQtdC20LjQvNGDKG0gLSDQtNC+0LLRltC00LrQsCk6ICIKKworIzogZmRpc2svZmRpc2suYzoyNjg1Cittc2dpZCAiTnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAi0JrRltC70YzQutGW0YHRgtGMINGG0LjQu9GW0L3QtNGA0ZbQsiIKKworIzogZmRpc2svZmRpc2suYzoyNzEwCittc2dpZCAiTnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICLQmtGW0LvRjNC60ZbRgdGC0Ywg0LPQvtC70L7QstC+0LoiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczNworbXNnaWQgIk51bWJlciBvZiBzZWN0b3JzIgorbXNnc3RyICLQmtGW0LvRjNC60ZbRgdGC0Ywg0YHQtdC60YLQvtGA0ZbQsiIKKworIzogZmRpc2svZmRpc2suYzoyNzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHNldHRpbmcgc2VjdG9yIG9mZnNldCBmb3IgRE9TIGNvbXBhdGlibGl0eVxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INCy0YHRgtCw0L3QvtCy0LvRjtGU0YLRjNGB0Y8g0LfRgdGD0LIg0YHQtdC60YLQvtGA0YMg0LTQu9GPINGB0YPQvNGW0YHQvdC+0YHRgtGWINC3IERPU1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAi0JTQuNGB0LogJXMg0L3QtSDQvNGW0YHRgtC40YLRjCDQv9GA0LDQstC40LvRjNC90L7RlyDRgtCw0LHQu9C40YbRliDRgNC+0LfQtNGW0LvRltCyXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgzMQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWM6IHVua25vd24gY29tbWFuZFxuIgorbXNnc3RyICIlYzog0L3QtdCy0ZbQtNC+0LzQsCDQutC+0LzQsNC90LTQsFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBrZXJuZWwgZmluZHMgdGhlIHNlY3RvciBzaXplIGl0c2VsZiAtIC1iIG9wdGlvbiBpZ25vcmVkXG4iCittc2dzdHIgIiIKKyLQptC1INGP0LTRgNC+INCy0LjQt9C90LDRh9Cw0ZQg0YDQvtC30LzRltGAINGB0LXQutGC0L7RgNGDINGB0LDQvNC1LCDRgtC+0LzRgyAtYiDQv9Cw0YDQsNC80LXRgtGA0Lgg0L/RgNC+0ZbQs9C90L7RgNC+0LLQsNC90L5cbiIKKworIzogZmRpc2svZmRpc2suYzoyOTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB0aGUgLWIgKHNldCBzZWN0b3Igc2l6ZSkgb3B0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggb25lIHNwZWNpZmllZCAiCisiZGV2aWNlXG4iCittc2dzdHIgIiIKKyLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC3INCy0LrQsNC30LDQvdC40Lwg0L/RgNC40YHRgtGA0L7RlNC8INC/0L7QstC40L3QtdC9INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuNGB0Ywg0L/QsNGA0LDQvNC10YLRgCAtYiAiCisiKNCy0YHRgtCw0L3QvtCy0LjRgtC4INGA0L7Qt9C80ZbRgCDRgdC10LrRgtC+0YDQsClcbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgItCX0L3QsNC50LTQtdC90L4gT1NGLzEg0LXRgtC40LrQtdGC0LrRgyDQtNC40YHQutGDINC90LAgJXMsINC/0LXRgNC10YXRltC0INGDINGA0LXQttC40Lwg0LXRgtC40LrQtdGC0LrQuCDQtNC40YHQutGDLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMTAKK21zZ2lkICJDb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICLQmtC+0LzQsNC90LTQsCAobSAtINC00L7QstGW0LTQutCwKTogIgorCisjOiBmZGlzay9mZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBjdXJyZW50IGJvb3QgZmlsZSBpczogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorItCf0L7RgtC+0YfQvdC40Lkg0YTQsNC50Lsg0LfQsNCy0LDQvdGC0LDQttC10L3QvdGPOiAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjMwMjgKK21zZ2lkICJQbGVhc2UgZW50ZXIgdGhlIG5hbWUgb2YgdGhlIG5ldyBib290IGZpbGU6ICIKK21zZ3N0ciAi0JLQstC10LTRltGC0Ywg0L3QsNC30LLRgyDQvdC+0LLQvtCz0L4g0YTQsNC50LvRgyDQt9Cw0LLQsNC90YLQsNC20LXQvdC90Y86ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAi0KTQsNC50Lsg0LfQsNCy0LDQvdGC0LDQttC10L3QvdGPINC90LUg0LfQvNGW0L3QtdC90L5cbiIKKworIzogZmRpc2svZmRpc2suYzozMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdFNvcnJ5LCBubyBleHBlcnRzIG1lbnUgZm9yIFNHSSBwYXJ0aXRpb24gdGFibGVzIGF2YWlsYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlx00J/RgNC+0LHQsNGH0YLQtSwg0LzQtdC90Y4g0LTQu9GPINGE0LDRhdGW0LLRhtGW0LIg0L3QtdC00L7RgdGC0YPQv9C90LUg0LTQu9GPIFNHSSDRgtCw0LHQu9C40YbRliDRgNC+0LfQtNGW0LvRltCyLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKKyMsIGZ1enp5Cittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBNYWMgbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBmZGlzaygxKSBjYW5ub3QgaGFuZGxlIHRoZXNlIGRpc2tzLlxuIgorIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisiXHROZXZlcnRoZWxlc3Mgc29tZSBhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdNCd0LAg0YbRjNC+0LzRgyDQtNC40YHQutGDINC30L3QsNC50LTQtdC90L4g0L/RgNCw0LLQuNC70YzQvdGDINC10YLQuNC60LXRgtC60YMgQUlYINC00LjRgdC60YMuXG4iCisiXHTQndCw0LbQsNC70Ywg0L3QsNGA0LDQt9GWIExpbnV4INC90LUg0L/RltC00YLRgNC40LzRg9GUINGG0LXQuSDRgtC40L8g0LTQuNGB0LrRltCyLlxuIgorIlx00J/RgNC+0YLQtSDQtNC10Y/QutGWINC/0L7RgNCw0LTQuDpcbiIKKyJcdDEuIGZkaXNrINC30L3QuNGJ0LjRgtGMINCy0LzRltGB0YIg0L/RgNC4INC30LDQv9C40YHRgy5cbiIKKyJcdDIuINCf0LXRgNC10LLRltGA0YLQtSwg0YnQviDRhtC10Lkg0LTQuNGB0Log0J3QlSDRlCDQttC40YLRgtGU0LLQvlxuIgorIlx0ICAg0L3QtdC+0LHRhdGW0LTQvdC+0Y4g0YfQsNGB0YLQuNC90L7RjiDQs9GA0YPQv9C4INGC0L7QvNGW0LIuICjQoyDRltC90YjQvtC80YMg0LLQuNC/0LDQtNC60YNcbiIKKyJcdCAgINGC0LDQutC+0LYg0LzQvtC20L3QsCDRgdGC0LXRgNGC0Lgg0ZbQvdGI0ZYg0LTQuNGB0LrQuC4pXG4iCisiXHQzLiDQn9C10YDQtdC0INCy0LjQtNCw0LvQtdC90L3Rj9C8INGG0YzQvtCz0L4g0YTRltC30LjRh9C90L7Qs9C+INGC0L7QvNGDINC/0LXRgNC10LrQvtC90LDQudGC0LXRgdGMINGJ0L5cbiIKKyJcdCAgINC00LjRgdC60L4g0LvQvtCz0ZbRh9C90L4g0LLQuNC00LDQu9C10L3QuNC5INC3IEFJWFxuIgorIlx0ICAg0YHQuNGB0YLQtdC80LguICAo0KMg0ZbQvdGI0L7QvNGDINCy0LjQv9Cw0LTQutGDINCy0Lgg0YHRgtCw0L3QtdGC0LUg0YTQsNGF0ZbQstGG0LXQvCDQtyBBSVgpLiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgxCittc2dpZCAiU0dJIHZvbGhkciIKK21zZ3N0ciAiU0dJIHZvbGhkciIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgyCittc2dpZCAiU0dJIHRya3JlcGwiCittc2dzdHIgIlNHSSB0cmtyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODMKK21zZ2lkICJTR0kgc2VjcmVwbCIKK21zZ3N0ciAiU0dJIHNlY3JlcGwiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NAorbXNnaWQgIlNHSSByYXciCittc2dzdHIgIlNHSSByYXciCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NQorbXNnaWQgIlNHSSBic2QiCittc2dzdHIgIlNHSSBic2QiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NgorbXNnaWQgIlNHSSBzeXN2IgorbXNnc3RyICJTR0kgc3lzdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg3Cittc2dpZCAiU0dJIHZvbHVtZSIKK21zZ3N0ciAiU0dJINGC0L7QvCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiU0dJIGVmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIlNHSSBsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIlNHSSBybHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIHhmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIkxpbnV4IHN3YXAiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTEKK21zZ2lkICJMaW51eCBuYXRpdmUiCittc2dzdHIgIkxpbnV4IG5hdGl2ZSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYzCittc2dpZCAiTGludXggTFZNIgorbXNnc3RyICJMaW51eCBMVk0iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5OAorbXNnaWQgIkxpbnV4IFJBSUQiCittc2dzdHIgIkxpbnV4IFJBSUQiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkFjY29yZGluZyB0byBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyB0aGUgTGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gIgorIjUxMiBieXRlc1xuIgorbXNnc3RyICIiCisi0JfQs9GW0LTQvdC+IE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jINC10YLQuNC60LXRgtC60LAg0L3QtSDQv9C+0LLQuNC90L3QsCDQvNGW0YHRgtC40YLQuCDQsdGW0LvRjNGI0LUg0L3RltC2IDUxMiAiCisi0LHQsNC50YJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzZ2kgZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iCittc2dzdHIgItCX0L3QsNC50LTQtdC90L4gc2dpINC10YLQuNC60LXRgtC60YMg0LTQuNGB0LrQsCDQtyDQvdC10L/RgNCw0LLQuNC70YzQvdC+0Y4g0LrQvtC90YLRgNC+0LvRjNC90L7RjiDRgdGD0LzQvtGOLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU0dJIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIiVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQlNC40YHQuiAlcyAoU0dJINC10YLQuNC60LXRgtC60LAg0LTQuNGB0LrRgyk6ICVkINCz0L7Qu9C+0LLQvtC6LCAlZCDRgdC10LrRgtC+0YDRltCyXG4iCisiJWQg0YbQuNC70ZbQvdC00YDRltCyLCAlZCDRhNGW0LfQuNGH0L3QuNGFINGG0LjQu9GW0L3QtNGA0ZbQslxuIgorIiVkINC00L7QtNCw0YLQutC+0LLQuNGFINGB0LXQutGC0L7RgNGW0LIv0YbQuNC7LCDRh9C10YDQs9GD0LLQsNC90L3RjyAlZDoxXG4iCisiJXNcbiIKKyLQntC00LjQvdC40YbRliDQstC40LzRltGA0YMgPSAlcyDQtyAlZCAqICVkINCx0LDQudGCXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi0JTQuNGB0LogJXMgKFNHSSDQtdGC0LjQutC10YLQutCwINC00LjRgdC60YMpOiAlZCDQs9C+0LvQvtCy0L7QuiwgJWQg0YHQtdC60YLQvtGA0ZbQsiwgJWQg0YbQuNC70ZbQvdC00YDRltCyXG4iCisi0J7QtNC40L3QuNGG0ZYg0LLQuNC80ZbRgNGDID0gJXMg0LcgJWQgKiAlZCDQsdCw0LnRglxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBwYXJ0aXRpb25zIC0tLS0tXG4iCisiUHQjICUqcyAgSW5mbyAgICAgU3RhcnQgICAgICAgRW5kICAgU2VjdG9ycyAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisiLS0tLS0g0YDQvtC30LTRltC70LggLS0tLS1cbiIKKyLQoNC30LQjICUqcyAg0IbQvdGE0L4gICDQn9C+0YfQsNGC0L7QuiAgICDQmtGW0L3QtdGG0YwgINCh0LXQutGC0L7RgNGW0LIgINCG0LQgINCh0LjRgdGC0LXQvNCwXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIEJvb3RpbmZvIC0tLS0tXG4iCisiQm9vdGZpbGU6ICVzXG4iCisiLS0tLS0gRGlyZWN0b3J5IEVudHJpZXMgLS0tLS1cbiIKK21zZ3N0ciAiIgorIi0tLS0tINCX0LDQstCw0L3RgtCw0LbRg9Cy0LDQu9GM0L3QsCDRltC90YTQvtGA0LzQsNGG0ZbRjyAtLS0tLVxuIgorItCX0LDQstCw0L3RgtCw0LbRg9Cy0LDQu9GM0L3QuNC5INGE0LDQudC7OiAlc1xuIgorIi0tLS0tINCV0LvQtdC80LXQvdGC0Lgg0LrQsNGC0LDQu9C+0LPRgyAtLS0tLVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiUyZDogJS0xMHMgc2VjdG9yJTV1IHNpemUlOHVcbiIKK21zZ3N0ciAiJTJkOiAlLTEwcyDRgdC10LrRgtC+0YAlNXUg0YDQvtC30LzRltGAJTh1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisi0J3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC30LDQstCw0L3RgtCw0LbRg9Cy0LDQu9GM0L3QuNC5INGE0LDQudC7IVxuIgorIlx00JfQsNCy0LDQvdGC0LDQttGD0LLQsNC70YzQvdC40Lkg0YTQsNC50Lsg0L/QvtCy0LjQvdC10L0g0LzQsNGC0Lgg0L3QtS3QvdGD0LvRjNC+0LLQuNC5INCw0LHRgdC+0LvRjtGC0L3QuNC5INGI0LvRj9GFLFxuIgorIlx00L3QsNC/0YDQuNC60LvQsNC0LCAgXCIvdW5peFwiINCw0LHQviBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx00J3QsNC30LLQsCDQt9Cw0LLQsNC90YLQsNC20YPQstCw0LvRjNC90L7Qs9C+INGE0LDQudC70YMg0L3QsNC00YLQviDQstC10LvQuNC60LA6ICDQvNCw0LrRgdC40LzRg9C8IDE2INCx0LDQudGCLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIG11c3QgaGF2ZSBhIGZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx00JfQsNCy0LDQvdGC0LDQttGD0LLQsNC70YzQvdC40Lkg0YTQsNC50Lsg0L/QvtCy0LjQvdC10L0g0LzQsNGC0Lgg0LDQsdGB0L7Qu9GO0YLQvdC40Lkg0YjQu9GP0YUuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0QmUgYXdhcmUsIHRoYXQgdGhlIGJvb3RmaWxlIGlzIG5vdCBjaGVja2VkIGZvciBleGlzdGVuY2UuXG4iCisiXHRTR0kncyBkZWZhdWx0IGlzIFwiL3VuaXhcIiBhbmQgZm9yIGJhY2t1cCBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx00JfQvdCw0LnRgtC1LCDRidC+INGW0YHQvdGD0LLQsNC90L3RjyDQt9Cw0LLQsNC90YLQsNC20YPQstCw0LvRjNC90L7Qs9C+INGE0LDQudC70YMg0L3QtSDQv9C10YDQtdCy0ZbRgNGP0ZTRgtGM0YHRjy5cbiIKKyJcdNCi0LjQv9C+0LLRliDQtNC70Y8gU0dJIC0gIFwiL3VuaXhcIiDRgtCwINGA0LXQt9C10YDQstC90LAg0LrQvtC/0ZbRjyBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx00JfQsNCy0LDQvdGC0LDQttGD0LLQsNC70YzQvdC40Lkg0YTQsNC50Lsg0LfQvNGW0L3QtdC90L4g0L3QsCBcIiVzXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICLQn9GA0LjRgdGD0YLQvdGW0Lkg0LHRltC70YzRiCDQvdGW0LYg0L7QtNC40L0g0LXQu9C10LzQtdC90YIg0LTQuNGB0LrRgy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICLQndC1INCy0LjQt9C90LDRh9C10L3QviDRgNC+0LfQtNGW0LvRltCyXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSVJJWCBsaWtlcyB3aGVuIFBhcnRpdGlvbiAxMSBjb3ZlcnMgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICJJUklYINC/0L7QutC70LDQtNCw0ZTRgtGM0YHRjyDQvdCwINGC0LUsINGJ0L4g0YDQvtC30LTRltC7IDExINC30LDQudC80LDRlCDQstC10YHRjCDQtNC40YHQui5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBzaG91bGQgc3RhcnQgYXQgYmxvY2sgMCxcbiIKKyJub3QgYXQgZGlza2Jsb2NrICVkLlxuIgorbXNnc3RyICIiCisi0KDQvtC30LTRltC7INC90LAg0LLQtdGB0Ywg0LTQuNGB0Log0L/QvtCy0LjQvdC10L0g0L/QvtGH0LjQvdCw0YLQuNGB0Ywg0Lcg0LHQu9C+0LrRgyAwLFxuIgorItCwINC90LUg0Lcg0LHQu9C+0LrRgyDQtNC40YHQutGDICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKyLQoNC+0LfQtNGW0Lsg0L3QsCDQstC10YHRjCDQtNC40YHQuiDQtNC+0LLQttC40L3QvtGOINC70LjRiNC1ICVkINC00LjRgdC60L7QstC40YUg0LHQu9C+0LrRltCyLFxuIgorItCw0LvQtSDQtNC+0LLQttC40L3QsCDQtNC40YHQutGDINGB0LrQu9Cw0LTQsNGUICVkINC00LjRgdC60L7QstC40YUg0LHQu9C+0LrRltCyLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAi0KDQvtC30LTRltC7ICgjMTEpINC/0L7QstC40L3QtdC9INC30LDQudC80LDRgtC4INCy0LXRgdGMINC00LjRgdC6LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAi0KDQvtC30LTRltC7ICVkINC90LUg0L/QvtGH0LjQvdCw0ZTRgtGM0YHRjyDQtyDQvNC10LbRliDRhtC40LvRltC90LTRgNGDLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgItCg0L7Qt9C00ZbQuyAlZCDQvdC1INC30LDQutGW0L3Rh9GD0ZTRgtGM0YHRjyDQvdCwINC80LXQttGWINGG0LjQu9GW0L3QtNGA0YMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIFBhcnRpdGlvbiAlZCBhbmQgJWQgb3ZlcmxhcCBieSAlZCBzZWN0b3JzLlxuIgorbXNnc3RyICLQoNC+0LfQtNGW0LvQuCAlZCDRgtCwICVkINC/0LXRgNC10LrRgNC40LLQsNGO0YLRjNGB0Y8g0L3QsCAlZCDRgdC10LrRgtC+0YDRltCyLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDg0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCBvZiAlOHUgc2VjdG9ycyAtIHNlY3RvcnMgJTh1LSV1XG4iCittc2dzdHIgItCd0LXQstC40LrQvtGA0LjRgdGC0LDQvdC40Lkg0L/RgNC+0YHRgtGW0YAg0LcgJTh1INGB0LXQutGC0L7RgNGW0LIgLSDRgdC10LrRgtC+0YDQuCAlOHUtJXVcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGJvb3QgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisi0JfQsNCy0LDQvdGC0LDQttGD0LLQsNC70YzQvdC40Lkg0YDQvtC30LTRltC7INC90LUg0ZbRgdC90YPRlC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisi0KDQvtC30LTRltC7INC/0ZbQtNC60LDRh9C60Lgg0L3QtSDRltGB0L3Rg9GULlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gaGFzIG5vIHN3YXAgdHlwZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorItCg0L7Qt9C00ZbQuyDQv9GW0LTQutCw0YfQutC4INC80LDRlCDRgtC40L8g0L3QtSDQv9GW0LTQutCw0YfQutC4LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iCittc2dzdHIgIlx00JLQuCDQstC40LHRgNCw0LvQuCDQvdC10LfQstC40YfQsNC50L3RgyDQvdCw0LfQstGDINGE0LDQudC70YMg0LfQsNCy0LDQvdGC0LDQttC10L3QvdGPLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgItCf0YDQvtCx0LDRh9GC0LUsINCS0Lgg0LzQvtC20LXRgtC1INC30LzRltC90LjRgtC4INGC0LXQsyDQvdC1LdC/0L7RgNC+0LbQvdGW0YUg0YDQvtC30LTRltC70ZbQsi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzOAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgb2YgdHlwZSBcIlNHSSB2b2xoZHJcIiwgdGhlIElSSVggc3lzdGVtIHdpbGwgcmVseSBvbiBpdCB0b1xuIgorInJldHJpZXZlIGZyb20gaXRzIGRpcmVjdG9yeSBzdGFuZGFsb25lIHRvb2xzIGxpa2Ugc2FzaCBhbmQgZnguXG4iCisiT25seSB0aGUgXCJTR0kgdm9sdW1lXCIgZW50aXJlIGRpc2sgc2VjdGlvbiBtYXkgdmlvbGF0ZSB0aGlzLlxuIgorIlR5cGUgWUVTIGlmIHlvdSBhcmUgc3VyZSBhYm91dCB0YWdnaW5nIHRoaXMgcGFydGl0aW9uIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisi0J3QsNC/0L7Qu9C10LPQu9C40LLQviDRgNC10LrQvtC80LXQvdC00YPRlNGC0YzRgdGPLCDRidC+0LEg0YLQuNC/INGA0L7Qt9C00ZbQu9GDINC30ZYg0LfRgdGD0LLQvtC8IDBcbiIKKyLQsdGD0LIgXCJTR0kgdm9saGRyXCIsIElSSVgg0YHQuNGB0YLQtdC80LAg0L/QvtC60LvQsNC00LDRlNGC0YzRgdGPINC90LAg0YbQtSDQv9GA0LhcbiIKKyLQvtGC0YDQuNC80LDQvdGWINC3INGX0Zcg0LrQsNGC0LDQu9C+0LPRgyDQvtC60YDQtdC80LjRhSDRg9GC0LjQu9GW0YIsINC90LDQv9GA0LjQutC70LDQtCBzYXNoINGC0LAgZnguXG4iCisi0J3QtSDQtNC+0YLRgNC40LzRg9Cy0LDRgtC40YHRjCDRhtGM0L7Qs9C+INC80L7QttGD0YLRjCDQu9C40YjQtSBcIlNHSSB2b2x1bWVcIiDQvdCwINCy0LXRgdGMINC00LjRgdC6LlxuIgorItCS0LLQtdC00ZbRgtGMIFlFUywg0Y/QutGJ0L4g0LLQuCDQstC/0LXQstC90LXQvdGWLCDRidC+INGF0L7Rh9C10YLQtSDQv9C+0LfQvdCw0YfQuNGC0Lgg0YbQtdC5INGA0L7Qt9C00ZbQuyDQv9C+LdGW0L3RiNC+0LzRgy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIllFU1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIFlvdSBrbm93LCBZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2s/XG4iCittc2dzdHIgItCS0Lgg0LfQvdCw0ZTRgtC1LCDRidC+INC90LAg0LTQuNGB0LrRgyDRlCDRgNC+0LfQtNGW0LvQuCwg0YnQviDQv9C10YDQtdC60YDQuNCy0LDRjtGC0YzRgdGPP1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAi0KHQv9GA0L7QsdCwINGB0YLQstC+0YDQuNGC0Lgg0LLQtdGB0Ywg0LTQuNGB0Log0LDQstGC0L7QvNCw0YLQuNGH0L3Qvi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZW50aXJlIGRpc2sgaXMgYWxyZWFkeSBjb3ZlcmVkIHdpdGggcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAi0JLQtdGB0Ywg0LTQuNGB0Log0LLQttC1INC30LDQudC90Y/RgtC40Lkg0YDQvtC30LTRltC70LDQvNC4LlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICLQndCwINC00LjRgdC60YMg0ZQg0YDQvtC30LTRltC70LgsINGJ0L4g0L/QtdGA0LXQutGA0LjQstCw0Y7RgtGM0YHRjy4g0KHQv9C+0YfQsNGC0LrRgyDQstC40L/RgNCw0LLRgtC1INGG0LUhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorItCd0LDQv9C+0LvQtdCz0LvQuNCy0L4g0YDQtdC60L7QvNC10L3QtNGD0ZTRgtGM0YHRjywg0YnQvtCxINC+0LTQuNC90LDQtNGG0Y/RgtC40Lkg0YDQvtC30LTRltC7XG4iCisi0LfQsNC50LzQsNCyINGD0LLQtdGB0Ywg0LTQuNGB0Log0YLQsCDQvNCw0LIg0YLQuNC/IGBTR0kgdm9sdW1lJ1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIGdldCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgItCS0LDRiNGWINGA0L7Qt9C00ZbQu9C4INC90LAg0LTQuNGB0LrRgyDQsdGD0LTRg9GC0Ywg0L/QtdGA0LXQutGA0LjQstCw0YLQuNGB0YwuINCS0LjQv9GA0LDQstGC0LUg0YbQtSFcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgTGFzdCAlcyIKK21zZ3N0ciAiINCe0YHRgtCw0L3QvdGW0LkgJXMiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IFNHSSBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd2lsbCBiZSB1bnJlY292ZXJhYmx5IGxvc3QuXG4iCisiXG4iCittc2dzdHIgIiIKKyLQodGC0LLQvtGA0LXQvdC90Y8g0L3QvtCy0L7RlyBTR0kg0LXRgtC40LrQtdGC0LrQuCDQtNC40YHQutGDLiAg0JfQvNGW0L3QuCDQt9Cw0LvQuNGI0LDRgtC40LzRg9GC0YzRgdGPINCyINC/0LDQvCfRj9GC0ZYsXG4iCisi0LTQvtC60Lgg0LLQuCDRl9GFINC90LUg0LfQsNC/0LjRiNC10YLQtS4g0J/RltGB0LvRjyDRh9C+0LPQviwg0LfQstC40YfQsNC50L3Qviwg0L/QvtC/0LXRgNC10LTQvdGW0Lkg0LLQvNGW0YHRglxuIgorItCx0YPQtNC1INCy0YLRgNCw0YfQtdC90L4uXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogIEJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzLiAgVXNpbmcgZ2VvbWV0cnkgY3lsaW5kZXIgdmFsdWUgb2YgJSIKKyJkLlxuIgorIlRoaXMgdmFsdWUgbWF5IGJlIHRydW5jYXRlZCBmb3IgZGV2aWNlcyA+IDMzLjggR0IuXG4iCittc2dzdHIgIiIKKyLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86IEJMS0dFVFNJWkUgaW9jdGwg0LfQsNCy0LXRgNGI0LjQstGB0Y8g0LDQstCw0YDRltC50L3QviDQvdCwICVzLiDQktC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyAiCisi0LfQvdCw0YfQtdC90L3RjyDQs9C10L7QvNC10YLRgNGW0Zcg0YbQuNC70ZbQvdC00YDRgyAlZC5cbiIKKyLQptC1INC30L3QsNGH0LXQvdC90Y8g0LzQvtC20LUg0LHRg9GC0Lgg0LLRltC00YHRltGH0LXQvdC1INC00LvRjyDQv9GA0LjRgdGC0YDQvtGX0LIgPiAzMy44INCT0JEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIGtlZXAgcGFyYW1ldGVycyBvZiBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgItCh0L/RgNC+0LHQsCDQt9Cx0LXRgNC10LPRgtC4INC/0LDRgNCw0LzQtdGC0YDQuCDRgNC+0LfQtNGW0LvRgyAlZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczNAorIywgYy1mb3JtYXQKK21zZ2lkICJJRD0lMDJ4XHRTVEFSVD0lZFx0TEVOR1RIPSVkXG4iCittc2dzdHIgItCG0JQ9JTAyeFx00J/QntCn0JDQotCe0Jo9JWRcdNCU0J7QktCW0JjQndCQPSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiU3VuT1Mgcm9vdCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiU3VuT1Mgc3dhcCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICJTdW5PUyB1c3IiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgItCS0LXRgdGMINC00LjRgdC6IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQKK21zZ2lkICJTdW5PUyBzdGFuZCIKK21zZ3N0ciAiU3VuT1Mgc3RhbmQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NQorbXNnaWQgIlN1bk9TIHZhciIKK21zZ3N0ciAiU3VuT1MgdmFyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDYKK21zZ2lkICJTdW5PUyBob21lIgorbXNnc3RyICJTdW5PUyBob21lIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIiVsbGQg0L3QtdGA0L7Qt9C/0L7QtNGW0LvQtdC90LjRhSDRgdC10LrRgtC+0YDRltCyXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorIywgZnV6enkKK21zZ2lkICJTdW5PUyBjYWNoZWZzIgorbXNnc3RyICJTdW5PUyBob21lIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDkKKyMsIGZ1enp5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIlN1bk9TIHVzciIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorItCX0L3QsNC50LTQtdC90L4gc3VuINC10YLQuNC60LXRgtC60YMg0LTQuNGB0LrQsCDQtyDQvdC10L/RgNCw0LLQuNC70YzQvdC+0Y4g0LrQvtC90YLRgNC+0LvRjNC90L7RjiDRgdGD0LzQvtGOLlxuIgorItCc0L7QttC70LjQstC+INGB0LvRltC0INC/0LXRgNC10LLRgdGC0LDQvdC+0LLQuNGC0Lgg0LLRgdGWINC30L3QsNGH0LXQvdC90Y8sXG4iCisi0YLQsNC60ZYg0Y/QuiDQs9C+0LvQvtCy0LrQuCwg0YHQtdC60YLQvtGA0LgsINGG0LjQu9GW0L3QtNGA0Lgg0YLQsCDRgNC+0LfQtNGW0LvQuFxuIgorItCw0LHQviDQv9GA0LjQvNGD0YHQvtCy0L4g0L7Rh9C40YHRgtC40YLQuCDQtdGC0LjQutC10YLQutGDICjQutC+0LzQsNC90LTQsCBzINGDINCz0L7Qu9C+0LLQvdC+0LzRgyDQvNC10L3RjilcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHZlcnNpb24gWzB4JTA4eF0uXG4iCittc2dzdHIgItCX0L3QsNC50LTQtdC90L4gc2dpINC10YLQuNC60LXRgtC60YMg0LTQuNGB0LrQsCDQtyDQvdC10L/RgNCw0LLQuNC70YzQvdC+0Y4g0LrQvtC90YLRgNC+0LvRjNC90L7RjiDRgdGD0LzQvtGOLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTUzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3Jvbmcgc2FuaXR5IFsweCUwOHhdLlxuIgorbXNnc3RyICLQl9C90LDQudC00LXQvdC+IHNnaSDQtdGC0LjQutC10YLQutGDINC00LjRgdC60LAg0Lcg0L3QtdC/0YDQsNCy0LjQu9GM0L3QvtGOINC60L7QvdGC0YDQvtC70YzQvdC+0Y4g0YHRg9C80L7Rji5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgItCX0L3QsNC50LTQtdC90L4gc2dpINC10YLQuNC60LXRgtC60YMg0LTQuNGB0LrQsCDQtyDQvdC10L/RgNCw0LLQuNC70YzQvdC+0Y4g0LrQvtC90YLRgNC+0LvRjNC90L7RjiDRgdGD0LzQvtGOLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTYzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogV3JvbmcgdmFsdWVzIG5lZWQgdG8gYmUgZml4ZWQgdXAgYW5kIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSlcbiIKK21zZ3N0ciAiIgorItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0L3QtdC/0YDQsNCy0LjQu9GM0L3QsCDQvtC30L3QsNC60LAgMHglMDR4INGC0LDQsdC70LjRhtGWINGA0L7Qt9C00ZbQu9GW0LIgJWQg0LHRg9C00LUg0LLQuNC/0YDQsNCy0LvQtdC90LAgIgorItC/0YDQuCB3KNC30LDQv9C40YHRgylcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorItCh0YLQstC+0YDRjtGU0YLRjNGB0Y8g0L3QvtCy0LAgc3VuINC10YLQuNC60LXRgtC60LAg0LTQuNGB0LrRgy4g0JfQvNGW0L3QuCDQt9Cw0LvQuNGI0LDRgtC40LzRg9GC0YzRgdGPINGDINC/0LDQvCfRj9GC0ZYsXG4iCisi0LTQvtC60Lgg0LLQuCDQvdC1INC30LDQv9C40YjQtdGC0LUg0ZfRhS4g0J/RltGB0LvRjyDRh9C+0LPQviwg0LfQstC40YfQsNC50L3Qviwg0L/QvtC/0LXRgNC10LTQvdGW0Lkg0LLQvNGW0YHRglxuIgorItCx0YPQtNC1INCy0YLRgNCw0YfQtdC90L4uXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICLQodC10LrRgtC+0YDRltCyL9C00L7RgNGW0LbQutGDIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2Vzbid0IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICLQoNC+0LfQtNGW0LsgJWQg0L3QtSDQt9Cw0LrRltC90YfRg9GU0YLRjNGB0Y8g0L3QsCDQvNC10LbRliDRhtC40LvRltC90LTRgNGDXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAi0KDQvtC30LTRltC7ICVkINC/0LXRgNC10LrRgNC40LLQsNGU0YLRjNGB0Y8g0Lcg0ZbQvdGI0LjQvCDRgyDRgdC10LrRgtC+0YDQsNGFICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICLQndC10LLQuNC60L7RgNC40YHRgtCw0L3QuNC5INC/0YDQvtGB0YLRltGAIC0g0YHQtdC60YLQvtGA0LggMC0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAi0J3QtdCy0LjQutC+0YDQuNGB0YLQsNC90LjQuSDQv9GA0L7RgdGC0ZbRgCAtINGB0LXQutGC0L7RgNC4ICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKyLQhtC90YjRliDRgNC+0LfQtNGW0LvQuCDQstC20LUg0LfQsNC50LzQsNGO0YLRjCDQstC10YHRjCDQtNC40YHQui5cbiIKKyLQktC40LTQsNC70ZbRgtGMINGH0LDRgdGC0LjQvdGDL9C30LzQtdC90YjRltGC0Ywg0ZfRhSDRgNC+0LfQvNGW0YAg0L/QtdGA0LXQtCDRgdC/0YDQvtCx0L7Rji5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSB0aGlyZCBwYXJ0aXRpb24gY292ZXJzIHRoZSB3aG9sZSBkaXNrXG4iCisiYW5kIGlzIG9mIHR5cGUgYFdob2xlIGRpc2snXG4iCittc2dzdHIgIiIKKyLQndCw0L/QvtC70LXQs9C70LjQstC+INGA0LXQutC+0LzQtdC90LTRg9GU0YLRjNGB0Y8sINGJ0L7QsSDQvtC00LjQvdCw0LTRhtGP0YLQuNC5INGA0L7Qt9C00ZbQu1xuIgorItC30LDQudC80LDQsiDRg9Cy0LXRgdGMINC00LjRgdC6INGC0LAg0LzQsNCyINGC0LjQvyBgU0dJIHZvbHVtZSdcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAi0KHQtdC60YLQvtGAICVkINCy0LbQtSDRgNC+0LfQv9C+0LTRltC70LXQvdC40LlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmVuJ3QgY292ZXJlZCB0aGUgd2hvbGUgZGlzayB3aXRoIHRoZSAzcmQgcGFydGl0aW9uLCBidXQgeW91ciB2YWx1ZVxuIgorIiVkICVzIGNvdmVycyBzb21lIG90aGVyIHBhcnRpdGlvbi4gWW91ciBlbnRyeSBoYXMgYmVlbiBjaGFuZ2VkXG4iCisidG8gJWQgJXNcbiIKK21zZ3N0ciAiIgorItCi0YDQtdGC0ZbQuSDRgNC+0LfQtNGW0Lsg0L3QtSDQt9Cw0LnQvNCw0ZQg0LLQtdGB0Ywg0LTQuNGB0LosINCw0LvQtSDQt9C90LDRh9C10L3QvdGPXG4iCisiJWQgJXMg0L/QtdGA0LXQutGA0LjQstCw0ZQg0LTQtdGP0LrQuNC5INGW0L3RiNC40Lkg0YDQvtC30LTRltC7LiDQktCw0Ygg0LXQu9C10LzQtdC90YIg0LHRg9C70L4g0LfQvNGW0L3QtdC90L5cbiIKKyLQvdCwICVkICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklmIHlvdSB3YW50IHRvIG1haW50YWluIFN1bk9TL1NvbGFyaXMgY29tcGF0aWJpbGl0eSwgY29uc2lkZXIgbGVhdmluZyB0aGlzXG4iCisicGFydGl0aW9uIGFzIFdob2xlIGRpc2sgKDUpLCBzdGFydGluZyBhdCAwLCB3aXRoICV1IHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorItCv0LrRidC+INCy0Lgg0LHQsNC20LDRlNGC0LUg0L/RltC00YLRgNC40LzRg9Cy0LDRgtC4INGB0YPQvNGW0YHQvdGW0YHRgtGMINC3IFN1bk9TL1NvbGFyaXMsINGB0YLQstC+0YDRltGC0Ywg0YbQtdC5INGA0L7Qt9C00ZbQuyAiCisi0Y/QulxuIgorItCy0LXRgdGMINC00LjRgdC6KDUpLCDQv9C+0YfQuNC90LDRjtGH0Lgg0LcgMCwg0YDQvtC30LzRltGA0L7QvCAldSDRgdC10LrRgtC+0YDRltCyXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIFVGUywgRVhUMkZTIGZpbGVzeXN0ZW0gb3IgU3VuT1Mgc3dhcC4gUHV0dGluZyBMaW51eCBzd2FwXG4iCisidGhlcmUgbWF5IGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUgYW5kIGJvb3RibG9jay5cbiIKKyJUeXBlIFlFUyBpZiB5b3UncmUgdmVyeSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRoYXQgcGFydGl0aW9uXG4iCisidGFnZ2VkIHdpdGggODIgKExpbnV4IHN3YXApOiAiCittc2dzdHIgIiIKKyLQndCw0L/QvtC70LXQs9C70LjQstC+INGA0LXQutC+0LzQtdC90LTRg9GU0YLRjNGB0Y8sINGJ0L7QsSDRgNC+0LfQtNGW0Lsg0LfRliDQt9GB0YPQstC+0LwgMCDQsdGD0LIgVUZTLFxuIgorItGE0LDQudC70L7QstC+0Y4g0YHQuNGB0YLQtdC80L7RjiBFWFQyRlMg0LDQsdC+IFN1bk9TIHN3YXAuINCv0LrRidC+INGC0YPRgiDQstGB0YLQsNCy0LjRgtC4IExpbnV4IHN3YXAsXG4iCisi0LzQvtC20L3QsCDQt9GA0YPQudC90YPQstCw0YLQuCDRgtCw0LHQu9C40YbRjiDRgNC+0LfQtNGW0LvRltCyINGC0LAg0LfQsNCy0LDQvdGC0LDQttGD0LLQsNC70YzQvdC40Lkg0LHQu9C+0LouXG4iCisi0JLQstC10LTRltGC0YwgWUVTLCDRj9C60YnQviDQstC4INGB0L/RgNCw0LLQtNGWINCy0L/QtdCy0L3QtdC90ZYsINGJ0L4g0LHQsNC20LDRlNGC0LUg0L/QvtC30L3QsNGH0LjRgtC4INGA0L7Qt9C00ZbQu1xuIgorItGC0LjQv9C+0LwgODIgKExpbnV4IHN3YXApOiAiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIHJwbVxuIgorIiVkIGN5bGluZGVycywgJWQgYWx0ZXJuYXRlIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyJMYWJlbCBJRDogJXNcbiIKKyJWb2x1bWUgSUQ6ICVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi0JTQuNGB0LogJXMgKFN1biDQtdGC0LjQutC10YLQutCwINC00LjRgdC60YMpOiAlZCDQs9C+0LvQvtCy0L7QuiwgJWQg0YHQtdC60YLQvtGA0ZbQsiwgJWQg0L7QsS/RhdCyXG4iCisiJWQg0YbQuNC70ZbQvdC00YDRltCyLCAlZCDQt9Cw0L/QsNGB0L3QuNGFINGG0LjQu9GW0L3QtNGA0ZbQsiwgJWQg0YTRltC30LjRh9C90LjRhSDRhtC40LvRltC90LTRgNGW0LJcbiIKKyIlZCDQtNC+0LTQsNGC0LrQvtCy0LjRhSDRgdC10LrRgtC+0YDRltCyL9GG0LjQuywg0YfQtdGA0LPRg9Cy0LDQvdC90Y8gJWQ6MVxuIgorIiVzXG4iCisi0J7QtNC40L3QuNGG0ZYg0LLQuNC80ZbRgNGDID0gJXMg0LcgJWQgKiA1MTIg0LHQsNC50YJcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisi0JTQuNGB0LogJXMgKFN1biDQtdGC0LjQutC10YLQutCwINC00LjRgdC60YMpOiAlZCDQs9C+0LvQvtCy0L7QuiwgJWQg0YHQtdC60YLQvtGA0ZbQsiwgJWQg0YbQuNC70ZbQvdC00YDRltCyXG4iCisi0J7QtNC40L3QuNGG0ZYg0LLQuNC80ZbRgNGDID0gJXMg0LcgJWQgKiA1MTIg0LHQsNC50YJcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgRmxhZyAgICBTdGFydCAgICAgICBFbmQgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMg0J7Qt9C90LDQutCwINCf0L7Rh9Cw0YLQvtC6ICAgINCa0ZbQvdC10YbRjCAgICAg0JHQu9C+0LrQuCAgINCG0LQgINCh0LjRgdGC0LXQvNCwXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MjUKK21zZ2lkICJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAi0JrRltC70YzQutGW0YHRgtGMINC30LDQv9Cw0YHQvdC40YUg0YbQuNC70ZbQvdC00YDRltCyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjM3Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgItCU0L7QtNCw0YLQutC+0LLQuNGFINGB0LXQutGC0L7RgNGW0LIg0YMg0YbQuNC70ZbQvdC00YDRliIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY0NAorbXNnaWQgIkludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICLQpNCw0LrRgtC+0YAg0YfQtdGA0LPRg9Cy0LDQvdC90Y8iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTEKK21zZ2lkICJSb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAi0KjQstC40LTQutGW0YHRgtGMINC+0LHQtdGA0YLQsNC90L3RjyAo0L7QsS/RhdCyKSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1OAorbXNnaWQgIk51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgItCa0ZbQu9GM0LrRltGB0YLRjCDRhNGW0LfQuNGH0L3QuNGFINGG0LjQu9GW0L3QtNGA0ZbQsiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2Cittc2dpZCAiRW1wdHkiCittc2dzdHIgItCf0L7RgNC+0LbQvSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3Cittc2dpZCAiRkFUMTIiCittc2dzdHIgIkZBVDEyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgKK21zZ2lkICJYRU5JWCByb290IgorbXNnc3RyICJYRU5JWCByb290IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkKK21zZ2lkICJYRU5JWCB1c3IiCittc2dzdHIgIlhFTklYIHVzciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMAorbXNnaWQgIkZBVDE2IDwzMk0iCittc2dzdHIgIkZBVDE2IDwzMk0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTEKK21zZ2lkICJFeHRlbmRlZCIKK21zZ3N0ciAiRXh0ZW5kZWQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTIKK21zZ2lkICJGQVQxNiIKK21zZ3N0ciAiRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTMKK21zZ2lkICJIUEZTL05URlMiCittc2dzdHIgIkhQRlMvTlRGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNAorbXNnaWQgIkFJWCIKK21zZ3N0ciAiQUlYIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE1Cittc2dpZCAiQUlYIGJvb3RhYmxlIgorbXNnc3RyICJBSVggYm9vdGFibGUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTYKK21zZ2lkICJPUy8yIEJvb3QgTWFuYWdlciIKK21zZ3N0ciAiT1MvMiBCb290IE1hbmFnZXIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTcKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIlc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOAorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDMyIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJXOTUgRkFUMTYgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjAKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIlc5NSBFeHQnZCAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMQorbXNnaWQgIk9QVVMiCittc2dzdHIgIk9QVVMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjIKK21zZ2lkICJIaWRkZW4gRkFUMTIiCittc2dzdHIgIkhpZGRlbiBGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMworbXNnaWQgIkNvbXBhcSBkaWFnbm9zdGljcyIKK21zZ3N0ciAiQ29tcGFxIGRpYWdub3N0aWNzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI0Cittc2dpZCAiSGlkZGVuIEZBVDE2IDwzMk0iCittc2dzdHIgIkhpZGRlbiBGQVQxNiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI1Cittc2dpZCAiSGlkZGVuIEZBVDE2IgorbXNnc3RyICJIaWRkZW4gRkFUMTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjYKK21zZ2lkICJIaWRkZW4gSFBGUy9OVEZTIgorbXNnc3RyICJIaWRkZW4gSFBGUy9OVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI3Cittc2dpZCAiQVNUIFNtYXJ0U2xlZXAiCittc2dzdHIgIkFTVCBTbWFydFNsZWVwIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI4Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiIKK21zZ3N0ciAiSGlkZGVuIFc5NSBGQVQzMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOQorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIkhpZGRlbiBXOTUgRkFUMzIgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzAKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICJIaWRkZW4gVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMxCittc2dpZCAiTkVDIERPUyIKK21zZ3N0ciAiTkVDIERPUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMgorbXNnaWQgIlBsYW4gOSIKK21zZ3N0ciAiUGxhbiA5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMzCittc2dpZCAiUGFydGl0aW9uTWFnaWMgcmVjb3ZlcnkiCittc2dzdHIgIlBhcnRpdGlvbk1hZ2ljIHJlY292ZXJ5IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIlZlbml4IDgwMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM1Cittc2dpZCAiUFBDIFBSZVAgQm9vdCIKK21zZ3N0ciAiUFBDIFBSZVAgQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNgorbXNnaWQgIlNGUyIKK21zZ3N0ciAiU0ZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM3Cittc2dpZCAiUU5YNC54IgorbXNnc3RyICJRTlg0LngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzgKK21zZ2lkICJRTlg0LnggMm5kIHBhcnQiCittc2dzdHIgIlFOWDQueCAybmQgcGFydCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiUU5YNC54IDNyZCBwYXJ0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQwCittc2dpZCAiT25UcmFjayBETSIKK21zZ3N0ciAiT25UcmFjayBETSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MQorbXNnaWQgIk9uVHJhY2sgRE02IEF1eDEiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDIKK21zZ2lkICJDUC9NIgorbXNnc3RyICJDUC9NIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQzCittc2dpZCAiT25UcmFjayBETTYgQXV4MyIKK21zZ3N0ciAiT25UcmFjayBETTYgQXV4MyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NAorbXNnaWQgIk9uVHJhY2tETTYiCittc2dzdHIgIk9uVHJhY2tETTYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDUKK21zZ2lkICJFWi1Ecml2ZSIKK21zZ3N0ciAiRVotRHJpdmUiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDYKK21zZ2lkICJHb2xkZW4gQm93IgorbXNnc3RyICJHb2xkZW4gQm93IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ3Cittc2dpZCAiUHJpYW0gRWRpc2siCittc2dzdHIgIlByaWFtIEVkaXNrIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTIKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OQorbXNnaWQgIlNwZWVkU3RvciIKK21zZ3N0ciAiU3BlZWRTdG9yIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ5Cittc2dpZCAiR05VIEhVUkQgb3IgU3lzViIKK21zZ3N0ciAiR05VIEhVUkQgb3IgU3lzViIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MAorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDI4NiIKK21zZ3N0ciAiTm92ZWxsIE5ldHdhcmUgMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUxCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMzg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAzODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTIKK21zZ2lkICJEaXNrU2VjdXJlIE11bHRpLUJvb3QiCittc2dzdHIgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiT2xkICBNaW5peCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NQorbXNnaWQgIk1pbml4IC8gb2xkIExpbnV4IgorbXNnc3RyICJNaW5peCAvIG9sZCBMaW51eCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICJMaW51eCBzd2FwIC8gU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIGhpZGRlbiBDOiBkcml2ZSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OQorbXNnaWQgIkxpbnV4IGV4dGVuZGVkIgorbXNnc3RyICJMaW51eCBleHRlbmRlZCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYxCittc2dpZCAiTlRGUyB2b2x1bWUgc2V0IgorbXNnc3RyICJOVEZTIHZvbHVtZSBzZXQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjIKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIkxpbnV4IHBsYWludGV4dCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NAorbXNnaWQgIkFtb2ViYSIKK21zZ3N0ciAiQW1vZWJhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY1Cittc2dpZCAiQW1vZWJhIEJCVCIKK21zZ3N0ciAiQW1vZWJhIEJCVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NgorbXNnaWQgIkJTRC9PUyIKK21zZ3N0ciAiQlNEL09TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY3Cittc2dpZCAiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIgorbXNnc3RyICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjgKK21zZ2lkICJGcmVlQlNEIgorbXNnc3RyICJGcmVlQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY5Cittc2dpZCAiT3BlbkJTRCIKK21zZ3N0ciAiT3BlbkJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MAorbXNnaWQgIk5lWFRTVEVQIgorbXNnc3RyICJOZVhUU1RFUCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MQorbXNnaWQgIkRhcndpbiBVRlMiCittc2dzdHIgIkRhcndpbiBVRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzIKK21zZ2lkICJOZXRCU0QiCittc2dzdHIgIk5ldEJTRCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MworbXNnaWQgIkRhcndpbiBib290IgorbXNnc3RyICJEYXJ3aW4gYm9vdCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NAorIywgZnV6enkKK21zZ2lkICJIRlMgLyBIRlMrIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzUKK21zZ2lkICJCU0RJIGZzIgorbXNnc3RyICJCU0RJIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc2Cittc2dpZCAiQlNESSBzd2FwIgorbXNnc3RyICJCU0RJIHN3YXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIkJvb3QgV2l6YXJkIGhpZGRlbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OAorbXNnaWQgIlNvbGFyaXMgYm9vdCIKK21zZ3N0ciAiU29sYXJpcyDQt9Cw0LLQsNC90YLQsNC20YPQstCw0LvRjNC90LjQuSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIlNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTEyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xNikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIlN5cmlueCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICLQndC1LdCk0KEg0LTQsNC90ZYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODUKK21zZ2lkICJDUC9NIC8gQ1RPUyAvIC4uLiIKK21zZ3N0ciAiQ1AvTSAvIENUT1MgLyAuLi4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODcKK21zZ2lkICJEZWxsIFV0aWxpdHkiCittc2dzdHIgIkRlbGwgVXRpbGl0eSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OAorbXNnaWQgIkJvb3RJdCIKK21zZ3N0ciAiQm9vdEl0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg5Cittc2dpZCAiRE9TIGFjY2VzcyIKK21zZ3N0ciAiRE9TIGFjY2VzcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MQorbXNnaWQgIkRPUyBSL08iCittc2dzdHIgIkRPUyBSL08iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTQKK21zZ2lkICJCZU9TIGZzIgorbXNnc3RyICJCZU9TIGZzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk1CisjLCBmdXp6eQorbXNnaWQgIkdQVCIKK21zZ3N0ciAiRUZJIEdQVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NgorbXNnaWQgIkVGSSAoRkFULTEyLzE2LzMyKSIKK21zZ3N0ciAiRUZJIChGQVQtMTIvMTYvMzIpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk3Cittc2dpZCAiTGludXgvUEEtUklTQyBib290IgorbXNnc3RyICJMaW51eC9QQS1SSVNDIGJvb3QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAwCittc2dpZCAiRE9TIHNlY29uZGFyeSIKK21zZ3N0ciAiRE9TIHNlY29uZGFyeSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDEKK21zZ2lkICJWTXdhcmUgVk1GUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMgorbXNnaWQgIlZNd2FyZSBWTUtDT1JFIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA2Cittc2dpZCAiTEFOc3RlcCIKK21zZ3N0ciAiTEFOc3RlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDcKK21zZ2lkICJCQlQiCittc2dzdHIgIkJCVCIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3Igb24gJXMgLSBjYW5ub3Qgc2VlayB0byAlbHVcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0L/QvtC30LjRhtGW0Y7QstCw0L3QvdGPICVzIC0g0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0LXRgNC10LnRgtC4INC90LAgJWx1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2OQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yOiB3YW50ZWQgMHglMDh4JTA4eCwgZ290IDB4JTA4eCUwOHhcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0L/QvtC30LjRhtGW0Y7QstCw0L3QvdGPOiDQvtGH0ZbQutGD0LLQsNC70L7RgdGMIDB4JTA4eCUwOHgsINC+0YLRgNC40LzQsNC90L4gMHglMDh4JTA4eFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTUKK21zZ2lkICJvdXQgb2YgbWVtb3J5IC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgItC90LXQtNC+0YHRgtCw0YLQvdGM0L4g0L/QsNC8J9GP0YLRliAtINCy0ZbQtNC80L7QstCwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0YfQuNGC0LDQvdC90Y8gJXMgLSDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L/RgNC+0YfQuNGC0LDRgtC4INGB0LXQutGC0L7RgCAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkVSUk9SOiBzZWN0b3IgJWx1IGRvZXMgbm90IGhhdmUgYW4gbXNkb3Mgc2lnbmF0dXJlXG4iCittc2dzdHIgItCf0J7QnNCY0JvQmtCQOiDRgdC10LrRgtC+0YAgJWx1INC90LXQvNCw0ZQgbXNkb3Mg0YHQuNCz0L3QsNGC0YPRgNC4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30LDQv9C40YHRgyDQvdCwICVzIC0g0L3QtSDQstC00LDRlNGC0YzRgdGPINC30LDQv9C40YHQsNGC0Lgg0YHQtdC60YLQvtGAICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHNlY3RvciBzYXZlIGZpbGUgKCVzKVxuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCDRhNCw0LnQuyDQt9Cx0LXRgNC10LbQtdC90L3RjyDRgdC10LrRgtC+0YDRgyDRgNC+0LfQtNGW0LvRgyAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YMg0L3QsCAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGW0L3RhNC+0YDQvNCw0YbRltGOINC/0YDQviDRhNCw0LnQuyDQstGW0LTQvdC+0LLQu9C10L3QvdGPINGA0L7Qt9C00ZbQu9GDICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAiIgorItGE0LDQudC7INCy0ZbQtNC90L7QstC70LXQvdC90Y8g0YDQvtC30LTRltC70YMg0LzQsNGUINC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRgNC+0LfQvNGW0YAgLSDQstGW0LTQvNGW0L3QsCDQstGW0LTQvdC+0LLQu9C10L3QvdGPXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0NAorbXNnaWQgIm91dCBvZiBtZW1vcnk/XG4iCittc2dzdHIgItC90LXQtNC+0YHRgtCw0YLQvdGM0L4g0L/QsNC8J9GP0YLRllxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4INGE0LDQudC7INCy0ZbQtNC90L7QstC70LXQvdC90Y8gKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcmVhZGluZyAlc1xuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDRh9C40YLQsNC90L3RjyAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gZGV2aWNlICVzIGZvciB3cml0aW5nXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4INC/0YDQuNGB0YLRgNGW0LkgJXMg0LTQu9GPINC30LDQv9C40YHRg1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzZWN0b3IgJWx1IG9uICVzXG4iCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30LDQv9C40YHRgyDRgdC10LrRgtC+0YDRgyAlbHUg0L3QsCAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBnZW9tZXRyeVxuIgorbXNnc3RyICLQlNC40YHQuiAlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0LPQtdC+0LzQtdGC0YDRltGOXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ1NworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IHNpemVcbiIKK21zZ3N0ciAi0JTQuNGB0LogJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGA0L7Qt9C80ZbRgFxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHN0YXJ0PSVsdSAtIHRoaXMgbG9va3MgbGlrZSBhIHBhcnRpdGlvbiByYXRoZXIgdGhhblxuIgorInRoZSBlbnRpcmUgZGlzay4gVXNpbmcgZmRpc2sgb24gaXQgaXMgcHJvYmFibHkgbWVhbmluZ2xlc3MuXG4iCisiW1VzZSB0aGUgLS1mb3JjZSBvcHRpb24gaWYgeW91IHJlYWxseSB3YW50IHRoaXNdXG4iCittc2dzdHIgIiIKKyLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC/0L7Rh9Cw0YLQvtC6PSVsdSAtINGB0YXQvtC20LUg0L3QsCDRgNC+0LfQtNGW0LssINCwINC90LUg0L3QsCDQtNC40YHQui5cbiIKKyLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y8gZmRpc2sg0LTQu9GPINC90YzQvtCz0L4g0LzQsNCx0YPRgtGMINCx0LXQt9Cz0LvRg9C30LTQvi4uXG4iCisiW9CS0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0L/QsNGA0LDQvNC10YLRgCAtLWZvcmNlLCDRj9C60YnQviDQstC4INC00ZbQudGB0L3QviDRhtGM0L7Qs9C+INCx0LDQttCw0ZTRgtC1XVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiBIRElPX0dFVEdFTyDQstC60LDQt9GD0ZQsINGJ0L4g0ZQgJWx1INCz0L7Qu9C+0LLQvtC6XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3RjzogSERJT19HRVRHRU8g0LLQutCw0LfRg9GULCDRidC+INGUICVsdSDRgdC10LrRgtC+0YDRltCyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGN5bGluZGVyc1xuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86IEJMS0dFVFNJWkUvSERJT19HRVRHRU8g0LLQutCw0LfRg9GULCDRidC+INGUICVsdSDRhtC40LvRltC90LTRgNGW0LJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1bmxpa2VseSBudW1iZXIgb2Ygc2VjdG9ycyAoJWx1KSAtIHVzdWFsbHkgYXQgbW9zdCA2M1xuIgorIlRoaXMgd2lsbCBnaXZlIHByb2JsZW1zIHdpdGggYWxsIHNvZnR3YXJlIHRoYXQgdXNlcyBDL0gvUyBhZGRyZXNzaW5nLlxuIgorbXNnc3RyICIiCisi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDQvdC10L/RgNCw0LLQuNC70YzQvdCwINC60ZbQu9GM0LrRltGB0YLRjCDRgdC10LrRgtC+0YDRltCyICglbHUpIC0g0LfQsNC30LLQuNGH0LDQuSDRidC+0L3QsNC50LHRltC70YzRiNC1ICIKKyI2M1xuIgorItCm0LUg0LHRg9C00LUg0YHQv9GA0LjRh9C40L3Rj9GC0Lgg0L/RgNC+0LHQu9C10LzQuCDQtyDRg9GB0ZbQvCDQn9CXLCDRj9C60LUg0LLQuNC60L7RgNC40YHRgtC+0LLRg9GUIEMvSC9TINCw0LTRgNC10YHQsNGG0ZbRji5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbHUgY3lsaW5kZXJzLCAlbHUgaGVhZHMsICVsdSBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQlNC40YHQuiAlczogJWx1INGG0LjQu9GW0L3QtNGA0ZbQsiwgJWx1INCz0L7Qu9C+0LLQvtC6LCAlbHUg0YHQtdC60YLQvtGA0ZbQsi/QtNC+0YDRltC20LrRg1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKyIlcyDQtyDRgNC+0LfQtNGW0LvRgyAlcyDQvNCw0ZQg0L3QtdC80L7QttC70LjQstC1INC30L3QsNGH0LXQvdC90Y8g0LrRltC70YzQutC+0YHRgtGWINCz0L7Qu9C+0LLQvtC6OiAlbHUgKNC80YPRgdC40YLRjCDQsdGD0YLQuCAwLSIKKyIlbHUpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBzZWN0b3I6ICVsdSAoc2hvdWxkIGJlIGluIDEtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorIiVzINC3INGA0L7Qt9C00ZbQu9GDICVzINC80LDRlCDQvdC10LzQvtC20LvQuNCy0LUg0LfQvdCw0YfQtdC90L3RjyDQutGW0LvRjNC60L7RgdGC0ZYg0YHQtdC60YLQvtGA0ZbQsjogJWx1ICjQvNGD0YHQuNGC0Ywg0LHRg9GC0LggIgorIjEtJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgY3lsaW5kZXJzOiAlbHUgKHNob3VsZCBiZSBpbiAwLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyDQtyDRgNC+0LfQtNGW0LvRgyAlcyDQvNCw0ZQg0L3QtdC80L7QttC70LjQstC1INC30L3QsNGH0LXQvdC90Y8g0LrRltC70YzQutC+0YHRgtGWINGG0LjQu9GW0L3QtNGA0ZbQsjogJWx1ICjQvNGD0YHQuNGC0Ywg0LHRg9GC0LggIgorIjAtJWx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIiIKKyLQhtC00LXQvdGC0LjRhC4g0J3QsNC30LLQsFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIC4uLlxuIgorbXNnc3RyICLQn9C10YDQtdGH0LjRgtGD0ZTRgtGM0YHRjyDRgtCw0LHQu9C40YbRjyDRgNC+0LfQtNGW0LvRltCyIC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTEKKyMsIGZ1enp5Cittc2dpZCAiIgorIlRoZSBjb21tYW5kIHRvIHJlLXJlYWQgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQuXG4iCisiUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIG9yIHJlYm9vdCB5b3VyIHN5c3RlbSBub3csXG4iCisiYmVmb3JlIHVzaW5nIG1rZnNcbiIKK21zZ3N0ciAiIgorItCa0L7QvNCw0L3QtNCwINC/0LXRgNC10YfQuNGC0YPQstCw0L3QvdGPINGC0LDQsdC70LjRhtGWINGA0L7Qt9C00ZbQu9GW0LIg0LfQsNCy0LXRgNGI0LjQu9Cw0YHRjCDQsNCy0LDRgNGW0LnQvdC+XG4iCisi0J/QtdGA0LXQt9Cw0LLQsNC90YLQsNC20YLQtSDRgdC40YHRgtC10LzRgyDQv9C10YDQtdC0INCy0LjQutC+0YDQuNGB0YLQsNC90L3Rj9C8IG1rZnNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNsb3NpbmcgJXNcbiIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0LfQsNC60YDQuNCy0LDQvdC90Y8gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBzdWNoIHBhcnRpdGlvblxuIgorbXNnc3RyICIlczog0L3QtdC80LDRlCDRgtCw0LrQvtCz0L4g0YDQvtC30LTRltC70YNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODc4Cittc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCAtIHVzaW5nIHNlY3RvcnNcbiIKK21zZ3N0ciAi0L3QtdGA0L7Qt9C/0ZbQt9C90LDQvdC40Lkg0YTQvtGA0LzQsNGCIC0g0LLQuNC60L7RgNC40YHRgtC+0LLRg9GO0YLRjNGB0Y8g0YHQtdC60YLQvtGA0LhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAi0L3QtdGA0LXQsNC70ZbQt9C+0LLQsNC90LjQuSDRhNC+0YDQvNCw0YIgLSDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gY3lsaW5kZXJzIG9mICVsdSBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorItCe0LTQuNC90LjRhtGWINCy0LjQvNGW0YDRgyA9INGG0LjQu9GW0L3QtNGA0Lgg0L/QviAlbHUg0LHQsNC50YIsINCx0LvQvtC60Lgg0L/QviAxMDI0INCx0LDQudGCLCDRgNCw0YXRg9GO0YfQuCDQstGW0LQgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgICBFbmQgICAjY3lscyAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICLQn9GA0LjRgdGC0YDRltC5INCX0LDQstCw0L3RgiDQn9C+0YfQsNGC0L7QuiDQmtGW0L3QtdGG0Ywg0KbQuNC70ZbQvdC00YDRltCyINCR0LvQvtC60ZbQsiAgINCG0LQgINCh0LjRgdGC0LXQvNCwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisi0J7QtNC40L3QuNGG0ZYg0LLQuNC80ZbRgNGDID0g0YHQtdC60YLQvtGA0Lgg0L/QviA1MTIg0LHQsNC50YIsINGA0LDRhdGD0Y7Rh9C4INCy0ZbQtCAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICAgU3RhcnQgICAgICAgRW5kICAgI3NlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAi0J/RgNC40YHRgtGA0ZbQuSDQl9Cw0LLQsNC90YIg0J/QvtGH0LDRgtC+0LogICAg0JrRltC90LXRhtGMICAg0KHQtdC60YLQvtGA0ZbQsiAg0IbQtCAg0KHQuNGB0YLQtdC80LBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyLQntC00LjQvdC40YbRjyDQstC40LzRltGA0YMgPSDQsdC70L7QutC4INC/0L4gMTAyNCDQsdCw0LnRgiwg0YDQsNGF0YPRjtGH0Lgg0LLRltC0ICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCAgIFN0YXJ0ICAgICAgIEVuZCAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICLQn9GA0LjRgdGC0YDRltC5INCX0LDQstCw0L3RgiDQn9C+0YfQsNGC0L7QuiAgINCa0ZbQvdC10YbRjCAgICAg0JHQu9C+0LrRltCyICAg0IbQtCAg0KHQuNGB0YLQtdC80LBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IG1lYmlieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisi0J7QtNC40L3QuNGG0ZYg0LLQuNC80ZbRgNGDID0gbWViaS3QsdCw0LnRgtC4INC/0L4gMTA0ODU3NiDQsdCw0LnRgiwg0LHQu9C+0LrQuCDQv9C+IDEwMjQg0LHQsNC50YIsINGA0LDRhdGD0Y7Rh9C4INCy0ZbQtCAiCisiJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgIE1pQiAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIgINCf0YDQuNGB0YLRgNGW0Lkg0JfQsNCy0LDQvdGCINCf0L7Rh9Cw0YLQvtC6INCa0ZbQvdC10YbRjCDQnNCxICAgICDQkdC70L7QutGW0LIgICDQhtC0ICDQodC40YHRgtC10LzQsFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorIlx0XHTQv9C+0YfQsNGC0L7QujogKGMsaCxzKSDQvtGH0ZbQutGD0LLQsNC70L7RgdGMICglbGQsJWxkLCVsZCkg0LfQvdCw0LnQtNC10L3QviAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdNC60ZbQvdC10YbRjDogKGMsaCxzKSDQvtGH0ZbQutGD0LLQsNC70L7RgdGMICglbGQsJWxkLCVsZCkg0LfQvdCw0LnQtNC10L3QviAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICLRgNC+0LfQtNGW0Lsg0LfQsNC60ZbQvdGH0YPRlNGC0YzRgdGPINC90LAg0YbQuNC70ZbQvdC00YDRliAgJWxkLCDQt9CwINC80LXQttC10Y4g0L7QsdGB0Y/Qs9GDINC00LjRgdC60YNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAi0J3QtSDQt9C90LDQudC00LXQvdC+INGA0L7Qt9C00ZbQu9GW0LJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INCh0YXQvtC20LUs0YnQviDRgtCw0LHQu9C40YbRjyDRgNC+0LfQtNGW0LvRltCyINCx0YPQu9CwINC30YDQvtCx0LvQtdC90LBcbiIKKyIgINC00LvRjyBDL0gvUz0qLyVsZC8lbGQgKNC30LDQvNGW0YHRgtGMICVsZC8lbGQvJWxkKS5cbiIKKyLQlNC70Y8g0YbRjNC+0LPQviDQstC40LLQvtC00YMg0LLQstCw0LbQsNGC0LjQvNC10YLRjNGB0Y8g0YbRjyDQs9C10L7QvNC10YLRgNGW0Y8uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAi0LLRltC00YHRg9GC0L3RjyDRgtCw0LHQu9C40YbRjyDRgNC+0LfQtNGW0LvRltCyLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg4CisjLCBjLWZvcm1hdAorbXNnaWQgInN0cmFuZ2UsIG9ubHkgJWQgcGFydGl0aW9ucyBkZWZpbmVkLlxuIgorbXNnc3RyICLQtNC40LLQvdC+LCDQstC40LfQvdCw0YfQtdC90L4g0LvQuNGI0LUgJWQg0YDQvtC30LTRltC70ZbQsi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBidXQgaXMgbm90IG1hcmtlZCBFbXB0eVxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INGA0L7Qt9C00ZbQuyAlcyDQvNCw0ZQg0YDQvtC30LzRltGAIDAsINCw0LvQtSDQvdC1INC/0L7Qt9C90LDRh9C10L3QuNC5INC/0L7RgNC+0LbQvdGW0LxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDRgNC+0LfQtNGW0LsgJXMg0LzQsNGUINGA0L7Qt9C80ZbRgCAwINGC0LAg0L/QvtC30L3QsNGH0LXQvdC40Lkg0LfQsNCy0LDQvdGC0LDQttGD0LLQsNC70YzQvdC40LxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgbm9uemVybyBzdGFydFxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INGA0L7Qt9C00ZbQuyAlcyDQvNCw0ZQg0YDQvtC30LzRltGAIDAg0LDQu9C1INC/0L7Rh9C40L3QsNGU0YLRjNGB0Y8g0L3QtSDQtyDQvdGD0LvRj1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyAiCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0YDQvtC30LTRltC7ICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIgorbXNnc3RyICLQvdC1INGA0L7Qt9GC0LDRiNC+0LLQsNC90LjQuSDRgyDRgNC+0LfQtNGW0LvRliAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbnMgJXMgIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INGA0L7Qt9C00ZbQu9C4ICVzICIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICLRgtCwICVzINC/0LXRgNC10LrRgNC40LLQsNGO0YLRjNGB0Y9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogcGFydGl0aW9uICVzIGNvbnRhaW5zIHBhcnQgb2YgdGhlIHBhcnRpdGlvbiB0YWJsZSAoc2VjdG9yICVsdSksXG4iCisiYW5kIHdpbGwgZGVzdHJveSBpdCB3aGVuIGZpbGxlZFxuIgorbXNnc3RyICIiCisi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDRgNC+0LfQtNGW0LsgJXMg0LzRltGB0YLQuNGC0Ywg0YfQsNGB0YLQuNC90YMg0YLQsNCx0LvQuNGG0ZYg0YDQvtC30LTRltC70ZbQsiAo0YHQtdC60YLQvtGAICVsdSksXG4iCisi0YLQsCDRl9GXINCx0YPQtNC1INC30L3QuNGJ0LXQvdC+INC/0YDQuCDQudC+0LPQviDQt9Cw0L/QvtCy0L3QtdC90L3RllxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDRgNC+0LfQtNGW0LsgJXMg0L/QvtGH0LjQvdCw0ZTRgtGM0YHRjyDQtyDRgdC10LrRgtC+0YAgMFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBleHRlbmRzIHBhc3QgZW5kIG9mIGRpc2tcbiIKK21zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDRgNC+0LfQtNGW0LsgJXMg0L/QvtGI0LjRgNGO0ZTRgtGM0YHRjyDQt9CwINC80LXQttGWINC00LjRgdC60YNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorItCa0YDRltC8INC/0LXRgNCy0LjQvdC90LjRhSDRgNC+0LfQtNGW0LvRltCyLCDQv9GA0LjQvdCw0LnQvNC90ZYg0L7QtNC40L0g0LzQvtC20LUg0LHRg9GC0Lgg0YDQvtC30YjQuNGA0LXQvdC40LxcbiIKKyIgKNGF0L7Rh9CwINGG0LUg0L3QtSDQv9GA0L7QsdC70LXQvNCwINC00LvRjyBMaW51eClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INGA0L7Qt9C00ZbQuyAlcyDQv9C+0YfQuNC90LDRlNGC0YzRgdGPINC90LUg0Lcg0LzQtdC20ZYg0YbQuNC70ZbQvdC00YDQsFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INGA0L7Qt9C00ZbQuyAlcyDQvdC1INC30LDQutGW0L3Rh9GD0ZTRgtGM0YHRjyDQvdCwINC80LXQttGWINGG0LjQu9GW0L3QtNGA0LBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxMQorbXNnaWQgIiIKKyJXYXJuaW5nOiBtb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKyLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INCx0ZbQu9GM0Ygg0L3RltC2INC+0LTQuNC9INC/0LXRgNCy0LjQvdC90LjQuSDRgNC+0LfQtNGW0Lsg0L/QvtC30L3QsNGH0LXQvdC40Lkg0LfQsNCy0LDQvdGC0LDQttGD0LLQsNC70YzQvdC40LwgIgorIijQsNC60YLQuNCy0L3QuNC8KVxuIgorItCm0LUg0L3QtSDQvNCw0ZQg0LfQvdCw0YfQtdC90L3RjyDQtNC70Y8gTGlsbywg0LDQu9C1IERPUyBNQlIg0L3QtSDQt9C80L7QttC1INC30LDQstCw0L3RgtCw0LbRg9Cy0LDRgtC40YHRjCDQtyDRhtGM0L7Qs9C+ICIKKyLQtNC40YHQutGDLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzE4Cittc2dpZCAiIgorIldhcm5pbmc6IHVzdWFsbHkgb25lIGNhbiBib290IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zIG9ubHlcbiIKKyJMSUxPIGRpc3JlZ2FyZHMgdGhlIGBib290YWJsZScgZmxhZy5cbiIKK21zZ3N0ciAiIgorItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0LfQsNC30LLQuNGH0LDQuSDQvNC+0LbQvdCwINC30LDQstCw0L3RgtCw0LbRg9Cy0LDRgtC40YHRjCDQu9C40YjQtSDQtyDQv9C10YDQstC40L3QvdC40YUg0YDQvtC30LTRltC70ZbQslxuIgorIkxJTE8g0L3QtSDQt9Cy0LXRgNGC0LDRlCDRg9Cy0LDQs9C4INC90LAg0L7Qt9C90LDQutGDIGDQt9Cw0LLQsNC90YLQsNC20YPQstCw0LvRjNC90LjQuScuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMjQKK21zZ2lkICIiCisiV2FybmluZzogbm8gcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0L3QtdC80LDRlCDQv9C10YDQstC40L3QvdC+0LPQviDRgNC+0LfQtNGW0LvRgyDQv9C+0LfQvdCw0YfQtdC90L7Qs9C+INC30LDQstCw0L3RgtCw0LbRg9Cy0LDQu9GM0L3QuNC8ICIKKyIo0LDQutGC0LjQstC90LjQvClcbiIKKyLQptC1INC90LXRgdGD0YLRgtGU0LLQviDQtNC70Y8gTElMTywg0LDQu9C1IERPUyBNQlIg0L3QtSDQt9C80L7QttC1INC30LDQstCw0L3RgtCw0LbRg9Cy0LDRgtC40YHRjCDQtyDRhtGM0L7Qs9C+INC00LjRgdC60YMuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMzgKK21zZ2lkICJzdGFydCIKK21zZ3N0ciAi0L/QvtGH0LDRgtC+0LoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInBhcnRpdGlvbiAlczogc3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKyLRgNC+0LfQtNGW0LsgJXM6INC/0L7Rh9Cw0YLQvtC6OiAoYyxoLHMpINC+0YfRltC60YPQstCw0LvQvtGB0YwgKCVsZCwlbGQsJWxkKSDQt9C90LDQudC00LXQvdC+ICglbGQsJWxkLCUiCisibGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgItC60ZbQvdC10YbRjCIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorItGA0L7Qt9C00ZbQuyAlczog0LrRltC90LXRhtGMOiAoYyxoLHMpINC+0YfRltC60YPQstCw0LvQvtGB0YwgKCVsZCwlbGQsJWxkKSDQt9C90LDQudC00LXQvdC+ICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgItGA0L7Qt9C00ZbQuyAlcyDQt9Cw0LrRltC90YfRg9GU0YLRjNGB0Y8g0L3QsCDRhtC40LvRltC90LTRgNGWICVsZCwg0LfQsCDQvNC10LbQsNC80Lgg0LTQuNGB0LrRg1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzaGlmdGVkIHN0YXJ0IG9mIHRoZSBleHRkIHBhcnRpdGlvbiBmcm9tICVsZCB0byAlbGRcbiIKKyIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorbXNnc3RyICIiCisi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDQt9C80ZbRidC10L3QviDQv9C+0YfQsNGC0L7QuiDRgNC+0LfRiNC40YDQtdC90L7Qs9C+INGA0L7Qt9C00ZbQu9GDINC3ICVsZCDQvdCwICVsZFxuIgorIijQm9C40YjQtSDQtNC70Y8g0LLRltC00L7QsdGA0LDQttC10L3QvdGPLiDQndC1INC30LzRltC90Y7QudGC0LUg0LLQvNGW0YHRgi4pXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzODQKK21zZ2lkICIiCisiV2FybmluZzogZXh0ZW5kZWQgcGFydGl0aW9uIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnkuXG4iCisiRE9TIGFuZCBMaW51eCB3aWxsIGludGVycHJldCB0aGUgY29udGVudHMgZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INGA0L7Qt9GI0LjRgNC10L3QuNC5INGA0L7Qt9C00ZbQuyDQvdC1INC/0L7Rh9C40L3QsNGU0YLQtdGB0Y8g0L3QsCDQvNC10LbRliDRhtC40LvRltC90LTRgNCwLlxuIgorIkRPUyDRgtCwIExpbnV4INCx0YPQtNGD0YLRjCDRltC90YLQtdGA0L/RgNC10YLRg9Cy0LDRgtC4INCy0LzRltGB0YIg0L/Qvi3RgNGW0LfQvdC+0LzRgy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQwMiBmZGlzay9zZmRpc2suYzoxNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnMgLSBpZ25vcmluZyB0aG9zZSBwYXN0IG5yICglZClcbiIKK21zZ3N0ciAi0L3QsNC00YLQviDQsdCw0LPQsNGC0L4g0YDQvtC30LTRltC70ZbQsiAtINGW0LPQvdC+0YDRg9GU0YLRjNGB0Y8g0L/QvtC/0LXRgNC10LTQvdGW0LkgbnIgKCVkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDE3Cittc2dpZCAidHJlZSBvZiBwYXJ0aXRpb25zP1xuIgorbXNnc3RyICLQtNC10YDQtdCy0L4g0YDQvtC30LTRltC70ZbQsj9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUyNQorbXNnaWQgImRldGVjdGVkIERpc2sgTWFuYWdlciAtIHVuYWJsZSB0byBoYW5kbGUgdGhhdFxuIgorbXNnc3RyICLQt9C90LDQudC00LXQvdC+IERpc2sgTWFuYWdlciAtINGG0LUg0L3QvdC1INCy0LTQsNGU0YLRjNGB0Y/QvtCx0YDQvtCx0LjRgtC4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgItC30L3QsNC50LTQtdC90L4gRE02INGB0LjQs9C90LDRgtGD0YDRgyAtINCy0ZbQtNC80ZbQvdCwINC+0L/QtdGA0LDRhtGW0ZdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1MgorbXNnaWQgInN0cmFuZ2UuLi4sIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgItC00LjQstC90L4uLi4sINGA0L7Qt9GI0LjRgNC10L3QuNC5INGA0L7Qt9C00ZbQuyDQvdGD0LvRjNC+0LLQvtCz0L4g0YDQvtC30LzRltGA0YM/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTkgZmRpc2svc2ZkaXNrLmM6MTU3MAorbXNnaWQgInN0cmFuZ2UuLi4sIGEgQlNEIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgItC00LjQstC90L4uLi4sIEJTRCDRgNC+0LfQvNGW0YAg0L3Rg9C70YzQvtCy0L7Qs9C+INGA0L7Qt9C80ZbRgNGDP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iCittc2dzdHIgIiAlczog0L3QtdCy0ZbQtNC+0LzQuNC5INGC0LjQvyDRgtCw0LHQu9C40YbRliDRgNC+0LfQtNGW0LvRltCyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MTYKK21zZ2lkICItbiBmbGFnIHdhcyBnaXZlbjogTm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgItCy0LrQsNC30LDQvdC+INC/0LDRgNCw0LzQtdGC0YAgLW46INCd0ZbRh9C+0LPQviDQvdC1INC30LzRltC90LXQvdC+XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzIKK21zZ2lkICJGYWlsZWQgc2F2aW5nIHRoZSBvbGQgc2VjdG9ycyAtIGFib3J0aW5nXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cx0LXRgNC10LPRgtC4INGB0YLQsNGA0ZYg0YHQtdC60YLQvtGA0LggLSDQstC40LrQvtC90LDQvdC90Y8g0L/QtdGA0LXRgNCy0LDQvdC+XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzcgZmRpc2svc2ZkaXNrLmM6MTY0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cw0L/QuNGB0LDRgtC4INGA0L7Qt9C00ZbQuyDQvdCwICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3MTkKK21zZ2lkICJsb25nIG9yIGluY29tcGxldGUgaW5wdXQgbGluZSAtIHF1aXR0aW5nXG4iCittc2dzdHIgItC00L7QstCz0LjQuSDQsNCx0L4g0L3QtdC30LDQstC10YDRiNC10L3QuNC5INCy0YXRltC00L3QuNC5INGA0Y/QtNC+0LogLSDQt9Cw0LLQtdGA0YjQtdC90L3Rj1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LLQstC+0LTRgzog0L7Rh9GW0LrRg9Cy0LDQstGB0Y8g0YHQuNC80LLQvtC7IGA9JyDQv9GW0YHQu9GPINC/0L7Qu9GPICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IHVuZXhwZWN0ZWQgY2hhcmFjdGVyICVjIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgItC/0L7QvNC40LvQutCwINCy0LLQvtC00YM6INC+0YfRltC60YPQstCw0LLRgdGPINGB0LjQvNCy0L7QuyAlYyDQv9GW0YHQu9GPINC/0L7Qu9GPICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICLQvdC10YDQvtC30L/RltC30L3QsNC90LjQuSDQstCy0ZbQtDogJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgItGH0LjRgdC70L4g0LfQsNC90LDQtNGC0L4g0LLQtdC70LjQutC1XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICLQvdC1INGG0LjRhNGA0Lgg0L/RltGB0LvRjyDRh9C40YHQu9CwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICLQvdC10LzQsNGUINC80ZbRgdGG0Y8g0LTQu9GPINC00LXRgdC60YDQuNC/0YLQvtGA0YMg0YDQvtC30LTRltC70YNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTk3MQorbXNnaWQgImNhbm5vdCBidWlsZCBzdXJyb3VuZGluZyBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINGB0YLQstC+0YDQuNGC0Lgg0L7RgtC+0YfRg9GO0YfQuNC5INGA0L7Qt9GI0LjRgNC10L3QuNC5INGA0L7Qt9C00ZbQu1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDIyCittc2dpZCAidG9vIG1hbnkgaW5wdXQgZmllbGRzXG4iCittc2dzdHIgItC90LDQtNGC0L4g0LHQsNCz0LDRgtC+INCy0YXRltC00L3QuNGFINC/0L7Qu9GW0LJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA1NgorbXNnaWQgIk5vIHJvb20gZm9yIG1vcmVcbiIKK21zZ3N0ciAi0J3QtdC80LDRlCDQsdGW0LvRjNGI0LUg0LzRltGB0YbRj1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgItCd0LXQtNC+0L/Rg9GB0YLQuNC80LjQuSDRgtC40L9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIiIKKyLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INCy0LrQsNC30LDQvdC40Lkg0YDQvtC30LzRltGAICglbHUpINC/0LXRgNC10LLQuNGJ0YPRlCDQtNC+0L/Rg9GB0YLQuNC80LjQuSDRgNC+0LfQvNGW0YAgKCVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjExMworbXNnaWQgIldhcm5pbmc6IGVtcHR5IHBhcnRpdGlvblxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC/0L7RgNC+0LbQvdGW0Lkg0YDQvtC30LTRltC7XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHBhcnRpdGlvbiBzdGFydCAoZWFybGllc3QgJWx1KVxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC90LXQv9GA0LDQstC40LvRjNC90LjQuSDQv9C+0YfQsNGC0L7QuiDRgNC+0LfQtNGW0LvRgyAo0YDQsNC90ZbRiNC1ICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE0MAorbXNnaWQgInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIgorbXNnc3RyICLQvdC1INGA0L7Qt9C/0ZbQt9C90LDQvdCwINC30LDQstCw0L3RgtCw0LbRg9Cy0LDQu9GM0L3QsCDQvtC30L3QsNC60LAgLSDQstC40LHQtdGA0ZbRgtGMIC0g0LDQsdC+ICpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1NyBmZGlzay9zZmRpc2suYzoyMTcwCittc2dpZCAicGFydGlhbCBjLGgscyBzcGVjaWZpY2F0aW9uP1xuIgorbXNnc3RyICLRh9Cw0YHRgtC60L7QstCwINGB0L/QtdGG0LjRhNGW0LrQsNGG0ZbRjyDRhtC40Lss0LPQvtC7LNGB0LXQutGCP1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTgxCittc2dpZCAiRXh0ZW5kZWQgcGFydGl0aW9uIG5vdCB3aGVyZSBleHBlY3RlZFxuIgorbXNnc3RyICLQoNC+0LfRiNC40YDQtdC90LjQuSDRgNC+0LfQtNGW0Lsg0L3QtSDRgtCw0Lwg0LTQtSDQvNCw0ZQg0LHRg9GC0Lgg0YDQvtC30YjQuNGA0LXQvdC40LlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIxMworbXNnaWQgImJhZCBpbnB1dFxuIgorbXNnc3RyICLQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0LLQstGW0LRcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAi0L3QsNC00YLQviDQsdCw0LPQsNGC0L4g0YDQvtC30LTRltC70ZbQslxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjY4Cittc2dpZCAiIgorIklucHV0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OyBhYnNlbnQgZmllbGRzIGdldCBhIGRlZmF1bHQgdmFsdWUuXG4iCisiPHN0YXJ0PiA8c2l6ZT4gPHR5cGUgW0UsUyxMLFgsaGV4XT4gPGJvb3RhYmxlIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyJVc3VhbGx5IHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSA8c3RhcnQ+IGFuZCA8c2l6ZT4gKGFuZCBwZXJoYXBzIDx0eXBlPikuXG4iCittc2dzdHIgIiIKKyLQktCy0ZbQtCDRgyDQvdCw0YHRgtGD0L/QvdC+0LzRgyDRhNC+0YDQvNCw0YLRljsg0LLRltC00YHRg9GC0L3RliDQv9C+0LvRjyDQvtGC0YDQuNC80YPRjtGC0Ywg0YLQuNC/0L7QstC1INC30L3QsNGH0LXQvdC90Y8uXG4iCisiPNC/0L7Rh9Cw0YLQvtC6PiA80YDQvtC30LzRltGAPiA80YLQuNC/IFtFLFMsTCxYLGhleF0+IDzQvtC30L0u0LfQsNCy0LDQvdGC0LDQti4gWy0sKl0+IDxjLGgscz4gPGMsaCwiCisicz5cbiIKKyLQl9Cw0LfQstC40YfQsNC5LCDQstCw0Lwg0L3QtdC+0LHRhdGW0LTQvdC+INC70LjRiNC1INCy0LrQsNC30LDRgtC4IDzQv9C+0YfQsNGC0L7Quj4g0YLQsCA80YDQvtC30LzRltGAPiAo0YLQsCDQvNC+0LbQu9C40LLQviAiCisiPNGC0LjQvz4pLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gZGV2aWNlIC4uLlxuIgorbXNnc3RyICLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86ICVzIFvQv9Cw0YDQsNC80LXRgtGA0LhdINC/0YDQuNGB0YLRgNGW0LkgLi4uXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTUKK21zZ2lkICJkZXZpY2U6IHNvbWV0aGluZyBsaWtlIC9kZXYvaGRhIG9yIC9kZXYvc2RhIgorbXNnc3RyICLQv9GA0LjRgdGC0YDRltC5OiDRidC+0YHRjCDQvdCwINC30YDQsNC30L7QuiAvZGV2L2hkYSDRh9C4IC9kZXYvc2RhIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk2Cittc2dpZCAidXNlZnVsIG9wdGlvbnM6IgorbXNnc3RyICLQutC+0YDQuNGB0L3RliDQv9Cw0YDQsNC80LXRgtGA0Lg6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgIC1zIFvQsNCx0L4gLS1zaG93LXNpemVdOiDQstC40LLQtdGB0YLQuCDRgNC+0LfQvNGW0YAg0YDQvtC30LTRltC70YMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTgKK21zZ2lkICIgICAgLWMgW29yIC0taWRdOiAgICAgICAgcHJpbnQgb3IgY2hhbmdlIHBhcnRpdGlvbiBJZCIKK21zZ3N0ciAiICAgIC1jIFvQsNCx0L4gLS1pZF06ICAgICAgICDQstC40LLQtdGB0YLQuCDQsNCx0L4g0LfQvNGW0L3QuNGC0Lgg0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YAg0YDQvtC30LTRltC70YMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIgICAgLWwgW9Cw0LHQviAtLWxpc3RdOiAgICAgINCy0LjQstC10YHRgtC4INGA0L7Qt9C00ZbQu9C4INC60L7QttC90L7Qs9C+INC/0YDQuNGB0YLRgNC+0Y4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAtZCBb0LDQsdC+IC0tZHVtcF06ICAgICAg0YLQtSDQtiDRgdCw0LzQtSwg0LDQu9C1INGDINGE0L7RgNC80LDRgtGWINC/0YDQuNC50L3Rj9GC0L3QvtC80YMg0LTQu9GPICIKKyLQv9C+0LTQsNC70YzRiNC+0LPQviDQstCy0L7QtNGDIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiIKKyIgICAgLWkgW9Cw0LHQviAtLWluY3JlbWVudF06INC60ZbQu9GM0LrRltGB0YLRjCDRhtC40LvRltC90LTRgNGW0LIg0L/QvtGH0LjQvdCw0ZTRgtGM0YHRjyDQtyAxLCDQsCDQvdC1INC3IDAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDIKK21zZ2lkICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGFjY2VwdC9yZXBvcnQgaW4gdW5pdHMgb2Ygc2VjdG9ycy9ibG9ja3MvY3lsaW5kZXJzLyIKKyJNQiIKK21zZ3N0ciAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICAg0LLQstGW0LQv0LLQuNCy0ZbQtCDRgyDQvtC00LjQvdC40YbRj9GFINGB0LXQutGC0L7RgNC4L9Cx0LvQvtC60Lgv0YbQuNC70ZbQvdC00YDQuC/QnNCxIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAzCittc2dpZCAiICAgIC1UIFtvciAtLWxpc3QtdHlwZXNdOmxpc3QgdGhlIGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiICAgIC1UIFvQsNCx0L4gLS1saXN0LXR5cGVzXTrQstC40LLQtdGB0YLQuCDQstGB0ZYg0LLRltC00L7QvNGWINGC0LjQv9C4INGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorIiAgICAtRCBb0LDQsdC+IC0tRE9TXTogICAgICAg0LTQu9GPIERPUy3RgdGD0LzRltGB0L3QvtGB0YLRljog0LLRgtGA0LDRh9Cw0ZTRgtGM0YHRjyDRgtGA0L7RhdC4INC/0YDQvtGB0YLQvtGA0YMiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgLVIgW29yIC0tcmUtcmVhZF06ICAgbWFrZSBrZXJuZWwgcmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgIC1SIFvQsNCx0L4gLS1yZS1yZWFkXTogICDQt9C80YPRgdC40YLQuCDRj9C00YDQviDQv9C10YDQtdGH0LjRgtCw0YLQuCDRgtCw0LHQu9C40YbRjiDRgNC+0LfQtNGW0LvRltCyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA2Cittc2dpZCAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIGNoYW5nZSBvbmx5IHRoZSBwYXJ0aXRpb24gd2l0aCBudW1iZXIgIyIKK21zZ3N0ciAiICAgIC1OIyA6ICAgICAgICAgICAgICAgICDQt9C80ZbQvdC40YLQuCDQu9C40YjQtSDRgNC+0LfQtNGW0Lsg0Lcg0L3QvtC80LXRgNC+0LwgIyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBkbyBub3QgYWN0dWFsbHkgd3JpdGUgdG8gZGlzayIKK21zZ3N0ciAiICAgIC1uIDogICAgICAgICAgICAgICAgICDQvdC1INC30LDQv9C40YHRg9Cy0LDRgtC4INC90ZbRh9C+0LPQviDQvdCwINC00LjRgdC6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA4Cittc2dpZCAiIgorIiAgICAtTyBmaWxlIDogICAgICAgICAgICBzYXZlIHRoZSBzZWN0b3JzIHRoYXQgd2lsbCBiZSBvdmVyd3JpdHRlbiB0byBmaWxlIgorbXNnc3RyICIiCisiICAgIC1PIGZpbGUgOiAgICAgICAgICAgICDQt9Cx0LXRgNC10LPRgtC4INGDINGE0LDQudC7INGB0LXQutGC0L7RgNC4LCDRj9C60ZYg0LHRg9C00YPRgtGMINC/0LXRgNC10LfQsNC/0LjRgdCw0L3RliIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAtSSBmaWxlIDogICAgICAgICAgICByZXN0b3JlIHRoZXNlIHNlY3RvcnMgYWdhaW4iCittc2dzdHIgIiAgICAtSSBmaWxlIDogICAgICAgICAgICAg0LLRltC00L3QvtCy0LjRgtC4INGG0ZYg0YHQtdC60YLQvtGA0Lgg0LfQvdC+0LLRgyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIgorbXNnc3RyICIgICAgLXYgW9Cw0LHQviAtLXZlcnNpb25dOiAgINCy0LjQstC10YHRgtC4INCy0LXRgNGB0ZbRjiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiAgICAtPyBb0LDQsdC+IC0taGVscF06ICAgICAg0LLQuNCy0LXRgdGC0Lgg0YbQtSDQv9C+0LLRltC00L7QvNC70LXQvdC90Y8iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTIKK21zZ2lkICJkYW5nZXJvdXMgb3B0aW9uczoiCittc2dzdHIgItC90LXQsdC10LfQv9C10YfQvdGWINC/0LDRgNCw0LzQtdGC0YDQuDoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTMKK21zZ2lkICIgICAgLWcgW29yIC0tc2hvdy1nZW9tZXRyeV06IHByaW50IHRoZSBrZXJuZWwncyBpZGVhIG9mIHRoZSBnZW9tZXRyeSIKK21zZ3N0ciAiICAgIC1nIFvQsNCx0L4gLS1zaG93LWdlb21ldHJ5XTog0LLQuNCy0LXRgdGC0Lgg0LLQuNC00LDQvdGDINGP0LTRgNC+0Lwg0LPQtdC+0LzQtdGC0YDRltGOIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE0Cittc2dpZCAiIgorIiAgICAtRyBbb3IgLS1zaG93LXB0LWdlb21ldHJ5XTogcHJpbnQgZ2VvbWV0cnkgZ3Vlc3NlZCBmcm9tIHRoZSBwYXJ0aXRpb24gIgorInRhYmxlIgorbXNnc3RyICIiCisiICAgIC1HIFtvciAtLXNob3ctcHQtZ2VvbWV0cnldOiDQstC40LLQtdGB0YLQuCDQstC40LTQsNC90YMsINGP0LrRgyDQstC40LfQvdCw0YfQtdC90L4g0Lcg0YLQsNCx0LvQuNGG0ZYgIgorItGA0L7Qt9C00ZbQu9GW0LIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTUKK21zZ2lkICIiCisiICAgIC14IFtvciAtLXNob3ctZXh0ZW5kZWRdOiBhbHNvIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyBvbiBvdXRwdXRcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cGVjdCBkZXNjcmlwdG9ycyBmb3IgdGhlbSBvbiBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAteCBb0LDQsdC+IC0tc2hvdy1leHRlbmRlZF06INGC0LDQutC+0LYg0LLQuNCy0LXRgdGC0Lgg0L/QtdGA0LXQu9GW0Log0YDQvtC30YjQuNGA0LXQvdC40YUg0YDQvtC30LTRltC70ZbQslxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCw0LHQviDQvtGH0ZbQutGD0LLQsNGC0Lgg0ZfRhSDQtNC10YHQutGA0LjQv9GC0L7RgNC4INC/0YDQuCDQstCy0L7QtNGWIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE3Cittc2dpZCAiIgorIiAgICAtTCAgW29yIC0tTGludXhdOiAgICAgIGRvIG5vdCBjb21wbGFpbiBhYm91dCB0aGluZ3MgaXJyZWxldmFudCBmb3IgTGludXgiCittc2dzdHIgIiAgICAtTCAgW9Cw0LHQviAtLUxpbnV4XTogICAgICDQvdC1INGB0LrQsNGA0LbQuNGC0LjRgdGMINC90LAg0L3QtdGB0YPRgtGC0ZTQstGWINC00LvRjyBMaW51eCDRgNC10YfRliIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOAorbXNnaWQgIiAgICAtcSAgW29yIC0tcXVpZXRdOiAgICAgIHN1cHByZXNzIHdhcm5pbmcgbWVzc2FnZXMiCittc2dzdHIgIiAgICAtcSAgW9Cw0LHQviAtLXF1aWV0XTogICAgICDQvdC1INCy0LjQstC+0LTQuNGC0Lgg0L/QvtC/0LXRgNC10LTQttC10L3QvdGPIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiICAgINCS0Lgg0LzQvtC20LXRgtC1INC/0LXRgNC10LLQuNC30L3QsNGH0LjRgtC4INCy0LjRj9Cy0LvQtdC90YMg0LPQtdC+0LzQtdGC0YDRltGOINCy0LjQutC+0YDQuNGB0YLQvtCy0YPRjtGH0Lg6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIwCittc2dpZCAiICAgIC1DIyBbb3IgLS1jeWxpbmRlcnMgI106c2V0IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1DIyBb0LDQsdC+IC0tY3lsaW5kZXJzICNdOtCy0YHRgtCw0L3QvtCy0LjRgtC4INC60ZbQu9GM0LrRltGB0YLRjCDRhtC40LvRltC90LTRgNGW0LIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjEKK21zZ2lkICIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICBzZXQgdGhlIG51bWJlciBvZiBoZWFkcyB0byB1c2UiCittc2dzdHIgIiAgICAtSCMgW9Cw0LHQviAtLWhlYWRzICNdOiAgICDQstGB0YLQsNC90L7QstC40YLQuCDQutGW0LvRjNC60ZbRgdGC0Ywg0LPQvtC70L7QstC+0LoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjIKK21zZ2lkICIgICAgLVMjIFtvciAtLXNlY3RvcnMgI106ICBzZXQgdGhlIG51bWJlciBvZiBzZWN0b3JzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1TIyBb0LDQsdC+IC0tc2VjdG9ycyAjXTogINCy0YHRgtCw0L3QvtCy0LjRgtC4INC60ZbQu9GM0LrRltGB0YLRjCDRgdC10LrRgtC+0YDRltCyIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIzCittc2dpZCAiWW91IGNhbiBkaXNhYmxlIGFsbCBjb25zaXN0ZW5jeSBjaGVja2luZyB3aXRoOiIKK21zZ3N0ciAi0JLQuCDQvNC+0LbQtdGC0LUg0LLQuNC80LrQvdGD0YLQuCDQv9C10YDQtdCy0ZbRgNC60YMg0LvQvtCz0ZbRh9C90L7RgdGC0ZYg0LfQsCDQtNC+0L/QvtC80L7Qs9C+0Y46IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzI0Cittc2dpZCAiICAgIC1mICBbb3IgLS1mb3JjZV06ICAgICAgZG8gd2hhdCBJIHNheSwgZXZlbiBpZiBpdCBpcyBzdHVwaWQiCittc2dzdHIgIiIKKyIgICAgLWYgIFvQsNCx0L4gLS1mb3JjZV06ICAgICAg0LLQuNC60L7QvdGD0LLQsNGC0Lgg0LrQvtC80LDQvdC00Lgg0L/RgNC40LzRg9GB0L7QstC+LCDQvdCw0LLRltGC0Ywg0LHQtdC30LPQu9GD0LfQtNGWIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMwCittc2dpZCAiVXNhZ2U6IgorbXNnc3RyICLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZVx0XHQgbGlzdCBhY3RpdmUgcGFydGl0aW9ucyBvbiBkZXZpY2VcbiIKK21zZ3N0ciAiJXMg0L/RgNC40YHRgtGA0ZbQuVx0XHQg0LLQuNCy0LXRgdGC0Lgg0LDQutGC0LjQstC90ZYg0YDQvtC30LTRltC70Lgg0L/RgNC40YHRgtGA0L7RjlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZSBuMSBuMiAuLi4gYWN0aXZhdGUgcGFydGl0aW9ucyBuMSAuLi4sIGluYWN0aXZhdGUgdGhlIHJlc3RcbiIKK21zZ3N0ciAiJXMg0L/RgNC40YHRgtGA0ZbQuSBuMSBuMiAuLi4g0LDQutGC0LjQstGD0LLQsNGC0Lgg0YDQvtC30LTRltC7IG4xIC4uLiwg0LTQtS3QsNC60YLQuNCy0YPQstCw0YLQuCDRgNC10YjRgtGDXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLUFuIGRldmljZVx0IGFjdGl2YXRlIHBhcnRpdGlvbiBuLCBpbmFjdGl2YXRlIHRoZSBvdGhlciBvbmVzXG4iCittc2dzdHIgIiVzIC1BbiDQv9GA0LjRgdGC0YDRltC5XHQg0LDQutGC0LjQstGD0LLQsNGC0Lgg0YDQvtC30LTRltC7IG4sINC00LUt0LDQutGC0LjQstGD0LLQsNGC0Lgg0YDQtdGI0YLRgyDRgNC+0LfQtNGW0LvRltCyXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAi0JLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSDQv9Cw0YDQsNC80LXRgtGAIC0tZm9yY2UsINGJ0L7QsSDQstGW0LTRhdC40LvQuNGC0Lgg0LLRgdGWINC/0LXRgNC10LLRltGA0LrQuC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgItC90LXQvNCw0ZQg0LrQvtC80LDQvdC00Lg/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAidG90YWw6ICVsbHUgYmxvY2tzXG4iCittc2dzdHIgItC30LDQs9Cw0LvQvtC8OiAlbGx1INCx0LvQvtC60ZbQslxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcwCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLXByaW50LWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3Rjzogc2ZkaXNrIC0tcHJpbnQtaWQg0L/RgNC40YHRgtGA0ZbQuSDQvdC+0LzQtdGAX9GA0L7Qt9C00ZbQu9GDXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzIKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tY2hhbmdlLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIElkXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3Rjzogc2ZkaXNrIC0tY2hhbmdlLWlkINC/0YDQuNGB0YLRgNGW0Lkg0L3QvtC80LXRgF/RgNC+0LfQtNGW0LvRgyDRltC00LXQvdGC0LjRhC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3NAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBbSWRdXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3Rjzogc2ZkaXNrIC0taWQg0L/RgNC40YHRgtGA0ZbQuSDQvdC+0LzQtdGAX9C/0YDQuNGB0YLRgNC+0Y4gW9GW0LTQtdC90YLQuNGELl1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY4MQorbXNnaWQgImNhbiBzcGVjaWZ5IG9ubHkgb25lIGRldmljZSAoZXhjZXB0IHdpdGggLWwgb3IgLXMpXG4iCittc2dzdHIgItC80L7QttC90LAg0LLQutCw0LfRg9Cy0LDRgtC4INC70LjRiNC1INC+0LTQuNC9INC/0YDQuNGB0YLRgNGW0LkgKNC30LAg0LLQuNC90Y/RgtC60L7QvCAtbCDRh9C4IC1zKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAi0L3QtdC80L7QttC70LjQstGWINCy0ZbQtNC60YDQuNGC0LggJXMg0LTQu9GPINGH0LjRgtCw0L3QvdGPLdC30LDQv9C40YHRg1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgItC90LXQvNC+0LbQu9C40LLRliDQstGW0LTQutGA0LjRgtC4ICVzINC00LvRjyDRh9C40YLQsNC90L3Rj1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczog0JPQsNGA0LDQt9C0XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3NTMgZmRpc2svc2ZkaXNrLmM6Mjc4NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN5bGluZGVycywgJWxkIGhlYWRzLCAlbGQgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIlczogJWxkINGG0LjQu9GW0L3QtNGA0ZbQsiwgJWxkINCz0L7Qu9C+0LLQvtC6LCAlbGQg0YHQtdC60YLQvtGA0ZbQsi/RgtGA0LXQulxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgc2l6ZSBvZiAlc1xuIgorbXNnc3RyICLQndC1INCy0LTQsNGU0YLRjNGB0Y8g0L7RgtGA0LjQvNCw0YLQuCDRgNC+0LfQvNGW0YAgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LjQuSAn0LDQutGC0LjQstC90LjQuScg0LHQsNC50YIgMHgleCDQt9Cw0LzRltGB0YLRjCAweDgwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorItCS0LjQutC+0L3QsNC90L5cbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgJWQgYWN0aXZlIHByaW1hcnkgcGFydGl0aW9ucy4gVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sXG4iCisiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIKK21zZ3N0ciAiIgorItCf0L7Qt9C90LDRh9C10L3QviDQsNC60YLQuNCy0L3QuNC80LggJWQg0YDQvtC30LTRltC70ZbQsi4g0KbQtSDQvdC10LzQsNGUINC30L3QsNGH0LXQvdC90Y8g0LTQu9GPIExJTE8sXG4iCisi0JDQu9C1IERPUyBNQlIg0LzQvtC20LUg0LfQsNCy0LDQvdGC0LDQttGD0LLQsNGC0LjRgdGMINC70LjRiNC1INC3INC00LjRgdC60ZbQsiwg0YMg0Y/QutC40YUgMSDQsNC60YLQuNCy0L3QuNC5INGA0L7Qt9C00ZbQuy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkyOAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgaGFzIGlkICV4IGFuZCBpcyBub3QgaGlkZGVuXG4iCittc2dzdHIgItGA0L7Qt9C00ZbQuyAlcyDQvNCw0ZQg0ZbQtNC10L3RgtC40YQuICV4INGC0LAg0LLRltC9INC90LUg0L/RgNC40YXQvtCy0LDQvdC40LlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgSWQgJWx4XG4iCittc2dzdHIgItCd0LXQv9GA0LDQstC40LvRjNC90LjQuSDQhtC00LXQvdGCLiAlbHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAwNAorbXNnaWQgIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlLlxuIgorbXNnc3RyICLQptC10Lkg0LTQuNGB0Log0L3QsNGA0LDQt9GWINCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhdGFsIGVycm9yOiBjYW5ub3QgZmluZCAlc1xuIgorbXNnc3RyICLQpNCw0YLQsNC70YzQvdCwINC/0L7QvNC40LvQutCwOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQvdCw0LnRgtC4ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3RjzogJXMg0L3QtSDRlCDQsdC70L7Rh9C90LjQvCDQv9GA0LjRgdGC0YDQvtGU0LxcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzMgorbXNnaWQgIkNoZWNraW5nIHRoYXQgbm8tb25lIGlzIHVzaW5nIHRoaXMgZGlzayByaWdodCBub3cgLi4uXG4iCittc2dzdHIgItCf0LXRgNC10LLRltGA0Y/RlNGC0YzRgdGPLCDRidC+INC90ZbRhdGC0L4g0L3QsNGA0LDQt9GWINC90LUg0LLQuNC60L7RgNC40YHRgtC+0LLRg9GUINC00LjRgdC6IC4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM0Cittc2dpZCAiIgorIlxuIgorIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlIC0gcmVwYXJ0aXRpb25pbmcgaXMgcHJvYmFibHkgYSBiYWQgaWRlYS5cbiIKKyJVbW91bnQgYWxsIGZpbGUgc3lzdGVtcywgYW5kIHN3YXBvZmYgYWxsIHN3YXAgcGFydGl0aW9ucyBvbiB0aGlzIGRpc2suXG4iCisiVXNlIHRoZSAtLW5vLXJlcmVhZCBmbGFnIHRvIHN1cHByZXNzIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQptC10Lkg0LTQuNGB0Log0L3QsNGA0LDQt9GWINCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPIC0g0LfQvNGW0L3QsCDRgNC+0LfQtNGW0LvRltCyLCDQvNC+0LbQu9C40LLQviwg0L/QvtCz0LDQvdCwINGW0LTQtdGPLlxuIgorItCU0LXQvNC+0L3RgtGD0LnRgtC1INCy0YHRliDRhNCw0LnQu9C+0LLRliDRgdC40YHRgtC10LzQuCwg0YLQsCDQstGW0LTQutC70Y7Rh9GW0YLRjCDQstGB0ZYg0YDQvtC30LTRltC70Lgg0L/RltC00LrQsNGH0LrQuCDQvdCwINGG0YzQvtC80YMgIgorItC00LjRgdC60YMuXG4iCisi0JLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSDQv9Cw0YDQsNC80LXRgtGAIC0tbm8tcmVyZWFkINGJ0L7QsSDQvtCx0LzQuNC90YPRgtC4INGG0Y4g0L/QtdGA0LXQstGW0YDQutGDLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM4Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgYWxsIGNoZWNrcy5cbiIKK21zZ3N0ciAi0JLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSDQv9Cw0YDQsNC80LXRgtGAIC0tZm9yY2UsINGJ0L7QsSDQstGW0LTRhdC40LvQuNGC0Lgg0LLRgdGWINC/0LXRgNC10LLRltGA0LrQuC5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA0MgorbXNnaWQgIk9LXG4iCittc2dzdHIgItCT0LDRgNCw0LfQtFxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIk9sZCBzaXR1YXRpb246XG4iCittc2dzdHIgItCh0YLQsNGA0LjQuSDRgdGC0LDQvTpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCBjaGFuZ2UgaXRcbiIKK21zZ3N0ciAi0KDQvtC30LTRltC7ICVkINC90LUg0ZbRgdC90YPRlCwg0L3QtSDQstC00LDRlNGC0YzRgdGPINC50L7Qs9C+INC30LzRltC90LjRgtC4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAi0J3QvtCy0LjQuSDRgdGC0LDQvTpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisi0KbRliDRgNC+0LfQtNGW0LvQuCDQstC40LPQu9GP0LTQsNGO0YLRjCDQvdC10L/RgNCw0LLQuNC70YzQvdC+IC0g0L3RltGH0L7Qs9C+INC90LUg0LfQvNGW0L3QtdC90L4uXG4iCisiKNCv0LrRidC+INCy0Lgg0LTRltC50YHQvdC+INGG0YzQvtCz0L4g0LHQsNC20LDRlNGC0LUsINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0L/QsNGA0LDQvNC10YLRgCAtLWZvcmNlLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAi0KbRliDRgNC+0LfQtNGW0LvQuCDQstC40LPQu9GP0LTQsNGO0YLRjCDQvdC10L/RgNCw0LLQuNC70YzQvdC+IC0g0LzQvtC20LvQuNCy0L4g0YHQu9GW0LQg0LLRltC00L/QvtCy0ZbRgdGC0LggTm9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJBcmUgeW91IHNhdGlzZmllZCB3aXRoIHRoaXM/IFt5bnFdICIKK21zZ3N0ciAi0JLQuCDRhtC40Lwg0LfQsNC00L7QstC+0LvQtdC90ZY/IFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyB5b3Ugd2FudCB0byB3cml0ZSB0aGlzIHRvIGRpc2s/IFt5bnFdICIKK21zZ3N0ciAi0JHQsNC20LDRlNGC0LUg0LfQsNC/0LjRgdCw0YLQuCDQvdCwINC00LjRgdC6PyBbeW5xXSAiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGVuZCBvZiBpbnB1dFxuIgorbXNnc3RyICIiCisiXG4iCisic2ZkaXNrOiDQv9C10YDQtdC00YfQsNGB0L3QtSDQt9Cw0LrRltC90YfQtdC90L3RjyDQstCy0L7QtNGDXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODUKK21zZ2lkICJRdWl0dGluZyAtIG5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICLQl9Cw0LLQtdGA0YjQtdC90L3RjyAtINC90ZbRh9C+0LPQviDQvdC1INC30LzRltC90LXQvdC+XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGxlYXNlIGFuc3dlciBvbmUgb2YgeSxuLHFcbiIKK21zZ3N0ciAi0JLRltC00L/QvtCy0ZbQtNCw0LnRgtC1INC+0LTQvdC1INC3IHksbixxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisi0KPRgdC/0ZbRiNC90L4g0LfQsNC/0LjRgdCw0L3QviDQvdC+0LLRgyDRgtCw0LHQu9C40YbRjiDRgNC+0LfQtNGW0LvRltCyXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorItCv0LrRidC+INCy0Lgg0YHRgtCy0L7RgNC40LvQuCDQsNCx0L4g0LfQvNGW0L3QuNC70LggRE9TINGA0L7Qt9C00ZbQuywg0YHQutCw0LbRltC80L4gL2Rldi9mb283LCDRgtC+0LTRliAiCisi0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSBkZCgxKVxuIgorItC00LvRjyDQt9Cw0L/QvtCy0L3QtdC90L3RjyDQvdGD0LvRj9C80Lgg0L/QtdGA0YjQuNGFIDUxMiDQsdCw0LnRgjogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyICIKKyJjb3VudD0xXG4iCisiKNCU0LjQstGW0YLRjNGB0Y8gZmRpc2soOCkuKVxuIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlczogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGJhZCBmb3JtYXQgb24gbGluZSAlZCBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjM1MgorbXNnaWQgIiIKKyJXQVJOSU5HOiBZb3VyIC9ldGMvZnN0YWIgZG9lcyBub3QgY29udGFpbiB0aGUgZnNjayBwYXNzbm9cbiIKKyJcdGZpZWxkLiAgSSB3aWxsIGtsdWRnZSBhcm91bmQgdGhpbmdzIGZvciB5b3UsIGJ1dCB5b3VcbiIKKyJcdHNob3VsZCBmaXggeW91ciAvZXRjL2ZzdGFiIGZpbGUgYXMgc29vbiBhcyB5b3UgY2FuLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjQ2MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZnNjazogJXM6IG5vdCBmb3VuZFxuIgorbXNnc3RyICJ1bW91bnQ6ICVzOiDQvdC1INGW0YHQvdGD0ZQiCisKKyM6IGZzY2svZnNjay5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FpdDogTm8gbW9yZSBjaGlsZCBwcm9jZXNzPyE/XG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmcuLi4gJXMgZm9yIGRldmljZSAlcyBleGl0ZWQgd2l0aCBzaWduYWwgJWQuXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVzOiBzdGF0dXMgaXMgJXgsIHNob3VsZCBuZXZlciBoYXBwZW4uXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NjQzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmlzaGVkIHdpdGggJXMgKGV4aXQgc3RhdHVzICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjcwMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzIGZvciAlc1xuIgorbXNnc3RyICIlczog0L/QvtC80LjQu9C60LAgJWQg0L/RgNC4INC00LXQutC+0LzQv9GA0LXRgdGW0ZchICVwKCVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKKyMsIGZ1enp5Cittc2dpZCAiQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBmaWxlc3lzdGVtIHR5cGVzXG4iCittc2dzdHIgIm1vdW50OiDQvdC10L7QsdGF0ZbQtNC90L4g0LLQutCw0LfQsNGC0Lgg0YLQuNC/INGE0LDQudC70L7QstC+0Zcg0YHQuNGB0YLQtdC80LgiCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6ODkyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgbm9uZXhpc3RlbnQgZGV2aWNlXG4iCittc2dzdHIgIiVzOiAlcyDQvdC1INGUIGxwINC/0YDQuNGB0YLRgNC+0ZTQvC5cbiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKKyMsIGZ1enp5Cittc2dpZCAiQ2hlY2tpbmcgYWxsIGZpbGUgc3lzdGVtcy5cbiIKK21zZ3N0ciAi0J/RgNC40LzRg9GB0L7QstCwINC/0LXRgNC10LLRltGA0LrQsCDRhNCw0LnQu9C+0LLQvtGXINGB0LjRgdGC0LXQvNC4INC90LAgJXMuXG4iCisKKyM6IGZzY2svZnNjay5jOjEwNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS13YWl0aW5nLS0gKHBhc3MgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTA4NQorIywgZnV6enkKK21zZ2lkICIiCisiVXNhZ2U6IGZzY2sgWy1BTU5QUlRWXSBbIC1DIFsgZmQgXSBdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBbZmlsZXN5cyAuLi5dXG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogbWtmcyBbLVZdIFstdCDRgtC40L/QpNChXSBb0L/QsNGA0LDQvNC10YLRgNC4LdCk0KFdINC/0YDQuNGB0YLRgNGW0LkgW9GA0L7Qt9C80ZbRgF1cbiIKKworIzogZnNjay9mc2NrLmM6MTEyMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGRldmljZXNcbiIKK21zZ3N0ciAiJXM6ICVzINC90LUg0ZQgbHAg0L/RgNC40YHRgtGA0L7RlNC8LlxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlczogJXNcbiIKKworIzogZnNjay9mc2NrLmM6MTEzNgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiJXMg0LLRltC00LrQu9GO0YfQtdC90L5cbiIKKworIzogZnNjay9mc2NrLmM6MTE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIHJvb3QgdG8gc2NhbiBmb3IgbWF0Y2hpbmcgZmlsZXN5c3RlbXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTE0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgZmluZCBtYXRjaGluZyBmaWxlc3lzdGVtOiAlc1xuIgorbXNnc3RyICLQktGW0LTQutC70Y7Rh9C10L3QvdGPINGA0LXRiNGC0Lgg0YTQsNC50LvQvtCy0LjRhSDRgdC40YHRgtC10LwuLi4iCisKKyM6IGZzY2svZnNjay5jOjExNTYgZnNjay9mc2NrLmM6MTI0MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGFyZ3VtZW50c1xuIgorbXNnc3RyICIlczog0L3QtdCy0ZbQtNC+0LzQuNC5INCw0YDQs9GD0LzQtdC90YI6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjEyNzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZzY2sgZnJvbSAlc1xuIgorbXNnc3RyICIlcyDQtyAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgZnNja19wYXRoXG4iCittc2dzdHIgItCd0LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTRltC70LjRgtC4INCx0YPRhNC10YAg0LTQu9GPINCy0YPQt9C70ZbQsiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjIyOQorbXNnaWQgIlRyeSBgZ2V0b3B0IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgItCh0L/RgNC+0LHRg9C50YLQtSBgZ2V0b3B0IC0taGVscCcsINGJ0L7QsSDQvtGC0YDQuNC80LDRgtC4INC00L7QtNCw0YLQutC+0LLRgyDRltC90YTQvtGA0LzQsNGG0ZbRji5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAi0L/QvtGA0L7QttC90ZbQuSDQtNC+0LLQuNC5INC/0LDRgNCw0LzQtdGC0YAg0L/RltGB0LvRjyDQsNGA0LPRg9C80LXQvdGC0YMgLWwg0LDQsdC+IC0tbG9uZyIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMxNQorbXNnaWQgInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIKK21zZ3N0ciAi0L3QtdCy0ZbQtNC+0LzQsCDQvtCx0L7Qu9C+0L3QutCwINC/0ZbRgdC70Y8g0LDRgNCz0YPQvNC10L3RgtGDIC1zINCw0LHQviAtLXNoZWxsIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIwCittc2dpZCAiVXNhZ2U6IGdldG9wdCBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86IGdldG9wdCDRgdC/0LXRhtC40YRf0LDRgNCzINC/0LDRgNCw0LzQtdGC0YDQuFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIxCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgZ2V0b3B0IFvQsNGA0LPRg9C80LXQvdGC0LhdIFstLV0g0YHQv9C10YbQuNGEX9Cw0YDQsyDQv9Cw0YDQsNC80LXRgtGA0LhcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMgorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIC1vfC0tb3B0aW9ucyBvcHRzdHJpbmcgW29wdGlvbnNdIFstLV1cbiIKK21zZ3N0ciAiIgorIiAgICAgICBnZXRvcHQgW9Cw0YDQs9GD0LzQtdC90YLQuF0gLW98LS1vcHRpb25zINGB0L/QtdGG0LzRhF/QsNGA0LMg0L/QsNGA0LDQvNC10YLRgNC4IFvQsNGA0LPRg9C80LXQvdGC0LhdICIKKyJbLS1dXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjMKK21zZ2lkICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICDQv9Cw0YDQsNC80LXRgtGA0LhcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNAorbXNnaWQgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQWxsb3cgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggc2luZ2xlIC1cbiIKK21zZ3N0ciAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICDQlNC+0LLQs9GWINCw0YDQs9GD0LzQtdC90YLQuCDQvNC+0LbRg9GC0Ywg0L/QvtGH0LjQvdCw0LvQuNGB0Ywg0Lcg0L7QtNC90L7Qs9C+IC1cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNQorbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBUaGlzIHNtYWxsIHVzYWdlIGd1aWRlXG4iCittc2dzdHIgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICDQktC40LLQtdGB0YLQuCDRhtGOINC00L7QstGW0LTQutGDXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbCwgLS1sb25nb3B0aW9ucz3QtNC+0LLQs9GWX9Cw0YDQsyAg0KHQv9C10YbQuNGE0ZbQutCw0YbRltGPINC00L7QstCz0LjRhSDQsNGA0LPRg9C80LXQvdGC0ZbQslxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI3Cittc2dpZCAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iCittc2dzdHIgIiIKKyIgIC1uLCAtLW5hbWU90L3QsNC30LLQsF/Qv9GA0L7Qs9GA0LDQvNC4ICAgINCf0L7QvNC40LvQutC4INCy0LjQstC+0LTQuNGC0Lgg0LLRltC0INGW0LzQtdC90ZYg0YbRltGU0Zcg0L/RgNC+0LPRgNCw0LzQuFxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI4Cittc2dpZCAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIFNob3J0IG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1vLCAtLW9wdGlvbnM90YHQv9C10YbQuNGEX9Cw0YDQsyAgICAg0KHQv9C10YbQuNGE0ZbQutCw0YbRltGPINC60L7RgNC+0YLQutC40YUg0LDRgNCz0YPQvNC10L3RgtGW0LJcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOQorbXNnaWQgIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICBEaXNhYmxlIGVycm9yIHJlcG9ydGluZyBieSBnZXRvcHQoMylcbiIKK21zZ3N0ciAiIgorIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgICDQktC40LzQutC90YPRgtC4INC/0L7QstGW0LTQvtC80LvQtdC90L3RjyDQv9GA0L4g0L/QvtC80LjQu9C60Lgg0LLRltC0IGdldG9wdCIKKyIoMylcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMAorbXNnaWQgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBub3JtYWwgb3V0cHV0XG4iCittc2dzdHIgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICDQkdC10Lcg0LfQstC40YfQsNC50L3QvtCz0L4g0LLQuNCy0L7QtNGDXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiIgorIiAgLXMsIC0tc2hlbGw90L7QsdC+0LvQvtC90LrQsCAgICAgICAgINCS0YHRgtCw0L3QvtCy0LjRgtC4INGB0YLQuNC70Ywg0YbQuNGC0YPQstCw0L3QvdGPINGP0Log0YMg0L7QsdC+0LvQvtC90YbRllxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiAgLVQsIC0tdGVzdCAgICAgICAgICAgICAgICAgICDQn9C10YDQtdCy0ZbRgNC40YLQuCDQstC10YDRgdGW0Y4gZ2V0b3B0KDEpXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzMKK21zZ2lkICIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgRG8gbm90IHF1b3RlIHRoZSBvdXRwdXRcbiIKK21zZ3N0ciAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgINCd0LUg0YbQuNGC0YPQstCw0YLQuCDQstC40LLRltC0XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgINCS0LjQstC10YHRgtC4INGW0L3RhNC+0YDQvNCw0YbRltGOINC/0YDQviDQstC10YDRgdGW0Y5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjM4OCBnZXRvcHQvZ2V0b3B0LmM6NDQ3Cittc2dpZCAibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiCittc2dzdHIgItCy0ZbQtNGB0YPRgtC90ZbQuSDQsNGA0LPRg9C80LXQvdGCINGB0L/QtdGG0LjRhF/QsNGA0LMiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiZ2V0b3B0ICjRgNC+0LfRiNC40YDQtdC90LApIDEuMS40XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0NDEKK21zZ2lkICJpbnRlcm5hbCBlcnJvciwgY29udGFjdCB0aGUgYXV0aG9yLiIKK21zZ3N0ciAi0LLQvdGD0YLRgNGW0YjQvdGPINC/0L7QvNC40LvQutCwLCDQt9CyJ9GP0LbRltGC0YzRgdGPINC3INCw0LLRgtC+0YDQvtC8LiIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAi0YHQuNGB0YLQtdC80LAg0LfQsNCy0LDQvdGC0LDQttC10L3QsCDQtyBNSUxPXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJSdWZmaWFuIEJDRCBjbG9ja1xuIgorbXNnc3RyICJSdWZmaWFuIEJDRCDQs9C+0LTQuNC90L3QuNC6XG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbG9ja3BvcnQgYWRqdXN0ZWQgdG8gMHgleFxuIgorbXNnc3RyICLQv9C+0YDRgiDQs9C+0LTQuNC90L3QuNC60LAg0L3QsNGB0YLRgNC+0ZTQvdC+INC90LAgMHgleFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICLQsdC+0Y/Qt9C70LjQstC40LkgVE9ZIVxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGF0b21pYyAlcyBmYWlsZWQgZm9yIDEwMDAgaXRlcmF0aW9ucyEiCittc2dzdHIgIiVzOiDQv9C+0LzQuNC70LrQsCDQsNGC0L7QvNCw0YDQvdC+0Zcg0L7Qv9C10YDQsNGG0ZbRjyAlcyDQt9CwIDEwMDAg0ZbRgtC10YDQsNGG0ZbQuSEiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHJlYWQgZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4IC9kZXYvcG9ydDogJXMiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0LTQvtC30LLRltC7LCDRgtC+0LzRgy3RidC+INC90LUg0LHRg9C70L4g0LfRgNC+0LHQu9C10L3QviDRgdC/0YDQvtCx0LguXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyB1bmFibGUgdG8gZ2V0IEkvTyBwb3J0IGFjY2VzczogIHRoZSBpb3BsKDMpIGNhbGwgZmFpbGVkLlxuIgorbXNnc3RyICIiCisiJXMg0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0LTQvtGB0YLRg9C/INC00L4g0L/QvtGA0YLRgyBJL086ICDQv9C+0LzQuNC70LrQsCDRgdC40YHRgtC10LzQvdC+0LPQviDQstC40LrQu9C40LrRgyBpb3BsIgorIigzKS5cbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JhYmx5IHlvdSBuZWVkIHJvb3QgcHJpdmlsZWdlcy5cbiIKK21zZ3N0ciAi0JzQvtC20LvQuNCy0L4g0YHQu9GW0LQg0LzQsNGC0Lgg0L/RgNCw0LLQsCDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgNCwLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiAlcyB0aW1lLlxuIgorbXNnc3RyICLQktCy0LDQttCw0ZTRgtGM0YHRjywg0YnQviDQsNC/0LDRgNCw0YLQvdC40Lkg0LPQvtC00LjQvdC90LjQuiDRgdC40L3RhdGA0L7QvdGW0LfQvtCy0LDQvdC40Lkg0LcgJXMg0YfQsNGB0L7QvC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgIlVUQyIKK21zZ3N0ciAiVVRDIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI1Cittc2dpZCAibG9jYWwiCittc2dzdHIgItC70L7QutCw0LvRjNC90LjQuSIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXYXJuaW5nOiB1bnJlY29nbml6ZWQgdGhpcmQgbGluZSBpbiBhZGp0aW1lIGZpbGVcbiIKK21zZ3N0ciAiJXM6INCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0L3QtdGA0L7Qt9C/0ZbQt9C90LDQvdC40Lkg0YLRgNC10YLRltC5INGA0Y/QtNC+0Log0YMgYWRqdGltZSDRhNCw0LnQu9GWXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICIoRXhwZWN0ZWQ6IGBVVEMnIG9yIGBMT0NBTCcgb3Igbm90aGluZy4pXG4iCittc2dzdHIgIijQntGH0ZbQutGD0LLQsNC70L7RgdGMOiDQsNCx0L4gYFVUQycsINCw0LHQviBgTE9DQUwnLCDQsNCx0L4g0L/QvtGA0L7QttC90ZbQuSDRgNGP0LTQvtC6LilcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAi0J7RgdGC0LDQvdC90Y8g0LrQvtGA0LXQutGG0ZbRjyDQstGW0LTRhdC40LvQtdC90L3RjyDQstC40LrQvtC90LDQvdCwINGDICVsZCDRgdC10LrRg9C90LQg0L/RltGB0LvRjyAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICLQntGB0YLQsNC90L3RlCDQutCw0LvRltCx0YDRg9Cy0LDQvdC90Y8g0LLQuNC60L7QvdCw0L3QviDRgyAlbGQg0YHQtdC60YPQvdC0INC/0ZbRgdC70Y8gMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGFyZHdhcmUgY2xvY2sgaXMgb24gJXMgdGltZVxuIgorbXNnc3RyICLQkNC/0LDRgNCw0YLQvdC40Lkg0LPQvtC00LjQvdC90LjQuiDQvdCw0LvQsNGI0YLQvtCy0LDQvdC40Lkg0L3QsCAlcyDRh9Cw0YFcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAidW5rbm93biIKK21zZ3N0ciAi0L3QtdCy0ZbQtNC+0LzQuNC5IgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBmb3IgY2xvY2sgdGljay4uLlxuIgorbXNnc3RyICLQntGH0ZbQutGD0ZTRgtGM0YHRjyDRgdC40LPQvdCw0Lsg0LPQvtC00LjQvdC90LjQutCwLi4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5zeW5jaHJvbml6YXRpb24gZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmdvdCBjbG9jayB0aWNrXG4iCittc2dzdHIgIi4uLtC+0YLRgNC40LzQsNC90L4g0YHQuNCz0L3QsNC7INCz0L7QtNC40L3QvdC40LrQsFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKK21zZ3N0ciAiIgorItCd0LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDRgyDQsNC/0LDRgNCw0YLQvdC+0LzRgyDQs9C+0LTQuNC90L3QuNC60YM6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisi0KfQsNGBINCw0L/QsNGA0LDRgtC90L7Qs9C+INCz0L7QtNC40L3QvdC40LrQsDogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZCA9ICVsZCDRgdC10LrRg9C90LQg0L/RltGB0LvRjyAiCisiMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSByZWFkIGZyb20gSGFyZHdhcmUgQ2xvY2s6ICU0ZC8lLjJkLyUuMmQgJTAyZDolMDJkOiUwMmRcbiIKK21zZ3N0ciAi0KfQsNGBINC/0YDQvtGH0LjRgtCw0L3QuNC5INC3INCw0L/QsNGA0LDRgtC90L7Qs9C+INCz0L7QtNC40L3QvdC40LrQsDogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2V0dGluZyBIYXJkd2FyZSBDbG9jayB0byAlLjJkOiUuMmQ6JS4yZCA9ICVsZCBzZWNvbmRzIHNpbmNlIDE5NjlcbiIKK21zZ3N0ciAiIgorItCQ0L/QsNGA0LDRgtC90LjQuSDQs9C+0LTQuNC90L3QuNC6INCy0YHRgtCw0L3QvtCy0LvRjtGU0YLRjNGB0Y8g0YMgJS4yZDolLjJkOiUuMmQgPSAlbGQg0YHQtdC60YPQvdC0INC/0ZbRgdC70Y8gMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgItCT0L7QtNC40L3QvdC40Log0L3QtSDQt9C80ZbQvdC10L3QviAtINC70LjRiNC1INC/0LXRgNC10LLRltGA0LrQsC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTM1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorItCn0LDRgSwg0YnQviDQvNC40L3Rg9CyINC3INGB0LjQvdGF0YDQvtC90ZbQt9Cw0YbRltGXINGH0LDRgdGDICUuNmYg0YHQtdC60YPQvdC0LlxuIgorItCe0YfRltC60YPRlNGC0YzRgdGPINC00L7RgdGP0LPQvdC10L3QvdGPINC90LDRgdGC0YPQv9C90L7RlyDQv9C+0LLQvdC+0Zcg0YHQtdC60YPQvdC00LguXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjU3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIHJlZ2lzdGVycyBjb250YWluIHZhbHVlcyB0aGF0IGFyZSBlaXRoZXIgaW52YWxpZCAoZS5nLiAiCisiNTB0aCBkYXkgb2YgbW9udGgpIG9yIGJleW9uZCB0aGUgcmFuZ2Ugd2UgY2FuIGhhbmRsZSAoZS5nLiBZZWFyIDIwOTUpLlxuIgorbXNnc3RyICIiCisi0KDQtdCz0ZbRgdGC0YDQuCDQsNC/0LDRgNCw0YLQvdC+0LPQviDQs9C+0LTQuNC90L3QuNC60LAg0LzRltGB0YLRj9GC0Ywg0LfQvdCw0YfQtdC90L3Rjywg0Y/QutC1INCw0LHQviDQvdC10L/RgNCw0LLQuNC70YzQvdC1ICIKKyIo0L3QsNC/0YDQuNC60LvQsNC0IDUwLdC5INC00LXQvdGMINC80ZbRgdGP0YbRjyksINCw0LHQviDQt9CwINC80LXQttCw0LzQuCwg0Y/QutGWINC80L7QttC1INC+0LHRgNC+0LHQuNGC0Lgg0L/RgNC+0LPRgNCw0LzQsCAiCisiKNC90LDQv9GA0LjQutC70LDQtCAyMDk10YDRltC6KS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiJXMgICUuNmYg0YHQtdC60YPQvdC0XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAi0J3QtSDQsdGD0LvQviDQstC60LDQt9Cw0L3QviDQv9Cw0YDQsNC80LXRgtGAIC0tZGF0ZS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICLQsNGA0LPRg9C80LXQvdGCIC0tZGF0ZSDQvdCw0LTRgtC+INC00L7QstCz0LjQuVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSB2YWx1ZSBvZiB0aGUgLS1kYXRlIG9wdGlvbiBpcyBub3QgYSB2YWxpZCBkYXRlLlxuIgorIkluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHF1b3RhdGlvbiBtYXJrcy5cbiIKK21zZ3N0ciAiIgorItCX0L3QsNGH0LXQvdC90Y8g0LDRgNCz0YPQvNC10L3RgtGDIC0tZGF0ZSDQvdC1INGUINC/0YDQsNCy0LjQu9GM0L3QvtGOINC00LDRgtC+0Y4uXG4iCisi0JfQvtC60YDQtdC80LAsINCy0L7QvdC+INC80ZbRgdGC0LjRgtGMINC70LDQv9C60LguXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJc3N1aW5nIGRhdGUgY29tbWFuZDogJXNcbiIKK21zZ3N0ciAi0JLQuNC60L7QvdGD0ZTRgtGM0YHRjyDQutC+0LzQsNC90LTQsCBkYXRlOiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDAKK21zZ2lkICJVbmFibGUgdG8gcnVuICdkYXRlJyBwcm9ncmFtIGluIC9iaW4vc2ggc2hlbGwuIHBvcGVuKCkgZmFpbGVkIgorbXNnc3RyICIiCisi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0LjQutC+0L3QsNGC0Lgg0LrQvtC80LDQvdC00YMgJ2RhdGUnINGDINC+0LHQvtC70L7QvdGG0ZYgL2Jpbi9zaC4g0J/QvtC80LjQu9C60LAgcG9wZW4oKSIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3BvbnNlIGZyb20gZGF0ZSBjb21tYW5kID0gJXNcbiIKK21zZ3N0ciAi0LLQuNCy0ZbQtCDQutC+0LzQsNC90LTQuCBkYXRlID0gJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdHMuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAgJXNcbiIKK21zZ3N0ciAiIgorItCa0L7QvNCw0L3QtNCwIGRhdGUg0LLQuNC60L7QvdCw0L3QsCAlcyDQv9C+0LLQtdGA0L3Rg9C70LAg0L3QtdC+0YfRltC60YPQstCw0L3QuNC5INGA0LXQt9GD0LvRjNGC0LDRgi5cbiIKKyLQmtC+0LzQsNC90LTQsDpcbiIKKyIgICVzXG4iCisi0KDQtdC30YPQu9GM0YLQsNGCOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBpbnRlZ2VyIHdoZXJlICIKKyJ0aGUgY29udmVydGVkIHRpbWUgdmFsdWUgd2FzIGV4cGVjdGVkLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgJXNcbiIKK21zZ3N0ciAiIgorItCa0L7QvNCw0L3QtNCwIGRhdGUg0LLQuNC60L7QvdCw0L3QsCAlcyDQv9C+0LLQtdGA0L3Rg9C70LAg0YDQtdC30YPQu9GM0YLQsNGCINCy0ZbQtNC80ZbQvdC90LjQuSDQstGW0LQg0YbRltC70L7Qs9C+INGH0LjRgdC70LAsINGP0LrQtSAiCisi0LzQsNC70L4g0LEg0LHRg9GC0Lgg0LrQvtC90LLQtdGA0YLQvtCy0LDQvdC40Lwg0LfQvdCw0YfQtdC90L3Rj9C8INGH0LDRgdGDLlxuIgorItCa0L7QvNCw0L3QtNCwOlxuIgorIiAgJXNcbiIKKyLQoNC10LfRg9C70YzRgtCw0YI6XG4iCisiICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJkYXRlIHN0cmluZyAlcyBlcXVhdGVzIHRvICVsZCBzZWNvbmRzIHNpbmNlIDE5NjkuXG4iCittc2dzdHIgItGA0Y/QtNC+0Log0LTQsNGC0LggJXMg0LTQvtGA0ZbQstC90Y7RlCAlbGQg0YHQtdC60YPQvdC00LDQvCDQtyAxOTY5LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IHNldCB0aGUgIgorIlN5c3RlbSBUaW1lIGZyb20gaXQuXG4iCittc2dzdHIgIiIKKyLQkNC/0LDRgNCw0YLQvdC40Lkg0LPQvtC00LjQvdC90LjQuiDQvNGW0YHRgtC40YLRjCDQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YfQsNGBLCDQv9GA0L7Qs9GA0LDQvNCwINC90LUg0LzQvtC20LUg0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0L/QviAiCisi0L3RjNC+0LzRgyDRgdC40YHRgtC10LzQvdC40Lkg0YfQsNGBLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjcgaHdjbG9jay9od2Nsb2NrLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgc2V0dGltZW9mZGF5OlxuIgorbXNnc3RyICLQl9Cw0L/Rg9GB0LrQsNGU0YLRjNGB0Y8gc2V0dGltZW9mZGF5OlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICIiCisi0KHQuNGB0YLQtdC80L3QuNC5INGH0LDRgSDQvdC1INCy0YHRgtCw0L3QvtCy0LvRjtGU0YLRjNGB0Y8sINGC0L7QvNGDINGJ0L4g0LfQsNC/0YPRidC10L3QuNC5INGDINGC0LXRgdGC0L7QstC+0LzRgyDRgNC10LbQuNC80ZYuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0MiBod2Nsb2NrL2h3Y2xvY2suYzo4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSBzdXBlcnVzZXIgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiIgorItCU0LvRjyDQstGB0YLQsNC90L7QstC70LXQvdC90Y8g0YHQuNGB0YLQtdC80L3QvtCz0L4g0YfQsNGB0YMg0L3QtdC+0LHRhdGW0LTQvdC+INC80LDRgtC4INC/0YDQsNCy0LAg0LDQtNC80ZbQvdGW0YHRgtGA0LDRgtC+0YDQsC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQ1IGh3Y2xvY2svaHdjbG9jay5jOjgyMworbXNnaWQgInNldHRpbWVvZmRheSgpIGZhaWxlZCIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0YMgc2V0dGltZW9mZGF5KCkiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc4MQorIywgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisi0JrQvtC10YTRltGG0ZbRlNC90YIg0LLRltC00YXQuNC70LXQvdC90Y8g0L3QtSDQutC+0YDQtdCz0YPRlNGC0YzRgdGPLCDRgtC+0LzRgyDRidC+INC/0L7Qv9C10YDQtdC00L3RlCDQt9C90LDRh9C10L3QvdGPINCw0L/QsNGA0LDRgtC90L7Qs9C+ICIKKyLQs9C+0LTQuNC90L3QuNC60LAg0LHRg9C70L4g0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC8LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgbGFzdCBjYWxpYnJhdGlvbiB0aW1lIGlzIHplcm8sXG4iCisic28gaGlzdG9yeSBpcyBiYWQgYW5kIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciBpcyBuZWNlc3NhcnkuXG4iCittc2dzdHIgIiIKKyLQmtC+0LXRhNGW0YbRltGU0L3RgiDQstGW0LTRhdC40LvQtdC90L3RjyDQvdC1INC60L7RgNC10LPRg9GU0YLRjNGB0Y8sINGC0L7QvNGDINGJ0L4g0YfQsNGBINC+0YHRgtCw0L3QvdGM0L7Qs9C+INC60LDQu9GW0LHRgNGD0LLQsNC90L3RjyAiCisi0LTQvtGA0ZbQstC90Y7RlCDQvdGD0LvRjixcbiIKKyLRgtC+0LzRgyDQv9C+0L/QtdGA0LXQtNC90ZQg0LfQvdCw0YfQtdC90L3RjyDQvdC10L/RgNCw0LLQuNC70YzQvdC1INGC0LAg0L3QtdC+0LHRhdGW0LTQvdC1INGA0LXQutCw0LvRltCx0YDRg9Cy0LDQvdC90Y8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBpdCBoYXMgYmVlbiBsZXNzIHRoYW4gYSBkYXkgc2luY2UgdGhlICIKKyJsYXN0IGNhbGlicmF0aW9uLlxuIgorbXNnc3RyICIiCisi0JrQvtC10YTRltGG0ZbRlNC90YIg0LLRltC00YXQuNC70LXQvdC90Y8g0L3QtSDQutC+0YDQtdCz0YPRlNGC0YzRgdGPLCDRgtC+0LzRgyDRidC+INC80LjQvdGD0LvQviDQvNC10L3RiNC1INC00L7QsdC4INC3INC80L7QvNC10L3RgtGDICIKKyLQvtGB0YLQsNC90L3RjNC+0LPQviDQutCw0LvRltCx0YDRg9Cy0LDQvdC90Y8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2xvY2sgZHJpZnRlZCAlLjFmIHNlY29uZHMgaW4gdGhlIHBhc3QgJWQgc2Vjb25kcyBpbiBzcGl0ZSBvZiBhIGRyaWZ0IGZhY3RvciAiCisib2YgJWYgc2Vjb25kcy9kYXkuXG4iCisiQWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBieSAlZiBzZWNvbmRzL2RheVxuIgorbXNnc3RyICIiCisi0JLRltC00YXQuNC70LXQvdC90Y8g0LPQvtC00LjQvdC90LjQutCwICUuMWYg0YHQtdC60YPQvdC0INC30LAg0L7RgdGC0LDQvdC90ZYgJWQg0YHQtdC60YPQvdC0INC90LXQt9Cy0LDQttCw0Y7Rh9C4INC90LAgIgorItC/0L7Qv9GA0LDQstC+0YfQvdC40Lkg0LrQvtC10YTRltGG0ZbRlNC90YIg0LLRltC00YXQuNC70LXQvdC90Y8gJWYg0YHQtdC60YPQvdC0L9C00L7QsdGDLlxuIgorItCa0L7QtdGE0ZbRhtGW0ZTQvdGCINCy0ZbQtNGF0LjQu9C10L3QvdGPINC60L7RgNC10LPRg9GU0YLRjNGB0Y8g0L3QsCAlZiDRgdC10LrRg9C90LQv0LTQvtCx0YNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAi0Jcg0LzQvtC80LXQvdGC0YMg0L7RgdGC0LDQvdC90YzQvtCz0L4g0LrQvtGA0LXQs9GD0LLQsNC90L3RjyDQvNC40L3Rg9C70L4gJWQg0YHQtdC60YPQvdC0XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkIHRvIGluc2VydCAlZCBzZWNvbmRzIGFuZCByZWZlciB0aW1lIGJhY2sgJS42ZiBzZWNvbmRzIGFnb1xuIgorbXNnc3RyICIiCisi0J3QtdC+0LHRhdGW0LTQvdC+INCy0YHRgtCw0LLQuNGC0LggJWQg0YHQtdC60YPQvdC0INGC0LAg0LfQvdC+0LLRgyDQv9C10YDQtdCy0ZbRgNC40YLQuCDRh9Cw0YEg0LfQvdC+0LLRgyAlLjZmINGB0LXQutGD0L3QtCAiCisi0L3QsNC30LDQtFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHVwZGF0aW5nIGFkanRpbWUgZmlsZSBiZWNhdXNlIG9mIHRlc3RpbmcgbW9kZS5cbiIKK21zZ3N0ciAi0KMg0YLQtdGB0YLQvtCy0L7QvNGDINGA0LXQttC40LzRliDRhNCw0LnQuyBhZGp0aW1lINC90LUg0L7QvdC+0LLQu9GO0ZTRgtGM0YHRjy5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXb3VsZCBoYXZlIHdyaXR0ZW4gdGhlIGZvbGxvd2luZyB0byAlczpcbiIKKyIlcyIKK21zZ3N0ciAiIgorItCjINGE0LDQudC7ICVzINCx0YPQu9C+INCxINC30LDQv9C40YHQsNC90L46XG4iCisiJXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAxNworIywgYy1mb3JtYXQKK21zZ2lkICJEcmlmdCBhZGp1c3RtZW50IHBhcmFtZXRlcnMgbm90IHVwZGF0ZWQuXG4iCittc2dzdHIgItCf0LDRgNCw0LzQtdGC0YDQuCDQutC+0YDQtdC60YbRltGXINCy0ZbQtNGF0LjQu9C10L3QvdGPINC90LUg0L7QvdC+0LLQu9C10L3Rli5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICIiCisi0KMg0LDQv9Cw0YDQsNGC0L3QvtC80YMg0LPQvtC00LjQvdC90LjQutGDINCy0YHRgtCw0L3QvtCy0LvQtdC90L4g0L3QtdC60L7RgNC10LrRgtC90LjQuSDRh9Cw0YEsINGC0L7QvNGDINC50L7Qs9C+INC90LUgIgorItCy0LTQsNGU0YLRjNGB0Y/RgdC60L7RgNC10LPRg9Cy0LDRgtC4LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKyLQmtC+0LXRhNGW0YbRltGU0L3RgiDQstGW0LTRhdC40LvQtdC90L3RjyDQvdC1INC60L7RgNC10LPRg9GU0YLRjNGB0Y8sINGC0L7QvNGDINGJ0L4g0YfQsNGBINC+0YHRgtCw0L3QvdGM0L7Qs9C+INC60LDQu9GW0LHRgNGD0LLQsNC90L3RjyAiCisi0LTQvtGA0ZbQstC90Y7RlCDQvdGD0LvRjixcbiIKKyLRgtC+0LzRgyDQv9C+0L/QtdGA0LXQtNC90ZQg0LfQvdCw0YfQtdC90L3RjyDQvdC10L/RgNCw0LLQuNC70YzQvdC1INGC0LAg0L3QtdC+0LHRhdGW0LTQvdC1INGA0LXQutCw0LvRltCx0YDRg9Cy0LDQvdC90Y8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICIiCisi0J3QtdC+0LHRhdGW0LTQvdCwINC60L7RgNC10LrRhtGW0Y8g0LzQtdC90YjQtSDQvdGW0LYg0L3QsCDQvtC00L3RgyDRgdC10LrRg9C90LTRgywg0YLQvtC80YMg0LPQvtC00LjQvdC90LjQuiDQvdC1INC+0L3QvtCy0LvRjtGU0YLRjNGB0Y8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgItCd0LUg0LfQvdCw0LnQtNC10L3QviDQv9GW0LTRgtGA0LjQvNGD0LLQsNC90L7Qs9C+INGW0L3RgtC10YDRhNC10LnRgdGDINCz0L7QtNC40L3QvdC40LrQsC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTIyMSBod2Nsb2NrL2h3Y2xvY2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0YHQuNGB0YLQtdC80L3QuNC5INGH0LDRgS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGtlcm5lbCBrZWVwcyBhbiBlcG9jaCB2YWx1ZSBmb3IgdGhlIEhhcmR3YXJlIENsb2NrIG9ubHkgb24gYW4gQWxwaGEgIgorIm1hY2hpbmUuXG4iCisiVGhpcyBjb3B5IG9mIGh3Y2xvY2sgd2FzIGJ1aWx0IGZvciBhIG1hY2hpbmUgb3RoZXIgdGhhbiBBbHBoYVxuIgorIihhbmQgdGh1cyBpcyBwcmVzdW1hYmx5IG5vdCBydW5uaW5nIG9uIGFuIEFscGhhIG5vdykuICBObyBhY3Rpb24gdGFrZW4uXG4iCittc2dzdHIgIiIKKyLQr9C00YDQviDQt9Cx0LXRgNGW0LPQsNGUINC30L3QsNGH0LXQvdC90Y8g0LXQv9C+0YXQuCDRgyDQsNC/0LDRgNCw0YLQvdC+0LzRgyDQs9C+0LTQuNC90L3QuNC60YMg0LvQuNGI0LUg0L3QsCBBbHBoYSDRgdC40YHRgtC10LzQsNGFLlxuIgorItCm0Y8g0LrQvtC/0ZbRjyBod2Nsb2NrINGB0LrQvtC80L/RltC70YzQvtCy0LDQvdCwINC00LvRjyDRltC90YjQvtGXINCw0YDRhdGW0YLQtdC60YLRg9GA0LgsINC90ZbQtiBBbHBoYVxuIgorIijRgtC+0LYsINC90LDQv9C10LLQvdC+LCDRhtGPINGB0LjRgdGC0LXQvNCwINC90LUg0ZQg0YHQuNGB0YLQtdC80L7RjiBBbHBoYSkuINCd0ZbRj9C60LjRhSDQtNGW0Lkg0L3QtSDQstC40LrQvtC90LDQvdC+LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBnZXQgdGhlIGVwb2NoIHZhbHVlIGZyb20gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0LfQvdCw0YfQtdC90L3RjyDQtdC/0L7RhdC4INCy0ZbQtCDRj9C00YDQsC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJLZXJuZWwgaXMgYXNzdW1pbmcgYW4gZXBvY2ggdmFsdWUgb2YgJWx1XG4iCittc2dzdHIgItCv0LTRgNC+INCy0LLQsNC20LDRlCwg0YnQviDQt9C90LDRh9C10L3QvdGPINC10L/QvtGF0LggLSAlbHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSAnZXBvY2gnIG9wdGlvbiB0byB0ZWxsIHRvIHdoYXQgIgorInZhbHVlIHRvIHNldCBpdC5cbiIKK21zZ3N0ciAiIgorItCp0L7QsSDQstGB0YLQsNC90L7QstC40YLQuCDQt9C90LDRh9C10L3QvdGPINC10L/QvtGF0LgsINC90LXQvtCx0YXRltC00L3QviDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC0Lgg0L/QsNGA0LDQvNC10YLRgCAnZXBvY2gnINGW0LcgIgorItC30LDQt9C90LDRh9C10L3QvdGP0Lwg0LLRgdGC0LDQvdC+0LLQu9GO0LLQsNC90L7Qs9C+INC30L3QsNGH0LXQvdC90Y8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICLQldC/0L7RhdCwINC90LUg0LLRgdGC0LDQvdC+0LLQu9GO0ZTRgtGM0YHRjyDRgyAlZCAtINC70LjRiNC1INGC0LXRgdGC0YPQstCw0L3QvdGPLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwuXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGB0YLQsNC90L7QstC40YLQuCDQt9C90LDRh9C10L3QvdGPINC10L/QvtGF0Lgg0YMg0Y/QtNGA0ZYuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyOTAgbWlzYy11dGlscy9jYWwuYzozNDcgbWlzYy11dGlscy9raWxsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMg0LcgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTMxMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorImh3Y2xvY2sgLSBxdWVyeSBhbmQgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayAoUlRDKVxuIgorIlxuIgorIlVzYWdlOiBod2Nsb2NrIFtmdW5jdGlvbl0gW29wdGlvbnMuLi5dXG4iCisiXG4iCisiRnVuY3Rpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICBzaG93IHRoaXMgaGVscFxuIgorIiAgLXIgfCAtLXNob3cgICAgICAgICByZWFkIGhhcmR3YXJlIGNsb2NrIGFuZCBwcmludCByZXN1bHRcbiIKKyIgICAgICAgLS1zZXQgICAgICAgICAgc2V0IHRoZSBydGMgdG8gdGhlIHRpbWUgZ2l2ZW4gd2l0aCAtLWRhdGVcbiIKKyIgIC1zIHwgLS1oY3Rvc3lzICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBmcm9tIHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgLXcgfCAtLXN5c3RvaGMgICAgICBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIHRvIHRoZSBjdXJyZW50IHN5c3RlbSB0aW1lXG4iCisiICAgICAgIC0tc3lzdHogICAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZXpvbmVcbiIKKyIgICAgICAgLS1hZGp1c3QgICAgICAgYWRqdXN0IHRoZSBydGMgdG8gYWNjb3VudCBmb3Igc3lzdGVtYXRpYyBkcmlmdCBzaW5jZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICB0aGUgY2xvY2sgd2FzIGxhc3Qgc2V0IG9yIGFkanVzdGVkXG4iCisiICAgICAgIC0tZ2V0ZXBvY2ggICAgIHByaW50IG91dCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1zZXRlcG9jaCAgICAgc2V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZSB0byB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGdpdmVuIHdpdGggLS1lcG9jaFxuIgorIiAgLXYgfCAtLXZlcnNpb24gICAgICBwcmludCBvdXQgdGhlIHZlcnNpb24gb2YgaHdjbG9jayB0byBzdGRvdXRcbiIKKyJcbiIKKyJPcHRpb25zOiBcbiIKKyIgIC11IHwgLS11dGMgICAgICAgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gVVRDXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIGxvY2FsIHRpbWVcbiIKKyIgIC1mIHwgLS1ydGM9cGF0aCAgICAgc3BlY2lhbCAvZGV2Ly4uLiBmaWxlIHRvIHVzZSBpbnN0ZWFkIG9mIGRlZmF1bHRcbiIKKyIgICAgICAgLS1kaXJlY3Rpc2EgICAgYWNjZXNzIHRoZSBJU0EgYnVzIGRpcmVjdGx5IGluc3RlYWQgb2YgJXNcbiIKKyIgICAgICAgLS1iYWR5ZWFyICAgICAgaWdub3JlIHJ0YydzIHllYXIgYmVjYXVzZSB0aGUgYmlvcyBpcyBicm9rZW5cbiIKKyIgICAgICAgLS1kYXRlICAgICAgICAgc3BlY2lmaWVzIHRoZSB0aW1lIHRvIHdoaWNoIHRvIHNldCB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgICAgICAgLS1lcG9jaD15ZWFyICAgc3BlY2lmaWVzIHRoZSB5ZWFyIHdoaWNoIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICBoYXJkd2FyZSBjbG9jaydzIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tbm9hZGpmaWxlICAgIGRvIG5vdCBhY2Nlc3MgL2V0Yy9hZGp0aW1lLiBSZXF1aXJlcyB0aGUgdXNlIG9mXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorIiAgICAgICAtLWFkamZpbGU9cGF0aCBzcGVjaWZpZXMgdGhlIHBhdGggdG8gdGhlIGFkanVzdCBmaWxlIChkZWZhdWx0IGlzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIC9ldGMvYWRqdGltZSlcbiIKKyIgICAgICAgLS10ZXN0ICAgICAgICAgZG8gZXZlcnl0aGluZyBleGNlcHQgYWN0dWFsbHkgdXBkYXRpbmcgdGhlIGhhcmR3YXJlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGNsb2NrIG9yIGFueXRoaW5nIGVsc2VcbiIKKyIgIC1EIHwgLS1kZWJ1ZyAgICAgICAgZGVidWcgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisiaHdjbG9jayAtINC+0L/QuNGC0YPQstCw0L3QvdGPINGC0LAg0LLRgdGC0LDQvdC+0LLQu9C10L3QvdGPINCw0L/QsNGA0LDRgtC90L7Qs9C+INCz0L7QtNC40L3QvdC40LrQsCAoUlRDKVxuIgorIlxuIgorItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogaHdjbG9jayBb0YTRg9C90LrRhtGW0ZddIFvQv9Cw0YDQsNC80LXRgtGA0LguLi5dXG4iCisiXG4iCisi0KTRg9C90LrRhtGW0Zc6XG4iCisiICAtLWhlbHAgICAgICAgINC/0L7QutCw0LfQsNGC0Lgg0YbRjiDQtNC+0LLRltC00LrRg1xuIgorIiAgLS1zaG93ICAgICAgICDQvtGC0YDQuNC80LDRgtC4INGH0LDRgSDQtyDQsNC/0LDRgNCw0YLQvdC+0LPQviDQs9C+0LTQuNC90L3QuNC60LAg0YLQsCDQstC40LLQtdGB0YLQuCDRgNC10LfRg9C70YzRgtCw0YJcbiIKKyIgIC0tc2V0ICAgICAgICAg0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0LPQvtC00LjQvdC90LjQuiDRgyDRh9Cw0YEg0LLQutCw0LfQsNC90LjQuSDQsiDQsNGA0LPRg9C80LXQvdGC0ZYgLS1kYXRlXG4iCisiICAtLWhjdG9zeXMgICAgINCy0YHRgtCw0L3QvtCy0LjRgtC4INGB0LjRgdGC0LXQvNC90LjQuSDRh9Cw0YEg0Lcg0LDQv9Cw0YDQsNGC0L3QvtCz0L4g0LPQvtC00LjQvdC90LjQutCwXG4iCisiICAtLXN5c3RvaGMgICAgINCy0YHRgtCw0L3QvtCy0LjRgtC4INGDINCw0L/QsNGA0LDRgtC90L7QvNGDINCz0L7QtNC40L3QvdC40LrRgyDQt9C90LDRh9C10L3QvdGPINC/0L7RgtC+0YfQvdC+0LPQvlxuIgorIiAgICAgICAgICAgICAgICDRgdC40YHRgtC10LzQvdC+0LPQviDRh9Cw0YHRg1xuIgorIiAgLS1hZGp1c3QgICAgICDRgdC60L7RgNC10LPRg9Cy0LDRgtC4INCw0L/QsNGA0LDRgtC90LjQuSDQs9C+0LTQuNC90L3QuNC6INC90LAg0LfQvdCw0YfQtdC90L3RjyDRgdC40YHRgtC10LzQsNGC0LjRh9C90L7Qs9C+XG4iCisiICAgICAgICAgICAgICAgINCy0ZbQtNGF0LjQu9C10L3QvdGPINC3INC80L7QvNC10L3RgtGDINC60L7Qu9C4INCz0L7QtNC40L3QvdC40Log0LHRg9CyINC+0YHRgtCw0L3QvdGW0Lkg0YDQsNC3ICIKKyLQvtC90L7QstC70LXQvdC40LlcbiIKKyIgIC0tZ2V0ZXBvY2ggICAg0LLQuNCy0LXRgdGC0Lgg0L7RgtGA0LjQvNCw0L3QtSDQstGW0LQg0LPQvtC00LjQvdC90LjQutCwINGP0LTRgNCwINC30L3QsNGH0LXQvdC90Y8g0LXQv9C+0YXQuFxuIgorIiAgLS1zZXRlcG9jaCAgICDQstGB0YLQsNC90L7QstC40YLQuCDQt9C90LDRh9C10L3QvdGPINC10L/QvtGF0Lgg0LPQvtC00LjQvdC90LjQutCwINGP0LTRgNCwINGDINC30L3QsNGH0LXQvdC90Y8g0LrQsNC30LDQvdC1XG4iCisiICAgICAgICAgICAgICAgINCyIC0tZXBvY2hcbiIKKyIgIC0tdmVyc2lvbiAgICAg0LLQuNCy0LXRgdGC0Lgg0LLQtdGA0YHRltGOIGh3Y2xvY2sg0YMg0YHRgtCw0L3QtNCw0YDRgtC90LjQuSDQstC40LLRltC0XG4iCisiXG4iCisi0J/QsNGA0LDQvNC10YLRgNC4OiBcbiIKKyIgIC0tdXRjICAgICAgICAg0LDQv9Cw0YDQsNGC0L3QuNC5INCz0L7QtNC40L3QvdC40Log0LfQsdC10YDRltCz0LDRlCDQstGB0LXRgdCy0ZbRgtC90ZbQuSDQutC+0L7RgNC00LjQvdC+0LLQsNC90LjQuSDRh9Cw0YFcbiIKKyIgIC0tbG9jYWx0aW1lICAg0LDQv9Cw0YDQsNGC0L3QuNC5INCz0L7QtNC40L3QvdC40Log0LfQsdC10YDRltCz0LDRlCDQu9C+0LrQsNC70YzQvdC40Lkg0YfQsNGBXG4iCisiICAtLWRpcmVjdGlzYSAgINC/0YDRj9C80LjQuSDQtNC+0YHRgtGD0L8g0LTQviBJU0Eg0YjQuNC90LgsINC30LDQvNGW0YHRgtGMICVzXG4iCisiICAtLWJhZHllYXIgICAgINGW0LPQvdC+0YDRg9Cy0LDRgtC4INGA0ZbQuiDQtyDQs9C+0LTQuNC90L3QuNC60LAsINGC0L7QvNGDINGJ0L4gYmlvcyDQvdC10L/RgNCw0LLQuNC70YzQvdC40LlcbiIKKyIgIC0tZGF0ZSAgICAgICAg0LLQutCw0LfRg9GUINGH0LDRgSDRgyDRj9C60LjQuSDQstGB0YLQsNC90L7QstC70Y7QstCw0YLQuCDQsNC/0LDRgNCw0YLQvdC40Lkg0LPQvtC00LjQvdC90LjQulxuIgorIiAgLS1lcG9jaD3RgNGW0LogICDQstC60LDQt9GD0ZQg0YDRltC6INGP0LrQuNC5INGUINC/0L7Rh9Cw0YLQutC+0Lwg0LXQv9C+0YXQuCDQsNC/0LDRgNCw0YLQvdC+0LPQviDQs9C+0LTQuNC90L3QuNC60LBcbiIKKyIgIC0tbm9hZGpmaWxlICAg0L3QtSDQvtCx0YDQvtCx0LvRj9GC0LggL2V0Yy9hZGp0aW1lLiDQktC40LzQsNCz0LDRlCDQstC40LrQvtGA0LjRgdGC0LDQvdC90Y8g0LDQsdC+IC0tdXRjLFxuIgorIiAgICAgICAgICAgICAgICDQsNCx0L4gLS1sb2NhbHRpbWVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLUp8LS1qZW5zZW4sIC1BfC0tYXJjLCAtU3wtLXNybSwgLUZ8LS1mdW5reS10b3lcbiIKKyIgICAgICAgdGVsbCBod2Nsb2NrIHRoZSB0eXBlIG9mIGFscGhhIHlvdSBoYXZlIChzZWUgaHdjbG9jayg4KSlcbiIKKyJcbiIKK21zZ3N0ciAiIgorIiAgLS1qZW5zZW4sIC0tYXJjLCAtLXNybSwgLS1mdW5reS10b3lcbiIKKyIgICAgICAgICAgICAgICAg0LLQutCw0LfQsNGC0LggaHdjbG9jayDRgtC40L8g0LLQsNGI0L7RlyDRgdC40YHRgtC10LzQuCBhbHBoYSAo0LTQuNCy0ZbRgtGM0YHRjyBod2Nsb2NrIgorIig4KSlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTQzMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0YHQuNGB0YLQtdC80L3QuNC5INGH0LDRgS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMg0L3QtSDQvtGH0ZbQutGD0ZQg0L/QsNGA0LDQvNC10YLRgNGW0LIg0LHQtdC3INC60LvRjtGH0ZbQsi4g0JLQuCDQstC60LDQt9Cw0LvQuCAlZC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgc3BlY2lmaWVkIG11bHRpcGxlIGZ1bmN0aW9ucy5cbiIKKyJZb3UgY2FuIG9ubHkgcGVyZm9ybSBvbmUgZnVuY3Rpb24gYXQgYSB0aW1lLlxuIgorbXNnc3RyICIiCisi0JLQuCDQstC60LDQt9Cw0LvQuCDQtNC10LrRltC70YzQutCwINGE0YPQvdC60YbRltC5LlxuIgorItCc0L7QttC90LAg0LLQuNC60L7QvdGD0LLQsNGC0Lgg0LvQuNGI0LUg0L7QtNC90YMg0YTRg9C90LrRhtGW0Y4g0L7QtNC90L7Rh9Cw0YHQvdC+LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tdXRjIGFuZCAtLWxvY2FsdGltZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3Ugc3BlY2lmaWVkICIKKyJib3RoLlxuIgorbXNnc3RyICIiCisiJXM6INCf0LDRgNCw0LzQtdGC0YDQuCAtLXV0YyDRgtCwIC0tbG9jYWx0aW1lINCy0LjQutC70Y7Rh9Cw0Y7RgtGMINC+0LTQvdC1INC+0LTQvdC+0LPQvi4g0JAg0LLQuCDQstC60LDQt9Cw0LvQuCAiCisi0L7QsdC40LTQstCwLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisiJXM6INCf0LDRgNCw0LzQtdGC0YDQuCAtLWFkanVzdCDRgtCwIC0tbm9hZGpmaWxlINCy0LjQutC70Y7Rh9Cw0Y7RgtGMINC+0LTQvdC1INC+0LTQvdC+0LPQvi4g0JAg0LLQuCDQstC60LDQt9Cw0LvQuCAiCisi0L7QsdC40LTQstCwLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczog0J/QsNGA0LDQvNC10YLRgNC4IC0tYWRqdXN0INGC0LAgLS1ub2FkamZpbGUg0LLQuNC60LvRjtGH0LDRjtGC0Ywg0L7QtNC90LUg0L7QtNC90L7Qs9C+LiDQkCDQstC4INCy0LrQsNC30LDQu9C4ICIKKyLQvtCx0LjQtNCy0LAuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdpdGggLS1ub2FkamZpbGUsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCittc2dzdHIgIiIKKyIlczog0KDQsNC30L7QvCDQtyAtLW5vYWRqZmlsZSwg0L3QtdC+0LHRhdGW0LTQvdC+INCy0LrQsNC30YPQstCw0YLQuCDQsNCx0L4gLS11dGMsINCw0LHQviAtLWxvY2FsdGltZVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBzZXQtdG8gdGltZS4gIENhbm5vdCBzZXQgY2xvY2suXG4iCittc2dzdHIgItCS0LrQsNC30LDQvdC+INC90LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDRh9Cw0YHRgy4g0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0YHRgtCw0L3QvtCy0LjRgtC4INCz0L7QtNC40L3QvdC40LouXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jay5cbiIKK21zZ3N0ciAi0JfQvNGW0L3RjtCy0LDRgtC4INC30L3QsNGH0LXQvdC90Y8g0LDQv9Cw0YDQsNGC0L3QvtCz0L4g0LPQvtC00LjQvdC90LjQutCwINC80L7QttC1INC70LjRiNC1INCw0LTQvNGW0L3RltGB0YLRgNCw0YLQvtGALlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgU3lzdGVtIENsb2NrLlxuIgorbXNnc3RyICLQl9C80ZbQvdGO0LLQsNGC0Lgg0YHQuNGB0YLQtdC80L3QuNC5INGH0LDRgSDQvNC+0LbQtSDQu9C40YjQtSDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jayBlcG9jaCBpbiB0aGUgIgorImtlcm5lbC5cbiIKK21zZ3N0ciAiIgorItCX0LzRltC90Y7QstCw0YLQuCDQt9C90LDRh9C10L3QvdGPINC10L/QvtGF0Lgg0LDQv9Cw0YDQsNGC0L3QvtCz0L4g0LPQvtC00LjQvdC90LjQutCwINGDINGP0LTRgNGWINC80L7QttC1INC70LjRiNC1ICIKKyLQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgYW55IGtub3duIG1ldGhvZC5cbiIKK21zZ3N0ciAiIgorItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INC00L7RgdGC0YPQvyDQtNC+INCw0L/QsNGA0LDRgtC90L7Qs9C+INCz0L7QtNC40L3QvdC40LrQsCDQstC40LrQvtGA0LjRgdGC0L7QstGD0Y7Rh9C4INCx0YPQtNGMLdGP0LrQuNC5ICIKKyLQstGW0LTQvtC80LjQuSDQvNC10YLQvtC0LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2UgdGhlIC0tZGVidWcgb3B0aW9uIHRvIHNlZSB0aGUgZGV0YWlscyBvZiBvdXIgc2VhcmNoIGZvciBhbiBhY2Nlc3MgIgorIm1ldGhvZC5cbiIKK21zZ3N0ciAi0KnQvtCxINC/0LXRgNC10LPQu9GP0L3Rg9GC0Lgg0L/QvtC00YDQvtCx0LjRhtGWINC/0L7RiNGD0LrRgyDQvNC10YLQvtC00YMg0LTQvtGB0YLRg9C/0YMg0LLQutCw0LbRltGC0YwgLS1kZWJ1Zy5cbiIKKworIzogaHdjbG9jay9rZC5jOjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tIEtER0hXQ0xLIHRvIGNoYW5nZVxuIgorbXNnc3RyICLQntGH0ZbQutGD0LLQsNC90L3RjyDQt9C80ZbQvdC4INGH0LDRgdGDINC3IEtER0hXQ0xLINGDINGG0LjQutC70ZZcbiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0LfRh9C40YLRg9Cy0LDQvdC90Y8g0YfQsNGB0YMg0Lcg0YHQuNGB0YLQtdC80L3QvtC80YMg0LLQuNC60LvQuNC60YMgaW9jdGwgS0RHSFdDTEsiCisKKyM6IGh3Y2xvY2sva2QuYzo3NQorbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQgaW4gbG9vcCIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0LfRh9C40YLRg9Cy0LDQvdC90Y8g0YMg0YbQuNC60LvRliDRh9Cw0YHRgyDQtyDRgdC40YHRgtC10LzQvdC+0LzRgyDQstC40LrQu9C40LrRgyBpb2N0bCBLREdIV0NMSyIKKworIzogaHdjbG9jay9rZC5jOjgyIGh3Y2xvY2svcnRjLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWVkIG91dCB3YWl0aW5nIGZvciB0aW1lIGNoYW5nZS5cbiIKK21zZ3N0ciAi0JLQuNC50YjQvtCyINGH0LDRgSDQvtGH0ZbQutGD0LLQsNC90L3RjyDQt9C80ZbQvdC4INGH0LDRgdGDLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6MTA0CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgZmFpbGVkIHRvIHJlYWQgdGltZSBmcm9tICVzIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9GH0LjRgtGD0LLQsNC90L3RjyDRh9Cw0YHRgyDRgyBpb2N0bCgpINC3ICVzIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCBpb2N0bCBLRFNIV0NMSyIKKworIzogaHdjbG9jay9rZC5jOjE3NgorbXNnaWQgIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggL2Rldi90dHkxINGH0LggL2Rldi92Yy8xIgorCisjOiBod2Nsb2NrL2tkLmM6MTgwCittc2dpZCAiS0RHSFdDTEsgaW9jdGwgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCBpb2N0bCBLRFNIV0NMSyIKKworIzogaHdjbG9jay9ydGMuYzoxNDcgaHdjbG9jay9ydGMuYzoyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbigpIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0YMgb3BlbigpINC00LvRjyAlcyIKKworIzogaHdjbG9jay9ydGMuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAi0LfRh9C40YLRg9Cy0LDQvdC90Y8g0YfQsNGB0YMg0YMgaW9jdGwoKSDQtNC70Y8gJXMuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tICVzIHRvIGNoYW5nZVxuIgorbXNnc3RyICLQntGH0ZbQutGD0LLQsNC90L3RjyDQt9C80ZbQvdC4INGH0LDRgdGDINC3ICVzINGDINGG0LjQutC70ZZcbiIKKworIzogaHdjbG9jay9ydGMuYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZG9lcyBub3QgaGF2ZSBpbnRlcnJ1cHQgZnVuY3Rpb25zLiAiCittc2dzdHIgIiVzINC90LUg0LzQsNGUINGE0YPQvdC60YbRltGXINC/0LXRgNC10YDQuNCy0LDQvdC90Y8uIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkKCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC+0YfRltC60YPQstCw0L3QvdGPINGDINGG0LjQutC70ZYg0LIgcmVhZCgpINC00LvRjyAlcyIKKworIzogaHdjbG9jay9ydGMuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC+0YfRltC60YPQstCw0L3QvdGPINGDINGG0LjQutC70ZYg0LIgc2VsZWN0KCkg0LTQu9GPICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIHRpbWVkIG91dFxuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQvtGH0ZbQutGD0LLQsNC90L3RjyDRgyDRhtC40LrQu9GWINCyIHNlbGVjdCgpINC00LvRjyAlc1xuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LLQuNC80LrQvdC10L3QvdGPINC+0L3QvtCy0LvQtdC90L3RjyDQv9C10YDQtdGA0LjQstCw0L3RjCDRgyBpb2N0bCgpINC00LvRjyAlcyIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgItC90LXQvtGH0ZbQutGD0LLQsNC90LAg0L/QvtC80LjQu9C60LAg0LLQuNC80LrQvdC10L3QvdGPINC+0L3QvtCy0LvQtdC90L3RjyDQv9C10YDQtdGA0LjQstCw0L3RjCDRgyBpb2N0bCgpINC00LvRjyAlcyIKKworIzogaHdjbG9jay9ydGMuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byBzZXQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstGB0YLQsNC90L7QstC70LXQvdC90Y8g0YfQsNGB0YMg0LIgaW9jdGwoKSDQtNC70Y8gJXMuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiaW9jdGwoJXMpINGD0YHQv9GW0YjQvdC+INCy0LjQutC+0L3QsNC90L4uXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICLQn9C+0LzQuNC70LrQsCDQstGW0LTQutGA0LjQstCw0L3QvdGPICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxMCBod2Nsb2NrL3J0Yy5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gbWFuaXB1bGF0ZSB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbCwgd2UgbXVzdCBhY2Nlc3MgdGhlIExpbnV4ICdydGMnICIKKyJkZXZpY2UgZHJpdmVyIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwgZmlsZSAlcy4gIFRoaXMgZmlsZSBkb2VzIG5vdCBleGlzdCBvbiAiCisidGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKyLQtNC70Y8g0LzQsNC90ZbQv9GD0LvRjtCy0LDQvdC90Y8g0LfQvdCw0YfQtdC90L3Rj9C8INC10L/QvtGF0Lgg0YMg0Y/QtNGA0ZYg0L3QtdC+0LHRhdGW0LTQvdC+INC+0YLRgNC40LzQsNGC0Lgg0LTQvtGB0YLRg9C/INC00L4gTGludXggIgorIidydGMnINC/0YDQuNGB0YLRgNC+0Y4g0YfQtdGA0LXQtyDRgdC/0LXRhtGW0LDQu9GM0L3QuNC5INGE0LDQudC7ICVzLiDQptC10Lkg0YTQsNC50Lsg0L3QtSDRltGB0L3Rg9GUINGDINGG0ZbQuSDRgdC40YHRgtC10LzRli5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0MTUgaHdjbG9jay9ydGMuYzo0NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4ICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDRgyBpb2N0bChSVENfRVBPQ0hfUkVBRCkg0LTQu9GPICVzIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAi0L/RgNC+0YfQuNGC0LDQvdC+INC30L3QsNGH0LXQvdC90Y8g0LXQv9C+0YXQuCAlbGQg0LcgJXMg0YfQtdGA0LXQtyBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKKworIzogaHdjbG9jay9ydGMuYzo0NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVwb2NoIHZhbHVlIG1heSBub3QgYmUgbGVzcyB0aGFuIDE5MDAuICBZb3UgcmVxdWVzdGVkICVsZFxuIgorbXNnc3RyICLQl9C90LDRh9C10L3QvdGPINC10L/QvtGF0Lgg0L3QtSDQvNC+0LbQtSDQsdGD0YLQuCDQvdC40LbRh9C40Lwg0L3RltC2IDE5MDAuICDQktC4INCy0LrQsNC30LDQu9C4ICVsZFxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZXR0aW5nIGVwb2NoIHRvICVsZCB3aXRoIFJUQ19FUE9DSF9TRVQgaW9jdGwgdG8gJXMuXG4iCittc2dzdHIgItCy0YHRgtCw0L3QvtCy0LvRjtGU0YLRjNGB0Y8g0LXQv9C+0YXQsCA9ICVsZCDRh9C10YDQtdC3IFJUQ19FUE9DSF9TRVQgaW9jdGwg0YMgJXMuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGRldmljZSBkcml2ZXIgZm9yICVzIGRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCittc2dzdHIgIiIKKyLQlNGA0LDQudCy0LXRgCDRj9C00YDQsCDQtNC70Y8gJXMg0L3QtSDQv9GW0LTRgtGA0LjQvNGD0ZQg0YHQuNGB0YLQtdC80L3QuNC5INCy0LjQutC70LjQuiBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINGDIGlvY3RsKFJUQ19FUE9DSF9TRVQpINC00LvRjyAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBleGVjICVzOiAlbSIKK21zZ3N0ciAiJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cw0L/Rg9GB0YLQuNGC0LggJXM6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozODMKK21zZ2lkICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0LjQtNGW0LvQuNGC0Lgg0L/QsNC8J9GP0YLRjCDQtNC70Y8g0YDRj9C00LrRgyDRltC90ZbRhtGW0LDQu9GW0LfQsNGG0ZbRlyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAi0L3QtdC/0YDQsNCy0LjQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPINC/0LXRgNGW0L7QtNGDINC+0YfRltC60YPQstCw0L3QvdGPOiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDRiNCy0LjQtNC60L7RgdGC0ZY6ICVzIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKK21zZ2lkICJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIgorbXNnc3RyICLQvdCw0LTRgtC+INCx0LDQs9Cw0YLQviDQt9Cw0L/QsNGB0L3QuNGFINC30L3QsNGH0LXQvdGMINGI0LLQuNC00LrQvtGB0YLRliIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAgY2hkaXIoXCIvZGV2XCIpOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIi9kZXYvJXM6INC90LUg0ZQg0YHQuNC80LLQvtC70YzQvdC40Lwg0L/RgNC40YHRgtGA0L7RlNC8IgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIvZGV2LyVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCDRgdGC0LDQvdC00LDRgNGC0L3QuNC5INCy0LLRltC0OiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3Qgb3BlbiBmb3IgcmVhZC93cml0ZSIKK21zZ3N0ciAiJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4INC00LvRjyDRh9C40YLQsNC90L3Rjy/Qt9Cw0L/QuNGB0YMiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZHVwIHByb2JsZW06ICVtIgorbXNnc3RyICIlczog0L/QvtC80LjQu9C60LAg0L/RgNC4IGR1cDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICLQutC+0YDQuNGB0YLRg9Cy0LDRhyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXJzIgorbXNnc3RyICLQutC+0YDQuNGB0YLRg9Cy0LDRh9GW0LIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQ6ICVtIgorbXNnc3RyICIlczog0L/RgNC+0YfQuNGC0LDQvdC+OiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaW5wdXQgb3ZlcnJ1biIKK21zZ3N0ciAiJXM6INC/0LXRgNC10L/QvtCy0L3QtdC90L3RjyDQstCy0L7QtNGDIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMjA2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstOGhpTG1Vd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IICIKKyJsb2dpbl9ob3N0XSBiYXVkX3JhdGUsLi4uIGxpbmUgW3Rlcm10eXBlXVxuIgorIm9yXHRbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggbG9naW5faG9zdF0gIgorImxpbmUgYmF1ZF9yYXRlLC4uLiBbdGVybXR5cGVdXG4iCittc2dzdHIgIiIKKyLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86ICVzIFstaGlMbXddIFstbCDQv9GA0L7Qs9GA0LDQvNCwX9Cy0YXQvtC00YNdIFstdCDRh9Cw0YFf0L7Rh9GW0LrRg9Cy0LDQvdC90Y9dIFstSSAiCisi0YDRj9C00L7Qul/RltC90ZbRhl0gWy1IINGA0LXRlNGB0YLRgNCw0YZf0LLRg9C30L7Qu10g0YjQstC40LTQutGW0YHRgtGMX9C/0LXRgNC10LTQsNGH0ZYsLi4uINGA0Y/QtNC+0LogIgorIlvRgtC40L9f0YLQtdGA0LzRltC90LDQu9GDXVxuIgorItCw0LHQvlx0Wy1oaUxtd10gWy1sINC/0YDQvtCz0YDQsNC80LBf0LLRhdC+0LTRg10gWy10INGH0LDRgV/QvtGH0ZbQutGD0LLQsNC90L3Rj10gWy1JINGA0Y/QtNC+0Lpf0ZbQvdGW0YZdIFstSCAiCisi0YDQtdGU0YHRgtGA0LDRhl/QstGD0LfQvtC7XSDRgNGP0LTQvtC6INGI0LLQuNC00LrRltGB0YLRjF/Qv9C10YDQtdC00LDRh9GWLC4uLiBb0YLQuNC/X9GC0LXRgNC80ZbQvdCw0LvRg11cbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MSBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbWVtb3J5IGxvdywgbG9naW4gbWF5IGZhaWxcbiIKK21zZ3N0ciAibG9naW46INC90LXQtNC+0YHRgtCw0YLQvdGM0L4g0L/QsNC8J9GP0YLRliwgbG9naW4g0LzQvtC20LUg0LfQsNC30L3QsNGC0Lgg0L3QtdCy0LTQsNGH0ZZcbiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MgorbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgdHR5Y2xhc3MiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTRltC70LjRgtC4INC/0LDQvCfRj9GC0Ywg0LTQu9GPIHR0eWNsYXNzIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMworbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0LjQtNGW0LvQuNGC0Lgg0L/QsNC8J9GP0YLRjCDQtNC70Y8gZ3JwbGlzdCIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAi0JLRhdGW0LQg0L3QsCAlcyDQtyAlcyDQt9Cw0LHQvtGA0L7QvdC10L3QuNC5INC/0LXRgNC80LDQvdC10L3RgtC90L4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICLQktGF0ZbQtCDQvdCwICVzINC3ICVzINC30LDQsdC+0YDQvtC90LXQvdC40LkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6INCy0LDRiCDQutC+0YDQuNGB0YLRg9Cy0LDRhyDQtyB1aWQgJWQg0L3QtSDRltGB0L3Rg9GULlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczog0LrQvtGA0LjRgdGC0YPQstCw0YcgXCIlc1wiINC90LUg0ZbRgdC90YPRlC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0NSBsb2dpbi11dGlscy9jaHNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4gb25seSBjaGFuZ2UgbG9jYWwgZW50cmllczsgdXNlIHlwJXMgaW5zdGVhZC5cbiIKK21zZ3N0ciAiIgorIiVzOiDQvNC+0LbQtSDQt9C80ZbQvdGO0LLQsNGC0Lgg0LvQuNGI0LUg0LvQvtC60LDQu9GM0L3RliDQt9Cw0L/QuNGB0Lg7INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUgeXAlcyDQvdCw0YLQvtC80ZbRgdGC0YwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICLQndC10LLRltC00L7QvNC40Lkg0LrQvtC90YLQtdC60YHRgiDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIGZpbmdlciBpbmZvIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyDQvdC1INCw0LLRgtC+0YDQuNC30L7QstCw0L3QuNC5INC00LvRjyDQt9C80ZbQvdC4INGW0L3RhNC+0YDQvNCw0YbRltGXIGZpbmdlciDRgyAlc1xuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTY0IGxvZ2luLXV0aWxzL2Noc2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBkZWZhdWx0IGNvbnRleHQgZm9yIC9ldGMvcGFzc3dkIgorbXNnc3RyICIlczog0J3QtSDQstC00LDRlNGC0YzRgdGPINCy0YHRgtCw0L3QvtCy0LjRgtC4INGC0LjQv9C+0LLQuNC5INC60L7QvdGC0LXQutGB0YIg0LTQu9GPIC9ldGMvcGFzc3dkIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGZpbmdlciBpbmZvcm1hdGlvbiBmb3IgJXMuXG4iCittc2dzdHIgItCX0LzRltC90LAgZmluZ2VyINGW0L3RhNC+0YDQvNCw0YbRltGXINC00LvRjyAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICJsb2dpbjog0L/QvtC80LjQu9C60LAgUEFNLCDQv9C10YDQtdGA0LLQsNC90L46ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTIgbG9naW4tdXRpbHMvY2hzaC5jOjIxMSBsb2dpbi11dGlscy9sb2dpbi5jOjgyNworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6NzkgbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0MCBtb3VudC9sb21vdW50LmM6NzQyCisjOiBtb3VudC9sb21vdW50LmM6NzQ1Cittc2dpZCAiUGFzc3dvcmQ6ICIKK21zZ3N0ciAi0J/QsNGA0L7Qu9GMOiAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTUgbG9naW4tdXRpbHMvY2hzaC5jOjIxNAorbXNnaWQgIkluY29ycmVjdCBwYXNzd29yZC4iCittc2dzdHIgItCd0LXQutC+0YDQtdC60YLQvdC40Lkg0L/QsNGA0L7Qu9GMLiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIkZpbmdlciDRltC90YTQvtGA0LzQsNGG0ZbRjiDQvdC1INC30LzRltC90LXQvdC+LlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIgorbXNnc3RyICLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86ICVzIFsgLWYg0L/QvtCy0L3QtV/RltC8J9GPIF0gWyAtbyDQvtGE0ZbRgSBdIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJbIC1wIG9mZmljZS1waG9uZSBdXG4iCisiXHRbIC1oIGhvbWUtcGhvbmUgXSAiCittc2dzdHIgIiIKKyJbIC1wINC+0YTRltGB0L3QuNC5LdGC0LXQu9C10YTQvtC9IF1cbiIKKyJcdFsgLWgg0LTQvtC80LDRiNC90ZbQuS3RgtC10LvQtdGE0L7QvSBdICIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMzMAorIywgYy1mb3JtYXQKK21zZ2lkICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKK21zZ3N0ciAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzgKK21zZ2lkICJPZmZpY2UiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OQorbXNnaWQgIk9mZmljZSBQaG9uZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzgwCittc2dpZCAiSG9tZSBQaG9uZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDAxIGxvZ2luLXV0aWxzL2Noc2guYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkFib3J0ZWQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQn9C10YDQtdGA0LLQsNC90L4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmllbGQgaXMgdG9vIGxvbmcuXG4iCittc2dzdHIgItC/0L7Qu9C1INC90LDQtNGC0L4g0LLQtdC70LjQutC1LlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiclYycg0L3QtSDQvdC1INC00L7Qt9Cy0L7Qu9GP0ZTRgtGM0YHRjy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICLQmtC10YDRg9GO0YfRliDQv9C+0YHQu9GW0LTQvtCy0L3QvtGB0YLRliDQvdC1INC00L7Qt9Cy0L7Qu9GP0Y7RgtGM0YHRjy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxMgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiRmluZ2VyINGW0L3RhNC+0YDQvNCw0YbRltGOINCd0JUg0LfQvNGW0L3QtdC90L4uINCh0L/RgNC+0LHRg9C50YLQtSDQv9GW0LfQvdGW0YjQtS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiRmluZ2VyINGW0L3RhNC+0YDQvNCw0YbRltGOINC30LzRltC90LXQvdC+LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiVzOiAlcyDQvdC1INCw0LLRgtC+0YDQuNC30L7QstCw0L3QuNC5INC00LvRjyDQt9C80ZbQvdC4INC+0LHQvtC70L7QvdC60LggJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogVUlEINC30LDQv9GD0YnQtdC90L7RlyDQv9GA0L7Qs9GA0LDQvNC4INC90LUg0LLRltC00L/QvtCy0ZbQtNCw0ZQgVUlEINC60L7RgNC40YHRgtGD0LLQsNGH0LAsINC/0LDRgNCw0LzQtdGC0YDQuCDRj9C60L7Qs9C+ICIKKyLQt9C80ZbQvdGO0Y7RgtGM0YHRjywg0LfQvNGW0L3RgyDQvtCx0L7Qu9C+0L3QutC4INC30LDQsdC+0YDQvtC90LXQvdC+XG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFlvdXIgc2hlbGwgaXMgbm90IGluIC9ldGMvc2hlbGxzLCBzaGVsbCBjaGFuZ2UgZGVuaWVkXG4iCittc2dzdHIgIiVzOiDQktCw0YjQsCDQvtCx0L7Qu9C+0L3QutCwINC90LUg0YMgL2V0Yy9zaGVsbHMsINC30LzRltC90LAg0L7QsdC+0LvQvtC90LrQuCDQt9Cw0LHQvtGA0L7QvdC10L3QsFxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAi0JfQvNGW0L3RjtGU0YLRjNGB0Y8g0L7QsdC+0LvQvtC90LrQsCDQtNC70Y8gJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjIKK21zZ2lkICJOZXcgc2hlbGwiCittc2dzdHIgItCd0L7QstCwINC+0LHQvtC70L7QvdC60LAiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgbm90IGNoYW5nZWQuXG4iCittc2dzdHIgItCe0LHQvtC70L7QvdC60LAg0L3QtSDQt9C80ZbQvdC10L3QsC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICLQntCx0L7Qu9C+0L3QutCwINCd0JUg0LfQvNGW0L3QtdC90LAuINCh0L/RgNC+0LHRg9C50YLQtSDQv9GW0LfQvdGW0YjQtS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBjaGFuZ2VkLlxuIgorbXNnc3RyICLQntCx0L7Qu9C+0L3QutCwINC30LzRltC90LXQvdCwLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgWyAtcyDQvtCx0L7Qu9C+0L3QutCwIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsg0ZbQvCfRj1/QutC+0YDQuNGB0YLRg9Cy0LDRh9CwIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM0OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2hlbGwgbXVzdCBiZSBhIGZ1bGwgcGF0aCBuYW1lLlxuIgorbXNnc3RyICIlczog0YjQu9GP0YUg0LTQviDQvtCx0L7Qu9C+0L3QutC4INC/0L7QstC40L3QtdC9INCx0YPRgtC4INCw0LHRgdC+0LvRjtGC0L3QuNC8LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIg0L3QtSDRltGB0L3Rg9GULlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGV4ZWN1dGFibGUuXG4iCittc2dzdHIgIiVzOiBcIiVzXCIg0L3QtSDRlCDQstC40LrQvtC90YPQstCw0L3QuNC8LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogJyVjJyDQvdC1INC00L7Qt9Cy0L7Qu9GP0ZTRgtGM0YHRjy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6INCS0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuCDQutC10YDRg9GO0YfRliDRgdC40LzQstC+0LvQuCDQvdC1INC00L7Qt9Cy0L7Qu9GP0Y7RgtGM0YHRjy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NSBsb2dpbi11dGlscy9jaHNoLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86IFwiJXNcIiDQvdC1INC30ZYg0YHQv9C40YHQutGDIC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiJXM6IFwiJXNcIiDQvdC1INC30ZYg0YHQv9C40YHQutGDIC9ldGMvc2hlbGxzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiJXM6INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0L/QsNGA0LDQvNC10YLRgCAtbCDRidC+0LEg0L/QtdGA0LXQs9C70Y/QvdGD0YLQuCDRgdC/0LjRgdC+0LpcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUgJXMgLWwg0YnQvtCxINC/0LXRgNC10LPQu9GP0L3Rg9GC0Lgg0YHQv9C40YHQvtC6LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGtub3duIHNoZWxscy5cbiIKK21zZ3N0ciAi0J3QtdC80LDRlCDQstGW0LTQvtC80LjRhSDQvtCx0L7Qu9C+0L3QvtC6LlxuIgorCisjOiBsb2dpbi11dGlscy9pc2xvY2FsLmM6ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuICVzIGZvciByZWFkaW5nLCBleGl0aW5nLiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXMg0LTQu9GPINGH0LjRgtCw0L3QvdGPIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MTQ4Cittc2dpZCAidXNhZ2U6IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXNlciAuLi5dXG4iCittc2dzdHIgIiIKKyLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oINC90LDQt9Cy0LBf0LLRg9C30LvQsF0gIgorIlvQutC+0YDQuNGB0YLRg9Cy0LDRhyAuLi5dXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozMDIKK21zZ2lkICIgIHN0aWxsIGxvZ2dlZCBpbiIKK21zZ3N0ciAiICDQtNC+0YHRliDRgyDRgdC40YHRgtC10LzRliIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKyJcbiIKKyJ3dG1wINC/0L7Rh9C40L3QsNGU0YLRjNGB0Y8gJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozODAgbG9naW4tdXRpbHMvbGFzdC5jOjM5OCBsb2dpbi11dGlscy9sYXN0LmM6NDQ5Cittc2dpZCAibGFzdDogbWFsbG9jIGZhaWx1cmUuXG4iCittc2dzdHIgImxhc3Q6INC/0L7QvNC40LvQutCwINCy0LjQtNGW0LvQtdC90L3RjyDQv9Cw0Lwn0Y/RgtGWLlxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgImxhc3Q6INC/0L7QvNC40LvQutCwIGdldGhvc3RuYW1lIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisi0L/QtdGA0LXRgNCy0LDQvdC+ICUxMC4xMHMgJTUuNXMgXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiBjYW4ndCByZW9wZW4gdHR5OiAlcyIKK21zZ3N0ciAi0KTQkNCi0JDQm9Cs0J3QkCDQn9Ce0JzQmNCb0JrQkDog0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggdHR5OiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIKK21zZ3N0ciAiJXMg0L3QtSDRlCDRgdC/0LXRhtGW0LDQu9GM0L3QuNC8INGE0LDQudC70L7QvCDQsdC70L7Rh9C90L7Qs9C+INC/0YDQuNGB0YLRgNC+0Y4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjM4Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgItCk0JDQotCQ0JvQrNCd0JAg0J/QntCc0JjQm9Ca0JA6INC90LXQv9GA0LDQstC40LvRjNC90LjQuSB0dHkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICJsb2dpbjog0L/QsNGA0LDQvNC10YLRgCAtaCDQvNC+0LbQtSDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC0Lgg0LvQuNGI0LUg0LDQtNC80ZbQvdGW0YHRgtGA0LDRgtC+0YAuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzogbG9naW4gWy1mcF0gW9GW0Lwn0Y9f0LrQvtGA0LjRgdGC0YPQstCw0YfQsF1cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgaW5pdGlhbGl6ZSBQQU06ICVzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0ZbQvdGW0YbRltCw0LvRltC30YPQstCw0YLQuCBQQU06ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgItCG0Lwn0Y86IgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICLQn9Ce0JzQmNCb0J7QmiDQktCl0J7QlNCjICVkINCXICVzINCU0JvQryAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiIgorItCd0LXQutC+0YDQtdC60YLQvdC40Lkg0LLRhdGW0LRcbiIKKyJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgItCd0JDQlNCi0J4g0JHQkNCT0JDQotCeINCf0J7QnNCY0JvQntCaINCS0KXQntCU0KMgKCVkKSDQlyAlcyDQlNCb0K8gJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgItCd0JXQktCU0JDQm9CY0Jkg0KHQldCQ0J3QoSDQktCl0J7QlNCjINCXICVzINCU0JvQryAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorIlxuIgorItCd0LXQutC+0YDQtdC60YLQvdC40Lkg0LLRhdGW0LRcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTAgbG9naW4tdXRpbHMvbG9naW4uYzo2OTcgbG9naW4tdXRpbHMvbG9naW4uYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlc3Npb24gc2V0dXAgcHJvYmxlbSwgYWJvcnQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQn9C+0LzQuNC70LrQsCDQstGB0YLQsNC90L7QstC70LXQvdC90Y8g0YHQtdCw0L3RgdGDLCDQv9C10YDQtdGA0LLQsNC90L4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5VTEwgdXNlciBuYW1lIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIk5VTEwg0ZbQvCfRjyDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwINGDICVzOiVkLiDQktC40YXRltC0LiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB1c2VyIG5hbWUgXCIlc1wiIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgItCd0LXQv9GA0LDQstC40LvRjNC90LUg0ZbQvCfRjyDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwIFwiJXNcIiDRgyAlczolZC4g0JLQuNGF0ZbQtC4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzE3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgImxvZ2luOiDQndC10LTQvtGB0YLQsNGC0L3RjNC+INC/0LDQvCfRj9GC0ZZcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICLQndC10LTQvtC/0YPRgdGC0LjQvNC1INGW0Lwn0Y8g0LrQvtGA0LjRgdGC0YPQstCw0YfQsCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9naW4gcmVmdXNlZCBvbiB0aGlzIHRlcm1pbmFsLlxuIgorbXNnc3RyICIlcyDQt9Cw0LHQvtGA0L7QvdC10L3QviDQstGF0L7QtNC40YLQuCDQvdCwINGG0YzQvtC80YMg0YLQtdGA0LzRltC90LDQu9GWLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIEZST00gJXMgT04gVFRZICVzIgorbXNnc3RyICIlcyDQl9CQ0JHQntCg0J7QndCV0J3QniDQktCl0J7QlNCY0KLQmCDQlyAlcyDQndCQIFRUWSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiCittc2dzdHIgItCS0KXQhtCUICVzINCX0JDQkdCe0KDQntCd0JXQndCY0Jkg0J3QkCBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICLQndC10LrQvtGA0LXQutGC0L3QuNC5INCy0YXRltC0XG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICJESUFMVVAgQVQgJXMgQlkgJXMiCittc2dzdHIgItCS0KXQhtCUINCd0JAgJXMg0JLQhtCUICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIgorbXNnc3RyICLQktCl0IbQlCBST09UINCd0JAgJXMg0JcgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIgorbXNnc3RyICLQktCl0IbQlCBST09UINCd0JAgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwNQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyBGUk9NICVzIgorbXNnc3RyICLQktCl0IbQlCDQndCQICVzINCa0J7QoNCY0KHQotCj0JLQkNCnICVzINCXICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gT04gJXMgQlkgJXMiCittc2dzdHIgItCS0KXQhtCUINCd0JAgJXMg0JrQntCg0JjQodCi0KPQktCQ0KcgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEyOQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBuZXcgbWFpbC5cbiIKK21zZ3N0ciAi0JTQu9GPINCy0LDRgSDRlCDQvdC+0LLQsCDQv9C+0YjRgtCwLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAi0JTQu9GPINCy0LDRgSDRlCDQv9C+0YjRgtCwLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiCittc2dzdHIgImxvZ2luOiDQv9C+0LzQuNC70LrQsCDRgNC+0LfQs9Cw0LvRg9C20LXQvdC90Y86ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVElPQ1NDVFRZIGZhaWxlZDogJW0iCittc2dzdHIgItC/0L7QvNC40LvQutCwIFRJT0NTQ1RUWTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAgc2V0dWlkKCkiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBkaXJlY3RvcnkgJXMhXG4iCittc2dzdHIgItCd0LXQvNCw0ZQg0LrQsNGC0LDQu9C+0LPRgyAlcyFcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2dpbmcgaW4gd2l0aCBob21lID0gXCIvXCIuXG4iCittc2dzdHIgItCS0YXRltC0INC3INC00L7QvNCw0YjQvdGW0Lwg0LrQsNGC0LDQu9C+0LPQvtC8ID0gXCIvXCIuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgImxvZ2luOiDQvdC10LTQvtGB0YLQsNGC0L3RjNC+INC/0LDQvCfRj9GC0ZYg0LTQu9GPINGB0YbQtdC90LDRgNGW0Y4g0L7QsdC+0LvQvtC90LrQuC5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iCittc2dzdHIgImxvZ2luOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC60L7QvdCw0YLQuCDRgdGG0LXQvdCw0YDRltC5INC+0LHQvtC70L7QvdC60Lg6ICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIHNoZWxsOiAlcy5cbiIKK21zZ3N0ciAibG9naW46INC90LXQvNCw0ZQg0L7QsdC+0LvQvtC90LrQuDogJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJXMgbG9naW46ICIKK21zZ3N0ciAiIgorIlxuIgorIiVzINGW0Lwn0Y86ICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWUgbXVjaCB0b28gbG9uZy5cbiIKK21zZ3N0ciAi0YDQtdGU0YHRgtGA0LDRhtGW0LnQvdC1INGW0Lwn0Y8g0L3QsNC00YLQviDQtNC+0LLQs9C1LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICLQhtC8J9GPINC90LDQtNGC0L4g0LTQvtCy0LPQtSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgItGA0LXRlNGB0YLRgNCw0YbRltC50L3QtSDRltC8J9GPINC90LUg0LzQvtC20LUg0L/QvtGH0LjQvdCw0YLQuNGB0Ywg0LcgJy0nLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgItC90LDQtNGC0L4g0LHQsNCz0LDRgtC+INC90LDQtNC80ZbRgNC90LjRhSDQvdC+0LLQuNGFINGA0Y/QtNC60ZbQsi5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIxCittc2dpZCAiRVhDRVNTSVZFIGxpbmVmZWVkcyIKK21zZ3N0ciAi0J3QkNCU0JzQhtCg0J3QhiDRgdC40LzQstC+0LvQuCDQvdC+0LLQvtCz0L4g0YDRj9C00LrQsCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIHRpbWVkIG91dCBhZnRlciAlZCBzZWNvbmRzXG4iCittc2dzdHIgItCS0LjQudGI0L7QsiDRh9Cw0YEg0L7Rh9GW0LrRg9Cy0LDQvdC90Y8g0LLRhdC+0LTRgyDQv9GW0YHQu9GPICVkINGB0LXQutGD0L3QtFxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBsb2dpbjogJS4qcyAiCittc2dzdHIgItCe0YHRgtCw0L3QvdGW0Lkg0LLRhdGW0LQ6ICUuKnMgIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnJvbSAlLipzXG4iCittc2dzdHIgItC3ICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIm9uICUuKnNcbiIKK21zZ3N0ciAi0L3QsCAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorbXNnc3RyICLQn9Ce0JzQmNCb0JrQkCDQktCl0J7QlNCjINCXICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICLQn9Ce0JzQmNCb0JrQkCDQktCl0J7QlNCjINCd0JAgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgRlJPTSAlcywgJXMiCittc2dzdHIgIiVkINCf0J7QnNCY0JvQntCaINCS0KXQntCU0KMg0JcgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICIlZCDQn9Ce0JzQmNCb0J7QmiDQktCl0J7QlNCjINCd0JAgJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICLQstGB0YLQsNC90L7QstC70LXQvdC+IHlcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5cbiIKK21zZ3N0ciAi0LLRgdGC0LDQvdC+0LLQu9C10L3QviAgblxuIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBtZXNnIFt5IHwgbl1cbiIKK21zZ3N0ciAi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiBtZXNnIFt5IHwgbl1cbiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAibmV3Z3JwOiDQktC4INGF0YLQvj8iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEwNyBsb2dpbi11dGlscy9uZXdncnAuYzoxMjEKK21zZ2lkICJuZXdncnA6IHNldGdpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXRnaWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNCBsb2dpbi11dGlscy9uZXdncnAuYzoxMTYKK21zZ2lkICJuZXdncnA6IE5vIHN1Y2ggZ3JvdXAuIgorbXNnc3RyICJuZXdncnA6INC90LXQvNCw0ZQg0YLQsNC60L7RlyDQs9GA0YPQv9C4LiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAibmV3Z3JwOiDQlNC+0YHRgtGD0L8g0LfQsNCx0L7RgNC+0L3QtdC90L4iCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICJuZXdncnA6IHNldHVpZCIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTM4Cittc2dpZCAiTm8gc2hlbGwiCittc2dzdHIgItCd0LXQvNCw0ZQg0L7QsdC+0LvQvtC90LrQuCIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IHNodXRkb3duIFstaHwtcl0gWy1mcXNdIFtub3d8aGg6c3N8K21pbnNdXG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQsNC90L3Rjzogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoxMzQKK21zZ2lkICJTaHV0ZG93biBwcm9jZXNzIGFib3J0ZWQiCittc2dzdHIgItCf0YDQvtGG0LXRgSDQt9Cw0LLQtdGA0YjQtdC90L3RjyDRgNC+0LHQvtGC0Lgg0LLRltC00LzRltC90LXQvdC+IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiVzOiDQm9C40YjQtSDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgCDQvNC+0LbQtSDQt9Cw0LLQtdGA0YjRg9Cy0LDRgtC4INGA0L7QsdC+0YLRgyDRgdC40YHRgtC10LzQuC5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgItCm0LUg0L3QsNC/0LXQstC90L4g0LHRg9C00LUg0LfQsNCy0YLRgNCwLCDQvNC+0LbQtdGC0LUg0LfQsNGH0LXQutCw0YLQuCDQtNC+INGC0L7Qs9C+INGH0LDRgdGDP1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMxMAorbXNnaWQgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCittc2dzdHIgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAi0KDQvtCx0L7RgtGDINGB0LjRgdGC0LXQvNC4INCx0YPQtNC1INC30LDQstC10YDRiNC10L3QviDRh9C10YDQtdC3IDUg0YXQstC40LvQuNC9IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM0MworbXNnaWQgIkxvZ2luIGlzIHRoZXJlZm9yZSBwcm9oaWJpdGVkLiIKK21zZ3N0ciAi0KLQsNC60LjQvCDRh9C40L3QvtC8INCy0YXRltC0INC30LDQsdC+0YDQvtC90LXQvdC+LiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVib290ZWQgYnkgJXM6ICVzIgorbXNnc3RyICLQv9C10YDQtdC30LDQstCw0L3RgtCw0LbQtdC90L3RjyDRltC90ZbRhtGW0LnQvtCy0LDQvdC1ICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAi0LfQsNCy0LXRgNGI0LXQvdC90Y8g0YHQuNGB0YLQtdC80Lgg0ZbQvdGW0YbRltC50L7QstCw0L3QtSAlczogJXMiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDMyCittc2dpZCAiIgorIlxuIgorIldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iCittc2dzdHIgIiIKKyJcbiIKKyLQp9C+0LzRgyDQv9GA0L7Qs9GA0LDQvNCwINC00L7RgdGWINC/0YDQsNGG0Y7RlCDQv9GW0YHQu9GPINC/0LXRgNC10LfQsNCy0LDQvdGC0LDQttC10L3QvdGPPyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisiXG4iCisi0JLQuCDQvNC+0LbQtdGC0LUg0LLQuNC80LrQvdGD0YLQuCDQttC40LLQu9C10L3QvdGPLi4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGtlcm5lbCBwb3dlci1vZmYgZmFjaWxpdHkuLi5cbiIKK21zZ3N0ciAi0JLQuNC60LvQuNC60LDRlNGC0YzRgdGPINGE0YPQvdC60YbRltGPINGP0LTRgNCwINCy0LjQvNC60L3QtdC90L3RjyDQttC40LLQu9C10L3QvdGPLi4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHBvd2VyaW5nIG9mZlx0JXNcbiIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0LLQuNC80LjQutCw0L3QvdGPINC20LjQstC70LXQvdC90Y9cdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIkV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBcIiVzXCIgLi4uXG4iCittc2dzdHIgItCX0LDQv9GD0YHQutCw0ZTRgtGM0YHRjyDQv9GA0L7Qs9GA0LDQvNCwIFwiJXNcIiAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nXHQlc1xuIgorbXNnc3RyICLQn9C+0LzQuNC70LrQsCDQstC40LrQvtC90LDQvdC90Y9cdCVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSR0VOVDogYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSAlczoiCittc2dzdHIgItCi0JXQoNCc0IbQndCe0JLQnjog0YjQuNGA0L7QutC+0LzQvtCy0L3QtSDQv9C+0LLRltC00L7QvNC70LXQvdC90Y8g0LLRltC0ICVzOiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgaG91cnMgJWQgbWludXRlcyIKK21zZ3N0ciAi0KDQvtCx0L7RgtGDINGB0LjRgdGC0LXQvNC4INCx0YPQtNC1INC30LDQstC10YDRiNC10L3QviDRh9C10YDQtdC3ICVkINCz0L7QtNC40L0gJWQg0YXQstC40LvQuNC9IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAi0KDQvtCx0L7RgtGDINGB0LjRgdGC0LXQvNC4INCx0YPQtNC1INC30LDQstC10YDRiNC10L3QviDRh9C10YDQtdC3IDEg0LPQvtC00LjQvdGDICVkINGF0LLQuNC70LjQvSIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgbWludXRlc1xuIgorbXNnc3RyICLQoNC+0LHQvtGC0YMg0YHQuNGB0YLQtdC80Lgg0LHRg9C00LUg0LfQsNCy0LXRgNGI0LXQvdC+INGH0LXRgNC10LcgJWQg0YXQstC40LvQuNC9XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgbWludXRlXG4iCittc2dzdHIgItCg0L7QsdC+0YLRgyDRgdC40YHRgtC10LzQuCDQsdGD0LTQtSDQt9Cw0LLQtdGA0YjQtdC90L4g0YfQtdGA0LXQtyAxINGF0LLQuNC70LjQvdGDXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIgorbXNnc3RyICLQoNC+0LHQvtGC0YMg0YHQuNGB0YLQtdC80Lgg0LHRg9C00LUg0LfQsNCy0LXRgNGI0LXQvdC+INCd0JXQktCG0JTQmtCb0JDQlNCd0J4hXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Li4uICVzIC4uLlxuIgorbXNnc3RyICJcdC4uLiAlcyAuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzAKK21zZ2lkICJDYW5ub3QgZm9yayBmb3Igc3dhcG9mZi4gU2hydWchIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0YHRgtCy0L7RgNC40YLQuCDQv9GA0L7RhtC10YEg0LTQu9GPIHN3YXBvZmYuINCU0LjQstC90L4hIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC60L7QvdCw0YLQuCBzd2Fwb2ZmLCDQvNC+0LbQu9C40LLQviB1bW91bnQg0LLQuNC60L7QvdCw0ZQg0YbRjiDQtNGW0Y4uIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU5NworbXNnaWQgIkNhbm5vdCBmb3JrIGZvciB1bW91bnQsIHRyeWluZyBtYW51YWxseS4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDRgdGC0LLQvtGA0LjRgtC4INC/0YDQvtGG0LXRgSDQtNC70Y8gdW1vdW50LCDRgdC/0YDQvtCx0YPQudGC0LUg0LLRgNGD0YfQvdGDLiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGV4ZWMgJXMsIHRyeWluZyB1bW91bnQuXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LrQvtC90LDRgtC4ICVzLCDRgdC/0YDQvtCx0YPQudGC0LUgdW1vdW50LlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LrQvtC90LDRgtC4IHVtb3VudCwg0LLRltC00LzQvtCy0LAg0LLRltC0IHVtb3VudC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjE1Cittc2dpZCAiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIgorbXNnc3RyICLQktGW0LTQutC70Y7Rh9C10L3QvdGPINGA0LXRiNGC0Lgg0YTQsNC50LvQvtCy0LjRhSDRgdC40YHRgtC10LwuLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iCittc2dzdHIgInNodXRkb3duOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrQu9GO0YfQuNGC0LggJXM6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzIKK21zZ2lkICJCb290aW5nIHRvIHNpbmdsZSB1c2VyIG1vZGUuXG4iCittc2dzdHIgItCf0LXRgNC10LLQsNC90YLQsNC20LXQvdC90Y8g0YMg0YDQtdC20LjQvCDRlNC00LjQvdC+0LPQviDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTM2Cittc2dpZCAiZXhlYyBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LLQuNC60L7QvdCw0L3QvdGPINGU0LTQuNC90L7RlyDQvtCx0L7Qu9C+0L3QutC4INC60L7RgNC40YHRgtGD0LLQsNGH0LBcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjE0MAorbXNnaWQgImZvcmsgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgItC/0L7QvNC40LvQutCwINGB0YLQstC+0YDQtdC90L3RjyDQv9GA0L7RhtC10YHRgyDQvtCx0L7Qu9C+0L3QutC4INGU0LTQuNC90L7Qs9C+INC60L7RgNC40YHRgtGD0LLQsNGH0LBcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstGW0LTQutGA0LjQstCw0L3QvdGPIGZpZm9cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIxMgorbXNnaWQgImVycm9yIHNldHRpbmcgY2xvc2Utb24tZXhlYyBvbiAvZGV2L2luaXRjdGwiCittc2dzdHIgItC/0L7QvNC40LvQutCwINCy0YHRgtCw0L3QvtCy0LvQtdC90L3RjyBjbG9zZS1vbi1leGVjINC90LAgL2Rldi9pbml0Y3RsIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjU5Cittc2dpZCAiZXJyb3IgcnVubmluZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfQsNC/0YPRgdC60YMgZmluYWxfcHJvZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0YHRgtCy0L7RgNC10L3QvdGPINC/0YDQvtGG0LXRgdGDIGZpbmFsX3Byb2dcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0NQorbXNnaWQgIiIKKyJcbiIKKyJXcm9uZyBwYXNzd29yZC5cbiIKK21zZ3N0ciAiIgorIlxuIgorItCd0LXQv9GA0LDQstC40LvRjNC90LjQuSDQv9Cw0YDQvtC70YwuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MTgKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstC40LrQvtC90LDQvdC90Y8gbHN0YXQg0LTQu9GPINGI0LvRj9GF0YNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQyNgorbXNnaWQgInN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LLQuNC60L7QvdCw0L3QvdGPIHN0YXQg0LTQu9GPINGI0LvRj9GF0YNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQzNAorbXNnaWQgIm9wZW4gb2YgZGlyZWN0b3J5IGZhaWxlZFxuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstGW0LTQutGA0LjQstCw0L3QvdGPINC60LDRgtCw0LvQvtCz0YNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwMQorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwYXduaW5nOiBcIiVzXCIgdG9vIGZhc3Q6IHF1ZW5jaGluZyBlbnRyeVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDkKK21zZ2lkICJmb3JrIGZhaWxlZFxuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDRgdGC0LLQvtGA0LXQvdC90Y8g0L/RgNC+0YbQtdGB0YNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU0MCB0ZXh0LXV0aWxzL21vcmUuYzoxNjYzCittc2dpZCAiZXhlYyBmYWlsZWRcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfQsNC/0YPRgdC60YNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU2NAorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggaW5pdHRhYlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NjMxCittc2dpZCAibm8gVEVSTSBvciBjYW5ub3Qgc3RhdCB0dHlcbiIKK21zZ3N0ciAi0L3QtdC80LDRlCBURVJNINCw0LHQviDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC60L7QvdCw0YLQuCBzdGF0INC00LvRjyB0dHlcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjkzOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igc3RvcHBpbmcgc2VydmljZTogXCIlc1wiXG4iCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30YPQv9C40L3QtdC90L3RjyDRgdC70YPQttCx0Lg6IFwiJXNcIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjk1MAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9GD0L/QuNC90LXQvdC90Y8g0YHQu9GD0LbQsdC4OiBcIiVzXCIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMDcwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBydW5uaW5nIHByb2dyYW1tZTogXCIlc1wiXG4iCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30LDQv9GD0YHQutGDIGZpbmFsX3Byb2dcbiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6NzUKK21zZ2lkICJ0b28gbWFueSBpb3YncyAoY2hhbmdlIGNvZGUgaW4gd2FsbC90dHltc2cuYykiCittc2dzdHIgItC90LDQtNGC0L4g0LHQsNCz0LDRgtC+IGlvdi3RgdGC0YDRg9C60YLRg9GAICjQt9C80ZbQvdGW0YLRjCDQutC+0LQg0YMgd2FsbC90dHltc2cuYykiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjg1CisjLCBjLWZvcm1hdAorbXNnaWQgImV4Y2Vzc2l2ZWx5IGxvbmcgbGluZSBhcmciCittc2dzdHIgItC90LDQtNC80ZbRgNC90L4g0LTQvtCy0LPQuNC5INGA0Y/QtNC+0Log0L/QsNGA0LDQvNC10YLRgNCwIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDRgdGC0LLQvtGA0LjRgtC4INC/0YDQvtGG0LXRgSIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICJmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiDQn9Ce0JPQkNCd0JAg0J/QntCc0JjQm9Ca0JAiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiDRhNCw0LnQuyDQv9Cw0YDQvtC70ZbQsiDQt9Cw0LnQvdGP0YLQuNC5LlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgZ3JvdXAgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIlczog0YTQsNC50Lsg0LPRgNGD0L8g0LfQsNC50L3Rj9GC0LjQuS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlICVzIGZpbGUgaXMgYnVzeSAoJXMgcHJlc2VudClcbiIKK21zZ3N0ciAiJXM6INGE0LDQudC7ICVzINC30LDQudC90Y/RgtC40LkgKNC90LDRj9Cy0L3QuNC5ICVzKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBsaW5rICVzOiAlc1xuIgorbXNnc3RyICIlczog0L/QvtC80LjQu9C60LAg0YHRgtCy0L7RgNC10L3QvdGPINC/0L7RgdC40LvQsNC90L3RjyAlczogJXNcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0LrQvtC90YLQtdC60YHRgiDQtNC70Y8gJXMiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGB0YLQsNC90L7QstC40YLQuCDQutC+0L3RgtC10LrRgdGCINC00LvRjyAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDRgNC+0LfQsdC70L7QutGD0LLQsNGC0LggJXM6ICVzICjQstCw0YjRliDQt9C80ZbQvdC4INCy0YHQtSDRidC1INGDICVzKVxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgZm9ya1xuIgorbXNnc3RyICIlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINGB0YLQstC+0YDQuNGC0Lgg0L/RgNC+0YbQtdGBXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIHVuY2hhbmdlZFxuIgorbXNnc3RyICIlczogJXMg0L3QtSDQt9C80ZbQvdC10L3QvlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBjaGFuZ2VzIG1hZGVcbiIKK21zZ3N0ciAiJXM6INC90LUg0LHRg9C70L4g0LfQvNGW0L3QtdC90L5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgItCd0LAg0YbRltC5INGB0LjRgdGC0LXQvNGWINCy0LjQutC+0YDQuNGB0YLQvtCy0YPRjtGC0YzRgdGPINGC0ZbQvdGM0L7QstGWINCz0YDRg9C/0LguXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSB1c2luZyBzaGFkb3cgcGFzc3dvcmRzIG9uIHRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICLQndCwINGG0ZbQuSDRgdC40YHRgtC10LzRliDQstC40LrQvtGA0LjRgdGC0L7QstGD0Y7RgtGM0YHRjyDRgtGW0L3RjNC+0LLRliDQv9Cw0YDQvtC70ZYuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiV291bGQgeW91IGxpa2UgdG8gZWRpdCAlcyBub3cgW3kvbl0/ICIKK21zZ3N0ciAi0JHQsNC20LDRlNGC0LUg0LLRltC00YDQtdC00LDQs9GD0LLQsNGC0LggJXMg0LfQsNGA0LDQtyBbeS9uXT8gIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbZmlsZV1cbiIKK21zZ3N0ciAi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBb0YTQsNC50LtdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCDRgtC40LzRh9Cw0YHQvtCy0LjQuSDRhNCw0LnQuy5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICLQqNC40YDQvtC60L7QvNC+0LLQvdC1INC/0L7QstGW0LTQvtC80LvQtdC90L3RjyDQstGW0LQgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiDQvdC1INCx0YPQtNC1INC/0YDQvtGH0LjRgtCw0L3QviAlcyAtINCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPIHN0ZGluLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICIlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0YDQvtGH0LjRgtCw0YLQuCAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgc3RhdCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGW0L3RhNC+0YDQvNCw0YbRltGOINC/0YDQviDRgtC40LzRh9Cw0YHQvtCy0LjQuSDRhNCw0LnQuy5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQv9GA0L7Rh9C40YLQsNGC0Lgg0YLQuNC80YfQsNGB0L7QstC40Lkg0YTQsNC50LsuXG4iCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY0IG1pc2MtdXRpbHMvY2FsLmM6Mzc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDRgNC+0LrRgzog0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSAxLTk5OTkiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY4Cittc2dpZCAiaWxsZWdhbCBtb250aCB2YWx1ZTogdXNlIDEtMTIiCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDQvNGW0YHRj9GG0Y86INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUgMS0xMiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNzIKK21zZ2lkICJpbGxlZ2FsIHllYXIgdmFsdWU6IHVzZSAxLTk5OTkiCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDRgNC+0LrRgzog0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSAxLTk5OTkiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6NDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICVkIgorbXNnc3RyICIlcyAlZCIKKworIzogbWlzYy11dGlscy9jYWwuYzo4NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIgorbXNnc3RyICLQstC40LrQvtGA0LjRgdGC0LDQvdC90Y86IGNhbCBbLTEzc21qeVZdIFtb0LzRltGB0Y/RhtGMXSDRgNGW0LpdXG4iCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsrZm9ybWF0XSBbZGF5IG1vbnRoIHllYXJdXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgWyvRhNC+0YDQvNCw0YJdIFvQtNC10L3RjCDQvNGW0YHRj9GG0Ywg0YDRltC6XVxuIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjUwCittc2dpZCAiU3QuIFRpYidzIERheSIKK21zZ3N0ciAi0JTQtdC90Ywg0YHQstGP0YLQvtCz0L4gVGliIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzo1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXMiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXNcbiIKK21zZ3N0ciAiJXM6INC90LXQstGW0LTQvtC80LjQuSDRgdC40LPQvdCw0LsgJXNcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIHByb2Nlc3MgXCIlc1wiXG4iCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQvdCw0LnRgtC4INC/0YDQvtGG0LXRgSBcIiVzXCJcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzE0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlczsgdmFsaWQgc2lnbmFsczpcbiIKK21zZ3N0ciAiJXM6INC90LXQstGW0LTQvtC80LjQuSDRgdC40LPQvdCw0LsgJXM7INC/0YDQsNCy0LjQu9GM0L3RliDRgdC40LPQvdCw0LvQuDpcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKK21zZ3N0ciAi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBbIC1zINGB0LjQs9C90LDQuyB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbINGB0LjQs9C90LDQuyBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NjcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAi0YDQtdGU0YHRgtGA0LDRhtGW0LnQvdC1INGW0Lwn0Y8g0L3QsNC00YLQviDQtNC+0LLQs9C1LlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQ6ICVzLlxuIgorbXNnc3RyICLQoNC+0LfQvNGW0YAg0LHQu9C+0LrRgzogJWRcbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb25uZWN0OiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiAlczogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiDQvdC10LLRltC00L7QvNCwINC90LDQt9Cy0LAg0LzQvtC20LvQuNCy0L7RgdGC0ZY6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gcHJpb3JpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjog0L3QtdCy0ZbQtNC+0LzQsCDQvdCw0LfQstCwINC/0YDRltC+0YDQuNGC0LXRgtGDOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiBsb2dnZXIgWy1pc10gWy1mINGE0LDQudC7XSBbLXAg0L/RgNGW0L7RgF0gWy10INGC0LXQs10gWy11INGB0L7QutC10YJdICIKKyJbINC/0L7QstGW0LTQvtC80LvQtdC90L3RjyAuLi4gXVxuIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzogbG9vayBbLWRmYV0gWy10INGB0LjQvNCy0L7Qu10g0YDRj9C00L7QuiBb0YTQsNC50LtdXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwNSBtaXNjLXV0aWxzL21jb29raWUuYzoxMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG9wZW4gJXNcbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXNcbiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA5IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJHb3QgJWQgYnl0ZXMgZnJvbSAlc1xuIgorbXNnc3RyICLQntGC0YDQuNC80LDQvdC+ICVkINCx0LDQudGCINC3ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxNDMgbWlzYy11dGlscy9uYW1laS5jOjE5OCBtaXNjLXV0aWxzL25hbWVpLmM6MjI1CisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjQ1IG1pc2MtdXRpbHMvbmFtZWkuYzoyNTIgbWlzYy11dGlscy9uYW1laS5jOjI5NAorIywgZnV6enkKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAi0L3QtdC00L7RgdGC0LDRgtC90YzQviDQv9Cw0Lwn0Y/RgtGWXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoxODgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHN5bWxpbms6ICVzIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9GH0LjRgtGD0LLQsNC90L3RjyDRh9Cw0YHRgyDRgyBpb2N0bCgpINC3ICVzIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MjMxIG1pc2MtdXRpbHMvbmFtZWkuYzoyNTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGW0L3RhNC+0YDQvNCw0YbRltGOINC/0YDQviAlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gcGF0aG5hbWUgW3BhdGhuYW1lIC4uLl1cbiIKK21zZ3N0ciAi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiBuYW1laSBbLW14XSDRiNC70Y/RhSBb0YjQu9GP0YUgLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIiVkINGA0L7Qt9C00ZbQu9GW0LI6XG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgbmFtZWkoMSkuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQ6ICVzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQsNC/0YPRgdGC0LjRgtC4ICVzIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBleGNlZWRlZCBsaW1pdCBvZiBzeW1saW5rcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiVzOiDQvdC10LTQvtGB0YLQsNGC0L3RjNC+INC/0LDQvCfRj9GC0ZZcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczog0L/QvtC80LjQu9C60LAg0L/QtdGA0LXQudC80LXQvdGD0LLQsNC90L3RjyAlcyDQvdCwICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAi0LLQuNC60LvQuNC6OiAlcyDQt9Cy0ZbQtNC60Lgg0LrRg9C00Lgg0YTQsNC50LvQuC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiBgJXMnIC0g0YbQtSDQv9C+0YHQuNC70LDQvdC90Y8uXG4iCisi0JLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSBgJXMgW9C/0LDRgNCw0LzQtdGC0YDQuF0gJXMnLCDRj9C60YnQviDQstC4INC00ZbQudGB0L3QviDQsdCw0LbQsNGU0YLQtSDQudC+0LPQviAiCisi0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4LlxuIgorItCh0YbQtdC90LDRgNGW0Lkg0L3QtSDQt9Cw0L/Rg9GJ0LXQvdC+LlxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW2ZpbGVdXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3Rjzogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW9GE0LDQudC7XVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICLQodGG0LXQvdCw0YDRltC5INC30LDQv9GD0YnQtdC90L4sINGE0LDQudC7IC0gJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvciAlZDogJXNcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfQsNC/0LjRgdGDINC90LAgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQgb24gJXMiCittc2dzdHIgItCh0YbQtdC90LDRgNGW0Lkg0LfQsNC/0YPRidC10L3QviDQvdCwICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM0NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yOiAlc1xuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YMg0L3QsCAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM1NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCB3cml0ZSBzY3JpcHQgZmlsZSwgZXJyb3I6ICVzXG4iCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQvdCw0LnRgtC4INC/0YDQuNGB0YLRgNGW0Lkg0LTQu9GPICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorIlxuIgorItCh0YbQtdC90LDRgNGW0Lkg0LfQsNCy0LXRgNGI0LXQvdC+INC90LAgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgItCh0YbQtdC90LDRgNGW0Lkg0LfQsNCy0LXRgNGI0LXQvdC+LCDRhNCw0LnQuyAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVucHR5IGZhaWxlZFxuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCBvcGVucHR5XG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICLQodC60ZbQvdGH0LjQu9C40YHRjCBwdHkt0L/RgNC40YHRgtGA0L7Rl1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIDx0aW1pbmdmaWxlPiBbPHR5cGVzY3JpcHQ+IFs8ZGl2aXNvcj5dXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhwZWN0ZWQgYSBudW1iZXIsIGJ1dCBnb3QgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjU2IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGl2aXNvciAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTA0CisjLCBmdXp6eQorbXNnaWQgIndyaXRlIHRvIHN0ZG91dCBmYWlsZWQiCittc2dzdHIgItCf0L7QvNC40LvQutCwINCy0ZbQtNC60YDQuNCy0LDQvdC90Y8gJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfRh9C40YLRg9Cy0LDQvdC90Y8g0YfQsNGB0YMg0YMgaW9jdGwoKSDQtyAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCDRhNCw0LnQuyAnJXMnIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCDRhNCw0LnQuyAnJXMnIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGltaW5nIGZpbGUgJXMiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30YfQuNGC0YPQstCw0L3QvdGPINGH0LDRgdGDINGDIGlvY3RsKCkg0LcgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ0aW1pbmdzIGZpbGUgJXM6ICVsdTogdW5leHBlY3RlZCBmb3JtYXQiCittc2dzdHIgIiVzOiDQndC10L7Rh9GW0LrRg9Cy0LDQvdC40Lkg0LrRltC90LXRhtGMINGE0LDQudC70LAg0YMg0YTQsNC50LvRliAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczog0J/QvtC80LjQu9C60LAg0YMg0L/QsNGA0LDQvNC10YLRgNCw0YUsINCy0LjQutC+0YDQuNGB0YLQsNC90L3Rj1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorbXNnc3RyICIgIFsgLXRlcm0g0L3QsNC30LLQsF/RgtC10YDQvNGW0L3QsNC70YMgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiAgWyAtcmVzZXQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiICBbIC1pbml0aWFsaXplIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtc29mdHNjcm9sbCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1saW5ld3JhcCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIgIFsgLWRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc1IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NworIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiAgWyAtc3RhbmRvdXQgWyBhdHRyIF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGluayBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiICBbIC1zdG9yZSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtdGFicyBbINGC0LDQsdGD0LsxINGC0LDQsdGD0LsyINGC0LDQsdGD0LszIC4uLiBdIF0gICAgICjRgtCw0LHRg9C7biA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtY2xydGFicyBbINGC0LDQsdGD0LsxINGC0LDQsdGD0LsyINGC0LDQsdGD0LszIC4uLiBdIF0gICjRgtCw0LHRg9C7biA9IDEtMTYwKVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZWd0YWJzIFsxLTE2MF0gXVxuIgorbXNnc3RyICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCittc2dzdHIgIiAgWyAtYmxhbmsgWzAtNjBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZHVtcCAgIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiAgWyAtZHVtcCAgIFsxLU5SX0NPTlNPTEVTXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGVuZCBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIgIFsgLWFwcGVuZCBbMS1OUl9DT05TT0xFU10gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1maWxlIGR1bXBmaWxlbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtZmlsZSDQvdCw0LfQstCwX9GE0LDQudC70YNf0LTQsNC80L/RgyBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtbXNnIFtvbnxvZmZdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorbXNnc3RyICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorbXNnc3RyICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCittc2dzdHIgIiAgWyAtYmZyZXEg0YfQsNGB0YLQvtGC0LBf0LfQstGD0LrRgyBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSBibGFua1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0YHRgtCy0L7RgNC40YLQuCDQv9GA0L7RhtC10YEiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSB1bmJsYW5rXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDRgdGC0LLQvtGA0LjRgtC4INC/0YDQvtGG0LXRgSIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBibGFuayBzdGF0dXNcbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRgdGC0LDQvdC+0LLQuNGC0Lgv0LfQvdGP0YLQuCDRgNC10LbQuNC8INC10L3QtdGA0LPQvtC30LHQtdGA0LXQttC10L3QvdGPXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCBrbG9nY3RsICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JpdGluZyBzY3JlZW5kdW1wXG4iCittc2dzdHIgItCf0L7QvNC40LvQutCwINC30LDQv9C40YHRgyDQt9C90ZbQvNC60YMg0LXQutGA0LDQvdGDIFxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICRURVJNIGlzIG5vdCBkZWZpbmVkLlxuIgorbXNnc3RyICIlczog0L3QtSDQstC40LfQvdCw0YfQtdC90L4gJFRFUk0uXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstZF0gWy1wIHBpZGZpbGVdIFstcyBzb2NrZXRwYXRoXSBbLVQgdGltZW91dF1cbiIKK21zZ3N0ciAiIgorItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogbGFzdCBbLSNdIFstZiBmaWxlXSBbLXQgdHR5XSBbLWgg0L3QsNC30LLQsF/QstGD0LfQu9CwXSAiCisiW9C60L7RgNC40YHRgtGD0LLQsNGHIC4uLl1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyBbLXJ8dF0gWy1uIG51bV0gWy1zIHNvY2tldHBhdGhdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgLWtcbiIKK21zZ3N0ciAiICAgICAgICVzIC1sIFsg0YHQuNCz0L3QsNC7IF1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorIywgZnV6enkKK21zZ2lkICJiYWQgYXJndW1lbnRzIgorbXNnc3RyICJjb2w6INC90LXQv9GA0LDQstC40LvRjNC90LjQuSAtbCDQsNGA0LPRg9C80LXQvdGCICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTU5CisjLCBmdXp6eQorbXNnaWQgInNvY2tldCIKK21zZ3N0ciAibmZzINGB0L7QutC10YIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNzAKKyMsIGZ1enp5Cittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAibmZzIGNvbm5lY3QiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxODkKKyMsIGZ1enp5Cittc2dpZCAid3JpdGUiCittc2dzdHIgItCX0LDQv9C40YHQsNGC0LgiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxOTcKKyMsIGZ1enp5Cittc2dpZCAicmVhZCBjb3VudCIKK21zZ3N0ciAi0L/RgNC+0YfQuNGC0LDQvdC+ICVjXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyMDMKK21zZ2lkICJiYWQgcmVzcG9uc2UgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGNyZWF0ZSB1bml4IHN0cmVhbSBzb2NrZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGJpbmQgdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4ICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsaXN0ZW4gb24gdW5peCBzb2NrZXQgJXM6ICVzXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4ICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciByZWFkaW5nIGZyb20gY2xpZW50LCBsZW4gPSAlZFxuIgorbXNnc3RyICLQn9C+0LzQuNC70LrQsCDRh9C40YLQsNC90L3RjyAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZXJhdGlvbiAlZCwgaW5jb21pbmcgbnVtID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEICVzIGFuZCAlZCBmb2xsb3dpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCAlZCBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBvcGVyYXRpb24gJWRcbiIKK21zZ3N0ciAi0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INGW0LTQtdC90YLQuNGE0ZbQutCw0YLQvtGAIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDY4IG1pc2MtdXRpbHMvdXVpZGQuYzo0ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkJhZCBudW1iZXI6ICVzXG4iCittc2dzdHIgIiVzOiDQvdC10L/RgNCw0LLQuNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y9cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUyNCBtaXNjLXV0aWxzL3V1aWRkLmM6NTUxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjYWxsaW5nIHV1aWRkIGRhZW1vbiAoJXMpOiAlc1xuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9GW0LzQvdC4INGA0LXQttC40LzRgyDQtNC+0YHRgtGD0L/RgyDQtNC+ICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGFuZCBzdWJzZXF1ZW50ICVkIFVVSUQnc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGlzdCBvZiBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmV4cGVjdGVkIHJlcGx5IGxlbmd0aCBmcm9tIHNlcnZlciAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qga2lsbCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIktpbGxlZCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGdlbi5jOjMyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1yXSBbLXRdXG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgW9C/0LDRgNCw0LzQtdGC0YDQuF0g0L/RgNC40YHRgtGA0ZbQuSAuLi5cbiIKKworIzogbWlzYy11dGlscy93aGVyZWlzLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIndoZXJlaXMgWyAtc2JtdSBdIFsgLVNCTSBkaXIgLi4uIC1mIF0gbmFtZS4uLlxuIgorbXNnc3RyICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0g0LrQsNGC0LDQu9C+0LMgLi4uIC1mIF0g0L3QsNC30LLQsC4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjEyOAorIywgZnV6enkKK21zZ2lkICJjYWxsb2MgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstC40LTRltC70LXQvdC90Y8g0L/QsNC8J9GP0YLRliIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxNTAKKyMsIGZ1enp5Cittc2dpZCAic3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0LLRltC00LrRgNC40LLQsNC90L3RjyAlcyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMDAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogcHJvYmluZyBpbml0aWFsaXphdGlvbiBmYWlsZWQiCittc2dzdHIgIiIKKyJcbiIKKyLQn9C+0LzQuNC70LrQsCDQt9Cw0LrRgNC40LLQsNC90L3RjyDRhNCw0LnQu9GDXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IGFwcGVhcnMgdG8gY29udGFpbiAnJXMnIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAi0JTQuNGB0LogJXMg0L3QtSDQvNGW0YHRgtC40YLRjCDQv9GA0LDQstC40LvRjNC90L7RlyDRgtCw0LHQu9C40YbRliDRgNC+0LfQtNGW0LvRltCyXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gc2VlayB0byBvZmZzZXQgMHglangiCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuDogJXNcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwIG9wZW5wdHlcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNzMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiV6ZCBieXRlcyBbIgorbXNnc3RyICLQsdCw0LnRgiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiXSBlcmFzZWQgYXQgb2Zmc2V0IDB4JWp4ICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI5MiBtb3VudC9zd2Fwb24uYzoxOTggbW91bnQvc3dhcG9uLmM6MjY2CisjOiBtb3VudC9zd2Fwb24uYzo0MTEgbW91bnQvc3dhcG9uLmM6NTcwIG1vdW50L3N3YXBvbi5jOjc3MgorIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCBvcGVucHR5XG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIG9mZnNldCAnJXMnIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAi0J3QtdC/0YDQsNCy0LjQu9GM0L3QtSDQstGB0YLQsNC90L7QstC70LXQvdC1INC30L3QsNGH0LXQvdC90Y86ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgW9C/0LDRgNCw0LzQtdGC0YDQuF0g0L/RgNC40YHRgtGA0ZbQuSAuLi5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzM2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIKK21zZ3N0ciAiRmluZ2VyINGW0L3RhNC+0YDQvNCw0YbRltGOINC30LzRltC90LXQvdC+LlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjM4NworbXNnaWQgIi0tb2Zmc2V0IGFuZCAtLWFsbCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IGNhbid0IGZpbmQgeW91ciB0dHkncyBuYW1lXG4iCittc2dzdHIgIndyaXRlOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8gINC30L3QsNC50YLQuCDQvdCw0LfQstGDINCy0LDRiNC+0LPQviB0dHlcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTog0YMg0LLQsNGBINC90LXQvNCw0ZQg0L/RgNCw0LIg0LfQsNC/0LjRgdGDLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluIG9uICVzLlxuIgorbXNnc3RyICJ3cml0ZTogJXMg0L3QtSDQstCy0ZbQudGI0L7QsiDRgyDRgdC40YHRgtC10LzRgyDQvdCwICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWQgb24gJXNcbiIKK21zZ3N0ciAid3JpdGU6INC00LvRjyAlcyDQstC40LLRltC0INC/0L7QstGW0LTQvtC80LvQtdC90Ywg0LLQuNC80LrQvdC10L3QviDQvdCwICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHdyaXRlIHVzZXIgW3R0eV1cbiIKK21zZ3N0ciAi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiB3cml0ZSDQutC+0YDQuNGB0YLRg9Cy0LDRhyBbdHR5XVxuIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIndyaXRlOiAlcyDQvdC1INCy0LLRltC50YjQvtCyINGDINGB0LjRgdGC0LXQvNGDXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZFxuIgorbXNnc3RyICJ3cml0ZTog0LTQu9GPICVzINCy0LjQstGW0LQg0L/QvtCy0ZbQtNC+0LzQu9C10L3RjCDQstC40LzQutC90LXQvdC+XG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIGxvZ2dlZCBpbiBtb3JlIHRoYW4gb25jZTsgd3JpdGluZyB0byAlc1xuIgorbXNnc3RyICJ3cml0ZTogJXMg0LLQstGW0LnRiNC+0LIg0YMg0YHQuNGB0YLQtdC80YMg0LHRltC70YzRiNC1INC+0LTQvdC+0LPQviDRgNCw0LfRgzsg0L3QsNC00YHQuNC70LDRlNGC0YzRgdGPINC90LAgJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgItCf0L7QstGW0LTQvtC80LvQtdC90L3RjyDQstGW0LQgJXNAJXMgKNGP0LogJXMpINC00L4gJXMg0YMgJXMgLi4uIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgItCf0L7QstGW0LTQvtC80LvQtdC90L3RjyDQstGW0LQgJXNAJXMg0LTQviAlcyDRgyAlcyAuLi4iCisKKyM6IG1vdW50L2ZzdGFiLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGVycm9yIHJlYWRpbmcgJXM6ICVzIgorbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC/0L7QvNC40LvQutCwINGH0LjRgtCw0L3QvdGPICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzIgbW91bnQvZnN0YWIuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY291bGQgbm90IG9wZW4gJXMgLSB1c2luZyAlcyBpbnN0ZWFkXG4iCittc2dzdHIgIm1vdW50OiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlcyAtINC90LDRgtC+0LzRltGB0YLRjCDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisi0L3QtSDQstC00LDRlNGC0YzRgdGPINGB0YLQstC+0YDQuNGC0Lgg0YTQsNC50Lsg0LHQu9C+0LrRg9Cy0LDQvdC90Y8gJXM6ICVzICjQtNC70Y8g0L/QtdGA0LXQstC40LfQvdCw0YfQtdC90L3RjyAiCisi0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSAtbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisi0L3QtSDQstC00LDRlNGC0YzRgdGPINGB0YLQstC+0YDQuNGC0Lgg0L/QvtGB0LjQu9Cw0L3QvdGPINC90LAg0YTQsNC50Lsg0LHQu9C+0LrRg9Cy0LDQvdC90Y8gJXM6ICVzICjQtNC70Y8g0L/QtdGA0LXQstC40LfQvdCw0YfQtdC90L3RjyAiCisi0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSAtbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0Lgg0YTQsNC50Lsg0LHQu9C+0LrRg9Cy0LDQvdC90Y8gJXM6ICVzICjQtNC70Y8g0L/QtdGA0LXQstC40LfQvdCw0YfQtdC90L3RjyAiCisi0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSAtbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQsNCx0LvQvtC60YPQstCw0YLQuCDRhNCw0LnQuyDQsdC70L7QutGD0LLQsNC90L3RjyAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo2NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQsNCx0LvQvtC60YPQstCw0YLQuCDRhNCw0LnQuyDQsdC70L7QutGD0LLQsNC90L3RjyAlczogJXMiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICLQstC40LnRiNC+0LIg0YfQsNGBINC+0YfRltC60YPQstCw0L3QvdGPIgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDRgdGC0LLQvtGA0LjRgtC4INC/0L7RgdC40LvQsNC90L3RjyAlc1xuIgorItCc0L7QttC70LjQstC+INGUINC30LDRgdGC0LDRgNGW0LvQuNC5INGE0LDQudC7INGE0LDQudC7INCx0LvQvtC60YPQstCw0L3QvdGPP1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjc5MiBtb3VudC9mc3RhYi5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyAoJXMpIC0gbXRhYiBub3QgdXBkYXRlZCIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXMgKCVzKSAtIG10YWIg0L3QtSDQvtC90L7QstC70LXQvdC+IgorCisjOiBtb3VudC9mc3RhYi5jOjg1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfQsNC/0LjRgdGDICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzo4NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXNcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfRltC80L3QuCDRgNC10LbQuNC80YMg0LTQvtGB0YLRg9C/0YMg0LTQviAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo4ODcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG93bmVyIG9mICVzOiAlc1xuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQt9GW0LzQvdC4INGA0LXQttC40LzRgyDQtNC+0YHRgtGD0L/RgyDQtNC+ICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg5OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCByZW5hbWUgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQv9C10YDQtdC50LzQtdC90YPQstCw0YLQuCAlcyDRgyAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjM2MgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgc2V0IGNhcGFjaXR5IG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDog0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0ZbQvdGE0L7RgNC80LDRhtGW0Y4g0L/RgNC+INC/0YDQuNGB0YLRgNGW0LkgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiLCDQt9GB0YPQsiAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjM4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsINC+0LHQvNC10LbQtdC90L3RjyDQvdCwINGA0L7Qt9C80ZbRgCAlbGxkIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzk3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gJXMgKHR5cGUgJTxQUkl1MzI+KSIKK21zZ3N0ciAiLCDRiNC40YTRgNGD0LLQsNC90L3RjyAlcyAo0YLQuNC/ICVkKSIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMAorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlZCIKK21zZ3N0ciAiLCDQt9GB0YPQsiAlZCIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gdHlwZSAlZFxuIgorbXNnc3RyICIsINGC0LjQvyDRiNC40YTRgNGD0LLQsNC90L3RjyAlZFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGdldCBpbmZvIG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDog0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0ZbQvdGE0L7RgNC80LDRhtGW0Y4g0L/RgNC+INC/0YDQuNGB0YLRgNGW0LkgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgb3BlbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4INC/0YDQuNGB0YLRgNGW0LkgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NDggbW91bnQvbG9tb3VudC5jOjQ4MCBtb3VudC9sb21vdW50LmM6NTQyCisjOiBtb3VudC9sb21vdW50LmM6NTg3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczog0LrQvtGA0LjRgdGC0YPQstCw0YcgXCIlc1wiINC90LUg0ZbRgdC90YPRlC5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ1OSBtb3VudC9sb21vdW50LmM6NjAwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIlczog0L3QtdC80LDRlCDQv9GA0LDQsiDQtNC+0YHRgtGD0L/RgyDQtNC+IC9kZXYvbG9vcCMiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNvdWxkIG5vdCBmaW5kIGFueSBmcmVlIGxvb3AgZGV2aWNlIgorbXNnc3RyICIlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINC30L3QsNC50YLQuCDQttC+0LTQvdC40Lkg0LLRltC70YzQvdC40LkgbG9vcC3Qv9GA0LjRgdGC0YDRltC5IgorCisjOiBtb3VudC9sb21vdW50LmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZT8gKElmIHNvLCByZWNvbXBpbGUgb3IgYG1vZHByb2JlIGxvb3AnLikiCittc2dzdHIgIiIKKyIlczog0J3QtSDQstC00LDRlNGC0YzRgdGPINC30L3QsNC50YLQuCDQttC+0LTQtdC9IGxvb3At0L/RgNC40YHRgtGA0ZbQuS4g0JzQvtC20LvQuNCy0L4g0YbQtSDRj9C00YDQviDQvdC1IFxuIgorIiAgICAgICDQv9GW0LTRgtGA0LjQvNGD0ZQg0YDQvtCx0L7RgtGDINC3IGxvb3At0L/RgNC40YHRgtGA0L7Rj9C80LggKNCv0LrRidC+INGG0LUg0YLQsNC6IC0g0L/QtdGA0LXQutC+0LzQv9GW0LvRjtC50YLQtVxuIgorIiAgICAgICDQudC+0LPQviDQsNCx0L4g0LLQuNC60L7QvdCw0LnRgtC1IGBtb2Rwcm9iZSBsb29wJykuIgorCisjOiBtb3VudC9sb21vdW50LmM6NjM2CisjLCBmdXp6eQorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hpbGUgcmVhZGluZyBwYXNzcGhyYXNlIgorbXNnc3RyICLQndC10LTQvtGB0YLQsNGC0L3RjNC+INC/0LDQvCfRj9GC0ZYg0LTQu9GPINC30LHRltC70YzRiNC10L3QvdGPINCx0YPRhNC10YDQsC5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY3OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAi0KHQtdC60YLQvtGAICVkINCy0LbQtSDRgNC+0LfQv9C+0LTRltC70LXQvdC40LlcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjY5NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXM6IGlzIHdyaXRlLXByb3RlY3RlZCwgdXNpbmcgcmVhZC1vbmx5LlxuIgorbXNnc3RyICJtb3VudDogJXMlcyDQt9Cw0YXQuNGJ0LXQvdC40Lkg0LLRltC0INC30LDQv9C40YHRgywg0LzQvtC90YLRg9GU0YLRjNGB0Y8g0LvQuNGI0LUg0LTQu9GPINGH0LjRgtCw0L3QvdGPIgorCisjOiBtb3VudC9sb21vdW50LmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9Cw0LHQu9C+0LrRg9Cy0LDRgtC4INGDINC/0LDQvCfRj9GC0ZYsINC30LDQstC10YDRiNC10L3QvdGPLlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODE1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVsbHUpOiDRg9GB0L/RltGI0L3QviDQt9Cw0LLQtdGA0YjQtdC90L5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgzNgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWxfbG9vcCglcyk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAiZGVsX2xvb3AoJXMpOiDRg9GB0L/RltGI0L3QviDQt9Cw0LLQtdGA0YjQtdC90L5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg0MAorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBkZWxldGUgZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICJsb29wOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC00LDQu9C40YLQuCDQv9GA0LjRgdGC0YDRltC5ICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMgbW91bnQgd2FzIGNvbXBpbGVkIHdpdGhvdXQgbG9vcCBzdXBwb3J0LiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisi0J/RgNC+0LPRgNCw0LzQsCBtb3VudCDQsdGD0LvQsCDRgdC60L7QvNC/0ZbQu9GM0L7QstCw0L3QsCDQsdC10Lcg0L/RltC00YLRgNC40LzQutC4IGxvb3At0L/RgNC40YHRgtGA0L7Rl9CyLiAiCisi0J/QtdGA0LXQutC+0LzQv9GW0LvRjtC50YLQtSDRl9GXIFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorItCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzpcbiIKKyIgICVzIGxvb3Bf0L/RgNC40YHRgtGA0ZbQuSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg0L7RgtGA0LjQvNCw0YLQuCDRltC90YTQvtGA0LzQsNGG0ZbRjlxuIgorIiAgJXMgLWQgbG9vcF/Qv9GA0LjRgdGC0YDRltC5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyDQstC40LTQsNC70LjRgtC4XG4iCisiICAlcyAtZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyDQt9C90LDQudGC0Lgg0LLRltC70YzQvdC40LlcbiIKKyIgICVzIFsgLWUg0YjQuNGE0YDRg9Cy0LDQvdC90Y8gXSBbIC1vINC30YHRg9CyIF0gbG9vcF/Qv9GA0LjRgdGC0YDRltC5INGE0LDQudC7ICMg0LLRgdGC0LDQvdC+0LLQuNGC0LhcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg5NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWUgfCAtLWVuY3J5cHRpb24gPHR5cGU+IGVuYWJsZSBkYXRhIGVuY3J5cHRpb24gd2l0aCBzcGVjaWZpZWQgPG5hbWUvbnVtPlxuIgorIiAtaCB8IC0taGVscCAgICAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1vIHwgLS1vZmZzZXQgPG51bT4gICAgICBzdGFydCBhdCBvZmZzZXQgPG51bT4gaW50byBmaWxlXG4iCisiICAgICAgLS1zaXplbGltaXQgPG51bT4gICBsb29wIGxpbWl0ZWQgdG8gb25seSA8bnVtPiBieXRlcyBvZiB0aGUgZmlsZVxuIgorIiAtcCB8IC0tcGFzcy1mZCA8bnVtPiAgICAgcmVhZCBwYXNzcGhyYXNlIGZyb20gZmlsZSBkZXNjcmlwdG9yIDxudW0+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBzZXR1cCByZWFkLW9ubHkgbG9vcCBkZXZpY2VcbiIKKyIgICAgICAtLXNob3cgICAgICAgICAgICAgIHByaW50IGRldmljZSBuYW1lICh3aXRoIC1mIDxmaWxlPilcbiIKKyIgLXYgfCAtLXZlcmJvc2UgICAgICAgICAgIHZlcmJvc2UgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDM0IG1vdW50L2xvbW91bnQuYzoxMDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJMb29wIGRldmljZSBpcyAlc1xuIgorbXNnc3RyICJsb29wOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCDQv9GA0LjRgdGC0YDRltC5ICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IGRldmljZSBpcyBidXN5IgorbXNnc3RyICJ1bW91bnQ6ICVzOiDQv9GA0LjRgdGC0YDRltC5INC30LDQudC90Y/RgtC40LkiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDg4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGxvb3Agc3VwcG9ydCB3YXMgYXZhaWxhYmxlIGF0IGNvbXBpbGUgdGltZS4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiIgorItCf0YDQuCDQutC+0LzQv9GW0LvRj9GG0ZbRlyDQvdC1INCx0YPQu9C+INCy0LLRltC80LrQvdC10L3QviDQv9GW0LTRgtGA0LjQvNC60YMgbG9vcC3Qv9GA0LjRgdGC0YDQvtGX0LIuINCf0LXRgNC10LrQvtC80L/RltC70Y7QudGC0LUuXG4iCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogaW1wcm9wZXJseSBxdW90ZWQgb3B0aW9uIHN0cmluZyAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdHJhbnNsYXRlZCAlcyAnJXMnIHRvICclcydcbiIKK21zZ3N0ciAibW91bnQ6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9C90LDQudGC0LggJXMg0YMgJXMg0LDQsdC+ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6INC30LPRltC00L3QviBtdGFiLCAlcyDQstC20LUg0L/RltC00LrQu9GO0YfQtdC90LjQuSDRgyAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICJtb3VudDog0LfQs9GW0LTQvdC+IG10YWIsICVzINC/0ZbQtNC60LvRjtGH0LXQvdC40Lkg0YMgJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzIGZvciB3cml0aW5nOiAlcyIKK21zZ3N0ciAibW91bnQ6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4ICVzINC00LvRjyDQt9Cw0L/QuNGB0YM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICJtb3VudDog0L/QvtC80LjQu9C60LAg0LfQsNC/0LjRgdGDICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzIgorbXNnc3RyICJtb3VudDog0L/QvtC80LjQu9C60LAg0LfQvNGW0L3QuCDQv9GA0LDQsiDQtNC+0YHRgtGD0L/RgyDQtNC+ICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6INC/0L7QvNC40LvQutCwINCy0YHRgtCw0L3QvtCy0LvQtdC90L3RjyDRiNCy0LjQtNC60L7RgdGC0ZY6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjY3NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIm1vdW50OiDQv9C+0LzQuNC70LrQsCDQstGB0YLQsNC90L7QstC70LXQvdC90Y8g0YjQstC40LTQutC+0YHRgtGWOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIm1vdW50OiDQv9C+0LzQuNC70LrQsCDRgdGC0LLQvtGA0LXQvdC90Y8g0L/RgNC+0YbQtdGB0YM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgJXNcbiIKK21zZ3N0ciAi0JLQuNC/0YDQvtCx0L7QstGD0ZTRgtGM0YHRjyAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg3OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogeW91IGRpZG4ndCBzcGVjaWZ5IGEgZmlsZXN5c3RlbSB0eXBlIGZvciAlc1xuIgorbXNnc3RyICJtb3VudDog0LLQuCDQvdC1INCy0LrQsNC30LDQu9C4INGC0LjQvyDRhNCw0LnQu9C+0LLQvtGXINGB0LjRgdGC0LXQvNC4INC00LvRjyAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiAgICAgICDQsdGD0LTRg9GC0Ywg0LLQuNC/0YDQvtCx0YPQstCw0L3RliDQstGB0ZYg0YLQuNC/0Lgg0LLQutCw0LfQsNC90ZYg0YMgJXMg0LDQsdC+ICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICIgICAgICAg0YLQsCDQstGW0L0g0YHRhdC+0LbQuNC5INGA0L7Qt9C00ZbQuyDQv9GW0LTQutCw0YfQutC4XG4iCisKKyM6IG1vdW50L21vdW50LmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIKK21zZ3N0ciAiICAgICAgINCx0YPQtNC1INCy0LjQv9GA0L7QsdGD0LLQsNC90L4g0YLQuNC/ICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiCittc2dzdHIgIiVzINGB0YXQvtC20LjQuSDQvdCwINGA0L7Qt9C00ZbQuyDQv9GW0LTQutCw0YfQutC4IC0g0L3QtSDQv9GW0LTQutC70Y7Rh9Cw0YLQuNC80LXRgtGM0YHRjyIKKworIzogbW91bnQvbW91bnQuYzoxMDAyCittc2dpZCAibW91bnQgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQv9GW0LTQutC70Y7Rh9C10L3QvdGPIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gbW91bnQgJXMgb24gJXMiCittc2dzdHIgIm1vdW50OiDQu9C40YjQtSDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgChyb290KSDQvNC+0LbQtSDQv9GW0LTQutC70Y7Rh9Cw0YLQuCAlcyDRgyAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMDc0Cittc2dpZCAibW91bnQ6IGxvb3AgZGV2aWNlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IGxvb3At0L/RgNC40YHRgtGA0ZbQuSDQstC60LDQt9Cw0L3QviDQtNCy0ZbRh9GWIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzkKK21zZ2lkICJtb3VudDogdHlwZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIm1vdW50OiDRgtC40L8g0LLQutCw0LfQsNC90L4g0LTQstGW0YfRliIKKworIzogbW91bnQvbW91bnQuYzoxMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBza2lwcGluZyB0aGUgc2V0dXAgb2YgYSBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDog0L/RgNC+0L/Rg9GB0LrQsNGU0YLRjNGB0Y8g0LLRgdGC0LDQvdC+0LLQu9C10L3QvdGPIGxvb3At0L/RgNC40YHRgtGA0L7RjlxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMgYXMgbG9vcCIKK21zZ3N0ciAibW91bnQ6INC30LPRltC00L3QviBtdGFiLCAlcyDQstC20LUg0L/RltC00LrQu9GO0YfQtdC90LjQuSDRgyAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiDQsdGD0LTQtSDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC0LjRgdGMIGxvb3At0L/RgNC40YHRgtGA0ZbQuSAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBmYWlsZWQgc2V0dGluZyB1cCBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDog0L/QvtC80LjQu9C60LAg0LLRgdGC0LDQvdC+0LLQu9C10L3QvdGPIGxvb3At0L/RgNC40YHRgtGA0L7RjlxuIgorCisjOiBtb3VudC9tb3VudC5jOjExNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNldHVwIGxvb3AgZGV2aWNlIHN1Y2Nlc3NmdWxseVxuIgorbXNnc3RyICJtb3VudDog0LLRgdGC0LDQvdC+0LLQu9C10L3QvdGPIGxvb3At0L/RgNC40YHRgtGA0L7RjiDRg9GB0L/RltGI0L3QviDQt9Cw0LLQtdGA0YjQtdC90L5cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyAlcyBmb3VuZCAtIGNyZWF0aW5nIGl0Li5cbiIKK21zZ3N0ciAibW91bnQ6INC90LUg0LfQvdCw0LnQtNC10L3QviAlcyAtINGB0YLQstC+0YDRjtGU0YLRjNGB0Y8uLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjExOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICJtb3VudDog0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXM6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIm1vdW50OiDQsNGA0LPRg9C80LXQvdGCINC00LvRjyAtcCDQsNCx0L4gLS1wYXNzLWZkINC/0L7QstC40L3QtdC9INCx0YPRgtC4INGH0LjRgdC70L7QvCIKKworIzogbW91bnQvbW91bnQuYzoxMjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgb3BlbiAlcyBmb3Igc2V0dGluZyBzcGVlZCIKK21zZ3N0ciAibW91bnQ6INC/0L7QvNC40LvQutCwINCy0ZbQtNC60YDQuNCy0LDQvdC90Y8gJXMg0LTQu9GPINCy0YHRgtCw0L3QvtCy0LvQtdC90L3RjyDRiNCy0LjQtNC60L7RgdGC0ZYiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIm1vdW50OiDQv9C+0LzQuNC70LrQsCDQstGB0YLQsNC90L7QstC70LXQvdC90Y8g0YjQstC40LTQutC+0YHRgtGWOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMzIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICJtb3VudDog0LfQs9GW0LTQvdC+IG10YWIsICVzINCy0LbQtSDQv9GW0LTQutC70Y7Rh9C10L3QuNC5INGDICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgInVtb3VudDogJXMg0LfQsNC50L3Rj9GC0LjQuSAtINC/0LXRgNC10L/RltC00LrQu9GO0YfQtdC90L4g0YMg0YDQtdC20LjQvCDQu9C40YjQtS3QtNC70Y8t0YfQuNGC0LDQvdC90Y9cbiIKKworIzogbW91bnQvbW91bnQuYzoxNDEzCittc2dpZCAiIgorIm1vdW50OiBJIGNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGZpbGVzeXN0ZW0gdHlwZSwgYW5kIG5vbmUgd2FzIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorIm1vdW50OiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC30L3QsNGH0LjRgtC4INGC0LjQvyDRhNCw0LnQu9C+0LLQvtGXINGB0LjRgdGC0LXQvNC4LCDRgtCwINGC0LjQvyDRj9Cy0L3QviDQvdC1INCy0LrQsNC30LDQvdC40LkiCisKKyM6IG1vdW50L21vdW50LmM6MTQxNgorbXNnaWQgIm1vdW50OiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmaWxlc3lzdGVtIHR5cGUiCittc2dzdHIgIm1vdW50OiDQvdC10L7QsdGF0ZbQtNC90L4g0LLQutCw0LfQsNGC0Lgg0YLQuNC/INGE0LDQudC70L7QstC+0Zcg0YHQuNGB0YLQtdC80LgiCisKKyM6IG1vdW50L21vdW50LmM6MTQxOQorbXNnaWQgIm1vdW50OiBtb3VudCBmYWlsZWQiCittc2dzdHIgIm1vdW50OiDQv9C+0LzQuNC70LrQsCDQv9GW0LTQutC70Y7Rh9C10L3QvdGPIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjUgbW91bnQvbW91bnQuYzoxNDYyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiCittc2dzdHIgIm1vdW50OiDRgtC+0YfQutCwINC80L7QvdGC0YPQstCw0L3QvdGPICVzINC90LUg0ZQg0LrQsNGC0LDQu9C+0LPQvtC8IgorCisjOiBtb3VudC9tb3VudC5jOjE0MjcKK21zZ2lkICJtb3VudDogcGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIm1vdW50OiDQtNC+0YHRgtGD0L8g0LfQsNCx0L7RgNC+0L3QtdC90L4iCisKKyM6IG1vdW50L21vdW50LmM6MTQyOQorbXNnaWQgIm1vdW50OiBtdXN0IGJlIHN1cGVydXNlciB0byB1c2UgbW91bnQiCittc2dzdHIgIm1vdW50OiDQtNC70Y8g0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPIG1vdW50INC90LXQvtCx0YXRltC00L3QviDQvNCw0YLQuCDQv9GA0LDQstCwINCw0LTQvNGW0L3RltGB0YLRgNCw0YLQvtGA0LAiCisKKyM6IG1vdW50L21vdW50LmM6MTQzMyBtb3VudC9tb3VudC5jOjE0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIGJ1c3kiCittc2dzdHIgIm1vdW50OiAlcyDQt9Cw0LnQvdGP0YLQuNC5IgorCisjOiBtb3VudC9tb3VudC5jOjE0MzkKK21zZ2lkICJtb3VudDogcHJvYyBhbHJlYWR5IG1vdW50ZWQiCittc2dzdHIgIm1vdW50OiBwcm9jINCy0LbQtSDQv9GW0LTQutC70Y7Rh9C10L3QviIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6ICVzINCy0LbQtSDQv9GW0LTQutC70Y7Rh9C10L3QviDQsNCx0L4gJXMg0LfQsNC50L3Rj9GC0LjQuSIKKworIzogbW91bnQvbW91bnQuYzoxNDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6INGC0L7Rh9C60LAg0LzQvtC90YLRg9Cy0LDQvdC90Y8gJXMg0L3QtSDRltGB0L3Rg9GUIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICJtb3VudDog0YLQvtGH0LrQsCDQvNC+0L3RgtGD0LLQsNC90L3RjyAlcyDRlCDRgdC40LzQstC+0LvRltGH0L3QuNC8INC/0L7RgdC40LvQsNC90L3Rj9C8LCDRj9C60LUg0LLQutCw0LfRg9GUINC90ZbQutGD0LTQuCIKKworIzogbW91bnQvbW91bnQuYzoxNDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzcGVjaWFsIGRldmljZSAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAibW91bnQ6INGB0L/QtdGG0ZbQsNC70YzQvdC40Lkg0L/RgNC40YHRgtGA0ZbQuSAlcyDQvdC1INGW0YHQvdGD0ZQiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorIm1vdW50OiDRgdC/0LXRhtGW0LDQu9GM0L3QuNC5INC/0YDQuNGB0YLRgNGW0LkgJXMg0L3QtSDRltGB0L3Rg9GUXG4iCisiICAgICAgICjQv9GA0LXRhNGW0LrRgSDRiNC70Y/RhdGDINC90LUg0ZQg0LrQsNGC0LDQu9C+0LPQvtC8KVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIG5vdCBtb3VudGVkIGFscmVhZHksIG9yIGJhZCBvcHRpb24iCittc2dzdHIgIm1vdW50OiAlcyDRidC1INC90LUg0L/RltC00LrQu9GO0YfQtdC90LjQuSwg0LDQsdC+INC90LXQv9GA0LDQstC40LvRjNC90LjQuSDQv9Cw0YDQsNC80LXRgtGAIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogd3JvbmcgZnMgdHlwZSwgYmFkIG9wdGlvbiwgYmFkIHN1cGVyYmxvY2sgb24gJXMsXG4iCisiICAgICAgIG1pc3NpbmcgY29kZXBhZ2Ugb3IgaGVscGVyIHByb2dyYW0sIG9yIG90aGVyIGVycm9yIgorbXNnc3RyICIiCisibW91bnQ6INC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRgtC40L8g0YTQsNC50LvQvtCy0L7RlyDRgdC40YHRgtC10LzQuCwg0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC/0LDRgNCw0LzQtdGC0YAsICIKKyLQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YHRg9C/0LXRgNCx0LvQvtC6INC90LAgJXMsXG4iCisiICAgICAgINCy0ZbQtNGB0YPRgtC90Y8g0LrQvtC00L7QstCwINGB0YLQvtGA0ZbQvdC60LAg0LDQsdC+INGW0L3RiNCwINC/0L7QvNC40LvQutCwIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODcKK21zZ2lkICIiCisiICAgICAgIChmb3Igc2V2ZXJhbCBmaWxlc3lzdGVtcyAoZS5nLiBuZnMsIGNpZnMpIHlvdSBtaWdodFxuIgorIiAgICAgICBuZWVkIGEgL3NiaW4vbW91bnQuPHR5cGU+IGhlbHBlciBwcm9ncmFtKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0OTYKK21zZ2lkICIiCisiICAgICAgIChjb3VsZCB0aGlzIGJlIHRoZSBJREUgZGV2aWNlIHdoZXJlIHlvdSBpbiBmYWN0IHVzZVxuIgorIiAgICAgICBpZGUtc2NzaSBzbyB0aGF0IHNyMCBvciBzZGEgb3Igc28gaXMgbmVlZGVkPykiCittc2dzdHIgIiIKKyIgICAgICAgKNC80L7QttC1INGG0LUg0L/RgNC40YHRgtGA0ZbQuSBJREUsINC00LvRjyDRj9C60L7Qs9C+INCy0Lgg0YTQsNC60YLQuNGH0L3QviDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtC1XG4iCisiICAgICAgIGlkZS1zY3NpLCDRgtC+0LzRgyDQv9C+0YLRgNGW0LHQvdGWIHNyMCwg0LDQsdC+IHNkYSDRh9C4INGJ0L7RgdGMINC/0L7QtNGW0LHQvdC1PykiCisKKyM6IG1vdW50L21vdW50LmM6MTUwMQorbXNnaWQgIiIKKyIgICAgICAgKGFyZW4ndCB5b3UgdHJ5aW5nIHRvIG1vdW50IGFuIGV4dGVuZGVkIHBhcnRpdGlvbixcbiIKKyIgICAgICAgaW5zdGVhZCBvZiBzb21lIGxvZ2ljYWwgcGFydGl0aW9uIGluc2lkZT8pIgorbXNnc3RyICIiCisiICAgICAgICjRh9C4INC90LUg0L3QsNC80LDQs9Cw0ZTRgtC10YHRjCDQstC4IGFyZW4ndCB5b3UgdHJ5aW5nIHRvIG1vdW50IGFuIGV4dGVuZGVkICIKKyJwYXJ0aXRpb24sXG4iCisiICAgICAgIGluc3RlYWQgb2Ygc29tZSBsb2dpY2FsIHBhcnRpdGlvbiBpbnNpZGU/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTA4Cittc2dpZCAiIgorIiAgICAgICBJbiBzb21lIGNhc2VzIHVzZWZ1bCBpbmZvIGlzIGZvdW5kIGluIHN5c2xvZyAtIHRyeVxuIgorIiAgICAgICBkbWVzZyB8IHRhaWwgIG9yIHNvXG4iCittc2dzdHIgIiIKKyIgICAgICAg0KMg0LTQtdGP0LrQuNGFINCy0LjQv9Cw0LTQutCw0YUg0LrQvtGA0LjRgdC90YMg0ZbQvdGE0L7RgNC80LDRhtGW0Y4g0LzQvtC20L3RliDQt9C90LDQudGC0Lgg0YMg0YHQuNGB0YLQtdC80L3QvtC80YMgIgorItC20YPRgNC90LDQu9GWXG4iCisiICAgICAgINGB0L/RgNC+0LHRg9C50YLQtSAtIGRtZXNnIHwgdGFpbCAg0YfQuCDRidC+0YHRjCDQv9C+0LTRltCx0L3QtVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICLRgtCw0LHQu9C40YbRjyDQvNC+0L3RgtGD0LLQsNC90L3RjyDQv9C10YDQtdC/0L7QstC90LXQvdCwIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiBjYW4ndCByZWFkIHN1cGVyYmxvY2siCittc2dzdHIgIm1vdW50OiAlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0YDQvtGH0LjRgtCw0YLQuCDRgdGD0L/QtdGA0LHQu9C+0LoiCisKKyM6IG1vdW50L21vdW50LmM6MTUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IHVua25vd24gZGV2aWNlIgorbXNnc3RyICJtb3VudDogJXM6INC90LXQstGW0LTQvtC80LjQuSDQv9GA0LjRgdGC0YDRltC5IgorCisjOiBtb3VudC9tb3VudC5jOjE1MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHVua25vd24gZmlsZXN5c3RlbSB0eXBlICclcyciCittc2dzdHIgIm1vdW50OiDQvdC10LLRltC00L7QvNC40Lkg0YLQuNC/INGE0LDQudC70L7QstC+0Zcg0YHQuNGB0YLQtdC80LggJyVzJyIKKworIzogbW91bnQvbW91bnQuYzoxNTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBwcm9iYWJseSB5b3UgbWVhbnQgJXMiCittc2dzdHIgIm1vdW50OiDQvNC+0LbQu9C40LLQviDQstC4INC80LDQu9C4INC90LAg0YPQstCw0LfRliAlcyIKKworIzogbW91bnQvbW91bnQuYzoxNTQyCittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAnaXNvOTY2MCc/IgorbXNnc3RyICJtb3VudDog0LzQvtC20LvQuNCy0L4g0LLQuCDQvNCw0LvQuCDQvdCwINGD0LLQsNC30ZYgJ2lzbzk2NjAnPyIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICJtb3VudDog0LzQvtC20LvQuNCy0L4g0LLQuCDQvNCw0LvQuCDQvdCwINGD0LLQsNC30ZYgaXNvOTY2MCA/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyDQvNCw0ZQg0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC90L7QvNC10YAg0L/RgNC40YHRgtGA0L7RjiDQsNCx0L4g0YTQsNC50LvQvtCy0LAg0YHQuNGB0YLQtdC80LAg0YLQuNC/0YMgJXMg0L3QtSAiCisi0L/RltC00YLRgNC40LzRg9GU0YLRjNGB0Y8iCisKKyM6IG1vdW50L21vdW50LmM6MTU1NgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlLCBhbmQgc3RhdCBmYWlscz8iCittc2dzdHIgIm1vdW50OiAlcyDQvdC1INGUINCx0LvQvtGH0L3QuNC8INC/0YDQuNGB0YLRgNC+0ZTQvCwg0YLQsCBzdGF0INC30LDQt9C90LDQsiDQvdC10LLQtNCw0YfRlj8iCisKKyM6IG1vdW50L21vdW50LmM6MTU1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorIm1vdW50OiDRj9C00YDQviDQvdC1INGA0L7Qt9C/0ZbQt9C90LDQu9C+ICVzINGP0Log0LHQu9C+0YfQvdC40Lkg0L/RgNC40YHRgtGA0ZbQuVxuIgorIiAgICAgICAo0LzQvtC20LvQuNCy0L4g0YLRgNC10LHQsCDQstC40LrQvtC90LDRgtC4IGBpbnNtb2Qg0LTRgNCw0LnQstC10YAnPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIm1vdW50OiAlcyDQvdC1INGUINCx0LvQvtGH0L3QuNC8INC/0YDQuNGB0YLRgNC+0ZTQvCAo0LzQvtC20LvQuNCy0L4sINGB0L/RgNC+0LHRg9C50YLQtSBgLW8gbG9vcCc/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlcyDQvdC1INGUINCx0LvQvtGH0L3QuNC8INC/0YDQuNGB0YLRgNC+0ZTQvCIKKworIzogbW91bnQvbW91bnQuYzoxNTY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSB2YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlcyDQvdC1INGUINC/0YDQsNCy0LjQu9GM0L3QuNC8INCx0LvQvtGH0L3QuNC8INC/0YDQuNGB0YLRgNC+0ZTQvCIKKworIzogbW91bnQvbW91bnQuYzoxNTcyCittc2dpZCAiYmxvY2sgZGV2aWNlICIKK21zZ3N0ciAi0LHQu9C+0YfQvdC40Lkg0L/RgNC40YHRgtGA0ZbQuSAiCisKKyM6IG1vdW50L21vdW50LmM6MTU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG1vdW50ICVzJXMgcmVhZC1vbmx5IgorbXNnc3RyICJtb3VudDog0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0ZbQtNC60LvRjtGH0LjRgtC4ICVzJXMg0LvQuNGI0LUg0LTQu9GPINGH0LjRgtCw0L3QvdGPIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkIGJ1dCBleHBsaWNpdCBgLXcnIGZsYWcgZ2l2ZW4iCittc2dzdHIgIm1vdW50OiAlcyVzINC30LDRhdC40YnQtdC90LjQuSDQstGW0LQg0LfQsNC/0LjRgdGDLCDQsNC70LUg0LHRg9C70L4g0LLQutCw0LfQsNC90L4g0LrQu9GO0YcgYC13JyIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHJlbW91bnQgJXMlcyByZWFkLXdyaXRlLCBpcyB3cml0ZS1wcm90ZWN0ZWQiCittc2dzdHIgIm1vdW50OiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L/RltC00LrQu9GO0YfQuNGC0LggJXMlcyDQu9C40YjQtSDQtNC70Y8g0YfQuNGC0LDQvdC90Y8iCisKKyM6IG1vdW50L21vdW50LmM6MTU5NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQsIG1vdW50aW5nIHJlYWQtb25seSIKK21zZ3N0ciAibW91bnQ6ICVzJXMg0LfQsNGF0LjRidC10L3QuNC5INCy0ZbQtCDQt9Cw0L/QuNGB0YMsINC80L7QvdGC0YPRlNGC0YzRgdGPINC70LjRiNC1INC00LvRjyDRh9C40YLQsNC90L3RjyIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gbWVkaXVtIGZvdW5kIG9uICVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDog0L3QtSDQt9C90LDQudC00LXQvdC+ICVzIC0g0YHRgtCy0L7RgNGO0ZTRgtGM0YHRjy4uXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYxMworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6ICVzINCy0LbQtSDQv9GW0LTQutC70Y7Rh9C10L3QuNC5INGDICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTYzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6ICVzIGRvZXMgbm90IGNvbnRhaW4gU0VMaW51eCBsYWJlbHMuXG4iCisiICAgICAgIFlvdSBqdXN0IG1vdW50ZWQgYW4gZmlsZSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyBsYWJlbHMgd2hpY2ggZG9lcyBub3RcbiIKKyIgICAgICAgY29udGFpbiBsYWJlbHMsIG9udG8gYW4gU0VMaW51eCBib3guIEl0IGlzIGxpa2VseSB0aGF0IGNvbmZpbmVkXG4iCisiICAgICAgIGFwcGxpY2F0aW9ucyB3aWxsIGdlbmVyYXRlIEFWQyBtZXNzYWdlcyBhbmQgbm90IGJlIGFsbG93ZWQgYWNjZXNzIHRvXG4iCisiICAgICAgIHRoaXMgZmlsZSBzeXN0ZW0uICBGb3IgbW9yZSBkZXRhaWxzIHNlZSByZXN0b3JlY29uKDgpIGFuZCBtb3VudCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIm1vdW50OiDQvdC1INCy0LrQsNC30LDQvdC+INGC0LjQvyAtINCy0LLQsNC20LDRlNGC0YzRgdGPIG5mcywg0YfQtdGA0LXQtyDQvdCw0Y/QstC90ZbRgdGC0Ywg0LTQstC+0LrRgNCw0L/QutC4XG4iCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICJtb3VudDog0L3QtSDQstC60LDQt9Cw0L3QviDRgtC40L8gLSDQstCy0LDQttCw0ZTRgtGM0YHRjyBjaWZzLCDRh9C10YDQtdC3INC90LDRj9Cy0L3RltGB0YLRjCDQv9GA0LXRhNGW0LrRgdGDIC8vXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiAlcyDQstC20LUg0L/RltC00LrQu9GO0YfQtdC90LjQuSDRgyAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjE5NDYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogcHJpbnQgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBwcmludCB0aGlzIGhlbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdCBtb3VudGVkIGZpbGVzeXN0ZW1zXG4iCisiICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1ZGluZyB2b2x1bWUgbGFiZWxzXG4iCisiU28gZmFyIHRoZSBpbmZvcm1hdGlvbmFsIHBhcnQuIE5leHQgdGhlIG1vdW50aW5nLlxuIgorIlRoZSBjb21tYW5kIGlzIGBtb3VudCBbLXQgZnN0eXBlXSBzb21ldGhpbmcgc29tZXdoZXJlJy5cbiIKKyJEZXRhaWxzIGZvdW5kIGluIC9ldGMvZnN0YWIgbWF5IGJlIG9taXR0ZWQuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IG1vdW50IGFsbCBzdHVmZiBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgIDogbW91bnQgZGV2aWNlIGF0IHRoZSBrbm93biBwbGFjZVxuIgorIiAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICAgOiBtb3VudCBrbm93biBkZXZpY2UgaGVyZVxuIgorIiAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICAgOiBvcmRpbmFyeSBtb3VudCBjb21tYW5kXG4iCisiTm90ZSB0aGF0IG9uZSBkb2VzIG5vdCByZWFsbHkgbW91bnQgYSBkZXZpY2UsIG9uZSBtb3VudHNcbiIKKyJhIGZpbGVzeXN0ZW0gKG9mIHRoZSBnaXZlbiB0eXBlKSBmb3VuZCBvbiB0aGUgZGV2aWNlLlxuIgorIk9uZSBjYW4gYWxzbyBtb3VudCBhbiBhbHJlYWR5IHZpc2libGUgZGlyZWN0b3J5IHRyZWUgZWxzZXdoZXJlOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIm9yIG1vdmUgYSBzdWJ0cmVlOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgb2xkZGlyIG5ld2RpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIG1vdW50IGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBkaXJcbiIKKyJBIGRldmljZSBjYW4gYmUgZ2l2ZW4gYnkgbmFtZSwgc2F5IC9kZXYvaGRhMSBvciAvZGV2L2Nkcm9tLFxuIgorIm9yIGJ5IGxhYmVsLCB1c2luZyAgLUwgbGFiZWwgIG9yIGJ5IHV1aWQsIHVzaW5nICAtVSB1dWlkIC5cbiIKKyJPdGhlciBvcHRpb25zOiBbLW5mRnJzdnddIFstbyBvcHRpb25zXSBbLXAgcGFzc3dkZmRdLlxuIgorIkZvciBtYW55IG1vcmUgZGV0YWlscywgc2F5ICBtYW4gOCBtb3VudCAuXG4iCittc2dzdHIgIiIKKyLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86IG1vdW50IC1WICAgICAgICAgIDog0LLQuNCy0LXRgdGC0Lgg0LLQtdGA0YHRltGOXG4iCisiICAgICAgIG1vdW50IC1oICAgICAgICAgICAgICAgICA6INCy0LjQstC10YHRgtC4INGG0Y4g0LTQvtCy0ZbQtNC60YNcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDog0LLQuNCy0LXRgdGC0Lgg0L/QtdGA0LXQu9GW0Log0L/RltC00LrQu9GO0YfQtdC90LjRhSDRhNCw0LnQu9C+0LLQuNGFICIKKyLRgdC40YHRgtC10LxcbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDog0YLQtSDQtiDRgdCw0LzQtSwg0LDQu9C1INGC0LDQutC+0LYg0LLQuNCy0L7QtNC40YLQuCDRltC80LXQvdCwINGC0L7QvNGW0LJcbiIKKyLQlNC+0YHRliDQsdGD0LvQsCDRltC90YTQvtGA0LzQsNGG0ZbQudC90LAg0YfQsNGB0YLQuNC90LAuINCU0LDQu9GWINC/0YDQviDQv9GW0LTQutC70Y7Rh9C10L3QvdGPINGE0LDQudC70L7QstC40YUg0YHQuNGB0YLQtdC8LlxuIgorItCa0L7QvNCw0L3QtNCwIC0gYG1vdW50IFstdCDRgtC40L9f0YTRgV0g0YnQviDQutGD0LTQuCcuXG4iCisi0J/QvtC00YDQvtCx0LjRhtGWINCy0LrQsNC30LDQvdGWINGDIC9ldGMvZnN0YWIg0LzQvtC20L3QsCDQv9GA0L7Qv9GD0YHQutCw0YLQuC5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDog0L/RltC00LrQu9GO0YfQuNGC0Lgg0LLRgdGWINGE0LDQudC70L7QstGWINGB0LjRgdGC0LXQvNC4INC3IC9ldGMvIgorImZzdGFiXG4iCisiICAgICAgIG1vdW50INC/0YDQuNGB0YLRgNGW0LkgICAgICAgICAgIDog0L/RltC00LrQu9GO0YfQuNGC0Lgg0L/RgNC40YHRgtGA0ZbQuSDRgyDQstGW0LTQvtC80LUg0LzRltGB0YbQtVxuIgorIiAgICAgICBtb3VudCDQutCw0YLQsNC70L7QsyAgICAgICAgICAgIDog0L/RltC00LrQu9GO0YfQuNGC0Lgg0YMg0YbQtdC5INC60LDRgtCw0LvQvtCzINCy0ZbQtNC+0LzQuNC5INC/0YDQuNGB0YLRgNGW0LlcbiIKKyIgICAgICAgbW91bnQgLXQg0YLQuNC/INC/0YDQuNGB0YLRgCDQutCw0YIgIDog0LfQstC40YfQsNC50L3QsCDQutC+0LzQsNC90LTQsCDQv9GW0LTQutC70Y7Rh9C10L3QvdGPXG4iCisi0JfQstC10YDQvdGW0YLRjCDRg9Cy0LDQs9GDLCDQvdCw0YHQv9GA0LDQstC00ZYg0L/RltC00LrQu9GO0YfQsNGU0YLRjNGB0Y8g0L3QtSDQv9GA0LjRgdGC0YDRltC5LCDQsCDRhNCw0LnQu9C+0LLQsCDRgdC40YHRgtC10LzQsFxuIgorIijQtNCw0L3QvtCz0L4g0YLQuNC/0YMpINGA0L7Qt9GC0LDRiNC+0LLQsNC90LAg0L3QsCDQv9GA0LjRgdGC0YDQvtGXLlxuIgorItCi0LDQutC+0LYg0LzQvtC20L3QsCDQv9GW0LTQutC70Y7Rh9Cw0YLQuCDQstC20LUg0LLQuNC00LjQvNC40Lkg0LrQsNGC0LDQu9C+0LMg0YMg0ZbQvdGI0LUg0LzRltGB0YbQtTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kINGB0YLQsNGA0LjQuV/QutCw0YIg0L3QvtCy0LjQuV/QutCw0YJcbiIKKyLQsNCx0L4g0L/QtdGA0LXQvNGW0YnRg9Cy0LDRgtC4INC/0ZbQtNC00LXRgNC10LLQvjpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlINGB0YLQsNGA0LjQuV/QutCw0YIg0L3QvtCy0LjQuV/QutCw0YJcbiIKKyLQn9GA0LjRgdGC0YDRltC5INC80L7QttC90LAg0LLQutCw0LfRg9Cy0LDRgtC4INC30LAg0L3QsNC30LLQvtGOLCDQvdCw0L/RgNC40LrQu9Cw0LQgL2Rldi9oZGExINCw0LHQviAvZGV2L2Nkcm9tLFxuIgorItCw0LHQviDQt9CwINC90LDQt9Cy0L7RjiDRgtC+0LzRgyAoLUwg0L3QsNC30LLQsF/RgtC+0LzRgyksINCw0LHQviDQt9CwIHV1aWQg0LLQuNC60L7RgNC40YHRgtC+0LLRg9GO0YfQuCAtVSB1dWlkIC5cbiIKKyLQhtC90YjRliDQv9Cw0YDQsNC80LXRgtGA0Lg6IFstbmZGcnN2d10gWy1vINC/0LDRgNCw0LzQtdGC0YDQuF0gWy1wINC/0LDRgNC+0LvRjF0uXG4iCisi0JTQvtC00LDRgtC60L7QstGDINGW0L3RhNC+0YDQvNCw0YbRltGOINC00LjQstGW0YLRjNGB0Y8g0YMgbWFuIDggbW91bnQgLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjIyNzQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQgKGVmZmVjdGl2ZSBVSUQgaXMgJWQpIgorbXNnc3RyICJtb3VudDog0YbQtSDQvNC+0LbQtSDRgNC+0LHQuNGC0Lgg0LvQuNGI0LUg0LDQtNC80ZbQvdGW0YHRgtGA0LDRgtC+0YAocm9vdCkiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIm1vdW50OiDRhtC1INC80L7QttC1INGA0L7QsdC40YLQuCDQu9C40YjQtSDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgChyb290KSIKKworIzogbW91bnQvbW91bnQuYzoyMjg4Cittc2dpZCAibm90aGluZyB3YXMgbW91bnRlZCIKK21zZ3N0ciAi0L3RltGH0L7Qs9C+INC90LUg0LHRg9C70L4g0L/RltC00LrQu9GO0YfQtdC90L4iCisKKyM6IG1vdW50L21vdW50LmM6MjMwNiBtb3VudC9tb3VudC5jOjIzMzIKK21zZ2lkICJtb3VudDogbm8gc3VjaCBwYXJ0aXRpb24gZm91bmQiCittc2dzdHIgIm1vdW50OiDQvdC1INC30L3QsNC50LTQtdC90L4g0YLQsNC60L7Qs9C+INGA0L7Qt9C00ZbQu9GDIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IGZpbmQgJXMgaW4gJXMgb3IgJXMiCittc2dzdHIgIm1vdW50OiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQvdCw0LnRgtC4ICVzINGDICVzINCw0LHQviAlcyIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiB3YXJuaW5nOiBubyBmaW5hbCBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgJXNcbiIKK21zZ3N0ciAiW21udGVudF06INCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0LLRltC00YHRg9GC0L3RltC5INGB0LjQvNCy0L7QuyDQvdC+0LLQvtCz0L4g0YDRj9C00LrQsCDQvdCw0L/RgNC40LrRltC90YbRliAlc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiW21udGVudF06INGA0Y/QtNC+0LogJWQg0YMgJXMg0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5JXNcbiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MjE5Cittc2dpZCAiOyByZXN0IG9mIGZpbGUgaWdub3JlZCIKK21zZ3N0ciAiOyDQt9Cw0LvQuNGI0L7QuiDRhNCw0LnQu9GDINGW0LPQvdC+0YDRg9GU0YLRjNGB0Y8iCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0L/RgNC4INCy0LjQutC70LjQutGDIHhzdHJuZHVwIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgItC90LXQtNC+0YHRgtCw0YLQvdGM0L4g0L/QsNC8J9GP0YLRliIKKworIzogbW91bnQvc3dhcG9uLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSA8c3BlY2lhbD4gcGFyYW1ldGVyOlxuIgorIiB7LUwgbGFiZWwgfCBMQUJFTD1sYWJlbH0gICAgICAgICAgICAgTEFCRUwgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIFVVSUQgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGRldmljZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGZpbGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZmlsZSB0byBiZSB1c2VkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstZV0gWy12XSBbLWZdICAgICAgICAgICAgIGVuYWJsZSBhbGwgc3dhcHMgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICUxJHMgWy1wIHByaW9yaXR5XSBbLXZdIFstZl0gPHNwZWNpYWw+ICBlbmFibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1zICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgc3dhcCB1c2FnZSBzdW1tYXJ5XG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIHN3YXBzXG4iCisiICUxJHMgWy12XSA8c3BlY2lhbD4gICAgICAgICAgICAgICBkaXNhYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MTQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5leHBlY3RlZCBmaWxlIGZvcm1hdCIKK21zZ3N0ciAiJXM6INCd0LXQvtGH0ZbQutGD0LLQsNC90LjQuSDQutGW0L3QtdGG0Ywg0YTQsNC50LvQsCDRgyDRhNCw0LnQu9GWICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIyMworIywgZnV6enkKK21zZ2lkICJmb3JrIGZhaWxlZCIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0YHRgtCy0L7RgNC10L3QvdGPINC/0YDQvtGG0LXRgdGDXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjIzOQorIywgZnV6enkKK21zZ2lkICJleGVjdiBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30LDQv9GD0YHQutGDXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjI0NworIywgZnV6enkKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAgc2V0dWlkKCkiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0L/RgNC4INCy0YHRgtCw0L3QvtCy0LvQtdC90L3RliDQv9C+0LfQuNGG0ZbRlyIKKworIzogbW91bnQvc3dhcG9uLmM6Mjc3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0LLRltC00LrRgNC40LLQsNC90L3RjyAlcyIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKKyMsIGZ1enp5Cittc2dpZCAic2FtZSIKK21zZ3N0ciAi0J3QsNC30LLQsCIKKworIzogbW91bnQvc3dhcG9uLmM6Mzg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0YDQuCDQstGB0YLQsNC90L7QstC70LXQvdC90ZYg0L/QvtC30LjRhtGW0ZciCisKKyM6IG1vdW50L3N3YXBvbi5jOjM5NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGluc2VjdXJlIHBlcm1pc3Npb25zICUwNG8sICUwNG8gc3VnZ2VzdGVkLiIKK21zZ3N0ciAiJXM6INC/0L7Qv9C10YDQtdC00LbQtdC90L3RjzogJXMg0LzQsNGUINC90LXQsdC10LfQv9C10YfQvdGWINC/0YDQsNCy0LAgJTA0bywg0L/RgNC+0L/QvtC90YPRlNGC0YzRgdGPICUwNG9cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgLSBpdCBhcHBlYXJzIHRvIGhhdmUgaG9sZXMuIgorbXNnc3RyICIlczog0L/RgNC+0L/Rg9GB0LrQsNGU0YLRjNGB0Y8g0YTQsNC50LsgJXMgLSDRgdGF0L7QttC1LCDRidC+INCy0ZbQvSDQvNGW0YHRgtC40YLRjCDQtNGW0YDQutC4LlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBnZXQgc2l6ZSBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0YDQuCDQstGB0YLQsNC90L7QstC70LXQvdC90ZYg0L/QvtC30LjRhtGW0ZciCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDc4IG1vdW50L3N3YXBvbi5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBvbiAlc1xuIgorbXNnc3RyICIlcyDQvdCwICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvbiBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0YDQuCDQstGB0YLQsNC90L7QstC70LXQvdC90ZYg0L/QvtC30LjRhtGW0ZciCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZpbmQgdGhlIGRldmljZSBmb3IgJXMiCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQvdCw0LnRgtC4INC/0YDQuNGB0YLRgNGW0Lkg0LTQu9GPICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MAorIywgZnV6enkKK21zZ2lkICJOb3Qgc3VwZXJ1c2VyLiIKK21zZ3N0ciAi0J3QtSDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgC5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC/0YDQuCDQstGB0YLQsNC90L7QstC70LXQvdC90ZYg0L/QvtC30LjRhtGW0ZciCisKKyM6IG1vdW50L3N3YXBvbi5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIHVuc3VwcG9ydGVkIHByb2dyYW0gbmFtZSAobXVzdCBiZSAnc3dhcG9uJyBvciAnc3dhcG9mZicpLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgLWZcbiIKK21zZ3N0ciAidW1vdW50OiDQt9GW0LHRgNCw0L3QviDQsdC10Lcg0L/RltC00YLRgNC40LzQutC4IC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6INC/0L7QvNC40LvQutCwINCy0YHRgtCw0L3QvtCy0LvQtdC90L3RjyDRiNCy0LjQtNC60L7RgdGC0ZY6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHNldCB1c2VyIGlkOiAlcyIKK21zZ3N0ciAibW91bnQ6INC/0L7QvNC40LvQutCwINCy0YHRgtCw0L3QvtCy0LvQtdC90L3RjyDRiNCy0LjQtNC60L7RgdGC0ZY6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgInVtb3VudDog0L3QtSDQstC00LDRlNGC0YzRgdGPINC30LDQv9GD0YHRgtC40YLQuCDQtNC+0YfRltGA0L3RltC5INC/0YDQvtGG0LXRgTogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBpbnZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAidW1vdW50OiAlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INCx0LvQvtGH0L3QuNC5INC/0YDQuNGB0YLRgNGW0LkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgbW91bnRlZCIKK21zZ3N0ciAidW1vdW50OiAlczog0L3QtSDQv9GW0LTQutC70Y7Rh9C10L3QuNC5IgorCisjOiBtb3VudC91bW91bnQuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogY2FuJ3Qgd3JpdGUgc3VwZXJibG9jayIKK21zZ3N0ciAidW1vdW50OiAlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINC30LDQv9C40YHQsNGC0Lgg0YHRg9C/0LXRgNCx0LvQvtC6IgorCisjOiBtb3VudC91bW91bnQuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVtb3VudDogJXM6IGRldmljZSBpcyBidXN5LlxuIgorIiAgICAgICAgKEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gYWJvdXQgcHJvY2Vzc2VzIHRoYXQgdXNlXG4iCisiICAgICAgICAgdGhlIGRldmljZSBpcyBmb3VuZCBieSBsc29mKDgpIG9yIGZ1c2VyKDEpKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IGZvdW5kIgorbXNnc3RyICJ1bW91bnQ6ICVzOiDQvdC1INGW0YHQvdGD0ZQiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBtdXN0IGJlIHN1cGVydXNlciB0byB1bW91bnQiCittc2dzdHIgIiIKKyJ1bW91bnQ6ICVzOiDQtNC70Y8g0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPIHVtb3VudCDQvdC10L7QsdGF0ZbQtNC90L4g0LzQsNGC0Lgg0L/RgNCw0LLQsCDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgNCwIgorCisjOiBtb3VudC91bW91bnQuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogYmxvY2sgZGV2aWNlcyBub3QgcGVybWl0dGVkIG9uIGZzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiDQsdC70L7Rh9C90ZYg0L/RgNC40YHRgtGA0L7RlyDQvdC1INC00L7Qt9Cy0L7Qu9C10L3QviDQvdCwINGE0LDQudC70L7QstGW0Lkg0YHQuNGB0YLQtdC80ZYiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiAlcyIKK21zZ3N0ciAidW1vdW50OiAlczogJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJubyB1bW91bnQyLCB0cnlpbmcgdW1vdW50Li4uXG4iCittc2dzdHIgItC90LXQvNCw0ZQgdW1vdW50Miwg0L/RgNC+0LHRg9GU0YLRjNGB0Y8gdW1vdW50Li4uXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDogJXMg0LfQsNC50L3Rj9GC0LjQuSAtINC/0LXRgNC10L/RltC00LrQu9GO0YfQtdC90L4g0YMg0YDQtdC20LjQvCDQu9C40YjQtS3QtNC70Y8t0YfQuNGC0LDQvdC90Y9cbiIKKworIzogbW91bnQvdW1vdW50LmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY291bGQgbm90IHJlbW91bnQgJXMgcmVhZC1vbmx5XG4iCittc2dzdHIgInVtb3VudDog0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0LXRgNC10L/RltC00LrQu9GO0YfQuNGC0LggJXMg0YMg0YDQtdC20LjQvCDQu9C40YjQtS3QtNC70Y8t0YfQuNGC0LDQvdC90Y9cbiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiVzINCy0ZbQtNC60LvRjtGH0LXQvdC+XG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjM2NworbXNnaWQgInVtb3VudDogY2Fubm90IGZpbmQgbGlzdCBvZiBmaWxlc3lzdGVtcyB0byB1bm1vdW50IgorbXNnc3RyICJ1bW91bnQ6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9C90LDQudGC0Lgg0L/QtdGA0LXQu9GW0Log0YTQsNC50LvQvtCy0LjRhSDRgdC40YHRgtC10Lwg0LTQu9GPINCy0ZbQtNC60LvRjtGH0LXQvdC90Y8iCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiB1bW91bnQgLWggfCAtVlxuIgorIiAgICAgICB1bW91bnQgLWEgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCB2ZnN0eXBlc10gWy1PIG9wdHNdXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKK21zZ3N0ciAiIgorItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogdW1vdW50IFstaFZdXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWZdIFstcl0gWy1uXSBbLXZdIFstdCDRgtC40L9f0YTRgV0gWy1PINC/0LDRgNCw0LzQtdGC0YDQuF1cbiIKKyIgICAgICAgdW1vdW50IFstZl0gWy1yXSBbLW5dIFstdl0g0YHQv9C10YZf0YTQsNC50LsgfCDQutCw0YLQsNC70L7Qsy4uLlxuIgorCisjOiBtb3VudC91bW91bnQuYzo0NjgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAi0KHQtdC60YLQvtGAICVkINCy0LbQtSDRgNC+0LfQv9C+0LTRltC70LXQvdC40LlcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDc0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkZXZpY2UgJXMgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICLQodC10LrRgtC+0YAgJWQg0LLQttC1INGA0L7Qt9C/0L7QtNGW0LvQtdC90LjQuVxuIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAi0J3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60LvRjtGH0LjRgtC4IFwiXCJcbiIKKworIzogbW91bnQvdW1vdW50LmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byB1bW91bnQgJXNcbiIKK21zZ3N0ciAi0KHQv9GA0L7QsdCwINCy0ZbQtNC60LvRjtGH0LjRgtC4ICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC30L3QsNC50YLQuCAlcyDRgyBtdGFiXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGlzIG5vdCBtb3VudGVkIChhY2NvcmRpbmcgdG8gbXRhYikiCittc2dzdHIgInVtb3VudDogJXMg0L3QtSDRlCDQv9GW0LTQutC70Y7Rh9C10L3QuNC8ICjQt9Cz0ZbQtNC90L4gbXRhYikiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGl0IHNlZW1zICVzIGlzIG1vdW50ZWQgbXVsdGlwbGUgdGltZXMiCittc2dzdHIgInVtb3VudDog0LfQtNCw0ZTRgtGM0YHRjyAlcyDQv9GW0LTQutC70Y7Rh9C10L3QuNC5INC00LXQutGW0LvRjNC60LAg0YDQsNC30ZbQsiIKKworIzogbW91bnQvdW1vdW50LmM6NTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAoYW5kIHlvdSBhcmUgbm90IHJvb3QpIgorbXNnc3RyICJ1bW91bnQ6ICVzINCy0ZbQtNGB0YPRgtC90ZbQuSDRgyBmc3RhYiAo0YLQsCDQstC4INC90LUg0LDQtNC80ZbQvdGW0YHRgtGA0LDRgtC+0YApIgorCisjOiBtb3VudC91bW91bnQuYzo1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBtb3VudCBkaXNhZ3JlZXMgd2l0aCB0aGUgZnN0YWIiCittc2dzdHIgInVtb3VudDog0L/RltC00LrQu9GO0YfQtdC90LjQuSAlcyDQstGW0LTRgNGW0LfQvdGP0ZTRgtGM0YHRjyDQstGW0LQgZnN0YWIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IG9ubHkgJXMgY2FuIHVubW91bnQgJXMgZnJvbSAlcyIKK21zZ3N0ciAidW1vdW50OiDQu9C40YjQtSAlcyDQvNC+0LbQtSDQstGW0LTQutC70Y7Rh9C40YLQuCAlcyDQstGW0LQgJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjcwMQorbXNnaWQgInVtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICJ1bW91bnQ6INGG0LUg0LzQvtC20LUg0YDQvtCx0LjRgtC4INC70LjRiNC1INCw0LTQvNGW0L3RltGB0YLRgNCw0YLQvtGAKHJvb3QpIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiY2hydCAtIG1hbmlwdWxhdGUgcmVhbC10aW1lIGF0dHJpYnV0ZXMgb2YgYSBwcm9jZXNzLlxuIgorIlxuIgorIlNldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSA8cG9saWN5PiA8cHJpb3JpdHk+IHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJHZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIlxuIgorIlNjaGVkdWxpbmcgcG9saWNpZXM6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0ZJRk9cbiIKKyIgIC1pIHwgLS1pZGxlICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9SUiAoZGVmYXVsdClcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHBcbiIKKyIgIC1wIHwgLS1waWQgICAgICAgICAgIG9wZXJhdGUgb24gZXhpc3RpbmcgZ2l2ZW4gcGlkXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBzaG93IG1pbiBhbmQgbWF4IHZhbGlkIHByaW9yaXRpZXNcbiIKKyIgIC12IHwgLS12ZXJib3NlICAgICAgIGRpc3BsYXkgc3RhdHVzIGluZm9ybWF0aW9uXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg1CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC30LDQv9C40YHQsNGC0Lgg0YDQvtC30LTRltC7INC90LAgJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwb2xpY3k6ICIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVua25vd25cbiIKK21zZ3N0ciAi0L3QtdCy0ZbQtNC+0LzQuNC5IgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBhdHRyaWJ1dGVzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjExNQorIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHByaW9yaXR5OiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBtaW4vbWF4IHByaW9yaXR5XHQ6ICVkLyVkXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBub3Qgc3VwcG9ydGVkP1xuIgorbXNnc3RyICJORlMg0YfQtdGA0LXQtyBUQ1Ag0L3QtSDQv9GW0LTRgtGA0LjQvNGD0ZTRgtGM0YHRjy5cbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjAzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwaWQiCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuDogJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjI1CisjLCBmdXp6eQorbXNnaWQgImN1cnJlbnQiCittc2dzdHIgIm5jb3VudCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjMzCisjLCBmdXp6eQorbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC30LDQv9C40YHQsNGC0Lgg0YDQvtC30LTRltC7INC90LAgJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjM5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC30LDQv9C40YHQsNGC0Lgg0YDQvtC30LTRltC7INC90LAgJXNcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCisjLCBmdXp6eQorbXNnaWQgIm5ldyIKK21zZ3N0ciAi0J3QvtCy0LjQuSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfRh9C40YLRg9Cy0LDQvdC90Y8g0YfQsNGB0YMg0YMgaW9jdGwoKSDQtyAlcyIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo1NworIywgZnV6enkKK21zZ2lkICJpb3ByaW9fZ2V0IGZhaWxlZCIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAgb3BlbnB0eVxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjc1CisjLCBmdXp6eQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCBvcGVucHR5XG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImlvbmljZSAtIHNldHMgb3IgZ2V0cyBwcm9jZXNzIGlvIHNjaGVkdWxpbmcgY2xhc3MgYW5kIHByaW9yaXR5LlxuIgorIlxuIgorIlVzYWdlOlxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIC1wIDxwaWQ+IFs8cGlkPiAuLi5dXG4iCisiICBpb25pY2UgWyBvcHRpb25zIF0gPGNvbW1hbmQ+IFs8YXJnPiAuLi5dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1uIDxjbGFzc2RhdGE+ICAgICAgY2xhc3MgZGF0YSAoMC03LCBsb3dlciBiZWluZyBoaWdoZXIgcHJpbylcbiIKKyIgIC1jIDxjbGFzcz4gICAgICAgICAgc2NoZWR1bGluZyBjbGFzc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAwOiBub25lLCAxOiByZWFsdGltZSwgMjogYmVzdC1lZmZvcnQsIDM6IGlkbGVcbiIKKyIgIC10ICAgICAgICAgICAgICAgICAgaWdub3JlIGZhaWx1cmVzXG4iCisiICAtaCAgICAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEwIHNjaGVkdXRpbHMvaW9uaWNlLmM6MTEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcGFyc2UgbnVtYmVyICclcyciCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4ICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTkKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBwcmlvIGNsYXNzICVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3CisjLCBmdXp6eQorbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30LDQv9GD0YHQutGDXG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgYmUgcm9vdCB0byBzZXQgdGhlIEN0cmwtQWx0LURlbCBiZWhhdmlvdXIuXG4iCittc2dzdHIgIiIKKyLQlNC70Y8g0LLQuNC30L3QsNGH0LXQvdC90Y8g0L/QvtCy0LXQtNGW0L3QutC4IEN0cmwtQWx0LURlbCDQvdC10L7QsdGF0ZbQtNC90L4g0LzQsNGC0Lgg0L/RgNCw0LLQsCDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgNCwLlxuIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorbXNnc3RyICLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisi0KTQsNC50LsgJXMsINC00LvRjyDQs9GA0LDQvdC40YfQvdC+0LPQviDQt9C90LDRh9C10L3QvdGPICVsdSwg0LzQsNC60YHQuNC80LDQu9GM0L3QsCDQutGW0LvRjNC60ZbRgdGC0Ywg0YHQuNC80LLQvtC70ZbQsiDRgyBmaWZvICIKKyLQsdGD0LvQsCAlZCxcbiIKKyLRgtCwINC80LDQutGB0LjQvNCw0LvRjNC90LAg0YjQstC40LTQutGW0YHRgtGMINC/0LXRgNC10LTQsNGH0ZYg0YMg0YHQuNC80LLQvtC70LDRhS/RgdC10LrRg9C90LTRgyDQsdGD0LvQsCAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSBhbmQgdGltcm91dCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyAiCisiaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisi0KTQsNC50LsgJXMsINC00LvRjyDQs9GA0LDQvdC40YfQvdC+0LPQviDQt9C90LDRh9C10L3QvdGPICVsdSDRgtCwINC30L3QsNGH0LXQvdC90Y8g0YLQsNC50LzQsNGD0YLRgyAlbHUsINC80LDQutGB0LjQvNCw0LvRjNC90LAgIgorItC60ZbQu9GM0LrRltGB0YLRjCDRgdC40LzQstC+0LvRltCyINGDIGZpZm8g0LHRg9C70LAgJWQsXG4iCisi0YLQsCDQvNCw0LrRgdC40LzQsNC70YzQvdCwINGI0LLQuNC00LrRltGB0YLRjCDQv9C10YDQtdC00LDRh9GWINGDINGB0LjQvNCy0L7Qu9Cw0YUv0YHQtdC60YPQvdC00YMg0LHRg9C70LAgJWZcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGludGVydmFsIHZhbHVlOiAlc1xuIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8g0ZbQvdGC0LXRgNCy0LDQu9GDOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHZhbHVlOiAlc1xuIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70YzQvdC1INCy0YHRgtCw0L3QvtCy0LvQtdC90LUg0LfQvdCw0YfQtdC90L3RjzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdmFsdWU6ICVzXG4iCittc2dzdHIgItCd0LXQv9GA0LDQstC40LvRjNC90LUg0YLQuNC/0L7QstC1INC30L3QsNGH0LXQvdC90Y86ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAi0J3QtdC/0YDQsNCy0LjQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPINCy0YHRgtCw0L3QvtCy0LvQtdC90L7Qs9C+INGH0LDRgdGDOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8g0YLQuNC/0L7QstC+0LPQviDRh9Cw0YHRgzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstcSBbLWkgaW50ZXJ2YWxdXSAoWy1zIHZhbHVlXXxbLVMgdmFsdWVdKSAoWy10IHZhbHVlXXxbLVQgdmFsdWVdKSAiCisiWy1nfC1HXSBmaWxlIFtmaWxlLi4uXVxuIgorbXNnc3RyICIiCisi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBbLXEgWy1pINGW0L3RgtC10YDQstCw0LtdXSAoWy1zINC30L3QsNGH0LXQvdC90Y9dfFstUyDQt9C90LDRh9C10L3QvdGPXSkgKFstdCAiCisi0LfQvdCw0YfQtdC90L3Rj118Wy1UINC30L3QsNGH0LXQvdC90Y9dKSBbLWd8LUddINGE0LDQudC7IFvRhNCw0LnQuy4uLl1cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0YHRgtCw0L3QvtCy0LjRgtC4ICVzINGDINCz0YDQsNC90LjRh9C90LUg0LfQvdCw0YfQtdC90L3RjyAlZDogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGltZSB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGB0YLQsNC90L7QstC40YLQuCAlcyDRgyDQs9GA0LDQvdC40YfQvdC1INC30L3QsNGH0LXQvdC90Y8g0YfQsNGB0YMgJWQ6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyOTQgc3lzLXV0aWxzL2N5dHVuZS5jOjM1MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aHJlc2hvbGQgZm9yICVzOiAlc1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L7RgtGA0LjQvNCw0YLQuCDQs9GA0LDQvdC40YfQvdC1INC30L3QsNGH0LXQvdC90Y8g0LTQu9GPICVzOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzAwIHN5cy11dGlscy9jeXR1bmUuYzozNTcgc3lzLXV0aWxzL2N5dHVuZS5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGltZW91dCBmb3IgJXM6ICVzXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGC0LDQudC80LDRg9GCINC00LvRjyAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN1cnJlbnQgdGhyZXNob2xkIGFuZCAlbGQgY3VycmVudCB0aW1lb3V0XG4iCittc2dzdHIgIiVzOiAlbGQgLSDQv9C+0YLQvtGH0L3QsCDQvNC10LbQsCwg0YLQsCAlbGQgLSDQv9C+0YLQvtGH0L3QuNC5INGC0LDQudC80LDRg9GCXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIC0g0YLQuNC/0L7QstCwINC80LXQttCwLCDRgtCwICVsZCAtINGC0LjQv9C+0LLQuNC5INGC0LDQudC80LDRg9GCXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMjcKK21zZ2lkICJDYW4ndCBzZXQgc2lnbmFsIGhhbmRsZXIiCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGB0YLQsNC90L7QstC40YLQuCDQvtCx0YDQvtCx0L3QuNC6INGB0LjQs9C90LDQu9GDIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzMxIHN5cy11dGlscy9jeXR1bmUuYzozNjYKK21zZ2lkICJnZXR0aW1lb2ZkYXkgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDRgyBnZXR0aW1lb2ZkYXkiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozNDQgc3lzLXV0aWxzL2N5dHVuZS5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBpc3N1ZSBDWUdFVE1PTiBvbiAlczogJXNcbiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC00LDRgtC4IENZR0VUTU9OINC90LAgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1INC/0LXRgNC10YDQuNCy0LDQvdGMLCAlbHUvJWx1INGB0LjQvNCyLjsgZmlmbzogJWx1INC80LXQttCwLCAlbHUg0YLQsNC50LzQsNGD0YIsICVsdSDQvNCw0LrRgSwgJSIKKyJsdSDQt9Cw0YDQsNC3XG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYg0L/QtdGA0LXRgNCyL9GB0LXQujsgJWYg0L7RgtGA0LjQvCwgJWYg0LLRltC00L/RgCAo0YHQuNC80LIv0YHQtdC6KVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1INC/0LXRgNC10YDQuNCy0LDQvdGMLCAlbHUg0YHQuNC80LI7IGZpZm86ICVsdSDQvNC10LbQsCwgJWx1INGC0LDQudC80LDRg9GCLCAlbHUg0LzQsNC60YEsICVsdSAiCisi0LfQsNGA0LDQt1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYyAoY2hhci9zZWMpXG4iCittc2dzdHIgIiAgICVmINC/0LXRgNC10YDQsi/RgdC10Lo7ICVmINC+0YLRgNC40LwgKNGB0LjQvNCyL9GB0LXQuilcbiIKKworIzogc3lzLXV0aWxzL2RtZXNnLmM6NDUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstbiBsZXZlbF0gWy1yXSBbLXMgYnVmc2l6ZV1cbiIKK21zZ3N0ciAi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBbLWNdIFstbiDRgNGW0LLQtdC90YxdIFstcyDRgNC+0LfQvNGW0YBf0LHRg9GE0LXRgNGDXVxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NDcKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxmaWxlbmFtZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86ICVzIFvQv9Cw0YDQsNC80LXRgtGA0LhdINC/0YDQuNGB0YLRgNGW0LkgLi4uXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLWtlZXAtc2l6ZSAgICAgZG9uJ3QgbW9kaWZ5IHRoZSBsZW5ndGggb2YgdGhlIGZpbGVcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCisiIC1sLCAtLWxlbmd0aCA8bnVtPiAgbGVuZ3RoIG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3CisjLCBmdXp6eQorbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgItCd0LDQtNGC0L4g0LHQsNCz0LDRgtC+INC/0LDRgNCw0LzQtdGC0YDRltCyLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ5CisjLCBmdXp6eQorbXNnaWQgImludmFsaWQgbGVuZ3RoIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAi0J3QtdC/0YDQsNCy0LjQu9GM0L3QtSDQstGB0YLQsNC90L7QstC70LXQvdC1INC30L3QsNGH0LXQvdC90Y86ICVzXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTEKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICLQndC10L/RgNCw0LLQuNC70YzQvdC1INCy0YHRgtCw0L3QvtCy0LvQtdC90LUg0LfQvdCw0YfQtdC90L3RjzogJXNcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MworIywgZnV6enkKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICLQndC1INCx0YPQu9C+INCy0LrQsNC30LDQvdC+INC/0LDRgNCw0LzQtdGC0YAgLS1kYXRlLlxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTczCittc2dpZCAia2VlcCBzaXplIG1vZGUgKC1uIG9wdGlvbikgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhbGxvY2F0ZSBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwIG9wZW5wdHlcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlMSRzIFstc3h1bl1bLXcgI10gZmQjXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBmaWxlIFstY10gY29tbWFuZC4uLlxuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZGlyZWN0b3J5IFstY10gY29tbWFuZC4uLlxuIgorIiAgLXMgIC0tc2hhcmVkICAgICBHZXQgYSBzaGFyZWQgbG9ja1xuIgorIiAgLXggIC0tZXhjbHVzaXZlICBHZXQgYW4gZXhjbHVzaXZlIGxvY2tcbiIKKyIgIC11ICAtLXVubG9jayAgICAgUmVtb3ZlIGEgbG9ja1xuIgorIiAgLW4gIC0tbm9uYmxvY2sgICBGYWlsIHJhdGhlciB0aGFuIHdhaXRcbiIKKyIgIC13ICAtLXRpbWVvdXQgICAgV2FpdCBmb3IgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lXG4iCisiICAtbyAgLS1jbG9zZSAgICAgIENsb3NlIGZpbGUgZGVzY3JpcHRvciBiZWZvcmUgcnVubmluZyBjb21tYW5kXG4iCisiICAtYyAgLS1jb21tYW5kICAgIFJ1biBhIHNpbmdsZSBjb21tYW5kIHN0cmluZyB0aHJvdWdoIHRoZSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBEaXNwbGF5IHRoaXMgdGV4dFxuIgorIiAgLVYgIC0tdmVyc2lvbiAgICBEaXNwbGF5IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoxOTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyByZXF1aXJlcyBleGFjdGx5IG9uZSBjb21tYW5kIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzINCy0LjQvNCw0LPQsNGUINCy0LrQsNC30YPQstCw0L3QvdGPINCw0YDQs9GD0LzQtdC90YLRg1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6INC90LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3Rj1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlcXVpcmVzIGZpbGUgZGVzY3JpcHRvciwgZmlsZSBvciBkaXJlY3RvcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyOTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3JrIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0YHRgtCy0L7RgNC10L3QvdGPINC/0YDQvtGG0LXRgdGDXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86ICVzIFvQv9Cw0YDQsNC80LXRgtGA0LhdINC/0YDQuNGB0YLRgNGW0LkgLi4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1NIDxzaXplPiAgICAgY3JlYXRlIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBvZiBzaXplIDxzaXplPlxuIgorIiAgLVMgPG5zZW1zPiAgICBjcmVhdGUgc2VtYXBob3JlIGFycmF5IHdpdGggPG5zZW1zPiBlbGVtZW50c1xuIgorIiAgLVEgICAgICAgICAgICBjcmVhdGUgbWVzc2FnZSBxdWV1ZVxuIgorIiAgLXAgPG1vZGU+ICAgICBwZXJtaXNzaW9uIGZvciB0aGUgcmVzb3VyY2UgKGRlZmF1bHQgaXMgMDY0NClcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGlwY21rKDEpLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0MgorbXNnaWQgImNyZWF0ZSBzaGFyZSBtZW1vcnkgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0NAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiU2hhcmVkIG1lbW9yeSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorItCh0LXQs9C80LXQvdGCINGB0L/RltC70YzQvdC+0Zcg0L/QsNC8J9GP0YLRliBzaG1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIHF1ZXVlIGlkOiAlZFxuIgorbXNnc3RyICIiCisiXG4iCisi0KfQtdGA0LPQsCDQv9C+0LLRltC00L7QvNC70LXQvdGMIG1zcWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1OAorIywgZnV6enkKK21zZ2lkICJjcmVhdGUgc2VtYXBob3JlIGZhaWxlZCIKK21zZ3N0ciAi0LLQuNC00ZbQu9C10L3QviDRgdC10LzQsNGE0L7RgNGW0LIgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorIlxuIgorItCc0LDRgdC40LIg0YHQtdC80LDRhNC+0YDRltCyIHNlbWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjY0CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWQ6ICVzXG4iCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgDogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlbW92ZSBpZCAlcyAoJXMpXG4iCittc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LTQsNC70LjRgtC4INGW0LTQtdC90YLQuNGE0ZbQutCw0YLQvtGAICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVwcmVjYXRlZCB1c2FnZTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCittc2dzdHIgItC90LXQsdCw0LbQsNC90LUg0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd24gcmVzb3VyY2UgdHlwZTogJXNcbiIKK21zZ3N0ciAi0L3QtdCy0ZbQtNC+0LzQuNC5INGC0LjQvyDRgNC10YHRg9GA0YHRgzogJXNcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAi0YDQtdGB0YPRgNGBKNC4KSDQstC40LTQsNC70LXQvdC40LlcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiJXM6INC90LXQv9GA0LDQstC40LvRjNC90LjQuSDQv9Cw0YDQsNC80LXRgtGAIC0tICVjXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBrZXkgKCVzKVxuIgorbXNnc3RyICIlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC60LvRjtGHICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA2IHN5cy11dGlscy9pcGNybS5jOjIzOAorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBrZXkiCittc2dzdHIgItC00L7RgdGC0YPQvyDQt9Cw0LHQvtGA0L7QvdC10L3QviDQtNC70Y8g0LrQu9GO0YfQsCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjA5IHN5cy11dGlscy9pcGNybS5jOjI0OAorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBrZXkiCittc2dzdHIgItC60LvRjtGHINCy0LbQtSDQstC40LTQsNC70LXQvdC+IgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTIgc3lzLXV0aWxzL2lwY3JtLmM6MjQzCittc2dpZCAiaW52YWxpZCBrZXkiCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LjQuSDQutC70Y7RhyIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjE1IHN5cy11dGlscy9pcGNybS5jOjI1MworbXNnaWQgInVua25vd24gZXJyb3IgaW4ga2V5IgorbXNnc3RyICLQvdC10LLRltC00L7QvNCwINC/0L7QvNC40LvQutCwINGDINC60LvRjtGH0ZYiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIzOQorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBpZCIKK21zZ3N0ciAi0LTQvtGB0YLRg9C/INC30LDQsdC+0YDQvtC90LXQvdC+INC00LvRjyDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgNCwIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICLQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YAiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0OQorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBpZCIKK21zZ3N0ciAi0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YAg0LLQttC1INCy0LjQtNCw0LvQtdC90LjQuSIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU0Cittc2dpZCAidW5rbm93biBlcnJvciBpbiBpZCIKK21zZ3N0ciAi0L3QtdCy0ZbQtNC+0LzQsCDQv9C+0LzQuNC70LrQsCDRgyDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgNGWIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzICglcylcbiIKK21zZ3N0ciAiJXM6ICVzICglcylcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIGFyZ3VtZW50OiAlc1xuIgorbXNnc3RyICIlczog0L3QtdCy0ZbQtNC+0LzQuNC5INCw0YDQs9GD0LzQtdC90YI6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICLQstC40LrQvtGA0LjRgdGC0LDQvdC90Y8gOiAlcyAtYXNtcSAtdGNsdXAgXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorbXNnc3RyICJcdCVzIFstcyAtbSAtcV0gLWkg0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YBcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyAtaCBmb3IgaGVscC5cbiIKK21zZ3N0ciAiXHQlcyAtaCDQstC40LLQvtC00LjRgtGMINC00L7QstGW0LTQutGDLlxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHlvdSBoYXZlIHJlYWQgYWNjZXNzLlxuIgorbXNnc3RyICIiCisiJXMg0L3QsNC00LDRlCDRltC90YTQvtGA0LzQsNGG0ZbRjiDQv9GA0L4gaXBjINGA0LXRgdGD0YDRgdC4LCDQtNC70Y8g0Y/QutC40YUg0YMg0LLQsNGBINGUINC00L7RgdGC0YPQvyDQtNC70Y8g0YfQuNGC0LDQvdC90Y8uXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJSZXNvdXJjZSBTcGVjaWZpY2F0aW9uOlxuIgorIlx0LW0gOiBzaGFyZWRfbWVtXG4iCisiXHQtcSA6IG1lc3NhZ2VzXG4iCittc2dzdHIgIiIKKyLQodC/0LXRhtC40YTRltC60LDRhtGW0Y8g0YDQtdGB0YPRgNGB0YM6XG4iCisiXHQtbSA6INGB0L/RltC70YzQvdCwX9C/0LDQvCfRj9GC0YxcbiIKKyJcdC1xIDog0L/QvtCy0ZbQtNC+0LzQu9C10L3QvdGPXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKyJcdC1zIDog0YHQtdC80LDRhNC+0YDQuFxuIgorIlx0LWEgOiDRg9GB0LUgKNGC0LjQv9C+0LLQvilcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk91dHB1dCBGb3JtYXQ6XG4iCisiXHQtdCA6IHRpbWVcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JcbiIKK21zZ3N0ciAiIgorItCk0L7RgNC80LDRgiDQstC40LLQvtC00YM6XG4iCisiXHQtdCA6INGH0LDRgVxuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDog0LLQu9Cw0YHQvdC40LpcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LWwgOiBsaW1pdHNcbiIKKyJcdC11IDogc3VtbWFyeVxuIgorbXNnc3RyICIiCisiXHQtbCA6INC+0LHQvNC10LbQtdC90L3Rj1xuIgorIlx0LXUgOiDQt9Cy0LXQtNC10L3QvdGPXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIKK21zZ3N0ciAiLWkgaWQgWy1zIC1xIC1tXSA6INC/0L7QtNGA0L7QsdC40YbRliDQv9GA0L4g0YDQtdGB0YPRgNGBINC3INGW0LTQtdC90YLQuNGE0ZbQutCw0YLQvtGA0L7QvCBpZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNoYXJlZCBtZW1vcnlcbiIKK21zZ3N0ciAi0L/RltC00YLRgNC40LzQutGDINGB0L/RltC70YzQvdC+0Zcg0L/QsNC8J9GP0YLRliDQvdC1INC90LDQu9Cw0YjRgtC+0LLQsNC90L4g0YMg0Y/QtNGA0ZZcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDQntCx0LzQtdC20LXQvdC90Y8g0YHQv9GW0LvRjNC90L7RlyDQv9Cw0Lwn0Y/RgtGWIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAi0LzQsNC60YHQuNC80LDQu9GM0L3QsCDQutGW0LvRjNC60ZbRgdGC0Ywg0YHQtdCz0LzQtdC90YLRltCyID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIgorbXNnc3RyICLQvNCw0LrRgdC40LzQsNC70YzQvdC40Lkg0YDQvtC30LzRltGAINGB0LXQs9C80LXQvdGC0LAgKNC60ZbQu9C+0LHQsNC50YIpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAi0LzQsNC60YHQuNC80YPQvCDQt9Cw0LPQsNC70L7QvCDRgdC/0ZbQu9GM0L3QvtGXINC/0LDQvCfRj9GC0ZYgKNC60ZbQu9C+0LHQsNC50YIpID0gJWx1XG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pbiBzZWcgc2l6ZSAoYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgItC80ZbQvdGW0LzQsNC70YzQvdC40Lkg0YDQvtC30LzRltGAINGB0LXQs9C80LXQvdGC0YMgKNCx0LDQudGCKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tINCh0YLQsNC9INGB0L/RltC70YzQvdC+0Zcg0L/QsNC8J9GP0YLRliAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJzZWdtZW50cyBhbGxvY2F0ZWQgJWRcbiIKK21zZ3N0ciAi0LLQuNC00ZbQu9C10L3QuNGFINGB0LXQs9C80LXQvdGC0ZbQsiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBhbGxvY2F0ZWQgJWxkXG4iCittc2dzdHIgItCy0LjQtNGW0LvQtdC90LjRhSDRgdGC0L7RgNGW0L3QvtC6ICVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyByZXNpZGVudCAgJWxkXG4iCittc2dzdHIgItGA0LXQt9C40LTQtdC90YLQvdC40YUg0YHRgtC+0YDRltC90L7QuiAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgc3dhcHBlZCAgICVsZFxuIgorbXNnc3RyICLQstC40LLQsNC90YLQsNC20LXQvdC40YUg0YHRgtC+0YDRltC90L7QuiAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dhcCBwZXJmb3JtYW5jZTogJWxkIGF0dGVtcHRzXHQgJWxkIHN1Y2Nlc3Nlc1xuIgorbXNnc3RyICLQqNCy0LjQtNC60L7QtNGW0Y8g0L/RltC00LrQsNGH0LrQuDogJWxkINGB0L/RgNC+0LFcdCAlbGQg0LLQtNCw0LvQuNGFXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDQkNCy0YLQvtGA0Lgv0JLQu9Cw0YHQvdC40LrQuCDRgdC10LPQvNC10L3RgtGW0LIg0YHQv9GW0LvRjNC90L7RlyDQv9Cw0Lwn0Y/RgtGWIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgInNobWlkIgorbXNnc3RyICJzaG1pZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MDgKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAicGVybXMiCittc2dzdHIgItC/0YDQsNCy0LAiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAiY3VpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjZ2lkIgorbXNnc3RyICJjZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgInVpZCIKK21zZ3N0ciAidWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImdpZCIKK21zZ3N0ciAiZ2lkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g0KfQsNGBINC/0YDQuNGU0LTQvdCw0L3QvdGPL9Cy0ZbQtCfRlNC00L3QsNC90L3Rjy/Qt9C80ZbQvdC4INGB0L/RltC70YzQvdC+0Zcg0L/QsNC8J9GP0YLRliAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgItCy0LvQsNGB0L3QuNC6IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImF0dGFjaGVkIgorbXNnc3RyICLQv9GA0LjRlNC00L3QsNC90L4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiZGV0YWNoZWQiCittc2dzdHIgItCy0ZbQtCfRlNC00L3QsNC90L4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk1Cittc2dpZCAiY2hhbmdlZCIKK21zZ3N0ciAi0LfQvNGW0L3QtdC90L4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g0JDQstGC0L7RgC/QvtGB0YLQsNC90L3RltC5LdC+0L8g0YHQv9GW0LvRjNC90L7RlyDQv9Cw0Lwn0Y/RgtGWIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAiY3BpZCIKK21zZ3N0ciAiY3BpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICJscGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g0KHQtdCz0LzQtdC90YLQuCDRgdC/0ZbQu9GM0L3QvtGXINC/0LDQvCfRj9GC0ZYgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJrZXkiCittc2dzdHIgItC60LvRjtGHIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgImJ5dGVzIgorbXNnc3RyICLQsdCw0LnRgiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJuYXR0Y2giCittc2dzdHIgItC60ZbQu9GM0Lou0L/RltC00LrQuyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgItGB0YLQsNC9IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMyOSBzeXMtdXRpbHMvaXBjcy5jOjMzMSBzeXMtdXRpbHMvaXBjcy5jOjMzMworIzogc3lzLXV0aWxzL2lwY3MuYzo0NDQgc3lzLXV0aWxzL2lwY3MuYzo0NDYgc3lzLXV0aWxzL2lwY3MuYzo1NDUKKyM6IHN5cy11dGlscy9pcGNzLmM6NTQ3IHN5cy11dGlscy9pcGNzLmM6NTQ5IHN5cy11dGlscy9pcGNzLmM6NjAwCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMiBzeXMtdXRpbHMvaXBjcy5jOjYzMCBzeXMtdXRpbHMvaXBjcy5jOjYzMgorIzogc3lzLXV0aWxzL2lwY3MuYzo2MzQgc3lzLXV0aWxzL2lwY3MuYzo2NTcKK21zZ2lkICJOb3Qgc2V0IgorbXNnc3RyICLQndC1INCy0YHRgtCw0L0uIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MQorbXNnaWQgImRlc3QiCittc2dzdHIgItC30YDRg9C50L0iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYyCittc2dpZCAibG9ja2VkIgorbXNnc3RyICLQsdC70L7QutC+0LLQsNC90L4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2VtYXBob3Jlc1xuIgorbXNnc3RyICLQv9GW0LTRgtGA0LjQvNC60YMg0YHQtdC80LDRhNC+0YDRltCyINC90LUg0L3QsNC70LDRiNGC0L7QstCw0L3QviDRgyDRj9C00YDRllxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g0J7QsdC80LXQttC10L3QvdGPINGB0LXQvNCw0YTQvtGA0ZbQsiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgItC80LDQutGB0LjQvNCw0LvRjNC90LAg0LrRltC70YzQutGW0YHRgtGMINC80LDRgdC40LLRltCyID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAi0LzQsNC60YHQuNC80YPQvCDRgdC10LzQsNGE0L7RgNGW0LIg0L3QsCDQvNCw0YHQuNCyID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICLQvNCw0LrRgdC40LzRg9C8INGB0LXQvNCw0YTQvtGA0ZbQsiDRgyDRgdC40YHRgtC10LzRliA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBvcHMgcGVyIHNlbW9wIGNhbGwgPSAlZFxuIgorbXNnc3RyICLQvNCw0LrRgdC40LzRg9C8INC+0L/QtdGA0LDRhtGW0Lkg0LfQsCBzZW1vcCDQstC40LrQu9C40LogPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJzZW1hcGhvcmUgbWF4IHZhbHVlID0gJWRcbiIKK21zZ3N0ciAi0LzQsNC60YHQuNC80LDQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPINGB0LXQvNCw0YTQvtGA0YMgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g0KHRgtCw0L0g0YHQtdC80LDRhNC+0YDRgyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGFycmF5cyA9ICVkXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L4g0LzQsNGB0LjQstGW0LIgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgc2VtYXBob3JlcyA9ICVkXG4iCittc2dzdHIgItCy0LjQtNGW0LvQtdC90L4g0YHQtdC80LDRhNC+0YDRltCyID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDQkNCy0YLQvtGA0Lgv0JLQu9Cw0YHQvdC40LrQuCDQvNCw0YHQuNCy0ZbQsiDRgdC10LzQsNGE0L7RgNGW0LIgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAic2VtaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDEyCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tINCn0LDRgSDQvtC/0LXRgNCw0YbRltGXL9C30LzRltC90Lgg0YHQv9GW0LvRjNC90L7RlyDQv9Cw0Lwn0Y/RgtGWIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1vcCIKK21zZ3N0ciAi0L7RgdGC0LDQvS3QvtC/IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3QtY2hhbmdlZCIKK21zZ3N0ciAi0L7RgdGC0LDQvS3Qt9C80ZbQvSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tINCc0LDRgdC40LLQuCDRgdC10LzQsNGE0L7RgNGW0LIgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAi0LrRltC70YzQui7RgdC10LwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3IgbWVzc2FnZSBxdWV1ZXNcbiIKK21zZ3N0ciAi0L/RltC00YLRgNC40LzQutGDINGH0LXRgNCzINC/0L7QstGW0LTQvtC80LvQtdC90Ywg0L3QtSDQvdCw0LvQsNGI0YLQvtCy0LDQvdC+INGDINGP0LTRgNGWXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDQn9C+0LLRltC00L7QvNC70LXQvdC90Y86INC+0LHQvNC10LbQtdC90L3RjyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggcXVldWVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAi0LzQsNC60YHQuNC80YPQvCDRh9C10YDQsyDRgyDRgdC40YHRgtC10LzRliA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzaXplIG9mIG1lc3NhZ2UgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgItC80LDQutGB0LjQvNCw0LvRjNC90LjQuSDRgNC+0LfQvNGW0YAg0L/QvtCy0ZbQtNC+0LzQu9C10L3QvdGPICjQsdCw0LnRgikgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJkZWZhdWx0IG1heCBzaXplIG9mIHF1ZXVlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICLRgtC40L/QvtCy0LjQuSDQvNCw0LrRgdC40LzQsNC70YzQvdC40Lkg0YDQvtC30LzRltGAINGH0LXRgNCz0LggKNCx0LDQudGCKSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogU3RhdHVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDQn9C+0LLRltC00L7QvNC70LXQvdC90Y86INGB0YLQsNC9IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk4CisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBxdWV1ZXMgPSAlZFxuIgorbXNnc3RyICLQstC40LTRltC70LXQvdC+INGH0LXRgNCzID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBoZWFkZXJzID0gJWRcbiIKK21zZ3N0ciAi0LLQuNC60L7RgNC40YHRgtCw0L3QviDQt9Cw0LPQvtC70L7QstC60ZbQsiA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIgorbXNnc3RyICLQstC40LrQvtGA0LjRgdGC0LDQvdC+INC/0YDQvtGB0YLQvtGA0YMgPSAlZCDQsdCw0LnRglxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXM6IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0g0KfQtdGA0LPQuCDQv9C+0LLRltC00L7QvNC70LXQvdGMOiDQkNCy0YLQvtGA0Lgv0JLQu9Cw0YHQvdC40LrQuCAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUxMiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorIzogc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJtc3FpZCIKK21zZ3N0ciAibXNxaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBTZW5kL1JlY3YvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSDQp9Cw0YEg0LLRltC00L/RgNCw0LLQu9C10L3QvdGPL9C+0YLRgNC40LzQsNC90L3Rjy/Qt9C80ZbQvdC4INGH0LXRgNCzINC/0L7QstGW0LTQvtC80LvQtdC90YwtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgItCy0ZbQtNC/0YDQsNCy0LvQtdC90L4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAicmVjdiIKK21zZ3N0ciAi0L7RgtGA0LjQvNCw0L3QviIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJjaGFuZ2UiCittc2dzdHIgItC30LzRltC90LXQvdC+IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gUElEINGH0LXRgNCzINC/0L7QstGW0LTQvtC80LvQtdC90YwgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJsc3BpZCIKK21zZ3N0ciAibHNwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHJwaWQiCittc2dzdHIgImxycGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tINCn0LXRgNCz0Lgg0L/QvtCy0ZbQtNC+0LzQu9C10L3RjCAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L4t0LHQsNC50YIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAibWVzc2FnZXMiCittc2dzdHIgItC/0L7QstGW0LTQvtC80LvQtdC90YwiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTg5CisjLCBmdXp6eQorbXNnaWQgInNobWN0bCBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINCy0LjQutC+0L3QsNC90L3RjyBmc3luYyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisi0KHQtdCz0LzQtdC90YIg0YHQv9GW0LvRjNC90L7RlyDQv9Cw0Lwn0Y/RgtGWIHNobWlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgItGA0LXQttC40Lw9JSNvXHTQv9GA0LDQstCwX9C00L7RgdGC0YPQv9GDPSUjb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcz0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKK21zZ3N0ciAi0LHQsNC50YI9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk5CisjLCBjLWZvcm1hdAorbXNnaWQgImF0dF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgItGH0LDRgV/Qv9GA0LjRlNC00L09JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAi0YfQsNGBX9Cy0ZbQtCfRlNC00L09JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDMgc3lzLXV0aWxzL2lwY3MuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hhbmdlX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAi0YfQsNGBX9C30LzRltC9PSUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE1CisjLCBmdXp6eQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINCy0LjQutC+0L3QsNC90L3RjyBmc3luYyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk1lc3NhZ2UgUXVldWUgbXNxaWQ9JWRcbiIKK21zZ3N0ciAiIgorIlxuIgorItCn0LXRgNCz0LAg0L/QvtCy0ZbQtNC+0LzQu9C10L3RjCBtc3FpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxOAorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFx0bW9kZT0lI29cbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgImNieXRlcz0lbGRcdHFieXRlcz0lbGRcdHFudW09JWxkXHRsc3BpZD0lZFx0bHJwaWQ9JWRcbiIKK21zZ3N0ciAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAi0YfQsNGBX9C90LDQtNGB0LjQuz0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJyY3ZfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICLRh9Cw0YFf0L7RgtGA0LjQvD0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY0OCBzeXMtdXRpbHMvaXBjcy5jOjY3MAorIywgZnV6enkKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQv9GA0Lgg0LLRgdGC0LDQvdC+0LLQu9C10L3QvdGWINC/0L7Qt9C40YbRltGXIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2VtYXBob3JlIEFycmF5IHNlbWlkPSVkXG4iCittc2dzdHIgIiIKKyJcbiIKKyLQnNCw0YHQuNCyINGB0LXQvNCw0YTQvtGA0ZbQsiBzZW1pZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICLRgNC10LbQuNC8PSUjbywg0L/RgNCw0LLQsF/QtNC+0YHRgj0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibnNlbXMgPSAlbGRcbiIKK21zZ3N0ciAi0LrRltC70YzQui7RgdC10LwgPSAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAib3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJvdGltZSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImN0aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAiY3RpbWUgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAi0L3QvtC8LtGB0LXQvCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ2YWx1ZSIKK21zZ3N0ciAi0LfQvdCw0YfQtdC90L3RjyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJuY291bnQiCittc2dzdHIgIm5jb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ6Y291bnQiCittc2dzdHIgInpjb3VudCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJwaWQiCittc2dzdHIgInBpZCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjkxCittc2dpZCAiIgorIlxuIgorIktub3duIDxsZGlzYz4gbmFtZXM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHNwZWVkOiAlcyIKK21zZ3N0ciAi0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INGW0LTQtdC90YLQuNGE0ZbQutCw0YLQvtGAOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAiJXMg0LcgJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBvcHRpb24iCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgCIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTk2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGxpbmUgZGlzY2lwbGluZTogJXMiCittc2dzdHIgItC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgDogJXNcbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiJXMg0L3QtSDRlCDRgdC/0LXRhtGW0LDQu9GM0L3QuNC8INGE0LDQudC70L7QvCDQsdC70L7Rh9C90L7Qs9C+INC/0YDQuNGB0YLRgNC+0Y4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0YDQvtC30LzRltGAICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlZWQgJWQgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjQ0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L7RgtGA0LjQvNCw0YLQuCDRgNC+0LfQvNGW0YAgJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1MQorIywgZnV6enkKK21zZ2lkICJjYW5ub3Qgc2V0IGxpbmUgZGlzY2lwbGluZSIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0L/QvtC30LjRhtGW0Y7QstCw0L3QvdGPINC90LAg0LTQuNGB0LrQvtCy0L7QvNGDINC/0YDQuNGB0YLRgNC+0ZciCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworIywgZnV6enkKK21zZ2lkICJjYW5ub3QgZGFlbW9uaXplIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L7RgtGA0LjQvNCw0YLQuCDRgNC+0LfQvNGW0YAgJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0CisjLCBmdXp6eQorbXNnaWQgIm5vbmUiCittc2dzdHIgItCd0LXQvNCw0ZQiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1Cittc2dpZCAicGFyYSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NgorbXNnaWQgImZ1bGwiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTM3IHN5cy11dGlscy9sc2NwdS5jOjE2MCBzeXMtdXRpbHMvbHNjcHUuYzo0NTYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlcyIKK21zZ3N0ciAi0J/QvtC80LjQu9C60LAg0KDQkjogIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxNjIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHBhcnNlOiAlcyIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0YfQuNGC0LDQvdC90Y8gJXNcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTg0CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBzdHJkdXAgZmFpbGVkIgorbXNnc3RyICLQn9C+0LzQuNC70LrQsCDQstGW0LTQutGA0LjQstCw0L3QvdGPICVzIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoyNjcKKyMsIGZ1enp5Cittc2dpZCAiZXJyb3I6IHVuYW1lIGZhaWxlZCIKK21zZ3N0ciAiIgorIlxuIgorItCf0L7QvNC40LvQutCwINC30LDQutGA0LjQstCw0L3QvdGPINGE0LDQudC70YNcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTA2CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiBtYWxsb2MgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstC40LTRltC70LXQvdC90Y8g0L/QsNC8J9GP0YLRliIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTIxCittc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzYWJsZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNgorbXNnaWQgIkNvcmUocykgcGVyIHNvY2tldDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMxCittc2dpZCAiTlVNQSBub2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzMKK21zZ2lkICJWZW5kb3IgSUQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzkKK21zZ2lkICJTdGVwcGluZzoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQxCittc2dpZCAiQ1BVIE1IejoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorIywgZnV6enkKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgItCh0YLQsNGA0LjQuSDRgdGC0LDQvTpcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1MAorbXNnaWQgIlZpcnR1YWxpemF0aW9uIHR5cGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjYWNoZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbl1cbiIKK21zZ3N0ciAi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBb0L/QsNGA0LDQvNC10YLRgNC4XSDQv9GA0LjRgdGC0YDRltC5IC4uLlxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjkKK21zZ2lkICIiCisiQ1BVIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBoZWxwZXJcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgIHVzYWdlIGluZm9ybWF0aW9uXG4iCisiICAtcCwgLS1wYXJzZSAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0LlxuIgorIiAgLXMsIC0tc3lzcm9vdCAgdXNlIHRoZSBkaXJlY3RvcnkgYXMgYSBuZXcgc3lzdGVtIHJvb3QuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NzE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogY2hhbmdlIHdvcmtpbmcgZGlyZWN0b3J5IHRvICVzLiIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAg0LfRltC80L3QuCDRgNC10LbQuNC80YMg0LTQvtGB0YLRg9C/0YMg0LTQviAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIiIKKyLQstC40LrQvtGA0LjRgdGC0LDQvdC90Y86IHJkZXYgWyAtcnYgXSBbIC1vIE9GRlNFVCBdIFsgSU1BR0UgWyBWQUxVRSBbIE9GRlNFVCBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKyIgIHJkZXYgL2Rldi9mZDAgICjQsNCx0L4gcmRldiAvbGludXgsINGC0L7RidC+Likg0LLRltC00L7QsdGA0LDQttCw0ZQg0L/QvtGC0L7Rh9C90LjQuSBST09UINC/0YDQuNGB0YLRgNGW0LkiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgINCy0YHRgtCw0L3QvtCy0LvRjtGUIFJPT1Qg0YMgL2Rldi9oZGEyIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgwCittc2dpZCAiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgUk9PVEZMQUdTIChyZWFkb25seSBzdGF0dXMpIgorbXNnc3RyICIiCisiICByZGV2IC1SIC9kZXYvZmQwIDEgICAgICAgICAgICAgINCy0YHRgtCw0L3QvtCy0LvRjtGUIFJPT1RGTEFHUyAo0YHRgtCw0L0g0LvQuNGI0LUt0LTQu9GPLSIKKyLRh9C40YLQsNC90L3RjykiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODEKK21zZ2lkICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiCittc2dzdHIgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICDQstGB0YLQsNC90L7QstC70Y7RlCDRgNC+0LfQvNGW0YAgUkFNRElTSyIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiIKKyIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAg0LLRgdGC0LDQvdC+0LLQu9GO0ZQgVklERU9NT0RFINC/0YDQuCDQt9Cw0LLQsNC90YLQsNC20LXQvdC90ZYiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODMKK21zZ2lkICIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAgdXNlIHRoZSBieXRlIG9mZnNldCBOIgorbXNnc3RyICIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAg0LfRgdGD0LIg0YMg0LHQsNC50YLQsNGFIE4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODQKK21zZ2lkICIgIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1SIgorbXNnc3RyICIgIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAg0YLQtSDQtiDRgdCw0LzQtSwg0YnQviByZGV2IC1SIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgINGC0LUg0LYg0YHQsNC80LUsINGJ0L4gcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICDRgtC1INC2INGB0LDQvNC1LCDRidC+IHJkZXYgLXYiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODcKK21zZ2lkICIiCisiTm90ZTogdmlkZW8gbW9kZXMgYXJlOiAtMz1Bc2ssIC0yPUV4dGVuZGVkLCAtMT1Ob3JtYWxWZ2EsIDE9a2V5MSwgMj1rZXkyLC4uLiIKK21zZ3N0ciAiIgorItCX0LDRg9Cy0LDQttC10L3QvdGPOiDQstGW0LTQtdC+INGA0LXQttC40LzQuDogLTM90J/QuNGC0LDRgtC4LCAtMj3QoNC+0LfRiNC40YDQtdC90LjQuVZHQSwgLTE90JfQstC40YfQsNC50L3QuNC5VmdhLCAiCisiMT1rZXkxLCAyPWtleTIsLi4uIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiIKKyIgICAgICDQstC40LrQvtGA0LjRgdGC0L7QstGD0LnRgtC1IC1SIDEg0LTQu9GPINC/0ZbQtNC60LvRjtGH0LXQvdC90Y8g0LvQuNGI0LUt0LTQu9GPLdGH0LjRgtCw0L3QvdGPLCAtUiAwINC00LvRjyDRh9C40YLQsNC90L3Rjy8iCisi0LfQsNC/0LjRgdGDLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzoyNDUKK21zZ2lkICJtaXNzaW5nIGNvbW1hIgorbXNnc3RyICLQstGW0LTRgdGD0YLQvdGPINC60L7QvNCwIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo3MiB0ZXh0LXV0aWxzL21vcmUuYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAi0L3QtdC00L7RgdGC0LDRgtC90YzQviDQv9Cw0Lwn0Y/RgtGWIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogXCIlcyBbb3B0aW9uc11cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChkZWZhdWx0czogXCIlc1wiIGFuZFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAoZGVmYXVsdDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgc2V0IHRoZSBwcm9maWxpbmcgbXVsdGlwbGllciB0byA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorIlx0IC12ICAgICAgICAgICAgcHJpbnQgdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICBwcmludCBhbGwgc3ltYm9scywgZXZlbiBpZiBjb3VudCBpcyAwXG4iCisiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgIHJlc2V0IGFsbCB0aGUgY291bnRlcnMgKHJvb3Qgb25seSlcbiIKKyJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorIlx0IC1WICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorbXNnc3RyICIiCisiJXM6INCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogXCIlcyBb0L/QsNGA0LDQvNC10YLRgNC4XVxuIgorIlx0IC1tIDxtYXBf0YTQsNC50Ls+ICAo0YLQuNC/0L7QstC+OiBcIiVzXCIg0YLQsCBcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm9f0YTQsNC50Ls+ICjRgtC40L/QvtCy0L46IFwiJXNcIilcbiIKKyJcdCAtTSA80LzQvdC+0LbQvT4gICAg0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0LzQvdC+0LbQvdC40Log0L/RgNC+0YTRltC70Y7QstCw0L3QvdGPINGDIDzQvNC90L7QttC9PlxuIgorIlx0IC1pICAgICAgICAgICAg0LLQuNCy0LXRgdGC0Lgg0LvQuNGI0LUg0ZbQvdGE0L7RgNC80LDRhtGW0Y4g0L/RgNC+INC60YDQvtC6INC/0YDQvtGE0ZbQu9GO0LLQsNC90L3Rj1xuIgorIlx0IC12ICAgICAgICAgICAg0LLQuNCy0L7QtNC40YLQuCDRgNC+0LfRiNC40YDQtdC90YMg0ZbQvdGE0L7RgNC80LDRhtGW0Y5cbiIKKyJcdCAtYSAgICAgICAgICAgINCy0LjQstC+0LTQuNGC0Lgg0LLRgdGWINGB0LjQvNCy0L7Qu9C4LCDQvdCw0LLRltGC0Ywg0Y/QutGJ0L4g0ZfRhSDRh9C40YHQu9C+INC90LXQvdGD0LvRjNC+0LLQtVxuIgorIlx0IC1iICAgICAgICAgICAg0LLQuNCy0LXRgdGC0Lgg0LPRltGB0YLQvtCz0YDQsNC80YMg0Lcg0ZbQvdC00LjQstGW0LTRg9Cw0LvRjNC90LjQvNC4INGB0YLQvtCy0L/Rh9C40LrQsNC80LggIgorItC70ZbRh9C40LvRjNC90LjQutGW0LJcbiIKKyJcdCAtcyAgICAgICAgICAgINCy0LjQstC10YHRgtC4INGW0L3QtNC40LLRltC00YPQsNC70YzQvdGWINC70ZbRh9C40LvRjNC90LjQutC4INGE0YPQvdC60YbRltC5XG4iCisiXHQgLXIgICAgICAgICAgICDRgdC60LjQvdGD0YLQuCDQstGB0ZYg0LvRltGH0LjQu9GM0L3QuNC60LggKNC70LjRiNC1IHJvb3QpXG4iCisiXHQgLW4gICAgICAgICAgICDQstC40LzQutC90YPRgtC4INCw0LLRgtC+0LzQsNGC0LjRh9C90LUg0LLQuNC30L3QsNGH0LXQvdC90Y8g0L/QvtGA0Y/QtNC60YMg0LHQsNC50YLRltCyXG4iCisiXHQgLVYgICAgICAgICAgICDQstC40LLQtdGB0YLQuCDQstC10YDRgdGW0Y4g0YLQsCDQstC40LnRgtC4XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjIyNworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZHByb2ZpbGU6IGVycm9yIHdyaXRpbmcgJXM6ICVzXG4iCittc2dzdHIgIm1vdW50OiDQv9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YMgJXM6ICVzIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgcmV2ZXJzZWQgYnl0ZSBvcmRlci4gVXNlIC1uIHRvIGZvcmNlIG5hdGl2ZSBieXRlIG9yZGVyLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI4NAorIywgYy1mb3JtYXQKK21zZ2lkICJTYW1wbGluZ19zdGVwOiAlaVxuIgorbXNnc3RyICLQmtGA0L7Qul/Qv9GA0L7RhNGW0LvRjtCy0LDQvdC90Y86ICVpXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMwNSBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzKCVpKTogd3JvbmcgbWFwIGxpbmVcbiIKK21zZ3N0ciAiJXM6ICVzKCVpKTog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INGA0Y/QtNC+0Log0LzQsNC/0LhcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIFwiX3N0ZXh0XCIgaW4gJXNcbiIKK21zZ3N0ciAiJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9C90LDQudGC0LggXCJfc3RleHRcIiDRgyAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIlczog0LDQtNGA0LXRgdCwINC/0YDQvtGE0ZbQu9GOINC/0L7Qt9CwINC00ZbQsNC/0LDQt9C+0L3QvtC8LiDQndC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YTQsNC50Lsg0LzQsNC/0Lg/XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjQxMgorbXNnaWQgInRvdGFsIgorbXNnc3RyICLQt9Cw0LPQsNC70L7QvCIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICIlcyDQtyAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiDQvdC10LLRltC00L7QvNC40Lkg0LrQvtGA0LjRgdGC0YPQstCw0YdcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEzNAorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAicmVuaWNlOiAlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICJnZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICJzZXRwcmlvcml0eSIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZDogb2xkIHByaW9yaXR5ICVkLCBuZXcgcHJpb3JpdHkgJWRcbiIKK21zZ3N0ciAiJWQ6INGB0YLQsNGA0LjQuSDQv9GA0ZbQvtGA0LjRgtC10YIgJWQsINC90L7QstC40Lkg0L/RgNGW0L7RgNC40YLQtdGCICVkXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyIgICAgLWQgfCAtLWRldmljZSA8ZGV2aWNlPiAgICBzZWxlY3QgcnRjIGRldmljZSAocnRjMHxydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICBSVEMgdXNlcyBsb2NhbCB0aW1lem9uZVxuIgorIiAgICAtbSB8IC0tbW9kZSAgICAgICAgICAgICAgIHN0YW5kYnl8bWVtfC4uLiBzbGVlcCBtb2RlXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxzZWNvbmRzPiAgc2Vjb25kcyB0byBzbGVlcFxuIgorIiAgICAtdCB8IC0tdGltZSA8dGltZV90PiAgICAgIHRpbWUgdG8gd2FrZVxuIgorIiAgICAtdSB8IC0tdXRjICAgICAgICAgICAgICAgIFJUQyB1c2VzIFVUQ1xuIgorIiAgICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgIHZlcmJvc2UgbWVzc2FnZXNcbiIKKyIgICAgLVYgfCAtLXZlcnNpb24gICAgICAgICAgICBzaG93IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0MgorbXNnaWQgInJlYWQgcnRjIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDcKK21zZ2lkICJyZWFkIHN5c3RlbSB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTY1Cittc2dpZCAiY29udmVydCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyNAorbXNnaWQgInNldCBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjgKK21zZ2lkICJlbmFibGUgcnRjIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjMyCittc2dpZCAic2V0IHJ0YyB3YWtlIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzQ2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdW5yZWNvZ25pemVkIHN1c3BlbmQgc3RhdGUgJyVzJ1xuIgorbXNnc3RyICIgJXM6INC90LXQstGW0LTQvtC80LjQuSDRgtC40L8g0YLQsNCx0LvQuNGG0ZYg0YDQvtC30LTRltC70ZbQslxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICIlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC60LvRjtGHICglcylcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIHRpbWVfdCB2YWx1ZSAlc1xuIgorbXNnc3RyICIlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC/0LDRgNCw0LzQtdGC0YAgLS0gJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozODUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB2ZXJzaW9uICVzXG4iCittc2dzdHIgIiVzINCy0LXRgNGB0ZbRjyAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAi0JLQuNC60L7RgNC40YHRgtC+0LLRg9GU0YLRjNGB0Y8gJXMuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICLQktC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyAlcy5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG11c3QgcHJvdmlkZSB3YWtlIHRpbWVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQxNworIywgZnV6enkKK21zZ2lkICJtYWxsb2MoKSBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINCy0LjQtNGW0LvQtdC90L3RjyDQv9Cw0Lwn0Y/RgtGWIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iCittc2dzdHIgIiVzOiAlcyDQvdC1INGUIGxwINC/0YDQuNGB0YLRgNC+0ZTQvC5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxhcm0gJWxkLCBzeXNfdGltZSAlbGQsIHJ0Y190aW1lICVsZCwgc2Vjb25kcyAldVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aW1lIGRvZXNuJ3QgZ28gYmFja3dhcmQgdG8gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ2NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdha2V1cCBmcm9tIFwiJXNcIiB1c2luZyAlcyBhdCAlc1xuIgorbXNnc3RyICLQn9C+0LLRltC00L7QvNC70LXQvdC90Y8g0LLRltC0ICVzQCVzINC00L4gJXMg0YMgJXMgLi4uIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L/QtdGA0LXQudC80LXQvdGD0LLQsNGC0LggJXMg0YMgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDk2CisjLCBmdXp6eQorbXNnaWQgInJ0YyByZWFkIgorbXNnc3RyICIsINCz0L7RgtC+0LLQuNC5IgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjUwNQorbXNnaWQgImRpc2FibGUgcnRjIGFsYXJtIGludGVycnVwdCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGluZyBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzJXMgW29wdGlvbnNdIFtwcm9ncmFtIFtwcm9ncmFtIGFyZ3VtZW50c11dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAtdiwgLS12ZXJib3NlICAgICAgICAgICAgc2F5cyB3aGF0IG9wdGlvbnMgYXJlIGJlaW5nIHN3aXRjaGVkIG9uXG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplICBkaXNhYmxlcyByYW5kb21pemF0aW9uIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3MgIgorInNwYWNlXG4iCisiIC1GLCAtLWZkcGljLWZ1bmNwdHJzICAgICBtYWtlcyBmdW5jdGlvbiBwb2ludGVycyBwb2ludCB0byBkZXNjcmlwdG9yc1xuIgorIiAtWiwgLS1tbWFwLXBhZ2UtemVybyAgICAgdHVybnMgb24gTU1BUF9QQUdFX1pFUk9cbiIKKyIgLUwsIC0tYWRkci1jb21wYXQtbGF5b3V0IGNoYW5nZXMgdGhlIHdheSB2aXJ0dWFsIG1lbW9yeSBpcyBhbGxvY2F0ZWRcbiIKKyIgLVgsIC0tcmVhZC1pbXBsaWVzLWV4ZWMgIHR1cm5zIG9uIFJFQURfSU1QTElFU19FWEVDXG4iCisiIC1CLCAtLTMyYml0ICAgICAgICAgICAgICB0dXJucyBvbiBBRERSX0xJTUlUXzMyQklUXG4iCisiIC1JLCAtLXNob3J0LWlub2RlICAgICAgICB0dXJucyBvbiBTSE9SVF9JTk9ERVxuIgorIiAtUywgLS13aG9sZS1zZWNvbmRzICAgICAgdHVybnMgb24gV0hPTEVfU0VDT05EU1xuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgdHVybnMgb24gU1RJQ0tZX1RJTUVPVVRTXG4iCisiIC0zLCAtLTNnYiAgICAgICAgICAgICAgICBsaW1pdHMgdGhlIHVzZWQgYWRkcmVzcyBzcGFjZSB0byBhIG1heGltdW0gb2YgMyAiCisiR0JcbiIKKyIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGlnbm9yZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTQzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVzXG4iCisiVHJ5IGAlcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICLQodC/0YDQvtCx0YPQudGC0LUgYGdldG9wdCAtLWhlbHAnLCDRidC+0LEg0L7RgtGA0LjQvNCw0YLQuCDQtNC+0LTQsNGC0LrQvtCy0YMg0ZbQvdGE0L7RgNC80LDRhtGW0Y4uXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjE1IHN5cy11dGlscy9zZXRhcmNoLmM6MjMxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogVW5yZWNvZ25pemVkIGFyY2hpdGVjdHVyZSIKK21zZ3N0ciAiICVzOiDQvdC10LLRltC00L7QvNC40Lkg0YLQuNC/INGC0LDQsdC70LjRhtGWINGA0L7Qt9C00ZbQu9GW0LJcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKKyMsIGZ1enp5Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgItCd0LDQtNGC0L4g0LHQsNCz0LDRgtC+INC/0LDRgNCw0LzQtdGC0YDRltCyLlxuIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC30LDQv9C40YHQsNGC0Lgg0YDQvtC30LTRltC7INC90LAgJXNcbiIKKworIzogc3lzLXV0aWxzL3NldHNpZC5jOjI2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBwcm9ncmFtIFthcmcgLi4uXVxuIgorbXNnc3RyICLQstC40LrQvtGA0LjRgdGC0LDQvdC90Y86ICVzINC/0YDQvtCz0YDQsNC80LAgW9Cw0YDQs9GD0LzQtdC90YLQuCAuLi5dXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIDxkZXZpY2U+IFsgLWkgPElSUT4gfCAtdCA8VElNRT4gfCAtYyA8Q0hBUlM+IHwgLXcgPFdBSVQ+IHwgXG4iCisiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKyIgICAgICAgICAgLVQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyA80L/RgNC40YHRgtGA0ZbQuT4gWyAtaSA8SVJRPiB8IC10IDzQp9CQ0KE+IHwgLWMgPNCh0JjQnNCS0J7Qm9CYPiB8IC13ICIKKyI80J/QkNCj0JfQkD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzo5MQorbXNnaWQgIm1hbGxvYyBlcnJvciIKK21zZ3N0ciAi0L/QvtC80LjQu9C60LAgbWFsbG9jIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgdmFsdWVcbiIKK21zZ3N0ciAiJXM6INC90LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3Rj1xuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgYW4gbHAgZGV2aWNlLlxuIgorbXNnc3RyICIlczogJXMg0L3QtSDRlCBscCDQv9GA0LjRgdGC0YDQvtGU0LwuXG4iCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3RhdHVzIGlzICVkIgorbXNnc3RyICIlcyDRgdGC0LDQvSAtICVkIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgYnVzeSIKK21zZ3N0ciAiLCDQt9Cw0LnQvdGP0YLQuNC5IgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgcmVhZHkiCittc2dzdHIgIiwg0LPQvtGC0L7QstC40LkiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiwg0YHQutGW0L3Rh9C40LLRgdGPINC/0LDQv9GW0YAiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvbi1saW5lIgorbXNnc3RyICIsIG9uLWxpbmUiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlcnJvciIKK21zZ3N0ciAiLCDQv9C+0LzQuNC70LrQsCIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI4NQorbXNnaWQgIkxQR0VUSVJRIGVycm9yIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCBMUEdFVElSUSIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBJUlEgJWRcbiIKK21zZ3N0ciAiJXMg0LLQuNC60L7RgNC40YHRgtC+0LLRg9GUIElSUSAlZFxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIHBvbGxpbmdcbiIKK21zZ3N0ciAiJXMg0LLQuNC60L7RgNC40YHRgtC+0LLRg9GUINC+0L/QuNGC0YPQstCw0L3QvdGPINGB0YLQsNC90YNcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMg0L/RgNC+0LPRgNCw0LzQsCBb0LDRgNCz0YPQvNC10L3RgtC4IC4uLl1cbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2MAorbXNnaWQgIiIKKyJSdW4gcHJvZ3JhbSB3aXRoIHNvbWUgbmFtZXNwYWNlcyB1bnNoYXJlZCBmcm9tIHBhcmVudFxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgICAgdXNhZ2UgaW5mb3JtYXRpb24gKHRoaXMpXG4iCisiICAtbSwgLS1tb3VudCAgICAgICB1bnNoYXJlIG1vdW50cyBuYW1lc3BhY2VcbiIKKyIgIC11LCAtLXV0cyAgICAgICAgIHVuc2hhcmUgVVRTIG5hbWVzcGFjZSAoaG9zdG5hbWUgZXRjKVxuIgorIiAgLWksIC0taXBjICAgICAgICAgdW5zaGFyZSBTeXN0ZW0gViBJUEMgbmFtZXNwYWNlXG4iCisiICAtbiwgLS1uZXQgICAgICAgICB1bnNoYXJlIG5ldHdvcmsgbmFtZXNwYWNlXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2NworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1bnNoYXJlKDEpLlxuIgorbXNnc3RyICJGaW5nZXIg0ZbQvdGE0L7RgNC80LDRhtGW0Y4g0LfQvNGW0L3QtdC90L4uXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE0CisjLCBmdXp6eQorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQv9GA0Lgg0LLRgdGC0LDQvdC+0LLQu9C10L3QvdGWINC/0L7Qt9C40YbRltGXIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXhlYyAlcyBmYWlsZWQiCittc2dzdHIgItC/0L7QvNC40LvQutCwINC30LDQv9GD0YHQutGDXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogYmFkIC1sIGFyZ3VtZW50ICVzLlxuIgorbXNnc3RyICJjb2w6INC90LXQv9GA0LDQstC40LvRjNC90LjQuSAtbCDQsNGA0LPRg9C80LXQvdGCICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sIFstYmZweF0gWy1sIG5saW5lXVxuIgorbXNnc3RyICLQstC40LrQvtGA0LjRgdGC0LDQvdC90Y86IGNvbCBbLWJmcHhdIFstbCDQutGW0LvRjNC6LtGA0Y/QtNC60ZbQsl1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiDQv9C+0LzQuNC70LrQsCDQt9Cw0L/QuNGB0YMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd2FybmluZzogY2FuJ3QgYmFjayB1cCAlcy5cbiIKK21zZ3N0ciAiY29sOiDQv9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC/0L7QvNC40LvQutCwINGA0LXQt9C10YDQstC90L7Qs9C+INC60L7Qv9GW0Y7QstCw0L3QvdGPICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgInBhc3QgZmlyc3QgbGluZSIKK21zZ3N0ciAi0L/QvtCy0Lcg0L/QtdGA0YjQuNC5INGA0Y/QtNC+0LoiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAiLS0gbGluZSBhbHJlYWR5IGZsdXNoZWQiCittc2dzdHIgIi0tINGA0Y/QtNC+0Log0LLQttC1INGB0LrQuNC90YPRgtC+INGDINC/0L7RgtGW0LoiCisKKyM6IHRleHQtdXRpbHMvY29sY3J0LmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLSBdIFsgLTIgXSBbIGZpbGUgLi4uIF1cbiIKK21zZ3N0ciAi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBbIC0gXSBbIC0yIF0gWyDRhNCw0LnQuyAuLi4gXVxuIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgItGA0Y/QtNC+0Log0L3QsNC00YLQviDQtNC+0LLQs9C40LkiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mzc0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiBjb2x1bW4gWy10eF0gWy1jINGB0YLQvtCy0L/Rh9C40LrRltCyXSBb0YTQsNC50LsgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBsZW5ndGggdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6INC90LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDQtNC+0LLQttC40L3QuC5cbiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgc2tpcCB2YWx1ZS5cbiIKK21zZ3N0ciAiaGV4ZHVtcDog0L3QtdC/0YDQsNCy0LjQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPINC30YHRg9Cy0YMuXG4iCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmbXRdIFstZiBmbXRfZmlsZV0gWy1uIGxlbmd0aF0gWy1zIHNraXBdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lINGE0L7RgNC80LDRgl0gWy1mINGE0LDQudC7X9GE0L7RgNC80LDRgtGDXSBbLW4g0LTQvtCy0LbQuNC90LBdIFstcyDQt9GB0YPQsl0gIgorIlvRhNCw0LnQuyAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWy1kZmxwY3N1XSBbK2xpbmVudW0gfCArL3BhdHRlcm5dIG5hbWUxIG5hbWUyIC4uLlxuIgorbXNnc3RyICLQstC40LrQvtGA0LjRgdGC0LDQvdC90Y86ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSDQvdCw0LfQstCwMSDQvdCw0LfQstCwMiAuLi5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjkwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC00ZbQu9C40YLQuCDQsdGD0YTQtdGALlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gb3B0aW9uIFwiLSVjXCJcbiIKK21zZ3N0ciAiJXM6INC90LXQstGW0LTQvtC80LjQuSDQv9Cw0YDQsNC80LXRgtGAIFwiLSVjXCJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKiogJXM6IGRpcmVjdG9yeSAqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKiAlczog0LrQsNGC0LDQu9C+0LMgKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjU2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqKioqKiogJXM6IE5vdCBhIHRleHQgZmlsZSAqKioqKioqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqKioqKiogJXM6INC90LUg0ZQg0YLQtdC60YHRgtC+0LLQuNC8INGE0LDQudC70L7QvCAqKioqKioqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo2NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1VzZSBxIG9yIFEgdG8gcXVpdF0iCittc2dzdHIgIlvQktC40LrQvtGA0LjRgdGC0L7QstGD0LnRgtC1IHEg0YfQuCBRINGJ0L7QsSDQstC40LnRgtC4XSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tTW9yZS0tIgorbXNnc3RyICItLdCU0LDQu9GWLS0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICIoTmV4dCBmaWxlOiAlcykiCittc2dzdHIgIijQndCw0YHRgtGD0L/QvdC40Lkg0YTQsNC50Ls6ICVzKSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzYzCisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyBzcGFjZSB0byBjb250aW51ZSwgJ3EnIHRvIHF1aXQuXSIKK21zZ3N0ciAiW9Cd0LDRgtC40YHQvdGW0YLRjCDQv9GA0L7QsdGW0LssINGJ0L7QsSDQv9GA0L7QtNC+0LLQttC40YLQuCwg0LDQsdC+ICdxJywg0YnQvtCxINCy0LjQudGC0LguXSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi7QvdCw0LfQsNC0ICVkINGB0YLQvtGA0ZbQvdC+0LoiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiLi4u0L3QsNC30LDQtCAxINGB0YLQvtGA0ZbQvdC60YMiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTEKK21zZ2lkICIuLi5za2lwcGluZyBvbmUgbGluZSIKK21zZ3N0ciAiLi4u0L/RgNC+0L/Rg9GB0LrQsNGU0YLRjNGB0Y8g0L7QtNC40L0g0YDRj9C00L7QuiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MworIywgYy1mb3JtYXQKK21zZ2lkICIuLi5za2lwcGluZyAlZCBsaW5lcyIKK21zZ3N0ciAiLi4u0L/RgNC+0L/Rg9GB0LrQsNGU0YLRjNGB0Y8gJWQg0YDRj9C00LrRltCyIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjkwCittc2dpZCAiIgorIlxuIgorIioqKkJhY2sqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKtCd0LDQt9Cw0LQqKipcbiIKKyJcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMyOAorbXNnaWQgIiIKKyJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgRGVmYXVsdHMgaW4gIgorImJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisiXG4iCisi0JHRltC70YzRiNGW0YHRgtGMINC60L7QvNCw0L3QtCDQvNC+0LbRg9GC0Ywg0LzQsNGC0Lgg0L3QtdC+0LHQvtCyJ9GP0LfQutC+0LLQuNC5INGH0LjRgdC70L7QstC40Lkg0L/QsNGA0LDQvNC10YLRgCBrLiAg0KLQuNC/0L7QstGWICIKKyLQt9C90LDRh9C10L3QvdGPINGDINC60YPRgtC+0LLQuNGFINC00YPQttC60LDRhS5cbiIKKyLQl9GW0YDQvtGH0LrQsCAoKikg0L7Qt9C90LDRh9Cw0ZQsINGJ0L4g0L/QsNGA0LDQvNC10YLRgCDRgdGC0LDRlCDQvdC+0LLQuNC8INGC0LjQv9C+0LLQuNC8INC30L3QsNGH0LXQvdC90Y/QvC5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMzNQorbXNnaWQgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIKK21zZ3N0ciAiIgorIjxzcGFjZT4gICAgICAgICAgICAgICAgINCS0LjQstGW0LQg0L3QsNGB0YLRg9C/0L3QuNGFIGsg0YDRj9C00LrRltCyINGC0LXQutGB0YLRgyBb0L/QvtGC0L7Rh9C90LjQuSDRgNC+0LfQvNGW0YAgIgorItC10LrRgNCw0L3Rg11cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICDQktC40LLRltC0INC90LDRgdGC0YPQv9C90LjRhSBrINGA0Y/QtNC60ZbQsiDRgtC10LrRgdGC0YMgW9C/0L7RgtC+0YfQvdC40Lkg0YDQvtC30LzRltGAICIKKyLQtdC60YDQsNC90YNdKlxuIgorIjxlbnRlcj4gICAgICAgICAgICAgICAgINCS0LjQstGW0LQg0L3QsNGB0YLRg9C/0L3QuNGFIGsg0YDRj9C00LrRltCyINGC0LXQutGB0YLRgyBbMV0qXG4iCisiZCDQsNCx0L4gY3RybC1EICAgICAgICAgICAg0J/RgNC+0LrRgNGD0YLQuNGC0LggayDRgNGP0LTQutGW0LIgW9C/0L7RgtC+0YfQvdC40Lkg0YDQvtC30LzRltGAINC/0YDQvtC60YDRg9GC0LrQuCwgIgorItGB0L/QvtGH0LDRgtC60YMgMTFdKlxuIgorInEg0LDQsdC+IFEg0LDQsdC+IDxpbnRlcnJ1cHQ+INCS0LjQudGC0Lgg0LcgbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgINCf0LXRgNC10LnRgtC4INCy0L/QtdGA0LXQtCDQvdCwIGsg0YDRj9C00LrRltCyINGC0LXQutGB0YLRgyBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICDQn9C10YDQtdC50YLQuCDQstC/0LXRgNC10LQg0L3QsCBrINC10LrRgNCw0L3RltCyINGC0LXQutGB0YLRgyBbMV1cbiIKKyJiINCw0LHQviBjdHJsLUIgICAgICAgICAgICDQn9C10YDQtdC50YLQuCDQvdCw0LfQsNC0INC90LAgayDQtdC60YDQsNC90ZbQsiDRgtC10LrRgdGC0YMgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAg0J/QtdGA0LXQudGC0Lgg0YMg0LzRltGB0YbQtSDQv9C+0YfQsNGC0LrRgyDQv9C+0L/QtdGA0LXQtNC90YzQvtCz0L4g0L/QvtGI0YPQutGDXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAg0JLRltC00L7QsdGA0LDQt9C40YLQuCDQv9C+0YLQvtGH0L3QuNC5INC90L7QvNC10YAg0YDRj9C00LrQsFxuIgorIi880YDQtdCz0YPQu9GP0YDQvdC40Lkg0LLQuNGA0LDQtz4gICAgINCX0L3QsNC50YLQuCBrLdC5INCy0LjQv9Cw0LTQvtC6INGB0L/RltCy0L/QsNC00LDQvdC90Y8g0Lcg0YDQtdCz0YPQu9GP0YDQvdC40Lwg0LLQuNGA0LDQt9C+0LwgIgorIlsxXVxuIgorIm4gICAgICAgICAgICAgICAgICAgICAgINCX0L3QsNC50YLQuCBrLdC5INCy0LjQv9Cw0LTQvtC6INGB0L/RltCy0L/QsNC00LDQvdC90Y8g0Lcg0L7RgdGC0LDQvdC90ZbQvCDRgNC10LMuIgorItCy0LjRgNCw0LfQvtC8IFsxXVxuIgorIiE80LrQvNC90LQ+INCw0LHQviA6ITzQutC80L3QtD4gICAg0JLQuNC60L7QvdCw0YLQuCA80LrQvNC90LQ+INGDINC+0LHQvtC70L7QvdGG0ZZcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICDQl9Cw0L/Rg9GB0YLQuNGC0LggL3Vzci9iaW4vdmkg0Lcg0L/QvtGC0L7Rh9C90L7Qs9C+INGA0Y/QtNC60LBcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICDQntC90L7QstC40YLQuCDQstC80ZbRgdGCINC10LrRgNCw0L3Rg1xuIgorIjpuICAgICAgICAgICAgICAgICAgICAgINCf0LXRgNC10LnRgtC4INC90LAgay3QuSDRgNGP0LTQvtC6INGE0LDQudC70YMgWzFdXG4iCisiOnAgICAgICAgICAgICAgICAgICAgICAg0J/QtdGA0LXQudGC0Lgg0L3QsCBrLdC5INC/0L7Qv9C10YDQtdC00L3RltC5INGE0LDQudC7IFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgINCS0ZbQtNC+0LHRgNCw0LfQuNGC0Lgg0L3QsNC30LLRgyDQv9C+0YLQvtGH0L3QvtCz0L4g0YTQsNC50LvRgyDRgtCwINC90L7QvNC10YAg0YDRj9C00LrQsFxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgINCf0L7QstGC0L7RgNC40YLQuCDQv9C+0L/QtdGA0LXQtNC90Y4g0LrQvtC80LDQvdC00YNcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQwNCB0ZXh0LXV0aWxzL21vcmUuYzoxNDA5CisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyAnaCcgZm9yIGluc3RydWN0aW9ucy5dIgorbXNnc3RyICJb0J3QsNGC0LjRgdC90ZbRgtGMICdoJyDRidC+0LEg0L/QtdGA0LXQs9C70Y/QvdGD0YLQuCDQtNC+0LLRltC00LrRgy5dIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQzCisjLCBjLWZvcm1hdAorbXNnaWQgIlwiJXNcIiBsaW5lICVkIgorbXNnc3RyICJcIiVzXCIg0YDRj9C00L7QuiAlZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJbTm90IGEgZmlsZV0gbGluZSAlZCIKK21zZ3N0ciAiW9Cd0LUg0YTQsNC50LtdINGA0Y/QtNC+0LogJWQiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiAg0J/QtdGA0LXQv9C+0LLQvdC10L3QvdGPXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIuLi7Qv9C10YDQtdGF0ZbQtFxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICLQndC10LLQtNCw0LvQuNC5INGA0LXQs9GD0LvRj9GA0L3QuNC5INCy0LjRgNCw0LciCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTMKK21zZ2lkICIiCisiXG4iCisiUGF0dGVybiBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorIlxuIgorItCo0LDQsdC70L7QvSDQvdC1INC30L3QsNC50LTQtdC90L5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxNiB0ZXh0LXV0aWxzL3BnLmM6MTEyNyB0ZXh0LXV0aWxzL3BnLmM6MTI3OAorbXNnaWQgIlBhdHRlcm4gbm90IGZvdW5kIgorbXNnc3RyICLQqNCw0LHQu9C+0L0g0L3QtSDQt9C90LDQudC00LXQvdC+IgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjc3Cittc2dpZCAiY2FuJ3QgZm9ya1xuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0YHRgtCy0L7RgNC40YLQuCDQv9GA0L7RhtC10YFcbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKyJcbiIKKyIuLi7Qn9C10YDQtdGF0ZbQtCAiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiLi4u0J/QtdGA0LXRhdGW0LQg0LTQviDRhNCw0LnQu9GDIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAiLi4u0J/QtdGA0LXRhdGW0LQg0L3QsNC30LDQtCDQtNC+INGE0LDQudC70YMiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMDAKK21zZ2lkICJMaW5lIHRvbyBsb25nIgorbXNnc3RyICLQoNGP0LTQvtC6INC90LDQtNGC0L4g0LTQvtCy0LPQuNC5IgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDQzCittc2dpZCAiTm8gcHJldmlvdXMgY29tbWFuZCB0byBzdWJzdGl0dXRlIGZvciIKK21zZ3N0ciAi0J3QtdC80LDRlCDQv9C+0L/QtdGA0LXQtNC90YzQvtGXINC60L7QvNCw0L3QtNC4INC00LvRjyDQt9Cw0LzRltC90LgiCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IG9kKDEpIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGhleGR1bXAoMSkuXG4iCittc2dzdHIgIm9kOiDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC0Lggb2QoMSkg0L3QtdCx0LDQttCw0L3Qviwg0LrQvtGA0LjRgdGC0YPQudGC0LXRgdGMIGhleGR1bXAoMSkuXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IGhleGR1bXAoMSkgY29tcGF0aWJpbGl0eSBkb2Vzbid0IHN1cHBvcnQgdGhlIC0lYyBvcHRpb24lc1xuIgorbXNnc3RyICJvZDog0YMg0YDQtdC20LjQvNGWINGB0YPQvNGW0YHQvdC+0YHRgtGWINC3IGhleGR1bXAoMSkg0L/QsNGA0LDQvNC10YLRgCAtJWMg0L3QtSDQv9GW0LTRgtGA0LjQvNGD0ZTRgtGM0YHRjyVzXG4iCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzQKK21zZ2lkICI7IHNlZSBzdHJpbmdzKDEpLiIKK21zZ3N0ciAiOyDQtNC40LLRltGC0YzRgdGPIHN0cmluZ3MoMSkuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDog0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0YDQvtGH0LjRgtCw0YLQuCAlcy5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjY4CisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgImhleGR1bXA6INGA0Y/QtNC+0Log0L3QsNC00YLQviDQtNC+0LLQs9C40LkuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDog0LrRltC70YzQutGW0YHRgtGMINCx0LDQudGCINC3INC00LXQutGW0LvRjNC60L7QvNCwINGB0LjQvNCy0L7Qu9Cw0LzQuCDQv9C10YDQtdGC0LLQvtGA0LXQvdC90Y8uXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGJ5dGUgY291bnQgZm9yIGNvbnZlcnNpb24gY2hhcmFjdGVyICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiDQvdC10L/RgNCw0LLQuNC70YzQvdCwINC60ZbQu9GM0LrRltGB0YLRjCDQsdCw0LnRgiDQtNC70Y8g0YHQuNC80LLQvtC70YMg0L/QtdGA0LXRgtCy0L7RgNC10L3QvdGPICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgImhleGR1bXA6ICUlcyDQv9C+0YLRgNC10LHRg9GUINCy0LrQsNC30YPQstCw0L3QvdGPINGC0L7Rh9C90L7RgdGC0ZYg0LDQsdC+INC60ZbQu9GM0LrQvtGB0YLRliDQsdCw0LnRgi5cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiaGV4ZHVtcDog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INGE0L7RgNC80LDRgiB7JXN9XG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iCittc2dzdHIgImhleGR1bXA6INC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRgdC40LzQstC+0Lsg0L/QtdGA0LXRgtCy0L7RgNC10L3QvdGPICUlJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMjMKKyMsIGZ1enp5Cittc2dpZCAiT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICLQndC10LTQvtGB0YLQsNGC0L3RjNC+INC/0LDQvCfRj9GC0ZYiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKyIlczog0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBbLW51bWJlcl0gWy1wINGA0Y/QtNC+0LpdIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSAiCisiW9GE0LDQudC70LhdXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlc1xuIgorbXNnc3RyICIlczog0L/QsNGA0LDQvNC10YLRgCDQv9C+0YLRgNC10LHRg9GUINCy0LrQsNC30YPQstCw0L3QvdGPINCw0YDQs9GD0LzQtdC90YLRgyAtLSAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC/0LDRgNCw0LzQtdGC0YAgLS0gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MAorbXNnaWQgIi4uLnNraXBwaW5nIGZvcndhcmRcbiIKK21zZ3N0ciAiLi4u0L/QtdGA0LXRhdGW0LQg0LLQv9C10YDQtdC0XG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzIKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIuLi7Qv9C10YDQtdGF0ZbQtCDQvdCw0LfQsNC0XG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTQKK21zZ2lkICJObyBuZXh0IGZpbGUiCittc2dzdHIgItCd0LXQvNCw0ZQg0L3QsNGB0YLRg9C/0L3QvtCz0L4g0YTQsNC50LvRgyIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgItCd0LXQvNCw0ZQg0L/QvtC/0LXRgNC10LTQvdGM0L7Qs9C+INGE0LDQudC70YMiCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFJlYWQgZXJyb3IgZnJvbSAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiDQn9C+0LzQuNC70LrQsCDRh9C40YLQsNC90L3RjyDQtyDRhNCw0LnQu9GDICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuZXhwZWN0ZWQgRU9GIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6INCd0LXQvtGH0ZbQutGD0LLQsNC90LjQuSDQutGW0L3QtdGG0Ywg0YTQsNC50LvQsCDRgyDRhNCw0LnQu9GWICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIgorbXNnc3RyICIlczog0J3QtdCy0ZbQtNC+0LzQsCDQv9C+0LzQuNC70LrQsCDRgyDRhNCw0LnQu9GWICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW5ub3QgY3JlYXRlIHRlbXBmaWxlXG4iCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0YHRgtCy0L7RgNC40YLQuCDRgtC40LzRh9Cw0YHQvtCy0LjQuSDRhNCw0LnQu1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTA0NCB0ZXh0LXV0aWxzL3BnLmM6MTIxOSB0ZXh0LXV0aWxzL3BnLmM6MTI0NgorbXNnaWQgIlJFIGVycm9yOiAiCittc2dzdHIgItCf0L7QvNC40LvQutCwINCg0JI6ICIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMDEKK21zZ2lkICIoRU9GKSIKK21zZ3N0ciAiKNCa0ZbQvdC10YbRjCDRhNCw0LnQu9GDKSIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMjcgdGV4dC11dGlscy9wZy5jOjEyNTQKK21zZ2lkICJObyByZW1lbWJlcmVkIHNlYXJjaCBzdHJpbmciCittc2dzdHIgItCd0LXQvNCw0ZQg0LfQsdC10YDQtdC20LXQvdC+0LPQviDRgyDQv9Cw0Lwn0Y/RgtGWINGA0Y/QtNC60YMg0L/QvtGI0YPQutGDIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICLQt9Cx0LXRgNC10LbQtdC90L4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDY1Cittc2dpZCAiOiAhY29tbWFuZCBub3QgYWxsb3dlZCBpbiByZmxhZyBtb2RlLlxuIgorbXNnc3RyICI6INC60L7QvNCw0L3QtNCwICEg0L3QtSDQtNC+0L/Rg9GB0YLQuNC80LAg0YMg0YDQtdC20LjQvNGWIHJmbGFnLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ5NworbXNnaWQgImZvcmsoKSBmYWlsZWQsIHRyeSBhZ2FpbiBsYXRlclxuIgorbXNnc3RyICLQv9C+0LzQuNC70LrQsCDQstC40LrQvtC90LDQvdC90Y8gZm9yaygpLCDRgdC/0YDQvtCx0YPQudGC0LUg0L/RltC30L3RltGI0LUg0YnQtSDRgNCw0LdcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIijQndCw0YHRgtGD0L/QvdC40Lkg0YTQsNC50Ls6ICIKKworIzogdGV4dC11dGlscy9yZXYuYzoxMTMKKyMsIGZ1enp5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC00ZbQu9C40YLQuCDQv9GA0L7RgdGC0ZbRgCDQtNC70Y8g0LHRg9GE0LXRgNCwXG4iCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiByZXYgW2ZpbGUgLi4uXVxuIgorbXNnc3RyICLQstC40LrQvtGA0LjRgdGC0LDQvdC90Y86IHJldiBb0YTQsNC50LsgLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6NTggdGV4dC11dGlscy90YWlsZi5jOjkzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiCittc2dzdHIgItCd0LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4IFwiJXNcIiDQtNC70Y8g0YfQuNGC0LDQvdC90Y9cbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjk2IHRleHQtdXRpbHMvdGFpbGYuYzoyMTUKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IFwiJXNcIiIKK21zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0ZbQvdGE0L7RgNC80LDRhtGW0Y4g0L/RgNC+ICVzIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTA5CisjLCBjLWZvcm1hdAorbXNnaWQgImluY29tcGxldGUgd3JpdGUgdG8gXCIlc1wiICh3cml0dGVuICV6ZCwgZXhwZWN0ZWQgJXpkKVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAobGltaXQgb2YgaW5vdGlmeSB3YXRjaGVzIHdhcyByZWFjaGVkKS4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTYwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuCAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKKyMsIGZ1enp5Cittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgItCd0LXQv9GA0LDQstC40LvRjNC90LUg0YfQuNGB0LvQvjogJXNcbiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorIywgZnV6enkKK21zZ2lkICJ1c2FnZTogdGFpbGYgWy1uIE4gfCAtTl0gbG9nZmlsZSIKK21zZ3N0ciAi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiB0YWlsZiDRhNCw0LnQu1/QttGD0YDQvdCw0LvRg1xuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L3RjzogJXMgWyAtaSBdIFsgLXTQotC10YDQvNGW0L3QsNC7IF0g0YTQsNC50LsuLi5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ0cm91YmxlIHJlYWRpbmcgdGVybWluZm8iCittc2dzdHIgItC/0YDQvtCx0LvQtdC80LAg0L/RgNC4INGH0LjRgtCw0L3QvdGWIHRlcm1pbmZvIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAi0J3QtdCy0ZbQtNC+0LzQsCBlc2NhcGUt0L/QvtGB0LvRltC00L7QstC90ZbRgdGC0Ywg0L3QsCDQstGF0L7QtNGWOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICLQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLQuNC00ZbQu9C40YLQuCDQsdGD0YTQtdGALlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgItCS0YXRltC00L3QuNC5INGA0Y/QtNC+0Log0L3QsNC00YLQviDQtNC+0LLQs9C40LkuXG4iCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGVuIGdyb3dpbmcgYnVmZmVyLlxuIgorbXNnc3RyICLQndC10LTQvtGB0YLQsNGC0L3RjNC+INC/0LDQvCfRj9GC0ZYg0LTQu9GPINC30LHRltC70YzRiNC10L3QvdGPINCx0YPRhNC10YDQsC5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJVc2FnZTogZmRpc2sgWy1iIFNTWl0gWy11XSBESVNLICAgICBDaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisjfiAiICAgICAgIGZkaXNrIC1sIFstYiBTU1pdIFstdV0gRElTSyAgTGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyN+ICIgICAgICAgZmRpc2sgLXMgUEFSVElUSU9OICAgICAgICAgICBHaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorI34gIiAgICAgICBmZGlzayAtdiAgICAgICAgICAgICAgICAgICAgIEdpdmUgZmRpc2sgdmVyc2lvblxuIgorI34gIkhlcmUgRElTSyBpcyBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYiBvciAvZGV2L3NkYVxuIgorI34gImFuZCBQQVJUSVRJT04gaXMgc29tZXRoaW5nIGxpa2UgL2Rldi9oZGE3XG4iCisjfiAiLXU6IGdpdmUgU3RhcnQgYW5kIEVuZCBpbiBzZWN0b3IgKGluc3RlYWQgb2YgY3lsaW5kZXIpIHVuaXRzXG4iCisjfiAiLWIgMjA0ODogKGZvciBjZXJ0YWluIE1PIGRpc2tzKSB1c2UgMjA0OC1ieXRlIHNlY3RvcnNcbiIKKyN+IG1zZ3N0ciAiIgorI34gItCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzogZmRpc2sgWy1iIFNTWl0gWy11XSDQlNCY0KHQmiAg0JfQvNGW0L3QuNGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQslxuIgorI34gIiAgICAgICBmZGlzayAtbCBbLWIgU1NaXSBbLXVdINCU0JjQodCaICAgICAg0JLQuNCy0LXRgdGC0Lgg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQslxuIgorI34gIiAgICAgICBmZGlzayAtcyDQoNCe0JfQlNCG0JsgICAgICAgICAgICAgICAgICDQktC40LLQtdGB0YLQuCDRgNC+0LfQvNGW0YAg0YDQvtC30LTRltC70ZbQsiDRgyDQsdC70L7QutCw0YVcbiIKKyN+ICIgICAgICAgZmRpc2sgLXYgICAgICAgICAgICAgICAgICAgICAgICAg0JLQuNCy0LXRgdGC0Lgg0LLQtdGA0YHRltGOIGZkaXNrXG4iCisjfiAi0JTQtSDQlNCY0KHQmiAtINGJ0L7RgdGMINC90LAg0LfRgNCw0LfQvtC6IC9kZXYvaGRiINGH0LggL2Rldi9zZGEsXG4iCisjfiAi0LAg0KDQntCX0JTQhtCbIC0g0YnQvtGB0Ywg0L3QsCDQt9GA0LDQt9C+0LogL2Rldi9oZGE3XG4iCisjfiAiLXU6INCy0LjQstC+0LTQuNGC0Lgg0L/QvtGH0LDRgtC60L7QstC40Lkg0YLQsCDQutGW0L3RhtC10LLQuNC5INGB0LXQutGC0L7RgNC4ICjQt9Cw0LzRltGB0YLRjCDRhtC40LvRltC90LTRgNGW0LIpXG4iCisjfiAiLWIgMjA0ODogKNC00LvRjyDQtNC10Y/QutC40YUgTU8g0LTQuNGB0LrRltCyKSDQstC40LrQvtGA0LjRgdGC0L7QstGD0Y7RgtGM0YHRjyAyMDQ4LdCx0LDQudGC0L7QstGWINGB0LXQutGC0L7RgNC4XG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVXNhZ2U6IGZkaXNrIFstbF0gWy1iIFNTWl0gWy11XSBkZXZpY2VcbiIKKyN+ICJFLmcuOiBmZGlzayAvZGV2L2hkYSAgKGZvciB0aGUgZmlyc3QgSURFIGRpc2spXG4iCisjfiAiICBvcjogZmRpc2sgL2Rldi9zZGMgIChmb3IgdGhlIHRoaXJkIFNDU0kgZGlzaylcbiIKKyN+ICIgIG9yOiBmZGlzayAvZGV2L2VkYSAgKGZvciB0aGUgZmlyc3QgUFMvMiBFU0RJIGRyaXZlKVxuIgorI34gIiAgb3I6IGZkaXNrIC9kZXYvcmQvYzBkMCAgb3I6IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChmb3IgUkFJRCBkZXZpY2VzKVxuIgorI34gIiAgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86IGZkaXNrIFstbF0gWy1iIFNTWl0gWy11XSDQv9GA0LjRgdGC0YDRltC5XG4iCisjfiAi0J3QsNC/0YAuOiBmZGlzayAvZGV2L2hkYSAgKNC/0LXRgNGI0LjQuSBJREUg0LTQuNGB0LopXG4iCisjfiAiICDQsNCx0L46IGZkaXNrIC9kZXYvc2RjICAo0YLRgNC10YLRltC5IFNDU0kg0LTQuNGB0LopXG4iCisjfiAiICDQsNCx0L46IGZkaXNrIC9kZXYvZWRhICAo0L/QtdGA0YjQuNC5IFBTLzIgRVNESSDQtNC40YHQuilcbiIKKyN+ICIgINCw0LHQvjogZmRpc2sgL2Rldi9yZC9jMGQwICDQsNCx0L46IGZkaXNrIC9kZXYvaWRhL2MwZDAgIChSQUlEINC/0YDQuNGB0YLRgNC+0ZcpXG4iCisjfiAiICAuLi5cbiIKKworI34gbXNnaWQgIiIKKyN+ICJcbiIKKyN+ICJUaGUgbnVtYmVyIG9mIGN5bGluZGVycyBmb3IgdGhpcyBkaXNrIGlzIHNldCB0byAlZC5cbiIKKyN+ICJUaGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggdGhhdCwgYnV0IHRoaXMgaXMgbGFyZ2VyIHRoYW4gMTAyNCxcbiIKKyN+ICJhbmQgY291bGQgaW4gY2VydGFpbiBzZXR1cHMgY2F1c2UgcHJvYmxlbXMgd2l0aDpcbiIKKyN+ICIxKSBzb2Z0d2FyZSB0aGF0IHJ1bnMgYXQgYm9vdCB0aW1lIChlLmcuLCBvbGQgdmVyc2lvbnMgb2YgTElMTylcbiIKKyN+ICIyKSBib290aW5nIGFuZCBwYXJ0aXRpb25pbmcgc29mdHdhcmUgZnJvbSBvdGhlciBPU3NcbiIKKyN+ICIgICAoZS5nLiwgRE9TIEZESVNLLCBPUy8yIEZESVNLKVxuIgorI34gbXNnc3RyICIiCisjfiAiXG4iCisjfiAi0JrRltC70YzQutGW0YHRgtGMINGG0LjQu9GW0L3QtNGA0ZbQsiDQvdCwINC00LjRgdC60YMg0LLRgdGC0LDQvdC+0LLQu9C10L3QviDRgyAlZC5cbiIKKyN+ICLQoyDRhtGM0L7QvNGDINC90LXQvNCw0ZQg0L3RltGH0L7Qs9C+INGB0YLRgNCw0YjQvdC+0LPQviwg0LDQu9C1INGG0LUg0LHRltC70YzRiNC1INC90ZbQtiAxMDI0LFxuIgorI34gItGC0LAg0YMg0LTQtdGP0LrQuNGFINCy0LjQv9Cw0LTQutCw0YUg0LzQvtC20LUg0YHQv9GA0LjRh9C40L3QuNGC0Lgg0L/RgNC+0LHQu9C10LzQuCDQtzpcbiIKKyN+ICIxKSDQn9CXINGP0LrQtSDQstC40LrQvtC90YPRlNGC0YzRgdGPINC/0YDQuCDQt9Cw0LLQsNC90YLQsNC20LXQvdC90ZYgKNC90LDQv9GA0LjQutC70LDQtCwg0YHRgtCw0YDRliDQstC10YDRgdGW0ZcgTElMTylcbiIKKyN+ICIyKSDQt9Cw0LLQsNC90YLQsNC20LXQvdC90Y/QvCDRgtCwINC30LzRltC90L7RjiDRgNC+0LfQtNGW0LvRltCyINC3INGW0L3RiNC40YUg0L7Qv9C10YDQsNGG0ZbQudC90LjRhSDRgdC40YHRgtC10LxcbiIKKyN+ICIgICAo0L3QsNC/0YDQuNC60LvQsNC0LCBET1MgRkRJU0ssIE9TLzIgRkRJU0spXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAib3V0IGlmIG1lbW9yeSIKKyN+IG1zZ3N0ciAi0L3QtdC00L7RgdGC0LDRgtC90YzQviDQv9Cw0Lwn0Y/RgtGWIgorCisjfiBtc2dpZCAiIyBwYXJ0aXRpb24gdGFibGUgb2YgJXNcbiIKKyN+IG1zZ3N0ciAiIyDRgtCw0LHQu9C40YbRjyDRgNC+0LfQtNGW0LvRltCyINC00LjRgdC60YMgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIiCisjfiAidW5pdDogc2VjdG9yc1xuIgorI34gIlxuIgorI34gbXNnc3RyICIlbGxkINC90LXRgNC+0LfQv9C+0LTRltC70LXQvdC40YUg0YHQtdC60YLQvtGA0ZbQslxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiBzdGFydD0lOWx1IgorI34gbXNnc3RyICLQv9C+0YfQsNGC0L7QuiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIsIHNpemU9JTlsdSIKKyN+IG1zZ3N0ciAi0JzQsNC60YEu0YDQvtC30LzRltGAPSVsZFxuIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiwgYm9vdGFibGUiCisjfiBtc2dzdHIgIkFJWCBib290YWJsZSIKKworIywgZnV6enkKKyN+IG1zZ2lkICJDbG9jayBpbiBVVEMsIG5vdCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICLQntCx0L7Qu9C+0L3QutCwINC90LUg0LfQvNGW0L3QtdC90LAuXG4iCisKKyN+IG1zZ2lkICIlczogZXJyb3I6IGxhYmVsIG9ubHkgd2l0aCB2MSBzd2FwIGFyZWFcbiIKKyN+IG1zZ3N0ciAiJXM6INC/0L7QvNC40LvQutCwOiDQtdGC0LjQutC10YLQutCwINC70LjRiNC1INC3INC+0LHQu9Cw0YHRgtGOINC/0ZbQtNC60LDRh9C60LggdjFcbiIKKworI34gbXNnaWQgImZhdGFsOiBmaXJzdCBwYWdlIHVucmVhZGFibGUiCisjfiBtc2dzdHIgItGE0LDRgtCw0LvRjNC90LAg0L/QvtC80LjQu9C60LA6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQv9GA0L7Rh9C40YLQsNGC0Lgg0L/QtdGA0YjRgyDRgdGC0L7RgNGW0L3QutGDIgorCisjLCBmdXp6eQorI34gbXNnaWQgIiIKKyN+ICIlczogRGV2aWNlICclcycgY29udGFpbnMgYSB2YWxpZCBTdW4gZGlza2xhYmVsLlxuIgorI34gIlRoaXMgcHJvYmFibHkgbWVhbnMgY3JlYXRpbmcgdjAgc3dhcCB3b3VsZCBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlLlxuIgorI34gIk5vIHN3YXAgd2FzIGNyZWF0ZWQuIElmIHlvdSByZWFsbHkgd2FudCB0byBjcmVhdGUgdjAgc3dhcCBvbiB0aGF0ICIKKyN+ICJkZXZpY2UsXG4iCisjfiAidXNlIHRoZSAtZiBvcHRpb24gdG8gZm9yY2UgaXQuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczog0J/RgNC40YHRgtGA0ZbQuSAnJXMnINC80ZbRgdGC0LjRgtGMINC/0YDQsNCy0LjQu9GM0L3RgyBTdW4g0LXRgtC40LrQtdGC0LrRgyDQtNC40YHQutGDLlxuIgorI34gItCc0L7QttC70LjQstC+INGG0LUg0L7Qt9C90LDRh9Cw0ZQsINGJ0L4g0YHRgtCy0L7RgNC10L3QvdGPIHYwINC/0ZbQtNC60LDRh9C60Lgg0LfRgNGD0LnQvdGD0ZQg0YLQsNCx0LvQuNGG0Y4g0YDQvtC30LTRltC70ZbQsi5cbiIKKyN+ICLQoNC+0LfQtNGW0Lsg0L/RltC00LrQsNGH0LrQuCDQvdC1INGB0YLQstC+0YDQtdC90L4uINCv0LrRidC+INCy0Lgg0LTRltC50YHQvdC+INCx0LDQttCw0ZTRgtC1INGB0YLQstC+0YDQuNGC0Lgg0L7QsdC70LDRgdGC0YwgIgorI34gItC/0ZbQtNC60LDRh9C60LggdjBcbiIKKyN+ICLQvdCwINGG0YzQvtC80YMg0YDQvtC30LTRltC70ZYsINGC0L7QtNGWINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0L/QsNGA0LDQvNC10YLRgCAtZiDQtNC70Y8g0L/RgNC40LzRg9GB0L7QstC+0LPQviAiCisjfiAi0YHRgtCy0L7RgNC10L3QvdGPLlxuIgorCisjfiBtc2dpZCAibmFtZWk6IHVuYWJsZSB0byBnZXQgY3VycmVudCBkaXJlY3RvcnkgLSAlc1xuIgorI34gbXNnc3RyICJuYW1laTog0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0L/QvtGC0L7Rh9C90LjQuSDQutCw0YLQsNC70L7QsyAtICVzXG4iCisKKyN+IG1zZ2lkICJuYW1laTogdW5hYmxlIHRvIGNoZGlyIHRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICJuYW1laTog0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0LXRgNC10LnRgtC4INGDINC60LDRgtCw0LvQvtCzICVzIC0gJXMgKCVkKVxuIgorCisjfiBtc2dpZCAibmFtZWk6IGNvdWxkIG5vdCBjaGRpciB0byByb290IVxuIgorI34gbXNnc3RyICJuYW1laTog0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0LXRgNC10LnRgtC4INGDINC60L7RgNC10L3QtdCy0LjQuSDQutCw0YLQsNC70L7QsyFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBjb3VsZCBub3Qgc3RhdCByb290IVxuIgorI34gbXNnc3RyICJuYW1laTog0L3QtSDQstC00LDRlNGC0YzRgdGPINC+0YLRgNC40LzQsNGC0Lgg0ZbQvdGE0L7RgNC80LDRhtGW0Y4g0L/RgNC+INC60L7RgNC10L3QtdCy0LjQuSDQutCw0YLQsNC70L7QsyFcbiIKKworI34gbXNnaWQgIm5hbWVpOiBidWYgb3ZlcmZsb3dcbiIKKyN+IG1zZ3N0ciAibmFtZWk6INC/0LXRgNC10L/QvtCy0L3QtdC90L3RjyDQsdGD0YTQtdGA0LBcbiIKKworI34gbXNnaWQgIiA/IGNvdWxkIG5vdCBjaGRpciBpbnRvICVzIC0gJXMgKCVkKVxuIgorI34gbXNnc3RyICIgPyDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L/QtdGA0LXQudGC0Lgg0YMg0LrQsNGC0LDQu9C+0LMgJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgPyBwcm9ibGVtcyByZWFkaW5nIHN5bWxpbmsgJXMgLSAlcyAoJWQpXG4iCisjfiBtc2dzdHIgIiA/INC/0YDQvtCx0LvQtdC80LAg0L/RgNC4INGH0LjRgtCw0L3QvdGPINGB0LjQvNCy0L7Qu9GW0YfQvdC+0LPQviDQv9C+0YHQuNC70LDQvdC90Y8gJXMgLSAlcyAoJWQpXG4iCisKKyN+IG1zZ2lkICIgICoqKiBFWENFRURFRCBVTklYIExJTUlUIE9GIFNZTUxJTktTICoqKlxuIgorI34gbXNnc3RyICIgICoqKiDQn9CV0KDQldCS0JjQqdCV0J3QniBVTklYINCc0JXQltCjINCh0JjQnNCS0J7Qm9CG0KfQndCY0KUg0L/QvtGB0LjQu9Cw0L3RjCAqKipcbiIKKworI34gbXNnaWQgIm5hbWVpOiB1bmtub3duIGZpbGUgdHlwZSAwJTA2byBvbiBmaWxlICVzXG4iCisjfiBtc2dzdHIgIm5hbWVpOiDQvdC10LLRltC00L7QvNC40Lkg0YLQuNC/INGE0LDQudC70YMgMCUwNm8g0LTQu9GPINGE0LDQudC70YMgJXNcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJtb3VudDogZ29pbmcgdG8gbW91bnQgJXMgYnkgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6INGB0L/RgNC+0LHQsCDQv9GW0LTQutC70Y7Rh9C40YLQuCAlcyDQt9CwIFVVSURcbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJtb3VudDogbm8gTEFCRUw9LCBubyBVVUlEPSwgZ29pbmcgdG8gbW91bnQgJXMgYnkgcGF0aFxuIgorI34gbXNnc3RyICJtb3VudDog0YHQv9GA0L7QsdCwINC/0ZbQtNC60LvRjtGH0LjRgtC4ICVzINC30LAg0LXRgtC40LrQtdGC0LrQvtGOXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IGNhbm5vdCBmb3JrOiAlc1xuIgorI34gbXNnc3RyICIlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINGB0YLQstC+0YDQuNGC0Lgg0L/RgNC+0YbQtdGBXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiJXM6IHdhaXRwaWQ6ICVzXG4iCisjfiBtc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LLRltC00LrRgNC40YLQuDogJXNcbiIKKworI34gbXNnaWQgIiVzOiBjYW5ub3Qgc3RhdCAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INGB0YLQsNGC0LjRgdGC0LjQutGDICVzOiAlc1xuIgorCisjfiBtc2dpZCAiY291bGQgbm90IHVtb3VudCAlcyAtIHRyeWluZyAlcyBpbnN0ZWFkXG4iCisjfiBtc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutC70Y7Rh9C40YLQuCB1bW91bnQgJXMgLSDQvdCw0YLQvtC80ZbRgdGC0Ywg0L/RgNC+0LHRg9GU0YLRjNGB0Y8gJXNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMjBzICUtMjBzICUtMjBzICUtMjBzICUtMjBzICUtMjBzXG4iCisKKyN+IG1zZ2lkICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorI34gbXNnc3RyICIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIgorCisjfiBtc2dpZCAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKyN+IG1zZ3N0ciAiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTRzICUtMTBzICUtMTZzICUtMTZzICUtMTBzICUtMjRzICUtMjRzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjYuMjRzICUtMjYuMjRzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iCisKKyN+IG1zZ2lkICIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iCisjfiBtc2dzdHIgIiUtOHMgJS0xMHMgJS0yMHMgJS0yMHMgJS0yMHNcbiIKKworI34gbXNnaWQgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisjfiBtc2dzdHIgIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzICUtMTJzXG4iCisKKyMsIGZ1enp5CisjfiBtc2dpZCAiY2hmbjogUEFNIEZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorI34gbXNnc3RyICJsb2dpbjog0L/QvtC80LjQu9C60LAgUEFNLCDQv9C10YDQtdGA0LLQsNC90L46ICVzXG4iCisKKyN+IG1zZ2lkICJDYW4ndCByZWFkICVzLCBleGl0aW5nLiIKKyN+IG1zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0YDQvtGH0LjRgtCw0YLQuCAlcywg0LfQsNCy0LXRgNGI0LXQvdC90Y8uIgorCisjfiBtc2dpZCAibG9naW46IFBBTSBGYWlsdXJlLCBhYm9ydGluZzogJXNcbiIKKyN+IG1zZ3N0ciAibG9naW46INC/0L7QvNC40LvQutCwIFBBTSwg0L/QtdGA0LXRgNCy0LDQvdC+OiAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGJhY2tncm91bmRpbmcgXCIlc1wiXG4iCisjfiBtc2dzdHIgIm1vdW50OiDQv9GA0L7QtNC+0LLQttC10L3QvdGPINGB0L/RgNC+0LEg0YMg0YTQvtC90ZYgXCIlc1wiXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZ2l2aW5nIHVwIFwiJXNcIlxuIgorI34gbXNnc3RyICJtb3VudDog0LfQsNC70LjRiNC10L3QviDRgdC/0YDQvtCx0Lgg0L/RltC00LrQu9GO0YfQuNGC0LggXCIlc1wiXG4iCisKKyN+IG1zZ2lkICJgJXMnOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKKyN+IG1zZ3N0ciAiYCVzJzog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC60LDRgtCw0LvQvtCzOiDQtdC70LXQvNC10L3RgiAnLicg0L3QtSDQv9C10YDRiNC40LlcbiIKKworI34gbXNnaWQgImAlcyc6IGJhZCBkaXJlY3Rvcnk6ICcuLicgaXNuJ3Qgc2Vjb25kXG4iCisjfiBtc2dzdHIgImAlcyc6INC90LXQv9GA0LDQstC40LvRjNC90LjQuSDQutCw0YLQsNC70L7Qszog0LXQu9C10LzQtdC90YIgJy4uJyDQvdC1INC00YDRg9Cz0LjQuVxuIgorCisjfiBtc2dpZCAiY2FsbGluZyBvcGVuX3R0eVxuIgorI34gbXNnc3RyICLQstC40LrQu9C40LrQsNGU0YLRjNGB0Y8gb3Blbl90dHlcbiIKKworI34gbXNnaWQgImNhbGxpbmcgdGVybWlvX2luaXRcbiIKKyN+IG1zZ3N0ciAi0LLQuNC60LvQuNC60LDRlNGC0YzRgdGPIHRlcm1pb19pbml0XG4iCisKKyN+IG1zZ2lkICJ3cml0aW5nIGluaXQgc3RyaW5nXG4iCisjfiBtc2dzdHIgItC30LDQv9C40YHRg9GU0YLRjNGB0Y8g0YDRj9C00L7QuiDRltC90ZbRhtGW0LDQu9GW0LfQsNGG0ZbRl1xuIgorCisjfiBtc2dpZCAiYmVmb3JlIGF1dG9iYXVkXG4iCisjfiBtc2dzdHIgItC/0LXRgNC10LQgYXV0b19iYXVkXG4iCisKKyN+IG1zZ2lkICJ3YWl0aW5nIGZvciBjci1sZlxuIgorI34gbXNnc3RyICLQv9C+0YjRg9C6INGB0LjQvNCy0L7Qu9GDINC90L7QstC+0LPQviDRgNGP0LTQutCwXG4iCisKKyN+IG1zZ2lkICJyZWFkaW5nIGxvZ2luIG5hbWVcbiIKKyN+IG1zZ3N0ciAi0YfQuNGC0LDRlNGC0YzRgdGPINGA0LXRlNGB0YLRgNCw0YbRltC50L3QtSDRltC8J9GPXG4iCisKKyN+IG1zZ2lkICJhZnRlciBnZXRvcHQgbG9vcFxuIgorI34gbXNnc3RyICLQv9GW0YHQu9GPIGdldG9wdCDRhtC40LrQu9GDXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlYXJnc1xuIgorI34gbXNnc3RyICLQt9Cw0LLQtdGA0YjRg9GU0YLRjNGB0Y8g0YTRg9C90LrRhtGW0Y8gcGFyc2VfYXJnc1xuIgorCisjfiBtc2dpZCAiZW50ZXJlZCBwYXJzZV9zcGVlZHNcbiIKKyN+IG1zZ3N0ciAi0L/QvtGH0LDRgtC+0Log0YTRg9C90LrRhtGW0ZcgcGFyc2Vfc3BlZWRzXG4iCisKKyN+IG1zZ2lkICJleGl0aW5nIHBhcnNlc3BlZWRzXG4iCisjfiBtc2dzdHIgItC30LDQstC10YDRiNGD0ZTRgtGM0YHRjyDRhNGD0L3QutGG0ZbRjyBwYXJzZV9zcGVlZHNcbiIKKworI34gbXNnaWQgIm9wZW4oMilcbiIKKyN+IG1zZ3N0ciAib3BlbigyKVxuIgorCisjfiBtc2dpZCAiZHVwaW5nXG4iCisjfiBtc2dzdHIgItCy0LjQutC70LjQuiBkdXAoKVxuIgorCisjfiBtc2dpZCAidGVybV9pbyAyXG4iCisjfiBtc2dzdHIgInRlcm1faW8gMlxuIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgZXJyb3IuIgorI34gbXNnc3RyICLQn9C+0LzQuNC70LrQsCDQv9Cw0YDQvtC70Y4uIgorCisjfiBtc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHNcbiIKKyN+IG1zZ3N0ciAi0J/QvtC/0LXRgNC10LTQttC10L3QvdGPOiBcIiVzXCIg0L3QtSDQt9GWINGB0L/QuNGB0LrRgyAvZXRjL3NoZWxsc1xuIgorCisjfiBtc2dpZCAidGltZW91dCA9ICVkLCBxdWlldCA9ICVkLCByZWJvb3QgPSAlZFxuIgorI34gbXNnc3RyICJ0aW1lb3V0ID0gJWQsIHF1aWV0ID0gJWQsIHJlYm9vdCA9ICVkXG4iCisKKyN+IG1zZ2lkICJjb3VsZG4ndCByZWFkICVzLCBhbmQgY2Fubm90IGlvY3RsIGR1bXBcbiIKKyN+IG1zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0YDQvtGH0LjRgtCw0YLQuCAlcywg0LDQsdC+INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LrQvtC90LDRgtC4IGlvY3RsINC00LDQvNC/0YNcbiIKKworI34gbXNnaWQgIiwgb2Zmc2V0ICVsbGQiCisjfiBtc2dzdHIgIiwg0LfRgdGD0LIgJWxsZCIKKworI34gbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZGV2aWNlIC9kZXYvbG9vcCMiCisjfiBtc2dzdHIgIiVzOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0LfQvdCw0LnRgtC4INC20L7QtNC90LjQuSDQv9GA0LjRgdGC0YDRltC5IC9kZXYvbG9vcCMiCisKKyN+IG1zZ2lkICIiCisjfiAidXNhZ2U6ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstZV0gWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIFstcCBwcmlvcml0eV0gc3BlY2lhbHxMQUJFTD12b2x1bWVfbmFtZSAuLi5cbiIKKyN+ICIgICAgICAgJXMgWy1zXVxuIgorI34gbXNnc3RyICIiCisjfiAi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiAlcyBbLWhWXVxuIgorI34gIiAgICAgICAlcyAtYSBbLWVdIFstdl1cbiIKKyN+ICIgICAgICAgJXMgWy12XSBbLXAg0L/RgNGW0L7RgNC40YLQtdGCXSDRgdC/0LXRhtGE0LDQudC7fExBQkVMPdC90LDQt9Cy0LBf0YLQvtC80YMgLi4uXG4iCisjfiAiICAgICAgICVzIFstc11cbiIKKworI34gbXNnaWQgIiIKKyN+ICJ1c2FnZTogJXMgWy1oVl1cbiIKKyN+ICIgICAgICAgJXMgLWEgWy12XVxuIgorI34gIiAgICAgICAlcyBbLXZdIHNwZWNpYWwgLi4uXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLQstC40LrQvtGA0LjRgdGC0LDQvdC90Y86ICVzIFstaFZdXG4iCisjfiAiICAgICAgICVzIC1hIFstdl1cbiIKKyN+ICIgICAgICAgJXMgWy12XSDRgdC/0LXRhl/RhNCw0LnQuyAuLi5cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICIlczogY2Fubm90IGNhbm9uaWNhbGl6ZSAlczogJXNcbiIKKyN+IG1zZ3N0ciAiJXM6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4ICVzOiAlc1xuIgorCisjfiBtc2dpZCAiIgorI34gInVzYWdlOiByZW5pY2UgcHJpb3JpdHkgWyBbIC1wIF0gcGlkcyBdIFsgWyAtZyBdIHBncnBzIF0gWyBbIC11IF0gdXNlcnMgXVxuIgorI34gbXNnc3RyICIiCisjfiAi0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiByZW5pY2Ug0L/RgNGW0L7RgNC40YLQtdGCIFsgWyAtcCBdIHBpZHMgXSBbIFsgLWcgXSBwZ3JwcyBdIFsgWyAtdSBdICIKKyN+ICLQutC+0YDQuNGB0YLRg9Cy0LDRh9GWIF1cbiIKKworIywgZnV6enkKKyN+IG1zZ2lkICJVbmtub3duIG9wdGlvbiBgJWMnIGlnbm9yZWQiCisjfiBtc2dzdHIgIiVzOiDQvdC10LLRltC00L7QvNC40Lkg0L/QsNGA0LDQvNC10YLRgCBcIi0lY1wiXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRXhjZWVkZWQgTUFYRU5UUklFUy4gIFJhaXNlIHRoaXMgdmFsdWUgaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgIgorI34gIkV4aXRpbmcuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLQn9C10YDQtdCy0LjRidC10L3QviBNQVhFTlRSSUVTLiDQl9Cx0ZbQu9GM0YjRgtC1INGG0LUg0LfQvdCw0YfQtdC90L3RjyDRgyBta2NyYW1mcy5jINGC0LAgIgorI34gItC/0LXRgNC10LrQvtC80L/RltC70Y7QudGC0LUuXG4iCisjfiAi0JfQsNCy0LXRgNGI0LXQvdC90Y8uXG4iCisKKyN+IG1zZ2lkICJBc3N1bWluZyBwYWdlcyBvZiBzaXplICVkIChub3QgJWQpXG4iCisjfiBtc2dzdHIgItCf0LXRgNC10LTQsdCw0YfQsNGU0YLRjNGB0Y8g0YDQvtC30LzRltGAINGB0YLQvtGA0ZbQvdC60LggJWQgKNCwINC90LUgJWQpXG4iCisKKyN+IG1zZ2lkICJBdXRvY29uZmlndXJlIGZvdW5kIGEgJXMlcyVzXG4iCisjfiBtc2dzdHIgItCQ0LLRgtC+0LzQsNGC0LjRh9C90LUg0LLQuNC30L3QsNGH0LXQvdC90Y8g0LfQvdCw0LnRiNC70L4gJXMlcyVzXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiRHJpdmUgdHlwZVxuIgorI34gIiAgID8gICBhdXRvIGNvbmZpZ3VyZVxuIgorI34gIiAgIDAgICBjdXN0b20gKHdpdGggaGFyZHdhcmUgZGV0ZWN0ZWQgZGVmYXVsdHMpIgorI34gbXNnc3RyICIiCisjfiAi0KLQuNC/INC/0YDQuNGB0YLRgNC+0Y5cbiIKKyN+ICIgICA/ICAg0LDQstGC0L4g0LrQvtC90YTRltCz0YPRgNCw0YbRltGPXG4iCisjfiAiICAgMCAgINCy0LvQsNGB0L3QuNC5ICjQtyDQsNCy0YLQvtC80LDRgtC40YfQvdC+INC30L3QsNC50LTQtdC90LjQvNC4INGC0LjQv9C+0LLQuNC80Lgg0LfQvdCw0YfQtdC90L3Rj9C80LgpIgorCisjfiBtc2dpZCAiU2VsZWN0IHR5cGUgKD8gZm9yIGF1dG8sIDAgZm9yIGN1c3RvbSk6ICIKKyN+IG1zZ3N0ciAi0JLQuNCx0LXRgNGW0YLRjCDRgtC40L8gKD8g0LDQstGC0L7QvNCw0YLQuNGH0L3QviwgMCDQstC70LDRgdC90LjQuSk6ICIKKworI34gbXNnaWQgIkF1dG9jb25maWd1cmUgZmFpbGVkLlxuIgorI34gbXNnc3RyICLQn9C+0LzQuNC70LrQsCDQv9GA0Lgg0LDQstGC0L7QvNCw0YLQuNGH0L3QvtC80YMg0LLQuNC30L3QsNGH0LXQvdC90ZYuXG4iCisKKyN+IG1zZ2lkICJBbHRlcm5hdGUgY3lsaW5kZXJzIgorI34gbXNnc3RyICLQl9Cw0L/QsNGB0L3RliDRhtC40LvRltC90LTRgNC4IgorCisjfiBtc2dpZCAiUGh5c2ljYWwgY3lsaW5kZXJzIgorI34gbXNnc3RyICLQpNGW0LfQuNGH0L3RliDRgdC10LrRgtC+0YDQuCIKKworI34gbXNnaWQgIllvdSBtYXkgY2hhbmdlIGFsbCB0aGUgZGlzayBwYXJhbXMgZnJvbSB0aGUgeCBtZW51IgorI34gbXNnc3RyICLQktC4INC80L7QttC10YLQtSDQt9C80ZbQvdC40YLQuCDQstGB0ZYg0L/QsNGA0LDQvNC10YLRgNC4INC00LjRgdC60YMg0Lcg0LzQtdC90Y4geCIKKworI34gbXNnaWQgIjMsNVwiIGZsb3BweSIKKyN+IG1zZ3N0ciAiMyw1XCIg0LTQuNGB0LrQtdGC0LAiCisKKyN+IG1zZ2lkICJMaW51eCBjdXN0b20iCisjfiBtc2dzdHIgIkxpbnV4IGN1c3RvbSIKKworI34gbXNnaWQgIiVzIGZyb20gdXRpbC1saW51eC0lc1xuIgorI34gbXNnc3RyICIlcyDQtyB1dGlsLWxpbnV4LSVzXG4iCisKKyN+IG1zZ2lkICIlcyBmcm9tICVzJXNcbiIKKyN+IG1zZ3N0ciAiJXMg0LLRltC0ICVzJXNcbiIKKworI34gbXNnaWQgIiVzOiBlcnJvcjogdGhlIGxhYmVsICVzIG9jY3VycyBvbiBib3RoICVzIGFuZCAlc1xuIgorI34gbXNnc3RyICIlczog0LXRgtC40LrQtdGC0LrQsCAlcyDQt9GD0YHRgtGA0ZbRh9Cw0ZTRgtGM0YHRjyDRj9C6INGDICVzLCDRgtCw0Log0ZYg0YMgJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICIlczogY291bGQgbm90IG9wZW4gJXMsIHNvIFVVSUQgYW5kIExBQkVMIGNvbnZlcnNpb24gY2Fubm90IGJlIGRvbmUuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIlczog0L3QtSDQstC00LDRlNGC0YzRgdGPINCy0ZbQtNC60YDQuNGC0LggJXMsINGC0L7QvNGDINC60L7QvdCy0LXRgNGC0LDRhtGW0Y8gVVVJRCDRgtCwIExBQkVMINC90LXQvNC+0LbQu9C40LLQsC5cbiIKKworI34gbXNnaWQgIiVzOiBiYWQgVVVJRCIKKyN+IG1zZ3N0ciAiJXM6INC90LXQv9GA0LDQstC40LvRjNC90LjQuSBVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IGZhaWxlZCB3aXRoIG5mcyBtb3VudCB2ZXJzaW9uIDQsIHRyeWluZyAzLi5cbiIKKyN+IG1zZ3N0ciAibW91bnQ6INC/0L7QvNC40LvQutCwINC/0ZbQtNC60LvRjtGH0LXQvdC90Y8gbmZzINCy0LXRgNGB0ZbRlyA0LCDQv9GA0L7QsdGD0ZTRgtGM0YHRjyAzLi5cbiIKKworI34gbXNnaWQgIm1vdW50OiBtb3VudGluZyAlc1xuIgorI34gbXNnc3RyICJtb3VudDog0L/RltC00LrQu9GO0YfQtdC90L3RjyAlc1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGNhbm5vdCBmaW5kICVzIGluICVzIgorI34gbXNnc3RyICJtb3VudDog0L3QtSDQstC00LDRlNGC0YzRgdGPINC30L3QsNC50YLQuCAlcyDRgyAlcyIKKworI34gbXNnaWQgIm1vdW50OiBlcnJvciB3aGlsZSBndWVzc2luZyBmaWxlc3lzdGVtIHR5cGVcbiIKKyN+IG1zZ3N0ciAibW91bnQ6INC/0L7QvNC40LvQutCwINC/0YDQuCDQsNCy0YLQvtC80LDRgtC40YfQvdC+0LzRgyDQstC40LfQvdCw0YfQtdC90L3RliDRgtC40L/RgyDRhNCw0LnQu9C+0LLQvtGXINGB0LjRgdGC0LXQvNC4XG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBob3N0OmRpciBhcmd1bWVudFxuIgorI34gbXNnc3RyICJtb3VudDog0L3QsNC00LzRltGA0L3QsCDQtNC+0LLQttC40L3QsCDQsNGA0LPRg9C80LXQvdGC0YMg0LLRg9C30L7QuzrQutCw0YLQsNC70L7Qs1xuIgorCisjfiBtc2dpZCAibW91bnQ6IHdhcm5pbmc6IG11bHRpcGxlIGhvc3RuYW1lcyBub3Qgc3VwcG9ydGVkXG4iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDog0L/QvtC/0LXRgNC10LTQttC10L3QvdGPOiDQstC60LDQt9GD0LLQsNC90L3RjyDQutGW0LvRjNC60L7RhSDQvdCw0LfQsiDQstGD0LfQu9GW0LIg0L3QtSDQv9GW0LTRgtGA0LjQvNGD0ZTRgtGM0YHRj1xuIgorCisjfiBtc2dpZCAibW91bnQ6IGRpcmVjdG9yeSB0byBtb3VudCBub3QgaW4gaG9zdDpkaXIgZm9ybWF0XG4iCisjfiBtc2dzdHIgIm1vdW50OiDQutCw0YLQsNC70L7QsyDQtNC70Y8g0L/RltC00LrQu9GO0YfQtdC90L3RjyDQvdC1INGDINGE0L7RgNC80LDRgtGWINCy0YPQt9C+0Ls60LrQsNGC0LDQu9C+0LNcbiIKKworI34gbXNnaWQgIm1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAibW91bnQ6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvtGC0YDQuNC80LDRgtC4INCw0LTRgNC10YHRgyDQtNC70Y8gJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb3QgYmFkIGhwLT5oX2xlbmd0aFxuIgorI34gbXNnc3RyICJtb3VudDog0L7RgtGA0LjQvNCw0L3QviDQvdC10L/RgNCw0LLQuNC70YzQvdC40LkgaHAtPmhfbGVuZ3RoXG4iCisKKyN+IG1zZ2lkICJtb3VudDogZXhjZXNzaXZlbHkgbG9uZyBvcHRpb24gYXJndW1lbnRcbiIKKyN+IG1zZ3N0ciAibW91bnQ6INC90LDQtNC80ZbRgNC90L4g0LTQvtCy0LPQuNC5INC/0LDRgNCw0LzQtdGC0YBcbiIKKworI34gbXNnaWQgIldhcm5pbmc6IFVucmVjb2duaXplZCBwcm90bz0gb3B0aW9uLlxuIgorI34gbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INCd0LXRgNC+0LfQv9GW0LfQvdCw0L3QuNC5INC/0LDRgNCw0LzQtdGC0YAgcHJvdG89LlxuIgorCisjfiBtc2dpZCAiV2FybmluZzogT3B0aW9uIG5hbWxlbiBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC/0LDRgNCw0LzQtdGC0YAgbmFtbGVuINC90LUg0L/RltC00YLRgNC40LzRg9GU0YLRjNGB0Y8uXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBtb3VudCBwYXJhbWV0ZXI6ICVzPSVkXG4iCisjfiBtc2dzdHIgItC90LXQstGW0LTQvtC80LjQuSDQv9Cw0YDQsNC80LXRgtGAINC/0ZbQtNC60LvRjtGH0LXQvdC90Y8gbmZzOiAlcz0lZFxuIgorCisjfiBtc2dpZCAiV2FybmluZzogb3B0aW9uIG5vbG9jayBpcyBub3Qgc3VwcG9ydGVkLlxuIgorI34gbXNnc3RyICLQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y86INC/0LDRgNCw0LzQtdGC0YAgbm9sb2NrINC90LUg0L/RltC00YLRgNC40LzRg9GU0YLRjNGB0Y8uXG4iCisKKyN+IG1zZ2lkICJ1bmtub3duIG5mcyBtb3VudCBvcHRpb246ICVzJXNcbiIKKyN+IG1zZ3N0ciAi0L3QtdCy0ZbQtNC+0LzQuNC5INC/0LDRgNCw0LzQtdGC0YAg0L/RltC00LrQu9GO0YfQtdC90L3RjyBuZnM6ICVzJXNcbiIKKworI34gbXNnaWQgIm1vdW50OiBnb3QgYmFkIGhwLT5oX2xlbmd0aD9cbiIKKyN+IG1zZ3N0ciAibW91bnQ6INC+0YLRgNC40LzQsNC90L4g0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5IGhwLT5oX2xlbmd0aD9cbiIKKworI34gbXNnaWQgIm5mcyBiaW5kcmVzdnBvcnQiCisjfiBtc2dzdHIgIm5mcyBiaW5kcmVzdnBvcnQiCisKKyN+IG1zZ2lkICJuZnMgc2VydmVyIHJlcG9ydGVkIHNlcnZpY2UgdW5hdmFpbGFibGUiCisjfiBtc2dzdHIgIm5mcyDRgdC10YDQstC10YAg0L/QvtCy0ZbQtNC+0LzQuNCyLCDRidC+INGB0LvRg9C20LHQsCDQvdC10LTQvtGB0YLRg9C/0L3QsCIKKworI34gbXNnaWQgInVzZWQgcG9ydG1hcHBlciB0byBmaW5kIE5GUyBwb3J0XG4iCisjfiBtc2dzdHIgItCy0LjQutC+0YDQuNGB0YLQsNC90L4gcG9ydG1hcHBlciwg0YnQvtCxINC30L3QsNC50YLQuCBORlMg0L/QvtGA0YJcbiIKKworI34gbXNnaWQgInVzaW5nIHBvcnQgJWQgZm9yIG5mcyBkZWFtb25cbiIKKyN+IG1zZ3N0ciAi0LLQuNC60L7RgNC40YHRgtC+0LLRg9GU0YLRjNGB0Y8g0L/QvtGA0YIgJWQg0YHQu9GD0LbQsdC4IG5mc1xuIgorCisjfiBtc2dpZCAidW5rbm93biBuZnMgc3RhdHVzIHJldHVybiB2YWx1ZTogJWQiCisjfiBtc2dzdHIgItC/0L7QstC10YDQvdC10L3QuNC5INC90LXQstGW0LTQvtC80LjQuSDQutC+0LQg0YHRgtCw0L3RgyBuZnM6ICVkIgorCisjfiBtc2dpZCAiaG9zdDogJXMsIGRpcmVjdG9yeTogJXNcbiIKKyN+IG1zZ3N0ciAi0LLRg9C30L7QuzogJXMsINC60LDRgtCw0LvQvtCzOiAlc1xuIgorCisjfiBtc2dpZCAidW1vdW50OiBjYW4ndCBnZXQgYWRkcmVzcyBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAidW1vdW50OiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L7RgtGA0LjQvNCw0YLQuCDQsNC00YDQtdGB0YMg0LTQu9GPICVzXG4iCisKKyN+IG1zZ2lkICJ1bW91bnQ6IGdvdCBiYWQgaG9zdHAtPmhfbGVuZ3RoXG4iCisjfiBtc2dzdHIgInVtb3VudDog0L7RgtGA0LjQvNCw0L3QviDQvdC10L/RgNCw0LLQuNC70YzQvdC40LkgaG9zdHAtPmhfbGVuZ3RoXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLWJhZCBwYXRoIGxlbmd0aFxuIgorI34gbXNnc3RyICIlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5IGNyYW1mcyAtINC/0L7QvNC40LvQutC+0LLQsCDQtNC+0LLQttC40L3QsCDRiNC70Y/RhdGDXG4iCisKKyN+IG1zZ2lkICIlczogaW52YWxpZCBjcmFtZnMtLXdyb25nIG1hZ2ljXG4iCisjfiBtc2dzdHIgIiVzOiDQvdC10L/RgNCw0LLQuNC70YzQvdC40LkgY3JhbWZzIC0g0L3QtdC/0YDQsNCy0LjQu9GM0L3QsCDRgdC40LPQvdCw0YLRg9GA0LBcbiIKKworI34gbXNnaWQgIiVzOiB3YXJuaW5nLS1maWxlIGxlbmd0aCB0b28gbG9uZywgcGFkZGVkIGltYWdlP1xuIgorI34gbXNnc3RyICIlczog0L/QvtC/0LXRgNC10LTQttC10L3QvdGPIC0g0LTQvtCy0LbQuNC90LAg0YTQsNC50LvRgyDQvdCw0LTRgtC+INCy0LXQu9C40LrQsCwg0LTQvtC/0L7QstC90LXQvdC40Lkg0L7QsdGA0LDQtz9cbiIKKworI34gbXNnaWQgIiVzOiBpbnZhbGlkIGNyYW1mcy0tY3JjIGVycm9yXG4iCisjfiBtc2dzdHIgIiVzOiDQvdC10L/RgNCw0LLQuNC70YzQvdC40LkgY3JhbWZzIC0g0L/QvtC80LjQu9C60LAg0LrQvtC90YLRgNC+0LvRjNC90L7RlyDRgdGD0LzQuFxuIgorCisjfiBtc2dpZCAiJXM6IGludmFsaWQgY3JhbWZzLS1iYWQgc3VwZXJibG9ja1xuIgorI34gbXNnc3RyICIlczog0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5IGNyYW1mcyAtINC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRgdGD0L/QtdGA0LHQu9C+0LpcbiIKKworI34gbXNnaWQgIiVzOiBub3QgY29tcGlsZWQgd2l0aCBtaW5peCB2MiBzdXBwb3J0XG4iCisjfiBtc2dzdHIgIiVzOiDRgdC60L7QvNC/0ZbQu9GM0L7QstCw0L3QviDQsdC10Lcg0L/RltC00YLRgNC40LzQutC4IG1pbml4IHYyXG4iCisKKyN+IG1zZ2lkICJTeW50YXggZXJyb3I6ICclcydcbiIKKyN+IG1zZ3N0ciAi0KHQuNC90YLQsNC60YHQuNGH0L3QsCDQv9C+0LzQuNC70LrQsDogJyVzJ1xuIgorCisjfiBtc2dpZCAiTm8gc3VjaCBwYXJhbWV0ZXIgc2V0OiAnJXMnXG4iCisjfiBtc2dzdHIgItCd0LXQvNCw0ZQg0YLQsNC60L7Qs9C+INC90LDQsdC+0YDRgyDQv9Cw0YDQsNC80LXRgtGA0ZbQsjogJyVzJ1xuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtcCBdIGRldiBuYW1lXG4iCisjfiBtc2dzdHIgIiAgICVzIFsgLXAgXSDQv9GA0LjRgdGC0YDRltC5INC90LDQt9Cy0LBcbiIKKworI34gbXNnaWQgIiIKKyN+ICIgICAlcyBbIC1wIF0gZGV2IHNpemUgc2VjdCBoZWFkcyB0cmFja3Mgc3RyZXRjaCBnYXAgcmF0ZSBzcGVjMSBmbXRfZ2FwXG4iCisjfiBtc2dzdHIgIiIKKyN+ICIgICAlcyBbIC1wIF0g0L/RgNC40YHRgtGA0ZbQuSDRgNC+0LfQvNGW0YAg0YHQtdC60YIg0LPQvtC70L7QstC+0Log0LTQvtGA0ZbQttC+0Logc3RyZXRjaCBnYXAgcmF0ZSBzcGVjMSAiCisjfiAiZm10X2dhcFxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gfCAtZCBdIGRldlxuIgorI34gbXNnc3RyICIgICAlcyBbIC1jIHwgLXkgfCAtbiB8IC1kIF0g0L/RgNC40YHRgtGA0ZbQuVxuIgorCisjfiBtc2dpZCAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSBkZXZcbiIKKyN+IG1zZ3N0ciAiICAgJXMgWyAtYyB8IC15IHwgLW4gXSDQv9GA0LjRgdGC0YDRltC5XG4iCisKKyN+IG1zZ2lkICJXYXJuaW5nOiBkZWxldGluZyBwYXJ0aXRpb25zIGFmdGVyICVkXG4iCisjfiBtc2dzdHIgItCf0L7Qv9C10YDQtdC00LbQtdC90L3Rjzog0LLQuNC00LDQu9C10L3QvdGPINGA0L7Qt9C00ZbQu9GW0LIg0L/RltGB0LvRjyAlZFxuIgorCisjfiBtc2dpZCAidmVyc2lvbiIKKyN+IG1zZ3N0ciAi0LLQtdGA0YHRltGPIgorCisjfiBtc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgZm9yICVzXG4iCisjfiBtc2dzdHIgItC/0L7QvNC40LvQutCwINGDINGB0LjRgdGC0LXQvNC90L7QvNGDINCy0LjQutC70LjQutGDIEJMS0dFVFNJWkUg0L3QsCAlc1xuIgorCisjfiBtc2dpZCAiY291bGRuJ3Qgb3BlbiAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4IC9kZXYvdXJhbmRvbSIKKworI34gbXNnaWQgImNvdWxkbid0IHJlYWQgcmFuZG9tIGRhdGEgZnJvbSAvZGV2L3VyYW5kb20iCisjfiBtc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQv9GA0L7Rh9C40YLQsNGC0Lgg0LTQsNC90ZYg0LcgL2Rldi91cmFuZG9tIgorCisjfiBtc2dpZCAiY2FuJ3Qgc3RhdCglcykiCisjfiBtc2dzdHIgItC/0L7QvNC40LvQutCwINC/0YDQuCBzdGF0KCVzKSIKKworI34gbXNnaWQgIiVzIGRvZXNuJ3QgaGF2ZSB0aGUgY29ycmVjdCBmaWxlbW9kZXMiCisjfiBtc2dzdHIgIiVzINC90LUg0LzQsNGUINC/0YDQsNCy0LjQu9GM0L3QuNGFINC/0YDQsNCyINGE0LDQudC70YMiCisKKyN+IG1zZ2lkICJjYW4ndCByZWFkIGRhdGEgZnJvbSAlcyIKKyN+IG1zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC/0YDQvtGH0LjRgtCw0YLQuCDQtNCw0L3RliDQtyAlcyIKKworI34gbXNnaWQgIiIKKyN+ICJUb28gbWFueSB1c2VycyBsb2dnZWQgb24gYWxyZWFkeS5cbiIKKyN+ICJUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgIiIKKyN+ICLQndCw0YDQsNC30ZYg0YMg0YHQuNGB0YLQtdC80ZYg0L3QsNC00YLQviDQsdCw0LPQsNGC0L4g0LrQvtGA0LjRgdGC0YPQstCw0YfRltCyLlxuIgorI34gItCh0L/RgNC+0LHRg9C50YLQtSDQv9GW0LfQvdGW0YjQtS5cbiIKKworI34gbXNnaWQgIllvdSBoYXZlIHRvbyBtYW55IHByb2Nlc3NlcyBydW5uaW5nLlxuIgorI34gbXNnc3RyICLQktC4INC30LDQv9GD0YHRgtC40LvQuCDQvdCw0LTRgtC+INCx0LDQs9Cw0YLQviDQv9GA0L7RhtC10YHRltCyLlxuIgorCisjfiBtc2dpZCAiVGhlIHBhc3N3b3JkIG11c3QgaGF2ZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMsIHRyeSBhZ2Fpbi5cbiIKKyN+IG1zZ3N0ciAiIgorI34gItCf0LDRgNC+0LvRjCDQv9C+0LLQuNC90LXQvSDRgdC60LvQsNC00LDRgtC40YHRjyDQv9GA0LjQvdCw0LnQvNC90ZYg0LcgNiDRgdC40LzQstC+0LvRltCyLCDRgdC/0YDQvtCx0YPQudGC0LUg0YnQtSDRgNCw0LcuXG4iCisKKyN+IG1zZ2lkICIiCisjfiAiVGhlIHBhc3N3b3JkIG11c3QgY29udGFpbiBjaGFyYWN0ZXJzIG91dCBvZiB0d28gb2YgdGhlIGZvbGxvd2luZ1xuIgorI34gImNsYXNzZXM6ICB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLCBkaWdpdHMgYW5kIG5vbiBhbHBoYW51bWVyaWNcbiIKKyN+ICJjaGFyYWN0ZXJzLiBTZWUgcGFzc3dkKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorI34gbXNnc3RyICIiCisjfiAi0J/QsNGA0L7Qu9GMINC/0L7QstC40L3QtdC9INC80ZbRgdGC0LjRgtC4INGB0LjQvNCy0L7Qu9C4INC00LLQvtGFINC90LDRgdGC0YPQv9C90LjRhSDQs9GA0YPQvyDQutCw0YLQtdCz0L7RgNGW0Lk6XG4iCisjfiAi0LvRltGC0LXRgNC4INGDINCy0LXRgNGF0L3RjNC+0LzRgyDRgtCwINC90LjQttC90YzQvtC80YMg0YDQtdCz0ZbRgdGC0YDRliwg0YbQuNGE0YDQuCDRgtCwINC90LUg0LDQu9GE0LDQstGW0YLQvdC+LdGG0LjRhNGA0L7QstGWXG4iCisjfiAi0YHQuNC80LLQvtC70LguINCU0L7QtNCw0YLQutC+0LLRgyDRltC90YTQvtGA0LzQsNGG0ZbRjiDQtNC40LLRltGC0YzRgdGPINGDIHBhc3N3ZCgxKS5cbiIKKworI34gbXNnaWQgIllvdSBjYW5ub3QgcmV1c2UgdGhlIG9sZCBwYXNzd29yZC5cbiIKKyN+IG1zZ3N0ciAi0J3QtSDQvNC+0LbQvdCwINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuCDRgdCy0ZbQuSDRgdGC0LDRgNC40Lkg0L/QsNGA0L7Qu9GMLlxuIgorCisjfiBtc2dpZCAiUGxlYXNlIGRvbid0IHVzZSBzb21ldGhpbmcgbGlrZSB5b3VyIHVzZXJuYW1lIGFzIHBhc3N3b3JkIVxuIgorI34gbXNnc3RyICLQndC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0LLQsNGI0LUg0ZbQvCfRjyDRgyDRj9C60L7RgdGC0ZYg0L/QsNGA0L7Qu9GOIVxuIgorCisjfiBtc2dpZCAiUGxlYXNlIGRvbid0IHVzZSBzb21ldGhpbmcgbGlrZSB5b3VyIHJlYWxuYW1lIGFzIHBhc3N3b3JkIVxuIgorI34gbXNnc3RyICLQndC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0LLQsNGI0LUg0YHQv9GA0LDQstC20L3RlCDRltC8J9GPINGDINGP0LrQvtGB0YLRliDQv9Cw0YDQvtC70Y4hXG4iCisKKyN+IG1zZ2lkICJVc2FnZTogcGFzc3dkIFt1c2VybmFtZSBbcGFzc3dvcmRdXVxuIgorI34gbXNnc3RyICLQktC40LrQvtGA0LjRgdGC0LDQvdC90Y86IHBhc3N3ZCBb0ZbQvCfRj1/QutC+0YDQuNGB0YLRg9Cy0LDRh9CwIFvQv9Cw0YDQvtC70YxdXVxuIgorCisjfiBtc2dpZCAiT25seSByb290IG1heSB1c2UgdGhlIG9uZSBhbmQgdHdvIGFyZ3VtZW50IGZvcm1zLlxuIgorI34gbXNnc3RyICIiCisjfiAi0JvQuNGI0LUg0LDQtNC80ZbQvdGW0YHRgtGA0LDRgtC+0YAg0LzQvtC20LUg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INCy0LDRgNGW0LDQvdGCINC3INC+0LTQvdC40Lwg0YfQuCDQtNCy0L7QvNCwICIKKyN+ICLQv9Cw0YDQsNC80LXRgtGA0LDQvNC4LlxuIgorCisjfiBtc2dpZCAiVXNhZ2U6IHBhc3N3ZCBbLWZvcXN2Vl0gW3VzZXIgW3Bhc3N3b3JkXV1cbiIKKyN+IG1zZ3N0ciAi0JLQuNC60L7RgNC40YHRgtCw0L3QvdGPOiBwYXNzd2QgWy1mb3FzdlZdIFvQutC+0YDQuNGB0YLRg9Cy0LDRhyBb0L/QsNGA0L7Qu9GMXV1cbiIKKworI34gbXNnaWQgIkNhbid0IGV4ZWMgJXM6ICVzXG4iCisjfiBtc2dzdHIgItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstC40LrQvtC90LDRgtC4ICVzOiAlc1xuIgorCisjfiBtc2dpZCAiQ2Fubm90IGZpbmQgbG9naW4gbmFtZSIKKyN+IG1zZ3N0ciAi0L3QtSDQstC00LDRlNGC0YzRgdGPINC30L3QsNC50YLQuCDRgNC10ZTRgdGC0YDQsNGG0ZbQudC90LUg0ZbQvCfRjyIKKworI34gbXNnaWQgIk9ubHkgcm9vdCBjYW4gY2hhbmdlIHRoZSBwYXNzd29yZCBmb3Igb3RoZXJzLlxuIgorI34gbXNnc3RyICLQm9C40YjQtSDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgCDQvNC+0LbQtSDQt9C80ZbQvdGO0LLQsNGC0Lgg0L/QsNGA0L7Qu9GMINGW0L3RiNC40YUg0LrQvtGA0LjRgdGC0YPQstCw0YfRltCyLlxuIgorCisjfiBtc2dpZCAiQ2FuJ3QgZmluZCB1c2VybmFtZSBhbnl3aGVyZS4gSXMgYCVzJyByZWFsbHkgYSB1c2VyPyIKKyN+IG1zZ3N0ciAiIgorI34gItC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQvdGW0LTQtSDQt9C90LDQudGC0Lgg0ZbQvCfRjyDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwLiDQp9C4IGAlcycg0YHQv9GA0LDQstC00ZYg0ZbQvCfRjyAiCisjfiAi0LrQvtGA0LjRgdGC0YPQstCw0YfQsD8iCisKKyN+IG1zZ2lkICJTb3JyeSwgSSBjYW4gb25seSBjaGFuZ2UgbG9jYWwgcGFzc3dvcmRzLiBVc2UgeXBwYXNzd2QgaW5zdGVhZC4iCisjfiBtc2dzdHIgIiIKKyN+ICLQnNC+0LbQvdCwINC30LzRltC90Y7QstCw0YLQuCDQu9C40YjQtSDQu9C+0LrQsNC70YzQvdGWINC/0LDRgNC+0LvRli4g0JLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSB5cHBhc3N3ZCDQvdCw0YLQvtC80ZbRgdGC0YwuIgorCisjfiBtc2dpZCAiVUlEIGFuZCB1c2VybmFtZSBkb2VzIG5vdCBtYXRjaCwgaW1wb3N0ZXIhIgorI34gbXNnc3RyICJVSUQg0YLQsCDRltC8J9GPINC60L7RgNC40YHRgtGD0LLQsNGH0LAg0L3QtSDQstGW0LTQv9C+0LLRltC00LDRjtGC0Ywg0L7QtNC90LUg0L7QtNC90L7QvNGDLCDQstC4INGI0LDRhdGA0LDQuSEiCisKKyN+IG1zZ2lkICJDaGFuZ2luZyBwYXNzd29yZCBmb3IgJXNcbiIKKyN+IG1zZ3N0ciAi0JfQvNGW0L3RjtGU0YLRjNGB0Y8g0L/QsNGA0L7Qu9GMINC00LvRjyAlc1xuIgorCisjfiBtc2dpZCAiRW50ZXIgb2xkIHBhc3N3b3JkOiAiCisjfiBtc2dzdHIgItCS0LLQtdC00ZbRgtGMINGB0YLQsNGA0LjQuSDQv9Cw0YDQvtC70Yw6ICIKKworI34gbXNnaWQgIklsbGVnYWwgcGFzc3dvcmQsIGltcG9zdGVyLiIKKyN+IG1zZ3N0ciAi0J3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INC/0LDRgNC+0LvRjCwg0YjQsNGF0YDQsNC5LiIKKworI34gbXNnaWQgIkVudGVyIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICLQktCy0LXQtNGW0YLRjCDQvdC+0LLQuNC5INC/0LDRgNC+0LvRjDogIgorCisjfiBtc2dpZCAiUGFzc3dvcmQgbm90IGNoYW5nZWQuIgorI34gbXNnc3RyICLQn9Cw0YDQvtC70Ywg0L3QtSDQt9C80ZbQvdC10L3Qvi4iCisKKyN+IG1zZ2lkICJSZS10eXBlIG5ldyBwYXNzd29yZDogIgorI34gbXNnc3RyICLQktCy0LXQtNGW0YLRjCDQv9Cw0YDQvtC70Ywg0L/QvtCy0YLQvtGA0L3QvjogIgorCisjfiBtc2dpZCAiWW91IG1pc3NwZWxsZWQgaXQuIFBhc3N3b3JkIG5vdCBjaGFuZ2VkLiIKKyN+IG1zZ3N0ciAi0J/QsNGA0L7Qu9GWINC90LUg0YHQv9GW0LLQv9Cw0LTQsNGO0YLRjC4g0J/QsNGA0L7Qu9GMINC90LUg0LfQvNGW0L3QtdC90L4uIgorCisjfiBtc2dpZCAicGFzc3dvcmQgY2hhbmdlZCwgdXNlciAlcyIKKyN+IG1zZ3N0ciAi0L/QsNGA0L7Qu9GMINC30LzRltC90LXQvdC+LCDQutC+0YDQuNGB0YLRg9Cy0LDRhyAlcyIKKworI34gbXNnaWQgIlJPT1QgUEFTU1dPUkQgQ0hBTkdFRCIKKyN+IG1zZ3N0ciAi0J/QkNCg0J7Qm9CsINCQ0JTQnNCG0J3QhtCh0KLQoNCQ0KLQntCg0JAg0JfQnNCG0J3QldCd0J4iCisKKyN+IG1zZ2lkICJwYXNzd29yZCBjaGFuZ2VkIGJ5IHJvb3QsIHVzZXIgJXMiCisjfiBtc2dzdHIgItC/0LDRgNC+0LvRjCDQt9C80ZbQvdC10L3QviDQsNC00LzRltC90ZbRgdGC0YDQsNGC0L7RgNC+0LwsINC60L7RgNC40YHRgtGD0LLQsNGHICVzIgorCisjfiBtc2dpZCAiY2FsbGluZyBzZXRwd25hbSB0byBzZXQgcGFzc3dvcmQuXG4iCisjfiBtc2dzdHIgItCy0LjQutC70LjQutCw0ZTRgtGM0YHRjyBzZXRwd25hbSDQtNC70Y8g0LLRgdGC0LDQvdC+0LLQu9C10L3QvdGPINC/0LDRgNC+0LvRji5cbiIKKworI34gbXNnaWQgIlBhc3N3b3JkICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCisjfiBtc2dzdHIgItCf0LDRgNC+0LvRjCDQndCVINC30LzRltC90LXQvdC+LiDQodC/0YDQvtCx0YPQudGC0LUg0YnQtSDRgNCw0Lcg0L/RltC30L3RltGI0LUuXG4iCisKKyN+IG1zZ2lkICJQYXNzd29yZCBjaGFuZ2VkLlxuIgorI34gbXNnc3RyICLQn9Cw0YDQvtC70Ywg0LfQvNGW0L3QtdC90L4uXG4iCisKKyN+IG1zZ2lkICJtb3VudDogdGhpcyB2ZXJzaW9uIHdhcyBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIHRoZSB0eXBlIGBuZnMnIgorI34gbXNnc3RyICJtb3VudDog0YbRjiDQstC10YDRgdGW0Y4g0L/RgNC+0LPRgNCw0LzQuCDRgdC60L7QvNC/0ZbQu9GM0L7QstCw0L3QviDQsdC10Lcg0L/RltC00YLRgNC40LzQutC4IGBuZnMnIgorCisjfiBtc2dpZCAibW91bnQ6IGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCBieSBrZXJuZWwiCisjfiBtc2dzdHIgIm1vdW50OiDRhNCw0LnQu9C+0LLQsCDRgdC40YHRgtC10LzQsCDRgtC40L/RgyAlcyDQvdC1INC/0ZbQtNGC0YDQuNC80YPRlNGC0YzRgdGPINGP0LTRgNC+0LwiCisKKyN+IG1zZ2lkICJtb3VudDogJXMgZHVwbGljYXRlIC0gbm90IG1vdW50ZWQiCisjfiBtc2dzdHIgIm1vdW50OiAlcyDQtNGD0LHQu9GM0L7QstCw0L3QsCAtINC90LUg0L/RltC00LrQu9GO0YfQsNGU0YLRjNGB0Y8iCisKKyN+IG1zZ2lkICJVVUlEIgorI34gbXNnc3RyICJVVUlEIgorCisjfiBtc2dpZCAibW91bnQ6IHRoZSBsYWJlbCAlcyBvY2N1cnMgb24gYm90aCAlcyBhbmQgJXMgLSBub3QgbW91bnRlZFxuIgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6INGW0Lwn0Y8gJXMg0LfRg9GB0YLRgNGW0YfQsNGU0YLRjNGB0Y8g0Y/QuiDQvdCwICVzLCDRgtCw0Log0ZYg0L3QsCAlcyAtINC90LUg0L/RltC00LrQu9GO0YfQtdC90L5cbiIKKworI34gbXNnaWQgIkJvb3QgKCUwMlgpIgorI34gbXNnc3RyICLQl9Cw0LLQsNC90YLQsNC20LXQvdC90Y8gKCUwMlgpIgorCisjfiBtc2dpZCAiTm9uZSAoJTAyWCkiCisjfiBtc2dzdHIgItCd0LXQvNCw0ZQgKCUwMlgpIgorCisjfiBtc2dpZCAiJXM6IFslMDR4XTolbGQgKCVzKSBvZmZzZXQgJWQsICVzIGVuY3J5cHRpb25cbiIKKyN+IG1zZ3N0ciAiJXM6IFslMDR4XTolbGQgKCVzKSDQt9GB0YPQsiAlZCwg0YjQuNGE0YDRg9Cy0LDQvdC90Y8gJXNcbiIKKworI34gbXNnaWQgIiIKKyN+ICJtb3VudDogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLlxuIgorI34gIiAgICAgICBNYXliZSAvZGV2L2xvb3AjIGhhcyBhIHdyb25nIG1ham9yIG51bWJlcj8iCisjfiBtc2dzdHIgIiIKKyN+ICJtb3VudDog0L3QtSDQstC00LDRlNGC0YzRgdGPINC30L3QsNC50YLQuCDQttC+0LTQvdC40LkgbG9vcC3Qv9GA0LjRgdGC0YDRltC5LlxuIgorI34gIiAgICAgICDQnNC+0LbQu9C40LLQviAvZGV2L2xvb3AjINC80LDRlCDQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YHRgtCw0YDRiNC40Lkg0L3QvtC80LXRgD8iCisKKyN+IG1zZ2lkICIiCisjfiAibW91bnQ6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorI34gIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2UgKHRoZW4gcmVjb21waWxlIG9yIGBpbnNtb2QgbG9vcC5vJyksIG9yXG4iCisjfiAiICAgICAgIG1heWJlIC9kZXYvbG9vcCMgaGFzIHRoZSB3cm9uZyBtYWpvciBudW1iZXI/IgorI34gbXNnc3RyICIiCisjfiAibW91bnQ6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQt9C90LDQudGC0Lgg0LbQvtC00L3QuNC5IGxvb3At0L/RgNC40YHRgtGA0ZbQuS4g0JzQvtC20LvQuNCy0L4g0YbQtSDRj9C00YDQviDQvdC1IFxuIgorI34gIiAgICAgICDQv9GW0LTRgtGA0LjQvNGD0ZQg0YDQvtCx0L7RgtGDINC3IGxvb3At0L/RgNC40YHRgtGA0L7Rj9C80LggKNGC0L7QtNGWINC/0LXRgNC10LrQvtC80L/RltC70Y7QudGC0LUg0Y/QtNGA0L4gXG4iCisjfiAiICAgICAgINCw0LHQviDQstC40LrQvtC90LDQudGC0LUgYGluc21vZCBsb29wLm8nKSwg0LDQsdC+INC80L7QttC70LjQstC+IC9kZXYvbG9vcCMg0LzQsNGUIFxuIgorI34gIiAgICAgICDQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YHRgtCw0YDRiNC40Lkg0L3QvtC80LXRgD8gIgorCisjfiBtc2dpZCAiSW5pdCAodXAgdG8gMTYgaGV4IGRpZ2l0cyk6ICIKKyN+IG1zZ3N0ciAiSW5pdCAo0LTQviAxNiDRiNGW0YHRgtC90LDQtNGG0Y/RgtC60L7QstC40YUg0YbQuNGE0YApOiAiCisKKyN+IG1zZ2lkICJOb24taGV4IGRpZ2l0ICclYycuXG4iCisjfiBtc2dzdHIgItCd0LUg0YjRltGB0YLQvdCw0LTRhtGP0YLQutC+0LLQsCDRhtC40YTRgNCwICclYycuXG4iCisKKyN+IG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBnZXQga2V5IGZvciBlbmNyeXB0aW9uIHN5c3RlbSAlZFxuIgorI34gbXNnc3RyICLQndC10LLRltC00L7QvNC+INGP0Log0L7RgtGA0LjQvNCw0YLQuCDQutC70Y7RhyDRgdC40YHRgtC10LzQuCDRiNC40YTRgNGD0LLQsNC90L3RjyAlZFxuIgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdXBkYXRlLXBvdGZpbGVzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdXBkYXRlLXBvdGZpbGVzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFkZTNlM2EKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby91cGRhdGUtcG90ZmlsZXMKQEAgLTAsMCArMSwxMyBAQAorIyEvYmluL3NoCisjCisjIENvcHlyaWdodCAoQykgMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKworIyBmaW5kIGFsbCAqLmMgZmlsZXMsIAorIyBzb3J0IHRoZSBsaXN0CisjIGV4Y2x1ZGUgLi4vdGVzdHMvIGZyb20gdGhlIGxpc3QgCisjICAgICAgICAgYW5kIHJlbW92ZSAiLi4vIiBwcmVmaXgKKworZmluZCAuLi8gLW5hbWUgIiouYyIgfCBcCitzb3J0IHwgXAorZ2F3ayAnISAvXlwuXC5cL3Rlc3RzXC8vIHsgcHJpbnQgZ2Vuc3ViKC9eXC5cLlwvLywgIiIsIDEpIH0nID4gUE9URklMRVMuaW4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3V0aWwtbGludXgtbmcucG90IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvcG8vdXRpbC1saW51eC1uZy5wb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FkMzQyMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3V0aWwtbGludXgtbmcucG90CkBAIC0wLDAgKzEsMTExNzYgQEAKKyMgU09NRSBERVNDUklQVElWRSBUSVRMRS4KKyMgQ29weXJpZ2h0IChDKSBZRUFSIEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgUEFDS0FHRSBwYWNrYWdlLgorIyBGSVJTVCBBVVRIT1IgPEVNQUlMQEFERFJFU1M+LCBZRUFSLgorIworIywgZnV6enkKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IFBBQ0tBR0UgVkVSU0lPTlxuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT5cbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wMy0yMiAwOTozNyswMTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogWUVBUi1NTy1EQSBITzpNSStaT05FXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBGVUxMIE5BTUUgPEVNQUlMQEFERFJFU1M+XG4iCisiTGFuZ3VhZ2UtVGVhbTogTEFOR1VBR0UgPExMQGxpLm9yZz5cbiIKKyJNSU1FLVZlcnNpb246IDEuMFxuIgorIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1DSEFSU0VUXG4iCisiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NjMKK21zZ2lkICJzZXQgcmVhZC1vbmx5IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3MAorbXNnaWQgInNldCByZWFkLXdyaXRlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3NgorbXNnaWQgImdldCByZWFkLW9ubHkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKK21zZ2lkICJnZXQgcGh5c2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6OTQKK21zZ2lkICJnZXQgbWluaW11bSBJL08gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTAwCittc2dpZCAiZ2V0IG9wdGltYWwgSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwNgorbXNnaWQgImdldCBhbGlnbm1lbnQgb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTIKK21zZ2lkICJnZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExOAorbXNnaWQgImdldCBibG9ja3NpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEyNQorbXNnaWQgInNldCBibG9ja3NpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzMQorbXNnaWQgImdldCAzMi1iaXQgc2VjdG9yIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTQ0Cittc2dpZCAic2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTUwCittc2dpZCAiZ2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTU3Cittc2dpZCAic2V0IGZpbGVzeXN0ZW0gcmVhZGFoZWFkIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3MQorbXNnaWQgInJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTpcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgLS1yZXBvcnQgW2RldmljZXNdXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIFstdnwtcV0gY29tbWFuZHMgZGV2aWNlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODcKK21zZ2lkICJnZXQgc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdWNjZWVkZWQuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIFN0YXJ0U2VjICAgICAgICAgICAgU2l6ZSAgIERldmljZVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Tk9URTogZWx2dHVuZSBvbmx5IHdvcmtzIHdpdGggMi40IGtlcm5lbHNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFyc2UgZXJyb3JcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibWlzc2luZyBibG9ja2RldmljZSwgdXNlIC1oIGZvciBoZWxwXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJlbHZ0dW5lIGlzIG9ubHkgdXNlZnVsIG9uIG9sZGVyIGtlcm5lbHM7XG4iCisiZm9yIDIuNiB1c2UgSU8gc2NoZWR1bGVyIHN5c2ZzIHR1bmFibGVzIGluc3RlYWQuLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzozMQorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JtYXR0aW5nIC4uLiAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlZlcmlmeWluZyAuLi4gIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo3MQorbXNnaWQgIlJlYWQ6ICIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmxlbSByZWFkaW5nIGN5bGluZGVyICVkLCBleHBlY3RlZCAlZCwgcmVhZCAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiYmFkIGRhdGEgaW4gY3lsICVkXG4iCisiQ29udGludWluZyAuLi4gIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo5NgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtbiBdIGRldmljZVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMTggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4NAorIzogZGlzay11dGlscy9pc29zaXplLmM6MTgxIGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMTQgZGlzay11dGlscy9ta2ZzLmM6NTIKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4MTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTcyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ4NyBtaXNjLXV0aWxzL2RkYXRlLmM6MTc5IG1pc2MtdXRpbHMvcmVuYW1lLmM6NzkKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTQ3IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0MgorbXNnaWQgIkNvdWxkIG5vdCBkZXRlcm1pbmUgY3VycmVudCBmb3JtYXQgdHlwZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzLXNpZGVkLCAlZCB0cmFja3MsICVkIHNlYy90cmFjay4gVG90YWwgY2FwYWNpdHkgJWQga0IuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIkRvdWJsZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuIGZhaWxlZDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBmYWlsZWQ6IHVuYWJsZSB0byBkZXRlcm1pbmUgZGV2aWNlIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODAKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGEgYmxvY2sgZGV2aWNlIG9yIGZpbGU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODQgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyNgorbXNnaWQgImZpbGUgbGVuZ3RoIHRvbyBzaG9ydCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg5IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxOTcKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNTggZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGZhaWxlZDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIwNworbXNnaWQgInN1cGVyYmxvY2sgbWFnaWMgbm90IGZvdW5kIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTYKK21zZ2lkICJ1bnN1cHBvcnRlZCBmaWxlc3lzdGVtIGZlYXR1cmVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAic3VwZXJibG9jayBzaXplICglZCkgdG9vIHNtYWxsIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjMKK21zZ2lkICJ6ZXJvIGZpbGUgY291bnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIyOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIGV4dGVuZHMgcGFzdCBlbmQgb2YgZmlsZXN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogb2xkIGNyYW1mcyBmb3JtYXRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjcyIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozMzkKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NzcgbG9naW4tdXRpbHMvY2hmbi5jOjUyOSBsb2dpbi11dGlscy9jaHNoLmM6NDM5CisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjE0MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzIxCittc2dpZCAibWFsbG9jIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjk3Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjQKK21zZ2lkICJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM4NworbXNnaWQgImRhdGEgYmxvY2sgdG9vIGxhcmdlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVjb21wcmVzc2lvbiBlcnJvciAlcCglZCk6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBob2xlIGF0ICVsZCAoJXpkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjMgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIHVuY29tcHJlc3NpbmcgYmxvY2sgYXQgJWxkIHRvICVsZCAoJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLWJsb2NrICglbGQpIGJ5dGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZmFpbGVkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgImxjaG93biBmYWlsZWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDY1CisjLCBjLWZvcm1hdAorbXNnaWQgInV0aW1lIGZhaWxlZDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZGlyIGZhaWxlZDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTQKK21zZ2lkICJiYWQgZmlsZW5hbWUgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MjEKK21zZ2lkICJiYWQgaW5vZGUgb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MzcKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTQwCittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBzaXplIGFuZCBub24temVybyBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU3MQorbXNnaWQgInN5bWJvbGljIGxpbmsgaGFzIHplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzQKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlY2lhbCBmaWxlIGhhcyBub24temVybyBvZmZzZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlmbyBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJzb2NrZXQgaGFzIG5vbi16ZXJvIHNpemU6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9ndXMgbW9kZTogJXMgKCVvKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1rbm9kIGZhaWxlZDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBzdGFydCAoJWxkKSA8IHNpemVvZihzdHJ1Y3QgY3JhbWZzX3N1cGVyKSArIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgZW5kICglbGQpICE9IGZpbGUgZGF0YSBzdGFydCAoJWxkKSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjkwCittc2dpZCAiaW52YWxpZCBmaWxlIGRhdGEgb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MTQKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo3MjcKK21zZ2lkICJjb21waWxlZCB3aXRob3V0IC14IHN1cHBvcnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtZVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkLlx0ICIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjUKK21zZ2lkICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY29udGludWUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzQ4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yIDwgRklSU1RaT05FIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzUyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lIG5yID49IFpPTkVTIGluIGZpbGUgYCVzJy4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZCBlcnJvcjogdW5hYmxlIHRvIHNlZWsgdG8gYmxvY2sgaW4gZmlsZSAnJXMnXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkludGVybmFsIGVycm9yOiB0cnlpbmcgdG8gd3JpdGUgYmFkIGJsb2NrXG4iCisiV3JpdGUgcmVxdWVzdCBpZ25vcmVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NAorbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX3N1cGVyX2Jsb2NrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgc3VwZXItYmxvY2siCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTYwCittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1ODcKK21zZ2lkICJzZWVrIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTEgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6Mzk5Cittc2dpZCAidW5hYmxlIHRvIGFsbG9jIGJ1ZmZlciBmb3Igc3VwZXJibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNAorbXNnaWQgIk9ubHkgMWsgYmxvY2tzL3pvbmVzIHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTYKK21zZ2lkICJiYWQgc19pbWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjUKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjI4Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjMzCittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzNgorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQxCittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGUgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MworbXNnaWQgIlVuYWJsZSB0byByZWFkIHpvbmUgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogRmlyc3R6b25lICE9IE5vcm1fZmlyc3R6b25lXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgaW5vZGVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgYmxvY2tzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU0IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdGRhdGF6b25lPSVsZCAoJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF4c2l6ZT0lbGRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlsZXN5c3RlbSBzdGF0ZT0lZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3MyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgYnV0IHVzZWQgZm9yIGZpbGUgJyVzJ1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjgKK21zZ2lkICJNYXJrIGluIHVzZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcwNiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaW5vZGUgY291bnQgdG9vIGJpZy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3ODggZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrIGhhcyBiZWVuIHVzZWQgYmVmb3JlLiBOb3cgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3OTAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODIzCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTUKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxMAorbXNnaWQgIkNsZWFyIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2sgJWQgaW4gZmlsZSBgJXMnIGlzIG1hcmtlZCBub3QgaW4gdXNlLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODM1Cittc2dpZCAiQ29ycmVjdCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5NzQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA0MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZGlyZWN0b3J5ICclcycgY29udGFpbnMgYSBiYWQgaW5vZGUgbnVtYmVyIGZvciBmaWxlICclLipzJy4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDQKK21zZ2lkICIgUmVtb3ZlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLicgaXNuJ3QgZmlyc3RcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo5OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTA2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMTkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTA0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTM1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gYmFkX3pvbmUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG1vZGUgbm90IGNsZWFyZWQuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIHVzZWQsIG1hcmtlZCB1bnVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2MiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjE2Cittc2dpZCAiU2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIyMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCAobW9kZSA9ICUwN28pLCBpX25saW5rcz0lZCwgY291bnRlZD0lZC4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIyCittc2dpZCAiU2V0IGlfbmxpbmtzIHRvIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNgorbXNnaWQgIlVubWFyayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg2IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogaW4gdXNlLCBjb3VudGVkPSVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjg5IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU3NworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc5Cittc2dpZCAiYmFkIGlub2RlIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI5MQorbXNnaWQgImJhZCB2MiBpbm9kZSBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMTcKK21zZ2lkICJuZWVkIHRlcm1pbmFsIGZvciBpbnRlcmFjdGl2ZSByZXBhaXJzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJyVzJzogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBjbGVhbiwgbm8gY2hlY2suXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJGb3JjaW5nIGZpbGVzeXN0ZW0gY2hlY2sgb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIG9uICVzIGlzIGRpcnR5LCBuZWVkcyBjaGVja2luZy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmxkIGlub2RlcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiU2bGQgem9uZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZkIHJlZ3VsYXIgZmlsZXNcbiIKKyIlNmQgZGlyZWN0b3JpZXNcbiIKKyIlNmQgY2hhcmFjdGVyIGRldmljZSBmaWxlc1xuIgorIiU2ZCBibG9jayBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgbGlua3NcbiIKKyIlNmQgc3ltYm9saWMgbGlua3NcbiIKKyItLS0tLS1cbiIKKyIlNmQgZmlsZXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiRklMRSBTWVNURU0gSEFTIEJFRU4gQ0hBTkdFRFxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBvcGVuOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2VlayBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBlcnJvciBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3IgY291bnQ6ICVkLCBzZWN0b3Igc2l6ZTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wdGlvbiBwYXJzZSBlcnJvclxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy14XSBbLWQgPG51bT5dIGlzbzk2NjAtaW1hZ2VcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLXZdIFstTiBuci1vZi1pbm9kZXNdIFstViB2b2x1bWUtbmFtZV1cbiIKKyIgICAgICAgWy1GIGZzbmFtZV0gZGV2aWNlIFtibG9jay1jb3VudF1cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTMwCittc2dpZCAidm9sdW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzNworbXNnaWQgImZzbmFtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgYmxvY2sgc3BlY2lhbCBkZXZpY2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE3MSBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZ2V0IHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgYy1mb3JtYXQKK21zZ2lkICJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjAyCittc2dpZCAidG9vIG1hbnkgaW5vZGVzIC0gbWF4IGlzIDUxMiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UsIG5lZWQgYXQgbGVhc3QgJWxsdSBibG9ja3MiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVm9sdW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZTbmFtZTogPCUtNnM+XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAxIGJsb2NrKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gJWxsZCBibG9ja3MpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja3M6ICVsbGRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlIGVuZDogJWQsIERhdGEgZW5kOiAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzkKK21zZ2lkICJlcnJvciB3cml0aW5nIHN1cGVyYmxvY2siCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI1OQorbXNnaWQgImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBpbm9kZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjczCittc2dpZCAiZXJyb3Igd3JpdGluZyAuIGVudHJ5IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzcKK21zZ2lkICJlcnJvciB3cml0aW5nIC4uIGVudHJ5IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2xvc2luZyAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogbWtmcyBbLVZdIFstdCBmc3R5cGVdIFtmcy1vcHRpb25zXSBkZXZpY2UgW3NpemVdXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6ODggZGlzay11dGlscy9ta2ZzLmM6OTYgZmRpc2svY2ZkaXNrLmM6MzUzCisjOiBnZXRvcHQvZ2V0b3B0LmM6ODYgZ2V0b3B0L2dldG9wdC5jOjk2IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE91dCBvZiBtZW1vcnkhXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmM6MTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1rZnMgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWhdIFstdl0gWy1iIGJsa3NpemVdIFstZSBlZGl0aW9uXSBbLU4gZW5kaWFuXSBbLWkgZmlsZV0gWy1uICIKKyJuYW1lXSBkaXJuYW1lIG91dGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXYgICAgICAgICBiZSB2ZXJib3NlXG4iCisiIC1FICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiIKKyIgLWIgYmxrc2l6ZSB1c2UgdGhpcyBibG9ja3NpemUsIG11c3QgZXF1YWwgcGFnZSBzaXplXG4iCisiIC1lIGVkaXRpb24gc2V0IGVkaXRpb24gbnVtYmVyIChwYXJ0IG9mIGZzaWQpXG4iCisiIC1OIGVuZGlhbiAgc2V0IGNyYW1mcyBlbmRpYW5uZXNzIChiaWd8bGl0dGxlfGhvc3QpLCBkZWZhdWx0IGhvc3RcbiIKKyIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhlIGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIgorIiAtbiBuYW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iCisiIC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIKKyIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQgb3B0aW9uLCBpZ25vcmVkKVxuIgorIiAteiAgICAgICAgIG1ha2UgZXhwbGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiIKKyIgZGlybmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNzZWRcbiIKKyIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImZpbGVzeXN0ZW0gdG9vIGJpZy4gIEV4aXRpbmcuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJBSUVFRTogYmxvY2sgXCJjb21wcmVzc2VkXCIgdG8gPiAyKmJsb2NrbGVuZ3RoICglbGQpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiBndWVzdGltYXRlIG9mIHJlcXVpcmVkIHNpemUgKHVwcGVyIGJvdW5kKSBpcyAlbGxkTUIsIGJ1dCBtYXhpbXVtICIKKyJpbWFnZSBzaXplIGlzICV1TUIuICBXZSBtaWdodCBkaWUgcHJlbWF0dXJlbHkuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg4MAorbXNnaWQgIlJPTSBpbWFnZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJJbmNsdWRpbmc6ICVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXJlY3RvcnkgZGF0YTogJXpkIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwOAorIywgYy1mb3JtYXQKK21zZ2lkICJFdmVyeXRoaW5nOiAlemQga2lsb2J5dGVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkxMworIywgYy1mb3JtYXQKK21zZ2lkICJTdXBlciBibG9jazogJXpkIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDUkM6ICV4XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkyNQorIywgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlIGFsbG9jYXRlZCBmb3IgUk9NIGltYWdlICglbGxkIGFsbG9jYXRlZCwgJXp1IHVzZWQpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzMworbXNnaWQgIlJPTSBpbWFnZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJPTSBpbWFnZSB3cml0ZSBmYWlsZWQgKCV6ZCAlemQpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlbmFtZXMgdHJ1bmNhdGVkIHRvIDI1NSBieXRlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZXJyb3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogdWlkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGdpZHMgdHJ1bmNhdGVkIHRvICV1IGJpdHMuICAoVGhpcyBtYXkgYmUgYSBzZWN1cml0eSBjb25jZXJuLilcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXQVJOSU5HOiBkZXZpY2UgbnVtYmVycyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIFRoaXMgYWxtb3N0IGNlcnRhaW5seSBtZWFuc1xuIgorInRoYXQgc29tZSBkZXZpY2UgZmlsZXMgd2lsbCBiZSB3cm9uZy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstYyB8IC1sIGZpbGVuYW1lXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxODgKK21zZ2lkICJzZWVrIHRvIGJvb3QgYmxvY2sgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTAKK21zZ2lkICJ1bmFibGUgdG8gY2xlYXIgYm9vdCBzZWN0b3IiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkyCittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk4Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwMAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBpbm9kZXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjA5Cittc2dpZCAid3JpdGUgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIxNyBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyOTEKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM0MAorbXNnaWQgInRvbyBtYW55IGJhZCBibG9ja3MiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjI1Cittc2dpZCAibm90IGVub3VnaCBnb29kIGJsb2NrcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDAKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVycyBmb3IgbWFwcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJNYXhzaXplPSVsZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ2OQorbXNnaWQgInNlZWsgZmFpbGVkIGR1cmluZyB0ZXN0aW5nIG9mIGJsb2NrcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2VpcmQgdmFsdWVzIGluIGRvX2NoZWNrOiBwcm9iYWJseSBidWdzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTA4IGRpc2stdXRpbHMvbWtzd2FwLmM6MzE1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gY2hlY2tfYmxvY2tzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUxNworbXNnaWQgImJhZCBibG9ja3MgYmVmb3JlIGRhdGEtYXJlYTogY2Fubm90IG1ha2UgZnMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTIzIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU0OAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBiYWQgYmxvY2tzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIGJsb2NrXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQwCittc2dpZCAiY2Fubm90IHJlYWQgYmFkYmxvY2tzIGZpbGUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjIwCisjLCBjLWZvcm1hdAorbXNnaWQgInN0cnRvbCBlcnJvcjogbnVtYmVyIG9mIGJsb2NrcyBub3Qgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gc3RhdCAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBkZXRlcm1pbmUgc2VjdG9yIHNpemUgZm9yICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICJibG9jayBzaXplIHNtYWxsZXIgdGhhbiBwaHlzaWNhbCBzZWN0b3Igc2l6ZSBvZiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzaXplIG9mICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJ3aWxsIG5vdCB0cnkgdG8gbWFrZSBmaWxlc3lzdGVtIG9uICclcyciCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjY1Cittc2dpZCAibnVtYmVyIG9mIGJsb2NrcyB0b28gc21hbGwiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZCwgaW5zdGVhZCBvZiB0aGUgc3lzdGVtIHZhbHVlICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHN3YXAgaGVhZGVyIHNpemUsIG5vIGxhYmVsIHdyaXR0ZW4uXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFiZWwgd2FzIHRydW5jYXRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHV1aWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI4MworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jXSBbLXBQQUdFU1pdIFstTCBsYWJlbF0gWy1VIFVVSURdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Mjk3Cittc2dpZCAidG9vIG1hbnkgYmFkIHBhZ2VzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzEwIG1pc2MtdXRpbHMvbG9vay5jOjE4MiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTc5CisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDE2IHRleHQtdXRpbHMvbW9yZS5jOjIwMjcKK21zZ2lkICJPdXQgb2YgbWVtb3J5IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgcGFnZVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSBiYWQgcGFnZXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQwMiBkaXNrLXV0aWxzL21rc3dhcC5jOjQzOSBkaXNrLXV0aWxzL21rc3dhcC5jOjY1OQorbXNnaWQgInVuYWJsZSB0byByZXdpbmQgc3dhcC1kZXZpY2UiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTMKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgbmV3IGxpYmJsa2lkIHByb2JlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDE1Cittc2dpZCAidW5hYmxlIHRvIGFzc2lnbiBkZXZpY2UgdG8gbGlibGtpZCBwcm9iZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ0MworbXNnaWQgInVuYWJsZSB0byBlcmFzZSBib290Yml0cyBzZWN0b3JzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogd2FybmluZzogZG9uJ3QgZXJhc2UgYm9vdGJpdHMgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKCVzIHBhcnRpdGlvbiB0YWJsZSBkZXRlY3RlZCkuICIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IHN1cHBvcnQgc3dhcHNwYWNlIHZlcnNpb24gJWQuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKK21zZ2lkICJlcnJvcjogVVVJRCBwYXJzaW5nIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IE5vd2hlcmUgdG8gc2V0IHVwIHN3YXAgb24/XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzd2FwIGFyZWEgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJWxkIEtpQlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YXJuaW5nOiB0cnVuY2F0aW5nIHN3YXAgYXJlYSB0byAlbGx1IEtpQlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogd2lsbCBub3QgdHJ5IHRvIG1ha2Ugc3dhcGRldmljZSBvbiAnJXMnXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiAlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIHN3YXBzcGFjZS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIHVwIHN3YXBzcGFjZSB2ZXJzaW9uIDEsIHNpemUgPSAlbGx1IEtpQlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY3MworbXNnaWQgImZzeW5jIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCittc2dpZCAidW5hYmxlIHRvIG1hdGNocGF0aGNvbigpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBuZXcgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njk1Cittc2dpZCAiY291bGRuJ3QgY29tcHV0ZSBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo3MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byByZWxhYmVsICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiAgJXMgIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgJyVzJyBpcyBjb250cm9sIHJhdyBkZXYgKHVzZSByYXc8Tj4gd2hlcmUgPE4+IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgYmxvY2sgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIGJsb2NrIGRldlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIG1hc3RlciByYXcgZGV2aWNlICciCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSByYXcgZGV2aWNlICclcycgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgcmF3IGRldlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHF1ZXJ5aW5nIHJhdyBkZXZpY2UgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjQxIGRpc2stdXRpbHMvcmF3LmM6MjYxCisjLCBjLWZvcm1hdAorbXNnaWQgInJhdyVkOlx0Ym91bmQgdG8gbWFqb3IgJWQsIG1pbm9yICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igc2V0dGluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzozNzggZmRpc2svY2ZkaXNrLmM6MjA4MworbXNnaWQgIlVudXNhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MCBmZGlzay9jZmRpc2suYzoyMDg1Cittc2dpZCAiRnJlZSBTcGFjZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzozODMKK21zZ2lkICJMaW51eCBleHQyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NQorbXNnaWQgIkxpbnV4IGV4dDMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzg3Cittc2dpZCAiTGludXggWEZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4OQorbXNnaWQgIkxpbnV4IEpGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzozOTEKK21zZ2lkICJMaW51eCBSZWlzZXJGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzozOTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NworbXNnaWQgIkxpbnV4IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5NgorbXNnaWQgIk9TLzIgSFBGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzozOTgKK21zZ2lkICJPUy8yIElGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo0MDIKK21zZ2lkICJOVEZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGhhcyBiZWVuIGNoYW5nZWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYm9vdCB0aGUgc3lzdGVtIHRvIGVuc3VyZSB0aGUgcGFydGl0aW9uIHRhYmxlIGlzIGNvcnJlY3RseSB1cGRhdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnlcbiIKKyJET1MgNi54IHBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGNmZGlzayBtYW51YWxcbiIKKyJwYWdlIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNgorbXNnaWQgIkZBVEFMIEVSUk9SIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjUxNworbXNnaWQgIlByZXNzIGFueSBrZXkgdG8gZXhpdCBjZmRpc2siCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY0IGZkaXNrL2NmZGlzay5jOjU3MgorbXNnaWQgIkNhbm5vdCBzZWVrIG9uIGRpc2sgZHJpdmUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY2Cittc2dpZCAiQ2Fubm90IHJlYWQgZGlzayBkcml2ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo1NzQKK21zZ2lkICJDYW5ub3Qgd3JpdGUgZGlzayBkcml2ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5MTcKK21zZ2lkICJUb28gbWFueSBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyMgorbXNnaWQgIlBhcnRpdGlvbiBiZWdpbnMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkyNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkzNworbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGFmdGVyIGVuZC1vZi1kaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk0MgorbXNnaWQgIlBhcnRpdGlvbiBlbmRzIGluIHRoZSBmaW5hbCBwYXJ0aWFsIGN5bGluZGVyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2NgorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBub3QgaW4gZGlzayBvcmRlciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjkKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5NzMKK21zZ2lkICJlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDAzCittc2dpZCAiIgorIiEhISEgSW50ZXJuYWwgZXJyb3IgY3JlYXRpbmcgbG9naWNhbCBkcml2ZSB3aXRoIG5vIGV4dGVuZGVkIHBhcnRpdGlvbiAhISEhIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMTQgZmRpc2svY2ZkaXNrLmM6MTAyNgorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxvZ2ljYWwgZHJpdmUgaGVyZSAtLSB3b3VsZCBjcmVhdGUgdHdvIGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTE2OAorbXNnaWQgIk1lbnUgaXRlbSB0b28gbG9uZy4gTWVudSBtYXkgbG9vayBvZGQuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEyMjQKK21zZ2lkICJNZW51IHdpdGhvdXQgZGlyZWN0aW9uLiBEZWZhdWx0aW5nIHRvIGhvcml6b250YWwuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEzNTYKK21zZ2lkICJJbGxlZ2FsIGtleSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNiBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODYKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJQcmltYXJ5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYKK21zZ2lkICJDcmVhdGUgYSBuZXcgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNyBmZGlzay9jZmRpc2suYzoyMDU0IGZkaXNrL2NmZGlzay5jOjI1ODUKKyM6IGZkaXNrL2NmZGlzay5jOjI1ODgKK21zZ2lkICJMb2dpY2FsIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcKK21zZ2lkICJDcmVhdGUgYSBuZXcgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzIGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJDYW5jZWwiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzCittc2dpZCAiRG9uJ3QgY3JlYXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDQKK21zZ2lkICIhISEgSW50ZXJuYWwgZXJyb3IgISEhIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0NDcKK21zZ2lkICJTaXplIChpbiBNQik6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQmVnaW5uaW5nIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJFbmQiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkFkZCBwYXJ0aXRpb24gYXQgZW5kIG9mIGZyZWUgc3BhY2UiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTUwMAorbXNnaWQgIk5vIHJvb20gdG8gY3JlYXRlIHRoZSBleHRlbmRlZCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3NAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTc4Cittc2dpZCAiTm8gcGFydGl0aW9uIHRhYmxlLiBTdGFydGluZyB3aXRoIHplcm8gdGFibGUuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1ODgKK21zZ2lkICJCYWQgc2lnbmF0dXJlIG9uIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTkyCittc2dpZCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjQyCittc2dpZCAiWW91IHNwZWNpZmllZCBtb3JlIGN5bGluZGVycyB0aGFuIGZpdCBvbiBkaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzQKK21zZ2lkICJDYW5ub3Qgb3BlbiBkaXNrIGRyaXZlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2NzYgZmRpc2svY2ZkaXNrLmM6MTg2NQorbXNnaWQgIk9wZW5lZCBkaXNrIHJlYWQtb25seSAtIHlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gd3JpdGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY4NworbXNnaWQgIiIKKyJXYXJuaW5nISEgIFVuc3VwcG9ydGVkIEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkLiBVc2UgR05VIFBhcnRlZC4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTcwNgorbXNnaWQgIkNhbm5vdCBnZXQgZGlzayBzaXplIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MzIKK21zZ2lkICJCYWQgcHJpbWFyeSBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTc2MgorbXNnaWQgIkJhZCBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxODc3Cittc2dpZCAiV2FybmluZyEhICBUaGlzIG1heSBkZXN0cm95IGRhdGEgb24geW91ciBkaXNrISIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxODgxCittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4NworbXNnaWQgIm5vIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODkKK21zZ2lkICJEaWQgbm90IHdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTEKK21zZ2lkICJ5ZXMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5NQorbXNnaWQgIlBsZWFzZSBlbnRlciBgeWVzJyBvciBgbm8nIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTkKK21zZ2lkICJXcml0aW5nIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrLi4uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjYKK21zZ2lkICIiCisiV3JvdGUgcGFydGl0aW9uIHRhYmxlLCBidXQgcmUtcmVhZCB0YWJsZSBmYWlsZWQuICBSdW4gcGFydHByb2JlKDgpLCBrcGFydHgiCisiKDgpIG9yIHJlYm9vdCB0byB1cGRhdGUgdGFibGUuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM4Cittc2dpZCAiIgorIk1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlLiBET1MgTUJSIGNhbm5vdCBib290IHRoaXMuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5OTYgZmRpc2svY2ZkaXNrLmM6MjExNSBmZGlzay9jZmRpc2suYzoyMTk5Cittc2dpZCAiRW50ZXIgZmlsZW5hbWUgb3IgcHJlc3MgUkVUVVJOIHRvIGRpc3BsYXkgb24gc2NyZWVuOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAwNSBmZGlzay9jZmRpc2suYzoyMTIzIGZkaXNrL2NmZGlzay5jOjIyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZmlsZSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAyNQorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQ6XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NQorbXNnaWQgIiAgIE5vbmUgICAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0NworbXNnaWQgIiAgIFByaS9Mb2ciCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA0OQorbXNnaWQgIiAgIFByaW1hcnkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA1MQorbXNnaWQgIiAgIExvZ2ljYWwiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA4OSBmZGlzay9mZGlzay5jOjE3NjcgZmRpc2svZmRpc2suYzoyMTA2CisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjI3IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MTYgZmRpc2svc2ZkaXNrLmM6NjM4Cittc2dpZCAiVW5rbm93biIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk1IGZkaXNrL2NmZGlzay5jOjI1NjMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5Cittc2dpZCAiQm9vdCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiglMDJYKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk5Cittc2dpZCAiTm9uZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM0IGZkaXNrL2NmZGlzay5jOjIyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uIFRhYmxlIGZvciAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzYKK21zZ2lkICIgICAgICAgICAgICAgICBGaXJzdCAgICAgICBMYXN0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNworbXNnaWQgIiIKKyIgIyBUeXBlICAgICAgIFNlY3RvciAgICAgIFNlY3RvciAgIE9mZnNldCAgICBMZW5ndGggICBGaWxlc3lzdGVtIFR5cGUgKElEKSAiCisiRmxhZ1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIxCittc2dpZCAiICAgICAgICAgLS0tU3RhcnRpbmctLS0tICAgICAgLS0tLUVuZGluZy0tLS0tICAgIFN0YXJ0ICAgICBOdW1iZXIgb2ZcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCittc2dpZCAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJSYXciCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NgorbXNnaWQgIlByaW50IHRoZSB0YWJsZSB1c2luZyByYXcgZGF0YSBmb3JtYXQiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NyBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiU2VjdG9ycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU3Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU4Cittc2dpZCAiVGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODcKK21zZ2lkICJIZWxwIFNjcmVlbiBmb3IgY2ZkaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyODkKK21zZ2lkICJUaGlzIGlzIGNmZGlzaywgYSBjdXJzZXMgYmFzZWQgZGlzayBwYXJ0aXRpb25pbmcgcHJvZ3JhbSwgd2hpY2giCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MAorbXNnaWQgImFsbG93cyB5b3UgdG8gY3JlYXRlLCBkZWxldGUgYW5kIG1vZGlmeSBwYXJ0aXRpb25zIG9uIHlvdXIgaGFyZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MworbXNnaWQgIkNvcHlyaWdodCAoQykgMTk5NC0xOTk5IEtldmluIEUuIE1hcnRpbiAmIGFlYiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk1Cittc2dpZCAiQ29tbWFuZCAgICAgIE1lYW5pbmciCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NgorbXNnaWQgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTcKK21zZ2lkICIgIGIgICAgICAgICAgVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTgKK21zZ2lkICIgIGQgICAgICAgICAgRGVsZXRlIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgICAgICAgICAgV0FSTklORzogVGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBwZW9wbGUgd2hvIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgICAgICAgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAyCittc2dpZCAiICBoICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDMKK21zZ2lkICIgIG0gICAgICAgICAgTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAgICAgICAgICBOb3RlOiBUaGlzIG1heSBtYWtlIHRoZSBwYXJ0aXRpb24gaW5jb21wYXRpYmxlIHdpdGgiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAgICAgICAgICBET1MsIE9TLzIsIC4uLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA2Cittc2dpZCAiICBuICAgICAgICAgIENyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA3Cittc2dpZCAiICBwICAgICAgICAgIFByaW50IHBhcnRpdGlvbiB0YWJsZSB0byB0aGUgc2NyZWVuIG9yIHRvIGEgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIGNob29zZSBmcm9tOiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEwCittc2dpZCAiICAgICAgICAgICAgICAgIHIgLSBSYXcgZGF0YSAoZXhhY3RseSB3aGF0IHdvdWxkIGJlIHdyaXR0ZW4gdG8gZGlzaykiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAgICAgICAgICAgICBzIC0gVGFibGUgb3JkZXJlZCBieSBzZWN0b3JzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTIKK21zZ2lkICIgICAgICAgICAgICAgICAgdCAtIFRhYmxlIGluIHJhdyBmb3JtYXQiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgcSAgICAgICAgICBRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTYKK21zZ2lkICIgICAgICAgICAgICAgUm90YXRlcyB0aHJvdWdoIE1CLCBzZWN0b3JzIGFuZCBjeWxpbmRlcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNworbXNnaWQgIiAgVyAgICAgICAgICBXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAobXVzdCBlbnRlciB1cHBlciBjYXNlIFcpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgICAgICAgICAgZWl0aGVyIGNvbmZpcm0gb3IgZGVueSB0aGUgd3JpdGUgYnkgZW50ZXJpbmcgYHllcycgb3IiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMAorbXNnaWQgIiAgICAgICAgICAgICBgbm8nIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjEKK21zZ2lkICJVcCBBcnJvdyAgICAgTW92ZSBjdXJzb3IgdG8gdGhlIHByZXZpb3VzIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIyCittc2dpZCAiRG93biBBcnJvdyAgIE1vdmUgY3Vyc29yIHRvIHRoZSBuZXh0IHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIzCittc2dpZCAiQ1RSTC1MICAgICAgIFJlZHJhd3MgdGhlIHNjcmVlbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI0Cittc2dpZCAiICA/ICAgICAgICAgIFByaW50IHRoaXMgc2NyZWVuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjYKK21zZ2lkICJOb3RlOiBBbGwgb2YgdGhlIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIHdpdGggZWl0aGVyIHVwcGVyIG9yIGxvd2VyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMyCittc2dpZCAiQ3lsaW5kZXJzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTgKK21zZ2lkICJDaGFuZ2UgY3lsaW5kZXIgZ2VvbWV0cnkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OSBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMwCittc2dpZCAiSGVhZHMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OQorbXNnaWQgIkNoYW5nZSBoZWFkIGdlb21ldHJ5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjAKK21zZ2lkICJDaGFuZ2Ugc2VjdG9yIGdlb21ldHJ5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNjEKK21zZ2lkICJEb25lIHdpdGggY2hhbmdpbmcgZ2VvbWV0cnkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM3NAorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM4NSBmZGlzay9jZmRpc2suYzoyOTU4Cittc2dpZCAiSWxsZWdhbCBjeWxpbmRlcnMgdmFsdWUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5MQorbXNnaWQgIkVudGVyIHRoZSBudW1iZXIgb2YgaGVhZHM6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzk4IGZkaXNrL2NmZGlzay5jOjI5NjgKK21zZ2lkICJJbGxlZ2FsIGhlYWRzIHZhbHVlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MDQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQxMSBmZGlzay9jZmRpc2suYzoyOTc1Cittc2dpZCAiSWxsZWdhbCBzZWN0b3JzIHZhbHVlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MTQKK21zZ2lkICJFbnRlciBmaWxlc3lzdGVtIHR5cGU6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTMyCittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1MzQKK21zZ2lkICJDYW5ub3QgY2hhbmdlIEZTIFR5cGUgdG8gZXh0ZW5kZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2OCBmZGlzay9jZmRpc2suYzoyNTcxCittc2dpZCAiLCBOQyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTc2IGZkaXNrL2NmZGlzay5jOjI1NzkKK21zZ2lkICJOQyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTg3Cittc2dpZCAiUHJpL0xvZyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZC4lbGxkIEdCIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSGVhZHM6ICVkICAgU2VjdG9ycyBwZXIgVHJhY2s6ICVkICAgQ3lsaW5kZXJzOiAlbGxkIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODEgbG9naW4tdXRpbHMvY2hmbi5jOjM3NworbXNnaWQgIk5hbWUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4MgorbXNnaWQgIkZsYWdzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NQorbXNnaWQgIltMYWJlbF0iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NworbXNnaWQgIiAgICBTZWN0b3JzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKK21zZ2lkICIgIEN5bGluZGVycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjkxCittc2dpZCAiICBTaXplIChNQikiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MworbXNnaWQgIiAgU2l6ZSAoR0IpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJCb290YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiVG9nZ2xlIGJvb3RhYmxlIGZsYWcgb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OQorbXNnaWQgIkRlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MAorbXNnaWQgIkdlb21ldHJ5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJDaGFuZ2UgZGlzayBnZW9tZXRyeSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiSGVscCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUxCittc2dpZCAiUHJpbnQgaGVscCBzY3JlZW4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTMKK21zZ2lkICJDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NAorbXNnaWQgIlByaW50IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NQorbXNnaWQgIlF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJUeXBlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTYKK21zZ2lkICJDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSAoRE9TLCBMaW51eCwgT1MvMiBhbmQgc28gb24pIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTcKK21zZ2lkICJVbml0cyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrICh0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgwNQorbXNnaWQgIkNhbm5vdCBtYWtlIHRoaXMgcGFydGl0aW9uIGJvb3RhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MTUKK21zZ2lkICJDYW5ub3QgZGVsZXRlIGFuIGVtcHR5IHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyODM1IGZkaXNrL2NmZGlzay5jOjI4MzcKK21zZ2lkICJDYW5ub3QgbWF4aW1pemUgdGhpcyBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg0NQorbXNnaWQgIlRoaXMgcGFydGl0aW9uIGlzIHVudXNhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDcKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyBhbHJlYWR5IGluIHVzZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyODY0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSB0aGUgdHlwZSBvZiBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg5MSBmZGlzay9jZmRpc2suYzoyODk3Cittc2dpZCAiTm8gbW9yZSBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MDQKK21zZ2lkICJJbGxlZ2FsIGNvbW1hbmQiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkxNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYWl4bGFiZWwuYzoyNworbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgQUlYIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgTGludXggY2Fubm90IGhhbmRsZSB0aGVzZVxuIgorIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisiXHRhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCisiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorIlx0ICAgdG8gcmVtb3ZlIHRoZSBkaXNrIGxvZ2ljYWxseSBmcm9tIHlvdXIgQUlYXG4iCisiXHQgICBtYWNoaW5lLiAgKE90aGVyd2lzZSB5b3UgYmVjb21lIGFuIEFJWHBlcnQpLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI4IGZkaXNrL2ZkaXNrLmM6Mzk0IGZkaXNrL2ZkaXNrLmM6NDEzCisjOiBmZGlzay9mZGlzay5jOjQzMSBmZGlzay9mZGlzay5jOjQzOCBmZGlzay9mZGlzay5jOjQ2MSBmZGlzay9mZGlzay5jOjQ3OQorIzogZmRpc2svZmRpc2suYzo0OTUgZmRpc2svZmRpc2suYzo1MTEKK21zZ2lkICJDb21tYW5kIGFjdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI5Cittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMAorbXNnaWQgIiAgIGUgICBlZGl0IGRyaXZlIGRhdGEiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMyCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gZmlsZXN5c3RlbSB0eXBlcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMzIGZkaXNrL2ZkaXNrLmM6NDAwIGZkaXNrL2ZkaXNrLmM6NDE5CisjOiBmZGlzay9mZGlzay5jOjQzMiBmZGlzay9mZGlzay5jOjQ0NCBmZGlzay9mZGlzay5jOjQ2OSBmZGlzay9mZGlzay5jOjQ4NgorIzogZmRpc2svZmRpc2suYzo1MDIgZmRpc2svZmRpc2suYzo1MjAKK21zZ2lkICIgICBtICAgcHJpbnQgdGhpcyBtZW51IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzQKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNQorbXNnaWQgIiAgIHAgICBwcmludCBCU0QgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzYgZmRpc2svZmRpc2suYzo0MDQgZmRpc2svZmRpc2suYzo0MjMKKyM6IGZkaXNrL2ZkaXNrLmM6NDM0IGZkaXNrL2ZkaXNrLmM6NDQ4IGZkaXNrL2ZkaXNrLmM6NDcxIGZkaXNrL2ZkaXNrLmM6NDg4CisjOiBmZGlzay9mZGlzay5jOjUwNCBmZGlzay9mZGlzay5jOjUyMgorbXNnaWQgIiAgIHEgICBxdWl0IHdpdGhvdXQgc2F2aW5nIGNoYW5nZXMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM4Cittc2dpZCAiICAgcyAgIHNob3cgY29tcGxldGUgZGlza2xhYmVsIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzkKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3MgZmlsZXN5c3RlbSBpZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQwCittc2dpZCAiICAgdSAgIGNoYW5nZSB1bml0cyAoY3lsaW5kZXJzL3NlY3RvcnMpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDEKK21zZ2lkICIgICB3ICAgd3JpdGUgZGlza2xhYmVsIHRvIGRpc2siCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MworbXNnaWQgIiAgIHggICBsaW5rIEJTRCBwYXJ0aXRpb24gdG8gbm9uLUJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIGRpc2tsYWJlbCBvZiAlcyBhdCBzZWN0b3IgJWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGVyZSBpcyBubyAqQlNEIHBhcnRpdGlvbiBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjAzCittc2dpZCAiQlNEIGRpc2tsYWJlbCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyODMgZmRpc2svZmRpc2suYzoyMzI4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzgKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmlyc3QgJXMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgJXMgb3IgK3NpemUgb3IgK3NpemVNIG9yICtzaXplSyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGU6ICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlzazogJS4qc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibGFiZWw6ICUuKnNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNgorIywgYy1mb3JtYXQKK21zZ2lkICIgZWNjIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGJhZHNlY3QiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzMgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcy9zZWN0b3I6ICVsZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy90cmFjazogJWxkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNAorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlcjogJWxkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnM6ICVsZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAicnBtOiAlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW50ZXJsZWF2ZTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrc2tldzogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQxCisjLCBjLWZvcm1hdAorbXNnaWQgImhlYWRzd2l0Y2g6ICVsZFx0XHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlazogJWxkXHQjIG1pbGxpc2Vjb25kc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHJpdmVkYXRhOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJWQgcGFydGl0aW9uczpcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiMgICAgICAgc3RhcnQgICAgICAgZW5kICAgICAgc2l6ZSAgICAgZnN0eXBlICAgW2ZzaXplIGJzaXplICAgY3BnXVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDE5IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgY29udGFpbnMgbm8gZGlza2xhYmVsLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjYKK21zZ2lkICJEbyB5b3Ugd2FudCB0byBjcmVhdGUgYSBkaXNrbGFiZWw/ICh5L24pICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjcKK21zZ2lkICJzZWN0b3JzL3RyYWNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjgKK21zZ2lkICJ0cmFja3MvY3lsaW5kZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OSBmZGlzay9mZGlzay5jOjc0MCBmZGlzay9mZGlzay5jOjE1OTIKKyM6IGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgImN5bGluZGVycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDc2Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgPD0gc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciAoZGVmYXVsdCkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgzCittc2dpZCAiaW50ZXJsZWF2ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg0Cittc2dpZCAidHJhY2tza2V3IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODUKK21zZ2lkICJjeWxpbmRlcnNrZXciCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NgorbXNnaWQgImhlYWRzd2l0Y2giCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NworbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWsiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXA6ICVzYm9vdCAtPiBib290JXMgKCVzKTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIG92ZXJsYXBzIHdpdGggZGlzayBsYWJlbCFcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwIGluc3RhbGxlZCBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTk4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAoYS0lYyk6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBhbHJlYWR5IGV4aXN0cy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHRvbyBtYW55IHBhcnRpdGlvbnMgKCVkLCBtYXhpbXVtIGlzICVkKS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiBmZGlzayBbb3B0aW9uc10gPGRpc2s+ICAgIGNoYW5nZSBwYXJ0aXRpb24gdGFibGVcbiIKKyIgZmRpc2sgW29wdGlvbnNdIC1sIDxkaXNrPiBsaXN0IHBhcnRpdGlvbiB0YWJsZShzKVxuIgorIiBmZGlzayAtcyA8cGFydGl0aW9uPiAgICAgIGdpdmUgcGFydGl0aW9uIHNpemUocykgaW4gYmxvY2tzXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgLWIgPHNpemU+ICAgICAgICAgICAgICAgICBzZWN0b3Igc2l6ZSAoNTEyLCAxMDI0LCAyMDQ4IG9yIDQwOTYpXG4iCisiIC1jICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIG9mZiBET1MtY29tcGF0aWJsZSBtb2RlXG4iCisiIC1oICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaGVscFxuIgorIiAtdSA8c2l6ZT4gICAgICAgICAgICAgICAgIGdpdmUgc2l6ZXMgaW4gc2VjdG9ycyBpbnN0ZWFkIG9mIGN5bGluZGVyc1xuIgorIiAtdiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHZlcnNpb25cbiIKKyIgLUMgPG51bWJlcj4gICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzXG4iCisiIC1IIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhlYWRzXG4iCisiIC1TIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgcGVyIHRyYWNrXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gcmVhZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZWVrIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI5MworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBhbnkgbW9yZSBtZW1vcnlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI5NgorbXNnaWQgIkZhdGFsIGVycm9yXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozOTUKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgcmVhZCBvbmx5IGZsYWciCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozOTYgZmRpc2svZmRpc2suYzo0NDAKK21zZ2lkICIgICBiICAgZWRpdCBic2QgZGlza2xhYmVsIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk5IGZkaXNrL2ZkaXNrLmM6NDE4IGZkaXNrL2ZkaXNrLmM6NDQzCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gcGFydGl0aW9uIHR5cGVzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAxIGZkaXNrL2ZkaXNrLmM6NDIwIGZkaXNrL2ZkaXNrLmM6NDQ1Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0MDIgZmRpc2svZmRpc2suYzo0MjEgZmRpc2svZmRpc2suYzo0MzMgZmRpc2svZmRpc2suYzo0NDYKK21zZ2lkICIgICBvICAgY3JlYXRlIGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0MDMgZmRpc2svZmRpc2suYzo0MjIgZmRpc2svZmRpc2suYzo0NDcgZmRpc2svZmRpc2suYzo0NzAKKyM6IGZkaXNrL2ZkaXNrLmM6NDg3IGZkaXNrL2ZkaXNrLmM6NTAzIGZkaXNrL2ZkaXNrLmM6NTIxCittc2dpZCAiICAgcCAgIHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0MDUgZmRpc2svZmRpc2suYzo0MjQgZmRpc2svZmRpc2suYzo0MzUgZmRpc2svZmRpc2suYzo0NDkKK21zZ2lkICIgICBzICAgY3JlYXRlIGEgbmV3IGVtcHR5IFN1biBkaXNrbGFiZWwiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0MDYgZmRpc2svZmRpc2suYzo0MjUgZmRpc2svZmRpc2suYzo0NTAKK21zZ2lkICIgICB0ICAgY2hhbmdlIGEgcGFydGl0aW9uJ3Mgc3lzdGVtIGlkIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA3IGZkaXNrL2ZkaXNrLmM6NDI2IGZkaXNrL2ZkaXNrLmM6NDUxCittc2dpZCAiICAgdSAgIGNoYW5nZSBkaXNwbGF5L2VudHJ5IHVuaXRzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA4IGZkaXNrL2ZkaXNrLmM6NDI3IGZkaXNrL2ZkaXNrLmM6NDUyIGZkaXNrL2ZkaXNrLmM6NDc0CisjOiBmZGlzay9mZGlzay5jOjQ5MSBmZGlzay9mZGlzay5jOjUwNyBmZGlzay9mZGlzay5jOjUyNQorbXNnaWQgIiAgIHYgICB2ZXJpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQwOSBmZGlzay9mZGlzay5jOjQyOCBmZGlzay9mZGlzay5jOjQ1MyBmZGlzay9mZGlzay5jOjQ3NQorIzogZmRpc2svZmRpc2suYzo0OTIgZmRpc2svZmRpc2suYzo1MDggZmRpc2svZmRpc2suYzo1MjYKK21zZ2lkICIgICB3ICAgd3JpdGUgdGFibGUgdG8gZGlzayBhbmQgZXhpdCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQxMCBmZGlzay9mZGlzay5jOjQ1NAorbXNnaWQgIiAgIHggICBleHRyYSBmdW5jdGlvbmFsaXR5IChleHBlcnRzIG9ubHkpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE0Cittc2dpZCAiICAgYSAgIHNlbGVjdCBib290YWJsZSBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0MTUKK21zZ2lkICIgICBiICAgZWRpdCBib290ZmlsZSBlbnRyeSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDM5Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIGJvb3RhYmxlIGZsYWciCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0NDEKK21zZ2lkICIgICBjICAgdG9nZ2xlIHRoZSBkb3MgY29tcGF0aWJpbGl0eSBmbGFnIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDYyCittc2dpZCAiICAgYSAgIGNoYW5nZSBudW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MyBmZGlzay9mZGlzay5jOjQ4MSBmZGlzay9mZGlzay5jOjQ5NyBmZGlzay9mZGlzay5jOjUxMworbXNnaWQgIiAgIGMgICBjaGFuZ2UgbnVtYmVyIG9mIGN5bGluZGVycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NCBmZGlzay9mZGlzay5jOjQ4MiBmZGlzay9mZGlzay5jOjQ5OCBmZGlzay9mZGlzay5jOjUxNAorbXNnaWQgIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY2IGZkaXNrL2ZkaXNrLmM6NDg1IGZkaXNrL2ZkaXNrLmM6NTAxIGZkaXNrL2ZkaXNrLmM6NTE4Cittc2dpZCAiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0NjcKK21zZ2lkICIgICBpICAgY2hhbmdlIGludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY4Cittc2dpZCAiICAgbyAgIGNoYW5nZSByb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQ3MyBmZGlzay9mZGlzay5jOjQ5MCBmZGlzay9mZGlzay5jOjUwNiBmZGlzay9mZGlzay5jOjUyNAorbXNnaWQgIiAgIHMgICBjaGFuZ2UgbnVtYmVyIG9mIHNlY3RvcnMvdHJhY2siCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0NzYKK21zZ2lkICIgICB5ICAgY2hhbmdlIG51bWJlciBvZiBwaHlzaWNhbCBjeWxpbmRlcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0ODAgZmRpc2svZmRpc2suYzo0OTYgZmRpc2svZmRpc2suYzo1MTIKK21zZ2lkICIgICBiICAgbW92ZSBiZWdpbm5pbmcgb2YgZGF0YSBpbiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQ4MyBmZGlzay9mZGlzay5jOjQ5OSBmZGlzay9mZGlzay5jOjUxNQorbXNnaWQgIiAgIGUgICBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE2Cittc2dpZCAiICAgZiAgIGZpeCBwYXJ0aXRpb24gb3JkZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo1MTkKK21zZ2lkICIgICBpICAgY2hhbmdlIHRoZSBkaXNrIGlkZW50aWZpZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3Qgc2V0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM2Cittc2dpZCAiaGVhZHMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3MzggZmRpc2svZmRpc2suYzoxNTkyIGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgInNlY3RvcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IFRoZSBzaXplIG9mIHRoaXMgZGlzayBpcyAlZC4lZCBUQiAoJWxsdSBieXRlcykuXG4iCisiRE9TIHBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgY2FuIG5vdCBiZSB1c2VkIG9uIGRyaXZlcyBmb3Igdm9sdW1lc1xuIgorImxhcmdlciB0aGFuICglbGx1IGJ5dGVzKSBmb3IgJWQtYnl0ZSBzZWN0b3JzLiBVc2UgcGFydGVkKDEpIGFuZCBHVUlEIFxuIgorInBhcnRpdGlvbiB0YWJsZSBmb3JtYXQgKEdQVCkuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBkZXZpY2UgcHJlc2VudHMgYSBsb2dpY2FsIHNlY3RvciBzaXplIHRoYXQgaXMgc21hbGxlciB0aGFuXG4iCisidGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLiBBbGlnbmluZyB0byBhIHBoeXNpY2FsIHNlY3RvciAob3Igb3B0aW1hbFxuIgorIkkvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG9cbiIKKyIgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG9cbiIKKyIgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IGN5bGluZGVycyBhcyBkaXNwbGF5IHVuaXRzIGFyZSBkZXByZWNhdGVkLiBVc2UgY29tbWFuZCAndScgdG9cbiIKKyIgICAgICAgICBjaGFuZ2UgdW5pdHMgdG8gc2VjdG9ycy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjgxOQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgb2Zmc2V0IGluIHByaW1hcnkgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IG9taXR0aW5nIHBhcnRpdGlvbnMgYWZ0ZXIgIyVkLlxuIgorIlRoZXkgd2lsbCBiZSBkZWxldGVkIGlmIHlvdSBzYXZlIHRoaXMgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGV4dHJhIGxpbmsgcG9pbnRlciBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjg2MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBpZ25vcmluZyBleHRyYSBkYXRhIGluIHBhcnRpdGlvbiB0YWJsZSAlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODkzCisjLCBjLWZvcm1hdAorbXNnaWQgIm9taXR0aW5nIGVtcHR5IHBhcnRpdGlvbiAoJWQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBpZGVudGlmaWVyOiAweCUwOHhcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgZGlzayBpZGVudGlmaWVyIChjdXJyZW50IDB4JTA4eCk6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgRE9TIGRpc2tsYWJlbCB3aXRoIGRpc2sgaWRlbnRpZmllciAweCUwOHguXG4iCisiQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLlxuIgorIkFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdGU6IHNlY3RvciBzaXplIGlzICVkIChub3QgJWQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHdyaXRlIHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJJbnRlcm5hbCBlcnJvclxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI4MworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmluZyBleHRyYSBleHRlbmRlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjEyOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGludmFsaWQgZmxhZyAweCUwNHggb2YgcGFydGl0aW9uIHRhYmxlICVkIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHciCisiKHJpdGUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxMzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJnb3QgRU9GIHRocmljZSAtIGV4aXRpbmcuLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTM2MAorbXNnaWQgIkhleCBjb2RlICh0eXBlIEwgdG8gbGlzdCBjb2Rlcyk6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjEzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgKCV1LSV1LCBkZWZhdWx0ICV1KTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnN1cHBvcnRlZCBzdWZmaXg6ICclcycuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdXBwb3J0ZWQ6IDEwXk46IEtCIChLaWxvQnl0ZSksIE1CIChNZWdhQnl0ZSksIEdCIChHaWdhQnl0ZSlcbiIKKyIgICAgICAgICAgICAyXk46IEsgIChLaWJpQnl0ZSksIE0gIChNZWJpQnl0ZSksIEcgIChHaWJpQnl0ZSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgZGVmYXVsdCB2YWx1ZSAldVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNTE4Cittc2dpZCAiUGFydGl0aW9uIG51bWJlciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGhhcyBlbXB0eSB0eXBlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNTUxIGZkaXNrL2ZkaXNrLmM6MTU3NworIywgYy1mb3JtYXQKK21zZ2lkICJTZWxlY3RlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9uIGlzIGRlZmluZWQgeWV0IVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgcHJpbWFyeSBwYXJ0aXRpb25zIGhhdmUgYmVlbiBkZWZpbmVkIGFscmVhZHkhXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAiY3lsaW5kZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IFBhcnRpdGlvbiAlZCBpcyBhbiBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBzZXRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE2MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBub3Qgc2V0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCB5ZXQhXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUeXBlIDAgbWVhbnMgZnJlZSBzcGFjZSB0byBtYW55IHN5c3RlbXNcbiIKKyIoYnV0IG5vdCB0byBMaW51eCkuIEhhdmluZyBwYXJ0aXRpb25zIG9mXG4iCisidHlwZSAwIGlzIHByb2JhYmx5IHVud2lzZS4gWW91IGNhbiBkZWxldGVcbiIKKyJhIHBhcnRpdGlvbiB1c2luZyB0aGUgYGQnIGNvbW1hbmQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNzM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgY2Fubm90IGNoYW5nZSBhIHBhcnRpdGlvbiBpbnRvIGFuIGV4dGVuZGVkIG9uZSBvciB2aWNlIHZlcnNhXG4iCisiRGVsZXRlIGl0IGZpcnN0LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gMyBhcyBXaG9sZSBkaXNrICg1KSxcbiIKKyJhcyBTdW5PUy9Tb2xhcmlzIGV4cGVjdHMgaXQgYW5kIGV2ZW4gTGludXggbGlrZXMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiA5IGFzIHZvbHVtZSBoZWFkZXIgKDApLFxuIgorImFuZCBwYXJ0aXRpb24gMTEgYXMgZW50aXJlIHZvbHVtZSAoNiksIGFzIElSSVggZXhwZWN0cyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE3NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlZCBzeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgdG8gJXggKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgaXMgdW5jaGFuZ2VkOiAleCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgYmVnaW5uaW5ncyAobm9uLUxpbnV4Pyk6XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODI5IGZkaXNrL2ZkaXNrLmM6MTgzNyBmZGlzay9mZGlzay5jOjE4NDYgZmRpc2svZmRpc2suYzoxODU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzMCBmZGlzay9mZGlzay5jOjE4MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naWNhbD0oJWQsICVkLCAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGhhcyBkaWZmZXJlbnQgcGh5c2ljYWwvbG9naWNhbCBlbmRpbmdzOlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnk6XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAxKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg1NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgJWQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQgTUIsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgaGVhZHMsICVsbHUgc2VjdG9ycy90cmFjaywgJWQgY3lsaW5kZXJzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NworIywgYy1mb3JtYXQKK21zZ2lkICIsIHRvdGFsICVsbHUgc2VjdG9ycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5pdHMgPSAlcyBvZiAlZCAqICVkID0gJWQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5NgorIywgYy1mb3JtYXQKK21zZ2lkICJJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogJWx1IGJ5dGVzIC8gJWx1IGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAzNgorIywgYy1mb3JtYXQKK21zZ2lkICJEb25lLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA3OCBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjEwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1OTgKK21zZ2lkICJEZXZpY2UiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJQYXJ0aXRpb24gdGFibGUgZW50cmllcyBhcmUgbm90IGluIGRpc2sgb3JkZXJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJOciBBRiAgSGQgU2VjICBDeWwgIEhkIFNlYyAgQ3lsICAgICBTdGFydCAgICAgIFNpemUgSURcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGNvbnRhaW5zIHNlY3RvciAwXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogaGVhZCAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHNlY3RvciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlbGx1XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbnMgJWQ6IGN5bGluZGVyICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogcHJldmlvdXMgc2VjdG9ycyAlZCBkaXNhZ3JlZXMgd2l0aCB0b3RhbCAlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIG92ZXJsYXBzIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGlzIGVtcHR5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2ljYWwgcGFydGl0aW9uICVkIG5vdCBlbnRpcmVseSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICJSZW1haW5pbmcgJWxsZCB1bmFsbG9jYXRlZCAlZC1ieXRlIHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIzMDEgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYyMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDExCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBpcyBhbHJlYWR5IGRlZmluZWQuICBEZWxldGUgaXQgYmVmb3JlIHJlLWFkZGluZyBpdC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIzNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVsbHUgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI0NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0U29ycnkgLSB0aGlzIGZkaXNrIGNhbm5vdCBoYW5kbGUgQUlYIGRpc2sgbGFiZWxzLlxuIgorIlx0SWYgeW91IHdhbnQgdG8gYWRkIERPUy10eXBlIHBhcnRpdGlvbnMsIGNyZWF0ZVxuIgorIlx0YSBuZXcgZW1wdHkgRE9TIHBhcnRpdGlvbiB0YWJsZSBmaXJzdC4gKFVzZSBvLilcbiIKKyJcdFdBUk5JTkc6IFRoaXMgd2lsbCBkZXN0cm95IHRoZSBwcmVzZW50IGRpc2sgY29udGVudHMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIE1hYyBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBkZWxldGUgc29tZSBwYXJ0aXRpb24gYW5kIGFkZCBhbiBleHRlbmRlZCBwYXJ0aXRpb24gZmlyc3RcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIGxvZ2ljYWwgcGFydGl0aW9ucyBhcmUgaW4gdXNlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb21tYW5kIGFjdGlvblxuIgorIiAgICVzXG4iCisiICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAibCAgIGxvZ2ljYWwgKDUgb3Igb3ZlcikiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTEwCittc2dpZCAiZSAgIGV4dGVuZGVkIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHBhcnRpdGlvbiBudW1iZXIgZm9yIHR5cGUgYCVjJ1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBSZS1yZWFkaW5nIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkIHdpdGggZXJyb3IgJWQ6ICVzLlxuIgorIlRoZSBrZXJuZWwgc3RpbGwgdXNlcyB0aGUgb2xkIHRhYmxlLiBUaGUgbmV3IHRhYmxlIHdpbGwgYmUgdXNlZCBhdFxuIgorInRoZSBuZXh0IHJlYm9vdCBvciBhZnRlciB5b3UgcnVuIHBhcnRwcm9iZSg4KSBvciBrcGFydHgoOClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55IERPUyA2LnhcbiIKKyJwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBmZGlzayBtYW51YWwgcGFnZSBmb3IgYWRkaXRpb25hbFxuIgorImluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRXJyb3IgY2xvc2luZyBmaWxlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgbm8gZGF0YSBhcmVhXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNjU2Cittc2dpZCAiTmV3IGJlZ2lubmluZyBvZiBkYXRhIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY3MgorbXNnaWQgIkV4cGVydCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY4NQorbXNnaWQgIk51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzEwCittc2dpZCAiTnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczNworbXNnaWQgIk51bWJlciBvZiBzZWN0b3JzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczOQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBzZXR0aW5nIHNlY3RvciBvZmZzZXQgZm9yIERPUyBjb21wYXRpYmxpdHlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4NTAgZmRpc2svc2ZkaXNrLmM6MjYwOAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlYzogdW5rbm93biBjb21tYW5kXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdGhlIC1iIChzZXQgc2VjdG9yIHNpemUpIG9wdGlvbiBzaG91bGQgYmUgdXNlZCB3aXRoIG9uZSBzcGVjaWZpZWQgIgorImRldmljZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBhbiBPU0YvMSBkaXNrbGFiZWwgb24gJXMsIGVudGVyaW5nIGRpc2tsYWJlbCBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgY3VycmVudCBib290IGZpbGUgaXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozMDI4Cittc2dpZCAiUGxlYXNlIGVudGVyIHRoZSBuYW1lIG9mIHRoZSBuZXcgYm9vdCBmaWxlOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjMxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJIHBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrbWFjbGFiZWwuYzozMAorbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgTWFjIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgZmRpc2soMSkgY2Fubm90IGhhbmRsZSB0aGVzZSBkaXNrcy5cbiIKKyJcdFVzZSBlaXRoZXIgcGRpc2sgb3IgcGFydGVkIHRvIG1vZGlmeSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorIlx0TmV2ZXJ0aGVsZXNzIHNvbWUgYWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MQorbXNnaWQgIlNHSSB2b2xoZHIiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgyCittc2dpZCAiU0dJIHRya3JlcGwiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgzCittc2dpZCAiU0dJIHNlY3JlcGwiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg0Cittc2dpZCAiU0dJIHJhdyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODUKK21zZ2lkICJTR0kgYnNkIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NgorbXNnaWQgIlNHSSBzeXN2IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NworbXNnaWQgIlNHSSB2b2x1bWUiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODkKK21zZ2lkICJTR0kgbHZvbCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTIKK21zZ2lkICJTR0kgeGZzbG9nIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MworbXNnaWQgIlNHSSB4bHYiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTUgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUwCittc2dpZCAiTGludXggc3dhcCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTYgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUxCittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTIgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MworbXNnaWQgIkxpbnV4IExWTSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTgKK21zZ2lkICJMaW51eCBSQUlEIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkFjY29yZGluZyB0byBNSVBTIENvbXB1dGVyIFN5c3RlbXMsIEluYyB0aGUgTGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gIgorIjUxMiBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqICVkIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSW52YWxpZCBCb290ZmlsZSFcbiIKKyJcdFRoZSBib290ZmlsZSBtdXN0IGJlIGFuIGFic29sdXRlIG5vbi16ZXJvIHBhdGhuYW1lLFxuIgorIlx0ZS5nLiBcIi91bml4XCIgb3IgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIG11c3QgaGF2ZSBhIGZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJlIGF3YXJlLCB0aGF0IHRoZSBib290ZmlsZSBpcyBub3QgY2hlY2tlZCBmb3IgZXhpc3RlbmNlLlxuIgorIlx0U0dJJ3MgZGVmYXVsdCBpcyBcIi91bml4XCIgYW5kIGZvciBiYWNrdXAgXCIvdW5peC5zYXZlXCIuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1vcmUgdGhhbiBvbmUgZW50aXJlIGRpc2sgZW50cnkgcHJlc2VudC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDMzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9ucyBkZWZpbmVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzOQorIywgYy1mb3JtYXQKK21zZ2lkICJJUklYIGxpa2VzIHdoZW4gUGFydGl0aW9uIDExIGNvdmVycyB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGVudGlyZSBkaXNrIHBhcnRpdGlvbiBzaG91bGQgc3RhcnQgYXQgYmxvY2sgMCxcbiIKKyJub3QgYXQgZGlza2Jsb2NrICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gaXMgb25seSAlZCBkaXNrYmxvY2sgbGFyZ2UsXG4iCisiYnV0IHRoZSBkaXNrIGlzICVkIGRpc2tibG9ja3MgbG9uZy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIk9uZSBQYXJ0aXRpb24gKCMxMSkgc2hvdWxkIGNvdmVyIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBzdGFydCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ4NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgb2YgJTh1IHNlY3RvcnMgLSBzZWN0b3JzICU4dS0ldVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGhhcyBubyBzd2FwIHR5cGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUyMworIywgYy1mb3JtYXQKK21zZ2lkICJcdFlvdSBoYXZlIGNob3NlbiBhbiB1bnVzdWFsIGJvb3QgZmlsZSBuYW1lLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnkgWW91IG1heSBjaGFuZ2UgdGhlIFRhZyBvZiBub24tZW1wdHkgcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU2OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBZb3Uga25vdywgWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrP1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBlbnRpcmUgZGlzayBlbnRyeSBhdXRvbWF0aWNhbGx5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGVudGlyZSBkaXNrIGlzIGFscmVhZHkgY292ZXJlZCB3aXRoIHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjQ0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IGVsZXZlbnRoIHBhcnRpdGlvblxuIgorImNvdmVycyB0aGUgZW50aXJlIGRpc2sgYW5kIGlzIG9mIHR5cGUgYFNHSSB2b2x1bWUnXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBnZXQgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIExhc3QgJXMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgU0dJIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3aWxsIGJlIHVucmVjb3ZlcmFibHkgbG9zdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzE4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6ICBCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlcy4gIFVzaW5nIGdlb21ldHJ5IGN5bGluZGVyIHZhbHVlIG9mICUiCisiZC5cbiIKKyJUaGlzIHZhbHVlIG1heSBiZSB0cnVuY2F0ZWQgZm9yIGRldmljZXMgPiAzMy44IEdCLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIGtlZXAgcGFyYW1ldGVycyBvZiBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczNAorIywgYy1mb3JtYXQKK21zZ2lkICJJRD0lMDJ4XHRTVEFSVD0lZFx0TEVOR1RIPSVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4Cittc2dpZCAiVW5hc3NpZ25lZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDAKK21zZ2lkICJTdW5PUyByb290IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MQorbXNnaWQgIlN1bk9TIHN3YXAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyCittc2dpZCAiU3VuT1MgdXNyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MworbXNnaWQgIldob2xlIGRpc2siCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0Cittc2dpZCAiU3VuT1Mgc3RhbmQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ1Cittc2dpZCAiU3VuT1MgdmFyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NgorbXNnaWQgIlN1bk9TIGhvbWUiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3Cittc2dpZCAiU3VuT1MgYWx0IHNlY3RvcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4Cittc2dpZCAiU3VuT1MgY2FjaGVmcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDkKK21zZ2lkICJTdW5PUyByZXNlcnZlZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDMKK21zZ2lkICJMaW51eCByYWlkIGF1dG9kZXRlY3QiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjEzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorIlByb2JhYmx5IHlvdSdsbCBoYXZlIHRvIHNldCBhbGwgdGhlIHZhbHVlcyxcbiIKKyJlLmcuIGhlYWRzLCBzZWN0b3JzLCBjeWxpbmRlcnMgYW5kIHBhcnRpdGlvbnNcbiIKKyJvciBmb3JjZSBhIGZyZXNoIGxhYmVsIChzIGNvbW1hbmQgaW4gbWFpbiBtZW51KVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHZlcnNpb24gWzB4JTA4eF0uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE1MworIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3Jvbmcgc2FuaXR5IFsweCUwOHhdLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogV3JvbmcgdmFsdWVzIG5lZWQgdG8gYmUgZml4ZWQgdXAgYW5kIHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJCdWlsZGluZyBhIG5ldyBzdW4gZGlza2xhYmVsLiBDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LFxuIgorInVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4gQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXNcbiIKKyJjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzEKK21zZ2lkICJTZWN0b3JzL3RyYWNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXNuJ3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgb3ZlcmxhcHMgd2l0aCBvdGhlcnMgaW4gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgMC0lZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAlZC0lZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHRoaXJkIHBhcnRpdGlvbiBjb3ZlcnMgdGhlIHdob2xlIGRpc2tcbiIKKyJhbmQgaXMgb2YgdHlwZSBgV2hvbGUgZGlzaydcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZCBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlbid0IGNvdmVyZWQgdGhlIHdob2xlIGRpc2sgd2l0aCB0aGUgM3JkIHBhcnRpdGlvbiwgYnV0IHlvdXIgdmFsdWVcbiIKKyIlZCAlcyBjb3ZlcnMgc29tZSBvdGhlciBwYXJ0aXRpb24uIFlvdXIgZW50cnkgaGFzIGJlZW4gY2hhbmdlZFxuIgorInRvICVkICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWYgeW91IHdhbnQgdG8gbWFpbnRhaW4gU3VuT1MvU29sYXJpcyBjb21wYXRpYmlsaXR5LCBjb25zaWRlciBsZWF2aW5nIHRoaXNcbiIKKyJwYXJ0aXRpb24gYXMgV2hvbGUgZGlzayAoNSksIHN0YXJ0aW5nIGF0IDAsIHdpdGggJXUgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NDQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHBhcnRpdGlvbiBhdCBvZmZzZXQgMFxuIgorImlzIFVGUywgRVhUMkZTIGZpbGVzeXN0ZW0gb3IgU3VuT1Mgc3dhcC4gUHV0dGluZyBMaW51eCBzd2FwXG4iCisidGhlcmUgbWF5IGRlc3Ryb3kgeW91ciBwYXJ0aXRpb24gdGFibGUgYW5kIGJvb3RibG9jay5cbiIKKyJUeXBlIFlFUyBpZiB5b3UncmUgdmVyeSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRoYXQgcGFydGl0aW9uXG4iCisidGFnZ2VkIHdpdGggODIgKExpbnV4IHN3YXApOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBycG1cbiIKKyIlZCBjeWxpbmRlcnMsICVkIGFsdGVybmF0ZSBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiTGFiZWwgSUQ6ICVzXG4iCisiVm9sdW1lIElEOiAlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiA1MTIgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBGbGFnICAgIFN0YXJ0ICAgICAgIEVuZCAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYyNQorbXNnaWQgIk51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MzcKK21zZ2lkICJFeHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjQ0Cittc2dpZCAiSW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1MQorbXNnaWQgIlJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTgKK21zZ2lkICJOdW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OAorbXNnaWQgIlhFTklYIHJvb3QiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5Cittc2dpZCAiWEVOSVggdXNyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAKK21zZ2lkICJGQVQxNiA8MzJNIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTEKK21zZ2lkICJFeHRlbmRlZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEyCittc2dpZCAiRkFUMTYiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMworbXNnaWQgIkhQRlMvTlRGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE0Cittc2dpZCAiQUlYIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTUKK21zZ2lkICJBSVggYm9vdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNgorbXNnaWQgIk9TLzIgQm9vdCBNYW5hZ2VyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTcKK21zZ2lkICJXOTUgRkFUMzIiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOAorbXNnaWQgIlc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE5Cittc2dpZCAiVzk1IEZBVDE2IChMQkEpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjAKK21zZ2lkICJXOTUgRXh0J2QgKExCQSkiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMQorbXNnaWQgIk9QVVMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMgorbXNnaWQgIkhpZGRlbiBGQVQxMiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIzCittc2dpZCAiQ29tcGFxIGRpYWdub3N0aWNzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjQKK21zZ2lkICJIaWRkZW4gRkFUMTYgPDMyTSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI1Cittc2dpZCAiSGlkZGVuIEZBVDE2IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjYKK21zZ2lkICJIaWRkZW4gSFBGUy9OVEZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjcKK21zZ2lkICJBU1QgU21hcnRTbGVlcCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI4Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI5Cittc2dpZCAiSGlkZGVuIFc5NSBGQVQzMiAoTEJBKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMxCittc2dpZCAiTkVDIERPUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMyCittc2dpZCAiUGxhbiA5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzMKK21zZ2lkICJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNQorbXNnaWQgIlBQQyBQUmVQIEJvb3QiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNgorbXNnaWQgIlNGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM3Cittc2dpZCAiUU5YNC54IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzgKK21zZ2lkICJRTlg0LnggMm5kIHBhcnQiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozOQorbXNnaWQgIlFOWDQueCAzcmQgcGFydCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQwCittc2dpZCAiT25UcmFjayBETSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQxCittc2dpZCAiT25UcmFjayBETTYgQXV4MSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQyCittc2dpZCAiQ1AvTSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQzCittc2dpZCAiT25UcmFjayBETTYgQXV4MyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ0Cittc2dpZCAiT25UcmFja0RNNiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ1Cittc2dpZCAiRVotRHJpdmUiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NgorbXNnaWQgIkdvbGRlbiBCb3ciCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NworbXNnaWQgIlByaWFtIEVkaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MgorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk5Cittc2dpZCAiU3BlZWRTdG9yIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDkKK21zZ2lkICJHTlUgSFVSRCBvciBTeXNWIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTAKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAyODYiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MQorbXNnaWQgIk5vdmVsbCBOZXR3YXJlIDM4NiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUyCittc2dpZCAiRGlza1NlY3VyZSBNdWx0aS1Cb290IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTMKK21zZ2lkICJQQy9JWCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU0Cittc2dpZCAiT2xkIE1pbml4IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTUKK21zZ2lkICJNaW5peCAvIG9sZCBMaW51eCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2Cittc2dpZCAiTGludXggc3dhcCAvIFNvbGFyaXMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTkKK21zZ2lkICJMaW51eCBleHRlbmRlZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MgorbXNnaWQgIkxpbnV4IHBsYWludGV4dCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY0Cittc2dpZCAiQW1vZWJhIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjUKK21zZ2lkICJBbW9lYmEgQkJUIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjYKK21zZ2lkICJCU0QvT1MiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NworbXNnaWQgIklCTSBUaGlua3BhZCBoaWJlcm5hdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY4Cittc2dpZCAiRnJlZUJTRCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY5Cittc2dpZCAiT3BlbkJTRCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MQorbXNnaWQgIkRhcndpbiBVRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MgorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjczCittc2dpZCAiRGFyd2luIGJvb3QiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NAorbXNnaWQgIkhGUyAvIEhGUysiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NQorbXNnaWQgIkJTREkgZnMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NgorbXNnaWQgIkJTREkgc3dhcCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc3Cittc2dpZCAiQm9vdCBXaXphcmQgaGlkZGVuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3OQorbXNnaWQgIlNvbGFyaXMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MAorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTEyKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgxCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYgPCAzMk0pIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODIKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNikiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MworbXNnaWQgIlN5cmlueCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg0Cittc2dpZCAiTm9uLUZTIGRhdGEiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NQorbXNnaWQgIkNQL00gLyBDVE9TIC8gLi4uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODcKK21zZ2lkICJEZWxsIFV0aWxpdHkiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OAorbXNnaWQgIkJvb3RJdCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg5Cittc2dpZCAiRE9TIGFjY2VzcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkxCittc2dpZCAiRE9TIFIvTyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk0Cittc2dpZCAiQmVPUyBmcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk1Cittc2dpZCAiR1BUIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NworbXNnaWQgIkxpbnV4L1BBLVJJU0MgYm9vdCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMAorbXNnaWQgIkRPUyBzZWNvbmRhcnkiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDEKK21zZ2lkICJWTXdhcmUgVk1GUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMgorbXNnaWQgIlZNd2FyZSBWTUtDT1JFIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA2Cittc2dpZCAiTEFOc3RlcCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNworbXNnaWQgIkJCVCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvciBvbiAlcyAtIGNhbm5vdCBzZWVrIHRvICVsdVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2OQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWVrIGVycm9yOiB3YW50ZWQgMHglMDh4JTA4eCwgZ290IDB4JTA4eCUwOHhcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTUKK21zZ2lkICJvdXQgb2YgbWVtb3J5IC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIwIGZkaXNrL3NmZGlzay5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGVycm9yIG9uICVzIC0gY2Fubm90IHJlYWQgc2VjdG9yICVsdVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJFUlJPUjogc2VjdG9yICVsdSBkb2VzIG5vdCBoYXZlIGFuIG1zZG9zIHNpZ25hdHVyZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiBzZWN0b3Igc2F2ZSBmaWxlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQwCittc2dpZCAicGFydGl0aW9uIHJlc3RvcmUgZmlsZSBoYXMgd3Jvbmcgc2l6ZSAtIG5vdCByZXN0b3JpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozNDQKK21zZ2lkICJvdXQgb2YgbWVtb3J5P1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gcmVzdG9yZSBmaWxlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcmVhZGluZyAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzZWN0b3IgJWx1IG9uICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgZ2VvbWV0cnlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo0NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlczogY2Fubm90IGdldCBzaXplXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzdGFydD0lbHUgLSB0aGlzIGxvb2tzIGxpa2UgYSBwYXJ0aXRpb24gcmF0aGVyIHRoYW5cbiIKKyJ0aGUgZW50aXJlIGRpc2suIFVzaW5nIGZkaXNrIG9uIGl0IGlzIHByb2JhYmx5IG1lYW5pbmdsZXNzLlxuIgorIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBoZWFkc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEJMS0dFVFNJWkUvSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgY3lsaW5kZXJzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6NTA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1bmxpa2VseSBudW1iZXIgb2Ygc2VjdG9ycyAoJWx1KSAtIHVzdWFsbHkgYXQgbW9zdCA2M1xuIgorIlRoaXMgd2lsbCBnaXZlIHByb2JsZW1zIHdpdGggYWxsIHNvZnR3YXJlIHRoYXQgdXNlcyBDL0gvUyBhZGRyZXNzaW5nLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjUxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWx1IGN5bGluZGVycywgJWx1IGhlYWRzLCAlbHUgc2VjdG9ycy90cmFja1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3Igc2VjdG9yOiAlbHUgKHNob3VsZCBiZSBpbiAxLSUiCisibHUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIGN5bGluZGVyczogJWx1IChzaG91bGQgYmUgaW4gMC0lIgorImx1KVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWQgIE5hbWVcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxMQorbXNnaWQgIiIKKyJUaGUgY29tbWFuZCB0byByZS1yZWFkIHRoZSBwYXJ0aXRpb24gdGFibGUgZmFpbGVkLlxuIgorIlJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCg4KSBvciByZWJvb3QgeW91ciBzeXN0ZW0gbm93LFxuIgorImJlZm9yZSB1c2luZyBta2ZzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGNsb3NpbmcgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo4NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIHN1Y2ggcGFydGl0aW9uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODc4Cittc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCAtIHVzaW5nIHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo5MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5pbXBsZW1lbnRlZCBmb3JtYXQgLSB1c2luZyAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBjeWxpbmRlcnMgb2YgJWx1IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gc2VjdG9ycyBvZiA1MTIgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICAgU3RhcnQgICAgICAgRW5kICAgI3NlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo5NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgICBTdGFydCAgICAgICBFbmQgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gbWViaWJ5dGVzIG9mIDEwNDg1NzYgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290IFN0YXJ0ICAgRW5kICAgIE1pQiAgICAjYmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdHN0YXJ0OiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRcdGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTMzCittc2dpZCAiTm8gcGFydGl0aW9ucyBmb3VuZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjExMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFRoZSBwYXJ0aXRpb24gdGFibGUgbG9va3MgbGlrZSBpdCB3YXMgbWFkZVxuIgorIiAgZm9yIEMvSC9TPSovJWxkLyVsZCAoaW5zdGVhZCBvZiAlbGQvJWxkLyVsZCkuXG4iCisiRm9yIHRoaXMgbGlzdGluZyBJJ2xsIGFzc3VtZSB0aGF0IGdlb21ldHJ5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg4CisjLCBjLWZvcm1hdAorbXNnaWQgInN0cmFuZ2UsIG9ubHkgJWQgcGFydGl0aW9ucyBkZWZpbmVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjExOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYnV0IGlzIG5vdCBtYXJrZWQgRW1wdHlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBpcyBib290YWJsZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyAiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBub3QgY29udGFpbmVkIGluIHBhcnRpdGlvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9ucyAlcyAiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJhbmQgJXMgb3ZlcmxhcFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBjb250YWlucyBwYXJ0IG9mIHRoZSBwYXJ0aXRpb24gdGFibGUgKHNlY3RvciAlbHUpLFxuIgorImFuZCB3aWxsIGRlc3Ryb3kgaXQgd2hlbiBmaWxsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBleHRlbmRzIHBhc3QgZW5kIG9mIGRpc2tcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjY5Cittc2dpZCAiIgorIkFtb25nIHRoZSBwcmltYXJ5IHBhcnRpdGlvbnMsIGF0IG1vc3Qgb25lIGNhbiBiZSBleHRlbmRlZFxuIgorIiAoYWx0aG91Z2ggdGhpcyBpcyBub3QgYSBwcm9ibGVtIHVuZGVyIExpbnV4KVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGRvZXMgbm90IHN0YXJ0IGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTgKK21zZ2lkICIiCisiV2FybmluZzogdXN1YWxseSBvbmUgY2FuIGJvb3QgZnJvbSBwcmltYXJ5IHBhcnRpdGlvbnMgb25seVxuIgorIkxJTE8gZGlzcmVnYXJkcyB0aGUgYGJvb3RhYmxlJyBmbGFnLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMjQKK21zZ2lkICIiCisiV2FybmluZzogbm8gcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzM4Cittc2dpZCAic3RhcnQiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisicGFydGl0aW9uICVzOiBzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzQ3Cittc2dpZCAiZW5kIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzOiBlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXMgZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM3OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc2hpZnRlZCBzdGFydCBvZiB0aGUgZXh0ZCBwYXJ0aXRpb24gZnJvbSAlbGQgdG8gJWxkXG4iCisiKEZvciBsaXN0aW5nIHB1cnBvc2VzIG9ubHkuIERvIG5vdCBjaGFuZ2UgaXRzIGNvbnRlbnRzLilcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzg0Cittc2dpZCAiIgorIldhcm5pbmc6IGV4dGVuZGVkIHBhcnRpdGlvbiBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorIkRPUyBhbmQgTGludXggd2lsbCBpbnRlcnByZXQgdGhlIGNvbnRlbnRzIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MDIgZmRpc2svc2ZkaXNrLmM6MTQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zIC0gaWdub3JpbmcgdGhvc2UgcGFzdCBuciAoJWQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTQxNworbXNnaWQgInRyZWUgb2YgcGFydGl0aW9ucz9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTI1Cittc2dpZCAiZGV0ZWN0ZWQgRGlzayBNYW5hZ2VyIC0gdW5hYmxlIHRvIGhhbmRsZSB0aGF0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUzMgorbXNnaWQgIkRNNiBzaWduYXR1cmUgZm91bmQgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTU5IGZkaXNrL3NmZGlzay5jOjE1NzAKK21zZ2lkICJzdHJhbmdlLi4uLCBhIEJTRCBwYXJ0aXRpb24gb2Ygc2l6ZSAwP1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzOiB1bnJlY29nbml6ZWQgcGFydGl0aW9uIHRhYmxlIHR5cGVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjE2Cittc2dpZCAiLW4gZmxhZyB3YXMgZ2l2ZW46IE5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzIKK21zZ2lkICJGYWlsZWQgc2F2aW5nIHRoZSBvbGQgc2VjdG9ycyAtIGFib3J0aW5nXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYzNyBmZGlzay9zZmRpc2suYzoxNjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB3cml0aW5nIHRoZSBwYXJ0aXRpb24gb24gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzE5Cittc2dpZCAibG9uZyBvciBpbmNvbXBsZXRlIGlucHV0IGxpbmUgLSBxdWl0dGluZ1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IGA9JyBleHBlY3RlZCBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IHVuZXhwZWN0ZWQgY2hhcmFjdGVyICVjIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTc2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bnJlY29nbml6ZWQgaW5wdXQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxMAorbXNnaWQgIm51bWJlciB0b28gYmlnXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxNAorbXNnaWQgInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtYmVyXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTkzOAorbXNnaWQgIm5vIHJvb20gZm9yIHBhcnRpdGlvbiBkZXNjcmlwdG9yXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTk3MQorbXNnaWQgImNhbm5vdCBidWlsZCBzdXJyb3VuZGluZyBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDIyCittc2dpZCAidG9vIG1hbnkgaW5wdXQgZmllbGRzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA1NgorbXNnaWQgIk5vIHJvb20gZm9yIG1vcmVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDc1Cittc2dpZCAiSWxsZWdhbCB0eXBlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjExMworbXNnaWQgIldhcm5pbmc6IGVtcHR5IHBhcnRpdGlvblxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHBhcnRpdGlvbiBzdGFydCAoZWFybGllc3QgJWx1KVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNDAKK21zZ2lkICJ1bnJlY29nbml6ZWQgYm9vdGFibGUgZmxhZyAtIGNob29zZSAtIG9yICpcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTU3IGZkaXNrL3NmZGlzay5jOjIxNzAKK21zZ2lkICJwYXJ0aWFsIGMsaCxzIHNwZWNpZmljYXRpb24/XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE4MQorbXNnaWQgIkV4dGVuZGVkIHBhcnRpdGlvbiBub3Qgd2hlcmUgZXhwZWN0ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjEzCittc2dpZCAiYmFkIGlucHV0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjY4Cittc2dpZCAiIgorIklucHV0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OyBhYnNlbnQgZmllbGRzIGdldCBhIGRlZmF1bHQgdmFsdWUuXG4iCisiPHN0YXJ0PiA8c2l6ZT4gPHR5cGUgW0UsUyxMLFgsaGV4XT4gPGJvb3RhYmxlIFstLCpdPiA8YyxoLHM+IDxjLGgscz5cbiIKKyJVc3VhbGx5IHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSA8c3RhcnQ+IGFuZCA8c2l6ZT4gKGFuZCBwZXJoYXBzIDx0eXBlPikuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIGRldmljZSAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk2Cittc2dpZCAidXNlZnVsIG9wdGlvbnM6IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTcKK21zZ2lkICIgICAgLXMgW29yIC0tc2hvdy1zaXplXTogbGlzdCBzaXplIG9mIGEgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTgKK21zZ2lkICIgICAgLWMgW29yIC0taWRdOiAgICAgICAgcHJpbnQgb3IgY2hhbmdlIHBhcnRpdGlvbiBJZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk5Cittc2dpZCAiICAgIC1sIFtvciAtLWxpc3RdOiAgICAgIGxpc3QgcGFydGl0aW9ucyBvZiBlYWNoIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAwCittc2dpZCAiICAgIC1kIFtvciAtLWR1bXBdOiAgICAgIGlkZW0sIGJ1dCBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgbGF0ZXIgaW5wdXQiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAtaSBbb3IgLS1pbmNyZW1lbnRdOiBudW1iZXIgY3lsaW5kZXJzIGV0Yy4gZnJvbSAxIGluc3RlYWQgb2YgZnJvbSAwIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDIKK21zZ2lkICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGFjY2VwdC9yZXBvcnQgaW4gdW5pdHMgb2Ygc2VjdG9ycy9ibG9ja3MvY3lsaW5kZXJzLyIKKyJNQiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAzCittc2dpZCAiICAgIC1UIFtvciAtLWxpc3QtdHlwZXNdOmxpc3QgdGhlIGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA0Cittc2dpZCAiICAgIC1EIFtvciAtLURPU106ICAgICAgIGZvciBET1MtY29tcGF0aWJpbGl0eTogd2FzdGUgYSBsaXR0bGUgc3BhY2UiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAtUiBbb3IgLS1yZS1yZWFkXTogICBtYWtlIGtlcm5lbCByZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDYKK21zZ2lkICIgICAgLU4jIDogICAgICAgICAgICAgICAgY2hhbmdlIG9ubHkgdGhlIHBhcnRpdGlvbiB3aXRoIG51bWJlciAjIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDcKK21zZ2lkICIgICAgLW4gOiAgICAgICAgICAgICAgICAgZG8gbm90IGFjdHVhbGx5IHdyaXRlIHRvIGRpc2siCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOAorbXNnaWQgIiIKKyIgICAgLU8gZmlsZSA6ICAgICAgICAgICAgc2F2ZSB0aGUgc2VjdG9ycyB0aGF0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gdG8gZmlsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA5Cittc2dpZCAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIHJlc3RvcmUgdGhlc2Ugc2VjdG9ycyBhZ2FpbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEwCittc2dpZCAiICAgIC12IFtvciAtLXZlcnNpb25dOiAgIHByaW50IHZlcnNpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMQorbXNnaWQgIiAgICAtPyBbb3IgLS1oZWxwXTogICAgICBwcmludCB0aGlzIG1lc3NhZ2UiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMgorbXNnaWQgImRhbmdlcm91cyBvcHRpb25zOiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzEzCittc2dpZCAiICAgIC1nIFtvciAtLXNob3ctZ2VvbWV0cnldOiBwcmludCB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgZ2VvbWV0cnkiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorbXNnaWQgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IHByaW50IGdlb21ldHJ5IGd1ZXNzZWQgZnJvbSB0aGUgcGFydGl0aW9uICIKKyJ0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE1Cittc2dpZCAiIgorIiAgICAteCBbb3IgLS1zaG93LWV4dGVuZGVkXTogYWxzbyBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMgb24gb3V0cHV0XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBleHBlY3QgZGVzY3JpcHRvcnMgZm9yIHRoZW0gb24gaW5wdXQiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNworbXNnaWQgIiIKKyIgICAgLUwgIFtvciAtLUxpbnV4XTogICAgICBkbyBub3QgY29tcGxhaW4gYWJvdXQgdGhpbmdzIGlycmVsZXZhbnQgZm9yIExpbnV4IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgLXEgIFtvciAtLXF1aWV0XTogICAgICBzdXBwcmVzcyB3YXJuaW5nIG1lc3NhZ2VzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgWW91IGNhbiBvdmVycmlkZSB0aGUgZGV0ZWN0ZWQgZ2VvbWV0cnkgdXNpbmc6IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgLUMjIFtvciAtLWN5bGluZGVycyAjXTpzZXQgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gdXNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjEKK21zZ2lkICIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICBzZXQgdGhlIG51bWJlciBvZiBoZWFkcyB0byB1c2UiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMgorbXNnaWQgIiAgICAtUyMgW29yIC0tc2VjdG9ycyAjXTogIHNldCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgdG8gdXNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjMKK21zZ2lkICJZb3UgY2FuIGRpc2FibGUgYWxsIGNvbnNpc3RlbmN5IGNoZWNraW5nIHdpdGg6IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjQKK21zZ2lkICIgICAgLWYgIFtvciAtLWZvcmNlXTogICAgICBkbyB3aGF0IEkgc2F5LCBldmVuIGlmIGl0IGlzIHN0dXBpZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMwCittc2dpZCAiVXNhZ2U6IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlIG4xIG4yIC4uLiBhY3RpdmF0ZSBwYXJ0aXRpb25zIG4xIC4uLiwgaW5hY3RpdmF0ZSB0aGUgcmVzdFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLUFuIGRldmljZVx0IGFjdGl2YXRlIHBhcnRpdGlvbiBuLCBpbmFjdGl2YXRlIHRoZSBvdGhlciBvbmVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgc2ZkaXNrICIKKyJkb2Vzbid0IHN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDU2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIHRoaXMgY2hlY2suXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ5NQorbXNnaWQgIm5vIGNvbW1hbmQ/XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjYyNworIywgYy1mb3JtYXQKK21zZ2lkICJ0b3RhbDogJWxsdSBibG9ja3NcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjcwCittc2dpZCAidXNhZ2U6IHNmZGlzayAtLXByaW50LWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MgorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgSWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjgxCittc2dpZCAiY2FuIHNwZWNpZnkgb25seSBvbmUgZGV2aWNlIChleGNlcHQgd2l0aCAtbCBvciAtcylcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjczNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT0tcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzUzIGZkaXNrL3NmZGlzay5jOjI3ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjeWxpbmRlcnMsICVsZCBoZWFkcywgJWxkIHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBnZXQgc2l6ZSBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIGFjdGl2ZSBieXRlOiAweCV4IGluc3RlYWQgb2YgMHg4MFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGhhcyBpZCAleCBhbmQgaXMgbm90IGhpZGRlblxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMDQKK21zZ2lkICJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhdGFsIGVycm9yOiBjYW5ub3QgZmluZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzMgorbXNnaWQgIkNoZWNraW5nIHRoYXQgbm8tb25lIGlzIHVzaW5nIHRoaXMgZGlzayByaWdodCBub3cgLi4uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzgKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSBhbGwgY2hlY2tzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2xkIHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCwgY2Fubm90IGNoYW5nZSBpdFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IHNpdHVhdGlvbjpcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDY4Cittc2dpZCAiIgorIkkgZG9uJ3QgbGlrZSB0aGVzZSBwYXJ0aXRpb25zIC0gbm90aGluZyBjaGFuZ2VkLlxuIgorIihJZiB5b3UgcmVhbGx5IHdhbnQgdGhpcywgdXNlIHRoZSAtLWZvcmNlIG9wdGlvbi4pXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3MQorbXNnaWQgIkkgZG9uJ3QgbGlrZSB0aGlzIC0gcHJvYmFibHkgeW91IHNob3VsZCBhbnN3ZXIgTm9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8geW91IHdhbnQgdG8gd3JpdGUgdGhpcyB0byBkaXNrPyBbeW5xXSAiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisic2ZkaXNrOiBwcmVtYXR1cmUgZW5kIG9mIGlucHV0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA4NQorbXNnaWQgIlF1aXR0aW5nIC0gbm90aGluZyBjaGFuZ2VkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMxMDUKK21zZ2lkICIiCisiSWYgeW91IGNyZWF0ZWQgb3IgY2hhbmdlZCBhIERPUyBwYXJ0aXRpb24sIC9kZXYvZm9vNywgc2F5LCB0aGVuIHVzZSBkZCgxKVxuIgorInRvIHplcm8gdGhlIGZpcnN0IDUxMiBieXRlczogIGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoU2VlIGZkaXNrKDgpLilcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogY291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogYmFkIGZvcm1hdCBvbiBsaW5lICVkIG9mICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MzUyCittc2dpZCAiIgorIldBUk5JTkc6IFlvdXIgL2V0Yy9mc3RhYiBkb2VzIG5vdCBjb250YWluIHRoZSBmc2NrIHBhc3Nub1xuIgorIlx0ZmllbGQuICBJIHdpbGwga2x1ZGdlIGFyb3VuZCB0aGluZ3MgZm9yIHlvdSwgYnV0IHlvdVxuIgorIlx0c2hvdWxkIGZpeCB5b3VyIC9ldGMvZnN0YWIgZmlsZSBhcyBzb29uIGFzIHlvdSBjYW4uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NDYwCisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6ICVzOiBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjYwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlczogc3RhdHVzIGlzICV4LCBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjY0MworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCB3aXRoICVzIChleGl0IHN0YXR1cyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzIGZvciAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjcyNAorbXNnaWQgIiIKKyJFaXRoZXIgYWxsIG9yIG5vbmUgb2YgdGhlIGZpbGVzeXN0ZW0gdHlwZXMgcGFzc2VkIHRvIC10IG11c3QgYmUgcHJlZml4ZWRcbiIKKyJ3aXRoICdubycgb3IgJyEnLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjc0MworbXNnaWQgIkNvdWxkbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgZmlsZXN5c3RlbSB0eXBlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6ODkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyBub25leGlzdGVudCBkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjazogY2Fubm90IGNoZWNrICVzOiBmc2NrLiVzIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjk3NAorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICItLXdhaXRpbmctLSAocGFzcyAlZClcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMDg1Cittc2dpZCAiIgorIlVzYWdlOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gW2ZpbGVzeXMgLi4uXVxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGRldmljZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTM0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTEzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJcyAvcHJvYyBtb3VudGVkP1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSByb290IHRvIHNjYW4gZm9yIG1hdGNoaW5nIGZpbGVzeXN0ZW1zOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgZmluZCBtYXRjaGluZyBmaWxlc3lzdGVtOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExNTYgZnNjay9mc2NrLmM6MTI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgYXJndW1lbnRzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrIGZyb20gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MjI5Cittc2dpZCAiVHJ5IGBnZXRvcHQgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mjk1Cittc2dpZCAiZW1wdHkgbG9uZyBvcHRpb24gYWZ0ZXIgLWwgb3IgLS1sb25nIGFyZ3VtZW50IgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMTUKK21zZ2lkICJ1bmtub3duIHNoZWxsIGFmdGVyIC1zIG9yIC0tc2hlbGwgYXJndW1lbnQiCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIxCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjIKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSAtb3wtLW9wdGlvbnMgb3B0c3RyaW5nIFtvcHRpb25zXSBbLS1dXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMworbXNnaWQgIiAgICAgICAgICAgICAgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjQKK21zZ2lkICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNQorbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBUaGlzIHNtYWxsIHVzYWdlIGd1aWRlXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNgorbXNnaWQgIiAgLWwsIC0tbG9uZ29wdGlvbnM9bG9uZ29wdHMgICBMb25nIG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjcKK21zZ2lkICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1lIHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI4Cittc2dpZCAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIFNob3J0IG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjkKK21zZ2lkICIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgRGlzYWJsZSBlcnJvciByZXBvcnRpbmcgYnkgZ2V0b3B0KDMpXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMAorbXNnaWQgIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBub3JtYWwgb3V0cHV0XG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMQorbXNnaWQgIiAgLXMsIC0tc2hlbGw9c2hlbGwgICAgICAgICAgICBTZXQgc2hlbGwgcXVvdGluZyBjb252ZW50aW9uc1xuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzIKK21zZ2lkICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgVGVzdCBmb3IgZ2V0b3B0KDEpIHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMzCittc2dpZCAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgIERvIG5vdCBxdW90ZSB0aGUgb3V0cHV0XG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzNAorbXNnaWQgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBPdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozODggZ2V0b3B0L2dldG9wdC5jOjQ0NworbXNnaWQgIm1pc3Npbmcgb3B0c3RyaW5nIGFyZ3VtZW50IgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2V0b3B0IChlbmhhbmNlZCkgMS4xLjRcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDQxCittc2dpZCAiaW50ZXJuYWwgZXJyb3IsIGNvbnRhY3QgdGhlIGF1dGhvci4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RlZCBmcm9tIE1JTE9cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUnVmZmlhbiBCQ0QgY2xvY2tcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2xvY2twb3J0IGFkanVzdGVkIHRvIDB4JXhcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXRvbWljICVzIGZhaWxlZCBmb3IgMTAwMCBpdGVyYXRpb25zISIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc19yZWFkKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiByZWFkIGRhdGEgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiAvZGV2L3BvcnQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgdW5hYmxlIHRvIGdldCBJL08gcG9ydCBhY2Nlc3M6ICB0aGUgaW9wbCgzKSBjYWxsIGZhaWxlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluICVzIHRpbWUuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNgorbXNnaWQgIlVUQyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzEgaHdjbG9jay9od2Nsb2NrLmM6MzI1Cittc2dpZCAibG9jYWwiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXYXJuaW5nOiB1bnJlY29nbml6ZWQgdGhpcmQgbGluZSBpbiBhZGp0aW1lIGZpbGVcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiKEV4cGVjdGVkOiBgVVRDJyBvciBgTE9DQUwnIG9yIG5vdGhpbmcuKVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGRyaWZ0IGFkanVzdG1lbnQgZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgY2FsaWJyYXRpb24gZG9uZSBhdCAlbGQgc2Vjb25kcyBhZnRlciAxOTY5XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIkhhcmR3YXJlIGNsb2NrIGlzIG9uICVzIHRpbWVcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJ1bmtub3duIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGZvciBjbG9jayB0aWNrLi4uXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLnN5bmNocm9uaXphdGlvbiBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uZ290IGNsb2NrIHRpY2tcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgSGFyZHdhcmUgQ2xvY2sgdG8gJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb2NrIG5vdCBjaGFuZ2VkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgICUuNmYgc2Vjb25kc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJObyAtLWRhdGUgb3B0aW9uIHNwZWNpZmllZC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1kYXRlIGFyZ3VtZW50IHRvbyBsb25nXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgdmFsdWUgb2YgdGhlIC0tZGF0ZSBvcHRpb24gaXMgbm90IGEgdmFsaWQgZGF0ZS5cbiIKKyJJbiBwYXJ0aWN1bGFyLCBpdCBjb250YWlucyBxdW90YXRpb24gbWFya3MuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIklzc3VpbmcgZGF0ZSBjb21tYW5kOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0MAorbXNnaWQgIlVuYWJsZSB0byBydW4gJ2RhdGUnIHByb2dyYW0gaW4gL2Jpbi9zaCBzaGVsbC4gcG9wZW4oKSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3BvbnNlIGZyb20gZGF0ZSBjb21tYW5kID0gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHVuZXhwZWN0ZWQgcmVzdWx0cy5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gaW50ZWdlciB3aGVyZSAiCisidGhlIGNvbnZlcnRlZCB0aW1lIHZhbHVlIHdhcyBleHBlY3RlZC5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgImRhdGUgc3RyaW5nICVzIGVxdWF0ZXMgdG8gJWxkIHNlY29uZHMgc2luY2UgMTk2OS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IHNldCB0aGUgIgorIlN5c3RlbSBUaW1lIGZyb20gaXQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI3IGh3Y2xvY2svaHdjbG9jay5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIHNldHRpbWVvZmRheTpcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMwIGh3Y2xvY2svaHdjbG9jay5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR6LnR6X21pbnV0ZXN3ZXN0ID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0MiBod2Nsb2NrL2h3Y2xvY2suYzo4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSBzdXBlcnVzZXIgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDUgaHdjbG9jay9od2Nsb2NrLmM6ODIzCittc2dpZCAic2V0dGltZW9mZGF5KCkgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc4MQorIywgYy1mb3JtYXQKK21zZ2lkICJDdXJyZW50IHN5c3RlbSB0aW1lOiAlbGQgPSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgdGhlIEhhcmR3YXJlIENsb2NrIHByZXZpb3VzbHkgY29udGFpbmVkICIKKyJnYXJiYWdlLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgaXQgaGFzIGJlZW4gbGVzcyB0aGFuIGEgZGF5IHNpbmNlIHRoZSAiCisibGFzdCBjYWxpYnJhdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNsb2NrIGRyaWZ0ZWQgJS4xZiBzZWNvbmRzIGluIHRoZSBwYXN0ICVkIHNlY29uZHMgaW4gc3BpdGUgb2YgYSBkcmlmdCBmYWN0b3IgIgorIm9mICVmIHNlY29uZHMvZGF5LlxuIgorIkFkanVzdGluZyBkcmlmdCBmYWN0b3IgYnkgJWYgc2Vjb25kcy9kYXlcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZSBzaW5jZSBsYXN0IGFkanVzdG1lbnQgaXMgJWQgc2Vjb25kc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkIHRvIGluc2VydCAlZCBzZWNvbmRzIGFuZCByZWZlciB0aW1lIGJhY2sgJS42ZiBzZWNvbmRzIGFnb1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgdXBkYXRpbmcgYWRqdGltZSBmaWxlIGJlY2F1c2Ugb2YgdGVzdGluZyBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV291bGQgaGF2ZSB3cml0dGVuIHRoZSBmb2xsb3dpbmcgdG8gJXM6XG4iCisiJXMiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ291bGQgbm90IG9wZW4gZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgaW4gaXQgKCVzKSBmb3IgIgorIndyaXRpbmciCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAwNiBod2Nsb2NrL2h3Y2xvY2suYzoxMDExCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB1cGRhdGUgZmlsZSB3aXRoIHRoZSBjbG9jayBhZGp1c3RtZW50IHBhcmFtZXRlcnMgKCVzKSBpbiBpdCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRyaWZ0IGFkanVzdG1lbnQgcGFyYW1ldGVycyBub3QgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBhZGp1c3QgaXQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IHNldHRpbmcgY2xvY2sgYmVjYXVzZSBsYXN0IGFkanVzdG1lbnQgdGltZSBpcyB6ZXJvLCBzbyBoaXN0b3J5IGlzIGJhZC4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA4OQorIywgYy1mb3JtYXQKK21zZ2lkICJOZWVkZWQgYWRqdXN0bWVudCBpcyBsZXNzIHRoYW4gb25lIHNlY29uZCwgc28gbm90IHNldHRpbmcgY2xvY2suXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTIyMSBod2Nsb2NrL2h3Y2xvY2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBzZXQgc3lzdGVtIGNsb2NrLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwga2VlcHMgYW4gZXBvY2ggdmFsdWUgZm9yIHRoZSBIYXJkd2FyZSBDbG9jayBvbmx5IG9uIGFuIEFscGhhICIKKyJtYWNoaW5lLlxuIgorIlRoaXMgY29weSBvZiBod2Nsb2NrIHdhcyBidWlsdCBmb3IgYSBtYWNoaW5lIG90aGVyIHRoYW4gQWxwaGFcbiIKKyIoYW5kIHRodXMgaXMgcHJlc3VtYWJseSBub3QgcnVubmluZyBvbiBhbiBBbHBoYSBub3cpLiAgTm8gYWN0aW9uIHRha2VuLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGdldCB0aGUgZXBvY2ggdmFsdWUgZnJvbSB0aGUga2VybmVsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2VybmVsIGlzIGFzc3VtaW5nIGFuIGVwb2NoIHZhbHVlIG9mICVsdVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIHNldCB0aGUgZXBvY2ggdmFsdWUsIHlvdSBtdXN0IHVzZSB0aGUgJ2Vwb2NoJyBvcHRpb24gdG8gdGVsbCB0byB3aGF0ICIKKyJ2YWx1ZSB0byBzZXQgaXQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyB0aGUgZXBvY2ggdG8gJWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyOTAgbWlzYy11dGlscy9jYWwuYzozNDcgbWlzYy11dGlscy9raWxsLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGZyb20gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJod2Nsb2NrIC0gcXVlcnkgYW5kIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgKFJUQylcbiIKKyJcbiIKKyJVc2FnZTogaHdjbG9jayBbZnVuY3Rpb25dIFtvcHRpb25zLi4uXVxuIgorIlxuIgorIkZ1bmN0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgc2hvdyB0aGlzIGhlbHBcbiIKKyIgIC1yIHwgLS1zaG93ICAgICAgICAgcmVhZCBoYXJkd2FyZSBjbG9jayBhbmQgcHJpbnQgcmVzdWx0XG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIHNldCB0aGUgcnRjIHRvIHRoZSB0aW1lIGdpdmVuIHdpdGggLS1kYXRlXG4iCisiICAtcyB8IC0taGN0b3N5cyAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgZnJvbSB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgIC13IHwgLS1zeXN0b2hjICAgICAgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayB0byB0aGUgY3VycmVudCBzeXN0ZW0gdGltZVxuIgorIiAgICAgICAtLXN5c3R6ICAgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWV6b25lXG4iCisiICAgICAgIC0tYWRqdXN0ICAgICAgIGFkanVzdCB0aGUgcnRjIHRvIGFjY291bnQgZm9yIHN5c3RlbWF0aWMgZHJpZnQgc2luY2VcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb2NrIHdhcyBsYXN0IHNldCBvciBhZGp1c3RlZFxuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBwcmludCBvdXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tc2V0ZXBvY2ggICAgIHNldCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWUgdG8gdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBnaXZlbiB3aXRoIC0tZXBvY2hcbiIKKyIgIC12IHwgLS12ZXJzaW9uICAgICAgcHJpbnQgb3V0IHRoZSB2ZXJzaW9uIG9mIGh3Y2xvY2sgdG8gc3Rkb3V0XG4iCisiXG4iCisiT3B0aW9uczogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIFVUQ1xuIgorIiAgICAgICAtLWxvY2FsdGltZSAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBsb2NhbCB0aW1lXG4iCisiICAtZiB8IC0tcnRjPXBhdGggICAgIHNwZWNpYWwgL2Rldi8uLi4gZmlsZSB0byB1c2UgaW5zdGVhZCBvZiBkZWZhdWx0XG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIGFjY2VzcyB0aGUgSVNBIGJ1cyBkaXJlY3RseSBpbnN0ZWFkIG9mICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGlnbm9yZSBydGMncyB5ZWFyIGJlY2F1c2UgdGhlIGJpb3MgaXMgYnJva2VuXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIHNwZWNpZmllcyB0aGUgdGltZSB0byB3aGljaCB0byBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAgICAgIC0tZXBvY2g9eWVhciAgIHNwZWNpZmllcyB0aGUgeWVhciB3aGljaCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgY2xvY2sncyBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLW5vYWRqZmlsZSAgICBkbyBub3QgYWNjZXNzIC9ldGMvYWRqdGltZS4gUmVxdWlyZXMgdGhlIHVzZSBvZlxuIgorIiAgICAgICAgICAgICAgICAgICAgICBlaXRoZXIgLS11dGMgb3IgLS1sb2NhbHRpbWVcbiIKKyIgICAgICAgLS1hZGpmaWxlPXBhdGggc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBhZGp1c3QgZmlsZSAoZGVmYXVsdCBpc1xuIgorIiAgICAgICAgICAgICAgICAgICAgICAvZXRjL2FkanRpbWUpXG4iCisiICAgICAgIC0tdGVzdCAgICAgICAgIGRvIGV2ZXJ5dGhpbmcgZXhjZXB0IGFjdHVhbGx5IHVwZGF0aW5nIHRoZSBoYXJkd2FyZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICBjbG9jayBvciBhbnl0aGluZyBlbHNlXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGRlYnVnIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgIC1KfC0tamVuc2VuLCAtQXwtLWFyYywgLVN8LS1zcm0sIC1GfC0tZnVua3ktdG95XG4iCisiICAgICAgIHRlbGwgaHdjbG9jayB0aGUgdHlwZSBvZiBhbHBoYSB5b3UgaGF2ZSAoc2VlIGh3Y2xvY2soOCkpXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTQzMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIGNvbm5lY3QgdG8gYXVkaXQgc3lzdGVtXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLXV0YyBhbmQgLS1sb2NhbHRpbWUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91IHNwZWNpZmllZCAiCisiYm90aC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqdXN0IGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGpmaWxlIGFuZCAtLW5vYWRqZmlsZSBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuICBZb3UgIgorInNwZWNpZmllZCBib3RoLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdpdGggLS1ub2FkamZpbGUsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYwMgorIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgc2V0LXRvIHRpbWUuICBDYW5ub3Qgc2V0IGNsb2NrLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBIYXJkd2FyZSBDbG9jay5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgU3lzdGVtIENsb2NrLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2sgZXBvY2ggaW4gdGhlICIKKyJrZXJuZWwuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgYW55IGtub3duIG1ldGhvZC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2UgdGhlIC0tZGVidWcgb3B0aW9uIHRvIHNlZSB0aGUgZGV0YWlscyBvZiBvdXIgc2VhcmNoIGZvciBhbiBhY2Nlc3MgIgorIm1ldGhvZC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2tkLmM6NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gS0RHSFdDTEsgdG8gY2hhbmdlXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjU3Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2tkLmM6NzUKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIGluIGxvb3AiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjgyIGh3Y2xvY2svcnRjLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWVkIG91dCB3YWl0aW5nIGZvciB0aW1lIGNoYW5nZS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2tkLmM6MTA0CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgZmFpbGVkIHRvIHJlYWQgdGltZSBmcm9tICVzIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2sva2QuYzoxNDAKK21zZ2lkICJpb2N0bCBLRFNIV0NMSyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjE3NgorbXNnaWQgIkNhbid0IG9wZW4gL2Rldi90dHkxIG9yIC9kZXYvdmMvMSIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2tkLmM6MTgwCittc2dpZCAiS0RHSFdDTEsgaW9jdGwgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTQ3IGh3Y2xvY2svcnRjLmM6MjQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4oKSBvZiAlcyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoxODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byByZWFkIHRoZSB0aW1lIGZhaWxlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSAlcyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkKCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayB0aW1lZCBvdXRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb2ZmIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHNldCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoJXMpIHdhcyBzdWNjZXNzZnVsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk9wZW4gb2YgJXMgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDEwIGh3Y2xvY2svcnRjLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBtYW5pcHVsYXRlIHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLCB3ZSBtdXN0IGFjY2VzcyB0aGUgTGludXggJ3J0YycgIgorImRldmljZSBkcml2ZXIgdmlhIHRoZSBkZXZpY2Ugc3BlY2lhbCBmaWxlICVzLiAgVGhpcyBmaWxlIGRvZXMgbm90IGV4aXN0IG9uICIKKyJ0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxNSBod2Nsb2NrL3J0Yy5jOjQ1OQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfUkVBRCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIndlIGhhdmUgcmVhZCBlcG9jaCAlbGQgZnJvbSAlcyB3aXRoIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlcG9jaCB2YWx1ZSBtYXkgbm90IGJlIGxlc3MgdGhhbiAxOTAwLiAgWW91IHJlcXVlc3RlZCAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJzZXR0aW5nIGVwb2NoIHRvICVsZCB3aXRoIFJUQ19FUE9DSF9TRVQgaW9jdGwgdG8gJXMuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzo0NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBrZXJuZWwgZGV2aWNlIGRyaXZlciBmb3IgJXMgZG9lcyBub3QgaGF2ZSB0aGUgUlRDX0VQT0NIX1NFVCBpb2N0bC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzYwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBleGVjICVzOiAlbSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzozODMKK21zZ2lkICJjYW4ndCBtYWxsb2MgaW5pdHN0cmluZyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgc3BlZWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjUyNworbXNnaWQgInRvbyBtYW55IGFsdGVybmF0ZSBzcGVlZHMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogbm90IGEgY2hhcmFjdGVyIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IG9wZW4gZm9yIHJlYWQvd3JpdGUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBkdXAgcHJvYmxlbTogJW0iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXIiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXJzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQ6ICVtIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlucHV0IG92ZXJydW4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstOGhpTG1Vd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IICIKKyJsb2dpbl9ob3N0XSBiYXVkX3JhdGUsLi4uIGxpbmUgW3Rlcm10eXBlXVxuIgorIm9yXHRbLWhpTG13XSBbLWwgbG9naW5fcHJvZ3JhbV0gWy10IHRpbWVvdXRdIFstSSBpbml0c3RyaW5nXSBbLUggbG9naW5faG9zdF0gIgorImxpbmUgYmF1ZF9yYXRlLC4uLiBbdGVybXR5cGVdXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MSBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbWVtb3J5IGxvdywgbG9naW4gbWF5IGZhaWxcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjExMworbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgZ3JwbGlzdCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU1NAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZCBieSBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6NTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIG9uICVzIGZyb20gJXMgZGVuaWVkLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNDUgbG9naW4tdXRpbHMvY2hzaC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuIG9ubHkgY2hhbmdlIGxvY2FsIGVudHJpZXM7IHVzZSB5cCVzIGluc3RlYWQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NiBsb2dpbi11dGlscy9jaHNoLmM6MTQyCittc2dpZCAiVW5rbm93biB1c2VyIGNvbnRleHQiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNjQgbG9naW4tdXRpbHMvY2hzaC5jOjE1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGRlZmF1bHQgY29udGV4dCBmb3IgL2V0Yy9wYXNzd2QiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBmaW5nZXIgaW5mb3JtYXRpb24gZm9yICVzLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxODkgbG9naW4tdXRpbHMvY2hzaC5jOjE4OCBsb2dpbi11dGlscy9sb2dpbi5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUEFNIGZhaWx1cmUsIGFib3J0aW5nOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTIgbG9naW4tdXRpbHMvY2hzaC5jOjIxMSBsb2dpbi11dGlscy9sb2dpbi5jOjgyNworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6NzkgbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0MCBtb3VudC9sb21vdW50LmM6NzQyCisjOiBtb3VudC9sb21vdW50LmM6NzQ1Cittc2dpZCAiUGFzc3dvcmQ6ICIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjE1IGxvZ2luLXV0aWxzL2Noc2guYzoyMTQKK21zZ2lkICJJbmNvcnJlY3QgcGFzc3dvcmQuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsgLWYgZnVsbC1uYW1lIF0gWyAtbyBvZmZpY2UgXSAiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjMyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWyAtcCBvZmZpY2UtcGhvbmUgXVxuIgorIlx0WyAtaCBob21lLXBob25lIF0gIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6Mzc5Cittc2dpZCAiT2ZmaWNlIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozODAKK21zZ2lkICJIb21lIFBob25lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0MDEgbG9naW4tdXRpbHMvY2hzaC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQWJvcnRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDM0CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZWxkIGlzIHRvbyBsb25nLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo0NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVjJyBpcyBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvbnRyb2wgY2hhcmFjdGVycyBhcmUgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxMgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gKk5PVCogY2hhbmdlZC4gIFRyeSBhZ2FpbiBsYXRlci5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBjaGFuZ2VkLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgc2hlbGwgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogUnVubmluZyBVSUQgZG9lc24ndCBtYXRjaCBVSUQgb2YgdXNlciB3ZSdyZSBhbHRlcmluZywgc2hlbGwgY2hhbmdlICIKKyJkZW5pZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBZb3VyIHNoZWxsIGlzIG5vdCBpbiAvZXRjL3NoZWxscywgc2hlbGwgY2hhbmdlIGRlbmllZFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgc2hlbGwgZm9yICVzLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjIKK21zZ2lkICJOZXcgc2hlbGwiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIyOQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCBjaGFuZ2VkLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbIC1zIHNoZWxsIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsgdXNlcm5hbWUgXVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNoZWxsIG11c3QgYmUgYSBmdWxsIHBhdGggbmFtZS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBcIiVzXCIgZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBleGVjdXRhYmxlLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzc1IGxvZ2luLXV0aWxzL2Noc2guYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVXNlIC1sIG9wdGlvbiB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSAlcyAtbCB0byBzZWUgbGlzdC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGtub3duIHNoZWxscy5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9pc2xvY2FsLmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIG9wZW4gJXMgZm9yIHJlYWRpbmcsIGV4aXRpbmcuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzoxNDgKK21zZ2lkICJ1c2FnZTogbGFzdCBbLSNdIFstZiBmaWxlXSBbLXQgdHR5XSBbLWggaG9zdG5hbWVdIFt1c2VyIC4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzAyCittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisid3RtcCBiZWdpbnMgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjM4MCBsb2dpbi11dGlscy9sYXN0LmM6Mzk4IGxvZ2luLXV0aWxzL2xhc3QuYzo0NDkKK21zZ2lkICJsYXN0OiBtYWxsb2MgZmFpbHVyZS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiaW50ZXJydXB0ZWQgJTEwLjEwcyAlNS41cyBcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogY2FuJ3QgcmVvcGVuIHR0eTogJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6ICVzIGlzIG5vdCBhIHRlcm1pbmFsIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjM4Cittc2dpZCAiRkFUQUw6IGJhZCB0dHkiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IC1oIGZvciBzdXBlci11c2VyIG9ubHkuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo0ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvZ2luIFstZnBdIFt1c2VybmFtZV1cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBpbml0aWFsaXplIFBBTTogJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1OTUKK21zZ2lkICJsb2dpbjogIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiAlZCBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkxvZ2luIGluY29ycmVjdFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlRPTyBNQU5ZIExPR0lOIFRSSUVTICglZCkgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBSUxFRCBMT0dJTiBTRVNTSU9OIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTAgbG9naW4tdXRpbHMvbG9naW4uYzo2OTcgbG9naW4tdXRpbHMvbG9naW4uYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlc3Npb24gc2V0dXAgcHJvYmxlbSwgYWJvcnQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVzZXIgbmFtZSBcIiVzXCIgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzYxCittc2dpZCAiSWxsZWdhbCB1c2VybmFtZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb2dpbiByZWZ1c2VkIG9uIHRoaXMgdGVybWluYWwuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBGUk9NICVzIE9OIFRUWSAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgxMworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIE9OIFRUWSAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjg2NworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRElBTFVQIEFUICVzIEJZICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5OQorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIEZST00gJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIE9OICVzIEJZICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEyOQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgaGF2ZSBuZXcgbWFpbC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbWFpbC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRJT0NTQ1RUWSBmYWlsZWQ6ICVtIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZGlyZWN0b3J5ICVzIVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIzOAorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dnaW5nIGluIHdpdGggaG9tZSA9IFwiL1wiLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gbWVtb3J5IGZvciBzaGVsbCBzY3JpcHQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBjb3VsZG4ndCBleGVjIHNoZWxsIHNjcmlwdDogJXMuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlcyBsb2dpbjogIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbiBuYW1lIG11Y2ggdG9vIGxvbmcuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzAzCittc2dpZCAiTkFNRSB0b28gbG9uZyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZXMgbWF5IG5vdCBzdGFydCB3aXRoICctJy5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgYmFyZSBsaW5lZmVlZHMuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIxCittc2dpZCAiRVhDRVNTSVZFIGxpbmVmZWVkcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBsb2dpbjogJS4qcyAiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImZyb20gJS4qc1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvbiAlLipzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgT04gJXMsICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBGUk9NICVzLCAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgT04gJXMsICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJpcyB5XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBtZXNnIFt5IHwgbl1cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzo5OQorbXNnaWQgIm5ld2dycDogV2hvIGFyZSB5b3U/IgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEwNyBsb2dpbi11dGlscy9uZXdncnAuYzoxMjEKK21zZ2lkICJuZXdncnA6IHNldGdpZCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMTQgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE2Cittc2dpZCAibmV3Z3JwOiBObyBzdWNoIGdyb3VwLiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMjUKK21zZ2lkICJuZXdncnA6IFBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzMgorbXNnaWQgIm5ld2dycDogc2V0dWlkIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzOAorbXNnaWQgIk5vIHNoZWxsIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW5zXVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTM0Cittc2dpZCAiU2h1dGRvd24gcHJvY2VzcyBhYm9ydGVkIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPbmx5IHJvb3QgY2FuIHNodXQgYSBzeXN0ZW0gZG93bi5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGF0IG11c3QgYmUgdG9tb3Jyb3csIGNhbid0IHlvdSB3YWl0IHRpbGwgdGhlbj9cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMxMAorbXNnaWQgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMzkKK21zZ2lkICJUaGUgc3lzdGVtIGlzIGJlaW5nIHNodXQgZG93biB3aXRoaW4gNSBtaW51dGVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzQzCittc2dpZCAiTG9naW4gaXMgdGhlcmVmb3JlIHByb2hpYml0ZWQuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzY1CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYm9vdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoYWx0ZWQgYnkgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDMyCittc2dpZCAiIgorIlxuIgorIldoeSBhbSBJIHN0aWxsIGFsaXZlIGFmdGVyIHJlYm9vdD8iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzQKK21zZ2lkICIiCisiXG4iCisiTm93IHlvdSBjYW4gdHVybiBvZmYgdGhlIHBvd2VyLi4uIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHBvd2VyaW5nIG9mZlx0JXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICJFeGVjdXRpbmcgdGhlIHByb2dyYW0gXCIlc1wiIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGV4ZWN1dGluZ1x0JXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJVUkdFTlQ6IGJyb2FkY2FzdCBtZXNzYWdlIGZyb20gJXM6IgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIGhvdXJzICVkIG1pbnV0ZXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gMSBob3VyICVkIG1pbnV0ZXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgbWludXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgbWludXRlXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gSU1NRURJQVRFTFkhXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1NzAKK21zZ2lkICJDYW5ub3QgZm9yayBmb3Igc3dhcG9mZi4gU2hydWchIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTc4Cittc2dpZCAiQ2Fubm90IGV4ZWMgc3dhcG9mZiwgaG9waW5nIHVtb3VudCB3aWxsIGRvIHRoZSB0cmljay4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1OTcKK21zZ2lkICJDYW5ub3QgZm9yayBmb3IgdW1vdW50LCB0cnlpbmcgbWFudWFsbHkuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBleGVjICVzLCB0cnlpbmcgdW1vdW50LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjEwCittc2dpZCAiQ2Fubm90IGV4ZWMgdW1vdW50LCBnaXZpbmcgdXAgb24gdW1vdW50LiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxNQorbXNnaWQgIlVubW91bnRpbmcgYW55IHJlbWFpbmluZyBmaWxlc3lzdGVtcy4uLiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJzaHV0ZG93bjogQ291bGRuJ3QgdW1vdW50ICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzIKK21zZ2lkICJCb290aW5nIHRvIHNpbmdsZSB1c2VyIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEzNgorbXNnaWQgImV4ZWMgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjE0MAorbXNnaWQgImZvcmsgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjIwOAorbXNnaWQgImVycm9yIG9wZW5pbmcgZmlmb1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMTIKK21zZ2lkICJlcnJvciBzZXR0aW5nIGNsb3NlLW9uLWV4ZWMgb24gL2Rldi9pbml0Y3RsIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNTkKK21zZ2lkICJlcnJvciBydW5uaW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyNjMKK21zZ2lkICJlcnJvciBmb3JraW5nIGZpbmFscHJvZ1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDUKK21zZ2lkICIiCisiXG4iCisiV3JvbmcgcGFzc3dvcmQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQyNgorbXNnaWQgInN0YXQgb2YgcGF0aCBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NDM0Cittc2dpZCAib3BlbiBvZiBkaXJlY3RvcnkgZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjUwMQorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwYXduaW5nOiBcIiVzXCIgdG9vIGZhc3Q6IHF1ZW5jaGluZyBlbnRyeVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDkKK21zZ2lkICJmb3JrIGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NDAgdGV4dC11dGlscy9tb3JlLmM6MTY2MworbXNnaWQgImV4ZWMgZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU2NAorbXNnaWQgImNhbm5vdCBvcGVuIGluaXR0YWJcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NjMxCittc2dpZCAibm8gVEVSTSBvciBjYW5ub3Qgc3RhdCB0dHlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTM4CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMDcwCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJ1bm5pbmcgcHJvZ3JhbW1lOiBcIiVzXCJcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJleGNlc3NpdmVseSBsb25nIGxpbmUgYXJnIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZm9yazogJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIHBhc3N3b3JkIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgZ3JvdXAgZmlsZSBpcyBidXN5LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSAlcyBmaWxlIGlzIGJ1c3kgKCVzIHByZXNlbnQpXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgbGluayAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBnZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3Qgc2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHVubG9jayAlczogJXMgKHlvdXIgY2hhbmdlcyBhcmUgc3RpbGwgaW4gJXMpXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGZvcmtcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6Mjk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBjaGFuZ2VzIG1hZGVcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IGdyb3VwcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IHBhc3N3b3JkcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldvdWxkIHlvdSBsaWtlIHRvIGVkaXQgJXMgbm93IFt5L25dPyAiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgW2ZpbGVdXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE2NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyb2FkY2FzdCBNZXNzYWdlIGZyb20gJXNAJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2lsbCBub3QgcmVhZCAlcyAtIHVzZSBzdGRpbi5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHN0YXQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM2NCBtaXNjLXV0aWxzL2NhbC5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRheSB2YWx1ZTogdXNlIDEtJWQiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjgKK21zZ2lkICJpbGxlZ2FsIG1vbnRoIHZhbHVlOiB1c2UgMS0xMiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjM3MgorbXNnaWQgImlsbGVnYWwgeWVhciB2YWx1ZTogdXNlIDEtOTk5OSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjg1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY2FsIFstMTNzbWp5Vl0gW1tbZGF5XSBtb250aF0geWVhcl1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbK2Zvcm1hdF0gW2RheSBtb250aCB5ZWFyXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvZGRhdGUuYzoyNTAKK21zZ2lkICJTdC4gVGliJ3MgRGF5IgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIExBQkVMPTxsYWJlbD58VVVJRD08dXVpZD5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjU1CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byByZXNvbHZlICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBwcm9jZXNzIFwiJXNcIlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjMxNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXM7IHZhbGlkIHNpZ25hbHM6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjY3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb25uZWN0OiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gZmFjaWxpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIHByaW9yaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogbG9nZ2VyIFstaXNdIFstZiBmaWxlXSBbLXAgcHJpXSBbLXQgdGFnXSBbLXUgc29ja2V0XSBbIG1lc3NhZ2UgLi4uIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwOSBtaXNjLXV0aWxzL21jb29raWUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTQzIG1pc2MtdXRpbHMvbmFtZWkuYzoxOTggbWlzYy11dGlscy9uYW1laS5jOjIyNQorIzogbWlzYy11dGlscy9uYW1laS5jOjI0NSBtaXNjLXV0aWxzL25hbWVpLmM6MjUyIG1pc2MtdXRpbHMvbmFtZWkuYzoyOTQKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTg4CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHN5bWxpbms6ICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyMzEgbWlzYy11dGlscy9uYW1laS5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gcGF0aG5hbWUgW3BhdGhuYW1lIC4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisiIC14LCAtLW1vdW50cG9pbnRzICAgc2hvdyBtb3VudCBwb2ludCBkaXJlY3RvcmllcyB3aXRoIGEgJ0QnXG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgc2hvdyB0aGUgbW9kZSBiaXRzIG9mIGVhY2ggZmlsZVxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIHNob3cgb3duZXIgYW5kIGdyb3VwIG5hbWUgb2YgZWFjaCBmaWxlXG4iCisiIC1sLCAtLWxvbmcgICAgICAgICAgdXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCAoLW0gLW8gLXYpIFxuIgorIiAtbiwgLS1ub3N5bWxpbmtzICAgIGRvbid0IGZvbGxvdyBzeW1saW5rc1xuIgorIiAtdiwgLS12ZXJ0aWNhbCAgICAgIHZlcnRpY2FsIGFsaWduIG9mIG1vZGVzIGFuZCBvd25lcnNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgbmFtZWkoMSkuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdDogJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjUzMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXhjZWVkZWQgbGltaXQgb2Ygc3ltbGlua3MiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlbmFtaW5nICVzIHRvICVzIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjg2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbGw6ICVzIGZyb20gdG8gZmlsZXMuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogYCVzJyBpcyBhIGxpbmsuXG4iCisiVXNlIGAlcyBbb3B0aW9uc10gJXMnIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuXG4iCisiU2NyaXB0IG5vdCBzdGFydGVkLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBzY3JpcHQgWy1hXSBbLWZdIFstcV0gWy10XSBbZmlsZV1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCwgZmlsZSBpcyAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvciAlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZXJyb3I6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCB3cml0ZSBzY3JpcHQgZmlsZSwgZXJyb3I6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNjcmlwdCBkb25lIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbnB0eSBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgcHR5J3NcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIDx0aW1pbmdmaWxlPiBbPHR5cGVzY3JpcHQ+IFs8ZGl2aXNvcj5dXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhwZWN0ZWQgYSBudW1iZXIsIGJ1dCBnb3QgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjU2IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGl2aXNvciAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTA0Cittc2dpZCAid3JpdGUgdG8gc3Rkb3V0IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byByZWFkIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGltaW5nIGZpbGUgJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidGltaW5ncyBmaWxlICVzOiAlbHU6IHVuZXhwZWN0ZWQgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQXJndW1lbnQgZXJyb3IsIHVzYWdlXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdGVybSB0ZXJtaW5hbF9uYW1lIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW5pdGlhbGl6ZSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zbm93IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kZWZhdWx0IF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1mb3JlZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzUgbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc3CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGV8ZGVmYXVsdCBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzkgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgxIG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg1CisjLCBjLWZvcm1hdAorbXNnaWQgInxyZWR8bWFnZW50YXx5ZWxsb3d8d2hpdGUgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVsY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zdGFuZG91dCBbIGF0dHIgXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGFsZi1icmlnaHQgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXZlcnNlIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0b3JlIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbGVhciBbYWxsfHJlc3RdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWR1bXAgICBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGVuZCBbMS1OUl9DT05TT0xFU10gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZpbGUgZHVtcGZpbGVuYW1lIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZ2xldmVsIFswLThdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcmRvd24gWzAtNjBdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGVuZ3RoIFswLTIwMDBdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iZnJlcSBmcmVxbnVtYmVyIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmb3JjZSBibGFua1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIHVuYmxhbmtcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA4MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgKHVuKXNldCBwb3dlcnNhdmUgbW9kZVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JpdGluZyBzY3JlZW5kdW1wXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJFRFUk0gaXMgbm90IGRlZmluZWQuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWRdIFstcCBwaWRmaWxlXSBbLXMgc29ja2V0cGF0aF0gWy1UIHRpbWVvdXRdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyBbLXJ8dF0gWy1uIG51bV0gWy1zIHNvY2tldHBhdGhdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTIKK21zZ2lkICJiYWQgYXJndW1lbnRzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxNTkKK21zZ2lkICJzb2NrZXQiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE3MAorbXNnaWQgImNvbm5lY3QiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE4OQorbXNnaWQgIndyaXRlIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxOTcKK21zZ2lkICJyZWFkIGNvdW50IgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyMDMKK21zZ2lkICJiYWQgcmVzcG9uc2UgbGVuZ3RoIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXVpZGQgZGFlbW9uIGFscmVhZHkgcnVubmluZyBhdCBwaWQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGNyZWF0ZSB1bml4IHN0cmVhbSBzb2NrZXQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgYmluZCB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxpc3RlbiBvbiB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHJlYWRpbmcgZnJvbSBjbGllbnQsIGxlbiA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM3OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHJhbmRvbSBVVUlEOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkIHRpbWUgVVVJRCAlcyBhbmQgJWQgZm9sbG93aW5nXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQxNQorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgJWQgVVVJRCdzOlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBvcGVyYXRpb24gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDY4IG1pc2MtdXRpbHMvdXVpZGQuYzo0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTI0IG1pc2MtdXRpbHMvdXVpZGQuYzo1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgY2FsbGluZyB1dWlkZCBkYWVtb24gKCVzKTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGFuZCBzdWJzZXF1ZW50ICVkIFVVSUQnc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGlzdCBvZiBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmV4cGVjdGVkIHJlcGx5IGxlbmd0aCBmcm9tIHNlcnZlciAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qga2lsbCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIktpbGxlZCB1dWlkZCBydW5uaW5nIGF0IHBpZCAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGdlbi5jOjMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXJdIFstdF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3doZXJlaXMuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIGRpciAuLi4gLWYgXSBuYW1lLi4uXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxMjgKK21zZ2lkICJjYWxsb2MgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MTUwCittc2dpZCAic3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIiV6ZCBieXRlcyBbIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIl0gZXJhc2VkIGF0IG9mZnNldCAweCVqeCAoJXMpXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE1IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzE4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgb2Zmc2V0ICclcycgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxkZXZpY2U+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1hLCAtLWFsbCAgICAgICAgICAgd2lwZSBhbGwgbWFnaWMgc3RyaW5ncyAoQkUgQ0FSRUZVTCEpXG4iCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLW5vLWFjdCAgICAgICAgZXZlcnl0aGluZyB0byBiZSBkb25lIGV4Y2VwdCBmb3IgdGhlIHdyaXRlKCkgY2FsbFxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCB0byBlcmFzZSwgaW4gYnl0ZXNcbiIKKyIgLXAsIC0tcGFyc2FibGUgICAgICBwcmludCBvdXQgaW4gcGFyc2FibGUgaW5zdGVhZCBvZiBwcmludGFibGUgZm9ybWF0XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB3aXBlZnMoOCkuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozODcKK21zZ2lkICItLW9mZnNldCBhbmQgLS1hbGwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTAxCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiBjYW4ndCBmaW5kIHlvdXIgdHR5J3MgbmFtZVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IHlvdSBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdHVybmVkIG9mZi5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluIG9uICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZCBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHdyaXRlIHVzZXIgW3R0eV1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBub3QgbG9nZ2VkIGluXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjI0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbG9nZ2VkIGluIG1vcmUgdGhhbiBvbmNlOyB3cml0aW5nIHRvICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgKGFzICVzKSBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIGZyb20gJXNAJXMgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGVycm9yIHJlYWRpbmcgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTcyIG1vdW50L2ZzdGFiLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjb3VsZCBub3Qgb3BlbiAlcyAtIHVzaW5nICVzIGluc3RlYWRcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjU5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBjcmVhdGUgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjMyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IG9wZW4gbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxvY2sgbG9jayBmaWxlICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjY2MworbXNnaWQgInRpbWVkIG91dCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsaW5rICVzXG4iCisiUGVyaGFwcyB0aGVyZSBpcyBhIHN0YWxlIGxvY2sgZmlsZT9cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjc5MiBtb3VudC9mc3RhYi5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyAoJXMpIC0gbXRhYiBub3QgdXBkYXRlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjg1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9mc3RhYi5jOjg3NAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG93bmVyIG9mICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODk4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IHJlbmFtZSAlcyB0byAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MzYyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IHNldCBjYXBhY2l0eSBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlPFBSSXU2ND4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjM4OQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHNpemVsaW1pdCAlPFBSSXU2ND4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gJXMgKHR5cGUgJTxQUkl1MzI+KSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6NDEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGdldCBpbmZvIG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6NDMyCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IG9wZW4gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NDggbW91bnQvbG9tb3VudC5jOjQ4MCBtb3VudC9sb21vdW50LmM6NTQyCisjOiBtb3VudC9sb21vdW50LmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAvZGV2IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ1OSBtb3VudC9sb21vdW50LmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBwZXJtaXNzaW9uIHRvIGxvb2sgYXQgL2Rldi9sb29wJXM8Tj4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGZyZWUgbG9vcCBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IENvdWxkIG5vdCBmaW5kIGFueSBsb29wIGRldmljZS4gTWF5YmUgdGhpcyBrZXJuZWwgZG9lcyBub3Qga25vd1xuIgorIiAgICAgICBhYm91dCB0aGUgbG9vcCBkZXZpY2U/IChJZiBzbywgcmVjb21waWxlIG9yIGBtb2Rwcm9iZSBsb29wJy4pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2MzYKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoaWxlIHJlYWRpbmcgcGFzc3BocmFzZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6Njc5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzIGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiAlczogaXMgd3JpdGUtcHJvdGVjdGVkLCB1c2luZyByZWFkLW9ubHkuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb2NrIGludG8gbWVtb3J5LCBleGl0aW5nLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgTE9PUF9TRVRfRkQgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0X2xvb3AoJXMsJXMsJWxsdSwlbGx1KTogc3VjY2Vzc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVsX2xvb3AoJXMpOiBzdWNjZXNzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjg0MAorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBkZWxldGUgZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBtb3VudCB3YXMgY29tcGlsZWQgd2l0aG91dCBsb29wIHN1cHBvcnQuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwMzQgbW91bnQvbG9tb3VudC5jOjEwNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9vcCBkZXZpY2UgaXMgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA2MQorIywgYy1mb3JtYXQKK21zZ2lkICJzdG9sZW4gbG9vcD0lcy4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogZGV2aWNlIGlzIGJ1c3kiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbG9vcCBzdXBwb3J0IHdhcyBhdmFpbGFibGUgYXQgY29tcGlsZSB0aW1lLiBQbGVhc2UgcmVjb21waWxlLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogaW1wcm9wZXJseSBxdW90ZWQgb3B0aW9uIHN0cmluZyAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjU2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3Qgb3BlbiAlcyBmb3Igd3JpdGluZzogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo1ODEgbW91bnQvbW91bnQuYzoxMTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjU4OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6Njc1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NzE0IG1vdW50L21vdW50LmM6MTg2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6ODUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6ODc5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB5b3UgZGlkbid0IHNwZWNpZnkgYSBmaWxlc3lzdGVtIHR5cGUgZm9yICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgYWxsIHR5cGVzIG1lbnRpb25lZCBpbiAlcyBvciAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6ODg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBhbmQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIHN3YXBzcGFjZVxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IHR5cGUgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjkxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsb29rcyBsaWtlIHN3YXBzcGFjZSAtIG5vdCBtb3VudGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTAwMgorbXNnaWQgIm1vdW50IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gbW91bnQgJXMgb24gJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMDc0Cittc2dpZCAibW91bnQ6IGxvb3AgZGV2aWNlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzkKK21zZ2lkICJtb3VudDogdHlwZSBzcGVjaWZpZWQgdHdpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBza2lwcGluZyB0aGUgc2V0dXAgb2YgYSBsb29wIGRldmljZVxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEwMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzIGFzIGxvb3AiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBzdG9sZW4gbG9vcD0lcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogZmFpbGVkIHNldHRpbmcgdXAgbG9vcCBkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNldHVwIGxvb3AgZGV2aWNlIHN1Y2Nlc3NmdWxseVxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTE3NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gJXMgZm91bmQgLSBjcmVhdGluZyBpdC4uXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEyMTUKK21zZ2lkICJtb3VudDogYXJndW1lbnQgdG8gLXAgb3IgLS1wYXNzLWZkIG11c3QgYmUgYSBudW1iZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgb3BlbiAlcyBmb3Igc2V0dGluZyBzcGVlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgc3BlZWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTMyMworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogd2FybmluZzogJXMgc2VlbXMgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQxMworbXNnaWQgIiIKKyJtb3VudDogSSBjb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtIHR5cGUsIGFuZCBub25lIHdhcyBzcGVjaWZpZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDE2Cittc2dpZCAibW91bnQ6IHlvdSBtdXN0IHNwZWNpZnkgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTkKK21zZ2lkICJtb3VudDogbW91bnQgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQyNSBtb3VudC9tb3VudC5jOjE0NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIG5vdCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjcKK21zZ2lkICJtb3VudDogcGVybWlzc2lvbiBkZW5pZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDI5Cittc2dpZCAibW91bnQ6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVzZSBtb3VudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MzMgbW91bnQvbW91bnQuYzoxNDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBidXN5IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvciAlcyBidXN5IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBpcyBhIHN5bWJvbGljIGxpbmsgdG8gbm93aGVyZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIG5vdCBtb3VudGVkIGFscmVhZHksIG9yIGJhZCBvcHRpb24iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogd3JvbmcgZnMgdHlwZSwgYmFkIG9wdGlvbiwgYmFkIHN1cGVyYmxvY2sgb24gJXMsXG4iCisiICAgICAgIG1pc3NpbmcgY29kZXBhZ2Ugb3IgaGVscGVyIHByb2dyYW0sIG9yIG90aGVyIGVycm9yIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ4NworbXNnaWQgIiIKKyIgICAgICAgKGZvciBzZXZlcmFsIGZpbGVzeXN0ZW1zIChlLmcuIG5mcywgY2lmcykgeW91IG1pZ2h0XG4iCisiICAgICAgIG5lZWQgYSAvc2Jpbi9tb3VudC48dHlwZT4gaGVscGVyIHByb2dyYW0pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ5NgorbXNnaWQgIiIKKyIgICAgICAgKGNvdWxkIHRoaXMgYmUgdGhlIElERSBkZXZpY2Ugd2hlcmUgeW91IGluIGZhY3QgdXNlXG4iCisiICAgICAgIGlkZS1zY3NpIHNvIHRoYXQgc3IwIG9yIHNkYSBvciBzbyBpcyBuZWVkZWQ/KSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDEKK21zZ2lkICIiCisiICAgICAgIChhcmVuJ3QgeW91IHRyeWluZyB0byBtb3VudCBhbiBleHRlbmRlZCBwYXJ0aXRpb24sXG4iCisiICAgICAgIGluc3RlYWQgb2Ygc29tZSBsb2dpY2FsIHBhcnRpdGlvbiBpbnNpZGU/KSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MDgKK21zZ2lkICIiCisiICAgICAgIEluIHNvbWUgY2FzZXMgdXNlZnVsIGluZm8gaXMgZm91bmQgaW4gc3lzbG9nIC0gdHJ5XG4iCisiICAgICAgIGRtZXNnIHwgdGFpbCAgb3Igc29cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MTQKK21zZ2lkICJtb3VudCB0YWJsZSBmdWxsIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IGNhbid0IHJlYWQgc3VwZXJibG9jayIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHVua25vd24gZmlsZXN5c3RlbSB0eXBlICclcyciCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBwcm9iYWJseSB5b3UgbWVhbnQgJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTQyCittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAnaXNvOTY2MCc/IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU0NQorbXNnaWQgIm1vdW50OiBtYXliZSB5b3UgbWVhbnQgJ3ZmYXQnPyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSwgYW5kIHN0YXQgZmFpbHM/IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHRoZSBrZXJuZWwgZG9lcyBub3QgcmVjb2duaXplICVzIGFzIGEgYmxvY2sgZGV2aWNlXG4iCisiICAgICAgIChtYXliZSBgbW9kcHJvYmUgZHJpdmVyJz8pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSB2YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTcyCittc2dpZCAiYmxvY2sgZGV2aWNlICIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBtb3VudCAlcyVzIHJlYWQtb25seSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkIGJ1dCBleHBsaWNpdCBgLXcnIGZsYWcgZ2l2ZW4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgcmVtb3VudCAlcyVzIHJlYWQtd3JpdGUsIGlzIHdyaXRlLXByb3RlY3RlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzJXMgaXMgd3JpdGUtcHJvdGVjdGVkLCBtb3VudGluZyByZWFkLW9ubHkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogJXMgZG9lcyBub3QgY29udGFpbiBTRUxpbnV4IGxhYmVscy5cbiIKKyIgICAgICAgWW91IGp1c3QgbW91bnRlZCBhbiBmaWxlIHN5c3RlbSB0aGF0IHN1cHBvcnRzIGxhYmVscyB3aGljaCBkb2VzIG5vdFxuIgorIiAgICAgICBjb250YWluIGxhYmVscywgb250byBhbiBTRUxpbnV4IGJveC4gSXQgaXMgbGlrZWx5IHRoYXQgY29uZmluZWRcbiIKKyIgICAgICAgYXBwbGljYXRpb25zIHdpbGwgZ2VuZXJhdGUgQVZDIG1lc3NhZ2VzIGFuZCBub3QgYmUgYWxsb3dlZCBhY2Nlc3MgdG9cbiIKKyIgICAgICAgdGhpcyBmaWxlIHN5c3RlbS4gIEZvciBtb3JlIGRldGFpbHMgc2VlIHJlc3RvcmVjb24oOCkgYW5kIG1vdW50KDgpLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTcxMAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBuZnMgYmVjYXVzZSBvZiB0aGUgY29sb25cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgY2lmcyBiZWNhdXNlIG9mIHRoZSAvLyBwcmVmaXhcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE4MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGFscmVhZHkgbW91bnRlZCBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKyJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKyIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKyJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKyJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKyJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKyJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IChlZmZlY3RpdmUgVUlEIGlzICVkKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjIyNzcKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjI4OAorbXNnaWQgIm5vdGhpbmcgd2FzIG1vdW50ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyMzA2IG1vdW50L21vdW50LmM6MjMzMgorbXNnaWQgIm1vdW50OiBubyBzdWNoIHBhcnRpdGlvbiBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IGZpbmQgJXMgaW4gJXMgb3IgJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnRfbW50ZW50LmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlttbnRlbnRdOiB3YXJuaW5nOiBubyBmaW5hbCBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTkKK21zZ2lkICI7IHJlc3Qgb2YgZmlsZSBpZ25vcmVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MzIKK21zZ2lkICJidWcgaW4geHN0cm5kdXAgY2FsbCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSA8c3BlY2lhbD4gcGFyYW1ldGVyOlxuIgorIiB7LUwgbGFiZWwgfCBMQUJFTD1sYWJlbH0gICAgICAgICAgICAgTEFCRUwgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgey1VIHV1aWQgIHwgVVVJRD11dWlkfSAgICAgICAgICAgICAgIFVVSUQgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGRldmljZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZGV2aWNlIHRvIGJlIHVzZWRcbiIKKyIgPGZpbGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgZmlsZSB0byBiZSB1c2VkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstZV0gWy12XSBbLWZdICAgICAgICAgICAgIGVuYWJsZSBhbGwgc3dhcHMgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICUxJHMgWy1wIHByaW9yaXR5XSBbLXZdIFstZl0gPHNwZWNpYWw+ICBlbmFibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1zICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgc3dhcCB1c2FnZSBzdW1tYXJ5XG4iCisiICUxJHMgLWggICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIHN3YXBzXG4iCisiICUxJHMgWy12XSA8c3BlY2lhbD4gICAgICAgICAgICAgICBkaXNhYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVpbml0aWFsaXppbmcgdGhlIHN3YXAuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIyMworbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIzOQorbXNnaWQgImV4ZWN2IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNDcKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIHNpZ25hdHVyZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmb3VuZCBzd2FwIHNpZ25hdHVyZTogdmVyc2lvbiAlZCwgcGFnZS1zaXplICVkLCAlcyBieXRlIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgImRpZmZlcmVudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJzYW1lIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyAtIGl0IGFwcGVhcnMgdG8gaGF2ZSBob2xlcy4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBnZXQgc2l6ZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIHN3YXAgaGVhZGVyIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxhc3RfcGFnZSAweCUwOGxseCBpcyBsYXJnZXIgdGhhbiBhY3R1YWwgc2l6ZSBvZiBzd2Fwc3BhY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIChVc2UgLS1maXhwZ3N6IHRvIHJlaW5pdGlhbGl6ZSBpdC4pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc29mdHdhcmUgc3VzcGVuZCBkYXRhIGRldGVjdGVkLiBSZXdyaXRpbmcgdGhlIHN3YXAgc2lnbmF0dXJlLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NzggbW91bnQvc3dhcG9uLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzd2Fwb24gZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZmluZCB0aGUgZGV2aWNlIGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDAKK21zZ2lkICJOb3Qgc3VwZXJ1c2VyLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo1NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvZmYgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIHVuc3VwcG9ydGVkIHByb2dyYW0gbmFtZSAobXVzdCBiZSAnc3dhcG9uJyBvciAnc3dhcG9mZicpLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgLWZcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogaW52YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBjYW4ndCB3cml0ZSBzdXBlcmJsb2NrIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgZm91bmQiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTc1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVtb3VudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogYmxvY2sgZGV2aWNlcyBub3QgcGVybWl0dGVkIG9uIGZzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdW1vdW50MiwgdHJ5aW5nIHVtb3VudC4uLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY291bGQgbm90IHJlbW91bnQgJXMgcmVhZC1vbmx5XG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6Mzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogdW1vdW50IC1oIHwgLVZcbiIKKyIgICAgICAgdW1vdW50IC1hIFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgdmZzdHlwZXNdIFstTyBvcHRzXVxuIgorIiAgICAgICB1bW91bnQgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIHNwZWNpYWwgfCBub2RlLi4uXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIHVtb3VudCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGl0IHNlZW1zICVzIGlzIG1vdW50ZWQgbXVsdGlwbGUgdGltZXMiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAoYW5kIHlvdSBhcmUgbm90IHJvb3QpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIG1vdW50IGRpc2FncmVlcyB3aXRoIHRoZSBmc3RhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBvbmx5ICVzIGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NzAxCittc2dpZCAidW1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImNocnQgLSBtYW5pcHVsYXRlIHJlYWwtdGltZSBhdHRyaWJ1dGVzIG9mIGEgcHJvY2Vzcy5cbiIKKyJcbiIKKyJTZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gPHBvbGljeT4gPHByaW9yaXR5PiB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiR2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJcbiIKKyJTY2hlZHVsaW5nIHBvbGljaWVzOlxuIgorIiAgLWIgfCAtLWJhdGNoICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9CQVRDSFxuIgorIiAgLWYgfCAtLWZpZm8gICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9GSUZPXG4iCisiICAtaSB8IC0taWRsZSAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0lETEVcbiIKKyIgIC1vIHwgLS1vdGhlciAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfT1RIRVJcbiIKKyIgIC1yIHwgLS1yciAgICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfUlIgKGRlZmF1bHQpXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwXG4iCisiICAtcCB8IC0tcGlkICAgICAgICAgICBvcGVyYXRlIG9uIGV4aXN0aW5nIGdpdmVuIHBpZFxuIgorIiAgLW0gfCAtLW1heCAgICAgICAgICAgc2hvdyBtaW4gYW5kIG1heCB2YWxpZCBwcmlvcml0aWVzXG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgICBkaXNwbGF5IHN0YXR1cyBpbmZvcm1hdGlvblxuIgorIiAgLVYgfCAtLXZlcnNpb24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHBvbGljeTogIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwcmlvcml0eTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBub3Qgc3VwcG9ydGVkP1xuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwaWQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjI1Cittc2dpZCAiY3VycmVudCIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzMKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcHJpb3JpdHkiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0MgorbXNnaWQgIm5ldyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXMiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo1NworbXNnaWQgImlvcHJpb19nZXQgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6NzUKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcGFyc2UgbnVtYmVyICclcyciCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNTEKK21zZ2lkICJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBub25lIGNsYXNzIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTU5Cittc2dpZCAiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3IgaWRsZSBjbGFzcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcHJpbyBjbGFzcyAlZCIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE4NworbXNnaWQgImV4ZWN2cCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N0cmxhbHRkZWwuYzoyNworIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgbXVzdCBiZSByb290IHRvIHNldCB0aGUgQ3RybC1BbHQtRGVsIGJlaGF2aW91ci5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1IGFuZCB0aW1yb3V0IHZhbHVlICVsdSwgTWF4aW11bSBjaGFyYWN0ZXJzICIKKyJpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGludGVydmFsIHZhbHVlOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstcSBbLWkgaW50ZXJ2YWxdXSAoWy1zIHZhbHVlXXxbLVMgdmFsdWVdKSAoWy10IHZhbHVlXXxbLVQgdmFsdWVdKSAiCisiWy1nfC1HXSBmaWxlIFtmaWxlLi4uXVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTAgc3lzLXV0aWxzL2N5dHVuZS5jOjI2OSBzeXMtdXRpbHMvY3l0dW5lLmM6Mjg5CisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRpbWUgdGhyZXNob2xkICVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyOTQgc3lzLXV0aWxzL2N5dHVuZS5jOjM1MSBzeXMtdXRpbHMvY3l0dW5lLmM6MzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aHJlc2hvbGQgZm9yICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3VycmVudCB0aHJlc2hvbGQgYW5kICVsZCBjdXJyZW50IHRpbWVvdXRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgZGVmYXVsdCB0aHJlc2hvbGQgYW5kICVsZCBkZWZhdWx0IHRpbWVvdXRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzI3Cittc2dpZCAiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzEgc3lzLXV0aWxzL2N5dHVuZS5jOjM2NgorbXNnaWQgImdldHRpbWVvZmRheSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjM0NCBzeXMtdXRpbHMvY3l0dW5lLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGlzc3VlIENZR0VUTU9OIG9uICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYyAoY2hhci9zZWMpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2RtZXNnLmM6NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo0NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZmlsZW5hbWU+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1rZWVwLXNpemUgICAgIGRvbid0IG1vZGlmeSB0aGUgbGVuZ3RoIG9mIHRoZSBmaWxlXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorIiAtbCwgLS1sZW5ndGggPG51bT4gIGxlbmd0aCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBmYWxsb2NhdGUoMSkuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0NworbXNnaWQgIm5vIGxlbmd0aCBhcmd1bWVudCBzcGVjaWZpZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE0OQorbXNnaWQgImludmFsaWQgbGVuZ3RoIHZhbHVlIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTMKK21zZ2lkICJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzMKK21zZ2lkICJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWxsb2NhdGUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyByZXF1aXJlcyBleGFjdGx5IG9uZSBjb21tYW5kIGFyZ3VtZW50XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjI5NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZm9yayBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBpcGNtaygxKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDIKK21zZ2lkICJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hhcmVkIG1lbW9yeSBpZDogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTYwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlbWFwaG9yZSBpZDogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo2NAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCByZW1vdmUgaWQgJXMgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgImRlcHJlY2F0ZWQgdXNhZ2U6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duIHJlc291cmNlIHR5cGU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlc291cmNlKHMpIGRlbGV0ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBrZXkgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwNiBzeXMtdXRpbHMvaXBjcm0uYzoyMzgKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwOSBzeXMtdXRpbHMvaXBjcm0uYzoyNDgKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQga2V5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxMiBzeXMtdXRpbHMvaXBjcm0uYzoyNDMKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTUgc3lzLXV0aWxzL2lwY3JtLmM6MjUzCittc2dpZCAidW5rbm93biBlcnJvciBpbiBrZXkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjM5Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0NAorbXNnaWQgImludmFsaWQgaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ5Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NAorbXNnaWQgInVua25vd24gZXJyb3IgaW4gaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIGFyZ3VtZW50OiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0JXMgLWggZm9yIGhlbHAuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzIGZvciB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcbiIKKyJcdC1tIDogc2hhcmVkX21lbVxuIgorIlx0LXEgOiBtZXNzYWdlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdC1zIDogc2VtYXBob3Jlc1xuIgorIlx0LWEgOiBhbGwgKGRlZmF1bHQpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk91dHB1dCBGb3JtYXQ6XG4iCisiXHQtdCA6IHRpbWVcbiIKKyJcdC1wIDogcGlkXG4iCisiXHQtYyA6IGNyZWF0b3JcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLWkgaWQgWy1zIC1xIC1tXSA6IGRldGFpbHMgb24gcmVzb3VyY2UgaWRlbnRpZmllZCBieSBpZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3Igc2hhcmVkIG1lbW9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2Ygc2VnbWVudHMgPSAlbHVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VnIHNpemUgKGtieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIGFsbG9jYXRlZCAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyByZXNpZGVudCAgJWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgc3dhcHBlZCAgICVsZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3YXAgcGVyZm9ybWFuY2U6ICVsZCBhdHRlbXB0c1x0ICVsZCBzdWNjZXNzZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNworbXNnaWQgInNobWlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDA4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgInBlcm1zIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiY3VpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImNnaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJ1aWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJnaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQXR0YWNoL0RldGFjaC9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMSBzeXMtdXRpbHMvaXBjcy5jOjMwNworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MTIKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAib3duZXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NAorbXNnaWQgImRldGFjaGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk1Cittc2dpZCAiY2hhbmdlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBDcmVhdG9yL0xhc3Qtb3AgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImNwaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJscGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcgc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJrZXkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJieXRlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgIm5hdHRjaCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwOAorbXNnaWQgInN0YXR1cyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMyOSBzeXMtdXRpbHMvaXBjcy5jOjMzMSBzeXMtdXRpbHMvaXBjcy5jOjMzMworIzogc3lzLXV0aWxzL2lwY3MuYzo0NDQgc3lzLXV0aWxzL2lwY3MuYzo0NDYgc3lzLXV0aWxzL2lwY3MuYzo1NDUKKyM6IHN5cy11dGlscy9pcGNzLmM6NTQ3IHN5cy11dGlscy9pcGNzLmM6NTQ5IHN5cy11dGlscy9pcGNzLmM6NjAwCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMiBzeXMtdXRpbHMvaXBjcy5jOjYzMCBzeXMtdXRpbHMvaXBjcy5jOjYzMgorIzogc3lzLXV0aWxzL2lwY3MuYzo2MzQgc3lzLXV0aWxzL2lwY3MuYzo2NTcKK21zZ2lkICJOb3Qgc2V0IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MgorbXNnaWQgImxvY2tlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNlbWFwaG9yZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBudW1iZXIgb2YgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBwZXIgYXJyYXkgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJzZW1hcGhvcmUgbWF4IHZhbHVlID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgYXJyYXlzID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgc2VtYXBob3JlcyA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo0MTQgc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJzZW1pZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3Qtb3AiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LWNoYW5nZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQyMworbXNnaWQgIm5zZW1zIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgImtlcm5lbCBub3QgY29uZmlndXJlZCBmb3IgbWVzc2FnZSBxdWV1ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IExpbWl0cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzaXplIG9mIG1lc3NhZ2UgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVmYXVsdCBtYXggc2l6ZSBvZiBxdWV1ZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZXM6IFN0YXR1cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk4CisjLCBjLWZvcm1hdAorbXNnaWQgImFsbG9jYXRlZCBxdWV1ZXMgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk5CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgaGVhZGVycyA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBzcGFjZSA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzOiBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNiBzeXMtdXRpbHMvaXBjcy5jOjUxMiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorIzogc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJtc3FpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgU2VuZC9SZWN2L0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAic2VuZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInJlY3YiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJjaGFuZ2UiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFBJRHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxzcGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHJwaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJ1c2VkLWJ5dGVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAibWVzc2FnZXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1ODkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTaGFyZWQgbWVtb3J5IFNlZ21lbnQgc2htaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdGdpZD0lZFx0Y3VpZD0lZFx0Y2dpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvXHRhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXM9JWxkXHRscGlkPSVkXHRjcGlkPSVkXHRuYXR0Y2g9JWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYXR0X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAzIHN5cy11dGlscy9pcGNzLmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTUKK21zZ2lkICJtc2djdGwgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJNZXNzYWdlIFF1ZXVlIG1zcWlkPSVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJjdl90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZW1hcGhvcmUgQXJyYXkgc2VtaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vZGU9JSNvLCBhY2Nlc3NfcGVybXM9JSNvXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibnNlbXMgPSAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJvdGltZSA9ICUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAic2VtbnVtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAidmFsdWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJuY291bnQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJ6Y291bnQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NjEKK21zZ2lkICJwaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8c3BlZWQ+IF0gPGxkaXNjPiA8ZGV2aWNlPlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjkxCittc2dpZCAiIgorIlxuIgorIktub3duIDxsZGlzYz4gbmFtZXM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgc3BlZWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJsZGF0dGFjaCBmcm9tICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTg0IHRleHQtdXRpbHMvdGFpbGYuYzoyMDYKK21zZ2lkICJpbnZhbGlkIG9wdGlvbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBsaW5lIGRpc2NpcGxpbmU6ICVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlZWQgJWQgdW5zdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjUxCittc2dpZCAiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3Cittc2dpZCAiY2Fubm90IGRhZW1vbml6ZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NAorbXNnaWQgIm5vbmUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUKK21zZ2lkICJwYXJhIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2Cittc2dpZCAiZnVsbCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxMzcgc3lzLXV0aWxzL2xzY3B1LmM6MTYwIHN5cy11dGlscy9sc2NwdS5jOjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHBhcnNlOiAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoxODQKK21zZ2lkICJlcnJvcjogc3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzoyNjcKK21zZ2lkICJlcnJvcjogdW5hbWUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorbXNnaWQgImVycm9yOiBtYWxsb2MgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXJcbiIKKyIjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElEXG4iCisiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisiIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MTkKK21zZ2lkICJDUFUgb3AtbW9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI1Cittc2dpZCAiVGhyZWFkKHMpIHBlciBjb3JlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjYKK21zZ2lkICJDb3JlKHMpIHBlciBzb2NrZXQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNworbXNnaWQgIkNQVSBzb2NrZXQocyk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMzCittc2dpZCAiVmVuZG9yIElEOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzUKK21zZ2lkICJDUFUgZmFtaWx5OiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzcKK21zZ2lkICJNb2RlbDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0MQorbXNnaWQgIkNQVSBNSHo6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1MAorbXNnaWQgIlZpcnR1YWxpemF0aW9uIHR5cGU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjYWNoZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uXVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2OQorbXNnaWQgIiIKKyJDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGhlbHBlclxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuXG4iCisiICAtcywgLS1zeXNyb290ICB1c2UgdGhlIGRpcmVjdG9yeSBhcyBhIG5ldyBzeXN0ZW0gcm9vdC5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OQorbXNnaWQgIiAgcmRldiAvZGV2L2ZkMCAvZGV2L2hkYTIgICAgICAgICBzZXRzIFJPT1QgdG8gL2Rldi9oZGEyIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODAKK21zZ2lkICIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBST09URkxBR1MgKHJlYWRvbmx5IHN0YXR1cykiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MQorbXNnaWQgIiAgcmRldiAtciAvZGV2L2ZkMCA2MjcgICAgICAgICAgICBzZXQgdGhlIFJBTURJU0sgc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgyCittc2dpZCAiICByZGV2IC12IC9kZXYvZmQwIDEgICAgICAgICAgICAgIHNldCB0aGUgYm9vdHVwIFZJREVPTU9ERSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgzCittc2dpZCAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHVzZSB0aGUgYnl0ZSBvZmZzZXQgTiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg0Cittc2dpZCAiICByb290ZmxhZ3MgLi4uICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtUiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg1Cittc2dpZCAiICByYW1zaXplIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtciIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg2Cittc2dpZCAiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtdiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg3Cittc2dpZCAiIgorIk5vdGU6IHZpZGVvIG1vZGVzIGFyZTogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLCAxPWtleTEsIDI9a2V5MiwuLi4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4OAorbXNnaWQgIiAgICAgIHVzZSAtUiAxIHRvIG1vdW50IHJvb3QgcmVhZG9ubHksIC1SIDAgZm9yIHJlYWQvd3JpdGUuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo3MiB0ZXh0LXV0aWxzL21vcmUuYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3V0IG9mIG1lbW9yeSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogXCIlcyBbb3B0aW9uc11cbiIKKyJcdCAtbSA8bWFwZmlsZT4gIChkZWZhdWx0czogXCIlc1wiIGFuZFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAoZGVmYXVsdDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgc2V0IHRoZSBwcm9maWxpbmcgbXVsdGlwbGllciB0byA8bXVsdD5cbiIKKyJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorIlx0IC12ICAgICAgICAgICAgcHJpbnQgdmVyYm9zZSBkYXRhXG4iCisiXHQgLWEgICAgICAgICAgICBwcmludCBhbGwgc3ltYm9scywgZXZlbiBpZiBjb3VudCBpcyAwXG4iCisiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisiXHQgLXMgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGNvdW50ZXJzIHdpdGhpbiBmdW5jdGlvbnNcbiIKKyJcdCAtciAgICAgICAgICAgIHJlc2V0IGFsbCB0aGUgY291bnRlcnMgKHJvb3Qgb25seSlcbiIKKyJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorIlx0IC1WICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBhbmQgZXhpdFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjIyNworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkcHJvZmlsZTogZXJyb3Igd3JpdGluZyAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgcmV2ZXJzZWQgYnl0ZSBvcmRlci4gVXNlIC1uIHRvIGZvcmNlIG5hdGl2ZSBieXRlIG9yZGVyLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI4NAorIywgYy1mb3JtYXQKK21zZ2lkICJTYW1wbGluZ19zdGVwOiAlaVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMwNSBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzKCVpKTogd3JvbmcgbWFwIGxpbmVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcHJvZmlsZSBhZGRyZXNzIG91dCBvZiByYW5nZS4gV3JvbmcgbWFwIGZpbGU/XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6NDEyCittc2dpZCAidG90YWwiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgWy1wfC0tcGlkXSBwaWQgIFsuLi4gcGlkXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZSBmcm9tICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2U6ICVzOiB1bmtub3duIHVzZXJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTM0CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTIgc3lzLXV0aWxzL3JlbmljZS5jOjE2NAorbXNnaWQgImdldHByaW9yaXR5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNTcKK21zZ2lkICJzZXRwcmlvcml0eSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkOiBvbGQgcHJpb3JpdHkgJWQsIG5ldyBwcmlvcml0eSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKyIgICAgLWQgfCAtLWRldmljZSA8ZGV2aWNlPiAgICBzZWxlY3QgcnRjIGRldmljZSAocnRjMHxydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICBSVEMgdXNlcyBsb2NhbCB0aW1lem9uZVxuIgorIiAgICAtbSB8IC0tbW9kZSAgICAgICAgICAgICAgIHN0YW5kYnl8bWVtfC4uLiBzbGVlcCBtb2RlXG4iCisiICAgIC1zIHwgLS1zZWNvbmRzIDxzZWNvbmRzPiAgc2Vjb25kcyB0byBzbGVlcFxuIgorIiAgICAtdCB8IC0tdGltZSA8dGltZV90PiAgICAgIHRpbWUgdG8gd2FrZVxuIgorIiAgICAtdSB8IC0tdXRjICAgICAgICAgICAgICAgIFJUQyB1c2VzIFVUQ1xuIgorIiAgICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgIHZlcmJvc2UgbWVzc2FnZXNcbiIKKyIgICAgLVYgfCAtLXZlcnNpb24gICAgICAgICAgICBzaG93IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0MgorbXNnaWQgInJlYWQgcnRjIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNDcKK21zZ2lkICJyZWFkIHN5c3RlbSB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTY1Cittc2dpZCAiY29udmVydCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyNAorbXNnaWQgInNldCBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMjgKK21zZ2lkICJlbmFibGUgcnRjIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjMyCittc2dpZCAic2V0IHJ0YyB3YWtlIGFsYXJtIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIHRpbWVfdCB2YWx1ZSAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB2ZXJzaW9uICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGFzc3VtaW5nIFJUQyB1c2VzIFVUQyAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwMworIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBVVEMgdGltZS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQwNAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2luZyBsb2NhbCB0aW1lLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBtdXN0IHByb3ZpZGUgd2FrZSB0aW1lXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MTcKK21zZ2lkICJtYWxsb2MoKSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxhcm0gJWxkLCBzeXNfdGltZSAlbGQsIHJ0Y190aW1lICVsZCwgc2Vjb25kcyAldVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aW1lIGRvZXNuJ3QgZ28gYmFja3dhcmQgdG8gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd2FrZXVwIGZyb20gXCIlc1wiIHVzaW5nICVzIGF0ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDk2Cittc2dpZCAicnRjIHJlYWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo1MDUKK21zZ2lkICJkaXNhYmxlIHJ0YyBhbGFybSBpbnRlcnJ1cHQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzo1MAorIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hpbmcgb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgc2V0YXJjaCg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVzXG4iCisiVHJ5IGAlcyAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjE1IHN5cy11dGlscy9zZXRhcmNoLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNjUgc3lzLXV0aWxzL3NldGFyY2guYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0c2lkLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIHByb2dyYW0gW2FyZyAuLi5dXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKyIgICAgICAgICAgLWEgW29ufG9mZl0gfCAtbyBbb258b2ZmXSB8IC1DIFtvbnxvZmZdIHwgLXEgW29ufG9mZl0gfCAtcyB8IFxuIgorIiAgICAgICAgICAtVCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBhbiBscCBkZXZpY2UuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdGF0dXMgaXMgJWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGJ1c3kiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIsIHJlYWR5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NworIywgYy1mb3JtYXQKK21zZ2lkICIsIG9uLWxpbmUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGVycm9yIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyODUKK21zZ2lkICJMUEdFVElSUSBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgcG9sbGluZ1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSA8cHJvZ3JhbT4gW2FyZ3MuLi5dXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2MAorbXNnaWQgIiIKKyJSdW4gcHJvZ3JhbSB3aXRoIHNvbWUgbmFtZXNwYWNlcyB1bnNoYXJlZCBmcm9tIHBhcmVudFxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgICAgdXNhZ2UgaW5mb3JtYXRpb24gKHRoaXMpXG4iCisiICAtbSwgLS1tb3VudCAgICAgICB1bnNoYXJlIG1vdW50cyBuYW1lc3BhY2VcbiIKKyIgIC11LCAtLXV0cyAgICAgICAgIHVuc2hhcmUgVVRTIG5hbWVzcGFjZSAoaG9zdG5hbWUgZXRjKVxuIgorIiAgLWksIC0taXBjICAgICAgICAgdW5zaGFyZSBTeXN0ZW0gViBJUEMgbmFtZXNwYWNlXG4iCisiICAtbiwgLS1uZXQgICAgICAgICB1bnNoYXJlIG5ldHdvcmsgbmFtZXNwYWNlXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHVuc2hhcmUoMSkuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzoxMTQKK21zZ2lkICJ1bnNoYXJlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJleGVjICVzIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IGJhZCAtbCBhcmd1bWVudCAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sIFstYmZweF0gWy1sIG5saW5lXVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd3JpdGUgZXJyb3IuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAicGFzdCBmaXJzdCBsaW5lIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAiLS0gbGluZSBhbHJlYWR5IGZsdXNoZWQiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mjk3Cittc2dpZCAibGluZSB0b28gbG9uZyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjM3NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sdW1uIFstdHhdIFstYyBjb2x1bW5zXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgbGVuZ3RoIHZhbHVlLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIHNraXAgdmFsdWUuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9oZXhzeW50YXguYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImhleGR1bXA6IFstYmNDZG92eF0gWy1lIGZtdF0gWy1mIGZtdF9maWxlXSBbLW4gbGVuZ3RoXSBbLXMgc2tpcF0gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWy1kZmxwY3N1XSBbK2xpbmVudW0gfCArL3BhdHRlcm5dIG5hbWUxIG5hbWUyIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI5MAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBvcHRpb24gXCItJWNcIlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjUxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqICVzOiBkaXJlY3RvcnkgKioqXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIqKioqKioqKiAlczogTm90IGEgdGV4dCBmaWxlICoqKioqKioqXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIltVc2UgcSBvciBRIHRvIHF1aXRdIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICItLU1vcmUtLSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiKE5leHQgZmlsZTogJXMpIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDgKK21zZ2lkICIuLi5iYWNrIDEgcGFnZSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjUxCittc2dpZCAiLi4uc2tpcHBpbmcgb25lIGxpbmUiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MworIywgYy1mb3JtYXQKK21zZ2lkICIuLi5za2lwcGluZyAlZCBsaW5lcyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjkwCittc2dpZCAiIgorIlxuIgorIioqKkJhY2sqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzI4Cittc2dpZCAiIgorIlxuIgorIk1vc3QgY29tbWFuZHMgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBpbnRlZ2VyIGFyZ3VtZW50IGsuICBEZWZhdWx0cyBpbiAiCisiYnJhY2tldHMuXG4iCisiU3RhciAoKikgaW5kaWNhdGVzIGFyZ3VtZW50IGJlY29tZXMgbmV3IGRlZmF1bHQuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMzNQorbXNnaWQgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0MworIywgYy1mb3JtYXQKK21zZ2lkICJcIiVzXCIgbGluZSAlZCIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIltOb3QgYSBmaWxlXSBsaW5lICVkIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1MjkKK21zZ2lkICIgIE92ZXJmbG93XG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTU3NgorbXNnaWQgIi4uLnNraXBwaW5nXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYwNQorbXNnaWQgIlJlZ3VsYXIgZXhwcmVzc2lvbiBib3RjaCIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjEzCittc2dpZCAiIgorIlxuIgorIlBhdHRlcm4gbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxNiB0ZXh0LXV0aWxzL3BnLmM6MTEyNyB0ZXh0LXV0aWxzL3BnLmM6MTI3OAorbXNnaWQgIlBhdHRlcm4gbm90IGZvdW5kIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2NzcKK21zZ2lkICJjYW4ndCBmb3JrXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcxNgorbXNnaWQgIiIKKyJcbiIKKyIuLi5Ta2lwcGluZyAiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTcyMAorbXNnaWQgIi4uLlNraXBwaW5nIHRvIGZpbGUgIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjIKK21zZ2lkICIuLi5Ta2lwcGluZyBiYWNrIHRvIGZpbGUgIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMDAKK21zZ2lkICJMaW5lIHRvbyBsb25nIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwNDMKK21zZ2lkICJObyBwcmV2aW91cyBjb21tYW5kIHRvIHN1YnN0aXR1dGUgZm9yIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IG9kKDEpIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGhleGR1bXAoMSkuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJvZDogaGV4ZHVtcCgxKSBjb21wYXRpYmlsaXR5IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLSVjIG9wdGlvbiVzXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzNAorbXNnaWQgIjsgc2VlIHN0cmluZ3MoMSkuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2OAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBieXRlIGNvdW50IGZvciBjb252ZXJzaW9uIGNoYXJhY3RlciAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5NgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgZm9ybWF0IHslc31cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBjb252ZXJzaW9uIGNoYXJhY3RlciAlJSVzLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMjMKK21zZ2lkICJPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiAlcyBbLW51bWJlcl0gWy1wIHN0cmluZ10gWy1jZWZucnNdIFsrbGluZV0gWysvcGF0dGVybi9dIFtmaWxlc11cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzAKK21zZ2lkICIuLi5za2lwcGluZyBmb3J3YXJkXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjM3MgorbXNnaWQgIi4uLnNraXBwaW5nIGJhY2t3YXJkXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjM5NAorbXNnaWQgIk5vIG5leHQgZmlsZSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk4Cittc2dpZCAiTm8gcHJldmlvdXMgZmlsZSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBSZWFkIGVycm9yIGZyb20gJXMgZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuZXhwZWN0ZWQgRU9GIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmtub3duIGVycm9yIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMDQ0IHRleHQtdXRpbHMvcGcuYzoxMjE5IHRleHQtdXRpbHMvcGcuYzoxMjQ2Cittc2dpZCAiUkUgZXJyb3I6ICIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIwMQorbXNnaWQgIihFT0YpIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjI3IHRleHQtdXRpbHMvcGcuYzoxMjU0Cittc2dpZCAiTm8gcmVtZW1iZXJlZCBzZWFyY2ggc3RyaW5nIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzEwCittc2dpZCAiQ2Fubm90IG9wZW4gIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMzU4Cittc2dpZCAic2F2ZWQiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTcwNQorbXNnaWQgIihOZXh0IGZpbGU6ICIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjExMworbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzcGFjZSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6NTggdGV4dC11dGlscy90YWlsZi5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBcIiVzXCIiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJpbmNvbXBsZXRlIHdyaXRlIHRvIFwiJXNcIiAod3JpdHRlbiAlemQsIGV4cGVjdGVkICV6ZClcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2ggKGxpbWl0IG9mIGlub3RpZnkgd2F0Y2hlcyB3YXMgcmVhY2hlZCkuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaC4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE5OSB0ZXh0LXV0aWxzL3RhaWxmLmM6MjAzCittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgbGluZXMiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLWkgXSBbIC10VGVybSBdIGZpbGUuLi5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgInRyb3VibGUgcmVhZGluZyB0ZXJtaW5mbyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy91bC5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJJbnB1dCBsaW5lIHRvbyBsb25nLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdWwuYzo1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3V0IG9mIG1lbW9yeSB3aGVuIGdyb3dpbmcgYnVmZmVyLlxuIgorbXNnc3RyICIiCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby92aS5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby92aS5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRiZDBjMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3ZpLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby92aS5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3ZpLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmMTZlN2UKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby92aS5wbwpAQCAtMCwwICsxLDEyMjQyIEBACisjIFZpZXRuYW1lc2UgdHJhbnNsYXRpb24gZm9yIFV0aWwtTGludXgtTkcuCisjIENvcHlyaWdodCDCqSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlLgorIyBQaGFuIFZpbmggVGhpbmggPHRlcHBpODJAZ21haWwuY29tPiwgMjAwNS0yMDA3CisjIENseXRpZSBTaWRkYWxsIDxjbHl0aWVAcml2ZXJsYW5kLm5ldC5hdT4sIDIwMDctMjAxMC4KKyMKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IHV0aWwtbGludXgtbmcgMi4xNy4xLXJjMVxuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT5cbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMC0wMy0yMiAwOTozNyswMTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAxMC0wMy0wNiAyMjowNyswOTMwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBDbHl0aWUgU2lkZGFsbCA8Y2x5dGllQHJpdmVybGFuZC5uZXQuYXU+XG4iCisiTGFuZ3VhZ2UtVGVhbTogVmlldG5hbWVzZSA8dmktVk5AZ29vZ2xlZ3JvdXBzLmNvbT5cbiIKKyJNSU1FLVZlcnNpb246IDEuMFxuIgorIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFxuIgorIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKKyJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTE7IHBsdXJhbD0wO1xuIgorIlgtR2VuZXJhdG9yOiBMb2NGYWN0b3J5RWRpdG9yIDEuOFxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NjMKK21zZ2lkICJzZXQgcmVhZC1vbmx5IgorbXNnc3RyICLEkeG6t3QgY2jhu4kgxJHhu41jIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NzAKK21zZ2lkICJzZXQgcmVhZC13cml0ZSIKK21zZ3N0ciAixJHhurd0IMSR4buNYy12aeG6v3QiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo3NgorbXNnaWQgImdldCByZWFkLW9ubHkiCittc2dzdHIgImzhuqV5IGNo4buJIMSR4buNYyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjgyCittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAibOG6pXkga8OtY2ggY+G7oSBraOG7kWkgaOG7o3AgbMO9IChyw6NuaCBnaGkpIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKK21zZ2lkICJnZXQgcGh5c2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAibOG6pXkga8OtY2ggY+G7oSBraOG7kWkgduG6rXQgbMO9IChyw6NuaCBnaGkpIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6OTQKK21zZ2lkICJnZXQgbWluaW11bSBJL08gc2l6ZSIKK21zZ3N0ciAibOG6pXkga8OtY2ggY+G7oSBWL1IgdOG7kWkgdGhp4buDdSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwMAorbXNnaWQgImdldCBvcHRpbWFsIEkvTyBzaXplIgorbXNnc3RyICJs4bqleSBrw61jaCBj4buhIFYvUiB04buRaSDGsHUiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDYKK21zZ2lkICJnZXQgYWxpZ25tZW50IG9mZnNldCIKK21zZ3N0ciAibOG6pXkga2hv4bqjbmcgY2jDqm5oIHPhuq9wIGjDoG5nIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTEyCittc2dpZCAiZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IgorbXNnc3RyICJs4bqleSBz4buRIHThu5FpIMSRYSBjw6FjIHLDo25oIGdoaSBjaG8gbeG7l2kgecOqdSBj4bqndSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjExOAorbXNnaWQgImdldCBibG9ja3NpemUiCittc2dzdHIgImzhuqV5IGvDrWNoIGPhu6Ega2jhu5FpIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTI1Cittc2dpZCAic2V0IGJsb2Nrc2l6ZSIKK21zZ3N0ciAixJHhurd0IGvDrWNoIGPhu6Ega2jhu5FpIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTMxCittc2dpZCAiZ2V0IDMyLWJpdCBzZWN0b3IgY291bnQiCittc2dzdHIgImzhuqV5IHPhu5EgcsOjbmggZ2hpIDMyIGJpdCIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEzNworbXNnaWQgImdldCBzaXplIGluIGJ5dGVzIgorbXNnc3RyICJs4bqleSBrw61jaCBj4buhIHRoZW8gYnl0ZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE0NAorbXNnaWQgInNldCByZWFkYWhlYWQiCittc2dzdHIgIsSR4bq3dCDEkeG7jWMgc+G6tW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTAKK21zZ2lkICJnZXQgcmVhZGFoZWFkIgorbXNnc3RyICJs4bqleSDEkeG7jWMgc+G6tW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgIsSR4bq3dCDEkeG7jWMgc+G6tW4gY2hvIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgImzhuqV5IMSR4buNYyBz4bq1biBjaG8gaOG7hyB0aOG7kW5nIHThuq1wIHRpbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE2NworbXNnaWQgImZsdXNoIGJ1ZmZlcnMiCittc2dzdHIgImzDoG0gdHLDoG4gYuG7mSDEkeG7h20iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICLEkeG7jWMgbOG6oWkgYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOlxuIgorbXNnc3RyICJT4butIGThu6VuZzpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFt0aGnhur90IGLhu4tdXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAlcyBbLXZ8LXFdIGNvbW1hbmRzIGRldmljZXNcbiIKK21zZ3N0ciAiICAlcyBbLXZ8LXFdIGPDonVfbOG7h25oIHRoaeG6v3RfYuG7i1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBjb21tYW5kczpcbiIKK21zZ3N0ciAiTmjhu69uZyBjw6J1IGzhu4duaCBjw7MgOlxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTg3Cittc2dpZCAiZ2V0IHNpemUgaW4gNTEyLWJ5dGUgc2VjdG9ycyIKK21zZ3N0ciAibOG6pXkga8OtY2ggY+G7oSB0aGVvIHBo4bqnbiA1MTIgYnl0ZSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBjb21tYW5kOiAlc1xuIgorbXNnc3RyICIlczogQ8OidSBs4buHbmgga2jDtG5nIHLDtSA6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIKK21zZ3N0ciAiJXMgecOqdSBj4bqndSBt4buZdCB0aGFtIHPhu5FcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgIiVzIGLhu4sgbOG7l2kuXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgc3VjY2VlZGVkLlxuIgorbXNnc3RyICIlcyB0aMOgbmggY8O0bmcuXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0MjcgZGlzay11dGlscy9ibG9ja2Rldi5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiJXM6IGtow7RuZyB0aOG7gyBt4bufICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiBs4buXaSBpb2N0bCB0csOqbiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDgxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPICAgIFJBICAgU1NaICAgQlNaICAgU3RhcnRTZWMgICAgICAgICAgICBTaXplICAgRGV2aWNlXG4iCittc2dzdHIgIlJPICAgIFJBICAgU1NaICAgQlNaICAgUsOjbmjEkOG6p3UgICAgIFx0ICAgIEPhu6EgICAgVGhp4bq/dCBi4buLXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOlxuIgorbXNnc3RyICJz4butIGThu6VuZzpcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHROT1RFOiBlbHZ0dW5lIG9ubHkgd29ya3Mgd2l0aCAyLjQga2VybmVsc1xuIgorbXNnc3RyICJcdEdISSBDSMOaIDogZWx2dHVuZSBjaOG7iSBob+G6oXQgxJHhu5luZyB24bubaSBo4bqhdCBuaMOibiBraeG7g3UgMi40XG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJzZSBlcnJvclxuIgorbXNnc3RyICJs4buXaSBwaMOibiB0w61jaCBjw7ogcGjDoXBcbiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pc3NpbmcgYmxvY2tkZXZpY2UsIHVzZSAtaCBmb3IgaGVscFxuIgorbXNnc3RyICJ0aGnhur91IHRoaeG6v3QgYuG7iyBraOG7kWkgKGfDtSDCqyAtaCDCuyDEkeG7gyB0aOG6pXkgdHLhu6MgZ2nDunApXG4iCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZWx2dHVuZSBpcyBvbmx5IHVzZWZ1bCBvbiBvbGRlciBrZXJuZWxzO1xuIgorImZvciAyLjYgdXNlIElPIHNjaGVkdWxlciBzeXNmcyB0dW5hYmxlcyBpbnN0ZWFkLi5cbiIKK21zZ3N0ciAiIgorIlxuIgorImVsdnR1bmUgY2jhu4kgY8OzIMOtY2ggduG7m2kgaOG6oXQgbmjDom4gY8WpIDtcbiIKKyLEkeG7kWkgduG7m2kgaOG6oXQgbmjDom4gMi42LCBow6N5IHRoYXkgdGjhur8gYuG6sW5nXG4iCisicGjhuqduIG3hu4FtIMSR4buLbmggdGjhu51pIFYvUiBzeXNmcyB0dW5hYmxlcy5cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcm1hdHRpbmcgLi4uICIKK21zZ3N0ciAixJBhbmcgxJHhu4tuaCBk4bqhbmcgLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgImhvw6BuIHThuqV0XG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJWZXJpZnlpbmcgLi4uICIKK21zZ3N0ciAixJBhbmcga2nhu4NtIHRyYSAuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIsSQ4buNYzogIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmxlbSByZWFkaW5nIGN5bGluZGVyICVkLCBleHBlY3RlZCAlZCwgcmVhZCAlZFxuIgorbXNnc3RyICJDw7MgduG6pW4gxJHhu4Ega2hpIMSR4buNYyBow6xuaCB0cuG7pSAlZCwgbW9uZyBjaOG7nSAlZCwgxJHhu41jICVkXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiYmFkIGRhdGEgaW4gY3lsICVkXG4iCisiQ29udGludWluZyAuLi4gIgorbXNnc3RyICIiCisiZOG7ryBsaeG7h3UgeOG6pXUgdOG6oWkgaMOsbmggdHLhu6UgJWRcbiIKKyLEkGFuZyB0aeG6v3AgdOG7pWMgLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjk2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1uIF0gZGV2aWNlXG4iCittc2dzdHIgInPhu60gZOG7pW5nOiAlcyBbIC1uIF0gdGhp4bq/dCBi4buLXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMTggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4NAorIzogZGlzay11dGlscy9pc29zaXplLmM6MTgxIGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMTQgZGlzay11dGlscy9ta2ZzLmM6NTIKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4MTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTcyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ4NyBtaXNjLXV0aWxzL2RkYXRlLmM6MTc5IG1pc2MtdXRpbHMvcmVuYW1lLmM6NzkKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTQ3IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXMpXG4iCittc2dzdHIgIiVzICglcylcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIiVzOiBraMO0bmcgcGjhuqNpIGzDoCB0aGnhur90IGLhu4sga2jhu5FpXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDIKK21zZ2lkICJDb3VsZCBub3QgZGV0ZXJtaW5lIGN1cnJlbnQgZm9ybWF0IHR5cGUiCittc2dzdHIgIktow7RuZyB0aOG7gyB4w6FjIMSR4buLbmggxJHGsOG7o2Mga2nhu4N1IMSR4buLbmggZOG6oW5nIGhp4buHbiB0aOG7nWkiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMtc2lkZWQsICVkIHRyYWNrcywgJWQgc2VjL3RyYWNrLiBUb3RhbCBjYXBhY2l0eSAlZCBrQi5cbiIKK21zZ3N0ciAiJXMgbeG6t3QsICVkIHLDo25oLCAlZCBnacOieS9yw6NuaC4gVOG7lW5nIGR1bmcgbMaw4bujbmcgJWQga0IuXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDQKK21zZ2lkICJEb3VibGUiCittc2dzdHIgIsSQw7RpIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICLEkMahbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaHZdIFsteCBkaXJdIGZpbGVcbiIKKyIgLWggICAgICAgICBwcmludCB0aGlzIGhlbHBcbiIKKyIgLXggZGlyICAgICBleHRyYWN0IGludG8gZGlyXG4iCisiIC12ICAgICAgICAgYmUgbW9yZSB2ZXJib3NlXG4iCisiIGZpbGUgICAgICAgZmlsZSB0byB0ZXN0XG4iCittc2dzdHIgIiIKKyJz4butIGThu6VuZzogJXMgWy1odl0gWy14IHRoxrAgbeG7pWNdIHThuq1wIHRpblxuIgorIiAtaFx0XHQgaW4gcmEgaMaw4bubbmcgZOG6q24gbsOgeVxuIgorIiAteCB0aMawIG3hu6VjXHQgZ2hpIHRow7RuZyB0aW4gdsOgbyB0aMawIG3hu6VjIG7DoHlcbiIKKyIgLXZcdFx0IGhp4buHbiB0aOG7iyBuaGnhu4F1IHRow7RuZyBiw6FvIGtoaSB0aOG7sWMgaGnhu4duXG4iCisiIHThuq1wIHRpblx0XHQgdOG6rXAgdGluIMSR4buDIHRo4butIG5naGnhu4dtXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICJs4buXaSBs4bqleSB0cuG6oW5nIHRow6FpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2NyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZW4gZmFpbGVkOiAlcyIKK21zZ3N0ciAibOG7l2kgbeG7nyA6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTcyCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIGZhaWxlZDogdW5hYmxlIHRvIGRldGVybWluZSBkZXZpY2Ugc2l6ZTogJXMiCittc2dzdHIgImlvY3RsIGLhu4sgbOG7l2k6IGtow7RuZyB0aOG7gyB4w6FjIMSR4buLbmgga8OtY2ggY+G7oSB0aGnhur90IGLhu4s6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBhIGJsb2NrIGRldmljZSBvciBmaWxlOiAlcyIKK21zZ3N0ciAia2jDtG5nIHBo4bqjaSB0aGnhur90IGLhu4sga2jhu5FpIGhheSB04bqtcCB0aW46ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgImNoaeG7gXUgZMOgaSB04bqtcCB0aW4gcXXDoSBuZ+G6r24iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxODkgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE5NworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI1OCBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZmFpbGVkOiAlcyIKK21zZ3N0ciAibOG7l2kgxJHhu41jOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIwNworbXNnaWQgInN1cGVyYmxvY2sgbWFnaWMgbm90IGZvdW5kIgorbXNnc3RyICJraMO0bmcgdMOsbSB0aOG6pXkgbWEgdGh14bqtdCBzacOqdSBraOG7kWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMTYKK21zZ2lkICJ1bnN1cHBvcnRlZCBmaWxlc3lzdGVtIGZlYXR1cmVzIgorbXNnc3RyICJn4bq3cCB0w61uaCBuxINuZyBo4buHIHRo4buRbmcgdOG6rXAgdGluIGtow7RuZyDEkcaw4bujYyBo4buXIHRy4bujIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAia8OtY2ggY+G7oSBzacOqdSBraOG7kWkgKCVkKSBxdcOhIG5o4buPIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjIzCittc2dpZCAiemVybyBmaWxlIGNvdW50IgorbXNnc3RyICLEkeG6v20gc+G7kSBraMO0bmcgdOG6rXAgdGluIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGUgZXh0ZW5kcyBwYXN0IGVuZCBvZiBmaWxlc3lzdGVtXG4iCittc2dzdHIgImPhuqNuaCBiw6FvOiB04bqtcCB0aW4ga8OpbyBkw6BpIHF1w6EgxJFp4buDbSBjdeG7kWkgaOG7hyB0aOG7kW5nIHThuq1wIHRpblxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgImPhuqNuaCBiw6FvIDogxJHhu4tuaCBk4bqhbmcgY3JhbWZzIGPFqVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjQ2Cittc2dpZCAidW5hYmxlIHRvIHRlc3QgQ1JDOiBvbGQgY3JhbWZzIGZvcm1hdCIKK21zZ3N0ciAia2jDtG5nIHRo4buDIHRo4butIENSQzogxJHhu4tuaCBk4bqhbmcgY3JhbWZzIGPFqSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3MiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzM5CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDc3IGxvZ2luLXV0aWxzL2NoZm4uYzo1MjkgbG9naW4tdXRpbHMvY2hzaC5jOjQzOQorIzogbWlzYy11dGlscy93aXBlZnMuYzoxNDEgc3lzLXV0aWxzL2N5dHVuZS5jOjMyMQorbXNnaWQgIm1hbGxvYyBmYWlsZWQiCittc2dzdHIgIm1hbGxvYyBraMO0bmcgdGjDoG5oIGPDtG5nIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Mjk3Cittc2dpZCAiY3JjIGVycm9yIgorbXNnc3RyICJs4buXaSBjcmMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjQKK21zZ2lkICJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiCittc2dzdHIgImlub2RlIGfhu5FjIGtow7RuZyBwaOG6o2kgdGjGsCBt4bulYyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2OQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcm9vdCBvZmZzZXQgKCVsdSkiCittc2dzdHIgImhp4buHdSBn4buRYyBzYWkgKCVsdSkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozODcKK21zZ2lkICJkYXRhIGJsb2NrIHRvbyBsYXJnZSIKK21zZ3N0ciAia2jhu5FpIGThu68gbGnhu4d1IHF1w6EgbOG7m24iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVjb21wcmVzc2lvbiBlcnJvciAlcCglZCk6ICVzIgorbXNnc3RyICJs4buXaSBnaeG6o2kgbsOpbiAlcCglZCk6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgaG9sZSBhdCAlbGQgKCV6ZClcbiIKK21zZ3N0ciAiICBn4bq3cCBs4buXIOG7nyAlbGQgKCV6ZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQyMyBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgdW5jb21wcmVzc2luZyBibG9jayBhdCAlbGQgdG8gJWxkICglbGQpXG4iCittc2dzdHIgIiAgxJFhbmcgZ2nhuqNpIG7DqW4ga2jhu5FpIOG7nyAlbGQgxJHhur9uICVsZCAoJWxkKVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAia2jDoWMga2jhu5FpICglbGQpIGJ5dGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibm9uLXNpemUgKCVsZCB2cyAlbGQpIGJ5dGVzIgorbXNnc3RyICJraMOhYyBrw61jaCBj4buhICglbGQgdnMgJWxkKSBieXRlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGZhaWxlZDogJXMiCittc2dzdHIgImzhu5dpIGdoaTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibGNob3duIGZhaWxlZDogJXMiCittc2dzdHIgImxjaG93biBi4buLIGzhu5dpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1OAorIywgYy1mb3JtYXQKK21zZ2lkICJjaG93biBmYWlsZWQ6ICVzIgorbXNnc3RyICJjaG93biBi4buLIGzhu5dpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICJ1dGltZSBi4buLIGzhu5dpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgaW5vZGUgaGFzIHplcm8gb2Zmc2V0IGFuZCBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiaW5vZGUgdGjGsCBt4bulYyBjw7MgaGnhu4d1IHPhu5Ega2jDtG5nIHbDoCBrw61jaCBj4buhIGtow6FjIHPhu5Ega2jDtG5nOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ5NAorIywgYy1mb3JtYXQKK21zZ2lkICJta2RpciBmYWlsZWQ6ICVzIgorbXNnc3RyICJta2RpciBi4buLIGzhu5dpOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxMQorbXNnaWQgImZpbGVuYW1lIGxlbmd0aCBpcyB6ZXJvIgorbXNnc3RyICJ04bqtcCB0aW4gY8OzIHTDqm4gZMOgaSBz4buRIGtow7RuZyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUxNAorbXNnaWQgImJhZCBmaWxlbmFtZSBsZW5ndGgiCittc2dzdHIgInThuq1wIHRpbiBjw7MgdMOqbiBkw6BpIHNhaSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjUyMQorbXNnaWQgImJhZCBpbm9kZSBvZmZzZXQiCittc2dzdHIgImhp4buHdSBpbm9kZSBzYWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MzcKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZSIKK21zZ3N0ciAiaW5vZGUgdOG6rXAgdGluIGPDsyBoaeG7h3Ugc+G7kSBraMO0bmcgdsOgIGvDrWNoIGPhu6Ega2jDoWMgc+G7kSBraMO0bmciCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NDAKK21zZ2lkICJmaWxlIGlub2RlIGhhcyB6ZXJvIHNpemUgYW5kIG5vbi16ZXJvIG9mZnNldCIKK21zZ3N0ciAiaW5vZGUgdOG6rXAgdGluIGPDsyBrw61jaCBj4buhIHPhu5Ega2jDtG5nIHbDoCBoaeG7h3Uga2jDoWMgc+G7kSBraMO0bmciCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzEKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIKK21zZ3N0ciAibGnDqm4ga+G6v3QgdMaw4bujbmcgdHLGsG5nIGPDsyBoaeG7h3Ugc+G7kSBraMO0bmciCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzQKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIHNpemUiCittc2dzdHIgImxpw6puIGvhur90IHTGsOG7o25nIHRyxrBuZyBjw7Mga8OtY2ggY+G7oSBz4buRIGtow7RuZyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJzaXplIGVycm9yIGluIHN5bWxpbms6ICVzIgorbXNnc3RyICJn4bq3cCBs4buXaSBrw61jaCBj4buhIHRyb25nIGxpw6puIGvhur90IHTGsOG7o25nIHRyxrBuZzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAic3ltbGluayBmYWlsZWQ6ICVzIgorbXNnc3RyICJsacOqbiBr4bq/dCB0xrDhu6NuZyB0csawbmcgYuG7iyBs4buXaTogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAic3BlY2lhbCBmaWxlIGhhcyBub24temVybyBvZmZzZXQ6ICVzIgorbXNnc3RyICJ04bqtcCB0aW4gxJHhurdjIGJp4buHdCBjw7MgaGnhu4d1IGtow6FjIHPhu5Ega2jDtG5nOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiRklGTyBjw7Mga8OtY2ggY+G7oSBraMOhYyBz4buRIGtow7RuZzogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAic29ja2V0IGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAi4buVIGPhuq9tIGPDsyBrw61jaCBj4buhIGtow6FjIHPhu5Ega2jDtG5nOiAlcyIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJib2d1cyBtb2RlOiAlcyAoJW8pIgorbXNnc3RyICJjaOG6vyDEkeG7mSBnaeG6ozogJXMgKCVvKSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY0NgorIywgYy1mb3JtYXQKK21zZ2lkICJta25vZCBmYWlsZWQ6ICVzIgorbXNnc3RyICJta25vZCBi4buLIGzhu5dpVDogJXMiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGRhdGEgc3RhcnQgKCVsZCkgPCBzaXplb2Yoc3RydWN0IGNyYW1mc19zdXBlcikgKyBzdGFydCAoJWxkKSIKK21zZ3N0ciAixJHhuqd1IGThu68gbGnhu4d1IHRoxrAgbeG7pWMgKCVsZCkgPCBrw61jaF9j4buhKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgxJHhuqd1ICglbGQpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6Njg1CisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIGVuZCAoJWxkKSAhPSBmaWxlIGRhdGEgc3RhcnQgKCVsZCkiCittc2dzdHIgImN14buRaSBk4buvIGxp4buHdSB0aMawIG3hu6VjICglbGQpICE9IMSR4bqndSBk4buvIGxp4buHdSB04bqtcCB0aW4gKCVsZCkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKK21zZ2lkICJpbnZhbGlkIGZpbGUgZGF0YSBvZmZzZXQiCittc2dzdHIgInNhaSDEkeG6t3QgaGnhu4d1IGThu68gbGnhu4d1IHThuq1wIHRpbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorbXNnaWQgImZhaWxlZCB0byBhbGxvY2F0ZSBvdXRidWZmZXIiCittc2dzdHIgImzhu5dpIHBow6JuIGPhuqVwIHbDuW5nIMSR4buHbSByYSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworbXNnaWQgImNvbXBpbGVkIHdpdGhvdXQgLXggc3VwcG9ydCIKK21zZ3N0ciAiYmnDqm4gZOG7i2NoIG3DoCBraMO0bmcgaOG7lyB0cuG7oyAteCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWxhcnZzbWZdIC9kZXYvbmFtZVxuIgorbXNnc3RyICJT4butIGThu6VuZzogJXMgWy1sYXJ2c21mXSAvZGV2L1TDik5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQuXHQgIgorbXNnc3RyICIlcyDEkcOjIMSRxrDhu6NjIGfhuq9uLlx0ICIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI1Cittc2dpZCAiRG8geW91IHJlYWxseSB3YW50IHRvIGNvbnRpbnVlIgorbXNnc3RyICJC4bqhbiBjw7MgdGjhu7FjIHPhu7EgbXXhu5FuIHRp4bq/cCB04bulYyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzI5CisjLCBjLWZvcm1hdAorbXNnaWQgImNoZWNrIGFib3J0ZWQuXG4iCittc2dzdHIgImtp4buDbSB0cmEgYuG7iyBk4burbmcuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM0OCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSBuciA8IEZJUlNUWk9ORSBpbiBmaWxlIGAlcycuIgorbXNnc3RyICJWw7luZyBuciA8IFbDmU5HxJDhuqZVVEnDik4gdHJvbmcgdOG6rXAgdGluIGAlcycuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiVsO5bmcgbnIgPj0gQ8OBQ1bDmU5HIHRyb25nIHThuq1wIHRpbiBgJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzU3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM4MAorbXNnaWQgIlJlbW92ZSBibG9jayIKK21zZ3N0ciAiWG/DoSBraOG7kWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiTOG7l2kgxJHhu41jOiBraMO0bmcgdGjhu4MgdMOsbSB04bubaSBraOG7kWkgdHJvbmcgdOG6rXAgdGluICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAiTOG7l2kgxJHhu41jOiBraOG7kWkgeOG6pXUgdHJvbmcgdOG6rXAgdGluICclcydcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisiTOG7l2kgbuG7mWkgYuG7mSA6IGdoaSB2w6BvIGto4buRaSB44bqldVxuIgorIlnDqnUgY+G6p3UgZ2hpIGLhu4sgYuG7jyBxdWFcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICJ0w6xtIGtp4bq/bSBi4buLIGzhu5dpIHRyb25nIGdoaV9raOG7kWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjQyOAorIywgYy1mb3JtYXQKK21zZ2lkICJXcml0ZSBlcnJvcjogYmFkIGJsb2NrIGluIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJM4buXaSBnaGk6IGto4buRaSB44bqldSB0cm9uZyB04bqtcCB0aW4gJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NDQKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV9zdXBlcl9ibG9jayIKK21zZ3N0ciAidMOsbSBraeG6v20gYuG7iyBs4buXaSB0cm9uZyBnaGlfc2nDqnVfIGto4buRaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ2IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5NAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBzdXBlci1ibG9jayIKK21zZ3N0ciAia2jDtG5nIHRo4buDIGdoaSBzacOqdSBraOG7kWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1NgorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgc8ahIMSR4buTIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NTgKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgc8ahIMSR4buTIHbDuW5nIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIGPDoWMgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU4NworbXNnaWQgInNlZWsgZmFpbGVkIgorbXNnc3RyICJ0w6xtIG7GoWkgYuG7iyBs4buXaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTkxIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjM5OQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBidWZmZXIgZm9yIHN1cGVyYmxvY2siCittc2dzdHIgImtow7RuZyB0aOG7gyBj4bqlcCBwaMOhdCB2w7luZyDEkeG7h20gY2hvIHNpw6p1IGto4buRaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTk0Cittc2dpZCAidW5hYmxlIHRvIHJlYWQgc3VwZXIgYmxvY2siCittc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgc2nDqnUga2jhu5FpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICJz4buRIG1hZ2ljIHjhuqV1IHRyb25nIHNpw6p1IGto4buRaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE0Cittc2dpZCAiT25seSAxayBibG9ja3Mvem9uZXMgc3VwcG9ydGVkIgorbXNnc3RyICJDaOG7iSBo4buXIHRy4bujIGto4buRaS92w7luZyAxayIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjE2Cittc2dpZCAiYmFkIHNfaW1hcF9ibG9ja3MgZmllbGQgaW4gc3VwZXItYmxvY2siCittc2dzdHIgInbDuW5nIHNfaW1hcF9ibG9ja3MgeOG6pXUgdHJvbmcgc2nDqnUga2jhu5FpIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTgKK21zZ2lkICJiYWQgc196bWFwX2Jsb2NrcyBmaWVsZCBpbiBzdXBlci1ibG9jayIKK21zZ3N0ciAidsO5bmcgc196bWFwX2Jsb2NrcyB44bqldSB0cm9uZyBzacOqdSBraOG7kWkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyNQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIG1hcCIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIHBow6JuIHBo4buRaSBi4buZIMSR4buHbSBjaG8gc8ahIMSR4buTIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MjgKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciB6b25lIG1hcCIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIHBow6JuIGPhuqVwIGLhu5kgxJHhu4dtIGNobyBzxqEgxJHhu5MgdsO5bmciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzMworbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIHBow6JuIHBo4buRaSBi4buZIMSR4buHbSBjaG8gY8OhYyBpbm9kZSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjM2Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3IgaW5vZGUgY291bnQiCittc2dzdHIgIktow7RuZyB0aOG7gyBwaMOibiBwaOG7kWkgYuG7mSDEkeG7h20gY2hvIHZp4buHYyDEkeG6v20gaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYzOQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgY291bnQiCittc2dzdHIgIktow7RuZyB0aOG7gyBwaMOibiBwaOG7kWkgYuG7mSDEkeG7h20gY2hvIHZp4buHYyDEkeG6v20gdsO5bmciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlIG1hcCIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4buNYyBzxqEgxJHhu5MgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MworbXNnaWQgIlVuYWJsZSB0byByZWFkIHpvbmUgbWFwIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu41jIHPGoSDEkeG7kyB2w7luZyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ1Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgaW5vZGVzIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu41jIGPDoWMgaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW8gOiBGaXJzdHpvbmUgIT0gTm9ybV9maXJzdHpvbmVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjUyIGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlbGQgaW5vZGVzXG4iCittc2dzdHIgIiVsZCBpbm9kZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIGto4buRaVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIlbDuW5nX2Thu69fbGnhu4d1X8SR4bqndV90acOqbj0lbGQgKCVsZClcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lc2l6ZT0lZFxuIgorbXNnc3RyICJD4buhX3bDuW5nPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NgorIywgYy1mb3JtYXQKK21zZ2lkICJNYXhzaXplPSVsZFxuIgorbXNnc3RyICJD4buhX3Thu5FpX8SRYT0lbGRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKK21zZ3N0ciAiVHLhuqFuZyB0aMOhaSBo4buHIHRo4buRbmcgdOG6rXAgdGluPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibmFtZWxlbj0lZFxuIgorIlxuIgorbXNnc3RyICIiCisixJHhu5lfZMOgaV90w6puPSVkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3MyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgYnV0IHVzZWQgZm9yIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJpbm9kZSAlZCDEkcOhbmggZOG6pXUga2jDtG5nIHPhu60gZOG7pW5nLCBuaMawbmcgbOG6oWkgZMO5bmcgY2hvIHThuq1wIHRpbiAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjgKK21zZ2lkICJNYXJrIGluIHVzZSIKK21zZ3N0ciAiROG6pXUgxJHGsOG7o2MgZMO5bmciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGZpbGUgYCVzJyBoYXMgbW9kZSAlMDVvXG4iCittc2dzdHIgIlThuq1wIHRpbiBgJXMnIGPDsyBjaOG6vyDEkeG7mSAlMDVvXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjcwNiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaW5vZGUgY291bnQgdG9vIGJpZy5cbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW8gOiBz4buRIMSR4bq/bSBpbm9kZSBxdcOhIGzhu5tuLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAiaW5vZGUgZ+G7kWMga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgdGjGsCBt4bulYyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzg4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMQorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayBoYXMgYmVlbiB1c2VkIGJlZm9yZS4gTm93IGluIGZpbGUgYCVzJy4iCittc2dzdHIgIkto4buRaSDEkcOjIMSRxrDhu6NjIGTDuW5nLiBCw6J5IGdp4budIHRyb25nIHThuq1wIHRpbiBgJXMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzkwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU1CisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTAKK21zZ2lkICJDbGVhciIKK21zZ3N0ciAiWMOzYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODAwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgzMworIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayAlZCBpbiBmaWxlIGAlcycgaXMgbWFya2VkIG5vdCBpbiB1c2UuIgorbXNnc3RyICJLaOG7kWkgJWQgdHJvbmcgdOG6rXAgdGluIGAlcycgY8OzIGThuqV1IMKrIGtow7RuZyBkw7luZyDCuy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzUKK21zZ2lkICJDb3JyZWN0IgorbXNnc3RyICJT4butYSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGRpcmVjdG9yeSAnJXMnIGNvbnRhaW5zIGEgYmFkIGlub2RlIG51bWJlciBmb3IgZmlsZSAnJS4qcycuIgorbXNnc3RyICJUaMawIG3hu6VjICclcycgY2jhu6lhIG3hu5l0IHPhu5EgaGnhu4d1IGlub2RlIHjhuqV1IGNobyB04bqtcCB0aW4gJyUuKnMnLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTc3IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNDQKK21zZ2lkICIgUmVtb3ZlIgorbXNnc3RyICIgQuG7jyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTkxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorbXNnc3RyICIlczogdGjGsCBt4bulYyB44bqldSA6ICcuJyBraMO0bmcgcGjhuqNpIMSR4bupbmcgxJHhuqd1XG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiAnLi4nIGlzbid0IHNlY29uZFxuIgorbXNnc3RyICIlczogdGjGsCBt4bulYyB44bqldSA6ICcuLicga2jDtG5nIHBo4bqjaSDEkeG7qW5nIHRo4bupIGhhaVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMTkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAibOG7l2kgbuG7mWkgYuG7mSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTEwNCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgZGlyZWN0b3J5OiBzaXplIDwgMzIiCittc2dzdHIgIiVzOiB0aMawIG3hu6VjIHjhuqV1IDoga8OtY2ggY+G7oSA8IDMyIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTM1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gYmFkX3pvbmUiCittc2dzdHIgInTDrG0gbsahaSBraMO0bmcgdGjDoG5oIGPDtG5nIHRyb25nIGJhZF96b25lICh2w7luZ1944bqldSkiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNDUgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBtb2RlIG5vdCBjbGVhcmVkLiIKK21zZ3N0ciAiQ2jGsGEgeMOzYSBjaOG6vyDEkeG7mSBpbm9kZSAlZC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNTQgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIwOQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCBub3QgdXNlZCwgbWFya2VkIHVzZWQgaW4gdGhlIGJpdG1hcC4iCittc2dzdHIgIkNoxrBhIHPhu60gZOG7pW5nIGlub2RlICVkLCBjw7JuIMSRw6FuaCBk4bqldSDCqyDEkcOjIGTDuW5nIMK7IHRyb25nIOG6o25oIG3huqNuZy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExNjAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZSAlZCB1c2VkLCBtYXJrZWQgdW51c2VkIGluIHRoZSBiaXRtYXAuIgorbXNnc3RyICLEkMOjIHPhu60gZOG7pW5nIGlub2RlICVkLCBjw7JuIMSRw6FuaCBk4bqldSDCqyBjaMawYSBkw7luZyDCuyB0cm9uZyDhuqNuaCBt4bqjbmcuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTYKK21zZ2lkICJTZXQiCittc2dzdHIgIsSQ4bq3dCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIChtb2RlID0gJTA3byksIGlfbmxpbmtzPSVkLCBjb3VudGVkPSVkLiIKK21zZ3N0ciAiSW5vZGUgJWQgKGNo4bq/IMSR4buZID0gJTA3byksIGlfbmxpbmtzPSVkLCDEkeG6v209JWQuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgIsSQ4bq3dCBpX25saW5rcyBjaG8gc+G7kSDEkeG6v20iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNAorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBtYXJrZWQgaW4gdXNlLCBubyBmaWxlIHVzZXMgaXQuIgorbXNnc3RyICJWw7luZyAlZDogxJHGsOG7o2MgxJHDoW5oIGThuqV1IGzDoCDEkWFuZyBkw7luZywga2jDtG5nIHThuq1wIHRpbiBuw6BvIGTDuW5nIG7Dsy4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODEgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTIzNgorbXNnaWQgIlVubWFyayIKK21zZ3N0ciAiQuG7jyDEkcOhbmggZOG6pXUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiVsO5bmcgJWQ6IMSRYW5nIGTDuW5nLCDEkeG6v209JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG5vdCBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiVsO5bmcgJWQ6IGtow7RuZyBkw7luZywgxJHhur9tPSVkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODkgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc3CisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzkKK21zZ2lkICJiYWQgaW5vZGUgc2l6ZSIKK21zZ3N0ciAia8OtY2ggY+G7oSBpbm9kZSB44bqldSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI5MQorbXNnaWQgImJhZCB2MiBpbm9kZSBzaXplIgorbXNnc3RyICJrw61jaCBj4buhIGlub2RlIHYyIHjhuqV1IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzE3Cittc2dpZCAibmVlZCB0ZXJtaW5hbCBmb3IgaW50ZXJhY3RpdmUgcmVwYWlycyIKK21zZ3N0ciAiY+G6p24gZMO5bmcgdGhp4bq/dCBi4buLIGN14buRaSBjaG8gbmjhu69uZyBz4butYSBjaOG7r2EgdMawxqFuZyB0w6FjIHF1YSBs4bqhaSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIKK21zZ3N0ciAia2jDtG5nIG3hu58gxJHGsOG7o2MgwqsgJXMgwrs6ICVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiJXMgc+G6oWNoIHPhur0sIGtow7RuZyBraeG7g20gdHJhLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcmNpbmcgZmlsZXN5c3RlbSBjaGVjayBvbiAlcy5cbiIKK21zZ3N0ciAiQuG6r3QgYnXhu5ljIGtp4buDbSB0cmEgaOG7hyB0aOG7kW5nIHThuq1wIHRpbiB0csOqbiAlcy5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIG9uICVzIGlzIGRpcnR5LCBuZWVkcyBjaGVja2luZy5cbiIKK21zZ3N0ciAiSOG7hyB0aOG7kW5nIHThuq1wIHRpbiAlcyBi4bqpbiwgY+G6p24ga2nhu4NtIHRyYS5cbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZsZCBpbm9kZXMgdXNlZCAoJWxkJSUpXG4iCittc2dzdHIgIiIKKyJcbiIKKyIlNmxkIGlub2RlIMSRxrDhu6NjIGTDuW5nICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICIlNmxkIHpvbmVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIlNmxkIHbDuW5nIMSRxrDhu6NjIGTDuW5nICglbGQlJSlcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJTZkIHJlZ3VsYXIgZmlsZXNcbiIKKyIlNmQgZGlyZWN0b3JpZXNcbiIKKyIlNmQgY2hhcmFjdGVyIGRldmljZSBmaWxlc1xuIgorIiU2ZCBibG9jayBkZXZpY2UgZmlsZXNcbiIKKyIlNmQgbGlua3NcbiIKKyIlNmQgc3ltYm9saWMgbGlua3NcbiIKKyItLS0tLS1cbiIKKyIlNmQgZmlsZXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIiU2ZCB04bqtcCB0aW4gdGjDtG5nIHRoxrDhu51uZ1xuIgorIiU2ZCB0aMawIG3hu6VjXG4iCisiJTZkIHThuq1wIHRpbiB0aGnhur90IGLhu4sga8O9IHThu7FcbiIKKyIlNmQgdOG6rXAgdGluIHRoaeG6v3QgYuG7iyBraOG7kWlcbiIKKyIlNmQgbGnDqm4ga+G6v3RcbiIKKyIlNmQgbGnDqm4ga+G6v3QgbeG7gW1cbiIKKyItLS0tLS1cbiIKKyIlNmQgdOG6rXAgdGluXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIkjhu4YgVEjhu5BORyBU4bqsUCBUSU4gQuG7iiBUSEFZIMSQ4buUSVxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWlsZWQgdG8gb3BlbjogJXNcbiIKK21zZ3N0ciAiJXM6IGtow7RuZyBt4bufIMSRxrDhu6NjOiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNlZWsgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGzhu5dpIHTDrG0gbsahaSB0csOqbiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgZXJyb3Igb24gJXNcbiIKK21zZ3N0ciAiJXM6IGzhu5dpIMSR4buNYyB0csOqbiAlc1xuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9yIGNvdW50OiAlZCwgc2VjdG9yIHNpemU6ICVkXG4iCittc2dzdHIgInPhu5EgcsOjbmggZ2hpOiAlZCwga8OtY2ggY+G7oSByw6NuaCBnaGk6ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiVzOiBs4buXaSBwaMOibiB0w61jaCB0w7l5IGNo4buNblxuIgorCisjOiBkaXNrLXV0aWxzL2lzb3NpemUuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFsteF0gWy1kIDxudW0+XSBpc285NjYwLWltYWdlXG4iCittc2dzdHIgIlPhu60gZOG7pW5nOiAlcyBbLXhdIFstZCA8c+G7kT5dIHThuq1wLXRpbi3huqNuaC1pc285NjYwXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6ICVzIFstdl0gWy1OIHPhu5FfaW5vZGVdIFstViB0w6puX2to4buRaV90aW5dXG4iCisiICAgICAgIFstRiB0w6puX2jhu4dfdGjhu5FuZ1904bqtcF90aW5dIHRoaeG6v3RfYuG7iyBbxJHhur9tX2to4buRaV1cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjEzMAorbXNnaWQgInZvbHVtZSBuYW1lIHRvbyBsb25nIgorbXNnc3RyICJ0w6puIGto4buRaSB0aW4gcXXDoSBkw6BpIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgInTDqm4gaOG7hyB0aOG7kW5nIHThuq1wIHRpbiBxdcOhIGTDoGkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgZGV2aWNlICVzIgorbXNnc3RyICJraMO0bmcgdGjhu4MgbOG6pXkgdHLhuqFuZyB0aMOhaSB24buBIHRoaeG6v3QgYuG7iyAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBibG9jayBzcGVjaWFsIGRldmljZSIKK21zZ3N0ciAiJXMga2jDtG5nIHBo4bqjaSBsw6AgdGhp4bq/dCBi4buLIGto4buRaSDEkeG6t2MgYmnhu4d0IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAia2jDtG5nIG3hu58gxJHGsOG7o2MgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBzaXplIG9mICVzIgorbXNnc3RyICJraMO0bmcgbOG6pXkgxJHGsOG7o2Mga8OtY2ggY+G7oSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE4NworIywgYy1mb3JtYXQKK21zZ2lkICJibG9ja3MgYXJndW1lbnQgdG9vIGxhcmdlLCBtYXggaXMgJWxsdSIKK21zZ3N0ciAixJHhu5FpIHPhu5Ega2jhu5FpIHF1w6EgbOG7m24sIHThu5FpIMSRYSAlbGx1IgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjAyCittc2dpZCAidG9vIG1hbnkgaW5vZGVzIC0gbWF4IGlzIDUxMiIKK21zZ3N0ciAicXXDoSBuaGnhu4F1IGlub2RlIC0gdOG7kWkgxJFhIDUxMiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICJub3QgZW5vdWdoIHNwYWNlLCBuZWVkIGF0IGxlYXN0ICVsbHUgYmxvY2tzIgorbXNnc3RyICJraMO0bmcgxJHhu6cgY2jhu5cgdHLhu5FuZywgY+G6p24gw610IG5o4bqldCAlbGx1IGto4buRaSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyMyBmZGlzay9mZGlzay5jOjI2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlOiAlc1xuIgorbXNnc3RyICJUaGnhur90IGLhu4s6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVm9sdW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiS2jhu5FpIHRpbjogPCUtNnM+XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRlNuYW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiVMOqbiBo4buHIHRo4buRbmcgdOG6rXAgdGluOiA8JS02cz5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9ja1NpemU6ICVkXG4iCittc2dzdHIgIkvDrWNoIGPhu6Ega2jhu5FpOiAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluIDEgYmxvY2spXG4iCittc2dzdHIgIklub2RlOiAlZCAodHJvbmcgMSBraOG7kWkpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGVzOiAlZCAoaW4gJWxsZCBibG9ja3MpXG4iCittc2dzdHIgIklub2RzOiAlZCAodHJvbmcgJWxsZCBraOG7kWkpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmxvY2tzOiAlbGxkXG4iCittc2dzdHIgIkto4buRaTogJWxsZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlIGVuZDogJWQsIERhdGEgZW5kOiAlZFxuIgorbXNnc3RyICJL4bq/dCB0aMO6YyBpbm9kZTogJWQsIEvhur90IHRow7pjIGThu68gbGnhu4d1IDogJWRcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzOQorbXNnaWQgImVycm9yIHdyaXRpbmcgc3VwZXJibG9jayIKK21zZ3N0ciAibOG7l2kgZ2hpIG5o4bubIHNpw6p1IGto4buRaSIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI1OQorbXNnaWQgImVycm9yIHdyaXRpbmcgcm9vdCBpbm9kZSIKK21zZ3N0ciAibOG7l2kgZ2hpIGlub2RlIGfhu5FjIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBpbm9kZSIKK21zZ3N0ciAibOG7l2kgZ2hpIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjY3Cittc2dpZCAic2VlayBlcnJvciIKK21zZ3N0ciAibOG7l2kgdMOsbSBuxqFpIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjczCittc2dpZCAiZXJyb3Igd3JpdGluZyAuIGVudHJ5IgorbXNnc3RyICJs4buXaSBnaGkgbeG7pWMgbmjhuq1wIGNo4bqlbSAoLikiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzcKK21zZ2lkICJlcnJvciB3cml0aW5nIC4uIGVudHJ5IgorbXNnc3RyICJs4buXaSBnaGkgbeG7pWMgbmjhuq1wIGNo4bqlbSDEkcO0aSAoLi4pIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjgxCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNsb3NpbmcgJXMiCittc2dzdHIgImzhu5dpIMSRw7NuZyAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IG1rZnMgWy1WXSBbLXQgZnN0eXBlXSBbZnMtb3B0aW9uc10gZGV2aWNlIFtzaXplXVxuIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6IG1rZnMgWy1WXSBbLXQga2nhu4N1X0ZTXSBbdMO5eV9jaOG7jW5fRlNdIHRoaeG6v3RfYuG7iyBba8OtY2hfY+G7oV1cbiIKKyJcbiIKKyJGUzogaOG7hyB0aOG7kW5nIHThuq1wIHRpblxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo4OCBkaXNrLXV0aWxzL21rZnMuYzo5NiBmZGlzay9jZmRpc2suYzozNTMKKyM6IGdldG9wdC9nZXRvcHQuYzo4NiBnZXRvcHQvZ2V0b3B0LmM6OTYgbG9naW4tdXRpbHMvd2FsbC5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT3V0IG9mIG1lbW9yeSFcbiIKK21zZ3N0ciAiJXM6IEtow7RuZyDEkeG7pyBi4buZIG5o4bubLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtmcyAoJXMpXG4iCittc2dzdHIgIm1rZnMgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWy1oXSBbLXZdIFstYiBibGtzaXplXSBbLWUgZWRpdGlvbl0gWy1OIGVuZGlhbl0gWy1pIGZpbGVdIFstbiAiCisibmFtZV0gZGlybmFtZSBvdXRmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC12ICAgICAgICAgYmUgdmVyYm9zZVxuIgorIiAtRSAgICAgICAgIG1ha2UgYWxsIHdhcm5pbmdzIGVycm9ycyAobm9uLXplcm8gZXhpdCBzdGF0dXMpXG4iCisiIC1iIGJsa3NpemUgdXNlIHRoaXMgYmxvY2tzaXplLCBtdXN0IGVxdWFsIHBhZ2Ugc2l6ZVxuIgorIiAtZSBlZGl0aW9uIHNldCBlZGl0aW9uIG51bWJlciAocGFydCBvZiBmc2lkKVxuIgorIiAtTiBlbmRpYW4gIHNldCBjcmFtZnMgZW5kaWFubmVzcyAoYmlnfGxpdHRsZXxob3N0KSwgZGVmYXVsdCBob3N0XG4iCisiIC1pIGZpbGUgICAgaW5zZXJ0IGEgZmlsZSBpbWFnZSBpbnRvIHRoZSBmaWxlc3lzdGVtIChyZXF1aXJlcyA+PSAyLjQuMClcbiIKKyIgLW4gbmFtZSAgICBzZXQgbmFtZSBvZiBjcmFtZnMgZmlsZXN5c3RlbVxuIgorIiAtcCAgICAgICAgIHBhZCBieSAlZCBieXRlcyBmb3IgYm9vdCBjb2RlXG4iCisiIC1zICAgICAgICAgc29ydCBkaXJlY3RvcnkgZW50cmllcyAob2xkIG9wdGlvbiwgaWdub3JlZClcbiIKKyIgLXogICAgICAgICBtYWtlIGV4cGxpY2l0IGhvbGVzIChyZXF1aXJlcyA+PSAyLjMuMzkpXG4iCisiIGRpcm5hbWUgICAgcm9vdCBvZiB0aGUgZmlsZXN5c3RlbSB0byBiZSBjb21wcmVzc2VkXG4iCisiIG91dGZpbGUgICAgb3V0cHV0IGZpbGVcbiIKK21zZ3N0ciAiIgorInPhu60gZOG7pW5nOiAlcyBbLWhdIFstdl0gWy1iIGPhu6Ffa2jhu5FpXSBbLWUgYuG6o25faW5dIFstTiB24buBX2N14buRaV0gWy1pIHThuq1wX3Rpbl0gWy1uICIKKyJ0w6puXSB0w6puX3RoxrBfbeG7pWMgdOG6rXBfdGluX3JhXG4iCisiIC1oICAgICAgICAgaGnhu4NuIHRo4buLIHRy4bujIGdpw7pwIG7DoHlcbiIKKyIgLXYgICAgICAgICB4deG6pXQgY2hpIHRp4bq/dFxuIgorIiAtRSAgICAgICAgIGzDoG0gY2hvIG3hu41pIGPhuqNuaCBiw6FvIGzDoCBs4buXaSAodHLhuqFuZyB0aMOhaSB0aG/DoXQga2jDoWMgc+G7kSBraMO0bmcpXG4iCisiIC1iIGPhu6Ffa2jhu5FpXHRkw7luZyBrw61jaCBj4buhIGto4buRaSBuw6B5IChwaOG6o2kgYuG6sW5nIHbhu5tpIGvDrWNoIGPhu6EgdHJhbmcpXG4iCisiIC1lIGLhuqNuX2luXHTEkeG6t3Qgc+G7kSB0aOG7qSB04buxIGLhuqNuIGluIChwaOG6p24gY+G7p2EgZnNpZClcbiIKKyIgLU4gduG7gV9jdeG7kWlcdMSR4bq3dCB0w6xuaCB0cuG6oW5nIGN14buRaSBjcmFtZnM6XG4iCisiXHRcdFx04oCiIGJpZ1x0duG7gSBjdeG7kWkgbOG7m25cbiIKKyJcdFx0XHTigKIgbGl0dGxlXHR24buBIGN14buRaSBuaOG7j1xuIgorIlx0XHRcdOKAoiBob3N0XHRtw6F5IGNo4bunICht4bq3YyDEkeG7i25oKVxuIgorIiAtaSB04bqtcF90aW5cdGNow6huIG3hu5l0IOG6o25oIHThuq1wIHRpbiB2w6BvIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gKGPhuqduIOKJpTIuNC4wKVxuIgorIiAtbiB0w6puXHTEkeG6t3QgdMOqbiBj4bunYSBo4buHIHRo4buRbmcgdOG6rXAgdGluIGNyYW1mc1xuIgorIiAtcCAgICAgICAgIMSR4buHbSB0aGVvICVkIGJ5dGUgY2hvIG3DoyBraOG7n2kgxJHhu5luZ1xuIgorIiAtcyAgICAgICAgIHPhuqVwIHjhur9wIGPDoWMgbeG7pWMgbmjhuq1wIHRoxrAgbeG7pWMgKHTDuXkgY2jhu41uIGPFqSB0aMOsIGLhu4sgbOG7nSDEkWkpXG4iCisiIC16ICAgICAgICAgdOG6oW8gY8OhYyBs4buXIGThu6l0IGtob8OhdCAoY+G6p24g4omlMi4zLjM5KVxuIgorIiB0w6puX3RoxrBfbeG7pWNcdFx0Z+G7kWMgY+G7p2EgaOG7hyB0aOG7kW5nIHThuq1wIHRpbiBj4bqnbiBuw6luXG4iCisiIHThuq1wX3Rpbl9yYVx0XHR04bqtcCB0aW4ga+G6v3QgeHXhuqV0XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlZlcnkgbG9uZyAoJXp1IGJ5dGVzKSBmaWxlbmFtZSBgJXMnIGZvdW5kLlxuIgorIiBQbGVhc2UgaW5jcmVhc2UgTUFYX0lOUFVUX05BTUVMRU4gaW4gbWtjcmFtZnMuYyBhbmQgcmVjb21waWxlLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorIlTDrG0gdGjhuqV5IHTDqm4gdOG6rXAgdGluIHLhuqV0IGTDoGkgKCV6dSBieXRlcykgwqsgJXMgwrsuXG4iCisiIFhpbiBow6N5IHTEg25nIGdpw6EgdHLhu4sgwqsgTUFYX0lOUFVUX05BTUVMRU4gwrsgdHJvbmcgdOG6rXAgdGluIMKrIG1rY3JhbWZzLmMgwrsgcuG7k2kgIgorImJpw6puIGThu4tjaCBs4bqhaS4gIMSQYW5nIHRob8OhdC5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjQ3MQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWxlc3lzdGVtIHRvbyBiaWcuICBFeGl0aW5nLlxuIgorbXNnc3RyICJo4buHIHRo4buRbmcgdOG6rXAgdGluIHF1w6EgbOG7m24gbsOqbiB0aG/DoXQuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQUlFRUU6IGJsb2NrIFwiY29tcHJlc3NlZFwiIHRvID4gMipibG9ja2xlbmd0aCAoJWxkKVxuIgorbXNnc3RyICJBSUVFRToga2jhu5FpIMKrIMSRw6MgbsOpbiDCuyB0aMOgbmggPiAyKmLhu4FfZMOgaV9raOG7kWkgKCVsZClcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlNi4yZiUlICglK2xkIGJ5dGVzKVx0JXNcbiIKK21zZ3N0ciAiJTYuMmYlJSAoJStsZCBieXRlKVx0JXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ3Vlc3RpbWF0ZSBvZiByZXF1aXJlZCBzaXplICh1cHBlciBib3VuZCkgaXMgJWxsZE1CLCBidXQgbWF4aW11bSAiCisiaW1hZ2Ugc2l6ZSBpcyAldU1CLiAgV2UgbWlnaHQgZGllIHByZW1hdHVyZWx5LlxuIgorbXNnc3RyICIiCisiY+G6o25oIGLDoW8gOiBz4buRIMaw4bubYyBsxrDhu6NuZyBj4bunYSBrw61jaCBj4buhIHnDqnUgY+G6p3UgKGdp4bubaSBo4bqhbiB0csOqbikgbMOgICVsbGQgTUIsICIKKyJuaMawbmcga8OtY2ggY+G7oSDhuqNuaCBs4bubbiBuaOG6pXQgbMOgICV1IE1CLiAgQ2jDum5nIHRhIGPDsyB0aOG7gyBjaOG6v3Qgbm9uLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiU8ahIMSR4buTIOG6o25oIFJPTSIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJJbmNsdWRpbmc6ICVzXG4iCittc2dzdHIgIkJhbyBn4buTbTogJXNcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkwMAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXJlY3RvcnkgZGF0YTogJXpkIGJ5dGVzXG4iCittc2dzdHIgIkThu68gbGnhu4d1IHRoxrAgbeG7pWM6ICV6ZCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXZlcnl0aGluZzogJXpkIGtpbG9ieXRlc1xuIgorbXNnc3RyICJN4buNaSB0aOG7qSA6ICV6ZCBraWzDtCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3VwZXIgYmxvY2s6ICV6ZCBieXRlc1xuIgorbXNnc3RyICJTacOqdSBraOG7kWk6ICV6ZCBieXRlXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ1JDOiAleFxuIgorbXNnc3RyICJDUkM6ICV4XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSBhbGxvY2F0ZWQgZm9yIFJPTSBpbWFnZSAoJWxsZCBhbGxvY2F0ZWQsICV6dSB1c2VkKVxuIgorbXNnc3RyICJraMO0bmcgxJHhu6cga2hv4bqjbmcgdHLhu5FuZyBwaMOibiBj4bqlcCBjaG8g4bqjbmggUk9NIChwaMOibiBj4bqlcCAlbGxkLCBkw7luZyAlenUpXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzMKK21zZ2lkICJST00gaW1hZ2UiCittc2dzdHIgIuG6om5oIFJPTSIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjkzNworIywgYy1mb3JtYXQKK21zZ2lkICJST00gaW1hZ2Ugd3JpdGUgZmFpbGVkICglemQgJXpkKVxuIgorbXNnc3RyICJM4buXaSBnaGkg4bqjbmggUk9NICglemQgJXpkKVxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICJj4bqjbmggYsOhbyA6IHTDqm4gdOG6rXAgdGluIGLhu4sgY+G6r3Qgbmfhuq9uIHRow6BuaCAyNTUgYnl0ZS5cbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlcyB3ZXJlIHNraXBwZWQgZHVlIHRvIGVycm9ycy5cbiIKK21zZ3N0ciAiY+G6o25oIGLDoW8gOiBjw6FjIHThuq1wIHRpbiBi4buLIGLhu48gcXVhIHbDrCBjw7MgbOG7l2kuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBzaXplcyB0cnVuY2F0ZWQgdG8gJWx1TUIgKG1pbnVzIDEgYnl0ZSkuXG4iCittc2dzdHIgImPhuqNuaCBiw6FvIDoga8OtY2ggY+G7oSB04bqtcCB0aW4gYuG7iyBj4bqvdCBuZ+G6r24gdGjDoG5oICVsdU1CICh0cuG7qyAxIGJ5dGUpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiB1aWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKyJj4bqjbmggYsOhbyA6IFVJRCBi4buLIGPhuq90IG5n4bqvbiB0aMOgbmggJXUgYml0LiAgKMSQw6J5IGPDsyB0aOG7gyBsw6Agc+G7sSBsbyBuZ+G6oWkgYuG6o28gIgorIm3huq10LilcbiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ2lkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisiY+G6o25oIGLDoW8gOiBHSUQgYuG7iyBj4bqvdCBuZ+G6r24gdGjDoG5oICV1IGJpdC4gICjEkMOieSBjw7MgdGjhu4MgbMOgIHPhu7EgbG8gbmfhuqFpIGLhuqNvICIKKyJt4bqtdC4pXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisiQ+G6ok5IIELDgU8gOiBz4buRIHRoaeG6v3QgYuG7iyBj4bqvdCBuZ+G6r24gdGjDoG5oICV1IGJpdC4gIMSQaeG7gXUgbsOgeSBn4bqnbiBjaOG6r2MgY2jhuq9uIGPDsyAiCisibmdoxKlhIGzDoFxuIgorIm3hu5l0IHbDoGkgdOG6rXAgdGluIHRoaeG6v3QgYuG7iyBz4bq9IGLhu4sgaOG7j25nLlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstYyB8IC1sIGZpbGVuYW1lXSBbLW5YWF0gWy1pWFhdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICJT4butIGThu6VuZzogJXMgWy1jIHwgLWwgdMOqbl904bqtcF90aW5dIFstblhYXSBbLWlYWF0gL2Rldi90w6puIFtraOG7kWldXG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE3OAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIGEgZmlsZXN5c3RlbSBoZXJlISIKK21zZ3N0ciAiJXMgxJHDoyDEkcaw4bujYyBn4bqvbiwgc+G6vSBraMO0bmcgdOG6oW8gaOG7hyB0aOG7kW5nIHThuq1wIHRpbiDhu58gxJHDonkuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxODgKK21zZ2lkICJzZWVrIHRvIGJvb3QgYmxvY2sgZmFpbGVkIGluIHdyaXRlX3RhYmxlcyIKK21zZ3N0ciAiIgorInTDrG0gdOG7m2kga2jhu5FpIGto4bufaSDEkeG7mW5nIGtow7RuZyB0aMOgbmggY8O0bmcgdHJvbmcgd3JpdGVfdGFibGVzIChnaGkgY8OhYyBi4bqjbmcpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTAKK21zZ2lkICJ1bmFibGUgdG8gY2xlYXIgYm9vdCBzZWN0b3IiCittc2dzdHIgImtow7RuZyB4w7NhIMSRxrDhu6NjIHLDo25oIGdoaSBraOG7n2kgxJHhu5luZyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTkyCittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICJ0w6xtIHThu5tpIGtow7RuZyB0aMOgbmggY8O0bmcgdHJvbmcgd3JpdGVfdGFibGVzIChnaGkgY8OhYyBi4bqjbmcpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTYKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgaW5vZGUgbWFwIgorbXNnc3RyICJraMO0bmcgZ2hpIG5o4bubIMSRxrDhu6NjIHPGoSDEkeG7kyBpbm9kZSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk4Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIHpvbmUgbWFwIgorbXNnc3RyICJraMO0bmcgZ2hpIG5o4bubIMSRxrDhu6NjIHPGoSDEkeG7kyB2w7luZyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjAwCittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAia2jDtG5nIGdoaSBuaOG7myDEkcaw4bujYyBjw6FjIGlub2RlIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgImdoaSBuaOG7myBraMO0bmcgdGjDoG5oIGPDtG5nIHRyb25nIHdyaXRlX2Jsb2NrIChnaGkga2jhu5FpKSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjE3IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjI5MQorIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MzQwCittc2dpZCAidG9vIG1hbnkgYmFkIGJsb2NrcyIKK21zZ3N0ciAicXXDoSBuaGnhu4F1IGto4buRaSB44bqldSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjI1Cittc2dpZCAibm90IGVub3VnaCBnb29kIGJsb2NrcyIKK21zZ3N0ciAia2jDtG5nIMSR4bunIGto4buRaSB04buRdCIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDQwCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yIG1hcHMiCittc2dzdHIgImtow7RuZyB0aOG7gyBwaMOibiBwaOG7kWkgY8OhYyBi4buZIMSR4buHbSBjaG8gc8ahIMSR4buTIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NDkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgImtow7RuZyB0aOG7gyBwaMOibiBwaOG7kWkgY8OhYyBi4buZIMSR4buHbSBjaG8gaW5vZGUiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTWF4c2l6ZT0lbGRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkvDrWNoIGPhu6EgdOG7kWkgxJFhPSVsZFxuIgorIlxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NjkKK21zZ2lkICJzZWVrIGZhaWxlZCBkdXJpbmcgdGVzdGluZyBvZiBibG9ja3MiCittc2dzdHIgInTDrG0gdOG7m2kga2jDtG5nIHRow6BuaCBjw7RuZyB0cm9uZyBraGkgdGjhu60gY8OhYyBraOG7kWkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJXZWlyZCB2YWx1ZXMgaW4gZG9fY2hlY2s6IHByb2JhYmx5IGJ1Z3NcbiIKK21zZ3N0ciAiR2nDoSB0cuG7iyBr4buzIGzhuqEgdHJvbmcgZG9fY2hlY2sgKGzDoG0ga2nhu4NtIHRyYSk6IGPDsyB0aOG7gyBsw6AgbOG7l2lcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTA4IGRpc2stdXRpbHMvbWtzd2FwLmM6MzE1Cittc2dpZCAic2VlayBmYWlsZWQgaW4gY2hlY2tfYmxvY2tzIgorbXNnc3RyICJ0w6xtIHThu5tpIGtow7RuZyB0aMOgbmggY8O0bmcgdHJvbmcgY2hlY2tfYmxvY2tzIChraeG7g20gdHJhIGto4buRaSkiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUxNworbXNnaWQgImJhZCBibG9ja3MgYmVmb3JlIGRhdGEtYXJlYTogY2Fubm90IG1ha2UgZnMiCittc2dzdHIgImto4buRaSB44bqldSB0csaw4bubYyB2w7luZyBk4buvIGxp4buHIHU6IGtow7RuZyB0aOG7gyB04bqhbyByYSBo4buHIHRo4buRbmcgdOG6rXAgdGluIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiJWQga2jhu5FpIHjhuqV1XG4iCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjUyNSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBibG9ja1xuIgorbXNnc3RyICJt4buZdCBraOG7kWkgeOG6pXVcbiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM1Cittc2dpZCAiY2FuJ3Qgb3BlbiBmaWxlIG9mIGJhZCBibG9ja3MiCittc2dzdHIgImtow7RuZyBt4bufIMSRxrDhu6NjIHThuq1wIHRpbiBj4bunYSBjw6FjIGto4buRaSB44bqldSIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZGJsb2NrIG51bWJlciBpbnB1dCBlcnJvciBvbiBsaW5lICVkXG4iCittc2dzdHIgImfhurdwIGzhu5dpIG5o4bqtcCBz4buRIGto4buRaSB44bqldSB0csOqbiBkw7JuZyAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDAKK21zZ2lkICJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIKK21zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyB04bqtcCB0aW4ga2jhu5FpIHjhuqV1IgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgImzhu5dpIHN0cnRvbDoga2jDtG5nIGNo4buJIHJhIHPhu5Ega2jhu5FpIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgJXMiCittc2dzdHIgImtow7RuZyB0aOG7gyBs4bqleSB0cuG6oW5nIHRow6FpIHbhu4EgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAia2jDtG5nIG3hu58gxJHGsOG7o2MgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNlY3RvciBzaXplIGZvciAlcyIKK21zZ3N0ciAia2jDtG5nIHRo4buDIHF1eeG6v3QgxJHhu4tuaCBrw61jaCBj4buhIHLDo25oIGdoaSBjaG8gJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1MgorIywgYy1mb3JtYXQKK21zZ2lkICJibG9jayBzaXplIHNtYWxsZXIgdGhhbiBwaHlzaWNhbCBzZWN0b3Igc2l6ZSBvZiAlcyIKK21zZ3N0ciAia8OtY2ggY+G7oSBraOG7kWkgbmjhu48gaMahbiBrw61jaCBj4buhIHLDo25oIGdoaSB24bqtdCBsw70gY+G7p2EgJXMiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgImtow7RuZyB0aOG7gyBxdXnhur90IMSR4buLbmgga8OtY2ggY+G7oSBj4bunYSAlcyIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIndpbGwgbm90IHRyeSB0byBtYWtlIGZpbGVzeXN0ZW0gb24gJyVzJyIKK21zZ3N0ciAic+G6vSBraMO0bmcgdGjhu60gdOG6oW8gaOG7hyB0aOG7kW5nIHThuq1wIHRpbiB0csOqbiAnJXMnIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjUKK21zZ2lkICJudW1iZXIgb2YgYmxvY2tzIHRvbyBzbWFsbCIKK21zZ3N0ciAic+G7kSBraOG7kWkgcXXDoSBuaOG7jyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZFxuIgorbXNnc3RyICJLw61jaCBj4buhIHRyYW5nIGRvIG5nxrDhu51pIGTDuW5nIGNo4buJIHJhIHjhuqV1ICVkXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIHVzZXItc3BlY2lmaWVkIHBhZ2Ugc2l6ZSAlZCwgaW5zdGVhZCBvZiB0aGUgc3lzdGVtIHZhbHVlICVkXG4iCittc2dzdHIgIiIKKyJT4butIGThu6VuZyBrw61jaCBj4buhIHRyYW5nIGRvIG5nxrDhu51pIGTDuW5nIGNo4buJIHJhICVkLCB0aGF5IGNobyBnacOhIHRy4buLIGjhu4cgdGjhu5FuZyAlZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiS8OtY2ggY+G7oSBwaOG6p24gxJHhuqd1IHjhuqV1IGNobyBi4buZIG5o4bubIHRyYW8gxJHhu5VpLCBraMO0bmcgZ2hpIG5ow6NuIG7DoG8uXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxhYmVsIHdhcyB0cnVuY2F0ZWQuXG4iCittc2dzdHIgIk5ow6NuIGLhu4sgY+G6r3Qgbmfhuq9uLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIxMAorIywgYy1mb3JtYXQKK21zZ2lkICJubyBsYWJlbCwgIgorbXNnc3RyICJraMO0bmcgbmjDo24sICIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdXVpZFxuIgorbXNnc3RyICJraMO0bmcgdXVpZFxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjI4MworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jXSBbLXBQQUdFU1pdIFstTCBsYWJlbF0gWy1VIFVVSURdIC9kZXYvbmFtZSBbYmxvY2tzXVxuIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6ICVzIFstY10gWy1wS8ONQ0hfQ+G7oF9UUkFOR10gWy1MIG5ow6NuXSBbLVUgVVVJRF0gL2Rldi90w6puIFtjw6FjX2to4buRaV1cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyOTcKK21zZ2lkICJ0b28gbWFueSBiYWQgcGFnZXMiCittc2dzdHIgInF1w6Egbmhp4buBdSB0cmFuZyB44bqldSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMTAgbWlzYy11dGlscy9sb29rLmM6MTgyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExNzkKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMTYgdGV4dC11dGlscy9tb3JlLmM6MjAyNworbXNnaWQgIk91dCBvZiBtZW1vcnkiCittc2dzdHIgIktow7RuZyDEkeG7pyBi4buZIG5o4bubIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJvbmUgYmFkIHBhZ2VcbiIKK21zZ3N0ciAibeG7mXQgdHJhbmcgeOG6pXVcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IGJhZCBwYWdlc1xuIgorbXNnc3RyICIlbHUgdHJhbmcgeOG6pXVcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MDIgZGlzay11dGlscy9ta3N3YXAuYzo0MzkgZGlzay11dGlscy9ta3N3YXAuYzo2NTkKK21zZ2lkICJ1bmFibGUgdG8gcmV3aW5kIHN3YXAtZGV2aWNlIgorbXNnc3RyICJraMO0bmcgdGjhu4MgwqsgdHVhIGzhuqFpIMK7IHRoaeG6v3QgYuG7iyB0cmFvIMSR4buVaSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTMKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgbmV3IGxpYmJsa2lkIHByb2JlIgorbXNnc3RyICJraMO0bmcgdGjhu4MgY+G6pXAgcGjDoXQgxJFv4bqhbiBkw7IgbGliYmxrbGlkIG3hu5tpIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxNQorbXNnaWQgInVuYWJsZSB0byBhc3NpZ24gZGV2aWNlIHRvIGxpYmxraWQgcHJvYmUiCittc2dzdHIgImtow7RuZyB0aOG7gyBnw6FuIHRoaeG6v3QgYuG7iyBjaG8gxJFv4bqhbiBkw7IgbGlibGtpZCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDMKK21zZ2lkICJ1bmFibGUgdG8gZXJhc2UgYm9vdGJpdHMgc2VjdG9ycyIKK21zZ3N0ciAia2jDtG5nIHhvw6EgxJHGsOG7o2MgcsOjbmggZ2hpIGJpdCBraOG7n2kgxJHhu5luZyIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB3YXJuaW5nOiBkb24ndCBlcmFzZSBib290Yml0cyBzZWN0b3JzXG4iCittc2dzdHIgIiVzOiAlczogY+G6o25oIGLDoW8gOiDEkeG7q25nIHhvw6EgcsOjbmggZ2hpIGJpdCBraOG7n2kgxJHhu5luZ1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgICglcyBwYXJ0aXRpb24gdGFibGUgZGV0ZWN0ZWQpLiAiCittc2dzdHIgIiAgICAgICAgKCVzIHBow6F0IGhp4buHbiDEkcaw4bujYyBi4bqjbmcgcGjDom4gdsO5bmcpLiAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgb24gd2hvbGUgZGlzay4gIgorbXNnc3RyICIgICAgICAgIHRyw6puIHRvw6BuIMSRxKlhLiAiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKGNvbXBpbGVkIHdpdGhvdXQgbGliYmxraWQpLiAiCittc2dzdHIgIiAgICAgICAgKGJpw6puIGThu4tjaCBtw6Aga2jDtG5nIGPDsyBsaWJibGtpZCkuICIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTEkczogd2FybmluZzogaWdub3JlIC1VIChVVUlEcyBhcmUgdW5zdXBwb3J0ZWQgYnkgJTEkcylcbiIKK21zZ3N0ciAiJTEkczogY+G6o25oIGLDoW8gOiBi4buPIHF1YSDCqyAtVSDCuyAoVVVJRCBraMO0bmcgcGjhuqNpIMSRxrDhu6NjICUxJHMgaOG7lyB0cuG7oylcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IHN1cHBvcnQgc3dhcHNwYWNlIHZlcnNpb24gJWQuXG4iCittc2dzdHIgIiVzOiBraMO0bmcgaOG7lyB0cuG7oyB2w7luZyB0cmFvIMSR4buVaSBwaGnDqm4gYuG6o24gJWQuXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTQ4Cittc2dpZCAiZXJyb3I6IFVVSUQgcGFyc2luZyBmYWlsZWQiCittc2dzdHIgImzhu5dpOiBraMO0bmcgcGjDom4gdMOtY2ggxJHGsOG7o2MgY8O6IHBow6FwIGPhu6dhIFVVSUQiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogTm93aGVyZSB0byBzZXQgdXAgc3dhcCBvbj9cbiIKK21zZ3N0ciAiJXM6IGzhu5dpOiBraMO0bmcgY8OzIGNo4buXIG7DoG8gxJHhu4MgdGhp4bq/dCBs4bqtcCBi4buZIG5o4bubIHRyYW8gxJHhu5VpID9cbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBs4buXaToga8OtY2ggY+G7oSAlbGx1IEtpQiBs4bubbiBoxqFuIGvDrWNoIGPhu6EgdGhp4bq/dCBi4buLICVsbHUgS2lCXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogc3dhcCBhcmVhIG5lZWRzIHRvIGJlIGF0IGxlYXN0ICVsZCBLaUJcbiIKK21zZ3N0ciAiJXM6IGzhu5dpOiB2w7luZyB0cmFvIMSR4buVaSBj4bqnbiDDrXQgbmjhuqV0ICVsZCBLaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhcm5pbmc6IHRydW5jYXRpbmcgc3dhcCBhcmVhIHRvICVsbHUgS2lCXG4iCittc2dzdHIgIiVzOiBj4bqjbmggYsOhbyA6IMSRYW5nIGPhuq90IG5n4bqvbiB2w7luZyB0cmFvIMSR4buVaSB0aMOgbmggJWxsdSBLaUJcbiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiB3aWxsIG5vdCB0cnkgdG8gbWFrZSBzd2FwZGV2aWNlIG9uICclcydcbiIKK21zZ3N0ciAiJXM6IGzhu5dpOiBz4bq9IGtow7RuZyB0aOG7rSB04bqhbyB0aGnhur90IGLhu4sgdHJhbyDEkeG7lWkgdHLDqm4gJyVzJ1xuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6ICVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2Ugc3dhcHNwYWNlLlxuIgorbXNnc3RyICIlczogbOG7l2k6ICVzIMSRw6MgxJHGsOG7o2MgZ+G6r247IHPhur0ga2jDtG5nIHThuqFvIHbDuW5nIHRyYW8gxJHhu5VpLlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIHRoaeG6v3QgbOG6rXAgdsO5bmcgdHJhbyDEkeG7lWk6IGtow7RuZyB0aOG7gyDEkeG7jWMiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIlNldHRpbmcgdXAgc3dhcHNwYWNlIHZlcnNpb24gMSwgc2l6ZSA9ICVsbHUgS2lCXG4iCittc2dzdHIgIsSQYW5nIHRoaeG6v3QgbOG6rXAgdsO5bmcgdHJhbyDEkeG7lWkgcGhpw6puIGLhuqNuIDEsIGvDrWNoIGPhu6EgPSAlbGx1IEtpQlxuIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byB3cml0ZSBzaWduYXR1cmUgcGFnZTogJXMiCittc2dzdHIgIiVzOiAlczoga2jDtG5nIHRo4buDIGdoaSBuaOG7myB0cmFuZyBjaOG7ryBrw706ICVzIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY3MworbXNnaWQgImZzeW5jIGZhaWxlZCIKK21zZ3N0ciAiZnN5bmMgYuG7iyBs4buXaSIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiB1bmFibGUgdG8gb2J0YWluIHNlbGludXggZmlsZSBsYWJlbDogJXNcbiIKK21zZ3N0ciAiJXM6ICVzOiBraMO0bmcgdGjhu4MgbOG6pXkgbmjDo24gdOG6rXAgdGluIFNFTGludXg6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCittc2dpZCAidW5hYmxlIHRvIG1hdGNocGF0aGNvbigpIgorbXNnc3RyICJraMO0bmcgdGjhu4MgbWF0Y2hwYXRoY29uKCkiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBuZXcgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICJraMO0bmcgdGjhu4MgdOG6oW8gbmfhu68gY+G6o25oIFNFTGludXggbeG7m2kiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njk1Cittc2dpZCAiY291bGRuJ3QgY29tcHV0ZSBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgImtow7RuZyB0aOG7gyB0w61uaCBuZ+G7ryBj4bqjbmggU0VMaW51eCIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo3MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byByZWxhYmVsICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICIlczoga2jDtG5nIHRo4buDIMSR4buVaSBuaMOjbiBj4bunYSAlcyB0aMOgbmggJXM6ICVzXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOlxuIgorIiAgJXMgIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6XG4iCisiICAlcyAiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgJyVzJyBpcyBjb250cm9sIHJhdyBkZXYgKHVzZSByYXc8Tj4gd2hlcmUgPE4+IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvKVxuIgorbXNnc3RyICIiCisiVGhp4bq/dCBi4buLIMKrICVzIMK7IGzDoCB0aGnhur90IGLhu4sgdGjDtCDEkWnhu4F1IGtoaeG7g24gKGjDo3kgZMO5bmcgdGjDtDxOPiBtw6AgPE4+IGzhu5tuIGjGoW4gc+G7kSAiCisia2jDtG5nKVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE0NQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIGJsb2NrIGRldmljZSAnJXMnICglcylcbiIKK21zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5IHRoaeG6v3QgYuG7iyBraOG7kWkgwqsgJXMgwrsgKCVzKVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2UgJyVzJyBpcyBub3QgYSBibG9jayBkZXZcbiIKK21zZ3N0ciAiVGhp4bq/dCBi4buLIMKrICVzIMK7IGtow7RuZyBwaOG6o2kgbeG7mXQgdGhp4bq/dCBi4buLIGto4buRaVxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE4NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBtYXN0ZXIgcmF3IGRldmljZSAnIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgbeG7nyB0aGnhur90IGLhu4sgdGjDtCBjaOG7pyAnIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgbG9jYXRlIHJhdyBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIktow7RuZyB0w6xtIHRo4bqleSB0aGnhur90IGLhu4sgdGjDtCDCqyAlcyDCuyAoJXMpXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgIlJhdyBkZXZpY2UgJyVzJyBpcyBub3QgYSBjaGFyYWN0ZXIgZGV2XG4iCittc2dzdHIgIlRoaeG6v3QgYuG7iyB0aMO0IMKrICVzIMK7IGtow7RuZyBwaOG6o2kgbeG7mXQgdGhp4bq/dCBi4buLIGvDvSB04buxXG4iCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIHJhdyBkZXZcbiIKK21zZ3N0ciAiVGhp4bq/dCBi4buLIMKrICVzIMK7IGtow7RuZyBwaOG6o2kgbeG7mXQgdGhp4bq/dCBi4buLIHRow7RcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcXVlcnlpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIkzhu5dpIGjhu49pIHRoaeG6v3QgYuG7iyB0aMO0ICglcylcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNDEgZGlzay11dGlscy9yYXcuYzoyNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmF3JWQ6XHRib3VuZCB0byBtYWpvciAlZCwgbWlub3IgJWRcbiIKK21zZ3N0ciAidGjDtCVkOlx0xJHDs25nIGvhur90IHbhu5tpIGNow61uaCAlZCwgcGjhu6UgJWRcbiIKKworIzogZGlzay11dGlscy9yYXcuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igc2V0dGluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiTOG7l2kgxJHhurd0IHRoaeG6v3QgYuG7iyB0aMO0ICglcylcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzc4IGZkaXNrL2NmZGlzay5jOjIwODMKK21zZ2lkICJVbnVzYWJsZSIKK21zZ3N0ciAiS2jDtG5nIGTDuW5nIMSRxrDhu6NjIgorCisjOiBmZGlzay9jZmRpc2suYzozODAgZmRpc2svY2ZkaXNrLmM6MjA4NQorbXNnaWQgIkZyZWUgU3BhY2UiCittc2dzdHIgIkNo4buXIHRy4buRbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4MworbXNnaWQgIkxpbnV4IGV4dDIiCittc2dzdHIgIkxpbnV4IGV4dDIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NQorbXNnaWQgIkxpbnV4IGV4dDMiCittc2dzdHIgIkxpbnV4IGV4dDMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NworbXNnaWQgIkxpbnV4IFhGUyIKK21zZ3N0ciAiTGludXggWEZTIgorCisjOiBmZGlzay9jZmRpc2suYzozODkKK21zZ2lkICJMaW51eCBKRlMiCittc2dzdHIgIkxpbnV4IEpGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkxCittc2dpZCAiTGludXggUmVpc2VyRlMiCittc2dzdHIgIkxpbnV4IFJlaXNlckZTIgorCisjOiBmZGlzay9jZmRpc2suYzozOTMgZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NworbXNnaWQgIkxpbnV4IgorbXNnc3RyICJMaW51eCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk2Cittc2dpZCAiT1MvMiBIUEZTIgorbXNnc3RyICJPUy8yIEhQRlMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM5OAorbXNnaWQgIk9TLzIgSUZTIgorbXNnc3RyICJPUy8yIElGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDAyCittc2dpZCAiTlRGUyIKK21zZ3N0ciAiTlRGUyIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaGFzIGJlZW4gY2hhbmdlZC5cbiIKK21zZ3N0ciAixJDEqWEgxJHDoyDEkcaw4bujYyB0aGF5IMSR4buVaS5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDE3CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYm9vdCB0aGUgc3lzdGVtIHRvIGVuc3VyZSB0aGUgcGFydGl0aW9uIHRhYmxlIGlzIGNvcnJlY3RseSB1cGRhdGVkLlxuIgorbXNnc3RyICIiCisiS2jhu59pIMSR4buZbmcgbOG6oWkgaOG7hyB0aOG7kW5nIMSR4buDIMSR4bqjbSBi4bqjbyBsw6AgYuG6o25nIHBow6JuIHbDuW5nIMSRxrDhu6NjIGPhuq1wIG5o4bqtdCDEkcO6bmcuXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnlcbiIKKyJET1MgNi54IHBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGNmZGlzayBtYW51YWxcbiIKKyJwYWdlIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICIiCisiXG4iCisiQ+G6ok5IIELDgU8gOiBO4bq/dSBi4bqhbiBwaOG6o2kgdOG6oW8gaGF5IHPhu60gxJHhu5VpIGLhuqV0IGvhu7NcbiIKKyJwaMOibiB2w7luZyBET1MgNi54IG7DoG8sIHhpbiBow6N5IHhlbSBoxrDhu5tuZyBk4bqrbiBuZ8aw4budaVxuIgorImTDuW5nIGNmZGlzayDEkeG7gyBiaeG6v3QgdGjDqm0gdGjDtG5nIHRpbi5cbiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE2Cittc2dpZCAiRkFUQUwgRVJST1IiCittc2dzdHIgIkzhu5ZJIE5HSEnDik0gVFLhu4xORyIKKworIzogZmRpc2svY2ZkaXNrLmM6NTE3Cittc2dpZCAiUHJlc3MgYW55IGtleSB0byBleGl0IGNmZGlzayIKK21zZ3N0ciAiSMOjeSBuaOG6pW4gcGjDrW0gYuG6pXQga+G7syDEkeG7gyB0aG/DoXQga2jhu49pIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6NTY0IGZkaXNrL2NmZGlzay5jOjU3MgorbXNnaWQgIkNhbm5vdCBzZWVrIG9uIGRpc2sgZHJpdmUiCittc2dzdHIgIktow7RuZyB0aOG7gyB0w6xtIG7GoWkgdHLDqm4g4buVIMSRxKlhIgorCisjOiBmZGlzay9jZmRpc2suYzo1NjYKK21zZ2lkICJDYW5ub3QgcmVhZCBkaXNrIGRyaXZlIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu41jIOG7lSDEkcSpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgdsOgbyDhu5UgxJHEqWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjkxNworbXNnaWQgIlRvbyBtYW55IHBhcnRpdGlvbnMiCittc2dzdHIgIlF1w6Egbmhp4buBdSBwaMOibiB2w7luZyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTIyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIlBow6JuIHbDuW5nIGLhuq90IMSR4bqndSB0csaw4bubYyByw6NuaCBnaGkgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTI3Cittc2dpZCAiUGFydGl0aW9uIGVuZHMgYmVmb3JlIHNlY3RvciAwIgorbXNnc3RyICJQaMOibiB2w7luZyBr4bq/dCB0aMO6YyB0csaw4bubYyByw6NuaCBnaGkgMCIKKworIzogZmRpc2svY2ZkaXNrLmM6OTMyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiUGjDom4gdsO5bmcgYuG6r3QgxJHhuqd1IHRyxrDhu5tjIGvhur90LXRow7pjLWPhu6dhLcSRxKlhIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiUGjDom4gdsO5bmcgYuG6r3QgxJHhuqd1IHNhdSBr4bq/dC10aMO6Yy1j4bunYS3EkcSpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6OTQyCittc2dpZCAiUGFydGl0aW9uIGVuZHMgaW4gdGhlIGZpbmFsIHBhcnRpYWwgY3lsaW5kZXIiCittc2dzdHIgIlBow6JuIHbDuW5nIGvhur90IHRow7pjIHRyb25nIGjDrG5oIHRy4bulIGLDoW4gcGjhuqduIGN14buRaSBjw7luZyIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY2Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG5vdCBpbiBkaXNrIG9yZGVyIgorbXNnc3RyICJQaMOibiB2w7luZyBsw7Rnw61jIGtow7RuZyB0aGVvIHRo4bupIHThu7EgxJHEqWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjk2OQorbXNnaWQgImxvZ2ljYWwgcGFydGl0aW9ucyBvdmVybGFwIgorbXNnc3RyICJwaMOibiB2w7luZyBsw7Rnw61jIGNo4buTbmcgbMOqbiBuaGF1IgorCisjOiBmZGlzay9jZmRpc2suYzo5NzMKK21zZ2lkICJlbmxhcmdlZCBsb2dpY2FsIHBhcnRpdGlvbnMgb3ZlcmxhcCIKK21zZ3N0ciAicGjDom4gdsO5bmcgbMO0Z8OtYyBt4bufIHLhu5luZyBjaOG7k25nIGzDqm4gbmhhdSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAwMworbXNnaWQgIiIKKyIhISEhIEludGVybmFsIGVycm9yIGNyZWF0aW5nIGxvZ2ljYWwgZHJpdmUgd2l0aCBubyBleHRlbmRlZCBwYXJ0aXRpb24gISEhISIKK21zZ3N0ciAiISEhISBM4buXaSBu4buZaSBi4buZIGtoaSB04bqhbyBjw6FjIOG7lSBsw7Rnw61jIG3DoCBraMO0bmcgY8OzIHBow6JuIHbDuW5nIG3hu58gcuG7mW5nICEhISEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjEwMTQgZmRpc2svY2ZkaXNrLmM6MTAyNgorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxvZ2ljYWwgZHJpdmUgaGVyZSAtLSB3b3VsZCBjcmVhdGUgdHdvIGV4dGVuZGVkIHBhcnRpdGlvbnMiCittc2dzdHIgIktow7RuZyB0aOG7gyB04bqhbyDhu5UgbMO0Z8OtYyDhu58gxJHDonkgLS0gdsOsIG5oxrAgdGjhur8gc+G6vSB04bqhbyBoYWkgcGjDom4gdsO5bmcgbeG7nyBy4buZbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjExNjgKK21zZ2lkICJNZW51IGl0ZW0gdG9vIGxvbmcuIE1lbnUgbWF5IGxvb2sgb2RkLiIKK21zZ3N0ciAiTeG7pWMgdHLDrG5oIMSRxqFuIHF1w6EgZMOgaS4gVHLDrG5oIMSRxqFuIGPDsyB0aOG7gyB0csO0bmcgbOG6oWMgbMO1bmcuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMjI0Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiIgorIlRyw6xuaCDEkcahbiBraMO0bmcgY8OzIHBoxrDGoW5nIGjGsOG7m25nIG7Dqm4gZMO5bmcgdGhp4bq/dCBs4bqtcCBt4bq3YyDEkeG7i25oIChu4bqxbSBuZ2FuZykuIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzU2Cittc2dpZCAiSWxsZWdhbCBrZXkiCittc2dzdHIgIlBow61tIGPhuqVtIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzc5Cittc2dpZCAiUHJlc3MgYSBrZXkgdG8gY29udGludWUiCittc2dzdHIgIk5o4bqlbiBt4buZdCBwaMOtbSDEkeG7gyB0aeG6v3AgdOG7pWMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiQ2jDrW5oIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2Cittc2dpZCAiQ3JlYXRlIGEgbmV3IHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJU4bqhbyBt4buZdCBwaMOibiB2w7luZyBjaMOtbmggbeG7m2kiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg1CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiTG9naWNhbCIKK21zZ3N0ciAiTMO0Z8OtYyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyNworbXNnaWQgIkNyZWF0ZSBhIG5ldyBsb2dpY2FsIHBhcnRpdGlvbiIKK21zZ3N0ciAiVOG6oW8gbeG7mXQgcGjDom4gdsO5bmcgbMO0Z8OtYyBt4bubaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQyOCBmZGlzay9jZmRpc2suYzoxNDgzIGZkaXNrL2NmZGlzay5jOjIyNTkKK21zZ2lkICJDYW5jZWwiCittc2dzdHIgIkjhu6d5IGLhu48iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MworbXNnaWQgIkRvbid0IGNyZWF0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAixJDhu6tuZyB04bqhbyBt4buZdCBwaMOibiB2w7luZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NAorbXNnaWQgIiEhISBJbnRlcm5hbCBlcnJvciAhISEiCittc2dzdHIgIiEhISBM4buXaSBu4buZaSBi4buZICEhISIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ0NworbXNnaWQgIlNpemUgKGluIE1CKTogIgorbXNnc3RyICJLw61jaCBj4buhICh0aGVvIE1CKTogIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQmVnaW5uaW5nIgorbXNnc3RyICLEkOG6p3UiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODEKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGJlZ2lubmluZyBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICJUaMOqbSBt4buZdCBwaMOibiB2w7luZyB04bqhaSDEkeG6p3UgdsO5bmcgxJHEqWEgdHLhu5FuZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MgorbXNnaWQgIkVuZCIKK21zZ3N0ciAiQ3Xhu5FpIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBlbmQgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiVGjDqm0gbeG7mXQgcGjDom4gdsO5bmcgdOG6oWkgY3Xhu5FpIHbDuW5nIMSRxKlhIHRy4buRbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICJLaMO0bmcgY8OybiBjaOG7lyDEkeG7gyB04bqhbyBwaMOibiB2w7luZyBt4bufIHLhu5luZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3NAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiS2jDtG5nIGPDsyBi4bqjbmcgcGjDom4gdsO5bmdcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3OAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiS2jDtG5nIGPDsyBi4bqjbmcgcGjDom4gdsO5bmcuIEto4bufaSDEkeG7mW5nIHbhu5tpIG3hu5l0IGLhuqNuZyB0cuG6r25nLiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU4OAorbXNnaWQgIkJhZCBzaWduYXR1cmUgb24gcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICJDaOG7ryBrw70geOG6pXUgdHJvbmcgYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTkyCittc2dpZCAiVW5rbm93biBwYXJ0aXRpb24gdGFibGUgdHlwZSIKK21zZ3N0ciAiTG/huqFpIGLhuqNuZyBwaMOibiB2w7luZyBraMO0bmcgeMOhYyDEkeG7i25oIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTk0Cittc2dpZCAiRG8geW91IHdpc2ggdG8gc3RhcnQgd2l0aCBhIHplcm8gdGFibGUgW3kvTl0gPyIKK21zZ3N0ciAiQuG6oW4gY8OzIG114buRbiBraOG7n2kgxJHhu5luZyB24bubaSBt4buZdCBi4bqjbmcgdHLhuq9uZyBbYy9LXSA/IgorCisjOiBmZGlzay9jZmRpc2suYzoxNjQyCittc2dpZCAiWW91IHNwZWNpZmllZCBtb3JlIGN5bGluZGVycyB0aGFuIGZpdCBvbiBkaXNrIgorbXNnc3RyICJC4bqhbiDEkcOjIMSRxrBhIHJhIHPhu5EgaMOsbmggdHLhu6UgbOG7m24gaMahbiBz4buRIGPDsyB0csOqbiDEkcSpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NAorbXNnaWQgIkNhbm5vdCBvcGVuIGRpc2sgZHJpdmUiCittc2dzdHIgIktow7RuZyB0aOG7gyBt4bufIOG7lSDEkcSpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY3NiBmZGlzay9jZmRpc2suYzoxODY1Cittc2dpZCAiT3BlbmVkIGRpc2sgcmVhZC1vbmx5IC0geW91IGhhdmUgbm8gcGVybWlzc2lvbiB0byB3cml0ZSIKK21zZ3N0ciAiTeG7nyDEkcSpYSBjaOG7iSDEkeG7jWMgLSBi4bqhbiBraMO0bmcgY8OzIHF1eeG7gW4gZ2hpIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjg3Cittc2dpZCAiIgorIldhcm5pbmchISAgVW5zdXBwb3J0ZWQgR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQuIFVzZSBHTlUgUGFydGVkLiIKK21zZ3N0ciAiIgorIkPhuqNuaCBiw6FvIDogIHBow6F0IGhp4buHbiBHUFQgKGLhuqNuZyBwaMOibiB2w7luZyBHVUlEKSBraMO0bmcgxJHGsOG7o2MgaOG7lyB0cuG7oy4gSMOjeSBkw7luZyAiCisiY2jGsMahbmcgdHLDrG5oIEdOVSBQYXJ0ZWQuIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzA2Cittc2dpZCAiQ2Fubm90IGdldCBkaXNrIHNpemUiCittc2dzdHIgIktow7RuZyB0aOG7gyBs4bqleSBrw61jaCBj4buhIMSRxKlhIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICJQaMOibiB2w7luZyBjaMOtbmggeOG6pXUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3NjIKK21zZ2lkICJCYWQgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIlBow6JuIHbDuW5nIGzDtGfDrWMgeOG6pXUiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4NzcKK21zZ2lkICJXYXJuaW5nISEgIFRoaXMgbWF5IGRlc3Ryb3kgZGF0YSBvbiB5b3VyIGRpc2shIgorbXNnc3RyICJD4bqjbmggYsOhbyA6IGPDsyB0aOG7gyBz4bq9IHjDs2EgaOG6v3QgZOG7ryBsaeG7h3UgdHLDqm4gxJHEqWEgY+G7p2EgYuG6oW4uIgorCisjOiBmZGlzay9jZmRpc2suYzoxODgxCittc2dpZCAiIgorIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2s/ICh5ZXMgb3Igbm8pOiAiCittc2dzdHIgIkLhuqFuIGPDsyBjaOG6r2MgbXXhu5FuIGdoaSBi4bqjbmcgcGjDom4gdsO5bmcgbMOqbiDEkcSpYSBraMO0bmc/IChjw7MgaG/hurdjIGtow7RuZyk6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4NworbXNnaWQgIm5vIgorbXNnc3RyICJraMO0bmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODkKK21zZ2lkICJEaWQgbm90IHdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICJC4bqjbmcgcGjDom4gdsO5bmcgxJHDoyBraMO0bmcgxJHGsOG7o2MgZ2hpIGzDqm4gxJHEqWEiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTEKK21zZ2lkICJ5ZXMiCittc2dzdHIgImPDsyIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg5NQorbXNnaWQgIlBsZWFzZSBlbnRlciBgeWVzJyBvciBgbm8nIgorbXNnc3RyICJYaW4gaMOjeSBuaOG6rXAgwqsgY8OzIMK7IGhheSDCqyBraMO0bmcgwrsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTkKK21zZ2lkICJXcml0aW5nIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrLi4uIgorbXNnc3RyICLEkGFuZyBnaGkgYuG6o25nIHBow6JuIHbDuW5nIGzDqm4gxJHEqWEuLi4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MjQgZmRpc2svY2ZkaXNrLmM6MTkyOAorbXNnaWQgIldyb3RlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIgorbXNnc3RyICLEkMOjIGdoaSBi4bqjbmcgcGjDom4gdsO5bmcgbMOqbiDEkcSpYSIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkyNgorbXNnaWQgIiIKKyJXcm90ZSBwYXJ0aXRpb24gdGFibGUsIGJ1dCByZS1yZWFkIHRhYmxlIGZhaWxlZC4gIFJ1biBwYXJ0cHJvYmUoOCksIGtwYXJ0eCIKKyIoOCkgb3IgcmVib290IHRvIHVwZGF0ZSB0YWJsZS4iCittc2dzdHIgIiIKKyLEkMOjIGdoaSBi4bqjbmcgcGjDom4gdsO5bmcsIG5oxrBuZyBraMO0bmcgxJHhu41jIGzhuqFpIMSRxrDhu6NjIGLhuqNuZy4gIEjDo3kgY2jhuqF5IGPDtG5nIGPhu6UgIgorInBhcnRwcm9iZSg4KSBoYXkga3BhcnR4KDgpLCBob+G6t2Mga2jhu59pIMSR4buZbmcgbOG6oWkgxJHhu4MgY+G6rXAgbmjhuq10IGLhuqNuZy4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjE5MzYKK21zZ2lkICJObyBwcmltYXJ5IHBhcnRpdGlvbnMgYXJlIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIktow7RuZyBjw7MgcGjDom4gdsO5bmcgY2jDrW5oIG7DoG8gxJHGsOG7o2MgxJHDoW5oIGThuqV1IGPDsyB0aOG7gyBraOG7n2kgxJHhu5luZy4gTUJSICht4bulYyBnaGkgIgorImto4bufaSDEkeG7mW5nIGNo4bunKSBj4bunYSBET1Mga2jDtG5nIHRo4buDIGto4bufaSDEkeG7mW5nIHRyb25nIHRyxrDhu51uZyBo4bujcCBuw6B5LiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzOAorbXNnaWQgIiIKKyJNb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorIkPDsyB2w6BpIHBow6JuIHbDuW5nIGNow61uaCDEkcaw4bujYyDEkcOhbmggZOG6pXUgbMOgIGPDsyB0aOG7gyBraOG7n2kgxJHhu5luZy4gTUJSICht4bulYyBnaGkga2jhu59pICIKKyLEkeG7mW5nIGNo4bunKSBj4bunYSBET1Mga2jDtG5nIHRo4buDIGto4bufaSDEkeG7mW5nIHRyb25nIHRyxrDhu51uZyBo4bujcCBuw6B5LiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTk5NiBmZGlzay9jZmRpc2suYzoyMTE1IGZkaXNrL2NmZGlzay5jOjIxOTkKK21zZ2lkICJFbnRlciBmaWxlbmFtZSBvciBwcmVzcyBSRVRVUk4gdG8gZGlzcGxheSBvbiBzY3JlZW46ICIKK21zZ3N0ciAiTmjhuq1wIHTDqm4gdOG6rXAgdGluIGhv4bq3YyBuaOG6pW4gcGjDrW0gUkVUVVJOIMSR4buDIGhp4buDbiB0aOG7iyB0csOqbiBtw6BuIGjDrG5oOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMDUgZmRpc2svY2ZkaXNrLmM6MjEyMyBmZGlzay9jZmRpc2suYzoyMjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIGZpbGUgJyVzJyIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIG3hu58gdOG6rXAgdGluICclcyciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBEcml2ZTogJXNcbiIKK21zZ3N0ciAi4buUIMSRxKlhOiAlc1xuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE4Cittc2dpZCAiU2VjdG9yIDA6XG4iCittc2dzdHIgIlLDo25oIGdoaSAwOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlZDpcbiIKK21zZ3N0ciAiUsOjbmggZ2hpICVkOlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ1Cittc2dpZCAiICAgTm9uZSAgICIKK21zZ3N0ciAiICAgS2jDtG5nICAgIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDQ3Cittc2dpZCAiICAgUHJpL0xvZyIKK21zZ3N0ciAiICAgQ2jDrW5oL0zDtGfDrWMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIgICBDaMOtbmgiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIgICBMw7Rnw61jIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDg5IGZkaXNrL2ZkaXNrLmM6MTc2NyBmZGlzay9mZGlzay5jOjIxMDYKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMjcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYxNiBmZGlzay9zZmRpc2suYzo2MzgKK21zZ2lkICJVbmtub3duIgorbXNnc3RyICJLaMO0bmcgcsO1IgorCisjOiBmZGlzay9jZmRpc2suYzoyMDk1IGZkaXNrL2NmZGlzay5jOjI1NjMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5Cittc2dpZCAiQm9vdCIKK21zZ3N0ciAiS2jhu59pIMSR4buZbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiKCUwMlgpIgorbXNnc3RyICIoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwOTkKK21zZ2lkICJOb25lIgorbXNnc3RyICJLaMO0bmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzQgZmRpc2svY2ZkaXNrLmM6MjIxOAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gVGFibGUgZm9yICVzXG4iCittc2dzdHIgIkLhuqNuZyBQaMOibiBWw7luZyBjaG8gJXNcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNgorbXNnaWQgIiAgICAgICAgICAgICAgIEZpcnN0ICAgICAgIExhc3RcbiIKK21zZ3N0ciAiICAgICAgICAgICAgICAgxJDhuqd1ICAgICAgICAgQ3Xhu5FpXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorIiAjIExv4bqhaSAgICAgICBSw6NuaCBnaGkgICAgICBSw6NuaCBnaGkgICBIaeG7h3UgICAgxJDhu5kgZMOgaSAgICBLaeG7g3UgaOG7hyB0aOG7kW5nIHThuq1wICIKKyJ0aW4gKElEKSBD4budXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzgKK21zZ2lkICIiCisiLS0gLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIgorIi0tLS1cbiIKK21zZ3N0ciAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjEKK21zZ2lkICIgICAgICAgICAtLS1TdGFydGluZy0tLS0gICAgICAtLS0tRW5kaW5nLS0tLS0gICAgU3RhcnQgICAgIE51bWJlciBvZlxuIgorbXNnc3RyICIgICAgICAgICAtLS1C4bqvdCDEkeG6p3UtLS0gICAgICAtLS0tS+G6v3QgdGjDumMtLS0tICAgIMSQ4bqndSAgICAgU+G7kVxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjIyCittc2dpZCAiICMgRmxhZ3MgSGVhZCBTZWN0ICBDeWwgICBJRCAgSGVhZCBTZWN0ICBDeWwgICAgIFNlY3RvciAgICBTZWN0b3JzXG4iCittc2dzdHIgIiAjQ+G7nSBSw6NuaCDEkOG6p3UgIFRy4bulICAgSUQgIFLDo25oIMSQ4bqndSAgVHLhu6UgICAgIFLDo25oIGdoaSAgICBSw6NuaCBnaGlcbiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMworbXNnaWQgIi0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tIC0tLS0gLS0tLSAtLS0tLSAtLS0tLS0tLS0tLSAtLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0gLS0tLSAtLS0tIC0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tXG4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJSYXciCittc2dzdHIgIlRow7Qgc8ahIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUHJpbnQgdGhlIHRhYmxlIHVzaW5nIHJhdyBkYXRhIGZvcm1hdCIKK21zZ3N0ciAiSW4gYuG6o25nIHJhIHPhu60gZOG7pW5nIMSR4buLbmggZOG6oW5nIGThu68gbGnhu4d1IHRow7QiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIlLDo25oIGdoaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIkluIGLhuqNuZyB0aGVvIHRo4bupIHThu7EgcsOjbmggZ2hpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU4Cittc2dpZCAiVGFibGUiCittc2dzdHIgIkLhuqNuZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIkp1c3QgcHJpbnQgdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiQ2jhu4kgaW4gYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiRG9uJ3QgcHJpbnQgdGhlIHRhYmxlIgorbXNnc3RyICLEkOG7q25nIGluIGLhuqNuZyBwaMOibiB2w7luZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4NworbXNnaWQgIkhlbHAgU2NyZWVuIGZvciBjZmRpc2siCittc2dzdHIgIlRy4bujIGdpw7pwIGPhu6dhIGNmZGlzayIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI4OQorbXNnaWQgIlRoaXMgaXMgY2ZkaXNrLCBhIGN1cnNlcyBiYXNlZCBkaXNrIHBhcnRpdGlvbmluZyBwcm9ncmFtLCB3aGljaCIKK21zZ3N0ciAixJDDonkgbMOgIGNmZGlzaywgbeG7mXQgY2jGsMahbmcgdHLDrG5oIHBow6JuIHbDuW5nIMSRxKlhIGThu7FhIHRyw6puIGN1cnNlcywiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgImNoxrDGoW5nIHRyw6xuaCBjaG8gcGjDqXAgYuG6oW4gdOG6oW8sIHjDs2EgdsOgIHPhu61hIMSR4buVaSBjw6FjIHBow6JuIHbDuW5nIHRyw6puIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkxCittc2dpZCAiZGlzayBkcml2ZS4iCittc2dzdHIgIuG7lSDEkcSpYSBj4bupbmcuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjkzCittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgS2V2aW4gRS4gTWFydGluICYgYWViIgorbXNnc3RyICJUw6FjIHF1eeG7gW4gwqkgbsSDbSAxOTk0LTE5OTkgY+G7p2EgS2V2aW4gRS4gTWFydGluICYgYWViIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk1Cittc2dpZCAiQ29tbWFuZCAgICAgIE1lYW5pbmciCittc2dzdHIgIkPDonUgbOG7h25oICAgICAgw50gbmdoxKlhIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk2Cittc2dpZCAiLS0tLS0tLSAgICAgIC0tLS0tLS0iCittc2dzdHIgIi0tLS0tLS0gICAgICAtLS0tLS0tIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk3Cittc2dpZCAiICBiICAgICAgICAgIFRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBiICAgICAgICAgIELhuq10L3Thuq90IGto4bqjIG7Eg25nIGto4bufaSDEkeG7mW5nIGPhu6dhIHBow6JuIHbDuW5nIGhp4buHbiB04bqhaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OAorbXNnaWQgIiAgZCAgICAgICAgICBEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIgIGQgICAgICAgICAgWMOzYSBwaMOibiB2w7luZyBoaeG7h24gdGjhu51pIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk5Cittc2dpZCAiICBnICAgICAgICAgIENoYW5nZSBjeWxpbmRlcnMsIGhlYWRzLCBzZWN0b3JzLXBlci10cmFjayBwYXJhbWV0ZXJzIgorbXNnc3RyICIiCisiICAgZyAgICAgICAgICBUaGF5IMSR4buVaSBjw6FjIHRoYW0gc+G7kSA6IGN5bGluZGVycyAoaMOsbmggdHLhu6UpLCBoZWFkcyAoxJHhuqd1IMSR4buNYyksICIKKyJzZWN0b3JzLXBlci10cmFjayAoc+G7kSByw6NuaCBnaGkgdHLDqm4gbeG7l2kgcsOjbmgpIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAwCittc2dpZCAiICAgICAgICAgICAgIFdBUk5JTkc6IFRoaXMgb3B0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgcGVvcGxlIHdobyIKK21zZ3N0ciAiICAgICAgICAgICAgIEPhuqJOSCBCw4FPIDogVMO5eSBjaOG7jW4gbsOgeSBjaOG7iSBkw6BuaCBjaG8gbmjhu69uZyBuZ8aw4budaSBkw7luZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMQorbXNnaWQgIiAgICAgICAgICAgICBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcuIgorbXNnc3RyICIgICAgICAgICAgICAgxJHDoyBjw7Mga2luaCBuZ2hp4buHbS4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDIKK21zZ2lkICIgIGggICAgICAgICAgUHJpbnQgdGhpcyBzY3JlZW4iCittc2dzdHIgIiAgaCAgICAgICAgICBIaeG7g24gdGjhu4sgdHLhu6MgZ2nDunAgbsOgeSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgbSAgICAgICAgICBNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiICBtICAgICAgICAgIMSQ4bq3dCBwaMOibiB2w7luZyBoaeG7h24gdGjhu51pIGTDuW5nIHbDuW5nIMSRxKlhIGzhu5tuIG5o4bqldCBjw7MgdGjhu4MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgICAgICAgICAgTm90ZTogVGhpcyBtYXkgbWFrZSB0aGUgcGFydGl0aW9uIGluY29tcGF0aWJsZSB3aXRoIgorbXNnc3RyICIgICAgICAgICAgICAgQ2jDuiDDvTogY8OzIHRo4buDIGzDoG0gY2hvIHBow6JuIHbDuW5nIGtow7RuZyB0xrDGoW5nIHRow61jaCB24bubaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNQorbXNnaWQgIiAgICAgICAgICAgICBET1MsIE9TLzIsIC4uLiIKK21zZ3N0ciAiICAgICAgICAgICAgIERPUywgT1MvMiwgLi4uIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA2Cittc2dpZCAiICBuICAgICAgICAgIENyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiICBuICAgICAgICAgIFThuqFvIG3hu5l0IHBow6JuIHbDuW5nIG3hu5tpIHThu6sga2jDtG5nIGdpYW4gdHLhu5FuZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgcCAgICAgICAgICBQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIiAgcCAgICAgICAgICBJbiByYSBtw6BuIGjDrG5oIGhheSBnaGkgdsOgbyB04bqtcCB0aW4gYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA4Cittc2dpZCAiICAgICAgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgcGFydGl0aW9uIgorbXNnc3RyICIgICAgICAgICAgICAgQ8OzIHbDoGkgxJHhu4tuaCBk4bqhbmcga2jDoWMgbmhhdSBjaG8gcGjDom4gdsO5bmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDkKK21zZ2lkICIgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIGNob29zZSBmcm9tOiIKK21zZ3N0ciAiICAgICAgICAgICAgIG3DoCBi4bqhbiBjw7MgdGjhu4MgY2jhu41uOiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIiCisiICAgICAgICAgICAgICAgIHIgLSBE4buvIGxp4buHdSB0aMO0IChsw6Agbmjhu69uZyBnw6wgY2jDrW5oIHjDoWMgc+G6vSDEkcaw4bujYyBnaGkgbMOqbiDEkcSpYSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHMgLSBC4bqjbmcgdGhlbyB0aOG7qSB04buxIHLDo25oIGdoaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMgorbXNnaWQgIiAgICAgICAgICAgICAgICB0IC0gVGFibGUgaW4gcmF3IGZvcm1hdCIKK21zZ3N0ciAiICAgICAgICAgICAgICAgIHQgLSBC4bqjbmcgdGhlbyDEkeG7i25oIGThuqFuZyB0aMO0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEzCittc2dpZCAiICBxICAgICAgICAgIFF1aXQgcHJvZ3JhbSB3aXRob3V0IHdyaXRpbmcgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgIHEgICAgICAgICAgVGhvw6F0IGto4buPaSBjaMawxqFuZyB0csOsbmggdsOgIGtow7RuZyBnaGkgbOG6oWkgYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE0Cittc2dpZCAiICB0ICAgICAgICAgIENoYW5nZSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIgIHQgICAgICAgICAgVGhheSDEkeG7lWkgbG/huqFpIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTUKK21zZ2lkICIgIHUgICAgICAgICAgQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IgorbXNnc3RyICIgIHUgICAgICAgICAgVGhheSDEkeG7lWkgxJHGoW4gduG7iyBoaeG7g24gdGjhu4sga8OtY2ggY+G7oSBwaMOibiB2w7luZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNgorbXNnaWQgIiAgICAgICAgICAgICBSb3RhdGVzIHRocm91Z2ggTUIsIHNlY3RvcnMgYW5kIGN5bGluZGVycyIKK21zZ3N0ciAiICAgICAgICAgICAgIEx1w6JuIHBoacOqbiBNQiwgY8OhYyByw6NuaCBnaGkgdsOgIGjDrG5oIHRy4bulIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE3Cittc2dpZCAiICBXICAgICAgICAgIFdyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrIChtdXN0IGVudGVyIHVwcGVyIGNhc2UgVykiCittc2dzdHIgIiAgVyAgICAgICAgICBHaGkgYuG6o25nIHBow6JuIHbDuW5nIGzDqm4gxJHEqWEgKGPhuqduIG5o4bqtcCBjaOG7ryBXIGhvYSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTgKK21zZ2lkICIgICAgICAgICAgICAgU2luY2UgdGhpcyBtaWdodCBkZXN0cm95IGRhdGEgb24gdGhlIGRpc2ssIHlvdSBtdXN0IgorbXNnc3RyICIgICAgICAgICAgICAgVsOsIGPDonUgbOG7h25oIGPDsyB0aOG7gyBo4buneSBk4buvIGxp4buHdSB0csOqbiDEkcSpYSwgYuG6oW4gY+G6p24iCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTkKK21zZ2lkICIgICAgICAgICAgICAgZWl0aGVyIGNvbmZpcm0gb3IgZGVueSB0aGUgd3JpdGUgYnkgZW50ZXJpbmcgYHllcycgb3IiCittc2dzdHIgIiAgICAgICAgICAgICBob+G6t2MgxJHhu5NuZyDDvSBob+G6t2MgaOG7p3kgYuG7jyB2aeG7h2MgZ2hpIGLhurFuZyBjw6FjIG5o4bqtcCDCqyBjw7MgwrsgaG/hurdjIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIwCittc2dpZCAiICAgICAgICAgICAgIGBubyciCittc2dzdHIgIiAgICAgICAgICAgICDCqyBraMO0bmcgwrsiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjEKK21zZ2lkICJVcCBBcnJvdyAgICAgTW92ZSBjdXJzb3IgdG8gdGhlIHByZXZpb3VzIHBhcnRpdGlvbiIKK21zZ3N0ciAiTcWpaSB0w6puIGzDqm4gICAgIERpIGNodXnhu4NuIGNvbiB0cuG7jyB04bubaSBwaMOibiB2w7luZyDhu58gdHLGsOG7m2MiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjIKK21zZ2lkICJEb3duIEFycm93ICAgTW92ZSBjdXJzb3IgdG8gdGhlIG5leHQgcGFydGl0aW9uIgorbXNnc3RyICJNxalpIHTDqm4geHXhu5FuZyAgIERpIGNodXnhu4NuIGNvbiB0cuG7jyB04bubaSBwaMOibiB2w7luZyB0aeG6v3AgdGhlbyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMworbXNnaWQgIkNUUkwtTCAgICAgICBSZWRyYXdzIHRoZSBzY3JlZW4iCittc2dzdHIgIkNUUkwtTCAgICAgICBD4bqtcCBuaOG6rXQgbcOgbiBow6xuaCIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiICA/ICAgICAgICAgIEhp4buDbiB0aOG7iyB0cuG7oyBnacO6cCBuw6B5IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI2Cittc2dpZCAiTm90ZTogQWxsIG9mIHRoZSBjb21tYW5kcyBjYW4gYmUgZW50ZXJlZCB3aXRoIGVpdGhlciB1cHBlciBvciBsb3dlciIKK21zZ3N0ciAiQ2jDuiDDvTogQ8OzIHRo4buDIG5o4bqtcCB04bqldCBj4bqjIGPDoWMgY8OidSBs4buHbmggduG7m2kgY2jhu68gdGjGsOG7nW5nIHbDoCBjaOG7ryBob2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjcKK21zZ2lkICJjYXNlIGxldHRlcnMgKGV4Y2VwdCBmb3IgV3JpdGVzKS4iCittc2dzdHIgIihuZ2/huqFpIHRy4burIGzhu4duaCBXcml0ZSBbZ2hpXSkuIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoyMzIKK21zZ2lkICJDeWxpbmRlcnMiCittc2dzdHIgIkjDrG5oIHRy4bulIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICJUaGF5IMSR4buVaSBj4bqldSB0csO6YyBow6xuaCB0cuG7pSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM1OSBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMwCittc2dpZCAiSGVhZHMiCittc2dzdHIgIsSQ4bqndSDEkeG7jWMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkKK21zZ2lkICJDaGFuZ2UgaGVhZCBnZW9tZXRyeSIKK21zZ3N0ciAiVGhheSDEkeG7lWkgY+G6pXUgdHLDumMgxJHhuqd1IMSR4buNYyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIkNoYW5nZSBzZWN0b3IgZ2VvbWV0cnkiCittc2dzdHIgIlRoYXkgxJHhu5VpIGPhuqV1IHRyw7pjIHLDo25oIGdoaSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM2MQorbXNnaWQgIkRvbmUiCittc2dzdHIgIkhvw6BuIHThuqV0IgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICJIb8OgbiB0aMOgbmggdmnhu4djIHRoYXkgxJHhu5VpIGPhuqV1IHRyw7pjIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzc0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBjeWxpbmRlcnM6ICIKK21zZ3N0ciAiTmjhuq1wIHPhu5EgaMOsbmggdHLhu6UgOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzODUgZmRpc2svY2ZkaXNrLmM6Mjk1OAorbXNnaWQgIklsbGVnYWwgY3lsaW5kZXJzIHZhbHVlIgorbXNnc3RyICJHacOhIHRy4buLIGjDrG5oIHRy4bulIGPhuqVtIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzkxCittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBoZWFkczogIgorbXNnc3RyICJOaOG6rXAgc+G7kSDEkeG6p3UgxJHhu41jOiAiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTggZmRpc2svY2ZkaXNrLmM6Mjk2OAorbXNnaWQgIklsbGVnYWwgaGVhZHMgdmFsdWUiCittc2dzdHIgIkdpw6EgdHLhu4sgc+G7kSDEkeG6p3UgxJHhu41jIGPhuqVtIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICJOaOG6rXAgc+G7kSByw6NuaCBnaGkgdHLDqm4gbeG7l2kgcsOjbmg6ICIKKworIzogZmRpc2svY2ZkaXNrLmM6MjQxMSBmZGlzay9jZmRpc2suYzoyOTc1Cittc2dpZCAiSWxsZWdhbCBzZWN0b3JzIHZhbHVlIgorbXNnc3RyICJHacOhIHRy4buLIHPhu5EgcsOjbmggZ2hpIGPhuqVtIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTE0Cittc2dpZCAiRW50ZXIgZmlsZXN5c3RlbSB0eXBlOiAiCittc2dzdHIgIk5o4bqtcCBsb+G6oWkgaOG7hyB0aOG7kW5nIHThuq1wIHRpbjogIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTMyCittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGVtcHR5IgorbXNnc3RyICJLaMO0bmcgdGjhu4MgdGhheSDEkeG7lWkgbG/huqFpIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gdGjDoG5oIHLhu5duZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzNAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBleHRlbmRlZCIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIHRoYXkgxJHhu5VpIGxv4bqhaSBo4buHIHRo4buRbmcgdOG6rXAgdGluIHRow6BuaCBt4bufIHLhu5luZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmsoJTAyWCkiCittc2dzdHIgIktow7RuZ19yw7UoJTAyWCkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjggZmRpc2svY2ZkaXNrLmM6MjU3MQorbXNnaWQgIiwgTkMiCittc2dzdHIgIiwgTkMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NzYgZmRpc2svY2ZkaXNrLmM6MjU3OQorbXNnaWQgIk5DIgorbXNnc3RyICJOQyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU4NworbXNnaWQgIlByaS9Mb2ciCittc2dzdHIgIkNow61uaC9Mw7Rnw61jIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gKCUwMlgpIgorbXNnc3RyICJLaMO0bmcgcsO1ICglMDJYKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY2MworIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIERyaXZlOiAlcyIKK21zZ3N0ciAi4buUIMSRxKlhOiAlcyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3MAorIywgYy1mb3JtYXQKK21zZ2lkICJTaXplOiAlbGxkIGJ5dGVzLCAlbGxkIE1CIgorbXNnc3RyICJLw61jaCBj4buhOiAlbGxkIGJ5dGUsICVsbGQgTUIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZC4lbGxkIEdCIgorbXNnc3RyICJLw61jaCBj4buhOiAlbGxkIGJ5dGUsICVsbGQuJWxsZCBHQiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY3NworIywgYy1mb3JtYXQKK21zZ2lkICJIZWFkczogJWQgICBTZWN0b3JzIHBlciBUcmFjazogJWQgICBDeWxpbmRlcnM6ICVsbGQiCittc2dzdHIgIsSQ4bqndSDEkeG7jWM6ICVkIFLDo25oIGdoaSBt4buXaSByw6NuaDogJWQgSMOsbmggdHLhu6UgOiAlbGxkIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgxIGxvZ2luLXV0aWxzL2NoZm4uYzozNzcKK21zZ2lkICJOYW1lIgorbXNnc3RyICJUw6puIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgyCittc2dpZCAiRmxhZ3MiCittc2dzdHIgIkPhu50iCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODMKK21zZ2lkICJQYXJ0IFR5cGUiCittc2dzdHIgIkxv4bqhaSBwaMOibiB2w7luZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY4NAorbXNnaWQgIkZTIFR5cGUiCittc2dzdHIgIkxv4bqhaSBo4buHIHRo4buRbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODUKK21zZ2lkICJbTGFiZWxdIgorbXNnc3RyICJbTmjDo25dIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg3Cittc2dpZCAiICAgIFNlY3RvcnMiCittc2dzdHIgIiAgICBSw6NuaCBnaGkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODkKK21zZ2lkICIgIEN5bGluZGVycyIKK21zZ3N0ciAiICBIw6xuaCB0cuG7pSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MQorbXNnaWQgIiAgU2l6ZSAoTUIpIgorbXNnc3RyICIgIEvDrWNoIGPhu6EgKE1CKSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MworbXNnaWQgIiAgU2l6ZSAoR0IpIgorbXNnc3RyICIgIEvDrWNoIGPhu6EgKEdCKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIkJvb3RhYmxlIgorbXNnc3RyICJDw7MgdGjhu4Mga2jhu59pIMSR4buZbmciCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDgKK21zZ2lkICJUb2dnbGUgYm9vdGFibGUgZmxhZyBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIkLhurd0IHThuq90IGto4bqjIG7Eg25nIGto4bufaSDEkeG7mW5nIGPhu6dhIHBow6JuIHbDuW5nIGhp4buHbiB0aOG7nWkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUiCittc2dzdHIgIlhvw6EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICJYb8OhIHBow6JuIHbDuW5nIGhp4buHbiB0aOG7nWkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJHZW9tZXRyeSIKK21zZ3N0ciAiQ+G6pXUgdHLDumMiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJDaGFuZ2UgZGlzayBnZW9tZXRyeSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiVGhheSDEkeG7lWkgY+G6pXUgdHLDumMgxJHEqWEgKGNo4buJIGTDoG5oIGNobyBuZ8aw4budaSBjw7Mga2luaCBuZ2hp4buHbSkiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTEKK21zZ2lkICJIZWxwIgorbXNnc3RyICJUcuG7oyBnacO6cCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICJIaeG7g24gdGjhu4sgbcOgbiBow6xuaCB0cuG7oyBnacO6cCIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MgorbXNnaWQgIk1heGltaXplIgorbXNnc3RyICJM4bubbiBuaOG6pXQiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSBkaXNrIHVzYWdlIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiIgorIsSQ4bq3dCBwaMOibiB2w7luZyBoaeG7h24gdGjhu51pIGTDuW5nIHbDuW5nIGzhu5tuIG5o4bqldCBjw7MgdGjhu4MgdHLDqm4gxJHEqWEgKGNo4buJIGTDoG5oIGNobyAiCisibmfGsOG7nWkgY8OzIGtpbmggbmdoaeG7h20pIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiTmV3IgorbXNnc3RyICJN4bubaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIkNyZWF0ZSBuZXcgcGFydGl0aW9uIGZyb20gZnJlZSBzcGFjZSIKK21zZ3N0ciAiVOG6oW8gbeG7mXQgcGjDom4gdsO5bmcgbeG7m2kgdOG7qyB2w7luZyDEkcSpYSB0cuG7kW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQiCittc2dzdHIgIkluIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICJJbiBi4bqjbmcgcGjDom4gdsO5bmcgcmEgbcOgbiBow6xuaCBoYXkgZ2hpIHbDoG8gdOG6rXAgdGluIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCIKK21zZ3N0ciAiVGhvw6F0IgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU1Cittc2dpZCAiUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIlRob8OhdCBjaMawxqFuZyB0csOsbmggdsOgIGtow7RuZyBnaGkgbOG6oWkgYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAiTG/huqFpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAiVGhheSDEkeG7lWkga2nhu4N1IGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gKERPUywgTGludXgsIE9TLzIgdi52Li4uKSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIlVuaXRzIgorbXNnc3RyICLEkMahbiB24buLIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiQ2hhbmdlIHVuaXRzIG9mIHRoZSBwYXJ0aXRpb24gc2l6ZSBkaXNwbGF5IChNQiwgc2VjdCwgY3lsKSIKK21zZ3N0ciAiVGhheSDEkeG7lWkgxJHGoW4gduG7iyBoaeG7h24gdGjhu4sga8OtY2ggY+G7oSBwaMOibiB2w7luZyAoTUIsIHLDo25oIGdoaSwgdHLhu6UpIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU4Cittc2dpZCAiV3JpdGUiCittc2dzdHIgIkdoaSIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrICh0aGlzIG1pZ2h0IGRlc3Ryb3kgZGF0YSkiCittc2dzdHIgIkdoaSBi4bqjbmcgcGjDom4gdsO5bmcgbMOqbiDEkcSpYSAoY8OzIHRo4buDIGjhu6d5IGThu68gbGnhu4d1KSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgwNQorbXNnaWQgIkNhbm5vdCBtYWtlIHRoaXMgcGFydGl0aW9uIGJvb3RhYmxlIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgbMOgbSBjaG8gcGjDom4gdsO5bmcgY8OzIHRo4buDIGto4bufaSDEkeG7mW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyODE1Cittc2dpZCAiQ2Fubm90IGRlbGV0ZSBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIktow7RuZyB0aOG7gyB4w7NhIG3hu5l0IHBow6JuIHbDuW5nIHLhu5duZyIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgdMSDbmcga8OtY2ggY+G7oSBsw6puIGzhu5tuIG5o4bqldCBwaMOibiB2w7luZyBuw6B5IgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ1Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgdW51c2FibGUiCittc2dzdHIgIlBow6JuIHbDuW5nIG7DoHkga2jDtG5nIHRo4buDIHPhu60gZOG7pW5nIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ3Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgYWxyZWFkeSBpbiB1c2UiCittc2dzdHIgIlBow6JuIHbDuW5nIG7DoHkgxJHDoyDEkcaw4bujYyBz4butIGThu6VuZyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgdGhheSDEkeG7lWkgbG/huqFpIGPhu6dhIG3hu5l0IHBow6JuIHbDuW5nIHLhu5duZyIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg5MSBmZGlzay9jZmRpc2suYzoyODk3Cittc2dpZCAiTm8gbW9yZSBwYXJ0aXRpb25zIgorbXNnc3RyICJLaMO0bmcgY8OzIHRow6ptIHBow6JuIHbDuW5nIG7DoG8gbuG7r2EiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MDQKK21zZ2lkICJJbGxlZ2FsIGNvbW1hbmQiCittc2dzdHIgIkzhu4duaCBj4bqlbSIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkxNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMiBLZXZpbiBFLiBNYXJ0aW4gJiBhZWJcbiIKK21zZ3N0ciAiVMOhYyBxdXnhu4FuIMKpIG7Eg20gMTk5NC0yMDAyIGPhu6dhIEtldmluIEUuIE1hcnRpbiAmIGFlYlxuIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyJQcmludCB2ZXJzaW9uOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJQcmludCBwYXJ0aXRpb24gdGFibGU6XG4iCisiICAgICAgICAlcyAtUCB7cnxzfHR9IFtvcHRpb25zXSBkZXZpY2VcbiIKKyJJbnRlcmFjdGl2ZSB1c2U6XG4iCisiICAgICAgICAlcyBbb3B0aW9uc10gZGV2aWNlXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyItYTogVXNlIGFycm93IGluc3RlYWQgb2YgaGlnaGxpZ2h0aW5nO1xuIgorIi16OiBTdGFydCB3aXRoIGEgemVybyBwYXJ0aXRpb24gdGFibGUsIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcHQgZnJvbSBkaXNrO1xuIgorIi1jIEMgLWggSCAtcyBTOiBPdmVycmlkZSB0aGUga2VybmVsJ3MgaWRlYSBvZiB0aGUgbnVtYmVyIG9mIGN5bGluZGVycyxcbiIKKyIgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBoZWFkcyBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiU+G7rSBk4bulbmc6XG4iCisiSGnhu4duIHPhu5EgcGhpw6puIGLhuqNuOlxuIgorIiAgICAgICAgJXMgLXZcbiIKKyJIaeG7h24gYuG6o25nIHBow6JuIHbDuW5nOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbdMO5eSBjaOG7jW5dIHRoaeG6v3QgYuG7i1xuIgorIkTDuW5nIHTGsMahbmcgdMOhYzpcbiIKKyIgICAgICAgICVzIFt0w7l5IGNo4buNbl0gdGhp4bq/dCBi4buLXG4iCisiXG4iCisiVMO5eSBjaOG7jW46XG4iCisiLWE6IHPhu60gZOG7pW5nIG3FqWkgdMOqbiB0aGF5IGNobyBoaeG7h24gc8Ohbmc7XG4iCisiLXo6IEto4bufaSDEkeG7mW5nIHbhu5tpIGLhuqNuZyBwaMOibiB2w7luZyBy4buXbmcgdGhheSB2w6wgxJHhu41jIGLhuqNuZyBwaMOibiB2w7luZyB04burIMSRxKlhO1xuIgorIi1jIEMgLWggSCAtcyBTOiBWaeG6v3QgY2jDqG4gbMOqbiBz4buRIGjDrG5oIHRy4bulLCBz4buRIMSR4bqndSDEkeG7jWMgdsOgIHPhu5FcbiIKKyIgICAgICAgICAgICAgICAgcsOjbmggZ2hpL3LDo25oIHRoZW8gcXVhbiBuaeG7h20gY+G7p2EgbmjDom4gTGludXguXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrYWl4bGFiZWwuYzoyNworbXNnaWQgIiIKKyJcbiIKKyJcdFRoZXJlIGlzIGEgdmFsaWQgQUlYIGxhYmVsIG9uIHRoaXMgZGlzay5cbiIKKyJcdFVuZm9ydHVuYXRlbHkgTGludXggY2Fubm90IGhhbmRsZSB0aGVzZVxuIgorIlx0ZGlza3MgYXQgdGhlIG1vbWVudC4gIE5ldmVydGhlbGVzcyBzb21lXG4iCisiXHRhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCisiXHQzLiBCZWZvcmUgZGVsZXRpbmcgdGhpcyBwaHlzaWNhbCB2b2x1bWUgYmUgc3VyZVxuIgorIlx0ICAgdG8gcmVtb3ZlIHRoZSBkaXNrIGxvZ2ljYWxseSBmcm9tIHlvdXIgQUlYXG4iCisiXHQgICBtYWNoaW5lLiAgKE90aGVyd2lzZSB5b3UgYmVjb21lIGFuIEFJWHBlcnQpLiIKK21zZ3N0ciAiIgorIlxuIgorIlx0Q8OzIG3hu5l0IG5ow6NuIEFJWCBo4bujcCBs4buHIHRyw6puIMSRxKlhIG7DoHkuXG4iCisiXHRLaMO0bmcgbWF5IGzDoCBoaeG7h24gdOG6oWkgTGludXgga2jDtG5nIHRo4buDIMSRaeG7gXUga2hp4buDblxuIgorIlx0bmjhu69uZyDEkcSpYSBuw6B5LiAgVHV5IG5oacOqbiBt4buZdCB2w6BpXG4iCisiXHRs4budaSBraHV5w6puOlxuIgorIlx0MS4gZmRpc2sgc+G6vSBo4buneSBo4bq/dCBu4buZaSBkdW5nIMSRxKlhIGtoaSBnaGkuXG4iCisiXHQyLiBD4bqnbiDEkeG6o20gYuG6o28gbMOgIMSRxKlhIG7DoHkgS0jDlE5HIHBo4bqjaSBsw6AgcGjhuqduXG4iCisiXHQgICBxdWFuIHRy4buNbmcgY+G7p2EgbeG7mXQgbmjDs20gxJHEqWEuIChOw7NpIGPDoWNoIGtow6FjIGLhuqFuIGPDs1xuIgorIlx0ICAgdGjhu4MgeMOzYSBjw6FjIMSRxKlhIGtow6FjLCBu4bq/dSBraMO0bmcgdOG6oW8gZ8awxqFuZy4pXG4iCisiXHQzLiBUcsaw4bubYyBraGkgeMOzYSBi4buZIMSRxKlhIHbhuq10IGzDvSBuw6B5LCBj4bqnbiBwaOG6o2lcbiIKKyJcdCAgIHjDs2EgxJHEqWEgbeG7mXQgY8OhY2ggbMO0Z8OtYyB04burIG3DoXkgQUlYLlxuIgorIlx0ICAgKE7Ds2kgY8OhY2gga2jDoWMgYuG6oW4gdHLhu58gdGjDoG5oIEFJWHBlcnRcbiIKKyJcdFx0W2NoxqFpIGNo4buvIHbhu5tpIFwiZXhwZXJ0XCIgOykgXSkuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJCU0QgbGFiZWwgZm9yIGRldmljZTogJXNcbiIKK21zZ3N0ciAiIgorIlxuIgorIk5ow6NuIEJTRCBjaG8gdGhp4bq/dCBi4buLOiAlc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTI4IGZkaXNrL2ZkaXNrLmM6Mzk0IGZkaXNrL2ZkaXNrLmM6NDEzCisjOiBmZGlzay9mZGlzay5jOjQzMSBmZGlzay9mZGlzay5jOjQzOCBmZGlzay9mZGlzay5jOjQ2MSBmZGlzay9mZGlzay5jOjQ3OQorIzogZmRpc2svZmRpc2suYzo0OTUgZmRpc2svZmRpc2suYzo1MTEKK21zZ2lkICJDb21tYW5kIGFjdGlvbiIKK21zZ3N0ciAiVMOhYyBk4bulbmcgY+G7p2EgY8OidSBs4buHbmgiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMjkKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgZCAgIHjDs2EgbeG7mXQgcGjDom4gdsO5bmcgQlNEIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMwCittc2dpZCAiICAgZSAgIGVkaXQgZHJpdmUgZGF0YSIKK21zZ3N0ciAiICAgZSAgIHPhu61hIGThu68gbGnhu4d1IOG7lSDEkcSpYSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMQorbXNnaWQgIiAgIGkgICBpbnN0YWxsIGJvb3RzdHJhcCIKK21zZ3N0ciAiICAgaSAgIGPDoGkgxJHhurd0IHRyw6xuaCBraOG7n2kgxJHhu5luZyB04buxIG3hu5NpIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTMyCittc2dpZCAiICAgbCAgIGxpc3Qga25vd24gZmlsZXN5c3RlbSB0eXBlcyIKK21zZ3N0ciAiICAgbCAgIGxp4buHdCBrw6ogbG/huqFpIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gxJHDoyBiaeG6v3QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzMgZmRpc2svZmRpc2suYzo0MDAgZmRpc2svZmRpc2suYzo0MTkKKyM6IGZkaXNrL2ZkaXNrLmM6NDMyIGZkaXNrL2ZkaXNrLmM6NDQ0IGZkaXNrL2ZkaXNrLmM6NDY5IGZkaXNrL2ZkaXNrLmM6NDg2CisjOiBmZGlzay9mZGlzay5jOjUwMiBmZGlzay9mZGlzay5jOjUyMAorbXNnaWQgIiAgIG0gICBwcmludCB0aGlzIG1lbnUiCittc2dzdHIgIiAgIG0gICBoaeG7g24gdGjhu4sgdHLDrG5oIMSRxqFuIG7DoHkiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzQKK21zZ2lkICIgICBuICAgYWRkIGEgbmV3IEJTRCBwYXJ0aXRpb24iCittc2dzdHIgIiAgIG4gICB0aMOqbSBt4buZdCBwaMOibiB2w7luZyBCU0QgbeG7m2kiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgcCAgIGluIHJhIGLhuqNuZyBwaMOibiB2w7luZyBCU0QiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzYgZmRpc2svZmRpc2suYzo0MDQgZmRpc2svZmRpc2suYzo0MjMKKyM6IGZkaXNrL2ZkaXNrLmM6NDM0IGZkaXNrL2ZkaXNrLmM6NDQ4IGZkaXNrL2ZkaXNrLmM6NDcxIGZkaXNrL2ZkaXNrLmM6NDg4CisjOiBmZGlzay9mZGlzay5jOjUwNCBmZGlzay9mZGlzay5jOjUyMgorbXNnaWQgIiAgIHEgICBxdWl0IHdpdGhvdXQgc2F2aW5nIGNoYW5nZXMiCittc2dzdHIgIiAgIHEgICB0aG/DoXQgdsOgIGtow7RuZyBnaGkgbmjhu5sgY8OhYyB0aGF5IMSR4buVaSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzNyBmZGlzay9mZGlzay5jOjQ3MiBmZGlzay9mZGlzay5jOjQ4OQorIzogZmRpc2svZmRpc2suYzo1MDUgZmRpc2svZmRpc2suYzo1MjMKK21zZ2lkICIgICByICAgcmV0dXJuIHRvIG1haW4gbWVudSIKK21zZ3N0ciAiICAgciAgIHRy4bufIGzhuqFpIHRyw6xuaCDEkcahbiBjaMOtbmgiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzgKK21zZ2lkICIgICBzICAgc2hvdyBjb21wbGV0ZSBkaXNrbGFiZWwiCittc2dzdHIgIiAgIHMgICBoaeG7g24gdGjhu4sgbmjDo24gxJHEqWEgxJHhuqd5IMSR4bunIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM5Cittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIGZpbGVzeXN0ZW0gaWQiCittc2dzdHIgIiAgIHQgICB0aGF5IMSR4buVaSBtw6MgaGnhu4d1IGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gY+G7p2EgbeG7mXQgcGjDom4gdsO5bmciCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDAKK21zZ2lkICIgICB1ICAgY2hhbmdlIHVuaXRzIChjeWxpbmRlcnMvc2VjdG9ycykiCittc2dzdHIgIiAgIHUgICB0aGF5IMSR4buVaSDEkcahbiB24buLICh0cuG7pS9yw6NuaCBnaGkpIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQxCittc2dpZCAiICAgdyAgIHdyaXRlIGRpc2tsYWJlbCB0byBkaXNrIgorbXNnc3RyICIgICB3ICAgZ2hpIG5o4bubIG5ow6NuIMSRxKlhIGzDqm4g4buVIMSRxKlhIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQzCittc2dpZCAiICAgeCAgIGxpbmsgQlNEIHBhcnRpdGlvbiB0byBub24tQlNEIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgeCAgIGxpw6puIGvhur90IHBow6JuIHbDuW5nIEJTRCB04bubaSBwaMOibiB2w7luZyBraMO0bmcgcGjhuqNpIEJTRCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJXMgaGFzIGludmFsaWQgc3RhcnRpbmcgc2VjdG9yIDAuXG4iCittc2dzdHIgIlBow6JuIHbDuW5nICVzIGPDsyBt4buZdCByw6NuaCBnaGkgYuG6r3QgxJHhuqd1IDAgYuG7iyBs4buXaS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIGRpc2tsYWJlbCBvZiAlcyBhdCBzZWN0b3IgJWQuXG4iCittc2dzdHIgIsSQ4buNYyBuaMOjbiDEkcSpYSBj4bunYSAlcyB04bqhaSByw6NuaCBnaGkgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIktow7RuZyBjw7MgcGjDom4gdsO5bmcgKkJTRCB0csOqbiAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjIwMworbXNnaWQgIkJTRCBkaXNrbGFiZWwgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiQ8OidSBs4buHbmggbmjDo24gxJHEqWEgQlNEIChtIMSR4buDIHhlbSB0cuG7oyBnacO6cCk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjI4MyBmZGlzay9mZGlzay5jOjIzMjggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzOAorIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaXJzdCAlcyIKK21zZ3N0ciAiJXMgxJHhuqd1IHRpw6puIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlcyBvciArc2l6ZSBvciArc2l6ZU0gb3IgK3NpemVLIgorbXNnc3RyICIlcyBjdeG7kWkgaGF5ICtzaXplIGhheSArc2l6ZU0gaGF5ICtzaXplSyIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlc1xuIgorbXNnc3RyICJsb+G6oWk6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJWRcbiIKK21zZ3N0ciAibG/huqFpOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpc2s6ICUuKnNcbiIKK21zZ3N0ciAixJHEqWE6ICUuKnNcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsYWJlbDogJS4qc1xuIgorbXNnc3RyICJuaMOjbjogJS4qc1xuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZsYWdzOiIKK21zZ3N0ciAiY+G7nSA6IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiByZW1vdmFibGUiCittc2dzdHIgIiBy4budaSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNgorIywgYy1mb3JtYXQKK21zZ2lkICIgZWNjIgorbXNnc3RyICIgZWNjIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiBiYWRzZWN0IgorbXNnc3RyICIgcsOjbmggZ2hpIHjhuqV1IgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMyCisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzL3NlY3RvcjogJWxkXG4iCittc2dzdHIgImJ5dGUvcuG6o25oIGdoaTogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VjdG9ycy90cmFjazogJWxkXG4iCittc2dzdHIgInLDo25oIGdoaS9yw6NuaDogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAicsOjbmgvdHLhu6UgOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWN0b3JzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAicsOjbmggZ2hpL3Ry4bulIDogJWxkXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAidHLhu6UgOiAlbGRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJycG06ICVkXG4iCittc2dzdHIgInbDsm5nIG3hu5dpIHBow7p0OiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgImludGVybGVhdmU6ICVkXG4iCittc2dzdHIgInhlbiBr4bq9OiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM5CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrc2tldzogJWRcbiIKK21zZ3N0ciAixJHhu5kgbOG7h2NoIHLDo25oOiAlZFxuIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQwCisjLCBjLWZvcm1hdAorbXNnaWQgImN5bGluZGVyc2tldzogJWRcbiIKK21zZ3N0ciAixJDhu5kgbOG7h2NoIHRy4bulIDogJWRcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiYuG6rXQgxJHhuqd1IMSR4buNYzogJWxkXHRcdCMgbWlsbGkgZ2nDonlcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MworIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrOiAlbGRcdCMgbWlsbGlzZWNvbmRzXG4iCittc2dzdHIgInTDrG0gbsahaSB04burIHLDo25oIHThu5tpIHLDo25oOiAlbGRcdCMgbWlsbGkgZ2nDonlcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0NQorIywgYy1mb3JtYXQKK21zZ2lkICJkcml2ZWRhdGE6ICIKK21zZ3N0ciAiZOG7ryBsaeG7h3Ug4buVIMSRxKlhOiAiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKyJcbiIKKyIlZCBwaMOibiB2w7luZzpcbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIgorIiMgICAgICAgxJHhuqd1ICAgICAgICBjdeG7kWkgICAgIGvDrWNoIGPhu6EgICAgIGjhu4d0aOG7kW5nICAgW2Phu6FfdOG7h3AgY+G7oV9raOG7kWkgICBjcGddXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQwNworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIGRpc2tsYWJlbCB0byAlcy5cbiIKK21zZ3N0ciAiVmnhur90IG5ow6NuIMSRxKlhIHbDoG8gJXMuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MTkgZmRpc2svZmRpc2tic2RsYWJlbC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBjb250YWlucyBubyBkaXNrbGFiZWwuXG4iCittc2dzdHIgIiVzIGtow7RuZyBjaOG7qWEgbmjDo24gxJHEqWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MjYKK21zZ2lkICJEbyB5b3Ugd2FudCB0byBjcmVhdGUgYSBkaXNrbGFiZWw/ICh5L24pICIKK21zZ3N0ciAiQuG6oW4gY8OzIG114buRbiB04bqhbyBt4buZdCBuaMOjbiDEkcSpYT8gKGMvaykgIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY2Cittc2dpZCAiYnl0ZXMvc2VjdG9yIgorbXNnc3RyICJieXRlL3LDo25oIGdoaSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NworbXNnaWQgInNlY3RvcnMvdHJhY2siCittc2dzdHIgInLDo25oIGdoaS9yw6NuaCIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2OAorbXNnaWQgInRyYWNrcy9jeWxpbmRlciIKK21zZ3N0ciAicsOjbmgvdHLhu6UiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjkgZmRpc2svZmRpc2suYzo3NDAgZmRpc2svZmRpc2suYzoxNTkyCisjOiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJjeWxpbmRlcnMiCittc2dzdHIgInRy4bulIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDc2Cittc2dpZCAic2VjdG9ycy9jeWxpbmRlciIKK21zZ3N0ciAicsOjbmggZ2hpL3Ry4bulIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgPD0gc2VjdG9ycy90cmFjayAqIHRyYWNrcy9jeWxpbmRlciAoZGVmYXVsdCkuXG4iCittc2dzdHIgIlBo4bqjaSDiiaQgc+G7kSByw6NuaCBnaGkvcsOjbmggKiBz4buRIHLDo25oL3Ry4bulICht4bq3YyDEkeG7i25oKS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MgorbXNnaWQgInJwbSIKK21zZ3N0ciAidsOybmcgbeG7l2kgcGjDunQiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODMKK21zZ2lkICJpbnRlcmxlYXZlIgorbXNnc3RyICJ4ZW4ga+G6vSIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAixJHhu5kgbOG7h2NoIHLDo25oIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg1Cittc2dpZCAiY3lsaW5kZXJza2V3IgorbXNnc3RyICLEkeG7mSBs4buHY2ggdHLhu6UiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODYKK21zZ2lkICJoZWFkc3dpdGNoIgorbXNnc3RyICJi4bqtdCDEkeG6p3UgxJHhu41jIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg3Cittc2dpZCAidHJhY2stdG8tdHJhY2sgc2VlayIKK21zZ3N0ciAidMOsbSBuxqFpIHThu6sgcsOjbmggdOG7m2kgcsOjbmgiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKK21zZ3N0ciAiVHLDrG5oIG3hu5NpOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU1MworIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgb3ZlcmxhcHMgd2l0aCBkaXNrIGxhYmVsIVxuIgorbXNnc3RyICJUcsOsbmggbeG7k2kgxJHDqCBsw6puIG5oYXUgduG7m2kgbmjDo24gxJHEqWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1NzQgZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NgorIywgYy1mb3JtYXQKK21zZ2lkICJCb290c3RyYXAgaW5zdGFsbGVkIG9uICVzLlxuIgorbXNnc3RyICJUcsOsbmggbeG7k2kgxJHGsOG7o2MgY8OgaSB0csOqbiAlcy5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gKGEtJWMpOiAiCittc2dzdHIgIlBow6JuIHbDuW5nIChhLSVjKTogIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NjE3IGZkaXNrL2ZkaXNrLmM6MjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGl0aW9ucyBoYXMgYmVlbiBjcmVhdGVkXG4iCittc2dzdHIgIsSQw6MgdOG6oW8gcmEgc+G7kSBwaMOibiB2w7luZyBs4bubbiBuaOG6pXQgY2hvIHBow6lwXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMuXG4iCittc2dzdHIgIlBow6JuIHbDuW5nIG7DoHkgxJHDoyBjw7MuXG4iCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogdG9vIG1hbnkgcGFydGl0aW9ucyAoJWQsIG1heGltdW0gaXMgJWQpLlxuIgorbXNnc3RyICJD4bqjbmggYsOhbyA6IGPDsyBxdcOhIG5oaeG7gXUgcGjDom4gdsO5bmcgKCVkLCB04buRaSDEkWEgbMOgICVkKS5cbiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiIgorIlxuIgorIsSQ4buTbmcgYuG7mSBjw6FjIMSRxKlhLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NgorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgZmRpc2sgW29wdGlvbnNdIDxkaXNrPiAgICBjaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisiIGZkaXNrIFtvcHRpb25zXSAtbCA8ZGlzaz4gbGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyIgZmRpc2sgLXMgPHBhcnRpdGlvbj4gICAgICBnaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1iIDxzaXplPiAgICAgICAgICAgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGhlbHBcbiIKKyIgLXUgPHNpemU+ICAgICAgICAgICAgICAgICBnaXZlIHNpemVzIGluIHNlY3RvcnMgaW5zdGVhZCBvZiBjeWxpbmRlcnNcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB2ZXJzaW9uXG4iCisiIC1DIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVyc1xuIgorIiAtSCA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBoZWFkc1xuIgorIiAtUyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFja1xuIgorIlxuIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6XG4iCisiIGZkaXNrIFt0deG7s19jaOG7jW5dIDzEkcSpYT4gICAgdGhheSDEkeG7lWkgYuG6o25nIHBow6JuIHbDuW5nXG4iCisiIGZkaXNrIFt0deG7s19jaOG7jW5dIC1sIDzEkcSpYT4gbGnhu4d0IGvDqiAoY8OhYykgYuG6o25nIHBow6JuIHbDuW5nXG4iCisiIGZkaXNrIC1zIDxwaMOibl92w7luZz4gICAgICDEkcawYSByYSAoY8OhYykga8OtY2ggY+G7oSBwaMOibiB2w7luZyB0aGVvIGto4buRaVxuIgorIlxuIgorIlR14buzIGNo4buNbjpcbiIKKyIgLWIgPGvDrWNoX2Phu6E+ICAgICAgICAgICAgICAgICBrw61jaCBj4buhIHLDo25oIGdoaSAoNTEyLCAxMDI0LCAyMDQ4IGhheSA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHThuq90IGNo4bq/IMSR4buZIHTGsMahbmcgdGjDrWNoIHbhu5tpIERPU1xuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIGhp4buDbiB0aOG7iyB0cuG7oyBnacO6cFxuIgorIiAtdSA8a8OtY2hfY+G7oT4gICAgICAgICAgICAgICAgIMSRxrBhIHJhIGvDrWNoIGPhu6EgdGhlbyByw6NuaCBnaGkgdGhheSBjaG8gdHLhu6VcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBoaeG7g24gdGjhu4sgc+G7kSB0aOG7qSB04buxIHBoacOqbiBi4bqjblxuIgorIiAtQyA8c+G7kT4gICAgICAgICAgICAgICBnaGkgcsO1IHPhu5EgY8OhYyB0cuG7pVxuIgorIiAtSCA8c+G7kT4gICAgICAgICAgICAgICBnaGkgcsO1IHPhu5EgY8OhYyDEkeG6p3VcbiIKKyIgLVMgPHPhu5E+ICAgICAgICAgICAgICAgZ2hpIHLDtSBz4buRIGPDoWMgcsOjbmggZ2hpIHRyw6puIG3hu5dpIHLDo25oXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzXG4iCittc2dzdHIgIktow7RuZyB0aOG7gyBt4bufICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byByZWFkICVzXG4iCittc2dzdHIgIktow7RuZyB0aOG7gyDEkeG7jWMgJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNlZWsgb24gJXNcbiIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIHTDrG0gbsahaSB0csOqbiAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgJXNcbiIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGdoaSAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCTEtHRVRTSVpFIGlvY3RsIGZhaWxlZCBvbiAlc1xuIgorbXNnc3RyICJCTEtHRVRTSVpFIGlvY3RsIGtow7RuZyB0aMOgbmggY8O0bmcgdHLDqm4gJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIktow7RuZyB0aOG7gyBwaMOibiBwaOG7kWkgdGjDqm0gYuG7mSBuaOG7m1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI5NgorbXNnaWQgIkZhdGFsIGVycm9yXG4iCittc2dzdHIgIkzhu5dpIG7hurduZ1xuIgorCisjOiBmZGlzay9mZGlzay5jOjM5NQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSByZWFkIG9ubHkgZmxhZyIKK21zZ3N0ciAiICAgYSAgIGLhuq10L3Thuq90IGPhu50gY2jhu4kgxJHhu41jIgorCisjOiBmZGlzay9mZGlzay5jOjM5NiBmZGlzay9mZGlzay5jOjQ0MAorbXNnaWQgIiAgIGIgICBlZGl0IGJzZCBkaXNrbGFiZWwiCittc2dzdHIgIiAgIGIgICBz4butYSBuaMOjbiDEkcSpYSBic2QiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk3Cittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgbW91bnRhYmxlIGZsYWciCittc2dzdHIgIiAgIGMgICBi4bqtdCBj4budIGPDsyB0aOG7gyBn4bqvbiIKKworIzogZmRpc2svZmRpc2suYzozOTggZmRpc2svZmRpc2suYzo0MTcgZmRpc2svZmRpc2suYzo0NDIKK21zZ2lkICIgICBkICAgZGVsZXRlIGEgcGFydGl0aW9uIgorbXNnc3RyICIgICBkICAgeMOzYSBt4buZdCBwaMOibiB2w7luZyIKKworIzogZmRpc2svZmRpc2suYzozOTkgZmRpc2svZmRpc2suYzo0MTggZmRpc2svZmRpc2suYzo0NDMKK21zZ2lkICIgICBsICAgbGlzdCBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgIGwgICBoaeG7g24gdGjhu4sgbG/huqFpIHBow6JuIHbDuW5nIMSRw6MgYmnhur90IgorCisjOiBmZGlzay9mZGlzay5jOjQwMSBmZGlzay9mZGlzay5jOjQyMCBmZGlzay9mZGlzay5jOjQ0NQorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgcGFydGl0aW9uIgorbXNnc3RyICIgICBuICAgdGjDqm0gbeG7mXQgcGjDom4gdsO5bmcgbeG7m2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAyIGZkaXNrL2ZkaXNrLmM6NDIxIGZkaXNrL2ZkaXNrLmM6NDMzIGZkaXNrL2ZkaXNrLmM6NDQ2Cittc2dpZCAiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBvICAgdOG6oW8gbeG7mXQgYuG6o25nIHBow6JuIHbDuW5nIERPUyBy4buXbmciCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorbXNnaWQgIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBwICAgaW4gcmEgYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9mZGlzay5jOjQwNSBmZGlzay9mZGlzay5jOjQyNCBmZGlzay9mZGlzay5jOjQzNSBmZGlzay9mZGlzay5jOjQ0OQorbXNnaWQgIiAgIHMgICBjcmVhdGUgYSBuZXcgZW1wdHkgU3VuIGRpc2tsYWJlbCIKK21zZ3N0ciAiICAgcyAgIHThuqFvIG3hu5l0IG5ow6NuIMSRxKlhIFN1biBy4buXbmciCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA2IGZkaXNrL2ZkaXNrLmM6NDI1IGZkaXNrL2ZkaXNrLmM6NDUwCittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIHN5c3RlbSBpZCIKK21zZ3N0ciAiICAgdCAgIHRoYXkgxJHhu5VpIGlkIGPhu6dhIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiICAgdSAgIHRoYXkgxJHhu5VpIMSRxqFuIHbhu4sgaGnhu4NuIHRo4buLIgorCisjOiBmZGlzay9mZGlzay5jOjQwOCBmZGlzay9mZGlzay5jOjQyNyBmZGlzay9mZGlzay5jOjQ1MiBmZGlzay9mZGlzay5jOjQ3NAorIzogZmRpc2svZmRpc2suYzo0OTEgZmRpc2svZmRpc2suYzo1MDcgZmRpc2svZmRpc2suYzo1MjUKK21zZ2lkICIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgIHYgICBraeG7g20gdHJhIGLhuqNuZyBwaMOibiB2w7luZyIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiAgIHcgICBnaGkgYuG6o25nIHBow6JuIHbDuW5nIGzDqm4gxJHEqWEgdsOgIHRob8OhdCIKKworIzogZmRpc2svZmRpc2suYzo0MTAgZmRpc2svZmRpc2suYzo0NTQKK21zZ2lkICIgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiICAgeCAgIGPDoWMgY2jhu6ljIG7Eg25nIG3hu58gcuG7mW5nIChjaOG7iSBkw6BuaCBjaG8gbmfGsOG7nWkgY8OzIGtpbmggbmdoaeG7h20pIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIgICBhICAgY2jhu41uIHBow6JuIHbDuW5nIGPDsyB0aOG7gyBraOG7n2kgxJHhu5luZyIKKworIzogZmRpc2svZmRpc2suYzo0MTUKK21zZ2lkICIgICBiICAgZWRpdCBib290ZmlsZSBlbnRyeSIKK21zZ3N0ciAiICAgYiAgIHNv4bqhbiB0aOG6o28gdOG6rXAgdGluIGto4bufaSDEkeG7mW5nIgorCisjOiBmZGlzay9mZGlzay5jOjQxNgorbXNnaWQgIiAgIGMgICBzZWxlY3Qgc2dpIHN3YXAgcGFydGl0aW9uIgorbXNnc3RyICIgICBjICAgY2jhu41uIHBow6JuIHbDuW5nIHRyYW8gxJHhu5VpIHNnaSIKKworIzogZmRpc2svZmRpc2suYzo0MzkKK21zZ2lkICIgICBhICAgdG9nZ2xlIGEgYm9vdGFibGUgZmxhZyIKK21zZ3N0ciAiICAgYSAgIGLhuq10L3Thuq90IGPhu50gY8OzIHRo4buDIGto4bufaSDEkeG7mW5nIgorCisjOiBmZGlzay9mZGlzay5jOjQ0MQorbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIGRvcyBjb21wYXRpYmlsaXR5IGZsYWciCittc2dzdHIgIiAgIGMgICBi4bqtdC904bqvdCBj4budIHTGsMahbmcgdGjDrWNoIHbhu5tpIGRvcyIKKworIzogZmRpc2svZmRpc2suYzo0NjIKK21zZ2lkICIgICBhICAgY2hhbmdlIG51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICIgICBhICAgdGhheSDEkeG7lWkgc+G7kSB0cuG7pSB4ZW4ga+G6vSIKKworIzogZmRpc2svZmRpc2suYzo0NjMgZmRpc2svZmRpc2suYzo0ODEgZmRpc2svZmRpc2suYzo0OTcgZmRpc2svZmRpc2suYzo1MTMKK21zZ2lkICIgICBjICAgY2hhbmdlIG51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIiAgIGMgICB0aGF5IMSR4buVaSBz4buRIHRy4bulIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NCBmZGlzay9mZGlzay5jOjQ4MiBmZGlzay9mZGlzay5jOjQ5OCBmZGlzay9mZGlzay5jOjUxNAorbXNnaWQgIiAgIGQgICBwcmludCB0aGUgcmF3IGRhdGEgaW4gdGhlIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiICAgZCAgIGluIHJhIGThu68gbGnhu4d1IHRow7QgdHJvbmcgYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NQorbXNnaWQgIiAgIGUgICBjaGFuZ2UgbnVtYmVyIG9mIGV4dHJhIHNlY3RvcnMgcGVyIGN5bGluZGVyIgorbXNnc3RyICIgICBlICAgdGhheSDEkeG7lWkgc+G7kSByw6NuaCBnaGkgZOG7sSBwaMOybmcgdHJvbmcgbeG7l2kgdHLhu6UiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY2IGZkaXNrL2ZkaXNrLmM6NDg1IGZkaXNrL2ZkaXNrLmM6NTAxIGZkaXNrL2ZkaXNrLmM6NTE4Cittc2dpZCAiICAgaCAgIGNoYW5nZSBudW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIiAgIGggICB0aGF5IMSR4buVaSBz4buRIMSR4bqndSDEkeG7jWMiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY3Cittc2dpZCAiICAgaSAgIGNoYW5nZSBpbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiICAgaSAgIHRoYXkgxJHhu5VpIGjhu4cgc+G7kSB4ZW4ga+G6vSIKKworIzogZmRpc2svZmRpc2suYzo0NjgKK21zZ2lkICIgICBvICAgY2hhbmdlIHJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICIgICBvICAgdGhheSDEkeG7lWkgdOG7kWMgxJHhu5kgcXVheSAocnBtKSIKKworIzogZmRpc2svZmRpc2suYzo0NzMgZmRpc2svZmRpc2suYzo0OTAgZmRpc2svZmRpc2suYzo1MDYgZmRpc2svZmRpc2suYzo1MjQKK21zZ2lkICIgICBzICAgY2hhbmdlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrIgorbXNnc3RyICIgICBzICAgdGhheSDEkeG7lWkgc+G7kSByw6NuaCBnaGkvcsOjbmgiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIgICB5ICAgdGhheSDEkeG7lWkgc+G7kSB0cuG7pSB24bqtdCBsw70iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiAgIGIgICBkaSBjaHV54buDbiBi4bqvdCDEkeG6p3UgY+G7p2EgZOG7ryBsaeG7h3UgdHJvbmcgbeG7mXQgcGjDom4gdsO5bmciCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgzIGZkaXNrL2ZkaXNrLmM6NDk5IGZkaXNrL2ZkaXNrLmM6NTE1Cittc2dpZCAiICAgZSAgIGxpc3QgZXh0ZW5kZWQgcGFydGl0aW9ucyIKK21zZ3N0ciAiICAgZSAgIGxp4buHdCBrw6ogY8OhYyBwaMOibiB2w7luZyBt4bufIHLhu5luZyIKKworIzogZmRpc2svZmRpc2suYzo0ODQgZmRpc2svZmRpc2suYzo1MDAgZmRpc2svZmRpc2suYzo1MTcKK21zZ2lkICIgICBnICAgY3JlYXRlIGFuIElSSVggKFNHSSkgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIgICBnICAgdOG6oW8gbeG7mXQgYuG6o25nIHBow6JuIHbDuW5nIElSSVggKFNHSSkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE2Cittc2dpZCAiICAgZiAgIGZpeCBwYXJ0aXRpb24gb3JkZXIiCittc2dzdHIgIiAgIGYgICBz4butYSB0aOG7qSB04buxIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9mZGlzay5jOjUxOQorbXNnaWQgIiAgIGkgICBjaGFuZ2UgdGhlIGRpc2sgaWRlbnRpZmllciIKK21zZ3N0ciAiICAgaSAgIHRoYXkgxJHhu5VpIMSR4buTIG5o4bqtbiBkaeG7h24gxJHEqWEiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IHNldCIKK21zZ3N0ciAiQuG6oW4gcGjhuqNpIMSR4bq3dCIKKworIzogZmRpc2svZmRpc2suYzo3MzYKK21zZ2lkICJoZWFkcyIKK21zZ3N0ciAixJHhuqd1IMSR4buNYyIKKworIzogZmRpc2svZmRpc2suYzo3MzggZmRpc2svZmRpc2suYzoxNTkyIGZkaXNrL3NmZGlzay5jOjkzMAorbXNnaWQgInNlY3RvcnMiCittc2dzdHIgInLDo25oIGdoaSIKKworIzogZmRpc2svZmRpc2suYzo3NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzJXMuXG4iCisiWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIGV4dHJhIGZ1bmN0aW9ucyBtZW51LlxuIgorbXNnc3RyICIiCisiJXMlcy5cbiIKKyJC4bqhbiBjw7MgdGjhu4MgbMOgbSB2aeG7h2MgbsOgeSB04burIHRyw6xuaCDEkcahbiBjaOG7qWMgbsSDbmcgbeG7nyBy4buZbmcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ1Cittc2dpZCAiIGFuZCAiCittc2dzdHIgIiB2w6AgIgorCisjOiBmZGlzay9mZGlzay5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogVGhlIHNpemUgb2YgdGhpcyBkaXNrIGlzICVkLiVkIFRCICglbGx1IGJ5dGVzKS5cbiIKKyJET1MgcGFydGl0aW9uIHRhYmxlIGZvcm1hdCBjYW4gbm90IGJlIHVzZWQgb24gZHJpdmVzIGZvciB2b2x1bWVzXG4iCisibGFyZ2VyIHRoYW4gKCVsbHUgYnl0ZXMpIGZvciAlZC1ieXRlIHNlY3RvcnMuIFVzZSBwYXJ0ZWQoMSkgYW5kIEdVSUQgXG4iCisicGFydGl0aW9uIHRhYmxlIGZvcm1hdCAoR1BUKS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkPhuqJOSCBCw4FPIDogxJHEqWEgbsOgeSBjw7Mga8OtY2ggY+G7oSAlZC4lZCBUQiAoJWxsdSBieXRlKS5cbiIKKyLEkOG7i25oIGThuqFuZyBi4bqjbmcgcGjDom4gdsO5bmcgRE9TIGtow7RuZyBkw7luZyDEkcaw4bujY1xuIgorInRyw6puIOG7lSDEkcSpYSBjw7Mga2jhu5FpIHRpbiBs4bubbiBoxqFuICglbGx1IGJ5dGUpIGNobyByw6NuaCBnaGkgJWQtYnl0ZS5cbiIKKyJIw6N5IGTDuW5nIGPDtG5nIGPhu6UgcGFydGVkKDEpIHbDoCDEkeG7i25oIGThuqFuZyBi4bqjbmcgcGjDom4gdsO5bmcgR1VJRCAoR1BUKS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzo3ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBkZXZpY2UgcHJlc2VudHMgYSBsb2dpY2FsIHNlY3RvciBzaXplIHRoYXQgaXMgc21hbGxlciB0aGFuXG4iCisidGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLiBBbGlnbmluZyB0byBhIHBoeXNpY2FsIHNlY3RvciAob3Igb3B0aW1hbFxuIgorIkkvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiVGhp4bq/dCBi4buLIMSRxrBhIHJhIG3hu5l0IGvDrWNoIGPhu6EgcsOjbmggZ2hpIGjhu6NwIGzDvVxuIgorInbhuqtuIG5o4buPIGjGoW4ga8OtY2ggY+G7oSByw6NuaCBnaGkgduG6rXQgbMO9LlxuIgorIsSQ4buDIHRyw6FuaCBoaeG7h3Ugc3XhuqV0IGLhu4sgZ2nhuqNtLCBjw7MgbsOqbiBz4bqvcCBow6BuZ1xuIgorInbhu5tpIG3hu5l0IGJpw6puIGdp4bubaSBrw61jaCBj4buhIHLDo25oIGdoaSB24bqtdCBsw70gKGhheSBWL1IgdOG7kWkgxrB1KS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0b1xuIgorIiAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSIKK21zZ3N0ciAiIgorIlxuIgorIkPhuqJOSCBCw4FPIDogY2jhur8gxJHhu5kgdMawxqFuZyB0aMOtY2ggduG7m2kgRE9TIGdp4budIGLhu4sgcGjhuqNuIMSR4buRaS5cbiIKKyJcdFLhuqV0IGtodXnDqm4gYuG6oW4gdOG6r3QgY2jhur8gxJHhu5kgbsOgeSAobOG7h25oIMKrIGMgwrspLiIKKworIzogZmRpc2svZmRpc2suYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG9cbiIKKyIgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuXG4iCittc2dzdHIgIiIKKyIgdsOgIHRoYXkgxJHhu5VpIMSRxqFuIHbhu4sgaGnhu4NuIHRo4buLXG4iCisiXHRzYW5nIHLDo25oIGdoaSAobOG7h25oIMKrIHUgwrspLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjgwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogY3lsaW5kZXJzIGFzIGRpc3BsYXkgdW5pdHMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBjb21tYW5kICd1JyB0b1xuIgorIiAgICAgICAgIGNoYW5nZSB1bml0cyB0byBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisiXG4iCisiQ+G6ok5IIELDgU8gOiBoaeG7g24gdGjhu4sgxJHGoW4gduG7iyB0cuG7pSBnaeG7nSBi4buLIHBo4bqjbiDEkeG7kWkuXG4iCisiXHRIw6N5IGTDuW5nIGzhu4duaCDCqyB1IMK7IMSR4buDIGNodXnhu4NuIMSR4buVaSDEkcahbiB24buLIHNhbmcgcsOjbmggZ2hpLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjgxOQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgb2Zmc2V0IGluIHByaW1hcnkgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIkhp4buHdSBzYWkgdHJvbmcgcGjDom4gdsO5bmcgbeG7nyBy4buZbmcgY2jDrW5oXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorIkPhuqNuaCBiw6FvOiBC4buPIHPDs3QgY8OhYyBwaMOibiB2w7luZyBzYXUgIyVkLlxuIgorIkNow7puZyBz4bq9IGLhu4sgeMOzYSBu4bq/dSBi4bqhbiBnaGkgbmjhu5sgYuG6o25nIHBow6JuIHbDuW5nIG7DoHkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGV4dHJhIGxpbmsgcG9pbnRlciBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW86IMSRaeG7g20gbGnDqm4ga+G6v3QgZOG7sSBwaMOybmcgdHJvbmcgYuG6o25nIHBow6JuIHbDuW5nICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODYwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlnbm9yaW5nIGV4dHJhIGRhdGEgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIkPhuqNuaCBiw6FvOiBi4buPIHF1YSBk4buvIGxp4buHdSBk4buxIHBow7JuZyB0cm9uZyBi4bqjbmcgcGjDom4gdsO5bmcgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzo4OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAib21pdHRpbmcgZW1wdHkgcGFydGl0aW9uICglZClcbiIKK21zZ3N0ciAixJFhbmcgYuG7jyBxdcOqbiBwaMOibiB2w7luZyBy4buXbmcgKCVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrIGlkZW50aWZpZXI6IDB4JTA4eFxuIgorbXNnc3RyICLEkOG7kyBuaOG6rW4gZGnhu4duIMSRxKlhOiAweCUwOHhcbiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIsSQ4buTIG5o4bqtbiBkaeG7h24gxJHEqWEgbeG7m2kgKGhp4buHbiB0aOG7nWkgMHglMDh4KTogIgorCisjOiBmZGlzay9mZGlzay5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgRE9TIGRpc2tsYWJlbCB3aXRoIGRpc2sgaWRlbnRpZmllciAweCUwOHguXG4iCisiQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLlxuIgorIkFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJU4bqhbyBt4buZdCBuaMOjbiDEkcSpYSBET1MgbeG7m2kgY8OzIMSR4buTIG5o4bqtbiBkaeG7h24gxJHEqWEgMHglMDh4LlxuIgorIlRoYXkgxJHhu5dpIGNo4buJIG7hurFtIHThuqFtIHRyb25nIGLhu5kgbmjhu5ssIGNobyDEkeG6v24ga2hpIGLhuqFuXG4iCisicXV54bq/dCDEkeG7i25oIGdoaSBjaMO6bmcuIFNhdSDEkcOzLCB04bqldCBuaGnDqm4sIG7hu5lpIGR1bmdcbiIKKyJ0csaw4bubYyDEkcOzIHPhur0ga2jDtG5nIHRo4buDIMSRxrDhu6NjIHBo4bulYyBo4buTaS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdGU6IHNlY3RvciBzaXplIGlzICVkIChub3QgJWQpXG4iCittc2dzdHIgIkNow7ogw706IGvDrWNoIGPhu6EgcsOjbmggZ2hpIGzDoCAlZCAoa2jDtG5nICVkKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgbm90IGJlIGFibGUgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiQuG6oW4gc+G6vSBraMO0bmcgdGjhu4MgZ2hpIG5o4bubIGLhuqNuZyBwaMOibiB2w7luZy5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGlzIGRpc2sgaGFzIGJvdGggRE9TIGFuZCBCU0QgbWFnaWMuXG4iCisiR2l2ZSB0aGUgJ2InIGNvbW1hbmQgdG8gZ28gdG8gQlNEIG1vZGUuXG4iCittc2dzdHIgIiIKKyLEkMSpYSBuw6B5IGPDsyBtYWdpYyBraeG7g3UgY+G6oyBET1MgdsOgIEJTRC5cbiIKKyJOaOG6rXAgbOG7h25oICdiJyDEkeG7gyB2w6BvIGNo4bq/IMSR4buZIEJTRC5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgIgorImRpc2tsYWJlbFxuIgorbXNnc3RyICJUaGnhur90IGLhu4sgY2jhu6lhIG3hu5l0IGLhuqNuZyBwaMOibiB2w7luZyBET1MsIGhheSBTdW4sIFNHSSBoYXkgT1NGIGLhu4sgbOG7l2lcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjczCisjLCBjLWZvcm1hdAorbXNnaWQgIkludGVybmFsIGVycm9yXG4iCittc2dzdHIgIkzhu5dpIG7hu5lpIGLhu5lcbiIKKworIzogZmRpc2svZmRpc2suYzoxMjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yaW5nIGV4dHJhIGV4dGVuZGVkIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJC4buPIHF1YSBjw6FjIHBow6JuIHbDuW5nIG3hu58gcuG7mW5nIGThu7EgcGjDsm5nICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogaW52YWxpZCBmbGFnIDB4JTA0eCBvZiBwYXJ0aXRpb24gdGFibGUgJWQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyIKKyIocml0ZSlcbiIKK21zZ3N0ciAiIgorIkPhuqNuaCBiw6FvIDogY+G7nSAweCUwNHggY+G7p2EgYuG6o25nIHBow6JuIHbDuW5nICVkIGLhu4sgbOG7l2kgc+G6vSDEkcaw4bujYyBz4butYSBi4bufaSB3KHJpdGUpICIKKyIoZ2hpIG5o4bubKVxuIgorCisjOiBmZGlzay9mZGlzay5jOjEzMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImdvdCBFT0YgdGhyaWNlIC0gZXhpdGluZy4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJuaOG6rW4gxJHGsOG7o2MgRU9GIGJhIGzhuqduIC0gxJFhbmcgdGhvw6F0Li5cbiIKKworIzogZmRpc2svZmRpc2suYzoxMzYwCittc2dpZCAiSGV4IGNvZGUgKHR5cGUgTCB0byBsaXN0IGNvZGVzKTogIgorbXNnc3RyICJNw6MgSGV4IChnw7UgTCDEkeG7gyBsaeG7h3Qga8OqIG3Doyk6ICIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiJXMgKCV1LSV1LCBt4bq3YyDEkeG7i25oICV1KTogIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgc3VmZml4OiAnJXMnLlxuIgorbXNnc3RyICJI4bqldSB04buRIGtow7RuZyDEkcaw4bujYyBo4buXIHRy4bujIDogwqsgJXMgwrsuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VwcG9ydGVkOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaUJ5dGUpLCBNICAoTWViaUJ5dGUpLCBHICAoR2liaUJ5dGUpXG4iCittc2dzdHIgIiIKKyJI4buXIHRy4bujIDpcbiIKKyIg4oCiIDEwXk5cbiIKKyJcdEtCXHRraWzDtC1ieXRlXG4iCisiXHRNQlx0bWVnYS1ieXRlXG4iCisiXHRHQlx0Z2lnYS1ieXRlXG4iCisiIOKAoiAyXk5cbiIKKyJcdEtcdGtpYmktYnl0ZVxuIgorIlx0TVx0bWViaS1ieXRlXG4iCisiXHRHXHRnaWJpLWJ5dGVcbiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGRlZmF1bHQgdmFsdWUgJXVcbiIKK21zZ3N0ciAiU+G7rSBk4bulbmcgZ2nDoSB0cuG7iyBt4bq3YyDEkeG7i25oICV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJWYWx1ZSBvdXQgb2YgcmFuZ2UuXG4iCittc2dzdHIgIkdpw6EgdHLhu4sgdsaw4bujdCBxdcOhIGdp4bubaSBo4bqhbi5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNTE4Cittc2dpZCAiUGFydGl0aW9uIG51bWJlciIKK21zZ3N0ciAiU+G7kSB0aOG7qSB04buxIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9mZGlzay5jOjE1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVkIGhhcyBlbXB0eSB0eXBlXG4iCittc2dzdHIgIkPhuqNuaCBiw6FvOiBwaMOibiB2w7luZyAlZCBjaMawYSBwaMOibiBsb+G6oWlcbiIKKworIzogZmRpc2svZmRpc2suYzoxNTUxIGZkaXNrL2ZkaXNrLmM6MTU3NworIywgYy1mb3JtYXQKK21zZ2lkICJTZWxlY3RlZCBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiUGjDom4gdsO5bmcgxJHGsOG7o2MgY2jhu41uICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1NAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBwYXJ0aXRpb24gaXMgZGVmaW5lZCB5ZXQhXG4iCittc2dzdHIgIktow7RuZyBjw7MgcGjDom4gdsO5bmcgxJHGsOG7o2MgeMOhYyDEkeG7i25oIVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIHByaW1hcnkgcGFydGl0aW9ucyBoYXZlIGJlZW4gZGVmaW5lZCBhbHJlYWR5IVxuIgorbXNnc3RyICJU4bqldCBj4bqjIGPDoWMgcGjDom4gdsO5bmcgY2jDrW5oIHBo4bqjaSDEkcaw4bujYyB4w6FjIMSR4buLbmghXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgImN5bGluZGVyIgorbXNnc3RyICJ0cuG7pSIKKworIzogZmRpc2svZmRpc2suYzoxNTkwCittc2dpZCAic2VjdG9yIgorbXNnc3RyICJyw6NuaCBnaGkiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvICVzXG4iCittc2dzdHIgIlRoYXkgxJHhu5VpIMSRxqFuIHbhu4sgaGnhu4NuIHRo4buLIHRow6BuaCAlc1xuIgorCisjOiBmZGlzay9mZGlzay5jOjE2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogUGFydGl0aW9uICVkIGlzIGFuIGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICJD4bqiTkggQsOBTzogUGjDom4gdsO5bmcgJWQgbMOgIG3hu5l0IHBow6JuIHbDuW5nIG3hu58gcuG7mW5nXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYyMAorIywgYy1mb3JtYXQKK21zZ2lkICJET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIHNldFxuIgorbXNnc3RyICJD4budIHTGsMahbmcgdGjDrWNoIHbhu5tpIERPUyDEkcaw4bujYyDEkeG6t3RcbiIKKworIzogZmRpc2svZmRpc2suYzoxNjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldFxuIgorbXNnc3RyICJD4budIHTGsMahbmcgdGjDrWNoIERPUyBraMO0bmcgxJHGsOG7o2MgxJHhurd0XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyMworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICJQaMOibiB2w7luZyAlZCBraMO0bmcgdOG7k24gdOG6oWkhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisiR8O1IDAgY8OzIG5naMSpYSBsw6Aga2jDtG5nIGdpYW4gdHLhu5FuZyDEkeG7kWkgduG7m2lcbiIKKyJuaGnhu4F1IGjhu4cgdGjhu5FuZyAobmjGsG5nIHbhu5tpIExpbnV4IHRow6wga2jDtG5nKS5cbiIKKyJLaMO0bmcgbsOqbiBjw7MgcGjDom4gdsO5bmcgduG7m2kgbG/huqFpIDAuIELhuqFuIGPDs1xuIgorInRo4buDIHjDs2EgbeG7mXQgcGjDom4gdsO5bmcgc+G7rSBk4bulbmcgY8OidSBs4buHbmggYGQnLlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgY2hhbmdlIGEgcGFydGl0aW9uIGludG8gYW4gZXh0ZW5kZWQgb25lIG9yIHZpY2UgdmVyc2FcbiIKKyJEZWxldGUgaXQgZmlyc3QuXG4iCittc2dzdHIgIiIKKyJC4bqhbiBraMO0bmcgdGjhu4MgdGhheSDEkeG7lWkgbeG7mXQgcGjDom4gdsO5bmcgdGjDoG5oIMSR4buTIG3hu58gcuG7mW5nIGhv4bq3YyBuZ8aw4bujYyBs4bqhaS5cbiIKKyJYw7NhIG7DsyB0csaw4bubYy5cbiIKKworIzogZmRpc2svZmRpc2suYzoxNzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb25zaWRlciBsZWF2aW5nIHBhcnRpdGlvbiAzIGFzIFdob2xlIGRpc2sgKDUpLFxuIgorImFzIFN1bk9TL1NvbGFyaXMgZXhwZWN0cyBpdCBhbmQgZXZlbiBMaW51eCBsaWtlcyBpdC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIk7Dqm4gxJHhu4MgcGjDom4gdsO5bmcgMyBuaMawIEPhuqMgbeG7mXQgxJHEqWEgKDUpLFxuIgorInbDrCBTdW5PUy9Tb2xhcmlzIMSRw7JpIGjhu49pIMSRaeG7gXUgbsOgeSB2w6AgdGjhuq1tIGNow60gTGludXggdGjDrWNoLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE3NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDkgYXMgdm9sdW1lIGhlYWRlciAoMCksXG4iCisiYW5kIHBhcnRpdGlvbiAxMSBhcyBlbnRpcmUgdm9sdW1lICg2KSwgYXMgSVJJWCBleHBlY3RzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisiTsOqbiDEkeG7gyBwaMOibiB2w7luZyA5IG5oxrAgxJHhuqd1IG3hu5l0IGto4buRaSB0aW4gKDApLFxuIgorInbDoCBwaMOibiB2w7luZyAxMSBuaMawIGPhuqMgbeG7mXQga2jhu5FpIHRpbiAoNilcbiIKKyJ0aGVvIHnDqnUgY+G6p3UgY+G7p2EgSVJJWC5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoxNzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5nZWQgc3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIHRvICV4ICglcylcbiIKK21zZ3N0ciAixJDDoyB0aGF5IMSR4buVaSBsb+G6oWkgaOG7hyB0aOG7kW5nIGPhu6dhIHBow6JuIHbDuW5nICVkIHRow6BuaCAleCAoJXMpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gdHlwZSBvZiBwYXJ0aXRpb24gJWQgaXMgdW5jaGFuZ2VkOiAleCAoJXMpXG4iCittc2dzdHIgIktp4buDdSBo4buHIHRo4buRbmcgY+G7p2EgcGjDom4gdsO5bmcgJWQgY2jGsGEgdGhheSDEkeG7lWk6ICV4ICglcylcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgYmVnaW5uaW5ncyAobm9uLUxpbnV4Pyk6XG4iCittc2dzdHIgIiIKKyJQaMOibiB2w7luZyAlZCBjw7MgxJFp4buDbSBraOG7n2kgxJHhuqd1IHbhuq10IGzDvS9sw7Rnw61jIGtow6FjIG5oYXkgKGtow7RuZyBwaOG6o2kgTGludXg/KTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODI5IGZkaXNrL2ZkaXNrLmM6MTgzNyBmZGlzay9mZGlzay5jOjE4NDYgZmRpc2svZmRpc2suYzoxODU2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgcGh5cz0oJWQsICVkLCAlZCkgIgorbXNnc3RyICIgICAgIHbhuq10IGzDvT0oJWQsICVkLCAlZCkgIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzAgZmRpc2svZmRpc2suYzoxODM4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iCittc2dzdHIgImzDtGfDrWM9KCVkLCAlZCwgJWQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgzNQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGVuZGluZ3M6XG4iCittc2dzdHIgIlBow6JuIHbDuW5nICVkIGPDsyDEkWnhu4NtIGN14buRaSB24bqtdCBsw70vbMO0Z8OtYyBraMOhYyBuaGF1OlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICJQaMOibiB2w7luZyAlaSBraMO0bmcgYuG6r3QgxJHhuqd1IHRyw6puIHJhbmggZ2nhu5tpIHRy4bulOlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsIDEpXG4iCittc2dzdHIgInBo4bqjaSBsw6AgKCVkLCAlZCwgMSlcbiIKKworIzogZmRpc2svZmRpc2suYzoxODUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIlBow6JuIHbDuW5nICVpIGtow7RuZyBr4bq/dCB0aMO6YyB0csOqbiByYW5oIGdp4bubaSB0cuG7pTpcbiIKKworIzogZmRpc2svZmRpc2suYzoxODU3CisjLCBjLWZvcm1hdAorbXNnaWQgInNob3VsZCBiZSAoJWQsICVkLCAlZClcbiIKK21zZ3N0ciAicGjhuqNpIGzDoCAoJWQsICVkLCAlZClcbiIKKworIzogZmRpc2svZmRpc2suYzoxODY3CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlaSBkb2VzIG5vdCBzdGFydCBvbiBwaHlzaWNhbCBzZWN0b3IgYm91bmRhcnkuXG4iCittc2dzdHIgIlBow6JuIHbDuW5nICVpIGtow7RuZyBi4bqvdCDEkeG6p3Ug4bufIGJpw6puIGdp4bubaSByw6NuaCBnaGkgduG6rXQgbMO9LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsZCBNQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisixJDEqWEgJXM6ICVsZCBNQiwgJWxsZCBieXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkLiVsZCBHQiwgJWxsZCBieXRlc1xuIgorbXNnc3RyICIiCisiXG4iCisixJDEqWEgJXM6ICVsZC4lbGQgR0IsICVsbGQgYnl0ZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgaGVhZHMsICVsbHUgc2VjdG9ycy90cmFjaywgJWQgY3lsaW5kZXJzIgorbXNnc3RyICIlZCDEkeG6p3UgxJHhu41jLCAlbGx1IHLDo25oIGdoaS9yw6NuaCwgJWQgdHLhu6UiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg4NworIywgYy1mb3JtYXQKK21zZ2lkICIsIHRvdGFsICVsbHUgc2VjdG9ycyIKK21zZ3N0ciAiLCB04buVbmcgc+G7kSAlbGx1IHLDo25oIGdoaSIKKworIzogZmRpc2svZmRpc2suYzoxODkwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuaXRzID0gJXMgb2YgJWQgKiAlZCA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIsSQxqFuIHbhu4sgPSAlcyBj4bunYSAlZCAqICVkID0gJWQgYnl0ZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiAldSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICJLw61jaCBj4buhIHLDo25oIGdoaSAoaOG7o3AgbMO9L3bhuq10IGzDvSk6ICV1IGJ5dGUgLyAlbHUgYnl0ZVxuIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSS9PIHNpemUgKG1pbmltdW0vb3B0aW1hbCk6ICVsdSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICJLw61jaCBj4buhIFYvUiAodOG7kWkgdGhp4buDdSAvIHThu5FpIMawdSk6ICVsdSBieXRlIC8gJWx1IGJ5dGVcbiIKKworIzogZmRpc2svZmRpc2suYzoxODk5CisjLCBjLWZvcm1hdAorbXNnaWQgIkFsaWdubWVudCBvZmZzZXQ6ICVsdSBieXRlc1xuIgorbXNnc3RyICJLaG/huqNuZyBjaMOqbmggc+G6r3AgaMOgbmc6ICVsdSBieXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjAwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90aGluZyB0byBkby4gT3JkZXJpbmcgaXMgY29ycmVjdCBhbHJlYWR5LlxuIgorIlxuIgorbXNnc3RyICIiCisiS2jDtG5nIGPhuqduIGzDoG0gZ8OsLiBUaOG7qSB04buxIMSRw6MgxJHDum5nIHPhurVuLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG9uZS5cbiIKK21zZ3N0ciAiSG/DoG4gdOG6pXQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjA2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBhIHBhcnRpdGlvbiB0YWJsZVxuIgorIlByb2JhYmx5IHlvdSBzZWxlY3RlZCB0aGUgd3JvbmcgZGV2aWNlLlxuIgorIlxuIgorbXNnc3RyICIiCisiQ8OzIHbhursgbmjGsCDEkcOieSBraMO0bmcgcGjhuqNpIGzDoCBi4bqjbmcgcGjDom4gdsO5bmdcbiIKKyJDw7MgdGjhu4MgYuG6oW4gxJHDoyBjaOG7jW4gbmjhuqdtIHRoaeG6v3QgYuG7iy5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiUqcyBCb290ICAgICAgU3RhcnQgICAgICAgICBFbmQgICAgICBCbG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiUqcyAgS2jhu59pX8SR4buZbmcgICAgxJDhuqd1ICAgICAgIEN14buRaSAgICAgIEto4buRaSAgICAgIElkICBI4buHX3Ro4buRbmdcbiIKKworIzogZmRpc2svZmRpc2suYzoyMDc4IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5OAorbXNnaWQgIkRldmljZSIKK21zZ3N0ciAiVGhp4bq/dCBi4buLIgorCisjOiBmZGlzay9mZGlzay5jOjIxMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlBhcnRpdGlvbiB0YWJsZSBlbnRyaWVzIGFyZSBub3QgaW4gZGlzayBvcmRlclxuIgorbXNnc3RyICIiCisiXG4iCisiQ8OhYyBt4bulYyB0cm9uZyBi4bqjbmcgcGjDom4gdsO5bmcga2jDtG5nIHRoZW8gdGjhu6kgdOG7sSBuaMawIHRyw6puIMSRxKlhXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgY3lsaW5kZXJzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyLEkMSpYSAlczogJWQgxJHhuqd1IMSR4buNYywgJWxsdSByw6NuaCBnaGksICVkIHRy4bulXG4iCisiXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJOciBBRiAgSGQgU2VjICBDeWwgIEhkIFNlYyAgQ3lsICAgICBTdGFydCAgICAgIFNpemUgSURcbiIKK21zZ3N0ciAiTnIgQUYgIMSQ4bqndSBSw6NuaCBUcuG7pSAgxJDhuqd1IFLDo25oIFRy4bulICAgICBC4bqvdF/EkeG6p3UgICAgICBD4buhIElEXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgY29udGFpbnMgc2VjdG9yIDBcbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW86IHBow6JuIHbDuW5nICVkIGNo4bupYSByw6NuaCBnaGkgMFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBoZWFkICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVkXG4iCittc2dzdHIgIlBow6JuIHbDuW5nICVkOiDEkeG6p3UgJWQgbOG7m24gaMahbiBtYXggJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogc2VjdG9yICVkIGdyZWF0ZXIgdGhhbiBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAiUGjDom4gdsO5bmcgJWQ6IHLDo25oIGdoaSAlZCBs4bubbiBoxqFuIHThu5FpIMSRYSAlbGx1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICJQaMOibiB2w7luZyAlZDogdHLhu6UgJWQgbOG7m24gaMahbiBtYXggJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZDogcHJldmlvdXMgc2VjdG9ycyAlZCBkaXNhZ3JlZXMgd2l0aCB0b3RhbCAlZFxuIgorbXNnc3RyICJQaMOibiB2w7luZyAlZDogY8OhYyByw6NuaCBnaGkgcGjDrWEgdHLGsOG7m2MgJWQga2jDtG5nIGjhu6NwIHbhu5tpIHThu5VuZyBz4buRICVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjIyMworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBiYWQgc3RhcnQtb2YtZGF0YSBpbiBwYXJ0aXRpb24gJWRcbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW86IGto4bufaS3EkeG6p3UtZOG7ry1saeG7h3UgeOG6pXUgdHJvbmcgcGjDom4gdsO5bmcgJWRcbiIKKworIzogZmRpc2svZmRpc2suYzoyMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBvdmVybGFwcyBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIkPhuqNuaCBiw6FvOiBwaMOibiB2w7luZyAlZCDEkcOoIGzDqm4gcGjDom4gdsO5bmcgJWQuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1MQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJWQgaXMgZW1wdHlcbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW86IHBow6JuIHbDuW5nICVkIHLhu5duZ1xuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naWNhbCBwYXJ0aXRpb24gJWQgbm90IGVudGlyZWx5IGluIHBhcnRpdGlvbiAlZFxuIgorbXNnc3RyICJQaMOibiB2w7luZyBsw7Rnw61jICVkIGtow7RuZyBob8OgbiB0b8OgbiB0cm9uZyBwaMOibiB2w7luZyAlZFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgYWxsb2NhdGVkIHNlY3RvcnMgJWxsdSBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICJU4buVbmcgc+G7kSByw6NuaCBnaGkgcGjDom4gcGjhu5FpICVsbHUgbOG7m24gaMahbiB04buRaSDEkWEgJWxsdVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVtYWluaW5nICVsbGQgdW5hbGxvY2F0ZWQgJWQtYnl0ZSBzZWN0b3JzXG4iCittc2dzdHIgIiVsbGQgcsOjbmggZ2hpICVkLWJ5dGUga2jDtG5nIMSRxrDhu6NjIGPhuqVwIHBow6F0IGPDsm4gbOG6oWlcbiIKKworIzogZmRpc2svZmRpc2suYzoyMzAxIGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxMQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlIGl0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iCittc2dzdHIgIiIKKyJQaMOibiB2w7luZyAlZCDEkcOjIMSRxrDhu6NjIHjDoWMgxJHhu4tuaC4gIEjDo3kgeMOzYSBuw7MgdHLGsOG7m2Mga2hpIHRow6ptIGzhuqFpIGzhuqduIG7hu69hXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWxsdSBpcyBhbHJlYWR5IGFsbG9jYXRlZFxuIgorbXNnc3RyICJSw6NuaCBnaGkgJWxsdSDEkcOjIMSRxrDhu6NjIHBow6JuIHBo4buRaVxuIgorCisjOiBmZGlzay9mZGlzay5jOjIzODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gZnJlZSBzZWN0b3JzIGF2YWlsYWJsZVxuIgorbXNnc3RyICJLaMO0bmcgY8OybiByw6NuaCBnaGkgbsOgbyB0cuG7kW5nXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICUxJHMsICslMiRzIG9yICtzaXple0ssTSxHfSIKK21zZ3N0ciAiQ3Xhu5FpICUxJHMsICslMiRzIGhheSAra8OtY2hfY+G7oXtLLE0sR30iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBBSVggZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0WGluIGzhu5dpIC0gZmRpc2sgbsOgeSBraMO0bmcgdGjhu4MgcXXhuqNuIGzDvSBuaMOjbiDEkcSpYSBBSVguXG4iCisiXHRO4bq/dSBi4bqhbiBtdeG7kW4gdGjDqm0gY8OhYyBwaMOibiB2w7luZyBk4bqhbmcgRE9TLCBow6N5IHThuqFvXG4iCisiXHRt4buZdCBi4bqjbmcgcGjDom4gdsO5bmcgRE9TIHLhu5duZyB0csaw4bubYy4gKFPhu60gZOG7pW5nIG8uKVxuIgorIlx0Q+G6ok5IIELDgU86IE7hu5lpIGR1bmcgaGnhu4duIHRo4budaSBj4bunYSDEkcSpYSBz4bq9IGLhu4sgaOG7p3kuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorIlx0WGluIGzhu5dpIC0gZmRpc2sgbsOgeSBraMO0bmcgdGjhu4MgcXXhuqNuIGzDvSBuaMOjbiDEkcSpYSBNYWMuXG4iCisiXHRO4bq/dSBi4bqhbiBtdeG7kW4gdGjDqm0gY8OhYyBwaMOibiB2w7luZyBk4bqhbmcgRE9TLCBow6N5IHThuqFvXG4iCisiXHRt4buZdCBi4bqjbmcgcGjDom4gdsO5bmcgRE9TIHLhu5duZyB0csaw4bubYy4gKFPhu60gZOG7pW5nIMKrIG8gwrsuKVxuIgorIlx0Q+G6ok5IIELDgU8gOiBO4buZaSBkdW5nIGhp4buHbiB0aOG7nWkgY+G7p2EgxJHEqWEgc+G6vSBi4buLIGjhu6d5LlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iCittc2dzdHIgIkLhuqFuIHBo4bqjaSB4w7NhIHbDoGkgcGjDom4gdsO5bmcgdsOgIHRow6ptIG3hu5l0IHBow6JuIHbDuW5nIG3hu58gcuG7mW5nIHRyxrDhu5tjXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJBbGwgbG9naWNhbCBwYXJ0aXRpb25zIGFyZSBpbiB1c2VcbiIKK21zZ3N0ciAiVOG6pXQgY+G6oyBjw6FjIHBow6JuIHbDuW5nIGzDtGfDrWMgxJHGsOG7o2Mgc+G7rSBk4bulbmdcbiIKKworIzogZmRpc2svZmRpc2suYzoyNTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhIHByaW1hcnkgcGFydGl0aW9uXG4iCittc2dzdHIgIlRow6ptIHBow6JuIHbDuW5nIGNow61uaFxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbW1hbmQgYWN0aW9uXG4iCisiICAgJXNcbiIKKyIgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNClcbiIKK21zZ3N0ciAiIgorIlTDoWMgZOG7pW5nIGPhu6dhIGPDonUgbOG7h25oXG4iCisiICAgJXNcbiIKKyIgICBwICAgcGjDom4gdsO5bmcgY2jDrW5oICgxLTQpXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIgorbXNnc3RyICJsICAgbMO0Z8OtYyAoNSBob+G6t2MgaMahbikiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImUgICBleHRlbmRlZCIKK21zZ3N0ciAiZSAgIG3hu58gcuG7mW5nIgorCisjOiBmZGlzay9mZGlzay5jOjI1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXJ0aXRpb24gbnVtYmVyIGZvciB0eXBlIGAlYydcbiIKK21zZ3N0ciAiU2FpIHPhu5EgcGjDom4gdsO5bmcgY2hvIGxv4bqhaSBgJWMnXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIVxuIgorIlxuIgorbXNnc3RyICIiCisiQuG6o25nIHBow6JuIHbDuW5nIMSRw6MgxJHGsOG7o2MgZ2hpIVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICJH4buNaSBpb2N0bCgpIMSR4buDIMSR4buNYyBs4bqhaSBi4bqjbmcgcGjDom4gdsO5bmcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU4NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyJUaGUga2VybmVsIHN0aWxsIHVzZXMgdGhlIG9sZCB0YWJsZS4gVGhlIG5ldyB0YWJsZSB3aWxsIGJlIHVzZWQgYXRcbiIKKyJ0aGUgbmV4dCByZWJvb3Qgb3IgYWZ0ZXIgeW91IHJ1biBwYXJ0cHJvYmUoOCkgb3Iga3BhcnR4KDgpXG4iCittc2dzdHIgIiIKKyJcbiIKKyJD4bqiTkggQsOBTzogdGhhbyB0w6FjIMSR4buNYyBs4bqhaSBi4bqjbmcgcGjDom4gdsO5bmcga2jDtG5nIHRow6BuaCBjw7RuZyAobOG7l2kgJWQpOiAlcy5cbiIKKyJI4bqhdCBuaMOibiB24bqrbiBjw7JuIGTDuW5nIGLhuqNuZyBjxakuXG4iCisiQuG6o25nIG3hu5tpIHPhur0gxJHGsOG7o2MgZMO5bmcgbOG6p24ga+G6vyB0aeG6v3Aga2jhu59pIMSR4buZbmcsXG4iCisiaG/hurdjIHNhdSBraGkgYuG6oW4gY2jhuqF5IGPDtG5nIGPhu6UgcGFydHByb2JlKDgpIGhheSBrcGFydHgoOCkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogSWYgeW91IGhhdmUgY3JlYXRlZCBvciBtb2RpZmllZCBhbnkgRE9TIDYueFxuIgorInBhcnRpdGlvbnMsIHBsZWFzZSBzZWUgdGhlIGZkaXNrIG1hbnVhbCBwYWdlIGZvciBhZGRpdGlvbmFsXG4iCisiaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJD4bqiTkggQsOBTzogTuG6v3UgYuG6oW4gxJHDoyB04bqhbyBob+G6t2Mgc+G7rWEgxJHhu5VpIGLhuqV0IGvhu7MgcGjDom4gdsO5bmdcbiIKKyJET1MgNi54IG7DoG8sIHhpbiBow6N5IHhlbSB0cmFuZyBoxrDhu5tuZyBk4bqrbiBz4butIGThu6VuZyBtYW4gZmRpc2tcbiIKKyLEkeG7gyBiaeG6v3QgdGjDqm0gY2hpIHRp4bq/dC5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJFcnJvciBjbG9zaW5nIGZpbGVcbiIKK21zZ3N0ciAiIgorIlxuIgorIkzhu5dpIMSRw7NuZyB04bqtcCB0aW5cbiIKKworIzogZmRpc2svZmRpc2suYzoyNjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5bmNpbmcgZGlza3MuXG4iCittc2dzdHIgIsSQYW5nIMSR4buTbmcgYuG7mSBob8OhIGPDoWMgxJHEqWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICJQaMOibiB2w7luZyAlZCBraMO0bmcgY8OzIHbDuW5nIGThu68gbGnhu4d1XG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAixJBp4buDbSBi4bqvdCDEkeG6p3UgZOG7ryBsaeG7h3UgbeG7m2kiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY3MgorbXNnaWQgIkV4cGVydCBjb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICJDw6J1IGzhu4duaCBuw6JuZyBjYW8gKG0gxJHhu4MgeGVtIHRy4bujIGdpw7pwKTogIgorCisjOiBmZGlzay9mZGlzay5jOjI2ODUKK21zZ2lkICJOdW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICJT4buRIHRy4bulIgorCisjOiBmZGlzay9mZGlzay5jOjI3MTAKK21zZ2lkICJOdW1iZXIgb2YgaGVhZHMiCittc2dzdHIgIlPhu5EgxJHhuqd1IMSR4buNYyIKKworIzogZmRpc2svZmRpc2suYzoyNzM3Cittc2dpZCAiTnVtYmVyIG9mIHNlY3RvcnMiCittc2dzdHIgIlPhu5EgcsOjbmggZ2hpIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogc2V0dGluZyBzZWN0b3Igb2Zmc2V0IGZvciBET1MgY29tcGF0aWJsaXR5XG4iCittc2dzdHIgIkPhuqNuaCBiw6FvIDogdGhp4bq/dCBs4bqtcCBoaeG7h3Ugc+G7kSByw6NuaCBnaGkgY2hvIHTGsMahbmcgdGjDrWNoIERPU1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIGZkaXNrIGRvZXNuJ3QgIgorInN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkPhuqJOSCBCw4FPIDogcGjDoXQgaGnhu4duIEdQVCAoYuG6o25nIHBow6JuIHbDuW5nIEdVSUQpIHRyw6puIMKrICVzIMK7LiBUaeG7h24gw61jaCBmZGlzayAiCisia2jDtG5nIGjhu5cgdHLhu6MgR1BULiBIw6N5IGTDuW5nIGNoxrDGoW5nIHRyw6xuaCBHTlUgUGFydGVkLlxuIgorIlxuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayAlcyBkb2Vzbid0IGNvbnRhaW4gYSB2YWxpZCBwYXJ0aXRpb24gdGFibGVcbiIKK21zZ3N0ciAixJDEqWEgJXMga2jDtG5nIGNo4bupYSBt4buZdCBi4bqjbmcgcGjDom4gdsO5bmcgaOG7o3AgbOG7h1xuIgorCisjOiBmZGlzay9mZGlzay5jOjI4MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIG3hu58gJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58gJXNcbiIKKworIzogZmRpc2svZmRpc2suYzoyODcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVjOiB1bmtub3duIGNvbW1hbmRcbiIKK21zZ3N0ciAiJWM6IGPDonUgbOG7h25oIGtow7RuZyBiaeG6v3RcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoaXMga2VybmVsIGZpbmRzIHRoZSBzZWN0b3Igc2l6ZSBpdHNlbGYgLSAtYiBvcHRpb24gaWdub3JlZFxuIgorbXNnc3RyICJOaMOibiBuw6B5IHThu7EgdMOsbSBrw61jaCBj4buhIHLDo25oIGdoaSAtIHTDuXkgY2jhu41uIC1iIGLhu4sgYuG7jyBxdWFcbiIKKworIzogZmRpc2svZmRpc2suYzoyOTQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiB0aGUgLWIgKHNldCBzZWN0b3Igc2l6ZSkgb3B0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggb25lIHNwZWNpZmllZCAiCisiZGV2aWNlXG4iCittc2dzdHIgIiIKKyJD4bqjbmggYsOhbzogdMO5eSBjaOG7jW4gLWIgKMSR4bq3dCBrw61jaCBj4buhIHLDo25oIGdoaSkgY+G6p24gc+G7rSBk4bulbmcgduG7m2kgbeG7mXQgdGhp4bq/dCBi4buLICIKKyJ4w6FjIMSR4buLbmhcbiIKKworIzogZmRpc2svZmRpc2suYzozMDAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIGFuIE9TRi8xIGRpc2tsYWJlbCBvbiAlcywgZW50ZXJpbmcgZGlza2xhYmVsIG1vZGUuXG4iCittc2dzdHIgIlTDrG0gdGjhuqV5IG3hu5l0IG5ow6NuIMSRxKlhIE9TRi8xIHRyw6puICVzLCBuaOG6rXAgY2jhur8gxJHhu5kgbmjDo24gxJHEqWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAxMAorbXNnaWQgIkNvbW1hbmQgKG0gZm9yIGhlbHApOiAiCittc2dzdHIgIkPDonUgbOG7h25oIChtIMSR4buDIHhlbSB0cuG7oyBnacO6cCk6ICIKKworIzogZmRpc2svZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgY3VycmVudCBib290IGZpbGUgaXM6ICVzXG4iCittc2dzdHIgIiIKKyJcbiIKKyJU4bqtcCB0aW4ga2jhu59pIMSR4buZbmcgaGnhu4duIHRo4budaSBsw6A6ICVzXG4iCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICJYaW4gaMOjeSBuaOG6rXAgdMOqbiBj4bunYSB04bqtcCB0aW4ga2jhu59pIMSR4buZbmcgbeG7m2k6ICIKKworIzogZmRpc2svZmRpc2suYzozMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3QgZmlsZSB1bmNoYW5nZWRcbiIKK21zZ3N0ciAiVOG6rXAgdGluIGto4bufaSDEkeG7mW5nIGtow7RuZyB0aGF5IMSR4buVaVxuIgorCisjOiBmZGlzay9mZGlzay5jOjMxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0U29ycnksIG5vIGV4cGVydHMgbWVudSBmb3IgU0dJIHBhcnRpdGlvbiB0YWJsZXMgYXZhaWxhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRYaW4gbOG7l2ksIGtow7RuZyBjw7MgdHLDrG5oIMSRxqFuIG7Dom5nIGNhbyBjaG8gYuG6o25nIHBow6JuIHbDuW5nIFNHSS5cbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2ttYWNsYWJlbC5jOjMwCittc2dpZCAiIgorIlxuIgorIlx0VGhlcmUgaXMgYSB2YWxpZCBNYWMgbGFiZWwgb24gdGhpcyBkaXNrLlxuIgorIlx0VW5mb3J0dW5hdGVseSBmZGlzaygxKSBjYW5ub3QgaGFuZGxlIHRoZXNlIGRpc2tzLlxuIgorIlx0VXNlIGVpdGhlciBwZGlzayBvciBwYXJ0ZWQgdG8gbW9kaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUuXG4iCisiXHROZXZlcnRoZWxlc3Mgc29tZSBhZHZpY2U6XG4iCisiXHQxLiBmZGlzayB3aWxsIGRlc3Ryb3kgaXRzIGNvbnRlbnRzIG9uIHdyaXRlLlxuIgorIlx0Mi4gQmUgc3VyZSB0aGF0IHRoaXMgZGlzayBpcyBOT1QgYSBzdGlsbCB2aXRhbFxuIgorIlx0ICAgcGFydCBvZiBhIHZvbHVtZSBncm91cC4gKE90aGVyd2lzZSB5b3UgbWF5XG4iCisiXHQgICBlcmFzZSB0aGUgb3RoZXIgZGlza3MgYXMgd2VsbCwgaWYgdW5taXJyb3JlZC4pXG4iCittc2dzdHIgIiIKKyJcbiIKKyJcdEPDsyBt4buZdCBuaMOjbiBNYWMgaOG7o3AgbOG7hyB0csOqbiDEkcSpYSBuw6B5LlxuIgorIlx0S2jDtG5nIG1heSBsw6AgaGnhu4duIHThuqFpIGZkaXNrKDEpIGtow7RuZyB0aOG7gyDEkWnhu4F1IGtoaeG7g25cbiIKKyJcdG5o4buvbmcgxJHEqWEgbsOgeS4gRMO5bmcgaG/hurdjIHBkaXNrIGhv4bq3YyBwYXJ0ZWRcbiIKKyLEkeG7gyBz4butYSDEkeG7lWkgYuG6o25nIHBow6JuIHbDuW5nLlxuIgorIlxuIgorIlR1eSBuaGnDqm4gbeG7mXQgdsOgaSBs4budaSBraHV5w6puOlxuIgorIlx0MS4gZmRpc2sgc+G6vSBo4buneSBo4bq/dCBu4buZaSBkdW5nIMSRxKlhIGtoaSBnaGkuXG4iCisiXHQyLiBD4bqnbiDEkeG6o20gYuG6o28gbMOgIMSRxKlhIG7DoHkgS0jDlE5HIHBo4bqjaSBsw6AgcGjhuqduXG4iCisiXHQgICBxdWFuIHRy4buNbmcgY+G7p2EgbeG7mXQgbmjDs20gxJHEqWEuIChOw7NpIGPDoWNoIGtow6FjIGLhuqFuIGPDs1xuIgorIlx0ICAgdGjhu4MgeMOzYSBjw6FjIMSRxKlhIGtow6FjLCBu4bq/dSBraMO0bmcgdOG6oW8gZ8awxqFuZy4pXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MQorbXNnaWQgIlNHSSB2b2xoZHIiCittc2dzdHIgIlNHSSB2b2xoZHIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MgorbXNnaWQgIlNHSSB0cmtyZXBsIgorbXNnc3RyICJTR0kgdHJrcmVwbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjgzCittc2dpZCAiU0dJIHNlY3JlcGwiCittc2dzdHIgIlNHSSBzZWNyZXBsIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODQKK21zZ2lkICJTR0kgcmF3IgorbXNnc3RyICJTR0kgdGjDtCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg1Cittc2dpZCAiU0dJIGJzZCIKK21zZ3N0ciAiU0dJIGJzZCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg2Cittc2dpZCAiU0dJIHN5c3YiCittc2dzdHIgIlNHSSBzeXN2IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODcKK21zZ2lkICJTR0kgdm9sdW1lIgorbXNnc3RyICJLaOG7kWkgdGluIFNHSSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg4Cittc2dpZCAiU0dJIGVmcyIKK21zZ3N0ciAiU0dJIGVmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIlNHSSBsdm9sIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTAKK21zZ2lkICJTR0kgcmx2b2wiCittc2dzdHIgIlNHSSBybHZvbCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkxCittc2dpZCAiU0dJIHhmcyIKK21zZ3N0ciAiU0dJIHhmcyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiU0dJIHhmc2xvZyIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkzCittc2dpZCAiU0dJIHhsdiIKK21zZ3N0ciAiU0dJIHhsdiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk0Cittc2dpZCAiU0dJIHh2bSIKK21zZ3N0ciAiU0dJIHh2bSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIlRyYW8gxJHhu5VpIExpbnV4IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTYgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUxCittc2dpZCAiTGludXggbmF0aXZlIgorbXNnc3RyICJMaW51eCBz4bufIGjhu691IgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIkxpbnV4IExWTSIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiTGludXggUkFJRCIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQWNjb3JkaW5nIHRvIE1JUFMgQ29tcHV0ZXIgU3lzdGVtcywgSW5jIHRoZSBMYWJlbCBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiAiCisiNTEyIGJ5dGVzXG4iCittc2dzdHIgIiIKKyJUw7l5IHRoZW8gTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMuIHRow6wgTmjDo24ga2jDtG5nIMSRxrDhu6NjIGNo4bupYSBuaGnhu4F1IGjGoW4gNTEyICIKKyJieXRlXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc2dpIGRpc2tsYWJlbCB3aXRoIHdyb25nIGNoZWNrc3VtLlxuIgorbXNnc3RyICJUw6xtIHRo4bqleSBuaMOjbiDEkcSpYSBzZ2kgduG7m2kgdOG7lW5nIGtp4buDbSB0cmEgKGNoZWNrc3VtKSBzYWkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoxODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFNHSSBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9yc1xuIgorIiVkIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyIlc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisixJDEqWEgJXMgKG5ow6NuIMSRxKlhIFNHSSk6ICVkIMSR4bqndSDEkeG7jWMsICVsbHUgcsOjbmggZ2hpXG4iCisiJWQgdHLhu6UsICVkIHRy4bulIHbhuq10IGzDvVxuIgorIiVkIHLDo25oIGdoaS90cuG7pSB0aMOqbSwgeGVuIGvhur0gJWQ6MVxuIgorIiVzXG4iCisixJDGoW4gduG7iyA9ICVzIGPhu6dhICVkICogJWQgYnl0ZVxuIgorIlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisixJDEqWEgJXMgKG5ow6NuIMSRxKlhIFNHSSk6ICVkIMSR4bqndSDEkeG7jWMsICVsbHUgcsOjbmggZ2hpLCAlZCB0cuG7pVxuIgorIsSQxqFuIHbhu4sgPSAlcyBj4bunYSAlZCAqICVkIGJ5dGVcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gcGFydGl0aW9ucyAtLS0tLVxuIgorIlB0IyAlKnMgIEluZm8gICAgIFN0YXJ0ICAgICAgIEVuZCAgIFNlY3RvcnMgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorIi0tLS0tIGPDoWMgcGjDom4gdsO5bmcgLS0tLS1cbiIKKyJQdiMgJSpzICBUaFRpbiAgICAgxJDhuqd1ICAgICAgIEN14buRaSAgIFLDo25oIGdoaSAgSWQgIEjhu4cgdGjhu5FuZ1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyItLS0tLSBCb290aW5mbyAtLS0tLVxuIgorIkJvb3RmaWxlOiAlc1xuIgorIi0tLS0tIERpcmVjdG9yeSBFbnRyaWVzIC0tLS0tXG4iCittc2dzdHIgIiIKKyItLS0tLSBUaMO0bmcgdGluIGto4bufaSDEkeG7mW5nIC0tLS0tXG4iCisiVOG6rXAgdGluIGto4bufaSDEkeG7mW5nOiAlc1xuIgorIi0tLS0tIFRoxrAgbeG7pWMgLS0tLS1cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlMmQ6ICUtMTBzIHNlY3RvciU1dSBzaXplJTh1XG4iCittc2dzdHIgIiUyZDogJS0xMHMgcsOjbmggZ2hpICU1dSBj4buhICU4dVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJJbnZhbGlkIEJvb3RmaWxlIVxuIgorIlx0VGhlIGJvb3RmaWxlIG11c3QgYmUgYW4gYWJzb2x1dGUgbm9uLXplcm8gcGF0aG5hbWUsXG4iCisiXHRlLmcuIFwiL3VuaXhcIiBvciBcIi91bml4LnNhdmVcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlThuq1wIHRpbiBraOG7n2kgxJHhu5luZyBi4buLIGzhu5dpIVxuIgorIlx0VOG6rXAgdGluIGto4bufaSDEkeG7mW5nIHBo4bqjaSBsw6AgbeG7mXQgdMOqbiDEkcaw4budbmcgZOG6q24gdHV54buHdCDEkeG7kWkga2jDtG5nIHLhu5duZyxcbiIKKyJcdHYuZC4gXCIvdW5peFwiIGhheSBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHROYW1lIG9mIEJvb3RmaWxlIHRvbyBsb25nOiAgMTYgYnl0ZXMgbWF4aW11bS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0VMOqbiBj4bunYSBU4bqtcCB0aW4ga2jhu59pIMSR4buZbmcgcXXDoSBkw6BpOiAgbWF4IGzDoCAxNiBieXRlLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdEJvb3RmaWxlIG11c3QgaGF2ZSBhIGZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0VOG6rXAgdGluIGto4bufaSDEkeG7mW5nIHBo4bqjaSBjw7MgxJHGsOG7nW5nIGThuqtuIMSR4bqneSDEkeG7py5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMxMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCZSBhd2FyZSwgdGhhdCB0aGUgYm9vdGZpbGUgaXMgbm90IGNoZWNrZWQgZm9yIGV4aXN0ZW5jZS5cbiIKKyJcdFNHSSdzIGRlZmF1bHQgaXMgXCIvdW5peFwiIGFuZCBmb3IgYmFja3VwIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisiXG4iCisiXHRD4bqnbiBiaeG6v3QgcuG6sW5nIHThuq1wIHRpbiBraOG7n2kgxJHhu5luZyBraMO0bmcgxJHGsOG7o2Mga2nhu4NtIHRyYSB04buTbiB04bqhaS5cbiIKKyJcdE3hurdjIMSR4buLbmggU0dJIGzDoCBcIi91bml4XCIgdsOgIHNhbyBsxrB1IGzDoCBcIi91bml4LnNhdmVcIi5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBpcyBjaGFuZ2VkIHRvIFwiJXNcIi5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlx0VOG6rXAgdGluIGto4bufaSDEkeG7mW5nIMSRxrDhu6NjIHRoYXkgxJHhu5VpIHRow6BuaCBcIiVzXCIuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTW9yZSB0aGFuIG9uZSBlbnRpcmUgZGlzayBlbnRyeSBwcmVzZW50LlxuIgorbXNnc3RyICJDw7Mgbmhp4buBdSBoxqFuIG3hu5l0IG3hu6VjIMSRxKlhLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDMzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gcGFydGl0aW9ucyBkZWZpbmVkXG4iCittc2dzdHIgIktow7RuZyBjw7MgcGjDom4gdsO5bmcgbsOgbyDEkcaw4bujYyDEkeG7i25oIG5naMSpYVxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIklSSVggbGlrZXMgd2hlbiBQYXJ0aXRpb24gMTEgY292ZXJzIHRoZSBlbnRpcmUgZGlzay5cbiIKK21zZ3N0ciAiVGjDrWNoIGjhu6NwIHbhu5tpIElSSVgga2hpIFBow6JuIHbDuW5nIDExIGJhbyBi4buNYyBj4bqjIG3hu5l0IMSRxKlhLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIHNob3VsZCBzdGFydCBhdCBibG9jayAwLFxuIgorIm5vdCBhdCBkaXNrYmxvY2sgJWQuXG4iCittc2dzdHIgIiIKKyJQaMOibiB2w7luZyBjaOG7qWEgY+G6oyBt4buZdCDEkcSpYSBwaOG6o2kgYuG6r3QgxJHhuqd1IHThuqFpIGto4buRaSAwLFxuIgorImNo4bupIGtow7RuZyBwaOG6o2kgdOG6oWkga2jhu5FpICVkLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKyJQaMOibiB2w7luZyBjaOG7qWEgY+G6oyBt4buZdCDEkcSpYSBjaOG7iSBn4buTbSAlZCBraOG7kWksXG4iCisidHJvbmcga2hpIMSRxKlhIGNo4bupYSAlZCBraOG7kWkuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiT25lIFBhcnRpdGlvbiAoIzExKSBzaG91bGQgY292ZXIgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICJN4buZdCBwaMOibiB2w7luZyAoIzExKSBj4bqnbiBjaOG7qWEgY+G6oyDhu5UgxJHEqWEuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICJQaMOibiB2w7luZyAlZCBraMO0bmcgYuG6r3QgxJHhuqd1IHRyw6puIHJhbmggZ2nhu5tpIHRy4bulLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIlBow6JuIHbDuW5nICVkIGtow7RuZyBr4bq/dCB0aMO6YyB0csOqbiByYW5nIGdp4bubaSB0cuG7pS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ3NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgUGFydGl0aW9uICVkIGFuZCAlZCBvdmVybGFwIGJ5ICVkIHNlY3RvcnMuXG4iCittc2dzdHIgIlBow6JuIHbDuW5nICVkIHbDoCAlZCBjaMOobiBsw6puIG5oYXUgJWQgcsOjbmggZ2hpLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDg0IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCBvZiAlOHUgc2VjdG9ycyAtIHNlY3RvcnMgJTh1LSV1XG4iCittc2dzdHIgIktob+G6o25nIHRy4buRbmcga2jDtG5nIHPhu60gZOG7pW5nICU4dSByw6NuaCBnaGkgLSByw6NuaCBnaGkgJTh1LSV1XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBib290IHBhcnRpdGlvbiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlBow6JuIHbDuW5nIGto4bufaSDEkeG7mW5nIGtow7RuZyB04buTbiB04bqhaS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisiXG4iCisiUGjDom4gdsO5bmcgdHJhbyDEkeG7lWkga2jDtG5nIHThu5NuIHThuqFpLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgc3dhcCBwYXJ0aXRpb24gaGFzIG5vIHN3YXAgdHlwZS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlBow6JuIHbDuW5nIHRyYW8gxJHhu5VpIGPDsyBo4buHIHRo4buRbmcgdOG6rXAgdGluIGtow7RuZyBwaOG6o2kga2nhu4N1IHRyYW8gxJHhu5VpLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0WW91IGhhdmUgY2hvc2VuIGFuIHVudXN1YWwgYm9vdCBmaWxlIG5hbWUuXG4iCittc2dzdHIgIlx0QuG6oW4gxJHDoyBjaOG7jW4gbeG7mXQgdMOqbiB04bqtcCB0aW4ga2jhu59pIMSR4buZbmcgbOG6oS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzMgorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSBZb3UgbWF5IGNoYW5nZSB0aGUgVGFnIG9mIG5vbi1lbXB0eSBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICJYaW4gbOG7l2kgY8OzIHRo4buDIELhuqFuIHRoYXkgxJHhu5VpIFRhZyBj4bunYSBwaMOibiB2w7luZyBraMO0bmcgcuG7l25nLlxuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTM4Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBvZiB0eXBlIFwiU0dJIHZvbGhkclwiLCB0aGUgSVJJWCBzeXN0ZW0gd2lsbCByZWx5IG9uIGl0IHRvXG4iCisicmV0cmlldmUgZnJvbSBpdHMgZGlyZWN0b3J5IHN0YW5kYWxvbmUgdG9vbHMgbGlrZSBzYXNoIGFuZCBmeC5cbiIKKyJPbmx5IHRoZSBcIlNHSSB2b2x1bWVcIiBlbnRpcmUgZGlzayBzZWN0aW9uIG1heSB2aW9sYXRlIHRoaXMuXG4iCisiVHlwZSBZRVMgaWYgeW91IGFyZSBzdXJlIGFib3V0IHRhZ2dpbmcgdGhpcyBwYXJ0aXRpb24gZGlmZmVyZW50bHkuXG4iCittc2dzdHIgIiIKKyJS4bqldCBraHV5w6puIGTDuW5nIGzDoCBwaMOibiB2w7luZyB04bqhaSBoaeG7h3UgMCBjw7MgbG/huqFpIGzDoFxuIgorIlwiU0dJIHZvbGhkclwiLCBo4buHIHRo4buRbmcgSVJJWCBz4bq9IGThu7FhIHRyw6puIMSRw7MgxJHhu4MgbOG6pXkgdOG7qyB0aMawXG4iCisibeG7pWMgxJHDsyBjw6FjIGPDtG5nIGPhu6UgxJHGoW4gbOG6uyBuaMawIHNhc2ggdsOgIGZ4LiBDaOG7iSBjw7MgY8OhYyDCqyBraOG7kWkgdGluIFNHSSDCu1xuIgorImNo4bupYSBj4bqjIG3hu5l0IMSRxKlhIG3hu5tpIG7hurFtIG5nb+G6oWkgbOG7hy4gR8O1IEPDkyBu4bq/dSBi4bqhbiBjaOG6r2MgY2jhuq9uIG114buRbiDEkeG6t3RcbiIKKyJ0aOG6uyBraMOhYyBjaG8gcGjDom4gdsO5bmcgbsOgeS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjU0MyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ5Cittc2dpZCAiWUVTXG4iCittc2dzdHIgIllFU1xuIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIFlvdSBrbm93LCBZb3UgZ290IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2s/XG4iCittc2dzdHIgIkLhuqFuIEPDsyBiaeG6v3QsIHLhurFuZyBi4bqhbiBjw7MgbeG7mXQgcGjDom4gdsO5bmcgxJHDqCBsw6puIG5oYXUgdHLDqm4gxJHEqWE/XG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBlbnRpcmUgZGlzayBlbnRyeSBhdXRvbWF0aWNhbGx5LlxuIgorbXNnc3RyICJUaOG7rSB04buxIMSR4buZbmcgcGjDom4gdsO5bmcgY+G6oyDEkcSpYS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjYzMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZW50aXJlIGRpc2sgaXMgYWxyZWFkeSBjb3ZlcmVkIHdpdGggcGFydGl0aW9ucy5cbiIKK21zZ3N0ciAi4buUIMSRxKlhIMSRw6MgY2jhu6lhIGPDoWMgcGjDom4gdsO5bmcuXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIkLhuqFuIGPDsyBt4buZdCBwaMOibiB2w7luZyDEkcOoIGzDqm4gbmhhdSB0csOqbiDhu5UgxJHEqWEuIEjDo3kgc+G7rWEgdHLGsOG7m2MhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NDQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgZWxldmVudGggcGFydGl0aW9uXG4iCisiY292ZXJzIHRoZSBlbnRpcmUgZGlzayBhbmQgaXMgb2YgdHlwZSBgU0dJIHZvbHVtZSdcbiIKK21zZ3N0ciAiIgorIlLhuqV0IGtodXnDqm4gZMO5bmcga2hpIHBow6JuIHbDuW5nIHPhu5Egbcaw4budaSBt4buZdCBjaOG7qWFcbiIKKyJj4bqjIOG7lSDEkcSpYSB2w6AgY8OzIGxv4bqhaSDCqyBraOG7kWkgdGluIFNHSSDCuy5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY2MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBnZXQgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzay4gRml4IGl0IGZpcnN0IVxuIgorbXNnc3RyICJC4bqhbiBz4bq9IGPDsyBt4buZdCBwaMOibiB2w7luZyDEkcOoIGzDqm4gbmhhdSB0csOqbiDhu5UgxJHEqWEuIEjDo3kgc+G7rWEgdHLGsOG7m2MhXG4iCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIExhc3QgJXMiCittc2dzdHIgIiAlcyBjdeG7kWkiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IFNHSSBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd2lsbCBiZSB1bnJlY292ZXJhYmx5IGxvc3QuXG4iCisiXG4iCittc2dzdHIgIiIKKyJYw6J5IGThu7FuZyBt4buZdCBuaMOjbiDEkcSpYSBTR0kgbeG7m2kuIFRoYXkgxJHhu5VpIHPhur0gY2jhu4kgZ2hpIHRyb25nIGLhu5kgbmjhu5ssXG4iCisiY2hvIMSR4bq/biBraGkgYuG6oW4gcXV54bq/dCDEkeG7i25oIGdoaSBjaMO6bmcuIFNhdSDEkcOzLCB04bqldCBuaGnDqm4sIG7hu5lpIGR1bmcgY8WpXG4iCisic+G6vSBt4bqldCB2w6Aga2jDtG5nIHRo4buDIHBo4bulYyBo4buTaS5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjcxOCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiAgQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXMuICBVc2luZyBnZW9tZXRyeSBjeWxpbmRlciB2YWx1ZSBvZiAlIgorImQuXG4iCisiVGhpcyB2YWx1ZSBtYXkgYmUgdHJ1bmNhdGVkIGZvciBkZXZpY2VzID4gMzMuOCBHQi5cbiIKK21zZ3N0ciAiIgorIkPhuqNuaCBiw6FvOiBCTEtHRVRTSVpFIGlvY3RsIGzhu5dpIHRyw6puICVzLiBT4butIGThu6VuZyBnacOhIHRy4buLIGPhuqV1IHRyw7pjIHRy4bulIGzDoCAlZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8ga2VlcCBwYXJhbWV0ZXJzIG9mIHBhcnRpdGlvbiAlZC5cbiIKK21zZ3N0ciAixJBhbmcgY+G7kSBnaeG7ryBs4bqhaSBjw6FjIHRoYW0gc+G7kSBj4bunYSBwaMOibiB2w7luZyAlZC5cbiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjczNAorIywgYy1mb3JtYXQKK21zZ2lkICJJRD0lMDJ4XHRTVEFSVD0lZFx0TEVOR1RIPSVkXG4iCittc2dzdHIgIklEPSUwMnhcdMSQ4bqmVT0lZFx0xJDhu5ggRMOAST0lZFxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgKK21zZ2lkICJVbmFzc2lnbmVkIgorbXNnc3RyICJDaMawYSBnw6FuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDAKK21zZ2lkICJTdW5PUyByb290IgorbXNnc3RyICJH4buRYyBTdW5PUyIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxCittc2dpZCAiU3VuT1Mgc3dhcCIKK21zZ3N0ciAiVHJhbyDEkeG7lWkgU3VuT1MiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MgorbXNnaWQgIlN1bk9TIHVzciIKK21zZ3N0ciAiU3VuT1MgdXNyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDMKK21zZ2lkICJXaG9sZSBkaXNrIgorbXNnc3RyICJD4bqjIMSRxKlhIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDQKK21zZ2lkICJTdW5PUyBzdGFuZCIKK21zZ3N0ciAiU3VuT1Mgc3RhbmQiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NQorbXNnaWQgIlN1bk9TIHZhciIKK21zZ3N0ciAiU3VuT1MgdmFyIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDYKK21zZ2lkICJTdW5PUyBob21lIgorbXNnc3RyICJTdW5PUyBob21lIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDcKK21zZ2lkICJTdW5PUyBhbHQgc2VjdG9ycyIKK21zZ3N0ciAiUsOjbmggZ2hpIHRoYXkgdGjhur8gU3VuT1MiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorbXNnaWQgIlN1bk9TIGNhY2hlZnMiCittc2dzdHIgIkjhu4cgdGjhu5FuZyB04bqtcCB0aW4gbmjhu5sgdOG6oW0gU3VuT1MiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OQorbXNnaWQgIlN1bk9TIHJlc2VydmVkIgorbXNnc3RyICJEw6BuaCByacOqbmcgU3VuT1MiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MyBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMworbXNnaWQgIkxpbnV4IHJhaWQgYXV0b2RldGVjdCIKK21zZ3N0ciAiVOG7sSDEkeG7mW5nIG5o4bqtbiByYSBMaW51eCByYWlkIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgY2hlY2tzdW0uXG4iCisiUHJvYmFibHkgeW91J2xsIGhhdmUgdG8gc2V0IGFsbCB0aGUgdmFsdWVzLFxuIgorImUuZy4gaGVhZHMsIHNlY3RvcnMsIGN5bGluZGVycyBhbmQgcGFydGl0aW9uc1xuIgorIm9yIGZvcmNlIGEgZnJlc2ggbGFiZWwgKHMgY29tbWFuZCBpbiBtYWluIG1lbnUpXG4iCittc2dzdHIgIiIKKyLEkMOjIG5o4bqtbiByYSBuaMOjbiDEkcSpYSBzdW4gduG7m2kgdOG7lW5nIGtp4buDbSB0cmEgY2hlY2tzdW1cbiIKKyJs4buXaS4gQ8OzIHRo4buDIGLhuqFuIHBo4bqjaSDEkeG6t3QgbOG6oWkgdOG6pXQgY+G6oyBjw6FjIGdpw6EgdHLhu4ssXG4iCisidi5kLiDEkeG6p3UgxJHhu41jLCByw6NuaCBnaGksIHRy4bulIHbDoCBwaMOibiB2w7luZyBob+G6t2NcbiIKKyJi4bqvdCBideG7mWMgbeG7mXQgbmjDo24gbeG7m2kgKGPDonUgbOG7h25oIMKrIHMgwrsgdHJvbmcgdHLDrG5oIMSRxqFuIGNow61uaClcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJEZXRlY3RlZCBzdW4gZGlza2xhYmVsIHdpdGggd3JvbmcgdmVyc2lvbiBbMHglMDh4XS5cbiIKK21zZ3N0ciAiVMOsbSB0aOG6pXkgbmjDo24gxJHEqWEgU3VuIGPDsyBwaGnDqm4gYuG6o24gc2FpIFsweCUwOHhdLlxuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBzYW5pdHkgWzB4JTA4eF0uXG4iCittc2dzdHIgIlTDrG0gdGjhuqV5IG5ow6NuIMSRxKlhIFN1biB24bubaSBz4buxIMSRw7puZyBt4buxYyBzYWkgWzB4JTA4eF0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIG51bV9wYXJ0aXRpb25zIFsldV0uXG4iCittc2dzdHIgIlTDrG0gdGjhuqV5IG5ow6NuIMSRxKlhIFN1biB24bubaSBz4buRIHBow6JuIHbDuW5nIChudW1fcGFydGl0aW9ucykgc2FpIFsldV0uXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKyJD4bqjbmggYsOhbyA6IGPDoWMgZ2nDoSB0cuG7iyBraMO0bmcgxJHDum5nIGPhuqduIHBo4bqjaSDEkcaw4bujYyBz4butYSBjaOG7r2EgbsOqbiBz4bq9IMSRxrDhu6NjIHPhu61hIGLhu59pICIKKyJ3KHJpdGUpIChnaGkgbmjhu5spXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IHN1biBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuXG4iCisiXG4iCittc2dzdHIgIiIKKyJYw6J5IGThu7FuZyBt4buZdCBuaMOjbiDEkcSpYSBzdW4gbeG7m2kuIFRoYXkgxJHhu5VpIHPhur0gY2jhu4kgZ2hpIHRyb25nIGLhu5kgbmjhu5ssXG4iCisiY2hvIMSR4bq/biBraGkgYuG6oW4gcXV54bq/dCDEkeG7i25oIGdoaSBjaMO6bmcuIFNhdSDEkcOzLCB04bqldCBuaGnDqm4sIG7hu5lpIGR1bmcgY8WpXG4iCisic+G6vSBt4bqldCB2w6Aga2jDtG5nIHRo4buDIHBo4bulYyBo4buTaS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMQorbXNnaWQgIlNlY3RvcnMvdHJhY2siCittc2dzdHIgIlLDo25oIGdoaS9yw6NuaCIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lc24ndCBlbmQgb24gY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiUGjDom4gdsO5bmcgJWQga2jDtG5nIGvhur90IHRow7pjIHRyw6puIHJhbmggZ2nhu5tpIHRy4bulXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiUGjDom4gdsO5bmcgJWQgxJHDqCBsw6puIG5oYXUgduG7m2kgY8OhYyBwaMOibiB2w7luZyBraMOhYyB0csOqbiByw6NuaCBnaGkgJWQtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIC0gc2VjdG9ycyAwLSVkXG4iCittc2dzdHIgIktob+G6o25nIHRy4buRbmcga2jDtG5nIHPhu60gZOG7pW5nIC0gcsOjbmggZ2hpIDAtJWRcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjM5MCBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzICVkLSVkXG4iCittc2dzdHIgIktob+G6o25nIHRy4buRbmcga2jDtG5nIHPhu60gZOG7pW5nIC0gcsOjbmggZ2hpICVkLSVkXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk90aGVyIHBhcnRpdGlvbnMgYWxyZWFkeSBjb3ZlciB0aGUgd2hvbGUgZGlzay5cbiIKKyJEZWxldGUgc29tZS9zaHJpbmsgdGhlbSBiZWZvcmUgcmV0cnkuXG4iCittc2dzdHIgIiIKKyJDw6FjIHBow6JuIHbDuW5nIGtow6FjIMSRw6MgY2jhu6lhIGPhuqMgxJHEqWEuXG4iCisiSMOjeSB4w7NhIGhheSB0aHUgbmjhu48gY2jDum5nIHRyxrDhu5tjIGtoaSB0aOG7rSBs4bqhaS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ0NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHRoaXJkIHBhcnRpdGlvbiBjb3ZlcnMgdGhlIHdob2xlIGRpc2tcbiIKKyJhbmQgaXMgb2YgdHlwZSBgV2hvbGUgZGlzaydcbiIKK21zZ3N0ciAiIgorIlLhuqV0IGtodXnDqm4gxJHhurd0IHBow6JuIHbDuW5nIHRo4bupIGJhIGNoaeG6v20gdG/DoG4gYuG7mSDEkcSpYVxuIgorInbDoCBjw7Mga2nhu4N1IMKrIFRvw6BuIMSRxKlhIMK7IChXaG9sZSBkaXNrKS5cbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAiUsOjbmggZ2hpICVkIMSRw6MgxJHGsOG7o2MgcGjDom4gcGjhu5FpXG4iCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBoYXZlbid0IGNvdmVyZWQgdGhlIHdob2xlIGRpc2sgd2l0aCB0aGUgM3JkIHBhcnRpdGlvbiwgYnV0IHlvdXIgdmFsdWVcbiIKKyIlZCAlcyBjb3ZlcnMgc29tZSBvdGhlciBwYXJ0aXRpb24uIFlvdXIgZW50cnkgaGFzIGJlZW4gY2hhbmdlZFxuIgorInRvICVkICVzXG4iCittc2dzdHIgIiIKKyJQaMOibiB2w7luZyB0aOG7qSAzIGtow7RuZyBjaOG7qWEgY+G6oyDhu5UgxJHEqWEsIG5oxrBuZyBjw6FjIGdpw6EgdHLhu4sgJWQgJXMgxJHDqCBsw6puXG4iCisibeG7mXQgc+G7kSBwaMOibiB2w7luZyBraMOhYy4gQ8OhYyBt4bulYyDEkcOjIHRoYXkgxJHhu5VpIHRow6BuaCAlZCAlc1xuIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZiB5b3Ugd2FudCB0byBtYWludGFpbiBTdW5PUy9Tb2xhcmlzIGNvbXBhdGliaWxpdHksIGNvbnNpZGVyIGxlYXZpbmcgdGhpc1xuIgorInBhcnRpdGlvbiBhcyBXaG9sZSBkaXNrICg1KSwgc3RhcnRpbmcgYXQgMCwgd2l0aCAldSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKyJO4bq/dSBi4bqhbiBtdeG7kW4gZHV5IHRyw6wgbeG7mXQgxJHEqWEgdMawxqFuZyB0aMOtY2ggduG7m2kgU3VuT1MvU29sYXJpcywgdGjDrCBj4bqnbiDEkeG7gyBwaMOiblxuIgorInbDuW5nIG7DoHkgbMOgIEPhuqMgxJHEqWEgKDUpLCBi4bqvdCDEkeG6p3UgdOG7qyAwLCB24bubaSAldSByw6NuaCBnaGlcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0NAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgVUZTLCBFWFQyRlMgZmlsZXN5c3RlbSBvciBTdW5PUyBzd2FwLiBQdXR0aW5nIExpbnV4IHN3YXBcbiIKKyJ0aGVyZSBtYXkgZGVzdHJveSB5b3VyIHBhcnRpdGlvbiB0YWJsZSBhbmQgYm9vdGJsb2NrLlxuIgorIlR5cGUgWUVTIGlmIHlvdSdyZSB2ZXJ5IHN1cmUgeW91IHdvdWxkIGxpa2UgdGhhdCBwYXJ0aXRpb25cbiIKKyJ0YWdnZWQgd2l0aCA4MiAoTGludXggc3dhcCk6ICIKK21zZ3N0ciAiIgorIlLhuqV0IGtodXnDqm4gZMO5bmcgcGjDom4gdsO5bmcgdOG6oWkgb2Zmc2V0IDAgY8OzIGjhu4cgdGjhu5FuZyB04bqtcCB0aW5cbiIKKyJVRlMsIEVYVDJGUyBoYXkgc3dhcCBTdW5PUy4gTuG6v3UgxJHhurd0IHRow6BuaCB2w7luZyB0cmFvIMSR4buVaSBj4bunYSBMaW51eCB0aMOsXG4iCisiY8OzIHRo4buDIGjhu6d5IGLhuqNuZyBwaMOibiB2w7luZyBj4bunYSBi4bqhbiB2w6Aga2jhu5FpIGto4bufaSDEkeG7mW5nLlxuIgorIkfDtSBDw5MgbuG6v3UgYuG6oW4gY2jhuq9jIGNo4bqvbiBtdeG7kW4gxJHhurd0IHBow6JuIHbDuW5nIMSRw7MgY8OzIHRo4bq7XG4iCisiODIgKHbDuW5nIHRyYW8gxJHhu5VpIGPhu6dhIExpbnV4KTogIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTdW4gZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIHJwbVxuIgorIiVkIGN5bGluZGVycywgJWQgYWx0ZXJuYXRlIGN5bGluZGVycywgJWQgcGh5c2ljYWwgY3lsaW5kZXJzXG4iCisiJWQgZXh0cmEgc2VjdHMvY3lsLCBpbnRlcmxlYXZlICVkOjFcbiIKKyJMYWJlbCBJRDogJXNcbiIKKyJWb2x1bWUgSUQ6ICVzXG4iCisiVW5pdHMgPSAlcyBvZiAlZCAqIDUxMiBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisixJDEqWEgJXMgKG5ow6NuIMSRxKlhIFN1bik6ICVkIMSR4bqndSDEkeG7jWMsICVsbHUgcsOjbmggZ2hpLCAlZCB2w7JuZy9waMO6dFxuIgorIiVkIHRy4bulLCAlZCB0cuG7pSB4ZW4ga+G6vSwgJWQgdHLhu6UgduG6rXQgbMO9XG4iCisiJWQgcsOjbmggZ2hpL3Ry4bulIHRow6ptLCDEkeG7mSB4ZW4ga+G6vSAlZDoxXG4iCisiTcOjIGhp4buHdSBuaMOjbjogJXNcbiIKKyJNw6MgaGnhu4d1IGto4buRaSB0aW46ICVzXG4iCisixJDGoW4gduG7iyA9ICVzIHRyw6puICVkICogNTEyIGJ5dGVcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyLEkMSpYSAlcyAobmjDo24gxJHEqWEgU3VuKTogJWQgxJHhuqd1IMSR4buNYywgJWxsdSByw6NuaCBnaGksICVkIHRy4bulXG4iCisixJDGoW4gduG7iyA9ICVzIHRyw6puICVkICogNTEyIGJ5dGVcbiIKKyJcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgRmxhZyAgICBTdGFydCAgICAgICBFbmQgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIlKnMgQ+G7nSAgICDEkOG6p3UgICAgICAgQ3Xhu5FpICAgIEto4buRaSAgIElkICBI4buHIHRo4buRbmdcbiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjYyNQorbXNnaWQgIk51bWJlciBvZiBhbHRlcm5hdGUgY3lsaW5kZXJzIgorbXNnc3RyICJT4buRIHRy4bulIHhlbiBr4bq9IgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjM3Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIlPhu5EgcsOjbmggZ2hpIGThu7EgcGjDsm5nIG3hu5dpIHRy4bulIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjQ0Cittc2dpZCAiSW50ZXJsZWF2ZSBmYWN0b3IiCittc2dzdHIgIkjhu4cgc+G7kSB4ZW4ga+G6vSIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY1MQorbXNnaWQgIlJvdGF0aW9uIHNwZWVkIChycG0pIgorbXNnc3RyICJU4buRYyDEkeG7mSBxdWF5IChycG0pIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjU4Cittc2dpZCAiTnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIKK21zZ3N0ciAiU+G7kSB0cuG7pSB24bqtdCBsw70iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NgorbXNnaWQgIkVtcHR5IgorbXNnc3RyICJS4buXbmciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NworbXNnaWQgIkZBVDEyIgorbXNnc3RyICJGQVQxMiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4Cittc2dpZCAiWEVOSVggcm9vdCIKK21zZ3N0ciAiWEVOSVggZ+G7kWMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OQorbXNnaWQgIlhFTklYIHVzciIKK21zZ3N0ciAiWEVOSVggdXNyIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwCittc2dpZCAiRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYgPDMyTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMQorbXNnaWQgIkV4dGVuZGVkIgorbXNnc3RyICJN4bufIHLhu5luZyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMgorbXNnaWQgIkZBVDE2IgorbXNnc3RyICJGQVQxNiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMworbXNnaWQgIkhQRlMvTlRGUyIKK21zZ3N0ciAiSFBGUy9OVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE0Cittc2dpZCAiQUlYIgorbXNnc3RyICJBSVgiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTUKK21zZ2lkICJBSVggYm9vdGFibGUiCittc2dzdHIgIkFUWCBjw7MgdGjhu4Mga2jhu59pIMSR4buZbmciCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTYKK21zZ2lkICJPUy8yIEJvb3QgTWFuYWdlciIKK21zZ3N0ciAiT1MvMiBRdeG6o24gbMO9IGto4bufaSDEkeG7mW5nIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiAoTEJBKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICJXOTUgRXh0J2QgKExCQSkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICJPUFVTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIyCittc2dpZCAiSGlkZGVuIEZBVDEyIgorbXNnc3RyICJGQVQxMiDhuqluIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIzCittc2dpZCAiQ29tcGFxIGRpYWdub3N0aWNzIgorbXNnc3RyICJDaHXhuqluIMSRb8OhbiBDb21wYXEiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjQKK21zZ2lkICJIaWRkZW4gRkFUMTYgPDMyTSIKK21zZ3N0ciAiRkFUMTYg4bqpbiA8MzJNIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI1Cittc2dpZCAiSGlkZGVuIEZBVDE2IgorbXNnc3RyICJGQVQxNiDhuqluIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiSFBGUy9OVEZTIOG6qW4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjcKK21zZ2lkICJBU1QgU21hcnRTbGVlcCIKK21zZ3N0ciAiQVNUIFNtYXJ0U2xlZXAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjgKK21zZ2lkICJIaWRkZW4gVzk1IEZBVDMyIgorbXNnc3RyICJXOTUgRkFUMzIg4bqpbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOQorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIlc5NSBGQVQzMiDhuqluIChMQkEpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMwCittc2dpZCAiSGlkZGVuIFc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiVzk1IEZBVDE2IChMQkEpIOG6qW4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzEKK21zZ2lkICJORUMgRE9TIgorbXNnc3RyICJORUMgRE9TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMyCittc2dpZCAiUGxhbiA5IgorbXNnc3RyICJQbGFuIDkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzMKK21zZ2lkICJQYXJ0aXRpb25NYWdpYyByZWNvdmVyeSIKK21zZ3N0ciAiS2jDtGkgcGjhu6VjIFBhcnRpdGlvbk1hZ2ljIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM0Cittc2dpZCAiVmVuaXggODAyODYiCittc2dzdHIgIlZlbml4IDgwMjg2IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM1Cittc2dpZCAiUFBDIFBSZVAgQm9vdCIKK21zZ3N0ciAiS2jhu59pIMSR4buZbmcgUFBDIFBSZVAiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIlNGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiUU5YNC54IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICJRTlg0LnggcGjhuqduIDIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIlFOWDQueCBwaOG6p24gMyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MAorbXNnaWQgIk9uVHJhY2sgRE0iCittc2dzdHIgIk9uVHJhY2sgRE0iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDEKK21zZ2lkICJPblRyYWNrIERNNiBBdXgxIgorbXNnc3RyICJPblRyYWNrIERNNiBBdXgxIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQyCittc2dpZCAiQ1AvTSIKK21zZ3N0ciAiQ1AvTSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MworbXNnaWQgIk9uVHJhY2sgRE02IEF1eDMiCittc2dzdHIgIk9uVHJhY2sgRE02IEF1eDMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDQKK21zZ2lkICJPblRyYWNrRE02IgorbXNnc3RyICJPblRyYWNrRE02IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ1Cittc2dpZCAiRVotRHJpdmUiCittc2dzdHIgIkVaLURyaXZlIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ2Cittc2dpZCAiR29sZGVuIEJvdyIKK21zZ3N0ciAiR29sZGVuIEJvdyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NworbXNnaWQgIlByaWFtIEVkaXNrIgorbXNnc3RyICJQcmlhbSBFZGlzayIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjkyCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTkKK21zZ2lkICJTcGVlZFN0b3IiCittc2dzdHIgIlNwZWVkU3RvciIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0OQorbXNnaWQgIkdOVSBIVVJEIG9yIFN5c1YiCittc2dzdHIgIkdOVSBIVVJEIGhheSBTeXNWIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUwCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMjg2IgorbXNnc3RyICJOb3ZlbGwgTmV0d2FyZSAyODYiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTEKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAzODYiCittc2dzdHIgIk5vdmVsbCBOZXR3YXJlIDM4NiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MgorbXNnaWQgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKK21zZ3N0ciAiQuG6o29t4bqtdMSRxKlhIMSQYS1raOG7n2ktxJHhu5luZyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MworbXNnaWQgIlBDL0lYIgorbXNnc3RyICJQQy9JWCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiTWluaXggY8WpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIk1pbnV4IC8gTGludXggY8WpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU2Cittc2dpZCAiTGludXggc3dhcCAvIFNvbGFyaXMiCittc2dzdHIgIlRyYW8gxJHhu5VpIExpbnV4IC8gU29sYXJpcyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1OAorbXNnaWQgIk9TLzIgaGlkZGVuIEM6IGRyaXZlIgorbXNnc3RyICJPUy8yIOG7lSDEkcSpYSBDOiDhuqluIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU5Cittc2dpZCAiTGludXggZXh0ZW5kZWQiCittc2dzdHIgIkxpbnV4IG3hu58gcuG7mW5nIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYwIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjEKK21zZ2lkICJOVEZTIHZvbHVtZSBzZXQiCittc2dzdHIgIkLhu5kga2jhu5FpIHRpbiBOVEZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYyCittc2dpZCAiTGludXggcGxhaW50ZXh0IgorbXNnc3RyICJMaW51eCBuaOG6rXAgdGjDtCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NAorbXNnaWQgIkFtb2ViYSIKK21zZ3N0ciAiQW1vZWJhIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY1Cittc2dpZCAiQW1vZWJhIEJCVCIKK21zZ3N0ciAiQW1vZWJhIEJCVCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NgorbXNnaWQgIkJTRC9PUyIKK21zZ3N0ciAiQlNEL09TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY3Cittc2dpZCAiSUJNIFRoaW5rcGFkIGhpYmVybmF0aW9uIgorbXNnc3RyICJOZ+G7pyDEkeG7mW5nIGPhu6dhIElCTSBUaGlua3BhZCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OAorbXNnaWQgIkZyZWVCU0QiCittc2dzdHIgIkZyZWVCU0QiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjkKK21zZ2lkICJPcGVuQlNEIgorbXNnc3RyICJPcGVuQlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcwCittc2dpZCAiTmVYVFNURVAiCittc2dzdHIgIk5lWFRTVEVQIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcxCittc2dpZCAiRGFyd2luIFVGUyIKK21zZ3N0ciAiRGFyd2luIFVGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MgorbXNnaWQgIk5ldEJTRCIKK21zZ3N0ciAiTmV0QlNEIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjczCittc2dpZCAiRGFyd2luIGJvb3QiCittc2dzdHIgIkto4bufaSDEkeG7mW5nIERhcndpbiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NAorbXNnaWQgIkhGUyAvIEhGUysiCittc2dzdHIgIkhGUyAvIEhGUysiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzUKK21zZ2lkICJCU0RJIGZzIgorbXNnc3RyICJI4buHIHRo4buRbmcgdOG6rXAgdGluIEJTREkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIlRyYW8gxJHhu5VpIEJTREkiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzcKK21zZ2lkICJCb290IFdpemFyZCBoaWRkZW4iCittc2dzdHIgIlRodeG6rXQgc8SpIGto4bufaSDEkeG7mW5nIOG6qW4iCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzgKK21zZ2lkICJTb2xhcmlzIGJvb3QiCittc2dzdHIgIkto4bufaSDEkeG7mW5nIFNvbGFyaXMiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzkKK21zZ2lkICJTb2xhcmlzIgorbXNnc3RyICJTb2xhcmlzIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgwCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTIpIgorbXNnc3RyICJEUkRPUy9zZWMgKEZBVC0xMikiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODEKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xNiA8IDMyTSkiCittc2dzdHIgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MgorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2KSIKK21zZ3N0ciAiRFJET1Mvc2VjIChGQVQtMTYpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgzCittc2dpZCAiU3lyaW54IgorbXNnc3RyICJTeXJpbngiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODQKK21zZ2lkICJOb24tRlMgZGF0YSIKK21zZ3N0ciAiROG7ryBsaeG7h3Uga2jDtG5nIHBo4bqjaSBGUyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NQorbXNnaWQgIkNQL00gLyBDVE9TIC8gLi4uIgorbXNnc3RyICJDUC9NIC8gQ1RPUyAvIC4uLiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NworbXNnaWQgIkRlbGwgVXRpbGl0eSIKK21zZ3N0ciAiQ8O0bmcgY+G7pSBEZWxsIgorCisjIE5hbWU6IGRvbid0IHRyYW5zbGF0ZS9Uw6puOiDEkeG7q25nIGThu4tjaAorIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OAorbXNnaWQgIkJvb3RJdCIKK21zZ3N0ciAiQm9vdEl0IgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg5Cittc2dpZCAiRE9TIGFjY2VzcyIKK21zZ3N0ciAiVHJ1eSBj4bqtcCBET1MiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTEKK21zZ2lkICJET1MgUi9PIgorbXNnc3RyICJET1MgUi9PIChjaOG7iSDEkeG7jWMpIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk0Cittc2dpZCAiQmVPUyBmcyIKK21zZ3N0ciAiSOG7hyB0aOG7kW5nIHThuq1wIHRpbiBCZU9TIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk1Cittc2dpZCAiR1BUIgorbXNnc3RyICJHUFQiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTYKK21zZ2lkICJFRkkgKEZBVC0xMi8xNi8zMikiCittc2dzdHIgIkVGSSAoRkFULTEyLzE2LzMyKSIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NworbXNnaWQgIkxpbnV4L1BBLVJJU0MgYm9vdCIKK21zZ3N0ciAiS2jhu59pIMSR4buZbmcgTGludXgvUEEtUklTQyIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICJET1MgcGjhu6UiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAxCittc2dpZCAiVk13YXJlIFZNRlMiCittc2dzdHIgIlZNd2FyZSBWTUZTIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwMgorbXNnaWQgIlZNd2FyZSBWTUtDT1JFIgorbXNnc3RyICJWTXdhcmUgVk1LQ09SRSIKKworIyBOYW1lOiBkb24ndCB0cmFuc2xhdGUvVMOqbjogxJHhu6tuZyBk4buLY2gKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTA2Cittc2dpZCAiTEFOc3RlcCIKK21zZ3N0ciAiTEFOc3RlcCIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDcKK21zZ2lkICJCQlQiCittc2dzdHIgIkJCVCIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3Igb24gJXMgLSBjYW5ub3Qgc2VlayB0byAlbHVcbiIKK21zZ3N0ciAibOG7l2kgdMOsbSBraeG6v20gdHLDqm4gJXMgLSBraMO0bmcgdGjhu4MgdMOsbSB04bubaSAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3I6IHdhbnRlZCAweCUwOHglMDh4LCBnb3QgMHglMDh4JTA4eFxuIgorbXNnc3RyICJs4buXaSB0w6xtIG7GoWk6IGPhuqduIDB4JTA4eCUwOHgsIG5o4bqtbiDEkcaw4bujYyAweCUwOHglMDh4XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxNQorbXNnaWQgIm91dCBvZiBtZW1vcnkgLSBnaXZpbmcgdXBcbiIKK21zZ3N0ciAidHLDoG4gYuG7mSBuaOG7myAtIGtow7RuZyB0aOG7gyB0aeG6v3AgdOG7pWNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIwIGZkaXNrL3NmZGlzay5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIGVycm9yIG9uICVzIC0gY2Fubm90IHJlYWQgc2VjdG9yICVsdVxuIgorbXNnc3RyICJs4buXaSDEkeG7jWMgdHLDqm4gJXMgLSBraMO0bmcgdGjhu4MgxJHhu41jIHLDo25oIGdoaSAlbHVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkVSUk9SOiBzZWN0b3IgJWx1IGRvZXMgbm90IGhhdmUgYW4gbXNkb3Mgc2lnbmF0dXJlXG4iCittc2dzdHIgIkzhu5ZJOiByw6NuaCBnaGkgJWx1IGtow7RuZyBjw7MgZOG6pXUgaGnhu4d1IGPhu6dhIG1zZG9zXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlcyAtIGNhbm5vdCB3cml0ZSBzZWN0b3IgJWx1XG4iCittc2dzdHIgImzhu5dpIGdoaSB0csOqbiAlcyAtIGtow7RuZyB0aOG7gyBnaGkgcsOjbmggZ2hpICVsdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHNlY3RvciBzYXZlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyBwaMOibiB2w7luZyByw6NuaCBnaGkgZ2hpIHThuq1wIHRpbiAoJXMpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZSBlcnJvciBvbiAlc1xuIgorbXNnc3RyICJs4buXaSBnaGkgdHLDqm4gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJraMO0bmcgdGjhu4MgeMOhYyDEkeG7i25oIHThuq1wIHRpbiBwaOG7pWMgaOG7k2kgcGjDom4gdsO5bmcgKCVzKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNDAKK21zZ2lkICJwYXJ0aXRpb24gcmVzdG9yZSBmaWxlIGhhcyB3cm9uZyBzaXplIC0gbm90IHJlc3RvcmluZ1xuIgorbXNnc3RyICJ04bqtcCB0aW4gcGjhu6VjIGjhu5NpIHBow6JuIHbDuW5nIGPDsyBrw61jaCBj4buhIHNhaSAtIGtow7RuZyBwaOG7pWMgaOG7k2lcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQ0Cittc2dpZCAib3V0IG9mIG1lbW9yeT9cbiIKK21zZ3N0ciAidHLDoG4gYuG7mSBuaOG7mz9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyB04bqtcCB0aW4gcGjhu6VjIGjhu5NpIHBow6JuIHbDuW5nICglcylcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAibOG7l2kgxJHhu41jICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBkZXZpY2UgJXMgZm9yIHdyaXRpbmdcbiIKK21zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58gdGhp4bq/dCBi4buLICVzIMSR4buDIGdoaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3Igd3JpdGluZyBzZWN0b3IgJWx1IG9uICVzXG4iCittc2dzdHIgImzhu5dpIGdoaSByw6NuaCBnaGkgJWx1IHRyw6puICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IGdlb21ldHJ5XG4iCittc2dzdHIgIsSQxKlhICVzOiBraMO0bmcgdGjhu4MgbOG6pXkgY+G6pXUgdHLDumNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICLEkMSpYSAlczoga2jDtG5nIHRo4buDIGzhuqV5IGvDrWNoIGPhu6FcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzdGFydD0lbHUgLSB0aGlzIGxvb2tzIGxpa2UgYSBwYXJ0aXRpb24gcmF0aGVyIHRoYW5cbiIKKyJ0aGUgZW50aXJlIGRpc2suIFVzaW5nIGZkaXNrIG9uIGl0IGlzIHByb2JhYmx5IG1lYW5pbmdsZXNzLlxuIgorIltVc2UgdGhlIC0tZm9yY2Ugb3B0aW9uIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzXVxuIgorbXNnc3RyICIiCisiQ+G6o25oIGLDoW86IMSR4bqndT0lbHUgLSBnaeG7kW5nIG3hu5l0IHBow6JuIHbDuW5nIGjGoW4gbMOgIGPhuqMgbeG7mXQgxJHEqWEuXG4iCisiU+G7rSBk4bulbmcgZmRpc2sgY8OzIHRo4buDIGtow7RuZyBjw7Mgw70gbmdoxKlhIGfDrC5cbiIKKyJbU+G7rSBk4bulbmcgdMO5eSBjaOG7jW4gLS1mb3JjZSBu4bq/dSBi4bqhbiB0aOG7sWMgc+G7sSBtdeG7kW5dXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBoZWFkc1xuIgorbXNnc3RyICJD4bqjbmggYsOhbyA6IEhESU9fR0VUR0VPIG7Ds2kgY8OzICVsdSDEkeG6p3UgxJHhu41jXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBIRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBzZWN0b3JzXG4iCittc2dzdHIgIkPhuqNuaCBiw6FvIDogSERJT19HRVRHRU8gbsOzaSBjw7MgJWx1IHLDo25oIGdoaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogQkxLR0VUU0laRS9IRElPX0dFVEdFTyBzYXlzIHRoYXQgdGhlcmUgYXJlICVsdSBjeWxpbmRlcnNcbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW8gOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIG7Ds2kgY8OzICVsdSB0cuG7pVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHVubGlrZWx5IG51bWJlciBvZiBzZWN0b3JzICglbHUpIC0gdXN1YWxseSBhdCBtb3N0IDYzXG4iCisiVGhpcyB3aWxsIGdpdmUgcHJvYmxlbXMgd2l0aCBhbGwgc29mdHdhcmUgdGhhdCB1c2VzIEMvSC9TIGFkZHJlc3NpbmcuXG4iCittc2dzdHIgIiIKKyJD4bqjbmggYsOhbzoga2jDtG5nIGdp4buRbmcgc+G7kSBzZWN0b3IgKCVsdSkgLSB0aMaw4budbmcgbMOgIDYzXG4iCisiU+G6vSBu4bqjeSBzaW5oIHbhuqVuIMSR4buBIHbhu5tpIHThuqV0IGPhuqMgcGjhuqduIG3hu4FtIHPhu60gZOG7pW5nIHZp4buHYyDEkcOhbmggxJHhu4thIGNo4buJIEMvSC9TLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorIlxuIgorIsSQxKlhICVzOiAlbHUgdHLhu6UsICVsdSDEkeG6p3UgxJHhu41jLCAlbHUgcsOjbmggZ2hpL3LDo25oXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjU5NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBoZWFkOiAlbHUgKHNob3VsZCBiZSBpbiAwLSVsdSlcbiIKK21zZ3N0ciAiIgorIiVzIGPhu6dhIHBow6JuIHbDuW5nICVzIGPDsyBz4buRIMSR4bqndSDEkeG7jWMga2jDtG5nIHRo4buDIGPDszogJWx1IChwaOG6o2kgdHJvbmcga2hv4bqjbmcgMC0lIgorImx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3Igc2VjdG9yOiAlbHUgKHNob3VsZCBiZSBpbiAxLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyBj4bunYSBwaMOibiB2w7luZyAlcyBjw7Mgc+G7kSByw6NuaCBnaGkga2jDtG5nIHRo4buDIGPDszogJWx1IChwaOG6o2kgdHJvbmcga2hv4bqjbmcgMS0lIgorImx1KVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo2MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgY3lsaW5kZXJzOiAlbHUgKHNob3VsZCBiZSBpbiAwLSUiCisibHUpXG4iCittc2dzdHIgIiIKKyIlcyBj4bunYSBwaMOibiB2w7luZyAlcyBjw7Mgc+G7kSB0cuG7pSBraMO0bmcgdGjhu4MgY8OzOiAlbHUgKHBo4bqjaSB0cm9uZyBraG/huqNuZyAxLSVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJZCAgTmFtZVxuIgorIlxuIgorbXNnc3RyICIiCisiSWQgIFTDqm5cbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSAuLi5cbiIKK21zZ3N0ciAixJBhbmcgxJHhu41jIGzhuqFpIGLhuqNuZyBwaMOibiB2w7luZyAuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODExCittc2dpZCAiIgorIlRoZSBjb21tYW5kIHRvIHJlLXJlYWQgdGhlIHBhcnRpdGlvbiB0YWJsZSBmYWlsZWQuXG4iCisiUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4KDgpIG9yIHJlYm9vdCB5b3VyIHN5c3RlbSBub3csXG4iCisiYmVmb3JlIHVzaW5nIG1rZnNcbiIKK21zZ3N0ciAiIgorIkzhu5dpIGNo4bqheSBjw6J1IGzhu4duaCDEkeG7jWMgbOG6oWkgYuG6o25nIHBow6JuIHbDuW5nLlxuIgorIkjDo3kgY2jhuqF5IGPDtG5nIGPhu6UgcGFydHByb2JlKDgpIGhheSBrcGFydHgoOCksXG4iCisiaG/hurdjIGto4bufaSDEkeG7mW5nIGzhuqFpIGjhu4cgdGjhu5FuZyBuZ2F5IGLDonkgZ2nhu50sXG4iCisidHLGsOG7m2Mga2hpIGTDuW5nIG1rZnMuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxNworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjbG9zaW5nICVzXG4iCittc2dzdHIgIkzhu5dpIMSRw7NuZyAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo4NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIHN1Y2ggcGFydGl0aW9uXG4iCittc2dzdHIgIiVzOiBraMO0bmcgY8OzIHBow6JuIHbDuW5nIG5oxrAgduG6rXlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODc4Cittc2dpZCAidW5yZWNvZ25pemVkIGZvcm1hdCAtIHVzaW5nIHNlY3RvcnNcbiIKK21zZ3N0ciAixJHhu4tuaCBk4bqhbmcga2jDtG5nIG5o4bqtbiByYSAtIHPhu60gZOG7pW5nIHLDo25oIGdoaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5pbXBsZW1lbnRlZCBmb3JtYXQgLSB1c2luZyAlc1xuIgorbXNnc3RyICLEkeG7i25oIGThuqFuZyBjaMawYSBo4buXIHRy4bujIC0gc+G7rSBk4bulbmcgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGN5bGluZGVycyBvZiAlbHUgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyLEkMahbiB24buLID0gdHLhu6UgJWx1IGJ5dGUsIGto4buRaSAxMDI0IGJ5dGUsIMSR4bq/bSB04burICVkXG4iCisiXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgICAgRW5kICAgI2N5bHMgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiICAgVGhp4bq/dCBi4buLIEto4bufaSDEkeG7mW5nIMSQ4bqndSAgICAgQ3Xhu5FpICAgI3Ry4bulICAgICNraOG7kWkgICBJZCAgSOG7hyB0aOG7kW5nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjk0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVW5pdHMgPSBzZWN0b3JzIG9mIDUxMiBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisixJDGoW4gduG7iyA9IHNlY3RvciA1MTIgYnl0ZSwgxJHhur9tIHThu6sgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIFRoaeG6v3QgYuG7iyBLaOG7n2kgxJHhu5luZyDEkOG6p3UgICAgIEN14buRaSAgICNyw6NuaCBnaGkgIElkICBI4buHIHRo4buRbmdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyLEkMahbiB24buLID0ga2jhu5FpIDEwMjQgYnl0ZSwgxJHhur9tIHThu6sgJWRcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgU3RhcnQgICAgICAgRW5kICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIFRoaeG6v3QgYuG7iyBLaOG7n2kgxJHhu5luZyDEkOG6p3UgICAgIEN14buRaSAgICAjS2jhu5FpICAgSWQgIEjhu4cgdGjhu5FuZ1xuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gbWViaWJ5dGVzIG9mIDEwNDg1NzYgYnl0ZXMsIGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKyLEkMahbiB24buLID0gbWViaWJ5dGUgMTA0ODU3NiBieXRlLCBraOG7kWkgMTAyNCBieXRlLCDEkeG6v20gdOG7qyAlZFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzo5NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICBFbmQgICAgTWlCICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiAgIFRoaeG6v3QgYuG7iyBLaOG7n2kgxJHhu5luZyDEkOG6p3UgICAgIE1pQiAgICAjS2jhu5FpICAgSWQgIEjhu4cgdGjhu5FuZ1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiXHRcdMSR4bqndTogKGMsaCxzKSBtb25nIMSR4bujaSAoJWxkLCVsZCwlbGQpIHTDrG0gdGjhuqV5ICglbGQsJWxkLCVsZClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMAorIywgYy1mb3JtYXQKK21zZ2lkICJcdFx0ZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICJcdFx0Y3Xhu5FpOiAoYyxoLHMpIG1vbmcgxJHhu6NpICglbGQsJWxkLCVsZCkgdMOsbSB0aOG6pXkgKCVsZCwlbGQsJWxkKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIzCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiBlbmRzIG9uIGN5bGluZGVyICVsZCwgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGRpc2tcbiIKK21zZ3N0ciAicGjDom4gdsO5bmcga+G6v3QgdGjDumMgdHLDqm4gdHLhu6UgJWxkLCB2xrDhu6N0IHF1w6EgxJFp4buDbSBjdeG7kWkgY+G7p2EgxJHEqWFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5IHBow6JuIHbDuW5nIG7DoG9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogVGhlIHBhcnRpdGlvbiB0YWJsZSBsb29rcyBsaWtlIGl0IHdhcyBtYWRlXG4iCisiICBmb3IgQy9IL1M9Ki8lbGQvJWxkIChpbnN0ZWFkIG9mICVsZC8lbGQvJWxkKS5cbiIKKyJGb3IgdGhpcyBsaXN0aW5nIEknbGwgYXNzdW1lIHRoYXQgZ2VvbWV0cnkuXG4iCittc2dzdHIgIiIKKyJD4bqjbmggYsOhbzogQuG6o25nIHBow6JuIHbDuW5nIGPDsyB24bq7IG5oxrAgxJHGsOG7o2MgdOG6oW8gcmFcbiIKKyJ24bubaSBDL0gvUz0qLyVsZC8lbGQgKHRoYXkgdsOsICVsZC8lbGQvJWxkKS5cbiIKKyJUw7RpIHPhur0gdGjhu6thIG5o4bqtbiBj4bqldSB0csO6YyDEkcOzIGNobyBkYW5oIHPDoWNoIG7DoHkuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjExODYKK21zZ2lkICJubyBwYXJ0aXRpb24gdGFibGUgcHJlc2VudC5cbiIKK21zZ3N0ciAia2jDtG5nIGPDsyBi4bqjbmcgcGjDom4gdsO5bmcgbsOgby5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIKK21zZ3N0ciAia+G7syBs4bqhLCBjaOG7iSBjw7MgJWQgcGjDom4gdsO5bmcgeMOhYyDEkeG7i25oLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iCittc2dzdHIgIkPhuqNuaCBiw6FvOiBwaMOibiB2w7luZyAlcyBjw7Mga8OtY2ggY+G7oSAwIG5oxrBuZyBraMO0bmcgxJHGsOG7o2MgxJHDoW5oIGThuqV1IHLhu5duZ1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBpcyBib290YWJsZVxuIgorbXNnc3RyICJD4bqjbmggYsOhbzogcGjDom4gdsO5bmcgJXMgY8OzIGvDrWNoIGPhu6EgMCB2w6AgY8OzIHRo4buDIGto4bufaSDEkeG7mW5nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogcGFydGl0aW9uICVzIGhhcyBzaXplIDAgYW5kIG5vbnplcm8gc3RhcnRcbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW86IHBow6JuIHbDuW5nICVzIGPDsyBrw61jaCBj4buhIDAgdsOgIMSRaeG7g20gxJHhuqd1IGtow6FjIDBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICJD4bqjbmggYsOhbzogcGjDom4gdsO5bmcgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjE1CisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5vdCBjb250YWluZWQgaW4gcGFydGl0aW9uICVzXG4iCittc2dzdHIgImtow7RuZyBjaOG7qWEgdHJvbmcgcGjDom4gdsO5bmcgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb25zICVzICIKK21zZ3N0ciAiQ+G6o25oIGLDoW86IGPDoWMgcGjDom4gdsO5bmcgJXMgIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI3CisjLCBjLWZvcm1hdAorbXNnaWQgImFuZCAlcyBvdmVybGFwXG4iCittc2dzdHIgInbDoCAlcyDEkcOoIGzDqm4gbmhhdVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgY29udGFpbnMgcGFydCBvZiB0aGUgcGFydGl0aW9uIHRhYmxlIChzZWN0b3IgJWx1KSxcbiIKKyJhbmQgd2lsbCBkZXN0cm95IGl0IHdoZW4gZmlsbGVkXG4iCittc2dzdHIgIiIKKyJD4bqjbmggYsOhbyA6IHBow6JuIHbDuW5nICVzIGNo4bupYSBt4buZdCBwaOG6p24gY+G7p2EgYuG6o25nIHBow6JuIHbDuW5nIChyw6NuaCBnaGkgJWx1KSxcbiIKKyJ2w6Agc+G6vSBo4buneSBuw7Mga2hpIMSR4bqneVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBzdGFydHMgYXQgc2VjdG9yIDBcbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW86IHBow6JuIHbDuW5nICVzIGLhuq90IMSR4bqndSB04bqhaSByw6NuaCBnaGkgMFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBleHRlbmRzIHBhc3QgZW5kIG9mIGRpc2tcbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW86IHBow6JuIHbDuW5nICVzIGvDqW8gZMOgaSBxdcOhIMSRaeG7g20gY3Xhu5FpIMSRxKlhXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyNjkKK21zZ2lkICIiCisiQW1vbmcgdGhlIHByaW1hcnkgcGFydGl0aW9ucywgYXQgbW9zdCBvbmUgY2FuIGJlIGV4dGVuZGVkXG4iCisiIChhbHRob3VnaCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gdW5kZXIgTGludXgpXG4iCittc2dzdHIgIiIKKyJUcm9uZyBz4buRIGPDoWMgcGjDom4gdsO5bmcgY2jDrW5oLCBuaGnhu4F1IG5o4bqldCBjaOG7iSBjw7MgbeG7mXQgbMOgIG3hu58gcuG7mW5nXG4iCisiICht4bq3YyBkw7kgxJHDonkga2jDtG5nIHBo4bqjaSBsw6AgduG6pW4gxJHhu4EgZMaw4bubaSBMaW51eClcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJD4bqjbmggYsOhbzogcGjDom4gdsO5bmcgJXMga2jDtG5nIGLhuq90IMSR4bqndSB0csOqbiByYW5oIGdp4bubaSB0cuG7pVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBlbmQgYXQgYSBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICJD4bqjbmggYsOhbzogcGjDom4gdsO5bmcgJXMga2jDtG5nIGvhur90IHRow7pjIHRyw6puIHJhbmggZ2nhu5tpIHRy4bulXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzMTEKK21zZ2lkICIiCisiV2FybmluZzogbW9yZSB0aGFuIG9uZSBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiQ+G6o25oIGLDoW86IGPDsyBuaGnhu4F1IGjGoW4gbeG7mXQgcGjDom4gdsO5bmcgY2jDrW5oIMSRxrDhu6NjIMSRw6FuaCBk4bqldSBjw7MgdGjhu4Mga2jhu59pXG4iCisixJHhu5luZy4gxJDDonkga2jDtG5nIHBo4bqjaSBsw6AgduG6pW4gxJHhu4EgxJHhu5FpIHbhu5tpIExJTE8sIG5oxrBuZyBNQlIgY+G7p2EgRE9TIHPhur0ga2jDtG5nXG4iCisia2jhu59pIMSR4buZbmcgxJHEqWEgbsOgeS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMxOAorbXNnaWQgIiIKKyJXYXJuaW5nOiB1c3VhbGx5IG9uZSBjYW4gYm9vdCBmcm9tIHByaW1hcnkgcGFydGl0aW9ucyBvbmx5XG4iCisiTElMTyBkaXNyZWdhcmRzIHRoZSBgYm9vdGFibGUnIGZsYWcuXG4iCittc2dzdHIgIiIKKyJD4bqjbmggYsOhbzogdGjDtG5nIHRoxrDhu51uZyBuZ8aw4budaSBkw7luZyBjaOG7iSBjw7MgdGjhu4Mga2jhu59pIMSR4buZbmcgdOG7qyBwaMOibiB2w7luZ1xuIgorImNow61uaC4gTElMTyBraMO0bmcgcXVhbiB0w6JtIMSR4bq/biBj4budIMKrIGPDsyB0aOG7gyBraOG7n2kgxJHhu5luZyDCuy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMyNAorbXNnaWQgIiIKKyJXYXJuaW5nOiBubyBwcmltYXJ5IHBhcnRpdGlvbiBpcyBtYXJrZWQgYm9vdGFibGUgKGFjdGl2ZSlcbiIKKyJUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTywgYnV0IHRoZSBET1MgTUJSIHdpbGwgbm90IGJvb3QgdGhpcyBkaXNrLlxuIgorbXNnc3RyICIiCisiQ+G6o25oIGLDoW86IGtow7RuZyBjw7MgcGjDom4gdsO5bmcgY2jDrW5oIG7DoG8gxJHGsOG7o2MgxJHDoW5oIGThuqV1IGPDsyB0aOG7gyBraOG7n2lcbiIKKyLEkeG7mW5nLiDEkMOieSBraMO0bmcgcGjhuqNpIGzDoCB24bqlbiDEkeG7gSDEkeG7kWkgduG7m2kgTElMTywgbmjGsG5nIE1CUiBj4bunYSBET1Mgc+G6vSBraMO0bmdcbiIKKyJraOG7n2kgxJHhu5luZyDEkcSpYSBuw6B5LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzM4Cittc2dpZCAic3RhcnQiCittc2dzdHIgIsSR4bqndSIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisicGFydGl0aW9uICVzOiBzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorInBow6JuIHbDuW5nICVzOiDEkeG6p3U6IChjLGgscykgbW9uZyDEkeG7o2kgKCVsZCwlbGQsJWxkKSB0w6xtIHRo4bqleSAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDcKK21zZ2lkICJlbmQiCittc2dzdHIgImN14buRaSIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gJXM6IGVuZDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorInBow6JuIHbDuW5nICVzOiBjdeG7kWk6IChjLGgscykgbW9uZyDEkeG7o2kgKCVsZCwlbGQsJWxkKSB0w6xtIHRo4bqleSAoJWxkLCVsZCwlbGQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICJwaMOibiB2w7luZyAlcyBr4bq/dCB0aMO6YyB0csOqbiB0cuG7pSAlbGQsIHbGsOG7o3QgcXXDoSDEkWnhu4NtIGN14buRaSBj4bunYSDEkcSpYVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBzaGlmdGVkIHN0YXJ0IG9mIHRoZSBleHRkIHBhcnRpdGlvbiBmcm9tICVsZCB0byAlbGRcbiIKKyIoRm9yIGxpc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGNoYW5nZSBpdHMgY29udGVudHMuKVxuIgorbXNnc3RyICIiCisiQ+G6o25oIGLDoW86IGThu4tjaCBjaHV54buDbiDEkeG6p3UgY+G7p2EgcGjDom4gdsO5bmcgbeG7n2kgcuG7mW5nIHThu6sgJWxkIHThu5tpICVsZFxuIgorIiAoQ2jhu4kgduG7m2kgbeG7pWMgxJHDrWNoIGxp4buHdCBrw6ouIEtow7RuZyB0aGF5IMSR4buVaSBu4buZaSBkdW5nLilcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM4NAorbXNnaWQgIiIKKyJXYXJuaW5nOiBleHRlbmRlZCBwYXJ0aXRpb24gZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeS5cbiIKKyJET1MgYW5kIExpbnV4IHdpbGwgaW50ZXJwcmV0IHRoZSBjb250ZW50cyBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorIkPhuqNuaCBiw6FvOiBwaMOibiB2w7luZyBt4bufIHLhu5luZyBraMO0bmcgYuG6r3QgxJHhuqd1IHRyw6puIHJhbmggZ2nhu5tpIHRy4bulLlxuIgorIkRPUyB2w6AgTGludXggc+G6vSBiacOqbiBk4buLY2ggbuG7mWkgZHVuZyBt4buZdCBjw6FjaCBraMOhYyBuaGF1LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICJxdcOhIG5oaeG7gXUgcGjDom4gdsO5bmcgLSBi4buPIHF1YSBuaOG7r25nIHBow6JuIHbDuW5nIHNhdSBuciAoJWQpXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MTcKK21zZ2lkICJ0cmVlIG9mIHBhcnRpdGlvbnM/XG4iCittc2dzdHIgImPDonkgcGjDom4gdsO5bmc/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MjUKK21zZ2lkICJkZXRlY3RlZCBEaXNrIE1hbmFnZXIgLSB1bmFibGUgdG8gaGFuZGxlIHRoYXRcbiIKK21zZ3N0ciAidMOsbSB0aOG6pXkgVHLDrG5oIFF14bqjbiBMw70gxJDEqWEgLSBraMO0bmcgdGjhu4MgxJFp4buBdSBraGnhu4NuIG7Ds1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTMyCittc2dpZCAiRE02IHNpZ25hdHVyZSBmb3VuZCAtIGdpdmluZyB1cFxuIgorbXNnc3RyICJLaMO0bmcgdMOsbSB0aOG6pXkgZOG6pXUgaGnhu4d1IERNNiAtIGThu6tuZyBs4bqhaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNTUyCittc2dpZCAic3RyYW5nZS4uLiwgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAia+G7syBs4bqhLi4uLCBt4buZdCBwaMOibiB2w7luZyBt4bufIHLhu5luZyB24bubaSBrw61jaCBj4buhIDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1NTkgZmRpc2svc2ZkaXNrLmM6MTU3MAorbXNnaWQgInN0cmFuZ2UuLi4sIGEgQlNEIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgImvhu7MgbOG6oWkuLi4sIG3hu5l0IHBow6JuIHbDuW5nIEJTRCB24bubaSBrw61jaCBj4buhIDA/XG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzOiB1bnJlY29nbml6ZWQgcGFydGl0aW9uIHRhYmxlIHR5cGVcbiIKK21zZ3N0ciAiICVzOiBsb+G6oWkgYuG6o25nIHBow6JuIHbDuW5nIGtow7RuZyBuaOG6rW4gcmFcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYxNgorbXNnaWQgIi1uIGZsYWcgd2FzIGdpdmVuOiBOb3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAixJHDoyDEkcawYSByYSBj4budIC1uOiBLaMO0bmcgY8OzIGfDrCB0aGF5IMSR4buVaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjMyCittc2dpZCAiRmFpbGVkIHNhdmluZyB0aGUgb2xkIHNlY3RvcnMgLSBhYm9ydGluZ1xuIgorbXNnc3RyICJM4buXaSBnaGkgcsOjbmggZ2hpIGPFqSAtIMSRYW5nIGThu6tuZyBs4bqhaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjM3IGZkaXNrL3NmZGlzay5jOjE2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHdyaXRpbmcgdGhlIHBhcnRpdGlvbiBvbiAlc1xuIgorbXNnc3RyICJM4buXaSBnaGkgcGjDom4gdsO5bmcgdHLDqm4gJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAiZMOybmcgbmjhuq1wIHbDoG8gZMOgaSBoYXkga2jDtG5nIMSR4bqneSDEkeG7pyAtIMSRYW5nIHRob8OhdFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAibOG7l2kgbmjhuq1wOiBtb25nIMSR4bujaSBgPScgc2F1IHbDuW5nICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5wdXQgZXJyb3I6IHVuZXhwZWN0ZWQgY2hhcmFjdGVyICVjIGFmdGVyICVzIGZpZWxkXG4iCittc2dzdHIgImzhu5dpIG5o4bqtcDogbW9uZyDEkeG7o2kga8O9IHThu7EgJWMgc2F1IHbDuW5nICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICJk4buvIGxp4buHdSB2w6BvIGtow7RuZyBuaOG6rW4gcmE6ICVzXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTAKK21zZ2lkICJudW1iZXIgdG9vIGJpZ1xuIgorbXNnc3RyICJz4buRIHF1w6EgbOG7m25cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTgxNAorbXNnaWQgInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtYmVyXG4iCittc2dzdHIgIsSRdcO0aSBi4buPIMSRaSBzYXUgbeG7mXQgc+G7kVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoxOTM4Cittc2dpZCAibm8gcm9vbSBmb3IgcGFydGl0aW9uIGRlc2NyaXB0b3JcbiIKK21zZ3N0ciAia2jDtG5nIGPDsyBjaOG7lyBjaG8gbcO0IHThuqMgcGjDom4gdsO5bmdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTk3MQorbXNnaWQgImNhbm5vdCBidWlsZCBzdXJyb3VuZGluZyBleHRlbmRlZCBwYXJ0aXRpb25cbiIKK21zZ3N0ciAia2jDtG5nIHRo4buDIHThuqFvIHBow6JuIHbDuW5nIG3hu58gcuG7mW5nIGJhbyBxdWFuaFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDIyCittc2dpZCAidG9vIG1hbnkgaW5wdXQgZmllbGRzXG4iCittc2dzdHIgInF1w6Egbmhp4buBdSB2w7luZyBuaOG6rXAgdsOgb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMDU2Cittc2dpZCAiTm8gcm9vbSBmb3IgbW9yZVxuIgorbXNnc3RyICJLaMO0bmcgY8OybiBjaOG7lyB0cuG7kW5nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNzUKK21zZ2lkICJJbGxlZ2FsIHR5cGVcbiIKK21zZ3N0ciAiTG/huqFpIGtow7RuZyBjaG8gcGjDqXBcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjEwNworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBnaXZlbiBzaXplICglbHUpIGV4Y2VlZHMgbWF4IGFsbG93YWJsZSBzaXplICglbHUpXG4iCittc2dzdHIgIkPhuqNuaCBiw6FvOiBrw61jaCBj4buhIMSRxrBhIHJhICglbHUpIHbGsOG7o3QgcXXDoSBrw61jaCBj4buhIG1heCBjaG8gcGjDqXAgKCVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjExMworbXNnaWQgIldhcm5pbmc6IGVtcHR5IHBhcnRpdGlvblxuIgorbXNnc3RyICJD4bqjbmggYsOhbzogcGjDom4gdsO5bmcgcuG7l25nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHBhcnRpdGlvbiBzdGFydCAoZWFybGllc3QgJWx1KVxuIgorbXNnc3RyICJD4bqjbmggYsOhbzogxJFp4buDbSDEkeG6p3UgcGjDom4gdsO5bmcgeOG6pXUgKHRyxrDhu5tjICVsdSlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE0MAorbXNnaWQgInVucmVjb2duaXplZCBib290YWJsZSBmbGFnIC0gY2hvb3NlIC0gb3IgKlxuIgorbXNnc3RyICJj4budIGPDsyB0aOG7gyBraOG7n2kgxJHhu5luZyBraMO0bmcgbmjhuq1uIHJhIC0gY2jhu41uIC0gaGF5ICpcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1NyBmZGlzay9zZmRpc2suYzoyMTcwCittc2dpZCAicGFydGlhbCBjLGgscyBzcGVjaWZpY2F0aW9uP1xuIgorbXNnc3RyICLEkOG6t2MgxJFp4buDbSBwaMOibiB2w7luZyBjLGgscz9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE4MQorbXNnaWQgIkV4dGVuZGVkIHBhcnRpdGlvbiBub3Qgd2hlcmUgZXhwZWN0ZWRcbiIKK21zZ3N0ciAiUGjDom4gdsO5bmcgbeG7nyBy4buZbmcga2jDtG5nIOG7nyBjaOG7lyBtb25nIMSR4bujaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjEzCittc2dpZCAiYmFkIGlucHV0XG4iCittc2dzdHIgImThu68gbGnhu4d1IHbDoG8geOG6pXVcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIzNQorbXNnaWQgInRvbyBtYW55IHBhcnRpdGlvbnNcbiIKK21zZ3N0ciAicXXDoSBuaGnhu4F1IHBow6JuIHbDuW5nXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyNjgKK21zZ2lkICIiCisiSW5wdXQgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ7IGFic2VudCBmaWVsZHMgZ2V0IGEgZGVmYXVsdCB2YWx1ZS5cbiIKKyI8c3RhcnQ+IDxzaXplPiA8dHlwZSBbRSxTLEwsWCxoZXhdPiA8Ym9vdGFibGUgWy0sKl0+IDxjLGgscz4gPGMsaCxzPlxuIgorIlVzdWFsbHkgeW91IG9ubHkgbmVlZCB0byBzcGVjaWZ5IDxzdGFydD4gYW5kIDxzaXplPiAoYW5kIHBlcmhhcHMgPHR5cGU+KS5cbiIKK21zZ3N0ciAiIgorIkThu68gbGnhu4d1IHbDoG8gdHJvbmcgxJHhu4tuaCBk4bqhbmcgc2F1OyBkw7luZyBnacOhIHRy4buLIG3hurdjIMSR4buLbmggY2hvIGNo4buXIHRoaeG6v3VcbiIKKyI8xJHhuqd1PiA8a8OtY2h0aMaw4bubYz4gPGxv4bqhaSBbRSxTLEwsWCxoZXhdPiA8a2jhu59pxJHhu5luZyBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVGjDtG5nIHRoxrDhu51uZyBi4bqhbiBjaOG7iSBj4bqnbiBjaOG7iSByw7UgPMSR4bqndT4gdsOgIDxrw61jaHRoxrDhu5tjPiAodsOgIGPDsyB0aOG7gyA8bG/huqFpPikuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBkZXZpY2UgLi4uXG4iCittc2dzdHIgIlPhu60gZOG7pW5nOiAlcyBbdMO5eSBjaOG7jW5dIHRoaeG6v3QgYuG7iy4uLlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk1Cittc2dpZCAiZGV2aWNlOiBzb21ldGhpbmcgbGlrZSAvZGV2L2hkYSBvciAvZGV2L3NkYSIKK21zZ3N0ciAidGhp4bq/dCBi4buLOiBjw7MgZOG6oW5nIC9kZXYvaGRhIGhheSAvZGV2L3NkYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NgorbXNnaWQgInVzZWZ1bCBvcHRpb25zOiIKK21zZ3N0ciAidMO5eSBjaOG7jW4gY8OzIMOtY2g6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiICAgIC1zIFtoYXkgLS1zaG93LXNpemVdOiBsaeG7h3Qga8OqIGvDrWNoIGPhu6EgcGjDom4gdsO5bmciCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTgKK21zZ2lkICIgICAgLWMgW29yIC0taWRdOiAgICAgICAgcHJpbnQgb3IgY2hhbmdlIHBhcnRpdGlvbiBJZCIKK21zZ3N0ciAiICAgIC1jIFtoYXkgLS1pZF06ICAgICAgICBpbiByYSBoYXkgdGhheSDEkeG7lWkgSWQgcGjDom4gdsO5bmciCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTkKK21zZ2lkICIgICAgLWwgW29yIC0tbGlzdF06ICAgICAgbGlzdCBwYXJ0aXRpb25zIG9mIGVhY2ggZGV2aWNlIgorbXNnc3RyICIgICAgLWwgW2hheSAtLWxpc3RdOiAgICAgIGxp4buHdCBrw6ogY8OhYyBwaMOibiB2w7luZyBj4bunYSBt4buXaSB0aGnhur90IGLhu4siCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDAKK21zZ2lkICIgICAgLWQgW29yIC0tZHVtcF06ICAgICAgaWRlbSwgYnV0IGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBsYXRlciBpbnB1dCIKK21zZ3N0ciAiIgorIiAgICAtZCBbaGF5IC0tZHVtcF06ICAgICAgY8WpbmcgbmjGsCB0csOqbiBuaMawbmcg4bufIGThuqFuZyBjw7MgdGjhu4MgZMO5bmcgY2hvIG5o4bqtcCB2w6BvIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAxCittc2dpZCAiICAgIC1pIFtvciAtLWluY3JlbWVudF06IG51bWJlciBjeWxpbmRlcnMgZXRjLiBmcm9tIDEgaW5zdGVhZCBvZiBmcm9tIDAiCittc2dzdHIgIiAgICAtaSBbaGF5IC0taW5jcmVtZW50XTogc+G7kSB0cuG7pSB2LnYuLi4gdOG7qyAxIHRoYXkgdsOsIHThu6sgMCIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMgorbXNnaWQgIiIKKyIgICAgLXVTLCAtdUIsIC11QywgLXVNOiAgYWNjZXB0L3JlcG9ydCBpbiB1bml0cyBvZiBzZWN0b3JzL2Jsb2Nrcy9jeWxpbmRlcnMvIgorIk1CIgorbXNnc3RyICIiCisiICAgIC11UywgLXVCLCAtdUMsIC11TTogIGNo4bqlcCBuaOG6rW4vYsOhbyBjw6FvIHbhu5tpIMSRxqFuIHbhu4sgcsOjbmggZ2hpL2to4buRaS90cuG7pS9NQiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiAgICAtVCBbaGF5IC0tbGlzdC10eXBlc106XHRcdGxp4buHdCBrw6ogY8OhYyBraeG7g3UgcGjDom4gdsO5bmcgxJHDoyBiaeG6v3QiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgLUQgW29yIC0tRE9TXTogICAgICAgZm9yIERPUy1jb21wYXRpYmlsaXR5OiB3YXN0ZSBhIGxpdHRsZSBzcGFjZSIKK21zZ3N0ciAiIgorIiAgICAtRCBbaGF5IC0tRE9TXTogICAgICAgxJHhu4MgdMawxqFuZyB0aMOtY2ggduG7m2kgRE9TOiBsw6NuZyBwaMOtIG3hu5l0IGNow7p0IGtob+G6o25nICIKKyJ0cuG7kW5nIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA1Cittc2dpZCAiICAgIC1SIFtvciAtLXJlLXJlYWRdOiAgIG1ha2Uga2VybmVsIHJlcmVhZCBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiAgICAtUiBbaGF5IC0tcmUtcmVhZF06ICAga2hp4bq/biBuaMOibiDEkeG7jWMgbOG6oWkgYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA2Cittc2dpZCAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIGNoYW5nZSBvbmx5IHRoZSBwYXJ0aXRpb24gd2l0aCBudW1iZXIgIyIKK21zZ3N0ciAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIGNo4buJIHRoYXkgxJHhu5VpIHBow6JuIHbDuW5nIHbhu5tpIHPhu5EgIyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgICAtbiA6ICAgICAgICAgICAgICAgICBkbyBub3QgYWN0dWFsbHkgd3JpdGUgdG8gZGlzayIKK21zZ3N0ciAiICAgIC1uIDogICAgICAgICAgICAgICAgIGtow7RuZyB0aOG7sWMgc+G7sSB2aeG6v3QgbMOqbiDEkcSpYSIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOAorbXNnaWQgIiIKKyIgICAgLU8gZmlsZSA6ICAgICAgICAgICAgc2F2ZSB0aGUgc2VjdG9ycyB0aGF0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gdG8gZmlsZSIKK21zZ3N0ciAiIgorIiAgICAtTyB04bqtcCB0aW4gOiAgICAgICAgICAgIGdoaSBjw6FjIHLDo25oIGdoaSBz4bq9IGLhu4sgZ2hpIGNow6huIHbDoG8gdOG6rXAgdGluIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA5Cittc2dpZCAiICAgIC1JIGZpbGUgOiAgICAgICAgICAgIHJlc3RvcmUgdGhlc2Ugc2VjdG9ycyBhZ2FpbiIKK21zZ3N0ciAiICAgIC1JIHThuq1wIHRpbiA6ICAgICAgICAgICAgcGjhu6VjIGjhu5NpIGzhuqFpIG5o4buvbmcgcsOjbmggZ2hpIG7DoHkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTAKK21zZ2lkICIgICAgLXYgW29yIC0tdmVyc2lvbl06ICAgcHJpbnQgdmVyc2lvbiIKK21zZ3N0ciAiICAgIC12IFtoYXkgLS12ZXJzaW9uXTogICBpbiByYSBz4buRIGhp4buHdSBwaGnDqm4gYuG6o24iCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgLT8gW29yIC0taGVscF06ICAgICAgcHJpbnQgdGhpcyBtZXNzYWdlIgorbXNnc3RyICIgICAgLT8gW2hheSAtLWhlbHBdOiAgICAgIGluIHRy4bujIGdpw7pwIG7DoHkiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTIKK21zZ2lkICJkYW5nZXJvdXMgb3B0aW9uczoiCittc2dzdHIgInTDuXkgY2jhu41uIG5ndXkgaGnhu4NtOiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIiCisiICAgIC1nIFtoYXkgLS1zaG93LWdlb21ldHJ5XTogaW4gcmEgY+G6pXUgdHLDumMgxJHEqWEgdGhlbyBxdWFuIG5p4buHbSBj4bunYSBuaMOibiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNAorbXNnaWQgIiIKKyIgICAgLUcgW29yIC0tc2hvdy1wdC1nZW9tZXRyeV06IHByaW50IGdlb21ldHJ5IGd1ZXNzZWQgZnJvbSB0aGUgcGFydGl0aW9uICIKKyJ0YWJsZSIKK21zZ3N0ciAiIgorIiAgICAtRyBbaGF5IC0tc2hvdy1wdC1nZW9tZXRyeV06IGluIHJhIGPhuqV1IHRyw7pjIGThu7EgxJFvw6FuIHThu6sgYuG6o25nIHBow6JuIHbDuW5nIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE1Cittc2dpZCAiIgorIiAgICAteCBbb3IgLS1zaG93LWV4dGVuZGVkXTogYWxzbyBsaXN0IGV4dGVuZGVkIHBhcnRpdGlvbnMgb24gb3V0cHV0XG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBleHBlY3QgZGVzY3JpcHRvcnMgZm9yIHRoZW0gb24gaW5wdXQiCittc2dzdHIgIiIKKyIgICAgLXggW2hheSAtLXNob3ctZXh0ZW5kZWRdOiDEkeG7k25nIHRo4budaSBsaeG7h3Qga8OqIGPDoWMgcGjDom4gdsO5bmcgbeG7nyBy4buZbmdcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyb25nIMSR4bqndSByYSBoYXkgY8OhYyBtw7QgdOG6oyBtb25nIMSR4bujaSBjaG8gY2jDum5nXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cm9uZyDEkeG6p3UgdsOgbyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNworbXNnaWQgIiIKKyIgICAgLUwgIFtvciAtLUxpbnV4XTogICAgICBkbyBub3QgY29tcGxhaW4gYWJvdXQgdGhpbmdzIGlycmVsZXZhbnQgZm9yIExpbnV4IgorbXNnc3RyICIiCisiICAgIC1MICBbaGF5IC0tTGludXhdOiAgICAga2jDtG5nIHRoYW4gcGhp4buBbiB24buBIG5o4buvbmcgZ8OsIGtow7RuZyB0aMOtY2ggaOG7o3AgduG7m2kgIgorIkxpbnV4IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiICAgIC1xICBbaGF5IC0tcXVpZXRdOiAgICAgIGLhu48gY8OhYyBj4bqjbmggYsOhbyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxOQorbXNnaWQgIiAgICBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZXRlY3RlZCBnZW9tZXRyeSB1c2luZzoiCittc2dzdHIgIiAgICBC4bqhbiBjw7MgdGjhu4Mgdmnhur90IMSRw6ggbMOqbiBj4bqldSB0csO6YyBuaOG6rW4gcmEgc+G7rSBk4bulbmc6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIwCittc2dpZCAiICAgIC1DIyBbb3IgLS1jeWxpbmRlcnMgI106c2V0IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIHRvIHVzZSIKK21zZ3N0ciAiICAgIC1DIyBbaGF5IC0tdHLhu6VzICNdOsSR4bq3dCBz4buRIHRy4bulIHPhu60gZOG7pW5nIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIxCittc2dpZCAiICAgIC1IIyBbb3IgLS1oZWFkcyAjXTogICAgc2V0IHRoZSBudW1iZXIgb2YgaGVhZHMgdG8gdXNlIgorbXNnc3RyICIgICAgLUgjIFtvciAtLWhlYWRzICNdOiAgICDEkeG6t3Qgc+G7kSDEkeG6p3UgxJHhu41jIHPhu60gZOG7pW5nIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIyCittc2dpZCAiICAgIC1TIyBbb3IgLS1zZWN0b3JzICNdOiAgc2V0IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyB0byB1c2UiCittc2dzdHIgIiAgICAtUyMgW29yIC0tcsOjbmggZ2hpcyAjXTogIMSR4bq3dCBz4buRIHLDo25oIGdoaSBz4butIGThu6VuZyIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMyMworbXNnaWQgIllvdSBjYW4gZGlzYWJsZSBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcgd2l0aDoiCittc2dzdHIgIkLhuqFuIGPDsyB0aOG7gyB04bqvdCB04bqldCBj4bqjIGPDoWMga2nhu4NtIHRyYSBj4buRIMSR4buLbmggduG7m2k6IgorCisjOiBmZGlzay9zZmRpc2suYzoyMzI0Cittc2dpZCAiICAgIC1mICBbb3IgLS1mb3JjZV06ICAgICAgZG8gd2hhdCBJIHNheSwgZXZlbiBpZiBpdCBpcyBzdHVwaWQiCittc2dzdHIgIiAgICAtZiAgW2hheSAtLWZvcmNlXTogICAgICBsw6BtIGLhuqV0IHRoZW8gbOG7nWkgYuG6oW4sIHRo4bqtbSBjaMOtIGzDoCBuZ3Ugbmfhu5FjIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMwCittc2dpZCAiVXNhZ2U6IgorbXNnc3RyICJT4butIGThu6VuZzoiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZGV2aWNlXHRcdCBsaXN0IGFjdGl2ZSBwYXJ0aXRpb25zIG9uIGRldmljZVxuIgorbXNnc3RyICIlcyB0aGnhur90IGLhu4tcdFx0IGxp4buHdCBrw6ogcGjDom4gdsO5bmcga8OtY2ggaG/huqF0IHRyw6puIHRoaeG6v3QgYuG7i1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZSBuMSBuMiAuLi4gYWN0aXZhdGUgcGFydGl0aW9ucyBuMSAuLi4sIGluYWN0aXZhdGUgdGhlIHJlc3RcbiIKK21zZ3N0ciAiIgorIiVzIHRoaeG6v3QgYuG7iyBuMSBuMiAuLi4ga8OtY2ggaG/huqF0IHBow6JuIHbDuW5nIG4xIC4uLiwgYuG7jyBrw61jaCBob+G6oXQgcGjhuqduIGPDsm4gbOG6oWlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtQW4gZGV2aWNlXHQgYWN0aXZhdGUgcGFydGl0aW9uIG4sIGluYWN0aXZhdGUgdGhlIG90aGVyIG9uZXNcbiIKK21zZ3N0ciAiJXMgLUFuIHRoaeG6v3QgYuG7i1x0IGvDrWNoIGhv4bqhdCBwaMOibiB2w7luZyBuLCBi4buPIGvDrWNoIGhv4bqhdCBuaOG7r25nIGPDoWkga2jDoWNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogR1BUIChHVUlEIFBhcnRpdGlvbiBUYWJsZSkgZGV0ZWN0ZWQgb24gJyVzJyEgVGhlIHV0aWwgc2ZkaXNrICIKKyJkb2Vzbid0IHN1cHBvcnQgR1BULiBVc2UgR05VIFBhcnRlZC5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIkPhuqJOSCBCw4FPIDogcGjDoXQgaGnhu4duIEdQVCAoYuG6o25nIHBow6JuIHbDuW5nIEdVSUQpIHRyw6puIMKrICVzIMK7LiBUaeG7h24gw61jaCBzZmRpc2sgIgorImtow7RuZyBo4buXIHRy4bujIEdQVC4gSMOjeSBkw7luZyBjaMawxqFuZyB0csOsbmggR05VIFBhcnRlZC5cbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICJT4butIGThu6VuZyBj4budIMKrIC0tZm9yY2UgwrsgKGLhuq90IGJ14buZYykgxJHhu4MgYsOjaSBi4buPIHPhu7Ega2nhu4NtIHRyYSBuw6B5LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNDk1Cittc2dpZCAibm8gY29tbWFuZD9cbiIKK21zZ3N0ciAia2jDtG5nIGzhu4duaD9cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjYyNworIywgYy1mb3JtYXQKK21zZ2lkICJ0b3RhbDogJWxsdSBibG9ja3NcbiIKK21zZ3N0ciAidOG7lW5nIHPDtDogJWxsdSBraOG7kWlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1wcmludC1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlclxuIgorbXNnc3RyICJz4butIGThu6VuZzogc2ZkaXNrIC0tcHJpbnQtaWQgdGhp4bq/dC1i4buLIHPhu5EtcGjDom4tdsO5bmdcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MgorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1jaGFuZ2UtaWQgZGV2aWNlIHBhcnRpdGlvbi1udW1iZXIgSWRcbiIKK21zZ3N0ciAic+G7rSBk4bulbmc6IHNmZGlzayAtLWNoYW5nZS1pZCB0aGnhur90LWLhu4sgc+G7kS1waMOibi12w7luZyBJZFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNjc0Cittc2dpZCAidXNhZ2U6IHNmZGlzayAtLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIFtJZF1cbiIKK21zZ3N0ciAic+G7rSBk4bulbmc6IHNmZGlzayAtLWlkIHRoaeG6v3QtYuG7iyBz4buRLXBow6JuLXbDuW5nIFtJZF1cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY4MQorbXNnaWQgImNhbiBzcGVjaWZ5IG9ubHkgb25lIGRldmljZSAoZXhjZXB0IHdpdGggLWwgb3IgLXMpXG4iCittc2dzdHIgImNo4buJIGPDsyB0aOG7gyBjaOG7iSByYSBt4buZdCB0aGnhur90IGLhu4sgKG5nb+G6oWkgdHLhu6sgduG7m2kgLWwgaGF5IC1zKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIHJlYWQtd3JpdGVcbiIKK21zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58gJXMgxJHhu41jLXZp4bq/dFxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iCittc2dzdHIgImtow7RuZyBt4bufIMSRxrDhu6NjICVzIMSR4buDIMSR4buNY1xuIgorCisjOiBmZGlzay9zZmRpc2suYzoyNzM0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPS1xuIgorbXNnc3RyICIlczogT0tcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjc1MyBmZGlzay9zZmRpc2suYzoyNzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3lsaW5kZXJzLCAlbGQgaGVhZHMsICVsZCBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiVzOiAlbGQgdHLhu6UsICVsZCDEkeG6p3UgxJHhu41jLCAlbGQgcsOjbmggZ2hpL3RyYWNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IHNpemUgb2YgJXNcbiIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGzhuqV5IGvDrWNoIGPhu6EgY+G7p2EgJXNcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgYWN0aXZlIGJ5dGU6IDB4JXggaW5zdGVhZCBvZiAweDgwXG4iCittc2dzdHIgImJ5dGUga8OtY2ggaG/huqF0IHNhaTogMHgleCB0aGF5IGNobyAweDgwXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MDMgZmRpc2svc2ZkaXNrLmM6Mjk1OCBmZGlzay9zZmRpc2suYzoyOTkxCittc2dpZCAiIgorIkRvbmVcbiIKKyJcbiIKK21zZ3N0ciAiIgorIkhvw6BuIHRow6BuaFxuIgorIlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSAlZCBhY3RpdmUgcHJpbWFyeSBwYXJ0aXRpb25zLiBUaGlzIGRvZXMgbm90IG1hdHRlciBmb3IgTElMTyxcbiIKKyJidXQgdGhlIERPUyBNQlIgd2lsbCBvbmx5IGJvb3QgYSBkaXNrIHdpdGggMSBhY3RpdmUgcGFydGl0aW9uLlxuIgorbXNnc3RyICIiCisiQuG6oW4gY8OzICVkIHBow6JuIHbDuW5nIGNow61uaCBrw61jaCBob+G6oXQuIMSQw6J5IGtow7RuZyBwaOG6o2kgbMOgIHbhuqVuIMSR4buBIGNobyBMSUxPLFxuIgorIm5oxrBuZyBNQlIgY+G7p2EgRE9TIHPhur0gY2jhu4kga2jhu59pIMSR4buZbmcgxJHEqWEgY8OzIDEgcGjDom4gdsO5bmcga8OtY2ggaG/huqF0LlxuIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBoYXMgaWQgJXggYW5kIGlzIG5vdCBoaWRkZW5cbiIKK21zZ3N0ciAicGjDom4gdsO5bmcgJXMgY8OzIGlkICV4IHbDoCBraMO0bmcgcGjhuqNpIGzDoCDhuqluXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIElkICVseFxuIgorbXNnc3RyICJJZCB44bqldSAlbHhcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAwNAorbXNnaWQgIlRoaXMgZGlzayBpcyBjdXJyZW50bHkgaW4gdXNlLlxuIgorbXNnc3RyICLEkMSpYSBuw6B5IGhp4buHbiDEkWFuZyDEkcaw4bujYyBz4butIGThu6VuZy5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAiTOG7l2kgbuG6t25nOiBraMO0bmcgdGjhu4MgdMOsbSAlc1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICJD4bqjbmggYsOhbzogJXMga2jDtG5nIHBo4bqjaSBsw6AgdGhp4bq/dCBi4buLIGto4buRaVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDMyCittc2dpZCAiQ2hlY2tpbmcgdGhhdCBuby1vbmUgaXMgdXNpbmcgdGhpcyBkaXNrIHJpZ2h0IG5vdyAuLi5cbiIKK21zZ3N0ciAixJBhbmcga2nhu4NtIHRyYSB4ZW0gY8OzIGFpIMSRw7MgxJFhbmcgc+G7rSBk4bulbmcgxJHEqWEgbsOgeSBraMO0bmcuLi5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzNAorbXNnaWQgIiIKKyJcbiIKKyJUaGlzIGRpc2sgaXMgY3VycmVudGx5IGluIHVzZSAtIHJlcGFydGl0aW9uaW5nIGlzIHByb2JhYmx5IGEgYmFkIGlkZWEuXG4iCisiVW1vdW50IGFsbCBmaWxlIHN5c3RlbXMsIGFuZCBzd2Fwb2ZmIGFsbCBzd2FwIHBhcnRpdGlvbnMgb24gdGhpcyBkaXNrLlxuIgorIlVzZSB0aGUgLS1uby1yZXJlYWQgZmxhZyB0byBzdXBwcmVzcyB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisiXG4iCisixJDEqWEgbsOgeSBoaeG7h24gdGjhu51pIMSRYW5nIMSRxrDhu6NjIHPhu60gZOG7pW5nIC0gcGjDom4gdsO5bmcgbOG6oWkga2jDtG5nIHBo4bqjaSBsw6Agw70gbXXhu5FuXG4iCisidOG7kXQuIELhu48gZ+G6r24gdOG6pXQgY+G6oyBjw6FjIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4sIHbDoCB04bqvdCAoc3dhcG9mZikgY8OhYyBwaMOibiB2w7luZyB0cmFvICIKKyLEkeG7lWlcbiIKKyJ0csOqbiDEkcSpYSBuw6B5LiBT4butIGThu6VuZyDCqyAtLW5vLXJlcmVhZCDCuyDEkeG7gyBi4buPIGtp4buDbSB0cmEgbsOgeS5cbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAzOAorbXNnaWQgIlVzZSB0aGUgLS1mb3JjZSBmbGFnIHRvIG92ZXJydWxlIGFsbCBjaGVja3MuXG4iCittc2dzdHIgIlPhu60gZOG7pW5nIC0tZm9yY2UgxJHhu4MgYsOjaSBi4buPIG3hu41pIGtp4buDbSB0cmEuXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNDIKK21zZ2lkICJPS1xuIgorbXNnc3RyICJPS1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIk9sZCBzaXR1YXRpb246XG4iCittc2dzdHIgIlTDrG5oIGh14buRbmcgY8WpOlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2VzIG5vdCBleGlzdCwgY2Fubm90IGNoYW5nZSBpdFxuIgorbXNnc3RyICJQaMOibiB2w7luZyAlZCBraMO0bmcgdOG7k24gdOG6oWksIGtow7RuZyB0aOG7gyB0aGF5IMSR4buVaSBuw7NcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2MworIywgYy1mb3JtYXQKK21zZ2lkICJOZXcgc2l0dWF0aW9uOlxuIgorbXNnc3RyICJUw6xuaCBodeG7kW5nIG3hu5tpOlxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDY4Cittc2dpZCAiIgorIkkgZG9uJ3QgbGlrZSB0aGVzZSBwYXJ0aXRpb25zIC0gbm90aGluZyBjaGFuZ2VkLlxuIgorIihJZiB5b3UgcmVhbGx5IHdhbnQgdGhpcywgdXNlIHRoZSAtLWZvcmNlIG9wdGlvbi4pXG4iCittc2dzdHIgIiIKKyJUw7RpIGtow7RuZyB0aMOtY2ggbmjhu69uZyBwaMOibiB2w7luZyBuw6B5IC0ga2jDtG5nIGPDsyBnw6wgdGhheSDEkeG7lWkuXG4iCisiKE7hur91IGLhuqFuIHRo4buxYyBz4buxIG114buRbiDEkWnhu4F1IG7DoHksIHPhu60gZOG7pW5nIHTDuXkgY2jhu41uIC0tZm9yY2UuKVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDcxCittc2dpZCAiSSBkb24ndCBsaWtlIHRoaXMgLSBwcm9iYWJseSB5b3Ugc2hvdWxkIGFuc3dlciBOb1xuIgorbXNnc3RyICJUw7RpIGtow7RuZyB0aMOtY2ggxJFp4buBdSBuw6B5IC0gYuG6oW4gbsOqbiB0cuG6oyBs4budaSBOb1xuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFyZSB5b3Ugc2F0aXNmaWVkIHdpdGggdGhpcz8gW3lucV0gIgorbXNnc3RyICJC4bqhbiBjw7MgaMOgaSBsw7JuZyB24bubaSDEkWnhu4F1IG7DoHk/IFt5bnFdICIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3OAorIywgYy1mb3JtYXQKK21zZ2lkICJEbyB5b3Ugd2FudCB0byB3cml0ZSB0aGlzIHRvIGRpc2s/IFt5bnFdICIKK21zZ3N0ciAiQuG6oW4gY8OzIG114buRbiBnaGkgbMOqbiDEkcSpYT8gW3lucV0gIgorCisjOiBmZGlzay9zZmRpc2suYzozMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJzZmRpc2s6IHByZW1hdHVyZSBlbmQgb2YgaW5wdXRcbiIKK21zZ3N0ciAiIgorIlxuIgorInNmZGlzazogZOG7ryBsaeG7h3UgdsOgbyBr4bq/dCB0aMO6YyBz4bubbVxuIgorCisjOiBmZGlzay9zZmRpc2suYzozMDg1Cittc2dpZCAiUXVpdHRpbmcgLSBub3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAixJBhbmcgdGhvw6F0IC0ga2jDtG5nIGPDsyBnw6wgdGhheSDEkeG7lWlcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5MQorIywgYy1mb3JtYXQKK21zZ2lkICJQbGVhc2UgYW5zd2VyIG9uZSBvZiB5LG4scVxuIgorbXNnc3RyICJYaW4gaMOjeSB0cuG6oyBs4budaSBt4buZdCB0cm5nIHksbixxXG4iCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlN1Y2Nlc3NmdWxseSB3cm90ZSB0aGUgbmV3IHBhcnRpdGlvbiB0YWJsZVxuIgorIlxuIgorbXNnc3RyICIiCisiVmnhur90IHRow6BuaCBjw7RuZyBi4bqjbmcgcGjDom4gdsO5bmcgbeG7m2lcbiIKKyJcbiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzEwNQorbXNnaWQgIiIKKyJJZiB5b3UgY3JlYXRlZCBvciBjaGFuZ2VkIGEgRE9TIHBhcnRpdGlvbiwgL2Rldi9mb283LCBzYXksIHRoZW4gdXNlIGRkKDEpXG4iCisidG8gemVybyB0aGUgZmlyc3QgNTEyIGJ5dGVzOiAgZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvZm9vNyBicz01MTIgY291bnQ9MVxuIgorIihTZWUgZmRpc2soOCkuKVxuIgorbXNnc3RyICIiCisiTuG6v3UgYuG6oW4gdOG6oW8gaGF5IHRoYXkgxJHhu5VpIG3hu5l0IHBow6JuIHbDuW5nIERPUywgdsOtIGThu6UgL2Rldi9mb283LCB0aMOsIGjDo3kgZMO5bmdcbiIKKyJkZCgxKSDEkeG7gyBsw6BtIHLhu5duZyA1MTIgYnl0ZSDEkeG6p3U6IGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L2ZvbzcgYnM9NTEyIGNvdW50PTFcbiIKKyIoWGVtIGZkaXNrKDgpLilcbiIKKworIzogZnNjay9mc2NrLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIkPhuqJOSCBCw4FPIDoga2jDtG5nIG3hu58gxJHGsOG7o2MgJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBiYWQgZm9ybWF0IG9uIGxpbmUgJWQgb2YgJXNcbiIKK21zZ3N0ciAiQ+G6ok5IIELDgU8gOiBn4bq3cCDEkeG7i25oIGThuqFuZyBzYWkgdHLDqm4gZMOybmcgJWQgY+G7p2EgJXNcbiIKKworIzogZnNjay9mc2NrLmM6MzUyCittc2dpZCAiIgorIldBUk5JTkc6IFlvdXIgL2V0Yy9mc3RhYiBkb2VzIG5vdCBjb250YWluIHRoZSBmc2NrIHBhc3Nub1xuIgorIlx0ZmllbGQuICBJIHdpbGwga2x1ZGdlIGFyb3VuZCB0aGluZ3MgZm9yIHlvdSwgYnV0IHlvdVxuIgorIlx0c2hvdWxkIGZpeCB5b3VyIC9ldGMvZnN0YWIgZmlsZSBhcyBzb29uIGFzIHlvdSBjYW4uXG4iCisiXG4iCittc2dzdHIgIiIKKyJD4bqiTkggQsOBTyA6IC9ldGMvZnN0YWIgY+G7p2EgYuG6oW4ga2jDtG5nIGNo4bupYSB0csaw4budbmcgZnNjayBwYXNzbm8uXG4iCisiXHRUaeG6v24gdHLDrG5oIG7DoHkgc+G6vSDEkWnhu4F1IGNo4buJbmggdOG6oW0gdGjhu51pLCBuaMawbmcgYuG6oW4gbsOqbiBz4butYSBjaOG7r2FcbiIKKyJcdHThuq1wIHRpbiAvZXRjL2ZzdGFiIGPDoG5nIHPhu5ttIGPDoG5nIGPDsyB0aOG7gy5cbiIKKyJcbiIKKworIzogZnNjay9mc2NrLmM6NDYwCisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6ICVzOiBub3QgZm91bmRcbiIKK21zZ3N0ciAiZnNjazogJXM6IGtow7RuZyB0w6xtIHRo4bqleVxuIgorCisjOiBmc2NrL2ZzY2suYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdhaXQ6IE5vIG1vcmUgY2hpbGQgcHJvY2Vzcz8hP1xuIgorbXNnc3RyICIlczogxJHhu6NpOiBraMO0bmcgY8OzIHRp4bq/biB0csOsbmggY29uIG7DoG8gbuG7r2EgPyE/XG4iCisKKyM6IGZzY2svZnNjay5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nLi4uICVzIGZvciBkZXZpY2UgJXMgZXhpdGVkIHdpdGggc2lnbmFsICVkLlxuIgorbXNnc3RyICJD4bqjbmggYsOhby4uLiAlcyBjaG8gdGhp4bq/dCBi4buLICVzIMSRw6MgdGhvw6F0IHbhu5tpIHTDrW4gaGnhu4d1ICVkLlxuIgorCisjOiBmc2NrL2ZzY2suYzo2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIKK21zZ3N0ciAiJXM6ICVzOiB0cuG6oW5nIHRow6FpIGzDoCAleCwga2jDtG5nIGJhbyBnaeG7nSBuw6puIHjhuqN5IHJhLlxuIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIsSQw6Mga+G6v3QgdGjDumMgduG7m2kgJXMgKHRy4bqhbmcgdGjDoWkgdGhvw6F0ICVkKVxuIgorCisjOiBmc2NrL2ZzY2suYzo3MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEVycm9yICVkIHdoaWxlIGV4ZWN1dGluZyBmc2NrLiVzIGZvciAlc1xuIgorbXNnc3RyICIlczogTOG7l2kgJWQgdHJvbmcga2hpIHRo4buxYyBoaeG7h24gZnNjay4lcyBjaG8gJXNcbiIKKworIzogZnNjay9mc2NrLmM6NzI0Cittc2dpZCAiIgorIkVpdGhlciBhbGwgb3Igbm9uZSBvZiB0aGUgZmlsZXN5c3RlbSB0eXBlcyBwYXNzZWQgdG8gLXQgbXVzdCBiZSBwcmVmaXhlZFxuIgorIndpdGggJ25vJyBvciAnIScuXG4iCittc2dzdHIgIiIKKyJIb+G6t2MgdOG6pXQgY+G6oyBob+G6t2Mga2jDtG5nIGPDsyBraeG7g3UgaOG7hyB0aOG7kW5nIHThuq1wIHRpbiDEkcaw4bujYyBn4butaSBjaG8gwqsgLXQgwrtcbiIKKyJwaOG6o2kgY8OzIHRp4buBbiB04buRIMKrIG5vIMK7IGhheSDCqyAhIMK7LlxuIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKK21zZ2lkICJDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpbGVzeXN0ZW0gdHlwZXNcbiIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIHBow6JuIGPhuqVwIGLhu5kgbmjhu5sgY2hvIGtp4buDdSBo4buHIHRo4buRbmcgdOG6rXAgdGluXG4iCisKKyM6IGZzY2svZnNjay5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHNraXBwaW5nIGJhZCBsaW5lIGluIC9ldGMvZnN0YWI6IGJpbmQgbW91bnQgd2l0aCBub256ZXJvIGZzY2sgcGFzcyAiCisibnVtYmVyXG4iCittc2dzdHIgIiIKKyIlczogxJFhbmcgYuG7jyBxdWEgZMOybmcgc2FpIHRyb25nIHThuq1wIHRpbiDCqyAvZXRjL2ZzdGFiIMK7OlxuIgorIsSRaeG7g20gbOG6r3AgxJHDs25nIGvhur90IGPDsyBz4buRIHRo4bupIHThu7EgbOG6p24gY2jhuqF5IGZzY2sga2jDoWMgc+G7kSBraMO0bmdcbiIKKworIzogZnNjay9mc2NrLmM6ODkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyBub25leGlzdGVudCBkZXZpY2VcbiIKK21zZ3N0ciAiJXM6IMSRYW5nIGLhu48gcXVhIHRoaeG6v3QgYuG7iyBraMO0bmcgdOG7k24gdOG6oWlcbiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiZnNjazoga2jDtG5nIHRo4buDIGtp4buDbSB0cmEgJXM6IGZzY2suJXMga2jDtG5nIHTDrG0gdGjhuqV5XG4iCisKKyM6IGZzY2svZnNjay5jOjk3NAorbXNnaWQgIkNoZWNraW5nIGFsbCBmaWxlIHN5c3RlbXMuXG4iCittc2dzdHIgIsSQYW5nIGtp4buDbSB0cmEgdOG6pXQgY+G6oyBjw6FjIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4uXG4iCisKKyM6IGZzY2svZnNjay5jOjEwNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS13YWl0aW5nLS0gKHBhc3MgJWQpXG4iCittc2dzdHIgIi0txJFhbmcgxJHhu6NpLS0gKGzhuqduIGNo4bqheSAlZClcbiIKKworIzogZnNjay9mc2NrLmM6MTA4NQorbXNnaWQgIiIKKyJVc2FnZTogZnNjayBbLUFNTlBSVFZdIFsgLUMgWyBmZCBdIF0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIFtmaWxlc3lzIC4uLl1cbiIKK21zZ3N0ciAiIgorIlPhu60gZOG7pW5nOiBmc2NrIFstQU1OUFJUVl0gWyAtQyBbIGZkIF0gXSBbLXQga2nhu4N1X0hUVFRdIFtjw6FjX3TDuXlfY2jhu41uX0hUVFRdICIKKyJbSFRUVCAuLi5dXG4iCisiXG4iCisiSFRUVDogaOG7hyB0aOG7kW5nIHThuq1wIHRpblxuIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBkZXZpY2VzXG4iCittc2dzdHIgIiVzOiBxdcOhIG5oaeG7gXUgdGhp4bq/dCBi4buLXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiS2jDtG5nIG3hu58gxJHGsOG7o2MgJXM6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiL3Byb2MgxJHGsOG7o2MgZ+G6r24ga+G6v3Qga2jDtG5nP1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiUGjhuqNpIGzDoCBuZ8aw4budaSBjaOG7pyAocm9vdCkgxJHhu4MgcXXDqXQgdMOsbSBo4buHIHRo4buRbmcgdOG6rXAgdGluIHTGsMahbmcg4bupbmc6ICVzXG4iCisKKyM6IGZzY2svZnNjay5jOjExNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgZmluZCBtYXRjaGluZyBmaWxlc3lzdGVtOiAlc1xuIgorbXNnc3RyICJLaMO0bmcgdMOsbSB0aOG6pXkgaOG7hyB0aOG7kW5nIHThuq1wIHRpbiB0xrDGoW5nIOG7qW5nOiAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRvbyBtYW55IGFyZ3VtZW50c1xuIgorbXNnc3RyICIlczogcXXDoSBuaGnhu4F1IMSR4buRaSBz4buRXG4iCisKKyM6IGZzY2svZnNjay5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjayBmcm9tICVzXG4iCittc2dzdHIgImZzY2sgdOG7qyAlc1xuIgorCisjOiBmc2NrL2ZzY2suYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmc2NrX3BhdGhcbiIKK21zZ3N0ciAiJXM6IEtow7RuZyB0aOG7gyBwaMOibiBwaOG7kWkgYuG7mSBuaOG7myBjaG8gZnNja19wYXRoXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzoyMjkKK21zZ2lkICJUcnkgYGdldG9wdCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorbXNnc3RyICJIw6N5IHRo4butIGBnZXRvcHQgLS1oZWxwJyDEkeG7gyBiaeG6v3QgdGjDqm0gdGjDtG5nIHRpbi5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAidMO5eSBjaOG7jW4gZMOgaSBy4buXbmcgc2F1IC1sIGhheSB0aGFtIHPhu5EgLS1sb25nIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzE1Cittc2dpZCAidW5rbm93biBzaGVsbCBhZnRlciAtcyBvciAtLXNoZWxsIGFyZ3VtZW50IgorbXNnc3RyICJ0csOsbmggYmFvIGtow7RuZyByw7Ugc2F1IC1zIGhheSB0aGFtIHPhu5EgLS1zaGVsbCIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMAorbXNnaWQgIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiU+G7rSBk4bulbmc6IGdldG9wdCBjaHXhu5dpX3TDuXlfY2jhu41uIHRoYW1fc+G7kVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIxCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gWy0tXSBvcHRzdHJpbmcgcGFyYW1ldGVyc1xuIgorbXNnc3RyICIgICAgICAgZ2V0b3B0IFt0w7l5Y2jhu41uXSBbLS1dIGNodeG7l2lfdMO5eV9jaOG7jW4gdGhhbV9z4buRXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjIKK21zZ2lkICIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSAtb3wtLW9wdGlvbnMgb3B0c3RyaW5nIFtvcHRpb25zXSBbLS1dXG4iCittc2dzdHIgIiAgICAgICBnZXRvcHQgW3TDuXljaOG7jW5dIC1vfC0tb3B0aW9ucyBjaHXhu5dpX3TDuXlfY2jhu41uIFt0w7l5X2No4buNbl0gWy0tXVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIzCittc2dpZCAiICAgICAgICAgICAgICBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiAgICAgICAgICAgICAgdGhhbSBz4buRXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjQKK21zZ2lkICIiCisiICAtYSwgLS1hbHRlcm5hdGl2ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4iCittc2dzdHIgIiIKKyIgIC1hLCAtLWFsdGVybmF0aXZlICAgICAgICAgICAgQ2hvIHBow6lwIHTDuXkgY2jhu41uIGTDoGkgYuG6r3QgxJHhuqd1IHbhu5tpIG3hu5l0IC0gxJHGoW5cbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyNQorbXNnaWQgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBUaGlzIHNtYWxsIHVzYWdlIGd1aWRlXG4iCittc2dzdHIgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICBIxrDhu5tuZyBk4bqrbiBz4butIGThu6VuZyBuaOG7jyBuw6B5XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiICAtbCwgLS1sb25nb3B0aW9ucz10w7l5Y2jhu41uZMOgaSAgIFTDuXkgY2jhu41uIGTDoGkgY+G6p24gbmjhuq1uIHJhXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjcKK21zZ2lkICIiCisiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1lIHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIKK21zZ3N0ciAiICAtbiwgLS1uYW1lPXTDqm5fY2jGsMahbmdfdHLDrG5oICAgICAgICAgIELDoW8gY8OhbyBs4buXaSBkxrDhu5tpIHTDqm4gbsOgeVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI4Cittc2dpZCAiICAtbywgLS1vcHRpb25zPW9wdHN0cmluZyAgICAgIFNob3J0IG9wdGlvbnMgdG8gYmUgcmVjb2duaXplZFxuIgorbXNnc3RyICIgIC1vLCAtLW9wdGlvbnM9Y2h14buXaV90w7l5X2No4buNbiAgICAgIEPDoWMgdMO5eSBjaOG7jW4gbmfhuq9uIGPhuqduIG5o4bqtbiByYVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIgIC1xLCAtLXF1aWV0ICAgICAgICAgICAgICAgICAgVOG6r3QgYuG7jyBiw6FvIGPDoW8gbOG7l2kgYuG6sW5nIGdldG9wdCgzKVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMwCittc2dpZCAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIE5vIG5vcm1hbCBvdXRwdXRcbiIKK21zZ3N0ciAiICAtUSwgLS1xdWlldC1vdXRwdXQgICAgICAgICAgIEtow7RuZyBjw7Mga+G6v3QgcXXhuqMgcmEgdGjDtG5nIHRoxrDhu51uZ1xuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMxCittc2dpZCAiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVsbCBxdW90aW5nIGNvbnZlbnRpb25zXG4iCittc2dzdHIgIiAgLXMsIC0tc2hlbGw9dHLDrG5oX2JhbyAgICAgICAgICAgIMSQ4bq3dCBxdXkgxrDhu5tjIHRyw61jaCBk4bqrbiB0csOsbmggYmFvXG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzIKK21zZ2lkICIgIC1ULCAtLXRlc3QgICAgICAgICAgICAgICAgICAgVGVzdCBmb3IgZ2V0b3B0KDEpIHZlcnNpb25cbiIKK21zZ3N0ciAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRo4butIHBoacOqbiBi4bqjbiBnZXRvcHQoMSlcbiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMworbXNnaWQgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUgdGhlIG91dHB1dFxuIgorbXNnc3RyICIgIC11LCAtLXVucW90ZSAgICAgICAgICAgICAgICAgS2jDtG5nIHRyw61jaCBk4bqrbiBr4bq/dCBxdeG6oyByYVxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzM0Cittc2dpZCAiICAtViwgLS12ZXJzaW9uICAgICAgICAgICAgICAgIE91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG4iCittc2dzdHIgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICBJbiByYSB0aMO0bmcgdGluIHBoacOqbiBi4bqjblxuIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mzg4IGdldG9wdC9nZXRvcHQuYzo0NDcKK21zZ2lkICJtaXNzaW5nIG9wdHN0cmluZyBhcmd1bWVudCIKK21zZ3N0ciAidGhp4bq/dSDEkeG7kWkgc+G7kSBjaHXhu5dpX3TDuXlfY2jhu41uIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgImdldG9wdCAoZW5oYW5jZWQpIDEuMS40XG4iCittc2dzdHIgImdldG9wdCAoxJHDoyBuw6JuZyBjYW8pIDEuMS40XG4iCisKKyM6IGdldG9wdC9nZXRvcHQuYzo0NDEKK21zZ2lkICJpbnRlcm5hbCBlcnJvciwgY29udGFjdCB0aGUgYXV0aG9yLiIKK21zZ3N0ciAibOG7l2kgbuG7mWkgYuG7mSwgaMOjeSBsacOqbiBo4buHIHbhu5tpIHTDoWMgZ2nhuqMuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoxNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9vdGVkIGZyb20gTUlMT1xuIgorbXNnc3RyICJraOG7n2kgxJHhu5luZyB04burIE1JTE9cbiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIsSQ4buTbmcgaOG7kyBSdWZmaWFuIEJDRFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2xvY2twb3J0IGFkanVzdGVkIHRvIDB4JXhcbiIKK21zZ3N0ciAiY2xvY2twb3J0IChi4bqjbiBjaHV54buDbiDEkeG7k25nIGjhu5MpIMSRaeG7gXUgY2jhu4luaCB0aMOgbmggMHgleFxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnVua3kgVE9ZIVxuIgorbXNnc3RyICLEkOG7kiBDSMagSSBuaMO6dCBuaMOhdCFcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhdG9taWMgJXMgZmFpbGVkIGZvciAxMDAwIGl0ZXJhdGlvbnMhIgorbXNnc3RyICIlczogJXMgbmd1ecOqbiB04butIGzhu5dpIHNhdTEwMDAgdsOybmcgcXVheSEiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiY21vc19yZWFkKCk6IGzhu5dpIGdoaSB2w6BvIMSR4buLYSBjaOG7iSDEkWnhu4F1IGtoaeG7g24gJVg6ICVzXG4iCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICJjbW9zX3JlYWQoKTogbOG7l2kgxJHhu41jIMSR4buLYSBjaOG7iSBk4buvIGxp4buHdSAlWDogJXNcbiIKKworIzogaHdjbG9jay9jbW9zLmM6MzA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gY29udHJvbCBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiY21vc193cml0ZSgpOiBs4buXaSBnaGkgdsOgbyDEkeG7i2EgY2jhu4kgxJFp4buBdSBraGnhu4NuICVYOiAlc1xuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY21vc193cml0ZSgpOiB3cml0ZSB0byBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICJjbW9zX3dyaXRlKCk6IGzhu5dpIGdoaSB2w6BvIMSR4buLYSBjaOG7iSBk4buvIGxp4buHdSAlWDogJXNcbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIC9kZXYvcG9ydDogJXMiCittc2dzdHIgIktow7RuZyBt4bufIMSRxrDhu6NjIC9kZXYvcG9ydDogJXMiCisKKyM6IGh3Y2xvY2svY21vcy5jOjU4MQorIywgYy1mb3JtYXQKK21zZ2lkICJJIGZhaWxlZCB0byBnZXQgcGVybWlzc2lvbiBiZWNhdXNlIEkgZGlkbid0IHRyeS5cbiIKK21zZ3N0ciAiVMO0aSBs4bqleSB0aMO0bmcgdGluIHF1eeG7gW4gaOG6oW4ga2jDtG5nIHRow6BuaCBjw7RuZyB2w6wgxJHDoyBraMO0bmcgY+G7kSB0aOG7rS5cbiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIHVuYWJsZSB0byBnZXQgSS9PIHBvcnQgYWNjZXNzOiAgdGhlIGlvcGwoMykgY2FsbCBmYWlsZWQuXG4iCittc2dzdHIgIiIKKyJLaMO0bmcgdGjhu4MgZMO5bmcgJXMgxJHhu4MgbOG6pXkgdHJ1eSBj4bqtcCBj4buVbmcgVi9SOiAgZ+G7jWkgaW9wbCgzKSBraMO0bmcgdGjDoG5oIGPDtG5nLlxuIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmFibHkgeW91IG5lZWQgcm9vdCBwcml2aWxlZ2VzLlxuIgorbXNnc3RyICJS4bqldCBjw7MgdGjhu4MgYuG6oW4gY+G6p24gcXV54buBbiBuZ8aw4budaSBjaOG7py5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gJXMgdGltZS5cbiIKK21zZ3N0ciAiQ29pIG5oxrAgxJHhu5NuZyBo4buTIHBo4bqnbiBj4bupbmcgxJHGsOG7o2MgZ2nhu68gdOG6oWkgJXMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJVVEMiCittc2dzdHIgIlVUQyIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNQorbXNnaWQgImxvY2FsIgorbXNnc3RyICJu4buZaSBi4buZIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFdhcm5pbmc6IHVucmVjb2duaXplZCB0aGlyZCBsaW5lIGluIGFkanRpbWUgZmlsZVxuIgorbXNnc3RyICIiCisiJXM6IEPhuqNuaCBiw6FvOiBraMO0bmcgbmjhuq1uIHJhIGTDsm5nIHRo4bupIGJhIHRyb25nIHThuq1wIHRpbiDEkWnhu4F1IGNo4buJbmggdGjhu51pIGdpYW5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIihFeHBlY3RlZDogYFVUQycgb3IgYExPQ0FMJyBvciBub3RoaW5nLilcbiIKK21zZ3N0ciAiKE1vbmcgxJHhu6NpOiBgVVRDJyBoYXkgYExPQ0FMJyBoYXkga2jDtG5nIGfDrCBj4bqjLilcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgZHJpZnQgYWRqdXN0bWVudCBkb25lIGF0ICVsZCBzZWNvbmRzIGFmdGVyIDE5NjlcbiIKK21zZ3N0ciAixJBp4buBdSBjaOG7iW5oIMSR4buZIGzhu4djaCBs4bqnbiBjdeG7kWkgdOG6oWkgJWxkIGdpw6J5IHNhdSAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICJT4buxIMSR4buLbmgga2h1w7RuIHRo4buxYyBoaeG7h24gbOG6p24gY3Xhu5FpIHThuqFpICVsZCBnacOieSBzYXUgbsSDbSAxOTY5XG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICJIYXJkd2FyZSBjbG9jayBpcyBvbiAlcyB0aW1lXG4iCittc2dzdHIgIsSQ4buTbmcgaOG7kyBwaOG6p24gY+G7qW5nIGzDoCB0csOqbiAlc1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJ1bmtub3duIgorbXNnc3RyICJraMO0bmcgcsO1IgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBmb3IgY2xvY2sgdGljay4uLlxuIgorbXNnc3RyICJDaOG7nSB0aeG6v25nIHTDrWMgdOG6r2MgY+G7p2EgxJHhu5NuZyBo4buTLi4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5zeW5jaHJvbml6YXRpb24gZmFpbGVkXG4iCittc2dzdHIgIi4uLmzhu5dpIMSR4buTbmcgYuG7mSBob8OhXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1OAorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5nb3QgY2xvY2sgdGlja1xuIgorbXNnc3RyICIuLi7EkcOjIG5naGUgdGjhuqV5IHRp4bq/bmcgdMOtYyB04bqvY1xuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB2YWx1ZXMgaW4gaGFyZHdhcmUgY2xvY2s6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmRcbiIKK21zZ3N0ciAiIgorIkdpw6EgdHLhu4sga2jDtG5nIMSRw7puZyB0cm9uZyDEkeG7k25nIGjhu5MgcGjhuqduIGPhu6luZzogJTRkLyUuMmQvJS4yZCAlLjJkOiUuMmQ6JS4yZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHcgY2xvY2sgdGltZSA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgc2Vjb25kcyBzaW5jZSAxOTY5XG4iCittc2dzdHIgIiIKKyJUaOG7nWkgZ2lhbiDEkeG7k25nIGjhu5MgcGjhuqduIGPhu6luZyA6ICU0ZC8lLjJkLyUuMmQgJS4yZDolLjJkOiUuMmQgPSAlbGQgZ2nDonkga+G7gyB04burICIKKyJuxINtIDE5NjlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgcmVhZCBmcm9tIEhhcmR3YXJlIENsb2NrOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCittc2dzdHIgIlRo4budaSBnaWFuIMSR4buNYyB04burIMSQ4buTbmcgaOG7kyBQaOG6p24gY+G7qW5nOiAlNGQvJS4yZC8lLjJkICUwMmQ6JTAyZDolMDJkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIEhhcmR3YXJlIENsb2NrIHRvICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICLEkOG6t3QgxJDhu5NuZyBo4buTIFBo4bqnbiBj4bupbmcgdGjDoG5oICUuMmQ6JS4yZDolLjJkID0gJWxkIGdpw6J5IGvhu4MgdOG7qyBuYW0gMTk2OVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2xvY2sgbm90IGNoYW5nZWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIsSQ4buTbmcgaOG7kyBraMO0bmcgdGhheSDEkeG7lWkgLSBjaOG7iSB0aOG7rSBuZ2hp4buHbSBtw6AgdGjDtGkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGltZSBlbGFwc2VkIHNpbmNlIHJlZmVyZW5jZSB0aW1lIGhhcyBiZWVuICUuNmYgc2Vjb25kcy5cbiIKKyJEZWxheWluZyBmdXJ0aGVyIHRvIHJlYWNoIHRoZSBuZXcgdGltZS5cbiIKK21zZ3N0ciAiIgorIlRo4budaSBnaWFuIHRyw7RpIHF1YSBr4buDIHThu6sgdGjhu51pIGdpYW4gdGhhbSBjaGnhur91IGzDoCAlLjZmIGdpw6J5LlxuIgorIlRyw6wgaG/Do24gdGjDqm0gxJHhu4MgxJFpIHThu5tpIHRo4budaSBnaWFuIG3hu5tpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayByZWdpc3RlcnMgY29udGFpbiB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIGludmFsaWQgKGUuZy4gIgorIjUwdGggZGF5IG9mIG1vbnRoKSBvciBiZXlvbmQgdGhlIHJhbmdlIHdlIGNhbiBoYW5kbGUgKGUuZy4gWWVhciAyMDk1KS5cbiIKK21zZ3N0ciAiIgorIsSQ4buTbmcgaOG7kyBQaOG6p24gY+G7qW5nIGNo4bupYSBjw6FjIGdpw6EgdHLhu4sgaG/hurdjIGtow7RuZyDEkcO6bmcgKHYuZC4gbmfDoHkgdGjhu6kgNTAgY+G7p2EgIgorInRow6FuZykgaG/hurdjIHbGsOG7o3QgcXXDoSBwaOG6oW0gdmkgY2jDum5nIHRhIGPDsyB0aOG7gyDEkWnhu4F1IGtoaeG7g24gKHYuZC4gTsSDbSAyMDk1KS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiJXMgICUuNmYgZ2nDonlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjE1CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIC0tZGF0ZSBvcHRpb24gc3BlY2lmaWVkLlxuIgorbXNnc3RyICJLaMO0bmcgY2jhu4kgcmEgdMO5eSBjaOG7jW4gLS1kYXRlLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1kYXRlIGFyZ3VtZW50IHRvbyBsb25nXG4iCittc2dzdHIgIlRoYW0gc+G7kSAtLWRhdGUgcXXDoSBkw6BpXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisiR2nDoSB0cuG7iyBj4bunYSB0w7l5IGNo4buNbiDCqyAtLWRhdGUgwrsga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgbmfDoHkgdGjDrWNoIGjhu6NwLlxuIgorIlRyb25nIHRyxrDhu51uZyBo4bujcCBuw6B5LCBuw7MgY2jhu6lhIGPDoWMgZOG6pXUgdHLDrWNoIGThuqtuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXNzdWluZyBkYXRlIGNvbW1hbmQ6ICVzXG4iCittc2dzdHIgIsSQxrBhIHJhIGPDonUgbOG7h25oIGRhdGUgKG5nw6B5IHRow6FuZyk6ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0MAorbXNnaWQgIlVuYWJsZSB0byBydW4gJ2RhdGUnIHByb2dyYW0gaW4gL2Jpbi9zaCBzaGVsbC4gcG9wZW4oKSBmYWlsZWQiCittc2dzdHIgIktow7RuZyBjaOG6oXkgxJHGsOG7o2MgY2jGsMahbmcgdHLDrG5oICdkYXRlJyB0cm9uZyB0csOsbmggYmFvLiBwb3BlbigpIGLhu4sgbOG7l2kiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgIsSRw6FwIOG7qW5nIHThu6sgY8OidSBs4buHbmggZGF0ZSA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHRzLlxuIgorIlRoZSBjb21tYW5kIHdhczpcbiIKKyIgICVzXG4iCisiVGhlIHJlc3BvbnNlIHdhczpcbiIKKyIgICVzXG4iCittc2dzdHIgIiIKKyJDw6J1IGzhu4duaCBkYXRlIChuZ8OgeSB0aMOhbmcpIMSRxrBhIHJhIGLhu59pICVzIHRy4bqjIGzhuqFpIGvhur90IHF14bqjIGtow7RuZyBtb25nIMSR4bujaS5cbiIKKyJDw6J1IGzhu4duaCBsw6A6XG4iCisiICAlc1xuIgorIkvhur90IHF14bqjIGzDoDpcbiIKKyIgICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGRhdGUgY29tbWFuZCBpc3N1ZWQgYnkgJXMgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gaW50ZWdlciB3aGVyZSAiCisidGhlIGNvbnZlcnRlZCB0aW1lIHZhbHVlIHdhcyBleHBlY3RlZC5cbiIKKyJUaGUgY29tbWFuZCB3YXM6XG4iCisiICAlc1xuIgorIlRoZSByZXNwb25zZSB3YXM6XG4iCisiICVzXG4iCittc2dzdHIgIiIKKyJDw6J1IGzhu4duaCBkYXRlIChuZ8OgeSB0aMOhbmcpIMSRxrBhIHJhIGLhu59pICVzIHRy4bqjIGzhuqFpIGvhur90IHF14bqjIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0ICIKKyJz4buRIG5ndXnDqm4sIHRyb25nIGtoaSBtb25nIMSR4bujaSBnacOhIHRy4buLIHRo4budaSBnaWFuIMSRw6MgY2h1eeG7g24gxJHhu5VpLlxuIgorIkPDonUgbOG7h25oIGzDoDpcbiIKKyIgICVzXG4iCisiS+G6v3QgcXXhuqMgbMOgOlxuIgorIiAgJXNcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgImRhdGUgc3RyaW5nICVzIGVxdWF0ZXMgdG8gJWxkIHNlY29uZHMgc2luY2UgMTk2OS5cbiIKK21zZ3N0ciAiY2h14buXaSBuZ8OgeSB0aMOhbmcgJXMgYuG6sW5nICVsZCBnacOieSBr4buDIHThu6sgbsSDbSAxOTY5LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBIYXJkd2FyZSBDbG9jayBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdGltZSwgc28gd2UgY2Fubm90IHNldCB0aGUgIgorIlN5c3RlbSBUaW1lIGZyb20gaXQuXG4iCittc2dzdHIgIiIKKyLEkOG7k25nIGjhu5MgUGjhuqduIGPhu6luZyBraMO0bmcgY2jhu6lhIHRo4budaSBnaWFuIHRow61jaCBo4bujcCwgdsOsIHRo4bq/IGNow7puZyB0YSBraMO0bmcgdGjhu4MgIgorIsSR4bq3dCBUaOG7nWkgZ2lhbiBj4bunYSBI4buHIHRo4buRbmcgdOG7qyDEkcOzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjcgaHdjbG9jay9od2Nsb2NrLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcgc2V0dGltZW9mZGF5OlxuIgorbXNnc3RyICLEkGFuZyBn4buNaSBs4buHbmggZ2nhu50gc2V0dGltZW9mZGF5OlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MjggaHdjbG9jay9od2Nsb2NrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCittc2dzdHIgIlx0dHYudHZfc2VjID0gJWxkLCB0di50dl91c2VjID0gJWxkXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIlx0dHoudHpfbWludXRlc3dlc3QgPSAlZFxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3MzMgaHdjbG9jay9od2Nsb2NrLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIHN5c3RlbSBjbG9jayBiZWNhdXNlIHJ1bm5pbmcgaW4gdGVzdCBtb2RlLlxuIgorbXNnc3RyICIiCisiS2jDtG5nIHRoaeG6v3QgbOG6rXAgxJHhu5NuZyBo4buTIGjhu4cgdGjhu5FuZyBi4bufIHbDrCDEkWFuZyBjaOG6oXkgdHJvbmcgY2jhur8gxJHhu5kgdGjhu60gbmdoaeG7h20uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjc0MiBod2Nsb2NrL2h3Y2xvY2suYzo4MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTXVzdCBiZSBzdXBlcnVzZXIgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiQ+G6p24gcGjhuqNpIGzDoCBuZ8aw4budaSBkw7luZyByb290IMSR4buDIMSR4bq3dCDEkeG7k25nIGjhu5MgaOG7hyB0aOG7kW5nLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDUgaHdjbG9jay9od2Nsb2NrLmM6ODIzCittc2dpZCAic2V0dGltZW9mZGF5KCkgZmFpbGVkIgorbXNnc3RyICJzZXR0aW1lb2ZkYXkoKSBraMO0bmcgdGjDoG5oIGPDtG5nIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBzeXN0ZW0gdGltZTogJWxkID0gJXNcbiIKK21zZ3N0ciAiVGjhu51pIGdpYW4gaOG7hyB0aOG7kW5nIGhp4buHbiB0aOG7nWk6ICVsZCA9ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJcdFVUQzogJXNcbiIKK21zZ3N0ciAiXHRVVEM6ICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSB0aGUgSGFyZHdhcmUgQ2xvY2sgcHJldmlvdXNseSBjb250YWluZWQgIgorImdhcmJhZ2UuXG4iCittc2dzdHIgIktow7RuZyBjaOG7iW5oIMSR4buZIGzhu4duaCB0aOG7nWkgZ2lhbiB2w6wgxJDhu5NuZyBo4buTIHBo4bqnbiBj4bupbmcgY2jhu6lhIHLDoWMuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg1NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBsYXN0IGNhbGlicmF0aW9uIHRpbWUgaXMgemVybyxcbiIKKyJzbyBoaXN0b3J5IGlzIGJhZCBhbmQgY2FsaWJyYXRpb24gc3RhcnRvdmVyIGlzIG5lY2Vzc2FyeS5cbiIKK21zZ3N0ciAiIgorIktow7RuZyBjaOG7iW5oIMSR4buZIGzhu4duaCB0aOG7nWkgZ2lhbiB2w6wgbOG6p24gxJHhu4tuaCB0aOG7nWkgZ2lhbiBjdeG7kWkgY8O5bmcgYuG6sW5nIDAsXG4iCisidsOsIHRo4bq/IGzhu4tjaCBz4butIHjhuqV1LCB2w6AgY+G6p24ga2jhu59pIMSR4buZbmcgbOG6oWkgdmnhu4djIMSR4buLbmggdGjhu51pIGdpYW4uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjg2MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiTm90IGFkanVzdGluZyBkcmlmdCBmYWN0b3IgYmVjYXVzZSBpdCBoYXMgYmVlbiBsZXNzIHRoYW4gYSBkYXkgc2luY2UgdGhlICIKKyJsYXN0IGNhbGlicmF0aW9uLlxuIgorbXNnc3RyICIiCisiS2jDtG5nIGNo4buJbmggxJHhu5kgbOG7h25oIHRo4budaSBnaWFuIHbDrCBuw7Mgbmjhu48gaMahbiBt4buZdCBuZ8OgeSBr4buDIHThu6sgbOG6p24gxJHhu4tuaCB0aOG7nWkgIgorImdpYW4gY3Xhu5FpIGPDuW5nLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNsb2NrIGRyaWZ0ZWQgJS4xZiBzZWNvbmRzIGluIHRoZSBwYXN0ICVkIHNlY29uZHMgaW4gc3BpdGUgb2YgYSBkcmlmdCBmYWN0b3IgIgorIm9mICVmIHNlY29uZHMvZGF5LlxuIgorIkFkanVzdGluZyBkcmlmdCBmYWN0b3IgYnkgJWYgc2Vjb25kcy9kYXlcbiIKK21zZ3N0ciAiIgorIsSQ4buTbmcgaOG7kyBjaOG6oXkgc2FpIGzhu4djaCAlLjFmIGdpw6J5IHRyb25nIHPhu5EgJWQgZ2nDonkgxJHDoyBxdWEsIHbDoCDEkWkgbmfGsOG7o2MgbOG6oWnEkeG7mSAiCisic2FpIGzhu4djaCAlZiBnacOieS9uZ8OgeS5cbiIKKyJDaOG7iW5oIGzhuqFpIMSR4buZIHNhaSBs4buHY2ggJWYgZ2nDonkvbmfDoHlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiVGjhu51pIGdpYW4ga+G7gyB04burIGzhuqduIGNo4buJbmggY3Xhu5FpIGPDuW5nIGzDoCAlZCBnacOieVxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiQ+G6p24gdGjDqm0gJWQgZ2nDonkgdsOgIGNodXnhu4NuIHRo4budaSBnaWFuIG5nxrDhu6NjIGzhuqFpICUuNmYgZ2nDonlcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB1cGRhdGluZyBhZGp0aW1lIGZpbGUgYmVjYXVzZSBvZiB0ZXN0aW5nIG1vZGUuXG4iCittc2dzdHIgIktow7RuZyBj4bqtcCBuaOG6rXQgdGjhu51pIGdpYW4gY2jhu4luaCB2w6wgY2jhur8gxJHhu5kgdGjhu60gbmdoaeG7h20uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjk5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV291bGQgaGF2ZSB3cml0dGVuIHRoZSBmb2xsb3dpbmcgdG8gJXM6XG4iCisiJXMiCittc2dzdHIgIiIKKyJHaGkgbmjhu5sgY8OhaSBzYXUgdOG7m2kgJXM6XG4iCisiJXMiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgbeG7nyB04bqtcCB0aW4gY2jhu6lhIGPDoWMgdGhhbSBz4buRIMSRaeG7gXUgY2jhu4luaCDEkeG7k25nIGjhu5MgKCVzKSDEkeG7gyBnaGkiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIktow7RuZyB0aOG7gyBj4bqtcCBuaOG6rXQgdOG6rXAgdGluIGNo4bupYSBjw6FjIHRoYW0gc+G7kSDEkWnhu4F1IGNo4buJbmggxJHhu5NuZyBo4buTICglcykiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHJpZnQgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIG5vdCB1cGRhdGVkLlxuIgorbXNnc3RyICJLaMO0bmcgY+G6rXAgbmjhuq10IGPDoWMgdGhhbSBz4buRIGNo4buJbmggc2FpIGzhu4djaC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICIiCisixJDhu5NuZyBo4buTIFBo4bqnbiBj4bupbmcga2jDtG5nIGPDsyB0aOG7nWkgZ2lhbiB0aMOtY2ggaOG7o3AsIHbDrCB0aOG6vyBjaMO6bmcgdGEga2jDtG5nIHRo4buDICIKKyJjaOG7iW5oLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3Qgc2V0dGluZyBjbG9jayBiZWNhdXNlIGxhc3QgYWRqdXN0bWVudCB0aW1lIGlzIHplcm8sIHNvIGhpc3RvcnkgaXMgYmFkLiIKK21zZ3N0ciAiIgorIlPhur0ga2jDtG5nIMSR4bq3dCDEkeG7k25nIGjhu5MgdsOsIHRo4budaSBnaWFuIMSRaeG7gXUgY2jhu4luaCBjdeG7kWkgY8O5bmcgbMOgIHPhu5Ega2jDtG5nIHRow6wgbOG7i2NoICIKKyJz4butIHNhaS4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICJD4bqnbiBjaOG7iW5oIMOtdCBoxqFuIG3hu5l0IGdpw6J5LCB2w6wgdGjhur8ga2jDtG5nIMSR4bq3dCDEkeG7k25nIGjhu5MuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgIlPhu60gZOG7pW5nICVzLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMTE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVzYWJsZSBjbG9jayBpbnRlcmZhY2UgZm91bmQuXG4iCittc2dzdHIgIktow7RuZyB0w6xtIHRo4bqleSBnaWFvIGRp4buHbiDEkeG7k25nIGjhu5MgY8OzIHRo4buDIHPhu60gZOG7pW5nIG7DoG8uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyMjEgaHdjbG9jay9od2Nsb2NrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiS2jDtG5nIMSR4bq3dCDEkcaw4bujYyDEkeG7k25nIGjhu5MgaOG7hyB0aOG7kW5nLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGtlZXBzIGFuIGVwb2NoIHZhbHVlIGZvciB0aGUgSGFyZHdhcmUgQ2xvY2sgb25seSBvbiBhbiBBbHBoYSAiCisibWFjaGluZS5cbiIKKyJUaGlzIGNvcHkgb2YgaHdjbG9jayB3YXMgYnVpbHQgZm9yIGEgbWFjaGluZSBvdGhlciB0aGFuIEFscGhhXG4iCisiKGFuZCB0aHVzIGlzIHByZXN1bWFibHkgbm90IHJ1bm5pbmcgb24gYW4gQWxwaGEgbm93KS4gIE5vIGFjdGlvbiB0YWtlbi5cbiIKK21zZ3N0ciAiIgorIk5ow6JuIGNo4buJIGdp4buvIGdpw6EgdHLhu4sga2jhu59pIMSR4bqndSBjaG8gxJDhu5NuZyBo4buTIFBo4bqnbiBj4bupbmcgdHLDqm4gbeG7mXQgbcOheSBBbHBoYS5cbiIKKyJC4bqjbiBzYW8gbsOgeSBj4bunYSBod2Nsb2NrIMSRxrDhu6NjIGJpw6puIGThu4tjaCBjaG8gbeG7mXQgbcOheSBraMOhYyBBbHBoYVxuIgorIih2w6AgdsOsIHRo4bq/IMSRb8OhbiBy4bqxbmcga2jDtG5nIGNo4bqheSB0csOqbiBt4buZdCBtw6F5IEFscGhhKS4gS2jDtG5nIHRo4buxYyBoaeG7h24gZ8OsLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBnZXQgdGhlIGVwb2NoIHZhbHVlIGZyb20gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiS2jDtG5nIGzhuqV5IMSRxrDhu6NjIGdpw6EgdHLhu4sga2jhu59pIMSR4bqndSB04burIG5ow6JuLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAiTmjDom4gxJFhbmcgZ2nhu68gZ2nDoSB0cuG7iyBraOG7n2kgxJHhuqd1IGzDoCAlbHVcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSAnZXBvY2gnIG9wdGlvbiB0byB0ZWxsIHRvIHdoYXQgIgorInZhbHVlIHRvIHNldCBpdC5cbiIKK21zZ3N0ciAiIgorIsSQ4buDIMSR4bq3dCBnacOhIHRy4buLIGto4bufaSDEkeG6p3UsIGLhuqFuIGPhuqduIHPhu60gZOG7pW5nIHTDuXkgY2jhu41uICdlcG9jaCcgxJHhu4MgdGjDtG5nIGLDoW8gZ2nDoSAiCisidHLhu4sgbXXhu5FuIMSR4bq3dC5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyB0aGUgZXBvY2ggdG8gJWQgLSB0ZXN0aW5nIG9ubHkuXG4iCittc2dzdHIgIktow7RuZyDEkeG6t3Qga2jhu59pIMSR4bqndSB0aMOgbmggJWQgLSBjaOG7iSB0aOG7rSBuZ2hp4buHbS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI3NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2V0IHRoZSBlcG9jaCB2YWx1ZSBpbiB0aGUga2VybmVsLlxuIgorbXNnc3RyICJLaMO0bmcgxJHhurd0IMSRxrDhu6NjIGdpw6EgdHLhu4sga2jhu59pIMSR4bqndSB0cm9uZyBuaMOibi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTI5MCBtaXNjLXV0aWxzL2NhbC5jOjM0NyBtaXNjLXV0aWxzL2tpbGwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZnJvbSAlc1xuIgorbXNnc3RyICIlcyB04burICVzXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEzMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImh3Y2xvY2sgLSBxdWVyeSBhbmQgc2V0IHRoZSBoYXJkd2FyZSBjbG9jayAoUlRDKVxuIgorIlxuIgorIlVzYWdlOiBod2Nsb2NrIFtmdW5jdGlvbl0gW29wdGlvbnMuLi5dXG4iCisiXG4iCisiRnVuY3Rpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICBzaG93IHRoaXMgaGVscFxuIgorIiAgLXIgfCAtLXNob3cgICAgICAgICByZWFkIGhhcmR3YXJlIGNsb2NrIGFuZCBwcmludCByZXN1bHRcbiIKKyIgICAgICAgLS1zZXQgICAgICAgICAgc2V0IHRoZSBydGMgdG8gdGhlIHRpbWUgZ2l2ZW4gd2l0aCAtLWRhdGVcbiIKKyIgIC1zIHwgLS1oY3Rvc3lzICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBmcm9tIHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgLXcgfCAtLXN5c3RvaGMgICAgICBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIHRvIHRoZSBjdXJyZW50IHN5c3RlbSB0aW1lXG4iCisiICAgICAgIC0tc3lzdHogICAgICAgIHNldCB0aGUgc3lzdGVtIHRpbWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZXpvbmVcbiIKKyIgICAgICAgLS1hZGp1c3QgICAgICAgYWRqdXN0IHRoZSBydGMgdG8gYWNjb3VudCBmb3Igc3lzdGVtYXRpYyBkcmlmdCBzaW5jZVxuIgorIiAgICAgICAgICAgICAgICAgICAgICB0aGUgY2xvY2sgd2FzIGxhc3Qgc2V0IG9yIGFkanVzdGVkXG4iCisiICAgICAgIC0tZ2V0ZXBvY2ggICAgIHByaW50IG91dCB0aGUga2VybmVsJ3MgaGFyZHdhcmUgY2xvY2sgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1zZXRlcG9jaCAgICAgc2V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZSB0byB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGdpdmVuIHdpdGggLS1lcG9jaFxuIgorIiAgLXYgfCAtLXZlcnNpb24gICAgICBwcmludCBvdXQgdGhlIHZlcnNpb24gb2YgaHdjbG9jayB0byBzdGRvdXRcbiIKKyJcbiIKKyJPcHRpb25zOiBcbiIKKyIgIC11IHwgLS11dGMgICAgICAgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gVVRDXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBrZXB0IGluIGxvY2FsIHRpbWVcbiIKKyIgIC1mIHwgLS1ydGM9cGF0aCAgICAgc3BlY2lhbCAvZGV2Ly4uLiBmaWxlIHRvIHVzZSBpbnN0ZWFkIG9mIGRlZmF1bHRcbiIKKyIgICAgICAgLS1kaXJlY3Rpc2EgICAgYWNjZXNzIHRoZSBJU0EgYnVzIGRpcmVjdGx5IGluc3RlYWQgb2YgJXNcbiIKKyIgICAgICAgLS1iYWR5ZWFyICAgICAgaWdub3JlIHJ0YydzIHllYXIgYmVjYXVzZSB0aGUgYmlvcyBpcyBicm9rZW5cbiIKKyIgICAgICAgLS1kYXRlICAgICAgICAgc3BlY2lmaWVzIHRoZSB0aW1lIHRvIHdoaWNoIHRvIHNldCB0aGUgaGFyZHdhcmUgY2xvY2tcbiIKKyIgICAgICAgLS1lcG9jaD15ZWFyICAgc3BlY2lmaWVzIHRoZSB5ZWFyIHdoaWNoIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFxuIgorIiAgICAgICAgICAgICAgICAgICAgICBoYXJkd2FyZSBjbG9jaydzIGVwb2NoIHZhbHVlXG4iCisiICAgICAgIC0tbm9hZGpmaWxlICAgIGRvIG5vdCBhY2Nlc3MgL2V0Yy9hZGp0aW1lLiBSZXF1aXJlcyB0aGUgdXNlIG9mXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorIiAgICAgICAtLWFkamZpbGU9cGF0aCBzcGVjaWZpZXMgdGhlIHBhdGggdG8gdGhlIGFkanVzdCBmaWxlIChkZWZhdWx0IGlzXG4iCisiICAgICAgICAgICAgICAgICAgICAgIC9ldGMvYWRqdGltZSlcbiIKKyIgICAgICAgLS10ZXN0ICAgICAgICAgZG8gZXZlcnl0aGluZyBleGNlcHQgYWN0dWFsbHkgdXBkYXRpbmcgdGhlIGhhcmR3YXJlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGNsb2NrIG9yIGFueXRoaW5nIGVsc2VcbiIKKyIgIC1EIHwgLS1kZWJ1ZyAgICAgICAgZGVidWcgbW9kZVxuIgorIlxuIgorbXNnc3RyICIiCisiaHdjbG9jayDigJQgaOG7j2kgZ2nhu50gdsOgIMSR4bq3dCDEkeG7k25nIGjhu5MgcGjhuqduIGPhu6luZyAoUlRDKVxuIgorIlxuIgorIlPhu60gZOG7pW5nOiBod2Nsb2NrIFtow6BtXSBbY8OhYyB0w7l5IGNo4buNbi4uLl1cbiIKKyJcbiIKKyJIw6BtOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICBoaeG7g24gdGjhu4sgdHLhu6MgZ2nDunAgbsOgeVxuIgorIiAgLXIgfCAtLXNob3cgICAgICAgICDEkeG7jWMgxJHhu5NuZyBo4buTIHBo4bqnbiBj4bupbmcgdsOgIGluIHJhIGvhur90IHF14bqjXG4iCisiICAgICAgIC0tc2V0ICAgICAgICAgIMSR4bq3dCBydGMgdGjDoG5oIHRo4budaSBnaWFuIMSRxrBhIHJhLCBkw7luZyDCqyAtLWRhdGUgwrtcbiIKKyIgIC1zIHwgLS1oY3Rvc3lzICAgICAgxJHhurd0IHRo4budaSBnaWFuIGjhu4cgdGjhu5FuZyB04burIMSR4buTbmcgaOG7kyBwaOG6p24gY+G7qW5nXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIMSR4bq3dCDEkeG7k25nIGjhu5MgcGjhuqduIGPhu6luZyB0aMOgbmggdGjhu51pIGdpYW4gaOG7hyB0aOG7kW5nIGhp4buHbiAiCisidGjhu51pXG4iCisiICAgICAgIC0tc3lzdHogICAgICAgIMSR4bq3dCB0aOG7nWkgZ2lhbiBo4buHIHRo4buRbmcgZOG7sWEgdsOgbyBtw7ppIGdp4budIGhp4buHbiB0aOG7nWlcbiIKKyIgICAgICAgLS1hZGp1c3QgICAgICAgxJFp4buBdSBjaOG7iW5oIHJ0YyDEkeG7gyB0w61uaCDEkeG6v24gxJHhu5kgbOG7h2NoIGPDsyBo4buHIHRo4buRbmdcbiIKKyJcdFx0XHRcdGvhur8gdOG7qyBs4bqnbiBjdeG7kWkgY8O5bmcgxJHhurd0IGhheSBjaOG7iW5oIMSR4buTbmcgaOG7k1xuIgorIiAgICAgICAtLWdldGVwb2NoICAgICBpbiByYSBnacOhIHRy4buLIHRo4budaSDEkWnhu4NtIMSR4buTbmcgaOG7kyBwaOG6p24gY+G7qW5nIGPhu6dhIGjhuqF0ICIKKyJuaMOiblxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICDEkeG6t3QgZ2nDoSB0cuG7iyB0aOG7nWkgxJFp4buDbSDEkeG7k25nIGjhu5MgcGjhuqduIGPhu6luZyBj4bunYSBo4bqhdCBuaMOiblxuIgorIlx0XHRcdFx0dGjDoG5oIGdpw6EgdHLhu4sgxJHGsGEgcmEgZMO5bmcgwqsgLS1lcG9jaCDCu1xuIgorIiAgLXYgfCAtLXZlcnNpb24gICAgICBpbiByYSDEkeG6p3UgcmEgdGnDqnUgY2h14bqpbiBwaGnDqm4gYuG6o24gY+G7p2EgaHdjbG9ja1xuIgorIlxuIgorIlR14buzIGNo4buNbjogXG4iCisiICAtdSB8IC0tdXRjICAgICAgICAgIMSR4buTbmcgaOG7kyBwaOG6p24gY+G7qW5nIHTDrW5oIHRoZW8gVVRDXG4iCisiICAgICAgIC0tbG9jYWx0aW1lICAgIMSR4buTbmcgaOG7kyBwaOG6p24gY+G7qW5nIHTDrW5oIHRoZW8gdGjhu51pIGdpYW4gY+G7pWMgYuG7mVxuIgorIiAgLWYgfCAtLXJ0Yz3Ekcaw4budbmdfZOG6q24gICAgIHThuq1wIHRpbiDCqyAvZGV2Ly4uLiDCuyDEkeG6t2MgYmnhu4d0IGPhuqduIGTDuW5nIHRoYXkgY2hvICIKKyJt4bq3YyDEkeG7i25oXG4iCisiICAgICAgIC0tZGlyZWN0aXNhICAgIHRydXkgY+G6rXAgdHLhu7FjIHRp4bq/cCBt4bqhY2ggbuG7kWkgSVNBIHRoYXkgY2hvICVzXG4iCisiICAgICAgIC0tYmFkeWVhciAgICAgIGzhu50gxJFpIG7Eg20gY+G7p2EgcnRjIHbDrCBCSU9TIGLhu4sgaOG7j25nXG4iCisiICAgICAgIC0tZGF0ZSAgICAgICAgIGdoaSByw7UgdGjhu51pIGdpYW4gY+G6p24gxJHhurd0IHRyb25nIMSR4buTbmcgaOG7kyBwaOG6p24gY+G7qW5nXG4iCisiICAgICAgIC0tZXBvY2g9bsSDbSAgIGdoaSByw7UgbsSDbSBsw6AgxJHhuqd1IGPhu6dhIGdpw6EgdHLhu4sgdGjhu51pIMSRaeG7g20gxJHhu5NuZyBo4buTIHBo4bqnbiAiCisiY+G7qW5nXG4iCisiICAgICAgIC0tbm9hZGpmaWxlICAgIMSR4burbmcgdHJ1eSBj4bqtcCDEkeG6v24gwqsgL2V0Yy9hZGp0aW1lIMK7LlxuIgorIlx0XHRcdFx0Q+G6p24gZMO5bmcgaG/hurdjIMKrIC0tdXRjIMK7IGhv4bq3YyDCqyAtLWxvY2FsdGltZSDCu1xuIgorIiAgICAgICAtLWFkamZpbGU9xJHGsOG7nW5nX2ThuqtuXHRnaGkgcsO1IMSRxrDhu51uZyBk4bqrbiDEkeG6v24gdOG6rXAgdGluIMSRaeG7gXUgY2jhu4luaFxuIgorIlx0XHRcdFx0KG3hurdjIMSR4buLbmggbMOgIMKrIC9ldGMvYWRqdGltZSDCuylcbiIKKyIgICAgICAgLS10ZXN0ICAgICAgICAgbMOgbSB04bqldCBj4bqjIHRy4burIHRo4buxYyBz4buxIGPhuq1wIG5o4bqtdCDEkeG7k25nIGjhu5MgcGjhuqduIGPhu6luZ1xuIgorIlx0XHRcdFx0aG/hurdjIGPDoWkgZ8OsIGtow6FjXG4iCisiICAtRCB8IC0tZGVidWcgICAgICAgIGNo4bq/IMSR4buZIGfhu6EgbOG7l2lcbiIKKyJcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICBiw6FvIGh3Y2xvY2sgYmnhur90IGtp4buDdSBhbHBoYSBi4bqhbiBjw7MgKHhlbSBod2Nsb2NrKDgpKVxuIgorIlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNDMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmFibGUgdG8gY29ubmVjdCB0byBhdWRpdCBzeXN0ZW1cbiIKK21zZ3N0ciAiJXM6IGtow7RuZyB0aOG7gyBr4bq/dCBu4buRaSDEkeG7gyBraeG7g20gdHJhIGNo4bq3dCBjaOG6vSBo4buHIHRo4buRbmdcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyB0YWtlcyBubyBub24tb3B0aW9uIGFyZ3VtZW50cy4gIFlvdSBzdXBwbGllZCAlZC5cbiIKK21zZ3N0ciAiJXMgbOG6pXkgY8OhYyB0aGFtIHPhu5Ega2jDtG5nIHTDuXkgY2jhu41uLiAgQuG6oW4gxJHDoyBjdW5nIGPhuqVwICVkLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZSBzcGVjaWZpZWQgbXVsdGlwbGUgZnVuY3Rpb25zLlxuIgorIllvdSBjYW4gb25seSBwZXJmb3JtIG9uZSBmdW5jdGlvbiBhdCBhIHRpbWUuXG4iCittc2dzdHIgIiIKKyJC4bqhbiBwaOG6o2kgY2jhu4kgcmEgbmhp4buBdSBow6BtLlxuIgorIkLhuqFuIGNo4buJIGPDsyB0aOG7gyB0aOG7sWMgaGnhu4duIG3hu5l0IGjDoG0gbeG7l2kgbOG6p24uXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS11dGMgYW5kIC0tbG9jYWx0aW1lIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSBzcGVjaWZpZWQgIgorImJvdGguXG4iCittc2dzdHIgIiIKKyIlczogQ8OhYyB0w7l5IGNo4buNbiDCqyAtLXV0YyDCuyB2w6AgwqsgLS1sb2NhbHRpbWUgwrsgbG/huqFpIHRy4burIGzhuqtuIG5oYXUuICBC4bqhbiBs4bqhaSDEkcawYSAiCisicmEgY+G6oyBoYWkuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS1hZGp1c3QgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogQ8OhYyB0w7l5IGNo4buNbiDCqyAtLWFkanVzdCDCuyB2w6AgwqsgLS1ub2FkanVzdCDCuyBsb+G6oWkgdHLhu6sgbOG6q24gbmhhdS4gIELhuqFuIGzhuqFpICIKKyLEkcawYSByYSBj4bqjIGhhaS5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkamZpbGUgYW5kIC0tbm9hZGpmaWxlIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSAiCisic3BlY2lmaWVkIGJvdGguXG4iCittc2dzdHIgIiIKKyIlczogQ8OhYyB0w7l5IGNo4buNbiDCqyAtLWFkamZpbGUgwrsgdsOgIMKrIC0tbm9hZGpmaWxlIMK7IGxv4bqhaSB0cuG7qyBs4bqrbiBuaGF1LiAgQuG6oW4gbOG6oWkgIgorIsSRxrBhIHJhIGPhuqMgaGFpLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIlczogVuG7m2kgwqsgLS1ub2FkamZpbGUgwrssIGLhuqFuIHBo4bqjaSBjaOG7iSByYSDCqyAtLXV0YyDCuyBob+G6t2MgwqsgLS1sb2NhbHRpbWUgwrtcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYwMgorIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgc2V0LXRvIHRpbWUuICBDYW5ub3Qgc2V0IGNsb2NrLlxuIgorbXNnc3RyICJLaMO0bmcgY8OzIHRo4budaSBnaWFuIHNldC10byBuw6BvIGPDsyB0aOG7gyBz4butIGThu6VuZy4gS2jDtG5nIHRo4buDIMSR4bq3dCDEkeG7k25nIGjhu5NcbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYxOQorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrLlxuIgorbXNnc3RyICIiCisiUuG6pXQgdGnhur9jLCBuaMawbmcgY2jhu4kgbmfGsOG7nWkgZMO5bmcgcm9vdCBt4bubaSBjw7MgdGjhu4MgdGhheSDEkeG7lWkgxJDhu5NuZyBo4buTIFBo4bqnbiBj4bupbmcuXG4iCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgdGhlIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBTeXN0ZW0gQ2xvY2suXG4iCittc2dzdHIgIiIKKyJS4bqldCB0aeG6v2MsIG5oxrBuZyBjaOG7iSBuZ8aw4budaSBkw7luZyByb290IG3hu5tpIGPDsyB0aOG7gyB0aGF5IMSR4buVaSDEkOG7k25nIGjhu5MgSOG7hyB0aOG7kW5nLlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIGluIHRoZSAiCisia2VybmVsLlxuIgorbXNnc3RyICIiCisiUuG6pXQgdGnhur9jLCBuaMawbmcgY2jhu4kgbmfGsOG7nWkgZMO5bmcgcm9vdCBt4bubaSBjw7MgdGjhu4MgdGhheSDEkeG7lWkga2jhu59pIMSR4bqndSBj4bunYcSQ4buTbmcgaOG7kyAiCisiUGjhuqduIGPhu6luZyB0cm9uZyBuaMOibi5cbiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgYWNjZXNzIHRoZSBIYXJkd2FyZSBDbG9jayB2aWEgYW55IGtub3duIG1ldGhvZC5cbiIKK21zZ3N0ciAiIgorIktow7RuZyB0aOG7gyB0cnV5IGPhuq1wIHThu5tpIMSQ4buTbmcgaOG7kyBQaOG6p24gY+G7qW5nIHF1YSBt4buZdCBwaMawxqFuZyBwaMOhcCBraMO0bmcgcsO1LlxuIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2UgdGhlIC0tZGVidWcgb3B0aW9uIHRvIHNlZSB0aGUgZGV0YWlscyBvZiBvdXIgc2VhcmNoIGZvciBhbiBhY2Nlc3MgIgorIm1ldGhvZC5cbiIKK21zZ3N0ciAiIgorIlPhu60gZOG7pW5nIHTDuXkgY2jhu41uIC0tZGVidWcgxJHhu4MgeGVtIGNoaSB0aeG6v3QgduG7gSBxdcOhIHRyw6xuaCB0w6xtIGtp4bq/bSBwaMawxqFuZyBwaMOhcCAiCisidHJ1eSBj4bqtcCBj4bunYSBjaMO6bmcgdGEuXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYWl0aW5nIGluIGxvb3AgZm9yIHRpbWUgZnJvbSBLREdIV0NMSyB0byBjaGFuZ2VcbiIKK21zZ3N0ciAixJBhbmcgY2jhu50gKHbDsm5nIGzhurdwKSB0aOG7nWkgZ2lhbiB04burIEtER0hXQ0xLIHRoYXkgxJHhu5VpXG4iCisKKyM6IGh3Y2xvY2sva2QuYzo1NworbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQiCittc2dzdHIgIktER0hXQ0xLIGlvY3RsIMSR4buNYyB0aOG7nWkgZ2lhbiBraMO0bmcgdGjDoG5oIGPDtG5nIgorCisjOiBod2Nsb2NrL2tkLmM6NzUKK21zZ2lkICJLREdIV0NMSyBpb2N0bCB0byByZWFkIHRpbWUgZmFpbGVkIGluIGxvb3AiCittc2dzdHIgIktER0hXQ0xLIGlvY3RsIMSR4buNYyB0aOG7nWkgZ2lhbiBraMO0bmcgdGjDoG5oIGPDtG5nIHRyb25nIHbDsm5nIGzhurdwIgorCisjOiBod2Nsb2NrL2tkLmM6ODIgaHdjbG9jay9ydGMuYzoyMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRpbWUgY2hhbmdlLlxuIgorbXNnc3RyICJRdcOhIHRo4budaSBnaWFuIGNo4budIHRoYXkgxJHhu5VpLlxuIgorCisjOiBod2Nsb2NrL2tkLmM6MTA0CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgZmFpbGVkIHRvIHJlYWQgdGltZSBmcm9tICVzIgorbXNnc3RyICJpb2N0bCgpIMSR4buNYyB0aOG7nWkgZ2lhbiBraMO0bmcgdGjDoG5oIGPDtG5nIHThu6sgJXMiCisKKyM6IGh3Y2xvY2sva2QuYzoxNDAKK21zZ2lkICJpb2N0bCBLRFNIV0NMSyBmYWlsZWQiCittc2dzdHIgImlvY3RsIEtEU0hXQ0xLIGtow7RuZyB0aMOgbmggY8O0bmciCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIktow7RuZyB0aOG7gyBt4bufIC9kZXYvdHR5MSBoYXkgL2Rldi92Yy8xIgorCisjOiBod2Nsb2NrL2tkLmM6MTgwCittc2dpZCAiS0RHSFdDTEsgaW9jdGwgZmFpbGVkIgorbXNnc3RyICJLREdIV0NMSyBpb2N0bCBraMO0bmcgdGjDoG5oIGPDtG5nIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE0NyBod2Nsb2NrL3J0Yy5jOjI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuKCkgb2YgJXMgZmFpbGVkIgorbXNnc3RyICJvcGVuKCkgY2hvICVzIGtow7RuZyB0aMOgbmggY8O0bmciCisKKyM6IGh3Y2xvY2svcnRjLmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gcmVhZCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgImlvY3RsKCkgdOG7m2kgJXMgxJHhu4MgxJHhu41jIHRo4budaSBnaWFuIGtow7RuZyB0aMOgbmggY8O0bmcuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tICVzIHRvIGNoYW5nZVxuIgorbXNnc3RyICJDaOG7nSBjaG8gdGjhu51pIGdpYW4gdOG7qyAlcyB0aGF5IMSR4buVaVxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkb2VzIG5vdCBoYXZlIGludGVycnVwdCBmdW5jdGlvbnMuICIKK21zZ3N0ciAiJXMga2jDtG5nIGPDsyBow6BtIGdpw6FuIMSRb+G6oW4gbsOgby4gIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkKCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgInJlYWQoKSB04bubaSAlcyDEkeG7gyBjaOG7nSB0aeG6v25nIHTDrWMgdOG6r2Mga2jDtG5nIHRow6BuaCBjw7RuZyIKKworIzogaHdjbG9jay9ydGMuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VsZWN0KCkgdG8gJXMgdG8gd2FpdCBmb3IgY2xvY2sgdGljayBmYWlsZWQiCittc2dzdHIgInNlbGVjdCgpIHThu5tpICVzIMSR4buDIGNo4budIHRp4bq/bmcgdMOtYyB04bqvYyBraMO0bmcgdGjDoG5oIGPDtG5nIgorCisjOiBod2Nsb2NrL3J0Yy5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJzZWxlY3QoKSB0byAlcyB0byB3YWl0IGZvciBjbG9jayB0aWNrIHRpbWVkIG91dFxuIgorbXNnc3RyICJzZWxlY3QoKSB04bubaSAlcyDEkeG7gyBjaOG7nSB0aeG6v25nIHTDrWMgdOG6r2MgYuG7iyBxdcOhIHRo4budaSBnaWFuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gdHVybiBvZmYgdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIgorbXNnc3RyICJpb2N0bCgpIHThu5tpICVzIMSR4buDIHThuq90IHZp4buHYyBnacOhbiDEkW/huqFuIGPhuq1wIG5o4bqtdCBraMO0bmcgdGjDoG5oIGPDtG5nIgorCisjOiBod2Nsb2NrL3J0Yy5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIHRvICVzIHRvIHR1cm4gb24gdXBkYXRlIGludGVycnVwdHMgZmFpbGVkIHVuZXhwZWN0ZWRseSIKK21zZ3N0ciAiIgorImlvY3RsKCkgdOG7m2kgJXMgxJHhu4MgYuG6rXQgdmnhu4djIGdpw6FuIMSRb+G6oW4gY+G6rXAgbmjhuq10IGtow7RuZyB0aMOgbmggY8O0bmcgbeG7mXQgY8OhY2ggYuG6pXQgIgorInRoxrDhu51uZyIKKworIzogaHdjbG9jay9ydGMuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byBzZXQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICJpb2N0bCgpIHThu5tpICVzIMSR4buDIMSR4bq3dCB0aOG7nWkgZ2lhbiBraMO0bmcgdGjDoG5oIGPDtG5nLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCglcykgd2FzIHN1Y2Nlc3NmdWwuXG4iCittc2dzdHIgImlvY3RsKCVzKSDEkcOjIHRow6BuaCBjw7RuZy5cbiIKKworIzogaHdjbG9jay9ydGMuYzozOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiT3BlbiBvZiAlcyBmYWlsZWQiCittc2dzdHIgIk3hu58gJXMga2jDtG5nIHRow6BuaCBjw7RuZyIKKworIzogaHdjbG9jay9ydGMuYzo0MTAgaHdjbG9jay9ydGMuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRvIG1hbmlwdWxhdGUgdGhlIGVwb2NoIHZhbHVlIGluIHRoZSBrZXJuZWwsIHdlIG11c3QgYWNjZXNzIHRoZSBMaW51eCAncnRjJyAiCisiZGV2aWNlIGRyaXZlciB2aWEgdGhlIGRldmljZSBzcGVjaWFsIGZpbGUgJXMuICBUaGlzIGZpbGUgZG9lcyBub3QgZXhpc3Qgb24gIgorInRoaXMgc3lzdGVtLlxuIgorbXNnc3RyICIiCisixJDhu4MgxJFp4buBdSBraGnhu4NuIGdpw6EgdHLhu4sga2jhu59pIMSR4bqndSAoZXBvY2gpIHRyb25nIG5ow6JuLCBjaMO6bmcgdGEgY+G6p24gdHJ1eSBj4bqtcCB04bubaSAiCisiZHJpdmVyIHRoaeG6v3QgYuG7iyAncnRjJyBxdWEgdOG6rXAgdGluIHRoaeG6v3QgYuG7iyDEkeG6t2MgYmnhu4d0ICVzLiAgVOG6rXAgdGluIG7DoHkga2jDtG5nICIKKyJ04buTbiB04bqhaSB0csOqbiBo4buHIHRo4buRbmcuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDE1IGh3Y2xvY2svcnRjLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzIgorbXNnc3RyICJLaMO0bmcgbeG7nyDEkcaw4bujYyAlcyIKKworIzogaHdjbG9jay9ydGMuYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1JFQUQpIHRvICVzIGZhaWxlZCIKK21zZ3N0ciAiaW9jdGwoUlRDX0VQT0NIX1JFQUQpIHThu5tpICVzIGtow7RuZyB0aMOgbmggY8O0bmciCisKKyM6IGh3Y2xvY2svcnRjLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIndlIGhhdmUgcmVhZCBlcG9jaCAlbGQgZnJvbSAlcyB3aXRoIFJUQ19FUE9DSF9SRUFEIGlvY3RsLlxuIgorbXNnc3RyICJjaMO6bmcgdGEgxJHhu41jIGto4bufaSDEkeG6p3UgKGVwb2NoKSAlbGQgdOG7qyAlcyBi4bqxbmcgUlRDX0VQT0NIX1JFQUQgaW9jdGwuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlcG9jaCB2YWx1ZSBtYXkgbm90IGJlIGxlc3MgdGhhbiAxOTAwLiAgWW91IHJlcXVlc3RlZCAlbGRcbiIKK21zZ3N0ciAiIgorIkdpw6EgdHLhu4sga2jhu59pIMSR4bqndSAoZXBvY2gpIGtow7RuZyDEkcaw4bujYyBuaOG7jyBoxqFuIDE5MDAuICBC4bqhbiDEkcOjIHnDqnUgY+G6p3UgJWxkXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNldHRpbmcgZXBvY2ggdG8gJWxkIHdpdGggUlRDX0VQT0NIX1NFVCBpb2N0bCB0byAlcy5cbiIKK21zZ3N0ciAiIgorInRoaeG6v3QgbOG6rXAga2jhu59pIMSR4bqndSAoZXBvY2gpIHRow6BuaCAlbGQgYuG6sW5nIFJUQ19FUE9DSF9TRVQgaW9jdGwgdOG7m2kgJXMuXG4iCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGRldmljZSBkcml2ZXIgZm9yICVzIGRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCittc2dzdHIgIiIKKyJUcsOsbmggxJFp4buBdSBraGnhu4NuIHRoaeG6v3QgYuG7iyBj4bunYSBuaMOibiBjaG8gJXMga2jDtG5nIGPDsyBSVENfRVBPQ0hfU0VUIGlvY3RsLlxuIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bChSVENfRVBPQ0hfU0VUKSB0byAlcyBmYWlsZWQiCittc2dzdHIgImlvY3RsKFJUQ19FUE9DSF9TRVQpIHThu5tpICVzIGtow7RuZyB0aMOgbmggY8O0bmciCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZXhlYyAlczogJW0iCittc2dzdHIgIiVzOiBraMO0bmcgdGjhu7FjIGhp4buHbiDEkcaw4bujYyAlczogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM4MworbXNnaWQgImNhbid0IG1hbGxvYyBpbml0c3RyaW5nIgorbXNnc3RyICJraMO0bmcgbWFpbGxvYyDEkcaw4bujYyBjaHXhu5dpIGto4bufaSDEkeG6p3UgKGluaXQpIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHRpbWVvdXQgdmFsdWU6ICVzIgorbXNnc3RyICJnacOhIHRy4buLIHRo4budaSBnaWFuIGNo4budIHjhuqV1OiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBzcGVlZDogJXMiCittc2dzdHIgInThu5FjIMSR4buZIHjhuqV1OiAlcyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NTI3Cittc2dpZCAidG9vIG1hbnkgYWx0ZXJuYXRlIHNwZWVkcyIKK21zZ3N0ciAicXXDoSBuaGnhu4F1IHThu5FjIMSR4buZIGx1w6JuIHBoacOqbiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXY6IGNoZGlyKCkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiL2RldjogY2hkaXIoKSBraMO0bmcgdGjDoG5oIGPDtG5nOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIi9kZXYvJXM6IGtow7RuZyBwaOG6o2kgdGhp4bq/dCBi4buLIGvDvSB04buxIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2Rldi8lczogY2Fubm90IG9wZW4gYXMgc3RhbmRhcmQgaW5wdXQ6ICVtIgorbXNnc3RyICJraMO0bmcgbeG7nyDEkcaw4bujYyAvZGV2LyVzIG5oxrAgbeG7mXQgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbiAoc3RkaW4pOiAlbSIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBub3Qgb3BlbiBmb3IgcmVhZC93cml0ZSIKK21zZ3N0ciAiJXM6IGtow7RuZyBt4bufIMSRxrDhu6NjIMSR4buNYy92aeG6v3QiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZHVwIHByb2JsZW06ICVtIgorbXNnc3RyICIlczogduG6pW4gxJHhu4Ega2hpIGR1cDogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICJuZ8aw4budaSBkw7luZyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6OTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZXJzIgorbXNnc3RyICJuZ8aw4budaSBkw7luZyIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MTAzMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZDogJW0iCittc2dzdHIgIiVzOiDEkeG7jWM6ICVtIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnB1dCBvdmVycnVuIgorbXNnc3RyICIlczogdGjhu6thIGThu68gbGnhu4d1IHbDoG8iCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6XG4iCisiJXMgWy04aGlMbVV3XSBbLWwgdHLDrG5oX8SRxINuZ19uaOG6rXBdIFstdCB0aOG7nWlfaOG6oW5dIFstSSBjaHXhu5dpX3PGoV9raOG7n2ldIFstSCAiCisibcOheV/EkcSDbmdfbmjhuq1wXSB04buRY1/EkeG7mV9i4buRdCwuLi4gZMOybmcgW2tp4buDdV90aGnhur90X2Lhu4tfY3Xhu5FpXVxuIgorImhv4bq3Y1xuIgorIlstaGlMbXddIFstbCB0csOsbmhfxJHEg25nX25o4bqtcF0gWy10IHRo4budaV9o4bqhbl0gWy1JIGNodeG7l2lfc8ahX2to4bufaV0gWy1IICIKKyJtw6F5X8SRxINuZ19uaOG6rXBdIGTDsm5nIHThu5FjX8SR4buZX2Lhu5F0LC4uLiBba2nhu4N1X3RoaeG6v3RfYuG7i19jdeG7kWldXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgImxvZ2luOiDDrXQgYuG7mSBuaOG7mywgY8OzIHRo4buDIGtow7RuZyDEkcSDbmcgbmjhuq1wIHRow6BuaCBjw7RuZ1xuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjkyCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciB0dHljbGFzcyIKK21zZ3N0ciAia2jDtG5nIG1hbGxvYyDEkcaw4bujYyBjaG8gdHR5Y2xhc3MgKGzhu5twIHR0eSkiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6MTEzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGZvciBncnBsaXN0IgorbXNnc3RyICJraMO0bmcgbWFsbG9jIMSRxrDhu6NjIGNobyBncnBsaXN0IChkYW5oIHPDoWNoIG5ow7NtKSIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAixJDEg25nIG5o4bqtcCB0csOqbiAlcyB04burICVzIGLhu4sgY+G6pW0gdGhlbyBt4bq3YyDEkeG7i25oLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZC5cbiIKK21zZ3N0ciAixJDEg25nIG5o4bqtcCB0csOqbiAlcyB04burICVzIGLhu4sgY+G6pW0uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxMzMgbG9naW4tdXRpbHMvY2hzaC5jOjExOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogeW91ICh1c2VyICVkKSBkb24ndCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IGLhuqFuIChuZ8aw4budaSBkw7luZyAlZCkga2jDtG5nIHThu5NuIHThuqFpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQwIGxvZ2luLXV0aWxzL2Noc2guYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVzZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIlczogbmfGsOG7nWkgZMO5bmcgXCIlc1wiIGtow7RuZyB04buTbiB04bqhaS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0NSBsb2dpbi11dGlscy9jaHNoLmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4gb25seSBjaGFuZ2UgbG9jYWwgZW50cmllczsgdXNlIHlwJXMgaW5zdGVhZC5cbiIKK21zZ3N0ciAiJXM6IGNo4buJIHRoYXkgxJHhu5VpIMSRxrDhu6NjIGPDoWMgcGjhuqduIHThu60gbuG7mWkgYuG7mSwgaMOjeSBkw7luZyB5cCVzIMSR4buDIHRoYXkgdGjhur8uXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICJLaMO0bmcgcsO1IG5n4buvIGPhuqNuaCBuZ8aw4budaSBkw7luZyIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZSBmaW5nZXIgaW5mbyBvZiAlc1xuIgorbXNnc3RyICIlczogJXMgY2jGsGEgxJHGsOG7o2MgeMOhYyB0aOG7sWMgxJHhu4MgdGhheSDEkeG7lWkgdGjDtG5nIHRpbiBmaW5nZXIgY+G7p2EgJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE2NCBsb2dpbi11dGlscy9jaHNoLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBzZXQgZGVmYXVsdCBjb250ZXh0IGZvciAvZXRjL3Bhc3N3ZCIKK21zZ3N0ciAiJXM6IEtow7RuZyDEkeG6t3QgxJHGsOG7o2MgdsSDbiBj4bqjbmggY2hvIC9ldGMvcGFzc3dkIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIGZpbmdlciBpbmZvcm1hdGlvbiBmb3IgJXMuXG4iCittc2dzdHIgIlRoYXkgxJHhu5VpIHRow7RuZyB0aW4gZmluZ2VyIGNobyAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE4OSBsb2dpbi11dGlscy9jaHNoLmM6MTg4IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBQQU0gZmFpbHVyZSwgYWJvcnRpbmc6ICVzXG4iCittc2dzdHIgIiVzOiBQQU0gdGjhuqV0IGLhuqFpIG7Dqm4gaOG7p3kgYuG7jyA6ICVzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTIgbG9naW4tdXRpbHMvY2hzaC5jOjIxMSBsb2dpbi11dGlscy9sb2dpbi5jOjgyNworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6NzkgbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjM0MCBtb3VudC9sb21vdW50LmM6NzQyCisjOiBtb3VudC9sb21vdW50LmM6NzQ1Cittc2dpZCAiUGFzc3dvcmQ6ICIKK21zZ3N0ciAiTeG6rXQga2jhuql1OiAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoyMTUgbG9naW4tdXRpbHMvY2hzaC5jOjIxNAorbXNnaWQgIkluY29ycmVjdCBwYXNzd29yZC4iCittc2dzdHIgIk3huq10IGto4bqpdSBraMO0bmcgxJHDum5nLiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIyNgorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIlRow7RuZyB0aW4gZmluZ2VyIGNoxrBhIHRoYXkgxJHhu5VpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIgorbXNnc3RyICJT4butIGThu6VuZzogJXMgWyAtZiB0w6puLcSR4bqneS3EkeG7pyBdIFsgLW8gdsSDbi1waMOybmcgXSAiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlsgLXAgb2ZmaWNlLXBob25lIF1cbiIKKyJcdFsgLWggaG9tZS1waG9uZSBdICIKK21zZ3N0ciAiIgorIlsgLXAgc+G7kS3EkWnhu4duLXRob+G6oWktdsSDbi1waMOybmcgXVxuIgorIlx0WyAtaCBz4buRLcSRaeG7h24tdGhv4bqhaS1uaMOgIF0gIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICJbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OAorbXNnaWQgIk9mZmljZSIKK21zZ3N0ciAiVsSDbiBwaMOybmciCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzkKK21zZ2lkICJPZmZpY2UgUGhvbmUiCittc2dzdHIgIsSQaeG7h24gdGhv4bqhaSB2xINuIHBow7JuZyIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM4MAorbXNnaWQgIkhvbWUgUGhvbmUiCittc2dzdHIgIsSQaeG7h24gdGhv4bqhaSDhu58gbmjDoCIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQwMSBsb2dpbi11dGlscy9jaHNoLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJBYm9ydGVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiQuG7iyBnacOhbiDEkW/huqFuLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDM0CisjLCBjLWZvcm1hdAorbXNnaWQgImZpZWxkIGlzIHRvbyBsb25nLlxuIgorbXNnc3RyICJ0csaw4budbmcgcXXDoSBkw6BpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIsKrICVjIMK7IGtow7RuZyDEkcaw4bujYyBwaMOpcC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICJDw6FjIGvDvSB04buxIMSRaeG7gXUga2hp4buDbiBraMO0bmcgxJHGsOG7o2MgY2hvIHBow6lwLlxuIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICJUaMO0bmcgdGluIGZpbmdlciAqQ0jGr0EqIHRoYXkgxJHhu5VpLiAgSMOjeSB0aOG7rSBs4bqhaSBzYXUuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uIGNoYW5nZWQuXG4iCittc2dzdHIgIlRow7RuZyB0aW4gZmluZ2VyIMSRw6MgdGhheSDEkeG7lWkuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgc2hlbGwgb2YgJXNcbiIKK21zZ3N0ciAiJXM6ICVzIGNoxrBhIMSRxrDhu6NjIHjDoWMgdGjhu7FjIMSR4buDIHRoYXkgxJHhu5VpIHRyw6xuaCBiYW8gY+G7p2EgJXNcbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKyIlczogVUlEIMSRYW5nIGhv4bqhdCDEkeG7mW5nIGtow7RuZyB0xrDGoW5nIOG7qW5nIHbhu5tpIFVJRCBj4bunYSBuZ8aw4budaSBkw7luZyBjaMO6bmcgdGEgxJFhbmcgIgorIm5o4bqtcCwga2jDtG5nIMSRxrDhu6NjIHBow6lwIHRoYXkgxJHhu5VpIHRyw6xuaCBiYW9cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogWW91ciBzaGVsbCBpcyBub3QgaW4gL2V0Yy9zaGVsbHMsIHNoZWxsIGNoYW5nZSBkZW5pZWRcbiIKK21zZ3N0ciAiIgorIiVzOiBUcsOsbmggYmFvIGPhu6dhIGLhuqFuIGtow7RuZyBjw7MgdHJvbmcgL2V0Yy9zaGVsbHMsIGtow7RuZyBjaG8gcGjDqXAgdGhheSDEkeG7lWkgIgorInRyw6xuaCBiYW9cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3NworIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2luZyBzaGVsbCBmb3IgJXMuXG4iCittc2dzdHIgIsSQYW5nIHRoYXkgxJHhu5VpIHRyw6xuaCBiYW8gY2hvICVzLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICJUcsOsbmggYmFvIG3hu5tpIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIG5vdCBjaGFuZ2VkLlxuIgorbXNnc3RyICJUcsOsbmggYmFvIGNoxrBhIHRoYXkgxJHhu5VpLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIlRyw6xuaCBiYW8gKkNIxq9BKiB0aGF5IMSR4buVaS4gIEjDo3kgdGjhu60gbOG6oWkgc2F1LlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoZWxsIGNoYW5nZWQuXG4iCittc2dzdHIgIlRyw6xuaCBiYW8gxJHDoyB0aGF5IMSR4buVaS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFsgLXMgc2hlbGwgXSBbIC0tbGlzdC1zaGVsbHMgXSBbIC0taGVscCBdIFsgLS12ZXJzaW9uIF1cbiIKKyIgICAgICAgWyB1c2VybmFtZSBdXG4iCittc2dzdHIgIiIKKyJT4butIGThu6VuZzogJXMgWyAtcyB0csOsbmhfYmFvIF0gWyAtLWxpc3Qtc2hlbGxzIF0gWyAtLWhlbHAgXSBbIC0tdmVyc2lvbiBdXG4iCisiICAgICAgIFsgdMOqbl9uZ8aw4budaV9kw7luZyBdXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNoZWxsIG11c3QgYmUgYSBmdWxsIHBhdGggbmFtZS5cbiIKK21zZ3N0ciAiJXM6IHRyw6xuaCBiYW8gcGjhuqNpIGzDoCBt4buZdCB0w6puIMSRxrDhu51uZyBk4bqrbiDEkeG6p3kgxJHhu6cuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiJXM6IMKrICVzIMK7IGtow7RuZyB04buTbiB04bqhaS5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBleGVjdXRhYmxlLlxuIgorbXNnc3RyICIlczogwqsgJXMgwrsgbMOgIGtow7RuZyB0aOG7gyB0aOG7sWMgaGnhu4duLlxuIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIlczogwqsgJWMgwrsga2jDtG5nIGNobyBwaMOpcC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM2OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ29udHJvbCBjaGFyYWN0ZXJzIGFyZSBub3QgYWxsb3dlZC5cbiIKK21zZ3N0ciAiJXM6IEPDoWMga8O9IHThu7EgxJFp4buBdSBraGnhu4NuIGtow7RuZyDEkcaw4bujYyBjaG8gcGjDqXAuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzUgbG9naW4tdXRpbHMvY2hzaC5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBcIiVzXCIgaXMgbm90IGxpc3RlZCBpbiAvZXRjL3NoZWxscy5cbiIKK21zZ3N0ciAiQ+G6o25oIGLDoW8gOiDCqyAlcyDCuyBraMO0bmcgbGnhu4d0IGvDqiB0cm9uZyDCqyAvZXRjL3NoZWxscyDCuy5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGlzIG5vdCBsaXN0ZWQgaW4gL2V0Yy9zaGVsbHMuXG4iCittc2dzdHIgIiVzOiDCqyAlcyDCuyAga2jDtG5nIGxp4buHdCBrw6ogdHJvbmcgwqsgL2V0Yy9zaGVsbHMgwrsuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVzZSAtbCBvcHRpb24gdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIiVzOiBEw7luZyB0w7l5IGNo4buNbiDCqyAtbCDCuyDEkeG7gyB4ZW0gZGFuaCBzw6FjaC5cbiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIkjDo3kgZMO5bmcgJXMgwqsgLWwgwrsgxJHhu4MgeGVtIGRhbmggc8OhY2guXG4iCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8ga25vd24gc2hlbGxzLlxuIgorbXNnc3RyICJLaMO0bmcgY8OzIHRyw6xuaCBiYW8gYmnhur90IMSR4bq/bi5cbiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuICVzIGZvciByZWFkaW5nLCBleGl0aW5nLiIKK21zZ3N0ciAiS2jDtG5nIG3hu58gxJHGsOG7o2MgJXMgxJHhu4MgxJHhu41jIG7Dqm4gdGhvw6F0LiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjE0OAorbXNnaWQgInVzYWdlOiBsYXN0IFstI10gWy1mIGZpbGVdIFstdCB0dHldIFstaCBob3N0bmFtZV0gW3VzZXIgLi4uXVxuIgorbXNnc3RyICIiCisic+G7rSBk4bulbmc6IGxhc3QgWy0jXSBbLWYgdOG6rXBfdGluXSBbLXQgdHR5XSBbLWggdMOqbl9tw6F5XSBbbmfGsOG7nWlfZMO5bmcgLi4uXVxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzAyCittc2dpZCAiICBzdGlsbCBsb2dnZWQgaW4iCittc2dzdHIgIiAgduG6q24gY8OybiDEkcSDbmcgbmjhuq1wIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJ3dG1wIGJlZ2lucyAlcyIKK21zZ3N0ciAiIgorIlxuIgorInd0bXAgYuG6r3QgxJHhuqd1ICVzIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MzgwIGxvZ2luLXV0aWxzL2xhc3QuYzozOTggbG9naW4tdXRpbHMvbGFzdC5jOjQ0OQorbXNnaWQgImxhc3Q6IG1hbGxvYyBmYWlsdXJlLlxuIgorbXNnc3RyICJsYXN0OiBtYWxsb2MgdGjhuqV0IGLhuqFpLlxuIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDI1Cittc2dpZCAibGFzdDogZ2V0aG9zdG5hbWUiCittc2dzdHIgImxhc3Q6IGdldGhvc3RuYW1lIChs4bqleSB0w6puIG3DoXkpIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6NDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpbnRlcnJ1cHRlZCAlMTAuMTBzICU1LjVzIFxuIgorbXNnc3RyICIiCisiXG4iCisixJHDoyBnacOhbiDEkW/huqFuICUxMC4xMHMgJTUuNXMgXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiBjYW4ndCByZW9wZW4gdHR5OiAlcyIKK21zZ3N0ciAiTOG7lkkgTuG6tk5HOiBraMO0bmcgdGjhu4MgbeG7nyBs4bqhaSB0dHk6ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIwNQorIywgYy1mb3JtYXQKK21zZ2lkICJGQVRBTDogJXMgaXMgbm90IGEgdGVybWluYWwiCittc2dzdHIgIk5HSEnDik0gVFLhu4xORzogJXMga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgdGhp4bq/dCBi4buLIGN14buRaSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoyMzgKK21zZ2lkICJGQVRBTDogYmFkIHR0eSIKK21zZ3N0ciAiTOG7lkkgTuG6tk5HOiB0dHkgeOG6pXUiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICJsb2dpbjogwqsgLWggwrsgY2jhu4kgZMOgbmggY2hvIHNpw6p1IG5nxrDhu51pIGTDuW5nLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjQ4OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9naW4gWy1mcF0gW3VzZXJuYW1lXVxuIgorbXNnc3RyICJz4butIGThu6VuZzogbG9naW4gWy1mcF0gW3TDqm5fbmfGsOG7nWlfZMO5bmddXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGluaXRpYWxpemUgUEFNOiAlcyIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGto4bufaSB04bqhbyBQQU06ICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjU5NQorbXNnaWQgImxvZ2luOiAiCittc2dzdHIgIsSRxINuZyBuaOG6rXA6ICIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFJTEVEIExPR0lOICVkIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiTOG7lkkgxJDEgk5HIE5I4bqsUCAlZCBU4buqICVzIENITyAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlNhaSB0w6puIG5nxrDhu51pIGTDuW5nIGhv4bq3YyBt4bqtdCBraOG6qXVcbiIKKyJcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVE9PIE1BTlkgTE9HSU4gVFJJRVMgKCVkKSBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIlFVw4EgTkhJ4buAVSBM4bqmTiBUSOG7rCDEkMSCTkcgTkjhuqxQICglZCkgVOG7qiAlcyBDSE8gJXMsICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIlBIScOKTiBDSOG6oFkgxJDEgk5HIE5I4bqsUCBC4buKIEzhu5ZJIFThu6ogJXMgQ0hPICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICIiCisiXG4iCisiU2FpIHTDqm4gbmfGsOG7nWkgZMO5bmcgaG/hurdjIG3huq10IGto4bqpdVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5MCBsb2dpbi11dGlscy9sb2dpbi5jOjY5NyBsb2dpbi11dGlscy9sb2dpbi5jOjczMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2Vzc2lvbiBzZXR1cCBwcm9ibGVtLCBhYm9ydC5cbiIKK21zZ3N0ciAiIgorIlxuIgorIkPDsyB24bqlbiDEkeG7gSBj4bqldSBow6xuaCBwaGnDqm4gY2jhuqF5IG7Dqm4gaOG7p3kgYuG7jy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTlVMTCB1c2VyIG5hbWUgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiVMOqbiBuZ8aw4budaSBkw7luZyBi4bqxbmcgVsOUIEdJw4EgVFLhu4ogKE5VTEwpIHRyb25nICVzOiVkLiBUaG/DoXQuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY5OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVzZXIgbmFtZSBcIiVzXCIgaW4gJXM6JWQuIEFib3J0LiIKK21zZ3N0ciAiVMOqbiBuZ8aw4budaSBkw7luZyBzYWkgwqsgJXMgwrsgdHJvbmcgJXM6JWQuIEjhu6d5IGLhu48uIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjcxNworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICJsb2dpbjogS2jDtG5nIMSR4bunIGLhu5kgbmjhu5tcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3NjEKK21zZ2lkICJJbGxlZ2FsIHVzZXJuYW1lIgorbXNnc3RyICJUw6puIG5nxrDhu51pIGTDuW5nIGtow7RuZyBo4bujcCBwaMOhcCIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9naW4gcmVmdXNlZCBvbiB0aGlzIHRlcm1pbmFsLlxuIgorbXNnc3RyICIlcyDEkcSDbmcgbmjhuq1wIGLhu4sgdOG7qyBjaOG7kWkgdHLDqm4gdGhp4bq/dCBi4buLIGN14buRaSBuw6B5LlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiAlcyBSRUZVU0VEIEZST00gJXMgT04gVFRZICVzIgorbXNnc3RyICLEkMSCTkcgTkjhuqxQICVzIELhu4ogVOG7qiBDSOG7kEkgVOG7qiAlcyBUUsOKTiBUVFkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgT04gVFRZICVzIgorbXNnc3RyICLEkMSCTkcgTkjhuqxQICVzIELhu4ogVOG7qiBDSOG7kEkgVFLDik4gVFRZICVzIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjg2NworIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBpbmNvcnJlY3RcbiIKK21zZ3N0ciAiU2FpIHTDqm4gbmfGsOG7nWkgZMO5bmcgaG/hurdjIG3huq10IGto4bqpdVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRElBTFVQIEFUICVzIEJZICVzIgorbXNnc3RyICJRVUFZIFPhu5AgVOG6oEkgJXMgQuG7nkkgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTA5OQorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIEZST00gJXMiCittc2dzdHIgIsSQxIJORyBOSOG6rFAgTkfGr+G7nEkgQ0jhu6YgVFLDik4gJXMgVOG7qiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIlJPT1QgTE9HSU4gT04gJXMiCittc2dzdHIgIsSQxIJORyBOSOG6rFAgTkfGr+G7nEkgQ0jhu6YgVFLDik4gJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwNQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyBGUk9NICVzIgorbXNnc3RyICLEkMSCTkcgTkjhuqxQIFRSw4pOICVzIELhu55JICVzIFThu6ogJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwOAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyIKK21zZ3N0ciAixJDEgk5HIE5I4bqsUCBUUsOKTiAlcyBC4bueSSAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG5ldyBtYWlsLlxuIgorbXNnc3RyICJC4bqhbiBjw7MgdGjGsCBt4bubaS5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG1haWwuXG4iCittc2dzdHIgIkLhuqFuIGPDsyB0aMawLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGZhaWx1cmUgZm9ya2luZzogJXMiCittc2dzdHIgImxvZ2luOiBs4buXaSBwaMOibiBuaMOhbmggKGZvcmspOiAlcyIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRJT0NTQ1RUWSBmYWlsZWQ6ICVtIgorbXNnc3RyICJUSU9DU0NUVFkgYuG7iyBs4buXaTogJW0iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyOAorbXNnaWQgInNldHVpZCgpIGZhaWxlZCIKK21zZ3N0ciAic2V0dWlkKCkgYuG7iyBs4buXaSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGRpcmVjdG9yeSAlcyFcbiIKK21zZ3N0ciAiS2jDtG5nIGPDsyB0aMawIG3hu6VjICVzIVxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9nZ2luZyBpbiB3aXRoIGhvbWUgPSBcIi9cIi5cbiIKK21zZ3N0ciAixJBhbmcgxJHEg25nIG5o4bqtcCB24bubaSB0aMawIG3hu6VjIGPDoSBuaMOibiA9IFwiL1wiLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICJsb2dpbjoga2jDtG5nIGPDsyBi4buZIG5o4bubIGNobyB2xINuIGzhu4duaCB0csOsbmggYmFvLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IGNvdWxkbid0IGV4ZWMgc2hlbGwgc2NyaXB0OiAlcy5cbiIKK21zZ3N0ciAibG9naW46IGtow7RuZyB0aOG7sWMgaGnhu4duIMSRxrDhu6NjIHbEg24gbOG7h25oIHRyw6xuaCBiYW8gOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjc2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBubyBzaGVsbDogJXMuXG4iCittc2dzdHIgImxvZ2luOiBraMO0bmcgY8OzIHRyw6xuaCBiYW8gOiAlcy5cbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlcyBsb2dpbjogIgorbXNnc3RyICIiCisiXG4iCisiJXMgxJHEg25nIG5o4bqtcDogIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICJ0w6puIMSRxINuZyBuaOG6rXAgcXXDoSBkw6BpLlxuIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDMKK21zZ2lkICJOQU1FIHRvbyBsb25nIgorbXNnc3RyICJUw4pOIHF1w6EgZMOgaSIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgInTDqm4gxJHEg25nIG5o4bqtcCBraMO0bmcgxJHGsOG7o2MgYuG6r3QgxJHhuqd1IHbhu5tpIMKrIC0gwrsuXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJ0b28gbWFueSBiYXJlIGxpbmVmZWVkcy5cbiIKK21zZ3N0ciAicXXDoSBuaGnhu4F1IGTDsm5nIG5o4bqtcCB2w6BvIHRy4buRbmdcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIxCittc2dpZCAiRVhDRVNTSVZFIGxpbmVmZWVkcyIKK21zZ3N0ciAiZMOybmcgbmjhuq1wIHbDoG8gVEjhu6pBIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiSOG6v3QgdGjhu51pIGdpYW4gY2jhu50gxJHEg25nIG5o4bqtcCBzYXUgJWQgZ2nDonlcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgbG9naW46ICUuKnMgIgorbXNnc3RyICLEkMSDbmcgbmjhuq1wIGzhuqduIGN14buRaTogJS4qcyAiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAidOG7qyAlLipzXG4iCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvbiAlLipzXG4iCittc2dzdHIgInRyw6puICUuKnNcbiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOIEZBSUxVUkUgRlJPTSAlcywgJXMiCittc2dzdHIgIkzhu5ZJIMSQxIJORyBOSOG6rFAgVOG7qiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAiTOG7lkkgxJDEgk5HIE5I4bqsUCBUUsOKTiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBGUk9NICVzLCAlcyIKK21zZ3N0ciAiJWQgTOG6pk4gS0jDlE5HIMSQxIJORyBOSOG6rFAgxJDGr+G7okMgVOG7qiAlcywgJXMiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlZCBMT0dJTiBGQUlMVVJFUyBPTiAlcywgJXMiCittc2dzdHIgIiVkIEzhuqZOIEtIw5RORyDEkMSCTkcgTkjhuqxQIMSQxq/hu6JDIFRSw4pOICVzLCAlcyIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgImlzIHlcbiIKK21zZ3N0ciAibMOgIHkgKGPDsylcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgImlzIG5cbiIKK21zZ3N0ciAibMOgIG4gKGtow7RuZylcbiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgInPhu60gZOG7pW5nOiBtZXNnIFt5IHwgbl1cbiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAibmV3Z3JwOiBC4bqhbiBsw6AgYWk/IgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMDcgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTIxCittc2dpZCAibmV3Z3JwOiBzZXRnaWQiCittc2dzdHIgIm5ld2dycDogc2V0Z2lkIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMTQgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE2Cittc2dpZCAibmV3Z3JwOiBObyBzdWNoIGdyb3VwLiIKK21zZ3N0ciAibmV3Z3JwOiBLaMO0bmcgY8OzIG5ow7NtIG5oxrAgduG6rXkuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMjUKK21zZ2lkICJuZXdncnA6IFBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJuZXdncnA6IEtow7RuZyDEkeG7pyBxdXnhu4FuIGjhuqFuIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzIKK21zZ2lkICJuZXdncnA6IHNldHVpZCIKK21zZ3N0ciAibmV3Z3JwOiBzZXR1aWQiCisKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjEzOAorbXNnaWQgIk5vIHNoZWxsIgorbXNnc3RyICJLaMO0bmcgY8OzIHRyw6xuaCBiYW8iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBzaHV0ZG93biBbLWh8LXJdIFstZnFzXSBbbm93fGhoOnNzfCttaW5zXVxuIgorbXNnc3RyICJT4butIGThu6VuZzogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrcGjDunRdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTM0Cittc2dpZCAiU2h1dGRvd24gcHJvY2VzcyBhYm9ydGVkIgorbXNnc3RyICJE4burbmcgdmnhu4djIHThuq90IG3DoXkiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MTY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBPbmx5IHJvb3QgY2FuIHNodXQgYSBzeXN0ZW0gZG93bi5cbiIKK21zZ3N0ciAiJXM6IENo4buJIG5nxrDhu51pIGNo4bunIChyb290KSBjw7MgdGjhu4MgdOG6r3QgbcOheS5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIkzDoCBuZ8OgeSBtYWksIGPDsyB0aOG7gyBjaOG7nSDEkeG6v24gbMO6YyDEkcOzP1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjMxMAorbXNnaWQgImZvciBtYWludGVuYW5jZTsgYm91bmNlLCBib3VuY2UiCittc2dzdHIgImNobyBi4bqjbyBkxrDhu6FuZzsiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiU+G6vSB04bqvdCBtw6F5IHNhdSA1IHBow7p0IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM0MworbXNnaWQgIkxvZ2luIGlzIHRoZXJlZm9yZSBwcm9oaWJpdGVkLiIKK21zZ3N0ciAiRG8gxJHDsyDEkcSDbmcgbmjhuq1wIGzDoCBraMO0bmcgdGjhu4MuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgImto4bufaSDEkeG7mW5nIGzhuqFpIGLhu59pICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiZOG7q25nIGLhu59pICVzOiAlcyIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0MzIKK21zZ2lkICIiCisiXG4iCisiV2h5IGFtIEkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVib290PyIKK21zZ3N0ciAiIgorIlxuIgorIlThuqFpIHNhbyB0w7RpIHbhuqtuIGPDsm4gc+G7kW5nIHNhdSBraGkga2jhu59pIMSR4buZbmcgbOG6oWk/IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzNAorbXNnaWQgIiIKKyJcbiIKKyJOb3cgeW91IGNhbiB0dXJuIG9mZiB0aGUgcG93ZXIuLi4iCittc2dzdHIgIiIKKyJcbiIKKyJCw6J5IGdp4budIGPDsyB0aOG7gyB04bqvdCBuZ3Xhu5NuIMSRaeG7h24uLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbGxpbmcga2VybmVsIHBvd2VyLW9mZiBmYWNpbGl0eS4uLlxuIgorbXNnc3RyICLEkGFuZyBn4buNaSBwaMawxqFuZyB0aeG7h24gdOG6r3QgbcOheSBj4bunYSBuaMOibi4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIkzhu5dpIHThuq90IG3DoXkgXHQlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICJFeGVjdXRpbmcgdGhlIHByb2dyYW0gXCIlc1wiIC4uLlxuIgorbXNnc3RyICLEkGFuZyB0aOG7sWMgaGnhu4duIGNoxrDGoW5nIHRyw6xuaCBcIiVzXCIuLi5cbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZXhlY3V0aW5nXHQlc1xuIgorbXNnc3RyICJM4buXaSB0aOG7sWMgaGnhu4duIFx0JXNcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiVVJHRU5UOiB0aMO0bmcgYsOhbyB0b8OgbiB0aOG7gyB04burICVzOiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIGdvaW5nIGRvd24gaW4gJWQgaG91cnMgJWQgbWludXRlcyIKK21zZ3N0ciAiSOG7hyB0aOG7kW5nIHPhur0gdOG6r3Qgc2F1ICVkIGdp4budICVkIHBow7p0IgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIGhvdXIgJWQgbWludXRlcyIKK21zZ3N0ciAiSOG7hyB0aOG7kW5nIHPhur0gdOG6r3Qgc2F1IDEgZ2nhu50gJWQgcGjDunQiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiSOG7hyB0aOG7kW5nIHPhur0gdOG6r3Qgc2F1ICVkIHBow7p0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgbWludXRlXG4iCittc2dzdHIgIkjhu4cgdGjhu5FuZyBz4bq9IHThuq90IHNhdSAxIHBow7p0XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIgorbXNnc3RyICJI4buHIHRo4buRbmcgc+G6vSB04bqvdCBzYXUgTkdBWSBM4bqsUCBU4buoQyFcbiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQuLi4gJXMgLi4uXG4iCittc2dzdHIgIlx0Li4uICVzIC4uLlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3MAorbXNnaWQgIkNhbm5vdCBmb3JrIGZvciBzd2Fwb2ZmLiBTaHJ1ZyEiCittc2dzdHIgIktow7RuZyB0aOG7gyBwaMOibiBuaMOhbmggY2hvIHN3YXBvZmYgKHThuq90IGLhu5kgbmjhu5sgdHJhbyDEkeG7lWkpLiBC4buPIMSRaSEiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTc4Cittc2dpZCAiQ2Fubm90IGV4ZWMgc3dhcG9mZiwgaG9waW5nIHVtb3VudCB3aWxsIGRvIHRoZSB0cmljay4iCittc2dzdHIgIktow7RuZyB0aOG7sWMgaGnhu4duIMSRxrDhu6NjIHN3YXBvZmYsIGh5IHbhu41uZyB1bW91bnQgc+G6vSBsw6BtIHRoYXkuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU5NworbXNnaWQgIkNhbm5vdCBmb3JrIGZvciB1bW91bnQsIHRyeWluZyBtYW51YWxseS4iCittc2dzdHIgIktow7RuZyBwaMOibiBuaMOhbmggxJHGsOG7o2MgY2hvIHVtb3VudCwgxJFhbmcgdGjhu60gbeG7mXQgY8OhY2ggdGjhu6cgY8O0bmcuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZXhlYyAlcywgdHJ5aW5nIHVtb3VudC5cbiIKK21zZ3N0ciAiS2jDtG5nIGNo4bqheSDEkcaw4bujYyAlcywgxJFhbmcgdGjhu60gdW1vdW50LlxuIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgIktow7RuZyBjaOG6oXkgxJHGsOG7o2MgdW1vdW50LCBi4buPIHRyw6puIHVtb3VudC4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjE1Cittc2dpZCAiVW5tb3VudGluZyBhbnkgcmVtYWluaW5nIGZpbGVzeXN0ZW1zLi4uIgorbXNnc3RyICLEkGFuZyBi4buPIGfhuq9uIG3hu41pIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gbsOzaSDEkeG6v24uLi4iCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgInNodXRkb3duOiBDb3VsZG4ndCB1bW91bnQgJXM6ICVzXG4iCittc2dzdHIgInNodXRkb3duOiBLaMO0bmcgdW1vdW50IMSRxrDhu6NjICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICJLaOG7n2kgxJHhu5luZyB2w6BvIGNo4bq/IMSR4buZIG3hu5l0IG5nxrDhu51pIGTDuW5nLlxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTM2Cittc2dpZCAiZXhlYyBvZiBzaW5nbGUgdXNlciBzaGVsbCBmYWlsZWRcbiIKK21zZ3N0ciAia2jDtG5nIGNo4bqheSB0aMOgbmggY8O0bmcgdHLDrG5oIGJhbyBjaG8gbmfGsOG7nWkgZMO5bmcgxJHGoW5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjE0MAorbXNnaWQgImZvcmsgb2Ygc2luZ2xlIHVzZXIgc2hlbGwgZmFpbGVkXG4iCittc2dzdHIgImtow7RuZyBwaMOibiBuaMOhbmggdGjDoG5oIGPDtG5nIHRyw6xuaCBiYW8gY2hvIG5nxrDhu51pIGTDuW5nIMSRxqFuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMDgKK21zZ2lkICJlcnJvciBvcGVuaW5nIGZpZm9cbiIKK21zZ3N0ciAibOG7l2kgbeG7nyBrw6puaCBmaWZvXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMTIKK21zZ2lkICJlcnJvciBzZXR0aW5nIGNsb3NlLW9uLWV4ZWMgb24gL2Rldi9pbml0Y3RsIgorbXNnc3RyICJs4buXaSB0aGnhur90IGzhuq1wIGNsb3NlLW9uLWV4ZWMgdHLDqm4gL2Rldi9pbml0Y3RsIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjU5Cittc2dpZCAiZXJyb3IgcnVubmluZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAibOG7l2kgY2jhuqF5IGZpbmFscHJvZyAoY2jGsMahbmcgdHLDrG5oIGN14buRaSBjw7luZylcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjI2MworbXNnaWQgImVycm9yIGZvcmtpbmcgZmluYWxwcm9nXG4iCittc2dzdHIgImzhu5dpIHBow6JuIG5ow6FuaCBmaW5hbHByb2cgKGNoxrDGoW5nIHRyw6xuaCBjdeG7kWkgY8O5bmcpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDUKK21zZ2lkICIiCisiXG4iCisiV3JvbmcgcGFzc3dvcmQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJN4bqtdCBraOG6qXUga2jDtG5nIMSRw7puZy5cbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQxOAorbXNnaWQgImxzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgImxzdGF0IMSRxrDhu51uZyBk4bqrbiBraMO0bmcgdGjDoG5oIGPDtG5nXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MjYKK21zZ2lkICJzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgInN0YXQgKGzhuqV5IHRy4bqhbmcgdGjDoWkgduG7gSkgxJHGsOG7nW5nIGThuqtuIGtow7RuZyB0aMOgbmggY8O0bmdcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQzNAorbXNnaWQgIm9wZW4gb2YgZGlyZWN0b3J5IGZhaWxlZFxuIgorbXNnc3RyICJt4bufIHRoxrAgbeG7pWMga2jDtG5nIHRow6BuaCBjw7RuZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTAxCisjLCBjLWZvcm1hdAorbXNnaWQgInJlc3Bhd25pbmc6IFwiJXNcIiB0b28gZmFzdDogcXVlbmNoaW5nIGVudHJ5XG4iCittc2dzdHIgIsSRYW5nIHThuqFvIHbDoCB0aOG7sWMgaGnhu4duIGzhuqFpIMKrICVzIMK7IHF1w6Egbmhhbmg6IMSRYW5nIGThuq1wIHThuq90IG3hu6VjIG5o4bqtcFxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAicGjDom4gbmjDoW5oIGtow7RuZyB0aMOgbmggY8O0bmdcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjU0MCB0ZXh0LXV0aWxzL21vcmUuYzoxNjYzCittc2dpZCAiZXhlYyBmYWlsZWRcbiIKK21zZ3N0ciAidGjhu7FjIGhp4buHbiAoZXhlYykga2jDtG5nIHRow6BuaCBjw7RuZ1xuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTY0Cittc2dpZCAiY2Fubm90IG9wZW4gaW5pdHRhYlxuIgorbXNnc3RyICJraMO0bmcgbeG7nyDEkcaw4bujYyBpbml0dGFiXG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo2MzEKK21zZ2lkICJubyBURVJNIG9yIGNhbm5vdCBzdGF0IHR0eVxuIgorbXNnc3RyICJraMO0bmcgY8OzIFRFUk0gaG/hurdjIGtow7RuZyB0aOG7gyBzdGF0IChs4bqleSB0cuG6oW5nIHRow6FpIHbhu4EpIHR0eVxuIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTM4CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHN0b3BwaW5nIHNlcnZpY2U6IFwiJXNcIlxuIgorbXNnc3RyICJs4buXaSBk4burbmcgZOG7i2NoIHbhu6U6IMKrICVzIMK7XG4iCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo5NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3RvcHBlZCBzZXJ2aWNlOiAlc1xuIgorbXNnc3RyICJE4buLY2ggduG7pSBi4buLIGThu6tuZzogJXNcbiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjEwNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgcnVubmluZyBwcm9ncmFtbWU6IFwiJXNcIlxuIgorbXNnc3RyICJs4buXaSBjaOG6oXkgY2jGsMahbmcgdHLDrG5oOiDCqyAlcyDCu1xuIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo3NQorbXNnaWQgInRvbyBtYW55IGlvdidzIChjaGFuZ2UgY29kZSBpbiB3YWxsL3R0eW1zZy5jKSIKK21zZ3N0ciAicXXDoSBuaGnhu4F1IGlvdiAodGhheSDEkeG7lWkgbcOjIHRyb25nIHdhbGwvdHR5bXNnLmMpIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJleGNlc3NpdmVseSBsb25nIGxpbmUgYXJnIgorbXNnc3RyICJkw7JuZyDEkeG7kWkgc+G7kSBxdcOhIGTDoGkiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yayIKK21zZ3N0ciAia2jDtG5nIHBow6JuIG5ow6FuaCDEkcaw4bujYyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICJmb3JrOiAlcyIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBCQUQgRVJST1IiCittc2dzdHIgIiVzOiBM4buWSSBY4bqkVSIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIHBhc3N3b3JkIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiJXM6IHThuq1wIHRpbiBt4bqtdCBraOG6qXUgxJFhbmcgYuG6rW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBncm91cCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiVzOiB04bqtcCB0aW4gbmjDs20gxJFhbmcgYuG6rW4uXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSAlcyBmaWxlIGlzIGJ1c3kgKCVzIHByZXNlbnQpXG4iCittc2dzdHIgIiVzOiB04bqtcCB0aW4gJXMgxJFhbmcgYuG6rW4gKCVzIGhp4buHbiB0aOG7nWkpXG4iCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiVzOiBraMO0bmcgbGnDqm4ga+G6v3QgKGxpbmspIMSRxrDhu6NjICVzOiAlc1xuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBnZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiBLaMO0bmcgbOG6pXkgxJHGsOG7o2MgdsSDbiBj4bqjbmggY2hvICVzIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBDYW4ndCBzZXQgY29udGV4dCBmb3IgJXMiCittc2dzdHIgIiVzOiBLaMO0bmcgxJHhurd0IMSRxrDhu6NjIHbEg24gY+G6o25oIGNobyAlcyIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgdW5sb2NrICVzOiAlcyAoeW91ciBjaGFuZ2VzIGFyZSBzdGlsbCBpbiAlcylcbiIKK21zZ3N0ciAiJXM6IGtow7RuZyBt4bufIGtow7NhIMSRxrDhu6NjICVzOiAlcyAobeG7jWkgdGhheSDEkeG7lWkgduG6q24gY8OybiB0cm9uZyAlcylcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGZvcmtcbiIKK21zZ3N0ciAiJXM6IEtow7RuZyB0aOG7gyBwaMOibiBuaMOhbmhcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgdW5jaGFuZ2VkXG4iCittc2dzdHIgIiVzOiAlcyBraMO0bmcgdGhheSDEkeG7lWlcbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI5NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gY2hhbmdlcyBtYWRlXG4iCittc2dzdHIgIiVzOiBraMO0bmcgY8OzIHRoYXkgxJHhu5VpIG7DoG9cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIkLhuqFuIMSRYW5nIGTDuW5nIHNoYWRvdyBncm91cCAoYsOzbmcgbmjDs20pIHRyw6puIGjhu4cgdGjhu5FuZyBuw6B5LlxuIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBhcmUgdXNpbmcgc2hhZG93IHBhc3N3b3JkcyBvbiB0aGlzIHN5c3RlbS5cbiIKK21zZ3N0ciAiQuG6oW4gxJFhbmcgZMO5bmcgc2hhZG93IHBhc3N3b3JkcyAobeG6rXQga2jhuql1IGLDs25nKSB0csOqbiBo4buHIHRo4buRbmcgbsOgeS5cbiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCB5b3UgbGlrZSB0byBlZGl0ICVzIG5vdyBbeS9uXT8gIgorbXNnc3RyICJTb+G6oW4gdGjhuqNvICVzIGLDonkgZ2nhu50gW3kvbl0/ICIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgW2ZpbGVdXG4iCittc2dzdHIgInPhu60gZOG7pW5nOiAlcyBbIHThuq1wIHRpbiBdXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBraMO0bmcgbeG7nyDEkcaw4bujYyB04bqtcCB0aW4gdOG6oW0gdGjhu51pLlxuIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyb2FkY2FzdCBNZXNzYWdlIGZyb20gJXNAJXMiCittc2dzdHIgIlRow7RuZyBiw6FvIFRvw6BuIHRo4buDIHThu6sgJXNAJXMiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiVzOiBz4bq9IGtow7RuZyDEkeG7jWMgJXMgLSBz4butIGThu6VuZyBzdGRpbi5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiJXM6IGtow7RuZyDEkeG7jWMgxJHGsOG7o2MgJXMuXG4iCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHN0YXQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiVzOiBraMO0bmcgbOG6pXkgxJHGsOG7o2MgdHLhuqFuZyB0aMOhaSAoc3RhdCkgdOG6rXAgdGluIHThuqFtIHRo4budaS5cbiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCB0ZW1wb3JhcnkgZmlsZS5cbiIKK21zZ3N0ciAiJXM6IGtow7RuZyDEkeG7jWMgxJHGsOG7o2MgdOG6rXAgdGluIHThuqFtIHRo4budaS5cbiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjQgbWlzYy11dGlscy9jYWwuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkYXkgdmFsdWU6IHVzZSAxLSVkIgorbXNnc3RyICJnacOhIHRy4buLIG5nw6B5IGLhu4sgc2FpOiBow6N5IGTDuW5nIDEtJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY4Cittc2dpZCAiaWxsZWdhbCBtb250aCB2YWx1ZTogdXNlIDEtMTIiCittc2dzdHIgImdpw6EgdHLhu4sgdGjDoW5nIGLhu4sgc2FpOiBow6N5IGTDuW5nIDEtMTIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzcyCittc2dpZCAiaWxsZWdhbCB5ZWFyIHZhbHVlOiB1c2UgMS05OTk5IgorbXNnc3RyICJnacOhIHRy4buLIG7Eg20gYuG7iyBzYWk6IGjDo3kgZMO5bmcgMS05OTk5IgorCisjOiBtaXNjLXV0aWxzL2NhbC5jOjQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlZCIKK21zZ3N0ciAiJXMgJWQiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6ODU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBjYWwgWy0xM3NtanlWXSBbW1tkYXldIG1vbnRoXSB5ZWFyXVxuIgorbXNnc3RyICJz4butIGThu6VuZzogY2FsIFstMTNzbWp5Vl0gW1tbbmfDoHldIHRow6FuZ10gbsSDbV1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIKK21zZ3N0ciAic+G7rSBk4bulbmc6ICVzIFsrxJHhu4tuaF9k4bqhbmddIFtuZ8OgeSB0aMOhbmcgbsSDbV1cbiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjI1MAorbXNnaWQgIlN0LiBUaWIncyBEYXkiCittc2dzdHIgIk5nw6B5IFRow6FuaCBUaWIiCisKKyM6IG1pc2MtdXRpbHMvZmluZGZzLmM6MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIExBQkVMPTxsYWJlbD58VVVJRD08dXVpZD5cbiIKK21zZ3N0ciAiU+G7rSBk4bulbmc6ICVzIExBQkVMPTxuaMOjbj58VVVJRD08dXVpZD5cbiIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzo1NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcmVzb2x2ZSAnJXMnIgorbXNnc3RyICJraMO0bmcgZ2nhuqNpIHF1eeG6v3QgxJHGsOG7o2MgwqsgJXMgwrsiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXNcbiIKK21zZ3N0ciAiJXM6IHTDrW4gaGnhu4d1IGtow7RuZyByw7UgJXNcbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBmaW5kIHByb2Nlc3MgXCIlc1wiXG4iCittc2dzdHIgIiVzOiBraMO0bmcgdGjhu4MgdMOsbSB0aOG6pXkgdGnhur9uIHRyw6xuaCDCqyAlcyDCu1xuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gc2lnbmFsICVzOyB2YWxpZCBzaWduYWxzOlxuIgorbXNnc3RyICIlczogdMOtbiBoaeG7h3Uga2jDtG5nIHLDtSAlczsgdMOtbiBoaeG7h3UgY8OzIHRo4buDIGTDuW5nOlxuIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLXMgc2lnbmFsIHwgLXAgXSBbIC1hIF0gcGlkIC4uLlxuIgorbXNnc3RyICJz4butIGThu6VuZzogJXMgWyAtcyB0w61uX2hp4buHdSB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAtbCBbIHNpZ25hbCBdXG4iCittc2dzdHIgIiAgICAgICAlcyAtbCBbIHTDrW5faGnhu4d1IF1cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo2NworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IG9wZW5sb2c6IHBhdGhuYW1lIHRvbyBsb25nXG4iCittc2dzdHIgImxvZ2dlcjogb3BlbmxvZzogdMOqbiDEkcaw4budbmcgZOG6q24gcXXDoSBkw6BpXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAic29ja2V0OiAlcy5cbiIKK21zZ3N0ciAi4buVIGPhuq9tOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb25uZWN0OiAlcy5cbiIKK21zZ3N0ciAia+G6v3QgbuG7kWk6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiAlczogJXMuXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogdW5rbm93biBmYWNpbGl0eSBuYW1lOiAlcy5cbiIKK21zZ3N0ciAibG9nZ2VyOiBraMO0bmcgcsO1IHTDqm4ga2jhuqMgbsSDbmc6ICVzLlxuIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gcHJpb3JpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgImxvZ2dlcjoga2jDtG5nIHLDtSB0w6puIHF1eeG7gW4gxrB1IHRpw6puOiAlcy5cbiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiBsb2dnZXIgWy1pc10gWy1mIGZpbGVdIFstcCBwcmldIFstdCB0YWddIFstdSBzb2NrZXRdIFsgbWVzc2FnZSAuLi4gXVxuIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6IGxvZ2dlciBbLWlzXSBbLWYgdOG6rXBfdGluXSBbLXAgxrB1X3Rpw6puXSBbLXQgdGjhurtdIFstdSDhu5VfY+G6r21dICIKKyJbIHRow7RuZ19iw6FvIC4uLiBdXG4iCisKKyM6IG1pc2MtdXRpbHMvbG9vay5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbG9vayBbLWRmYV0gWy10IGNoYXJdIHN0cmluZyBbZmlsZV1cbiIKK21zZ3N0ciAic+G7rSBk4bulbmc6IGxvb2sgWy1kZmFdIFstdCBrw71fdOG7sV0gY2h14buXaSBbdOG6rXBfdGluXVxuIgorCisjOiBtaXNjLXV0aWxzL21jb29raWUuYzoxMDUgbWlzYy11dGlscy9tY29va2llLmM6MTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzXG4iCittc2dzdHIgIktow7RuZyBt4bufIMSRxrDhu6NjICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwOSBtaXNjLXV0aWxzL21jb29raWUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIKK21zZ3N0ciAiTmjhuq1uICVkIGJ5dGUgdOG7qyAlc1xuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTQzIG1pc2MtdXRpbHMvbmFtZWkuYzoxOTggbWlzYy11dGlscy9uYW1laS5jOjIyNQorIzogbWlzYy11dGlscy9uYW1laS5jOjI0NSBtaXNjLXV0aWxzL25hbWVpLmM6MjUyIG1pc2MtdXRpbHMvbmFtZWkuYzoyOTQKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAia2jDtG5nIMSR4bunIGLhu5kgbmjhu5sgPyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCBzeW1saW5rOiAlcyIKK21zZ3N0ciAibOG7l2kgxJHhu41jIGxpw6puIGvhur90IHTGsOG7o25nIHRyxrBuZzogJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzoyMzEgbWlzYy11dGlscy9uYW1laS5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICJraMO0bmcgdGjhu4MgbOG6pXkgdHLhuqFuZyB0aMOhaSB24buBIMKrICVzIMK7IgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIHBhdGhuYW1lIFtwYXRobmFtZSAuLi5dXG4iCittc2dzdHIgIiIKKyJcbiIKKyJT4butIGThu6VuZzogJXMgW2PDoWNfdHXhu7NfY2jhu41uXSB0w6puX8SRxrDhu51uZ19k4bqrbiBbdMOqbl/Ekcaw4budbmdfZOG6q24gLi4uXVxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisiXG4iCisiVHXhu7MgY2jhu41uOlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAteCwgLS1tb3VudHBvaW50cyAgIHNob3cgbW91bnQgcG9pbnQgZGlyZWN0b3JpZXMgd2l0aCBhICdEJ1xuIgorIiAtbSwgLS1tb2RlcyAgICAgICAgIHNob3cgdGhlIG1vZGUgYml0cyBvZiBlYWNoIGZpbGVcbiIKKyIgLW8sIC0tb3duZXJzICAgICAgICBzaG93IG93bmVyIGFuZCBncm91cCBuYW1lIG9mIGVhY2ggZmlsZVxuIgorIiAtbCwgLS1sb25nICAgICAgICAgIHVzZSBhIGxvbmcgbGlzdGluZyBmb3JtYXQgKC1tIC1vIC12KSBcbiIKKyIgLW4sIC0tbm9zeW1saW5rcyAgICBkb24ndCBmb2xsb3cgc3ltbGlua3NcbiIKKyIgLXYsIC0tdmVydGljYWwgICAgICB2ZXJ0aWNhbCBhbGlnbiBvZiBtb2RlcyBhbmQgb3duZXJzXG4iCittc2dzdHIgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICBoaeG7g24gdGjhu4sgdHLhu6MgZ2nDunAgbsOgeVxuIgorIiAteCwgLS1tb3VudHBvaW50cyAgIGhp4buDbiB0aOG7iyBjw6FjIHRoxrAgbeG7pWMgxJFp4buDbSBs4bqvcCBkw7luZyDCqyBEIMK7XG4iCisiIC1tLCAtLW1vZGVzICAgICAgICAgaGnhu4NuIHRo4buLIGPDoWMgYml0IGNo4bq/IMSR4buZIGPhu6dhIG3hu5dpIHThuq1wIHRpblxuIgorIiAtbywgLS1vd25lcnMgICAgICAgIGhp4buDbiB0aOG7iyB0w6puIGNo4bunIHbDoCBuaMOzbSBj4bunYSBt4buXaSB04bqtcCB0aW5cbiIKKyIgLWwsIC0tbG9uZyAgICAgICAgICBkw7luZyBt4buZdCDEkeG7i25oIGThuqFuZyBsaeG7h3Qga8OqIGTDoGkgKC1tIC1vIC12KSBcbiIKKyIgLW4sIC0tbm9zeW1saW5rcyAgICDEkeG7q25nIHRoZW8gbGnDqm4ga+G6v3QgdMaw4bujbmcgdHLGsG5nXG4iCisiIC12LCAtLXZlcnRpY2FsICAgICAgc+G6r3AgaMOgbmcgdGhlbyBjaGnhu4F1IGThu41jIGPDoWMgY2jhur8gxJHhu5kgdsOgIGNo4bunXG4iCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBuYW1laSgxKS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIsSQ4buDIHTDrG0gdGjDqm0gdGjDtG5nIHRpbiwgeGVtIG5hbWVpKDEpLlxuIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzdGF0OiAlcyIKK21zZ3N0ciAibOG7l2kgbOG6pXkgdHLhuqFuZyB0aMOhaTogJXMiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo1MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGV4Y2VlZGVkIGxpbWl0IG9mIHN5bWxpbmtzIgorbXNnc3RyICIlczogdsaw4bujdCBxdcOhIGjhuqFuIG5n4bqhY2ggc+G7kSBjw6FjIGxpw6puIGvhur90IHTGsOG7o25nIHRyxrBuZyIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzozOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIlczoga2jDtG5nIMSR4bunIGLhu5kgbmjhu5tcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogdGhheSDEkeG7lWkgdMOqbiAlcyB0aMOgbmggJXMga2jDtG5nIHRow6BuaCBjw7RuZzogJXNcbiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYWxsOiAlcyBmcm9tIHRvIGZpbGVzLi4uXG4iCittc2dzdHIgImNhbGw6ICVzIHNhbmcgY8OhYyB04bqtcCB0aW4uLi5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IGAlcycgaXMgYSBsaW5rLlxuIgorIlVzZSBgJXMgW29wdGlvbnNdICVzJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LlxuIgorIlNjcmlwdCBub3Qgc3RhcnRlZC5cbiIKK21zZ3N0ciAiIgorIkPhuqNuaCBiw6FvOiBgJXMnIGzDoCBt4buZdCBsacOqbiBr4bq/dC5cbiIKKyJIw6N5IGTDuW5nIGAlcyBbdMO5eSBjaOG7jW5dICVzJyBu4bq/dSB0aOG7sWMgc+G7sSBtdeG7kW4gc+G7rSBk4bulbmcgbsOzLlxuIgorIlbEg24gbOG7h25oIGNoxrBhIGNo4bqheS5cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorbXNnc3RyICJz4butIGThu6VuZzogc2NyaXB0IFstYV0gWy1mXSBbLXFdIFstdF0gW3Thuq1wIHRpbl1cbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IHN0YXJ0ZWQsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiVsSDbiBs4buHbmggxJHDoyBjaOG6oXksIHThuq1wIHRpbiBsw6AgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yICVkOiAlc1xuIgorbXNnc3RyICIlczogbOG7l2kgZ2hpICVkOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjMwNAorIywgYy1mb3JtYXQKK21zZ2lkICJTY3JpcHQgc3RhcnRlZCBvbiAlcyIKK21zZ3N0ciAiVsSDbiBs4buHbmggxJHDoyBjaOG6oXkgdHLDqm4gJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIKK21zZ3N0ciAiJXM6IGzhu5dpIGdoaTogJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCB3cml0ZSBzY3JpcHQgZmlsZSwgZXJyb3I6ICVzXG4iCittc2dzdHIgIiVzOiBraMO0bmcgdGjhu4MgZ2hpIHThuq1wIHRpbiB2xINuIGzhu4duaCwgbOG7l2k6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTY3JpcHQgZG9uZSBvbiAlcyIKK21zZ3N0ciAiIgorIlxuIgorIlbEg24gbOG7h25oIMSRw6MgY2jhuqF5IHhvbmcgdHLDqm4gJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBkb25lLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIlbEg24gbOG7h25oIMSRw6MgY2jhuqF5IHhvbmcsIHThuq1wIHRpbiBsw6AgJXNcbiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib3BlbnB0eSBmYWlsZWRcbiIKK21zZ3N0ciAib3BlbnB0eSBraMO0bmcgdGjDoG5oIGPDtG5nXG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICJOZ2/DoGkgcHR5XG4iCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iCittc2dzdHIgIiVzIDx04bqtcF90aW5fxJHhur9tX3Ro4budaV9naWFuPiBbPGLhuqNuX8SRw6FuaCBtw6F5PiBbPHPhu5FfY2hpYT5dXVxuIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjUzCisjLCBjLWZvcm1hdAorbXNnaWQgImV4cGVjdGVkIGEgbnVtYmVyLCBidXQgZ290ICclcyciCittc2dzdHIgIm1vbmcgxJHhu6NpIGNvbiBz4buRLCBjw7JuIG5o4bqtbiDCqyAlcyDCuyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1NiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpdmlzb3IgJyVzJyIKK21zZ3N0ciAic+G7kSBjaGlhIMKrICVzIMK7IgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjEwNAorbXNnaWQgIndyaXRlIHRvIHN0ZG91dCBmYWlsZWQiCittc2dzdHIgImzhu5dpIGdoaSB2w6BvIMSR4bqndSByYSB0acOqdSBjaHXhuqluIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIG9uICVzIgorbXNnc3RyICJn4bq3cCBr4bq/dCB0aMO6YyB04bqtcCB0aW4gYuG6pXQgdGjGsOG7nW5nIHRyw6puICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgImzhu5dpIMSR4buNYyB04bqtcCB0aW4gYuG6o24gxJHDoW5oIG3DoXkgJXMiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyB04bqtcCB0aW4gxJHhur9tIHRo4budaSBnaWFuICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiB0eXBlc2NyaXB0IGZpbGUgJXMiCittc2dzdHIgImtow7RuZyB0aOG7gyBt4bufIHThuq1wIHRpbiBi4bqjbiDEkcOhbmggbcOheSAlcyIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGltaW5nIGZpbGUgJXMiCittc2dzdHIgImzhu5dpIMSR4buNYyB04bqtcCB0aW4gxJHhur9tIHRo4budaSBnaWFuICVzIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICJ0aW1pbmdzIGZpbGUgJXM6ICVsdTogdW5leHBlY3RlZCBmb3JtYXQiCittc2dzdHIgInThuq1wIHRpbiDEkeG6v20gdGjhu51pIGdpYW4gJXM6ICVsdTogxJHhu4tuaCBk4bqhbmcgYuG6pXQgdGjGsOG7nW5nIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IEFyZ3VtZW50IGVycm9yLCB1c2FnZVxuIgorbXNnc3RyICIlczogTOG7l2kgxJHhu5FpIHPhu5EsIHPhu60gZOG7pW5nXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRlcm0gdGVybWluYWxfbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtdGVybSB0w6puX3RoaeG6v3RfYuG7i19jdeG7kWkgXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1yZXNldCBdXG4iCittc2dzdHIgIiAgWyAtcmVzZXQgXVx0xJHhurd0IGzhuqFpXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWluaXRpYWxpemUgXVxuIgorbXNnc3RyICIgIFsgLWluaXRpYWxpemUgXVx0XHRzxqEga2jhu59pXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWN1cnNvciBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtY3Vyc29yIFtvbnxvZmZdIF1cdGNvbiB0cuG7jyBbYuG6rXR8dOG6r3RdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1zb2Z0c2Nyb2xsIFtvbnxvZmZdIF1cdFx0Y3Xhu5luIG3hu4FtIFti4bqtdHx04bqvdF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVwZWF0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1yZXBlYXQgW29ufG9mZl0gXVx0XHRs4bq3cCBs4bqhaSBbYuG6rXR8dOG6r3RdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWFwcGN1cnNvcmtleXMgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisiICBbIC1hcHBjdXJzb3JrZXlzIFtvbnxvZmZdIF1cdFx0Y8OhYyBwaMOtbSBjb24gdHLhu48gY+G7p2Eg4bupbmcgZOG7pW5nIFti4bqtdHx04bqvdF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLWxpbmV3cmFwIFtvbnxvZmZdIF1cdFx0bmfhuq90IGTDsm5nIFti4bqtdHx04bqvdF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzczCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZGVmYXVsdCBdXG4iCittc2dzdHIgIiAgWyAtZGVmYXVsdCBdXHRcdG3hurdjIMSR4buLbmhcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZm9yZWdyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiIKKyIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuXG4iCisiXG4iCisibcOgdSB2xINuIGLhuqNuOiDEkWVufHhhbmh8bOG7pWN8eGFuaCBsw6EgbeG6oSIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc1IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NworIywgYy1mb3JtYXQKK21zZ2lkICJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlfGRlZmF1bHQgXVxuIgorbXNnc3RyICIiCisifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKKyJcbiIKKyJ8xJHhu498xJHhu48gdMawxqFpfHbDoG5nfHRy4bqvbmd8beG6t2MgxJHhu4tuaFxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorIiAgWyAtYmFja2dyb3VuZCBibGFja3xibHVlfGdyZWVufGN5YW5cbiIKKyJcbiIKKyJtw6B1IG7hu4FuOiDEkWVufHhhbmh8bOG7pWN8eGFuaCBsw6EgbeG6oSIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorIiAgWyAtdWxjb2xvciBibGFja3xncmV5fGJsdWV8Z3JlZW58Y3lhblxuIgorIlxuIgorIm3DoHUgZ+G6oWNoIGTGsOG7m2k6IMSRZW58eMOhbXx4YW5ofGzhu6VjfHhhbmggbMOhIG3huqEiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODEgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgzCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCittc2dzdHIgIiIKKyJ8cmVkfG1hZ2VudGF8eWVsbG93fHdoaXRlIF1cbiIKKyJcbiIKKyJ8xJHhu498xJHhu48gdMawxqFpfHbDoG5nfHRy4bqvbmdcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisiICBbIC11bGNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW5cbiIKKyJcbiIKKyJtw6B1IGfhuqFjaCBkxrDhu5tpOiB4YW5ofGzhu6VjfHhhbmggbMOhIG3huqEga2nhu4N1IHPDoW5nIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYmNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYnJpZ2h0IGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiICBbIC1oYmNvbG9yIGJyaWdodCBibHVlfGdyZWVufGN5YW4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKK21zZ3N0ciAiICBbIC1zdGFuZG91dCBbIHRodeG7mWNfdMOtbmggXSBdXHRcdGzDoG0gbuG7lWlcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtaW52ZXJzZXNjcmVlbiBbb258b2ZmXSBdXHRcdG3DoG4gaMOsbmggxJHhuqNvIFti4bqtdHx04bqvdF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYm9sZCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiAgWyAtYm9sZCBbb258b2ZmXSBdXHRcdGluIMSR4bqtbSBbYuG6rXR8dOG6r3RdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhhbGYtYnJpZ2h0IFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXHRu4butYSBzw6FuZyBbYuG6rXR8dOG6r3RdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsaW5rIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiICBbIC1ibGluayBbb258b2ZmXSBdXHRcdG5o4bqlcCBuaMOheSBbYuG6rXR8dOG6r3RdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVx0bmfGsOG7o2MgbOG6oWkgW2Lhuq10fHThuq90XVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bmRlcmxpbmUgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXHRcdGfhuqFjaCBkxrDhu5tpIFti4bqtdHx04bqvdF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RvcmUgXVxuIgorbXNnc3RyICIiCisiICBbIC1zdG9yZSBdXHRcdGPhuqV0IGdp4buvIFti4bqtdHx04bqvdF1cbiIKKyJcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xlYXIgW2FsbHxyZXN0XSBdXG4iCittc2dzdHIgIiAgWyAtY2xlYXIgW2FsbHxyZXN0XSBdXHRcdHhvw6Egc+G6oWNoIFt04bqldCBj4bqjfHBo4bqnbiBjw7JuIGzhuqFpXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiAgWyAtdGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAgICAoc+G7kSB0YWIgPSAxLTE2MClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtY2xydGFicyBbIHRhYjEgdGFiMiB0YWIzIC4uLiBdIF0gICAodGFibiA9IDEtMTYwKVxuIgorbXNnc3RyICIgIFsgLWNscnRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgKHPhu5EgdGFiID0gMS0xNjApXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5OQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlZ3RhYnMgWzEtMTYwXSBdXG4iCittc2dzdHIgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxhbmsgWzAtNjB8Zm9yY2V8cG9rZV0gXVxuIgorbXNnc3RyICIgIFsgLWJsYW5rIFswLTYwfGZvcmNlfHBva2VdIF1cdHLhu5duZ1tideG7mWN8Y2jhu41jXVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1kdW1wICAgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1kdW1wICAgWzEtc+G7kV9iw6BuX2dpYW9fdGnhur9wXSBdXHTEkeG7lVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1hcHBlbmQgWzEtTlJfQ09OU09MRVNdIF1cbiIKK21zZ3N0ciAiICBbIC1hcHBlbmQgWzEtc+G7kV9iw6BuX2dpYW9fdGnhur9wXSBdXHRwaOG7pSB0aMOqbVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1maWxlIGR1bXBmaWxlbmFtZSBdXG4iCittc2dzdHIgIiAgWyAtZmlsZSB0w6puX3Thuq1wX3Rpbl/EkeG7lSBdXHRcdHThuq1wIHRpblxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIgIFsgLW1zZyBbb258b2ZmXSBdXHR0aMO0bmcgYsOhb1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1tc2dsZXZlbCBbMC04XSBdXG4iCittc2dzdHIgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVx0XHRj4bqlcCB0aMO0bmcgxJFp4buHcFxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcnNhdmUgW29ufHZzeW5jfGhzeW5jfHBvd2VyZG93bnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorIiAgWyAtcG93ZXJzYXZlIFtvbnx2c3luY3xoc3luY3xwb3dlcmRvd258b2ZmXSBdXG4iCisiXG4iCisidGnhur90IGtp4buHbSDEkWnhu4duIG7Eg25nIFti4bqtdHzEkeG7k25nIGLhu5kgZOG7jWN8xJHhu5NuZyBi4buZIG5nYW5nfGdp4bqjbSDEkWnhu4dufHThuq90XVxuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1wb3dlcmRvd24gWzAtNjBdIF1cbiIKK21zZ3N0ciAiICBbIC1wb3dlcmRvd24gWzAtNjBdIF1cdFx0Z2nhuqNtIMSRaeG7h24gbsSDbmdcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxlbmd0aCBbMC0yMDAwXSBdXG4iCittc2dzdHIgIiAgWyAtYmxlbmd0aCBbMC0yMDAwXSBdXHRcdMSR4buZIGTDoGkgYiAoPylcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmZyZXEgZnJlcW51bWJlciBdXG4iCittc2dzdHIgIiAgWyAtYmZyZXEgdOG6p25fc+G7kSBdXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIGJsYW5rXG4iCittc2dzdHIgImtow7RuZyB0aOG7gyBideG7mWMgcuG7l25nXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIHVuYmxhbmtcbiIKK21zZ3N0ciAia2jDtG5nIHRo4buDIGJ14buZYyBi4buPIHLhu5duZ1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDcxCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgYmxhbmsgc3RhdHVzXG4iCittc2dzdHIgImtow7RuZyB0aOG7gyBs4bqleSB0cuG6oW5nIHRow6FpIHLhu5duZ1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCAodW4pc2V0IHBvd2Vyc2F2ZSBtb2RlXG4iCittc2dzdHIgImtow7RuZyAoYuG7jykgxJHhurd0IMSRxrDhu6NjIGNo4bq/IMSR4buZIHRp4bq/dCBraeG7h20gbmd14buTbiDEkWnhu4duXG4iCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjExMjIgbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJrbG9nY3RsIGVycm9yOiAlc1xuIgorbXNnc3RyICJs4buXaSBrbG9nY3RsOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHdyaXRpbmcgc2NyZWVuZHVtcFxuIgorbXNnc3RyICJM4buXaSBnaGkgc2NyZWVuZHVtcCAoxJHhu5UgbcOgbiBow6xuaClcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTIwMworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCByZWFkICVzXG4iCittc2dzdHIgIktow7RuZyDEkeG7jWMgxJHGsOG7o2MgJXNcbiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJFRFUk0gaXMgbm90IGRlZmluZWQuXG4iCittc2dzdHIgIiVzOiAkVEVSTSAodGhp4bq/dCBi4buLIGN14buRaSkgY2jGsGEgxJHhu4tuaCBuZ2jEqWEuXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1kXSBbLXAgcGlkZmlsZV0gWy1zIHNvY2tldHBhdGhdIFstVCB0aW1lb3V0XVxuIgorbXNnc3RyICJT4butIGThu6VuZzogJXMgWy1kXSBbLXAgdOG6rXBfdGluX1BJRF0gWy1zIMSRxrDhu51uZ19k4bqrbl/hu5VfY+G6r21dIFstVCB0aOG7nWlfaOG6oW5dXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgJXMgWy1yfHRdIFstbiBudW1dIFstcyBzb2NrZXRwYXRoXVxuIgorbXNnc3RyICIgICAgICAgJXMgWy1yfHRdIFstbiBz4buRXSBbLXMgxJHGsOG7nW5nX2ThuqtuX+G7lV9j4bqvbV1cbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAlcyAta1xuIgorbXNnc3RyICIgICAgICAgJXMgLWtcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgIsSR4buRaSBz4buRIHNhaSIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorbXNnaWQgInNvY2tldCIKK21zZ3N0ciAi4buVIGPhuq9tIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTcwCittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAia+G6v3QgbuG7kWkiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoxODkKK21zZ2lkICJ3cml0ZSIKK21zZ3N0ciAiZ2hpIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTk3Cittc2dpZCAicmVhZCBjb3VudCIKK21zZ3N0ciAixJHhur9tIHPhu5EgbOG6p24gxJHhu41jIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MjAzCittc2dpZCAiYmFkIHJlc3BvbnNlIGxlbmd0aCIKK21zZ3N0ciAiY2hp4buBdSBkw6BpIMSRw6FwIOG7qW5nIHNhaSIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1dWlkZCBkYWVtb24gYWxyZWFkeSBydW5uaW5nIGF0IHBpZCAlc1xuIgorbXNnc3RyICJUcsOsbmggbuG7gW4gdXVpZGQgxJHDoyBjaOG6oXkgduG7m2kgUElEICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtIHNvY2tldDogJXMiCittc2dzdHIgIktow7RuZyB0aOG7gyB04bqhbyDhu5UgY+G6r20gbHXhu5NuZyBVTklYOiAlcyIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBiaW5kIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHDs25nIGvhur90IOG7lSBj4bqvbSBVTklYICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxpc3RlbiBvbiB1bml4IHNvY2tldCAlczogJXNcbiIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGzhuq9uZyBuZ2hlIHRyw6puIOG7lSBj4bqvbSBVTklYICVzOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHJlYWRpbmcgZnJvbSBjbGllbnQsIGxlbiA9ICVkXG4iCittc2dzdHIgIkfhurdwIGzhu5dpIGtoaSDEkeG7jWMgdOG7qyDhu6luZyBk4bulbmcga2jDoWNoLCBkw6BpID0gJWRcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVyYXRpb24gJWQsIGluY29taW5nIG51bSA9ICVkXG4iCittc2dzdHIgInRoYW8gdMOhYyAlZCwgc+G7kSBn4butaSDEkeG6v24gPSAlZFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIlVVSUQgdGjhu51pIGdpYW4gxJHDoyB04bqhbyByYTogJXNcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgIlVVSUQgbmfhuqt1IG5oacOqbiDEkcOjIHThuqFvIHJhOiAlc1xuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQgJXMgYW5kICVkIGZvbGxvd2luZ1xuIgorbXNnc3RyICJVVUlEIHRo4budaSBnaWFuIMSRw6MgdOG6oW8gcmEgJXMgdsOgICVkIHRoZW8gc2F1XG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiR2VuZXJhdGVkICVkIFVVSUQnczpcbiIKK21zZ3N0ciAiJWQgVVVJRCDEkcOjIHThuqFvIHJhOlxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDI3CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgb3BlcmF0aW9uICVkXG4iCittc2dzdHIgIlRoYW8gdMOhYyBraMO0bmcgaOG7o3AgbOG7hyAlZFxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDY4IG1pc2MtdXRpbHMvdXVpZGQuYzo0ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiU+G7kSBzYWk6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MjQgbWlzYy11dGlscy91dWlkZC5jOjU1MQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjYWxsaW5nIHV1aWRkIGRhZW1vbiAoJXMpOiAlc1xuIgorbXNnc3RyICJH4bq3cCBs4buXaSBraGkgZ+G7jWkgdHLDrG5oIG7hu4FuIHV1aWRkICglcyk6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgYW5kIHN1YnNlcXVlbnQgJWQgVVVJRCdzXG4iCittc2dzdHIgIiVzIHbDoCAlZCBVVUlEIHjhuqN5IHJhIHNhdVxuIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkxpc3Qgb2YgVVVJRCdzOlxuIgorbXNnc3RyICJEYW5oIHPDoWNoIGPDoWMgVVVJRDpcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU1NworIywgYy1mb3JtYXQKK21zZ2lkICJVbmV4cGVjdGVkIHJlcGx5IGxlbmd0aCBmcm9tIHNlcnZlciAlZFxuIgorbXNnc3RyICJNw6F5IHBo4bulYyB24bulIMSRw6FwIOG7qW5nIHbhu5tpIGNoaeG7gXUgZMOgaSBi4bqldCB0aMaw4budbmcgJWRcbiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkOiAlc1xuIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgYnXhu5ljIGvhur90IHRow7pjIHV1aWRkIMSRYW5nIGNo4bqheSB24bubaSBQSUQgJWQ6ICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgIsSQw6MgYnXhu5ljIGvhur90IHRow7pjIHV1aWRkIGNo4bqheSB24bubaSBQSUQgJWRcbiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstcl0gWy10XVxuIgorbXNnc3RyICJT4butIGThu6VuZzogJXMgWy1yXSBbLXRdXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAid2hlcmVpcyBbIC1zYm11IF0gWyAtU0JNIHRoxrBfbeG7pWMgLi4uIC1mIF0gdMOqbi4uLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjEyOAorbXNnaWQgImNhbGxvYyBmYWlsZWQiCittc2dzdHIgImzhu5dpIGNhbGxvYyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxNTAKK21zZ2lkICJzdHJkdXAgZmFpbGVkIgorbXNnc3RyICJzdHJkdXAgYuG7iyBs4buXaSIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzOiBwcm9iaW5nIGluaXRpYWxpemF0aW9uIGZhaWxlZCIKK21zZ3N0ciAibOG7l2k6ICVzOiBs4buXaSBzxqEga2jhu59pIGjDoG0gZMOyIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IGFwcGVhcnMgdG8gY29udGFpbiAnJXMnIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAibOG7l2k6ICVzOiBow6xuaCBuaMawIGNo4bupYSBi4bqjbmcgcGjDom4gdsO5bmcgwqsgJXMgwrsiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgImtow7RuZyB0w6xtIHRo4bqleSBjaHXhu5dpIG1hIHRodeG6rXQg4bufIGtob+G6o25nIGNow6puaCAweCVqeCBuw6puIGLhu48gcXVhLiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiJXM6IGzhu5dpIHTDrG0gbsahaSB04bubaSBraG/huqNuZyBjaMOqbmggMHglangiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBmYWlsZWQiCittc2dzdHIgIiVzOiBs4buXaSBnaGkiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIiV6ZCBieXRlcyBbIgorbXNnc3RyICIlemQgYnl0ZSBbIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJdIGVyYXNlZCBhdCBvZmZzZXQgMHglanggKCVzKVxuIgorbXNnc3RyICJdIGLhu4sgeG/DoSDhu58ga2hv4bqjbmcgY2jDqm5oIDB4JWp4ICglcylcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyOTIgbW91bnQvc3dhcG9uLmM6MTk4IG1vdW50L3N3YXBvbi5jOjI2NgorIzogbW91bnQvc3dhcG9uLmM6NDExIG1vdW50L3N3YXBvbi5jOjU3MCBtb3VudC9zd2Fwb24uYzo3NzIKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG9wZW4gZmFpbGVkIgorbXNnc3RyICIlczogbOG7l2kgbeG7nyIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMTUgbWlzYy11dGlscy93aXBlZnMuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgJyVzJyB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgInjDoWMgxJHhu4tuaCBnacOhIHRy4buLIGNow6puaCBzYWkgwqsgJXMgwrsiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzI2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZGV2aWNlPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJT4butIGThu6VuZzogJXMgW3TDuXlfY2jhu41uIC4uLl0gPHTDqm5fdOG6rXBfdGluPlxuIgorIlxuIgorIlR14buzIGNo4buNbjpcbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtYSwgLS1hbGwgICAgICAgICAgIHdpcGUgYWxsIG1hZ2ljIHN0cmluZ3MgKEJFIENBUkVGVUwhKVxuIgorIiAtaCwgLS1oZWxwICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbiwgLS1uby1hY3QgICAgICAgIGV2ZXJ5dGhpbmcgdG8gYmUgZG9uZSBleGNlcHQgZm9yIHRoZSB3cml0ZSgpIGNhbGxcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgdG8gZXJhc2UsIGluIGJ5dGVzXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdFxuIgorbXNnc3RyICIiCisiIC1hLCAtLWFsbCAgICAgICAgICAgeG/DoSBt4buNaSBjaHXhu5dpIG1hIHRodeG6rXQgKEPhuqhOIFRI4bqsTiAhISlcbiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0cuG7oyBnacO6cCBuw6B5XG4iCisiIC1uLCAtLW5vLWFjdCAgICAgICAgbeG7jWkgdmnhu4djIGPhuqduIGzDoG0sIHRy4burIGN14buZYyBn4buNaSBnaGkgd3JpdGUoKVxuIgorIiAtbywgLS1vZmZzZXQgPFPhu5A+ICBraG/huqNuZyBjaMOqbmggY+G6p24geG/DoSwgdGhlbyBieXRlXG4iCisiIC1wLCAtLXBhcnNhYmxlICAgICAgaW4gcmEgdGhlbyDEkeG7i25oIGThuqFuZyBjw7MgdGjhu4MgcGjDom4gdMOtY2gsIHRoYXkgY2hvIMSR4buLbmggIgorImThuqFuZyBjw7MgdGjhu4MgaW4g4bqlblxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIKK21zZ3N0ciAiIgorIlxuIgorIsSQ4buDIHTDrG0gdGjDqm0gdGjDtG5nIHRpbiwgeGVtIHdpcGVmcyg4KS5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozODcKK21zZ2lkICItLW9mZnNldCBhbmQgLS1hbGwgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiwqsgLS1vZmZzZXQgwrsgdsOgIMKrIC0tYWxsIMK7IGxv4bqhaSB04burIGzhuqtuIG5oYXUiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IGNhbid0IGZpbmQgeW91ciB0dHkncyBuYW1lXG4iCittc2dzdHIgIndyaXRlOiBraMO0bmcgdMOsbSB0aOG6pXkgdMOqbiB0dHkgY+G7p2EgYuG6oW5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICJ3cml0ZTogcXV54buBbiBnaGkgbmjhu5sgY+G7p2EgYuG6oW4gxJHDoyB04bqvdC5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpbiBvbiAlcy5cbiIKK21zZ3N0ciAid3JpdGU6ICVzIGNoxrBhIMSRxINuZyBuaOG6rXAgdsOgbyB0csOqbiAlcy5cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIndyaXRlOiAlcyB04bqvdCBraMO0bmcgZMO5bmcgdGjDtG5nIGLDoW8gdHLDqm4gJXNcbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICJz4butIGThu6VuZzogd3JpdGUgbmfGsOG7nWlfZMO5bmcgW3R0eV1cbiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjIzNgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaXMgbm90IGxvZ2dlZCBpblxuIgorbXNnc3RyICJ3cml0ZTogJXMgY2jGsGEgxJHEg25nIG5o4bqtcCB2w6BvXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDUKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGhhcyBtZXNzYWdlcyBkaXNhYmxlZFxuIgorbXNnc3RyICJ3cml0ZTogJXMgdOG6r3Qga2jDtG5nIGTDuW5nIHRow7RuZyBiw6FvXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIGxvZ2dlZCBpbiBtb3JlIHRoYW4gb25jZTsgd3JpdGluZyB0byAlc1xuIgorbXNnc3RyICJ3cml0ZTogJXMgxJHEg25nIG5o4bqtcCBuaGnhu4F1IGjGoW4gbeG7mXQgbOG6p24sIMSRYW5nIGdoaSBuaOG7myB2w6BvICVzXG4iCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzozMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVzc2FnZSBmcm9tICVzQCVzIChhcyAlcykgb24gJXMgYXQgJXMgLi4uIgorbXNnc3RyICJUaW4gbmjhuq9uIHThu6sgJXNAJXMgKG5oxrAgJXMpIHRyw6puICVzIGzDumMgJXMgLi4uIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIlRpbiBuaOG6r24gJXNAJXMgdMOqbiAlcyBsw7pjICVzIC4uLiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgImPhuqNuaCBiw6FvOiBs4buXaSDEkeG7jWMgJXM6ICVzIgorCisjOiBtb3VudC9mc3RhYi5jOjE3MiBtb3VudC9mc3RhYi5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAiY+G6o25oIGLDoW86IGtow7RuZyBt4bufIMSRxrDhu6NjICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNvdWxkIG5vdCBvcGVuICVzIC0gdXNpbmcgJXMgaW5zdGVhZFxuIgorbXNnc3RyICJtb3VudDoga2jDtG5nIG3hu58gxJHGsOG7o2MgJXMgLSBz4butIGThu6VuZyAlcyDEkeG7gyB0aGF5IHRo4bq/XG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NTkwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGNyZWF0ZSBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgImtow7RuZyB04bqhbyDEkcaw4bujYyB04bqtcCB0aW4ga2jDs2EgJXM6ICVzIChow6N5IGTDuW5nIGPhu50gLW4gxJHhu4MgZ2hpIMSRw6ggbMOqbikiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjE2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGxpbmsgbG9jayBmaWxlICVzOiAlcyAodXNlIC1uIGZsYWcgdG8gb3ZlcnJpZGUpIgorbXNnc3RyICJraMO0bmcgbGnDqm4ga+G6v3QgxJHGsOG7o2MgdOG6rXAgdGluIGtow7NhICVzOiAlcyAoaMOjeSBkw7luZyBj4budIC1uIMSR4buDIGdoaSDEkcOoIGzDqm4pIgorCisjOiBtb3VudC9mc3RhYi5jOjYzMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBvcGVuIGxvY2sgZmlsZSAlczogJXMgKHVzZSAtbiBmbGFnIHRvIG92ZXJyaWRlKSIKK21zZ3N0ciAia2jDtG5nIG3hu58gxJHGsOG7o2MgdOG6rXAgdGluIGtow7NhICVzOiAlcyAoaMOjeSBkw7luZyBj4budIC1uIMSR4buDIGdoaSDEkcOoIGzDqm4pIgorCisjOiBtb3VudC9mc3RhYi5jOjY0NworIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBsb2NrIGxvY2sgZmlsZSAlczogJXNcbiIKK21zZ3N0ciAiS2jDtG5nIGtow7NhIMSRxrDhu6NjIHThuq1wIHRpbiBraMOzYSAobG9jayBmaWxlKSAlczogJXNcbiIKKworIzogbW91bnQvZnN0YWIuYzo2NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzIgorbXNnc3RyICJraMO0bmcga2jDs2EgxJHGsOG7o2MgdOG6rXAgdGluIGtow7NhIChsb2NrIGZpbGUpICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzo2NjMKK21zZ2lkICJ0aW1lZCBvdXQiCittc2dzdHIgInF1w6EgaOG6oW4iCisKKyM6IG1vdW50L2ZzdGFiLmM6NjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxpbmsgJXNcbiIKKyJQZXJoYXBzIHRoZXJlIGlzIGEgc3RhbGUgbG9jayBmaWxlP1xuIgorbXNnc3RyICIiCisiS2jDtG5nIHThuqFvIMSRxrDhu6NjIGxpw6puIGvhur90ICVzXG4iCisiQ8OzIHRo4buDIMSRw6J5IGzDoCB04bqtcCB0aW4ga2jDs2EgYuG7gW4gduG7r25nP1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjc5MiBtb3VudC9mc3RhYi5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyAoJXMpIC0gbXRhYiBub3QgdXBkYXRlZCIKK21zZ3N0ciAia2jDtG5nIG3hu58gxJHGsOG7o2MgJXMgKCVzKSAtIG10YWIgY2jGsGEgY+G6rXAgbmjhuq10IgorCisjOiBtb3VudC9mc3RhYi5jOjg1NgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAibOG7l2kgZ2hpIG5o4bubICVzOiAlcyIKKworIzogbW91bnQvZnN0YWIuYzo4NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgbW9kZSBvZiAlczogJXNcbiIKK21zZ3N0ciAibOG7l2kgdGhheSDEkeG7lWkgY2jhur8gxJHhu5kgY+G7p2EgJXM6ICVzXG4iCisKKyM6IG1vdW50L2ZzdGFiLmM6ODg3CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG93bmVyIG9mICVzOiAlc1xuIgorbXNnc3RyICJs4buXaSB0aGF5IMSR4buVaSBjaOG7pyBz4bufIGjhu691IGPhu6dhICVzOiAlc1xuIgorCisjOiBtb3VudC9mc3RhYi5jOjg5OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCByZW5hbWUgJXMgdG8gJXM6ICVzXG4iCittc2dzdHIgImtow7RuZyDEkeG7lWkgdMOqbiDEkcaw4bujYyAlcyB0aMOgbmggJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgc2V0IGNhcGFjaXR5IG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDoga2jDtG5nIHRo4buDIMSR4bq3dCBraOG6oyBuxINuZyB0csOqbiB0aGnhur90IGLhu4sgJXM6ICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIGLDuSAlPFBSSXU2ND4iCisKKyM6IG1vdW50L2xvbW91bnQuYzozODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBzaXplbGltaXQgJTxQUkl1NjQ+IgorbXNnc3RyICIsIGjhuqFuX2Phu6EgJTxQUkl1NjQ+IgorCisjOiBtb3VudC9sb21vdW50LmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiAlcyAodHlwZSAlPFBSSXUzMj4pIgorbXNnc3RyICIsIG3Do19ob8OhICVzIChraeG7g3UgJTxQUkl1MzI+KSIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMAorIywgYy1mb3JtYXQKK21zZ2lkICIsIG9mZnNldCAlZCIKK21zZ3N0ciAiLCBiw7kgJWQiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBlbmNyeXB0aW9uIHR5cGUgJWRcbiIKK21zZ3N0ciAiLCBk4bqhbmcgbcOjIGjDs2EgJWRcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQyMQorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBnZXQgaW5mbyBvbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IGtow7RuZyBs4bqleSDEkcaw4bujYyB0aMO0bmcgdGluIHRyw6puIHRoaeG6v3QgYuG7iyAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJsb29wOiBjYW4ndCBvcGVuIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAibG9vcDoga2jDtG5nIG3hu58gxJHGsOG7o2MgdGhp4bq/dCBi4buLICVzOiAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6NDQ4IG1vdW50L2xvbW91bnQuYzo0ODAgbW91bnQvbG9tb3VudC5jOjU0MgorIzogbW91bnQvbG9tb3VudC5jOjU4NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogL2RldiBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIgorbXNnc3RyICIlczogdGjGsCBt4bulYyDCqyAvZGV2IMK7IGtow7RuZyB04buTbiB04bqhaS4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo0NTkgbW91bnQvbG9tb3VudC5jOjYwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gcGVybWlzc2lvbiB0byBsb29rIGF0IC9kZXYvbG9vcCVzPE4+IgorbXNnc3RyICIlczoga2jDtG5nIGPDsyBxdXnhu4FuIHhlbSAvZGV2L2xvb3AlczxOPiIKKworIzogbW91bnQvbG9tb3VudC5jOjYwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY291bGQgbm90IGZpbmQgYW55IGZyZWUgbG9vcCBkZXZpY2UiCittc2dzdHIgIiVzOiBraMO0bmcgdMOsbSB0aOG6pXkgdGhp4bq/dCBi4buLIHbDsm5nIGzhurdwIG7DoG8gY8OybiB0cuG7kW5nIgorCisjOiBtb3VudC9sb21vdW50LmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZT8gKElmIHNvLCByZWNvbXBpbGUgb3IgYG1vZHByb2JlIGxvb3AnLikiCittc2dzdHIgIiIKKyIlczogS2jDtG5nIHTDrG0gdGjhuqV5IGLhuqV0IGvhu7MgdGhp4bq/dCBi4buLIHbDsm5nIGzhurdwIG7DoG8uIEPDsyB0aOG7gyBuaMOibiBuw6B5IGtow7RuZyBiaeG6v3RcbiIKKyIgICAgICAgduG7gSB0aGnhur90IGLhu4sgdsOybmcgbOG6t3A/IChO4bq/dSB24bqteSwgaMOjeSBiacOqbiBk4buLY2ggbOG6oWkgaG/hurdjIHRo4butIGBtb2Rwcm9iZSAiCisibG9vcCcuKSIKKworIzogbW91bnQvbG9tb3VudC5jOjYzNgorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hpbGUgcmVhZGluZyBwYXNzcGhyYXNlIgorbXNnc3RyICJLaMO0bmcgxJHhu6cgYuG7mSBuaOG7myBraGkgxJHhu41jIGPhu6VtIHThu6sgbeG6rXQga2jhuql1IgorCisjOiBtb3VudC9sb21vdW50LmM6Njc5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzIGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoICVzXG4iCittc2dzdHIgImPhuqNuaCBiw6FvIDogJXMgxJHDoyBsacOqbiBxdWFuIMSR4bq/biAlc1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzOiBpcyB3cml0ZS1wcm90ZWN0ZWQsIHVzaW5nIHJlYWQtb25seS5cbiIKK21zZ3N0ciAiY+G6o25oIGLDoW8gOiAlczogxJHGsOG7o2MgYuG6o28gduG7hyBjaOG7kW5nIGdoaSBuw6puIMSR4bq3dCBjaOG7iS3EkeG7jWMuXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzo3MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbG9jayBpbnRvIG1lbW9yeSwgZXhpdGluZy5cbiIKK21zZ3N0ciAiS2jDtG5nIGtow7NhIMSRxrDhu6NjIHbDoG8gYuG7mSBuaOG7mywgxJFhbmcgdGhvw6F0LlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsIExPT1BfU0VUX0ZEIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiaW9jdGwgTE9PUF9TRVRfRkQgYuG7iyBs4buXaTogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjgxNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgInNldF9sb29wKCVzLCVzLCVsbHUsJWxsdSk6IHRow6BuaCBjw7RuZ1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODM2CisjLCBjLWZvcm1hdAorbXNnaWQgImRlbF9sb29wKCVzKTogc3VjY2Vzc1xuIgorbXNnc3RyICJkZWxfbG9vcCglcyk6IHRow6BuaCBjw7RuZ1xuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODQwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGRlbGV0ZSBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgImxvb3A6IGtow7RuZyB4w7NhIMSRxrDhu6NjIHRoaeG6v3QgYuG7iyAlczogJXNcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIG1vdW50IHdhcyBjb21waWxlZCB3aXRob3V0IGxvb3Agc3VwcG9ydC4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiIgorIlBoacOqbiBi4bqjbiBtb3VudCBuw6B5IMSRxrDhu6NjIGJpw6puIGThu4tjaCBraMO0bmcgaOG7lyB0cuG7oyB2w7JuZyBs4bq3cC4gWGluIGjDo3kgYmnDqm4gZOG7i2NoICIKKyJs4bqhaS5cbiIKKworIzogbW91bnQvbG9tb3VudC5jOjg4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgbG9vcF9kZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmUgaW5mb1xuIgorIiAlMSRzIC1hIHwgLS1hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGFsbCB1c2VkXG4iCisiICUxJHMgLWQgfCAtLWRldGFjaCA8bG9vcGRldj4gWzxsb29wZGV2PiAuLi5dIGRlbGV0ZVxuIgorIiAlMSRzIC1mIHwgLS1maW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kIHVudXNlZFxuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPGxvb3BkZXY+ICAgICAgICAgICByZXNpemVcbiIKKyIgJTEkcyAtaiB8IC0tYXNzb2NpYXRlZCA8ZmlsZT4gWy1vIDxudW0+XSAgICAgbGlzdCBhbGwgYXNzb2NpYXRlZCB3aXRoICIKKyI8ZmlsZT5cbiIKKyIgJTEkcyBbIG9wdGlvbnMgXSB7LWZ8LS1maW5kfGxvb3BkZXZ9IDxmaWxlPiAgc2V0dXBcbiIKK21zZ3N0ciAiIgorIlxuIgorIlPhu60gZOG7pW5nOlxuIgorIiAlMSRzIHRoaeG6v3RfYuG7i192w7JuZ19s4bq3cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VuZyBj4bqlcCB0aMO0bmcgdGluXG4iCisiICUxJHMgLWEgfCAtLWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp4buHdCBrw6ogdOG6pXQgY+G6oyDEkcaw4bujYyBkw7luZ1xuIgorIiAlMSRzIC1kIHwgLS1kZXRhY2ggPFRCX3bDsm5nX2zhurdwPiBbPFRCX3bDsm5nX2zhurdwPiAuLi5dICAgICAgICB4b8OhXG4iCisiICUxJHMgLWYgfCAtLWZpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHTDrG0gY8OhaSBjaMawYSBkw7luZ1xuIgorIiAlMSRzIC1jIHwgLS1zZXQtY2FwYWNpdHkgPFRCX3bDsm5nX2zhurdwPiAgICAgICAgICAgdGhheSDEkeG7lWkga8OtY2ggY+G7oVxuIgorIiAlMSRzIC1qIHwgLS1hc3NvY2lhdGVkIDx04bqtcF90aW4+IFstbyA8c+G7kT5dICAgICBsaeG7h3Qga8OqIHThuqV0IGPhuqMgdMawxqFuZyDhu6luZyB24bubaSAiCisidOG6rXAgdGluIG7DoHlcbiIKKyIgJTEkcyBbIHR14buzX2No4buNbiAuLi4gXSB7LWZ8LS1maW5kfFRCX3bDsm5nX2zhurdwfSA8dOG6rXBfdGluPiAgICAgICAgdGhp4bq/dCBs4bqtcFxuIgorCisjOiBtb3VudC9sb21vdW50LmM6ODk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAtZSB8IC0tZW5jcnlwdGlvbiA8dHlwZT4gZW5hYmxlIGRhdGEgZW5jcnlwdGlvbiB3aXRoIHNwZWNpZmllZCA8bmFtZS9udW0+XG4iCisiIC1oIHwgLS1oZWxwICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW8gfCAtLW9mZnNldCA8bnVtPiAgICAgIHN0YXJ0IGF0IG9mZnNldCA8bnVtPiBpbnRvIGZpbGVcbiIKKyIgICAgICAtLXNpemVsaW1pdCA8bnVtPiAgIGxvb3AgbGltaXRlZCB0byBvbmx5IDxudW0+IGJ5dGVzIG9mIHRoZSBmaWxlXG4iCisiIC1wIHwgLS1wYXNzLWZkIDxudW0+ICAgICByZWFkIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgPG51bT5cbiIKKyIgLXIgfCAtLXJlYWQtb25seSAgICAgICAgIHNldHVwIHJlYWQtb25seSBsb29wIGRldmljZVxuIgorIiAgICAgIC0tc2hvdyAgICAgICAgICAgICAgcHJpbnQgZGV2aWNlIG5hbWUgKHdpdGggLWYgPGZpbGU+KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgdmVyYm9zZSBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJUw7l5IGNo4buNbjpcbiIKKyIgLWUgfCAtLWVuY3J5cHRpb24gPGtp4buDdT5cdGLhuq10IG3DoyBob8OhIGThu68gbGnhu4d1IHbhu5tpIDx0w6puL3Phu5E+IMSRw6MgZ2hpIHLDtVxuIgorIiAtaCB8IC0taGVscCAgICAgICAgICAgICAgXHRcdHRy4bujIGdpw7pwIG7DoHlcbiIKKyIgLW8gfCAtLW9mZnNldCA8c+G7kT4gICAgICBcdFx0YuG6r3QgxJHhuqd1IOG7nyBraG/huqNuZyBiw7kgc+G7kSBuw6B5IHRyb25nIHThuq1wIHRpblxuIgorIiAgICAgIC0tc2l6ZWxpbWl0IDxz4buRPiAgIFx0dsOybmcgbOG6t3AgYuG7iyBo4bqhbiBjaOG6vyB0aMOgbmggY2jhu4kgPHPhu5E+IGJ5dGUgY+G7p2EgdOG6rXAgIgorInRpblxuIgorIiAtcCB8IC0tcGFzcy1mZCA8c+G7kT5cdFx0xJHhu41jIGPhu6VtIHThu6sgbeG6rXQga2jhuql1IHThu6sgYuG7mSBtw7QgdOG6oyB04bqtcCB0aW4gPHPhu5E+XG4iCisiIC1yIHwgLS1yZWFkLW9ubHkgICAgICAgICBcdFx0dGhp4bq/dCBs4bqtcCB0aGnhur90IGLhu4sgdsOybmcgbOG6t3AgY2jhu4kgxJHhu41jXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICBcdFx0aW4gcmEgdMOqbiB0aGnhur90IGLhu4sgKHbhu5tpIMKrIC1mIDx04bqtcF90aW4+IMK7KVxuIgorIiAtdiB8IC0tdmVyYm9zZSAgICAgICAgICBcdFx0Y2jhur8gxJHhu5kgY2hpIHRp4bq/dFxuIgorIlxuIgorCisjOiBtb3VudC9sb21vdW50LmM6MTAzNCBtb3VudC9sb21vdW50LmM6MTA3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMb29wIGRldmljZSBpcyAlc1xuIgorbXNnc3RyICJUaGnhur90IGLhu4sgdsOybmcgbOG6t3AgbMOgICVzXG4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDYxCisjLCBjLWZvcm1hdAorbXNnaWQgInN0b2xlbiBsb29wPSVzLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgInbDsm5nIGzhurdwIGLhu4sgxINuIGPhuq9wPSVzLi4uIG7Dqm4gdGjhu60gbOG6oWlcbiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiBkZXZpY2UgaXMgYnVzeSIKK21zZ3N0ciAiJXM6ICVzOiB0aGnhur90IGLhu4sgxJFhbmcgYuG6rW4iCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDg4CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGxvb3Agc3VwcG9ydCB3YXMgYXZhaWxhYmxlIGF0IGNvbXBpbGUgdGltZS4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiQmnDqm4gZOG7i2NoIGtow7RuZyBo4buXIHRy4bujIHbDsm5nIGzhurdwLiBYaW4gaMOjeSBiacOqbiBk4buLY2ggbOG6oWkuXG4iCisKKyM6IG1vdW50L21vdW50LmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJtb3VudDogd2FybmluZzogL2V0Yy9tdGFiIGlzIG5vdCB3cml0YWJsZSAoZS5nLiByZWFkLW9ubHkgZmlsZXN5c3RlbSkuXG4iCisiICAgICAgIEl0J3MgcG9zc2libGUgdGhhdCBpbmZvcm1hdGlvbiByZXBvcnRlZCBieSBtb3VudCg4KSBpcyBub3RcbiIKKyIgICAgICAgdXAgdG8gZGF0ZS4gRm9yIGFjdHVhbCBpbmZvcm1hdGlvbiBhYm91dCBzeXN0ZW0gbW91bnQgcG9pbnRzXG4iCisiICAgICAgIGNoZWNrIHRoZSAvcHJvYy9tb3VudHMgZmlsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIm1vdW50OiBj4bqjbmggYsOhbzogwqsgL2V0Yy9tdGFiIMK7IGtow7RuZyBjaG8gcGjDqXAgZ2hpICh04bupYyBsw6AgaOG7hyB0aOG7kW5nIGNo4buJLcSR4buNYykuXG4iCisiICAgICAgIEPDsyB0aOG7gyBsw6AgbW91bnQoOCkgxJHDoyBjdW5nIGPhuqVwIHRow7RuZyB0aW4gcXXDoSBjxakuXG4iCisiICAgICAgIMSQ4buDIHTDrG0gdGjDtG5nIHRpbiB0aOG6rXQgduG7gSBjw6FjIMSRaeG7g20gbOG6r3AgaOG7hyB0aOG7kW5nLCB4ZW0gdOG6rXAgdGluIMKrIC9wcm9jLyIKKyJtb3VudHMgwrsuXG4iCisiXG4iCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIm1vdW50OiBjaHXhu5dpIHTDuXkgY2jhu41uIMKrICVzIMK7IHNhaSB0csOtY2ggZOG6q24iCisKKyM6IG1vdW50L21vdW50LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB0cmFuc2xhdGVkICVzICclcycgdG8gJyVzJ1xuIgorbXNnc3RyICJtb3VudDogxJHDoyBk4buLY2ggJXMgwqsgJXMgwrsgc2FuZyDCqyAlcyDCu1xuIgorCisjOiBtb3VudC9tb3VudC5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyIKK21zZ3N0ciAibW91bnQ6IHRoZW8gbmjGsCBtdGFiIHRow6wgJXMgxJHDoyBn4bqvbiB2w6BvICVzIgorCisjOiBtb3VudC9tb3VudC5jOjU0MAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogYWNjb3JkaW5nIHRvIG10YWIsICVzIGlzIG1vdW50ZWQgb24gJXMiCittc2dzdHIgIm1vdW50OiB0aGVvIG5oxrAgbXRhYiB0aMOsICVzIMSRw6MgZ+G6r24gdsOgbyAlcyIKKworIzogbW91bnQvbW91bnQuYzo1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXMgZm9yIHdyaXRpbmc6ICVzIgorbXNnc3RyICJtb3VudDoga2jDtG5nIG3hu58gxJHGsOG7o2MgJXMgxJHhu4MgZ2hpIG5o4bubOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo1ODEgbW91bnQvbW91bnQuYzoxMTk5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciB3cml0aW5nICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGzhu5dpIGdoaSBuaOG7myAlczogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGzhu5dpIHRoYXkgxJHhu5VpIGNo4bq/IMSR4buZIGPhu6dhICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzo2NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJtb3VudDoga2jDtG5nIMSR4bq3dCDEkcaw4bujYyBJRCBuaMOzbTogJXMiCisKKyM6IG1vdW50L21vdW50LmM6Njc1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJtb3VudDoga2jDtG5nIMSR4bq3dCDEkcaw4bujYyBJRCBuZ8aw4budaSBkw7luZzogJXMiCisKKyM6IG1vdW50L21vdW50LmM6NzE0IG1vdW50L21vdW50LmM6MTg2NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IGZvcms6ICVzIgorbXNnc3RyICJtb3VudDoga2jDtG5nIHRo4buDIHBow6JuIG5ow6FuaCAlcyIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIsSQYW5nIHRo4butICVzLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjg3OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogeW91IGRpZG4ndCBzcGVjaWZ5IGEgZmlsZXN5c3RlbSB0eXBlIGZvciAlc1xuIgorbXNnc3RyICJtb3VudDogYuG6oW4gY2jGsGEgY2jhu4kgcmEga2nhu4N1IGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gY2hvICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6ODgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICBJIHdpbGwgdHJ5IGFsbCB0eXBlcyBtZW50aW9uZWQgaW4gJXMgb3IgJXNcbiIKK21zZ3N0ciAiICAgICAgIFPhur0gdGjhu60gdOG6pXQgY+G6oyBt4buNaSBsb+G6oWkgxJHhu4EgY+G6rXAgxJHhur9uIHRyb25nICVzIGhheSAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjg4NQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgYW5kIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyBzd2Fwc3BhY2VcbiIKK21zZ3N0ciAiICAgICAgIHbDoCDEkcOieSBjw7MgduG6uyBsw6AgdsO5bmcgdHJhbyDEkeG7lWlcbiIKKworIzogbW91bnQvbW91bnQuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgdHlwZSAlc1xuIgorbXNnc3RyICIgICAgICAgU+G6vSB0aOG7rSBsb+G6oWkgJXNcbiIKKworIzogbW91bnQvbW91bnQuYzo5MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9va3MgbGlrZSBzd2Fwc3BhY2UgLSBub3QgbW91bnRlZCIKK21zZ3N0ciAiJXMgY8OzIHbhursgbMOgIHbDuW5nIHRyYW8gxJHhu5VpIC0ga2jDtG5nIGfhuq9uIgorCisjOiBtb3VudC9tb3VudC5jOjEwMDIKK21zZ2lkICJtb3VudCBmYWlsZWQiCittc2dzdHIgIm1vdW50IChn4bqvbikga2jDtG5nIHRow6BuaCBjw7RuZyIKKworIzogbW91bnQvbW91bnQuYzoxMDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIG1vdW50ICVzIG9uICVzIgorbXNnc3RyICJtb3VudDogY2jhu4kgbmfGsOG7nWkgY2jhu6cgY8OzIHF1eeG7gW4gZ+G6r24gJXMgdsOgbyAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMDc0Cittc2dpZCAibW91bnQ6IGxvb3AgZGV2aWNlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IGNo4buJIHJhIGhhaSBs4bqnbiB0aGnhur90IGLhu4sgdsOybmcgbOG6t3AiCisKKyM6IG1vdW50L21vdW50LmM6MTA3OQorbXNnaWQgIm1vdW50OiB0eXBlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAibW91bnQ6IGNo4buJIHJhIGhhaSBs4bqnbiBraeG7g3UgaOG7hyB0aOG7kW5nIHThuq1wIHRpbiIKKworIzogbW91bnQvbW91bnQuYzoxMDkxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBza2lwcGluZyB0aGUgc2V0dXAgb2YgYSBsb29wIGRldmljZVxuIgorbXNnc3RyICJtb3VudDogYuG7jyBxdWEgdmnhu4djIGPhuqV1IGjDrG5oIHRoaeG6v3QgYuG7iyB2w7JuZyBs4bq3cFxuIgorCisjOiBtb3VudC9tb3VudC5jOjExMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiICVzIGlzIGFscmVhZHkgbW91bnRlZCBvbiAlcyBhcyBsb29wIgorbXNnc3RyICJtb3VudDogdGhlbyBuaMawIG10YWIgdGjDrCAlcyDEkcOjIGfhuq9uIHbDoG8gJXMgbMOgbSB2w7JuZyBs4bq3cCIKKworIzogbW91bnQvbW91bnQuYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBnb2luZyB0byB1c2UgdGhlIGxvb3AgZGV2aWNlICVzXG4iCittc2dzdHIgIm1vdW50OiBz4bq9IHPhu60gZOG7pW5nIHRoaeG6v3QgYuG7iyB2w7JuZyBs4bq3cCAlc1xuIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICJtb3VudDogc3RvbGVuIGxvb3A9JXMgKHbDsm5nIGzhurdwIGLhu4sgxINuIGPhuq9wKSBuw6puIHRo4butIGzhuqFpXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgIm1vdW50OiBzdG9sZW4gbG9vcD0lcyAodsOybmcgbOG6t3AgYuG7iyDEg24gY+G6r3ApIgorCisjOiBtb3VudC9tb3VudC5jOjExMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGZhaWxlZCBzZXR0aW5nIHVwIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIm1vdW50OiB0aGnhur90IGzhuq1wIHRoaeG6v3QgYuG7iyB2w7JuZyBs4bq3cCBraMO0bmcgdGjDoG5oIGPDtG5nXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTE0MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2V0dXAgbG9vcCBkZXZpY2Ugc3VjY2Vzc2Z1bGx5XG4iCittc2dzdHIgIm1vdW50OiB0aGnhur90IGzhuq1wIHRoaeG6v3QgYuG7iyB2w7JuZyBs4bq3cCB0aMOgbmggY8O0bmdcbiIKKworIzogbW91bnQvbW91bnQuYzoxMTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyAlcyBmb3VuZCAtIGNyZWF0aW5nIGl0Li5cbiIKK21zZ3N0ciAibW91bnQ6IGtow7RuZyB0w6xtIHRo4bqleSAlcyAtIMSRYW5nIHThuqFvLi5cbiIKKworIzogbW91bnQvbW91bnQuYzoxMTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzOiAlcyIKK21zZ3N0ciAibW91bnQ6IGtow7RuZyBt4bufIMSRxrDhu6NjICVzOiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxMjE1Cittc2dpZCAibW91bnQ6IGFyZ3VtZW50IHRvIC1wIG9yIC0tcGFzcy1mZCBtdXN0IGJlIGEgbnVtYmVyIgorbXNnc3RyICJtb3VudDogdGhhbSBz4buRIGNobyAtcCBob+G6t2MgLS1wYXNzLWZkIHBo4bqjaSBsw6AgbeG7mXQgc+G7kSIKKworIzogbW91bnQvbW91bnQuYzoxMjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgb3BlbiAlcyBmb3Igc2V0dGluZyBzcGVlZCIKK21zZ3N0ciAibW91bnQ6IGtow7RuZyBt4bufIMSRxrDhu6NjICVzIMSR4buDIMSR4bq3dCB04buRYyDEkeG7mSIKKworIzogbW91bnQvbW91bnQuYzoxMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3Qgc2V0IHNwZWVkOiAlcyIKK21zZ3N0ciAibW91bnQ6IGtow7RuZyDEkeG6t3QgxJHGsOG7o2MgdOG7kWMgxJHhu5k6ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjEzMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXNcbiIKK21zZ3N0ciAibW91bnQ6IHRoZW8gbmjGsCBtdGFiIHRow6wgJXMgxJHDoyBn4bqvbiB2w6BvICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTM4MAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogd2FybmluZzogJXMgc2VlbXMgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlLlxuIgorbXNnc3RyICJtb3VudDogY+G6o25oIGLDoW8gOiBjw7MgduG6uyBsw6AgJXMgxJHGsOG7o2MgbOG6r3AgxJHhu41jLWdoaS5cbiIKKworIzogbW91bnQvbW91bnQuYzoxNDEzCittc2dpZCAiIgorIm1vdW50OiBJIGNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGZpbGVzeXN0ZW0gdHlwZSwgYW5kIG5vbmUgd2FzIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorIm1vdW50OiBraMO0bmcgdGjhu4Mgbmjhuq1uIHJhIGtp4buDdSBo4buHIHRo4buRbmcgdOG6rXAgdGluLCB2w6AgbmfGsOG7nWkgZMO5bmcga2jDtG5nIGNo4buJIHJhICIKKyJraeG7g3UgbsOgbyIKKworIzogbW91bnQvbW91bnQuYzoxNDE2Cittc2dpZCAibW91bnQ6IHlvdSBtdXN0IHNwZWNpZnkgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAibW91bnQ6IGPhuqduIGNo4buJIHLDtSBraeG7g3UgaOG7hyB0aOG7kW5nIHThuq1wIHRpbiIKKworIzogbW91bnQvbW91bnQuYzoxNDE5Cittc2dpZCAibW91bnQ6IG1vdW50IGZhaWxlZCIKK21zZ3N0ciAibW91bnQ6IGfhuq9uIGtow7RuZyB0aMOgbmggY8O0bmciCisKKyM6IG1vdW50L21vdW50LmM6MTQyNSBtb3VudC9tb3VudC5jOjE0NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIG5vdCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAibW91bnQ6IMSRaeG7g20gZ+G6r24gJXMga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgdGjGsCBt4bulYyIKKworIzogbW91bnQvbW91bnQuYzoxNDI3Cittc2dpZCAibW91bnQ6IHBlcm1pc3Npb24gZGVuaWVkIgorbXNnc3RyICJtb3VudDoga2jDtG5nIMSR4bunIHF1eeG7gW4gaOG6oW4iCisKKyM6IG1vdW50L21vdW50LmM6MTQyOQorbXNnaWQgIm1vdW50OiBtdXN0IGJlIHN1cGVydXNlciB0byB1c2UgbW91bnQiCittc2dzdHIgIm1vdW50OiBj4bqnbiBwaOG6o2kgbMOgIHNpw6p1IG5nxrDhu51pIGTDuW5nIChyb290KSDEkeG7gyBz4butIGThu6VuZyBow6BtIG1vdW50IgorCisjOiBtb3VudC9tb3VudC5jOjE0MzMgbW91bnQvbW91bnQuYzoxNDM3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBidXN5IgorbXNnc3RyICJtb3VudDogJXMgxJFhbmcgYuG6rW4iCisKKyM6IG1vdW50L21vdW50LmM6MTQzOQorbXNnaWQgIm1vdW50OiBwcm9jIGFscmVhZHkgbW91bnRlZCIKK21zZ3N0ciAibW91bnQ6IMSRw6MgZ+G6r24gcHJvYyIKKworIzogbW91bnQvbW91bnQuYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBhbHJlYWR5IG1vdW50ZWQgb3IgJXMgYnVzeSIKK21zZ3N0ciAibW91bnQ6IMSRw6MgZ+G6r24gJXMgaG/hurdjICVzIMSRYW5nIGLhuq1uIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJtb3VudDogxJFp4buDbSBn4bqvbiAlcyBraMO0bmcgdOG7k24gdOG6oWkiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgYSBzeW1ib2xpYyBsaW5rIHRvIG5vd2hlcmUiCittc2dzdHIgIm1vdW50OiDEkWnhu4NtIGfhuq9uICVzIGzDoCBt4buZdCBsacOqbiBr4bq/dCBt4buBbSBraMO0bmcgY2jhu4kgdOG7m2kgxJHDonUiCisKKyM6IG1vdW50L21vdW50LmM6MTQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIm1vdW50OiB0aGnhur90IGLhu4sgxJHhurdjIGJp4buHdCAlcyBraMO0bmcgdOG7k24gdOG6oWkiCisKKyM6IG1vdW50L21vdW50LmM6MTQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibW91bnQ6IHNwZWNpYWwgZGV2aWNlICVzIGRvZXMgbm90IGV4aXN0XG4iCisiICAgICAgIChhIHBhdGggcHJlZml4IGlzIG5vdCBhIGRpcmVjdG9yeSlcbiIKK21zZ3N0ciAiIgorIm1vdW50OiB0aGnhur90IGLhu4sgxJHhurdjIGJp4buHdCAlcyBraMO0bmcgdOG7k24gdOG6oWlcbiIKKyIgICAgICAgKHRp4buBbiB04buRIGPhu6dhIMSRxrDhu51uZyBk4bqrbiBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCB0aMawIG3hu6VjKVxuIgorCisjOiBtb3VudC9tb3VudC5jOjE0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIG5vdCBtb3VudGVkIGFscmVhZHksIG9yIGJhZCBvcHRpb24iCittc2dzdHIgIm1vdW50OiAlcyBjaMawYSBn4bqvbiwgaG/hurdjIHTDuXkgY2jhu41uIHjhuqV1IgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB3cm9uZyBmcyB0eXBlLCBiYWQgb3B0aW9uLCBiYWQgc3VwZXJibG9jayBvbiAlcyxcbiIKKyIgICAgICAgbWlzc2luZyBjb2RlcGFnZSBvciBoZWxwZXIgcHJvZ3JhbSwgb3Igb3RoZXIgZXJyb3IiCittc2dzdHIgIiIKKyJtb3VudDogc2FpIGtp4buDdSBo4buHIHRo4buRbmcgdOG6rXAgdGluLCB0w7l5IGNo4buNbiB44bqldSwgc2nDqnUga2jhu5FpIHjhuqV1IHRyw6puICVzLFxuIgorIiAgICAgICB0aGnhur91IHRyYW5nIG3DoyBoYXkgY2jGsMahbmcgdHLDrG5oIGLhu5UgdHLhu6MsIGhv4bq3YyBs4buXaSBraMOhYyIKKworIzogbW91bnQvbW91bnQuYzoxNDg3Cittc2dpZCAiIgorIiAgICAgICAoZm9yIHNldmVyYWwgZmlsZXN5c3RlbXMgKGUuZy4gbmZzLCBjaWZzKSB5b3UgbWlnaHRcbiIKKyIgICAgICAgbmVlZCBhIC9zYmluL21vdW50Ljx0eXBlPiBoZWxwZXIgcHJvZ3JhbSkiCittc2dzdHIgIiIKKyIgICAgICAgKMSR4buRaSB24bubaSB2w6BpIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4sIHYuZC4gbmZzLCBjaWZzLCBjw7MgbOG6vVxuIgorIiAgICAgICBi4bqhbiBj4bqnbiBkw7luZyB0csOsbmggYuG7lSB0cuG7oyDCqyAvc2Jpbi9tb3VudC48a2nhu4N1PiDCuykiCisKKyM6IG1vdW50L21vdW50LmM6MTQ5NgorbXNnaWQgIiIKKyIgICAgICAgKGNvdWxkIHRoaXMgYmUgdGhlIElERSBkZXZpY2Ugd2hlcmUgeW91IGluIGZhY3QgdXNlXG4iCisiICAgICAgIGlkZS1zY3NpIHNvIHRoYXQgc3IwIG9yIHNkYSBvciBzbyBpcyBuZWVkZWQ/KSIKK21zZ3N0ciAiIgorIiAgICAgIChjw7MgdGjhu4MgxJHDonkgbMOgIHRoaeG6v3QgYuG7iyBJREUgbcOgIHRyw6puIHRo4buxYyB04bq/IHPhu60gZOG7pW5nXG4iCisiICAgICAgaWRlLXNjc2kgdsOsIHRo4bq/IGPhuqduIHNyMCBob+G6t2Mgc2RhIGhv4bq3YyB0xrDGoW5nIHThu7E/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTAxCittc2dpZCAiIgorIiAgICAgICAoYXJlbid0IHlvdSB0cnlpbmcgdG8gbW91bnQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uLFxuIgorIiAgICAgICBpbnN0ZWFkIG9mIHNvbWUgbG9naWNhbCBwYXJ0aXRpb24gaW5zaWRlPykiCittc2dzdHIgIiIKKyIgICAgICAgKGPDsyBwaOG6o2kgYuG6oW4gxJFhbmcgY+G7kSBn4bqvbiBt4buZdCBwaMOibiB2w7luZyBt4bufIHLhu5luZyxcbiIKKyIgICAgICAgY2jhu6kga2jDtG5nIHBo4bqjaSBt4buZdCBwaMOibiB2w7luZyBsw7Rnw61jIGLDqm4gdHJvbmcgbsOzPykiCisKKyM6IG1vdW50L21vdW50LmM6MTUwOAorbXNnaWQgIiIKKyIgICAgICAgSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBpcyBmb3VuZCBpbiBzeXNsb2cgLSB0cnlcbiIKKyIgICAgICAgZG1lc2cgfCB0YWlsICBvciBzb1xuIgorbXNnc3RyICIiCisiICAgICAgVHJvbmcgbeG7mXQgc+G7kSB0csaw4budbmcgaOG7o3AgY8OzIHRo4buDIHTDrG0gdGjhuqV5IHRow7RuZyB0aW4gY8OzXG4iCisiICAgICAgw61jaCB0cm9uZyBzeXNsb2cgLSBow6N5IHRo4butIGRtZXNnIHwgdGFpbCBob+G6t2MgdMawxqFuZyB04buxXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTUxNAorbXNnaWQgIm1vdW50IHRhYmxlIGZ1bGwiCittc2dzdHIgIsSR4bqneSBi4bqjbmcgZ+G6r24iCisKKyM6IG1vdW50L21vdW50LmM6MTUxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IGNhbid0IHJlYWQgc3VwZXJibG9jayIKK21zZ3N0ciAibW91bnQ6ICVzIGtow7RuZyDEkeG7jWMgxJHGsOG7o2Mgc2nDqnUga2jhu5FpIgorCisjOiBtb3VudC9tb3VudC5jOjE1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzOiB1bmtub3duIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzOiBraMO0bmcgcsO1IHRoaeG6v3QgYuG7iyIKKworIzogbW91bnQvbW91bnQuYzoxNTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB1bmtub3duIGZpbGVzeXN0ZW0gdHlwZSAnJXMnIgorbXNnc3RyICJtb3VudDoga2jDtG5nIHLDtSBraeG7g3UgaOG7hyB0aOG7kW5nIHThuq1wIHRpbiAnJXMnIgorCisjOiBtb3VudC9tb3VudC5jOjE1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHByb2JhYmx5IHlvdSBtZWFudCAlcyIKK21zZ3N0ciAibW91bnQ6IGPDsyB0aOG7gyBtdeG7kW4gxJHhurd0ICVzIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDIKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICdpc285NjYwJz8iCittc2dzdHIgIm1vdW50OiBjw7MgdGjhu4MgbXXhu5FuIMSR4bq3dCAnaXNvOTY2MCc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDUKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICd2ZmF0Jz8iCittc2dzdHIgIm1vdW50OiBjw7MgdGjhu4MgbXXhu5FuIMSR4bq3dCAndmZhdCc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGhhcyB3cm9uZyBkZXZpY2UgbnVtYmVyIG9yIGZzIHR5cGUgJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyBjw7Mgc+G7kSBoaeG7h3UgdGhp4bq/dCBi4buLIHNhaSBob+G6t2MgY2jGsGEgaOG7lyB0cuG7oyBraeG7g3UgaOG7hyB0aOG7kW5nIHThuq1wIHRpbiAlcyIKKworIzogbW91bnQvbW91bnQuYzoxNTU2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UsIGFuZCBzdGF0IGZhaWxzPyIKK21zZ3N0ciAiIgorIm1vdW50OiAlcyBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCB0aGnhur90IGLhu4sga2jhu5FpLCB2w6Agc3RhdCAobOG6pXkgdHLhuqFuZyB0aMOhaSkga2jDtG5nICIKKyJ0aMOgbmggY8O0bmc/IgorCisjOiBtb3VudC9tb3VudC5jOjE1NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB0aGUga2VybmVsIGRvZXMgbm90IHJlY29nbml6ZSAlcyBhcyBhIGJsb2NrIGRldmljZVxuIgorIiAgICAgICAobWF5YmUgYG1vZHByb2JlIGRyaXZlcic/KSIKK21zZ3N0ciAiIgorIm1vdW50OiBo4bqhdCBuaMOibiBraMO0bmcgbmjhuq1uIHJhICVzIG5oxrAgbMOgIHRoaeG6v3QgYuG7iyBraOG7kWlcbiIKKyIgICAgICAgKGPDsyB0aOG7gyB0aOG7rSDCqyBtb2Rwcm9iZSBkcml2ZXIgwrsgPykiCisKKyM6IG1vdW50L21vdW50LmM6MTU2MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlIChtYXliZSB0cnkgYC1vIGxvb3AnPykiCittc2dzdHIgIm1vdW50OiAlcyBraMO0bmcgcGjhuqNpIGzDoCB0aGnhur90IGLhu4sga2jhu5FpIChjw7MgdGjhu4MgaMOjeSB0aOG7rSBgLW8gbG9vcCc/KSIKKworIzogbW91bnQvbW91bnQuYzoxNTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UiCittc2dzdHIgIm1vdW50OiAlcyBraMO0bmcgcGjhuqNpIGzDoCB0aGnhur90IGLhu4sga2jhu5FpIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIHZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAibW91bnQ6ICVzIGtow7RuZyBwaOG6o2kgbMOgIHRoaeG6v3QgYuG7iyBraOG7kWkgdGjDrWNoIGjhu6NwIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzIKK21zZ2lkICJibG9jayBkZXZpY2UgIgorbXNnc3RyICJ0aGnhur90IGLhu4sga2jhu5FpICIKKworIzogbW91bnQvbW91bnQuYzoxNTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgbW91bnQgJXMlcyByZWFkLW9ubHkiCittc2dzdHIgIm1vdW50OiBraMO0bmcgZ+G6r24gxJHGsOG7o2MgJXMlcyB24bubaSBjaOG6vyDEkeG7mSBjaOG7iSDEkeG7jWMiCisKKyM6IG1vdW50L21vdW50LmM6MTU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQgYnV0IGV4cGxpY2l0IGAtdycgZmxhZyBnaXZlbiIKK21zZ3N0ciAibW91bnQ6ICVzJXMgxJHGsOG7o2MgYuG6o28gduG7hyBraOG7j2kgZ2hpIG5oxrBuZyDEkcawYSByYSBj4budIGAtdycgKHdyaXRlLCBnaGkpIgorCisjOiBtb3VudC9tb3VudC5jOjE1ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCByZW1vdW50ICVzJXMgcmVhZC13cml0ZSwgaXMgd3JpdGUtcHJvdGVjdGVkIgorbXNnc3RyICJtb3VudDoga2jDtG5nIHRo4buDIGzhuq9wIGzhuqFpICVzJXMgxJHhu41jLWdoaSB2w6wgbsOzIGPhuqVtIGdoaSIKKworIzogbW91bnQvbW91bnQuYzoxNTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyVzIGlzIHdyaXRlLXByb3RlY3RlZCwgbW91bnRpbmcgcmVhZC1vbmx5IgorbXNnc3RyICJtb3VudDogJXMlcyDEkcaw4bujYyBi4bqjbyB24buHIGto4buPaSBnaGksIMSRYW5nIGfhuq9uIGNo4buJIMSR4buNYyIKKworIzogbW91bnQvbW91bnQuYzoxNjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMgLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIm1vdW50OiBraMO0bmcgdMOsbSB0aOG6pXkgduG6rXQgY2jhu6lhIHRyw6puICVzLi4uIG7Dqm4gdGjhu60gbOG6oWlcbiIKKworIzogbW91bnQvbW91bnQuYzoxNjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyBtZWRpdW0gZm91bmQgb24gJXMiCittc2dzdHIgIm1vdW50OiBraMO0bmcgdMOsbSB0aOG6pXkgduG6rXQgY2jhu6lhIHRyw6puICVzIgorCisjOiBtb3VudC9tb3VudC5jOjE2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiAlcyBkb2VzIG5vdCBjb250YWluIFNFTGludXggbGFiZWxzLlxuIgorIiAgICAgICBZb3UganVzdCBtb3VudGVkIGFuIGZpbGUgc3lzdGVtIHRoYXQgc3VwcG9ydHMgbGFiZWxzIHdoaWNoIGRvZXMgbm90XG4iCisiICAgICAgIGNvbnRhaW4gbGFiZWxzLCBvbnRvIGFuIFNFTGludXggYm94LiBJdCBpcyBsaWtlbHkgdGhhdCBjb25maW5lZFxuIgorIiAgICAgICBhcHBsaWNhdGlvbnMgd2lsbCBnZW5lcmF0ZSBBVkMgbWVzc2FnZXMgYW5kIG5vdCBiZSBhbGxvd2VkIGFjY2VzcyB0b1xuIgorIiAgICAgICB0aGlzIGZpbGUgc3lzdGVtLiAgRm9yIG1vcmUgZGV0YWlscyBzZWUgcmVzdG9yZWNvbig4KSBhbmQgbW91bnQoOCkuXG4iCittc2dzdHIgIiIKKyJtb3VudDogJXMga2jDtG5nIGNo4bupYSBuaMOjbiBraeG7g3UgU0VMaW51eC5cbiIKKyJcdELhuqFuIHbhu6thIG3hu5tpIGfhuq9uIGvhur90IG3hu5l0IGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gbcOgIGjhu5cgdHLhu6MgbmjDo25cbiIKKyJcdG5oxrBuZyBjxaluZyBraMO0bmcgY8OzIG5ow6NuLCDEkeG6v24gbeG7mXQgbcOheSBraeG7g3UgU0VMaW51eC5cbiIKKyJcdFLhuqV0IGPDsyB0aOG7gyBsw6Ag4bupbmcgZOG7pW5nIGLhu4sgZ2lhbSBow6NtIHPhur0gdOG6oW8gdGjDtG5nIMSRaeG7h3AgQVZDXG4iCisiXHR2w6Aga2jDtG5nIGPDsyBxdXnhu4FuIHRydXkgY+G6rXAgxJHhur9uIGjhu4cgdGjhu5FuZyB04bqtcCB0aW4gbsOgeS5cbiIKKyJcdMSQ4buDIHTDrG0gY2hpIHRp4bq/dCwgeGVtIHRyYW5nIGjGsOG7m25nIGThuqtuIChtYW4pIHJlc3RvcmVjb24oOCkgdsOgIG1vdW50KDgpLlxuIgorCisjOiBtb3VudC9tb3VudC5jOjE3MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIHR5cGUgd2FzIGdpdmVuIC0gSSdsbCBhc3N1bWUgbmZzIGJlY2F1c2Ugb2YgdGhlIGNvbG9uXG4iCittc2dzdHIgIiIKKyJtb3VudDoga2jDtG5nIMSRxrBhIHJhIGtp4buDdSBo4buHIHRo4buRbmcgdOG6rXAgdGluIG7Dqm4gY29pIG5oxrAgbmZzIHbDrCBjw7MgZOG6pXUgaGFpICIKKyJjaOG6pW1cbiIKKworIzogbW91bnQvbW91bnQuYzoxNzE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtIEknbGwgYXNzdW1lIGNpZnMgYmVjYXVzZSBvZiB0aGUgLy8gcHJlZml4XG4iCittc2dzdHIgIiIKKyJtb3VudDoga2jDtG5nIMSRxrBhIHJhIGtp4buDdSBo4buHIHRo4buRbmcgdOG6rXAgdGluIG7Dqm4gZ2nhuqMgc+G7rSBzbWJmcyB2w6wgY8OzIC8vIMSR4bqxbmcgIgorInRyxrDhu5tjXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIm1vdW50OiDEkcOjIGfhuq9uICVzIHRyw6puICVzXG4iCisKKyM6IG1vdW50L21vdW50LmM6MTk0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IHByaW50IHZlcnNpb25cbiIKKyIgICAgICAgbW91bnQgLWggICAgICAgICAgICAgICAgIDogcHJpbnQgdGhpcyBoZWxwXG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxpc3QgbW91bnRlZCBmaWxlc3lzdGVtc1xuIgorIiAgICAgICBtb3VudCAtbCAgICAgICAgICAgICAgICAgOiBpZGVtLCBpbmNsdWRpbmcgdm9sdW1lIGxhYmVsc1xuIgorIlNvIGZhciB0aGUgaW5mb3JtYXRpb25hbCBwYXJ0LiBOZXh0IHRoZSBtb3VudGluZy5cbiIKKyJUaGUgY29tbWFuZCBpcyBgbW91bnQgWy10IGZzdHlwZV0gc29tZXRoaW5nIHNvbWV3aGVyZScuXG4iCisiRGV0YWlscyBmb3VuZCBpbiAvZXRjL2ZzdGFiIG1heSBiZSBvbWl0dGVkLlxuIgorIiAgICAgICBtb3VudCAtYSBbLXR8LU9dIC4uLiAgICAgOiBtb3VudCBhbGwgc3R1ZmYgZnJvbSAvZXRjL2ZzdGFiXG4iCisiICAgICAgIG1vdW50IGRldmljZSAgICAgICAgICAgICA6IG1vdW50IGRldmljZSBhdCB0aGUga25vd24gcGxhY2VcbiIKKyIgICAgICAgbW91bnQgZGlyZWN0b3J5ICAgICAgICAgIDogbW91bnQga25vd24gZGV2aWNlIGhlcmVcbiIKKyIgICAgICAgbW91bnQgLXQgdHlwZSBkZXYgZGlyICAgIDogb3JkaW5hcnkgbW91bnQgY29tbWFuZFxuIgorIk5vdGUgdGhhdCBvbmUgZG9lcyBub3QgcmVhbGx5IG1vdW50IGEgZGV2aWNlLCBvbmUgbW91bnRzXG4iCisiYSBmaWxlc3lzdGVtIChvZiB0aGUgZ2l2ZW4gdHlwZSkgZm91bmQgb24gdGhlIGRldmljZS5cbiIKKyJPbmUgY2FuIGFsc28gbW91bnQgYW4gYWxyZWFkeSB2aXNpYmxlIGRpcmVjdG9yeSB0cmVlIGVsc2V3aGVyZTpcbiIKKyIgICAgICAgbW91bnQgLS1iaW5kIG9sZGRpciBuZXdkaXJcbiIKKyJvciBtb3ZlIGEgc3VidHJlZTpcbiIKKyIgICAgICAgbW91bnQgLS1tb3ZlIG9sZGRpciBuZXdkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBtb3VudCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2xhdmUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1wcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtdW5iaW5kYWJsZSBkaXJcbiIKKyJPbmUgY2FuIGNoYW5nZSB0aGUgdHlwZSBvZiBhbGwgdGhlIG1vdW50cyBpbiBhIG1vdW50IHN1YnRyZWVcbiIKKyJjb250YWluaW5nIHRoZSBkaXJlY3RvcnkgZGlyOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNoYXJlZCBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJwcml2YXRlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnVuYmluZGFibGUgZGlyXG4iCisiQSBkZXZpY2UgY2FuIGJlIGdpdmVuIGJ5IG5hbWUsIHNheSAvZGV2L2hkYTEgb3IgL2Rldi9jZHJvbSxcbiIKKyJvciBieSBsYWJlbCwgdXNpbmcgIC1MIGxhYmVsICBvciBieSB1dWlkLCB1c2luZyAgLVUgdXVpZCAuXG4iCisiT3RoZXIgb3B0aW9uczogWy1uZkZyc3Z3XSBbLW8gb3B0aW9uc10gWy1wIHBhc3N3ZGZkXS5cbiIKKyJGb3IgbWFueSBtb3JlIGRldGFpbHMsIHNheSAgbWFuIDggbW91bnQgLlxuIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6IG1vdW50IC1WICAgICAgICAgICAgICAgICA6IGluIHJhIHBoacOqbiBi4bqjblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBpbiByYSB0cuG7oyBnacO6cCBuw6B5XG4iCisiICAgICAgIG1vdW50ICAgICAgICAgICAgICAgICAgICA6IGxp4buHdCBrw6ogY8OhYyBo4buHIHRo4buRbmcgdOG6rXAgdGluIMSRw6MgZ+G6r25cbiIKKyIgICAgICAgbW91bnQgLWwgICAgICAgICAgICAgICAgIDogbmjGsCB0csOqbiwgYmFvIGfhu5NtIGPhuqMgbmjDo24ga2jhu5FpIHRpblxuIgorIlxuIgorIlBo4bqnbiB0csaw4bubYyBsw6AgcGjhuqduIHRow7RuZyB0aW4uIFRp4bq/cCB0aGVvIGfhuq9uLlxuIgorIkPDonUgbOG7h25oIGzDoDpcbiIKKyJcdG1vdW50IFstdCBraeG7g3VfaOG7h190aOG7kW5nX3Thuq1wX3Rpbl0gbeG7pWMgduG7i190csOtLlxuIgorIlxuIgorIkNoaSB0aeG6v3QgdMOsbSB0aOG6pXkgdHJvbmcgwqsgL2V0Yy9mc3RhYiDCuyBjw7MgdGjhu4MgYuG7iyBi4buPIMSRaS5cbiIKKyIgICAgICAgbW91bnQgLWEgWy10fC1PXSAuLi4gICAgIDogZ+G6r24gbeG7jWkgdGjhu6kgdOG7qyDCqyAvZXRjL2ZzdGFiIMK7XG4iCisiICAgICAgIG1vdW50IHRoaeG6v3RfYuG7iyAgICAgICAgICAgICA6IGfhuq9uIHRoaeG6v3QgYuG7iyBuw6B5IHbDoG8gbsahaSDEkcOjIGJp4bq/dFxuIgorIiAgICAgICBtb3VudCB0aMawX23hu6VjICAgICAgICAgIDogZ+G6r24gdGhp4bq/dCBi4buLIMSRw6MgYmnhur90IHbDoG8gdGjGsCBt4bulYyBuw6B5XG4iCisiICAgICAgIG1vdW50IC10IGtp4buDdSB0aGnhur90X2Lhu4sgdGjGsF9t4bulYyAgICA6IGPDonUgbOG7h25oIGfhuq9uIGNodeG6qW5cbiIKKyJcbiIKKyJDaMO6IMO9IHLhurFuZyBuZ8aw4budaSBkw7luZyBraMO0bmcgdGjhu7FjIHPhu7EgZ+G6r24gbeG7mXQgdGhp4bq/dCBi4buLLCBtw6AgZ+G6r24gaOG7hyB0aOG7kW5nXG4iCisidOG6rXAgdGluICh24bubaSBraeG7g3UgxJHGsGEgcmEpIHTDrG0gdGjhuqV5IHRyw6puIHRoaeG6v3QgYuG7iy5cbiIKKyJOZ8aw4budaSBkw7luZyBjxaluZyBjw7MgdGjhu4MgZ+G6r24gY8OieSB0aMawIG3hu6VjIMSRw6MgZ+G6r24gdsOgbyBuxqFpIGtow6FjOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgdGjGsF9t4bulY19jxakgdGjGsF9t4bulY19t4bubaVxuIgorImhv4bq3YyBkaSBjaHV54buDbiBt4buZdCBjw6J5IHRoxrAgbeG7pWMgY29uOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgdGjGsF9t4bulY19jxakgdGjGsF9t4bulY19t4bubaVxuIgorIlxuIgorIkPFqW5nIGPDsyB0aOG7gyB0aGF5IMSR4buVaSBraeG7g3UgxJHhu5MgZ+G6r24gY2jhu6lhIHRoxrAgbeG7mXQgbeG7pWMgbsOgbyDEkcOzOlxuIgorIiAgICAgICBtb3VudCAtLW1ha2Utc2hhcmVkIHRoxrBfbeG7pWNcdGtoaeG6v24gxJHhu5MgZ+G6r24gZMO5bmcgY2h1bmdcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXNsYXZlIHRoxrBfbeG7pWNcdGtoaeG6v24gxJHhu5MgZ+G6r24gcGjhu6VcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgdGjGsF9t4bulY1x0a2hp4bq/biDEkeG7kyBn4bqvbiByacOqbmdcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXVuYmluZGFibGUgdGjGsF9t4bulYyAgICBraGnhur9uIHRoxrAgbeG7pWMga2jDtG5nIHRo4buDIMSRw7NuZyBr4bq/dFxuIgorIlxuIgorIkPFqW5nIGPDsyB0aOG7gyB0aGF5IMSR4buVaSBraeG7g3UgY+G7p2EgbeG7jWkgxJHhu5MgZ8OhbiB0cm9uZyBjw7luZyBt4buZdCBjw6J5IGNvbiBn4bqvblxuIgorImNo4bupYSBt4buZdCB0aMawIG3hu6VjIG7DoG8gxJHDsyA6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIHRoxrBfbeG7pWNcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXJzbGF2ZSB0aMawX23hu6VjXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ycHJpdmF0ZSB0aMawX23hu6VjXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSB0aMawX23hu6VjXG4iCisiXG4iCisiQ8OzIHRo4buDIHjDoWMgxJHhu4tuaCB0aGnhur90IGLhu4sgdGhlbyB0w6puICh2LmQuIMKrIC9kZXYvaGRhMSDCuyBoYXkgwqsgL2Rldi9jZHJvbSDCuyxcbiIKKyJob+G6t2MgdGhlbyBuaMOjbiwgZMO5bmcgdMO5eSBjaOG7jW4gwqsgLUwgbmjDo24gwrssXG4iCisiaG/hurdjIHRoZW8gVVVJRCwgZMO5bmcgdMO5eSBjaOG7jW4gwqsgLVUgVVVJRCDCuyAuXG4iCisiXG4iCisiVMO5eSBjaOG7jW4ga2jDoWM6IFstbmZGcnN2d10gWy1vIHTDuXlfY2jhu41uXSBbLXAgdGjGsF9t4bulY19jaOG7qWFfdOG6rXBfdGluX23huq10X2to4bqpdV0uXG4iCisixJDhu4MgeGVtIHLhuqV0IG5oaeG7gXUgY2hpIHRp4bq/dCwgZMO5bmcgbOG7h25oIMKrIG1hbiA4IG1vdW50IMK7LlxuIgorCisjOiBtb3VudC9tb3VudC5jOjIyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG9ubHkgcm9vdCBjYW4gZG8gdGhhdCAoZWZmZWN0aXZlIFVJRCBpcyAlZCkiCittc2dzdHIgIm1vdW50OiBjaOG7iSBuZ8aw4budaSBjaOG7pyAocm9vdCkgY8OzIHF1eeG7gW4gbMOgbSDEkcOzIChVSUQgY8OzIGvhur90IHF14bqjIGzDoCAlZCkiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIm1vdW50OiBjaOG7iSBuZ8aw4budaSBjaOG7pyAocm9vdCkgY8OzIHF1eeG7gW4gdGjhu7FjIGhp4buHbiIKKworIzogbW91bnQvbW91bnQuYzoyMjg4Cittc2dpZCAibm90aGluZyB3YXMgbW91bnRlZCIKK21zZ3N0ciAia2jDtG5nIGfhuq9uIGfDrCBj4bqjIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDYgbW91bnQvbW91bnQuYzoyMzMyCittc2dpZCAibW91bnQ6IG5vIHN1Y2ggcGFydGl0aW9uIGZvdW5kIgorbXNnc3RyICJtb3VudDoga2jDtG5nIHTDrG0gdGjhuqV5IHBow6JuIHbDuW5nIG5oxrAgduG6rXkiCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAibW91bnQ6IGtow7RuZyB0w6xtIHRo4bqleSAlcyB0cm9uZyAlcyBob+G6t2MgJXMiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogd2FybmluZzogbm8gZmluYWwgbmV3bGluZSBhdCB0aGUgZW5kIG9mICVzXG4iCittc2dzdHIgIlttbnRlbnRdOiBj4bqjbmggYsOhbzoga2jDtG5nIGPDsyBkw7JuZyBt4bubaSDEkeG6t3Qg4bufIGN14buRaSAlc1xuIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IGxpbmUgJWQgaW4gJXMgaXMgYmFkJXNcbiIKK21zZ3N0ciAiW21udGVudF06IGTDsm5nICVkIHRyb25nICVzIHjhuqV1ICVzXG4iCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxOQorbXNnaWQgIjsgcmVzdCBvZiBmaWxlIGlnbm9yZWQiCittc2dzdHIgIjsgYuG7jyBxdWEgcGjhuqduIGPDsm4gbOG6oWkgY+G7p2EgdOG6rXAgdGluIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjMyCittc2dpZCAiYnVnIGluIHhzdHJuZHVwIGNhbGwiCittc2dzdHIgImzhu5dpIChidWcpIHRyb25nIGzhu51pIGfhu41pIHhzdHJuZHVwIgorCisjOiBtb3VudC9zdW5kcmllcy5jOjIyNSBtb3VudC9zdW5kcmllcy5jOjI4MSBtb3VudC9zdW5kcmllcy5jOjI5NgorIzogbW91bnQveG1hbGxvYy5jOjExCittc2dpZCAibm90IGVub3VnaCBtZW1vcnkiCittc2dzdHIgImtow7RuZyDEkeG7pyBi4buZIG5o4bubIgorCisjOiBtb3VudC9zd2Fwb24uYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICBMQUJFTCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgICAgVVVJRCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZGV2aWNlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZmlsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBmaWxlIHRvIGJlIHVzZWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlRoYW0gc+G7kSA8xJHhurdjIGJp4buHdD46XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPW5ow6NufSAgICAgICAgICAgICBcdE5ow6NuIGPhu6dhIHRoaeG6v3QgYuG7iyBj4bqnbiBkw7luZ1xuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgIFx0VVVJRCBj4bunYSB0aGnhur90IGLhu4sgY+G6p24gZMO5bmdcbiIKKyIgPHRoaeG6v3RfYuG7iz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0dMOqbiBj4bunYSB0aGnhur90IGLhu4sgY+G6p24gZMO5bmdcbiIKKyIgPHThuq1wX3Rpbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHR0w6puIGPhu6dhIHThuq1wIHRpbiBj4bqnbiBkw7luZ1xuIgorIlxuIgorCisjOiBtb3VudC9zd2Fwb24uYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIlPhu60gZOG7pW5nOlxuIgorIiAlMSRzIC1hIFstZV0gWy12XSBbLWZdICAgICAgICAgYuG6rXQgdOG6pXQgY+G6oyBjw6FjIHbDuW5nIHRyYW8gxJHhu5VpIHThu6sgL2V0Yy9mc3RhYlxuIgorIiAlMSRzIFstcCDGsHVfdGnDqm5dIFstdl0gWy1mXSA8xJHhurdjX2Jp4buHdD4gIGLhuq10IHbDuW5nIHRyYW8gxJHhu5VpIMSRxrBhIHJhXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGnhu4NuIHRo4buLIGzGsOG7o2Mgc+G7rSB24buBIGPDoWNoIHPhu60gZOG7pW5nIHbDuW5nICIKKyJ0cmFvIMSR4buVaVxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhp4buDbiB0aOG7iyB0cuG7oyBnacO6cFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhp4buDbiB0aOG7iyBwaGnDqm4gYuG6o25cbiIKKyJcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGUgYWxsIHN3YXBzXG4iCisiICUxJHMgWy12XSA8c3BlY2lhbD4gICAgICAgICAgICAgICBkaXNhYmxlIGdpdmVuIHN3YXBcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaGVscFxuIgorIiAlMSRzIC1WICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uXG4iCisiXG4iCittc2dzdHIgIiIKKyJcbiIKKyJT4butIGThu6VuZzpcbiIKKyIgJTEkcyAtYSBbLXZdICAgICAgICAgICAgIFx0XHR04bqvdCBt4buNaSB0cmFvIMSR4buVaVxuIgorIiAlMSRzIFstdl0gPMSR4bq3Y19iaeG7h3Q+ICAgICAgIFx0dOG6r3QgdHJhbyDEkeG7lWkgxJHDoyBjaG9cbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0aGnhu4NuIHRo4buLIHRy4bujIGdpw7pwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBcdGhp4buDbiB0aOG7iyBwaGnDqm4gYuG6o25cbiIKKyJcbiIKKworIzogbW91bnQvc3dhcG9uLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0IgorbXNnc3RyICIlczogZ+G6t3AgxJHhu4tuaCBk4bqhbmcgdOG6rXAgdGluIGLhuqV0IHRoxrDhu51uZyIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWluaXRpYWxpemluZyB0aGUgc3dhcC4iCittc2dzdHIgIiVzOiDEkWFuZyBzxqEga2jhu59pIGzhuqFpIHbDuW5nIHRyYW8gxJHhu5VpLiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCittc2dpZCAiZm9yayBmYWlsZWQiCittc2dzdHIgImzhu5dpIHBow6JuIG5ow6FuaCIKKworIzogbW91bnQvc3dhcG9uLmM6MjM5Cittc2dpZCAiZXhlY3YgZmFpbGVkIgorbXNnc3RyICJleGVjdiBi4buLIGzhu5dpIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNDcKK21zZ2lkICJ3YWl0cGlkIGZhaWxlZCIKK21zZ3N0ciAid2FpdHBpZCBi4buLIGzhu5dpIgorCisjOiBtb3VudC9zd2Fwb24uYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGxzZWVrIGZhaWxlZCIKK21zZ3N0ciAiJXM6IGxzZWVrIGLhu4sgbOG7l2kiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIKK21zZ3N0ciAiJXM6IGzhu5dpIGdoaSBjaOG7ryBrw70iCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZm91bmQgc3dhcCBzaWduYXR1cmU6IHZlcnNpb24gJWQsIHBhZ2Utc2l6ZSAlZCwgJXMgYnl0ZSBvcmRlciIKK21zZ3N0ciAiIgorIiVzOiB0w6xtIHRo4bqleSBjaOG7ryBrw70gdHJhbyDEkeG7lWk6IHBoacOqbiBi4bqjbiAlZCwga8OtY2ggY+G7oSB0cmFuZyAlZCwgdGjhu6kgdOG7sSBieXRlICVzIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJkaWZmZXJlbnQiCittc2dzdHIgImtow6FjIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjkKK21zZ2lkICJzYW1lIgorbXNnc3RyICJnaeG7kW5nIG5oYXUiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgIiVzOiBs4buXaSBs4bqleSB0cuG6oW5nIHRow6FpIgorCisjOiBtb3VudC9zd2Fwb24uYzozOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGluc2VjdXJlIHBlcm1pc3Npb25zICUwNG8sICUwNG8gc3VnZ2VzdGVkLiIKK21zZ3N0ciAiJXM6IGPDsyBxdXnhu4FuIGtow7RuZyBi4bqjbyBt4bqtdCAlMDRvLCDEkeG7gSBuZ2jhu4sgZMO5bmcgJTA0by4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgLSBpdCBhcHBlYXJzIHRvIGhhdmUgaG9sZXMuIgorbXNnc3RyICIlczogxJFhbmcgYuG7jyBxdWEg4oCUIGPDsyB24bq7IGzDoCBuw7MgYuG7iyBs4buXLiIKKworIzogbW91bnQvc3dhcG9uLmM6NDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBnZXQgc2l6ZSBmYWlsZWQiCittc2dzdHIgIiVzOiBs4buXaSBs4bqleSBrw61jaCBj4buhIgorCisjOiBtb3VudC9zd2Fwb24uYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlYWQgc3dhcCBoZWFkZXIgZmFpbGVkIgorbXNnc3RyICIlczogbOG7l2kgxJHhu41jIHBo4bqnbiDEkeG6p3UgdsO5bmcgdHJhbyDEkeG7lWkiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbGFzdF9wYWdlIDB4JTA4bGx4IGlzIGxhcmdlciB0aGFuIGFjdHVhbCBzaXplIG9mIHN3YXBzcGFjZSIKK21zZ3N0ciAiJXM6IGxhc3RfcGFnZSAweCUwOGxseCBs4bubbiBoxqFuIGvDrWNoIGPhu6EgdGjhuq10IGPhu6dhIHbDuW5nIHRyYW8gxJHhu5VpIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiIKK21zZ3N0ciAiJXM6IGvDrWNoIGPhu6EgdHJhbmcgxJHhu4tuaCBk4bqhbmcgdHJhbyDEkeG7lWkga2jDtG5nIHTGsMahbmcg4bupbmcuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBzd2FwIGZvcm1hdCBwYWdlc2l6ZSBkb2VzIG5vdCBtYXRjaC4gKFVzZSAtLWZpeHBnc3ogdG8gcmVpbml0aWFsaXplIGl0LikiCittc2dzdHIgIiIKKyIlczoga8OtY2ggY+G7oSB0cmFuZyDEkeG7i25oIGThuqFuZyB0cmFvIMSR4buVaSBraMO0bmcgdMawxqFuZyDhu6luZy4gKETDuW5nIC0tZml4cGdzeiDEkeG7gyBzxqEgIgorImto4bufaSBs4bqhaSBuw7MuKSIKKworIzogbW91bnQvc3dhcG9uLmM6NDU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzb2Z0d2FyZSBzdXNwZW5kIGRhdGEgZGV0ZWN0ZWQuIFJld3JpdGluZyB0aGUgc3dhcCBzaWduYXR1cmUuIgorbXNnc3RyICIlczogcGjDoXQgaGnhu4duIGThu68gbGnhu4d1IG5nxrBuZyBwaOG6p24gbeG7gW0uIMSQYW5nIGdoaSBs4bqhaSBjaOG7ryBrw70gdHJhbyDEkeG7lWkuIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NzggbW91bnQvc3dhcG9uLmM6NTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIG9uICVzXG4iCittc2dzdHIgIiVzIHRyw6puICVzXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9uIGZhaWxlZCIKK21zZ3N0ciAiJXMgc3dhcG9uIGLhu4sgbOG7l2kiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwNworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZmluZCB0aGUgZGV2aWNlIGZvciAlcyIKK21zZ3N0ciAia2jDtG5nIHTDrG0gdGjhuqV5IHRoaeG6v3QgYuG7iyBjaG8gJXMiCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MAorbXNnaWQgIk5vdCBzdXBlcnVzZXIuIgorbXNnc3RyICJLaMO0bmcgcGjhuqNpIHNpw6p1IG5nxrDhu51pIGTDuW5nLnMiCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcG9mZiBmYWlsZWQiCittc2dzdHIgIiVzIHN3YXBvZmYgYuG7iyBs4buXaSIKKworIzogbW91bnQvc3dhcG9uLmM6ODExCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgdW5zdXBwb3J0ZWQgcHJvZ3JhbSBuYW1lIChtdXN0IGJlICdzd2Fwb24nIG9yICdzd2Fwb2ZmJykuIgorbXNnc3RyICIiCisiwqsgJXMgwrsgbMOgIG3hu5l0IHTDqm4gY2jGsMahbmcgdHLDrG5oIGtow7RuZyDEkcaw4bujYyBo4buXIHRy4bujIChwaOG6o2kgbMOgIMKrIHN3YXBvbiDCuyBoYXkgwqsgIgorInN3YXBvZmYgwrspLiIKKworIzogbW91bnQvdW1vdW50LmM6NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjb21waWxlZCB3aXRob3V0IHN1cHBvcnQgZm9yIC1mXG4iCittc2dzdHIgInVtb3VudDoga2jDtG5nIGJpw6puIGThu4tjaCBo4buXIHRy4bujIC1mXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjExMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBzZXQgZ3JvdXAgaWQ6ICVzIgorbXNnc3RyICJ1bW91bnQ6IGtow7RuZyDEkeG6t3QgxJHGsOG7o2MgSUQgbmjDs206ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICJ1bW91bnQ6IGtow7RuZyDEkeG6t3QgxJHGsOG7o2MgSUQgbmfGsOG7nWkgZMO5bmc6ICVzIgorCisjOiBtb3VudC91bW91bnQuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgInVtb3VudDoga2jDtG5nIHRo4buDIHBow6JuIG5ow6FuaCAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MTYwCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IGludmFsaWQgYmxvY2sgZGV2aWNlIgorbXNnc3RyICJ1bW91bnQ6ICVzOiB0aGnhur90IGLhu4sga2jhu5FpIGtow7RuZyBo4bujcCBs4buHIgorCisjOiBtb3VudC91bW91bnQuYzoxNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbm90IG1vdW50ZWQiCittc2dzdHIgInVtb3VudDogJXM6IGNoxrBhIGfhuq9uIgorCisjOiBtb3VudC91bW91bnQuYzoxNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogY2FuJ3Qgd3JpdGUgc3VwZXJibG9jayIKK21zZ3N0ciAidW1vdW50OiAlczoga2jDtG5nIHRo4buDIGdoaSBzacOqdSBraOG7kWkiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisidW1vdW50OiAlczogdGhp4bq/dCBi4buLIMSRYW5nIGLhuq1uLlxuIgorIlx0KFRyb25nIG3hu5l0IHPhu5EgdHLGsOG7nW5nIGjhu6NwIG7DoG8gxJHDsyxcbiIKKyJcdGjDoG0gbHNvZig4KSBob+G6t2MgZnVzZXIoMSkgY8OzIHRo4buDIHTDrG1cbiIKKyJcdHRow7RuZyB0aW4gY8OzIMOtY2ggduG7gSBjw6FjIHRp4bq/biB0csOsbmggxJFhbmcgZMO5bmcgdGhp4bq/dCBi4buLLiIKKworIzogbW91bnQvdW1vdW50LmM6MTczCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBmb3VuZCIKK21zZ3N0ciAidW1vdW50OiAlczoga2jDtG5nIHTDrG0gdGjhuqV5IgorCisjOiBtb3VudC91bW91bnQuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdW1vdW50IgorbXNnc3RyICJ1bW91bnQ6ICVzOiBwaOG6o2kgbMOgIHNpw6p1IG5nxrDhu51pIGTDuW5nIChyb290KSDEkeG7gyBi4buPIGfhuq9uIgorCisjOiBtb3VudC91bW91bnQuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogYmxvY2sgZGV2aWNlcyBub3QgcGVybWl0dGVkIG9uIGZzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiB0aGnhur90IGLhu4sga2jhu5FpIGtow7RuZyBjaG8gcGjDqXAgdHLDqm4gaOG7hyB0aOG7kW5nIHThuq1wIHRpbiIKKworIzogbW91bnQvdW1vdW50LmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6ICVzIgorbXNnc3RyICJ1bW91bnQ6ICVzOiAlcyIKKworIzogbW91bnQvdW1vdW50LmM6MjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHVtb3VudDIsIHRyeWluZyB1bW91bnQuLi5cbiIKK21zZ3N0ciAia2jDtG5nIGPDsyB1bW91bnQyLCDEkWFuZyB0aOG7rSB1bW91bnQuLlxuIgorCisjOiBtb3VudC91bW91bnQuYzoyNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBidXN5IC0gcmVtb3VudGVkIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6ICVzIGLhuq1uIC0gZ+G6r24gbOG6oWkgY2jhu4kgxJHhu41jXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjI2MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvdWxkIG5vdCByZW1vdW50ICVzIHJlYWQtb25seVxuIgorbXNnc3RyICJ1bW91bnQ6IGtow7RuZyB0aOG7gyBn4bqvbiBs4bqhaSAlcyBjaOG7iSDEkeG7jWNcbiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiVzIMSRw6MgYuG7jyBn4bqvblxuIgorCisjOiBtb3VudC91bW91bnQuYzozNjcKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBmaW5kIGxpc3Qgb2YgZmlsZXN5c3RlbXMgdG8gdW5tb3VudCIKK21zZ3N0ciAidW1vdW50OiBraMO0bmcgdMOsbSB0aOG6pXkgZGFuaCBzw6FjaCBo4buHIHRo4buRbmcgdOG6rXAgdGluIMSR4buDIGLhu48gZ+G6r24iCisKKyM6IG1vdW50L3Vtb3VudC5jOjM5OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IHZmc3R5cGVzXSBbLU8gb3B0c11cbiIKKyIgICAgICAgdW1vdW50IFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBzcGVjaWFsIHwgbm9kZS4uLlxuIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6IHVtb3VudCAtaCB8IC1WXG4iCisiICAgICAgIHVtb3VudCAtYSBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gWy10IGxv4bqhaV9WRlMgLi4uXSBbLU8gIgorInR14buzX2No4buNbiAuLi5dXG4iCisiICAgICAgIHVtb3VudCBbLWRdIFstZl0gWy1yXSBbLW5dIFstdl0gc3BlY2lhbCB8IG5vZGUuLi5cbiIKKyJcbiIKKyJzcGVjaWFsXHTEkeG6t2MgYmnhu4d0XG4iCisibm9kZVx0bsO6dFxuIgorCisjOiBtb3VudC91bW91bnQuYzo0NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIGFzc29jaWF0ZWQgd2l0aCAlc1xuIgorbXNnc3RyICJ0aGnhur90IGLhu4sgJXMgdMawxqFuZyDhu6luZyB24bubaSAlc1xuIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAidGhp4bq/dCBi4buLICVzIGtow7RuZyB0xrDGoW5nIOG7qW5nIHbhu5tpICVzXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ4NworbXNnaWQgIkNhbm5vdCB1bW91bnQgXCJcIlxuIgorbXNnc3RyICJLaMO0bmcgYuG7jyBn4bqvbiDEkcaw4bujYyBcIlwiXG4iCisKKyM6IG1vdW50L3Vtb3VudC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJUcnlpbmcgdG8gdW1vdW50ICVzXG4iCittc2dzdHIgIsSQYW5nIHRo4butIGLhu48gZ+G6r24gJXNcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTA2Cittc2dpZCAidW1vdW50OiBjb25mdXNlZCB3aGVuIGFuYWx5emluZyBtdGFiIgorbXNnc3RyICJ1bW91bnQ6IGJpzKMgbMOizINuIGzDtMyjbiBraGkgcGjDom4gdMOtY2ggbXRhYiIKKworIzogbW91bnQvdW1vdW50LmM6NTExCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY2Fubm90IHVtb3VudCAlcyAtLSAlcyBpcyBtb3VudGVkIG92ZXIgaXQgb24gdGhlIHNhbWUgcG9pbnQuIgorbXNnc3RyICIiCisidW1vdW50OiBraMO0bmcgdGjhu4MgdGjDoW8gZ+G6r24ga+G6v3QgJXMg4oCUICVzIMSRxrDhu6NjIGfhuq9uIGvhur90IOG7nyB0csOqbiBuw7Mg4bufIGPDuW5nIG3hu5l0ICIKKyLEkWnhu4NtLiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5ICVzIHRyb25nIG10YWJcbiIKKworIzogbW91bnQvdW1vdW50LmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IG1vdW50ZWQgKGFjY29yZGluZyB0byBtdGFiKSIKK21zZ3N0ciAidW1vdW50OiAlcyBjaMawYSBn4bqvbiAodGhlbyBtdGFiKSIKKworIzogbW91bnQvdW1vdW50LmM6NTQ5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogaXQgc2VlbXMgJXMgaXMgbW91bnRlZCBtdWx0aXBsZSB0aW1lcyIKK21zZ3N0ciAidW1vdW50OiBjw7MgduG6uyBsw6AgJXMgxJHGsOG7o2MgZ+G6r24gbmhp4buBdSBs4bqnbiIKKworIzogbW91bnQvdW1vdW50LmM6NTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAoYW5kIHlvdSBhcmUgbm90IHJvb3QpIgorbXNnc3RyICJ1bW91bnQ6ICVzIGtow7RuZyBjw7MgdHJvbmcgZnN0YWIgKHbDoCBuZ8aw4budaSBkw7luZyBraMO0bmcgcGjhuqNpIGzDoCByb290KSIKKworIzogbW91bnQvdW1vdW50LmM6NTY5CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgbW91bnQgZGlzYWdyZWVzIHdpdGggdGhlIGZzdGFiIgorbXNnc3RyICJ1bW91bnQ6IGfhuq9uICVzIGtow7RuZyB0xrDGoW5nIOG7qW5nIGZzdGFiIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBvbmx5ICVzIGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCittc2dzdHIgInVtb3VudDogY2jhu4kgY8OzICVzIGPDsyB0aOG7gyBi4buPIGfhuq9uICVzIHThu6sgJXMiCisKKyM6IG1vdW50L3Vtb3VudC5jOjcwMQorbXNnaWQgInVtb3VudDogb25seSByb290IGNhbiBkbyB0aGF0IgorbXNnc3RyICJ1bW91bnQ6IGNo4buJIG5nxrDhu51pIGNo4bunIChyb290KSBjw7MgcXV54buBbiB0aOG7sWMgaGnhu4duIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiY2hydCAtIG1hbmlwdWxhdGUgcmVhbC10aW1lIGF0dHJpYnV0ZXMgb2YgYSBwcm9jZXNzLlxuIgorIlxuIgorIlNldCBwb2xpY3k6XG4iCisiICBjaHJ0IFtvcHRpb25zXSA8cG9saWN5PiA8cHJpb3JpdHk+IHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJHZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorIlxuIgorIlxuIgorIlNjaGVkdWxpbmcgcG9saWNpZXM6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0JBVENIXG4iCisiICAtZiB8IC0tZmlmbyAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0ZJRk9cbiIKKyIgIC1pIHwgLS1pZGxlICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9PVEhFUlxuIgorIiAgLXIgfCAtLXJyICAgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9SUiAoZGVmYXVsdClcbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorIiAgLWggfCAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHBcbiIKKyIgIC1wIHwgLS1waWQgICAgICAgICAgIG9wZXJhdGUgb24gZXhpc3RpbmcgZ2l2ZW4gcGlkXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBzaG93IG1pbiBhbmQgbWF4IHZhbGlkIHByaW9yaXRpZXNcbiIKKyIgIC12IHwgLS12ZXJib3NlICAgICAgIGRpc3BsYXkgc3RhdHVzIGluZm9ybWF0aW9uXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiY2hydCDigJQgdGhhbyB0w6FjIGPDoWMgdGh14buZYyB0w61uaCB0aOG7nWkgZ2lhbiB0aOG6rXQgY+G7p2EgbeG7mXQgdGnhur9uIHRyw6xuaC5cbiIKKyJcbiIKKyLEkOG6t3QgY2jDrW5oIHPDoWNoOlxuIgorIiAgY2hydCBbY8OhY190w7l5X2No4buNbl0gPGNow61uaF9zw6FjaD4gPMawdV90acOqbj4gezxwaWQ+IHwgPGzhu4duaD4gIgorIls8xJHhu5FpX3Phu5E+IC4uLl19XG4iCisiXG4iCisiTOG6pXkgY2jDrW5oIHPDoWNoOlxuIgorIiAgY2hydCBbY8OhY190w7l5X2No4buNbl0gezxwaWQ+IHwgPGzhu4duaD4gWzzEkeG7kWlfc+G7kT4gLi4uXX1cbiIKKyJcbiIKKyJcbiIKKyJDaMOtbmggc8OhY2ggxJHhu4tuaCB0aOG7nWk6XG4iCisiICAtYiB8IC0tYmF0Y2ggICAgICAgICDEkeG6t3QgY2jDrW5oIHPDoWNoIHRow6BuaCBTQ0hFRF9CQVRDSFxuIgorIiAgLWYgfCAtLWZpZm8gICAgICAgICAgxJHhurd0IGNow61uaCBzw6FjaCB0aMOgbmggU0NIRURfRklGT1xuIgorIiAgLWkgfCAtLWlkbGUgICAgICAgICAgxJHhurd0IGNow61uaCBzw6FjaCB0aMOgbmggU0NIRURfSURMRVxuIgorIiAgLW8gfCAtLW90aGVyICAgICAgICAgxJHhurd0IGNow61uaCBzw6FjaCB0aMOgbmggU0NIRURfT1RIRVJcbiIKKyIgIC1yIHwgLS1yciAgICAgICAgICAgIMSR4bq3dCBjaMOtbmggc8OhY2ggdGjDoG5oIFNDSEVEX1JSICht4bq3YyDEkeG7i25oKVxuIgorIlxuIgorIlR14buzIGNo4buNbjpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIGhp4buDbiB0aOG7iyB0cuG7oyBnacO6cCBuw6B5XG4iCisiICAtcCB8IC0tcGlkICAgICAgICAgICB0aGFvIHTDoWMgdHLDqm4gbcOjIHPhu5EgdGnhur9uIHRyw6xuaCAoUElEKSDEkcOjIMSRxrBhIHJhXG4iCisiICAtbSB8IC0tbWF4ICAgICAgICAgICBoaeG7g24gdGjhu4sgbeG7qWMgxrB1IHRpw6puIGjhu6NwIGzhu4cgdOG7kWkgxJFhIHbDoCB04buRaSB0aGnhu4N1XG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgICBoaeG7g24gdGjhu4sgdGjDtG5nIHRpbiB0cuG6oW5nIHRow6FpXG4iCisiICAtViB8IC0tdmVyc2lvbiAgICAgICB4deG6pXQgdGjDtG5nIHRpbiBwaGnDqm4gYuG6o25cbiIKKyJcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgImzhu5dpIGzhuqV5IGNow61uaCBzw6FjaCBj4bunYSBQSUQgJWQiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcG9saWN5OiAiCittc2dzdHIgImNow61uaCBzw6FjaCDEkeG7i25oIHRo4budaSAlMiRzIGPhu6dhIFBJRCAlMSRkOiAiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgImtow7RuZyByw7VcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIKK21zZ3N0ciAibOG7l2kgbOG6pXkgY8OhYyB0aHXhu5ljIHTDrW5oIHbhu4EgUElEICVkIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwcmlvcml0eTogJWRcbiIKK21zZ3N0ciAibeG7qWMgxrB1IHRpw6puIMSR4buLbmggdGjhu51pICUyJHMgY+G7p2EgUElEICUxJGQ6ICUzJGRcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG1pbi9tYXggcHJpb3JpdHlcdDogJWQvJWRcbiIKK21zZ3N0ciAiU0NIRURfJXMgxrB1IHRpw6puIHRp4buDdS/EkWFcdDogJWQvJWRcbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIlNDSEVEXyVzIG5vdCBzdXBwb3J0ZWQ/XG4iCittc2dzdHIgIlNDSEVEXyVzIGtow7RuZyDEkcaw4bujYyBo4buXIHRy4bujID9cbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjAzCittc2dpZCAiZmFpbGVkIHRvIHBhcnNlIHBpZCIKK21zZ3N0ciAibOG7l2kgcGjDom4gdMOtY2ggUElEIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMjUKK21zZ2lkICJjdXJyZW50IgorbXNnc3RyICJoaeG7h24gdGjhu51pIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzMKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcHJpb3JpdHkiCittc2dzdHIgImzhu5dpIHBow6JuIHTDrWNoIG3hu6ljIMawdSB0acOqbiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzZXQgcGlkICVkJ3MgcG9saWN5IgorbXNnc3RyICJs4buXaSDEkeG6t3QgY2jDrW5oIHPDoWNoIGPhu6dhIFBJRCAlZCIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCittc2dpZCAibmV3IgorbXNnc3RyICJt4bubaSIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBleGVjdXRlICVzIgorbXNnc3RyICJs4buXaSB0aOG7sWMgaGnhu4duICVzIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjU3Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgImlvcHJpb19nZXQgYuG7iyBs4buXaSIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorbXNnaWQgImlvcHJpb19zZXQgZmFpbGVkIgorbXNnc3RyICJpb3ByaW9fc2V0IGLhu4sgbOG7l2kiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6ODEKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorImlvbmljZSDigJQgxJHhurd0IGhheSBs4bqleSBo4bqhbmcgdsOgIG3hu6ljIMawdSB0acOqbiDEkeG7i25oIHRo4budaSBWL1IgY+G7p2EgdGnhur9uIHRyw6xuaC5cbiIKKyJcbiIKKyJT4butIGThu6VuZzpcbiIKKyIgIGlvbmljZSBbIGPDoWNfdMO5eV9jaOG7jW4gXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9ub2NlIFsgY8OhY190w7l5X2No4buNbiBdIDxs4buHbmg+IFs8xJHhu5FpX3Phu5E+IC4uLl1cbiIKKyJcbiIKKyJUdeG7syBjaOG7jW46XG4iCisiICAtbiA8ZOG7r19saeG7h3VfaOG6oW5nPiAgICAgIGThu68gbGnhu4d1IGjhuqFuZyAoMC03LCBuaOG7jyBoxqFuIHRow6wgbeG7qWMgxrB1IHRpw6puIGNhbyAiCisiaMahbilcbiIKKyIgIC1jIDxo4bqhbmc+ICAgICAgICAgIGjhuqFuZyDEkeG7i25oIHRo4budaVxuIgorIlx04oCiIDBcdGtow7RuZyBjw7NcbiIKKyJcdOKAoiAxXHR0aOG7nWkgZ2lhbiB0aOG6rXRcbiIKKyJcdOKAoiAyXHRj4buRIGfhuq9uZyB04buRdCBuaOG6pXRcbiIKKyJcdOKAoiAzXHRuZ2jhu4lcbiIKKyIgIC10ICAgICAgICAgICAgICAgICAgYuG7jyBxdWEgbOG7l2lcbiIKKyIgIC1oICAgICAgICAgICAgICAgICAgdHLhu6MgZ2nDunAgbsOgeVxuIgorIlxuIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcGFyc2UgbnVtYmVyICclcyciCittc2dzdHIgImtow7RuZyB0aOG7gyBwaMOibiB0w61jaCBz4buRIMKrICVzIMK7IgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1MQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIG5vbmUgY2xhc3MiCittc2dzdHIgIsSRYW5nIGzhu50gxJFpIGThu68gbGnhu4d1IGjhuqFuZyDEkcawYSByYSBjaG8gaOG6oW5nIMKrIGtow7RuZyBjw7MgwrsiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTU5Cittc2dpZCAiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3IgaWRsZSBjbGFzcyIKK21zZ3N0ciAixJFhbmcgbOG7nSDEkWkgZOG7ryBsaeG7h3UgaOG6oW5nIMSRxrBhIHJhIGNobyBo4bqhbmcgbmdo4buJIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcHJpbyBjbGFzcyAlZCIKK21zZ3N0ciAiaOG6oW5nIMawdSB0acOqbiBzYWkgJWQiCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTg3Cittc2dpZCAiZXhlY3ZwIGZhaWxlZCIKK21zZ3N0ciAiZXhlY3ZwIGLhu4sgbOG7l2kiCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgYmUgcm9vdCB0byBzZXQgdGhlIEN0cmwtQWx0LURlbCBiZWhhdmlvdXIuXG4iCittc2dzdHIgIlBo4bqjaSBsw6AgbmfGsOG7nWkgY2jhu6cgKHJvb3QpIMSR4buDIMSR4bq3dCB0w61uaCBuxINuZyBj4bunYSBDdHJsLUFsdC1EZWwuXG4iCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIlPhu60gZOG7pW5nOiBjdHJsYWx0ZGVsIGhhcmR8c29mdFx0XHRj4bupbmd8beG7gW1cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjExNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyBpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKyJU4bqtcCB0aW4gJXMsIEdpw6EgdHLhu4sgbmfGsOG7oW5nICVsdSwgU+G7kSBrw70gdOG7sSBs4bubbiBuaOG6pXQgdHJvbmcgZmlmbyBsw6AgJWQsXG4iCisidsOgIHThu5FjIMSR4buZIHRydXnhu4FuIHThuqNpIGzhu5tuIG5o4bqldCB0w61uaCB0aGVvIGvDvSB04buxL2dpw6J5IGzDoCAlZlxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJGaWxlICVzLCBGb3IgdGhyZXNob2xkIHZhbHVlICVsdSBhbmQgdGltcm91dCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyAiCisiaW4gZmlmbyB3ZXJlICVkLFxuIgorImFuZCB0aGUgbWF4aW11bSB0cmFuc2ZlciByYXRlIGluIGNoYXJhY3RlcnMvc2Vjb25kIHdhcyAlZlxuIgorbXNnc3RyICIiCisiVOG6rXAgdGluICVzLCBHacOhIHRy4buLIG5nxrDhu6FuZyAlbHUsIHbDoCBnacOhIHRy4buLIHRo4budaSBnaWFuIGNo4budICVsdSwgU+G7kSBrw70gdOG7sSBs4bubbiAiCisibmjhuqV0IHRyb25nIGZpZm8gbMOgICVkLFxuIgorInbDoCB04buRYyDEkeG7mSB0cnV54buBbiB04bqjaSBs4bubbiBuaOG6pXQgdMOtbmggdGhlbyBrw70gdOG7sS9nacOieSBsw6AgJWZcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGludGVydmFsIHZhbHVlOiAlc1xuIgorbXNnc3RyICJHacOhIHRy4buLIGtob+G6o25nIHRo4budaSBnaWFuIGtow7RuZyDEkcO6bmc6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBzZXQgdmFsdWU6ICVzXG4iCittc2dzdHIgIkdpw6EgdHLhu4sgxJHhurd0IGtow7RuZyDEkcO6bmc6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBkZWZhdWx0IHZhbHVlOiAlc1xuIgorbXNnc3RyICJHacOhIHRy4buLIG3hurdjIMSR4buLbmgga2jDtG5nIMSRw7puZzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJHacOhIHRy4buLIMSR4bq3dCB0aOG7nWkgZ2lhbiBraMO0bmcgxJHDum5nOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB0aW1lIHZhbHVlOiAlc1xuIgorbXNnc3RyICJHacOhIHRy4buLIHRo4budaSBnaWFuIG3hurdjIMSR4buLbmgga2jDtG5nIMSRw7puZzogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstcSBbLWkgaW50ZXJ2YWxdXSAoWy1zIHZhbHVlXXxbLVMgdmFsdWVdKSAoWy10IHZhbHVlXXxbLVQgdmFsdWVdKSAiCisiWy1nfC1HXSBmaWxlIFtmaWxlLi4uXVxuIgorbXNnc3RyICIiCisiU+G7rSBk4bulbmc6ICVzIFstcSBbLWkga2hv4bqjbmd0aOG7nWlnaWFuXV0gKFstcyBnacOhdHLhu4tdfFstUyBnacOhdHLhu4tdKSAoWy10IGdpw6F0cuG7i118IgorIlstVCBnacOhdHLhu4tdKSBbLWd8LUddIHThuq1wdGluIFt04bqtcHRpbi4uLl1cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiS2jDtG5nIG3hu58gxJHGsOG7o2MgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzoyNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiS2jDtG5nIMSR4bq3dCDEkcaw4bujYyAlcyBjaG8gbmfGsOG7oW5nICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aW1lIHRocmVzaG9sZCAlZDogJXNcbiIKK21zZ3N0ciAiS2jDtG5nIMSR4bq3dCDEkcaw4bujYyAlcyBjaG8gbmfGsOG7oW5nIHRo4budaSBnaWFuICVkOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6Mjk0IHN5cy11dGlscy9jeXR1bmUuYzozNTEgc3lzLXV0aWxzL2N5dHVuZS5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBnZXQgdGhyZXNob2xkIGZvciAlczogJXNcbiIKK21zZ3N0ciAiS2jDtG5nIGzhuqV5IMSRxrDhu6NjIG5nxrDhu6FuZyBjaG8gJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDAgc3lzLXV0aWxzL2N5dHVuZS5jOjM1NyBzeXMtdXRpbHMvY3l0dW5lLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIKK21zZ3N0ciAiS2jDtG5nIGzhuqV5IMSRxrDhu6NjIHRo4budaSBnaWFuIGNo4budIGNobyAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwNgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJWxkIGN1cnJlbnQgdGhyZXNob2xkIGFuZCAlbGQgY3VycmVudCB0aW1lb3V0XG4iCittc2dzdHIgIiVzOiAlbGQgbmfGsOG7oW5nIGhp4buHbiB0aOG7nWkgdsOgICVsZCB0aOG7nWkgZ2lhbiBjaOG7nSBoaeG7h24gdGjhu51pXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIlczogJWxkIG5nxrDhu6FuZyBt4bq3YyDEkeG7i25oIHbDoCAlbGQgdGjhu51pIGdpYW4gY2jhu50gbeG6t2MgxJHhu4tuaFxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzI3Cittc2dpZCAiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIgorbXNnc3RyICJLaMO0bmcgbOG6pXkgxJHGsOG7o2MgdHLDrG5oIMSRaeG7gXUga2hp4buDbiB0w61uIGhp4buHdSIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAiZ2V0dGltZW9mZGF5IChs4bqleSBnaeG7nSkga2jDtG5nIHRow6BuaCBjw7RuZyIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjM0NCBzeXMtdXRpbHMvY3l0dW5lLmM6Mzc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IGlzc3VlIENZR0VUTU9OIG9uICVzOiAlc1xuIgorbXNnc3RyICJLaMO0bmcgQ1lHRVRNT04gxJHGsOG7o2MgdHLDqm4gJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlbHUgaW50cywgJWx1LyVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IG5n4bqvdCwgJWx1LyVsdSBrw70gdOG7sTsgZmlmbzogJWx1IG5nxrDhu6FuZywgJWx1IHRo4budaSBo4bqhbiwgJWx1IHThu5FpIMSRYSwgJWx1ICIKKyJiw6J5IGdp4budXG4iCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjLCAlZiBzZW5kIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiICAgJWYgaW50L2dpw6J5OyAlZiByZWMsICVmIGfhu61pIChrw7104buxL2dpw6J5KVxuIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAlbHUgbWF4LCAlbHUgbm93XG4iCittc2dzdHIgIiIKKyIlczogJWx1IG5n4bqvdCwgJWx1IGvDvSB04buxOyBmaWZvOiAlbHUgbmfGsOG7oW5nLCAlbHUgdGjhu51pIGjhuqFuLCAlbHUgdOG7kWkgxJFhLCAlbHUgYsOieSAiCisiZ2nhu51cbiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQzNQorIywgYy1mb3JtYXQKK21zZ2lkICIgICAlZiBpbnQvc2VjOyAlZiByZWMgKGNoYXIvc2VjKVxuIgorbXNnc3RyICIgICAlZiBpbnQvZ2nDonk7ICVmIHJlYyAoa8O9dOG7sS9nacOieSlcbiIKKworIzogc3lzLXV0aWxzL2RtZXNnLmM6NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstY10gWy1uIGxldmVsXSBbLXJdIFstcyBidWZzaXplXVxuIgorbXNnc3RyICJT4butIGThu6VuZzogJXMgWy1jXSBbLW4gYuG6rWNdIFstcl0gWyAtcyBj4buhX2Lhu5lfxJHhu4dtXVxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbb3B0aW9uc10gPGZpbGVuYW1lPlxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJT4butIGThu6VuZzogJXMgW3TDuXlfY2jhu41uIC4uLl0gPHTDqm5fdOG6rXBfdGluPlxuIgorIlxuIgorIlR14buzIGNo4buNbjpcbiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorIiAtbywgLS1vZmZzZXQgPG51bT4gIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXNcbiIKKyIgLWwsIC0tbGVuZ3RoIDxudW0+ICBsZW5ndGggb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCittc2dzdHIgIiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0cuG7oyBnacO6cCBuw6B5XG4iCisiIC1uLCAtLWtlZXAtc2l6ZSAgICAgxJHhu6tuZyBz4butYSDEkeG7lWkgY2hp4buBdSBkw6BpIGPhu6dhIHThuq1wIHRpblxuIgorIiAtbywgLS1vZmZzZXQgPFPhu5A+ICBraG/huqNuZyBjaMOqbmggY+G6pXAgcGjDoXQsIHRoZW8gYnl0ZVxuIgorIiAtbCwgLS1sZW5ndGggPFPhu5A+ICBjaGnhu4F1IGTDoGkgY+G6pXAgcGjDoXQsIHRoZW8gYnl0ZVxuIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBmYWxsb2NhdGUoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLEkOG7gyB0w6xtIHRow6ptIHRow7RuZyB0aW4sIHhlbSBmYWxsb2NhdGUoMSkuXG4iCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNDcKK21zZ2lkICJubyBsZW5ndGggYXJndW1lbnQgc3BlY2lmaWVkIgorbXNnc3RyICJjaMawYSB4w6FjIMSR4buLbmggxJHhu5FpIHPhu5EgY2hp4buBdSBkw6BpIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ5Cittc2dpZCAiaW52YWxpZCBsZW5ndGggdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJzYWkgeMOhYyDEkeG7i25oIGdpw6EgdHLhu4sgY2hp4buBdSBkw6BpIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUxCittc2dpZCAiaW52YWxpZCBvZmZzZXQgdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICJzYWkgeMOhYyDEkeG7i25oIGdpw6EgdHLhu4sgY2jDqm5oIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTUzCittc2dpZCAibm8gZmlsZW5hbWUgc3BlY2lmaWVkLiIKK21zZ3N0ciAiY2jGsGEgeMOhYyDEkeG7i25oIHTDqm4gdOG6rXAgdGluLiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3MworbXNnaWQgImtlZXAgc2l6ZSBtb2RlICgtbiBvcHRpb24pIHVuc3VwcG9ydGVkIgorbXNnc3RyICJjaOG6vyDEkeG7mSBnaeG7ryBrw61jaCBj4buhICh0deG7syBjaOG7jW4gwqsgLW4gwrspIGtow7RuZyDEkcaw4bujYyBo4buXIHRy4bujIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBmYWxsb2NhdGUgZmFpbGVkIgorbXNnc3RyICIlczogZmFsbG9jYXRlIGLhu4sgbOG7l2kiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKyIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKyIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKyIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKyJT4butIGThu6VuZzogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gdOG6rXBfdGluIFstY10gbOG7h25oLi4uXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSB0aMawX23hu6VjIFstY10gbOG7h25oLi4uXG4iCisiXG4iCisiICAtcyAgLS1zaGFyZWQgICAgIEzhuqV5IG3hu5l0IHPhu7Ega2hvw6EgZMO5bmcgY2h1bmdcbiIKKyIgIC14ICAtLWV4Y2x1c2l2ZSAgTOG6pXkgbeG7mXQgc+G7sSBraG/DoSByacOqbmdcbiIKKyIgIC11ICAtLXVubG9jayAgICAgR+G7oSBi4buPIG3hu5l0IHPhu7Ega2hvw6FcbiIKKyIgIC1uICAtLW5vbmJsb2NrICAgVGjhuqV0IGLhuqFpIGjGoW4gbMOgIMSR4bujaVxuIgorIiAgLXcgIC0tdGltZW91dCAgICDEkOG7o2kgbeG7mXQga2hv4bqjbmcgdGjhu51pIGdpYW5cbiIKKyIgIC1vICAtLWNsb3NlICAgICAgIMSQw7NuZyBi4buZIG3DtCB04bqjIHThuq1wIHRpbiB0csaw4bubYyBraGkgY2jhuqF5IGPDonUgbOG7h25oXG4iCisiICAtYyAgLS1jb21tYW5kICAgIENo4bqheSB0cm9uZyB0csOsbmggYmFvIG3hu5l0IGNodeG7l2kgbOG7h25oIHJpw6puZyBs4bq7XG4iCisiICAtaCAgLS1oZWxwICAgICAgIEhp4buDbiB0aOG7iyB0cuG7oyBnacO6cCBuw6B5XG4iCisiICAtViAgLS12ZXJzaW9uICAgIEhp4buDbiB0aOG7iyBwaGnDqm4gYuG6o25cbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MTkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyByZXF1aXJlcyBleGFjdGx5IG9uZSBjb21tYW5kIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzOiAlczogecOqdSBj4bqndSBjaMOtbmggc8OhY2ggbeG7mXQgxJHhu5FpIHPhu5EgbOG7h25oXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IG9wZW4gbG9jayBmaWxlICVzOiAlc1xuIgorbXNnc3RyICIlczoga2jDtG5nIG3hu58gxJHGsOG7o2MgdOG6rXAgdGluIHPhu7Ega2hvw6EgJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIG51bWJlcjogJXNcbiIKK21zZ3N0ciAiJXM6IHPhu5Egc2FpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHJlcXVpcmVzIGZpbGUgZGVzY3JpcHRvciwgZmlsZSBvciBkaXJlY3RvcnlcbiIKK21zZ3N0ciAiJXM6IHnDqnUgY+G6p3UgYuG7mSBtw7QgdOG6oyB04bqtcCB0aW4sIHThuq1wIHRpbiBoYXkgdGjGsCBt4bulY1xuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlczogbOG7l2kgcGjDom4gbmjDoW5oOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiU+G7rSBk4bulbmc6ICVzIFtjw6FjX3TDuXlfY2jhu41uXVxuIgorIlxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtTSA8c2l6ZT4gICAgIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgb2Ygc2l6ZSA8c2l6ZT5cbiIKKyIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKyIgIC1RICAgICAgICAgICAgY3JlYXRlIG1lc3NhZ2UgcXVldWVcbiIKKyIgIC1wIDxtb2RlPiAgICAgcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpXG4iCittc2dzdHIgIiIKKyIgIC1NIDxrw61jaF9j4buhPiAgICAgdOG6oW8gxJFv4bqhbiBuaOG7myBkw7luZyBjaHVuZyBjw7Mga8OtY2ggY+G7oSBuw6B5XG4iCisiICAtUyA8c+G7kT4gICAgdOG6oW8gbeG6o25nIGPhu50gaGnhu4d1IGPDsyBz4buRIG3hu6VjIG7DoHlcbiIKKyIgIC1RICAgICAgICAgICAgdOG6oW8gaMOgbmcgxJHhu6NpIHRow7RuZyDEkWnhu4dwXG4iCisiICAtcCA8Y2jhur9fxJHhu5k+ICAgICBxdXnhu4FuIGjhuqFuIGPhu6dhIHTDoGkgbmd1ecOqbiAobeG6t2MgxJHhu4tuaCAwNjQ0KVxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzo5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGlwY21rKDEpLlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisixJDhu4MgdMOsbSB0aMOqbSB0aMO0bmcgdGluLCB4ZW0gaXBjbWsoMSkuXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE0MgorbXNnaWQgImNyZWF0ZSBzaGFyZSBtZW1vcnkgZmFpbGVkIgorbXNnc3RyICJs4buXaSB04bqhbyB2w7luZyBuaOG7myBkw7luZyBjaHVuZyIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIk3DoyBz4buRIHbDuW5nIG5o4bubIGTDuW5nIGNodW5nOiAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNTAKK21zZ2lkICJjcmVhdGUgbWVzc2FnZSBxdWV1ZSBmYWlsZWQiCittc2dzdHIgImzhu5dpIHThuqFvIGjDoG5nIMSR4bujaSB0aMO0bmcgxJFp4buHcCIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgcXVldWUgaWQ6ICVkXG4iCittc2dzdHIgIk3DoyBz4buRIGjDoG5nIMSR4bujaSB0aMO0bmcgxJFp4buHcDogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTU4Cittc2dpZCAiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiCittc2dzdHIgImzhu5dpIHThuqFvIGPhu50gaGnhu4d1IgorCisjOiBzeXMtdXRpbHMvaXBjbWsuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VtYXBob3JlIGlkOiAlZFxuIgorbXNnc3RyICJNw6Mgc+G7kSBj4budIGhp4buHdTogJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAiaWQgc2FpOiAlc1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAia2jDtG5nIHjDs2EgYuG7jyDEkcaw4bujYyBpZCAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgImRlcHJlY2F0ZWQgdXNhZ2U6ICVzIHtzaG0gfCBtc2cgfCBzZW19IGlkIC4uLlxuIgorbXNnc3RyICJraMO0bmcgbsOqbiBz4butIGThu6VuZzogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duIHJlc291cmNlIHR5cGU6ICVzXG4iCittc2dzdHIgImThuqFuZyBuZ3Xhu5NuIGtow7RuZyByw7U6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNvdXJjZShzKSBkZWxldGVkXG4iCittc2dzdHIgIsSRw6MgeMOzYSAoY8OhYykgbmd14buTblxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbIFstcSBtc3FpZF0gWy1tIHNobWlkXSBbLXMgc2VtaWRdXG4iCisiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iCittc2dzdHIgIiIKKyJz4butIGThu6VuZzogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCittc2dzdHIgIiVzOiB0w7l5IGNo4buNbiBraMO0bmcgY2hvIHBow6lwIMKrIC0tICVjIMK7XG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE5MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBrZXkgKCVzKVxuIgorbXNnc3RyICIlczogcGjDrW0ga2jDtG5nIGNobyBwaMOpcCAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwNiBzeXMtdXRpbHMvaXBjcm0uYzoyMzgKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IgorbXNnc3RyICJraMO0bmcgxJHhu6cgcXV54buBbiBo4bqhbiBjaG8gY2jDrGEga2jDs2EiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIwOSBzeXMtdXRpbHMvaXBjcm0uYzoyNDgKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQga2V5IgorbXNnc3RyICLEkcOjIHjDs2EgY2jDrGEga2hvw6EiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIxMiBzeXMtdXRpbHMvaXBjcm0uYzoyNDMKK21zZ2lkICJpbnZhbGlkIGtleSIKK21zZ3N0ciAiY2jDrGEga2jDs2Ega2jDtG5nIMSRw7puZyIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjE1IHN5cy11dGlscy9pcGNybS5jOjI1MworbXNnaWQgInVua25vd24gZXJyb3IgaW4ga2V5IgorbXNnc3RyICJs4buXaSBraMO0bmcgcsO1IHRyb25nIGNow6xhIGtow7NhIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMzkKK21zZ2lkICJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiCittc2dzdHIgImtow7RuZyDEkeG7pyBxdXnhu4FuIGjhuqFuIGNobyBpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjQ0Cittc2dpZCAiaW52YWxpZCBpZCIKK21zZ3N0ciAiaWQgc2FpIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDkKK21zZ2lkICJhbHJlYWR5IHJlbW92ZWQgaWQiCittc2dzdHIgIsSRw6MgeMOzYSBpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU0Cittc2dpZCAidW5rbm93biBlcnJvciBpbiBpZCIKK21zZ3N0ciAibOG7l2kga2jDtG5nIHLDtSB0cm9uZyBpZCIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAoJXMpXG4iCittc2dzdHIgIiVzOiAlcyAoJXMpXG4iCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIKK21zZ3N0ciAiJXM6IMSR4buRaSBz4buRIGtow7RuZyByw7U6ICVzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTE2CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlIDogJXMgLWFzbXEgLXRjbHVwIFxuIgorbXNnc3RyICJz4butIGThu6VuZyA6ICVzIC1hc21xIC10Y2x1cCBcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHQlcyBbLXMgLW0gLXFdIC1pIGlkXG4iCittc2dzdHIgIlx0JXMgWy1zIC1tIC1xXSAtaSBpZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIC1oIGZvciBoZWxwLlxuIgorbXNnc3RyICJcdCVzIC1oIMSR4buDIHhlbSB0cuG7oyBnacO6cC5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzIGZvciB3aGljaCB5b3UgaGF2ZSByZWFkIGFjY2Vzcy5cbiIKK21zZ3N0ciAiIgorIiVzIGN1bmcgY+G6pXAgdGjDtG5nIHRpbiB24buBIHBoxrDGoW5nIHRp4buHbiBpcGMgY2hvIG5o4buvbmcgZ8OsIG5nxrDhu51pIGTDuW5nIGPDsyB0cnV5IGPhuq1wICIKKyLEkeG7jWMuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJSZXNvdXJjZSBTcGVjaWZpY2F0aW9uOlxuIgorIlx0LW0gOiBzaGFyZWRfbWVtXG4iCisiXHQtcSA6IG1lc3NhZ2VzXG4iCittc2dzdHIgIiIKKyLEkOG6t2MgxJFp4buDbSBuZ3Xhu5NuOlxuIgorIlx0LW0gOiBuZ3Xhu5NuX2NoaWFz4bq7XG4iCisiXHQtcSA6IHRpbm5o4bqvblxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtcyA6IHNlbWFwaG9yZXNcbiIKKyJcdC1hIDogYWxsIChkZWZhdWx0KVxuIgorbXNnc3RyICIiCisiXHQtcyA6IGPhu5l0IMSRw6huIGhp4buHdVxuIgorIlx0LWEgOiB04bqldCBj4bqjICht4bq3YyDEkeG7i25oKVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiT3V0cHV0IEZvcm1hdDpcbiIKKyJcdC10IDogdGltZVxuIgorIlx0LXAgOiBwaWRcbiIKKyJcdC1jIDogY3JlYXRvclxuIgorbXNnc3RyICIiCisixJDhu4tuaCBk4bqhbmcga+G6v3QgcXXhuqMgxJHGsGEgcmE6XG4iCisiXHQtdCA6IHRo4budaSBnaWFuXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBuZ8aw4budaSB04bqhb1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtbCA6IGxpbWl0c1xuIgorIlx0LXUgOiBzdW1tYXJ5XG4iCittc2dzdHIgIiIKKyJcdC1sIDogZ2nhu5tpIGjhuqFuXG4iCisiXHQtdSA6IHThu5VuZyBr4bq/dFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICItaSBpZCBbLXMgLXEgLW1dIDogZGV0YWlscyBvbiByZXNvdXJjZSBpZGVudGlmaWVkIGJ5IGlkXG4iCittc2dzdHIgIi1pIGlkIFstcyAtcSAtbV0gOiBjaGkgdGnhur90IHbhu4Egbmd14buTbiBjw7MgdMOqbiBpZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNoYXJlZCBtZW1vcnlcbiIKK21zZ3N0ciAibmjDom4ga2jDtG5nIGPhuqV1IGjDrG5oIGNobyBi4buZIG5o4bubIGNoaWEgc+G6u1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEdp4bubaSBo4bqhbiBi4buZIG5o4bubIGNoaWEgc+G6uyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIHNlZ21lbnRzID0gJWx1XG4iCittc2dzdHIgInPhu5EgxJFv4bqhbiBs4bubbiBuaOG6pXQgPSAlbHVcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlZyBzaXplIChrYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgImvDrWNoIGPhu6EgxJFv4bqhbiBs4bubbiBuaOG6pXQgKGtieXRlKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2OQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggdG90YWwgc2hhcmVkIG1lbW9yeSAoa2J5dGVzKSA9ICVsbHVcbiIKK21zZ3N0ciAidOG7lW5nIHPhu5EgYuG7mSBuaOG7myBjaGlhIHPhursgbOG7m24gbmjhuqV0ICh0aGVvIGtpbMO0LWJ5dGUpID0gJWxsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3MQorIywgYy1mb3JtYXQKK21zZ2lkICJtaW4gc2VnIHNpemUgKGJ5dGVzKSA9ICVsdVxuIgorbXNnc3RyICJrw61jaCBj4buhIMSRb+G6oW4gbmjhu48gbmjhuqV0IChieXRlKSA9ICVsdVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFRy4bqhbmcgdGjDoWkgYuG7mSBuaOG7myBjaGlhIHPhursgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VnbWVudHMgYWxsb2NhdGVkICVkXG4iCittc2dzdHIgIiVkIMSRb+G6oW4gxJHDoyBwaMOibiBwaOG7kWlcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgYWxsb2NhdGVkICVsZFxuIgorbXNnc3RyICIlbGQgdHJhbmcgxJHDoyBwaMOibiBwaOG7kWlcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgcmVzaWRlbnQgICVsZFxuIgorbXNnc3RyICIlbGQgdHJhbmcgbuG7mWkgdHLDulxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBzd2FwcGVkICAgJWxkXG4iCittc2dzdHIgIiVsZCB0cmFuZyDEkcOjIMSRxrBhIHbDoG8gc3dhcFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJTd2FwIHBlcmZvcm1hbmNlOiAlbGQgYXR0ZW1wdHNcdCAlbGQgc3VjY2Vzc2VzXG4iCittc2dzdHIgIkhp4buHdSBzdeG6pXQgc3dhcDogJWxkIGzhuqduIHRo4butXHQgJWxkIGzhuqduIHRow6BuaCBjw7RuZ1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gTmfGsOG7nWkgdOG6oW8vQ2jhu6cgc+G7nyBo4buvdSBjw6FjIMSRb+G6oW4gY+G7p2EgYuG7mSBuaOG7myBjaGlhIHPhursgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAic2htaWQiCittc2dzdHIgInNobWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAicXV54buBbiBo4bqhbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjdWlkIgorbXNnc3RyICJjdWlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImNnaWQiCittc2dzdHIgImNnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAidWlkIgorbXNnc3RyICJ1aWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiZ2lkIgorbXNnc3RyICJnaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IEF0dGFjaC9EZXRhY2gvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBH4bqvbi9C4buPIGfhuq9uL1Ro4budaSBnaWFuIHRoYXkgxJHhu5VpIGLhu5kgbmjhu5sgY2hpYSBz4bq7IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0IHN5cy11dGlscy9pcGNzLmM6MzAxIHN5cy11dGlscy9pcGNzLmM6MzA3CisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNCBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUxMgorIzogc3lzLXV0aWxzL2lwY3MuYzo1MTggc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJvd25lciIKK21zZ3N0ciAiY2jhu6cgc+G7nyBo4buvdSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJhdHRhY2hlZCIKK21zZ3N0ciAixJHDoyBn4bqvbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJkZXRhY2hlZCIKK21zZ3N0ciAixJHDoyBi4buPIGfhuq9uIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorbXNnaWQgImNoYW5nZWQiCittc2dzdHIgIsSRw6MgdGhheSDEkeG7lWkiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gQuG7mSBuaOG7myBjaGlhIHPhursgTmfGsOG7nWkgdOG6oW8vVGhhbyB0w6FjIGN14buRaSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwMQorbXNnaWQgImNwaWQiCittc2dzdHIgImNwaWQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAibHBpZCIKK21zZ3N0ciAibHBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEPDoWMgxJFv4bqhbiBi4buZIG5o4bubIGNoaWEgc+G6uyAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQyMyBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgImtleSIKK21zZ3N0ciAiY2jDrGEga2jDs2EiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAiYnl0ZXMiCittc2dzdHIgImJ5dGUiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAibmF0dGNoIgorbXNnc3RyICJuYXR0Y2giCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA4Cittc2dpZCAic3RhdHVzIgorbXNnc3RyICJ0cuG6oW5nIHRow6FpIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMyOSBzeXMtdXRpbHMvaXBjcy5jOjMzMSBzeXMtdXRpbHMvaXBjcy5jOjMzMworIzogc3lzLXV0aWxzL2lwY3MuYzo0NDQgc3lzLXV0aWxzL2lwY3MuYzo0NDYgc3lzLXV0aWxzL2lwY3MuYzo1NDUKKyM6IHN5cy11dGlscy9pcGNzLmM6NTQ3IHN5cy11dGlscy9pcGNzLmM6NTQ5IHN5cy11dGlscy9pcGNzLmM6NjAwCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMiBzeXMtdXRpbHMvaXBjcy5jOjYzMCBzeXMtdXRpbHMvaXBjcy5jOjYzMgorIzogc3lzLXV0aWxzL2lwY3MuYzo2MzQgc3lzLXV0aWxzL2lwY3MuYzo2NTcKK21zZ2lkICJOb3Qgc2V0IgorbXNnc3RyICJDaMawYSDEkeG6t3QiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzYxCittc2dpZCAiZGVzdCIKK21zZ3N0ciAixJHDrWNoIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MgorbXNnaWQgImxvY2tlZCIKK21zZ3N0ciAixJHDoyBraMOzYSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgIm5ow6JuIGtow7RuZyBj4bqldSBow6xuaCBjaG8gxJHDqG4gdMOtbiBoaeG7h3VcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEdp4bubaSBo4bqhbiDEkcOobiB0w61uIGhp4buHdSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgInPhu5EgZMOjeSBs4bubbiBuaOG6pXQgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MworIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBwZXIgYXJyYXkgPSAlZFxuIgorbXNnc3RyICJz4buRIMSRw6huIGhp4buHbiBs4bubbiBuaOG6pXQgdHLDqm4gbeG7l2kgZMOjeSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1heCBzZW1hcGhvcmVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAic+G7kSDEkcOobiBoaeG7h24gbOG7m24gbmjhuqV0IGPhu6dhIGPhuqMgaOG7hyB0aOG7kW5nID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG9wcyBwZXIgc2Vtb3AgY2FsbCA9ICVkXG4iCittc2dzdHIgInPhu5EgdGhhbyB0w6FjIGzhu5tuIG5o4bqldCBj4bunYSBt4buXaSBs4budaSBn4buNaSDEkcOobiBoaeG7h3UgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NgorIywgYy1mb3JtYXQKK21zZ2lkICJzZW1hcGhvcmUgbWF4IHZhbHVlID0gJWRcbiIKK21zZ3N0ciAiZ2nDoSB0cuG7iyDEkcOobiBoaeG7h3UgbOG7m24gbmjhuqV0ID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFRy4bqhbmcgdGjDoWkgxJHDqG4gdMOtbiBoaeG7h3UgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNlZCBhcnJheXMgPSAlZFxuIgorbXNnc3RyICJkw6N5IMSRw6Mgc+G7rSBk4bulbmcgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMgorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgc2VtYXBob3JlcyA9ICVkXG4iCittc2dzdHIgIsSRw6huIHTDrW4gaGnhu4d1IMSRw6MgcGjDom4gcGjhu5FpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBOZ8aw4budaSB04bqhby9DaOG7pyBz4bufIGjhu691IGTDo3kgxJHDqG4gaGnhu4d1IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAic2VtaWQiCittc2dzdHIgIm3DoyBz4buRIGPhu50gaGnhu4d1IgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxMgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2VtYXBob3JlIE9wZXJhdGlvbi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFRo4budaSBnaWFuIHRoYXkgxJHhu5VpIC8gdGhhbyB0w6FjIFNlbWFwaG9yZSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQxNAorbXNnaWQgImxhc3Qtb3AiCittc2dzdHIgInRoYW8gdMOhYyBjdeG7kWkgY8O5bmciCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1jaGFuZ2VkIgorbXNnc3RyICJ0aGF5IMSR4buVaSBjdeG7kWkgY8O5bmciCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBEw6N5IGPhu50gaGnhu4d1IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAibnNlbXMiCittc2dzdHIgInPhu5EgxJFv4bqhbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBtZXNzYWdlIHF1ZXVlc1xuIgorbXNnc3RyICJuaMOibiBraMO0bmcgY+G6pXUgaMOsbmggY2hvIGjDoG5nIMSR4bujaSB0aW4gbmjhuq9uXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlczogTGltaXRzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBUaW4gbmjhuq9uOiBHaeG7m2kgaOG6oW4gLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHF1ZXVlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgInPhu5EgaMOgbmcgxJHhu6NpIGzhu5tuIG5o4bqldCBj4bunYSBo4buHIHRo4buRbmcgPSAlZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2l6ZSBvZiBtZXNzYWdlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICJrw61jaCBj4buhIGzhu5tuIG5o4bqldCBj4bunYSB0aW4gbmjhuq9uICh0aGVvIGJ5dGUpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVmYXVsdCBtYXggc2l6ZSBvZiBxdWV1ZSAoYnl0ZXMpID0gJWRcbiIKK21zZ3N0ciAia8OtY2ggY+G7oSBt4bq3YyDEkeG7i25oIGzhu5tuIG5o4bqldCBj4bunYSBow6BuZyDEkeG7o2kgKGJ5dGUpID0gJWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIFRpbiBuaOG6r246IFRy4bqhbmcgdGjDoWkgLS0tLS0tLS1cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHF1ZXVlcyA9ICVkXG4iCittc2dzdHIgImjDoG5nIMSR4bujaSDEkcOjIHBow6JuIHBo4buRaSA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDk5CisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgaGVhZGVycyA9ICVkXG4iCittc2dzdHIgInBo4bqnbiDEkeG6p3UgxJHDoyBz4butIGThu6VuZyA9ICVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIgorbXNnc3RyICJraMO0bmcgZ2lhbiDEkcOjIHPhu60gZOG7pW5nID0gJWQgYnl0ZVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXM6IENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gSMOgbmcgxJHhu6NpOiBOZ8aw4budaSB04bqhby9DaOG7pyBz4bufIGjhu691IC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA2IHN5cy11dGlscy9pcGNzLmM6NTEyIHN5cy11dGlscy9pcGNzLmM6NTE4CisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm1zcWlkIgorbXNnc3RyICJtc3FpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiLS0tLS0tIEjDoG5nIMSR4bujaSB0aW4gbmjhuq9uIEfhu61pL05o4bqtbi9UaOG7nWkgZ2lhbiB0aGF5IMSR4buVaSAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgImfhu61pIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInJlY3YiCittc2dzdHIgIm5o4bqtbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJjaGFuZ2UiCittc2dzdHIgInRoYXkgxJHhu5VpIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLVxuIgorbXNnc3RyICItLS0tLS0gUElEIGPhu6dhIGjDoG5nIMSR4bujaSB0aW4gbmjhuq9uIC0tLS0tLS0tXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE4Cittc2dpZCAibHNwaWQiCittc2dzdHIgImxzcGlkIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxycGlkIgorbXNnc3RyICJscnBpZCIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIi0tLS0tLSBIw6BuZyDEkeG7o2kgdGluIG5o4bqvbiAtLS0tLS0tLVxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgInVzZWQtYnl0ZXMiCittc2dzdHIgImJ5dGUgxJHDoyBkw7luZyIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MjUKK21zZ2lkICJtZXNzYWdlcyIKK21zZ3N0ciAidGluIG5o4bqvbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1ODkKK21zZ2lkICJzaG1jdGwgZmFpbGVkIgorbXNnc3RyICJzaG1jdGwgYuG7iyBs4buXaSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisic2htaWQgY+G7p2EgbeG7mXQgxJFv4bqhbiBi4buZIG5o4bubIGNoaWEgc+G6uyA9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKK21zZ3N0ciAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKK21zZ3N0ciAiY2jhur9fxJHhu5k9JSNvXHRxdXnhu4FuX3RydXlfY+G6rXA9JSNvXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTk2CisjLCBjLWZvcm1hdAorbXNnaWQgImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorbXNnc3RyICJieXRlPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJhdHRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJhdHRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJkZXRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJkZXRfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYwMyBzeXMtdXRpbHMvaXBjcy5jOjYzMworIywgYy1mb3JtYXQKK21zZ2lkICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJjaGFuZ2VfdGltZT0lLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNQorbXNnaWQgIm1zZ2N0bCBmYWlsZWQiCittc2dzdHIgIm1zZ2N0bCBi4buLIGzhu5dpIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiTWVzc2FnZSBRdWV1ZSBtc3FpZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisibXNxaWQgY+G7p2EgaMOgbmcgxJHhu6NpIHRpbiBuaOG6r249JWRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXHRjaOG6v1/EkeG7mT0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICJjYnl0ZXM9JWxkXHRxYnl0ZXM9JWxkXHRxbnVtPSVsZFx0bHNwaWQ9JWRcdGxycGlkPSVkXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICJzZW5kX3RpbWU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmN2X3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAicmN2X3RpbWU9JS0yNi4yNHNcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKK21zZ2lkICJzZW1jdGwgZmFpbGVkIgorbXNnc3RyICJzZW1jdGwgYuG7iyBs4buXaSIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIgorbXNnc3RyICIiCisiXG4iCisic2VtaWQgY+G7p2EgZMOjeSBj4budIGhp4buHdT0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorbXNnc3RyICJ1aWQ9JWRcdCBnaWQ9JWRcdCBjdWlkPSVkXHQgY2dpZD0lZFxuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICJjaOG6v1/EkeG7mT0lI28sIHF1eeG7gW5fdHJ1eV9j4bqtcD0lI29cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibnNlbXMgPSAlbGRcbiIKK21zZ3N0ciAibnNlbXMgPSAlbGRcbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAib3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICJvdGltZSA9ICUtMjYuMjRzXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImN0aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAiY3RpbWUgPSAlLTI2LjI0c1xuIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAic+G7kcSRw6huIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInZhbHVlIgorbXNnc3RyICJnacOhdHLhu4siCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAibmNvdW50IgorbXNnc3RyICJuY291bnQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICJ6Y291bnQiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAicGlkIgorbXNnc3RyICJwaWQiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIKK21zZ3N0ciAiIgorIlxuIgorIlPhu60gZOG7pW5nOiAlcyBbIC1kaFY3OG5lbzEyIF0gWyAtcyA8dOG7kWNfxJHhu5k+IF0gPGzEkcSpYT4gPHRoaeG6v3RfYuG7iz5cbiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6OTEKK21zZ2lkICIiCisiXG4iCisiS25vd24gPGxkaXNjPiBuYW1lczpcbiIKK21zZ3N0ciAiIgorIlxuIgorIkPDoWMgdMOqbiA8bMSRxKlhPiDEkcOjIGJp4bq/dCDEkeG6v246XG4iCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHNwZWVkOiAlcyIKK21zZ3N0ciAidOG7kWMgxJHhu5kgc2FpOiAlcyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTc5CisjLCBjLWZvcm1hdAorbXNnaWQgImxkYXR0YWNoIGZyb20gJXNcbiIKK21zZ3N0ciAibGRhdHRhY2ggdOG7qyAlc1xuIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxODQgdGV4dC11dGlscy90YWlsZi5jOjIwNgorbXNnaWQgImludmFsaWQgb3B0aW9uIgorbXNnc3RyICJ0w7l5IGNo4buNbiBzYWkiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGxpbmUgZGlzY2lwbGluZTogJXMiCittc2dzdHIgImvhu7cgbHXhuq10IGTDsm5nIHNhaTogJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBzZXJpYWwgbGluZSIKK21zZ3N0ciAiJXMga2jDtG5nIHBo4bqjaSBsw6AgZMOybmcgbuG7kWkgdGnhur9wIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIKK21zZ3N0ciAia2jDtG5nIHRo4buDIGzhuqV5IHRodeG7mWMgdMOtbmggdGhp4bq/dCBi4buLIHbhu4EgJXMiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVlZCAlZCB1bnN1cHBvcnRlZCIKK21zZ3N0ciAidOG7kWMgxJHhu5kgJWQga2jDtG5nIMSRxrDhu6NjIGjhu5cgdHLhu6MiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhurd0IGPDoWMgdGh14buZYyB0w61uaCB0aGnhur90IGLhu4sgY2hvICVzIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyNTEKK21zZ2lkICJjYW5ub3Qgc2V0IGxpbmUgZGlzY2lwbGluZSIKK21zZ3N0ciAia2jDtG5nIHRo4buDIMSR4bq3dCBr4bu3IGx14bqtdCBkw7JuZyIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjU3Cittc2dpZCAiY2Fubm90IGRhZW1vbml6ZSIKK21zZ3N0ciAia2jDtG5nIHRo4buDIGNo4bqheSB0cm9uZyBu4buBbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQKK21zZ2lkICJub25lIgorbXNnc3RyICJraMO0bmciCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1Cittc2dpZCAicGFyYSIKK21zZ3N0ciAicGjhuqduIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NgorbXNnaWQgImZ1bGwiCittc2dzdHIgIsSR4bqneSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTM3IHN5cy11dGlscy9sc2NwdS5jOjE2MCBzeXMtdXRpbHMvbHNjcHUuYzo0NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzIgorbXNnc3RyICJs4buXaTogJXMiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgInBow6JuIHTDrWNoIGzhu5dpOiAlcyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTg0Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgImzhu5dpOiBzdHJkdXAga2jDtG5nIHRow6BuaCBjw7RuZyIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MjY3Cittc2dpZCAiZXJyb3I6IHVuYW1lIGZhaWxlZCIKK21zZ3N0ciAibOG7l2k6IHVuYW1lIGtow7RuZyB0aMOgbmggY8O0bmciCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUwNgorbXNnaWQgImVycm9yOiBtYWxsb2MgZmFpbGVkIgorbXNnc3RyICJs4buXaTogbWFsbG9jIGtow7RuZyB0aMOgbmggY8O0bmciCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjUyMQorbXNnaWQgImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIgorbXNnc3RyICJs4buXaTogaOG7hyB0aOG7kW5nIHThuq1wIHRpbiDCqyAvc3lzIMK7IGtow7RuZyB0aOG7gyB0cnV5IGPhuq1wIMSRxrDhu6NjIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiMgVGhlIGZvbGxvd2luZyBpcyB0aGUgcGFyc2FibGUgZm9ybWF0LCB3aGljaCBjYW4gYmUgZmVkIHRvIG90aGVyXG4iCisiIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRFxuIgorIiMgc3RhcnRpbmcgZnJvbSB6ZXJvLlxuIgorIiMgQ1BVLENvcmUsU29ja2V0LE5vZGUiCittc2dzdHIgIiIKKyIjIFRoZW8gxJHDonkgY8OzIMSR4buLbmggZOG6oW5nIGPDsyB0aOG7gyBwaMOibiB0w61jaCxcbiIKKyIjIG3DoCBjw7MgdGjhu4MgxJHGsOG7o2MgZ+G7rWkgY2hvIGNoxrDGoW5nIHRyw6xuaCBraMOhYy5cbiIKKyIjIE3hu5dpIG3hu6VjIHJpw6puZyB0cm9uZyBt4buXaSBj4buZdCBjw7MgbeG7mXQgbcOjIHPhu5EgZHV5IG5o4bqldCxcbiIKKyIjIGLhuq90IMSR4bqndSB04burIHPhu5Ega2jDtG5nLlxuIgorIiMgQ1BVLEzDtWks4buUX2Phuq9tLE7DunQiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiQ2jhur8gxJHhu5kgdGhhbyB0w6FjIENQVToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNQorbXNnaWQgIlRocmVhZChzKSBwZXIgY29yZToiCittc2dzdHIgIk3huqFjaCBt4buXaSBsw7VpOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI2Cittc2dpZCAiQ29yZShzKSBwZXIgc29ja2V0OiIKK21zZ3N0ciAiTMO1aSBt4buXaSDhu5UgY+G6r206IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjcKK21zZ2lkICJDUFUgc29ja2V0KHMpOiIKK21zZ3N0ciAi4buUIGPhuq9tIENQVToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMQorbXNnaWQgIk5VTUEgbm9kZShzKToiCittc2dzdHIgIk7DunQgTlVNQToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzMworbXNnaWQgIlZlbmRvciBJRDoiCittc2dzdHIgIk3DoyBz4buRIG5ow6Agc+G6o24geHXhuqV0OiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM1Cittc2dpZCAiQ1BVIGZhbWlseToiCittc2dzdHIgIk5ow7NtIENQVToiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAiTcO0IGjDrG5oOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjM5Cittc2dpZCAiU3RlcHBpbmc6IgorbXNnc3RyICJMw6BtIGLGsOG7m2M6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDEKK21zZ2lkICJDUFUgTUh6OiIKK21zZ3N0ciAiQ1BVIE1IejoiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY0NCBzeXMtdXRpbHMvbHNjcHUuYzo2NDYKK21zZ2lkICJWaXJ0dWFsaXphdGlvbjoiCittc2dzdHIgIk3DtCBwaOG7j25nOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ5Cittc2dpZCAiSHlwZXJ2aXNvciB2ZW5kb3I6IgorbXNnc3RyICJOaMOgIHPhuqNuIHh14bqldCBi4buZIG3DtCBwaMOybmcgxJHhu5NuZyB0aOG7nWk6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NTAKK21zZ2lkICJWaXJ0dWFsaXphdGlvbiB0eXBlOiIKK21zZ3N0ciAiS2nhu4N1IG3DtCBwaOG7j25nOiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNhY2hlOiIKK21zZ3N0ciAiVsO5bmcgbmjhu5sgdOG6oW0gJXM6IgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25dXG4iCittc2dzdHIgIlPhu60gZOG7pW5nOiAlcyBbdMO5eV9jaOG7jW5dXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY2OQorbXNnaWQgIiIKKyJDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGhlbHBlclxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKyIgIC1wLCAtLXBhcnNlICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuXG4iCisiICAtcywgLS1zeXNyb290ICB1c2UgdGhlIGRpcmVjdG9yeSBhcyBhIG5ldyBzeXN0ZW0gcm9vdC5cbiIKK21zZ3N0ciAiIgorIlRyw6xuaCBi4buVIHRy4bujIHRow7RuZyB0aW4ga2nhur9uIHRyw7pjIENQVVxuIgorIlxuIgorIiAgLWgsIC0taGVscCAgICAgdHLhu6MgZ2nDunBcbiIKKyIgIC1wLCAtLXBhcnNlICAgIGluIHJhIHRoZW8gxJHhu4tuaCBk4bqhbmcgY8OzIHRo4buDIHBow6JuIHTDrWNoIHRoYXkgY2hvIMSR4buLbmggZOG6oW5nIGluICIKKyLEkcaw4bujY1xuIgorIiAgLXMsIC0tc3lzcm9vdCAgZMO5bmcgdGjGsCBt4bulYyBsw6BtIGfhu5FjIGjhu4cgdGjhu5FuZyBt4bubaVxuIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo3MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6IGNoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byAlcy4iCittc2dzdHIgImzhu5dpOiBjaHV54buDbiDEkeG7lWkgdGjGsCBt4bulYyBsw6BtIHZp4buHYyBzYW5nICVzLiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3NworbXNnaWQgInVzYWdlOiByZGV2IFsgLXJ2IF0gWyAtbyBPRkZTRVQgXSBbIElNQUdFIFsgVkFMVUUgWyBPRkZTRVQgXSBdIF0iCittc2dzdHIgInPhu60gZOG7pW5nOiByZGV2IFsgLXJ2IF0gWyAtbyBCw5kgXSBbIOG6ok5IIFsgR0nDgV9UUuG7iiBbIELDmSBdIF0gXSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo3OAorbXNnaWQgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChvciByZGV2IC9saW51eCwgZXRjLikgZGlzcGxheXMgdGhlIGN1cnJlbnQgUk9PVCBkZXZpY2UiCittc2dzdHIgIiIKKyIgIHJkZXYgL2Rldi9mZDAgIChob+G6t2MgcmRldiAvbGludXgsIHYudi4uLikgaGnhu4NuIHRo4buLIHRoaeG6v3QgYuG7iyBST09UIChn4buRYykgIgorImhp4buHbiB0aOG7nWkiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6NzkKK21zZ2lkICIgIHJkZXYgL2Rldi9mZDAgL2Rldi9oZGEyICAgICAgICAgc2V0cyBST09UIHRvIC9kZXYvaGRhMiIKK21zZ3N0ciAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIMSR4bq3dCBST09UIChn4buRYykgdGjDoG5oIC9kZXYvaGRhMiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiIgorIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICDEkeG6t3QgUk9PVEZMQUdTIFtjw6FjIGPhu50gZ+G7kWNdICh0cuG6oW5nIHRow6FpIGNo4buJICIKKyLEkeG7jWMpIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgxCittc2dpZCAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIHNldCB0aGUgUkFNRElTSyBzaXplIgorbXNnc3RyICIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgxJHhurd0IGvDrWNoIGPhu6EgUkFNRElTSyAoxJHEqWEgUkFNKSIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MgorbXNnaWQgIiAgcmRldiAtdiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIGJvb3R1cCBWSURFT01PREUiCittc2dzdHIgIiIKKyIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAgxJHhurd0IGNo4bq/IMSR4buZIFZJREVPTU9ERSAoY2jhur8gxJHhu5kg4bqjbmggxJHhu5luZykgIgorImto4bufaSDEkeG7mW5nIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgzCittc2dpZCAiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHVzZSB0aGUgYnl0ZSBvZmZzZXQgTiIKK21zZ3N0ciAiICAtdSwgLS11bnFvdGUgICAgICAgICAgICAgICAgICBz4butIGThu6VuZyBi4buZIGJ5dGUgTiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NAorbXNnaWQgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiCittc2dzdHIgIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBnaeG7kW5nIG5oxrAgcmRldiAtUiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NQorbXNnaWQgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXIiCittc2dzdHIgIiAgcmFtc2l6ZSAuLi4gICAgICAgICAgICAgICAgICAgICBnaeG7kW5nIG5oxrAgcmRldiAtciIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NgorbXNnaWQgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLXYiCittc2dzdHIgIiAgdmlkbW9kZSAuLi4gICAgICAgICAgICAgICAgICAgICBnaeG7kW5nIG5oxrAgcmRldiAtdiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4NworbXNnaWQgIiIKKyJOb3RlOiB2aWRlbyBtb2RlcyBhcmU6IC0zPUFzaywgLTI9RXh0ZW5kZWQsIC0xPU5vcm1hbFZnYSwgMT1rZXkxLCAyPWtleTIsLi4uIgorbXNnc3RyICIiCisiQ2jDuiDDvTogY2jhur8gxJHhu5kg4bqjbmggxJHhu5luZyBsw6A6IC0zPUjhu49pLCAtMj1N4bufIHLhu5luZywgLTE9VkdBIGNodeG6qW4sIDE9cGjDrW0xLCAiCisiMj1waMOtbTIsLi4uIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiAgICAgIGjDo3kgZMO5bmcgwqsgLVIgMSDCuyDEkeG7gyBn4bqvbiBn4buRYyBjaOG7iSDEkeG7jWMsIMKrIC1SIDAgwrsgxJHhu4MgxJHhu41jL2doaS4iCisKKyM6IHN5cy11dGlscy9yZGV2LmM6MjQ1Cittc2dpZCAibWlzc2luZyBjb21tYSIKK21zZ3N0ciAidGhp4bq/dSBk4bqldSBwaOG6qXkiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjcyIHRleHQtdXRpbHMvbW9yZS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICJraMO0bmcgxJHhu6cgYuG7mSBuaOG7myIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVXNhZ2U6IFwiJXMgW29wdGlvbnNdXG4iCisiXHQgLW0gPG1hcGZpbGU+ICAoZGVmYXVsdHM6IFwiJXNcIiBhbmRcbiIKKyJcdFx0XHRcdCAgXCIlc1wiKVxuIgorIlx0IC1wIDxwcm8tZmlsZT4gKGRlZmF1bHQ6IFwiJXNcIilcbiIKKyJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIgdG8gPG11bHQ+XG4iCisiXHQgLWkgICAgICAgICAgICBwcmludCBvbmx5IGluZm8gYWJvdXQgdGhlIHNhbXBsaW5nIHN0ZXBcbiIKKyJcdCAtdiAgICAgICAgICAgIHByaW50IHZlcmJvc2UgZGF0YVxuIgorIlx0IC1hICAgICAgICAgICAgcHJpbnQgYWxsIHN5bWJvbHMsIGV2ZW4gaWYgY291bnQgaXMgMFxuIgorIlx0IC1iICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBoaXN0b2dyYW0tYmluIGNvdW50c1xuIgorIlx0IC1zICAgICAgICAgICAgcHJpbnQgaW5kaXZpZHVhbCBjb3VudGVycyB3aXRoaW4gZnVuY3Rpb25zXG4iCisiXHQgLXIgICAgICAgICAgICByZXNldCBhbGwgdGhlIGNvdW50ZXJzIChyb290IG9ubHkpXG4iCisiXHQgLW4gICAgICAgICAgICBkaXNhYmxlIGJ5dGUgb3JkZXIgYXV0by1kZXRlY3Rpb25cbiIKKyJcdCAtViAgICAgICAgICAgIHByaW50IHZlcnNpb24gYW5kIGV4aXRcbiIKK21zZ3N0ciAiIgorIiVzOiBT4butIGThu6VuZzogXCIlcyBbdMO5eSBjaOG7jW5dXG4iCisiXHQgLW0gPHThuq1wIHRpbiBzxqEgxJHhu5M+ICAobeG6t2MgxJHhu4tuaDogXCIlc1wiIHbDoFxuIgorIlx0XHRcdFx0ICBcIiVzXCIpXG4iCisiXHQgLXAgPHByby1maWxlPiAobeG6t2MgxJHhu4tuaDogXCIlc1wiKVxuIgorIlx0IC1NIDxtdWx0PiAgICAgxJHhurd0IHRyw6xuaCBz4buRIG5ow6JuIGPhu6dhIHjDoWMgbOG6rXAgdGjDoG5oIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICAgY2jhu4kgaW4gcmEgdGjDtG5nIHRpbiB24buBIGLGsOG7m2MgdGjhu61cbiIKKyJcdCAtdiAgICAgICAgICAgIGluIGThu68gbGnhu4d1IGNoaSB0aeG6v3RcbiIKKyJcdCAtYSAgICAgICAgICAgIGluIG3hu41pIGvDvSB04buxLCBr4buDIGPhuqMgbuG6v3Ugc+G7kSDEkeG6v20gbMOgIDBcbiIKKyJcdCAtYiAgICAgICAgICAgIGluIHJhIHPhu5EgxJHhur9tIGhpc3RvZ3JhbS1iaW4gcmnDqm5nXG4iCisiXHQgLXMgICAgICAgICAgICBpbiByYSBz4buRIMSR4bq/bSByacOqbmcgdHJvbmcgaMOgbVxuIgorIlx0IC1yICAgICAgICAgICAgxJHhurd0IGzhuqFpIHThuqV0IGPhuqMgc+G7kSDEkeG6v20gKGNo4buJIHJvb3QpXG4iCisiXHQgLW4gICAgICAgICAgICB04bqvdCBi4buPIHZp4buHYyB04buxIMSR4buZbmcgdMOsbSByYSB0aOG7qSB04buxIGJ5dGVcbiIKKyJcdCAtViAgICAgICAgICAgIGluIHJhIHBoacOqbiBi4bqjbiB2w6AgdGhvw6F0XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjIyNworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkcHJvZmlsZTogZXJyb3Igd3JpdGluZyAlczogJXNcbiIKK21zZ3N0ciAicmVhZHByb2ZpbGU6IGzhu5dpIGdoaSAlczogJXNcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuIFVzZSAtbiB0byBmb3JjZSBuYXRpdmUgYnl0ZSBvcmRlci5cbiIKK21zZ3N0ciAiIgorIkdp4bqjIHPhu60gdGjhu6kgdOG7sSBieXRlIMSR4bqjbyBs4buZbi4gRMO5bmcgwqsgLW4gwrsgxJHhu4Mgw6lwIGJ14buZYyB0aGVvIHRo4bupIHThu7EgYnl0ZSBz4bufIGjhu691LlxuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzoyODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2FtcGxpbmdfc3RlcDogJWlcbiIKK21zZ3N0ciAiU2FtcGxpbmdfc3RlcDogJWlcbiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzA1IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMoJWkpOiB3cm9uZyBtYXAgbGluZVxuIgorbXNnc3RyICIlczogJXMoJWkpOiBzYWkgZMOybmcgw6FuaCB44bqhXG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBcIl9zdGV4dFwiIGluICVzXG4iCittc2dzdHIgIiVzOiBraMO0bmcgdMOsbSB0aOG6pXkgXCJfc3RleHRcIiB0cm9uZyAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzozNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHByb2ZpbGUgYWRkcmVzcyBvdXQgb2YgcmFuZ2UuIFdyb25nIG1hcCBmaWxlP1xuIgorbXNnc3RyICIlczogxJHhu4thIGNo4buJIGPhu6dhIHjDoWMgbOG6rXAgbuG6sW0gbmdvw6BpIHBo4bqhbSB2aS4gVOG6rXAgdGluIMOhbmggeOG6oSBzYWk/XG4iCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjQxMgorbXNnaWQgInRvdGFsIgorbXNnc3RyICJ04buVbmciCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5IFstcHwtLXBpZF0gcGlkICBbLi4uIHBpZF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC1nfC0tcGdycCBwZ3JwIFsuLi4gcGdycF1cbiIKKyIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC11fC0tdXNlciB1c2VyIFsuLi4gdXNlcl1cbiIKKyIgcmVuaWNlIC1oIHwgLS1oZWxwXG4iCisiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiU+G7rSBk4bulbmc6XG4iCisiIHJlbmljZSBbLW5dIMawdV90acOqbiBbLXB8LS1waWRdIHBpZCAgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIMawdV90acOqbiAgLWd8LS1wZ3JwIHBncnAgWy4uLiBwZ3JwXVxuIgorIiByZW5pY2UgWy1uXSDGsHVfdGnDqm4gIC11fC0tdXNlciBuZ8aw4budaV9kw7luZyBbLi4uIG5nxrDhu51pX2TDuW5nXVxuIgorIiByZW5pY2UgLWggfCAtLWhlbHBcbiIKKyIgcmVuaWNlIC12IHwgLS12ZXJzaW9uXG4iCisiXG4iCisicGlkXHRcdG3DoyBz4buRIHRp4bq/biB0csOsbmhcbiIKKyJwZ3JwXHRcdG5ow7NtIGNoxrDGoW5nIHRyw6xuaFxuIgorInVzZXJcdFx0bmfGsOG7nWkgZMO5bmdcbiIKKyJoZWxwXHRcdHRy4bujIGdpw7pwXG4iCisidmVyc2lvblx0cGhpw6puIGLhuqNuXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzo4OQorIywgYy1mb3JtYXQKK21zZ2lkICJyZW5pY2UgZnJvbSAlc1xuIgorbXNnc3RyICJ0aGF5IMSR4buVaSDGsHUgdGnDqm4gdOG7qyAlc1xuIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICJyZW5pY2U6ICVzOiBuZ8aw4budaSBkw7luZyBs4bqhXG4iCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgInJlbmljZTogJXM6IGdpw6EgdHLhu4sgeOG6pXVcbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1MiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY0Cittc2dpZCAiZ2V0cHJpb3JpdHkiCittc2dzdHIgImzhuqV5X8awdV90acOqbiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICLEkeG6t3RfxrB1X3Rpw6puIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkOiBvbGQgcHJpb3JpdHkgJWQsIG5ldyBwcmlvcml0eSAlZFxuIgorbXNnc3RyICIlZDogbeG7qWMgxJHhu5kgxrB1IHRpw6puIGPFqSAlZCwgbeG7m2kgJWRcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisic+G7rSBk4bulbmc6ICVzIFt0w7l5X2No4buNbl1cbiIKKyIgICAgLWQgfCAtLWRldmljZSA8dGhp4bq/dF9i4buLPiAgICBjaOG7jW4gdGhp4bq/dCBi4buLIHJ0YyAocnRjMHxydGMxfC4uLilcbiIKKyIgICAgLWwgfCAtLWxvY2FsICAgICAgICAgICAgICBSVEMgZMO5bmcgbcO6aSBnaeG7nSBj4bulYyBi4buZXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgY2jhur8gxJHhu5kgbmfhu6cgc3RhbmRieXxtZW18Li4uIFxuIgorIiAgICAtcyB8IC0tc2Vjb25kcyA8Z2nDonk+IHPhu5EgIGdpw6J5IMSR4bujaSB0csaw4bubYyBraGkgbmfhu6dcbiIKKyIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB0aOG7nWkgZ2lhbiB0csaw4bubYyBraGkga8OtY2ggaG/huqF0IGzhuqFpXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIGTDuW5nIHRo4budaSBnaWFuIHRo4bq/IGdp4bubaSAoVVRDKVxuIgorIiAgICAtdiB8IC0tdmVyYm9zZSAgICAgICAgICAgIGluIHJhIGNoaSB0aeG6v3RcbiIKKyIgICAgLVYgfCAtLXZlcnNpb24gICAgICAgICAgICBoaeG7g24gdGjhu4sgc+G7kSB0aOG7qSB04buxIHBoacOqbiBi4bqjblxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0MgorbXNnaWQgInJlYWQgcnRjIHRpbWUiCittc2dzdHIgIsSR4buNYyB0aOG7nWkgZ2lhbiBSVEMiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQ3Cittc2dpZCAicmVhZCBzeXN0ZW0gdGltZSIKK21zZ3N0ciAixJHhu41jIHRo4budaSBnaWFuIGjhu4cgdGjhu5FuZyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICJjaHV54buDbiDEkeG7lWkgdGjhu51pIGdpYW4gUlRDIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyNAorbXNnaWQgInNldCBydGMgYWxhcm0iCittc2dzdHIgIsSR4buDIMSR4buTbmcgaOG7kyBiw6FvIHRo4bupYyBSVEMiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI4Cittc2dpZCAiZW5hYmxlIHJ0YyBhbGFybSIKK21zZ3N0ciAiYuG6rXQgxJHhu5NuZyBo4buTIGLDoW8gdGjhu6ljIFJUQyIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMzIKK21zZ2lkICJzZXQgcnRjIHdha2UgYWxhcm0iCittc2dzdHIgIsSR4buDIMSR4buTbmcgaOG7kyBiw6FvIHRo4bupYyBSVEMga8OtY2ggaG/huqF0IGzhuqFpIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5yZWNvZ25pemVkIHN1c3BlbmQgc3RhdGUgJyVzJ1xuIgorbXNnc3RyICIlczogdMOsbmggdHLhuqFuZyBuZ8awbmcga2jDtG5nIG5o4bqtbiByYTogJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIgorbXNnc3RyICIlczoga2hv4bqjbmcgY+G6pW0gJXMgZ2nDonlcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiVzOiBnacOhIHRy4buLIMKrIHRpbWVfdCDCuyBj4bqlbSAlc1xuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM4NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdmVyc2lvbiAlc1xuIgorbXNnc3RyICIlczogcGhpw6puIGLhuqNuICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6Mzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBhc3N1bWluZyBSVEMgdXNlcyBVVEMgLi4uXG4iCittc2dzdHIgIiVzOiBnaeG6oyBz4butIFJUQyBkw7luZyBVVEMgLi4uXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIFVUQyB0aW1lLlxuIgorbXNnc3RyICJT4butIGThu6VuZyB0aOG7nWkgZ2lhbiBVVEMuXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGxvY2FsIHRpbWUuXG4iCittc2dzdHIgIlPhu60gZOG7pW5nIHRo4budaSBnaWFuIMSR4buLYSBwaMawxqFuZy5cbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG11c3QgcHJvdmlkZSB3YWtlIHRpbWVcbiIKK21zZ3N0ciAiJXM6IHBo4bqjaSBjdW5nIGPhuqVwIHRo4budaSBnaWFuIGvDrWNoIGhv4bqhdCBs4bqhaVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQxNworbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAibWFsbG9jKCkgYuG7iyBs4buXaSIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iCittc2dzdHIgIiVzOiAlcyBraMO0bmcgY8OzIGhp4buHdSBs4buxYyBjaG8gZOG7ryBraeG7h24ga8OtY2ggaG/huqF0IGzhuqFpXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDQ5CisjLCBjLWZvcm1hdAorbXNnaWQgImFsYXJtICVsZCwgc3lzX3RpbWUgJWxkLCBydGNfdGltZSAlbGQsIHNlY29uZHMgJXVcbiIKK21zZ3N0ciAiYsOhbyB0aOG7qWMgJWxkLCBnaeG7nV9o4buHX3Ro4buRbmcgJWxkLCBnaeG7nV9SVEMgJWxkLCBnacOieSAldVxuIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGltZSBkb2Vzbid0IGdvIGJhY2t3YXJkIHRvICVzXG4iCittc2dzdHIgIiVzOiB0aOG7nWkgZ2lhbiBraMO0bmcgY2jhuqF5IG5nxrDhu6NjIHbhu4EgJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdha2V1cCBmcm9tIFwiJXNcIiB1c2luZyAlcyBhdCAlc1xuIgorbXNnc3RyICIlczoga8OtY2ggaG/huqF0IGzhuqFpIHNhdSDCqyAlcyDCuyBkw7luZyAlcyDhu58gJXNcbiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byBleGVjdXRlICVzOiAlc1xuIgorbXNnc3RyICIlczoga2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gJXM6ICVzXG4iCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDk2Cittc2dpZCAicnRjIHJlYWQiCittc2dzdHIgIsSR4buNYyBSVEMiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NTA1Cittc2dpZCAiZGlzYWJsZSBydGMgYWxhcm0gaW50ZXJydXB0IgorbXNnc3RyICJ04bqvdCBraOG6oyBuxINuZyBnacOhbiDEkW/huqFuIGPhu6dhIMSR4buTbmcgaOG7kyBiw6FvIHRo4bupYyBSVEMiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dpdGNoaW5nIG9uICVzLlxuIgorbXNnc3RyICLEkGFuZyBi4bqtdCAlcy5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyVzIFtvcHRpb25zXSBbcHJvZ3JhbSBbcHJvZ3JhbSBhcmd1bWVudHNdXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKyJT4butIGThu6VuZzogJXMlcyBbdMO5eV9jaOG7jW5dIFtjaMawxqFuZ190csOsbmggW2PDoWMgxJHhu5FpIHPhu5EgY+G7p2EgY2jGsMahbmcgdHLDrG5oXV1cbiIKKyJcbiIKKyJUw7l5IGNo4buNbjpcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAtaCwgLS1oZWxwICAgICAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHNheXMgd2hhdCBvcHRpb25zIGFyZSBiZWluZyBzd2l0Y2hlZCBvblxuIgorIiAtUiwgLS1hZGRyLW5vLXJhbmRvbWl6ZSAgZGlzYWJsZXMgcmFuZG9taXphdGlvbiBvZiB0aGUgdmlydHVhbCBhZGRyZXNzICIKKyJzcGFjZVxuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgIgorIkdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgICBpZ25vcmVkIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5KVxuIgorbXNnc3RyICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgIFx0XHRoaeG7g24gdGjhu4sgdHLhu6MgZ2nDunAgbsOgeVxuIgorIiAtdiwgLS12ZXJib3NlICAgICAgICAgICAgXHRcdGxp4buHdCBrw6ogbmjhu69uZyB0w7l5IGNo4buNbiDEkcOjIGLhuq10XG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplXG4iCisiXHRcdFx0dOG6r3QgY2jhu6ljIG7Eg25nIG5n4bqrdSBuaGnDqm4gaG/DoSBraMO0bmcgZ2lhbiDEkeG7i2EgY2jhu4kg4bqjb1xuIgorIiAtRiwgLS1mZHBpYy1mdW5jcHRyc1x0XHRsw6BtIGNobyBjw6FpIGNo4buJIGjDoG0gdGjDrCBjaOG7iSB04bubaSBi4buZIG3DtCB04bqjXG4iCisiIC1aLCAtLW1tYXAtcGFnZS16ZXJvXHRi4bqtdCBNTUFQX1BBR0VfWkVST1xuIgorIiAtTCwgLS1hZGRyLWNvbXBhdC1sYXlvdXRcdHRoYXkgxJHhu5VpIGPDoWNoIGPhuqVwIHBow6F0IGLhu5kgbmjhu5sg4bqjb1xuIgorIiAtWCwgLS1yZWFkLWltcGxpZXMtZXhlYyAgXHRi4bqtdCBSRUFEX0lNUExJRVNfRVhFQyAoxJHhu41jIG5n4bulIMO9IHRo4buxYyBoaeG7h24pXG4iCisiIC1CLCAtLTMyYml0ICAgICAgICAgICAgICBcdFx0YuG6rXQgQUREUl9MSU1JVF8zMkJJVCAoZ2nhu5tpIGjhuqFuIMSR4buLYSBjaOG7iSAzMi0iCisiYml0KVxuIgorIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgXHRcdGLhuq10IFNIT1JUX0lOT0RFIChuw7p0IHRow7RuZyB0aW4gbmfhuq9uKVxuIgorIiAtUywgLS13aG9sZS1zZWNvbmRzICAgICAgXHRi4bqtdCBXSE9MRV9TRUNPTkRTIChuZ3V5w6puIGdpw6J5KVxuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgXHRi4bqtdCBTVElDS1lfVElNRU9VVFMgKHRo4budaSBo4bqhbiBkw61uaClcbiIKKyIgLTMsIC0tM2diICAgICAgICAgICAgICAgIFx0XHTEkeG6t3Qga2jDtG5nIGdpYW4gxJHhu4thIGNo4buJIHRpw6p1IHRo4bulIHThu5FpIMSRYSAzIEdCXG4iCisiICAgICAtLTRnYiAgICAgICAgICAgICAgIFx0XHRi4buLIGLhu48gcXVhIChjaOG7iSDEkeG7gyB0xrDGoW5nIHRow61jaCBuZ8aw4bujYylcbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisiXG4iCisixJDhu4MgdMOsbSB0aMOqbSB0aMO0bmcgdGluLCB4ZW0gwqsgc2V0YXJjaCg4KSDCuy5cbiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiAlc1xuIgorIlRyeSBgJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorIiVzOiAlc1xuIgorIlRo4butIGzhu4duaCB0cuG7oyBnacO6cCDCqyAlcyAtLWhlbHAgwrsgxJHhu4MgeGVtIHRow7RuZyB0aW4gdGjDqm0uXG4iCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjE1IHN5cy11dGlscy9zZXRhcmNoLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIgorbXNnc3RyICIlczoga2nhur9uIHRyw7pjIGtow7RuZyBuaOG6rW4gcmEiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MjQ5IHN5cy11dGlscy9zZXRhcmNoLmM6MjU2Cittc2dpZCAiTm90IGVub3VnaCBhcmd1bWVudHMiCittc2dzdHIgIktow7RuZyDEkeG7pyDEkeG7kWkgc+G7kSIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNjUgc3lzLXV0aWxzL3NldGFyY2guYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHNldCBwZXJzb25hbGl0eSB0byAlcyIKK21zZ3N0ciAiTOG7l2kgxJHhurd0IGPDoSB0w61uaCB0aMOgbmggJXMiCisKKyM6IHN5cy11dGlscy9zZXRzaWQuYzoyNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIKK21zZ3N0ciAic+G7rSBk4bulbmc6ICVzIGNoxrDGoW5nIHRyw6xuaCBbxJHhu5FpX3Phu5EgLi4uXVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyA8ZGV2aWNlPiBbIC1pIDxJUlE+IHwgLXQgPFRJTUU+IHwgLWMgPENIQVJTPiB8IC13IDxXQUlUPiB8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorIlPhu60gZOG7pW5nOiAlcyA8dGhp4bq/dCBi4buLPiBbIC1pIDxJUlE+IHwgLXQgPEdJ4bucPiB8IC1jIDxLw51fVOG7sD4gfCAtdyA8xJDhu6JJPiB8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF0gXHRcdChi4bqtdHx04bqvdClcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjkxCittc2dpZCAibWFsbG9jIGVycm9yIgorbXNnc3RyICJs4buXaSBtYWxsb2MiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCB2YWx1ZVxuIgorbXNnc3RyICIlczogZ2nDoSB0cuG7iyB44bqldVxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBub3QgYW4gbHAgZGV2aWNlLlxuIgorbXNnc3RyICIlczogJXMga2jDtG5nIHBo4bqjaSBsw6AgdGhp4bq/dCBi4buLIGxwLlxuIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN0YXR1cyBpcyAlZCIKK21zZ3N0ciAidHLhuqFuZyB0aMOhaSAlcyBsw6AgJWQiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBidXN5IgorbXNnc3RyICIsIGLhuq1uIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgcmVhZHkiCittc2dzdHIgIiwgc+G6tW4gc8OgbmciCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvdXQgb2YgcGFwZXIiCittc2dzdHIgIiwga2jDtG5nIMSR4bunIHRyYW5nIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb24tbGluZSIKK21zZ3N0ciAiLCB0cuG7sWMgdHV54bq/biIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICIsIGVycm9yIgorbXNnc3RyICIsIGzhu5dpIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6Mjg1Cittc2dpZCAiTFBHRVRJUlEgZXJyb3IiCittc2dzdHIgImzhu5dpIExQR0VUSVJRIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVzaW5nIElSUSAlZFxuIgorbXNnc3RyICIlcyDEkWFuZyBkw7luZyBJUlEgJWRcbiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBwb2xsaW5nXG4iCittc2dzdHIgIiVzIMSRYW5nIGTDuW5nIGto4bqjIG7Eg25nIHRyxrBuZyBj4bqndVxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uc10gPHByb2dyYW0+IFthcmdzLi4uXVxuIgorbXNnc3RyICJT4butIGThu6VuZzogJXMgW3R14buzX2No4buNbiAuLi5dIDxjaMawxqFuZ190csOsbmg+IFvEkeG7kWlfc+G7kSAuLi5dXG4iCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6NjAKK21zZ2lkICIiCisiUnVuIHByb2dyYW0gd2l0aCBzb21lIG5hbWVzcGFjZXMgdW5zaGFyZWQgZnJvbSBwYXJlbnRcbiIKKyJcbiIKKyIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorIiAgLW0sIC0tbW91bnQgICAgICAgdW5zaGFyZSBtb3VudHMgbmFtZXNwYWNlXG4iCisiICAtdSwgLS11dHMgICAgICAgICB1bnNoYXJlIFVUUyBuYW1lc3BhY2UgKGhvc3RuYW1lIGV0YylcbiIKKyIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorIiAgLW4sIC0tbmV0ICAgICAgICAgdW5zaGFyZSBuZXR3b3JrIG5hbWVzcGFjZVxuIgorbXNnc3RyICIiCisiQ2jhuqF5IGNoxrDGoW5nIHRyw6xuaCBjw7MgbeG7mXQgc+G7kSBtaeG7gW4gdMOqbiBraMO0bmcgY2hpYSBz4bq7IHThu6sgY2hhXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB0cuG7oyBnacO6cCBuw6B5XG4iCisiICAtbSwgLS1tb3VudCAgICAgICBi4buPIGNoaWEgc+G6uyBtaeG7gW4gdMOqbiBtb3VudHNcbiIKKyIgIC11LCAtLXV0cyAgICAgICAgIGLhu48gY2hpYSBz4bq7IG1p4buBbiB0w6puIFVUUyAodMOqbiBtw6F5IHYudi4pXG4iCisiICAtaSwgLS1pcGMgICAgICAgICBi4buPIGNoaWEgc+G6uyBtaeG7gW4gdMOqbiBTeXN0ZW0gViBJUENcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIGLhu48gY2hpYSBz4bq7IG1p4buBbiB0w6puIG5ldHdvcmtcbiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo2NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHVuc2hhcmUoMSkuXG4iCittc2dzdHIgIiIKKyJcbiIKKyLEkOG7gyB0w6xtIHRow6ptIHRow7RuZyB0aW4sIHhlbSB1bnNoYXJlKDEpLlxuIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExNAorbXNnaWQgInVuc2hhcmUgZmFpbGVkIgorbXNnc3RyICJ1bnNoYXJlIGLhu4sgbOG7l2kiCisKKyM6IHN5cy11dGlscy91bnNoYXJlLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImV4ZWMgJXMgZmFpbGVkIgorbXNnc3RyICJleGVjICVzIGLhu4sgbOG7l2kiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogYmFkIC1sIGFyZ3VtZW50ICVzLlxuIgorbXNnc3RyICJjb2w6IHRoYW0gc+G7kSAtbCB44bqldSAlcy5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKK21zZ3N0ciAic+G7rSBk4bulbmc6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3cml0ZSBlcnJvci5cbiIKK21zZ3N0ciAiY29sOiBs4buXaSBnaGlcbiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiB3YXJuaW5nOiBjYW4ndCBiYWNrIHVwICVzLlxuIgorbXNnc3RyICJjb2w6IGPhuqNuaCBiw6FvOiBraMO0bmcgc2FvIGzGsHUgxJHGsOG7o2MgJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU4Cittc2dpZCAicGFzdCBmaXJzdCBsaW5lIgorbXNnc3RyICLEkWkgcXVhIGTDsm5nIGN14buRaSBjw7luZyIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NTgKK21zZ2lkICItLSBsaW5lIGFscmVhZHkgZmx1c2hlZCIKK21zZ3N0ciAiLS0gZMOybmcgxJHDoyBzYW4gcGjhurNuZyIKKworIzogdGV4dC11dGlscy9jb2xjcnQuYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIgorbXNnc3RyICJz4butIGThu6VuZzogJXMgWyAtIF0gWyAtMiBdIFsgdOG6rXAgdGluIC4uLiBdXG4iCisKKyM6IHRleHQtdXRpbHMvY29sdW1uLmM6Mjk3Cittc2dpZCAibGluZSB0b28gbG9uZyIKK21zZ3N0ciAiZMOybmcgcXXDoSBkw6BpIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjM3NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogY29sdW1uIFstdHhdIFstYyBjb2x1bW5zXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgInPhu60gZOG7pW5nOiBjb2x1bW4gWy10eF0gWy1jIGPDoWMtY+G7mXRdIFt04bqtcC10aW4gLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBsZW5ndGggdmFsdWUuXG4iCittc2dzdHIgImhleGR1bXA6IGdpw6EgdHLhu4sgY2hp4buBdSBkw6BpIHjhuqV1LlxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBza2lwIHZhbHVlLlxuIgorbXNnc3RyICJoZXhkdW1wOiBnacOhIHRy4buLIG5o4bqjeSBxdWEgKHNraXApIHjhuqV1LlxuIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaGV4ZHVtcDogWy1iY0Nkb3Z4XSBbLWUgZm10XSBbLWYgZm10X2ZpbGVdIFstbiBsZW5ndGhdIFstcyBza2lwXSBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmbXRdIFstZiB04bqtcHRpbl9mbXRdIFstbiBjaGnhu4F1ZMOgaV0gWy1zIG5o4bqjeXF1YV0gIgorIlt04bqtcHRpbiAuLi5dXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI1OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWy1kZmxwY3N1XSBbK2xpbmVudW0gfCArL3BhdHRlcm5dIG5hbWUxIG5hbWUyIC4uLlxuIgorbXNnc3RyICJz4butIGThu6VuZzogJXMgWy1kZmxwY3N1XSBbK3Phu5Fkw7JuZyB8ICsvcGF0dGVybl0gdMOqbjEgdMOqbjIgLi4uXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjI5MAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBsaW5lIGJ1ZmZlclxuIgorbXNnc3RyICJs4buXaSBzxqEga2jhu59pIHbDuW5nIMSR4buHbSBkw7JuZ1xuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gb3B0aW9uIFwiLSVjXCJcbiIKK21zZ3N0ciAiJXM6IGtow7RuZyByw7UgdMO5eSBjaOG7jW4gXCItJWNcIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKiAlczogZGlyZWN0b3J5ICoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqICVzOiB0aMawIG3hu6VjICoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKioqKioqICVzOiBOb3QgYSB0ZXh0IGZpbGUgKioqKioqKipcbiIKKyJcbiIKK21zZ3N0ciAiIgorIlxuIgorIioqKioqKioqICVzOiBLaMO0bmcgcGjhuqNpIHThuq1wIHRpbiB2xINuIGLhuqNuICoqKioqKioqXG4iCisiXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjY2NAorIywgYy1mb3JtYXQKK21zZ2lkICJbVXNlIHEgb3IgUSB0byBxdWl0XSIKK21zZ3N0ciAiW1Phu60gZOG7pW5nIHEgaG/hurdjIFEgxJHhu4MgdGhvw6F0XSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tTW9yZS0tIgorbXNnc3RyICItLUPDsm4gbuG7r2EtLSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIihOZXh0IGZpbGU6ICVzKSIKK21zZ3N0ciAiKFThuq1wIHRpbiB0aeG6v3AgdGhlbzogJXMpIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzIHNwYWNlIHRvIGNvbnRpbnVlLCAncScgdG8gcXVpdC5dIgorbXNnc3RyICJbTmjhuqVuIHBow61tIHRy4bqvbmcgxJHhu4MgdGnhur9wIHThu6VjLCAncScgxJHhu4MgdGhvw6F0XSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTIwNgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5iYWNrICVkIHBhZ2VzIgorbXNnc3RyICIuLi5xdWF5IGzhuqFpICVkIHRyYW5nIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA4Cittc2dpZCAiLi4uYmFjayAxIHBhZ2UiCittc2dzdHIgIi4uLnF1YXkgbOG6oWkgMSB0cmFuZyIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICIuLi5i4buPIHF1YSBt4buZdCBkw7JuZyIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MworIywgYy1mb3JtYXQKK21zZ2lkICIuLi5za2lwcGluZyAlZCBsaW5lcyIKK21zZ3N0ciAiLi4uYuG7jyBxdWEgJWQgZMOybmciCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyOTAKK21zZ2lkICIiCisiXG4iCisiKioqQmFjayoqKlxuIgorIlxuIgorbXNnc3RyICIiCisiXG4iCisiKioqUXVheSBs4bqhaSoqKlxuIgorIlxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMzI4Cittc2dpZCAiIgorIlxuIgorIk1vc3QgY29tbWFuZHMgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBpbnRlZ2VyIGFyZ3VtZW50IGsuICBEZWZhdWx0cyBpbiAiCisiYnJhY2tldHMuXG4iCisiU3RhciAoKikgaW5kaWNhdGVzIGFyZ3VtZW50IGJlY29tZXMgbmV3IGRlZmF1bHQuXG4iCittc2dzdHIgIiIKKyJcbiIKKyJDw7MgdGjhu4MgdGjDqm0gbeG7mXQgdGhhbSBz4buRIHPhu5Egbmd1ecOqbiB2w6BvIHRyxrDhu5tjIGjhuqd1IGjhur90IGPDoWMgY8OidSBs4buHbmguICBN4bq3YyDEkeG7i25oICIKKyLEkeG6t3R0cm9uZyBk4bqldSBuZ2/hurdjIMSRxqFuLlxuIgorIkThuqV1IHNhbyAoKikgY2hvIGJp4bq/dCB0aGFtIHPhu5Egc+G6vSB0aMOgbmggbeG6t2MgxJHhu4tuaCBt4bubaS5cbiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMzNQorbXNnaWQgIiIKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIKK21zZ3N0ciAiIgorIjxzcGFjZT4gICAgICAgICAgICAgICAgIEhp4buHbiBrIGTDsm5nIHbEg24gYuG6o24gdGnhur9wIHRoZW8gW2vDrWNoIGPhu6EgbcOgbiBow6xuaCBoaeG7h24gIgorInRo4budaV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBIaeG7g24gdGjhu4sgayBkw7JuZyB2xINuIGLhuqNuIHRp4bq/cCB0aGVvIFtrw61jaCBj4buhIG3DoG4gaMOsbmggIgorImhp4buHbiB0aOG7nWldKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIEhp4buDbiB0aOG7iyBrIGTDsm5nIHbEg24gYuG6o24gdGnhur9wIHRoZW8gWzFdKlxuIgorImQgaG/hurdjIGN0cmwtRCAgICAgICAgICAgICBDdeG7mW4gayBkw7JuZyBba8OtY2ggY+G7oSBjdeG7mW4gaGnhu4duIHRo4budaSwgYmFuIMSR4bqndSBsw6AgMTFdIgorIipcbiIKKyJxIGhv4bq3YyBRIGhv4bq3YyA8aW50ZXJydXB0PiAgIFRob8OhdCBraOG7j2kgbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIELhu48gcXVhIGsgZMOybmcgdsSDbiBi4bqjbiBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBC4buPIHF1YSBrIG3DoG4gaMOsbmggdsSDbiBi4bqjbiBbMV1cbiIKKyJiIGhv4bq3YyBjdHJsLUIgICAgICAgICAgICAgTmjhuqN5IG5nxrDhu6NjIGzhuqFpIGsgbcOgbiBow6xuaCB2xINuIGLhuqNuIFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIMSQaSB04bubaSBuxqFpIHRyxrDhu5tjIGtoaSBi4bqvdCDEkeG6p3UgdMOsbSBraeG6v21cbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBIaeG7g24gdGjhu4sgc+G7kSB0aOG7qSB04buxIGTDsm5nIGhp4buHbiB0aOG7nWlcbiIKKyIvPGJp4buDdSB0aOG7qWMgY2jDrW5oIHF1eT4gICBUw6xtIGtp4bq/bSBs4bqnbiB4deG6pXQgaGnhu4duIHRo4bupIGsgY+G7p2EgYmnhu4N1IHRo4bupYyBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBUw6xtIGtp4bq/bSBs4bqnbiB4deG6pXQgaGnhu4duIHRo4bupIGsgY+G7p2EgYmnhu4N1IHRo4bupYyBjdeG7kWkgY8O5bmcgIgorIlsxXVxuIgorIiE8Y21kPiBob+G6t2MgOiE8Y21kPiAgICAgICBUaOG7sWMgaGnhu4duIDxjbWQ+IHRyb25nIG3hu5l0IHNoZWxsIGNvblxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIENo4bqheSAvdXNyL2Jpbi92aSB04bqhaSBkw7JuZyBoaeG7h24gdGjhu51pXG4iCisiY3RybC1MICAgICAgICAgICAgICAgICAgVuG6vSBs4bqhaSBtw6BuIGjDrG5oXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgxJBpIHThu5tpIHThuq1wIHRpbiB0aOG7qSBrIHRp4bq/cCB0aGVvIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIMSQaSB04bubaSB04bqtcCB0aW4gdGjhu6kgayBwaMOtYSB0csaw4bubYyBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBIaeG7g24gdGjhu4sgdMOqbiB04bqtcCB0aW4gaGnhu4duIHRo4budaSB2w6Agc+G7kSB0aOG7qSB04buxIGTDsm5nXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgTOG6t3AgbOG6oWkgY8OidSBs4buHbmggduG7q2EgdGjhu7FjIGhp4buHblxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNDA0IHRleHQtdXRpbHMvbW9yZS5jOjE0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iCittc2dzdHIgIltIw6N5IG5o4bqlbiAnaCcgxJHhu4MgeGVtIGNo4buJIGThuqtuLl0iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIlwiJXNcIiBkw7JuZyAlZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJbTm90IGEgZmlsZV0gbGluZSAlZCIKK21zZ3N0ciAiW0tow7RuZyBwaOG6o2kgdOG6rXAgdGluXSBkw7JuZyAlZCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTUyOQorbXNnaWQgIiAgT3ZlcmZsb3dcbiIKK21zZ3N0ciAiICBC4buLIHRyw6BuXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIuLi5i4buPIHF1YVxuIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjA1Cittc2dpZCAiUmVndWxhciBleHByZXNzaW9uIGJvdGNoIgorbXNnc3RyICJCaeG7g3UgdGjhu6ljIGNow61uaCBxdXkga2jDtG5nIMSR4bq5cCIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisiXG4iCisiS2jDtG5nIHTDrG0gdGjhuqV5IG3huqt1IHTDrG0ga2nhur9tXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5IG3huqt1IHTDrG0ga2nhur9tIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjc3Cittc2dpZCAiY2FuJ3QgZm9ya1xuIgorbXNnc3RyICJraMO0bmcgcGjDom4gbmjDoW5oIMSRxrDhu6NjXG4iCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MTYKK21zZ2lkICIiCisiXG4iCisiLi4uU2tpcHBpbmcgIgorbXNnc3RyICIiCisiXG4iCisiLi4uQuG7jyBxdWEgIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIwCittc2dpZCAiLi4uU2tpcHBpbmcgdG8gZmlsZSAiCittc2dzdHIgIi4uLk5o4bqjeSB04bubaSB04bqtcCB0aW4gIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAiLi4uTmjhuqN5IHF1YXkgbOG6oWkgdOG6rXAgdGluICIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjAwMAorbXNnaWQgIkxpbmUgdG9vIGxvbmciCittc2dzdHIgIkTDsm5nIHF1w6EgZMOgaSIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MjA0MworbXNnaWQgIk5vIHByZXZpb3VzIGNvbW1hbmQgdG8gc3Vic3RpdHV0ZSBmb3IiCittc2dzdHIgIktow7RuZyBjw7MgY8OidSBs4buHbmggbmdheSB0csaw4bubYyDEkeG7gyB0aGF5IHRo4bq/IGNobyIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMAorIywgYy1mb3JtYXQKK21zZ2lkICJvZDogb2QoMSkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgaGV4ZHVtcCgxKS5cbiIKK21zZ3N0ciAib2Q6IG9kKDEpIGtow7RuZyB0xrDGoW5nIHRow61jaCBjaG8gaGV4ZHVtcCgxKS5cbiIKKworIzogdGV4dC11dGlscy9vZHN5bnRheC5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJvZDogaGV4ZHVtcCgxKSBjb21wYXRpYmlsaXR5IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLSVjIG9wdGlvbiVzXG4iCittc2dzdHIgIm9kOiB0w61uaCB0xrDGoW5nIHRow61jaCB24bubaSBoZXhkdW1wKDEpIGtow7RuZyBo4buXIHRy4bujIHTDuXkgY2jhu41uIC0lYyAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTM0Cittc2dpZCAiOyBzZWUgc3RyaW5ncygxKS4iCittc2dzdHIgIjsgaMOjeSB4ZW0gc3RyaW5ncygxKS4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo2MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBjYW4ndCByZWFkICVzLlxuIgorbXNnc3RyICJoZXhkdW1wOiBraMO0bmcgxJHhu41jIMSRxrDhu6NjICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogZMOybmcgcXXDoSBkw6BpLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJ5dGUgY291bnQgd2l0aCBtdWx0aXBsZSBjb252ZXJzaW9uIGNoYXJhY3RlcnMuXG4iCittc2dzdHIgImhleGR1bXA6IHPhu5EgxJHhur9tIGJ5dGUgduG7m2kgY8OhYyBrw70gdOG7sSDEkWEgY2h1eeG7g24gxJHhu5VpLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBieXRlIGNvdW50IGZvciBjb252ZXJzaW9uIGNoYXJhY3RlciAlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDogc+G7kSDEkeG6v20gYnl0ZSB44bqldSBjaG8ga8O9IHThu7EgY2h1eeG7g24gxJHhu5VpICVzLlxuIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDkwCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6ICUlcyByZXF1aXJlcyBhIHByZWNpc2lvbiBvciBhIGJ5dGUgY291bnQuXG4iCittc2dzdHIgImhleGR1bXA6ICUlcyB5w6p1IGPhuqd1IHPhu7EgY2jDrW5oIHjDoWMgaG/hurdjIG3hu5l0IHPhu5EgxJHhur9tIGJ5dGUuXG4iCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGZvcm1hdCB7JXN9XG4iCittc2dzdHIgImhleGR1bXA6IMSR4buLbmggZOG6oW5nIHjhuqV1IHslc31cbiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiaGV4ZHVtcDoga8O9IHThu7EgY2h1eeG7g24gxJHhu5VpIHjhuqV1ICUlJXMuXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDUKK21zZ2lkICIiCisiQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisiICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuIgorIiAgcSBvciBRICAgICAgICAgICAgICAgICAgcXVpdCBwcm9ncmFtXG4iCisiICA8bmV3bGluZT4gICAgICAgICAgICAgICBuZXh0IHBhZ2VcbiIKKyIgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcbiIKKyIgIGQgb3IgXkQgICAgICAgICAgICAgICAgIG5leHQgaGFsZnBhZ2VcbiIKKyIgIGwgICAgICAgICAgICAgICAgICAgICAgIG5leHQgbGluZVxuIgorIiAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG4iCisiICAvcmVnZXgvICAgICAgICAgICAgICAgICBzZWFyY2ggZm9yd2FyZCBmb3IgcmVnZXhcbiIKKyIgID9yZWdleD8gb3IgXnJlZ2V4XiAgICAgIHNlYXJjaCBiYWNrd2FyZCBmb3IgcmVnZXhcbiIKKyIgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cbiIKKyIgIHcgb3IgeiAgICAgICAgICAgICAgICAgIHNldCBwYWdlIHNpemUgYW5kIGdvIHRvIG5leHQgcGFnZVxuIgorIiAgcyBmaWxlbmFtZSAgICAgICAgICAgICAgc2F2ZSBjdXJyZW50IGZpbGUgdG8gZmlsZW5hbWVcbiIKKyIgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gcHJldmlvdXMgZmlsZVxuIgorIiAgbiAgICAgICAgICAgICAgICAgICAgICAgZ28gdG8gbmV4dCBmaWxlXG4iCisiXG4iCisiTWFueSBjb21tYW5kcyBhY2NlcHQgcHJlY2VkaW5nIG51bWJlcnMsIGZvciBleGFtcGxlOlxuIgorIisxPG5ld2xpbmU+IChuZXh0IHBhZ2UpOyAtMTxuZXdsaW5lPiAocHJldmlvdXMgcGFnZSk7IDE8bmV3bGluZT4gKGZpcnN0ICIKKyJwYWdlKS5cbiIKKyJcbiIKKyJTZWUgcGcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisiQuG6o28gbMawdSBt4buNaSBxdXnhu4FuLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyIgIGggICAgICAgICAgICAgICAgICAgICAgIHRy4bujIGdpw7pwIG7DoHlcbiIKKyIgIHEgaGF5IFEgICAgICAgICAgICAgICAgICB0aG/DoXQga2jhu49pIGNoxrDGoW5nIHRyw6xuaFxuIgorIiAgPGTDsm5nX23hu5tpPiAgICAgICAgICAgICAgIHRyYW5nIGvhur8gdGnhur9wXG4iCisiICBmICAgICAgICAgICAgICAgICAgICAgICBuaOG6o3kgdOG7m2kgbeG7mXQgdHJhbmdcbiIKKyIgIGQgaGF5IF5EICAgICAgICAgICAgICAgICBu4butYSB0cmFuZyBr4bq/IHRp4bq/cFxuIgorIiAgbCAgICAgICAgICAgICAgICAgICAgICAgZMOybmcga+G6vyB0aeG6v3BcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIHRyYW5nIGN14buRaSBjw7luZ1xuIgorIiAgL2Jp4buDdSB0aOG7qWMgY2jDrW5oIHF1eS8gICAgICAgICAgICAgICAgIHF14bq/dCB04bubaSB0w6xtIGNodeG7l2kgbsOgeVxuIgorIiAgP2Jp4buDdSB0aOG7qWMgY2jDrW5oIHF1eT8gaGF5IF5iaeG7g3UgdGjhu6ljIGNow61uaCBxdXleICAgIHF1w6l0IG5nxrDhu6NjIHTDrG0gY2h14buXaSAiCisibsOgeVxuIgorIiAgLiBoYXkgXkwgICAgICAgICAgICAgICAgIHbhur0gbOG6oWkgbcOgbiBow6xuaFxuIgorIiAgdyBoYXkgeiAgICAgICAgICAgICAgICAgIMSR4bq3dCBrw61jaCBj4buhIHRyYW5nIHbDoCDEkWkgdOG7m2kgdHJhbmcga+G6vyB0aeG6v3BcbiIKKyIgIHMgdMOqbl904bqtcF90aW4gICAgICAgICAgICAgIGzGsHUgdOG6rXAgdGluIGhp4buHbiB0aOG7nWkgdsOgbyB0w6puIHThuq1wIHRpbiBuw6B5XG4iCisiICAhY8OidV9s4buHbmggICAgICAgICAgICAgICAgdGhvw6F0IHbDoG8gdHLDrG5oIGJhb1xuIgorIiAgcCAgICAgICAgICAgICAgICAgICAgICAgxJFpIHbhu4EgdOG6rXAgdGluIHRyxrDhu5tjXG4iCisiICBuICAgICAgICAgICAgICAgICAgICAgICDEkWkgdOG7m2kgdOG6rXAgdGluIGvhur8gdGnhur9wXG4iCisiXG4iCisiTmhp4buBdSBjw6J1IGzhu4duaCBjxaluZyBjaOG6pXAgbmjhuq1uIHPhu5EgxJFpIHRyxrDhu5tjLCB2LmQuXG4iCisiKzE8ZMOybmdfbeG7m2k+ICh0cmFuZyBr4bq/IHRp4bq/cCk7IC0xPGTDsm5nX23hu5tpPiAodHJhbmcgdHLGsOG7m2MpOyAxPGTDsm5nX23hu5tpPiAodHJhbmcgIgorIsSR4bqndSkuXG4iCisiXG4iCisiWGVtIHBnKDEpIMSR4buDIHTDrG0gdGjDqm0gdGjDtG5nIHRpbi5cbiIKKyItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMjMKK21zZ2lkICJPdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIktow7RuZyDEkeG7pyBi4buZIG5o4bubXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKyIlczogU+G7rSBk4bulbmc6ICVzIFstc+G7kV0gWy1wIGNodeG7l2ldIFstY2VmbnJzXSBbK2TDsm5nXSBbKy9wYXR0ZXJuL10gIgorIltjw6FjX3Thuq1wdGluXVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQgLS0gJXNcbiIKK21zZ3N0ciAiJXM6IHTDuXkgY2jhu41uIHnDqnUgY+G6p3UgbeG7mXQgdGhhbSBz4buRIC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVzXG4iCittc2dzdHIgIiVzOiB0w7l5IGNo4buNbiBraMO0bmcgY2hvIHBow6lwIC0tICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzAKK21zZ2lkICIuLi5za2lwcGluZyBmb3J3YXJkXG4iCittc2dzdHIgIi4uLm5o4bqjeSB24buBIHRyxrDhu5tjXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzIKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIuLi5uaOG6o3kgcXVheSBs4bqhaVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6Mzk0Cittc2dpZCAiTm8gbmV4dCBmaWxlIgorbXNnc3RyICJLaMO0bmcgY8OzIHThuq1wIHRpbiB0aeG6v3AgdGhlbyIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIktow7RuZyBjw7MgdOG6rXAgdGluIHRyxrDhu5tjIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBSZWFkIGVycm9yIGZyb20gJXMgZmlsZVxuIgorbXNnc3RyICIlczogTOG7l2kgxJHhu41jIHThu6sgdOG6rXAgdGluICVzXG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuZXhwZWN0ZWQgRU9GIGluICVzIGZpbGVcbiIKK21zZ3N0ciAiJXM6IEVPRiAoS+G6v3QgdGjDumMpIGtow7RuZyBtb25nIMSR4bujaSB0cm9uZyB04bqtcCB0aW4gJXNcbiIKKworIzogdGV4dC11dGlscy9wZy5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBlcnJvciBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiVzOiBM4buXaSBraMO0bmcgcsO1IHRyb25nIHThuq1wIHRpbiAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTAzNQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2Fubm90IGNyZWF0ZSB0ZW1wZmlsZVxuIgorbXNnc3RyICIlczogS2jDtG5nIHThuqFvIMSRxrDhu6NjIHThuq1wIHRpbiB04bqhbSB0aOG7nWkgKHRlbXBmaWxlKVxuIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTA0NCB0ZXh0LXV0aWxzL3BnLmM6MTIxOSB0ZXh0LXV0aWxzL3BnLmM6MTI0NgorbXNnaWQgIlJFIGVycm9yOiAiCittc2dzdHIgIkzhu5dpIFJFOiAiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxMjAxCittc2dpZCAiKEVPRikiCittc2dzdHIgIihL4bq/dCB0aMO6YyB04bqtcCB0aW4pIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAiS2jDtG5nIGPDsyBjaHXhu5dpIHTDrG0ga2nhur9tIGdoaSBuaOG7myBuw6BvIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAiS2jDtG5nIG3hu58gxJHGsOG7o2MgIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICLEkcOjIGdoaSIKKworIzogdGV4dC11dGlscy9wZy5jOjE0NjUKK21zZ2lkICI6ICFjb21tYW5kIG5vdCBhbGxvd2VkIGluIHJmbGFnIG1vZGUuXG4iCittc2dzdHIgIjogIWPDonVs4buHbmgga2jDtG5nIGNobyBwaMOpcCB0cm9uZyBjaOG6vyDEkeG7mSByZmxhZy5cbiIKKworIzogdGV4dC11dGlscy9wZy5jOjE0OTcKK21zZ2lkICJmb3JrKCkgZmFpbGVkLCB0cnkgYWdhaW4gbGF0ZXJcbiIKK21zZ3N0ciAiZm9yaygpIGtow7RuZyB0aMOgbmggY8O0bmcsIGjDo3kgdGjhu60gbOG6oWkgc2F1XG4iCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNzA1Cittc2dpZCAiKE5leHQgZmlsZTogIgorbXNnc3RyICIoVOG6rXAgdGluIHRp4bq/cCB0aGVvOiAiCisKKyM6IHRleHQtdXRpbHMvcmV2LmM6MTEzCittc2dpZCAidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIgorbXNnc3RyICJraMO0bmcgdGjhu4MgY+G6pXAgcGjDoXQga2jDtG5nIGdpYW4gxJHhu4dtIgorCisjOiB0ZXh0LXV0aWxzL3Jldi5jOjE0MworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogcmV2IFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAic+G7rSBk4bulbmc6IHJldiBbdOG6rXB0aW4gLi4uXVxuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6NTggdGV4dC11dGlscy90YWlsZi5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIKK21zZ3N0ciAia2jDtG5nIG3hu58gxJHGsOG7o2MgwqsgJXMgwrsgxJHhu4MgxJHhu41jIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6OTYgdGV4dC11dGlscy90YWlsZi5jOjIxNQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBcIiVzXCIiCittc2dzdHIgImtow7RuZyB0aOG7gyBs4bqleSB0cuG6oW5nIHRow6FpIHbhu4EgwqsgJXMgwrsiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5jb21wbGV0ZSB3cml0ZSB0byBcIiVzXCIgKHdyaXR0ZW4gJXpkLCBleHBlY3RlZCAlemQpXG4iCittc2dzdHIgImdoaSBraMO0bmcgaG/DoG4gdG/DoG4gdsOgbyDCqyAlcyDCuyAoxJHDoyBnaGkgJXpkLCBtb25nIMSR4bujaSAlemQpXG4iCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAobGltaXQgb2YgaW5vdGlmeSB3YXRjaGVzIHdhcyByZWFjaGVkKS4iCittc2dzdHIgIiIKKyIlczoga2jDtG5nIHRo4buDIHRow6ptIHPhu7EgdGhlbyBkw7VpIGlub3RpZnkgKMSRw6MgdOG7m2kgZ2nhu5tpIGjhuqFuIGPDoWMgc+G7sSBnaeG7m2kgaOG6oW4gIgorImlub3RpZnkpLiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIKK21zZ3N0ciAiJXM6IGtow7RuZyB0aOG7gyB0aMOqbSBz4buxIHRoZW8gZMO1aSBpbm90aWZ5LiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHJlYWQgaW5vdGlmeSBldmVudHMiCittc2dzdHIgIiVzOiBraMO0bmcgdGjhu4MgxJHhu41jIHPhu7Ega2nhu4duIGlub3RpZnkiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxOTkgdGV4dC11dGlscy90YWlsZi5jOjIwMworbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIGxpbmVzIgorbXNnc3RyICJz4buRIGTDsm5nIHNhaSIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjIxMAorbXNnaWQgInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIgorbXNnc3RyICJz4butIGThu6VuZzogdGFpbGYgWy1uIE4gfCAtTl0gdOG6rXBfdGluX2doaV9sxrB1IgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSBmaWxlLi4uXG4iCittc2dzdHIgInPhu60gZOG7pW5nOiAlcyBbIC1pIF0gWyAtdFRlcm0gXSB04bqtcF90aW4uLi5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ0cm91YmxlIHJlYWRpbmcgdGVybWluZm8iCittc2dzdHIgImPDsyB24bqlbiDEkeG7gSBraGkgxJHhu41jIHRlcm1pbmZvIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6MjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gZXNjYXBlIHNlcXVlbmNlIGluIGlucHV0OiAlbywgJW9cbiIKK21zZ3N0ciAiQ2h14buXaSB0aG/DoXQga2jDtG5nIHLDtSB0cm9uZyBk4buvIGxp4buHdSB2w6BvOiAlbywgJW9cbiIKKworIzogdGV4dC11dGlscy91bC5jOjQyNQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyLlxuIgorbXNnc3RyICJLaMO0bmcgcGjDom4gcGjhu5FpIMSRxrDhu6NjIGLhu5kgxJHhu4dtLlxuIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIkTDsm5nIG5o4bqtcCB2w6BvIHF1w6EgZMOgaS5cbiIKKworIzogdGV4dC11dGlscy91bC5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoZW4gZ3Jvd2luZyBidWZmZXIuXG4iCittc2dzdHIgIktow7RuZyDEkeG7pyBi4buZIG5o4bubIGtoaSB0xINuZyB2w7luZyDEkeG7h20uXG4iCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby96aF9DTi5nbW8gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby96aF9DTi5nbW8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM2MjNkNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3poX0NOLmdtbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby96aF9DTi5wbyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3BvL3poX0NOLnBvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMzVlMGUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9wby96aF9DTi5wbwpAQCAtMCwwICsxLDExMjE0IEBACisjIHRyYW5zbGF0aW9uIG9mIHV0aWwtbGludXgtbmctMi4xNC4xLXJjMi5wbyB0bworIyBDb3B5cmlnaHQgKEMpIDIwMDgKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZS4KKyMKKyMgUmF5IFdhbmcgPHdhbmdsZWkxMTIzQGdtYWlsLmNvbT4sIDIwMDguCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiB1dGlsLWxpbnV4LW5nLTIuMTQuMS1yYzJcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+XG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDMtMjIgMDk6MzcrMDEwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDgtMDgtMjMgMjM6MjArMDgwMFxuIgorIkxhc3QtVHJhbnNsYXRvcjogUmF5IFdhbmcgPHdhbmdsZWkxMTIzQGdtYWlsLmNvbT5cbiIKKyJMYW5ndWFnZS1UZWFtOiBDaGluZXNlIChzaW1wbGlmaWVkKSA8aTE4bi16aEBnb29nbGVncm91cHMuY29tPlxuIgorIk1JTUUtVmVyc2lvbjogMS4wXG4iCisiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XG4iCisiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgorIlgtR2VuZXJhdG9yOiBwb2VkaXQtMS4zLjktMy4zXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo2MworbXNnaWQgInNldCByZWFkLW9ubHkiCittc2dzdHIgIuiuvue9ruWPquivuyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjcwCittc2dpZCAic2V0IHJlYWQtd3JpdGUiCittc2dzdHIgIuiuvue9ruivu+WGmSIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjc2Cittc2dpZCAiZ2V0IHJlYWQtb25seSIKK21zZ3N0ciAi6I635b6X5Y+q6K+7IgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODIKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IGxvZ2ljYWwgYmxvY2sgKHNlY3Rvcikgc2l6ZSIKK21zZ3N0ciAi6I635b6X5q615aSn5bCPIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6ODgKKyMsIGZ1enp5Cittc2dpZCAiZ2V0IHBoeXNpY2FsIGJsb2NrIChzZWN0b3IpIHNpemUiCittc2dzdHIgIuiOt+W+l+auteWkp+WwjyIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjk0Cittc2dpZCAiZ2V0IG1pbmltdW0gSS9PIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjEwMAorbXNnaWQgImdldCBvcHRpbWFsIEkvTyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMDYKK21zZ2lkICJnZXQgYWxpZ25tZW50IG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTEyCittc2dpZCAiZ2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMTgKK21zZ2lkICJnZXQgYmxvY2tzaXplIgorbXNnc3RyICLojrflvpflnZflpKflsI8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMjUKK21zZ2lkICJzZXQgYmxvY2tzaXplIgorbXNnc3RyICLorr7nva7lnZflpKflsI8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzEKK21zZ2lkICJnZXQgMzItYml0IHNlY3RvciBjb3VudCIKK21zZ3N0ciAi6I635b6XIDMyLWJpdCDmrrXmlbDph48iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxMzcKK21zZ2lkICJnZXQgc2l6ZSBpbiBieXRlcyIKK21zZ3N0ciAi6I635b6X5a2X6IqC5aSn5bCPIgorCisjIGZ1enp5CisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTQ0Cittc2dpZCAic2V0IHJlYWRhaGVhZCIKK21zZ3N0ciAi6K6+572uIHJlYWRhaGVhZCIKKworIyBmdXp6eQorIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE1MAorbXNnaWQgImdldCByZWFkYWhlYWQiCittc2dzdHIgIuiOt+WPliByZWFkYWhlYWQiCisKKyMgZnV6enkKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNTcKK21zZ2lkICJzZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgIuiuvue9ruaWh+S7tuezu+e7nyByZWFkYWhlYWQiCisKKyMgZnV6enkKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjMKK21zZ2lkICJnZXQgZmlsZXN5c3RlbSByZWFkYWhlYWQiCittc2dzdHIgIuiOt+WPluaWh+S7tuezu+e7nyByZWFkYWhlYWQiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNjcKK21zZ2lkICJmbHVzaCBidWZmZXJzIgorbXNnc3RyICLliLfmlrDnvJPlrZgiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzEKK21zZ2lkICJyZXJlYWQgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICLph43mlrDor7vlj5bliIbljLrooagiCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6XG4iCittc2dzdHIgIueUqOazlTpcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorbXNnc3RyICIgICVzIC0tcmVwb3J0IFtkZXZpY2VzXVxuIgorCisjOiBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgJXMgWy12fC1xXSBjb21tYW5kcyBkZXZpY2VzXG4iCittc2dzdHIgIiAgJXMgWy12fC1xXSBjb21tYW5kcyBkZXZpY2VzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXZhaWxhYmxlIGNvbW1hbmRzOlxuIgorbXNnc3RyICLlj6/nlKjnmoTlkb3ku6Q6XG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzoxODcKK21zZ2lkICJnZXQgc2l6ZSBpbiA1MTItYnl0ZSBzZWN0b3JzIgorbXNnc3RyICLojrflvpc1MTLlrZfoioLnmoTmrrXlpKflsI8iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVua25vd24gY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiJXM6IOacquefpeWRveS7pDogJXNcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjMzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgorbXNnc3RyICIlcyDpnIDopoHkuIDkuKrlj4LmlbBcbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM3NQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmYWlsZWQuXG4iCittc2dzdHIgIiVzIOWksei0pS5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjM4MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBzdWNjZWVkZWQuXG4iCittc2dzdHIgIiVzIOaIkOWKny5cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQyNyBkaXNrLXV0aWxzL2Jsb2NrZGV2LmM6NDU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIlczog5LiN6IO95omT5byAICVzXG4iCisKKyM6IGRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlvY3RsIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiVzOiAlcyBpb2N0bCDplJnor69cbiIKKworIzogZGlzay11dGlscy9ibG9ja2Rldi5jOjQ4MQorIywgYy1mb3JtYXQKK21zZ2lkICJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIFN0YXJ0U2VjICAgICAgICAgICAgU2l6ZSAgIERldmljZVxuIgorbXNnc3RyICJSTyAgICBSQSAgIFNTWiAgIEJTWiAgIOW8gOWni+autSAgICAgICAgICAgIOWkp+WwjyAgIOiuvuWkh1xuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTpcbiIKK21zZ3N0ciAi55So5rOVOlxuIgorCisjOiBkaXNrLXV0aWxzL2VsdnR1bmUuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJcdE5PVEU6IGVsdnR1bmUgb25seSB3b3JrcyB3aXRoIDIuNCBrZXJuZWxzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTA0CisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnNlIGVycm9yXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9lbHZ0dW5lLmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1pc3NpbmcgYmxvY2tkZXZpY2UsIHVzZSAtaCBmb3IgaGVscFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZWx2dHVuZS5jOjEzMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZWx2dHVuZSBpcyBvbmx5IHVzZWZ1bCBvbiBvbGRlciBrZXJuZWxzO1xuIgorImZvciAyLjYgdXNlIElPIHNjaGVkdWxlciBzeXNmcyB0dW5hYmxlcyBpbnN0ZWFkLi5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRm9ybWF0dGluZyAuLi4gIgorbXNnc3RyICLmraPlnKjmoLzlvI/ljJYgLi4uICIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjQ5IGRpc2stdXRpbHMvZmRmb3JtYXQuYzo4NgorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgIuWujOaIkFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmVyaWZ5aW5nIC4uLiAiCittc2dzdHIgIuato+WcqOmqjOivgSAuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzEKK21zZ2lkICJSZWFkOiAiCittc2dzdHIgIuivuzogIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJvYmxlbSByZWFkaW5nIGN5bGluZGVyICVkLCBleHBlY3RlZCAlZCwgcmVhZCAlZFxuIgorbXNnc3RyICLor7vmn7HpnaIgJWQg5pe25pyJ6Zeu6aKYLCDmnJ/mnJsgJWQsIOivu+WPliAlZFxuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImJhZCBkYXRhIGluIGN5bCAlZFxuIgorIkNvbnRpbnVpbmcgLi4uICIKK21zZ3N0ciAiIgorIuS4jeato+ehrueahOaVsOaNruWcqOafsemdoiAlZFxuIgorIue7p+e7rSAuLi4gIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLW4gXSBkZXZpY2VcbiIKK21zZ3N0ciAi55So5rOVOiAlcyBbIC1uIF0gZGV2aWNlXG4iCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxMTggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI4NAorIzogZGlzay11dGlscy9pc29zaXplLmM6MTgxIGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMTQgZGlzay11dGlscy9ta2ZzLmM6NTIKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4MTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTcyCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ4NyBtaXNjLXV0aWxzL2RkYXRlLmM6MTc5IG1pc2MtdXRpbHMvcmVuYW1lLmM6NzkKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTQ3IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICIlcyAoJXMpXG4iCittc2dzdHIgIiVzICglcylcbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm90IGEgYmxvY2sgZGV2aWNlXG4iCittc2dzdHIgIiVzOuS4jeaYr+S4gOS4quWdl+iuvuWkh1xuIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQyCittc2dpZCAiQ291bGQgbm90IGRldGVybWluZSBjdXJyZW50IGZvcm1hdCB0eXBlIgorbXNnc3RyICLkuI3og73lhrPlrprlvZPliY3moLzlvI/nsbvlnosiCisKKyM6IGRpc2stdXRpbHMvZmRmb3JtYXQuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMtc2lkZWQsICVkIHRyYWNrcywgJWQgc2VjL3RyYWNrLiBUb3RhbCBjYXBhY2l0eSAlZCBrQi5cbiIKK21zZ3N0ciAiJXMt6Z2iLCAlZCDno4HpgZMsICVkIOenki/no4HpgZMuIOaAu+WuuemHjyAlZCBrQi5cbiIKKworIzogZGlzay11dGlscy9mZGZvcm1hdC5jOjE0NAorbXNnaWQgIkRvdWJsZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZkZm9ybWF0LmM6MTQ0Cittc2dpZCAiU2luZ2xlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInVzYWdlOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAgcHJpbnQgdGhpcyBoZWxwXG4iCisiIC14IGRpciAgICAgZXh0cmFjdCBpbnRvIGRpclxuIgorIiAtdiAgICAgICAgIGJlIG1vcmUgdmVyYm9zZVxuIgorIiBmaWxlICAgICAgIGZpbGUgdG8gdGVzdFxuIgorbXNnc3RyICIiCisi55So5rOVOiAlcyBbLWh2XSBbLXggZGlyXSBmaWxlXG4iCisiIC1oICAgICAgICAg5omT5Y2w5biu5Yqp5L+h5oGvXG4iCisiIC14IGRpciAgICAg6Kej5byA5YiwIGRpciDnm67lvZVcbiIKKyIgLXYgICAgICAgICDmm7TlpJrovpPlh7rkv6Hmga9cbiIKKyIgZmlsZSAgICAgICDnlKjkuo7mtYvor5XnmoTmlofku7ZcbiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE2MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3RhdCBmYWlsZWQ6ICVzIgorbXNnc3RyICIlcyDlpLHotKUuXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNjcgZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAib3BlbiBmYWlsZWQ6ICVzIgorbXNnc3RyICLmn6Xmib7lpLHotKUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoxNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwgZmFpbGVkOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGRldmljZSBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTgwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJub3QgYSBibG9jayBkZXZpY2Ugb3IgZmlsZTogJXMiCittc2dzdHIgIiVzOuS4jeaYr+S4gOS4quWdl+iuvuWkh1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTg0IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjYKK21zZ2lkICJmaWxlIGxlbmd0aCB0b28gc2hvcnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjE4OSBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MTk3CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjU4IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyNzgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInJlYWQgZmFpbGVkOiAlcyIKK21zZ3N0ciAi5p+l5om+5aSx6LSlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjA3Cittc2dpZCAic3VwZXJibG9jayBtYWdpYyBub3QgZm91bmQiCittc2dzdHIgIiIKKworIyBmdXp6eQorIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjIxNgorIywgZnV6enkKK21zZ2lkICJ1bnN1cHBvcnRlZCBmaWxlc3lzdGVtIGZlYXR1cmVzIgorbXNnc3RyICLorr7nva7mlofku7bns7vnu58gcmVhZGFoZWFkIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgInN1cGVyYmxvY2sgc2l6ZSAoJWQpIHRvbyBzbWFsbCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjIzCittc2dpZCAiemVybyBmaWxlIGNvdW50IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzoyMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZSBleHRlbmRzIHBhc3QgZW5kIG9mIGZpbGVzeXN0ZW1cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IG9sZCBjcmFtZnMgZm9ybWF0XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI0NgorbXNnaWQgInVuYWJsZSB0byB0ZXN0IENSQzogb2xkIGNyYW1mcyBmb3JtYXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI3MiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzM5CisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDc3IGxvZ2luLXV0aWxzL2NoZm4uYzo1MjkgbG9naW4tdXRpbHMvY2hzaC5jOjQzOQorIzogbWlzYy11dGlscy93aXBlZnMuYzoxNDEgc3lzLXV0aWxzL2N5dHVuZS5jOjMyMQorbXNnaWQgIm1hbGxvYyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjI5NworIywgZnV6enkKK21zZ2lkICJjcmMgZXJyb3IiCittc2dzdHIgIuWGhemDqOmUmeivryIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjM2NAorIywgZnV6enkKK21zZ2lkICJyb290IGlub2RlIGlzIG5vdCBkaXJlY3RvcnkiCittc2dzdHIgIuaguSBpbm9kZSDkuI3mmK/kuIDkuKrnm67lvZUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHJvb3Qgb2Zmc2V0ICglbHUpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzozODcKK21zZ2lkICJkYXRhIGJsb2NrIHRvbyBsYXJnZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6MzkxCisjLCBjLWZvcm1hdAorbXNnaWQgImRlY29tcHJlc3Npb24gZXJyb3IgJXAoJWQpOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgaG9sZSBhdCAlbGQgKCV6ZClcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDIzIGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICB1bmNvbXByZXNzaW5nIGJsb2NrIGF0ICVsZCB0byAlbGQgKCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDI5CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1ibG9jayAoJWxkKSBieXRlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDMzCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbi1zaXplICglbGQgdnMgJWxkKSBieXRlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDM5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGZhaWxlZDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICJsY2hvd24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NDU4CisjLCBjLWZvcm1hdAorbXNnaWQgImNob3duIGZhaWxlZDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ2NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1dGltZSBmYWlsZWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGlyZWN0b3J5IGlub2RlIGhhcyB6ZXJvIG9mZnNldCBhbmQgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjQ5NAorIywgYy1mb3JtYXQKK21zZ2lkICJta2RpciBmYWlsZWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1MTEKK21zZ2lkICJmaWxlbmFtZSBsZW5ndGggaXMgemVybyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTE0Cittc2dpZCAiYmFkIGZpbGVuYW1lIGxlbmd0aCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTIxCittc2dpZCAiYmFkIGlub2RlIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTM3Cittc2dpZCAiZmlsZSBpbm9kZSBoYXMgemVybyBvZmZzZXQgYW5kIG5vbi16ZXJvIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjU0MAorbXNnaWQgImZpbGUgaW5vZGUgaGFzIHplcm8gc2l6ZSBhbmQgbm9uLXplcm8gb2Zmc2V0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1NzEKK21zZ2lkICJzeW1ib2xpYyBsaW5rIGhhcyB6ZXJvIG9mZnNldCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NTc0Cittc2dpZCAic3ltYm9saWMgbGluayBoYXMgemVybyBzaXplIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAic2l6ZSBlcnJvciBpbiBzeW1saW5rOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjAxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzeW1saW5rIGZhaWxlZDogJXMiCittc2dzdHIgIuafpeaJvuWksei0pSIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYxMworIywgYy1mb3JtYXQKK21zZ2lkICJzcGVjaWFsIGZpbGUgaGFzIG5vbi16ZXJvIG9mZnNldDogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYyNQorIywgYy1mb3JtYXQKK21zZ2lkICJmaWZvIGhhcyBub24temVybyBzaXplOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldCBoYXMgbm9uLXplcm8gc2l6ZTogJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJib2d1cyBtb2RlOiAlcyAoJW8pIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtub2QgZmFpbGVkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLmM6NjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImRpcmVjdG9yeSBkYXRhIHN0YXJ0ICglbGQpIDwgc2l6ZW9mKHN0cnVjdCBjcmFtZnNfc3VwZXIpICsgc3RhcnQgKCVsZCkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjY4NQorIywgYy1mb3JtYXQKK21zZ2lkICJkaXJlY3RvcnkgZGF0YSBlbmQgKCVsZCkgIT0gZmlsZSBkYXRhIHN0YXJ0ICglbGQpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5jcmFtZnMuYzo2OTAKK21zZ2lkICJpbnZhbGlkIGZpbGUgZGF0YSBvZmZzZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcxNAorIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgb3V0YnVmZmVyIgorbXNnc3RyICLkuI3og73kuLogaW5vZGVzIOWIhumFjee8k+WGsuWMuiIKKworIzogZGlzay11dGlscy9mc2NrLmNyYW1mcy5jOjcyNworbXNnaWQgImNvbXBpbGVkIHdpdGhvdXQgLXggc3VwcG9ydCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoyMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstbGFydnNtZl0gL2Rldi9uYW1lXG4iCittc2dzdHIgIueUqOazlTogJXMgWy1sYXJ2c21mXSAvZGV2L25hbWVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQuXHQgIgorbXNnc3RyICIlcyDlt7Lnu4/mjILovb0uXHQiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjMyNQorbXNnaWQgIkRvIHlvdSByZWFsbHkgd2FudCB0byBjb250aW51ZSIKK21zZ3N0ciAi5L2g56Gu6K6k6KaB57un57utIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hlY2sgYWJvcnRlZC5cbiIKK21zZ3N0ciAi5qOA5p+l5aSx6LSlLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNDggZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPCBGSVJTVFpPTkUgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTIgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgbnIgPj0gWk9ORVMgaW4gZmlsZSBgJXMnLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzozNTcgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MzgwCittc2dpZCAiUmVtb3ZlIGJsb2NrIgorbXNnc3RyICLliKDpmaTlnZciCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIGVycm9yOiB1bmFibGUgdG8gc2VlayB0byBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAi6K+75Y+W6ZSZ6K+vOiDkuI3og73lnKjmlofku7YgJyVzJyDkuK3mn6Xmib7liLDor6XlnZdcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAi6K+75Y+W6ZSZ6K+vOiDmlofku7YgJyVzJyDkuK3mnInlnY/lnZdcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJbnRlcm5hbCBlcnJvcjogdHJ5aW5nIHRvIHdyaXRlIGJhZCBibG9ja1xuIgorIldyaXRlIHJlcXVlc3QgaWdub3JlZFxuIgorbXNnc3RyICIiCisi5YaF6YOo6ZSZ6K+vOiDor5Xlm77lhpnlnY/lnZdcbiIKKyLlhpnor7fmsYLlv73nlaVcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NDI1IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjIwNworbXNnaWQgInNlZWsgZmFpbGVkIGluIHdyaXRlX2Jsb2NrIgorbXNnc3RyICLlnKggd3JpdGVfYmxvY2sg5Lit5p+l5om+5aSx6LSlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo0MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGUgZXJyb3I6IGJhZCBibG9jayBpbiBmaWxlICclcydcbiIKK21zZ3N0ciAi5YaZ5YWl6ZSZ6K+vOiDmlofku7YgJyVzJyDkuK3mnInlnY/lnZdcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTQ0Cittc2dpZCAic2VlayBmYWlsZWQgaW4gd3JpdGVfc3VwZXJfYmxvY2siCittc2dzdHIgIuWcqCB3cml0ZV9zdXBlcl9ibG9jayDkuK3mn6Xmib7lpLHotKUiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU0NiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgc3VwZXItYmxvY2siCittc2dzdHIgIuS4jeiDveWGmei2hee6p+WdlyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NTU2CisjLCBmdXp6eQorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbm9kZSBtYXAiCittc2dzdHIgIuS4jeiDveWGmSBpbm9kZSBtYXAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjU1OAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSB6b25lIG1hcCIKK21zZ3N0ciAi5LiN6IO95YaZIHpvbmUgbWFwIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1NjAKK21zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5vZGVzIgorbXNnc3RyICLkuI3og73lhpkgaW5vZGVzIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1ODcKK21zZ2lkICJzZWVrIGZhaWxlZCIKK21zZ3N0ciAi5p+l5om+5aSx6LSlIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTEgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6Mzk5CisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBhbGxvYyBidWZmZXIgZm9yIHN1cGVyYmxvY2siCittc2dzdHIgIuS4jeiDveS4uiBpbm9kZXMg5YiG6YWN57yT5Yay5Yy6IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo1OTQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCBzdXBlciBibG9jayIKK21zZ3N0ciAi5LiN6IO96K+76LaF57qn5Z2XIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MTIKK21zZ2lkICJiYWQgbWFnaWMgbnVtYmVyIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNAorbXNnaWQgIk9ubHkgMWsgYmxvY2tzL3pvbmVzIHN1cHBvcnRlZCIKK21zZ3N0ciAi5Y+q5pSv5oyBIDFrIOWdly/ljLoiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxNgorbXNnaWQgImJhZCBzX2ltYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICLkuI3mraPnoa7nmoQgc19pbWFwX2Jsb2NrcyDln5/lnKjotoXnuqflnZfkuK0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYxOAorbXNnaWQgImJhZCBzX3ptYXBfYmxvY2tzIGZpZWxkIGluIHN1cGVyLWJsb2NrIgorbXNnc3RyICLkuI3mraPnoa7nmoQgc196bWFwX2Jsb2NrcyDln5/lnKjotoXnuqflnZfkuK0iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyNQorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlIG1hcCIKK21zZ3N0ciAi5LiN6IO95Li6IGlub2RlIG1hcCDliIbphY3nvJPlhrLljLoiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjYyOAorbXNnaWQgIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIHpvbmUgbWFwIgorbXNnc3RyICLkuI3og73kuLogem9uZSBtYXAg5YiG6YWN57yT5Yay5Yy6IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZXMiCittc2dzdHIgIuS4jeiDveS4uiBpbm9kZXMg5YiG6YWN57yT5Yay5Yy6IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2MzYKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBpbm9kZSBjb3VudCIKK21zZ3N0ciAi5LiN6IO95Li6IGlub2RlIGNvdW50IOWIhumFjee8k+WGsuWMuiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjM5Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlciBmb3Igem9uZSBjb3VudCIKK21zZ3N0ciAi5LiN6IO95Li6IHpvbmUgY291bnQg5YiG6YWN57yT5Yay5Yy6IgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NDEKK21zZ2lkICJVbmFibGUgdG8gcmVhZCBpbm9kZSBtYXAiCittc2dzdHIgIuS4jeiDveivuyBpbm9kZSBtYXAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0MworbXNnaWQgIlVuYWJsZSB0byByZWFkIHpvbmUgbWFwIgorbXNnc3RyICLkuI3og73or7sgem9uZSBtYXAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY0NQorbXNnaWQgIlVuYWJsZSB0byByZWFkIGlub2RlcyIKK21zZ3N0ciAi5LiN6IO96K+7IGlub2RlcyIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorbXNnc3RyICLorablkYo6IEZpcnN0em9uZSAhPSBOb3JtX2ZpcnN0em9uZVxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTIgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBpbm9kZXNcbiIKK21zZ3N0ciAiJWxkIGlub2Rlc1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVsZCBibG9ja3NcbiIKK21zZ3N0ciAiJWxkIOWdl1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2NTQgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCittc2dzdHIgIkZpcnN0ZGF0YXpvbmU9JWxkICglbGQpXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NSBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZXNpemU9JWRcbiIKK21zZ3N0ciAiWm9uZXNpemU9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heHNpemU9JWxkXG4iCittc2dzdHIgIk1heHNpemU9JWxkXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGaWxlc3lzdGVtIHN0YXRlPSVkXG4iCittc2dzdHIgIkZpbGVzeXN0ZW0gc3RhdGU9JWRcbiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJuYW1lbGVuPSVkXG4iCisiXG4iCittc2dzdHIgIiIKKyJuYW1lbGVuPSVkXG4iCisiXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3MyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbWFya2VkIHVudXNlZCwgYnV0IHVzZWQgZm9yIGZpbGUgJyVzJ1xuIgorbXNnc3RyICJJbm9kZSAlZCDmoIforrDkuLrmnKrkvb/nlKgsIOS9hueUqOS6juaWh+S7tiAnJXMnXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjY3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MjgKK21zZ2lkICJNYXJrIGluIHVzZSIKK21zZ3N0ciAi5qCH6K6w5Li65bey5L2/55SoIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo2OTkgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBmaWxlIGAlcycgaGFzIG1vZGUgJTA1b1xuIgorbXNnc3RyICLmlofku7YgYCVzJyDnmoTmqKHlvI8gJTA1b1xuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3MDYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGlub2RlIGNvdW50IHRvbyBiaWcuXG4iCittc2dzdHIgIuitpuWRijogaW5vZGUg6K6h5pWw5aSq5aSnLlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo3NjYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzc0Cittc2dpZCAicm9vdCBpbm9kZSBpc24ndCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAi5qC5IGlub2RlIOS4jeaYr+S4gOS4quebruW9lSIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6Nzg4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMQorIywgYy1mb3JtYXQKK21zZ2lkICJCbG9jayBoYXMgYmVlbiB1c2VkIGJlZm9yZS4gTm93IGluIGZpbGUgYCVzJy4iCittc2dzdHIgIuWdl+W3sue7j+iiq+S9v+eUqCwg546w5Zyo5Zyo5paH5Lu2IGAlcycg5LitLiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6NzkwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgyMworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE0NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTU1CisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTAKK21zZ2lkICJDbGVhciIKK21zZ3N0ciAi5riF6ZmkIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MDAgZGlzay11dGlscy9mc2NrLm1pbml4LmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrICVkIGluIGZpbGUgYCVzJyBpcyBtYXJrZWQgbm90IGluIHVzZS4iCittc2dzdHIgIuaWh+S7tuS4reWdlyAlZCBgJXMnIOagh+iusOS4uuayoeacieS9v+eUqC4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjgwMiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzo4MzUKK21zZ2lkICJDb3JyZWN0IgorbXNnc3RyICLmraPnoa4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBkaXJlY3RvcnkgJyVzJyBjb250YWlucyBhIGJhZCBpbm9kZSBudW1iZXIgZm9yIGZpbGUgJyUuKnMnLiIKK21zZ3N0ciAi55uu5b2VICclcycg5YyF5ZCr5LqG5LiA5Liq5LiN5q2j56Gu55qEIGlub2RlIG51bWJlciDmlofku7YgJyUuKnMnLiAiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk3NyBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDQ0Cittc2dpZCAiIFJlbW92ZSIKK21zZ3N0ciAiIOWIoOmZpCIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6OTkxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEwNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6ICcuJyBpc24ndCBmaXJzdFxuIgorbXNnc3RyICIlczog5LiN5q2j56Gu55qE55uu5b2VOiAnLicg5LiN5piv56ys5LiA5LiqXG4iCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjk5OSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMDY3CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIGRpcmVjdG9yeTogJy4uJyBpc24ndCBzZWNvbmRcbiIKK21zZ3N0ciAiJXM6IOS4jeato+ehrueahOebruW9lTogJy4nIOS4jeaYr+esrOS4gOS4qlxuIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTAxIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMTkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAi5YaF6YOo6ZSZ6K+vIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTA0IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCBkaXJlY3Rvcnk6IHNpemUgPCAzMiIKK21zZ3N0ciAiJXM6IOS4jeato+ehrueahOebruW9lTog5aSn5bCPIDwgMzIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExMzUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBiYWRfem9uZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTQ1IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgbW9kZSBub3QgY2xlYXJlZC4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE1NCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjA5CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIG5vdCB1c2VkLCBtYXJrZWQgdXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYwIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgJWQgdXNlZCwgbWFya2VkIHVudXNlZCBpbiB0aGUgYml0bWFwLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTYyIGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMTYKK21zZ2lkICJTZXQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE2NiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlICVkIChtb2RlID0gJTA3byksIGlfbmxpbmtzPSVkLCBjb3VudGVkPSVkLiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTY4IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyMjIKK21zZ2lkICJTZXQgaV9ubGlua3MgdG8gY291bnQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MCBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIlpvbmUgJWQ6IG1hcmtlZCBpbiB1c2UsIG5vIGZpbGUgdXNlcyBpdC4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTE4MSBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjM2Cittc2dpZCAiVW5tYXJrIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjExODYgZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJab25lICVkOiBpbiB1c2UsIGNvdW50ZWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMTg5IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWm9uZSAlZDogbm90IGluIHVzZSwgY291bnRlZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEyODkgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTc3CisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NzkKK21zZ2lkICJiYWQgaW5vZGUgc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMjkxCittc2dpZCAiYmFkIHYyIGlub2RlIHNpemUiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMxNworbXNnaWQgIm5lZWQgdGVybWluYWwgZm9yIGludGVyYWN0aXZlIHJlcGFpcnMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9mc2NrLm1pbml4LmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAnJXMnOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIGNsZWFuLCBubyBjaGVjay5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQwCisjLCBjLWZvcm1hdAorbXNnaWQgIkZvcmNpbmcgZmlsZXN5c3RlbSBjaGVjayBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbGVzeXN0ZW0gb24gJXMgaXMgZGlydHksIG5lZWRzIGNoZWNraW5nLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiU2bGQgaW5vZGVzIHVzZWQgKCVsZCUlKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTZsZCB6b25lcyB1c2VkICglbGQlJSlcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL2ZzY2subWluaXguYzoxMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyIlNmQgcmVndWxhciBmaWxlc1xuIgorIiU2ZCBkaXJlY3Rvcmllc1xuIgorIiU2ZCBjaGFyYWN0ZXIgZGV2aWNlIGZpbGVzXG4iCisiJTZkIGJsb2NrIGRldmljZSBmaWxlc1xuIgorIiU2ZCBsaW5rc1xuIgorIiU2ZCBzeW1ib2xpYyBsaW5rc1xuIgorIi0tLS0tLVxuIgorIiU2ZCBmaWxlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvZnNjay5taW5peC5jOjEzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyJGSUxFIFNZU1RFTSBIQVMgQkVFTiBDSEFOR0VEXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjEyOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZmFpbGVkIHRvIG9wZW46ICVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzZWVrIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MTUwCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvciBjb3VudDogJWQsIHNlY3RvciBzaXplOiAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvaXNvc2l6ZS5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHBhcnNlIGVycm9yXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9pc29zaXplLmM6MjA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXhdIFstZCA8bnVtPl0gaXNvOTY2MC1pbWFnZVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzIFstdl0gWy1OIG5yLW9mLWlub2Rlc10gWy1WIHZvbHVtZS1uYW1lXVxuIgorIiAgICAgICBbLUYgZnNuYW1lXSBkZXZpY2UgW2Jsb2NrLWNvdW50XVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoxMzAKK21zZ2lkICJ2b2x1bWUgbmFtZSB0b28gbG9uZyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTM3Cittc2dpZCAiZnNuYW1lIG5hbWUgdG9vIGxvbmciCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCBkZXZpY2UgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBpcyBub3QgYSBibG9jayBzcGVjaWFsIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTcxIHN5cy11dGlscy9sZGF0dGFjaC5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgc2l6ZSBvZiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MTg3CisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrcyBhcmd1bWVudCB0b28gbGFyZ2UsIG1heCBpcyAlbGx1IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMDIKK21zZ2lkICJ0b28gbWFueSBpbm9kZXMgLSBtYXggaXMgNTEyIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGVub3VnaCBzcGFjZSwgbmVlZCBhdCBsZWFzdCAlbGx1IGJsb2NrcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjIzIGZkaXNrL2ZkaXNrLmM6MjYzNQorIywgYy1mb3JtYXQKK21zZ2lkICJEZXZpY2U6ICVzXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIyNAorIywgYy1mb3JtYXQKK21zZ2lkICJWb2x1bWU6IDwlLTZzPlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRlNuYW1lOiA8JS02cz5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrU2l6ZTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjI4CisjLCBjLWZvcm1hdAorbXNnaWQgIklub2RlczogJWQgKGluIDEgYmxvY2spXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbm9kZXM6ICVkIChpbiAlbGxkIGJsb2NrcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJsb2NrczogJWxsZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5vZGUgZW5kOiAlZCwgRGF0YSBlbmQ6ICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjIzOQorbXNnaWQgImVycm9yIHdyaXRpbmcgc3VwZXJibG9jayIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYmZzLmM6MjU5Cittc2dpZCAiZXJyb3Igd3JpdGluZyByb290IGlub2RlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjQKK21zZ2lkICJlcnJvciB3cml0aW5nIGlub2RlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNjcKK21zZ2lkICJzZWVrIGVycm9yIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5iZnMuYzoyNzMKK21zZ2lkICJlcnJvciB3cml0aW5nIC4gZW50cnkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI3NworbXNnaWQgImVycm9yIHdyaXRpbmcgLi4gZW50cnkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmJmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBjbG9zaW5nICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jOjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiBta2ZzIFstVl0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIGRldmljZSBbc2l6ZV1cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzo4OCBkaXNrLXV0aWxzL21rZnMuYzo5NiBmZGlzay9jZmRpc2suYzozNTMKKyM6IGdldG9wdC9nZXRvcHQuYzo4NiBnZXRvcHQvZ2V0b3B0LmM6OTYgbG9naW4tdXRpbHMvd2FsbC5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT3V0IG9mIG1lbW9yeSFcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuYzoxMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWtmcyAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjEyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFstaF0gWy12XSBbLWIgYmxrc2l6ZV0gWy1lIGVkaXRpb25dIFstTiBlbmRpYW5dIFstaSBmaWxlXSBbLW4gIgorIm5hbWVdIGRpcm5hbWUgb3V0ZmlsZVxuIgorIiAtaCAgICAgICAgIHByaW50IHRoaXMgaGVscFxuIgorIiAtdiAgICAgICAgIGJlIHZlcmJvc2VcbiIKKyIgLUUgICAgICAgICBtYWtlIGFsbCB3YXJuaW5ncyBlcnJvcnMgKG5vbi16ZXJvIGV4aXQgc3RhdHVzKVxuIgorIiAtYiBibGtzaXplIHVzZSB0aGlzIGJsb2Nrc2l6ZSwgbXVzdCBlcXVhbCBwYWdlIHNpemVcbiIKKyIgLWUgZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIKKyIgLU4gZW5kaWFuICBzZXQgY3JhbWZzIGVuZGlhbm5lc3MgKGJpZ3xsaXR0bGV8aG9zdCksIGRlZmF1bHQgaG9zdFxuIgorIiAtaSBmaWxlICAgIGluc2VydCBhIGZpbGUgaW1hZ2UgaW50byB0aGUgZmlsZXN5c3RlbSAocmVxdWlyZXMgPj0gMi40LjApXG4iCisiIC1uIG5hbWUgICAgc2V0IG5hbWUgb2YgY3JhbWZzIGZpbGVzeXN0ZW1cbiIKKyIgLXAgICAgICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIgorIiAtcyAgICAgICAgIHNvcnQgZGlyZWN0b3J5IGVudHJpZXMgKG9sZCBvcHRpb24sIGlnbm9yZWQpXG4iCisiIC16ICAgICAgICAgbWFrZSBleHBsaWNpdCBob2xlcyAocmVxdWlyZXMgPj0gMi4zLjM5KVxuIgorIiBkaXJuYW1lICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3NlZFxuIgorIiBvdXRmaWxlICAgIG91dHB1dCBmaWxlXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVmVyeSBsb25nICglenUgYnl0ZXMpIGZpbGVuYW1lIGAlcycgZm91bmQuXG4iCisiIFBsZWFzZSBpbmNyZWFzZSBNQVhfSU5QVVRfTkFNRUxFTiBpbiBta2NyYW1mcy5jIGFuZCByZWNvbXBpbGUuICBFeGl0aW5nLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo0NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmlsZXN5c3RlbSB0b28gYmlnLiAgRXhpdGluZy5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIkFJRUVFOiBibG9jayBcImNvbXByZXNzZWRcIiB0byA+IDIqYmxvY2tsZW5ndGggKCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiU2LjJmJSUgKCUrbGQgYnl0ZXMpXHQlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIndhcm5pbmc6IGd1ZXN0aW1hdGUgb2YgcmVxdWlyZWQgc2l6ZSAodXBwZXIgYm91bmQpIGlzICVsbGRNQiwgYnV0IG1heGltdW0gIgorImltYWdlIHNpemUgaXMgJXVNQi4gIFdlIG1pZ2h0IGRpZSBwcmVtYXR1cmVseS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODgwCittc2dpZCAiUk9NIGltYWdlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6ODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkluY2x1ZGluZzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpcmVjdG9yeSBkYXRhOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIkV2ZXJ5dGhpbmc6ICV6ZCBraWxvYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN1cGVyIGJsb2NrOiAlemQgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNSQzogJXhcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBlbm91Z2ggc3BhY2UgYWxsb2NhdGVkIGZvciBST00gaW1hZ2UgKCVsbGQgYWxsb2NhdGVkLCAlenUgdXNlZClcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTMzCittc2dpZCAiUk9NIGltYWdlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9NIGltYWdlIHdyaXRlIGZhaWxlZCAoJXpkICV6ZClcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZpbGVuYW1lcyB0cnVuY2F0ZWQgdG8gMjU1IGJ5dGVzLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmlsZXMgd2VyZSBza2lwcGVkIGR1ZSB0byBlcnJvcnMuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmaWxlIHNpemVzIHRydW5jYXRlZCB0byAlbHVNQiAobWludXMgMSBieXRlKS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLmM6OTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3YXJuaW5nOiB1aWRzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgKFRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgY29uY2Vybi4pXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLmNyYW1mcy5jOjk2MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisid2FybmluZzogZ2lkcyB0cnVuY2F0ZWQgdG8gJXUgYml0cy4gIChUaGlzIG1heSBiZSBhIHNlY3VyaXR5IGNvbmNlcm4uKVxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5jcmFtZnMuYzo5NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IGRldmljZSBudW1iZXJzIHRydW5jYXRlZCB0byAldSBiaXRzLiAgVGhpcyBhbG1vc3QgY2VydGFpbmx5IG1lYW5zXG4iCisidGhhdCBzb21lIGRldmljZSBmaWxlcyB3aWxsIGJlIHdyb25nLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE1NAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jIHwgLWwgZmlsZW5hbWVdIFstblhYXSBbLWlYWF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG1vdW50ZWQ7IHdpbGwgbm90IG1ha2UgYSBmaWxlc3lzdGVtIGhlcmUhIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE4OAorbXNnaWQgInNlZWsgdG8gYm9vdCBibG9jayBmYWlsZWQgaW4gd3JpdGVfdGFibGVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjE5MAorbXNnaWQgInVuYWJsZSB0byBjbGVhciBib290IHNlY3RvciIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTIKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiB3cml0ZV90YWJsZXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MTk2Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlIG1hcCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoxOTgKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgem9uZSBtYXAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjAwCittc2dpZCAidW5hYmxlIHRvIHdyaXRlIGlub2RlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMDkKK21zZ2lkICJ3cml0ZSBmYWlsZWQgaW4gd3JpdGVfYmxvY2siCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MjE3IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjI5MQorIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6MzQwCittc2dpZCAidG9vIG1hbnkgYmFkIGJsb2NrcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzoyMjUKK21zZ2lkICJub3QgZW5vdWdoIGdvb2QgYmxvY2tzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0MAorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXJzIGZvciBtYXBzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ0OQorbXNnaWQgInVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGlub2RlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo0NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk1heHNpemU9JWxkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NDY5Cittc2dpZCAic2VlayBmYWlsZWQgZHVyaW5nIHRlc3Rpbmcgb2YgYmxvY2tzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJXZWlyZCB2YWx1ZXMgaW4gZG9fY2hlY2s6IHByb2JhYmx5IGJ1Z3NcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MDggZGlzay11dGlscy9ta3N3YXAuYzozMTUKK21zZ2lkICJzZWVrIGZhaWxlZCBpbiBjaGVja19ibG9ja3MiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTE3Cittc2dpZCAiYmFkIGJsb2NrcyBiZWZvcmUgZGF0YS1hcmVhOiBjYW5ub3QgbWFrZSBmcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjMgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGJhZCBibG9ja3NcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MjUgZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9uZSBiYWQgYmxvY2tcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzUKK21zZ2lkICJjYW4ndCBvcGVuIGZpbGUgb2YgYmFkIGJsb2NrcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkYmxvY2sgbnVtYmVyIGlucHV0IGVycm9yIG9uIGxpbmUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo1NDAKK21zZ2lkICJjYW5ub3QgcmVhZCBiYWRibG9ja3MgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RydG9sIGVycm9yOiBudW1iZXIgb2YgYmxvY2tzIG5vdCBzcGVjaWZpZWQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjM5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBzdGF0ICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gb3BlbiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGRldGVybWluZSBzZWN0b3Igc2l6ZSBmb3IgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjUyCisjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrIHNpemUgc21hbGxlciB0aGFuIHBoeXNpY2FsIHNlY3RvciBzaXplIG9mICVzIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtmcy5taW5peC5jOjY1NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZGV0ZXJtaW5lIHNpemUgb2YgJXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta2ZzLm1pbml4LmM6NjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIndpbGwgbm90IHRyeSB0byBtYWtlIGZpbGVzeXN0ZW0gb24gJyVzJyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rZnMubWluaXguYzo2NjUKK21zZ2lkICJudW1iZXIgb2YgYmxvY2tzIHRvbyBzbWFsbCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE1NworIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdXNlci1zcGVjaWZpZWQgcGFnZSBzaXplICVkLCBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gdmFsdWUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgc3dhcCBoZWFkZXIgc2l6ZSwgbm8gbGFiZWwgd3JpdHRlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjIwNAorIywgYy1mb3JtYXQKK21zZ2lkICJMYWJlbCB3YXMgdHJ1bmNhdGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGxhYmVsLCAiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdXVpZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLWNdIFstcFBBR0VTWl0gWy1MIGxhYmVsXSBbLVUgVVVJRF0gL2Rldi9uYW1lIFtibG9ja3NdXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzoyOTcKK21zZ2lkICJ0b28gbWFueSBiYWQgcGFnZXMiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMTAgbWlzYy11dGlscy9sb29rLmM6MTgyIG1pc2MtdXRpbHMvc2V0dGVybS5jOjExNzkKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjIwMTYgdGV4dC11dGlscy9tb3JlLmM6MjAyNworbXNnaWQgIk91dCBvZiBtZW1vcnkiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAib25lIGJhZCBwYWdlXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzozMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IGJhZCBwYWdlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDAyIGRpc2stdXRpbHMvbWtzd2FwLmM6NDM5IGRpc2stdXRpbHMvbWtzd2FwLmM6NjU5Cittc2dpZCAidW5hYmxlIHRvIHJld2luZCBzd2FwLWRldmljZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQxMworIywgZnV6enkKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2MgbmV3IGxpYmJsa2lkIHByb2JlIgorbXNnc3RyICLkuI3og73kuLogaW5vZGVzIOWIhumFjee8k+WGsuWMuiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo0MTUKK21zZ2lkICJ1bmFibGUgdG8gYXNzaWduIGRldmljZSB0byBsaWJsa2lkIHByb2JlIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQzCisjLCBmdXp6eQorbXNnaWQgInVuYWJsZSB0byBlcmFzZSBib290Yml0cyBzZWN0b3JzIgorbXNnc3RyICLkuI3og73or7votoXnuqflnZciCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogd2FybmluZzogZG9uJ3QgZXJhc2UgYm9vdGJpdHMgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NDUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAgICAgKCVzIHBhcnRpdGlvbiB0YWJsZSBkZXRlY3RlZCkuICIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIG9uIHdob2xlIGRpc2suICIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgIChjb21waWxlZCB3aXRob3V0IGxpYmJsa2lkKS4gIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiUxJHM6IHdhcm5pbmc6IGlnbm9yZSAtVSAoVVVJRHMgYXJlIHVuc3VwcG9ydGVkIGJ5ICUxJHMpXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IHN1cHBvcnQgc3dhcHNwYWNlIHZlcnNpb24gJWQuXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NDgKK21zZ2lkICJlcnJvcjogVVVJRCBwYXJzaW5nIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjU1OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZXJyb3I6IE5vd2hlcmUgdG8gc2V0IHVwIHN3YXAgb24/XG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzaXplICVsbHUgS2lCIGlzIGxhcmdlciB0aGFuIGRldmljZSBzaXplICVsbHUgS2lCXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo1ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiBzd2FwIGFyZWEgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJWxkIEtpQlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YXJuaW5nOiB0cnVuY2F0aW5nIHN3YXAgYXJlYSB0byAlbGx1IEtpQlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBlcnJvcjogd2lsbCBub3QgdHJ5IHRvIG1ha2Ugc3dhcGRldmljZSBvbiAnJXMnXG4iCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGVycm9yOiAlcyBpcyBtb3VudGVkOyB3aWxsIG5vdCBtYWtlIHN3YXBzcGFjZS5cbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY0OAorbXNnaWQgIlVuYWJsZSB0byBzZXQgdXAgc3dhcC1zcGFjZTogdW5yZWFkYWJsZSIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIHVwIHN3YXBzcGFjZSB2ZXJzaW9uIDEsIHNpemUgPSAlbGx1IEtpQlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlczogdW5hYmxlIHRvIHdyaXRlIHNpZ25hdHVyZSBwYWdlOiAlcyIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY3MworbXNnaWQgImZzeW5jIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL21rc3dhcC5jOjY4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXM6IHVuYWJsZSB0byBvYnRhaW4gc2VsaW51eCBmaWxlIGxhYmVsOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkwCittc2dpZCAidW5hYmxlIHRvIG1hdGNocGF0aGNvbigpIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6NjkzCittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBuZXcgc2VsaW51eCBjb250ZXh0IgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvbWtzd2FwLmM6Njk1Cittc2dpZCAiY291bGRuJ3QgY29tcHV0ZSBzZWxpbnV4IGNvbnRleHQiCittc2dzdHIgIiIKKworIzogZGlzay11dGlscy9ta3N3YXAuYzo3MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuYWJsZSB0byByZWxhYmVsICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6NTAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgICVzICIKK21zZ3N0ciAi55So5rOVOlxuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlICclcycgaXMgY29udHJvbCByYXcgZGV2ICh1c2UgcmF3PE4+IHdoZXJlIDxOPiBpcyBncmVhdGVyIHRoYW4gemVybylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE0NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGxvY2F0ZSBibG9jayBkZXZpY2UgJyVzJyAoJXMpXG4iCittc2dzdHIgIiVzOuS4jeaYr+S4gOS4quWdl+iuvuWkh1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE1MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiRGV2aWNlICclcycgaXMgbm90IGEgYmxvY2sgZGV2XG4iCittc2dzdHIgIiVzOuS4jeaYr+S4gOS4quWdl+iuvuWkh1xuIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjE4NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBtYXN0ZXIgcmF3IGRldmljZSAnIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBsb2NhdGUgcmF3IGRldmljZSAnJXMnICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIxMQorIywgYy1mb3JtYXQKK21zZ2lkICJSYXcgZGV2aWNlICclcycgaXMgbm90IGEgY2hhcmFjdGVyIGRldlxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldmljZSAnJXMnIGlzIG5vdCBhIHJhdyBkZXZcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBxdWVyeWluZyByYXcgZGV2aWNlICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBkaXNrLXV0aWxzL3Jhdy5jOjI0MSBkaXNrLXV0aWxzL3Jhdy5jOjI2MQorIywgYy1mb3JtYXQKK21zZ2lkICJyYXclZDpcdGJvdW5kIHRvIG1ham9yICVkLCBtaW5vciAlZFxuIgorbXNnc3RyICIiCisKKyM6IGRpc2stdXRpbHMvcmF3LmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIHNldHRpbmcgcmF3IGRldmljZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzc4IGZkaXNrL2NmZGlzay5jOjIwODMKK21zZ2lkICJVbnVzYWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzozODAgZmRpc2svY2ZkaXNrLmM6MjA4NQorbXNnaWQgIkZyZWUgU3BhY2UiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MzgzCittc2dpZCAiTGludXggZXh0MiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzozODUKK21zZ2lkICJMaW51eCBleHQzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjM4NworbXNnaWQgIkxpbnV4IFhGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzozODkKK21zZ2lkICJMaW51eCBKRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkxCittc2dpZCAiTGludXggUmVpc2VyRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MzkzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTcKK21zZ2lkICJMaW51eCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzozOTYKK21zZ2lkICJPUy8yIEhQRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mzk4Cittc2dpZCAiT1MvMiBJRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6NDAyCittc2dpZCAiTlRGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo0MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGlzayBoYXMgYmVlbiBjaGFuZ2VkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjQxNworIywgYy1mb3JtYXQKK21zZ2lkICJSZWJvb3QgdGhlIHN5c3RlbSB0byBlbnN1cmUgdGhlIHBhcnRpdGlvbiB0YWJsZSBpcyBjb3JyZWN0bHkgdXBkYXRlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IElmIHlvdSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgYW55XG4iCisiRE9TIDYueCBwYXJ0aXRpb25zLCBwbGVhc2Ugc2VlIHRoZSBjZmRpc2sgbWFudWFsXG4iCisicGFnZSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTYKK21zZ2lkICJGQVRBTCBFUlJPUiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo1MTcKK21zZ2lkICJQcmVzcyBhbnkga2V5IHRvIGV4aXQgY2ZkaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NCBmZGlzay9jZmRpc2suYzo1NzIKK21zZ2lkICJDYW5ub3Qgc2VlayBvbiBkaXNrIGRyaXZlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjU2NgorbXNnaWQgIkNhbm5vdCByZWFkIGRpc2sgZHJpdmUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6NTc0Cittc2dpZCAiQ2Fubm90IHdyaXRlIGRpc2sgZHJpdmUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTE3Cittc2dpZCAiVG9vIG1hbnkgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjIKK21zZ2lkICJQYXJ0aXRpb24gYmVnaW5zIGJlZm9yZSBzZWN0b3IgMCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5MjcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBiZWZvcmUgc2VjdG9yIDAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTMyCittc2dpZCAiUGFydGl0aW9uIGJlZ2lucyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5MzcKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBhZnRlciBlbmQtb2YtZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5NDIKK21zZ2lkICJQYXJ0aXRpb24gZW5kcyBpbiB0aGUgZmluYWwgcGFydGlhbCBjeWxpbmRlciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzo5NjYKK21zZ2lkICJsb2dpY2FsIHBhcnRpdGlvbnMgbm90IGluIGRpc2sgb3JkZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTY5Cittc2dpZCAibG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6OTczCittc2dpZCAiZW5sYXJnZWQgbG9naWNhbCBwYXJ0aXRpb25zIG92ZXJsYXAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTAwMworbXNnaWQgIiIKKyIhISEhIEludGVybmFsIGVycm9yIGNyZWF0aW5nIGxvZ2ljYWwgZHJpdmUgd2l0aCBubyBleHRlbmRlZCBwYXJ0aXRpb24gISEhISIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxMDE0IGZkaXNrL2NmZGlzay5jOjEwMjYKK21zZ2lkICIiCisiQ2Fubm90IGNyZWF0ZSBsb2dpY2FsIGRyaXZlIGhlcmUgLS0gd291bGQgY3JlYXRlIHR3byBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjExNjgKK21zZ2lkICJNZW51IGl0ZW0gdG9vIGxvbmcuIE1lbnUgbWF5IGxvb2sgb2RkLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxMjI0Cittc2dpZCAiTWVudSB3aXRob3V0IGRpcmVjdGlvbi4gRGVmYXVsdGluZyB0byBob3Jpem9udGFsLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxMzU2Cittc2dpZCAiSWxsZWdhbCBrZXkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTM3OQorbXNnaWQgIlByZXNzIGEga2V5IHRvIGNvbnRpbnVlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjYgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg2CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiUHJpbWFyeSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI2Cittc2dpZCAiQ3JlYXRlIGEgbmV3IHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjcgZmRpc2svY2ZkaXNrLmM6MjA1NCBmZGlzay9jZmRpc2suYzoyNTg1CisjOiBmZGlzay9jZmRpc2suYzoyNTg4Cittc2dpZCAiTG9naWNhbCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDI3Cittc2dpZCAiQ3JlYXRlIGEgbmV3IGxvZ2ljYWwgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MyBmZGlzay9jZmRpc2suYzoyMjU5Cittc2dpZCAiQ2FuY2VsIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0MjggZmRpc2svY2ZkaXNrLmM6MTQ4MworbXNnaWQgIkRvbid0IGNyZWF0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ0Cittc2dpZCAiISEhIEludGVybmFsIGVycm9yICEhISIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDQ3Cittc2dpZCAiU2l6ZSAoaW4gTUIpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTQ4MQorbXNnaWQgIkJlZ2lubmluZyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgxCittc2dpZCAiQWRkIHBhcnRpdGlvbiBhdCBiZWdpbm5pbmcgb2YgZnJlZSBzcGFjZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNDgyCittc2dpZCAiRW5kIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE0ODIKK21zZ2lkICJBZGQgcGFydGl0aW9uIGF0IGVuZCBvZiBmcmVlIHNwYWNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1MDAKK21zZ2lkICJObyByb29tIHRvIGNyZWF0ZSB0aGUgZXh0ZW5kZWQgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE1NzQKK21zZ2lkICJObyBwYXJ0aXRpb24gdGFibGUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU3OAorbXNnaWQgIk5vIHBhcnRpdGlvbiB0YWJsZS4gU3RhcnRpbmcgd2l0aCB6ZXJvIHRhYmxlLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNTg4Cittc2dpZCAiQmFkIHNpZ25hdHVyZSBvbiBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5MgorbXNnaWQgIlVua25vd24gcGFydGl0aW9uIHRhYmxlIHR5cGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTU5NAorbXNnaWQgIkRvIHlvdSB3aXNoIHRvIHN0YXJ0IHdpdGggYSB6ZXJvIHRhYmxlIFt5L05dID8iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTY0MgorbXNnaWQgIllvdSBzcGVjaWZpZWQgbW9yZSBjeWxpbmRlcnMgdGhhbiBmaXQgb24gZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc0Cittc2dpZCAiQ2Fubm90IG9wZW4gZGlzayBkcml2ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNjc2IGZkaXNrL2NmZGlzay5jOjE4NjUKK21zZ2lkICJPcGVuZWQgZGlzayByZWFkLW9ubHkgLSB5b3UgaGF2ZSBubyBwZXJtaXNzaW9uIHRvIHdyaXRlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE2ODcKK21zZ2lkICIiCisiV2FybmluZyEhICBVbnN1cHBvcnRlZCBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZC4gVXNlIEdOVSBQYXJ0ZWQuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3MDYKK21zZ2lkICJDYW5ub3QgZ2V0IGRpc2sgc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxNzMyCittc2dpZCAiQmFkIHByaW1hcnkgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE3NjIKK21zZ2lkICJCYWQgbG9naWNhbCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg3NworbXNnaWQgIldhcm5pbmchISAgVGhpcyBtYXkgZGVzdHJveSBkYXRhIG9uIHlvdXIgZGlzayEiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTg4MQorbXNnaWQgIiIKKyJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gd3JpdGUgdGhlIHBhcnRpdGlvbiB0YWJsZSB0byBkaXNrPyAoeWVzIG9yIG5vKTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4ODcKK21zZ2lkICJubyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxODg5Cittc2dpZCAiRGlkIG5vdCB3cml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxODkxCittc2dpZCAieWVzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjE4OTUKK21zZ2lkICJQbGVhc2UgZW50ZXIgYHllcycgb3IgYG5vJyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxODk5Cittc2dpZCAiV3JpdGluZyBwYXJ0aXRpb24gdGFibGUgdG8gZGlzay4uLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI0IGZkaXNrL2NmZGlzay5jOjE5MjgKK21zZ2lkICJXcm90ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTI2Cittc2dpZCAiIgorIldyb3RlIHBhcnRpdGlvbiB0YWJsZSwgYnV0IHJlLXJlYWQgdGFibGUgZmFpbGVkLiAgUnVuIHBhcnRwcm9iZSg4KSwga3BhcnR4IgorIig4KSBvciByZWJvb3QgdG8gdXBkYXRlIHRhYmxlLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTM2Cittc2dpZCAiTm8gcHJpbWFyeSBwYXJ0aXRpb25zIGFyZSBtYXJrZWQgYm9vdGFibGUuIERPUyBNQlIgY2Fubm90IGJvb3QgdGhpcy4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MTkzOAorbXNnaWQgIiIKKyJNb3JlIHRoYW4gb25lIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZS4gRE9TIE1CUiBjYW5ub3QgYm9vdCB0aGlzLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoxOTk2IGZkaXNrL2NmZGlzay5jOjIxMTUgZmRpc2svY2ZkaXNrLmM6MjE5OQorbXNnaWQgIkVudGVyIGZpbGVuYW1lIG9yIHByZXNzIFJFVFVSTiB0byBkaXNwbGF5IG9uIHNjcmVlbjogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMDUgZmRpc2svY2ZkaXNrLmM6MjEyMyBmZGlzay9jZmRpc2suYzoyMjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIGZpbGUgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMDE2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjAxOAorbXNnaWQgIlNlY3RvciAwOlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwMjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VjdG9yICVkOlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDUKK21zZ2lkICIgICBOb25lICAgIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDcKK21zZ2lkICIgICBQcmkvTG9nIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNDkKK21zZ2lkICIgICBQcmltYXJ5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwNTEKK21zZ2lkICIgICBMb2dpY2FsIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIwODkgZmRpc2svZmRpc2suYzoxNzY3IGZkaXNrL2ZkaXNrLmM6MjEwNgorIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIyNyBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjE2IGZkaXNrL3NmZGlzay5jOjYzOAorbXNnaWQgIlVua25vd24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NSBmZGlzay9jZmRpc2suYzoyNTYzIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOQorbXNnaWQgIkJvb3QiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5NworIywgYy1mb3JtYXQKK21zZ2lkICIoJTAyWCkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjA5OQorbXNnaWQgIk5vbmUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjEzNCBmZGlzay9jZmRpc2suYzoyMjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiBUYWJsZSBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM2Cittc2dpZCAiICAgICAgICAgICAgICAgRmlyc3QgICAgICAgTGFzdFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIxMzcKK21zZ2lkICIiCisiICMgVHlwZSAgICAgICBTZWN0b3IgICAgICBTZWN0b3IgICBPZmZzZXQgICAgTGVuZ3RoICAgRmlsZXN5c3RlbSBUeXBlIChJRCkgIgorIkZsYWdcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMTM4Cittc2dpZCAiIgorIi0tIC0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tICIKKyItLS0tXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMQorbXNnaWQgIiAgICAgICAgIC0tLVN0YXJ0aW5nLS0tLSAgICAgIC0tLS1FbmRpbmctLS0tLSAgICBTdGFydCAgICAgTnVtYmVyIG9mXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjIyMgorbXNnaWQgIiAjIEZsYWdzIEhlYWQgU2VjdCAgQ3lsICAgSUQgIEhlYWQgU2VjdCAgQ3lsICAgICBTZWN0b3IgICAgU2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyMjMKK21zZ2lkICItLSAtLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLSAtLS0tIC0tLS0gLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjU2Cittc2dpZCAiUmF3IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTYKK21zZ2lkICJQcmludCB0aGUgdGFibGUgdXNpbmcgcmF3IGRhdGEgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTcgZmRpc2svY2ZkaXNrLmM6MjM2MAorbXNnaWQgIlNlY3RvcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1NworbXNnaWQgIlByaW50IHRoZSB0YWJsZSBvcmRlcmVkIGJ5IHNlY3RvcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OAorbXNnaWQgIlRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyNTgKK21zZ2lkICJKdXN0IHByaW50IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI1OQorbXNnaWQgIkRvbid0IHByaW50IHRoZSB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg3Cittc2dpZCAiSGVscCBTY3JlZW4gZm9yIGNmZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjg5Cittc2dpZCAiVGhpcyBpcyBjZmRpc2ssIGEgY3Vyc2VzIGJhc2VkIGRpc2sgcGFydGl0aW9uaW5nIHByb2dyYW0sIHdoaWNoIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTAKK21zZ2lkICJhbGxvd3MgeW91IHRvIGNyZWF0ZSwgZGVsZXRlIGFuZCBtb2RpZnkgcGFydGl0aW9ucyBvbiB5b3VyIGhhcmQiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5MQorbXNnaWQgImRpc2sgZHJpdmUuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTMKK21zZ2lkICJDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBLZXZpbiBFLiBNYXJ0aW4gJiBhZWIiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5NQorbXNnaWQgIkNvbW1hbmQgICAgICBNZWFuaW5nIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIyOTYKK21zZ2lkICItLS0tLS0tICAgICAgLS0tLS0tLSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk3Cittc2dpZCAiICBiICAgICAgICAgIFRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMjk4Cittc2dpZCAiICBkICAgICAgICAgIERlbGV0ZSB0aGUgY3VycmVudCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgZyAgICAgICAgICBDaGFuZ2UgY3lsaW5kZXJzLCBoZWFkcywgc2VjdG9ycy1wZXItdHJhY2sgcGFyYW1ldGVycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAwCittc2dpZCAiICAgICAgICAgICAgIFdBUk5JTkc6IFRoaXMgb3B0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgcGVvcGxlIHdobyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAxCittc2dpZCAiICAgICAgICAgICAgIGtub3cgd2hhdCB0aGV5IGFyZSBkb2luZy4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwMgorbXNnaWQgIiAgaCAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzAzCittc2dpZCAiICBtICAgICAgICAgIE1heGltaXplIGRpc2sgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDQKK21zZ2lkICIgICAgICAgICAgICAgTm90ZTogVGhpcyBtYXkgbWFrZSB0aGUgcGFydGl0aW9uIGluY29tcGF0aWJsZSB3aXRoIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgICAgICAgICAgRE9TLCBPUy8yLCAuLi4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNgorbXNnaWQgIiAgbiAgICAgICAgICBDcmVhdGUgbmV3IHBhcnRpdGlvbiBmcm9tIGZyZWUgc3BhY2UiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwNworbXNnaWQgIiAgcCAgICAgICAgICBQcmludCBwYXJ0aXRpb24gdGFibGUgdG8gdGhlIHNjcmVlbiBvciB0byBhIGZpbGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMwOAorbXNnaWQgIiAgICAgICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQgZm9ybWF0cyBmb3IgdGhlIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzA5Cittc2dpZCAiICAgICAgICAgICAgIHRoYXQgeW91IGNhbiBjaG9vc2UgZnJvbToiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAgICAgICAgICAgICByIC0gUmF3IGRhdGEgKGV4YWN0bHkgd2hhdCB3b3VsZCBiZSB3cml0dGVuIHRvIGRpc2spIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgICAgICAgICAgICAgcyAtIFRhYmxlIG9yZGVyZWQgYnkgc2VjdG9ycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzEyCittc2dpZCAiICAgICAgICAgICAgICAgIHQgLSBUYWJsZSBpbiByYXcgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTMKK21zZ2lkICIgIHEgICAgICAgICAgUXVpdCBwcm9ncmFtIHdpdGhvdXQgd3JpdGluZyBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMxNAorbXNnaWQgIiAgdCAgICAgICAgICBDaGFuZ2UgdGhlIGZpbGVzeXN0ZW0gdHlwZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE1Cittc2dpZCAiICB1ICAgICAgICAgIENoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE2Cittc2dpZCAiICAgICAgICAgICAgIFJvdGF0ZXMgdGhyb3VnaCBNQiwgc2VjdG9ycyBhbmQgY3lsaW5kZXJzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMTcKK21zZ2lkICIgIFcgICAgICAgICAgV3JpdGUgcGFydGl0aW9uIHRhYmxlIHRvIGRpc2sgKG11c3QgZW50ZXIgdXBwZXIgY2FzZSBXKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE4Cittc2dpZCAiICAgICAgICAgICAgIFNpbmNlIHRoaXMgbWlnaHQgZGVzdHJveSBkYXRhIG9uIHRoZSBkaXNrLCB5b3UgbXVzdCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzE5Cittc2dpZCAiICAgICAgICAgICAgIGVpdGhlciBjb25maXJtIG9yIGRlbnkgdGhlIHdyaXRlIGJ5IGVudGVyaW5nIGB5ZXMnIG9yIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzMjAKK21zZ2lkICIgICAgICAgICAgICAgYG5vJyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzIxCittc2dpZCAiVXAgQXJyb3cgICAgIE1vdmUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMgorbXNnaWQgIkRvd24gQXJyb3cgICBNb3ZlIGN1cnNvciB0byB0aGUgbmV4dCBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyMworbXNnaWQgIkNUUkwtTCAgICAgICBSZWRyYXdzIHRoZSBzY3JlZW4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjMyNAorbXNnaWQgIiAgPyAgICAgICAgICBQcmludCB0aGlzIHNjcmVlbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI2Cittc2dpZCAiTm90ZTogQWxsIG9mIHRoZSBjb21tYW5kcyBjYW4gYmUgZW50ZXJlZCB3aXRoIGVpdGhlciB1cHBlciBvciBsb3dlciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzI3Cittc2dpZCAiY2FzZSBsZXR0ZXJzIChleGNlcHQgZm9yIFdyaXRlcykuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTggZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMgorbXNnaWQgIkN5bGluZGVycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzU4Cittc2dpZCAiQ2hhbmdlIGN5bGluZGVyIGdlb21ldHJ5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjIzMAorbXNnaWQgIkhlYWRzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNTkKK21zZ2lkICJDaGFuZ2UgaGVhZCBnZW9tZXRyeSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYwCittc2dpZCAiQ2hhbmdlIHNlY3RvciBnZW9tZXRyeSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyMzYxCittc2dpZCAiRG9uZSB3aXRoIGNoYW5naW5nIGdlb21ldHJ5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzNzQKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGN5bGluZGVyczogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzODUgZmRpc2svY2ZkaXNrLmM6Mjk1OAorbXNnaWQgIklsbGVnYWwgY3lsaW5kZXJzIHZhbHVlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjIzOTEKK21zZ2lkICJFbnRlciB0aGUgbnVtYmVyIG9mIGhlYWRzOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjM5OCBmZGlzay9jZmRpc2suYzoyOTY4Cittc2dpZCAiSWxsZWdhbCBoZWFkcyB2YWx1ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNDA0Cittc2dpZCAiRW50ZXIgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFjazogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI0MTEgZmRpc2svY2ZkaXNrLmM6Mjk3NQorbXNnaWQgIklsbGVnYWwgc2VjdG9ycyB2YWx1ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTE0Cittc2dpZCAiRW50ZXIgZmlsZXN5c3RlbSB0eXBlOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjUzMgorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgRlMgVHlwZSB0byBlbXB0eSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNTM0Cittc2dpZCAiQ2Fubm90IGNoYW5nZSBGUyBUeXBlIHRvIGV4dGVuZGVkIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rKCUwMlgpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI1NjggZmRpc2svY2ZkaXNrLmM6MjU3MQorbXNnaWQgIiwgTkMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU3NiBmZGlzay9jZmRpc2suYzoyNTc5Cittc2dpZCAiTkMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU4NworbXNnaWQgIlByaS9Mb2ciCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjU5NAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duICglMDJYKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgRHJpdmU6ICVzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2l6ZTogJWxsZCBieXRlcywgJWxsZCBNQiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlNpemU6ICVsbGQgYnl0ZXMsICVsbGQuJWxsZCBHQiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkhlYWRzOiAlZCAgIFNlY3RvcnMgcGVyIFRyYWNrOiAlZCAgIEN5bGluZGVyczogJWxsZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgxIGxvZ2luLXV0aWxzL2NoZm4uYzozNzcKK21zZ2lkICJOYW1lIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODIKK21zZ2lkICJGbGFncyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjgzCittc2dpZCAiUGFydCBUeXBlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODQKK21zZ2lkICJGUyBUeXBlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODUKK21zZ2lkICJbTGFiZWxdIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2ODcKK21zZ2lkICIgICAgU2VjdG9ycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNjg5Cittc2dpZCAiICBDeWxpbmRlcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjY5MQorbXNnaWQgIiAgU2l6ZSAoTUIpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI2OTMKK21zZ2lkICIgIFNpemUgKEdCKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ4Cittc2dpZCAiQm9vdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc0OAorbXNnaWQgIlRvZ2dsZSBib290YWJsZSBmbGFnIG9mIHRoZSBjdXJyZW50IHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzQ5Cittc2dpZCAiRGVsZXRlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NDkKK21zZ2lkICJEZWxldGUgdGhlIGN1cnJlbnQgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTAKK21zZ2lkICJHZW9tZXRyeSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUwCittc2dpZCAiQ2hhbmdlIGRpc2sgZ2VvbWV0cnkgKGV4cGVydHMgb25seSkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIkhlbHAiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MQorbXNnaWQgIlByaW50IGhlbHAgc2NyZWVuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTIKK21zZ2lkICJNYXhpbWl6ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUyCittc2dpZCAiTWF4aW1pemUgZGlzayB1c2FnZSBvZiB0aGUgY3VycmVudCBwYXJ0aXRpb24gKGV4cGVydHMgb25seSkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1MworbXNnaWQgIk5ldyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzUzCittc2dpZCAiQ3JlYXRlIG5ldyBwYXJ0aXRpb24gZnJvbSBmcmVlIHNwYWNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTQKK21zZ2lkICJQcmludCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU0Cittc2dpZCAiUHJpbnQgcGFydGl0aW9uIHRhYmxlIHRvIHRoZSBzY3JlZW4gb3IgdG8gYSBmaWxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTUKK21zZ2lkICJRdWl0IHByb2dyYW0gd2l0aG91dCB3cml0aW5nIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiVHlwZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU2Cittc2dpZCAiQ2hhbmdlIHRoZSBmaWxlc3lzdGVtIHR5cGUgKERPUywgTGludXgsIE9TLzIgYW5kIHNvIG9uKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyNzU3Cittc2dpZCAiVW5pdHMiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1NworbXNnaWQgIkNoYW5nZSB1bml0cyBvZiB0aGUgcGFydGl0aW9uIHNpemUgZGlzcGxheSAoTUIsIHNlY3QsIGN5bCkiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjc1OAorbXNnaWQgIldyaXRlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI3NTgKK21zZ2lkICJXcml0ZSBwYXJ0aXRpb24gdGFibGUgdG8gZGlzayAodGhpcyBtaWdodCBkZXN0cm95IGRhdGEpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4MDUKK21zZ2lkICJDYW5ub3QgbWFrZSB0aGlzIHBhcnRpdGlvbiBib290YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyODE1Cittc2dpZCAiQ2Fubm90IGRlbGV0ZSBhbiBlbXB0eSBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjgzNSBmZGlzay9jZmRpc2suYzoyODM3Cittc2dpZCAiQ2Fubm90IG1heGltaXplIHRoaXMgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4NDUKK21zZ2lkICJUaGlzIHBhcnRpdGlvbiBpcyB1bnVzYWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyODQ3Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gaXMgYWxyZWFkeSBpbiB1c2UiCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6Mjg2NAorbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZW1wdHkgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI4OTEgZmRpc2svY2ZkaXNrLmM6Mjg5NworbXNnaWQgIk5vIG1vcmUgcGFydGl0aW9ucyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9jZmRpc2suYzoyOTA0Cittc2dpZCAiSWxsZWdhbCBjb21tYW5kIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2NmZGlzay5jOjI5MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29weXJpZ2h0IChDKSAxOTk0LTIwMDIgS2V2aW4gRS4gTWFydGluICYgYWViXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svY2ZkaXNrLmM6MjkyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiUHJpbnQgdmVyc2lvbjpcbiIKKyIgICAgICAgICVzIC12XG4iCisiUHJpbnQgcGFydGl0aW9uIHRhYmxlOlxuIgorIiAgICAgICAgJXMgLVAge3J8c3x0fSBbb3B0aW9uc10gZGV2aWNlXG4iCisiSW50ZXJhY3RpdmUgdXNlOlxuIgorIiAgICAgICAgJXMgW29wdGlvbnNdIGRldmljZVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiLWE6IFVzZSBhcnJvdyBpbnN0ZWFkIG9mIGhpZ2hsaWdodGluZztcbiIKKyItejogU3RhcnQgd2l0aCBhIHplcm8gcGFydGl0aW9uIHRhYmxlLCBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHB0IGZyb20gZGlzaztcbiIKKyItYyBDIC1oIEggLXMgUzogT3ZlcnJpZGUgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIG51bWJlciBvZiBjeWxpbmRlcnMsXG4iCisiICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgaGVhZHMgYW5kIHRoZSBudW1iZXIgb2Ygc2VjdG9ycy90cmFjay5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2FpeGxhYmVsLmM6MjcKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIEFJWCBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IExpbnV4IGNhbm5vdCBoYW5kbGUgdGhlc2VcbiIKKyJcdGRpc2tzIGF0IHRoZSBtb21lbnQuICBOZXZlcnRoZWxlc3Mgc29tZVxuIgorIlx0YWR2aWNlOlxuIgorIlx0MS4gZmRpc2sgd2lsbCBkZXN0cm95IGl0cyBjb250ZW50cyBvbiB3cml0ZS5cbiIKKyJcdDIuIEJlIHN1cmUgdGhhdCB0aGlzIGRpc2sgaXMgTk9UIGEgc3RpbGwgdml0YWxcbiIKKyJcdCAgIHBhcnQgb2YgYSB2b2x1bWUgZ3JvdXAuIChPdGhlcndpc2UgeW91IG1heVxuIgorIlx0ICAgZXJhc2UgdGhlIG90aGVyIGRpc2tzIGFzIHdlbGwsIGlmIHVubWlycm9yZWQuKVxuIgorIlx0My4gQmVmb3JlIGRlbGV0aW5nIHRoaXMgcGh5c2ljYWwgdm9sdW1lIGJlIHN1cmVcbiIKKyJcdCAgIHRvIHJlbW92ZSB0aGUgZGlzayBsb2dpY2FsbHkgZnJvbSB5b3VyIEFJWFxuIgorIlx0ICAgbWFjaGluZS4gIChPdGhlcndpc2UgeW91IGJlY29tZSBhbiBBSVhwZXJ0KS4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiQlNEIGxhYmVsIGZvciBkZXZpY2U6ICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOCBmZGlzay9mZGlzay5jOjM5NCBmZGlzay9mZGlzay5jOjQxMworIzogZmRpc2svZmRpc2suYzo0MzEgZmRpc2svZmRpc2suYzo0MzggZmRpc2svZmRpc2suYzo0NjEgZmRpc2svZmRpc2suYzo0NzkKKyM6IGZkaXNrL2ZkaXNrLmM6NDk1IGZkaXNrL2ZkaXNrLmM6NTExCittc2dpZCAiQ29tbWFuZCBhY3Rpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEyOQorbXNnaWQgIiAgIGQgICBkZWxldGUgYSBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzAKK21zZ2lkICIgICBlICAgZWRpdCBkcml2ZSBkYXRhIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzEKK21zZ2lkICIgICBpICAgaW5zdGFsbCBib290c3RyYXAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMgorbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIGZpbGVzeXN0ZW0gdHlwZXMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzMyBmZGlzay9mZGlzay5jOjQwMCBmZGlzay9mZGlzay5jOjQxOQorIzogZmRpc2svZmRpc2suYzo0MzIgZmRpc2svZmRpc2suYzo0NDQgZmRpc2svZmRpc2suYzo0NjkgZmRpc2svZmRpc2suYzo0ODYKKyM6IGZkaXNrL2ZkaXNrLmM6NTAyIGZkaXNrL2ZkaXNrLmM6NTIwCittc2dpZCAiICAgbSAgIHByaW50IHRoaXMgbWVudSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM0Cittc2dpZCAiICAgbiAgIGFkZCBhIG5ldyBCU0QgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzUKK21zZ2lkICIgICBwICAgcHJpbnQgQlNEIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM2IGZkaXNrL2ZkaXNrLmM6NDA0IGZkaXNrL2ZkaXNrLmM6NDIzCisjOiBmZGlzay9mZGlzay5jOjQzNCBmZGlzay9mZGlzay5jOjQ0OCBmZGlzay9mZGlzay5jOjQ3MSBmZGlzay9mZGlzay5jOjQ4OAorIzogZmRpc2svZmRpc2suYzo1MDQgZmRpc2svZmRpc2suYzo1MjIKK21zZ2lkICIgICBxICAgcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxMzcgZmRpc2svZmRpc2suYzo0NzIgZmRpc2svZmRpc2suYzo0ODkKKyM6IGZkaXNrL2ZkaXNrLmM6NTA1IGZkaXNrL2ZkaXNrLmM6NTIzCittc2dpZCAiICAgciAgIHJldHVybiB0byBtYWluIG1lbnUiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjEzOAorbXNnaWQgIiAgIHMgICBzaG93IGNvbXBsZXRlIGRpc2tsYWJlbCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTM5Cittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIGZpbGVzeXN0ZW0gaWQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjE0MAorbXNnaWQgIiAgIHUgICBjaGFuZ2UgdW5pdHMgKGN5bGluZGVycy9zZWN0b3JzKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MTQxCittc2dpZCAiICAgdyAgIHdyaXRlIGRpc2tsYWJlbCB0byBkaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNDMKK21zZ2lkICIgICB4ICAgbGluayBCU0QgcGFydGl0aW9uIHRvIG5vbi1CU0QgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVzIGhhcyBpbnZhbGlkIHN0YXJ0aW5nIHNlY3RvciAwLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBkaXNrbGFiZWwgb2YgJXMgYXQgc2VjdG9yICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoxODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlcmUgaXMgbm8gKkJTRCBwYXJ0aXRpb24gb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjIwMworbXNnaWQgIkJTRCBkaXNrbGFiZWwgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MjgzIGZkaXNrL2ZkaXNrLmM6MjMyOCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjM4CisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0ICVzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzoyOTAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0ICVzIG9yICtzaXplIG9yICtzaXplTSBvciArc2l6ZUsiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJ0eXBlOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidHlwZTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgImRpc2s6ICUuKnNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgImxhYmVsOiAlLipzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJmbGFnczoiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICIgcmVtb3ZhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIGVjYyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiBiYWRzZWN0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnl0ZXMvc2VjdG9yOiAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvdHJhY2s6ICVsZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJhY2tzL2N5bGluZGVyOiAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXI6ICVsZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY3lsaW5kZXJzOiAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM3CisjLCBjLWZvcm1hdAorbXNnaWQgInJwbTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgImludGVybGVhdmU6ICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjMzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ0cmFja3NrZXc6ICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MAorIywgYy1mb3JtYXQKK21zZ2lkICJjeWxpbmRlcnNrZXc6ICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJoZWFkc3dpdGNoOiAlbGRcdFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQzCisjLCBjLWZvcm1hdAorbXNnaWQgInRyYWNrLXRvLXRyYWNrIHNlZWs6ICVsZFx0IyBtaWxsaXNlY29uZHNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6MzQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImRyaXZlZGF0YTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzozNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIiVkIHBhcnRpdGlvbnM6XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIjICAgICAgIHN0YXJ0ICAgICAgIGVuZCAgICAgIHNpemUgICAgIGZzdHlwZSAgIFtmc2l6ZSBic2l6ZSAgIGNwZ11cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDA0IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGluZyBkaXNrbGFiZWwgdG8gJXMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQxOSBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNvbnRhaW5zIG5vIGRpc2tsYWJlbC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDI2Cittc2dpZCAiRG8geW91IHdhbnQgdG8gY3JlYXRlIGEgZGlza2xhYmVsPyAoeS9uKSAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ2NgorbXNnaWQgImJ5dGVzL3NlY3RvciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY3Cittc2dpZCAic2VjdG9ycy90cmFjayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDY4Cittc2dpZCAidHJhY2tzL2N5bGluZGVyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0NjkgZmRpc2svZmRpc2suYzo3NDAgZmRpc2svZmRpc2suYzoxNTkyCisjOiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJjeWxpbmRlcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ3NgorbXNnaWQgInNlY3RvcnMvY3lsaW5kZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MAorIywgYy1mb3JtYXQKK21zZ2lkICJNdXN0IGJlIDw9IHNlY3RvcnMvdHJhY2sgKiB0cmFja3MvY3lsaW5kZXIgKGRlZmF1bHQpLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODIKK21zZ2lkICJycG0iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4MworbXNnaWQgImludGVybGVhdmUiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjQ4NAorbXNnaWQgInRyYWNrc2tldyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NDg1Cittc2dpZCAiY3lsaW5kZXJza2V3IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODYKK21zZ2lkICJoZWFkc3dpdGNoIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo0ODcKK21zZ2lkICJ0cmFjay10by10cmFjayBzZWVrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo1MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm9vdHN0cmFwOiAlc2Jvb3QgLT4gYm9vdCVzICglcyk6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBvdmVybGFwcyB3aXRoIGRpc2sgbGFiZWwhXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU3NCBmZGlzay9mZGlza2JzZGxhYmVsLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkJvb3RzdHJhcCBpbnN0YWxsZWQgb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjU5OAorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gKGEtJWMpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjYxNyBmZGlzay9mZGlzay5jOjI0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgaGFzIGJlZW4gY3JlYXRlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrYnNkbGFiZWwuYzo2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhpcyBwYXJ0aXRpb24gYWxyZWFkeSBleGlzdHMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjc1NgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiB0b28gbWFueSBwYXJ0aXRpb25zICglZCwgbWF4aW11bSBpcyAlZCkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tic2RsYWJlbC5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU3luY2luZyBkaXNrcy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI1NgorbXNnaWQgIiIKKyJVc2FnZTpcbiIKKyIgZmRpc2sgW29wdGlvbnNdIDxkaXNrPiAgICBjaGFuZ2UgcGFydGl0aW9uIHRhYmxlXG4iCisiIGZkaXNrIFtvcHRpb25zXSAtbCA8ZGlzaz4gbGlzdCBwYXJ0aXRpb24gdGFibGUocylcbiIKKyIgZmRpc2sgLXMgPHBhcnRpdGlvbj4gICAgICBnaXZlIHBhcnRpdGlvbiBzaXplKHMpIGluIGJsb2Nrc1xuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1iIDxzaXplPiAgICAgICAgICAgICAgICAgc2VjdG9yIHNpemUgKDUxMiwgMTAyNCwgMjA0OCBvciA0MDk2KVxuIgorIiAtYyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCBvZmYgRE9TLWNvbXBhdGlibGUgbW9kZVxuIgorIiAtaCAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGhlbHBcbiIKKyIgLXUgPHNpemU+ICAgICAgICAgICAgICAgICBnaXZlIHNpemVzIGluIHNlY3RvcnMgaW5zdGVhZCBvZiBjeWxpbmRlcnNcbiIKKyIgLXYgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB2ZXJzaW9uXG4iCisiIC1DIDxudW1iZXI+ICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGN5bGluZGVyc1xuIgorIiAtSCA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBoZWFkc1xuIgorIiAtUyA8bnVtYmVyPiAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHBlciB0cmFja1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBvcGVuICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHJlYWQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2VlayBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkJMS0dFVFNJWkUgaW9jdGwgZmFpbGVkIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyOTMKK21zZ2lkICJVbmFibGUgdG8gYWxsb2NhdGUgYW55IG1vcmUgbWVtb3J5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyOTYKK21zZ2lkICJGYXRhbCBlcnJvclxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk1Cittc2dpZCAiICAgYSAgIHRvZ2dsZSBhIHJlYWQgb25seSBmbGFnIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk2IGZkaXNrL2ZkaXNrLmM6NDQwCittc2dpZCAiICAgYiAgIGVkaXQgYnNkIGRpc2tsYWJlbCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjM5NworbXNnaWQgIiAgIGMgICB0b2dnbGUgdGhlIG1vdW50YWJsZSBmbGFnIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Mzk4IGZkaXNrL2ZkaXNrLmM6NDE3IGZkaXNrL2ZkaXNrLmM6NDQyCittc2dpZCAiICAgZCAgIGRlbGV0ZSBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjM5OSBmZGlzay9mZGlzay5jOjQxOCBmZGlzay9mZGlzay5jOjQ0MworbXNnaWQgIiAgIGwgICBsaXN0IGtub3duIHBhcnRpdGlvbiB0eXBlcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQwMSBmZGlzay9mZGlzay5jOjQyMCBmZGlzay9mZGlzay5jOjQ0NQorbXNnaWQgIiAgIG4gICBhZGQgYSBuZXcgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAyIGZkaXNrL2ZkaXNrLmM6NDIxIGZkaXNrL2ZkaXNrLmM6NDMzIGZkaXNrL2ZkaXNrLmM6NDQ2Cittc2dpZCAiICAgbyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDAzIGZkaXNrL2ZkaXNrLmM6NDIyIGZkaXNrL2ZkaXNrLmM6NDQ3IGZkaXNrL2ZkaXNrLmM6NDcwCisjOiBmZGlzay9mZGlzay5jOjQ4NyBmZGlzay9mZGlzay5jOjUwMyBmZGlzay9mZGlzay5jOjUyMQorbXNnaWQgIiAgIHAgICBwcmludCB0aGUgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA1IGZkaXNrL2ZkaXNrLmM6NDI0IGZkaXNrL2ZkaXNrLmM6NDM1IGZkaXNrL2ZkaXNrLmM6NDQ5Cittc2dpZCAiICAgcyAgIGNyZWF0ZSBhIG5ldyBlbXB0eSBTdW4gZGlza2xhYmVsIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDA2IGZkaXNrL2ZkaXNrLmM6NDI1IGZkaXNrL2ZkaXNrLmM6NDUwCittc2dpZCAiICAgdCAgIGNoYW5nZSBhIHBhcnRpdGlvbidzIHN5c3RlbSBpZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQwNyBmZGlzay9mZGlzay5jOjQyNiBmZGlzay9mZGlzay5jOjQ1MQorbXNnaWQgIiAgIHUgICBjaGFuZ2UgZGlzcGxheS9lbnRyeSB1bml0cyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQwOCBmZGlzay9mZGlzay5jOjQyNyBmZGlzay9mZGlzay5jOjQ1MiBmZGlzay9mZGlzay5jOjQ3NAorIzogZmRpc2svZmRpc2suYzo0OTEgZmRpc2svZmRpc2suYzo1MDcgZmRpc2svZmRpc2suYzo1MjUKK21zZ2lkICIgICB2ICAgdmVyaWZ5IHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0MDkgZmRpc2svZmRpc2suYzo0MjggZmRpc2svZmRpc2suYzo0NTMgZmRpc2svZmRpc2suYzo0NzUKKyM6IGZkaXNrL2ZkaXNrLmM6NDkyIGZkaXNrL2ZkaXNrLmM6NTA4IGZkaXNrL2ZkaXNrLmM6NTI2Cittc2dpZCAiICAgdyAgIHdyaXRlIHRhYmxlIHRvIGRpc2sgYW5kIGV4aXQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0MTAgZmRpc2svZmRpc2suYzo0NTQKK21zZ2lkICIgICB4ICAgZXh0cmEgZnVuY3Rpb25hbGl0eSAoZXhwZXJ0cyBvbmx5KSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQxNAorbXNnaWQgIiAgIGEgICBzZWxlY3QgYm9vdGFibGUgcGFydGl0aW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDE1Cittc2dpZCAiICAgYiAgIGVkaXQgYm9vdGZpbGUgZW50cnkiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0MTYKK21zZ2lkICIgICBjICAgc2VsZWN0IHNnaSBzd2FwIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQzOQorbXNnaWQgIiAgIGEgICB0b2dnbGUgYSBib290YWJsZSBmbGFnIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDQxCittc2dpZCAiICAgYyAgIHRvZ2dsZSB0aGUgZG9zIGNvbXBhdGliaWxpdHkgZmxhZyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQ2MgorbXNnaWQgIiAgIGEgICBjaGFuZ2UgbnVtYmVyIG9mIGFsdGVybmF0ZSBjeWxpbmRlcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0NjMgZmRpc2svZmRpc2suYzo0ODEgZmRpc2svZmRpc2suYzo0OTcgZmRpc2svZmRpc2suYzo1MTMKK21zZ2lkICIgICBjICAgY2hhbmdlIG51bWJlciBvZiBjeWxpbmRlcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0NjQgZmRpc2svZmRpc2suYzo0ODIgZmRpc2svZmRpc2suYzo0OTggZmRpc2svZmRpc2suYzo1MTQKK21zZ2lkICIgICBkICAgcHJpbnQgdGhlIHJhdyBkYXRhIGluIHRoZSBwYXJ0aXRpb24gdGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0NjUKK21zZ2lkICIgICBlICAgY2hhbmdlIG51bWJlciBvZiBleHRyYSBzZWN0b3JzIHBlciBjeWxpbmRlciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQ2NiBmZGlzay9mZGlzay5jOjQ4NSBmZGlzay9mZGlzay5jOjUwMSBmZGlzay9mZGlzay5jOjUxOAorbXNnaWQgIiAgIGggICBjaGFuZ2UgbnVtYmVyIG9mIGhlYWRzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDY3Cittc2dpZCAiICAgaSAgIGNoYW5nZSBpbnRlcmxlYXZlIGZhY3RvciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjQ2OAorbXNnaWQgIiAgIG8gICBjaGFuZ2Ugcm90YXRpb24gc3BlZWQgKHJwbSkiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0NzMgZmRpc2svZmRpc2suYzo0OTAgZmRpc2svZmRpc2suYzo1MDYgZmRpc2svZmRpc2suYzo1MjQKK21zZ2lkICIgICBzICAgY2hhbmdlIG51bWJlciBvZiBzZWN0b3JzL3RyYWNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDc2Cittc2dpZCAiICAgeSAgIGNoYW5nZSBudW1iZXIgb2YgcGh5c2ljYWwgY3lsaW5kZXJzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDgwIGZkaXNrL2ZkaXNrLmM6NDk2IGZkaXNrL2ZkaXNrLmM6NTEyCittc2dpZCAiICAgYiAgIG1vdmUgYmVnaW5uaW5nIG9mIGRhdGEgaW4gYSBwYXJ0aXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo0ODMgZmRpc2svZmRpc2suYzo0OTkgZmRpc2svZmRpc2suYzo1MTUKK21zZ2lkICIgICBlICAgbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NDg0IGZkaXNrL2ZkaXNrLmM6NTAwIGZkaXNrL2ZkaXNrLmM6NTE3Cittc2dpZCAiICAgZyAgIGNyZWF0ZSBhbiBJUklYIChTR0kpIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjUxNgorbXNnaWQgIiAgIGYgICBmaXggcGFydGl0aW9uIG9yZGVyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NTE5Cittc2dpZCAiICAgaSAgIGNoYW5nZSB0aGUgZGlzayBpZGVudGlmaWVyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NjM1CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IHNldCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjczNgorbXNnaWQgImhlYWRzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzM4IGZkaXNrL2ZkaXNrLmM6MTU5MiBmZGlzay9zZmRpc2suYzo5MzAKK21zZ2lkICJzZWN0b3JzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyVzLlxuIgorIllvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBleHRyYSBmdW5jdGlvbnMgbWVudS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc0NQorbXNnaWQgIiBhbmQgIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBUaGUgc2l6ZSBvZiB0aGlzIGRpc2sgaXMgJWQuJWQgVEIgKCVsbHUgYnl0ZXMpLlxuIgorIkRPUyBwYXJ0aXRpb24gdGFibGUgZm9ybWF0IGNhbiBub3QgYmUgdXNlZCBvbiBkcml2ZXMgZm9yIHZvbHVtZXNcbiIKKyJsYXJnZXIgdGhhbiAoJWxsdSBieXRlcykgZm9yICVkLWJ5dGUgc2VjdG9ycy4gVXNlIHBhcnRlZCgxKSBhbmQgR1VJRCBcbiIKKyJwYXJ0aXRpb24gdGFibGUgZm9ybWF0IChHUFQpLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6NzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhblxuIgorInRoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWxcbiIKKyJJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjc4OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvXG4iCisiICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6Nzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvXG4iCisiICAgICAgICAgc2VjdG9ycyAoY29tbWFuZCAndScpLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBjeWxpbmRlcnMgYXMgZGlzcGxheSB1bml0cyBhcmUgZGVwcmVjYXRlZC4gVXNlIGNvbW1hbmQgJ3UnIHRvXG4iCisiICAgICAgICAgY2hhbmdlIHVuaXRzIHRvIHNlY3RvcnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4MTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG9mZnNldCBpbiBwcmltYXJ5IGV4dGVuZGVkIHBhcnRpdGlvblxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6ODMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBvbWl0dGluZyBwYXJ0aXRpb25zIGFmdGVyICMlZC5cbiIKKyJUaGV5IHdpbGwgYmUgZGVsZXRlZCBpZiB5b3Ugc2F2ZSB0aGlzIHBhcnRpdGlvbiB0YWJsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjg1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBleHRyYSBsaW5rIHBvaW50ZXIgaW4gcGFydGl0aW9uIHRhYmxlICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo4NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogaWdub3JpbmcgZXh0cmEgZGF0YSBpbiBwYXJ0aXRpb24gdGFibGUgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjg5MworIywgYy1mb3JtYXQKK21zZ2lkICJvbWl0dGluZyBlbXB0eSBwYXJ0aXRpb24gKCVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6OTEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgaWRlbnRpZmllcjogMHglMDh4XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmV3IGRpc2sgaWRlbnRpZmllciAoY3VycmVudCAweCUwOHgpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzo5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IERPUyBkaXNrbGFiZWwgd2l0aCBkaXNrIGlkZW50aWZpZXIgMHglMDh4LlxuIgorIkNoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksIHVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS5cbiIKKyJBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTAxNgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3RlOiBzZWN0b3Igc2l6ZSBpcyAlZCAobm90ICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byB3cml0ZSB0aGUgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhpcyBkaXNrIGhhcyBib3RoIERPUyBhbmQgQlNEIG1hZ2ljLlxuIgorIkdpdmUgdGhlICdiJyBjb21tYW5kIHRvIGdvIHRvIEJTRCBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTI1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGICIKKyJkaXNrbGFiZWxcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjEyNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW50ZXJuYWwgZXJyb3JcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjEyODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSWdub3JpbmcgZXh0cmEgZXh0ZW5kZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxMjk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHglMDR4IG9mIHBhcnRpdGlvbiB0YWJsZSAlZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3IgorIihyaXRlKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiZ290IEVPRiB0aHJpY2UgLSBleGl0aW5nLi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjEzNjAKK21zZ2lkICJIZXggY29kZSAodHlwZSBMIHRvIGxpc3QgY29kZXMpOiAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxMzkzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICgldS0ldSwgZGVmYXVsdCAldSk6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5zdXBwb3J0ZWQgc3VmZml4OiAnJXMnLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiU3VwcG9ydGVkOiAxMF5OOiBLQiAoS2lsb0J5dGUpLCBNQiAoTWVnYUJ5dGUpLCBHQiAoR2lnYUJ5dGUpXG4iCisiICAgICAgICAgICAgMl5OOiBLICAoS2liaUJ5dGUpLCBNICAoTWViaUJ5dGUpLCBHICAoR2liaUJ5dGUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNDg5CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGRlZmF1bHQgdmFsdWUgJXVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVmFsdWUgb3V0IG9mIHJhbmdlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTUxOAorbXNnaWQgIlBhcnRpdGlvbiBudW1iZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNTI5CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBoYXMgZW1wdHkgdHlwZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU1MSBmZGlzay9mZGlzay5jOjE1NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2VsZWN0ZWQgcGFydGl0aW9uICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbiBpcyBkZWZpbmVkIHlldCFcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxsIHByaW1hcnkgcGFydGl0aW9ucyBoYXZlIGJlZW4gZGVmaW5lZCBhbHJlYWR5IVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgImN5bGluZGVyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTU5MAorbXNnaWQgInNlY3RvciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE1OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTYxMAorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBQYXJ0aXRpb24gJWQgaXMgYW4gZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNjIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgc2V0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyMworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QgeWV0IVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTcyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVHlwZSAwIG1lYW5zIGZyZWUgc3BhY2UgdG8gbWFueSBzeXN0ZW1zXG4iCisiKGJ1dCBub3QgdG8gTGludXgpLiBIYXZpbmcgcGFydGl0aW9ucyBvZlxuIgorInR5cGUgMCBpcyBwcm9iYWJseSB1bndpc2UuIFlvdSBjYW4gZGVsZXRlXG4iCisiYSBwYXJ0aXRpb24gdXNpbmcgdGhlIGBkJyBjb21tYW5kLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTczNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGNhbm5vdCBjaGFuZ2UgYSBwYXJ0aXRpb24gaW50byBhbiBleHRlbmRlZCBvbmUgb3IgdmljZSB2ZXJzYVxuIgorIkRlbGV0ZSBpdCBmaXJzdC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE3NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvbnNpZGVyIGxlYXZpbmcgcGFydGl0aW9uIDMgYXMgV2hvbGUgZGlzayAoNSksXG4iCisiYXMgU3VuT1MvU29sYXJpcyBleHBlY3RzIGl0IGFuZCBldmVuIExpbnV4IGxpa2VzIGl0LlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTc1MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29uc2lkZXIgbGVhdmluZyBwYXJ0aXRpb24gOSBhcyB2b2x1bWUgaGVhZGVyICgwKSxcbiIKKyJhbmQgcGFydGl0aW9uIDExIGFzIGVudGlyZSB2b2x1bWUgKDYpLCBhcyBJUklYIGV4cGVjdHMgaXQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxNzY5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5nZWQgc3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIHRvICV4ICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE3NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3lzdGVtIHR5cGUgb2YgcGFydGl0aW9uICVkIGlzIHVuY2hhbmdlZDogJXggKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyNworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIGRpZmZlcmVudCBwaHlzaWNhbC9sb2dpY2FsIGJlZ2lubmluZ3MgKG5vbi1MaW51eD8pOlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTgyOSBmZGlzay9mZGlzay5jOjE4MzcgZmRpc2svZmRpc2suYzoxODQ2IGZkaXNrL2ZkaXNrLmM6MTg1NgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgIHBoeXM9KCVkLCAlZCwgJWQpICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4MzAgZmRpc2svZmRpc2suYzoxODM4CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2ljYWw9KCVkLCAlZCwgJWQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODM1CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBoYXMgZGlmZmVyZW50IHBoeXNpY2FsL2xvZ2ljYWwgZW5kaW5nczpcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IHN0YXJ0IG9uIGN5bGluZGVyIGJvdW5kYXJ5OlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg0NworIywgYy1mb3JtYXQKK21zZ2lkICJzaG91bGQgYmUgKCVkLCAlZCwgMSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVpIGRvZXMgbm90IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAic2hvdWxkIGJlICglZCwgJWQsICVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg2NworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWkgZG9lcyBub3Qgc3RhcnQgb24gcGh5c2ljYWwgc2VjdG9yIGJvdW5kYXJ5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg3NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlczogJWxkIE1CLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlbGQuJWxkIEdCLCAlbGxkIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGhlYWRzLCAlbGx1IHNlY3RvcnMvdHJhY2ssICVkIGN5bGluZGVycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCB0b3RhbCAlbGx1IHNlY3RvcnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODkwCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuaXRzID0gJXMgb2YgJWQgKiAlZCA9ICVkIGJ5dGVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoxODk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciBzaXplIChsb2dpY2FsL3BoeXNpY2FsKTogJXUgYnl0ZXMgLyAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjE4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSS9PIHNpemUgKG1pbmltdW0vb3B0aW1hbCk6ICVsdSBieXRlcyAvICVsdSBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MTg5OQorIywgYy1mb3JtYXQKK21zZ2lkICJBbGlnbm1lbnQgb2Zmc2V0OiAlbHUgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIwMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdGhpbmcgdG8gZG8uIE9yZGVyaW5nIGlzIGNvcnJlY3QgYWxyZWFkeS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIwMzYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIkRvbmUuXG4iCittc2dzdHIgIuWujOaIkFxuIgorCisjOiBmZGlzay9mZGlzay5jOjIwNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoaXMgZG9lc24ndCBsb29rIGxpa2UgYSBwYXJ0aXRpb24gdGFibGVcbiIKKyJQcm9iYWJseSB5b3Ugc2VsZWN0ZWQgdGhlIHdyb25nIGRldmljZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJSpzIEJvb3QgICAgICBTdGFydCAgICAgICAgIEVuZCAgICAgIEJsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIwNzggZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIxMCBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTk4Cittc2dpZCAiRGV2aWNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjExNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiUGFydGl0aW9uIHRhYmxlIGVudHJpZXMgYXJlIG5vdCBpbiBkaXNrIG9yZGVyXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTnIgQUYgIEhkIFNlYyAgQ3lsICBIZCBTZWMgIEN5bCAgICAgU3RhcnQgICAgICBTaXplIElEXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBjb250YWlucyBzZWN0b3IgMFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IGhlYWQgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkOiBzZWN0b3IgJWQgZ3JlYXRlciB0aGFuIG1heGltdW0gJWxsdVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb25zICVkOiBjeWxpbmRlciAlZCBncmVhdGVyIHRoYW4gbWF4aW11bSAlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQ6IHByZXZpb3VzIHNlY3RvcnMgJWQgZGlzYWdyZWVzIHdpdGggdG90YWwgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIyMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogYmFkIHN0YXJ0LW9mLWRhdGEgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBvdmVybGFwcyBwYXJ0aXRpb24gJWQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMjUxCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlZCBpcyBlbXB0eVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjI1NgorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpY2FsIHBhcnRpdGlvbiAlZCBub3QgZW50aXJlbHkgaW4gcGFydGl0aW9uICVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMjYyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRvdGFsIGFsbG9jYXRlZCBzZWN0b3JzICVsbHUgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtICVsbHVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVtYWluaW5nICVsbGQgdW5hbGxvY2F0ZWQgJWQtYnl0ZSBzZWN0b3JzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMzAxIGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MjAgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQxMQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaXMgYWxyZWFkeSBkZWZpbmVkLiAgRGVsZXRlIGl0IGJlZm9yZSByZS1hZGRpbmcgaXQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNlY3RvciAlbGx1IGlzIGFscmVhZHkgYWxsb2NhdGVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyMzgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGZyZWUgc2VjdG9ycyBhdmFpbGFibGVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjIzOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCAlMSRzLCArJTIkcyBvciArc2l6ZXtLLE0sR30iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNDcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcdFNvcnJ5IC0gdGhpcyBmZGlzayBjYW5ub3QgaGFuZGxlIEFJWCBkaXNrIGxhYmVscy5cbiIKKyJcdElmIHlvdSB3YW50IHRvIGFkZCBET1MtdHlwZSBwYXJ0aXRpb25zLCBjcmVhdGVcbiIKKyJcdGEgbmV3IGVtcHR5IERPUyBwYXJ0aXRpb24gdGFibGUgZmlyc3QuIChVc2Ugby4pXG4iCisiXHRXQVJOSU5HOiBUaGlzIHdpbGwgZGVzdHJveSB0aGUgcHJlc2VudCBkaXNrIGNvbnRlbnRzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHRTb3JyeSAtIHRoaXMgZmRpc2sgY2Fubm90IGhhbmRsZSBNYWMgZGlzayBsYWJlbHMuXG4iCisiXHRJZiB5b3Ugd2FudCB0byBhZGQgRE9TLXR5cGUgcGFydGl0aW9ucywgY3JlYXRlXG4iCisiXHRhIG5ldyBlbXB0eSBET1MgcGFydGl0aW9uIHRhYmxlIGZpcnN0LiAoVXNlIG8uKVxuIgorIlx0V0FSTklORzogVGhpcyB3aWxsIGRlc3Ryb3kgdGhlIHByZXNlbnQgZGlzayBjb250ZW50cy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI0OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IG11c3QgZGVsZXRlIHNvbWUgcGFydGl0aW9uIGFuZCBhZGQgYW4gZXh0ZW5kZWQgcGFydGl0aW9uIGZpcnN0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFsbCBsb2dpY2FsIHBhcnRpdGlvbnMgYXJlIGluIHVzZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwMworIywgYy1mb3JtYXQKK21zZ2lkICJBZGRpbmcgYSBwcmltYXJ5IHBhcnRpdGlvblxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUwOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ29tbWFuZCBhY3Rpb25cbiIKKyIgICAlc1xuIgorIiAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImwgICBsb2dpY2FsICg1IG9yIG92ZXIpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjUxMAorbXNnaWQgImUgICBleHRlbmRlZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBwYXJ0aXRpb24gbnVtYmVyIGZvciB0eXBlIGAlYydcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBwYXJ0aXRpb24gdGFibGUgaGFzIGJlZW4gYWx0ZXJlZCFcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjU4NworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV0FSTklORzogUmUtcmVhZGluZyB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZCB3aXRoIGVycm9yICVkOiAlcy5cbiIKKyJUaGUga2VybmVsIHN0aWxsIHVzZXMgdGhlIG9sZCB0YWJsZS4gVGhlIG5ldyB0YWJsZSB3aWxsIGJlIHVzZWQgYXRcbiIKKyJ0aGUgbmV4dCByZWJvb3Qgb3IgYWZ0ZXIgeW91IHJ1biBwYXJ0cHJvYmUoOCkgb3Iga3BhcnR4KDgpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNTk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBJZiB5b3UgaGF2ZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGFueSBET1MgNi54XG4iCisicGFydGl0aW9ucywgcGxlYXNlIHNlZSB0aGUgZmRpc2sgbWFudWFsIHBhZ2UgZm9yIGFkZGl0aW9uYWxcbiIKKyJpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI2MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkVycm9yIGNsb3NpbmcgZmlsZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICJTeW5jaW5nIGRpc2tzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1MQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgaGFzIG5vIGRhdGEgYXJlYVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjY1NgorbXNnaWQgIk5ldyBiZWdpbm5pbmcgb2YgZGF0YSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI2NzIKK21zZ2lkICJFeHBlcnQgY29tbWFuZCAobSBmb3IgaGVscCk6ICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI2ODUKK21zZ2lkICJOdW1iZXIgb2YgY3lsaW5kZXJzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjcxMAorbXNnaWQgIk51bWJlciBvZiBoZWFkcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzcKK21zZ2lkICJOdW1iZXIgb2Ygc2VjdG9ycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI3MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogc2V0dGluZyBzZWN0b3Igb2Zmc2V0IGZvciBET1MgY29tcGF0aWJsaXR5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyNzk4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJXQVJOSU5HOiBHUFQgKEdVSUQgUGFydGl0aW9uIFRhYmxlKSBkZXRlY3RlZCBvbiAnJXMnISBUaGUgdXRpbCBmZGlzayBkb2Vzbid0ICIKKyJzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXMgZG9lc24ndCBjb250YWluIGEgdmFsaWQgcGFydGl0aW9uIHRhYmxlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyODMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzoyODUwIGZkaXNrL3NmZGlzay5jOjI2MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI4NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWM6IHVua25vd24gY29tbWFuZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MjkzNgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIGtlcm5lbCBmaW5kcyB0aGUgc2VjdG9yIHNpemUgaXRzZWxmIC0gLWIgb3B0aW9uIGlnbm9yZWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjI5NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHRoZSAtYiAoc2V0IHNlY3RvciBzaXplKSBvcHRpb24gc2hvdWxkIGJlIHVzZWQgd2l0aCBvbmUgc3BlY2lmaWVkICIKKyJkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjMwMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgYW4gT1NGLzEgZGlza2xhYmVsIG9uICVzLCBlbnRlcmluZyBkaXNrbGFiZWwgbW9kZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlzay5jOjMwMTAKK21zZ2lkICJDb21tYW5kIChtIGZvciBoZWxwKTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIGN1cnJlbnQgYm9vdCBmaWxlIGlzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAyOAorbXNnaWQgIlBsZWFzZSBlbnRlciB0aGUgbmFtZSBvZiB0aGUgbmV3IGJvb3QgZmlsZTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrLmM6MzAzMAorIywgYy1mb3JtYXQKK21zZ2lkICJCb290IGZpbGUgdW5jaGFuZ2VkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2suYzozMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJcdFNvcnJ5LCBubyBleHBlcnRzIG1lbnUgZm9yIFNHSSBwYXJ0aXRpb24gdGFibGVzIGF2YWlsYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza21hY2xhYmVsLmM6MzAKK21zZ2lkICIiCisiXG4iCisiXHRUaGVyZSBpcyBhIHZhbGlkIE1hYyBsYWJlbCBvbiB0aGlzIGRpc2suXG4iCisiXHRVbmZvcnR1bmF0ZWx5IGZkaXNrKDEpIGNhbm5vdCBoYW5kbGUgdGhlc2UgZGlza3MuXG4iCisiXHRVc2UgZWl0aGVyIHBkaXNrIG9yIHBhcnRlZCB0byBtb2RpZnkgdGhlIHBhcnRpdGlvbiB0YWJsZS5cbiIKKyJcdE5ldmVydGhlbGVzcyBzb21lIGFkdmljZTpcbiIKKyJcdDEuIGZkaXNrIHdpbGwgZGVzdHJveSBpdHMgY29udGVudHMgb24gd3JpdGUuXG4iCisiXHQyLiBCZSBzdXJlIHRoYXQgdGhpcyBkaXNrIGlzIE5PVCBhIHN0aWxsIHZpdGFsXG4iCisiXHQgICBwYXJ0IG9mIGEgdm9sdW1lIGdyb3VwLiAoT3RoZXJ3aXNlIHlvdSBtYXlcbiIKKyJcdCAgIGVyYXNlIHRoZSBvdGhlciBkaXNrcyBhcyB3ZWxsLCBpZiB1bm1pcnJvcmVkLilcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODEKK21zZ2lkICJTR0kgdm9saGRyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MgorbXNnaWQgIlNHSSB0cmtyZXBsIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4MworbXNnaWQgIlNHSSBzZWNyZXBsIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4NAorbXNnaWQgIlNHSSByYXciCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg1Cittc2dpZCAiU0dJIGJzZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODYKK21zZ2lkICJTR0kgc3lzdiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6ODcKK21zZ2lkICJTR0kgdm9sdW1lIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo4OAorbXNnaWQgIlNHSSBlZnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjg5Cittc2dpZCAiU0dJIGx2b2wiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkwCittc2dpZCAiU0dJIHJsdm9sIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5MQorbXNnaWQgIlNHSSB4ZnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjkyCittc2dpZCAiU0dJIHhmc2xvZyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTMKK21zZ2lkICJTR0kgeGx2IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo5NAorbXNnaWQgIlNHSSB4dm0iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk1IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MAorbXNnaWQgIkxpbnV4IHN3YXAiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk2IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MQorbXNnaWQgIkxpbnV4IG5hdGl2ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6OTcgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUyIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjMKK21zZ2lkICJMaW51eCBMVk0iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjk4Cittc2dpZCAiTGludXggUkFJRCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJBY2NvcmRpbmcgdG8gTUlQUyBDb21wdXRlciBTeXN0ZW1zLCBJbmMgdGhlIExhYmVsIG11c3Qgbm90IGNvbnRhaW4gbW9yZSB0aGFuICIKKyI1MTIgYnl0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHNnaSBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnNcbiIKKyIlZCBjeWxpbmRlcnMsICVkIHBoeXNpY2FsIGN5bGluZGVyc1xuIgorIiVkIGV4dHJhIHNlY3RzL2N5bCwgaW50ZXJsZWF2ZSAlZDoxXG4iCisiJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogJWQgYnl0ZXNcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJEaXNrICVzIChTR0kgZGlzayBsYWJlbCk6ICVkIGhlYWRzLCAlbGx1IHNlY3RvcnMsICVkIGN5bGluZGVyc1xuIgorIlVuaXRzID0gJXMgb2YgJWQgKiAlZCBieXRlc1xuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIi0tLS0tIHBhcnRpdGlvbnMgLS0tLS1cbiIKKyJQdCMgJSpzICBJbmZvICAgICBTdGFydCAgICAgICBFbmQgICBTZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiLS0tLS0gQm9vdGluZm8gLS0tLS1cbiIKKyJCb290ZmlsZTogJXNcbiIKKyItLS0tLSBEaXJlY3RvcnkgRW50cmllcyAtLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJTJkOiAlLTEwcyBzZWN0b3IlNXUgc2l6ZSU4dVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkludmFsaWQgQm9vdGZpbGUhXG4iCisiXHRUaGUgYm9vdGZpbGUgbXVzdCBiZSBhbiBhYnNvbHV0ZSBub24temVybyBwYXRobmFtZSxcbiIKKyJcdGUuZy4gXCIvdW5peFwiIG9yIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0TmFtZSBvZiBCb290ZmlsZSB0b28gbG9uZzogIDE2IGJ5dGVzIG1heGltdW0uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCb290ZmlsZSBtdXN0IGhhdmUgYSBmdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjMxMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiXHRCZSBhd2FyZSwgdGhhdCB0aGUgYm9vdGZpbGUgaXMgbm90IGNoZWNrZWQgZm9yIGV4aXN0ZW5jZS5cbiIKKyJcdFNHSSdzIGRlZmF1bHQgaXMgXCIvdW5peFwiIGFuZCBmb3IgYmFja3VwIFwiL3VuaXguc2F2ZVwiLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlx0Qm9vdGZpbGUgaXMgY2hhbmdlZCB0byBcIiVzXCIuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQyNgorIywgYy1mb3JtYXQKK21zZ2lkICJNb3JlIHRoYW4gb25lIGVudGlyZSBkaXNrIGVudHJ5IHByZXNlbnQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQzMyBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzgzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHBhcnRpdGlvbnMgZGVmaW5lZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiSVJJWCBsaWtlcyB3aGVuIFBhcnRpdGlvbiAxMSBjb3ZlcnMgdGhlIGVudGlyZSBkaXNrLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBlbnRpcmUgZGlzayBwYXJ0aXRpb24gc2hvdWxkIHN0YXJ0IGF0IGJsb2NrIDAsXG4iCisibm90IGF0IGRpc2tibG9jayAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZW50aXJlIGRpc2sgcGFydGl0aW9uIGlzIG9ubHkgJWQgZGlza2Jsb2NrIGxhcmdlLFxuIgorImJ1dCB0aGUgZGlzayBpcyAlZCBkaXNrYmxvY2tzIGxvbmcuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJPbmUgUGFydGl0aW9uICgjMTEpIHNob3VsZCBjb3ZlciB0aGUgZW50aXJlIGRpc2suXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2MworIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3Qgc3RhcnQgb24gY3lsaW5kZXIgYm91bmRhcnkuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjQ2OQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZW5kIG9uIGN5bGluZGVyIGJvdW5kYXJ5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIFBhcnRpdGlvbiAlZCBhbmQgJWQgb3ZlcmxhcCBieSAlZCBzZWN0b3JzLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo0ODQgZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzZWQgZ2FwIG9mICU4dSBzZWN0b3JzIC0gc2VjdG9ycyAlOHUtJXVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJUaGUgYm9vdCBwYXJ0aXRpb24gZG9lcyBub3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVGhlIHN3YXAgcGFydGl0aW9uIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlRoZSBzd2FwIHBhcnRpdGlvbiBoYXMgbm8gc3dhcCB0eXBlLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRZb3UgaGF2ZSBjaG9zZW4gYW4gdW51c3VhbCBib290IGZpbGUgbmFtZS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5IFlvdSBtYXkgY2hhbmdlIHRoZSBUYWcgb2Ygbm9uLWVtcHR5IHBhcnRpdGlvbnMuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjUzOAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB0aGUgcGFydGl0aW9uIGF0IG9mZnNldCAwXG4iCisiaXMgb2YgdHlwZSBcIlNHSSB2b2xoZHJcIiwgdGhlIElSSVggc3lzdGVtIHdpbGwgcmVseSBvbiBpdCB0b1xuIgorInJldHJpZXZlIGZyb20gaXRzIGRpcmVjdG9yeSBzdGFuZGFsb25lIHRvb2xzIGxpa2Ugc2FzaCBhbmQgZnguXG4iCisiT25seSB0aGUgXCJTR0kgdm9sdW1lXCIgZW50aXJlIGRpc2sgc2VjdGlvbiBtYXkgdmlvbGF0ZSB0aGlzLlxuIgorIlR5cGUgWUVTIGlmIHlvdSBhcmUgc3VyZSBhYm91dCB0YWdnaW5nIHRoaXMgcGFydGl0aW9uIGRpZmZlcmVudGx5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NDMgZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU0OQorbXNnaWQgIllFU1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo1NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gWW91IGtub3csIFlvdSBnb3QgYSBwYXJ0aXRpb24gb3ZlcmxhcCBvbiB0aGUgZGlzaz9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkF0dGVtcHRpbmcgdG8gZ2VuZXJhdGUgZW50aXJlIGRpc2sgZW50cnkgYXV0b21hdGljYWxseS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRoZSBlbnRpcmUgZGlzayBpcyBhbHJlYWR5IGNvdmVyZWQgd2l0aCBwYXJ0aXRpb25zLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGdvdCBhIHBhcnRpdGlvbiBvdmVybGFwIG9uIHRoZSBkaXNrLiBGaXggaXQgZmlyc3QhXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjY0NCBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjczCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCBlbGV2ZW50aCBwYXJ0aXRpb25cbiIKKyJjb3ZlcnMgdGhlIGVudGlyZSBkaXNrIGFuZCBpcyBvZiB0eXBlIGBTR0kgdm9sdW1lJ1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IHdpbGwgZ2V0IGEgcGFydGl0aW9uIG92ZXJsYXAgb24gdGhlIGRpc2suIEZpeCBpdCBmaXJzdCFcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiBMYXN0ICVzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkJ1aWxkaW5nIGEgbmV3IFNHSSBkaXNrbGFiZWwuIENoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksXG4iCisidW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLiBBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91c1xuIgorImNvbnRlbnQgd2lsbCBiZSB1bnJlY292ZXJhYmx5IGxvc3QuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzZ2lsYWJlbC5jOjcxOCBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjIyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiAgQkxLR0VUU0laRSBpb2N0bCBmYWlsZWQgb24gJXMuICBVc2luZyBnZW9tZXRyeSBjeWxpbmRlciB2YWx1ZSBvZiAlIgorImQuXG4iCisiVGhpcyB2YWx1ZSBtYXkgYmUgdHJ1bmNhdGVkIGZvciBkZXZpY2VzID4gMzMuOCBHQi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3NnaWxhYmVsLmM6NzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyB0byBrZWVwIHBhcmFtZXRlcnMgb2YgcGFydGl0aW9uICVkLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc2dpbGFiZWwuYzo3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiSUQ9JTAyeFx0U1RBUlQ9JWRcdExFTkdUSD0lZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOAorbXNnaWQgIlVuYXNzaWduZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQwCittc2dpZCAiU3VuT1Mgcm9vdCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDEKK21zZ2lkICJTdW5PUyBzd2FwIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0MgorbXNnaWQgIlN1bk9TIHVzciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDMKK21zZ2lkICJXaG9sZSBkaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NAorbXNnaWQgIlN1bk9TIHN0YW5kIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NQorbXNnaWQgIlN1bk9TIHZhciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDYKK21zZ2lkICJTdW5PUyBob21lIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NworbXNnaWQgIlN1bk9TIGFsdCBzZWN0b3JzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0OAorbXNnaWQgIlN1bk9TIGNhY2hlZnMiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ5Cittc2dpZCAiU3VuT1MgcmVzZXJ2ZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjUzIGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAzCittc2dpZCAiTGludXggcmFpZCBhdXRvZGV0ZWN0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBjaGVja3N1bS5cbiIKKyJQcm9iYWJseSB5b3UnbGwgaGF2ZSB0byBzZXQgYWxsIHRoZSB2YWx1ZXMsXG4iCisiZS5nLiBoZWFkcywgc2VjdG9ycywgY3lsaW5kZXJzIGFuZCBwYXJ0aXRpb25zXG4iCisib3IgZm9yY2UgYSBmcmVzaCBsYWJlbCAocyBjb21tYW5kIGluIG1haW4gbWVudSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyB2ZXJzaW9uIFsweCUwOHhdLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGV0ZWN0ZWQgc3VuIGRpc2tsYWJlbCB3aXRoIHdyb25nIHNhbml0eSBbMHglMDh4XS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRldGVjdGVkIHN1biBkaXNrbGFiZWwgd2l0aCB3cm9uZyBudW1fcGFydGl0aW9ucyBbJXVdLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IFdyb25nIHZhbHVlcyBuZWVkIHRvIGJlIGZpeGVkIHVwIGFuZCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjE5MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQnVpbGRpbmcgYSBuZXcgc3VuIGRpc2tsYWJlbC4gQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSxcbiIKKyJ1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uIEFmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzXG4iCisiY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS5cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MjMxCittc2dpZCAiU2VjdG9ycy90cmFjayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIlBhcnRpdGlvbiAlZCBkb2Vzbid0IGVuZCBvbiBjeWxpbmRlciBib3VuZGFyeVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGFydGl0aW9uICVkIG92ZXJsYXBzIHdpdGggb3RoZXJzIGluIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6Mzg4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVudXNlZCBnYXAgLSBzZWN0b3JzIDAtJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6MzkwIGZkaXNrL2ZkaXNrc3VubGFiZWwuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW51c2VkIGdhcCAtIHNlY3RvcnMgJWQtJWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdGhlciBwYXJ0aXRpb25zIGFscmVhZHkgY292ZXIgdGhlIHdob2xlIGRpc2suXG4iCisiRGVsZXRlIHNvbWUvc2hyaW5rIHRoZW0gYmVmb3JlIHJldHJ5LlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo0NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSB0aGlyZCBwYXJ0aXRpb24gY292ZXJzIHRoZSB3aG9sZSBkaXNrXG4iCisiYW5kIGlzIG9mIHR5cGUgYFdob2xlIGRpc2snXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjQ3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTZWN0b3IgJWQgaXMgYWxyZWFkeSBhbGxvY2F0ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgaGF2ZW4ndCBjb3ZlcmVkIHRoZSB3aG9sZSBkaXNrIHdpdGggdGhlIDNyZCBwYXJ0aXRpb24sIGJ1dCB5b3VyIHZhbHVlXG4iCisiJWQgJXMgY292ZXJzIHNvbWUgb3RoZXIgcGFydGl0aW9uLiBZb3VyIGVudHJ5IGhhcyBiZWVuIGNoYW5nZWRcbiIKKyJ0byAlZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklmIHlvdSB3YW50IHRvIG1haW50YWluIFN1bk9TL1NvbGFyaXMgY29tcGF0aWJpbGl0eSwgY29uc2lkZXIgbGVhdmluZyB0aGlzXG4iCisicGFydGl0aW9uIGFzIFdob2xlIGRpc2sgKDUpLCBzdGFydGluZyBhdCAwLCB3aXRoICV1IHNlY3RvcnNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NTQ0Cittc2dpZCAiIgorIkl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYXJ0aXRpb24gYXQgb2Zmc2V0IDBcbiIKKyJpcyBVRlMsIEVYVDJGUyBmaWxlc3lzdGVtIG9yIFN1bk9TIHN3YXAuIFB1dHRpbmcgTGludXggc3dhcFxuIgorInRoZXJlIG1heSBkZXN0cm95IHlvdXIgcGFydGl0aW9uIHRhYmxlIGFuZCBib290YmxvY2suXG4iCisiVHlwZSBZRVMgaWYgeW91J3JlIHZlcnkgc3VyZSB5b3Ugd291bGQgbGlrZSB0aGF0IHBhcnRpdGlvblxuIgorInRhZ2dlZCB3aXRoIDgyIChMaW51eCBzd2FwKTogIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXMgKFN1biBkaXNrIGxhYmVsKTogJWQgaGVhZHMsICVsbHUgc2VjdG9ycywgJWQgcnBtXG4iCisiJWQgY3lsaW5kZXJzLCAlZCBhbHRlcm5hdGUgY3lsaW5kZXJzLCAlZCBwaHlzaWNhbCBjeWxpbmRlcnNcbiIKKyIlZCBleHRyYSBzZWN0cy9jeWwsIGludGVybGVhdmUgJWQ6MVxuIgorIkxhYmVsIElEOiAlc1xuIgorIlZvbHVtZSBJRDogJXNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRGlzayAlcyAoU3VuIGRpc2sgbGFiZWwpOiAlZCBoZWFkcywgJWxsdSBzZWN0b3JzLCAlZCBjeWxpbmRlcnNcbiIKKyJVbml0cyA9ICVzIG9mICVkICogNTEyIGJ5dGVzXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjU5NworIywgYy1mb3JtYXQKK21zZ2lkICIlKnMgRmxhZyAgICBTdGFydCAgICAgICBFbmQgICAgQmxvY2tzICAgSWQgIFN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2MjUKK21zZ2lkICJOdW1iZXIgb2YgYWx0ZXJuYXRlIGN5bGluZGVycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjM3Cittc2dpZCAiRXh0cmEgc2VjdG9ycyBwZXIgY3lsaW5kZXIiCittc2dzdHIgIiIKKworIzogZmRpc2svZmRpc2tzdW5sYWJlbC5jOjY0NAorbXNnaWQgIkludGVybGVhdmUgZmFjdG9yIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2ZkaXNrc3VubGFiZWwuYzo2NTEKK21zZ2lkICJSb3RhdGlvbiBzcGVlZCAocnBtKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9mZGlza3N1bmxhYmVsLmM6NjU4Cittc2dpZCAiTnVtYmVyIG9mIHBoeXNpY2FsIGN5bGluZGVycyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYKK21zZ2lkICJFbXB0eSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjcKK21zZ2lkICJGQVQxMiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgKK21zZ2lkICJYRU5JWCByb290IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OQorbXNnaWQgIlhFTklYIHVzciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwCittc2dpZCAiRkFUMTYgPDMyTSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjExCittc2dpZCAiRXh0ZW5kZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMgorbXNnaWQgIkZBVDE2IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTMKK21zZ2lkICJIUEZTL05URlMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxNAorbXNnaWQgIkFJWCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE1Cittc2dpZCAiQUlYIGJvb3RhYmxlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTYKK21zZ2lkICJPUy8yIEJvb3QgTWFuYWdlciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjE3Cittc2dpZCAiVzk1IEZBVDMyIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTgKK21zZ2lkICJXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxOQorbXNnaWQgIlc5NSBGQVQxNiAoTEJBKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjIwCittc2dpZCAiVzk1IEV4dCdkIChMQkEpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjEKK21zZ2lkICJPUFVTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MjIKK21zZ2lkICJIaWRkZW4gRkFUMTIiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyMworbXNnaWQgIkNvbXBhcSBkaWFnbm9zdGljcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI0Cittc2dpZCAiSGlkZGVuIEZBVDE2IDwzMk0iCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyNQorbXNnaWQgIkhpZGRlbiBGQVQxNiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI2Cittc2dpZCAiSGlkZGVuIEhQRlMvTlRGUyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjI3Cittc2dpZCAiQVNUIFNtYXJ0U2xlZXAiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoyOQorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMzIgKExCQSkiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMAorbXNnaWQgIkhpZGRlbiBXOTUgRkFUMTYgKExCQSkiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMQorbXNnaWQgIk5FQyBET1MiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozMgorbXNnaWQgIlBsYW4gOSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjMzCittc2dpZCAiUGFydGl0aW9uTWFnaWMgcmVjb3ZlcnkiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNAorbXNnaWQgIlZlbml4IDgwMjg2IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzUKK21zZ2lkICJQUEMgUFJlUCBCb290IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzYKK21zZ2lkICJTRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzozNworbXNnaWQgIlFOWDQueCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjM4Cittc2dpZCAiUU5YNC54IDJuZCBwYXJ0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MzkKK21zZ2lkICJRTlg0LnggM3JkIHBhcnQiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MAorbXNnaWQgIk9uVHJhY2sgRE0iCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MQorbXNnaWQgIk9uVHJhY2sgRE02IEF1eDEiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MgorbXNnaWQgIkNQL00iCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0MworbXNnaWQgIk9uVHJhY2sgRE02IEF1eDMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NAorbXNnaWQgIk9uVHJhY2tETTYiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo0NQorbXNnaWQgIkVaLURyaXZlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDYKK21zZ2lkICJHb2xkZW4gQm93IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NDcKK21zZ2lkICJQcmlhbSBFZGlzayIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ4IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTIKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTggZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5OQorbXNnaWQgIlNwZWVkU3RvciIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjQ5Cittc2dpZCAiR05VIEhVUkQgb3IgU3lzViIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUwCittc2dpZCAiTm92ZWxsIE5ldHdhcmUgMjg2IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTEKK21zZ2lkICJOb3ZlbGwgTmV0d2FyZSAzODYiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1MgorbXNnaWQgIkRpc2tTZWN1cmUgTXVsdGktQm9vdCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjUzCittc2dpZCAiUEMvSVgiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NAorbXNnaWQgIk9sZCBNaW5peCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU1Cittc2dpZCAiTWluaXggLyBvbGQgTGludXgiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo1NgorbXNnaWQgIkxpbnV4IHN3YXAgLyBTb2xhcmlzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NTgKK21zZ2lkICJPUy8yIGhpZGRlbiBDOiBkcml2ZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjU5Cittc2dpZCAiTGludXggZXh0ZW5kZWQiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2MCBmZGlzay9pMzg2X3N5c190eXBlcy5jOjYxCittc2dpZCAiTlRGUyB2b2x1bWUgc2V0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjIKK21zZ2lkICJMaW51eCBwbGFpbnRleHQiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2NAorbXNnaWQgIkFtb2ViYSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY1Cittc2dpZCAiQW1vZWJhIEJCVCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjY2Cittc2dpZCAiQlNEL09TIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NjcKK21zZ2lkICJJQk0gVGhpbmtwYWQgaGliZXJuYXRpb24iCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OAorbXNnaWQgIkZyZWVCU0QiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo2OQorbXNnaWQgIk9wZW5CU0QiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MAorbXNnaWQgIk5lWFRTVEVQIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzEKK21zZ2lkICJEYXJ3aW4gVUZTIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzIKK21zZ2lkICJOZXRCU0QiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3MworbXNnaWQgIkRhcndpbiBib290IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzQKK21zZ2lkICJIRlMgLyBIRlMrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzUKK21zZ2lkICJCU0RJIGZzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzYKK21zZ2lkICJCU0RJIHN3YXAiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo3NworbXNnaWQgIkJvb3QgV2l6YXJkIGhpZGRlbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjc4Cittc2dpZCAiU29sYXJpcyBib290IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6NzkKK21zZ2lkICJTb2xhcmlzIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODAKK21zZ2lkICJEUkRPUy9zZWMgKEZBVC0xMikiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4MQorbXNnaWQgIkRSRE9TL3NlYyAoRkFULTE2IDwgMzJNKSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjgyCittc2dpZCAiRFJET1Mvc2VjIChGQVQtMTYpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODMKK21zZ2lkICJTeXJpbngiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4NAorbXNnaWQgIk5vbi1GUyBkYXRhIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODUKK21zZ2lkICJDUC9NIC8gQ1RPUyAvIC4uLiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjg3Cittc2dpZCAiRGVsbCBVdGlsaXR5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6ODgKK21zZ2lkICJCb290SXQiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo4OQorbXNnaWQgIkRPUyBhY2Nlc3MiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5MQorbXNnaWQgIkRPUyBSL08iCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NAorbXNnaWQgIkJlT1MgZnMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzo5NQorbXNnaWQgIkdQVCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjk2Cittc2dpZCAiRUZJIChGQVQtMTIvMTYvMzIpIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6OTcKK21zZ2lkICJMaW51eC9QQS1SSVNDIGJvb3QiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDAKK21zZ2lkICJET1Mgc2Vjb25kYXJ5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL2kzODZfc3lzX3R5cGVzLmM6MTAxCittc2dpZCAiVk13YXJlIFZNRlMiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDIKK21zZ2lkICJWTXdhcmUgVk1LQ09SRSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9pMzg2X3N5c190eXBlcy5jOjEwNgorbXNnaWQgIkxBTnN0ZXAiCittc2dzdHIgIiIKKworIzogZmRpc2svaTM4Nl9zeXNfdHlwZXMuYzoxMDcKK21zZ2lkICJCQlQiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInNlZWsgZXJyb3Igb24gJXMgLSBjYW5ub3Qgc2VlayB0byAlbHVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VlayBlcnJvcjogd2FudGVkIDB4JTA4eCUwOHgsIGdvdCAweCUwOHglMDh4XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1Cittc2dpZCAib3V0IG9mIG1lbW9yeSAtIGdpdmluZyB1cFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMCBmZGlzay9zZmRpc2suYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCBlcnJvciBvbiAlcyAtIGNhbm5vdCByZWFkIHNlY3RvciAlbHVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRVJST1I6IHNlY3RvciAlbHUgZG9lcyBub3QgaGF2ZSBhbiBtc2RvcyBzaWduYXR1cmVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGUgZXJyb3Igb24gJXMgLSBjYW5ub3Qgd3JpdGUgc2VjdG9yICVsdVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI5MQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYXJ0aXRpb24gc2VjdG9yIHNhdmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlIGVycm9yIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBzdGF0IHBhcnRpdGlvbiByZXN0b3JlIGZpbGUgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjM0MAorbXNnaWQgInBhcnRpdGlvbiByZXN0b3JlIGZpbGUgaGFzIHdyb25nIHNpemUgLSBub3QgcmVzdG9yaW5nXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzQ0Cittc2dpZCAib3V0IG9mIG1lbW9yeT9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gcGFydGl0aW9uIHJlc3RvcmUgZmlsZSAoJXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHJlYWRpbmcgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IG9wZW4gZGV2aWNlICVzIGZvciB3cml0aW5nXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mzc1CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgc2VjdG9yICVsdSBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICJEaXNrICVzOiBjYW5ub3QgZ2V0IGdlb21ldHJ5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6NDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkRpc2sgJXM6IGNhbm5vdCBnZXQgc2l6ZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogc3RhcnQ9JWx1IC0gdGhpcyBsb29rcyBsaWtlIGEgcGFydGl0aW9uIHJhdGhlciB0aGFuXG4iCisidGhlIGVudGlyZSBkaXNrLiBVc2luZyBmZGlzayBvbiBpdCBpcyBwcm9iYWJseSBtZWFuaW5nbGVzcy5cbiIKKyJbVXNlIHRoZSAtLWZvcmNlIG9wdGlvbiBpZiB5b3UgcmVhbGx5IHdhbnQgdGhpc11cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgaGVhZHNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogSERJT19HRVRHRU8gc2F5cyB0aGF0IHRoZXJlIGFyZSAlbHUgc2VjdG9yc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBCTEtHRVRTSVpFL0hESU9fR0VUR0VPIHNheXMgdGhhdCB0aGVyZSBhcmUgJWx1IGN5bGluZGVyc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjUwOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiV2FybmluZzogdW5saWtlbHkgbnVtYmVyIG9mIHNlY3RvcnMgKCVsdSkgLSB1c3VhbGx5IGF0IG1vc3QgNjNcbiIKKyJUaGlzIHdpbGwgZ2l2ZSBwcm9ibGVtcyB3aXRoIGFsbCBzb2Z0d2FyZSB0aGF0IHVzZXMgQy9IL1MgYWRkcmVzc2luZy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo1MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkRpc2sgJXM6ICVsdSBjeWxpbmRlcnMsICVsdSBoZWFkcywgJWx1IHNlY3RvcnMvdHJhY2tcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo1OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIG9mIHBhcnRpdGlvbiAlcyBoYXMgaW1wb3NzaWJsZSB2YWx1ZSBmb3IgaGVhZDogJWx1IChzaG91bGQgYmUgaW4gMC0lbHUpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6NjAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBvZiBwYXJ0aXRpb24gJXMgaGFzIGltcG9zc2libGUgdmFsdWUgZm9yIHNlY3RvcjogJWx1IChzaG91bGQgYmUgaW4gMS0lIgorImx1KVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjYwNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXMgb2YgcGFydGl0aW9uICVzIGhhcyBpbXBvc3NpYmxlIHZhbHVlIGZvciBjeWxpbmRlcnM6ICVsdSAoc2hvdWxkIGJlIGluIDAtJSIKKyJsdSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo2NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIklkICBOYW1lXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlLXJlYWRpbmcgdGhlIHBhcnRpdGlvbiB0YWJsZSAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo4MTEKK21zZ2lkICIiCisiVGhlIGNvbW1hbmQgdG8gcmUtcmVhZCB0aGUgcGFydGl0aW9uIHRhYmxlIGZhaWxlZC5cbiIKKyJSdW4gcGFydHByb2JlKDgpLCBrcGFydHgoOCkgb3IgcmVib290IHlvdXIgc3lzdGVtIG5vdyxcbiIKKyJiZWZvcmUgdXNpbmcgbWtmc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjgxNworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjbG9zaW5nICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6ODU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBubyBzdWNoIHBhcnRpdGlvblxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjg3OAorbXNnaWQgInVucmVjb2duaXplZCBmb3JtYXQgLSB1c2luZyBzZWN0b3JzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTI5CisjLCBjLWZvcm1hdAorbXNnaWQgInVuaW1wbGVtZW50ZWQgZm9ybWF0IC0gdXNpbmcgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVuaXRzID0gY3lsaW5kZXJzIG9mICVsdSBieXRlcywgYmxvY2tzIG9mIDEwMjQgYnl0ZXMsIGNvdW50aW5nIGZyb20gJWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzo5MzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgRGV2aWNlIEJvb3QgU3RhcnQgICAgIEVuZCAgICNjeWxzICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IHNlY3RvcnMgb2YgNTEyIGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgIFN0YXJ0ICAgICAgIEVuZCAgICNzZWN0b3JzICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IGJsb2NrcyBvZiAxMDI0IGJ5dGVzLCBjb3VudGluZyBmcm9tICVkXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIERldmljZSBCb290ICAgU3RhcnQgICAgICAgRW5kICAgICNibG9ja3MgICBJZCAgU3lzdGVtXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6OTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVbml0cyA9IG1lYmlieXRlcyBvZiAxMDQ4NTc2IGJ5dGVzLCBibG9ja3Mgb2YgMTAyNCBieXRlcywgY291bnRpbmcgZnJvbSAlZFxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjk1MworIywgYy1mb3JtYXQKK21zZ2lkICIgICBEZXZpY2UgQm9vdCBTdGFydCAgIEVuZCAgICBNaUIgICAgI2Jsb2NrcyAgIElkICBTeXN0ZW1cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRzdGFydDogKGMsaCxzKSBleHBlY3RlZCAoJWxkLCVsZCwlbGQpIGZvdW5kICglbGQsJWxkLCVsZClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTIwCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0XHRlbmQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEyMworIywgYy1mb3JtYXQKK21zZ2lkICJwYXJ0aXRpb24gZW5kcyBvbiBjeWxpbmRlciAlbGQsIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBkaXNrXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTEzMworbXNnaWQgIk5vIHBhcnRpdGlvbnMgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBUaGUgcGFydGl0aW9uIHRhYmxlIGxvb2tzIGxpa2UgaXQgd2FzIG1hZGVcbiIKKyIgIGZvciBDL0gvUz0qLyVsZC8lbGQgKGluc3RlYWQgb2YgJWxkLyVsZC8lbGQpLlxuIgorIkZvciB0aGlzIGxpc3RpbmcgSSdsbCBhc3N1bWUgdGhhdCBnZW9tZXRyeS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTg2Cittc2dpZCAibm8gcGFydGl0aW9uIHRhYmxlIHByZXNlbnQuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTE4OAorIywgYy1mb3JtYXQKK21zZ2lkICJzdHJhbmdlLCBvbmx5ICVkIHBhcnRpdGlvbnMgZGVmaW5lZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGJ1dCBpcyBub3QgbWFya2VkIEVtcHR5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgaGFzIHNpemUgMCBhbmQgaXMgYm9vdGFibGVcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBoYXMgc2l6ZSAwIGFuZCBub256ZXJvIHN0YXJ0XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTIxNAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgbm90IGNvbnRhaW5lZCBpbiBwYXJ0aXRpb24gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbnMgJXMgIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiYW5kICVzIG92ZXJsYXBcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgY29udGFpbnMgcGFydCBvZiB0aGUgcGFydGl0aW9uIHRhYmxlIChzZWN0b3IgJWx1KSxcbiIKKyJhbmQgd2lsbCBkZXN0cm95IGl0IHdoZW4gZmlsbGVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgc3RhcnRzIGF0IHNlY3RvciAwXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZXh0ZW5kcyBwYXN0IGVuZCBvZiBkaXNrXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI2OQorbXNnaWQgIiIKKyJBbW9uZyB0aGUgcHJpbWFyeSBwYXJ0aXRpb25zLCBhdCBtb3N0IG9uZSBjYW4gYmUgZXh0ZW5kZWRcbiIKKyIgKGFsdGhvdWdoIHRoaXMgaXMgbm90IGEgcHJvYmxlbSB1bmRlciBMaW51eClcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IHBhcnRpdGlvbiAlcyBkb2VzIG5vdCBzdGFydCBhdCBhIGN5bGluZGVyIGJvdW5kYXJ5XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTI5MworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiBwYXJ0aXRpb24gJXMgZG9lcyBub3QgZW5kIGF0IGEgY3lsaW5kZXIgYm91bmRhcnlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzExCittc2dpZCAiIgorIldhcm5pbmc6IG1vcmUgdGhhbiBvbmUgcHJpbWFyeSBwYXJ0aXRpb24gaXMgbWFya2VkIGJvb3RhYmxlIChhY3RpdmUpXG4iCisiVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sIGJ1dCB0aGUgRE9TIE1CUiB3aWxsIG5vdCBib290IHRoaXMgZGlzay5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzE4Cittc2dpZCAiIgorIldhcm5pbmc6IHVzdWFsbHkgb25lIGNhbiBib290IGZyb20gcHJpbWFyeSBwYXJ0aXRpb25zIG9ubHlcbiIKKyJMSUxPIGRpc3JlZ2FyZHMgdGhlIGBib290YWJsZScgZmxhZy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzI0Cittc2dpZCAiIgorIldhcm5pbmc6IG5vIHByaW1hcnkgcGFydGl0aW9uIGlzIG1hcmtlZCBib290YWJsZSAoYWN0aXZlKVxuIgorIlRoaXMgZG9lcyBub3QgbWF0dGVyIGZvciBMSUxPLCBidXQgdGhlIERPUyBNQlIgd2lsbCBub3QgYm9vdCB0aGlzIGRpc2suXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTMzOAorbXNnaWQgInN0YXJ0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorInBhcnRpdGlvbiAlczogc3RhcnQ6IChjLGgscykgZXhwZWN0ZWQgKCVsZCwlbGQsJWxkKSBmb3VuZCAoJWxkLCVsZCwlbGQpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM0NworbXNnaWQgImVuZCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxMzUwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlczogZW5kOiAoYyxoLHMpIGV4cGVjdGVkICglbGQsJWxkLCVsZCkgZm91bmQgKCVsZCwlbGQsJWxkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFydGl0aW9uICVzIGVuZHMgb24gY3lsaW5kZXIgJWxkLCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZGlza1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjEzNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHNoaWZ0ZWQgc3RhcnQgb2YgdGhlIGV4dGQgcGFydGl0aW9uIGZyb20gJWxkIHRvICVsZFxuIgorIihGb3IgbGlzdGluZyBwdXJwb3NlcyBvbmx5LiBEbyBub3QgY2hhbmdlIGl0cyBjb250ZW50cy4pXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTM4NAorbXNnaWQgIiIKKyJXYXJuaW5nOiBleHRlbmRlZCBwYXJ0aXRpb24gZG9lcyBub3Qgc3RhcnQgYXQgYSBjeWxpbmRlciBib3VuZGFyeS5cbiIKKyJET1MgYW5kIExpbnV4IHdpbGwgaW50ZXJwcmV0IHRoZSBjb250ZW50cyBkaWZmZXJlbnRseS5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNDAyIGZkaXNrL3NmZGlzay5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidG9vIG1hbnkgcGFydGl0aW9ucyAtIGlnbm9yaW5nIHRob3NlIHBhc3QgbnIgKCVkKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE0MTcKK21zZ2lkICJ0cmVlIG9mIHBhcnRpdGlvbnM/XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTUyNQorbXNnaWQgImRldGVjdGVkIERpc2sgTWFuYWdlciAtIHVuYWJsZSB0byBoYW5kbGUgdGhhdFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE1MzIKK21zZ2lkICJETTYgc2lnbmF0dXJlIGZvdW5kIC0gZ2l2aW5nIHVwXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1MgorbXNnaWQgInN0cmFuZ2UuLi4sIGFuIGV4dGVuZGVkIHBhcnRpdGlvbiBvZiBzaXplIDA/XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTU1OSBmZGlzay9zZmRpc2suYzoxNTcwCittc2dpZCAic3RyYW5nZS4uLiwgYSBCU0QgcGFydGl0aW9uIG9mIHNpemUgMD9cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjA0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAlczogdW5yZWNvZ25pemVkIHBhcnRpdGlvbiB0YWJsZSB0eXBlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTYxNgorbXNnaWQgIi1uIGZsYWcgd2FzIGdpdmVuOiBOb3RoaW5nIGNoYW5nZWRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNjMyCittc2dpZCAiRmFpbGVkIHNhdmluZyB0aGUgb2xkIHNlY3RvcnMgLSBhYm9ydGluZ1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE2MzcgZmRpc2svc2ZkaXNrLmM6MTY0MgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgd3JpdGluZyB0aGUgcGFydGl0aW9uIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MTcxOQorbXNnaWQgImxvbmcgb3IgaW5jb21wbGV0ZSBpbnB1dCBsaW5lIC0gcXVpdHRpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzU1CisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiBgPScgZXhwZWN0ZWQgYWZ0ZXIgJXMgZmllbGRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoxNzYyCisjLCBjLWZvcm1hdAorbXNnaWQgImlucHV0IGVycm9yOiB1bmV4cGVjdGVkIGNoYXJhY3RlciAlYyBhZnRlciAlcyBmaWVsZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE3NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGlucHV0OiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTAKK21zZ2lkICJudW1iZXIgdG9vIGJpZ1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE4MTQKK21zZ2lkICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5MzgKK21zZ2lkICJubyByb29tIGZvciBwYXJ0aXRpb24gZGVzY3JpcHRvclxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjE5NzEKK21zZ2lkICJjYW5ub3QgYnVpbGQgc3Vycm91bmRpbmcgZXh0ZW5kZWQgcGFydGl0aW9uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjAyMgorbXNnaWQgInRvbyBtYW55IGlucHV0IGZpZWxkc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIwNTYKK21zZ2lkICJObyByb29tIGZvciBtb3JlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjA3NQorbXNnaWQgIklsbGVnYWwgdHlwZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogZ2l2ZW4gc2l6ZSAoJWx1KSBleGNlZWRzIG1heCBhbGxvd2FibGUgc2l6ZSAoJWx1KVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxMTMKK21zZ2lkICJXYXJuaW5nOiBlbXB0eSBwYXJ0aXRpb25cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTI3CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IGJhZCBwYXJ0aXRpb24gc3RhcnQgKGVhcmxpZXN0ICVsdSlcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMTQwCittc2dpZCAidW5yZWNvZ25pemVkIGJvb3RhYmxlIGZsYWcgLSBjaG9vc2UgLSBvciAqXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjE1NyBmZGlzay9zZmRpc2suYzoyMTcwCittc2dpZCAicGFydGlhbCBjLGgscyBzcGVjaWZpY2F0aW9uP1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIxODEKK21zZ2lkICJFeHRlbmRlZCBwYXJ0aXRpb24gbm90IHdoZXJlIGV4cGVjdGVkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjIxMworbXNnaWQgImJhZCBpbnB1dFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyMzUKK21zZ2lkICJ0b28gbWFueSBwYXJ0aXRpb25zXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI2OAorbXNnaWQgIiIKKyJJbnB1dCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDsgYWJzZW50IGZpZWxkcyBnZXQgYSBkZWZhdWx0IHZhbHVlLlxuIgorIjxzdGFydD4gPHNpemU+IDx0eXBlIFtFLFMsTCxYLGhleF0+IDxib290YWJsZSBbLSwqXT4gPGMsaCxzPiA8YyxoLHM+XG4iCisiVXN1YWxseSB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgPHN0YXJ0PiBhbmQgPHNpemU+IChhbmQgcGVyaGFwcyA8dHlwZT4pLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIyOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFtvcHRpb25zXSBkZXZpY2UgLi4uXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NQorbXNnaWQgImRldmljZTogc29tZXRoaW5nIGxpa2UgL2Rldi9oZGEgb3IgL2Rldi9zZGEiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5NgorbXNnaWQgInVzZWZ1bCBvcHRpb25zOiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk3Cittc2dpZCAiICAgIC1zIFtvciAtLXNob3ctc2l6ZV06IGxpc3Qgc2l6ZSBvZiBhIHBhcnRpdGlvbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMjk4Cittc2dpZCAiICAgIC1jIFtvciAtLWlkXTogICAgICAgIHByaW50IG9yIGNoYW5nZSBwYXJ0aXRpb24gSWQiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjI5OQorbXNnaWQgIiAgICAtbCBbb3IgLS1saXN0XTogICAgICBsaXN0IHBhcnRpdGlvbnMgb2YgZWFjaCBkZXZpY2UiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMAorbXNnaWQgIiAgICAtZCBbb3IgLS1kdW1wXTogICAgICBpZGVtLCBidXQgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIGxhdGVyIGlucHV0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDEKK21zZ2lkICIgICAgLWkgW29yIC0taW5jcmVtZW50XTogbnVtYmVyIGN5bGluZGVycyBldGMuIGZyb20gMSBpbnN0ZWFkIG9mIGZyb20gMCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzAyCittc2dpZCAiIgorIiAgICAtdVMsIC11QiwgLXVDLCAtdU06ICBhY2NlcHQvcmVwb3J0IGluIHVuaXRzIG9mIHNlY3RvcnMvYmxvY2tzL2N5bGluZGVycy8iCisiTUIiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwMworbXNnaWQgIiAgICAtVCBbb3IgLS1saXN0LXR5cGVzXTpsaXN0IHRoZSBrbm93biBwYXJ0aXRpb24gdHlwZXMiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwNAorbXNnaWQgIiAgICAtRCBbb3IgLS1ET1NdOiAgICAgICBmb3IgRE9TLWNvbXBhdGliaWxpdHk6IHdhc3RlIGEgbGl0dGxlIHNwYWNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDUKK21zZ2lkICIgICAgLVIgW29yIC0tcmUtcmVhZF06ICAgbWFrZSBrZXJuZWwgcmVyZWFkIHBhcnRpdGlvbiB0YWJsZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA2Cittc2dpZCAiICAgIC1OIyA6ICAgICAgICAgICAgICAgIGNoYW5nZSBvbmx5IHRoZSBwYXJ0aXRpb24gd2l0aCBudW1iZXIgIyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzA3Cittc2dpZCAiICAgIC1uIDogICAgICAgICAgICAgICAgIGRvIG5vdCBhY3R1YWxseSB3cml0ZSB0byBkaXNrIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMDgKK21zZ2lkICIiCisiICAgIC1PIGZpbGUgOiAgICAgICAgICAgIHNhdmUgdGhlIHNlY3RvcnMgdGhhdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHRvIGZpbGUiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMwOQorbXNnaWQgIiAgICAtSSBmaWxlIDogICAgICAgICAgICByZXN0b3JlIHRoZXNlIHNlY3RvcnMgYWdhaW4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMAorbXNnaWQgIiAgICAtdiBbb3IgLS12ZXJzaW9uXTogICBwcmludCB2ZXJzaW9uIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTEKK21zZ2lkICIgICAgLT8gW29yIC0taGVscF06ICAgICAgcHJpbnQgdGhpcyBtZXNzYWdlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTIKK21zZ2lkICJkYW5nZXJvdXMgb3B0aW9uczoiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxMworbXNnaWQgIiAgICAtZyBbb3IgLS1zaG93LWdlb21ldHJ5XTogcHJpbnQgdGhlIGtlcm5lbCdzIGlkZWEgb2YgdGhlIGdlb21ldHJ5IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTQKK21zZ2lkICIiCisiICAgIC1HIFtvciAtLXNob3ctcHQtZ2VvbWV0cnldOiBwcmludCBnZW9tZXRyeSBndWVzc2VkIGZyb20gdGhlIHBhcnRpdGlvbiAiCisidGFibGUiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMxNQorbXNnaWQgIiIKKyIgICAgLXggW29yIC0tc2hvdy1leHRlbmRlZF06IGFsc28gbGlzdCBleHRlbmRlZCBwYXJ0aXRpb25zIG9uIG91dHB1dFxuIgorIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZXhwZWN0IGRlc2NyaXB0b3JzIGZvciB0aGVtIG9uIGlucHV0IgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMTcKK21zZ2lkICIiCisiICAgIC1MICBbb3IgLS1MaW51eF06ICAgICAgZG8gbm90IGNvbXBsYWluIGFib3V0IHRoaW5ncyBpcnJlbGV2YW50IGZvciBMaW51eCIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE4Cittc2dpZCAiICAgIC1xICBbb3IgLS1xdWlldF06ICAgICAgc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcyIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzE5Cittc2dpZCAiICAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRldGVjdGVkIGdlb21ldHJ5IHVzaW5nOiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIwCittc2dpZCAiICAgIC1DIyBbb3IgLS1jeWxpbmRlcnMgI106c2V0IHRoZSBudW1iZXIgb2YgY3lsaW5kZXJzIHRvIHVzZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIxCittc2dpZCAiICAgIC1IIyBbb3IgLS1oZWFkcyAjXTogICAgc2V0IHRoZSBudW1iZXIgb2YgaGVhZHMgdG8gdXNlIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjIzMjIKK21zZ2lkICIgICAgLVMjIFtvciAtLXNlY3RvcnMgI106ICBzZXQgdGhlIG51bWJlciBvZiBzZWN0b3JzIHRvIHVzZSIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzIzCittc2dpZCAiWW91IGNhbiBkaXNhYmxlIGFsbCBjb25zaXN0ZW5jeSBjaGVja2luZyB3aXRoOiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzI0Cittc2dpZCAiICAgIC1mICBbb3IgLS1mb3JjZV06ICAgICAgZG8gd2hhdCBJIHNheSwgZXZlbiBpZiBpdCBpcyBzdHVwaWQiCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjMzMAorbXNnaWQgIlVzYWdlOiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZVx0XHQgbGlzdCBhY3RpdmUgcGFydGl0aW9ucyBvbiBkZXZpY2VcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGRldmljZSBuMSBuMiAuLi4gYWN0aXZhdGUgcGFydGl0aW9ucyBuMSAuLi4sIGluYWN0aXZhdGUgdGhlIHJlc3RcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyMzMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC1BbiBkZXZpY2VcdCBhY3RpdmF0ZSBwYXJ0aXRpb24gbiwgaW5hY3RpdmF0ZSB0aGUgb3RoZXIgb25lc1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldBUk5JTkc6IEdQVCAoR1VJRCBQYXJ0aXRpb24gVGFibGUpIGRldGVjdGVkIG9uICclcychIFRoZSB1dGlsIHNmZGlzayAiCisiZG9lc24ndCBzdXBwb3J0IEdQVC4gVXNlIEdOVSBQYXJ0ZWQuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjQ1NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgdGhlIC0tZm9yY2UgZmxhZyB0byBvdmVycnVsZSB0aGlzIGNoZWNrLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI0OTUKK21zZ2lkICJubyBjb21tYW5kP1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAidG90YWw6ICVsbHUgYmxvY2tzXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3MAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1wcmludC1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI2NzIKK21zZ2lkICJ1c2FnZTogc2ZkaXNrIC0tY2hhbmdlLWlkIGRldmljZSBwYXJ0aXRpb24tbnVtYmVyIElkXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY3NAorbXNnaWQgInVzYWdlOiBzZmRpc2sgLS1pZCBkZXZpY2UgcGFydGl0aW9uLW51bWJlciBbSWRdXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjY4MQorbXNnaWQgImNhbiBzcGVjaWZ5IG9ubHkgb25lIGRldmljZSAoZXhjZXB0IHdpdGggLWwgb3IgLXMpXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwNworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyByZWFkLXdyaXRlXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjcwOQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlcyBmb3IgcmVhZGluZ1xuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjI3MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IE9LXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6Mjc1MyBmZGlzay9zZmRpc2suYzoyNzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlbGQgY3lsaW5kZXJzLCAlbGQgaGVhZHMsICVsZCBzZWN0b3JzL3RyYWNrXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjgwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IHNpemUgb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyODg1CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCBhY3RpdmUgYnl0ZTogMHgleCBpbnN0ZWFkIG9mIDB4ODBcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTAzIGZkaXNrL3NmZGlzay5jOjI5NTggZmRpc2svc2ZkaXNrLmM6Mjk5MQorbXNnaWQgIiIKKyJEb25lXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MjkxMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgJWQgYWN0aXZlIHByaW1hcnkgcGFydGl0aW9ucy4gVGhpcyBkb2VzIG5vdCBtYXR0ZXIgZm9yIExJTE8sXG4iCisiYnV0IHRoZSBET1MgTUJSIHdpbGwgb25seSBib290IGEgZGlzayB3aXRoIDEgYWN0aXZlIHBhcnRpdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTI4CisjLCBjLWZvcm1hdAorbXNnaWQgInBhcnRpdGlvbiAlcyBoYXMgaWQgJXggYW5kIGlzIG5vdCBoaWRkZW5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzoyOTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCBJZCAlbHhcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDA0Cittc2dpZCAiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UuXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzAyMworIywgYy1mb3JtYXQKK21zZ2lkICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzIKK21zZ2lkICJDaGVja2luZyB0aGF0IG5vLW9uZSBpcyB1c2luZyB0aGlzIGRpc2sgcmlnaHQgbm93IC4uLlxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwMzQKK21zZ2lkICIiCisiXG4iCisiVGhpcyBkaXNrIGlzIGN1cnJlbnRseSBpbiB1c2UgLSByZXBhcnRpdGlvbmluZyBpcyBwcm9iYWJseSBhIGJhZCBpZGVhLlxuIgorIlVtb3VudCBhbGwgZmlsZSBzeXN0ZW1zLCBhbmQgc3dhcG9mZiBhbGwgc3dhcCBwYXJ0aXRpb25zIG9uIHRoaXMgZGlzay5cbiIKKyJVc2UgdGhlIC0tbm8tcmVyZWFkIGZsYWcgdG8gc3VwcHJlc3MgdGhpcyBjaGVjay5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDM4Cittc2dpZCAiVXNlIHRoZSAtLWZvcmNlIGZsYWcgdG8gb3ZlcnJ1bGUgYWxsIGNoZWNrcy5cbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDQyCittc2dpZCAiT0tcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDUxCisjLCBjLWZvcm1hdAorbXNnaWQgIk9sZCBzaXR1YXRpb246XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA1NQorIywgYy1mb3JtYXQKK21zZ2lkICJQYXJ0aXRpb24gJWQgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCBjaGFuZ2UgaXRcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDYzCisjLCBjLWZvcm1hdAorbXNnaWQgIk5ldyBzaXR1YXRpb246XG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA2OAorbXNnaWQgIiIKKyJJIGRvbid0IGxpa2UgdGhlc2UgcGFydGl0aW9ucyAtIG5vdGhpbmcgY2hhbmdlZC5cbiIKKyIoSWYgeW91IHJlYWxseSB3YW50IHRoaXMsIHVzZSB0aGUgLS1mb3JjZSBvcHRpb24uKVxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwNzEKK21zZ2lkICJJIGRvbid0IGxpa2UgdGhpcyAtIHByb2JhYmx5IHlvdSBzaG91bGQgYW5zd2VyIE5vXG4iCittc2dzdHIgIiIKKworIzogZmRpc2svc2ZkaXNrLmM6MzA3NgorIywgYy1mb3JtYXQKK21zZ2lkICJBcmUgeW91IHNhdGlzZmllZCB3aXRoIHRoaXM/IFt5bnFdICIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIHlvdSB3YW50IHRvIHdyaXRlIHRoaXMgdG8gZGlzaz8gW3lucV0gIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInNmZGlzazogcHJlbWF0dXJlIGVuZCBvZiBpbnB1dFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwODUKK21zZ2lkICJRdWl0dGluZyAtIG5vdGhpbmcgY2hhbmdlZFxuIgorbXNnc3RyICIiCisKKyM6IGZkaXNrL3NmZGlzay5jOjMwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGxlYXNlIGFuc3dlciBvbmUgb2YgeSxuLHFcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMDk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTdWNjZXNzZnVsbHkgd3JvdGUgdGhlIG5ldyBwYXJ0aXRpb24gdGFibGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBmZGlzay9zZmRpc2suYzozMTA1Cittc2dpZCAiIgorIklmIHlvdSBjcmVhdGVkIG9yIGNoYW5nZWQgYSBET1MgcGFydGl0aW9uLCAvZGV2L2ZvbzcsIHNheSwgdGhlbiB1c2UgZGQoMSlcbiIKKyJ0byB6ZXJvIHRoZSBmaXJzdCA1MTIgYnl0ZXM6ICBkZCBpZj0vZGV2L3plcm8gb2Y9L2Rldi9mb283IGJzPTUxMiBjb3VudD0xXG4iCisiKFNlZSBmZGlzayg4KS4pXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGNvdWxkbid0IG9wZW4gJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MzM2CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IGJhZCBmb3JtYXQgb24gbGluZSAlZCBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjM1MgorbXNnaWQgIiIKKyJXQVJOSU5HOiBZb3VyIC9ldGMvZnN0YWIgZG9lcyBub3QgY29udGFpbiB0aGUgZnNjayBwYXNzbm9cbiIKKyJcdGZpZWxkLiAgSSB3aWxsIGtsdWRnZSBhcm91bmQgdGhpbmdzIGZvciB5b3UsIGJ1dCB5b3VcbiIKKyJcdHNob3VsZCBmaXggeW91ciAvZXRjL2ZzdGFiIGZpbGUgYXMgc29vbiBhcyB5b3UgY2FuLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjQ2MAorIywgYy1mb3JtYXQKK21zZ2lkICJmc2NrOiAlczogbm90IGZvdW5kXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NTc2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWl0OiBObyBtb3JlIGNoaWxkIHByb2Nlc3M/IT9cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZy4uLiAlcyBmb3IgZGV2aWNlICVzIGV4aXRlZCB3aXRoIHNpZ25hbCAlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJXM6IHN0YXR1cyBpcyAleCwgc2hvdWxkIG5ldmVyIGhhcHBlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo2NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluaXNoZWQgd2l0aCAlcyAoZXhpdCBzdGF0dXMgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6NzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBFcnJvciAlZCB3aGlsZSBleGVjdXRpbmcgZnNjay4lcyBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3MjQKK21zZ2lkICIiCisiRWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmaWxlc3lzdGVtIHR5cGVzIHBhc3NlZCB0byAtdCBtdXN0IGJlIHByZWZpeGVkXG4iCisid2l0aCAnbm8nIG9yICchJy5cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo3NDMKK21zZ2lkICJDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpbGVzeXN0ZW0gdHlwZXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo4ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBza2lwcGluZyBiYWQgbGluZSBpbiAvZXRjL2ZzdGFiOiBiaW5kIG1vdW50IHdpdGggbm9uemVybyBmc2NrIHBhc3MgIgorIm51bWJlclxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjg5MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc2tpcHBpbmcgbm9uZXhpc3RlbnQgZGV2aWNlXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6OTE4CisjLCBjLWZvcm1hdAorbXNnaWQgImZzY2s6IGNhbm5vdCBjaGVjayAlczogZnNjay4lcyBub3QgZm91bmRcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzo5NzQKK21zZ2lkICJDaGVja2luZyBhbGwgZmlsZSBzeXN0ZW1zLlxuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjEwNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS13YWl0aW5nLS0gKHBhc3MgJWQpXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTA4NQorbXNnaWQgIiIKKyJVc2FnZTogZnNjayBbLUFNTlBSVFZdIFsgLUMgWyBmZCBdIF0gWy10IGZzdHlwZV0gW2ZzLW9wdGlvbnNdIFtmaWxlc3lzIC4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTIzCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogdG9vIG1hbnkgZGV2aWNlc1xuIgorbXNnc3RyICIlczrkuI3mmK/kuIDkuKrlnZforr7lpIdcbiIKKworIzogZnNjay9mc2NrLmM6MTEzNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGZzY2svZnNjay5jOjExMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiSXMgL3Byb2MgbW91bnRlZD9cbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgcm9vdCB0byBzY2FuIGZvciBtYXRjaGluZyBmaWxlc3lzdGVtczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGZpbmQgbWF0Y2hpbmcgZmlsZXN5c3RlbTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBmc2NrL2ZzY2suYzoxMTU2IGZzY2svZnNjay5jOjEyNDIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0b28gbWFueSBhcmd1bWVudHNcbiIKK21zZ3N0ciAiJXMg6ZyA6KaB5LiA5Liq5Y+C5pWwXG4iCisKKyM6IGZzY2svZnNjay5jOjEyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZnNjayBmcm9tICVzXG4iCittc2dzdHIgIiIKKworIzogZnNjay9mc2NrLmM6MTI4OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZzY2tfcGF0aFxuIgorbXNnc3RyICLkuI3og73kuLogaW5vZGVzIOWIhumFjee8k+WGsuWMuiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjIyOQorbXNnaWQgIlRyeSBgZ2V0b3B0IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjI5NQorbXNnaWQgImVtcHR5IGxvbmcgb3B0aW9uIGFmdGVyIC1sIG9yIC0tbG9uZyBhcmd1bWVudCIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzE1Cittc2dpZCAidW5rbm93biBzaGVsbCBhZnRlciAtcyBvciAtLXNoZWxsIGFyZ3VtZW50IgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjAKK21zZ2lkICJVc2FnZTogZ2V0b3B0IG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyMQorbXNnaWQgIiAgICAgICBnZXRvcHQgW29wdGlvbnNdIFstLV0gb3B0c3RyaW5nIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzIyCittc2dpZCAiICAgICAgIGdldG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B0aW9uc10gWy0tXVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjMKK21zZ2lkICIgICAgICAgICAgICAgIHBhcmFtZXRlcnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI0Cittc2dpZCAiIgorIiAgLWEsIC0tYWx0ZXJuYXRpdmUgICAgICAgICAgICBBbGxvdyBsb25nIG9wdGlvbnMgc3RhcnRpbmcgd2l0aCBzaW5nbGUgLVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjUKK21zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgVGhpcyBzbWFsbCB1c2FnZSBndWlkZVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMjYKK21zZ2lkICIgIC1sLCAtLWxvbmdvcHRpb25zPWxvbmdvcHRzICAgTG9uZyBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI3Cittc2dpZCAiIgorIiAgLW4sIC0tbmFtZT1wcm9nbmFtZSAgICAgICAgICBUaGUgbmFtZSB1bmRlciB3aGljaCBlcnJvcnMgYXJlIHJlcG9ydGVkXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMyOAorbXNnaWQgIiAgLW8sIC0tb3B0aW9ucz1vcHRzdHJpbmcgICAgICBTaG9ydCBvcHRpb25zIHRvIGJlIHJlY29nbml6ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzI5Cittc2dpZCAiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAgIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzAKK21zZ2lkICIgIC1RLCAtLXF1aWV0LW91dHB1dCAgICAgICAgICAgTm8gbm9ybWFsIG91dHB1dFxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzEKK21zZ2lkICIgIC1zLCAtLXNoZWxsPXNoZWxsICAgICAgICAgICAgU2V0IHNoZWxsIHF1b3RpbmcgY29udmVudGlvbnNcbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6MzMyCittc2dpZCAiICAtVCwgLS10ZXN0ICAgICAgICAgICAgICAgICAgIFRlc3QgZm9yIGdldG9wdCgxKSB2ZXJzaW9uXG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjMzMworbXNnaWQgIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUgdGhlIG91dHB1dFxuIgorbXNnc3RyICIiCisKKyM6IGdldG9wdC9nZXRvcHQuYzozMzQKK21zZ2lkICIgIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgICAgT3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6Mzg4IGdldG9wdC9nZXRvcHQuYzo0NDcKK21zZ2lkICJtaXNzaW5nIG9wdHN0cmluZyBhcmd1bWVudCIKK21zZ3N0ciAiIgorCisjOiBnZXRvcHQvZ2V0b3B0LmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgImdldG9wdCAoZW5oYW5jZWQpIDEuMS40XG4iCittc2dzdHIgIiIKKworIzogZ2V0b3B0L2dldG9wdC5jOjQ0MQorbXNnaWQgImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZWQgZnJvbSBNSUxPXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MTg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlJ1ZmZpYW4gQkNEIGNsb2NrXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImNsb2NrcG9ydCBhZGp1c3RlZCB0byAweCV4XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZ1bmt5IFRPWSFcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGF0b21pYyAlcyBmYWlsZWQgZm9yIDEwMDAgaXRlcmF0aW9ucyEiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MjczCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3NfcmVhZCgpOiB3cml0ZSB0byBjb250cm9sIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3JlYWQoKTogcmVhZCBkYXRhIGFkZHJlc3MgJVggZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svY21vcy5jOjMwNworIywgYy1mb3JtYXQKK21zZ2lkICJjbW9zX3dyaXRlKCk6IHdyaXRlIHRvIGNvbnRyb2wgYWRkcmVzcyAlWCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6MzExCisjLCBjLWZvcm1hdAorbXNnaWQgImNtb3Nfd3JpdGUoKTogd3JpdGUgdG8gZGF0YSBhZGRyZXNzICVYIGZhaWxlZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gL2Rldi9wb3J0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2Ntb3MuYzo1ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiSSBmYWlsZWQgdG8gZ2V0IHBlcm1pc3Npb24gYmVjYXVzZSBJIGRpZG4ndCB0cnkuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIHVuYWJsZSB0byBnZXQgSS9PIHBvcnQgYWNjZXNzOiAgdGhlIGlvcGwoMykgY2FsbCBmYWlsZWQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9jbW9zLmM6NTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIlByb2JhYmx5IHlvdSBuZWVkIHJvb3QgcHJpdmlsZWdlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoyMzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXNzdW1pbmcgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiAlcyB0aW1lLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjIzMSBod2Nsb2NrL2h3Y2xvY2suYzozMjYKK21zZ2lkICJVVEMiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MjMxIGh3Y2xvY2svaHdjbG9jay5jOjMyNQorbXNnaWQgImxvY2FsIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogV2FybmluZzogdW5yZWNvZ25pemVkIHRoaXJkIGxpbmUgaW4gYWRqdGltZSBmaWxlXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIihFeHBlY3RlZDogYFVUQycgb3IgYExPQ0FMJyBvciBub3RoaW5nLilcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozMjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTGFzdCBkcmlmdCBhZGp1c3RtZW50IGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJMYXN0IGNhbGlicmF0aW9uIGRvbmUgYXQgJWxkIHNlY29uZHMgYWZ0ZXIgMTk2OVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICJIYXJkd2FyZSBjbG9jayBpcyBvbiAlcyB0aW1lXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzI2Cittc2dpZCAidW5rbm93biIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBmb3IgY2xvY2sgdGljay4uLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjM1NgorIywgYy1mb3JtYXQKK21zZ2lkICIuLi5zeW5jaHJvbml6YXRpb24gZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIi4uLmdvdCBjbG9jayB0aWNrXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDEyCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgdmFsdWVzIGluIGhhcmR3YXJlIGNsb2NrOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkh3IGNsb2NrIHRpbWUgOiAlNGQvJS4yZC8lLjJkICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lIHJlYWQgZnJvbSBIYXJkd2FyZSBDbG9jazogJTRkLyUuMmQvJS4yZCAlMDJkOiUwMmQ6JTAyZFxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ3OQorIywgYy1mb3JtYXQKK21zZ2lkICJTZXR0aW5nIEhhcmR3YXJlIENsb2NrIHRvICUuMmQ6JS4yZDolLjJkID0gJWxkIHNlY29uZHMgc2luY2UgMTk2OVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjQ4NQorIywgYy1mb3JtYXQKK21zZ2lkICJDbG9jayBub3QgY2hhbmdlZCAtIHRlc3Rpbmcgb25seS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo1MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRpbWUgZWxhcHNlZCBzaW5jZSByZWZlcmVuY2UgdGltZSBoYXMgYmVlbiAlLjZmIHNlY29uZHMuXG4iCisiRGVsYXlpbmcgZnVydGhlciB0byByZWFjaCB0aGUgbmV3IHRpbWUuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgcmVnaXN0ZXJzIGNvbnRhaW4gdmFsdWVzIHRoYXQgYXJlIGVpdGhlciBpbnZhbGlkIChlLmcuICIKKyI1MHRoIGRheSBvZiBtb250aCkgb3IgYmV5b25kIHRoZSByYW5nZSB3ZSBjYW4gaGFuZGxlIChlLmcuIFllYXIgMjA5NSkuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NTgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzICAlLjZmIHNlY29uZHNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gLS1kYXRlIG9wdGlvbiBzcGVjaWZpZWQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tZGF0ZSBhcmd1bWVudCB0b28gbG9uZ1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIHZhbHVlIG9mIHRoZSAtLWRhdGUgb3B0aW9uIGlzIG5vdCBhIHZhbGlkIGRhdGUuXG4iCisiSW4gcGFydGljdWxhciwgaXQgY29udGFpbnMgcXVvdGF0aW9uIG1hcmtzLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjYzNgorIywgYy1mb3JtYXQKK21zZ2lkICJJc3N1aW5nIGRhdGUgY29tbWFuZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NDAKK21zZ2lkICJVbmFibGUgdG8gcnVuICdkYXRlJyBwcm9ncmFtIGluIC9iaW4vc2ggc2hlbGwuIHBvcGVuKCkgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNwb25zZSBmcm9tIGRhdGUgY29tbWFuZCA9ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZGF0ZSBjb21tYW5kIGlzc3VlZCBieSAlcyByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdHMuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlRoZSBkYXRlIGNvbW1hbmQgaXNzdWVkIGJ5ICVzIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIGludGVnZXIgd2hlcmUgIgorInRoZSBjb252ZXJ0ZWQgdGltZSB2YWx1ZSB3YXMgZXhwZWN0ZWQuXG4iCisiVGhlIGNvbW1hbmQgd2FzOlxuIgorIiAgJXNcbiIKKyJUaGUgcmVzcG9uc2Ugd2FzOlxuIgorIiAlc1xuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjY3MworIywgYy1mb3JtYXQKK21zZ2lkICJkYXRlIHN0cmluZyAlcyBlcXVhdGVzIHRvICVsZCBzZWNvbmRzIHNpbmNlIDE5NjkuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgSGFyZHdhcmUgQ2xvY2sgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHRpbWUsIHNvIHdlIGNhbm5vdCBzZXQgdGhlICIKKyJTeXN0ZW0gVGltZSBmcm9tIGl0LlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjcyNyBod2Nsb2NrL2h3Y2xvY2suYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FsbGluZyBzZXR0aW1lb2ZkYXk6XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzI4IGh3Y2xvY2svaHdjbG9jay5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJcdHR2LnR2X3NlYyA9ICVsZCwgdHYudHZfdXNlYyA9ICVsZFxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjczMCBod2Nsb2NrL2h3Y2xvY2suYzo4MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHR0ei50el9taW51dGVzd2VzdCA9ICVkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzMzIGh3Y2xvY2svaHdjbG9jay5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBzeXN0ZW0gY2xvY2sgYmVjYXVzZSBydW5uaW5nIGluIHRlc3QgbW9kZS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3NDIgaHdjbG9jay9od2Nsb2NrLmM6ODIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHNldCBzeXN0ZW0gY2xvY2suXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6NzQ1IGh3Y2xvY2svaHdjbG9jay5jOjgyMworbXNnaWQgInNldHRpbWVvZmRheSgpIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo3ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ3VycmVudCBzeXN0ZW0gdGltZTogJWxkID0gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4MDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiXHRVVEM6ICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIHRoZSBIYXJkd2FyZSBDbG9jayBwcmV2aW91c2x5IGNvbnRhaW5lZCAiCisiZ2FyYmFnZS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo4NTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBhZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJlY2F1c2UgbGFzdCBjYWxpYnJhdGlvbiB0aW1lIGlzIHplcm8sXG4iCisic28gaGlzdG9yeSBpcyBiYWQgYW5kIGNhbGlicmF0aW9uIHN0YXJ0b3ZlciBpcyBuZWNlc3NhcnkuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6ODYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgYWRqdXN0aW5nIGRyaWZ0IGZhY3RvciBiZWNhdXNlIGl0IGhhcyBiZWVuIGxlc3MgdGhhbiBhIGRheSBzaW5jZSB0aGUgIgorImxhc3QgY2FsaWJyYXRpb24uXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDbG9jayBkcmlmdGVkICUuMWYgc2Vjb25kcyBpbiB0aGUgcGFzdCAlZCBzZWNvbmRzIGluIHNwaXRlIG9mIGEgZHJpZnQgZmFjdG9yICIKKyJvZiAlZiBzZWNvbmRzL2RheS5cbiIKKyJBZGp1c3RpbmcgZHJpZnQgZmFjdG9yIGJ5ICVmIHNlY29uZHMvZGF5XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6OTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIlRpbWUgc2luY2UgbGFzdCBhZGp1c3RtZW50IGlzICVkIHNlY29uZHNcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZCB0byBpbnNlcnQgJWQgc2Vjb25kcyBhbmQgcmVmZXIgdGltZSBiYWNrICUuNmYgc2Vjb25kcyBhZ29cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHVwZGF0aW5nIGFkanRpbWUgZmlsZSBiZWNhdXNlIG9mIHRlc3RpbmcgbW9kZS5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzo5OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldvdWxkIGhhdmUgd3JpdHRlbiB0aGUgZm9sbG93aW5nIHRvICVzOlxuIgorIiVzIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBvcGVuIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzIGluIGl0ICglcykgZm9yICIKKyJ3cml0aW5nIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwMDYgaHdjbG9jay9od2Nsb2NrLmM6MTAxMQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgdXBkYXRlIGZpbGUgd2l0aCB0aGUgY2xvY2sgYWRqdXN0bWVudCBwYXJhbWV0ZXJzICglcykgaW4gaXQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTAxNworIywgYy1mb3JtYXQKK21zZ2lkICJEcmlmdCBhZGp1c3RtZW50IHBhcmFtZXRlcnMgbm90IHVwZGF0ZWQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTA1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIEhhcmR3YXJlIENsb2NrIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB0aW1lLCBzbyB3ZSBjYW5ub3QgYWRqdXN0IGl0LlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vdCBzZXR0aW5nIGNsb2NrIGJlY2F1c2UgbGFzdCBhZGp1c3RtZW50IHRpbWUgaXMgemVybywgc28gaGlzdG9yeSBpcyBiYWQuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEwODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTmVlZGVkIGFkanVzdG1lbnQgaXMgbGVzcyB0aGFuIG9uZSBzZWNvbmQsIHNvIG5vdCBzZXR0aW5nIGNsb2NrLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjExMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgJXMuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTExNworIywgYy1mb3JtYXQKK21zZ2lkICJObyB1c2FibGUgY2xvY2sgaW50ZXJmYWNlIGZvdW5kLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyMjEgaHdjbG9jay9od2Nsb2NrLmM6MTIyNworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gc2V0IHN5c3RlbSBjbG9jay5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGtlZXBzIGFuIGVwb2NoIHZhbHVlIGZvciB0aGUgSGFyZHdhcmUgQ2xvY2sgb25seSBvbiBhbiBBbHBoYSAiCisibWFjaGluZS5cbiIKKyJUaGlzIGNvcHkgb2YgaHdjbG9jayB3YXMgYnVpbHQgZm9yIGEgbWFjaGluZSBvdGhlciB0aGFuIEFscGhhXG4iCisiKGFuZCB0aHVzIGlzIHByZXN1bWFibHkgbm90IHJ1bm5pbmcgb24gYW4gQWxwaGEgbm93KS4gIE5vIGFjdGlvbiB0YWtlbi5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBnZXQgdGhlIGVwb2NoIHZhbHVlIGZyb20gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIktlcm5lbCBpcyBhc3N1bWluZyBhbiBlcG9jaCB2YWx1ZSBvZiAlbHVcbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUbyBzZXQgdGhlIGVwb2NoIHZhbHVlLCB5b3UgbXVzdCB1c2UgdGhlICdlcG9jaCcgb3B0aW9uIHRvIHRlbGwgdG8gd2hhdCAiCisidmFsdWUgdG8gc2V0IGl0LlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgdGhlIGVwb2NoIHRvICVkIC0gdGVzdGluZyBvbmx5LlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjEyNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIHNldCB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxMjkwIG1pc2MtdXRpbHMvY2FsLmM6MzQ3IG1pc2MtdXRpbHMva2lsbC5jOjE4OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBmcm9tICVzXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTMxMQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiaHdjbG9jayAtIHF1ZXJ5IGFuZCBzZXQgdGhlIGhhcmR3YXJlIGNsb2NrIChSVEMpXG4iCisiXG4iCisiVXNhZ2U6IGh3Y2xvY2sgW2Z1bmN0aW9uXSBbb3B0aW9ucy4uLl1cbiIKKyJcbiIKKyJGdW5jdGlvbnM6XG4iCisiICAtaCB8IC0taGVscCAgICAgICAgIHNob3cgdGhpcyBoZWxwXG4iCisiICAtciB8IC0tc2hvdyAgICAgICAgIHJlYWQgaGFyZHdhcmUgY2xvY2sgYW5kIHByaW50IHJlc3VsdFxuIgorIiAgICAgICAtLXNldCAgICAgICAgICBzZXQgdGhlIHJ0YyB0byB0aGUgdGltZSBnaXZlbiB3aXRoIC0tZGF0ZVxuIgorIiAgLXMgfCAtLWhjdG9zeXMgICAgICBzZXQgdGhlIHN5c3RlbSB0aW1lIGZyb20gdGhlIGhhcmR3YXJlIGNsb2NrXG4iCisiICAtdyB8IC0tc3lzdG9oYyAgICAgIHNldCB0aGUgaGFyZHdhcmUgY2xvY2sgdG8gdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWVcbiIKKyIgICAgICAgLS1zeXN0eiAgICAgICAgc2V0IHRoZSBzeXN0ZW0gdGltZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lem9uZVxuIgorIiAgICAgICAtLWFkanVzdCAgICAgICBhZGp1c3QgdGhlIHJ0YyB0byBhY2NvdW50IGZvciBzeXN0ZW1hdGljIGRyaWZ0IHNpbmNlXG4iCisiICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9jayB3YXMgbGFzdCBzZXQgb3IgYWRqdXN0ZWRcbiIKKyIgICAgICAgLS1nZXRlcG9jaCAgICAgcHJpbnQgb3V0IHRoZSBrZXJuZWwncyBoYXJkd2FyZSBjbG9jayBlcG9jaCB2YWx1ZVxuIgorIiAgICAgICAtLXNldGVwb2NoICAgICBzZXQgdGhlIGtlcm5lbCdzIGhhcmR3YXJlIGNsb2NrIGVwb2NoIHZhbHVlIHRvIHRoZSBcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgZ2l2ZW4gd2l0aCAtLWVwb2NoXG4iCisiICAtdiB8IC0tdmVyc2lvbiAgICAgIHByaW50IG91dCB0aGUgdmVyc2lvbiBvZiBod2Nsb2NrIHRvIHN0ZG91dFxuIgorIlxuIgorIk9wdGlvbnM6IFxuIgorIiAgLXUgfCAtLXV0YyAgICAgICAgICB0aGUgaGFyZHdhcmUgY2xvY2sgaXMga2VwdCBpbiBVVENcbiIKKyIgICAgICAgLS1sb2NhbHRpbWUgICAgdGhlIGhhcmR3YXJlIGNsb2NrIGlzIGtlcHQgaW4gbG9jYWwgdGltZVxuIgorIiAgLWYgfCAtLXJ0Yz1wYXRoICAgICBzcGVjaWFsIC9kZXYvLi4uIGZpbGUgdG8gdXNlIGluc3RlYWQgb2YgZGVmYXVsdFxuIgorIiAgICAgICAtLWRpcmVjdGlzYSAgICBhY2Nlc3MgdGhlIElTQSBidXMgZGlyZWN0bHkgaW5zdGVhZCBvZiAlc1xuIgorIiAgICAgICAtLWJhZHllYXIgICAgICBpZ25vcmUgcnRjJ3MgeWVhciBiZWNhdXNlIHRoZSBiaW9zIGlzIGJyb2tlblxuIgorIiAgICAgICAtLWRhdGUgICAgICAgICBzcGVjaWZpZXMgdGhlIHRpbWUgdG8gd2hpY2ggdG8gc2V0IHRoZSBoYXJkd2FyZSBjbG9ja1xuIgorIiAgICAgICAtLWVwb2NoPXllYXIgICBzcGVjaWZpZXMgdGhlIHllYXIgd2hpY2ggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgXG4iCisiICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIGNsb2NrJ3MgZXBvY2ggdmFsdWVcbiIKKyIgICAgICAgLS1ub2FkamZpbGUgICAgZG8gbm90IGFjY2VzcyAvZXRjL2FkanRpbWUuIFJlcXVpcmVzIHRoZSB1c2Ugb2ZcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIC0tdXRjIG9yIC0tbG9jYWx0aW1lXG4iCisiICAgICAgIC0tYWRqZmlsZT1wYXRoIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgYWRqdXN0IGZpbGUgKGRlZmF1bHQgaXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgL2V0Yy9hZGp0aW1lKVxuIgorIiAgICAgICAtLXRlc3QgICAgICAgICBkbyBldmVyeXRoaW5nIGV4Y2VwdCBhY3R1YWxseSB1cGRhdGluZyB0aGUgaGFyZHdhcmVcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgY2xvY2sgb3IgYW55dGhpbmcgZWxzZVxuIgorIiAgLUQgfCAtLWRlYnVnICAgICAgICBkZWJ1ZyBtb2RlXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTM0NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiICAtSnwtLWplbnNlbiwgLUF8LS1hcmMsIC1TfC0tc3JtLCAtRnwtLWZ1bmt5LXRveVxuIgorIiAgICAgICB0ZWxsIGh3Y2xvY2sgdGhlIHR5cGUgb2YgYWxwaGEgeW91IGhhdmUgKHNlZSBod2Nsb2NrKDgpKVxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE0MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVuYWJsZSB0byBjb25uZWN0IHRvIGF1ZGl0IHN5c3RlbVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdGFrZXMgbm8gbm9uLW9wdGlvbiBhcmd1bWVudHMuICBZb3Ugc3VwcGxpZWQgJWQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU1OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IGhhdmUgc3BlY2lmaWVkIG11bHRpcGxlIGZ1bmN0aW9ucy5cbiIKKyJZb3UgY2FuIG9ubHkgcGVyZm9ybSBvbmUgZnVuY3Rpb24gYXQgYSB0aW1lLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE1NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBUaGUgLS11dGMgYW5kIC0tbG9jYWx0aW1lIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIFlvdSBzcGVjaWZpZWQgIgorImJvdGguXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTU3MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFRoZSAtLWFkanVzdCBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogVGhlIC0tYWRqZmlsZSBhbmQgLS1ub2FkamZpbGUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgWW91ICIKKyJzcGVjaWZpZWQgYm90aC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNTg4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBXaXRoIC0tbm9hZGpmaWxlLCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciAtLXV0YyBvciAtLWxvY2FsdGltZVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gdXNhYmxlIHNldC10byB0aW1lLiAgQ2Fubm90IHNldCBjbG9jay5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGNoYW5nZSB0aGUgSGFyZHdhcmUgQ2xvY2suXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTYyNAorIywgYy1mb3JtYXQKK21zZ2lkICJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIFN5c3RlbSBDbG9jay5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2h3Y2xvY2suYzoxNjI5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJTb3JyeSwgb25seSB0aGUgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIEhhcmR3YXJlIENsb2NrIGVwb2NoIGluIHRoZSAiCisia2VybmVsLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svaHdjbG9jay5jOjE2NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IGFjY2VzcyB0aGUgSGFyZHdhcmUgQ2xvY2sgdmlhIGFueSBrbm93biBtZXRob2QuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9od2Nsb2NrLmM6MTY1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNlIHRoZSAtLWRlYnVnIG9wdGlvbiB0byBzZWUgdGhlIGRldGFpbHMgb2Ygb3VyIHNlYXJjaCBmb3IgYW4gYWNjZXNzICIKKyJtZXRob2QuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIldhaXRpbmcgaW4gbG9vcCBmb3IgdGltZSBmcm9tIEtER0hXQ0xLIHRvIGNoYW5nZVxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2sva2QuYzo1NworbXNnaWQgIktER0hXQ0xLIGlvY3RsIHRvIHJlYWQgdGltZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjc1Cittc2dpZCAiS0RHSFdDTEsgaW9jdGwgdG8gcmVhZCB0aW1lIGZhaWxlZCBpbiBsb29wIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2sva2QuYzo4MiBod2Nsb2NrL3J0Yy5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGltZSBjaGFuZ2UuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjEwNAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCgpIGZhaWxlZCB0byByZWFkIHRpbWUgZnJvbSAlcyIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL2tkLmM6MTQwCittc2dpZCAiaW9jdGwgS0RTSFdDTEsgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2sva2QuYzoxNzYKK21zZ2lkICJDYW4ndCBvcGVuIC9kZXYvdHR5MSBvciAvZGV2L3ZjLzEiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9rZC5jOjE4MAorbXNnaWQgIktER0hXQ0xLIGlvY3RsIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjE0NyBod2Nsb2NrL3J0Yy5jOjI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVuKCkgb2YgJXMgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6MTgxCisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCkgdG8gJXMgdG8gcmVhZCB0aGUgdGltZSBmYWlsZWQuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoyMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FpdGluZyBpbiBsb29wIGZvciB0aW1lIGZyb20gJXMgdG8gY2hhbmdlXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgZG9lcyBub3QgaGF2ZSBpbnRlcnJ1cHQgZnVuY3Rpb25zLiAiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzoyNzAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6Mjg4CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6MjkxCisjLCBjLWZvcm1hdAorbXNnaWQgInNlbGVjdCgpIHRvICVzIHRvIHdhaXQgZm9yIGNsb2NrIHRpY2sgdGltZWQgb3V0XG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzozMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9mZiB1cGRhdGUgaW50ZXJydXB0cyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzozMDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byB0dXJuIG9uIHVwZGF0ZSBpbnRlcnJ1cHRzIGZhaWxlZCB1bmV4cGVjdGVkbHkiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzozNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoKSB0byAlcyB0byBzZXQgdGhlIHRpbWUgZmFpbGVkLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6MzY2CisjLCBjLWZvcm1hdAorbXNnaWQgImlvY3RsKCVzKSB3YXMgc3VjY2Vzc2Z1bC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcGVuIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQxMCBod2Nsb2NrL3J0Yy5jOjQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVG8gbWFuaXB1bGF0ZSB0aGUgZXBvY2ggdmFsdWUgaW4gdGhlIGtlcm5lbCwgd2UgbXVzdCBhY2Nlc3MgdGhlIExpbnV4ICdydGMnICIKKyJkZXZpY2UgZHJpdmVyIHZpYSB0aGUgZGV2aWNlIHNwZWNpYWwgZmlsZSAlcy4gIFRoaXMgZmlsZSBkb2VzIG5vdCBleGlzdCBvbiAiCisidGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzo0MTUgaHdjbG9jay9ydGMuYzo0NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG9wZW4gJXMiCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzo0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1JFQUQpIHRvICVzIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJ3ZSBoYXZlIHJlYWQgZXBvY2ggJWxkIGZyb20gJXMgd2l0aCBSVENfRVBPQ0hfUkVBRCBpb2N0bC5cbiIKK21zZ3N0ciAiIgorCisjOiBod2Nsb2NrL3J0Yy5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgZXBvY2ggdmFsdWUgbWF5IG5vdCBiZSBsZXNzIHRoYW4gMTkwMC4gIFlvdSByZXF1ZXN0ZWQgJWxkXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAic2V0dGluZyBlcG9jaCB0byAlbGQgd2l0aCBSVENfRVBPQ0hfU0VUIGlvY3RsIHRvICVzLlxuIgorbXNnc3RyICIiCisKKyM6IGh3Y2xvY2svcnRjLmM6NDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUga2VybmVsIGRldmljZSBkcml2ZXIgZm9yICVzIGRvZXMgbm90IGhhdmUgdGhlIFJUQ19FUE9DSF9TRVQgaW9jdGwuXG4iCittc2dzdHIgIiIKKworIzogaHdjbG9jay9ydGMuYzo0NzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW9jdGwoUlRDX0VQT0NIX1NFVCkgdG8gJXMgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjM2MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZXhlYyAlczogJW0iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6MzgzCittc2dpZCAiY2FuJ3QgbWFsbG9jIGluaXRzdHJpbmciCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NDQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCB0aW1lb3V0IHZhbHVlOiAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHNwZWVkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo1MjcKK21zZ2lkICJ0b28gbWFueSBhbHRlcm5hdGUgc3BlZWRzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjYyOQorIywgYy1mb3JtYXQKK21zZ2lkICIvZGV2OiBjaGRpcigpIGZhaWxlZDogJW0iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjMzCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IG5vdCBhIGNoYXJhY3RlciBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvYWdldHR5LmM6NjQyCisjLCBjLWZvcm1hdAorbXNnaWQgIi9kZXYvJXM6IGNhbm5vdCBvcGVuIGFzIHN0YW5kYXJkIGlucHV0OiAlbSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vdCBvcGVuIGZvciByZWFkL3dyaXRlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogZHVwIHByb2JsZW06ICVtIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VyIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VycyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWFkOiAlbSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9hZ2V0dHkuYzoxMDc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnB1dCBvdmVycnVuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2FnZXR0eS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyBbLThoaUxtVXddIFstbCBsb2dpbl9wcm9ncmFtXSBbLXQgdGltZW91dF0gWy1JIGluaXRzdHJpbmddIFstSCAiCisibG9naW5faG9zdF0gYmF1ZF9yYXRlLC4uLiBsaW5lIFt0ZXJtdHlwZV1cbiIKKyJvclx0Wy1oaUxtd10gWy1sIGxvZ2luX3Byb2dyYW1dIFstdCB0aW1lb3V0XSBbLUkgaW5pdHN0cmluZ10gWy1IIGxvZ2luX2hvc3RdICIKKyJsaW5lIGJhdWRfcmF0ZSwuLi4gW3Rlcm10eXBlXVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZWNrdHR5LmM6OTEgbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG1lbW9yeSBsb3csIGxvZ2luIG1heSBmYWlsXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo5MgorbXNnaWQgImNhbid0IG1hbGxvYyBmb3IgdHR5Y2xhc3MiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzoxMTMKK21zZ2lkICJjYW4ndCBtYWxsb2MgZm9yIGdycGxpc3QiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hlY2t0dHkuYzo1NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gb24gJXMgZnJvbSAlcyBkZW5pZWQgYnkgZGVmYXVsdC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGVja3R0eS5jOjU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJMb2dpbiBvbiAlcyBmcm9tICVzIGRlbmllZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTMzIGxvZ2luLXV0aWxzL2Noc2guYzoxMTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHlvdSAodXNlciAlZCkgZG9uJ3QgZXhpc3QuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjE0MCBsb2dpbi11dGlscy9jaHNoLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1c2VyIFwiJXNcIiBkb2VzIG5vdCBleGlzdC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTQ1IGxvZ2luLXV0aWxzL2Noc2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbiBvbmx5IGNoYW5nZSBsb2NhbCBlbnRyaWVzOyB1c2UgeXAlcyBpbnN0ZWFkLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTYgbG9naW4tdXRpbHMvY2hzaC5jOjE0MgorbXNnaWQgIlVua25vd24gdXNlciBjb250ZXh0IgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIGlzIG5vdCBhdXRob3JpemVkIHRvIGNoYW5nZSB0aGUgZmluZ2VyIGluZm8gb2YgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTY0IGxvZ2luLXV0aWxzL2Noc2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBkZWZhdWx0IGNvbnRleHQgZm9yIC9ldGMvcGFzc3dkIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdpbmcgZmluZ2VyIGluZm9ybWF0aW9uIGZvciAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MTg5IGxvZ2luLXV0aWxzL2Noc2guYzoxODggbG9naW4tdXRpbHMvbG9naW4uYzo1NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFBBTSBmYWlsdXJlLCBhYm9ydGluZzogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjEyIGxvZ2luLXV0aWxzL2Noc2guYzoyMTEgbG9naW4tdXRpbHMvbG9naW4uYzo4MjcKKyM6IGxvZ2luLXV0aWxzL25ld2dycC5jOjc5IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzozNDAgbW91bnQvbG9tb3VudC5jOjc0MgorIzogbW91bnQvbG9tb3VudC5jOjc0NQorbXNnaWQgIlBhc3N3b3JkOiAiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjIxNSBsb2dpbi11dGlscy9jaHNoLmM6MjE0Cittc2dpZCAiSW5jb3JyZWN0IHBhc3N3b3JkLiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIkZpbmdlciBpbmZvcm1hdGlvbiBub3QgY2hhbmdlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzI4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbIC1mIGZ1bGwtbmFtZSBdIFsgLW8gb2ZmaWNlIF0gIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlsgLXAgb2ZmaWNlLXBob25lIF1cbiIKKyJcdFsgLWggaG9tZS1waG9uZSBdICIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIlsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzozNzgKK21zZ2lkICJPZmZpY2UiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjM3OQorbXNnaWQgIk9mZmljZSBQaG9uZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6MzgwCittc2dpZCAiSG9tZSBQaG9uZSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDAxIGxvZ2luLXV0aWxzL2Noc2guYzozMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkFib3J0ZWQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJmaWVsZCBpcyB0b28gbG9uZy5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaGZuLmM6NDQyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclYycgaXMgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjQ0NworIywgYy1mb3JtYXQKK21zZ2lkICJDb250cm9sIGNoYXJhY3RlcnMgYXJlIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2NoZm4uYzo1MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluZ2VyIGluZm9ybWF0aW9uICpOT1QqIGNoYW5nZWQuICBUcnkgYWdhaW4gbGF0ZXIuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hmbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJGaW5nZXIgaW5mb3JtYXRpb24gY2hhbmdlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlIHNoZWxsIG9mICVzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFJ1bm5pbmcgVUlEIGRvZXNuJ3QgbWF0Y2ggVUlEIG9mIHVzZXIgd2UncmUgYWx0ZXJpbmcsIHNoZWxsIGNoYW5nZSAiCisiZGVuaWVkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjE3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogWW91ciBzaGVsbCBpcyBub3QgaW4gL2V0Yy9zaGVsbHMsIHNoZWxsIGNoYW5nZSBkZW5pZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5naW5nIHNoZWxsIGZvciAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MjIyCittc2dpZCAiTmV3IHNoZWxsIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgbm90IGNoYW5nZWQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjIzNQorIywgYy1mb3JtYXQKK21zZ2lkICJTaGVsbCAqTk9UKiBjaGFuZ2VkLiAgVHJ5IGFnYWluIGxhdGVyLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzoyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2hlbGwgY2hhbmdlZC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWyAtcyBzaGVsbCBdIFsgLS1saXN0LXNoZWxscyBdIFsgLS1oZWxwIF0gWyAtLXZlcnNpb24gXVxuIgorIiAgICAgICBbIHVzZXJuYW1lIF1cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBzaGVsbCBtdXN0IGJlIGEgZnVsbCBwYXRoIG5hbWUuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogXCIlc1wiIGRvZXMgbm90IGV4aXN0LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgZXhlY3V0YWJsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9jaHNoLmM6MzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAnJWMnIGlzIG5vdCBhbGxvd2VkLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENvbnRyb2wgY2hhcmFjdGVycyBhcmUgbm90IGFsbG93ZWQuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM3NSBsb2dpbi11dGlscy9jaHNoLmM6Mzg1CisjLCBjLWZvcm1hdAorbXNnaWQgIldhcm5pbmc6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFwiJXNcIiBpcyBub3QgbGlzdGVkIGluIC9ldGMvc2hlbGxzLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2Noc2guYzozNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVzZSAtbCBvcHRpb24gdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjM4NgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgJXMgLWwgdG8gc2VlIGxpc3QuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvY2hzaC5jOjQwNgorIywgYy1mb3JtYXQKK21zZ2lkICJObyBrbm93biBzaGVsbHMuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvaXNsb2NhbC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBvcGVuICVzIGZvciByZWFkaW5nLCBleGl0aW5nLiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sYXN0LmM6MTQ4Cittc2dpZCAidXNhZ2U6IGxhc3QgWy0jXSBbLWYgZmlsZV0gWy10IHR0eV0gWy1oIGhvc3RuYW1lXSBbdXNlciAuLi5dXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjMwMgorbXNnaWQgIiAgc3RpbGwgbG9nZ2VkIGluIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorInd0bXAgYmVnaW5zICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzozODAgbG9naW4tdXRpbHMvbGFzdC5jOjM5OCBsb2dpbi11dGlscy9sYXN0LmM6NDQ5Cittc2dpZCAibGFzdDogbWFsbG9jIGZhaWx1cmUuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbGFzdC5jOjQyNQorbXNnaWQgImxhc3Q6IGdldGhvc3RuYW1lIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xhc3QuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImludGVycnVwdGVkICUxMC4xMHMgJTUuNXMgXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRkFUQUw6IGNhbid0IHJlb3BlbiB0dHk6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZBVEFMOiAlcyBpcyBub3QgYSB0ZXJtaW5hbCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjIzOAorbXNnaWQgIkZBVEFMOiBiYWQgdHR5IgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiAtaCBmb3Igc3VwZXItdXNlciBvbmx5LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NDg4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiBsb2dpbiBbLWZwXSBbdXNlcm5hbWVdXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo1NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgaW5pdGlhbGl6ZSBQQU06ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NTk1Cittc2dpZCAibG9naW46ICIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjYzOQorIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gJWQgRlJPTSAlcyBGT1IgJXMsICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJMb2dpbiBpbmNvcnJlY3RcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJUT08gTUFOWSBMT0dJTiBUUklFUyAoJWQpIEZST00gJXMgRk9SICVzLCAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjY1NworIywgYy1mb3JtYXQKK21zZ2lkICJGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NICVzIEZPUiAlcywgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkxvZ2luIGluY29ycmVjdFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkwIGxvZ2luLXV0aWxzL2xvZ2luLmM6Njk3IGxvZ2luLXV0aWxzL2xvZ2luLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJTZXNzaW9uIHNldHVwIHByb2JsZW0sIGFib3J0LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6NjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5VTEwgdXNlciBuYW1lIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo2OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCB1c2VyIG5hbWUgXCIlc1wiIGluICVzOiVkLiBBYm9ydC4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo3MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IE91dCBvZiBtZW1vcnlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjc2MQorbXNnaWQgIklsbGVnYWwgdXNlcm5hbWUiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgbG9naW4gcmVmdXNlZCBvbiB0aGlzIHRlcm1pbmFsLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6ODA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkxPR0lOICVzIFJFRlVTRUQgRlJPTSAlcyBPTiBUVFkgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTE9HSU4gJXMgUkVGVVNFRCBPTiBUVFkgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzo4NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9naW4gaW5jb3JyZWN0XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIkRJQUxVUCBBVCAlcyBCWSAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEwOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUk9PVCBMT0dJTiBPTiAlcyBGUk9NICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJST09UIExPR0lOIE9OICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwNQorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyBGUk9NICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTEwOAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBPTiAlcyBCWSAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjExMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGhhdmUgbmV3IG1haWwuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBoYXZlIG1haWwuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMTc1CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luOiBmYWlsdXJlIGZvcmtpbmc6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTIyMgorIywgYy1mb3JtYXQKK21zZ2lkICJUSU9DU0NUVFkgZmFpbGVkOiAlbSIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMjgKK21zZ2lkICJzZXR1aWQoKSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMjM0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGRpcmVjdG9yeSAlcyFcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyMzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiTG9nZ2luZyBpbiB3aXRoIGhvbWUgPSBcIi9cIi5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEyNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW46IG5vIG1lbW9yeSBmb3Igc2hlbGwgc2NyaXB0LlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3MworIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogY291bGRuJ3QgZXhlYyBzaGVsbCBzY3JpcHQ6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dpbjogbm8gc2hlbGw6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTI5MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiJXMgbG9naW46ICIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjEzMDIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9naW4gbmFtZSBtdWNoIHRvbyBsb25nLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMwMworbXNnaWQgIk5BTUUgdG9vIGxvbmciCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzEwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2luIG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCAnLScuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzIwCisjLCBjLWZvcm1hdAorbXNnaWQgInRvbyBtYW55IGJhcmUgbGluZWZlZWRzLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTMyMQorbXNnaWQgIkVYQ0VTU0lWRSBsaW5lZmVlZHMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxMzUzCisjLCBjLWZvcm1hdAorbXNnaWQgIkxvZ2luIHRpbWVkIG91dCBhZnRlciAlZCBzZWNvbmRzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIkxhc3QgbG9naW46ICUuKnMgIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJmcm9tICUuKnNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAib24gJS4qc1xuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIEZST00gJXMsICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL2xvZ2luLmM6MTQ3NworIywgYy1mb3JtYXQKK21zZ2lkICJMT0dJTiBGQUlMVVJFIE9OICVzLCAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9sb2dpbi5jOjE0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgTE9HSU4gRkFJTFVSRVMgRlJPTSAlcywgJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbG9naW4uYzoxNDg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIExPR0lOIEZBSUxVUkVTIE9OICVzLCAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9tZXNnLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaXMgeVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL21lc2cuYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpcyBuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbWVzZy5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogbWVzZyBbeSB8IG5dXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6OTkKK21zZ2lkICJuZXdncnA6IFdobyBhcmUgeW91PyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMDcgbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTIxCittc2dpZCAibmV3Z3JwOiBzZXRnaWQiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTE0IGxvZ2luLXV0aWxzL25ld2dycC5jOjExNgorbXNnaWQgIm5ld2dycDogTm8gc3VjaCBncm91cC4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvbmV3Z3JwLmM6MTI1Cittc2dpZCAibmV3Z3JwOiBQZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzIKK21zZ2lkICJuZXdncnA6IHNldHVpZCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9uZXdncnAuYzoxMzgKK21zZ2lkICJObyBzaGVsbCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogc2h1dGRvd24gWy1ofC1yXSBbLWZxc10gW25vd3xoaDpzc3wrbWluc11cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjEzNAorbXNnaWQgIlNodXRkb3duIHByb2Nlc3MgYWJvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjE2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogT25seSByb290IGNhbiBzaHV0IGEgc3lzdGVtIGRvd24uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzoyNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhhdCBtdXN0IGJlIHRvbW9ycm93LCBjYW4ndCB5b3Ugd2FpdCB0aWxsIHRoZW4/XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozMTAKK21zZ2lkICJmb3IgbWFpbnRlbmFuY2U7IGJvdW5jZSwgYm91bmNlIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6MzM5Cittc2dpZCAiVGhlIHN5c3RlbSBpcyBiZWluZyBzaHV0IGRvd24gd2l0aGluIDUgbWludXRlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM0MworbXNnaWQgIkxvZ2luIGlzIHRoZXJlZm9yZSBwcm9oaWJpdGVkLiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJyZWJvb3RlZCBieSAlczogJXMiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzozNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGFsdGVkIGJ5ICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQzMgorbXNnaWQgIiIKKyJcbiIKKyJXaHkgYW0gSSBzdGlsbCBhbGl2ZSBhZnRlciByZWJvb3Q/IgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NDM0Cittc2dpZCAiIgorIlxuIgorIk5vdyB5b3UgY2FuIHR1cm4gb2ZmIHRoZSBwb3dlci4uLiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDYWxsaW5nIGtlcm5lbCBwb3dlci1vZmYgZmFjaWxpdHkuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBwb3dlcmluZyBvZmZcdCVzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhlY3V0aW5nIHRoZSBwcm9ncmFtIFwiJXNcIiAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ2NAorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBleGVjdXRpbmdcdCVzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVVJHRU5UOiBicm9hZGNhc3QgbWVzc2FnZSBmcm9tICVzOiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjQ5NworIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAlZCBob3VycyAlZCBtaW51dGVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluIDEgaG91ciAlZCBtaW51dGVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIGluICVkIG1pbnV0ZXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjUwNgorIywgYy1mb3JtYXQKK21zZ2lkICJTeXN0ZW0gZ29pbmcgZG93biBpbiAxIG1pbnV0ZVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN5c3RlbSBnb2luZyBkb3duIElNTUVESUFURUxZIVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTEzCisjLCBjLWZvcm1hdAorbXNnaWQgIlx0Li4uICVzIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTcwCittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHN3YXBvZmYuIFNocnVnISIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjU3OAorbXNnaWQgIkNhbm5vdCBleGVjIHN3YXBvZmYsIGhvcGluZyB1bW91bnQgd2lsbCBkbyB0aGUgdHJpY2suIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NodXRkb3duLmM6NTk3Cittc2dpZCAiQ2Fubm90IGZvcmsgZm9yIHVtb3VudCwgdHJ5aW5nIG1hbnVhbGx5LiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYwNgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZXhlYyAlcywgdHJ5aW5nIHVtb3VudC5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaHV0ZG93bi5jOjYxMAorbXNnaWQgIkNhbm5vdCBleGVjIHVtb3VudCwgZ2l2aW5nIHVwIG9uIHVtb3VudC4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2MTUKK21zZ2lkICJVbm1vdW50aW5nIGFueSByZW1haW5pbmcgZmlsZXN5c3RlbXMuLi4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2h1dGRvd24uYzo2NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAic2h1dGRvd246IENvdWxkbid0IHVtb3VudCAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTMyCittc2dpZCAiQm9vdGluZyB0byBzaW5nbGUgdXNlciBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxMzYKK21zZ2lkICJleGVjIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoxNDAKK21zZ2lkICJmb3JrIG9mIHNpbmdsZSB1c2VyIHNoZWxsIGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzoyMDgKK21zZ2lkICJlcnJvciBvcGVuaW5nIGZpZm9cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjEyCittc2dpZCAiZXJyb3Igc2V0dGluZyBjbG9zZS1vbi1leGVjIG9uIC9kZXYvaW5pdGN0bCIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjU5Cittc2dpZCAiZXJyb3IgcnVubmluZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MjYzCittc2dpZCAiZXJyb3IgZm9ya2luZyBmaW5hbHByb2dcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MzQ1Cittc2dpZCAiIgorIlxuIgorIldyb25nIHBhc3N3b3JkLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MTgKK21zZ2lkICJsc3RhdCBvZiBwYXRoIGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo0MjYKK21zZ2lkICJzdGF0IG9mIHBhdGggZmFpbGVkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjQzNAorbXNnaWQgIm9wZW4gb2YgZGlyZWN0b3J5IGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVzcGF3bmluZzogXCIlc1wiIHRvbyBmYXN0OiBxdWVuY2hpbmcgZW50cnlcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTA5Cittc2dpZCAiZm9yayBmYWlsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6NTQwIHRleHQtdXRpbHMvbW9yZS5jOjE2NjMKK21zZ2lkICJleGVjIGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3NpbXBsZWluaXQuYzo1NjQKK21zZ2lkICJjYW5ub3Qgb3BlbiBpbml0dGFiXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjYzMQorbXNnaWQgIm5vIFRFUk0gb3IgY2Fubm90IHN0YXQgdHR5XG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvc2ltcGxlaW5pdC5jOjkzOAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBzdG9wcGluZyBzZXJ2aWNlOiBcIiVzXCJcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6OTUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN0b3BwZWQgc2VydmljZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy9zaW1wbGVpbml0LmM6MTA3MAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBydW5uaW5nIHByb2dyYW1tZTogXCIlc1wiXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6NzUKK21zZ2lkICJ0b28gbWFueSBpb3YncyAoY2hhbmdlIGNvZGUgaW4gd2FsbC90dHltc2cuYykiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXhjZXNzaXZlbHkgbG9uZyBsaW5lIGFyZyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy90dHltc2cuYzoxNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmsiCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdHR5bXNnLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgImZvcms6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3R0eW1zZy5jOjE3NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQkFEIEVSUk9SIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRoZSBwYXNzd29yZCBmaWxlIGlzIGJ1c3kuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjE0NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdGhlIGdyb3VwIGZpbGUgaXMgYnVzeS5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB0aGUgJXMgZmlsZSBpcyBidXN5ICglcyBwcmVzZW50KVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGxpbmsgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogQ2FuJ3QgZ2V0IGNvbnRleHQgZm9yICVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyMDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbid0IHNldCBjb250ZXh0IGZvciAlcyIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy92aXB3LmM6MjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCB1bmxvY2sgJXM6ICVzICh5b3VyIGNoYW5nZXMgYXJlIHN0aWxsIGluICVzKVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3ZpcHcuYzoyNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBmb3JrXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgdW5jaGFuZ2VkXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjI5NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogbm8gY2hhbmdlcyBtYWRlXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBncm91cHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIHVzaW5nIHNoYWRvdyBwYXNzd29yZHMgb24gdGhpcyBzeXN0ZW0uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvdmlwdy5jOjM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJXb3VsZCB5b3UgbGlrZSB0byBlZGl0ICVzIG5vdyBbeS9uXT8gIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFtmaWxlXVxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoxNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IG9wZW4gdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjE5NAorIywgYy1mb3JtYXQKK21zZ2lkICJCcm9hZGNhc3QgTWVzc2FnZSBmcm9tICVzQCVzIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdpbGwgbm90IHJlYWQgJXMgLSB1c2Ugc3RkaW4uXG4iCittc2dzdHIgIiIKKworIzogbG9naW4tdXRpbHMvd2FsbC5jOjIxNworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBsb2dpbi11dGlscy93YWxsLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBzdGF0IHRlbXBvcmFyeSBmaWxlLlxuIgorbXNnc3RyICIiCisKKyM6IGxvZ2luLXV0aWxzL3dhbGwuYzoyNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IHJlYWQgdGVtcG9yYXJ5IGZpbGUuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNjQgbWlzYy11dGlscy9jYWwuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkYXkgdmFsdWU6IHVzZSAxLSVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvY2FsLmM6MzY4Cittc2dpZCAiaWxsZWdhbCBtb250aCB2YWx1ZTogdXNlIDEtMTIiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9jYWwuYzozNzIKK21zZ2lkICJpbGxlZ2FsIHllYXIgdmFsdWU6IHVzZSAxLTk5OTkiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9jYWwuYzo0NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgJWQiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9jYWwuYzo4NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNhbCBbLTEzc21qeVZdIFtbW2RheV0gbW9udGhdIHllYXJdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9kZGF0ZS5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWytmb3JtYXRdIFtkYXkgbW9udGggeWVhcl1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2RkYXRlLmM6MjUwCittc2dpZCAiU3QuIFRpYidzIERheSIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2ZpbmRmcy5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBMQUJFTD08bGFiZWw+fFVVSUQ9PHV1aWQ+XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9maW5kZnMuYzo1NQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlc29sdmUgJyVzJyIKK21zZ3N0ciAi5LiN6IO96K+7IGlub2RlcyIKKworIzogbWlzYy11dGlscy9raWxsLmM6MjA3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB1bmtub3duIHNpZ25hbCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBwcm9jZXNzIFwiJXNcIlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMva2lsbC5jOjMxNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBzaWduYWwgJXM7IHZhbGlkIHNpZ25hbHM6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9raWxsLmM6MzU0CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyBbIC1zIHNpZ25hbCB8IC1wIF0gWyAtYSBdIHBpZCAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2tpbGwuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1sIFsgc2lnbmFsIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjY3CisjLCBjLWZvcm1hdAorbXNnaWQgImxvZ2dlcjogb3BlbmxvZzogcGF0aG5hbWUgdG9vIGxvbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjc1CisjLCBjLWZvcm1hdAorbXNnaWQgInNvY2tldDogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzo4MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb25uZWN0OiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6ICVzOiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvZ2dlci5jOjI0NgorIywgYy1mb3JtYXQKK21zZ2lkICJsb2dnZXI6IHVua25vd24gZmFjaWxpdHkgbmFtZTogJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9sb2dnZXIuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9nZ2VyOiB1bmtub3duIHByaW9yaXR5IG5hbWU6ICVzLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbG9nZ2VyLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogbG9nZ2VyIFstaXNdIFstZiBmaWxlXSBbLXAgcHJpXSBbLXQgdGFnXSBbLXUgc29ja2V0XSBbIG1lc3NhZ2UgLi4uIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL2xvb2suYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGxvb2sgWy1kZmFdIFstdCBjaGFyXSBzdHJpbmcgW2ZpbGVdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9tY29va2llLmM6MTA1IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbWNvb2tpZS5jOjEwOSBtaXNjLXV0aWxzL21jb29raWUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiR290ICVkIGJ5dGVzIGZyb20gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTQzIG1pc2MtdXRpbHMvbmFtZWkuYzoxOTggbWlzYy11dGlscy9uYW1laS5jOjIyNQorIzogbWlzYy11dGlscy9uYW1laS5jOjI0NSBtaXNjLXV0aWxzL25hbWVpLmM6MjUyIG1pc2MtdXRpbHMvbmFtZWkuYzoyOTQKK21zZ2lkICJvdXQgb2YgbWVtb3J5PyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6MTg4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCBzeW1saW5rOiAlcyIKK21zZ3N0ciAi5LiN6IO96K+7IGlub2RlcyIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjIzMSBtaXNjLXV0aWxzL25hbWVpLmM6MjU0CisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6ICVzIFtvcHRpb25zXSBwYXRobmFtZSBbcGF0aG5hbWUgLi4uXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9uYW1laS5jOjQ1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgZGlzcGxheXMgdGhpcyBoZWxwIHRleHRcbiIKKyIgLXgsIC0tbW91bnRwb2ludHMgICBzaG93IG1vdW50IHBvaW50IGRpcmVjdG9yaWVzIHdpdGggYSAnRCdcbiIKKyIgLW0sIC0tbW9kZXMgICAgICAgICBzaG93IHRoZSBtb2RlIGJpdHMgb2YgZWFjaCBmaWxlXG4iCisiIC1vLCAtLW93bmVycyAgICAgICAgc2hvdyBvd25lciBhbmQgZ3JvdXAgbmFtZSBvZiBlYWNoIGZpbGVcbiIKKyIgLWwsIC0tbG9uZyAgICAgICAgICB1c2UgYSBsb25nIGxpc3RpbmcgZm9ybWF0ICgtbSAtbyAtdikgXG4iCisiIC1uLCAtLW5vc3ltbGlua3MgICAgZG9uJ3QgZm9sbG93IHN5bWxpbmtzXG4iCisiIC12LCAtLXZlcnRpY2FsICAgICAgdmVydGljYWwgYWxpZ24gb2YgbW9kZXMgYW5kIG93bmVyc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvbmFtZWkuYzo0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBuYW1laSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzdGF0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL25hbWVpLmM6NTMzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBleGNlZWRlZCBsaW1pdCBvZiBzeW1saW5rcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3JlbmFtZS5jOjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBvdXQgb2YgbWVtb3J5XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9yZW5hbWUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVuYW1pbmcgJXMgdG8gJXMgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvcmVuYW1lLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FsbDogJXMgZnJvbSB0byBmaWxlcy4uLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBgJXMnIGlzIGEgbGluay5cbiIKKyJVc2UgYCVzIFtvcHRpb25zXSAlcycgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC5cbiIKKyJTY3JpcHQgbm90IHN0YXJ0ZWQuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoxNzMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHNjcmlwdCBbLWFdIFstZl0gWy1xXSBbLXRdIFtmaWxlXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkLCBmaWxlIGlzICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzoyNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGVycm9yICVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNjcmlwdCBzdGFydGVkIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6MzQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3cml0ZSBlcnJvcjogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjM1NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHdyaXRlIHNjcmlwdCBmaWxlLCBlcnJvcjogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2NyaXB0IGRvbmUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHQuYzo0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2NyaXB0IGRvbmUsIGZpbGUgaXMgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdC5jOjQ0OAorIywgYy1mb3JtYXQKK21zZ2lkICJvcGVucHR5IGZhaWxlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0LmM6NDgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk91dCBvZiBwdHknc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgPHRpbWluZ2ZpbGU+IFs8dHlwZXNjcmlwdD4gWzxkaXZpc29yPl1dXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo1MworIywgYy1mb3JtYXQKK21zZ2lkICJleHBlY3RlZCBhIG51bWJlciwgYnV0IGdvdCAnJXMnIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6NTYgbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkaXZpc29yICclcyciCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMDQKK21zZ2lkICJ3cml0ZSB0byBzdGRvdXQgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgb24gJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zY3JpcHRyZXBsYXkuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdHlwZXNjcmlwdCBmaWxlICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHRpbWluZyBmaWxlICVzIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2NyaXB0cmVwbGF5LmM6MTQ4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuIHR5cGVzY3JpcHQgZmlsZSAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aW1pbmcgZmlsZSAlcyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NjcmlwdHJlcGxheS5jOjE2NgorIywgYy1mb3JtYXQKK21zZ2lkICJ0aW1pbmdzIGZpbGUgJXM6ICVsdTogdW5leHBlY3RlZCBmb3JtYXQiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBBcmd1bWVudCBlcnJvciwgdXNhZ2VcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC10ZXJtIHRlcm1pbmFsX25hbWUgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlc2V0IF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbml0aWFsaXplIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jdXJzb3IgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNub3cgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc2OAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXNvZnRzY3JvbGwgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJlcGVhdCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwY3Vyc29ya2V5cyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbGluZXdyYXAgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWRlZmF1bHQgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWZvcmVncm91bmQgYmxhY2t8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3NSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZXxkZWZhdWx0IF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1iYWNrZ3JvdW5kIGJsYWNrfGJsdWV8Z3JlZW58Y3lhbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC11bGNvbG9yIGJsYWNrfGdyZXl8Ymx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc3OSBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODEgbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgzCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAifHJlZHxtYWdlbnRhfHllbGxvd3x3aGl0ZSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtdWxjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWhiY29sb3IgYmxhY2t8Z3JleXxibHVlfGdyZWVufGN5YW4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtaGJjb2xvciBicmlnaHQgYmx1ZXxncmVlbnxjeWFuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc4NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXN0YW5kb3V0IFsgYXR0ciBdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1pbnZlcnNlc2NyZWVuIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ib2xkIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1oYWxmLWJyaWdodCBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6NzkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYmxpbmsgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5MworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXJldmVyc2UgW29ufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXVuZGVybGluZSBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtc3RvcmUgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWNsZWFyIFthbGx8cmVzdF0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjc5NworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXRhYnMgWyB0YWIxIHRhYjIgdGFiMyAuLi4gXSBdICAgICAgKHRhYm4gPSAxLTE2MClcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo3OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1jbHJ0YWJzIFsgdGFiMSB0YWIyIHRhYjMgLi4uIF0gXSAgICh0YWJuID0gMS0xNjApXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtcmVndGFicyBbMS0xNjBdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzo4MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBbIC1ibGFuayBbMC02MHxmb3JjZXxwb2tlXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZHVtcCAgIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtYXBwZW5kIFsxLU5SX0NPTlNPTEVTXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtZmlsZSBkdW1wZmlsZW5hbWUgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLW1zZyBbb258b2ZmXSBdXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgWyAtbXNnbGV2ZWwgWzAtOF0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2Vyc2F2ZSBbb258dnN5bmN8aHN5bmN8cG93ZXJkb3dufG9mZl0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwNworIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLXBvd2VyZG93biBbMC02MF0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOAorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJsZW5ndGggWzAtMjAwMF0gXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjgwOQorIywgYy1mb3JtYXQKK21zZ2lkICIgIFsgLWJmcmVxIGZyZXFudW1iZXIgXVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGZvcmNlIGJsYW5rXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTA2NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgZm9yY2UgdW5ibGFua1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvc2V0dGVybS5jOjEwNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGdldCBibGFuayBzdGF0dXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMDgzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCAodW4pc2V0IHBvd2Vyc2F2ZSBtb2RlXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTEyMiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMTMwCisjLCBjLWZvcm1hdAorbXNnaWQgImtsb2djdGwgZXJyb3I6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy9zZXR0ZXJtLmM6MTE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciB3cml0aW5nIHNjcmVlbmR1bXBcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IHJlYWQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3NldHRlcm0uYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAkVEVSTSBpcyBub3QgZGVmaW5lZC5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6ICVzIFstZF0gWy1wIHBpZGZpbGVdIFstcyBzb2NrZXRwYXRoXSBbLVQgdGltZW91dF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIFstcnx0XSBbLW4gbnVtXSBbLXMgc29ja2V0cGF0aF1cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgICVzIC1rXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1MgorbXNnaWQgImJhZCBhcmd1bWVudHMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE1OQorbXNnaWQgInNvY2tldCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTcwCittc2dpZCAiY29ubmVjdCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MTg5Cittc2dpZCAid3JpdGUiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjE5NworbXNnaWQgInJlYWQgY291bnQiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjIwMworbXNnaWQgImJhZCByZXNwb25zZSBsZW5ndGgiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1dWlkZCBkYWVtb24gYWxyZWFkeSBydW5uaW5nIGF0IHBpZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgY3JlYXRlIHVuaXggc3RyZWFtIHNvY2tldDogJXMiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBiaW5kIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbGlzdGVuIG9uIHVuaXggc29ja2V0ICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzozNTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgcmVhZGluZyBmcm9tIGNsaWVudCwgbGVuID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6MzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIm9wZXJhdGlvbiAlZCwgaW5jb21pbmcgbnVtID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6Mzc4CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCB0aW1lIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgcmFuZG9tIFVVSUQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjM5NworIywgYy1mb3JtYXQKK21zZ2lkICJHZW5lcmF0ZWQgdGltZSBVVUlEICVzIGFuZCAlZCBmb2xsb3dpbmdcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NDE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkdlbmVyYXRlZCAlZCBVVUlEJ3M6XG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjQyNworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIG9wZXJhdGlvbiAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo0NjggbWlzYy11dGlscy91dWlkZC5jOjQ4OQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MjQgbWlzYy11dGlscy91dWlkZC5jOjU1MQorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciBjYWxsaW5nIHV1aWRkIGRhZW1vbiAoJXMpOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1MzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgYW5kIHN1YnNlcXVlbnQgJWQgVVVJRCdzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjUzNgorIywgYy1mb3JtYXQKK21zZ2lkICJMaXN0IG9mIFVVSUQnczpcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3V1aWRkLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZXhwZWN0ZWQgcmVwbHkgbGVuZ3RoIGZyb20gc2VydmVyICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZC5jOjU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBraWxsIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvdXVpZGQuYzo1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiS2lsbGVkIHV1aWRkIHJ1bm5pbmcgYXQgcGlkICVkXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy91dWlkZ2VuLmM6MzIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbLXJdIFstdF1cbiIKK21zZ3N0ciAi55So5rOVOiAlcyBbIC1uIF0gZGV2aWNlXG4iCisKKyM6IG1pc2MtdXRpbHMvd2hlcmVpcy5jOjE1OQorIywgYy1mb3JtYXQKK21zZ2lkICJ3aGVyZWlzIFsgLXNibXUgXSBbIC1TQk0gZGlyIC4uLiAtZiBdIG5hbWUuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjEyOAorbXNnaWQgImNhbGxvYyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoxNTAKKyMsIGZ1enp5Cittc2dpZCAic3RyZHVwIGZhaWxlZCIKK21zZ3N0ciAiJXMg5aSx6LSlLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjIwMAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogJXM6IHByb2JpbmcgaW5pdGlhbGl6YXRpb24gZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjExCisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yOiAlczogYXBwZWFycyB0byBjb250YWluICclcycgcGFydGl0aW9uIHRhYmxlIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGZvdW5kIGEgbWFnaWMgc3RyaW5nIGF0IG9mZnNldCAweCVqeCAtIGlnbm9yZS4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzoyNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhaWxlZCB0byBzZWVrIHRvIG9mZnNldCAweCVqeCIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHdyaXRlIGZhaWxlZCIKK21zZ3N0ciAiJXMg5aSx6LSlLlxuIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI3MworIywgYy1mb3JtYXQKK21zZ2lkICIlemQgYnl0ZXMgWyIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJdIGVyYXNlZCBhdCBvZmZzZXQgMHglanggKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MjkyIG1vdW50L3N3YXBvbi5jOjE5OCBtb3VudC9zd2Fwb24uYzoyNjYKKyM6IG1vdW50L3N3YXBvbi5jOjQxMSBtb3VudC9zd2Fwb24uYzo1NzAgbW91bnQvc3dhcG9uLmM6NzcyCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTU5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogb3BlbiBmYWlsZWQiCittc2dzdHIgIiVzIOWksei0pS5cbiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMTUgbWlzYy11dGlscy93aXBlZnMuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBvZmZzZXQgJyVzJyB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93aXBlZnMuYzozMjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxkZXZpY2U+XG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAi55So5rOVOiAlcyBbIC1uIF0gZGV2aWNlXG4iCisKKyM6IG1pc2MtdXRpbHMvd2lwZWZzLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIgLWEsIC0tYWxsICAgICAgICAgICB3aXBlIGFsbCBtYWdpYyBzdHJpbmdzIChCRSBDQVJFRlVMISlcbiIKKyIgLWgsIC0taGVscCAgICAgICAgICB0aGlzIGhlbHBcbiIKKyIgLW4sIC0tbm8tYWN0ICAgICAgICBldmVyeXRoaW5nIHRvIGJlIGRvbmUgZXhjZXB0IGZvciB0aGUgd3JpdGUoKSBjYWxsXG4iCisiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IHRvIGVyYXNlLCBpbiBieXRlc1xuIgorIiAtcCwgLS1wYXJzYWJsZSAgICAgIHByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjMzNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHdpcGVmcyg4KS5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dpcGVmcy5jOjM4NworbXNnaWQgIi0tb2Zmc2V0IGFuZCAtLWFsbCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6IGNhbid0IGZpbmQgeW91ciB0dHkncyBuYW1lXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjExMgorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogeW91IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0dXJuZWQgb2ZmLlxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIG5vdCBsb2dnZWQgaW4gb24gJXMuXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ3cml0ZTogJXMgaGFzIG1lc3NhZ2VzIGRpc2FibGVkIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogbWlzYy11dGlscy93cml0ZS5jOjE0OAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogd3JpdGUgdXNlciBbdHR5XVxuIgorbXNnc3RyICIiCisKKyM6IG1pc2MtdXRpbHMvd3JpdGUuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAid3JpdGU6ICVzIGlzIG5vdCBsb2dnZWQgaW5cbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBoYXMgbWVzc2FnZXMgZGlzYWJsZWRcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MjQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIndyaXRlOiAlcyBpcyBsb2dnZWQgaW4gbW9yZSB0aGFuIG9uY2U7IHdyaXRpbmcgdG8gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzE3CisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyAoYXMgJXMpIG9uICVzIGF0ICVzIC4uLiIKK21zZ3N0ciAiIgorCisjOiBtaXNjLXV0aWxzL3dyaXRlLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIk1lc3NhZ2UgZnJvbSAlc0AlcyBvbiAlcyBhdCAlcyAuLi4iCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZXJyb3IgcmVhZGluZyAlczogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzoxNzIgbW91bnQvZnN0YWIuYzoxOTcKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogY2FuJ3Qgb3BlbiAlczogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNvdWxkIG5vdCBvcGVuICVzIC0gdXNpbmcgJXMgaW5zdGVhZFxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NTkwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbid0IGNyZWF0ZSBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzo2MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbGluayBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzo2MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzICh1c2UgLW4gZmxhZyB0byBvdmVycmlkZSkiCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzo2NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzo2NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgbG9jayBsb2NrIGZpbGUgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjYzCittc2dpZCAidGltZWQgb3V0IgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDYW5ub3QgY3JlYXRlIGxpbmsgJXNcbiIKKyJQZXJoYXBzIHRoZXJlIGlzIGEgc3RhbGUgbG9jayBmaWxlP1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6NzkyIG1vdW50L2ZzdGFiLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzICglcykgLSBtdGFiIG5vdCB1cGRhdGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODU2CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2ZzdGFiLmM6ODc0CisjLCBjLWZvcm1hdAorbXNnaWQgImVycm9yIGNoYW5naW5nIG1vZGUgb2YgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3IgY2hhbmdpbmcgb3duZXIgb2YgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvZnN0YWIuYzo4OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FuJ3QgcmVuYW1lICVzIHRvICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzozNjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgc2V0IGNhcGFjaXR5IG9uIGRldmljZSAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb2Zmc2V0ICU8UFJJdTY0PiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgc2l6ZWxpbWl0ICU8UFJJdTY0PiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6Mzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZW5jcnlwdGlvbiAlcyAodHlwZSAlPFBSSXUzMj4pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLCBvZmZzZXQgJWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjQxMworIywgYy1mb3JtYXQKK21zZ2lkICIsIGVuY3J5cHRpb24gdHlwZSAlZFxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3QgZ2V0IGluZm8gb24gZGV2aWNlICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo0MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAibG9vcDogY2FuJ3Qgb3BlbiBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjQ0OCBtb3VudC9sb21vdW50LmM6NDgwIG1vdW50L2xvbW91bnQuYzo1NDIKKyM6IG1vdW50L2xvbW91bnQuYzo1ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IC9kZXYgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6NDU5IG1vdW50L2xvbW91bnQuYzo2MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG5vIHBlcm1pc3Npb24gdG8gbG9vayBhdCAvZGV2L2xvb3AlczxOPiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6NjAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjb3VsZCBub3QgZmluZCBhbnkgZnJlZSBsb29wIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6NjA2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogQ291bGQgbm90IGZpbmQgYW55IGxvb3AgZGV2aWNlLiBNYXliZSB0aGlzIGtlcm5lbCBkb2VzIG5vdCBrbm93XG4iCisiICAgICAgIGFib3V0IHRoZSBsb29wIGRldmljZT8gKElmIHNvLCByZWNvbXBpbGUgb3IgYG1vZHByb2JlIGxvb3AnLikiCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjYzNgorbXNnaWQgIk91dCBvZiBtZW1vcnkgd2hpbGUgcmVhZGluZyBwYXNzcGhyYXNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo2NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogJXMgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6ICVzOiBpcyB3cml0ZS1wcm90ZWN0ZWQsIHVzaW5nIHJlYWQtb25seS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkbid0IGxvY2sgaW50byBtZW1vcnksIGV4aXRpbmcuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjc1OAorIywgYy1mb3JtYXQKK21zZ2lkICJpb2N0bCBMT09QX1NFVF9GRCBmYWlsZWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjgxNQorIywgYy1mb3JtYXQKK21zZ2lkICJzZXRfbG9vcCglcywlcywlbGx1LCVsbHUpOiBzdWNjZXNzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjgzNgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWxfbG9vcCglcyk6IHN1Y2Nlc3NcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODQwCisjLCBjLWZvcm1hdAorbXNnaWQgImxvb3A6IGNhbid0IGRlbGV0ZSBkZXZpY2UgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjg1MQorIywgYy1mb3JtYXQKK21zZ2lkICJUaGlzIG1vdW50IHdhcyBjb21waWxlZCB3aXRob3V0IGxvb3Agc3VwcG9ydC4gUGxlYXNlIHJlY29tcGlsZS5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6ODg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgJTEkcyBsb29wX2RldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2l2ZSBpbmZvXG4iCisiICUxJHMgLWEgfCAtLWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgYWxsIHVzZWRcbiIKKyIgJTEkcyAtZCB8IC0tZGV0YWNoIDxsb29wZGV2PiBbPGxvb3BkZXY+IC4uLl0gZGVsZXRlXG4iCisiICUxJHMgLWYgfCAtLWZpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmQgdW51c2VkXG4iCisiICUxJHMgLWMgfCAtLXNldC1jYXBhY2l0eSA8bG9vcGRldj4gICAgICAgICAgIHJlc2l6ZVxuIgorIiAlMSRzIC1qIHwgLS1hc3NvY2lhdGVkIDxmaWxlPiBbLW8gPG51bT5dICAgICBsaXN0IGFsbCBhc3NvY2lhdGVkIHdpdGggIgorIjxmaWxlPlxuIgorIiAlMSRzIFsgb3B0aW9ucyBdIHstZnwtLWZpbmR8bG9vcGRldn0gPGZpbGU+ICBzZXR1cFxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzo4OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIk9wdGlvbnM6XG4iCisiIC1lIHwgLS1lbmNyeXB0aW9uIDx0eXBlPiBlbmFibGUgZGF0YSBlbmNyeXB0aW9uIHdpdGggc3BlY2lmaWVkIDxuYW1lL251bT5cbiIKKyIgLWggfCAtLWhlbHAgICAgICAgICAgICAgIHRoaXMgaGVscFxuIgorIiAtbyB8IC0tb2Zmc2V0IDxudW0+ICAgICAgc3RhcnQgYXQgb2Zmc2V0IDxudW0+IGludG8gZmlsZVxuIgorIiAgICAgIC0tc2l6ZWxpbWl0IDxudW0+ICAgbG9vcCBsaW1pdGVkIHRvIG9ubHkgPG51bT4gYnl0ZXMgb2YgdGhlIGZpbGVcbiIKKyIgLXAgfCAtLXBhc3MtZmQgPG51bT4gICAgIHJlYWQgcGFzc3BocmFzZSBmcm9tIGZpbGUgZGVzY3JpcHRvciA8bnVtPlxuIgorIiAtciB8IC0tcmVhZC1vbmx5ICAgICAgICAgc2V0dXAgcmVhZC1vbmx5IGxvb3AgZGV2aWNlXG4iCisiICAgICAgLS1zaG93ICAgICAgICAgICAgICBwcmludCBkZXZpY2UgbmFtZSAod2l0aCAtZiA8ZmlsZT4pXG4iCisiIC12IHwgLS12ZXJib3NlICAgICAgICAgICB2ZXJib3NlIG1vZGVcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTAzNCBtb3VudC9sb21vdW50LmM6MTA3NAorIywgYy1mb3JtYXQKK21zZ2lkICJMb29wIGRldmljZSBpcyAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L2xvbW91bnQuYzoxMDYxCisjLCBjLWZvcm1hdAorbXNnaWQgInN0b2xlbiBsb29wPSVzLi4udHJ5aW5nIGFnYWluXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbG9tb3VudC5jOjEwNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzOiBkZXZpY2UgaXMgYnVzeSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9sb21vdW50LmM6MTA4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBsb29wIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBhdCBjb21waWxlIHRpbWUuIFBsZWFzZSByZWNvbXBpbGUuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIm1vdW50OiB3YXJuaW5nOiAvZXRjL210YWIgaXMgbm90IHdyaXRhYmxlIChlLmcuIHJlYWQtb25seSBmaWxlc3lzdGVtKS5cbiIKKyIgICAgICAgSXQncyBwb3NzaWJsZSB0aGF0IGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IG1vdW50KDgpIGlzIG5vdFxuIgorIiAgICAgICB1cCB0byBkYXRlLiBGb3IgYWN0dWFsIGluZm9ybWF0aW9uIGFib3V0IHN5c3RlbSBtb3VudCBwb2ludHNcbiIKKyIgICAgICAgY2hlY2sgdGhlIC9wcm9jL21vdW50cyBmaWxlLlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MzM4CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBpbXByb3Blcmx5IHF1b3RlZCBvcHRpb24gc3RyaW5nICclcyciCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHRyYW5zbGF0ZWQgJXMgJyVzJyB0byAnJXMnXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo1MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGFjY29yZGluZyB0byBtdGFiLCAlcyBpcyBtb3VudGVkIG9uICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NTY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW4ndCBvcGVuICVzIGZvciB3cml0aW5nOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjU4MSBtb3VudC9tb3VudC5jOjExOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGVycm9yIHdyaXRpbmcgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6NTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBlcnJvciBjaGFuZ2luZyBtb2RlIG9mICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjY3MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBncm91cCBpZDogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo2NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBzZXQgdXNlciBpZDogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo3MTQgbW91bnQvbW91bnQuYzoxODY0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBjYW5ub3QgZm9yazogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHlvdSBkaWRuJ3Qgc3BlY2lmeSBhIGZpbGVzeXN0ZW0gdHlwZSBmb3IgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjg4MgorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgICAgSSB3aWxsIHRyeSBhbGwgdHlwZXMgbWVudGlvbmVkIGluICVzIG9yICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIGFuZCBpdCBsb29rcyBsaWtlIHRoaXMgaXMgc3dhcHNwYWNlXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzo4ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICAgIEkgd2lsbCB0cnkgdHlwZSAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6OTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGxvb2tzIGxpa2Ugc3dhcHNwYWNlIC0gbm90IG1vdW50ZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMDAyCittc2dpZCAibW91bnQgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTAwNAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogb25seSByb290IGNhbiBtb3VudCAlcyBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEwNzQKK21zZ2lkICJtb3VudDogbG9vcCBkZXZpY2Ugc3BlY2lmaWVkIHR3aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTA3OQorbXNnaWQgIm1vdW50OiB0eXBlIHNwZWNpZmllZCB0d2ljZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEwOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHNraXBwaW5nIHRoZSBzZXR1cCBvZiBhIGxvb3AgZGV2aWNlXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTAzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiAlcyBpcyBhbHJlYWR5IG1vdW50ZWQgb24gJXMgYXMgbG9vcCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGdvaW5nIHRvIHVzZSB0aGUgbG9vcCBkZXZpY2UgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExMjIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHN0b2xlbiBsb29wPSVzIC4uLnRyeWluZyBhZ2FpblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTEyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3RvbGVuIGxvb3A9JXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTMyCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBmYWlsZWQgc2V0dGluZyB1cCBsb29wIGRldmljZVxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTE0MworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc2V0dXAgbG9vcCBkZXZpY2Ugc3VjY2Vzc2Z1bGx5XG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMTc3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyAlcyBmb3VuZCAtIGNyZWF0aW5nIGl0Li5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjExOTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbid0IG9wZW4gJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTIxNQorbXNnaWQgIm1vdW50OiBhcmd1bWVudCB0byAtcCBvciAtLXBhc3MtZmQgbXVzdCBiZSBhIG51bWJlciIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjEyMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCBvcGVuICVzIGZvciBzZXR0aW5nIHNwZWVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTIzMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IHNldCBzcGVlZDogJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMzIzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBhY2NvcmRpbmcgdG8gbXRhYiwgJXMgaXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxMzgwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiB3YXJuaW5nOiAlcyBzZWVtcyB0byBiZSBtb3VudGVkIHJlYWQtd3JpdGUuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDEzCittc2dpZCAiIgorIm1vdW50OiBJIGNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGZpbGVzeXN0ZW0gdHlwZSwgYW5kIG5vbmUgd2FzIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MTYKK21zZ2lkICJtb3VudDogeW91IG11c3Qgc3BlY2lmeSB0aGUgZmlsZXN5c3RlbSB0eXBlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQxOQorbXNnaWQgIm1vdW50OiBtb3VudCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDI1IG1vdW50L21vdW50LmM6MTQ2MgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbW91bnQgcG9pbnQgJXMgaXMgbm90IGEgZGlyZWN0b3J5IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQyNworbXNnaWQgIm1vdW50OiBwZXJtaXNzaW9uIGRlbmllZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0MjkKK21zZ2lkICJtb3VudDogbXVzdCBiZSBzdXBlcnVzZXIgdG8gdXNlIG1vdW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQzMyBtb3VudC9tb3VudC5jOjE0MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIGJ1c3kiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDM5Cittc2dpZCAibW91bnQ6IHByb2MgYWxyZWFkeSBtb3VudGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ0MQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9yICVzIGJ1c3kiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBtb3VudCBwb2ludCAlcyBkb2VzIG5vdCBleGlzdCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG1vdW50IHBvaW50ICVzIGlzIGEgc3ltYm9saWMgbGluayB0byBub3doZXJlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ1NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3QiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDY2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogc3BlY2lhbCBkZXZpY2UgJXMgZG9lcyBub3QgZXhpc3RcbiIKKyIgICAgICAgKGEgcGF0aCBwcmVmaXggaXMgbm90IGEgZGlyZWN0b3J5KVxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTQ3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgbm90IG1vdW50ZWQgYWxyZWFkeSwgb3IgYmFkIG9wdGlvbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE0ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiB3cm9uZyBmcyB0eXBlLCBiYWQgb3B0aW9uLCBiYWQgc3VwZXJibG9jayBvbiAlcyxcbiIKKyIgICAgICAgbWlzc2luZyBjb2RlcGFnZSBvciBoZWxwZXIgcHJvZ3JhbSwgb3Igb3RoZXIgZXJyb3IiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDg3Cittc2dpZCAiIgorIiAgICAgICAoZm9yIHNldmVyYWwgZmlsZXN5c3RlbXMgKGUuZy4gbmZzLCBjaWZzKSB5b3UgbWlnaHRcbiIKKyIgICAgICAgbmVlZCBhIC9zYmluL21vdW50Ljx0eXBlPiBoZWxwZXIgcHJvZ3JhbSkiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNDk2Cittc2dpZCAiIgorIiAgICAgICAoY291bGQgdGhpcyBiZSB0aGUgSURFIGRldmljZSB3aGVyZSB5b3UgaW4gZmFjdCB1c2VcbiIKKyIgICAgICAgaWRlLXNjc2kgc28gdGhhdCBzcjAgb3Igc2RhIG9yIHNvIGlzIG5lZWRlZD8pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUwMQorbXNnaWQgIiIKKyIgICAgICAgKGFyZW4ndCB5b3UgdHJ5aW5nIHRvIG1vdW50IGFuIGV4dGVuZGVkIHBhcnRpdGlvbixcbiIKKyIgICAgICAgaW5zdGVhZCBvZiBzb21lIGxvZ2ljYWwgcGFydGl0aW9uIGluc2lkZT8pIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUwOAorbXNnaWQgIiIKKyIgICAgICAgSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBpcyBmb3VuZCBpbiBzeXNsb2cgLSB0cnlcbiIKKyIgICAgICAgZG1lc2cgfCB0YWlsICBvciBzb1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUxNAorbXNnaWQgIm1vdW50IHRhYmxlIGZ1bGwiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlczogY2FuJ3QgcmVhZCBzdXBlcmJsb2NrIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUyMgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXM6IHVua25vd24gZGV2aWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTUyNworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogdW5rbm93biBmaWxlc3lzdGVtIHR5cGUgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1MzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IHByb2JhYmx5IHlvdSBtZWFudCAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NDIKK21zZ2lkICJtb3VudDogbWF5YmUgeW91IG1lYW50ICdpc285NjYwJz8iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTQ1Cittc2dpZCAibW91bnQ6IG1heWJlIHlvdSBtZWFudCAndmZhdCc/IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU0OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaGFzIHdyb25nIGRldmljZSBudW1iZXIgb3IgZnMgdHlwZSAlcyBub3Qgc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU1NgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgaXMgbm90IGEgYmxvY2sgZGV2aWNlLCBhbmQgc3RhdCBmYWlscz8iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJtb3VudDogdGhlIGtlcm5lbCBkb2VzIG5vdCByZWNvZ25pemUgJXMgYXMgYSBibG9jayBkZXZpY2VcbiIKKyIgICAgICAgKG1heWJlIGBtb2Rwcm9iZSBkcml2ZXInPykiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNTYxCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiAlcyBpcyBub3QgYSBibG9jayBkZXZpY2UgKG1heWJlIHRyeSBgLW8gbG9vcCc/KSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIGJsb2NrIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6ICVzIGlzIG5vdCBhIHZhbGlkIGJsb2NrIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1NzIKK21zZ2lkICJibG9jayBkZXZpY2UgIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU3NAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2Fubm90IG1vdW50ICVzJXMgcmVhZC1vbmx5IgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU3OAorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQgYnV0IGV4cGxpY2l0IGAtdycgZmxhZyBnaXZlbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE1ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IGNhbm5vdCByZW1vdW50ICVzJXMgcmVhZC13cml0ZSwgaXMgd3JpdGUtcHJvdGVjdGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTU5NworIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMlcyBpcyB3cml0ZS1wcm90ZWN0ZWQsIG1vdW50aW5nIHJlYWQtb25seSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE2MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyAuLi50cnlpbmcgYWdhaW5cbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE2MTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW91bnQ6IG5vIG1lZGl1bSBmb3VuZCBvbiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjE2MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vdW50OiAlcyBkb2VzIG5vdCBjb250YWluIFNFTGludXggbGFiZWxzLlxuIgorIiAgICAgICBZb3UganVzdCBtb3VudGVkIGFuIGZpbGUgc3lzdGVtIHRoYXQgc3VwcG9ydHMgbGFiZWxzIHdoaWNoIGRvZXMgbm90XG4iCisiICAgICAgIGNvbnRhaW4gbGFiZWxzLCBvbnRvIGFuIFNFTGludXggYm94LiBJdCBpcyBsaWtlbHkgdGhhdCBjb25maW5lZFxuIgorIiAgICAgICBhcHBsaWNhdGlvbnMgd2lsbCBnZW5lcmF0ZSBBVkMgbWVzc2FnZXMgYW5kIG5vdCBiZSBhbGxvd2VkIGFjY2VzcyB0b1xuIgorIiAgICAgICB0aGlzIGZpbGUgc3lzdGVtLiAgRm9yIG1vcmUgZGV0YWlscyBzZWUgcmVzdG9yZWNvbig4KSBhbmQgbW91bnQoOCkuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxNzEwCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBubyB0eXBlIHdhcyBnaXZlbiAtIEknbGwgYXNzdW1lIG5mcyBiZWNhdXNlIG9mIHRoZSBjb2xvblxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogbm8gdHlwZSB3YXMgZ2l2ZW4gLSBJJ2xsIGFzc3VtZSBjaWZzIGJlY2F1c2Ugb2YgdGhlIC8vIHByZWZpeFxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MTgxMQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogJXMgYWxyZWFkeSBtb3VudGVkIG9uICVzXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoxOTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogbW91bnQgLVYgICAgICAgICAgICAgICAgIDogcHJpbnQgdmVyc2lvblxuIgorIiAgICAgICBtb3VudCAtaCAgICAgICAgICAgICAgICAgOiBwcmludCB0aGlzIGhlbHBcbiIKKyIgICAgICAgbW91bnQgICAgICAgICAgICAgICAgICAgIDogbGlzdCBtb3VudGVkIGZpbGVzeXN0ZW1zXG4iCisiICAgICAgIG1vdW50IC1sICAgICAgICAgICAgICAgICA6IGlkZW0sIGluY2x1ZGluZyB2b2x1bWUgbGFiZWxzXG4iCisiU28gZmFyIHRoZSBpbmZvcm1hdGlvbmFsIHBhcnQuIE5leHQgdGhlIG1vdW50aW5nLlxuIgorIlRoZSBjb21tYW5kIGlzIGBtb3VudCBbLXQgZnN0eXBlXSBzb21ldGhpbmcgc29tZXdoZXJlJy5cbiIKKyJEZXRhaWxzIGZvdW5kIGluIC9ldGMvZnN0YWIgbWF5IGJlIG9taXR0ZWQuXG4iCisiICAgICAgIG1vdW50IC1hIFstdHwtT10gLi4uICAgICA6IG1vdW50IGFsbCBzdHVmZiBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgICAgICAgbW91bnQgZGV2aWNlICAgICAgICAgICAgIDogbW91bnQgZGV2aWNlIGF0IHRoZSBrbm93biBwbGFjZVxuIgorIiAgICAgICBtb3VudCBkaXJlY3RvcnkgICAgICAgICAgOiBtb3VudCBrbm93biBkZXZpY2UgaGVyZVxuIgorIiAgICAgICBtb3VudCAtdCB0eXBlIGRldiBkaXIgICAgOiBvcmRpbmFyeSBtb3VudCBjb21tYW5kXG4iCisiTm90ZSB0aGF0IG9uZSBkb2VzIG5vdCByZWFsbHkgbW91bnQgYSBkZXZpY2UsIG9uZSBtb3VudHNcbiIKKyJhIGZpbGVzeXN0ZW0gKG9mIHRoZSBnaXZlbiB0eXBlKSBmb3VuZCBvbiB0aGUgZGV2aWNlLlxuIgorIk9uZSBjYW4gYWxzbyBtb3VudCBhbiBhbHJlYWR5IHZpc2libGUgZGlyZWN0b3J5IHRyZWUgZWxzZXdoZXJlOlxuIgorIiAgICAgICBtb3VudCAtLWJpbmQgb2xkZGlyIG5ld2RpclxuIgorIm9yIG1vdmUgYSBzdWJ0cmVlOlxuIgorIiAgICAgICBtb3VudCAtLW1vdmUgb2xkZGlyIG5ld2RpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIG1vdW50IGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zaGFyZWQgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1zbGF2ZSBkaXJcbiIKKyIgICAgICAgbW91bnQgLS1tYWtlLXByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS11bmJpbmRhYmxlIGRpclxuIgorIk9uZSBjYW4gY2hhbmdlIHRoZSB0eXBlIG9mIGFsbCB0aGUgbW91bnRzIGluIGEgbW91bnQgc3VidHJlZVxuIgorImNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSBkaXI6XG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1yc2hhcmVkIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnNsYXZlIGRpclxuIgorIiAgICAgICBtb3VudCAtLW1ha2UtcnByaXZhdGUgZGlyXG4iCisiICAgICAgIG1vdW50IC0tbWFrZS1ydW5iaW5kYWJsZSBkaXJcbiIKKyJBIGRldmljZSBjYW4gYmUgZ2l2ZW4gYnkgbmFtZSwgc2F5IC9kZXYvaGRhMSBvciAvZGV2L2Nkcm9tLFxuIgorIm9yIGJ5IGxhYmVsLCB1c2luZyAgLUwgbGFiZWwgIG9yIGJ5IHV1aWQsIHVzaW5nICAtVSB1dWlkIC5cbiIKKyJPdGhlciBvcHRpb25zOiBbLW5mRnJzdnddIFstbyBvcHRpb25zXSBbLXAgcGFzc3dkZmRdLlxuIgorIkZvciBtYW55IG1vcmUgZGV0YWlscywgc2F5ICBtYW4gOCBtb3VudCAuXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQgKGVmZmVjdGl2ZSBVSUQgaXMgJWQpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjI3NworbXNnaWQgIm1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIiIKKworIzogbW91bnQvbW91bnQuYzoyMjg4Cittc2dpZCAibm90aGluZyB3YXMgbW91bnRlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudC5jOjIzMDYgbW91bnQvbW91bnQuYzoyMzMyCittc2dpZCAibW91bnQ6IG5vIHN1Y2ggcGFydGl0aW9uIGZvdW5kIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50LmM6MjMwOQorIywgYy1mb3JtYXQKK21zZ2lkICJtb3VudDogY2FuJ3QgZmluZCAlcyBpbiAlcyBvciAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9tb3VudF9tbnRlbnQuYzoxNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiW21udGVudF06IHdhcm5pbmc6IG5vIGZpbmFsIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxNgorIywgYy1mb3JtYXQKK21zZ2lkICJbbW50ZW50XTogbGluZSAlZCBpbiAlcyBpcyBiYWQlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L21vdW50X21udGVudC5jOjIxOQorbXNnaWQgIjsgcmVzdCBvZiBmaWxlIGlnbm9yZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3VuZHJpZXMuYzozMgorbXNnaWQgImJ1ZyBpbiB4c3RybmR1cCBjYWxsIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N1bmRyaWVzLmM6MjI1IG1vdW50L3N1bmRyaWVzLmM6MjgxIG1vdW50L3N1bmRyaWVzLmM6Mjk2CisjOiBtb3VudC94bWFsbG9jLmM6MTEKK21zZ2lkICJub3QgZW5vdWdoIG1lbW9yeSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo4NAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIDxzcGVjaWFsPiBwYXJhbWV0ZXI6XG4iCisiIHstTCBsYWJlbCB8IExBQkVMPWxhYmVsfSAgICAgICAgICAgICBMQUJFTCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiB7LVUgdXVpZCAgfCBVVUlEPXV1aWR9ICAgICAgICAgICAgICAgVVVJRCBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZGV2aWNlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBkZXZpY2UgdG8gYmUgdXNlZFxuIgorIiA8ZmlsZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBmaWxlIHRvIGJlIHVzZWRcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiVXNhZ2U6XG4iCisiICUxJHMgLWEgWy1lXSBbLXZdIFstZl0gICAgICAgICAgICAgZW5hYmxlIGFsbCBzd2FwcyBmcm9tIC9ldGMvZnN0YWJcbiIKKyIgJTEkcyBbLXAgcHJpb3JpdHldIFstdl0gWy1mXSA8c3BlY2lhbD4gIGVuYWJsZSBnaXZlbiBzd2FwXG4iCisiICUxJHMgLXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBzd2FwIHVzYWdlIHN1bW1hcnlcbiIKKyIgJTEkcyAtaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGhlbHBcbiIKKyIgJTEkcyAtViAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiAlMSRzIC1hIFstdl0gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZSBhbGwgc3dhcHNcbiIKKyIgJTEkcyBbLXZdIDxzcGVjaWFsPiAgICAgICAgICAgICAgIGRpc2FibGUgZ2l2ZW4gc3dhcFxuIgorIiAlMSRzIC1oICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBoZWxwXG4iCisiICUxJHMgLVYgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IHZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVuZXhwZWN0ZWQgZmlsZSBmb3JtYXQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiByZWluaXRpYWxpemluZyB0aGUgc3dhcC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjIzCisjLCBmdXp6eQorbXNnaWQgImZvcmsgZmFpbGVkIgorbXNnc3RyICLmn6Xmib7lpLHotKUiCisKKyM6IG1vdW50L3N3YXBvbi5jOjIzOQorIywgZnV6enkKK21zZ2lkICJleGVjdiBmYWlsZWQiCittc2dzdHIgIuafpeaJvuWksei0pSIKKworIzogbW91bnQvc3dhcG9uLmM6MjQ3Cittc2dpZCAid2FpdHBpZCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MjcxCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogbHNlZWsgZmFpbGVkIgorbXNnc3RyICLmn6Xmib7lpLHotKUiCisKKyM6IG1vdW50L3N3YXBvbi5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JpdGUgc2lnbmF0dXJlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzozNjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvdW5kIHN3YXAgc2lnbmF0dXJlOiB2ZXJzaW9uICVkLCBwYWdlLXNpemUgJWQsICVzIGJ5dGUgb3JkZXIiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6MzY5Cittc2dpZCAiZGlmZmVyZW50IgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjM2OQorbXNnaWQgInNhbWUiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6Mzg0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogc3RhdCBmYWlsZWQiCittc2dzdHIgIiVzIOWksei0pS5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6Mzk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBpbnNlY3VyZSBwZXJtaXNzaW9ucyAlMDRvLCAlMDRvIHN1Z2dlc3RlZC4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBza2lwcGluZyAtIGl0IGFwcGVhcnMgdG8gaGF2ZSBob2xlcy4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDE2CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICIlczogZ2V0IHNpemUgZmFpbGVkIgorbXNnc3RyICLmn6Xmib7lpLHotKUiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVhZCBzd2FwIGhlYWRlciBmYWlsZWQiCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDM1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBsYXN0X3BhZ2UgMHglMDhsbHggaXMgbGFyZ2VyIHRoYW4gYWN0dWFsIHNpemUgb2Ygc3dhcHNwYWNlIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogc3dhcCBmb3JtYXQgcGFnZXNpemUgZG9lcyBub3QgbWF0Y2guIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IHN3YXAgZm9ybWF0IHBhZ2VzaXplIGRvZXMgbm90IG1hdGNoLiAoVXNlIC0tZml4cGdzeiB0byByZWluaXRpYWxpemUgaXQuKSIKK21zZ3N0ciAiIgorCisjOiBtb3VudC9zd2Fwb24uYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHNvZnR3YXJlIHN1c3BlbmQgZGF0YSBkZXRlY3RlZC4gUmV3cml0aW5nIHRoZSBzd2FwIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKworIzogbW91bnQvc3dhcG9uLmM6NDc4IG1vdW50L3N3YXBvbi5jOjUyOAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBvbiAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjUwMAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvbiBmYWlsZWQiCittc2dzdHIgIiVzIOWksei0pS5cbiIKKworIzogbW91bnQvc3dhcG9uLmM6NTA3CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmaW5kIHRoZSBkZXZpY2UgZm9yICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MAorbXNnaWQgIk5vdCBzdXBlcnVzZXIuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3N3YXBvbi5jOjU0MworIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IHN3YXBvZmYgZmFpbGVkIgorbXNnc3RyICIlcyDlpLHotKUuXG4iCisKKyM6IG1vdW50L3N3YXBvbi5jOjgxMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIHVuc3VwcG9ydGVkIHByb2dyYW0gbmFtZSAobXVzdCBiZSAnc3dhcG9uJyBvciAnc3dhcG9mZicpLiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNvbXBpbGVkIHdpdGhvdXQgc3VwcG9ydCBmb3IgLWZcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxMTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IGdyb3VwIGlkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3Qgc2V0IHVzZXIgaWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjEzOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGNhbm5vdCBmb3JrOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogaW52YWxpZCBibG9jayBkZXZpY2UiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTYyCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG5vdCBtb3VudGVkIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBjYW4ndCB3cml0ZSBzdXBlcmJsb2NrIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE2OAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisidW1vdW50OiAlczogZGV2aWNlIGlzIGJ1c3kuXG4iCisiICAgICAgICAoSW4gc29tZSBjYXNlcyB1c2VmdWwgaW5mbyBhYm91dCBwcm9jZXNzZXMgdGhhdCB1c2VcbiIKKyIgICAgICAgICB0aGUgZGV2aWNlIGlzIGZvdW5kIGJ5IGxzb2YoOCkgb3IgZnVzZXIoMSkpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiBub3QgZm91bmQiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MTc1CisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXM6IG11c3QgYmUgc3VwZXJ1c2VyIHRvIHVtb3VudCIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoxNzcKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlczogYmxvY2sgZGV2aWNlcyBub3QgcGVybWl0dGVkIG9uIGZzIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzOiAlcyIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzoyMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdW1vdW50MiwgdHJ5aW5nIHVtb3VudC4uLlxuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIGJ1c3kgLSByZW1vdW50ZWQgcmVhZC1vbmx5XG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogY291bGQgbm90IHJlbW91bnQgJXMgcmVhZC1vbmx5XG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHVtb3VudGVkXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6MzY3Cittc2dpZCAidW1vdW50OiBjYW5ub3QgZmluZCBsaXN0IG9mIGZpbGVzeXN0ZW1zIHRvIHVubW91bnQiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6Mzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogdW1vdW50IC1oIHwgLVZcbiIKKyIgICAgICAgdW1vdW50IC1hIFstZF0gWy1mXSBbLXJdIFstbl0gWy12XSBbLXQgdmZzdHlwZXNdIFstTyBvcHRzXVxuIgorIiAgICAgICB1bW91bnQgWy1kXSBbLWZdIFstcl0gWy1uXSBbLXZdIHNwZWNpYWwgfCBub2RlLi4uXG4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NDY4CisjLCBjLWZvcm1hdAorbXNnaWQgImRldmljZSAlcyBpcyBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0NzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGV2aWNlICVzIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggJXNcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0ODcKK21zZ2lkICJDYW5ub3QgdW1vdW50IFwiXCJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo0OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIHRvIHVtb3VudCAlc1xuIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjUwNgorbXNnaWQgInVtb3VudDogY29uZnVzZWQgd2hlbiBhbmFseXppbmcgbXRhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBjYW5ub3QgdW1vdW50ICVzIC0tICVzIGlzIG1vdW50ZWQgb3ZlciBpdCBvbiB0aGUgc2FtZSBwb2ludC4iCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBmaW5kICVzIGluIG10YWJcbiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo1MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiAlcyBpcyBub3QgbW91bnRlZCAoYWNjb3JkaW5nIHRvIG10YWIpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6IGl0IHNlZW1zICVzIGlzIG1vdW50ZWQgbXVsdGlwbGUgdGltZXMiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVtb3VudDogJXMgaXMgbm90IGluIHRoZSBmc3RhYiAoYW5kIHlvdSBhcmUgbm90IHJvb3QpIgorbXNnc3RyICIiCisKKyM6IG1vdW50L3Vtb3VudC5jOjU2OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bW91bnQ6ICVzIG1vdW50IGRpc2FncmVlcyB3aXRoIHRoZSBmc3RhYiIKK21zZ3N0ciAiIgorCisjOiBtb3VudC91bW91bnQuYzo2MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW1vdW50OiBvbmx5ICVzIGNhbiB1bm1vdW50ICVzIGZyb20gJXMiCittc2dzdHIgIiIKKworIzogbW91bnQvdW1vdW50LmM6NzAxCittc2dpZCAidW1vdW50OiBvbmx5IHJvb3QgY2FuIGRvIHRoYXQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorImNocnQgLSBtYW5pcHVsYXRlIHJlYWwtdGltZSBhdHRyaWJ1dGVzIG9mIGEgcHJvY2Vzcy5cbiIKKyJcbiIKKyJTZXQgcG9saWN5OlxuIgorIiAgY2hydCBbb3B0aW9uc10gPHBvbGljeT4gPHByaW9yaXR5PiB7PHBpZD4gfCA8Y29tbWFuZD4gWzxhcmc+IC4uLl19XG4iCisiXG4iCisiR2V0IHBvbGljeTpcbiIKKyIgIGNocnQgW29wdGlvbnNdIHs8cGlkPiB8IDxjb21tYW5kPiBbPGFyZz4gLi4uXX1cbiIKKyJcbiIKKyJcbiIKKyJTY2hlZHVsaW5nIHBvbGljaWVzOlxuIgorIiAgLWIgfCAtLWJhdGNoICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9CQVRDSFxuIgorIiAgLWYgfCAtLWZpZm8gICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9GSUZPXG4iCisiICAtaSB8IC0taWRsZSAgICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0lETEVcbiIKKyIgIC1vIHwgLS1vdGhlciAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfT1RIRVJcbiIKKyIgIC1yIHwgLS1yciAgICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfUlIgKGRlZmF1bHQpXG4iCisiXG4iCisiT3B0aW9uczpcbiIKKyIgIC1oIHwgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwXG4iCisiICAtcCB8IC0tcGlkICAgICAgICAgICBvcGVyYXRlIG9uIGV4aXN0aW5nIGdpdmVuIHBpZFxuIgorIiAgLW0gfCAtLW1heCAgICAgICAgICAgc2hvdyBtaW4gYW5kIG1heCB2YWxpZCBwcmlvcml0aWVzXG4iCisiICAtdiB8IC0tdmVyYm9zZSAgICAgICBkaXNwbGF5IHN0YXR1cyBpbmZvcm1hdGlvblxuIgorIiAgLVYgfCAtLXZlcnNpb24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NQorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZ2V0IHBpZCAlZCdzIHBvbGljeSIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJwaWQgJWQncyAlcyBzY2hlZHVsaW5nIHBvbGljeTogIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjEwOQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duXG4iCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwcmlvcml0eTogJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICJTQ0hFRF8lcyBub3Qgc3VwcG9ydGVkP1xuIgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIwMworIywgZnV6enkKK21zZ2lkICJmYWlsZWQgdG8gcGFyc2UgcGlkIgorbXNnc3RyICLkuI3og73or7sgaW5vZGVzIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMjUKK21zZ2lkICJjdXJyZW50IgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjIzMworbXNnaWQgImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2NocnQuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHNldCBwaWQgJWQncyBwb2xpY3kiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9jaHJ0LmM6MjQyCittc2dpZCAibmV3IgorbXNnc3RyICIiCisKKyM6IHNjaGVkdXRpbHMvY2hydC5jOjI0OAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjU3Cittc2dpZCAiaW9wcmlvX2dldCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzo3NQorIywgZnV6enkKK21zZ2lkICJpb3ByaW9fc2V0IGZhaWxlZCIKK21zZ3N0ciAi5p+l5om+5aSx6LSlIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJpb25pY2UgLSBzZXRzIG9yIGdldHMgcHJvY2VzcyBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eS5cbiIKKyJcbiIKKyJVc2FnZTpcbiIKKyIgIGlvbmljZSBbIG9wdGlvbnMgXSAtcCA8cGlkPiBbPHBpZD4gLi4uXVxuIgorIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorIlxuIgorIk9wdGlvbnM6XG4iCisiICAtbiA8Y2xhc3NkYXRhPiAgICAgIGNsYXNzIGRhdGEgKDAtNywgbG93ZXIgYmVpbmcgaGlnaGVyIHByaW8pXG4iCisiICAtYyA8Y2xhc3M+ICAgICAgICAgIHNjaGVkdWxpbmcgY2xhc3NcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisiICAtdCAgICAgICAgICAgICAgICAgIGlnbm9yZSBmYWlsdXJlc1xuIgorIiAgLWggICAgICAgICAgICAgICAgICB0aGlzIGhlbHBcbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjExMCBzY2hlZHV0aWxzL2lvbmljZS5jOjExMgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIgorbXNnc3RyICIlczog5LiN6IO95omT5byAICVzXG4iCisKKyM6IHNjaGVkdXRpbHMvaW9uaWNlLmM6MTUxCittc2dpZCAiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3Igbm9uZSBjbGFzcyIKK21zZ3N0ciAiIgorCisjOiBzY2hlZHV0aWxzL2lvbmljZS5jOjE1OQorbXNnaWQgImlnbm9yaW5nIGdpdmVuIGNsYXNzIGRhdGEgZm9yIGlkbGUgY2xhc3MiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkIHByaW8gY2xhc3MgJWQiCittc2dzdHIgIiIKKworIzogc2NoZWR1dGlscy9pb25pY2UuYzoxODcKKyMsIGZ1enp5Cittc2dpZCAiZXhlY3ZwIGZhaWxlZCIKK21zZ3N0ciAi5p+l5om+5aSx6LSlIgorCisjOiBzeXMtdXRpbHMvY3RybGFsdGRlbC5jOjI3CisjLCBjLWZvcm1hdAorbXNnaWQgIllvdSBtdXN0IGJlIHJvb3QgdG8gc2V0IHRoZSBDdHJsLUFsdC1EZWwgYmVoYXZpb3VyLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jdHJsYWx0ZGVsLmM6NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjExNAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUsIE1heGltdW0gY2hhcmFjdGVycyBpbiBmaWZvIHdlcmUgJWQsXG4iCisiYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjEyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgIgorImluIGZpZm8gd2VyZSAlZCxcbiIKKyJhbmQgdGhlIG1heGltdW0gdHJhbnNmZXIgcmF0ZSBpbiBjaGFyYWN0ZXJzL3NlY29uZCB3YXMgJWZcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MTg5CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgaW50ZXJ2YWwgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjE5NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHNldCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjA1CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgZGVmYXVsdCB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjIyMQorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIGRlZmF1bHQgdGltZSB2YWx1ZTogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pICIKKyJbLWd8LUddIGZpbGUgW2ZpbGUuLi5dXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI1MCBzeXMtdXRpbHMvY3l0dW5lLmM6MjY5IHN5cy11dGlscy9jeXR1bmUuYzoyODkKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3Qgb3BlbiAlczogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbid0IHNldCAlcyB0byB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4ndCBzZXQgJXMgdG8gdGltZSB0aHJlc2hvbGQgJWQ6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjI5NCBzeXMtdXRpbHMvY3l0dW5lLmM6MzUxIHN5cy11dGlscy9jeXR1bmUuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRocmVzaG9sZCBmb3IgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMwMCBzeXMtdXRpbHMvY3l0dW5lLmM6MzU3IHN5cy11dGlscy9jeXR1bmUuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgZ2V0IHRpbWVvdXQgZm9yICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBjdXJyZW50IHRocmVzaG9sZCBhbmQgJWxkIGN1cnJlbnQgdGltZW91dFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVsZCBkZWZhdWx0IHRocmVzaG9sZCBhbmQgJWxkIGRlZmF1bHQgdGltZW91dFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzozMjcKK21zZ2lkICJDYW4ndCBzZXQgc2lnbmFsIGhhbmRsZXIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjMzMSBzeXMtdXRpbHMvY3l0dW5lLmM6MzY2Cittc2dpZCAiZ2V0dGltZW9mZGF5IGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6MzQ0IHN5cy11dGlscy9jeXR1bmUuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQxOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICVsdSBtYXgsICVsdSBub3dcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvY3l0dW5lLmM6NDI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICVmIGludC9zZWM7ICVmIHJlYywgJWYgc2VuZCAoY2hhci9zZWMpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2N5dHVuZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6ICVsdSBpbnRzLCAlbHUgY2hhcnM7IGZpZm86ICVsdSB0aHJlc2gsICVsdSB0bW91dCwgJWx1IG1heCwgJWx1IG5vd1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9jeXR1bmUuYzo0MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZG1lc2cuYzo0NQorIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgWy1jXSBbLW4gbGV2ZWxdIFstcl0gWy1zIGJ1ZnNpemVdXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJVc2FnZTogJXMgW29wdGlvbnNdIDxmaWxlbmFtZT5cbiIKKyJcbiIKKyJPcHRpb25zOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisiIC1uLCAtLWtlZXAtc2l6ZSAgICAgZG9uJ3QgbW9kaWZ5IHRoZSBsZW5ndGggb2YgdGhlIGZpbGVcbiIKKyIgLW8sIC0tb2Zmc2V0IDxudW0+ICBvZmZzZXQgb2YgdGhlIGFsbG9jYXRpb24sIGluIGJ5dGVzXG4iCisiIC1sLCAtLWxlbmd0aCA8bnVtPiAgbGVuZ3RoIG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ3Cittc2dpZCAibm8gbGVuZ3RoIGFyZ3VtZW50IHNwZWNpZmllZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmFsbG9jYXRlLmM6MTQ5Cittc2dpZCAiaW52YWxpZCBsZW5ndGggdmFsdWUgc3BlY2lmaWVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNTEKK21zZ2lkICJpbnZhbGlkIG9mZnNldCB2YWx1ZSBzcGVjaWZpZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE1MworbXNnaWQgIm5vIGZpbGVuYW1lIHNwZWNpZmllZC4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jOjE3MworbXNnaWQgImtlZXAgc2l6ZSBtb2RlICgtbiBvcHRpb24pIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mYWxsb2NhdGUuYzoxNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZhbGxvY2F0ZSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlMSRzIFstc3h1bl1bLXcgI10gZmQjXG4iCisiICAgICAgICUxJHMgWy1zeG9uXVstdyAjXSBmaWxlIFstY10gY29tbWFuZC4uLlxuIgorIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZGlyZWN0b3J5IFstY10gY29tbWFuZC4uLlxuIgorIiAgLXMgIC0tc2hhcmVkICAgICBHZXQgYSBzaGFyZWQgbG9ja1xuIgorIiAgLXggIC0tZXhjbHVzaXZlICBHZXQgYW4gZXhjbHVzaXZlIGxvY2tcbiIKKyIgIC11ICAtLXVubG9jayAgICAgUmVtb3ZlIGEgbG9ja1xuIgorIiAgLW4gIC0tbm9uYmxvY2sgICBGYWlsIHJhdGhlciB0aGFuIHdhaXRcbiIKKyIgIC13ICAtLXRpbWVvdXQgICAgV2FpdCBmb3IgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lXG4iCisiICAtbyAgLS1jbG9zZSAgICAgIENsb3NlIGZpbGUgZGVzY3JpcHRvciBiZWZvcmUgcnVubmluZyBjb21tYW5kXG4iCisiICAtYyAgLS1jb21tYW5kICAgIFJ1biBhIHNpbmdsZSBjb21tYW5kIHN0cmluZyB0aHJvdWdoIHRoZSBzaGVsbFxuIgorIiAgLWggIC0taGVscCAgICAgICBEaXNwbGF5IHRoaXMgdGV4dFxuIgorIiAgLVYgIC0tdmVyc2lvbiAgICBEaXNwbGF5IHZlcnNpb25cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoxOTIKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyByZXF1aXJlcyBleGFjdGx5IG9uZSBjb21tYW5kIGFyZ3VtZW50XG4iCittc2dzdHIgIiVzIOmcgOimgeS4gOS4quWPguaVsFxuIgorCisjOiBzeXMtdXRpbHMvZmxvY2suYzoyMTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3Qgb3BlbiBsb2NrIGZpbGUgJXM6ICVzXG4iCittc2dzdHIgIiVzOiDkuI3og73miZPlvIAgJXNcbiIKKworIzogc3lzLXV0aWxzL2Zsb2NrLmM6MjMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgbnVtYmVyOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjIzOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9mbG9jay5jOjI5NgorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiJXM6IGZvcmsgZmFpbGVkOiAlc1xuIgorbXNnc3RyICIlcyDlpLHotKUuXG4iCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgW29wdGlvbnNdXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgLU0gPHNpemU+ICAgICBjcmVhdGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IG9mIHNpemUgPHNpemU+XG4iCisiICAtUyA8bnNlbXM+ICAgIGNyZWF0ZSBzZW1hcGhvcmUgYXJyYXkgd2l0aCA8bnNlbXM+IGVsZW1lbnRzXG4iCisiICAtUSAgICAgICAgICAgIGNyZWF0ZSBtZXNzYWdlIHF1ZXVlXG4iCisiICAtcCA8bW9kZT4gICAgIHBlcm1pc3Npb24gZm9yIHRoZSByZXNvdXJjZSAoZGVmYXVsdCBpcyAwNjQ0KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaXBjbWsoMSkuXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQyCittc2dpZCAiY3JlYXRlIHNoYXJlIG1lbW9yeSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY21rLmM6MTUwCittc2dpZCAiY3JlYXRlIG1lc3NhZ2UgcXVldWUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1MgorIywgYy1mb3JtYXQKK21zZ2lkICJNZXNzYWdlIHF1ZXVlIGlkOiAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE1OAorbXNnaWQgImNyZWF0ZSBzZW1hcGhvcmUgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNtay5jOjE2MAorIywgYy1mb3JtYXQKK21zZ2lkICJTZW1hcGhvcmUgaWQ6ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJkZXByZWNhdGVkIHVzYWdlOiAlcyB7c2htIHwgbXNnIHwgc2VtfSBpZCAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxMjQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5rbm93biByZXNvdXJjZSB0eXBlOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJyZXNvdXJjZShzKSBkZWxldGVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MTM4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ1c2FnZTogJXMgWyBbLXEgbXNxaWRdIFstbSBzaG1pZF0gWy1zIHNlbWlkXVxuIgorIiAgICAgICAgICBbLVEgbXNna2V5XSBbLU0gc2hta2V5XSBbLVMgc2Vta2V5XSAuLi4gXVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoxOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwga2V5ICglcylcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDYgc3lzLXV0aWxzL2lwY3JtLmM6MjM4Cittc2dpZCAicGVybWlzc2lvbiBkZW5pZWQgZm9yIGtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMDkgc3lzLXV0aWxzL2lwY3JtLmM6MjQ4Cittc2dpZCAiYWxyZWFkeSByZW1vdmVkIGtleSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyMTIgc3lzLXV0aWxzL2lwY3JtLmM6MjQzCittc2dpZCAiaW52YWxpZCBrZXkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3JtLmM6MjE1IHN5cy11dGlscy9pcGNybS5jOjI1MworbXNnaWQgInVua25vd24gZXJyb3IgaW4ga2V5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjIzOQorbXNnaWQgInBlcm1pc3Npb24gZGVuaWVkIGZvciBpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNDQKK21zZ2lkICJpbnZhbGlkIGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI0OQorbXNnaWQgImFscmVhZHkgcmVtb3ZlZCBpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcm0uYzoyNTQKK21zZ2lkICJ1bmtub3duIGVycm9yIGluIGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgKCVzKVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNybS5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZSA6ICVzIC1hc21xIC10Y2x1cCBcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJcdCVzIC1oIGZvciBoZWxwLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlcyBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBpcGMgZmFjaWxpdGllcyBmb3Igd2hpY2ggeW91IGhhdmUgcmVhZCBhY2Nlc3MuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlJlc291cmNlIFNwZWNpZmljYXRpb246XG4iCisiXHQtbSA6IHNoYXJlZF9tZW1cbiIKKyJcdC1xIDogbWVzc2FnZXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjEyNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXHQtcyA6IHNlbWFwaG9yZXNcbiIKKyJcdC1hIDogYWxsIChkZWZhdWx0KVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJPdXRwdXQgRm9ybWF0OlxuIgorIlx0LXQgOiB0aW1lXG4iCisiXHQtcCA6IHBpZFxuIgorIlx0LWMgOiBjcmVhdG9yXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoxMjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlx0LWwgOiBsaW1pdHNcbiIKKyJcdC11IDogc3VtbWFyeVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI1NAorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIHNoYXJlZCBtZW1vcnlcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2MAorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIHNlZ21lbnRzID0gJWx1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlZyBzaXplIChrYnl0ZXMpID0gJWx1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHRvdGFsIHNoYXJlZCBtZW1vcnkgKGtieXRlcykgPSAlbGx1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAibWluIHNlZyBzaXplIChieXRlcykgPSAlbHVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3NworIywgYy1mb3JtYXQKK21zZ2lkICJzZWdtZW50cyBhbGxvY2F0ZWQgJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWdlcyBhbGxvY2F0ZWQgJWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFnZXMgcmVzaWRlbnQgICVsZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjgwCisjLCBjLWZvcm1hdAorbXNnaWQgInBhZ2VzIHN3YXBwZWQgICAlbGRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJTd2FwIHBlcmZvcm1hbmNlOiAlbGQgYXR0ZW1wdHNcdCAlbGQgc3VjY2Vzc2VzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudCBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjI5NCBzeXMtdXRpbHMvaXBjcy5jOjMwMQorIzogc3lzLXV0aWxzL2lwY3MuYzozMDcKK21zZ2lkICJzaG1pZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjMwNyBzeXMtdXRpbHMvaXBjcy5jOjQwOAorIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMgc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MjQKK21zZ2lkICJwZXJtcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI4OCBzeXMtdXRpbHMvaXBjcy5jOjQwOCBzeXMtdXRpbHMvaXBjcy5jOjUwNgorbXNnaWQgImN1aWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyODggc3lzLXV0aWxzL2lwY3MuYzo0MDggc3lzLXV0aWxzL2lwY3MuYzo1MDYKK21zZ2lkICJjZ2lkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAidWlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjg4IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NTA2Cittc2dpZCAiZ2lkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTaGFyZWQgTWVtb3J5IEF0dGFjaC9EZXRhY2gvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQgc3lzLXV0aWxzL2lwY3MuYzozMDEgc3lzLXV0aWxzL2lwY3MuYzozMDcKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTEyCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOCBzeXMtdXRpbHMvaXBjcy5jOjUyNAorbXNnaWQgIm93bmVyIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6Mjk0Cittc2dpZCAiYXR0YWNoZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTQKK21zZ2lkICJkZXRhY2hlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjI5NQorbXNnaWQgImNoYW5nZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzoyOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNoYXJlZCBNZW1vcnkgQ3JlYXRvci9MYXN0LW9wIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDEKK21zZ2lkICJjcGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzAxCittc2dpZCAibHBpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjMwNQorIywgYy1mb3JtYXQKK21zZ2lkICItLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3IHN5cy11dGlscy9pcGNzLmM6NDIzIHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAia2V5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6MzA3Cittc2dpZCAiYnl0ZXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJuYXR0Y2giCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMDgKK21zZ2lkICJzdGF0dXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozMjkgc3lzLXV0aWxzL2lwY3MuYzozMzEgc3lzLXV0aWxzL2lwY3MuYzozMzMKKyM6IHN5cy11dGlscy9pcGNzLmM6NDQ0IHN5cy11dGlscy9pcGNzLmM6NDQ2IHN5cy11dGlscy9pcGNzLmM6NTQ1CisjOiBzeXMtdXRpbHMvaXBjcy5jOjU0NyBzeXMtdXRpbHMvaXBjcy5jOjU0OSBzeXMtdXRpbHMvaXBjcy5jOjYwMAorIzogc3lzLXV0aWxzL2lwY3MuYzo2MDIgc3lzLXV0aWxzL2lwY3MuYzo2MzAgc3lzLXV0aWxzL2lwY3MuYzo2MzIKKyM6IHN5cy11dGlscy9pcGNzLmM6NjM0IHN5cy11dGlscy9pcGNzLmM6NjU3Cittc2dpZCAiTm90IHNldCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM2MQorbXNnaWQgImRlc3QiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozNjIKK21zZ2lkICJsb2NrZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODIKKyMsIGMtZm9ybWF0Cittc2dpZCAia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggbnVtYmVyIG9mIGFycmF5cyA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjM5NAorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2VtYXBob3JlcyBzeXN0ZW0gd2lkZSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAibWF4IG9wcyBwZXIgc2Vtb3AgY2FsbCA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzozOTYKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VtYXBob3JlIG1heCB2YWx1ZSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGFycmF5cyA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWxsb2NhdGVkIHNlbWFwaG9yZXMgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDA4IHN5cy11dGlscy9pcGNzLmM6NDE0IHN5cy11dGlscy9pcGNzLmM6NDIzCittc2dpZCAic2VtaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIFNlbWFwaG9yZSBPcGVyYXRpb24vQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MTQKK21zZ2lkICJsYXN0LW9wIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDE0Cittc2dpZCAibGFzdC1jaGFuZ2VkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0MjMKK21zZ2lkICJuc2VtcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ4MgorIywgYy1mb3JtYXQKK21zZ2lkICJrZXJuZWwgbm90IGNvbmZpZ3VyZWQgZm9yIG1lc3NhZ2UgcXVldWVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBMaW1pdHMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MQorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggcXVldWVzIHN5c3RlbSB3aWRlID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5MgorIywgYy1mb3JtYXQKK21zZ2lkICJtYXggc2l6ZSBvZiBtZXNzYWdlIChieXRlcykgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NDkzCisjLCBjLWZvcm1hdAorbXNnaWQgImRlZmF1bHQgbWF4IHNpemUgb2YgcXVldWUgKGJ5dGVzKSA9ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo0OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OAorIywgYy1mb3JtYXQKK21zZ2lkICJhbGxvY2F0ZWQgcXVldWVzID0gJWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjQ5OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2VkIGhlYWRlcnMgPSAlZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MDYgc3lzLXV0aWxzL2lwY3MuYzo1MTIgc3lzLXV0aWxzL2lwY3MuYzo1MTgKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI0Cittc2dpZCAibXNxaWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxMgorbXNnaWQgInNlbmQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTIKK21zZ2lkICJyZWN2IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTEyCittc2dpZCAiY2hhbmdlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBQSURzIC0tLS0tLS0tXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1MTgKK21zZ2lkICJsc3BpZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUxOAorbXNnaWQgImxycGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTIyCisjLCBjLWZvcm1hdAorbXNnaWQgIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTI1Cittc2dpZCAidXNlZC1ieXRlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjUyNQorbXNnaWQgIm1lc3NhZ2VzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTg5CisjLCBmdXp6eQorbXNnaWQgInNobWN0bCBmYWlsZWQiCittc2dzdHIgIiVzIOWksei0pS5cbiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlNoYXJlZCBtZW1vcnkgU2VnbWVudCBzaG1pZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NTkyCisjLCBjLWZvcm1hdAorbXNnaWQgInVpZD0lZFx0Z2lkPSVkXHRjdWlkPSVkXHRjZ2lkPSVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9kZT0lI29cdGFjY2Vzc19wZXJtcz0lI29cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5NgorIywgYy1mb3JtYXQKK21zZ2lkICJieXRlcz0lbGRcdGxwaWQ9JWRcdGNwaWQ9JWRcdG5hdHRjaD0lbGRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJhdHRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjAxCisjLCBjLWZvcm1hdAorbXNnaWQgImRldF90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MDMgc3lzLXV0aWxzL2lwY3MuYzo2MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2hhbmdlX3RpbWU9JS0yNi4yNHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjYxNQorIywgZnV6enkKK21zZ2lkICJtc2djdGwgZmFpbGVkIgorbXNnc3RyICIlcyDlpLHotKUuXG4iCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjE3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJNZXNzYWdlIFF1ZXVlIG1zcWlkPSVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjI5CisjLCBjLWZvcm1hdAorbXNnaWQgInNlbmRfdGltZT0lLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJjdl90aW1lPSUtMjYuMjRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NDggc3lzLXV0aWxzL2lwY3MuYzo2NzAKKyMsIGZ1enp5Cittc2dpZCAic2VtY3RsIGZhaWxlZCIKK21zZ3N0ciAi5p+l5om+5aSx6LSlIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiU2VtYXBob3JlIEFycmF5IHNlbWlkPSVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAidWlkPSVkXHQgZ2lkPSVkXHQgY3VpZD0lZFx0IGNnaWQ9JWRcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY1MworIywgYy1mb3JtYXQKK21zZ2lkICJtb2RlPSUjbywgYWNjZXNzX3Blcm1zPSUjb1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5zZW1zID0gJWxkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2lwY3MuYzo2NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAib3RpbWUgPSAlLTI2LjI0c1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgImN0aW1lID0gJS0yNi4yNHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInNlbW51bSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvaXBjcy5jOjY2MQorbXNnaWQgInZhbHVlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAibmNvdW50IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAiemNvdW50IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9pcGNzLmM6NjYxCittc2dpZCAicGlkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJVc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzo5MQorbXNnaWQgIiIKKyJcbiIKKyJLbm93biA8bGRpc2M+IG5hbWVzOlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE3NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHNwZWVkOiAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoxNzkKKyMsIGMtZm9ybWF0Cittc2dpZCAibGRhdHRhY2ggZnJvbSAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjE4NCB0ZXh0LXV0aWxzL3RhaWxmLmM6MjA2Cittc2dpZCAiaW52YWxpZCBvcHRpb24iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MTk2CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgbGluZSBkaXNjaXBsaW5lOiAlcyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbGRhdHRhY2guYzoyMDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBnZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xkYXR0YWNoLmM6MjEzCisjLCBjLWZvcm1hdAorbXNnaWQgInNwZWVkICVkIHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI0NAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc2V0IHRlcm1pbmFsIGF0dHJpYnV0ZXMgZm9yICVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1MQorbXNnaWQgImNhbm5vdCBzZXQgbGluZSBkaXNjaXBsaW5lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sZGF0dGFjaC5jOjI1NworbXNnaWQgImNhbm5vdCBkYWVtb25pemUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQKKyMsIGZ1enp5Cittc2dpZCAibm9uZSIKK21zZ3N0ciAi5a6M5oiQXG4iCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjY1Cittc2dpZCAicGFyYSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NgorbXNnaWQgImZ1bGwiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTM3IHN5cy11dGlscy9sc2NwdS5jOjE2MCBzeXMtdXRpbHMvbHNjcHUuYzo0NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZXJyb3I6ICVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjE2MgorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvciBwYXJzZTogJXMiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MTg0Cittc2dpZCAiZXJyb3I6IHN0cmR1cCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6MjY3CisjLCBmdXp6eQorbXNnaWQgImVycm9yOiB1bmFtZSBmYWlsZWQiCittc2dzdHIgIuafpeaJvuWksei0pSIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTA2Cittc2dpZCAiZXJyb3I6IG1hbGxvYyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTIxCittc2dpZCAiZXJyb3I6IC9zeXMgZmlsZXN5c3RlbSBpcyBub3QgYWNjZXNzYWJsZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlclxuIgorIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKyIjIHN0YXJ0aW5nIGZyb20gemVyby5cbiIKKyIjIENQVSxDb3JlLFNvY2tldCxOb2RlIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYxOQorbXNnaWQgIkNQVSBvcC1tb2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MjUKK21zZ2lkICJUaHJlYWQocykgcGVyIGNvcmU6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYyNgorbXNnaWQgIkNvcmUocykgcGVyIHNvY2tldDoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjI3Cittc2dpZCAiQ1BVIHNvY2tldChzKToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjMxCittc2dpZCAiTlVNQSBub2RlKHMpOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzMKK21zZ2lkICJWZW5kb3IgSUQ6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNQorbXNnaWQgIkNQVSBmYW1pbHk6IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjYzNworbXNnaWQgIk1vZGVsOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2MzkKK21zZ2lkICJTdGVwcGluZzoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQxCittc2dpZCAiQ1BVIE1IejoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjQ0IHN5cy11dGlscy9sc2NwdS5jOjY0NgorbXNnaWQgIlZpcnR1YWxpemF0aW9uOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NDkKK21zZ2lkICJIeXBlcnZpc29yIHZlbmRvcjoiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjUwCittc2dpZCAiVmlydHVhbGl6YXRpb24gdHlwZToiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGNhY2hlOiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvbHNjcHUuYzo2NjYKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlVzYWdlOiAlcyBbb3B0aW9uXVxuIgorbXNnc3RyICLnlKjms5U6ICVzIFsgLW4gXSBkZXZpY2VcbiIKKworIzogc3lzLXV0aWxzL2xzY3B1LmM6NjY5Cittc2dpZCAiIgorIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICB1c2FnZSBpbmZvcm1hdGlvblxuIgorIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKyIgIC1zLCAtLXN5c3Jvb3QgIHVzZSB0aGUgZGlyZWN0b3J5IGFzIGEgbmV3IHN5c3RlbSByb290LlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9sc2NwdS5jOjcxOAorIywgYy1mb3JtYXQKK21zZ2lkICJlcnJvcjogY2hhbmdlIHdvcmtpbmcgZGlyZWN0b3J5IHRvICVzLiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc3Cittc2dpZCAidXNhZ2U6IHJkZXYgWyAtcnYgXSBbIC1vIE9GRlNFVCBdIFsgSU1BR0UgWyBWQUxVRSBbIE9GRlNFVCBdIF0gXSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc4Cittc2dpZCAiIgorIiAgcmRldiAvZGV2L2ZkMCAgKG9yIHJkZXYgL2xpbnV4LCBldGMuKSBkaXNwbGF5cyB0aGUgY3VycmVudCBST09UIGRldmljZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjc5Cittc2dpZCAiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHNldHMgUk9PVCB0byAvZGV2L2hkYTIiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzo4MAorbXNnaWQgIiAgcmRldiAtUiAvZGV2L2ZkMCAxICAgICAgICAgICAgICBzZXQgdGhlIFJPT1RGTEFHUyAocmVhZG9ubHkgc3RhdHVzKSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjgxCittc2dpZCAiICByZGV2IC1yIC9kZXYvZmQwIDYyNyAgICAgICAgICAgIHNldCB0aGUgUkFNRElTSyBzaXplIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODIKK21zZ2lkICIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBib290dXAgVklERU9NT0RFIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODMKK21zZ2lkICIgIHJkZXYgLW8gTiAuLi4gICAgICAgICAgICAgICAgICAgdXNlIHRoZSBieXRlIG9mZnNldCBOIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODQKK21zZ2lkICIgIHJvb3RmbGFncyAuLi4gICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1SIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODUKK21zZ2lkICIgIHJhbXNpemUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1yIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODYKK21zZ2lkICIgIHZpZG1vZGUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC12IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZGV2LmM6ODcKK21zZ2lkICIiCisiTm90ZTogdmlkZW8gbW9kZXMgYXJlOiAtMz1Bc2ssIC0yPUV4dGVuZGVkLCAtMT1Ob3JtYWxWZ2EsIDE9a2V5MSwgMj1rZXkyLC4uLiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmRldi5jOjg4Cittc2dpZCAiICAgICAgdXNlIC1SIDEgdG8gbW91bnQgcm9vdCByZWFkb25seSwgLVIgMCBmb3IgcmVhZC93cml0ZS4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JkZXYuYzoyNDUKK21zZ2lkICJtaXNzaW5nIGNvbW1hIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjcyIHRleHQtdXRpbHMvbW9yZS5jOjc5OAorIywgYy1mb3JtYXQKK21zZ2lkICJvdXQgb2YgbWVtb3J5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJXM6IFVzYWdlOiBcIiVzIFtvcHRpb25zXVxuIgorIlx0IC1tIDxtYXBmaWxlPiAgKGRlZmF1bHRzOiBcIiVzXCIgYW5kXG4iCisiXHRcdFx0XHQgIFwiJXNcIilcbiIKKyJcdCAtcCA8cHJvLWZpbGU+IChkZWZhdWx0OiBcIiVzXCIpXG4iCisiXHQgLU0gPG11bHQ+ICAgICBzZXQgdGhlIHByb2ZpbGluZyBtdWx0aXBsaWVyIHRvIDxtdWx0PlxuIgorIlx0IC1pICAgICAgICAgICAgcHJpbnQgb25seSBpbmZvIGFib3V0IHRoZSBzYW1wbGluZyBzdGVwXG4iCisiXHQgLXYgICAgICAgICAgICBwcmludCB2ZXJib3NlIGRhdGFcbiIKKyJcdCAtYSAgICAgICAgICAgIHByaW50IGFsbCBzeW1ib2xzLCBldmVuIGlmIGNvdW50IGlzIDBcbiIKKyJcdCAtYiAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgaGlzdG9ncmFtLWJpbiBjb3VudHNcbiIKKyJcdCAtcyAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgY291bnRlcnMgd2l0aGluIGZ1bmN0aW9uc1xuIgorIlx0IC1yICAgICAgICAgICAgcmVzZXQgYWxsIHRoZSBjb3VudGVycyAocm9vdCBvbmx5KVxuIgorIlx0IC1uICAgICAgICAgICAgZGlzYWJsZSBieXRlIG9yZGVyIGF1dG8tZGV0ZWN0aW9uXG4iCisiXHQgLVYgICAgICAgICAgICBwcmludCB2ZXJzaW9uIGFuZCBleGl0XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MjI3CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWRwcm9maWxlOiBlcnJvciB3cml0aW5nICVzOiAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJBc3N1bWluZyByZXZlcnNlZCBieXRlIG9yZGVyLiBVc2UgLW4gdG8gZm9yY2UgbmF0aXZlIGJ5dGUgb3JkZXIuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6Mjg0CisjLCBjLWZvcm1hdAorbXNnaWQgIlNhbXBsaW5nX3N0ZXA6ICVpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzA1IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMoJWkpOiB3cm9uZyBtYXAgbGluZVxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZWFkcHJvZmlsZS5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgZmluZCBcIl9zdGV4dFwiIGluICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlYWRwcm9maWxlLmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBwcm9maWxlIGFkZHJlc3Mgb3V0IG9mIHJhbmdlLiBXcm9uZyBtYXAgZmlsZT9cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVhZHByb2ZpbGUuYzo0MTIKK21zZ2lkICJ0b3RhbCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIlVzYWdlOlxuIgorIiByZW5pY2UgWy1uXSBwcmlvcml0eSBbLXB8LS1waWRdIHBpZCAgWy4uLiBwaWRdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtZ3wtLXBncnAgcGdycCBbLi4uIHBncnBdXG4iCisiIHJlbmljZSBbLW5dIHByaW9yaXR5ICAtdXwtLXVzZXIgdXNlciBbLi4uIHVzZXJdXG4iCisiIHJlbmljZSAtaCB8IC0taGVscFxuIgorIiByZW5pY2UgLXYgfCAtLXZlcnNpb25cbiIKKyJcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlIGZyb20gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcmVuaWNlLmM6MTI2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuaWNlOiAlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1MiBzeXMtdXRpbHMvcmVuaWNlLmM6MTY0Cittc2dpZCAiZ2V0cHJpb3JpdHkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3JlbmljZS5jOjE1NworbXNnaWQgInNldHByaW9yaXR5IgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9yZW5pY2UuYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQ6IG9sZCBwcmlvcml0eSAlZCwgbmV3IHByaW9yaXR5ICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo4MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisidXNhZ2U6ICVzIFtvcHRpb25zXVxuIgorIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorIiAgICAtbCB8IC0tbG9jYWwgICAgICAgICAgICAgIFJUQyB1c2VzIGxvY2FsIHRpbWV6b25lXG4iCisiICAgIC1tIHwgLS1tb2RlICAgICAgICAgICAgICAgc3RhbmRieXxtZW18Li4uIHNsZWVwIG1vZGVcbiIKKyIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisiICAgIC10IHwgLS10aW1lIDx0aW1lX3Q+ICAgICAgdGltZSB0byB3YWtlXG4iCisiICAgIC11IHwgLS11dGMgICAgICAgICAgICAgICAgUlRDIHVzZXMgVVRDXG4iCisiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorIiAgICAtViB8IC0tdmVyc2lvbiAgICAgICAgICAgIHNob3cgdmVyc2lvblxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MTQyCittc2dpZCAicmVhZCBydGMgdGltZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjE0NworbXNnaWQgInJlYWQgc3lzdGVtIHRpbWUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoxNjUKK21zZ2lkICJjb252ZXJ0IHJ0YyB0aW1lIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6MjI0Cittc2dpZCAic2V0IHJ0YyBhbGFybSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjIyOAorbXNnaWQgImVuYWJsZSBydGMgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzoyMzIKK21zZ2lkICJzZXQgcnRjIHdha2UgYWxhcm0iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVucmVjb2duaXplZCBzdXNwZW5kIHN0YXRlICclcydcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM1NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBpbnRlcnZhbCAlcyBzZWNvbmRzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozNjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGlsbGVnYWwgdGltZV90IHZhbHVlICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzozODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHZlcnNpb24gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjM5OAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDAzCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIFVUQyB0aW1lLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzaW5nIGxvY2FsIHRpbWUuXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IG11c3QgcHJvdmlkZSB3YWtlIHRpbWVcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQxNworbXNnaWQgIm1hbGxvYygpIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQyOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGVuYWJsZWQgZm9yIHdha2V1cCBldmVudHNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ0OQorIywgYy1mb3JtYXQKK21zZ2lkICJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHRpbWUgZG9lc24ndCBnbyBiYWNrd2FyZCB0byAlc1xuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9ydGN3YWtlLmM6NDY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiB3YWtldXAgZnJvbSBcIiVzXCIgdXNpbmcgJXMgYXQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjQ4NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogdW5hYmxlIHRvIGV4ZWN1dGUgJXM6ICVzXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3J0Y3dha2UuYzo0OTYKK21zZ2lkICJydGMgcmVhZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvcnRjd2FrZS5jOjUwNQorbXNnaWQgImRpc2FibGUgcnRjIGFsYXJtIGludGVycnVwdCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGluZyBvbiAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVXNhZ2U6ICVzJXMgW29wdGlvbnNdIFtwcm9ncmFtIFtwcm9ncmFtIGFyZ3VtZW50c11dXG4iCisiXG4iCisiT3B0aW9uczpcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjExNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBkaXNwbGF5cyB0aGlzIGhlbHAgdGV4dFxuIgorIiAtdiwgLS12ZXJib3NlICAgICAgICAgICAgc2F5cyB3aGF0IG9wdGlvbnMgYXJlIGJlaW5nIHN3aXRjaGVkIG9uXG4iCisiIC1SLCAtLWFkZHItbm8tcmFuZG9taXplICBkaXNhYmxlcyByYW5kb21pemF0aW9uIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3MgIgorInNwYWNlXG4iCisiIC1GLCAtLWZkcGljLWZ1bmNwdHJzICAgICBtYWtlcyBmdW5jdGlvbiBwb2ludGVycyBwb2ludCB0byBkZXNjcmlwdG9yc1xuIgorIiAtWiwgLS1tbWFwLXBhZ2UtemVybyAgICAgdHVybnMgb24gTU1BUF9QQUdFX1pFUk9cbiIKKyIgLUwsIC0tYWRkci1jb21wYXQtbGF5b3V0IGNoYW5nZXMgdGhlIHdheSB2aXJ0dWFsIG1lbW9yeSBpcyBhbGxvY2F0ZWRcbiIKKyIgLVgsIC0tcmVhZC1pbXBsaWVzLWV4ZWMgIHR1cm5zIG9uIFJFQURfSU1QTElFU19FWEVDXG4iCisiIC1CLCAtLTMyYml0ICAgICAgICAgICAgICB0dXJucyBvbiBBRERSX0xJTUlUXzMyQklUXG4iCisiIC1JLCAtLXNob3J0LWlub2RlICAgICAgICB0dXJucyBvbiBTSE9SVF9JTk9ERVxuIgorIiAtUywgLS13aG9sZS1zZWNvbmRzICAgICAgdHVybnMgb24gV0hPTEVfU0VDT05EU1xuIgorIiAtVCwgLS1zdGlja3ktdGltZW91dHMgICAgdHVybnMgb24gU1RJQ0tZX1RJTUVPVVRTXG4iCisiIC0zLCAtLTNnYiAgICAgICAgICAgICAgICBsaW1pdHMgdGhlIHVzZWQgYWRkcmVzcyBzcGFjZSB0byBhIG1heGltdW0gb2YgMyAiCisiR0JcbiIKKyIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGlnbm9yZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkpXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBzZXRhcmNoKDgpLlxuIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRhcmNoLmM6MTQzCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyIlczogJXNcbiIKKyJUcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyMTUgc3lzLXV0aWxzL3NldGFyY2guYzoyMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IFVucmVjb2duaXplZCBhcmNoaXRlY3R1cmUiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3NldGFyY2guYzoyNDkgc3lzLXV0aWxzL3NldGFyY2guYzoyNTYKK21zZ2lkICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvc2V0YXJjaC5jOjI2NSBzeXMtdXRpbHMvc2V0YXJjaC5jOjMxOAorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gc2V0IHBlcnNvbmFsaXR5IHRvICVzIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy9zZXRzaWQuYzoyNgorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6NzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlVzYWdlOiAlcyA8ZGV2aWNlPiBbIC1pIDxJUlE+IHwgLXQgPFRJTUU+IHwgLWMgPENIQVJTPiB8IC13IDxXQUlUPiB8IFxuIgorIiAgICAgICAgICAtYSBbb258b2ZmXSB8IC1vIFtvbnxvZmZdIHwgLUMgW29ufG9mZl0gfCAtcSBbb258b2ZmXSB8IC1zIHwgXG4iCisiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6OTEKK21zZ2lkICJtYWxsb2MgZXJyb3IiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjEwMworIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIHZhbHVlXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI0MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHN0YXR1cyBpcyAlZCIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgYnVzeSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgcmVhZHkiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICIsIG91dCBvZiBwYXBlciIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgb24tbGluZSIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdHVuZWxwLmM6MjY4CisjLCBjLWZvcm1hdAorbXNnaWQgIiwgZXJyb3IiCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI4NQorbXNnaWQgIkxQR0VUSVJRIGVycm9yIgorbXNnc3RyICIiCisKKyM6IHN5cy11dGlscy90dW5lbHAuYzoyOTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgdXNpbmcgSVJRICVkXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3R1bmVscC5jOjI5MworIywgYy1mb3JtYXQKK21zZ2lkICIlcyB1c2luZyBwb2xsaW5nXG4iCittc2dzdHIgIiIKKworIzogc3lzLXV0aWxzL3Vuc2hhcmUuYzo1NworIywgYy1mb3JtYXQKK21zZ2lkICJVc2FnZTogJXMgW29wdGlvbnNdIDxwcm9ncmFtPiBbYXJncy4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjYwCittc2dpZCAiIgorIlJ1biBwcm9ncmFtIHdpdGggc29tZSBuYW1lc3BhY2VzIHVuc2hhcmVkIGZyb20gcGFyZW50XG4iCisiXG4iCisiICAtaCwgLS1oZWxwICAgICAgICB1c2FnZSBpbmZvcm1hdGlvbiAodGhpcylcbiIKKyIgIC1tLCAtLW1vdW50ICAgICAgIHVuc2hhcmUgbW91bnRzIG5hbWVzcGFjZVxuIgorIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisiICAtaSwgLS1pcGMgICAgICAgICB1bnNoYXJlIFN5c3RlbSBWIElQQyBuYW1lc3BhY2VcbiIKKyIgIC1uLCAtLW5ldCAgICAgICAgIHVuc2hhcmUgbmV0d29yayBuYW1lc3BhY2VcbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjY3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJcbiIKKyJGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdW5zaGFyZSgxKS5cbiIKK21zZ3N0ciAiIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExNAorIywgZnV6enkKK21zZ2lkICJ1bnNoYXJlIGZhaWxlZCIKK21zZ3N0ciAi5p+l5om+5aSx6LSlIgorCisjOiBzeXMtdXRpbHMvdW5zaGFyZS5jOjExOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZXhlYyAlcyBmYWlsZWQiCittc2dzdHIgIiVzIOWksei0pS5cbiIKKworIzogdGV4dC11dGlscy9jb2wuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2wuYzo1NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1MAorIywgYy1mb3JtYXQKK21zZ2lkICJjb2w6IHdyaXRlIGVycm9yLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sLmM6NTU3CisjLCBjLWZvcm1hdAorbXNnaWQgImNvbDogd2FybmluZzogY2FuJ3QgYmFjayB1cCAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgInBhc3QgZmlyc3QgbGluZSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbC5jOjU1OAorbXNnaWQgIi0tIGxpbmUgYWxyZWFkeSBmbHVzaGVkIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvY29sY3J0LmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFsgLSBdIFsgLTIgXSBbIGZpbGUgLi4uIF1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2NvbHVtbi5jOjI5NworbXNnaWQgImxpbmUgdG9vIGxvbmciCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9jb2x1bW4uYzozNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IGNvbHVtbiBbLXR4XSBbLWMgY29sdW1uc10gW2ZpbGUgLi4uXVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL2hleHN5bnRheC5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJhZCBza2lwIHZhbHVlLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvaGV4c3ludGF4LmM6MTMxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmbXRdIFstZiBmbXRfZmlsZV0gWy1uIGxlbmd0aF0gWy1zIHNraXBdIFtmaWxlIC4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSBuYW1lMSBuYW1lMiAuLi5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyOTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGluaXRpYWxpemUgbGluZSBidWZmZXJcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo0ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHVua25vd24gb3B0aW9uIFwiLSVjXCJcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo1MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIioqKiAlczogZGlyZWN0b3J5ICoqKlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjU2MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiKioqKioqKiogJXM6IE5vdCBhIHRleHQgZmlsZSAqKioqKioqKlxuIgorIlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjY2NAorIywgYy1mb3JtYXQKK21zZ2lkICJbVXNlIHEgb3IgUSB0byBxdWl0XSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1Nb3JlLS0iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6NzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIihOZXh0IGZpbGU6ICVzKSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiW1ByZXNzIHNwYWNlIHRvIGNvbnRpbnVlLCAncScgdG8gcXVpdC5dIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uYmFjayAlZCBwYWdlcyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxMjA4Cittc2dpZCAiLi4uYmFjayAxIHBhZ2UiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI1MQorbXNnaWQgIi4uLnNraXBwaW5nIG9uZSBsaW5lIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEyNTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiLi4uc2tpcHBpbmcgJWQgbGluZXMiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTI5MAorbXNnaWQgIiIKKyJcbiIKKyIqKipCYWNrKioqXG4iCisiXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTMyOAorbXNnaWQgIiIKKyJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgRGVmYXVsdHMgaW4gIgorImJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjEzMzUKK21zZ2lkICIiCisiPHNwYWNlPiAgICAgICAgICAgICAgICAgRGlzcGxheSBuZXh0IGsgbGluZXMgb2YgdGV4dCBbY3VycmVudCBzY3JlZW4gc2l6ZV1cbiIKKyJ6ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXSpcbiIKKyI8cmV0dXJuPiAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFsxXSpcbiIKKyJkIG9yIGN0cmwtRCAgICAgICAgICAgICBTY3JvbGwgayBsaW5lcyBbY3VycmVudCBzY3JvbGwgc2l6ZSwgaW5pdGlhbGx5IDExXSpcbiIKKyJxIG9yIFEgb3IgPGludGVycnVwdD4gICBFeGl0IGZyb20gbW9yZVxuIgorInMgICAgICAgICAgICAgICAgICAgICAgIFNraXAgZm9yd2FyZCBrIGxpbmVzIG9mIHRleHQgWzFdXG4iCisiZiAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorImIgb3IgY3RybC1CICAgICAgICAgICAgIFNraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0IFsxXVxuIgorIicgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkXG4iCisiPSAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBjdXJyZW50IGxpbmUgbnVtYmVyXG4iCisiLzxyZWd1bGFyIGV4cHJlc3Npb24+ICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gWzFdXG4iCisibiAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiBsYXN0IHIuZSBbMV1cbiIKKyIhPGNtZD4gb3IgOiE8Y21kPiAgICAgICBFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGxcbiIKKyJ2ICAgICAgICAgICAgICAgICAgICAgICBTdGFydCB1cCAvdXNyL2Jpbi92aSBhdCBjdXJyZW50IGxpbmVcbiIKKyJjdHJsLUwgICAgICAgICAgICAgICAgICBSZWRyYXcgc2NyZWVuXG4iCisiOm4gICAgICAgICAgICAgICAgICAgICAgR28gdG8ga3RoIG5leHQgZmlsZSBbMV1cbiIKKyI6cCAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggcHJldmlvdXMgZmlsZSBbMV1cbiIKKyI6ZiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlclxuIgorIi4gICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCBwcmV2aW91cyBjb21tYW5kXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQwNCB0ZXh0LXV0aWxzL21vcmUuYzoxNDA5CisjLCBjLWZvcm1hdAorbXNnaWQgIltQcmVzcyAnaCcgZm9yIGluc3RydWN0aW9ucy5dIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE0NDMKKyMsIGMtZm9ybWF0Cittc2dpZCAiXCIlc1wiIGxpbmUgJWQiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTQ0NQorIywgYy1mb3JtYXQKK21zZ2lkICJbTm90IGEgZmlsZV0gbGluZSAlZCIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNTI5Cittc2dpZCAiICBPdmVyZmxvd1xuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE1NzYKK21zZ2lkICIuLi5za2lwcGluZ1xuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MDUKK21zZ2lkICJSZWd1bGFyIGV4cHJlc3Npb24gYm90Y2giCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9tb3JlLmM6MTYxMworbXNnaWQgIiIKKyJcbiIKKyJQYXR0ZXJuIG5vdCBmb3VuZFxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE2MTYgdGV4dC11dGlscy9wZy5jOjExMjcgdGV4dC11dGlscy9wZy5jOjEyNzgKK21zZ2lkICJQYXR0ZXJuIG5vdCBmb3VuZCIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNjc3Cittc2dpZCAiY2FuJ3QgZm9ya1xuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MTYKK21zZ2lkICIiCisiXG4iCisiLi4uU2tpcHBpbmcgIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvbW9yZS5jOjE3MjAKK21zZ2lkICIuLi5Ta2lwcGluZyB0byBmaWxlICIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoxNzIyCittc2dpZCAiLi4uU2tpcHBpbmcgYmFjayB0byBmaWxlICIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDAwCittc2dpZCAiTGluZSB0b28gbG9uZyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL21vcmUuYzoyMDQzCittc2dpZCAiTm8gcHJldmlvdXMgY29tbWFuZCB0byBzdWJzdGl0dXRlIGZvciIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL29kc3ludGF4LmM6MTMwCisjLCBjLWZvcm1hdAorbXNnaWQgIm9kOiBvZCgxKSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciBoZXhkdW1wKDEpLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAib2Q6IGhleGR1bXAoMSkgY29tcGF0aWJpbGl0eSBkb2Vzbid0IHN1cHBvcnQgdGhlIC0lYyBvcHRpb24lc1xuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvb2RzeW50YXguYzoxMzQKK21zZ2lkICI7IHNlZSBzdHJpbmdzKDEpLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogY2FuJ3QgcmVhZCAlcy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogbGluZSB0b28gbG9uZy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BhcnNlLmM6NDAxCisjLCBjLWZvcm1hdAorbXNnaWQgImhleGR1bXA6IGJ5dGUgY291bnQgd2l0aCBtdWx0aXBsZSBjb252ZXJzaW9uIGNoYXJhY3RlcnMuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ4MworIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgYnl0ZSBjb3VudCBmb3IgY29udmVyc2lvbiBjaGFyYWN0ZXIgJXMuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjQ5MAorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiAlJXMgcmVxdWlyZXMgYSBwcmVjaXNpb24gb3IgYSBieXRlIGNvdW50LlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGFyc2UuYzo0OTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGV4ZHVtcDogYmFkIGZvcm1hdCB7JXN9XG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wYXJzZS5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICJoZXhkdW1wOiBiYWQgY29udmVyc2lvbiBjaGFyYWN0ZXIgJSUlcy5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTQ1Cittc2dpZCAiIgorIkFsbCByaWdodHMgcmVzZXJ2ZWQuXG4iCisiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIgorIiAgaCAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBzY3JlZW5cbiIKKyIgIHEgb3IgUSAgICAgICAgICAgICAgICAgIHF1aXQgcHJvZ3JhbVxuIgorIiAgPG5ld2xpbmU+ICAgICAgICAgICAgICAgbmV4dCBwYWdlXG4iCisiICBmICAgICAgICAgICAgICAgICAgICAgICBza2lwIGEgcGFnZSBmb3J3YXJkXG4iCisiICBkIG9yIF5EICAgICAgICAgICAgICAgICBuZXh0IGhhbGZwYWdlXG4iCisiICBsICAgICAgICAgICAgICAgICAgICAgICBuZXh0IGxpbmVcbiIKKyIgICQgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgcGFnZVxuIgorIiAgL3JlZ2V4LyAgICAgICAgICAgICAgICAgc2VhcmNoIGZvcndhcmQgZm9yIHJlZ2V4XG4iCisiICA/cmVnZXg/IG9yIF5yZWdleF4gICAgICBzZWFyY2ggYmFja3dhcmQgZm9yIHJlZ2V4XG4iCisiICAuIG9yIF5MICAgICAgICAgICAgICAgICByZWRyYXcgc2NyZWVuXG4iCisiICB3IG9yIHogICAgICAgICAgICAgICAgICBzZXQgcGFnZSBzaXplIGFuZCBnbyB0byBuZXh0IHBhZ2VcbiIKKyIgIHMgZmlsZW5hbWUgICAgICAgICAgICAgIHNhdmUgY3VycmVudCBmaWxlIHRvIGZpbGVuYW1lXG4iCisiICAhY29tbWFuZCAgICAgICAgICAgICAgICBzaGVsbCBlc2NhcGVcbiIKKyIgIHAgICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIHByZXZpb3VzIGZpbGVcbiIKKyIgIG4gICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIG5leHQgZmlsZVxuIgorIlxuIgorIk1hbnkgY29tbWFuZHMgYWNjZXB0IHByZWNlZGluZyBudW1iZXJzLCBmb3IgZXhhbXBsZTpcbiIKKyIrMTxuZXdsaW5lPiAobmV4dCBwYWdlKTsgLTE8bmV3bGluZT4gKHByZXZpb3VzIHBhZ2UpOyAxPG5ld2xpbmU+IChmaXJzdCAiCisicGFnZSkuXG4iCisiXG4iCisiU2VlIHBnKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIgorIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MjIzCittc2dpZCAiT3V0IG9mIG1lbW9yeVxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoyMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSBbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjI0NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IC0tICVzXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICIlczogaWxsZWdhbCBvcHRpb24gLS0gJXNcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MzcwCittc2dpZCAiLi4uc2tpcHBpbmcgZm9yd2FyZFxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozNzIKK21zZ2lkICIuLi5za2lwcGluZyBiYWNrd2FyZFxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzozOTQKK21zZ2lkICJObyBuZXh0IGZpbGUiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjM5OAorbXNnaWQgIk5vIHByZXZpb3VzIGZpbGUiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6OTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBVbmV4cGVjdGVkIEVPRiBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjk0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5rbm93biBlcnJvciBpbiAlcyBmaWxlXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjEwMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IENhbm5vdCBjcmVhdGUgdGVtcGZpbGVcbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTA0NCB0ZXh0LXV0aWxzL3BnLmM6MTIxOSB0ZXh0LXV0aWxzL3BnLmM6MTI0NgorbXNnaWQgIlJFIGVycm9yOiAiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjEyMDEKK21zZ2lkICIoRU9GKSIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTIyNyB0ZXh0LXV0aWxzL3BnLmM6MTI1NAorbXNnaWQgIk5vIHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTMxMAorbXNnaWQgIkNhbm5vdCBvcGVuICIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3BnLmM6MTM1OAorbXNnaWQgInNhdmVkIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDY1Cittc2dpZCAiOiAhY29tbWFuZCBub3QgYWxsb3dlZCBpbiByZmxhZyBtb2RlLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvcGcuYzoxNDk3Cittc2dpZCAiZm9yaygpIGZhaWxlZCwgdHJ5IGFnYWluIGxhdGVyXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9wZy5jOjE3MDUKK21zZ2lkICIoTmV4dCBmaWxlOiAiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9yZXYuYzoxMTMKK21zZ2lkICJ1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyc3BhY2UiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy9yZXYuYzoxNDMKKyMsIGMtZm9ybWF0Cittc2dpZCAidXNhZ2U6IHJldiBbZmlsZSAuLi5dXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjU4IHRleHQtdXRpbHMvdGFpbGYuYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjk2IHRleHQtdXRpbHMvdGFpbGYuYzoyMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgXCIlc1wiIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5jb21wbGV0ZSB3cml0ZSB0byBcIiVzXCIgKHdyaXR0ZW4gJXpkLCBleHBlY3RlZCAlemQpXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy90YWlsZi5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoIChsaW1pdCBvZiBpbm90aWZ5IHdhdGNoZXMgd2FzIHJlYWNoZWQpLiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgYWRkIGlub3RpZnkgd2F0Y2guIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdGFpbGYuYzoxNjAKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW5ub3QgcmVhZCBpbm90aWZ5IGV2ZW50cyIKK21zZ3N0ciAiJXM6IOS4jeiDveaJk+W8gCAlc1xuIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MTk5IHRleHQtdXRpbHMvdGFpbGYuYzoyMDMKK21zZ2lkICJpbnZhbGlkIG51bWJlciBvZiBsaW5lcyIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3RhaWxmLmM6MjEwCittc2dpZCAidXNhZ2U6IHRhaWxmIFstbiBOIHwgLU5dIGxvZ2ZpbGUiCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy91bC5jOjE0MQorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2FnZTogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZmlsZS4uLlxuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdWwuYzoxNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdWwuYzoyNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBlc2NhcGUgc2VxdWVuY2UgaW4gaW5wdXQ6ICVvLCAlb1xuIgorbXNnc3RyICIiCisKKyM6IHRleHQtdXRpbHMvdWwuYzo0MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlci5cbiIKK21zZ3N0ciAiIgorCisjOiB0ZXh0LXV0aWxzL3VsLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGxpbmUgdG9vIGxvbmcuXG4iCittc2dzdHIgIiIKKworIzogdGV4dC11dGlscy91bC5jOjU5OQorIywgYy1mb3JtYXQKK21zZ2lkICJPdXQgb2YgbWVtb3J5IHdoZW4gZ3Jvd2luZyBidWZmZXIuXG4iCittc2dzdHIgIiIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvTWFrZWZpbGUuYW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zY2hlZHV0aWxzL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NDM5ZjIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zY2hlZHV0aWxzL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMjAgQEAKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorCitpZiBCVUlMRF9TQ0hFRFVUSUxTCisKK3VzcmJpbl9leGVjX1BST0dSQU1TID0gY2hydAorZGlzdF9tYW5fTUFOUyA9IGNocnQuMQorCitpZiBIQVZFX0lPUFJJT19HRVQKK2lmIEhBVkVfSU9QUklPX1NFVAordXNyYmluX2V4ZWNfUFJPR1JBTVMgKz0gaW9uaWNlCitkaXN0X21hbl9NQU5TICs9IGlvbmljZS4xCitlbmRpZgorZW5kaWYKKworaWYgSEFWRV9TQ0hFRF9HRVRBRkZJTklUWQordXNyYmluX2V4ZWNfUFJPR1JBTVMgKz0gdGFza3NldAorZGlzdF9tYW5fTUFOUyArPSB0YXNrc2V0LjEKK2VuZGlmCisKK2VuZGlmCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zY2hlZHV0aWxzL01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2NoZWR1dGlscy9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTc2MTM0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2NoZWR1dGlscy9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDcwMyBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoYW1fX2Rpc3Rfbm9pbnN0X0RBVEFfRElTVCkgJChkaXN0X21hbl9NQU5TKSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorQEJVSUxEX1NDSEVEVVRJTFNfVFJVRUB1c3JiaW5fZXhlY19QUk9HUkFNUyA9IGNocnQkKEVYRUVYVCkgXAorQEJVSUxEX1NDSEVEVVRJTFNfVFJVRUAJJChhbV9fRVhFRVhUXzEpICQoYW1fX0VYRUVYVF8yKQorQEJVSUxEX1NDSEVEVVRJTFNfVFJVRUBASEFWRV9JT1BSSU9fR0VUX1RSVUVAQEhBVkVfSU9QUklPX1NFVF9UUlVFQGFtX19hcHBlbmRfMSA9IGlvbmljZQorQEJVSUxEX1NDSEVEVVRJTFNfVFJVRUBASEFWRV9JT1BSSU9fR0VUX1RSVUVAQEhBVkVfSU9QUklPX1NFVF9UUlVFQGFtX19hcHBlbmRfMiA9IGlvbmljZS4xCitAQlVJTERfU0NIRURVVElMU19UUlVFQEBIQVZFX1NDSEVEX0dFVEFGRklOSVRZX1RSVUVAYW1fX2FwcGVuZF8zID0gdGFza3NldAorQEJVSUxEX1NDSEVEVVRJTFNfVFJVRUBASEFWRV9TQ0hFRF9HRVRBRkZJTklUWV9UUlVFQGFtX19hcHBlbmRfNCA9IHRhc2tzZXQuMQorc3ViZGlyID0gc2NoZWR1dGlscworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQEJVSUxEX1NDSEVEVVRJTFNfVFJVRUBASEFWRV9JT1BSSU9fR0VUX1RSVUVAQEhBVkVfSU9QUklPX1NFVF9UUlVFQGFtX19FWEVFWFRfMSA9IGlvbmljZSQoRVhFRVhUKQorQEJVSUxEX1NDSEVEVVRJTFNfVFJVRUBASEFWRV9TQ0hFRF9HRVRBRkZJTklUWV9UUlVFQGFtX19FWEVFWFRfMiA9IHRhc2tzZXQkKEVYRUVYVCkKK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJChtYW4xZGlyKSIKK1BST0dSQU1TID0gJCh1c3JiaW5fZXhlY19QUk9HUkFNUykKK2NocnRfU09VUkNFUyA9IGNocnQuYworY2hydF9PQkpFQ1RTID0gY2hydC4kKE9CSkVYVCkKK2NocnRfTERBREQgPSAkKExEQUREKQorQU1fVl9sdCA9ICQoYW1fX3ZfbHRfJChWKSkKK2FtX192X2x0XyA9ICQoYW1fX3ZfbHRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9sdF8wID0gLS1zaWxlbnQKK2lvbmljZV9TT1VSQ0VTID0gaW9uaWNlLmMKK2lvbmljZV9PQkpFQ1RTID0gaW9uaWNlLiQoT0JKRVhUKQoraW9uaWNlX0xEQUREID0gJChMREFERCkKK3Rhc2tzZXRfU09VUkNFUyA9IHRhc2tzZXQuYwordGFza3NldF9PQkpFQ1RTID0gdGFza3NldC4kKE9CSkVYVCkKK3Rhc2tzZXRfTERBREQgPSAkKExEQUREKQorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSBjaHJ0LmMgaW9uaWNlLmMgdGFza3NldC5jCitESVNUX1NPVVJDRVMgPSBjaHJ0LmMgaW9uaWNlLmMgdGFza3NldC5jCithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCittYW4xZGlyID0gJChtYW5kaXIpL21hbjEKK05ST0ZGID0gbnJvZmYKK01BTlMgPSAkKGRpc3RfbWFuX01BTlMpCithbV9fZGlzdF9ub2luc3RfREFUQV9ESVNUID0gY2hydC4xIGlvbmljZS4xIHRhc2tzZXQuMQorREFUQSA9ICQoZGlzdF9ub2luc3RfREFUQSkKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitAQlVJTERfU0NIRURVVElMU19UUlVFQGRpc3RfbWFuX01BTlMgPSBjaHJ0LjEgJChhbV9fYXBwZW5kXzIpIFwKK0BCVUlMRF9TQ0hFRFVUSUxTX1RSVUVACSQoYW1fX2FwcGVuZF80KQorYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIHNjaGVkdXRpbHMvTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduIHNjaGVkdXRpbHMvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgoraW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TOiAkKHVzcmJpbl9leGVjX1BST0dSQU1TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQodXNyYmluX2V4ZWNkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiCisJQGxpc3Q9JyQodXNyYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCh1c3JiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikkJGRpciciOyBcCisJICAgICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgfSBcCisJOyBkb25lCisKK3VuaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQodXNyYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCh1c3JiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKwkgIHNlZCAtZSAnaDtzLF4uKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pJyBcCisJICAgICAgLWUgJ3MvJCQvJChFWEVFWFQpLycgYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworCitjbGVhbi11c3JiaW5fZXhlY1BST0dSQU1TOgorCUBsaXN0PSckKHVzcmJpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAorY2hydCQoRVhFRVhUKTogJChjaHJ0X09CSkVDVFMpICQoY2hydF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBjaHJ0JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGNocnRfT0JKRUNUUykgJChjaHJ0X0xEQUREKSAkKExJQlMpCitpb25pY2UkKEVYRUVYVCk6ICQoaW9uaWNlX09CSkVDVFMpICQoaW9uaWNlX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGlvbmljZSQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChpb25pY2VfT0JKRUNUUykgJChpb25pY2VfTERBREQpICQoTElCUykKK3Rhc2tzZXQkKEVYRUVYVCk6ICQodGFza3NldF9PQkpFQ1RTKSAkKHRhc2tzZXRfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdGFza3NldCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJCh0YXNrc2V0X09CSkVDVFMpICQodGFza3NldF9MREFERCkgJChMSUJTKQorCittb3N0bHljbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLiQoT0JKRVhUKQorCitkaXN0Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi50YWIuYworCitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY2hydC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvaW9uaWNlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90YXNrc2V0LlBvQGFtX19xdW90ZUAKKworLmMubzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgJDwKKworLmMub2JqOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jIGAkKENZR1BBVEhfVykgJyQ8J2AKKworLmMubG86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChMVENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMVENPTVBJTEUpIC1jIC1vICRAICQ8CisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCitpbnN0YWxsLW1hbjE6ICQoZGlzdF9tYW5fTUFOUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKG1hbjFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW4xZGlyKSIKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCisJeyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjFbYS16XSokJC9wJzsgXAorCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgXAorCWRvbmUgfCBcCisJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnIHwgXAorCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAorCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJGJhc2UiID0gIiQkaW5zdCI7IHRoZW4gbGlzdD0iJCRsaXN0ICQkZmlsZSI7IGVsc2UgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuMWRpciknIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobWFuMWRpcikiIHx8IGV4aXQgJCQ/OyB9OyBcCisJZG9uZTsgfQorCit1bmluc3RhbGwtbWFuMToKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjFkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1geyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjFbYS16XSokJC9wJzsgXAorCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKwl0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW4xZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJICBjZCAiJChERVNURElSKSQobWFuMWRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxpc3QiOyB0aGVuIFwKKwkgIGxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgICAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsgXAorCSAgaWYgdGVzdCAtbiAiJCRsaXN0IiAmJiBcCisJICAgIGdyZXAgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0ID4vZGV2L251bGw7IHRoZW4gXAorCSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxgbWlzc2luZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAorCSAgICBncmVwIC1sICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCB8IHNlZCAncy9eLyAgICAgICAgIC8nID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdG8gZml4IHRoZW0sIGluc3RhbGwgaGVscDJtYW4sIHJlbW92ZSBhbmQgcmVnZW5lcmF0ZSB0aGUgbWFuIHBhZ2VzOyIgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWluZXItY2xlYW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAorCSAgICBleGl0IDE7IFwKKwkgIGVsc2UgOjsgZmk7IFwKKwllbHNlIDo7IGZpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykgJChNQU5TKSAkKERBVEEpCitpbnN0YWxsZGlyczoKKwlmb3IgZGlyIGluICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJChtYW4xZGlyKSI7IGRvIFwKKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKKwlkb25lCitpbnN0YWxsOiBpbnN0YWxsLWFtCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tdXNyYmluX2V4ZWNQUk9HUkFNUyBcCisJbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbWFuCisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLXVzcmJpbl9leGVjUFJPR1JBTVMKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjEKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtYW0KKworcGRmLWFtOgorCitwczogcHMtYW0KKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUworCit1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMQorCisuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisKKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKwljbGVhbi1saWJ0b29sIGNsZWFuLXVzcmJpbl9leGVjUFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAorCWluc3RhbGwtbWFuMSBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIFwKKwlpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TIFwKKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1tYW4gdW5pbnN0YWxsLW1hbjEgXAorCXVuaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TCisKKworJCh1bF9saWJibGtpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCiskKHVsX2xpYnV1aWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJ1dWlkX2J1aWxkZGlyKQorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zY2hlZHV0aWxzL2NocnQuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvY2hydC4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YzU4YjQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zY2hlZHV0aWxzL2NocnQuMQpAQCAtMCwwICsxLDEzNCBAQAorLlwiIGNocnQoMSkgbWFucGFnZQorLlwiCisuXCIgQ29weXJpZ2h0IChDKSAyMDA0IFJvYmVydCBMb3ZlCisuXCIKKy5cIiBUaGlzIGlzIGZyZWUgZG9jdW1lbnRhdGlvbjsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisuXCIgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKy5cIiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorLlwiIHRoZSBMaWNlbnNlLgorLlwiCisuXCIgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlJ3MgcmVmZXJlbmNlcyB0byAib2JqZWN0IGNvZGUiCisuXCIgYW5kICJleGVjdXRhYmxlcyIgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIHRoZSBvdXRwdXQgb2YgYW55CisuXCIgZG9jdW1lbnQgZm9ybWF0dGluZyBvciB0eXBlc2V0dGluZyBzeXN0ZW0sIGluY2x1ZGluZworLlwiIGludGVybWVkaWF0ZSBhbmQgcHJpbnRlZCBvdXRwdXQuCisuXCIKKy5cIiBUaGlzIG1hbnVhbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorLlwiIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisuXCIgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorLlwiIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisuXCIKKy5cIiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKy5cIiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtYW51YWw7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKKy5cIiBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMSwKKy5cIiBVU0EuCisuXCIKKy5cIiAyMDAyLTA1LTExIFJvYmVydCBMb3ZlIDxybWxAdGVjaDkubmV0PgorLlwiIAlJbml0aWFsIHZlcnNpb24KKy5cIgorLlRIIENIUlQgIjEiICJBcHIgMjAwMyIgInNjaGVkdXRpbHMiICJMaW51eCBVc2VyJ3MgTWFudWFsIgorLlNIIE5BTUUKK2NocnQgXC0gbWFuaXB1bGF0ZSByZWFsLXRpbWUgYXR0cmlidXRlcyBvZiBhIHByb2Nlc3MKKy5TSCBTWU5PUFNJUworLkIgY2hydAorLlJJIFsgb3B0aW9ucyBdXCAgcHJpbworLklSIGNvbW1hbmRcICBbIGFyZyBdLi4uCisuYnIKKy5CIGNocnQKKy5SSSBbIG9wdGlvbnMgXQorLkIgXC1wCisuUkkgWyBwcmlvIF1cICBwaWQKKy5TSCBERVNDUklQVElPTgorLlBQCisuQlIgY2hydCAoMSkKK3NldHMgb3IgcmV0cmlldmVzIHRoZSByZWFsLXRpbWUgc2NoZWR1bGluZyBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIFBJRCBvcgorcnVucyBDT01NQU5EIHdpdGggdGhlIGdpdmVuIGF0dHJpYnV0ZXMuICBCb3RoIHBvbGljeSAob25lIG9mCisuQlIgU0NIRURfT1RIRVIgLAorLkJSIFNDSEVEX0ZJRk8gLAorLkJSIFNDSEVEX1JSICwKKy5CUiBTQ0hFRF9CQVRDSCAsCitvcgorLkJSIFNDSEVEX0lETEUgKQorYW5kIHByaW9yaXR5IGNhbiBiZSBzZXQgYW5kIHJldHJpZXZlZC4KKy5QUAorVGhlCisuQlIgU0NIRURfQkFUQ0gKK3BvbGljeSBpcyBzdXBwb3J0ZWQgc2luY2UgTGludXggMi42LjE2LiBUaGUKKy5CUiBTQ0hFRF9JRExFCitwb2xpY3kgaXMgc3VwcG9ydGVkIHNpbmNlIExpbnV4IDIuNi4yMy4KKy5TSCBPUFRJT05TCisuVFAKKy5CIC1wLCAtLXBpZAorb3BlcmF0ZSBvbiBhbiBleGlzdGluZyBQSUQgYW5kIGRvIG5vdCBsYXVuY2ggYSBuZXcgdGFzaworLlRQCisuQiAtYiwgLS1iYXRjaAorc2V0IHNjaGVkdWxpbmcgcG9saWN5IHRvCisuQlIgU0NIRURfQkFUQ0gKKyhMaW51eCBzcGVjaWZpYykKKy5UUAorLkIgLWYsIC0tZmlmbworc2V0IHNjaGVkdWxpbmcgcG9saWN5IHRvCisuQlIgU0NIRURfRklGTworLlRQCisuQiAtaSwgLS1pZGxlCitzZXQgc2NoZWR1bG5nIHBvbGljeSB0bworLkJSIFNDSEVEX0lETEUKKyhMaW51eCBzcGVjaWZpYykKKy5UUAorLkIgLW0sIC0tbWF4CitzaG93IG1pbmltdW0gYW5kIG1heGltdW0gdmFsaWQgcHJpb3JpdGllcywgdGhlbiBleGl0CisuVFAKKy5CIC1vLCAtLW90aGVyCitzZXQgcG9saWN5IHNjaGVkdWxpbmcgcG9saWN5IHRvCisuQlIgU0NIRURfT1RIRVIKKy5UUAorLkIgLXIsIC0tcnIKK3NldCBzY2hlZHVsaW5nIHBvbGljeSB0bworLkJSIFNDSEVEX1JSCisodGhlIGRlZmF1bHQpCisuVFAKKy5CIC1oLCAtLWhlbHAKK2Rpc3BsYXkgdXNhZ2UgaW5mb3JtYXRpb24gYW5kIGV4aXQKKy5UUAorLkIgLXYsIC0tdmVyc2lvbgorb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKy5TSCBVU0FHRQorLlRQCitUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBydW4gYSBuZXcgY29tbWFuZDo6CitjaHJ0IHByaW8gY29tbWFuZCBbYXJndW1lbnRzXQorLlRQCitZb3UgY2FuIGFsc28gcmV0cmlldmUgdGhlIHJlYWwtdGltZSBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHRhc2s6CitjaHJ0IC1wIHBpZAorLlRQCitPciBzZXQgdGhlbToKK2NocnQgLXAgcHJpbyBwaWQKKy5TSCBQRVJNSVNTSU9OUworQSB1c2VyIG11c3QgcG9zc2VzcworLkJSIENBUF9TWVNfTklDRQordG8gY2hhbmdlIHRoZSBzY2hlZHVsaW5nIGF0dHJpYnV0ZXMgb2YgYSBwcm9jZXNzLiAgQW55IHVzZXIgY2FuIHJldHJpZXZlIHRoZQorc2NoZWR1bGluZyBpbmZvcm1hdGlvbi4KKy5TSCBOT1RFUworT25seQorLkJSIFNDSEVEX0ZJRk8gLAorLkJSIFNDSEVEX09USEVSCithbmQKKy5CUiBTQ0hFRF9SUgorYXJlIHBhcnQgb2YgUE9TSVggMTAwMy4xYiBQcm9jZXNzIFNjaGVkdWxpbmcuIFRoZSBvdGhlciBzY2hlZHVsaW5nIGF0dHJpYnV0ZXMKK21heSBiZSBpZ25vcmVkIG9uIHNvbWUgc3lzdGVtcy4KKy5TSCBBVVRIT1IKK1dyaXR0ZW4gYnkgUm9iZXJ0IE0uIExvdmUuCisuU0ggQ09QWVJJR0hUCitDb3B5cmlnaHQgXChjbyAyMDA0IFJvYmVydCBNLiBMb3ZlCisuYnIKK1RoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCit3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKy5TSCAiU0VFIEFMU08iCisuQlIgdGFza3NldCAoMSksCisuQlIgbmljZSAoMSksCisuQlIgcmVuaWNlICgxKQorLnNwCitTZWUKKy5CUiBzY2hlZF9zZXRzY2hlZHVsZXIgKDIpCitmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgTGludXggc2NoZWR1bGluZyBzY2hlbWUuCisuU0ggQVZBSUxBQklMSVRZCitUaGUgY2hydCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvY2hydC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2NoZWR1dGlscy9jaHJ0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk1M2FkZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvY2hydC5jCkBAIC0wLDAgKzEsMjUyIEBACisvKgorICogY2hydC5jIC0gY2hydAorICogQ29tbWFuZC1saW5lIHV0aWxpdHkgZm9yIG1hbmlwdWxhdGluZyBhIHRhc2sncyByZWFsLXRpbWUgYXR0cmlidXRlcyAKKyAqCisgKiBSb2JlcnQgTG92ZSA8cm1sQHRlY2g5Lm5ldD4KKyAqIDI3LUFwci0yMDAyOiBpbml0aWFsIHZlcnNpb24KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdjIsIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgUm9iZXJ0IExvdmUKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzY2hlZC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZXJyLmg+CisKKyNpbmNsdWRlICJjLmgiCisjaW5jbHVkZSAibmxzLmgiCisKKy8qIHRoZSBTQ0hFRF9CQVRDSCBpcyBzdXBwb3J0ZWQgc2luY2UgTGludXggMi42LjE2CisgKiAgLS0gdGVtcG9yYXJ5IHdvcmthcm91bmQgZm9yIHBlb3BsZSB3aXRoIG9sZCBnbGliYyBoZWFkZXJzCisgKi8KKyNpZiBkZWZpbmVkIChfX2xpbnV4X18pICYmICFkZWZpbmVkKFNDSEVEX0JBVENIKQorIyBkZWZpbmUgU0NIRURfQkFUQ0ggMworI2VuZGlmCisKKy8qIHRoZSBTQ0hFRF9JRExFIGlzIHN1cHBvcnRlZCBzaW5jZSBMaW51eCAyLjYuMjMKKyAqIGNvbW1pdCBpZCAwZTZhY2E0M2UwOGE2MmE0OGQ2NzcwZTlhMTU5ZGJlYzE2N2JmNGM2CisgKiAtLSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCBmb3IgcGVvcGxlIHdpdGggb2xkIGdsaWJjIGhlYWRlcnMKKyAqLworI2lmIGRlZmluZWQgKF9fbGludXhfXykgJiYgIWRlZmluZWQoU0NIRURfSURMRSkKKyMgZGVmaW5lIFNDSEVEX0lETEUgNQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHNob3dfdXNhZ2UoaW50IHJjKQoreworCWZwcmludGYoc3Rkb3V0LCBfKAorCSJcbmNocnQgLSBtYW5pcHVsYXRlIHJlYWwtdGltZSBhdHRyaWJ1dGVzIG9mIGEgcHJvY2Vzcy5cbiIKKwkiXG5TZXQgcG9saWN5OlxuIgorCSIgIGNocnQgW29wdGlvbnNdIDxwb2xpY3k+IDxwcmlvcml0eT4gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuIgorCSJcbkdldCBwb2xpY3k6XG4iCisJIiAgY2hydCBbb3B0aW9uc10gezxwaWQ+IHwgPGNvbW1hbmQ+IFs8YXJnPiAuLi5dfVxuXG4iCisJIlxuU2NoZWR1bGluZyBwb2xpY2llczpcbiIKKwkiICAtYiB8IC0tYmF0Y2ggICAgICAgICBzZXQgcG9saWN5IHRvIFNDSEVEX0JBVENIXG4iCisJIiAgLWYgfCAtLWZpZm8gICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9GSUZPXG4iCisJIiAgLWkgfCAtLWlkbGUgICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9JRExFXG4iCisJIiAgLW8gfCAtLW90aGVyICAgICAgICAgc2V0IHBvbGljeSB0byBTQ0hFRF9PVEhFUlxuIgorCSIgIC1yIHwgLS1yciAgICAgICAgICAgIHNldCBwb2xpY3kgdG8gU0NIRURfUlIgKGRlZmF1bHQpXG4iCisJIlxuT3B0aW9uczpcbiIKKwkiICAtaCB8IC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscFxuIgorCSIgIC1wIHwgLS1waWQgICAgICAgICAgIG9wZXJhdGUgb24gZXhpc3RpbmcgZ2l2ZW4gcGlkXG4iCisJIiAgLW0gfCAtLW1heCAgICAgICAgICAgc2hvdyBtaW4gYW5kIG1heCB2YWxpZCBwcmlvcml0aWVzXG4iCisJIiAgLXYgfCAtLXZlcmJvc2UgICAgICAgZGlzcGxheSBzdGF0dXMgaW5mb3JtYXRpb25cbiIKKwkiICAtViB8IC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuXG4iKSk7CisKKwlleGl0KHJjKTsKK30KKworc3RhdGljIHZvaWQgc2hvd19ydF9pbmZvKGNvbnN0IGNoYXIgKndoYXQsIHBpZF90IHBpZCkKK3sKKwlzdHJ1Y3Qgc2NoZWRfcGFyYW0gc3A7CisJaW50IHBvbGljeTsKKworCS8qIGRvbid0IGRpc3BsYXkgInBpZCAwIiBhcyB0aGF0IGlzIGNvbmZ1c2luZyAqLworCWlmICghcGlkKQorCQlwaWQgPSBnZXRwaWQoKTsKKworCXBvbGljeSA9IHNjaGVkX2dldHNjaGVkdWxlcihwaWQpOworCWlmIChwb2xpY3kgPT0gLTEpCisJCWVycihFWElUX0ZBSUxVUkUsIF8oImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgcG9saWN5IiksIHBpZCk7CisKKwlwcmludGYoXygicGlkICVkJ3MgJXMgc2NoZWR1bGluZyBwb2xpY3k6ICIpLCBwaWQsIHdoYXQpOworCXN3aXRjaCAocG9saWN5KSB7CisJY2FzZSBTQ0hFRF9PVEhFUjoKKwkJcHJpbnRmKCJTQ0hFRF9PVEhFUlxuIik7CisJCWJyZWFrOworCWNhc2UgU0NIRURfRklGTzoKKwkJcHJpbnRmKCJTQ0hFRF9GSUZPXG4iKTsKKwkJYnJlYWs7CisjaWZkZWYgU0NIRURfSURMRQorCWNhc2UgU0NIRURfSURMRToKKwkJcHJpbnRmKCJTQ0hFRF9JRExFXG4iKTsKKwkJYnJlYWs7CisjZW5kaWYKKwljYXNlIFNDSEVEX1JSOgorCQlwcmludGYoIlNDSEVEX1JSXG4iKTsKKwkJYnJlYWs7CisjaWZkZWYgU0NIRURfQkFUQ0gKKwljYXNlIFNDSEVEX0JBVENIOgorCQlwcmludGYoIlNDSEVEX0JBVENIXG4iKTsKKwkJYnJlYWs7CisjZW5kaWYKKwlkZWZhdWx0OgorCQlwcmludGYoXygidW5rbm93blxuIikpOworCX0KKworCWlmIChzY2hlZF9nZXRwYXJhbShwaWQsICZzcCkpCisJCWVycihFWElUX0ZBSUxVUkUsIF8oImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYXR0cmlidXRlcyIpLCBwaWQpOworCisJcHJpbnRmKF8oInBpZCAlZCdzICVzIHNjaGVkdWxpbmcgcHJpb3JpdHk6ICVkXG4iKSwKKwkJcGlkLCB3aGF0LCBzcC5zY2hlZF9wcmlvcml0eSk7Cit9CisKK3N0YXRpYyB2b2lkIHNob3dfbWluX21heCh2b2lkKQoreworCWludCBpOworCWludCBwb2xpY2llc1tdID0geyBTQ0hFRF9PVEhFUiwgU0NIRURfRklGTywgU0NIRURfUlIsCisjaWZkZWYgU0NIRURfQkFUQ0gKKwkJCSAgIFNDSEVEX0JBVENILAorI2VuZGlmCisjaWZkZWYgU0NIRURfSURMRQorCQkJICAgU0NIRURfSURMRSwKKyNlbmRpZgorCQkJIH07CisJY29uc3QgY2hhciAqbmFtZXNbXSA9IHsgIk9USEVSIiwgIkZJRk8iLCAiUlIiLAorI2lmZGVmIFNDSEVEX0JBVENICisJCQkJIkJBVENIIiwKKyNlbmRpZgorI2lmZGVmIFNDSEVEX0lETEUKKwkJCQkiSURMRSIsCisjZW5kaWYKKwkJCSAgICAgIH07CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwb2xpY2llcyk7IGkrKykgeworCQlpbnQgbWF4ID0gc2NoZWRfZ2V0X3ByaW9yaXR5X21heChwb2xpY2llc1tpXSk7CisJCWludCBtaW4gPSBzY2hlZF9nZXRfcHJpb3JpdHlfbWluKHBvbGljaWVzW2ldKTsKKworCQlpZiAobWF4ID49IDAgJiYgbWluID49IDApCisJCQlwcmludGYoXygiU0NIRURfJXMgbWluL21heCBwcmlvcml0eVx0OiAlZC8lZFxuIiksCisJCQkJCW5hbWVzW2ldLCBtaW4sIG1heCk7CisJCWVsc2UKKwkJCXByaW50ZihfKCJTQ0hFRF8lcyBub3Qgc3VwcG9ydGVkP1xuIiksIG5hbWVzW2ldKTsKKwl9Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJaW50IGksIHBvbGljeSA9IFNDSEVEX1JSLCBwcmlvcml0eSA9IDAsIHZlcmJvc2UgPSAwOworCXN0cnVjdCBzY2hlZF9wYXJhbSBzcDsKKwlwaWRfdCBwaWQgPSAtMTsKKworCXN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHsKKwkJeyAiYmF0Y2giLAkwLCBOVUxMLCAnYicgfSwKKwkJeyAiZmlmbyIsCTAsIE5VTEwsICdmJyB9LAorCQl7ICJpZGxlIiwJMCwgTlVMTCwgJ2knIH0sCisJCXsgInBpZCIsCTAsIE5VTEwsICdwJyB9LAorCQl7ICJoZWxwIiwJMCwgTlVMTCwgJ2gnIH0sCisJCXsgIm1heCIsICAgICAgICAwLCBOVUxMLCAnbScgfSwKKwkJeyAib3RoZXIiLAkwLCBOVUxMLCAnbycgfSwKKwkJeyAicnIiLAkJMCwgTlVMTCwgJ3InIH0sCisJCXsgInZlcmJvc2UiLAkwLCBOVUxMLCAndicgfSwKKwkJeyAidmVyc2lvbiIsCTAsIE5VTEwsICdWJyB9LAorCQl7IE5VTEwsCQkwLCBOVUxMLCAwIH0KKwl9OworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCXdoaWxlKChpID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIitiZmlwaG1vcnZWIiwgbG9uZ29wdHMsIE5VTEwpKSAhPSAtMSkKKwl7CisJCWludCByZXQgPSBFWElUX0ZBSUxVUkU7CisKKwkJc3dpdGNoIChpKSB7CisJCWNhc2UgJ2InOgorI2lmZGVmIFNDSEVEX0JBVENICisJCQlwb2xpY3kgPSBTQ0hFRF9CQVRDSDsKKyNlbmRpZgorCQkJYnJlYWs7CisJCWNhc2UgJ2YnOgorCQkJcG9saWN5ID0gU0NIRURfRklGTzsKKwkJCWJyZWFrOworCQljYXNlICdpJzoKKyNpZmRlZiBTQ0hFRF9JRExFCisJCQlwb2xpY3kgPSBTQ0hFRF9JRExFOworI2VuZGlmCisJCQlicmVhazsKKwkJY2FzZSAnbSc6CisJCQlzaG93X21pbl9tYXgoKTsKKwkJCXJldHVybiAwOworCQljYXNlICdvJzoKKwkJCXBvbGljeSA9IFNDSEVEX09USEVSOworCQkJYnJlYWs7CisJCWNhc2UgJ3AnOgorCQkJZXJybm8gPSAwOworCQkJcGlkID0gc3RydG9sKGFyZ3ZbYXJnYyAtIDFdLCBOVUxMLCAxMCk7CisJCQlpZiAoZXJybm8pCisJCQkJZXJyKEVYSVRfRkFJTFVSRSwgXygiZmFpbGVkIHRvIHBhcnNlIHBpZCIpKTsKKwkJCWJyZWFrOworCQljYXNlICdyJzoKKwkJCXBvbGljeSA9IFNDSEVEX1JSOworCQkJYnJlYWs7CisJCWNhc2UgJ3YnOgorCQkJdmVyYm9zZSA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnVic6CisJCQlwcmludGYoImNocnQgKCVzKVxuIiwgUEFDS0FHRV9TVFJJTkcpOworCQkJcmV0dXJuIDA7CisJCWNhc2UgJ2gnOgorCQkJcmV0ID0gRVhJVF9TVUNDRVNTOworCQlkZWZhdWx0OgorCQkJc2hvd191c2FnZShyZXQpOworCQl9CisJfQorCisJaWYgKCgocGlkID4gLTEpICYmIGFyZ2MgLSBvcHRpbmQgPCAxKSB8fCAoKHBpZCA9PSAtMSkgJiYgYXJnYyAtIG9wdGluZCA8IDIpKQorCQlzaG93X3VzYWdlKEVYSVRfRkFJTFVSRSk7CisKKwlpZiAoKHBpZCA+IC0xKSAmJiAodmVyYm9zZSB8fCBhcmdjIC0gb3B0aW5kID09IDEpKSB7CisJCXNob3dfcnRfaW5mbyhfKCJjdXJyZW50IiksIHBpZCk7CisJCWlmIChhcmdjIC0gb3B0aW5kID09IDEpCisJCQlyZXR1cm4gRVhJVF9TVUNDRVNTOworCX0KKworCWVycm5vID0gMDsKKwlwcmlvcml0eSA9IHN0cnRvbChhcmd2W29wdGluZF0sIE5VTEwsIDEwKTsKKwlpZiAoZXJybm8pCisJCWVycihFWElUX0ZBSUxVUkUsIF8oImZhaWxlZCB0byBwYXJzZSBwcmlvcml0eSIpKTsKKworCWlmIChwaWQgPT0gLTEpCisJCXBpZCA9IDA7CisJc3Auc2NoZWRfcHJpb3JpdHkgPSBwcmlvcml0eTsKKwlpZiAoc2NoZWRfc2V0c2NoZWR1bGVyKHBpZCwgcG9saWN5LCAmc3ApID09IC0xKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJmYWlsZWQgdG8gc2V0IHBpZCAlZCdzIHBvbGljeSIpLCBwaWQpOworCisJaWYgKHZlcmJvc2UpCisJCXNob3dfcnRfaW5mbyhfKCJuZXciKSwgcGlkKTsKKworCWlmICghcGlkKSB7CisJCWFyZ3YgKz0gb3B0aW5kICsgMTsKKwkJZXhlY3ZwKGFyZ3ZbMF0sIGFyZ3YpOworCQlwZXJyb3IoImV4ZWN2cCIpOworCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJmYWlsZWQgdG8gZXhlY3V0ZSAlcyIpLCBhcmd2WzBdKTsKKwl9CisKKwlyZXR1cm4gRVhJVF9TVUNDRVNTOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2NoZWR1dGlscy9pb25pY2UuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvaW9uaWNlLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNhYzg5NQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvaW9uaWNlLjEKQEAgLTAsMCArMSw5NCBAQAorLlRIIGlvbmljZSAiMSIgIkF1Z3VzdCAyMDA1IiBpb25pY2UKKy5TSCBOQU1FCitpb25pY2UgXC0gZ2V0L3NldCBwcm9ncmFtIGlvIHNjaGVkdWxpbmcgY2xhc3MgYW5kIHByaW9yaXR5CisuU0ggU1lOT1BTSVMKKy5CIGlvbmljZQorLlJCIFtbIFwtYworLklSIGNsYXNzIF0KKy5SQiBbIFwtbgorLklSIGNsYXNzZGF0YSBdCisuUkIgWyBcLXQgXV0KKy5CSSBcLXAgXCBQSUQKKy5SSSBbIFBJRCAgXS4uLgorLmJyCisuQiBpb25pY2UKKy5SQiBbIFwtYworLklSIGNsYXNzIF0KKy5SQiBbIFwtbgorLklSIGNsYXNzZGF0YSBdCisuUkIgWyBcLXQgXQorLklSIENPTU1BTkRcICBbIEFSRyAgXS4uLgorLlNIIERFU0NSSVBUSU9OCitUaGlzIHByb2dyYW0gc2V0cyBvciBnZXRzIHRoZSBpbyBzY2hlZHVsaW5nIGNsYXNzIGFuZCBwcmlvcml0eSBmb3IgYSBwcm9ncmFtLgorSWYgbm8gYXJndW1lbnRzIG9yIGp1c3QgXGZCXC1wXGZSIGlzIGdpdmVuLCBcZkJpb25pY2VcZlIgd2lsbCBxdWVyeSB0aGUgY3VycmVudAoraW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkgZm9yIHRoYXQgcHJvY2Vzcy4KKworQXMgb2YgdGhpcyB3cml0aW5nLCBhIHByb2Nlc3MgY2FuIGJlIGluIG9uZSBvZiB0aHJlZSBzY2hlZHVsaW5nIGNsYXNzZXM6CisuSVAgIlxmQklkbGVcZlAiCitBIHByb2dyYW0gcnVubmluZyB3aXRoIGlkbGUgaW8gcHJpb3JpdHkgd2lsbCBvbmx5IGdldCBkaXNrIHRpbWUgd2hlbiBubyBvdGhlcgorcHJvZ3JhbSBoYXMgYXNrZWQgZm9yIGRpc2sgaW8gZm9yIGEgZGVmaW5lZCBncmFjZSBwZXJpb2QuIFRoZSBpbXBhY3Qgb2YgaWRsZQoraW8gcHJvY2Vzc2VzIG9uIG5vcm1hbCBzeXN0ZW0gYWN0aXZpdHkgc2hvdWxkIGJlIHplcm8uIFRoaXMgc2NoZWR1bGluZworY2xhc3MgZG9lcyBub3QgdGFrZSBhIHByaW9yaXR5IGFyZ3VtZW50LiBQcmVzZW50bHksIHRoaXMgc2NoZWR1bGluZyBjbGFzcworaXMgcGVybWl0dGVkIGZvciBhbiBvcmRpbmFyeSB1c2VyIChzaW5jZSBrZXJuZWwgMi42LjI1KS4KKy5JUCAiXGZCQmVzdCBlZmZvcnRcZlAiCitUaGlzIGlzIHRoZSBlZmZlY3RpdmUgc2NoZWR1bGluZyBjbGFzcyBmb3IgYW55IHByb2Nlc3MgdGhhdCBoYXMgbm90IGFza2VkIGZvcgorYSBzcGVjaWZpYyBpbyBwcmlvcml0eS4KK1RoaXMgY2xhc3MgdGFrZXMgYSBwcmlvcml0eSBhcmd1bWVudCBmcm9tIFxmSTAtN1xmUiwgd2l0aCBsb3dlcgorbnVtYmVyIGJlaW5nIGhpZ2hlciBwcmlvcml0eS4gUHJvZ3JhbXMgcnVubmluZyBhdCB0aGUgc2FtZSBiZXN0IGVmZm9ydAorcHJpb3JpdHkgYXJlIHNlcnZlZCBpbiBhIHJvdW5kLXJvYmluIGZhc2hpb24uCisKK05vdGUgdGhhdCBiZWZvcmUga2VybmVsIDIuNi4yNiBhIHByb2Nlc3MgdGhhdCBoYXMgbm90IGFza2VkIGZvciBhbiBpbyBwcmlvcml0eQorZm9ybWFsbHkgdXNlcyAiXGZCbm9uZVxmUCIgYXMgc2NoZWR1bGluZyBjbGFzcywgYnV0IHRoZSBpbyBzY2hlZHVsZXIgd2lsbCB0cmVhdAorc3VjaCBwcm9jZXNzZXMgYXMgaWYgaXQgd2VyZSBpbiB0aGUgYmVzdCBlZmZvcnQgY2xhc3MuIFRoZSBwcmlvcml0eSB3aXRoaW4gdGhlCitiZXN0IGVmZm9ydCBjbGFzcyB3aWxsIGJlIGR5bmFtaWNhbGx5IGRlcml2ZWQgZnJvbSB0aGUgY3B1IG5pY2UgbGV2ZWwgb2YgdGhlCitwcm9jZXNzOiBpb19wcmlvcml0eSA9IChjcHVfbmljZSArIDIwKSAvIDUuCisKK0ZvciBrZXJuZWxzIGFmdGVyIDIuNi4yNiB3aXRoIENGUSBpbyBzY2hlZHVsZXIgYSBwcm9jZXNzIHRoYXQgaGFzIG5vdCBhc2tlZCBmb3IKK2FuIGlvIHByaW9yaXR5IGluaGVyaXRzIENQVSBzY2hlZHVsaW5nIGNsYXNzLiAgVGhlIGlvIHByaW9yaXR5IGlzIGRlcml2ZWQgZnJvbQordGhlIGNwdSBuaWNlIGxldmVsIG9mIHRoZSBwcm9jZXNzIChzYW1lIGFzIGJlZm9yZSBrZXJuZWwgMi42LjI2KS4KKworLklQICJcZkJSZWFsIHRpbWVcZlAiCitUaGUgUlQgc2NoZWR1bGluZyBjbGFzcyBpcyBnaXZlbiBmaXJzdCBhY2Nlc3MgdG8gdGhlIGRpc2ssIHJlZ2FyZGxlc3Mgb2YKK3doYXQgZWxzZSBpcyBnb2luZyBvbiBpbiB0aGUgc3lzdGVtLiBUaHVzIHRoZSBSVCBjbGFzcyBuZWVkcyB0byBiZSB1c2VkIHdpdGgKK3NvbWUgY2FyZSwgYXMgaXQgY2FuIHN0YXJ2ZSBvdGhlciBwcm9jZXNzZXMuIEFzIHdpdGggdGhlIGJlc3QgZWZmb3J0IGNsYXNzLAorOCBwcmlvcml0eSBsZXZlbHMgYXJlIGRlZmluZWQgZGVub3RpbmcgaG93IGJpZyBhIHRpbWUgc2xpY2UgYSBnaXZlbiBwcm9jZXNzCit3aWxsIHJlY2VpdmUgb24gZWFjaCBzY2hlZHVsaW5nIHdpbmRvdy4gVGhpcyBzY2hlZHVsaW5nIGNsYXNzIGlzIG5vdAorcGVybWl0dGVkIGZvciBhbiBvcmRpbmFyeSAoaS5lLiwgbm9uLXJvb3QpIHVzZXIuCisuU0ggT1BUSU9OUworLklQICJcZkItYyBcZkljbGFzc1xmUCIKK1RoZSBzY2hlZHVsaW5nIGNsYXNzLiBcZkkwXGZSIGZvciBub25lLCBcZkkxXGZSIGZvciByZWFsIHRpbWUsIFxmSTJcZlIgZm9yCitiZXN0LWVmZm9ydCwgXGZJM1xmUiBmb3IgaWRsZS4KKy5JUCAiXGZCLW4gXGZJY2xhc3NkYXRhXGZQIgorVGhlIHNjaGVkdWxpbmcgY2xhc3MgZGF0YS4gVGhpcyBkZWZpbmVzIHRoZSBjbGFzcyBkYXRhLCBpZiB0aGUgY2xhc3MKK2FjY2VwdHMgYW4gYXJndW1lbnQuIEZvciByZWFsIHRpbWUgYW5kIGJlc3QtZWZmb3J0LCBcZkkwLTdcZlIgaXMgdmFsaWQKK2RhdGEuCisuSVAgIlxmQi1wIFxmSXBpZFxmUCIKK1Bhc3MgaW4gcHJvY2VzcyBQSUQocykgdG8gdmlldyBvciBjaGFuZ2UgYWxyZWFkeSBydW5uaW5nIHByb2Nlc3Nlcy4gSWYgdGhpcyBhcmd1bWVudAoraXMgbm90IGdpdmVuLCBcZkJpb25pY2VcZlAgd2lsbCBydW4gdGhlIGxpc3RlZCBwcm9ncmFtIHdpdGggdGhlIGdpdmVuCitwYXJhbWV0ZXJzLgorLklQICJcZkItdFxmUCIKK0lnbm9yZSBmYWlsdXJlIHRvIHNldCByZXF1ZXN0ZWQgcHJpb3JpdHkuIElmIENPTU1BTkQgb3IgUElEKHMpIGlzIHNwZWNpZmllZCwgcnVuIGl0CitldmVuIGluIGNhc2UgaXQgd2FzIG5vdCBwb3NzaWJsZSB0byBzZXQgZGVzaXJlZCBzY2hlZHVsaW5nIHByaW9yaXR5LCB3aGF0CitjYW4gaGFwcGVuIGR1ZSB0byBpbnN1ZmZpY2llbnQgcHJpdmlsZWdpZXMgb3Igb2xkIGtlcm5lbCB2ZXJzaW9uLgorLlNIIEVYQU1QTEVTCisuTFAKKy5UUCA3CisjIFxmQmlvbmljZVxmUCAtYyAzIC1wIDg5CisuVFAgNworU2V0cyBwcm9jZXNzIHdpdGggUElEIDg5IGFzIGFuIGlkbGUgaW8gcHJvY2Vzcy4KKy5UUCA3CisjIFxmQmlvbmljZVxmUCAtYyAyIC1uIDAgYmFzaAorLlRQIDcKK1J1bnMgJ2Jhc2gnIGFzIGEgYmVzdC1lZmZvcnQgcHJvZ3JhbSB3aXRoIGhpZ2hlc3QgcHJpb3JpdHkuCisuVFAgNworIyBcZkJpb25pY2VcZlAgLXAgODkgOTEKKy5UUCA3CitQcmludHMgdGhlIGNsYXNzIGFuZCBwcmlvcml0eSBvZiB0aGUgcHJvY2Vzc2VzIHdpdGggUElEIDg5IGFuZCA5MS4KKy5TSCBOT1RFUworTGludXggc3VwcG9ydHMgaW8gc2NoZWR1bGluZyBwcmlvcml0aWVzIGFuZCBjbGFzc2VzIHNpbmNlIDIuNi4xMyB3aXRoIHRoZSBDRlEKK2lvIHNjaGVkdWxlci4KKy5TSCBBVVRIT1JTCitKZW5zIEF4Ym9lIDxqZW5zQGF4Ym9lLmRrPgorLlNIIEFWQUlMQUJJTElUWQorVGhlIGlvbmljZSBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvaW9uaWNlLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zY2hlZHV0aWxzL2lvbmljZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1N2NmN2YKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zY2hlZHV0aWxzL2lvbmljZS5jCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogaW9uaWNlOiBzZXQgb3IgZ2V0IHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgSmVucyBBeGJvZSA8amVuc0BheGJvZS5kaz4KKyAqCisgKiBSZWxlYXNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMgorICoKKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+CisjaW5jbHVkZSA8ZXJyLmg+CisKKyNpbmNsdWRlICJubHMuaCIKKworc3RhdGljIGludCB0b2xlcmFudDsKKworc3RhdGljIGlubGluZSBpbnQgaW9wcmlvX3NldChpbnQgd2hpY2gsIGludCB3aG8sIGludCBpb3ByaW8pCit7CisJcmV0dXJuIHN5c2NhbGwoU1lTX2lvcHJpb19zZXQsIHdoaWNoLCB3aG8sIGlvcHJpbyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGlvcHJpb19nZXQoaW50IHdoaWNoLCBpbnQgd2hvKQoreworCXJldHVybiBzeXNjYWxsKFNZU19pb3ByaW9fZ2V0LCB3aGljaCwgd2hvKTsKK30KKworZW51bSB7CisJSU9QUklPX0NMQVNTX05PTkUsCisJSU9QUklPX0NMQVNTX1JULAorCUlPUFJJT19DTEFTU19CRSwKKwlJT1BSSU9fQ0xBU1NfSURMRSwKK307CisKK2VudW0geworCUlPUFJJT19XSE9fUFJPQ0VTUyA9IDEsCisJSU9QUklPX1dIT19QR1JQLAorCUlPUFJJT19XSE9fVVNFUiwKK307CisKKyNkZWZpbmUgSU9QUklPX0NMQVNTX1NISUZUCTEzCisKK2NvbnN0IGNoYXIgKnRvX3ByaW9bXSA9IHsgIm5vbmUiLCAicmVhbHRpbWUiLCAiYmVzdC1lZmZvcnQiLCAiaWRsZSIsIH07CisKK3N0YXRpYyB2b2lkIGlvcHJpb19wcmludChpbnQgcGlkKQoreworCWludCBpb3ByaW8sIGlvY2xhc3M7CisKKwlpb3ByaW8gPSBpb3ByaW9fZ2V0KElPUFJJT19XSE9fUFJPQ0VTUywgcGlkKTsKKworCWlmIChpb3ByaW8gPT0gLTEpCisJCWVycihFWElUX0ZBSUxVUkUsIF8oImlvcHJpb19nZXQgZmFpbGVkIikpOworCWVsc2UgeworCQlpb2NsYXNzID0gaW9wcmlvID4+IElPUFJJT19DTEFTU19TSElGVDsKKwkJaWYgKGlvY2xhc3MgIT0gSU9QUklPX0NMQVNTX0lETEUpIHsKKwkJCWlvcHJpbyA9IGlvcHJpbyAmIDB4ZmY7CisJCQlwcmludGYoIiVzOiBwcmlvICVkXG4iLCB0b19wcmlvW2lvY2xhc3NdLCBpb3ByaW8pOworCQl9IGVsc2UKKwkJCXByaW50ZigiJXNcbiIsIHRvX3ByaW9baW9jbGFzc10pOworCX0KK30KKworCitzdGF0aWMgdm9pZCBpb3ByaW9fc2V0cGlkKHBpZF90IHBpZCwgaW50IGlvcHJpbywgaW50IGlvY2xhc3MpCit7CisJaW50IHJjID0gaW9wcmlvX3NldChJT1BSSU9fV0hPX1BST0NFU1MsIHBpZCwKKwkJCWlvcHJpbyB8IGlvY2xhc3MgPDwgSU9QUklPX0NMQVNTX1NISUZUKTsKKworCWlmIChyYyA9PSAtMSAmJiAhdG9sZXJhbnQpCisJCWVycihFWElUX0ZBSUxVUkUsIF8oImlvcHJpb19zZXQgZmFpbGVkIikpOworfQorCitzdGF0aWMgdm9pZCB1c2FnZShpbnQgcmMpCit7CisJZnByaW50ZihzdGRvdXQsIF8oCisJIlxuaW9uaWNlIC0gc2V0cyBvciBnZXRzIHByb2Nlc3MgaW8gc2NoZWR1bGluZyBjbGFzcyBhbmQgcHJpb3JpdHkuXG4iCisJIlxuVXNhZ2U6XG4iCisJIiAgaW9uaWNlIFsgb3B0aW9ucyBdIC1wIDxwaWQ+IFs8cGlkPiAuLi5dXG4iCisJIiAgaW9uaWNlIFsgb3B0aW9ucyBdIDxjb21tYW5kPiBbPGFyZz4gLi4uXVxuIgorCSJcbk9wdGlvbnM6XG4iCisJIiAgLW4gPGNsYXNzZGF0YT4gICAgICBjbGFzcyBkYXRhICgwLTcsIGxvd2VyIGJlaW5nIGhpZ2hlciBwcmlvKVxuIgorCSIgIC1jIDxjbGFzcz4gICAgICAgICAgc2NoZWR1bGluZyBjbGFzc1xuIgorCSIgICAgICAgICAgICAgICAgICAgICAgMDogbm9uZSwgMTogcmVhbHRpbWUsIDI6IGJlc3QtZWZmb3J0LCAzOiBpZGxlXG4iCisJIiAgLXQgICAgICAgICAgICAgICAgICBpZ25vcmUgZmFpbHVyZXNcbiIKKwkiICAtaCAgICAgICAgICAgICAgICAgIHRoaXMgaGVscFxuXG4iKSk7CisJZXhpdChyYyk7Cit9CisKK3N0YXRpYyBsb25nIGdldG51bShjb25zdCBjaGFyICpzdHIpCit7CisJbG9uZyBudW07CisJY2hhciAqZW5kID0gTlVMTDsKKworCWlmIChzdHIgPT0gTlVMTCB8fCAqc3RyID09ICdcMCcpCisJCWdvdG8gZXJyOworCWVycm5vID0gMDsKKwludW0gPSBzdHJ0b2woc3RyLCAmZW5kLCAxMCk7CisKKwlpZiAoZXJybm8gfHwgKGVuZCAmJiAqZW5kKSkKKwkJZ290byBlcnI7CisKKwlyZXR1cm4gbnVtOworZXJyOgorCWlmIChlcnJubykKKwkJZXJyKEVYSVRfU1VDQ0VTUywgXygiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIiksIHN0cik7CisJZWxzZQorCQllcnJ4KEVYSVRfU1VDQ0VTUywgXygiY2Fubm90IHBhcnNlIG51bWJlciAnJXMnIiksIHN0cik7CisJcmV0dXJuIDA7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJaW50IGlvcHJpbyA9IDQsIHNldCA9IDAsIGlvY2xhc3MgPSBJT1BSSU9fQ0xBU1NfQkUsIGM7CisJcGlkX3QgcGlkID0gMDsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwl3aGlsZSAoKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgIituOmM6cDp0aCIpKSAhPSBFT0YpIHsKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ24nOgorCQkJaW9wcmlvID0gZ2V0bnVtKG9wdGFyZyk7CisJCQlzZXQgfD0gMTsKKwkJCWJyZWFrOworCQljYXNlICdjJzoKKwkJCWlvY2xhc3MgPSBnZXRudW0ob3B0YXJnKTsKKwkJCXNldCB8PSAyOworCQkJYnJlYWs7CisJCWNhc2UgJ3AnOgorCQkJcGlkID0gZ2V0bnVtKG9wdGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSAndCc6CisJCQl0b2xlcmFudCA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnaCc6CisJCQl1c2FnZShFWElUX1NVQ0NFU1MpOworCQlkZWZhdWx0OgorCQkJdXNhZ2UoRVhJVF9GQUlMVVJFKTsKKwkJfQorCX0KKworCXN3aXRjaCAoaW9jbGFzcykgeworCQljYXNlIElPUFJJT19DTEFTU19OT05FOgorCQkJaWYgKHNldCAmIDEpCisJCQkJd2FybngoXygiaWdub3JpbmcgZ2l2ZW4gY2xhc3MgZGF0YSBmb3Igbm9uZSBjbGFzcyIpKTsKKwkJCWlvcHJpbyA9IDA7CisJCQlicmVhazsKKwkJY2FzZSBJT1BSSU9fQ0xBU1NfUlQ6CisJCWNhc2UgSU9QUklPX0NMQVNTX0JFOgorCQkJYnJlYWs7CisJCWNhc2UgSU9QUklPX0NMQVNTX0lETEU6CisJCQlpZiAoc2V0ICYgMSkKKwkJCQl3YXJueChfKCJpZ25vcmluZyBnaXZlbiBjbGFzcyBkYXRhIGZvciBpZGxlIGNsYXNzIikpOworCQkJaW9wcmlvID0gNzsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZXJyeChFWElUX0ZBSUxVUkUsIF8oImJhZCBwcmlvIGNsYXNzICVkIiksIGlvY2xhc3MpOworCX0KKworCWlmICghc2V0KSB7CisJCWlvcHJpb19wcmludChwaWQpOworCisJCWZvcig7IGFyZ3Zbb3B0aW5kXTsgKytvcHRpbmQpIHsKKwkJCXBpZCA9IGdldG51bShhcmd2W29wdGluZF0pOworCQkJaW9wcmlvX3ByaW50KHBpZCk7CisJCX0KKwl9IGVsc2UgeworCQlpZiAocGlkKSB7CisJCQlpb3ByaW9fc2V0cGlkKHBpZCwgaW9wcmlvLCBpb2NsYXNzKTsKKworCQkJZm9yKDsgYXJndltvcHRpbmRdOyArK29wdGluZCkKKwkJCXsKKwkJCQlwaWQgPSBnZXRudW0oYXJndltvcHRpbmRdKTsKKwkJCQlpb3ByaW9fc2V0cGlkKHBpZCwgaW9wcmlvLCBpb2NsYXNzKTsKKwkJCX0KKwkJfQorCQllbHNlIGlmIChhcmd2W29wdGluZF0pIHsKKwkJCWlvcHJpb19zZXRwaWQoMCwgaW9wcmlvLCBpb2NsYXNzKTsKKwkJCWV4ZWN2cChhcmd2W29wdGluZF0sICZhcmd2W29wdGluZF0pOworCQkJLyogZXhlY3ZwIHNob3VsZCBuZXZlciByZXR1cm4gKi8KKwkJCWVycihFWElUX0ZBSUxVUkUsIF8oImV4ZWN2cCBmYWlsZWQiKSk7CisJCX0KKwl9CisKKwlleGl0KEVYSVRfU1VDQ0VTUyk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zY2hlZHV0aWxzL3Rhc2tzZXQuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvdGFza3NldC4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmM2RjNGIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zY2hlZHV0aWxzL3Rhc2tzZXQuMQpAQCAtMCwwICsxLDEyNiBAQAorLlwiIHRhc2tzZXQoMSkgbWFucGFnZQorLlwiCisuXCIgQ29weXJpZ2h0IChDKSAyMDA0IFJvYmVydCBMb3ZlCisuXCIKKy5cIiBUaGlzIGlzIGZyZWUgZG9jdW1lbnRhdGlvbjsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisuXCIgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKy5cIiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorLlwiIHRoZSBMaWNlbnNlLgorLlwiCisuXCIgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlJ3MgcmVmZXJlbmNlcyB0byAib2JqZWN0IGNvZGUiCisuXCIgYW5kICJleGVjdXRhYmxlcyIgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIHRoZSBvdXRwdXQgb2YgYW55CisuXCIgZG9jdW1lbnQgZm9ybWF0dGluZyBvciB0eXBlc2V0dGluZyBzeXN0ZW0sIGluY2x1ZGluZworLlwiIGludGVybWVkaWF0ZSBhbmQgcHJpbnRlZCBvdXRwdXQuCisuXCIKKy5cIiBUaGlzIG1hbnVhbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorLlwiIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisuXCIgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorLlwiIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisuXCIKKy5cIiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKy5cIiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBtYW51YWw7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKKy5cIiBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMSwKKy5cIiBVU0EuCisuXCIKKy5cIiAyMDAyLTA1LTExIFJvYmVydCBMb3ZlIDxybWxAdGVjaDkubmV0PgorLlwiIAlJbml0aWFsIHZlcnNpb24KKy5cIgorLlRIIFRBU0tTRVQgIjEiICJBcHIgMjAwMyIgInNjaGVkdXRpbHMiICJMaW51eCBVc2VyJ3MgTWFudWFsIgorLlNIIE5BTUUKK3Rhc2tzZXQgXC0gcmV0cmlldmUgb3Igc2V0IGEgcHJvY2VzcydzIENQVSBhZmZpbml0eQorLlNIIFNZTk9QU0lTCisuQiB0YXNrc2V0CisuUkkgWyBvcHRpb25zIF1cICBtYXNrCisuSVIgY29tbWFuZFwgIFsgYXJnIF0uLi4KKy5icgorLkIgdGFza3NldAorLlJJIFsgb3B0aW9ucyBdCisuQiBcLXAKKy5SSSBbIG1hc2sgXVwgIHBpZAorLlNIIERFU0NSSVBUSU9OCisuUFAKKy5CUiB0YXNrc2V0CitpcyB1c2VkIHRvIHNldCBvciByZXRyaWV2ZSB0aGUgQ1BVIGFmZmluaXR5IG9mIGEgcnVubmluZyBwcm9jZXNzIGdpdmVuIGl0cyBQSUQKK29yIHRvIGxhdW5jaCBhIG5ldyBDT01NQU5EIHdpdGggYSBnaXZlbiBDUFUgYWZmaW5pdHkuICBDUFUgYWZmaW5pdHkgaXMgYQorc2NoZWR1bGVyIHByb3BlcnR5IHRoYXQgImJvbmRzIiBhIHByb2Nlc3MgdG8gYSBnaXZlbiBzZXQgb2YgQ1BVcyBvbiB0aGUgc3lzdGVtLgorVGhlIExpbnV4IHNjaGVkdWxlciB3aWxsIGhvbm9yIHRoZSBnaXZlbiBDUFUgYWZmaW5pdHkgYW5kIHRoZSBwcm9jZXNzIHdpbGwgbm90CitydW4gb24gYW55IG90aGVyIENQVXMuICBOb3RlIHRoYXQgdGhlIExpbnV4IHNjaGVkdWxlciBhbHNvIHN1cHBvcnRzIG5hdHVyYWwKK0NQVSBhZmZpbml0eTogdGhlIHNjaGVkdWxlciBhdHRlbXB0cyB0byBrZWVwIHByb2Nlc3NlcyBvbiB0aGUgc2FtZSBDUFUgYXMgbG9uZworYXMgcHJhY3RpY2FsIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiAgVGhlcmVmb3JlLCBmb3JjaW5nIGEgc3BlY2lmaWMgQ1BVCithZmZpbml0eSBpcyB1c2VmdWwgb25seSBpbiBjZXJ0YWluIGFwcGxpY2F0aW9ucy4KKy5zcAorVGhlIENQVSBhZmZpbml0eSBpcyByZXByZXNlbnRlZCBhcyBhIGJpdG1hc2ssIHdpdGggdGhlIGxvd2VzdCBvcmRlciBiaXQKK2NvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IGxvZ2ljYWwgQ1BVIGFuZCB0aGUgaGlnaGVzdCBvcmRlciBiaXQgY29ycmVzcG9uZGluZwordG8gdGhlIGxhc3QgbG9naWNhbCBDUFUuICBOb3QgYWxsIENQVXMgbWF5IGV4aXN0IG9uIGEgZ2l2ZW4gc3lzdGVtIGJ1dCBhIG1hc2sKK21heSBzcGVjaWZ5IG1vcmUgQ1BVcyB0aGFuIGFyZSBwcmVzZW50LiAgQSByZXRyaWV2ZWQgbWFzayB3aWxsIHJlZmxlY3Qgb25seSB0aGUKK2JpdHMgdGhhdCBjb3JyZXNwb25kIHRvIENQVXMgcGh5c2ljYWxseSBvbiB0aGUgc3lzdGVtLiAgSWYgYW4gaW52YWxpZCBtYXNrIGlzCitnaXZlbiAoaS5lLiwgb25lIHRoYXQgY29ycmVzcG9uZHMgdG8gbm8gdmFsaWQgQ1BVcyBvbiB0aGUgY3VycmVudCBzeXN0ZW0pIGFuCitlcnJvciBpcyByZXR1cm5lZC4gIFRoZSBtYXNrcyBhcmUgdHlwaWNhbGx5IGdpdmVuIGluIGhleGFkZWNpbWFsLiAgRm9yIGV4YW1wbGUsCisuVFAKKy5CUiAweDAwMDAwMDAxCitpcyBwcm9jZXNzb3IgIzAKKy5UUAorLkJSIDB4MDAwMDAwMDMKK2lzIHByb2Nlc3NvcnMgIzAgYW5kICMxCisuVFAKKy5CUiAweEZGRkZGRkZGCitpcyBhbGwgcHJvY2Vzc29ycyAoIzAgdGhyb3VnaCAjMzEpCisuUFAKK1doZW4KKy5CUiB0YXNrc2V0CityZXR1cm5zLCBpdCBpcyBndWFyYW50ZWVkIHRoYXQgdGhlIGdpdmVuIHByb2dyYW0gaGFzIGJlZW4gc2NoZWR1bGVkIHRvIGEgbGVnYWwKK0NQVS4KKy5TSCBPUFRJT05TCisuVFAKKy5CUiBcLXAgLFwgIFwtXC1waWQKK29wZXJhdGUgb24gYW4gZXhpc3RpbmcgUElEIGFuZCBub3QgbGF1bmNoIGEgbmV3IHRhc2sKKy5UUAorLkJSIFwtYyAsXCAgXC1cLWNwdS1saXN0CitzcGVjaWZ5IGEgbnVtZXJpY2FsIGxpc3Qgb2YgcHJvY2Vzc29ycyBpbnN0ZWFkIG9mIGEgYml0bWFzay4gIFRoZSBsaXN0IG1heQorY29udGFpbiBtdWx0aXBsZSBpdGVtcywgc2VwYXJhdGVkIGJ5IGNvbW1hLCBhbmQgcmFuZ2VzLiAgRm9yIGV4YW1wbGUsCisuQlIgMCw1LDcsOS0xMSAuCisuVFAKKy5CUiBcLWggLFwgIFwtXC1oZWxwCitkaXNwbGF5IHVzYWdlIGluZm9ybWF0aW9uIGFuZCBleGl0CisuVFAKKy5CUiBcLVYgLFwgIFwtXC12ZXJzaW9uCitvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAorLlNIIFVTQUdFCisuVFAKK1RoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIHJ1biBhIG5ldyBjb21tYW5kIHdpdGggYSBnaXZlbiBhZmZpbml0eSBtYXNrOgorLkIgdGFza3NldAorLkkgbWFzaworLklSIGNvbW1hbmRcICBbIGFyZ3VtZW50cyBdCisuVFAKK1lvdSBjYW4gYWxzbyByZXRyaWV2ZSB0aGUgQ1BVIGFmZmluaXR5IG9mIGFuIGV4aXN0aW5nIHRhc2s6CisuQiB0YXNrc2V0IFwtcAorLkkgcGlkCisuVFAKK09yIHNldCBpdDoKKy5CIHRhc2tzZXQgXC1wCisuSSBtYXNrIHBpZAorLlNIIFBFUk1JU1NJT05TCitBIHVzZXIgbXVzdCBwb3NzZXNzCisuQiBDQVBfU1lTX05JQ0UKK3RvIGNoYW5nZSB0aGUgQ1BVIGFmZmluaXR5IG9mIGEgcHJvY2Vzcy4gIEFueSB1c2VyIGNhbiByZXRyaWV2ZSB0aGUgYWZmaW5pdHkKK21hc2suCisuU0ggQVVUSE9SCitXcml0dGVuIGJ5IFJvYmVydCBNLiBMb3ZlLgorLlNIIENPUFlSSUdIVAorQ29weXJpZ2h0IFwoY28gMjAwNCBSb2JlcnQgTS4gTG92ZQorLmJyCitUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTword2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisuU0ggIlNFRSBBTFNPIgorLkJSIGNocnQgKDEpLAorLkJSIG5pY2UgKDEpLAorLkJSIHJlbmljZSAoMSksCisuQlIgc2NoZWRfc2V0YWZmaW5pdHkgKDIpLAorLkJSIHNjaGVkX2dldGFmZmluaXR5ICgyKQorLnNwCitTZWUKKy5CUiBzY2hlZF9zZXRzY2hlZHVsZXIgKDIpCitmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgTGludXggc2NoZWR1bGluZyBzY2hlbWUuCisuU0ggQVZBSUxBQklMSVRZCitUaGUgdGFza3NldCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvdGFza3NldC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2NoZWR1dGlscy90YXNrc2V0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FiYjljYgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NjaGVkdXRpbHMvdGFza3NldC5jCkBAIC0wLDAgKzEsNDY3IEBACisvKgorICogdGFza3NldC5jIC0gdGFza3NldAorICogQ29tbWFuZC1saW5lIHV0aWxpdHkgZm9yIHNldHRpbmcgYW5kIHJldHJpZXZpbmcgYSB0YXNrJ3MgQ1BVIGFmZmluaXR5CisgKgorICogUm9iZXJ0IExvdmUgPHJtbEB0ZWNoOS5uZXQ+CQkyNSBBcHJpbCAyMDAyCisgKgorICogTGludXgga2VybmVscyBhcyBvZiAyLjUuOCBwcm92aWRlIHRoZSBuZWVkZWQgc3lzY2FsbHMgZm9yCisgKiB3b3JraW5nIHdpdGggYSB0YXNrJ3MgY3B1IGFmZmluaXR5LiAgQ3VycmVudGx5IDIuNCBkb2VzIG5vdAorICogc3VwcG9ydCB0aGVzZSBzeXNjYWxscywgYnV0IHBhdGNoZXMgYXJlIGF2YWlsYWJsZSBhdDoKKyAqCisgKiAJaHR0cDovL3d3dy5rZXJuZWwub3JnL3B1Yi9saW51eC9rZXJuZWwvcGVvcGxlL3JtbC9jcHUtYWZmaW5pdHkvCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHYyLCBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA0IFJvYmVydCBMb3ZlCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c2NoZWQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKworc3RydWN0IGJpdG1hc2sgeworCXVuc2lnbmVkIGludCBzaXplOworCXVuc2lnbmVkIGxvbmcgKm1hc2twOworfTsKKworc3RhdGljIHZvaWQgc2hvd191c2FnZShjb25zdCBjaGFyICpjbWQpCit7CisJZnByaW50ZihzdGRlcnIsICJ0YXNrc2V0ICglcylcbiIsIFBBQ0tBR0VfU1RSSU5HKTsKKwlmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiAlcyBbb3B0aW9uc10gW21hc2sgfCBjcHUtbGlzdF0gW3BpZCB8IlwKKwkJIiBjbWQgW2FyZ3MuLi5dXVxuIiwgY21kKTsKKwlmcHJpbnRmKHN0ZGVyciwgInNldCBvciBnZXQgdGhlIGFmZmluaXR5IG9mIGEgcHJvY2Vzc1xuXG4iKTsKKwlmcHJpbnRmKHN0ZGVyciwgIiAgLXAsIC0tcGlkICAgICAgICAgICAgICAgICAgIgorCQkib3BlcmF0ZSBvbiBleGlzdGluZyBnaXZlbiBwaWRcbiIpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWMsIC0tY3B1LWxpc3QgICAgICAgICAgICAgIlwKKwkJImRpc3BsYXkgYW5kIHNwZWNpZnkgY3B1cyBpbiBsaXN0IGZvcm1hdFxuIik7CisJZnByaW50ZihzdGRlcnIsICIgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwXG4iKTsKKwlmcHJpbnRmKHN0ZGVyciwgIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgIlwKKwkJIm91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uXG5cbiIpOworCWZwcmludGYoc3RkZXJyLCAiVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gcnVuIGEgbmV3IGNvbW1hbmQ6XG4iKTsKKwlmcHJpbnRmKHN0ZGVyciwgIiAgJXMgMDMgc3NoZCAtYiAxMDI0XG4iLCBjbWQpOworCWZwcmludGYoc3RkZXJyLCAiWW91IGNhbiByZXRyaWV2ZSB0aGUgbWFzayBvZiBhbiBleGlzdGluZyB0YXNrOlxuIik7CisJZnByaW50ZihzdGRlcnIsICIgICVzIC1wIDcwMFxuIiwgY21kKTsKKwlmcHJpbnRmKHN0ZGVyciwgIk9yIHNldCBpdDpcbiIpOworCWZwcmludGYoc3RkZXJyLCAiICAlcyAtcCAwMyA3MDBcbiIsIGNtZCk7CisJZnByaW50ZihzdGRlcnIsICJMaXN0IGZvcm1hdCB1c2VzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QgaW5zdGVhZCJcCisJCQkiIG9mIGEgbWFzazpcbiIpOworCWZwcmludGYoc3RkZXJyLCAiICAlcyAtcGMgMCwzLDctMTEgNzAwXG4iLCBjbWQpOworCWZwcmludGYoc3RkZXJyLCAiUmFuZ2VzIGluIGxpc3QgZm9ybWF0IGNhbiB0YWtlIGEgc3RyaWRlIGFyZ3VtZW50OlxuIik7CisJZnByaW50ZihzdGRlcnIsICIgIGUuZy4gMC0zMToyIGlzIGVxdWl2YWxlbnQgdG8gbWFzayAweDU1NTU1NTU1XG5cbiIpOworfQorCitzdGF0aWMgaW5saW5lIGludCB2YWxfdG9fY2hhcihpbnQgdikKK3sKKwlpZiAodiA+PSAwICYmIHYgPCAxMCkKKwkJcmV0dXJuICcwJyArIHY7CisJZWxzZSBpZiAodiA+PSAxMCAmJiB2IDwgMTYpCisJCXJldHVybiAoJ2EnIC0gMTApICsgdjsKKwllbHNlIAorCQlyZXR1cm4gLTE7Cit9CisKKy8qCisgKiBUaGUgZm9sbG93aW5nIGJpdG1hc2sgZGVjbGFyYXRpb25zLCBiaXRtYXNrXyooKSByb3V0aW5lcywgYW5kIGFzc29jaWF0ZWQKKyAqIF9zZXRiaXQoKSBhbmQgX2dldGJpdCgpIHJvdXRpbmVzIGFyZToKKyAqIENvcHlyaWdodCAoYykgMjAwNCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuIChTR0kpIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBTR0kgcHVibGlzaGVzIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHYyLAorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKyNkZWZpbmUgaG93bWFueSh4LHkpICgoKHgpKygoeSktMSkpLyh5KSkKKyNkZWZpbmUgYml0c3BlcmxvbmcgKDggKiBzaXplb2YodW5zaWduZWQgbG9uZykpCisjZGVmaW5lIGxvbmdzcGVyYml0cyhuKSBob3dtYW55KG4sIGJpdHNwZXJsb25nKQorI2RlZmluZSBieXRlc3BlcmJpdHMoeCkgKCh4KzcpLzgpCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgX2dldGJpdChjb25zdCBzdHJ1Y3QgYml0bWFzayAqYm1wLCB1bnNpZ25lZCBpbnQgbikKK3sKKwlpZiAobiA8IGJtcC0+c2l6ZSkKKwkJcmV0dXJuIChibXAtPm1hc2twW24vYml0c3BlcmxvbmddID4+IChuICUgYml0c3BlcmxvbmcpKSAmIDE7CisJZWxzZQorCQlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX3NldGJpdChzdHJ1Y3QgYml0bWFzayAqYm1wLCB1bnNpZ25lZCBpbnQgbiwgdW5zaWduZWQgaW50IHYpCit7CisJaWYgKG4gPCBibXAtPnNpemUpIHsKKwkJaWYgKHYpCisJCQlibXAtPm1hc2twW24vYml0c3BlcmxvbmddIHw9IDFVTCA8PCAobiAlIGJpdHNwZXJsb25nKTsKKwkJZWxzZQorCQkJYm1wLT5tYXNrcFtuL2JpdHNwZXJsb25nXSAmPSB+KDFVTCA8PCAobiAlIGJpdHNwZXJsb25nKSk7CisJfQorfQorCitpbnQgYml0bWFza19pc2JpdHNldChjb25zdCBzdHJ1Y3QgYml0bWFzayAqYm1wLCB1bnNpZ25lZCBpbnQgaSkKK3sKKwlyZXR1cm4gX2dldGJpdChibXAsIGkpOworfQorCitzdHJ1Y3QgYml0bWFzayAqYml0bWFza19jbGVhcmFsbChzdHJ1Y3QgYml0bWFzayAqYm1wKQoreworCXVuc2lnbmVkIGludCBpOworCWZvciAoaSA9IDA7IGkgPCBibXAtPnNpemU7IGkrKykKKwkJX3NldGJpdChibXAsIGksIDApOworCXJldHVybiBibXA7Cit9CisKK3N0cnVjdCBiaXRtYXNrICpiaXRtYXNrX3NldGJpdChzdHJ1Y3QgYml0bWFzayAqYm1wLCB1bnNpZ25lZCBpbnQgaSkKK3sKKwlfc2V0Yml0KGJtcCwgaSwgMSk7CisJcmV0dXJuIGJtcDsKK30KKwordW5zaWduZWQgaW50IGJpdG1hc2tfbmJ5dGVzKHN0cnVjdCBiaXRtYXNrICpibXApCit7CisJcmV0dXJuIGxvbmdzcGVyYml0cyhibXAtPnNpemUpICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOworfQorCitzdGF0aWMgY2hhciAqIGNwdXNldF90b19zdHIoc3RydWN0IGJpdG1hc2sgKm1hc2ssIGNoYXIgKnN0cikKK3sKKwlpbnQgYmFzZTsKKwljaGFyICpwdHIgPSBzdHI7CisJY2hhciAqcmV0ID0gMDsKKworCWZvciAoYmFzZSA9IG1hc2stPnNpemUgLSA0OyBiYXNlID49IDA7IGJhc2UgLT0gNCkgeworCQljaGFyIHZhbCA9IDA7CisJCWlmIChiaXRtYXNrX2lzYml0c2V0KG1hc2ssIGJhc2UpKQorCQkJdmFsIHw9IDE7CisJCWlmIChiaXRtYXNrX2lzYml0c2V0KG1hc2ssIGJhc2UgKyAxKSkKKwkJCXZhbCB8PSAyOworCQlpZiAoYml0bWFza19pc2JpdHNldChtYXNrLCBiYXNlICsgMikpCisJCQl2YWwgfD0gNDsKKwkJaWYgKGJpdG1hc2tfaXNiaXRzZXQobWFzaywgYmFzZSArIDMpKQorCQkJdmFsIHw9IDg7CisJCWlmICghcmV0ICYmIHZhbCkKKwkJCXJldCA9IHB0cjsKKwkJKnB0cisrID0gdmFsX3RvX2NoYXIodmFsKTsKKwl9CisJKnB0ciA9IDA7CisJcmV0dXJuIHJldCA/IHJldCA6IHB0ciAtIDE7Cit9CisKK3N0cnVjdCBiaXRtYXNrICpiaXRtYXNrX2FsbG9jKHVuc2lnbmVkIGludCBuKQoreworCXN0cnVjdCBiaXRtYXNrICpibXA7CisKKwlibXAgPSBtYWxsb2Moc2l6ZW9mKCpibXApKTsKKwlpZiAoIWJtcCkKKwkJcmV0dXJuIDA7CisJYm1wLT5zaXplID0gbjsKKwlibXAtPm1hc2twID0gY2FsbG9jKGxvbmdzcGVyYml0cyhuKSwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKTsKKwlpZiAoIWJtcC0+bWFza3ApIHsKKwkJZnJlZShibXApOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIGJtcDsKK30KKworc3RhdGljIGNoYXIgKiBjcHVzZXRfdG9fY3N0cihzdHJ1Y3QgYml0bWFzayAqbWFzaywgY2hhciAqc3RyKQoreworCWludCBpOworCWNoYXIgKnB0ciA9IHN0cjsKKwlpbnQgZW50cnlfbWFkZSA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWFzay0+c2l6ZTsgaSsrKSB7CisJCWlmIChiaXRtYXNrX2lzYml0c2V0KG1hc2ssIGkpKSB7CisJCQlpbnQgajsKKwkJCWludCBydW4gPSAwOworCQkJZW50cnlfbWFkZSA9IDE7CisJCQlmb3IgKGogPSBpICsgMTsgaiA8IG1hc2stPnNpemU7IGorKykgeworCQkJCWlmIChiaXRtYXNrX2lzYml0c2V0KG1hc2ssIGopKQorCQkJCQlydW4rKzsKKwkJCQllbHNlCisJCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKCFydW4pCisJCQkJc3ByaW50ZihwdHIsICIlZCwiLCBpKTsKKwkJCWVsc2UgaWYgKHJ1biA9PSAxKSB7CisJCQkJc3ByaW50ZihwdHIsICIlZCwlZCwiLCBpLCBpICsgMSk7CisJCQkJaSsrOworCQkJfSBlbHNlIHsKKwkJCQlzcHJpbnRmKHB0ciwgIiVkLSVkLCIsIGksIGkgKyBydW4pOworCQkJCWkgKz0gcnVuOworCQkJfQorCQkJd2hpbGUgKCpwdHIgIT0gMCkKKwkJCQlwdHIrKzsKKwkJfQorCX0KKwlwdHIgLT0gZW50cnlfbWFkZTsKKwkqcHRyID0gMDsKKworCXJldHVybiBzdHI7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGNoYXJfdG9fdmFsKGludCBjKQoreworCWludCBjbDsKKworCWNsID0gdG9sb3dlcihjKTsKKwlpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisJCXJldHVybiBjIC0gJzAnOworCWVsc2UgaWYgKGNsID49ICdhJyAmJiBjbCA8PSAnZicpCisJCXJldHVybiBjbCArICgxMCAtICdhJyk7CisJZWxzZQorCQlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQgc3RyX3RvX2NwdXNldChzdHJ1Y3QgYml0bWFzayAqbWFzaywgY29uc3QgY2hhciogc3RyKQoreworCWludCBsZW4gPSBzdHJsZW4oc3RyKTsKKwljb25zdCBjaGFyICpwdHIgPSBzdHIgKyBsZW4gLSAxOworCWludCBiYXNlID0gMDsKKworCS8qIHNraXAgMHgsIGl0J3MgYWxsIGhleCBhbnl3YXkgKi8KKwlpZiAobGVuID4gMSAmJiAhbWVtY21wKHN0ciwgIjB4IiwgMkwpKQorCQlzdHIgKz0gMjsKKworCWJpdG1hc2tfY2xlYXJhbGwobWFzayk7CisJd2hpbGUgKHB0ciA+PSBzdHIpIHsKKwkJY2hhciB2YWwgPSBjaGFyX3RvX3ZhbCgqcHRyKTsKKwkJaWYgKHZhbCA9PSAoY2hhcikgLTEpCisJCQlyZXR1cm4gLTE7CisJCWlmICh2YWwgJiAxKQorCQkJYml0bWFza19zZXRiaXQobWFzaywgYmFzZSk7CisJCWlmICh2YWwgJiAyKQorCQkJYml0bWFza19zZXRiaXQobWFzaywgYmFzZSArIDEpOworCQlpZiAodmFsICYgNCkKKwkJCWJpdG1hc2tfc2V0Yml0KG1hc2ssIGJhc2UgKyAyKTsKKwkJaWYgKHZhbCAmIDgpCisJCQliaXRtYXNrX3NldGJpdChtYXNrLCBiYXNlICsgMyk7CisJCWxlbi0tOworCQlwdHItLTsKKwkJYmFzZSArPSA0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqbmV4dHRva2VuKGNvbnN0IGNoYXIgKnEsICBpbnQgc2VwKQoreworCWlmIChxKQorCQlxID0gc3RyY2hyKHEsIHNlcCk7CisJaWYgKHEpCisJCXErKzsKKwlyZXR1cm4gcTsKK30KKworc3RhdGljIGludCBjc3RyX3RvX2NwdXNldChzdHJ1Y3QgYml0bWFzayAqbWFzaywgY29uc3QgY2hhciogc3RyKQoreworCWNvbnN0IGNoYXIgKnAsICpxOworCXEgPSBzdHI7CisJYml0bWFza19jbGVhcmFsbChtYXNrKTsKKworCXdoaWxlIChwID0gcSwgcSA9IG5leHR0b2tlbihxLCAnLCcpLCBwKSB7CisJCXVuc2lnbmVkIGludCBhOwkvKiBiZWdpbm5pbmcgb2YgcmFuZ2UgKi8KKwkJdW5zaWduZWQgaW50IGI7CS8qIGVuZCBvZiByYW5nZSAqLworCQl1bnNpZ25lZCBpbnQgczsJLyogc3RyaWRlICovCisJCWNvbnN0IGNoYXIgKmMxLCAqYzI7CisKKwkJaWYgKHNzY2FuZihwLCAiJXUiLCAmYSkgPCAxKQorCQkJcmV0dXJuIDE7CisJCWIgPSBhOworCQlzID0gMTsKKworCQljMSA9IG5leHR0b2tlbihwLCAnLScpOworCQljMiA9IG5leHR0b2tlbihwLCAnLCcpOworCQlpZiAoYzEgIT0gTlVMTCAmJiAoYzIgPT0gTlVMTCB8fCBjMSA8IGMyKSkgeworCQkJaWYgKHNzY2FuZihjMSwgIiV1IiwgJmIpIDwgMSkKKwkJCQlyZXR1cm4gMTsKKwkJCWMxID0gbmV4dHRva2VuKGMxLCAnOicpOworCQkJaWYgKGMxICE9IE5VTEwgJiYgKGMyID09IE5VTEwgfHwgYzEgPCBjMikpCisJCQkJaWYgKHNzY2FuZihjMSwgIiV1IiwgJnMpIDwgMSkgeworCQkJCQlyZXR1cm4gMTsKKwkJCX0KKwkJfQorCisJCWlmICghKGEgPD0gYikpCisJCQlyZXR1cm4gMTsKKwkJd2hpbGUgKGEgPD0gYikgeworCQkJYml0bWFza19zZXRiaXQobWFzaywgYSk7CisJCQlhICs9IHM7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIE51bWJlciBvZiBiaXRzIGluIGEgQ1BVIGJpdG1hc2sgb24gY3VycmVudCBzeXN0ZW0KKyAqLworc3RhdGljIGludAorbWF4X251bWJlcl9vZl9jcHVzKHZvaWQpCit7CisJaW50IG47CisJaW50IGNwdXMgPSAyMDQ4OworCisJZm9yICg7OykgeworCQl1bnNpZ25lZCBsb25nIGJ1ZmZlcltsb25nc3BlcmJpdHMoY3B1cyldOworCQltZW1zZXQoYnVmZmVyLCAwLCBzaXplb2YoYnVmZmVyKSk7CisJCS8qIHRoZSBsaWJyYXJ5IHZlcnNpb24gZG9lcyBub3QgcmV0dXJuIHNpemUgb2YgY3B1bWFza190ICovCisJCW4gPSBzeXNjYWxsKFNZU19zY2hlZF9nZXRhZmZpbml0eSwgMCwgYnl0ZXNwZXJiaXRzKGNwdXMpLAorCQkJCQkJCQkmYnVmZmVyKTsKKwkJaWYgKG4gPCAwICYmIGVycm5vID09IEVJTlZBTCAmJiBjcHVzIDwgMTAyNCoxMDI0KSB7CisJCQljcHVzICo9IDI7CisJCQljb250aW51ZTsKKwkJfQorCQlyZXR1cm4gbio4OworCX0KKwlmcHJpbnRmIChzdGRlcnIsICJjYW5ub3QgZGV0ZXJtaW5lIE5SX0NQVVM7IGFib3J0aW5nIik7CisJZXhpdCgxKTsKKwlyZXR1cm4gMDsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlzdHJ1Y3QgYml0bWFzayAqbmV3X21hc2ssICpjdXJfbWFzazsKKwlwaWRfdCBwaWQgPSAwOworCWludCBvcHQsIGVycjsKKwljaGFyICptc3RyOworCWNoYXIgKmNzdHI7CisJaW50IGNfb3B0ID0gMDsKKyAgICAgICAgdW5zaWduZWQgaW50IGNwdXNfY29uZmlndXJlZDsKKwlpbnQgbmV3X21hc2tfYnl0ZV9zaXplLCBjdXJfbWFza19ieXRlX3NpemU7CisKKwlzdHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW10gPSB7CisJCXsgInBpZCIsCTAsIE5VTEwsICdwJyB9LAorCQl7ICJjcHUtbGlzdCIsCTAsIE5VTEwsICdjJyB9LAorCQl7ICJoZWxwIiwJMCwgTlVMTCwgJ2gnIH0sCisJCXsgInZlcnNpb24iLAkwLCBOVUxMLCAnVicgfSwKKwkJeyBOVUxMLAkJMCwgTlVMTCwgMCB9CisJfTsKKworCXdoaWxlICgob3B0ID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIitwY2hWIiwgbG9uZ29wdHMsIE5VTEwpKSAhPSAtMSkgeworCQlpbnQgcmV0ID0gMTsKKworCQlzd2l0Y2ggKG9wdCkgeworCQljYXNlICdwJzoKKwkJCXBpZCA9IGF0b2koYXJndlthcmdjIC0gMV0pOworCQkJYnJlYWs7CisJCWNhc2UgJ2MnOgorCQkJY19vcHQgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ1YnOgorCQkJcHJpbnRmKCJ0YXNrc2V0ICglcylcbiIsIFBBQ0tBR0VfU1RSSU5HKTsKKwkJCXJldHVybiAwOworCQljYXNlICdoJzoKKwkJCXJldCA9IDA7CisJCWRlZmF1bHQ6CisJCQlzaG93X3VzYWdlKGFyZ3ZbMF0pOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCWlmICgoIXBpZCAmJiBhcmdjIC0gb3B0aW5kIDwgMikKKwkJCXx8IChwaWQgJiYgKGFyZ2MgLSBvcHRpbmQgPCAxIHx8IGFyZ2MgLSBvcHRpbmQgPiAyKSkpIHsKKwkJc2hvd191c2FnZShhcmd2WzBdKTsKKwkJcmV0dXJuIDE7CisJfQorCisJY3B1c19jb25maWd1cmVkID0gbWF4X251bWJlcl9vZl9jcHVzKCk7CisKKwkvKgorCSAqIGN1cl9tYXNrIGlzIGFsd2F5cyB1c2VkIGZvciB0aGUgc2NoZWRfZ2V0YWZmaW5pdHkgY2FsbAorCSAqIE9uIHRoZSBzY2hlZF9nZXRhZmZpbml0eSB0aGUga2VybmVsIGRlbWFuZHMgYSB1c2VyIG1hc2sgb2YKKwkgKiBhdCBsZWFzdCB0aGUgc2l6ZSBvZiBpdHMgb3duIGNwdW1hc2tfdC4KKwkgKi8KKwljdXJfbWFzayA9IGJpdG1hc2tfYWxsb2MoY3B1c19jb25maWd1cmVkKTsKKwlpZiAoIWN1cl9tYXNrKSB7CisJCWZwcmludGYgKHN0ZGVyciwgImJpdG1hc2tfYWxsb2MgZmFpbGVkXG4iKTsKKwkJZXhpdCgxKTsKKwl9CisJY3VyX21hc2tfYnl0ZV9zaXplID0gYml0bWFza19uYnl0ZXMoY3VyX21hc2spOworCW1zdHIgPSBtYWxsb2MoMSArIGN1cl9tYXNrLT5zaXplIC8gNCk7CisJY3N0ciA9IG1hbGxvYyg3ICogY3VyX21hc2stPnNpemUpOworCisJLyoKKwkgKiBuZXdfbWFzayBpcyBhbHdheXMgdXNlZCBmb3IgdGhlIHNjaGVkX3NldGFmZmluaXR5IGNhbGwKKwkgKiBPbiB0aGUgc2NoZWRfc2V0YWZmaW5pdHkgdGhlIGtlcm5lbCB3aWxsIHplcm8tZmlsbCBpdHMKKwkgKiBjcHVtYXNrX3QgaWYgdGhlIHVzZXIncyBtYXNrIGlzIHNob3J0ZXIuCisJICovCisJbmV3X21hc2sgPSBiaXRtYXNrX2FsbG9jKGNwdXNfY29uZmlndXJlZCk7CisJaWYgKCFuZXdfbWFzaykgeworCQlmcHJpbnRmIChzdGRlcnIsICJiaXRtYXNrX2FsbG9jIGZhaWxlZFxuIik7CisJCWV4aXQoMSk7CisJfQorCW5ld19tYXNrX2J5dGVfc2l6ZSA9IGJpdG1hc2tfbmJ5dGVzKG5ld19tYXNrKTsKKworCWlmIChwaWQpIHsKKwkJaWYgKHNjaGVkX2dldGFmZmluaXR5KHBpZCwgY3VyX21hc2tfYnl0ZV9zaXplLAorCQkJCQkoY3B1X3NldF90ICopY3VyX21hc2stPm1hc2twKSA8IDApIHsKKwkJCXBlcnJvcigic2NoZWRfZ2V0YWZmaW5pdHkiKTsKKwkJCWZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIGdldCBwaWQgJWQncyBhZmZpbml0eVxuIiwKKwkJCQlwaWQpOworCQkJcmV0dXJuIDE7CisJCX0KKwkJaWYgKGNfb3B0KQorCQkJcHJpbnRmKCJwaWQgJWQncyBjdXJyZW50IGFmZmluaXR5IGxpc3Q6ICVzXG4iLCBwaWQsCisJCQkJY3B1c2V0X3RvX2NzdHIoY3VyX21hc2ssIGNzdHIpKTsKKwkJZWxzZQorCQkJcHJpbnRmKCJwaWQgJWQncyBjdXJyZW50IGFmZmluaXR5IG1hc2s6ICVzXG4iLCBwaWQsCisJCQkJY3B1c2V0X3RvX3N0cihjdXJfbWFzaywgbXN0cikpOworCisJCWlmIChhcmdjIC0gb3B0aW5kID09IDEpCisJCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoY19vcHQpCisJCWVyciA9IGNzdHJfdG9fY3B1c2V0KG5ld19tYXNrLCBhcmd2W29wdGluZF0pOworCWVsc2UKKwkJZXJyID0gc3RyX3RvX2NwdXNldChuZXdfbWFzaywgYXJndltvcHRpbmRdKTsKKworCWlmIChlcnIpIHsKKwkJaWYgKGNfb3B0KQorCQkJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gcGFyc2UgQ1BVIGxpc3QgJXNcbiIsCisJCQkJYXJndltvcHRpbmRdKTsKKwkJZWxzZQorCQkJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gcGFyc2UgQ1BVIG1hc2sgJXNcbiIsCisJCQkJYXJndltvcHRpbmRdKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKHNjaGVkX3NldGFmZmluaXR5KHBpZCwgbmV3X21hc2tfYnl0ZV9zaXplLAorCQkJCQkoY3B1X3NldF90ICopIG5ld19tYXNrLT5tYXNrcCkgPCAwKSB7CisJCXBlcnJvcigic2NoZWRfc2V0YWZmaW5pdHkiKTsKKwkJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gc2V0IHBpZCAlZCdzIGFmZmluaXR5LlxuIiwgcGlkKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKHNjaGVkX2dldGFmZmluaXR5KHBpZCwgY3VyX21hc2tfYnl0ZV9zaXplLAorCQkJCQkoY3B1X3NldF90ICopY3VyX21hc2stPm1hc2twKSA8IDApIHsKKwkJcGVycm9yKCJzY2hlZF9nZXRhZmZpbml0eSIpOworCQlmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBnZXQgcGlkICVkJ3MgYWZmaW5pdHkuXG4iLCBwaWQpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAocGlkKSB7CisJCWlmIChjX29wdCkKKwkJCXByaW50ZigicGlkICVkJ3MgbmV3IGFmZmluaXR5IGxpc3Q6ICVzXG4iLCBwaWQsIAorCQkgICAgICAgICAgICAgICBjcHVzZXRfdG9fY3N0cihjdXJfbWFzaywgY3N0cikpOworCQllbHNlCisJCQlwcmludGYoInBpZCAlZCdzIG5ldyBhZmZpbml0eSBtYXNrOiAlc1xuIiwgcGlkLCAKKwkJICAgICAgICAgICAgICAgY3B1c2V0X3RvX3N0cihjdXJfbWFzaywgbXN0cikpOworCX0gZWxzZSB7CisJCWFyZ3YgKz0gb3B0aW5kICsgMTsKKwkJZXhlY3ZwKGFyZ3ZbMF0sIGFyZ3YpOworCQlwZXJyb3IoImV4ZWN2cCIpOworCQlmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBleGVjdXRlICVzXG4iLCBhcmd2WzBdKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvTWFrZWZpbGUuYW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U3NTc4OAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDkgQEAKK1NVQkRJUlMgPQorCitpZiBCVUlMRF9MSUJVVUlECitTVUJESVJTICs9IHV1aWQKK2VuZGlmCisKK2lmIEJVSUxEX0xJQkJMS0lECitTVUJESVJTICs9IGJsa2lkCitlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZWQyNjgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw2MDIgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitAQlVJTERfTElCVVVJRF9UUlVFQGFtX19hcHBlbmRfMSA9IHV1aWQKK0BCVUlMRF9MSUJCTEtJRF9UUlVFQGFtX19hcHBlbmRfMiA9IGJsa2lkCitzdWJkaXIgPSBzaGxpYnMKK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbgorQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQU1fVl9HRU4gPSAkKGFtX192X0dFTl8kKFYpKQorYW1fX3ZfR0VOXyA9ICQoYW1fX3ZfR0VOXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfR0VOXzAgPSBAZWNobyAiICBHRU4gICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorU09VUkNFUyA9CitESVNUX1NPVVJDRVMgPQorUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCitSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCitBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorCWRpc3RkaXIKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RfU1VCRElSUyA9IHV1aWQgYmxraWQKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCithbV9fcmVsYXRpdml6ZSA9IFwKKyAgZGlyMD1gcHdkYDsgXAorICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCisgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisgICAgICBlbHNlIFwKKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCisgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisgICAgICAgIGVsc2UgXAorICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKyAgICAgICAgZmk7IFwKKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKyAgICAgIGZpOyBcCisgICAgZmk7IFwKKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKyAgZG9uZTsgXAorICByZWxkaXI9IiQkZGlyMiIKK0FDTE9DQUwgPSBAQUNMT0NBTEAKK0FNVEFSID0gQEFNVEFSQAorQU1fREVGQVVMVF9WRVJCT1NJVFkgPSBAQU1fREVGQVVMVF9WRVJCT1NJVFlACitBUiA9IEBBUkAKK0FVVE9DT05GID0gQEFVVE9DT05GQAorQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorQVVUT01BS0UgPSBAQVVUT01BS0VACitBV0sgPSBAQVdLQAorQkxLSURfQ0ZMQUdTID0gQEJMS0lEX0NGTEFHU0AKK0JMS0lEX0xJQlMgPSBAQkxLSURfTElCU0AKK0JMS0lEX0xJQlNfU1RBVElDID0gQEJMS0lEX0xJQlNfU1RBVElDQAorQ0MgPSBAQ0NACitDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorQ0ZMQUdTID0gQENGTEFHU0AKK0NQUCA9IEBDUFBACitDUFBGTEFHUyA9IEBDUFBGTEFHU0AKK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACitERUZTID0gQERFRlNACitERVBESVIgPSBAREVQRElSQAorRFNZTVVUSUwgPSBARFNZTVVUSUxACitEVU1QQklOID0gQERVTVBCSU5ACitFQ0hPX0MgPSBARUNIT19DQAorRUNIT19OID0gQEVDSE9fTkAKK0VDSE9fVCA9IEBFQ0hPX1RACitFR1JFUCA9IEBFR1JFUEAKK0VYRUVYVCA9IEBFWEVFWFRACitGR1JFUCA9IEBGR1JFUEAKK0dNU0dGTVQgPSBAR01TR0ZNVEAKK0dSRVAgPSBAR1JFUEAKK0dUS0RPQ19DSEVDSyA9IEBHVEtET0NfQ0hFQ0tACitIVE1MX0RJUiA9IEBIVE1MX0RJUkAKK0lOU1RBTEwgPSBASU5TVEFMTEAKK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACitJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACitJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorSU5UTExJQlMgPSBASU5UTExJQlNACitMRCA9IEBMREAKK0xERkxBR1MgPSBATERGTEFHU0AKK0xJQkJMS0lEX0RBVEUgPSBATElCQkxLSURfREFURUAKK0xJQkJMS0lEX1ZFUlNJT04gPSBATElCQkxLSURfVkVSU0lPTkAKK0xJQkJMS0lEX1ZFUlNJT05fSU5GTyA9IEBMSUJCTEtJRF9WRVJTSU9OX0lORk9ACitMSUJJQ09OViA9IEBMSUJJQ09OVkAKK0xJQklOVEwgPSBATElCSU5UTEAKK0xJQk9CSlMgPSBATElCT0JKU0AKK0xJQlMgPSBATElCU0AKK0xJQlRPT0wgPSBATElCVE9PTEAKK0xJQlVVSURfVkVSU0lPTiA9IEBMSUJVVUlEX1ZFUlNJT05ACitMSUJVVUlEX1ZFUlNJT05fSU5GTyA9IEBMSUJVVUlEX1ZFUlNJT05fSU5GT0AKK0xJUE8gPSBATElQT0AKK0xOX1MgPSBATE5fU0AKK0xUTElCSUNPTlYgPSBATFRMSUJJQ09OVkAKK0xUTElCSU5UTCA9IEBMVExJQklOVExACitMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorTUFLRUlORk8gPSBATUFLRUlORk9ACitNS0RJUl9QID0gQE1LRElSX1BACitNS0lOU1RBTExESVJTID0gQE1LSU5TVEFMTERJUlNACitNU0dGTVQgPSBATVNHRk1UQAorTVNHTUVSR0UgPSBATVNHTUVSR0VACitOQ1VSU0VTX0xJQlMgPSBATkNVUlNFU19MSUJTQAorTk0gPSBATk1ACitOTUVESVQgPSBATk1FRElUQAorT0JKRFVNUCA9IEBPQkpEVU1QQAorT0JKRVhUID0gQE9CSkVYVEAKK09UT09MID0gQE9UT09MQAorT1RPT0w2NCA9IEBPVE9PTDY0QAorUEFDS0FHRSA9IEBQQUNLQUdFQAorUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACitQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACitQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorUEVSTCA9IEBQRVJMQAorUEtHX0NPTkZJRyA9IEBQS0dfQ09ORklHQAorUE9TVUIgPSBAUE9TVUJACitSQU5MSUIgPSBAUkFOTElCQAorU0VEID0gQFNFREAKK1NFTElOVVhfTElCUyA9IEBTRUxJTlVYX0xJQlNACitTRUxJTlVYX0xJQlNfU1RBVElDID0gQFNFTElOVVhfTElCU19TVEFUSUNACitTRVRfTUFLRSA9IEBTRVRfTUFLRUAKK1NIRUxMID0gQFNIRUxMQAorU1RSSVAgPSBAU1RSSVBACitTVUlEX0NGTEFHUyA9IEBTVUlEX0NGTEFHU0AKK1NVSURfTERGTEFHUyA9IEBTVUlEX0xERkxBR1NACitVU0VfTkxTID0gQFVTRV9OTFNACitVVUlEX0NGTEFHUyA9IEBVVUlEX0NGTEFHU0AKK1VVSURfTElCUyA9IEBVVUlEX0xJQlNACitWRVJTSU9OID0gQFZFUlNJT05ACitYR0VUVEVYVCA9IEBYR0VUVEVYVEAKK1hTTFRQUk9DID0gQFhTTFRQUk9DQAorYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACithY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACithbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACithbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorYW1fX3RhciA9IEBhbV9fdGFyQAorYW1fX3VudGFyID0gQGFtX191bnRhckAKK2JpbmRpciA9IEBiaW5kaXJACitidWlsZCA9IEBidWlsZEAKK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKK2J1aWxkX29zID0gQGJ1aWxkX29zQAorYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorZGF0YWRpciA9IEBkYXRhZGlyQAorZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACitkb2NkaXIgPSBAZG9jZGlyQAorZHZpZGlyID0gQGR2aWRpckAKK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAoraG9zdCA9IEBob3N0QAoraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAoraG9zdF9jcHUgPSBAaG9zdF9jcHVACitob3N0X29zID0gQGhvc3Rfb3NACitob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKK2h0bWxkaXIgPSBAaHRtbGRpckAKK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKK2luZm9kaXIgPSBAaW5mb2RpckAKK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKK2xpYmRpciA9IEBsaWJkaXJACitsaWJkaXJuYW1lID0gQGxpYmRpcm5hbWVACitsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACitsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorbHRfRUNITyA9IEBsdF9FQ0hPQAorbWFuZGlyID0gQG1hbmRpckAKK21rZGlyX3AgPSBAbWtkaXJfcEAKK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKK3BkZmRpciA9IEBwZGZkaXJACitwcmVmaXggPSBAcHJlZml4QAorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorcHNkaXIgPSBAcHNkaXJACitzYmluZGlyID0gQHNiaW5kaXJACitzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKK3NyY2RpciA9IEBzcmNkaXJACitzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACit0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAordG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAordG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKK3VzcmJpbl9leGVjZGlyID0gQHVzcmJpbl9leGVjZGlyQAordXNybGliX2V4ZWNkaXIgPSBAdXNybGliX2V4ZWNkaXJACit1c3JzYmluX2V4ZWNkaXIgPSBAdXNyc2Jpbl9leGVjZGlyQAorU1VCRElSUyA9ICQoYW1fX2FwcGVuZF8xKSAkKGFtX19hcHBlbmRfMikKK2FsbDogYWxsLXJlY3Vyc2l2ZQorCisuU1VGRklYRVM6CiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiBzaGxpYnMvTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduIHNobGlicy9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCisKKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCiskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKwkgIGNhc2UgJCRmIGluIFwKKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwlkb3Rfc2Vlbj1ubzsgXAorCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGRvdF9zZWVuPXllczsgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorCSAgZWxzZSBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisJICBmaTsgXAorCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKwlkb25lOyBcCisJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisJZmk7IHRlc3QgLXogIiQkZmFpbCIKKworJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisJICBjYXNlICQkZiBpbiBcCisJICAgICo9KiB8IC0tWyFrXSopOzsgXAorCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZG90X3NlZW49bm87IFwKKwljYXNlICIkQCIgaW4gXAorCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorCWVzYWM7IFwKKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlyZXY9IiQkcmV2IC4iOyBcCisJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisJICBlbHNlIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKwkgIGZpOyBcCisJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisJICB8fCBldmFsICQkZmFpbGNvbTsgXAorCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgordGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKwlkb25lCitjdGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisJZG9uZQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD0uOyBcCisJZWxzZSBcCisJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD07IFwKKwlmaTsgXAorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKwkgICAgICAgIGRpc3RkaXIpIFwKKwkgICAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorYWxsLWFtOiBNYWtlZmlsZQoraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQoraW5zdGFsbGRpcnMtYW06CitpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLXJlY3Vyc2l2ZQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tcmVjdXJzaXZlCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbToKKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjoKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtcmVjdXJzaXZlCisKK3BkZi1hbToKKworcHM6IHBzLXJlY3Vyc2l2ZQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOgorCisuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKworLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MWZhNzkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwxNiBAQAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCisKK1NVQkRJUlMgPSBzcmMgc2FtcGxlcworCitpZiBFTkFCTEVfR1RLX0RPQworU1VCRElSUyArPSBkb2NzCitlbmRpZgorCisjIHBrZy1jb25maWcgc3R1ZmYKK3BrZ2NvbmZpZ2RpciA9ICQodXNybGliX2V4ZWNkaXIpL3BrZ2NvbmZpZworcGtnY29uZmlnX0RBVEEgPSBibGtpZC5wYworCitkaXN0X21hbl9NQU5TID0gbGliYmxraWQuMworCitFWFRSQV9ESVNUID0gUkVBRE1FLmJsa2lkIGJsa2lkLnBjLmluIGxpYmJsa2lkLjMKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1OWYzYzEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw3NDcgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK0RJU1RfQ09NTU9OID0gJChkaXN0X21hbl9NQU5TKSAkKGRpc3Rfbm9pbnN0X0RBVEEpIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKwkkKHNyY2RpcikvYmxraWQucGMuaW4gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorQEVOQUJMRV9HVEtfRE9DX1RSVUVAYW1fX2FwcGVuZF8xID0gZG9jcworc3ViZGlyID0gc2hsaWJzL2Jsa2lkCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9nZXR0ZXh0Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2d0ay1kb2MubTQgJCh0b3Bfc3JjZGlyKS9tNC9pY29udi5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItbGQubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWItbGluay5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItcHJlZml4Lm00ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L25scy5tNCAkKHRvcF9zcmNkaXIpL200L3BvLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L3Byb2d0ZXN0Lm00ICQodG9wX3NyY2RpcikvbTQvdGxzLm00IFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvbWtpbnN0YWxsZGlycworQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9jb25maWcuaAorQ09ORklHX0NMRUFOX0ZJTEVTID0gYmxraWQucGMKK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CitBTV9WX0dFTiA9ICQoYW1fX3ZfR0VOXyQoVikpCithbV9fdl9HRU5fID0gJChhbV9fdl9HRU5fJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9HRU5fMCA9IEBlY2hvICIgIEdFTiAgICIgJEA7CitBTV9WX2F0ID0gJChhbV9fdl9hdF8kKFYpKQorYW1fX3ZfYXRfID0gJChhbV9fdl9hdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2F0XzAgPSBACitTT1VSQ0VTID0KK0RJU1RfU09VUkNFUyA9CitSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorICAgICopIGY9JCRwOzsgXAorICBlc2FjOworYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworYW1fX2luc3RhbGxfbWF4ID0gNDAKK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgorYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAorICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKK2FtX19iYXNlX2xpc3QgPSBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKK21hbjNkaXIgPSAkKG1hbmRpcikvbWFuMworYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKG1hbjNkaXIpIiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIKK05ST0ZGID0gbnJvZmYKK01BTlMgPSAkKGRpc3RfbWFuX01BTlMpCitEQVRBID0gJChkaXN0X25vaW5zdF9EQVRBKSAkKHBrZ2NvbmZpZ19EQVRBKQorUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKKwlkaXN0ZGlyCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNUX1NVQkRJUlMgPSBzcmMgc2FtcGxlcyBkb2NzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorYW1fX3JlbGF0aXZpemUgPSBcCisgIGRpcjA9YHB3ZGA7IFwKKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorICAgICAgZWxzZSBcCisgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorICAgICAgICBlbHNlIFwKKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisgICAgICAgIGZpOyBcCisgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisgICAgICBmaTsgXAorICAgIGZpOyBcCisgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisgIGRvbmU7IFwKKyAgcmVsZGlyPSIkJGRpcjIiCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitTVUJESVJTID0gc3JjIHNhbXBsZXMgJChhbV9fYXBwZW5kXzEpCisKKyMgcGtnLWNvbmZpZyBzdHVmZgorcGtnY29uZmlnZGlyID0gJCh1c3JsaWJfZXhlY2RpcikvcGtnY29uZmlnCitwa2djb25maWdfREFUQSA9IGJsa2lkLnBjCitkaXN0X21hbl9NQU5TID0gbGliYmxraWQuMworRVhUUkFfRElTVCA9IFJFQURNRS5ibGtpZCBibGtpZC5wYy5pbiBsaWJibGtpZC4zCithbGw6IGFsbC1yZWN1cnNpdmUKKworLlNVRkZJWEVTOgorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIHNobGlicy9ibGtpZC9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL2Jsa2lkL01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKK2Jsa2lkLnBjOiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2RpcikvYmxraWQucGMuaW4KKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworaW5zdGFsbC1tYW4zOiAkKGRpc3RfbWFuX01BTlMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChtYW4zZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobWFuM2RpcikiCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuM2RpcikiIHx8IGV4aXQgMDsgXAorCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4zW2Etel0qJCQvcCc7IFwKKwl9IHwgd2hpbGUgcmVhZCBwOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAnbjtzLC4qLywsO3A7aDtzLC4qXC4sLDtzLF5bXjNdWzAtOWEtel0qJCQsMyw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJyB8IFwKKwlzZWQgJ047TjtzLFxuLCAsZycgfCB7IFwKKwlsaXN0PTsgd2hpbGUgcmVhZCBmaWxlIGJhc2UgaW5zdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVuIGxpc3Q9IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuM2RpcikvJCRpbnN0JyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICIkJGZpbGUiICIkKERFU1RESVIpJChtYW4zZGlyKS8kJGluc3QiIHx8IGV4aXQgJCQ/OyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKG1hbjNkaXIpJyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjNkaXIpIiB8fCBleGl0ICQkPzsgfTsgXAorCWRvbmU7IH0KKwordW5pbnN0YWxsLW1hbjM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4zZGlyKSIgfHwgZXhpdCAwOyBcCisJZmlsZXM9YHsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4zW2Etel0qJCQvcCc7IFwKKwl9IHwgc2VkIC1lICdzLC4qLywsO2g7cywuKlwuLCw7cyxeW14zXVswLTlhLXpdKiQkLDMsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCdgOyBcCisJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICBlY2hvICIgKCBjZCAnJChERVNURElSKSQobWFuM2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCSAgY2QgIiQoREVTVERJUikkKG1hbjNkaXIpIiAmJiBybSAtZiAkJGZpbGVzOyB9CitpbnN0YWxsLXBrZ2NvbmZpZ0RBVEE6ICQocGtnY29uZmlnX0RBVEEpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChwa2djb25maWdkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIgorCUBsaXN0PSckKHBrZ2NvbmZpZ19EQVRBKSc7IHRlc3QgLW4gIiQocGtnY29uZmlnZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBcCisJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChwa2djb25maWdkaXIpJyI7IFwKKwkgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIiB8fCBleGl0ICQkPzsgXAorCWRvbmUKKwordW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEE6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyB0ZXN0IC1uICIkKHBrZ2NvbmZpZ2RpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnY29uZmlnZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiICYmIHJtIC1mICQkZmlsZXMKKworIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorCSAgY2FzZSAkJGYgaW4gXAorCSAgICAqPSogfCAtLVsha10qKTs7IFwKKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWRvdF9zZWVuPW5vOyBcCisJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKwkgICAgZG90X3NlZW49eWVzOyBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisJICBlbHNlIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKwkgIGZpOyBcCisJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisJICB8fCBldmFsICQkZmFpbGNvbTsgXAorCWRvbmU7IFwKKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorCiskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKwkgIGNhc2UgJCRmIGluIFwKKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwlkb3Rfc2Vlbj1ubzsgXAorCWNhc2UgIiRAIiBpbiBcCisJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisJZXNhYzsgXAorCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCXJldj0iJCRyZXYgLiI7IFwKKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKwkgIGVsc2UgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorCSAgZmk7IFwKKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCit0YWdzLXJlY3Vyc2l2ZToKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorCWRvbmUKK2N0YWdzLXJlY3Vyc2l2ZToKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKwlkb25lCisKK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJbWtpZCAtZklEICQkdW5pcXVlCit0YWdzOiBUQUdTCisKK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorCSAgZW1wdHlfZml4PS47IFwKKwllbHNlIFwKKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorCSAgZW1wdHlfZml4PTsgXAorCWZpOyBcCisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXNoaWZ0OyBcCisJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisJICBlbHNlIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICQkdW5pcXVlOyBcCisJICBmaTsgXAorCWZpCitjdGFnczogQ1RBR1MKK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKwkgICAgICQkdW5pcXVlCisKK0dUQUdTOgorCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisKK2Rpc3RjbGVhbi10YWdzOgorCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBsaXN0PSckKE1BTlMpJzsgaWYgdGVzdCAtbiAiJCRsaXN0IjsgdGhlbiBcCisJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICAgIGlmIHRlc3QgLWYgIiQkZCQkcCI7IHRoZW4gZWNobyAiJCRkJCRwIjsgZWxzZSA6OyBmaTsgZG9uZWA7IFwKKwkgIGlmIHRlc3QgLW4gIiQkbGlzdCIgJiYgXAorCSAgICBncmVwICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCA+L2Rldi9udWxsOyB0aGVuIFwKKwkgICAgZWNobyAiZXJyb3I6IGZvdW5kIG1hbiBwYWdlcyBjb250YWluaW5nIHRoZSBcYG1pc3NpbmcgaGVscDJtYW4nIHJlcGxhY2VtZW50IHRleHQ6IiA+JjI7IFwKKwkgICAgZ3JlcCAtbCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgfCBzZWQgJ3MvXi8gICAgICAgICAvJyA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHRvIGZpeCB0aGVtLCBpbnN0YWxsIGhlbHAybWFuLCByZW1vdmUgYW5kIHJlZ2VuZXJhdGUgdGhlIG1hbiBwYWdlczsiID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdHlwaWNhbGx5IFxgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB3aWxsIHJlbW92ZSB0aGVtIiA+JjI7IFwKKwkgICAgZXhpdCAxOyBcCisJICBlbHNlIDo7IGZpOyBcCisJZWxzZSA6OyBmaQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCisJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAorCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCisJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisJCWFtX19za2lwX21vZGVfZml4PTogXAorCSAgICAgICAgZGlzdGRpcikgXAorCSAgICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stcmVjdXJzaXZlCithbGwtYW06IE1ha2VmaWxlICQoTUFOUykgJChEQVRBKQoraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQoraW5zdGFsbGRpcnMtYW06CisJZm9yIGRpciBpbiAiJChERVNURElSKSQobWFuM2RpcikiICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQordW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktcmVjdXJzaXZlCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1yZWN1cnNpdmUKKworaHRtbC1hbToKKworaW5mbzogaW5mby1yZWN1cnNpdmUKKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbiBpbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjogaW5zdGFsbC1tYW4zCisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLXJlY3Vyc2l2ZQorCitwZGYtYW06CisKK3BzOiBwcy1yZWN1cnNpdmUKKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtcGtnY29uZmlnREFUQQorCit1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMworCisuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKworLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjMgaW5zdGFsbC1wZGYgXAorCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnY29uZmlnREFUQSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisJaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIFwKKwlwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorCXVuaW5zdGFsbC1tYW4gdW5pbnN0YWxsLW1hbjMgdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9SRUFETUUuYmxraWQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvUkVBRE1FLmJsa2lkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYTliZTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvUkVBRE1FLmJsa2lkCkBAIC0wLDAgKzEsNzggQEAKK2xpYmJsa2lkIC0gYSBsaWJyYXJ5IHRvIGhhbmRsZSBkZXZpY2UgaWRlbnRpZmljYXRpb24gYW5kIHRva2VuIGV4dHJhY3Rpb24KKworQmFzaWMgdXNhZ2UgaXMgYXMgZm9sbG93cyAtIHRoZXJlIGFyZSB0d28gbm9ybWFsIHVzYWdlIHBhdHRlcm5zOgorCitGb3IgY2FzZXMgd2hlcmUgYSBwcm9ncmFtIHdhbnRzIGluZm9ybWF0aW9uIGFib3V0IG11bHRpcGxlIGRldmljZXMsIG9yCitleHBlY3RzIHRvIGJlIGRvaW5nIG11bHRpcGxlIHRva2VuIHNlYXJjaGVzLCB0aGUgcHJvZ3JhbSBzaG91bGQKK2RpcmVjdGx5IGluaXRpYWxpemUgY2FjaGUgZmlsZSB2aWEgKHNlY29uZCBwYXJhbWV0ZXIgaXMgY2FjaGUKK2ZpbGVuYW1lLCBOVUxMID0gZGVmYXVsdCk6CisKKwlibGtpZF9jYWNoZSBjYWNoZSA9IE5VTEw7CisJaWYgKGJsa2lkX2dldF9jYWNoZSgmY2FjaGUsIE5VTEwpIDwgMCkKKwkJLyogZXJyb3IgcmVhZGluZyB0aGUgY2FjaGUgZmlsZSwgbm90IHJlYWxseSBmYXRhbCAqLworCitOb3RlIHRoYXQgaWYgbm8gY2FjaGUgZmlsZSBleGlzdHMsIGFuIGVtcHR5IGNhY2hlIHN0cnVjdCBpcyBzdGlsbAorYWxsb2NhdGVkLiAgVXNhZ2Ugb2YgbGliYmxraWQgZnVuY3Rpb25zIHdpbGwgdXNlIHRoZSBjYWNoZSB0byBhdm9pZAorbmVlZGxlc3MgZGV2aWNlIHNjYW5zLgorCitUaGUgbW9kZWwgb2YgdGhlIGJsa2lkIGNhY2hlIGlzIHRoYXQgZWFjaCBkZXZpY2UgaGFzIGEgbnVtYmVyIG9mCithdHRyaWJ1dGVzIHRoYXQgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBpdC4gIEN1cnJlbnRseSB0aGUgYXR0cmlidXRlcword2hpY2ggYXJlIHN1cHBvcnRlZCAoYW5kIHNldCkgYnkgYmxraWQgYXJlOgorCisJVFlQRQkJZmlsZXN5c3RlbSB0eXBlCisJVVVJRAkJZmlsZXN5c3RlbSB1dWlkCisJTEFCRUwJCWZpbGVzeXN0ZW0gbGFiZWwKKworCitIb3cgdG8gdXNlIGxpYmJsa2lkPyAgTm9ybWFsbHksIHlvdSBlaXRoZXIgd2FudCB0byBmaW5kIGEgZGV2aWNlIHdpdGgKK2Egc3BlY2lmaWMgTkFNRT12YWx1ZSB0b2tlbiwgb3IgeW91IHdhbnQgdG8gb3V0cHV0IHRva2VuKHMpIGZyb20gYQorZGV2aWNlLiAgVG8gZmluZCBhIGRldmljZSB0aGF0IG1hdGNoZXMgYSBmb2xsb3dpbmcgYXR0cmlidXRlLCB5b3UKK3NpbXBseSBjYWxsIHRoZSBibGtpZF9nZXRfZGV2bmFtZSgpIGZ1bmN0aW9uOgorCisJaWYgKChkZXZuYW1lID0gYmxraWRfZ2V0X2Rldm5hbWUoY2FjaGUsIGF0dHJpYnV0ZV9uYW1lLCB2YWx1ZSkpKSB7CisJCS8qIGRvIHNvbWV0aGluZyB3aXRoIGRldm5hbWUgKi8KKwkJc3RyaW5nX2ZyZWUoZGV2bmFtZSk7CisJfQorCitUaGUgY2FjaGUgcGFyYW1ldGVyIGlzIG9wdGlvbmFsOyBpZiBpdCBpcyBOVUxMLCB0aGVuIHRoZSBibGtpZCBsaWJyYXJ5Cit3aWxsIGxvYWQgdGhlIGRlZmF1bHQgYmxraWQudGFiIGNhY2hlIGZpbGUsIGFuZCB0aGVuIHJlbGVhc2UgdGhlIGNhY2hlCitiZWZvcmUgZnVuY3Rpb24gY2FsbCByZXR1cm5zLiAgVGhlIHJldHVybiB2YWx1ZSBpcyBhbiBhbGxvY2F0ZWQgc3RyaW5nCit3aGljaCBob2xkcyB0aGUgcmVzdWx0aW5nIGRldmljZSBuYW1lIChpZiBpdCBpcyBmb3VuZCkuICBJZiB0aGUgdmFsdWUKK2lzIE5VTEwsIHRoZW4gYXR0cmlidXRlX25hbWUgaXMgcGFyc2VkIGFzIGlmIGl0IHdlcmUKKyI8YXR0cmlidXRlX25hbWU+PTx2YWx1ZT4iOyBpZiBpdCBjYW5ub3QgYmUgc28gcGFyc2VkLCB0aGVuIHRoZQorb3JpZ2luYWwgYXR0cmlidXRlX25hbWUgaXMgcmV0dXJuZWQgaW4gYSBjb3BpZWQgYWxsb2NhdGVkIHN0cmluZy4KK1RoaXMgaXMgYSBjb252ZW5pZW5jZSB0byBhbGxvdyB1c2VyIHByb2dyYW1zIHRvIHdhbnQgdG8gdHJhbnNsYXRlIHVzZXIKK2lucHV0LCB3aGV0aGVyIGl0IGlzIG9mIHRoZSBmb3JtOiAiL2Rldi9oZGExIiwgIkxBQkVMPXJvb3QiLAorIlVVSUQ9MDgyRC0yNkUzIiwgYW5kIGdldCBiYWNrIGEgZGV2aWNlIG5hbWUgdGhhdCBpdCBjYW4gdXNlLgorCitBbHRlcm5hdGl2ZWx5LCBvZiBjb3Vyc2UsIHRoZSBwcm9ncmFtbWVyIGNhbiBwYXNzIGFuIGF0dHJpYnV0ZSBuYW1lIG9mCisiTEFCRUwiLCBhbmQgdmFsdWUgb2YgInJvb3QiLCBpZiB0aGF0IGlzIG1vcmUgY29udmVuaWVudC4KKworQW5vdGhlciBjb21tb24gdXNhZ2UgaXMgdG8gcmV0cmlldmUgdGhlIHZhbHVlIG9mIGEgc3BlY2lmaWMgYXR0cmlidXRlCitmb3IgYSBwYXJ0aWN1bGFyIGRldmljZS4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBmaWxlc3lzdGVtCit0eXBlLCBvciBsYWJlbCwgb3IgdXVpZCBmb3IgYSBwYXJ0aWN1bGFyIGRldmljZToKKworCWlmICgodmFsdWUgPSBibGtpZF9nZXRfdGFnX3ZhbHVlKGNhY2hlLCBhdHRyaWJ1dGVfbmFtZSwgZGV2bmFtZSkpKSB7CisJCS8qIGRvIHNvbWV0aGluZyB3aXRoIHZhbHVlICovCisJCXN0cmluZ19mcmVlKHZhbHVlKTsKKwl9CisKK0lmIGEgcHJvZ3JhbSBuZWVkcyB0byBjYWxsIG11bHRpcGxlIGJsa2lkIGZ1bmN0aW9ucywgdGhlbiBwYXNzaW5nIGluIGEKK2NhY2hlIHZhbHVlIG9mIE5VTEwgaXMgbm90IHJlY29tbWVuZGVkLCBzaW5jZSB0aGUgL2V0Yy9ibGtpZC50YWIgZmlsZQord2lsbCBiZSByZXBlYXRlZGx5IHBhcnNlZCBvdmVyIGFuZCBvdmVyIGFnYWluLCB3aXRoIG1lbW9yeSBhbGxvY2F0ZWQKK2FuZCBkZWFsbG9jYXRlZC4gIFRvIGluaXRpYWxpemUgdGhlIGJsa2lkIGNhY2hlLCBibGtpZF9nZXRfY2FjaGUoKQorZnVuY3Rpb24gaXMgdXNlZDoKKworCWlmIChibGtpZF9nZXRfY2FjaGUoJmNhY2hlLCBOVUxMKSA8IDApCisJCWdvdG8gZXJyb3V0OworCitUaGUgc2Vjb25kIHBhcmFtZXRlciBvZiBibGtpZF9nZXRfY2FjaGUgKGlmIG5vbi16ZXJvKSBpcyB0aGUgYWx0ZXJuYXRlCitmaWxlbmFtZSBvZiB0aGUgYmxraWQgY2FjaGUgZmlsZSAod2hlcmUgdGhlIGRlZmF1bHQgaXMKKy9ldGMvYmxraWQudGFiKS4gIE5vcm1hbGx5LCBwcm9ncmFtcyBzaG91bGQganVzdCBwYXNzIGluIE5VTEwuCisKK0lmIHlvdSBoYXZlIGNhbGxlZCBibGtpZF9nZXRfY2FjaGUoKSwgeW91IHNob3VsZCBjYWxsIGJsa2lkX3B1dF9jYWNoZSgpCit3aGVuIHlvdSBhcmUgZG9uZSB1c2luZyB0aGUgYmxraWQgbGlicmFyeSBmdW5jdGlvbnMuICBUaGlzIHdpbGwgc2F2ZSB0aGUKK2NhY2hlIHRvIHRoZSBibGtpZC50YWIgZmlsZSwgaWYgeW91IGhhdmUgd3JpdGUgYWNjZXNzIHRvIHRoZSBmaWxlLiAgSXQKK3dpbGwgYWxzbyBmcmVlIGFsbCBhc3NvY2lhdGVkIGRldmljZXMgYW5kIHRhZ3M6CisKKwlibGtpZF9wdXRfY2FjaGUoY2FjaGUpOwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL2Jsa2lkLnBjLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL2Jsa2lkLnBjLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZWM4YTkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvYmxraWQucGMuaW4KQEAgLTAsMCArMSwxMSBAQAorcHJlZml4PUBwcmVmaXhACitleGVjX3ByZWZpeD1AZXhlY19wcmVmaXhACitsaWJkaXI9QHVzcmxpYl9leGVjZGlyQAoraW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKKworTmFtZTogYmxraWQKK0Rlc2NyaXB0aW9uOiBCbG9jayBkZXZpY2UgaWQgbGlicmFyeQorVmVyc2lvbjogQExJQkJMS0lEX1ZFUlNJT05ACitSZXF1aXJlcy5wcml2YXRlOiB1dWlkCitDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfS9ibGtpZAorTGliczogLUwke2xpYmRpcn0gLWxibGtpZApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL2RvY3MvTWFrZWZpbGUuYW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWYzYjIzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL2RvY3MvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwxMDEgQEAKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorCisjIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9tYWtlIHRvIHByb2R1Y2UgTWFrZWZpbGUuaW4KKworIyBXZSByZXF1aXJlIGF1dG9tYWtlIDEuMTAgYXQgbGVhc3QuCitBVVRPTUFLRV9PUFRJT05TID0gMS4xMAorCisjIFRoaXMgaXMgYSBibGFuayBNYWtlZmlsZS5hbSBmb3IgdXNpbmcgZ3RrLWRvYy4KKyMgQ29weSB0aGlzIHRvIHlvdXIgcHJvamVjdCdzIEFQSSBkb2NzIGRpcmVjdG9yeSBhbmQgbW9kaWZ5IHRoZSB2YXJpYWJsZXMgdG8KKyMgc3VpdCB5b3VyIHByb2plY3QuIFNlZSB0aGUgR1RLKyBNYWtlZmlsZXMgaW4gZ3RrKy9kb2NzL3JlZmVyZW5jZSBmb3IgZXhhbXBsZXMKKyMgb2YgdXNpbmcgdGhlIHZhcmlvdXMgb3B0aW9ucy4KKworIyBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlLCBlLmcuICdnbGliJy4KK0RPQ19NT0RVTEU9bGliYmxraWQKKworIyBVbmNvbW1lbnQgZm9yIHZlcnNpb25lZCBkb2NzIGFuZCBzcGVjaWZ5IHRoZSB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUsIGUuZy4gJzInLgorI0RPQ19NT0RVTEVfVkVSU0lPTj0yCisKKyMgVGhlIHRvcC1sZXZlbCBTR01MIGZpbGUuIFlvdSBjYW4gY2hhbmdlIHRoaXMgaWYgeW91IHdhbnQgdG8uCitET0NfTUFJTl9TR01MX0ZJTEU9JChET0NfTU9EVUxFKS1kb2NzLnhtbAorCisjIFRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgc291cmNlIGNvZGUuIFJlbGF0aXZlIHRvICQoc3JjZGlyKS4KKyMgZ3RrLWRvYyB3aWxsIHNlYXJjaCBhbGwgLmMgJiAuaCBmaWxlcyBiZW5lYXRoIGhlcmUgZm9yIGlubGluZSBjb21tZW50cworIyBkb2N1bWVudGluZyB0aGUgZnVuY3Rpb25zIGFuZCBtYWNyb3MuCisjIGUuZy4gRE9DX1NPVVJDRV9ESVI9Li4vLi4vLi4vZ3RrCitET0NfU09VUkNFX0RJUj0uLi9zcmMKKworIyBFeHRyYSBvcHRpb25zIHRvIHBhc3MgdG8gZ3RrZG9jLXNjYW5nb2JqLiBOb3Qgbm9ybWFsbHkgbmVlZGVkLgorU0NBTkdPQkpfT1BUSU9OUz0KKworIyBFeHRyYSBvcHRpb25zIHRvIHN1cHBseSB0byBndGtkb2Mtc2Nhbi4KKyMgZS5nLiBTQ0FOX09QVElPTlM9LS1kZXByZWNhdGVkLWd1YXJkcz0iR1RLX0RJU0FCTEVfREVQUkVDQVRFRCIKK1NDQU5fT1BUSU9OUz0KKworIyBFeHRyYSBvcHRpb25zIHRvIHN1cHBseSB0byBndGtkb2MtbWtkYi4KKyMgZS5nLiBNS0RCX09QVElPTlM9LS1zZ21sLW1vZGUgLS1vdXRwdXQtZm9ybWF0PXhtbAorTUtEQl9PUFRJT05TPS0tc2dtbC1tb2RlIC0tb3V0cHV0LWZvcm1hdD14bWwgLS1uYW1lLXNwYWNlIGJsa2lkCisKKyMgRXh0cmEgb3B0aW9ucyB0byBzdXBwbHkgdG8gZ3RrZG9jLW1rdG1wbAorIyBlLmcuIE1LVE1QTF9PUFRJT05TPS0tb25seS1zZWN0aW9uLXRtcGwKK01LVE1QTF9PUFRJT05TPQorCisjIEV4dHJhIG9wdGlvbnMgdG8gc3VwcGx5IHRvIGd0a2RvYy1ta2h0bWwKK01LSFRNTF9PUFRJT05TPQorCisjIEV4dHJhIG9wdGlvbnMgdG8gc3VwcGx5IHRvIGd0a2RvYy1maXhyZWYuIE5vdCBub3JtYWxseSBuZWVkZWQuCisjIGUuZy4gRklYWFJFRl9PUFRJT05TPS0tZXh0cmEtZGlyPS4uL2dkay1waXhidWYvaHRtbCAtLWV4dHJhLWRpcj0uLi9nZGsvaHRtbAorRklYWFJFRl9PUFRJT05TPQorCisjIFVzZWQgZm9yIGRlcGVuZGVuY2llcy4gVGhlIGRvY3Mgd2lsbCBiZSByZWJ1aWx0IGlmIGFueSBvZiB0aGVzZSBjaGFuZ2UuCisjIGUuZy4gSEZJTEVfR0xPQj0kKHRvcF9zcmNkaXIpL2d0ay8qLmgKKyMgZS5nLiBDRklMRV9HTE9CPSQodG9wX3NyY2RpcikvZ3RrLyouYworSEZJTEVfR0xPQj0kKHVsX2xpYmJsa2lkX2luY2RpcikvYmxraWQuaAorQ0ZJTEVfR0xPQj0kKHVsX2xpYmJsa2lkX3NyY2RpcikvKi5jCisKKyMgRXh0cmEgaGVhZGVyIHRvIGluY2x1ZGUgd2hlbiBzY2FubmluZywgd2hpY2ggYXJlIG5vdCB1bmRlciBET0NfU09VUkNFX0RJUgorIyBlLmcuIEVYVFJBX0hGSUxFUz0kKHRvcF9zcmNkaXJ9L2NvbnRyaWIvZXh0cmEuaAorRVhUUkFfSEZJTEVTPQorCisjIEhlYWRlciBmaWxlcyB0byBpZ25vcmUgd2hlbiBzY2FubmluZy4gVXNlIGJhc2UgZmlsZSBuYW1lLCBubyBwYXRocworIyBlLmcuIElHTk9SRV9IRklMRVM9Z3RrZGVidWcuaCBndGtpbnRsLmgKK0lHTk9SRV9IRklMRVM9YmxraWRQLmggbGlzdC5oIHBhcnRpdGlvbnMuaCBzdXBlcmJsb2Nrcy5oIHRvcG9sb2d5LmggYWl4LmggZG9zLmgKKworIyBJbWFnZXMgdG8gY29weSBpbnRvIEhUTUwgZGlyZWN0b3J5LgorIyBlLmcuIEhUTUxfSU1BR0VTPSQodG9wX3NyY2RpcikvZ3RrL3N0b2NrLWljb25zL3N0b2NrX2Fib3V0XzI0LnBuZworSFRNTF9JTUFHRVM9CisKKyMgRXh0cmEgU0dNTCBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBieSAkKERPQ19NQUlOX1NHTUxfRklMRSkuCisjIGUuZy4gY29udGVudF9maWxlcz1ydW5uaW5nLnNnbWwgYnVpbGRpbmcuc2dtbCBjaGFuZ2VzLTIuMC5zZ21sCitjb250ZW50X2ZpbGVzID0gJChidWlsZGRpcikvdmVyc2lvbi54bWwgJChzcmNkaXIpL2xpYmJsa2lkLWNvbmZpZy54bWwKKworIyBTR01MIGZpbGVzIHdoZXJlIGd0ay1kb2MgYWJicmV2YXRpb25zICgjR3RrV2lkZ2V0KSBhcmUgZXhwYW5kZWQKKyMgVGhlc2UgZmlsZXMgbXVzdCBiZSBsaXN0ZWQgaGVyZSAqYW5kKiBpbiBjb250ZW50X2ZpbGVzCisjIGUuZy4gZXhwYW5kX2NvbnRlbnRfZmlsZXM9cnVubmluZy5zZ21sCitleHBhbmRfY29udGVudF9maWxlcz0KKworIyBDRkxBR1MgYW5kIExERkxBR1MgZm9yIGNvbXBpbGluZyBndGtkb2Mtc2NhbmdvYmogd2l0aCB5b3VyIGxpYnJhcnkuCisjIE9ubHkgbmVlZGVkIGlmIHlvdSBhcmUgdXNpbmcgZ3RrZG9jLXNjYW5nb2JqIHRvIGR5bmFtaWNhbGx5IHF1ZXJ5IHdpZGdldAorIyBzaWduYWxzIGFuZCBwcm9wZXJ0aWVzLgorIyBlLmcuIEdUS0RPQ19DRkxBR1M9LUkkKHRvcF9zcmNkaXIpIC1JJCh0b3BfYnVpbGRkaXIpICQoR1RLX0RFQlVHX0ZMQUdTKQorIyBlLmcuIEdUS0RPQ19MSUJTPSQodG9wX2J1aWxkZGlyKS9ndGsvJChndGt0YXJnZXRsaWIpCitHVEtET0NfQ0ZMQUdTPQorR1RLRE9DX0xJQlM9CisKKyMgVGhpcyBpbmNsdWRlcyB0aGUgc3RhbmRhcmQgZ3RrLWRvYyBtYWtlIHJ1bGVzLCBjb3BpZWQgYnkgZ3RrZG9jaXplLgoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9ndGstZG9jLm1ha2UKKworIyBPdGhlciBmaWxlcyB0byBkaXN0cmlidXRlCisjIGUuZy4gRVhUUkFfRElTVCArPSB2ZXJzaW9uLnhtbC5pbgorRVhUUkFfRElTVCArPSB2ZXJzaW9uLnhtbC5pbgorCisjIEZpbGVzIG5vdCB0byBkaXN0cmlidXRlCisjIGZvciAtLXJlYnVpbGQtdHlwZXMgaW4gJChTQ0FOX09QVElPTlMpLCBlLmcuICQoRE9DX01PRFVMRSkudHlwZXMKKyMgZm9yIC0tcmVidWlsZC1zZWN0aW9ucyBpbiAkKFNDQU5fT1BUSU9OUykgZS5nLiAkKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dAorI0RJU1RDTEVBTkZJTEVTICs9CisKKyMgQ29tbWVudCB0aGlzIG91dCBpZiB5b3Ugd2FudCB5b3VyIGRvY3Mtc3RhdHVzIHRlc3RlZCBkdXJpbmcgJ21ha2UgY2hlY2snCitpZiBFTkFCTEVfR1RLX0RPQworI1RFU1RTX0VOVklST05NRU5UID0gY2QgJChzcmNzcmMpCisjVEVTVFMgPSAkKEdUS0RPQ19DSEVDSykKK2VuZGlmCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9kb2NzL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzNmQ0NWEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDc0MiBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworIworIyBXQVJOSU5HOiB0aGlzIGlzIG5vdCBndGstZG9jLm1ha2UgZmlsZSBmcm9tIGd0ay1kb2MgcHJvamVjdC4gVGhpcworIyAgICAgICAgICBmaWxlIGhhcyBiZWVuIG1vZGlmaWVkIHRvIG1hdGNoIHdpdGggdXRpbC1saW51eC1uZyByZXF1aXJlbWVudHM6CisjCisjICAgICAgICAgICogaW5zdGFsbCBmaWxlcyB0byAkZGF0YWRpcgorIyAgICAgICAgICAqIGRvbid0IG1haW50YWluIGdlbmVyYXRlZCBmaWxlcyBpbiBnaXQgcmVwb3NpdG9yeQorIyAgICAgICAgICAqIGRvbid0IGRpc3RyaWJ1dGUgdGhlIGZpbmFsIGh0bWwgZmlsZXMKKyMgICAgICAgICAgKiBkb24ndCByZXF1aXJlIC0tZW5hYmxlLWd0ay1kb2MgZm9yICJtYWtlIGRpc3QiCisjICAgICAgICAgICogc3VwcG9ydCBvdXQtb2YtdHJlZSBidWlsZCAoJHNyY2RpciAhPSAkYnVpbGRkaXIpCisjCisjIC0tIGt6YWssIE5vdiAyMDA5CisjCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBFdmVyeXRoaW5nIGJlbG93IGhlcmUgaXMgZ2VuZXJpYyAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworVlBBVEggPSBAc3JjZGlyQAorcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACitwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorRElTVF9DT01NT04gPSAkKGRpc3Rfbm9pbnN0X0RBVEEpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS92ZXJzaW9uLnhtbC5pbiBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWcvZ3RrLWRvYy5tYWtlIFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCitzdWJkaXIgPSBzaGxpYnMvYmxraWQvZG9jcworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9IHZlcnNpb24ueG1sCitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQU1fVl9HRU4gPSAkKGFtX192X0dFTl8kKFYpKQorYW1fX3ZfR0VOXyA9ICQoYW1fX3ZfR0VOXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfR0VOXzAgPSBAZWNobyAiICBHRU4gICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorU09VUkNFUyA9CitESVNUX1NPVVJDRVMgPQorREFUQSA9ICQoZGlzdF9ub2luc3RfREFUQSkKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCisKKyMgV2UgcmVxdWlyZSBhdXRvbWFrZSAxLjEwIGF0IGxlYXN0LgorQVVUT01BS0VfT1BUSU9OUyA9IDEuMTAKKworIyBUaGlzIGlzIGEgYmxhbmsgTWFrZWZpbGUuYW0gZm9yIHVzaW5nIGd0ay1kb2MuCisjIENvcHkgdGhpcyB0byB5b3VyIHByb2plY3QncyBBUEkgZG9jcyBkaXJlY3RvcnkgYW5kIG1vZGlmeSB0aGUgdmFyaWFibGVzIHRvCisjIHN1aXQgeW91ciBwcm9qZWN0LiBTZWUgdGhlIEdUSysgTWFrZWZpbGVzIGluIGd0aysvZG9jcy9yZWZlcmVuY2UgZm9yIGV4YW1wbGVzCisjIG9mIHVzaW5nIHRoZSB2YXJpb3VzIG9wdGlvbnMuCisKKyMgVGhlIG5hbWUgb2YgdGhlIG1vZHVsZSwgZS5nLiAnZ2xpYicuCitET0NfTU9EVUxFID0gbGliYmxraWQKKworIyBVbmNvbW1lbnQgZm9yIHZlcnNpb25lZCBkb2NzIGFuZCBzcGVjaWZ5IHRoZSB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUsIGUuZy4gJzInLgorI0RPQ19NT0RVTEVfVkVSU0lPTj0yCisKKyMgVGhlIHRvcC1sZXZlbCBTR01MIGZpbGUuIFlvdSBjYW4gY2hhbmdlIHRoaXMgaWYgeW91IHdhbnQgdG8uCitET0NfTUFJTl9TR01MX0ZJTEUgPSAkKERPQ19NT0RVTEUpLWRvY3MueG1sCisKKyMgVGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBzb3VyY2UgY29kZS4gUmVsYXRpdmUgdG8gJChzcmNkaXIpLgorIyBndGstZG9jIHdpbGwgc2VhcmNoIGFsbCAuYyAmIC5oIGZpbGVzIGJlbmVhdGggaGVyZSBmb3IgaW5saW5lIGNvbW1lbnRzCisjIGRvY3VtZW50aW5nIHRoZSBmdW5jdGlvbnMgYW5kIG1hY3Jvcy4KKyMgZS5nLiBET0NfU09VUkNFX0RJUj0uLi8uLi8uLi9ndGsKK0RPQ19TT1VSQ0VfRElSID0gLi4vc3JjCisKKyMgRXh0cmEgb3B0aW9ucyB0byBwYXNzIHRvIGd0a2RvYy1zY2FuZ29iai4gTm90IG5vcm1hbGx5IG5lZWRlZC4KK1NDQU5HT0JKX09QVElPTlMgPSAKKworIyBFeHRyYSBvcHRpb25zIHRvIHN1cHBseSB0byBndGtkb2Mtc2Nhbi4KKyMgZS5nLiBTQ0FOX09QVElPTlM9LS1kZXByZWNhdGVkLWd1YXJkcz0iR1RLX0RJU0FCTEVfREVQUkVDQVRFRCIKK1NDQU5fT1BUSU9OUyA9IAorCisjIEV4dHJhIG9wdGlvbnMgdG8gc3VwcGx5IHRvIGd0a2RvYy1ta2RiLgorIyBlLmcuIE1LREJfT1BUSU9OUz0tLXNnbWwtbW9kZSAtLW91dHB1dC1mb3JtYXQ9eG1sCitNS0RCX09QVElPTlMgPSAtLXNnbWwtbW9kZSAtLW91dHB1dC1mb3JtYXQ9eG1sIC0tbmFtZS1zcGFjZSBibGtpZAorCisjIEV4dHJhIG9wdGlvbnMgdG8gc3VwcGx5IHRvIGd0a2RvYy1ta3RtcGwKKyMgZS5nLiBNS1RNUExfT1BUSU9OUz0tLW9ubHktc2VjdGlvbi10bXBsCitNS1RNUExfT1BUSU9OUyA9IAorCisjIEV4dHJhIG9wdGlvbnMgdG8gc3VwcGx5IHRvIGd0a2RvYy1ta2h0bWwKK01LSFRNTF9PUFRJT05TID0gCisKKyMgRXh0cmEgb3B0aW9ucyB0byBzdXBwbHkgdG8gZ3RrZG9jLWZpeHJlZi4gTm90IG5vcm1hbGx5IG5lZWRlZC4KKyMgZS5nLiBGSVhYUkVGX09QVElPTlM9LS1leHRyYS1kaXI9Li4vZ2RrLXBpeGJ1Zi9odG1sIC0tZXh0cmEtZGlyPS4uL2dkay9odG1sCitGSVhYUkVGX09QVElPTlMgPSAKKworIyBVc2VkIGZvciBkZXBlbmRlbmNpZXMuIFRoZSBkb2NzIHdpbGwgYmUgcmVidWlsdCBpZiBhbnkgb2YgdGhlc2UgY2hhbmdlLgorIyBlLmcuIEhGSUxFX0dMT0I9JCh0b3Bfc3JjZGlyKS9ndGsvKi5oCisjIGUuZy4gQ0ZJTEVfR0xPQj0kKHRvcF9zcmNkaXIpL2d0ay8qLmMKK0hGSUxFX0dMT0IgPSAkKHVsX2xpYmJsa2lkX2luY2RpcikvYmxraWQuaAorQ0ZJTEVfR0xPQiA9ICQodWxfbGliYmxraWRfc3JjZGlyKS8qLmMKKworIyBFeHRyYSBoZWFkZXIgdG8gaW5jbHVkZSB3aGVuIHNjYW5uaW5nLCB3aGljaCBhcmUgbm90IHVuZGVyIERPQ19TT1VSQ0VfRElSCisjIGUuZy4gRVhUUkFfSEZJTEVTPSQodG9wX3NyY2Rpcn0vY29udHJpYi9leHRyYS5oCitFWFRSQV9IRklMRVMgPSAKKworIyBIZWFkZXIgZmlsZXMgdG8gaWdub3JlIHdoZW4gc2Nhbm5pbmcuIFVzZSBiYXNlIGZpbGUgbmFtZSwgbm8gcGF0aHMKKyMgZS5nLiBJR05PUkVfSEZJTEVTPWd0a2RlYnVnLmggZ3RraW50bC5oCitJR05PUkVfSEZJTEVTID0gYmxraWRQLmggbGlzdC5oIHBhcnRpdGlvbnMuaCBzdXBlcmJsb2Nrcy5oIHRvcG9sb2d5LmggYWl4LmggZG9zLmgKKworIyBJbWFnZXMgdG8gY29weSBpbnRvIEhUTUwgZGlyZWN0b3J5LgorIyBlLmcuIEhUTUxfSU1BR0VTPSQodG9wX3NyY2RpcikvZ3RrL3N0b2NrLWljb25zL3N0b2NrX2Fib3V0XzI0LnBuZworSFRNTF9JTUFHRVMgPSAKKworIyBFeHRyYSBTR01MIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGJ5ICQoRE9DX01BSU5fU0dNTF9GSUxFKS4KKyMgZS5nLiBjb250ZW50X2ZpbGVzPXJ1bm5pbmcuc2dtbCBidWlsZGluZy5zZ21sIGNoYW5nZXMtMi4wLnNnbWwKK2NvbnRlbnRfZmlsZXMgPSAkKGJ1aWxkZGlyKS92ZXJzaW9uLnhtbCAkKHNyY2RpcikvbGliYmxraWQtY29uZmlnLnhtbAorCisjIFNHTUwgZmlsZXMgd2hlcmUgZ3RrLWRvYyBhYmJyZXZhdGlvbnMgKCNHdGtXaWRnZXQpIGFyZSBleHBhbmRlZAorIyBUaGVzZSBmaWxlcyBtdXN0IGJlIGxpc3RlZCBoZXJlICphbmQqIGluIGNvbnRlbnRfZmlsZXMKKyMgZS5nLiBleHBhbmRfY29udGVudF9maWxlcz1ydW5uaW5nLnNnbWwKK2V4cGFuZF9jb250ZW50X2ZpbGVzID0gCisKKyMgQ0ZMQUdTIGFuZCBMREZMQUdTIGZvciBjb21waWxpbmcgZ3RrZG9jLXNjYW5nb2JqIHdpdGggeW91ciBsaWJyYXJ5LgorIyBPbmx5IG5lZWRlZCBpZiB5b3UgYXJlIHVzaW5nIGd0a2RvYy1zY2FuZ29iaiB0byBkeW5hbWljYWxseSBxdWVyeSB3aWRnZXQKKyMgc2lnbmFscyBhbmQgcHJvcGVydGllcy4KKyMgZS5nLiBHVEtET0NfQ0ZMQUdTPS1JJCh0b3Bfc3JjZGlyKSAtSSQodG9wX2J1aWxkZGlyKSAkKEdUS19ERUJVR19GTEFHUykKKyMgZS5nLiBHVEtET0NfTElCUz0kKHRvcF9idWlsZGRpcikvZ3RrLyQoZ3RrdGFyZ2V0bGliKQorR1RLRE9DX0NGTEFHUyA9IAorR1RLRE9DX0xJQlMgPSAKK0BHVEtfRE9DX1VTRV9MSUJUT09MX0ZBTFNFQEdUS0RPQ19DQyA9ICQoQ0MpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0BHVEtfRE9DX1VTRV9MSUJUT09MX1RSVUVAR1RLRE9DX0NDID0gJChMSUJUT09MKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitAR1RLX0RPQ19VU0VfTElCVE9PTF9GQUxTRUBHVEtET0NfTEQgPSAkKENDKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgJChMREZMQUdTKQorQEdUS19ET0NfVVNFX0xJQlRPT0xfVFJVRUBHVEtET0NfTEQgPSAkKExJQlRPT0wpIC0tbW9kZT1saW5rICQoQ0MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSAkKExERkxBR1MpCitAR1RLX0RPQ19VU0VfTElCVE9PTF9GQUxTRUBHVEtET0NfUlVOID0gc2ggLWMKK0BHVEtfRE9DX1VTRV9MSUJUT09MX1RSVUVAR1RLRE9DX1JVTiA9ICQoTElCVE9PTCkgLS1tb2RlPWV4ZWN1dGUKKworIyBXZSBzZXQgR1BBVEggaGVyZTsgdGhpcyBnaXZlcyB1cyBzZW1hbnRpY3MgZm9yIEdOVSBtYWtlCisjIHdoaWNoIGFyZSBtb3JlIGxpa2Ugb3RoZXIgbWFrZSdzIFZQQVRILCB3aGVuIGl0IGNvbWVzIHRvCisjIHdoZXRoZXIgYSBzb3VyY2UgdGhhdCBpcyBhIHRhcmdldCBvZiBvbmUgcnVsZSBpcyB0aGVuCisjIHNlYXJjaGVkIGZvciBpbiBWUEFUSC9HUEFUSC4KKyMKK0dQQVRIID0gJChzcmNkaXIpCitUQVJHRVRfRElSID0gJChkb2NkaXIpLyQoRE9DX01PRFVMRSkKKworIyBUaGlzIGluY2x1ZGVzIHRoZSBzdGFuZGFyZCBndGstZG9jIG1ha2UgcnVsZXMsIGNvcGllZCBieSBndGtkb2NpemUuCisKKyMgT3RoZXIgZmlsZXMgdG8gZGlzdHJpYnV0ZQorIyBlLmcuIEVYVFJBX0RJU1QgKz0gdmVyc2lvbi54bWwuaW4KK0VYVFJBX0RJU1QgPSAkKGNvbnRlbnRfZmlsZXMpICQoSFRNTF9JTUFHRVMpICQoRE9DX01BSU5fU0dNTF9GSUxFKSBcCisJJChET0NfTU9EVUxFKS1zZWN0aW9ucy50eHQgdmVyc2lvbi54bWwuaW4KKyMJJChET0NfTU9EVUxFKS1vdmVycmlkZXMudHh0CitET0NfU1RBTVBTID0gc2Nhbi1idWlsZC5zdGFtcCB0bXBsLWJ1aWxkLnN0YW1wIHNnbWwtYnVpbGQuc3RhbXAgaHRtbC1idWlsZC5zdGFtcCBcCisJICAgJChzcmNkaXIpL3RtcGwuc3RhbXAgJChzcmNkaXIpL3NnbWwuc3RhbXAgJChzcmNkaXIpL2h0bWwuc3RhbXAKKworU0NBTk9CSl9GSUxFUyA9IFwKKwkkKERPQ19NT0RVTEUpLmFyZ3MgCSBcCisJJChET0NfTU9EVUxFKS5oaWVyYXJjaHkgIFwKKwkkKERPQ19NT0RVTEUpLmludGVyZmFjZXMgXAorCSQoRE9DX01PRFVMRSkucHJlcmVxdWlzaXRlcyBcCisJJChET0NfTU9EVUxFKS5zaWduYWxzCisKK1JFUE9SVF9GSUxFUyA9IFwKKwkkKERPQ19NT0RVTEUpLXVuZG9jdW1lbnRlZC50eHQgXAorCSQoRE9DX01PRFVMRSktdW5kZWNsYXJlZC50eHQgXAorCSQoRE9DX01PRFVMRSktdW51c2VkLnR4dAorCitDTEVBTkZJTEVTID0gJChTQ0FOT0JKX0ZJTEVTKSAkKFJFUE9SVF9GSUxFUykgJChET0NfU1RBTVBTKQorYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9jb25maWcvZ3RrLWRvYy5tYWtlICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiBzaGxpYnMvYmxraWQvZG9jcy9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL2Jsa2lkL2RvY3MvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgordmVyc2lvbi54bWw6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS92ZXJzaW9uLnhtbC5pbgorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRACisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCit0YWdzOiBUQUdTCitUQUdTOgorCitjdGFnczogQ1RBR1MKK0NUQUdTOgorCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLWFtCithbGwtYW06IE1ha2VmaWxlICQoREFUQSkgYWxsLWxvY2FsCitpbnN0YWxsZGlyczoKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENMRUFORklMRVMpIiB8fCBybSAtZiAkKENMRUFORklMRVMpCisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1hbQorCitjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLWxvY2FsIG1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1sb2NhbAorCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtZGF0YS1sb2NhbAorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbToKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1sb2NhbAorCisuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisKKy5QSE9OWTogYWxsIGFsbC1hbSBhbGwtbG9jYWwgY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisJY2xlYW4tbGlidG9vbCBjbGVhbi1sb2NhbCBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi1sb2NhbCBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZGF0YS1sb2NhbCBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorCXVuaW5zdGFsbC1sb2NhbAorCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworJCh1bF9saWJ1dWlkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGlidXVpZF9idWlsZGRpcikKKworQEVOQUJMRV9HVEtfRE9DX1RSVUVAYWxsLWxvY2FsOiBodG1sLWJ1aWxkLnN0YW1wCitARU5BQkxFX0dUS19ET0NfRkFMU0VAYWxsLWxvY2FsOgorCitkb2NzOiBodG1sLWJ1aWxkLnN0YW1wCisKKyQoUkVQT1JUX0ZJTEVTKTogc2dtbC1idWlsZC5zdGFtcAorCisjIyMjIHNjYW4gIyMjIworCitzY2FuLWJ1aWxkLnN0YW1wOiAkKEhGSUxFX0dMT0IpICQoQ0ZJTEVfR0xPQikgJChzcmNkaXIpLyQoRE9DX01PRFVMRSktKi50eHQgJChjb250ZW50X2ZpbGVzKQorCisJdGVzdCAtZiAkKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCB8fCBcCisJCWNwICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKGJ1aWxkZGlyKQorCisJQGVjaG8gJ2d0ay1kb2M6IFNjYW5uaW5nIGhlYWRlciBmaWxlcycKKwlndGtkb2Mtc2NhbiAtLW1vZHVsZT0kKERPQ19NT0RVTEUpIFwKKwkgICAgICAgICAgICAtLXNvdXJjZS1kaXI9JChzcmNkaXIpLyQoRE9DX1NPVVJDRV9ESVIpIFwKKwkgICAgICAgICAgICAtLXNvdXJjZS1kaXI9JChidWlsZGRpcikvJChET0NfU09VUkNFX0RJUikgXAorCSAgICAgICAgICAgIC0taWdub3JlLWhlYWRlcnM9IiQoSUdOT1JFX0hGSUxFUykiIFwKKwkgICAgICAgICAgICAtLW91dHB1dC1kaXI9JChidWlsZGRpcikgXAorCSAgICAgICAgICAgICQoU0NBTl9PUFRJT05TKSAkKEVYVFJBX0hGSUxFUykKKworCWlmIGdyZXAgLWwgJ14uLiokJCcgJChzcmNkaXIpLyQoRE9DX01PRFVMRSkudHlwZXMgPiAvZGV2L251bGwgMj4mMSA7IHRoZW4gXAorCSAgICBDQz0iJChHVEtET0NfQ0MpIiBMRD0iJChHVEtET0NfTEQpIiBSVU49IiQoR1RLRE9DX1JVTikiIFwKKwkgICAgQ0ZMQUdTPSIkKEdUS0RPQ19DRkxBR1MpICQoQ0ZMQUdTKSIgTERGTEFHUz0iJChHVEtET0NfTElCUykgXAorICAgICAgICAgICAgJChMREZMQUdTKSIgZ3RrZG9jLXNjYW5nb2JqICQoU0NBTkdPQkpfT1BUSU9OUykgXAorCQkJLS1tb2R1bGU9JChET0NfTU9EVUxFKSAtLW91dHB1dC1kaXI9JChidWlsZGRpcikgOyBcCisJZWxzZSBcCisJICAgIGZvciBpIGluICQoU0NBTk9CSl9GSUxFUykgOyBkbyBcCisgICAgICAgICAgICAgICB0ZXN0IC1mICQkaSB8fCB0b3VjaCAkJGkgOyBcCisJICAgIGRvbmUgXAorCWZpCisJdG91Y2ggc2Nhbi1idWlsZC5zdGFtcAorCiskKERPQ19NT0RVTEUpLWRlY2wudHh0ICQoU0NBTk9CSl9GSUxFUykgJChzcmNkaXIpLyQoRE9DX01PRFVMRSktc2VjdGlvbnMudHh0ICQoRE9DX01PRFVMRSktb3ZlcnJpZGVzLnR4dDogc2Nhbi1idWlsZC5zdGFtcAorCUB0cnVlCisKKyMjIyMgdGVtcGxhdGVzICMjIyMKKwordG1wbC1idWlsZC5zdGFtcDogJChET0NfTU9EVUxFKS1kZWNsLnR4dCAkKFNDQU5PQkpfRklMRVMpICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKERPQ19NT0RVTEUpLW92ZXJyaWRlcy50eHQKKwlAZWNobyAnZ3RrLWRvYzogUmVidWlsZGluZyB0ZW1wbGF0ZSBmaWxlcycKKwl0ZXN0IC16ICQoYnVpbGRkaXIpL3RtcGwgfHwgJChNS0RJUl9QKSAkKGJ1aWxkZGlyKS90bXBsCisJZ3RrZG9jLW1rdG1wbCAtLW1vZHVsZT0kKERPQ19NT0RVTEUpIFwKKwkgICAgICAgICAgICAgICQoTUtUTVBMX09QVElPTlMpCisJdG91Y2ggdG1wbC1idWlsZC5zdGFtcAorCit0bXBsLnN0YW1wOiB0bXBsLWJ1aWxkLnN0YW1wCisJQHRydWUKKwordG1wbC8qLnNnbWw6CisJQHRydWUKKworIyMjIyB4bWwgIyMjIworCitzZ21sLWJ1aWxkLnN0YW1wOiB0bXBsLnN0YW1wICQoSEZJTEVfR0xPQikgJChDRklMRV9HTE9CKSAkKHNyY2RpcikvJChET0NfTU9EVUxFKS1zZWN0aW9ucy50eHQgJChidWlsZGRpcikvdG1wbC8qLnNnbWwgJChleHBhbmRfY29udGVudF9maWxlcykKKwlAZWNobyAnZ3RrLWRvYzogQnVpbGRpbmcgWE1MJworCWd0a2RvYy1ta2RiIC0tbW9kdWxlPSQoRE9DX01PRFVMRSkgXAorCSAgICAgICAgICAgIC0tc291cmNlLWRpcj0kKHNyY2RpcikvJChET0NfU09VUkNFX0RJUikgXAorCSAgICAgICAgICAgIC0tc291cmNlLWRpcj0kKGJ1aWxkZGlyKS8kKERPQ19TT1VSQ0VfRElSKSBcCisJICAgICAgICAgICAgLS1vdXRwdXQtZm9ybWF0PXhtbCBcCisJICAgICAgICAgICAgLS1pZ25vcmUtZmlsZXM9IiQoSUdOT1JFX0hGSUxFUykiIFwKKwkgICAgICAgICAgICAtLWV4cGFuZC1jb250ZW50LWZpbGVzPSIkKGV4cGFuZF9jb250ZW50X2ZpbGVzKSIgXAorCSAgICAgICAgICAgIC0tbWFpbi1zZ21sLWZpbGU9JChzcmNkaXIpLyQoRE9DX01BSU5fU0dNTF9GSUxFKSBcCisJICAgICAgICAgICAgJChNS0RCX09QVElPTlMpCisJdG91Y2ggc2dtbC1idWlsZC5zdGFtcAorCitzZ21sLnN0YW1wOiBzZ21sLWJ1aWxkLnN0YW1wCisJQHRydWUKKworIyMjIyBodG1sICMjIyMKKworaHRtbC1idWlsZC5zdGFtcDogc2dtbC5zdGFtcCAkKHNyY2RpcikvJChET0NfTUFJTl9TR01MX0ZJTEUpICQoY29udGVudF9maWxlcykKKwlAZWNobyAnZ3RrLWRvYzogQnVpbGRpbmcgSFRNTCcKKwlybSAtcmYgJChidWlsZGRpcikvaHRtbAorCSQoTUtESVJfUCkgJChidWlsZGRpcikvaHRtbAorCWNkICQoYnVpbGRkaXIpL2h0bWwgJiYgXAorCSAgZ3RrZG9jLW1raHRtbCAtLXBhdGg9IiQoYWJzX2J1aWxkZGlyKTokKGFic19idWlsZGRpcikveG1sOiQoYWJzX3NyY2RpcikiIFwKKwkgICAgICAgICAgICAgICAgJChNS0hUTUxfT1BUSU9OUykgXAorCSAgICAgICAgICAgICAgICAkKERPQ19NT0RVTEUpIFwKKwkgICAgICAgICAgICAgICAgJChhYnNfc3JjZGlyKS8kKERPQ19NQUlOX1NHTUxfRklMRSkKKworCXRlc3QgIngkKEhUTUxfSU1BR0VTKSIgPSAieCIgfHwgXAorCQkoIGNkICQoc3JjZGlyKSAmJiBjcCAkKEhUTUxfSU1BR0VTKSAkKGFic19idWlsZGRpcikvaHRtbCApCisKKwlAZWNobyAnZ3RrLWRvYzogRml4aW5nIGNyb3NzLXJlZmVyZW5jZXMnCisJZ3RrZG9jLWZpeHhyZWYgLS1tb2R1bGUtZGlyPWh0bWwgXAorCSAgICAgICAgICAgICAgIC0taHRtbC1kaXI9JChIVE1MX0RJUikgXAorCSAgICAgICAgICAgICAgICQoRklYWFJFRl9PUFRJT05TKQorCXRvdWNoIGh0bWwtYnVpbGQuc3RhbXAKKworIyMjIyMjIyMjIyMjIyMKKworY2xlYW4tbG9jYWw6CisJcm0gLWYgKn4gKi5iYWsKKwlybSAtcmYgLmxpYnMKKworZGlzdGNsZWFuLWxvY2FsOgorCXJtIC1yZiB4bWwgaHRtbCB0bXBsICQoUkVQT1JUX0ZJTEVTKSAqLnN0YW1wIFwKKwkgICAgICAgJChET0NfTU9EVUxFKS1vdmVycmlkZXMudHh0IFwKKwkgICAgICAgJChET0NfTU9EVUxFKS1kZWNsLWxpc3QudHh0ICQoRE9DX01PRFVMRSktZGVjbC50eHQKKwl0ZXN0ICQoYWJzX2J1aWxkZGlyKSA9PSAgJChhYnNfc3JjZGlyKSB8fCBcCisJICAgICAgIHJtIC1mICQoRE9DX01PRFVMRSktc2VjdGlvbnMudHh0CisKK2luc3RhbGwtZGF0YS1sb2NhbDoKKwlpbnN0YWxsZmlsZXM9YGVjaG8gJChidWlsZGRpcikvaHRtbC8qYDsgXAorCWlmIHRlc3QgIiQkaW5zdGFsbGZpbGVzIiA9ICckKGJ1aWxkZGlyKS9odG1sLyonOyBcCisJdGhlbiBlY2hvICctLSBOb3RoaW5nIHRvIGluc3RhbGwnIDsgXAorCWVsc2UgXAorCSAgaWYgdGVzdCAtbiAiJChET0NfTU9EVUxFX1ZFUlNJT04pIjsgdGhlbiBcCisJICAgIGluc3RhbGxkaXI9IiQoREVTVERJUikkKFRBUkdFVF9ESVIpLSQoRE9DX01PRFVMRV9WRVJTSU9OKSI7IFwKKwkgIGVsc2UgXAorCSAgICBpbnN0YWxsZGlyPSIkKERFU1RESVIpJChUQVJHRVRfRElSKSI7IFwKKwkgIGZpOyBcCisJICAkKG1raW5zdGFsbGRpcnMpICQke2luc3RhbGxkaXJ9IDsgXAorCSAgZm9yIGkgaW4gJCRpbnN0YWxsZmlsZXM7IGRvIFwKKwkgICAgZWNobyAnLS0gSW5zdGFsbGluZyAnJCRpIDsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRpICQke2luc3RhbGxkaXJ9OyBcCisJICBkb25lOyBcCisJICBpZiB0ZXN0IC1uICIkKERPQ19NT0RVTEVfVkVSU0lPTikiOyB0aGVuIFwKKwkgICAgbXYgLWYgJCR7aW5zdGFsbGRpcn0vJChET0NfTU9EVUxFKS5kZXZoZWxwMiBcCisJICAgICAgJCR7aW5zdGFsbGRpcn0vJChET0NfTU9EVUxFKS0kKERPQ19NT0RVTEVfVkVSU0lPTikuZGV2aGVscDI7IFwKKwkgICAgbXYgLWYgJCR7aW5zdGFsbGRpcn0vJChET0NfTU9EVUxFKS5kZXZoZWxwIFwKKwkgICAgICAkJHtpbnN0YWxsZGlyfS8kKERPQ19NT0RVTEUpLSQoRE9DX01PRFVMRV9WRVJTSU9OKS5kZXZoZWxwOyBcCisJICBmaTsgXAorCSAgISB3aGljaCBndGtkb2MtcmViYXNlID4vZGV2L251bGwgMj4mMSB8fCBcCisJICAgIGd0a2RvYy1yZWJhc2UgLS1yZWxhdGl2ZSAtLWRlc3QtZGlyPSQoREVTVERJUikgLS1odG1sLWRpcj0kJHtpbnN0YWxsZGlyfSA7IFwKKwlmaQorCit1bmluc3RhbGwtbG9jYWw6CisJaWYgdGVzdCAtbiAiJChET0NfTU9EVUxFX1ZFUlNJT04pIjsgdGhlbiBcCisJICBpbnN0YWxsZGlyPSIkKERFU1RESVIpJChUQVJHRVRfRElSKS0kKERPQ19NT0RVTEVfVkVSU0lPTikiOyBcCisJZWxzZSBcCisJICBpbnN0YWxsZGlyPSIkKERFU1RESVIpJChUQVJHRVRfRElSKSI7IFwKKwlmaTsgXAorCXJtIC1yZiAkJHtpbnN0YWxsZGlyfQorCisjCisjIFJlcXVpcmUgZ3RrLWRvYyB3aGVuIG1ha2luZyBkaXN0CisjCitARU5BQkxFX0dUS19ET0NfVFJVRUBkaXN0LWNoZWNrLWd0a2RvYzoKK0BFTkFCTEVfR1RLX0RPQ19GQUxTRUBkaXN0LWNoZWNrLWd0a2RvYzoKK0BFTkFCTEVfR1RLX0RPQ19GQUxTRUAJQGVjaG8gIioqKiBndGstZG9jIG11c3QgYmUgaW5zdGFsbGVkIGFuZCBlbmFibGVkIGluIG9yZGVyIHRvIG1ha2UgZGlzdCIKK0BFTkFCTEVfR1RLX0RPQ19GQUxTRUAJQGZhbHNlCisKKyNkaXN0LWhvb2s6IGRpc3QtY2hlY2stZ3RrZG9jIGRpc3QtaG9vay1sb2NhbCBzZ21sLnN0YW1wIGh0bWwtYnVpbGQuc3RhbXAKKyMJbWtkaXIgJChkaXN0ZGlyKS90bXBsCisjCW1rZGlyICQoZGlzdGRpcikveG1sCisjCW1rZGlyICQoZGlzdGRpcikvaHRtbAorIwktY3AgJChzcmNkaXIpL3RtcGwvKi5zZ21sICQoZGlzdGRpcikvdG1wbAorIwktY3AgJChzcmNkaXIpL3htbC8qLnhtbCAkKGRpc3RkaXIpL3htbAorIwljcCAkKHNyY2RpcikvaHRtbC8qICQoZGlzdGRpcikvaHRtbAorIwktY3AgJChzcmNkaXIpLyQoRE9DX01PRFVMRSkudHlwZXMgJChkaXN0ZGlyKS8KKyMJLWNwICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKGRpc3RkaXIpLworIwljZCAkKGRpc3RkaXIpICYmIHJtIC1mICQoRElTVENMRUFORklMRVMpCisjCSEgd2hpY2ggZ3RrZG9jLXJlYmFzZSA+L2Rldi9udWxsIDI+JjEgfHwgXAorIwkgIGd0a2RvYy1yZWJhc2UgLS1vbmxpbmUgLS1yZWxhdGl2ZSAtLWh0bWwtZGlyPSQoZGlzdGRpcikvaHRtbAorIworIy5QSE9OWSA6IGRpc3QtaG9vay1sb2NhbCBkb2NzCisKKyMgRmlsZXMgbm90IHRvIGRpc3RyaWJ1dGUKKyMgZm9yIC0tcmVidWlsZC10eXBlcyBpbiAkKFNDQU5fT1BUSU9OUyksIGUuZy4gJChET0NfTU9EVUxFKS50eXBlcworIyBmb3IgLS1yZWJ1aWxkLXNlY3Rpb25zIGluICQoU0NBTl9PUFRJT05TKSBlLmcuICQoRE9DX01PRFVMRSktc2VjdGlvbnMudHh0CisjRElTVENMRUFORklMRVMgKz0KKworIyBDb21tZW50IHRoaXMgb3V0IGlmIHlvdSB3YW50IHlvdXIgZG9jcy1zdGF0dXMgdGVzdGVkIGR1cmluZyAnbWFrZSBjaGVjaycKKyNURVNUU19FTlZJUk9OTUVOVCA9IGNkICQoc3Jjc3JjKQorI1RFU1RTID0gJChHVEtET0NfQ0hFQ0spCisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9kb2NzL2xpYmJsa2lkLWNvbmZpZy54bWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy9saWJibGtpZC1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZmJiN2YKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy9saWJibGtpZC1jb25maWcueG1sCkBAIC0wLDAgKzEsNTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHJlZmVudHJ5IFBVQkxJQyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4zLy9FTiIKKyAgICAgICAgICAgICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMy9kb2Nib29reC5kdGQiCitbCisgIDwhRU5USVRZIHZlcnNpb24gU1lTVEVNICJ2ZXJzaW9uLnhtbCI+CitdPgorPHJlZmVudHJ5IGlkPSJsaWJibGtpZC1jb25maWciPgorPHJlZm1ldGE+Cis8cmVmZW50cnl0aXRsZSByb2xlPSJ0b3Bfb2ZfcGFnZSIgaWQ9ImxpYmJsa2lkLWNvbmZpZy50b3Bfb2ZfcGFnZSI+Q29uZmlnIGZpbGU8L3JlZmVudHJ5dGl0bGU+Cis8bWFudm9sbnVtPjM8L21hbnZvbG51bT4KKzxyZWZtaXNjaW5mbz5MSUJCTEtJRCBMaWJyYXJ5PC9yZWZtaXNjaW5mbz4KKzwvcmVmbWV0YT4KKworPHJlZm5hbWVkaXY+Cis8cmVmbmFtZT5Db25maWcgZmlsZTwvcmVmbmFtZT4KKzxyZWZwdXJwb3NlPmNvbmZpZyBmaWxlIHRvIGNvbnRyb2wgcGF0aHMgYW5kIGJhc2ljIGxpYnJhcnkgYmVoYXZpb3I8L3JlZnB1cnBvc2U+Cis8L3JlZm5hbWVkaXY+CisKKzxyZWZzZWN0MSBpZD0ibGliYmxraWQtY29uZmlnLmRlc2NyaXB0aW9uIiByb2xlPSJkZXNjIj4KKzx0aXRsZSByb2xlPSJkZXNjLnRpdGxlIj5EZXNjcmlwdGlvbjwvdGl0bGU+Cis8cGFyYT4KK1RoZSBzdGFuZGFyZCBsb2NhdGlvbiBvZiB0aGUKKy9ldGMvYmxraWQuY29uZiBjb25maWcgZmlsZSBjYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKK0JMS0lEX0NPTkYuICBUaGUgZm9sbG93aW5nIG9wdGlvbnMgY29udHJvbCB0aGUgbGliYmxraWQgbGlicmFyeToKKzwvcGFyYT4KKworPHZhcmlhYmxlbGlzdCByb2xlPSJwYXJhbXMiPgorIDx2YXJsaXN0ZW50cnk+CisgIDx0ZXJtPlNFTkRfVUVWRU5UPTxwYXJhbWV0ZXI+eWVzfG5vdDwvcGFyYW1ldGVyPjwvdGVybT4KKyAgPGxpc3RpdGVtPjxzaW1wYXJhPgorICAgU2VuZHMgdWV2ZW50IHdoZW4gL2Rldi9kaXNrL2J5LXtsYWJlbCx1dWlkfS8KKyAgIHN5bWxpbmsgZG9lcyBub3QgbWF0Y2ggd2l0aCBMQUJFTCBvciBVVUlEIG9uIHRoZSBkZXZpY2UuIERlZmF1bHQgaXMgInllcyIuCisgIDwvc2ltcGFyYT48L2xpc3RpdGVtPgorIDwvdmFybGlzdGVudHJ5PgorIDx2YXJsaXN0ZW50cnk+CisgIDx0ZXJtPkNBQ0hFX0ZJTEU9PHBhcmFtZXRlcj5wYXRoPC9wYXJhbWV0ZXI+PC90ZXJtPgorICA8bGlzdGl0ZW0+PHNpbXBhcmE+CisgICBPdmVycmlkZXMgdGhlIHN0YW5kYXJkIGxvY2F0aW9uIG9mIHRoZSBjYWNoZSBmaWxlLiBUaGlzCisgICBzZXR0aW5nIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBCTEtJRF9GSUxFLiBEZWZhdWx0IGlzCisgICAvZXRjL2Jsa2lkLnRhYi4KKyAgPC9zaW1wYXJhPjwvbGlzdGl0ZW0+CisgPC92YXJsaXN0ZW50cnk+CisgPHZhcmxpc3RlbnRyeT4KKyAgPHRlcm0+RVZBTFVBVEU9PHBhcmFtZXRlcj5tZXRob2Q8L3BhcmFtZXRlcj48L3Rlcm0+CisgIDxsaXN0aXRlbT48c2ltcGFyYT4KKyAgIERlZmluZXMgTEFCRUwgYW5kIFVVSUQgZXZhbHVhdGlvbiBtZXRob2QocykuIEN1cnJlbnRseSwKKyAgIHRoZSBsaWJibGtpZCBsaWJyYXJ5IHN1cHBvcnRzICJ1ZGV2IiBhbmQgInNjYW4iIG1ldGhvZHMuIE1vcmUgdGhhbiBvbmUgbWV0aG9kcworICAgbWF5IGJlIHNwZWNpZmllZCBpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0LiBEZWZhdWx0IGlzICJ1ZGV2LHNjYW4iLiBUaGUgInVkZXYiCisgICBtZXRob2QgdXNlcyB1ZGV2IC9kZXYvZGlzay9ieS0qIHN5bWxpbmtzIGFuZCB0aGUgInNjYW4iIG1ldGhvZCBzY2FucyBhbGwKKyAgIGJsb2NrIGRldmljZXMgZnJvbSB0aGUgL3Byb2MvcGFydGl0aW9ucyBmaWxlLgorICA8L3NpbXBhcmE+PC9saXN0aXRlbT4KKyA8L3Zhcmxpc3RlbnRyeT4KKzwvdmFyaWFibGVsaXN0PgorCis8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL2RvY3MvbGliYmxraWQtZG9jcy54bWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy9saWJibGtpZC1kb2NzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGUwNTVlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL2RvY3MvbGliYmxraWQtZG9jcy54bWwKQEAgLTAsMCArMSw2OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgYm9vayBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMy8vRU4iCisgICAgICAgICAgICAgICAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjMvZG9jYm9va3guZHRkIgorWworICA8IUVOVElUWSB2ZXJzaW9uIFNZU1RFTSAidmVyc2lvbi54bWwiPgorXT4KKzxib29rIGlkPSJpbmRleCIgeG1sbnM6eGk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvWEluY2x1ZGUiPgorICA8Ym9va2luZm8+CisgICAgPHRpdGxlPmxpYmJsa2lkIFJlZmVyZW5jZSBNYW51YWw8L3RpdGxlPgorICAgIDxyZWxlYXNlaW5mbz5mb3IgbGliYmxraWQgdmVyc2lvbiAmdmVyc2lvbjs8L3JlbGVhc2VpbmZvPgorICAgIDxjb3B5cmlnaHQ+CisgICAgICA8eWVhcj4yMDA5PC95ZWFyPgorICAgICAgPGhvbGRlcj5LYXJlbCBaYWsgJmx0O2t6YWtAcmVkaGF0LmNvbSZndDs8L2hvbGRlcj4KKyAgICA8L2NvcHlyaWdodD4KKyAgPC9ib29raW5mbz4KKworICA8cGFydCBpZD0iZ3RrIj4KKyAgICA8dGl0bGU+bGliYmxraWQgT3ZlcnZpZXc8L3RpdGxlPgorICAgIDxwYXJ0aW50cm8+CisgICAgPHBhcmE+CitUaGUgbGliYmxraWQgbGlicmFyeSBpcyB1c2VkIHRvIGlkZW50aWZ5IGJsb2NrIGRldmljZXMgKGRpc2tzKSBhcyB0byB0aGVpcgorY29udGVudCAoZS5nLiAgZmlsZXN5c3RlbSB0eXBlLCBwYXJ0aXRpb25zKSBhcyB3ZWxsIGFzIGV4dHJhY3RpbmcgYWRkaXRpb25hbAoraW5mb3JtYXRpb24gc3VjaCBhcyBmaWxlc3lzdGVtIGxhYmVscy92b2x1bWUgbmFtZXMsIHBhcnRpdGlvbnMsIHVuaXF1ZQoraWRlbnRpZmllcnMvc2VyaWFsIG51bWJlcnMsIGV0Yy4gIEEgY29tbW9uIHVzZSBpcyB0byBhbGxvdyB1c2Ugb2YgTEFCRUw9IGFuZAorVVVJRD0gdGFncyBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIHNwZWNpZmljIGJsb2NrIGRldmljZSBuYW1lcyBpbnRvCitjb25maWd1cmF0aW9uIGZpbGVzLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KK1RoZSBsaWJibGtpZCBsaWJycmF5Cit3YXMgd3JpdHRlbiBieSBBbmRyZWFzIERpbGdlciBmb3IgdGhlIGV4dDIgZmlsZXN5c3RlbSB1dGlsdGllcywgd2l0aCBpbnB1dAorZnJvbSBUZWQgVHMnby4gIFRoZSBsaWJyYXJ5IHdhcyBzdWJzZXF1ZW50bHkgaGVhdmlseSBtb2RpZmllZCBieSBUZWQgVHMnby4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CitUaGUgbG93LWxldmVsIHByb2JpbmcgY29kZSwgdG9wb2xvZ3kgYW5kIHBhcnRpdGlvbnMgc3VwcG9ydCB3YXMgd3JpdHRlbgorYnkgS2FyZWwgWmFrLiBDdXJyZW50bHksIHRoZSBsaWJyYXJ5IGlzIG1haW5hdG5lZCBieSBLYXJlbCBaYWsuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorVGhlIGxpYnJhcnkgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIHNpbmNlIHZlcnNpb24gMi4xNSBhbmQgaXMKK2F2YWlsYWJsZSBmcm9tIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KKyAgICA8L3BhcmE+CisgIDwvcGFydGludHJvPgorICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvbGliYmxraWQtY29uZmlnLnhtbCIvPgorIDwvcGFydD4KKworICA8cGFydD4KKyAgICA8dGl0bGU+SGlnaC1sZXZlbDwvdGl0bGU+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2V2YWx1YXRlLnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9jYWNoZS54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvc2VhcmNoLnhtbCIvPgorICA8L3BhcnQ+CisgIDxwYXJ0PgorICAgIDx0aXRsZT5Mb3ctbGV2ZWw8L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9sb3dwcm9iZS54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvbG93cHJvYmUtdGFncy54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvc3VwZXJibG9ja3MueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL3BhcnRpdGlvbnMueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL3RvcG9sb2d5LnhtbCIvPgorICA8L3BhcnQ+CisgIDxwYXJ0PgorICAgIDx0aXRsZT5Db21tb24gdXRpbHM8L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9lbmNvZGUueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL21pc2MueG1sIi8+CisgIDwvcGFydD4KKworICA8aW5kZXggaWQ9ImFwaS1pbmRleC1mdWxsIj4KKyAgICA8dGl0bGU+QVBJIEluZGV4PC90aXRsZT4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LWZ1bGwueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CisgIDwvaW5kZXg+Cis8L2Jvb2s+CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy9saWJibGtpZC1zZWN0aW9ucy50eHQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy9saWJibGtpZC1zZWN0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhiMDA0NQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9kb2NzL2xpYmJsa2lkLXNlY3Rpb25zLnR4dApAQCAtMCwwICsxLDE0NCBAQAorPFNFQ1RJT04+Cis8RklMRT5ldmFsdWF0ZTwvRklMRT4KK2Jsa2lkX2V2YWx1YXRlX3RhZworPC9TRUNUSU9OPgorCis8U0VDVElPTj4KKzxGSUxFPmNhY2hlPC9GSUxFPgorYmxraWRfY2FjaGUKK2Jsa2lkX2djX2NhY2hlCitibGtpZF9nZXRfY2FjaGUKK2Jsa2lkX3B1dF9jYWNoZQorYmxraWRfcHJvYmVfYWxsCitibGtpZF9wcm9iZV9hbGxfbmV3CitibGtpZF92ZXJpZnkKKzwvU0VDVElPTj4KKworPFNFQ1RJT04+Cis8RklMRT5zZWFyY2g8L0ZJTEU+CitibGtpZF9kZXYKK2Jsa2lkX2Rldl9kZXZuYW1lCitibGtpZF9kZXZfaGFzX3RhZworYmxraWRfZGV2X2l0ZXJhdGUKK2Jsa2lkX2Rldl9pdGVyYXRlX2JlZ2luCitibGtpZF9kZXZfaXRlcmF0ZV9lbmQKK2Jsa2lkX2Rldl9uZXh0CitibGtpZF9kZXZfc2V0X3NlYXJjaAorYmxraWRfZmluZF9kZXZfd2l0aF90YWcKK2Jsa2lkX2dldF9kZXYKK2Jsa2lkX2dldF9kZXZuYW1lCitibGtpZF9nZXRfdGFnX3ZhbHVlCitibGtpZF90YWdfaXRlcmF0ZQorYmxraWRfdGFnX2l0ZXJhdGVfYmVnaW4KK2Jsa2lkX3RhZ19pdGVyYXRlX2VuZAorYmxraWRfdGFnX25leHQKKzwvU0VDVElPTj4KKworPFNFQ1RJT04+Cis8RklMRT5sb3dwcm9iZTwvRklMRT4KK2Jsa2lkX3Byb2JlCitibGtpZF9mcmVlX3Byb2JlCitibGtpZF9uZXdfcHJvYmUKK2Jsa2lkX25ld19wcm9iZV9mcm9tX2ZpbGVuYW1lCitibGtpZF9wcm9iZV9nZXRfZGV2bm8KK2Jsa2lkX3Byb2JlX2dldF9zZWN0b3JzaXplCitibGtpZF9wcm9iZV9nZXRfc2l6ZQorYmxraWRfcHJvYmVfc2V0X2RldmljZQorYmxraWRfcmVzZXRfcHJvYmUKKzwvU0VDVElPTj4KKworPFNFQ1RJT04+Cis8RklMRT5sb3dwcm9iZS10YWdzPC9GSUxFPgorYmxraWRfZG9fZnVsbHByb2JlCitibGtpZF9kb19wcm9iZQorYmxraWRfZG9fc2FmZXByb2JlCis8U1VCU0VDVElPTj4KK2Jsa2lkX3Byb2JlX2dldF92YWx1ZQorYmxraWRfcHJvYmVfaGFzX3ZhbHVlCitibGtpZF9wcm9iZV9sb29rdXBfdmFsdWUKK2Jsa2lkX3Byb2JlX251bW9mX3ZhbHVlcworPC9TRUNUSU9OPgorCis8U0VDVElPTj4KKzxGSUxFPnBhcnRpdGlvbnM8L0ZJTEU+CitibGtpZF9wYXJ0bGlzdAorYmxraWRfcGFydGl0aW9uCitibGtpZF9wYXJ0dGFibGUKK2Jsa2lkX3Byb2JlX2VuYWJsZV9wYXJ0aXRpb25zCitibGtpZF9wcm9iZV9zZXRfcGFydGl0aW9uc19mbGFncworPFNVQlNFQ1RJT04+CitibGtpZF9rbm93bl9wdHR5cGUKKzxTVUJTRUNUSU9OPgorYmxraWRfcGFydGl0aW9uX2dldF9uYW1lCitibGtpZF9wYXJ0aXRpb25fZ2V0X3BhcnRubworYmxraWRfcGFydGl0aW9uX2dldF9zaXplCitibGtpZF9wYXJ0aXRpb25fZ2V0X3N0YXJ0CitibGtpZF9wYXJ0aXRpb25fZ2V0X3RhYmxlCitibGtpZF9wYXJ0aXRpb25fZ2V0X3R5cGUKK2Jsa2lkX3BhcnRpdGlvbl9nZXRfdHlwZV9zdHJpbmcKK2Jsa2lkX3BhcnRpdGlvbl9nZXRfdXVpZAorYmxraWRfcGFydGl0aW9uX2lzX2V4dGVuZGVkCitibGtpZF9wYXJ0aXRpb25faXNfbG9naWNhbAorYmxraWRfcGFydGl0aW9uX2lzX3ByaW1hcnkKKzxTVUJTRUNUSU9OPgorYmxraWRfcGFydGxpc3RfZ2V0X3BhcnRpdGlvbgorYmxraWRfcGFydGxpc3RfbnVtb2ZfcGFydGl0aW9ucworPFNVQlNFQ1RJT04+CitibGtpZF9wYXJ0dGFibGVfZ2V0X29mZnNldAorYmxraWRfcGFydHRhYmxlX2dldF9wYXJlbnQKK2Jsa2lkX3BhcnR0YWJsZV9nZXRfdHlwZQorPFNVQlNFQ1RJT04+CitibGtpZF9wcm9iZV9nZXRfcGFydGl0aW9ucworPC9TRUNUSU9OPgorCis8U0VDVElPTj4KKzxGSUxFPnN1cGVyYmxvY2tzPC9GSUxFPgorYmxraWRfcHJvYmVfZW5hYmxlX3N1cGVyYmxvY2tzCis8U1VCU0VDVElPTj4KK2Jsa2lkX2tub3duX2ZzdHlwZQorPFNVQlNFQ1RJT04+CitibGtpZF9wcm9iZV9maWx0ZXJfc3VwZXJibG9ja3NfdHlwZQorYmxraWRfcHJvYmVfZmlsdGVyX3N1cGVyYmxvY2tzX3VzYWdlCitibGtpZF9wcm9iZV9pbnZlcnRfc3VwZXJibG9ja3NfZmlsdGVyCitibGtpZF9wcm9iZV9yZXNldF9zdXBlcmJsb2Nrc19maWx0ZXIKK2Jsa2lkX3Byb2JlX3NldF9zdXBlcmJsb2Nrc19mbGFncworPFNVQlNFQ1RJT04+CitibGtpZF9wcm9iZV9yZXNldF9maWx0ZXIKK2Jsa2lkX3Byb2JlX2ZpbHRlcl90eXBlcworYmxraWRfcHJvYmVfZmlsdGVyX3VzYWdlCitibGtpZF9wcm9iZV9pbnZlcnRfZmlsdGVyCitibGtpZF9wcm9iZV9zZXRfcmVxdWVzdAorPC9TRUNUSU9OPgorCis8U0VDVElPTj4KKzxGSUxFPnRvcG9sb2d5PC9GSUxFPgorYmxraWRfdG9wb2xvZ3kKK2Jsa2lkX3Byb2JlX2VuYWJsZV90b3BvbG9neQorPFNVQlNFQ1RJT04+CitibGtpZF9wcm9iZV9nZXRfdG9wb2xvZ3kKK2Jsa2lkX3RvcG9sb2d5X2dldF9hbGlnbm1lbnRfb2Zmc2V0CitibGtpZF90b3BvbG9neV9nZXRfbG9naWNhbF9zZWN0b3Jfc2l6ZQorYmxraWRfdG9wb2xvZ3lfZ2V0X21pbmltdW1faW9fc2l6ZQorYmxraWRfdG9wb2xvZ3lfZ2V0X29wdGltYWxfaW9fc2l6ZQorYmxraWRfdG9wb2xvZ3lfZ2V0X3BoeXNpY2FsX3NlY3Rvcl9zaXplCis8L1NFQ1RJT04+CisKKzxTRUNUSU9OPgorPEZJTEU+ZW5jb2RlPC9GSUxFPgorYmxraWRfZW5jb2RlX3N0cmluZworYmxraWRfc2FmZV9zdHJpbmcKKzwvU0VDVElPTj4KKworPFNFQ1RJT04+Cis8RklMRT5taXNjPC9GSUxFPgorYmxraWRfbG9mZl90CitibGtpZF9kZXZub190b19kZXZuYW1lCitibGtpZF9kZXZub190b193aG9sZWRpc2sKK2Jsa2lkX2dldF9kZXZfc2l6ZQorYmxraWRfZ2V0X2xpYnJhcnlfdmVyc2lvbgorYmxraWRfcGFyc2VfdGFnX3N0cmluZworYmxraWRfcGFyc2VfdmVyc2lvbl9zdHJpbmcKK2Jsa2lkX3NlbmRfdWV2ZW50Cis8L1NFQ1RJT04+CisKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL2RvY3MvdmVyc2lvbi54bWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy92ZXJzaW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGRjMGVjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL2RvY3MvdmVyc2lvbi54bWwKQEAgLTAsMCArMSBAQAorMi4xNy4yCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy92ZXJzaW9uLnhtbC5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9kb2NzL3ZlcnNpb24ueG1sLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3OGJkYTkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvZG9jcy92ZXJzaW9uLnhtbC5pbgpAQCAtMCwwICsxIEBACitAVkVSU0lPTkAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9saWJibGtpZC4zIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL2xpYmJsa2lkLjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZlYjg2OAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9saWJibGtpZC4zCkBAIC0wLDAgKzEsMTEwIEBACisuXCIgQ29weXJpZ2h0IDIwMDEgQW5kcmVhcyBEaWxnZXIgKGFkaWxnZXJAdHVyYm9saW51eC5jb20pCisuXCIKKy5cIiBUaGlzIG1hbiBwYWdlIHdhcyBjcmVhdGVkIGZvciBsaWJibGtpZC5zby4xLjAgZnJvbSBlMmZzcHJvZ3MtMS4yNC4KKy5cIgorLlwiIFRoaXMgZmlsZSBtYXkgYmUgY29waWVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLgorLlwiCisuXCIgQ3JlYXRlZCAgV2VkIFNlcCAxNCAxMjowMjoxMiAyMDAxLCBBbmRyZWFzIERpbGdlcgorLlRIIExJQkJMS0lEIDMgIk1heSAyMDA5IiAidXRpbC1saW51eC1uZyIKKy5TSCBOQU1FCitsaWJibGtpZCBcLSBibG9jayBkZXZpY2UgaWRlbnRpZmljYXRpb24gbGlicmFyeQorLlNIIFNZTk9QU0lTCisuQiAjaW5jbHVkZSA8YmxraWQvYmxraWQuaD4KKy5zcAorLkIgY2MKKy5JIGZpbGUuYworLkIgXC1sYmxraWQKKy5TSCBERVNDUklQVElPTgorVGhlCisuQiBsaWJibGtpZAorbGlicmFyeSBpcyB1c2VkIHRvIGlkZW50aWZ5IGJsb2NrIGRldmljZXMgKGRpc2tzKSBhcyB0byB0aGVpciBjb250ZW50IChlLmcuCitmaWxlc3lzdGVtIHR5cGUpIGFzIHdlbGwgYXMgZXh0cmFjdGluZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHN1Y2ggYXMKK2ZpbGVzeXN0ZW0gbGFiZWxzL3ZvbHVtZSBuYW1lcywgdW5pcXVlIGlkZW50aWZpZXJzL3NlcmlhbCBudW1iZXJzLCBldGMuCitBIGNvbW1vbiB1c2UgaXMgdG8gYWxsb3cgdXNlIG9mIExBQkVMPSBhbmQgVVVJRD0gdGFncyBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nCitzcGVjaWZpYyBibG9jayBkZXZpY2UgbmFtZXMgaW50byBjb25maWd1cmF0aW9uIGZpbGVzLgorLlAKK0Jsb2NrIGRldmljZSBpbmZvcm1hdGlvbiBpcyBub3JtYWxseSBrZXB0IGluIGEgY2FjaGUgZmlsZQorLkkgL2V0Yy9ibGtpZC50YWIKK2FuZCBpcyB2ZXJpZmllZCB0byBzdGlsbCBiZSB2YWxpZCBiZWZvcmUgYmVpbmcgcmV0dXJuZWQgdG8gdGhlIHVzZXIKKyhpZiB0aGUgdXNlciBoYXMgcmVhZCBwZXJtaXNzaW9uIG9uIHRoZSByYXcgYmxvY2sgZGV2aWNlLCBvdGhlcndpc2Ugbm90KS4KK1RoZSBjYWNoZSBmaWxlIGFsc28gYWxsb3dzIHVucHJpdmlsZWdlZCB1c2VycyAobm9ybWFsbHkgYW55b25lIG90aGVyCit0aGFuIHJvb3QsIG9yIHRob3NlIG5vdCBpbiB0aGUgImRpc2siIGdyb3VwKSB0byBsb2NhdGUgZGV2aWNlcyBieSBsYWJlbC9pZC4KK1RoZSBzdGFuZGFyZCBsb2NhdGlvbiBvZiB0aGUgY2FjaGUgZmlsZSBjYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUKK2Vudmlyb25tZW50IHZhcmlhYmxlIEJMS0lEX0ZJTEUuCisuUAorSW4gc2l0dWF0aW9ucyB3aGVyZSBvbmUgaXMgZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBrbm93biBkZXZpY2UsCitpdCBkb2VzIG5vdCBpbXBhY3QgcGVyZm9ybWFuY2Ugd2hldGhlciB0aGUgY2FjaGUgaXMgdXNlZCBvciBub3QgKHVubGVzcyB5b3UKK2FyZSBub3QgYWJsZSB0byByZWFkIHRoZSBibG9jayBkZXZpY2UgZGlyZWN0bHkpLiAgSWYgeW91IGFyZSBkZWFsaW5nIHdpdGgKK211bHRpcGxlIGRldmljZXMsIHVzZSBvZiB0aGUgY2FjaGUgaXMgaGlnaGx5IHJlY29tbWVuZGVkIChldmVuIGlmIGVtcHR5KSBhcworZGV2aWNlcyB3aWxsIGJlIHNjYW5uZWQgYXQgbW9zdCBvbmUgdGltZSBhbmQgdGhlIG9uLWRpc2sgY2FjaGUgd2lsbCBiZQordXBkYXRlZCBpZiBwb3NzaWJsZS4gIFRoZXJlIGlzIHJhcmVseSBhIHJlYXNvbiBub3QgdG8gdXNlIHRoZSBjYWNoZS4KKy5QCitJbiBzb21lIGNhc2VzIChtb2R1bGFyIGtlcm5lbHMpLCBibG9jayBkZXZpY2VzIGFyZSBub3QgZXZlbiB2aXNpYmxlIHVudGlsCithZnRlciB0aGV5IGFyZSBhY2Nlc3NlZCB0aGUgZmlyc3QgdGltZSwgc28gaXQgaXMgY3JpdGljYWwgdGhhdCB0aGVyZSBpcworc29tZSB3YXkgdG8gbG9jYXRlIHRoZXNlIGRldmljZXMgd2l0aG91dCBlbnVtZXJhdGluZyBvbmx5IHZpc2libGUgZGV2aWNlcywKK3NvIHRoZSB1c2Ugb2YgdGhlIGNhY2hlIGZpbGUgaXMKKy5CIHJlcXVpcmVkCitpbiB0aGlzIHNpdHVhdGlvbi4KKy5TSCBDT05GSUdVUkFUSU9OIEZJTEUKK1RoZSBzdGFuZGFyZCBsb2NhdGlvbiBvZiB0aGUKKy5JIC9ldGMvYmxraWQuY29uZgorY29uZmlnIGZpbGUgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEJMS0lEX0NPTkYuCitUaGUgZm9sbG93aW5nIG9wdGlvbnMgY29udHJvbCB0aGUgbGliYmxraWQgbGlicmFyeToKKy5UUAorLkkgU0VORF9VRVZFTlQ9PHllc3xub3Q+CitTZW5kcyB1ZXZlbnQgd2hlbgorLkkgL2Rldi9kaXNrL2J5LXtsYWJlbCx1dWlkfS8KK3N5bWxpbmsgZG9lcyBub3QgbWF0Y2ggd2l0aCBMQUJFTCBvciBVVUlEIG9uIHRoZSBkZXZpY2UuIERlZmF1bHQgaXMgInllcyIuCisuVFAKKy5JIENBQ0hFX0ZJTEU9PHBhdGg+CitPdmVycmlkZXMgdGhlIHN0YW5kYXJkIGxvY2F0aW9uIG9mIHRoZSBjYWNoZSBmaWxlLiBUaGlzIHNldHRpbmcgY2FuIGJlCitvdmVycmlkZGVuIGJ5IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBCTEtJRF9GSUxFLiBEZWZhdWx0IGlzCisuSSAvZXRjL2Jsa2lkLnRhYi4KKy5UUAorLkkgRVZBTFVBVEU9PG1ldGhvZHM+CitEZWZpbmVzIExBQkVMIGFuZCBVVUlEIGV2YWx1YXRpb24gbWV0aG9kKHMpLiBDdXJyZW50bHksIHRoZSBsaWJibGtpZCBsaWJyYXJ5CitzdXBwb3J0cyAidWRldiIgYW5kICJzY2FuIiBtZXRob2RzLiBNb3JlIHRoYW4gb25lIG1ldGhvZHMgbWF5IGJlIHNwZWNpZmllZCBpbgorYSBjb21tYSBzZXBhcmF0ZWQgbGlzdC4gRGVmYXVsdCBpcyAidWRldixzY2FuIi4gVGhlICJ1ZGV2IiBtZXRob2QgdXNlcyB1ZGV2CisuSSAvZGV2L2Rpc2svYnktKgorc3ltbGlua3MgYW5kIHRoZSAic2NhbiIgbWV0aG9kIHNjYW5zIGFsbCBibG9jayBkZXZpY2VzIGZyb20gdGhlCisuSSAvcHJvYy9wYXJ0aXRpb25zCitmaWxlLgorLlNIIEFVVEhPUgorLkIgbGliYmxraWQKK3dhcyB3cml0dGVuIGJ5IEFuZHJlYXMgRGlsZ2VyIGZvciB0aGUgZXh0MiBmaWxlc3lzdGVtIHV0aWx0aWVzLCB3aXRoIGlucHV0Citmcm9tIFRlZCBUcydvLiAgVGhlIGxpYnJhcnkgd2FzIHN1YnNlcXVlbnRseSBoZWF2aWx5IG1vZGlmaWVkIGJ5IFRlZCBUcydvLgorCitUaGUgbG93LWxldmVsIHByb2JpbmcgY29kZSB3YXMgcmV3cml0dGVuIGJ5IEthcmVsIFphay4KKy5TSCBGSUxFUworLlRQIDE4CisuSSAvZXRjL2Jsa2lkLnRhYgorY2FjaGVzIGRhdGEgZXh0cmFjdGVkIGZyb20gZWFjaCByZWNvZ25pemVkIGJsb2NrIGRldmljZQorLlRQCisuSSAvZXRjL2Jsa2lkLmNvbmYKK2NvbmZpZ3VyYXRpb24gZmlsZQorLlNIIEFWQUlMQUJJTElUWQorLkIgbGliYmxraWQKK2lzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBzaW5jZSB2ZXJzaW9uIDIuMTUgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisuU0ggQ09QWUlORworLkIgbGliYmxraWQKK2lzIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKExHUEwpLAordmVyc2lvbiAyIChvciBhdCB5b3VyIGRpc2NyZXRpb24gYW55IGxhdGVyIHZlcnNpb24pLiAgQSBjb3B5IG9mIHRoZSBMR1BMCitzaG91bGQgYmUgaW5jbHVkZWQgd2l0aCB0aGlzIGxpYnJhcnkgaW4gdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8KKy5SUworRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisuYnIKKzUxIEZyYW5rbGluIFN0CisuYnIKK0ZpZnRoIEZsb29yCisuYnIKK0Jvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorLlJFCisuUFAKK29yIHZpc2l0CisuVVIgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjTEdQTAoraHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjTEdQTAorLlVFCisuU0ggIlNFRSBBTFNPIgorLkJSIGJsa2lkICg4KQorLkJSIGZpbmRmcyAoOCkKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zYW1wbGVzL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NhbXBsZXMvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM1ODhkNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zYW1wbGVzL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsNyBAQAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCisKK0FNX0NQUEZMQUdTICs9IC1JJCh1bF9saWJibGtpZF9pbmNkaXIpCitBTV9MREZMQUdTICs9ICQodWxfbGliYmxraWRfbGEpCisKK25vaW5zdF9QUk9HUkFNUyA9IHRvcG9sb2d5IHBhcnRpdGlvbnMgbWtmcyBzdXBlcmJsb2NrcworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc2FtcGxlcy9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zYW1wbGVzL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3ODc4ZTUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc2FtcGxlcy9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDU4MyBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoZGlzdF9ub2luc3RfREFUQSkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorbm9pbnN0X1BST0dSQU1TID0gdG9wb2xvZ3kkKEVYRUVYVCkgcGFydGl0aW9ucyQoRVhFRVhUKSBta2ZzJChFWEVFWFQpIFwKKwlzdXBlcmJsb2NrcyQoRVhFRVhUKQorc3ViZGlyID0gc2hsaWJzL2Jsa2lkL3NhbXBsZXMKK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL200L2dldHRleHQubTQgXAorCSQodG9wX3NyY2RpcikvbTQvZ3RrLWRvYy5tNCAkKHRvcF9zcmNkaXIpL200L2ljb252Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1sZC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYi1saW5rLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1wcmVmaXgubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbmxzLm00ICQodG9wX3NyY2RpcikvbTQvcG8ubTQgXAorCSQodG9wX3NyY2RpcikvbTQvcHJvZ3Rlc3QubTQgJCh0b3Bfc3JjZGlyKS9tNC90bHMubTQgXAorCSQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oCitDT05GSUdfQ0xFQU5fRklMRVMgPQorQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK1BST0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCitta2ZzX1NPVVJDRVMgPSBta2ZzLmMKK21rZnNfT0JKRUNUUyA9IG1rZnMuJChPQkpFWFQpCitta2ZzX0xEQUREID0gJChMREFERCkKK0FNX1ZfbHQgPSAkKGFtX192X2x0XyQoVikpCithbV9fdl9sdF8gPSAkKGFtX192X2x0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfbHRfMCA9IC0tc2lsZW50CitwYXJ0aXRpb25zX1NPVVJDRVMgPSBwYXJ0aXRpb25zLmMKK3BhcnRpdGlvbnNfT0JKRUNUUyA9IHBhcnRpdGlvbnMuJChPQkpFWFQpCitwYXJ0aXRpb25zX0xEQUREID0gJChMREFERCkKK3N1cGVyYmxvY2tzX1NPVVJDRVMgPSBzdXBlcmJsb2Nrcy5jCitzdXBlcmJsb2Nrc19PQkpFQ1RTID0gc3VwZXJibG9ja3MuJChPQkpFWFQpCitzdXBlcmJsb2Nrc19MREFERCA9ICQoTERBREQpCit0b3BvbG9neV9TT1VSQ0VTID0gdG9wb2xvZ3kuYwordG9wb2xvZ3lfT0JKRUNUUyA9IHRvcG9sb2d5LiQoT0JKRVhUKQordG9wb2xvZ3lfTERBREQgPSAkKExEQUREKQorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSBta2ZzLmMgcGFydGl0aW9ucy5jIHN1cGVyYmxvY2tzLmMgdG9wb2xvZ3kuYworRElTVF9TT1VSQ0VTID0gbWtmcy5jIHBhcnRpdGlvbnMuYyBzdXBlcmJsb2Nrcy5jIHRvcG9sb2d5LmMKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCBcCisJLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIiBcCisJLUkkKHVsX2xpYmJsa2lkX2luY2RpcikKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAkKHVsX2xpYmJsa2lkX2xhKQorCisjIEF1dG9tYWtlIChhdCBsZWFzdCB1cCB0byAxLjEwKSBtaXNoYW5kbGVzIGRpc3RfbWFuX01BTlMgaW5zaWRlIGNvbmRpdGlvbmFscy4KKyMgVW5saWtlIHdpdGggb3RoZXIgZGlzdCBwcmltYXJpZXMsIHRoZSBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVkIGlmIHRoZQorIyBjb25kaXRpb25hbCBpcyBmYWxzZS4KKyMgV29yayB0aGUgYnVnIGFyb3VuZCB1bnRpbCBpdCBpcyBmaXhlZDoKK2Rpc3Rfbm9pbnN0X0RBVEEgPSAkKGRpc3RfbWFuX01BTlMpCisKKyMgUGF0aHMgdG8gaW4tdHJlZSBsaWJyYXJpZXMgKHVzZSB1bF8gcHJlZml4IHRvIGF2b2lkIHBvc3NpYmxlIGNvbGxpc2lvbnMpCisjCisjIGJsa2lkCit1bF9saWJibGtpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMvbGliYmxraWQubGEKKworIyBibGtpZC5oIGlzIGdlbmVyYXRlZCBieSAuL2NvbmZpZ3VyZSBzY3JpcHQgYW5kIHN0b3JlZCBpbiBidWlsZCBkaXJlY3RvcnkKK3VsX2xpYmJsa2lkX2luY2RpciA9ICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyMgdXVpZAordWxfbGlidXVpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjL2xpYnV1aWQubGEKK2FsbDogYWxsLWFtCisKKy5TVUZGSVhFUzoKKy5TVUZGSVhFUzogLmMgLmxvIC5vIC5vYmoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiBzaGxpYnMvYmxraWQvc2FtcGxlcy9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL2Jsa2lkL3NhbXBsZXMvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgorCitjbGVhbi1ub2luc3RQUk9HUkFNUzoKKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0Citta2ZzJChFWEVFWFQpOiAkKG1rZnNfT0JKRUNUUykgJChta2ZzX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIG1rZnMkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQobWtmc19PQkpFQ1RTKSAkKG1rZnNfTERBREQpICQoTElCUykKK3BhcnRpdGlvbnMkKEVYRUVYVCk6ICQocGFydGl0aW9uc19PQkpFQ1RTKSAkKHBhcnRpdGlvbnNfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgcGFydGl0aW9ucyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChwYXJ0aXRpb25zX09CSkVDVFMpICQocGFydGl0aW9uc19MREFERCkgJChMSUJTKQorc3VwZXJibG9ja3MkKEVYRUVYVCk6ICQoc3VwZXJibG9ja3NfT0JKRUNUUykgJChzdXBlcmJsb2Nrc19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBzdXBlcmJsb2NrcyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChzdXBlcmJsb2Nrc19PQkpFQ1RTKSAkKHN1cGVyYmxvY2tzX0xEQUREKSAkKExJQlMpCit0b3BvbG9neSQoRVhFRVhUKTogJCh0b3BvbG9neV9PQkpFQ1RTKSAkKHRvcG9sb2d5X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRvcG9sb2d5JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHRvcG9sb2d5X09CSkVDVFMpICQodG9wb2xvZ3lfTERBREQpICQoTElCUykKKworbW9zdGx5Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi4kKE9CSkVYVCkKKworZGlzdGNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICoudGFiLmMKKworQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21rZnMuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3BhcnRpdGlvbnMuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3N1cGVyYmxvY2tzLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90b3BvbG9neS5Qb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoTFRDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1hbQorYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKSAkKERBVEEpCitpbnN0YWxsZGlyczoKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCisJbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06CisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisKK2luc3RhbGwtaW5mby1hbToKKworaW5zdGFsbC1tYW46CisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAorCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCisJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAorCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisKKworJCh1bF9saWJibGtpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCiskKHVsX2xpYnV1aWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJ1dWlkX2J1aWxkZGlyKQorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc2FtcGxlcy9ta2ZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc2FtcGxlcy9ta2ZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY2YTYzMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zYW1wbGVzL21rZnMuYwpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGVyci5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpbmNsdWRlIDxibGtpZC5oPgorCisjaW5jbHVkZSAiYy5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWludCByYzsKKwljaGFyICpkZXZuYW1lOworCWJsa2lkX3Byb2JlIHByOworCWJsa2lkX3RvcG9sb2d5IHRwOworCisJaWYgKGFyZ2MgPCAyKSB7CisJCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDxkZXZpY2U+ICAiCisJCQkiLS0gY2hlY2tzIGJhc2VkIG9uIGxpYmJsa2lkIGZvciBta2ZzLWxpa2UgcHJvZ3JhbXMuXG4iLAorCQkJcHJvZ3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWUpOworCQlyZXR1cm4gRVhJVF9GQUlMVVJFOworCX0KKworCWRldm5hbWUgPSBhcmd2WzFdOworCXByID0gYmxraWRfbmV3X3Byb2JlX2Zyb21fZmlsZW5hbWUoZGV2bmFtZSk7CisJaWYgKCFwcikKKwkJZXJyKEVYSVRfRkFJTFVSRSwgIiVzOiBmYWlsZCB0byBjcmVhdGUgYSBuZXcgbGliYmxraWQgcHJvYmUiLAorCQkJCWRldm5hbWUpOworCisJLyoKKwkgKiBjaGVjayBGaWxlc3lzdGVtcyAvIFBhcnRpdGlvbnMgb3ZlcndyaXRlCisJICovCisKKwkvKiBlbmFibGUgcGFydGl0aW9ucyBwcm9iaW5nIChzdXBlcmJsb2NrcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0KSAqLworCWJsa2lkX3Byb2JlX2VuYWJsZV9wYXJ0aXRpb25zKHByLCBUUlVFKTsKKworCXJjID0gYmxraWRfZG9fZnVsbHByb2JlKHByKTsKKwlpZiAocmMgPT0gLTEpCisJCWVycngoRVhJVF9GQUlMVVJFLCAiJXM6IGJsa2lkX2RvX2Z1bGxwcm9iZSgpIGZhaWxlZCIsIGRldm5hbWUpOworCWVsc2UgaWYgKHJjID09IDApIHsKKwkJY29uc3QgY2hhciAqdHlwZTsKKworCQlpZiAoIWJsa2lkX3Byb2JlX2xvb2t1cF92YWx1ZShwciwgIlRZUEUiLCAmdHlwZSwgTlVMTCkpCisJCQllcnJ4KEVYSVRfRkFJTFVSRSwgIiVzOiBhcHBlYXJzIHRvIGNvbnRhaW4gYW4gZXhpc3RpbmcgIgorCQkJCQkiJXMgc3VwZXJibG9jayIsIGRldm5hbWUsIHR5cGUpOworCisJCWlmICghYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKHByLCAiUFRUWVBFIiwgJnR5cGUsIE5VTEwpKQorCQkJZXJyeChFWElUX0ZBSUxVUkUsICIlczogYXBwZWFycyB0byBjb250YWluIGFuIHBhcnRpdGlvbiAiCisJCQkJCSJ0YWJsZSAoJXMpIiwgZGV2bmFtZSwgdHlwZSk7CisJfQorCisJLyoKKwkgKiBnZXQgdG9wb2xvZ3kgZGV0YWlscworCSAqLworCXRwID0gYmxraWRfcHJvYmVfZ2V0X3RvcG9sb2d5KHByKTsKKwlpZiAoIXRwKQorCQllcnJ4KEVYSVRfRkFJTFVSRSwgIiVzOiBmYWlsZWQgdG8gcmVhZCB0b3BvbG9neSIsIGRldm5hbWUpOworCisKKwkvKiAuLi4geW91ciBta2ZzLjx0eXBlPiBjb2RlIG9yIHNvIC4uLgorCisJb2ZmID0gYmxraWRfdG9wb2xvZ3lfZ2V0X2FsaWdubWVudF9vZmZzZXQodHApOworCisJICovCisKKwlibGtpZF9mcmVlX3Byb2JlKHByKTsKKworCXJldHVybiBFWElUX1NVQ0NFU1M7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc2FtcGxlcy9wYXJ0aXRpb25zLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc2FtcGxlcy9wYXJ0aXRpb25zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk1ODdmZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zYW1wbGVzL3BhcnRpdGlvbnMuYwpAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGVyci5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpbmNsdWRlIDxibGtpZC5oPgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWludCBpLCBucGFydHM7CisJY2hhciAqZGV2bmFtZTsKKwlibGtpZF9wcm9iZSBwcjsKKwlibGtpZF9wYXJ0bGlzdCBsczsKKwlibGtpZF9wYXJ0dGFibGUgcm9vdF90YWIgPSBOVUxMOworCisJaWYgKGFyZ2MgPCAyKSB7CisJCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDxkZXZpY2V8ZmlsZT4gICIKKwkJCQkiLS0gcHJpbnRzIHBhcnRpdGlvbnNcbiIsCisJCQkJcHJvZ3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWUpOworCQlyZXR1cm4gRVhJVF9GQUlMVVJFOworCX0KKworCWRldm5hbWUgPSBhcmd2WzFdOworCXByID0gYmxraWRfbmV3X3Byb2JlX2Zyb21fZmlsZW5hbWUoZGV2bmFtZSk7CisJaWYgKCFwcikKKwkJZXJyKEVYSVRfRkFJTFVSRSwgIiVzOiBmYWlsZCB0byBjcmVhdGUgYSBuZXcgbGliYmxraWQgcHJvYmUiLAorCQkJCWRldm5hbWUpOworCS8qIEJpbmFyeSBpbnRlcmZhY2UgKi8KKwlscyA9IGJsa2lkX3Byb2JlX2dldF9wYXJ0aXRpb25zKHByKTsKKwlpZiAoIWxzKQorCQllcnJ4KEVYSVRfRkFJTFVSRSwgIiVzOiBmYWlsZWQgdG8gcmVhZCBwYXJ0aXRpb25zXG4iLCBkZXZuYW1lKTsKKworCW5wYXJ0cyA9IGJsa2lkX3BhcnRsaXN0X251bW9mX3BhcnRpdGlvbnMobHMpOworCWlmICghbnBhcnRzKQorCQkgZXJyeChFWElUX0ZBSUxVUkUsICIlczogZG9lcyBub3QgY29udGFpbnMgYW55ICIKKwkJCQkgImtub3duIHBhcnRpdGlvbiB0YWJsZVxuIiwgZGV2bmFtZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnBhcnRzOyBpKyspIHsKKwkJY29uc3QgY2hhciAqcDsKKwkJYmxraWRfcGFydGl0aW9uIHBhciA9IGJsa2lkX3BhcnRsaXN0X2dldF9wYXJ0aXRpb24obHMsIGkpOworCQlibGtpZF9wYXJ0dGFibGUgdGFiID0gYmxraWRfcGFydGl0aW9uX2dldF90YWJsZShwYXIpOworCisJCWlmIChpID09IDApIHsKKwkJCXJvb3RfdGFiID0gdGFiOworCQkJcHJpbnRmKCJzaXplOiAlbGx1LCBzZWN0b3Igc2l6ZTogJXUsICIKKwkJCQkJIlBUOiAlcywgb2Zmc2V0OiAlbGx1XG4tLS1cbiIsCisJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgYmxraWRfcHJvYmVfZ2V0X3NpemUocHIpLAorCQkJCWJsa2lkX3Byb2JlX2dldF9zZWN0b3JzaXplKHByKSwKKwkJCQlibGtpZF9wYXJ0dGFibGVfZ2V0X3R5cGUodGFiKSwKKwkJCQkodW5zaWduZWQgbG9uZyBsb25nKSBibGtpZF9wYXJ0dGFibGVfZ2V0X29mZnNldCh0YWIpKTsKKwkJfQorCQlwcmludGYoIiMlZDogJTEwbGx1ICUxMGxsdSAgMHgleCIsCisJCQlibGtpZF9wYXJ0aXRpb25fZ2V0X3BhcnRubyhwYXIpLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgYmxraWRfcGFydGl0aW9uX2dldF9zdGFydChwYXIpLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgYmxraWRfcGFydGl0aW9uX2dldF9zaXplKHBhciksCisJCQlibGtpZF9wYXJ0aXRpb25fZ2V0X3R5cGUocGFyKSk7CisKKwkJaWYgKHJvb3RfdGFiICE9IHRhYikKKwkJCS8qIHN1YnBhcnRpdGlvbiAqLworCQkJcHJpbnRmKCIgKCVzKSIsIGJsa2lkX3BhcnR0YWJsZV9nZXRfdHlwZSh0YWIpKTsKKworCQlwID0gYmxraWRfcGFydGl0aW9uX2dldF9uYW1lKHBhcik7CisJCWlmIChwKQorCQkJcHJpbnRmKCIgbmFtZT0nJXMnIiwgcCk7CisJCXAgPSBibGtpZF9wYXJ0aXRpb25fZ2V0X3V1aWQocGFyKTsKKwkJaWYgKHApCisJCQlwcmludGYoIiB1dWlkPSclcyciLCBwKTsKKwkJcCA9IGJsa2lkX3BhcnRpdGlvbl9nZXRfdHlwZV9zdHJpbmcocGFyKTsKKwkJaWYgKHApCisJCQlwcmludGYoIiB0eXBlPSclcyciLCBwKTsKKworCQlwdXRjKCdcbicsIHN0ZG91dCk7CisJfQorCisJYmxraWRfZnJlZV9wcm9iZShwcik7CisKKwlyZXR1cm4gRVhJVF9TVUNDRVNTOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NhbXBsZXMvc3VwZXJibG9ja3MuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zYW1wbGVzL3N1cGVyYmxvY2tzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc2YzI5ZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zYW1wbGVzL3N1cGVyYmxvY2tzLmMKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxlcnIuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSA8YmxraWQuaD4KKworI2luY2x1ZGUgImMuaCIKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlpbnQgcmM7CisJY2hhciAqZGV2bmFtZTsKKwlibGtpZF9wcm9iZSBwcjsKKworCWlmIChhcmdjIDwgMikgeworCQlmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiAlcyA8ZGV2aWNlPiAgIgorCQkJCSItLSBwcmludHMgc3VwZXJibG9ja3MgZGV0YWlscyBhYm91dCB0aGUgZGV2aWNlXG4iLAorCQkJCXByb2dyYW1faW52b2NhdGlvbl9zaG9ydF9uYW1lKTsKKwkJcmV0dXJuIEVYSVRfRkFJTFVSRTsKKwl9CisKKwlkZXZuYW1lID0gYXJndlsxXTsKKwlwciA9IGJsa2lkX25ld19wcm9iZV9mcm9tX2ZpbGVuYW1lKGRldm5hbWUpOworCWlmICghcHIpCisJCWVycihFWElUX0ZBSUxVUkUsICIlczogZmFpbGQgdG8gY3JlYXRlIGEgbmV3IGxpYmJsa2lkIHByb2JlIiwKKwkJCQlkZXZuYW1lKTsKKworCS8qIGVuYWJsZSB0b3BvbG9neSBwcm9iaW5nICovCisJYmxraWRfcHJvYmVfZW5hYmxlX3N1cGVyYmxvY2tzKHByLCBUUlVFKTsKKworCS8qIHNldCBhbGwgZmxhZ3MgKi8KKwlibGtpZF9wcm9iZV9zZXRfc3VwZXJibG9ja3NfZmxhZ3MocHIsCisJCQlCTEtJRF9TVUJMS1NfTEFCRUwgfCBCTEtJRF9TVUJMS1NfTEFCRUxSQVcgfAorCQkJQkxLSURfU1VCTEtTX1VVSUQgfCBCTEtJRF9TVUJMS1NfVVVJRFJBVyB8CisJCQlCTEtJRF9TVUJMS1NfVFlQRSB8IEJMS0lEX1NVQkxLU19TRUNUWVBFIHwKKwkJCUJMS0lEX1NVQkxLU19VU0FHRSB8IEJMS0lEX1NVQkxLU19WRVJTSU9OIHwKKwkJCUJMS0lEX1NVQkxLU19NQUdJQyk7CisKKwlyYyA9IGJsa2lkX2RvX3NhZmVwcm9iZShwcik7CisJaWYgKHJjID09IC0xKQorCQllcnJ4KEVYSVRfRkFJTFVSRSwgIiVzOiBibGtpZF9kb19zYWZlcHJvYmUoKSBmYWlsZWQiLCBkZXZuYW1lKTsKKwllbHNlIGlmIChyYyA9PSAxKQorCQl3YXJueCgiJXM6IGNhbm5vdCBnYXRoZXIgaW5mb3JtYXRpb24gYWJvdXQgc3VwZXJibG9ja3MiLCBkZXZuYW1lKTsKKwllbHNlIHsKKwkJaW50IGksIG52YWxzID0gYmxraWRfcHJvYmVfbnVtb2ZfdmFsdWVzKHByKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgbnZhbHM7IGkrKykgeworCQkJY29uc3QgY2hhciAqbmFtZSwgKmRhdGE7CisKKwkJCWJsa2lkX3Byb2JlX2dldF92YWx1ZShwciwgaSwgJm5hbWUsICZkYXRhLCBOVUxMKTsKKwkJCXByaW50ZigiXHQlcyA9ICVzXG4iLCBuYW1lLCBkYXRhKTsKKwkJfQorCX0KKworCWJsa2lkX2ZyZWVfcHJvYmUocHIpOworCXJldHVybiBFWElUX1NVQ0NFU1M7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc2FtcGxlcy90b3BvbG9neS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NhbXBsZXMvdG9wb2xvZ3kuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzNjZDllCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NhbXBsZXMvdG9wb2xvZ3kuYwpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGVyci5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpbmNsdWRlIDxibGtpZC5oPgorCisjaW5jbHVkZSAiYy5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWludCByYzsKKwljaGFyICpkZXZuYW1lOworCWJsa2lkX3Byb2JlIHByOworCWJsa2lkX3RvcG9sb2d5IHRwOworCisJaWYgKGFyZ2MgPCAyKSB7CisJCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDxkZXZpY2U+ICAiCisJCQkJIi0tIHByaW50cyB0b3BvbG9neSBkZXRhaWxzIGFib3V0IHRoZSBkZXZpY2VcbiIsCisJCQkJcHJvZ3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWUpOworCQlyZXR1cm4gRVhJVF9GQUlMVVJFOworCX0KKworCWRldm5hbWUgPSBhcmd2WzFdOworCXByID0gYmxraWRfbmV3X3Byb2JlX2Zyb21fZmlsZW5hbWUoZGV2bmFtZSk7CisJaWYgKCFwcikKKwkJZXJyKEVYSVRfRkFJTFVSRSwgIiVzOiBmYWlsZCB0byBjcmVhdGUgYSBuZXcgbGliYmxraWQgcHJvYmUiLAorCQkJCWRldm5hbWUpOworCS8qCisJICogQmluYXJ5IGludGVyZmFjZQorCSAqLworCXRwID0gYmxraWRfcHJvYmVfZ2V0X3RvcG9sb2d5KHByKTsKKwlpZiAodHApIHsKKwkJcHJpbnRmKCItLS0tLSBiaW5hcnkgaW50ZXJmYWNlOlxuIik7CisJCXByaW50ZigiXHRhbGlnbm1lbnQgb2Zmc2V0ICAgICA6ICVsdVxuIiwKKwkJCQlibGtpZF90b3BvbG9neV9nZXRfYWxpZ25tZW50X29mZnNldCh0cCkpOworCQlwcmludGYoIlx0bWluaW11bSBpbyBzaXplICAgICAgOiAlbHVcbiIsCisJCQkJYmxraWRfdG9wb2xvZ3lfZ2V0X21pbmltdW1faW9fc2l6ZSh0cCkpOworCQlwcmludGYoIlx0b3B0aW1hbCBpbyBzaXplICAgICAgOiAlbHVcbiIsCisJCQkJYmxraWRfdG9wb2xvZ3lfZ2V0X29wdGltYWxfaW9fc2l6ZSh0cCkpOworCQlwcmludGYoIlx0bG9naWNhbCBzZWN0b3Igc2l6ZSAgOiAlbHVcbiIsCisJCQkJYmxraWRfdG9wb2xvZ3lfZ2V0X2xvZ2ljYWxfc2VjdG9yX3NpemUodHApKTsKKwkJcHJpbnRmKCJcdHBoeXNpY2FsIHNlY3RvciBzaXplIDogJWx1XG4iLAorCQkJCWJsa2lkX3RvcG9sb2d5X2dldF9waHlzaWNhbF9zZWN0b3Jfc2l6ZSh0cCkpOworCX0KKworCS8qCisJICogTkFNRT12YWx1ZSBpbnRlcmZhY2UKKwkgKi8KKworCS8qIGVuYWJsZSB0b3BvbG9neSBwcm9iaW5nICovCisJYmxraWRfcHJvYmVfZW5hYmxlX3RvcG9sb2d5KHByLCBUUlVFKTsKKworCS8qIGRpc2FibGUgc3VwZXJibG9ja3MgcHJvYmluZyAoZW5hYmxlZCBieSBkZWZhdWx0KSAqLworCWJsa2lkX3Byb2JlX2VuYWJsZV9zdXBlcmJsb2NrcyhwciwgRkFMU0UpOworCisJcmMgPSBibGtpZF9kb19mdWxscHJvYmUocHIpOworCWlmIChyYyA9PSAtMSkKKwkJZXJyeChFWElUX0ZBSUxVUkUsICIlczogYmxraWRfZG9fZnVsbHByb2JlKCkgZmFpbGVkIiwgZGV2bmFtZSk7CisJZWxzZSBpZiAocmMgPT0gMSkKKwkJd2FybngoIiVzOiBtaXNzaW5nIHRvcG9sb2d5IGluZm9ybWF0aW9uIiwgZGV2bmFtZSk7CisJZWxzZSB7CisJCWludCBpLCBudmFscyA9IGJsa2lkX3Byb2JlX251bW9mX3ZhbHVlcyhwcik7CisKKwkJcHJpbnRmKCItLS0tLSBOQU1FPXZhbHVlIGludGVyZmFjZSAodmFsdWVzOiAlZCk6XG4iLCBudmFscyk7CisKKwkJZm9yIChpID0gMDsgaSA8IG52YWxzOyBpKyspIHsKKwkJCWNvbnN0IGNoYXIgKm5hbWUsICpkYXRhOworCisJCQlibGtpZF9wcm9iZV9nZXRfdmFsdWUocHIsIGksICZuYW1lLCAmZGF0YSwgTlVMTCk7CisJCQlwcmludGYoIlx0JXMgPSAlc1xuIiwgbmFtZSwgZGF0YSk7CisJCX0KKwl9CisKKwlibGtpZF9mcmVlX3Byb2JlKHByKTsKKwlyZXR1cm4gRVhJVF9TVUNDRVNTOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9NYWtlZmlsZS5hbSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ3OThiNgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSw3MiBAQAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCisKK1NVQkRJUlMgPSBzdXBlcmJsb2NrcyB0b3BvbG9neSBwYXJ0aXRpb25zIC4KKworY29tbW9uX2xkYWRkID0KK2NvbW1vbl9jZmxhZ3MgPQorCitpZiBIQVZFX1VVSUQKK2lmIEJVSUxEX0xJQlVVSUQKK2NvbW1vbl9sZGFkZCArPSAkKHVsX2xpYnV1aWRfbGEpCitjb21tb25fY2ZsYWdzICs9IC1JJCh1bF9saWJ1dWlkX3NyY2RpcikKK2Vsc2UKK2NvbW1vbl9sZGFkZCArPSAkKFVVSURfTElCUykKK2NvbW1vbl9jZmxhZ3MgKz0gJChVVUlEX0NGTEFHUykKK2VuZGlmCitlbmRpZgorCitBTV9DUFBGTEFHUyArPSAtSSQodWxfbGliYmxraWRfaW5jZGlyKSAtSSQodWxfbGliYmxraWRfc3JjZGlyKSAkKGNvbW1vbl9jZmxhZ3MpCisKKyMgaW5jbHVkZXMKK2Jsa2lkaW5jZGlyID0gJChpbmNsdWRlZGlyKS9ibGtpZAorbm9kaXN0X2Jsa2lkaW5jX0hFQURFUlMgPSBibGtpZC5oCisKK3VzcmxpYl9leGVjX0xUTElCUkFSSUVTID0gbGliYmxraWQubGEKK2xpYmJsa2lkX2xhX1NPVVJDRVMgPSBjYWNoZS5jIGRldi5jIGRldm5hbWUuYyBkZXZuby5jIGdldHNpemUuYyBsbHNlZWsuYyAgXAorCQkgICAgIHByb2JlLmMgcmVhZC5jIHJlc29sdmUuYyBzYXZlLmMgdGFnLmMgdmVyc2lvbi5jIHZlcmlmeS5jIFwKKwkJICAgICBlbmNvZGUuYyBsaXN0LmggYmxraWRQLmggc3VwZXJibG9ja3Mvc3VwZXJibG9ja3MuaCBcCisJCSAgICAgY29uZmlnLmMgZXZhbHVhdGUuYyBmYXQuaCBcCisJCSAgICAgJChibGtpZGluY19IRUFERVJTKSBcCisJCSAgICAgJCh0b3Bfc3JjZGlyKS9saWIvYmxrZGV2LmMgXAorCQkgICAgICQodG9wX3NyY2RpcikvbGliL2xpbnV4X3ZlcnNpb24uYyBcCisJCSAgICAgJCh0b3Bfc3JjZGlyKS9saWIvY2Fub25pY2FsaXplLmMgXAorCQkgICAgICQodG9wX3NyY2RpcikvbGliL21kNS5jIFwKKwkJICAgICAkKHRvcF9zcmNkaXIpL2xpYi9jcmMzMi5jCisKK25vZGlzdF9saWJibGtpZF9sYV9TT1VSQ0VTID0gYmxraWQuaAorCitsaWJibGtpZF9sYV9MSUJBREQgPSBzdXBlcmJsb2Nrcy9saWJibGtpZF9zdXBlcmJsb2Nrcy5sYSBcCisJCSAgICAgdG9wb2xvZ3kvbGliYmxraWRfdG9wb2xvZ3kubGEgXAorCQkgICAgIHBhcnRpdGlvbnMvbGliYmxraWRfcGFydGl0aW9ucy5sYSBcCisJCSAgICAgJChjb21tb25fbGRhZGQpCisKK2xpYmJsa2lkX2xhX0RFUEVOREVOQ0lFUyA9ICQobGliYmxraWRfbGFfTElCQUREKSBibGtpZC5zeW0gYmxraWQuaC5pbgorCitsaWJibGtpZF9sYV9MREZMQUdTID0gLVdsLC0tdmVyc2lvbi1zY3JpcHQ9JCh1bF9saWJibGtpZF9zcmNkaXIpL2Jsa2lkLnN5bSBcCisgICAgICAgICAgICAgICAgICAgICAgLXZlcnNpb24taW5mbyAkKExJQkJMS0lEX1ZFUlNJT05fSU5GTykKKwordGVzdHMgPSB0ZXN0X2NhY2hlIHRlc3RfY29uZmlnIHRlc3RfZGV2IHRlc3RfZGV2bmFtZSB0ZXN0X2Rldm5vIHRlc3RfZ2V0c2l6ZSBcCisJdGVzdF9yZWFkIHRlc3RfcmVzb2x2ZSB0ZXN0X3NhdmUgdGVzdF90YWcgdGVzdF92ZXJpZnkgdGVzdF9ldmFsdWF0ZQorCitFWFRSQV9ESVNUID0gYmxraWQuc3ltIHRzdF90eXBlcy5jIGJsa2lkLmguaW4KK0NMRUFORklMRVMgPSAkKHRlc3RzKQorCit0ZXN0czogYWxsICQodGVzdHMpCit0ZXN0XyU6ICUuYworCSQoQ09NUElMRSkgLURURVNUX1BST0dSQU0gJDwgLmxpYnMvbGliYmxraWQuYSAtbyAkQCAkKFVVSURfTElCUykKKworCisjIG1vdmUgbGliIGZyb20gJCh1c3JsaWJfZXhlY2RpcikgdG8gJChsaWJkaXIpIGlmIG5lZWRlZAoraW5zdGFsbC1leGVjLWhvb2s6CisJaWYgdGVzdCAiJCh1c3JsaWJfZXhlY2RpcikiICE9ICIkKGxpYmRpcikiOyB0aGVuIFwKKwkJbWtkaXIgLXAgJChERVNURElSKSQobGliZGlyKTsgXAorCQltdiAkKERFU1RESVIpJCh1c3JsaWJfZXhlY2RpcikvbGliYmxraWQuc28uKiAkKERFU1RESVIpJChsaWJkaXIpOyBcCisJCXNvX2ltZ19uYW1lPSQkKHJlYWRsaW5rICQoREVTVERJUikkKHVzcmxpYl9leGVjZGlyKS9saWJibGtpZC5zbyk7IFwKKwkJc29faW1nX3JlbF90YXJnZXQ9JCQoZWNobyAkKHVzcmxpYl9leGVjZGlyKSB8IHNlZCAncyxcKF4vXHxcKVteL11bXi9dKiwuLixnJyk7IFwKKwkJKGNkICQoREVTVERJUikkKHVzcmxpYl9leGVjZGlyKSAmJiBcCisJCQlybSAtZiBsaWJibGtpZC5zbyAmJiBcCisJCQkkKExOX1MpICQkc29faW1nX3JlbF90YXJnZXQkKGxpYmRpcikvJCRzb19pbWdfbmFtZSBsaWJibGtpZC5zbyk7IFwKKwlmaQorCit1bmluc3RhbGwtaG9vazoKKwlybSAtZiAkKERFU1RESVIpJChsaWJkaXIpL2xpYmJsa2lkLnNvKgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQxY2QyNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw5MjIgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoZGlzdF9ub2luc3RfREFUQSkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL2Jsa2lkLmguaW4gXAorCSQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK0BCVUlMRF9MSUJVVUlEX1RSVUVAQEhBVkVfVVVJRF9UUlVFQGFtX19hcHBlbmRfMSA9ICQodWxfbGlidXVpZF9sYSkKK0BCVUlMRF9MSUJVVUlEX1RSVUVAQEhBVkVfVVVJRF9UUlVFQGFtX19hcHBlbmRfMiA9IC1JJCh1bF9saWJ1dWlkX3NyY2RpcikKK0BCVUlMRF9MSUJVVUlEX0ZBTFNFQEBIQVZFX1VVSURfVFJVRUBhbV9fYXBwZW5kXzMgPSAkKFVVSURfTElCUykKK0BCVUlMRF9MSUJVVUlEX0ZBTFNFQEBIQVZFX1VVSURfVFJVRUBhbV9fYXBwZW5kXzQgPSAkKFVVSURfQ0ZMQUdTKQorc3ViZGlyID0gc2hsaWJzL2Jsa2lkL3NyYworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9IGJsa2lkLmgKK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQodXNybGliX2V4ZWNkaXIpIiBcCisJIiQoREVTVERJUikkKGJsa2lkaW5jZGlyKSIKK0xUTElCUkFSSUVTID0gJCh1c3JsaWJfZXhlY19MVExJQlJBUklFUykKK2FtX19ERVBFTkRFTkNJRVNfMSA9CitAQlVJTERfTElCVVVJRF9GQUxTRUBASEFWRV9VVUlEX1RSVUVAYW1fX0RFUEVOREVOQ0lFU18yID0gIFwKK0BCVUlMRF9MSUJVVUlEX0ZBTFNFQEBIQVZFX1VVSURfVFJVRUAJJChhbV9fREVQRU5ERU5DSUVTXzEpCithbV9fREVQRU5ERU5DSUVTXzMgPSAkKGFtX19hcHBlbmRfMSkgJChhbV9fREVQRU5ERU5DSUVTXzIpCithbV9saWJibGtpZF9sYV9PQkpFQ1RTID0gY2FjaGUubG8gZGV2LmxvIGRldm5hbWUubG8gZGV2bm8ubG8gXAorCWdldHNpemUubG8gbGxzZWVrLmxvIHByb2JlLmxvIHJlYWQubG8gcmVzb2x2ZS5sbyBzYXZlLmxvIFwKKwl0YWcubG8gdmVyc2lvbi5sbyB2ZXJpZnkubG8gZW5jb2RlLmxvIGNvbmZpZy5sbyBldmFsdWF0ZS5sbyBcCisJYmxrZGV2LmxvIGxpbnV4X3ZlcnNpb24ubG8gY2Fub25pY2FsaXplLmxvIG1kNS5sbyBjcmMzMi5sbworbm9kaXN0X2xpYmJsa2lkX2xhX09CSkVDVFMgPQorbGliYmxraWRfbGFfT0JKRUNUUyA9ICQoYW1fbGliYmxraWRfbGFfT0JKRUNUUykgXAorCSQobm9kaXN0X2xpYmJsa2lkX2xhX09CSkVDVFMpCitBTV9WX2x0ID0gJChhbV9fdl9sdF8kKFYpKQorYW1fX3ZfbHRfID0gJChhbV9fdl9sdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2x0XzAgPSAtLXNpbGVudAorbGliYmxraWRfbGFfTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQobGliYmxraWRfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSAkKGxpYmJsa2lkX2xhX1NPVVJDRVMpICQobm9kaXN0X2xpYmJsa2lkX2xhX1NPVVJDRVMpCitESVNUX1NPVVJDRVMgPSAkKGxpYmJsa2lkX2xhX1NPVVJDRVMpCitSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitIRUFERVJTID0gJChub2Rpc3RfYmxraWRpbmNfSEVBREVSUykKK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisJZGlzdGRpcgorRVRBR1MgPSBldGFncworQ1RBR1MgPSBjdGFncworRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKK2FtX19yZWxhdGl2aXplID0gXAorICBkaXIwPWBwd2RgOyBcCisgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKyAgICAgIGVsc2UgXAorICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKyAgICAgICAgZWxzZSBcCisgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorICAgICAgICBmaTsgXAorICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorICAgICAgZmk7IFwKKyAgICBmaTsgXAorICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorICBkb25lOyBcCisgIHJlbGRpcj0iJCRkaXIyIgorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCBcCisJLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIiBcCisJLUkkKHVsX2xpYmJsa2lkX2luY2RpcikgLUkkKHVsX2xpYmJsa2lkX3NyY2RpcikgXAorCSQoY29tbW9uX2NmbGFncykKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitTVUJESVJTID0gc3VwZXJibG9ja3MgdG9wb2xvZ3kgcGFydGl0aW9ucyAuCitjb21tb25fbGRhZGQgPSAkKGFtX19hcHBlbmRfMSkgJChhbV9fYXBwZW5kXzMpCitjb21tb25fY2ZsYWdzID0gJChhbV9fYXBwZW5kXzIpICQoYW1fX2FwcGVuZF80KQorCisjIGluY2x1ZGVzCitibGtpZGluY2RpciA9ICQoaW5jbHVkZWRpcikvYmxraWQKK25vZGlzdF9ibGtpZGluY19IRUFERVJTID0gYmxraWQuaAordXNybGliX2V4ZWNfTFRMSUJSQVJJRVMgPSBsaWJibGtpZC5sYQorbGliYmxraWRfbGFfU09VUkNFUyA9IGNhY2hlLmMgZGV2LmMgZGV2bmFtZS5jIGRldm5vLmMgZ2V0c2l6ZS5jIGxsc2Vlay5jICBcCisJCSAgICAgcHJvYmUuYyByZWFkLmMgcmVzb2x2ZS5jIHNhdmUuYyB0YWcuYyB2ZXJzaW9uLmMgdmVyaWZ5LmMgXAorCQkgICAgIGVuY29kZS5jIGxpc3QuaCBibGtpZFAuaCBzdXBlcmJsb2Nrcy9zdXBlcmJsb2Nrcy5oIFwKKwkJICAgICBjb25maWcuYyBldmFsdWF0ZS5jIGZhdC5oIFwKKwkJICAgICAkKGJsa2lkaW5jX0hFQURFUlMpIFwKKwkJICAgICAkKHRvcF9zcmNkaXIpL2xpYi9ibGtkZXYuYyBcCisJCSAgICAgJCh0b3Bfc3JjZGlyKS9saWIvbGludXhfdmVyc2lvbi5jIFwKKwkJICAgICAkKHRvcF9zcmNkaXIpL2xpYi9jYW5vbmljYWxpemUuYyBcCisJCSAgICAgJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMgXAorCQkgICAgICQodG9wX3NyY2RpcikvbGliL2NyYzMyLmMKKworbm9kaXN0X2xpYmJsa2lkX2xhX1NPVVJDRVMgPSBibGtpZC5oCitsaWJibGtpZF9sYV9MSUJBREQgPSBzdXBlcmJsb2Nrcy9saWJibGtpZF9zdXBlcmJsb2Nrcy5sYSBcCisJCSAgICAgdG9wb2xvZ3kvbGliYmxraWRfdG9wb2xvZ3kubGEgXAorCQkgICAgIHBhcnRpdGlvbnMvbGliYmxraWRfcGFydGl0aW9ucy5sYSBcCisJCSAgICAgJChjb21tb25fbGRhZGQpCisKK2xpYmJsa2lkX2xhX0RFUEVOREVOQ0lFUyA9ICQobGliYmxraWRfbGFfTElCQUREKSBibGtpZC5zeW0gYmxraWQuaC5pbgorbGliYmxraWRfbGFfTERGTEFHUyA9IC1XbCwtLXZlcnNpb24tc2NyaXB0PSQodWxfbGliYmxraWRfc3JjZGlyKS9ibGtpZC5zeW0gXAorICAgICAgICAgICAgICAgICAgICAgIC12ZXJzaW9uLWluZm8gJChMSUJCTEtJRF9WRVJTSU9OX0lORk8pCisKK3Rlc3RzID0gdGVzdF9jYWNoZSB0ZXN0X2NvbmZpZyB0ZXN0X2RldiB0ZXN0X2Rldm5hbWUgdGVzdF9kZXZubyB0ZXN0X2dldHNpemUgXAorCXRlc3RfcmVhZCB0ZXN0X3Jlc29sdmUgdGVzdF9zYXZlIHRlc3RfdGFnIHRlc3RfdmVyaWZ5IHRlc3RfZXZhbHVhdGUKKworRVhUUkFfRElTVCA9IGJsa2lkLnN5bSB0c3RfdHlwZXMuYyBibGtpZC5oLmluCitDTEVBTkZJTEVTID0gJCh0ZXN0cykKK2FsbDogYWxsLXJlY3Vyc2l2ZQorCisuU1VGRklYRVM6CisuU1VGRklYRVM6IC5jIC5sbyAubyAub2JqCiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL2Jsa2lkL3NyYy9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL2Jsa2lkL3NyYy9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CitibGtpZC5oOiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2RpcikvYmxraWQuaC5pbgorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRACitpbnN0YWxsLXVzcmxpYl9leGVjTFRMSUJSQVJJRVM6ICQodXNybGliX2V4ZWNfTFRMSUJSQVJJRVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJCh1c3JsaWJfZXhlY2RpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHVzcmxpYl9leGVjZGlyKSIKKwlAbGlzdD0nJCh1c3JsaWJfZXhlY19MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKHVzcmxpYl9leGVjZGlyKSIgfHwgbGlzdD07IFwKKwlsaXN0Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorCSAgICBsaXN0Mj0iJCRsaXN0MiAkJHAiOyBcCisJICBlbHNlIDo7IGZpOyBcCisJZG9uZTsgXAorCXRlc3QgLXogIiQkbGlzdDIiIHx8IHsgXAorCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICckKERFU1RESVIpJCh1c3JsaWJfZXhlY2RpciknIjsgXAorCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgIiQoREVTVERJUikkKHVzcmxpYl9leGVjZGlyKSI7IFwKKwl9CisKK3VuaW5zdGFsbC11c3JsaWJfZXhlY0xUTElCUkFSSUVTOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQodXNybGliX2V4ZWNfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJCh1c3JsaWJfZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICAkKGFtX19zdHJpcF9kaXIpIFwKKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNURElSKSQodXNybGliX2V4ZWNkaXIpLyQkZiciOyBcCisJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQodXNybGliX2V4ZWNkaXIpLyQkZiI7IFwKKwlkb25lCisKK2NsZWFuLXVzcmxpYl9leGVjTFRMSUJSQVJJRVM6CisJLXRlc3QgLXogIiQodXNybGliX2V4ZWNfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKHVzcmxpYl9leGVjX0xUTElCUkFSSUVTKQorCUBsaXN0PSckKHVzcmxpYl9leGVjX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisJICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCisJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisJZG9uZQorbGliYmxraWQubGE6ICQobGliYmxraWRfbGFfT0JKRUNUUykgJChsaWJibGtpZF9sYV9ERVBFTkRFTkNJRVMpIAorCSQoQU1fVl9DQ0xEKSQobGliYmxraWRfbGFfTElOSykgLXJwYXRoICQodXNybGliX2V4ZWNkaXIpICQobGliYmxraWRfbGFfT0JKRUNUUykgJChsaWJibGtpZF9sYV9MSUJBREQpICQoTElCUykKKworbW9zdGx5Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi4kKE9CSkVYVCkKKworZGlzdGNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICoudGFiLmMKKworQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2Jsa2Rldi5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2NhY2hlLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY2Fub25pY2FsaXplLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY29uZmlnLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY3JjMzIuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9kZXYuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9kZXZuYW1lLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZGV2bm8uUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9lbmNvZGUuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ldmFsdWF0ZS5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2dldHNpemUuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saW51eF92ZXJzaW9uLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGxzZWVrLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWQ1LlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcHJvYmUuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9yZWFkLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcmVzb2x2ZS5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3NhdmUuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90YWcuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS92ZXJpZnkuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS92ZXJzaW9uLlBsb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoTFRDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCitibGtkZXYubG86ICQodG9wX3NyY2RpcikvbGliL2Jsa2Rldi5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGJsa2Rldi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvYmxrZGV2LlRwbyAtYyAtbyBibGtkZXYubG8gYHRlc3QgLWYgJyQodG9wX3NyY2RpcikvbGliL2Jsa2Rldi5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL2xpYi9ibGtkZXYuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvYmxrZGV2LlRwbyAkKERFUERJUikvYmxrZGV2LlBsbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2RpcikvbGliL2Jsa2Rldi5jJyBvYmplY3Q9J2Jsa2Rldi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGJsa2Rldi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvYmxrZGV2LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL2Jsa2Rldi5jCisKK2xpbnV4X3ZlcnNpb24ubG86ICQodG9wX3NyY2RpcikvbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsaW51eF92ZXJzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saW51eF92ZXJzaW9uLlRwbyAtYyAtbyBsaW51eF92ZXJzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL2xpbnV4X3ZlcnNpb24uYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvbGludXhfdmVyc2lvbi5UcG8gJChERVBESVIpL2xpbnV4X3ZlcnNpb24uUGxvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9saWIvbGludXhfdmVyc2lvbi5jJyBvYmplY3Q9J2xpbnV4X3ZlcnNpb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBsaW51eF92ZXJzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL2xpYi9saW51eF92ZXJzaW9uLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL2xpbnV4X3ZlcnNpb24uYworCitjYW5vbmljYWxpemUubG86ICQodG9wX3NyY2RpcikvbGliL2Nhbm9uaWNhbGl6ZS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIGNhbm9uaWNhbGl6ZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvY2Fub25pY2FsaXplLlRwbyAtYyAtbyBjYW5vbmljYWxpemUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2RpcikvbGliL2Nhbm9uaWNhbGl6ZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL2xpYi9jYW5vbmljYWxpemUuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY2Fub25pY2FsaXplLlRwbyAkKERFUERJUikvY2Fub25pY2FsaXplLlBsbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2RpcikvbGliL2Nhbm9uaWNhbGl6ZS5jJyBvYmplY3Q9J2Nhbm9uaWNhbGl6ZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1jIC1vIGNhbm9uaWNhbGl6ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvY2Fub25pY2FsaXplLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL2Nhbm9uaWNhbGl6ZS5jCisKK21kNS5sbzogJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgbWQ1LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9tZDUuVHBvIC1jIC1vIG1kNS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL21kNS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tZDUuVHBvICQoREVQRElSKS9tZDUuUGxvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMnIG9iamVjdD0nbWQ1LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gbWQ1LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL2xpYi9tZDUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMKKworY3JjMzIubG86ICQodG9wX3NyY2RpcikvbGliL2NyYzMyLmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgY3JjMzIubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2NyYzMyLlRwbyAtYyAtbyBjcmMzMi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvY3JjMzIuYycgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9saWIvY3JjMzIuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvY3JjMzIuVHBvICQoREVQRElSKS9jcmMzMi5QbG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL2xpYi9jcmMzMi5jJyBvYmplY3Q9J2NyYzMyLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gY3JjMzIubG8gYHRlc3QgLWYgJyQodG9wX3NyY2RpcikvbGliL2NyYzMyLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL2NyYzMyLmMKKworbW9zdGx5Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgKi5sbworCitjbGVhbi1saWJ0b29sOgorCS1ybSAtcmYgLmxpYnMgX2xpYnMKK2luc3RhbGwtbm9kaXN0X2Jsa2lkaW5jSEVBREVSUzogJChub2Rpc3RfYmxraWRpbmNfSEVBREVSUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKGJsa2lkaW5jZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoYmxraWRpbmNkaXIpIgorCUBsaXN0PSckKG5vZGlzdF9ibGtpZGluY19IRUFERVJTKSc7IHRlc3QgLW4gIiQoYmxraWRpbmNkaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGVjaG8gIiQkZCQkcCI7IFwKKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICBlY2hvICIgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAnJChERVNURElSKSQoYmxraWRpbmNkaXIpJyI7IFwKKwkgICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgIiQoREVTVERJUikkKGJsa2lkaW5jZGlyKSIgfHwgZXhpdCAkJD87IFwKKwlkb25lCisKK3VuaW5zdGFsbC1ub2Rpc3RfYmxraWRpbmNIRUFERVJTOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQobm9kaXN0X2Jsa2lkaW5jX0hFQURFUlMpJzsgdGVzdCAtbiAiJChibGtpZGluY2RpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQoYmxraWRpbmNkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQoYmxraWRpbmNkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCiskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKwkgIGNhc2UgJCRmIGluIFwKKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwlkb3Rfc2Vlbj1ubzsgXAorCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGRvdF9zZWVuPXllczsgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorCSAgZWxzZSBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisJICBmaTsgXAorCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKwlkb25lOyBcCisJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisJZmk7IHRlc3QgLXogIiQkZmFpbCIKKworJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisJICBjYXNlICQkZiBpbiBcCisJICAgICo9KiB8IC0tWyFrXSopOzsgXAorCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZG90X3NlZW49bm87IFwKKwljYXNlICIkQCIgaW4gXAorCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorCWVzYWM7IFwKKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlyZXY9IiQkcmV2IC4iOyBcCisJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisJICBlbHNlIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKwkgIGZpOyBcCisJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisJICB8fCBldmFsICQkZmFpbGNvbTsgXAorCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgordGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKwlkb25lCitjdGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisJZG9uZQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD0uOyBcCisJZWxzZSBcCisJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD07IFwKKwlmaTsgXAorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKwkgICAgICAgIGRpc3RkaXIpIFwKKwkgICAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKERBVEEpICQoSEVBREVSUykKK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKK2luc3RhbGxkaXJzLWFtOgorCWZvciBkaXIgaW4gIiQoREVTVERJUikkKHVzcmxpYl9leGVjZGlyKSIgIiQoREVTVERJUikkKGJsa2lkaW5jZGlyKSI7IGRvIFwKKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKKwlkb25lCitpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENMRUFORklMRVMpIiB8fCBybSAtZiAkKENMRUFORklMRVMpCisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi11c3JsaWJfZXhlY0xUTElCUkFSSUVTIFwKKwltb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1yZWN1cnNpdmUKKworZHZpLWFtOgorCitodG1sOiBodG1sLXJlY3Vyc2l2ZQorCitodG1sLWFtOgorCitpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbm9kaXN0X2Jsa2lkaW5jSEVBREVSUworCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtdXNybGliX2V4ZWNMVExJQlJBUklFUworCUAkKE5PUk1BTF9JTlNUQUxMKQorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1ob29rCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjoKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLXJlY3Vyc2l2ZQorCitwZGYtYW06CisKK3BzOiBwcy1yZWN1cnNpdmUKKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW5vZGlzdF9ibGtpZGluY0hFQURFUlMgXAorCXVuaW5zdGFsbC11c3JsaWJfZXhlY0xUTElCUkFSSUVTCisJQCQoTk9STUFMX0lOU1RBTEwpCisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdW5pbnN0YWxsLWhvb2sKKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAorCWluc3RhbGwtYW0gaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUgXAorCXVuaW5zdGFsbC1hbQorCisuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisJY2xlYW4tdXNybGliX2V4ZWNMVExJQlJBUklFUyBjdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIFwKKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZXhlYy1ob29rIFwKKwlpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gXAorCWluc3RhbGwtbWFuIGluc3RhbGwtbm9kaXN0X2Jsa2lkaW5jSEVBREVSUyBpbnN0YWxsLXBkZiBcCisJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAorCWluc3RhbGwtdXNybGliX2V4ZWNMVExJQlJBUklFUyBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKwlpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtaG9vayBcCisJdW5pbnN0YWxsLW5vZGlzdF9ibGtpZGluY0hFQURFUlMgXAorCXVuaW5zdGFsbC11c3JsaWJfZXhlY0xUTElCUkFSSUVTCisKKworJCh1bF9saWJibGtpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCiskKHVsX2xpYnV1aWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJ1dWlkX2J1aWxkZGlyKQorCit0ZXN0czogYWxsICQodGVzdHMpCit0ZXN0XyU6ICUuYworCSQoQ09NUElMRSkgLURURVNUX1BST0dSQU0gJDwgLmxpYnMvbGliYmxraWQuYSAtbyAkQCAkKFVVSURfTElCUykKKworIyBtb3ZlIGxpYiBmcm9tICQodXNybGliX2V4ZWNkaXIpIHRvICQobGliZGlyKSBpZiBuZWVkZWQKK2luc3RhbGwtZXhlYy1ob29rOgorCWlmIHRlc3QgIiQodXNybGliX2V4ZWNkaXIpIiAhPSAiJChsaWJkaXIpIjsgdGhlbiBcCisJCW1rZGlyIC1wICQoREVTVERJUikkKGxpYmRpcik7IFwKKwkJbXYgJChERVNURElSKSQodXNybGliX2V4ZWNkaXIpL2xpYmJsa2lkLnNvLiogJChERVNURElSKSQobGliZGlyKTsgXAorCQlzb19pbWdfbmFtZT0kJChyZWFkbGluayAkKERFU1RESVIpJCh1c3JsaWJfZXhlY2RpcikvbGliYmxraWQuc28pOyBcCisJCXNvX2ltZ19yZWxfdGFyZ2V0PSQkKGVjaG8gJCh1c3JsaWJfZXhlY2RpcikgfCBzZWQgJ3MsXCheL1x8XClbXi9dW14vXSosLi4sZycpOyBcCisJCShjZCAkKERFU1RESVIpJCh1c3JsaWJfZXhlY2RpcikgJiYgXAorCQkJcm0gLWYgbGliYmxraWQuc28gJiYgXAorCQkJJChMTl9TKSAkJHNvX2ltZ19yZWxfdGFyZ2V0JChsaWJkaXIpLyQkc29faW1nX25hbWUgbGliYmxraWQuc28pOyBcCisJZmkKKwordW5pbnN0YWxsLWhvb2s6CisJcm0gLWYgJChERVNURElSKSQobGliZGlyKS9saWJibGtpZC5zbyoKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9ibGtpZC5oLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9ibGtpZC5oLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYmI0MzcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL2Jsa2lkLmguaW4KQEAgLTAsMCArMSwzMjMgQEAKKy8qCisgKiBibGtpZC5oIC0gSW50ZXJmYWNlIGZvciBsaWJibGtpZCwgYSBsaWJyYXJ5IHRvIGlkZW50aWZ5IGJsb2NrIGRldmljZXMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgQW5kcmVhcyBEaWxnZXIKKyAqIENvcHlyaWdodCAoQykgMjAwMyBUaGVvZG9yZSBUcydvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaWZuZGVmIF9CTEtJRF9CTEtJRF9ICisjZGVmaW5lIF9CTEtJRF9CTEtJRF9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisjZGVmaW5lIEJMS0lEX1ZFUlNJT04gICAiQExJQkJMS0lEX1ZFUlNJT05AIgorI2RlZmluZSBCTEtJRF9EQVRFICAgICAgIkBMSUJCTEtJRF9EQVRFQCIKKworLyoqCisgKiBibGtpZF9kZXY6CisgKgorICogVGhlIGRldmljZSBvYmplY3Qga2VlcHMgaW5mb3JtYXRpb24gYWJvdXQgb25lIGRldmljZQorICovCit0eXBlZGVmIHN0cnVjdCBibGtpZF9zdHJ1Y3RfZGV2ICpibGtpZF9kZXY7CisKKy8qKgorICogYmxraWRfY2FjaGU6CisgKgorICogaW5mb3JtYXRpb24gYWJvdXQgYWxsIHN5c3RlbSBkZXZpY2VzCisgKi8KK3R5cGVkZWYgc3RydWN0IGJsa2lkX3N0cnVjdF9jYWNoZSAqYmxraWRfY2FjaGU7CisKKy8qKgorICogYmxraWRfcHJvYmU6CisgKgorICogbG93LWxldmVsIHByb2Jpbmcgc2V0dGluZworICovCit0eXBlZGVmIHN0cnVjdCBibGtpZF9zdHJ1Y3RfcHJvYmUgKmJsa2lkX3Byb2JlOworCisvKioKKyAqIGJsa2lkX3RvcG9sb2d5OgorICoKKyAqIGRldmljZSB0b3BvbG9neSBpbmZvcm1hdGlvbgorICovCit0eXBlZGVmIHN0cnVjdCBibGtpZF9zdHJ1Y3RfdG9wb2xvZ3kgKmJsa2lkX3RvcG9sb2d5OworCisvKioKKyAqIGJsa2lkX3BhcnRsaXN0CisgKgorICogbGlzdCBvZiBhbGwgZGV0ZWN0ZWQgcGFydGl0aW9ucyBhbmQgcGFydGl0aW9ucyB0YWJsZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgYmxraWRfc3RydWN0X3BhcnRsaXN0ICpibGtpZF9wYXJ0bGlzdDsKKworLyoqCisgKiBibGtpZF9wYXJ0aXRpb246CisgKgorICogaW5mb3JtYXRpb24gYWJvdXQgYSBwYXJ0aXRpb24KKyAqLwordHlwZWRlZiBzdHJ1Y3QgYmxraWRfc3RydWN0X3BhcnRpdGlvbiAqYmxraWRfcGFydGl0aW9uOworCisvKioKKyAqIGJsa2lkX3BhcnR0YWJsZToKKyAqCisgKiBpbmZvcm1hdGlvbiBhYm91dCBhIHBhcnRpdGlvbiB0YWJsZQorICovCit0eXBlZGVmIHN0cnVjdCBibGtpZF9zdHJ1Y3RfcGFydHRhYmxlICpibGtpZF9wYXJ0dGFibGU7CisKKy8qKgorICogYmxraWRfbG9mZl90OgorICoKKyAqIDY0LWJpdCBzaWduZWQgbnVtYmVyIGZvciBvZmZzZXRzIGFuZCBzaXplcworICovCit0eXBlZGVmIGludDY0X3QgYmxraWRfbG9mZl90OworCisvKioKKyAqIGJsa2lkX3RhZ19pdGVyYXRlOgorICoKKyAqIHRhZ3MgaXRlcmF0b3IgZm9yIGhpZ2gtbGV2ZWwgKGJsa2lkX2NhY2hlKSBBUEkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgYmxraWRfc3RydWN0X3RhZ19pdGVyYXRlICpibGtpZF90YWdfaXRlcmF0ZTsKKworLyoqCisgKiBibGtpZF9kZXZfaXRlcmF0ZToKKyAqCisgKiBkZXZpY2VzIGl0ZXJhdG9yIGZvciBoaWdoLWxldmVsIChibGtpZF9jYWNoZSkgQVBJCisgKi8KK3R5cGVkZWYgc3RydWN0IGJsa2lkX3N0cnVjdF9kZXZfaXRlcmF0ZSAqYmxraWRfZGV2X2l0ZXJhdGU7CisKKy8qCisgKiBGbGFncyBmb3IgYmxraWRfZ2V0X2RldgorICoKKyAqIEJMS0lEX0RFVl9DUkVBVEUJQ3JlYXRlIGFuIGVtcHR5IGRldmljZSBzdHJ1Y3R1cmUgaWYgbm90IGZvdW5kCisgKgkJCWluIHRoZSBjYWNoZS4KKyAqIEJMS0lEX0RFVl9WRVJJRlkJTWFrZSBzdXJlIHRoZSBkZXZpY2Ugc3RydWN0dXJlIGNvcnJlc3BvbmRzCisgKgkJCXdpdGggcmVhbGl0eS4KKyAqIEJMS0lEX0RFVl9GSU5ECUp1c3QgbG9vayB1cCBhIGRldmljZSBlbnRyeSwgYW5kIHJldHVybiBOVUxMCisgKgkJCWlmIGl0IGlzIG5vdCBmb3VuZC4KKyAqIEJMS0lEX0RFVl9OT1JNQUwJR2V0IGEgdmFsaWQgZGV2aWNlIHN0cnVjdHVyZSwgZWl0aGVyIGZyb20gdGhlCisgKgkJCWNhY2hlIG9yIGJ5IHByb2JpbmcgdGhlIGRldmljZS4KKyAqLworI2RlZmluZSBCTEtJRF9ERVZfRklORAkJMHgwMDAwCisjZGVmaW5lIEJMS0lEX0RFVl9DUkVBVEUJMHgwMDAxCisjZGVmaW5lIEJMS0lEX0RFVl9WRVJJRlkJMHgwMDAyCisjZGVmaW5lIEJMS0lEX0RFVl9OT1JNQUwJKEJMS0lEX0RFVl9DUkVBVEUgfCBCTEtJRF9ERVZfVkVSSUZZKQorCisvKiBjYWNoZS5jICovCitleHRlcm4gdm9pZCBibGtpZF9wdXRfY2FjaGUoYmxraWRfY2FjaGUgY2FjaGUpOworZXh0ZXJuIGludCBibGtpZF9nZXRfY2FjaGUoYmxraWRfY2FjaGUgKmNhY2hlLCBjb25zdCBjaGFyICpmaWxlbmFtZSk7CitleHRlcm4gdm9pZCBibGtpZF9nY19jYWNoZShibGtpZF9jYWNoZSBjYWNoZSk7CisKKy8qIGRldi5jICovCitleHRlcm4gY29uc3QgY2hhciAqYmxraWRfZGV2X2Rldm5hbWUoYmxraWRfZGV2IGRldik7CisKK2V4dGVybiBibGtpZF9kZXZfaXRlcmF0ZSBibGtpZF9kZXZfaXRlcmF0ZV9iZWdpbihibGtpZF9jYWNoZSBjYWNoZSk7CitleHRlcm4gaW50IGJsa2lkX2Rldl9zZXRfc2VhcmNoKGJsa2lkX2Rldl9pdGVyYXRlIGl0ZXIsCisJCQkJY2hhciAqc2VhcmNoX3R5cGUsIGNoYXIgKnNlYXJjaF92YWx1ZSk7CitleHRlcm4gaW50IGJsa2lkX2Rldl9uZXh0KGJsa2lkX2Rldl9pdGVyYXRlIGl0ZXJhdGUsIGJsa2lkX2RldiAqZGV2KTsKK2V4dGVybiB2b2lkIGJsa2lkX2Rldl9pdGVyYXRlX2VuZChibGtpZF9kZXZfaXRlcmF0ZSBpdGVyYXRlKTsKKworLyogZGV2bm8uYyAqLworZXh0ZXJuIGNoYXIgKmJsa2lkX2Rldm5vX3RvX2Rldm5hbWUoZGV2X3QgZGV2bm8pOworZXh0ZXJuIGludCBibGtpZF9kZXZub190b193aG9sZWRpc2soZGV2X3QgZGV2LCBjaGFyICpkaXNrbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4sIGRldl90ICpkaXNrZGV2bm8pOworCisvKiBkZXZuYW1lLmMgKi8KK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfYWxsKGJsa2lkX2NhY2hlIGNhY2hlKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfYWxsX25ldyhibGtpZF9jYWNoZSBjYWNoZSk7CitleHRlcm4gYmxraWRfZGV2IGJsa2lkX2dldF9kZXYoYmxraWRfY2FjaGUgY2FjaGUsIGNvbnN0IGNoYXIgKmRldm5hbWUsCisJCQkgICAgICAgaW50IGZsYWdzKTsKKworLyogZ2V0c2l6ZS5jICovCitleHRlcm4gYmxraWRfbG9mZl90IGJsa2lkX2dldF9kZXZfc2l6ZShpbnQgZmQpOworCisvKiB2ZXJpZnkuYyAqLworZXh0ZXJuIGJsa2lkX2RldiBibGtpZF92ZXJpZnkoYmxraWRfY2FjaGUgY2FjaGUsIGJsa2lkX2RldiBkZXYpOworCisvKiByZWFkLmMgKi8KKworLyogcmVzb2x2ZS5jICovCitleHRlcm4gY2hhciAqYmxraWRfZ2V0X3RhZ192YWx1ZShibGtpZF9jYWNoZSBjYWNoZSwgY29uc3QgY2hhciAqdGFnbmFtZSwKKwkJCQkgICAgICAgY29uc3QgY2hhciAqZGV2bmFtZSk7CitleHRlcm4gY2hhciAqYmxraWRfZ2V0X2Rldm5hbWUoYmxraWRfY2FjaGUgY2FjaGUsIGNvbnN0IGNoYXIgKnRva2VuLAorCQkJICAgICAgIGNvbnN0IGNoYXIgKnZhbHVlKTsKKworLyogdGFnLmMgKi8KK2V4dGVybiBibGtpZF90YWdfaXRlcmF0ZSBibGtpZF90YWdfaXRlcmF0ZV9iZWdpbihibGtpZF9kZXYgZGV2KTsKK2V4dGVybiBpbnQgYmxraWRfdGFnX25leHQoYmxraWRfdGFnX2l0ZXJhdGUgaXRlcmF0ZSwKKwkJCSAgICAgIGNvbnN0IGNoYXIgKip0eXBlLCBjb25zdCBjaGFyICoqdmFsdWUpOworZXh0ZXJuIHZvaWQgYmxraWRfdGFnX2l0ZXJhdGVfZW5kKGJsa2lkX3RhZ19pdGVyYXRlIGl0ZXJhdGUpOworZXh0ZXJuIGludCBibGtpZF9kZXZfaGFzX3RhZyhibGtpZF9kZXYgZGV2LCBjb25zdCBjaGFyICp0eXBlLAorCQkJICAgICBjb25zdCBjaGFyICp2YWx1ZSk7CitleHRlcm4gYmxraWRfZGV2IGJsa2lkX2ZpbmRfZGV2X3dpdGhfdGFnKGJsa2lkX2NhY2hlIGNhY2hlLAorCQkJCQkgY29uc3QgY2hhciAqdHlwZSwKKwkJCQkJIGNvbnN0IGNoYXIgKnZhbHVlKTsKK2V4dGVybiBpbnQgYmxraWRfcGFyc2VfdGFnX3N0cmluZyhjb25zdCBjaGFyICp0b2tlbiwgY2hhciAqKnJldF90eXBlLAorCQkJCSAgY2hhciAqKnJldF92YWwpOworCisvKiB2ZXJzaW9uLmMgKi8KK2V4dGVybiBpbnQgYmxraWRfcGFyc2VfdmVyc2lvbl9zdHJpbmcoY29uc3QgY2hhciAqdmVyX3N0cmluZyk7CitleHRlcm4gaW50IGJsa2lkX2dldF9saWJyYXJ5X3ZlcnNpb24oY29uc3QgY2hhciAqKnZlcl9zdHJpbmcsCisJCQkJICAgICBjb25zdCBjaGFyICoqZGF0ZV9zdHJpbmcpOworCisvKiBlbmNvZGUuYyAqLworZXh0ZXJuIGludCBibGtpZF9lbmNvZGVfc3RyaW5nKGNvbnN0IGNoYXIgKnN0ciwgY2hhciAqc3RyX2VuYywgc2l6ZV90IGxlbik7CitleHRlcm4gaW50IGJsa2lkX3NhZmVfc3RyaW5nKGNvbnN0IGNoYXIgKnN0ciwgY2hhciAqc3RyX3NhZmUsIHNpemVfdCBsZW4pOworCisvKiBldmFsdWF0ZS5jICovCitleHRlcm4gaW50IGJsa2lkX3NlbmRfdWV2ZW50KGNvbnN0IGNoYXIgKmRldm5hbWUsIGNvbnN0IGNoYXIgKmFjdGlvbik7CitleHRlcm4gY2hhciAqYmxraWRfZXZhbHVhdGVfdGFnKGNvbnN0IGNoYXIgKnRva2VuLCBjb25zdCBjaGFyICp2YWx1ZSwKKwkJCQlibGtpZF9jYWNoZSAqY2FjaGUpOworCisvKiBwcm9iZS5jICovCitleHRlcm4gYmxraWRfcHJvYmUgYmxraWRfbmV3X3Byb2JlKHZvaWQpOworZXh0ZXJuIGJsa2lkX3Byb2JlIGJsa2lkX25ld19wcm9iZV9mcm9tX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKK2V4dGVybiB2b2lkIGJsa2lkX2ZyZWVfcHJvYmUoYmxraWRfcHJvYmUgcHIpOworZXh0ZXJuIHZvaWQgYmxraWRfcmVzZXRfcHJvYmUoYmxraWRfcHJvYmUgcHIpOworCitleHRlcm4gaW50IGJsa2lkX3Byb2JlX3NldF9kZXZpY2UoYmxraWRfcHJvYmUgcHIsIGludCBmZCwKKwkgICAgICAgICAgICAgICAgYmxraWRfbG9mZl90IG9mZiwgYmxraWRfbG9mZl90IHNpemUpOworCitleHRlcm4gZGV2X3QgYmxraWRfcHJvYmVfZ2V0X2Rldm5vKGJsa2lkX3Byb2JlIHByKTsKK2V4dGVybiBibGtpZF9sb2ZmX3QgYmxraWRfcHJvYmVfZ2V0X3NpemUoYmxraWRfcHJvYmUgcHIpOworZXh0ZXJuIHVuc2lnbmVkIGludCBibGtpZF9wcm9iZV9nZXRfc2VjdG9yc2l6ZShibGtpZF9wcm9iZSBwcik7CisKKy8qCisgKiBzdXBlcmJsb2NrcyBwcm9iaW5nCisgKi8KK2V4dGVybiBpbnQgYmxraWRfa25vd25fZnN0eXBlKGNvbnN0IGNoYXIgKmZzdHlwZSk7CitleHRlcm4gaW50IGJsa2lkX3Byb2JlX2VuYWJsZV9zdXBlcmJsb2NrcyhibGtpZF9wcm9iZSBwciwgaW50IGVuYWJsZSk7CisKKyNkZWZpbmUgQkxLSURfU1VCTEtTX0xBQkVMCSgxIDw8IDEpIC8qIHJlYWQgTEFCRUwgZnJvbSBzdXBlcmJsb2NrICovCisjZGVmaW5lIEJMS0lEX1NVQkxLU19MQUJFTFJBVwkoMSA8PCAyKSAvKiByZWFkIGFuZCBkZWZpbmUgTEFCRUxfUkFXIHJlc3VsdCB2YWx1ZSovCisjZGVmaW5lIEJMS0lEX1NVQkxLU19VVUlECSgxIDw8IDMpIC8qIHJlYWQgVVVJRCBmcm9tIHN1cGVyYmxvY2sgKi8KKyNkZWZpbmUgQkxLSURfU1VCTEtTX1VVSURSQVcJKDEgPDwgNCkgLyogcmVhZCBhbmQgZGVmaW5lIFVVSURfUkFXIHJlc3VsdCB2YWx1ZSAqLworI2RlZmluZSBCTEtJRF9TVUJMS1NfVFlQRQkoMSA8PCA1KSAvKiBkZWZpbmUgVFlQRSByZXN1bHQgdmFsdWUgKi8KKyNkZWZpbmUgQkxLSURfU1VCTEtTX1NFQ1RZUEUJKDEgPDwgNikgLyogZGVmaW5lIGNvbXBhdGlibGUgZnMgdHlwZSAoc2Vjb25kIHR5cGUpICovCisjZGVmaW5lIEJMS0lEX1NVQkxLU19VU0FHRQkoMSA8PCA3KSAvKiBkZWZpbmUgVVNBR0UgcmVzdWx0IHZhbHVlICovCisjZGVmaW5lIEJMS0lEX1NVQkxLU19WRVJTSU9OCSgxIDw8IDgpIC8qIHJlYWQgRlMgdHlwZSBmcm9tIHN1cGVyYmxvY2sgKi8KKyNkZWZpbmUgQkxLSURfU1VCTEtTX01BR0lDCSgxIDw8IDkpIC8qIGRlZmluZSBTQk1BR0lDIGFuZCBTQk1BR0lDX09GRlNFVCAqLworCisjZGVmaW5lIEJMS0lEX1NVQkxLU19ERUZBVUxUCShCTEtJRF9TVUJMS1NfTEFCRUwgfCBCTEtJRF9TVUJMS1NfVVVJRCB8IFwKKwkJCQkgQkxLSURfU1VCTEtTX1RZUEUgfCBCTEtJRF9TVUJMS1NfU0VDVFlQRSkKKworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9zZXRfc3VwZXJibG9ja3NfZmxhZ3MoYmxraWRfcHJvYmUgcHIsIGludCBmbGFncyk7CisKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfcmVzZXRfc3VwZXJibG9ja3NfZmlsdGVyKGJsa2lkX3Byb2JlIHByKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfaW52ZXJ0X3N1cGVyYmxvY2tzX2ZpbHRlcihibGtpZF9wcm9iZSBwcik7CisKKyNkZWZpbmUgQkxLSURfRkxUUl9OT1RJTgkJMQorI2RlZmluZSBCTEtJRF9GTFRSX09OTFlJTgkJMgorZXh0ZXJuIGludCBibGtpZF9wcm9iZV9maWx0ZXJfc3VwZXJibG9ja3NfdHlwZShibGtpZF9wcm9iZSBwciwgaW50IGZsYWcsIGNoYXIgKm5hbWVzW10pOworCisjZGVmaW5lIEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0JCSgxIDw8IDEpCisjZGVmaW5lIEJMS0lEX1VTQUdFX1JBSUQJCSgxIDw8IDIpCisjZGVmaW5lIEJMS0lEX1VTQUdFX0NSWVBUTwkJKDEgPDwgMykKKyNkZWZpbmUgQkxLSURfVVNBR0VfT1RIRVIJCSgxIDw8IDQpCitleHRlcm4gaW50IGJsa2lkX3Byb2JlX2ZpbHRlcl9zdXBlcmJsb2Nrc191c2FnZShibGtpZF9wcm9iZSBwciwgaW50IGZsYWcsIGludCB1c2FnZSk7CisKKy8qCisgKiB0b3BvbG9neSBwcm9iaW5nCisgKi8KK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfZW5hYmxlX3RvcG9sb2d5KGJsa2lkX3Byb2JlIHByLCBpbnQgZW5hYmxlKTsKKworLyogYmluYXJ5IGludGVyZmFjZSAqLworZXh0ZXJuIGJsa2lkX3RvcG9sb2d5IGJsa2lkX3Byb2JlX2dldF90b3BvbG9neShibGtpZF9wcm9iZSBwcik7CisKK2V4dGVybiB1bnNpZ25lZCBsb25nIGJsa2lkX3RvcG9sb2d5X2dldF9hbGlnbm1lbnRfb2Zmc2V0KGJsa2lkX3RvcG9sb2d5IHRwKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGJsa2lkX3RvcG9sb2d5X2dldF9taW5pbXVtX2lvX3NpemUoYmxraWRfdG9wb2xvZ3kgdHApOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgYmxraWRfdG9wb2xvZ3lfZ2V0X29wdGltYWxfaW9fc2l6ZShibGtpZF90b3BvbG9neSB0cCk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBibGtpZF90b3BvbG9neV9nZXRfbG9naWNhbF9zZWN0b3Jfc2l6ZShibGtpZF90b3BvbG9neSB0cCk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBibGtpZF90b3BvbG9neV9nZXRfcGh5c2ljYWxfc2VjdG9yX3NpemUoYmxraWRfdG9wb2xvZ3kgdHApOworCisvKgorICogcGFydGl0aW9ucyBwcm9iaW5nCisgKi8KK2V4dGVybiBpbnQgYmxraWRfa25vd25fcHR0eXBlKGNvbnN0IGNoYXIgKnB0dHlwZSk7CitleHRlcm4gaW50IGJsa2lkX3Byb2JlX2VuYWJsZV9wYXJ0aXRpb25zKGJsa2lkX3Byb2JlIHByLCBpbnQgZW5hYmxlKTsKKworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9yZXNldF9wYXJ0aXRpb25zX2ZpbHRlcihibGtpZF9wcm9iZSBwcik7CitleHRlcm4gaW50IGJsa2lkX3Byb2JlX2ludmVydF9wYXJ0aXRpb25zX2ZpbHRlcihibGtpZF9wcm9iZSBwcik7CitleHRlcm4gaW50IGJsa2lkX3Byb2JlX2ZpbHRlcl9wYXJ0aXRpb25zX3R5cGUoYmxraWRfcHJvYmUgcHIsIGludCBmbGFnLCBjaGFyICpuYW1lc1tdKTsKKworCisvKiBwYXJ0aXRpb25zIHByb2JpbmcgZmxhZ3MgKi8KKyNkZWZpbmUgQkxLSURfUEFSVFNfRk9SQ0VfR1BUCSgxIDw8IDEpCitleHRlcm4gaW50IGJsa2lkX3Byb2JlX3NldF9wYXJ0aXRpb25zX2ZsYWdzKGJsa2lkX3Byb2JlIHByLCBpbnQgZmxhZ3MpOworCisvKiBiaW5hcnkgaW50ZXJmYWNlICovCitleHRlcm4gYmxraWRfcGFydGxpc3QgYmxraWRfcHJvYmVfZ2V0X3BhcnRpdGlvbnMoYmxraWRfcHJvYmUgcHIpOworCitleHRlcm4gaW50IGJsa2lkX3BhcnRsaXN0X251bW9mX3BhcnRpdGlvbnMoYmxraWRfcGFydGxpc3QgbHMpOworZXh0ZXJuIGJsa2lkX3BhcnRpdGlvbiBibGtpZF9wYXJ0bGlzdF9nZXRfcGFydGl0aW9uKGJsa2lkX3BhcnRsaXN0IGxzLCBpbnQgbik7CisKK2V4dGVybiBibGtpZF9wYXJ0dGFibGUgYmxraWRfcGFydGl0aW9uX2dldF90YWJsZShibGtpZF9wYXJ0aXRpb24gcGFyKTsKK2V4dGVybiBjb25zdCBjaGFyICpibGtpZF9wYXJ0aXRpb25fZ2V0X25hbWUoYmxraWRfcGFydGl0aW9uIHBhcik7CitleHRlcm4gY29uc3QgY2hhciAqYmxraWRfcGFydGl0aW9uX2dldF91dWlkKGJsa2lkX3BhcnRpdGlvbiBwYXIpOworZXh0ZXJuIGludCBibGtpZF9wYXJ0aXRpb25fZ2V0X3BhcnRubyhibGtpZF9wYXJ0aXRpb24gcGFyKTsKK2V4dGVybiBibGtpZF9sb2ZmX3QgYmxraWRfcGFydGl0aW9uX2dldF9zdGFydChibGtpZF9wYXJ0aXRpb24gcGFyKTsKK2V4dGVybiBibGtpZF9sb2ZmX3QgYmxraWRfcGFydGl0aW9uX2dldF9zaXplKGJsa2lkX3BhcnRpdGlvbiBwYXIpOworZXh0ZXJuIGludCBibGtpZF9wYXJ0aXRpb25fZ2V0X3R5cGUoYmxraWRfcGFydGl0aW9uIHBhcik7CitleHRlcm4gY29uc3QgY2hhciAqYmxraWRfcGFydGl0aW9uX2dldF90eXBlX3N0cmluZyhibGtpZF9wYXJ0aXRpb24gcGFyKTsKK2V4dGVybiBpbnQgYmxraWRfcGFydGl0aW9uX2lzX2xvZ2ljYWwoYmxraWRfcGFydGl0aW9uIHBhcik7CitleHRlcm4gaW50IGJsa2lkX3BhcnRpdGlvbl9pc19leHRlbmRlZChibGtpZF9wYXJ0aXRpb24gcGFyKTsKK2V4dGVybiBpbnQgYmxraWRfcGFydGl0aW9uX2lzX3ByaW1hcnkoYmxraWRfcGFydGl0aW9uIHBhcik7CisKK2V4dGVybiBjb25zdCBjaGFyICpibGtpZF9wYXJ0dGFibGVfZ2V0X3R5cGUoYmxraWRfcGFydHRhYmxlIHRhYik7CitleHRlcm4gYmxraWRfbG9mZl90IGJsa2lkX3BhcnR0YWJsZV9nZXRfb2Zmc2V0KGJsa2lkX3BhcnR0YWJsZSB0YWIpOworZXh0ZXJuIGJsa2lkX3BhcnRpdGlvbiBibGtpZF9wYXJ0dGFibGVfZ2V0X3BhcmVudChibGtpZF9wYXJ0dGFibGUgdGFiKTsKKworLyoKKyAqIE5BTUU9dmFsdWUgbG93LWxldmVsIGludGVyZmFjZQorICovCitleHRlcm4gaW50IGJsa2lkX2RvX3Byb2JlKGJsa2lkX3Byb2JlIHByKTsKK2V4dGVybiBpbnQgYmxraWRfZG9fc2FmZXByb2JlKGJsa2lkX3Byb2JlIHByKTsKK2V4dGVybiBpbnQgYmxraWRfZG9fZnVsbHByb2JlKGJsa2lkX3Byb2JlIHByKTsKKworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9udW1vZl92YWx1ZXMoYmxraWRfcHJvYmUgcHIpOworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9nZXRfdmFsdWUoYmxraWRfcHJvYmUgcHIsIGludCBudW0sIGNvbnN0IGNoYXIgKipuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqKmRhdGEsIHNpemVfdCAqbGVuKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKGJsa2lkX3Byb2JlIHByLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqKmRhdGEsIHNpemVfdCAqbGVuKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfaGFzX3ZhbHVlKGJsa2lkX3Byb2JlIHByLCBjb25zdCBjaGFyICpuYW1lKTsKKworLyoqKgorICogRGVwcmVjYXRlZCBmdW5jdGlvbnMvbWFjcm9zCisgKi8KKyNkZWZpbmUgQkxLSURfUFJPQlJFUV9MQUJFTCAgICAgQkxLSURfU1VCTEtTX0xBQkVMCisjZGVmaW5lIEJMS0lEX1BST0JSRVFfTEFCRUxSQVcgIEJMS0lEX1NVQkxLU19MQUJFTFJBVworI2RlZmluZSBCTEtJRF9QUk9CUkVRX1VVSUQgICAgICBCTEtJRF9TVUJMS1NfVVVJRAorI2RlZmluZSBCTEtJRF9QUk9CUkVRX1VVSURSQVcgICBCTEtJRF9TVUJMS1NfVVVJRFJBVworI2RlZmluZSBCTEtJRF9QUk9CUkVRX1RZUEUgICAgICBCTEtJRF9TVUJMS1NfVFlQRQorI2RlZmluZSBCTEtJRF9QUk9CUkVRX1NFQ1RZUEUgICBCTEtJRF9TVUJMS1NfU0VDVFlQRQorI2RlZmluZSBCTEtJRF9QUk9CUkVRX1VTQUdFICAgICBCTEtJRF9TVUJMS1NfVVNBR0UKKyNkZWZpbmUgQkxLSURfUFJPQlJFUV9WRVJTSU9OICAgQkxLSURfU1VCTEtTX1ZFUlNJT04KKworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9zZXRfcmVxdWVzdChibGtpZF9wcm9iZSBwciwgaW50IGZsYWdzKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfZmlsdGVyX3VzYWdlKGJsa2lkX3Byb2JlIHByLCBpbnQgZmxhZywgaW50IHVzYWdlKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfZmlsdGVyX3R5cGVzKGJsa2lkX3Byb2JlIHByLCBpbnQgZmxhZywgY2hhciAqbmFtZXNbXSk7CitleHRlcm4gaW50IGJsa2lkX3Byb2JlX2ludmVydF9maWx0ZXIoYmxraWRfcHJvYmUgcHIpOworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9yZXNldF9maWx0ZXIoYmxraWRfcHJvYmUgcHIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogX0JMS0lEX0JMS0lEX0ggKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvYmxraWQuc3ltIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9ibGtpZC5zeW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTcyNTU1MgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvYmxraWQuc3ltCkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogVGhlIHN5bWJvbCB2ZXJzaW9uaW5nIGVuc3VyZXMgdGhhdCBhIG5ldyBhcHBsaWNhdGlvbiByZXF1aXJpbmcgc3ltYm9sIGZvbygpCisgKiBjYW4ndCBydW4gd2l0aCBvbGQgbGliYmxraWQuc28gbm90IHByb3ZpZGluZyBmb28oKSAtIHRoZSBnbG9iYWwgU09OQU1FCisgKiB2ZXJzaW9uIGluZm8gY2FuJ3QgZW5mb3JjZSB0aGlzIHNpbmNlIHdlIG5ldmVyIGNoYW5nZSB0aGUgU09OQU1FLgorICoKKyAqIFRoZSBvcmlnaW5hbCBsaWJibGtpZCBmcm9tIGUyZnNwcm9ncyAoPD0xLjQxLjQpIGRvZXMgbm90IHRvIHVzZQorICogc3ltYm9sIHZlcnNpb25pbmcgLS0gYWxsIHRoZSBvcmlnaW5hbCBzeW1ib2xzIGFyZSBpbiBCTEtJRF8xLjAgbm93LgorICovCitCTEtJRF8xLjAgeworZ2xvYmFsOgorCWJsa2lkX2Rldl9kZXZuYW1lOworCWJsa2lkX2Rldl9oYXNfdGFnOworCWJsa2lkX2Rldl9pdGVyYXRlX2JlZ2luOworCWJsa2lkX2Rldl9pdGVyYXRlX2VuZDsKKwlibGtpZF9kZXZfbmV4dDsKKwlibGtpZF9kZXZub190b19kZXZuYW1lOworCWJsa2lkX2Rldl9zZXRfc2VhcmNoOworCWJsa2lkX2ZpbmRfZGV2X3dpdGhfdGFnOworCWJsa2lkX2djX2NhY2hlOworCWJsa2lkX2dldF9jYWNoZTsKKwlibGtpZF9nZXRfZGV2OworCWJsa2lkX2dldF9kZXZuYW1lOworCWJsa2lkX2dldF9kZXZfc2l6ZTsKKwlibGtpZF9nZXRfbGlicmFyeV92ZXJzaW9uOworCWJsa2lkX2dldF90YWdfdmFsdWU7CisJYmxraWRfa25vd25fZnN0eXBlOworCWJsa2lkX3BhcnNlX3RhZ19zdHJpbmc7CisJYmxraWRfcGFyc2VfdmVyc2lvbl9zdHJpbmc7CisJYmxraWRfcHJvYmVfYWxsOworCWJsa2lkX3Byb2JlX2FsbF9uZXc7CisJYmxraWRfcHV0X2NhY2hlOworCWJsa2lkX3RhZ19pdGVyYXRlX2JlZ2luOworCWJsa2lkX3RhZ19pdGVyYXRlX2VuZDsKKwlibGtpZF90YWdfbmV4dDsKKwlibGtpZF92ZXJpZnk7Citsb2NhbDoKKwkqOworfTsKKworCisvKgorICogdmVyc2lvbihzKSBzaW5jZSB1dGlsLWxpbnV4LW5nIDIuMTUKKyAqLworQkxLSURfMi4xNSB7CitnbG9iYWw6CisJYmxraWRfZG9fcHJvYmU7CisJYmxraWRfZG9fc2FmZXByb2JlOworCWJsa2lkX2VuY29kZV9zdHJpbmc7CisJYmxraWRfZXZhbHVhdGVfdGFnOworCWJsa2lkX2ZyZWVfcHJvYmU7CisJYmxraWRfbmV3X3Byb2JlOworCWJsa2lkX3Byb2JlX2FsbDsKKwlibGtpZF9wcm9iZV9hbGxfbmV3OworCWJsa2lkX3Byb2JlX2ZpbHRlcl90eXBlczsKKwlibGtpZF9wcm9iZV9maWx0ZXJfdXNhZ2U7CisJYmxraWRfcHJvYmVfZ2V0X3ZhbHVlOworCWJsa2lkX3Byb2JlX2hhc192YWx1ZTsKKwlibGtpZF9wcm9iZV9pbnZlcnRfZmlsdGVyOworCWJsa2lkX3Byb2JlX2xvb2t1cF92YWx1ZTsKKwlibGtpZF9wcm9iZV9udW1vZl92YWx1ZXM7CisJYmxraWRfcHJvYmVfcmVzZXRfZmlsdGVyOworCWJsa2lkX3Byb2JlX3NldF9kZXZpY2U7CisJYmxraWRfcHJvYmVfc2V0X3JlcXVlc3Q7CisJYmxraWRfcmVzZXRfcHJvYmU7CisJYmxraWRfc2FmZV9zdHJpbmc7CisJYmxraWRfc2VuZF91ZXZlbnQ7Cit9IEJMS0lEXzEuMDsKKworLyoKKyAqIHZlcnNpb24ocykgc2luY2UgdXRpbC1saW51eC1uZyAyLjE3CisgKi8KK0JMS0lEXzIuMTcgeworZ2xvYmFsOgorCWJsa2lkX2Rldm5vX3RvX3dob2xlZGlzazsKKwlibGtpZF9kb19mdWxscHJvYmU7CisJYmxraWRfa25vd25fcHR0eXBlOworCWJsa2lkX25ld19wcm9iZV9mcm9tX2ZpbGVuYW1lOworCWJsa2lkX3BhcnRpdGlvbl9nZXRfbmFtZTsKKwlibGtpZF9wYXJ0aXRpb25fZ2V0X3BhcnRubzsKKwlibGtpZF9wYXJ0aXRpb25fZ2V0X3NpemU7CisJYmxraWRfcGFydGl0aW9uX2dldF9zdGFydDsKKwlibGtpZF9wYXJ0aXRpb25fZ2V0X3RhYmxlOworCWJsa2lkX3BhcnRpdGlvbl9nZXRfdHlwZTsKKwlibGtpZF9wYXJ0aXRpb25fZ2V0X3R5cGVfc3RyaW5nOworCWJsa2lkX3BhcnRpdGlvbl9nZXRfdXVpZDsKKwlibGtpZF9wYXJ0aXRpb25faXNfZXh0ZW5kZWQ7CisJYmxraWRfcGFydGl0aW9uX2lzX2xvZ2ljYWw7CisJYmxraWRfcGFydGl0aW9uX2lzX3ByaW1hcnk7CisJYmxraWRfcGFydGxpc3RfZ2V0X3BhcnRpdGlvbjsKKwlibGtpZF9wYXJ0bGlzdF9udW1vZl9wYXJ0aXRpb25zOworCWJsa2lkX3BhcnR0YWJsZV9nZXRfb2Zmc2V0OworCWJsa2lkX3BhcnR0YWJsZV9nZXRfcGFyZW50OworCWJsa2lkX3BhcnR0YWJsZV9nZXRfdHlwZTsKKwlibGtpZF9wcm9iZV9lbmFibGVfcGFydGl0aW9uczsKKwlibGtpZF9wcm9iZV9lbmFibGVfc3VwZXJibG9ja3M7CisJYmxraWRfcHJvYmVfZW5hYmxlX3RvcG9sb2d5OworCWJsa2lkX3Byb2JlX2ZpbHRlcl9wYXJ0aXRpb25zX3R5cGU7CisJYmxraWRfcHJvYmVfZmlsdGVyX3N1cGVyYmxvY2tzX3R5cGU7CisJYmxraWRfcHJvYmVfZmlsdGVyX3N1cGVyYmxvY2tzX3VzYWdlOworCWJsa2lkX3Byb2JlX2dldF9kZXZubzsKKwlibGtpZF9wcm9iZV9nZXRfcGFydGl0aW9uczsKKwlibGtpZF9wcm9iZV9nZXRfc2VjdG9yc2l6ZTsKKwlibGtpZF9wcm9iZV9nZXRfc2l6ZTsKKwlibGtpZF9wcm9iZV9nZXRfdG9wb2xvZ3k7CisJYmxraWRfcHJvYmVfaW52ZXJ0X3BhcnRpdGlvbnNfZmlsdGVyOworCWJsa2lkX3Byb2JlX2ludmVydF9zdXBlcmJsb2Nrc19maWx0ZXI7CisJYmxraWRfcHJvYmVfcmVzZXRfcGFydGl0aW9uc19maWx0ZXI7CisJYmxraWRfcHJvYmVfcmVzZXRfc3VwZXJibG9ja3NfZmlsdGVyOworCWJsa2lkX3Byb2JlX3NldF9wYXJ0aXRpb25zX2ZsYWdzOworCWJsa2lkX3Byb2JlX3NldF9zdXBlcmJsb2Nrc19mbGFnczsKKwlibGtpZF90b3BvbG9neV9nZXRfYWxpZ25tZW50X29mZnNldDsKKwlibGtpZF90b3BvbG9neV9nZXRfbG9naWNhbF9zZWN0b3Jfc2l6ZTsKKwlibGtpZF90b3BvbG9neV9nZXRfbWluaW11bV9pb19zaXplOworCWJsa2lkX3RvcG9sb2d5X2dldF9vcHRpbWFsX2lvX3NpemU7CisJYmxraWRfdG9wb2xvZ3lfZ2V0X3BoeXNpY2FsX3NlY3Rvcl9zaXplOworfSBCTEtJRF8yLjE1OwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9ibGtpZFAuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvYmxraWRQLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTEzOTc3YgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvYmxraWRQLmgKQEAgLTAsMCArMSw0MzUgQEAKKy8qCisgKiBibGtpZFAuaCAtIEludGVybmFsIGludGVyZmFjZXMgZm9yIGxpYmJsa2lkCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAxIEFuZHJlYXMgRGlsZ2VyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgVGhlb2RvcmUgVHMnbworICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2lmbmRlZiBfQkxLSURfQkxLSURQX0gKKyNkZWZpbmUgX0JMS0lEX0JMS0lEUF9ICisKKworI2RlZmluZSBDT05GSUdfQkxLSURfREVCVUcgMQorCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCisjaW5jbHVkZSAiYy5oIgorI2luY2x1ZGUgImJpdG9wcy5oIgkvKiAkKHRvcF9zcmNkaXIpL2luY2x1ZGUvICovCisKKyNpbmNsdWRlICJibGtpZC5oIgorI2luY2x1ZGUgImxpc3QuaCIKKworLyoKKyAqIFRoaXMgZGVzY3JpYmVzIHRoZSBhdHRyaWJ1dGVzIG9mIGEgc3BlY2lmaWMgZGV2aWNlLgorICogV2UgY2FuIHRyYXZlcnNlIGFsbCBvZiB0aGUgdGFncyBieSBiaWRfdGFncyAobGlua2luZyB0byB0aGUgdGFnIGJpdF9uYW1lcykuCisgKiBUaGUgYmlkX2xhYmVsIGFuZCBiaWRfdXVpZCBmaWVsZHMgYXJlIHNob3J0Y3V0cyB0byB0aGUgTEFCRUwgYW5kIFVVSUQgdGFnCisgKiB2YWx1ZXMsIGlmIHRoZXkgZXhpc3QuCisgKi8KK3N0cnVjdCBibGtpZF9zdHJ1Y3RfZGV2Cit7CisJc3RydWN0IGxpc3RfaGVhZAliaWRfZGV2czsJLyogQWxsIGRldmljZXMgaW4gdGhlIGNhY2hlICovCisJc3RydWN0IGxpc3RfaGVhZAliaWRfdGFnczsJLyogQWxsIHRhZ3MgZm9yIHRoaXMgZGV2aWNlICovCisJYmxraWRfY2FjaGUJCWJpZF9jYWNoZTsJLyogRGV2IGJlbG9uZ3MgdG8gdGhpcyBjYWNoZSAqLworCWNoYXIJCQkqYmlkX25hbWU7CS8qIERldmljZSBpbm9kZSBwYXRobmFtZSAqLworCWNoYXIJCQkqYmlkX3R5cGU7CS8qIFByZWZlcnJlZCBkZXZpY2UgVFlQRSAqLworCWludAkJCWJpZF9wcmk7CS8qIERldmljZSBwcmlvcml0eSAqLworCWRldl90CQkJYmlkX2Rldm5vOwkvKiBEZXZpY2UgbWFqb3IvbWlub3IgbnVtYmVyICovCisJdGltZV90CQkJYmlkX3RpbWU7CS8qIExhc3QgdXBkYXRlIHRpbWUgb2YgZGV2aWNlICovCisJdW5zaWduZWQgaW50CQliaWRfZmxhZ3M7CS8qIERldmljZSBzdGF0dXMgYml0ZmxhZ3MgKi8KKwljaGFyCQkJKmJpZF9sYWJlbDsJLyogU2hvcnRjdXQgdG8gZGV2aWNlIExBQkVMICovCisJY2hhcgkJCSpiaWRfdXVpZDsJLyogU2hvcnRjdXQgdG8gYmluYXJ5IFVVSUQgKi8KK307CisKKyNkZWZpbmUgQkxLSURfQklEX0ZMX1ZFUklGSUVECTB4MDAwMQkvKiBEZXZpY2UgZGF0YSB2YWxpZGF0ZWQgZnJvbSBkaXNrICovCisjZGVmaW5lIEJMS0lEX0JJRF9GTF9JTlZBTElECTB4MDAwNAkvKiBEZXZpY2UgaXMgaW52YWxpZCAqLworCisvKgorICogRWFjaCB0YWcgZGVmaW5lcyBhIE5BTUU9dmFsdWUgcGFpciBmb3IgYSBwYXJ0aWN1bGFyIGRldmljZS4gIFRoZSB0YWdzCisgKiBhcmUgbGlua2VkIHZpYSBiaXRfbmFtZXMgZm9yIGEgc2luZ2xlIGRldmljZSwgc28gdGhhdCB0cmF2ZXJzaW5nIHRoZQorICogbmFtZXMgbGlzdCB3aWxsIGdldCB5b3UgYSBsaXN0IG9mIGFsbCB0YWdzIGFzc29jaWF0ZWQgd2l0aCBhIGRldmljZS4KKyAqIFRoZXkgYXJlIGFsc28gbGlua2VkIHZpYSBiaXRfdmFsdWVzIGZvciBhbGwgZGV2aWNlcywgc28gb25lIGNhbiBlYXNpbHkKKyAqIHNlYXJjaCBhbGwgdGFncyB3aXRoIGEgZ2l2ZW4gTkFNRSBmb3IgYSBzcGVjaWZpYyB2YWx1ZS4KKyAqLworc3RydWN0IGJsa2lkX3N0cnVjdF90YWcKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkCWJpdF90YWdzOwkvKiBBbGwgdGFncyBmb3IgdGhpcyBkZXZpY2UgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkCWJpdF9uYW1lczsJLyogQWxsIHRhZ3Mgd2l0aCBnaXZlbiBOQU1FICovCisJY2hhcgkJCSpiaXRfbmFtZTsJLyogTkFNRSBvZiB0YWcgKHNoYXJlZCkgKi8KKwljaGFyCQkJKmJpdF92YWw7CS8qIHZhbHVlIG9mIHRhZyAqLworCWJsa2lkX2RldgkJYml0X2RldjsJLyogcG9pbnRlciB0byBkZXZpY2UgKi8KK307Cit0eXBlZGVmIHN0cnVjdCBibGtpZF9zdHJ1Y3RfdGFnICpibGtpZF90YWc7CisKKy8qCisgKiBDaGFpbiBJRHMKKyAqLworZW51bSB7CisJQkxLSURfQ0hBSU5fU1VCTEtTLAkvKiBGUy9SQUlEIHN1cGVyYmxvY2tzIChlbmFibGVkIGJ5IGRlZmF1bHQpICovCisJQkxLSURfQ0hBSU5fVE9QTEdZLAkvKiBCbG9jayBkZXZpY2UgdG9wb2xvZ3kgKi8KKwlCTEtJRF9DSEFJTl9QQVJUUywJLyogUGFydGl0aW9uIHRhYmxlcyAqLworCisJQkxLSURfTkNIQUlOUwkJLyogbnVtYmVyIG9mIGNoYWlucyAqLworfTsKKworc3RydWN0IGJsa2lkX2NoYWluIHsKKwljb25zdCBzdHJ1Y3QgYmxraWRfY2hhaW5kcnYgKmRyaXZlcjsJLyogY2hhaW4gZHJpdmVyICovCisKKwlpbnQJCWVuYWJsZWQ7CS8qIGJvb2xlYW4gKi8KKwlpbnQJCWZsYWdzOwkJLyogQkxLSURfPGNoYWluPl8qICovCisJaW50CQliaW5hcnk7CQkvKiBib29sZWFuICovCisJaW50CQlpZHg7CQkvKiBpbmRleCBvZiB0aGUgY3VycmVudCBwcm9iZXIgKi8KKwl1bnNpZ25lZCBsb25nCSpmbHRyOwkJLyogZmlsdGVyIG9yIE5VTEwgKi8KKwl2b2lkCQkqZGF0YTsJCS8qIHByaXZhdGUgY2hhaW4gZGF0YSBvciBOVUxMICovCit9OworCisvKgorICogQ2hhaW4gZHJpdmVyCisgKi8KK3N0cnVjdCBibGtpZF9jaGFpbmRydiB7CisJY29uc3QgaW50CWlkOwkJLyogQkxLSURfQ0hBSU5fKiAqLworCWNvbnN0IGNoYXIJKm5hbWU7CQkvKiBuYW1lIG9mIGNoYWluIChmb3IgZGVidWcgcHVycG9zZSkgKi8KKwljb25zdCBpbnQJZGZsdF9mbGFnczsJLyogZGVmYXVsdCBjaGFpbiBmbGFncyAqLworCWNvbnN0IGludAlkZmx0X2VuYWJsZWQ7CS8qIGRlZmF1bHQgZW5hYmxlZCBib29sZWFuICovCisJaW50CQloYXNfZmx0cjsJLyogYm9vbGVhbiAqLworCisJY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyAqKmlkaW5mb3M7IC8qIGRlc2NyaXB0aW9uIG9mIHByb2JpbmcgZnVuY3Rpb25zICovCisJY29uc3Qgc2l6ZV90CW5pZGluZm9zOwkvKiBudW1iZXIgb2YgaWRpbmZvcyAqLworCisJLyogZHJpdmVyIG9wZXJhdGlvbnMgKi8KKwlpbnQJCSgqcHJvYmUpKGJsa2lkX3Byb2JlLCBzdHJ1Y3QgYmxraWRfY2hhaW4gKik7CisJaW50CQkoKnNhZmVwcm9iZSkoYmxraWRfcHJvYmUsIHN0cnVjdCBibGtpZF9jaGFpbiAqKTsKKwl2b2lkCQkoKmZyZWVfZGF0YSkoYmxraWRfcHJvYmUsIHZvaWQgKik7Cit9OworCisvKgorICogTG93LWxldmVsIHByb2JlIHJlc3VsdAorICovCisjZGVmaW5lIEJMS0lEX1BST0JWQUxfQlVGU0laCTY0CisKKyNkZWZpbmUgQkxLSURfTlZBTFNfU1VCTEtTCTE0CisjZGVmaW5lIEJMS0lEX05WQUxTX1RPUExHWQk1CisjZGVmaW5lIEJMS0lEX05WQUxTX1BBUlRTCTEKKworLyogTWF4IG51bWJlciBvZiBhbGwgdmFsdWVzIGluIHByb2JpbmcgcmVzdWx0ICovCisjZGVmaW5lIEJMS0lEX05WQUxTICAgICAgICAgICAgIChCTEtJRF9OVkFMU19TVUJMS1MgKyBcCisJCQkJIEJMS0lEX05WQUxTX1RPUExHWSArIFwKKwkJCQkgQkxLSURfTlZBTFNfUEFSVFMpCisKK3N0cnVjdCBibGtpZF9wcnZhbAoreworCWNvbnN0IGNoYXIJKm5hbWU7CQkJLyogdmFsdWUgbmFtZSAqLworCXVuc2lnbmVkIGNoYXIJZGF0YVtCTEtJRF9QUk9CVkFMX0JVRlNJWl07IC8qIHZhbHVlIGRhdGEgKi8KKwlzaXplX3QJCWxlbjsJCQkvKiBsZW5ndGggb2YgdmFsdWUgZGF0YSAqLworCisJc3RydWN0IGJsa2lkX2NoYWluCSpjaGFpbjsJCS8qIG93bmVyICovCit9OworCisvKgorICogRmlsZXN5c3RlbSAvIFJhaWQgbWFnaWMgc3RyaW5ncworICovCitzdHJ1Y3QgYmxraWRfaWRtYWcKK3sKKwljb25zdCBjaGFyCSptYWdpYzsJCS8qIG1hZ2ljIHN0cmluZyAqLworCXVuc2lnbmVkIGludAlsZW47CQkvKiBsZW5ndGggb2YgbWFnaWMgKi8KKworCWxvbmcJCWtib2ZmOwkJLyoga2lsb2J5dGUgb2Zmc2V0IG9mIHN1cGVyYmxvY2sgKi8KKwl1bnNpZ25lZCBpbnQJc2JvZmY7CQkvKiBieXRlIG9mZnNldCB3aXRoaW4gc3VwZXJibG9jayAqLworfTsKKworLyoKKyAqIEZpbGVzeXN0ZW0gLyBSYWlkIGRlc2NyaXB0aW9uCisgKi8KK3N0cnVjdCBibGtpZF9pZGluZm8KK3sKKwljb25zdCBjaGFyCSpuYW1lOwkJLyogZnMsIHJhaWQgb3IgcGFydGl0aW9uIHRhYmxlIG5hbWUgKi8KKwlpbnQJCXVzYWdlOwkJLyogQkxLSURfVVNBR0VfKiBmbGFnICovCisJaW50CQlmbGFnczsJCS8qIEJMS0lEX0lESU5GT18qIGZsYWdzICovCisJaW50CQltaW5zejsJCS8qIG1pbmltYWwgZGV2aWNlIHNpemUgKi8KKworCQkJCQkvKiBwcm9iZSBmdW5jdGlvbiAqLworCWludAkJKCpwcm9iZWZ1bmMpKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZyk7CisKKwlzdHJ1Y3QgYmxraWRfaWRtYWcJbWFnaWNzW107CS8qIE5VTEwgb3IgYXJyYXkgd2l0aCBtYWdpYyBzdHJpbmdzICovCit9OworCisjZGVmaW5lIEJMS0lEX05PTkVfTUFHSUMJe3sgTlVMTCB9fQorCisvKgorICogdG9sZXJhbnQgRlMgLSBjYW4gc2hhcmUgdGhlIHNhbWUgZGV2aWNlIHdpdGggbW9yZSBmaWxlc3lzdGVtcyAoZS5nLiB0eXBpY2FsCisgKiBvbiBDRC1ST01zKS4gV2UgbmVlZCB0aGlzIGZsYWcgdG8gZGV0ZWN0IGFtYml2YWxlbnQgcmVzdWx0cyAoZS5nLiB2YWxpZCBmYXQKKyAqIGFuZCB2YWxpZCBsaW51eCBzd2FwIG9uIHRoZSBzYW1lIGRldmljZSkuCisgKi8KKyNkZWZpbmUgQkxLSURfSURJTkZPX1RPTEVSQU5UCSgxIDw8IDEpCisKK3N0cnVjdCBibGtpZF9idWZpbmZvIHsKKwl1bnNpZ25lZCBjaGFyCQkqZGF0YTsKKwlibGtpZF9sb2ZmX3QJCW9mZjsKKwlibGtpZF9sb2ZmX3QJCWxlbjsKKwlzdHJ1Y3QgbGlzdF9oZWFkCWJ1ZnM7CS8qIGxpc3Qgb2YgYnVmZmVycyAqLworfTsKKworLyoKKyAqIExvdy1sZXZlbCBwcm9iaW5nIGNvbnRyb2wgc3RydWN0CisgKi8KK3N0cnVjdCBibGtpZF9zdHJ1Y3RfcHJvYmUKK3sKKwlpbnQJCQlmZDsJCS8qIGRldmljZSBmaWxlIGRlc2NyaXB0b3IgKi8KKwlibGtpZF9sb2ZmX3QJCW9mZjsJCS8qIGJlZ2luIG9mIGRhdGEgb24gdGhlIGRldmljZSAqLworCWJsa2lkX2xvZmZfdAkJc2l6ZTsJCS8qIGVuZCBvZiBkYXRhIG9uIHRoZSBkZXZpY2UgKi8KKworCWRldl90CQkJZGV2bm87CQkvKiBkZXZpY2UgbnVtYmVyIChzdC5zdF9yZGV2KSAqLworCXVuc2lnbmVkIGludAkJYmxrc3N6OwkJLyogc2VjdG9yIHNpemUgKEJMS1NTWkdFVCBpb2N0bCkgKi8KKwltb2RlX3QJCQltb2RlOwkJLyogc3RydWN0IHN0YXQuc2JfbW9kZSAqLworCisJaW50CQkJZmxhZ3M7CQkvKiBwcml2YXRlIGxpYnJheSBmbGFncyAqLworCisJc3RydWN0IGxpc3RfaGVhZAlidWZmZXJzOwkvKiBsaXN0IG9mIGJ1ZmZlcnMgKi8KKworCXN0cnVjdCBibGtpZF9jaGFpbgljaGFpbnNbQkxLSURfTkNIQUlOU107CS8qIGFycmF5IG9mIGNoYWlucyAqLworCXN0cnVjdCBibGtpZF9jaGFpbgkqY3VyX2NoYWluOwkJLyogY3VycmVudCBjaGFpbiAqLworCisJc3RydWN0IGJsa2lkX3BydmFsCXZhbHNbQkxLSURfTlZBTFNdOwkvKiByZXN1bHRzICovCisJaW50CQkJbnZhbHM7CQkvKiBudW1iZXIgb2YgYXNzaWduZWQgdmFscyAqLworfTsKKworLyogZmxhZ3MgKi8KKyNkZWZpbmUgQkxLSURfUFJJVkFURV9GRAkoMSA8PCAxKQkvKiBzZWUgYmxraWRfbmV3X3Byb2JlX2Zyb21fZmlsZW5hbWUoKSAqLworI2RlZmluZSBCTEtJRF9USU5ZX0RFVgkJKDEgPDwgMikJLyogPD0gMS40N01pQiAoZmxvcHB5IG9yIHNvKSAqLworCisvKgorICogRXZhbHVhdGlvbiBtZXRob2RzIChmb3IgYmxraWRfZXZhbF8qIEFQSSkKKyAqLworZW51bSB7CisJQkxLSURfRVZBTF9VREVWID0gMCwKKwlCTEtJRF9FVkFMX1NDQU4sCisKKwlfX0JMS0lEX0VWQUxfTEFTVAorfTsKKworLyoKKyAqIExpYnJhcnkgY29uZmlnIG9wdGlvbnMKKyAqLworc3RydWN0IGJsa2lkX2NvbmZpZyB7CisJaW50IGV2YWxbX19CTEtJRF9FVkFMX0xBU1RdOwkvKiBhcnJheSB3aXRoIEVWQUxVQVRJT049PHVkZXYsY2FjaGU+IG9wdGlvbnMgKi8KKwlpbnQgbmV2YWxzOwkJCS8qIG51bWJlciBvZiBlbGVtcyBpbiBldmFsIGFycmF5ICovCisJaW50IHVldmVudDsJCQkvKiBTRU5EX1VFVkVOVD08eWVzfG5vdD4gb3B0aW9uICovCisJY2hhciAqY2FjaGVmaWxlOwkJLyogQ0FDSEVfRklMRT08cGF0aD4gb3B0aW9uICovCit9OworCitleHRlcm4gc3RydWN0IGJsa2lkX2NvbmZpZyAqYmxraWRfcmVhZF9jb25maWcoY29uc3QgY2hhciAqZmlsZW5hbWUpOworZXh0ZXJuIHZvaWQgYmxraWRfZnJlZV9jb25maWcoc3RydWN0IGJsa2lkX2NvbmZpZyAqY29uZik7CisKKy8qCisgKiBNaW5pbXVtIG51bWJlciBvZiBzZWNvbmRzIGJldHdlZW4gZGV2aWNlIHByb2JlcywgZXZlbiB3aGVuIHJlYWRpbmcKKyAqIGZyb20gdGhlIGNhY2hlLiAgVGhpcyBpcyB0byBhdm9pZCByZS1wcm9iaW5nIGFsbCBkZXZpY2VzIHdoaWNoIHdlcmUKKyAqIGp1c3QgcHJvYmVkIGJ5IGFub3RoZXIgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHNoYXJlIHRoZSBjYWNoZS4KKyAqLworI2RlZmluZSBCTEtJRF9QUk9CRV9NSU4JCTIKKworLyoKKyAqIFRpbWUgaW4gc2Vjb25kcyBhbiBlbnRyeSByZW1haW5zIHZlcmlmaWVkIGluIHRoZSBpbi1tZW1vcnkgY2FjaGUKKyAqIGJlZm9yZSBiZWluZyByZXZlcmlmaWVkIChpbiBjYXNlIG9mIGxvbmctcnVubmluZyBwcm9jZXNzZXMgdGhhdAorICoga2VlcCBhIGNhY2hlIGluIG1lbW9yeSBhbmQgY29udGludWUgdG8gdXNlIGl0IGZvciBhIGxvbmcgdGltZSkuCisgKi8KKyNkZWZpbmUgQkxLSURfUFJPQkVfSU5URVJWQUwJMjAwCisKKy8qIFRoaXMgZGVzY3JpYmVzIGFuIGVudGlyZSBibGtpZCBjYWNoZSBmaWxlIGFuZCBwcm9iZWQgZGV2aWNlcy4KKyAqIFdlIGNhbiB0cmF2ZXJzZSBhbGwgb2YgdGhlIGZvdW5kIGRldmljZXMgdmlhIGJpY19saXN0LgorICogV2UgY2FuIHRyYXZlcnNlIGFsbCBvZiB0aGUgdGFnIHR5cGVzIGJ5IGJpY190YWdzLCB3aGljaCBob2xkIGVtcHR5IHRhZ3MKKyAqIGZvciBlYWNoIHRhZyB0eXBlLiAgVGhvc2UgdGFncyBjYW4gYmUgdXNlZCBhcyBsaXN0X2hlYWRzIGZvciBpdGVyYXRpbmcKKyAqIHRocm91Z2ggYWxsIGRldmljZXMgd2l0aCBhIHNwZWNpZmljIHRhZyB0eXBlIChlLmcuIExBQkVMKS4KKyAqLworc3RydWN0IGJsa2lkX3N0cnVjdF9jYWNoZQoreworCXN0cnVjdCBsaXN0X2hlYWQJYmljX2RldnM7CS8qIExpc3QgaGVhZCBvZiBhbGwgZGV2aWNlcyAqLworCXN0cnVjdCBsaXN0X2hlYWQJYmljX3RhZ3M7CS8qIExpc3QgaGVhZCBvZiBhbGwgdGFnIHR5cGVzICovCisJdGltZV90CQkJYmljX3RpbWU7CS8qIExhc3QgcHJvYmUgdGltZSAqLworCXRpbWVfdAkJCWJpY19mdGltZTsJLyogTW9kIHRpbWUgb2YgdGhlIGNhY2hlZmlsZSAqLworCXVuc2lnbmVkIGludAkJYmljX2ZsYWdzOwkvKiBTdGF0dXMgZmxhZ3Mgb2YgdGhlIGNhY2hlICovCisJY2hhcgkJCSpiaWNfZmlsZW5hbWU7CS8qIGZpbGVuYW1lIG9mIGNhY2hlICovCisJYmxraWRfcHJvYmUJCXByb2JlOwkJLyogbG93LWxldmVsIHByb2Jpbmcgc3R1ZmYgKi8KK307CisKKyNkZWZpbmUgQkxLSURfQklDX0ZMX1BST0JFRAkweDAwMDIJLyogV2UgcHJvYmVkIC9wcm9jL3BhcnRpdGlvbiBkZXZpY2VzICovCisjZGVmaW5lIEJMS0lEX0JJQ19GTF9DSEFOR0VECTB4MDAwNAkvKiBDYWNoZSBoYXMgY2hhbmdlZCBmcm9tIGRpc2sgKi8KKworZXh0ZXJuIGNoYXIgKmJsa2lkX3N0cmR1cChjb25zdCBjaGFyICpzKTsKK2V4dGVybiBjaGFyICpibGtpZF9zdHJuZHVwKGNvbnN0IGNoYXIgKnMsIGNvbnN0IGludCBsZW5ndGgpOworZXh0ZXJuIGNoYXIgKmJsa2lkX3N0cmNvbmNhdChjb25zdCBjaGFyICphLCBjb25zdCBjaGFyICpiLCBjb25zdCBjaGFyICpjKTsKK2V4dGVybiBpbnQgYmxraWRfZnN0YXRhdChESVIgKmRpciwgY29uc3QgY2hhciAqZGlybmFtZSwgY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQlzdHJ1Y3Qgc3RhdCAqc3QsIGludCBub2ZvbGxvdyk7CisKKyNkZWZpbmUgQkxLSURfQ0FDSEVfRklMRQkiL2V0Yy9ibGtpZC50YWIiCisjZGVmaW5lIEJMS0lEX0NPTkZJR19GSUxFCSIvZXRjL2Jsa2lkLmNvbmYiCisKKyNkZWZpbmUgQkxLSURfRVJSX0lPCSA1CisjZGVmaW5lIEJMS0lEX0VSUl9QUk9DCSA5CisjZGVmaW5lIEJMS0lEX0VSUl9NRU0JMTIKKyNkZWZpbmUgQkxLSURfRVJSX0NBQ0hFCTE0CisjZGVmaW5lIEJMS0lEX0VSUl9ERVYJMTkKKyNkZWZpbmUgQkxLSURfRVJSX1BBUkFNCTIyCisjZGVmaW5lIEJMS0lEX0VSUl9CSUcJMjcKKworLyoKKyAqIFByaW9yaXR5IHNldHRpbmdzIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgZGV2aWNlcworICovCisjZGVmaW5lIEJMS0lEX1BSSV9VQkkJNTAKKyNkZWZpbmUgQkxLSURfUFJJX0RNCTQwCisjZGVmaW5lIEJMS0lEX1BSSV9FVk1TCTMwCisjZGVmaW5lIEJMS0lEX1BSSV9MVk0JMjAKKyNkZWZpbmUgQkxLSURfUFJJX01ECTEwCisKKyNpZiBkZWZpbmVkKFRFU1RfUFJPR1JBTSkgJiYgIWRlZmluZWQoQ09ORklHX0JMS0lEX0RFQlVHKQorI2RlZmluZSBDT05GSUdfQkxLSURfREVCVUcKKyNlbmRpZgorCisjZGVmaW5lIERFQlVHX0NBQ0hFCTB4MDAwMQorI2RlZmluZSBERUJVR19EVU1QCTB4MDAwMgorI2RlZmluZSBERUJVR19ERVYJMHgwMDA0CisjZGVmaW5lIERFQlVHX0RFVk5BTUUJMHgwMDA4CisjZGVmaW5lIERFQlVHX0RFVk5PCTB4MDAxMAorI2RlZmluZSBERUJVR19QUk9CRQkweDAwMjAKKyNkZWZpbmUgREVCVUdfUkVBRAkweDAwNDAKKyNkZWZpbmUgREVCVUdfUkVTT0xWRQkweDAwODAKKyNkZWZpbmUgREVCVUdfU0FWRQkweDAxMDAKKyNkZWZpbmUgREVCVUdfVEFHCTB4MDIwMAorI2RlZmluZSBERUJVR19MT1dQUk9CRQkweDA0MDAKKyNkZWZpbmUgREVCVUdfQ09ORklHCTB4MDgwMAorI2RlZmluZSBERUJVR19FVkFMVUFURQkweDEwMDAKKyNkZWZpbmUgREVCVUdfSU5JVAkweDgwMDAKKyNkZWZpbmUgREVCVUdfQUxMCTB4RkZGRgorCisjaWZkZWYgQ09ORklHX0JMS0lEX0RFQlVHCitleHRlcm4gaW50IGJsa2lkX2RlYnVnX21hc2s7CitleHRlcm4gdm9pZCBibGtpZF9pbml0X2RlYnVnKGludCBtYXNrKTsKK2V4dGVybiB2b2lkIGJsa2lkX2RlYnVnX2R1bXBfZGV2KGJsa2lkX2RldiBkZXYpOworZXh0ZXJuIHZvaWQgYmxraWRfZGVidWdfZHVtcF90YWcoYmxraWRfdGFnIHRhZyk7CisKKyNkZWZpbmUgREJHKG0seCkJaWYgKChtKSAmIGJsa2lkX2RlYnVnX21hc2spIHg7CisKKyNlbHNlIC8qICFDT05GSUdfQkxLSURfREVCVUcgKi8KKyNkZWZpbmUgREJHKG0seCkKKyNkZWZpbmUgYmxraWRfaW5pdF9kZWJ1Zyh4KQorI2VuZGlmIC8qIENPTkZJR19CTEtJRF9ERUJVRyAqLworCisvKiBkZXZuby5jICovCitzdHJ1Y3QgZGlyX2xpc3QgeworCWNoYXIJKm5hbWU7CisJc3RydWN0IGRpcl9saXN0ICpuZXh0OworfTsKK2V4dGVybiB2b2lkIGJsa2lkX19zY2FuX2RpcihjaGFyICosIGRldl90LCBzdHJ1Y3QgZGlyX2xpc3QgKiosIGNoYXIgKiopOworZXh0ZXJuIGludCBibGtpZF9kcml2ZXJfaGFzX21ham9yKGNvbnN0IGNoYXIgKmRydm5hbWUsIGludCBtYWpvcik7CisKKy8qIGxzZWVrLmMgKi8KK2V4dGVybiBibGtpZF9sb2ZmX3QgYmxraWRfbGxzZWVrKGludCBmZCwgYmxraWRfbG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSk7CisKKy8qIHJlYWQuYyAqLworZXh0ZXJuIHZvaWQgYmxraWRfcmVhZF9jYWNoZShibGtpZF9jYWNoZSBjYWNoZSk7CisKKy8qIHNhdmUuYyAqLworZXh0ZXJuIGludCBibGtpZF9mbHVzaF9jYWNoZShibGtpZF9jYWNoZSBjYWNoZSk7CisKKy8qIGNhY2hlICovCitleHRlcm4gY2hhciAqYmxraWRfc2FmZV9nZXRlbnYoY29uc3QgY2hhciAqYXJnKTsKK2V4dGVybiBjaGFyICpibGtpZF9nZXRfY2FjaGVfZmlsZW5hbWUoc3RydWN0IGJsa2lkX2NvbmZpZyAqY29uZik7CisKKy8qCisgKiBGdW5jdGlvbnMgdG8gY3JlYXRlIGFuZCBmaW5kIGEgc3BlY2lmaWMgdGFnIHR5cGU6IHRhZy5jCisgKi8KK2V4dGVybiB2b2lkIGJsa2lkX2ZyZWVfdGFnKGJsa2lkX3RhZyB0YWcpOworZXh0ZXJuIGJsa2lkX3RhZyBibGtpZF9maW5kX3RhZ19kZXYoYmxraWRfZGV2IGRldiwgY29uc3QgY2hhciAqdHlwZSk7CitleHRlcm4gaW50IGJsa2lkX3NldF90YWcoYmxraWRfZGV2IGRldiwgY29uc3QgY2hhciAqbmFtZSwKKwkJCSBjb25zdCBjaGFyICp2YWx1ZSwgY29uc3QgaW50IHZsZW5ndGgpOworCisvKgorICogRnVuY3Rpb25zIHRvIGNyZWF0ZSBhbmQgZmluZCBhIHNwZWNpZmljIHRhZyB0eXBlOiBkZXYuYworICovCitleHRlcm4gYmxraWRfZGV2IGJsa2lkX25ld19kZXYodm9pZCk7CitleHRlcm4gdm9pZCBibGtpZF9mcmVlX2RldihibGtpZF9kZXYgZGV2KTsKKworLyogcHJvYmUuYyAqLworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9pc190aW55KGJsa2lkX3Byb2JlIHByKTsKK2V4dGVybiB1bnNpZ25lZCBjaGFyICpibGtpZF9wcm9iZV9nZXRfYnVmZmVyKGJsa2lkX3Byb2JlIHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGtpZF9sb2ZmX3Qgb2ZmLCBibGtpZF9sb2ZmX3QgbGVuKTsKKworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmJsa2lkX3Byb2JlX2dldF9zZWN0b3IoYmxraWRfcHJvYmUgcHIsIHVuc2lnbmVkIGludCBzZWN0b3IpOworCitleHRlcm4gaW50IGJsa2lkX3Byb2JlX2dldF9kaW1lbnNpb24oYmxraWRfcHJvYmUgcHIsCisJICAgICAgICAgICAgICAgIGJsa2lkX2xvZmZfdCAqb2ZmLCBibGtpZF9sb2ZmX3QgKnNpemUpOworCitleHRlcm4gaW50IGJsa2lkX3Byb2JlX3NldF9kaW1lbnNpb24oYmxraWRfcHJvYmUgcHIsCisJICAgICAgICAgICAgICAgIGJsa2lkX2xvZmZfdCBvZmYsIGJsa2lkX2xvZmZfdCBzaXplKTsKKworLyogcmV0dXJucyBzdXBlcmJsb2sgYWNjb3JkaW5nIHRvICdzdHJ1Y3QgYmxraWRfaWRtYWcnICovCisjZGVmaW5lIGJsa2lkX3Byb2JlX2dldF9zYihfcHIsIF9tYWcsIHR5cGUpIFwKKwkJCSgodHlwZSAqKSBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKChfcHIpLFwKKwkJCQkJKF9tYWcpLT5rYm9mZiA8PCAxMCwgc2l6ZW9mKHR5cGUpKSkKKworZXh0ZXJuIGJsa2lkX3BhcnRsaXN0IGJsa2lkX3Byb2JlX2dldF9wYXJ0bGlzdChibGtpZF9wcm9iZSBwcik7CisKK2V4dGVybiB2b2lkIGJsa2lkX3Byb2JlX2NoYWluX3Jlc2V0X3ZhbHMoYmxraWRfcHJvYmUgcHIsIHN0cnVjdCBibGtpZF9jaGFpbiAqY2huKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfY2hhaW5fY29weV92YWxzKGJsa2lkX3Byb2JlIHByLCBzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobiwKKwkJCSAgICAgICAgICAgICAgICBzdHJ1Y3QgYmxraWRfcHJ2YWwgKnZhbHMsIGludCBudmFscyk7CitleHRlcm4gc3RydWN0IGJsa2lkX3BydmFsICpibGtpZF9wcm9iZV9hc3NpZ25fdmFsdWUoYmxraWRfcHJvYmUgcHIsIGNvbnN0IGNoYXIgKm5hbWUpOworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9yZXNldF9sYXN0X3ZhbHVlKGJsa2lkX3Byb2JlIHByKTsKK2V4dGVybiB2b2lkIGJsa2lkX3Byb2JlX2FwcGVuZF92YWxzKGJsa2lkX3Byb2JlIHByLCBzdHJ1Y3QgYmxraWRfcHJ2YWwgKnZhbHMsIGludCBudmFscyk7CisKK2V4dGVybiBzdHJ1Y3QgYmxraWRfY2hhaW4gKmJsa2lkX3Byb2JlX2dldF9jaGFpbihibGtpZF9wcm9iZSBwcik7CisKK2V4dGVybiBzdHJ1Y3QgYmxraWRfcHJ2YWwgKl9fYmxraWRfcHJvYmVfZ2V0X3ZhbHVlKGJsa2lkX3Byb2JlIHByLCBpbnQgbnVtKTsKK2V4dGVybiBzdHJ1Y3QgYmxraWRfcHJ2YWwgKl9fYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKGJsa2lkX3Byb2JlIHByLCBjb25zdCBjaGFyICpuYW1lKTsKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKmJsa2lkX3Byb2JlX2dldF9maWx0ZXIoYmxraWRfcHJvYmUgcHIsIGludCBjaGFpbiwgaW50IGNyZWF0ZSk7CitleHRlcm4gaW50IF9fYmxraWRfcHJvYmVfaW52ZXJ0X2ZpbHRlcihibGtpZF9wcm9iZSBwciwgaW50IGNoYWluKTsKK2V4dGVybiBpbnQgX19ibGtpZF9wcm9iZV9yZXNldF9maWx0ZXIoYmxraWRfcHJvYmUgcHIsIGludCBjaGFpbik7CitleHRlcm4gaW50IF9fYmxraWRfcHJvYmVfZmlsdGVyX3R5cGVzKGJsa2lkX3Byb2JlIHByLCBpbnQgY2hhaW4sIGludCBmbGFnLCBjaGFyICpuYW1lc1tdKTsKKworZXh0ZXJuIHZvaWQgKmJsa2lkX3Byb2JlX2dldF9iaW5hcnlfZGF0YShibGtpZF9wcm9iZSBwciwgc3RydWN0IGJsa2lkX2NoYWluICpjaG4pOworCitleHRlcm4gaW50IGJsa2lkX3Byb2JlX3NldF92YWx1ZShibGtpZF9wcm9iZSBwciwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpkYXRhLCBzaXplX3QgbGVuKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfdnNwcmludGZfdmFsdWUoYmxraWRfcHJvYmUgcHIsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfc3ByaW50Zl92YWx1ZShibGtpZF9wcm9iZSBwciwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CisKK2V4dGVybiB2b2lkIGJsa2lkX3VucGFyc2VfdXVpZChjb25zdCB1bnNpZ25lZCBjaGFyICp1dWlkLCBjaGFyICpzdHIsIHNpemVfdCBsZW4pOworZXh0ZXJuIHNpemVfdCBibGtpZF9ydHJpbV93aGl0ZXNwYWNlKHVuc2lnbmVkIGNoYXIgKnN0cik7CisKKy8qIGZpbHRlciBiaXRtYXAgbWFjcm9zICovCisjZGVmaW5lIGJsa2lkX2JtcF93b3Jkc2l6ZQkJKDggKiBzaXplb2YodW5zaWduZWQgbG9uZykpCisjZGVmaW5lIGJsa2lkX2JtcF9pZHhfYml0KGl0ZW0pCQkoMVVMIDw8ICgoaXRlbSkgJSBibGtpZF9ibXBfd29yZHNpemUpKQorI2RlZmluZSBibGtpZF9ibXBfaWR4X2J5dGUoaXRlbSkJKChpdGVtKSAvIGJsa2lkX2JtcF93b3Jkc2l6ZSkKKworI2RlZmluZSBibGtpZF9ibXBfc2V0X2l0ZW0oYm1wLCBpdGVtKQlcCisJCSgoYm1wKVsgYmxraWRfYm1wX2lkeF9ieXRlKGl0ZW0pIF0gfD0gYmxraWRfYm1wX2lkeF9iaXQoaXRlbSkpCisKKyNkZWZpbmUgYmxraWRfYm1wX3Vuc2V0X2l0ZW0oYm1wLCBpdGVtKQlcCisJCSgoYm1wKVsgYm1wX2lkeF9ieXRlKGl0ZW0pIF0gJj0gfmJtcF9pZHhfYml0KGl0ZW0pKQorCisjZGVmaW5lIGJsa2lkX2JtcF9nZXRfaXRlbShibXAsIGl0ZW0pCVwKKwkJKChibXApWyBibGtpZF9ibXBfaWR4X2J5dGUoaXRlbSkgXSAmIGJsa2lkX2JtcF9pZHhfYml0KGl0ZW0pKQorCisjZGVmaW5lIGJsa2lkX2JtcF9ud29yZHMobWF4X2l0ZW1zKSBcCisJCSgoKG1heF9pdGVtcykgKyBibGtpZF9ibXBfd29yZHNpemUpIC8gYmxraWRfYm1wX3dvcmRzaXplKQorCisjZGVmaW5lIGJsa2lkX2JtcF9uYnl0ZXMobWF4X2l0ZW1zKSBcCisJCShibGtpZF9ibXBfbndvcmRzKG1heF9pdGVtcykgKiBzaXplb2YodW5zaWduZWQgbG9uZykpCisKKy8qIGVuY29kZS5jICovCitleHRlcm4gc2l6ZV90IGJsa2lkX2VuY29kZV90b191dGY4KGludCBlbmMsIHVuc2lnbmVkIGNoYXIgKmRlc3QsIHNpemVfdCBsZW4sCisJCQljb25zdCB1bnNpZ25lZCBjaGFyICpzcmMsIHNpemVfdCBjb3VudCk7CisKKyNkZWZpbmUgQkxLSURfRU5DX1VURjE2QkUJMAorI2RlZmluZSBCTEtJRF9FTkNfVVRGMTZMRQkxCisKKyNlbmRpZiAvKiBfQkxLSURfQkxLSURQX0ggKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvY2FjaGUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvY2FjaGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzExNzZiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9jYWNoZS5jCkBAIC0wLDAgKzEsMjkwIEBACisvKgorICogY2FjaGUuYyAtIGFsbG9jYXRpb24vaW5pdGlhbGl6YXRpb24vZnJlZSByb3V0aW5lcyBmb3IgY2FjaGUKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgQW5kcmVhcyBEaWxnZXIKKyAqIENvcHlyaWdodCAoQykgMjAwMyBUaGVvZG9yZSBUcydvCisgKgorICogJUJlZ2luLUhlYWRlciUKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9FUlJOT19ICisjaW5jbHVkZSA8ZXJybm8uaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2lmZGVmIEhBVkVfU1lTX1BSQ1RMX0gKKyNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KKyNlbHNlCisjZGVmaW5lIFBSX0dFVF9EVU1QQUJMRSAzCisjZW5kaWYKKyNpZiAoIWRlZmluZWQoSEFWRV9QUkNUTCkgJiYgZGVmaW5lZChsaW51eCkpCisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZW5kaWYKKyNpbmNsdWRlICJibGtpZFAuaCIKKworaW50IGJsa2lkX2RlYnVnX21hc2sgPSAwOworCisvKioKKyAqIFNFQ1RJT046Y2FjaGUKKyAqIEB0aXRsZTogQ2FjaGUKKyAqIEBzaG9ydF9kZXNjcmlwdGlvbjogYmFzaWMgcm91dGluZXMgdG8gd29yayB3aXRoIGxpYmJsa2lkIGNhY2hlCisgKgorICogQmxvY2sgZGV2aWNlIGluZm9ybWF0aW9uIGlzIG5vcm1hbGx5IGtlcHQgaW4gYSBjYWNoZSBmaWxlIC9ldGMvYmxraWQudGFiIGFuZCBpcworICogdmVyaWZpZWQgdG8gc3RpbGwgYmUgdmFsaWQgYmVmb3JlIGJlaW5nIHJldHVybmVkIHRvIHRoZSB1c2VyIChpZiB0aGUgdXNlciBoYXMKKyAqIHJlYWQgcGVybWlzc2lvbiBvbiB0aGUgcmF3IGJsb2NrIGRldmljZSwgb3RoZXJ3aXNlIG5vdCkuICBUaGUgY2FjaGUgZmlsZSBhbHNvCisgKiBhbGxvd3MgdW5wcml2aWxlZ2VkIHVzZXJzIChub3JtYWxseSBhbnlvbmUgb3RoZXIgdGhhbiByb290LCBvciB0aG9zZSBub3QgaW4gdGhlCisgKiAiZGlzayIgZ3JvdXApIHRvIGxvY2F0ZSBkZXZpY2VzIGJ5IGxhYmVsL2lkLiAgVGhlIHN0YW5kYXJkIGxvY2F0aW9uIG9mIHRoZQorICogY2FjaGUgZmlsZSBjYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQkxLSURfRklMRS4KKyAqCisgKiBJbiBzaXR1YXRpb25zIHdoZXJlIG9uZSBpcyBnZXR0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGtub3duIGRldmljZSwgaXQKKyAqIGRvZXMgbm90IGltcGFjdCBwZXJmb3JtYW5jZSB3aGV0aGVyIHRoZSBjYWNoZSBpcyB1c2VkIG9yIG5vdCAodW5sZXNzIHlvdSBhcmUKKyAqIG5vdCBhYmxlIHRvIHJlYWQgdGhlIGJsb2NrIGRldmljZSBkaXJlY3RseSkuICBJZiB5b3UgYXJlIGRlYWxpbmcgd2l0aCBtdWx0aXBsZQorICogZGV2aWNlcywgdXNlIG9mIHRoZSBjYWNoZSBpcyBoaWdobHkgcmVjb21tZW5kZWQgKGV2ZW4gaWYgZW1wdHkpIGFzIGRldmljZXMgd2lsbAorICogYmUgc2Nhbm5lZCBhdCBtb3N0IG9uZSB0aW1lIGFuZCB0aGUgb24tZGlzayBjYWNoZSB3aWxsIGJlIHVwZGF0ZWQgaWYgcG9zc2libGUuCisgKiBUaGVyZSBpcyByYXJlbHkgYSByZWFzb24gbm90IHRvIHVzZSB0aGUgY2FjaGUuCisgKgorICogSW4gc29tZSBjYXNlcyAobW9kdWxhciBrZXJuZWxzKSwgYmxvY2sgZGV2aWNlcyBhcmUgbm90IGV2ZW4gdmlzaWJsZSB1bnRpbCBhZnRlcgorICogdGhleSBhcmUgYWNjZXNzZWQgdGhlIGZpcnN0IHRpbWUsIHNvIGl0IGlzIGNyaXRpY2FsIHRoYXQgdGhlcmUgaXMgc29tZSB3YXkgdG8KKyAqIGxvY2F0ZSB0aGVzZSBkZXZpY2VzIHdpdGhvdXQgZW51bWVyYXRpbmcgb25seSB2aXNpYmxlIGRldmljZXMsIHNvIHRoZSB1c2Ugb2YKKyAqIHRoZSBjYWNoZSBmaWxlIGlzIHJlcXVpcmVkIGluIHRoaXMgc2l0dWF0aW9uLgorICovCisKK2NoYXIgKmJsa2lkX3NhZmVfZ2V0ZW52KGNvbnN0IGNoYXIgKmFyZykKK3sKKwlpZiAoKGdldHVpZCgpICE9IGdldGV1aWQoKSkgfHwgKGdldGdpZCgpICE9IGdldGVnaWQoKSkpCisJCXJldHVybiBOVUxMOworI2lmIEhBVkVfUFJDVEwKKwlpZiAocHJjdGwoUFJfR0VUX0RVTVBBQkxFLCAwLCAwLCAwLCAwKSA9PSAwKQorCQlyZXR1cm4gTlVMTDsKKyNlbHNlCisjaWYgKGRlZmluZWQobGludXgpICYmIGRlZmluZWQoU1lTX3ByY3RsKSkKKwlpZiAoc3lzY2FsbChTWVNfcHJjdGwsIFBSX0dFVF9EVU1QQUJMRSwgMCwgMCwgMCwgMCkgPT0gMCkKKwkJcmV0dXJuIE5VTEw7CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9fX1NFQ1VSRV9HRVRFTlYKKwlyZXR1cm4gX19zZWN1cmVfZ2V0ZW52KGFyZyk7CisjZWxzZQorCXJldHVybiBnZXRlbnYoYXJnKTsKKyNlbmRpZgorfQorCisjaWYgMCAvKiBpZmRlZiBDT05GSUdfQkxLSURfREVCVUcgKi8KK3N0YXRpYyBibGtpZF9kZWJ1Z19kdW1wX2NhY2hlKGludCBtYXNrLCBibGtpZF9jYWNoZSBjYWNoZSkKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwOworCisJaWYgKCFjYWNoZSkgeworCQlwcmludGYoImNhY2hlOiBOVUxMXG4iKTsKKwkJcmV0dXJuOworCX0KKworCXByaW50ZigiY2FjaGU6IHRpbWUgPSAlbHVcbiIsIGNhY2hlLT5iaWNfdGltZSk7CisJcHJpbnRmKCJjYWNoZTogZmxhZ3MgPSAweCUwOFhcbiIsIGNhY2hlLT5iaWNfZmxhZ3MpOworCisJbGlzdF9mb3JfZWFjaChwLCAmY2FjaGUtPmJpY19kZXZzKSB7CisJCWJsa2lkX2RldiBkZXYgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCBibGtpZF9zdHJ1Y3RfZGV2LCBiaWRfZGV2cyk7CisJCWJsa2lkX2RlYnVnX2R1bXBfZGV2KGRldik7CisJfQorfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQkxLSURfREVCVUcKK3ZvaWQgYmxraWRfaW5pdF9kZWJ1ZyhpbnQgbWFzaykKK3sKKwlpZiAoYmxraWRfZGVidWdfbWFzayAmIERFQlVHX0lOSVQpCisJCXJldHVybjsKKworCWlmICghbWFzaykKKwl7CisJCWNoYXIgKmRzdHIgPSBnZXRlbnYoIkJMS0lEX0RFQlVHIik7CisKKwkJaWYgKGRzdHIpCisJCQlibGtpZF9kZWJ1Z19tYXNrID0gc3RydG91bChkc3RyLCAwLCAwKTsKKwl9IGVsc2UKKwkJYmxraWRfZGVidWdfbWFzayA9IG1hc2s7CisKKwlpZiAoYmxraWRfZGVidWdfbWFzaykKKwkJcHJpbnRmKCJsaWJibGtpZDogZGVidWcgbWFzayBzZXQgdG8gMHglMDR4LlxuIiwgYmxraWRfZGVidWdfbWFzayk7CisKKwlibGtpZF9kZWJ1Z19tYXNrIHw9IERFQlVHX0lOSVQ7Cit9CisjZW5kaWYKKworLyogcmV0dXJucyBhbGxvY2F0ZWQgcGF0aCB0byBjYWNoZSAqLworY2hhciAqYmxraWRfZ2V0X2NhY2hlX2ZpbGVuYW1lKHN0cnVjdCBibGtpZF9jb25maWcgKmNvbmYpCit7CisJY2hhciAqZmlsZW5hbWU7CisKKwlmaWxlbmFtZSA9IGJsa2lkX3NhZmVfZ2V0ZW52KCJCTEtJRF9GSUxFIik7CisJaWYgKGZpbGVuYW1lKQorCQlmaWxlbmFtZSA9IGJsa2lkX3N0cmR1cChmaWxlbmFtZSk7CisJZWxzZSBpZiAoY29uZikKKwkJZmlsZW5hbWUgPSBibGtpZF9zdHJkdXAoY29uZi0+Y2FjaGVmaWxlKTsKKwllbHNlIHsKKwkJc3RydWN0IGJsa2lkX2NvbmZpZyAqYyA9IGJsa2lkX3JlYWRfY29uZmlnKE5VTEwpOworCQlpZiAoIWMpCisJCQlmaWxlbmFtZSA9IGJsa2lkX3N0cmR1cChCTEtJRF9DQUNIRV9GSUxFKTsKKwkJZWxzZSB7CisJCQlmaWxlbmFtZSA9IGMtPmNhY2hlZmlsZTsgIC8qIGFscmVhZHkgYWxsb2NhdGVkICovCisJCQljLT5jYWNoZWZpbGUgPSBOVUxMOworCQkJYmxraWRfZnJlZV9jb25maWcoYyk7CisJCX0KKwl9CisJcmV0dXJuIGZpbGVuYW1lOworfQorCisvKioKKyAqIGJsa2lkX2dldF9jYWNoZToKKyAqIEBjYWNoZTogcG9pbnRlciB0byByZXR1cm4gY2FjaGUgaGFuZGxlcgorICogQGZpbGVuYW1lOiBwYXRoIHRvIHRoZSBjYWNoZSBmaWxlIG9yIE5VTEwgZm9yIHRoZSBkZWZhdWx0IHBhdGgKKyAqCisgKiBBbGxvY2F0ZXMgYW5kIGluaXRpYWxpemUgbGlicnJheSBjYWNoZSBoYW5kbGVyLgorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2VzcyBvciBudW1iZXIgbGVzcyB0aGFuIHplcm8gaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX2dldF9jYWNoZShibGtpZF9jYWNoZSAqcmV0X2NhY2hlLCBjb25zdCBjaGFyICpmaWxlbmFtZSkKK3sKKwlibGtpZF9jYWNoZSBjYWNoZTsKKworCWJsa2lkX2luaXRfZGVidWcoMCk7CisKKwlEQkcoREVCVUdfQ0FDSEUsIHByaW50ZigiY3JlYXRpbmcgYmxraWQgY2FjaGUgKHVzaW5nICVzKVxuIiwKKwkJCQlmaWxlbmFtZSA/IGZpbGVuYW1lIDogImRlZmF1bHQgY2FjaGUiKSk7CisKKwlpZiAoIShjYWNoZSA9IChibGtpZF9jYWNoZSkgY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgYmxraWRfc3RydWN0X2NhY2hlKSkpKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9NRU07CisKKwlJTklUX0xJU1RfSEVBRCgmY2FjaGUtPmJpY19kZXZzKTsKKwlJTklUX0xJU1RfSEVBRCgmY2FjaGUtPmJpY190YWdzKTsKKworCWlmIChmaWxlbmFtZSAmJiAhKmZpbGVuYW1lKQorCQlmaWxlbmFtZSA9IE5VTEw7CisJaWYgKGZpbGVuYW1lKQorCQljYWNoZS0+YmljX2ZpbGVuYW1lID0gYmxraWRfc3RyZHVwKGZpbGVuYW1lKTsKKwllbHNlCisJCWNhY2hlLT5iaWNfZmlsZW5hbWUgPSBibGtpZF9nZXRfY2FjaGVfZmlsZW5hbWUoTlVMTCk7CisKKwlibGtpZF9yZWFkX2NhY2hlKGNhY2hlKTsKKwkqcmV0X2NhY2hlID0gY2FjaGU7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYmxraWRfcHV0X2NhY2hlOgorICogQGNhY2hlOiBjYWNoZSBoYW5kbGVyCisgKgorICogU2F2ZXMgY2hhbmdlcyB0byBjYWNoZSBmaWxlLgorICovCit2b2lkIGJsa2lkX3B1dF9jYWNoZShibGtpZF9jYWNoZSBjYWNoZSkKK3sKKwlpZiAoIWNhY2hlKQorCQlyZXR1cm47CisKKwkodm9pZCkgYmxraWRfZmx1c2hfY2FjaGUoY2FjaGUpOworCisJREJHKERFQlVHX0NBQ0hFLCBwcmludGYoImZyZWVpbmcgY2FjaGUgc3RydWN0XG4iKSk7CisKKwkvKiBEQkcoREVCVUdfQ0FDSEUsIGJsa2lkX2RlYnVnX2R1bXBfY2FjaGUoY2FjaGUpKTsgKi8KKworCXdoaWxlICghbGlzdF9lbXB0eSgmY2FjaGUtPmJpY19kZXZzKSkgeworCQlibGtpZF9kZXYgZGV2ID0gbGlzdF9lbnRyeShjYWNoZS0+YmljX2RldnMubmV4dCwKKwkJCQkJICAgc3RydWN0IGJsa2lkX3N0cnVjdF9kZXYsCisJCQkJCSAgICBiaWRfZGV2cyk7CisJCWJsa2lkX2ZyZWVfZGV2KGRldik7CisJfQorCisJd2hpbGUgKCFsaXN0X2VtcHR5KCZjYWNoZS0+YmljX3RhZ3MpKSB7CisJCWJsa2lkX3RhZyB0YWcgPSBsaXN0X2VudHJ5KGNhY2hlLT5iaWNfdGFncy5uZXh0LAorCQkJCQkgICBzdHJ1Y3QgYmxraWRfc3RydWN0X3RhZywKKwkJCQkJICAgYml0X3RhZ3MpOworCisJCXdoaWxlICghbGlzdF9lbXB0eSgmdGFnLT5iaXRfbmFtZXMpKSB7CisJCQlibGtpZF90YWcgYmFkID0gbGlzdF9lbnRyeSh0YWctPmJpdF9uYW1lcy5uZXh0LAorCQkJCQkJICAgc3RydWN0IGJsa2lkX3N0cnVjdF90YWcsCisJCQkJCQkgICBiaXRfbmFtZXMpOworCisJCQlEQkcoREVCVUdfQ0FDSEUsIHByaW50Zigid2FybmluZzogdW5mcmVlZCB0YWcgJXM9JXNcbiIsCisJCQkJCQliYWQtPmJpdF9uYW1lLCBiYWQtPmJpdF92YWwpKTsKKwkJCWJsa2lkX2ZyZWVfdGFnKGJhZCk7CisJCX0KKwkJYmxraWRfZnJlZV90YWcodGFnKTsKKwl9CisKKwlibGtpZF9mcmVlX3Byb2JlKGNhY2hlLT5wcm9iZSk7CisKKwlmcmVlKGNhY2hlLT5iaWNfZmlsZW5hbWUpOworCWZyZWUoY2FjaGUpOworfQorCisvKioKKyAqIGJsa2lkX2djX2NhY2hlOgorICogQGNhY2hlOiBjYWNoZSBoYW5kbGVyCisgKgorICogUmVtb3ZlcyBnYXJiYWdlIChub24tZXhpc3RpbmcgZGV2aWNlcykgZnJvbSB0aGUgY2FjaGUuCisgKi8KK3ZvaWQgYmxraWRfZ2NfY2FjaGUoYmxraWRfY2FjaGUgY2FjaGUpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqcCwgKnBuZXh0OworCXN0cnVjdCBzdGF0IHN0OworCisJaWYgKCFjYWNoZSkKKwkJcmV0dXJuOworCisJbGlzdF9mb3JfZWFjaF9zYWZlKHAsIHBuZXh0LCAmY2FjaGUtPmJpY19kZXZzKSB7CisJCWJsa2lkX2RldiBkZXYgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCBibGtpZF9zdHJ1Y3RfZGV2LCBiaWRfZGV2cyk7CisJCWlmICghcCkKKwkJCWJyZWFrOworCQlpZiAoc3RhdChkZXYtPmJpZF9uYW1lLCAmc3QpIDwgMCkgeworCQkJREJHKERFQlVHX0NBQ0hFLAorCQkJICAgIHByaW50ZigiZnJlZWluZyAlc1xuIiwgZGV2LT5iaWRfbmFtZSkpOworCQkJYmxraWRfZnJlZV9kZXYoZGV2KTsKKwkJCWNhY2hlLT5iaWNfZmxhZ3MgfD0gQkxLSURfQklDX0ZMX0NIQU5HRUQ7CisJCX0gZWxzZSB7CisJCQlEQkcoREVCVUdfQ0FDSEUsCisJCQkgICAgcHJpbnRmKCJEZXZpY2UgJXMgZXhpc3RzXG4iLCBkZXYtPmJpZF9uYW1lKSk7CisJCX0KKwl9Cit9CisKKyNpZmRlZiBURVNUX1BST0dSQU0KK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKwlibGtpZF9jYWNoZSBjYWNoZSA9IE5VTEw7CisJaW50IHJldDsKKworCWJsa2lkX2luaXRfZGVidWcoREVCVUdfQUxMKTsKKworCWlmICgoYXJnYyA+IDIpKSB7CisJCWZwcmludGYoc3RkZXJyLCAiVXNhZ2U6ICVzIFtmaWxlbmFtZV0gXG4iLCBhcmd2WzBdKTsKKwkJZXhpdCgxKTsKKwl9CisKKwlpZiAoKHJldCA9IGJsa2lkX2dldF9jYWNoZSgmY2FjaGUsIGFyZ3ZbMV0pKSA8IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICJlcnJvciAlZCBwYXJzaW5nIGNhY2hlIGZpbGUgJXNcbiIsIHJldCwKKwkJCWFyZ3ZbMV0gPyBhcmd2WzFdIDogQkxLSURfQ0FDSEVfRklMRSk7CisJCWV4aXQoMSk7CisJfQorCWlmICgocmV0ID0gYmxraWRfZ2V0X2NhY2hlKCZjYWNoZSwgIi9kZXYvbnVsbCIpKSAhPSAwKSB7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IGVycm9yIGNyZWF0aW5nIGNhY2hlICglZClcbiIsCisJCQlhcmd2WzBdLCByZXQpOworCQlleGl0KDEpOworCX0KKwlpZiAoKHJldCA9IGJsa2lkX3Byb2JlX2FsbChjYWNoZSkgPCAwKSkKKwkJZnByaW50ZihzdGRlcnIsICJlcnJvciBwcm9iaW5nIGRldmljZXNcbiIpOworCisJYmxraWRfcHV0X2NhY2hlKGNhY2hlKTsKKworCXJldHVybiByZXQ7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvY29uZmlnLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL2NvbmZpZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjYzdiNmYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL2NvbmZpZy5jCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICogY29uZmlnLmMgLSBibGtpZC5jb25mIHJvdXRpbmVzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19NS0RFVl9ICisjaW5jbHVkZSA8c3lzL21rZGV2Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0VSUk5PX0gKKyNpbmNsdWRlIDxlcnJuby5oPgorI2VuZGlmCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisKKyNpbmNsdWRlICJibGtkZXYuaCIKKyNpbmNsdWRlICJibGtpZFAuaCIKKworCitzdGF0aWMgaW50IHBhcnNlX2V2YWx1YXRlKHN0cnVjdCBibGtpZF9jb25maWcgKmNvbmYsIGNoYXIgKnMpCit7CisJd2hpbGUocyAmJiAqcykgeworCQljaGFyICpzZXA7CisKKwkJaWYgKGNvbmYtPm5ldmFscyA+PSBfX0JMS0lEX0VWQUxfTEFTVCkKKwkJCWdvdG8gZXJyOworCQlzZXAgPSBzdHJjaHIocywgJywnKTsKKwkJaWYgKHNlcCkKKwkJCSpzZXAgPSAnXDAnOworCQlpZiAoc3RyY21wKHMsICJ1ZGV2IikgPT0gMCkKKwkJCWNvbmYtPmV2YWxbY29uZi0+bmV2YWxzXSA9IEJMS0lEX0VWQUxfVURFVjsKKwkJZWxzZSBpZiAoc3RyY21wKHMsICJzY2FuIikgPT0gMCkKKwkJCWNvbmYtPmV2YWxbY29uZi0+bmV2YWxzXSA9IEJMS0lEX0VWQUxfU0NBTjsKKwkJZWxzZQorCQkJZ290byBlcnI7CisJCWNvbmYtPm5ldmFscysrOworCQlpZiAoc2VwKQorCQkJcyA9IHNlcCArIDE7CisJCWVsc2UKKwkJCWJyZWFrOworCX0KKwlyZXR1cm4gMDsKK2VycjoKKwlEQkcoREVCVUdfQ09ORklHLCBwcmludGYoCisJCSJjb25maWcgZmlsZTogdW5rbm93biBldmFsdWF0aW9uIG1ldGhvZCAnJXMnLlxuIiwgcykpOworCXJldHVybiAtMTsKK30KKworc3RhdGljIGludCBwYXJzZV9uZXh0KEZJTEUgKmZkLCBzdHJ1Y3QgYmxraWRfY29uZmlnICpjb25mKQoreworCWNoYXIgYnVmW0JVRlNJWl07CisJY2hhciAqczsKKworCS8qIHJlYWQgdGhlIG5leHQgbm9uLWJsYW5rIG5vbi1jb21tZW50IGxpbmUgKi8KKwlkbyB7CisJCWlmIChmZ2V0cyAoYnVmLCBzaXplb2YoYnVmKSwgZmQpID09IE5VTEwpCisJCQlyZXR1cm4gZmVvZihmZCkgPyAwIDogLTE7CisJCXMgPSBzdHJjaHIgKGJ1ZiwgJ1xuJyk7CisJCWlmICghcykgeworCQkJLyogTWlzc2luZyBmaW5hbCBuZXdsaW5lPyAgT3RoZXJ3aXNlIGV4dHJlbWVseSAqLworCQkJLyogbG9uZyBsaW5lIC0gYXNzdW1lIGZpbGUgd2FzIGNvcnJ1cHRlZCAqLworCQkJaWYgKGZlb2YoZmQpKQorCQkJCXMgPSBzdHJjaHIgKGJ1ZiwgJ1wwJyk7CisJCQllbHNlIHsKKwkJCQlEQkcoREVCVUdfQ09ORklHLCBmcHJpbnRmKHN0ZGVyciwKKwkJCQkJImxpYmJsa2lkOiBjb25maWcgZmlsZTogbWlzc2luZyBuZXdsaW5lIGF0IGxpbmUgJyVzJy5cbiIsCisJCQkJCWJ1ZikpOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJfQorCQkqcyA9ICdcMCc7CisJCWlmICgtLXMgPj0gYnVmICYmICpzID09ICdccicpCisJCQkqcyA9ICdcMCc7CisKKwkJcyA9IGJ1ZjsKKwkJd2hpbGUgKCpzID09ICcgJyB8fCAqcyA9PSAnXHQnKQkJLyogc2tpcCBzcGFjZSAqLworCQkJcysrOworCisJfSB3aGlsZSAoKnMgPT0gJ1wwJyB8fCAqcyA9PSAnIycpOworCisJaWYgKCFzdHJuY21wKHMsICJTRU5EX1VFVkVOVD0iLCAxMikpIHsKKwkJcyArPSAxMzsKKwkJaWYgKCpzICYmICFzdHJjYXNlY21wKHMsICJ5ZXMiKSkKKwkJCWNvbmYtPnVldmVudCA9IFRSVUU7CisJCWVsc2UgaWYgKCpzKQorCQkJY29uZi0+dWV2ZW50ID0gRkFMU0U7CisJfSBlbHNlIGlmICghc3RybmNtcChzLCAiQ0FDSEVfRklMRT0iLCAxMSkpIHsKKwkJcyArPSAxMTsKKwkJaWYgKCpzKQorCQkJY29uZi0+Y2FjaGVmaWxlID0gYmxraWRfc3RyZHVwKHMpOworCX0gZWxzZSBpZiAoIXN0cm5jbXAocywgIkVWQUxVQVRFPSIsIDkpKSB7CisJCXMgKz0gOTsKKwkJaWYgKCpzICYmIHBhcnNlX2V2YWx1YXRlKGNvbmYsIHMpID09IC0xKQorCQkJcmV0dXJuIC0xOworCX0gZWxzZSB7CisJCURCRyhERUJVR19DT05GSUcsIHByaW50ZigKKwkJCSJjb25maWcgZmlsZTogdW5rbm93biBvcHRpb24gJyVzJy5cbiIsIHMpKTsKKwkJcmV0dXJuIC0xOworCX0KKwlyZXR1cm4gMDsKK30KKworLyogcmV0dXJuIHJlYWwgY29uZmlnIGRhdGEgb3IgYnVpbHQtaW4gZGVmYXVsdCAqLworc3RydWN0IGJsa2lkX2NvbmZpZyAqYmxraWRfcmVhZF9jb25maWcoY29uc3QgY2hhciAqZmlsZW5hbWUpCit7CisJc3RydWN0IGJsa2lkX2NvbmZpZyAqY29uZjsKKwlGSUxFICpmOworCisJaWYgKCFmaWxlbmFtZSkKKwkJZmlsZW5hbWUgPSBibGtpZF9zYWZlX2dldGVudigiQkxLSURfQ09ORiIpOworCWlmICghZmlsZW5hbWUpCisJCWZpbGVuYW1lID0gQkxLSURfQ09ORklHX0ZJTEU7CisKKwljb25mID0gKHN0cnVjdCBibGtpZF9jb25maWcgKikgY2FsbG9jKDEsIHNpemVvZigqY29uZikpOworCWlmICghY29uZikKKwkJcmV0dXJuIE5VTEw7CisJY29uZi0+dWV2ZW50ID0gLTE7CisKKwlEQkcoREVCVUdfQ09ORklHLCBmcHJpbnRmKHN0ZGVyciwKKwkJInJlYWRpbmcgY29uZmlnIGZpbGU6ICVzLlxuIiwgZmlsZW5hbWUpKTsKKworCWYgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKwlpZiAoIWYpIHsKKwkJREJHKERFQlVHX0NPTkZJRywgZnByaW50ZihzdGRlcnIsCisJCQkiJXM6IGRvZXMgbm90IGV4aXN0LCB1c2luZyBidWlsdC1pbiBkZWZhdWx0XG4iLCBmaWxlbmFtZSkpOworCQlnb3RvIGRmbHQ7CisJfQorCXdoaWxlICghZmVvZihmKSkgeworCQlpZiAocGFyc2VfbmV4dChmLCBjb25mKSkgeworCQkJREJHKERFQlVHX0NPTkZJRywgZnByaW50ZihzdGRlcnIsCisJCQkJIiVzOiBwYXJzZSBlcnJvclxuIiwgZmlsZW5hbWUpKTsKKwkJCWdvdG8gZXJyOworCQl9CisJfQorZGZsdDoKKwlpZiAoIWNvbmYtPm5ldmFscykgeworCQljb25mLT5ldmFsWzBdID0gQkxLSURfRVZBTF9VREVWOworCQljb25mLT5ldmFsWzFdID0gQkxLSURfRVZBTF9TQ0FOOworCQljb25mLT5uZXZhbHMgPSAyOworCX0KKwlpZiAoIWNvbmYtPmNhY2hlZmlsZSkKKwkJY29uZi0+Y2FjaGVmaWxlID0gYmxraWRfc3RyZHVwKEJMS0lEX0NBQ0hFX0ZJTEUpOworCWlmIChjb25mLT51ZXZlbnQgPT0gLTEpCisJCWNvbmYtPnVldmVudCA9IFRSVUU7CisJaWYgKGYpCisJCWZjbG9zZShmKTsKKwlyZXR1cm4gY29uZjsKK2VycjoKKwlmcmVlKGNvbmYpOworCWZjbG9zZShmKTsKKwlyZXR1cm4gTlVMTDsKK30KKwordm9pZCBibGtpZF9mcmVlX2NvbmZpZyhzdHJ1Y3QgYmxraWRfY29uZmlnICpjb25mKQoreworCWlmICghY29uZikKKwkJcmV0dXJuOworCWZyZWUoY29uZi0+Y2FjaGVmaWxlKTsKKwlmcmVlKGNvbmYpOworfQorCisjaWZkZWYgVEVTVF9QUk9HUkFNCisvKgorICogdXNhZ2U6IHRzdF9jb25maWcgWzxmaWxlbmFtZT5dCisgKi8KK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJaW50IGk7CisJc3RydWN0IGJsa2lkX2NvbmZpZyAqY29uZjsKKwljaGFyICpmaWxlbmFtZSA9IE5VTEw7CisKKwlibGtpZF9pbml0X2RlYnVnKERFQlVHX0FMTCk7CisKKwlpZiAoYXJnYyA9PSAyKQorCQlmaWxlbmFtZSA9IGFyZ3ZbMV07CisKKwljb25mID0gYmxraWRfcmVhZF9jb25maWcoZmlsZW5hbWUpOworCWlmICghY29uZikKKwkJcmV0dXJuIEVYSVRfRkFJTFVSRTsKKworCXByaW50ZigiRVZBTFVBVEU6ICAgICIpOworCWZvciAoaSA9IDA7IGkgPCBjb25mLT5uZXZhbHM7IGkrKykKKwkJcHJpbnRmKCIlcyAiLCBjb25mLT5ldmFsW2ldID09IEJMS0lEX0VWQUxfVURFViA/ICJ1ZGV2IiA6ICJzY2FuIik7CisJcHJpbnRmKCJcbiIpOworCisJcHJpbnRmKCJTRU5EIFVFVkVOVDogJXNcbiIsIGNvbmYtPnVldmVudCA/ICJUUlVFIiA6ICJGQUxTRSIpOworCXByaW50ZigiQ0FDSEVfRklMRTogICVzXG4iLCBjb25mLT5jYWNoZWZpbGUpOworCisJYmxraWRfZnJlZV9jb25maWcoY29uZik7CisJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9kZXYuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZGV2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAyZjE3MAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZGV2LmMKQEAgLTAsMCArMSwyNzAgQEAKKy8qCisgKiBkZXYuYyAtIGFsbG9jYXRpb24vaW5pdGlhbGl6YXRpb24vZnJlZSByb3V0aW5lcyBmb3IgZGV2CisgKgorICogQ29weXJpZ2h0IChDKSAyMDAxIEFuZHJlYXMgRGlsZ2VyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgVGhlb2RvcmUgVHMnbworICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAiYmxraWRQLmgiCisKKy8qCisgKiBOT1RFOiByZWZlcmVuY2UgbWFudWFsIGlzIG5vdCBzdHJ1Y3R1cmVkIGFzIGNvZGUuIFRoZSBmb2xsb3dpbmcgc2VjdGlvbiBpcyBhIGdlbmVyaWMKKyAqIHNlY3Rpb24gZm9yIGFsbCBoaWdoLWxldmVsIGNhY2hlIHNlYXJjaCtpdGVyYXRlIHJvdXRpbmVzLgorICovCisKKy8qKgorICogU0VDVElPTjpzZWFyY2gKKyAqIEB0aXRsZTogU2VhcmNoIGFuZCBpdGVyYXRlCisgKiBAc2hvcnRfZGVzY3JpcHRpb246IHNlYXJjaCBkZXZpY2VzIGFuZCBpdGVyYXRlIG92ZXIgZGV2aWNlcyBpbiB0aGUgY2FjaGUuCisgKgorICogTm90ZSB0aGF0IGhpZ2gtbGV2ZWwgcHJvYmluZyBBUEkgcHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgc3VwZXJibG9ja3MKKyAqIChmaWxlc3lzdGVtcy9yYWlkcykgb25seS4gIEZvciBwYXJ0aXRpb25zIGFuZCB0b3BvbG9neSBpcyBuZWNlc3NhcnkgdG8gdXNlCisgKiB0aGUgbG93LWxldmVsIEFQSS4KKyAqLworCitibGtpZF9kZXYgYmxraWRfbmV3X2Rldih2b2lkKQoreworCWJsa2lkX2RldiBkZXY7CisKKwlpZiAoIShkZXYgPSAoYmxraWRfZGV2KSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBibGtpZF9zdHJ1Y3RfZGV2KSkpKQorCQlyZXR1cm4gTlVMTDsKKworCUlOSVRfTElTVF9IRUFEKCZkZXYtPmJpZF9kZXZzKTsKKwlJTklUX0xJU1RfSEVBRCgmZGV2LT5iaWRfdGFncyk7CisKKwlyZXR1cm4gZGV2OworfQorCit2b2lkIGJsa2lkX2ZyZWVfZGV2KGJsa2lkX2RldiBkZXYpCit7CisJaWYgKCFkZXYpCisJCXJldHVybjsKKworCURCRyhERUJVR19ERVYsCisJICAgIHByaW50ZigiICBmcmVlaW5nIGRldiAlcyAoJXMpXG4iLCBkZXYtPmJpZF9uYW1lLCBkZXYtPmJpZF90eXBlID8KKwkJICAgZGV2LT5iaWRfdHlwZSA6ICIobnVsbCkiKSk7CisJREJHKERFQlVHX0RFViwgYmxraWRfZGVidWdfZHVtcF9kZXYoZGV2KSk7CisKKwlsaXN0X2RlbCgmZGV2LT5iaWRfZGV2cyk7CisJd2hpbGUgKCFsaXN0X2VtcHR5KCZkZXYtPmJpZF90YWdzKSkgeworCQlibGtpZF90YWcgdGFnID0gbGlzdF9lbnRyeShkZXYtPmJpZF90YWdzLm5leHQsCisJCQkJCSAgIHN0cnVjdCBibGtpZF9zdHJ1Y3RfdGFnLAorCQkJCQkgICBiaXRfdGFncyk7CisJCWJsa2lkX2ZyZWVfdGFnKHRhZyk7CisJfQorCWZyZWUoZGV2LT5iaWRfbmFtZSk7CisJZnJlZShkZXYpOworfQorCisvKgorICogR2l2ZW4gYSBibGtpZCBkZXZpY2UsIHJldHVybiBpdHMgbmFtZQorICovCitleHRlcm4gY29uc3QgY2hhciAqYmxraWRfZGV2X2Rldm5hbWUoYmxraWRfZGV2IGRldikKK3sKKwlyZXR1cm4gZGV2LT5iaWRfbmFtZTsKK30KKworI2lmZGVmIENPTkZJR19CTEtJRF9ERUJVRwordm9pZCBibGtpZF9kZWJ1Z19kdW1wX2RldihibGtpZF9kZXYgZGV2KQoreworCXN0cnVjdCBsaXN0X2hlYWQgKnA7CisKKwlpZiAoIWRldikgeworCQlwcmludGYoIiAgZGV2OiBOVUxMXG4iKTsKKwkJcmV0dXJuOworCX0KKworCXByaW50ZigiICBkZXY6IG5hbWUgPSAlc1xuIiwgZGV2LT5iaWRfbmFtZSk7CisJcHJpbnRmKCIgIGRldjogREVWTk89XCIweCUwbGx4XCJcbiIsIChsb25nIGxvbmcpZGV2LT5iaWRfZGV2bm8pOworCXByaW50ZigiICBkZXY6IFRJTUU9XCIlbGRcIlxuIiwgKGxvbmcpZGV2LT5iaWRfdGltZSk7CisJcHJpbnRmKCIgIGRldjogUFJJPVwiJWRcIlxuIiwgZGV2LT5iaWRfcHJpKTsKKwlwcmludGYoIiAgZGV2OiBmbGFncyA9IDB4JTA4WFxuIiwgZGV2LT5iaWRfZmxhZ3MpOworCisJbGlzdF9mb3JfZWFjaChwLCAmZGV2LT5iaWRfdGFncykgeworCQlibGtpZF90YWcgdGFnID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgYmxraWRfc3RydWN0X3RhZywgYml0X3RhZ3MpOworCQlpZiAodGFnKQorCQkJcHJpbnRmKCIgICAgdGFnOiAlcz1cIiVzXCJcbiIsIHRhZy0+Yml0X25hbWUsCisJCQkgICAgICAgdGFnLT5iaXRfdmFsKTsKKwkJZWxzZQorCQkJcHJpbnRmKCIgICAgdGFnOiBOVUxMXG4iKTsKKwl9CisJcHJpbnRmKCJcbiIpOworfQorI2VuZGlmCisKKy8qCisgKiBkZXYgaXRlcmF0aW9uIHJvdXRpbmVzIGZvciB0aGUgcHVibGljIGxpYmJsa2lkIGludGVyZmFjZS4KKyAqCisgKiBUaGVzZSByb3V0aW5lcyBkbyBub3QgZXhwb3NlIHRoZSBsaXN0LmggaW1wbGVtZW50YXRpb24sIHdoaWNoIGFyZSBhCisgKiBjb250YW1pbmF0aW9uIG9mIHRoZSBuYW1lc3BhY2UsIGFuZCB3aGljaCBmb3JjZSB1cyB0byByZXZlYWwgZmFyLCBmYXIKKyAqIHRvbyBtdWNoIG9mIG91ciBpbnRlcm5hbCBpbXBsZW1lbmF0aW9uLiAgSSdtIG5vdCBjb252aW5jZWQgSSB3YW50CisgKiB0byBrZWVwIGxpc3QuaCBpbiB0aGUgbG9uZyB0ZXJtLCBhbnl3YXkuICBJdCdzIGZpbmUgZm9yIGtlcm5lbAorICogcHJvZ3JhbW1pbmcsIGJ1dCBwZXJmb3JtYW5jZSBpcyBub3QgdGhlICMxIHByaW9yaXR5IGZvciB0aGlzCisgKiBsaWJyYXJ5LCBhbmQgSSByZWFsbHkgZG9uJ3QgbGlrZSB0aGUgdHJhZGVvZmYgb2YgdHlwZS1zYWZldHkgZm9yCisgKiBwZXJmb3JtYW5jZSBmb3IgdGhpcyBhcHBsaWNhdGlvbi4gIFt0eXRzbzoyMDAzMDEyNS4yMDA3RVNUXQorICovCisKKy8qCisgKiBUaGlzIHNlcmllcyBvZiBmdW5jdGlvbnMgaXRlcmF0ZSBvdmVyIGFsbCBkZXZpY2VzIGluIGEgYmxraWQgY2FjaGUKKyAqLworI2RlZmluZSBERVZfSVRFUkFURV9NQUdJQwkweDAxYTUyODRjCisKK3N0cnVjdCBibGtpZF9zdHJ1Y3RfZGV2X2l0ZXJhdGUgeworCWludAkJCW1hZ2ljOworCWJsa2lkX2NhY2hlCQljYWNoZTsKKwljaGFyCQkJKnNlYXJjaF90eXBlOworCWNoYXIJCQkqc2VhcmNoX3ZhbHVlOworCXN0cnVjdCBsaXN0X2hlYWQJKnA7Cit9OworCitleHRlcm4gYmxraWRfZGV2X2l0ZXJhdGUgYmxraWRfZGV2X2l0ZXJhdGVfYmVnaW4oYmxraWRfY2FjaGUgY2FjaGUpCit7CisJYmxraWRfZGV2X2l0ZXJhdGUJaXRlcjsKKworCWl0ZXIgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBibGtpZF9zdHJ1Y3RfZGV2X2l0ZXJhdGUpKTsKKwlpZiAoaXRlcikgeworCQlpdGVyLT5tYWdpYyA9IERFVl9JVEVSQVRFX01BR0lDOworCQlpdGVyLT5jYWNoZSA9IGNhY2hlOworCQlpdGVyLT5wCT0gY2FjaGUtPmJpY19kZXZzLm5leHQ7CisJCWl0ZXItPnNlYXJjaF90eXBlID0gMDsKKwkJaXRlci0+c2VhcmNoX3ZhbHVlID0gMDsKKwl9CisJcmV0dXJuIChpdGVyKTsKK30KKworZXh0ZXJuIGludCBibGtpZF9kZXZfc2V0X3NlYXJjaChibGtpZF9kZXZfaXRlcmF0ZSBpdGVyLAorCQkJCSBjaGFyICpzZWFyY2hfdHlwZSwgY2hhciAqc2VhcmNoX3ZhbHVlKQoreworCWNoYXIgKm5ld190eXBlLCAqbmV3X3ZhbHVlOworCisJaWYgKCFpdGVyIHx8IGl0ZXItPm1hZ2ljICE9IERFVl9JVEVSQVRFX01BR0lDIHx8ICFzZWFyY2hfdHlwZSB8fAorCSAgICAhc2VhcmNoX3ZhbHVlKQorCQlyZXR1cm4gLTE7CisJbmV3X3R5cGUgPSBtYWxsb2Moc3RybGVuKHNlYXJjaF90eXBlKSsxKTsKKwluZXdfdmFsdWUgPSBtYWxsb2Moc3RybGVuKHNlYXJjaF92YWx1ZSkrMSk7CisJaWYgKCFuZXdfdHlwZSB8fCAhbmV3X3ZhbHVlKSB7CisJCWZyZWUobmV3X3R5cGUpOworCQlmcmVlKG5ld192YWx1ZSk7CisJCXJldHVybiAtMTsKKwl9CisJc3RyY3B5KG5ld190eXBlLCBzZWFyY2hfdHlwZSk7CisJc3RyY3B5KG5ld192YWx1ZSwgc2VhcmNoX3ZhbHVlKTsKKwlmcmVlKGl0ZXItPnNlYXJjaF90eXBlKTsKKwlmcmVlKGl0ZXItPnNlYXJjaF92YWx1ZSk7CisJaXRlci0+c2VhcmNoX3R5cGUgPSBuZXdfdHlwZTsKKwlpdGVyLT5zZWFyY2hfdmFsdWUgPSBuZXdfdmFsdWU7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSBvbiBlcnJvcgorICovCitleHRlcm4gaW50IGJsa2lkX2Rldl9uZXh0KGJsa2lkX2Rldl9pdGVyYXRlIGl0ZXIsCisJCQkgIGJsa2lkX2RldiAqcmV0X2RldikKK3sKKwlibGtpZF9kZXYJCWRldjsKKworCSpyZXRfZGV2ID0gMDsKKwlpZiAoIWl0ZXIgfHwgaXRlci0+bWFnaWMgIT0gREVWX0lURVJBVEVfTUFHSUMpCisJCXJldHVybiAtMTsKKwl3aGlsZSAoaXRlci0+cCAhPSAmaXRlci0+Y2FjaGUtPmJpY19kZXZzKSB7CisJCWRldiA9IGxpc3RfZW50cnkoaXRlci0+cCwgc3RydWN0IGJsa2lkX3N0cnVjdF9kZXYsIGJpZF9kZXZzKTsKKwkJaXRlci0+cCA9IGl0ZXItPnAtPm5leHQ7CisJCWlmIChpdGVyLT5zZWFyY2hfdHlwZSAmJgorCQkgICAgIWJsa2lkX2Rldl9oYXNfdGFnKGRldiwgaXRlci0+c2VhcmNoX3R5cGUsCisJCQkJICAgICAgIGl0ZXItPnNlYXJjaF92YWx1ZSkpCisJCQljb250aW51ZTsKKwkJKnJldF9kZXYgPSBkZXY7CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gLTE7Cit9CisKK2V4dGVybiB2b2lkIGJsa2lkX2Rldl9pdGVyYXRlX2VuZChibGtpZF9kZXZfaXRlcmF0ZSBpdGVyKQoreworCWlmICghaXRlciB8fCBpdGVyLT5tYWdpYyAhPSBERVZfSVRFUkFURV9NQUdJQykKKwkJcmV0dXJuOworCWl0ZXItPm1hZ2ljID0gMDsKKwlmcmVlKGl0ZXIpOworfQorCisjaWZkZWYgVEVTVF9QUk9HUkFNCisjaWZkZWYgSEFWRV9HRVRPUFRfSAorI2luY2x1ZGUgPGdldG9wdC5oPgorI2Vsc2UKK2V4dGVybiBjaGFyICpvcHRhcmc7CitleHRlcm4gaW50IG9wdGluZDsKKyNlbmRpZgorCit2b2lkIHVzYWdlKGNoYXIgKnByb2cpCit7CisJZnByaW50ZihzdGRlcnIsICJVc2FnZTogJXMgWy1mIGJsa2lkX2ZpbGVdIFstbSBkZWJ1Z19tYXNrXVxuIiwgcHJvZyk7CisJZnByaW50ZihzdGRlcnIsICJcdExpc3QgYWxsIGRldmljZXMgYW5kIGV4aXRcbiIpOworCWV4aXQoMSk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlibGtpZF9kZXZfaXRlcmF0ZQlpdGVyOworCWJsa2lkX2NhY2hlIAkJY2FjaGUgPSBOVUxMOworCWJsa2lkX2RldgkJZGV2OworCWludAkJCWMsIHJldDsKKwljaGFyCQkJKnRtcDsKKwljaGFyCQkJKmZpbGUgPSBOVUxMOworCWNoYXIJCQkqc2VhcmNoX3R5cGUgPSBOVUxMOworCWNoYXIJCQkqc2VhcmNoX3ZhbHVlID0gTlVMTDsKKworCXdoaWxlICgoYyA9IGdldG9wdCAoYXJnYywgYXJndiwgIm06ZjoiKSkgIT0gRU9GKQorCQlzd2l0Y2ggKGMpIHsKKwkJY2FzZSAnZic6CisJCQlmaWxlID0gb3B0YXJnOworCQkJYnJlYWs7CisJCWNhc2UgJ20nOgorCQl7CisJCQlpbnQgbWFzayA9IHN0cnRvdWwgKG9wdGFyZywgJnRtcCwgMCk7CisJCQlpZiAoKnRtcCkgeworCQkJCWZwcmludGYoc3RkZXJyLCAiSW52YWxpZCBkZWJ1ZyBtYXNrOiAlc1xuIiwKKwkJCQkJb3B0YXJnKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQkJYmxraWRfaW5pdF9kZWJ1ZyhtYXNrKTsKKwkJCWJyZWFrOworCQl9CisJCWNhc2UgJz8nOgorCQkJdXNhZ2UoYXJndlswXSk7CisJCX0KKwlpZiAoYXJnYyA+PSBvcHRpbmQrMikgeworCQlzZWFyY2hfdHlwZSA9IGFyZ3Zbb3B0aW5kXTsKKwkJc2VhcmNoX3ZhbHVlID0gYXJndltvcHRpbmQrMV07CisJCW9wdGluZCArPSAyOworCX0KKwlpZiAoYXJnYyAhPSBvcHRpbmQpCisJCXVzYWdlKGFyZ3ZbMF0pOworCisJaWYgKChyZXQgPSBibGtpZF9nZXRfY2FjaGUoJmNhY2hlLCBmaWxlKSkgIT0gMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBlcnJvciBjcmVhdGluZyBjYWNoZSAoJWQpXG4iLAorCQkJYXJndlswXSwgcmV0KTsKKwkJZXhpdCgxKTsKKwl9CisKKwlpdGVyID0gYmxraWRfZGV2X2l0ZXJhdGVfYmVnaW4oY2FjaGUpOworCWlmIChzZWFyY2hfdHlwZSkKKwkJYmxraWRfZGV2X3NldF9zZWFyY2goaXRlciwgc2VhcmNoX3R5cGUsIHNlYXJjaF92YWx1ZSk7CisJd2hpbGUgKGJsa2lkX2Rldl9uZXh0KGl0ZXIsICZkZXYpID09IDApIHsKKwkJcHJpbnRmKCJEZXZpY2U6ICVzXG4iLCBibGtpZF9kZXZfZGV2bmFtZShkZXYpKTsKKwl9CisJYmxraWRfZGV2X2l0ZXJhdGVfZW5kKGl0ZXIpOworCisKKwlibGtpZF9wdXRfY2FjaGUoY2FjaGUpOworCXJldHVybiAoMCk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZGV2bmFtZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9kZXZuYW1lLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdlNGZiOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZGV2bmFtZS5jCkBAIC0wLDAgKzEsNjAwIEBACisvKgorICogZGV2bmFtZS5jIC0gZ2V0IGEgZGV2IGJ5IGl0cyBkZXZpY2UgaW5vZGUgbmFtZQorICoKKyAqIENvcHlyaWdodCAoQykgQW5kcmllcyBCcm91d2VyCisgKiBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMgVGhlb2RvcmUgVHMnbworICogQ29weXJpZ2h0IChDKSAyMDAxIEFuZHJlYXMgRGlsZ2VyCisgKgorICogJUJlZ2luLUhlYWRlciUKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjZGVmaW5lIF9HTlVfU09VUkNFIDEKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpZiBIQVZFX1NZU19UWVBFU19ICisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpZiBIQVZFX1NZU19TVEFUX0gKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCisjaWYgSEFWRV9FUlJOT19ICisjaW5jbHVkZSA8ZXJybm8uaD4KKyNlbmRpZgorI2lmIEhBVkVfU1lTX01LREVWX0gKKyNpbmNsdWRlIDxzeXMvbWtkZXYuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHRpbWUuaD4KKworI2luY2x1ZGUgImJsa2lkUC5oIgorI2luY2x1ZGUgImNhbm9uaWNhbGl6ZS5oIgkJLyogJCh0b3Bfc3JjZGlyKS9pbmNsdWRlICovCisKKy8qCisgKiBGaW5kIGEgZGV2IHN0cnVjdCBpbiB0aGUgY2FjaGUgYnkgZGV2aWNlIG5hbWUsIGlmIGF2YWlsYWJsZS4KKyAqCisgKiBJZiB0aGVyZSBpcyBubyBlbnRyeSB3aXRoIHRoZSBzcGVjaWZpZWQgZGV2aWNlIG5hbWUsIGFuZCB0aGUgY3JlYXRlCisgKiBmbGFnIGlzIHNldCwgdGhlbiBjcmVhdGUgYW4gZW1wdHkgZGV2aWNlIGVudHJ5LgorICovCitibGtpZF9kZXYgYmxraWRfZ2V0X2RldihibGtpZF9jYWNoZSBjYWNoZSwgY29uc3QgY2hhciAqZGV2bmFtZSwgaW50IGZsYWdzKQoreworCWJsa2lkX2RldiBkZXYgPSBOVUxMLCB0bXA7CisJc3RydWN0IGxpc3RfaGVhZCAqcCwgKnBuZXh0OworCisJaWYgKCFjYWNoZSB8fCAhZGV2bmFtZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlsaXN0X2Zvcl9lYWNoKHAsICZjYWNoZS0+YmljX2RldnMpIHsKKwkJdG1wID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgYmxraWRfc3RydWN0X2RldiwgYmlkX2RldnMpOworCQlpZiAoc3RyY21wKHRtcC0+YmlkX25hbWUsIGRldm5hbWUpKQorCQkJY29udGludWU7CisKKwkJREJHKERFQlVHX0RFVk5BTUUsCisJCSAgICBwcmludGYoImZvdW5kIGRldm5hbWUgJXMgaW4gY2FjaGVcbiIsIHRtcC0+YmlkX25hbWUpKTsKKwkJZGV2ID0gdG1wOworCQlicmVhazsKKwl9CisKKwlpZiAoIWRldiAmJiAoZmxhZ3MgJiBCTEtJRF9ERVZfQ1JFQVRFKSkgeworCQlpZiAoYWNjZXNzKGRldm5hbWUsIEZfT0spIDwgMCkKKwkJCXJldHVybiBOVUxMOworCQlkZXYgPSBibGtpZF9uZXdfZGV2KCk7CisJCWlmICghZGV2KQorCQkJcmV0dXJuIE5VTEw7CisJCWRldi0+YmlkX3RpbWUgPSBJTlRfTUlOOworCQlkZXYtPmJpZF9uYW1lID0gYmxraWRfc3RyZHVwKGRldm5hbWUpOworCQlkZXYtPmJpZF9jYWNoZSA9IGNhY2hlOworCQlsaXN0X2FkZF90YWlsKCZkZXYtPmJpZF9kZXZzLCAmY2FjaGUtPmJpY19kZXZzKTsKKwkJY2FjaGUtPmJpY19mbGFncyB8PSBCTEtJRF9CSUNfRkxfQ0hBTkdFRDsKKwl9CisKKwlpZiAoZmxhZ3MgJiBCTEtJRF9ERVZfVkVSSUZZKSB7CisJCWRldiA9IGJsa2lkX3ZlcmlmeShjYWNoZSwgZGV2KTsKKwkJaWYgKCFkZXYgfHwgIShkZXYtPmJpZF9mbGFncyAmIEJMS0lEX0JJRF9GTF9WRVJJRklFRCkpCisJCQlyZXR1cm4gZGV2OworCQkvKgorCQkgKiBJZiB0aGUgZGV2aWNlIGlzIHZlcmlmaWVkLCB0aGVuIHNlYXJjaCB0aGUgYmxraWQKKwkJICogY2FjaGUgZm9yIGFueSBlbnRyaWVzIHRoYXQgbWF0Y2ggb24gdGhlIHR5cGUsIHV1aWQsCisJCSAqIGFuZCBsYWJlbCwgYW5kIHZlcmlmeSB0aGVtOyBpZiBhIGNhY2hlIGVudHJ5IGNhbgorCQkgKiBub3QgYmUgdmVyaWZpZWQsIHRoZW4gaXQncyBzdGFsZSBhbmQgc28gd2UgcmVtb3ZlCisJCSAqIGl0LgorCQkgKi8KKwkJbGlzdF9mb3JfZWFjaF9zYWZlKHAsIHBuZXh0LCAmY2FjaGUtPmJpY19kZXZzKSB7CisJCQlibGtpZF9kZXYgZGV2MjsKKwkJCWlmICghcCkKKwkJCQlicmVhazsKKwkJCWRldjIgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCBibGtpZF9zdHJ1Y3RfZGV2LCBiaWRfZGV2cyk7CisJCQlpZiAoZGV2Mi0+YmlkX2ZsYWdzICYgQkxLSURfQklEX0ZMX1ZFUklGSUVEKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKCFkZXYtPmJpZF90eXBlIHx8ICFkZXYyLT5iaWRfdHlwZSB8fAorCQkJICAgIHN0cmNtcChkZXYtPmJpZF90eXBlLCBkZXYyLT5iaWRfdHlwZSkpCisJCQkJY29udGludWU7CisJCQlpZiAoZGV2LT5iaWRfbGFiZWwgJiYgZGV2Mi0+YmlkX2xhYmVsICYmCisJCQkgICAgc3RyY21wKGRldi0+YmlkX2xhYmVsLCBkZXYyLT5iaWRfbGFiZWwpKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKGRldi0+YmlkX3V1aWQgJiYgZGV2Mi0+YmlkX3V1aWQgJiYKKwkJCSAgICBzdHJjbXAoZGV2LT5iaWRfdXVpZCwgZGV2Mi0+YmlkX3V1aWQpKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKChkZXYtPmJpZF9sYWJlbCAmJiAhZGV2Mi0+YmlkX2xhYmVsKSB8fAorCQkJICAgICghZGV2LT5iaWRfbGFiZWwgJiYgZGV2Mi0+YmlkX2xhYmVsKSB8fAorCQkJICAgIChkZXYtPmJpZF91dWlkICYmICFkZXYyLT5iaWRfdXVpZCkgfHwKKwkJCSAgICAoIWRldi0+YmlkX3V1aWQgJiYgZGV2Mi0+YmlkX3V1aWQpKQorCQkJCWNvbnRpbnVlOworCQkJZGV2MiA9IGJsa2lkX3ZlcmlmeShjYWNoZSwgZGV2Mik7CisJCQlpZiAoZGV2MiAmJiAhKGRldjItPmJpZF9mbGFncyAmIEJMS0lEX0JJRF9GTF9WRVJJRklFRCkpCisJCQkJYmxraWRfZnJlZV9kZXYoZGV2Mik7CisJCX0KKwl9CisJcmV0dXJuIGRldjsKK30KKworLyogRGlyZWN0b3JpZXMgd2hlcmUgd2Ugd2lsbCB0cnkgdG8gc2VhcmNoIGZvciBkZXZpY2UgbmFtZXMgKi8KK3N0YXRpYyBjb25zdCBjaGFyICpkaXJsaXN0W10gPSB7ICIvZGV2IiwgIi9kZXZmcyIsICIvZGV2aWNlcyIsIE5VTEwgfTsKKworc3RhdGljIGludCBpc19kbV9sZWFmKGNvbnN0IGNoYXIgKmRldm5hbWUpCit7CisJc3RydWN0IGRpcmVudAkqZGUsICpkX2RlOworCURJUgkJKmRpciwgKmRfZGlyOworCWNoYXIJCXBhdGhbMjU2XTsKKwlpbnQJCXJldCA9IDE7CisKKwlpZiAoKGRpciA9IG9wZW5kaXIoIi9zeXMvYmxvY2siKSkgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisJd2hpbGUgKChkZSA9IHJlYWRkaXIoZGlyKSkgIT0gTlVMTCkgeworCQlpZiAoIXN0cmNtcChkZS0+ZF9uYW1lLCAiLiIpIHx8ICFzdHJjbXAoZGUtPmRfbmFtZSwgIi4uIikgfHwKKwkJICAgICFzdHJjbXAoZGUtPmRfbmFtZSwgZGV2bmFtZSkgfHwKKwkJICAgIHN0cm5jbXAoZGUtPmRfbmFtZSwgImRtLSIsIDMpIHx8CisJCSAgICBzdHJsZW4oZGUtPmRfbmFtZSkgPiBzaXplb2YocGF0aCktMzIpCisJCQljb250aW51ZTsKKwkJc3ByaW50ZihwYXRoLCAiL3N5cy9ibG9jay8lcy9zbGF2ZXMiLCBkZS0+ZF9uYW1lKTsKKwkJaWYgKChkX2RpciA9IG9wZW5kaXIocGF0aCkpID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJd2hpbGUgKChkX2RlID0gcmVhZGRpcihkX2RpcikpICE9IE5VTEwpIHsKKwkJCWlmICghc3RyY21wKGRfZGUtPmRfbmFtZSwgZGV2bmFtZSkpIHsKKwkJCQlyZXQgPSAwOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWNsb3NlZGlyKGRfZGlyKTsKKwkJaWYgKCFyZXQpCisJCQlicmVhazsKKwl9CisJY2xvc2VkaXIoZGlyKTsKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogUHJvYmUgYSBzaW5nbGUgYmxvY2sgZGV2aWNlIHRvIGFkZCB0byB0aGUgZGV2aWNlIGNhY2hlLgorICovCitzdGF0aWMgdm9pZCBwcm9iZV9vbmUoYmxraWRfY2FjaGUgY2FjaGUsIGNvbnN0IGNoYXIgKnB0bmFtZSwKKwkJICAgICAgZGV2X3QgZGV2bm8sIGludCBwcmksIGludCBvbmx5X2lmX25ldykKK3sKKwlibGtpZF9kZXYgZGV2ID0gTlVMTDsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwLCAqcG5leHQ7CisJY29uc3QgY2hhciAqKmRpcjsKKwljaGFyICpkZXZuYW1lID0gTlVMTDsKKworCS8qIFNlZSBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhpcyBkZXZpY2UgbnVtYmVyIGluIHRoZSBjYWNoZS4gKi8KKwlsaXN0X2Zvcl9lYWNoX3NhZmUocCwgcG5leHQsICZjYWNoZS0+YmljX2RldnMpIHsKKwkJYmxraWRfZGV2IHRtcCA9IGxpc3RfZW50cnkocCwgc3RydWN0IGJsa2lkX3N0cnVjdF9kZXYsCisJCQkJCSAgIGJpZF9kZXZzKTsKKwkJaWYgKHRtcC0+YmlkX2Rldm5vID09IGRldm5vKSB7CisJCQlpZiAob25seV9pZl9uZXcgJiYgIWFjY2Vzcyh0bXAtPmJpZF9uYW1lLCBGX09LKSkKKwkJCQlyZXR1cm47CisJCQlkZXYgPSBibGtpZF92ZXJpZnkoY2FjaGUsIHRtcCk7CisJCQlpZiAoZGV2ICYmIChkZXYtPmJpZF9mbGFncyAmIEJMS0lEX0JJRF9GTF9WRVJJRklFRCkpCisJCQkJYnJlYWs7CisJCQlkZXYgPSAwOworCQl9CisJfQorCWlmIChkZXYgJiYgZGV2LT5iaWRfZGV2bm8gPT0gZGV2bm8pCisJCWdvdG8gc2V0X3ByaTsKKworCS8qIFRyeSB0byB0cmFuc2xhdGUgcHJpdmF0ZSBkZXZpY2UtbWFwcGVyIGRtLTxOPiBuYW1lcworCSAqIHRvIHN0YW5kYXJkIC9kZXYvbWFwcGVyLzxuYW1lPi4KKwkgKi8KKwlpZiAoIXN0cm5jbXAocHRuYW1lLCAiZG0tIiwgMykgJiYgaXNkaWdpdChwdG5hbWVbM10pKSB7CisJCWRldm5hbWUgPSBjYW5vbmljYWxpemVfZG1fbmFtZShwdG5hbWUpOworCQlpZiAoIWRldm5hbWUpCisJCQlibGtpZF9fc2Nhbl9kaXIoIi9kZXYvbWFwcGVyIiwgZGV2bm8sIDAsICZkZXZuYW1lKTsKKwkJaWYgKGRldm5hbWUpCisJCQlnb3RvIGdldF9kZXY7CisJfQorCisJLyoKKwkgKiBUYWtlIGEgcXVpY2sgbG9vayBhdCAvZGV2L3B0bmFtZSBmb3IgdGhlIGRldmljZSBudW1iZXIuICBXZSBjaGVjaworCSAqIGFsbCBvZiB0aGUgbGlrZWx5IGRldmljZSBkaXJlY3Rvcmllcy4gIElmIHdlIGRvbid0IGZpbmQgaXQsIG9yIGlmCisJICogdGhlIHN0YXQgaW5mb3JtYXRpb24gZG9lc24ndCBjaGVjayBvdXQsIHVzZSBibGtpZF9kZXZub190b19kZXZuYW1lKCkKKwkgKiB0byBmaW5kIGl0IHZpYSBhbiBleGhhdXN0aXZlIHNlYXJjaCBmb3IgdGhlIGRldmljZSBtYWpvci9taW5vci4KKwkgKi8KKwlmb3IgKGRpciA9IGRpcmxpc3Q7ICpkaXI7IGRpcisrKSB7CisJCXN0cnVjdCBzdGF0IHN0OworCQljaGFyIGRldmljZVsyNTZdOworCisJCXNwcmludGYoZGV2aWNlLCAiJXMvJXMiLCAqZGlyLCBwdG5hbWUpOworCQlpZiAoKGRldiA9IGJsa2lkX2dldF9kZXYoY2FjaGUsIGRldmljZSwgQkxLSURfREVWX0ZJTkQpKSAmJgorCQkgICAgZGV2LT5iaWRfZGV2bm8gPT0gZGV2bm8pCisJCQlnb3RvIHNldF9wcmk7CisKKwkJaWYgKHN0YXQoZGV2aWNlLCAmc3QpID09IDAgJiYKKwkJICAgIChTX0lTQkxLKHN0LnN0X21vZGUpIHx8CisJCSAgICAgKFNfSVNDSFIoc3Quc3RfbW9kZSkgJiYgIXN0cm5jbXAocHRuYW1lLCAidWJpIiwgMykpKSAmJgorCQkgICAgc3Quc3RfcmRldiA9PSBkZXZubykgeworCQkJZGV2bmFtZSA9IGJsa2lkX3N0cmR1cChkZXZpY2UpOworCQkJZ290byBnZXRfZGV2OworCQl9CisJfQorCS8qIERvIGEgc2hvcnQtY3V0IHNjYW4gb2YgL2Rldi9tYXBwZXIgZmlyc3QgKi8KKwlpZiAoIWRldm5hbWUpCisJCWJsa2lkX19zY2FuX2RpcigiL2Rldi9tYXBwZXIiLCBkZXZubywgMCwgJmRldm5hbWUpOworCWlmICghZGV2bmFtZSkgeworCQlkZXZuYW1lID0gYmxraWRfZGV2bm9fdG9fZGV2bmFtZShkZXZubyk7CisJCWlmICghZGV2bmFtZSkKKwkJCXJldHVybjsKKwl9CisKK2dldF9kZXY6CisJZGV2ID0gYmxraWRfZ2V0X2RldihjYWNoZSwgZGV2bmFtZSwgQkxLSURfREVWX05PUk1BTCk7CisJZnJlZShkZXZuYW1lKTsKKworc2V0X3ByaToKKwlpZiAoZGV2KSB7CisJCWlmIChwcmkpCisJCQlkZXYtPmJpZF9wcmkgPSBwcmk7CisJCWVsc2UgaWYgKCFzdHJuY21wKGRldi0+YmlkX25hbWUsICIvZGV2L21hcHBlci8iLCAxMSkpIHsKKwkJCWRldi0+YmlkX3ByaSA9IEJMS0lEX1BSSV9ETTsKKwkJCWlmIChpc19kbV9sZWFmKHB0bmFtZSkpCisJCQkJZGV2LT5iaWRfcHJpICs9IDU7CisJCX0gZWxzZSBpZiAoIXN0cm5jbXAocHRuYW1lLCAibWQiLCAyKSkKKwkJCWRldi0+YmlkX3ByaSA9IEJMS0lEX1BSSV9NRDsKKwl9CisJcmV0dXJuOworfQorCisjZGVmaW5lIFBST0NfUEFSVElUSU9OUyAiL3Byb2MvcGFydGl0aW9ucyIKKyNkZWZpbmUgVkdfRElSCQkiL3Byb2MvbHZtL1ZHcyIKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIFVVSUQgY2FjaGUgd2l0aCBkZXZpY2VzIGZyb20gdGhlIExWTQorICogcHJvYyBoaWVyYXJjaHkuICBXZSBjdXJyZW50bHkgZGVwZW5kIG9uIHRoZSBuYW1lcyBvZiB0aGUgTFZNCisgKiBoaWVyYXJjaHkgZ2l2aW5nIHVzIHRoZSBkZXZpY2Ugc3RydWN0dXJlIGluIC9kZXYuICAoWFhYIGlzIHRoaXMgYQorICogc2FmZSB0aGluZyB0byBkbz8pCisgKi8KKyNpZmRlZiBWR19ESVIKK3N0YXRpYyBkZXZfdCBsdm1fZ2V0X2Rldm5vKGNvbnN0IGNoYXIgKmx2bV9kZXZpY2UpCit7CisJRklMRSAqbHZmOworCWNoYXIgYnVmWzEwMjRdOworCWludCBtYSwgbWk7CisJZGV2X3QgcmV0ID0gMDsKKworCURCRyhERUJVR19ERVZOQU1FLCBwcmludGYoIm9wZW5pbmcgJXNcbiIsIGx2bV9kZXZpY2UpKTsKKwlpZiAoKGx2ZiA9IGZvcGVuKGx2bV9kZXZpY2UsICJyIikpID09IE5VTEwpIHsKKwkJREJHKERFQlVHX0RFVk5BTUUsIHByaW50ZigiJXM6ICglZCkgJXNcbiIsIGx2bV9kZXZpY2UsIGVycm5vLAorCQkJCQkgIHN0cmVycm9yKGVycm5vKSkpOworCQlyZXR1cm4gMDsKKwl9CisKKwl3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgbHZmKSkgeworCQlpZiAoc3NjYW5mKGJ1ZiwgImRldmljZTogJWQ6JWQiLCAmbWEsICZtaSkgPT0gMikgeworCQkJcmV0ID0gbWFrZWRldihtYSwgbWkpOworCQkJYnJlYWs7CisJCX0KKwl9CisJZmNsb3NlKGx2Zik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBsdm1fcHJvYmVfYWxsKGJsa2lkX2NhY2hlIGNhY2hlLCBpbnQgb25seV9pZl9uZXcpCit7CisJRElSCQkqdmdfbGlzdDsKKwlzdHJ1Y3QgZGlyZW50CSp2Z19pdGVyOworCWludAkJdmdfbGVuID0gc3RybGVuKFZHX0RJUik7CisJZGV2X3QJCWRldjsKKworCWlmICgodmdfbGlzdCA9IG9wZW5kaXIoVkdfRElSKSkgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJREJHKERFQlVHX0RFVk5BTUUsIHByaW50ZigicHJvYmluZyBMVk0gZGV2aWNlcyB1bmRlciAlc1xuIiwgVkdfRElSKSk7CisKKwl3aGlsZSAoKHZnX2l0ZXIgPSByZWFkZGlyKHZnX2xpc3QpKSAhPSBOVUxMKSB7CisJCURJUgkJKmx2X2xpc3Q7CisJCWNoYXIJCSp2ZGlybmFtZTsKKwkJY2hhcgkJKnZnX25hbWU7CisJCXN0cnVjdCBkaXJlbnQJKmx2X2l0ZXI7CisKKwkJdmdfbmFtZSA9IHZnX2l0ZXItPmRfbmFtZTsKKwkJaWYgKCFzdHJjbXAodmdfbmFtZSwgIi4iKSB8fCAhc3RyY21wKHZnX25hbWUsICIuLiIpKQorCQkJY29udGludWU7CisJCXZkaXJuYW1lID0gbWFsbG9jKHZnX2xlbiArIHN0cmxlbih2Z19uYW1lKSArIDgpOworCQlpZiAoIXZkaXJuYW1lKQorCQkJZ290byBleGl0OworCQlzcHJpbnRmKHZkaXJuYW1lLCAiJXMvJXMvTFZzIiwgVkdfRElSLCB2Z19uYW1lKTsKKworCQlsdl9saXN0ID0gb3BlbmRpcih2ZGlybmFtZSk7CisJCWZyZWUodmRpcm5hbWUpOworCQlpZiAobHZfbGlzdCA9PSBOVUxMKQorCQkJY29udGludWU7CisKKwkJd2hpbGUgKChsdl9pdGVyID0gcmVhZGRpcihsdl9saXN0KSkgIT0gTlVMTCkgeworCQkJY2hhcgkJKmx2X25hbWUsICpsdm1fZGV2aWNlOworCisJCQlsdl9uYW1lID0gbHZfaXRlci0+ZF9uYW1lOworCQkJaWYgKCFzdHJjbXAobHZfbmFtZSwgIi4iKSB8fCAhc3RyY21wKGx2X25hbWUsICIuLiIpKQorCQkJCWNvbnRpbnVlOworCisJCQlsdm1fZGV2aWNlID0gbWFsbG9jKHZnX2xlbiArIHN0cmxlbih2Z19uYW1lKSArCisJCQkJCSAgICBzdHJsZW4obHZfbmFtZSkgKyA4KTsKKwkJCWlmICghbHZtX2RldmljZSkgeworCQkJCWNsb3NlZGlyKGx2X2xpc3QpOworCQkJCWdvdG8gZXhpdDsKKwkJCX0KKwkJCXNwcmludGYobHZtX2RldmljZSwgIiVzLyVzL0xWcy8lcyIsIFZHX0RJUiwgdmdfbmFtZSwKKwkJCQlsdl9uYW1lKTsKKwkJCWRldiA9IGx2bV9nZXRfZGV2bm8obHZtX2RldmljZSk7CisJCQlzcHJpbnRmKGx2bV9kZXZpY2UsICIlcy8lcyIsIHZnX25hbWUsIGx2X25hbWUpOworCQkJREJHKERFQlVHX0RFVk5BTUUsIHByaW50ZigiTFZNIGRldiAlczogZGV2bm8gMHglMDRYXG4iLAorCQkJCQkJICBsdm1fZGV2aWNlLAorCQkJCQkJICAodW5zaWduZWQgaW50KSBkZXYpKTsKKwkJCXByb2JlX29uZShjYWNoZSwgbHZtX2RldmljZSwgZGV2LCBCTEtJRF9QUklfTFZNLAorCQkJCSAgb25seV9pZl9uZXcpOworCQkJZnJlZShsdm1fZGV2aWNlKTsKKwkJfQorCQljbG9zZWRpcihsdl9saXN0KTsKKwl9CitleGl0OgorCWNsb3NlZGlyKHZnX2xpc3QpOworfQorI2VuZGlmCisKKyNkZWZpbmUgUFJPQ19FVk1TX1ZPTFVNRVMgIi9wcm9jL2V2bXMvdm9sdW1lcyIKKworc3RhdGljIGludAorZXZtc19wcm9iZV9hbGwoYmxraWRfY2FjaGUgY2FjaGUsIGludCBvbmx5X2lmX25ldykKK3sKKwljaGFyIGxpbmVbMTAwXTsKKwlpbnQgbWEsIG1pLCBzeiwgbnVtID0gMDsKKwlGSUxFICpwcm9jcHQ7CisJY2hhciBkZXZpY2VbMTEwXTsKKworCXByb2NwdCA9IGZvcGVuKFBST0NfRVZNU19WT0xVTUVTLCAiciIpOworCWlmICghcHJvY3B0KQorCQlyZXR1cm4gMDsKKwl3aGlsZSAoZmdldHMobGluZSwgc2l6ZW9mKGxpbmUpLCBwcm9jcHQpKSB7CisJCWlmIChzc2NhbmYgKGxpbmUsICIgJWQgJWQgJWQgJSpzICUqcyAlW15cbiBdIiwKKwkJCSAgICAmbWEsICZtaSwgJnN6LCBkZXZpY2UpICE9IDQpCisJCQljb250aW51ZTsKKworCQlEQkcoREVCVUdfREVWTkFNRSwgcHJpbnRmKCJDaGVja2luZyBwYXJ0aXRpb24gJXMgKCVkLCAlZClcbiIsCisJCQkJCSAgZGV2aWNlLCBtYSwgbWkpKTsKKworCQlwcm9iZV9vbmUoY2FjaGUsIGRldmljZSwgbWFrZWRldihtYSwgbWkpLCBCTEtJRF9QUklfRVZNUywKKwkJCSAgb25seV9pZl9uZXcpOworCQludW0rKzsKKwl9CisJZmNsb3NlKHByb2NwdCk7CisJcmV0dXJuIG51bTsKK30KKworc3RhdGljIHZvaWQKK3ViaV9wcm9iZV9hbGwoYmxraWRfY2FjaGUgY2FjaGUsIGludCBvbmx5X2lmX25ldykKK3sKKwljb25zdCBjaGFyICoqZGlybmFtZTsKKworCWZvciAoZGlybmFtZSA9IGRpcmxpc3Q7ICpkaXJuYW1lOyBkaXJuYW1lKyspIHsKKwkJREJHKERFQlVHX0RFVk5BTUUsIHByaW50ZigicHJvYmluZyBVQkkgdm9sdW1lcyB1bmRlciAlc1xuIiwKKwkJCQkJICAqZGlybmFtZSkpOworCisJCURJUgkJKmRpcjsKKwkJc3RydWN0IGRpcmVudAkqaXRlcjsKKworCQlkaXIgPSBvcGVuZGlyKCpkaXJuYW1lKTsKKwkJaWYgKGRpciA9PSBOVUxMKQorCQkJY29udGludWUgOworCisJCXdoaWxlICgoaXRlciA9IHJlYWRkaXIoZGlyKSkgIT0gTlVMTCkgeworCQkJY2hhcgkJKm5hbWU7CisJCQlzdHJ1Y3Qgc3RhdAlzdDsKKwkJCWRldl90CQlkZXY7CisKKwkJCW5hbWUgPSBpdGVyLT5kX25hbWU7CisjaWZkZWYgX0RJUkVOVF9IQVZFX0RfVFlQRQorCQkJaWYgKGl0ZXItPmRfdHlwZSAhPSBEVF9VTktOT1dOICYmCisJCQkgICAgaXRlci0+ZF90eXBlICE9IERUX0NIUiAmJiBpdGVyLT5kX3R5cGUgIT0gRFRfTE5LKQorCQkJCWNvbnRpbnVlOworI2VuZGlmCisJCQlpZiAoIXN0cmNtcChuYW1lLCAiLiIpIHx8ICFzdHJjbXAobmFtZSwgIi4uIikgfHwKKwkJCSAgICAhc3Ryc3RyKG5hbWUsICJ1YmkiKSkKKwkJCQljb250aW51ZTsKKwkJCWlmICghc3RyY21wKG5hbWUsICJ1YmlfY3RybCIpKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKGJsa2lkX2ZzdGF0YXQoZGlyLCAqZGlybmFtZSwgbmFtZSwgJnN0LCAwKSkKKwkJCQljb250aW51ZTsKKworCQkJZGV2ID0gc3Quc3RfcmRldjsKKworCQkJaWYgKCFTX0lTQ0hSKHN0LnN0X21vZGUpIHx8ICFtaW5vcihkZXYpKQorCQkJCWNvbnRpbnVlOworCQkJREJHKERFQlVHX0RFVk5BTUUsIHByaW50ZigiVUJJIHZvbCAlcy8lczogZGV2bm8gMHglMDRYXG4iLAorCQkJCSAgKmRpcm5hbWUsIG5hbWUsIChpbnQpIGRldikpOworCQkJcHJvYmVfb25lKGNhY2hlLCBuYW1lLCBkZXYsIEJMS0lEX1BSSV9VQkksIG9ubHlfaWZfbmV3KTsKKwkJfQorCQljbG9zZWRpcihkaXIpOworCX0KK30KKworLyoKKyAqIFJlYWQgdGhlIGRldmljZSBkYXRhIGZvciBhbGwgYXZhaWxhYmxlIGJsb2NrIGRldmljZXMgaW4gdGhlIHN5c3RlbS4KKyAqLworc3RhdGljIGludCBwcm9iZV9hbGwoYmxraWRfY2FjaGUgY2FjaGUsIGludCBvbmx5X2lmX25ldykKK3sKKwlGSUxFICpwcm9jOworCWNoYXIgbGluZVsxMDI0XTsKKwljaGFyIHB0bmFtZTBbMTI4XSwgcHRuYW1lMVsxMjhdLCAqcHRuYW1lID0gMDsKKwljaGFyICpwdG5hbWVzWzJdOworCWRldl90IGRldnNbMl07CisJaW50IG1hLCBtaTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgc3o7CisJaW50IGxlbnNbMl0gPSB7IDAsIDAgfTsKKwlpbnQgd2hpY2ggPSAwLCBsYXN0ID0gMDsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwLCAqcG5leHQ7CisKKwlwdG5hbWVzWzBdID0gcHRuYW1lMDsKKwlwdG5hbWVzWzFdID0gcHRuYW1lMTsKKworCWlmICghY2FjaGUpCisJCXJldHVybiAtQkxLSURfRVJSX1BBUkFNOworCisJaWYgKGNhY2hlLT5iaWNfZmxhZ3MgJiBCTEtJRF9CSUNfRkxfUFJPQkVEICYmCisJICAgIHRpbWUoMCkgLSBjYWNoZS0+YmljX3RpbWUgPCBCTEtJRF9QUk9CRV9JTlRFUlZBTCkKKwkJcmV0dXJuIDA7CisKKwlibGtpZF9yZWFkX2NhY2hlKGNhY2hlKTsKKwlldm1zX3Byb2JlX2FsbChjYWNoZSwgb25seV9pZl9uZXcpOworI2lmZGVmIFZHX0RJUgorCWx2bV9wcm9iZV9hbGwoY2FjaGUsIG9ubHlfaWZfbmV3KTsKKyNlbmRpZgorCXViaV9wcm9iZV9hbGwoY2FjaGUsIG9ubHlfaWZfbmV3KTsKKworCXByb2MgPSBmb3BlbihQUk9DX1BBUlRJVElPTlMsICJyIik7CisJaWYgKCFwcm9jKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QUk9DOworCisJd2hpbGUgKGZnZXRzKGxpbmUsIHNpemVvZihsaW5lKSwgcHJvYykpIHsKKwkJbGFzdCA9IHdoaWNoOworCQl3aGljaCBePSAxOworCQlwdG5hbWUgPSBwdG5hbWVzW3doaWNoXTsKKworCQlpZiAoc3NjYW5mKGxpbmUsICIgJWQgJWQgJWxsdSAlMTI4W15cbiBdIiwKKwkJCSAgICZtYSwgJm1pLCAmc3osIHB0bmFtZSkgIT0gNCkKKwkJCWNvbnRpbnVlOworCQlkZXZzW3doaWNoXSA9IG1ha2VkZXYobWEsIG1pKTsKKworCQlEQkcoREVCVUdfREVWTkFNRSwgcHJpbnRmKCJyZWFkIHBhcnRpdGlvbiBuYW1lICVzXG4iLCBwdG5hbWUpKTsKKworCQkvKiBTa2lwIHdob2xlIGRpc2sgZGV2cyB1bmxlc3MgdGhleSBoYXZlIG5vIHBhcnRpdGlvbnMuCisJCSAqIElmIGJhc2UgbmFtZSBvZiBkZXZpY2UgaGFzIGNoYW5nZWQsIGFsc28KKwkJICogY2hlY2sgcHJldmlvdXMgZGV2IHRvIHNlZSBpZiBpdCBkaWRuJ3QgaGF2ZSBhIHBhcnRuLgorCQkgKiBoZXVyaXN0aWM6IHBhcnRpdGlvbiBuYW1lIGVuZHMgaW4gYSBkaWdpdCwgJiBwYXJ0aXRpb24KKwkJICogbmFtZXMgY29udGFpbiB3aG9sZSBkZXZpY2UgbmFtZSBhcyBzdWJzdHJpbmcuCisJCSAqCisJCSAqIFNraXAgZXh0ZW5kZWQgcGFydGl0aW9ucy4KKwkJICogaGV1cmlzdGljOiBzaXplIGlzIDEKKwkJICoKKwkJICogRklYTUU6IHNraXAgL2Rldi97aWRhLGNjaXNzLHJkfSB3aG9sZS1kaXNrIGRldnMKKwkJICovCisKKwkJbGVuc1t3aGljaF0gPSBzdHJsZW4ocHRuYW1lKTsKKworCQkvKiBlbmRzIGluIGEgZGlnaXQsIGNsZWFybHkgYSBwYXJ0aXRpb24sIHNvIGNoZWNrICovCisJCWlmIChpc2RpZ2l0KHB0bmFtZVtsZW5zW3doaWNoXSAtIDFdKSkgeworCQkJREJHKERFQlVHX0RFVk5BTUUsCisJCQkgICAgcHJpbnRmKCJwYXJ0aXRpb24gZGV2ICVzLCBkZXZubyAweCUwNFhcbiIsCisJCQkJICAgcHRuYW1lLCAodW5zaWduZWQgaW50KSBkZXZzW3doaWNoXSkpOworCisJCQlpZiAoc3ogPiAxKQorCQkJCXByb2JlX29uZShjYWNoZSwgcHRuYW1lLCBkZXZzW3doaWNoXSwgMCwKKwkJCQkJICBvbmx5X2lmX25ldyk7CisJCQlsZW5zW3doaWNoXSA9IDA7CS8qIG1hcmsgYXMgY2hlY2tlZCAqLworCQl9CisKKwkJLyoKKwkJICogSWYgbGFzdCB3YXMgYSB3aG9sZSBkaXNrIGFuZCB3ZSBqdXN0IGZvdW5kIGEgcGFydGl0aW9uCisJCSAqIG9uIGl0LCByZW1vdmUgdGhlIHdob2xlLWRpc2sgZGV2IGZyb20gdGhlIGNhY2hlIGlmCisJCSAqIGl0IGV4aXN0cy4KKwkJICovCisJCWlmIChsZW5zW2xhc3RdICYmICFzdHJuY21wKHB0bmFtZXNbbGFzdF0sIHB0bmFtZSwgbGVuc1tsYXN0XSkpIHsKKwkJCWxpc3RfZm9yX2VhY2hfc2FmZShwLCBwbmV4dCwgJmNhY2hlLT5iaWNfZGV2cykgeworCQkJCWJsa2lkX2RldiB0bXA7CisKKwkJCQkvKiBmaW5kIGJsa2lkIGRldiBmb3IgdGhlIHdob2xlLWRpc2sgZGV2bm8gKi8KKwkJCQl0bXAgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCBibGtpZF9zdHJ1Y3RfZGV2LAorCQkJCQkJIGJpZF9kZXZzKTsKKwkJCQlpZiAodG1wLT5iaWRfZGV2bm8gPT0gZGV2c1tsYXN0XSkgeworCQkJCQlEQkcoREVCVUdfREVWTkFNRSwKKwkJCQkJCXByaW50ZigiZnJlZWluZyAlc1xuIiwKKwkJCQkJCSAgICAgICB0bXAtPmJpZF9uYW1lKSk7CisJCQkJCWJsa2lkX2ZyZWVfZGV2KHRtcCk7CisJCQkJCWNhY2hlLT5iaWNfZmxhZ3MgfD0gQkxLSURfQklDX0ZMX0NIQU5HRUQ7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCWxlbnNbbGFzdF0gPSAwOworCQl9CisJCS8qCisJCSAqIElmIGxhc3Qgd2FzIG5vdCBjaGVja2VkIGJlY2F1c2UgaXQgbG9va2VkIGxpa2UgYSB3aG9sZS1kaXNrCisJCSAqIGRldiwgYW5kIHRoZSBkZXZpY2UncyBiYXNlIG5hbWUgaGFzIGNoYW5nZWQsCisJCSAqIGNoZWNrIGxhc3QgYXMgd2VsbC4KKwkJICovCisJCWlmIChsZW5zW2xhc3RdICYmIHN0cm5jbXAocHRuYW1lc1tsYXN0XSwgcHRuYW1lLCBsZW5zW2xhc3RdKSkgeworCQkJREJHKERFQlVHX0RFVk5BTUUsCisJCQkgICAgcHJpbnRmKCJ3aG9sZSBkZXYgJXMsIGRldm5vIDB4JTA0WFxuIiwKKwkJCQkgICBwdG5hbWVzW2xhc3RdLCAodW5zaWduZWQgaW50KSBkZXZzW2xhc3RdKSk7CisJCQlwcm9iZV9vbmUoY2FjaGUsIHB0bmFtZXNbbGFzdF0sIGRldnNbbGFzdF0sIDAsCisJCQkJICBvbmx5X2lmX25ldyk7CisJCQlsZW5zW2xhc3RdID0gMDsKKwkJfQorCX0KKworCS8qIEhhbmRsZSB0aGUgbGFzdCBkZXZpY2UgaWYgaXQgd2Fzbid0IHBhcnRpdGlvbmVkICovCisJaWYgKGxlbnNbd2hpY2hdKQorCQlwcm9iZV9vbmUoY2FjaGUsIHB0bmFtZSwgZGV2c1t3aGljaF0sIDAsIG9ubHlfaWZfbmV3KTsKKworCWZjbG9zZShwcm9jKTsKKwlibGtpZF9mbHVzaF9jYWNoZShjYWNoZSk7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfYWxsOgorICogQGNhY2hlOiBjYWNoZSBoYW5kbGVyCisgKgorICogUHJvYmVzIGFsbCBibG9jayBkZXZpY2VzLgorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2Vzcywgb3IgbnVtYmVyIGxlc3MgdGhhbiB6ZXJvIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludCBibGtpZF9wcm9iZV9hbGwoYmxraWRfY2FjaGUgY2FjaGUpCit7CisJaW50IHJldDsKKworCURCRyhERUJVR19QUk9CRSwgcHJpbnRmKCJCZWdpbiBibGtpZF9wcm9iZV9hbGwoKVxuIikpOworCXJldCA9IHByb2JlX2FsbChjYWNoZSwgMCk7CisJY2FjaGUtPmJpY190aW1lID0gdGltZSgwKTsKKwljYWNoZS0+YmljX2ZsYWdzIHw9IEJMS0lEX0JJQ19GTF9QUk9CRUQ7CisJREJHKERFQlVHX1BST0JFLCBwcmludGYoIkVuZCBibGtpZF9wcm9iZV9hbGwoKVxuIikpOworCXJldHVybiByZXQ7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfYWxsX25ldzoKKyAqIEBjYWNoZTogY2FjaGUgaGFuZGxlcgorICoKKyAqIFByb2JlcyBhbGwgbmV3IGJsb2NrIGRldmljZXMuCisgKgorICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBvciBudW1iZXIgbGVzcyB0aGFuIHplcm8gaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX3Byb2JlX2FsbF9uZXcoYmxraWRfY2FjaGUgY2FjaGUpCit7CisJaW50IHJldDsKKworCURCRyhERUJVR19QUk9CRSwgcHJpbnRmKCJCZWdpbiBibGtpZF9wcm9iZV9hbGxfbmV3KClcbiIpKTsKKwlyZXQgPSBwcm9iZV9hbGwoY2FjaGUsIDEpOworCURCRyhERUJVR19QUk9CRSwgcHJpbnRmKCJFbmQgYmxraWRfcHJvYmVfYWxsX25ldygpXG4iKSk7CisJcmV0dXJuIHJldDsKK30KKworCisjaWZkZWYgVEVTVF9QUk9HUkFNCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJYmxraWRfY2FjaGUgY2FjaGUgPSBOVUxMOworCWludCByZXQ7CisKKwlibGtpZF9pbml0X2RlYnVnKERFQlVHX0FMTCk7CisJaWYgKGFyZ2MgIT0gMSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiAlc1xuIgorCQkJIlByb2JlIGFsbCBkZXZpY2VzIGFuZCBleGl0XG4iLCBhcmd2WzBdKTsKKwkJZXhpdCgxKTsKKwl9CisJaWYgKChyZXQgPSBibGtpZF9nZXRfY2FjaGUoJmNhY2hlLCAiL2Rldi9udWxsIikpICE9IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICIlczogZXJyb3IgY3JlYXRpbmcgY2FjaGUgKCVkKVxuIiwKKwkJCWFyZ3ZbMF0sIHJldCk7CisJCWV4aXQoMSk7CisJfQorCWlmIChibGtpZF9wcm9iZV9hbGwoY2FjaGUpIDwgMCkKKwkJcHJpbnRmKCIlczogZXJyb3IgcHJvYmluZyBkZXZpY2VzXG4iLCBhcmd2WzBdKTsKKworCWJsa2lkX3B1dF9jYWNoZShjYWNoZSk7CisJcmV0dXJuICgwKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9kZXZuby5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9kZXZuby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhZTU3NTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL2Rldm5vLmMKQEAgLTAsMCArMSw0NzcgQEAKKy8qCisgKiBkZXZuby5jIC0gZmluZCBhIHBhcnRpY3VsYXIgZGV2aWNlIGJ5IGl0cyBkZXZpY2UgbnVtYmVyIChtYWpvci9taW5vcikKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEsIDIwMDMgVGhlb2RvcmUgVHMnbworICogQ29weXJpZ2h0IChDKSAyMDAxIEFuZHJlYXMgRGlsZ2VyCisgKgorICogJUJlZ2luLUhlYWRlciUKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpZiBIQVZFX1NZU19UWVBFU19ICisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKyNpZiBIQVZFX1NZU19TVEFUX0gKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCisjaW5jbHVkZSA8ZGlyZW50Lmg+CisjaWYgSEFWRV9FUlJOT19ICisjaW5jbHVkZSA8ZXJybm8uaD4KKyNlbmRpZgorI2lmIEhBVkVfU1lTX01LREVWX0gKKyNpbmNsdWRlIDxzeXMvbWtkZXYuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGZjbnRsLmg+CisKKyNpbmNsdWRlICJibGtpZFAuaCIKKyNpbmNsdWRlICJwYXRobmFtZXMuaCIKKworY2hhciAqYmxraWRfc3RybmR1cChjb25zdCBjaGFyICpzLCBpbnQgbGVuZ3RoKQoreworCWNoYXIgKnJldDsKKworCWlmICghcykKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoIWxlbmd0aCkKKwkJbGVuZ3RoID0gc3RybGVuKHMpOworCisJcmV0ID0gbWFsbG9jKGxlbmd0aCArIDEpOworCWlmIChyZXQpIHsKKwkJc3RybmNweShyZXQsIHMsIGxlbmd0aCk7CisJCXJldFtsZW5ndGhdID0gJ1wwJzsKKwl9CisJcmV0dXJuIHJldDsKK30KKworY2hhciAqYmxraWRfc3RyZHVwKGNvbnN0IGNoYXIgKnMpCit7CisJcmV0dXJuIGJsa2lkX3N0cm5kdXAocywgMCk7Cit9CisKK2NoYXIgKmJsa2lkX3N0cmNvbmNhdChjb25zdCBjaGFyICphLCBjb25zdCBjaGFyICpiLCBjb25zdCBjaGFyICpjKQoreworCWNoYXIgKnJlcywgKnA7CisJc2l6ZV90IGxlbiwgYWwsIGJsLCBjbDsKKworCWFsID0gYSA/IHN0cmxlbihhKSA6IDA7CisJYmwgPSBiID8gc3RybGVuKGIpIDogMDsKKwljbCA9IGMgPyBzdHJsZW4oYykgOiAwOworCisJbGVuID0gYWwgKyBibCArIGNsOworCWlmICghbGVuKQorCQlyZXR1cm4gTlVMTDsKKwlwID0gcmVzID0gbWFsbG9jKGxlbiArIDEpOworCWlmICghcmVzKQorCQlyZXR1cm4gTlVMTDsKKwlpZiAoYWwpIHsKKwkJbWVtY3B5KHAsIGEsIGFsKTsKKwkJcCArPSBhbDsKKwl9CisJaWYgKGJsKSB7CisJCW1lbWNweShwLCBiLCBibCk7CisJCXAgKz0gYmw7CisJfQorCWlmIChjbCkgeworCQltZW1jcHkocCwgYywgY2wpOworCQlwICs9IGNsOworCX0KKwkqcCA9ICdcMCc7CisJcmV0dXJuIHJlczsKK30KKworaW50IGJsa2lkX2ZzdGF0YXQoRElSICpkaXIsIGNvbnN0IGNoYXIgKmRpcm5hbWUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJc3RydWN0IHN0YXQgKnN0LCBpbnQgbm9mb2xsb3cpCit7CisjaWZkZWYgSEFWRV9GU1RBVEFUCisJcmV0dXJuIGZzdGF0YXQoZGlyZmQoZGlyKSwgZmlsZW5hbWUsIHN0LAorCQkJbm9mb2xsb3cgPyBBVF9TWU1MSU5LX05PRk9MTE9XIDogMCk7CisjZWxzZQorCWNoYXIgZGV2aWNlW1BBVEhfTUFYXTsKKwlpbnQgbGVuOworCisJbGVuID0gc25wcmludGYoZGV2aWNlLCBzaXplb2YoZGV2aWNlKSwgIiVzLyVzIiwgZGlybmFtZSwgZmlsZW5hbWUpOworCWlmIChsZW4gPCAwIHx8IGxlbiArIDEgPiBzaXplb2YoZGV2aWNlKSkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIG5vZm9sbG93ID8gbHN0YXQoZGV2aWNlLCBzdCkgOiBzdGF0KGRldmljZSwgc3QpOworI2VuZGlmCit9CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGFkZHMgYW4gZW50cnkgdG8gdGhlIGRpcmVjdG9yeSBsaXN0CisgKi8KK3N0YXRpYyB2b2lkIGFkZF90b19kaXJsaXN0KGNvbnN0IGNoYXIgKmRpciwgY29uc3QgY2hhciAqc3ViZGlyLAorCQkJCXN0cnVjdCBkaXJfbGlzdCAqKmxpc3QpCit7CisJc3RydWN0IGRpcl9saXN0ICpkcDsKKworCWRwID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgZGlyX2xpc3QpKTsKKwlpZiAoIWRwKQorCQlyZXR1cm47CisJZHAtPm5hbWUgPSBzdWJkaXIgPyBibGtpZF9zdHJjb25jYXQoZGlyLCAiLyIsIHN1YmRpcikgOgorCQkJICAgIGJsa2lkX3N0cmR1cChkaXIpOworCWlmICghZHAtPm5hbWUpIHsKKwkJZnJlZShkcCk7CisJCXJldHVybjsKKwl9CisJZHAtPm5leHQgPSAqbGlzdDsKKwkqbGlzdCA9IGRwOworfQorCisvKgorICogVGhpcyBmdW5jdGlvbiBmcmVlcyBhIGRpcmVjdG9yeSBsaXN0CisgKi8KK3N0YXRpYyB2b2lkIGZyZWVfZGlybGlzdChzdHJ1Y3QgZGlyX2xpc3QgKipsaXN0KQoreworCXN0cnVjdCBkaXJfbGlzdCAqZHAsICpuZXh0OworCisJZm9yIChkcCA9ICpsaXN0OyBkcDsgZHAgPSBuZXh0KSB7CisJCW5leHQgPSBkcC0+bmV4dDsKKwkJZnJlZShkcC0+bmFtZSk7CisJCWZyZWUoZHApOworCX0KKwkqbGlzdCA9IE5VTEw7Cit9CisKK3ZvaWQgYmxraWRfX3NjYW5fZGlyKGNoYXIgKmRpcm5hbWUsIGRldl90IGRldm5vLCBzdHJ1Y3QgZGlyX2xpc3QgKipsaXN0LAorCQkgICAgIGNoYXIgKipkZXZuYW1lKQoreworCURJUgkqZGlyOworCXN0cnVjdCBkaXJlbnQgKmRwOworCXN0cnVjdCBzdGF0IHN0OworCisJaWYgKChkaXIgPSBvcGVuZGlyKGRpcm5hbWUpKSA9PSBOVUxMKQorCQlyZXR1cm47CisKKwl3aGlsZSAoKGRwID0gcmVhZGRpcihkaXIpKSAhPSAwKSB7CisjaWZkZWYgX0RJUkVOVF9IQVZFX0RfVFlQRQorCQlpZiAoZHAtPmRfdHlwZSAhPSBEVF9VTktOT1dOICYmIGRwLT5kX3R5cGUgIT0gRFRfQkxLICYmCisJCSAgICBkcC0+ZF90eXBlICE9IERUX0xOSyAmJiBkcC0+ZF90eXBlICE9IERUX0RJUikKKwkJCWNvbnRpbnVlOworI2VuZGlmCisJCWlmIChkcC0+ZF9uYW1lWzBdID09ICcuJyAmJgorCQkgICAgKChkcC0+ZF9uYW1lWzFdID09IDApIHx8CisJCSAgICAgKChkcC0+ZF9uYW1lWzFdID09ICcuJykgJiYgKGRwLT5kX25hbWVbMl0gPT0gMCkpKSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChibGtpZF9mc3RhdGF0KGRpciwgZGlybmFtZSwgZHAtPmRfbmFtZSwgJnN0LCAwKSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChTX0lTQkxLKHN0LnN0X21vZGUpICYmIHN0LnN0X3JkZXYgPT0gZGV2bm8pIHsKKwkJCSpkZXZuYW1lID0gYmxraWRfc3RyY29uY2F0KGRpcm5hbWUsICIvIiwgZHAtPmRfbmFtZSk7CisJCQlEQkcoREVCVUdfREVWTk8sCisJCQkgICAgcHJpbnRmKCJmb3VuZCAweCVsbHggYXQgJXNcbiIsIChsb25nIGxvbmcpZGV2bm8sCisJCQkJICAgKmRldm5hbWUpKTsKKwkJCWJyZWFrOworCQl9CisKKwkJaWYgKCFsaXN0IHx8ICFTX0lTRElSKHN0LnN0X21vZGUpKQorCQkJY29udGludWU7CisKKwkJLyogYWRkIHN1YmRpcmVjdG9yeSAoYnV0IG5vdCBzeW1saW5rKSB0byB0aGUgbGlzdCAqLworI2lmZGVmIF9ESVJFTlRfSEFWRV9EX1RZUEUKKwkJaWYgKGRwLT5kX3R5cGUgPT0gRFRfTE5LKQorCQkJY29udGludWU7CisJCWlmIChkcC0+ZF90eXBlID09IERUX1VOS05PV04pCisjZW5kaWYKKwkJeworCQkJaWYgKGJsa2lkX2ZzdGF0YXQoZGlyLCBkaXJuYW1lLCBkcC0+ZF9uYW1lLCAmc3QsIDEpIHx8CisJCQkgICAgIVNfSVNESVIoc3Quc3RfbW9kZSkpCisJCQkJY29udGludWU7CS8qIHN5bWxpbmsgb3IgbHN0YXQoKSBmYWlsZWQgKi8KKwkJfQorCisJCWlmIChzdHJjbXAoIi51ZGV2IiwgZHAtPmRfbmFtZSkgPT0gMCkKKwkJCS8qIHVkZXYgcHJpdmF0ZSBkaXJlY29yeSBpcyBodWdlIGFuZCB1bmludGVyZXN0aW5nICovCisJCQljb250aW51ZTsKKworCQlhZGRfdG9fZGlybGlzdChkaXJuYW1lLCBkcC0+ZF9uYW1lLCBsaXN0KTsKKwl9CisJY2xvc2VkaXIoZGlyKTsKKwlyZXR1cm47Cit9CisKKy8qIERpcmVjdG9yaWVzIHdoZXJlIHdlIHdpbGwgdHJ5IHRvIHNlYXJjaCBmb3IgZGV2aWNlIG51bWJlcnMgKi8KK3N0YXRpYyBjb25zdCBjaGFyICpkZXZkaXJzW10gPSB7ICIvZGV2aWNlcyIsICIvZGV2ZnMiLCAiL2RldiIsIE5VTEwgfTsKKworLyoqCisgKiBTRUNUSU9OOiBtaXNjCisgKiBAdGl0bGU6IE1pc2NlbGxhbmVvdXMgdXRpbHMKKyAqIEBzaG9ydF9kZXNjcmlwdGlvbjogbWl4IG9mIHZhcmlvdXMgdXRpbHMgZm9yIGxvdy1sZXZlbCBhbmQgaGlnaC1sZXZlbCBBUEkKKyAqLworCisvKioKKyAqIGJsa2lkX2Rldm5vX3RvX2Rldm5hbWU6CisgKiBAZGV2bm86IGRldmljZSBudW1iZXIKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBwYXRobmFtZSB0byBhIGJsb2NrIGRldmljZSB3aXRoIGEgZ2l2ZW4KKyAqIGRldmljZSBudW1iZXIuCisgKgorICogUmV0dXJuczogYSBwb2ludGVyIHRvIGFsbG9jYXRlZCBtZW1vcnkgdG8gdGhlIHBhdGhuYW1lIG9uIHN1Y2Nlc3MsCisgKiBhbmQgTlVMTCBvbiBmYWlsdXJlLgorICovCitjaGFyICpibGtpZF9kZXZub190b19kZXZuYW1lKGRldl90IGRldm5vKQoreworCXN0cnVjdCBkaXJfbGlzdCAqbGlzdCA9IE5VTEwsICpuZXdfbGlzdCA9IE5VTEw7CisJY2hhciAqZGV2bmFtZSA9IE5VTEw7CisJY29uc3QgY2hhciAqKmRpcjsKKworCS8qCisJICogQWRkIHRoZSBzdGFydGluZyBkaXJlY3RvcmllcyB0byBzZWFyY2ggaW4gcmV2ZXJzZSBvcmRlciBvZgorCSAqIGltcG9ydGFuY2UsIHNpbmNlIHdlIGFyZSB1c2luZyBhIHN0YWNrLi4uCisJICovCisJZm9yIChkaXIgPSBkZXZkaXJzOyAqZGlyOyBkaXIrKykKKwkJYWRkX3RvX2Rpcmxpc3QoKmRpciwgTlVMTCwgJmxpc3QpOworCisJd2hpbGUgKGxpc3QpIHsKKwkJc3RydWN0IGRpcl9saXN0ICpjdXJyZW50ID0gbGlzdDsKKworCQlsaXN0ID0gbGlzdC0+bmV4dDsKKwkJREJHKERFQlVHX0RFVk5PLCBwcmludGYoImRpcmVjdG9yeSAlc1xuIiwgY3VycmVudC0+bmFtZSkpOworCQlibGtpZF9fc2Nhbl9kaXIoY3VycmVudC0+bmFtZSwgZGV2bm8sICZuZXdfbGlzdCwgJmRldm5hbWUpOworCQlmcmVlKGN1cnJlbnQtPm5hbWUpOworCQlmcmVlKGN1cnJlbnQpOworCQlpZiAoZGV2bmFtZSkKKwkJCWJyZWFrOworCQkvKgorCQkgKiBJZiB3ZSdyZSBkb25lIGNoZWNraW5nIGF0IHRoaXMgbGV2ZWwsIGRlc2NlbmQgdG8KKwkJICogdGhlIG5leHQgbGV2ZWwgb2Ygc3ViZGlyZWN0b3JpZXMuIChicmVhZHRoLWZpcnN0KQorCQkgKi8KKwkJaWYgKGxpc3QgPT0gTlVMTCkgeworCQkJbGlzdCA9IG5ld19saXN0OworCQkJbmV3X2xpc3QgPSBOVUxMOworCQl9CisJfQorCWZyZWVfZGlybGlzdCgmbGlzdCk7CisJZnJlZV9kaXJsaXN0KCZuZXdfbGlzdCk7CisKKwlpZiAoIWRldm5hbWUpIHsKKwkJREJHKERFQlVHX0RFVk5PLAorCQkgICAgcHJpbnRmKCJibGtpZDogY291bGRuJ3QgZmluZCBkZXZubyAweCUwNGx4XG4iLAorCQkJICAgKHVuc2lnbmVkIGxvbmcpIGRldm5vKSk7CisJfSBlbHNlIHsKKwkJREJHKERFQlVHX0RFVk5PLAorCQkgICAgcHJpbnRmKCJmb3VuZCBkZXZubyAweCUwNGxseCBhcyAlc1xuIiwgKGxvbmcgbG9uZylkZXZubywgZGV2bmFtZSkpOworCX0KKworCisJcmV0dXJuIGRldm5hbWU7Cit9CisKKworLyogcmV0dXJucyBiYXNlbmFtZSBhbmQga2VlcHMgZGlybmFtZSBpbiB0aGUgQHBhdGggKi8KK3N0YXRpYyBjaGFyICpzdHJpcG9mZl9sYXN0X2NvbXBvbmVudChjaGFyICpwYXRoKQoreworCWNoYXIgKnAgPSBzdHJyY2hyKHBhdGgsICcvJyk7CisKKwlpZiAoIXApCisJCXJldHVybiBOVUxMOworCSpwID0gJ1wwJzsKKwlyZXR1cm4gKytwOworfQorCisvKioKKyAqIGJsa2lkX2Rldm5vX3RvX3dob2xlZGlzazoKKyAqIEBkZXY6IGRldmljZSBudW1iZXIKKyAqIEBkaXNrbmFtZTogYnVmZmVyIHRvIHJldHVybiBkaXNrbmFtZSAob3IgTlVMTCkKKyAqIEBsZW46IGRpc2tuYW1lIGJ1ZmZlciBzaXplIChvciAwKQorICogQGRpc2tkZXZubzogcG9pbnRlciB0byByZXR1cm5zIGRldm5vIG9mIGVudGlyZSBkaXNrIChvciBOVUxMKQorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBzeXNmcyB0byBjb252ZXJ0IHRoZSBAZGV2bm8gZGV2aWNlIG51bWJlciB0byB0aGUgKm5hbWUqCisgKiBvZiB0aGUgd2hvbGUgZGlzay4gVGhlIGZ1bmN0aW9uIERPRVMgTk9UIHJldHVybiBmdWxsIGRldmljZSBuYW1lLiBUaGUgQGRldgorICogYXJndW1lbnQgY291bGQgYmUgcGFydGl0aW9uIG9yIHdob2xlIGRpc2sgLS0gYm90aCBpcyBjb252ZXJ0ZWQuCisgKgorICogRm9yIGV4YW1wbGU6IHNkYTEsIDB4MDgwMSAtLT4gc2RhLCAweDA4MDAKKyAqCisgKiBGb3IgY29udmVyc2lvbiB0byB0aGUgZnVsbCBkaXNrICpwYXRoKiB1c2UgYmxraWRfZGV2bm9fdG9fZGV2bmFtZSgpLCBmb3IKKyAqIGV4YW1wbGU6CisgKgorICogPGluZm9ybWFsZXhhbXBsZT4KKyAqICA8cHJvZ3JhbWxpc3Rpbmc+CisgKgorICoJZGV2X3QgZGV2ID0gMHgwODAxLCBkaXNrOwkJLy8gc2RhMSA9IDg6MQorICoJY2hhciAqZGlza3BhdGgsIGRpc2tuYW1lWzMyXTsKKyAqCisgKglibGtpZF9kZXZub190b193aG9sZWRpc2soZGV2LCBkaXNrbmFtZSwgc2l6ZW9mKGRpc2tuYW1lKSwgJmRpc2spOworICoJZGlza3BhdGggPSBibGtpZF9kZXZub190b19kZXZuYW1lKGRpc2spOworICoKKyAqCS8vIHByaW50ICIweDA4MDE6IHNkYSwgL2Rldi9zZGEsIDg6MAorICoJcHJpbnRmKCIweCV4OiAlcywgJXMsICVkOiVkXG4iLAorICoJCWRldiwgZGlza25hbWUsIGRpc2twYXRoLCBtYWpvcihkaXNrKSwgbWlub3IoZGlzaykpOworICoKKyAqCWZyZWUoZGlza3BhdGgpOworICoKKyAqICA8L3Byb2dyYW1saXN0aW5nPgorICogPC9pbmZvcm1hbGV4YW1wbGU+CisgKgorICogUmV0dXJuczogMCBvbiBzdWNjZXNzIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludCBibGtpZF9kZXZub190b193aG9sZWRpc2soZGV2X3QgZGV2LCBjaGFyICpkaXNrbmFtZSwKKwkJCXNpemVfdCBsZW4sIGRldl90ICpkaXNrZGV2bm8pCit7CisJY2hhciBwYXRoW1BBVEhfTUFYXTsKKwljaGFyIGxpbmtwYXRoW1BBVEhfTUFYXTsKKwlzdHJ1Y3Qgc3RhdCBpbmZvOworCWNoYXIgKm5hbWU7CisJaW50IHJjLCBsaW5rbGVuOworCisJaWYgKCFkZXYpCisJCWdvdG8gZXJyOworCisJLyogY2hlY2sgaWYgZGV2IGlzIGEgcGFydGl0aW9uICovCisJcmMgPSBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIvc3lzL2Rldi9ibG9jay8lZDolZC9wYXJ0aXRpb24iLAorCQkJbWFqb3IoZGV2KSwgbWlub3IoZGV2KSk7CisJaWYgKHJjIDwgMCB8fCByYyArIDEgPiBzaXplb2YocGF0aCkpCisJCWdvdG8gZXJyOworCisJcmMgPSBzdGF0KHBhdGgsICZpbmZvKTsJCS8qICdyYyA9PSAwJyBtZWFucyBwYXJ0aXRpb25lZCBkZXYgKi8KKworCSAvKiBha2EgZGlybmFtZSAocmVtb3ZlICIvcGFydGl0aW9uIiBmcm9tIHRoZSBwYXRoKi8KKwlzdHJpcG9mZl9sYXN0X2NvbXBvbmVudChwYXRoKTsKKworCS8qCisJICogVW5wYXJ0aXRpb25lZCBkZXZpY2U6CisJICoJLSByZWFkbGluayAvc3lzL2Rldi9ibG9jay84OjAgPSAuLi8uLi9ibG9jay9zZGEKKwkgKgktIGJhc2VuYW1lIC4uLy4uL2Jsb2NrL3NkYSAgICA9IHNkYQorCSAqCisJICogUGFydGl0aW9uZWQgZGV2aWNlOgorCSAqCS0gcmVhZGxpbmsgL3N5cy9kZXYvYmxvY2svODoxICAgPSAuLi8uLi9ibG9jay9zZGEvc2RhMQorCSAqCS0gZGlybmFtZSAgLi4vLi4vYmxvY2svc2RhL3NkYTEgPSAuLi8uLi9ibG9jay9zZGEKKwkgKgktIGJhc2VuYW1lIC4uLy4uL2Jsb2NrL3NkYSAgICAgID0gc2RhCisJICovCisJbGlua2xlbiA9IHJlYWRsaW5rKHBhdGgsIGxpbmtwYXRoLCBzaXplb2YobGlua3BhdGgpKTsKKwlpZiAobGlua2xlbiA8IDApCisJCWdvdG8gZXJyOworCWxpbmtwYXRoW2xpbmtsZW5dID0gJ1wwJzsKKworCWlmIChyYyA9PSAwKQorCQkvKiBwYXJ0aXRpb25lZCBkZXZpY2UgKi8KKwkJc3RyaXBvZmZfbGFzdF9jb21wb25lbnQobGlua3BhdGgpOwkvKiBkaXJuYW1lICovCisKKwluYW1lID0gc3RyaXBvZmZfbGFzdF9jb21wb25lbnQobGlua3BhdGgpOwkvKiBiYXNlbmFtZSAqLworCWlmICghbmFtZSkKKwkJZ290byBlcnI7CisKKwlpZiAoZGlza25hbWUgJiYgbGVuKSB7CisJCXN0cm5jcHkoZGlza25hbWUsIG5hbWUsIGxlbik7CisJCWRpc2tuYW1lW2xlbiAtIDFdID0gJ1wwJzsKKwl9CisKKwlpZiAoZGlza2Rldm5vKSB7CisJCWludCBtYWosIG1pbjsKKwkJRklMRSAqZjsKKworCQkvKiByZWFkIHdob2xlZGlzayBkZXZubyAqLworCQlyYyA9IHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIi9zeXMvYmxvY2svJXMvZGV2IiwgbmFtZSk7CisJCWlmIChyYyA8IDAgfHwgcmMgKyAxID4gc2l6ZW9mKHBhdGgpKQorCQkJZ290byBlcnI7CisKKwkJZiA9IGZvcGVuKHBhdGgsICJyIik7CisJCWlmICghZikKKwkJCWdvdG8gZXJyOworCisJCXJjID0gZnNjYW5mKGYsICIlZDolZCIsICZtYWosICZtaW4pOworCQlmY2xvc2UoZik7CisJCWlmIChyYyAhPSAyKQorCQkJZ290byBlcnI7CisKKwkJKmRpc2tkZXZubyA9IG1ha2VkZXYobWFqLCBtaW4pOworCX0KKworCURCRyhERUJVR19ERVZOTywKKwkgICAgcHJpbnRmKCJmb3VuZCBlbnRpcmUgZGlza25hbWUgZm9yIGRldm5vIDB4JTA0bGx4IGFzICVzXG4iLAorCSAgICAobG9uZyBsb25nKSBkZXYsIG5hbWUpKTsKKwlyZXR1cm4gMDsKK2VycjoKKwlEQkcoREVCVUdfREVWTk8sCisJICAgIHByaW50ZigiZmFpbGVkIHRvIGNvbnZlcnQgMHglMDRsbHggdG8gd2hvbGVkaXNrIG5hbWUsIGVycm5vPSVkXG4iLAorCSAgICAobG9uZyBsb25nKSBkZXYsIGVycm5vKSk7CisJcmV0dXJuIC0xOworfQorCisvKgorICogUmV0dXJucyAxIGlmIHRoZSBAbWFqb3IgbnVtYmVyIGlzIGFzc29jaWF0ZWQgd2l0aCBAZHJ2bmFtZS4KKyAqLworaW50IGJsa2lkX2RyaXZlcl9oYXNfbWFqb3IoY29uc3QgY2hhciAqZHJ2bmFtZSwgaW50IG1ham9yKQoreworCUZJTEUgKmY7CisJY2hhciBidWZbMTI4XTsKKwlpbnQgbWF0Y2ggPSAwOworCisJZiA9IGZvcGVuKF9QQVRIX1BST0NfREVWSUNFUywgInIiKTsKKwlpZiAoIWYpCisJCXJldHVybiAwOworCisJd2hpbGUgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGYpKSB7CS8qIHNraXAgdG8gYmxvY2sgZGV2IHNlY3Rpb24gKi8KKwkJaWYgKHN0cm5jbXAoIkJsb2NrIGRldmljZXM6XG4iLCBidWYsIHNpemVvZihidWYpKSA9PSAwKQorCQkJYnJlYWs7CisJfQorCisJd2hpbGUgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGYpKSB7CisJCXVuc2lnbmVkIGludCBtYWo7CisJCWNoYXIgbmFtZVs2NF07CisKKwkJaWYgKHNzY2FuZihidWYsICIldSAlNjRbXlxuIF0iLCAmbWFqLCBuYW1lKSAhPSAyKQorCQkJY29udGludWU7CisKKwkJaWYgKG1haiA9PSBtYWpvciAmJiBzdHJjbXAobmFtZSwgZHJ2bmFtZSkgPT0gMCkgeworCQkJbWF0Y2ggPSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlmY2xvc2UoZik7CisKKwlEQkcoREVCVUdfREVWTk8sIHByaW50ZigibWFqb3IgJWQgJXMgYXNzb2NpYXRlZCB3aXRoICclcycgZHJpdmVyXG4iLAorCQkJbWFqb3IsIG1hdGNoID8gImlzIiA6ICJpcyBOT1QiLCBkcnZuYW1lKSk7CisJcmV0dXJuIG1hdGNoOworfQorCisjaWZkZWYgVEVTVF9QUk9HUkFNCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisJY2hhcgkqZGV2bmFtZSwgKnRtcDsKKwlpbnQJbWFqb3IsIG1pbm9yOworCWRldl90CWRldm5vOworCWNvbnN0IGNoYXIgKmVycm1zZyA9ICJDb3VsZG4ndCBwYXJzZSAlczogJXNcbiI7CisKKwlibGtpZF9pbml0X2RlYnVnKERFQlVHX0FMTCk7CisJaWYgKChhcmdjICE9IDIpICYmIChhcmdjICE9IDMpKSB7CisJCWZwcmludGYoc3RkZXJyLCAiVXNhZ2U6XHQlcyBkZXZpY2VfbnVtYmVyXG5cdCVzIG1ham9yIG1pbm9yXG4iCisJCQkiUmVzb2x2ZSBhIGRldmljZSBudW1iZXIgdG8gYSBkZXZpY2UgbmFtZVxuIiwKKwkJCWFyZ3ZbMF0sIGFyZ3ZbMF0pOworCQlleGl0KDEpOworCX0KKwlpZiAoYXJnYyA9PSAyKSB7CisJCWRldm5vID0gc3RydG91bChhcmd2WzFdLCAmdG1wLCAwKTsKKwkJaWYgKCp0bXApIHsKKwkJCWZwcmludGYoc3RkZXJyLCBlcnJtc2csICJkZXZpY2UgbnVtYmVyIiwgYXJndlsxXSk7CisJCQlleGl0KDEpOworCQl9CisJfSBlbHNlIHsKKwkJbWFqb3IgPSBzdHJ0b3VsKGFyZ3ZbMV0sICZ0bXAsIDApOworCQlpZiAoKnRtcCkgeworCQkJZnByaW50ZihzdGRlcnIsIGVycm1zZywgIm1ham9yIG51bWJlciIsIGFyZ3ZbMV0pOworCQkJZXhpdCgxKTsKKwkJfQorCQltaW5vciA9IHN0cnRvdWwoYXJndlsyXSwgJnRtcCwgMCk7CisJCWlmICgqdG1wKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgZXJybXNnLCAibWlub3IgbnVtYmVyIiwgYXJndlsyXSk7CisJCQlleGl0KDEpOworCQl9CisJCWRldm5vID0gbWFrZWRldihtYWpvciwgbWlub3IpOworCX0KKwlwcmludGYoIkxvb2tpbmcgZm9yIGRldmljZSAweCUwNGxseFxuIiwgKGxvbmcgbG9uZylkZXZubyk7CisJZGV2bmFtZSA9IGJsa2lkX2Rldm5vX3RvX2Rldm5hbWUoZGV2bm8pOworCWZyZWUoZGV2bmFtZSk7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZW5jb2RlLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL2VuY29kZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1ZjgwMGIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL2VuY29kZS5jCkBAIC0wLDAgKzEsMzM5IEBACisKKy8qCisgKiBlbmNvZGUuYyAtIHN0cmluZyBjb252ZXJ0aW9uIHJvdXRpbmVzIChtb3N0bHkgZm9yIGNvbXBhdGliaWxpdHkgd2l0aAorICogICAgICAgICAgICB1ZGV2L3ZvbHVtZV9pZCkKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKworI2luY2x1ZGUgImJsa2Rldi5oIgorI2luY2x1ZGUgImJsa2lkUC5oIgorCisjZGVmaW5lIFVERVZfQUxMT1dFRF9DSEFSU19JTlBVVCAgICAgICAgICAgICAgICIvICQlPywiCisKKy8qKgorICogU0VDVElPTjogZW5jb2RlCisgKiBAdGl0bGU6IEVuY29kaW5nIHV0aWxzCisgKiBAc2hvcnRfZGVzY3JpcHRpb246IGVuY29kZSBzdHJpbmdzIHRvIHNhZmUgdWRldi1jb21wYXRpYmxlIGZvcm1hdHMKKyAqCisgKi8KKworLyogY291bnQgb2YgY2hhcmFjdGVycyB1c2VkIHRvIGVuY29kZSBvbmUgdW5pY29kZSBjaGFyICovCitzdGF0aWMgaW50IHV0ZjhfZW5jb2RlZF9leHBlY3RlZF9sZW4oY29uc3QgY2hhciAqc3RyKQoreworCXVuc2lnbmVkIGNoYXIgYyA9ICh1bnNpZ25lZCBjaGFyKXN0clswXTsKKworCWlmIChjIDwgMHg4MCkKKwkJcmV0dXJuIDE7CisJaWYgKChjICYgMHhlMCkgPT0gMHhjMCkKKwkJcmV0dXJuIDI7CisJaWYgKChjICYgMHhmMCkgPT0gMHhlMCkKKwkJcmV0dXJuIDM7CisJaWYgKChjICYgMHhmOCkgPT0gMHhmMCkKKwkJcmV0dXJuIDQ7CisJaWYgKChjICYgMHhmYykgPT0gMHhmOCkKKwkJcmV0dXJuIDU7CisJaWYgKChjICYgMHhmZSkgPT0gMHhmYykKKwkJcmV0dXJuIDY7CisJcmV0dXJuIDA7Cit9CisKKy8qIGRlY29kZSBvbmUgdW5pY29kZSBjaGFyICovCitzdGF0aWMgaW50IHV0ZjhfZW5jb2RlZF90b191bmljaGFyKGNvbnN0IGNoYXIgKnN0cikKK3sKKwlpbnQgdW5pY2hhcjsKKwlpbnQgbGVuOworCWludCBpOworCisJbGVuID0gdXRmOF9lbmNvZGVkX2V4cGVjdGVkX2xlbihzdHIpOworCXN3aXRjaCAobGVuKSB7CisJY2FzZSAxOgorCQlyZXR1cm4gKGludClzdHJbMF07CisJY2FzZSAyOgorCQl1bmljaGFyID0gc3RyWzBdICYgMHgxZjsKKwkJYnJlYWs7CisJY2FzZSAzOgorCQl1bmljaGFyID0gKGludClzdHJbMF0gJiAweDBmOworCQlicmVhazsKKwljYXNlIDQ6CisJCXVuaWNoYXIgPSAoaW50KXN0clswXSAmIDB4MDc7CisJCWJyZWFrOworCWNhc2UgNToKKwkJdW5pY2hhciA9IChpbnQpc3RyWzBdICYgMHgwMzsKKwkJYnJlYWs7CisJY2FzZSA2OgorCQl1bmljaGFyID0gKGludClzdHJbMF0gJiAweDAxOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLTE7CisJfQorCisJZm9yIChpID0gMTsgaSA8IGxlbjsgaSsrKSB7CisJCWlmICgoKGludClzdHJbaV0gJiAweGMwKSAhPSAweDgwKQorCQkJcmV0dXJuIC0xOworCQl1bmljaGFyIDw8PSA2OworCQl1bmljaGFyIHw9IChpbnQpc3RyW2ldICYgMHgzZjsKKwl9CisKKwlyZXR1cm4gdW5pY2hhcjsKK30KKworLyogZXhwZWN0ZWQgc2l6ZSB1c2VkIHRvIGVuY29kZSBvbmUgdW5pY29kZSBjaGFyICovCitzdGF0aWMgaW50IHV0ZjhfdW5pY2hhcl90b19lbmNvZGVkX2xlbihpbnQgdW5pY2hhcikKK3sKKwlpZiAodW5pY2hhciA8IDB4ODApCisJCXJldHVybiAxOworCWlmICh1bmljaGFyIDwgMHg4MDApCisJCXJldHVybiAyOworCWlmICh1bmljaGFyIDwgMHgxMDAwMCkKKwkJcmV0dXJuIDM7CisJaWYgKHVuaWNoYXIgPCAweDIwMDAwMCkKKwkJcmV0dXJuIDQ7CisJaWYgKHVuaWNoYXIgPCAweDQwMDAwMDApCisJCXJldHVybiA1OworCXJldHVybiA2OworfQorCisvKiBjaGVjayBpZiB1bmljb2RlIGNoYXIgaGFzIGEgdmFsaWQgbnVtZXJpYyByYW5nZSAqLworc3RhdGljIGludCB1dGY4X3VuaWNoYXJfdmFsaWRfcmFuZ2UoaW50IHVuaWNoYXIpCit7CisJaWYgKHVuaWNoYXIgPiAweDEwZmZmZikKKwkJcmV0dXJuIDA7CisJaWYgKCh1bmljaGFyICYgMHhmZmZmZjgwMCkgPT0gMHhkODAwKQorCQlyZXR1cm4gMDsKKwlpZiAoKHVuaWNoYXIgPiAweGZkY2YpICYmICh1bmljaGFyIDwgMHhmZGYwKSkKKwkJcmV0dXJuIDA7CisJaWYgKCh1bmljaGFyICYgMHhmZmZmKSA9PSAweGZmZmYpCisJCXJldHVybiAwOworCXJldHVybiAxOworfQorCisvKiB2YWxpZGF0ZSBvbmUgZW5jb2RlZCB1bmljb2RlIGNoYXIgYW5kIHJldHVybiBpdHMgbGVuZ3RoICovCitzdGF0aWMgaW50IHV0ZjhfZW5jb2RlZF92YWxpZF91bmljaGFyKGNvbnN0IGNoYXIgKnN0cikKK3sKKwlpbnQgbGVuOworCWludCB1bmljaGFyOworCWludCBpOworCisJbGVuID0gdXRmOF9lbmNvZGVkX2V4cGVjdGVkX2xlbihzdHIpOworCWlmIChsZW4gPT0gMCkKKwkJcmV0dXJuIC0xOworCisJLyogYXNjaWkgaXMgdmFsaWQgKi8KKwlpZiAobGVuID09IDEpCisJCXJldHVybiAxOworCisJLyogY2hlY2sgaWYgZXhwZWN0ZWQgZW5jb2RlZCBjaGFycyBhcmUgYXZhaWxhYmxlICovCisJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQorCQlpZiAoKHN0cltpXSAmIDB4ODApICE9IDB4ODApCisJCQlyZXR1cm4gLTE7CisKKwl1bmljaGFyID0gdXRmOF9lbmNvZGVkX3RvX3VuaWNoYXIoc3RyKTsKKworCS8qIGNoZWNrIGlmIGVuY29kZWQgbGVuZ3RoIG1hdGNoZXMgZW5jb2RlZCB2YWx1ZSAqLworCWlmICh1dGY4X3VuaWNoYXJfdG9fZW5jb2RlZF9sZW4odW5pY2hhcikgIT0gbGVuKQorCQlyZXR1cm4gLTE7CisKKwkvKiBjaGVjayBpZiB2YWx1ZSBoYXMgdmFsaWQgcmFuZ2UgKi8KKwlpZiAoIXV0ZjhfdW5pY2hhcl92YWxpZF9yYW5nZSh1bmljaGFyKSkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIGxlbjsKK30KKworc3RhdGljIGludCByZXBsYWNlX3doaXRlc3BhY2UoY29uc3QgY2hhciAqc3RyLCBjaGFyICp0bywgc2l6ZV90IGxlbikKK3sKKwlzaXplX3QgaSwgajsKKworCS8qIHN0cmlwIHRyYWlsaW5nIHdoaXRlc3BhY2UgKi8KKwlsZW4gPSBzdHJubGVuKHN0ciwgbGVuKTsKKwl3aGlsZSAobGVuICYmIGlzc3BhY2Uoc3RyW2xlbi0xXSkpCisJCWxlbi0tOworCisJLyogc3RyaXAgbGVhZGluZyB3aGl0ZXNwYWNlICovCisJaSA9IDA7CisJd2hpbGUgKGlzc3BhY2Uoc3RyW2ldKSAmJiAoaSA8IGxlbikpCisJCWkrKzsKKworCWogPSAwOworCXdoaWxlIChpIDwgbGVuKSB7CisJCS8qIHN1YnN0aXR1dGUgbXVsdGlwbGUgd2hpdGVzcGFjZSB3aXRoIGEgc2luZ2xlICdfJyAqLworCQlpZiAoaXNzcGFjZShzdHJbaV0pKSB7CisJCQl3aGlsZSAoaXNzcGFjZShzdHJbaV0pKQorCQkJCWkrKzsKKwkJCXRvW2orK10gPSAnXyc7CisJCX0KKwkJdG9baisrXSA9IHN0cltpKytdOworCX0KKwl0b1tqXSA9ICdcMCc7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaXNfd2hpdGVsaXN0ZWQoY2hhciBjLCBjb25zdCBjaGFyICp3aGl0ZSkKK3sKKwlpZiAoKGMgPj0gJzAnICYmIGMgPD0gJzknKSB8fAorCSAgICAoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8CisJICAgIChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwKKwkgICAgc3RyY2hyKCIjKy0uOj1AXyIsIGMpICE9IE5VTEwgfHwKKwkgICAgKHdoaXRlICE9IE5VTEwgJiYgc3RyY2hyKHdoaXRlLCBjKSAhPSBOVUxMKSkKKwkJcmV0dXJuIDE7CisJcmV0dXJuIDA7Cit9CisKKy8qIGFsbG93IGNoYXJzIGluIHdoaXRlbGlzdCwgcGxhaW4gYXNjaWksIGhleC1lc2NhcGluZyBhbmQgdmFsaWQgdXRmOCAqLworc3RhdGljIGludCByZXBsYWNlX2NoYXJzKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqd2hpdGUpCit7CisJc2l6ZV90IGkgPSAwOworCWludCByZXBsYWNlZCA9IDA7CisKKwl3aGlsZSAoc3RyW2ldICE9ICdcMCcpIHsKKwkJaW50IGxlbjsKKworCQlpZiAoaXNfd2hpdGVsaXN0ZWQoc3RyW2ldLCB3aGl0ZSkpIHsKKwkJCWkrKzsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyogYWNjZXB0IGhleCBlbmNvZGluZyAqLworCQlpZiAoc3RyW2ldID09ICdcXCcgJiYgc3RyW2krMV0gPT0gJ3gnKSB7CisJCQlpICs9IDI7CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qIGFjY2VwdCB2YWxpZCB1dGY4ICovCisJCWxlbiA9IHV0ZjhfZW5jb2RlZF92YWxpZF91bmljaGFyKCZzdHJbaV0pOworCQlpZiAobGVuID4gMSkgeworCQkJaSArPSBsZW47CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qIGlmIHNwYWNlIGlzIGFsbG93ZWQsIHJlcGxhY2Ugd2hpdGVzcGFjZSB3aXRoIG9yZGluYXJ5IHNwYWNlICovCisJCWlmIChpc3NwYWNlKHN0cltpXSkgJiYgd2hpdGUgIT0gTlVMTCAmJiBzdHJjaHIod2hpdGUsICcgJykgIT0gTlVMTCkgeworCQkJc3RyW2ldID0gJyAnOworCQkJaSsrOworCQkJcmVwbGFjZWQrKzsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyogZXZlcnl0aGluZyBlbHNlIGlzIHJlcGxhY2VkIHdpdGggJ18nICovCisJCXN0cltpXSA9ICdfJzsKKwkJaSsrOworCQlyZXBsYWNlZCsrOworCX0KKwlyZXR1cm4gcmVwbGFjZWQ7Cit9CisKK3NpemVfdCBibGtpZF9lbmNvZGVfdG9fdXRmOChpbnQgZW5jLCB1bnNpZ25lZCBjaGFyICpkZXN0LCBzaXplX3QgbGVuLAorCQkJY29uc3QgdW5zaWduZWQgY2hhciAqc3JjLCBzaXplX3QgY291bnQpCit7CisJc2l6ZV90IGksIGo7CisJdWludDE2X3QgYzsKKworCWZvciAoaiA9IGkgPSAwOyBpICsgMiA8PSBjb3VudDsgaSArPSAyKSB7CisJCWlmIChlbmMgPT0gQkxLSURfRU5DX1VURjE2TEUpCisJCQljID0gKHNyY1tpKzFdIDw8IDgpIHwgc3JjW2ldOworCQllbHNlIC8qIEJMS0lEX0VOQ19VVEYxNkJFICovCisJCQljID0gKHNyY1tpXSA8PCA4KSB8IHNyY1tpKzFdOworCQlpZiAoYyA9PSAwKSB7CisJCQlkZXN0W2pdID0gJ1wwJzsKKwkJCWJyZWFrOworCQl9IGVsc2UgaWYgKGMgPCAweDgwKSB7CisJCQlpZiAoaisxID49IGxlbikKKwkJCQlicmVhazsKKwkJCWRlc3RbaisrXSA9ICh1aW50OF90KSBjOworCQl9IGVsc2UgaWYgKGMgPCAweDgwMCkgeworCQkJaWYgKGorMiA+PSBsZW4pCisJCQkJYnJlYWs7CisJCQlkZXN0W2orK10gPSAodWludDhfdCkgKDB4YzAgfCAoYyA+PiA2KSk7CisJCQlkZXN0W2orK10gPSAodWludDhfdCkgKDB4ODAgfCAoYyAmIDB4M2YpKTsKKwkJfSBlbHNlIHsKKwkJCWlmIChqKzMgPj0gbGVuKQorCQkJCWJyZWFrOworCQkJZGVzdFtqKytdID0gKHVpbnQ4X3QpICgweGUwIHwgKGMgPj4gMTIpKTsKKwkJCWRlc3RbaisrXSA9ICh1aW50OF90KSAoMHg4MCB8ICgoYyA+PiA2KSAmIDB4M2YpKTsKKwkJCWRlc3RbaisrXSA9ICh1aW50OF90KSAoMHg4MCB8IChjICYgMHgzZikpOworCQl9CisJfQorCWRlc3Rbal0gPSAnXDAnOworCXJldHVybiBqOworfQorCisvKioKKyAqIGJsa2lkX2VuY29kZV9zdHJpbmc6CisgKiBAc3RyOiBpbnB1dCBzdHJpbmcgdG8gYmUgZW5jb2RlZAorICogQHN0cl9lbmM6IG91dHB1dCBzdHJpbmcgdG8gc3RvcmUgdGhlIGVuY29kZWQgaW5wdXQgc3RyaW5nCisgKiBAbGVuOiBtYXhpbXVtIHNpemUgb2YgdGhlIG91dHB1dCBzdHJpbmcsIHdoaWNoIG1heSBiZQorICogICAgICAgZm91ciB0aW1lcyBhcyBsb25nIGFzIHRoZSBpbnB1dCBzdHJpbmcKKyAqCisgKiBFbmNvZGUgYWxsIHBvdGVudGlhbGx5IHVuc2FmZSBjaGFyYWN0ZXJzIG9mIGEgc3RyaW5nIHRvIHRoZQorICogY29ycmVzcG9uZGluZyBoZXggdmFsdWUgcHJlZml4ZWQgYnkgJ1x4Jy4KKyAqCisgKiBSZXR1cm5zOiAwIGlmIHRoZSBlbnRpcmUgc3RyaW5nIHdhcyBjb3BpZWQsIG5vbi16ZXJvIG90aGVyd2lzZS4KKyAqKi8KK2ludCBibGtpZF9lbmNvZGVfc3RyaW5nKGNvbnN0IGNoYXIgKnN0ciwgY2hhciAqc3RyX2VuYywgc2l6ZV90IGxlbikKK3sKKwlzaXplX3QgaSwgajsKKworCWlmIChzdHIgPT0gTlVMTCB8fCBzdHJfZW5jID09IE5VTEwpCisJCXJldHVybiAtMTsKKworCWZvciAoaSA9IDAsIGogPSAwOyBzdHJbaV0gIT0gJ1wwJzsgaSsrKSB7CisJCWludCBzZXFsZW47CisKKwkJc2VxbGVuID0gdXRmOF9lbmNvZGVkX3ZhbGlkX3VuaWNoYXIoJnN0cltpXSk7CisJCWlmIChzZXFsZW4gPiAxKSB7CisJCQlpZiAobGVuLWogPCAoc2l6ZV90KXNlcWxlbikKKwkJCQlnb3RvIGVycjsKKwkJCW1lbWNweSgmc3RyX2VuY1tqXSwgJnN0cltpXSwgc2VxbGVuKTsKKwkJCWogKz0gc2VxbGVuOworCQkJaSArPSAoc2VxbGVuLTEpOworCQl9IGVsc2UgaWYgKHN0cltpXSA9PSAnXFwnIHx8ICFpc193aGl0ZWxpc3RlZChzdHJbaV0sIE5VTEwpKSB7CisJCQlpZiAobGVuLWogPCA0KQorCQkJCWdvdG8gZXJyOworCQkJc3ByaW50Zigmc3RyX2VuY1tqXSwgIlxceCUwMngiLCAodW5zaWduZWQgY2hhcikgc3RyW2ldKTsKKwkJCWogKz0gNDsKKwkJfSBlbHNlIHsKKwkJCWlmIChsZW4taiA8IDEpCisJCQkJZ290byBlcnI7CisJCQlzdHJfZW5jW2pdID0gc3RyW2ldOworCQkJaisrOworCQl9CisJCWlmIChqKzMgPj0gbGVuKQorCQkJZ290byBlcnI7CisJfQorCWlmIChsZW4taiA8IDEpCisJCWdvdG8gZXJyOworCXN0cl9lbmNbal0gPSAnXDAnOworCXJldHVybiAwOworZXJyOgorCXJldHVybiAtMTsKK30KKworLyoqCisgKiBibGtpZF9zYWZlX3N0cmluZzoKKyAqIEBzdHI6IGlucHV0IHN0cmluZworICogQHN0cl9zYWZlOiBvdXRwdXQgc3RyaW5nCisgKiBAbGVuOiBzaXplIG9mIG91dHB1dCBzdHJpbmcKKyAqCisgKiBBbGxvd3MgcGxhaW4gYXNjaWksIGhleC1lc2NhcGluZyBhbmQgdmFsaWQgdXRmOC4gUmVwbGFjZXMgYWxsIHdoaXRlc3BhY2VzCisgKiB3aXRoICdfJy4KKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3Mgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX3NhZmVfc3RyaW5nKGNvbnN0IGNoYXIgKnN0ciwgY2hhciAqc3RyX3NhZmUsIHNpemVfdCBsZW4pCit7CisJcmVwbGFjZV93aGl0ZXNwYWNlKHN0ciwgc3RyX3NhZmUsIGxlbik7CisJcmVwbGFjZV9jaGFycyhzdHJfc2FmZSwgVURFVl9BTExPV0VEX0NIQVJTX0lOUFVUKTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZXZhbHVhdGUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZXZhbHVhdGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Zjk4N2IxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9ldmFsdWF0ZS5jCkBAIC0wLDAgKzEsMjg3IEBACisvKgorICogZXZhbHVhdGUuYyAtIHZlcnkgaGlnaC1sZXZlbCBBUEkgdG8gZXZhbHVhdGUgTEFCRUxzIG9yIFVVSURzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpZmRlZiBIQVZFX1NZU19TVEFUX0gKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfTUtERVZfSAorI2luY2x1ZGUgPHN5cy9ta2Rldi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9FUlJOT19ICisjaW5jbHVkZSA8ZXJybm8uaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAiY2Fub25pY2FsaXplLmgiCisKKyNpbmNsdWRlICJibGtkZXYuaCIKKyNpbmNsdWRlICJibGtpZFAuaCIKKworLyoqCisgKiBTRUNUSU9OOmV2YWx1YXRlCisgKiBAdGl0bGU6IFRhZ3MgZXZhbHVhdGlvbgorICogQHNob3J0X2Rlc2NyaXB0aW9uOiB0b3AtbGV2ZWwgQVBJIGZvciBMQUJFTCBhbmQgVVVJRCBldmFsdWF0aW9uLgorICoKKyAqIFRoaXMgQVBJIHByb3ZpZGVzIHZlcnkgc2ltcGxlIGFuZCBwb3J0YWJsZSB3YXkgaG93IGV2YWx1YXRlIExBQkVMIGFuZCBVVUlECisgKiB0YWdzLiAgVGhlIGJsa2lkX2V2YWx1YXRlX3RhZygpIHdvcmtzIG9uIDIuNCBhbmQgMi42IHN5c3RlbXMgYW5kIG9uIHN5c3RlbXMKKyAqIHdpdGggb3Igd2l0aG91dCB1ZGV2LiBDdXJyZW50bHksIHRoZSBsaWJibGtpZCBsaWJyYXJ5IHN1cHBvcnRzICJ1ZGV2IiBhbmQKKyAqICJzY2FuIiBtZXRob2RzLiBUaGUgInVkZXYiIG1ldGhvZCB1c2VzIHVkZXYgL2Rldi9kaXNrL2J5LSogc3ltbGlua3MgYW5kIHRoZQorICogInNjYW4iIG1ldGhvZCBzY2FucyBhbGwgYmxvY2sgZGV2aWNlcyBmcm9tIHRoZSAvcHJvYy9wYXJ0aXRpb25zIGZpbGUuIFRoZQorICogZXZhbHVhdGlvbiBjb3VsZCBiZSBjb250cm9sbGVkIGJ5IHRoZSAvZXRjL2Jsa2lkLmNvbmYgY29uZmlnIGZpbGUuIFRoZQorICogZGVmYXVsdCBpcyB0byB0cnkgInVkZXYiIGFuZCB0aGVuICJzY2FuIiBtZXRob2QuCisgKgorICogVGhlIGJsa2lkX2V2YWx1YXRlX3RhZygpIGFsc28gYXV0b21hdGljYWxseSBpbmZvcm1zIHVkZXZkIHdoZW4gYW4gb2Jzb2xldGUKKyAqIC9kZXYvZGlzay9ieS0qIHN5bWxpbmsgaXMgZGV0ZWN0ZWQuCisgKgorICogSWYgeW91IGFyZSBub3Qgc3VyZSBob3cgdHJhbnNsYXRlIExBQkVMIG9yIFVVSUQgdG8gdGhlIGRldmljZSBuYW1lIHVzZSB0aGlzCisgKiBBUEkuCisgKi8KKworLyogcmV0dXJucyB6ZXJvIHdoZW4gdGhlIGRldmljZSBoYXMgTkFNRT12YWx1ZSAoTEFCRUwvVVVJRCkgKi8KK3N0YXRpYyBpbnQgdmVyaWZ5X3RhZyhjb25zdCBjaGFyICpkZXZuYW1lLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKK3sKKwlibGtpZF9wcm9iZSBwcjsKKwlpbnQgZmQgPSAtMSwgcmMgPSAtMTsKKwlzaXplX3QgbGVuOworCWNvbnN0IGNoYXIgKmRhdGE7CisJaW50IGVycnN2ID0gMDsKKworCXByID0gYmxraWRfbmV3X3Byb2JlKCk7CisJaWYgKCFwcikKKwkJcmV0dXJuIC0xOworCisJYmxraWRfcHJvYmVfZW5hYmxlX3N1cGVyYmxvY2tzKHByLCBUUlVFKTsKKwlibGtpZF9wcm9iZV9zZXRfc3VwZXJibG9ja3NfZmxhZ3MocHIsCisJCQlCTEtJRF9TVUJMS1NfTEFCRUwgfCBCTEtJRF9TVUJMS1NfVVVJRCk7CisKKwlmZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkpOworCWlmIChmZCA8IDApIHsKKwkJZXJyc3YgPSBlcnJubzsKKwkJZ290byBkb25lOworCX0KKwlpZiAoYmxraWRfcHJvYmVfc2V0X2RldmljZShwciwgZmQsIDAsIDApKQorCQlnb3RvIGRvbmU7CisJcmMgPSBibGtpZF9kb19zYWZlcHJvYmUocHIpOworCWlmIChyYykKKwkJZ290byBkb25lOworCXJjID0gYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKHByLCBuYW1lLCAmZGF0YSwgJmxlbik7CisJaWYgKCFyYykKKwkJcmMgPSBtZW1jbXAodmFsdWUsIGRhdGEsIGxlbik7Citkb25lOgorCURCRyhERUJVR19FVkFMVUFURSwgcHJpbnRmKCIlczogJXMgdmVyaWZpY2F0aW9uICVzXG4iLAorCQkJZGV2bmFtZSwgbmFtZSwgcmMgPT0gMCA/ICJQQVNTIiA6ICJGQUlMRUQiKSk7CisJaWYgKGZkID49IDApCisJCWNsb3NlKGZkKTsKKwlibGtpZF9mcmVlX3Byb2JlKHByKTsKKworCS8qIGZvciBub24tcm9vdCB1c2VycyB3ZSB1c2UgdW52ZXJpZmllZCB1ZGV2IGxpbmtzICovCisJcmV0dXJuIGVycnN2ID09IEVBQ0NFUyA/IDAgOiByYzsKK30KKworLyoqCisgKiBibGtpZF9zZW5kX3VldmVudDoKKyAqIEBkZXZuYW1lOiBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBkZXZpY2UKKyAqCisgKiBSZXR1cm5zOiAtMSBpbiBjYXNlIG9mIGZhaWx1cmUsIG9yIDAgb24gc3VjY2Vzcy4KKyAqLworaW50IGJsa2lkX3NlbmRfdWV2ZW50KGNvbnN0IGNoYXIgKmRldm5hbWUsIGNvbnN0IGNoYXIgKmFjdGlvbikKK3sKKwljaGFyIHVldmVudFtQQVRIX01BWF07CisJc3RydWN0IHN0YXQgc3Q7CisJRklMRSAqZjsKKwlpbnQgcmMgPSAtMTsKKworCURCRyhERUJVR19FVkFMVUFURSwgcHJpbnRmKCIlczogdWV2ZW50ICclcycgcmVxdWVzdGVkXG4iLCBkZXZuYW1lLCBhY3Rpb24pKTsKKworCWlmICghZGV2bmFtZSB8fCAhYWN0aW9uKQorCQlyZXR1cm4gLTE7CisJaWYgKHN0YXQoZGV2bmFtZSwgJnN0KSB8fCAhU19JU0JMSyhzdC5zdF9tb2RlKSkKKwkJcmV0dXJuIC0xOworCisJc25wcmludGYodWV2ZW50LCBzaXplb2YodWV2ZW50KSwgIi9zeXMvZGV2L2Jsb2NrLyVkOiVkL3VldmVudCIsCisJCQltYWpvcihzdC5zdF9yZGV2KSwgbWlub3Ioc3Quc3RfcmRldikpOworCisJZiA9IGZvcGVuKHVldmVudCwgInciKTsKKwlpZiAoZikgeworCQlyYyA9IDA7CisJCWlmIChmcHV0cyhhY3Rpb24sIGYpID49IDApCisJCQlyYyA9IDA7CisJCWZjbG9zZShmKTsKKwl9CisJREJHKERFQlVHX0VWQUxVQVRFLCBwcmludGYoIiVzOiBzZW5kIHVldmVudCAlc1xuIiwKKwkJCXVldmVudCwgcmMgPT0gMCA/ICJTVUNDRVMiIDogIkZBSUxFRCIpKTsKKwlyZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBjaGFyICpldmFsdWF0ZV9ieV91ZGV2KGNvbnN0IGNoYXIgKnRva2VuLCBjb25zdCBjaGFyICp2YWx1ZSwgaW50IHVldmVudCkKK3sKKwljaGFyIGRldltQQVRIX01BWF07CisJY2hhciAqcGF0aCA9IE5VTEw7CisJc2l6ZV90IGxlbjsKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCURCRyhERUJVR19FVkFMVUFURSwKKwkgICAgcHJpbnRmKCJldmFsdWF0aW5nIGJ5IHVkZXYgJXM9JXNcbiIsIHRva2VuLCB2YWx1ZSkpOworCisJaWYgKCFzdHJjbXAodG9rZW4sICJVVUlEIikpCisJCXN0cmNweShkZXYsIF9QQVRIX0RFVl9CWVVVSUQgIi8iKTsKKwllbHNlIGlmICghc3RyY21wKHRva2VuLCAiTEFCRUwiKSkKKwkJc3RyY3B5KGRldiwgX1BBVEhfREVWX0JZTEFCRUwgIi8iKTsKKwllbHNlIHsKKwkJREJHKERFQlVHX0VWQUxVQVRFLAorCQkgICAgcHJpbnRmKCJ1bnN1cHBvcnRlZCB0b2tlbiAlc1xuIiwgdG9rZW4pKTsKKwkJcmV0dXJuIE5VTEw7CS8qIHVuc3VwcG9ydGVkIHRhZyAqLworCX0KKworCWxlbiA9IHN0cmxlbihkZXYpOworCWlmIChibGtpZF9lbmNvZGVfc3RyaW5nKHZhbHVlLCAmZGV2W2xlbl0sIHNpemVvZihkZXYpIC0gbGVuKSAhPSAwKQorCQlyZXR1cm4gTlVMTDsKKworCURCRyhERUJVR19FVkFMVUFURSwKKwkgICAgcHJpbnRmKCJleHBlY3RlZCB1ZGV2IGxpbms6ICVzXG4iLCBkZXYpKTsKKworCWlmIChzdGF0KGRldiwgJnN0KSkKKwkJZ290byBmYWlsZWQ7CS8qIGxpbmsgb3IgZGV2aWNlIGRvZXMgbm90IGV4aXN0ICovCisKKwlpZiAoIVNfSVNCTEsoc3Quc3RfbW9kZSkpCisJCXJldHVybiBOVUxMOworCisJcGF0aCA9IGNhbm9uaWNhbGl6ZV9wYXRoKGRldik7CisJaWYgKCFwYXRoKQorCQlyZXR1cm4gTlVMTDsKKworCWlmICh2ZXJpZnlfdGFnKHBhdGgsIHRva2VuLCB2YWx1ZSkpCisJCWdvdG8gZmFpbGVkOworCXJldHVybiBwYXRoOworCitmYWlsZWQ6CisJREJHKERFQlVHX0VWQUxVQVRFLCBwcmludGYoImZhaWxlZCB0byBldmFsdWF0ZSBieSB1ZGV2XG4iKSk7CisKKwlpZiAodWV2ZW50ICYmIHBhdGgpCisJCWJsa2lkX3NlbmRfdWV2ZW50KHBhdGgsICJjaGFuZ2UiKTsKKwlmcmVlKHBhdGgpOworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgY2hhciAqZXZhbHVhdGVfYnlfc2Nhbihjb25zdCBjaGFyICp0b2tlbiwgY29uc3QgY2hhciAqdmFsdWUsCisJCWJsa2lkX2NhY2hlICpjYWNoZSwgc3RydWN0IGJsa2lkX2NvbmZpZyAqY29uZikKK3sKKwlibGtpZF9jYWNoZSBjID0gY2FjaGUgPyAqY2FjaGUgOiBOVUxMOworCWNoYXIgKnJlczsKKworCURCRyhERUJVR19FVkFMVUFURSwKKwkgICAgcHJpbnRmKCJldmFsdWF0aW5nIGJ5IGJsa2lkIHNjYW4gJXM9JXNcbiIsIHRva2VuLCB2YWx1ZSkpOworCisJaWYgKCFjKSB7CisJCWNoYXIgKmNhY2hlZmlsZSA9IGJsa2lkX2dldF9jYWNoZV9maWxlbmFtZShjb25mKTsKKwkJYmxraWRfZ2V0X2NhY2hlKCZjLCBjYWNoZWZpbGUpOworCQlmcmVlKGNhY2hlZmlsZSk7CisJfQorCWlmICghYykKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXMgPSBibGtpZF9nZXRfZGV2bmFtZShjLCB0b2tlbiwgdmFsdWUpOworCisJaWYgKGNhY2hlKQorCQkqY2FjaGUgPSBjOworCWVsc2UKKwkJYmxraWRfcHV0X2NhY2hlKGMpOworCisJcmV0dXJuIHJlczsKK30KKworLyoqCisgKiBibGtpZF9ldmFsdWF0ZV90YWc6CisgKiBAdG9rZW46IHRva2VuIG5hbWUgKGUuZyAiTEFCRUwiIG9yICJVVUlEIikKKyAqIEB2YWx1ZTogdG9rZW4gZGF0YQorICogQGNhY2hlOiBwb2ludGVyIHRvIGNhY2hlIChvciBOVUxMIHdoZW4geW91IGRvbid0IHdhbnQgdG8gcmUtdXNlIHRoZSBjYWNoZSkKKyAqCisgKiBSZXR1cm5zOiBhbGxvY2F0ZWQgc3RyaW5nIHdpdGggYSBkZXZpY2UgbmFtZS4KKyAqLworY2hhciAqYmxraWRfZXZhbHVhdGVfdGFnKGNvbnN0IGNoYXIgKnRva2VuLCBjb25zdCBjaGFyICp2YWx1ZSwgYmxraWRfY2FjaGUgKmNhY2hlKQoreworCXN0cnVjdCBibGtpZF9jb25maWcgKmNvbmYgPSBOVUxMOworCWNoYXIgKnQgPSBOVUxMLCAqdiA9IE5VTEw7CisJY2hhciAqcmV0ID0gTlVMTDsKKwlpbnQgaTsKKworCWlmICghdG9rZW4pCisJCXJldHVybiBOVUxMOworCisJaWYgKCFjYWNoZSB8fCAhKmNhY2hlKQorCQlibGtpZF9pbml0X2RlYnVnKDApOworCisJREJHKERFQlVHX0VWQUxVQVRFLAorCSAgICBwcmludGYoImV2YWx1YXRpbmcgICVzJXMlc1xuIiwgdG9rZW4sIHZhbHVlID8gIj0iIDogIiIsCisJCSAgIHZhbHVlID8gdmFsdWUgOiAiIikpOworCisJaWYgKCF2YWx1ZSkgeworCQlpZiAoIXN0cmNocih0b2tlbiwgJz0nKSkgeworCQkJcmV0ID0gYmxraWRfc3RyZHVwKHRva2VuKTsKKwkJCWdvdG8gb3V0OworCQl9CisJCWJsa2lkX3BhcnNlX3RhZ19zdHJpbmcodG9rZW4sICZ0LCAmdik7CisJCWlmICghdCB8fCAhdikKKwkJCWdvdG8gb3V0OworCQl0b2tlbiA9IHQ7CisJCXZhbHVlID0gdjsKKwl9CisKKwljb25mID0gYmxraWRfcmVhZF9jb25maWcoTlVMTCk7CisJaWYgKCFjb25mKQorCQlnb3RvIG91dDsKKworCWZvciAoaSA9IDA7IGkgPCBjb25mLT5uZXZhbHM7IGkrKykgeworCQlpZiAoY29uZi0+ZXZhbFtpXSA9PSBCTEtJRF9FVkFMX1VERVYpCisJCQlyZXQgPSBldmFsdWF0ZV9ieV91ZGV2KHRva2VuLCB2YWx1ZSwgY29uZi0+dWV2ZW50KTsKKwkJZWxzZSBpZiAoY29uZi0+ZXZhbFtpXSA9PSBCTEtJRF9FVkFMX1NDQU4pCisJCQlyZXQgPSBldmFsdWF0ZV9ieV9zY2FuKHRva2VuLCB2YWx1ZSwgY2FjaGUsIGNvbmYpOworCQlpZiAocmV0KQorCQkJYnJlYWs7CisJfQorCisJREJHKERFQlVHX0VWQUxVQVRFLAorCSAgICBwcmludGYoIiVzPSVzIGV2YWx1YXRlZCBhcyAlc1xuIiwgdG9rZW4sIHZhbHVlLCByZXQpKTsKK291dDoKKwlibGtpZF9mcmVlX2NvbmZpZyhjb25mKTsKKwlmcmVlKHQpOworCWZyZWUodik7CisJcmV0dXJuIHJldDsKK30KKworI2lmZGVmIFRFU1RfUFJPR1JBTQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlibGtpZF9jYWNoZSBjYWNoZSA9IE5VTEw7CisJY2hhciAqcmVzOworCisJaWYgKGFyZ2MgPCAzKSB7CisJCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIDx0b2tlbj4gPHZhbHVlPlxuIiwgYXJndlswXSk7CisJCXJldHVybiBFWElUX0ZBSUxVUkU7CisJfQorCisJYmxraWRfaW5pdF9kZWJ1ZygwKTsKKworCXJlcyA9IGJsa2lkX2V2YWx1YXRlX3RhZyhhcmd2WzFdLCBhcmd2WzJdLCAmY2FjaGUpOworCWlmIChyZXMpCisJCXByaW50ZigiJXNcbiIsIHJlcyk7CisJaWYgKGNhY2hlKQorCQlibGtpZF9wdXRfY2FjaGUoY2FjaGUpOworCisJcmV0dXJuIHJlcyA/IEVYSVRfU1VDQ0VTUyA6IEVYSVRfRkFJTFVSRTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9mYXQuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZmF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM2NjQ2NAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZmF0LmgKQEAgLTAsMCArMSw5MCBAQAorI2lmbmRlZiBfQkxLSURfRkFUX0gKKyNkZWZpbmUgX0JMS0lEX0ZBVF9ICisKKy8qIFRoaXMgRkFUIHN1cGVyYmxvY2sgaXMgcmVxdWlyZWQgZm9yOgorICoKKyAqCXN1cGVyYmxvY2tzL3ZmYXQuYworICoJcGFydGl0aW9ucy9kb3MuYworICovCisKKy8qIFl1Y2t5IG1pc2FsaWduZWQgdmFsdWVzICovCitzdHJ1Y3QgdmZhdF9zdXBlcl9ibG9jayB7CisvKiAwMCovCXVuc2lnbmVkIGNoYXIJdnNfaWdub3JlZFszXTsKKy8qIDAzKi8JdW5zaWduZWQgY2hhcgl2c19zeXNpZFs4XTsKKy8qIDBiKi8JdW5zaWduZWQgY2hhcgl2c19zZWN0b3Jfc2l6ZVsyXTsKKy8qIDBkKi8JdWludDhfdAkJdnNfY2x1c3Rlcl9zaXplOworLyogMGUqLwl1aW50MTZfdAl2c19yZXNlcnZlZDsKKy8qIDEwKi8JdWludDhfdAkJdnNfZmF0czsKKy8qIDExKi8JdW5zaWduZWQgY2hhcgl2c19kaXJfZW50cmllc1syXTsKKy8qIDEzKi8JdW5zaWduZWQgY2hhcgl2c19zZWN0b3JzWzJdOworLyogMTUqLwl1bnNpZ25lZCBjaGFyCXZzX21lZGlhOworLyogMTYqLwl1aW50MTZfdAl2c19mYXRfbGVuZ3RoOworLyogMTgqLwl1aW50MTZfdAl2c19zZWNzX3RyYWNrOworLyogMWEqLwl1aW50MTZfdAl2c19oZWFkczsKKy8qIDFjKi8JdWludDMyX3QJdnNfaGlkZGVuOworLyogMjAqLwl1aW50MzJfdAl2c190b3RhbF9zZWN0OworLyogMjQqLwl1aW50MzJfdAl2c19mYXQzMl9sZW5ndGg7CisvKiAyOCovCXVpbnQxNl90CXZzX2ZsYWdzOworLyogMmEqLwl1aW50OF90CQl2c192ZXJzaW9uWzJdOworLyogMmMqLwl1aW50MzJfdAl2c19yb290X2NsdXN0ZXI7CisvKiAzMCovCXVpbnQxNl90CXZzX2ZzaW5mb19zZWN0b3I7CisvKiAzMiovCXVpbnQxNl90CXZzX2JhY2t1cF9ib290OworLyogMzQqLwl1aW50MTZfdAl2c19yZXNlcnZlZDJbNl07CisvKiA0MCovCXVuc2lnbmVkIGNoYXIJdnNfdW5rbm93blszXTsKKy8qIDQzKi8JdW5zaWduZWQgY2hhcgl2c19zZXJub1s0XTsKKy8qIDQ3Ki8JdW5zaWduZWQgY2hhcgl2c19sYWJlbFsxMV07CisvKiA1MiovCXVuc2lnbmVkIGNoYXIgICB2c19tYWdpY1s4XTsKKy8qIDVhKi8JdW5zaWduZWQgY2hhcgl2c19kdW1teTJbMHgxZmUgLSAweDVhXTsKKy8qMWZlKi8JdW5zaWduZWQgY2hhcgl2c19wbWFnaWNbMl07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisvKiBZdWNreSBtaXNhbGlnbmVkIHZhbHVlcyAqLworc3RydWN0IG1zZG9zX3N1cGVyX2Jsb2NrIHsKKy8qIDAwKi8JdW5zaWduZWQgY2hhcgltc19pZ25vcmVkWzNdOworLyogMDMqLwl1bnNpZ25lZCBjaGFyCW1zX3N5c2lkWzhdOworLyogMGIqLwl1bnNpZ25lZCBjaGFyCW1zX3NlY3Rvcl9zaXplWzJdOworLyogMGQqLwl1aW50OF90CQltc19jbHVzdGVyX3NpemU7CisvKiAwZSovCXVpbnQxNl90CW1zX3Jlc2VydmVkOworLyogMTAqLwl1aW50OF90CQltc19mYXRzOworLyogMTEqLwl1bnNpZ25lZCBjaGFyCW1zX2Rpcl9lbnRyaWVzWzJdOworLyogMTMqLwl1bnNpZ25lZCBjaGFyCW1zX3NlY3RvcnNbMl07IC8qID0wIGlmZiBWMyBvciBsYXRlciAqLworLyogMTUqLwl1bnNpZ25lZCBjaGFyCW1zX21lZGlhOworLyogMTYqLwl1aW50MTZfdAltc19mYXRfbGVuZ3RoOyAvKiBTZWN0b3JzIHBlciBGQVQgKi8KKy8qIDE4Ki8JdWludDE2X3QJbXNfc2Vjc190cmFjazsKKy8qIDFhKi8JdWludDE2X3QJbXNfaGVhZHM7CisvKiAxYyovCXVpbnQzMl90CW1zX2hpZGRlbjsKKy8qIFYzIEJQQiAqLworLyogMjAqLwl1aW50MzJfdAltc190b3RhbF9zZWN0OyAvKiBpZmYgbXNfc2VjdG9ycyA9PSAwICovCisvKiBWNCBCUEIgKi8KKy8qIDI0Ki8JdW5zaWduZWQgY2hhcgltc191bmtub3duWzNdOyAvKiBQaHlzIGRyaXZlIG5vLiwgcmVzdmQsIFY0IHNpZyAoMHgyOSkgKi8KKy8qIDI3Ki8JdW5zaWduZWQgY2hhcgltc19zZXJub1s0XTsKKy8qIDJiKi8JdW5zaWduZWQgY2hhcgltc19sYWJlbFsxMV07CisvKiAzNiovCXVuc2lnbmVkIGNoYXIgICBtc19tYWdpY1s4XTsKKy8qIDNlKi8JdW5zaWduZWQgY2hhcgltc19kdW1teTJbMHgxZmUgLSAweDNlXTsKKy8qMWZlKi8JdW5zaWduZWQgY2hhcgltc19wbWFnaWNbMl07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisKK3N0YXRpYyBpbmxpbmUgaW50IGJsa2lkX2ZhdF92YWxpZF9tZWRpYShzdHJ1Y3QgbXNkb3Nfc3VwZXJfYmxvY2sgKm1zKQoreworCXJldHVybiAweGY4IDw9IG1zLT5tc19tZWRpYSB8fCBtcy0+bXNfbWVkaWEgPT0gMHhmMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgYmxraWRfZmF0X3ZhbGlkX3NlY3RvcnNpemUoCisJCQlzdHJ1Y3QgbXNkb3Nfc3VwZXJfYmxvY2sgKm1zLAorCQkJdWludDE2X3QgKnNlY3Rvcl9zaXplKQoreworCXVuc2lnbmVkIGNoYXIgKnRtcCA9ICh1bnNpZ25lZCBjaGFyICopICZtcy0+bXNfc2VjdG9yX3NpemU7CisJdWludDE2X3Qgc3N6OworCisJc3N6ID0gdG1wWzBdICsgKHRtcFsxXSA8PCA4KTsKKworCWlmIChzc3ogIT0gMHgyMDAgJiYgc3N6ICE9IDB4NDAwICYmIHNzeiAhPSAweDgwMCAmJiBzc3ogIT0gMHgxMDAwKQorCQlyZXR1cm4gMDsKKwlpZiAoc2VjdG9yX3NpemUpCisJCSpzZWN0b3Jfc2l6ZSA9IHNzejsKKwlyZXR1cm4gMTsKK30KKworCisjZW5kaWYgLyogX0JMS0lEX0ZBVF9IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL2dldHNpemUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvZ2V0c2l6ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwYmE3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL2dldHNpemUuYwpAQCAtMCwwICsxLDIwNyBAQAorLyoKKyAqIGdldHNpemUuYyAtLS0gZ2V0IHRoZSBzaXplIG9mIGEgcGFydGl0aW9uLgorICoKKyAqIENvcHlyaWdodCAoQykgMTk5NSwgMTk5NSBUaGVvZG9yZSBUcydvLgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2RlZmluZSBfTEFSR0VGSUxFX1NPVVJDRQorI2RlZmluZSBfTEFSR0VGSUxFNjRfU09VUkNFCisKKy8qIGluY2x1ZGUgdGhpcyBiZWZvcmUgc3lzL3F1ZXVlcy5oISAqLworI2luY2x1ZGUgImJsa2lkUC5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpZiBIQVZFX0VSUk5PX0gKKyNpbmNsdWRlIDxlcnJuby5oPgorI2VuZGlmCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpZmRlZiBIQVZFX1NZU19JT0NUTF9ICisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0xJTlVYX0ZEX0gKKyNpbmNsdWRlIDxsaW51eC9mZC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfRElTS0xBQkVMX0gKKyNpbmNsdWRlIDxzeXMvZGlza2xhYmVsLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19ESVNLX0gKKyNpZmRlZiBIQVZFX1NZU19RVUVVRV9ICisjaW5jbHVkZSA8c3lzL3F1ZXVlLmg+IC8qIGZvciBMSVNUX0hFQUQgKi8KKyNlbmRpZgorI2luY2x1ZGUgPHN5cy9kaXNrLmg+CisjZW5kaWYKKyNpZmRlZiBfX2xpbnV4X18KKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorI2VuZGlmCisjaWYgSEFWRV9TWVNfU1RBVF9ICisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorCisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfSU8pICYmICFkZWZpbmVkKEJMS0dFVFNJWkUpCisjZGVmaW5lIEJMS0dFVFNJWkUgX0lPKDB4MTIsOTYpCS8qIHJldHVybiBkZXZpY2Ugc2l6ZSAqLworI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfSU9SKSAmJiAhZGVmaW5lZChCTEtHRVRTSVpFNjQpCisjZGVmaW5lIEJMS0dFVFNJWkU2NCBfSU9SKDB4MTIsMTE0LHNpemVfdCkJLyogcmV0dXJuIGRldmljZSBzaXplIGluIGJ5dGVzICh1NjQgKmFyZykgKi8KKyNlbmRpZgorCisjaWZkZWYgQVBQTEVfREFSV0lOCisjZGVmaW5lIEJMS0dFVFNJWkUgREtJT0NHRVRCTE9DS0NPVU5UMzIKKyNlbmRpZiAvKiBBUFBMRV9EQVJXSU4gKi8KKworc3RhdGljIGludCB2YWxpZF9vZmZzZXQoaW50IGZkLCBibGtpZF9sb2ZmX3Qgb2Zmc2V0KQoreworCWNoYXIgY2g7CisKKwlpZiAoYmxraWRfbGxzZWVrKGZkLCBvZmZzZXQsIDApIDwgMCkKKwkJcmV0dXJuIDA7CisJaWYgKHJlYWQoZmQsICZjaCwgMSkgPCAxKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyBpbiBhIHBhcnRpdGlvbgorICovCitibGtpZF9sb2ZmX3QgYmxraWRfZ2V0X2Rldl9zaXplKGludCBmZCkKK3sKKwlpbnQgdmFsaWRfYmxrZ2V0c2l6ZTY0ID0gMTsKKyNpZmRlZiBfX2xpbnV4X18KKwlzdHJ1Y3QgCQl1dHNuYW1lIHV0OworI2VuZGlmCisJdW5zaWduZWQgbG9uZyBsb25nIHNpemU2NDsKKwl1bnNpZ25lZCBsb25nIHNpemU7CisJYmxraWRfbG9mZl90IGhpZ2gsIGxvdzsKKyNpZmRlZiBGREdFVFBSTQorCXN0cnVjdCBmbG9wcHlfc3RydWN0IHRoaXNfZmxvcHB5OworI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfRElTS0xBQkVMX0gKKwlpbnQgcGFydCA9IC0xOworCXN0cnVjdCBkaXNrbGFiZWwgbGFiOworCXN0cnVjdCBwYXJ0aXRpb24gKnBwOworCWNoYXIgY2g7CisJc3RydWN0IHN0YXQgc3Q7CisjZW5kaWYgLyogSEFWRV9TWVNfRElTS0xBQkVMX0ggKi8KKworI2lmZGVmIERLSU9DR0VUQkxPQ0tDT1VOVAkvKiBGb3IgQXBwbGUgRGFyd2luICovCisJaWYgKGlvY3RsKGZkLCBES0lPQ0dFVEJMT0NLQ09VTlQsICZzaXplNjQpID49IDApIHsKKwkJaWYgKChzaXplb2YoYmxraWRfbG9mZl90KSA8IHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpKQorCQkgICAgJiYgKHNpemU2NCA8PCA5ID4gMHhGRkZGRkZGRikpCisJCQlyZXR1cm4gMDsgLyogRUZCSUcgKi8KKwkJcmV0dXJuIChibGtpZF9sb2ZmX3QpIHNpemU2NCA8PCA5OworCX0KKyNlbmRpZgorCisjaWZkZWYgQkxLR0VUU0laRTY0CisjaWZkZWYgX19saW51eF9fCisJaWYgKCh1bmFtZSgmdXQpID09IDApICYmCisJICAgICgodXQucmVsZWFzZVswXSA9PSAnMicpICYmICh1dC5yZWxlYXNlWzFdID09ICcuJykgJiYKKwkgICAgICh1dC5yZWxlYXNlWzJdIDwgJzYnKSAmJiAodXQucmVsZWFzZVszXSA9PSAnLicpKSkKKwkJdmFsaWRfYmxrZ2V0c2l6ZTY0ID0gMDsKKyNlbmRpZgorCWlmICh2YWxpZF9ibGtnZXRzaXplNjQgJiYKKwkgICAgaW9jdGwoZmQsIEJMS0dFVFNJWkU2NCwgJnNpemU2NCkgPj0gMCkgeworCQlpZiAoKHNpemVvZihibGtpZF9sb2ZmX3QpIDwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykpCisJCSAgICAmJiAoKHNpemU2NCkgPiAweEZGRkZGRkZGKSkKKwkJCXJldHVybiAwOyAvKiBFRkJJRyAqLworCQlyZXR1cm4gc2l6ZTY0OworCX0KKyNlbmRpZgorCisjaWZkZWYgQkxLR0VUU0laRQorCWlmIChpb2N0bChmZCwgQkxLR0VUU0laRSwgJnNpemUpID49IDApCisJCXJldHVybiAoYmxraWRfbG9mZl90KXNpemUgPDwgOTsKKyNlbmRpZgorCisvKiB0ZXN0ZWQgb24gRnJlZUJTRCA2LjEtUkVMRUFTRSBpMzg2ICovCisjaWZkZWYgRElPQ0dNRURJQVNJWkUKKwlpZiAoaW9jdGwoZmQsIERJT0NHTUVESUFTSVpFLCAmc2l6ZTY0KSA+PSAwKQorCQlyZXR1cm4gKG9mZl90KXNpemU2NDsKKyNlbmRpZiAvKiBESU9DR01FRElBU0laRSAqLworCisjaWZkZWYgRkRHRVRQUk0KKwlpZiAoaW9jdGwoZmQsIEZER0VUUFJNLCAmdGhpc19mbG9wcHkpID49IDApCisJCXJldHVybiAoYmxraWRfbG9mZl90KXRoaXNfZmxvcHB5LnNpemUgPDwgOTsKKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX0RJU0tMQUJFTF9ICisJLyoKKwkgKiBUaGlzIGNvZGUgd29ya3MgZm9yIEZyZWVCU0QgNC4xMSBpMzg2LCBleGNlcHQgZm9yIHRoZSBmdWxsIGRldmljZQorCSAqIChzdWNoIGFzIC9kZXYvYWQwKS4gSXQgZG9lc24ndCB3b3JrIHByb3Blcmx5IGZvciBuZXdlciBGcmVlQlNECisJICogdGhvdWdoLiBGcmVlQlNEID49IDUuMCBzaG91bGQgYmUgY292ZXJlZCBieSB0aGUgRElPQ0dNRURJQVNJWkUKKwkgKiBhYm92ZSBob3dldmVyLgorCSAqCisJICogTm90ZSB0aGF0IEZyZWVCU0QgPj0gNC4wIGhhcyBkaXNrIGRldmljZXMgYXMgdW5idWZmZXJlZCAocmF3LAorCSAqIGNoYXJhY3RlcikgZGV2aWNlcywgc28gd2UgbmVlZCB0byBjaGVjayBmb3IgU19JU0NIUiwgdG9vLgorCSAqLworCWlmICgoZnN0YXQoZmQsICZzdCkgPj0gMCkgJiYgKFNfSVNCTEsoc3Quc3RfbW9kZSkgfHwgU19JU0NIUihzdC5zdF9tb2RlKSkpCisJCXBhcnQgPSBzdC5zdF9yZGV2ICYgNzsKKwlpZiAocGFydCA+PSAwICYmIChpb2N0bChmZCwgRElPQ0dESU5GTywgKGNoYXIgKikmbGFiKSA+PSAwKSkgeworCQlwcCA9ICZsYWIuZF9wYXJ0aXRpb25zW3BhcnRdOworCQlpZiAocHAtPnBfc2l6ZSkKKwkJCXJldHVybiBwcC0+cF9zaXplIDw8IDk7CisJfQorI2VuZGlmIC8qIEhBVkVfU1lTX0RJU0tMQUJFTF9IICovCisJeworI2lmZGVmIEhBVkVfRlNUQVQ2NAorCQlzdHJ1Y3Qgc3RhdDY0ICAgc3Q7CisJCWlmIChmc3RhdDY0KGZkLCAmc3QpID09IDApCisjZWxzZQorCQlzdHJ1Y3Qgc3RhdAlzdDsKKwkJaWYgKGZzdGF0KGZkLCAmc3QpID09IDApCisjZW5kaWYKKwkJCWlmIChTX0lTUkVHKHN0LnN0X21vZGUpKQorCQkJCXJldHVybiBzdC5zdF9zaXplOworCX0KKworCisJLyoKKwkgKiBPSywgd2UgY291bGRuJ3QgZmlndXJlIGl0IG91dCBieSB1c2luZyBhIHNwZWNpYWxpemVkIGlvY3RsLAorCSAqIHdoaWNoIGlzIGdlbmVyYWxseSB0aGUgYmVzdCB3YXkuICBTbyBkbyBiaW5hcnkgc2VhcmNoIHRvCisJICogZmluZCB0aGUgc2l6ZSBvZiB0aGUgcGFydGl0aW9uLgorCSAqLworCWxvdyA9IDA7CisJZm9yIChoaWdoID0gMTAyNDsgdmFsaWRfb2Zmc2V0KGZkLCBoaWdoKTsgaGlnaCAqPSAyKQorCQlsb3cgPSBoaWdoOworCXdoaWxlIChsb3cgPCBoaWdoIC0gMSkKKwl7CisJCWNvbnN0IGJsa2lkX2xvZmZfdCBtaWQgPSAobG93ICsgaGlnaCkgLyAyOworCisJCWlmICh2YWxpZF9vZmZzZXQoZmQsIG1pZCkpCisJCQlsb3cgPSBtaWQ7CisJCWVsc2UKKwkJCWhpZ2ggPSBtaWQ7CisJfQorCXJldHVybiBsb3cgKyAxOworfQorCisjaWZkZWYgVEVTVF9QUk9HUkFNCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJbG9uZyBsb25nIGJ5dGVzOworCWludAlmZDsKKworCWlmIChhcmdjIDwgMikgeworCQlmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiAlcyBkZXZpY2VcbiIKKwkJCSJEZXRlcm1pbmUgdGhlIHNpemUgb2YgYSBkZXZpY2VcbiIsIGFyZ3ZbMF0pOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoKGZkID0gb3Blbihhcmd2WzFdLCBPX1JET05MWSkpIDwgMCkKKwkJcGVycm9yKGFyZ3ZbMF0pOworCisJYnl0ZXMgPSBibGtpZF9nZXRfZGV2X3NpemUoZmQpOworCXByaW50ZigiRGV2aWNlICVzIGhhcyAlTGQgMWsgYmxvY2tzLlxuIiwgYXJndlsxXSwKKwkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgYnl0ZXMgPj4gMTApOworCisJcmV0dXJuIDA7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvbGlzdC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9saXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFjYmZlYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvbGlzdC5oCkBAIC0wLDAgKzEsMTc5IEBACisjaWYgIWRlZmluZWQoX0JMS0lEX0xJU1RfSCkgJiYgIWRlZmluZWQoTElTVF9IRUFEKQorI2RlZmluZSBfQkxLSURfTElTVF9ICisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI2lmZGVmIF9fR05VQ19fCisjZGVmaW5lIF9JTkxJTkVfIHN0YXRpYyBfX2lubGluZV9fCisjZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGb3IgV2F0Y29tIEMgKi8KKyNkZWZpbmUgX0lOTElORV8gc3RhdGljIGlubGluZQorI2VuZGlmCisKKy8qCisgKiBTaW1wbGUgZG91Ymx5IGxpbmtlZCBsaXN0IGltcGxlbWVudGF0aW9uLgorICoKKyAqIFNvbWUgb2YgdGhlIGludGVybmFsIGZ1bmN0aW9ucyAoIl9feHh4IikgYXJlIHVzZWZ1bCB3aGVuCisgKiBtYW5pcHVsYXRpbmcgd2hvbGUgbGlzdHMgcmF0aGVyIHRoYW4gc2luZ2xlIGVudHJpZXMsIGFzCisgKiBzb21ldGltZXMgd2UgYWxyZWFkeSBrbm93IHRoZSBuZXh0L3ByZXYgZW50cmllcyBhbmQgd2UgY2FuCisgKiBnZW5lcmF0ZSBiZXR0ZXIgY29kZSBieSB1c2luZyB0aGVtIGRpcmVjdGx5IHJhdGhlciB0aGFuCisgKiB1c2luZyB0aGUgZ2VuZXJpYyBzaW5nbGUtZW50cnkgcm91dGluZXMuCisgKi8KKworc3RydWN0IGxpc3RfaGVhZCB7CisJc3RydWN0IGxpc3RfaGVhZCAqbmV4dCwgKnByZXY7Cit9OworCisjZGVmaW5lIExJU1RfSEVBRF9JTklUKG5hbWUpIHsgJihuYW1lKSwgJihuYW1lKSB9CisKKyNkZWZpbmUgTElTVF9IRUFEKG5hbWUpIFwKKwlzdHJ1Y3QgbGlzdF9oZWFkIG5hbWUgPSBMSVNUX0hFQURfSU5JVChuYW1lKQorCisjZGVmaW5lIElOSVRfTElTVF9IRUFEKHB0cikgZG8geyBcCisJKHB0ciktPm5leHQgPSAocHRyKTsgKHB0ciktPnByZXYgPSAocHRyKTsgXAorfSB3aGlsZSAoMCkKKworLyoKKyAqIEluc2VydCBhIG5ldyBlbnRyeSBiZXR3ZWVuIHR3byBrbm93biBjb25zZWN1dGl2ZSBlbnRyaWVzLgorICoKKyAqIFRoaXMgaXMgb25seSBmb3IgaW50ZXJuYWwgbGlzdCBtYW5pcHVsYXRpb24gd2hlcmUgd2Uga25vdworICogdGhlIHByZXYvbmV4dCBlbnRyaWVzIGFscmVhZHkhCisgKi8KK19JTkxJTkVfIHZvaWQgX19saXN0X2FkZChzdHJ1Y3QgbGlzdF9oZWFkICogYWRkLAorCXN0cnVjdCBsaXN0X2hlYWQgKiBwcmV2LAorCXN0cnVjdCBsaXN0X2hlYWQgKiBuZXh0KQoreworCW5leHQtPnByZXYgPSBhZGQ7CisJYWRkLT5uZXh0ID0gbmV4dDsKKwlhZGQtPnByZXYgPSBwcmV2OworCXByZXYtPm5leHQgPSBhZGQ7Cit9CisKKy8qKgorICogbGlzdF9hZGQgLSBhZGQgYSBuZXcgZW50cnkKKyAqIEBhZGQ6CW5ldyBlbnRyeSB0byBiZSBhZGRlZAorICogQGhlYWQ6CWxpc3QgaGVhZCB0byBhZGQgaXQgYWZ0ZXIKKyAqCisgKiBJbnNlcnQgYSBuZXcgZW50cnkgYWZ0ZXIgdGhlIHNwZWNpZmllZCBoZWFkLgorICogVGhpcyBpcyBnb29kIGZvciBpbXBsZW1lbnRpbmcgc3RhY2tzLgorICovCitfSU5MSU5FXyB2b2lkIGxpc3RfYWRkKHN0cnVjdCBsaXN0X2hlYWQgKmFkZCwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKK3sKKwlfX2xpc3RfYWRkKGFkZCwgaGVhZCwgaGVhZC0+bmV4dCk7Cit9CisKKy8qKgorICogbGlzdF9hZGRfdGFpbCAtIGFkZCBhIG5ldyBlbnRyeQorICogQGFkZDoJbmV3IGVudHJ5IHRvIGJlIGFkZGVkCisgKiBAaGVhZDoJbGlzdCBoZWFkIHRvIGFkZCBpdCBiZWZvcmUKKyAqCisgKiBJbnNlcnQgYSBuZXcgZW50cnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaGVhZC4KKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcXVldWVzLgorICovCitfSU5MSU5FXyB2b2lkIGxpc3RfYWRkX3RhaWwoc3RydWN0IGxpc3RfaGVhZCAqYWRkLCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoreworCV9fbGlzdF9hZGQoYWRkLCBoZWFkLT5wcmV2LCBoZWFkKTsKK30KKworLyoKKyAqIERlbGV0ZSBhIGxpc3QgZW50cnkgYnkgbWFraW5nIHRoZSBwcmV2L25leHQgZW50cmllcworICogcG9pbnQgdG8gZWFjaCBvdGhlci4KKyAqCisgKiBUaGlzIGlzIG9ubHkgZm9yIGludGVybmFsIGxpc3QgbWFuaXB1bGF0aW9uIHdoZXJlIHdlIGtub3cKKyAqIHRoZSBwcmV2L25leHQgZW50cmllcyBhbHJlYWR5IQorICovCitfSU5MSU5FXyB2b2lkIF9fbGlzdF9kZWwoc3RydWN0IGxpc3RfaGVhZCAqIHByZXYsCisJCQkJICBzdHJ1Y3QgbGlzdF9oZWFkICogbmV4dCkKK3sKKwluZXh0LT5wcmV2ID0gcHJldjsKKwlwcmV2LT5uZXh0ID0gbmV4dDsKK30KKworLyoqCisgKiBsaXN0X2RlbCAtIGRlbGV0ZXMgZW50cnkgZnJvbSBsaXN0LgorICogQGVudHJ5Ogl0aGUgZWxlbWVudCB0byBkZWxldGUgZnJvbSB0aGUgbGlzdC4KKyAqCisgKiBsaXN0X2VtcHR5KCkgb24gQGVudHJ5IGRvZXMgbm90IHJldHVybiB0cnVlIGFmdGVyIHRoaXMsIEBlbnRyeSBpcworICogaW4gYW4gdW5kZWZpbmVkIHN0YXRlLgorICovCitfSU5MSU5FXyB2b2lkIGxpc3RfZGVsKHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQoreworCV9fbGlzdF9kZWwoZW50cnktPnByZXYsIGVudHJ5LT5uZXh0KTsKK30KKworLyoqCisgKiBsaXN0X2RlbF9pbml0IC0gZGVsZXRlcyBlbnRyeSBmcm9tIGxpc3QgYW5kIHJlaW5pdGlhbGl6ZSBpdC4KKyAqIEBlbnRyeToJdGhlIGVsZW1lbnQgdG8gZGVsZXRlIGZyb20gdGhlIGxpc3QuCisgKi8KK19JTkxJTkVfIHZvaWQgbGlzdF9kZWxfaW5pdChzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeSkKK3sKKwlfX2xpc3RfZGVsKGVudHJ5LT5wcmV2LCBlbnRyeS0+bmV4dCk7CisJSU5JVF9MSVNUX0hFQUQoZW50cnkpOworfQorCisvKioKKyAqIGxpc3RfZW1wdHkgLSB0ZXN0cyB3aGV0aGVyIGEgbGlzdCBpcyBlbXB0eQorICogQGhlYWQ6CXRoZSBsaXN0IHRvIHRlc3QuCisgKi8KK19JTkxJTkVfIGludCBsaXN0X2VtcHR5KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCit7CisJcmV0dXJuIGhlYWQtPm5leHQgPT0gaGVhZDsKK30KKworLyoqCisgKiBsaXN0X3NwbGljZSAtIGpvaW4gdHdvIGxpc3RzCisgKiBAbGlzdDoJdGhlIG5ldyBsaXN0IHRvIGFkZC4KKyAqIEBoZWFkOgl0aGUgcGxhY2UgdG8gYWRkIGl0IGluIHRoZSBmaXJzdCBsaXN0LgorICovCitfSU5MSU5FXyB2b2lkIGxpc3Rfc3BsaWNlKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqZmlyc3QgPSBsaXN0LT5uZXh0OworCisJaWYgKGZpcnN0ICE9IGxpc3QpIHsKKwkJc3RydWN0IGxpc3RfaGVhZCAqbGFzdCA9IGxpc3QtPnByZXY7CisJCXN0cnVjdCBsaXN0X2hlYWQgKmF0ID0gaGVhZC0+bmV4dDsKKworCQlmaXJzdC0+cHJldiA9IGhlYWQ7CisJCWhlYWQtPm5leHQgPSBmaXJzdDsKKworCQlsYXN0LT5uZXh0ID0gYXQ7CisJCWF0LT5wcmV2ID0gbGFzdDsKKwl9Cit9CisKKy8qKgorICogbGlzdF9lbnRyeSAtIGdldCB0aGUgc3RydWN0IGZvciB0aGlzIGVudHJ5CisgKiBAcHRyOgl0aGUgJnN0cnVjdCBsaXN0X2hlYWQgcG9pbnRlci4KKyAqIEB0eXBlOgl0aGUgdHlwZSBvZiB0aGUgc3RydWN0IHRoaXMgaXMgZW1iZWRkZWQgaW4uCisgKiBAbWVtYmVyOgl0aGUgbmFtZSBvZiB0aGUgbGlzdF9zdHJ1Y3Qgd2l0aGluIHRoZSBzdHJ1Y3QuCisgKi8KKyNkZWZpbmUgbGlzdF9lbnRyeShwdHIsIHR5cGUsIG1lbWJlcikgXAorCSgodHlwZSAqKSgoY2hhciAqKShwdHIpLSh1bnNpZ25lZCBsb25nKSgmKCh0eXBlICopMCktPm1lbWJlcikpKQorCisvKioKKyAqIGxpc3RfZm9yX2VhY2ggLSBpdGVyYXRlIG92ZXIgZWxlbWVudHMgaW4gYSBsaXN0CisgKiBAcG9zOgl0aGUgJnN0cnVjdCBsaXN0X2hlYWQgdG8gdXNlIGFzIGEgbG9vcCBjb3VudGVyLgorICogQGhlYWQ6CXRoZSBoZWFkIGZvciB5b3VyIGxpc3QuCisgKi8KKyNkZWZpbmUgbGlzdF9mb3JfZWFjaChwb3MsIGhlYWQpIFwKKwlmb3IgKHBvcyA9IChoZWFkKS0+bmV4dDsgcG9zICE9IChoZWFkKTsgcG9zID0gcG9zLT5uZXh0KQorCisvKioKKyAqIGxpc3RfZm9yX2VhY2hfc2FmZSAtIGl0ZXJhdGUgb3ZlciBlbGVtZW50cyBpbiBhIGxpc3QsIGJ1dCBkb24ndCBkZXJlZmVyZW5jZQorICogICAgICAgICAgICAgICAgICAgICAgcG9zIGFmdGVyIHRoZSBib2R5IGlzIGRvbmUgKGluIGNhc2UgaXQgaXMgZnJlZWQpCisgKiBAcG9zOgl0aGUgJnN0cnVjdCBsaXN0X2hlYWQgdG8gdXNlIGFzIGEgbG9vcCBjb3VudGVyLgorICogQHBuZXh0Ogl0aGUgJnN0cnVjdCBsaXN0X2hlYWQgdG8gdXNlIGFzIGEgcG9pbnRlciB0byB0aGUgbmV4dCBpdGVtLgorICogQGhlYWQ6CXRoZSBoZWFkIGZvciB5b3VyIGxpc3QgKG5vdCBpbmNsdWRlZCBpbiBpdGVyYXRpb24pLgorICovCisjZGVmaW5lIGxpc3RfZm9yX2VhY2hfc2FmZShwb3MsIHBuZXh0LCBoZWFkKSBcCisJZm9yIChwb3MgPSAoaGVhZCktPm5leHQsIHBuZXh0ID0gcG9zLT5uZXh0OyBwb3MgIT0gKGhlYWQpOyBcCisJICAgICBwb3MgPSBwbmV4dCwgcG5leHQgPSBwb3MtPm5leHQpCisKKyN1bmRlZiBfSU5MSU5FXworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogX0JMS0lEX0xJU1RfSCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9sbHNlZWsuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvbGxzZWVrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzViN2QyNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvbGxzZWVrLmMKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBsbHNlZWsuYyAtLSBzdHViIGNhbGxpbmcgdGhlIGxsc2VlayBzeXN0ZW0gY2FsbAorICoKKyAqIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NyBUaGVvZG9yZSBUcydvLgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2RlZmluZSBfTEFSR0VGSUxFX1NPVVJDRQorI2RlZmluZSBfTEFSR0VGSUxFNjRfU09VUkNFCisKKyNpZiBIQVZFX1NZU19UWVBFU19ICisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKworI2lmIEhBVkVfRVJSTk9fSAorI2luY2x1ZGUgPGVycm5vLmg+CisjZW5kaWYKKyNpZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpZmRlZiBfX01TRE9TX18KKyNpbmNsdWRlIDxpby5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJibGtpZFAuaCIKKworI2lmZGVmIF9fbGludXhfXworCisjaWYgZGVmaW5lZChIQVZFX0xTRUVLNjQpICYmIGRlZmluZWQoSEFWRV9MU0VFSzY0X1BST1RPVFlQRSkgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorCisjZGVmaW5lIG15X2xsc2VlayBsc2VlazY0CisKKyNlbGlmIGRlZmluZWQoSEFWRV9MTFNFRUspCisjaW5jbHVkZSA8c3lzY2FsbC5oPgorCisjaWZuZGVmIEhBVkVfTExTRUVLX1BST1RPVFlQRQorZXh0ZXJuIGxvbmcgbG9uZyBsbHNlZWsoaW50IGZkLCBsb25nIGxvbmcgb2Zmc2V0LCBpbnQgb3JpZ2luKTsKKyNlbmRpZgorCisjZGVmaW5lIG15X2xsc2VlayBsbHNlZWsKKworI2Vsc2UJLyogISBIQVZFX0xMU0VFSyAqLworCisjaWYgU0laRU9GX0xPTkcgPT0gU0laRU9GX0xPTkdfTE9ORworCisjZGVmaW5lIGxsc2VlayBsc2VlaworCisjZWxzZSAvKiBTSVpFT0ZfTE9ORyAhPSBTSVpFT0ZfTE9OR19MT05HICovCisKKyNpbmNsdWRlIDxsaW51eC91bmlzdGQuaD4KKworI2lmbmRlZiBfX05SX19sbHNlZWsKKyNkZWZpbmUgX19OUl9fbGxzZWVrICAgICAgICAgICAgMTQwCisjZW5kaWYKKworI2lmbmRlZiBfX2kzODZfXworc3RhdGljIGludCBfbGxzZWVrKHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywKKwkJICAgYmxraWRfbG9mZl90ICosIHVuc2lnbmVkIGludCk7CisKK3N0YXRpYyBfc3lzY2FsbDUoaW50LCBfbGxzZWVrLCB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBsb25nLCBvZmZzZXRfaGlnaCwKKwkJIHVuc2lnbmVkIGxvbmcsIG9mZnNldF9sb3csIGJsa2lkX2xvZmZfdCAqLCByZXN1bHQsCisJCSB1bnNpZ25lZCBpbnQsIG9yaWdpbikKKyNlbmRpZgorCitzdGF0aWMgYmxraWRfbG9mZl90IG15X2xsc2VlayhpbnQgZmQsIGJsa2lkX2xvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCit7CisJYmxraWRfbG9mZl90IHJlc3VsdDsKKwlpbnQgcmV0dmFsOworCisjaWZuZGVmIF9faTM4Nl9fCisJcmV0dmFsID0gX2xsc2VlayhmZCwgKCh1bnNpZ25lZCBsb25nIGxvbmcpIG9mZnNldCkgPj4gMzIsCisJCQkgKCh1bnNpZ25lZCBsb25nIGxvbmcpb2Zmc2V0KSAmIDB4ZmZmZmZmZmYsCisJCQkgJnJlc3VsdCwgb3JpZ2luKTsKKyNlbHNlCisJcmV0dmFsID0gc3lzY2FsbChfX05SX19sbHNlZWssIGZkLCAoKHVuc2lnbmVkIGxvbmcgbG9uZykgb2Zmc2V0KSA+PiAzMiwKKwkJCSAoKHVuc2lnbmVkIGxvbmcgbG9uZylvZmZzZXQpICYgMHhmZmZmZmZmZiwKKwkJCSAmcmVzdWx0LCBvcmlnaW4pOworI2VuZGlmCisJcmV0dXJuIChyZXR2YWwgPT0gLTEgPyAoYmxraWRfbG9mZl90KSByZXR2YWwgOiByZXN1bHQpOworfQorCisjZW5kaWYJLyogX19hbHBoYV9fIHx8IF9faWE2NF9fICovCisKKyNlbmRpZiAvKiBIQVZFX0xMU0VFSyAqLworCitibGtpZF9sb2ZmX3QgYmxraWRfbGxzZWVrKGludCBmZCwgYmxraWRfbG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSkKK3sKKwlibGtpZF9sb2ZmX3QgcmVzdWx0OworCXN0YXRpYyBpbnQgZG9fY29tcGF0ID0gMDsKKworCWlmICgoc2l6ZW9mKG9mZl90KSA+PSBzaXplb2YoYmxraWRfbG9mZl90KSkgfHwKKwkgICAgKG9mZnNldCA8ICgoYmxraWRfbG9mZl90KSAxIDw8ICgoc2l6ZW9mKG9mZl90KSo4KSAtMSkpKSkKKwkJcmV0dXJuIGxzZWVrKGZkLCAob2ZmX3QpIG9mZnNldCwgd2hlbmNlKTsKKworCWlmIChkb19jb21wYXQpIHsKKwkJZXJybm8gPSBFT1ZFUkZMT1c7CisJCXJldHVybiAtMTsKKwl9CisKKwlyZXN1bHQgPSBteV9sbHNlZWsoZmQsIG9mZnNldCwgd2hlbmNlKTsKKwlpZiAocmVzdWx0ID09IC0xICYmIGVycm5vID09IEVOT1NZUykgeworCQkvKgorCQkgKiBKdXN0IGluIGNhc2UgdGhpcyBjb2RlIHJ1bnMgb24gdG9wIG9mIGFuIG9sZCBrZXJuZWwKKwkJICogd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCB0aGUgbGxzZWVrIHN5c3RlbSBjYWxsCisJCSAqLworCQlkb19jb21wYXQrKzsKKwkJZXJybm8gPSBFT1ZFUkZMT1c7CisJfQorCXJldHVybiByZXN1bHQ7Cit9CisKKyNlbHNlIC8qICFsaW51eCAqLworCisjaWZuZGVmIEVPVkVSRkxPVworI2lmZGVmIEVYVDJfRVRfSU5WQUxJRF9BUkdVTUVOVAorI2RlZmluZSBFT1ZFUkZMT1cgRVhUMl9FVF9JTlZBTElEX0FSR1VNRU5UCisjZWxzZQorI2RlZmluZSBFT1ZFUkZMT1cgMTEyCisjZW5kaWYKKyNlbmRpZgorCitibGtpZF9sb2ZmX3QgYmxraWRfbGxzZWVrKGludCBmZCwgYmxraWRfbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKK3sKKyNpZiBkZWZpbmVkKEhBVkVfTFNFRUs2NCkgJiYgZGVmaW5lZChIQVZFX0xTRUVLNjRfUFJPVE9UWVBFKQorCXJldHVybiBsc2VlazY0IChmZCwgb2Zmc2V0LCBvcmlnaW4pOworI2Vsc2UKKwlpZiAoKHNpemVvZihvZmZfdCkgPCBzaXplb2YoYmxraWRfbG9mZl90KSkgJiYKKwkgICAgKG9mZnNldCA+PSAoKGJsa2lkX2xvZmZfdCkgMSA8PCAoKHNpemVvZihvZmZfdCkqOCkgLSAxKSkpKSB7CisJCWVycm5vID0gRU9WRVJGTE9XOworCQlyZXR1cm4gLTE7CisJfQorCXJldHVybiBsc2VlayhmZCwgKG9mZl90KSBvZmZzZXQsIG9yaWdpbik7CisjZW5kaWYKK30KKworI2VuZGlmCS8qIGxpbnV4ICovCisKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhZjIwMjIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwyMSBAQAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCisKK0FNX0NQUEZMQUdTICs9IC1JJCh1bF9saWJibGtpZF9pbmNkaXIpIC1JJCh1bF9saWJibGtpZF9zcmNkaXIpCitsaWJibGtpZF9wYXJ0aXRpb25zX2xhX0xJQkFERCA9CisKK25vaW5zdF9MVExJQlJBUklFUyA9IGxpYmJsa2lkX3BhcnRpdGlvbnMubGEKK2xpYmJsa2lkX3BhcnRpdGlvbnNfbGFfU09VUkNFUyA9IHBhcnRpdGlvbnMuYyBcCisJCQkJcGFydGl0aW9ucy5oIFwKKwkJCQlibGtpZF9wYXJ0dHlwZXMuaCBcCisJCQkJYWl4LmMgXAorCQkJCWFpeC5oIFwKKwkJCQlic2QuYyBcCisJCQkJdW5peHdhcmUuYyBcCisJCQkJc29sYXJpc194ODYuYyBcCisJCQkJc3VuLmMgXAorCQkJCXNnaS5jIFwKKwkJCQltYWMuYyBcCisJCQkJZG9zLmMgXAorCQkJCWRvcy5oIFwKKwkJCQltaW5peC5jIFwKKwkJCQlncHQuYwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4YzRlZDkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw1ODkgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKKworVlBBVEggPSBAc3JjZGlyQAorcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACitwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorRElTVF9DT01NT04gPSAkKGRpc3Rfbm9pbnN0X0RBVEEpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK3N1YmRpciA9IHNobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorTFRMSUJSQVJJRVMgPSAkKG5vaW5zdF9MVExJQlJBUklFUykKK2xpYmJsa2lkX3BhcnRpdGlvbnNfbGFfREVQRU5ERU5DSUVTID0KK2FtX2xpYmJsa2lkX3BhcnRpdGlvbnNfbGFfT0JKRUNUUyA9IHBhcnRpdGlvbnMubG8gYWl4LmxvIGJzZC5sbyBcCisJdW5peHdhcmUubG8gc29sYXJpc194ODYubG8gc3VuLmxvIHNnaS5sbyBtYWMubG8gZG9zLmxvIFwKKwltaW5peC5sbyBncHQubG8KK2xpYmJsa2lkX3BhcnRpdGlvbnNfbGFfT0JKRUNUUyA9ICQoYW1fbGliYmxraWRfcGFydGl0aW9uc19sYV9PQkpFQ1RTKQorQU1fVl9sdCA9ICQoYW1fX3ZfbHRfJChWKSkKK2FtX192X2x0XyA9ICQoYW1fX3ZfbHRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9sdF8wID0gLS1zaWxlbnQKK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpCitkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKK2FtX19tdiA9IG12IC1mCitDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitMVENPTVBJTEUgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSBcCisJJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSBcCisJJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorQU1fVl9DQyA9ICQoYW1fX3ZfQ0NfJChWKSkKK2FtX192X0NDXyA9ICQoYW1fX3ZfQ0NfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ18wID0gQGVjaG8gIiAgQ0MgICAgIiAkQDsKK0FNX1ZfYXQgPSAkKGFtX192X2F0XyQoVikpCithbV9fdl9hdF8gPSAkKGFtX192X2F0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfYXRfMCA9IEAKK0NDTEQgPSAkKENDKQorTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorQU1fVl9DQ0xEID0gJChhbV9fdl9DQ0xEXyQoVikpCithbV9fdl9DQ0xEXyA9ICQoYW1fX3ZfQ0NMRF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDTERfMCA9IEBlY2hvICIgIENDTEQgICIgJEA7CitBTV9WX0dFTiA9ICQoYW1fX3ZfR0VOXyQoVikpCithbV9fdl9HRU5fID0gJChhbV9fdl9HRU5fJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9HRU5fMCA9IEBlY2hvICIgIEdFTiAgICIgJEA7CitTT1VSQ0VTID0gJChsaWJibGtpZF9wYXJ0aXRpb25zX2xhX1NPVVJDRVMpCitESVNUX1NPVVJDRVMgPSAkKGxpYmJsa2lkX3BhcnRpdGlvbnNfbGFfU09VUkNFUykKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCBcCisJLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIiBcCisJLUkkKHVsX2xpYmJsa2lkX2luY2RpcikgLUkkKHVsX2xpYmJsa2lkX3NyY2RpcikKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitsaWJibGtpZF9wYXJ0aXRpb25zX2xhX0xJQkFERCA9IAorbm9pbnN0X0xUTElCUkFSSUVTID0gbGliYmxraWRfcGFydGl0aW9ucy5sYQorbGliYmxraWRfcGFydGl0aW9uc19sYV9TT1VSQ0VTID0gcGFydGl0aW9ucy5jIFwKKwkJCQlwYXJ0aXRpb25zLmggXAorCQkJCWJsa2lkX3BhcnR0eXBlcy5oIFwKKwkJCQlhaXguYyBcCisJCQkJYWl4LmggXAorCQkJCWJzZC5jIFwKKwkJCQl1bml4d2FyZS5jIFwKKwkJCQlzb2xhcmlzX3g4Ni5jIFwKKwkJCQlzdW4uYyBcCisJCQkJc2dpLmMgXAorCQkJCW1hYy5jIFwKKwkJCQlkb3MuYyBcCisJCQkJZG9zLmggXAorCQkJCW1pbml4LmMgXAorCQkJCWdwdC5jCisKK2FsbDogYWxsLWFtCisKKy5TVUZGSVhFUzoKKy5TVUZGSVhFUzogLmMgLmxvIC5vIC5vYmoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiBzaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduIHNobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisKK2NsZWFuLW5vaW5zdExUTElCUkFSSUVTOgorCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobm9pbnN0X0xUTElCUkFSSUVTKQorCUBsaXN0PSckKG5vaW5zdF9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwKKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRpb25zIjsgXAorCWRvbmUKK2xpYmJsa2lkX3BhcnRpdGlvbnMubGE6ICQobGliYmxraWRfcGFydGl0aW9uc19sYV9PQkpFQ1RTKSAkKGxpYmJsa2lkX3BhcnRpdGlvbnNfbGFfREVQRU5ERU5DSUVTKSAKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICAkKGxpYmJsa2lkX3BhcnRpdGlvbnNfbGFfT0JKRUNUUykgJChsaWJibGtpZF9wYXJ0aXRpb25zX2xhX0xJQkFERCkgJChMSUJTKQorCittb3N0bHljbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLiQoT0JKRVhUKQorCitkaXN0Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi50YWIuYworCitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvYWl4LlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvYnNkLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZG9zLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZ3B0LlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWFjLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWluaXguUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9wYXJ0aXRpb25zLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc2dpLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc29sYXJpc194ODYuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zdW4uUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bml4d2FyZS5QbG9AYW1fX3F1b3RlQAorCisuYy5vOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyAkPAorCisuYy5vYmo6CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgYCQoQ1lHUEFUSF9XKSAnJDwnYAorCisuYy5sbzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKExUQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKExUQ09NUElMRSkgLWMgLW8gJEAgJDwKKworbW9zdGx5Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgKi5sbworCitjbGVhbi1saWJ0b29sOgorCS1ybSAtcmYgLmxpYnMgX2xpYnMKKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChEQVRBKQoraW5zdGFsbGRpcnM6CitpbnN0YWxsOiBpbnN0YWxsLWFtCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVMgXAorCW1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktYW0KKworZHZpLWFtOgorCitodG1sOiBodG1sLWFtCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tYW0KKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbToKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1hbQorCitwZGYtYW06CisKK3BzOiBwcy1hbQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOgorCisuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisKKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGN0YWdzIGRpc3RjbGVhbiBcCisJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAorCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworJCh1bF9saWJ1dWlkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGlidXVpZF9idWlsZGRpcikKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL2FpeC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL2FpeC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMGFkMmIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvYWl4LmMKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIGFpeCBwYXJ0aXRpb25zCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAicGFydGl0aW9ucy5oIgorI2luY2x1ZGUgImFpeC5oIgorCitzdGF0aWMgaW50IHByb2JlX2FpeF9wdChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJYmxraWRfcGFydGxpc3QgbHM7CisJYmxraWRfcGFydHRhYmxlIHRhYjsKKworCWlmIChibGtpZF9wYXJ0aXRpb25zX25lZWRfdHlwZW9ubHkocHIpKQorCQkvKiBjYWxsZXIgZG9lcyBub3QgYXNrIGZvciBkZXRhaWxzIGFib3V0IHBhcnRpdGlvbnMgKi8KKwkJcmV0dXJuIDA7CisKKwlscyA9IGJsa2lkX3Byb2JlX2dldF9wYXJ0bGlzdChwcik7CisJaWYgKCFscykKKwkJZ290byBlcnI7CisKKwl0YWIgPSBibGtpZF9wYXJ0bGlzdF9uZXdfcGFydHRhYmxlKGxzLCAiYWl4IiwgMCk7CisJaWYgKCF0YWIpCisJCWdvdG8gZXJyOworCisJcmV0dXJuIDA7CitlcnI6CisJcmV0dXJuIC0xOworfQorCisvKgorICogV2Uga25vdyBub3RoaW5nIGFib3V0IEFJWCBvbi1kaXNrIHN0cnVjdHVyZXMuIEV2ZXJ5dGhpbmcgd2hhdCB3ZSBrbm93IGlzIHRoZQorICogbWFnaWMgbnVtYmVyIGF0IGJlZ2luIG9mIHRoZSBkaXNrLgorICoKKyAqIE5vdGUsIExpbnV4IGtlcm5lbCBpcyB0cmluZyB0byBiZSBzbWFydCBhbmQgQUlYIHNpZ25hdHVyZSBpcyBpZ25vcmVkIHdoZW4KKyAqIHRoZXJlIGlzIGEgdmFsaWQgRE9TIHBhcnRpdGlvbnMgdGFibGUuIFdlIGRvbid0IHN1cHBvcnQgc3VjaCBiZWhhdmlvdXIuIEFsbAorICogZmRpc2stbGlrZSBwcm9ncmFtcyBoYXMgdG8gcHJvcGVybHkgd2lwZSB0aGUgZmlzdCBzZWN0b3IuIEV2ZXJ5dGhpbmcgb3RoZXIKKyAqIGlzIGEgYnVnLgorICovCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGFpeF9wdF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJhaXgiLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9haXhfcHQsCisJLm1hZ2ljcwkJPQorCXsKKwkJeyAubWFnaWMgPSBCTEtJRF9BSVhfTUFHSUNfU1RSSU5HLCAubGVuID0gQkxLSURfQUlYX01BR0lDX1NUUkxFTiB9LAorCQl7IE5VTEwgfQorCX0KK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9haXguaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9haXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzY3YzVhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL2FpeC5oCkBAIC0wLDAgKzEsNyBAQAorI2lmbmRlZiBCTEtJRF9QQVJUSVRJT05TX0FJWF9ICisjZGVmaW5lIEJMS0lEX1BBUlRJVElPTlNfQUlYX0gKKworI2RlZmluZSBCTEtJRF9BSVhfTUFHSUNfU1RSSU5HCSJceEM5XHhDMlx4RDRceEMxIgorI2RlZmluZSBCTEtJRF9BSVhfTUFHSUNfU1RSTEVOCShzaXplb2YoQkxLSURfQUlYX01BR0lDX1NUUklORykgLSAxKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9ibGtpZF9wYXJ0dHlwZXMuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9ibGtpZF9wYXJ0dHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDdlNTNkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL2Jsa2lkX3BhcnR0eXBlcy5oCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogUGFydGl0aW9uIHR5cGVzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3ICBVU0EKKyAqLworCisvKiBOb3RlLCBfTDMyTSBtZWFucyA8MzJNIChsZXNzKSwgZm9yIGV4YW1wbGUgRkFUMTZfTDMyTSAqLworCitlbnVtIHsKKwlCTEtJRF9FTVBUWV9QQVJUSVRJT04JCQk9IDB4MDAsCisJQkxLSURfRkFUMTJfUEFSVElUSU9OCQkJPSAweDAxLAorCUJMS0lEX1hFTklYX1JPT1RfUEFSVElUSU9OCQk9IDB4MDIsCisJQkxLSURfWEVOSVhfVVNSX1BBUlRJVElPTgkJPSAweDAzLAorCUJMS0lEX0ZBVDE2X0xFU1MzMk1fUEFSVElUSU9OCQk9IDB4MDQsCisJQkxLSURfRE9TX0VYVEVOREVEX1BBUlRJVElPTgkJPSAweDA1LAorCUJMS0lEX0ZBVDE2X1BBUlRJVElPTgkJCT0gMHgwNiwgLyogRE9TIDE2LWJpdCA+PTMyTSAqLworCUJMS0lEX0hQRlNfTlRGU19QQVJUSVRJT04JCT0gMHgwNywgLyogT1MvMiBJRlMsIGVnLCBIUEZTIG9yIE5URlMgb3IgUU5YICovCisJQkxLSURfQUlYX1BBUlRJVElPTgkJCT0gMHgwOCwgLyogQUlYIGJvb3QgKEFJWCAtLSBQUy8yIHBvcnQpIG9yIFNwbGl0RHJpdmUgKi8KKwlCTEtJRF9BSVhfQk9PVEFCTEVfUEFSVElUSU9OCQk9IDB4MDksIC8qIEFJWCBkYXRhIG9yIENvaGVyZW50ICovCisJQkxLSURfT1MyX0JPT1RNTkdSX1BBUlRJVElPTgkJPSAweDBhLCAvKiBPUy8yIEJvb3QgTWFuYWdlciAqLworCUJMS0lEX1c5NV9GQVQzMl9QQVJUSVRJT04JCT0gMHgwYiwKKwlCTEtJRF9XOTVfRkFUMzJfTEJBX1BBUlRJVElPTgkJPSAweDBjLCAvKiBMQkEgcmVhbGx5IGlzIGBFeHRlbmRlZCBJbnQgMTNoJyAqLworCUJMS0lEX1c5NV9GQVQxNl9MQkFfUEFSVElUSU9OCQk9IDB4MGUsCisJQkxLSURfVzk1X0VYVEVOREVEX1BBUlRJVElPTgkJPSAweDBmLAorCUJMS0lEX09QVVNfUEFSVElUSU9OCQkJPSAweDEwLAorCUJMS0lEX0hJRERFTl9GQVQxMl9QQVJUSVRJT04JCT0gMHgxMSwKKwlCTEtJRF9DT01QQVFfRElBR05PU1RJQ1NfUEFSVElUSU9OCT0gMHgxMiwKKwlCTEtJRF9ISURERU5fRkFUMTZfTDMyTV9QQVJUSVRJT04JPSAweDE0LAorCUJMS0lEX0hJRERFTl9GQVQxNl9QQVJUSVRJT04JCT0gMHgxNiwKKwlCTEtJRF9ISURERU5fSFBGU19OVEZTX1BBUlRJVElPTgk9IDB4MTcsCisJQkxLSURfQVNUX1NNQVJUU0xFRVBfUEFSVElUSU9OCQk9IDB4MTgsCisJQkxLSURfSElEREVOX1c5NV9GQVQzMl9QQVJUSVRJT04JPSAweDFiLAorCUJMS0lEX0hJRERFTl9XOTVfRkFUMzJMQkFfUEFSVElUSU9OCT0gMHgxYywKKwlCTEtJRF9ISURERU5fVzk1X0ZBVDE2TEJBX1BBUlRJVElPTgk9IDB4MWUsCisJQkxLSURfTkVDX0RPU19QQVJUSVRJT04JCQk9IDB4MjQsCisJQkxLSURfUExBTjlfUEFSVElUSU9OCQkJPSAweDM5LAorCUJMS0lEX1BBUlRJVElPTk1BR0lDX1BBUlRJVElPTgkJPSAweDNjLAorCUJMS0lEX1ZFTklYODAyODZfUEFSVElUSU9OCQk9IDB4NDAsCisJQkxLSURfUFBDX1BSRVBfQk9PVF9QQVJUSVRJT04JCT0gMHg0MSwKKwlCTEtJRF9TRlNfUEFSVElUSU9OCQkJPSAweDQyLAorCUJMS0lEX1FOWF80WF9QQVJUSVRJT04JCQk9IDB4NGQsCisJQkxLSURfUU5YXzRYXzJORF9QQVJUSVRJT04JCT0gMHg0ZSwKKwlCTEtJRF9RTlhfNFhfM1JEX1BBUlRJVElPTgkJPSAweDRmLAorCUJMS0lEX0RNX1BBUlRJVElPTgkJCT0gMHg1MCwKKwlCTEtJRF9ETTZfQVVYMV9QQVJUSVRJT04JCT0gMHg1MSwgLyogKG9yIE5vdmVsbCkgKi8KKwlCTEtJRF9DUE1fUEFSVElUSU9OCQkJPSAweDUyLCAvKiBDUC9NIG9yIE1pY3JvcG9ydCBTeXNWL0FUICovCisJQkxLSURfRE02X0FVWDNfUEFSVElUSU9OCQk9IDB4NTMsCisJQkxLSURfRE02X1BBUlRJVElPTgkJCT0gMHg1NCwKKwlCTEtJRF9FWl9EUklWRV9QQVJUSVRJT04JCT0gMHg1NSwKKwlCTEtJRF9HT0xERU5fQk9XX1BBUlRJVElPTgkJPSAweDU2LAorCUJMS0lEX1BSSUFNX0VESVNLX1BBUlRJVElPTgkJPSAweDVjLAorCUJMS0lEX1NQRUVEU1RPUl9QQVJUSVRJT04JCT0gMHg2MSwKKwlCTEtJRF9HTlVfSFVSRF9QQVJUSVRJT04JCT0gMHg2MywgLyogR05VIEhVUkQgb3IgTWFjaCBvciBTeXMgVi8zODYgKHN1Y2ggYXMgSVNDIFVOSVgpICovCisJQkxLSURfVU5JWFdBUkVfUEFSVElUSU9OCQk9IEJMS0lEX0dOVV9IVVJEX1BBUlRJVElPTiwKKwlCTEtJRF9ORVRXQVJFXzI4Nl9QQVJUSVRJT04JCT0gMHg2NCwKKwlCTEtJRF9ORVRXQVJFXzM4Nl9QQVJUSVRJT04JCT0gMHg2NSwKKwlCTEtJRF9ESVNLU0VDVVJFX01VTFRJQk9PVF9QQVJUSVRJT04JPSAweDcwLAorCUJMS0lEX1BDX0lYX1BBUlRJVElPTgkJCT0gMHg3NSwKKwlCTEtJRF9PTERfTUlOSVhfUEFSVElUSU9OCQk9IDB4ODAsIC8qIE1pbml4IDEuNGEgYW5kIGVhcmxpZXIgKi8KKwlCTEtJRF9NSU5JWF9QQVJUSVRJT04JCQk9IDB4ODEsIC8qIE1pbml4IDEuNGIgYW5kIGxhdGVyICovCisJQkxLSURfTElOVVhfU1dBUF9QQVJUSVRJT04JCT0gMHg4MiwKKwlCTEtJRF9TT0xBUklTX1g4Nl9QQVJUSVRJT04JCT0gQkxLSURfTElOVVhfU1dBUF9QQVJUSVRJT04sCisJQkxLSURfTElOVVhfREFUQV9QQVJUSVRJT04JCT0gMHg4MywKKwlCTEtJRF9PUzJfSElEREVOX0RSSVZFX1BBUlRJVElPTgk9IDB4ODQsCisJQkxLSURfTElOVVhfRVhURU5ERURfUEFSVElUSU9OCQk9IDB4ODUsCisJQkxLSURfTlRGU19WT0xfU0VUMV9QQVJUSVRJT04JCT0gMHg4NiwKKwlCTEtJRF9OVEZTX1ZPTF9TRVQyX1BBUlRJVElPTgkJPSAweDg3LAorCUJMS0lEX0xJTlVYX1BMQUlOVEVYVF9QQVJUSVRJT04JCT0gMHg4OCwKKwlCTEtJRF9MSU5VWF9MVk1fUEFSVElUSU9OCQk9IDB4OGUsCisJQkxLSURfQU1PRUJBX1BBUlRJVElPTgkJCT0gMHg5MywKKwlCTEtJRF9BTU9FQkFfQkJUX1BBUlRJVElPTgkJPSAweDk0LCAvKiAoYmFkIGJsb2NrIHRhYmxlKSAqLworCUJMS0lEX0JTRF9PU19QQVJUSVRJT04JCQk9IDB4OWYsIC8qIEJTREkgKi8KKwlCTEtJRF9USElOS1BBRF9ISUJFUk5BVElPTl9QQVJUSVRJT04JPSAweGEwLAorCUJMS0lEX0ZSRUVCU0RfUEFSVElUSU9OCQkJPSAweGE1LCAvKiB2YXJpb3VzIEJTRCBmbGF2b3VycyAqLworCUJMS0lEX09QRU5CU0RfUEFSVElUSU9OCQkJPSAweGE2LAorCUJMS0lEX05FWFRTVEVQX1BBUlRJVElPTgkJPSAweGE3LAorCUJMS0lEX0RBUldJTl9VRlNfUEFSVElUSU9OCQk9IDB4YTgsCisJQkxLSURfTkVUQlNEX1BBUlRJVElPTgkJCT0gMHhhOSwKKwlCTEtJRF9EQVJXSU5fQk9PVF9QQVJUSVRJT04JCT0gMHhhYiwKKwlCTEtJRF9IRlNfSEZTX1BBUlRJVElPTgkJCT0gMHhhZiwKKwlCTEtJRF9CU0RJX0ZTX1BBUlRJVElPTgkJCT0gMHhiNywKKwlCTEtJRF9CU0RJX1NXQVBfUEFSVElUSU9OCQk9IDB4YjgsCisJQkxLSURfQk9PVFdJWkFSRF9ISURERU5fUEFSVElUSU9OCT0gMHhiYiwKKwlCTEtJRF9TT0xBUklTX0JPT1RfUEFSVElUSU9OCQk9IDB4YmUsCisJQkxLSURfU09MQVJJU19QQVJUSVRJT04JCQk9IDB4YmYsCisJQkxLSURfRFJET1NfRkFUMTJfUEFSVElUSU9OCQk9IDB4YzEsCisJQkxLSURfRFJET1NfRkFUMTZfTDMyTV9QQVJUSVRJT04JPSAweGM0LAorCUJMS0lEX0RSRE9TX0ZBVDE2X1BBUlRJVElPTgkJPSAweGM2LAorCUJMS0lEX1NZUklOWF9QQVJUSVRJT04JCQk9IDB4YzcsCisJQkxLSURfTk9ORlNfREFUQV9QQVJUSVRJT04JCT0gMHhkYSwKKwlCTEtJRF9DUE1fQ1RPU19QQVJUSVRJT04JCT0gMHhkYiwgLyogQ1AvTSBvciBDb25jdXJyZW50IENQL00gb3IgQ29uY3VycmVudCBET1Mgb3IgQ1RPUyAqLworCUJMS0lEX0RFTExfVVRJTElUWV9QQVJUSVRJT04JCT0gMHhkZSwgLyogRGVsbCBQb3dlckVkZ2UgU2VydmVyIHV0aWxpdGllcyAqLworCUJMS0lEX0JPT1RJVF9QQVJUSVRJT04JCQk9IDB4ZGYsIC8qIEJvb3RJdCBFTUJSTSAqLworCUJMS0lEX0RPU19BQ0NFU1NfUEFSVElUSU9OCQk9IDB4ZTEsIC8qIERPUyBhY2Nlc3Mgb3IgU3BlZWRTdG9yIDEyLWJpdCBGQVQgZXh0ZW5kZWQgcGFydGl0aW9uICovCisJQkxLSURfRE9TX1JPX1BBUlRJVElPTgkJCT0gMHhlMywgLyogRE9TIFIvTyBvciBTcGVlZFN0b3IgKi8KKwlCTEtJRF9TUEVFRFNUT1JfRVhURU5ERURfUEFSVElUSU9OCT0gMHhlNCwgLyogU3BlZWRTdG9yIDE2LWJpdCBGQVQgZXh0ZW5kZWQgcGFydGl0aW9uIDwgMTAyNCBjeWwuICovCisJQkxLSURfQkVPU19GU19QQVJUSVRJT04JCQk9IDB4ZWIsCisJQkxLSURfR1BUX1BBUlRJVElPTgkJCT0gMHhlZSwgLyogSW50ZWwgRUZJIEdVSUQgUGFydGl0aW9uIFRhYmxlICovCisJQkxLSURfRUZJX1NZU1RFTV9QQVJUSVRJT04JCT0gMHhlZiwgLyogSW50ZWwgRUZJIFN5c3RlbSBQYXJ0aXRpb24gKi8KKwlCTEtJRF9MSU5VWF9QQVJJU0NfQk9PVF9QQVJUSVRJT04JPSAweGYwLCAvKiBMaW51eC9QQS1SSVNDIGJvb3QgbG9hZGVyICovCisJQkxLSURfU1BFRURTVE9SMV9QQVJUSVRJT04JCT0gMHhmMSwKKwlCTEtJRF9TUEVFRFNUT1IyX1BBUlRJVElPTgkJPSAweGY0LCAvKiBTcGVlZFN0b3IgbGFyZ2UgcGFydGl0aW9uICovCisJQkxLSURfRE9TX1NFQ09OREFSWV9QQVJUSVRJT04JCT0gMHhmMiwgLyogRE9TIDMuMysgc2Vjb25kYXJ5ICovCisJQkxLSURfVk1XQVJFX1ZNRlNfUEFSVElUSU9OCQk9IDB4ZmIsCisJQkxLSURfVk1XQVJFX1ZNS0NPUkVfUEFSVElUSU9OCQk9IDB4ZmMsIC8qIFZNd2FyZSBrZXJuZWwgZHVtcCBwYXJ0aXRpb24gKi8KKwlCTEtJRF9MSU5VWF9SQUlEX1BBUlRJVElPTgkJPSAweGZkLCAvKiBOZXcgKDIuMi54KSByYWlkIHBhcnRpdGlvbiB3aXRoIGF1dG9kZXRlY3QgdXNpbmcgcGVyc2lzdGVudCBzdXBlcmJsb2NrICovCisJQkxLSURfTEFOU1RFUF9QQVJUSVRJT04JCQk9IDB4ZmUsIC8qIFNwZWVkU3RvciA+MTAyNCBjeWwuIG9yIExBTnN0ZXAgKi8KKwlCTEtJRF9YRU5JWF9CQlRfUEFSVElUSU9OCQk9IDB4ZmYsIC8qIFhlbml4IEJhZCBCbG9jayBUYWJsZSAqLworfTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9ic2QuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9ic2QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDBkN2U1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL2JzZC5jCkBAIC0wLDAgKzEsMjM5IEBACisvKgorICogQlNEL09TRiBwYXJ0aXRpb24gcGFyc2luZyBjb2RlCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKgorICogSW5zcGlyZWQgYnkgZmRpc2ssIHBhcnR4LCBMaW51eCBrZXJuZWwsIGxpYnBhcnRlZCBhbmQgb3BlbmJzZCBoZWFkZXIgZmlsZXMuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAicGFydGl0aW9ucy5oIgorCisjZGVmaW5lIEJTRF9NQVhQQVJUSVRJT05TCTE2CisjZGVmaW5lIEJTRF9GU19VTlVTRUQJCTAKKworc3RydWN0IGJzZF9kaXNrbGFiZWwgeworCXVpbnQzMl90CWRfbWFnaWM7CQkvKiB0aGUgbWFnaWMgbnVtYmVyICovCisJaW50MTZfdAkJZF90eXBlOwkJCS8qIGRyaXZlIHR5cGUgKi8KKwlpbnQxNl90CQlkX3N1YnR5cGU7CQkvKiBjb250cm9sbGVyL2RfdHlwZSBzcGVjaWZpYyAqLworCWNoYXIJCWRfdHlwZW5hbWVbMTZdOwkJLyogdHlwZSBuYW1lLCBlLmcuICJlYWdsZSIgKi8KKwljaGFyCQlkX3BhY2tuYW1lWzE2XTsJCS8qIHBhY2sgaWRlbnRpZmllciAqLworCisJCQkvKiBkaXNrIGdlb21ldHJ5OiAqLworCXVpbnQzMl90CWRfc2Vjc2l6ZTsJCS8qICMgb2YgYnl0ZXMgcGVyIHNlY3RvciAqLworCXVpbnQzMl90CWRfbnNlY3RvcnM7CQkvKiAjIG9mIGRhdGEgc2VjdG9ycyBwZXIgdHJhY2sgKi8KKwl1aW50MzJfdAlkX250cmFja3M7CQkvKiAjIG9mIHRyYWNrcyBwZXIgY3lsaW5kZXIgKi8KKwl1aW50MzJfdAlkX25jeWxpbmRlcnM7CQkvKiAjIG9mIGRhdGEgY3lsaW5kZXJzIHBlciB1bml0ICovCisJdWludDMyX3QJZF9zZWNwZXJjeWw7CQkvKiAjIG9mIGRhdGEgc2VjdG9ycyBwZXIgY3lsaW5kZXIgKi8KKwl1aW50MzJfdAlkX3NlY3BlcnVuaXQ7CQkvKiAjIG9mIGRhdGEgc2VjdG9ycyBwZXIgdW5pdCAqLworCisJLyoKKwkgKiBTcGFyZXMgKGJhZCBzZWN0b3IgcmVwbGFjZW1lbnRzKSBiZWxvdworCSAqIGFyZSBub3QgY291bnRlZCBpbiBkX25zZWN0b3JzIG9yIGRfc2VjcGVyY3lsLgorCSAqIFNwYXJlIHNlY3RvcnMgYXJlIGFzc3VtZWQgdG8gYmUgcGh5c2ljYWwgc2VjdG9ycworCSAqIHdoaWNoIG9jY3VweSBzcGFjZSBhdCB0aGUgZW5kIG9mIGVhY2ggdHJhY2sgYW5kL29yIGN5bGluZGVyLgorCSAqLworCXVpbnQxNl90CWRfc3BhcmVzcGVydHJhY2s7CS8qICMgb2Ygc3BhcmUgc2VjdG9ycyBwZXIgdHJhY2sgKi8KKwl1aW50MTZfdAlkX3NwYXJlc3BlcmN5bDsJCS8qICMgb2Ygc3BhcmUgc2VjdG9ycyBwZXIgY3lsaW5kZXIgKi8KKworCS8qCisJICogQWx0ZXJuYXRlIGN5bGluZGVycyBpbmNsdWRlIG1haW50ZW5hbmNlLCByZXBsYWNlbWVudCwKKwkgKiBjb25maWd1cmF0aW9uIGRlc2NyaXB0aW9uIGFyZWFzLCBldGMuCisJICovCisJdWludDMyX3QJZF9hY3lsaW5kZXJzOwkJLyogIyBvZiBhbHQuIGN5bGluZGVycyBwZXIgdW5pdCAqLworCisJCQkvKiBoYXJkd2FyZSBjaGFyYWN0ZXJpc3RpY3M6ICovCisJLyoKKwkgKiBkX2ludGVybGVhdmUsIGRfdHJhY2tza2V3IGFuZCBkX2N5bHNrZXcgZGVzY3JpYmUgcGVydHVyYmF0aW9ucworCSAqIGluIHRoZSBtZWRpYSBmb3JtYXQgdXNlZCB0byBjb21wZW5zYXRlIGZvciBhIHNsb3cgY29udHJvbGxlci4KKwkgKiBJbnRlcmxlYXZlIGlzIHBoeXNpY2FsIHNlY3RvciBpbnRlcmxlYXZlLCBzZXQgdXAgYnkgdGhlIGZvcm1hdHRlcgorCSAqIG9yIGNvbnRyb2xsZXIgd2hlbiBmb3JtYXR0aW5nLiAgV2hlbiBpbnRlcmxlYXZpbmcgaXMgaW4gdXNlLAorCSAqIGxvZ2ljYWxseSBhZGphY2VudCBzZWN0b3JzIGFyZSBub3QgcGh5c2ljYWxseSBjb250aWd1b3VzLAorCSAqIGJ1dCBpbnN0ZWFkIGFyZSBzZXBhcmF0ZWQgYnkgc29tZSBudW1iZXIgb2Ygc2VjdG9ycy4KKwkgKiBJdCBpcyBzcGVjaWZpZWQgYXMgdGhlIHJhdGlvIG9mIHBoeXNpY2FsIHNlY3RvcnMgdHJhdmVyc2VkCisJICogcGVyIGxvZ2ljYWwgc2VjdG9yLiAgVGh1cyBhbiBpbnRlcmxlYXZlIG9mIDE6MSBpbXBsaWVzIGNvbnRpZ3VvdXMKKwkgKiBsYXlvdXQsIHdoaWxlIDI6MSBpbXBsaWVzIHRoYXQgbG9naWNhbCBzZWN0b3IgMCBpcyBzZXBhcmF0ZWQKKwkgKiBieSBvbmUgc2VjdG9yIGZyb20gbG9naWNhbCBzZWN0b3IgMS4KKwkgKiBkX3RyYWNrc2tldyBpcyB0aGUgb2Zmc2V0IG9mIHNlY3RvciAwIG9uIHRyYWNrIE4KKwkgKiByZWxhdGl2ZSB0byBzZWN0b3IgMCBvbiB0cmFjayBOLTEgb24gdGhlIHNhbWUgY3lsaW5kZXIuCisJICogRmluYWxseSwgZF9jeWxza2V3IGlzIHRoZSBvZmZzZXQgb2Ygc2VjdG9yIDAgb24gY3lsaW5kZXIgTgorCSAqIHJlbGF0aXZlIHRvIHNlY3RvciAwIG9uIGN5bGluZGVyIE4tMS4KKwkgKi8KKwl1aW50MTZfdAlkX3JwbTsJCQkvKiByb3RhdGlvbmFsIHNwZWVkICovCisJdWludDE2X3QJZF9pbnRlcmxlYXZlOwkJLyogaGFyZHdhcmUgc2VjdG9yIGludGVybGVhdmUgKi8KKwl1aW50MTZfdAlkX3RyYWNrc2tldzsJCS8qIHNlY3RvciAwIHNrZXcsIHBlciB0cmFjayAqLworCXVpbnQxNl90CWRfY3lsc2tldzsJCS8qIHNlY3RvciAwIHNrZXcsIHBlciBjeWxpbmRlciAqLworCXVpbnQzMl90CWRfaGVhZHN3aXRjaDsJCS8qIGhlYWQgc3dpdGNoIHRpbWUsIHVzZWMgKi8KKwl1aW50MzJfdAlkX3Rya3NlZWs7CQkvKiB0cmFjay10by10cmFjayBzZWVrLCB1c2VjICovCisJdWludDMyX3QJZF9mbGFnczsJCS8qIGdlbmVyaWMgZmxhZ3MgKi8KKwl1aW50MzJfdAlkX2RyaXZlZGF0YVs1XTsJCS8qIGRyaXZlLXR5cGUgc3BlY2lmaWMgaW5mb3JtYXRpb24gKi8KKwl1aW50MzJfdAlkX3NwYXJlWzVdOwkJLyogcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KKwl1aW50MzJfdAlkX21hZ2ljMjsJCS8qIHRoZSBtYWdpYyBudW1iZXIgKGFnYWluKSAqLworCXVpbnQxNl90CWRfY2hlY2tzdW07CQkvKiB4b3Igb2YgZGF0YSBpbmNsLiBwYXJ0aXRpb25zICovCisKKwkJCS8qIGZpbGVzeXN0ZW0gYW5kIHBhcnRpdGlvbiBpbmZvcm1hdGlvbjogKi8KKwl1aW50MTZfdAlkX25wYXJ0aXRpb25zOwkgICAgICAgIC8qIG51bWJlciBvZiBwYXJ0aXRpb25zIGluIGZvbGxvd2luZyAqLworCXVpbnQzMl90CWRfYmJzaXplOwkgICAgICAgIC8qIHNpemUgb2YgYm9vdCBhcmVhIGF0IHNuMCwgYnl0ZXMgKi8KKwl1aW50MzJfdAlkX3Nic2l6ZTsJICAgICAgICAvKiBtYXggc2l6ZSBvZiBmcyBzdXBlcmJsb2NrLCBieXRlcyAqLworCisJc3RydWN0IGJzZF9wYXJ0aXRpb24JIHsJCS8qIHRoZSBwYXJ0aXRpb24gdGFibGUgKi8KKwkJdWludDMyX3QJcF9zaXplOwkgICAgICAgIC8qIG51bWJlciBvZiBzZWN0b3JzIGluIHBhcnRpdGlvbiAqLworCQl1aW50MzJfdAlwX29mZnNldDsgICAgICAgLyogc3RhcnRpbmcgc2VjdG9yICovCisJCXVpbnQzMl90CXBfZnNpemU7ICAgICAgICAvKiBmaWxlc3lzdGVtIGJhc2ljIGZyYWdtZW50IHNpemUgKi8KKwkJdWludDhfdAkJcF9mc3R5cGU7CS8qIGZpbGVzeXN0ZW0gdHlwZSwgc2VlIGJlbG93ICovCisJCXVpbnQ4X3QJCXBfZnJhZzsJCS8qIGZpbGVzeXN0ZW0gZnJhZ21lbnRzIHBlciBibG9jayAqLworCQl1aW50MTZfdAlwX2NwZzsJICAgICAgICAvKiBmaWxlc3lzdGVtIGN5bGluZGVycyBwZXIgZ3JvdXAgKi8KKwl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGRfcGFydGl0aW9uc1tCU0RfTUFYUEFSVElUSU9OU107CS8qIGFjdHVhbGx5IG1heSBiZSBtb3JlICovCit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisKKy8qIFJldHVybnMgJ2Jsa2lkX2lkbWFnJyBpbiA1MTItc2VjdG9ycyAqLworI2RlZmluZSBCTEtJRF9NQUdfU0VDVE9SKF9tYWcpICAoKChfbWFnKS0+a2JvZmYgKiAyKSAgKyAoKF9tYWcpLT5zYm9mZiA+PiA5KSkKKworLyogUmV0dXJucyAnYmxraWRfaWRtYWcnIGluIGJ5dGVzICovCisjZGVmaW5lIEJMS0lEX01BR19PRkZTRVQoX21hZykgICgoX21hZyktPmtib2ZmID4+IDEwKSArICgoX21hZyktPnNib2ZmKQorCisvKiBSZXR1cm5zICdibGtpZF9pZG1hZycgb2Zmc2V0IGluIGJ5dGVzIHdpdGhpbiB0aGUgbGFzdCBzZWN0b3IgKi8KKyNkZWZpbmUgQkxLSURfTUFHX0xBU1RPRkZTRVQoX21hZykgXAorCQkgKEJMS0lEX01BR19PRkZTRVQoX21hZykgLSAoQkxLSURfTUFHX1NFQ1RPUihfbWFnKSA8PCA5KSkKKworc3RhdGljIGludCBwcm9iZV9ic2RfcHQoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBic2RfZGlza2xhYmVsICpsOworCXN0cnVjdCBic2RfcGFydGl0aW9uICpwOworCWNvbnN0IGNoYXIgKm5hbWUgPSAiYnNkIiA7CisJYmxraWRfcGFydHRhYmxlIHRhYiA9IE5VTEw7CisJYmxraWRfcGFydGl0aW9uIHBhcmVudDsKKwlibGtpZF9wYXJ0bGlzdCBsczsKKwlpbnQgaSwgbnBhcnRzID0gQlNEX01BWFBBUlRJVElPTlM7CisJdW5zaWduZWQgY2hhciAqZGF0YTsKKworCWlmIChibGtpZF9wYXJ0aXRpb25zX25lZWRfdHlwZW9ubHkocHIpKQorCQkvKiBjYWxsZXIgZG9lcyBub3QgYXNrIGZvciBkZXRhaWxzIGFib3V0IHBhcnRpdGlvbnMgKi8KKwkJcmV0dXJuIDA7CisKKwlkYXRhID0gYmxraWRfcHJvYmVfZ2V0X3NlY3RvcihwciwgQkxLSURfTUFHX1NFQ1RPUihtYWcpKTsKKwlpZiAoIWRhdGEpCisJCWdvdG8gbm90aGluZzsKKworCWwgPSAoc3RydWN0IGJzZF9kaXNrbGFiZWwgKikgZGF0YSArIEJMS0lEX01BR19MQVNUT0ZGU0VUKG1hZyk7CisKKwlscyA9IGJsa2lkX3Byb2JlX2dldF9wYXJ0bGlzdChwcik7CisJaWYgKCFscykKKwkJZ290byBlcnI7CisKKwkvKiB0cnkgdG8gZGV0ZXJtaW5lIHRoZSByZWFsIHR5cGUgb2YgQlNEIHN5c3RlbSBhY2NvcmRpbmcgdG8KKwkgKiAocGFyZW50YWwpIHByaW1hcnkgcGFydGl0aW9uICovCisJcGFyZW50ID0gYmxraWRfcGFydGxpc3RfZ2V0X3BhcmVudChscyk7CisJaWYgKHBhcmVudCkgeworCQlzd2l0Y2goYmxraWRfcGFydGl0aW9uX2dldF90eXBlKHBhcmVudCkpIHsKKwkJY2FzZSBCTEtJRF9GUkVFQlNEX1BBUlRJVElPTjoKKwkJCW5hbWUgPSAiZnJlZWJzZCI7CisJCQlicmVhazsKKwkJY2FzZSBCTEtJRF9ORVRCU0RfUEFSVElUSU9OOgorCQkJbmFtZSA9ICJuZXRic2QiOworCQkJYnJlYWs7CisJCWNhc2UgQkxLSURfT1BFTkJTRF9QQVJUSVRJT046CisJCQluYW1lID0gIm9wZW5ic2QiOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigKKwkJCQkiV0FSTklORzogQlNEIGxhYmVsIGRldGVjdGVkIG9uIHVua25vd24gKDB4JXgpICIKKwkJCQkicHJpbWFyeSBwYXJ0aXRpb25cbiIsCisJCQkJYmxraWRfcGFydGl0aW9uX2dldF90eXBlKHBhcmVudCkpKTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJdGFiID0gYmxraWRfcGFydGxpc3RfbmV3X3BhcnR0YWJsZShscywgbmFtZSwgQkxLSURfTUFHX09GRlNFVChtYWcpKTsKKwlpZiAoIXRhYikKKwkJZ290byBlcnI7CisKKwlpZiAobGUxNl90b19jcHUobC0+ZF9ucGFydGl0aW9ucykgPCBCU0RfTUFYUEFSVElUSU9OUykKKwkJbnBhcnRzID0gbGUxNl90b19jcHUobC0+ZF9ucGFydGl0aW9ucyk7CisKKwllbHNlIGlmIChsZTE2X3RvX2NwdShsLT5kX25wYXJ0aXRpb25zKSA+IEJTRF9NQVhQQVJUSVRJT05TKQorCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigKKwkJCSJXQVJOSU5HOiBpZ25vcmUgJWQgbW9yZSBCU0QgcGFydGl0aW9uc1xuIiwKKwkJCWxlMTZfdG9fY3B1KGwtPmRfbnBhcnRpdGlvbnMpIC0gQlNEX01BWFBBUlRJVElPTlMpKTsKKworCWZvciAoaSA9IDAsIHAgPSBsLT5kX3BhcnRpdGlvbnM7IGkgPCBucGFydHM7IGkrKywgcCsrKSB7CisJCXVpbnQzMl90IHN0YXJ0LCBzaXplOworCisJCS8qIFRPRE86IGluIGZkaXNrLW1vZGUgcmV0dXJucyBhbGwgbm9uLXplcm8gKHBfc2l6ZSkgcGFydGl0aW9ucyAqLworCQlpZiAocC0+cF9mc3R5cGUgPT0gQlNEX0ZTX1VOVVNFRCkKKwkJCWNvbnRpbnVlOworCisJCXN0YXJ0ID0gbGUzMl90b19jcHUocC0+cF9vZmZzZXQpOworCQlzaXplID0gbGUzMl90b19jcHUocC0+cF9zaXplKTsKKworCQlpZiAocGFyZW50ICYmICFibGtpZF9pc19uZXN0ZWRfZGltZW5zaW9uKHBhcmVudCwgc3RhcnQsIHNpemUpKSB7CisJCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigKKwkJCQkiV0FSTklORzogQlNEIHBhcnRpdGlvbiAoJWQpIG92ZXJmbG93ICIKKwkJCQkiZGV0ZWN0ZWQsIGlnbm9yZVxuIiwgaSkpOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoIWJsa2lkX3BhcnRsaXN0X2FkZF9wYXJ0aXRpb24obHMsIHRhYiwgcC0+cF9mc3R5cGUsIHN0YXJ0LCBzaXplKSkKKwkJCWdvdG8gZXJyOworCX0KKworCXJldHVybiAwOworCitub3RoaW5nOgorCXJldHVybiAxOworZXJyOgorCXJldHVybiAtMTsKK30KKworCisvKgorICogQWxsIEJTRCB2YXJpYW50cyB1c2UgdGhlIHNhbWUgbWFnaWMgc3RyaW5nIChsaXR0bGUtZW5kaWFuKSwKKyAqIGFuZCB0aGUgc2FtZSBkaXNrbGFiZWwuCisgKgorICogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB7RnJlZSxPcGVuLC4uLn1CU0QgaXMgaW4gdGhlIChwYXJlbnRhbCkKKyAqIHByaW1hcnkgcGFydGl0aW9uIHR5cGUuCisgKgorICogU2VlIGFsc286IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQlNEX2Rpc2tsYWJlbAorICoKKyAqIFRoZSBsb2NhdGlvbiBvZiBCU0QgZGlzayBsYWJlbCBpcyBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgYW5kIGluIGRlZmluZWQgYnkKKyAqIExBQkVMU0VDVE9SIGFuZCBMQUJFTE9GRlNFVCBtYWNyb3MgaW4gdGhlIGRpc2tsYWJlbC5oIGZpbGUuIFRoZSBsb2NhdGlvbgorICogYWxzbyBkZXBlbmRzIG9uIEJTRCB2YXJpYW50LCBGcmVlQlNEIHVzZXMgb25seSBvbmUgbG9jYXRpb24sIE5ldEJTRCBhbmQKKyAqIE9wZW5CU0QgYXJlIG1vcmUgY3JlYXRpdmUuLi4KKyAqCisgKiBUaGUgYmFzaWMgb3ZlcnZpZXc6CisgKgorICogYXJjaCAgICAgICAgICAgICAgICAgICAgfCBMQUJFTFNFQ1RPUiB8IExBQkVMT0ZGU0VUCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAqIGFtZDY0IGFybSBocHBhIGhwcGE2NCAgIHwgICAgICAgICAgICAgfAorICogaTM4NiwgbWFjcHBjLCBtdm1lcHBjICAgfCAgICAgIDEgICAgICB8ICAgICAgMAorICogc2dpLCBhdmlpb24sIHNoLCBzb2NwcGMgfCAgICAgICAgICAgICB8CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAqIGFscGhhIGx1bmE4OGsgbWFjNjhrICAgIHwgICAgICAwICAgICAgfCAgICAgNjQKKyAqIHNwYXJjKE9wZW5CU0QpIHZheCAgICAgIHwgICAgICAgICAgICAgfAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgKiBzcGFyazY0IHNwYXJjKE5ldEJTRCkgICB8ICAgICAgMCAgICAgIHwgICAgMTI4CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAqCisgKiAuLi5hbmQgbW9yZSAoc2VlIGh0dHA6Ly9meHIud2F0c29uLm9yZy9meHIvaWRlbnQ/dj1ORVRCU0Q7aT1MQUJFTFNFQ1RPUikKKyAqCisgKi8KK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gYnNkX3B0X2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gImJzZCIsCisJLnByb2JlZnVuYwk9IHByb2JlX2JzZF9wdCwKKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICJceDU3XHg0NVx4NTZceDgyIiwgLmxlbiA9IDQsIC5zYm9mZiA9IDUxMiB9LAorCQl7IC5tYWdpYyA9ICJceDU3XHg0NVx4NTZceDgyIiwgLmxlbiA9IDQsIC5zYm9mZiA9IDY0IH0sCisJCXsgLm1hZ2ljID0gIlx4NTdceDQ1XHg1Nlx4ODIiLCAubGVuID0gNCwgLnNib2ZmID0gMTI4IH0sCisJCXsgTlVMTCB9CisJfQorfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL2Rvcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL2Rvcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMmNhMWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvZG9zLmMKQEAgLTAsMCArMSwyNzAgQEAKKy8qCisgKiBNUy1ET1MgcGFydGl0aW9uIHBhcnNpbmcgY29kZQorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICoKKyAqIEluc3BpcmVkIGJ5IGZkaXNrLCBwYXJ0eCwgTGludXgga2VybmVsIGFuZCBsaWJwYXJ0ZWQuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAicGFydGl0aW9ucy5oIgorI2luY2x1ZGUgImRvcy5oIgorI2luY2x1ZGUgImFpeC5oIgorI2luY2x1ZGUgImZhdC5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRvc19zdWJ0eXBlcyB7CisJdW5zaWduZWQgY2hhciB0eXBlOworCWNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gKmlkOworfSBkb3NfbmVzdGVkW10gPSB7CisJeyBCTEtJRF9GUkVFQlNEX1BBUlRJVElPTiwgJmJzZF9wdF9pZGluZm8gfSwKKwl7IEJMS0lEX05FVEJTRF9QQVJUSVRJT04sICZic2RfcHRfaWRpbmZvIH0sCisJeyBCTEtJRF9PUEVOQlNEX1BBUlRJVElPTiwgJmJzZF9wdF9pZGluZm8gfSwKKwl7IEJMS0lEX1VOSVhXQVJFX1BBUlRJVElPTiwgJnVuaXh3YXJlX3B0X2lkaW5mbyB9LAorCXsgQkxLSURfU09MQVJJU19YODZfUEFSVElUSU9OLCAmc29sYXJpc194ODZfcHRfaWRpbmZvIH0sCisJeyBCTEtJRF9NSU5JWF9QQVJUSVRJT04sICZtaW5peF9wdF9pZGluZm8gfQorfTsKKworc3RhdGljIGlubGluZSBpbnQgaXNfZXh0ZW5kZWQoc3RydWN0IGRvc19wYXJ0aXRpb24gKnApCit7CisJcmV0dXJuIChwLT5zeXNfdHlwZSA9PSBCTEtJRF9ET1NfRVhURU5ERURfUEFSVElUSU9OIHx8CisJCXAtPnN5c190eXBlID09IEJMS0lEX1c5NV9FWFRFTkRFRF9QQVJUSVRJT04gfHwKKwkJcC0+c3lzX3R5cGUgPT0gQkxLSURfTElOVVhfRVhURU5ERURfUEFSVElUSU9OKTsKK30KKworc3RhdGljIGludCBwYXJzZV9kb3NfZXh0ZW5kZWQoYmxraWRfcHJvYmUgcHIsIGJsa2lkX3BhcnR0YWJsZSB0YWIsCisJCXVpbnQzMl90IGV4X3N0YXJ0LCB1aW50MzJfdCBleF9zaXplLCBpbnQgc3NmKQoreworCWJsa2lkX3BhcnRsaXN0IGxzID0gYmxraWRfcHJvYmVfZ2V0X3BhcnRsaXN0KHByKTsKKwl1aW50MzJfdCBjdXJfc3RhcnQgPSBleF9zdGFydCwgY3VyX3NpemUgPSBleF9zaXplOworCXVuc2lnbmVkIGNoYXIgKmRhdGE7CisJaW50IGN0X25vZGF0YSA9IDA7CS8qIGNvdW50IGV4dC5wYXJ0aXRpb25zIHdpdGhvdXQgZGF0YSBwYXJ0aXRpb25zICovCisJaW50IGk7CisKKwl3aGlsZSAoMSkgeworCQlzdHJ1Y3QgZG9zX3BhcnRpdGlvbiAqcCwgKnAwOworCQl1aW50MzJfdCBzdGFydCwgc2l6ZTsKKworCQlpZiAoKytjdF9ub2RhdGEgPiAxMDApCisJCQlyZXR1cm4gMDsKKwkJZGF0YSA9IGJsa2lkX3Byb2JlX2dldF9zZWN0b3IocHIsIGN1cl9zdGFydCk7CisJCWlmICghZGF0YSkKKwkJCWdvdG8gbGVhdmU7CS8qIG1hbGZvcm1lZCBwYXJ0aXRpb24/ICovCisKKwkJaWYgKCFpc192YWxpZF9tYnJfc2lnbmF0dXJlKGRhdGEpKQorCQkJZ290byBsZWF2ZTsKKworCQlwMCA9IChzdHJ1Y3QgZG9zX3BhcnRpdGlvbiAqKSAoZGF0YSArIEJMS0lEX01TRE9TX1BUX09GRlNFVCk7CisKKwkJLyogVXN1YWxseSwgdGhlIGZpcnN0IGVudHJ5IGlzIHRoZSByZWFsIGRhdGEgcGFydGl0aW9uLAorCQkgKiB0aGUgMm5kIGVudHJ5IGlzIHRoZSBuZXh0IGV4dGVuZGVkIHBhcnRpdGlvbiwgb3IgZW1wdHksCisJCSAqIGFuZCB0aGUgM3JkIGFuZCA0dGggZW50cmllcyBhcmUgdW51c2VkLgorCQkgKiBIb3dldmVyLCBEUkRPUyBzb21ldGltZXMgaGFzIHRoZSBleHRlbmRlZCBwYXJ0aXRpb24gYXMKKwkJICogdGhlIGZpcnN0IGVudHJ5ICh3aGVuIHRoZSBkYXRhIHBhcnRpdGlvbiBpcyBlbXB0eSksCisJCSAqIGFuZCBPUy8yIHNlZW1zIHRvIHVzZSBhbGwgZm91ciBlbnRyaWVzLgorCQkgKiAtLSBMaW51eCBrZXJuZWwgZnMvcGFydGl0aW9ucy9kb3MuYworCQkgKgorCQkgKiBTZWUgYWxzbyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0V4dGVuZGVkX2Jvb3RfcmVjb3JkCisJCSAqLworCisJCS8qIFBhcnNlIGRhdGEgcGFydGl0aW9uICovCisJCWZvciAocCA9IHAwLCBpID0gMDsgaSA8IDQ7IGkrKywgcCsrKSB7CisJCQl1aW50MzJfdCBhYnNfc3RhcnQ7CisKKwkJCS8qIHRoZSBzdGFydCBpcyByZWxhdGl2ZSB0byB0aGUgcGFyZW50YWwgZXh0LnBhcnRpdGlvbiAqLworCQkJc3RhcnQgPSBkb3NfcGFydGl0aW9uX3N0YXJ0KHApICogc3NmOworCQkJc2l6ZSA9IGRvc19wYXJ0aXRpb25fc2l6ZShwKSAqIHNzZjsKKwkJCWFic19zdGFydCA9IGN1cl9zdGFydCArIHN0YXJ0OwkvKiBhYnNvbHV0ZSBzdGFydCAqLworCisJCQlpZiAoIXNpemUgfHwgaXNfZXh0ZW5kZWQocCkpCisJCQkJY29udGludWU7CisJCQlpZiAoaSA+PSAyKSB7CisJCQkJLyogZXh0cmEgY2hlY2tzIHRvIGRldGVjdCByZWFsIGRhdGEgb24KKwkJCQkgKiAzcmQgYW5kIDR0aCBlbnRyaWVzICovCisJCQkJaWYgKHN0YXJ0ICsgc2l6ZSA+IGN1cl9zaXplKQorCQkJCQljb250aW51ZTsKKwkJCQlpZiAoYWJzX3N0YXJ0IDwgZXhfc3RhcnQpCisJCQkJCWNvbnRpbnVlOworCQkJCWlmIChhYnNfc3RhcnQgKyBzaXplID4gZXhfc3RhcnQgKyBleF9zaXplKQorCQkJCQljb250aW51ZTsKKwkJCX0KKwkJCWlmICghYmxraWRfcGFydGxpc3RfYWRkX3BhcnRpdGlvbihscywgdGFiLCBwLT5zeXNfdHlwZSwKKwkJCQkJCWFic19zdGFydCwgc2l6ZSkpCisJCQkJZ290byBlcnI7CisKKwkJCWN0X25vZGF0YSA9IDA7CisJCX0KKwkJLyogVGhlIGZpcnN0IG5lc3RlZCBleHQucGFydGl0aW9uIHNob3VsZCBiZSBhIGxpbmsgdG8gdGhlIG5leHQKKwkJICogbG9naWNhbCBwYXJ0aXRpb24uIEV2ZXJ5dGhpbmcgb3RoZXIgKHJlY3Vyc2l2ZSBleHQucGFydGl0aW9ucykKKwkJICogaXMganVuay4KKwkJICovCisJCWZvciAocCA9IHAwLCBpID0gMDsgaSA8IDQ7IGkrKywgcCsrKSB7CisJCQlzdGFydCA9IGRvc19wYXJ0aXRpb25fc3RhcnQocCkgKiBzc2Y7CisJCQlzaXplID0gZG9zX3BhcnRpdGlvbl9zaXplKHApICogc3NmOworCisJCQlpZiAoc2l6ZSAmJiBpc19leHRlbmRlZChwKSkKKwkJCQlicmVhazsKKwkJfQorCQlpZiAoaSA9PSA0KQorCQkJZ290byBsZWF2ZTsKKworCQljdXJfc3RhcnQgPSBleF9zdGFydCArIHN0YXJ0OworCQljdXJfc2l6ZSA9IHNpemU7CisJfQorbGVhdmU6CisJcmV0dXJuIDA7CitlcnI6CisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgaW50IHByb2JlX2Rvc19wdChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJaW50IGk7CisJaW50IHNzZjsKKwlibGtpZF9wYXJ0dGFibGUgdGFiID0gTlVMTDsKKwlibGtpZF9wYXJ0bGlzdCBsczsKKwlzdHJ1Y3QgZG9zX3BhcnRpdGlvbiAqcDAsICpwOworCXVuc2lnbmVkIGNoYXIgKmRhdGE7CisJdWludDMyX3Qgc3RhcnQsIHNpemU7CisKKwlkYXRhID0gYmxraWRfcHJvYmVfZ2V0X3NlY3RvcihwciwgMCk7CisJaWYgKCFkYXRhKQorCQlnb3RvIG5vdGhpbmc7CisKKwkvKiBpZ25vcmUgZGlza3Mgd2l0aCBBSVggbWFnaWMgbnVtYmVyIC0tIGZvciBtb3JlIGRldGFpbHMgc2VlIGFpeC5jICovCisJaWYgKG1lbWNtcChkYXRhLCBCTEtJRF9BSVhfTUFHSUNfU1RSSU5HLCBCTEtJRF9BSVhfTUFHSUNfU1RSTEVOKSA9PSAwKQorCQlnb3RvIG5vdGhpbmc7CisKKwkvKgorCSAqIE5vdyB0aGF0IHRoZSA1NWFhIHNpZ25hdHVyZSBpcyBwcmVzZW50LCB0aGlzIGlzIHByb2JhYmx5CisJICogZWl0aGVyIHRoZSBib290IHNlY3RvciBvZiBhIEZBVCBmaWxlc3lzdGVtIG9yIGEgRE9TLXR5cGUKKwkgKiBwYXJ0aXRpb24gdGFibGUuCisJICovCisJeworCQlzdHJ1Y3QgbXNkb3Nfc3VwZXJfYmxvY2sgKm1zID0KKwkJCQkoc3RydWN0IG1zZG9zX3N1cGVyX2Jsb2NrICopIGRhdGE7CisKKwkJaWYgKG1zLT5tc19mYXRzICYmIG1zLT5tc19yZXNlcnZlZCAmJgorCQkgICAgbXMtPm1zX2NsdXN0ZXJfc2l6ZSAmJgorCQkgICAgYmxraWRfZmF0X3ZhbGlkX21lZGlhKG1zKSAmJgorCQkgICAgYmxraWRfZmF0X3ZhbGlkX3NlY3RvcnNpemUobXMsIE5VTEwpKQorCQkJZ290byBub3RoaW5nOwkJLyogRkFUICovCisJfQorCisJcDAgPSAoc3RydWN0IGRvc19wYXJ0aXRpb24gKikgKGRhdGEgKyBCTEtJRF9NU0RPU19QVF9PRkZTRVQpOworCisJLyoKKwkgKiBSZWplY3QgUFQgd2hlcmUgYm9vdCBpbmRpY2F0b3IgaXMgbm90IDAgb3IgMHg4MC4KKwkgKi8KKwlmb3IgKHAgPSBwMCwgaSA9IDA7IGkgPCA0OyBpKyssIHArKykKKwkJaWYgKHAtPmJvb3RfaW5kICE9IDAgJiYgcC0+Ym9vdF9pbmQgIT0gMHg4MCkKKwkJCWdvdG8gbm90aGluZzsKKworCS8qCisJICogR1BUIHVzZXMgdmFsaWQgTUJSCisJICovCisJZm9yIChwID0gcDAsIGkgPSAwOyBpIDwgNDsgaSsrLCBwKyspIHsKKwkJaWYgKHAtPnN5c190eXBlID09IEJMS0lEX0dQVF9QQVJUSVRJT04pCisJCQlnb3RvIG5vdGhpbmc7CisJfQorCisJLyoKKwkgKiBXZWxsLCBhbGwgY2hlY2tzIHBhc3MsIGl0J3MgTVMtRE9TIHBhcnRpdG9uIHRhYmxlCisJICovCisJaWYgKGJsa2lkX3BhcnRpdGlvbnNfbmVlZF90eXBlb25seShwcikpCisJCS8qIGNhbGxlciBkb2VzIG5vdCBhc2sgZm9yIGRldGFpbHMgYWJvdXQgcGFydGl0aW9ucyAqLworCQlyZXR1cm4gMDsKKworCWxzID0gYmxraWRfcHJvYmVfZ2V0X3BhcnRsaXN0KHByKTsKKworCS8qIHNlY3RvciBzaXplIGZhY3RvciAodGhlIHN0YXJ0IGFuZCBzaXplIGFyZSBpbiB0aGUgcmVhbCBzZWN0b3JzLCBidXQKKwkgKiB3ZSBuZWVkIHRvIGNvbnZlcnQgYWxsIHNpemVzIHRvIDUxMiBsb2dpY2FsIHNlY3RvcnMKKwkgKi8KKwlzc2YgPSBibGtpZF9wcm9iZV9nZXRfc2VjdG9yc2l6ZShwcikgLyA1MTI7CisKKwkvKiBhbGxvY2F0ZSBhIG5ldyBwYXJ0aXRpb24gdGFibGUgKi8KKwl0YWIgPSBibGtpZF9wYXJ0bGlzdF9uZXdfcGFydHRhYmxlKGxzLCAiZG9zIiwgQkxLSURfTVNET1NfUFRfT0ZGU0VUKTsKKwlpZiAoIXRhYikKKwkJZ290byBlcnI7CisKKwkvKiBQYXJzZSBwcmltYXJ5IHBhcnRpdGlvbnMgKi8KKwlmb3IgKHAgPSBwMCwgaSA9IDA7IGkgPCA0OyBpKyssIHArKykgeworCQlzdGFydCA9IGRvc19wYXJ0aXRpb25fc3RhcnQocCkgKiBzc2Y7CisJCXNpemUgPSBkb3NfcGFydGl0aW9uX3NpemUocCkgKiBzc2Y7CisKKwkJaWYgKCFzaXplKQorCQkJY29udGludWU7CisJCWlmICghYmxraWRfcGFydGxpc3RfYWRkX3BhcnRpdGlvbihscywgdGFiLCBwLT5zeXNfdHlwZSwKKwkJCQkJCQlzdGFydCwgc2l6ZSkpCisJCQlnb3RvIGVycjsKKwl9CisKKwkvKiBMaW51eCB1c2VzIHBhcnRpdGlvbiBudW1iZXJzIGdyZWF0ZXIgdGhhbiA0CisJICogZm9yIGFsbCBsb2dpY2FsIHBhcnRpdGlvbiBhbmQgYWxsIG5lc3RlZCBwYXJ0aXRpb24gdGFibGVzIChic2QsIC4uKQorCSAqLworCWJsa2lkX3BhcnRsaXN0X3NldF9wYXJ0bm8obHMsIDUpOworCisJLyogUGFyc2UgbG9naWNhbCBwYXJ0aXRpb25zICovCisJZm9yIChwID0gcDAsIGkgPSAwOyBpIDwgNDsgaSsrLCBwKyspIHsKKwkJc3RhcnQgPSBkb3NfcGFydGl0aW9uX3N0YXJ0KHApICogc3NmOworCQlzaXplID0gZG9zX3BhcnRpdGlvbl9zaXplKHApICogc3NmOworCisJCWlmICghc2l6ZSkKKwkJCWNvbnRpbnVlOworCQlpZiAoaXNfZXh0ZW5kZWQocCkgJiYKKwkJICAgIHBhcnNlX2Rvc19leHRlbmRlZChwciwgdGFiLCBzdGFydCwgc2l6ZSwgc3NmKSA9PSAtMSkKKwkJCWdvdG8gZXJyOworCX0KKworCS8qIFBhcnNlIHN1YnR5cGVzIChuZXN0ZWQgcGFydGl0aW9ucykgKi8KKwlmb3IgKHAgPSBwMCwgaSA9IDA7IGkgPCA0OyBpKyssIHArKykgeworCQlpbnQgbjsKKworCQlpZiAoIWRvc19wYXJ0aXRpb25fc2l6ZShwKSB8fCBpc19leHRlbmRlZChwKSkKKwkJCWNvbnRpbnVlOworCisJCWZvciAobiA9IDA7IG4gPCBBUlJBWV9TSVpFKGRvc19uZXN0ZWQpOyBuKyspIHsKKwkJCWlmIChkb3NfbmVzdGVkW25dLnR5cGUgIT0gcC0+c3lzX3R5cGUpCisJCQkJY29udGludWU7CisKKwkJCWlmIChibGtpZF9wYXJ0aXRpb25zX2RvX3N1YnByb2JlKHByLAorCQkJCQlibGtpZF9wYXJ0bGlzdF9nZXRfcGFydGl0aW9uKGxzLCBpKSwKKwkJCQkJZG9zX25lc3RlZFtuXS5pZCkgPT0gLTEpCisJCQkJZ290byBlcnI7CisJCQlicmVhazsKKwkJfQorCX0KKworCXJldHVybiAwOworCitub3RoaW5nOgorCXJldHVybiAxOworZXJyOgorCXJldHVybiAtMTsKK30KKworCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGRvc19wdF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJkb3MiLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9kb3NfcHQsCisJLm1hZ2ljcwkJPQorCXsKKwkJLyogRE9TIG1hc3RlciBib290IHNlY3RvcjoKKwkJICoKKwkJICogICAgIDAgfCBDb2RlIEFyZWEKKwkJICogICA0NDAgfCBPcHRpb25hbCBEaXNrIHNpZ25hdHVyZQorCQkgKiAgIDQ0NiB8IFBhcnRpdGlvbiB0YWJsZQorCQkgKiAgIDUxMCB8IDB4NTUKKwkJICogICA1MTEgfCAweEFBCisJCSAqLworCQl7IC5tYWdpYyA9ICJceDU1XHhBQSIsIC5sZW4gPSAyLCAuc2JvZmYgPSA1MTAgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvZG9zLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvZG9zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTMwYWEwMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9kb3MuaApAQCAtMCwwICsxLDM2IEBACisjaWZuZGVmIEJMS0lEX1BBUlRJVElPTlNfRE9TX0gKKyNkZWZpbmUgQkxLSURfUEFSVElUSU9OU19ET1NfSAorCitzdHJ1Y3QgZG9zX3BhcnRpdGlvbiB7CisJdW5zaWduZWQgY2hhciBib290X2luZDsJCS8qIDB4ODAgLSBhY3RpdmUgKi8KKwl1bnNpZ25lZCBjaGFyIGJoLCBicywgYmM7CS8qIGJlZ2luIENIUyAqLworCXVuc2lnbmVkIGNoYXIgc3lzX3R5cGU7CisJdW5zaWduZWQgY2hhciBlaCwgZXMsIGVjOwkvKiBlbmQgQ0hTICovCisJdW5zaWduZWQgY2hhciBzdGFydF9zZWN0WzRdOworCXVuc2lnbmVkIGNoYXIgbnJfc2VjdHNbNF07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisjZGVmaW5lIEJMS0lEX01TRE9TX1BUX09GRlNFVAkJMHgxYmUKKworLyogYXNzZW1ibGUgYmFkbHkgYWxpZ25lZCBsaXR0bGUgZW5kaWFuIGludGVnZXIgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGFzc2VtYmxlNGxlKHVuc2lnbmVkIGNoYXIgKnApCit7CisJcmV0dXJuIHBbMF0gfCAocFsxXSA8PCA4KSB8IChwWzJdIDw8IDE2KSB8IChwWzNdIDw8IDI0KTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZG9zX3BhcnRpdGlvbl9zdGFydChzdHJ1Y3QgZG9zX3BhcnRpdGlvbiAqcCkKK3sKKwlyZXR1cm4gYXNzZW1ibGU0bGUoJihwLT5zdGFydF9zZWN0WzBdKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGRvc19wYXJ0aXRpb25fc2l6ZShzdHJ1Y3QgZG9zX3BhcnRpdGlvbiAqcCkKK3sKKwlyZXR1cm4gYXNzZW1ibGU0bGUoJihwLT5ucl9zZWN0c1swXSkpOworfQorCitzdGF0aWMgaW5saW5lIGludCBpc192YWxpZF9tYnJfc2lnbmF0dXJlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1icikKK3sKKwlyZXR1cm4gbWJyWzUxMF0gPT0gMHg1NSAmJiBtYnJbNTExXSA9PSAweGFhID8gMSA6IDA7Cit9CisKKyNlbmRpZiAvKiBCTEtJRF9QQVJUSVRJT05TX0RPU19IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvZ3B0LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvZ3B0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmMzYTMyNgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9ncHQuYwpAQCAtMCwwICsxLDM4MyBAQAorLyoKKyAqIEVGSSBHUFQgcGFydGl0aW9uIHBhcnNpbmcgY29kZQorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICoKKyAqIFRoaXMgY29kZSBpcyBub3QgY29weSAmIHBhc3QgZnJvbSBhbnkgb3RoZXIgaW1wbGVtZW50YXRpb24uCisgKgorICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgR1BUIHN0YXJ0IHlvdXIgc3R1ZHkgYXQ6CisgKiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0dVSURfUGFydGl0aW9uX1RhYmxlCisgKiBodHRwOi8vdGVjaG5ldC5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvY2M3Mzk0MTIoV1MuMTApLmFzcHgKKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkZGVmLmg+CisKKyNpbmNsdWRlICJwYXJ0aXRpb25zLmgiCisjaW5jbHVkZSAiY3JjMzIuaCIKKyNpbmNsdWRlICJkb3MuaCIKKworI2RlZmluZSBHUFRfUFJJTUFSWV9MQkEJMQorCisvKiBTaWduYXR1cmUgLSDigJxFRkkgUEFSVOKAnSAqLworI2RlZmluZSBHUFRfSEVBREVSX1NJR05BVFVSRSAweDU0NTI0MTUwMjA0OTQ2NDVVTEwKKworLyogYmFzaWMgdHlwZXMgKi8KK3R5cGVkZWYgdWludDE2X3QgZWZpX2NoYXIxNl90OworCisvKiBVVUlEICovCit0eXBlZGVmIHN0cnVjdCB7CisJdWludDhfdCAgYlsxNl07Cit9IGVmaV9ndWlkX3Q7CisKKyNkZWZpbmUgRUZJX0dVSUQoYSxiLGMsZDAsZDEsZDIsZDMsZDQsZDUsZDYsZDcpICAoKGVmaV9ndWlkX3QpIFwKKwkJe3sgXAorCShhKSAmIDB4ZmYsICgoYSkgPj4gOCkgJiAweGZmLCAoKGEpID4+IDE2KSAmIDB4ZmYsICgoYSkgPj4gMjQpICYgMHhmZiwgXAorCShiKSAmIDB4ZmYsICgoYikgPj4gOCkgJiAweGZmLCBcCisJKGMpICYgMHhmZiwgKChjKSA+PiA4KSAmIDB4ZmYsIFwKKwkoZDApLCAoZDEpLCAoZDIpLCAoZDMpLCAoZDQpLCAoZDUpLCAoZDYpLCAoZDcpIFwKK319KQorCisjZGVmaW5lIEdQVF9VTlVTRURfRU5UUllfR1VJRAlFRklfR1VJRCgweDAwMDAwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMCwgMHgwMCwgXAorCQkJCQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKQorCitzdHJ1Y3QgZ3B0X2hlYWRlciB7CisJdWludDY0X3QJc2lnbmF0dXJlOwkJLyogIkVGSSBQQVJUIiAqLworCXVpbnQzMl90CXJldmlzaW9uOworCXVpbnQzMl90CWhlYWRlcl9zaXplOwkJLyogdXN1YWx5IDkyIGJ5dGVzICovCisJdWludDMyX3QJaGVhZGVyX2NyYzMyOwkJLyogY2hlY2tzdW0gb2YgaGVhZGVyIHdpdGggdGhpcworCQkJCQkJICogZmllbGQgemVyb2VkIGR1cmluZyBjYWxjdWxhdGlvbiAqLworCXVpbnQzMl90CXJlc2VydmVkMTsKKworCXVpbnQ2NF90CW15X2xiYTsJCQkvKiBsb2NhdGlvbiBvZiB0aGlzIGhlYWRlciBjb3B5ICovCisJdWludDY0X3QJYWx0ZXJuYXRlX2xiYTsJCS8qIGxvY2F0aW9uIG9mIHRoZSBvdGhlciBoZWFkZXIgY29weSAqLworCXVpbnQ2NF90CWZpcnN0X3VzYWJsZV9sYmE7CS8qIGxpcnN0IHVzYWJsZSBMQkEgZm9yIHBhcnRpdGlvbnMgKi8KKwl1aW50NjRfdAlsYXN0X3VzYWJsZV9sYmE7CS8qIGxhc3QgdXNhYmxlIExCQSBmb3IgcGFydGl0aW9ucyAqLworCisJZWZpX2d1aWRfdAlkaXNrX2d1aWQ7CQkvKiBkaXNrIFVVSUQgKi8KKworCXVpbnQ2NF90CXBhcnRpdGlvbl9lbnRyaWVzX2xiYTsJLyogYWx3YXlzIDIgaW4gcHJpbWFyeSBoZWFkZXIgY29weSAqLworCXVpbnQzMl90CW51bV9wYXJ0aXRpb25fZW50cmllczsKKwl1aW50MzJfdAlzaXplb2ZfcGFydGl0aW9uX2VudHJ5OworCXVpbnQzMl90CXBhcnRpdGlvbl9lbnRyeV9hcnJheV9jcmMzMjsKKworCS8qCisJICogVGhlIHJlc3Qgb2YgdGhlIGJsb2NrIGlzIHJlc2VydmVkIGJ5IFVFRkkgYW5kIG11c3QgYmUgemVyby4gRUZJCisJICogc3RhbmRhcmQgaGFuZGxlcyB0aGlzIGJ5OgorCSAqCisJICogdWludDhfdAkJcmVzZXJ2ZWQyWyBCTEtTU1pHRVQgLSA5MiBdOworCSAqCisJICogVGhpcyBkZWZpbml0aW9uIGlzIHVzZWxlc3MgaW4gcHJhY3RpY2UuIEl0IGlzIG5lY2Vzc2FyeSB0byByZWFkCisJICogd2hvbGUgYmxvY2sgZnJvbSB0aGUgZGV2aWNlIHJhdGhlciB0aGFuIHNpemVvZihzdHJ1Y3QgZ3B0X2hlYWRlcikKKwkgKiBvbmx5LgorCSAqLworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKKy8qKiogbm90IHVzZWQKK3N0cnVjdCBncHRfZW50cnlfYXR0cmlidXRlcyB7CisJdWludDY0X3QJcmVxdWlyZWRfdG9fZnVuY3Rpb246MTsKKwl1aW50NjRfdAlyZXNlcnZlZDo0NzsKKyAgICAgICAgdWludDY0X3QJdHlwZV9ndWlkX3NwZWNpZmljOjE2OworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisqKiovCisKK3N0cnVjdCBncHRfZW50cnkgeworCWVmaV9ndWlkX3QJcGFydGl0aW9uX3R5cGVfZ3VpZDsJLyogdHlwZSBVVUlEICovCisJZWZpX2d1aWRfdAl1bmlxdWVfcGFydGl0aW9uX2d1aWQ7CS8qIHBhcnRpdGlvbiBVVUlEICovCisJdWludDY0X3QJc3RhcnRpbmdfbGJhOworCXVpbnQ2NF90CWVuZGluZ19sYmE7CisKKwkvKnN0cnVjdCBncHRfZW50cnlfYXR0cmlidXRlcwlhdHRyaWJ1dGVzOyovCisKKwl1aW50NjRfdAlhdHRyaWJ1dGVzOworCisJZWZpX2NoYXIxNl90CXBhcnRpdGlvbl9uYW1lWzcyIC8gc2l6ZW9mKGVmaV9jaGFyMTZfdCldOyAvKiBVVEYtMTZMRSBzdHJpbmcqLworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKKworLyoKKyAqIEVGSSB1c2VzIGNyYzMyIHdpdGggfjAgc2VlZCBhbmQgeG9yJ3Mgd2l0aCB+MCBhdCB0aGUgZW5kLgorICovCitzdGF0aWMgaW5saW5lIHVpbnQzMl90IGNvdW50X2NyYzMyKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlyZXR1cm4gKGNyYzMyKH4wTCwgYnVmLCBsZW4pIF4gfjBMKTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyICpnZXRfbGJhX2J1ZmZlcihibGtpZF9wcm9iZSBwciwKKwkJCQkJdWludDY0X3QgbGJhLCBzaXplX3QgYnl0ZXMpCit7CisJcmV0dXJuIGJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsCisJCQlibGtpZF9wcm9iZV9nZXRfc2VjdG9yc2l6ZShwcikgKiBsYmEsIGJ5dGVzKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgZ3VpZGNtcChlZmlfZ3VpZF90IGxlZnQsIGVmaV9ndWlkX3QgcmlnaHQpCit7CisJcmV0dXJuIG1lbWNtcCgmbGVmdCwgJnJpZ2h0LCBzaXplb2YgKGVmaV9ndWlkX3QpKTsKK30KKworc3RhdGljIGludCBsYXN0X2xiYShibGtpZF9wcm9iZSBwciwgdWludDY0X3QgKmxiYSkKK3sKKwlibGtpZF9sb2ZmX3Qgc3ogPSBibGtpZF9wcm9iZV9nZXRfc2l6ZShwcik7CisJaWYgKHN6IDwgYmxraWRfcHJvYmVfZ2V0X3NlY3RvcnNpemUocHIpKQorCQlyZXR1cm4gLTE7CisKKwkqbGJhID0gKHN6ID4+IDkpIC0gMTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFByb3RlY3RpdmUgKGxlZ2FjeSkgTUJSLgorICoKKyAqIFRoaXMgTUJSIGNvbnRhaW5zIHN0YW5kYXJkIERPUyBwYXJ0aXRpb24gdGFibGUgd2l0aCBhIHNpbmdsZSBwYXJ0aXRpb24sIHR5cGUKKyAqIG9mIDB4RUUuICBUaGUgcGFydGl0aW9uIHVzdWFsbHkgZW5jb21wYXNzaW5nIHRoZSBlbnRpcmUgR1BUIGRyaXZlIC0gb3IgMlRpQgorICogZm9yIGxhcmdlIGRpc2tzLgorICoKKyAqIE5vdGUgdGhhdCBBcHBsZSB1c2VzIEdQVC9NQlIgaHlicmlkIGRpc2tzLCB3aGVyZSB0aGUgRE9TIHBhcnRpdGlvbiB0YWJsZSBpcworICogc3luY2hyb25pemVkIHdpdGggR1BULiBUaGlzIHN5bmNocm9uaXphdGlvbiBoYXMgbWFueSByZXN0cmljdGlvbiBvZiBjb3Vyc2UKKyAqIChkdWUgRE9TIFBUIGxpbWl0YXRpb25zKS4KKyAqCisgKiBOb3RlIHRoYXQgdGhlIFBNQlIgZGV0ZWN0aW9uIGlzIG9wdGlvbmFsIChlbmFibGVkIGJ5IGRlZmF1bHQpIGFuZCBjb3VsZCBiZQorICogZGlzYWJsZWQgYnkgQkxLSURfUEFSVFNfRk9QQ0VfR1BUIGZsYWcgKHNlZSBhbHNvIGJsa2lkX3BhZXJ0aXRpb25zX3NldF9mbGFncygpKS4KKyAqLworc3RhdGljIGludCBpc19wbWJyX3ZhbGlkKGJsa2lkX3Byb2JlIHByKQoreworCWludCBmbGFncyA9IGJsa2lkX3BhcnRpdGlvbnNfZ2V0X2ZsYWdzKHByKTsKKwl1bnNpZ25lZCBjaGFyICpkYXRhOworCXN0cnVjdCBkb3NfcGFydGl0aW9uICpwOworCWludCBpOworCisJaWYgKGZsYWdzICYgQkxLSURfUEFSVFNfRk9SQ0VfR1BUKQorCQlnb3RvIG9rOwkJCS8qIHNraXAgUE1CUiBjaGVjayAqLworCisJZGF0YSA9IGJsa2lkX3Byb2JlX2dldF9zZWN0b3IocHIsIDApOworCWlmICghZGF0YSkKKwkJZ290byBmYWlsZWQ7CisKKwlpZiAoIWlzX3ZhbGlkX21icl9zaWduYXR1cmUoZGF0YSkpCisJCWdvdG8gZmFpbGVkOworCisJcCA9IChzdHJ1Y3QgZG9zX3BhcnRpdGlvbiAqKSAoZGF0YSArIEJMS0lEX01TRE9TX1BUX09GRlNFVCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrLCBwKyspIHsKKwkJaWYgKHAtPnN5c190eXBlID09IEJMS0lEX0dQVF9QQVJUSVRJT04pCisJCQlnb3RvIG9rOworCX0KK2ZhaWxlZDoKKwlyZXR1cm4gMDsKK29rOgorCXJldHVybiAxOworfQorCisvKgorICogUmVhZHMgR1BUIGhlYWRlciB0byBAaGRyIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byBAaGRyIG9yIE5VTEwgaW4gY2FzZSBvZgorICogZXJyb3IuIFRoZSBmdW5jdGlvbiBhbHNvIHJldHVybnMgR1BUIGVudHJpZXMgaW4gQGVudHMuCisgKgorICogTm90ZSwgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhbGxvY2F0ZSBhbnkgbWVtb3J5LiBUaGUgR1BUIGhlYWRlciBoYXMgZml4ZWQKKyAqIHNpemUgc28gd2UgdXNlIHN0YWNrLCBhbmQgQGVudHMgcmV0dXJucyBtZW1vcnkgZnJvbSBsaWJibGtpZCBidWZmZXIgKHNvIHRoZQorICogbmV4dCBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKCkgd2lsbCBvdmVyd3JpdGUgdGhpcyBidWZmZXIpLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHZhbGlkaXR5IG9mIGhlYWRlciBhbmQgZW50cmllcyBhcnJheS4gQSBjb3JydXB0ZWQKKyAqIGhlYWRlciBpcyBub3QgcmV0dXJuZWQuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3B0X2hlYWRlciAqZ2V0X2dwdF9oZWFkZXIoCisJCQkJYmxraWRfcHJvYmUgcHIsIHN0cnVjdCBncHRfaGVhZGVyICpoZHIsCisJCQkJc3RydWN0IGdwdF9lbnRyeSAqKmVudHMsIHVpbnQ2NF90IGxiYSwKKwkJCQl1aW50NjRfdCBsYXN0bGJhKQoreworCXN0cnVjdCBncHRfaGVhZGVyICpoOworCXVpbnQzMl90IGNyYywgb3JnY3JjOworCXVpbnQ2NF90IGx1LCBmdTsKKwlzaXplX3QgZXN6OworCXVpbnQzMl90IGhzeiwgc3N6OworCisJc3N6ID0gYmxraWRfcHJvYmVfZ2V0X3NlY3RvcnNpemUocHIpOworCisJLyogd2hvbGUgc2VjdG9yIGlzIGFsbG9jYXRlZCBmb3IgR1BUIGhlYWRlciAqLworCWggPSAoc3RydWN0IGdwdF9oZWFkZXIgKikgZ2V0X2xiYV9idWZmZXIocHIsIGxiYSwgc3N6KTsKKwlpZiAoIWgpCisJCXJldHVybiBOVUxMOworCisJaWYgKGxlNjRfdG9fY3B1KGgtPnNpZ25hdHVyZSkgIT0gR1BUX0hFQURFUl9TSUdOQVRVUkUpCisJCXJldHVybiBOVUxMOworCisJaHN6ID0gbGUzMl90b19jcHUoaC0+aGVhZGVyX3NpemUpOworCisJLyogRUZJOiBUaGUgSGVhZGVyU2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiA5MiBhbmQgbXVzdCBiZSBsZXNzCisJICogICAgICB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsb2dpY2FsIGJsb2NrIHNpemUuCisJICovCisJaWYgKGhzeiA+IHNzeiB8fCBoc3ogPCBzaXplb2YoKmgpKQorCQlyZXR1cm4gTlVMTDsKKworCS8qIEhlYWRlciBoYXMgdG8gYmUgdmVyaWZpZWQgd2hlbiBoZWFkZXJfY3JjMzIgaXMgemVybyAqLworCW9yZ2NyYyA9IGxlMzJfdG9fY3B1KGgtPmhlYWRlcl9jcmMzMik7CisJaC0+aGVhZGVyX2NyYzMyID0gMDsKKworCWNyYyA9IGNvdW50X2NyYzMyKCh1bnNpZ25lZCBjaGFyICopIGgsIGhzeik7CisJaWYgKGNyYyAhPSBvcmdjcmMpIHsKKwkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoIkdQVCBoZWFkZXIgY29ycnVwdGVkXG4iKSk7CisJCXJldHVybiBOVUxMOworCX0KKwloLT5oZWFkZXJfY3JjMzIgPSBjcHVfdG9fbGUzMihvcmdjcmMpOworCisJLyogVmFsaWQgaGVhZGVyIGhhcyB0byBiZSBhdCBNeUxCQSAqLworCWlmIChsZTY0X3RvX2NwdShoLT5teV9sYmEpICE9IGxiYSkgeworCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigKKwkJCSJHUFQtPk15TEJBIG1pc21hdGNoIHdpdGggcmVhbCBwb3NpdGlvblxuIikpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlmdSA9IGxlNjRfdG9fY3B1KGgtPmZpcnN0X3VzYWJsZV9sYmEpOworCWx1ID0gbGU2NF90b19jcHUoaC0+bGFzdF91c2FibGVfbGJhKTsKKworCS8qIENoZWNrIGlmIEZpcnN0IGFuZCBMYXN0IHVzYWJsZSBMQkEgbWFrZXMgc2Vuc2UgKi8KKwlpZiAobHUgPCBmdSB8fCBmdSA+IGxhc3RsYmEgfHwgbHUgPiBsYXN0bGJhKSB7CisJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkJIkdQVC0+e0ZpcnN0LExhc3R9VXNhYmxlTEJBIG91dCBvZiByYW5nZVxuIikpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwkvKiBUaGUgaGVhZGVyIGhhcyB0byBiZSBvdXRzaWRlIHVzYWJsZSByYW5nZSAqLworCWlmIChmdSA8IGxiYSAmJiBsYmEgPCBsdSkgeworCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigiR1BUIGhlYWRlciBpcyBpbnNpZGUgdXNhYmxlIGFyZWFcbiIpKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJLyogU2l6ZSBvZiBibG9ja3Mgd2l0aCBHUFQgZW50cmllcyAqLworCWVzeiA9IGxlMzJfdG9fY3B1KGgtPm51bV9wYXJ0aXRpb25fZW50cmllcykgKgorCQkJbGUzMl90b19jcHUoaC0+c2l6ZW9mX3BhcnRpdGlvbl9lbnRyeSk7CisJaWYgKCFlc3opIHsKKwkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoIkdQVCBlbnRyaWVzIHVuZGVmaW5lZFxuIikpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwkvKiBUaGUgaGVhZGVyIHNlZW1zIHZhbGlkLCBzYXZlIGl0CisJICogKHdlIGRvbid0IGNhcmUgYWJvdXQgemVyb3MgaW4gaGRyLT5yZXNlcnZlZDIgYXJlYSkgKi8KKwltZW1jcHkoaGRyLCBoLCBzaXplb2YoKmgpKTsKKwloID0gaGRyOworCisJLyogUmVhZCBHUFQgZW50cmllcyAqLworCSplbnRzID0gKHN0cnVjdCBncHRfZW50cnkgKikgZ2V0X2xiYV9idWZmZXIocHIsCisJCQkJbGU2NF90b19jcHUoaC0+cGFydGl0aW9uX2VudHJpZXNfbGJhKSwgZXN6KTsKKwlpZiAoISplbnRzKSB7CisJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJHUFQgZW50cmllcyB1bnJlYWRhYmxlXG4iKSk7CisJCXJldHVybiBOVUxMOworCX0KKworCS8qIFZhbGlkYXRlIGVudHJpZXMgKi8KKwljcmMgPSBjb3VudF9jcmMzMigodW5zaWduZWQgY2hhciAqKSAqZW50cywgZXN6KTsKKwlpZiAoY3JjICE9IGxlMzJfdG9fY3B1KGgtPnBhcnRpdGlvbl9lbnRyeV9hcnJheV9jcmMzMikpIHsKKwkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoIkdQVCBlbnRyaWVzIGNvcnJ1cHRlZFxuIikpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gaDsKK30KKworc3RhdGljIGludCBwcm9iZV9ncHRfcHQoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXVpbnQ2NF90IGxhc3RsYmEsIGxiYTsKKwlzdHJ1Y3QgZ3B0X2hlYWRlciBoZHIsICpoOworCXN0cnVjdCBncHRfZW50cnkgKmU7CisJYmxraWRfcGFydHRhYmxlIHRhYiA9IE5VTEw7CisJYmxraWRfcGFydGxpc3QgbHM7CisJaW50IGk7CisJdWludDY0X3QgZnUsIGx1OworCXVpbnQzMl90IHNzZjsKKworCisJaWYgKGxhc3RfbGJhKHByLCAmbGFzdGxiYSkpCisJCWdvdG8gbm90aGluZzsKKworCWlmICghaXNfcG1icl92YWxpZChwcikpCisJCWdvdG8gbm90aGluZzsKKworCWggPSBnZXRfZ3B0X2hlYWRlcihwciwgJmhkciwgJmUsIChsYmEgPSBHUFRfUFJJTUFSWV9MQkEpLCBsYXN0bGJhKTsKKwlpZiAoIWgpCisJCWggPSBnZXRfZ3B0X2hlYWRlcihwciwgJmhkciwgJmUsIChsYmEgPSBsYXN0bGJhKSwgbGFzdGxiYSk7CisKKwlpZiAoIWgpCisJCWdvdG8gbm90aGluZzsKKworCWlmIChibGtpZF9wYXJ0aXRpb25zX25lZWRfdHlwZW9ubHkocHIpKQorCQkvKiBjYWxsZXIgZG9lcyBub3QgYXNrIGZvciBkZXRhaWxzIGFib3V0IHBhcnRpdGlvbnMgKi8KKwkJcmV0dXJuIDA7CisKKwlscyA9IGJsa2lkX3Byb2JlX2dldF9wYXJ0bGlzdChwcik7CisJaWYgKCFscykKKwkJZ290byBlcnI7CisKKwl0YWIgPSBibGtpZF9wYXJ0bGlzdF9uZXdfcGFydHRhYmxlKGxzLCAiZ3B0IiwgbGJhIDw8IDkpOworCWlmICghdGFiKQorCQlnb3RvIGVycjsKKworCXNzZiA9IGJsa2lkX3Byb2JlX2dldF9zZWN0b3JzaXplKHByKSAvIDUxMjsKKworCWZ1ID0gbGU2NF90b19jcHUoaC0+Zmlyc3RfdXNhYmxlX2xiYSk7CisJbHUgPSBsZTY0X3RvX2NwdShoLT5sYXN0X3VzYWJsZV9sYmEpOworCisJZm9yIChpID0gMDsgaSA8IGxlMzJfdG9fY3B1KGgtPm51bV9wYXJ0aXRpb25fZW50cmllcyk7IGkrKywgZSsrKSB7CisKKwkJYmxraWRfcGFydGl0aW9uIHBhcjsKKwkJdWludDY0X3Qgc3RhcnQgPSBsZTY0X3RvX2NwdShlLT5zdGFydGluZ19sYmEpOworCQl1aW50NjRfdCBzaXplID0gbGU2NF90b19jcHUoZS0+ZW5kaW5nX2xiYSkgLQorCQkJCQlsZTY0X3RvX2NwdShlLT5zdGFydGluZ19sYmEpICsgMVVMTDsKKworCQkvKiAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAgZW50cnkgKi8KKwkJaWYgKCFndWlkY21wKGUtPnBhcnRpdGlvbl90eXBlX2d1aWQsIEdQVF9VTlVTRURfRU5UUllfR1VJRCkpCisJCQljb250aW51ZTsKKworCQkvKiB0aGUgcGFydGl0aW9uIGhhcyB0byBpbnNpZGUgdXNhYmxlIHJhbmdlICovCisJCWlmIChzdGFydCA8IGZ1IHx8IHN0YXJ0ICsgc2l6ZSAtIDEgPiBsdSkgeworCQkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoCisJCQkJIkdQVCBlbnRyeVslZF0gb3ZlcmZsb3dzIHVzYWJsZSBhcmVhIC0gaWdub3JlXG4iLAorCQkJCWkpKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJcGFyID0gYmxraWRfcGFydGxpc3RfYWRkX3BhcnRpdGlvbihscywgdGFiLCAwLAorCQkJCQkJc3RhcnQgKiBzc2YsIHNpemUgKiBzc2YpOworCQlpZiAoIXBhcikKKwkJCWdvdG8gZXJyOworCisJCWJsa2lkX3BhcnRpdGlvbl9zZXRfdXRmOG5hbWUocGFyLAorCQkJKHVuc2lnbmVkIGNoYXIgKikgZS0+cGFydGl0aW9uX25hbWUsCisJCQlzaXplb2YoZS0+cGFydGl0aW9uX25hbWUpLCBCTEtJRF9FTkNfVVRGMTZMRSk7CisKKwkJYmxraWRfcGFydGl0aW9uX3NldF91dWlkKHBhciwKKwkJCShjb25zdCB1bnNpZ25lZCBjaGFyICopICZlLT51bmlxdWVfcGFydGl0aW9uX2d1aWQpOworCisJCWJsa2lkX3BhcnRpdGlvbl9zZXRfdHlwZV91dWlkKHBhciwKKwkJCShjb25zdCB1bnNpZ25lZCBjaGFyICopICZlLT5wYXJ0aXRpb25fdHlwZV9ndWlkKTsKKwl9CisKKwlyZXR1cm4gMDsKKworbm90aGluZzoKKwlyZXR1cm4gMTsKK2VycjoKKwlyZXR1cm4gLTE7Cit9CisKKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBncHRfcHRfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiZ3B0IiwKKwkucHJvYmVmdW5jCT0gcHJvYmVfZ3B0X3B0LAorCS5taW5zegkJPSAxMDI0ICogMTQ0MCArIDEsCS8qIGlnbm9yZSBmbG9wcGllcyAqLworCisJLyoKKwkgKiBJdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBjaGVjayBmb3IgRE9TIHNpZ25hdHVyZSAoMHhBQTU1KSwgYnV0CisJICogdW5mb3J0dW5hdGVseSBhbG1vc3QgYWxsIEVGSSBHUFQgaW1wbGVtZW5hdGlvbnMgYWxsb3cgdG8gb3B0aW9uYWx5CisJICogc2tpcCB0aGUgbGVnYWN5IE1CUi4gV2UgZm9sbG93cyB0aGlzIGJlaGF2aW9yIGFuZCBNQlIgaXMgb3B0aW9uYWwuCisJICogU2VlIGlzX3ZhbGlkX3BtYnIoKS4KKwkgKgorCSAqIEl0IG1lYW5zIHdlIGhhdmUgdG8gYWx3YXlzIGNhbGwgcHJvYmVfZ3B0X3B0KCkuCisJICovCisJLm1hZ2ljcwkJPSBCTEtJRF9OT05FX01BR0lDCit9OworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvbWFjLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvbWFjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y0YTMwYgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9tYWMuYwpAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAqIG1hYyBwYXJ0aXRpb25zIHBhcnNpbmcgY29kZQorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICoKKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJwYXJ0aXRpb25zLmgiCisKKyNkZWZpbmUgTUFDX1BBUlRJVElPTl9NQUdJQwkJMHg1MDRkCisjZGVmaW5lIE1BQ19QQVJUSVRJT05fTUFHSUNfT0xECQkweDU0NTMKKworLyoKKyAqIE1hYyBwYXJ0aXRpb24gZW50cnkKKyAqIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xlZ2FjeS9tYWMvbGlicmFyeS9kb2N1bWVudGF0aW9uL21hYy9EZXZpY2VzL0RldmljZXMtMTI2Lmh0bWwKKyAqLworc3RydWN0IG1hY19wYXJ0aXRpb24geworCXVpbnQxNl90CXNpZ25hdHVyZTsJLyogZXhwZWN0ZWQgdG8gYmUgTUFDX1BBUlRJVElPTl9NQUdJQyAqLworCXVpbnQxNl90CXJlc2VydmVkOwkvKiByZXNlcnZlZCAqLworCXVpbnQzMl90CW1hcF9jb3VudDsJLyogIyBibG9ja3MgaW4gcGFydGl0aW9uIG1hcCAqLworCXVpbnQzMl90CXN0YXJ0X2Jsb2NrOwkvKiBhYnNvbHV0ZSBzdGFydGluZyBibG9jayAjIG9mIHBhcnRpdGlvbiAqLworCXVpbnQzMl90CWJsb2NrX2NvdW50OwkvKiBudW1iZXIgb2YgYmxvY2tzIGluIHBhcnRpdGlvbiAqLworCWNoYXIJCW5hbWVbMzJdOwkvKiBwYXJ0aXRpb24gbmFtZSAqLworCWNoYXIJCXR5cGVbMzJdOwkvKiBzdHJpbmcgdHlwZSBkZXNjcmlwdGlvbiAqLworCXVpbnQzMl90CWRhdGFfc3RhcnQ7CS8qIHJlbCBibG9jayAjIG9mIGZpcnN0IGRhdGEgYmxvY2sgKi8KKwl1aW50MzJfdAlkYXRhX2NvdW50OwkvKiBudW1iZXIgb2YgZGF0YSBibG9ja3MgKi8KKwl1aW50MzJfdAlzdGF0dXM7CQkvKiBwYXJ0aXRpb24gc3RhdHVzIGJpdHMgKi8KKwl1aW50MzJfdAlib290X3N0YXJ0OwkvKiBmaXJzdCBsb2dpY2FsIGJsb2NrIG9mIGJvb3QgY29kZSAqLworCXVpbnQzMl90CWJvb3Rfc2l6ZTsJLyogc2l6ZSBvZiBib290IGNvZGUsIGluIGJ5dGVzICovCisJdWludDMyX3QJYm9vdF9sb2FkOwkvKiBib290IGNvZGUgbG9hZCBhZGRyZXNzICovCisJdWludDMyX3QJYm9vdF9sb2FkMjsJLyogcmVzZXJ2ZWQgKi8KKwl1aW50MzJfdAlib290X2VudHJ5OwkvKiBib290IGNvZGUgZW50cnkgcG9pbnQgKi8KKwl1aW50MzJfdAlib290X2VudHJ5MjsJLyogcmVzZXJ2ZWQgKi8KKwl1aW50MzJfdAlib290X2Nrc3VtOwkvKiBib290IGNvZGUgY2hlY2tzdW0gKi8KKwljaGFyCQlwcm9jZXNzb3JbMTZdOwkvKiBpZGVudGlmaWVzIElTQSBvZiBib290ICovCisKKwkvKiB0aGVyZSBpcyBtb3JlIHN0dWZmIGFmdGVyIHRoaXMgdGhhdCB3ZSBkb24ndCBuZWVkICovCit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisvKgorICogRHJpdmVyIGRlc2NyaXB0b3Igc3RydWN0dXJlLCBpbiBibG9jayAwCisgKiBodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9sZWdhY3kvbWFjL2xpYnJhcnkvZG9jdW1lbnRhdGlvbi9tYWMvRGV2aWNlcy9EZXZpY2VzLTEyMS5odG1sCisgKi8KK3N0cnVjdCBtYWNfZHJpdmVyX2Rlc2MgeworCXVpbnQxNl90CXNpZ25hdHVyZTsJLyogZXhwZWN0ZWQgdG8gYmUgTUFDX0RSSVZFUl9NQUdJQyAqLworCXVpbnQxNl90CWJsb2NrX3NpemU7CS8qIGJsb2NrIHNpemUgb2YgdGhlIGRldmljZSAqLworCXVpbnQzMl90CWJsb2NrX2NvdW50OwkvKiBudW1iZXIgb2YgYmxvY2tzIG9uIHRoZSBkZXZpY2UgKi8KKworCS8qIHRoZXJlIGlzIG1vcmUgc3R1ZmYgYWZ0ZXIgdGhpcyB0aGF0IHdlIGRvbid0IG5lZWQgKi8KK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciAqZ2V0X21hY19ibG9jaygKKwkJCQkJYmxraWRfcHJvYmUgcHIsCisJCQkJCXN0cnVjdCBtYWNfZHJpdmVyX2Rlc2MgKm1kLAorCQkJCQl1aW50MzJfdCBudW0pCit7CisJcmV0dXJuIGJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsCisJCQkoYmxraWRfbG9mZl90KSBudW0gKiBtZC0+YmxvY2tfc2l6ZSwgbnVtKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgaGFzX3BhcnRfc2lnbmF0dXJlKHN0cnVjdCBtYWNfcGFydGl0aW9uICpwKQoreworCXJldHVybgliZTE2X3RvX2NwdShwLT5zaWduYXR1cmUpID09IE1BQ19QQVJUSVRJT05fTUFHSUMgfHwKKwkJYmUxNl90b19jcHUocC0+c2lnbmF0dXJlKSA9PSBNQUNfUEFSVElUSU9OX01BR0lDX09MRDsKK30KKworc3RhdGljIGludCBwcm9iZV9tYWNfcHQoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBtYWNfZHJpdmVyX2Rlc2MgKm1kOworCXN0cnVjdCBtYWNfcGFydGl0aW9uICpwOworCWJsa2lkX3BhcnR0YWJsZSB0YWIgPSBOVUxMOworCWJsa2lkX3BhcnRsaXN0IGxzOworCWludCBpOworCXVpbnQxNl90IHNzZjsJLyogc2VjdG9yIHNpemUgZnJhZ21lbnQgKi8KKwl1aW50MzJfdCBuYmxrczsKKworCisJLyogVGhlIGRyaXZlciBkZXNjcmlwdG9yIHJlY29yZCBpcyBhbHdheXMgbG9jYXRlZCBhdCBwaHlzaWNhbCBibG9jayAwLAorCSAqIHRoZSBmaXJzdCBibG9jayBvbiB0aGUgZGlzay4KKwkgKi8KKwltZCA9IChzdHJ1Y3QgbWFjX2RyaXZlcl9kZXNjICopIGJsa2lkX3Byb2JlX2dldF9zZWN0b3IocHIsIDApOworCWlmICghbWQpCisJCWdvdG8gbm90aGluZzsKKworCisJLyogVGhlIHBhcnRpdGlvbiBtYXAgYWx3YXlzIGJlZ2lucyBhdCBwaHlzaWNhbCBibG9jayAxLAorCSAqIHRoZSBzZWNvbmQgYmxvY2sgb24gdGhlIGRpc2suCisJICovCisJcCA9IChzdHJ1Y3QgbWFjX3BhcnRpdGlvbiAqKSBnZXRfbWFjX2Jsb2NrKHByLCBtZCwgMSk7CisJaWYgKCFwKQorCQlnb3RvIG5vdGhpbmc7CisKKwkvKiBjaGVjayB0aGUgZmlyc3QgcGFydGl0aW9uIHNpZ25hdHVyZSAqLworCWlmICghaGFzX3BhcnRfc2lnbmF0dXJlKHApKQorCQlnb3RvIG5vdGhpbmc7CisKKwlpZiAoYmxraWRfcGFydGl0aW9uc19uZWVkX3R5cGVvbmx5KHByKSkKKwkJLyogY2FsbGVyIGRvZXMgbm90IGFzayBmb3IgZGV0YWlscyBhYm91dCBwYXJ0aXRpb25zICovCisJCXJldHVybiAwOworCisJbHMgPSBibGtpZF9wcm9iZV9nZXRfcGFydGxpc3QocHIpOworCWlmICghbHMpCisJCWdvdG8gZXJyOworCisJdGFiID0gYmxraWRfcGFydGxpc3RfbmV3X3BhcnR0YWJsZShscywgIm1hYyIsIDApOworCWlmICghdGFiKQorCQlnb3RvIGVycjsKKworCXNzZiA9IG1kLT5ibG9ja19zaXplIC8gNTEyOworCW5ibGtzID0gYmUzMl90b19jcHUocC0+bWFwX2NvdW50KTsKKworCWZvciAoaSA9IDE7IGkgPD0gbmJsa3M7ICsraSkgeworCQlibGtpZF9wYXJ0aXRpb24gcGFyOworCQl1aW50MzJfdCBzdGFydDsKKwkJdWludDMyX3Qgc2l6ZTsKKworCQlwID0gKHN0cnVjdCBtYWNfcGFydGl0aW9uICopIGdldF9tYWNfYmxvY2socHIsIG1kLCBpKTsKKwkJaWYgKCFwKQorCQkJZ290byBub3RoaW5nOworCQlpZiAoIWhhc19wYXJ0X3NpZ25hdHVyZShwKSkKKwkJCWdvdG8gbm90aGluZzsKKworCQlpZiAoYmUzMl90b19jcHUocC0+bWFwX2NvdW50KSAhPSBuYmxrcykgeworCQkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoCisJCQkJIm1hYzogaW5jb25zaXN0ZW4gbWFwX2NvdW50IGluIHBhcnRpdGlvbiBtYXAsICIKKwkJCSAgICAgICAgImVudHJ5WzBdOiAlZCwgZW50cnlbJWRdOiAlZFxuIiwKKwkJCQluYmxrcywgaSAtIDEsCisJCQkJYmUzMl90b19jcHUocC0+bWFwX2NvdW50KSkpOworCQl9CisKKwkJLyoKKwkJICogbm90ZSB0aGF0IGxpYnBhcnRlZCBpZ25vcmVzIHNvbWUgbWFjIHBhcnRpdGlvbnMgYWNjb3JkaW5nIHRvCisJCSAqIHRoZSBwYXJ0aXRpb24gbmFtZSAoZS5nLiAiQXBwbGVfRnJlZSIgb3IgIkFwcGxlX1ZvaWQiKS4gV2UKKwkJICogZm9sbG93cyBMaW51eCBrZXJuZWwgYW5kIGFsbCBwYXJ0aXRpb25zIGFyZSB2aXNpYmxlCisJCSAqLworCisJCXN0YXJ0ID0gYmUzMl90b19jcHUocC0+c3RhcnRfYmxvY2spICogc3NmOworCQlzaXplID0gYmUzMl90b19jcHUocC0+YmxvY2tfY291bnQpICogc3NmOworCisJCXBhciA9IGJsa2lkX3BhcnRsaXN0X2FkZF9wYXJ0aXRpb24obHMsIHRhYiwgMCwgc3RhcnQsIHNpemUpOworCQlpZiAoIXBhcikKKwkJCWdvdG8gZXJyOworCisJCWJsa2lkX3BhcnRpdGlvbl9zZXRfbmFtZShwYXIsICh1bnNpZ25lZCBjaGFyICopIHAtPm5hbWUsCisJCQkJCQlzaXplb2YocC0+bmFtZSkpOworCisJCWJsa2lkX3BhcnRpdGlvbl9zZXRfdHlwZV9zdHJpbmcocGFyLCAodW5zaWduZWQgY2hhciAqKSBwLT50eXBlLAorCQkJCQkJc2l6ZW9mKHAtPnR5cGUpKTsKKwl9CisKKwlyZXR1cm4gMDsKKworbm90aGluZzoKKwlyZXR1cm4gMTsKK2VycjoKKwlyZXR1cm4gLTE7Cit9CisKKy8qCisgKiBNYWMgZGlzayBhbHdheXMgYmVnaW4gd2l0aCAiRHJpdmVyIERlc2NyaXB0b3IgUmVjb3JkIgorICogKHN0cnVjdCBtYWNfZHJpdmVyX2Rlc2MpIGFuZCBtYWdpYyAweDQ1NTIuCisgKi8KK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gbWFjX3B0X2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gIm1hYyIsCisJLnByb2JlZnVuYwk9IHByb2JlX21hY19wdCwKKwkubWFnaWNzCQk9CisJeworCQkvKiBiaWctZW5kaWFuIG1hZ2ljIHN0cmluZyAqLworCQl7IC5tYWdpYyA9ICJceDQ1XHg1MiIsIC5sZW4gPSAyIH0sCisJCXsgTlVMTCB9CisJfQorfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL21pbml4LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvbWluaXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmY5MTQwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL21pbml4LmMKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIE1pbml4IHBhcnRpdGlvbiBwYXJzaW5nIGNvZGUKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJwYXJ0aXRpb25zLmgiCisjaW5jbHVkZSAiZG9zLmgiCisKKy8qCisgKiBNaW5peCBzdWJwYXJ0aXRpb25zIGFyZSBhbHdheXMgd2l0aGluIHByaW1hcnkgZG9zIHBhcnRpdGlvbi4KKyAqLworI2RlZmluZSBNSU5JWF9NQVhQQVJUSVRJT05TIDQKKworc3RhdGljIGludCBwcm9iZV9taW5peF9wdChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IGRvc19wYXJ0aXRpb24gKnA7CisJYmxraWRfcGFydHRhYmxlIHRhYiA9IE5VTEw7CisJYmxraWRfcGFydGl0aW9uIHBhcmVudDsKKwlibGtpZF9wYXJ0bGlzdCBsczsKKwl1bnNpZ25lZCBjaGFyICpkYXRhOworCWludCBpOworCisJZGF0YSA9IGJsa2lkX3Byb2JlX2dldF9zZWN0b3IocHIsIDApOworCWlmICghZGF0YSkKKwkJZ290byBub3RoaW5nOworCisJbHMgPSBibGtpZF9wcm9iZV9nZXRfcGFydGxpc3QocHIpOworCWlmICghbHMpCisJCWdvdG8gZXJyOworCisJLyogUGFyZW50IGlzIHJlcXVpcmVkLCBiZWNhdXNlIE1pbml4IHVzZXMgdGhlIHNhbWUgUFQgYXMgRE9TIGFuZAorCSAqIGRpZmZlcmVuY2UgaXMgb25seSBpbiBwcmltYXJ5IHBhcnRpdGlvbiAocGFyZW50KSB0eXBlLgorCSAqLworCXBhcmVudCA9IGJsa2lkX3BhcnRsaXN0X2dldF9wYXJlbnQobHMpOworCWlmICghcGFyZW50KQorCQlnb3RvIG5vdGhpbmc7CisKKwlpZiAoYmxraWRfcGFydGl0aW9uX2dldF90eXBlKHBhcmVudCkgIT0gQkxLSURfTUlOSVhfUEFSVElUSU9OKQorCQlnb3RvIG5vdGhpbmc7CisKKwlpZiAoYmxraWRfcGFydGl0aW9uc19uZWVkX3R5cGVvbmx5KHByKSkKKwkJLyogY2FsbGVyIGRvZXMgbm90IGFzayBmb3IgZGV0YWlscyBhYm91dCBwYXJ0aXRpb25zICovCisJCXJldHVybiAwOworCisJcCA9IChzdHJ1Y3QgZG9zX3BhcnRpdGlvbiAqKSAoZGF0YSArIEJMS0lEX01TRE9TX1BUX09GRlNFVCk7CisKKwl0YWIgPSBibGtpZF9wYXJ0bGlzdF9uZXdfcGFydHRhYmxlKGxzLCAibWluaXgiLCBCTEtJRF9NU0RPU19QVF9PRkZTRVQpOworCWlmICghdGFiKQorCQlnb3RvIGVycjsKKworCWZvciAoaSA9IDA7IGkgPCBNSU5JWF9NQVhQQVJUSVRJT05TOyBpKyssIHArKykgeworCQl1aW50MzJfdCBzdGFydCwgc2l6ZTsKKworCQlpZiAocC0+c3lzX3R5cGUgIT0gQkxLSURfTUlOSVhfUEFSVElUSU9OKQorCQkJY29udGludWU7CisKKwkJc3RhcnQgPSBkb3NfcGFydGl0aW9uX3N0YXJ0KHApOworCQlzaXplID0gZG9zX3BhcnRpdGlvbl9zaXplKHApOworCisJCWlmIChwYXJlbnQgJiYgIWJsa2lkX2lzX25lc3RlZF9kaW1lbnNpb24ocGFyZW50LCBzdGFydCwgc2l6ZSkpIHsKKwkJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkJCSJXQVJOSU5HOiBtaW5peCBwYXJ0aXRpb24gKCVkKSBvdmVyZmxvdyAiCisJCQkJImRldGVjdGVkLCBpZ25vcmVcbiIsIGkpKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKCFibGtpZF9wYXJ0bGlzdF9hZGRfcGFydGl0aW9uKGxzLCB0YWIsCisJCQkJCXAtPnN5c190eXBlLCBzdGFydCwgc2l6ZSkpCisJCQlnb3RvIGVycjsKKwl9CisKKwlyZXR1cm4gMDsKKworbm90aGluZzoKKwlyZXR1cm4gMTsKK2VycjoKKwlyZXR1cm4gLTE7Cit9CisKKy8qIHNhbWUgYXMgRE9TICovCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIG1pbml4X3B0X2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gIm1pbml4IiwKKwkucHJvYmVmdW5jCT0gcHJvYmVfbWluaXhfcHQsCisJLm1hZ2ljcwkJPQorCXsKKwkJeyAubWFnaWMgPSAiXHg1NVx4QUEiLCAubGVuID0gMiwgLnNib2ZmID0gNTEwIH0sCisJCXsgTlVMTCB9CisJfQorfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL3BhcnRpdGlvbnMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9wYXJ0aXRpb25zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThkMDMxMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9wYXJ0aXRpb25zLmMKQEAgLTAsMCArMSwxMDMzIEBACisvKgorICogcGFydGl0aW9ucyAtIHBhcnRpdGlvbiB0YWJsZXMgcGFyc2luZworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCisjaW5jbHVkZSAicGFydGl0aW9ucy5oIgorCisvKioKKyAqIFNFQ1RJT046cGFydGl0aW9ucworICogQHRpdGxlOiBQYXJ0aXRpb25zIHByb2JpbmcKKyAqIEBzaG9ydF9kZXNjcmlwdGlvbjogcGFydGl0aW9ucyB0YWJsZXMgZGV0ZWN0aW9uIGFuZCBwYXJzaW5nCisgKgorICogVGhpcyBjaGFpbiBzdXBwb3J0cyBiaW5hcnkgYW5kIE5BTUU9dmFsdWUgaW50ZXJmYWNlcywgYnV0IGNvbXBsZXRlIFBUCisgKiBkZXNjcmlwdGlvbiBpcyBwcm92aWRlZCBieSBiaW5hcnkgaW50ZXJmYWNlIG9ubHkuCisgKgorICogTkFNRT12YWx1ZSBpbnRlcmZhY2UsIHN1cHBvcnRlZCB0YWdzOgorICoKKyAqIEBQVFRZUEU6IHBhcnRpdGlvbiB0YWJsZSB0eXBlIChkb3MsIGdwdCwgZXRjLikuCisgKgorICogRXhhbXBsZToKKyAqCisgKiA8aW5mb3JtYWxleGFtcGxlPgorICogIDxwcm9ncmFtbGlzdGluZz4KKyAqIGJsa2lkX3Byb2JlIHByOworICogY29uc3QgY2hhciAqcHRuYW1lOworICoKKyAqIHByID0gYmxraWRfbmV3X3Byb2JlX2Zyb21fZmlsZW5hbWUoZGV2bmFtZSk7CisgKiBpZiAoIXByKQorICoJZXJyKCIlczogZmFpbGQgdG8gb3BlbiBkZXZpY2UiLCBkZXZuYW1lKTsKKyAqCisgKiBibGtpZF9wcm9iZV9lbmFibGVfcGFydGl0aW9ucyhwciwgVFJVRSk7CisgKiBibGtpZF9kb19mdWxscHJvYmUocHIpOworICoKKyAqIGJsa2lkX3Byb2JlX2xvb2t1cF92YWx1ZShwciwgIlBUVFlQRSIsICZwdG5hbWUsIE5VTEwpOworICogcHJpbnRmKCIlcyBwYXJ0aXRpb24gdHlwZSBkZXRlY3RlZFxuIiwgcHR0eXBlKTsKKyAqCisgKiBibGtpZF9mcmVlX3Byb2JlKHByKTsKKyAqCisgKiAvLyBkb24ndCBmb3JnZXQgdG8gY2hlY2sgcmV0dXJuIGNvZGVzIGluIHlvdXIgY29kZSEKKyAqICA8L3Byb2dyYW1saXN0aW5nPgorICogPC9pbmZvcm1hbGV4YW1wbGU+CisgKgorICogQmluYXJ5IGludGVyZmFjZToKKyAqCisgKiA8aW5mb3JtYWxleGFtcGxlPgorICogIDxwcm9ncmFtbGlzdGluZz4KKyAqIGJsa2lkX3Byb2JlIHByOworICogYmxraWRfcGFydGxpc3QgbHM7CisgKiBpbnQgbnBhcnRzLCBpOworICoKKyAqIHByID0gYmxraWRfbmV3X3Byb2JlX2Zyb21fZmlsZW5hbWUoZGV2bmFtZSk7CisgKiBpZiAoIXByKQorICoJZXJyKCIlczogZmFpbGQgdG8gb3BlbiBkZXZpY2UiLCBkZXZuYW1lKTsKKyAqCisgKiBscyA9IGJsa2lkX3Byb2JlX2dldF9wYXJ0aXRpb25zKHByKTsKKyAqIG5wYXJ0cyA9IGJsa2lkX3BhcnRsaXN0X251bW9mX3BhcnRpdGlvbnMobHMpOworICoKKyAqIGZvciAoaSA9IDA7IGkgPCBucGFydHM7IGkrKykgeworICogICAgICBibGtpZF9wYXJ0aXRpb24gcGFyID0gYmxraWRfcGFydGxpc3RfZ2V0X3BhcnRpdGlvbihscywgaSk7CisgKiAgICAgIHByaW50ZigiIyVkOiAlbGx1ICVsbHUgIDB4JXgiLAorICogICAgICAgICAgICAgICBibGtpZF9wYXJ0aXRpb25fZ2V0X3BhcnRubyhwYXIpLAorICogICAgICAgICAgICAgICBibGtpZF9wYXJ0aXRpb25fZ2V0X3N0YXJ0KHBhciksCisgKiAgICAgICAgICAgICAgIGJsa2lkX3BhcnRpdGlvbl9nZXRfc2l6ZShwYXIpLAorICogICAgICAgICAgICAgICBibGtpZF9wYXJ0aXRpb25fZ2V0X3R5cGUocGFyKSk7CisgKiB9CisgKgorICogYmxraWRfZnJlZV9wcm9iZShwcik7CisgKgorICogLy8gZG9uJ3QgZm9yZ2V0IHRvIGNoZWNrIHJldHVybiBjb2RlcyBpbiB5b3VyIGNvZGUhCisgKiAgPC9wcm9ncmFtbGlzdGluZz4KKyAqIDwvaW5mb3JtYWxleGFtcGxlPgorICovCisKKy8qCisgKiBDaGFpbiBkcml2ZXIgZnVuY3Rpb24KKyAqLworc3RhdGljIGludCBwYXJ0aXRpb25zX3Byb2JlKGJsa2lkX3Byb2JlIHByLCBzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobik7CitzdGF0aWMgdm9pZCBwYXJ0aXRpb25zX2ZyZWVfZGF0YShibGtpZF9wcm9iZSBwciwgdm9pZCAqZGF0YSk7CisKKy8qCisgKiBQYXJ0aXRpb25zIGNoYWluIHByb2JpbmcgZnVuY3Rpb25zCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvICppZGluZm9zW10gPQoreworCSZhaXhfcHRfaWRpbmZvLAorCSZzZ2lfcHRfaWRpbmZvLAorCSZzdW5fcHRfaWRpbmZvLAorCSZkb3NfcHRfaWRpbmZvLAorCSZncHRfcHRfaWRpbmZvLAorCSZtYWNfcHRfaWRpbmZvLAorCSZic2RfcHRfaWRpbmZvLAorCSZ1bml4d2FyZV9wdF9pZGluZm8sCisJJnNvbGFyaXNfeDg2X3B0X2lkaW5mbywKKwkmbWluaXhfcHRfaWRpbmZvCit9OworCisvKgorICogRHJpdmVyIGRlZmluaXRpb24KKyAqLworY29uc3Qgc3RydWN0IGJsa2lkX2NoYWluZHJ2IHBhcnRpdGlvbnNfZHJ2ID0geworCS5pZCAgICAgICAgICAgPSBCTEtJRF9DSEFJTl9QQVJUUywKKwkubmFtZSAgICAgICAgID0gInBhcnRpdGlvbnMiLAorCS5kZmx0X2VuYWJsZWQgPSBGQUxTRSwKKwkuaWRpbmZvcyAgICAgID0gaWRpbmZvcywKKwkubmlkaW5mb3MgICAgID0gQVJSQVlfU0laRShpZGluZm9zKSwKKwkuaGFzX2ZsdHIgICAgID0gVFJVRSwKKwkucHJvYmUgICAgICAgID0gcGFydGl0aW9uc19wcm9iZSwKKwkuc2FmZXByb2JlICAgID0gcGFydGl0aW9uc19wcm9iZSwKKwkuZnJlZV9kYXRhICAgID0gcGFydGl0aW9uc19mcmVlX2RhdGEKK307CisKKworLyoKKyAqIEZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIHJlc3Qgb2YgbGliYmxraWQgQVBJICh3aXRoIHRoZSBvbGQgaGlnaC1sZXZlbAorICogQVBJKSB3ZSB1c2UgY29tcGxldGVseSBvcGFxdWUgdHlwZWRlZnMgZm9yIGFsbCBzdHJ1Y3RzLiBEb24ndCBmb3JnZXQgdGhhdAorICogdGhlIGZpbmFsIGJsa2lkXyogdHlwZXMgYXJlIHBvaW50ZXJzISBTZWUgYmxraWQuaC4KKyAqCisgKiBbSnVzdCBmb3IgdGhlIHJlY29yZCwgSSBoYXRlIHR5cGVkZWYgZm9yIHBvaW50ZXJzIC0ta3pha10KKyAqLworCisvKiBleHBvcnRlZCBhcyBvcGFxdWUgdHlwZSAiYmxraWRfcGFydHRhYmxlIiAqLworc3RydWN0IGJsa2lkX3N0cnVjdF9wYXJ0dGFibGUgeworCWNvbnN0IGNoYXIJKnR5cGU7CQkvKiBwYXJ0aXRpb24gdGFibGUgdHlwZSAqLworCWJsa2lkX2xvZmZfdAlvZmZzZXQ7CQkvKiBiZWdpbiBvZiB0aGUgcGFydGl0aW9uIHRhYmxlICovCisJaW50CQlucGFydHM7CQkvKiBudW1iZXIgb2YgcGFydGl0aW9ucyAqLworCWJsa2lkX3BhcnRpdGlvbglwYXJlbnQ7CQkvKiBwYXJlbnQgb2YgbmVzdGVkIHBhcnRpdGlvbiB0YWJsZSAqLworCisJc3RydWN0IGxpc3RfaGVhZCB0X3RhYnM7CS8qIGFsbCB0YWJsZXMgKi8KK307CisKKy8qIGV4cG9ydGVkIGFzIG9wYXF1ZSB0eXBlICJibGtpZF9wYXJ0aXRpb24iICovCitzdHJ1Y3QgYmxraWRfc3RydWN0X3BhcnRpdGlvbiB7CisJYmxraWRfbG9mZl90CXN0YXJ0OwkJLyogYmVnaW4gb2YgdGhlIHBhcnRpdGlvbiAqLworCWJsa2lkX2xvZmZfdAlzaXplOwkJLyogc2l6ZSBvZiB0aGUgcGFydGl0aW9ucyAqLworCisJaW50CQl0eXBlOwkJLyogcGFydGl0aW9uIHR5cGUgKi8KKwljaGFyCQl0eXBlc3RyWzM3XTsJLyogcGFydGl0aW9uIHR5cGUgc3RyaW5nIChHUFQgYW5kIE1hYykgKi8KKworCWludAkJcGFydG5vOwkJLyogcGFydGl0aW9uIG51bWJlciAqLworCWNoYXIJCXV1aWRbMzddOwkvKiBVVUlEICh3aGVuIHN1cHBvcnRlZCBieSBQVCksIGUuZyBHUFQgKi8KKwl1bnNpZ25lZCBjaGFyCW5hbWVbMTI4XTsJLyogUGFydGl0aW9uIGluIFVURjggbmFtZSAod2hlbiBzdXBwb3J0ZSBieSBQVCksIGUuZy4gTWFjICovCisKKwlibGtpZF9wYXJ0dGFibGUJdGFiOwkJLyogcGFydGl0aW9uIHRhYmxlICovCit9OworCisvKiBleHBvcnRlZCBhcyBvcGFxdWUgdHlwZSAiYmxraWRfcGFydGxpc3QiICovCitzdHJ1Y3QgYmxraWRfc3RydWN0X3BhcnRsaXN0IHsKKwlpbnQJCW5leHRfcGFydG5vOwkvKiBuZXh0IHBhcnRpdGlvbiBudW1iZXIgKi8KKwlibGtpZF9wYXJ0aXRpb24gbmV4dF9wYXJlbnQ7CS8qIG5leHQgcGFyZW50IGlmIHBhcnNpbmcgbmVzdGVkIFBUICovCisKKwlpbnQJCW5wYXJ0czsJCS8qIG51bWJlciBvZiBwYXJ0aXRpb25zICovCisJaW50CQlucGFydHNfbWF4OwkvKiBtYXgubnVtYmVyIG9mIHBhcnRpdGlvbnMgKi8KKwlibGtpZF9wYXJ0aXRpb24JcGFydHM7CQkvKiBhcnJheSBvZiBwYXJ0aXRpb25zICovCisKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxfdGFiczsJLyogbGlzdCBvZiBwYXJ0aXRpb24gdGFibGVzICovCit9OworCisvKioKKyAqIGJsa2lkX3Byb2JlX2VuYWJsZV9wYXJ0aXRpb25zOgorICogQHByOiBwcm9iZQorICogQGVuYWJsZTogVFJVRS9GQUxTRQorICoKKyAqIEVuYWJsZXMvZGlzYWJsZXMgdGhlIHBhcnRpdGlvbnMgcHJvYmluZyBmb3Igbm9uLWJpbmFyeSBpbnRlcmZhY2UuCisgKgorICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQgYmxraWRfcHJvYmVfZW5hYmxlX3BhcnRpdGlvbnMoYmxraWRfcHJvYmUgcHIsIGludCBlbmFibGUpCit7CisJaWYgKCFwcikKKwkJcmV0dXJuIC0xOworCXByLT5jaGFpbnNbQkxLSURfQ0hBSU5fUEFSVFNdLmVuYWJsZWQgPSBlbmFibGU7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfc2V0X3BhcnRpdGlvbnNfZmxhZ3M6CisgKiBAcHI6IHByb2JlcgorICogQGZsYWdzOiBCTEtJRF9QQVJUU18qIGZsYWdzCisgKgorICogU2V0cyBwcm9iaW5nIGZsYWdzIHRvIHRoZSBwYXJ0aXRpb25zIHByb2Jlci4gVGhpcyBmdW5jdGlvbiBpcyBvcHRpb25hbC4KKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludCBibGtpZF9wcm9iZV9zZXRfcGFydGl0aW9uc19mbGFncyhibGtpZF9wcm9iZSBwciwgaW50IGZsYWdzKQoreworCWlmICghcHIpCisJCXJldHVybiAtMTsKKworCXByLT5jaGFpbnNbQkxLSURfQ0hBSU5fUEFSVFNdLmZsYWdzID0gZmxhZ3M7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfcmVzZXRfcGFydGl0aW9uc19maWx0ZXI6CisgKiBAcHI6IHByb2JlcgorICoKKyAqIFJlc2V0cyBwYXJ0aXRpb25zIHByb2JpbmcgZmlsdGVyCisgKgorICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQgYmxraWRfcHJvYmVfcmVzZXRfcGFydGl0aW9uc19maWx0ZXIoYmxraWRfcHJvYmUgcHIpCit7CisJcmV0dXJuIF9fYmxraWRfcHJvYmVfcmVzZXRfZmlsdGVyKHByLCBCTEtJRF9DSEFJTl9QQVJUUyk7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfaW52ZXJ0X3BhcnRpdGlvbnNfZmlsdGVyOgorICogQHByOiBwcm9iZXIKKyAqCisgKiBJbnZlcnRzIHBhcnRpdGlvbnMgcHJvYmluZyBmaWx0ZXIKKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludCBibGtpZF9wcm9iZV9pbnZlcnRfcGFydGl0aW9uc19maWx0ZXIoYmxraWRfcHJvYmUgcHIpCit7CisJcmV0dXJuIF9fYmxraWRfcHJvYmVfaW52ZXJ0X2ZpbHRlcihwciwgQkxLSURfQ0hBSU5fUEFSVFMpOworfQorCisvKioKKyAqIGJsa2lkX3Byb2JlX2ZpbHRlcl9wYXJ0aXRpb25zX3R5cGU6CisgKiBAcHI6IHByb2JlcgorICogQGZsYWc6IGZpbHRlciBCTEtJRF9GTFRSX3tOT1RJTixPTkxZSU59IGZsYWcKKyAqIEBuYW1lczogTlVMTCB0ZXJtaW5hdGVkIGFycmF5IG9mIHByb2JpbmcgZnVuY3Rpb24gbmFtZXMgKGUuZy4gInZmYXQiKS4KKyAqCisgKiAgQkxLSURfRkxUUl9OT1RJTiAgLSBwcm9iZSBmb3IgYWxsIGl0ZW1zIHdoaWNoIGFyZSBOT1QgSU4gQG5hbWVzCisgKiAgQkxLSURfRkxUUl9PTkxZSU4gLSBwcm9iZSBmb3IgaXRlbXMgd2hpY2ggYXJlIElOIEBuYW1lcworICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2Vzcywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX3Byb2JlX2ZpbHRlcl9wYXJ0aXRpb25zX3R5cGUoYmxraWRfcHJvYmUgcHIsIGludCBmbGFnLCBjaGFyICpuYW1lc1tdKQoreworCXJldHVybiBfX2Jsa2lkX3Byb2JlX2ZpbHRlcl90eXBlcyhwciwgQkxLSURfQ0hBSU5fUEFSVFMsIGZsYWcsIG5hbWVzKTsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9nZXRfcGFydGl0aW9uczoKKyAqIEBwcjogcHJvYmUKKyAqCisgKiBUaGlzIGlzIGEgYmluYXJ5IGludGVyZmFjZSBmb3IgcGFydGl0aW9ucy4gU2VlIGFsc28gYmxraWRfcGFydGxpc3RfKgorICogZnVuY3Rpb25zLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgaW5kZXBlbmRlbnQgb24gYmxraWRfZG9fW3NhZmUsZnVsbF1wcm9iZSgpIGFuZAorICogYmxraWRfcHJvYmVfZW5hYmxlX3BhcnRpdGlvbnMoKSBjYWxscy4KKyAqCisgKiBXQVJOSU5HOiB0aGUgcmV0dXJuZWQgb2JqZWN0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQKKyAqICAgICAgICAgIGJsa2lkX3Byb2JlX2dldF9wYXJ0aXRpb25zKCkgY2FsbCBmb3IgdGhlIHNhbWUgQHByLiBJZiB5b3Ugd2FudCB0bworICogICAgICAgICAgdXNlIG1vcmUgYmxraWRfcGFydGxpc3Qgb2JqZWN0cyBpbiB0aGUgc2FtZSB0aW1lIHlvdSBoYXZlIHRvIGNyZWF0ZQorICogICAgICAgICAgbW9yZSBibGtpZF9wcm9iZSBoYW5kbGVycyAoc2VlIGJsa2lkX25ld19wcm9iZSgpKS4KKyAqCisgKiBUT0RPOiAgICBhZGQgYmxraWRfcmVmKCkgYW5kIGJsa2lkX3VucmVmKCkgdG8gYWxsb3dzIHRvIHVzZSBibGtpZF9wYXJ0bGlzdAorICogICAgICAgICAgaW5kZXBlbmRlbnRseSBvbiBsaWJibGtpZCBwcm9iaW5nIHN0dWZmLgorICoKKyAqIFJldHVybnM6IGxpc3Qgb2YgcGFydGl0aW9ucywgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitibGtpZF9wYXJ0bGlzdCBibGtpZF9wcm9iZV9nZXRfcGFydGl0aW9ucyhibGtpZF9wcm9iZSBwcikKK3sKKwlyZXR1cm4gKGJsa2lkX3BhcnRsaXN0KSBibGtpZF9wcm9iZV9nZXRfYmluYXJ5X2RhdGEocHIsCisJCQkmcHItPmNoYWluc1tCTEtJRF9DSEFJTl9QQVJUU10pOworfQorCisvKiBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seSAqLworYmxraWRfcGFydGxpc3QgYmxraWRfcHJvYmVfZ2V0X3BhcnRsaXN0KGJsa2lkX3Byb2JlIHByKQoreworCXJldHVybiAoYmxraWRfcGFydGxpc3QpIHByLT5jaGFpbnNbQkxLSURfQ0hBSU5fUEFSVFNdLmRhdGE7Cit9CisKK3N0YXRpYyB2b2lkIHJlZl9wYXJ0dGFibGUoYmxraWRfcGFydHRhYmxlIHRhYikKK3sKKwl0YWItPm5wYXJ0cysrOworfQorCitzdGF0aWMgdm9pZCB1bnJlZl9wYXJ0dGFibGUoYmxraWRfcGFydHRhYmxlIHRhYikKK3sKKwl0YWItPm5wYXJ0cy0tOworCisJaWYgKHRhYi0+bnBhcnRzIDw9IDApIHsKKwkJbGlzdF9kZWwoJnRhYi0+dF90YWJzKTsKKwkJZnJlZSh0YWIpOworCX0KK30KKworLyogZnJlZSBhbGwgYWxsb2NhdGVkIHBhcnR0YWJsZXMgKi8KK3N0YXRpYyB2b2lkIGZyZWVfcGFydHRhYmxlcyhibGtpZF9wYXJ0bGlzdCBscykKK3sKKwlpZiAoIWxzIHx8ICFscy0+bF90YWJzLm5leHQpCisJCXJldHVybjsKKworCS8qIHJlbW92ZSB1bmFzc2lnbmVkIHBhcnRpdGlvbiB0YWJsZXMgKi8KKwl3aGlsZSAoIWxpc3RfZW1wdHkoJmxzLT5sX3RhYnMpKSB7CisJCWJsa2lkX3BhcnR0YWJsZSB0YWIgPSBsaXN0X2VudHJ5KGxzLT5sX3RhYnMubmV4dCwKKwkJCQkJc3RydWN0IGJsa2lkX3N0cnVjdF9wYXJ0dGFibGUsIHRfdGFicyk7CisJCXVucmVmX3BhcnR0YWJsZSh0YWIpOworCX0KK30KKworc3RhdGljIHZvaWQgcmVzZXRfcGFydGxpc3QoYmxraWRfcHJvYmUgcHIsIGJsa2lkX3BhcnRsaXN0IGxzKQoreworCWlmICghbHMpCisJCXJldHVybjsKKworCWZyZWVfcGFydHRhYmxlcyhscyk7CisKKwlpZiAobHMtPm5leHRfcGFydG5vKSB7CisJCS8qIGFscmVhZHkgaW5pdGlhbGl6ZWQgLSByZXNldCAqLworCQlpbnQgdG1wX25wYXJ0cyA9IGxzLT5ucGFydHNfbWF4OworCQlibGtpZF9wYXJ0aXRpb24gdG1wX3BhcnRzID0gbHMtPnBhcnRzOworCisJCW1lbXNldChscywgMCwgc2l6ZW9mKHN0cnVjdCBibGtpZF9zdHJ1Y3RfcGFydGxpc3QpKTsKKworCQlscy0+bnBhcnRzX21heCA9IHRtcF9ucGFydHM7CisJCWxzLT5wYXJ0cyA9IHRtcF9wYXJ0czsKKwl9CisKKwlscy0+bnBhcnRzID0gMDsKKwlscy0+bmV4dF9wYXJ0bm8gPSAxOworCUlOSVRfTElTVF9IRUFEKCZscy0+bF90YWJzKTsKKworCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJwYXJ0bGlzdCByZXNldGVkXG4iKSk7Cit9CisKK3N0YXRpYyBibGtpZF9wYXJ0bGlzdCBwYXJ0aXRpb25zX2luaXRfZGF0YShibGtpZF9wcm9iZSBwciwgc3RydWN0IGJsa2lkX2NoYWluICpjaG4pCit7CisJYmxraWRfcGFydGxpc3QgbHM7CisKKwlpZiAoY2huLT5kYXRhKQorCQlscyA9IChibGtpZF9wYXJ0bGlzdCkgY2huLT5kYXRhOworCWVsc2UgeworCQkvKiBhbGxvY2F0ZSB0aGUgbmV3IGxpc3Qgb2YgcGFydGl0aW9ucyAqLworCQlscyA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IGJsa2lkX3N0cnVjdF9wYXJ0bGlzdCkpOworCQlpZiAoIWxzKQorCQkJcmV0dXJuIE5VTEw7CisJCWNobi0+ZGF0YSA9ICh2b2lkICopIGxzOworCX0KKworCXJlc2V0X3BhcnRsaXN0KHByLCBscyk7CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsCisJCXByaW50ZigicGFydHM6IGluaXRpYWxpemVkIHBhcnRpdGlvbnMgbGlzdCAoJXAsIHNpemU9JWQpXG4iLAorCQlscywgbHMtPm5wYXJ0c19tYXgpKTsKKwlyZXR1cm4gbHM7Cit9CisKK3N0YXRpYyB2b2lkIHBhcnRpdGlvbnNfZnJlZV9kYXRhKGJsa2lkX3Byb2JlIHByLCB2b2lkICpkYXRhKQoreworCWJsa2lkX3BhcnRsaXN0IGxzID0gKGJsa2lkX3BhcnRsaXN0KSBkYXRhOworCisJaWYgKCFscykKKwkJcmV0dXJuOworCisJZnJlZV9wYXJ0dGFibGVzKGxzKTsKKworCS8qIGRlYWxsb2NhdGUgcGFydGl0aW9ucyBhbmQgcGFydGxpc3QgKi8KKwlmcmVlKGxzLT5wYXJ0cyk7CisJZnJlZShscyk7Cit9CisKK2Jsa2lkX3BhcnR0YWJsZSBibGtpZF9wYXJ0bGlzdF9uZXdfcGFydHRhYmxlKGJsa2lkX3BhcnRsaXN0IGxzLAorCQkJCWNvbnN0IGNoYXIgKnR5cGUsIGJsa2lkX2xvZmZfdCBvZmZzZXQpCit7CisJYmxraWRfcGFydHRhYmxlIHRhYjsKKworCXRhYiA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IGJsa2lkX3N0cnVjdF9wYXJ0dGFibGUpKTsKKwlpZiAoIXRhYikKKwkJcmV0dXJuIE5VTEw7CisJdGFiLT50eXBlID0gdHlwZTsKKwl0YWItPm9mZnNldCA9IG9mZnNldDsKKwl0YWItPnBhcmVudCA9IGxzLT5uZXh0X3BhcmVudDsKKworCUlOSVRfTElTVF9IRUFEKCZ0YWItPnRfdGFicyk7CisJbGlzdF9hZGRfdGFpbCgmdGFiLT50X3RhYnMsICZscy0+bF90YWJzKTsKKworCURCRyhERUJVR19MT1dQUk9CRSwKKwkJcHJpbnRmKCJwYXJ0czogY3JlYXRlIGEgbmV3IHBhcnRpdGlvbiB0YWJsZSAiCisJCSAgICAgICAiKCVwLCB0eXBlPSVzLCBvZmZzZXQ9JWxsdSlcbiIsIHRhYiwgdHlwZSwKKwkJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpIG9mZnNldCkpOworCXJldHVybiB0YWI7Cit9CisKK3N0YXRpYyBibGtpZF9wYXJ0aXRpb24gbmV3X3BhcnRpdGlvbihibGtpZF9wYXJ0bGlzdCBscywgYmxraWRfcGFydHRhYmxlIHRhYikKK3sKKwlibGtpZF9wYXJ0aXRpb24gcGFyOworCisJaWYgKGxzLT5ucGFydHMgKyAxID4gbHMtPm5wYXJ0c19tYXgpIHsKKwkJLyogTGludXgga2VybmVsIGhhcyBESVNLX01BWF9QQVJUUz0yNTYsIGJ1dCBpdCdzIHRvbyBtdWNoIGZvcgorCQkgKiBnZW5lcmljIExpbnV4IG1hY2hpbmUgLS0gbGV0IHN0YXJ0IHdpdGggMzIgcGFydGl0aXRpb25zLgorCQkgKi8KKwkJbHMtPnBhcnRzID0gcmVhbGxvYyhscy0+cGFydHMsIChscy0+bnBhcnRzX21heCArIDMyKSAqCisJCQkJCXNpemVvZihzdHJ1Y3QgYmxraWRfc3RydWN0X3BhcnRpdGlvbikpOworCQlpZiAoIWxzLT5wYXJ0cykKKwkJCXJldHVybiBOVUxMOworCQlscy0+bnBhcnRzX21heCArPSAzMjsKKwl9CisKKwlwYXIgPSAmbHMtPnBhcnRzW2xzLT5ucGFydHMrK107CisJbWVtc2V0KHBhciwgMCwgc2l6ZW9mKHN0cnVjdCBibGtpZF9zdHJ1Y3RfcGFydGl0aW9uKSk7CisKKwlyZWZfcGFydHRhYmxlKHRhYik7CisJcGFyLT50YWIgPSB0YWI7CisJcGFyLT5wYXJ0bm8gPSBscy0+bmV4dF9wYXJ0bm8rKzsKKworCXJldHVybiBwYXI7Cit9CisKK2Jsa2lkX3BhcnRpdGlvbiBibGtpZF9wYXJ0bGlzdF9hZGRfcGFydGl0aW9uKGJsa2lkX3BhcnRsaXN0IGxzLAorCQkJCQlibGtpZF9wYXJ0dGFibGUgdGFiLCBpbnQgdHlwZSwKKwkJCQkJYmxraWRfbG9mZl90IHN0YXJ0LCBibGtpZF9sb2ZmX3Qgc2l6ZSkKK3sKKwlibGtpZF9wYXJ0aXRpb24gcGFyID0gbmV3X3BhcnRpdGlvbihscywgdGFiKTsKKworCWlmICghcGFyKQorCQlyZXR1cm4gTlVMTDsKKworCXBhci0+dHlwZSA9IHR5cGU7CisJcGFyLT5zdGFydCA9IHN0YXJ0OworCXBhci0+c2l6ZSA9IHNpemU7CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsCisJCXByaW50ZigicGFydHM6IGFkZCBwYXJ0aXRpb24gKCVwIHR5cGU9MHgleCwgIgorCQkJInN0YXJ0PSVsbHUsIHNpemU9JWxsdSwgdGFibGU9JXApXG4iLAorCQkJcGFyLCBwYXItPnR5cGUsCisJCQkodW5zaWduZWQgbG9uZyBsb25nKSBwYXItPnN0YXJ0LAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgcGFyLT5zaXplLAorCQkJdGFiKSk7CisJcmV0dXJuIHBhcjsKK30KKworLyogYWxsb3dzIHRvIG1vZGlmeSB1c2VkIHBhcnRpdGlvbnMgbnVtYmVycyAoZm9yIGV4YW1wbGUgZm9yIGxvZ2ljYWwgcGFydGl0aW9ucykgKi8KK2ludCBibGtpZF9wYXJ0bGlzdF9zZXRfcGFydG5vKGJsa2lkX3BhcnRsaXN0IGxzLCBpbnQgcGFydG5vKQoreworCWlmICghbHMpCisJCXJldHVybiAtMTsKKwlscy0+bmV4dF9wYXJ0bm8gPSBwYXJ0bm87CisJcmV0dXJuIDA7Cit9CisKKy8qIGFsbG93cyB0byBzZXQgInBhcmVudCIgZm9yIHRoZSBuZXh0IG5lc3RlZCBwYXJ0aXRpb24gKi8KK2ludCBibGtpZF9wYXJ0bGlzdF9zZXRfcGFyZW50KGJsa2lkX3BhcnRsaXN0IGxzLCBibGtpZF9wYXJ0aXRpb24gcGFyKQoreworCWlmICghbHMpCisJCXJldHVybiAtMTsKKwlscy0+bmV4dF9wYXJlbnQgPSBwYXI7CisJcmV0dXJuIDA7Cit9CisKK2Jsa2lkX3BhcnRpdGlvbiBibGtpZF9wYXJ0bGlzdF9nZXRfcGFyZW50KGJsa2lkX3BhcnRsaXN0IGxzKQoreworCWlmICghbHMpCisJCXJldHVybiBOVUxMOworCXJldHVybiBscy0+bmV4dF9wYXJlbnQ7Cit9CisKK2ludCBibGtpZF9wYXJ0aXRpb25zX25lZWRfdHlwZW9ubHkoYmxraWRfcHJvYmUgcHIpCit7CisJc3RydWN0IGJsa2lkX2NoYWluICpjaG4gPSBibGtpZF9wcm9iZV9nZXRfY2hhaW4ocHIpOworCisJcmV0dXJuIGNobiAmJiBjaG4tPmRhdGEgJiYgY2huLT5iaW5hcnkgPyBGQUxTRSA6IFRSVUU7Cit9CisKKy8qIGdldCBwcml2YXRlIGNoYWluIGZsYWdzICovCitpbnQgYmxraWRfcGFydGl0aW9uc19nZXRfZmxhZ3MoYmxraWRfcHJvYmUgcHIpCit7CisJc3RydWN0IGJsa2lkX2NoYWluICpjaG4gPSBibGtpZF9wcm9iZV9nZXRfY2hhaW4ocHIpOworCisJcmV0dXJuIGNobiA/IGNobi0+ZmxhZ3MgOiAwOworfQorCisvKiBjaGVjayBpZiBAc3RhcnQgYW5kIEBzaXplIGFyZSB3aXRoaW4gQHBhciBwYXJ0aXRpb24gKi8KK2ludCBibGtpZF9pc19uZXN0ZWRfZGltZW5zaW9uKGJsa2lkX3BhcnRpdGlvbiBwYXIsCisJCQlibGtpZF9sb2ZmX3Qgc3RhcnQsIGJsa2lkX2xvZmZfdCBzaXplKQoreworCWJsa2lkX2xvZmZfdCBwc3RhcnQ7CisJYmxraWRfbG9mZl90IHBzaXplOworCisJaWYgKCFwYXIpCisJCXJldHVybiAwOworCisJcHN0YXJ0ID0gYmxraWRfcGFydGl0aW9uX2dldF9zdGFydChwYXIpOworCXBzaXplID0gYmxraWRfcGFydGl0aW9uX2dldF9zaXplKHBhcik7CisKKwlpZiAoc3RhcnQgPCBwc3RhcnQgfHwgc3RhcnQgKyBzaXplID4gcHN0YXJ0ICsgcHNpemUpCisJCXJldHVybiAwOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgaWRpbmZvX3Byb2JlKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvICppZCkKK3sKKwljb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZzsKKwlpbnQgaGFzbWFnID0gMDsKKwlpbnQgcmMgPSAxOwkJLyogPSBub3RoaW5nIGRldGVjdGVkICovCisKKwlpZiAocHItPnNpemUgPD0gMCB8fCAoaWQtPm1pbnN6ICYmIGlkLT5taW5zeiA+IHByLT5zaXplKSkKKwkJZ290byBub3RoaW5nOwkvKiB0aGUgZGV2aWNlIGlzIHRvbyBzbWFsbCAqLworCisJbWFnID0gaWQtPm1hZ2ljcyA/ICZpZC0+bWFnaWNzWzBdIDogTlVMTDsKKworCS8qIHRyeSB0byBkZXRlY3QgYnkgbWFnaWMgc3RyaW5nICovCisJd2hpbGUobWFnICYmIG1hZy0+bWFnaWMpIHsKKwkJaW50IGlkeDsKKwkJdW5zaWduZWQgY2hhciAqYnVmOworCisJCWlkeCA9IG1hZy0+a2JvZmYgKyAobWFnLT5zYm9mZiA+PiAxMCk7CisJCWJ1ZiA9IGJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsIGlkeCA8PCAxMCwgMTAyNCk7CisKKwkJaWYgKGJ1ZiAmJiAhbWVtY21wKG1hZy0+bWFnaWMsCisJCQkJYnVmICsgKG1hZy0+c2JvZmYgJiAweDNmZiksIG1hZy0+bGVuKSkgeworCQkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoCisJCQkJIiVzOiBtYWdpYyBzYm9mZj0ldSwga2JvZmY9JWxkXG4iLAorCQkJCWlkLT5uYW1lLCBtYWctPnNib2ZmLCBtYWctPmtib2ZmKSk7CisJCQloYXNtYWcgPSAxOworCQkJYnJlYWs7CisJCX0KKwkJbWFnKys7CisJfQorCisJaWYgKGhhc21hZyA9PSAwICYmIGlkLT5tYWdpY3MgJiYgaWQtPm1hZ2ljc1swXS5tYWdpYykKKwkJLyogbWFnaWMgc3RyaW5nKHMpIGRlZmluZWQsIGJ1dCBub3QgZm91bmQgKi8KKwkJZ290byBub3RoaW5nOworCisJLyogZmluYWwgY2hlY2sgYnkgcHJvYmluZyBmdW5jdGlvbiAqLworCWlmIChpZC0+cHJvYmVmdW5jKSB7CisJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkJIiVzOiAtLS0+IGNhbGwgcHJvYmVmdW5jKClcbiIsIGlkLT5uYW1lKSk7CisJCXJjID0gaWQtPnByb2JlZnVuYyhwciwgbWFnKTsKKwkgICAgICAgIGlmIChyYyA9PSAtMSkgeworCQkJLyogcmVzZXQgYWZ0ZXIgZXJyb3IgKi8KKwkJCXJlc2V0X3BhcnRsaXN0KHByLCBibGtpZF9wcm9iZV9nZXRfcGFydGxpc3QocHIpKTsKKwkJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkJCSIlcyBwcm9iZWZ1bmMgZmFpbGVkXG4iLCBpZC0+bmFtZSkpOworCQl9CisJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkJIiVzOiA8LS0tIChyYyA9ICVkKVxuIiwgaWQtPm5hbWUsIHJjKSk7CisJfQorCitub3RoaW5nOgorCXJldHVybiByYzsKK30KKworLyoKKyAqIFRoZSBibGtpZF9kb19wcm9iZSgpIGJhY2tlbmQuCisgKi8KK3N0YXRpYyBpbnQgcGFydGl0aW9uc19wcm9iZShibGtpZF9wcm9iZSBwciwgc3RydWN0IGJsa2lkX2NoYWluICpjaG4pCit7CisJaW50IGkgPSAwOworCisJaWYgKCFwciB8fCBjaG4tPmlkeCA8IC0xKQorCQlyZXR1cm4gLTE7CisJYmxraWRfcHJvYmVfY2hhaW5fcmVzZXRfdmFscyhwciwgY2huKTsKKworCWlmIChjaG4tPmJpbmFyeSkKKwkJcGFydGl0aW9uc19pbml0X2RhdGEocHIsIGNobik7CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsCisJCXByaW50ZigiLS0+IHN0YXJ0aW5nIHByb2JpbmcgbG9vcCBbUEFSVFMgaWR4PSVkXVxuIiwKKwkJY2huLT5pZHgpKTsKKworCWkgPSBjaG4tPmlkeCArIDE7CisKKwlmb3IgKCA7IGkgPCBBUlJBWV9TSVpFKGlkaW5mb3MpOyBpKyspIHsKKwkJY29uc3QgY2hhciAqbmFtZTsKKworCQljaG4tPmlkeCA9IGk7CisKKwkJLyogYXBwbHkgZmlsdGVyICovCisJCWlmIChjaG4tPmZsdHIgJiYgYmxraWRfYm1wX2dldF9pdGVtKGNobi0+Zmx0ciwgaSkpCisJCQljb250aW51ZTsKKworCQkvKiBhcHBseSBjaGVja3MgZnJvbSBpZGluZm8gKi8KKwkJaWYgKGlkaW5mb19wcm9iZShwciwgaWRpbmZvc1tpXSkgIT0gMCkKKwkJCWNvbnRpbnVlOworCisJCW5hbWUgPSBpZGluZm9zW2ldLT5uYW1lOworCisJCS8qIGFsbCBjaGVja3MgcGFzc2VkICovCisJCWJsa2lkX3Byb2JlX3NldF92YWx1ZShwciwgIlBUVFlQRSIsCisJCQkJKHVuc2lnbmVkIGNoYXIgKikgbmFtZSwJc3RybGVuKG5hbWUpICsgMSk7CisKKwkJREJHKERFQlVHX0xPV1BST0JFLAorCQkJcHJpbnRmKCI8LS0gbGVhdmluZyBwcm9iaW5nIGxvb3AgKHR5cGU9JXMpIFtQQVJUUyBpZHg9JWRdXG4iLAorCQkJbmFtZSwgY2huLT5pZHgpKTsKKwkJcmV0dXJuIDA7CisJfQorCURCRyhERUJVR19MT1dQUk9CRSwKKwkJcHJpbnRmKCI8LS0gbGVhdmluZyBwcm9iaW5nIGxvb3AgKGZhaWxlZCkgW1BBUlRTIGlkeD0lZF1cbiIsCisJCWNobi0+aWR4KSk7CisJcmV0dXJuIDE7Cit9CisKKy8qIFByb2JlIGZvciBuZXN0ZWQgcGFydGl0aW9uIHRhYmxlIHdpdGhpbiB0aGUgcGFyZW50YWwgcGFydGl0aW9uICovCitpbnQgYmxraWRfcGFydGl0aW9uc19kb19zdWJwcm9iZShibGtpZF9wcm9iZSBwciwgYmxraWRfcGFydGl0aW9uIHBhcmVudCwKKwkJY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyAqaWQpCit7CisJaW50IHJjID0gMTsKKwlibGtpZF9wYXJ0bGlzdCBsczsKKwlibGtpZF9sb2ZmX3Qgc2F2ZWRfc3osIHNhdmVkX29mZiwgc3osIG9mZjsKKworCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkicGFydHM6IC0tLS0+ICVzIHN1YnByb2JlIHJlcXVlc3RlZCAocGFyZW50PSVwKVxuIiwKKwkJaWQtPm5hbWUsIHBhcmVudCkpOworCisJaWYgKCFwciB8fCAhcGFyZW50IHx8ICFwYXJlbnQtPnNpemUpCisJCXJldHVybiAtMTsKKworCWxzID0gYmxraWRfcHJvYmVfZ2V0X3BhcnRsaXN0KHByKTsKKworCXN6ID0gKChibGtpZF9sb2ZmX3QpIHBhcmVudC0+c2l6ZSkgPDwgOTsKKwlvZmYgPSAoKGJsa2lkX2xvZmZfdCkgcGFyZW50LT5zdGFydCkgPDwgOTsKKworCS8qIGdldCB0aGUgY3VycmVudCBzZXR0aW5nIGluIGJ5dGVzICovCisJYmxraWRfcHJvYmVfZ2V0X2RpbWVuc2lvbihwciwgJnNhdmVkX29mZiwgJnNhdmVkX3N6KTsKKworCS8qIGNoZWNrIHRoZSByZXF1ZXN0ZWQgcmFuZ2UgKi8KKwlpZiAob2ZmIDwgc2F2ZWRfb2ZmIHx8IHNhdmVkX29mZiArIHNhdmVkX3N6IDwgb2ZmICsgc3opIHsKKwkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoCisJCQkiRVJST1I6IHBhcnRzOiA8LS0tLSAnJXMnIHN1Yi1wcm9iZTogb3ZlcmZsb3cgZGV0ZWN0ZWQuXG4iLAorCQkJaWQtPm5hbWUpKTsKKwkJcmV0dXJuIC0xOworCX0KKworCS8qIGRlZmluZSBzdWItcmFuZ2Ugd2l0aCBpbiBkZXZpY2UgKi8KKwlibGtpZF9wcm9iZV9zZXRfZGltZW5zaW9uKHByLCBvZmYsIHN6KTsKKworCWJsa2lkX3BhcnRsaXN0X3NldF9wYXJlbnQobHMsIHBhcmVudCk7CisKKwlyYyA9IGlkaW5mb19wcm9iZShwciwgaWQpOworCisJYmxraWRfcGFydGxpc3Rfc2V0X3BhcmVudChscywgTlVMTCk7CisKKwkvKiByZXN0b3JlIHRoZSBvcmlnaW5hbCBzZXR0aW5nICovCisJYmxraWRfcHJvYmVfc2V0X2RpbWVuc2lvbihwciwgc2F2ZWRfb2ZmLCBzYXZlZF9zeik7CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigKKwkJInBhcnRzOiA8LS0tLSAlcyBzdWJwcm9iZSBkb25lIChwYXJlbnQ9JXAsIHJjPSVkKVxuIiwKKwkJaWQtPm5hbWUsIHBhcmVudCwgcmMpKTsKKworCXJldHVybiByYzsKK30KKworLyoqCisgKiBibGtpZF9rbm93bl9wdHR5cGU6CisgKiBAcHR0eXBlOiBwYXJ0aXRvbiBuYW1lCisgKgorICogUmV0dXJuczogMSBmb3Iga25vd24gb3IgMCBmb3IgdW5rbm93biBwYXJ0aXRpb24gdHlwZS4KKyAqLworaW50IGJsa2lkX2tub3duX3B0dHlwZShjb25zdCBjaGFyICpwdHR5cGUpCit7CisJaW50IGk7CisKKwlpZiAoIXB0dHlwZSkKKwkJcmV0dXJuIDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpZGluZm9zKTsgaSsrKSB7CisJCWNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gKmlkID0gaWRpbmZvc1tpXTsKKwkJaWYgKHN0cmNtcChpZC0+bmFtZSwgcHR0eXBlKSA9PSAwKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCisvKioKKyAqIGJsa2lkX3BhcnRsaXN0X251bW9mX3BhcnRpdGlvbnM6CisgKiBAbHM6IHBhcnRpdGlvbnMgbGlzdAorICoKKyAqIFJldHVybnM6IG51bWJlciBvZiBwYXJ0aXRpb25zIGluIHRoZSBsaXN0IG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludCBibGtpZF9wYXJ0bGlzdF9udW1vZl9wYXJ0aXRpb25zKGJsa2lkX3BhcnRsaXN0IGxzKQoreworCXJldHVybiBscyA/IGxzLT5ucGFydHMgOiAtMTsKK30KKworLyoqCisgKiBibGtpZF9wYXJ0bGlzdF9nZXRfcGFydGl0aW9uOgorICogQGxzOiBwYXJ0aXRpb25zIGxpc3QKKyAqIEBuOiBwYXJ0aXRpb24gbnVtYmVyIGluIHJhbmdlIDAuLk4sIHdoZXJlICdOJyBpcyBibGtpZF9wYXJ0bGlzdF9udW1vZl9wYXJ0aXRpb25zKCkuCisgKgorICogSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBsaXN0IG9mIHBhcnRpdGlvbnMgaXMgKmVtcHR5KiwgYnV0IHRoZXJlIGlzIGEgdmFsaWQKKyAqIHBhcnRpdGlvbiB0YWJsZSBvbiB0aGUgZGlzay4gVGhpcyBoYXBwZW4gd2hlbiBvbi1kaXNrIGRldGFpbHMgYWJvdXQKKyAqIHBhcnRpdGlvbnMgYXJlIHVua25vd24sIGJ1dCB3ZSBhcmUgYWJsZSB0byBkZXRlY3QgcGFydGl0aW9uIHRhYmxlIG1hZ2ljCisgKiBzdHJpbmcgb25seS4gVGhlIG5pY2UgZXhhbXBsZSBpcyBBSVguIElmIHlvdXIgcXVlc3Rpb24gaXM6ICJJcyB0aGVyZSBhbnkKKyAqIHBhcnRpdGlvbiB0YWJsZT8iLCB1c2U6CisgKgorICoJYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKHByLCAiUFRUWVBFIiwgJnR5cGUsIE5VTEwpOworICoKKyAqIFJldHVybnM6IHBhcnRpdGlvbiBvYmplY3Qgb3IgTlVMTCBpbiBjYXNlIG9yIGVycm9yLgorICovCitibGtpZF9wYXJ0aXRpb24gYmxraWRfcGFydGxpc3RfZ2V0X3BhcnRpdGlvbihibGtpZF9wYXJ0bGlzdCBscywgaW50IG4pCit7CisJaWYgKCFscyB8fCBuIDwgMCB8fCBuID49IGxzLT5ucGFydHMpCisJCXJldHVybiBOVUxMOworCisJcmV0dXJuICZscy0+cGFydHNbbl07Cit9CisKKy8qKgorICogYmxraWRfcGFydHRhYmxlX2dldF90eXBlOgorICogQHRhYjogcGFydGl0aW9uIHRhYmxlCisgKgorICogUmV0dXJuczogcGFydGl0aW9uIHRhYmxlIHR5cGUgKHR5cGUgbmFtZSwgZS5nLiAiZG9zIiwgImdwdCIsIC4uLikKKyAqLworY29uc3QgY2hhciAqYmxraWRfcGFydHRhYmxlX2dldF90eXBlKGJsa2lkX3BhcnR0YWJsZSB0YWIpCit7CisJcmV0dXJuIHRhYiA/IHRhYi0+dHlwZSA6IE5VTEw7Cit9CisKKy8qKgorICogYmxraWRfcGFydHRhYmxlX2dldF9wYXJlbnQ6CisgKiBAdGFiOiBwYXJ0aXRpb24gdGFibGUKKyAqCisgKiBSZXR1cm5zOiBwYXJlbnQgZm9yIG5leHRlZCBwYXJ0aXRpdGlvbiB0YWJsZXMgb3IgTlVMTC4KKyAqLworYmxraWRfcGFydGl0aW9uIGJsa2lkX3BhcnR0YWJsZV9nZXRfcGFyZW50KGJsa2lkX3BhcnR0YWJsZSB0YWIpCit7CisJcmV0dXJuIHRhYiA/IHRhYi0+cGFyZW50IDogTlVMTDsKK30KKworLyoqCisgKiBibGtpZF9wYXJ0dGFibGVfZ2V0X29mZnNldDoKKyAqIEB0YWI6IHBhcnRpdGlvbiB0YWJsZQorICoKKyAqIFJldHVybnM6IHBvc2l0aW9uIChpbiBieXRlcykgb2YgdGhlIHBhcnRpdGlvbiB0YWJsZSBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICoKKyAqIE5vdGUgdGhlIHBvc2l0aW9uIGlzIHJlbGF0aXZlIHRvIGJlZ2luIG9mIHRoZSBkZXZpY2UgYXMgZGVmaW5lZCBieQorICogYmxraWRfcHJvYmVfc2V0X2RldmljZSgpIGZvciBwcmltYXJ5IHBhcnRpdGlvbiB0YWJsZSwgYW5kIHJlbGF0aXZlCisgKiB0byBwYXJlbnRhbCBwYXJ0aXRpb24gZm9yIG5lc3RlZCBwYXRpdGlvbiB0YWJsZXMuCisgKgorICogPGluZm9ybWFsZXhhbXBsZT4KKyAqICAgPHByb2dyYW1saXN0aW5nPgorICogb2ZmX3Qgb2Zmc2V0OworICogYmxraWRfcGFydGl0aW9uIHBhcmVudCA9IGJsa2lkX3BhcnR0YWJsZV9nZXRfcGFyZW50KHRhYik7CisgKgorICogb2Zmc2V0ID0gYmxraWRfcGFydHRhYmxlX2dldF9vZmZzZXQodGFiKTsKKyAqCisgKiBpZiAocGFyZW50KQorICogICAgICAvICogJ3RhYicgaXMgbmVzdGVkIHBhcnRpdGlvbiB0YWJsZSAqIC8KKyAqCW9mZnNldCArPSBibGtpZF9wYXJ0aXRpb25fZ2V0X3N0YXJ0KHBhcmVudCk7CisgKiAgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgKiA8L2luZm9ybWFsZXhhbXBsZT4KKyAqLworYmxraWRfbG9mZl90IGJsa2lkX3BhcnR0YWJsZV9nZXRfb2Zmc2V0KGJsa2lkX3BhcnR0YWJsZSB0YWIpCit7CisJcmV0dXJuIHRhYiA/IHRhYi0+b2Zmc2V0IDogLTE7Cit9CisKKy8qKgorICogYmxraWRfcGFydGl0aW9uX2dldF90YWJsZToKKyAqIEBwYXI6IHBhcnRpdGlvbgorICoKKyAqIFRoZSAicGFydHRhYmxlIiBkZXNjcmliZXMgcGFydGl0aW9uIHRhYmxlLiBUaGUgdGFibGUgaXMgdXN1YWxseSB0aGUgc2FtZSBmb3IKKyAqIGFsbCBwYXJ0aXRpb25zIC0tIGV4Y2VwdCBuZXN0ZWQgcGFydGl0aW9uIHRhYmxlcy4KKyAqCisgKiBGb3IgZXhhbXBsZSBic2QsIHNvbGFyaXMsIGV0Yy4gdXNlIGEgbmVzdGVkIHBhcnRpdGlvbiB0YWJsZSB3aXRoaW4KKyAqIHN0YW5kYXJkIHByaW1hcnkgZG9zIHBhcnRpdGlvbjoKKyAqCisgKiA8aW5mb3JtYWxleGFtcGxlPgorICogICA8cHJvZ3JhbWxpc3Rpbmc+CisgKgorICogIC0tIGRvcyBwYXJ0aXRpb24gdGFibGUKKyAqICAwOiBzZGExICAgICBkb3MgcHJpbWFyeSBwYXJ0aXRpb24KKyAqICAxOiBzZGEyICAgICBkb3MgcHJpbWFyeSBwYXJ0aXRpb24KKyAqICAgICAtLSBic2QgcGFydGl0aW9uIHRhYmxlICh3aXRoIGluIHNkYTIpCisgKiAgMjogICAgc2RhNSAgYmRzIHBhcnRpdGlvbgorICogIDM6ICAgIHNkYTYgIGJkcyBwYXJ0aXRpb24KKyAqCisgKiAgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgKiA8L2luZm9ybWFsZXhhbXBsZT4KKyAqCisgKiBUaGUgbGlicmFyeSBkb2VzIG5vdCB0byB1c2UgYSBzZXBhcmF0ZSBwYXJ0aXRpb24gdGFibGUgb2JqZWN0IGZvciBkb3MgbG9naWNhbAorICogcGFydGl0aW9ucyAocGFydGl0aW9ucyB3aXRoaW4gZXh0ZW5kZWQgcGFydGl0aW9uKS4gSXQncyBwb3NzaWJsZSB0bworICogZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGxvZ2ljYWwsIGV4dGVuZGVkIGFuZCBwcmltYXJ5IHBhcnRpdGlvbnMgYnkKKyAqCisgKglibGtpZF9wYXJ0aXRpb25faXNfe2V4dGVuZGVkLHByaW1hcnksbG9naWNhbH0oKS4KKyAqCisgKiBSZXR1cm5zOiBwYXJ0aXRpb24gdGFibGUgb2JqZWN0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworYmxraWRfcGFydHRhYmxlIGJsa2lkX3BhcnRpdGlvbl9nZXRfdGFibGUoYmxraWRfcGFydGl0aW9uIHBhcikKK3sKKwlyZXR1cm4gcGFyID8gcGFyLT50YWIgOiBOVUxMOworfQorCitzdGF0aWMgaW50IHBhcnRpdGlvbl9nZXRfbG9naWNhbF90eXBlKGJsa2lkX3BhcnRpdGlvbiBwYXIpCit7CisJYmxraWRfcGFydHRhYmxlIHRhYjsKKworCWlmICghcGFyKQorCQlyZXR1cm4gLTE7CisKKwl0YWIgPSBibGtpZF9wYXJ0aXRpb25fZ2V0X3RhYmxlKHBhcik7CisJaWYgKCF0YWIgfHwgIXRhYi0+dHlwZSkKKwkJcmV0dXJuIC0xOworCisJaWYgKHRhYi0+cGFyZW50KQorCQlyZXR1cm4gJ0wnOyAgLyogcmVwb3J0IG5lc3RlZCBwYXJ0aXRpb25zIGFzIGxvZ2ljYWwgKi8KKworCWlmICghc3RyY21wKHRhYi0+dHlwZSwgImRvcyIpKSB7CisJCWlmIChwYXItPnBhcnRubyA+IDQpCisJCQlyZXR1cm4gJ0wnOwkvKiBsb2dpY2FsICovCisKKwkgICAgICAgIGlmKHBhci0+dHlwZSA9PSBCTEtJRF9ET1NfRVhURU5ERURfUEFSVElUSU9OIHx8CisgICAgICAgICAgICAgICAgICAgcGFyLT50eXBlID09IEJMS0lEX1c5NV9FWFRFTkRFRF9QQVJUSVRJT04gfHwKKwkJICAgcGFyLT50eXBlID09IEJMS0lEX0xJTlVYX0VYVEVOREVEX1BBUlRJVElPTikKKwkJCXJldHVybiAnRSc7CisJfQorCXJldHVybiAnUCc7Cit9CisKKy8qKgorICogYmxraWRfcGFydGl0aW9uX2lzX3ByaW1hcnk6CisgKiBAcGFyOiBwYXJ0aXRpb24KKyAqCisgKiBOb3RlLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRkFMU0UgZm9yIERPUyBleHRlbmRlZCBwYXJ0aXRpb25zIGFuZAorICogYWxsIHBhcnRpdGlvbnMgaW4gbmVzdGVkIHBhcnRpdGlvbiB0YWJsZXMuCisgKgorICogUmV0dXJuczogMSBpZiB0aGUgcGFydGl0aW9ucyBpcyBwcmltYXJ5IHBhcnRpdGlvbiBvciAwIGlmIG5vdC4KKyAqLworaW50IGJsa2lkX3BhcnRpdGlvbl9pc19wcmltYXJ5KGJsa2lkX3BhcnRpdGlvbiBwYXIpCit7CisJcmV0dXJuIHBhcnRpdGlvbl9nZXRfbG9naWNhbF90eXBlKHBhcikgPT0gJ1AnID8gVFJVRSA6IEZBTFNFOworfQorCisvKioKKyAqIGJsa2lkX3BhcnRpdGlvbl9pc19leHRlbmRlZDoKKyAqIEBwYXI6IHBhcnRpdGlvbgorICoKKyAqIFJldHVybnM6IDEgaWYgdGhlIHBhcnRpdGlvbnMgaXMgZXh0ZW5kZWQgKGRvcywgd2luZG93cyBvciBsaW51eCkKKyAqIHBhcnRpdGlvbiBvciAwIGlmIG5vdC4KKyAqLworaW50IGJsa2lkX3BhcnRpdGlvbl9pc19leHRlbmRlZChibGtpZF9wYXJ0aXRpb24gcGFyKQoreworCXJldHVybiBwYXJ0aXRpb25fZ2V0X2xvZ2ljYWxfdHlwZShwYXIpID09ICdFJyA/IFRSVUUgOiBGQUxTRTsKK30KKworLyoqCisgKiBibGtpZF9wYXJ0aXRpb25faXNfbG9naWNhbDoKKyAqIEBwYXI6IHBhcnRpdGlvbgorICoKKyAqIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgVFJVRSBmb3IgYWxsIHBhcnRpdGlvbnMgaW4gYWxsCisgKiBuZXN0ZWQgcGFydGl0aW9uIHRhYmxlcyAoZS5nLiBCU0QgbGFiZWxzKS4KKyAqCisgKiBSZXR1cm5zOiAxIGlmIHRoZSBwYXJ0aXRpb25zIGlzIGxvZ2ljYWwgcGFydGl0aW9uIG9yIDAgaWYgbm90LgorICovCitpbnQgYmxraWRfcGFydGl0aW9uX2lzX2xvZ2ljYWwoYmxraWRfcGFydGl0aW9uIHBhcikKK3sKKwlyZXR1cm4gcGFydGl0aW9uX2dldF9sb2dpY2FsX3R5cGUocGFyKSA9PSAnTCcgPyBUUlVFIDogRkFMU0U7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9zdHJpbmcodW5zaWduZWQgY2hhciAqaXRlbSwgc2l6ZV90IG1heCwKKwkJCQljb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBzaXplX3QgbGVuKQoreworCWlmIChsZW4gPj0gbWF4KQorCQlsZW4gPSBtYXggLSAxOworCisJbWVtY3B5KGl0ZW0sIGRhdGEsIGxlbik7CisJaXRlbVtsZW5dID0gJ1wwJzsKKworCWJsa2lkX3J0cmltX3doaXRlc3BhY2UoaXRlbSk7Cit9CisKK2ludCBibGtpZF9wYXJ0aXRpb25fc2V0X25hbWUoYmxraWRfcGFydGl0aW9uIHBhciwKKwkJY29uc3QgdW5zaWduZWQgY2hhciAqbmFtZSwgc2l6ZV90IGxlbikKK3sKKwlpZiAoIXBhcikKKwkJcmV0dXJuIC0xOworCisJc2V0X3N0cmluZyhwYXItPm5hbWUsIHNpemVvZihwYXItPm5hbWUpLCBuYW1lLCBsZW4pOworCXJldHVybiAwOworfQorCitpbnQgYmxraWRfcGFydGl0aW9uX3NldF91dGY4bmFtZShibGtpZF9wYXJ0aXRpb24gcGFyLCBjb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lLAorCQlzaXplX3QgbGVuLCBpbnQgZW5jKQoreworCWlmICghcGFyKQorCQlyZXR1cm4gLTE7CisKKwlibGtpZF9lbmNvZGVfdG9fdXRmOChlbmMsIHBhci0+bmFtZSwgc2l6ZW9mKHBhci0+bmFtZSksIG5hbWUsIGxlbik7CisJYmxraWRfcnRyaW1fd2hpdGVzcGFjZShwYXItPm5hbWUpOworCXJldHVybiAwOworfQorCitpbnQgYmxraWRfcGFydGl0aW9uX3NldF91dWlkKGJsa2lkX3BhcnRpdGlvbiBwYXIsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnV1aWQpCit7CisJaWYgKCFwYXIpCisJCXJldHVybiAtMTsKKworCWJsa2lkX3VucGFyc2VfdXVpZCh1dWlkLCBwYXItPnV1aWQsIHNpemVvZihwYXItPnV1aWQpKTsKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBibGtpZF9wYXJ0aXRpb25fZ2V0X25hbWU6CisgKiBAcGFyOiBwYXJ0aXRpb24KKyAqCisgKiBSZXR1cm5zOiBwYXJ0aXRpb24gbmFtZSBzdHJpbmcgaWYgc3VwcG9ydGVkIGJ5IFBUIChlLmcuIE1hYykgb3IgTlVMTC4KKyAqLworY29uc3QgY2hhciAqYmxraWRfcGFydGl0aW9uX2dldF9uYW1lKGJsa2lkX3BhcnRpdGlvbiBwYXIpCit7CisJcmV0dXJuIHBhciAmJiAqcGFyLT5uYW1lID8gKGNoYXIgKikgcGFyLT5uYW1lIDogTlVMTDsKK30KKworLyoqCisgKiBibGtpZF9wYXJ0aXRpb25fZ2V0X3V1aWQ6CisgKiBAcGFyOiBwYXJ0aXRpb24KKyAqCisgKiBSZXR1cm5zOiBwYXJ0aXRpb24gVVVJRCBzdHJpbmcgaWYgc3VwcG9ydGVkIGJ5IFBUIChlLmcuIEdQVCkgb3IgTlVMTC4KKyAqLworY29uc3QgY2hhciAqYmxraWRfcGFydGl0aW9uX2dldF91dWlkKGJsa2lkX3BhcnRpdGlvbiBwYXIpCit7CisJcmV0dXJuIHBhciAmJiAqcGFyLT51dWlkID8gcGFyLT51dWlkIDogTlVMTDsKK30KKworLyoqCisgKiBibGtpZF9wYXJ0aXRpb25fZ2V0X3BhcnRubzoKKyAqIEBwYXI6IHBhcnRpdGlvbgorICoKKyAqIFJldHVybnM6IHByb3Bvc2VkIHBhcnRpdGluIG51bWJlciAoZS5nLiAnTicgZnJvbSBzZGEnTicpIG9yIC0xIGluIGNhc2Ugb2YKKyAqIGVycm9yLiBOb3RlIHRoYXQgdGhlIG51bWJlciBpcyBnZW5lcmF0ZSBieSBsaWJyYXJ5IGluZGVwZW5kZW5seSBvbiB5b3VyIE9TLgorICovCitpbnQgYmxraWRfcGFydGl0aW9uX2dldF9wYXJ0bm8oYmxraWRfcGFydGl0aW9uIHBhcikKK3sKKwlyZXR1cm4gcGFyID8gcGFyLT5wYXJ0bm8gOiAtMTsKK30KKworLyoqCisgKiBibGtpZF9wYXJ0aXRpb25fZ2V0X3N0YXJ0OgorICogQHBhcjogcGFydGl0aW9uCisgKgorICogQmUgY2FyZWZ1bCBpZiB5b3UgX25vdF8gcHJvYmUgd2hvbGUgZGlzazoKKyAqCisgKiAxKSB0aGUgb2Zmc2V0IGlzIHVzdWxseSByZWxhdGl2ZSB0byBiZWdpbiBvZiB0aGUgZGlzayAtLSBidXQgaWYgeW91IHByb2JlIGEKKyAqICAgIGZyYWdtZW50IG9mIHRoZSBkaXNrIG9ubHkgLS0gdGhlbiB0aGUgb2Zmc2V0IGNvdWxkIGJlIHN0aWxsIHJlbGF0aXZlIHRvCisgKiAgICB0aGUgYmVnaW4gb2YgdGhlIGRpc2sgcmF0aGVyIHRoYXQgcmVsYXRpdmUgdG8gdGhlIGZyYWdtZW50LgorICoKKyAqIDIpIHRoZSBvZmZzZXQgZm9yIG5lc3RlZCBwYXJ0aXRpb25zIGNvdWxkIGJlIHJlbGVhdGl2ZSB0byBwYXJlbnQgKGUuZy4gU29sYXJpcykKKyAqICAgIF9vcl8gcmVsYXRpdmUgdG8gdGhlIGJlZ2luIG9mIHRoZSB3aG9sZSBkaXNrIChlLmcuIGJzZCkuCisgKgorICogWW91IGRvbid0IGhhdmUgdG8gY2FyZSBhYm91dCBzdWNoIGRldGFpbHMgaWYgeW91IHByb2JsZSB3aG9sZSBkaXNrLiBJbiBzdWNoCisgKiBhIGNhc2UgbGliYmxraWQgYWx3YXlzIHJldHVybnMgdGhlIG9mZnNldCByZWxhdGl2ZSB0byB0aGUgYmVnaW4gb2YgdGhlIGRpc2suCisgKgorICogUmV0dXJuczogc3RhcnQgb2YgdGhlIHBhcnRpdGlvbiAoaW4gNTEyLXNlY3RvcnMpLgorICovCitibGtpZF9sb2ZmX3QgYmxraWRfcGFydGl0aW9uX2dldF9zdGFydChibGtpZF9wYXJ0aXRpb24gcGFyKQoreworCXJldHVybiBwYXIgPyBwYXItPnN0YXJ0IDogLTE7Cit9CisKKy8qKgorICogYmxraWRfcGFydGl0aW9uX2dldF9zaXplOgorICogQHBhcjogcGFydGl0aW9uCisgKgorICogV0FSTklORzogYmUgdmVyeSBjYXJlZnVsIHdoZW4geW91IHdvcmsgd2l0aCBNUy1ET1MgZXh0ZW5kZWQgcGFydGl0aW9ucy4gVGhlCisgKiAgICAgICAgICBsaWJyYXJ5IGFsd2F5cyByZXR1cm5zIGZ1bGwgc2l6ZSBvZiB0aGUgcGFydGl0aW9uLiBJZiB5b3Ugd2FudCBhZGQKKyAqICAgICAgICAgIHRoZSBwYXJ0aXRpb24gdG8gdGhlIExpbnV4IHN5c3RlbSAoQkxLUEdfQUREX1BBUlRJVElPTiBpb2N0bCkgeW91CisgKiAgICAgICAgICBuZWVkIHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgcGFydGl0aW9uIHRvIDEgb3IgMiBibG9ja3MuIFRoZQorICogICAgICAgICAgcmVzdCBvZiB0aGUgcGFydGl0aW9uIGhhcyB0byBiZSB1bmFjY2Vzc2libGUgZm9yIG1rZnMgb3IgbWtzd2FwCisgKiAgICAgICAgICBwcm9ncmFtcywgd2UgbmVlZCBhIHNtYWxsIHNwYWNlIGZvciBib290IGxvYWRlcnMgb25seS4KKyAqCisgKiAgICAgICAgICBGb3Igc29tZSB1bmtub3duIHJlYXNvbiB0aGlzIChzYWZlKSBwcmFjdGljZSBpcyBub3QgdG8gdXNlZCBmb3IKKyAqICAgICAgICAgIG5lc3RlZCBCU0QsIFNvbGFyaXMsIC4uLiwgcGFydGl0aW9uIHRhYmxlcyBpbiBMaW51eCBrZXJuZWwuCisgKgorICogUmV0dXJuczogc2l6ZSBvZiB0aGUgcGFydGl0aW9uIChpbiA1MTItc2VjdG9ycykuCisgKi8KK2Jsa2lkX2xvZmZfdCBibGtpZF9wYXJ0aXRpb25fZ2V0X3NpemUoYmxraWRfcGFydGl0aW9uIHBhcikKK3sKKwlyZXR1cm4gcGFyID8gcGFyLT5zaXplIDogLTE7Cit9CisKKy8qKgorICogYmxraWRfcGFydGl0aW9uX2dldF90eXBlOgorICogQHBhcjogcGFydGl0aW9uCisgKgorICogUmV0dXJuczogcGFydGl0aW9uIHR5cGUuCisgKi8KK2ludCBibGtpZF9wYXJ0aXRpb25fZ2V0X3R5cGUoYmxraWRfcGFydGl0aW9uIHBhcikKK3sKKwlyZXR1cm4gcGFyID8gcGFyLT50eXBlIDogMDsKK30KKworLyogU2V0cyBwYXJ0aXRpb24gJ3R5cGUnIGZvciBQVCB3aGVyZSB0aGUgdHlwZSBpcyBkZWZpbmVkIGJ5IHN0cmluZyByYXRoZXIKKyAqIHRoYW4gYnkgbnVtYmVyCisgKi8KK2ludCBibGtpZF9wYXJ0aXRpb25fc2V0X3R5cGVfc3RyaW5nKGJsa2lkX3BhcnRpdGlvbiBwYXIsCisJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnR5cGUsIHNpemVfdCBsZW4pCit7CisJaWYgKCFwYXIpCisJCXJldHVybiAtMTsKKworCXNldF9zdHJpbmcoKHVuc2lnbmVkIGNoYXIgKikgcGFyLT50eXBlc3RyLAorCQkJc2l6ZW9mKHBhci0+dHlwZXN0ciksIHR5cGUsIGxlbik7CisJcmV0dXJuIDA7Cit9CisKKy8qIFNldHMgcGFydGl0aW9uICd0eXBlJyBmb3IgUFQgd2hlcmUgdGhlIHR5cGUgaXMgZGVmaW5lZCBieSBVVUlEcmF0aGVyCisgKiB0aGFuIGJ5IG51bWJlcgorICovCitpbnQgYmxraWRfcGFydGl0aW9uX3NldF90eXBlX3V1aWQoYmxraWRfcGFydGl0aW9uIHBhciwgY29uc3QgdW5zaWduZWQgY2hhciAqdXVpZCkKK3sKKwlpZiAoIXBhcikKKwkJcmV0dXJuIC0xOworCisJYmxraWRfdW5wYXJzZV91dWlkKHV1aWQsIHBhci0+dHlwZXN0ciwgc2l6ZW9mKHBhci0+dHlwZXN0cikpOworCXJldHVybiAwOworfQorCisvKioKKyAqIGJsa2lkX3BhcnRpdGlvbl9nZXRfdHlwZV9zdHJpbmc6CisgKiBAcGFyOiBwYXJ0aXRpb24KKyAqCisgKiBUaGUgdHlwZSBzdHJpbmcgaXMgc3VwcG9ydGVkIGJ5IGEgc21hbGwgc3Vic2V0IG9mIHBhcnRpdGlvbiB0YWJsZXMgKGUuZyBNYWMKKyAqIGFuZCBFRkkgR1BUKS4gIE5vdGUgdGhhdCBHUFQgdXNlcyB0eXBlIFVVSUQgYW5kIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGlzCisgKiBVVUlEIGFzIHN0cmluZy4KKyAqCisgKiBSZXR1cm5zOiBwYXJ0aXRpb24gdHlwZSBzdHJpbmcgb3IgTlVMTC4KKyAqLworY29uc3QgY2hhciAqYmxraWRfcGFydGl0aW9uX2dldF90eXBlX3N0cmluZyhibGtpZF9wYXJ0aXRpb24gcGFyKQoreworCXJldHVybiBwYXIgJiYgKnBhci0+dHlwZXN0ciA/IHBhci0+dHlwZXN0ciA6IE5VTEw7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9wYXJ0aXRpb25zLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvcGFydGl0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMTc3NjgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvcGFydGl0aW9ucy5oCkBAIC0wLDAgKzEsNTUgQEAKKyNpZm5kZWYgQkxLSURfUEFSVElUSU9OU19ICisjZGVmaW5lIEJMS0lEX1BBUlRJVElPTlNfSAorCisjaW5jbHVkZSAiYmxraWRQLmgiCisjaW5jbHVkZSAiYmxraWRfcGFydHR5cGVzLmgiCisKK2V4dGVybiBpbnQgYmxraWRfcGFydGl0aW9uc19nZXRfZmxhZ3MoYmxraWRfcHJvYmUgcHIpOworCitleHRlcm4gYmxraWRfcGFydHRhYmxlIGJsa2lkX3BhcnRsaXN0X25ld19wYXJ0dGFibGUoYmxraWRfcGFydGxpc3QgbHMsCisJCQkJY29uc3QgY2hhciAqdHlwZSwgYmxraWRfbG9mZl90IG9mZnNldCk7CisKK2V4dGVybiBibGtpZF9wYXJ0aXRpb24gYmxraWRfcGFydGxpc3RfYWRkX3BhcnRpdGlvbihibGtpZF9wYXJ0bGlzdCBscywKKwkJCQlibGtpZF9wYXJ0dGFibGUgdGFiLCBpbnQgdHlwZSwKKwkJCQlibGtpZF9sb2ZmX3Qgc3RhcnQsIGJsa2lkX2xvZmZfdCBzaXplKTsKKworZXh0ZXJuIGludCBibGtpZF9wYXJ0bGlzdF9zZXRfcGFydG5vKGJsa2lkX3BhcnRsaXN0IGxzLCBpbnQgcGFydG5vKTsKK2V4dGVybiBibGtpZF9wYXJ0aXRpb24gYmxraWRfcGFydGxpc3RfZ2V0X3BhcmVudChibGtpZF9wYXJ0bGlzdCBscyk7CisKK2V4dGVybiBpbnQgYmxraWRfcGFydGl0aW9uc19kb19zdWJwcm9iZShibGtpZF9wcm9iZSBwciwKKwkJCWJsa2lkX3BhcnRpdGlvbiBwYXJlbnQsIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gKmlkKTsKKworZXh0ZXJuIGludCBibGtpZF9wYXJ0aXRpb25zX25lZWRfdHlwZW9ubHkoYmxraWRfcHJvYmUgcHIpOworZXh0ZXJuIGludCBibGtpZF9pc19uZXN0ZWRfZGltZW5zaW9uKGJsa2lkX3BhcnRpdGlvbiBwYXIsCisgICAgICAgICAgICAgICAgICAgICAgICBibGtpZF9sb2ZmX3Qgc3RhcnQsIGJsa2lkX2xvZmZfdCBzaXplKTsKKworZXh0ZXJuIGludCBibGtpZF9wYXJ0aXRpb25fc2V0X25hbWUoYmxraWRfcGFydGl0aW9uIHBhciwKKwkJY29uc3QgdW5zaWduZWQgY2hhciAqbmFtZSwgc2l6ZV90IGxlbik7CisKK2V4dGVybiBpbnQgYmxraWRfcGFydGl0aW9uX3NldF91dGY4bmFtZShibGtpZF9wYXJ0aXRpb24gcGFyLAorCQljb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lLCBzaXplX3QgbGVuLCBpbnQgZW5jKTsKKworZXh0ZXJuIGludCBibGtpZF9wYXJ0aXRpb25fc2V0X3V1aWQoYmxraWRfcGFydGl0aW9uIHBhciwKKwkJY29uc3QgdW5zaWduZWQgY2hhciAqdXVpZCk7CisKK2V4dGVybiBpbnQgYmxraWRfcGFydGl0aW9uX3NldF90eXBlX3N0cmluZyhibGtpZF9wYXJ0aXRpb24gcGFyLAorICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnR5cGUsIHNpemVfdCBsZW4pOworCitleHRlcm4gaW50IGJsa2lkX3BhcnRpdGlvbl9zZXRfdHlwZV91dWlkKGJsa2lkX3BhcnRpdGlvbiBwYXIsCisJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnV1aWQpOworCisvKgorICogcGFydGl0aW9uIHByb2JlcnMKKyAqLworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gYWl4X3B0X2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGJzZF9wdF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyB1bml4d2FyZV9wdF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBzb2xhcmlzX3g4Nl9wdF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBzdW5fcHRfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gc2dpX3B0X2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIG1hY19wdF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBkb3NfcHRfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gbWluaXhfcHRfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gZ3B0X3B0X2lkaW5mbzsKKworI2VuZGlmIC8qIEJMS0lEX1BBUlRJVElPTlNfSCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL3NnaS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL3NnaS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxMDk0YjcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvc2dpLmMKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBzZ2kgcGFydGl0aW9uIHBhcnNpbmcgY29kZQorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICoKKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJwYXJ0aXRpb25zLmgiCisKKyNkZWZpbmUgU0dJX01BWFBBUlRJVElPTlMJMTYKKworLyogcGFydGl0aW9uIHR5cGUgKi8KKyNkZWZpbmUgU0dJX1RZUEVfVk9MSERSCQkweDAwCisjZGVmaW5lIFNHSV9UWVBFX1ZPTFVMTUUJMHgwNgkvKiBlbnRpcmUgZGlzayAqLworCitzdHJ1Y3Qgc2dpX2RldmljZV9wYXJhbWV0ZXIgeworCXVuc2lnbmVkIGNoYXIgc2tldzsKKwl1bnNpZ25lZCBjaGFyIGdhcDE7CisJdW5zaWduZWQgY2hhciBnYXAyOworCXVuc2lnbmVkIGNoYXIgc3BhcmVjeWw7CisKKwl1aW50MTZfdCBwY3lsY291bnQ7CisJdWludDE2X3QgaGVhZF92b2wwOworCXVpbnQxNl90IG50cmtzOwkJLyogdHJhY2tzIGluIGN5bCAwIG9yIHZvbCAwICovCisKKwl1bnNpZ25lZCBjaGFyIGNtZF90YWdfcXVldWVfZGVwdGg7CisJdW5zaWduZWQgY2hhciB1bnVzZWQwOworCisJdWludDE2X3QgdW51c2VkMTsKKwl1aW50MTZfdCBuc2VjdDsJCS8qIHNlY3RvcnMvdHJhY2tzIGluIGN5bCAwIG9yIHZvbCAwICovCisJdWludDE2X3QgYnl0ZXM7CisJdWludDE2X3QgaWxmYWN0OworCXVpbnQzMl90IGZsYWdzOwkJLyogY29udHJvbGxlciBmbGFncyAqLworCXVpbnQzMl90IGRhdGFyYXRlOworCXVpbnQzMl90IHJldHJpZXNfb25fZXJyb3I7CisJdWludDMyX3QgbXNfcGVyX3dvcmQ7CisJdWludDE2X3QgeHlsb2dpY3NfZ2FwMTsKKwl1aW50MTZfdCB4eWxvZ2ljc19zeW5jZGVsYXk7CisJdWludDE2X3QgeHlsb2dpY3NfcmVhZGRlbGF5OworCXVpbnQxNl90IHh5bG9naWNzX2dhcDI7CisJdWludDE2X3QgeHlsb2dpY3NfcmVhZGdhdGU7CisJdWludDE2X3QgeHlsb2dpY3Nfd3JpdGVjb250OworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IHNnaV9kaXNrbGFiZWwgeworCXVpbnQzMl90IG1hZ2ljOwkJCS8qIG1hZ2ljIG51bWJlciAqLworCXVpbnQxNl90IHJvb3RfcGFydF9udW07CQkvKiAjIHJvb3QgcGFydGl0aW9uICovCisJdWludDE2X3Qgc3dhcF9wYXJ0X251bTsJCS8qICMgc3dhcCBwYXJ0aXRpb24gKi8KKwl1bnNpZ25lZCBjaGFyIGJvb3RfZmlsZVsxNl07CS8qIG5hbWUgb2YgYm9vdCBmaWxlICovCisKKwlzdHJ1Y3Qgc2dpX2RldmljZV9wYXJhbWV0ZXIJZGV2cGFyYW07CS8qIG5vdCB1c2VkIG5vdyAqLworCisJc3RydWN0IHNnaV92b2x1bWUgeworCQl1bnNpZ25lZCBjaGFyIG5hbWVbOF07CS8qIG5hbWUgb2Ygdm9sdW1lICovCisJCXVpbnQzMl90IGJsb2NrX251bTsJLyogbG9naWNhbCBibG9jayBudW1iZXIgKi8KKwkJdWludDMyX3QgbnVtX2J5dGVzOwkvKiBob3cgYmlnLCBpbiBieXRlcyAqLworCX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgdm9sdW1lWzE1XTsKKworCXN0cnVjdCBzZ2lfcGFydGl0aW9uIHsKKwkJdWludDMyX3QgbnVtX2Jsb2NrczsJLyogc2l6ZSBpbiBsb2dpY2FsIGJsb2NrcyAqLworCQl1aW50MzJfdCBmaXJzdF9ibG9jazsJLyogZmlyc3QgbG9naWNhbCBibG9jayAqLworCQl1aW50MzJfdCB0eXBlOwkJLyogdHlwZSBvZiB0aGlzIHBhcnRpdGlvbiAqLworCX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgcGFydGl0aW9uc1tTR0lfTUFYUEFSVElUSU9OU107CisKKwkvKiBjaGVja3N1bSBpcyB0aGUgMzJiaXQgMidzIGNvbXBsZW1lbnQgc3VtIG9mIHRoZSBkaXNrbGFiZWwgKi8KKwl1aW50MzJfdCBjc3VtOwkJCS8qIGRpc2sgbGFiZWwgY2hlY2tzdW0gKi8KKwl1aW50MzJfdCBwYWRkaW5nOwkJLyogcGFkZGluZyAqLworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RhdGljIHVpbnQzMl90IGNvdW50X2NoZWNrc3VtKHN0cnVjdCBzZ2lfZGlza2xhYmVsICpsYWJlbCkKK3sKKwlpbnQgaTsKKwl1aW50MzJfdCAqcHRyID0gKHVpbnQzMl90ICopIGxhYmVsOworCXVpbnQzMl90IHN1bSA9IDA7CisKKwlpID0gc2l6ZW9mKCpsYWJlbCkgLyBzaXplb2YoKnB0cik7CisKKwl3aGlsZSAoaS0tKQorCQlzdW0gKz0gYmUzMl90b19jcHUocHRyW2ldKTsKKworCXJldHVybiBzdW07Cit9CisKKworc3RhdGljIGludCBwcm9iZV9zZ2lfcHQoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBzZ2lfZGlza2xhYmVsICpsOworCXN0cnVjdCBzZ2lfcGFydGl0aW9uICpwOworCWJsa2lkX3BhcnR0YWJsZSB0YWIgPSBOVUxMOworCWJsa2lkX3BhcnRsaXN0IGxzOworCWludCBpOworCisJbCA9IChzdHJ1Y3Qgc2dpX2Rpc2tsYWJlbCAqKSBibGtpZF9wcm9iZV9nZXRfc2VjdG9yKHByLCAwKTsKKwlpZiAoIWwpCisJCWdvdG8gbm90aGluZzsKKworCWlmIChjb3VudF9jaGVja3N1bShsKSkgeworCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigKKwkJCSJkZXRlY3RlZCBjb3JydXB0ZWQgc2dpIGRpc2sgbGFiZWwgLS0gaWdub3JlXG4iKSk7CisJCWdvdG8gbm90aGluZzsKKwl9CisKKwlpZiAoYmxraWRfcGFydGl0aW9uc19uZWVkX3R5cGVvbmx5KHByKSkKKwkJLyogY2FsbGVyIGRvZXMgbm90IGFzayBmb3IgZGV0YWlscyBhYm91dCBwYXJ0aXRpb25zICovCisJCXJldHVybiAwOworCisJbHMgPSBibGtpZF9wcm9iZV9nZXRfcGFydGxpc3QocHIpOworCWlmICghbHMpCisJCWdvdG8gZXJyOworCisJdGFiID0gYmxraWRfcGFydGxpc3RfbmV3X3BhcnR0YWJsZShscywgInNnaSIsIDApOworCWlmICghdGFiKQorCQlnb3RvIGVycjsKKworCWZvcihpID0gMCwgcCA9ICZsLT5wYXJ0aXRpb25zWzBdOyBpIDwgU0dJX01BWFBBUlRJVElPTlM7IGkrKywgcCsrKSB7CisJCXVpbnQzMl90IHNpemUgPSBiZTMyX3RvX2NwdShwLT5udW1fYmxvY2tzKTsKKwkJdWludDMyX3Qgc3RhcnQgPSBiZTMyX3RvX2NwdShwLT5maXJzdF9ibG9jayk7CisJCXVpbnQzMl90IHR5cGUgPSBiZTMyX3RvX2NwdShwLT50eXBlKTsKKworCQlpZiAoc2l6ZSA9PSAwIHx8IHR5cGUgPT0gU0dJX1RZUEVfVk9MVUxNRSB8fAorCQkJICAgICAgICAgdHlwZSA9PSBTR0lfVFlQRV9WT0xIRFIpCisJCQljb250aW51ZTsKKworCQlpZiAoIWJsa2lkX3BhcnRsaXN0X2FkZF9wYXJ0aXRpb24obHMsIHRhYiwgdHlwZSwgc3RhcnQsIHNpemUpKQorCQkJZ290byBlcnI7CisJfQorCisJcmV0dXJuIDA7CisKK25vdGhpbmc6CisJcmV0dXJuIDE7CitlcnI6CisJcmV0dXJuIC0xOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHNnaV9wdF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJzZ2kiLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9zZ2lfcHQsCisJLm1hZ2ljcwkJPQorCXsKKwkJeyAubWFnaWMgPSAiXHgwQlx4RTVceEE5XHg0MSIsIC5sZW4gPSA0CX0sCisJCXsgTlVMTCB9CisJfQorfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL3NvbGFyaXNfeDg2LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvc29sYXJpc194ODYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTM5YTEwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL3NvbGFyaXNfeDg2LmMKQEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBTb2xhcmlzIHg4NiBwYXJ0aXRpb24gcGFyc2luZyBjb2RlCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAicGFydGl0aW9ucy5oIgorCisvKgorICogU29sYXJpcy14ODYgaXMgYWx3YXlzIHdpdGhpbiBwcmltYXJ5IGRvcyBwYXJ0aXRpb24gKG5lc3RlZCBQVCB0YWJsZSkuICBUaGUKKyAqIHNvbGFyaXMteDg2IHZ0b2MgYWxsb3dzIHRvIHNwbGl0IHRoZSBlbnRpcmUgcGFydGl0aW9uIHRvICJzbGljZXMiLiBUaGUKKyAqIG9mZnNldCAoc3RhcnQpIG9mIHRoZSBzbGljZSBpcyBhbHdheXMgcmVsYXRpdmVseSB0byB0aGUgcHJpbWFyeSBkb3MKKyAqIHBhcnRpdGlvbi4KKyAqCisgKiBOb3RlIHRoYXQgU29sYXJpcy1TUEFSQyB1c2VzIGVudGlyZSBkaXNrIHdpdGggYSBkaWZmZXJlbnQgcGFydGl0aW9ubmluZworICogc2NoZW1lLgorICovCisKKy8qIHNvbWUgb3RoZXIgaW1wbGVtZW50YXRpb24gdGhhbiBMaW51eCBrZXJuZWwgYXNzdW1lIDggcGFydGl0aW9ucyBvbmx5ICovCisjZGVmaW5lIFNPTEFSSVNfTUFYUEFSVElUSU9OUwkxNgorCisvKiBkaXNrbGFiZWwgKHZ0b2MpIGxvY2F0aW9uICAqLworI2RlZmluZSBTT0xBUklTX1NFQ1RPUgkJMQkJCS8qIGluIDUxMi1zZWN0b3JzICovCisjZGVmaW5lIFNPTEFSSVNfT0ZGU0VUCQkoU09MQVJJU19TRUNUT1IgPDwgOSkJLyogaW4gYnl0ZXMgKi8KKyNkZWZpbmUgU09MQVJJU19NQUdJQ09GRlNFVAkoU09MQVJJU19PRkZTRVQgKyAxMikJLyogdl9zYW5pdHkgb2Zmc2V0IGluIGJ5dGVzICovCisKKy8qIHNsaWNlIHRhZ3MgKi8KKyNkZWZpbmUgU09MQVJJU19UQUdfV0hPTEVESVNLCTUKKworc3RydWN0IHNvbGFyaXNfc2xpY2UgeworCXVpbnQxNl90IHNfdGFnOyAgICAgIC8qIElEIHRhZyBvZiBwYXJ0aXRpb24gKi8KKwl1aW50MTZfdCBzX2ZsYWc7ICAgICAvKiBwZXJtaXNzaW9uIGZsYWdzICovCisJdWludDMyX3Qgc19zdGFydDsgICAgLyogc3RhcnQgc2VjdG9yIG5vIG9mIHBhcnRpdGlvbiAqLworCXVpbnQzMl90IHNfc2l6ZTsgICAgIC8qICMgb2YgYmxvY2tzIGluIHBhcnRpdGlvbiAqLworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IHNvbGFyaXNfdnRvYyB7CisJdW5zaWduZWQgaW50IHZfYm9vdGluZm9bM107ICAgICAvKiBpbmZvIG5lZWRlZCBieSBtYm9vdCAodW5zdXBwb3J0ZWQpICovCisKKwl1aW50MzJfdCAgICAgdl9zYW5pdHk7ICAgICAgICAgIC8qIHRvIHZlcmlmeSB2dG9jIHNhbml0eSAqLworCXVpbnQzMl90ICAgICB2X3ZlcnNpb247ICAgICAgICAgLyogbGF5b3V0IHZlcnNpb24gKi8KKwljaGFyICAgICAgICAgdl92b2x1bWVbOF07ICAgICAgIC8qIHZvbHVtZSBuYW1lICovCisJdWludDE2X3QgICAgIHZfc2VjdG9yc3o7ICAgICAgICAvKiBzZWN0b3Igc2l6ZSBpbiBieXRlcyAqLworCXVpbnQxNl90ICAgICB2X25wYXJ0czsgICAgICAgICAgLyogbnVtYmVyIG9mIHBhcnRpdGlvbnMgKi8KKwl1bnNpZ25lZCBpbnQgdl9yZXNlcnZlZFsxMF07ICAgIC8qIGZyZWUgc3BhY2UgKi8KKworCXN0cnVjdCBzb2xhcmlzX3NsaWNlIHZfc2xpY2VbU09MQVJJU19NQVhQQVJUSVRJT05TXTsgLyogc2xpY2VzICovCisKKwl1bnNpZ25lZCBpbnQgdGltZXN0YW1wW1NPTEFSSVNfTUFYUEFSVElUSU9OU107IC8qIHRpbWVzdGFtcCAodW5zdXBwb3J0ZWQpICovCisJY2hhciAgICAgICAgIHZfYXNjaWlsYWJlbFsxMjhdOwkvKiBmb3IgY29tcGF0aWJpbGl0eSAqLworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RhdGljIGludCBwcm9iZV9zb2xhcmlzX3B0KGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3Qgc29sYXJpc192dG9jICpsOwkvKiBkaXNrIGxhYmVsICovCisJc3RydWN0IHNvbGFyaXNfc2xpY2UgKnA7CS8qIHBhcnRpdHNpb24gKi8KKwlibGtpZF9wYXJ0dGFibGUgdGFiID0gTlVMTDsKKwlibGtpZF9wYXJ0aXRpb24gcGFyZW50OworCWJsa2lkX3BhcnRsaXN0IGxzOworCWludCBpOworCXVpbnQxNl90IG5wYXJ0czsKKworCWwgPSAoc3RydWN0IHNvbGFyaXNfdnRvYyAqKSBibGtpZF9wcm9iZV9nZXRfc2VjdG9yKHByLCBTT0xBUklTX1NFQ1RPUik7CisJaWYgKCFsKQorCQlnb3RvIG5vdGhpbmc7CisKKwlpZiAobGUzMl90b19jcHUobC0+dl92ZXJzaW9uKSAhPSAxKSB7CisJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkJIldBUk5JTkc6IHVuc3VwcG9ydGVkIHNvbGFyaXMgeDg2IHZlcnNpb24gJWQsIGlnbm9yZVxuIiwKKwkJCWxlMzJfdG9fY3B1KGwtPnZfdmVyc2lvbikpKTsKKwkJZ290byBub3RoaW5nOworCX0KKworCWlmIChibGtpZF9wYXJ0aXRpb25zX25lZWRfdHlwZW9ubHkocHIpKQorCQkvKiBjYWxsZXIgZG9lcyBub3QgYXNrIGZvciBkZXRhaWxzIGFib3V0IHBhcnRpdGlvbnMgKi8KKwkJcmV0dXJuIDA7CisKKwlscyA9IGJsa2lkX3Byb2JlX2dldF9wYXJ0bGlzdChwcik7CisJaWYgKCFscykKKwkJZ290byBlcnI7CisKKwlwYXJlbnQgPSBibGtpZF9wYXJ0bGlzdF9nZXRfcGFyZW50KGxzKTsKKworCXRhYiA9IGJsa2lkX3BhcnRsaXN0X25ld19wYXJ0dGFibGUobHMsICJzb2xhcmlzIiwgU09MQVJJU19PRkZTRVQpOworCWlmICghdGFiKQorCQlnb3RvIGVycjsKKworCW5wYXJ0cyA9IGxlMTZfdG9fY3B1KGwtPnZfbnBhcnRzKTsKKwlpZiAobnBhcnRzID4gU09MQVJJU19NQVhQQVJUSVRJT05TKQorCQlucGFydHMgPSBTT0xBUklTX01BWFBBUlRJVElPTlM7CisKKwlmb3IgKGkgPSAxLCBwID0gJmwtPnZfc2xpY2VbMF07CWkgPCBucGFydHM7IGkrKywgcCsrKSB7CisKKwkJdWludDMyX3Qgc3RhcnQgPSBsZTMyX3RvX2NwdShwLT5zX3N0YXJ0KTsKKwkJdWludDMyX3Qgc2l6ZSA9IGxlMzJfdG9fY3B1KHAtPnNfc2l6ZSk7CisKKwkJaWYgKHNpemUgPT0gMCB8fCBsZTE2X3RvX2NwdShwLT5zX3RhZykgPT0gU09MQVJJU19UQUdfV0hPTEVESVNLKQorCQkJY29udGludWU7CisKKwkJaWYgKHBhcmVudCkKKwkJCS8qIFNvbGFyaXMgc2xpY2VzIGFyZSByZWxhdGl2ZSB0byB0aGUgcGFyZW50IChwcmltYXJ5CisJCQkgKiBET1MgcGFydGl0aW9uKSAqLworCQkJc3RhcnQgKz0gYmxraWRfcGFydGl0aW9uX2dldF9zdGFydChwYXJlbnQpOworCisJCWlmIChwYXJlbnQgJiYgIWJsa2lkX2lzX25lc3RlZF9kaW1lbnNpb24ocGFyZW50LCBzdGFydCwgc2l6ZSkpIHsKKwkJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkJCSJXQVJOSU5HOiBzb2xhcmlzIHBhcnRpdGlvbiAoJWQpIG92ZXJmbG93ICIKKwkJCQkiZGV0ZWN0ZWQsIGlnbm9yZVxuIiwgaSkpOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoIWJsa2lkX3BhcnRsaXN0X2FkZF9wYXJ0aXRpb24obHMsIHRhYiwKKwkJCQlsZTE2X3RvX2NwdShwLT5zX3RhZyksIHN0YXJ0LCBzaXplKSkKKwkJCWdvdG8gZXJyOworCX0KKworCXJldHVybiAwOworCitub3RoaW5nOgorCXJldHVybiAxOworZXJyOgorCXJldHVybiAtMTsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBzb2xhcmlzX3g4Nl9wdF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJzb2xhcmlzIiwKKwkucHJvYmVmdW5jCT0gcHJvYmVfc29sYXJpc19wdCwKKwkubWFnaWNzCQk9CisJeworCQl7CisJCSAgLm1hZ2ljID0gIlx4RUVceERFXHgwRFx4NjAiLAkvKiBsaXR0bGUtZW5kaWFuIG1hZ2ljIHN0cmluZyAqLworCQkgIC5sZW4gPSA0LAkJCS8qIHZfc2FuaXR5IHNpemUgaW4gYnl0ZXMgKi8KKwkJICAuc2JvZmYgPSBTT0xBUklTX01BR0lDT0ZGU0VUCS8qIG9mZnNldCBvZiB2X3Nhbml0eSAqLworCQl9LAorCQl7IE5VTEwgfQorCX0KK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9zdW4uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy9zdW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmYwMDBmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wYXJ0aXRpb25zL3N1bi5jCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogc3VuIChzb2xhcmlzLXNwYXJjKSBwYXJ0aXRpb24gcGFyc2luZyBjb2RlCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgorCisjaW5jbHVkZSAicGFydGl0aW9ucy5oIgorCisvKiBTdXBwb3J0ZWQgVlRPQyBzZXR0aW5nICovCisjZGVmaW5lIFNVTl9WVE9DX1NBTklUWQkJMHg2MDBEREVFRQkvKiBtYWdpYyBudW1iZXIgKi8KKyNkZWZpbmUgU1VOX1ZUT0NfVkVSU0lPTgkxCisKKyNkZWZpbmUgU1VOX01BWFBBUlRJVElPTlMJOAorCisvKiBQYXJ0aXRpb24gSURzICovCisjZGVmaW5lIFNVTl9UQUdfV0hPTEVESVNLICAgICAgICAgIDB4MDUKKworc3RydWN0IHN1bl9kaXNrbGFiZWwgeworCXVuc2lnbmVkIGNoYXIgaW5mb1sxMjhdOyAgIC8qIEluZm9ybWF0aXZlIHRleHQgc3RyaW5nICovCisKKwlzdHJ1Y3Qgc3VuX3Z0b2MgeworCQl1aW50MzJfdCB2ZXJzaW9uOyAgICAgLyogdmVyc2lvbiAqLworCQljaGFyCSB2b2x1bWVbOF07ICAgLyogdm9sdW1lIG5hbWUgKi8KKwkJdWludDE2X3QgbnBhcnRzOyAgICAgIC8qIG51bSBvZiBwYXJ0aXRpb25zICovCisKKwkJc3RydWN0IHN1bl9pbmZvIHsgICAgIC8qIHBhcnRpdGlvbiBpbmZvcm1hdGlvbiAqLworCQkJdWludDE2X3QgaWQ7CisJCQl1aW50MTZfdCBmbGFnczsKKwkJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgaW5mb3NbOF07CisKKwkJdWludDE2X3QgcGFkZGluZzsgICAgICAvKiBwYWRkaW5nICovCisJCXVpbnQzMl90IGJvb3RpbmZvWzNdOyAgLyogaW5mbyBuZWVkZWQgYnkgbWJvb3QgKi8KKwkJdWludDMyX3Qgc2FuaXR5OyAgICAgICAvKiBtYWdpYyBudW1iZXIgKi8KKwkJdWludDMyX3QgcmVzZXJ2ZWRbMTBdOyAvKiBwYWRkaW5nICovCisJCXVpbnQzMl90IHRpbWVzdGFtcFs4XTsgLyogcGFydGl0aW9uIHRpbWVzdGFtcCAqLworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHZ0b2M7CisKKwl1aW50MzJfdCB3cml0ZV9yZWluc3RydWN0OyAgICAgLyogc2VjdG9ycyB0byBza2lwLCB3cml0ZXMgKi8KKwl1aW50MzJfdCByZWFkX3JlaW5zdHJ1Y3Q7ICAgICAgLyogc2VjdG9ycyB0byBza2lwLCByZWFkcyAqLworCXVuc2lnbmVkIGNoYXIgc3BhcmVbMTQ4XTsgICAgICAvKiBwYWRkaW5nICovCisJdWludDE2X3QgcnNwZWVkOyAgICAgICAgICAgICAgIC8qIGRpc2sgcm90YXRpb25hbCBzcGVlZCAqLworCXVpbnQxNl90IHBjeWxjb3VudDsgICAgICAgICAgICAvKiBwaHlzaWNhbCBjeWxpbmRlciBjb3VudCAqLworCXVpbnQxNl90IHNwYXJlY3lsOyAgICAgICAgICAgICAvKiBleHRyYSBzZWN0cyBwZXIgY3lsaW5kZXIgKi8KKwl1aW50MTZfdCBvYnMxOworCXVpbnQxNl90IG9iczI7CisJdWludDE2X3QgaWxmYWN0OyAgICAgICAgICAgICAgIC8qIGludGVybGVhdmUgZmFjdG9yICovCisJdWludDE2X3QgbmN5bDsgICAgICAgICAgICAgICAgIC8qIGRhdGEgY3lsaW5kZXIgY291bnQgKi8KKwl1aW50MTZfdCBuYWN5bDsgICAgICAgICAgICAgICAgLyogYWx0LiBjeWxpbmRlciBjb3VudCAqLworCXVpbnQxNl90IG50cmtzOyAgICAgICAgICAgICAgICAvKiB0cmFja3MgcGVyIGN5bGluZGVyICAgPC0tLS0gKi8KKwl1aW50MTZfdCBuc2VjdDsgICAgICAgICAgICAgICAgLyogc2VjdG9ycyBwZXIgdHJhY2sgICAgIDwtLS0tICovCisJdWludDE2X3Qgb2JzMzsKKwl1aW50MTZfdCBvYnM0OworCisJc3RydWN0IHN1bl9wYXJ0aXRpb24geyAgICAgICAgIC8qIHBhcnRpdGlvbnMgKi8KKwkJdWludDMyX3Qgc3RhcnRfY3lsaW5kZXI7CisJCXVpbnQzMl90IG51bV9zZWN0b3JzOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHBhcnRpdGlvbnNbOF07CisKKwl1aW50MTZfdCBtYWdpYzsgICAgICAgICAgICAgICAgLyogbWFnaWMgbnVtYmVyICovCisJdWludDE2X3QgY3N1bTsgICAgICAgICAgICAgICAgIC8qIGxhYmVsIHhvcidkIGNoZWNrc3VtICovCit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworCit1aW50MTZfdCBjb3VudF9jaGVja3N1bShzdHJ1Y3Qgc3VuX2Rpc2tsYWJlbCAqbGFiZWwpCit7CisJdWludDE2X3QgKnB0ciA9ICgodWludDE2X3QgKikgKGxhYmVsICsgMSkpIC0gMTsKKwl1aW50MTZfdCBzdW07CisKKwlmb3IgKHN1bSA9IDA7IHB0ciA+PSAoKHVpbnQxNl90ICopIGxhYmVsKTspCisJCXN1bSBePSAqcHRyLS07CisKKwlyZXR1cm4gc3VtOworfQorCitzdGF0aWMgaW50IHByb2JlX3N1bl9wdChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IHN1bl9kaXNrbGFiZWwgKmw7CisJc3RydWN0IHN1bl9wYXJ0aXRpb24gKnA7CisJc3RydWN0IHN1bl9pbmZvICppbmZvcyA9IE5VTEw7CisJYmxraWRfcGFydHRhYmxlIHRhYiA9IE5VTEw7CisJYmxraWRfcGFydGxpc3QgbHM7CisJdWludDE2X3QgbnBhcnRzOworCWJsa2lkX2xvZmZfdCBzcGM7CisJaW50IGk7CisKKwlsID0gKHN0cnVjdCBzdW5fZGlza2xhYmVsICopIGJsa2lkX3Byb2JlX2dldF9zZWN0b3IocHIsIDApOworCWlmICghbCkKKwkJZ290byBub3RoaW5nOworCisJaWYgKGNvdW50X2NoZWNrc3VtKGwpKSB7CisJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkJImRldGVjdGVkIGNvcnJ1cHRlZCBzdW4gZGlzayBsYWJlbCAtLSBpZ25vcmVcbiIpKTsKKwkJZ290byBub3RoaW5nOworCX0KKworCWlmIChibGtpZF9wYXJ0aXRpb25zX25lZWRfdHlwZW9ubHkocHIpKQorCQkvKiBjYWxsZXIgZG9lcyBub3QgYXNrIGZvciBkZXRhaWxzIGFib3V0IHBhcnRpdGlvbnMgKi8KKwkJcmV0dXJuIDA7CisKKwlscyA9IGJsa2lkX3Byb2JlX2dldF9wYXJ0bGlzdChwcik7CisJaWYgKCFscykKKwkJZ290byBlcnI7CisKKwl0YWIgPSBibGtpZF9wYXJ0bGlzdF9uZXdfcGFydHRhYmxlKGxzLCAic3VuIiwgMCk7CisJaWYgKCF0YWIpCisJCWdvdG8gZXJyOworCisJLyogZGVmYXVsdCBudW1iZXIgb2YgcGFydGl0aW9ucyAqLworCW5wYXJ0cyA9IFNVTl9NQVhQQVJUSVRJT05TOworCisJLyogc2VjdG9ycyBwZXIgY3lsaW5kZXIgKHBhcnRpdGlvbiBvZmZzZXQgaXMgaW4gY3lsaW5kZXJzLi4uKSAqLworCXNwYyA9IGJlMTZfdG9fY3B1KGwtPm50cmtzKSAqIGJlMTZfdG9fY3B1KGwtPm5zZWN0KTsKKworCWlmICgoYmUzMl90b19jcHUobC0+dnRvYy5zYW5pdHkpID09IFNVTl9WVE9DX1NBTklUWSkgJiYKKwkgICAgKGJlMzJfdG9fY3B1KGwtPnZ0b2MudmVyc2lvbikgPT0gU1VOX1ZUT0NfVkVSU0lPTikgJiYKKwkgICAgKGJlMTZfdG9fY3B1KGwtPnZ0b2MubnBhcnRzKSA8PSBTVU5fTUFYUEFSVElUSU9OUykpIHsKKworCQlucGFydHMgPSBiZTE2X3RvX2NwdShsLT52dG9jLm5wYXJ0cyk7CisJCWluZm9zID0gbC0+dnRvYy5pbmZvczsJCQkvKiBmb3IgcGFydGl0aW9uIHR5cGUgKi8KKwl9CisKKwlmb3IgKGkgPSAwLCBwID0gbC0+cGFydGl0aW9uczsgaSA8IG5wYXJ0czsgaSsrLCBwKyspIHsKKworCQlibGtpZF9sb2ZmX3Qgc3RhcnQ7CisJCWJsa2lkX2xvZmZfdCBzaXplOworCQl1aW50MTZfdCB0eXBlID0gaW5mb3MgPyBiZTE2X3RvX2NwdShpbmZvc1tpXS5pZCkgOiAwOworCisgICAgICAgICAgICAgICAgc3RhcnQgPSBiZTMyX3RvX2NwdShwLT5zdGFydF9jeWxpbmRlcikgKiBzcGM7CisJCXNpemUgPSBiZTMyX3RvX2NwdShwLT5udW1fc2VjdG9ycyk7CisKKwkJaWYgKHR5cGUgPT0gU1VOX1RBR19XSE9MRURJU0sgfHwgIXNpemUpCisJCQljb250aW51ZTsKKworCQlpZiAoIWJsa2lkX3BhcnRsaXN0X2FkZF9wYXJ0aXRpb24obHMsIHRhYiwgdHlwZSwgc3RhcnQsIHNpemUpKQorCQkJZ290byBlcnI7CisJfQorCXJldHVybiAwOworCitub3RoaW5nOgorCXJldHVybiAxOworZXJyOgorCXJldHVybiAtMTsKK30KKworCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHN1bl9wdF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJzdW4iLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9zdW5fcHQsCisJLm1hZ2ljcwkJPQorCXsKKwkJeworCQkgIC5tYWdpYyA9ICJceERBXHhCRSIsCQkvKiBiaWctZW5kaWFuIG1hZ2ljIHN0cmluZyAqLworCQkgIC5sZW4gPSAyLAorCQkgIC5zYm9mZiA9IG9mZnNldG9mKHN0cnVjdCBzdW5fZGlza2xhYmVsLCBtYWdpYykKKwkJfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvdW5peHdhcmUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcGFydGl0aW9ucy91bml4d2FyZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZGJhNzYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3BhcnRpdGlvbnMvdW5peHdhcmUuYwpAQCAtMCwwICsxLDE4OCBAQAorLyoKKyAqIHVuaXh3YXJlIHBhcnRpdGlvbiBwYXJzaW5nIGNvZGUKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqCisgKgorICogVGhlIGludGVyc3RpbmcgaW5mb3JtYXRpb24gYWJvdXQgdW5peHdhcmUgUFQ6CisgKiAgIC0gTGludXgga2VybmVsIC8gcGFydHgKKyAqICAgLSB2dG9jKDcpIFNDTyBVTklYIGNvbW1hbmQgbWFuIHBhZ2UKKyAqICAgLSBldm1zIHNvdXJjZSBjb2RlIChodHRwOi8vZXZtcy5zb3VyY2Vmb3JnZS5uZXQvKQorICogICAtIHZ4dG9vbHMgc291cmNlIGNvZGUgKGh0dHA6Ly9tYXJ0aW4uaGlubmVyLmluZm8vZnMvdnhmcy8pCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAicGFydGl0aW9ucy5oIgorCisvKiBkaXNrbGFiZWwgbG9jYXRpb24gKi8KKyNkZWZpbmUgVU5JWFdBUkVfU0VDVE9SCQkyOQorI2RlZmluZSBVTklYV0FSRV9PRkZTRVQJCShVTklYV0FSRV9TRUNUT1IgPDwgOSkJLyogb2Zmc2V0IGluIGJ5dGVzICovCisjZGVmaW5lIFVOSVhXQVJFX0tCT0ZGU0VUCShVTklYV0FSRV9PRkZTRVQgPj4gMTApCS8qIG9mZnNldCBpbiAxMDI0LWJsb2NrcyAqLworCisvKiBkaXNrbGFiZWwtPmRfbWFnaWMgb2Zmc2V0IHdpdGhpbiB0aGUgbGFzdCAxMDI0IGJsb2NrICovCisjZGVmaW5lIFVOSVhXQVJFX01BR0lDT0ZGU0VUCShVTklYV0FSRV9PRkZTRVQgLSBVTklYV0FSRV9LQk9GRlNFVCArIDQpCisKKyNkZWZpbmUgVU5JWFdBUkVfVlRPQ01BR0lDCTB4NjAwRERFRUVVTAorI2RlZmluZSBVTklYV0FSRV9NQVhQQVJUSVRJT05TCTE2CisKKy8qIHVuaXh3YXJlX3BhcnRpdGlvbi0+c19sYWJlbCBmbGFncyAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfVU5VU0VEICAgICAgIDB4MDAwMCAgLyogdW51c2VkIHBhcnRpdGlvbiAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfQk9PVCAgICAgICAgIDB4MDAwMSAgLyogYm9vdCBmcyAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfUk9PVCAgICAgICAgIDB4MDAwMiAgLyogcm9vdCBmcyAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfU1dBUCAgICAgICAgIDB4MDAwMyAgLyogc3dhcCBmcyAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfVVNFUiAgICAgICAgIDB4MDAwNCAgLyogdXNlciBmcyAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfRU5USVJFX0RJU0sgIDB4MDAwNSAgLyogd2hvbGUgZGlzayAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfQUxUX1MgICAgICAgIDB4MDAwNiAgLyogYWx0ZXJuYXRlIHNlY3RvciBzcGFjZSAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfT1RIRVIgICAgICAgIDB4MDAwNyAgLyogbm9uIHVuaXggKi8KKyNkZWZpbmUgVU5JWFdBUkVfVEFHX0FMVF9UICAgICAgICAweDAwMDggIC8qIGFsdGVybmF0ZSB0cmFjayBzcGFjZSAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfU1RBTkQgICAgICAgIDB4MDAwOSAgLyogc3RhbmQgcGFydGl0aW9uICovCisjZGVmaW5lIFVOSVhXQVJFX1RBR19WQVIgICAgICAgICAgMHgwMDBhICAvKiB2YXIgcGFydGl0aW9uICovCisjZGVmaW5lIFVOSVhXQVJFX1RBR19IT01FICAgICAgICAgMHgwMDBiICAvKiBob21lIHBhcnRpdGlvbiAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfRFVNUCAgICAgICAgIDB4MDAwYyAgLyogZHVtcCBwYXJ0aXRpb24gKi8KKyNkZWZpbmUgVU5JWFdBUkVfVEFHX0FMVF9TVCAgICAgICAweDAwMGQgIC8qIGFsdGVybmF0ZSBzZWN0b3IgdHJhY2sgKi8KKyNkZWZpbmUgVU5JWFdBUkVfVEFHX1ZNX1BVQkxJQyAgICAweDAwMGUgIC8qIHZvbHVtZSBtZ3QgcHVibGljIHBhcnRpdGlvbiAqLworI2RlZmluZSBVTklYV0FSRV9UQUdfVk1fUFJJVkFURSAgIDB4MDAwZiAgLyogdm9sdW1lIG1ndCBwcml2YXRlIHBhcnRpdGlvbiAqLworCisKKy8qIHVuaXh3YXJlX3BhcnRpdGlvbi0+c19mbGFncyBmbGFncyAqLworI2RlZmluZSBVTklYV0FSRV9GTEFHX1ZBTElECTB4MDIwMAorCitzdHJ1Y3QgdW5peHdhcmVfcGFydGl0aW9uIHsKKwl1aW50MTZfdAlzX2xhYmVsOwkvKiBwYXJ0aXRpb24gbGFiZWwgKHRhZykgKi8KKwl1aW50MTZfdAlzX2ZsYWdzOwkvKiBwZXJtaXNzaW9uIGZsYWdzICovCisJdWludDMyX3QJc3RhcnRfc2VjdDsJLyogc3RhcnRpbmcgc2VjdG9yICovCisJdWludDMyX3QJbnJfc2VjdHM7CS8qIG51bWJlciBvZiBzZWN0b3JzICovCit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdHJ1Y3QgdW5peHdhcmVfZGlza2xhYmVsIHsKKwl1aW50MzJfdAlkX3R5cGU7CQkvKiBkcml2ZSB0eXBlICovCisJdWludDMyX3QJZF9tYWdpYzsJLyogdGhlIG1hZ2ljIG51bWJlciAqLworCXVpbnQzMl90CWRfdmVyc2lvbjsJLyogdmVyc2lvbiBudW1iZXIgKi8KKwljaGFyCQlkX3NlcmlhbFsxMl07CS8qIHNlcmlhbCBudW1iZXIgb2YgdGhlIGRldmljZSAqLworCXVpbnQzMl90CWRfbmN5bGluZGVyczsJLyogIyBvZiBkYXRhIGN5bGluZGVycyBwZXIgZGV2aWNlICovCisJdWludDMyX3QJZF9udHJhY2tzOwkvKiAjIG9mIHRyYWNrcyBwZXIgY3lsaW5kZXIgKi8KKwl1aW50MzJfdAlkX25zZWN0b3JzOwkvKiAjIG9mIGRhdGEgc2VjdG9ycyBwZXIgdHJhY2sgKi8KKwl1aW50MzJfdAlkX3NlY3NpemU7CS8qICMgb2YgYnl0ZXMgcGVyIHNlY3RvciAqLworCXVpbnQzMl90CWRfcGFydF9zdGFydDsJLyogIyBvZiBmaXJzdCBzZWN0b3Igb2YgdGhpcyBwYXJ0aXRpb24gKi8KKwl1aW50MzJfdAlkX3Vua25vd24xWzEyXTsJLyogPyAqLworCXVpbnQzMl90CWRfYWx0X3RibDsJLyogYnl0ZSBvZmZzZXQgb2YgYWx0ZXJuYXRlIHRhYmxlICovCisJdWludDMyX3QJZF9hbHRfbGVuOwkvKiBieXRlIGxlbmd0aCBvZiBhbHRlcm5hdGUgdGFibGUgKi8KKwl1aW50MzJfdAlkX3BoeXNfY3lsOwkvKiAjIG9mIHBoeXNpY2FsIGN5bGluZGVycyBwZXIgZGV2aWNlICovCisJdWludDMyX3QJZF9waHlzX3RyazsJLyogIyBvZiBwaHlzaWNhbCB0cmFja3MgcGVyIGN5bGluZGVyICovCisJdWludDMyX3QJZF9waHlzX3NlYzsJLyogIyBvZiBwaHlzaWNhbCBzZWN0b3JzIHBlciB0cmFjayAqLworCXVpbnQzMl90CWRfcGh5c19ieXRlczsJLyogIyBvZiBwaHlzaWNhbCBieXRlcyBwZXIgc2VjdG9yICovCisJdWludDMyX3QJZF91bmtub3duMjsJLyogPyAqLworCXVpbnQzMl90CWRfdW5rbm93bjM7CS8qID8gKi8KKwl1aW50MzJfdAlkX3BhZFs4XTsJLyogcGFkICovCisKKwlzdHJ1Y3QgdW5peHdhcmVfdnRvYyB7CisJCXVpbnQzMl90CXZfbWFnaWM7CS8qIHRoZSBtYWdpYyBudW1iZXIgKi8KKwkJdWludDMyX3QJdl92ZXJzaW9uOwkvKiB2ZXJzaW9uIG51bWJlciAqLworCQljaGFyCQl2X25hbWVbOF07CS8qIHZvbHVtZSBuYW1lICovCisJCXVpbnQxNl90CXZfbnNsaWNlczsJLyogIyBvZiBwYXJ0aXRpb25zICovCisJCXVpbnQxNl90CXZfdW5rbm93bjE7CS8qID8gKi8KKwkJdWludDMyX3QJdl9yZXNlcnZlZFsxMF07CS8qIHJlc2VydmVkICovCisKKwkJc3RydWN0IHVuaXh3YXJlX3BhcnRpdGlvbgorCQkJdl9zbGljZVtVTklYV0FSRV9NQVhQQVJUSVRJT05TXTsgLyogcGFydGl0aW9uICovCisJfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSB2dG9jOworfTsKKworc3RhdGljIGludCBwcm9iZV91bml4d2FyZV9wdChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IHVuaXh3YXJlX2Rpc2tsYWJlbCAqbDsKKwlzdHJ1Y3QgdW5peHdhcmVfcGFydGl0aW9uICpwOworCWJsa2lkX3BhcnR0YWJsZSB0YWIgPSBOVUxMOworCWJsa2lkX3BhcnRpdGlvbiBwYXJlbnQ7CisJYmxraWRfcGFydGxpc3QgbHM7CisJaW50IGk7CisKKwlsID0gKHN0cnVjdCB1bml4d2FyZV9kaXNrbGFiZWwgKikKKwkJCWJsa2lkX3Byb2JlX2dldF9zZWN0b3IocHIsIFVOSVhXQVJFX1NFQ1RPUik7CisJaWYgKCFsKQorCQlnb3RvIG5vdGhpbmc7CisKKwlpZiAobGUzMl90b19jcHUobC0+dnRvYy52X21hZ2ljKSAhPSBVTklYV0FSRV9WVE9DTUFHSUMpCisJCWdvdG8gbm90aGluZzsKKworCWlmIChibGtpZF9wYXJ0aXRpb25zX25lZWRfdHlwZW9ubHkocHIpKQorCQkvKiBjYWxsZXIgZG9lcyBub3QgYXNrIGZvciBkZXRhaWxzIGFib3V0IHBhcnRpdGlvbnMgKi8KKwkJcmV0dXJuIDA7CisKKwlscyA9IGJsa2lkX3Byb2JlX2dldF9wYXJ0bGlzdChwcik7CisJaWYgKCFscykKKwkJZ290byBlcnI7CisKKwlwYXJlbnQgPSBibGtpZF9wYXJ0bGlzdF9nZXRfcGFyZW50KGxzKTsKKworCXRhYiA9IGJsa2lkX3BhcnRsaXN0X25ld19wYXJ0dGFibGUobHMsICJ1bml4d2FyZSIsIFVOSVhXQVJFX09GRlNFVCk7CisJaWYgKCF0YWIpCisJCWdvdG8gZXJyOworCisJLyogU2tpcCB0aGUgZmlyc3QgcGFydGl0aW9uIHRoYXQgZGVzY3JpYmUgd2hvbGUgZGlzaworCSAqLworCWZvciAoaSA9IDEsIHAgPSAmbC0+dnRvYy52X3NsaWNlWzFdOworCQkJaSA8IFVOSVhXQVJFX01BWFBBUlRJVElPTlM7IGkrKywgcCsrKSB7CisKKwkJdWludDMyX3Qgc3RhcnQsIHNpemU7CisJCXVpbnQxNl90IHRhZywgZmxnOworCisJCXRhZyA9IGxlMTZfdG9fY3B1KHAtPnNfbGFiZWwpOworCQlmbGcgPSBsZTE2X3RvX2NwdShwLT5zX2ZsYWdzKTsKKworCQlpZiAodGFnID09IFVOSVhXQVJFX1RBR19VTlVTRUQgfHwKKwkJICAgIHRhZyA9PSBVTklYV0FSRV9UQUdfRU5USVJFX0RJU0sgfHwKKwkJICAgIGZsZyAhPSBVTklYV0FSRV9GTEFHX1ZBTElEKQorCQkJY29udGludWU7CisKKwkJc3RhcnQgPSBsZTMyX3RvX2NwdShwLT5zdGFydF9zZWN0KTsKKwkJc2l6ZSA9IGxlMzJfdG9fY3B1KHAtPm5yX3NlY3RzKTsKKworCQlpZiAocGFyZW50ICYmICFibGtpZF9pc19uZXN0ZWRfZGltZW5zaW9uKHBhcmVudCwgc3RhcnQsIHNpemUpKSB7CisJCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigKKwkJCQkiV0FSTklORzogdW5peHdhcmUgcGFydGl0aW9uICglZCkgb3ZlcmZsb3cgIgorCQkJCSJkZXRlY3RlZCwgaWdub3JlXG4iLCBpKSk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmICghYmxraWRfcGFydGxpc3RfYWRkX3BhcnRpdGlvbihscywgdGFiLCB0YWcsIHN0YXJ0LCBzaXplKSkKKwkJCWdvdG8gZXJyOworCX0KKworCXJldHVybiAwOworCitub3RoaW5nOgorCXJldHVybiAxOworZXJyOgorCXJldHVybiAtMTsKK30KKworCisvKgorICogVGhlIHVuaXh3YXJlIHBhcnRpdGlvbiB0YWJsZSBpcyB3aXRoaW4gcHJpbWFyeSBET1MgcGFydGl0aW9uLiAgVGhlIFBUIGlzCisgKiBsb2NhdGVkIG9uIDI5IHNlY3RvciwgUFQgbWFnaWMgc3RyaW5nIGlzIGRfbWFnaWMgbWVtYmVyIG9mICdzdHJ1Y3QKKyAqIHVuaXh3YXJlX2Rpc2tsYWJlbCcuCisgKi8KK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gdW5peHdhcmVfcHRfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAidW5peHdhcmUiLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV91bml4d2FyZV9wdCwKKwkubWluc3oJCT0gMTAyNCAqIDE0NDAgKyAxLAkJLyogaWdub3JlIGZsb3BwaWVzICovCisJLm1hZ2ljcwkJPQorCXsKKwkJeworCQkgIC5tYWdpYyA9ICJceDBEXHg2MFx4RTVceENBIiwJLyogbGl0dGxlLWVuZGlhbiBtYWdpYyBzdHJpbmcgKi8KKwkJICAubGVuID0gNCwJCQkvKiBkX21hZ2ljIHNpemUgaW4gYnl0ZXMgKi8KKwkJICAua2JvZmYgPSBVTklYV0FSRV9LQk9GRlNFVCwKKwkJICAuc2JvZmYgPSBVTklYV0FSRV9NQUdJQ09GRlNFVAorCQl9LAorCQl7IE5VTEwgfQorCX0KK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcHJvYmUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcHJvYmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOGRhMTNjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9wcm9iZS5jCkBAIC0wLDAgKzEsMTE2MyBAQAorLyoKKyAqIExvdy1sZXZlbCBsaWJibGtpZCBwcm9iaW5nIEFQSQorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworLyoqCisgKiBTRUNUSU9OOiBsb3dwcm9iZQorICogQHRpdGxlOiBMb3ctbGV2ZWwgcHJvYmluZworICogQHNob3J0X2Rlc2NyaXB0aW9uOiBsb3ctbGV2ZWwgcHJvYmVyIGluaXRpYWxpemF0aW9uCisgKgorICogVGhlIGxvdy1sZXZlbCBwcm9iaW5nIHJvdXRpbmVzIGFsd2F5cyBhbmQgZGlyZWN0bHkgcmVhZCBpbmZvcm1hdGlvbiBmcm9tCisgKiB0aGUgc2VsZWN0ZWQgKHNlZSBibGtpZF9wcm9iZV9zZXRfZGV2aWNlKCkpIGRldmljZS4KKyAqCisgKiBUaGUgcHJvYmluZyByb3V0aW5lcyBhcmUgZ3JvdXBlZCB0b2dldGhlciBpbnRvIHNlcGFyYXRlIGNoYWlucy4gQ3VycmVudGx5LAorICogdGhlIGxpYnJyYXkgcHJvdmlkZXMgc3VwZXJibG9ja3MsIHBhcnRpdGlvbnMgYW5kIHRvcG9sb2d5IGNoYWlucy4KKyAqCisgKiBUaGUgcHJvYmluZyByb3V0aW5lcyBpcyBwb3NzaWJsZSB0byBmaWx0ZXIgKGVuYWJsZS9kaXNhYmxlKSBieSB0eXBlIChlLmcuCisgKiBmc3R5cGUgInZmYXQiIG9yIHBhcnR5cGUgImdwdCIpIG9yIGJ5IHVzYWdlIGZsYWdzIChlLmcuIEJMS0lEX1VTQUdFX1JBSUQpLgorICogVGhlc2UgZmlsdGVycyBhcmUgcGVyLWNoYWluLiBOb3RlIHRoYXQgYWx3YXlzIHdoZW4geW91IHRvdWNoIHRoZSBjaGFpbgorICogZmlsdGVyIHRoZSBjdXJyZW50IHByb2JpbmcgcG9zaXRpb24gaXMgcmVzZXRlZCBhbmQgcHJvYmluZyBzdGFydHMgZnJvbQorICogc2NyYXRjaC4gIEl0IG1lYW5zIHRoYXQgdGhlIGNoYWluIGZpbHRlciBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGR1cmluZworICogcHJvYmluZywgZm9yIGV4YW1wbGUgaW4gbG9vcCB3aGVyZSB5b3UgY2FsbCBibGtpZF9kb19wcm9iZSgpLgorICoKKyAqIEZvciBtb3JlIGRldGFpbHMgc2VlIHRoZSBjaGFpbiBzcGVjaWZpYyBkb2N1bWVudGF0aW9uLgorICoKKyAqIFRoZSBsb3ctbGV2ZWwgQVBJIHByb3ZpZGVzIHR3byB3YXlzIGhvdyBhY2Nlc3MgdG8gcHJvYmluZyByZXN1bHRzLgorICoKKyAqICAgMS4gVGhlIE5BTUU9dmFsdWUgKHRhZykgaW50ZXJmYWNlLiBUaGlzIGludGVyZmFjZSBpcyBvbGRlciBhbmQgcmV0dXJucyBhbGwgZGF0YQorICogICAgICBhcyBzdHJpbmdzLiBUaGlzIGludGVyZmFjZSBpcyBnZW5lcmljIGZvciBhbGwgY2hhaW5zLgorICoKKyAqICAgMi4gVGhlIGJpbmFyeSBpbnRlcmZhY2VzLiBUaGVzZSBpbnRlcmZhY2VzIHJldHVybiBkYXRhIGluIHRoZSBuYXRpdmUgZm9ybWF0cy4KKyAqICAgICAgVGhlIGludGVyZmFjZSBpcyBhbHdheXMgc3BlY2lmaWMgdG8gdGhlIHByb2JpbmcgY2hhaW4uCisgKgorICovCisKKy8qKgorICogU0VDVElPTjogbG93cHJvYmUtdGFncworICogQHRpdGxlOiBMb3ctbGV2ZWwgdGFncworICogQHNob3J0X2Rlc2NyaXB0aW9uOiBnZW5lcmljIE5BTUU9dmFsdWUgaW50ZXJmYWNlLgorICoKKyAqIFRoZSBwcm9iaW5nIHJvdXRpbmVzIGluc2lkZSB0aGUgY2hhaW4gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBieSBkZWZhdWx0IC0tCisgKiBvbmx5IGZldyBwcm9iaW5nIHJvdXRpbmVzIGFyZSBtYXJrZWQgYXMgInRvbGVyYW50Ii4gVGhlICJ0b2xlcmFudCIgcHJvYmluZworICogcm91dGluZXMgYXJlIHVzZWQgZm9yIGZpbGVzeXN0ZW0gd2hpY2ggY2FuIHNoYXJlIHRoZSBzYW1lIGRldmljZSB3aXRoIGFueQorICogb3RoZXIgZmlsZXN5c3RlbS4gVGhlIGJsa2lkX2RvX3NhZmVwcm9iZSgpIGNoZWNrcyBmb3IgdGhlICJ0b2xlcmFudCIgZmxhZy4KKyAqCisgKiBUaGUgU1VQRVJCTE9DS1MgY2hhaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0LiBUaGUgYWxsIG90aGVycyBjaGFpbnMgaXMKKyAqIG5lY2Vzc2FyeSB0byBlbmFibGUgYnkgYmxraWRfcHJvYmVfZW5hYmxlXydDSEFJTk5BTUUnKCkuIFNlZSBjaGFpbnMgc3BlY2lmaWMKKyAqIGRvY3VtZW50YXRpb24uCisgKgorICogVGhlIGJsa2lkX2RvX3Byb2JlKCkgZnVuY3Rpb24gcmV0dXJucyBhIHJlc3VsdCBmcm9tIG9ubHkgb25lIHByb2JpbmcKKyAqIHJvdXRpbmUsIGFuZCB0aGUgbmV4dCBjYWxsIGZyb20gdGhlIG5leHQgcHJvYmluZyByb3V0aW5lLiBJdCBtZWFucyB5b3UgbmVlZAorICogdG8gY2FsbCB0aGUgZnVuY3Rpb24gaW4gbG9vcCwgZm9yIGV4YW1wbGU6CisgKgorICogPGluZm9ybWFsZXhhbXBsZT4KKyAqICAgPHByb2dyYW1saXN0aW5nPgorICoJd2hpbGUoKGJsa2lkX2RvX3Byb2JlKHByKSA9PSAwKQorICoJCS4uLiB1c2UgcmVzdWx0IC4uLgorICogICA8L3Byb2dyYW1saXN0aW5nPgorICogPC9pbmZvcm1hbGV4YW1wbGU+CisgKgorICogVGhlIGJsa2lkX2RvX3NhZmVwcm9iZSgpIGlzIHRoZSBzYW1lIGFzIGJsa2lkX2RvX3Byb2JlKCksIGJ1dCByZXR1cm5zIG9ubHkKKyAqIGZpcnN0IHByb2JpbmcgcmVzdWx0IGZvciBldmVyeSBlbmFibGVkIGNoYWluLiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBmb3IKKyAqIGFtYml2YWxlbnQgcmVzdWx0cyAoZS5nLiBtb3JlICJpbnRvbGVyYW50IiBmaWxlc3lzdGVtcyBzdXBlcmJsb2NrcyBvbiB0aGUKKyAqIGRldmljZSkuCisgKgorICogVGhlIHByb2JpbmcgcmVzdWx0IGlzIHNldCBvZiBOQU1FPXZhbHVlIHBhaXJzICh0aGUgTkFNRSBpcyBhbHdheXMgdW5pcXVlKS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX01LREVWX0gKKyNpbmNsdWRlIDxzeXMvbWtkZXYuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRVJSTk9fSAorI2luY2x1ZGUgPGVycm5vLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKworI2lmZGVmIEhBVkVfTElCVVVJRAorIyBpZmRlZiBIQVZFX1VVSURfVVVJRF9ICisjICBpbmNsdWRlIDx1dWlkL3V1aWQuaD4KKyMgZWxzZQorIyAgaW5jbHVkZSA8dXVpZC5oPgorIyBlbmRpZgorI2VuZGlmCisKKyNpbmNsdWRlICJibGtkZXYuaCIKKyNpbmNsdWRlICJibGtpZFAuaCIKKworLyogY2hhaW5zICovCitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2NoYWluZHJ2IHN1cGVyYmxvY2tzX2RydjsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfY2hhaW5kcnYgdG9wb2xvZ3lfZHJ2OworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9jaGFpbmRydiBwYXJ0aXRpb25zX2RydjsKKworLyoKKyAqIEFsbCBzdXBwb3J0ZWQgY2hhaW5zCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmxraWRfY2hhaW5kcnYgKmNoYWluc19kcnZzW10gPSB7CisJW0JMS0lEX0NIQUlOX1NVQkxLU10gPSAmc3VwZXJibG9ja3NfZHJ2LAorCVtCTEtJRF9DSEFJTl9UT1BMR1ldID0gJnRvcG9sb2d5X2RydiwKKwlbQkxLSURfQ0hBSU5fUEFSVFNdID0gJnBhcnRpdGlvbnNfZHJ2Cit9OworCitzdGF0aWMgdm9pZCBibGtpZF9wcm9iZV9yZXNldF92YWxzKGJsa2lkX3Byb2JlIHByKTsKK3N0YXRpYyB2b2lkIGJsa2lkX3Byb2JlX3Jlc2V0X2J1ZmZlcihibGtpZF9wcm9iZSBwcik7CisKKy8qKgorICogYmxraWRfbmV3X3Byb2JlOgorICoKKyAqIFJldHVybnM6IGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIHByb2JlIHN0cnVjdC4KKyAqLworYmxraWRfcHJvYmUgYmxraWRfbmV3X3Byb2JlKHZvaWQpCit7CisJaW50IGk7CisJYmxraWRfcHJvYmUgcHI7CisKKwlibGtpZF9pbml0X2RlYnVnKDApOworCXByID0gY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgYmxraWRfc3RydWN0X3Byb2JlKSk7CisJaWYgKCFwcikKKwkJcmV0dXJuIE5VTEw7CisKKwkvKiBpbml0aWFsaXplIGNoYWlucyAqLworCWZvciAoaSA9IDA7IGkgPCBCTEtJRF9OQ0hBSU5TOyBpKyspIHsKKwkJcHItPmNoYWluc1tpXS5kcml2ZXIgPSBjaGFpbnNfZHJ2c1tpXTsKKwkJcHItPmNoYWluc1tpXS5mbGFncyA9IGNoYWluc19kcnZzW2ldLT5kZmx0X2ZsYWdzOworCQlwci0+Y2hhaW5zW2ldLmVuYWJsZWQgPSBjaGFpbnNfZHJ2c1tpXS0+ZGZsdF9lbmFibGVkOworCX0KKwlJTklUX0xJU1RfSEVBRCgmcHItPmJ1ZmZlcnMpOworCXJldHVybiBwcjsKK30KKworLyoqCisgKiBibGtpZF9uZXdfcHJvYmVfZnJvbV9maWxlbmFtZToKKyAqIEBmaWxlbmFtZTogZGV2aWNlIG9yIHJlZ3VsYXIgZmlsZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgc2FtZSBhcyBjYWxsIG9wZW4oZmlsZW5hbWUpLCBibGtpZF9uZXdfcHJvYmUoKSBhbmQKKyAqIGJsa2lkX3Byb2JlX3NldF9kZXZpY2UocHIsIGZkLCAwLCAwKS4KKyAqCisgKiBUaGUgQGZpbGVuYW1lIGlzIGNsb3NlZCBieSBibGtpZF9mcmVlX3Byb2JlKCkgb3IgYnkgdGhlCisgKiBibGtpZF9wcm9iZV9zZXRfZGV2aWNlKCkgY2FsbC4KKyAqCisgKiBSZXR1cm5zOiBhIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBwcm9iZSBzdHJ1Y3Qgb3IgTlVMTCBpbiBjYXNlIG9mCisgKiBlcnJvci4KKyAqLworYmxraWRfcHJvYmUgYmxraWRfbmV3X3Byb2JlX2Zyb21fZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUpCit7CisJaW50IGZkID0gLTE7CisJYmxraWRfcHJvYmUgcHIgPSBOVUxMOworCisJaWYgKCFmaWxlbmFtZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlmZCA9IG9wZW4oZmlsZW5hbWUsIE9fUkRPTkxZKTsKKwlpZiAoZmQgPCAwKQorCQlyZXR1cm4gTlVMTDsKKworCXByID0gYmxraWRfbmV3X3Byb2JlKCk7CisJaWYgKCFwcikKKwkJZ290byBlcnI7CisKKwlpZiAoYmxraWRfcHJvYmVfc2V0X2RldmljZShwciwgZmQsIDAsIDApKQorCQlnb3RvIGVycjsKKworCXByLT5mbGFncyB8PSBCTEtJRF9QUklWQVRFX0ZEOworCXJldHVybiBwcjsKK2VycjoKKwlpZiAoZmQgPj0gMCkKKwkJY2xvc2UoZmQpOworCWJsa2lkX2ZyZWVfcHJvYmUocHIpOworCXJldHVybiBOVUxMOworfQorCisvKioKKyAqIGJsa2lkX2ZyZWVfcHJvYmU6CisgKiBAcHI6IHByb2JlCisgKgorICogRGVhbGxvY2F0ZXMgdGhlIHByb2JlIHN0cnVjdCwgYnVmZmVycyBhbmQgYWxsIGFsbG9jYXRlZAorICogZGF0YSB0aGF0IGFyZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBwcm9iaW5nIGNvbnRyb2wgc3RydWN0LgorICovCit2b2lkIGJsa2lkX2ZyZWVfcHJvYmUoYmxraWRfcHJvYmUgcHIpCit7CisJaW50IGk7CisKKwlpZiAoIXByKQorCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgQkxLSURfTkNIQUlOUzsgaSsrKSB7CisJCXN0cnVjdCBibGtpZF9jaGFpbiAqY2ggPSAmcHItPmNoYWluc1tpXTsKKworCQlpZiAoY2gtPmRyaXZlci0+ZnJlZV9kYXRhKQorCQkJY2gtPmRyaXZlci0+ZnJlZV9kYXRhKHByLCBjaC0+ZGF0YSk7CisJCWZyZWUoY2gtPmZsdHIpOworCX0KKworCWlmICgocHItPmZsYWdzICYgQkxLSURfUFJJVkFURV9GRCkgJiYgcHItPmZkID49IDApCisJCWNsb3NlKHByLT5mZCk7CisJYmxraWRfcHJvYmVfcmVzZXRfYnVmZmVyKHByKTsKKwlmcmVlKHByKTsKK30KKworCisvKgorICogUmVtb3ZlcyBjaGFpbiB2YWx1ZXMgZnJvbSBwcm9iaW5nIHJlc3VsdC4KKyAqLwordm9pZCBibGtpZF9wcm9iZV9jaGFpbl9yZXNldF92YWxzKGJsa2lkX3Byb2JlIHByLCBzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobikKK3sKKwlpbnQgbnZhbHMgPSBwci0+bnZhbHM7CisJaW50IGksIHg7CisKKwlmb3IgKHggPSAwLCBpID0gMDsgaSA8IHByLT5udmFsczsgaSsrKSB7CisJCXN0cnVjdCBibGtpZF9wcnZhbCAqdiA9ICZwci0+dmFsc1tpXTsKKworCQlpZiAodi0+Y2hhaW4gIT0gY2huICYmIHggPT0gaSkgeworCQkJeCsrOworCQkJY29udGludWU7CisJCX0KKwkJaWYgKHYtPmNoYWluID09IGNobikgeworCQkJLS1udmFsczsKKwkJCWNvbnRpbnVlOworCQl9CisJCW1lbWNweSgmcHItPnZhbHNbeCsrXSwgdiwgc2l6ZW9mKHN0cnVjdCBibGtpZF9wcnZhbCkpOworCX0KKwlwci0+bnZhbHMgPSBudmFsczsKK30KKworc3RhdGljIHZvaWQgYmxraWRfcHJvYmVfY2hhaW5fcmVzZXRfcG9zaXRpb24oc3RydWN0IGJsa2lkX2NoYWluICpjaG4pCit7CisJaWYgKGNobikKKwkJY2huLT5pZHggPSAtMTsKK30KKworLyoKKyAqIENvcGllcyBjaGFpbiB2YWx1ZXMgZnJvbSBwcm9iaW5nIHJlc3VsdCB0byBAdmFscywgdGhlIG1heCBzaXplIG9mIEB2YWxzIGlzCisgKiBAbnZhbHMgYW5kIHJldHVybnMgcmVhbCBudW1iZXIgb2YgdmFsdWVzLgorICovCitpbnQgYmxraWRfcHJvYmVfY2hhaW5fY29weV92YWxzKGJsa2lkX3Byb2JlIHByLCBzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobiwKKwkJc3RydWN0IGJsa2lkX3BydmFsICp2YWxzLCBpbnQgbnZhbHMpCit7CisJaW50IGksIHg7CisKKwlmb3IgKHggPSAwLCBpID0gMDsgaSA8IHByLT5udmFscyAmJiB4IDwgbnZhbHM7IGkrKykgeworCQlzdHJ1Y3QgYmxraWRfcHJ2YWwgKnYgPSAmcHItPnZhbHNbaV07CisKKwkJaWYgKHYtPmNoYWluICE9IGNobikKKwkJCWNvbnRpbnVlOworCQltZW1jcHkoJnZhbHNbeCsrXSwgdiwgc2l6ZW9mKHN0cnVjdCBibGtpZF9wcnZhbCkpOworCX0KKwlyZXR1cm4geDsKK30KKworLyoKKyAqIEFwcGVuZHMgdmFsdWVzIGZyb20gQHZhbHMgdG8gdGhlIHByb2JpbmcgcmVzdWx0CisgKi8KK3ZvaWQgYmxraWRfcHJvYmVfYXBwZW5kX3ZhbHMoYmxraWRfcHJvYmUgcHIsIHN0cnVjdCBibGtpZF9wcnZhbCAqdmFscywgaW50IG52YWxzKQoreworCWludCBpID0gMDsKKworCXdoaWxlIChpIDwgbnZhbHMgJiYgcHItPm52YWxzIDwgQkxLSURfTlZBTFMpIHsKKwkJbWVtY3B5KCZwci0+dmFsc1twci0+bnZhbHMrK10sICZ2YWxzW2krK10sCisJCQkJc2l6ZW9mKHN0cnVjdCBibGtpZF9wcnZhbCkpOworCX0KK30KKworc3RhdGljIHZvaWQgYmxraWRfcHJvYmVfcmVzZXRfdmFscyhibGtpZF9wcm9iZSBwcikKK3sKKwltZW1zZXQocHItPnZhbHMsIDAsIHNpemVvZihwci0+dmFscykpOworCXByLT5udmFscyA9IDA7Cit9CisKK3N0cnVjdCBibGtpZF9jaGFpbiAqYmxraWRfcHJvYmVfZ2V0X2NoYWluKGJsa2lkX3Byb2JlIHByKQoreworCXJldHVybiBwci0+Y3VyX2NoYWluOworfQorCit2b2lkICpibGtpZF9wcm9iZV9nZXRfYmluYXJ5X2RhdGEoYmxraWRfcHJvYmUgcHIsIHN0cnVjdCBibGtpZF9jaGFpbiAqY2huKQoreworCWludCByYzsKKworCWlmICghcHIgfHwgIWNobikKKwkJcmV0dXJuIE5VTEw7CisKKwlwci0+Y3VyX2NoYWluID0gY2huOworCWNobi0+YmluYXJ5ID0gVFJVRTsKKwlibGtpZF9wcm9iZV9jaGFpbl9yZXNldF9wb3NpdGlvbihjaG4pOworCisJcmMgPSBjaG4tPmRyaXZlci0+cHJvYmUocHIsIGNobik7CisKKwljaG4tPmJpbmFyeSA9IEZBTFNFOworCXByLT5jdXJfY2hhaW4gPSBOVUxMOworCWJsa2lkX3Byb2JlX2NoYWluX3Jlc2V0X3Bvc2l0aW9uKGNobik7CisKKwlpZiAocmMgIT0gMCkKKwkJcmV0dXJuIE5VTEw7CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsCisJCXByaW50ZigicmV0dXJuaW5nICVzIGJpbmFyeSBkYXRhXG4iLCBjaG4tPmRyaXZlci0+bmFtZSkpOworCXJldHVybiBjaG4tPmRhdGE7Cit9CisKKworLyoqCisgKiBibGtpZF9yZXNldF9wcm9iZToKKyAqIEBwcjogcHJvYmUKKyAqCisgKiBaZXJvaXplIHByb2JpbmcgcmVzdWx0cyBhbmQgcmVzZXRzIHRoZSBjdXJyZW50IHByb2JpbmcgKHRoaXMgaGFzIGltcGFjdCB0bworICogYmxraWRfZG9fcHJvYmUoKSBvbmx5KS4gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCB0b3VjaCBwcm9iaW5nIGZpbHRlcnMgYW5kCisgKiBrZWVwcyBhc3NpZ25lZCBkZXZpY2UuCisgKi8KK3ZvaWQgYmxraWRfcmVzZXRfcHJvYmUoYmxraWRfcHJvYmUgcHIpCit7CisJaW50IGk7CisKKwlpZiAoIXByKQorCQlyZXR1cm47CisKKwlibGtpZF9wcm9iZV9yZXNldF9idWZmZXIocHIpOworCWJsa2lkX3Byb2JlX3Jlc2V0X3ZhbHMocHIpOworCisJcHItPmN1cl9jaGFpbiA9IE5VTEw7CisKKwlmb3IgKGkgPSAwOyBpIDwgQkxLSURfTkNIQUlOUzsgaSsrKQorCQlibGtpZF9wcm9iZV9jaGFpbl9yZXNldF9wb3NpdGlvbigmcHItPmNoYWluc1tpXSk7Cit9CisKKy8qKioKK3N0YXRpYyBpbnQgYmxraWRfcHJvYmVfZHVtcF9maWx0ZXIoYmxraWRfcHJvYmUgcHIsIGludCBjaGFpbikKK3sKKwlzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobjsKKwlpbnQgaTsKKworCWlmICghcHIgfHwgY2hhaW4gPCAwIHx8IGNoYWluID49IEJMS0lEX05DSEFJTlMpCisJCXJldHVybiAtMTsKKworCWNobiA9ICZwci0+Y2hhaW5zW2NoYWluXTsKKworCWlmICghY2huLT5mbHRyKQorCQlyZXR1cm4gLTE7CisKKwlmb3IgKGkgPSAwOyBpIDwgY2huLT5kcml2ZXItPm5pZGluZm9zOyBpKyspIHsKKwkJY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyAqaWQgPSBjaG4tPmRyaXZlci0+aWRpbmZvc1tpXTsKKworCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigiJWQ6ICVzOiAlc1xuIiwKKwkJCWksCisJCQlpZC0+bmFtZSwKKwkJCWJsa2lkX2JtcF9nZXRfaXRlbShjaG4tPmZsdHIsIGkpCisJCQkJPyAiZGlzYWJsZWQiIDogImVuYWJsZWQgPC0tIikpOworCX0KKwlyZXR1cm4gMDsKK30KKyoqKi8KKworLyoKKyAqIFJldHVybnMgcHJvcGVybHkgaW5pdGlhbGl6ZWQgY2hhaW4gZmlsdGVyCisgKi8KK3Vuc2lnbmVkIGxvbmcgKmJsa2lkX3Byb2JlX2dldF9maWx0ZXIoYmxraWRfcHJvYmUgcHIsIGludCBjaGFpbiwgaW50IGNyZWF0ZSkKK3sKKwlzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobjsKKworCWlmICghcHIgfHwgY2hhaW4gPCAwIHx8IGNoYWluID49IEJMS0lEX05DSEFJTlMpCisJCXJldHVybiBOVUxMOworCisJY2huID0gJnByLT5jaGFpbnNbY2hhaW5dOworCisJLyogYWx3YXlzIHdoZW4geW91IHRvdWNoIHRoZSBjaGFpbiBmaWx0ZXIgYWxsIGluZGV4ZXMgYXJlIHJlc2V0ZWQgYW5kCisJICogcHJvYmluZyBzdGFydHMgZnJvbSBzY3JhdGNoCisJICovCisJYmxraWRfcHJvYmVfY2hhaW5fcmVzZXRfcG9zaXRpb24oY2huKTsKKwlwci0+Y3VyX2NoYWluID0gTlVMTDsKKworCWlmICghY2huLT5kcml2ZXItPmhhc19mbHRyIHx8ICghY2huLT5mbHRyICYmICFjcmVhdGUpKQorCQlyZXR1cm4gTlVMTDsKKworCWlmICghY2huLT5mbHRyKQorCQljaG4tPmZsdHIgPSBjYWxsb2MoMSwgYmxraWRfYm1wX25ieXRlcyhjaG4tPmRyaXZlci0+bmlkaW5mb3MpKTsKKwllbHNlCisJCW1lbXNldChjaG4tPmZsdHIsIDAsIGJsa2lkX2JtcF9uYnl0ZXMoY2huLT5kcml2ZXItPm5pZGluZm9zKSk7CisKKwkvKiBibGtpZF9wcm9iZV9kdW1wX2ZpbHRlcihwciwgY2hhaW4pOyAqLworCXJldHVybiBjaG4tPmZsdHI7Cit9CisKKy8qCisgKiBHZW5lcmljIHByaXZhdGUgZnVuY3Rpb25zIGZvciBmaWx0ZXIgc2V0dGluZworICovCitpbnQgX19ibGtpZF9wcm9iZV9pbnZlcnRfZmlsdGVyKGJsa2lkX3Byb2JlIHByLCBpbnQgY2hhaW4pCit7CisJaW50IGk7CisJc3RydWN0IGJsa2lkX2NoYWluICpjaG47CisJdW5zaWduZWQgbG9uZyAqZmx0cjsKKworCWZsdHIgPSBibGtpZF9wcm9iZV9nZXRfZmlsdGVyKHByLCBjaGFpbiwgRkFMU0UpOworCWlmICghZmx0cikKKwkJcmV0dXJuIC0xOworCisJY2huID0gJnByLT5jaGFpbnNbY2hhaW5dOworCisJZm9yIChpID0gMDsgaSA8IGJsa2lkX2JtcF9ud29yZHMoY2huLT5kcml2ZXItPm5pZGluZm9zKTsgaSsrKQorCQlmbHRyW2ldID0gfmZsdHJbaV07CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigicHJvYmluZyBmaWx0ZXIgaW52ZXJ0ZWRcbiIpKTsKKwkvKiBibGtpZF9wcm9iZV9kdW1wX2ZpbHRlcihwciwgY2hhaW4pOyAqLworCXJldHVybiAwOworfQorCitpbnQgX19ibGtpZF9wcm9iZV9yZXNldF9maWx0ZXIoYmxraWRfcHJvYmUgcHIsIGludCBjaGFpbikKK3sKKwlyZXR1cm4gYmxraWRfcHJvYmVfZ2V0X2ZpbHRlcihwciwgY2hhaW4sIEZBTFNFKSA/IDAgOiAtMTsKK30KKworaW50IF9fYmxraWRfcHJvYmVfZmlsdGVyX3R5cGVzKGJsa2lkX3Byb2JlIHByLCBpbnQgY2hhaW4sIGludCBmbGFnLCBjaGFyICpuYW1lc1tdKQoreworCXVuc2lnbmVkIGxvbmcgKmZsdHI7CisJc3RydWN0IGJsa2lkX2NoYWluICpjaG47CisJaW50IGk7CisKKwlmbHRyID0gYmxraWRfcHJvYmVfZ2V0X2ZpbHRlcihwciwgY2hhaW4sIFRSVUUpOworCWlmICghZmx0cikKKwkJcmV0dXJuIC0xOworCisJY2huID0gJnByLT5jaGFpbnNbY2hhaW5dOworCisJZm9yIChpID0gMDsgaSA8IGNobi0+ZHJpdmVyLT5uaWRpbmZvczsgaSsrKSB7CisJCWludCBoYXMgPSAwOworCQljb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvICppZCA9IGNobi0+ZHJpdmVyLT5pZGluZm9zW2ldOworCQljaGFyICoqbjsKKworCQlmb3IgKG4gPSBuYW1lczsgKm47IG4rKykgeworCQkJaWYgKCFzdHJjbXAoaWQtPm5hbWUsICpuKSkgeworCQkJCWhhcyA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKGZsYWcgJiBCTEtJRF9GTFRSX09OTFlJTikgeworCQkgICAgICAgaWYgKCFoYXMpCisJCQkJYmxraWRfYm1wX3NldF9pdGVtKGZsdHIsIGkpOworCQl9IGVsc2UgaWYgKGZsYWcgJiBCTEtJRF9GTFRSX05PVElOKSB7CisJCQlpZiAoaGFzKQorCQkJCWJsa2lkX2JtcF9zZXRfaXRlbShmbHRyLCBpKTsKKwkJfQorCX0KKworCURCRyhERUJVR19MT1dQUk9CRSwKKwkJcHJpbnRmKCIlczogYSBuZXcgcHJvYmluZyB0eXBlLWZpbHRlciBpbml0aWFsaXplZFxuIiwKKwkJY2huLT5kcml2ZXItPm5hbWUpKTsKKwkvKiBibGtpZF9wcm9iZV9kdW1wX2ZpbHRlcihwciwgY2hhaW4pOyAqLworCXJldHVybiAwOworfQorCit1bnNpZ25lZCBjaGFyICpibGtpZF9wcm9iZV9nZXRfYnVmZmVyKGJsa2lkX3Byb2JlIHByLAorCQkJCWJsa2lkX2xvZmZfdCBvZmYsIGJsa2lkX2xvZmZfdCBsZW4pCit7CisJc3RydWN0IGxpc3RfaGVhZCAqcDsKKwlzdHJ1Y3QgYmxraWRfYnVmaW5mbyAqYmYgPSBOVUxMOworCisJaWYgKHByLT5zaXplIDw9IDApCisJCXJldHVybiBOVUxMOworCisJbGlzdF9mb3JfZWFjaChwLCAmcHItPmJ1ZmZlcnMpIHsKKwkJc3RydWN0IGJsa2lkX2J1ZmluZm8gKnggPQorCQkJCWxpc3RfZW50cnkocCwgc3RydWN0IGJsa2lkX2J1ZmluZm8sIGJ1ZnMpOworCisJCWlmICh4LT5vZmYgPD0gb2ZmICYmIG9mZiArIGxlbiA8PSB4LT5vZmYgKyB4LT5sZW4pIHsKKwkJCURCRyhERUJVR19MT1dQUk9CRSwKKwkJCQlwcmludGYoIlx0cmV1c2UgYnVmZmVyOiBvZmY9JWpkIGxlbj0lamRcbiIsCisJCQkJCQkJeC0+b2ZmLCB4LT5sZW4pKTsKKwkJCWJmID0geDsKKwkJCWJyZWFrOworCQl9CisJfQorCWlmICghYmYpIHsKKwkJc3NpemVfdCByZXQ7CisKKwkJaWYgKGJsa2lkX2xsc2Vlayhwci0+ZmQsIHByLT5vZmYgKyBvZmYsIFNFRUtfU0VUKSA8IDApCisJCQlyZXR1cm4gTlVMTDsKKworCQkvKiBhbGxvY2F0ZSBpbmZvIGFuZCBzcGFjZSBmb3IgZGF0YSBieSB3aHkgY2FsbCAqLworCQliZiA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IGJsa2lkX2J1ZmluZm8pICsgbGVuKTsKKwkJaWYgKCFiZikKKwkJCXJldHVybiBOVUxMOworCisJCWJmLT5kYXRhID0gKCh1bnNpZ25lZCBjaGFyICopIGJmKSArIHNpemVvZihzdHJ1Y3QgYmxraWRfYnVmaW5mbyk7CisJCWJmLT5sZW4gPSBsZW47CisJCWJmLT5vZmYgPSBvZmY7CisJCUlOSVRfTElTVF9IRUFEKCZiZi0+YnVmcyk7CisKKwkJREJHKERFQlVHX0xPV1BST0JFLAorCQkJcHJpbnRmKCJcdGJ1ZmZlciByZWFkOiBvZmY9JWpkIGxlbj0lamRcbiIsIG9mZiwgbGVuKSk7CisKKwkJcmV0ID0gcmVhZChwci0+ZmQsIGJmLT5kYXRhLCBsZW4pOworCQlpZiAocmV0ICE9IChzc2l6ZV90KSBsZW4pIHsKKwkJCWZyZWUoYmYpOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKwkJbGlzdF9hZGRfdGFpbCgmYmYtPmJ1ZnMsICZwci0+YnVmZmVycyk7CisJfQorCisJcmV0dXJuIG9mZiA/IGJmLT5kYXRhICsgKG9mZiAtIGJmLT5vZmYpIDogYmYtPmRhdGE7Cit9CisKKworc3RhdGljIHZvaWQgYmxraWRfcHJvYmVfcmVzZXRfYnVmZmVyKGJsa2lkX3Byb2JlIHByKQoreworCXNzaXplX3QJcmVhZF9jdCA9IDAsIGxlbl9jdCA9IDA7CisKKwlpZiAoIXByIHx8IGxpc3RfZW1wdHkoJnByLT5idWZmZXJzKSkKKwkJcmV0dXJuOworCisJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoInJlc2V0aW5nIHByb2JpbmcgYnVmZmVyc1xuIikpOworCisJd2hpbGUgKCFsaXN0X2VtcHR5KCZwci0+YnVmZmVycykpIHsKKwkJc3RydWN0IGJsa2lkX2J1ZmluZm8gKmJmID0gbGlzdF9lbnRyeShwci0+YnVmZmVycy5uZXh0LAorCQkJCQkJc3RydWN0IGJsa2lkX2J1ZmluZm8sIGJ1ZnMpOworCisJCXJlYWRfY3QrKzsKKwkJbGVuX2N0ICs9IGJmLT5sZW47CisJCWxpc3RfZGVsKCZiZi0+YnVmcyk7CisJCWZyZWUoYmYpOworCX0KKworCURCRyhERUJVR19MT1dQUk9CRSwKKwkJcHJpbnRmKCJidWZmZXJzIHN1bW1hcnk6ICVqZCBieXRlcyBieSAlamQgcmVhZCgpIGNhbGwocylcbiIsCisJCQlsZW5fY3QsIHJlYWRfY3QpKTsKKworCUlOSVRfTElTVF9IRUFEKCZwci0+YnVmZmVycyk7Cit9CisKKy8qCisgKiBTbWFsbCBkZXZpY2VzIG5lZWQgYSBzcGVjaWFsIGNhcmUuCisgKi8KK2ludCBibGtpZF9wcm9iZV9pc190aW55KGJsa2lkX3Byb2JlIHByKQoreworCXJldHVybiBwciAmJiAocHItPmZsYWdzICYgQkxLSURfVElOWV9ERVYpOworfQorCisvKioKKyAqIGJsa2lkX3Byb2JlX3NldF9kZXZpY2U6CisgKiBAcHI6IHByb2JlCisgKiBAZmQ6IGRldmljZSBmaWxlIGRlc2NyaXB0b3IKKyAqIEBvZmY6IGJlZ2luIG9mIHByb2JpbmcgYXJlYQorICogQHNpemU6IHNpemUgb2YgcHJvYmluZyBhcmVhICh6ZXJvIG1lYW5zIHdob2xlIGRldmljZS9maWxlKQorICoKKyAqIEFzc2lnbnMgdGhlIGRldmljZSB0byBwcm9iZSBjb250cm9sIHN0cnVjdCwgcmVzZXRzIGludGVybmFsIGJ1ZmZlcnMgYW5kCisgKiByZXNldHMgdGhlIGN1cnJlbnQgcHJvYmluZy4KKyAqCisgKiBSZXR1cm5zOiAtMSBpbiBjYXNlIG9mIGZhaWx1cmUsIG9yIDAgb24gc3VjY2Vzcy4KKyAqLworaW50IGJsa2lkX3Byb2JlX3NldF9kZXZpY2UoYmxraWRfcHJvYmUgcHIsIGludCBmZCwKKwkJYmxraWRfbG9mZl90IG9mZiwgYmxraWRfbG9mZl90IHNpemUpCit7CisJaWYgKCFwcikKKwkJcmV0dXJuIC0xOworCisJYmxraWRfcmVzZXRfcHJvYmUocHIpOworCisJaWYgKChwci0+ZmxhZ3MgJiBCTEtJRF9QUklWQVRFX0ZEKSAmJiBwci0+ZmQgPj0gMCkKKwkJY2xvc2UocHItPmZkKTsKKworCXByLT5mbGFncyAmPSB+QkxLSURfUFJJVkFURV9GRDsKKwlwci0+ZmxhZ3MgJj0gfkJMS0lEX1RJTllfREVWOworCXByLT5mZCA9IGZkOworCXByLT5vZmYgPSBvZmY7CisJcHItPnNpemUgPSAwOworCXByLT5kZXZubyA9IDA7CisJcHItPm1vZGUgPSAwOworCXByLT5ibGtzc3ogPSAwOworCisjaWYgZGVmaW5lZChQT1NJWF9GQURWX1JBTkRPTSkgJiYgZGVmaW5lZChIQVZFX1BPU0lYX0ZBRFZJU0UpCisJLyogRGlzYWJsZSByZWFkLWFoZWFkICovCisJcG9zaXhfZmFkdmlzZShmZCwgMCwgMCwgUE9TSVhfRkFEVl9SQU5ET00pOworI2VuZGlmCisJaWYgKHNpemUpCisJCXByLT5zaXplID0gc2l6ZTsKKwllbHNlIHsKKwkJc3RydWN0IHN0YXQgc2I7CisKKwkJaWYgKGZzdGF0KGZkLCAmc2IpKQorCQkJZ290byBlcnI7CisKKwkJcHItPm1vZGUgPSBzYi5zdF9tb2RlOworCisJCWlmIChTX0lTQkxLKHNiLnN0X21vZGUpKQorCQkJYmxrZGV2X2dldF9zaXplKGZkLCAodW5zaWduZWQgbG9uZyBsb25nICopICZwci0+c2l6ZSk7CisJCWVsc2UgaWYgKFNfSVNDSFIoc2Iuc3RfbW9kZSkpCisJCQlwci0+c2l6ZSA9IDE7CQkvKiBVQkkgZGV2aWNlcyBhcmUgY2hhci4uLiAqLworCQllbHNlIGlmIChTX0lTUkVHKHNiLnN0X21vZGUpKQorCQkJcHItPnNpemUgPSBzYi5zdF9zaXplOwkvKiByZWd1bGFyIGZpbGUgKi8KKworCQlpZiAoU19JU0JMSyhzYi5zdF9tb2RlKSB8fCBTX0lTQ0hSKHNiLnN0X21vZGUpKQorCQkJcHItPmRldm5vID0gc2Iuc3RfcmRldjsKKworCQlpZiAocHItPm9mZiA+IHByLT5zaXplKQorCQkJZ290byBlcnI7CisKKwkJLyogVGhlIHByb2JpbmcgYXJlYSBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gd2hvbGUgZGV2aWNlLCBwci0+b2ZmCisJCSAqIGlzIG9mZnNldCB3aXRoaW4gdGhlIGRldmljZSAqLworCQlwci0+c2l6ZSAtPSBwci0+b2ZmOworCX0KKworCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJyZWFkeSBmb3IgbG93LXByb2JpbmcsIG9mZnNldD0lamQsIHNpemU9JWpkXG4iLAorCQkJCXByLT5vZmYsIHByLT5zaXplKSk7CisKKwlpZiAocHItPnNpemUgPD0gMTQ0MCAqIDEwMjQgJiYgIVNfSVNDSFIocHItPm1vZGUpKQorCQlwci0+ZmxhZ3MgfD0gQkxLSURfVElOWV9ERVY7CisKKwlyZXR1cm4gMDsKK2VycjoKKwlEQkcoREVCVUdfTE9XUFJPQkUsCisJCXByaW50ZigiZmFpbGVkIHRvIHByZXBhcmUgYSBkZXZpY2UgZm9yIGxvdy1wcm9iaW5nXG4iKSk7CisJcmV0dXJuIC0xOworCit9CisKK2ludCBibGtpZF9wcm9iZV9nZXRfZGltZW5zaW9uKGJsa2lkX3Byb2JlIHByLAorCQlibGtpZF9sb2ZmX3QgKm9mZiwgYmxraWRfbG9mZl90ICpzaXplKQoreworCWlmICghcHIpCisJCXJldHVybiAtMTsKKworCSpvZmYgPSBwci0+b2ZmOworCSpzaXplID0gcHItPnNpemU7CisJcmV0dXJuIDA7Cit9CisKK2ludCBibGtpZF9wcm9iZV9zZXRfZGltZW5zaW9uKGJsa2lkX3Byb2JlIHByLAorCQlibGtpZF9sb2ZmX3Qgb2ZmLCBibGtpZF9sb2ZmX3Qgc2l6ZSkKK3sKKwlpZiAoIXByKQorCQlyZXR1cm4gLTE7CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigKKwkJImNoYW5naW5nIHByb2JpbmcgYXJlYTogc2l6ZT0lbGx1LCBvZmY9JWxsdSAiCisJCSItdG8tPiBzaXplPSVsbHUsIG9mZj0lbGx1XG4iLAorCQkodW5zaWduZWQgbG9uZyBsb25nKSBwci0+c2l6ZSwKKwkJKHVuc2lnbmVkIGxvbmcgbG9uZykgcHItPm9mZiwKKwkJKHVuc2lnbmVkIGxvbmcgbG9uZykgc2l6ZSwKKwkJKHVuc2lnbmVkIGxvbmcgbG9uZykgb2ZmKSk7CisKKwlwci0+b2ZmID0gb2ZmOworCXByLT5zaXplID0gc2l6ZTsKKwlwci0+ZmxhZ3MgJj0gfkJMS0lEX1RJTllfREVWOworCisJaWYgKHByLT5zaXplIDw9IDE0NDAgKiAxMDI0ICYmICFTX0lTQ0hSKHByLT5tb2RlKSkKKwkJcHItPmZsYWdzIHw9IEJMS0lEX1RJTllfREVWOworCisJYmxraWRfcHJvYmVfcmVzZXRfYnVmZmVyKHByKTsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIGJsa2lkX2RvX3Byb2JlOgorICogQHByOiBwcm9iZXIKKyAqCisgKiBDYWxscyBwcm9iaW5nIGZ1bmN0aW9ucyBpbiBhbGwgZW5hYmxlZCBjaGFpbnMuIFRoZSBzdXBlcmJsb2NrcyBjaGFpbiBpcworICogZW5hYmxlZCBieSBkZWZhdWx0LiBUaGUgYmxraWRfZG9fcHJvYmUoKSBzdG9yZXMgcmVzdWx0IGZyb20gb25seSBvbmUKKyAqIHByb2JpbmcgZnVuY3Rpb24uIEl0J3MgbmVjZXNzYXJ5IHRvIGNhbGwgdGhpcyByb3V0aW5lIGluIGEgbG9vcCB0byBnZXQKKyAqIHJlc3VsdHMgZnJvbSBhbGwgcHJvYmluZyBmdW5jdGlvbnMgaW4gYWxsIGNoYWlucy4gVGhlIHByb2JpbmcgaXMgcmVzZXRlZAorICogYnkgYmxraWRfcmVzZXRfcHJvYmUoKSBvciBieSBmaWx0ZXIgZnVuY3Rpb25zLgorICoKKyAqIFRoaXMgaXMgc3RyaW5nLWJhc2VkIE5BTUU9dmFsdWUgaW50ZXJmYWNlIG9ubHkuCisgKgorICogPGV4YW1wbGU+CisgKiAgIDx0aXRsZT5iYXNpYyBjYXNlIC0gdXNlIHRoZSBmaXJzdCByZXN1bHQgb25seTwvdGl0bGU+CisgKiAgIDxwcm9ncmFtbGlzdGluZz4KKyAqCisgKglpZiAoYmxraWRfZG9fcHJvYmUocHIpID09IDApIHsKKyAqCQlpbnQgbnZhbHMgPSBibGtpZF9wcm9iZV9udW1vZl92YWx1ZXMocHIpOworICoJCWZvciAobiA9IDA7IG4gPCBudmFsczsgbisrKSB7CisgKgkJCWlmIChibGtpZF9wcm9iZV9nZXRfdmFsdWUocHIsIG4sICZuYW1lLCAmZGF0YSwgJmxlbikgPT0gMCkKKyAqCQkJCXByaW50ZigiJXMgPSAlc1xuIiwgbmFtZSwgZGF0YSk7CisgKgkJfQorICoJfQorICogIDwvcHJvZ3JhbWxpc3Rpbmc+CisgKiA8L2V4YW1wbGU+CisgKgorICogPGV4YW1wbGU+CisgKiAgIDx0aXRsZT5hZHZhbmNlZCBjYXNlIC0gcHJvYmUgZm9yIGFsbCBzaWduYXR1cmVzPC90aXRsZT4KKyAqICAgPHByb2dyYW1saXN0aW5nPgorICoKKyAqCXdoaWxlIChibGtpZF9kb19wcm9iZShwcikgPT0gMCkgeworICoJCWludCBudmFscyA9IGJsa2lkX3Byb2JlX251bW9mX3ZhbHVlcyhwcik7CisgKgkJLi4uCisgKgl9CisgKiAgPC9wcm9ncmFtbGlzdGluZz4KKyAqIDwvZXhhbXBsZT4KKyAqCisgKiBTZWUgYWxzbyBibGtpZF9yZXNldF9wcm9iZSgpLgorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgMSB3aGVuIHByb2JpbmcgaXMgZG9uZSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX2RvX3Byb2JlKGJsa2lkX3Byb2JlIHByKQoreworCWludCByYyA9IDE7CisKKwlpZiAoIXByKQorCQlyZXR1cm4gLTE7CisKKwlkbyB7CisJCXN0cnVjdCBibGtpZF9jaGFpbiAqY2huID0gcHItPmN1cl9jaGFpbjsKKworCQlpZiAoIWNobikKKwkJCWNobiA9IHByLT5jdXJfY2hhaW4gPSAmcHItPmNoYWluc1swXTsKKworCQkvKiB3ZSBnbyB0byB0aGUgbmV4dCBjaGFpbiBvbmx5IHdoZW4gdGhlIHByZXZpb3VzIHByb2JpbmcKKwkJICogcmVzdWx0IHdhcyBub3RoaW5nIChyYyA9PSAxKSBhbmQgd2hlbiB0aGUgY3VycmVudCBjaGFpbiBpcworCQkgKiBkaXNhYmxlZCBvciB3ZSBhcmUgYXQgZW5kIG9mIHRoZSBjdXJyZW50IGNoYWluIChjaGFpbi0+aWR4ICsKKwkJICogMSA9PSBzaXplb2YgY2hhaW4pIG9yIHRoZSBjdXJyZW50IGNoYWluIGJhaWxlZCBvdXQgcmlnaHQgYXQKKwkJICogdGhlIHN0YXJ0IChjaGFpbi0+aWR4ID09IC0xKQorCQkgKi8KKwkJZWxzZSBpZiAocmMgPT0gMSAmJiAoY2huLT5lbmFibGVkID09IEZBTFNFIHx8CisJCQkJICAgICBjaG4tPmlkeCArIDEgPT0gY2huLT5kcml2ZXItPm5pZGluZm9zIHx8CisJCQkJICAgICBjaG4tPmlkeCA9PSAtMSkpIHsKKworCQkJaW50IGlkeCA9IGNobi0+ZHJpdmVyLT5pZCArIDE7CisKKwkJCWlmIChpZHggPCBCTEtJRF9OQ0hBSU5TKQorCQkJCWNobiA9IHByLT5jdXJfY2hhaW4gPSAmcHItPmNoYWluc1tpZHhdOworCQkJZWxzZQorCQkJCXJldHVybiAxOwkvKiBhbGwgY2hhaW5zIGFscmVhZHkgcHJvYmVkICovCisJCX0KKworCQljaG4tPmJpbmFyeSA9IEZBTFNFOwkJLyogZm9yIHN1cmUuLi4gKi8KKworCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigiY2hhaW4gcHJvYmUgJXMgJXMgKGlkeD0lZClcbiIsCisJCQkJY2huLT5kcml2ZXItPm5hbWUsCisJCQkJY2huLT5lbmFibGVkPyAiRU5BQkxFRCIgOiAiRElTQUJMRUQiLAorCQkJCWNobi0+aWR4KSk7CisKKwkJaWYgKCFjaG4tPmVuYWJsZWQpCisJCQljb250aW51ZTsKKworCQkvKiByYzogLTEgPSBlcnJvciwgMCA9IHN1Y2Nlc3MsIDEgPSBubyByZXN1bHQgKi8KKwkJcmMgPSBjaG4tPmRyaXZlci0+cHJvYmUocHIsIGNobik7CisKKwl9IHdoaWxlIChyYyA9PSAxKTsKKworCXJldHVybiByYzsKK30KKworLyoqCisgKiBibGtpZF9kb19zYWZlcHJvYmU6CisgKiBAcHI6IHByb2JlcgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZ2F0aGVycyBwcm9iaW5nIHJlc3VsdHMgZnJvbSBhbGwgZW5hYmxlZCBjaGFpbnMgYW5kIGNoZWNrcworICogZm9yIGFtYml2YWxlbnQgcmVzdWx0cyAoZS5nLiBtb3JlIGZpbGVzeXN0ZW1zIG9uIHRoZSBkZXZpY2UpLgorICoKKyAqIFRoaXMgaXMgc3RyaW5nLWJhc2VkIE5BTUU9dmFsdWUgaW50ZXJmYWNlIG9ubHkuCisgKgorICogTm90ZSBhYm91dCBzdWJlcmJsb2NrcyBjaGFpbiAtLSB0aGUgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgZm9yIGZpbGVzeXN0ZW1zCisgKiB3aGVuIGEgUkFJRCBzaWduYXR1cmUgaXMgZGV0ZWN0ZWQuICBUaGUgZnVuY3Rpb24gYWxzbyBkb2VzIG5vdCBjaGVjayBmb3IKKyAqIGNvbGxpc2lvbiBiZXR3ZWVuIFJBSURzLiBUaGUgZmlyc3QgZGV0ZWN0ZWQgUkFJRCBpcyByZXR1cm5lZC4KKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIDEgaWYgbm90aGluZyBpcyBkZXRlY3RlZCwgLTIgaWYgYW1iaXZhbGVuIHJlc3VsdCBpcworICogZGV0ZWN0ZWQgYW5kIC0xIG9uIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludCBibGtpZF9kb19zYWZlcHJvYmUoYmxraWRfcHJvYmUgcHIpCit7CisJaW50IGksIGNvdW50ID0gMCwgcmMgPSAwOworCisJaWYgKCFwcikKKwkJcmV0dXJuIC0xOworCisJZm9yIChpID0gMDsgaSA8IEJMS0lEX05DSEFJTlM7IGkrKykgeworCQlzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobjsKKworCQljaG4gPSBwci0+Y3VyX2NoYWluID0gJnByLT5jaGFpbnNbaV07CisJCWNobi0+YmluYXJ5ID0gRkFMU0U7CQkvKiBmb3Igc3VyZS4uLiAqLworCisJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJjaGFpbiBzYWZlcHJvYmUgJXMgJXNcbiIsCisJCQkJY2huLT5kcml2ZXItPm5hbWUsCisJCQkJY2huLT5lbmFibGVkPyAiRU5BQkxFRCIgOiAiRElTQUJMRUQiKSk7CisKKwkJaWYgKCFjaG4tPmVuYWJsZWQpCisJCQljb250aW51ZTsKKworCQlibGtpZF9wcm9iZV9jaGFpbl9yZXNldF9wb3NpdGlvbihjaG4pOworCisJCXJjID0gY2huLT5kcml2ZXItPnNhZmVwcm9iZShwciwgY2huKTsKKworCQlibGtpZF9wcm9iZV9jaGFpbl9yZXNldF9wb3NpdGlvbihjaG4pOworCisJCS8qIHJjOiAtMiBhbWJpdmFsZW50LCAtMSA9IGVycm9yLCAwID0gc3VjY2VzcywgMSA9IG5vIHJlc3VsdCAqLworCQlpZiAocmMgPCAwKQorCQkJZ290byBkb25lOwkvKiBlcnJvciAqLworCQlpZiAocmMgPT0gMCkKKwkJCWNvdW50Kys7CS8qIHN1Y2Nlc3MgKi8KKwl9CisKK2RvbmU6CisJcHItPmN1cl9jaGFpbiA9IE5VTEw7CisJaWYgKHJjIDwgMCkKKwkJcmV0dXJuIHJjOworCXJldHVybiBjb3VudCA/IDAgOiAxOworfQorCisvKioKKyAqIGJsa2lkX2RvX2Z1bGxwcm9iZToKKyAqIEBwcjogcHJvYmVyCisgKgorICogVGhpcyBmdW5jdGlvbiBnYXRoZXJzIHByb2JpbmcgcmVzdWx0cyBmcm9tIGFsbCBlbmFibGVkIGNoYWlucy4gU2FtZSBhcworICogYmxraWRfc29fc2FmZXByb2JlKCkgYnV0IGRvZXMgbm90IGNoZWNrIGZvciBjb2xsaXNpb24gYmV0d2VlbiBwcm9iaW5nCisgKiByZXN1bHQuCisgKgorICogVGhpcyBpcyBzdHJpbmctYmFzZWQgTkFNRT12YWx1ZSBpbnRlcmZhY2Ugb25seS4KKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIDEgaWYgbm90aGluZyBpcyBkZXRlY3RlZCBvciAtMSBvbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQgYmxraWRfZG9fZnVsbHByb2JlKGJsa2lkX3Byb2JlIHByKQoreworCWludCBpLCBjb3VudCA9IDAsIHJjID0gMDsKKworCWlmICghcHIpCisJCXJldHVybiAtMTsKKworCWZvciAoaSA9IDA7IGkgPCBCTEtJRF9OQ0hBSU5TOyBpKyspIHsKKwkJaW50IHJjOworCQlzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobjsKKworCQljaG4gPSBwci0+Y3VyX2NoYWluID0gJnByLT5jaGFpbnNbaV07CisJCWNobi0+YmluYXJ5ID0gRkFMU0U7CQkvKiBmb3Igc3VyZS4uLiAqLworCisJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJjaGFpbiBmdWxscHJvYmUgJXM6ICVzXG4iLAorCQkJCWNobi0+ZHJpdmVyLT5uYW1lLAorCQkJCWNobi0+ZW5hYmxlZD8gIkVOQUJMRUQiIDogIkRJU0FCTEVEIikpOworCisJCWlmICghY2huLT5lbmFibGVkKQorCQkJY29udGludWU7CisKKwkJYmxraWRfcHJvYmVfY2hhaW5fcmVzZXRfcG9zaXRpb24oY2huKTsKKworCQlyYyA9IGNobi0+ZHJpdmVyLT5wcm9iZShwciwgY2huKTsKKworCQlibGtpZF9wcm9iZV9jaGFpbl9yZXNldF9wb3NpdGlvbihjaG4pOworCisJCS8qIHJjOiAtMSA9IGVycm9yLCAwID0gc3VjY2VzcywgMSA9IG5vIHJlc3VsdCAqLworCQlpZiAocmMgPCAwKQorCQkJZ290byBkb25lOwkvKiBlcnJvciAqLworCQlpZiAocmMgPT0gMCkKKwkJCWNvdW50Kys7CS8qIHN1Y2Nlc3MgKi8KKwl9CisKK2RvbmU6CisJcHItPmN1cl9jaGFpbiA9IE5VTEw7CisJaWYgKHJjIDwgMCkKKwkJcmV0dXJuIHJjOworCXJldHVybiBjb3VudCA/IDAgOiAxOworfQorCisvKiBzYW1lIHNhIGJsa2lkX3Byb2JlX2dldF9idWZmZXIoKSBidXQgd29ya3Mgd2l0aCA1MTItc2VjdG9ycyAqLwordW5zaWduZWQgY2hhciAqYmxraWRfcHJvYmVfZ2V0X3NlY3RvcihibGtpZF9wcm9iZSBwciwgdW5zaWduZWQgaW50IHNlY3RvcikKK3sKKwlyZXR1cm4gcHIgPyBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJKChibGtpZF9sb2ZmX3QpIHNlY3RvcikgPDwgOSwgMHgyMDApIDogTlVMTDsKK30KKworc3RydWN0IGJsa2lkX3BydmFsICpibGtpZF9wcm9iZV9hc3NpZ25fdmFsdWUoCisJCQlibGtpZF9wcm9iZSBwciwgY29uc3QgY2hhciAqbmFtZSkKK3sKKwlzdHJ1Y3QgYmxraWRfcHJ2YWwgKnY7CisKKwlpZiAoIW5hbWUpCisJCXJldHVybiBOVUxMOworCWlmIChwci0+bnZhbHMgPj0gQkxLSURfTlZBTFMpCisJCXJldHVybiBOVUxMOworCisJdiA9ICZwci0+dmFsc1twci0+bnZhbHNdOworCXYtPm5hbWUgPSBuYW1lOworCXYtPmNoYWluID0gcHItPmN1cl9jaGFpbjsKKwlwci0+bnZhbHMrKzsKKworCURCRyhERUJVR19MT1dQUk9CRSwKKwkJcHJpbnRmKCJhc3NpZ25pbmcgJXMgWyVzXVxuIiwgbmFtZSwgdi0+Y2hhaW4tPmRyaXZlci0+bmFtZSkpOworCXJldHVybiB2OworfQorCitpbnQgYmxraWRfcHJvYmVfcmVzZXRfbGFzdF92YWx1ZShibGtpZF9wcm9iZSBwcikKK3sKKwlzdHJ1Y3QgYmxraWRfcHJ2YWwgKnY7CisKKwlpZiAocHIgPT0gTlVMTCB8fCBwci0+bnZhbHMgPT0gMCkKKwkJcmV0dXJuIC0xOworCisJdiA9ICZwci0+dmFsc1twci0+bnZhbHMgLSAxXTsKKworCURCRyhERUJVR19MT1dQUk9CRSwKKwkJcHJpbnRmKCJ1bi1hc3NpZ25pbmcgJXMgWyVzXVxuIiwgdi0+bmFtZSwgdi0+Y2hhaW4tPmRyaXZlci0+bmFtZSkpOworCisJbWVtc2V0KHYsIDAsIHNpemVvZihzdHJ1Y3QgYmxraWRfcHJ2YWwpKTsKKwlwci0+bnZhbHMtLTsKKworCXJldHVybiAwOworCit9CisKK2ludCBibGtpZF9wcm9iZV9zZXRfdmFsdWUoYmxraWRfcHJvYmUgcHIsIGNvbnN0IGNoYXIgKm5hbWUsCisJCXVuc2lnbmVkIGNoYXIgKmRhdGEsIHNpemVfdCBsZW4pCit7CisJc3RydWN0IGJsa2lkX3BydmFsICp2OworCisJaWYgKGxlbiA+IEJMS0lEX1BST0JWQUxfQlVGU0laKQorCQlsZW4gPSBCTEtJRF9QUk9CVkFMX0JVRlNJWjsKKworCXYgPSBibGtpZF9wcm9iZV9hc3NpZ25fdmFsdWUocHIsIG5hbWUpOworCWlmICghdikKKwkJcmV0dXJuIC0xOworCisJbWVtY3B5KHYtPmRhdGEsIGRhdGEsIGxlbik7CisJdi0+bGVuID0gbGVuOworCXJldHVybiAwOworfQorCitpbnQgYmxraWRfcHJvYmVfdnNwcmludGZfdmFsdWUoYmxraWRfcHJvYmUgcHIsIGNvbnN0IGNoYXIgKm5hbWUsCisJCWNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCkKK3sKKwlzdHJ1Y3QgYmxraWRfcHJ2YWwgKnY7CisJc2l6ZV90IGxlbjsKKworCXYgPSBibGtpZF9wcm9iZV9hc3NpZ25fdmFsdWUocHIsIG5hbWUpOworCWlmICghdikKKwkJcmV0dXJuIC0xOworCisJbGVuID0gdnNucHJpbnRmKChjaGFyICopIHYtPmRhdGEsIHNpemVvZih2LT5kYXRhKSwgZm10LCBhcCk7CisKKwlpZiAobGVuIDw9IDApIHsKKwkJYmxraWRfcHJvYmVfcmVzZXRfbGFzdF92YWx1ZShwcik7CisJCXJldHVybiAtMTsKKwl9CisJdi0+bGVuID0gbGVuICsgMTsKKwlyZXR1cm4gMDsKK30KKworaW50IGJsa2lkX3Byb2JlX3NwcmludGZfdmFsdWUoYmxraWRfcHJvYmUgcHIsIGNvbnN0IGNoYXIgKm5hbWUsCisJCWNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCWludCByYzsKKwl2YV9saXN0IGFwOworCisJdmFfc3RhcnQoYXAsIGZtdCk7CisJcmMgPSBibGtpZF9wcm9iZV92c3ByaW50Zl92YWx1ZShwciwgbmFtZSwgZm10LCBhcCk7CisJdmFfZW5kKGFwKTsKKworCXJldHVybiByYzsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9nZXRfZGV2bm86CisgKiBAcHI6IHByb2JlCisgKgorICogUmV0dXJuczogYmxvY2sgZGV2aWNlIG51bWJlciwgb3IgMCBmb3IgcmVnaWxhciBmaWxlcy4KKyAqLworZGV2X3QgYmxraWRfcHJvYmVfZ2V0X2Rldm5vKGJsa2lkX3Byb2JlIHByKQoreworCWlmICghcHItPmRldm5vKSB7CisJCXN0cnVjdCBzdGF0IHNiOworCisJCWlmIChmc3RhdChwci0+ZmQsICZzYikgPT0gMCAmJgorCQkgICAgKFNfSVNCTEsoc2Iuc3RfbW9kZSkgfHwgU19JU0NIUihzYi5zdF9tb2RlKSkpCisJCQlwci0+ZGV2bm8gPSBzYi5zdF9yZGV2OworCX0KKwlyZXR1cm4gcHItPmRldm5vOworfQorCisvKioKKyAqIGJsa2lkX3Byb2JlX2dldF9zaXplOgorICogQHByOiBwcm9iZQorICoKKyAqIFJldHVybnM6IGJsb2NrIGRldmljZSAob3IgZmlsZSkgc2l6ZSBpbiBieXRlcyBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitibGtpZF9sb2ZmX3QgYmxraWRfcHJvYmVfZ2V0X3NpemUoYmxraWRfcHJvYmUgcHIpCit7CisJcmV0dXJuIHByID8gcHItPnNpemUgOiAtMTsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9nZXRfc2VjdG9yc2l6ZToKKyAqIEBwcjogcHJvYmUKKyAqCisgKiBSZXR1cm5zOiBibG9jayBkZXZpY2UgbG9naWNhbCBzZWN0b3Igc2l6ZSAoQkxLU1NaR0VUIGlvY3RsLCBkZWZhdWx0IDUxMikuCisgKi8KK3Vuc2lnbmVkIGludCBibGtpZF9wcm9iZV9nZXRfc2VjdG9yc2l6ZShibGtpZF9wcm9iZSBwcikKK3sKKwlpZiAoIXByKQorCQlyZXR1cm4gREVGQVVMVF9TRUNUT1JfU0laRTsgIC8qLi4uIGFuZCBnb29kIGx1Y2shICovCisJaWYgKHByLT5ibGtzc3opCisJCXJldHVybiBwci0+Ymxrc3N6OworCWlmICghcHItPm1vZGUpIHsKKwkJc3RydWN0IHN0YXQgc3Q7CisKKwkJaWYgKGZzdGF0KHByLT5mZCwgJnN0KSkKKwkJCWdvdG8gZmFsbGJhY2s7CisJCXByLT5tb2RlID0gc3Quc3RfbW9kZTsKKwl9CisJaWYgKFNfSVNCTEsocHItPm1vZGUpKSB7CisJICAgIGlmIChibGtkZXZfZ2V0X3NlY3Rvcl9zaXplKHByLT5mZCwgKGludCAqKSAmcHItPmJsa3NzeikpCisJCWdvdG8gZmFsbGJhY2s7CisKKwkgICAgcmV0dXJuIHByLT5ibGtzc3o7CisJfQorCitmYWxsYmFjazoKKwlwci0+Ymxrc3N6ID0gREVGQVVMVF9TRUNUT1JfU0laRTsKKwlyZXR1cm4gcHItPmJsa3NzejsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9udW1vZl92YWx1ZXM6CisgKiBAcHI6IHByb2JlCisgKgorICogUmV0dXJuczogbnVtYmVyIG9mIHZhbHVlcyBpbiBwcm9iaW5nIHJlc3VsdCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQgYmxraWRfcHJvYmVfbnVtb2ZfdmFsdWVzKGJsa2lkX3Byb2JlIHByKQoreworCWlmICghcHIpCisJCXJldHVybiAtMTsKKwlyZXR1cm4gcHItPm52YWxzOworfQorCisvKioKKyAqIGJsa2lkX3Byb2JlX2dldF92YWx1ZToKKyAqIEBwcjogcHJvYmUKKyAqIEBudW06IHdhbnRlZCB2YWx1ZSBpbiByYW5nZSAwLi5OLCB3aGVyZSBOIGlzIGJsa2lkX3Byb2JlX251bW9mX3ZhbHVlcygpIC0gMQorICogQG5hbWU6IHBvaW50ZXIgdG8gcmV0dXJuIHZhbHVlIG5hbWUgb3IgTlVMTAorICogQGRhdGE6IHBvaW50ZXIgdG8gcmV0dXJuIHZhbHVlIGRhdGEgb3IgTlVMTAorICogQGxlbjogcG9pbnRlciB0byByZXR1cm4gdmFsdWUgbGVuZ3RoIG9yIE5VTEwKKyAqCisgKiBOb3RlLCB0aGUgQGxlbiByZXR1cm5zIGxlbmd0aCBvZiB0aGUgQGRhdGEsIGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcKKyAqICdcMCcgY2hhcmFjdGVyLgorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2Vzcywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX3Byb2JlX2dldF92YWx1ZShibGtpZF9wcm9iZSBwciwgaW50IG51bSwgY29uc3QgY2hhciAqKm5hbWUsCisJCQljb25zdCBjaGFyICoqZGF0YSwgc2l6ZV90ICpsZW4pCit7CisJc3RydWN0IGJsa2lkX3BydmFsICp2ID0gX19ibGtpZF9wcm9iZV9nZXRfdmFsdWUocHIsIG51bSk7CisKKwlpZiAoIXYpCisJCXJldHVybiAtMTsKKwlpZiAobmFtZSkKKwkJKm5hbWUgPSB2LT5uYW1lOworCWlmIChkYXRhKQorCQkqZGF0YSA9IChjaGFyICopIHYtPmRhdGE7CisJaWYgKGxlbikKKwkJKmxlbiA9IHYtPmxlbjsKKworCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJyZXR1cm5pbmcgJXMgdmFsdWVcbiIsIHYtPm5hbWUpKTsKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9sb29rdXBfdmFsdWU6CisgKiBAcHI6IHByb2JlCisgKiBAbmFtZTogbmFtZSBvZiB2YWx1ZQorICogQGRhdGE6IHBvaW50ZXIgdG8gcmV0dXJuIHZhbHVlIGRhdGEgb3IgTlVMTAorICogQGxlbjogcG9pbnRlciB0byByZXR1cm4gdmFsdWUgbGVuZ3RoIG9yIE5VTEwKKyAqCisgKiBOb3RlLCB0aGUgQGxlbiByZXR1cm5zIGxlbmd0aCBvZiB0aGUgQGRhdGEsIGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcKKyAqICdcMCcgY2hhcmFjdGVyLgorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2Vzcywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX3Byb2JlX2xvb2t1cF92YWx1ZShibGtpZF9wcm9iZSBwciwgY29uc3QgY2hhciAqbmFtZSwKKwkJCWNvbnN0IGNoYXIgKipkYXRhLCBzaXplX3QgKmxlbikKK3sKKwlzdHJ1Y3QgYmxraWRfcHJ2YWwgKnYgPSBfX2Jsa2lkX3Byb2JlX2xvb2t1cF92YWx1ZShwciwgbmFtZSk7CisKKwlpZiAoIXYpCisJCXJldHVybiAtMTsKKwlpZiAoZGF0YSkKKwkJKmRhdGEgPSAoY2hhciAqKSB2LT5kYXRhOworCWlmIChsZW4pCisJCSpsZW4gPSB2LT5sZW47CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfaGFzX3ZhbHVlOgorICogQHByOiBwcm9iZQorICogQG5hbWU6IG5hbWUgb2YgdmFsdWUKKyAqCisgKiBSZXR1cm5zOiAxIGlmIHZhbHVlIGV4aXN0IGluIHByb2JpbmcgcmVzdWx0LCBvdGhlcndpc2UgMC4KKyAqLworaW50IGJsa2lkX3Byb2JlX2hhc192YWx1ZShibGtpZF9wcm9iZSBwciwgY29uc3QgY2hhciAqbmFtZSkKK3sKKwlpZiAoYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKHByLCBuYW1lLCBOVUxMLCBOVUxMKSA9PSAwKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKworc3RydWN0IGJsa2lkX3BydmFsICpfX2Jsa2lkX3Byb2JlX2dldF92YWx1ZShibGtpZF9wcm9iZSBwciwgaW50IG51bSkKK3sKKwlpZiAocHIgPT0gTlVMTCB8fCBudW0gPCAwIHx8IG51bSA+PSBwci0+bnZhbHMpCisJCXJldHVybiBOVUxMOworCisJcmV0dXJuICZwci0+dmFsc1tudW1dOworfQorCitzdHJ1Y3QgYmxraWRfcHJ2YWwgKl9fYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKGJsa2lkX3Byb2JlIHByLCBjb25zdCBjaGFyICpuYW1lKQoreworCWludCBpOworCisJaWYgKHByID09IE5VTEwgfHwgcHItPm52YWxzID09IDAgfHwgbmFtZSA9PSBOVUxMKQorCQlyZXR1cm4gTlVMTDsKKworCWZvciAoaSA9IDA7IGkgPCBwci0+bnZhbHM7IGkrKykgeworCQlzdHJ1Y3QgYmxraWRfcHJ2YWwgKnYgPSAmcHItPnZhbHNbaV07CisKKwkJaWYgKHYtPm5hbWUgJiYgc3RyY21wKG5hbWUsIHYtPm5hbWUpID09IDApIHsKKwkJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJyZXR1cm5pbmcgJXMgdmFsdWVcbiIsIHYtPm5hbWUpKTsKKwkJCXJldHVybiB2OworCQl9CisJfQorCXJldHVybiBOVUxMOworfQorCisKKy8qIGNvbnZlcnRzIERDRSBVVUlEICh1dWlkWzE2XSkgdG8gaHVtYW4gcmVhZGFibGUgc3RyaW5nCisgKiAtIHRoZSBAbGVuIHNob3VsZCBiZSBhbHdheXMgMzcgKi8KK3ZvaWQgYmxraWRfdW5wYXJzZV91dWlkKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnV1aWQsIGNoYXIgKnN0ciwgc2l6ZV90IGxlbikKK3sKKyNpZmRlZiBIQVZFX0xJQlVVSUQKKwl1dWlkX3VucGFyc2UodXVpZCwgc3RyKTsKKyNlbHNlCisJc25wcmludGYoc3RyLCBsZW4sCisJCSIlMDJ4JTAyeCUwMnglMDJ4LSUwMnglMDJ4LSUwMnglMDJ4LSUwMnglMDJ4LSUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIsCisJCXV1aWRbMF0sIHV1aWRbMV0sIHV1aWRbMl0sIHV1aWRbM10sCisJCXV1aWRbNF0sIHV1aWRbNV0sCisJCXV1aWRbNl0sIHV1aWRbN10sCisJCXV1aWRbOF0sIHV1aWRbOV0sCisJCXV1aWRbMTBdLCB1dWlkWzExXSwgdXVpZFsxMl0sIHV1aWRbMTNdLCB1dWlkWzE0XSx1dWlkWzE1XSk7CisjZW5kaWYKK30KKworCisvKiBSZW1vdmVzIHdoaXRlc3BhY2UgZnJvbSB0aGUgcmlnaHQtaGFuZCBzaWRlIG9mIGEgc3RyaW5nICh0cmFpbGluZworICogd2hpdGVzcGFjZSkuCisgKgorICogUmV0dXJucyBzaXplIG9mIHRoZSBuZXcgc3RyaW5nICh3aXRob3V0IFwwKS4KKyAqLworc2l6ZV90IGJsa2lkX3J0cmltX3doaXRlc3BhY2UodW5zaWduZWQgY2hhciAqc3RyKQoreworCXNpemVfdCBpID0gc3RybGVuKChjaGFyICopIHN0cik7CisKKwl3aGlsZSAoaS0tKSB7CisJCWlmICghaXNzcGFjZShzdHJbaV0pKQorCQkJYnJlYWs7CisJfQorCXN0clsrK2ldID0gJ1wwJzsKKwlyZXR1cm4gaTsKK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9yZWFkLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3JlYWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWU5Y2QwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9yZWFkLmMKQEAgLTAsMCArMSw0OTIgQEAKKy8qCisgKiByZWFkLmMgLSByZWFkIHRoZSBibGtpZCBjYWNoZSBmcm9tIGRpc2ssIHRvIGF2b2lkIHNjYW5uaW5nIGFsbCBkZXZpY2VzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzIFRoZW9kb3JlIFkuIFRzJ28KKyAqIENvcHlyaWdodCAoQykgMjAwMSBBbmRyZWFzIERpbGdlcgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2RlZmluZSBfWE9QRU5fU09VUkNFIDYwMCAvKiBmb3IgaW5jbHVzaW9uIG9mIHN0cnRvdWxsICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpZiBIQVZFX0VSUk5PX0gKKyNpbmNsdWRlIDxlcnJuby5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJibGtpZFAuaCIKKworI2lmZGVmIEhBVkVfU1RSVE9VTEwKKyNkZWZpbmUgU1RSVE9VTEwgc3RydG91bGwgLyogZGVmaW5lZCBpbiBzdGRsaWIuaCBpZiB5b3UgdHJ5IGhhcmQgZW5vdWdoICovCisjZWxzZQorLyogRklYTUU6IG5lZWQgdG8gc3VwcG9ydCByZWFsIHN0cnRvdWxsIGhlcmUgKi8KKyNkZWZpbmUgU1RSVE9VTEwgc3RydG91bAorI2VuZGlmCisKKyNpZiBIQVZFX1NURExJQl9ICisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKworI2lmZGVmIFRFU1RfUFJPR1JBTQorI2RlZmluZSBibGtpZF9kZWJ1Z19kdW1wX2RldihkZXYpCShkZWJ1Z19kdW1wX2RldihkZXYpKQorc3RhdGljIHZvaWQgZGVidWdfZHVtcF9kZXYoYmxraWRfZGV2IGRldik7CisjZW5kaWYKKworLyoKKyAqIEZpbGUgZm9ybWF0OgorICoKKyAqCTxkZXZpY2UgWzxOQU1FPSJ2YWx1ZSI+IC4uLl0+ZGV2aWNlX25hbWU8L2RldmljZT4KKyAqCisgKglUaGUgZm9sbG93aW5nIHRhZ3MgYXJlIHJlcXVpcmVkIGZvciBlYWNoIGVudHJ5OgorICoJPElEPSJpZCI+CXVuaXF1ZSAod2l0aGluIHRoaXMgZmlsZSkgSUQgbnVtYmVyIG9mIHRoaXMgZGV2aWNlCisgKgk8VElNRT0idGltZSI+CShhc2NpaSB0aW1lX3QpIHRpbWUgdGhpcyBlbnRyeSB3YXMgbGFzdCByZWFkIGZyb20gZGlzaworICoJPFRZUEU9InR5cGUiPgkoZGV0ZWN0ZWQpIHR5cGUgb2YgZmlsZXN5c3RlbS9kYXRhIGZvciB0aGlzIHBhcnRpdGlvbgorICoKKyAqCVRoZSBmb2xsb3dpbmcgdGFncyBtYXkgYmUgcHJlc2VudCwgZGVwZW5kaW5nIG9uIHRoZSBkZXZpY2UgY29udGVudHMKKyAqCTxMQUJFTD0ibGFiZWwiPgkodXNlciBzdXBwbGllZCkgbGFiZWwgKHZvbHVtZSBuYW1lLCBldGMpCisgKgk8VVVJRD0idXVpZCI+CShnZW5lcmF0ZWQpIHVuaXZlcnNhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIChzZXJpYWwgbm8pCisgKi8KKworc3RhdGljIGNoYXIgKnNraXBfb3Zlcl9ibGFuayhjaGFyICpjcCkKK3sKKwl3aGlsZSAoKmNwICYmIGlzc3BhY2UoKmNwKSkKKwkJY3ArKzsKKwlyZXR1cm4gY3A7Cit9CisKK3N0YXRpYyBjaGFyICpza2lwX292ZXJfd29yZChjaGFyICpjcCkKK3sKKwljaGFyIGNoOworCisJd2hpbGUgKChjaCA9ICpjcCkpIHsKKwkJLyogSWYgd2Ugc2VlIGEgYmFja3NsYXNoLCBza2lwIHRoZSBuZXh0IGNoYXJhY3RlciAqLworCQlpZiAoY2ggPT0gJ1xcJykgeworCQkJY3ArKzsKKwkJCWlmICgqY3AgPT0gJ1wwJykKKwkJCQlicmVhazsKKwkJCWNwKys7CisJCQljb250aW51ZTsKKwkJfQorCQlpZiAoaXNzcGFjZShjaCkgfHwgY2ggPT0gJzwnIHx8IGNoID09ICc+JykKKwkJCWJyZWFrOworCQljcCsrOworCX0KKwlyZXR1cm4gY3A7Cit9CisKK3N0YXRpYyBjaGFyICpzdHJpcF9saW5lKGNoYXIgKmxpbmUpCit7CisJY2hhcgkqcDsKKworCWxpbmUgPSBza2lwX292ZXJfYmxhbmsobGluZSk7CisKKwlwID0gbGluZSArIHN0cmxlbihsaW5lKSAtIDE7CisKKwl3aGlsZSAoKmxpbmUpIHsKKwkJaWYgKGlzc3BhY2UoKnApKQorCQkJKnAtLSA9ICdcMCc7CisJCWVsc2UKKwkJCWJyZWFrOworCX0KKworCXJldHVybiBsaW5lOworfQorCisjaWYgMAorc3RhdGljIGNoYXIgKnBhcnNlX3dvcmQoY2hhciAqKmJ1ZikKK3sKKwljaGFyICp3b3JkLCAqbmV4dDsKKworCXdvcmQgPSAqYnVmOworCWlmICgqd29yZCA9PSAnXDAnKQorCQlyZXR1cm4gTlVMTDsKKworCXdvcmQgPSBza2lwX292ZXJfYmxhbmsod29yZCk7CisJbmV4dCA9IHNraXBfb3Zlcl93b3JkKHdvcmQpOworCWlmICgqbmV4dCkgeworCQljaGFyICplbmQgPSBuZXh0IC0gMTsKKwkJaWYgKCplbmQgPT0gJyInIHx8ICplbmQgPT0gJ1wnJykKKwkJCSplbmQgPSAnXDAnOworCQkqbmV4dCsrID0gJ1wwJzsKKwl9CisJKmJ1ZiA9IG5leHQ7CisKKwlpZiAoKndvcmQgPT0gJyInIHx8ICp3b3JkID09ICdcJycpCisJCXdvcmQrKzsKKwlyZXR1cm4gd29yZDsKK30KKyNlbmRpZgorCisvKgorICogU3RhcnQgcGFyc2luZyBhIG5ldyBsaW5lIGZyb20gdGhlIGNhY2hlLgorICoKKyAqIGxpbmUgc3RhcnRzIHdpdGggIjxkZXZpY2UiIHJldHVybiAxIC0+IGNvbnRpbnVlIHBhcnNpbmcgbGluZQorICogbGluZSBzdGFydHMgd2l0aCAiPGZvbyIsIGVtcHR5LCBvciAjIHJldHVybiAwIC0+IHNraXAgbGluZQorICogbGluZSBzdGFydHMgd2l0aCBvdGhlciwgcmV0dXJuIC1CTEtJRF9FUlJfQ0FDSEUgLT4gZXJyb3IKKyAqLworc3RhdGljIGludCBwYXJzZV9zdGFydChjaGFyICoqY3ApCit7CisJY2hhciAqcDsKKworCXAgPSBzdHJpcF9saW5lKCpjcCk7CisKKwkvKiBTa2lwIGNvbW1lbnQgb3IgYmxhbmsgbGluZXMuICBXZSBjYW4ndCBqdXN0IE5VTCB0aGUgZmlyc3QgJyMnIGNoYXIsCisJICogaW4gY2FzZSBpdCBpcyBpbnNpZGUgcXVvdGVzLCBvciBlc2NhcGVkLgorCSAqLworCWlmICgqcCA9PSAnXDAnIHx8ICpwID09ICcjJykKKwkJcmV0dXJuIDA7CisKKwlpZiAoIXN0cm5jbXAocCwgIjxkZXZpY2UiLCA3KSkgeworCQlEQkcoREVCVUdfUkVBRCwgcHJpbnRmKCJmb3VuZCBkZXZpY2UgaGVhZGVyOiAlOHNcbiIsIHApKTsKKwkJcCArPSA3OworCisJCSpjcCA9IHA7CisJCXJldHVybiAxOworCX0KKworCWlmICgqcCA9PSAnPCcpCisJCXJldHVybiAwOworCisJcmV0dXJuIC1CTEtJRF9FUlJfQ0FDSEU7Cit9CisKKy8qIENvbnN1bWUgdGhlIHJlbWFpbmluZyBYTUwgb24gdGhlIGxpbmUgKGNvc21ldGljIG9ubHkpICovCitzdGF0aWMgaW50IHBhcnNlX2VuZChjaGFyICoqY3ApCit7CisJKmNwID0gc2tpcF9vdmVyX2JsYW5rKCpjcCk7CisKKwlpZiAoIXN0cm5jbXAoKmNwLCAiPC9kZXZpY2U+IiwgOSkpIHsKKwkJREJHKERFQlVHX1JFQUQsIHByaW50ZigiZm91bmQgZGV2aWNlIHRyYWlsZXIgJTlzXG4iLCAqY3ApKTsKKwkJKmNwICs9IDk7CisJCXJldHVybiAwOworCX0KKworCXJldHVybiAtQkxLSURfRVJSX0NBQ0hFOworfQorCisvKgorICogQWxsb2NhdGUgYSBuZXcgZGV2aWNlIHN0cnVjdCB3aXRoIGRldmljZSBuYW1lIGZpbGxlZCBpbi4gIFdpbGwgaGFuZGxlCisgKiBmaW5kaW5nIHRoZSBkZXZpY2Ugb24gbGluZXMgb2YgdGhlIGZvcm06CisgKiA8ZGV2aWNlIGZvbz1iYXI+ZGV2bmFtZTwvZGV2aWNlPgorICogPGRldmljZT5kZXZuYW1lPGZvbz5iYXI8L2Zvbz48L2RldmljZT4KKyAqLworc3RhdGljIGludCBwYXJzZV9kZXYoYmxraWRfY2FjaGUgY2FjaGUsIGJsa2lkX2RldiAqZGV2LCBjaGFyICoqY3ApCit7CisJY2hhciAqc3RhcnQsICp0bXAsICplbmQsICpuYW1lOworCWludCByZXQ7CisKKwlpZiAoKHJldCA9IHBhcnNlX3N0YXJ0KGNwKSkgPD0gMCkKKwkJcmV0dXJuIHJldDsKKworCXN0YXJ0ID0gdG1wID0gc3RyY2hyKCpjcCwgJz4nKTsKKwlpZiAoIXN0YXJ0KSB7CisJCURCRyhERUJVR19SRUFELAorCQkgICAgcHJpbnRmKCJibGtpZDogc2hvcnQgbGluZSBwYXJzaW5nIGRldjogJXNcbiIsICpjcCkpOworCQlyZXR1cm4gLUJMS0lEX0VSUl9DQUNIRTsKKwl9CisJc3RhcnQgPSBza2lwX292ZXJfYmxhbmsoc3RhcnQgKyAxKTsKKwllbmQgPSBza2lwX292ZXJfd29yZChzdGFydCk7CisKKwlEQkcoREVCVUdfUkVBRCwgcHJpbnRmKCJkZXZpY2Ugc2hvdWxkIGJlICUqc1xuIiwKKwkJCSAgICAgICAoaW50KShlbmQgLSBzdGFydCksIHN0YXJ0KSk7CisKKwlpZiAoKipjcCA9PSAnPicpCisJCSpjcCA9IGVuZDsKKwllbHNlCisJCSgqY3ApKys7CisKKwkqdG1wID0gJ1wwJzsKKworCWlmICghKHRtcCA9IHN0cnJjaHIoZW5kLCAnPCcpKSB8fCBwYXJzZV9lbmQoJnRtcCkgPCAwKSB7CisJCURCRyhERUJVR19SRUFELAorCQkgICAgcHJpbnRmKCJibGtpZDogbWlzc2luZyA8L2RldmljZT4gZW5kaW5nOiAlc1xuIiwgZW5kKSk7CisJfSBlbHNlIGlmICh0bXApCisJCSp0bXAgPSAnXDAnOworCisJaWYgKGVuZCAtIHN0YXJ0IDw9IDEpIHsKKwkJREJHKERFQlVHX1JFQUQsIHByaW50ZigiYmxraWQ6IGVtcHR5IGRldmljZSBuYW1lOiAlc1xuIiwgKmNwKSk7CisJCXJldHVybiAtQkxLSURfRVJSX0NBQ0hFOworCX0KKworCW5hbWUgPSBibGtpZF9zdHJuZHVwKHN0YXJ0LCBlbmQtc3RhcnQpOworCWlmIChuYW1lID09IE5VTEwpCisJCXJldHVybiAtQkxLSURfRVJSX01FTTsKKworCURCRyhERUJVR19SRUFELCBwcmludGYoImZvdW5kIGRldiAlc1xuIiwgbmFtZSkpOworCisJaWYgKCEoKmRldiA9IGJsa2lkX2dldF9kZXYoY2FjaGUsIG5hbWUsIEJMS0lEX0RFVl9DUkVBVEUpKSkgeworCQlmcmVlKG5hbWUpOworCQlyZXR1cm4gLUJMS0lEX0VSUl9NRU07CisJfQorCisJZnJlZShuYW1lKTsKKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIEV4dHJhY3QgYSB0YWcgb2YgdGhlIGZvcm0gTkFNRT0idmFsdWUiIGZyb20gdGhlIGxpbmUuCisgKi8KK3N0YXRpYyBpbnQgcGFyc2VfdG9rZW4oY2hhciAqKm5hbWUsIGNoYXIgKip2YWx1ZSwgY2hhciAqKmNwKQoreworCWNoYXIgKmVuZDsKKworCWlmICghbmFtZSB8fCAhdmFsdWUgfHwgIWNwKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworCWlmICghKCp2YWx1ZSA9IHN0cmNocigqY3AsICc9JykpKQorCQlyZXR1cm4gMDsKKworCSoqdmFsdWUgPSAnXDAnOworCSpuYW1lID0gc3RyaXBfbGluZSgqY3ApOworCSp2YWx1ZSA9IHNraXBfb3Zlcl9ibGFuaygqdmFsdWUgKyAxKTsKKworCWlmICgqKnZhbHVlID09ICciJykgeworCQllbmQgPSBzdHJjaHIoKnZhbHVlICsgMSwgJyInKTsKKwkJaWYgKCFlbmQpIHsKKwkJCURCRyhERUJVR19SRUFELAorCQkJICAgIHByaW50ZigidW5iYWxhbmNlZCBxdW90ZXMgYXQ6ICVzXG4iLCAqdmFsdWUpKTsKKwkJCSpjcCA9ICp2YWx1ZTsKKwkJCXJldHVybiAtQkxLSURfRVJSX0NBQ0hFOworCQl9CisJCSgqdmFsdWUpKys7CisJCSplbmQgPSAnXDAnOworCQllbmQrKzsKKwl9IGVsc2UgeworCQllbmQgPSBza2lwX292ZXJfd29yZCgqdmFsdWUpOworCQlpZiAoKmVuZCkgeworCQkJKmVuZCA9ICdcMCc7CisJCQllbmQrKzsKKwkJfQorCX0KKwkqY3AgPSBlbmQ7CisKKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIEV4dHJhY3QgYSB0YWcgb2YgdGhlIGZvcm0gPE5BTUU+dmFsdWU8L05BTUU+IGZyb20gdGhlIGxpbmUuCisgKi8KKy8qCitzdGF0aWMgaW50IHBhcnNlX3htbChjaGFyICoqbmFtZSwgY2hhciAqKnZhbHVlLCBjaGFyICoqY3ApCit7CisJY2hhciAqZW5kOworCisJaWYgKCFuYW1lIHx8ICF2YWx1ZSB8fCAhY3ApCisJCXJldHVybiAtQkxLSURfRVJSX1BBUkFNOworCisJKm5hbWUgPSBzdHJpcF9saW5lKCpjcCk7CisKKwlpZiAoKCpuYW1lKVswXSAhPSAnPCcgfHwgKCpuYW1lKVsxXSA9PSAnLycpCisJCXJldHVybiAwOworCisJRklYTUU6IGZpbmlzaCB0aGlzLgorfQorKi8KKworLyoKKyAqIEV4dHJhY3QgYSB0YWcgZnJvbSB0aGUgbGluZS4KKyAqCisgKiBSZXR1cm4gMSBpZiBhIHZhbGlkIHRhZyB3YXMgZm91bmQuCisgKiBSZXR1cm4gMCBpZiBubyB0YWcgZm91bmQuCisgKiBSZXR1cm4gLXZlIGVycm9yIGNvZGUuCisgKi8KK3N0YXRpYyBpbnQgcGFyc2VfdGFnKGJsa2lkX2NhY2hlIGNhY2hlLCBibGtpZF9kZXYgZGV2LCBjaGFyICoqY3ApCit7CisJY2hhciAqbmFtZTsKKwljaGFyICp2YWx1ZTsKKwlpbnQgcmV0OworCisJaWYgKCFjYWNoZSB8fCAhZGV2KQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworCWlmICgocmV0ID0gcGFyc2VfdG9rZW4oJm5hbWUsICZ2YWx1ZSwgY3ApKSA8PSAwIC8qICYmCisJICAgIChyZXQgPSBwYXJzZV94bWwoJm5hbWUsICZ2YWx1ZSwgY3ApKSA8PSAwICovKQorCQlyZXR1cm4gcmV0OworCisJLyogU29tZSB0YWdzIGFyZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIGRldmljZSBzdHJ1Y3QgKi8KKwlpZiAoIXN0cmNtcChuYW1lLCAiREVWTk8iKSkKKwkJZGV2LT5iaWRfZGV2bm8gPSBTVFJUT1VMTCh2YWx1ZSwgMCwgMCk7CisJZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiUFJJIikpCisJCWRldi0+YmlkX3ByaSA9IHN0cnRvbCh2YWx1ZSwgMCwgMCk7CisJZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiVElNRSIpKQorCQlkZXYtPmJpZF90aW1lID0gU1RSVE9VTEwodmFsdWUsIDAsIDApOworCWVsc2UKKwkJcmV0ID0gYmxraWRfc2V0X3RhZyhkZXYsIG5hbWUsIHZhbHVlLCBzdHJsZW4odmFsdWUpKTsKKworCURCRyhERUJVR19SRUFELCBwcmludGYoIiAgICB0YWc6ICVzPVwiJXNcIlxuIiwgbmFtZSwgdmFsdWUpKTsKKworCXJldHVybiByZXQgPCAwID8gcmV0IDogMTsKK30KKworLyoKKyAqIFBhcnNlIGEgc2luZ2xlIGxpbmUgb2YgZGF0YSwgYW5kIHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBkZXYgc3RydWN0LgorICogQWRkIHRoZSBuZXcgZGV2aWNlIHRvIHRoZSBjYWNoZSBzdHJ1Y3QsIGlmIG9uZSB3YXMgcmVhZC4KKyAqCisgKiBMaW5lcyBhcmUgb2YgdGhlIGZvcm0gPGRldmljZSBbVEFHPSJ2YWx1ZSIgLi4uXT4vZGV2L2ZvbzwvZGV2aWNlPgorICoKKyAqIFJldHVybnMgLXZlIHZhbHVlIG9uIGVycm9yLgorICogUmV0dXJucyAwIG90aGVyd2lzZS4KKyAqIElmIGEgdmFsaWQgZGV2aWNlIHdhcyByZWFkLCAqZGV2X3AgaXMgbm9uLU5VTEwsIG90aGVyd2lzZSBpdCBpcyBOVUxMCisgKiAoZS5nLiBjb21tZW50IGxpbmVzLCB1bmtub3duIFhNTCBjb250ZW50LCBldGMpLgorICovCitzdGF0aWMgaW50IGJsa2lkX3BhcnNlX2xpbmUoYmxraWRfY2FjaGUgY2FjaGUsIGJsa2lkX2RldiAqZGV2X3AsIGNoYXIgKmNwKQoreworCWJsa2lkX2RldiBkZXY7CisJaW50IHJldDsKKworCWlmICghY2FjaGUgfHwgIWRldl9wKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworCSpkZXZfcCA9IE5VTEw7CisKKwlEQkcoREVCVUdfUkVBRCwgcHJpbnRmKCJsaW5lOiAlc1xuIiwgY3ApKTsKKworCWlmICgocmV0ID0gcGFyc2VfZGV2KGNhY2hlLCBkZXZfcCwgJmNwKSkgPD0gMCkKKwkJcmV0dXJuIHJldDsKKworCWRldiA9ICpkZXZfcDsKKworCXdoaWxlICgocmV0ID0gcGFyc2VfdGFnKGNhY2hlLCBkZXYsICZjcCkpID4gMCkgeworCQk7CisJfQorCisJaWYgKGRldi0+YmlkX3R5cGUgPT0gTlVMTCkgeworCQlEQkcoREVCVUdfUkVBRCwKKwkJICAgIHByaW50ZigiYmxraWQ6IGRldmljZSAlcyBoYXMgbm8gVFlQRVxuIixkZXYtPmJpZF9uYW1lKSk7CisJCWJsa2lkX2ZyZWVfZGV2KGRldik7CisJfQorCisJREJHKERFQlVHX1JFQUQsIGJsa2lkX2RlYnVnX2R1bXBfZGV2KGRldikpOworCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFBhcnNlIHRoZSBzcGVjaWZpZWQgZmlsZW5hbWUsIGFuZCByZXR1cm4gdGhlIGRhdGEgaW4gdGhlIHN1cHBsaWVkIG9yCisgKiBhIG5ld2x5IGFsbG9jYXRlZCBjYWNoZSBzdHJ1Y3QuICBJZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LCByZXR1cm4gYQorICogbmV3IGVtcHR5IGNhY2hlIHN0cnVjdC4KKyAqLwordm9pZCBibGtpZF9yZWFkX2NhY2hlKGJsa2lkX2NhY2hlIGNhY2hlKQoreworCUZJTEUgKmZpbGU7CisJY2hhciBidWZbNDA5Nl07CisJaW50IGZkLCBsaW5lbm8gPSAwOworCXN0cnVjdCBzdGF0IHN0OworCisJaWYgKCFjYWNoZSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBJZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LCB0aGVuIHdlIGp1c3QgcmV0dXJuIGFuIGVtcHR5CisJICogc3RydWN0IHNvIHRoYXQgdGhlIGNhY2hlIGNhbiBiZSBwb3B1bGF0ZWQuCisJICovCisJaWYgKChmZCA9IG9wZW4oY2FjaGUtPmJpY19maWxlbmFtZSwgT19SRE9OTFkpKSA8IDApCisJCXJldHVybjsKKwlpZiAoZnN0YXQoZmQsICZzdCkgPCAwKQorCQlnb3RvIGVycm91dDsKKwlpZiAoKHN0LnN0X210aW1lID09IGNhY2hlLT5iaWNfZnRpbWUpIHx8CisJICAgIChjYWNoZS0+YmljX2ZsYWdzICYgQkxLSURfQklDX0ZMX0NIQU5HRUQpKSB7CisJCURCRyhERUJVR19DQUNIRSwgcHJpbnRmKCJza2lwcGluZyByZS1yZWFkIG9mICVzXG4iLAorCQkJCQljYWNoZS0+YmljX2ZpbGVuYW1lKSk7CisJCWdvdG8gZXJyb3V0OworCX0KKworCURCRyhERUJVR19DQUNIRSwgcHJpbnRmKCJyZWFkaW5nIGNhY2hlIGZpbGUgJXNcbiIsCisJCQkJY2FjaGUtPmJpY19maWxlbmFtZSkpOworCisJZmlsZSA9IGZkb3BlbihmZCwgInIiKTsKKwlpZiAoIWZpbGUpCisJCWdvdG8gZXJyb3V0OworCisJd2hpbGUgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZpbGUpKSB7CisJCWJsa2lkX2RldiBkZXY7CisJCXVuc2lnbmVkIGludCBlbmQ7CisKKwkJbGluZW5vKys7CisJCWlmIChidWZbMF0gPT0gMCkKKwkJCWNvbnRpbnVlOworCQllbmQgPSBzdHJsZW4oYnVmKSAtIDE7CisJCS8qIENvbnRpbnVlIHJlYWRpbmcgbmV4dCBsaW5lIGlmIGl0IGVuZHMgd2l0aCBhIGJhY2tzbGFzaCAqLworCQl3aGlsZSAoYnVmW2VuZF0gPT0gJ1xcJyAmJiBlbmQgPCBzaXplb2YoYnVmKSAtIDIgJiYKKwkJICAgICAgIGZnZXRzKGJ1ZiArIGVuZCwgc2l6ZW9mKGJ1ZikgLSBlbmQsIGZpbGUpKSB7CisJCQllbmQgPSBzdHJsZW4oYnVmKSAtIDE7CisJCQlsaW5lbm8rKzsKKwkJfQorCisJCWlmIChibGtpZF9wYXJzZV9saW5lKGNhY2hlLCAmZGV2LCBidWYpIDwgMCkgeworCQkJREJHKERFQlVHX1JFQUQsCisJCQkgICAgcHJpbnRmKCJibGtpZDogYmFkIGZvcm1hdCBvbiBsaW5lICVkXG4iLCBsaW5lbm8pKTsKKwkJCWNvbnRpbnVlOworCQl9CisJfQorCWZjbG9zZShmaWxlKTsKKworCS8qCisJICogSW5pdGlhbGx5IHdlIGRvIG5vdCBuZWVkIHRvIHdyaXRlIG91dCB0aGUgY2FjaGUgZmlsZS4KKwkgKi8KKwljYWNoZS0+YmljX2ZsYWdzICY9IH5CTEtJRF9CSUNfRkxfQ0hBTkdFRDsKKwljYWNoZS0+YmljX2Z0aW1lID0gc3Quc3RfbXRpbWU7CisKKwlyZXR1cm47CitlcnJvdXQ6CisJY2xvc2UoZmQpOworCXJldHVybjsKK30KKworI2lmZGVmIFRFU1RfUFJPR1JBTQorc3RhdGljIHZvaWQgZGVidWdfZHVtcF9kZXYoYmxraWRfZGV2IGRldikKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwOworCisJaWYgKCFkZXYpIHsKKwkJcHJpbnRmKCIgIGRldjogTlVMTFxuIik7CisJCXJldHVybjsKKwl9CisKKwlwcmludGYoIiAgZGV2OiBuYW1lID0gJXNcbiIsIGRldi0+YmlkX25hbWUpOworCXByaW50ZigiICBkZXY6IERFVk5PPVwiMHglMGxseFwiXG4iLCAobG9uZyBsb25nKWRldi0+YmlkX2Rldm5vKTsKKwlwcmludGYoIiAgZGV2OiBUSU1FPVwiJWxsZFwiXG4iLCAobG9uZyBsb25nKWRldi0+YmlkX3RpbWUpOworCXByaW50ZigiICBkZXY6IFBSST1cIiVkXCJcbiIsIGRldi0+YmlkX3ByaSk7CisJcHJpbnRmKCIgIGRldjogZmxhZ3MgPSAweCUwOFhcbiIsIGRldi0+YmlkX2ZsYWdzKTsKKworCWxpc3RfZm9yX2VhY2gocCwgJmRldi0+YmlkX3RhZ3MpIHsKKwkJYmxraWRfdGFnIHRhZyA9IGxpc3RfZW50cnkocCwgc3RydWN0IGJsa2lkX3N0cnVjdF90YWcsIGJpdF90YWdzKTsKKwkJaWYgKHRhZykKKwkJCXByaW50ZigiICAgIHRhZzogJXM9XCIlc1wiXG4iLCB0YWctPmJpdF9uYW1lLAorCQkJICAgICAgIHRhZy0+Yml0X3ZhbCk7CisJCWVsc2UKKwkJCXByaW50ZigiICAgIHRhZzogTlVMTFxuIik7CisJfQorCXByaW50ZigiXG4iKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKmFyZ3YpCit7CisJYmxraWRfY2FjaGUgY2FjaGUgPSBOVUxMOworCWludCByZXQ7CisKKwlibGtpZF9pbml0X2RlYnVnKERFQlVHX0FMTCk7CisJaWYgKGFyZ2MgPiAyKSB7CisJCWZwcmludGYoc3RkZXJyLCAiVXNhZ2U6ICVzIFtmaWxlbmFtZV1cbiIKKwkJCSJUZXN0IHBhcnNpbmcgb2YgdGhlIGNhY2hlIChmaWxlbmFtZSlcbiIsIGFyZ3ZbMF0pOworCQlleGl0KDEpOworCX0KKwlpZiAoKHJldCA9IGJsa2lkX2dldF9jYWNoZSgmY2FjaGUsIGFyZ3ZbMV0pKSA8IDApCisJCWZwcmludGYoc3RkZXJyLCAiZXJyb3IgJWQgcmVhZGluZyBjYWNoZSBmaWxlICVzXG4iLCByZXQsCisJCQlhcmd2WzFdID8gYXJndlsxXSA6IEJMS0lEX0NBQ0hFX0ZJTEUpOworCisJYmxraWRfcHV0X2NhY2hlKGNhY2hlKTsKKworCXJldHVybiByZXQ7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcmVzb2x2ZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9yZXNvbHZlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYxM2I4NgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvcmVzb2x2ZS5jCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogcmVzb2x2ZS5jIC0gcmVzb2x2ZSBuYW1lcyBhbmQgdGFncyBpbnRvIHNwZWNpZmljIGRldmljZXMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMgVGhlb2RvcmUgVHMnby4KKyAqIENvcHlyaWdodCAoQykgMjAwMSBBbmRyZWFzIERpbGdlcgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgImJsa2lkUC5oIgorCisvKgorICogRmluZCBhIHRhZ25hbWUgKGUuZy4gTEFCRUwgb3IgVVVJRCkgb24gYSBzcGVjaWZpYyBkZXZpY2UuCisgKi8KK2NoYXIgKmJsa2lkX2dldF90YWdfdmFsdWUoYmxraWRfY2FjaGUgY2FjaGUsIGNvbnN0IGNoYXIgKnRhZ25hbWUsCisJCQkgIGNvbnN0IGNoYXIgKmRldm5hbWUpCit7CisJYmxraWRfdGFnIGZvdW5kOworCWJsa2lkX2RldiBkZXY7CisJYmxraWRfY2FjaGUgYyA9IGNhY2hlOworCWNoYXIgKnJldCA9IE5VTEw7CisKKwlEQkcoREVCVUdfUkVTT0xWRSwgcHJpbnRmKCJsb29raW5nIGZvciAlcyBvbiAlc1xuIiwgdGFnbmFtZSwgZGV2bmFtZSkpOworCisJaWYgKCFkZXZuYW1lKQorCQlyZXR1cm4gTlVMTDsKKworCWlmICghY2FjaGUpIHsKKwkJaWYgKGJsa2lkX2dldF9jYWNoZSgmYywgTlVMTCkgPCAwKQorCQkJcmV0dXJuIE5VTEw7CisJfQorCisJaWYgKChkZXYgPSBibGtpZF9nZXRfZGV2KGMsIGRldm5hbWUsIEJMS0lEX0RFVl9OT1JNQUwpKSAmJgorCSAgICAoZm91bmQgPSBibGtpZF9maW5kX3RhZ19kZXYoZGV2LCB0YWduYW1lKSkpCisJCXJldCA9IGJsa2lkX3N0cmR1cChmb3VuZC0+Yml0X3ZhbCk7CisKKwlpZiAoIWNhY2hlKQorCQlibGtpZF9wdXRfY2FjaGUoYyk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogTG9jYXRlIGEgZGV2aWNlIG5hbWUgZnJvbSBhIHRva2VuIChOQU1FPXZhbHVlIHN0cmluZyksIG9yIChuYW1lLCB2YWx1ZSkKKyAqIHBhaXIuICBJbiB0aGUgY2FzZSBvZiBhIHRva2VuLCB2YWx1ZSBpcyBpZ25vcmVkLiAgSWYgdGhlICJ0b2tlbiIgaXMgbm90CisgKiBvZiB0aGUgZm9ybSAiTkFNRT12YWx1ZSIgYW5kIHRoZXJlIGlzIG5vIHZhbHVlIGdpdmVuLCB0aGVuIGl0IGlzIGFzc3VtZWQKKyAqIHRvIGJlIHRoZSBhY3R1YWwgZGV2bmFtZSBhbmQgYSBjb3B5IGlzIHJldHVybmVkLgorICovCitjaGFyICpibGtpZF9nZXRfZGV2bmFtZShibGtpZF9jYWNoZSBjYWNoZSwgY29uc3QgY2hhciAqdG9rZW4sCisJCQljb25zdCBjaGFyICp2YWx1ZSkKK3sKKwlibGtpZF9kZXYgZGV2OworCWJsa2lkX2NhY2hlIGMgPSBjYWNoZTsKKwljaGFyICp0ID0gMCwgKnYgPSAwOworCWNoYXIgKnJldCA9IE5VTEw7CisKKwlpZiAoIXRva2VuKQorCQlyZXR1cm4gTlVMTDsKKworCWlmICghY2FjaGUpIHsKKwkJaWYgKGJsa2lkX2dldF9jYWNoZSgmYywgTlVMTCkgPCAwKQorCQkJcmV0dXJuIE5VTEw7CisJfQorCisJREJHKERFQlVHX1JFU09MVkUsCisJICAgIHByaW50ZigibG9va2luZyBmb3IgJXMlcyVzICVzXG4iLCB0b2tlbiwgdmFsdWUgPyAiPSIgOiAiIiwKKwkJICAgdmFsdWUgPyB2YWx1ZSA6ICIiLCBjYWNoZSA/ICJpbiBjYWNoZSIgOiAiZnJvbSBkaXNrIikpOworCisJaWYgKCF2YWx1ZSkgeworCQlpZiAoIXN0cmNocih0b2tlbiwgJz0nKSkgeworCQkJcmV0ID0gYmxraWRfc3RyZHVwKHRva2VuKTsKKwkJCWdvdG8gb3V0OworCQl9CisJCWJsa2lkX3BhcnNlX3RhZ19zdHJpbmcodG9rZW4sICZ0LCAmdik7CisJCWlmICghdCB8fCAhdikKKwkJCWdvdG8gb3V0OworCQl0b2tlbiA9IHQ7CisJCXZhbHVlID0gdjsKKwl9CisKKwlkZXYgPSBibGtpZF9maW5kX2Rldl93aXRoX3RhZyhjLCB0b2tlbiwgdmFsdWUpOworCWlmICghZGV2KQorCQlnb3RvIG91dDsKKworCXJldCA9IGJsa2lkX3N0cmR1cChibGtpZF9kZXZfZGV2bmFtZShkZXYpKTsKKworb3V0OgorCWZyZWUodCk7CisJZnJlZSh2KTsKKwlpZiAoIWNhY2hlKSB7CisJCWJsa2lkX3B1dF9jYWNoZShjKTsKKwl9CisJcmV0dXJuIChyZXQpOworfQorCisjaWZkZWYgVEVTVF9QUk9HUkFNCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJY2hhciAqdmFsdWU7CisJYmxraWRfY2FjaGUgY2FjaGU7CisKKwlibGtpZF9pbml0X2RlYnVnKERFQlVHX0FMTCk7CisJaWYgKGFyZ2MgIT0gMiAmJiBhcmdjICE9IDMpIHsKKwkJZnByaW50ZihzdGRlcnIsICJVc2FnZTpcdCVzIHRhZ25hbWU9dmFsdWVcbiIKKwkJCSJcdCVzIHRhZ25hbWUgZGV2bmFtZVxuIgorCQkJIkZpbmQgd2hpY2ggZGV2aWNlIGhvbGRzIGEgZ2l2ZW4gdG9rZW4gb3JcbiIKKwkJCSJGaW5kIHdoYXQgdGhlIHZhbHVlIG9mIGEgdGFnIGlzIGluIGEgZGV2aWNlXG4iLAorCQkJYXJndlswXSwgYXJndlswXSk7CisJCWV4aXQoMSk7CisJfQorCWlmIChibGtpZF9nZXRfY2FjaGUoJmNhY2hlLCAiL2Rldi9udWxsIikgPCAwKSB7CisJCWZwcmludGYoc3RkZXJyLCAiQ291bGRuJ3QgZ2V0IGJsa2lkIGNhY2hlXG4iKTsKKwkJZXhpdCgxKTsKKwl9CisKKwlpZiAoYXJndlsyXSkgeworCQl2YWx1ZSA9IGJsa2lkX2dldF90YWdfdmFsdWUoY2FjaGUsIGFyZ3ZbMV0sIGFyZ3ZbMl0pOworCQlwcmludGYoIiVzIGhhcyB0YWcgJXM9JXNcbiIsIGFyZ3ZbMl0sIGFyZ3ZbMV0sCisJCSAgICAgICB2YWx1ZSA/IHZhbHVlIDogIjxtaXNzaW5nPiIpOworCX0gZWxzZSB7CisJCXZhbHVlID0gYmxraWRfZ2V0X2Rldm5hbWUoY2FjaGUsIGFyZ3ZbMV0sIE5VTEwpOworCQlwcmludGYoIiVzIGhhcyB0YWcgJXNcbiIsIHZhbHVlID8gdmFsdWUgOiAiPG5vbmU+IiwgYXJndlsxXSk7CisJfQorCWJsa2lkX3B1dF9jYWNoZShjYWNoZSk7CisJcmV0dXJuIHZhbHVlID8gMCA6IDE7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc2F2ZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zYXZlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYxMzczZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc2F2ZS5jCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICogc2F2ZS5jIC0gd3JpdGUgdGhlIGNhY2hlIHN0cnVjdCB0byBkaXNrCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IEFuZHJlYXMgRGlsZ2VyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgVGhlb2RvcmUgVHMnbworICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX01LREVWX0gKKyNpbmNsdWRlIDxzeXMvbWtkZXYuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRVJSTk9fSAorI2luY2x1ZGUgPGVycm5vLmg+CisjZW5kaWYKKyNpbmNsdWRlICJibGtpZFAuaCIKKworc3RhdGljIGludCBzYXZlX2RldihibGtpZF9kZXYgZGV2LCBGSUxFICpmaWxlKQoreworCXN0cnVjdCBsaXN0X2hlYWQgKnA7CisKKwlpZiAoIWRldiB8fCBkZXYtPmJpZF9uYW1lWzBdICE9ICcvJykKKwkJcmV0dXJuIDA7CisKKwlEQkcoREVCVUdfU0FWRSwKKwkgICAgcHJpbnRmKCJkZXZpY2UgJXMsIHR5cGUgJXNcbiIsIGRldi0+YmlkX25hbWUsIGRldi0+YmlkX3R5cGUgPworCQkgICBkZXYtPmJpZF90eXBlIDogIihudWxsKSIpKTsKKworCWZwcmludGYoZmlsZSwKKwkJIjxkZXZpY2UgREVWTk89XCIweCUwNGx4XCIgVElNRT1cIiVsZFwiIiwKKwkJKHVuc2lnbmVkIGxvbmcpIGRldi0+YmlkX2Rldm5vLCAobG9uZykgZGV2LT5iaWRfdGltZSk7CisJaWYgKGRldi0+YmlkX3ByaSkKKwkJZnByaW50ZihmaWxlLCAiIFBSST1cIiVkXCIiLCBkZXYtPmJpZF9wcmkpOworCWxpc3RfZm9yX2VhY2gocCwgJmRldi0+YmlkX3RhZ3MpIHsKKwkJYmxraWRfdGFnIHRhZyA9IGxpc3RfZW50cnkocCwgc3RydWN0IGJsa2lkX3N0cnVjdF90YWcsIGJpdF90YWdzKTsKKwkJZnByaW50ZihmaWxlLCAiICVzPVwiJXNcIiIsIHRhZy0+Yml0X25hbWUsdGFnLT5iaXRfdmFsKTsKKwl9CisJZnByaW50ZihmaWxlLCAiPiVzPC9kZXZpY2U+XG4iLCBkZXYtPmJpZF9uYW1lKTsKKworCXJldHVybiAwOworfQorCisvKgorICogV3JpdGUgb3V0IHRoZSBjYWNoZSBzdHJ1Y3QgdG8gdGhlIGNhY2hlIGZpbGUgb24gZGlzay4KKyAqLworaW50IGJsa2lkX2ZsdXNoX2NhY2hlKGJsa2lkX2NhY2hlIGNhY2hlKQoreworCXN0cnVjdCBsaXN0X2hlYWQgKnA7CisJY2hhciAqdG1wID0gTlVMTDsKKwljb25zdCBjaGFyICpvcGVuZWQgPSBOVUxMOworCWNvbnN0IGNoYXIgKmZpbGVuYW1lOworCUZJTEUgKmZpbGUgPSBOVUxMOworCWludCBmZCwgcmV0ID0gMDsKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCWlmICghY2FjaGUpCisJCXJldHVybiAtQkxLSURfRVJSX1BBUkFNOworCisJaWYgKGxpc3RfZW1wdHkoJmNhY2hlLT5iaWNfZGV2cykgfHwKKwkgICAgIShjYWNoZS0+YmljX2ZsYWdzICYgQkxLSURfQklDX0ZMX0NIQU5HRUQpKSB7CisJCURCRyhERUJVR19TQVZFLCBwcmludGYoInNraXBwaW5nIGNhY2hlIGZpbGUgd3JpdGVcbiIpKTsKKwkJcmV0dXJuIDA7CisJfQorCisJZmlsZW5hbWUgPSBjYWNoZS0+YmljX2ZpbGVuYW1lID8gY2FjaGUtPmJpY19maWxlbmFtZTogQkxLSURfQ0FDSEVfRklMRTsKKworCS8qIElmIHdlIGNhbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBmaWxlLCB0aGVuIGRvbid0IGV2ZW4gdHJ5ICovCisJaWYgKCgocmV0ID0gc3RhdChmaWxlbmFtZSwgJnN0KSkgPCAwICYmIGVycm5vICE9IEVOT0VOVCkgfHwKKwkgICAgKHJldCA9PSAwICYmIGFjY2VzcyhmaWxlbmFtZSwgV19PSykgPCAwKSkgeworCQlEQkcoREVCVUdfU0FWRSwKKwkJICAgIHByaW50ZigiY2FuJ3Qgd3JpdGUgdG8gY2FjaGUgZmlsZSAlc1xuIiwgZmlsZW5hbWUpKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyoKKwkgKiBUcnkgYW5kIGNyZWF0ZSBhIHRlbXBvcmFyeSBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBzbworCSAqIHRoYXQgaW4gY2FzZSBvZiBlcnJvciB3ZSBkb24ndCBvdmVyd3JpdGUgdGhlIGNhY2hlIGZpbGUuCisJICogSWYgdGhlIGNhY2hlIGZpbGUgZG9lc24ndCB5ZXQgZXhpc3QsIGl0IGlzbid0IGEgcmVndWxhcgorCSAqIGZpbGUgKGUuZy4gL2Rldi9udWxsIG9yIGEgc29ja2V0KSwgb3Igd2UgY291bGRuJ3QgY3JlYXRlCisJICogYSB0ZW1wb3JhcnkgZmlsZSB0aGVuIHdlIG9wZW4gaXQgZGlyZWN0bHkuCisJICovCisJaWYgKHJldCA9PSAwICYmIFNfSVNSRUcoc3Quc3RfbW9kZSkpIHsKKwkJdG1wID0gbWFsbG9jKHN0cmxlbihmaWxlbmFtZSkgKyA4KTsKKwkJaWYgKHRtcCkgeworCQkJc3ByaW50Zih0bXAsICIlcy1YWFhYWFgiLCBmaWxlbmFtZSk7CisJCQlmZCA9IG1rc3RlbXAodG1wKTsKKwkJCWlmIChmZCA+PSAwKSB7CisJCQkJZmlsZSA9IGZkb3BlbihmZCwgInciKTsKKwkJCQlvcGVuZWQgPSB0bXA7CisJCQl9CisJCQlmY2htb2QoZmQsIDA2NDQpOworCQl9CisJfQorCisJaWYgKCFmaWxlKSB7CisJCWZpbGUgPSBmb3BlbihmaWxlbmFtZSwgInciKTsKKwkJb3BlbmVkID0gZmlsZW5hbWU7CisJfQorCisJREJHKERFQlVHX1NBVkUsCisJICAgIHByaW50Zigid3JpdGluZyBjYWNoZSBmaWxlICVzIChyZWFsbHkgJXMpXG4iLAorCQkgICBmaWxlbmFtZSwgb3BlbmVkKSk7CisKKwlpZiAoIWZpbGUpIHsKKwkJcmV0ID0gZXJybm87CisJCWdvdG8gZXJyb3V0OworCX0KKworCWxpc3RfZm9yX2VhY2gocCwgJmNhY2hlLT5iaWNfZGV2cykgeworCQlibGtpZF9kZXYgZGV2ID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgYmxraWRfc3RydWN0X2RldiwgYmlkX2RldnMpOworCQlpZiAoIWRldi0+YmlkX3R5cGUpCisJCQljb250aW51ZTsKKwkJaWYgKChyZXQgPSBzYXZlX2RldihkZXYsIGZpbGUpKSA8IDApCisJCQlicmVhazsKKwl9CisKKwlpZiAocmV0ID49IDApIHsKKwkJY2FjaGUtPmJpY19mbGFncyAmPSB+QkxLSURfQklDX0ZMX0NIQU5HRUQ7CisJCXJldCA9IDE7CisJfQorCisJZmNsb3NlKGZpbGUpOworCWlmIChvcGVuZWQgIT0gZmlsZW5hbWUpIHsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXVubGluayhvcGVuZWQpOworCQkJREJHKERFQlVHX1NBVkUsCisJCQkgICAgcHJpbnRmKCJ1bmxpbmtlZCB0ZW1wIGNhY2hlICVzXG4iLCBvcGVuZWQpKTsKKwkJfSBlbHNlIHsKKwkJCWNoYXIgKmJhY2t1cDsKKworCQkJYmFja3VwID0gbWFsbG9jKHN0cmxlbihmaWxlbmFtZSkgKyA1KTsKKwkJCWlmIChiYWNrdXApIHsKKwkJCQlzcHJpbnRmKGJhY2t1cCwgIiVzLm9sZCIsIGZpbGVuYW1lKTsKKwkJCQl1bmxpbmsoYmFja3VwKTsKKwkJCQlpZiAobGluayhmaWxlbmFtZSwgYmFja3VwKSkgeworCQkJCQlEQkcoREVCVUdfU0FWRSwKKwkJCQkJCXByaW50ZigiY2FuJ3QgbGluayAlcyB0byAlc1xuIiwKKwkJCQkJCQlmaWxlbmFtZSwgYmFja3VwKSk7CisJCQkJfQorCQkJCWZyZWUoYmFja3VwKTsKKwkJCX0KKwkJCXJlbmFtZShvcGVuZWQsIGZpbGVuYW1lKTsKKwkJCURCRyhERUJVR19TQVZFLAorCQkJICAgIHByaW50ZigibW92ZWQgdGVtcCBjYWNoZSAlc1xuIiwgb3BlbmVkKSk7CisJCX0KKwl9CisKK2Vycm91dDoKKwlmcmVlKHRtcCk7CisJcmV0dXJuIHJldDsKK30KKworI2lmZGVmIFRFU1RfUFJPR1JBTQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWJsa2lkX2NhY2hlIGNhY2hlID0gTlVMTDsKKwlpbnQgcmV0OworCisJYmxraWRfaW5pdF9kZWJ1ZyhERUJVR19BTEwpOworCWlmIChhcmdjID4gMikgeworCQlmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiAlcyBbZmlsZW5hbWVdXG4iCisJCQkiVGVzdCBsb2FkaW5nL3NhdmluZyBhIGNhY2hlIChmaWxlbmFtZSlcbiIsIGFyZ3ZbMF0pOworCQlleGl0KDEpOworCX0KKworCWlmICgocmV0ID0gYmxraWRfZ2V0X2NhY2hlKCZjYWNoZSwgIi9kZXYvbnVsbCIpKSAhPSAwKSB7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IGVycm9yIGNyZWF0aW5nIGNhY2hlICglZClcbiIsCisJCQlhcmd2WzBdLCByZXQpOworCQlleGl0KDEpOworCX0KKwlpZiAoKHJldCA9IGJsa2lkX3Byb2JlX2FsbChjYWNoZSkpIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgImVycm9yICglZCkgcHJvYmluZyBkZXZpY2VzXG4iLCByZXQpOworCQlleGl0KDEpOworCX0KKwljYWNoZS0+YmljX2ZpbGVuYW1lID0gYmxraWRfc3RyZHVwKGFyZ3ZbMV0pOworCisJaWYgKChyZXQgPSBibGtpZF9mbHVzaF9jYWNoZShjYWNoZSkpIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgImVycm9yICglZCkgc2F2aW5nIGNhY2hlXG4iLCByZXQpOworCQlleGl0KDEpOworCX0KKworCWJsa2lkX3B1dF9jYWNoZShjYWNoZSk7CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2U1ZDBjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDQ4IEBACitpbmNsdWRlICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KKworQU1fQ1BQRkxBR1MgKz0gLUkkKHVsX2xpYmJsa2lkX2luY2RpcikgLUkkKHVsX2xpYmJsa2lkX3NyY2RpcikKKworbm9pbnN0X0xUTElCUkFSSUVTID0gbGliYmxraWRfc3VwZXJibG9ja3MubGEKK2xpYmJsa2lkX3N1cGVyYmxvY2tzX2xhX1NPVVJDRVMgPSBcCisJCQlzdXBlcmJsb2Nrcy5oIFwKKwkJCXN1cGVyYmxvY2tzLmMgXAorCQkJY3JhbWZzLmMgXAorCQkJc3dhcC5jIFwKKwkJCWFkYXB0ZWNfcmFpZC5jIFwKKwkJCWRkZl9yYWlkLmMgXAorCQkJaXN3X3JhaWQuYyBcCisJCQlqbWljcm9uX3JhaWQuYyBcCisJCQlsc2lfcmFpZC5jIFwKKwkJCW52aWRpYV9yYWlkLmMgXAorCQkJcHJvbWlzZV9yYWlkLmMgXAorCQkJc2lsaWNvbl9yYWlkLmMgXAorCQkJdmlhX3JhaWQuYyBcCisJCQlsaW51eF9yYWlkLmMgXAorCQkJamZzLmMgXAorCQkJeGZzLmMgXAorCQkJZXh0LmMgXAorCQkJZ2ZzLmMgXAorCQkJb2Nmcy5jIFwKKwkJCXJlaXNlcmZzLmMgXAorCQkJcm9tZnMuYyBcCisJCQludGZzLmMgXAorCQkJaGZzLmMgXAorCQkJaXNvOTY2MC5jIFwKKwkJCXVkZi5jIFwKKwkJCXZmYXQuYyBcCisJCQlsdWtzLmMgXAorCQkJaGlnaHBvaW50X3JhaWQuYyBcCisJCQl2eGZzLmMgXAorCQkJbWluaXguYyBcCisJCQl1ZnMuYyBcCisJCQlocGZzLmMgXAorCQkJc3F1YXNoZnMuYyBcCisJCQluZXR3YXJlLmMgXAorCQkJc3lzdi5jIFwKKwkJCWJ0cmZzLmMgXAorCQkJbHZtLmMgXAorCQkJemZzLmMgXAorCQkJdWJpZnMuYyBcCisJCQliZnMuYyBcCisJCQlkcmJkLmMgXAorCQkJdm1mcy5jCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGRiMzIzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDY1MiBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoZGlzdF9ub2luc3RfREFUQSkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorc3ViZGlyID0gc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2NrcworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorTFRMSUJSQVJJRVMgPSAkKG5vaW5zdF9MVExJQlJBUklFUykKK2xpYmJsa2lkX3N1cGVyYmxvY2tzX2xhX0xJQkFERCA9CithbV9saWJibGtpZF9zdXBlcmJsb2Nrc19sYV9PQkpFQ1RTID0gc3VwZXJibG9ja3MubG8gY3JhbWZzLmxvIHN3YXAubG8gXAorCWFkYXB0ZWNfcmFpZC5sbyBkZGZfcmFpZC5sbyBpc3dfcmFpZC5sbyBqbWljcm9uX3JhaWQubG8gXAorCWxzaV9yYWlkLmxvIG52aWRpYV9yYWlkLmxvIHByb21pc2VfcmFpZC5sbyBzaWxpY29uX3JhaWQubG8gXAorCXZpYV9yYWlkLmxvIGxpbnV4X3JhaWQubG8gamZzLmxvIHhmcy5sbyBleHQubG8gZ2ZzLmxvIG9jZnMubG8gXAorCXJlaXNlcmZzLmxvIHJvbWZzLmxvIG50ZnMubG8gaGZzLmxvIGlzbzk2NjAubG8gdWRmLmxvIHZmYXQubG8gXAorCWx1a3MubG8gaGlnaHBvaW50X3JhaWQubG8gdnhmcy5sbyBtaW5peC5sbyB1ZnMubG8gaHBmcy5sbyBcCisJc3F1YXNoZnMubG8gbmV0d2FyZS5sbyBzeXN2LmxvIGJ0cmZzLmxvIGx2bS5sbyB6ZnMubG8gdWJpZnMubG8gXAorCWJmcy5sbyBkcmJkLmxvIHZtZnMubG8KK2xpYmJsa2lkX3N1cGVyYmxvY2tzX2xhX09CSkVDVFMgPSAgXAorCSQoYW1fbGliYmxraWRfc3VwZXJibG9ja3NfbGFfT0JKRUNUUykKK0FNX1ZfbHQgPSAkKGFtX192X2x0XyQoVikpCithbV9fdl9sdF8gPSAkKGFtX192X2x0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfbHRfMCA9IC0tc2lsZW50CitERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKQorZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCithbV9fbXYgPSBtdiAtZgorQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorTFRDT01QSUxFID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgXAorCSQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgXAorCSQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0FNX1ZfQ0MgPSAkKGFtX192X0NDXyQoVikpCithbV9fdl9DQ18gPSAkKGFtX192X0NDXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NfMCA9IEBlY2hvICIgIENDICAgICIgJEA7CitBTV9WX2F0ID0gJChhbV9fdl9hdF8kKFYpKQorYW1fX3ZfYXRfID0gJChhbV9fdl9hdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2F0XzAgPSBACitDQ0xEID0gJChDQykKK0xJTksgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKEFNX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK0FNX1ZfQ0NMRCA9ICQoYW1fX3ZfQ0NMRF8kKFYpKQorYW1fX3ZfQ0NMRF8gPSAkKGFtX192X0NDTERfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ0xEXzAgPSBAZWNobyAiICBDQ0xEICAiICRAOworQU1fVl9HRU4gPSAkKGFtX192X0dFTl8kKFYpKQorYW1fX3ZfR0VOXyA9ICQoYW1fX3ZfR0VOXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfR0VOXzAgPSBAZWNobyAiICBHRU4gICAiICRAOworU09VUkNFUyA9ICQobGliYmxraWRfc3VwZXJibG9ja3NfbGFfU09VUkNFUykKK0RJU1RfU09VUkNFUyA9ICQobGliYmxraWRfc3VwZXJibG9ja3NfbGFfU09VUkNFUykKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCBcCisJLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIiBcCisJLUkkKHVsX2xpYmJsa2lkX2luY2RpcikgLUkkKHVsX2xpYmJsa2lkX3NyY2RpcikKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitub2luc3RfTFRMSUJSQVJJRVMgPSBsaWJibGtpZF9zdXBlcmJsb2Nrcy5sYQorbGliYmxraWRfc3VwZXJibG9ja3NfbGFfU09VUkNFUyA9IFwKKwkJCXN1cGVyYmxvY2tzLmggXAorCQkJc3VwZXJibG9ja3MuYyBcCisJCQljcmFtZnMuYyBcCisJCQlzd2FwLmMgXAorCQkJYWRhcHRlY19yYWlkLmMgXAorCQkJZGRmX3JhaWQuYyBcCisJCQlpc3dfcmFpZC5jIFwKKwkJCWptaWNyb25fcmFpZC5jIFwKKwkJCWxzaV9yYWlkLmMgXAorCQkJbnZpZGlhX3JhaWQuYyBcCisJCQlwcm9taXNlX3JhaWQuYyBcCisJCQlzaWxpY29uX3JhaWQuYyBcCisJCQl2aWFfcmFpZC5jIFwKKwkJCWxpbnV4X3JhaWQuYyBcCisJCQlqZnMuYyBcCisJCQl4ZnMuYyBcCisJCQlleHQuYyBcCisJCQlnZnMuYyBcCisJCQlvY2ZzLmMgXAorCQkJcmVpc2VyZnMuYyBcCisJCQlyb21mcy5jIFwKKwkJCW50ZnMuYyBcCisJCQloZnMuYyBcCisJCQlpc285NjYwLmMgXAorCQkJdWRmLmMgXAorCQkJdmZhdC5jIFwKKwkJCWx1a3MuYyBcCisJCQloaWdocG9pbnRfcmFpZC5jIFwKKwkJCXZ4ZnMuYyBcCisJCQltaW5peC5jIFwKKwkJCXVmcy5jIFwKKwkJCWhwZnMuYyBcCisJCQlzcXVhc2hmcy5jIFwKKwkJCW5ldHdhcmUuYyBcCisJCQlzeXN2LmMgXAorCQkJYnRyZnMuYyBcCisJCQlsdm0uYyBcCisJCQl6ZnMuYyBcCisJCQl1Ymlmcy5jIFwKKwkJCWJmcy5jIFwKKwkJCWRyYmQuYyBcCisJCQl2bWZzLmMKKworYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIHNobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduIHNobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgorCitjbGVhbi1ub2luc3RMVExJQlJBUklFUzoKKwktdGVzdCAteiAiJChub2luc3RfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKG5vaW5zdF9MVExJQlJBUklFUykKKwlAbGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKwlkb25lCitsaWJibGtpZF9zdXBlcmJsb2Nrcy5sYTogJChsaWJibGtpZF9zdXBlcmJsb2Nrc19sYV9PQkpFQ1RTKSAkKGxpYmJsa2lkX3N1cGVyYmxvY2tzX2xhX0RFUEVOREVOQ0lFUykgCisJJChBTV9WX0NDTEQpJChMSU5LKSAgJChsaWJibGtpZF9zdXBlcmJsb2Nrc19sYV9PQkpFQ1RTKSAkKGxpYmJsa2lkX3N1cGVyYmxvY2tzX2xhX0xJQkFERCkgJChMSUJTKQorCittb3N0bHljbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLiQoT0JKRVhUKQorCitkaXN0Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi50YWIuYworCitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvYWRhcHRlY19yYWlkLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvYmZzLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvYnRyZnMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jcmFtZnMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9kZGZfcmFpZC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2RyYmQuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9leHQuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9nZnMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9oZnMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9oaWdocG9pbnRfcmFpZC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2hwZnMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9pc285NjYwLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvaXN3X3JhaWQuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9qZnMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9qbWljcm9uX3JhaWQuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saW51eF9yYWlkLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbHNpX3JhaWQuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9sdWtzLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbHZtLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbWluaXguUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9uZXR3YXJlLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbnRmcy5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL252aWRpYV9yYWlkLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvb2Nmcy5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Byb21pc2VfcmFpZC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3JlaXNlcmZzLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcm9tZnMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zaWxpY29uX3JhaWQuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zcXVhc2hmcy5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3N1cGVyYmxvY2tzLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc3dhcC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3N5c3YuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91Ymlmcy5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3VkZi5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Vmcy5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3ZmYXQuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS92aWFfcmFpZC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3ZtZnMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS92eGZzLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikveGZzLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvemZzLlBsb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoTFRDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1hbQorYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKERBVEEpCitpbnN0YWxsZGlyczoKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RMVExJQlJBUklFUyBcCisJbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06CisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisKK2luc3RhbGwtaW5mby1hbToKKworaW5zdGFsbC1tYW46CisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVMgY3RhZ3MgZGlzdGNsZWFuIFwKKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAorCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCisJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAorCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisKKworJCh1bF9saWJibGtpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCiskKHVsX2xpYnV1aWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJ1dWlkX2J1aWxkZGlyKQorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2FkYXB0ZWNfcmFpZC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9hZGFwdGVjX3JhaWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmIxNzViCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9hZGFwdGVjX3JhaWQuYwpAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBJbnNwaXJlZCBieSBsaWJ2b2x1bWVfaWQgYnkKKyAqICAgICBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3QgYWRhcHRlY19tZXRhZGF0YSB7CisKKwl1aW50MzJfdAliMGlkY29kZTsKKwl1aW50OF90CQlsdW5zYXZlWzhdOworCXVpbnQxNl90CXNkdHlwZTsKKwl1aW50MTZfdAlzc2F2ZWN5bDsKKwl1aW50OF90CQlzc2F2ZWhlZDsKKwl1aW50OF90CQlzc2F2ZXNlYzsKKwl1aW50OF90CQlzYjBmbGFnczsKKwl1aW50OF90CQlqYm9kRW5hYmxlOworCXVpbnQ4X3QJCWx1bmRzYXZlOworCXVpbnQ4X3QJCXN2cGRpcnR5OworCXVpbnQxNl90CWJpb3NJbmZvOworCXVpbnQxNl90CXN2d2Jza2lwOworCXVpbnQxNl90CXN2d2JjbG47CisJdWludDE2X3QJc3Z3Ym1heDsKKwl1aW50MTZfdAlyZXMzOworCXVpbnQxNl90CXN2d2JtaW47CisJdWludDE2X3QJcmVzNDsKKwl1aW50MTZfdAlzdnJjYWN0aDsKKwl1aW50MTZfdAlzdndjYWN0aDsKKwl1aW50MTZfdAlzdndiZGx5OworCXVpbnQ4X3QJCXN2c2R0aW1lOworCXVpbnQ4X3QJCXJlczU7CisJdWludDE2X3QJZmlybXZhbDsKKwl1aW50MTZfdAlmaXJtYmxuOworCXVpbnQzMl90CWZpcm1ibGs7CisJdWludDMyX3QJZnN0cnN2cmI7CisJdWludDE2X3QJc3ZCbG9ja1N0b3JhZ2VUaWQ7CisJdWludDE2X3QJc3Z0aWQ7CisJdWludDhfdAkJc3ZzZWNjZmw7CisJdWludDhfdAkJcmVzNjsKKwl1aW50OF90CQlzdmhiYW51bTsKKwl1aW50OF90CQlyZXN2ZXI7CisJdWludDMyX3QJZHJpdmVtYWdpYzsKKwl1aW50OF90CQlyZXNlcnZlZFsyMF07CisJdWludDhfdAkJdGVzdG51bTsKKwl1aW50OF90CQl0ZXN0ZmxhZ3M7CisJdWludDE2X3QJbWF4RXJyb3JDb3VudDsKKwl1aW50MzJfdAljb3VudDsKKwl1aW50MzJfdAlzdGFydFRpbWU7CisJdWludDMyX3QJaW50ZXJ2YWw7CisJdWludDhfdAkJdHN0eHQwOworCXVpbnQ4X3QJCXRzdHh0MTsKKwl1aW50OF90CQlzZXJOdW1bMzJdOworCXVpbnQ4X3QJCXJlczhbMTAyXTsKKwl1aW50MzJfdAlmd1Rlc3RNYWdpYzsKKwl1aW50MzJfdAlmd1Rlc3RTZXFOdW07CisJdWludDhfdAkJZndUZXN0UmVzWzhdOworCXVpbnQzMl90CXNtYWdpYzsKKwl1aW50MzJfdAlyYWlkdGJsOworCXVpbnQxNl90CXJhaWRsaW5lOworCXVpbnQ4X3QJCXJlczlbMHhGNl07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisjZGVmaW5lIEFEX1NJR05BVFVSRQkweDQ0NTA1NDRECS8qICJEUFRNIiAqLworI2RlZmluZSBBRF9NQUdJQwkweDM3RkM0RDFFCisKK3N0YXRpYyBpbnQgcHJvYmVfYWRyYWlkKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwl1aW50NjRfdCBvZmY7CisJc3RydWN0IGFkYXB0ZWNfbWV0YWRhdGEgKmFkOworCisJaWYgKHByLT5zaXplIDwgMHgxMDAwMCkKKwkJcmV0dXJuIC0xOworCisJb2ZmID0gKChwci0+c2l6ZSAvIDB4MjAwKS0xKSAqIDB4MjAwOworCWFkID0gKHN0cnVjdCBhZGFwdGVjX21ldGFkYXRhICopCisJCQlibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJCQlvZmYsCisJCQkJCXNpemVvZihzdHJ1Y3QgYWRhcHRlY19tZXRhZGF0YSkpOworCWlmICghYWQpCisJCXJldHVybiAtMTsKKwlpZiAoYWQtPnNtYWdpYyAhPSBiZTMyX3RvX2NwdShBRF9TSUdOQVRVUkUpKQorCQlyZXR1cm4gLTE7CisJaWYgKGFkLT5iMGlkY29kZSAhPSBiZTMyX3RvX2NwdShBRF9NQUdJQykpCisJCXJldHVybiAtMTsKKwlpZiAoYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJXUiLCBhZC0+cmVzdmVyKSAhPSAwKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBhZHJhaWRfaWRpbmZvID0geworCS5uYW1lCQk9ICJhZGFwdGVjX3JhaWRfbWVtYmVyIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfUkFJRCwKKwkucHJvYmVmdW5jCT0gcHJvYmVfYWRyYWlkLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2Jmcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9iZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTM0YzU4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9iZnMuYwpAQCAtMCwwICsxLDIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFJlZCBIYXQsIEluYy4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCisvKgorICogQkZTIGFjdHVhbGx5IGhhcyB0d28gZGlmZmVyZW50IGxhYmVscyBpbiB0aGUgc3VwZXJibG9jaywgZWFjaAorICogb2YgdGhlbSBvbmx5IDYgYnl0ZXMgbG9uZy4gIFVudGlsIHdlIGZpbmQgb3V0IHdoYXQgdGhlaXIgdXNlCisgKiB3ZSBqdXN0IGlnbm9yZSB0aGVtLgorICovCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGJmc19pZGluZm8gPQoreworCS5uYW1lCQk9ICJiZnMiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5tYWdpY3MJCT0geworCQl7IC5tYWdpYyA9ICJceGNlXHhmYVx4YWRceDFiIiwgLmxlbiA9IDQgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9idHJmcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9idHJmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyMDE5NTkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2J0cmZzLmMKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKK3N0cnVjdCBidHJmc19zdXBlcl9ibG9jayB7CisJdWludDhfdCBjc3VtWzMyXTsKKwl1aW50OF90IGZzaWRbMTZdOworCXVpbnQ2NF90IGJ5dGVucjsKKwl1aW50NjRfdCBmbGFnczsKKwl1aW50OF90IG1hZ2ljWzhdOworCXVpbnQ2NF90IGdlbmVyYXRpb247CisJdWludDY0X3Qgcm9vdDsKKwl1aW50NjRfdCBjaHVua19yb290OworCXVpbnQ2NF90IGxvZ19yb290OworCXVpbnQ2NF90IGxvZ19yb290X3RyYW5zaWQ7CisJdWludDY0X3QgdG90YWxfYnl0ZXM7CisJdWludDY0X3QgYnl0ZXNfdXNlZDsKKwl1aW50NjRfdCByb290X2Rpcl9vYmplY3RpZDsKKwl1aW50NjRfdCBudW1fZGV2aWNlczsKKwl1aW50MzJfdCBzZWN0b3JzaXplOworCXVpbnQzMl90IG5vZGVzaXplOworCXVpbnQzMl90IGxlYWZzaXplOworCXVpbnQzMl90IHN0cmlwZXNpemU7CisJdWludDMyX3Qgc3lzX2NodW5rX2FycmF5X3NpemU7CisJdWludDY0X3QgY2h1bmtfcm9vdF9nZW5lcmF0aW9uOworCXVpbnQ2NF90IGNvbXBhdF9mbGFnczsKKwl1aW50NjRfdCBjb21wYXRfcm9fZmxhZ3M7CisJdWludDY0X3QgaW5jb21wYXRfZmxhZ3M7CisJdWludDE2X3QgY3N1bV90eXBlOworCXVpbnQ4X3Qgcm9vdF9sZXZlbDsKKwl1aW50OF90IGNodW5rX3Jvb3RfbGV2ZWw7CisJdWludDhfdCBsb2dfcm9vdF9sZXZlbDsKKwlzdHJ1Y3QgYnRyZnNfZGV2X2l0ZW0geworCQl1aW50NjRfdCBkZXZpZDsKKwkJdWludDY0X3QgdG90YWxfYnl0ZXM7CisJCXVpbnQ2NF90IGJ5dGVzX3VzZWQ7CisJCXVpbnQzMl90IGlvX2FsaWduOworCQl1aW50MzJfdCBpb193aWR0aDsKKwkJdWludDMyX3Qgc2VjdG9yX3NpemU7CisJCXVpbnQ2NF90IHR5cGU7CisJCXVpbnQ2NF90IGdlbmVyYXRpb247CisJCXVpbnQ2NF90IHN0YXJ0X29mZnNldDsKKwkJdWludDMyX3QgZGV2X2dyb3VwOworCQl1aW50OF90IHNlZWtfc3BlZWQ7CisJCXVpbnQ4X3QgYmFuZHdpZHRoOworCQl1aW50OF90IHV1aWRbMTZdOworCQl1aW50OF90IGZzaWRbMTZdOworCX0gX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKSBkZXZfaXRlbTsKKwl1aW50OF90IGxhYmVsWzI1Nl07Cit9IF9fYXR0cmlidXRlX18gKChfX3BhY2tlZF9fKSk7CisKK3N0YXRpYyBpbnQgcHJvYmVfYnRyZnMoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBidHJmc19zdXBlcl9ibG9jayAqYmZzOworCisJYmZzID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBidHJmc19zdXBlcl9ibG9jayk7CisJaWYgKCFiZnMpCisJCXJldHVybiAtMTsKKworCWlmICgqYmZzLT5sYWJlbCkKKwkJYmxraWRfcHJvYmVfc2V0X2xhYmVsKHByLAorCQkJCSh1bnNpZ25lZCBjaGFyICopIGJmcy0+bGFiZWwsCisJCQkJc2l6ZW9mKGJmcy0+bGFiZWwpKTsKKworCWJsa2lkX3Byb2JlX3NldF91dWlkKHByLCBiZnMtPmZzaWQpOworCWJsa2lkX3Byb2JlX3NldF91dWlkX2FzKHByLCBiZnMtPmRldl9pdGVtLnV1aWQsICJVVUlEX1NVQiIpOworCisJcmV0dXJuIDA7Cit9CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gYnRyZnNfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiYnRyZnMiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9idHJmcywKKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICJfQkhSZlNfTSIsIC5sZW4gPSA4LCAua2JvZmYgPSA2NCwgLnNib2ZmID0gMHg0MCB9LAorCQl7IE5VTEwgfQorCX0KK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvY3JhbWZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2NyYW1mcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1OGVkMDgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2NyYW1mcy5jCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgYnkgQW5kcmllcyBCcm91d2VyCisgKiBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMgYnkgVGhlb2RvcmUgVHMnbworICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IEFuZHJlYXMgRGlsZ2VyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3QgY3JhbWZzX3N1cGVyCit7CisJdWludDhfdAkJbWFnaWNbNF07CisJdWludDMyX3QJc2l6ZTsKKwl1aW50MzJfdAlmbGFnczsKKwl1aW50MzJfdAlmdXR1cmU7CisJdWludDhfdAkJc2lnbmF0dXJlWzE2XTsKKwlzdHJ1Y3QgY3JhbWZzX2luZm8KKwl7CisJCXVpbnQzMl90CWNyYzsKKwkJdWludDMyX3QJZWRpdGlvbjsKKwkJdWludDMyX3QJYmxvY2tzOworCQl1aW50MzJfdAlmaWxlczsKKwl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGluZm87CisJdWludDhfdAkJbmFtZVsxNl07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdGF0aWMgaW50IHByb2JlX2NyYW1mcyhibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IGNyYW1mc19zdXBlciAqY3M7CisKKwljcyA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgY3JhbWZzX3N1cGVyKTsKKwlpZiAoIWNzKQorCQlyZXR1cm4gLTE7CisKKwlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsIGNzLT5uYW1lLCBzaXplb2YoY3MtPm5hbWUpKTsKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBjcmFtZnNfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiY3JhbWZzIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfY3JhbWZzLAorCS5tYWdpY3MJCT0KKwl7CisJCXsgIlx4NDVceDNkXHhjZFx4MjgiLCA0LCAwLCAwIH0sCisJCXsgIlx4MjhceGNkXHgzZFx4NDUiLCA0LCAwLCAwIH0sCisJCXsgTlVMTCB9CisJfQorfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2RkZl9yYWlkLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2RkZl9yYWlkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODliZDkyYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvZGRmX3JhaWQuYwpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIEluc3BpcmVkIGJ5IGxpYnZvbHVtZV9pZCBieQorICogICAgIEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKKy8qIGh0dHA6Ly93d3cuc25pYS5vcmcvc3RhbmRhcmRzL2hvbWUgKi8KKyNkZWZpbmUgRERGX0dVSURfTEVOR1RICQkJMjQKKyNkZWZpbmUgRERGX1JFVl9MRU5HVEgJCQk4CisKK3N0cnVjdCBkZGZfaGVhZGVyIHsKKwl1aW50OF90CQlzaWduYXR1cmVbNF07CisJdWludDMyX3QJY3JjOworCXVpbnQ4X3QJCWd1aWRbRERGX0dVSURfTEVOR1RIXTsKKwl1aW50OF90CQlkZGZfcmV2W0RERl9SRVZfTEVOR1RIXTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0YXRpYyBpbnQgcHJvYmVfZGRmKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlpbnQgaGRyc1tdID0geyAxLCAyNTcgfTsKKwlpbnQgaTsKKwlzdHJ1Y3QgZGRmX2hlYWRlciAqZGRmID0gTlVMTDsKKwljaGFyIHZlcnNpb25bRERGX1JFVl9MRU5HVEggKyAxXTsKKworCWlmIChwci0+c2l6ZSA8IDB4MzAwMDApCisJCXJldHVybiAtMTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhkcnMpOyBpKyspIHsKKwkJdWludDY0X3Qgb2ZmID0gKChwci0+c2l6ZSAvIDB4MjAwKSAtIGhkcnNbaV0pICogMHgyMDA7CisKKwkJZGRmID0gKHN0cnVjdCBkZGZfaGVhZGVyICopIGJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsCisJCQkJCW9mZiwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBkZGZfaGVhZGVyKSk7CisJCWlmICghZGRmKQorCQkJcmV0dXJuIC0xOworCisJCWlmIChtZW1jbXAoZGRmLT5zaWduYXR1cmUsICJceDExXHhkZVx4MTFceGRlIiwgNCkgPT0gMCB8fAorCSAgICAgICAgICAgIG1lbWNtcChkZGYtPnNpZ25hdHVyZSwgIlx4ZGVceDExXHhkZVx4MTEiLCA0KSA9PSAwKQorCQkJYnJlYWs7CisJCWRkZiA9IE5VTEw7CisJfQorCisJaWYgKCFkZGYpCisJCXJldHVybiAtMTsKKworCWJsa2lkX3Byb2JlX3N0cm5jcHlfdXVpZChwciwgZGRmLT5ndWlkLCBzaXplb2YoZGRmLT5ndWlkKSk7CisKKwltZW1jcHkodmVyc2lvbiwgZGRmLT5kZGZfcmV2LCBzaXplb2YoZGRmLT5kZGZfcmV2KSk7CisJKih2ZXJzaW9uICsgc2l6ZW9mKGRkZi0+ZGRmX3JldikpID0gJ1wwJzsKKworCWlmIChibGtpZF9wcm9iZV9zZXRfdmVyc2lvbihwciwgdmVyc2lvbikgIT0gMCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGRkZnJhaWRfaWRpbmZvID0geworCS5uYW1lCQk9ICJkZGZfcmFpZF9tZW1iZXIiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9kZGYsCisJLm1hZ2ljcwkJPSBCTEtJRF9OT05FX01BR0lDCit9OworCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvZHJiZC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9kcmJkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFkY2FjNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvZHJiZC5jCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IGJ5IEJhc3RpYW4gRnJpZWRyaWNoIDxiYXN0aWFuLmZyaWVkcmljaEBjb2xsYXguY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKgorICogZGVmaW5lcywgc3RydWN0cyB0YWtlbiBmcm9tIGRyYmQgc291cmNlOyBmaWxlIG5hbWVzIHJlcHJlc2VudCBkcmJkIHNvdXJjZQorICogZmlsZXMuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworLyoKKyAqIGRyYmQvbGludXgvZHJiZC5oCisgKi8KKyNkZWZpbmUgRFJCRF9NQUdJQyAweDgzNzQwMjY3CisKKy8qCisgKiB1c2VyL2RyYmRtZXRhLmMKKyAqIFdlIG9ubHkgc3VwcG9ydCB2MDggZm9yIG5vdworICovCisjZGVmaW5lIERSQkRfTURfTUFHSUNfMDggKERSQkRfTUFHSUMrNCkKKworLyoKKyAqIGRyYmQvbGludXgvZHJiZC5oCisgKi8KK2VudW0gZHJiZF91dWlkX2luZGV4IHsKKwlVSV9DVVJSRU5ULAorCVVJX0JJVE1BUCwKKwlVSV9ISVNUT1JZX1NUQVJULAorCVVJX0hJU1RPUllfRU5ELAorCVVJX1NJWkUsCQkvKiBubC1wYWNrZXQ6IG51bWJlciBvZiBkaXJ0eSBiaXRzICovCisJVUlfRkxBR1MsCQkvKiBubC1wYWNrZXQ6IGZsYWdzICovCisJVUlfRVhURU5ERURfU0laRQkvKiBFdmVyeXRoaW5nLiAqLworfTsKKworLyoKKyAqIHVzZXIvZHJiZG1ldGEuYworICogTWlub3IgbW9kaWZpY2F0aW9ucyB3cnQuIHR5cGVzCisgKi8KK3N0cnVjdCBtZF9vbl9kaXNrXzA4IHsKKwl1aW50NjRfdCBsYV9zZWN0OyAgICAgICAgIC8qIGxhc3QgYWdyZWVkIHNpemUuICovCisJdWludDY0X3QgdXVpZFtVSV9TSVpFXTsgICAvKiBVVUlEcyAqLworCXVpbnQ2NF90IGRldmljZV91dWlkOworCXVpbnQ2NF90IHJlc2VydmVkX3U2NF8xOworCXVpbnQzMl90IGZsYWdzOworCXVpbnQzMl90IG1hZ2ljOworCXVpbnQzMl90IG1kX3NpemVfc2VjdDsKKwlpbnQzMl90ICBhbF9vZmZzZXQ7ICAgICAgIC8qIHNpZ25lZCBzZWN0b3Igb2Zmc2V0IHRvIHRoaXMgYmxvY2sgKi8KKwl1aW50MzJfdCBhbF9ucl9leHRlbnRzOyAgIC8qIGltcG9ydGFudCBmb3IgcmVzdG9yaW5nIHRoZSBBTCAqLworCWludDMyX3QgIGJtX29mZnNldDsgICAgICAgLyogc2lnbmVkIHNlY3RvciBvZmZzZXQgdG8gdGhlIGJpdG1hcCwgZnJvbSBoZXJlICovCisJdWludDMyX3QgYm1fYnl0ZXNfcGVyX2JpdDsKKwl1aW50MzJfdCByZXNlcnZlZF91MzJbNF07CisKKwljaGFyIHJlc2VydmVkWzggKiA1MTIgLSAoOCooVUlfU0laRSszKSs0KjExKV07Cit9OworCisKK3N0YXRpYyBpbnQgcHJvYmVfZHJiZChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IG1kX29uX2Rpc2tfMDggKm1kOworCW9mZl90IG9mZjsKKworCW9mZiA9IHByLT5zaXplIC0gc2l6ZW9mKCptZCk7CisKKwkvKiBTbWFsbCBkZXZpY2VzIGNhbm5vdCBiZSBkcmJkICg/KSAqLworCWlmIChwci0+c2l6ZSA8IDB4MTAwMDApCisJCXJldHVybiAtMTsKKworCW1kID0gKHN0cnVjdCBtZF9vbl9kaXNrXzA4ICopCisJCWJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsCisJCW9mZiwKKwkJc2l6ZW9mKHN0cnVjdCBtZF9vbl9kaXNrXzA4KSk7CisJaWYgKCFtZCkKKwkJcmV0dXJuIC0xOworCisJaWYgKGJlMzJfdG9fY3B1KG1kLT5tYWdpYykgIT0gRFJCRF9NRF9NQUdJQ18wOCkKKwkJcmV0dXJuIC0xOworCisJLyoKKwkgKiBEUkJEIGRvZXMgbm90IGhhdmUgInJlYWwiIHV1aWRzOyB0aGUgZm9sbG93aW5nIHJlc2VtYmxlcyBEUkJEJ3MKKwkgKiBub3Rpb24gb2YgdXVpZHMgKDY0IGJpdCwgc2VlIHN0cnVjdCBhYm92ZSkKKwkgKi8KKwlibGtpZF9wcm9iZV9zcHJpbnRmX3V1aWQocHIsCisJCSh1bnNpZ25lZCBjaGFyICopICZtZC0+ZGV2aWNlX3V1aWQsIHNpemVvZihtZC0+ZGV2aWNlX3V1aWQpLAorCQkiJSIgUFJJeDY0LCBiZTY0X3RvX2NwdShtZC0+ZGV2aWNlX3V1aWQpKTsKKworCWJsa2lkX3Byb2JlX3NldF92ZXJzaW9uKHByLCAidjA4Iik7CisKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBkcmJkX2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gImRyYmQiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9kcmJkLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9leHQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvZXh0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFiYzJhOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvZXh0LmMKQEAgLTAsMCArMSw1NzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDEgYnkgQW5kcmllcyBCcm91d2VyCisgKiBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMgYnkgVGhlb2RvcmUgVHMnbworICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpZmRlZiBfX2xpbnV4X18KKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorI2VuZGlmCisjaW5jbHVkZSA8dGltZS5oPgorCisjaW5jbHVkZSAibGludXhfdmVyc2lvbi5oIgorI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKK3N0cnVjdCBleHQyX3N1cGVyX2Jsb2NrIHsKKwl1aW50MzJfdAkJc19pbm9kZXNfY291bnQ7CisJdWludDMyX3QJCXNfYmxvY2tzX2NvdW50OworCXVpbnQzMl90CQlzX3JfYmxvY2tzX2NvdW50OworCXVpbnQzMl90CQlzX2ZyZWVfYmxvY2tzX2NvdW50OworCXVpbnQzMl90CQlzX2ZyZWVfaW5vZGVzX2NvdW50OworCXVpbnQzMl90CQlzX2ZpcnN0X2RhdGFfYmxvY2s7CisJdWludDMyX3QJCXNfbG9nX2Jsb2NrX3NpemU7CisJdWludDMyX3QJCXNfZHVtbXkzWzddOworCXVuc2lnbmVkIGNoYXIJCXNfbWFnaWNbMl07CisJdWludDE2X3QJCXNfc3RhdGU7CisJdWludDE2X3QJCXNfZXJyb3JzOworCXVpbnQxNl90CQlzX21pbm9yX3Jldl9sZXZlbDsKKwl1aW50MzJfdAkJc19sYXN0Y2hlY2s7CisJdWludDMyX3QJCXNfY2hlY2tpbnRlcnZhbDsKKwl1aW50MzJfdAkJc19jcmVhdG9yX29zOworCXVpbnQzMl90CQlzX3Jldl9sZXZlbDsKKwl1aW50MTZfdAkJc19kZWZfcmVzdWlkOworCXVpbnQxNl90CQlzX2RlZl9yZXNnaWQ7CisJdWludDMyX3QJCXNfZmlyc3RfaW5vOworCXVpbnQxNl90CQlzX2lub2RlX3NpemU7CisJdWludDE2X3QJCXNfYmxvY2tfZ3JvdXBfbnI7CisJdWludDMyX3QJCXNfZmVhdHVyZV9jb21wYXQ7CisJdWludDMyX3QJCXNfZmVhdHVyZV9pbmNvbXBhdDsKKwl1aW50MzJfdAkJc19mZWF0dXJlX3JvX2NvbXBhdDsKKwl1bnNpZ25lZCBjaGFyCQlzX3V1aWRbMTZdOworCWNoYXIJCQlzX3ZvbHVtZV9uYW1lWzE2XTsKKwljaGFyCQkJc19sYXN0X21vdW50ZWRbNjRdOworCXVpbnQzMl90CQlzX2FsZ29yaXRobV91c2FnZV9iaXRtYXA7CisJdWludDhfdAkJCXNfcHJlYWxsb2NfYmxvY2tzOworCXVpbnQ4X3QJCQlzX3ByZWFsbG9jX2Rpcl9ibG9ja3M7CisJdWludDE2X3QJCXNfcmVzZXJ2ZWRfZ2R0X2Jsb2NrczsKKwl1aW50OF90CQkJc19qb3VybmFsX3V1aWRbMTZdOworCXVpbnQzMl90CQlzX2pvdXJuYWxfaW51bTsKKwl1aW50MzJfdAkJc19qb3VybmFsX2RldjsKKwl1aW50MzJfdAkJc19sYXN0X29ycGhhbjsKKwl1aW50MzJfdAkJc19oYXNoX3NlZWRbNF07CisJdWludDhfdAkJCXNfZGVmX2hhc2hfdmVyc2lvbjsKKwl1aW50OF90CQkJc19qbmxfYmFja3VwX3R5cGU7CisJdWludDE2X3QJCXNfcmVzZXJ2ZWRfd29yZF9wYWQ7CisJdWludDMyX3QJCXNfZGVmYXVsdF9tb3VudF9vcHRzOworCXVpbnQzMl90CQlzX2ZpcnN0X21ldGFfYmc7CisJdWludDMyX3QJCXNfbWtmc190aW1lOworCXVpbnQzMl90CQlzX2pubF9ibG9ja3NbMTddOworCXVpbnQzMl90CQlzX2Jsb2Nrc19jb3VudF9oaTsKKwl1aW50MzJfdAkJc19yX2Jsb2Nrc19jb3VudF9oaTsKKwl1aW50MzJfdAkJc19mcmVlX2Jsb2Nrc19oaTsKKwl1aW50MTZfdAkJc19taW5fZXh0cmFfaXNpemU7CisJdWludDE2X3QJCXNfd2FudF9leHRyYV9pc2l6ZTsKKwl1aW50MzJfdAkJc19mbGFnczsKKwl1aW50MTZfdAkJc19yYWlkX3N0cmlkZTsKKwl1aW50MTZfdAkJc19tbXBfaW50ZXJ2YWw7CisJdWludDY0X3QJCXNfbW1wX2Jsb2NrOworCXVpbnQzMl90CQlzX3JhaWRfc3RyaXBlX3dpZHRoOworCXVpbnQzMl90CQlzX3Jlc2VydmVkWzE2M107Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisvKiBtYWdpYyBzdHJpbmcgKi8KKyNkZWZpbmUgRVhUX1NCX01BR0lDCQkJCSJcMTIzXDM1NyIKKy8qIHN1cHBlciBibG9jayBvZmZzZXQgKi8KKyNkZWZpbmUgRVhUX1NCX09GRgkJCQkweDQwMAorLyogc3VwcGVyIGJsb2NrIG9mZnNldCBpbiBrQiAqLworI2RlZmluZSBFWFRfU0JfS0JPRkYJCQkJKEVYVF9TQl9PRkYgPj4gMTApCisvKiBtYWdpYyBzdHJpbmcgb2Zmc2V0IHdpdGhpbiBzdXBlciBibG9jayAqLworI2RlZmluZSBFWFRfTUFHX09GRgkJCQkweDM4CisKKworCisvKiBmb3Igc19mbGFncyAqLworI2RlZmluZSBFWFQyX0ZMQUdTX1RFU1RfRklMRVNZUwkJMHgwMDA0CisKKy8qIGZvciBzX2ZlYXR1cmVfY29tcGF0ICovCisjZGVmaW5lIEVYVDNfRkVBVFVSRV9DT01QQVRfSEFTX0pPVVJOQUwJCTB4MDAwNAorCisvKiBmb3Igc19mZWF0dXJlX3JvX2NvbXBhdCAqLworI2RlZmluZSBFWFQyX0ZFQVRVUkVfUk9fQ09NUEFUX1NQQVJTRV9TVVBFUgkweDAwMDEKKyNkZWZpbmUgRVhUMl9GRUFUVVJFX1JPX0NPTVBBVF9MQVJHRV9GSUxFCTB4MDAwMgorI2RlZmluZSBFWFQyX0ZFQVRVUkVfUk9fQ09NUEFUX0JUUkVFX0RJUgkweDAwMDQKKyNkZWZpbmUgRVhUNF9GRUFUVVJFX1JPX0NPTVBBVF9IVUdFX0ZJTEUJMHgwMDA4CisjZGVmaW5lIEVYVDRfRkVBVFVSRV9ST19DT01QQVRfR0RUX0NTVU0JCTB4MDAxMAorI2RlZmluZSBFWFQ0X0ZFQVRVUkVfUk9fQ09NUEFUX0RJUl9OTElOSwkweDAwMjAKKyNkZWZpbmUgRVhUNF9GRUFUVVJFX1JPX0NPTVBBVF9FWFRSQV9JU0laRQkweDAwNDAKKworLyogZm9yIHNfZmVhdHVyZV9pbmNvbXBhdCAqLworI2RlZmluZSBFWFQyX0ZFQVRVUkVfSU5DT01QQVRfRklMRVRZUEUJCTB4MDAwMgorI2RlZmluZSBFWFQzX0ZFQVRVUkVfSU5DT01QQVRfUkVDT1ZFUgkJMHgwMDA0CisjZGVmaW5lIEVYVDNfRkVBVFVSRV9JTkNPTVBBVF9KT1VSTkFMX0RFVgkweDAwMDgKKyNkZWZpbmUgRVhUMl9GRUFUVVJFX0lOQ09NUEFUX01FVEFfQkcJCTB4MDAxMAorI2RlZmluZSBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfRVhURU5UUwkJMHgwMDQwIC8qIGV4dGVudHMgc3VwcG9ydCAqLworI2RlZmluZSBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfNjRCSVQJCTB4MDA4MAorI2RlZmluZSBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfTU1QCQkweDAxMDAKKyNkZWZpbmUgRVhUNF9GRUFUVVJFX0lOQ09NUEFUX0ZMRVhfQkcJCTB4MDIwMAorCisjZGVmaW5lIEVYVDJfRkVBVFVSRV9ST19DT01QQVRfU1VQUAkoRVhUMl9GRUFUVVJFX1JPX0NPTVBBVF9TUEFSU0VfU1VQRVJ8IFwKKwkJCQkJIEVYVDJfRkVBVFVSRV9ST19DT01QQVRfTEFSR0VfRklMRXwgXAorCQkJCQkgRVhUMl9GRUFUVVJFX1JPX0NPTVBBVF9CVFJFRV9ESVIpCisjZGVmaW5lIEVYVDJfRkVBVFVSRV9JTkNPTVBBVF9TVVBQCShFWFQyX0ZFQVRVUkVfSU5DT01QQVRfRklMRVRZUEV8IFwKKwkJCQkJIEVYVDJfRkVBVFVSRV9JTkNPTVBBVF9NRVRBX0JHKQorI2RlZmluZSBFWFQyX0ZFQVRVUkVfSU5DT01QQVRfVU5TVVBQT1JURUQJfkVYVDJfRkVBVFVSRV9JTkNPTVBBVF9TVVBQCisjZGVmaW5lIEVYVDJfRkVBVFVSRV9ST19DT01QQVRfVU5TVVBQT1JURUQJfkVYVDJfRkVBVFVSRV9ST19DT01QQVRfU1VQUAorCisjZGVmaW5lIEVYVDNfRkVBVFVSRV9ST19DT01QQVRfU1VQUAkoRVhUMl9GRUFUVVJFX1JPX0NPTVBBVF9TUEFSU0VfU1VQRVJ8IFwKKwkJCQkJIEVYVDJfRkVBVFVSRV9ST19DT01QQVRfTEFSR0VfRklMRXwgXAorCQkJCQkgRVhUMl9GRUFUVVJFX1JPX0NPTVBBVF9CVFJFRV9ESVIpCisjZGVmaW5lIEVYVDNfRkVBVFVSRV9JTkNPTVBBVF9TVVBQCShFWFQyX0ZFQVRVUkVfSU5DT01QQVRfRklMRVRZUEV8IFwKKwkJCQkJIEVYVDNfRkVBVFVSRV9JTkNPTVBBVF9SRUNPVkVSfCBcCisJCQkJCSBFWFQyX0ZFQVRVUkVfSU5DT01QQVRfTUVUQV9CRykKKyNkZWZpbmUgRVhUM19GRUFUVVJFX0lOQ09NUEFUX1VOU1VQUE9SVEVECX5FWFQzX0ZFQVRVUkVfSU5DT01QQVRfU1VQUAorI2RlZmluZSBFWFQzX0ZFQVRVUkVfUk9fQ09NUEFUX1VOU1VQUE9SVEVECX5FWFQzX0ZFQVRVUkVfUk9fQ09NUEFUX1NVUFAKKworCisjaWZkZWYgRlVDSworCisvKiBmb3Igc19mbGFncyAqLworI2RlZmluZSBFWFQyX0ZMQUdTX1RFU1RfRklMRVNZUwkJCTB4MDAwNAorCisvKiBmb3Igc19mZWF0dXJlX2NvbXBhdCAqLworI2RlZmluZSBFWFQzX0ZFQVRVUkVfQ09NUEFUX0hBU19KT1VSTkFMCQkweDAwMDQKKworLyogZm9yIHNfZmVhdHVyZV9yb19jb21wYXQgKi8KKyNkZWZpbmUgRVhUMl9GRUFUVVJFX1JPX0NPTVBBVF9TUEFSU0VfU1VQRVIJMHgwMDAxCisjZGVmaW5lIEVYVDJfRkVBVFVSRV9ST19DT01QQVRfTEFSR0VfRklMRQkweDAwMDIKKyNkZWZpbmUgRVhUMl9GRUFUVVJFX1JPX0NPTVBBVF9CVFJFRV9ESVIJMHgwMDA0CisjZGVmaW5lIEVYVDRfRkVBVFVSRV9ST19DT01QQVRfSFVHRV9GSUxFCTB4MDAwOAorI2RlZmluZSBFWFQ0X0ZFQVRVUkVfUk9fQ09NUEFUX0dEVF9DU1VNCQkweDAwMTAKKyNkZWZpbmUgRVhUNF9GRUFUVVJFX1JPX0NPTVBBVF9ESVJfTkxJTksJMHgwMDIwCisjZGVmaW5lIEVYVDRfRkVBVFVSRV9ST19DT01QQVRfRVhUUkFfSVNJWkUJMHgwMDQwCisKKy8qIGZvciBzX2ZlYXR1cmVfaW5jb21wYXQgKi8KKyNkZWZpbmUgRVhUMl9GRUFUVVJFX0lOQ09NUEFUX0ZJTEVUWVBFCQkweDAwMDIKKyNkZWZpbmUgRVhUM19GRUFUVVJFX0lOQ09NUEFUX1JFQ09WRVIJCTB4MDAwNAorI2RlZmluZSBFWFQzX0ZFQVRVUkVfSU5DT01QQVRfSk9VUk5BTF9ERVYJMHgwMDA4CisjZGVmaW5lIEVYVDJfRkVBVFVSRV9JTkNPTVBBVF9NRVRBX0JHCQkweDAwMTAKKyNkZWZpbmUgRVhUNF9GRUFUVVJFX0lOQ09NUEFUX0VYVEVOVFMJCTB4MDA0MCAvKiBleHRlbnRzIHN1cHBvcnQgKi8KKyNkZWZpbmUgRVhUNF9GRUFUVVJFX0lOQ09NUEFUXzY0QklUCQkweDAwODAKKyNkZWZpbmUgRVhUNF9GRUFUVVJFX0lOQ09NUEFUX01NUAkJMHgwMTAwCisjZGVmaW5lIEVYVDRfRkVBVFVSRV9JTkNPTVBBVF9GTEVYX0JHCQkweDAyMDAKKworI2RlZmluZSBFWFQyX0ZFQVRVUkVfUk9fQ09NUEFUX1NVUFAJKEVYVDJfRkVBVFVSRV9ST19DT01QQVRfU1BBUlNFX1NVUEVSfCBcCisJCQkJCSBFWFQyX0ZFQVRVUkVfUk9fQ09NUEFUX0xBUkdFX0ZJTEV8IFwKKwkJCQkJIEVYVDJfRkVBVFVSRV9ST19DT01QQVRfQlRSRUVfRElSKQorI2RlZmluZSBFWFQyX0ZFQVRVUkVfSU5DT01QQVRfU1VQUAkoRVhUMl9GRUFUVVJFX0lOQ09NUEFUX0ZJTEVUWVBFfCBcCisJCQkJCSBFWFQyX0ZFQVRVUkVfSU5DT01QQVRfTUVUQV9CRykKKyNkZWZpbmUgRVhUMl9GRUFUVVJFX0lOQ09NUEFUX1VOU1VQUE9SVEVECX5FWFQyX0ZFQVRVUkVfSU5DT01QQVRfU1VQUAorI2RlZmluZSBFWFQyX0ZFQVRVUkVfUk9fQ09NUEFUX1VOU1VQUE9SVEVECX5FWFQyX0ZFQVRVUkVfUk9fQ09NUEFUX1NVUFAKKworI2RlZmluZSBFWFQzX0ZFQVRVUkVfUk9fQ09NUEFUX1NVUFAJKEVYVDJfRkVBVFVSRV9ST19DT01QQVRfU1BBUlNFX1NVUEVSfCBcCisJCQkJCSBFWFQyX0ZFQVRVUkVfUk9fQ09NUEFUX0xBUkdFX0ZJTEV8IFwKKwkJCQkJIEVYVDJfRkVBVFVSRV9ST19DT01QQVRfQlRSRUVfRElSKQorI2RlZmluZSBFWFQzX0ZFQVRVUkVfSU5DT01QQVRfU1VQUAkoRVhUMl9GRUFUVVJFX0lOQ09NUEFUX0ZJTEVUWVBFfCBcCisJCQkJCSBFWFQzX0ZFQVRVUkVfSU5DT01QQVRfUkVDT1ZFUnwgXAorCQkJCQkgRVhUMl9GRUFUVVJFX0lOQ09NUEFUX01FVEFfQkcpCisjZGVmaW5lIEVYVDNfRkVBVFVSRV9JTkNPTVBBVF9VTlNVUFBPUlRFRAkofkVYVDNfRkVBVFVSRV9JTkNPTVBBVF9TVVBQKQorI2RlZmluZSBFWFQzX0ZFQVRVUkVfUk9fQ09NUEFUX1VOU1VQUE9SVEVECSh+RVhUM19GRUFUVVJFX1JPX0NPTVBBVF9TVVBQKQorCisjZW5kaWYKKworLyoKKyAqIENoZWNrIHRvIHNlZSBpZiBhIGZpbGVzeXN0ZW0gaXMgaW4gL3Byb2MvZmlsZXN5c3RlbXMuCisgKiBSZXR1cm5zIDEgaWYgZm91bmQsIDAgaWYgbm90CisgKi8KK3N0YXRpYyBpbnQgZnNfcHJvY19jaGVjayhjb25zdCBjaGFyICpmc19uYW1lKQoreworCUZJTEUJKmY7CisJY2hhcglidWZbODBdLCAqY3AsICp0OworCisJZiA9IGZvcGVuKCIvcHJvYy9maWxlc3lzdGVtcyIsICJyIik7CisJaWYgKCFmKQorCQlyZXR1cm4gMDsKKwl3aGlsZSAoIWZlb2YoZikpIHsKKwkJaWYgKCFmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmKSkKKwkJCWJyZWFrOworCQljcCA9IGJ1ZjsKKwkJaWYgKCFpc3NwYWNlKCpjcCkpIHsKKwkJCXdoaWxlICgqY3AgJiYgIWlzc3BhY2UoKmNwKSkKKwkJCQljcCsrOworCQl9CisJCXdoaWxlICgqY3AgJiYgaXNzcGFjZSgqY3ApKQorCQkJY3ArKzsKKwkJaWYgKCh0ID0gc3RyY2hyKGNwLCAnXG4nKSkgIT0gTlVMTCkKKwkJCSp0ID0gMDsKKwkJaWYgKCh0ID0gc3RyY2hyKGNwLCAnXHQnKSkgIT0gTlVMTCkKKwkJCSp0ID0gMDsKKwkJaWYgKCh0ID0gc3RyY2hyKGNwLCAnICcpKSAhPSBOVUxMKQorCQkJKnQgPSAwOworCQlpZiAoIXN0cmNtcChmc19uYW1lLCBjcCkpIHsKKwkJCWZjbG9zZShmKTsKKwkJCXJldHVybiAxOworCQl9CisJfQorCWZjbG9zZShmKTsKKwlyZXR1cm4gKDApOworfQorCisvKgorICogQ2hlY2sgdG8gc2VlIGlmIGEgZmlsZXN5c3RlbSBpcyBhdmFpbGFibGUgYXMgYSBtb2R1bGUKKyAqIFJldHVybnMgMSBpZiBmb3VuZCwgMCBpZiBub3QKKyAqLworc3RhdGljIGludCBjaGVja19mb3JfbW9kdWxlcyhjb25zdCBjaGFyICpmc19uYW1lKQoreworI2lmZGVmIF9fbGludXhfXworCXN0cnVjdCB1dHNuYW1lCXV0czsKKwlGSUxFCQkqZjsKKwljaGFyCQlidWZbMTAyNF0sICpjcDsKKwlpbnQJCW5hbWVzejsKKworCWlmICh1bmFtZSgmdXRzKSkKKwkJcmV0dXJuIDA7CisJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIi9saWIvbW9kdWxlcy8lcy9tb2R1bGVzLmRlcCIsIHV0cy5yZWxlYXNlKTsKKworCWYgPSBmb3BlbihidWYsICJyIik7CisJaWYgKCFmKQorCQlyZXR1cm4gMDsKKworCW5hbWVzeiA9IHN0cmxlbihmc19uYW1lKTsKKworCXdoaWxlICghZmVvZihmKSkgeworCQlpZiAoIWZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGYpKQorCQkJYnJlYWs7CisJCWlmICgoY3AgPSBzdHJjaHIoYnVmLCAnOicpKSAhPSBOVUxMKQorCQkJKmNwID0gMDsKKwkJZWxzZQorCQkJY29udGludWU7CisJCWlmICgoY3AgPSBzdHJyY2hyKGJ1ZiwgJy8nKSkgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCQljcCsrOworCisJCWlmICghc3RybmNtcChjcCwgZnNfbmFtZSwgbmFtZXN6KSAmJgorCQkgICAgKCFzdHJjbXAoY3AgKyBuYW1lc3osICIua28iKSB8fAorCQkgICAgICFzdHJjbXAoY3AgKyBuYW1lc3osICIua28uZ3oiKSkpIHsKKwkJCWZjbG9zZShmKTsKKwkJCXJldHVybiAxOworCQl9CisJfQorCWZjbG9zZShmKTsKKyNlbmRpZiAvKiBfX2xpbnV4X18gKi8KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFN0YXJ0aW5nIGluIDIuNi4yOSwgZXh0NCBjYW4gYmUgdXNlZCB0byBzdXBwb3J0IGZpbGVzeXN0ZW1zCisgKiB3aXRob3V0IGEgam91cm5hbC4KKyAqLworI2RlZmluZSBFWFQ0X1NVUFBPUlRTX0VYVDIgS0VSTkVMX1ZFUlNJT04oMiwgNiwgMjkpCisKK3N0YXRpYyBpbnQgc3lzdGVtX3N1cHBvcnRzX2V4dDIodm9pZCkKK3sKKwlzdGF0aWMgdGltZV90CWxhc3RfY2hlY2sgPSAwOworCXN0YXRpYyBpbnQJcmV0ID0gLTE7CisJdGltZV90CQlub3cgPSB0aW1lKDApOworCisJaWYgKHJldCAhPSAtMSB8fCAobm93IC0gbGFzdF9jaGVjaykgPCA1KQorCQlyZXR1cm4gcmV0OworCWxhc3RfY2hlY2sgPSBub3c7CisJcmV0ID0gKGZzX3Byb2NfY2hlY2soImV4dDIiKSB8fCBjaGVja19mb3JfbW9kdWxlcygiZXh0MiIpKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHN5c3RlbV9zdXBwb3J0c19leHQ0KHZvaWQpCit7CisJc3RhdGljIHRpbWVfdAlsYXN0X2NoZWNrID0gMDsKKwlzdGF0aWMgaW50CXJldCA9IC0xOworCXRpbWVfdAkJbm93ID0gdGltZSgwKTsKKworCWlmIChyZXQgIT0gLTEgfHwgKG5vdyAtIGxhc3RfY2hlY2spIDwgNSkKKwkJcmV0dXJuIHJldDsKKwlsYXN0X2NoZWNrID0gbm93OworCXJldCA9IChmc19wcm9jX2NoZWNrKCJleHQ0IikgfHwgY2hlY2tfZm9yX21vZHVsZXMoImV4dDQiKSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBzeXN0ZW1fc3VwcG9ydHNfZXh0NGRldih2b2lkKQoreworCXN0YXRpYyB0aW1lX3QJbGFzdF9jaGVjayA9IDA7CisJc3RhdGljIGludAlyZXQgPSAtMTsKKwl0aW1lX3QJCW5vdyA9IHRpbWUoMCk7CisKKwlpZiAocmV0ICE9IC0xIHx8IChub3cgLSBsYXN0X2NoZWNrKSA8IDUpCisJCXJldHVybiByZXQ7CisJbGFzdF9jaGVjayA9IG5vdzsKKwlyZXQgPSAoZnNfcHJvY19jaGVjaygiZXh0NGRldiIpIHx8IGNoZWNrX2Zvcl9tb2R1bGVzKCJleHQ0ZGV2IikpOworCXJldHVybiByZXQ7Cit9CisvKgorICogcmVhZHMgc3VwZXJibG9jayBhbmQgcmV0dXJuczoKKyAqCWZjID0gZmVhdHVyZV9jb21wYXQKKyAqCWZpID0gZmVhdHVyZV9pbmNvbXBhdAorICoJZnJjID0gZmVhdHVyZV9yb19jb21wYXQKKyAqLworc3RhdGljIHN0cnVjdCBleHQyX3N1cGVyX2Jsb2NrICpleHRfZ2V0X3N1cGVyKAorCQlibGtpZF9wcm9iZSBwciwgdWludDMyX3QgKmZjLCB1aW50MzJfdCAqZmksIHVpbnQzMl90ICpmcmMpCit7CisJc3RydWN0IGV4dDJfc3VwZXJfYmxvY2sgKmVzOworCisJZXMgPSAoc3RydWN0IGV4dDJfc3VwZXJfYmxvY2sgKikKKwkJCWJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsIEVYVF9TQl9PRkYsIDB4MjAwKTsKKwlpZiAoIWVzKQorCQlyZXR1cm4gTlVMTDsKKwlpZiAoZmMpCisJCSpmYyA9IGxlMzJfdG9fY3B1KGVzLT5zX2ZlYXR1cmVfY29tcGF0KTsKKwlpZiAoZmkpCisJCSpmaSA9IGxlMzJfdG9fY3B1KGVzLT5zX2ZlYXR1cmVfaW5jb21wYXQpOworCWlmIChmcmMpCisJCSpmcmMgPSBsZTMyX3RvX2NwdShlcy0+c19mZWF0dXJlX3JvX2NvbXBhdCk7CisKKwlyZXR1cm4gZXM7Cit9CisKK3N0YXRpYyB2b2lkIGV4dF9nZXRfaW5mbyhibGtpZF9wcm9iZSBwciwgaW50IHZlciwgc3RydWN0IGV4dDJfc3VwZXJfYmxvY2sgKmVzKQoreworCXN0cnVjdCBibGtpZF9jaGFpbiAqY2huID0gYmxraWRfcHJvYmVfZ2V0X2NoYWluKHByKTsKKworCURCRyhERUJVR19QUk9CRSwgcHJpbnRmKCJleHQyX3NiLmNvbXBhdCA9ICUwOFg6JTA4WDolMDhYXG4iLAorCQkgICBsZTMyX3RvX2NwdShlcy0+c19mZWF0dXJlX2NvbXBhdCksCisJCSAgIGxlMzJfdG9fY3B1KGVzLT5zX2ZlYXR1cmVfaW5jb21wYXQpLAorCQkgICBsZTMyX3RvX2NwdShlcy0+c19mZWF0dXJlX3JvX2NvbXBhdCkpKTsKKworCWlmIChzdHJsZW4oZXMtPnNfdm9sdW1lX25hbWUpKQorCQlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsICh1bnNpZ25lZCBjaGFyICopIGVzLT5zX3ZvbHVtZV9uYW1lLAorCQkJCQlzaXplb2YoZXMtPnNfdm9sdW1lX25hbWUpKTsKKwlibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgZXMtPnNfdXVpZCk7CisKKwlpZiAobGUzMl90b19jcHUoZXMtPnNfZmVhdHVyZV9jb21wYXQpICYgRVhUM19GRUFUVVJFX0NPTVBBVF9IQVNfSk9VUk5BTCkKKwkJYmxraWRfcHJvYmVfc2V0X3V1aWRfYXMocHIsIGVzLT5zX2pvdXJuYWxfdXVpZCwgIkVYVF9KT1VSTkFMIik7CisKKwlpZiAodmVyICE9IDIgJiYgKGNobi0+ZmxhZ3MgJiBCTEtJRF9TVUJMS1NfU0VDVFlQRSkgJiYKKwkgICAgKChsZTMyX3RvX2NwdShlcy0+c19mZWF0dXJlX2luY29tcGF0KSAmIEVYVDJfRkVBVFVSRV9JTkNPTVBBVF9VTlNVUFBPUlRFRCkgPT0gMCkpCisJCWJsa2lkX3Byb2JlX3NldF92YWx1ZShwciwgIlNFQ19UWVBFIiwKKwkJCQkodW5zaWduZWQgY2hhciAqKSAiZXh0MiIsCisJCQkJc2l6ZW9mKCJleHQyIikpOworCisJYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJXUuJXUiLAorCQlsZTMyX3RvX2NwdShlcy0+c19yZXZfbGV2ZWwpLAorCQlsZTE2X3RvX2NwdShlcy0+c19taW5vcl9yZXZfbGV2ZWwpKTsKK30KKworCitzdGF0aWMgaW50IHByb2JlX2piZChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IGV4dDJfc3VwZXJfYmxvY2sgKmVzOworCXVpbnQzMl90IGZpOworCisJZXMgPSBleHRfZ2V0X3N1cGVyKHByLCBOVUxMLCAmZmksIE5VTEwpOworCWlmICghZXMpCisJCXJldHVybiAtQkxLSURfRVJSX1BBUkFNOworCWlmICghKGZpICYgRVhUM19GRUFUVVJFX0lOQ09NUEFUX0pPVVJOQUxfREVWKSkKKwkJcmV0dXJuIC1CTEtJRF9FUlJfUEFSQU07CisKKwlleHRfZ2V0X2luZm8ocHIsIDIsIGVzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwcm9iZV9leHQyKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgZXh0Ml9zdXBlcl9ibG9jayAqZXM7CisJdWludDMyX3QgZmMsIGZyYywgZmk7CisKKwllcyA9IGV4dF9nZXRfc3VwZXIocHIsICZmYywgJmZpLCAmZnJjKTsKKwlpZiAoIWVzKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworCS8qIERpc3Rpbmd1aXNoIGJldHdlZW4gZXh0MyBhbmQgZXh0MiAqLworCWlmIChmYyAmIEVYVDNfRkVBVFVSRV9DT01QQVRfSEFTX0pPVVJOQUwpCisJCXJldHVybiAtQkxLSURfRVJSX1BBUkFNOworCisJLyogQW55IGZlYXR1cmVzIHdoaWNoIGV4dDIgZG9lc24ndCB1bmRlcnN0YW5kICovCisJaWYgKChmcmMgJiBFWFQyX0ZFQVRVUkVfUk9fQ09NUEFUX1VOU1VQUE9SVEVEKSB8fAorCSAgICAoZmkgICYgRVhUMl9GRUFUVVJFX0lOQ09NUEFUX1VOU1VQUE9SVEVEKSkKKwkJcmV0dXJuIC1CTEtJRF9FUlJfUEFSQU07CisKKwkvKgorCSAqIElmIGV4dDIgaXMgbm90IHByZXNlbnQsIGJ1dCBleHQ0IG9yIGV4dDRkZXYgYXJlLCB0aGVuCisJICogZGlzY2xhaW0gd2UgYXJlIGV4dDIKKwkgKi8KKwlpZiAoIXN5c3RlbV9zdXBwb3J0c19leHQyKCkgJiYKKwkgICAgKHN5c3RlbV9zdXBwb3J0c19leHQ0KCkgfHwgc3lzdGVtX3N1cHBvcnRzX2V4dDRkZXYoKSkgJiYKKwkgICAgZ2V0X2xpbnV4X3ZlcnNpb24oKSA+PSBFWFQ0X1NVUFBPUlRTX0VYVDIpCisJCXJldHVybiAtQkxLSURfRVJSX1BBUkFNOworCisJZXh0X2dldF9pbmZvKHByLCAyLCBlcyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHJvYmVfZXh0MyhibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IGV4dDJfc3VwZXJfYmxvY2sgKmVzOworCXVpbnQzMl90IGZjLCBmcmMsIGZpOworCisJZXMgPSBleHRfZ2V0X3N1cGVyKHByLCAmZmMsICZmaSwgJmZyYyk7CisJaWYgKCFlcykKKwkJcmV0dXJuIC1CTEtJRF9FUlJfUEFSQU07CisKKwkvKiBleHQzIHJlcXVpcmVzIGpvdXJuYWwgKi8KKwlpZiAoIShmYyAmIEVYVDNfRkVBVFVSRV9DT01QQVRfSEFTX0pPVVJOQUwpKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworCS8qIEFueSBmZWF0dXJlcyB3aGljaCBleHQzIGRvZXNuJ3QgdW5kZXJzdGFuZCAqLworCWlmICgoZnJjICYgRVhUM19GRUFUVVJFX1JPX0NPTVBBVF9VTlNVUFBPUlRFRCkgfHwKKwkgICAgKGZpICAmIEVYVDNfRkVBVFVSRV9JTkNPTVBBVF9VTlNVUFBPUlRFRCkpCisJCXJldHVybiAtQkxLSURfRVJSX1BBUkFNOworCisJZXh0X2dldF9pbmZvKHByLCAzLCBlcyk7CisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGludCBwcm9iZV9leHQ0ZGV2KGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgZXh0Ml9zdXBlcl9ibG9jayAqZXM7CisJdWludDMyX3QgZmMsIGZyYywgZmk7CisKKwllcyA9IGV4dF9nZXRfc3VwZXIocHIsICZmYywgJmZpLCAmZnJjKTsKKwlpZiAoIWVzKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworCS8qIERpc3Rpbmd1aXNoIGZyb20gamJkICovCisJaWYgKGZpICYgRVhUM19GRUFUVVJFX0lOQ09NUEFUX0pPVVJOQUxfREVWKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworCS8qCisJICogSWYgdGhlIGZpbGVzeXN0ZW0gZG9lcyBub3QgaGF2ZSBhIGpvdXJuYWwgYW5kIGV4dDIgYW5kIGV4dDQKKwkgKiBpcyBub3QgcHJlc2VudCwgdGhlbiBmb3JjZSB0aGlzIHRvIGJlIGRldGVjdGVkIGFzIGFuCisJICogZXh0NGRldiBmaWxlc3lzdGVtLgorCSAqLworCWlmICghKGZjICYgRVhUM19GRUFUVVJFX0NPTVBBVF9IQVNfSk9VUk5BTCkgJiYKKwkgICAgIXN5c3RlbV9zdXBwb3J0c19leHQyKCkgJiYgIXN5c3RlbV9zdXBwb3J0c19leHQ0KCkgJiYKKwkgICAgc3lzdGVtX3N1cHBvcnRzX2V4dDRkZXYoKSAmJgorCSAgICBnZXRfbGludXhfdmVyc2lvbigpID49IEVYVDRfU1VQUE9SVFNfRVhUMikKKwkJZ290byBmb3JjZV9leHQ0ZGV2OworCisJLyoKKwkgKiBJZiB0aGUgZmlsZXN5c3RlbSBpcyBtYXJrZWQgYXMgT0sgZm9yIHVzZSBieSBpbi1kZXZlbG9wbWVudAorCSAqIGZpbGVzeXN0ZW0gY29kZSwgYnV0IGV4dDRkZXYgaXMgbm90IHN1cHBvcnRlZCwgYW5kIGV4dDQgaXMsCisJICogdGhlbiBkb24ndCBjYWxsIG91cnNlbHZlcyBleHQ0ZGV2LCBzaW5jZSB3ZSBzaG91bGQgYmUKKwkgKiBkZXRlY3RlZCBhcyBleHQ0IGluIHRoYXQgY2FzZS4KKwkgKgorCSAqIElmIHRoZSBmaWxlc3lzdGVtIGlzIG1hcmtlZCBhcyBpbiB1c2UgYnkgcHJvZHVjdGlvbgorCSAqIGZpbGVzeXN0ZW0sIHRoZW4gaXQgY2FuIG9ubHkgYmUgdXNlZCBieSBleHQ0IGFuZCBOT1QgYnkKKwkgKiBleHQ0ZGV2LCBzbyBhbHdheXMgZGlzY2xhaW0gd2UgYXJlIGV4dDRkZXYgaW4gdGhhdCBjYXNlLgorCSAqLworCWlmIChsZTMyX3RvX2NwdShlcy0+c19mbGFncykgJiBFWFQyX0ZMQUdTX1RFU1RfRklMRVNZUykgeworCQlpZiAoIXN5c3RlbV9zdXBwb3J0c19leHQ0ZGV2KCkgJiYgc3lzdGVtX3N1cHBvcnRzX2V4dDQoKSkKKwkJCXJldHVybiAtQkxLSURfRVJSX1BBUkFNOworCX0gZWxzZQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworZm9yY2VfZXh0NGRldjoKKwlleHRfZ2V0X2luZm8ocHIsIDQsIGVzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwcm9iZV9leHQ0KGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgZXh0Ml9zdXBlcl9ibG9jayAqZXM7CisJdWludDMyX3QgZmMsIGZyYywgZmk7CisKKwllcyA9IGV4dF9nZXRfc3VwZXIocHIsICZmYywgJmZpLCAmZnJjKTsKKwlpZiAoIWVzKQorCQlyZXR1cm4gLTE7CisKKwkvKiBEaXN0aW5ndWlzaCBmcm9tIGpiZCAqLworCWlmIChmaSAmIEVYVDNfRkVBVFVSRV9JTkNPTVBBVF9KT1VSTkFMX0RFVikKKwkJcmV0dXJuIC1CTEtJRF9FUlJfUEFSQU07CisKKwkvKgorCSAqIElmIHRoZSBmaWxlc3lzdGVtIGRvZXMgbm90IGhhdmUgYSBqb3VybmFsIGFuZCBleHQyIGlzIG5vdAorCSAqIHByZXNlbnQsIHRoZW4gZm9yY2UgdGhpcyB0byBiZSBkZXRlY3RlZCBhcyBhbiBleHQyCisJICogZmlsZXN5c3RlbS4KKwkgKi8KKwlpZiAoIShmYyAmIEVYVDNfRkVBVFVSRV9DT01QQVRfSEFTX0pPVVJOQUwpICYmCisJICAgICFzeXN0ZW1fc3VwcG9ydHNfZXh0MigpICYmIHN5c3RlbV9zdXBwb3J0c19leHQ0KCkgJiYKKwkgICAgZ2V0X2xpbnV4X3ZlcnNpb24oKSA+PSBFWFQ0X1NVUFBPUlRTX0VYVDIpCisJCWdvdG8gZm9yY2VfZXh0NDsKKworCS8qIEV4dDQgaGFzIGF0IGxlYXN0IG9uZSBmZWF0dXJlIHdoaWNoIGV4dDMgZG9lc24ndCB1bmRlcnN0YW5kICovCisJaWYgKCEoZnJjICYgRVhUM19GRUFUVVJFX1JPX0NPTVBBVF9VTlNVUFBPUlRFRCkgJiYKKwkgICAgIShmaSAgJiBFWFQzX0ZFQVRVUkVfSU5DT01QQVRfVU5TVVBQT1JURUQpKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworZm9yY2VfZXh0NDoKKwkvKgorCSAqIElmIHRoZSBmaWxlc3lzdGVtIGlzIGEgT0sgZm9yIHVzZSBieSBpbi1kZXZlbG9wbWVudAorCSAqIGZpbGVzeXN0ZW0gY29kZSwgYW5kIGV4dDRkZXYgaXMgc3VwcG9ydGVkIG9yIGV4dDQgaXMgbm90CisJICogc3VwcG9ydGVkLCB0aGVuIGRvbid0IGNhbGwgb3Vyc2VsdmVzIGV4dDQsIHNvIHdlIGNhbiByZWRvCisJICogdGhlIGRldGVjdGlvbiBhbmQgbWFyayB0aGUgZmlsZXN5c3RlbSBhcyBleHQ0ZGV2LgorCSAqCisJICogSWYgdGhlIGZpbGVzeXN0ZW0gaXMgbWFya2VkIGFzIGluIHVzZSBieSBwcm9kdWN0aW9uCisJICogZmlsZXN5c3RlbSwgdGhlbiBpdCBjYW4gb25seSBiZSB1c2VkIGJ5IGV4dDQgYW5kIE5PVCBieQorCSAqIGV4dDRkZXYuCisJICovCisJaWYgKGxlMzJfdG9fY3B1KGVzLT5zX2ZsYWdzKSAmIEVYVDJfRkxBR1NfVEVTVF9GSUxFU1lTKSB7CisJCWlmIChzeXN0ZW1fc3VwcG9ydHNfZXh0NGRldigpIHx8ICFzeXN0ZW1fc3VwcG9ydHNfZXh0NCgpKQorCQkJcmV0dXJuIC1CTEtJRF9FUlJfUEFSQU07CisJfQorCisJZXh0X2dldF9pbmZvKHByLCA0LCBlcyk7CisJcmV0dXJuIDA7Cit9CisKKyNkZWZpbmUgQkxLSURfRVhUX01BR0lDUyBcCisJeyBcCisJCXsJIFwKKwkJCS5tYWdpYyA9IEVYVF9TQl9NQUdJQywgXAorCQkJLmxlbiA9IHNpemVvZihFWFRfU0JfTUFHSUMpIC0gMSwgXAorCQkJLmtib2ZmID0gRVhUX1NCX0tCT0ZGLCBcCisJCQkuc2JvZmYgPSBFWFRfTUFHX09GRiBcCisJCX0sIFwKKwkJeyBOVUxMIH0gXAorCX0KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBqYmRfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiamJkIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfT1RIRVIsCisJLnByb2JlZnVuYwk9IHByb2JlX2piZCwKKwkubWFnaWNzCQk9IEJMS0lEX0VYVF9NQUdJQ1MKK307CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gZXh0Ml9pZGluZm8gPQoreworCS5uYW1lCQk9ICJleHQyIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfZXh0MiwKKwkubWFnaWNzCQk9IEJMS0lEX0VYVF9NQUdJQ1MKK307CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gZXh0M19pZGluZm8gPQoreworCS5uYW1lCQk9ICJleHQzIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfZXh0MywKKwkubWFnaWNzCQk9IEJMS0lEX0VYVF9NQUdJQ1MKK307CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gZXh0NF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJleHQ0IiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfZXh0NCwKKwkubWFnaWNzCQk9IEJMS0lEX0VYVF9NQUdJQ1MKK307CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gZXh0NGRldl9pZGluZm8gPQoreworCS5uYW1lCQk9ICJleHQ0ZGV2IiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfZXh0NGRldiwKKwkubWFnaWNzCQk9IEJMS0lEX0VYVF9NQUdJQ1MKK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvZ2ZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2dmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyYzAxNjMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2dmcy5jCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworLyogQ29tbW9uIGdmcy9nZnMyIGNvbnN0YW50czogKi8KKyNkZWZpbmUgR0ZTX0xPQ0tOQU1FX0xFTiAgICAgICAgNjQKKworLyogZ2ZzMSBjb25zdGFudHM6ICovCisjZGVmaW5lIEdGU19GT1JNQVRfRlMgICAgICAgICAgIDEzMDkKKyNkZWZpbmUgR0ZTX0ZPUk1BVF9NVUxUSSAgICAgICAgMTQwMQorLyogZ2ZzMiBjb25zdGFudHM6ICovCisjZGVmaW5lIEdGUzJfRk9STUFUX0ZTICAgICAgICAgIDE4MDEKKyNkZWZpbmUgR0ZTMl9GT1JNQVRfTVVMVEkgICAgICAgMTkwMAorCitzdHJ1Y3QgZ2ZzMl9tZXRhX2hlYWRlciB7CisJdWludDMyX3QgbWhfbWFnaWM7CisJdWludDMyX3QgbWhfdHlwZTsKKwl1aW50NjRfdCBfX3BhZDA7ICAgICAgICAgIC8qIFdhcyBnZW5lcmF0aW9uIG51bWJlciBpbiBnZnMxICovCisJdWludDMyX3QgbWhfZm9ybWF0OworCXVpbnQzMl90IF9fcGFkMTsgICAgICAgICAgLyogV2FzIGluY2FybmF0aW9uIG51bWJlciBpbiBnZnMxICovCit9OworCitzdHJ1Y3QgZ2ZzMl9pbnVtIHsKKwl1aW50NjRfdCBub19mb3JtYWxfaW5vOworCXVpbnQ2NF90IG5vX2FkZHI7Cit9OworCitzdHJ1Y3QgZ2ZzMl9zYiB7CisJc3RydWN0IGdmczJfbWV0YV9oZWFkZXIgc2JfaGVhZGVyOworCisJdWludDMyX3Qgc2JfZnNfZm9ybWF0OworCXVpbnQzMl90IHNiX211bHRpaG9zdF9mb3JtYXQ7CisJdWludDMyX3QgIF9fcGFkMDsgIC8qIFdhcyBzdXBlcmJsb2NrIGZsYWdzIGluIGdmczEgKi8KKworCXVpbnQzMl90IHNiX2JzaXplOworCXVpbnQzMl90IHNiX2JzaXplX3NoaWZ0OworCXVpbnQzMl90IF9fcGFkMTsgICAvKiBXYXMgam91cm5hbCBzZWdtZW50IHNpemUgaW4gZ2ZzMSAqLworCisJc3RydWN0IGdmczJfaW51bSBzYl9tYXN0ZXJfZGlyOyAvKiBXYXMgamluZGV4IGRpbm9kZSBpbiBnZnMxICovCisJc3RydWN0IGdmczJfaW51bSBfX3BhZDI7IC8qIFdhcyByaW5kZXggZGlub2RlIGluIGdmczEgKi8KKwlzdHJ1Y3QgZ2ZzMl9pbnVtIHNiX3Jvb3RfZGlyOworCisJY2hhciBzYl9sb2NrcHJvdG9bR0ZTX0xPQ0tOQU1FX0xFTl07CisJY2hhciBzYl9sb2NrdGFibGVbR0ZTX0xPQ0tOQU1FX0xFTl07CisKKwlzdHJ1Y3QgZ2ZzMl9pbnVtIF9fcGFkMzsgLyogV2FzIHF1b3RhIGlub2RlIGluIGdmczEgKi8KKwlzdHJ1Y3QgZ2ZzMl9pbnVtIF9fcGFkNDsgLyogV2FzIGxpY2VuY2UgaW5vZGUgaW4gZ2ZzMSAqLworCXVpbnQ4X3Qgc2JfdXVpZFsxNl07IC8qIFRoZSBVVUlEIG1heWJlIDAgZm9yIGJhY2t3YXJkcyBjb21wYXQgKi8KK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0YXRpYyBpbnQgcHJvYmVfZ2ZzKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgZ2ZzMl9zYiAqc2JkOworCisJc2JkID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBnZnMyX3NiKTsKKwlpZiAoIXNiZCkKKwkJcmV0dXJuIC0xOworCisJaWYgKGJlMzJfdG9fY3B1KHNiZC0+c2JfZnNfZm9ybWF0KSA9PSBHRlNfRk9STUFUX0ZTICYmCisJICAgIGJlMzJfdG9fY3B1KHNiZC0+c2JfbXVsdGlob3N0X2Zvcm1hdCkgPT0gR0ZTX0ZPUk1BVF9NVUxUSSkKKwl7CisJCWlmICgqc2JkLT5zYl9sb2NrdGFibGUpCisJCQlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsCisJCQkJKHVuc2lnbmVkIGNoYXIgKikgc2JkLT5zYl9sb2NrdGFibGUsCisJCQkJc2l6ZW9mKHNiZC0+c2JfbG9ja3RhYmxlKSk7CisKKwkJYmxraWRfcHJvYmVfc2V0X3V1aWQocHIsIHNiZC0+c2JfdXVpZCk7CisJCXJldHVybiAwOworCX0KKworCXJldHVybiAtMTsKK30KKworc3RhdGljIGludCBwcm9iZV9nZnMyKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgZ2ZzMl9zYiAqc2JkOworCisJc2JkID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBnZnMyX3NiKTsKKwlpZiAoIXNiZCkKKwkJcmV0dXJuIC0xOworCisJaWYgKGJlMzJfdG9fY3B1KHNiZC0+c2JfZnNfZm9ybWF0KSA9PSBHRlMyX0ZPUk1BVF9GUyAmJgorCSAgICBiZTMyX3RvX2NwdShzYmQtPnNiX211bHRpaG9zdF9mb3JtYXQpID09IEdGUzJfRk9STUFUX01VTFRJKQorCXsKKwkJaWYgKCpzYmQtPnNiX2xvY2t0YWJsZSkKKwkJCWJsa2lkX3Byb2JlX3NldF9sYWJlbChwciwKKwkJCQkodW5zaWduZWQgY2hhciAqKSBzYmQtPnNiX2xvY2t0YWJsZSwKKwkJCQlzaXplb2Yoc2JkLT5zYl9sb2NrdGFibGUpKTsKKwkJYmxraWRfcHJvYmVfc2V0X3V1aWQocHIsIHNiZC0+c2JfdXVpZCk7CisJCWJsa2lkX3Byb2JlX3NldF92ZXJzaW9uKHByLCAiMSIpOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIC0xOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGdmc19pZGluZm8gPQoreworCS5uYW1lCQk9ICJnZnMiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9nZnMsCisJLm1pbnN6CQk9IDMyICogMTAyNCAqIDEwMjQsCS8qIG1pbmltYWwgc2l6ZSBvZiBHRlMgam91cm5hbCAqLworCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIlx4MDFceDE2XHgxOVx4NzAiLCAubGVuID0gNCwgLmtib2ZmID0gNjQgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGdmczJfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiZ2ZzMiIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0sCisJLnByb2JlZnVuYwk9IHByb2JlX2dmczIsCisJLm1pbnN6CQk9IDMyICogMTAyNCAqIDEwMjQsCS8qIG1pbmltYWwgc2l6ZSBvZiBHRlMgam91cm5hbCAqLworCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIlx4MDFceDE2XHgxOVx4NzAiLCAubGVuID0gNCwgLmtib2ZmID0gNjQgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2hmcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9oZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWJmZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9oZnMuYwpAQCAtMCwwICsxLDMxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA4IEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKyNpbmNsdWRlICJtZDUuaCIKKworLyogSEZTIC8gSEZTKyAqLworc3RydWN0IGhmc19maW5kZXJfaW5mbyB7CisgICAgICAgIHVpbnQzMl90ICAgICAgICBib290X2ZvbGRlcjsKKyAgICAgICAgdWludDMyX3QgICAgICAgIHN0YXJ0X2FwcDsKKyAgICAgICAgdWludDMyX3QgICAgICAgIG9wZW5fZm9sZGVyOworICAgICAgICB1aW50MzJfdCAgICAgICAgb3M5X2ZvbGRlcjsKKyAgICAgICAgdWludDMyX3QgICAgICAgIHJlc2VydmVkOworICAgICAgICB1aW50MzJfdCAgICAgICAgb3N4X2ZvbGRlcjsKKyAgICAgICAgdWludDhfdCAgICAgICAgIGlkWzhdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IGhmc19tZGIgeworICAgICAgICB1aW50OF90ICAgICAgICAgc2lnbmF0dXJlWzJdOworICAgICAgICB1aW50MzJfdCAgICAgICAgY3JfZGF0ZTsKKyAgICAgICAgdWludDMyX3QgICAgICAgIGxzX01vZDsKKyAgICAgICAgdWludDE2X3QgICAgICAgIGF0cmI7CisgICAgICAgIHVpbnQxNl90ICAgICAgICBubV9mbHM7CisgICAgICAgIHVpbnQxNl90ICAgICAgICB2Ym1fc3Q7CisgICAgICAgIHVpbnQxNl90ICAgICAgICBhbGxvY19wdHI7CisgICAgICAgIHVpbnQxNl90ICAgICAgICBubV9hbF9ibGtzOworICAgICAgICB1aW50MzJfdCAgICAgICAgYWxfYmxrX3NpemU7CisgICAgICAgIHVpbnQzMl90ICAgICAgICBjbHBfc2l6ZTsKKyAgICAgICAgdWludDE2X3QgICAgICAgIGFsX2JsX3N0OworICAgICAgICB1aW50MzJfdCAgICAgICAgbnh0X2NuaWQ7CisgICAgICAgIHVpbnQxNl90ICAgICAgICBmcmVlX2JrczsKKyAgICAgICAgdWludDhfdCAgICAgICAgIGxhYmVsX2xlbjsKKyAgICAgICAgdWludDhfdCAgICAgICAgIGxhYmVsWzI3XTsKKyAgICAgICAgdWludDMyX3QgICAgICAgIHZvbF9ia3VwOworICAgICAgICB1aW50MTZfdCAgICAgICAgdm9sX3NlcV9udW07CisgICAgICAgIHVpbnQzMl90ICAgICAgICB3cl9jbnQ7CisgICAgICAgIHVpbnQzMl90ICAgICAgICB4dF9jbHVtcF9zaXplOworICAgICAgICB1aW50MzJfdCAgICAgICAgY3RfY2x1bXBfc2l6ZTsKKyAgICAgICAgdWludDE2X3QgICAgICAgIG51bV9yb290X2RpcnM7CisgICAgICAgIHVpbnQzMl90ICAgICAgICBmaWxlX2NvdW50OworICAgICAgICB1aW50MzJfdCAgICAgICAgZGlyX2NvdW50OworICAgICAgICBzdHJ1Y3QgaGZzX2ZpbmRlcl9pbmZvIGZpbmRlcl9pbmZvOworICAgICAgICB1aW50OF90ICAgICAgICAgZW1iZWRfc2lnWzJdOworICAgICAgICB1aW50MTZfdCAgICAgICAgZW1iZWRfc3RhcnRibG9jazsKKyAgICAgICAgdWludDE2X3QgICAgICAgIGVtYmVkX2Jsb2NrY291bnQ7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisKKyNkZWZpbmUgSEZTX05PREVfTEVBRgkJCTB4ZmYKKyNkZWZpbmUgSEZTUExVU19QT1JfQ05JRAkJMQorCitzdHJ1Y3QgaGZzcGx1c19ibm9kZV9kZXNjcmlwdG9yIHsKKwl1aW50MzJfdAkJbmV4dDsKKwl1aW50MzJfdAkJcHJldjsKKwl1aW50OF90CQl0eXBlOworCXVpbnQ4X3QJCWhlaWdodDsKKwl1aW50MTZfdAkJbnVtX3JlY3M7CisJdWludDE2X3QJCXJlc2VydmVkOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IGhmc3BsdXNfYmhlYWRlcl9yZWNvcmQgeworCXVpbnQxNl90CQlkZXB0aDsKKwl1aW50MzJfdAkJcm9vdDsKKwl1aW50MzJfdAkJbGVhZl9jb3VudDsKKwl1aW50MzJfdAkJbGVhZl9oZWFkOworCXVpbnQzMl90CQlsZWFmX3RhaWw7CisJdWludDE2X3QJCW5vZGVfc2l6ZTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0cnVjdCBoZnNwbHVzX2NhdGFsb2dfa2V5IHsKKwl1aW50MTZfdAlrZXlfbGVuOworCXVpbnQzMl90CXBhcmVudF9pZDsKKwl1aW50MTZfdAl1bmljb2RlX2xlbjsKKwl1aW50OF90CQl1bmljb2RlWzI1NSAqIDJdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IGhmc3BsdXNfZXh0ZW50IHsKKwl1aW50MzJfdAkJc3RhcnRfYmxvY2s7CisJdWludDMyX3QJCWJsb2NrX2NvdW50OworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworI2RlZmluZSBIRlNQTFVTX0VYVEVOVF9DT1VOVAkJOAorc3RydWN0IGhmc3BsdXNfZm9yayB7CisJdWludDY0X3QJCXRvdGFsX3NpemU7CisJdWludDMyX3QJCWNsdW1wX3NpemU7CisJdWludDMyX3QJCXRvdGFsX2Jsb2NrczsKKwlzdHJ1Y3QgaGZzcGx1c19leHRlbnQgZXh0ZW50c1tIRlNQTFVTX0VYVEVOVF9DT1VOVF07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdHJ1Y3QgaGZzcGx1c192b2xfaGVhZGVyIHsKKwl1aW50OF90CQlzaWduYXR1cmVbMl07CisJdWludDE2X3QJCXZlcnNpb247CisJdWludDMyX3QJCWF0dHJpYnV0ZXM7CisJdWludDMyX3QJCWxhc3RfbW91bnRfdmVyczsKKwl1aW50MzJfdAkJcmVzZXJ2ZWQ7CisJdWludDMyX3QJCWNyZWF0ZV9kYXRlOworCXVpbnQzMl90CQltb2RpZnlfZGF0ZTsKKwl1aW50MzJfdAkJYmFja3VwX2RhdGU7CisJdWludDMyX3QJCWNoZWNrZWRfZGF0ZTsKKwl1aW50MzJfdAkJZmlsZV9jb3VudDsKKwl1aW50MzJfdAkJZm9sZGVyX2NvdW50OworCXVpbnQzMl90CQlibG9ja3NpemU7CisJdWludDMyX3QJCXRvdGFsX2Jsb2NrczsKKwl1aW50MzJfdAkJZnJlZV9ibG9ja3M7CisJdWludDMyX3QJCW5leHRfYWxsb2M7CisJdWludDMyX3QJCXJzcmNfY2x1bXBfc3o7CisJdWludDMyX3QJCWRhdGFfY2x1bXBfc3o7CisJdWludDMyX3QJCW5leHRfY25pZDsKKwl1aW50MzJfdAkJd3JpdGVfY291bnQ7CisJdWludDY0X3QJCWVuY29kaW5nc19ibXA7CisJc3RydWN0IGhmc19maW5kZXJfaW5mbyBmaW5kZXJfaW5mbzsKKwlzdHJ1Y3QgaGZzcGx1c19mb3JrIGFsbG9jX2ZpbGU7CisJc3RydWN0IGhmc3BsdXNfZm9yayBleHRfZmlsZTsKKwlzdHJ1Y3QgaGZzcGx1c19mb3JrIGNhdF9maWxlOworCXN0cnVjdCBoZnNwbHVzX2ZvcmsgYXR0cl9maWxlOworCXN0cnVjdCBoZnNwbHVzX2Zvcmsgc3RhcnRfZmlsZTsKK30gIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdGF0aWMgaW50IGhmc19zZXRfdXVpZChibGtpZF9wcm9iZSBwciwgdW5zaWduZWQgY2hhciBjb25zdCAqaGZzX2luZm8sIHNpemVfdCBsZW4pCit7CisJc3RhdGljIHVuc2lnbmVkIGNoYXIgY29uc3QgaGFzaF9pbml0WzE2XSA9IHsKKwkJMHhiMywgMHhlMiwgMHgwZiwgMHgzOSwgMHhmMiwgMHg5MiwgMHgxMSwgMHhkNiwKKwkJMHg5NywgMHhhNCwgMHgwMCwgMHgzMCwgMHg2NSwgMHg0MywgMHhlYywgMHhhYworCX07CisJdW5zaWduZWQgY2hhciB1dWlkWzE2XTsKKwlzdHJ1Y3QgTUQ1Q29udGV4dCBtZDVjOworCisJaWYgKG1lbWNtcChoZnNfaW5mbywgIlwwXDBcMFwwXDBcMFwwXDAiLCBsZW4pID09IDApCisJCXJldHVybiAtMTsKKwlNRDVJbml0KCZtZDVjKTsKKwlNRDVVcGRhdGUoJm1kNWMsIGhhc2hfaW5pdCwgMTYpOworCU1ENVVwZGF0ZSgmbWQ1YywgaGZzX2luZm8sIGxlbik7CisJTUQ1RmluYWwodXVpZCwgJm1kNWMpOworCXV1aWRbNl0gPSAweDMwIHwgKHV1aWRbNl0gJiAweDBmKTsKKwl1dWlkWzhdID0gMHg4MCB8ICh1dWlkWzhdICYgMHgzZik7CisJcmV0dXJuIGJsa2lkX3Byb2JlX3NldF91dWlkKHByLCB1dWlkKTsKK30KKworc3RhdGljIGludCBwcm9iZV9oZnMoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBoZnNfbWRiCSpoZnM7CisKKwloZnMgPSBibGtpZF9wcm9iZV9nZXRfc2IocHIsIG1hZywgc3RydWN0IGhmc19tZGIpOworCWlmICghaGZzKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoKG1lbWNtcChoZnMtPmVtYmVkX3NpZywgIkgrIiwgMikgPT0gMCkgfHwKKwkgICAgKG1lbWNtcChoZnMtPmVtYmVkX3NpZywgIkhYIiwgMikgPT0gMCkpCisJCXJldHVybiAxOwkvKiBOb3QgaGZzLCBidXQgYW4gZW1iZWRkZWQgSEZTKyAqLworCisJaGZzX3NldF91dWlkKHByLCBoZnMtPmZpbmRlcl9pbmZvLmlkLCBzaXplb2YoaGZzLT5maW5kZXJfaW5mby5pZCkpOworCisJYmxraWRfcHJvYmVfc2V0X2xhYmVsKHByLCBoZnMtPmxhYmVsLCBoZnMtPmxhYmVsX2xlbik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHJvYmVfaGZzcGx1cyhibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IGhmc3BsdXNfZXh0ZW50IGV4dGVudHNbSEZTUExVU19FWFRFTlRfQ09VTlRdOworCXN0cnVjdCBoZnNwbHVzX2Jub2RlX2Rlc2NyaXB0b3IgKmRlc2NyOworCXN0cnVjdCBoZnNwbHVzX2JoZWFkZXJfcmVjb3JkICpibm9kZTsKKwlzdHJ1Y3QgaGZzcGx1c19jYXRhbG9nX2tleSAqa2V5OworCXN0cnVjdCBoZnNwbHVzX3ZvbF9oZWFkZXIgKmhmc3BsdXM7CisJc3RydWN0IGhmc19tZGIgKnNiZDsKKwl1bnNpZ25lZCBpbnQgYWxsb2NfYmxvY2tfc2l6ZTsKKwl1bnNpZ25lZCBpbnQgYWxsb2NfZmlyc3RfYmxvY2s7CisJdW5zaWduZWQgaW50IGVtYmVkX2ZpcnN0X2Jsb2NrOworCXVuc2lnbmVkIGludCBvZmYgPSAwOworCXVuc2lnbmVkIGludCBibG9ja3NpemU7CisJdW5zaWduZWQgaW50IGNhdF9ibG9jazsKKwl1bnNpZ25lZCBpbnQgZXh0X2Jsb2NrX3N0YXJ0OworCXVuc2lnbmVkIGludCBleHRfYmxvY2tfY291bnQ7CisJdW5zaWduZWQgaW50IHJlY29yZF9jb3VudDsKKwl1bnNpZ25lZCBpbnQgbGVhZl9ub2RlX2hlYWQ7CisJdW5zaWduZWQgaW50IGxlYWZfbm9kZV9jb3VudDsKKwl1bnNpZ25lZCBpbnQgbGVhZl9ub2RlX3NpemU7CisJdW5zaWduZWQgaW50IGxlYWZfYmxvY2s7CisJaW50IGV4dDsKKwl1aW50NjRfdCBsZWFmX29mZjsKKwl1bnNpZ25lZCBjaGFyICpidWY7CisKKwlzYmQgPSBibGtpZF9wcm9iZV9nZXRfc2IocHIsIG1hZywgc3RydWN0IGhmc19tZGIpOworCWlmICghc2JkKQorCQlyZXR1cm4gLTE7CisKKwkvKiBDaGVjayBmb3IgYSBIRlMrIHZvbHVtZSBlbWJlZGRlZCBpbiBhIEhGUyB2b2x1bWUgKi8KKwlpZiAobWVtY21wKHNiZC0+c2lnbmF0dXJlLCAiQkQiLCAyKSA9PSAwKSB7CisJCWlmICgobWVtY21wKHNiZC0+ZW1iZWRfc2lnLCAiSCsiLCAyKSAhPSAwKSAmJgorCQkgICAgKG1lbWNtcChzYmQtPmVtYmVkX3NpZywgIkhYIiwgMikgIT0gMCkpCisJCQkvKiBUaGlzIG11c3QgYmUgYW4gSEZTIHZvbHVtZSwgc28gZmFpbCAqLworCQkJcmV0dXJuIDE7CisKKwkJYWxsb2NfYmxvY2tfc2l6ZSA9IGJlMzJfdG9fY3B1KHNiZC0+YWxfYmxrX3NpemUpOworCQlhbGxvY19maXJzdF9ibG9jayA9IGJlMTZfdG9fY3B1KHNiZC0+YWxfYmxfc3QpOworCQllbWJlZF9maXJzdF9ibG9jayA9IGJlMTZfdG9fY3B1KHNiZC0+ZW1iZWRfc3RhcnRibG9jayk7CisJCW9mZiA9IChhbGxvY19maXJzdF9ibG9jayAqIDUxMikgKworCQkJKGVtYmVkX2ZpcnN0X2Jsb2NrICogYWxsb2NfYmxvY2tfc2l6ZSk7CisKKwkJYnVmID0gYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwKKwkJCQlvZmYgKyAobWFnLT5rYm9mZiAqIDEwMjQpLAorCQkJCXNpemVvZihzdHJ1Y3QgaGZzcGx1c192b2xfaGVhZGVyKSk7CisJCWhmc3BsdXMgPSAoc3RydWN0IGhmc3BsdXNfdm9sX2hlYWRlciAqKSBidWY7CisKKwl9IGVsc2UKKwkJaGZzcGx1cyA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLAorCQkJCXN0cnVjdCBoZnNwbHVzX3ZvbF9oZWFkZXIpOworCisJaWYgKCFoZnNwbHVzKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoKG1lbWNtcChoZnNwbHVzLT5zaWduYXR1cmUsICJIKyIsIDIpICE9IDApICYmCisJICAgIChtZW1jbXAoaGZzcGx1cy0+c2lnbmF0dXJlLCAiSFgiLCAyKSAhPSAwKSkKKwkJcmV0dXJuIDE7CisKKwloZnNfc2V0X3V1aWQocHIsIGhmc3BsdXMtPmZpbmRlcl9pbmZvLmlkLCBzaXplb2YoaGZzcGx1cy0+ZmluZGVyX2luZm8uaWQpKTsKKworCWJsb2Nrc2l6ZSA9IGJlMzJfdG9fY3B1KGhmc3BsdXMtPmJsb2Nrc2l6ZSk7CisJbWVtY3B5KGV4dGVudHMsIGhmc3BsdXMtPmNhdF9maWxlLmV4dGVudHMsIHNpemVvZihleHRlbnRzKSk7CisJY2F0X2Jsb2NrID0gYmUzMl90b19jcHUoZXh0ZW50c1swXS5zdGFydF9ibG9jayk7CisKKwlidWYgPSBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJb2ZmICsgKGNhdF9ibG9jayAqIGJsb2Nrc2l6ZSksIDB4MjAwMCk7CisJaWYgKCFidWYpCisJCXJldHVybiAwOworCisJYm5vZGUgPSAoc3RydWN0IGhmc3BsdXNfYmhlYWRlcl9yZWNvcmQgKikKKwkJJmJ1ZltzaXplb2Yoc3RydWN0IGhmc3BsdXNfYm5vZGVfZGVzY3JpcHRvcildOworCisJbGVhZl9ub2RlX2hlYWQgPSBiZTMyX3RvX2NwdShibm9kZS0+bGVhZl9oZWFkKTsKKwlsZWFmX25vZGVfc2l6ZSA9IGJlMTZfdG9fY3B1KGJub2RlLT5ub2RlX3NpemUpOworCWxlYWZfbm9kZV9jb3VudCA9IGJlMzJfdG9fY3B1KGJub2RlLT5sZWFmX2NvdW50KTsKKwlpZiAobGVhZl9ub2RlX2NvdW50ID09IDApCisJCXJldHVybiAwOworCisJbGVhZl9ibG9jayA9IChsZWFmX25vZGVfaGVhZCAqIGxlYWZfbm9kZV9zaXplKSAvIGJsb2Nrc2l6ZTsKKworCS8qIGdldCBwaHlzaWNhbCBsb2NhdGlvbiAqLworCWZvciAoZXh0ID0gMDsgZXh0IDwgSEZTUExVU19FWFRFTlRfQ09VTlQ7IGV4dCsrKSB7CisJCWV4dF9ibG9ja19zdGFydCA9IGJlMzJfdG9fY3B1KGV4dGVudHNbZXh0XS5zdGFydF9ibG9jayk7CisJCWV4dF9ibG9ja19jb3VudCA9IGJlMzJfdG9fY3B1KGV4dGVudHNbZXh0XS5ibG9ja19jb3VudCk7CisJCWlmIChleHRfYmxvY2tfY291bnQgPT0gMCkKKwkJCXJldHVybiAwOworCisJCS8qIHRoaXMgaXMgb3VyIGV4dGVudCAqLworCQlpZiAobGVhZl9ibG9jayA8IGV4dF9ibG9ja19jb3VudCkKKwkJCWJyZWFrOworCisJCWxlYWZfYmxvY2sgLT0gZXh0X2Jsb2NrX2NvdW50OworCX0KKwlpZiAoZXh0ID09IEhGU1BMVVNfRVhURU5UX0NPVU5UKQorCQlyZXR1cm4gMDsKKworCWxlYWZfb2ZmID0gKGV4dF9ibG9ja19zdGFydCArIGxlYWZfYmxvY2spICogYmxvY2tzaXplOworCisJYnVmID0gYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwgb2ZmICsgbGVhZl9vZmYsIGxlYWZfbm9kZV9zaXplKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIDA7CisKKwlkZXNjciA9IChzdHJ1Y3QgaGZzcGx1c19ibm9kZV9kZXNjcmlwdG9yICopIGJ1ZjsKKwlyZWNvcmRfY291bnQgPSBiZTE2X3RvX2NwdShkZXNjci0+bnVtX3JlY3MpOworCWlmIChyZWNvcmRfY291bnQgPT0gMCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoZGVzY3ItPnR5cGUgIT0gSEZTX05PREVfTEVBRikKKwkJcmV0dXJuIDA7CisKKwlrZXkgPSAoc3RydWN0IGhmc3BsdXNfY2F0YWxvZ19rZXkgKikKKwkJJmJ1ZltzaXplb2Yoc3RydWN0IGhmc3BsdXNfYm5vZGVfZGVzY3JpcHRvcildOworCisJaWYgKGJlMzJfdG9fY3B1KGtleS0+cGFyZW50X2lkKSAhPSBIRlNQTFVTX1BPUl9DTklEKQorCQlyZXR1cm4gMDsKKworCWJsa2lkX3Byb2JlX3NldF91dGY4bGFiZWwocHIsIGtleS0+dW5pY29kZSwKKwkJCWJlMTZfdG9fY3B1KGtleS0+dW5pY29kZV9sZW4pICogMiwKKwkJCUJMS0lEX0VOQ19VVEYxNkJFKTsKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBoZnNfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiaGZzIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfaGZzLAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIkJEIiwgLmxlbiA9IDIsIC5rYm9mZiA9IDEgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGhmc3BsdXNfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiaGZzcGx1cyIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0sCisJLnByb2JlZnVuYwk9IHByb2JlX2hmc3BsdXMsCisJLm1hZ2ljcwkJPQorCXsKKwkJeyAubWFnaWMgPSAiQkQiLCAubGVuID0gMiwgLmtib2ZmID0gMSB9LAorCQl7IC5tYWdpYyA9ICJIKyIsIC5sZW4gPSAyLCAua2JvZmYgPSAxIH0sCisJCXsgLm1hZ2ljID0gIkhYIiwgLmxlbiA9IDIsIC5rYm9mZiA9IDEgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9oaWdocG9pbnRfcmFpZC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9oaWdocG9pbnRfcmFpZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMWNlYjIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2hpZ2hwb2ludF9yYWlkLmMKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBJbnNwaXJlZCBieSBsaWJ2b2x1bWVfaWQgYnkKKyAqICAgICBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3QgaHB0NDV4X21ldGFkYXRhIHsKKwl1aW50MzJfdAltYWdpYzsKK307CisKKyNkZWZpbmUgSFBUNDVYX01BR0lDX09LCQkJMHg1YTc4MTZmMworI2RlZmluZSBIUFQ0NVhfTUFHSUNfQkFECQkweDVhNzgxNmZkCisKK3N0YXRpYyBpbnQgcHJvYmVfaGlnaHBvaW50NDV4KGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgaHB0NDV4X21ldGFkYXRhICpocHQ7CisJdWludDY0X3Qgb2ZmOworCXVpbnQzMl90IG1hZ2ljOworCisJaWYgKHByLT5zaXplIDwgMHgxMDAwMCkKKwkJcmV0dXJuIC0xOworCisJb2ZmID0gKChwci0+c2l6ZSAvIDB4MjAwKSAtIDExKSAqIDB4MjAwOworCWhwdCA9IChzdHJ1Y3QgaHB0NDV4X21ldGFkYXRhICopCisJCQlibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJCQlvZmYsCisJCQkJCXNpemVvZihzdHJ1Y3QgaHB0NDV4X21ldGFkYXRhKSk7CisJaWYgKCFocHQpCisJCXJldHVybiAtMTsKKwltYWdpYyA9IGxlMzJfdG9fY3B1KGhwdC0+bWFnaWMpOworCWlmIChtYWdpYyAhPSBIUFQ0NVhfTUFHSUNfT0sgJiYgbWFnaWMgIT0gSFBUNDVYX01BR0lDX0JBRCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGhpZ2hwb2ludDQ1eF9pZGluZm8gPSB7CisJLm5hbWUJCT0gImhwdDQ1eF9yYWlkX21lbWJlciIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX1JBSUQsCisJLnByb2JlZnVuYwk9IHByb2JlX2hpZ2hwb2ludDQ1eCwKKwkubWFnaWNzCQk9IEJMS0lEX05PTkVfTUFHSUMKK307CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gaGlnaHBvaW50Mzd4X2lkaW5mbyA9IHsKKwkubmFtZQkJPSAiaHB0Mzd4X3JhaWRfbWVtYmVyIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfUkFJRCwKKwkubWFnaWNzCQk9IHsKKwkJLyoKKwkJICogU3VwZXJibG9rIG9mZnNldDogICAgICAgICAgICAgICAgICAgICAgNDYwOCBieXRlcyAgKDkgc2VjdG9ycykKKwkJICogTWFnaWMgc3RyaW5nIG9mZnNldCB3aXRoaW4gc3VwZXJibG9jazogICAzMiBieXRlcworCQkgKgorCQkgKiBrYm9mZiA9ICg0NjA4ICsgMzIpIC8gMTAyNAorCQkgKiBzYm9mZiA9ICg0NjA4ICsgMzIpICUga2JvZmYKKwkJICovCisJCXsgLm1hZ2ljID0gIlx4ZjBceDE2XHg3OFx4NWEiLCAubGVuID0gNCwgLmtib2ZmID0gNCwgLnNib2ZmID0gNTQ0IH0sCisJCXsgLm1hZ2ljID0gIlx4ZmRceDE2XHg3OFx4NWEiLCAubGVuID0gNCwgLmtib2ZmID0gNCwgLnNib2ZmID0gNTQ0IH0sCisJCXsgTlVMTCB9CisJfQorfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2hwZnMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvaHBmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5Yjg1MWEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2hwZnMuYwpAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBJbnNwaXJlZCBieSBsaWJ2b2x1bWVfaWQgYnkKKyAqICAgICBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3QgaHBmc19ib290X2Jsb2NrCit7CisJdWludDhfdAkJam1wWzNdOworCXVpbnQ4X3QJCW9lbV9pZFs4XTsKKwl1aW50OF90CQlieXRlc19wZXJfc2VjdG9yWzJdOworCXVpbnQ4X3QJCXNlY3RvcnNfcGVyX2NsdXN0ZXI7CisJdWludDhfdAkJbl9yZXNlcnZlZF9zZWN0b3JzWzJdOworCXVpbnQ4X3QJCW5fZmF0czsKKwl1aW50OF90CQluX3Jvb3RkaXJfZW50cmllc1syXTsKKwl1aW50OF90CQluX3NlY3RvcnNfc1syXTsKKwl1aW50OF90CQltZWRpYV9ieXRlOworCXVpbnQxNl90CXNlY3RvcnNfcGVyX2ZhdDsKKwl1aW50MTZfdAlzZWN0b3JzX3Blcl90cmFjazsKKwl1aW50MTZfdAloZWFkc19wZXJfY3lsOworCXVpbnQzMl90CW5faGlkZGVuX3NlY3RvcnM7CisJdWludDMyX3QJbl9zZWN0b3JzX2w7CisJdWludDhfdAkJZHJpdmVfbnVtYmVyOworCXVpbnQ4X3QJCW1iejsKKwl1aW50OF90CQlzaWdfMjhoOworCXVpbnQ4X3QJCXZvbF9zZXJub1s0XTsKKwl1aW50OF90CQl2b2xfbGFiZWxbMTFdOworCXVpbnQ4X3QJCXNpZ19ocGZzWzhdOworCXVpbnQ4X3QJCXBhZFs0NDhdOworCXVpbnQ4X3QJCW1hZ2ljWzJdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IGhwZnNfc3VwZXJfYmxvY2sKK3sKKwl1aW50OF90CQltYWdpY1s0XTsKKwl1aW50OF90CQltYWdpYzFbNF07CisJdWludDhfdAkJdmVyc2lvbjsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0cnVjdCBocGZzX3NwYXJlX3N1cGVyCit7CisJdWludDhfdAkJbWFnaWNbNF07CisJdWludDhfdAkJbWFnaWMxWzRdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworCisjZGVmaW5lIEhQRlNfU0JfT0ZGU0VUCQkJMHgyMDAwCisjZGVmaW5lIEhQRlNfU0JTUEFSRV9PRkZTRVQJCTB4MjIwMAorCitzdGF0aWMgaW50IHByb2JlX2hwZnMoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBocGZzX3N1cGVyX2Jsb2NrICpoczsKKwlzdHJ1Y3QgaHBmc19zcGFyZV9zdXBlciAqaHNzOworCXN0cnVjdCBocGZzX2Jvb3RfYmxvY2sgKmhiYjsKKwl1aW50OF90IHZlcnNpb247CisKKwkvKiBzdXBlciBibG9jayAqLworCWhzID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBocGZzX3N1cGVyX2Jsb2NrKTsKKwlpZiAoIWhzKQorCQlyZXR1cm4gLTE7CisJdmVyc2lvbiA9IGhzLT52ZXJzaW9uOworCisJLyogc3BhcmUgc3VwZXIgYmxvY2sgKi8KKwloc3MgPSAoc3RydWN0IGhwZnNfc3BhcmVfc3VwZXIgKikKKwkJCWJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsCisJCQkJSFBGU19TQlNQQVJFX09GRlNFVCwKKwkJCQlzaXplb2Yoc3RydWN0IGhwZnNfc3BhcmVfc3VwZXIpKTsKKwlpZiAoIWhzcykKKwkJcmV0dXJuIC0xOworCWlmIChtZW1jbXAoaHNzLT5tYWdpYywgIlx4NDlceDE4XHg5MVx4ZjkiLCA0KSAhPSAwKQorCQlyZXR1cm4gLTE7CisKKwkvKiBib290IGJsb2NrICh3aXRoIFVVSUQgYW5kIExBQkVMKSAqLworCWhiYiA9IChzdHJ1Y3QgaHBmc19ib290X2Jsb2NrICopCisJCQlibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJCTAsCisJCQkJc2l6ZW9mKHN0cnVjdCBocGZzX2Jvb3RfYmxvY2spKTsKKwlpZiAoIWhiYikKKwkJcmV0dXJuIC0xOworCWlmIChtZW1jbXAoaGJiLT5tYWdpYywgIlx4NTVceGFhIiwgMikgPT0gMCAmJgorCSAgICBtZW1jbXAoaGJiLT5zaWdfaHBmcywgIkhQRlMiLCA0KSA9PSAwICYmCisJICAgIGhiYi0+c2lnXzI4aCA9PSAweDI4KSB7CisJCWJsa2lkX3Byb2JlX3NldF9sYWJlbChwciwgaGJiLT52b2xfbGFiZWwsIHNpemVvZihoYmItPnZvbF9sYWJlbCkpOworCQlibGtpZF9wcm9iZV9zcHJpbnRmX3V1aWQocHIsCisJCQkJaGJiLT52b2xfc2Vybm8sIHNpemVvZihoYmItPnZvbF9zZXJubyksCisJCQkJIiUwMlglMDJYLSUwMlglMDJYIiwKKwkJCQloYmItPnZvbF9zZXJub1szXSwgaGJiLT52b2xfc2Vybm9bMl0sCisJCQkJaGJiLT52b2xfc2Vybm9bMV0sIGhiYi0+dm9sX3Nlcm5vWzBdKTsKKwl9CisJYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJXUiLCB2ZXJzaW9uKTsKKworCXJldHVybiAwOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGhwZnNfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiaHBmcyIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0sCisJLnByb2JlZnVuYwk9IHByb2JlX2hwZnMsCisJLm1hZ2ljcwkJPQorCXsKKwkJeworCQkgIC5tYWdpYyA9ICJceDQ5XHhlOFx4OTVceGY5IiwKKwkJICAubGVuID0gNCwKKwkJICAua2JvZmYgPSAoSFBGU19TQl9PRkZTRVQgPj4gMTApCisJCX0sCisJCXsgTlVMTCB9CisJfQorfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2lzbzk2NjAuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvaXNvOTY2MC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmM2NlMmUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2lzbzk2NjAuYwpAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBieSBBbmRyaWVzIEJyb3V3ZXIKKyAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMyBieSBUaGVvZG9yZSBUcydvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgYnkgQW5kcmVhcyBEaWxnZXIKKyAqIENvcHlyaWdodCAoQykgMjAwNCBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogSW5zcGlyZWQgYWxzbyBieSBsaWJ2b2x1bWVfaWQgYnkKKyAqICAgICBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCisvKiBQVkQgLSBQcmltYXJ5IHZvbHVtZSBkZXNjcmlwdG9yICovCitzdHJ1Y3QgaXNvX3ZvbHVtZV9kZXNjcmlwdG9yIHsKKwl1bnNpZ25lZCBjaGFyCXZkX3R5cGU7CisJdW5zaWduZWQgY2hhcgl2ZF9pZFs1XTsKKwl1bnNpZ25lZCBjaGFyCXZkX3ZlcnNpb247CisJdW5zaWduZWQgY2hhcglmbGFnczsKKwl1bnNpZ25lZCBjaGFyCXN5c3RlbV9pZFszMl07CisJdW5zaWduZWQgY2hhcgl2b2x1bWVfaWRbMzJdOworCXVuc2lnbmVkIGNoYXIJdW51c2VkWzhdOworCXVuc2lnbmVkIGNoYXIJc3BhY2Vfc2l6ZVs4XTsKKwl1bnNpZ25lZCBjaGFyCWVzY2FwZV9zZXF1ZW5jZXNbOF07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisjZGVmaW5lIElTT19TVVBFUkJMT0NLX09GRlNFVAkJMHg4MDAwCisjZGVmaW5lIElTT19TRUNUT1JfU0laRQkJCTB4ODAwCisjZGVmaW5lIElTT19WRF9PRkZTRVQJCQkoSVNPX1NVUEVSQkxPQ0tfT0ZGU0VUICsgSVNPX1NFQ1RPUl9TSVpFKQorI2RlZmluZSBJU09fVkRfU1VQUExFTUVOVEFSWQkJMHgyCisjZGVmaW5lIElTT19WRF9FTkQJCQkweGZmCisjZGVmaW5lIElTT19WRF9NQVgJCQkxNgorCitzdHJ1Y3QgaGlnaF9zaWVycmFfdm9sdW1lX2Rlc2NyaXB0b3IgeworCXVuc2lnbmVkIGNoYXIJZm9vWzhdOworCXVuc2lnbmVkIGNoYXIJdHlwZTsKKwl1bnNpZ25lZCBjaGFyCWlkWzVdOworCXVuc2lnbmVkIGNoYXIJdmVyc2lvbjsKKwl1bnNpZ25lZCBjaGFyCXVudXNlZDE7CisJdW5zaWduZWQgY2hhcglzeXN0ZW1faWRbMzJdOworCXVuc2lnbmVkIGNoYXIgICB2b2x1bWVfaWRbMzJdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworLyogcmV0dXJucyAxIGlmIHRoZSBiZWdpbiBvZiBAYXNjaWkgaXMgZXF1YWwgdG8gQHV0ZjE2IHN0cmluZy4KKyAqLworc3RhdGljIGludCBhc2NpaV9lcV91dGYxNmJlKHVuc2lnbmVkIGNoYXIgKmFzY2lpLAorCQkJdW5zaWduZWQgY2hhciAqdXRmMTYsIHNpemVfdCBsZW4pCit7CisJaW50IGEsIHU7CisKKwlmb3IgKGEgPSAwLCB1ID0gMDsgdSA8IGxlbjsgYSsrLCB1ICs9IDIpIHsKKwkJaWYgKHV0ZjE2W3VdICE9IDB4MCB8fCBhc2NpaVthXSAhPSB1dGYxNlt1ICsgMV0pCisJCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIDE7Cit9CisKKy8qIG9sZCBIaWdoIFNpZXJyYSBmb3JtYXQgKi8KK3N0YXRpYyBpbnQgcHJvYmVfaXNvOTY2MF9oc2ZzKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgaGlnaF9zaWVycmFfdm9sdW1lX2Rlc2NyaXB0b3IgKmlzbzsKKworCWlzbyA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgaGlnaF9zaWVycmFfdm9sdW1lX2Rlc2NyaXB0b3IpOworCWlmICghaXNvKQorCQlyZXR1cm4gLTE7CisKKwlibGtpZF9wcm9iZV9zZXRfdmVyc2lvbihwciwgIkhpZ2ggU2llcnJhIik7CisJYmxraWRfcHJvYmVfc2V0X2xhYmVsKHByLCBpc28tPnZvbHVtZV9pZCwgc2l6ZW9mKGlzby0+dm9sdW1lX2lkKSk7CisJcmV0dXJuIDA7Cit9CisKKy8qIGlzbzk2NjAgWysgTWljcm9zb2Z0IEpvbGlldCBFeHRlbnNpb25dICovCitzdGF0aWMgaW50IHByb2JlX2lzbzk2NjAoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBpc29fdm9sdW1lX2Rlc2NyaXB0b3IgKmlzbzsKKwl1bnNpZ25lZCBjaGFyIGxhYmVsWzMyXTsKKwlpbnQgaTsKKwlpbnQgb2ZmOworCisJaWYgKHN0cmNtcChtYWctPm1hZ2ljLCAiQ0RST00iKSA9PSAwKQorCQlyZXR1cm4gcHJvYmVfaXNvOTY2MF9oc2ZzKHByLCBtYWcpOworCisJaXNvID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBpc29fdm9sdW1lX2Rlc2NyaXB0b3IpOworCWlmICghaXNvKQorCQlyZXR1cm4gLTE7CisKKwltZW1jcHkobGFiZWwsIGlzby0+dm9sdW1lX2lkLCBzaXplb2YobGFiZWwpKTsKKworCS8qIEpvbGlldCBFeHRlbnNpb24gKi8KKwlvZmYgPSBJU09fVkRfT0ZGU0VUOworCWZvciAoaSA9IDA7IGkgPCBJU09fVkRfTUFYOyBpKyspIHsKKwkJaXNvID0gKHN0cnVjdCBpc29fdm9sdW1lX2Rlc2NyaXB0b3IgKikKKwkJCWJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsCisJCQkJCW9mZiwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBpc29fdm9sdW1lX2Rlc2NyaXB0b3IpKTsKKworCQlpZiAoaXNvID09IE5VTEwgfHwgaXNvLT52ZF90eXBlID09IElTT19WRF9FTkQpCisJCQlicmVhazsKKwkJaWYgKGlzby0+dmRfdHlwZSAhPSBJU09fVkRfU1VQUExFTUVOVEFSWSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChtZW1jbXAoaXNvLT5lc2NhcGVfc2VxdWVuY2VzLCAiJS9AIiwgMykgPT0gMCB8fAorCQkgICAgbWVtY21wKGlzby0+ZXNjYXBlX3NlcXVlbmNlcywgIiUvQyIsIDMpID09IDAgfHwKKwkJICAgIG1lbWNtcChpc28tPmVzY2FwZV9zZXF1ZW5jZXMsICIlL0UiLCAzKSA9PSAwKSB7CisKKwkJCWJsa2lkX3Byb2JlX3NldF92ZXJzaW9uKHByLCAiSm9saWV0IEV4dGVuc2lvbiIpOworCisJCQkvKiBJcyB0aGUgSm9saWV0IChVVEYxNkJFKSBsYWJlbCBlcXVhbCB0byB0aGUgbGFiZWwgaW4KKwkJCSAqIHRoZSBQVkQ/IElmIHllcywgdXNlIFBWRCBsYWJlbC4gIFRoZSBKb2xpZWQgdmVyc2lvbgorCQkJICogb2YgdGhlIGxhYmVsIGNvdWxkIGJlIHRyaW1lZCAoYmVjYXVzZSBVVEYxNi4uKS4KKwkJCSAqLworCQkJaWYgKGFzY2lpX2VxX3V0ZjE2YmUobGFiZWwsIGlzby0+dm9sdW1lX2lkLCAzMikpCisJCQkJYnJlYWs7CisKKwkJCWJsa2lkX3Byb2JlX3NldF91dGY4bGFiZWwocHIsCisJCQkJCWlzby0+dm9sdW1lX2lkLAorCQkJCQlzaXplb2YoaXNvLT52b2x1bWVfaWQpLAorCQkJCQlCTEtJRF9FTkNfVVRGMTZCRSk7CisJCQlnb3RvIGhhc19sYWJlbDsKKwkJfQorCQlvZmYgKz0gSVNPX1NFQ1RPUl9TSVpFOworCX0KKworCS8qIEpvbGlldCBub3QgZm91bmQsIGxldCB1c2Ugc3RhbmRhcmQgaXNvIGxhYmVsICovCisJYmxraWRfcHJvYmVfc2V0X2xhYmVsKHByLCBsYWJlbCwgc2l6ZW9mKGxhYmVsKSk7CisKK2hhc19sYWJlbDoKKwlyZXR1cm4gMDsKK30KKworCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGlzbzk2NjBfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiaXNvOTY2MCIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0sCisJLnByb2JlZnVuYwk9IHByb2JlX2lzbzk2NjAsCisJLmZsYWdzCQk9IEJMS0lEX0lESU5GT19UT0xFUkFOVCwKKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICJDRDAwMSIsIC5sZW4gPSA1LCAua2JvZmYgPSAzMiwgLnNib2ZmID0gMSB9LAorCQl7IC5tYWdpYyA9ICJDRFJPTSIsIC5sZW4gPSA1LCAua2JvZmYgPSAzMiwgLnNib2ZmID0gOSB9LAorCQl7IE5VTEwgfQorCX0KK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvaXN3X3JhaWQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvaXN3X3JhaWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjQ4NjlmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9pc3dfcmFpZC5jCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogSW5zcGlyZWQgYnkgbGlidm9sdW1lX2lkIGJ5CisgKiAgICAgS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworc3RydWN0IGlzd19tZXRhZGF0YSB7CisJdWludDhfdAkJc2lnWzMyXTsKKwl1aW50MzJfdAljaGVja19zdW07CisJdWludDMyX3QJbXBiX3NpemU7CisJdWludDMyX3QJZmFtaWx5X251bTsKKwl1aW50MzJfdAlnZW5lcmF0aW9uX251bTsKK307CisKKyNkZWZpbmUgSVNXX1NJR05BVFVSRQkJIkludGVsIFJhaWQgSVNNIENmZyBTaWcuICIKKworCitzdGF0aWMgaW50IHByb2JlX2lzd3JhaWQoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXVpbnQ2NF90IG9mZjsKKwlzdHJ1Y3QgaXN3X21ldGFkYXRhICppc3c7CisKKwlpZiAocHItPnNpemUgPCAweDEwMDAwKQorCQlyZXR1cm4gLTE7CisKKwlvZmYgPSAoKHByLT5zaXplIC8gMHgyMDApIC0gMikgKiAweDIwMDsKKwlpc3cgPSAoc3RydWN0IGlzd19tZXRhZGF0YSAqKQorCQkJYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwKKwkJCQkJb2ZmLAorCQkJCQlzaXplb2Yoc3RydWN0IGlzd19tZXRhZGF0YSkpOworCWlmICghaXN3KQorCQlyZXR1cm4gLTE7CisJaWYgKG1lbWNtcChpc3ctPnNpZywgSVNXX1NJR05BVFVSRSwgc2l6ZW9mKElTV19TSUdOQVRVUkUpLTEpICE9IDApCisJCXJldHVybiAtMTsKKwlpZiAoYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJTZzIiwKKwkJCSZpc3ctPnNpZ1tzaXplb2YoSVNXX1NJR05BVFVSRSktMV0pICE9IDApCisJCXJldHVybiAtMTsKKworCXJldHVybiAwOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGlzd3JhaWRfaWRpbmZvID0geworCS5uYW1lCQk9ICJpc3dfcmFpZF9tZW1iZXIiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9pc3dyYWlkLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2pmcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9qZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTQ5YzY3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9qZnMuYwpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5IGJ5IEFuZHJpZXMgQnJvdXdlcgorICogQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzIGJ5IFRoZW9kb3JlIFRzJ28KKyAqIENvcHlyaWdodCAoQykgMjAwMSBieSBBbmRyZWFzIERpbGdlcgorICogQ29weXJpZ2h0IChDKSAyMDA0IEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3QgamZzX3N1cGVyX2Jsb2NrIHsKKwl1bnNpZ25lZCBjaGFyCWpzX21hZ2ljWzRdOworCXVpbnQzMl90CWpzX3ZlcnNpb247CisJdWludDY0X3QJanNfc2l6ZTsKKwl1aW50MzJfdAlqc19ic2l6ZTsJLyogNDogYWdncmVnYXRlIGJsb2NrIHNpemUgaW4gYnl0ZXMgKi8KKwl1aW50MTZfdAlqc19sMmJzaXplOwkvKiAyOiBsb2cyIG9mIHNfYnNpemUgKi8KKwl1aW50MTZfdAlqc19sMmJmYWN0b3I7CS8qIDI6IGxvZzIoc19ic2l6ZS9oYXJkd2FyZSBibG9jayBzaXplKSAqLworCXVpbnQzMl90CWpzX3Bic2l6ZTsJLyogNDogaGFyZHdhcmUvTFZNIGJsb2NrIHNpemUgaW4gYnl0ZXMgKi8KKwl1aW50MTZfdAlqc19sMnBic2l6ZTsJLyogMjogbG9nMiBvZiBzX3Bic2l6ZSAqLworCXVpbnQxNl90CWpzX3BhZDsJCS8qIDI6IHBhZGRpbmcgbmVjZXNzYXJ5IGZvciBhbGlnbm1lbnQgKi8KKwl1aW50MzJfdAlqc19kdW1teTJbMjZdOworCXVuc2lnbmVkIGNoYXIJanNfdXVpZFsxNl07CisJdW5zaWduZWQgY2hhcglqc19sYWJlbFsxNl07CisJdW5zaWduZWQgY2hhcglqc19sb2d1dWlkWzE2XTsKK307CisKK3N0YXRpYyBpbnQgcHJvYmVfamZzKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgamZzX3N1cGVyX2Jsb2NrICpqczsKKworCWpzID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBqZnNfc3VwZXJfYmxvY2spOworCWlmICghanMpCisJCXJldHVybiAtMTsKKwlpZiAobGUzMl90b19jcHUoanMtPmpzX2JzaXplKSAhPSAoMSA8PCBsZTE2X3RvX2NwdShqcy0+anNfbDJic2l6ZSkpKQorCQlyZXR1cm4gMTsKKwlpZiAobGUzMl90b19jcHUoanMtPmpzX3Bic2l6ZSkgIT0gKDEgPDwgbGUxNl90b19jcHUoanMtPmpzX2wycGJzaXplKSkpCisJCXJldHVybiAxOworCWlmICgobGUxNl90b19jcHUoanMtPmpzX2wyYnNpemUpIC0gbGUxNl90b19jcHUoanMtPmpzX2wycGJzaXplKSkgIT0KKwkgICAgbGUxNl90b19jcHUoanMtPmpzX2wyYmZhY3RvcikpCisJCXJldHVybiAxOworCisJaWYgKHN0cmxlbigoY2hhciAqKSBqcy0+anNfbGFiZWwpKQorCQlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsIGpzLT5qc19sYWJlbCwgc2l6ZW9mKGpzLT5qc19sYWJlbCkpOworCWJsa2lkX3Byb2JlX3NldF91dWlkKHByLCBqcy0+anNfdXVpZCk7CisJcmV0dXJuIDA7Cit9CisKKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBqZnNfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiamZzIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfamZzLAorCS5taW5zegkJPSAxNiAqIDEwMjQgKiAxMDI0LAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIkpGUzEiLCAubGVuID0gNCwgLmtib2ZmID0gMzIgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2ptaWNyb25fcmFpZC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9qbWljcm9uX3JhaWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGUwZTFjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9qbWljcm9uX3JhaWQuYwpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIEluc3BpcmVkIGJ5IGxpYnZvbHVtZV9pZCBieQorICogICAgIEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworc3RydWN0IGptX21ldGFkYXRhIHsKKwlpbnQ4X3QJCXNpZ25hdHVyZVsyXTsKKwl1aW50OF90CQltaW5vcl92ZXJzaW9uOworCXVpbnQ4X3QJCW1ham9yX3ZlcnNpb247CisJdWludDE2X3QJY2hlY2tzdW07Cit9OworCisjZGVmaW5lIEpNX1NJR05BVFVSRQkJIkpNIgorCitzdGF0aWMgaW50IHByb2JlX2ptcmFpZChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJdWludDY0X3Qgb2ZmOworCXN0cnVjdCBqbV9tZXRhZGF0YSAqam07CisKKwlpZiAocHItPnNpemUgPCAweDEwMDAwKQorCQlyZXR1cm4gLTE7CisKKwlvZmYgPSAoKHByLT5zaXplIC8gMHgyMDApIC0gMSkgKiAweDIwMDsKKwlqbSA9IChzdHJ1Y3Qgam1fbWV0YWRhdGEgKikKKwkJYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwKKwkJCQlvZmYsCisJCQkJc2l6ZW9mKHN0cnVjdCBqbV9tZXRhZGF0YSkpOworCWlmICgham0pCisJCXJldHVybiAtMTsKKwlpZiAobWVtY21wKGptLT5zaWduYXR1cmUsIEpNX1NJR05BVFVSRSwgc2l6ZW9mKEpNX1NJR05BVFVSRSkgLSAxKSAhPSAwKQorCQlyZXR1cm4gLTE7CisJaWYgKGJsa2lkX3Byb2JlX3NwcmludGZfdmVyc2lvbihwciwgIiV1LiV1IiwKKwkJCQlqbS0+bWFqb3JfdmVyc2lvbiwgam0tPm1pbm9yX3ZlcnNpb24pICE9IDApCisJCXJldHVybiAtMTsKKworCXJldHVybiAwOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGptcmFpZF9pZGluZm8gPSB7CisJLm5hbWUJCT0gImptaWNyb25fcmFpZF9tZW1iZXIiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9qbXJhaWQsCisJLm1hZ2ljcwkJPSBCTEtJRF9OT05FX01BR0lDCit9OworCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbGludXhfcmFpZC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saW51eF9yYWlkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZiYTYzNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbGludXhfcmFpZC5jCkBAIC0wLDAgKzEsMTY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIEluc3BpcmVkIGJ5IGxpYnZvbHVtZV9pZCBieQorICogICAgIEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKK3N0cnVjdCBtZHAwX3N1cGVyX2Jsb2NrIHsKKwl1aW50MzJfdAltZF9tYWdpYzsKKwl1aW50MzJfdAltYWpvcl92ZXJzaW9uOworCXVpbnQzMl90CW1pbm9yX3ZlcnNpb247CisJdWludDMyX3QJcGF0Y2hfdmVyc2lvbjsKKwl1aW50MzJfdAlndmFsaWRfd29yZHM7CisJdWludDMyX3QJc2V0X3V1aWQwOworCXVpbnQzMl90CWN0aW1lOworCXVpbnQzMl90CWxldmVsOworCXVpbnQzMl90CXNpemU7CisJdWludDMyX3QJbnJfZGlza3M7CisJdWludDMyX3QJcmFpZF9kaXNrczsKKwl1aW50MzJfdAltZF9taW5vcjsKKwl1aW50MzJfdAlub3RfcGVyc2lzdGVudDsKKwl1aW50MzJfdAlzZXRfdXVpZDE7CisJdWludDMyX3QJc2V0X3V1aWQyOworCXVpbnQzMl90CXNldF91dWlkMzsKK307CisKK3N0cnVjdCBtZHAxX3N1cGVyX2Jsb2NrIHsKKwl1aW50MzJfdAltYWdpYzsKKwl1aW50MzJfdAltYWpvcl92ZXJzaW9uOworCXVpbnQzMl90CWZlYXR1cmVfbWFwOworCXVpbnQzMl90CXBhZDA7CisJdWludDhfdAkJc2V0X3V1aWRbMTZdOworCXVpbnQ4X3QJCXNldF9uYW1lWzMyXTsKK307CisKKyNkZWZpbmUgTURfUkVTRVJWRURfQllURVMJCTB4MTAwMDAKKyNkZWZpbmUgTURfU0JfTUFHSUMJCQkweGE5MmI0ZWZjCisKK3N0YXRpYyBpbnQgcHJvYmVfcmFpZDAoYmxraWRfcHJvYmUgcHIsIG9mZl90IG9mZikKK3sKKwlzdHJ1Y3QgbWRwMF9zdXBlcl9ibG9jayAqbWRwMDsKKwl1bmlvbiB7CisJCXVpbnQzMl90IGludHNbNF07CisJCXVpbnQ4X3QgYnl0ZXNbMTZdOworCX0gdXVpZDsKKworCWlmIChwci0+c2l6ZSA8IDB4MTAwMDApCisJCXJldHVybiAtMTsKKwltZHAwID0gKHN0cnVjdCBtZHAwX3N1cGVyX2Jsb2NrICopCisJCQlibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJCW9mZiwKKwkJCQlzaXplb2Yoc3RydWN0IG1kcDBfc3VwZXJfYmxvY2spKTsKKwlpZiAoIW1kcDApCisJCXJldHVybiAtMTsKKworCW1lbXNldCh1dWlkLmludHMsIDAsIHNpemVvZih1dWlkLmludHMpKTsKKworCWlmIChsZTMyX3RvX2NwdShtZHAwLT5tZF9tYWdpYykgPT0gTURfU0JfTUFHSUMpIHsKKwkJdXVpZC5pbnRzWzBdID0gc3dhYjMyKG1kcDAtPnNldF91dWlkMCk7CisJCWlmIChsZTMyX3RvX2NwdShtZHAwLT5taW5vcl92ZXJzaW9uID49IDkwKSkgeworCQkJdXVpZC5pbnRzWzFdID0gc3dhYjMyKG1kcDAtPnNldF91dWlkMSk7CisJCQl1dWlkLmludHNbMl0gPSBzd2FiMzIobWRwMC0+c2V0X3V1aWQyKTsKKwkJCXV1aWQuaW50c1szXSA9IHN3YWIzMihtZHAwLT5zZXRfdXVpZDMpOworCQl9CisJCWlmIChibGtpZF9wcm9iZV9zcHJpbnRmX3ZlcnNpb24ocHIsICIldS4ldS4ldSIsCisJCQkJbGUzMl90b19jcHUobWRwMC0+bWFqb3JfdmVyc2lvbiksCisJCQkJbGUzMl90b19jcHUobWRwMC0+bWlub3JfdmVyc2lvbiksCisJCQkJbGUzMl90b19jcHUobWRwMC0+cGF0Y2hfdmVyc2lvbikpICE9IDApCisJCQlyZXR1cm4gLTE7CisKKwl9IGVsc2UgaWYgKGJlMzJfdG9fY3B1KG1kcDAtPm1kX21hZ2ljKSA9PSBNRF9TQl9NQUdJQykgeworCQl1dWlkLmludHNbMF0gPSBtZHAwLT5zZXRfdXVpZDA7CisJCWlmIChiZTMyX3RvX2NwdShtZHAwLT5taW5vcl92ZXJzaW9uID49IDkwKSkgeworCQkJdXVpZC5pbnRzWzFdID0gbWRwMC0+c2V0X3V1aWQxOworCQkJdXVpZC5pbnRzWzJdID0gbWRwMC0+c2V0X3V1aWQyOworCQkJdXVpZC5pbnRzWzNdID0gbWRwMC0+c2V0X3V1aWQzOworCQl9CisJCWlmIChibGtpZF9wcm9iZV9zcHJpbnRmX3ZlcnNpb24ocHIsICIldS4ldS4ldSIsCisJCQkJYmUzMl90b19jcHUobWRwMC0+bWFqb3JfdmVyc2lvbiksCisJCQkJYmUzMl90b19jcHUobWRwMC0+bWlub3JfdmVyc2lvbiksCisJCQkJYmUzMl90b19jcHUobWRwMC0+cGF0Y2hfdmVyc2lvbikpICE9IDApCisJCQlyZXR1cm4gLTE7CisJfSBlbHNlCisJCXJldHVybiAtMTsKKworCWlmIChibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgKHVuc2lnbmVkIGNoYXIgKikgdXVpZC5ieXRlcykgIT0gMCkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHJvYmVfcmFpZDEoYmxraWRfcHJvYmUgcHIsIG9mZl90IG9mZikKK3sKKwlzdHJ1Y3QgbWRwMV9zdXBlcl9ibG9jayAqbWRwMTsKKworCW1kcDEgPSAoc3RydWN0IG1kcDFfc3VwZXJfYmxvY2sgKikKKwkJCWJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsCisJCQkJb2ZmLAorCQkJCXNpemVvZihzdHJ1Y3QgbWRwMV9zdXBlcl9ibG9jaykpOworCWlmICghbWRwMSkKKwkJcmV0dXJuIC0xOworCWlmIChsZTMyX3RvX2NwdShtZHAxLT5tYWdpYykgIT0gTURfU0JfTUFHSUMpCisJCXJldHVybiAtMTsKKwlpZiAobGUzMl90b19jcHUobWRwMS0+bWFqb3JfdmVyc2lvbikgIT0gMSkKKwkJcmV0dXJuIC0xOworCWlmIChibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgKHVuc2lnbmVkIGNoYXIgKikgbWRwMS0+c2V0X3V1aWQpICE9IDApCisJCXJldHVybiAtMTsKKwlpZiAoYmxraWRfcHJvYmVfc2V0X2xhYmVsKHByLCBtZHAxLT5zZXRfbmFtZSwKKwkJCQlzaXplb2YobWRwMS0+c2V0X25hbWUpKSAhPSAwKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHByb2JlX3JhaWQoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCWNvbnN0IGNoYXIgKnZlciA9IE5VTEw7CisKKwlpZiAocHItPnNpemUgPiBNRF9SRVNFUlZFRF9CWVRFUykgeworCQkvKiB2ZXJzaW9uIDAgYXQgdGhlIGVuZCBvZiB0aGUgZGV2aWNlICovCisJCXVpbnQ2NF90IHNib2ZmID0gKHByLT5zaXplICYgfihNRF9SRVNFUlZFRF9CWVRFUyAtIDEpKQorCQkJICAgICAgICAgLSBNRF9SRVNFUlZFRF9CWVRFUzsKKwkJaWYgKHByb2JlX3JhaWQwKHByLCBzYm9mZikgPT0gMCkKKwkJCXJldHVybiAwOworCisJCS8qIHZlcnNpb24gMS4wIGF0IHRoZSBlbmQgb2YgdGhlIGRldmljZSAqLworCQlzYm9mZiA9IChwci0+c2l6ZSAmIH4oMHgxMDAwIC0gMSkpIC0gMHgyMDAwOworCQlpZiAocHJvYmVfcmFpZDEocHIsIHNib2ZmKSA9PSAwKQorCQkJdmVyID0gIjEuMCI7CisJfQorCisJaWYgKCF2ZXIpIHsKKwkJLyogdmVyc2lvbiAxLjEgYXQgdGhlIHN0YXJ0IG9mIHRoZSBkZXZpY2UgKi8KKwkJaWYgKHByb2JlX3JhaWQxKHByLCAwKSA9PSAwKQorCQkJdmVyID0gIjEuMSI7CisKKwkJLyogdmVyc2lvbiAxLjIgYXQgNGsgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0ICovCisJCWVsc2UgaWYgKHByb2JlX3JhaWQxKHByLCAweDEwMDApID09IDApCisJCQl2ZXIgPSAiMS4yIjsKKwl9CisKKwlpZiAodmVyKSB7CisJCWJsa2lkX3Byb2JlX3NldF92ZXJzaW9uKHByLCB2ZXIpOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIC0xOworfQorCisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gbGludXhyYWlkX2lkaW5mbyA9IHsKKwkubmFtZQkJPSAibGludXhfcmFpZF9tZW1iZXIiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9yYWlkLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xzaV9yYWlkLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xzaV9yYWlkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJhYWFhNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbHNpX3JhaWQuYwpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIEluc3BpcmVkIGJ5IGxpYnZvbHVtZV9pZCBieQorICogICAgIEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworc3RydWN0IGxzaV9tZXRhZGF0YSB7CisJdWludDhfdAkJc2lnWzZdOworfTsKKworCisjZGVmaW5lIExTSV9TSUdOQVRVUkUJCSIkWElERSQiCisKK3N0YXRpYyBpbnQgcHJvYmVfbHNpcmFpZChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJdWludDY0X3Qgb2ZmOworCXN0cnVjdCBsc2lfbWV0YWRhdGEgKmxzaTsKKworCWlmIChwci0+c2l6ZSA8IDB4MTAwMDApCisJCXJldHVybiAtMTsKKworCW9mZiA9ICgocHItPnNpemUgLyAweDIwMCkgLSAxKSAqIDB4MjAwOworCWxzaSA9IChzdHJ1Y3QgbHNpX21ldGFkYXRhICopCisJCWJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsCisJCQkJb2ZmLAorCQkJCXNpemVvZihzdHJ1Y3QgbHNpX21ldGFkYXRhKSk7CisJaWYgKCFsc2kpCisJCXJldHVybiAtMTsKKworCWlmIChtZW1jbXAobHNpLT5zaWcsIExTSV9TSUdOQVRVUkUsIHNpemVvZihMU0lfU0lHTkFUVVJFKS0xKSAhPSAwKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBsc2lyYWlkX2lkaW5mbyA9IHsKKwkubmFtZQkJPSAibHNpX21lZ2FfcmFpZF9tZW1iZXIiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9sc2lyYWlkLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2x1a3MuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbHVrcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZjg1YjUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2x1a3MuYwpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIEluc3BpcmVkIGJ5IGxpYnZvbHVtZV9pZCBieQorICogICAgIEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCisjZGVmaW5lIExVS1NfQ0lQSEVSTkFNRV9MCQkzMgorI2RlZmluZSBMVUtTX0NJUEhFUk1PREVfTAkJMzIKKyNkZWZpbmUgTFVLU19IQVNIU1BFQ19MCQkJMzIKKyNkZWZpbmUgTFVLU19ESUdFU1RTSVpFCQkJMjAKKyNkZWZpbmUgTFVLU19TQUxUU0laRQkJCTMyCisjZGVmaW5lIExVS1NfTUFHSUNfTAkJCTYKKyNkZWZpbmUgVVVJRF9TVFJJTkdfTAkJCTQwCisKK3N0cnVjdCBsdWtzX3BoZHIgeworCXVpbnQ4X3QJCW1hZ2ljW0xVS1NfTUFHSUNfTF07CisJdWludDE2X3QJdmVyc2lvbjsKKwl1aW50OF90CQljaXBoZXJOYW1lW0xVS1NfQ0lQSEVSTkFNRV9MXTsKKwl1aW50OF90CQljaXBoZXJNb2RlW0xVS1NfQ0lQSEVSTU9ERV9MXTsKKwl1aW50OF90CQloYXNoU3BlY1tMVUtTX0hBU0hTUEVDX0xdOworCXVpbnQzMl90CXBheWxvYWRPZmZzZXQ7CisJdWludDMyX3QJa2V5Qnl0ZXM7CisJdWludDhfdAkJbWtEaWdlc3RbTFVLU19ESUdFU1RTSVpFXTsKKwl1aW50OF90CQlta0RpZ2VzdFNhbHRbTFVLU19TQUxUU0laRV07CisJdWludDMyX3QJbWtEaWdlc3RJdGVyYXRpb25zOworCXVpbnQ4X3QJCXV1aWRbVVVJRF9TVFJJTkdfTF07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdGF0aWMgaW50IHByb2JlX2x1a3MoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBsdWtzX3BoZHIgKmhlYWRlcjsKKworCWhlYWRlciA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgbHVrc19waGRyKTsKKwlpZiAoaGVhZGVyID09IE5VTEwpCisJCXJldHVybiAtMTsKKworCWJsa2lkX3Byb2JlX3N0cm5jcHlfdXVpZChwciwgKHVuc2lnbmVkIGNoYXIgKikgaGVhZGVyLT51dWlkLAorCQkJc2l6ZW9mKGhlYWRlci0+dXVpZCkpOworCWJsa2lkX3Byb2JlX3NwcmludGZfdmVyc2lvbihwciwgIiV1IiwgbGUxNl90b19jcHUoaGVhZGVyLT52ZXJzaW9uKSk7CisJcmV0dXJuIDA7Cit9CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gbHVrc19pZGluZm8gPQoreworCS5uYW1lCQk9ICJjcnlwdG9fTFVLUyIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0NSWVBUTywKKwkucHJvYmVmdW5jCT0gcHJvYmVfbHVrcywKKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICJMVUtTXHhiYVx4YmUiLCAubGVuID0gNiB9LAorCQl7IE5VTEwgfQorCX0KK307CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL2x2bS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9sdm0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWNmNzAzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9sdm0uYwpAQCAtMCwwICsxLDE3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBieSBBbmRyaWVzIEJyb3V3ZXIKKyAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMyBieSBUaGVvZG9yZSBUcydvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgYnkgQW5kcmVhcyBEaWxnZXIKKyAqIENvcHlyaWdodCAoQykgMjAwNCBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCisjZGVmaW5lIExWTTFfSURfTEVOIDEyOAorI2RlZmluZSBMVk0yX0lEX0xFTiAzMgorCitzdHJ1Y3QgbHZtMl9wdl9sYWJlbF9oZWFkZXIgeworCS8qIGxhYmVsX2hlYWRlciAqLworCXVpbnQ4X3QJCWlkWzhdOwkJLyogTEFCRUxPTkUgKi8KKwl1aW50NjRfdAlzZWN0b3JfeGw7CS8qIFNlY3RvciBudW1iZXIgb2YgdGhpcyBsYWJlbCAqLworCXVpbnQzMl90CWNyY194bDsJCS8qIEZyb20gbmV4dCBmaWVsZCB0byBlbmQgb2Ygc2VjdG9yICovCisJdWludDMyX3QJb2Zmc2V0X3hsOwkvKiBPZmZzZXQgZnJvbSBzdGFydCBvZiBzdHJ1Y3QgdG8gY29udGVudHMgKi8KKwl1aW50OF90CQl0eXBlWzhdOwkvKiBMVk0yIDAwMSAqLworCS8qIHB2X2hlYWRlciAqLworCXVpbnQ4X3QJCXB2X3V1aWRbTFZNMl9JRF9MRU5dOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKK3N0cnVjdCBsdm0xX3B2X2xhYmVsX2hlYWRlciB7CisJdWludDhfdCBpZFsyXTsJCQkvKiBITSAqLworCXVpbnQxNl90IHZlcnNpb247CQkvKiB2ZXJzaW9uIDEgb3IgMiAqLworCXVpbnQzMl90IF9ub3R1c2VkWzEwXTsJCS8qIGx2bTEgaW50ZXJuYWxzICovCisJdWludDhfdCBwdl91dWlkW0xWTTFfSURfTEVOXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisjZGVmaW5lIExWTTJfTEFCRUxfU0laRSA1MTIKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbHZtMl9jYWxjX2NyYyhjb25zdCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBzaXplKQoreworCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgY3JjdGFiW10gPSB7CisJCTB4MDAwMDAwMDAsIDB4MWRiNzEwNjQsIDB4M2I2ZTIwYzgsIDB4MjZkOTMwYWMsCisJCTB4NzZkYzQxOTAsIDB4NmI2YjUxZjQsIDB4NGRiMjYxNTgsIDB4NTAwNTcxM2MsCisJCTB4ZWRiODgzMjAsIDB4ZjAwZjkzNDQsIDB4ZDZkNmEzZTgsIDB4Y2I2MWIzOGMsCisJCTB4OWI2NGMyYjAsIDB4ODZkM2QyZDQsIDB4YTAwYWUyNzgsIDB4YmRiZGYyMWMKKwl9OworCXVuc2lnbmVkIGludCBpLCBjcmMgPSAweGY1OTdhNmNmOworCWNvbnN0IHVpbnQ4X3QgKmRhdGEgPSAoY29uc3QgdWludDhfdCAqKSBidWY7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisJCWNyYyBePSAqZGF0YSsrOworCQljcmMgPSAoY3JjID4+IDQpIF4gY3JjdGFiW2NyYyAmIDB4Zl07CisJCWNyYyA9IChjcmMgPj4gNCkgXiBjcmN0YWJbY3JjICYgMHhmXTsKKwl9CisJcmV0dXJuIGNyYzsKK30KKworLyogTGVuZ3RoIG9mIHJlYWwgVVVJRCBpcyBhbHdheXMgTFZNMl9JRF9MRU4gKi8KK3N0YXRpYyB2b2lkIGZvcm1hdF9sdm1fdXVpZChjaGFyICpkc3RfdXVpZCwgY2hhciAqc3JjX3V1aWQpCit7CisJdW5zaWduZWQgaW50IGksIGI7CisKKwlmb3IgKGkgPSAwLCBiID0gMTsgaSA8IExWTTJfSURfTEVOOyBpKyssIGIgPDw9IDEpIHsKKwkJaWYgKGIgJiAweDQ0NDQ0NDApCisJCQkqZHN0X3V1aWQrKyA9ICctJzsKKwkJKmRzdF91dWlkKysgPSAqc3JjX3V1aWQrKzsKKwl9CisJKmRzdF91dWlkID0gJ1wwJzsKK30KKworc3RhdGljIGludCBwcm9iZV9sdm0yKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlpbnQgc2VjdG9yID0gbWFnLT5rYm9mZiA8PCAxOworCXN0cnVjdCBsdm0yX3B2X2xhYmVsX2hlYWRlciAqbGFiZWw7CisJY2hhciB1dWlkW0xWTTJfSURfTEVOICsgN107CisJdW5zaWduZWQgY2hhciAqYnVmOworCisJYnVmID0gYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwKKwkJCW1hZy0+a2JvZmYgPDwgMTAsCisJCQk1MTIgKyBzaXplb2Yoc3RydWN0IGx2bTJfcHZfbGFiZWxfaGVhZGVyKSk7CisJaWYgKCFidWYpCisJCXJldHVybiAtMTsKKworCS8qIGJ1ZiBpcyBhdCAwayBvciAxayBvZmZzZXQ7IGZpbmQgbGFiZWwgaW5zaWRlICovCisJaWYgKG1lbWNtcChidWYsICJMQUJFTE9ORSIsIDgpID09IDApIHsKKwkJbGFiZWwgPSAoc3RydWN0IGx2bTJfcHZfbGFiZWxfaGVhZGVyICopIGJ1ZjsKKwl9IGVsc2UgaWYgKG1lbWNtcChidWYgKyA1MTIsICJMQUJFTE9ORSIsIDgpID09IDApIHsKKwkJbGFiZWwgPSAoc3RydWN0IGx2bTJfcHZfbGFiZWxfaGVhZGVyICopKGJ1ZiArIDUxMik7CisJCXNlY3RvcisrOworCX0gZWxzZSB7CisJCXJldHVybiAxOworCX0KKworCWlmIChsZTY0X3RvX2NwdShsYWJlbC0+c2VjdG9yX3hsKSAhPSAodW5zaWduZWQpIHNlY3RvcikKKwkJcmV0dXJuIDE7CisKKwlpZiAobHZtMl9jYWxjX2NyYygmbGFiZWwtPm9mZnNldF94bCwgTFZNMl9MQUJFTF9TSVpFIC0KKwkJCSgoY2hhciAqKSAmbGFiZWwtPm9mZnNldF94bCAtIChjaGFyICopIGxhYmVsKSkgIT0KKwkJCWxlMzJfdG9fY3B1KGxhYmVsLT5jcmNfeGwpKSB7CisJCURCRyhERUJVR19QUk9CRSwKKwkJICAgIHByaW50ZigiTFZNMjogbGFiZWwgY2hlY2tzdW0gaW5jb3JyZWN0IGF0IHNlY3RvciAlZFxuIiwKKwkJCSAgIHNlY3RvcikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlmb3JtYXRfbHZtX3V1aWQodXVpZCwgKGNoYXIgKikgbGFiZWwtPnB2X3V1aWQpOworCWJsa2lkX3Byb2JlX3NwcmludGZfdXVpZChwciwgbGFiZWwtPnB2X3V1aWQsIHNpemVvZihsYWJlbC0+cHZfdXVpZCksCisJCQkiJXMiLCB1dWlkKTsKKworCS8qIHRoZSBtYWctPm1hZ2ljIGlzIHRoZSBzYW1lIHN0cmluZyBhcyBsYWJlbC0+dHlwZSwKKwkgKiBidXQgemVybyB0ZXJtaW5hdGVkICovCisJYmxraWRfcHJvYmVfc2V0X3ZlcnNpb24ocHIsIG1hZy0+bWFnaWMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHByb2JlX2x2bTEoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBsdm0xX3B2X2xhYmVsX2hlYWRlciAqbGFiZWw7CisJY2hhciB1dWlkW0xWTTJfSURfTEVOICsgN107CisJdW5zaWduZWQgaW50IHZlcnNpb247CisKKwlsYWJlbCA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgbHZtMV9wdl9sYWJlbF9oZWFkZXIpOworCWlmICghbGFiZWwpCisJCXJldHVybiAtMTsKKworCXZlcnNpb24gPSBsZTE2X3RvX2NwdShsYWJlbC0+dmVyc2lvbik7CisJaWYgKHZlcnNpb24gIT0gMSAmJiB2ZXJzaW9uICE9IDIpCisJCXJldHVybiAxOworCisJZm9ybWF0X2x2bV91dWlkKHV1aWQsIChjaGFyICopIGxhYmVsLT5wdl91dWlkKTsKKwlibGtpZF9wcm9iZV9zcHJpbnRmX3V1aWQocHIsIGxhYmVsLT5wdl91dWlkLCBzaXplb2YobGFiZWwtPnB2X3V1aWQpLAorCQkJIiVzIiwgdXVpZCk7CisKKwlyZXR1cm4gMDsKK30KKworLyogTk9URTogdGhlIG9yaWdpbmFsIGxpYmJsa2lkIHVzZXMgImx2bTJwdiIgYXMgYSBuYW1lICovCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGx2bTJfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiTFZNMl9tZW1iZXIiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9sdm0yLAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIkxWTTIgMDAxIiwgLmxlbiA9IDgsIC5zYm9mZiA9IDB4MjE4IH0sCisJCXsgLm1hZ2ljID0gIkxWTTIgMDAxIiwgLmxlbiA9IDgsIC5zYm9mZiA9IDB4MDE4IH0sCisJCXsgLm1hZ2ljID0gIkxWTTIgMDAxIiwgLmxlbiA9IDgsIC5rYm9mZiA9IDEsIC5zYm9mZiA9IDB4MDE4IH0sCisJCXsgLm1hZ2ljID0gIkxWTTIgMDAxIiwgLmxlbiA9IDgsIC5rYm9mZiA9IDEsIC5zYm9mZiA9IDB4MjE4IH0sCisJCXsgTlVMTCB9CisJfQorfTsKKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBsdm0xX2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gIkxWTTFfbWVtYmVyIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfUkFJRCwKKwkucHJvYmVmdW5jCT0gcHJvYmVfbHZtMSwKKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICJITSIsIC5sZW4gPSAyIH0sCisJCXsgTlVMTCB9CisJfQorfTsKKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBzbmFwY293X2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gIkRNX3NuYXBzaG90X2NvdyIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX09USEVSLAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIlNuQXAiLCAubGVuID0gNCB9LAorCQl7IE5VTEwgfQorCX0KK307CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL21pbml4LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL21pbml4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI5MGMyNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbWluaXguYwpAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBieSBBbmRyaWVzIEJyb3V3ZXIKKyAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMyBieSBUaGVvZG9yZSBUcydvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgYnkgQW5kcmVhcyBEaWxnZXIKKyAqIENvcHlyaWdodCAoQykgMjAwNCBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworc3RydWN0IG1pbml4X3N1cGVyX2Jsb2NrIHsKKyAgICAgICAgdWludDE2X3Qgc19uaW5vZGVzOworICAgICAgICB1aW50MTZfdCBzX256b25lczsKKyAgICAgICAgdWludDE2X3Qgc19pbWFwX2Jsb2NrczsKKyAgICAgICAgdWludDE2X3Qgc196bWFwX2Jsb2NrczsKKyAgICAgICAgdWludDE2X3Qgc19maXJzdGRhdGF6b25lOworICAgICAgICB1aW50MTZfdCBzX2xvZ196b25lX3NpemU7CisgICAgICAgIHVpbnQzMl90IHNfbWF4X3NpemU7CisgICAgICAgIHVpbnQxNl90IHNfbWFnaWM7CisgICAgICAgIHVpbnQxNl90IHNfc3RhdGU7CisgICAgICAgIHVpbnQzMl90IHNfem9uZXM7Cit9OworCitzdHJ1Y3QgbWluaXgzX3N1cGVyX2Jsb2NrIHsKKwl1aW50MzJfdCBzX25pbm9kZXM7CisJdWludDE2X3Qgc19wYWQwOworCXVpbnQxNl90IHNfaW1hcF9ibG9ja3M7CisJdWludDE2X3Qgc196bWFwX2Jsb2NrczsKKwl1aW50MTZfdCBzX2ZpcnN0ZGF0YXpvbmU7CisJdWludDE2X3Qgc19sb2dfem9uZV9zaXplOworCXVpbnQxNl90IHNfcGFkMTsKKwl1aW50MzJfdCBzX21heF9zaXplOworCXVpbnQzMl90IHNfem9uZXM7CisJdWludDE2X3Qgc19tYWdpYzsKKwl1aW50MTZfdCBzX3BhZDI7CisJdWludDE2X3Qgc19ibG9ja3NpemU7CisJdWludDhfdCAgc19kaXNrX3ZlcnNpb247Cit9OworCisjZGVmaW5lIE1JTklYX0JMT0NLX1NJWkVfQklUUyAxMAorI2RlZmluZSBNSU5JWF9CTE9DS19TSVpFICgxIDw8IE1JTklYX0JMT0NLX1NJWkVfQklUUykKKworc3RhdGljIGludCBwcm9iZV9taW5peChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJdW5zaWduZWQgY2hhciAqZXh0OworCWludCB2ZXJzaW9uOworCisJLyogZm9yIG1vcmUgZGV0YWlscyBzZWUgbWFnaWMgc3RyaW5ncyBiZWxvdyAqLworCXN3aXRjaChtYWctPm1hZ2ljWzFdKSB7CisJY2FzZSAnXDAyMyc6CisJCXZlcnNpb24gPSAxOworCQlicmVhazsKKwljYXNlICdcMDQ0JzoKKwkJdmVyc2lvbiA9IDI7CisJCWJyZWFrOworCWNhc2UgJ1wxMTUnOgorCQl2ZXJzaW9uID0gMzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC0xOworCQlicmVhazsKKwl9CisKKwlpZiAodmVyc2lvbiA8PSAyKSB7CisJCXN0cnVjdCBtaW5peF9zdXBlcl9ibG9jayAqc2I7CisJCXVpbnQzMl90IHpvbmVzOworCisJCXNiID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBtaW5peF9zdXBlcl9ibG9jayk7CisJCWlmICghc2IgfHwgc2ItPnNfaW1hcF9ibG9ja3MgPT0gMCB8fCBzYi0+c196bWFwX2Jsb2NrcyA9PSAwKQorCQkJcmV0dXJuIC0xOworCisJCXpvbmVzID0gdmVyc2lvbiA9PSAyID8gc2ItPnNfem9uZXMgOiBzYi0+c19uem9uZXM7CisKKwkJLyogc2FuaXR5IGNoZWNrcyB0byBiZSBzdXJlIHRoYXQgdGhlIEZTIGlzIHJlYWxseSBtaW5peCAqLworCQlpZiAoc2ItPnNfaW1hcF9ibG9ja3MgKiBNSU5JWF9CTE9DS19TSVpFICogOCA8IHNiLT5zX25pbm9kZXMgKyAxKQorCQkJcmV0dXJuIC0xOworCQlpZiAoc2ItPnNfem1hcF9ibG9ja3MgKiBNSU5JWF9CTE9DS19TSVpFICogOCA8IHpvbmVzIC0gc2ItPnNfZmlyc3RkYXRhem9uZSArIDEpCisJCQlyZXR1cm4gLTE7CisKKwl9IGVsc2UgaWYgKHZlcnNpb24gPT0gMykgeworCQlzdHJ1Y3QgbWluaXgzX3N1cGVyX2Jsb2NrICpzYjsKKworCQlzYiA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgbWluaXgzX3N1cGVyX2Jsb2NrKTsKKwkJaWYgKCFzYiB8fCBzYi0+c19pbWFwX2Jsb2NrcyA9PSAwIHx8IHNiLT5zX3ptYXBfYmxvY2tzID09IDApCisJCQlyZXR1cm4gLTE7CisKKwl9CisKKwkvKiB1bmZvcnR1bmF0ZWx5LCBzb21lIHBhcnRzIG9mIGV4dDMgaXMgc29tZXRpbWVzIHBvc3NpYmxlIHRvCisJICogaW50ZXJwcmV0ZWQgYXMgbWluaXggc3VwZXJibG9jay4gU28gY2hlY2sgZm9yIGV4dE4gbWFnaWMKKwkgKiBzdHJpbmcuIChGb3IgZXh0TiBtYWdpYyBzdHJpbmcgYW5kIG9mZnNldHMgc2VlIGV4dC5jLikKKwkgKi8KKwlleHQgPSBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLCAweDQwMCArIDB4MzgsIDIpOworCWlmIChleHQgJiYgbWVtY21wKGV4dCwgIlwxMjNcMzU3IiwgMikgPT0gMCkKKwkJcmV0dXJuIC0xOworCisJYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJWQiLCB2ZXJzaW9uKTsKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBtaW5peF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJtaW5peCIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0sCisJLnByb2JlZnVuYwk9IHByb2JlX21pbml4LAorCS5tYWdpY3MJCT0KKwl7CisJCS8qIHZlcnNpb24gMSAqLworCQl7IC5tYWdpYyA9ICJcMTc3XDAyMyIsIC5sZW4gPSAyLCAua2JvZmYgPSAxLCAuc2JvZmYgPSAweDEwIH0sCisJCXsgLm1hZ2ljID0gIlwyMTdcMDIzIiwgLmxlbiA9IDIsIC5rYm9mZiA9IDEsIC5zYm9mZiA9IDB4MTAgfSwKKworCQkvKiB2ZXJzaW9uIDIgKi8KKwkJeyAubWFnaWMgPSAiXDE1MFwwNDQiLCAubGVuID0gMiwgLmtib2ZmID0gMSwgLnNib2ZmID0gMHgxMCB9LAorCQl7IC5tYWdpYyA9ICJcMTcwXDA0NCIsIC5sZW4gPSAyLCAua2JvZmYgPSAxLCAuc2JvZmYgPSAweDEwIH0sCisKKwkJLyogdmVyc2lvbiAzICovCisJCXsgLm1hZ2ljID0gIlwxMzJcMTE1IiwgLmxlbiA9IDIsIC5rYm9mZiA9IDEsIC5zYm9mZiA9IDB4MTggfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL25ldHdhcmUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbmV0d2FyZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZjIxNjIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL25ldHdhcmUuYwpAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIEluc3BpcmVkIGJ5IGxpYnZvbHVtZV9pZCBieQorICogICAgIEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKK3N0cnVjdCBuZXR3YXJlX3N1cGVyX2Jsb2NrIHsKKwl1aW50OF90CQlTQkhfU2lnbmF0dXJlWzRdOworCXVpbnQxNl90CVNCSF9WZXJzaW9uTWFqb3I7CisJdWludDE2X3QJU0JIX1ZlcnNpb25NaW5vcjsKKwl1aW50MTZfdAlTQkhfVmVyc2lvbk1lZGlhTWFqb3I7CisJdWludDE2X3QJU0JIX1ZlcnNpb25NZWRpYU1pbm9yOworCXVpbnQzMl90CVNCSF9JdGVtc01vdmVkOworCXVpbnQ4X3QJCVNCSF9JbnRlcm5hbElEWzE2XTsKKwl1aW50MzJfdAlTQkhfUGFja2VkU2l6ZTsKKwl1aW50MzJfdAlTQkhfQ2hlY2tzdW07CisJdWludDMyX3QJc3VwZXJzeW5jaWQ7CisJaW50NjRfdAkJc3VwZXJsb2NhdGlvbls0XTsKKwl1aW50MzJfdAlwaHlzU2l6ZVVzZWQ7CisJdWludDMyX3QJc2l6ZVVzZWQ7CisJdWludDMyX3QJc3VwZXJUaW1lU3RhbXA7CisJdWludDMyX3QJcmVzZXJ2ZWQwWzFdOworCWludDY0X3QJCVNCSF9Mb2dnZWRQb29sRGF0YUJsazsKKwlpbnQ2NF90CQlTQkhfUG9vbERhdGFCbGs7CisJdWludDhfdAkJU0JIX09sZEludGVybmFsSURbMTZdOworCXVpbnQzMl90CVNCSF9Qb29sVG9MVlN0YXJ0VVRDOworCXVpbnQzMl90CVNCSF9Qb29sVG9MVkVuZFVUQzsKKwl1aW50MTZfdAlTQkhfVmVyc2lvbk1lZGlhTWFqb3JDcmVhdGU7CisJdWludDE2X3QJU0JIX1ZlcnNpb25NZWRpYU1pbm9yQ3JlYXRlOworCXVpbnQzMl90CVNCSF9CbG9ja3NNb3ZlZDsKKwl1aW50MzJfdAlTQkhfVGVtcEJUU3BCbGs7CisJdWludDMyX3QJU0JIX1RlbXBGVFNwQmxrOworCXVpbnQzMl90CVNCSF9UZW1wRlRTcEJsazE7CisJdWludDMyX3QJU0JIX1RlbXBGVFNwQmxrMjsKKwl1aW50MzJfdAluc3NNYWdpY051bWJlcjsKKwl1aW50MzJfdAlwb29sQ2xhc3NJRDsKKwl1aW50MzJfdAlwb29sSUQ7CisJdWludDMyX3QJY3JlYXRlVGltZTsKKwlpbnQ2NF90CQlTQkhfTG9nZ2VkVm9sdW1lRGF0YUJsazsKKwlpbnQ2NF90CQlTQkhfVm9sdW1lRGF0YUJsazsKKwlpbnQ2NF90CQlTQkhfU3lzdGVtQmVhc3RCbGtOdW07CisJdWludDY0X3QJdG90YWxibG9ja3M7CisJdWludDE2X3QJU0JIX05hbWVbNjRdOworCXVpbnQ4X3QJCVNCSF9Wb2x1bWVJRFsxNl07CisJdWludDhfdAkJU0JIX1Bvb2xJRFsxNl07CisJdWludDhfdAkJU0JIX1Bvb2xJbnRlcm5hbElEWzE2XTsKKwl1aW50NjRfdAlTQkhfTHNuOworCXVpbnQzMl90CVNCSF9TU19FbmFibGVkOworCXVpbnQzMl90CVNCSF9TU19DcmVhdGVUaW1lOworCXVpbnQ4X3QJCVNCSF9TU19PcmlnaW5hbFBvb2xJRFsxNl07CisJdWludDhfdAkJU0JIX1NTX09yaWdpbmFsVm9sdW1lSURbMTZdOworCXVpbnQ4X3QJCVNCSF9TU19HdWlkWzE2XTsKKwl1aW50MTZfdAlTQkhfU1NfT3JpZ2luYWxOYW1lWzY0XTsKKwl1aW50MzJfdAlyZXNlcnZlZDJbNjQtKDIrNDYpXTsKK30gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOworCitzdGF0aWMgaW50IHByb2JlX25ldHdhcmUoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBuZXR3YXJlX3N1cGVyX2Jsb2NrICpudzsKKworCW53ID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBuZXR3YXJlX3N1cGVyX2Jsb2NrKTsKKwlpZiAoIW53KQorCQlyZXR1cm4gLTE7CisKKwlibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgbnctPlNCSF9Qb29sSUQpOworCisJYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJXUuJTAydSIsCisJCSBsZTE2X3RvX2NwdShudy0+U0JIX1ZlcnNpb25NZWRpYU1ham9yKSwKKwkJIGxlMTZfdG9fY3B1KG53LT5TQkhfVmVyc2lvbk1lZGlhTWlub3IpKTsKKworCXJldHVybiAwOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIG5ldHdhcmVfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAibnNzIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfbmV0d2FyZSwKKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICJTUEI1IiwgLmxlbiA9IDQsIC5rYm9mZiA9IDQgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbnRmcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9udGZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzg3ZGViMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbnRmcy5jCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0IEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworc3RydWN0IG50ZnNfc3VwZXJfYmxvY2sgeworCXVpbnQ4X3QJCWp1bXBbM107CisJdWludDhfdAkJb2VtX2lkWzhdOworCXVpbnQ4X3QJCWJpb3NfcGFyYW1ldGVyX2Jsb2NrWzI1XTsKKwl1aW50MTZfdAl1bnVzZWRbMl07CisJdWludDY0X3QJbnVtYmVyX29mX3NlY3RvcnM7CisJdWludDY0X3QJbWZ0X2NsdXN0ZXJfbG9jYXRpb247CisJdWludDY0X3QJbWZ0X21pcnJvcl9jbHVzdGVyX2xvY2F0aW9uOworCWludDhfdAkJY2x1c3Rlcl9wZXJfbWZ0X3JlY29yZDsKKwl1aW50OF90CQlyZXNlcnZlZDFbM107CisJaW50OF90CQljbHVzdGVyX3Blcl9pbmRleF9yZWNvcmQ7CisJdWludDhfdAkJcmVzZXJ2ZWQyWzNdOworCXVpbnQ2NF90CXZvbHVtZV9zZXJpYWw7CisJdWludDE2X3QJY2hlY2tzdW07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdHJ1Y3QgbWFzdGVyX2ZpbGVfdGFibGVfcmVjb3JkIHsKKwl1aW50MzJfdAltYWdpYzsKKwl1aW50MTZfdAl1c2Ffb2ZzOworCXVpbnQxNl90CXVzYV9jb3VudDsKKwl1aW50NjRfdAlsc247CisJdWludDE2X3QJc2VxdWVuY2VfbnVtYmVyOworCXVpbnQxNl90CWxpbmtfY291bnQ7CisJdWludDE2X3QJYXR0cnNfb2Zmc2V0OworCXVpbnQxNl90CWZsYWdzOworCXVpbnQzMl90CWJ5dGVzX2luX3VzZTsKKwl1aW50MzJfdAlieXRlc19hbGxvY2F0ZWQ7Cit9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKKworc3RydWN0IGZpbGVfYXR0cmlidXRlIHsKKwl1aW50MzJfdAl0eXBlOworCXVpbnQzMl90CWxlbjsKKwl1aW50OF90CQlub25fcmVzaWRlbnQ7CisJdWludDhfdAkJbmFtZV9sZW47CisJdWludDE2X3QJbmFtZV9vZmZzZXQ7CisJdWludDE2X3QJZmxhZ3M7CisJdWludDE2X3QJaW5zdGFuY2U7CisJdWludDMyX3QJdmFsdWVfbGVuOworCXVpbnQxNl90CXZhbHVlX29mZnNldDsKK30gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOworCisjZGVmaW5lIE1GVF9SRUNPUkRfVk9MVU1FCQkJMworI2RlZmluZSBNRlRfUkVDT1JEX0FUVFJfVk9MVU1FX05BTUUJCTB4NjAKKyNkZWZpbmUgTUZUX1JFQ09SRF9BVFRSX1ZPTFVNRV9JTkZPCQkweDcwCisjZGVmaW5lIE1GVF9SRUNPUkRfQVRUUl9PQkpFQ1RfSUQJCTB4NDAKKyNkZWZpbmUgTUZUX1JFQ09SRF9BVFRSX0VORAkJCTB4ZmZmZmZmZmZ1CisKK3N0YXRpYyBpbnQgcHJvYmVfbnRmcyhibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IG50ZnNfc3VwZXJfYmxvY2sgKm5zOworCXN0cnVjdCBtYXN0ZXJfZmlsZV90YWJsZV9yZWNvcmQgKm1mdDsKKwlzdHJ1Y3QgZmlsZV9hdHRyaWJ1dGUgKmF0dHI7CisJaW50CQlieXRlc19wZXJfc2VjdG9yLCBzZWN0b3JzX3Blcl9jbHVzdGVyOworCWludAkJbWZ0X3JlY29yZF9zaXplLCBhdHRyX29mZiwgYXR0cl9sZW47CisJdW5zaWduZWQgaW50CWF0dHJfdHlwZSwgdmFsX2xlbjsKKwlpbnQJCXZhbF9vZmY7CisJdWludDY0X3QJCW5yX2NsdXN0ZXJzOworCWJsa2lkX2xvZmZfdCBvZmY7CisJdW5zaWduZWQgY2hhciAqYnVmX21mdCwgKnZhbDsKKworCW5zID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBudGZzX3N1cGVyX2Jsb2NrKTsKKwlpZiAoIW5zKQorCQlyZXR1cm4gLTE7CisKKwlieXRlc19wZXJfc2VjdG9yID0gbnMtPmJpb3NfcGFyYW1ldGVyX2Jsb2NrWzBdICsKKwkJKG5zLT5iaW9zX3BhcmFtZXRlcl9ibG9ja1sxXSAgPDwgOCk7CisJc2VjdG9yc19wZXJfY2x1c3RlciA9IG5zLT5iaW9zX3BhcmFtZXRlcl9ibG9ja1syXTsKKworCWlmICgoYnl0ZXNfcGVyX3NlY3RvciA8IDUxMikgfHwgKHNlY3RvcnNfcGVyX2NsdXN0ZXIgPT0gMCkpCisJCXJldHVybiAxOworCisJaWYgKG5zLT5jbHVzdGVyX3Blcl9tZnRfcmVjb3JkIDwgMCkKKwkJbWZ0X3JlY29yZF9zaXplID0gMSA8PCAoMCAtIG5zLT5jbHVzdGVyX3Blcl9tZnRfcmVjb3JkKTsKKwllbHNlCisJCW1mdF9yZWNvcmRfc2l6ZSA9IG5zLT5jbHVzdGVyX3Blcl9tZnRfcmVjb3JkICoKKwkJCXNlY3RvcnNfcGVyX2NsdXN0ZXIgKiBieXRlc19wZXJfc2VjdG9yOworCW5yX2NsdXN0ZXJzID0gbGU2NF90b19jcHUobnMtPm51bWJlcl9vZl9zZWN0b3JzKSAvIHNlY3RvcnNfcGVyX2NsdXN0ZXI7CisKKwlpZiAoKGxlNjRfdG9fY3B1KG5zLT5tZnRfY2x1c3Rlcl9sb2NhdGlvbikgPiBucl9jbHVzdGVycykgfHwKKwkgICAgKGxlNjRfdG9fY3B1KG5zLT5tZnRfbWlycm9yX2NsdXN0ZXJfbG9jYXRpb24pID4gbnJfY2x1c3RlcnMpKQorCQlyZXR1cm4gMTsKKworCW9mZiA9IGxlNjRfdG9fY3B1KG5zLT5tZnRfbWlycm9yX2NsdXN0ZXJfbG9jYXRpb24pICoKKwkJYnl0ZXNfcGVyX3NlY3RvciAqIHNlY3RvcnNfcGVyX2NsdXN0ZXI7CisKKwlidWZfbWZ0ID0gYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwgb2ZmLCBtZnRfcmVjb3JkX3NpemUpOworCWlmICghYnVmX21mdCkKKwkJcmV0dXJuIDE7CisKKwlpZiAobWVtY21wKGJ1Zl9tZnQsICJGSUxFIiwgNCkpCisJCXJldHVybiAxOworCisJb2ZmID0gbGU2NF90b19jcHUobnMtPm1mdF9jbHVzdGVyX2xvY2F0aW9uKSAqIGJ5dGVzX3Blcl9zZWN0b3IgKgorCQlzZWN0b3JzX3Blcl9jbHVzdGVyOworCisJYnVmX21mdCA9IGJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsIG9mZiwgbWZ0X3JlY29yZF9zaXplKTsKKwlpZiAoIWJ1Zl9tZnQpCisJCXJldHVybiAxOworCisJaWYgKG1lbWNtcChidWZfbWZ0LCAiRklMRSIsIDQpKQorCQlyZXR1cm4gMTsKKworCW9mZiArPSBNRlRfUkVDT1JEX1ZPTFVNRSAqIG1mdF9yZWNvcmRfc2l6ZTsKKworCWJ1Zl9tZnQgPSBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLCBvZmYsIG1mdF9yZWNvcmRfc2l6ZSk7CisJaWYgKCFidWZfbWZ0KQorCQlyZXR1cm4gMTsKKworCWlmIChtZW1jbXAoYnVmX21mdCwgIkZJTEUiLCA0KSkKKwkJcmV0dXJuIDE7CisKKwltZnQgPSAoc3RydWN0IG1hc3Rlcl9maWxlX3RhYmxlX3JlY29yZCAqKSBidWZfbWZ0OworCisJYXR0cl9vZmYgPSBsZTE2X3RvX2NwdShtZnQtPmF0dHJzX29mZnNldCk7CisKKwl3aGlsZSAoMSkgeworCQlhdHRyID0gKHN0cnVjdCBmaWxlX2F0dHJpYnV0ZSAqKSAoYnVmX21mdCArIGF0dHJfb2ZmKTsKKwkJYXR0cl9sZW4gPSBsZTE2X3RvX2NwdShhdHRyLT5sZW4pOworCQlhdHRyX3R5cGUgPSBsZTMyX3RvX2NwdShhdHRyLT50eXBlKTsKKwkJdmFsX29mZiA9IGxlMTZfdG9fY3B1KGF0dHItPnZhbHVlX29mZnNldCk7CisJCXZhbF9sZW4gPSBsZTMyX3RvX2NwdShhdHRyLT52YWx1ZV9sZW4pOworCisJCWF0dHJfb2ZmICs9IGF0dHJfbGVuOworCisJCWlmICgoYXR0cl9vZmYgPiBtZnRfcmVjb3JkX3NpemUpIHx8CisJCSAgICAoYXR0cl9sZW4gPT0gMCkpCisJCQlicmVhazsKKworCQlpZiAoYXR0cl90eXBlID09IE1GVF9SRUNPUkRfQVRUUl9FTkQpCisJCQlicmVhazsKKworCQlpZiAoYXR0cl90eXBlID09IE1GVF9SRUNPUkRfQVRUUl9WT0xVTUVfTkFNRSkgeworCQkJdmFsID0gKCh1aW50OF90ICopIGF0dHIpICsgdmFsX29mZjsKKwkJCWJsa2lkX3Byb2JlX3NldF91dGY4bGFiZWwocHIsIHZhbCwgdmFsX2xlbiwgQkxLSURfRU5DX1VURjE2TEUpOworCQl9CisJfQorCisJYmxraWRfcHJvYmVfc3ByaW50Zl91dWlkKHByLAorCQkJKHVuc2lnbmVkIGNoYXIgKikgJm5zLT52b2x1bWVfc2VyaWFsLAorCQkJc2l6ZW9mKG5zLT52b2x1bWVfc2VyaWFsKSwKKwkJCSIlMDE2IiBQUklYNjQsIGxlNjRfdG9fY3B1KG5zLT52b2x1bWVfc2VyaWFsKSk7CisJcmV0dXJuIDA7Cit9CisKKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBudGZzX2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gIm50ZnMiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9udGZzLAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIk5URlMgICAgIiwgLmxlbiA9IDgsIC5zYm9mZiA9IDMgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL252aWRpYV9yYWlkLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL252aWRpYV9yYWlkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNlN2YxMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvbnZpZGlhX3JhaWQuYwpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA1IEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqCisgKiBJbnNwaXJlZCBieSBsaWJ2b2x1bWVfaWQgYnkKKyAqICAgICBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3QgbnZfbWV0YWRhdGEgeworCXVpbnQ4X3QJCXZlbmRvcls4XTsKKwl1aW50MzJfdAlzaXplOworCXVpbnQzMl90CWNoa3N1bTsKKwl1aW50MTZfdAl2ZXJzaW9uOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworI2RlZmluZSBOVklESUFfU0lHTkFUVVJFCQkiTlZJRElBIgorCitzdGF0aWMgaW50IHByb2JlX252cmFpZChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJdWludDY0X3Qgb2ZmOworCXN0cnVjdCBudl9tZXRhZGF0YSAqbnY7CisKKwlpZiAocHItPnNpemUgPCAweDEwMDAwKQorCQlyZXR1cm4gLTE7CisKKwlvZmYgPSAoKHByLT5zaXplIC8gMHgyMDApIC0gMikgKiAweDIwMDsKKwludiA9IChzdHJ1Y3QgbnZfbWV0YWRhdGEgKikKKwkJYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwKKwkJCQlvZmYsCisJCQkJc2l6ZW9mKHN0cnVjdCBudl9tZXRhZGF0YSkpOworCWlmICghbnYpCisJCXJldHVybiAtMTsKKworCWlmIChtZW1jbXAobnYtPnZlbmRvciwgTlZJRElBX1NJR05BVFVSRSwgc2l6ZW9mKE5WSURJQV9TSUdOQVRVUkUpLTEpICE9IDApCisJCXJldHVybiAtMTsKKworCWlmIChibGtpZF9wcm9iZV9zcHJpbnRmX3ZlcnNpb24ocHIsICIldSIsIGxlMTZfdG9fY3B1KG52LT52ZXJzaW9uKSkgIT0gMCkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIDA7Cit9CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gbnZyYWlkX2lkaW5mbyA9IHsKKwkubmFtZQkJPSAibnZpZGlhX3JhaWRfbWVtYmVyIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfUkFJRCwKKwkucHJvYmVmdW5jCT0gcHJvYmVfbnZyYWlkLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL29jZnMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvb2Nmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYmY0MWIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL29jZnMuYwpAQCAtMCwwICsxLDIxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMSBieSBBbmRyaWVzIEJyb3V3ZXIKKyAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMyBieSBUaGVvZG9yZSBUcydvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3Qgb2Nmc192b2x1bWVfaGVhZGVyIHsKKwl1bnNpZ25lZCBjaGFyCW1pbm9yX3ZlcnNpb25bNF07CisJdW5zaWduZWQgY2hhcgltYWpvcl92ZXJzaW9uWzRdOworCXVuc2lnbmVkIGNoYXIJc2lnbmF0dXJlWzEyOF07CisJY2hhcgkJbW91bnRbMTI4XTsKKwl1bnNpZ25lZCBjaGFyICAgbW91bnRfbGVuWzJdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IG9jZnNfdm9sdW1lX2xhYmVsIHsKKwl1bnNpZ25lZCBjaGFyCWRpc2tfbG9ja1s0OF07CisJY2hhcgkJbGFiZWxbNjRdOworCXVuc2lnbmVkIGNoYXIJbGFiZWxfbGVuWzJdOworCXVuc2lnbmVkIGNoYXIgICB2b2xfaWRbMTZdOworCXVuc2lnbmVkIGNoYXIgICB2b2xfaWRfbGVuWzJdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworI2RlZmluZSBvY2ZzbWFqb3IobykgKCAodWludDMyX3QpIG8ubWFqb3JfdmVyc2lvblswXSBcCisgICAgICAgICAgICAgICAgICAgKyAoKCh1aW50MzJfdCkgby5tYWpvcl92ZXJzaW9uWzFdKSA8PCA4KSBcCisgICAgICAgICAgICAgICAgICAgKyAoKCh1aW50MzJfdCkgby5tYWpvcl92ZXJzaW9uWzJdKSA8PCAxNikgXAorICAgICAgICAgICAgICAgICAgICsgKCgodWludDMyX3QpIG8ubWFqb3JfdmVyc2lvblszXSkgPDwgMjQpKQorCisjZGVmaW5lIG9jZnNtaW5vcihvKSAoICh1aW50MzJfdCkgby5taW5vcl92ZXJzaW9uWzBdIFwKKyAgICAgICAgICAgICAgICAgICArICgoKHVpbnQzMl90KSBvLm1pbm9yX3ZlcnNpb25bMV0pIDw8IDgpIFwKKyAgICAgICAgICAgICAgICAgICArICgoKHVpbnQzMl90KSBvLm1pbm9yX3ZlcnNpb25bMl0pIDw8IDE2KSBcCisgICAgICAgICAgICAgICAgICAgKyAoKCh1aW50MzJfdCkgby5taW5vcl92ZXJzaW9uWzNdKSA8PCAyNCkpCisKKyNkZWZpbmUgb2Nmc2xhYmVsbGVuKG8pCSgodWludDMyX3Qpby5sYWJlbF9sZW5bMF0gKyAoKCh1aW50MzJfdCkgby5sYWJlbF9sZW5bMV0pIDw8IDgpKQorI2RlZmluZSBvY2ZzbW91bnRsZW4obykJKCh1aW50MzJfdClvLm1vdW50X2xlblswXSArICgoKHVpbnQzMl90KSBvLm1vdW50X2xlblsxXSkgPDwgOCkpCisKK3N0cnVjdCBvY2ZzMl9zdXBlcl9ibG9jayB7CisJdWludDhfdAkJaV9zaWduYXR1cmVbOF07CisJdWludDMyX3QJaV9nZW5lcmF0aW9uOworCWludDE2X3QJCWlfc3ViYWxsb2Nfc2xvdDsKKwl1aW50MTZfdAlpX3N1YmFsbG9jX2JpdDsKKwl1aW50MzJfdAlpX3Jlc2VydmVkMDsKKwl1aW50MzJfdAlpX2NsdXN0ZXJzOworCXVpbnQzMl90CWlfdWlkOworCXVpbnQzMl90CWlfZ2lkOworCXVpbnQ2NF90CWlfc2l6ZTsKKwl1aW50MTZfdAlpX21vZGU7CisJdWludDE2X3QJaV9saW5rc19jb3VudDsKKwl1aW50MzJfdAlpX2ZsYWdzOworCXVpbnQ2NF90CWlfYXRpbWU7CisJdWludDY0X3QJaV9jdGltZTsKKwl1aW50NjRfdAlpX210aW1lOworCXVpbnQ2NF90CWlfZHRpbWU7CisJdWludDY0X3QJaV9ibGtubzsKKwl1aW50NjRfdAlpX2xhc3RfZWJfYmxrOworCXVpbnQzMl90CWlfZnNfZ2VuZXJhdGlvbjsKKwl1aW50MzJfdAlpX2F0aW1lX25zZWM7CisJdWludDMyX3QJaV9jdGltZV9uc2VjOworCXVpbnQzMl90CWlfbXRpbWVfbnNlYzsKKwl1aW50NjRfdAlpX3Jlc2VydmVkMVs5XTsKKwl1aW50NjRfdAlpX3BhZDE7CisJdWludDE2X3QJc19tYWpvcl9yZXZfbGV2ZWw7CisJdWludDE2X3QJc19taW5vcl9yZXZfbGV2ZWw7CisJdWludDE2X3QJc19tbnRfY291bnQ7CisJaW50MTZfdAkJc19tYXhfbW50X2NvdW50OworCXVpbnQxNl90CXNfc3RhdGU7CisJdWludDE2X3QJc19lcnJvcnM7CisJdWludDMyX3QJc19jaGVja2ludGVydmFsOworCXVpbnQ2NF90CXNfbGFzdGNoZWNrOworCXVpbnQzMl90CXNfY3JlYXRvcl9vczsKKwl1aW50MzJfdAlzX2ZlYXR1cmVfY29tcGF0OworCXVpbnQzMl90CXNfZmVhdHVyZV9pbmNvbXBhdDsKKwl1aW50MzJfdAlzX2ZlYXR1cmVfcm9fY29tcGF0OworCXVpbnQ2NF90CXNfcm9vdF9ibGtubzsKKwl1aW50NjRfdAlzX3N5c3RlbV9kaXJfYmxrbm87CisJdWludDMyX3QJc19ibG9ja3NpemVfYml0czsKKwl1aW50MzJfdAlzX2NsdXN0ZXJzaXplX2JpdHM7CisJdWludDE2X3QJc19tYXhfc2xvdHM7CisJdWludDE2X3QJc19yZXNlcnZlZDE7CisJdWludDMyX3QJc19yZXNlcnZlZDI7CisJdWludDY0X3QJc19maXJzdF9jbHVzdGVyX2dyb3VwOworCXVpbnQ4X3QJCXNfbGFiZWxbNjRdOworCXVpbnQ4X3QJCXNfdXVpZFsxNl07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdHJ1Y3Qgb3JhY2xlX2FzbV9kaXNrX2xhYmVsIHsKKwljaGFyIGR1bW15WzMyXTsKKwljaGFyIGRsX3RhZ1s4XTsKKwljaGFyIGRsX2lkWzI0XTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0YXRpYyBpbnQgcHJvYmVfb2NmcyhibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJdW5zaWduZWQgY2hhciAqYnVmOworCXN0cnVjdCBvY2ZzX3ZvbHVtZV9oZWFkZXIgb3ZoOworCXN0cnVjdCBvY2ZzX3ZvbHVtZV9sYWJlbCBvdmw7CisJdWludDMyX3QgbWFqLCBtaW47CisKKwkvKiBoZWFkZXIgKi8KKwlidWYgPSBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLCBtYWctPmtib2ZmIDw8IDEwLAorCQkJc2l6ZW9mKHN0cnVjdCBvY2ZzX3ZvbHVtZV9oZWFkZXIpKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIC0xOworCW1lbWNweSgmb3ZoLCBidWYsIHNpemVvZihvdmgpKTsKKworCS8qIGxhYmVsICovCisJYnVmID0gYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwgKG1hZy0+a2JvZmYgPDwgMTApICsgNTEyLAorCQkJc2l6ZW9mKHN0cnVjdCBvY2ZzX3ZvbHVtZV9sYWJlbCkpOworCWlmICghYnVmKQorCQlyZXR1cm4gLTE7CisJbWVtY3B5KCZvdmwsIGJ1Ziwgc2l6ZW9mKG92bCkpOworCisJbWFqID0gb2Nmc21ham9yKG92aCk7CisJbWluID0gb2Nmc21pbm9yKG92aCk7CisKKwlpZiAobWFqID09IDEpCisJCWJsa2lkX3Byb2JlX3NldF92YWx1ZShwciwgIlNFQ19UWVBFIiwKKwkJCQkodW5zaWduZWQgY2hhciAqKSAib2NmczEiLCBzaXplb2YoIm9jZnMxIikpOworCWVsc2UgaWYgKG1haiA+PSA5KQorCQlibGtpZF9wcm9iZV9zZXRfdmFsdWUocHIsICJTRUNfVFlQRSIsCisJCQkJKHVuc2lnbmVkIGNoYXIgKikgIm50b2NmcyIsIHNpemVvZigibnRvY2ZzIikpOworCisJYmxraWRfcHJvYmVfc2V0X2xhYmVsKHByLCAodW5zaWduZWQgY2hhciAqKSBvdmwubGFiZWwsCisJCQkJb2Nmc2xhYmVsbGVuKG92bCkpOworCWJsa2lkX3Byb2JlX3NldF92YWx1ZShwciwgIk1PVU5UIiwgKHVuc2lnbmVkIGNoYXIgKikgb3ZoLm1vdW50LAorCQkJCW9jZnNtb3VudGxlbihvdmgpKTsKKwlibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgb3ZsLnZvbF9pZCk7CisJYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJXUuJXUiLCBtYWosIG1pbik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHJvYmVfb2NmczIoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBvY2ZzMl9zdXBlcl9ibG9jayAqb3NiOworCisJb3NiID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCBvY2ZzMl9zdXBlcl9ibG9jayk7CisJaWYgKCFvc2IpCisJCXJldHVybiAtMTsKKworCWJsa2lkX3Byb2JlX3NldF9sYWJlbChwciwgKHVuc2lnbmVkIGNoYXIgKikgb3NiLT5zX2xhYmVsLCBzaXplb2Yob3NiLT5zX2xhYmVsKSk7CisJYmxraWRfcHJvYmVfc2V0X3V1aWQocHIsIG9zYi0+c191dWlkKTsKKworCWJsa2lkX3Byb2JlX3NwcmludGZfdmVyc2lvbihwciwgIiV1LiV1IiwKKwkJbGUxNl90b19jcHUob3NiLT5zX21ham9yX3Jldl9sZXZlbCksCisJCWxlMTZfdG9fY3B1KG9zYi0+c19taW5vcl9yZXZfbGV2ZWwpKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHByb2JlX29yYWNsZWFzbShibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IG9yYWNsZV9hc21fZGlza19sYWJlbCAqZGw7CisKKwlkbCA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3Qgb3JhY2xlX2FzbV9kaXNrX2xhYmVsKTsKKwlpZiAoIWRsKQorCQlyZXR1cm4gLTE7CisKKwlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsICh1bnNpZ25lZCBjaGFyICopIGRsLT5kbF9pZCwgc2l6ZW9mKGRsLT5kbF9pZCkpOworCXJldHVybiAwOworfQorCisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gb2Nmc19pZGluZm8gPQoreworCS5uYW1lCQk9ICJvY2ZzIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfb2NmcywKKwkubWluc3oJCT0gMTA4ICogMTAyNCAqIDEwMjQsCisJLm1hZ2ljcwkJPQorCXsKKwkJeyAubWFnaWMgPSAiT3JhY2xlQ0ZTIiwgLmxlbiA9IDksIC5rYm9mZiA9IDggfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIG9jZnMyX2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gIm9jZnMyIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfb2NmczIsCisJLm1pbnN6CQk9IDEwOCAqIDEwMjQgKiAxMDI0LAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIk9DRlNWMiIsIC5sZW4gPSA2LCAua2JvZmYgPSAxIH0sCisJCXsgLm1hZ2ljID0gIk9DRlNWMiIsIC5sZW4gPSA2LCAua2JvZmYgPSAyIH0sCisJCXsgLm1hZ2ljID0gIk9DRlNWMiIsIC5sZW4gPSA2LCAua2JvZmYgPSA0IH0sCisJCXsgLm1hZ2ljID0gIk9DRlNWMiIsIC5sZW4gPSA2LCAua2JvZmYgPSA4IH0sCisJCXsgTlVMTCB9CisJfQorfTsKKworLyogT3JhY2xlIEFTTSAoQXV0b21hdGljIFN0b3JhZ2UgTWFuYWdlbWVudCkgKi8KK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gb3JhY2xlYXNtX2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gIm9yYWNsZWFzbSIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0sCisJLnByb2JlZnVuYwk9IHByb2JlX29yYWNsZWFzbSwKKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICJPUkNMRElTSyIsIC5sZW4gPSA4LCAuc2JvZmYgPSAzMiB9LAorCQl7IE5VTEwgfQorCX0KK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvcHJvbWlzZV9yYWlkLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3Byb21pc2VfcmFpZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YTY0NDYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3Byb21pc2VfcmFpZC5jCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogSW5zcGlyZWQgYnkgbGlidm9sdW1lX2lkIGJ5CisgKiAgICAgS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKK3N0cnVjdCBwcm9taXNlX21ldGFkYXRhIHsKKwl1aW50OF90CXNpZ1syNF07Cit9OworCisjZGVmaW5lIFBEQ19DT05GSUdfT0ZGCQkweDEyMDAKKyNkZWZpbmUgUERDX1NJR05BVFVSRQkJIlByb21pc2UgVGVjaG5vbG9neSwgSW5jLiIKKworc3RhdGljIGludCBwcm9iZV9wZGNyYWlkKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwlzdGF0aWMgdW5zaWduZWQgaW50IHNlY3RvcnNbXSA9IHsKKwkJNjMsIDI1NSwgMjU2LCAxNiwgMzk5LCAwCisJfTsKKworCWlmIChwci0+c2l6ZSA8IDB4NDAwMDApCisJCXJldHVybiAtMTsKKworCWZvciAoaSA9IDA7IHNlY3RvcnNbaV0gIT0gMDsgaSsrKSB7CisJCXVpbnQ2NF90IG9mZjsKKwkJc3RydWN0IHByb21pc2VfbWV0YWRhdGEgKnBkYzsKKworCQlvZmYgPSAoKHByLT5zaXplIC8gMHgyMDApIC0gc2VjdG9yc1tpXSkgKiAweDIwMDsKKwkJcGRjID0gKHN0cnVjdCBwcm9taXNlX21ldGFkYXRhICopCisJCQkJYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwKKwkJCQkJb2ZmLAorCQkJCQlzaXplb2Yoc3RydWN0IHByb21pc2VfbWV0YWRhdGEpKTsKKwkJaWYgKCFwZGMpCisJCQlyZXR1cm4gLTE7CisKKwkJaWYgKG1lbWNtcChwZGMtPnNpZywgUERDX1NJR05BVFVSRSwKKwkJCQlzaXplb2YoUERDX1NJR05BVFVSRSkgLSAxKSA9PSAwKQorCQkJcmV0dXJuIDA7CisJfQorCXJldHVybiAtMTsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBwZGNyYWlkX2lkaW5mbyA9IHsKKwkubmFtZQkJPSAicHJvbWlzZV9mYXN0dHJhY2tfcmFpZF9tZW1iZXIiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9wZGNyYWlkLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3JlaXNlcmZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3JlaXNlcmZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIxZjUyMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvcmVpc2VyZnMuYwpAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMSBieSBBbmRyaWVzIEJyb3V3ZXIKKyAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMyBieSBUaGVvZG9yZSBUcydvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3QgcmVpc2VyZnNfc3VwZXJfYmxvY2sgeworCXVpbnQzMl90CXJzX2Jsb2Nrc19jb3VudDsKKwl1aW50MzJfdAlyc19mcmVlX2Jsb2NrczsKKwl1aW50MzJfdAlyc19yb290X2Jsb2NrOworCXVpbnQzMl90CXJzX2pvdXJuYWxfYmxvY2s7CisJdWludDMyX3QJcnNfam91cm5hbF9kZXY7CisJdWludDMyX3QJcnNfb3JpZ19qb3VybmFsX3NpemU7CisJdWludDMyX3QJcnNfZHVtbXkyWzVdOworCXVpbnQxNl90CXJzX2Jsb2Nrc2l6ZTsKKwl1aW50MTZfdAlyc19kdW1teTNbM107CisJdW5zaWduZWQgY2hhcglyc19tYWdpY1sxMl07CisJdWludDMyX3QJcnNfZHVtbXk0WzVdOworCXVuc2lnbmVkIGNoYXIJcnNfdXVpZFsxNl07CisJY2hhcgkJcnNfbGFiZWxbMTZdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IHJlaXNlcjRfc3VwZXJfYmxvY2sgeworCXVuc2lnbmVkIGNoYXIJcnM0X21hZ2ljWzE2XTsKKwl1aW50MTZfdAlyczRfZHVtbXlbMl07CisJdW5zaWduZWQgY2hhcglyczRfdXVpZFsxNl07CisJdW5zaWduZWQgY2hhcglyczRfbGFiZWxbMTZdOworCXVpbnQ2NF90CXJzNF9kdW1teTI7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdGF0aWMgaW50IHByb2JlX3JlaXNlcihibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IHJlaXNlcmZzX3N1cGVyX2Jsb2NrICpyczsKKwl1bnNpZ25lZCBpbnQgYmxvY2tzaXplOworCisJcnMgPSBibGtpZF9wcm9iZV9nZXRfc2IocHIsIG1hZywgc3RydWN0IHJlaXNlcmZzX3N1cGVyX2Jsb2NrKTsKKwlpZiAoIXJzKQorCQlyZXR1cm4gLTE7CisKKwlibG9ja3NpemUgPSBsZTE2X3RvX2NwdShycy0+cnNfYmxvY2tzaXplKTsKKworCS8qIFRoZSBibG9ja3NpemUgbXVzdCBiZSBhdCBsZWFzdCAxayAqLworCWlmICgoYmxvY2tzaXplID4+IDEwKSA9PSAwKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9QQVJBTTsKKworCS8qIElmIHRoZSBzdXBlcmJsb2NrIGlzIGluc2lkZSB0aGUgam91cm5hbCwgd2UgaGF2ZSB0aGUgd3Jvbmcgb25lICovCisJaWYgKG1hZy0+a2JvZmYgLyAoYmxvY2tzaXplID4+IDEwKSA+IGxlMzJfdG9fY3B1KHJzLT5yc19qb3VybmFsX2Jsb2NrKSkKKwkJcmV0dXJuIC1CTEtJRF9FUlJfQklHOworCisJLyogTEFCRUwvVVVJRCBhcmUgb25seSB2YWxpZCBmb3IgbGF0ZXIgdmVyc2lvbnMgb2YgUmVpc2VyZnMgdjMuNi4gKi8KKwlpZiAobWFnLT5tYWdpY1s2XSA9PSAnMicgfHwgbWFnLT5tYWdpY1s2XSA9PSAnMycpIHsKKwkJaWYgKCpycy0+cnNfbGFiZWwpCisJCQlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsCisJCQkJCSh1bnNpZ25lZCBjaGFyICopIHJzLT5yc19sYWJlbCwKKwkJCQkJc2l6ZW9mKHJzLT5yc19sYWJlbCkpOworCQlibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgcnMtPnJzX3V1aWQpOworCX0KKworCWlmIChtYWctPm1hZ2ljWzZdID09ICczJykKKwkJYmxraWRfcHJvYmVfc2V0X3ZlcnNpb24ocHIsICJKUiIpOworCWVsc2UgaWYgKG1hZy0+bWFnaWNbNl0gPT0gJzInKQorCQlibGtpZF9wcm9iZV9zZXRfdmVyc2lvbihwciwgIjMuNiIpOworCWVsc2UKKwkJYmxraWRfcHJvYmVfc2V0X3ZlcnNpb24ocHIsICIzLjUiKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHByb2JlX3JlaXNlcjQoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCByZWlzZXI0X3N1cGVyX2Jsb2NrICpyczQ7CisKKwlyczQgPSBibGtpZF9wcm9iZV9nZXRfc2IocHIsIG1hZywgc3RydWN0IHJlaXNlcjRfc3VwZXJfYmxvY2spOworCWlmICghcnM0KQorCQlyZXR1cm4gLTE7CisKKwlpZiAoKnJzNC0+cnM0X2xhYmVsKQorCQlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsIHJzNC0+cnM0X2xhYmVsLCBzaXplb2YocnM0LT5yczRfbGFiZWwpKTsKKwlibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgcnM0LT5yczRfdXVpZCk7CisJYmxraWRfcHJvYmVfc2V0X3ZlcnNpb24ocHIsICI0Iik7CisKKwlyZXR1cm4gMDsKK30KKworCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHJlaXNlcl9pZGluZm8gPQoreworCS5uYW1lCQk9ICJyZWlzZXJmcyIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0sCisJLnByb2JlZnVuYwk9IHByb2JlX3JlaXNlciwKKwkubWluc3oJCT0gNDA5NiAqIDUxMiwJLyogbm90IHN1cmUsIHRoaXMgaXMgbWluaW1hbCBzaXplIG9mIGpvdXJuYWwgKi8KKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICJSZUlzRXJGcyIsICAubGVuID0gOCwgLmtib2ZmID0gOCwgIC5zYm9mZiA9IDB4MzQgfSwKKwkJeyAubWFnaWMgPSAiUmVJc0VyMkZzIiwgLmxlbiA9IDksIC5rYm9mZiA9IDY0LCAuc2JvZmYgPSAweDM0IH0sCisJCXsgLm1hZ2ljID0gIlJlSXNFcjNGcyIsIC5sZW4gPSA5LCAua2JvZmYgPSA2NCwgLnNib2ZmID0gMHgzNCB9LAorCQl7IC5tYWdpYyA9ICJSZUlzRXJGcyIsICAubGVuID0gOCwgLmtib2ZmID0gNjQsIC5zYm9mZiA9IDB4MzQgfSwKKwkJeyAubWFnaWMgPSAiUmVJc0VyRnMiLCAgLmxlbiA9IDgsIC5rYm9mZiA9ICA4LCAuc2JvZmYgPSAyMCAgIH0sCisJCXsgTlVMTCB9CisJfQorfTsKKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyByZWlzZXI0X2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gInJlaXNlcjQiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9yZWlzZXI0LAorCS5taW5zegkJPSA0MDk2ICogNTEyLAkvKiBub3Qgc3VyZSwgdGhpcyBpcyBtaW5pbWFsIHNpemUgb2Ygam91cm5hbCAqLworCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIlJlSXNFcjQiLCAubGVuID0gNywgLmtib2ZmID0gNjQgfSwKKwkJeyBOVUxMIH0KKwl9Cit9OworCisKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3JvbWZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3JvbWZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFlZjk5NgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvcm9tZnMuYwpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAxIGJ5IEFuZHJpZXMgQnJvdXdlcgorICogQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzIGJ5IFRoZW9kb3JlIFRzJ28KKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKK3N0cnVjdCByb21mc19zdXBlcl9ibG9jayB7CisJdW5zaWduZWQgY2hhcglyb3NfbWFnaWNbOF07CisJdWludDMyX3QJcm9zX2R1bW15MVsyXTsKKwl1bnNpZ25lZCBjaGFyCXJvc192b2x1bWVbMTZdOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RhdGljIGludCBwcm9iZV9yb21mcyhibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IHJvbWZzX3N1cGVyX2Jsb2NrICpyb3M7CisKKwlyb3MgPSBibGtpZF9wcm9iZV9nZXRfc2IocHIsIG1hZywgc3RydWN0IHJvbWZzX3N1cGVyX2Jsb2NrKTsKKwlpZiAoIXJvcykKKwkJcmV0dXJuIC0xOworCisJaWYgKHN0cmxlbigoY2hhciAqKSByb3MtPnJvc192b2x1bWUpKQorCQlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsIHJvcy0+cm9zX3ZvbHVtZSwKKwkJCQlzaXplb2Yocm9zLT5yb3Nfdm9sdW1lKSk7CisJcmV0dXJuIDA7Cit9CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gcm9tZnNfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAicm9tZnMiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9yb21mcywKKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICItcm9tMWZzLSIsIC5sZW4gPSA4IH0sCisJCXsgTlVMTCB9CisJfQorfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9zaWxpY29uX3JhaWQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvc2lsaWNvbl9yYWlkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE0NGU1MAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvc2lsaWNvbl9yYWlkLmMKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwNSBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKgorICogSW5zcGlyZWQgYnkgbGlidm9sdW1lX2lkIGJ5CisgKiAgICAgS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKK3N0cnVjdCBzaWxpY29uX21ldGFkYXRhIHsKKwl1aW50OF90CQl1bmtub3duMFsweDJFXTsKKwl1aW50OF90CQlhc2NpaV92ZXJzaW9uWzB4MzYgLSAweDJFXTsKKwl1aW50OF90CQlkaXNrbmFtZVsweDU2IC0gMHgzNl07CisJdWludDhfdAkJdW5rbm93bjFbMHg2MCAtIDB4NTZdOworCXVpbnQzMl90CW1hZ2ljOworCXVpbnQzMl90CXVua25vd24xYVsweDZDIC0gMHg2NF07CisJdWludDMyX3QJYXJyYXlfc2VjdG9yc19sb3c7CisJdWludDMyX3QJYXJyYXlfc2VjdG9yc19oaWdoOworCXVpbnQ4X3QJCXVua25vd24yWzB4NzggLSAweDc0XTsKKwl1aW50MzJfdAl0aGlzZGlza19zZWN0b3JzOworCXVpbnQ4X3QJCXVua25vd24zWzB4MTAwIC0gMHg3Q107CisJdWludDhfdAkJdW5rbm93bjRbMHgxMDQgLSAweDEwMF07CisJdWludDE2X3QJcHJvZHVjdF9pZDsKKwl1aW50MTZfdAl2ZW5kb3JfaWQ7CisJdWludDE2X3QJbWlub3JfdmVyOworCXVpbnQxNl90CW1ham9yX3ZlcjsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKKyNkZWZpbmUgU0lMSUNPTl9NQUdJQwkJMHgyRjAwMDAwMAorCisKK3N0YXRpYyBpbnQgcHJvYmVfc2lscmFpZChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJdWludDY0X3Qgb2ZmOworCXN0cnVjdCBzaWxpY29uX21ldGFkYXRhICpzaWw7CisKKwlpZiAocHItPnNpemUgPCAweDEwMDAwKQorCQlyZXR1cm4gLTE7CisKKwlvZmYgPSAoKHByLT5zaXplIC8gMHgyMDApIC0gMSkgKiAweDIwMDsKKworCXNpbCA9IChzdHJ1Y3Qgc2lsaWNvbl9tZXRhZGF0YSAqKQorCQkJYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwgb2ZmLAorCQkJCXNpemVvZihzdHJ1Y3Qgc2lsaWNvbl9tZXRhZGF0YSkpOworCWlmICghc2lsKQorCQlyZXR1cm4gLTE7CisKKwlpZiAobGUzMl90b19jcHUoc2lsLT5tYWdpYykgIT0gU0lMSUNPTl9NQUdJQykKKwkJcmV0dXJuIC0xOworCisJaWYgKGJsa2lkX3Byb2JlX3NwcmludGZfdmVyc2lvbihwciwgIiV1LiV1IiwKKwkJCQlsZTE2X3RvX2NwdShzaWwtPm1ham9yX3ZlciksCisJCQkJbGUxNl90b19jcHUoc2lsLT5taW5vcl92ZXIpKSAhPSAwKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBzaWxyYWlkX2lkaW5mbyA9IHsKKwkubmFtZQkJPSAic2lsaWNvbl9tZWRsZXlfcmFpZF9tZW1iZXIiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9zaWxyYWlkLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3NxdWFzaGZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3NxdWFzaGZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVmMTAyOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvc3F1YXNoZnMuYwpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIEluc3BpcmVkIGJ5IGxpYnZvbHVtZV9pZCBieQorICogICAgIEtheSBTaWV2ZXJzIDxrYXkuc2lldmVyc0B2cmZ5Lm9yZz4KKyAqCisgKiBUaGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgImJpdG9wcy5oIgkvKiBzd2FiMTYoKSAqLworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKK3N0cnVjdCBzcXNoX3N1cGVyX2Jsb2NrIHsKKwl1aW50MzJfdAlzX21hZ2ljOworCXVpbnQzMl90CWlub2RlczsKKwl1aW50MzJfdAlieXRlc191c2VkXzI7CisJdWludDMyX3QJdWlkX3N0YXJ0XzI7CisJdWludDMyX3QJZ3VpZF9zdGFydF8yOworCXVpbnQzMl90CWlub2RlX3RhYmxlX3N0YXJ0XzI7CisJdWludDMyX3QJZGlyZWN0b3J5X3RhYmxlX3N0YXJ0XzI7CisJdWludDE2X3QJc19tYWpvcjsKKwl1aW50MTZfdAlzX21pbm9yOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RhdGljIGludCBwcm9iZV9zcXVhc2hmcyhibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IHNxc2hfc3VwZXJfYmxvY2sgKnNxOworCisJc3EgPSBibGtpZF9wcm9iZV9nZXRfc2IocHIsIG1hZywgc3RydWN0IHNxc2hfc3VwZXJfYmxvY2spOworCWlmICghc3EpCisJCXJldHVybiAtMTsKKworCWlmIChzdHJjbXAobWFnLT5tYWdpYywgInNxc2giKSA9PSAwIHx8CisJICAgIHN0cmNtcChtYWctPm1hZ2ljLCAicXNocyIpID09IDApCisJCWJsa2lkX3Byb2JlX3NwcmludGZfdmVyc2lvbihwciwgIiV1LiV1IiwKKwkJCQlzcS0+c19tYWpvciwKKwkJCQlzcS0+c19taW5vcik7CisJZWxzZQorCQlibGtpZF9wcm9iZV9zcHJpbnRmX3ZlcnNpb24ocHIsICIldS4ldSIsCisJCQkJc3dhYjE2KHNxLT5zX21ham9yKSwKKwkJCQlzd2FiMTYoc3EtPnNfbWlub3IpKTsKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBzcXVhc2hmc19pZGluZm8gPQoreworCS5uYW1lCQk9ICJzcXVhc2hmcyIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0sCisJLnByb2JlZnVuYwk9IHByb2JlX3NxdWFzaGZzLAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gInNxc2giLCAubGVuID0gNCB9LAorCQl7IC5tYWdpYyA9ICJoc3FzIiwgLmxlbiA9IDQgfSwgLyogc3dhcCAqLworCisJCS8qIExaTUEgdmVyc2lvbiAqLworCQl7IC5tYWdpYyA9ICJxc2hzIiwgLmxlbiA9IDQgfSwKKwkJeyAubWFnaWMgPSAic2hzcSIsIC5sZW4gPSA0IH0sIC8qIHN3YXAgKi8KKwkJeyBOVUxMIH0KKwl9Cit9OworCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvc3VwZXJibG9ja3MuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvc3VwZXJibG9ja3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjZlZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9zdXBlcmJsb2Nrcy5jCkBAIC0wLDAgKzEsNzQyIEBACisvKgorICogc3VwZXJibG9ja3MuYyAtIHJlYWRzIGluZm9ybWF0aW9uIGZyb20gZmlsZXN5c3RlbSBhbmQgcmFpZCBzdXBlcmJsb2NrcworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKworI2luY2x1ZGUgImJsa2Rldi5oIgorI2luY2x1ZGUgImJsa2lkUC5oIgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworLyoqCisgKiBTRUNUSU9OOnN1cGVyYmxvY2tzCisgKiBAdGl0bGU6IFN1cGVyYmxvY2tzIHByb2JpbmcKKyAqIEBzaG9ydF9kZXNjcmlwdGlvbjogZmlsZXN5c3RlbXMgYW5kIHJhaWRzIHN1cGVyYmxvY2tzIHByb2JpbmcuCisgKgorICogVGhlIGxpYnJhcnkgQVBJIGhhcyBiZWVuIG9yaWdpbmFseSBkZXNpZ25lZCBmb3Igc3VwZXJibG9ja3MgcHJvYmluZyBvbmx5LgorICogVGhpcyBpcyByZWFzb24gd2h5IHNvbWUgKmRlcHJlY2F0ZWQqIHN1cGVyYmxvY2sgc3BlY2lmaWMgZnVuY3Rpb25zIGRvbid0IHVzZQorICogJ19zdXBlcmJsb2Nrc18nIG5hbWVzcGFjZSBpbiB0aGUgZnVuY3Rpb24gbmFtZS4gUGxlYXNlLCBkb24ndCB1c2UgdGhlc2UKKyAqIGZ1bmN0aW9ucyBpbiBuZXcgY29kZS4KKyAqCisgKiBUaGUgJ3N1cGVyYmxvY2tzJyBwcm9iZXJzIHN1cHBvcnQgTkFNRT12YWx1ZSAodGFncykgaW50ZXJmYWNlIG9ubHkuIFRoZQorICogc3VwZXJibG9ja3MgcHJvYmluZyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgKGFuZCBjb250cm9sZWQgYnkKKyAqIGJsa2lkX3Byb2JlX2VuYWJsZV9zdXBlcmJsb2NrcygpKS4KKyAqCisgKiBDdXJyZW50bHkgc3VwcG9ydGVkIHRhZ3M6CisgKgorICogQFRZUEU6IGZpbGVzeXN0ZW0gdHlwZQorICoKKyAqIEBTRUNfVFlQRTogc2Vjb25kYXJ5IGZpbGVzeXN0ZW0gdHlwZQorICoKKyAqIEBMQUJFTDogZmlsZXN5c3RlbSBsYWJlbAorICoKKyAqIEBMQUJFTF9SQVc6IHJhdyBsYWJlbCBmcm9tIEZTIHN1cGVyYmxvY2sKKyAqCisgKiBAVVVJRDogZmlsZXN5c3RlbSBVVUlEIChsb3dlciBjYXNlKQorICoKKyAqIEBVVUlEX1NVQjogc3Vidm9sdW1lIHV1aWQgKGUuZy4gYnRyZnMpCisgKgorICogQFVVSURfUkFXOiByYXcgVVVJRCBmcm9tIEZTIHN1cGVyYmxvY2sKKyAqCisgKiBARVhUX0pPVVJOQUw6IGV4dGVybmFsIGpvdXJuYWwgVVVJRAorICoKKyAqIEBVU0FHRTogIHVzYWdlIHN0cmluZzogInJhaWQiLCAiZmlsZXN5c3RlbSIsIC4uLgorICoKKyAqIEBWRVJTSU9OOiBmaWxlc3lzdGVtIHZlcnNpb24KKyAqCisgKiBATU9VTlQ6IGNsdXN0ZXIgbW91bnQgbmFtZSAoPykgLS0gb2NmcyBvbmx5CisgKgorICogQFNCTUFHSUM6IHN1cGVyIGJsb2NrIG1hZ2ljIHN0cmluZworICoKKyAqIEBTQk1BR0lDX09GRlNFVDogb2Zmc2V0IG9mIFNCTUFHSUMKKyAqCisgKiBARlNTSVpFOiBzaXplIG9mIGZpbGVzc3lzdGVtIFtub3QtaW1wbGVtZW50ZWQgeWV0XQorICovCisKK3N0YXRpYyBpbnQgc3VwZXJibG9ja3NfcHJvYmUoYmxraWRfcHJvYmUgcHIsIHN0cnVjdCBibGtpZF9jaGFpbiAqY2huKTsKK3N0YXRpYyBpbnQgc3VwZXJibG9ja3Nfc2FmZXByb2JlKGJsa2lkX3Byb2JlIHByLCBzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobik7CisKK3N0YXRpYyBpbnQgYmxraWRfcHJvYmVfc2V0X3VzYWdlKGJsa2lkX3Byb2JlIHByLCBpbnQgdXNhZ2UpOworCisKKy8qCisgKiBTdXBlcmJsb2NrcyBjaGFpbnMgcHJvYmluZyBmdW5jdGlvbnMKKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gKmlkaW5mb3NbXSA9Cit7CisJLyogUkFJRHMgKi8KKwkmbGludXhyYWlkX2lkaW5mbywKKwkmZGRmcmFpZF9pZGluZm8sCisJJmlzd3JhaWRfaWRpbmZvLAorCSZsc2lyYWlkX2lkaW5mbywKKwkmdmlhcmFpZF9pZGluZm8sCisJJnNpbHJhaWRfaWRpbmZvLAorCSZudnJhaWRfaWRpbmZvLAorCSZwZGNyYWlkX2lkaW5mbywKKwkmaGlnaHBvaW50NDV4X2lkaW5mbywKKwkmaGlnaHBvaW50Mzd4X2lkaW5mbywKKwkmYWRyYWlkX2lkaW5mbywKKwkmam1yYWlkX2lkaW5mbywKKworCSZkcmJkX2lkaW5mbywKKwkmbHZtMl9pZGluZm8sCisJJmx2bTFfaWRpbmZvLAorCSZzbmFwY293X2lkaW5mbywKKwkmbHVrc19pZGluZm8sCisJJnZtZnNfdm9sdW1lX2lkaW5mbywKKworCS8qIEZpbGVzeXN0ZW1zICovCisJJnZmYXRfaWRpbmZvLAorCSZzd3N1c3BlbmRfaWRpbmZvLAorCSZzd2FwX2lkaW5mbywKKwkmeGZzX2lkaW5mbywKKwkmZXh0NGRldl9pZGluZm8sCisJJmV4dDRfaWRpbmZvLAorCSZleHQzX2lkaW5mbywKKwkmZXh0Ml9pZGluZm8sCisJJmpiZF9pZGluZm8sCisJJnJlaXNlcl9pZGluZm8sCisJJnJlaXNlcjRfaWRpbmZvLAorCSZqZnNfaWRpbmZvLAorCSZ1ZGZfaWRpbmZvLAorCSZpc285NjYwX2lkaW5mbywKKwkmemZzX2lkaW5mbywKKwkmaGZzcGx1c19pZGluZm8sCisJJmhmc19pZGluZm8sCisJJnVmc19pZGluZm8sCisJJmhwZnNfaWRpbmZvLAorCSZzeXN2X2lkaW5mbywKKyAgICAgICAgJnhlbml4X2lkaW5mbywKKwkmbnRmc19pZGluZm8sCisJJmNyYW1mc19pZGluZm8sCisJJnJvbWZzX2lkaW5mbywKKwkmbWluaXhfaWRpbmZvLAorCSZnZnNfaWRpbmZvLAorCSZnZnMyX2lkaW5mbywKKwkmb2Nmc19pZGluZm8sCisJJm9jZnMyX2lkaW5mbywKKwkmb3JhY2xlYXNtX2lkaW5mbywKKwkmdnhmc19pZGluZm8sCisJJnNxdWFzaGZzX2lkaW5mbywKKwkmbmV0d2FyZV9pZGluZm8sCisJJmJ0cmZzX2lkaW5mbywKKwkmdWJpZnNfaWRpbmZvLAorCSZiZnNfaWRpbmZvLAorCSZ2bWZzX2ZzX2lkaW5mbworfTsKKworLyoKKyAqIERyaXZlciBkZWZpbml0aW9uCisgKi8KK2NvbnN0IHN0cnVjdCBibGtpZF9jaGFpbmRydiBzdXBlcmJsb2Nrc19kcnYgPSB7CisJLmlkICAgICAgICAgICA9IEJMS0lEX0NIQUlOX1NVQkxLUywKKwkubmFtZSAgICAgICAgID0gInN1cGVyYmxvY2tzIiwKKwkuZGZsdF9lbmFibGVkID0gVFJVRSwKKwkuZGZsdF9mbGFncyAgID0gQkxLSURfU1VCTEtTX0RFRkFVTFQsCisJLmlkaW5mb3MgICAgICA9IGlkaW5mb3MsCisJLm5pZGluZm9zICAgICA9IEFSUkFZX1NJWkUoaWRpbmZvcyksCisJLmhhc19mbHRyICAgICA9IFRSVUUsCisJLnByb2JlICAgICAgICA9IHN1cGVyYmxvY2tzX3Byb2JlLAorCS5zYWZlcHJvYmUgICAgPSBzdXBlcmJsb2Nrc19zYWZlcHJvYmUKK307CisKKworLyoqCisgKiBibGtpZF9wcm9iZV9lbmFibGVfc3VwZXJibG9ja3M6CisgKiBAcHI6IHByb2JlCisgKiBAZW5hYmxlOiBUUlVFL0ZBTFNFCisgKgorICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgc3VwZXJibG9ja3MgcHJvYmluZyBmb3Igbm9uLWJpbmFyeSBpbnRlcmZhY2UuCisgKgorICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQgYmxraWRfcHJvYmVfZW5hYmxlX3N1cGVyYmxvY2tzKGJsa2lkX3Byb2JlIHByLCBpbnQgZW5hYmxlKQoreworCWlmICghcHIpCisJCXJldHVybiAtMTsKKwlwci0+Y2hhaW5zW0JMS0lEX0NIQUlOX1NVQkxLU10uZW5hYmxlZCA9IGVuYWJsZTsKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9zZXRfc3VwZXJibG9ja3NfZmxhZ3M6CisgKiBAcHI6IHByb2JlcgorICogQGZsYWdzOiBCTEtJRF9TVUJMS1NfKiBmbGFncworICoKKyAqIFNldHMgcHJvYmluZyBmbGFncyB0byB0aGUgc3VwZXJibG9ja3MgcHJvYmVyLiBUaGlzIGZ1bmN0aW9uIGlzIG9wdGlvbmFsLCB0aGUKKyAqIGRlZmF1bHQgYXJlIEJMS0lEX1NVQkxLU19ERUZBVUxUUyBmbGFncy4KKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludCBibGtpZF9wcm9iZV9zZXRfc3VwZXJibG9ja3NfZmxhZ3MoYmxraWRfcHJvYmUgcHIsIGludCBmbGFncykKK3sKKwlpZiAoIXByKQorCQlyZXR1cm4gLTE7CisKKwlwci0+Y2hhaW5zW0JMS0lEX0NIQUlOX1NVQkxLU10uZmxhZ3MgPSBmbGFnczsKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9yZXNldF9zdXBlcmJsb2Nrc19maWx0ZXI6CisgKiBAcHI6IHByb2JlcgorICoKKyAqIFJlc2V0cyBzdXBlcmJsb2NrcyBwcm9iaW5nIGZpbHRlcgorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2Vzcywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX3Byb2JlX3Jlc2V0X3N1cGVyYmxvY2tzX2ZpbHRlcihibGtpZF9wcm9iZSBwcikKK3sKKwlyZXR1cm4gX19ibGtpZF9wcm9iZV9yZXNldF9maWx0ZXIocHIsIEJMS0lEX0NIQUlOX1NVQkxLUyk7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfaW52ZXJ0X3N1cGVyYmxvY2tzX2ZpbHRlcjoKKyAqIEBwcjogcHJvYmVyCisgKgorICogSW52ZXJ0cyBzdXBlcmJsb2NrcyBwcm9iaW5nIGZpbHRlcgorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2Vzcywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX3Byb2JlX2ludmVydF9zdXBlcmJsb2Nrc19maWx0ZXIoYmxraWRfcHJvYmUgcHIpCit7CisJcmV0dXJuIF9fYmxraWRfcHJvYmVfaW52ZXJ0X2ZpbHRlcihwciwgQkxLSURfQ0hBSU5fU1VCTEtTKTsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9maWx0ZXJfc3VwZXJibG9ja3NfdHlwZToKKyAqIEBwcjogcHJvYmVyCisgKiBAZmxhZzogZmlsdGVyIEJMS0lEX0ZMVFJfe05PVElOLE9OTFlJTn0gZmxhZworICogQG5hbWVzOiBOVUxMIHRlcm1pbmF0ZWQgYXJyYXkgb2YgcHJvYmluZyBmdW5jdGlvbiBuYW1lcyAoZS5nLiAidmZhdCIpLgorICoKKyAqICBCTEtJRF9GTFRSX05PVElOICAtIHByb2JlIGZvciBhbGwgaXRlbXMgd2hpY2ggYXJlIE5PVCBJTiBAbmFtZXMKKyAqICBCTEtJRF9GTFRSX09OTFlJTiAtIHByb2JlIGZvciBpdGVtcyB3aGljaCBhcmUgSU4gQG5hbWVzCisgKgorICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQgYmxraWRfcHJvYmVfZmlsdGVyX3N1cGVyYmxvY2tzX3R5cGUoYmxraWRfcHJvYmUgcHIsIGludCBmbGFnLCBjaGFyICpuYW1lc1tdKQoreworCXJldHVybiBfX2Jsa2lkX3Byb2JlX2ZpbHRlcl90eXBlcyhwciwgQkxLSURfQ0hBSU5fU1VCTEtTLCBmbGFnLCBuYW1lcyk7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfZmlsdGVyX3N1cGVyYmxvY2tzX3VzYWdlOgorICogQHByOiBwcm9iZXIKKyAqIEBmbGFnOiBmaWx0ZXIgQkxLSURfRkxUUl97Tk9USU4sT05MWUlOfSBmbGFnCisgKiBAdXNhZ2U6IEJMS0lEX1VTQUdFXyogZmxhZ3MKKyAqCisgKiAgQkxLSURfRkxUUl9OT1RJTiAgLSBwcm9iZSBmb3IgYWxsIGl0ZW1zIHdoaWNoIGFyZSBOT1QgSU4gQHVzYWdlCisgKiAgQkxLSURfRkxUUl9PTkxZSU4gLSBwcm9iZSBmb3IgaXRlbXMgd2hpY2ggYXJlIElOIEB1c2FnZQorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2Vzcywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50IGJsa2lkX3Byb2JlX2ZpbHRlcl9zdXBlcmJsb2Nrc191c2FnZShibGtpZF9wcm9iZSBwciwgaW50IGZsYWcsIGludCB1c2FnZSkKK3sKKwl1bnNpZ25lZCBsb25nICpmbHRyOworCXN0cnVjdCBibGtpZF9jaGFpbiAqY2huOworCWludCBpOworCisJaWYgKCFwcikKKwkJcmV0dXJuIC0xOworCisJZmx0ciA9IGJsa2lkX3Byb2JlX2dldF9maWx0ZXIocHIsIEJMS0lEX0NIQUlOX1NVQkxLUywgVFJVRSk7CisJaWYgKCFmbHRyKQorCQlyZXR1cm4gLTE7CisKKwljaG4gPSAmcHItPmNoYWluc1tCTEtJRF9DSEFJTl9TVUJMS1NdOworCisJZm9yIChpID0gMDsgaSA8IGNobi0+ZHJpdmVyLT5uaWRpbmZvczsgaSsrKSB7CisJCWNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gKmlkID0gY2huLT5kcml2ZXItPmlkaW5mb3NbaV07CisKKwkJaWYgKGlkLT51c2FnZSAmIHVzYWdlKSB7CisJCQlpZiAoZmxhZyAmIEJMS0lEX0ZMVFJfTk9USU4pCisJCQkJYmxraWRfYm1wX3NldF9pdGVtKGNobi0+Zmx0ciwgaSk7CisJCX0gZWxzZSBpZiAoZmxhZyAmIEJMS0lEX0ZMVFJfT05MWUlOKQorCQkJYmxraWRfYm1wX3NldF9pdGVtKGNobi0+Zmx0ciwgaSk7CisJfQorCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJhIG5ldyBwcm9iaW5nIHVzYWdlLWZpbHRlciBpbml0aWFsaXplZFxuIikpOworCXJldHVybiAwOworfQorCisvKioKKyAqIGJsa2lkX2tub3duX2ZzdHlwZToKKyAqIEBmc3R5cGU6IGZpbGVzeXN0ZW0gbmFtZQorICoKKyAqIFJldHVybnM6IDEgZm9yIGtub3duIGZpbGVzeXRlbXMsIG9yIDAgZm9yIHVua25vd24gZmlsZXN5c3RlbS4KKyAqLworaW50IGJsa2lkX2tub3duX2ZzdHlwZShjb25zdCBjaGFyICpmc3R5cGUpCit7CisJaW50IGk7CisKKwlpZiAoIWZzdHlwZSkKKwkJcmV0dXJuIDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpZGluZm9zKTsgaSsrKSB7CisJCWNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gKmlkID0gaWRpbmZvc1tpXTsKKwkJaWYgKHN0cmNtcChpZC0+bmFtZSwgZnN0eXBlKSA9PSAwKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogVGhlIGJsa2lkX2RvX3Byb2JlKCkgYmFja2VuZC4KKyAqLworc3RhdGljIGludCBzdXBlcmJsb2Nrc19wcm9iZShibGtpZF9wcm9iZSBwciwgc3RydWN0IGJsa2lkX2NoYWluICpjaG4pCit7CisJaW50IGkgPSAwOworCisJaWYgKCFwciB8fCBjaG4tPmlkeCA8IC0xKQorCQlyZXR1cm4gLTE7CisJYmxraWRfcHJvYmVfY2hhaW5fcmVzZXRfdmFscyhwciwgY2huKTsKKworCURCRyhERUJVR19MT1dQUk9CRSwKKwkJcHJpbnRmKCItLT4gc3RhcnRpbmcgcHJvYmluZyBsb29wIFtTVUJMS1MgaWR4PSVkXVxuIiwKKwkJY2huLT5pZHgpKTsKKworCWlmIChwci0+c2l6ZSA8PSAwIHx8IChwci0+c2l6ZSA8PSAxMDI0ICYmICFTX0lTQ0hSKHByLT5tb2RlKSkpCisJCS8qIElnbm9yZSB2ZXJ5IHZlcnkgc21hbGwgYmxvY2sgZGV2aWNlcyBvciByZWd1bGFyIGZpbGVzIChlLmcuCisJCSAqIGV4dGVuZGVkIHBhcnRpdGlvbnMpLiBOb3RlIHRoYXQgc2l6ZSBvZiB0aGUgVUJJIGNoYXIgZGV2aWNlcworCQkgKiBpcyAxIGJ5dGUgKi8KKwkJZ290byBub3RoaW5nOworCisJaSA9IGNobi0+aWR4ICsgMTsKKworCWZvciAoIDsgaSA8IEFSUkFZX1NJWkUoaWRpbmZvcyk7IGkrKykgeworCQljb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvICppZDsKKwkJY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWc7CisJCWJsa2lkX2xvZmZfdCBvZmYgPSAwOworCisJCWludCBoYXNtYWcgPSAwOworCisJCWNobi0+aWR4ID0gaTsKKworCQlpZiAoY2huLT5mbHRyICYmIGJsa2lkX2JtcF9nZXRfaXRlbShjaG4tPmZsdHIsIGkpKQorCQkJY29udGludWU7CisKKwkJaWQgPSBpZGluZm9zW2ldOworCisJCWlmIChpZC0+bWluc3ogJiYgaWQtPm1pbnN6ID4gcHItPnNpemUpCisJCQljb250aW51ZTsJLyogdGhlIGRldmljZSBpcyB0b28gc21hbGwgKi8KKworCQltYWcgPSBpZC0+bWFnaWNzID8gJmlkLT5tYWdpY3NbMF0gOiBOVUxMOworCisJCS8qIGRvbid0IHByb2JlIGZvciBSQUlEcywgc3dhcCBvciBqb3VybmFsIG9uIGZsb3BwaWVzICovCisJCWlmICgoaWQtPnVzYWdlICYgKEJMS0lEX1VTQUdFX1JBSUQgfCBCTEtJRF9VU0FHRV9PVEhFUikpICYmCisJCSAgICBibGtpZF9wcm9iZV9pc190aW55KHByKSkKKwkJCWNvbnRpbnVlOworCisJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJbJWRdICVzOlxuIiwgaSwgaWQtPm5hbWUpKTsKKworCQkvKiB0cnkgdG8gZGV0ZWN0IGJ5IG1hZ2ljIHN0cmluZyAqLworCQl3aGlsZShtYWcgJiYgbWFnLT5tYWdpYykgeworCQkJdW5zaWduZWQgY2hhciAqYnVmOworCisJCQlvZmYgPSAobWFnLT5rYm9mZiArIChtYWctPnNib2ZmID4+IDEwKSkgPDwgMTA7CisJCQlidWYgPSBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLCBvZmYsIDEwMjQpOworCisJCQlpZiAoYnVmICYmICFtZW1jbXAobWFnLT5tYWdpYywKKwkJCQkJYnVmICsgKG1hZy0+c2JvZmYgJiAweDNmZiksIG1hZy0+bGVuKSkgeworCQkJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKAorCQkJCQkiXHRtYWdpYyBzYm9mZj0ldSwga2JvZmY9JWxkXG4iLAorCQkJCQltYWctPnNib2ZmLCBtYWctPmtib2ZmKSk7CisJCQkJaGFzbWFnID0gMTsKKwkJCQlvZmYgKz0gbWFnLT5zYm9mZiAmIDB4M2ZmOworCQkJCWJyZWFrOworCQkJfQorCQkJbWFnKys7CisJCX0KKworCQlpZiAoaGFzbWFnID09IDAgJiYgaWQtPm1hZ2ljcyAmJiBpZC0+bWFnaWNzWzBdLm1hZ2ljKQorCQkJLyogbWFnaWMgc3RyaW5nKHMpIGRlZmluZWQsIGJ1dCBub3QgZm91bmQgKi8KKwkJCWNvbnRpbnVlOworCisJCS8qIGZpbmFsIGNoZWNrIGJ5IHByb2JpbmcgZnVuY3Rpb24gKi8KKwkJaWYgKGlkLT5wcm9iZWZ1bmMpIHsKKwkJCURCRyhERUJVR19MT1dQUk9CRSwgcHJpbnRmKCJcdGNhbGwgcHJvYmVmdW5jKClcbiIpKTsKKwkJCWlmIChpZC0+cHJvYmVmdW5jKHByLCBtYWcpICE9IDApCisJCQkJY29udGludWU7CisJCX0KKworCQkvKiBhbGwgY2hla3MgcGFzc2VkICovCisJCWlmIChjaG4tPmZsYWdzICYgQkxLSURfU1VCTEtTX1RZUEUpCisJCQlibGtpZF9wcm9iZV9zZXRfdmFsdWUocHIsICJUWVBFIiwKKwkJCQkodW5zaWduZWQgY2hhciAqKSBpZC0+bmFtZSwKKwkJCQlzdHJsZW4oaWQtPm5hbWUpICsgMSk7CisKKwkJaWYgKGNobi0+ZmxhZ3MgJiBCTEtJRF9TVUJMS1NfVVNBR0UpCisJCQlibGtpZF9wcm9iZV9zZXRfdXNhZ2UocHIsIGlkLT51c2FnZSk7CisKKwkJaWYgKGhhc21hZyAmJiAoY2huLT5mbGFncyAmIEJMS0lEX1NVQkxLU19NQUdJQykpIHsKKwkJCWJsa2lkX3Byb2JlX3NldF92YWx1ZShwciwgIlNCTUFHSUMiLAorCQkJCSh1bnNpZ25lZCBjaGFyICopIG1hZy0+bWFnaWMsIG1hZy0+bGVuKTsKKwkJCWJsa2lkX3Byb2JlX3NwcmludGZfdmFsdWUocHIsICJTQk1BR0lDX09GRlNFVCIsCisJCQkJIiVsbHUiLAlvZmYpOworCQl9CisKKwkJREJHKERFQlVHX0xPV1BST0JFLAorCQkJcHJpbnRmKCI8LS0gbGVhdmluZyBwcm9iaW5nIGxvb3AgKHR5cGU9JXMpIFtTVUJMS1MgaWR4PSVkXVxuIiwKKwkJCWlkLT5uYW1lLCBjaG4tPmlkeCkpOworCQlyZXR1cm4gMDsKKwl9CisKK25vdGhpbmc6CisJREJHKERFQlVHX0xPV1BST0JFLAorCQlwcmludGYoIjwtLSBsZWF2aW5nIHByb2JpbmcgbG9vcCAoZmFpbGVkKSBbU1VCTEtTIGlkeD0lZF1cbiIsCisJCWNobi0+aWR4KSk7CisJcmV0dXJuIDE7Cit9CisKKy8qCisgKiBUaGlzIGlzIHRoZSBzYW1lIGZ1bmN0aW9uIGFzIGJsa2lkX2RvX3Byb2JlKCksIGJ1dCByZXR1cm5zIG9ubHkgb25lIHJlc3VsdAorICogKGNhbm5vdCBiZSB1c2VkIGluIHdoaWxlKCkpIGFuZCBjaGVja3MgZm9yIGFtYml2YWxlbiByZXN1bHRzIChtb3JlCisgKiBmaWxlc3lzdGVtcyBvbiB0aGUgZGV2aWNlKSAtLSBpbiBzdWNoIGNhc2UgcmV0dXJucyAtMi4KKyAqCisgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgZm9yIGZpbGVzeXN0ZW1zIHdoZW4gYSBSQUlEIG9yIGNyeXB0byBzaWduYXR1cmUKKyAqIGlzIGRldGVjdGVkLiAgVGhlIGZ1bmN0aW9uIGFsc28gZG9lcyBub3QgY2hlY2sgZm9yIGNvbGxpc2lvbiBiZXR3ZWVuIFJBSURzCisgKiBhbmQgY3J5cHRvIGRldmljZXMuIFRoZSBmaXJzdCBkZXRlY3RlZCBSQUlEIG9yIGNyeXB0byBkZXZpY2UgaXMgcmV0dXJuZWQuCisgKgorICogVGhlIGZ1bmN0aW9uIGRvZXMgbm90IHByb2JlIGZvciBhbWJpdmFsZW50IHJlc3VsdHMgb24gdmVyeSBzbWFsbCBkZXZpY2VzCisgKiAoZS5nLiBmbG9wcGllcyksIG9uIHNtYWxsIGRldmljZXMgdGhlIGZpcnN0IGRldGVjdGVkIGZpbGVzeXN0ZW0gaXMgcmV0dXJuZWQuCisgKi8KK3N0YXRpYyBpbnQgc3VwZXJibG9ja3Nfc2FmZXByb2JlKGJsa2lkX3Byb2JlIHByLCBzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobikKK3sKKwlzdHJ1Y3QgYmxraWRfcHJ2YWwgdmFsc1tCTEtJRF9OVkFMU19TVUJMS1NdOworCWludCBudmFscyA9IEJMS0lEX05WQUxTX1NVQkxLUzsKKwlpbnQgaWR4ID0gLTE7CisJaW50IGNvdW50ID0gMDsKKwlpbnQgaW50b2wgPSAwOworCWludCByYzsKKworCXdoaWxlICgocmMgPSBzdXBlcmJsb2Nrc19wcm9iZShwciwgY2huKSkgPT0gMCkgeworCisJCWlmIChibGtpZF9wcm9iZV9pc190aW55KHByKSAmJiAhY291bnQpCisJCQkvKiBmbG9wcHkgb3Igc28gLS0gcmV0dXJucyB0aGUgZmlyc3QgcmVzdWx0LiAqLworCQkJcmV0dXJuIDA7CisKKwkJaWYgKCFjb3VudCkgeworCQkJLyogc2F2ZSB0aGUgZmlyc3QgcmVzdWx0ICovCisJCQludmFscyA9IGJsa2lkX3Byb2JlX2NoYWluX2NvcHlfdmFscyhwciwgY2huLCB2YWxzLCBudmFscyk7CisJCQlpZHggPSBjaG4tPmlkeDsKKwkJfQorCQljb3VudCsrOworCisJCWlmIChpZGluZm9zW2Nobi0+aWR4XS0+dXNhZ2UgJiAoQkxLSURfVVNBR0VfUkFJRCB8IEJMS0lEX1VTQUdFX0NSWVBUTykpCisJCQlicmVhazsKKwkJaWYgKCEoaWRpbmZvc1tjaG4tPmlkeF0tPmZsYWdzICYgQkxLSURfSURJTkZPX1RPTEVSQU5UKSkKKwkJCWludG9sKys7CisJfQorCWlmIChyYyA8IDApCisJCXJldHVybiByYzsJCS8qIGVycm9yICovCisJaWYgKGNvdW50ID4gMSAmJiBpbnRvbCkgeworCQlEQkcoREVCVUdfTE9XUFJPQkUsCisJCQlwcmludGYoIkVSUk9SOiBzdXBlcmJsb2NrcyBjaGFpbjogIgorCQkJICAgICAgICJhbWJpdmFsZW50IHJlc3VsdCBkZXRlY3RlZCAoJWQgZmlsZXN5c3RlbXMpIVxuIiwKKwkJCSAgICAgICBjb3VudCkpOworCQlyZXR1cm4gLTI7CQkvKiBlcnJvciwgYW1iaXZhbGVudCByZXN1bHQgKG1vcmUgRlMpICovCisJfQorCWlmICghY291bnQpCisJCXJldHVybiAxOwkJLyogbm90aGluZyBkZXRlY3RlZCAqLworCisJLyogcmVzdG9yZSB0aGUgZmlyc3QgcmVzdWx0ICovCisJYmxraWRfcHJvYmVfY2hhaW5fcmVzZXRfdmFscyhwciwgY2huKTsKKwlibGtpZF9wcm9iZV9hcHBlbmRfdmFscyhwciwgdmFscywgbnZhbHMpOworCWNobi0+aWR4ID0gaWR4OworCisJcmV0dXJuIDA7Cit9CisKK2ludCBibGtpZF9wcm9iZV9zZXRfdmVyc2lvbihibGtpZF9wcm9iZSBwciwgY29uc3QgY2hhciAqdmVyc2lvbikKK3sKKwlzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobiA9IGJsa2lkX3Byb2JlX2dldF9jaGFpbihwcik7CisKKwlpZiAoY2huLT5mbGFncyAmIEJMS0lEX1NVQkxLU19WRVJTSU9OKQorCQlyZXR1cm4gYmxraWRfcHJvYmVfc2V0X3ZhbHVlKHByLCAiVkVSU0lPTiIsCisJCQkgICAodW5zaWduZWQgY2hhciAqKSB2ZXJzaW9uLCBzdHJsZW4odmVyc2lvbikgKyAxKTsKKwlyZXR1cm4gMDsKK30KKworaW50IGJsa2lkX3Byb2JlX3NwcmludGZfdmVyc2lvbihibGtpZF9wcm9iZSBwciwgY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJc3RydWN0IGJsa2lkX2NoYWluICpjaG4gPSBibGtpZF9wcm9iZV9nZXRfY2hhaW4ocHIpOworCWludCByYyA9IDA7CisKKwlpZiAoY2huLT5mbGFncyAmIEJMS0lEX1NVQkxLU19WRVJTSU9OKSB7CisJCXZhX2xpc3QgYXA7CisKKwkJdmFfc3RhcnQoYXAsIGZtdCk7CisJCXJjID0gYmxraWRfcHJvYmVfdnNwcmludGZfdmFsdWUocHIsICJWRVJTSU9OIiwgZm10LCBhcCk7CisJCXZhX2VuZChhcCk7CisJfQorCXJldHVybiByYzsKK30KKworc3RhdGljIGludCBibGtpZF9wcm9iZV9zZXRfdXNhZ2UoYmxraWRfcHJvYmUgcHIsIGludCB1c2FnZSkKK3sKKwljaGFyICp1ID0gTlVMTDsKKworCWlmICh1c2FnZSAmIEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0pCisJCXUgPSAiZmlsZXN5c3RlbSI7CisJZWxzZSBpZiAodXNhZ2UgJiBCTEtJRF9VU0FHRV9SQUlEKQorCQl1ID0gInJhaWQiOworCWVsc2UgaWYgKHVzYWdlICYgQkxLSURfVVNBR0VfQ1JZUFRPKQorCQl1ID0gImNyeXB0byI7CisJZWxzZSBpZiAodXNhZ2UgJiBCTEtJRF9VU0FHRV9PVEhFUikKKwkJdSA9ICJvdGhlciI7CisJZWxzZQorCQl1ID0gInVua25vd24iOworCisJcmV0dXJuIGJsa2lkX3Byb2JlX3NldF92YWx1ZShwciwgIlVTQUdFIiwgKHVuc2lnbmVkIGNoYXIgKikgdSwgc3RybGVuKHUpICsgMSk7Cit9CisKK2ludCBibGtpZF9wcm9iZV9zZXRfbGFiZWwoYmxraWRfcHJvYmUgcHIsIHVuc2lnbmVkIGNoYXIgKmxhYmVsLCBzaXplX3QgbGVuKQoreworCXN0cnVjdCBibGtpZF9jaGFpbiAqY2huID0gYmxraWRfcHJvYmVfZ2V0X2NoYWluKHByKTsKKwlzdHJ1Y3QgYmxraWRfcHJ2YWwgKnY7CisJaWYgKGxlbiA+IEJMS0lEX1BST0JWQUxfQlVGU0laKQorCQlsZW4gPSBCTEtJRF9QUk9CVkFMX0JVRlNJWjsKKworCWlmICgoY2huLT5mbGFncyAmIEJMS0lEX1NVQkxLU19MQUJFTFJBVykgJiYKKwkgICAgYmxraWRfcHJvYmVfc2V0X3ZhbHVlKHByLCAiTEFCRUxfUkFXIiwgbGFiZWwsIGxlbikgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKCEoY2huLT5mbGFncyAmIEJMS0lEX1NVQkxLU19MQUJFTCkpCisJCXJldHVybiAwOworCXYgPSBibGtpZF9wcm9iZV9hc3NpZ25fdmFsdWUocHIsICJMQUJFTCIpOworCWlmICghdikKKwkJcmV0dXJuIC0xOworCisJaWYgKGxlbiA9PSBCTEtJRF9QUk9CVkFMX0JVRlNJWikKKwkJbGVuLS07CQkJCS8qIG1ha2UgYSBzcGFjZSBmb3IgXDAgKi8KKworCW1lbWNweSh2LT5kYXRhLCBsYWJlbCwgbGVuKTsKKwl2LT5kYXRhW2xlbl0gPSAnXDAnOworCisJdi0+bGVuID0gYmxraWRfcnRyaW1fd2hpdGVzcGFjZSh2LT5kYXRhKSArIDE7CisJaWYgKHYtPmxlbiA9PSAxKQorCQlibGtpZF9wcm9iZV9yZXNldF9sYXN0X3ZhbHVlKHByKTsKKwlyZXR1cm4gMDsKK30KKworaW50IGJsa2lkX3Byb2JlX3NldF91dGY4bGFiZWwoYmxraWRfcHJvYmUgcHIsIHVuc2lnbmVkIGNoYXIgKmxhYmVsLAorCQkJCXNpemVfdCBsZW4sIGludCBlbmMpCit7CisJc3RydWN0IGJsa2lkX2NoYWluICpjaG4gPSBibGtpZF9wcm9iZV9nZXRfY2hhaW4ocHIpOworCXN0cnVjdCBibGtpZF9wcnZhbCAqdjsKKworCWlmICgoY2huLT5mbGFncyAmIEJMS0lEX1NVQkxLU19MQUJFTFJBVykgJiYKKwkgICAgYmxraWRfcHJvYmVfc2V0X3ZhbHVlKHByLCAiTEFCRUxfUkFXIiwgbGFiZWwsIGxlbikgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKCEoY2huLT5mbGFncyAmIEJMS0lEX1NVQkxLU19MQUJFTCkpCisJCXJldHVybiAwOworCXYgPSBibGtpZF9wcm9iZV9hc3NpZ25fdmFsdWUocHIsICJMQUJFTCIpOworCWlmICghdikKKwkJcmV0dXJuIC0xOworCisJYmxraWRfZW5jb2RlX3RvX3V0ZjgoZW5jLCB2LT5kYXRhLCBzaXplb2Yodi0+ZGF0YSksIGxhYmVsLCBsZW4pOworCXYtPmxlbiA9IGJsa2lkX3J0cmltX3doaXRlc3BhY2Uodi0+ZGF0YSkgKyAxOworCWlmICh2LT5sZW4gPT0gMSkKKwkJYmxraWRfcHJvYmVfcmVzZXRfbGFzdF92YWx1ZShwcik7CisJcmV0dXJuIDA7Cit9CisKKy8qIGxpa2UgdXVpZF9pc19udWxsKCkgZnJvbSBsaWJ1dWlkLCBidXQgd29ya3Mgd2l0aCBhcmJpdHJhcnkgc2l6ZSBvZiBVVUlEICovCitzdGF0aWMgaW50IHV1aWRfaXNfZW1wdHkoY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQorCQlpZiAoYnVmW2ldKQorCQkJcmV0dXJuIDA7CisJcmV0dXJuIDE7Cit9CisKK2ludCBibGtpZF9wcm9iZV9zcHJpbnRmX3V1aWQoYmxraWRfcHJvYmUgcHIsIHVuc2lnbmVkIGNoYXIgKnV1aWQsCisJCQkJc2l6ZV90IGxlbiwgY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJc3RydWN0IGJsa2lkX2NoYWluICpjaG4gPSBibGtpZF9wcm9iZV9nZXRfY2hhaW4ocHIpOworCWludCByYyA9IC0xOworCXZhX2xpc3QgYXA7CisKKwlpZiAobGVuID4gQkxLSURfUFJPQlZBTF9CVUZTSVopCisJCWxlbiA9IEJMS0lEX1BST0JWQUxfQlVGU0laOworCisJaWYgKHV1aWRfaXNfZW1wdHkodXVpZCwgbGVuKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoKGNobi0+ZmxhZ3MgJiBCTEtJRF9TVUJMS1NfVVVJRFJBVykgJiYKKwkgICAgYmxraWRfcHJvYmVfc2V0X3ZhbHVlKHByLCAiVVVJRF9SQVciLCB1dWlkLCBsZW4pIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmICghKGNobi0+ZmxhZ3MgJiBCTEtJRF9TVUJMS1NfVVVJRCkpCisJCXJldHVybiAwOworCisJdmFfc3RhcnQoYXAsIGZtdCk7CisJcmMgPSBibGtpZF9wcm9iZV92c3ByaW50Zl92YWx1ZShwciwgIlVVSUQiLCBmbXQsIGFwKTsKKwl2YV9lbmQoYXApOworCisJLyogY29udmVydCB0byBsb3dlciBjYXNlICguLmJlIHBhcmFub2lkKSAqLworCWlmICghcmMpIHsKKwkJaW50IGk7CisJCXN0cnVjdCBibGtpZF9wcnZhbCAqdiA9IF9fYmxraWRfcHJvYmVfZ2V0X3ZhbHVlKHByLAorCQkJCQkJYmxraWRfcHJvYmVfbnVtb2ZfdmFsdWVzKHByKSk7CisJCWlmICh2KSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgdi0+bGVuOyBpKyspCisJCQkJaWYgKHYtPmRhdGFbaV0gPj0gJ0EnICYmIHYtPmRhdGFbaV0gPD0gJ0YnKQorCQkJCQl2LT5kYXRhW2ldID0gKHYtPmRhdGFbaV0gLSAnQScpICsgJ2EnOworCQl9CisJfQorCXJldHVybiByYzsKK30KKworLyogZnVuY3Rpb24gdG8gc2V0IFVVSURzIHRoYXQgYXJlIGluIHN1YmVyYmxvY2tzIHN0b3JlZCBhcyBzdHJpbmdzICovCitpbnQgYmxraWRfcHJvYmVfc3RybmNweV91dWlkKGJsa2lkX3Byb2JlIHByLCB1bnNpZ25lZCBjaGFyICpzdHIsIHNpemVfdCBsZW4pCit7CisJc3RydWN0IGJsa2lkX2NoYWluICpjaG4gPSBibGtpZF9wcm9iZV9nZXRfY2hhaW4ocHIpOworCXN0cnVjdCBibGtpZF9wcnZhbCAqdjsKKworCWlmIChzdHIgPT0gTlVMTCB8fCAqc3RyID09ICdcMCcpCisJCXJldHVybiAtMTsKKwlpZiAoIWxlbikKKwkJbGVuID0gc3RybGVuKChjaGFyICopIHN0cik7CisJaWYgKGxlbiA+IEJMS0lEX1BST0JWQUxfQlVGU0laKQorCQlsZW4gPSBCTEtJRF9QUk9CVkFMX0JVRlNJWjsKKworCWlmICgoY2huLT5mbGFncyAmIEJMS0lEX1NVQkxLU19VVUlEUkFXKSAmJgorCSAgICBibGtpZF9wcm9iZV9zZXRfdmFsdWUocHIsICJVVUlEX1JBVyIsIHN0ciwgbGVuKSA8IDApCisJCXJldHVybiAtMTsKKwlpZiAoIShjaG4tPmZsYWdzICYgQkxLSURfU1VCTEtTX1VVSUQpKQorCQlyZXR1cm4gMDsKKworCXYgPSBibGtpZF9wcm9iZV9hc3NpZ25fdmFsdWUocHIsICJVVUlEIik7CisJaWYgKHYpIHsKKwkJaWYgKGxlbiA9PSBCTEtJRF9QUk9CVkFMX0JVRlNJWikKKwkJCWxlbi0tOwkJLyogbWFrZSBhIHNwYWNlIGZvciBcMCAqLworCisJCW1lbWNweSgoY2hhciAqKSB2LT5kYXRhLCBzdHIsIGxlbik7CisJCXYtPmRhdGFbbGVuXSA9ICdcMCc7CisJCXYtPmxlbiA9IGxlbiArIDE7CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gLTE7Cit9CisKKy8qIGRlZmF1bHQgX3NldF91dWlkIGZ1bmN0aW9uIHRvIHNldCBEQ0UgVVVJRHMgKi8KK2ludCBibGtpZF9wcm9iZV9zZXRfdXVpZF9hcyhibGtpZF9wcm9iZSBwciwgdW5zaWduZWQgY2hhciAqdXVpZCwgY29uc3QgY2hhciAqbmFtZSkKK3sKKwlzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobiA9IGJsa2lkX3Byb2JlX2dldF9jaGFpbihwcik7CisJc3RydWN0IGJsa2lkX3BydmFsICp2OworCisJaWYgKHV1aWRfaXNfZW1wdHkodXVpZCwgMTYpKQorCQlyZXR1cm4gMDsKKworCWlmICghbmFtZSkgeworCQlpZiAoKGNobi0+ZmxhZ3MgJiBCTEtJRF9TVUJMS1NfVVVJRFJBVykgJiYKKwkJICAgIGJsa2lkX3Byb2JlX3NldF92YWx1ZShwciwgIlVVSURfUkFXIiwgdXVpZCwgMTYpIDwgMCkKKwkJCXJldHVybiAtMTsKKwkJaWYgKCEoY2huLT5mbGFncyAmIEJMS0lEX1NVQkxLU19VVUlEKSkKKwkJCXJldHVybiAwOworCisJCXYgPSBibGtpZF9wcm9iZV9hc3NpZ25fdmFsdWUocHIsICJVVUlEIik7CisJfSBlbHNlCisJCXYgPSBibGtpZF9wcm9iZV9hc3NpZ25fdmFsdWUocHIsIG5hbWUpOworCisJYmxraWRfdW5wYXJzZV91dWlkKHV1aWQsIChjaGFyICopIHYtPmRhdGEsIHNpemVvZih2LT5kYXRhKSk7CisJdi0+bGVuID0gMzc7CisKKwlyZXR1cm4gMDsKK30KKworaW50IGJsa2lkX3Byb2JlX3NldF91dWlkKGJsa2lkX3Byb2JlIHByLCB1bnNpZ25lZCBjaGFyICp1dWlkKQoreworCXJldHVybiBibGtpZF9wcm9iZV9zZXRfdXVpZF9hcyhwciwgdXVpZCwgTlVMTCk7Cit9CisKKy8qCisgKiBERVBSRUNBVEVEIEZVTkNUSU9OUworICovCisKKy8qKgorICogYmxraWRfcHJvYmVfc2V0X3JlcXVlc3Q6CisgKiBAcHI6IHByb2JlCisgKiBAZmxhZ3M6IEJMS0lEX1BST0JSRVFfKiAoZGVwcmVjYXRlZCkgb3IgQkxLSURfU1VCTEtTXyogZmxhZ3MKKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKgorICogRGVwcmVjYXRlZDogVXNlIGJsa2lkX3Byb2JlX3NldF9zdXBlcmJsb2Nrc19mbGFncygpLgorICovCitpbnQgYmxraWRfcHJvYmVfc2V0X3JlcXVlc3QoYmxraWRfcHJvYmUgcHIsIGludCBmbGFncykKK3sKKwlyZXR1cm4gYmxraWRfcHJvYmVfc2V0X3N1cGVyYmxvY2tzX2ZsYWdzKHByLCBmbGFncyk7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfcmVzZXRfZmlsdGVyOgorICogQHByOiBwcm9iZXIKKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKgorICogRGVwcmVjYXRlZDogVXNlIGJsa2lkX3Byb2JlX3Jlc2V0X3N1cGVyYmxvY2tzX2ZpbHRlcigpLgorICovCitpbnQgYmxraWRfcHJvYmVfcmVzZXRfZmlsdGVyKGJsa2lkX3Byb2JlIHByKQoreworCXJldHVybiBfX2Jsa2lkX3Byb2JlX3Jlc2V0X2ZpbHRlcihwciwgQkxLSURfQ0hBSU5fU1VCTEtTKTsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9pbnZlcnRfZmlsdGVyOgorICogQHByOiBwcm9iZXIKKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKgorICogRGVwcmVjYXRlZDogVXNlIGJsa2lkX3Byb2JlX2ludmVydF9zdXBlcmJsb2Nrc19maWx0ZXIoKS4KKyAqLworaW50IGJsa2lkX3Byb2JlX2ludmVydF9maWx0ZXIoYmxraWRfcHJvYmUgcHIpCit7CisJcmV0dXJuIF9fYmxraWRfcHJvYmVfaW52ZXJ0X2ZpbHRlcihwciwgQkxLSURfQ0hBSU5fU1VCTEtTKTsKK30KKworLyoqCisgKiBibGtpZF9wcm9iZV9maWx0ZXJfdHlwZXMKKyAqIEBwcjogcHJvYmVyCisgKiBAZmxhZzogZmlsdGVyIEJMS0lEX0ZMVFJfe05PVElOLE9OTFlJTn0gZmxhZworICogQG5hbWVzOiBOVUxMIHRlcm1pbmF0ZWQgYXJyYXkgb2YgcHJvYmluZyBmdW5jdGlvbiBuYW1lcyAoZS5nLiAidmZhdCIpLgorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2Vzcywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqCisgKiBEZXByZWNhdGVkOiBVc2UgYmxraWRfcHJvYmVfZmlsdGVyX3N1cGVyYmxvY2tzX3R5cGVzKCkuCisgKi8KK2ludCBibGtpZF9wcm9iZV9maWx0ZXJfdHlwZXMoYmxraWRfcHJvYmUgcHIsIGludCBmbGFnLCBjaGFyICpuYW1lc1tdKQoreworCXJldHVybiBfX2Jsa2lkX3Byb2JlX2ZpbHRlcl90eXBlcyhwciwgQkxLSURfQ0hBSU5fU1VCTEtTLCBmbGFnLCBuYW1lcyk7Cit9CisKKy8qKgorICogYmxraWRfcHJvYmVfZmlsdGVyX3VzYWdlCisgKiBAcHI6IHByb2JlcgorICogQGZsYWc6IGZpbHRlciBCTEtJRF9GTFRSX3tOT1RJTixPTkxZSU59IGZsYWcKKyAqIEB1c2FnZTogQkxLSURfVVNBR0VfKiBmbGFncworICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2Vzcywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqCisgKiBEZXByZWNhdGVkOiBVc2UgYmxraWRfcHJvYmVfZmlsdGVyX3N1cGVyYmxvY2tzX3VzYWdlKCkuCisgKi8KK2ludCBibGtpZF9wcm9iZV9maWx0ZXJfdXNhZ2UoYmxraWRfcHJvYmUgcHIsIGludCBmbGFnLCBpbnQgdXNhZ2UpCit7CisJcmV0dXJuIGJsa2lkX3Byb2JlX2ZpbHRlcl9zdXBlcmJsb2Nrc191c2FnZShwciwgZmxhZywgdXNhZ2UpOworfQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3N1cGVyYmxvY2tzLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3N1cGVyYmxvY2tzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkzYWU3MgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvc3VwZXJibG9ja3MuaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMDkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2lmbmRlZiBfQkxLSURfU1VQRVJCTE9DS1NfSAorI2RlZmluZSBfQkxLSURfU1VQRVJCTE9DS1NfSAorCisjaW5jbHVkZSAiYmxraWRQLmgiCisKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGNyYW1mc19pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBzd2FwX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHN3c3VzcGVuZF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBhZHJhaWRfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gZGRmcmFpZF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBpc3dyYWlkX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGptcmFpZF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBsc2lyYWlkX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIG52cmFpZF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBwZGNyYWlkX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHNpbHJhaWRfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gdmlhcmFpZF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBsaW51eHJhaWRfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gZXh0NGRldl9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBleHQ0X2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGV4dDNfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gZXh0Ml9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBqYmRfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gamZzX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHhmc19pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBnZnNfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gZ2ZzMl9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyByb21mc19pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBvY2ZzX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIG9jZnMyX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIG9yYWNsZWFzbV9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyByZWlzZXJfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gcmVpc2VyNF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBoZnNfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gaGZzcGx1c19pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBudGZzX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGlzbzk2NjBfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gdWRmX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHZ4ZnNfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gbWluaXhfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gdmZhdF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyB1ZnNfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gaHBmc19pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBsdm0yX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGx2bTFfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gc25hcGNvd19pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBsdWtzX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGhpZ2hwb2ludDM3eF9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBoaWdocG9pbnQ0NXhfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gc3F1YXNoZnNfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gbmV0d2FyZV9pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBzeXN2X2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHhlbml4X2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGJ0cmZzX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHViaWZzX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHpmc19pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBiZnNfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gdm1mc192b2x1bWVfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gdm1mc19mc19pZGluZm87CitleHRlcm4gY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBkcmJkX2lkaW5mbzsKKworLyoKKyAqIHN1cGVyYmxvY2sgZnVuY3Rpb25zCisgKi8KK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfc2V0X3ZlcnNpb24oYmxraWRfcHJvYmUgcHIsIGNvbnN0IGNoYXIgKnZlcnNpb24pOworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9zcHJpbnRmX3ZlcnNpb24oYmxraWRfcHJvYmUgcHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQorCQlfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChwcmludGYsIDIsIDMpKSk7CisKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfc2V0X2xhYmVsKGJsa2lkX3Byb2JlIHByLCB1bnNpZ25lZCBjaGFyICpsYWJlbCwgc2l6ZV90IGxlbik7CitleHRlcm4gaW50IGJsa2lkX3Byb2JlX3NldF91dGY4bGFiZWwoYmxraWRfcHJvYmUgcHIsIHVuc2lnbmVkIGNoYXIgKmxhYmVsLAorICAgICAgICAgICAgICAgIHNpemVfdCBsZW4sIGludCBlbmMpOworZXh0ZXJuIGludCBibGtpZF9wcm9iZV9zcHJpbnRmX3V1aWQoYmxraWRfcHJvYmUgcHIsIHVuc2lnbmVkIGNoYXIgKnV1aWQsCisgICAgICAgICAgICAgICAgc2l6ZV90IGxlbiwgY29uc3QgY2hhciAqZm10LCAuLi4pCisJCV9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgNCwgNSkpKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfc3RybmNweV91dWlkKGJsa2lkX3Byb2JlIHByLCB1bnNpZ25lZCBjaGFyICpzdHIsIHNpemVfdCBsZW4pOworCitleHRlcm4gaW50IGJsa2lkX3Byb2JlX3NldF91dWlkKGJsa2lkX3Byb2JlIHByLCB1bnNpZ25lZCBjaGFyICp1dWlkKTsKK2V4dGVybiBpbnQgYmxraWRfcHJvYmVfc2V0X3V1aWRfYXMoYmxraWRfcHJvYmUgcHIsIHVuc2lnbmVkIGNoYXIgKnV1aWQsIGNvbnN0IGNoYXIgKm5hbWUpOworCisKKyNlbmRpZiAvKiBfQkxLSURfU1VQRVJCTE9DS1NfSCAqLwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9zd2FwLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3N3YXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YWFhNmYzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9zd2FwLmMKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgYnkgQW5kcmllcyBCcm91d2VyCisgKiBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMgYnkgVGhlb2RvcmUgVHMnbworICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IEFuZHJlYXMgRGlsZ2VyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKKy8qIGxpbnV4LTIuNi9pbmNsdWRlL2xpbnV4L3N3YXAuaCAqLworc3RydWN0IHN3YXBfaGVhZGVyX3YxXzIgeworICAgICAvKgljaGFyCQlib290Yml0c1sxMDI0XTsJKi8gLyogU3BhY2UgZm9yIGRpc2tsYWJlbCBldGMuICovCisJdWludDMyX3QJdmVyc2lvbjsKKwl1aW50MzJfdAlsYXN0cGFnZTsKKwl1aW50MzJfdAlucl9iYWRwYWdlczsKKwl1bnNpZ25lZCBjaGFyCXV1aWRbMTZdOworCXVuc2lnbmVkIGNoYXIJdm9sdW1lWzE2XTsKKwl1aW50MzJfdAlwYWRkaW5nWzExN107CisJdWludDMyX3QJYmFkcGFnZXNbMV07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisjZGVmaW5lIFBBR0VTSVpFX01JTgkweGZmNgkvKiA0MDg2IChhcm0sIGkzODYsIC4uLikgKi8KKyNkZWZpbmUgUEFHRVNJWkVfTUFYCTB4ZmZmNgkvKiA2NTUyNiAoaWE2NCkgKi8KKworCitzdGF0aWMgaW50IHN3YXBfc2V0X2luZm8oYmxraWRfcHJvYmUgcHIsIGNvbnN0IGNoYXIgKnZlcnNpb24pCit7CisJc3RydWN0IHN3YXBfaGVhZGVyX3YxXzIgKmhkcjsKKworCS8qIFN3YXAgaGVhZGVyIGFsd2F5cyBsb2NhdGVkIGF0IG9mZnNldCBvZiAxMDI0IGJ5dGVzICovCisJaGRyID0gKHN0cnVjdCBzd2FwX2hlYWRlcl92MV8yICopIGJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsIDEwMjQsCisJCQkJc2l6ZW9mKHN0cnVjdCBzd2FwX2hlYWRlcl92MV8yKSk7CisJaWYgKCFoZHIpCisJCXJldHVybiAtMTsKKworCS8qIFNXQVBTUEFDRTIgLSBjaGVjayBmb3Igd3JvbmcgdmVyc2lvbiBvciB6ZXJvZWQgcGFnZWNvdW50ICovCisJaWYgKHN0cmNtcCh2ZXJzaW9uLCAiMiIpID09IDAgJiYKKwkgICAgKGhkci0+dmVyc2lvbiAhPSAxIHx8IGhkci0+bGFzdHBhZ2UgPT0gMCkpCisJCXJldHVybiAtMTsKKworCS8qIGFyYml0cmFyeSBzYW5pdHkgY2hlY2suLiBpcyB0aGVyZSBhbnkgZ2FyYmFnZSBkb3duIHRoZXJlPyAqLworCWlmIChoZHItPnBhZGRpbmdbMzJdID09IDAgJiYgaGRyLT5wYWRkaW5nWzMzXSA9PSAwKSB7CisJCWlmIChoZHItPnZvbHVtZVswXSAmJiBibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsIGhkci0+dm9sdW1lLAorCQkJCXNpemVvZihoZHItPnZvbHVtZSkpIDwgMCkKKwkJCXJldHVybiAtMTsKKwkJaWYgKGhkci0+dXVpZFswXSAmJiBibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgaGRyLT51dWlkKSA8IDApCisJCQlyZXR1cm4gLTE7CisJfQorCisJYmxraWRfcHJvYmVfc2V0X3ZlcnNpb24ocHIsIHZlcnNpb24pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHByb2JlX3N3YXAoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCWlmICghbWFnKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoIW1lbWNtcChtYWctPm1hZ2ljLCAiU1dBUC1TUEFDRSIsIG1hZy0+bGVuKSkgeworCQkvKiBzd2FwIHYwIGRvZXNuJ3Qgc3VwcG9ydCBMQUJFTCBvciBVVUlEICovCisJCWJsa2lkX3Byb2JlX3NldF92ZXJzaW9uKHByLCAiMSIpOworCQlyZXR1cm4gMDsKKworCX0gZWxzZSBpZiAoIW1lbWNtcChtYWctPm1hZ2ljLCAiU1dBUFNQQUNFMiIsIG1hZy0+bGVuKSkKKwkJcmV0dXJuIHN3YXBfc2V0X2luZm8ocHIsICIyIik7CisKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQgcHJvYmVfc3dzdXNwZW5kKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlpZiAoIW1hZykKKwkJcmV0dXJuIC0xOworCWlmICghbWVtY21wKG1hZy0+bWFnaWMsICJTMVNVU1BFTkQiLCBtYWctPmxlbikpCisJCXJldHVybiBzd2FwX3NldF9pbmZvKHByLCAiczFzdXNwZW5kIik7CisJaWYgKCFtZW1jbXAobWFnLT5tYWdpYywgIlMyU1VTUEVORCIsIG1hZy0+bGVuKSkKKwkJcmV0dXJuIHN3YXBfc2V0X2luZm8ocHIsICJzMnN1c3BlbmQiKTsKKwlpZiAoIW1lbWNtcChtYWctPm1hZ2ljLCAiVUxTVVNQRU5EIiwgbWFnLT5sZW4pKQorCQlyZXR1cm4gc3dhcF9zZXRfaW5mbyhwciwgInVsc3VzcGVuZCIpOworCWlmICghbWVtY21wKG1hZy0+bWFnaWMsICJceGVkXHhjM1x4MDJceGU5XHg5OFx4NTZceGU1XHgwYyIsIG1hZy0+bGVuKSkKKwkJcmV0dXJuIHN3YXBfc2V0X2luZm8ocHIsICJ0dXhvbmljZSIpOworCisJcmV0dXJuIC0xOwkvKiBubyBzaWduYXR1cmUgZGV0ZWN0ZWQgKi8KK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBzd2FwX2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gInN3YXAiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9PVEhFUiwKKwkucHJvYmVmdW5jCT0gcHJvYmVfc3dhcCwKKwkubWluc3oJCT0gMTAgKiA0MDk2LAkvKiAxMCBwYWdlcyAqLworCS5tYWdpY3MJCT0KKwl7CisJCXsgIlNXQVAtU1BBQ0UiLCAxMCwgMCwgIDB4ZmY2IH0sCisJCXsgIlNXQVBTUEFDRTIiLCAxMCwgMCwgIDB4ZmY2IH0sCisJCXsgIlNXQVAtU1BBQ0UiLCAxMCwgMCwgMHgxZmY2IH0sCisJCXsgIlNXQVBTUEFDRTIiLCAxMCwgMCwgMHgxZmY2IH0sCisJCXsgIlNXQVAtU1BBQ0UiLCAxMCwgMCwgMHgzZmY2IH0sCisJCXsgIlNXQVBTUEFDRTIiLCAxMCwgMCwgMHgzZmY2IH0sCisJCXsgIlNXQVAtU1BBQ0UiLCAxMCwgMCwgMHg3ZmY2IH0sCisJCXsgIlNXQVBTUEFDRTIiLCAxMCwgMCwgMHg3ZmY2IH0sCisJCXsgIlNXQVAtU1BBQ0UiLCAxMCwgMCwgMHhmZmY2IH0sCisJCXsgIlNXQVBTUEFDRTIiLCAxMCwgMCwgMHhmZmY2IH0sCisJCXsgTlVMTCB9CisJfQorfTsKKworCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHN3c3VzcGVuZF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJzd3N1c3BlbmQiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9PVEhFUiwKKwkucHJvYmVmdW5jCT0gcHJvYmVfc3dzdXNwZW5kLAorCS5taW5zegkJPSAxMCAqIDQwOTYsCS8qIDEwIHBhZ2VzICovCisJLm1hZ2ljcwkJPQorCXsKKwkJeyAiUzFTVVNQRU5EIiwgOSwgMCwgMHhmZjYgfSwKKwkJeyAiUzJTVVNQRU5EIiwgOSwgMCwgMHhmZjYgfSwKKwkJeyAiVUxTVVNQRU5EIiwgOSwgMCwgMHhmZjYgfSwKKwkJeyAiXHhlZFx4YzNceDAyXHhlOVx4OThceDU2XHhlNVx4MGMiLCA4LCAwLCAweGZmNiB9LAorCQl7ICJTMVNVU1BFTkQiLCA5LCAwLCAweDFmZjYgfSwKKwkJeyAiUzJTVVNQRU5EIiwgOSwgMCwgMHgxZmY2IH0sCisJCXsgIlVMU1VTUEVORCIsIDksIDAsIDB4MWZmNiB9LAorCQl7ICJceGVkXHhjM1x4MDJceGU5XHg5OFx4NTZceGU1XHgwYyIsIDgsIDAsIDB4MWZmNiB9LAorCQl7ICJTMVNVU1BFTkQiLCA5LCAwLCAweDNmZjYgfSwKKwkJeyAiUzJTVVNQRU5EIiwgOSwgMCwgMHgzZmY2IH0sCisJCXsgIlVMU1VTUEVORCIsIDksIDAsIDB4M2ZmNiB9LAorCQl7ICJceGVkXHhjM1x4MDJceGU5XHg5OFx4NTZceGU1XHgwYyIsIDgsIDAsIDB4M2ZmNiB9LAorCQl7ICJTMVNVU1BFTkQiLCA5LCAwLCAweDdmZjYgfSwKKwkJeyAiUzJTVVNQRU5EIiwgOSwgMCwgMHg3ZmY2IH0sCisJCXsgIlVMU1VTUEVORCIsIDksIDAsIDB4N2ZmNiB9LAorCQl7ICJceGVkXHhjM1x4MDJceGU5XHg5OFx4NTZceGU1XHgwYyIsIDgsIDAsIDB4N2ZmNiB9LAorCQl7ICJTMVNVU1BFTkQiLCA5LCAwLCAweGZmZjYgfSwKKwkJeyAiUzJTVVNQRU5EIiwgOSwgMCwgMHhmZmY2IH0sCisJCXsgIlVMU1VTUEVORCIsIDksIDAsIDB4ZmZmNiB9LAorCQl7ICJceGVkXHhjM1x4MDJceGU5XHg5OFx4NTZceGU1XHgwYyIsIDgsIDAsIDB4ZmZmNiB9LAorCQl7IE5VTEwgfQorCX0KK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvc3lzdi5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy9zeXN2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTMwZTg2MAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvc3lzdi5jCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgaXMgd3JpdHRlbiBmcm9tIHNyYXRjaCBhY2NvcmRpbmcgdG8gTGludXgga2VybmVsIGZzL3N5c3Yvc3VwZXIuYyBmaWxlLgorICogSXQgc2VlbXMgdGhhdCBzeXN2IHByb2JpbmcgY29kZSBpbiBsaWJ2b2x1bWVfaWQgYW5kIGFsc28gaW4gdGhlIG9yaWdpbmFsCisgKiBibGtpZCBpcyB1c2VsZXNzLgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworI2RlZmluZSBYRU5JWF9OSUNJTk9ECQkJCTEwMAorI2RlZmluZSBYRU5JWF9OSUNGUkVFCQkJCTEwMAorCitzdHJ1Y3QgeGVuaXhfc3VwZXJfYmxvY2sgeworCXVpbnQxNl90CXNfaXNpemU7CisJdWludDMyX3QJc19mc2l6ZTsKKwl1aW50MTZfdAlzX25mcmVlOworCXVpbnQzMl90CXNfZnJlZVtYRU5JWF9OSUNGUkVFXTsKKwl1aW50MTZfdAlzX25pbm9kZTsKKwl1aW50MTZfdAlzX2lub2RlW1hFTklYX05JQ0lOT0RdOworCXVpbnQ4X3QJCXNfZmxvY2s7CisJdWludDhfdAkJc19pbG9jazsKKwl1aW50OF90CQlzX2Ztb2Q7CisJdWludDhfdAkJc19yb25seTsKKwl1aW50MzJfdAlzX3RpbWU7CisJdWludDMyX3QJc190ZnJlZTsKKwl1aW50MTZfdAlzX3Rpbm9kZTsKKwl1aW50MTZfdAlzX2RpbmZvWzRdOworCXVpbnQ4X3QJCXNfZm5hbWVbNl07CisJdWludDhfdAkJc19mcGFja1s2XTsKKwl1aW50OF90CQlzX2NsZWFuOworCXVpbnQ4X3QJCXNfZmlsbFszNzFdOworCXVpbnQzMl90CXNfbWFnaWM7CisJdWludDMyX3QJc190eXBlOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworCisjZGVmaW5lIFNZU1ZfTklDSU5PRAkJCTEwMAorI2RlZmluZSBTWVNWX05JQ0ZSRUUJCQk1MAorCitzdHJ1Y3Qgc3lzdl9zdXBlcl9ibG9jaworeworCXVpbnQxNl90CXNfaXNpemU7CisJdWludDE2X3QJc19wYWQwOworCXVpbnQzMl90CXNfZnNpemU7CisJdWludDE2X3QJc19uZnJlZTsKKwl1aW50MTZfdAlzX3BhZDE7CisJdWludDMyX3QJc19mcmVlW1NZU1ZfTklDRlJFRV07CisJdWludDE2X3QJc19uaW5vZGU7CisJdWludDE2X3QJc19wYWQyOworCXVpbnQxNl90CXNfaW5vZGVbU1lTVl9OSUNJTk9EXTsKKwl1aW50OF90CQlzX2Zsb2NrOworCXVpbnQ4X3QJCXNfaWxvY2s7CisJdWludDhfdAkJc19mbW9kOworCXVpbnQ4X3QJCXNfcm9ubHk7CisJdWludDMyX3QJc190aW1lOworCXVpbnQxNl90CXNfZGluZm9bNF07CisJdWludDMyX3QJc190ZnJlZTsKKwl1aW50MTZfdAlzX3Rpbm9kZTsKKwl1aW50MTZfdAlzX3BhZDM7CisJdWludDhfdAkJc19mbmFtZVs2XTsKKwl1aW50OF90CQlzX2ZwYWNrWzZdOworCXVpbnQzMl90CXNfZmlsbFsxMl07CisJdWludDMyX3QJc19zdGF0ZTsKKwl1aW50MzJfdAlzX21hZ2ljOworCXVpbnQzMl90CXNfdHlwZTsKK307CisKK3N0YXRpYyBpbnQgcHJvYmVfeGVuaXgoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCB4ZW5peF9zdXBlcl9ibG9jayAqc2I7CisKKwlzYiA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgeGVuaXhfc3VwZXJfYmxvY2spOworCWlmICghc2IpCisJCXJldHVybiAtMTsKKwlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsIHNiLT5zX2ZuYW1lLCBzaXplb2Yoc2ItPnNfZm5hbWUpKTsKKwlyZXR1cm4gMDsKK30KKworI2RlZmluZSBTWVNWX0JMT0NLX1NJWkUJMTAyNAorCisvKiBOb3RlIHRoYXQgd2UgZG9uJ3QgcHJvYmUgZm9yIENvaGVyZW50IEZTLCB0aGlzIEZTIGRvZXMgbm90IGhhdmUKKyAqIG1hZ2ljIHN0cmluZy4gKEl0IHJlcXVpcmVzIHRvIHByb2JlIGZuYW1lL2ZwYWNrIGZpZWxkLi4pCisgKi8KK3N0YXRpYyBpbnQgcHJvYmVfc3lzdihibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IHN5c3Zfc3VwZXJfYmxvY2sgKnNiOworCWludCBibG9ja3NbXSA9IHswLCA5LCAxNSwgMTh9OworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYmxvY2tzKTsgaSsrKSB7CisJCWludCBvZmYgPSBibG9ja3NbaV0gKiBTWVNWX0JMT0NLX1NJWkUgKyBTWVNWX0JMT0NLX1NJWkUvMjsKKworCQlzYiA9IChzdHJ1Y3Qgc3lzdl9zdXBlcl9ibG9jayAqKQorCQkJYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwKKwkJCQkJb2ZmLAorCQkJCQlzaXplb2Yoc3RydWN0IHN5c3Zfc3VwZXJfYmxvY2spKTsKKwkJaWYgKCFzYikKKwkJCXJldHVybiAtMTsKKworCQlpZiAoc2ItPnNfbWFnaWMgPT0gY3B1X3RvX2xlMzIoMHhmZDE4N2UyMCkgfHwKKwkJICAgIHNiLT5zX21hZ2ljID09IGNwdV90b19iZTMyKDB4ZmQxODdlMjApKSB7CisJCQlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsIHNiLT5zX2ZuYW1lLCBzaXplb2Yoc2ItPnNfZm5hbWUpKTsKKwkJCXJldHVybiAwOworCQl9CisJfQorCXJldHVybiAxOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHhlbml4X2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gInhlbml4IiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfeGVuaXgsCisJLm1hZ2ljcwkJPQorCXsKKwkJeyAubWFnaWMgPSAiXHgyYlx4NTVceDQ0IiwgLmxlbiA9IDMsIC5rYm9mZiA9IDEsIC5zYm9mZiA9IDB4NDAwIH0sCisJCXsgLm1hZ2ljID0gIlx4NDRceDU1XHgyYiIsIC5sZW4gPSAzLCAua2JvZmYgPSAxLCAuc2JvZmYgPSAweDQwMCB9LAorCQl7IE5VTEwgfQorCX0KK307CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gc3lzdl9pZGluZm8gPQoreworCS5uYW1lCQk9ICJzeXN2IiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfc3lzdiwKKworCS8qIFNZU1YgaXMgQkUgYW5kIExFIGFuZCBzdXBlcmJsb2NrIGNvdWxkIGJlIG9uIGZvdXIgcG9zaXRpb25zLiBJdCdzCisJICogc2ltcGxlciB0byBwcm9iZSBmb3IgdGhlIG1hZ2ljIHN0cmluZyBieSAucHJvYmVmdW5jKCkuCisJICovCisJLm1hZ2ljcwkJPSBCTEtJRF9OT05FX01BR0lDCit9OworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3ViaWZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3ViaWZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdkOTRiYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvdWJpZnMuYwpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBDb3JlbnRpbiBDaGFyeSA8Y29yZW50aW5jakBpa3NhaWYubmV0PgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworLyoqCisgKiBzdHJ1Y3QgdWJpZnNfY2ggLSBjb21tb24gaGVhZGVyIG5vZGUuCisgKiBAbWFnaWM6IFVCSUZTIG5vZGUgbWFnaWMgbnVtYmVyICglVUJJRlNfTk9ERV9NQUdJQykKKyAqIEBjcmM6IENSQy0zMiBjaGVja3N1bSBvZiB0aGUgbm9kZSBoZWFkZXIKKyAqIEBzcW51bTogc2VxdWVuY2UgbnVtYmVyCisgKiBAbGVuOiBmdWxsIG5vZGUgbGVuZ3RoCisgKiBAbm9kZV90eXBlOiBub2RlIHR5cGUKKyAqIEBncm91cF90eXBlOiBub2RlIGdyb3VwIHR5cGUKKyAqIEBwYWRkaW5nOiByZXNlcnZlZCBmb3IgZnV0dXJlLCB6ZXJvZXMKKyAqCisgKiBFdmVyeSBVQklGUyBub2RlIHN0YXJ0cyB3aXRoIHRoaXMgY29tbW9uIHBhcnQuIElmIHRoZSBub2RlIGhhcyBhIGtleSwgdGhlCisgKiBrZXkgYWx3YXlzIGdvZXMgbmV4dC4KKyAqLworc3RydWN0IHViaWZzX2NoIHsKKwl1aW50MzJfdCBtYWdpYzsKKwl1aW50MzJfdCBjcmM7CisJdWludDY0X3Qgc3FudW07CisJdWludDMyX3QgbGVuOworCXVpbnQ4X3Qgbm9kZV90eXBlOworCXVpbnQ4X3QgZ3JvdXBfdHlwZTsKKwl1aW50OF90IHBhZGRpbmdbMl07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworLyoqCisgKiBzdHJ1Y3QgdWJpZnNfc2Jfbm9kZSAtIHN1cGVyYmxvY2sgbm9kZS4KKyAqIEBjaDogY29tbW9uIGhlYWRlcgorICogQHBhZGRpbmc6IHJlc2VydmVkIGZvciBmdXR1cmUsIHplcm9lcworICogQGtleV9oYXNoOiB0eXBlIG9mIGhhc2ggZnVuY3Rpb24gdXNlZCBpbiBrZXlzCisgKiBAa2V5X2ZtdDogZm9ybWF0IG9mIHRoZSBrZXkKKyAqIEBmbGFnczogZmlsZS1zeXN0ZW0gZmxhZ3MgKCVVQklGU19GTEdfQklHTFBULCBldGMpCisgKiBAbWluX2lvX3NpemU6IG1pbmltYWwgaW5wdXQvb3V0cHV0IHVuaXQgc2l6ZQorICogQGxlYl9zaXplOiBsb2dpY2FsIGVyYXNlYmxvY2sgc2l6ZSBpbiBieXRlcworICogQGxlYl9jbnQ6IGNvdW50IG9mIExFQnMgdXNlZCBieSBmaWxlLXN5c3RlbQorICogQG1heF9sZWJfY250OiBtYXhpbXVtIGNvdW50IG9mIExFQnMgdXNlZCBieSBmaWxlLXN5c3RlbQorICogQG1heF9idWRfYnl0ZXM6IG1heGltdW0gYW1vdW50IG9mIGRhdGEgc3RvcmVkIGluIGJ1ZHMKKyAqIEBsb2dfbGViczogbG9nIHNpemUgaW4gbG9naWNhbCBlcmFzZWJsb2NrcworICogQGxwdF9sZWJzOiBudW1iZXIgb2YgTEVCcyB1c2VkIGZvciBscHJvcHMgdGFibGUKKyAqIEBvcnBoX2xlYnM6IG51bWJlciBvZiBMRUJzIHVzZWQgZm9yIHJlY29yZGluZyBvcnBoYW5zCisgKiBAamhlYWRfY250OiBjb3VudCBvZiBqb3VybmFsIGhlYWRzCisgKiBAZmFub3V0OiB0cmVlIGZhbm91dCAobWF4LiBudW1iZXIgb2YgbGlua3MgcGVyIGluZGV4aW5nIG5vZGUpCisgKiBAbHNhdmVfY250OiBudW1iZXIgb2YgTEVCIG51bWJlcnMgaW4gTFBUJ3Mgc2F2ZSB0YWJsZQorICogQGZtdF92ZXJzaW9uOiBVQklGUyBvbi1mbGFzaCBmb3JtYXQgdmVyc2lvbgorICogQGRlZmF1bHRfY29tcHI6IGRlZmF1bHQgY29tcHJlc3Npb24gYWxnb3JpdGhtICglVUJJRlNfQ09NUFJfTFpPLCBldGMpCisgKiBAcGFkZGluZzE6IHJlc2VydmVkIGZvciBmdXR1cmUsIHplcm9lcworICogQHJwX3VpZDogcmVzZXJ2ZSBwb29sIFVJRAorICogQHJwX2dpZDogcmVzZXJ2ZSBwb29sIEdJRAorICogQHJwX3NpemU6IHNpemUgb2YgdGhlIHJlc2VydmVkIHBvb2wgaW4gYnl0ZXMKKyAqIEBwYWRkaW5nMjogcmVzZXJ2ZWQgZm9yIGZ1dHVyZSwgemVyb2VzCisgKiBAdGltZV9ncmFuOiB0aW1lIGdyYW51bGFyaXR5IGluIG5hbm9zZWNvbmRzCisgKiBAdXVpZDogVVVJRCBnZW5lcmF0ZWQgd2hlbiB0aGUgZmlsZSBzeXN0ZW0gaW1hZ2Ugd2FzIGNyZWF0ZWQKKyAqIEByb19jb21wYXRfdmVyc2lvbjogVUJJRlMgUi9PIGNvbXBhdGliaWxpdHkgdmVyc2lvbgorICovCitzdHJ1Y3QgdWJpZnNfc2Jfbm9kZSB7CisJc3RydWN0IHViaWZzX2NoIGNoOworCXVpbnQ4X3QgcGFkZGluZ1syXTsKKwl1aW50OF90IGtleV9oYXNoOworCXVpbnQ4X3Qga2V5X2ZtdDsKKwl1aW50MzJfdCBmbGFnczsKKwl1aW50MzJfdCBtaW5faW9fc2l6ZTsKKwl1aW50MzJfdCBsZWJfc2l6ZTsKKwl1aW50MzJfdCBsZWJfY250OworCXVpbnQzMl90IG1heF9sZWJfY250OworCXVpbnQ2NF90IG1heF9idWRfYnl0ZXM7CisJdWludDMyX3QgbG9nX2xlYnM7CisJdWludDMyX3QgbHB0X2xlYnM7CisJdWludDMyX3Qgb3JwaF9sZWJzOworCXVpbnQzMl90IGpoZWFkX2NudDsKKwl1aW50MzJfdCBmYW5vdXQ7CisJdWludDMyX3QgbHNhdmVfY250OworCXVpbnQzMl90IGZtdF92ZXJzaW9uOworCXVpbnQxNl90IGRlZmF1bHRfY29tcHI7CisJdWludDhfdCBwYWRkaW5nMVsyXTsKKwl1aW50MzJfdCBycF91aWQ7CisJdWludDMyX3QgcnBfZ2lkOworCXVpbnQ2NF90IHJwX3NpemU7CisJdWludDMyX3QgdGltZV9ncmFuOworCXVpbnQ4X3QgdXVpZFsxNl07CisJdWludDMyX3Qgcm9fY29tcGF0X3ZlcnNpb247CisJdWludDhfdCBwYWRkaW5nMlszOTY4XTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisKK3N0YXRpYyBpbnQgcHJvYmVfdWJpZnMoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCB1Ymlmc19zYl9ub2RlICpzYjsKKworCXNiID0gYmxraWRfcHJvYmVfZ2V0X3NiKHByLCBtYWcsIHN0cnVjdCB1Ymlmc19zYl9ub2RlKTsKKwlpZiAoIXNiKQorCQlyZXR1cm4gLTE7CisKKwlibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgc2ItPnV1aWQpOworCWJsa2lkX3Byb2JlX3NwcmludGZfdmVyc2lvbihwciwgInclZHIlZCIsCisJCQkJICAgIHNiLT5mbXRfdmVyc2lvbiwgc2ItPnJvX2NvbXBhdF92ZXJzaW9uKTsKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyB1Ymlmc19pZGluZm8gPQoreworCS5uYW1lCQk9ICJ1YmlmcyIsCisJLnVzYWdlCQk9IEJMS0lEX1VTQUdFX0ZJTEVTWVNURU0sCisJLnByb2JlZnVuYwk9IHByb2JlX3ViaWZzLAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIlx4MzFceDE4XHgxMFx4MDYiLCAubGVuID0gNCB9LAorCQl7IE5VTEwgfQorCX0KK307CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3VkZi5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy91ZGYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWM5NmFkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy91ZGYuYwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBieSBBbmRyaWVzIEJyb3V3ZXIKKyAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMyBieSBUaGVvZG9yZSBUcydvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgYnkgQW5kcmVhcyBEaWxnZXIKKyAqIENvcHlyaWdodCAoQykgMjAwNCBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworc3RydWN0IHZvbHVtZV9kZXNjcmlwdG9yIHsKKwlzdHJ1Y3QgZGVzY3JpcHRvcl90YWcgeworCQl1aW50MTZfdAlpZDsKKwkJdWludDE2X3QJdmVyc2lvbjsKKwkJdWludDhfdAkJY2hlY2tzdW07CisJCXVpbnQ4X3QJCXJlc2VydmVkOworCQl1aW50MTZfdAlzZXJpYWw7CisJCXVpbnQxNl90CWNyYzsKKwkJdWludDE2X3QJY3JjX2xlbjsKKwkJdWludDMyX3QJbG9jYXRpb247CisJfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSB0YWc7CisKKwl1bmlvbiB7CisJCXN0cnVjdCBhbmNob3JfZGVzY3JpcHRvciB7CisJCQl1aW50MzJfdAlsZW5ndGg7CisJCQl1aW50MzJfdAlsb2NhdGlvbjsKKwkJfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBhbmNob3I7CisKKwkJc3RydWN0IHByaW1hcnlfZGVzY3JpcHRvciB7CisJCQl1aW50MzJfdAlzZXFfbnVtOworCQkJdWludDMyX3QJZGVzY19udW07CisJCQlzdHJ1Y3QgZHN0cmluZyB7CisJCQkJdWludDhfdAljbGVuOworCQkJCXVpbnQ4X3QJY1szMV07CisJCQl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGlkZW50OworCQl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHByaW1hcnk7CisKKwl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHR5cGU7CisKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0cnVjdCB2b2x1bWVfc3RydWN0dXJlX2Rlc2NyaXB0b3IgeworCXVpbnQ4X3QJCXR5cGU7CisJdWludDhfdAkJaWRbNV07CisJdWludDhfdAkJdmVyc2lvbjsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKKyNkZWZpbmUgVURGX1ZTRF9PRkZTRVQJCQkweDgwMDAKKworc3RhdGljIGludCBwcm9iZV91ZGYoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCB2b2x1bWVfZGVzY3JpcHRvciAqdmQ7CisJc3RydWN0IHZvbHVtZV9zdHJ1Y3R1cmVfZGVzY3JpcHRvciAqdnNkOworCXVuc2lnbmVkIGludCBiczsKKwl1bnNpZ25lZCBpbnQgYjsKKwl1bnNpZ25lZCBpbnQgdHlwZTsKKwl1bnNpZ25lZCBpbnQgY291bnQ7CisJdW5zaWduZWQgaW50IGxvYzsKKworCS8qIHNlYXJjaCBWb2x1bWUgU2VxdWVuY2UgRGVzY3JpcHRvciAoVlNEKSB0byBnZXQgdGhlIGxvZ2ljYWwKKwkgKiBibG9jayBzaXplIG9mIHRoZSB2b2x1bWUgKi8KKwlmb3IgKGJzID0gMHg4MDA7IGJzIDwgMHg4MDAwOyBicyArPSAweDgwMCkgeworCQl2c2QgPSAoc3RydWN0IHZvbHVtZV9zdHJ1Y3R1cmVfZGVzY3JpcHRvciAqKQorCQkJYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwKKwkJCQkJVURGX1ZTRF9PRkZTRVQgKyBicywKKwkJCQkJc2l6ZW9mKCp2c2QpKTsKKwkJaWYgKCF2c2QpCisJCQlyZXR1cm4gMTsKKwkJaWYgKHZzZC0+aWRbMF0gIT0gJ1wwJykKKwkJCWdvdG8gbnNyOworCX0KKwlyZXR1cm4gLTE7CisKK25zcjoKKwkvKiBzZWFyY2ggdGhlIGxpc3Qgb2YgVlNEcyBmb3IgYSBOU1IgZGVzY3JpcHRvciAqLworCWZvciAoYiA9IDA7IGIgPCA2NDsgYisrKSB7CisJCXZzZCA9IChzdHJ1Y3Qgdm9sdW1lX3N0cnVjdHVyZV9kZXNjcmlwdG9yICopCisJCQlibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJCQlVREZfVlNEX09GRlNFVCArIChiICogYnMpLAorCQkJCQlzaXplb2YoKnZzZCkpOworCQlpZiAoIXZzZCkKKwkJCXJldHVybiAtMTsKKwkJaWYgKHZzZC0+aWRbMF0gPT0gJ1wwJykKKwkJCXJldHVybiAtMTsKKwkJaWYgKG1lbWNtcCh2c2QtPmlkLCAiTlNSMDIiLCA1KSA9PSAwKQorCQkJZ290byBhbmNob3I7CisJCWlmIChtZW1jbXAodnNkLT5pZCwgIk5TUjAzIiwgNSkgPT0gMCkKKwkJCWdvdG8gYW5jaG9yOworCX0KKwlyZXR1cm4gLTE7CisKK2FuY2hvcjoKKwkvKiByZWFkIEFuY2hvciBWb2x1bWUgRGVzY3JpcHRvciAoQVZEUCkgKi8KKwl2ZCA9IChzdHJ1Y3Qgdm9sdW1lX2Rlc2NyaXB0b3IgKikKKwkJYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwgMjU2ICogYnMsIHNpemVvZigqdmQpKTsKKwlpZiAoIXZkKQorCQlyZXR1cm4gLTE7CisKKwl0eXBlID0gbGUxNl90b19jcHUodmQtPnRhZy5pZCk7CisJaWYgKHR5cGUgIT0gMikgLyogVEFHX0lEX0FWRFAgKi8KKwkJcmV0dXJuIDA7CisKKwkvKiBnZXQgZGVzcmlwdG9yIGxpc3QgYWRkcmVzcyBhbmQgYmxvY2sgY291bnQgKi8KKwljb3VudCA9IGxlMzJfdG9fY3B1KHZkLT50eXBlLmFuY2hvci5sZW5ndGgpIC8gYnM7CisJbG9jID0gbGUzMl90b19jcHUodmQtPnR5cGUuYW5jaG9yLmxvY2F0aW9uKTsKKworCS8qIHBpY2sgdGhlIHByaW1hcnkgZGVzY3JpcHRvciBmcm9tIHRoZSBsaXN0ICovCisJZm9yIChiID0gMDsgYiA8IGNvdW50OyBiKyspIHsKKwkJdmQgPSAoc3RydWN0IHZvbHVtZV9kZXNjcmlwdG9yICopCisJCQlibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLCAobG9jICsgYikgKiBicywgc2l6ZW9mKCp2ZCkpOworCQlpZiAoIXZkKQorCQkJcmV0dXJuIC0xOworCisJCXR5cGUgPSBsZTE2X3RvX2NwdSh2ZC0+dGFnLmlkKTsKKwkJaWYgKHR5cGUgPT0gMCkKKwkJCWJyZWFrOworCQlpZiAobGUzMl90b19jcHUodmQtPnRhZy5sb2NhdGlvbikgIT0gbG9jICsgYikKKwkJCWJyZWFrOworCQlpZiAodHlwZSA9PSAxKSB7IC8qIFRBR19JRF9QVkQgKi8KKwkJCXVpbnQ4X3QgY2xlbiA9IHZkLT50eXBlLnByaW1hcnkuaWRlbnQuY2xlbjsKKworCQkJaWYgKGNsZW4gPT0gOCkKKwkJCQlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsCisJCQkJCQl2ZC0+dHlwZS5wcmltYXJ5LmlkZW50LmMsIDMxKTsKKwkJCWVsc2UgaWYgKGNsZW4gPT0gMTYpCisJCQkJYmxraWRfcHJvYmVfc2V0X3V0ZjhsYWJlbChwciwKKwkJCQkJCXZkLT50eXBlLnByaW1hcnkuaWRlbnQuYywKKwkJCQkJCTMxLCBCTEtJRF9FTkNfVVRGMTZCRSk7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHVkZl9pZGluZm8gPQoreworCS5uYW1lCQk9ICJ1ZGYiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV91ZGYsCisJLmZsYWdzCQk9IEJMS0lEX0lESU5GT19UT0xFUkFOVCwKKwkubWFnaWNzCQk9CisJeworCQl7IC5tYWdpYyA9ICJCRUEwMSIsIC5sZW4gPSA1LCAua2JvZmYgPSAzMiwgLnNib2ZmID0gMSB9LAorCQl7IC5tYWdpYyA9ICJCT09UMiIsIC5sZW4gPSA1LCAua2JvZmYgPSAzMiwgLnNib2ZmID0gMSB9LAorCQl7IC5tYWdpYyA9ICJDRDAwMSIsIC5sZW4gPSA1LCAua2JvZmYgPSAzMiwgLnNib2ZmID0gMSB9LAorCQl7IC5tYWdpYyA9ICJDRFcwMiIsIC5sZW4gPSA1LCAua2JvZmYgPSAzMiwgLnNib2ZmID0gMSB9LAorCQl7IC5tYWdpYyA9ICJOU1IwMiIsIC5sZW4gPSA1LCAua2JvZmYgPSAzMiwgLnNib2ZmID0gMSB9LAorCQl7IC5tYWdpYyA9ICJOU1IwMyIsIC5sZW4gPSA1LCAua2JvZmYgPSAzMiwgLnNib2ZmID0gMSB9LAorCQl7IC5tYWdpYyA9ICJURUEwMSIsIC5sZW4gPSA1LCAua2JvZmYgPSAzMiwgLnNib2ZmID0gMSB9LAorCQl7IE5VTEwgfQorCX0KK307CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3Vmcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy91ZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGNlNzVlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy91ZnMuYwpAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBJbnNwaXJlZCBieSBsaWJ2b2x1bWVfaWQgYnkKKyAqICAgICBLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3QgdWZzX3N1cGVyX2Jsb2NrIHsKKwl1aW50MzJfdAlmc19saW5rOworCXVpbnQzMl90CWZzX3JsaW5rOworCXVpbnQzMl90CWZzX3NibGtubzsKKwl1aW50MzJfdAlmc19jYmxrbm87CisJdWludDMyX3QJZnNfaWJsa25vOworCXVpbnQzMl90CWZzX2RibGtubzsKKwl1aW50MzJfdAlmc19jZ29mZnNldDsKKwl1aW50MzJfdAlmc19jZ21hc2s7CisJdWludDMyX3QJZnNfdGltZTsKKwl1aW50MzJfdAlmc19zaXplOworCXVpbnQzMl90CWZzX2RzaXplOworCXVpbnQzMl90CWZzX25jZzsKKwl1aW50MzJfdAlmc19ic2l6ZTsKKwl1aW50MzJfdAlmc19mc2l6ZTsKKwl1aW50MzJfdAlmc19mcmFnOworCXVpbnQzMl90CWZzX21pbmZyZWU7CisJdWludDMyX3QJZnNfcm90ZGVsYXk7CisJdWludDMyX3QJZnNfcnBzOworCXVpbnQzMl90CWZzX2JtYXNrOworCXVpbnQzMl90CWZzX2ZtYXNrOworCXVpbnQzMl90CWZzX2JzaGlmdDsKKwl1aW50MzJfdAlmc19mc2hpZnQ7CisJdWludDMyX3QJZnNfbWF4Y29udGlnOworCXVpbnQzMl90CWZzX21heGJwZzsKKwl1aW50MzJfdAlmc19mcmFnc2hpZnQ7CisJdWludDMyX3QJZnNfZnNidG9kYjsKKwl1aW50MzJfdAlmc19zYnNpemU7CisJdWludDMyX3QJZnNfY3NtYXNrOworCXVpbnQzMl90CWZzX2Nzc2hpZnQ7CisJdWludDMyX3QJZnNfbmluZGlyOworCXVpbnQzMl90CWZzX2lub3BiOworCXVpbnQzMl90CWZzX25zcGY7CisJdWludDMyX3QJZnNfb3B0aW07CisJdWludDMyX3QJZnNfbnBzZWN0X3N0YXRlOworCXVpbnQzMl90CWZzX2ludGVybGVhdmU7CisJdWludDMyX3QJZnNfdHJhY2tza2V3OworCXVpbnQzMl90CWZzX2lkWzJdOworCXVpbnQzMl90CWZzX2NzYWRkcjsKKwl1aW50MzJfdAlmc19jc3NpemU7CisJdWludDMyX3QJZnNfY2dzaXplOworCXVpbnQzMl90CWZzX250cmFrOworCXVpbnQzMl90CWZzX25zZWN0OworCXVpbnQzMl90CWZzX3NwYzsKKwl1aW50MzJfdAlmc19uY3lsOworCXVpbnQzMl90CWZzX2NwZzsKKwl1aW50MzJfdAlmc19pcGc7CisJdWludDMyX3QJZnNfZnBnOworCXN0cnVjdCB1ZnNfY3N1bSB7CisJCXVpbnQzMl90CWNzX25kaXI7CisJCXVpbnQzMl90CWNzX25iZnJlZTsKKwkJdWludDMyX3QJY3NfbmlmcmVlOworCQl1aW50MzJfdAljc19uZmZyZWU7CisJfSBmc19jc3RvdGFsOworCWludDhfdAkJZnNfZm1vZDsKKwlpbnQ4X3QJCWZzX2NsZWFuOworCWludDhfdAkJZnNfcm9ubHk7CisJaW50OF90CQlmc19mbGFnczsKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQlpbnQ4X3QJZnNfZnNtbnRbNTEyXTsKKwkJCXVpbnQzMl90CWZzX2Nncm90b3I7CisJCQl1aW50MzJfdAlmc19jc3BbMzFdOworCQkJdWludDMyX3QJZnNfbWF4Y2x1c3RlcjsKKwkJCXVpbnQzMl90CWZzX2NwYzsKKwkJCXVpbnQxNl90CWZzX29wb3N0YmxbMTZdWzhdOworCQl9IGZzX3UxOworCQlzdHJ1Y3QgeworCQkJaW50OF90CQlmc19mc21udFs0NjhdOworCQkJdWludDhfdAkJZnNfdm9sbmFtZVszMl07CisJCQl1aW50NjRfdAlmc19zd3VpZDsKKwkJCWludDMyX3QJCWZzX3BhZDsKKwkJCXVpbnQzMl90CWZzX2Nncm90b3I7CisJCQl1aW50MzJfdAlmc19vY3NwWzI4XTsKKwkJCXVpbnQzMl90CWZzX2NvbnRpZ2RpcnM7CisJCQl1aW50MzJfdAlmc19jc3A7CisJCQl1aW50MzJfdAlmc19tYXhjbHVzdGVyOworCQkJdWludDMyX3QJZnNfYWN0aXZlOworCQkJaW50MzJfdAkJZnNfb2xkX2NwYzsKKwkJCWludDMyX3QJCWZzX21heGJzaXplOworCQkJaW50NjRfdAkJZnNfc3BhcmVjb242NFsxN107CisJCQlpbnQ2NF90CQlmc19zYmxvY2tsb2M7CisJCQlzdHJ1Y3QgdWZzMl9jc3VtX3RvdGFsIHsKKwkJCQl1aW50NjRfdAljc19uZGlyOworCQkJCXVpbnQ2NF90CWNzX25iZnJlZTsKKwkJCQl1aW50NjRfdAljc19uaWZyZWU7CisJCQkJdWludDY0X3QJY3NfbmZmcmVlOworCQkJCXVpbnQ2NF90CWNzX251bWNsdXN0ZXJzOworCQkJCXVpbnQ2NF90CWNzX3NwYXJlWzNdOworCQkJfSBmc19jc3RvdGFsOworCQkJc3RydWN0IHVmc190aW1ldmFsIHsKKwkJCQlpbnQzMl90CQl0dl9zZWM7CisJCQkJaW50MzJfdAkJdHZfdXNlYzsKKwkJCX0gZnNfdGltZTsKKwkJCWludDY0X3QJCWZzX3NpemU7CisJCQlpbnQ2NF90CQlmc19kc2l6ZTsKKwkJCXVpbnQ2NF90CWZzX2NzYWRkcjsKKwkJCWludDY0X3QJCWZzX3BlbmRpbmdibG9ja3M7CisJCQlpbnQzMl90CQlmc19wZW5kaW5naW5vZGVzOworCQl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGZzX3UyOworCX0gIGZzX3UxMTsKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQlpbnQzMl90CQlmc19zcGFyZWNvbls1M107CisJCQlpbnQzMl90CQlmc19yZWNsYWltOworCQkJaW50MzJfdAkJZnNfc3BhcmVjb24yWzFdOworCQkJaW50MzJfdAkJZnNfc3RhdGU7CisJCQl1aW50MzJfdAlmc19xYm1hc2tbMl07CisJCQl1aW50MzJfdAlmc19xZm1hc2tbMl07CisJCX0gZnNfc3VuOworCQlzdHJ1Y3QgeworCQkJaW50MzJfdAkJZnNfc3BhcmVjb25bNTNdOworCQkJaW50MzJfdAkJZnNfcmVjbGFpbTsKKwkJCWludDMyX3QJCWZzX3NwYXJlY29uMlsxXTsKKwkJCXVpbnQzMl90CWZzX25wc2VjdDsKKwkJCXVpbnQzMl90CWZzX3FibWFza1syXTsKKwkJCXVpbnQzMl90CWZzX3FmbWFza1syXTsKKwkJfSBmc19zdW54ODY7CisJCXN0cnVjdCB7CisJCQlpbnQzMl90CQlmc19zcGFyZWNvbls1MF07CisJCQlpbnQzMl90CQlmc19jb250aWdzdW1zaXplOworCQkJaW50MzJfdAkJZnNfbWF4c3ltbGlua2xlbjsKKwkJCWludDMyX3QJCWZzX2lub2RlZm10OworCQkJdWludDMyX3QJZnNfbWF4ZmlsZXNpemVbMl07CisJCQl1aW50MzJfdAlmc19xYm1hc2tbMl07CisJCQl1aW50MzJfdAlmc19xZm1hc2tbMl07CisJCQlpbnQzMl90CQlmc19zdGF0ZTsKKwkJfSBmc180NDsKKwl9IGZzX3UyOworCWludDMyX3QJCWZzX3Bvc3RibGZvcm1hdDsKKwlpbnQzMl90CQlmc19ucnBvczsKKwlpbnQzMl90CQlmc19wb3N0YmxvZmY7CisJaW50MzJfdAkJZnNfcm90YmxvZmY7CisJdWludDMyX3QJZnNfbWFnaWM7CisJdWludDhfdAkJZnNfc3BhY2VbMV07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisjZGVmaW5lIFVGU19NQUdJQwkJCTB4MDAwMTE5NTQKKyNkZWZpbmUgVUZTMl9NQUdJQwkJCTB4MTk1NDAxMTkKKyNkZWZpbmUgVUZTX01BR0lDX0ZFQQkJCTB4MDAxOTU2MTIKKyNkZWZpbmUgVUZTX01BR0lDX0xGTgkJCTB4MDAwOTUwMTQKKyNkZWZpbmUgVUZTX01BR0lDX1NFQwkJCTB4MDA2MTIxOTUKKyNkZWZpbmUgVUZTX01BR0lDXzRHQgkJCTB4MDUyMzE5OTQKKworc3RhdGljIGludCBwcm9iZV91ZnMoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCWludCBvZmZzZXRzW10gPSB7IDAsIDgsIDY0LCAyNTYgfTsKKwlpbnQgbWFnc1tdID0geworCQlVRlMyX01BR0lDLCBVRlNfTUFHSUMsIFVGU19NQUdJQ19GRUEsIFVGU19NQUdJQ19MRk4sCisJCVVGU19NQUdJQ19TRUMsIFVGU19NQUdJQ180R0IKKwl9OworCWludCBpOworCXVpbnQzMl90IG1hZ2ljOworCXN0cnVjdCB1ZnNfc3VwZXJfYmxvY2sgKnVmczsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG9mZnNldHMpOyBpKyspIHsKKwkJdWludDMyX3QgbWFnTEUsIG1hZ0JFOworCQlpbnQgeTsKKworCQl1ZnMgPSAoc3RydWN0IHVmc19zdXBlcl9ibG9jayAqKQorCQkJCWJsa2lkX3Byb2JlX2dldF9idWZmZXIocHIsCisJCQkJCW9mZnNldHNbaV0gKiAxMDI0LAorCQkJCQlzaXplb2Yoc3RydWN0IHVmc19zdXBlcl9ibG9jaykpOworCQlpZiAoIXVmcykKKwkJCXJldHVybiAtMTsKKworCQltYWdCRSA9IGJlMzJfdG9fY3B1KHVmcy0+ZnNfbWFnaWMpOworCQltYWdMRSA9IGxlMzJfdG9fY3B1KHVmcy0+ZnNfbWFnaWMpOworCisJCWZvciAoeSA9IDA7IHkgPCBBUlJBWV9TSVpFKG1hZ3MpOyB5KyspIHsKKwkJCWlmIChtYWdMRSA9PSBtYWdzW3ldIHx8IG1hZ0JFID09IG1hZ3NbeV0pIHsKKwkJCQltYWdpYyA9IG1hZ3NbeV07CisJCQkJZ290byBmb3VuZDsKKwkJCX0KKwkJfQorCX0KKworCXJldHVybiAxOworCitmb3VuZDoKKwlpZiAobWFnaWMgPT0gVUZTMl9NQUdJQykgeworCQlibGtpZF9wcm9iZV9zZXRfdmVyc2lvbihwciwgIjIiKTsKKwkJYmxraWRfcHJvYmVfc2V0X2xhYmVsKHByLCB1ZnMtPmZzX3UxMS5mc191Mi5mc192b2xuYW1lLAorCQkJCXNpemVvZih1ZnMtPmZzX3UxMS5mc191Mi5mc192b2xuYW1lKSk7CisJfSBlbHNlCisJCWJsa2lkX3Byb2JlX3NldF92ZXJzaW9uKHByLCAiMSIpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBBY2NvcmRpbmcgdG8gbGlidm9sdW1lX2lkIHRoZSBVRlMgc3VwZXJibG9jayBjb3VsZCBiZSBvbiBmb3VyIHBvc2l0aW9ucy4KKyAqIFRoZSBvcmlnaW5hbCBsaWJibGtpZCBoYXMgY2hlY2tlZCBvbmUgcG9zaXRpb24gKC5rYm9mZj04KSBvbmx5LgorICoKKyAqIFdlIGtub3cgZm91ciBVRlMgbWFnaWMgc3RyaW5ncyBhbmQgVUZTIGNvdWxkIGJlIGJvdGggbGl0dGxlLWVuZGlhbiBhbmQKKyAqIGJpZy1lbmRpYW4uIC4uLiBzbyB3ZSBoYXZlOgorICoKKyAqCTQgcG9zaXRpb24gKiA0IHN0cmluZyAqIDIgdmVyc2lvbiA9IDMyIG1hZ2ljIHN0cmluZ3MKKyAqCisgKiBJdCBzZWVtcyBzaW1wbGVyIHRvIGNoZWNrIGZvciB0aGVzZSBzdHJpbmcgaW4gcHJvYmluZyBmdW5jdGlvbiB0aGF0IGhhcmRjb2RlCisgKiBhbGwgaW4gdGhlIC5tYWdpYyBhcnJheS4KKyAqLworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyB1ZnNfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAidWZzIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfdWZzLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy92ZmF0LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3ZmYXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjRmNjA3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy92ZmF0LmMKQEAgLTAsMCArMSwzNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgYnkgQW5kcmllcyBCcm91d2VyCisgKiBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMgYnkgVGhlb2RvcmUgVHMnbworICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IEFuZHJlYXMgRGlsZ2VyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKKy8qIHttc2Rvcyx2ZmF0fV9zdXBlcl9ibG9jayBpcyBkZWZpbmVkIGluIC4uL2ZhdC5oICovCisjaW5jbHVkZSAiZmF0LmgiCisKK3N0cnVjdCB2ZmF0X2Rpcl9lbnRyeSB7CisJdWludDhfdAkJbmFtZVsxMV07CisJdWludDhfdAkJYXR0cjsKKwl1aW50MTZfdAl0aW1lX2NyZWF0OworCXVpbnQxNl90CWRhdGVfY3JlYXQ7CisJdWludDE2X3QJdGltZV9hY2M7CisJdWludDE2X3QJZGF0ZV9hY2M7CisJdWludDE2X3QJY2x1c3Rlcl9oaWdoOworCXVpbnQxNl90CXRpbWVfd3JpdGU7CisJdWludDE2X3QJZGF0ZV93cml0ZTsKKwl1aW50MTZfdAljbHVzdGVyX2xvdzsKKwl1aW50MzJfdAlzaXplOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IGZhdDMyX2ZzaW5mbyB7CisJdWludDhfdCBzaWduYXR1cmUxWzRdOworCXVpbnQzMl90IHJlc2VydmVkMVsxMjBdOworCXVpbnQ4X3Qgc2lnbmF0dXJlMls0XTsKKwl1aW50MzJfdCBmcmVlX2NsdXN0ZXJzOworCXVpbnQzMl90IG5leHRfY2x1c3RlcjsKKwl1aW50MzJfdCByZXNlcnZlZDJbNF07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisvKiBtYXhpbXVtIG51bWJlciBvZiBjbHVzdGVycyAqLworI2RlZmluZSBGQVQxMl9NQVggMHhGRjQKKyNkZWZpbmUgRkFUMTZfTUFYIDB4RkZGNAorI2RlZmluZSBGQVQzMl9NQVggMHgwRkZGRkZGNgorCisjZGVmaW5lIEZBVF9BVFRSX1ZPTFVNRV9JRAkJMHgwOAorI2RlZmluZSBGQVRfQVRUUl9ESVIJCQkweDEwCisjZGVmaW5lIEZBVF9BVFRSX0xPTkdfTkFNRQkJMHgwZgorI2RlZmluZSBGQVRfQVRUUl9NQVNLCQkJMHgzZgorI2RlZmluZSBGQVRfRU5UUllfRlJFRQkJCTB4ZTUKKworc3RhdGljIGNvbnN0IGNoYXIgKm5vX25hbWUgPSAiTk8gTkFNRSAgICAiOworCisvKgorICogTG9vayBmb3IgTEFCRUwgKG5hbWUpIGluIHRoZSBGQVQgcm9vdCBkaXJlY3RvcnkuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBjaGFyICpzZWFyY2hfZmF0X2xhYmVsKGJsa2lkX3Byb2JlIHByLAorCQkJCXVpbnQzMl90IG9mZnNldCwgdWludDMyX3QgZW50cmllcykKK3sKKwlzdHJ1Y3QgdmZhdF9kaXJfZW50cnkgKmVudCwgKmRpciA9IE5VTEw7CisJaW50IGk7CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsCisJCXByaW50ZigiXHRsb29rIGZvciBsYWJlbCBpbiByb290LWRpciAiCisJCQkiKGVudHJpZXM6ICVkLCBvZmZzZXQ6ICVkKVxuIiwgZW50cmllcywgb2Zmc2V0KSk7CisKKwlpZiAoIWJsa2lkX3Byb2JlX2lzX3RpbnkocHIpKSB7CisJCS8qIGxhcmdlIGRpc2ssIHJlYWQgd2hvbGUgcm9vdCBkaXJlY3RvcnkgKi8KKwkJZGlyID0gKHN0cnVjdCB2ZmF0X2Rpcl9lbnRyeSAqKQorCQkJYmxraWRfcHJvYmVfZ2V0X2J1ZmZlcihwciwKKwkJCQkJb2Zmc2V0LAorCQkJCQllbnRyaWVzICogc2l6ZW9mKHN0cnVjdCB2ZmF0X2Rpcl9lbnRyeSkpOworCQlpZiAoIWRpcikKKwkJCXJldHVybiBOVUxMOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBlbnRyaWVzOyBpKyspIHsKKwkJLyoKKwkJICogVGhlIHJvb3QgZGlyZWN0b3J5IGNvdWxkIGJlIHJlbGF0aXZlbHkgbGFyZ2UgKDQtMTZrQikuCisJCSAqIEZvcnR1bmF0ZWx5LCB0aGUgTEFCRUwgaXMgdXN1YWxseSB0aGUgZmlyc3QgZW50cnkgaW4gdGhlCisJCSAqIGRpcmVjdG9yeS4gT24gdGlueSBkaXNrcyB3ZSBjYWxsIHJlYWQoKSBwZXIgZW50cnkuCisJCSAqLworCQlpZiAoIWRpcikKKwkJCWVudCA9IChzdHJ1Y3QgdmZhdF9kaXJfZW50cnkgKikKKwkJCQlibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJCQlvZmZzZXQgKyAoaSAqIHNpemVvZihzdHJ1Y3QgdmZhdF9kaXJfZW50cnkpKSwKKwkJCQkJc2l6ZW9mKHN0cnVjdCB2ZmF0X2Rpcl9lbnRyeSkpOworCQllbHNlCisJCQllbnQgPSAmZGlyW2ldOworCisJCWlmICghZW50IHx8IGVudC0+bmFtZVswXSA9PSAweDAwKQorCQkJYnJlYWs7CisKKwkJaWYgKChlbnQtPm5hbWVbMF0gPT0gRkFUX0VOVFJZX0ZSRUUpIHx8CisJCSAgICAoZW50LT5jbHVzdGVyX2hpZ2ggIT0gMCB8fCBlbnQtPmNsdXN0ZXJfbG93ICE9IDApIHx8CisJCSAgICAoKGVudC0+YXR0ciAmIEZBVF9BVFRSX01BU0spID09IEZBVF9BVFRSX0xPTkdfTkFNRSkpCisJCQljb250aW51ZTsKKworCQlpZiAoKGVudC0+YXR0ciAmIChGQVRfQVRUUl9WT0xVTUVfSUQgfCBGQVRfQVRUUl9ESVIpKSA9PQorCQkgICAgRkFUX0FUVFJfVk9MVU1FX0lEKSB7CisJCQlEQkcoREVCVUdfTE9XUFJPQkUsCisJCQkJcHJpbnRmKCJcdGZvdW5kIGZzIExBQkVMIGF0IGVudHJ5ICVkXG4iLCBpKSk7CisJCQlyZXR1cm4gZW50LT5uYW1lOworCQl9CisJfQorCXJldHVybiBOVUxMOworfQorCisvKgorICogVGhlIEZBVCBmaWxlc3lzdGVtIGNvdWxkIGJlIHdpdGhvdXQgYSBtYWdpYyBzdHJpbmcgaW4gc3VwZXJibG9jaworICogKGUuZy4gb2xkIGZsb3BwaWVzKS4gIFRoaXMgaGV1cmlzdGljIGZvciBGQVQgZGV0ZWN0aW9uIGlzIGluc3BpcmVkCisgKiBieSBsaWJ2b2x1bWVfaWQgYW5kIHRoZSBMaW51eCBrZXJuZWwuCisgKi8KK3N0YXRpYyBpbnQgcHJvYmVfZmF0X25vbWFnaWMoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCBtc2Rvc19zdXBlcl9ibG9jayAqbXM7CisKKwltcyA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgbXNkb3Nfc3VwZXJfYmxvY2spOworCWlmICghbXMpCisJCXJldHVybiAtMTsKKworCS8qIE9sZCBmbG9wcGllcyBoYXZlIGEgdmFsaWQgTUJSIHNpZ25hdHVyZSAqLworCWlmIChtcy0+bXNfcG1hZ2ljWzBdICE9IDB4NTUgfHwgbXMtPm1zX3BtYWdpY1sxXSAhPSAweEFBKQorCQlyZXR1cm4gMTsKKworCS8qIGhlYWRzIGNoZWNrICovCisJaWYgKG1zLT5tc19oZWFkcyA9PSAwKQorCQlyZXR1cm4gMTsKKworCS8qIGNsdXN0ZXIgc2l6ZSBjaGVjayovCisJaWYgKG1zLT5tc19jbHVzdGVyX3NpemUgPT0gMCB8fAorCSAgICAobXMtPm1zX2NsdXN0ZXJfc2l6ZSAmIChtcy0+bXNfY2x1c3Rlcl9zaXplLTEpKSkKKwkJcmV0dXJuIDE7CisKKwkvKiBtZWRpYSBjaGVjayAqLworCWlmICghYmxraWRfZmF0X3ZhbGlkX21lZGlhKG1zKSkKKwkJcmV0dXJuIDE7CisKKwkvKiBmYXQgY291bnRzKExpbnV4IGtlcm5lbCBleHBlY3RzIGF0IGxlYXN0IDEgRkFUIHRhYmxlKSAqLworCWlmICghbXMtPm1zX2ZhdHMpCisJCXJldHVybiAxOworCisJLyoKKwkgKiBPUy8yIGFuZCBhcHBhcmVudGx5IERGU2VlIHdpbGwgcGxhY2UgYSBGQVQxMi8xNi1saWtlCisJICogcHNldWRvLXN1cGVyYmxvY2sgaW4gdGhlIGZpcnN0IDUxMiBieXRlcyBvZiBub24tRkFUCisJICogZmlsZXN5c3RlbXMgLS0tIGF0IGxlYXN0IEpGUyBhbmQgSFBGUywgYW5kIHBvc3NpYmx5IG90aGVycy4KKwkgKiBTbyB3ZSBleHBsaWNpdGx5IGNoZWNrIGZvciB0aG9zZSBmaWxlc3lzdGVtcyBhdCB0aGUKKwkgKiBGQVQxMi8xNiBmaWxlc3lzdGVtIG1hZ2ljIGZpZWxkIGlkZW50aWZpZXIsIGFuZCBpZiB0aGV5IGFyZQorCSAqIHByZXNlbnQsIHdlIHJ1bGUgdGhpcyBvdXQgYXMgYSBGQVQgZmlsZXN5c3RlbSwgZGVzcGl0ZSB0aGUKKwkgKiBGQVQtbGlrZSBwc2V1ZG8taGVhZGVyLgorICAgICAgICAgKi8KKwlpZiAoKG1lbWNtcChtcy0+bXNfbWFnaWMsICJKRlMgICAgICIsIDgpID09IDApIHx8CisJICAgIChtZW1jbXAobXMtPm1zX21hZ2ljLCAiSFBGUyAgICAiLCA4KSA9PSAwKSkKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4gMDsKK30KKworLyogRkFUIGxhYmVsIGV4dHJhY3Rpb24gZnJvbSB0aGUgcm9vdCBkaXJlY3RvcnkgdGFrZW4gZnJvbSBLYXkKKyAqIFNpZXZlcnMncyB2b2x1bWVfaWQgbGlicmFyeSAqLworc3RhdGljIGludCBwcm9iZV92ZmF0KGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgdmZhdF9zdXBlcl9ibG9jayAqdnM7CisJc3RydWN0IG1zZG9zX3N1cGVyX2Jsb2NrICptczsKKwljb25zdCB1bnNpZ25lZCBjaGFyICp2b2xfbGFiZWwgPSAwLCAqdG1wOworCXVuc2lnbmVkIGNoYXIgKnZvbF9zZXJubywgdm9sX2xhYmVsX2J1ZlsxMV07CisJaW50IG1heGxvb3AgPSAxMDA7CisJdWludDE2X3Qgc2VjdG9yX3NpemUsIGRpcl9lbnRyaWVzLCByZXNlcnZlZDsKKwl1aW50MzJfdCBzZWN0X2NvdW50LCBmYXRfc2l6ZSwgZGlyX3NpemUsIGNsdXN0ZXJfY291bnQsIGZhdF9sZW5ndGg7CisJdWludDMyX3QgYnVmX3NpemUsIHN0YXJ0X2RhdGFfc2VjdCwgbmV4dCwgcm9vdF9zdGFydCwgcm9vdF9kaXJfZW50cmllczsKKwljb25zdCBjaGFyICp2ZXJzaW9uID0gTlVMTDsKKworCS8qIG5vbi1zdGFuZGFyZCBtYWdpYyBzdHJpbmdzICovCisJaWYgKG1hZy0+bGVuIDw9IDIgJiYgcHJvYmVfZmF0X25vbWFnaWMocHIsIG1hZykgIT0gMCkKKwkJcmV0dXJuIDE7CisKKwl2cyA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgdmZhdF9zdXBlcl9ibG9jayk7CisJaWYgKCF2cykKKwkJcmV0dXJuIC0xOworCisJbXMgPSBibGtpZF9wcm9iZV9nZXRfc2IocHIsIG1hZywgc3RydWN0IG1zZG9zX3N1cGVyX2Jsb2NrKTsKKwlpZiAoIW1zKQorCQlyZXR1cm4gLTE7CisKKwkvKiBzZWN0b3Igc2l6ZSBjaGVjayAqLworCWlmICghYmxraWRfZmF0X3ZhbGlkX3NlY3RvcnNpemUobXMsICZzZWN0b3Jfc2l6ZSkpCisJCXJldHVybiAxOworCisJdG1wID0gKHVuc2lnbmVkIGNoYXIgKikgJm1zLT5tc19kaXJfZW50cmllczsKKwlkaXJfZW50cmllcyA9IHRtcFswXSArICh0bXBbMV0gPDwgOCk7CisJcmVzZXJ2ZWQgPSAgbGUxNl90b19jcHUobXMtPm1zX3Jlc2VydmVkKTsKKwl0bXAgPSAodW5zaWduZWQgY2hhciAqKSAmbXMtPm1zX3NlY3RvcnM7CisJc2VjdF9jb3VudCA9IHRtcFswXSArICh0bXBbMV0gPDwgOCk7CisJaWYgKHNlY3RfY291bnQgPT0gMCkKKwkJc2VjdF9jb3VudCA9IGxlMzJfdG9fY3B1KG1zLT5tc190b3RhbF9zZWN0KTsKKworCWZhdF9sZW5ndGggPSBsZTE2X3RvX2NwdShtcy0+bXNfZmF0X2xlbmd0aCk7CisJaWYgKGZhdF9sZW5ndGggPT0gMCkKKwkJZmF0X2xlbmd0aCA9IGxlMzJfdG9fY3B1KHZzLT52c19mYXQzMl9sZW5ndGgpOworCisJZmF0X3NpemUgPSBmYXRfbGVuZ3RoICogbXMtPm1zX2ZhdHM7CisJZGlyX3NpemUgPSAoKGRpcl9lbnRyaWVzICogc2l6ZW9mKHN0cnVjdCB2ZmF0X2Rpcl9lbnRyeSkpICsKKwkJCShzZWN0b3Jfc2l6ZS0xKSkgLyBzZWN0b3Jfc2l6ZTsKKworCWNsdXN0ZXJfY291bnQgPSBzZWN0X2NvdW50IC0gKHJlc2VydmVkICsgZmF0X3NpemUgKyBkaXJfc2l6ZSk7CisJaWYgKG1zLT5tc19jbHVzdGVyX3NpemUgPT0gMCkKKwkJcmV0dXJuIDE7CisJY2x1c3Rlcl9jb3VudCAvPSBtcy0+bXNfY2x1c3Rlcl9zaXplOworCisJaWYgKGNsdXN0ZXJfY291bnQgPiBGQVQzMl9NQVgpCisJCXJldHVybiAxOworCisJaWYgKG1zLT5tc19mYXRfbGVuZ3RoKSB7CisJCS8qIHRoZSBsYWJlbCBtYXkgYmUgYW4gYXR0cmlidXRlIGluIHRoZSByb290IGRpcmVjdG9yeSAqLworCQlyb290X3N0YXJ0ID0gKHJlc2VydmVkICsgZmF0X3NpemUpICogc2VjdG9yX3NpemU7CisJCXJvb3RfZGlyX2VudHJpZXMgPSB2cy0+dnNfZGlyX2VudHJpZXNbMF0gKworCQkJKHZzLT52c19kaXJfZW50cmllc1sxXSA8PCA4KTsKKworCQl2b2xfbGFiZWwgPSBzZWFyY2hfZmF0X2xhYmVsKHByLCByb290X3N0YXJ0LCByb290X2Rpcl9lbnRyaWVzKTsKKwkJaWYgKHZvbF9sYWJlbCkgeworCQkJbWVtY3B5KHZvbF9sYWJlbF9idWYsIHZvbF9sYWJlbCwgMTEpOworCQkJdm9sX2xhYmVsID0gdm9sX2xhYmVsX2J1ZjsKKwkJfQorCisJCWlmICghdm9sX2xhYmVsIHx8ICFtZW1jbXAodm9sX2xhYmVsLCBub19uYW1lLCAxMSkpCisJCQl2b2xfbGFiZWwgPSBtcy0+bXNfbGFiZWw7CisJCXZvbF9zZXJubyA9IG1zLT5tc19zZXJubzsKKworCQlibGtpZF9wcm9iZV9zZXRfdmFsdWUocHIsICJTRUNfVFlQRSIsICh1bnNpZ25lZCBjaGFyICopICJtc2RvcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoIm1zZG9zIikpOworCisJCWlmIChjbHVzdGVyX2NvdW50IDwgRkFUMTJfTUFYKQorCQkJdmVyc2lvbiA9ICJGQVQxMiI7CisJCWVsc2UgaWYgKGNsdXN0ZXJfY291bnQgPCBGQVQxNl9NQVgpCisJCQl2ZXJzaW9uID0gIkZBVDE2IjsKKwl9IGVsc2UgeworCQl1bnNpZ25lZCBjaGFyICpidWY7CisJCXVpbnQxNl90IGZzaW5mb19zZWN0OworCisJCS8qIFNlYXJjaCB0aGUgRkFUMzIgcm9vdCBkaXIgZm9yIHRoZSBsYWJlbCBhdHRyaWJ1dGUgKi8KKwkJYnVmX3NpemUgPSB2cy0+dnNfY2x1c3Rlcl9zaXplICogc2VjdG9yX3NpemU7CisJCXN0YXJ0X2RhdGFfc2VjdCA9IHJlc2VydmVkICsgZmF0X3NpemU7CisKKwkJdmVyc2lvbiA9ICJGQVQzMiI7CisKKwkJbmV4dCA9IGxlMzJfdG9fY3B1KHZzLT52c19yb290X2NsdXN0ZXIpOworCQl3aGlsZSAobmV4dCAmJiAtLW1heGxvb3ApIHsKKwkJCXVpbnQzMl90IG5leHRfc2VjdF9vZmY7CisJCQl1aW50NjRfdCBuZXh0X29mZiwgZmF0X2VudHJ5X29mZjsKKwkJCWludCBjb3VudDsKKworCQkJbmV4dF9zZWN0X29mZiA9IChuZXh0IC0gMikgKiB2cy0+dnNfY2x1c3Rlcl9zaXplOworCQkJbmV4dF9vZmYgPSAoc3RhcnRfZGF0YV9zZWN0ICsgbmV4dF9zZWN0X29mZikgKgorCQkJCXNlY3Rvcl9zaXplOworCisJCQljb3VudCA9IGJ1Zl9zaXplIC8gc2l6ZW9mKHN0cnVjdCB2ZmF0X2Rpcl9lbnRyeSk7CisKKwkJCXZvbF9sYWJlbCA9IHNlYXJjaF9mYXRfbGFiZWwocHIsIG5leHRfb2ZmLCBjb3VudCk7CisJCQlpZiAodm9sX2xhYmVsKSB7CisJCQkJbWVtY3B5KHZvbF9sYWJlbF9idWYsIHZvbF9sYWJlbCwgMTEpOworCQkJCXZvbF9sYWJlbCA9IHZvbF9sYWJlbF9idWY7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCS8qIGdldCBGQVQgZW50cnkgKi8KKwkJCWZhdF9lbnRyeV9vZmYgPSAocmVzZXJ2ZWQgKiBzZWN0b3Jfc2l6ZSkgKworCQkJCShuZXh0ICogc2l6ZW9mKHVpbnQzMl90KSk7CisJCQlidWYgPSBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLCBmYXRfZW50cnlfb2ZmLCBidWZfc2l6ZSk7CisJCQlpZiAoYnVmID09IE5VTEwpCisJCQkJYnJlYWs7CisKKwkJCS8qIHNldCBuZXh0IGNsdXN0ZXIgKi8KKwkJCW5leHQgPSBsZTMyX3RvX2NwdSgqKCh1aW50MzJfdCAqKSBidWYpICYgMHgwZmZmZmZmZik7CisJCX0KKworCQlpZiAoIXZvbF9sYWJlbCB8fCAhbWVtY21wKHZvbF9sYWJlbCwgbm9fbmFtZSwgMTEpKQorCQkJdm9sX2xhYmVsID0gdnMtPnZzX2xhYmVsOworCQl2b2xfc2Vybm8gPSB2cy0+dnNfc2Vybm87CisKKwkJLyoKKwkJICogRkFUMzIgc2hvdWxkIGhhdmUgYSB2YWxpZCBzaWduYXR1cmUgaW4gdGhlIGZzaW5mbyBibG9jaywKKwkJICogYnV0IGFsc28gYWxsb3cgYWxsIGJ5dGVzIHNldCB0byAnXDAnLCBiZWNhdXNlIHNvbWUgdm9sdW1lcworCQkgKiBkbyBub3Qgc2V0IHRoZSBzaWduYXR1cmUgYXQgYWxsLgorCQkgKi8KKwkJZnNpbmZvX3NlY3QgPSBsZTE2X3RvX2NwdSh2cy0+dnNfZnNpbmZvX3NlY3Rvcik7CisJCWlmIChmc2luZm9fc2VjdCkgeworCQkJc3RydWN0IGZhdDMyX2ZzaW5mbyAqZnNpbmZvOworCisJCQlidWYgPSBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJCQlmc2luZm9fc2VjdCAqIHNlY3Rvcl9zaXplLAorCQkJCQlzaXplb2Yoc3RydWN0IGZhdDMyX2ZzaW5mbykpOworCQkJaWYgKGJ1ZiA9PSBOVUxMKQorCQkJCXJldHVybiAtMTsKKworCQkJZnNpbmZvID0gKHN0cnVjdCBmYXQzMl9mc2luZm8gKikgYnVmOworCQkJaWYgKG1lbWNtcChmc2luZm8tPnNpZ25hdHVyZTEsICJceDUyXHg1Mlx4NjFceDQxIiwgNCkgIT0gMCAmJgorCQkJICAgIG1lbWNtcChmc2luZm8tPnNpZ25hdHVyZTEsICJceDAwXHgwMFx4MDBceDAwIiwgNCkgIT0gMCkKKwkJCQlyZXR1cm4gLTE7CisJCQlpZiAobWVtY21wKGZzaW5mby0+c2lnbmF0dXJlMiwgIlx4NzJceDcyXHg0MVx4NjEiLCA0KSAhPSAwICYmCisJCQkgICAgbWVtY21wKGZzaW5mby0+c2lnbmF0dXJlMiwgIlx4MDBceDAwXHgwMFx4MDAiLCA0KSAhPSAwKQorCQkJCXJldHVybiAtMTsKKwkJfQorCX0KKworCWlmICh2b2xfbGFiZWwgJiYgbWVtY21wKHZvbF9sYWJlbCwgbm9fbmFtZSwgMTEpKQorCQlibGtpZF9wcm9iZV9zZXRfbGFiZWwocHIsICh1bnNpZ25lZCBjaGFyICopIHZvbF9sYWJlbCwgMTEpOworCisJLyogV2UgY2FuJ3QganVzdCBwcmludCB0aGVtIGFzICUwNFgsIGJlY2F1c2UgdGhleSBhcmUgdW5hbGlnbmVkICovCisJYmxraWRfcHJvYmVfc3ByaW50Zl91dWlkKHByLCB2b2xfc2Vybm8sIDQsICIlMDJYJTAyWC0lMDJYJTAyWCIsCisJCXZvbF9zZXJub1szXSwgdm9sX3Nlcm5vWzJdLCB2b2xfc2Vybm9bMV0sIHZvbF9zZXJub1swXSk7CisKKwlpZiAodmVyc2lvbikKKwkJYmxraWRfcHJvYmVfc2V0X3ZlcnNpb24ocHIsIHZlcnNpb24pOworCisJcmV0dXJuIDA7Cit9CisKKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyB2ZmF0X2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gInZmYXQiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV92ZmF0LAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIk1TV0lOIiwgICAgLmxlbiA9IDUsIC5zYm9mZiA9IDB4NTIgfSwKKwkJeyAubWFnaWMgPSAiRkFUMzIgICAiLCAubGVuID0gOCwgLnNib2ZmID0gMHg1MiB9LAorCQl7IC5tYWdpYyA9ICJNU0RPUyIsICAgIC5sZW4gPSA1LCAuc2JvZmYgPSAweDM2IH0sCisJCXsgLm1hZ2ljID0gIkZBVDE2ICAgIiwgLmxlbiA9IDgsIC5zYm9mZiA9IDB4MzYgfSwKKwkJeyAubWFnaWMgPSAiRkFUMTIgICAiLCAubGVuID0gOCwgLnNib2ZmID0gMHgzNiB9LAorCQl7IC5tYWdpYyA9ICJcMzUzIiwgICAgIC5sZW4gPSAxLCB9LAorCQl7IC5tYWdpYyA9ICJcMzUxIiwgICAgIC5sZW4gPSAxLCB9LAorCQl7IC5tYWdpYyA9ICJcMTI1XDI1MiIsIC5sZW4gPSAyLCAuc2JvZmYgPSAweDFmZSB9LAorCQl7IE5VTEwgfQorCX0KK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvdmlhX3JhaWQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvdmlhX3JhaWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzk3NGE3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy92aWFfcmFpZC5jCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogSW5zcGlyZWQgYnkgbGlidm9sdW1lX2lkIGJ5CisgKiAgICAgS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworc3RydWN0IHZpYV9tZXRhZGF0YSB7CisJdWludDE2X3QJc2lnbmF0dXJlOworCXVpbnQ4X3QJCXZlcnNpb25fbnVtYmVyOworCXN0cnVjdCB2aWFfYXJyYXkgeworCQl1aW50MTZfdAlkaXNrX2JpdF9tYXNrOworCQl1aW50OF90CQlkaXNrX2FycmF5X2V4OworCQl1aW50MzJfdAljYXBhY2l0eV9sb3c7CisJCXVpbnQzMl90CWNhcGFjaXR5X2hpZ2g7CisJCXVpbnQzMl90CXNlcmlhbF9jaGVja3N1bTsKKwl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGFycmF5OworCXVpbnQzMl90CXNlcmlhbF9jaGVja3N1bVs4XTsKKwl1aW50OF90CQljaGVja3N1bTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKKyNkZWZpbmUgVklBX1NJR05BVFVSRQkJMHhBQTU1CisKKy8qIDggYml0IGNoZWNrc3VtIG9uIGZpcnN0IDUwIGJ5dGVzIG9mIG1ldGFkYXRhLiAqLworc3RhdGljIHVpbnQ4X3QgdmlhX2NoZWNrc3VtKHN0cnVjdCB2aWFfbWV0YWRhdGEgKnYpCit7CisJdWludDhfdCBpID0gNTAsIGNzID0gMDsKKworCXdoaWxlIChpLS0pCisJCWNzICs9ICgodWludDhfdCopIHYpW2ldOworCisJcmV0dXJuIGNzID09IHYtPmNoZWNrc3VtOworfQorCitzdGF0aWMgaW50IHByb2JlX3ZpYXJhaWQoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXVpbnQ2NF90IG9mZjsKKwlzdHJ1Y3QgdmlhX21ldGFkYXRhICp2OworCisJaWYgKHByLT5zaXplIDwgMHgxMDAwMCkKKwkJcmV0dXJuIC0xOworCisJb2ZmID0gKChwci0+c2l6ZSAvIDB4MjAwKS0xKSAqIDB4MjAwOworCisJdiA9IChzdHJ1Y3QgdmlhX21ldGFkYXRhICopCisJCQlibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJCW9mZiwKKwkJCQlzaXplb2Yoc3RydWN0IHZpYV9tZXRhZGF0YSkpOworCWlmICghdikKKwkJcmV0dXJuIC0xOworCWlmIChsZTE2X3RvX2NwdSh2LT5zaWduYXR1cmUpICE9IFZJQV9TSUdOQVRVUkUpCisJCXJldHVybiAtMTsKKwlpZiAodi0+dmVyc2lvbl9udW1iZXIgPiAyKQorCQlyZXR1cm4gLTE7CisJaWYgKCF2aWFfY2hlY2tzdW0odikpCisJCXJldHVybiAtMTsKKwlpZiAoYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJXUiLCB2LT52ZXJzaW9uX251bWJlcikgIT0gMCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHZpYXJhaWRfaWRpbmZvID0geworCS5uYW1lCQk9ICJ2aWFfcmFpZF9tZW1iZXIiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9SQUlELAorCS5wcm9iZWZ1bmMJPSBwcm9iZV92aWFyYWlkLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3ZtZnMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvdm1mcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZDA5YTgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3ZtZnMuYwpAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBNaWtlIEhvbW1leSA8bWhAZ2xhbmRpdW0ub3JnPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCitzdHJ1Y3Qgdm1mc19mc19pbmZvIHsKKwl1aW50MzJfdCBtYWdpYzsKKwl1aW50MzJfdCB2b2x1bWVfdmVyc2lvbjsKKwl1aW50OF90IHZlcnNpb247CisJdWludDhfdCB1dWlkWzE2XTsKKwl1aW50MzJfdCBtb2RlOworCWNoYXIgbGFiZWxbMTI4XTsKK30gX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKTsKKworc3RydWN0IHZtZnNfdm9sdW1lX2luZm8geworCXVpbnQzMl90IG1hZ2ljOworCXVpbnQzMl90IHZlcjsKKwl1aW50OF90IGlycmVsZXZhbnRbMTIyXTsKKwl1aW50OF90IHV1aWRbMTZdOworfSBfX2F0dHJpYnV0ZV9fICgoX19wYWNrZWRfXykpOworCitzdGF0aWMgaW50IHByb2JlX3ZtZnNfZnMoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCB2bWZzX2ZzX2luZm8gKmhlYWRlcjsKKworCWhlYWRlciA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3Qgdm1mc19mc19pbmZvKTsKKwlpZiAoaGVhZGVyID09IE5VTEwpCisJCXJldHVybiAtMTsKKworCWJsa2lkX3Byb2JlX3NwcmludGZfdXVpZChwciwgKHVuc2lnbmVkIGNoYXIgKikgaGVhZGVyLT51dWlkLCAxNiwKKwkJIiUwMnglMDJ4JTAyeCUwMngtJTAyeCUwMnglMDJ4JTAyeC0iCisJCSIlMDJ4JTAyeC0lMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngiLAorCQloZWFkZXItPnV1aWRbM10sIGhlYWRlci0+dXVpZFsyXSwgaGVhZGVyLT51dWlkWzFdLAorCQloZWFkZXItPnV1aWRbMF0sIGhlYWRlci0+dXVpZFs3XSwgaGVhZGVyLT51dWlkWzZdLAorCQloZWFkZXItPnV1aWRbNV0sIGhlYWRlci0+dXVpZFs0XSwgaGVhZGVyLT51dWlkWzldLAorCQloZWFkZXItPnV1aWRbOF0sIGhlYWRlci0+dXVpZFsxMF0sIGhlYWRlci0+dXVpZFsxMV0sCisJCWhlYWRlci0+dXVpZFsxMl0sIGhlYWRlci0+dXVpZFsxM10sIGhlYWRlci0+dXVpZFsxNF0sCisJCWhlYWRlci0+dXVpZFsxNV0pOworCisJYmxraWRfcHJvYmVfc2V0X2xhYmVsKHByLCAodW5zaWduZWQgY2hhciAqKSBoZWFkZXItPmxhYmVsLAorCQkJCQlzaXplb2YoaGVhZGVyLT5sYWJlbCkpOworCWJsa2lkX3Byb2JlX3NwcmludGZfdmVyc2lvbihwciwgIiV1IiwgaGVhZGVyLT52ZXJzaW9uKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwcm9iZV92bWZzX3ZvbHVtZShibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IHZtZnNfdm9sdW1lX2luZm8gKmhlYWRlcjsKKwl1bnNpZ25lZCBjaGFyICpsdm1fdXVpZDsKKworCWhlYWRlciA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3Qgdm1mc192b2x1bWVfaW5mbyk7CisJaWYgKGhlYWRlciA9PSBOVUxMKQorCQlyZXR1cm4gLTE7CisKKwlibGtpZF9wcm9iZV9zcHJpbnRmX3ZhbHVlKHByLCAiVVVJRF9TVUIiLAorCQkiJTAyeCUwMnglMDJ4JTAyeC0lMDJ4JTAyeCUwMnglMDJ4LSIKKwkJIiUwMnglMDJ4LSUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIsCisJCWhlYWRlci0+dXVpZFszXSwgaGVhZGVyLT51dWlkWzJdLCBoZWFkZXItPnV1aWRbMV0sCisJCWhlYWRlci0+dXVpZFswXSwgaGVhZGVyLT51dWlkWzddLCBoZWFkZXItPnV1aWRbNl0sCisJCWhlYWRlci0+dXVpZFs1XSwgaGVhZGVyLT51dWlkWzRdLCBoZWFkZXItPnV1aWRbOV0sCisJCWhlYWRlci0+dXVpZFs4XSwgaGVhZGVyLT51dWlkWzEwXSwgaGVhZGVyLT51dWlkWzExXSwKKwkJaGVhZGVyLT51dWlkWzEyXSwgaGVhZGVyLT51dWlkWzEzXSwgaGVhZGVyLT51dWlkWzE0XSwKKwkJaGVhZGVyLT51dWlkWzE1XSk7CisJYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJXUiLCBsZTMyX3RvX2NwdShoZWFkZXItPnZlcikpOworCisJbHZtX3V1aWQgPSBibGtpZF9wcm9iZV9nZXRfYnVmZmVyKHByLAorCQkJCTEwMjQgKiAxMDI0IC8qIFN0YXJ0IG9mIHRoZSB2b2x1bWUgaW5mbyAqLworCQkJCSsgNTEyIC8qIE9mZnNldCB0byBsdm0gaW5mbyAqLworCQkJCSsgMjAgLyogT2Zmc2V0IGluIGx2bSBpbmZvICovLCAzNSk7CisJaWYgKGx2bV91dWlkKQorCQlibGtpZF9wcm9iZV9zdHJuY3B5X3V1aWQocHIsIGx2bV91dWlkLCAzNSk7CisKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyB2bWZzX2ZzX2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gIlZNRlMiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV92bWZzX2ZzLAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIlx4NWVceGYxXHhhYlx4MmYiLCAubGVuID0gNCwgLmtib2ZmID0gMjA0OCB9LAorCQl7IE5VTEwgfQorCX0KK307CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gdm1mc192b2x1bWVfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiVk1GU192b2x1bWVfbWVtYmVyIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfUkFJRCwKKwkucHJvYmVmdW5jCT0gcHJvYmVfdm1mc192b2x1bWUsCisJLm1hZ2ljcwkJPQorCXsKKwkJeyAubWFnaWMgPSAiXHgwZFx4ZDBceDAxXHhjMCIsIC5sZW4gPSA0LCAua2JvZmYgPSAxMDI0IH0sCisJCXsgTlVMTCB9CisJfQorfTsKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvdnhmcy5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy92eGZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRhYjg1YQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3Mvdnhmcy5jCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgInN1cGVyYmxvY2tzLmgiCisKK3N0cnVjdCB2eGZzX3N1cGVyX2Jsb2NrIHsKKwl1aW50MzJfdAkJdnNfbWFnaWM7CisJaW50MzJfdAkJCXZzX3ZlcnNpb247Cit9OworCitzdGF0aWMgaW50IHByb2JlX3Z4ZnMoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCXN0cnVjdCB2eGZzX3N1cGVyX2Jsb2NrICp2eHM7CisKKwl2eHMgPSBibGtpZF9wcm9iZV9nZXRfc2IocHIsIG1hZywgc3RydWN0IHZ4ZnNfc3VwZXJfYmxvY2spOworCWlmICghdnhzKQorCQlyZXR1cm4gLTE7CisKKwlibGtpZF9wcm9iZV9zcHJpbnRmX3ZlcnNpb24ocHIsICIldSIsICh1bnNpZ25lZCBpbnQpIHZ4cy0+dnNfdmVyc2lvbik7CisJcmV0dXJuIDA7Cit9CisKKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyB2eGZzX2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gInZ4ZnMiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV92eGZzLAorCS5tYWdpY3MJCT0KKwl7CisJCXsgLm1hZ2ljID0gIlwzNjVcMzc0XDAwMVwyNDUiLCAubGVuID0gNCwgLmtib2ZmID0gMSB9LAorCQl7IE5VTEwgfQorCX0KK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MveGZzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3hmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzOTlmZTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3N1cGVyYmxvY2tzL3hmcy5jCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgYnkgQW5kcmllcyBCcm91d2VyCisgKiBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMgYnkgVGhlb2RvcmUgVHMnbworICogQ29weXJpZ2h0IChDKSAyMDAxIGJ5IEFuZHJlYXMgRGlsZ2VyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAic3VwZXJibG9ja3MuaCIKKworc3RydWN0IHhmc19zdXBlcl9ibG9jayB7CisJdW5zaWduZWQgY2hhcgl4c19tYWdpY1s0XTsKKwl1aW50MzJfdAl4c19ibG9ja3NpemU7CisJdWludDY0X3QJeHNfZGJsb2NrczsKKwl1aW50NjRfdAl4c19yYmxvY2tzOworCXVpbnQzMl90CXhzX2R1bW15MVsyXTsKKwl1bnNpZ25lZCBjaGFyCXhzX3V1aWRbMTZdOworCXVpbnQzMl90CXhzX2R1bW15MlsxNV07CisJY2hhcgkJeHNfZm5hbWVbMTJdOworCXVpbnQzMl90CXhzX2R1bW15M1syXTsKKwl1aW50NjRfdAl4c19pY291bnQ7CisJdWludDY0X3QJeHNfaWZyZWU7CisJdWludDY0X3QJeHNfZmRibG9ja3M7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdGF0aWMgaW50IHByb2JlX3hmcyhibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJc3RydWN0IHhmc19zdXBlcl9ibG9jayAqeHM7CisKKwl4cyA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgeGZzX3N1cGVyX2Jsb2NrKTsKKwlpZiAoIXhzKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoc3RybGVuKHhzLT54c19mbmFtZSkpCisJCWJsa2lkX3Byb2JlX3NldF9sYWJlbChwciwgKHVuc2lnbmVkIGNoYXIgKikgeHMtPnhzX2ZuYW1lLAorCQkJCXNpemVvZih4cy0+eHNfZm5hbWUpKTsKKwlibGtpZF9wcm9iZV9zZXRfdXVpZChwciwgeHMtPnhzX3V1aWQpOworCXJldHVybiAwOworfQorCitjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHhmc19pZGluZm8gPQoreworCS5uYW1lCQk9ICJ4ZnMiLAorCS51c2FnZQkJPSBCTEtJRF9VU0FHRV9GSUxFU1lTVEVNLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV94ZnMsCisJLm1hZ2ljcwkJPQorCXsKKwkJeyAubWFnaWMgPSAiWEZTQiIsIC5sZW4gPSA0IH0sCisJCXsgTlVMTCB9CisJfQorfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy9zdXBlcmJsb2Nrcy96ZnMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvemZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VlOTM2OQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvc3VwZXJibG9ja3MvemZzLmMKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBieSBBbmRyZWFzIERpbGdlciA8YWRpbGdlckBzdW4uY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNpbmNsdWRlICJzdXBlcmJsb2Nrcy5oIgorCisvKiAjaW5jbHVkZSA8c3lzL3ViZXJibG9ja19pbXBsLmg+ICovCisjZGVmaW5lIFVCRVJCTE9DS19NQUdJQyAgICAgICAgIDB4MDBiYWIxMGMgICAgICAgICAgICAgIC8qIG9vLWJhLWJsb2MhICAqLworc3RydWN0IHpmc191YmVyYmxvY2sgeworCXVpbnQ2NF90CXViX21hZ2ljOwkvKiBVQkVSQkxPQ0tfTUFHSUMJCSovCisJdWludDY0X3QJdWJfdmVyc2lvbjsJLyogU1BBX1ZFUlNJT04JCQkqLworCXVpbnQ2NF90CXViX3R4ZzsJCS8qIHR4ZyBvZiBsYXN0IHN5bmMJCSovCisJdWludDY0X3QJdWJfZ3VpZF9zdW07CS8qIHN1bSBvZiBhbGwgdmRldiBndWlkcwkqLworCXVpbnQ2NF90CXViX3RpbWVzdGFtcDsJLyogVVRDIHRpbWUgb2YgbGFzdCBzeW5jCSovCisJY2hhcgkJdWJfcm9vdGJwOwkvKiBNT1Mgb2Jqc2V0X3BoeXNfdAkJKi8KK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0YXRpYyBpbnQgcHJvYmVfemZzKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgemZzX3ViZXJibG9jayAqdWI7CisJdWludDY0X3Qgc3BhX3ZlcnNpb247CisKKwl1YiA9IGJsa2lkX3Byb2JlX2dldF9zYihwciwgbWFnLCBzdHJ1Y3QgemZzX3ViZXJibG9jayk7CisJaWYgKCF1YikKKwkJcmV0dXJuIC0xOworCisJaWYgKHViLT51Yl9tYWdpYyA9PSBiZTY0X3RvX2NwdShVQkVSQkxPQ0tfTUFHSUMpKQorCQlzcGFfdmVyc2lvbiA9IGJlNjRfdG9fY3B1KHViLT51Yl92ZXJzaW9uKTsKKwllbHNlCisJCXNwYV92ZXJzaW9uID0gbGU2NF90b19jcHUodWItPnViX3ZlcnNpb24pOworCisJYmxraWRfcHJvYmVfc3ByaW50Zl92ZXJzaW9uKHByLCAiJSIgUFJJdTY0LCBzcGFfdmVyc2lvbik7CisjaWYgMAorCS8qIHJlYWQgbnZwYWlyIGRhdGEgZm9yIHBvb2wgbmFtZSwgcG9vbCBHVUlEIGZyb20gdGhlIE1PUywgYnV0CisJICogdW5mb3J0dW5hdGVseSB0aGlzIGlzIG1vcmUgY29tcGxleCB0aGFuIGl0IGNvdWxkIGJlICovCisJYmxraWRfcHJvYmVfc2V0X2xhYmVsKHByLCBwb29sX25hbWUsIHBvb2xfbGVuKSk7CisJYmxraWRfcHJvYmVfc2V0X3V1aWQocHIsIHBvb2xfZ3VpZCk7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyB6ZnNfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAiemZzIiwKKwkudXNhZ2UJCT0gQkxLSURfVVNBR0VfRklMRVNZU1RFTSwKKwkucHJvYmVmdW5jCT0gcHJvYmVfemZzLAorCS5taW5zegkJPSA2NCAqIDEwMjQgKiAxMDI0LAorCS5tYWdpY3MJCT0KKwl7CisJCS8qIFpGUyBoYXMgMTI4IHJvb3QgYmxvY2tzICgjNCBpcyB0aGUgZmlyc3QgdXNlZCksIGNoZWNrIG9ubHkgNiBvZiB0aGVtICovCisJCXsgLm1hZ2ljID0gIlwwXDBcMFwwXDBceGJhXHhiMVx4MGMiLCAubGVuID0gOCwgLmtib2ZmID0gMTI4IH0sCisJCXsgLm1hZ2ljID0gIlx4MGNceGIxXHhiYVwwXDBcMFwwXDAiLCAubGVuID0gOCwgLmtib2ZmID0gMTI4IH0sCisJCXsgLm1hZ2ljID0gIlwwXDBcMFwwXDBceGJhXHhiMVx4MGMiLCAubGVuID0gOCwgLmtib2ZmID0gMTMyIH0sCisJCXsgLm1hZ2ljID0gIlx4MGNceGIxXHhiYVwwXDBcMFwwXDAiLCAubGVuID0gOCwgLmtib2ZmID0gMTMyIH0sCisJCXsgLm1hZ2ljID0gIlwwXDBcMFwwXDBceGJhXHhiMVx4MGMiLCAubGVuID0gOCwgLmtib2ZmID0gMTM2IH0sCisJCXsgLm1hZ2ljID0gIlx4MGNceGIxXHhiYVwwXDBcMFwwXDAiLCAubGVuID0gOCwgLmtib2ZmID0gMTM2IH0sCisJCXsgLm1hZ2ljID0gIlwwXDBcMFwwXDBceGJhXHhiMVx4MGMiLCAubGVuID0gOCwgLmtib2ZmID0gMzg0IH0sCisJCXsgLm1hZ2ljID0gIlx4MGNceGIxXHhiYVwwXDBcMFwwXDAiLCAubGVuID0gOCwgLmtib2ZmID0gMzg0IH0sCisJCXsgLm1hZ2ljID0gIlwwXDBcMFwwXDBceGJhXHhiMVx4MGMiLCAubGVuID0gOCwgLmtib2ZmID0gMzg4IH0sCisJCXsgLm1hZ2ljID0gIlx4MGNceGIxXHhiYVwwXDBcMFwwXDAiLCAubGVuID0gOCwgLmtib2ZmID0gMzg4IH0sCisJCXsgLm1hZ2ljID0gIlwwXDBcMFwwXDBceGJhXHhiMVx4MGMiLCAubGVuID0gOCwgLmtib2ZmID0gMzkyIH0sCisJCXsgLm1hZ2ljID0gIlx4MGNceGIxXHhiYVwwXDBcMFwwXDAiLCAubGVuID0gOCwgLmtib2ZmID0gMzkyIH0sCisJCXsgTlVMTCB9CisJfQorfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90YWcuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdGFnLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRiZTFmZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdGFnLmMKQEAgLTAsMCArMSw0NzQgQEAKKy8qCisgKiB0YWcuYyAtIGFsbG9jYXRpb24vaW5pdGlhbGl6YXRpb24vZnJlZSByb3V0aW5lcyBmb3IgdGFnIHN0cnVjdHMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgQW5kcmVhcyBEaWxnZXIKKyAqIENvcHlyaWdodCAoQykgMjAwMyBUaGVvZG9yZSBUcydvCisgKgorICogJUJlZ2luLUhlYWRlciUKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgImJsa2lkUC5oIgorCitzdGF0aWMgYmxraWRfdGFnIGJsa2lkX25ld190YWcodm9pZCkKK3sKKwlibGtpZF90YWcgdGFnOworCisJaWYgKCEodGFnID0gKGJsa2lkX3RhZykgY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgYmxraWRfc3RydWN0X3RhZykpKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlJTklUX0xJU1RfSEVBRCgmdGFnLT5iaXRfdGFncyk7CisJSU5JVF9MSVNUX0hFQUQoJnRhZy0+Yml0X25hbWVzKTsKKworCXJldHVybiB0YWc7Cit9CisKKyNpZmRlZiBDT05GSUdfQkxLSURfREVCVUcKK3ZvaWQgYmxraWRfZGVidWdfZHVtcF90YWcoYmxraWRfdGFnIHRhZykKK3sKKwlpZiAoIXRhZykgeworCQlwcmludGYoIiAgICB0YWc6IE5VTExcbiIpOworCQlyZXR1cm47CisJfQorCisJcHJpbnRmKCIgICAgdGFnOiAlcz1cIiVzXCJcbiIsIHRhZy0+Yml0X25hbWUsIHRhZy0+Yml0X3ZhbCk7Cit9CisjZW5kaWYKKwordm9pZCBibGtpZF9mcmVlX3RhZyhibGtpZF90YWcgdGFnKQoreworCWlmICghdGFnKQorCQlyZXR1cm47CisKKwlEQkcoREVCVUdfVEFHLCBwcmludGYoIiAgICBmcmVlaW5nIHRhZyAlcz0lc1xuIiwgdGFnLT5iaXRfbmFtZSwKKwkJICAgdGFnLT5iaXRfdmFsID8gdGFnLT5iaXRfdmFsIDogIihOVUxMKSIpKTsKKwlEQkcoREVCVUdfVEFHLCBibGtpZF9kZWJ1Z19kdW1wX3RhZyh0YWcpKTsKKworCWxpc3RfZGVsKCZ0YWctPmJpdF90YWdzKTsJLyogbGlzdCBvZiB0YWdzIGZvciB0aGlzIGRldmljZSAqLworCWxpc3RfZGVsKCZ0YWctPmJpdF9uYW1lcyk7CS8qIGxpc3Qgb2YgdGFncyB3aXRoIHRoaXMgdHlwZSAqLworCisJZnJlZSh0YWctPmJpdF9uYW1lKTsKKwlmcmVlKHRhZy0+Yml0X3ZhbCk7CisKKwlmcmVlKHRhZyk7Cit9CisKKy8qCisgKiBGaW5kIHRoZSBkZXNpcmVkIHRhZyBvbiBhIGRldmljZS4gIElmIHZhbHVlIGlzIE5VTEwsIHRoZW4gdGhlCisgKiBmaXJzdCBzdWNoIHRhZyBpcyByZXR1cm5lZCwgb3RoZXJ3aXNlIHJldHVybiBvbmx5IGV4YWN0IHRhZyBpZiBmb3VuZC4KKyAqLworYmxraWRfdGFnIGJsa2lkX2ZpbmRfdGFnX2RldihibGtpZF9kZXYgZGV2LCBjb25zdCBjaGFyICp0eXBlKQoreworCXN0cnVjdCBsaXN0X2hlYWQgKnA7CisKKwlpZiAoIWRldiB8fCAhdHlwZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlsaXN0X2Zvcl9lYWNoKHAsICZkZXYtPmJpZF90YWdzKSB7CisJCWJsa2lkX3RhZyB0bXAgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCBibGtpZF9zdHJ1Y3RfdGFnLAorCQkJCQkgICBiaXRfdGFncyk7CisKKwkJaWYgKCFzdHJjbXAodG1wLT5iaXRfbmFtZSwgdHlwZSkpCisJCQlyZXR1cm4gdG1wOworCX0KKwlyZXR1cm4gTlVMTDsKK30KKworZXh0ZXJuIGludCBibGtpZF9kZXZfaGFzX3RhZyhibGtpZF9kZXYgZGV2LCBjb25zdCBjaGFyICp0eXBlLAorCQkJICAgICBjb25zdCBjaGFyICp2YWx1ZSkKK3sKKwlibGtpZF90YWcJCXRhZzsKKworCWlmICghZGV2IHx8ICF0eXBlKQorCQlyZXR1cm4gLTE7CisKKwl0YWcgPSBibGtpZF9maW5kX3RhZ19kZXYoZGV2LCB0eXBlKTsKKwlpZiAoIXZhbHVlKQorCQlyZXR1cm4gKHRhZyAhPSBOVUxMKTsKKwlpZiAoIXRhZyB8fCBzdHJjbXAodGFnLT5iaXRfdmFsLCB2YWx1ZSkpCisJCXJldHVybiAwOworCXJldHVybiAxOworfQorCisvKgorICogRmluZCB0aGUgZGVzaXJlZCB0YWcgdHlwZSBpbiB0aGUgY2FjaGUuCisgKiBXZSByZXR1cm4gdGhlIGhlYWQgdGFnIGZvciB0aGlzIHRhZyB0eXBlLgorICovCitzdGF0aWMgYmxraWRfdGFnIGJsa2lkX2ZpbmRfaGVhZF9jYWNoZShibGtpZF9jYWNoZSBjYWNoZSwgY29uc3QgY2hhciAqdHlwZSkKK3sKKwlibGtpZF90YWcgaGVhZCA9IE5VTEwsIHRtcDsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwOworCisJaWYgKCFjYWNoZSB8fCAhdHlwZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlsaXN0X2Zvcl9lYWNoKHAsICZjYWNoZS0+YmljX3RhZ3MpIHsKKwkJdG1wID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgYmxraWRfc3RydWN0X3RhZywgYml0X3RhZ3MpOworCQlpZiAoIXN0cmNtcCh0bXAtPmJpdF9uYW1lLCB0eXBlKSkgeworCQkJREJHKERFQlVHX1RBRywKKwkJCSAgICBwcmludGYoIiAgICBmb3VuZCBjYWNoZSB0YWcgaGVhZCAlc1xuIiwgdHlwZSkpOworCQkJaGVhZCA9IHRtcDsKKwkJCWJyZWFrOworCQl9CisJfQorCXJldHVybiBoZWFkOworfQorCisvKgorICogU2V0IGEgdGFnIG9uIGFuIGV4aXN0aW5nIGRldmljZS4KKyAqCisgKiBJZiB2YWx1ZSBpcyBOVUxMLCB0aGVuIGRlbGV0ZSB0aGUgdGFnc2Zyb20gdGhlIGRldmljZS4KKyAqLworaW50IGJsa2lkX3NldF90YWcoYmxraWRfZGV2IGRldiwgY29uc3QgY2hhciAqbmFtZSwKKwkJICBjb25zdCBjaGFyICp2YWx1ZSwgY29uc3QgaW50IHZsZW5ndGgpCit7CisJYmxraWRfdGFnCXQgPSAwLCBoZWFkID0gMDsKKwljaGFyCQkqdmFsID0gMDsKKwljaGFyCQkqKmRldl92YXIgPSAwOworCisJaWYgKCFkZXYgfHwgIW5hbWUpCisJCXJldHVybiAtQkxLSURfRVJSX1BBUkFNOworCisJaWYgKCEodmFsID0gYmxraWRfc3RybmR1cCh2YWx1ZSwgdmxlbmd0aCkpICYmIHZhbHVlKQorCQlyZXR1cm4gLUJMS0lEX0VSUl9NRU07CisKKwkvKgorCSAqIENlcnRhaW4gY29tbW9uIHRhZ3MgYXJlIGxpbmtlZCBkaXJlY3RseSB0byB0aGUgZGV2aWNlIHN0cnVjdAorCSAqIFdlIG5lZWQgdG8ga25vdyB3aGF0IHRoZXkgYXJlIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyBlbHNlIGJlY2F1c2UKKwkgKiB0aGUgZnVuY3Rpb24gbmFtZSBwYXJhbWV0ZXIgbWlnaHQgZ2V0IGZyZWVkIGxhdGVyIG9uLgorCSAqLworCWlmICghc3RyY21wKG5hbWUsICJUWVBFIikpCisJCWRldl92YXIgPSAmZGV2LT5iaWRfdHlwZTsKKwllbHNlIGlmICghc3RyY21wKG5hbWUsICJMQUJFTCIpKQorCQlkZXZfdmFyID0gJmRldi0+YmlkX2xhYmVsOworCWVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlVVSUQiKSkKKwkJZGV2X3ZhciA9ICZkZXYtPmJpZF91dWlkOworCisJdCA9IGJsa2lkX2ZpbmRfdGFnX2RldihkZXYsIG5hbWUpOworCWlmICghdmFsdWUpIHsKKwkJaWYgKHQpCisJCQlibGtpZF9mcmVlX3RhZyh0KTsKKwl9IGVsc2UgaWYgKHQpIHsKKwkJaWYgKCFzdHJjbXAodC0+Yml0X3ZhbCwgdmFsKSkgeworCQkJLyogU2FtZSB0aGluZywgZXhpdCAqLworCQkJZnJlZSh2YWwpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJZnJlZSh0LT5iaXRfdmFsKTsKKwkJdC0+Yml0X3ZhbCA9IHZhbDsKKwl9IGVsc2UgeworCQkvKiBFeGlzdGluZyB0YWcgbm90IHByZXNlbnQsIGFkZCB0byBkZXZpY2UgKi8KKwkJaWYgKCEodCA9IGJsa2lkX25ld190YWcoKSkpCisJCQlnb3RvIGVycm91dDsKKwkJdC0+Yml0X25hbWUgPSBibGtpZF9zdHJkdXAobmFtZSk7CisJCXQtPmJpdF92YWwgPSB2YWw7CisJCXQtPmJpdF9kZXYgPSBkZXY7CisKKwkJbGlzdF9hZGRfdGFpbCgmdC0+Yml0X3RhZ3MsICZkZXYtPmJpZF90YWdzKTsKKworCQlpZiAoZGV2LT5iaWRfY2FjaGUpIHsKKwkJCWhlYWQgPSBibGtpZF9maW5kX2hlYWRfY2FjaGUoZGV2LT5iaWRfY2FjaGUsCisJCQkJCQkgICAgIHQtPmJpdF9uYW1lKTsKKwkJCWlmICghaGVhZCkgeworCQkJCWhlYWQgPSBibGtpZF9uZXdfdGFnKCk7CisJCQkJaWYgKCFoZWFkKQorCQkJCQlnb3RvIGVycm91dDsKKworCQkJCURCRyhERUJVR19UQUcsCisJCQkJICAgIHByaW50ZigiICAgIGNyZWF0aW5nIG5ldyBjYWNoZSB0YWcgaGVhZCAlc1xuIiwgbmFtZSkpOworCQkJCWhlYWQtPmJpdF9uYW1lID0gYmxraWRfc3RyZHVwKG5hbWUpOworCQkJCWlmICghaGVhZC0+Yml0X25hbWUpCisJCQkJCWdvdG8gZXJyb3V0OworCQkJCWxpc3RfYWRkX3RhaWwoJmhlYWQtPmJpdF90YWdzLAorCQkJCQkgICAgICAmZGV2LT5iaWRfY2FjaGUtPmJpY190YWdzKTsKKwkJCX0KKwkJCWxpc3RfYWRkX3RhaWwoJnQtPmJpdF9uYW1lcywgJmhlYWQtPmJpdF9uYW1lcyk7CisJCX0KKwl9CisKKwkvKiBMaW5rIGNvbW1vbiB0YWdzIGRpcmVjdGx5IHRvIHRoZSBkZXZpY2Ugc3RydWN0ICovCisJaWYgKGRldl92YXIpCisJCSpkZXZfdmFyID0gdmFsOworCisJaWYgKGRldi0+YmlkX2NhY2hlKQorCQlkZXYtPmJpZF9jYWNoZS0+YmljX2ZsYWdzIHw9IEJMS0lEX0JJQ19GTF9DSEFOR0VEOworCXJldHVybiAwOworCitlcnJvdXQ6CisJaWYgKHQpCisJCWJsa2lkX2ZyZWVfdGFnKHQpOworCWVsc2UKKwkJZnJlZSh2YWwpOworCWlmIChoZWFkKQorCQlibGtpZF9mcmVlX3RhZyhoZWFkKTsKKwlyZXR1cm4gLUJMS0lEX0VSUl9NRU07Cit9CisKKworLyoKKyAqIFBhcnNlIGEgIk5BTUU9dmFsdWUiIHN0cmluZy4gIFRoaXMgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4KKyAqIHBhcnNlX3Rva2VuLCBiZWNhdXNlIHRoYXQgd2lsbCBlbmQgYW4gdW5xdW90ZWQgdmFsdWUgYXQgYSBzcGFjZSwgd2hpbGUKKyAqIHRoaXMgd2lsbCBhc3N1bWUgdGhhdCBhbiB1bnF1b3RlZCB2YWx1ZSBpcyB0aGUgcmVzdCBvZiB0aGUgdG9rZW4gKGUuZy4KKyAqIGlmIHdlIGFyZSBwYXNzZWQgYW4gYWxyZWFkeSBxdW90ZWQgc3RyaW5nIGZyb20gdGhlIGNvbW1hbmQtbGluZSB3ZSBkb24ndAorICogaGF2ZSB0byBib3RoIHF1b3RlIGFuZCBlc2NhcGUgcXVvdGUgc28gdGhhdCB0aGUgcXVvdGVzIG1ha2UgaXQgdG8KKyAqIHVzKS4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgYW5kIC0xIG9uIGZhaWx1cmUuCisgKi8KK2ludCBibGtpZF9wYXJzZV90YWdfc3RyaW5nKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICoqcmV0X3R5cGUsIGNoYXIgKipyZXRfdmFsKQoreworCWNoYXIgKm5hbWUsICp2YWx1ZSwgKmNwOworCisJREJHKERFQlVHX1RBRywgcHJpbnRmKCJ0cnlpbmcgdG8gcGFyc2UgJyVzJyBhcyBhIHRhZ1xuIiwgdG9rZW4pKTsKKworCWlmICghdG9rZW4gfHwgIShjcCA9IHN0cmNocih0b2tlbiwgJz0nKSkpCisJCXJldHVybiAtMTsKKworCW5hbWUgPSBibGtpZF9zdHJkdXAodG9rZW4pOworCWlmICghbmFtZSkKKwkJcmV0dXJuIC0xOworCXZhbHVlID0gbmFtZSArIChjcCAtIHRva2VuKTsKKwkqdmFsdWUrKyA9ICdcMCc7CisJaWYgKCp2YWx1ZSA9PSAnIicgfHwgKnZhbHVlID09ICdcJycpIHsKKwkJY2hhciBjID0gKnZhbHVlKys7CisJCWlmICghKGNwID0gc3RycmNocih2YWx1ZSwgYykpKQorCQkJZ290byBlcnJvdXQ7IC8qIG1pc3NpbmcgY2xvc2luZyBxdW90ZSAqLworCQkqY3AgPSAnXDAnOworCX0KKwl2YWx1ZSA9IGJsa2lkX3N0cmR1cCh2YWx1ZSk7CisJaWYgKCF2YWx1ZSkKKwkJZ290byBlcnJvdXQ7CisKKwkqcmV0X3R5cGUgPSBuYW1lOworCSpyZXRfdmFsID0gdmFsdWU7CisKKwlyZXR1cm4gMDsKKworZXJyb3V0OgorCWZyZWUobmFtZSk7CisJcmV0dXJuIC0xOworfQorCisvKgorICogVGFnIGl0ZXJhdGlvbiByb3V0aW5lcyBmb3IgdGhlIHB1YmxpYyBsaWJibGtpZCBpbnRlcmZhY2UuCisgKgorICogVGhlc2Ugcm91dGluZXMgZG8gbm90IGV4cG9zZSB0aGUgbGlzdC5oIGltcGxlbWVudGF0aW9uLCB3aGljaCBhcmUgYQorICogY29udGFtaW5hdGlvbiBvZiB0aGUgbmFtZXNwYWNlLCBhbmQgd2hpY2ggZm9yY2UgdXMgdG8gcmV2ZWFsIGZhciwgZmFyCisgKiB0b28gbXVjaCBvZiBvdXIgaW50ZXJuYWwgaW1wbGVtZW5hdGlvbi4gIEknbSBub3QgY29udmluY2VkIEkgd2FudAorICogdG8ga2VlcCBsaXN0LmggaW4gdGhlIGxvbmcgdGVybSwgYW55d2F5LiAgSXQncyBmaW5lIGZvciBrZXJuZWwKKyAqIHByb2dyYW1taW5nLCBidXQgcGVyZm9ybWFuY2UgaXMgbm90IHRoZSAjMSBwcmlvcml0eSBmb3IgdGhpcworICogbGlicmFyeSwgYW5kIEkgcmVhbGx5IGRvbid0IGxpa2UgdGhlIHRyYWRlb2ZmIG9mIHR5cGUtc2FmZXR5IGZvcgorICogcGVyZm9ybWFuY2UgZm9yIHRoaXMgYXBwbGljYXRpb24uICBbdHl0c286MjAwMzAxMjUuMjAwN0VTVF0KKyAqLworCisvKgorICogVGhpcyBzZXJpZXMgb2YgZnVuY3Rpb25zIGl0ZXJhdGUgb3ZlciBhbGwgdGFncyBpbiBhIGRldmljZQorICovCisjZGVmaW5lIFRBR19JVEVSQVRFX01BR0lDCTB4MDFhNTI4NGMKKworc3RydWN0IGJsa2lkX3N0cnVjdF90YWdfaXRlcmF0ZSB7CisJaW50CQkJbWFnaWM7CisJYmxraWRfZGV2CQlkZXY7CisJc3RydWN0IGxpc3RfaGVhZAkqcDsKK307CisKK2V4dGVybiBibGtpZF90YWdfaXRlcmF0ZSBibGtpZF90YWdfaXRlcmF0ZV9iZWdpbihibGtpZF9kZXYgZGV2KQoreworCWJsa2lkX3RhZ19pdGVyYXRlCWl0ZXI7CisKKwlpdGVyID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgYmxraWRfc3RydWN0X3RhZ19pdGVyYXRlKSk7CisJaWYgKGl0ZXIpIHsKKwkJaXRlci0+bWFnaWMgPSBUQUdfSVRFUkFURV9NQUdJQzsKKwkJaXRlci0+ZGV2ID0gZGV2OworCQlpdGVyLT5wCT0gZGV2LT5iaWRfdGFncy5uZXh0OworCX0KKwlyZXR1cm4gKGl0ZXIpOworfQorCisvKgorICogUmV0dXJuIDAgb24gc3VjY2VzcywgLTEgb24gZXJyb3IKKyAqLworZXh0ZXJuIGludCBibGtpZF90YWdfbmV4dChibGtpZF90YWdfaXRlcmF0ZSBpdGVyLAorCQkJICBjb25zdCBjaGFyICoqdHlwZSwgY29uc3QgY2hhciAqKnZhbHVlKQoreworCWJsa2lkX3RhZyB0YWc7CisKKwkqdHlwZSA9IDA7CisJKnZhbHVlID0gMDsKKwlpZiAoIWl0ZXIgfHwgaXRlci0+bWFnaWMgIT0gVEFHX0lURVJBVEVfTUFHSUMgfHwKKwkgICAgaXRlci0+cCA9PSAmaXRlci0+ZGV2LT5iaWRfdGFncykKKwkJcmV0dXJuIC0xOworCXRhZyA9IGxpc3RfZW50cnkoaXRlci0+cCwgc3RydWN0IGJsa2lkX3N0cnVjdF90YWcsIGJpdF90YWdzKTsKKwkqdHlwZSA9IHRhZy0+Yml0X25hbWU7CisJKnZhbHVlID0gdGFnLT5iaXRfdmFsOworCWl0ZXItPnAgPSBpdGVyLT5wLT5uZXh0OworCXJldHVybiAwOworfQorCitleHRlcm4gdm9pZCBibGtpZF90YWdfaXRlcmF0ZV9lbmQoYmxraWRfdGFnX2l0ZXJhdGUgaXRlcikKK3sKKwlpZiAoIWl0ZXIgfHwgaXRlci0+bWFnaWMgIT0gVEFHX0lURVJBVEVfTUFHSUMpCisJCXJldHVybjsKKwlpdGVyLT5tYWdpYyA9IDA7CisJZnJlZShpdGVyKTsKK30KKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGRldmljZSB3aGljaCBtYXRjaGVzIGEgcGFydGljdWxhcgorICogdHlwZS92YWx1ZSBwYWlyLiAgSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBkZXZpY2UgdGhhdCBtYXRjaGVzIHRoZQorICogc2VhcmNoIHNwZWNpZmljYXRpb24sIGl0IHJldHVybnMgdGhlIG9uZSB3aXRoIHRoZSBoaWdoZXN0IHByaW9yaXR5CisgKiB2YWx1ZS4gIFRoaXMgYWxsb3dzIHVzIHRvIGdpdmUgcHJlZmVyZW5jZSB0byBFVk1TIG9yIExWTSBkZXZpY2VzLgorICovCitleHRlcm4gYmxraWRfZGV2IGJsa2lkX2ZpbmRfZGV2X3dpdGhfdGFnKGJsa2lkX2NhY2hlIGNhY2hlLAorCQkJCQkgY29uc3QgY2hhciAqdHlwZSwKKwkJCQkJIGNvbnN0IGNoYXIgKnZhbHVlKQoreworCWJsa2lkX3RhZwloZWFkOworCWJsa2lkX2RldglkZXY7CisJaW50CQlwcmk7CisJc3RydWN0IGxpc3RfaGVhZCAqcDsKKwlpbnQJCXByb2JlX25ldyA9IDA7CisKKwlpZiAoIWNhY2hlIHx8ICF0eXBlIHx8ICF2YWx1ZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlibGtpZF9yZWFkX2NhY2hlKGNhY2hlKTsKKworCURCRyhERUJVR19UQUcsIHByaW50ZigibG9va2luZyBmb3IgJXM9JXMgaW4gY2FjaGVcbiIsIHR5cGUsIHZhbHVlKSk7CisKK3RyeV9hZ2FpbjoKKwlwcmkgPSAtMTsKKwlkZXYgPSAwOworCWhlYWQgPSBibGtpZF9maW5kX2hlYWRfY2FjaGUoY2FjaGUsIHR5cGUpOworCisJaWYgKGhlYWQpIHsKKwkJbGlzdF9mb3JfZWFjaChwLCAmaGVhZC0+Yml0X25hbWVzKSB7CisJCQlibGtpZF90YWcgdG1wID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgYmxraWRfc3RydWN0X3RhZywKKwkJCQkJCSAgIGJpdF9uYW1lcyk7CisKKwkJCWlmICghc3RyY21wKHRtcC0+Yml0X3ZhbCwgdmFsdWUpICYmCisJCQkgICAgKHRtcC0+Yml0X2Rldi0+YmlkX3ByaSA+IHByaSkgJiYKKwkJCSAgICAhYWNjZXNzKHRtcC0+Yml0X2Rldi0+YmlkX25hbWUsIEZfT0spKSB7CisJCQkJZGV2ID0gdG1wLT5iaXRfZGV2OworCQkJCXByaSA9IGRldi0+YmlkX3ByaTsKKwkJCX0KKwkJfQorCX0KKwlpZiAoZGV2ICYmICEoZGV2LT5iaWRfZmxhZ3MgJiBCTEtJRF9CSURfRkxfVkVSSUZJRUQpKSB7CisJCWRldiA9IGJsa2lkX3ZlcmlmeShjYWNoZSwgZGV2KTsKKwkJaWYgKCFkZXYgfHwgKGRldiAmJiAoZGV2LT5iaWRfZmxhZ3MgJiBCTEtJRF9CSURfRkxfVkVSSUZJRUQpKSkKKwkJCWdvdG8gdHJ5X2FnYWluOworCX0KKworCWlmICghZGV2ICYmICFwcm9iZV9uZXcpIHsKKwkJaWYgKGJsa2lkX3Byb2JlX2FsbF9uZXcoY2FjaGUpIDwgMCkKKwkJCXJldHVybiBOVUxMOworCQlwcm9iZV9uZXcrKzsKKwkJZ290byB0cnlfYWdhaW47CisJfQorCisJaWYgKCFkZXYgJiYgIShjYWNoZS0+YmljX2ZsYWdzICYgQkxLSURfQklDX0ZMX1BST0JFRCkpIHsKKwkJaWYgKGJsa2lkX3Byb2JlX2FsbChjYWNoZSkgPCAwKQorCQkJcmV0dXJuIE5VTEw7CisJCWdvdG8gdHJ5X2FnYWluOworCX0KKwlyZXR1cm4gZGV2OworfQorCisjaWZkZWYgVEVTVF9QUk9HUkFNCisjaWZkZWYgSEFWRV9HRVRPUFRfSAorI2luY2x1ZGUgPGdldG9wdC5oPgorI2Vsc2UKK2V4dGVybiBjaGFyICpvcHRhcmc7CitleHRlcm4gaW50IG9wdGluZDsKKyNlbmRpZgorCit2b2lkIHVzYWdlKGNoYXIgKnByb2cpCit7CisJZnByaW50ZihzdGRlcnIsICJVc2FnZTogJXMgWy1mIGJsa2lkX2ZpbGVdIFstbSBkZWJ1Z19tYXNrXSBkZXZpY2UgIgorCQkiW3R5cGUgdmFsdWVdXG4iLAorCQlwcm9nKTsKKwlmcHJpbnRmKHN0ZGVyciwgIlx0TGlzdCBhbGwgdGFncyBmb3IgYSBkZXZpY2UgYW5kIGV4aXRcbiIpOworCWV4aXQoMSk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlibGtpZF90YWdfaXRlcmF0ZQlpdGVyOworCWJsa2lkX2NhY2hlIAkJY2FjaGUgPSBOVUxMOworCWJsa2lkX2RldgkJZGV2OworCWludAkJCWMsIHJldCwgZm91bmQ7CisJaW50CQkJZmxhZ3MgPSBCTEtJRF9ERVZfRklORDsKKwljaGFyCQkJKnRtcDsKKwljaGFyCQkJKmZpbGUgPSBOVUxMOworCWNoYXIJCQkqZGV2bmFtZSA9IE5VTEw7CisJY2hhcgkJCSpzZWFyY2hfdHlwZSA9IE5VTEw7CisJY2hhcgkJCSpzZWFyY2hfdmFsdWUgPSBOVUxMOworCWNvbnN0IGNoYXIJCSp0eXBlLCAqdmFsdWU7CisKKwl3aGlsZSAoKGMgPSBnZXRvcHQgKGFyZ2MsIGFyZ3YsICJtOmY6IikpICE9IEVPRikKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ2YnOgorCQkJZmlsZSA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQljYXNlICdtJzoKKwkJeworCQkJaW50IG1hc2sgPSBzdHJ0b3VsIChvcHRhcmcsICZ0bXAsIDApOworCQkJaWYgKCp0bXApIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgZGVidWcgbWFzazogJXNcbiIsCisJCQkJCW9wdGFyZyk7CisJCQkJZXhpdCgxKTsKKwkJCX0KKwkJCWJsa2lkX2luaXRfZGVidWcobWFzayk7CisJCQlicmVhazsKKwkJfQorCQljYXNlICc/JzoKKwkJCXVzYWdlKGFyZ3ZbMF0pOworCQl9CisJaWYgKGFyZ2MgPiBvcHRpbmQpCisJCWRldm5hbWUgPSBhcmd2W29wdGluZCsrXTsKKwlpZiAoYXJnYyA+IG9wdGluZCkKKwkJc2VhcmNoX3R5cGUgPSBhcmd2W29wdGluZCsrXTsKKwlpZiAoYXJnYyA+IG9wdGluZCkKKwkJc2VhcmNoX3ZhbHVlID0gYXJndltvcHRpbmQrK107CisJaWYgKCFkZXZuYW1lIHx8IChhcmdjICE9IG9wdGluZCkpCisJCXVzYWdlKGFyZ3ZbMF0pOworCisJaWYgKChyZXQgPSBibGtpZF9nZXRfY2FjaGUoJmNhY2hlLCBmaWxlKSkgIT0gMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBlcnJvciBjcmVhdGluZyBjYWNoZSAoJWQpXG4iLAorCQkJYXJndlswXSwgcmV0KTsKKwkJZXhpdCgxKTsKKwl9CisKKwlkZXYgPSBibGtpZF9nZXRfZGV2KGNhY2hlLCBkZXZuYW1lLCBmbGFncyk7CisJaWYgKCFkZXYpIHsKKwkJZnByaW50ZihzdGRlcnIsICIlczogQ2FuIG5vdCBmaW5kIGRldmljZSBpbiBibGtpZCBjYWNoZVxuIiwKKwkJCWRldm5hbWUpOworCQlleGl0KDEpOworCX0KKwlpZiAoc2VhcmNoX3R5cGUpIHsKKwkJZm91bmQgPSBibGtpZF9kZXZfaGFzX3RhZyhkZXYsIHNlYXJjaF90eXBlLCBzZWFyY2hfdmFsdWUpOworCQlwcmludGYoIkRldmljZSAlczogKCVzLCAlcykgJXNcbiIsIGJsa2lkX2Rldl9kZXZuYW1lKGRldiksCisJCSAgICAgICBzZWFyY2hfdHlwZSwgc2VhcmNoX3ZhbHVlID8gc2VhcmNoX3ZhbHVlIDogIk5VTEwiLAorCQkgICAgICAgZm91bmQgPyAiRk9VTkQiIDogIk5PVCBGT1VORCIpOworCQlyZXR1cm4oIWZvdW5kKTsKKwl9CisJcHJpbnRmKCJEZXZpY2UgJXMuLi5cbiIsIGJsa2lkX2Rldl9kZXZuYW1lKGRldikpOworCisJaXRlciA9IGJsa2lkX3RhZ19pdGVyYXRlX2JlZ2luKGRldik7CisJd2hpbGUgKGJsa2lkX3RhZ19uZXh0KGl0ZXIsICZ0eXBlLCAmdmFsdWUpID09IDApIHsKKwkJcHJpbnRmKCJcdFRhZyAlcyBoYXMgdmFsdWUgJXNcbiIsIHR5cGUsIHZhbHVlKTsKKwl9CisJYmxraWRfdGFnX2l0ZXJhdGVfZW5kKGl0ZXIpOworCisJYmxraWRfcHV0X2NhY2hlKGNhY2hlKTsKKwlyZXR1cm4gKDApOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3RvcG9sb2d5L01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWMzNDhiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDE0IEBACitpbmNsdWRlICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KKworQU1fQ1BQRkxBR1MgKz0gLUkkKHVsX2xpYmJsa2lkX2luY2RpcikgLUkkKHVsX2xpYmJsa2lkX3NyY2RpcikKK2xpYmJsa2lkX3RvcG9sb2d5X2xhX0xJQkFERCA9CisKK25vaW5zdF9MVExJQlJBUklFUyA9IGxpYmJsa2lkX3RvcG9sb2d5LmxhCitsaWJibGtpZF90b3BvbG9neV9sYV9TT1VSQ0VTID0JdG9wb2xvZ3kuYyBcCisJCQkJdG9wb2xvZ3kuaCBcCisJCQkJaW9jdGwuYyBcCisJCQkJc3lzZnMuYyBcCisJCQkJbWQuYyBcCisJCQkJZG0uYyBcCisJCQkJZXZtcy5jIFwKKwkJCQlsdm0uYwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjcxMGJlYgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw1NzcgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKKworVlBBVEggPSBAc3JjZGlyQAorcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACitwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorRElTVF9DT01NT04gPSAkKGRpc3Rfbm9pbnN0X0RBVEEpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK3N1YmRpciA9IHNobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kKK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL200L2dldHRleHQubTQgXAorCSQodG9wX3NyY2RpcikvbTQvZ3RrLWRvYy5tNCAkKHRvcF9zcmNkaXIpL200L2ljb252Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1sZC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYi1saW5rLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2xpYi1wcmVmaXgubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbmxzLm00ICQodG9wX3NyY2RpcikvbTQvcG8ubTQgXAorCSQodG9wX3NyY2RpcikvbTQvcHJvZ3Rlc3QubTQgJCh0b3Bfc3JjZGlyKS9tNC90bHMubTQgXAorCSQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oCitDT05GSUdfQ0xFQU5fRklMRVMgPQorQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK0xUTElCUkFSSUVTID0gJChub2luc3RfTFRMSUJSQVJJRVMpCitsaWJibGtpZF90b3BvbG9neV9sYV9ERVBFTkRFTkNJRVMgPQorYW1fbGliYmxraWRfdG9wb2xvZ3lfbGFfT0JKRUNUUyA9IHRvcG9sb2d5LmxvIGlvY3RsLmxvIHN5c2ZzLmxvIG1kLmxvIFwKKwlkbS5sbyBldm1zLmxvIGx2bS5sbworbGliYmxraWRfdG9wb2xvZ3lfbGFfT0JKRUNUUyA9ICQoYW1fbGliYmxraWRfdG9wb2xvZ3lfbGFfT0JKRUNUUykKK0FNX1ZfbHQgPSAkKGFtX192X2x0XyQoVikpCithbV9fdl9sdF8gPSAkKGFtX192X2x0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfbHRfMCA9IC0tc2lsZW50CitERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKQorZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCithbV9fbXYgPSBtdiAtZgorQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorTFRDT01QSUxFID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgXAorCSQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgXAorCSQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0FNX1ZfQ0MgPSAkKGFtX192X0NDXyQoVikpCithbV9fdl9DQ18gPSAkKGFtX192X0NDXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NfMCA9IEBlY2hvICIgIENDICAgICIgJEA7CitBTV9WX2F0ID0gJChhbV9fdl9hdF8kKFYpKQorYW1fX3ZfYXRfID0gJChhbV9fdl9hdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2F0XzAgPSBACitDQ0xEID0gJChDQykKK0xJTksgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKEFNX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK0FNX1ZfQ0NMRCA9ICQoYW1fX3ZfQ0NMRF8kKFYpKQorYW1fX3ZfQ0NMRF8gPSAkKGFtX192X0NDTERfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ0xEXzAgPSBAZWNobyAiICBDQ0xEICAiICRAOworQU1fVl9HRU4gPSAkKGFtX192X0dFTl8kKFYpKQorYW1fX3ZfR0VOXyA9ICQoYW1fX3ZfR0VOXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfR0VOXzAgPSBAZWNobyAiICBHRU4gICAiICRAOworU09VUkNFUyA9ICQobGliYmxraWRfdG9wb2xvZ3lfbGFfU09VUkNFUykKK0RJU1RfU09VUkNFUyA9ICQobGliYmxraWRfdG9wb2xvZ3lfbGFfU09VUkNFUykKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCBcCisJLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIiBcCisJLUkkKHVsX2xpYmJsa2lkX2luY2RpcikgLUkkKHVsX2xpYmJsa2lkX3NyY2RpcikKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitsaWJibGtpZF90b3BvbG9neV9sYV9MSUJBREQgPSAKK25vaW5zdF9MVExJQlJBUklFUyA9IGxpYmJsa2lkX3RvcG9sb2d5LmxhCitsaWJibGtpZF90b3BvbG9neV9sYV9TT1VSQ0VTID0gdG9wb2xvZ3kuYyBcCisJCQkJdG9wb2xvZ3kuaCBcCisJCQkJaW9jdGwuYyBcCisJCQkJc3lzZnMuYyBcCisJCQkJbWQuYyBcCisJCQkJZG0uYyBcCisJCQkJZXZtcy5jIFwKKwkJCQlsdm0uYworCithbGw6IGFsbC1hbQorCisuU1VGRklYRVM6CisuU1VGRklYRVM6IC5jIC5sbyAubyAub2JqCiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisKK2NsZWFuLW5vaW5zdExUTElCUkFSSUVTOgorCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobm9pbnN0X0xUTElCUkFSSUVTKQorCUBsaXN0PSckKG5vaW5zdF9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwKKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRpb25zIjsgXAorCWRvbmUKK2xpYmJsa2lkX3RvcG9sb2d5LmxhOiAkKGxpYmJsa2lkX3RvcG9sb2d5X2xhX09CSkVDVFMpICQobGliYmxraWRfdG9wb2xvZ3lfbGFfREVQRU5ERU5DSUVTKSAKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICAkKGxpYmJsa2lkX3RvcG9sb2d5X2xhX09CSkVDVFMpICQobGliYmxraWRfdG9wb2xvZ3lfbGFfTElCQUREKSAkKExJQlMpCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9kbS5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2V2bXMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9pb2N0bC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2x2bS5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21kLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc3lzZnMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90b3BvbG9neS5QbG9AYW1fX3F1b3RlQAorCisuYy5vOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyAkPAorCisuYy5vYmo6CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgYCQoQ1lHUEFUSF9XKSAnJDwnYAorCisuYy5sbzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKExUQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKExUQ09NUElMRSkgLWMgLW8gJEAgJDwKKworbW9zdGx5Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgKi5sbworCitjbGVhbi1saWJ0b29sOgorCS1ybSAtcmYgLmxpYnMgX2xpYnMKKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChEQVRBKQoraW5zdGFsbGRpcnM6CitpbnN0YWxsOiBpbnN0YWxsLWFtCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVMgXAorCW1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktYW0KKworZHZpLWFtOgorCitodG1sOiBodG1sLWFtCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tYW0KKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbToKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1hbQorCitwZGYtYW06CisKK3BzOiBwcy1hbQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOgorCisuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisKKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGN0YWdzIGRpc3RjbGVhbiBcCisJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAorCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworJCh1bF9saWJ1dWlkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGlidXVpZF9idWlsZGRpcikKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9kbS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9kbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1YzA4NDIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3RvcG9sb2d5L2RtLmMKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBkZXZpY2UtbWFwcGVyIChkbSkgdG9wb2xvZ3kKKyAqIC0tIHRoaXMgaXMgZmFsbGJhY2sgZm9yIG9sZCBzeXN0ZW1zIHdoZXJlIHRoZSB0b3Bsb2d5IGluZm9ybWF0aW9uIGFyZSBub3QKKyAqICAgIGV4cG9ydGVkIGJ5IHN5c2ZzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKgorICovCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgInRvcG9sb2d5LmgiCisKK3N0YXRpYyBpbnQgaXNfZG1fZGV2aWNlKGRldl90IGRldm5vKQoreworCXJldHVybiBibGtpZF9kcml2ZXJfaGFzX21ham9yKCJkZXZpY2UtbWFwcGVyIiwgbWFqb3IoZGV2bm8pKTsKK30KKworc3RhdGljIGludCBwcm9iZV9kbV90cChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJY29uc3QgY2hhciAqcGF0aHNbXSA9IHsKKwkJIi91c3IvbG9jYWwvc2Jpbi9kbXNldHVwIiwKKwkJIi91c3Ivc2Jpbi9kbXNldHVwIiwKKwkJIi9zYmluL2Rtc2V0dXAiCisJfTsKKwlpbnQgaSwgZG1waXBlW10gPSB7IC0xLCAtMSB9LCBzdHJpcGVzLCBzdHJpcGVzaXplOworCWNoYXIgKmNtZCA9IE5VTEw7CisJRklMRSAqc3RyZWFtID0gTlVMTDsKKwlsb25nIGxvbmcgIG9mZnNldCwgc2l6ZTsKKwlkZXZfdCBkZXZubyA9IGJsa2lkX3Byb2JlX2dldF9kZXZubyhwcik7CisKKwlpZiAoIWRldm5vKQorCQlnb3RvIG5vdGhpbmc7CQkvKiBwcm9iYWJseSBub3QgYSBibG9jayBkZXZpY2UgKi8KKwlpZiAoIWlzX2RtX2RldmljZShkZXZubykpCisJCWdvdG8gbm90aGluZzsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBhdGhzKTsgaSsrKSB7CisJCXN0cnVjdCBzdGF0IHNiOworCQlpZiAoc3RhdChwYXRoc1tpXSwgJnNiKSA9PSAwKSB7CisJCQljbWQgPSAoY2hhciAqKSBwYXRoc1tpXTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKCFjbWQpCisJCWdvdG8gbm90aGluZzsKKwlpZiAocGlwZShkbXBpcGUpIDwgMCkgeworCQlEQkcoREVCVUdfTE9XUFJPQkUsCisJCQlwcmludGYoIkZhaWxlZCB0byBvcGVuIHBpcGU6IGVycm5vPSVkIiwgZXJybm8pKTsKKwkJZ290byBub3RoaW5nOworCX0KKworCXN3aXRjaCAoZm9yaygpKSB7CisJY2FzZSAwOgorCXsKKwkJY2hhciAqZG1hcmd2WzddLCBtYWpbMTZdLCBtaW5bMTZdOworCisJCS8qIFBsdW1iaW5nICovCisJCWNsb3NlKGRtcGlwZVswXSk7CisKKwkJaWYgKGRtcGlwZVsxXSAhPSBTVERPVVRfRklMRU5PKQorCQkJZHVwMihkbXBpcGVbMV0sIFNURE9VVF9GSUxFTk8pOworCisJCS8qIFRoZSBsaWJibGtpZCBsaWJyYXJ5IGNvdWxkIGxpbmtlZCB3aXRoIHNldHVpZCBwcm9ncmFtcyAqLworCQlpZiAoc2V0Z2lkKGdldGdpZCgpKSA8IDApCisJCQkgZXhpdCgxKTsKKwkJaWYgKHNldHVpZChnZXR1aWQoKSkgPCAwKQorCQkJIGV4aXQoMSk7CisKKwkJc25wcmludGYobWFqLCBzaXplb2YobWFqKSwgIiVkIiwgbWFqb3IoZGV2bm8pKTsKKwkJc25wcmludGYobWluLCBzaXplb2YobWluKSwgIiVkIiwgbWlub3IoZGV2bm8pKTsKKworCQlkbWFyZ3ZbMF0gPSBjbWQ7CisJCWRtYXJndlsxXSA9ICJ0YWJsZSI7CisJCWRtYXJndlsyXSA9ICItaiI7CisJCWRtYXJndlszXSA9IG1hajsKKwkJZG1hcmd2WzRdID0gIi1tIjsKKwkJZG1hcmd2WzVdID0gbWluOworCQlkbWFyZ3ZbNl0gPSBOVUxMOworCisJCWV4ZWN2KGRtYXJndlswXSwgZG1hcmd2KTsKKworCQlEQkcoREVCVUdfTE9XUFJPQkUsCisJCQlwcmludGYoIkZhaWxlZCB0byBleGVjdXRlICVzOiBlcnJubz0lZCIsIGNtZCwgZXJybm8pKTsKKwkJZXhpdCgxKTsKKwl9CisJY2FzZSAtMToKKwkJREJHKERFQlVHX0xPV1BST0JFLAorCQkJcHJpbnRmKCJGYWlsZWQgdG8gZm9ya2luZzogZXJybm89JWQiLCBlcnJubykpOworCQlnb3RvIG5vdGhpbmc7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJc3RyZWFtID0gZmRvcGVuKGRtcGlwZVswXSwgInIiKTsKKwlpZiAoIXN0cmVhbSkKKwkJZ290byBub3RoaW5nOworCisJaSA9IGZzY2FuZihzdHJlYW0sICIlbGxkICVsbGQgc3RyaXBlZCAlZCAlZCAiLAorCQkJJm9mZnNldCwgJnNpemUsICZzdHJpcGVzLCAmc3RyaXBlc2l6ZSk7CisJaWYgKGkgIT0gNCkKKwkJZ290byBub3RoaW5nOworCisJYmxraWRfdG9wb2xvZ3lfc2V0X21pbmltdW1faW9fc2l6ZShwciwgc3RyaXBlc2l6ZSA8PCA5KTsKKwlibGtpZF90b3BvbG9neV9zZXRfb3B0aW1hbF9pb19zaXplKHByLCAoc3RyaXBlcyAqIHN0cmlwZXNpemUpIDw8IDkpOworCisJZmNsb3NlKHN0cmVhbSk7CisJY2xvc2UoZG1waXBlWzFdKTsKKwlyZXR1cm4gMDsKKworbm90aGluZzoKKwlpZiAoc3RyZWFtKQorCQlmY2xvc2Uoc3RyZWFtKTsKKwllbHNlIGlmIChkbXBpcGVbMF0gIT0gLTEpCisJCWNsb3NlKGRtcGlwZVswXSk7CisJaWYgKGRtcGlwZVsxXSAhPSAtMSkKKwkJY2xvc2UoZG1waXBlWzFdKTsKKwlyZXR1cm4gMTsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBkbV90cF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJkbSIsCisJLnByb2JlZnVuYwk9IHByb2JlX2RtX3RwLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9ldm1zLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3RvcG9sb2d5L2V2bXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTc5NjkxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9ldm1zLmMKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIEV2bXMgdG9wb2xvZ3kKKyAqIC0tIHRoaXMgaXMgZmFsbGJhY2sgZm9yIG9sZCBzeXN0ZW1zIHdoZXJlIHRoZSB0b3Bsb2d5IGluZm9ybWF0aW9uIGFyZSBub3QKKyAqICAgIGV4cG9ydGUgZHkgc3lzZnMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqCisgKi8KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAidG9wb2xvZ3kuaCIKKworI2RlZmluZSBFVk1TX01BSk9SCQkxMTcKKyNkZWZpbmUgRVZNU19HRVRfU1RSSVBFX0lORk8JX0lPUihFVk1TX01BSk9SLCAweEYwLCBzdHJ1Y3QgZXZtc19zdHJpcGVfaW5mbykKKworc3RydWN0IGV2bXNfc3RyaXBlX2luZm8geworCXVfaW50MzJfdAlzaXplOwkJLyogc3RyaXBlIHVuaXQgNTEyLWJ5dGUgYmxvY2tzICovCisJdV9pbnQzMl90CXdpZHRoOwkJLyogdGhlIG51bWJlciBvZiBzdHJpcGUgbWVtYmVycyBvciBSQUlEIGRhdGEgZGlza3MgKi8KK30gZXZtc19zdHJpcGVfaW5mbzsKKworc3RhdGljIGludCBpc19ldm1zX2RldmljZShkZXZfdCBkZXZubykKK3sKKwlpZiAobWFqb3IoZGV2bm8pID09IEVWTVNfTUFKT1IpCisJCXJldHVybiAxOworCXJldHVybiBibGtpZF9kcml2ZXJfaGFzX21ham9yKCJldm1zIiwgbWFqb3IoZGV2bm8pKTsKK30KKworc3RhdGljIGludCBwcm9iZV9ldm1zX3RwKGJsa2lkX3Byb2JlIHByLCBjb25zdCBzdHJ1Y3QgYmxraWRfaWRtYWcgKm1hZykKK3sKKwlzdHJ1Y3QgZXZtc19zdHJpcGVfaW5mbyBldm1zOworCWRldl90IGRldm5vID0gYmxraWRfcHJvYmVfZ2V0X2Rldm5vKHByKTsKKworCWlmICghZGV2bm8pCisJCWdvdG8gbm90aGluZzsJCS8qIHByb2JhYmx5IG5vdCBhIGJsb2NrIGRldmljZSAqLworCisJaWYgKCFpc19ldm1zX2RldmljZShkZXZubykpCisJCWdvdG8gbm90aGluZzsKKworCW1lbXNldCgmZXZtcywgMCwgc2l6ZW9mKGV2bXMpKTsKKworCWlmIChpb2N0bChwci0+ZmQsIEVWTVNfR0VUX1NUUklQRV9JTkZPLCAmZXZtcykpCisJCWdvdG8gbm90aGluZzsKKworCWJsa2lkX3RvcG9sb2d5X3NldF9taW5pbXVtX2lvX3NpemUocHIsIGV2bXMuc2l6ZSA8PCA5KTsKKwlibGtpZF90b3BvbG9neV9zZXRfb3B0aW1hbF9pb19zaXplKHByLCAoZXZtcy5zaXplICogZXZtcy53aWR0aCkgPDwgOSk7CisKKwlyZXR1cm4gMDsKKworbm90aGluZzoKKwlyZXR1cm4gMTsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBldm1zX3RwX2lkaW5mbyA9Cit7CisJLm5hbWUJCT0gImV2bXMiLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9ldm1zX3RwLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9pb2N0bC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9pb2N0bC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5NGRhNWIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3RvcG9sb2d5L2lvY3RsLmMKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIGlvY3RsIGJhc2VkIHRvcG9sb2d5IC0tIGdhdGhlcnMgdG9wb2xvZ3kgaW5mb3JtYXRpb24KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2luY2x1ZGUgImJsa2Rldi5oIgkJLyogdG9wLWxldmVsIGxpYi8gKi8KKyNpbmNsdWRlICJ0b3BvbG9neS5oIgorCisvKgorICogaW9jdGwgdG9wb2xvZ3kgdmFsdWVzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgdG9wb2xvZ3lfdmFsIHsKKworCWxvbmcgIGlvYzsKKworCS8qIGZ1bmN0aW9uIHRvIHNldCBwcm9iaW5nIHJlc3V0ICovCisJaW50ICgqc2V0X3Jlc3VsdCkoYmxraWRfcHJvYmUsIHVuc2lnbmVkIGxvbmcpOworCit9IHRvcG9sb2d5X3ZhbHNbXSA9IHsKKwl7IEJMS0FMSUdOT0ZGLCBibGtpZF90b3BvbG9neV9zZXRfYWxpZ25tZW50X29mZnNldCB9LAorCXsgQkxLSU9NSU4sIGJsa2lkX3RvcG9sb2d5X3NldF9taW5pbXVtX2lvX3NpemUgfSwKKwl7IEJMS0lPT1BULCBibGtpZF90b3BvbG9neV9zZXRfb3B0aW1hbF9pb19zaXplIH0sCisJeyBCTEtQQlNaR0VULCBibGtpZF90b3BvbG9neV9zZXRfcGh5c2ljYWxfc2VjdG9yX3NpemUgfQorCS8qIHdlIHJlYWQgQkxLU1NaR0VUIGluIHRvcG9sb2d5LmMgKi8KK307CisKK3N0YXRpYyBpbnQgcHJvYmVfaW9jdGxfdHAoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCWludCBpOworCWludCBjb3VudCA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0b3BvbG9neV92YWxzKTsgaSsrKSB7CisJCXN0cnVjdCB0b3BvbG9neV92YWwgKnZhbCA9ICZ0b3BvbG9neV92YWxzW2ldOworCQl1bnNpZ25lZCBpbnQgZGF0YSA9IDA7CisJCWludCByYzsKKworCQlpZiAodmFsLT5pb2MgPT0gQkxLQUxJR05PRkYpIHsKKwkJCWludCBzZGF0YSA9IDA7CisJCQlpZiAoaW9jdGwocHItPmZkLCB2YWwtPmlvYywgJnNkYXRhKSA9PSAtMSkKKwkJCQlnb3RvIG5vdGhpbmc7CisJCQlkYXRhID0gc2RhdGEgPCAwID8gMCA6IHNkYXRhOworCisJCX0gZWxzZSBpZiAoaW9jdGwocHItPmZkLCB2YWwtPmlvYywgJmRhdGEpID09IC0xKQorCQkJZ290byBub3RoaW5nOworCisJCXJjID0gdmFsLT5zZXRfcmVzdWx0KHByLCAodW5zaWduZWQgbG9uZykgZGF0YSk7CisJCWlmIChyYykKKwkJCWdvdG8gZXJyOworCQljb3VudCsrOworCX0KKworCWlmIChjb3VudCkKKwkJcmV0dXJuIDA7Citub3RoaW5nOgorCXJldHVybiAxOworZXJyOgorCXJldHVybiAtMTsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBpb2N0bF90cF9pZGluZm8gPQoreworCS5uYW1lCQk9ICJpb2N0bCIsCisJLnByb2JlZnVuYwk9IHByb2JlX2lvY3RsX3RwLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9sdm0uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvbHZtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc2MGRjYgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvbHZtLmMKQEAgLTAsMCArMSwxNDggQEAKKy8qCisgKiBsdm0gdG9wb2xvZ3kKKyAqIC0tIHRoaXMgaXMgZmFsbGJhY2sgZm9yIG9sZCBzeXN0ZW1zIHdoZXJlIHRoZSB0b3Bsb2d5IGluZm9ybWF0aW9uIGFyZSBub3QKKyAqICAgIGV4cG9ydGVkIGJ5IHN5c2ZzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKgorICovCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgInRvcG9sb2d5LmgiCisKKyNpZm5kZWYgTFZNX0JMS19NQUpPUgorIyBkZWZpbmUgTFZNX0JMS19NQUpPUiAgICAgNTgKKyNlbmRpZgorCitzdGF0aWMgaW50IGlzX2x2bV9kZXZpY2UoZGV2X3QgZGV2bm8pCit7CisJaWYgKG1ham9yKGRldm5vKSA9PSBMVk1fQkxLX01BSk9SKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gYmxraWRfZHJpdmVyX2hhc19tYWpvcigibHZtIiwgbWFqb3IoZGV2bm8pKTsKK30KKworc3RhdGljIGludCBwcm9iZV9sdm1fdHAoYmxraWRfcHJvYmUgcHIsIGNvbnN0IHN0cnVjdCBibGtpZF9pZG1hZyAqbWFnKQoreworCWNvbnN0IGNoYXIgKnBhdGhzW10gPSB7CisJCSIvdXNyL2xvY2FsL3NiaW4vbHZkaXNwbGF5IiwKKwkJIi91c3Ivc2Jpbi9sdmRpc3BsYXkiLAorCQkiL3NiaW4vbHZkaXNwbGF5IgorCX07CisJaW50IGksIGx2cGlwZVtdID0geyAtMSwgLTEgfSwgc3RyaXBlcyA9IDAsIHN0cmlwZXNpemUgPSAwOworCUZJTEUgKnN0cmVhbSA9IE5VTEw7CisJY2hhciAqY21kID0gTlVMTCwgKmRldm5hbWUgPSBOVUxMLCBidWZbMTAyNF07CisJZGV2X3QgZGV2bm8gPSBibGtpZF9wcm9iZV9nZXRfZGV2bm8ocHIpOworCisJaWYgKCFkZXZubykKKwkJZ290byBub3RoaW5nOwkJLyogcHJvYmFibHkgbm90IGEgYmxvY2sgZGV2aWNlICovCisJaWYgKCFpc19sdm1fZGV2aWNlKGRldm5vKSkKKwkJZ290byBub3RoaW5nOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGF0aHMpOyBpKyspIHsKKwkJc3RydWN0IHN0YXQgc2I7CisJCWlmIChzdGF0KHBhdGhzW2ldLCAmc2IpID09IDApIHsKKwkJCWNtZCA9IChjaGFyICopIHBhdGhzW2ldOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIWNtZCkKKwkJZ290byBub3RoaW5nOworCisJZGV2bmFtZSA9IGJsa2lkX2Rldm5vX3RvX2Rldm5hbWUoZGV2bm8pOworCWlmICghZGV2bmFtZSkKKwkJZ290byBub3RoaW5nOworCisJaWYgKHBpcGUobHZwaXBlKSA8IDApIHsKKwkJREJHKERFQlVHX0xPV1BST0JFLAorCQkJcHJpbnRmKCJGYWlsZWQgdG8gb3BlbiBwaXBlOiBlcnJubz0lZCIsIGVycm5vKSk7CisJCWdvdG8gbm90aGluZzsKKwl9CisKKwlzd2l0Y2ggKGZvcmsoKSkgeworCWNhc2UgMDoKKwl7CisJCWNoYXIgKmx2YXJndlszXTsKKworCQkvKiBQbHVtYmluZyAqLworCQljbG9zZShsdnBpcGVbMF0pOworCisJCWlmIChsdnBpcGVbMV0gIT0gU1RET1VUX0ZJTEVOTykKKwkJCWR1cDIobHZwaXBlWzFdLCBTVERPVVRfRklMRU5PKTsKKworCQkvKiBUaGUgbGliYmxraWQgbGlicmFyeSBjb3VsZCBsaW5rZWQgd2l0aCBzZXR1aWQgcHJvZ3JhbXMgKi8KKwkJaWYgKHNldGdpZChnZXRnaWQoKSkgPCAwKQorCQkJIGV4aXQoMSk7CisJCWlmIChzZXR1aWQoZ2V0dWlkKCkpIDwgMCkKKwkJCSBleGl0KDEpOworCisJCWx2YXJndlswXSA9IGNtZDsKKwkJbHZhcmd2WzFdID0gZGV2bmFtZTsKKwkJbHZhcmd2WzJdID0gTlVMTDsKKworCQlleGVjdihsdmFyZ3ZbMF0sIGx2YXJndik7CisKKwkJREJHKERFQlVHX0xPV1BST0JFLAorCQkJcHJpbnRmKCJGYWlsZWQgdG8gZXhlY3V0ZSAlczogZXJybm89JWQiLCBjbWQsIGVycm5vKSk7CisJCWV4aXQoMSk7CisJfQorCWNhc2UgLTE6CisJCURCRyhERUJVR19MT1dQUk9CRSwKKwkJCXByaW50ZigiRmFpbGVkIHRvIGZvcmtpbmc6IGVycm5vPSVkIiwgZXJybm8pKTsKKwkJZ290byBub3RoaW5nOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworCXN0cmVhbSA9IGZkb3BlbihsdnBpcGVbMF0sICJyIik7CisJaWYgKCFzdHJlYW0pCisJCWdvdG8gbm90aGluZzsKKworCXdoaWxlIChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBzdHJlYW0pICE9IE5VTEwpIHsKKwkJaWYgKCFzdHJuY21wKGJ1ZiwgIlN0cmlwZXMiLCA3KSkKKwkJCXNzY2FuZihidWYsICJTdHJpcGVzICVkIiwgJnN0cmlwZXMpOworCisJCWlmICghc3RybmNtcChidWYsICJTdHJpcGUgc2l6ZSIsIDExKSkKKwkJCXNzY2FuZihidWYsICJTdHJpcGUgc2l6ZSAoS0J5dGUpICVkIiwgJnN0cmlwZXNpemUpOworCX0KKworCWlmICghc3RyaXBlcykKKwkJZ290byBub3RoaW5nOworCisJYmxraWRfdG9wb2xvZ3lfc2V0X21pbmltdW1faW9fc2l6ZShwciwgc3RyaXBlc2l6ZSA8PCAxMCk7CisJYmxraWRfdG9wb2xvZ3lfc2V0X29wdGltYWxfaW9fc2l6ZShwciwgKHN0cmlwZXMgKiBzdHJpcGVzaXplKSA8PCAxMCk7CisKKwlmcmVlKGRldm5hbWUpOworCWZjbG9zZShzdHJlYW0pOworCWNsb3NlKGx2cGlwZVsxXSk7CisJcmV0dXJuIDA7CisKK25vdGhpbmc6CisJZnJlZShkZXZuYW1lKTsKKwlpZiAoc3RyZWFtKQorCQlmY2xvc2Uoc3RyZWFtKTsKKwllbHNlIGlmIChsdnBpcGVbMF0gIT0gLTEpCisJCWNsb3NlKGx2cGlwZVswXSk7CisJaWYgKGx2cGlwZVsxXSAhPSAtMSkKKwkJY2xvc2UobHZwaXBlWzFdKTsKKwlyZXR1cm4gMTsKK30KKworY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyBsdm1fdHBfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAibHZtIiwKKwkucHJvYmVmdW5jCT0gcHJvYmVfbHZtX3RwLAorCS5tYWdpY3MJCT0gQkxLSURfTk9ORV9NQUdJQworfTsKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9tZC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9tZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3MTE2MTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3RvcG9sb2d5L21kLmMKQEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKiBMaW51eCBTb2Z0d2FyZSBSQUlEIChtZCkgdG9wb2xvZ3kKKyAqIC0tIHRoaXMgaXMgZmFsbGJhY2sgZm9yIG9sZCBzeXN0ZW1zIHdoZXJlIHRoZSB0b3Bsb2d5IGluZm9ybWF0aW9uIGFyZSBub3QKKyAqICAgIGV4cG9ydGUgZHkgc3lzZnMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqCisgKi8KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAidG9wb2xvZ3kuaCIKKworI2lmbmRlZiBNRF9NQUpPUgorI2RlZmluZSBNRF9NQUpPUgk5CisjZW5kaWYKKworI2RlZmluZSBHRVRfQVJSQVlfSU5GTyAgICAgICAgICBfSU9SIChNRF9NQUpPUiwgMHgxMSwgc3RydWN0IG1kX2FycmF5X2luZm8pCisKK3N0cnVjdCBtZF9hcnJheV9pbmZvIHsKKwkvKgorCSAqIEdlbmVyaWMgY29uc3RhbnQgaW5mb3JtYXRpb24KKwkgKi8KKwl1aW50MzJfdCBtYWpvcl92ZXJzaW9uOworCXVpbnQzMl90IG1pbm9yX3ZlcnNpb247CisJdWludDMyX3QgcGF0Y2hfdmVyc2lvbjsKKwl1aW50MzJfdCBjdGltZTsKKwl1aW50MzJfdCBsZXZlbDsKKwl1aW50MzJfdCBzaXplOworCXVpbnQzMl90IG5yX2Rpc2tzOworCXVpbnQzMl90IHJhaWRfZGlza3M7CisJdWludDMyX3QgbWRfbWlub3I7CisJdWludDMyX3Qgbm90X3BlcnNpc3RlbnQ7CisKKwkvKgorCSAqIEdlbmVyaWMgc3RhdGUgaW5mb3JtYXRpb24KKwkgKi8KKwl1aW50MzJfdCB1dGltZTsJICAvKiAgMCBTdXBlcmJsb2NrIHVwZGF0ZSB0aW1lCQkgICovCisJdWludDMyX3Qgc3RhdGU7CSAgLyogIDEgU3RhdGUgYml0cyAoY2xlYW4sIC4uLikJCSAgKi8KKwl1aW50MzJfdCBhY3RpdmVfZGlza3M7ICAvKiAgMiBOdW1iZXIgb2YgY3VycmVudGx5IGFjdGl2ZSBkaXNrcyAgKi8KKwl1aW50MzJfdCB3b3JraW5nX2Rpc2tzOyAvKiAgMyBOdW1iZXIgb2Ygd29ya2luZyBkaXNrcwkJICAqLworCXVpbnQzMl90IGZhaWxlZF9kaXNrczsgIC8qICA0IE51bWJlciBvZiBmYWlsZWQgZGlza3MJCSAgKi8KKwl1aW50MzJfdCBzcGFyZV9kaXNrczsJICAvKiAgNSBOdW1iZXIgb2Ygc3BhcmUgZGlza3MJCSAgKi8KKworCS8qCisJICogUGVyc29uYWxpdHkgaW5mb3JtYXRpb24KKwkgKi8KKwl1aW50MzJfdCBsYXlvdXQ7CSAgLyogIDAgdGhlIGFycmF5J3MgcGh5c2ljYWwgbGF5b3V0CSAgKi8KKwl1aW50MzJfdCBjaHVua19zaXplOwkgIC8qICAxIGNodW5rIHNpemUgaW4gYnl0ZXMJCSAgKi8KKworfTsKKworc3RhdGljIGludCBpc19tZF9kZXZpY2UoZGV2X3QgZGV2bm8pCit7CisJaWYgKG1ham9yKGRldm5vKSA9PSBNRF9NQUpPUikKKwkJcmV0dXJuIDE7CisJcmV0dXJuIGJsa2lkX2RyaXZlcl9oYXNfbWFqb3IoIm1kIiwgbWFqb3IoZGV2bm8pKTsKK30KKworc3RhdGljIGludCBwcm9iZV9tZF90cChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJaW50IGZkID0gLTE7CisJZGV2X3QgZGlzayA9IDA7CisJZGV2X3QgZGV2bm8gPSBibGtpZF9wcm9iZV9nZXRfZGV2bm8ocHIpOworCXN0cnVjdCBtZF9hcnJheV9pbmZvIG1kOworCisJaWYgKCFkZXZubykKKwkJZ290byBub3RoaW5nOwkJLyogcHJvYmFibHkgbm90IGEgYmxvY2sgZGV2aWNlICovCisKKwlpZiAoIWlzX21kX2RldmljZShkZXZubykpCisJCWdvdG8gbm90aGluZzsKKworCWlmIChibGtpZF9kZXZub190b193aG9sZWRpc2soZGV2bm8sIE5VTEwsIDAsICZkaXNrKSkKKwkJZ290byBub3RoaW5nOworCisJaWYgKGRpc2sgPT0gZGV2bm8pCisJCWZkID0gcHItPmZkOworCWVsc2UgeworCQljaGFyICpkaXNrcGF0aCA9IGJsa2lkX2Rldm5vX3RvX2Rldm5hbWUoZGlzayk7CisKKwkJaWYgKCFkaXNrcGF0aCkKKwkJCWdvdG8gbm90aGluZzsKKworCQlmZCA9IG9wZW4oZGlza3BhdGgsIE9fUkRPTkxZKTsKKwkJZnJlZShkaXNrcGF0aCk7CisKKyAgICAgICAgICAgICAgICBpZiAoZmQgPT0gLTEpCisJCQlnb3RvIG5vdGhpbmc7CisJfQorCisJbWVtc2V0KCZtZCwgMCwgc2l6ZW9mKG1kKSk7CisKKwlpZiAoaW9jdGwoZmQsIEdFVF9BUlJBWV9JTkZPLCAmbWQpKQorCQlnb3RvIG5vdGhpbmc7CisKKwlpZiAoZmQgIT0gcHItPmZkKQorCQljbG9zZShmZCk7CisKKwkvKgorCSAqIElnbm9yZSBsZXZlbHMgd2UgZG9uJ3Qgd2FudCBhbGlnbmVkIChlLmcuIGxpbmVhcikKKwkgKiBhbmQgZGVkdWN0IGRpc2socykgZnJvbSBzdHJpcGUgd2lkdGggb24gUkFJRDQvNS82CisJICovCisJc3dpdGNoIChtZC5sZXZlbCkgeworCWNhc2UgNjoKKwkJbWQucmFpZF9kaXNrcy0tOworCQkvKiBmYWxsdGhyb3VnaCAqLworCWNhc2UgNToKKwljYXNlIDQ6CisJCW1kLnJhaWRfZGlza3MtLTsKKwkJLyogZmFsbHRocm91Z2ggKi8KKwljYXNlIDE6CisJY2FzZSAwOgorCWNhc2UgMTA6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdvdG8gbm90aGluZzsKKwl9CisKKwlibGtpZF90b3BvbG9neV9zZXRfbWluaW11bV9pb19zaXplKHByLCBtZC5jaHVua19zaXplKTsKKwlibGtpZF90b3BvbG9neV9zZXRfb3B0aW1hbF9pb19zaXplKHByLCBtZC5jaHVua19zaXplICogbWQucmFpZF9kaXNrcyk7CisKKwlyZXR1cm4gMDsKKworbm90aGluZzoKKwlpZiAoZmQgIT0gLTEgJiYgZmQgIT0gcHItPmZkKQorCQljbG9zZShmZCk7CisJcmV0dXJuIDE7Cit9CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gbWRfdHBfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAibWQiLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9tZF90cCwKKwkubWFnaWNzCQk9IEJMS0lEX05PTkVfTUFHSUMKK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvc3lzZnMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvc3lzZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGYzNDJiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS9zeXNmcy5jCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogc3lzZnMgYmFzZWQgdG9wb2xvZ3kgLS0gZ2F0aGVycyB0b3BvbG9neSBpbmZvcm1hdGlvbiBmcm9tIExpbnV4IHN5c2ZzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKgorICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIExpbnV4IGtlcm5lbCBEb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJsb2NrLgorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2luY2x1ZGUgInRvcG9sb2d5LmgiCisKK3N0YXRpYyBpbnQgZGV2X3RvcG9sb2d5X2F0dHJpYnV0ZShjb25zdCBjaGFyICphdHRyaWJ1dGUsCisJCQlkZXZfdCBkZXYsIGRldl90ICpwcmltYXJ5LCBpbnQ2NF90ICpyZXN1bHQpCit7CisJY29uc3QgY2hhciAqc3lzZnNfZm10X3N0ciA9ICIvc3lzL2Rldi9ibG9jay8lZDolZC8lcyI7CisJY2hhciBwYXRoW1BBVEhfTUFYXTsKKwlpbnQgbGVuOworCUZJTEUgKmZwID0gTlVMTDsKKwlzdHJ1Y3Qgc3RhdCBpbmZvOworCisJbGVuID0gc25wcmludGYocGF0aCwgc2l6ZW9mKHBhdGgpLCBzeXNmc19mbXRfc3RyLAorCQkJbWFqb3IoZGV2KSwgbWlub3IoZGV2KSwgYXR0cmlidXRlKTsKKwlpZiAobGVuIDwgMCB8fCBsZW4gKyAxID4gc2l6ZW9mKHBhdGgpKQorCQlnb3RvIGVycjsKKworCS8qCisJICogY2hlY2sgaWYgdGhlIGRlc2lyZWQgc3lzZnMgYXR0cmlidXRlIGV4aXN0cworCSAqIC0gaWYgbm90OiBlaXRoZXIgdGhlIGtlcm5lbCBkb2Vzbid0IGhhdmUgdG9wb2xvZ3kgc3VwcG9ydCBvciB0aGUKKwkgKiAgIGRldmljZSBjb3VsZCBiZSBhIHBhcnRpdGlvbgorCSAqLworCWlmIChzdGF0KHBhdGgsICZpbmZvKSA8IDApIHsKKwkJaWYgKCEqcHJpbWFyeSAmJgorCQkgICAgYmxraWRfZGV2bm9fdG9fd2hvbGVkaXNrKGRldiwgTlVMTCwgMCwgcHJpbWFyeSkpCisJCQlnb3RvIGVycjsKKworCQkvKiBnZXQgYXR0cmlidXRlIGZyb20gcGFydGl0aW9uJ3MgcHJpbWFyeSBkZXZpY2UgKi8KKwkJbGVuID0gc25wcmludGYocGF0aCwgc2l6ZW9mKHBhdGgpLCBzeXNmc19mbXRfc3RyLAorCQkJCW1ham9yKCpwcmltYXJ5KSwgbWlub3IoKnByaW1hcnkpLCBhdHRyaWJ1dGUpOworCQlpZiAobGVuIDwgMCB8fCBsZW4gKyAxID4gc2l6ZW9mKHBhdGgpKQorCQkJZ290byBlcnI7CisJfQorCisJZnAgPSBmb3BlbihwYXRoLCAiciIpOworCWlmICghZnApIHsKKwkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoCisJCQkidG9wb2xvZ3k6ICVzOiBmb3BlbiBmYWlsZWQsIGVycm5vPSVkXG4iLCBwYXRoLCBlcnJubykpOworCQlnb3RvIGVycjsKKwl9CisKKwlpZiAoZnNjYW5mKGZwLCAiJSIgU0NOZDY0LCByZXN1bHQpICE9IDEpIHsKKwkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoCisJCQkidG9wb2xvZ3k6ICVzOiB1bmV4cGVjdGVkIGZpbGUgZm9ybWF0XG4iLCBwYXRoKSk7CisJCWdvdG8gZXJyOworCX0KKworCWZjbG9zZShmcCk7CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsCisJCXByaW50ZigidG9wb2xvZ3k6IGF0dHJpYnV0ZSAlcyA9ICUiUFJJZDY0IlxuIiwgYXR0cmlidXRlLCAqcmVzdWx0KSk7CisKKwlyZXR1cm4gMDsKK2VycjoKKwlpZiAoZnApCisJCWZjbG9zZShmcCk7CisJREJHKERFQlVHX0xPV1BST0JFLAorCQlwcmludGYoInRvcG9sb2d5OiBmYWlsZWQgdG8gcmVhZCAlcyBhdHRyaWJ1dGVcbiIsIGF0dHJpYnV0ZSkpOworCXJldHVybiAtMTsKK30KKworLyoKKyAqIFN5c2ZzIHRvcG9sb2d5IHZhbHVlcyAoc2luY2UgMi42LjMxLCBNYXkgMjAwOSkuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgdG9wb2xvZ3lfdmFsIHsKKworCS8qIC9zeXMvZGV2L2Jsb2NrLzxtYWo+OjxtaW4+L05BTUUgKi8KKwljb25zdCBjaGFyICpzeXNmc19uYW1lOworCisJLyogZnVuY3Rpb24gdG8gc2V0IHByb2JpbmcgcmVzdXQgKi8KKwlpbnQgKCpzZXRfcmVzdWx0KShibGtpZF9wcm9iZSwgdW5zaWduZWQgbG9uZyk7CisKK30gdG9wb2xvZ3lfdmFsc1tdID0geworCXsgImFsaWdubWVudF9vZmZzZXQiLCBibGtpZF90b3BvbG9neV9zZXRfYWxpZ25tZW50X29mZnNldCB9LAorCXsgInF1ZXVlL21pbmltdW1faW9fc2l6ZSIsIGJsa2lkX3RvcG9sb2d5X3NldF9taW5pbXVtX2lvX3NpemUgfSwKKwl7ICJxdWV1ZS9vcHRpbWFsX2lvX3NpemUiLCBibGtpZF90b3BvbG9neV9zZXRfb3B0aW1hbF9pb19zaXplIH0sCisJeyAicXVldWUvcGh5c2ljYWxfYmxvY2tfc2l6ZSIsIGJsa2lkX3RvcG9sb2d5X3NldF9waHlzaWNhbF9zZWN0b3Jfc2l6ZSB9LAorfTsKKworc3RhdGljIGludCBwcm9iZV9zeXNmc190cChibGtpZF9wcm9iZSBwciwgY29uc3Qgc3RydWN0IGJsa2lkX2lkbWFnICptYWcpCit7CisJZGV2X3QgZGV2LCBwcmlfZGV2ID0gMDsKKwlpbnQgaSwgcmMgPSAwLCBjb3VudCA9IDA7CisKKwlkZXYgPSBibGtpZF9wcm9iZV9nZXRfZGV2bm8ocHIpOworCWlmICghZGV2KQorCQlnb3RvIG5vdGhpbmc7CQkvKiBwcm9iYWJseSBub3QgYSBibG9jayBkZXZpY2UgKi8KKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHRvcG9sb2d5X3ZhbHMpOyBpKyspIHsKKwkJc3RydWN0IHRvcG9sb2d5X3ZhbCAqdmFsID0gJnRvcG9sb2d5X3ZhbHNbaV07CisJCWludDY0X3QgZGF0YSA9IDA7CisKKwkJaWYgKGRldl90b3BvbG9neV9hdHRyaWJ1dGUodmFsLT5zeXNmc19uYW1lLCBkZXYsCisJCQkJCSZwcmlfZGV2LCAmZGF0YSkpCisJCQljb250aW51ZTsKKworCQlpZiAoIXN0cmNtcCh2YWwtPnN5c2ZzX25hbWUsICJhbGlnbm1lbnRfb2Zmc2V0IikgJiYgZGF0YSA8IDApCisJCQlkYXRhID0gMDsKKworCQlyYyA9IHZhbC0+c2V0X3Jlc3VsdChwciwgKHVuc2lnbmVkIGxvbmcpIGRhdGEpOworCQlpZiAocmMpCisJCQlnb3RvIGVycjsKKwkJY291bnQrKzsKKwl9CisKKwlpZiAoY291bnQpCisJCXJldHVybiAwOworbm90aGluZzoKKwlyZXR1cm4gMTsKK2VycjoKKwlyZXR1cm4gLTE7Cit9CisKK2NvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gc3lzZnNfdHBfaWRpbmZvID0KK3sKKwkubmFtZQkJPSAic3lzZnMiLAorCS5wcm9iZWZ1bmMJPSBwcm9iZV9zeXNmc190cCwKKwkubWFnaWNzCQk9IEJMS0lEX05PTkVfTUFHSUMKK307CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvdG9wb2xvZ3kuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvdG9wb2xvZ3kuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjgxMmFjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS90b3BvbG9neS5jCkBAIC0wLDAgKzEsMzUzIEBACisvKgorICogdG9wb2xvZ3kgLSBnYXRoZXJzIGluZm9ybWF0aW9uIGFib3V0IGRldmljZSB0b3BvbG9neQorICoKKyAqIENvcHlyaWdodCAyMDA5IFJlZCBIYXQsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRkZWYuaD4KKworI2luY2x1ZGUgInRvcG9sb2d5LmgiCisKKy8qKgorICogU0VDVElPTjp0b3BvbG9neQorICogQHRpdGxlOiBUb3BvbG9neSBpbmZvcm1hdGlvbgorICogQHNob3J0X2Rlc2NyaXB0aW9uOiBibG9jayBkZXZpY2UgdG9sb2xvZ3kgaW5mb3JtYXRpb24uCisgKgorICogVGhlIHRvbG9sb2d5IGNoYWluIHByb3ZpZGVzIGRldGFpbHMgYWJvdXQgTGludXggYmxvY2sgZGV2aWNlcywgZm9yIG1vcmUKKyAqIGluZm9ybWF0aW9uIHNlZToKKyAqCisgKiAgICAgIExpbnV4IGtlcm5lbCBEb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJsb2NrCisgKgorICogTkFNRT12YWx1ZSAodGFncykgaW50ZXJmYWNlIGlzIGVuYWJsZWQgYnkgYmxraWRfcHJvYmVfZW5hYmxlX3RvcG9sb2d5KCksCisgKiBhbmQgcHJvdmlkZXM6CisgKgorICogQExPR0lDQUxfU0VDVE9SX1NJWkU6IHRoaXMgaXMgdGhlIHNtYWxsZXN0IHVuaXQgdGhlIHN0b3JhZ2UgZGV2aWNlIGNhbgorICogICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MuIEl0IGlzIHR5cGljYWxseSA1MTIgYnl0ZXMuCisgKgorICogQFBIWVNJQ0FMX1NFQ1RPUl9TSVpFOiB0aGlzIGlzIHRoZSBzbWFsbGVzdCB1bml0IGEgcGh5c2ljYWwgc3RvcmFnZSBkZXZpY2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgY2FuIHdyaXRlIGF0b21pY2FsbHkuIEl0IGlzIHVzdWFsbHkgdGhlIHNhbWUgYXMgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWwgc2VjdG9yIHNpemUgYnV0IG1heSBiZSBiaWdnZXIuCisgKgorICogQE1JTklNVU1fSU9fU0laRTogbWluaW11bSBzaXplIHdoaWNoIGlzIHRoZSBkZXZpY2UncyBwcmVmZXJyZWQgdW5pdCBvZiBJL08uCisgKiAgICAgICAgICAgICAgICAgICBGb3IgUkFJRCBhcnJheXMgaXQgaXMgb2Z0ZW4gdGhlIHN0cmlwZSBjaHVuayBzaXplLgorICoKKyAqIEBPUFRJTUFMX0lPX1NJWkU6IHVzdWFsbHkgdGhlIHN0cmlwZSB3aWR0aCBmb3IgUkFJRCBvciB6ZXJvLiBGb3IgUkFJRCBhcnJheXMKKyAqICAgICAgICAgICAgICAgICAgIGl0IGlzIHVzdWFsbHkgdGhlIHN0cmlwZSB3aWR0aCBvciB0aGUgaW50ZXJuYWwgdHJhY2sgc2l6ZS4KKyAqCisgKiBAQUxJR05NRU5UX09GRlNFVDogaW5kaWNhdGVzIGhvdyBtYW55IGJ5dGVzIHRoZSBiZWdpbm5pbmcgbyB0aGUgZGV2aWNlIGlzCisgKiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IGZyb20gdGhlIGRpc2sncyBuYXR1cmFsIGFsaWdubWVudC4KKyAqCisgKiBUaGUgTkFNRT12YWx1ZSB0YWdzIGFyZSBub3QgZGVmaW5lZCB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIHRvcG9sb2d5IHZhbHVlCisgKiBpcyB6ZXJvLiBUaGUgTUlOSU1VTV9JT19TSVpFIHNob3VsZCBiZSBhbHdheXMgZGVmaW5lZCBpZiBrZXJuZWwgcHJvdmlkZXMKKyAqIHRvcG9sb2d5IGluZm9ybWF0aW9uLgorICoKKyAqIEJpbmFyeSBpbnRlcmZhY2U6CisgKgorICogYmxraWRfcHJvYmVfZ2V0X3RvbG9sb2d5KCkKKyAqCisgKiBibGtpZF90b3BvbG9neV9nZXRfJ1ZBTFVFTkFNRScoKQorICovCitzdGF0aWMgaW50IHRvcG9sb2d5X3Byb2JlKGJsa2lkX3Byb2JlIHByLCBzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobik7CitzdGF0aWMgdm9pZCB0b3BvbG9neV9mcmVlKGJsa2lkX3Byb2JlIHByLCB2b2lkICpkYXRhKTsKK3N0YXRpYyBpbnQgdG9wb2xvZ3lfaXNfY29tcGxldGUoYmxraWRfcHJvYmUgcHIpOworc3RhdGljIGludCB0b3BvbG9neV9zZXRfbG9naWNhbF9zZWN0b3Jfc2l6ZShibGtpZF9wcm9iZSBwcik7CisKKy8qCisgKiBCaW5hcnkgaW50ZXJmYWNlCisgKi8KK3N0cnVjdCBibGtpZF9zdHJ1Y3RfdG9wb2xvZ3kgeworCXVuc2lnbmVkIGxvbmcJYWxpZ25tZW50X29mZnNldDsKKwl1bnNpZ25lZCBsb25nCW1pbmltdW1faW9fc2l6ZTsKKwl1bnNpZ25lZCBsb25nCW9wdGltYWxfaW9fc2l6ZTsKKwl1bnNpZ25lZCBsb25nCWxvZ2ljYWxfc2VjdG9yX3NpemU7CisJdW5zaWduZWQgbG9uZwlwaHlzaWNhbF9zZWN0b3Jfc2l6ZTsKK307CisKKy8qCisgKiBUb3BvbG9neSBjaGFpbiBwcm9iaW5nIGZ1bmN0aW9ucworICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyAqaWRpbmZvc1tdID0KK3sKKwkmaW9jdGxfdHBfaWRpbmZvLAorCSZzeXNmc190cF9pZGluZm8sCisJJm1kX3RwX2lkaW5mbywKKwkmZG1fdHBfaWRpbmZvLAorCSZsdm1fdHBfaWRpbmZvLAorCSZldm1zX3RwX2lkaW5mbworfTsKKworCisvKgorICogRHJpdmVyIGRlZmluaXRpb24KKyAqLworY29uc3Qgc3RydWN0IGJsa2lkX2NoYWluZHJ2IHRvcG9sb2d5X2RydiA9IHsKKwkuaWQgICAgICAgICAgID0gQkxLSURfQ0hBSU5fVE9QTEdZLAorCS5uYW1lICAgICAgICAgPSAidG9wb2xvZ3kiLAorCS5kZmx0X2VuYWJsZWQgPSBGQUxTRSwKKwkuaWRpbmZvcyAgICAgID0gaWRpbmZvcywKKwkubmlkaW5mb3MgICAgID0gQVJSQVlfU0laRShpZGluZm9zKSwKKwkucHJvYmUgICAgICAgID0gdG9wb2xvZ3lfcHJvYmUsCisJLnNhZmVwcm9iZSAgICA9IHRvcG9sb2d5X3Byb2JlLAorCS5mcmVlX2RhdGEgICAgPSB0b3BvbG9neV9mcmVlCit9OworCisvKioKKyAqIGJsa2lkX3Byb2JlX2VuYWJsZV90b3BvbG9neToKKyAqIEBwcjogcHJvYmUKKyAqIEBlbmFibGU6IFRSVUUvRkFMU0UKKyAqCisgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSB0b3BvbG9neSBwcm9iaW5nIGZvciBub24tYmluYXJ5IGludGVyZmFjZS4KKyAqCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludCBibGtpZF9wcm9iZV9lbmFibGVfdG9wb2xvZ3koYmxraWRfcHJvYmUgcHIsIGludCBlbmFibGUpCit7CisJaWYgKCFwcikKKwkJcmV0dXJuIC0xOworCXByLT5jaGFpbnNbQkxLSURfQ0hBSU5fVE9QTEdZXS5lbmFibGVkID0gZW5hYmxlOworCXJldHVybiAwOworfQorCisvKioKKyAqIGJsa2lkX3Byb2JlX2dldF90b3BvbG9neToKKyAqIEBwcjogcHJvYmUKKyAqCisgKiBUaGlzIGlzIGEgYmluYXJ5IGludGVyZmFjZSBmb3IgdG9wb2xvZ3kgdmFsdWVzLiBTZWUgYWxzbyBibGtpZF90b3BvbG9neV8qCisgKiBmdW5jdGlvbnMuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBvbiBibGtpZF9kb19bc2FmZSxmdWxsXXByb2JlKCkgYW5kCisgKiBibGtpZF9wcm9iZV9lbmFibGVfdG9wb2xvZ3koKSBjYWxscy4KKyAqCisgKiBXQVJOSU5HOiB0aGUgcmV0dXJuZWQgb2JqZWN0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQKKyAqICAgICAgICAgIGJsa2lkX3Byb2JlX2dldF90b3BvbG9neSgpIGNhbGwgZm9yIHRoZSBzYW1lIEBwci4gSWYgeW91IHdhbnQgdG8KKyAqICAgICAgICAgIHVzZSBtb3JlIGJsa2lkX3RvbG9wb2d5IG9iamVjdHMgaW4gdGhlIHNhbWUgdGltZSB5b3UgaGF2ZSB0byBjcmVhdGUKKyAqICAgICAgICAgIG1vcmUgYmxraWRfcHJvYmUgaGFuZGxlcnMgKHNlZSBibGtpZF9uZXdfcHJvYmUoKSkuCisgKgorICogVE9ETzogICAgYWRkIGJsa2lkX3JlZigpIGFuZCBibGtpZF91bnJlZigpIHRvIGFsbG93cyB0byB1c2UgYmxraWRfdG9wb2xvZ3kKKyAqICAgICAgICAgIGluZGVwZW5kZW50bHkgb24gbGliYmxraWQgcHJvYmluZyBzdHVmZi4KKyAqCisgKiBSZXR1cm5zOiBibGtpZF90b2xvcG9neSwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitibGtpZF90b3BvbG9neSBibGtpZF9wcm9iZV9nZXRfdG9wb2xvZ3koYmxraWRfcHJvYmUgcHIpCit7CisJcmV0dXJuIChibGtpZF90b3BvbG9neSkgYmxraWRfcHJvYmVfZ2V0X2JpbmFyeV9kYXRhKHByLAorCQkJJnByLT5jaGFpbnNbQkxLSURfQ0hBSU5fVE9QTEdZXSk7Cit9CisKKy8qCisgKiBUaGUgYmxraWRfZG9fcHJvYmUoKSBiYWNrZW5kLgorICovCitzdGF0aWMgaW50IHRvcG9sb2d5X3Byb2JlKGJsa2lkX3Byb2JlIHByLCBzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobikKK3sKKwlpbnQgaSA9IDA7CisKKwlpZiAoIXByIHx8IGNobi0+aWR4IDwgLTEpCisJCXJldHVybiAtMTsKKworCWlmICghU19JU0JMSyhwci0+bW9kZSkpCisJCXJldHVybiAtMTsJLyogbm90aGluZywgd29ya3Mgd2l0aCBibG9jayBkZXZpY2VzIG9ubHkgKi8KKworCWlmIChjaG4tPmJpbmFyeSkgeworCQlEQkcoREVCVUdfTE9XUFJPQkUsIHByaW50ZigiaW5pdGlhbGl6ZSB0b3BvbG9neSBiaW5hcnkgZGF0YVxuIikpOworCisJCWlmIChjaG4tPmRhdGEpCisJCQkvKiByZXNldCBiaW5hcnkgZGF0YSAqLworCQkJbWVtc2V0KGNobi0+ZGF0YSwgMCwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBibGtpZF9zdHJ1Y3RfdG9wb2xvZ3kpKTsKKwkJZWxzZSB7CisJCQljaG4tPmRhdGEgPSBjYWxsb2MoMSwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBibGtpZF9zdHJ1Y3RfdG9wb2xvZ3kpKTsKKwkJCWlmICghY2huLT5kYXRhKQorCQkJCXJldHVybiAtMTsKKwkJfQorCX0KKworCWJsa2lkX3Byb2JlX2NoYWluX3Jlc2V0X3ZhbHMocHIsIGNobik7CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsCisJCXByaW50ZigiLS0+IHN0YXJ0aW5nIHByb2JpbmcgbG9vcCBbVE9QT0xPR1kgaWR4PSVkXVxuIiwKKwkJY2huLT5pZHgpKTsKKworCWkgPSBjaG4tPmlkeCArIDE7CisKKwlmb3IgKCA7IGkgPCBBUlJBWV9TSVpFKGlkaW5mb3MpOyBpKyspIHsKKwkJY29uc3Qgc3RydWN0IGJsa2lkX2lkaW5mbyAqaWQgPSBpZGluZm9zW2ldOworCisJCWNobi0+aWR4ID0gaTsKKworCQlpZiAoaWQtPnByb2JlZnVuYykgeworCQkJREJHKERFQlVHX0xPV1BST0JFLCBwcmludGYoCisJCQkJIiVzOiBjYWxsIHByb2JlZnVuYygpXG4iLCBpZC0+bmFtZSkpOworCQkJaWYgKGlkLT5wcm9iZWZ1bmMocHIsIE5VTEwpICE9IDApCisJCQkJY29udGludWU7CisJCX0KKworCQlpZiAoIXRvcG9sb2d5X2lzX2NvbXBsZXRlKHByKSkKKwkJCWNvbnRpbnVlOworCisJCS8qIGdlbmVyaWMgZm9yIGFsbCBwcm9iaW5nIGRyaXZlcnMgKi8KKwkJdG9wb2xvZ3lfc2V0X2xvZ2ljYWxfc2VjdG9yX3NpemUocHIpOworCisJCURCRyhERUJVR19MT1dQUk9CRSwKKwkJCXByaW50ZigiPC0tIGxlYXZpbmcgcHJvYmluZyBsb29wICh0eXBlPSVzKSBbVE9QT0xPR1kgaWR4PSVkXVxuIiwKKwkJCWlkLT5uYW1lLCBjaG4tPmlkeCkpOworCQlyZXR1cm4gMDsKKwl9CisKKwlEQkcoREVCVUdfTE9XUFJPQkUsCisJCXByaW50ZigiPC0tIGxlYXZpbmcgcHJvYmluZyBsb29wIChmYWlsZWQpIFtUT1BPTE9HWSBpZHg9JWRdXG4iLAorCQljaG4tPmlkeCkpOworCXJldHVybiAxOworfQorCitzdGF0aWMgdm9pZCB0b3BvbG9neV9mcmVlKGJsa2lkX3Byb2JlIHByLCB2b2lkICpkYXRhKQoreworCWZyZWUoZGF0YSk7Cit9CisKK3N0YXRpYyBpbnQgdG9wb2xvZ3lfc2V0X3ZhbHVlKGJsa2lkX3Byb2JlIHByLCBjb25zdCBjaGFyICpuYW1lLAorCQkJCXNpemVfdCBzdHJ1Y3RvZmYsIHVuc2lnbmVkIGxvbmcgZGF0YSkKK3sKKwlzdHJ1Y3QgYmxraWRfY2hhaW4gKmNobiA9IGJsa2lkX3Byb2JlX2dldF9jaGFpbihwcik7CisKKwlpZiAoIWNobikKKwkJcmV0dXJuIC0xOworCWlmICghZGF0YSkKKwkJcmV0dXJuIDA7CS8qIGlnbm9yZSB6ZXJvcyAqLworCisJaWYgKGNobi0+YmluYXJ5KSB7CisJCXVuc2lnbmVkIGxvbmcgKnYgPQorCQkJKHVuc2lnbmVkIGxvbmcgKikgKGNobi0+ZGF0YSArIHN0cnVjdG9mZik7CisJCSp2ID0gZGF0YTsKKwkJcmV0dXJuIDA7CisJfQorCXJldHVybiBibGtpZF9wcm9iZV9zcHJpbnRmX3ZhbHVlKHByLCBuYW1lLCAiJWxsdSIsIGRhdGEpOworfQorCisvKiB0aGUgdG9wb2xvZ3kgaW5mbyBpcyBjb21wbGV0ZSB3aGVuIHdlIGhhdmUgYXQgbGVhc3QgIm1pbmltdW1faW9fc2l6ZSIgd2hpY2gKKyAqIGlzIHByb3ZpZGVzIGJ5IGFsbCBibGtpZCB0b3BvbG9neSBkcml2ZXJzICovCitzdGF0aWMgaW50IHRvcG9sb2d5X2lzX2NvbXBsZXRlKGJsa2lkX3Byb2JlIHByKQoreworCXN0cnVjdCBibGtpZF9jaGFpbiAqY2huID0gYmxraWRfcHJvYmVfZ2V0X2NoYWluKHByKTsKKworCWlmICghY2huKQorCQlyZXR1cm4gRkFMU0U7CisKKwlpZiAoY2huLT5iaW5hcnkgJiYgY2huLT5kYXRhKSB7CisJCWJsa2lkX3RvcG9sb2d5IHRwID0gKGJsa2lkX3RvcG9sb2d5KSBjaG4tPmRhdGE7CisJCWlmICh0cC0+bWluaW11bV9pb19zaXplKQorCQkJcmV0dXJuIFRSVUU7CisJfQorCisJcmV0dXJuIF9fYmxraWRfcHJvYmVfbG9va3VwX3ZhbHVlKHByLCAiTUlOSU1VTV9JT19TSVpFIikgPyBUUlVFIDogRkFMU0U7Cit9CisKK2ludCBibGtpZF90b3BvbG9neV9zZXRfYWxpZ25tZW50X29mZnNldChibGtpZF9wcm9iZSBwciwgdW5zaWduZWQgbG9uZyB2YWwpCit7CisJcmV0dXJuIHRvcG9sb2d5X3NldF92YWx1ZShwciwKKwkJCSJBTElHTk1FTlRfT0ZGU0VUIiwKKwkJCW9mZnNldG9mKHN0cnVjdCBibGtpZF9zdHJ1Y3RfdG9wb2xvZ3ksIGFsaWdubWVudF9vZmZzZXQpLAorCQkJdmFsKTsKK30KKworaW50IGJsa2lkX3RvcG9sb2d5X3NldF9taW5pbXVtX2lvX3NpemUoYmxraWRfcHJvYmUgcHIsIHVuc2lnbmVkIGxvbmcgdmFsKQoreworCXJldHVybiB0b3BvbG9neV9zZXRfdmFsdWUocHIsCisJCQkiTUlOSU1VTV9JT19TSVpFIiwKKwkJCW9mZnNldG9mKHN0cnVjdCBibGtpZF9zdHJ1Y3RfdG9wb2xvZ3ksIG1pbmltdW1faW9fc2l6ZSksCisJCQl2YWwpOworfQorCitpbnQgYmxraWRfdG9wb2xvZ3lfc2V0X29wdGltYWxfaW9fc2l6ZShibGtpZF9wcm9iZSBwciwgdW5zaWduZWQgbG9uZyB2YWwpCit7CisJcmV0dXJuIHRvcG9sb2d5X3NldF92YWx1ZShwciwKKwkJCSJPUFRJTUFMX0lPX1NJWkUiLAorCQkJb2Zmc2V0b2Yoc3RydWN0IGJsa2lkX3N0cnVjdF90b3BvbG9neSwgb3B0aW1hbF9pb19zaXplKSwKKwkJCXZhbCk7Cit9CisKKy8qIEJMS1NTWkdFVCBpcyBwcm92aWRlZCBvbiBhbGwgc3lzdGVtcyBzaW5jZSAyLjMuMyAtLSBzbyB3ZSBkb24ndCBoYXZlIHRvCisgKiB3YXN0ZSB0aW1lIHdpdGggc3lzZnMgb3Igb3IuCisgKi8KK3N0YXRpYyBpbnQgdG9wb2xvZ3lfc2V0X2xvZ2ljYWxfc2VjdG9yX3NpemUoYmxraWRfcHJvYmUgcHIpCit7CisJdW5zaWduZWQgbG9uZyB2YWwgPSBibGtpZF9wcm9iZV9nZXRfc2VjdG9yc2l6ZShwcik7CisKKwlpZiAoIXZhbCkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIHRvcG9sb2d5X3NldF92YWx1ZShwciwKKwkJCSJMT0dJQ0FMX1NFQ1RPUl9TSVpFIiwKKwkJCW9mZnNldG9mKHN0cnVjdCBibGtpZF9zdHJ1Y3RfdG9wb2xvZ3ksIGxvZ2ljYWxfc2VjdG9yX3NpemUpLAorCQkJdmFsKTsKK30KKworaW50IGJsa2lkX3RvcG9sb2d5X3NldF9waHlzaWNhbF9zZWN0b3Jfc2l6ZShibGtpZF9wcm9iZSBwciwgdW5zaWduZWQgbG9uZyB2YWwpCit7CisJcmV0dXJuIHRvcG9sb2d5X3NldF92YWx1ZShwciwKKwkJCSJQSFlTSUNBTF9TRUNUT1JfU0laRSIsCisJCQlvZmZzZXRvZihzdHJ1Y3QgYmxraWRfc3RydWN0X3RvcG9sb2d5LCBwaHlzaWNhbF9zZWN0b3Jfc2l6ZSksCisJCQl2YWwpOworfQorCisvKioKKyAqIGJsa2lkX3RvcG9sb2d5X2dldF9hbGlnbm1lbnRfb2Zmc2V0OgorICogQHRwOiB0b3BvbG9neQorICoKKyAqIFJldHVybnM6IGFsaWdubWVudCBvZmZzZXQgaW4gYnl0ZXMgb3IgMC4KKyAqLwordW5zaWduZWQgbG9uZyBibGtpZF90b3BvbG9neV9nZXRfYWxpZ25tZW50X29mZnNldChibGtpZF90b3BvbG9neSB0cCkKK3sKKwlyZXR1cm4gdHAgPyB0cC0+YWxpZ25tZW50X29mZnNldCA6IDA7Cit9CisKKy8qKgorICogYmxraWRfdG9wb2xvZ3lfZ2V0X21pbmltdW1faW9fc2l6ZToKKyAqIEB0cDogdG9wb2xvZ3kKKyAqCisgKiBSZXR1cm5zOiBtaW5pbXVtIGlvIHNpemUgaW4gYnl0ZXMgb3IgMC4KKyAqLwordW5zaWduZWQgbG9uZyBibGtpZF90b3BvbG9neV9nZXRfbWluaW11bV9pb19zaXplKGJsa2lkX3RvcG9sb2d5IHRwKQoreworCXJldHVybiB0cCA/IHRwLT5taW5pbXVtX2lvX3NpemUgOiAwOworfQorCisvKioKKyAqIGJsa2lkX3RvcG9sb2d5X2dldF9vcHRpbWFsX2lvX3NpemUKKyAqIEB0cDogdG9wb2xvZ3kKKyAqCisgKiBSZXR1cm5zOiBvcHRpbWFsIGlvIHNpemUgaW4gYnl0ZXMgb3IgMC4KKyAqLwordW5zaWduZWQgbG9uZyBibGtpZF90b3BvbG9neV9nZXRfb3B0aW1hbF9pb19zaXplKGJsa2lkX3RvcG9sb2d5IHRwKQoreworCXJldHVybiB0cCA/IHRwLT5vcHRpbWFsX2lvX3NpemUgOiAwOworfQorCisvKioKKyAqIGJsa2lkX3RvcG9sb2d5X2dldF9sb2dpY2FsX3NlY3Rvcl9zaXplCisgKiBAdHA6IHRvcG9sb2d5CisgKgorICogUmV0dXJuczogbG9naWNhbCBzZWN0b3Igc2l6ZSAoQkxLU1NaR0VUIGlvY3RsKSBpbiBieXRlcyBvciAwLgorICovCit1bnNpZ25lZCBsb25nIGJsa2lkX3RvcG9sb2d5X2dldF9sb2dpY2FsX3NlY3Rvcl9zaXplKGJsa2lkX3RvcG9sb2d5IHRwKQoreworCXJldHVybiB0cCA/IHRwLT5sb2dpY2FsX3NlY3Rvcl9zaXplIDogMDsKK30KKworLyoqCisgKiBibGtpZF90b3BvbG9neV9nZXRfcGh5c2ljYWxfc2VjdG9yX3NpemUKKyAqIEB0cDogdG9wb2xvZ3kKKyAqCisgKiBSZXR1cm5zOiBsb2dpY2FsIHNlY3RvciBzaXplIChCTEtTU1pHRVQgaW9jdGwpIGluIGJ5dGVzIG9yIDAuCisgKi8KK3Vuc2lnbmVkIGxvbmcgYmxraWRfdG9wb2xvZ3lfZ2V0X3BoeXNpY2FsX3NlY3Rvcl9zaXplKGJsa2lkX3RvcG9sb2d5IHRwKQoreworCXJldHVybiB0cCA/IHRwLT5waHlzaWNhbF9zZWN0b3Jfc2l6ZSA6IDA7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvdG9wb2xvZ3kuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdG9wb2xvZ3kvdG9wb2xvZ3kuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDg3OTIwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90b3BvbG9neS90b3BvbG9neS5oCkBAIC0wLDAgKzEsMjIgQEAKKyNpZm5kZWYgQkxLSURfVE9QT0xPR1lfSAorI2RlZmluZSBCTEtJRF9UT1BPTE9HWV9ICisKKyNpbmNsdWRlICJibGtpZFAuaCIKKworZXh0ZXJuIGludCBibGtpZF90b3BvbG9neV9zZXRfYWxpZ25tZW50X29mZnNldChibGtpZF9wcm9iZSBwciwgdW5zaWduZWQgbG9uZyB2YWwpOworZXh0ZXJuIGludCBibGtpZF90b3BvbG9neV9zZXRfbWluaW11bV9pb19zaXplKGJsa2lkX3Byb2JlIHByLCB1bnNpZ25lZCBsb25nIHZhbCk7CitleHRlcm4gaW50IGJsa2lkX3RvcG9sb2d5X3NldF9vcHRpbWFsX2lvX3NpemUoYmxraWRfcHJvYmUgcHIsIHVuc2lnbmVkIGxvbmcgdmFsKTsKK2V4dGVybiBpbnQgYmxraWRfdG9wb2xvZ3lfc2V0X3BoeXNpY2FsX3NlY3Rvcl9zaXplKGJsa2lkX3Byb2JlIHByLCB1bnNpZ25lZCBsb25nIHZhbCk7CisKKy8qCisgKiB0b3BvbG9neSBwcm9iZXJzCisgKi8KK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGlvY3RsX3RwX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIHN5c2ZzX3RwX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIG1kX3RwX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGRtX3RwX2lkaW5mbzsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgYmxraWRfaWRpbmZvIGV2bXNfdHBfaWRpbmZvOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBibGtpZF9pZGluZm8gbHZtX3RwX2lkaW5mbzsKKworI2VuZGlmIC8qIEJMS0lEX1RPUE9MT0dZX0ggKi8KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy90c3RfdHlwZXMuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdHN0X3R5cGVzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNiYzAzMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdHN0X3R5cGVzLmMKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIFRoaXMgdGVzdGluZyBwcm9ncmFtIG1ha2VzIHN1cmUgdGhlIHN0ZGludC5oIGhlYWRlciBmaWxlCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA2IGJ5IFRoZW9kb3JlIFRzJ28uCisgKgorICogJUJlZ2luLUhlYWRlciUKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBQdWJsaWMKKyAqIExpY2Vuc2UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJaWYgKHNpemVvZih1aW50OF90KSAhPSAxKSB7CisJCXByaW50ZigiU2l6ZW9mKHVpbnQ4X3QpIGlzICVkIHNob3VsZCBiZSAxXG4iLAorCQkgICAgICAgKGludClzaXplb2YodWludDhfdCkpOworCQlleGl0KDEpOworCX0KKwlpZiAoc2l6ZW9mKGludDhfdCkgIT0gMSkgeworCQlwcmludGYoIlNpemVvZihpbnQ4X3QpIGlzICVkIHNob3VsZCBiZSAxXG4iLAorCQkgICAgICAgKGludClzaXplb2YoaW50OF90KSk7CisJCWV4aXQoMSk7CisJfQorCWlmIChzaXplb2YodWludDE2X3QpICE9IDIpIHsKKwkJcHJpbnRmKCJTaXplb2YodWludDE2X3QpIGlzICVkIHNob3VsZCBiZSAyXG4iLAorCQkgICAgICAgKGludClzaXplb2YodWludDE2X3QpKTsKKwkJZXhpdCgxKTsKKwl9CisJaWYgKHNpemVvZihpbnQxNl90KSAhPSAyKSB7CisJCXByaW50ZigiU2l6ZW9mKGludDE2X3QpIGlzICVkIHNob3VsZCBiZSAyXG4iLAorCQkgICAgICAgKGludClzaXplb2YoaW50MTZfdCkpOworCQlleGl0KDEpOworCX0KKwlpZiAoc2l6ZW9mKHVpbnQzMl90KSAhPSA0KSB7CisJCXByaW50ZigiU2l6ZW9mKHVpbnQzMl90KSBpcyAlZCBzaG91bGQgYmUgNFxuIiwKKwkJICAgICAgIChpbnQpc2l6ZW9mKHVpbnQzMl90KSk7CisJCWV4aXQoMSk7CisJfQorCWlmIChzaXplb2YoaW50MzJfdCkgIT0gNCkgeworCQlwcmludGYoIlNpemVvZihpbnQzMl90KSBpcyAlZCBzaG91bGQgYmUgNFxuIiwKKwkJICAgICAgIChpbnQpc2l6ZW9mKGludDMyX3QpKTsKKwkJZXhpdCgxKTsKKwl9CisJaWYgKHNpemVvZih1aW50NjRfdCkgIT0gOCkgeworCQlwcmludGYoIlNpemVvZih1aW50NjRfdCkgaXMgJWQgc2hvdWxkIGJlIDhcbiIsCisJCSAgICAgICAoaW50KXNpemVvZih1aW50NjRfdCkpOworCQlleGl0KDEpOworCX0KKwlpZiAoc2l6ZW9mKGludDY0X3QpICE9IDgpIHsKKwkJcHJpbnRmKCJTaXplb2YoaW50NjRfdCkgaXMgJWQgc2hvdWxkIGJlIDhcbiIsCisJCSAgICAgICAoaW50KXNpemVvZihpbnQ2NF90KSk7CisJCWV4aXQoMSk7CisJfQorCXByaW50ZigiVGhlIHN0ZGludC5oIHR5cGVzIGFyZSBjb3JyZWN0LlxuIik7CisJZXhpdCgwKTsKK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL2Jsa2lkL3NyYy92ZXJpZnkuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdmVyaWZ5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjczNjAyNgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdmVyaWZ5LmMKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpZmRlZiBIQVZFX1NZU19TVEFUX0gKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9FUlJOT19ICisjaW5jbHVkZSA8ZXJybm8uaD4KKyNlbmRpZgorI2luY2x1ZGUgImJsa2lkUC5oIgorCitzdGF0aWMgdm9pZCBibGtpZF9wcm9iZV90b190YWdzKGJsa2lkX3Byb2JlIHByLCBibGtpZF9kZXYgZGV2KQoreworCWNvbnN0IGNoYXIgKmRhdGE7CisJY29uc3QgY2hhciAqbmFtZTsKKwlpbnQgbnZhbHMsIG47CisJc2l6ZV90IGxlbjsKKworCW52YWxzID0gYmxraWRfcHJvYmVfbnVtb2ZfdmFsdWVzKHByKTsKKworCWZvciAobiA9IDA7IG4gPCBudmFsczsgbisrKSB7CisJCWlmIChibGtpZF9wcm9iZV9nZXRfdmFsdWUocHIsIG4sICZuYW1lLCAmZGF0YSwgJmxlbikgPT0gMCkKKwkJCWJsa2lkX3NldF90YWcoZGV2LCBuYW1lLCBkYXRhLCBsZW4pOworCX0KK30KKworLyoKKyAqIFZlcmlmeSB0aGF0IHRoZSBkYXRhIGluIGRldiBpcyBjb25zaXN0ZW50IHdpdGggd2hhdCBpcyBvbiB0aGUgYWN0dWFsCisgKiBibG9jayBkZXZpY2UgKHVzaW5nIHRoZSBkZXZuYW1lIGZpZWxkIG9ubHkpLiAgTm9ybWFsbHkgdGhpcyB3aWxsIGJlCisgKiBjYWxsZWQgd2hlbiBmaW5kaW5nIGl0ZW1zIGluIHRoZSBjYWNoZSwgYnV0IGZvciBsb25nIHJ1bm5pbmcgcHJvY2Vzc2VzCisgKiBpcyBhbHNvIGRlc2lyYWJsZSB0byByZXZhbGlkYXRlIGFuIGl0ZW0gYmVmb3JlIHVzZS4KKyAqCisgKiBJZiB3ZSBhcmUgdW5hYmxlIHRvIHJldmFsaWRhdGUgdGhlIGRhdGEsIHdlIHJldHVybiB0aGUgb2xkIGRhdGEgYW5kCisgKiBkbyBub3Qgc2V0IHRoZSBCTEtJRF9CSURfRkxfVkVSSUZJRUQgZmxhZyBvbiBpdC4KKyAqLworYmxraWRfZGV2IGJsa2lkX3ZlcmlmeShibGtpZF9jYWNoZSBjYWNoZSwgYmxraWRfZGV2IGRldikKK3sKKwlzdHJ1Y3Qgc3RhdCBzdDsKKwl0aW1lX3QgZGlmZiwgbm93OworCWNoYXIgKmZsdHJbMl07CisJaW50IGZkOworCisJaWYgKCFkZXYpCisJCXJldHVybiBOVUxMOworCisJbm93ID0gdGltZSgwKTsKKwlkaWZmID0gbm93IC0gZGV2LT5iaWRfdGltZTsKKworCWlmIChzdGF0KGRldi0+YmlkX25hbWUsICZzdCkgPCAwKSB7CisJCURCRyhERUJVR19QUk9CRSwKKwkJICAgIHByaW50ZigiYmxraWRfdmVyaWZ5OiBlcnJvciAlcyAoJWQpIHdoaWxlICIKKwkJCSAgICJ0cnlpbmcgdG8gc3RhdCAlc1xuIiwgc3RyZXJyb3IoZXJybm8pLCBlcnJubywKKwkJCSAgIGRldi0+YmlkX25hbWUpKTsKKwlvcGVuX2VycjoKKwkJaWYgKChlcnJubyA9PSBFUEVSTSkgfHwgKGVycm5vID09IEVBQ0NFUykgfHwgKGVycm5vID09IEVOT0VOVCkpIHsKKwkJCS8qIFdlIGRvbid0IGhhdmUgcmVhZCBwZXJtaXNzaW9uLCBqdXN0IHJldHVybiBjYWNoZSBkYXRhLiAqLworCQkJREJHKERFQlVHX1BST0JFLCBwcmludGYoInJldHVybmluZyB1bnZlcmlmaWVkIGRhdGEgZm9yICVzXG4iLAorCQkJCQkJZGV2LT5iaWRfbmFtZSkpOworCQkJcmV0dXJuIGRldjsKKwkJfQorCQlibGtpZF9mcmVlX2RldihkZXYpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlpZiAoKG5vdyA+PSBkZXYtPmJpZF90aW1lKSAmJgorCSAgICAoc3Quc3RfbXRpbWUgPD0gZGV2LT5iaWRfdGltZSkgJiYKKwkgICAgKChkaWZmIDwgQkxLSURfUFJPQkVfTUlOKSB8fAorCSAgICAgKGRldi0+YmlkX2ZsYWdzICYgQkxLSURfQklEX0ZMX1ZFUklGSUVEICYmCisJICAgICAgZGlmZiA8IEJMS0lEX1BST0JFX0lOVEVSVkFMKSkpCisJCXJldHVybiBkZXY7CisKKwlEQkcoREVCVUdfUFJPQkUsCisJICAgIHByaW50ZigibmVlZCB0byByZXZhbGlkYXRlICVzIChjYWNoZSB0aW1lICVsdSwgc3RhdCB0aW1lICVsdSxcblx0IgorCQkgICAidGltZSBzaW5jZSBsYXN0IGNoZWNrICVsdSlcbiIsCisJCSAgIGRldi0+YmlkX25hbWUsICh1bnNpZ25lZCBsb25nKWRldi0+YmlkX3RpbWUsCisJCSAgICh1bnNpZ25lZCBsb25nKXN0LnN0X210aW1lLCAodW5zaWduZWQgbG9uZylkaWZmKSk7CisKKworCWlmICghY2FjaGUtPnByb2JlKSB7CisJCWNhY2hlLT5wcm9iZSA9IGJsa2lkX25ld19wcm9iZSgpOworCQlpZiAoIWNhY2hlLT5wcm9iZSkgeworCQkJYmxraWRfZnJlZV9kZXYoZGV2KTsKKwkJCXJldHVybiBOVUxMOworCQl9CisJfQorCisJZmQgPSBvcGVuKGRldi0+YmlkX25hbWUsIE9fUkRPTkxZKTsKKwlpZiAoZmQgPCAwKSB7CisJCURCRyhERUJVR19QUk9CRSwgcHJpbnRmKCJibGtpZF92ZXJpZnk6IGVycm9yICVzICglZCkgd2hpbGUgIgorCQkJCQkib3BlbmluZyAlc1xuIiwgc3RyZXJyb3IoZXJybm8pLCBlcnJubywKKwkJCQkJZGV2LT5iaWRfbmFtZSkpOworCQlnb3RvIG9wZW5fZXJyOworCX0KKworCWlmIChibGtpZF9wcm9iZV9zZXRfZGV2aWNlKGNhY2hlLT5wcm9iZSwgZmQsIDAsIDApKSB7CisJCS8qIGZhaWxlZCB0byByZWFkIHRoZSBkZXZpY2UgKi8KKwkJY2xvc2UoZmQpOworCQlibGtpZF9mcmVlX2RldihkZXYpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlibGtpZF9wcm9iZV9lbmFibGVfc3VwZXJibG9ja3MoY2FjaGUtPnByb2JlLCBUUlVFKTsKKworCWJsa2lkX3Byb2JlX3NldF9zdXBlcmJsb2Nrc19mbGFncyhjYWNoZS0+cHJvYmUsCisJCUJMS0lEX1NVQkxLU19MQUJFTCB8IEJMS0lEX1NVQkxLU19VVUlEIHwKKwkJQkxLSURfU1VCTEtTX1RZUEUgfCBCTEtJRF9TVUJMS1NfU0VDVFlQRSk7CisKKwkvKgorCSAqIElmIHdlIGFscmVhZHkga25vdyB0aGUgdHlwZSwgdGhlbiB0cnkgdGhhdCBmaXJzdC4KKwkgKi8KKwlpZiAoZGV2LT5iaWRfdHlwZSkgeworCQlibGtpZF90YWdfaXRlcmF0ZSBpdGVyOworCQljb25zdCBjaGFyICp0eXBlLCAqdmFsdWU7CisKKwkJZmx0clswXSA9IGRldi0+YmlkX3R5cGU7CisJCWZsdHJbMV0gPSBOVUxMOworCisJCWJsa2lkX3Byb2JlX2ZpbHRlcl9zdXBlcmJsb2Nrc190eXBlKGNhY2hlLT5wcm9iZSwKKwkJCQlCTEtJRF9GTFRSX09OTFlJTiwgZmx0cik7CisKKwkJaWYgKCFibGtpZF9kb19wcm9iZShjYWNoZS0+cHJvYmUpKQorCQkJZ290byBmb3VuZF90eXBlOworCQlibGtpZF9wcm9iZV9pbnZlcnRfc3VwZXJibG9ja3NfZmlsdGVyKGNhY2hlLT5wcm9iZSk7CisKKwkJLyoKKwkJICogWmFwIHRoZSBkZXZpY2UgZmlsZXN5c3RlbSBpbmZvcm1hdGlvbiBhbmQgdHJ5IGFnYWluCisJCSAqLworCQlEQkcoREVCVUdfUFJPQkUsCisJCSAgICBwcmludGYoInByZXZpb3VzIGZzIHR5cGUgJXMgbm90IHZhbGlkLCAiCisJCQkgICAidHJ5aW5nIGZ1bGwgcHJvYmVcbiIsIGRldi0+YmlkX3R5cGUpKTsKKwkJaXRlciA9IGJsa2lkX3RhZ19pdGVyYXRlX2JlZ2luKGRldik7CisJCXdoaWxlIChibGtpZF90YWdfbmV4dChpdGVyLCAmdHlwZSwgJnZhbHVlKSA9PSAwKQorCQkJYmxraWRfc2V0X3RhZyhkZXYsIHR5cGUsIDAsIDApOworCQlibGtpZF90YWdfaXRlcmF0ZV9lbmQoaXRlcik7CisJfQorCisJLyoKKwkgKiBQcm9iZSBmb3IgYWxsIHR5cGVzLgorCSAqLworCWlmIChibGtpZF9kb19zYWZlcHJvYmUoY2FjaGUtPnByb2JlKSkgeworCQkvKiBmb3VuZCBub3RoaW5nIG9yIGVycm9yICovCisJCWJsa2lkX2ZyZWVfZGV2KGRldik7CisJCWRldiA9IE5VTEw7CisJfQorCitmb3VuZF90eXBlOgorCWlmIChkZXYpIHsKKwkJZGV2LT5iaWRfZGV2bm8gPSBzdC5zdF9yZGV2OworCQlkZXYtPmJpZF90aW1lID0gdGltZSgwKTsKKwkJZGV2LT5iaWRfZmxhZ3MgfD0gQkxLSURfQklEX0ZMX1ZFUklGSUVEOworCQljYWNoZS0+YmljX2ZsYWdzIHw9IEJMS0lEX0JJQ19GTF9DSEFOR0VEOworCisJCWJsa2lkX3Byb2JlX3RvX3RhZ3MoY2FjaGUtPnByb2JlLCBkZXYpOworCisJCURCRyhERUJVR19QUk9CRSwgcHJpbnRmKCIlczogZGV2bm8gMHglMDRsbHgsIHR5cGUgJXNcbiIsCisJCQkgICBkZXYtPmJpZF9uYW1lLCAobG9uZyBsb25nKXN0LnN0X3JkZXYsIGRldi0+YmlkX3R5cGUpKTsKKwl9CisKKwlibGtpZF9yZXNldF9wcm9iZShjYWNoZS0+cHJvYmUpOworCWJsa2lkX3Byb2JlX3Jlc2V0X3N1cGVyYmxvY2tzX2ZpbHRlcihjYWNoZS0+cHJvYmUpOworCWNsb3NlKGZkKTsKKwlyZXR1cm4gZGV2OworfQorCisjaWZkZWYgVEVTVF9QUk9HUkFNCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJYmxraWRfZGV2IGRldjsKKwlibGtpZF9jYWNoZSBjYWNoZTsKKwlpbnQgcmV0OworCisJaWYgKGFyZ2MgIT0gMikgeworCQlmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiAlcyBkZXZpY2VcbiIKKwkJCSJQcm9iZSBhIHNpbmdsZSBkZXZpY2UgdG8gZGV0ZXJtaW5lIHR5cGVcbiIsIGFyZ3ZbMF0pOworCQlleGl0KDEpOworCX0KKwlpZiAoKHJldCA9IGJsa2lkX2dldF9jYWNoZSgmY2FjaGUsICIvZGV2L251bGwiKSkgIT0gMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBlcnJvciBjcmVhdGluZyBjYWNoZSAoJWQpXG4iLAorCQkJYXJndlswXSwgcmV0KTsKKwkJZXhpdCgxKTsKKwl9CisJZGV2ID0gYmxraWRfZ2V0X2RldihjYWNoZSwgYXJndlsxXSwgQkxLSURfREVWX05PUk1BTCk7CisJaWYgKCFkZXYpIHsKKwkJcHJpbnRmKCIlczogJXMgaGFzIGFuIHVuc3VwcG9ydGVkIHR5cGVcbiIsIGFyZ3ZbMF0sIGFyZ3ZbMV0pOworCQlyZXR1cm4gKDEpOworCX0KKwlwcmludGYoIlRZUEU9JyVzJ1xuIiwgZGV2LT5iaWRfdHlwZSA/IGRldi0+YmlkX3R5cGUgOiAiKG51bGwpIik7CisJaWYgKGRldi0+YmlkX2xhYmVsKQorCQlwcmludGYoIkxBQkVMPSclcydcbiIsIGRldi0+YmlkX2xhYmVsKTsKKwlpZiAoZGV2LT5iaWRfdXVpZCkKKwkJcHJpbnRmKCJVVUlEPSclcydcbiIsIGRldi0+YmlkX3V1aWQpOworCisJYmxraWRfZnJlZV9kZXYoZGV2KTsKKwlyZXR1cm4gKDApOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3ZlcnNpb24uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy9ibGtpZC9zcmMvdmVyc2lvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjN2ZhMDYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvYmxraWQvc3JjL3ZlcnNpb24uYwpAQCAtMCwwICsxLDYyIEBACisvKgorICogdmVyc2lvbi5jIC0tLSBSZXR1cm4gdGhlIHZlcnNpb24gb2YgdGhlIGJsa2lkIGxpYnJhcnkKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgVGhlb2RvcmUgVHMnby4KKyAqCisgKiAlQmVnaW4tSGVhZGVyJQorICogVGhpcyBmaWxlIG1heSBiZSByZWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIFB1YmxpYworICogTGljZW5zZS4KKyAqICVFbmQtSGVhZGVyJQorICovCisKKyNpZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisKKyNpbmNsdWRlICJibGtpZC5oIgorCisvKiBMSUJCTEtJRF8qIGRlZmluZWQgaW4gdGhlIGdsb2JhbCBjb25maWcuaCAqLworc3RhdGljIGNvbnN0IGNoYXIgKmxpYl92ZXJzaW9uID0gTElCQkxLSURfVkVSU0lPTjsJLyogcmVsZWFzZSB2ZXJzaW9uICovCitzdGF0aWMgY29uc3QgY2hhciAqbGliX2RhdGUgPSBMSUJCTEtJRF9EQVRFOworCisvKioKKyAqIGJsa2lkX3BhcnNlX3ZlcnNpb25fc3RyaW5nOgorICogQHZlcl9zdHJpbmc6ICB2ZXJzaW9uIHN0cmluZyAoZS5nLiAiMi4xNi4wIikKKyAqCisgKiBSZXR1cm5zOiByZWxlYXNlIHZlcnNpb24gY29kZS4KKyAqLworaW50IGJsa2lkX3BhcnNlX3ZlcnNpb25fc3RyaW5nKGNvbnN0IGNoYXIgKnZlcl9zdHJpbmcpCit7CisJY29uc3QgY2hhciAqY3A7CisJaW50IHZlcnNpb24gPSAwOworCisJZm9yIChjcCA9IHZlcl9zdHJpbmc7ICpjcDsgY3ArKykgeworCQlpZiAoKmNwID09ICcuJykKKwkJCWNvbnRpbnVlOworCQlpZiAoIWlzZGlnaXQoKmNwKSkKKwkJCWJyZWFrOworCQl2ZXJzaW9uID0gKHZlcnNpb24gKiAxMCkgKyAoKmNwIC0gJzAnKTsKKwl9CisJcmV0dXJuIHZlcnNpb247Cit9CisKKy8qKgorICogYmxraWRfZ2V0X2xpYnJhcnlfdmVyc2lvbjoKKyAqIEB2ZXJfc3RyaW5nOiByZXR1cm5zIHJlbGVzZSB2ZXJzaW9uICghPSBTT05BTUUgdmVyc2lvbikKKyAqIEBkYXRlX3N0cmluZzogcmV0dXJucyBkYXRlCisgKgorICogUmV0dXJuczogcmVsZWFzZSB2ZXJzaW9uIGNvZGUuCisgKi8KK2ludCBibGtpZF9nZXRfbGlicmFyeV92ZXJzaW9uKGNvbnN0IGNoYXIgKip2ZXJfc3RyaW5nLAorCQkJICAgICAgIGNvbnN0IGNoYXIgKipkYXRlX3N0cmluZykKK3sKKwlpZiAodmVyX3N0cmluZykKKwkJKnZlcl9zdHJpbmcgPSBsaWJfdmVyc2lvbjsKKwlpZiAoZGF0ZV9zdHJpbmcpCisJCSpkYXRlX3N0cmluZyA9IGxpYl9kYXRlOworCisJcmV0dXJuIGJsa2lkX3BhcnNlX3ZlcnNpb25fc3RyaW5nKGxpYl92ZXJzaW9uKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJkZWYzMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMTAgQEAKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorCitTVUJESVJTID0gc3JjIG1hbgorCisjIHBrZy1jb25maWcgc3R1ZmYKK3BrZ2NvbmZpZ2RpciA9ICQodXNybGliX2V4ZWNkaXIpL3BrZ2NvbmZpZworcGtnY29uZmlnX0RBVEEgPSB1dWlkLnBjCisKK0VYVFJBX0RJU1QgPSB1dWlkLnBjLmluCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM3ZDRlOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsNjg5IEBACisjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKworIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgorIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworQFNFVF9NQUtFQAorCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoZGlzdF9ub2luc3RfREFUQSkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3V1aWQucGMuaW4gXAorCSQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK3N1YmRpciA9IHNobGlicy91dWlkCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9nZXR0ZXh0Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2d0ay1kb2MubTQgJCh0b3Bfc3JjZGlyKS9tNC9pY29udi5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItbGQubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWItbGluay5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItcHJlZml4Lm00ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L25scy5tNCAkKHRvcF9zcmNkaXIpL200L3BvLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L3Byb2d0ZXN0Lm00ICQodG9wX3NyY2RpcikvbTQvdGxzLm00IFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvbWtpbnN0YWxsZGlycworQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9jb25maWcuaAorQ09ORklHX0NMRUFOX0ZJTEVTID0gdXVpZC5wYworQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK0FNX1ZfYXQgPSAkKGFtX192X2F0XyQoVikpCithbV9fdl9hdF8gPSAkKGFtX192X2F0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfYXRfMCA9IEAKK1NPVVJDRVMgPQorRElTVF9TT1VSQ0VTID0KK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CithbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisgICAgKikgZj0kJHA7OyBcCisgIGVzYWM7CithbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CithbV9faW5zdGFsbF9tYXggPSA0MAorYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorYW1fX25vYmFzZV9zdHJpcCA9IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCithbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCisgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworYW1fX2Jhc2VfbGlzdCA9IFwKKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiCitEQVRBID0gJChkaXN0X25vaW5zdF9EQVRBKSAkKHBrZ2NvbmZpZ19EQVRBKQorUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKKwlkaXN0ZGlyCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorYW1fX3JlbGF0aXZpemUgPSBcCisgIGRpcjA9YHB3ZGA7IFwKKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorICAgICAgZWxzZSBcCisgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorICAgICAgICBlbHNlIFwKKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisgICAgICAgIGZpOyBcCisgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisgICAgICBmaTsgXAorICAgIGZpOyBcCisgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisgIGRvbmU7IFwKKyAgcmVsZGlyPSIkJGRpcjIiCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitTVUJESVJTID0gc3JjIG1hbgorCisjIHBrZy1jb25maWcgc3R1ZmYKK3BrZ2NvbmZpZ2RpciA9ICQodXNybGliX2V4ZWNkaXIpL3BrZ2NvbmZpZworcGtnY29uZmlnX0RBVEEgPSB1dWlkLnBjCitFWFRSQV9ESVNUID0gdXVpZC5wYy5pbgorYWxsOiBhbGwtcmVjdXJzaXZlCisKKy5TVUZGSVhFUzoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiBzaGxpYnMvdXVpZC9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL3V1aWQvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgordXVpZC5wYzogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3V1aWQucGMuaW4KKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworaW5zdGFsbC1wa2djb25maWdEQVRBOiAkKHBrZ2NvbmZpZ19EQVRBKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQocGtnY29uZmlnZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIKKwlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyB0ZXN0IC1uICIkKHBrZ2NvbmZpZ2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgXAorCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQocGtnY29uZmlnZGlyKSciOyBcCisJICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIgfHwgZXhpdCAkJD87IFwKKwlkb25lCisKK3VuaW5zdGFsbC1wa2djb25maWdEQVRBOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQocGtnY29uZmlnX0RBVEEpJzsgdGVzdCAtbiAiJChwa2djb25maWdkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCiskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKwkgIGNhc2UgJCRmIGluIFwKKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwlkb3Rfc2Vlbj1ubzsgXAorCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGRvdF9zZWVuPXllczsgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorCSAgZWxzZSBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisJICBmaTsgXAorCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKwlkb25lOyBcCisJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisJZmk7IHRlc3QgLXogIiQkZmFpbCIKKworJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisJICBjYXNlICQkZiBpbiBcCisJICAgICo9KiB8IC0tWyFrXSopOzsgXAorCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZG90X3NlZW49bm87IFwKKwljYXNlICIkQCIgaW4gXAorCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorCWVzYWM7IFwKKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlyZXY9IiQkcmV2IC4iOyBcCisJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisJICBlbHNlIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKwkgIGZpOyBcCisJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisJICB8fCBldmFsICQkZmFpbGNvbTsgXAorCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgordGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKwlkb25lCitjdGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisJZG9uZQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD0uOyBcCisJZWxzZSBcCisJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD07IFwKKwlmaTsgXAorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKwkgICAgICAgIGRpc3RkaXIpIFwKKwkgICAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorYWxsLWFtOiBNYWtlZmlsZSAkKERBVEEpCitpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCitpbnN0YWxsZGlycy1hbToKKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQordW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktcmVjdXJzaXZlCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1yZWN1cnNpdmUKKworaHRtbC1hbToKKworaW5mbzogaW5mby1yZWN1cnNpdmUKKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjoKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtcmVjdXJzaXZlCisKK3BkZi1hbToKKworcHM6IHBzLXJlY3Vyc2l2ZQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtcGtnY29uZmlnREFUQQorCisuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKworLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisJaW5zdGFsbC1wa2djb25maWdEQVRBIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIFwKKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCisJdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi9NYWtlZmlsZS5hbSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmFmMDI0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMTIgQEAKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorCitkaXN0X21hbl9NQU5TID0gdXVpZC4zIHV1aWRfY2xlYXIuMyB1dWlkX2NvbXBhcmUuMyB1dWlkX2NvcHkuMyB1dWlkX2dlbmVyYXRlLjMgXAorCQl1dWlkX2lzX251bGwuMyB1dWlkX3BhcnNlLjMgdXVpZF90aW1lLjMgdXVpZF91bnBhcnNlLjMKKworVVVJRF9HRU5FUkFURV9MSU5LUyA9IHV1aWRfZ2VuZXJhdGVfcmFuZG9tLjMgdXVpZF9nZW5lcmF0ZV90aW1lLjMKKworbWFuX01BTlMgPSAkKFVVSURfR0VORVJBVEVfTElOS1MpCitDTEVBTkZJTEVTID0gJChtYW5fTUFOUykKKworJChVVUlEX0dFTkVSQVRFX0xJTktTKTogdXVpZF9nZW5lcmF0ZS4zCisJZWNobyAiLnNvIG1hbjMvdXVpZF9nZW5lcmF0ZS4zIiA+ICRACmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9tYW4vTWFrZWZpbGUuaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9tYW4vTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZhNDE5YgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDUyNSBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworVlBBVEggPSBAc3JjZGlyQAorcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACitwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorRElTVF9DT01NT04gPSAkKGRpc3RfbWFuX01BTlMpICQoZGlzdF9ub2luc3RfREFUQSkgXAorCSQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorCSQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK3N1YmRpciA9IHNobGlicy91dWlkL21hbgorQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQU1fVl9HRU4gPSAkKGFtX192X0dFTl8kKFYpKQorYW1fX3ZfR0VOXyA9ICQoYW1fX3ZfR0VOXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfR0VOXzAgPSBAZWNobyAiICBHRU4gICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorU09VUkNFUyA9CitESVNUX1NPVVJDRVMgPQorYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CithbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisgICAgKikgZj0kJHA7OyBcCisgIGVzYWM7CithbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CithbV9faW5zdGFsbF9tYXggPSA0MAorYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorYW1fX25vYmFzZV9zdHJpcCA9IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCithbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCisgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworYW1fX2Jhc2VfbGlzdCA9IFwKKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworbWFuM2RpciA9ICQobWFuZGlyKS9tYW4zCithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobWFuM2RpcikiCitOUk9GRiA9IG5yb2ZmCitNQU5TID0gJChkaXN0X21hbl9NQU5TKSAkKG1hbl9NQU5TKQorREFUQSA9ICQoZGlzdF9ub2luc3RfREFUQSkKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitkaXN0X21hbl9NQU5TID0gdXVpZC4zIHV1aWRfY2xlYXIuMyB1dWlkX2NvbXBhcmUuMyB1dWlkX2NvcHkuMyB1dWlkX2dlbmVyYXRlLjMgXAorCQl1dWlkX2lzX251bGwuMyB1dWlkX3BhcnNlLjMgdXVpZF90aW1lLjMgdXVpZF91bnBhcnNlLjMKKworVVVJRF9HRU5FUkFURV9MSU5LUyA9IHV1aWRfZ2VuZXJhdGVfcmFuZG9tLjMgdXVpZF9nZW5lcmF0ZV90aW1lLjMKK21hbl9NQU5TID0gJChVVUlEX0dFTkVSQVRFX0xJTktTKQorQ0xFQU5GSUxFUyA9ICQobWFuX01BTlMpCithbGw6IGFsbC1hbQorCisuU1VGRklYRVM6CiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL3V1aWQvbWFuL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZm9yZWlnbiBzaGxpYnMvdXVpZC9tYW4vTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworaW5zdGFsbC1tYW4zOiAkKGRpc3RfbWFuX01BTlMpICQobWFuX01BTlMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChtYW4zZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobWFuM2RpcikiCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuM2RpcikiIHx8IGV4aXQgMDsgXAorCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUykgJChtYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4zW2Etel0qJCQvcCc7IFwKKwl9IHwgd2hpbGUgcmVhZCBwOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAnbjtzLC4qLywsO3A7aDtzLC4qXC4sLDtzLF5bXjNdWzAtOWEtel0qJCQsMyw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJyB8IFwKKwlzZWQgJ047TjtzLFxuLCAsZycgfCB7IFwKKwlsaXN0PTsgd2hpbGUgcmVhZCBmaWxlIGJhc2UgaW5zdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVuIGxpc3Q9IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuM2RpcikvJCRpbnN0JyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICIkJGZpbGUiICIkKERFU1RESVIpJChtYW4zZGlyKS8kJGluc3QiIHx8IGV4aXQgJCQ/OyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKG1hbjNkaXIpJyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjNkaXIpIiB8fCBleGl0ICQkPzsgfTsgXAorCWRvbmU7IH0KKwordW5pbnN0YWxsLW1hbjM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4zZGlyKSIgfHwgZXhpdCAwOyBcCisJZmlsZXM9YHsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUykgJChtYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4zW2Etel0qJCQvcCc7IFwKKwl9IHwgc2VkIC1lICdzLC4qLywsO2g7cywuKlwuLCw7cyxeW14zXVswLTlhLXpdKiQkLDMsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCdgOyBcCisJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICBlY2hvICIgKCBjZCAnJChERVNURElSKSQobWFuM2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCSAgY2QgIiQoREVTVERJUikkKG1hbjNkaXIpIiAmJiBybSAtZiAkJGZpbGVzOyB9Cit0YWdzOiBUQUdTCitUQUdTOgorCitjdGFnczogQ1RBR1MKK0NUQUdTOgorCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBsaXN0PSckKE1BTlMpJzsgaWYgdGVzdCAtbiAiJCRsaXN0IjsgdGhlbiBcCisJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICAgIGlmIHRlc3QgLWYgIiQkZCQkcCI7IHRoZW4gZWNobyAiJCRkJCRwIjsgZWxzZSA6OyBmaTsgZG9uZWA7IFwKKwkgIGlmIHRlc3QgLW4gIiQkbGlzdCIgJiYgXAorCSAgICBncmVwICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCA+L2Rldi9udWxsOyB0aGVuIFwKKwkgICAgZWNobyAiZXJyb3I6IGZvdW5kIG1hbiBwYWdlcyBjb250YWluaW5nIHRoZSBcYG1pc3NpbmcgaGVscDJtYW4nIHJlcGxhY2VtZW50IHRleHQ6IiA+JjI7IFwKKwkgICAgZ3JlcCAtbCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgfCBzZWQgJ3MvXi8gICAgICAgICAvJyA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHRvIGZpeCB0aGVtLCBpbnN0YWxsIGhlbHAybWFuLCByZW1vdmUgYW5kIHJlZ2VuZXJhdGUgdGhlIG1hbiBwYWdlczsiID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdHlwaWNhbGx5IFxgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB3aWxsIHJlbW92ZSB0aGVtIiA+JjI7IFwKKwkgICAgZXhpdCAxOyBcCisJICBlbHNlIDo7IGZpOyBcCisJZWxzZSA6OyBmaQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLWFtCithbGwtYW06IE1ha2VmaWxlICQoTUFOUykgJChEQVRBKQoraW5zdGFsbGRpcnM6CisJZm9yIGRpciBpbiAiJChERVNURElSKSQobWFuM2RpcikiOyBkbyBcCisJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisJZG9uZQoraW5zdGFsbDogaW5zdGFsbC1hbQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCit1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoQ0xFQU5GSUxFUykKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKKworZHZpOiBkdmktYW0KKworZHZpLWFtOgorCitodG1sOiBodG1sLWFtCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tYW0KKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbToKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjMKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1hbQorCitwZGYtYW06CisKK3BzOiBwcy1hbQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbWFuCisKK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW4zCisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAorCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAorCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjMgXAorCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCisJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuMworCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworJCh1bF9saWJ1dWlkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGlidXVpZF9idWlsZGRpcikKKworJChVVUlEX0dFTkVSQVRFX0xJTktTKTogdXVpZF9nZW5lcmF0ZS4zCisJZWNobyAiLnNvIG1hbjMvdXVpZF9nZW5lcmF0ZS4zIiA+ICRACisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkLjMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9tYW4vdXVpZC4zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZWQyNzcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9tYW4vdXVpZC4zCkBAIC0wLDAgKzEsNjUgQEAKKy5cIiBDb3B5cmlnaHQgMTk5OSBBbmRyZWFzIERpbGdlciAoYWRpbGdlckBlbmVsLnVjYWxnYXJ5LmNhKQorLlwiCisuXCIgJUJlZ2luLUhlYWRlciUKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisuXCIgICAgaW5jbHVkaW5nIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnRpZXMuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKy5cIiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisuXCIgICAgd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKy5cIiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworLlwiIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorLlwiIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKy5cIiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisuXCIgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKy5cIiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKy5cIiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCisuXCIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisuXCIgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKy5cIiBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBOT1QgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorLlwiIERBTUFHRS4KKy5cIiAlRW5kLUhlYWRlciUKKy5cIgorLlwiIENyZWF0ZWQgIFdlZCBNYXIgMTAgMTc6NDI6MTIgMTk5OSwgQW5kcmVhcyBEaWxnZXIKKy5USCBVVUlEIDMgIk1heSAyMDA5IiAidXRpbC1saW51eC1uZyIgIkxpYnV1aWQgQVBJIgorLlNIIE5BTUUKK3V1aWQgXC0gRENFIGNvbXBhdGlibGUgVW5pdmVyc2FsbHkgVW5pcXVlIElkZW50aWZpZXIgbGlicmFyeQorLlNIIFNZTk9QU0lTCisuQiAjaW5jbHVkZSA8dXVpZC91dWlkLmg+CisuU0ggREVTQ1JJUFRJT04KK1RoZSBVVUlEIGxpYnJhcnkgaXMgdXNlZCB0byBnZW5lcmF0ZSB1bmlxdWUgaWRlbnRpZmllcnMgZm9yIG9iamVjdHMKK3RoYXQgbWF5IGJlIGFjY2Vzc2libGUgYmV5b25kIHRoZSBsb2NhbCBzeXN0ZW0uICBUaGlzIGxpYnJhcnkKK2dlbmVyYXRlcyBVVUlEcyBjb21wYXRpYmxlIHdpdGggdGhvc2UgY3JlYXRlZCBieSB0aGUgT3BlbiBTb2Z0d2FyZQorRm91bmRhdGlvbiAoT1NGKSBEaXN0cmlidXRlZCBDb21wdXRpbmcgRW52aXJvbm1lbnQgKERDRSkgdXRpbGl0eQorLkJSIHV1aWRnZW4gLgorLnNwCitUaGUgVVVJRHMgZ2VuZXJhdGVkIGJ5IHRoaXMgbGlicmFyeSBjYW4gYmUgcmVhc29uYWJseSBleHBlY3RlZCB0byBiZQordW5pcXVlIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHVuaXF1ZSBhY3Jvc3MgYWxsIHN5c3RlbXMuICBUaGV5IGNvdWxkCitiZSB1c2VkLCBmb3IgaW5zdGFuY2UsIHRvIGdlbmVyYXRlIHVuaXF1ZSBIVFRQIGNvb2tpZXMgYWNyb3NzIG11bHRpcGxlCit3ZWIgc2VydmVycyB3aXRob3V0IGNvbW11bmljYXRpb24gYmV0d2VlbiB0aGUgc2VydmVycywgYW5kIHdpdGhvdXQgZmVhcgorb2YgYSBuYW1lIGNsYXNoLgorLlNIICJDT05GT1JNSU5HIFRPIgorT1NGIERDRSAxLjEKKy5TSCBBVVRIT1IKK1RoZW9kb3JlIFkuIFRzJ28KKy5TSCBBVkFJTEFCSUxJVFkKKy5CIGxpYnV1aWQKK2lzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBzaW5jZSB2ZXJzaW9uIDIuMTUuMSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KKy5TSCAiU0VFIEFMU08iCisuQlIgdXVpZF9jbGVhciAoMyksCisuQlIgdXVpZF9jb21wYXJlICgzKSwKKy5CUiB1dWlkX2NvcHkgKDMpLAorLkJSIHV1aWRfZ2VuZXJhdGUgKDMpLAorLkJSIHV1aWRfaXNfbnVsbCAoMyksCisuQlIgdXVpZF9wYXJzZSAoMyksCisuQlIgdXVpZF90aW1lICgzKSwKKy5CUiB1dWlkX3VucGFyc2UgKDMpCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9tYW4vdXVpZF9jbGVhci4zIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfY2xlYXIuMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTlhNmUxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfY2xlYXIuMwpAQCAtMCwwICsxLDYwIEBACisuXCIgQ29weXJpZ2h0IDE5OTkgQW5kcmVhcyBEaWxnZXIgKGFkaWxnZXJAZW5lbC51Y2FsZ2FyeS5jYSkKKy5cIgorLlwiICVCZWdpbi1IZWFkZXIlCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgYW5kIHRoZSBlbnRpcmUgcGVybWlzc2lvbiBub3RpY2UgaW4gaXRzIGVudGlyZXR5LAorLlwiICAgIGluY2x1ZGluZyB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50aWVzLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisuXCIgICAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvcgorLlwiICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy5cIgorLlwiIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisuXCIgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKy5cIiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBBTEwgT0YKKy5cIiBXSElDSCBBUkUgSEVSRUJZIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFCisuXCIgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorLlwiIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisuXCIgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SCisuXCIgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorLlwiIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLlwiIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFCisuXCIgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgTk9UIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKy5cIiBEQU1BR0UuCisuXCIgJUVuZC1IZWFkZXIlCisuXCIKKy5cIiBDcmVhdGVkICBXZWQgTWFyIDEwIDE3OjQyOjEyIDE5OTksIEFuZHJlYXMgRGlsZ2VyCisuVEggVVVJRF9DTEVBUiAzICJNYXkgMjAwOSIgInV0aWwtbGludXgtbmciICJMaWJ1dWlkIEFQSSIKKy5TSCBOQU1FCit1dWlkX2NsZWFyIFwtIHJlc2V0IHZhbHVlIG9mIFVVSUQgdmFyaWFibGUgdG8gdGhlIE5VTEwgdmFsdWUKKy5TSCBTWU5PUFNJUworLm5mCisuQiAjaW5jbHVkZSA8dXVpZC91dWlkLmg+Cisuc3AKKy5CSSAidm9pZCB1dWlkX2NsZWFyKHV1aWRfdCAiIHV1ICk7CisuZmkKKy5TSCBERVNDUklQVElPTgorVGhlCisuQiB1dWlkX2NsZWFyCitmdW5jdGlvbiBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgc3VwcGxpZWQgdXVpZCB2YXJpYWJsZQorLkkgdXUKK3RvIHRoZSBOVUxMIHZhbHVlLgorLlNIIEFVVEhPUgorVGhlb2RvcmUgWS4gVHMnbworLlNIIEFWQUlMQUJJTElUWQorLkIgbGlidXVpZAoraXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIHNpbmNlIHZlcnNpb24gMi4xNS4xIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgorLlNIICJTRUUgQUxTTyIKKy5CUiB1dWlkICgzKSwKKy5CUiB1dWlkX2NvbXBhcmUgKDMpLAorLkJSIHV1aWRfY29weSAoMyksCisuQlIgdXVpZF9nZW5lcmF0ZSAoMyksCisuQlIgdXVpZF9pc19udWxsICgzKSwKKy5CUiB1dWlkX3BhcnNlICgzKSwKKy5CUiB1dWlkX3VucGFyc2UgKDMpCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9tYW4vdXVpZF9jb21wYXJlLjMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9tYW4vdXVpZF9jb21wYXJlLjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjExY2U3NQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkX2NvbXBhcmUuMwpAQCAtMCwwICsxLDY2IEBACisuXCIgQ29weXJpZ2h0IDE5OTkgQW5kcmVhcyBEaWxnZXIgKGFkaWxnZXJAZW5lbC51Y2FsZ2FyeS5jYSkKKy5cIgorLlwiICVCZWdpbi1IZWFkZXIlCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgYW5kIHRoZSBlbnRpcmUgcGVybWlzc2lvbiBub3RpY2UgaW4gaXRzIGVudGlyZXR5LAorLlwiICAgIGluY2x1ZGluZyB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50aWVzLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisuXCIgICAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvcgorLlwiICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy5cIgorLlwiIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisuXCIgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKy5cIiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBBTEwgT0YKKy5cIiBXSElDSCBBUkUgSEVSRUJZIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFCisuXCIgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorLlwiIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisuXCIgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SCisuXCIgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorLlwiIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLlwiIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFCisuXCIgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgTk9UIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKy5cIiBEQU1BR0UuCisuXCIgJUVuZC1IZWFkZXIlCisuXCIKKy5cIiBDcmVhdGVkICBXZWQgTWFyIDEwIDE3OjQyOjEyIDE5OTksIEFuZHJlYXMgRGlsZ2VyCisuVEggVVVJRF9DT01QQVJFIDMgIk1heSAyMDA5IiAidXRpbC1saW51eC1uZyIgIkxpYnV1aWQgQVBJIgorLlNIIE5BTUUKK3V1aWRfY29tcGFyZSBcLSBjb21wYXJlIHdoZXRoZXIgdHdvIFVVSURzIGFyZSB0aGUgc2FtZQorLlNIIFNZTk9QU0lTCisubmYKKy5CICNpbmNsdWRlIDx1dWlkL3V1aWQuaD4KKy5zcAorLkJJICJpbnQgdXVpZF9jb21wYXJlKHV1aWRfdCAiIHV1MSAiLCB1dWlkX3QgIiB1dTIpCisuZmkKKy5TSCBERVNDUklQVElPTgorVGhlCisuQiB1dWlkX2NvbXBhcmUKK2Z1bmN0aW9uIGNvbXBhcmVzIHRoZSB0d28gc3VwcGxpZWQgdXVpZCB2YXJpYWJsZXMKKy5JUiB1dTEgIiBhbmQgIiB1dTIKK3RvIGVhY2ggb3RoZXIuCisuU0ggUkVUVVJOIFZBTFVFCitSZXR1cm5zIGFuIGludGVnZXIgbGVzcyB0aGFuLCBlcXVhbCB0bywgb3IgZ3JlYXRlciB0aGFuIHplcm8gaWYKKy5JIHV1MQoraXMgZm91bmQsICByZXNwZWN0aXZlbHksIHRvIGJlIGxleGlncmFwaGljYWxseSBsZXNzIHRoYW4sIGVxdWFsLCBvcgorZ3JlYXRlciB0aGFuCisuSVIgdXUyIC4KKy5TSCBBVVRIT1IKK1RoZW9kb3JlIFkuIFRzJ28KKy5TSCBBVkFJTEFCSUxJVFkKKy5CIGxpYnV1aWQKK2lzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBzaW5jZSB2ZXJzaW9uIDIuMTUuMSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KKy5TSCAiU0VFIEFMU08iCisuQlIgdXVpZCAoMyksCisuQlIgdXVpZF9jbGVhciAoMyksCisuQlIgdXVpZF9jb3B5ICgzKSwKKy5CUiB1dWlkX2dlbmVyYXRlICgzKSwKKy5CUiB1dWlkX2lzX251bGwgKDMpLAorLkJSIHV1aWRfcGFyc2UgKDMpLAorLkJSIHV1aWRfdW5wYXJzZSAoMykKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkX2NvcHkuMyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkX2NvcHkuMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTZlY2I5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfY29weS4zCkBAIC0wLDAgKzEsNjIgQEAKKy5cIiBDb3B5cmlnaHQgMTk5OSBBbmRyZWFzIERpbGdlciAoYWRpbGdlckBlbmVsLnVjYWxnYXJ5LmNhKQorLlwiCisuXCIgJUJlZ2luLUhlYWRlciUKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisuXCIgICAgaW5jbHVkaW5nIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnRpZXMuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKy5cIiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisuXCIgICAgd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKy5cIiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworLlwiIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorLlwiIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKy5cIiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisuXCIgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKy5cIiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKy5cIiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCisuXCIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisuXCIgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKy5cIiBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBOT1QgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorLlwiIERBTUFHRS4KKy5cIiAlRW5kLUhlYWRlciUKKy5cIgorLlwiIENyZWF0ZWQgIFdlZCBNYXIgMTAgMTc6NDI6MTIgMTk5OSwgQW5kcmVhcyBEaWxnZXIKKy5USCBVVUlEX0NPUFkgMyAiTWF5IDIwMDkiICJ1dGlsLWxpbnV4LW5nIiAiTGlidXVpZCBBUEkiCisuU0ggTkFNRQordXVpZF9jb3B5IFwtIGNvcHkgYSBVVUlEIHZhbHVlCisuU0ggU1lOT1BTSVMKKy5uZgorLkIgI2luY2x1ZGUgPHV1aWQvdXVpZC5oPgorLnNwCisuQkkgInZvaWQgdXVpZF9jb3B5KHV1aWRfdCAiIGRzdCAiLCB1dWlkX3QgIiBzcmMpOworLmZpCisuU0ggREVTQ1JJUFRJT04KK1RoZQorLkIgdXVpZF9jb3B5CitmdW5jdGlvbiBjb3BpZXMgdGhlIFVVSUQgdmFyaWFibGUKKy5JUiBzcmMgIiB0byAiIGRzdCAuCisuU0ggUkVUVVJOIFZBTFVFCitUaGUgY29waWVkIFVVSUQgaXMgcmV0dXJuZWQgaW4gdGhlIGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkKKy5JUiBkc3QgLgorLlNIIEFVVEhPUgorVGhlb2RvcmUgWS4gVHMnbworLlNIIEFWQUlMQUJJTElUWQorLkIgbGlidXVpZAoraXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIHNpbmNlIHZlcnNpb24gMi4xNS4xIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgorLlNIICJTRUUgQUxTTyIKKy5CUiB1dWlkICgzKSwKKy5CUiB1dWlkX2NsZWFyICgzKSwKKy5CUiB1dWlkX2NvbXBhcmUgKDMpLAorLkJSIHV1aWRfZ2VuZXJhdGUgKDMpLAorLkJSIHV1aWRfaXNfbnVsbCAoMyksCisuQlIgdXVpZF9wYXJzZSAoMyksCisuQlIgdXVpZF91bnBhcnNlICgzKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfZ2VuZXJhdGUuMyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkX2dlbmVyYXRlLjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFmNDhmZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkX2dlbmVyYXRlLjMKQEAgLTAsMCArMSwxMDQgQEAKKy5cIiBDb3B5cmlnaHQgMTk5OSBBbmRyZWFzIERpbGdlciAoYWRpbGdlckBlbmVsLnVjYWxnYXJ5LmNhKQorLlwiCisuXCIgJUJlZ2luLUhlYWRlciUKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisuXCIgICAgaW5jbHVkaW5nIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnRpZXMuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKy5cIiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisuXCIgICAgd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKy5cIiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworLlwiIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorLlwiIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKy5cIiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisuXCIgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKy5cIiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKy5cIiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCisuXCIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisuXCIgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKy5cIiBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBOT1QgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorLlwiIERBTUFHRS4KKy5cIiAlRW5kLUhlYWRlciUKKy5cIgorLlwiIENyZWF0ZWQgIFdlZCBNYXIgMTAgMTc6NDI6MTIgMTk5OSwgQW5kcmVhcyBEaWxnZXIKKy5USCBVVUlEX0dFTkVSQVRFIDMgIk1heSAyMDA5IiAidXRpbC1saW51eC1uZyIgIkxpYnV1aWQgQVBJIgorLlNIIE5BTUUKK3V1aWRfZ2VuZXJhdGUsIHV1aWRfZ2VuZXJhdGVfcmFuZG9tLCB1dWlkX2dlbmVyYXRlX3RpbWUgXC0gY3JlYXRlIGEgbmV3IHVuaXF1ZSBVVUlEIHZhbHVlCisuU0ggU1lOT1BTSVMKKy5uZgorLkIgI2luY2x1ZGUgPHV1aWQvdXVpZC5oPgorLnNwCisuQkkgInZvaWQgdXVpZF9nZW5lcmF0ZSh1dWlkX3QgIiBvdXQgKTsKKy5CSSAidm9pZCB1dWlkX2dlbmVyYXRlX3JhbmRvbSh1dWlkX3QgIiBvdXQgKTsKKy5CSSAidm9pZCB1dWlkX2dlbmVyYXRlX3RpbWUodXVpZF90ICIgb3V0ICk7CisuZmkKKy5TSCBERVNDUklQVElPTgorVGhlCisuQiB1dWlkX2dlbmVyYXRlCitmdW5jdGlvbiBjcmVhdGVzIGEgbmV3IHVuaXZlcnNhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIChVVUlEKS4gIFRoZSB1dWlkIHdpbGwKK2JlIGdlbmVyYXRlZCBiYXNlZCBvbiBoaWdoLXF1YWxpdHkgcmFuZG9tbmVzcyBmcm9tCisuSVIgL2Rldi91cmFuZG9tICwKK2lmIGF2YWlsYWJsZS4gIElmIGl0IGlzIG5vdCBhdmFpbGFibGUsIHRoZW4KKy5CIHV1aWRfZ2VuZXJhdGUKK3dpbGwgdXNlIGFuIGFsdGVybmF0aXZlIGFsZ29yaXRobSB3aGljaCB1c2VzIHRoZSBjdXJyZW50IHRpbWUsIHRoZQorbG9jYWwgZXRoZXJuZXQgTUFDIGFkZHJlc3MgKGlmIGF2YWlsYWJsZSksIGFuZCByYW5kb20gZGF0YSBnZW5lcmF0ZWQKK3VzaW5nIGEgcHNldWRvLXJhbmRvbSBnZW5lcmF0b3IuCisuc3AKK1RoZQorLkIgdXVpZF9nZW5lcmF0ZV9yYW5kb20KK2Z1bmN0aW9uIGZvcmNlcyB0aGUgdXNlIG9mIHRoZSBhbGwtcmFuZG9tIFVVSUQgZm9ybWF0LCBldmVuIGlmCithIGhpZ2gtcXVhbGl0eSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciAoaS5lLiwKKy5JUiAvZGV2L3VyYW5kb20gKQoraXMgbm90IGF2YWlsYWJsZSwgaW4gd2hpY2ggY2FzZSBhIHBzZXVkby1yYW5kb20KK2dlbmVyYXRvciB3aWxsIGJlIHN1YnNpdHV0ZWQuICBOb3RlIHRoYXQgdGhlIHVzZSBvZiBhIHBzZXVkby1yYW5kb20KK2dlbmVyYXRvciBtYXkgY29tcHJvbWlzZSB0aGUgdW5pcXVlbmVzcyBvZiBVVUlEJ3MKK2dlbmVyYXRlZCBpbiB0aGlzIGZhc2hpb24uCisuc3AKK1RoZQorLkIgdXVpZF9nZW5lcmF0ZV90aW1lCitmdW5jdGlvbiBmb3JjZXMgdGhlIHVzZSBvZiB0aGUgYWx0ZXJuYXRpdmUgYWxnb3JpdGhtIHdoaWNoIHVzZXMgdGhlCitjdXJyZW50IHRpbWUgYW5kIHRoZSBsb2NhbCBldGhlcm5ldCBNQUMgYWRkcmVzcyAoaWYgYXZhaWxhYmxlKS4KK1RoaXMgYWxnb3JpdGhtIHVzZWQgdG8gYmUgdGhlIGRlZmF1bHQgb25lIHVzZWQgdG8gZ2VuZXJhdGUgVVVJRCwgYnV0CitiZWNhdXNlIG9mIHRoZSB1c2Ugb2YgdGhlIGV0aGVybmV0IE1BQyBhZGRyZXNzLCBpdCBjYW4gbGVhaworaW5mb3JtYXRpb24gYWJvdXQgd2hlbiBhbmQgd2hlcmUgdGhlIFVVSUQgd2FzIGdlbmVyYXRlZC4gIFRoaXMgY2FuIGNhdXNlCitwcml2YWN5IHByb2JsZW1zIGluIHNvbWUgYXBwbGljYXRpb25zLCBzbyB0aGUKKy5CIHV1aWRfZ2VuZXJhdGUKK2Z1bmN0aW9uIG9ubHkgdXNlcyB0aGlzIGFsZ29yaXRobSBpZiBhIGhpZ2gtcXVhbGl0eSBzb3VyY2Ugb2YKK3JhbmRvbW5lc3MgaXMgbm90IGF2YWlsYWJsZS4KKy5zcAorVGhlIFVVSUQgaXMgMTYgYnl0ZXMgKDEyOCBiaXRzKSBsb25nLCB3aGljaCBnaXZlcyBhcHByb3hpbWF0ZWx5IDMuNHgxMF4zOAordW5pcXVlIHZhbHVlcyAodGhlcmUgYXJlIGFwcHJveGltYXRlbHkgMTBeODAgZWxlbW50YXJ5IHBhcnRpY2xlcyBpbgordGhlIHVuaXZlcnNlIGFjY29yZGluZyB0byBDYXJsIFNhZ2FuJ3MKKy5JUiBDb3Ntb3MgKS4KK1RoZSBuZXcgVVVJRCBjYW4gcmVhc29uYWJseSBiZSBjb25zaWRlcmVkIHVuaXF1ZSBhbW9uZyBhbGwgVVVJRHMgY3JlYXRlZAorb24gdGhlIGxvY2FsIHN5c3RlbSwgYW5kIGFtb25nIFVVSURzIGNyZWF0ZWQgb24gb3RoZXIgc3lzdGVtcyBpbiB0aGUgcGFzdAorYW5kIGluIHRoZSBmdXR1cmUuCisuU0ggUkVUVVJOIFZBTFVFCitUaGUgbmV3bHkgY3JlYXRlZCBVVUlEIGlzIHJldHVybmVkIGluIHRoZSBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieQorLklSIG91dCAuCisuU0ggIkNPTkZPUk1JTkcgVE8iCitPU0YgRENFIDEuMQorLlNIIEFVVEhPUgorVGhlb2RvcmUgWS4gVHMnbworLlNIIEFWQUlMQUJJTElUWQorLkIgbGlidXVpZAoraXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIHNpbmNlIHZlcnNpb24gMi4xNS4xIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgorLlNIICJTRUUgQUxTTyIKKy5CUiB1dWlkICgzKSwKKy5CUiB1dWlkZ2VuICgxKSwKKy5CUiB1dWlkX2NsZWFyICgzKSwKKy5CUiB1dWlkX2NvbXBhcmUgKDMpLAorLkJSIHV1aWRfY29weSAoMyksCisuQlIgdXVpZF9pc19udWxsICgzKSwKKy5CUiB1dWlkX3BhcnNlICgzKSwKKy5CUiB1dWlkX3RpbWUgKDMpLAorLkJSIHV1aWRfdW5wYXJzZSAoMykKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkX2lzX251bGwuMyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkX2lzX251bGwuMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjJhMzMwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfaXNfbnVsbC4zCkBAIC0wLDAgKzEsNjIgQEAKKy5cIiBDb3B5cmlnaHQgMTk5OSBBbmRyZWFzIERpbGdlciAoYWRpbGdlckBlbmVsLnVjYWxnYXJ5LmNhKQorLlwiCisuXCIgJUJlZ2luLUhlYWRlciUKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisuXCIgICAgaW5jbHVkaW5nIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnRpZXMuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKy5cIiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisuXCIgICAgd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKy5cIiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworLlwiIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorLlwiIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKy5cIiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisuXCIgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKy5cIiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKy5cIiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCisuXCIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisuXCIgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKy5cIiBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBOT1QgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorLlwiIERBTUFHRS4KKy5cIiAlRW5kLUhlYWRlciUKKy5cIgorLlwiIENyZWF0ZWQgIFdlZCBNYXIgMTAgMTc6NDI6MTIgMTk5OSwgQW5kcmVhcyBEaWxnZXIKKy5USCBVVUlEX0lTX05VTEwgMyAiTWF5IDIwMDkiICJ1dGlsLWxpbnV4LW5nIiAiTGlidXVpZCBBUEkiCisuU0ggTkFNRQordXVpZF9pc19udWxsIFwtIGNvbXBhcmUgdGhlIHZhbHVlIG9mIHRoZSBVVUlEIHRvIHRoZSBOVUxMIHZhbHVlCisuU0ggU1lOT1BTSVMKKy5uZgorLkIgI2luY2x1ZGUgPHV1aWQvdXVpZC5oPgorLnNwCisuQkkgImludCB1dWlkX2lzX251bGwodXVpZF90ICIgdXUgKTsKKy5maQorLlNIIERFU0NSSVBUSU9OCitUaGUKKy5CIHV1aWRfaXNfbnVsbAorZnVuY3Rpb24gY29tcGFyZXMgdGhlIHZhbHVlIG9mIHRoZSBzdXBwbGllZCBVVUlEIHZhcmlhYmxlCisuSSB1dQordG8gdGhlIE5VTEwgdmFsdWUuICBJZiB0aGUgdmFsdWUgaXMgZXF1YWwgdG8gdGhlIE5VTEwgVVVJRCwgMSBpcyByZXR1cm5lZCwKK290aGVyd2lzZSAwIGlzIHJldHVybmVkLgorLlNIIEFVVEhPUgorVGhlb2RvcmUgWS4gVHMnbworLlNIIEFWQUlMQUJJTElUWQorLkIgbGlidXVpZAoraXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIHNpbmNlIHZlcnNpb24gMi4xNS4xIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgorLlNIICJTRUUgQUxTTyIKKy5CUiB1dWlkICgzKSwKKy5CUiB1dWlkX2NsZWFyICgzKSwKKy5CUiB1dWlkX2NvbXBhcmUgKDMpLAorLkJSIHV1aWRfY29weSAoMyksCisuQlIgdXVpZF9nZW5lcmF0ZSAoMyksCisuQlIgdXVpZF90aW1lICgzKSwKKy5CUiB1dWlkX3BhcnNlICgzKSwKKy5CUiB1dWlkX3VucGFyc2UgKDMpCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9tYW4vdXVpZF9wYXJzZS4zIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfcGFyc2UuMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTRmZTRiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfcGFyc2UuMwpAQCAtMCwwICsxLDcxIEBACisuXCIgQ29weXJpZ2h0IDE5OTkgQW5kcmVhcyBEaWxnZXIgKGFkaWxnZXJAZW5lbC51Y2FsZ2FyeS5jYSkKKy5cIgorLlwiICVCZWdpbi1IZWFkZXIlCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgYW5kIHRoZSBlbnRpcmUgcGVybWlzc2lvbiBub3RpY2UgaW4gaXRzIGVudGlyZXR5LAorLlwiICAgIGluY2x1ZGluZyB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50aWVzLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisuXCIgICAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvcgorLlwiICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy5cIgorLlwiIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisuXCIgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKy5cIiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBBTEwgT0YKKy5cIiBXSElDSCBBUkUgSEVSRUJZIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFCisuXCIgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorLlwiIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisuXCIgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SCisuXCIgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorLlwiIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLlwiIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFCisuXCIgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgTk9UIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKy5cIiBEQU1BR0UuCisuXCIgJUVuZC1IZWFkZXIlCisuXCIKKy5cIiBDcmVhdGVkICBXZWQgTWFyIDEwIDE3OjQyOjEyIDE5OTksIEFuZHJlYXMgRGlsZ2VyCisuVEggVVVJRF9QQVJTRSAzICJNYXkgMjAwOSIgInV0aWwtbGludXgtbmciICJMaWJ1dWlkIEFQSSIKKy5TSCBOQU1FCit1dWlkX3BhcnNlIFwtIGNvbnZlcnQgYW4gaW5wdXQgVVVJRCBzdHJpbmcgaW50byBiaW5hcnkgcmVwcmVzZW50YXRpb24KKy5TSCBTWU5PUFNJUworLm5mCisuQiAjaW5jbHVkZSA8dXVpZC91dWlkLmg+Cisuc3AKKy5CSSAiaW50IHV1aWRfcGFyc2UoIGNoYXIgKiIgaW4gIiwgdXVpZF90ICIgdXUgKTsKKy5maQorLlNIIERFU0NSSVBUSU9OCitUaGUKKy5CIHV1aWRfcGFyc2UKK2Z1bmN0aW9uIGNvbnZlcnRzIHRoZSBVVUlEIHN0cmluZyBnaXZlbiBieQorLkkgaW4KK2ludG8gdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbi4gIFRoZSBpbnB1dCBVVUlEIGlzIGEgc3RyaW5nIG9mIHRoZSBmb3JtCisxYjRlMjhiYVwtMmZhMVwtMTFkMlwtODgzZlwtYjlhNzYxYmRlM2ZiIChpbgorLkJSIHByaW50ZiAoMykKK2Zvcm1hdCAiJTA4eFwtJTA0eFwtJTA0eFwtJTA0eFwtJTAxMngiLCAzNiBieXRlcyBwbHVzIHRoZSB0cmFpbGluZyAnXFwwJykuCisuU0ggUkVUVVJOIFZBTFVFCitVcG9uIHN1Y2Nlc3NmdWxseSBwYXJzaW5nIHRoZSBpbnB1dCBzdHJpbmcsIDAgaXMgcmV0dXJuZWQsIGFuZCB0aGUgVVVJRCBpcworc3RvcmVkIGluIHRoZSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5CisuSVIgdXUgLAorb3RoZXJ3aXNlIFwtMSBpcyByZXR1cm5lZC4KKy5TSCAiQ09ORk9STUlORyBUTyIKK09TRiBEQ0UgMS4xCisuU0ggQVVUSE9SCitUaGVvZG9yZSBZLiBUcydvCisuU0ggQVZBSUxBQklMSVRZCisuQiBsaWJ1dWlkCitpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2Ugc2luY2UgdmVyc2lvbiAyLjE1LjEgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisuU0ggIlNFRSBBTFNPIgorLkJSIHV1aWQgKDMpLAorLkJSIHV1aWRfY2xlYXIgKDMpLAorLkJSIHV1aWRfY29tcGFyZSAoMyksCisuQlIgdXVpZF9jb3B5ICgzKSwKKy5CUiB1dWlkX2dlbmVyYXRlICgzKSwKKy5CUiB1dWlkX2lzX251bGwgKDMpLAorLkJSIHV1aWRfdGltZSAoMyksCisuQlIgdXVpZF91bnBhcnNlICgzKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfdGltZS4zIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfdGltZS4zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlODBlZDYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9tYW4vdXVpZF90aW1lLjMKQEAgLTAsMCArMSw3NCBAQAorLlwiIENvcHlyaWdodCAxOTk5IEFuZHJlYXMgRGlsZ2VyIChhZGlsZ2VyQGVuZWwudWNhbGdhcnkuY2EpCisuXCIKKy5cIiAlQmVnaW4tSGVhZGVyJQorLlwiIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLlwiIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLlwiIGFyZSBtZXQ6CisuXCIgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIGFuZCB0aGUgZW50aXJlIHBlcm1pc3Npb24gbm90aWNlIGluIGl0cyBlbnRpcmV0eSwKKy5cIiAgICBpbmNsdWRpbmcgdGhlIGRpc2NsYWltZXIgb2Ygd2FycmFudGllcy4KKy5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLlwiIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZQorLlwiICAgIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3IKKy5cIiAgICB3cml0dGVuIHBlcm1pc3Npb24uCisuXCIKKy5cIiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorLlwiIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisuXCIgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgQUxMIE9GCisuXCIgV0hJQ0ggQVJFIEhFUkVCWSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRQorLlwiIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKy5cIiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorLlwiIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUgorLlwiIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKKy5cIiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy5cIiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQorLlwiIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIE5PVCBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisuXCIgREFNQUdFLgorLlwiICVFbmQtSGVhZGVyJQorLlwiCisuXCIgQ3JlYXRlZCAgV2VkIE1hciAxMCAxNzo0MjoxMiAxOTk5LCBBbmRyZWFzIERpbGdlcgorLlRIIFVVSURfVElNRSAzICJNYXkgMjAwOSIgInV0aWwtbGludXgtbmciICJMaWJ1dWlkIEFQSSIKKy5TSCBOQU1FCit1dWlkX3RpbWUgXC0gZXh0cmFjdCB0aGUgdGltZSBhdCB3aGljaCB0aGUgVVVJRCB3YXMgY3JlYXRlZAorLlNIIFNZTk9QU0lTCisubmYKKy5CICNpbmNsdWRlIDx1dWlkL3V1aWQuaD4KKy5zcAorLkJJICJ0aW1lX3QgdXVpZF90aW1lKHV1aWRfdCAiIHV1ICIsIHN0cnVjdCB0aW1ldmFsICoiIHJldF90diApCisuZmkKKy5TSCBERVNDUklQVElPTgorVGhlCisuQiB1dWlkX3RpbWUKK2Z1bmN0aW9uIGV4dHJhY3RzIHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBzdXBwbGllZCB0aW1lLWJhc2VkIFVVSUQKKy5JIHV1Cit3YXMgY3JlYXRlZC4gIE5vdGUgdGhhdCB0aGUgVVVJRCBjcmVhdGlvbiB0aW1lIGlzIG9ubHkgZW5jb2RlZCB3aXRoaW4KK2NlcnRhaW4gdHlwZXMgb2YgVVVJRHMuICBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IHJlYXNvbmFibHkgZXhwZWN0IHRvCitleHRyYWN0IHRoZSBjcmVhdGlvbiB0aW1lIGZvciBVVUlEcyBjcmVhdGVkIHdpdGggdGhlCisuQlIgdXVpZF9nZW5lcmF0ZV90aW1lICgzKQorZnVuY3Rpb24uICBJdCBtYXkgb3IgbWF5IG5vdCB3b3JrIHdpdGggVVVJRHMgY3JlYXRlZCBieSBvdGhlciBtZWNoYW5pc21zLgorLlNIICJSRVRVUk4gVkFMVUVTIgorVGhlIHRpbWUgYXQgd2hpY2ggdGhlIFVVSUQgd2FzIGNyZWF0ZWQsIGluIHNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwIEdNVAorKHRoZSBlcG9jaCksIGlzIHJldHVybmVkIChzZWUKKy5CUiB0aW1lICIoMikpLiIKK1RoZSB0aW1lIGF0IHdoaWNoIHRoZSBVVUlEIHdhcyBjcmVhdGVkLCBpbiBzZWNvbmRzIGFuZCBtaWNyb3NlY29uZHMgc2luY2UKK3RoZSBlcG9jaCwgaXMgYWxzbyBzdG9yZWQgaW4gdGhlIGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkKKy5JIHJldF90dgorKHNlZQorLkJSIGdldHRpbWVvZmRheSAiKDIpKS4iCisuU0ggQVVUSE9SCitUaGVvZG9yZSBZLiBUcydvCisuU0ggQVZBSUxBQklMSVRZCisuQiBsaWJ1dWlkCitpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2Ugc2luY2UgdmVyc2lvbiAyLjE1LjEgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisuU0ggIlNFRSBBTFNPIgorLkJSIHV1aWQgKDMpLAorLkJSIHV1aWRfY2xlYXIgKDMpLAorLkJSIHV1aWRfY29tcGFyZSAoMyksCisuQlIgdXVpZF9jb3B5ICgzKSwKKy5CUiB1dWlkX2dlbmVyYXRlICgzKSwKKy5CUiB1dWlkX2lzX251bGwgKDMpLAorLkJSIHV1aWRfcGFyc2UgKDMpLAorLkJSIHV1aWRfdW5wYXJzZSAoMykKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkX3VucGFyc2UuMyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL21hbi91dWlkX3VucGFyc2UuMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjJkMjRiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvbWFuL3V1aWRfdW5wYXJzZS4zCkBAIC0wLDAgKzEsNzkgQEAKKy5cIiBDb3B5cmlnaHQgMTk5OSBBbmRyZWFzIERpbGdlciAoYWRpbGdlckBlbmVsLnVjYWxnYXJ5LmNhKQorLlwiCisuXCIgJUJlZ2luLUhlYWRlciUKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisuXCIgICAgaW5jbHVkaW5nIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnRpZXMuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKy5cIiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisuXCIgICAgd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKy5cIiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworLlwiIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorLlwiIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKy5cIiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisuXCIgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKy5cIiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKy5cIiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCisuXCIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisuXCIgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKy5cIiBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBOT1QgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorLlwiIERBTUFHRS4KKy5cIiAlRW5kLUhlYWRlciUKKy5cIgorLlwiIENyZWF0ZWQgIFdlZCBNYXIgMTAgMTc6NDI6MTIgMTk5OSwgQW5kcmVhcyBEaWxnZXIKKy5USCBVVUlEX1VOUEFSU0UgMyAiTWF5IDIwMDkiICJ1dGlsLWxpbnV4LW5nIiAiTGlidXVpZCBBUEkiCisuU0ggTkFNRQordXVpZF91bnBhcnNlIFwtIGNvbnZlcnQgYW4gVVVJRCBmcm9tIGJpbmFyeSByZXByZXNlbnRhdGlvbiB0byBhIHN0cmluZworLlNIIFNZTk9QU0lTCisubmYKKy5CICNpbmNsdWRlIDx1dWlkL3V1aWQuaD4KKy5zcAorLkJJICJ2b2lkIHV1aWRfdW5wYXJzZSh1dWlkX3QgIiB1dSAiLCBjaGFyICoiIG91dCApOworLkJJICJ2b2lkIHV1aWRfdW5wYXJzZV91cHBlcih1dWlkX3QgIiB1dSAiLCBjaGFyICoiIG91dCApOworLkJJICJ2b2lkIHV1aWRfdW5wYXJzZV9sb3dlcih1dWlkX3QgIiB1dSAiLCBjaGFyICoiIG91dCApOworLmZpCisuU0ggREVTQ1JJUFRJT04KK1RoZQorLkIgdXVpZF91bnBhcnNlCitmdW5jdGlvbiBjb252ZXJ0cyB0aGUgc3VwcGxpZWQgVVVJRAorLkkgdXUKK2Zyb20gdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBpbnRvIGEgMzZcLWJ5dGUgc3RyaW5nIChwbHVzIHRhaWxpbmcgJ1xcMCcpCitvZiB0aGUgZm9ybSAxYjRlMjhiYVwtMmZhMVwtMTFkMlwtODgzZlwtMDAxNmQzY2NhNDI3IGFuZCBzdG9yZXMgdGhpcwordmFsdWUgaW4gdGhlIGNoYXJhY3RlciBzdHJpbmcgcG9pbnRlZCB0byBieQorLklSIG91dCAuCitUaGUgY2FzZSBvZiB0aGUgaGV4IGRpZ2l0cyByZXR1cm5lZCBieQorLkIgdXVpZF91bnBhcnNlCittYXkgYmUgdXBwZXIgb3IgbG93ZXIgY2FzZSwgYW5kIGlzCitkZXBlbmRlbnQgb24gdGhlIHN5c3RlbS1kZXBlbmRlbnQgbG9jYWwgZGVmYXVsdC4KKy5QUAorSWYgdGhlIGNhc2Ugb2YgdGhlCitoZXggZGlnaXRzIGlzIGltcG9ydGFudCB0aGVuIHRoZSBmdW5jdGlvbnMKKy5CIHV1aWRfdW5wYXJzZV91cHBlcgorYW5kCisuQiB1dWlkX3VucGFyc2VfbG93ZXIKK21heSBiZSB1c2VkLgorLlNIICJDT05GT1JNSU5HIFRPIgorT1NGIERDRSAxLjEKKy5TSCBBVVRIT1IKK1RoZW9kb3JlIFkuIFRzJ28KKy5TSCBBVkFJTEFCSUxJVFkKKy5CIGxpYnV1aWQKK2lzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBzaW5jZSB2ZXJzaW9uIDIuMTUuMSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KKy5TSCAiU0VFIEFMU08iCisuQlIgdXVpZCAoMyksCisuQlIgdXVpZF9jbGVhciAoMyksCisuQlIgdXVpZF9jb21wYXJlICgzKSwKKy5CUiB1dWlkX2NvcHkgKDMpLAorLkJSIHV1aWRfZ2VuZXJhdGUgKDMpLAorLkJSIHV1aWRfdGltZSAoMyksCisuQlIgdXVpZF9pc19udWxsICgzKSwKKy5CUiB1dWlkX3BhcnNlICgzKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZjE5NzkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwzOCBAQAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCisKK0FNX0NQUEZMQUdTICs9IC1JJCh1bF9saWJ1dWlkX3NyY2RpcikKKworbm9pbnN0X1BST0dSQU1TID0gdHN0X3V1aWQKK3RzdF91dWlkX0xEQUREID0gbGlidXVpZC5sYSAjJCh1bF9saWJ1dWlkX2xhKQorCisjIGluY2x1ZGVzCit1dWlkaW5jZGlyID0gJChpbmNsdWRlZGlyKS91dWlkCit1dWlkaW5jX0hFQURFUlMgPSB1dWlkLmgKKwordXNybGliX2V4ZWNfTFRMSUJSQVJJRVMgPSBsaWJ1dWlkLmxhCitsaWJ1dWlkX2xhX1NPVVJDRVMgPSBjbGVhci5jIGNvbXBhcmUuYyBjb3B5LmMgZ2VuX3V1aWQuYyBcCisgICAgICAgICAgIGlzbnVsbC5jIHBhY2suYyBwYXJzZS5jIHVucGFjay5jIHVucGFyc2UuYyB1dWlkZC5oIFwKKyAgICAgICAgICAgdXVpZGQuaCB1dWlkUC5oIHV1aWRfdGltZS5jICQodXVpZGluY19IRUFERVJTKQorCitsaWJ1dWlkX2xhX0RFUEVOREVOQ0lFUyA9IHV1aWQuc3ltCisKK2xpYnV1aWRfbGFfTERGTEFHUyA9IC1XbCwtLXZlcnNpb24tc2NyaXB0PSQodWxfbGlidXVpZF9zcmNkaXIpL3V1aWQuc3ltIFwKKyAgICAgICAgICAgICAgICAgICAgIC12ZXJzaW9uLWluZm8gJChMSUJVVUlEX1ZFUlNJT05fSU5GTykKKworRVhUUkFfRElTVCA9IHV1aWQuc3ltIGdlbl91dWlkX250LmMKKworIyBtb3ZlIGxpYiBmcm9tICQodXNybGliX2V4ZWNkaXIpIHRvICQobGliZGlyKSBpZiBuZWVkZWQKK2luc3RhbGwtZXhlYy1ob29rOgorCWlmIHRlc3QgIiQodXNybGliX2V4ZWNkaXIpIiAhPSAiJChsaWJkaXIpIjsgdGhlbiBcCisJCW1rZGlyIC1wICQoREVTVERJUikkKGxpYmRpcik7IFwKKwkJbXYgJChERVNURElSKSQodXNybGliX2V4ZWNkaXIpL2xpYnV1aWQuc28uKiAkKERFU1RESVIpJChsaWJkaXIpOyBcCisJCXNvX2ltZ19uYW1lPSQkKHJlYWRsaW5rICQoREVTVERJUikkKHVzcmxpYl9leGVjZGlyKS9saWJ1dWlkLnNvKTsgXAorCQlzb19pbWdfcmVsX3RhcmdldD0kJChlY2hvICQodXNybGliX2V4ZWNkaXIpIHwgc2VkICdzLFwoXi9cfFwpW14vXVteL10qLC4uLGcnKTsgXAorCQkoY2QgJChERVNURElSKSQodXNybGliX2V4ZWNkaXIpICYmIFwKKwkJCXJtIC1mIGxpYnV1aWQuc28gJiYgXAorCQkJJChMTl9TKSAkJHNvX2ltZ19yZWxfdGFyZ2V0JChsaWJkaXIpLyQkc29faW1nX25hbWUgbGlidXVpZC5zbyk7IFwKKwlmaQorCit1bmluc3RhbGwtaG9vazoKKwlybSAtZiAkKERFU1RESVIpJChsaWJkaXIpL2xpYnV1aWQuc28qCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDlhNDk2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsNzAxIEBACisjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKworIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgorIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworQFNFVF9NQUtFQAorCisKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoZGlzdF9ub2luc3RfREFUQSkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSBcCisJJCh1dWlkaW5jX0hFQURFUlMpCitub2luc3RfUFJPR1JBTVMgPSB0c3RfdXVpZCQoRVhFRVhUKQorc3ViZGlyID0gc2hsaWJzL3V1aWQvc3JjCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9nZXR0ZXh0Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2d0ay1kb2MubTQgJCh0b3Bfc3JjZGlyKS9tNC9pY29udi5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItbGQubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWItbGluay5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItcHJlZml4Lm00ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L25scy5tNCAkKHRvcF9zcmNkaXIpL200L3BvLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L3Byb2d0ZXN0Lm00ICQodG9wX3NyY2RpcikvbTQvdGxzLm00IFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvbWtpbnN0YWxsZGlycworQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9jb25maWcuaAorQ09ORklHX0NMRUFOX0ZJTEVTID0KK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQodXNybGliX2V4ZWNkaXIpIiBcCisJIiQoREVTVERJUikkKHV1aWRpbmNkaXIpIgorTFRMSUJSQVJJRVMgPSAkKHVzcmxpYl9leGVjX0xUTElCUkFSSUVTKQorbGlidXVpZF9sYV9MSUJBREQgPQorYW1fX29iamVjdHNfMSA9CithbV9saWJ1dWlkX2xhX09CSkVDVFMgPSBjbGVhci5sbyBjb21wYXJlLmxvIGNvcHkubG8gZ2VuX3V1aWQubG8gXAorCWlzbnVsbC5sbyBwYWNrLmxvIHBhcnNlLmxvIHVucGFjay5sbyB1bnBhcnNlLmxvIHV1aWRfdGltZS5sbyBcCisJJChhbV9fb2JqZWN0c18xKQorbGlidXVpZF9sYV9PQkpFQ1RTID0gJChhbV9saWJ1dWlkX2xhX09CSkVDVFMpCitBTV9WX2x0ID0gJChhbV9fdl9sdF8kKFYpKQorYW1fX3ZfbHRfID0gJChhbV9fdl9sdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2x0XzAgPSAtLXNpbGVudAorbGlidXVpZF9sYV9MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChsaWJ1dWlkX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK1BST0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCit0c3RfdXVpZF9TT1VSQ0VTID0gdHN0X3V1aWQuYwordHN0X3V1aWRfT0JKRUNUUyA9IHRzdF91dWlkLiQoT0JKRVhUKQordHN0X3V1aWRfREVQRU5ERU5DSUVTID0gbGlidXVpZC5sYQorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSAkKGxpYnV1aWRfbGFfU09VUkNFUykgdHN0X3V1aWQuYworRElTVF9TT1VSQ0VTID0gJChsaWJ1dWlkX2xhX1NPVVJDRVMpIHRzdF91dWlkLmMKK0RBVEEgPSAkKGRpc3Rfbm9pbnN0X0RBVEEpCitIRUFERVJTID0gJCh1dWlkaW5jX0hFQURFUlMpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBTV9ERUZBVUxUX1ZFUkJPU0lUWSA9IEBBTV9ERUZBVUxUX1ZFUkJPU0lUWUAKK0FSID0gQEFSQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCTEtJRF9DRkxBR1MgPSBAQkxLSURfQ0ZMQUdTQAorQkxLSURfTElCUyA9IEBCTEtJRF9MSUJTQAorQkxLSURfTElCU19TVEFUSUMgPSBAQkxLSURfTElCU19TVEFUSUNACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorR01TR0ZNVCA9IEBHTVNHRk1UQAorR1JFUCA9IEBHUkVQQAorR1RLRE9DX0NIRUNLID0gQEdUS0RPQ19DSEVDS0AKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitJTlRMTElCUyA9IEBJTlRMTElCU0AKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCQkxLSURfREFURSA9IEBMSUJCTEtJRF9EQVRFQAorTElCQkxLSURfVkVSU0lPTiA9IEBMSUJCTEtJRF9WRVJTSU9OQAorTElCQkxLSURfVkVSU0lPTl9JTkZPID0gQExJQkJMS0lEX1ZFUlNJT05fSU5GT0AKK0xJQklDT05WID0gQExJQklDT05WQAorTElCSU5UTCA9IEBMSUJJTlRMQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCVVVJRF9WRVJTSU9OID0gQExJQlVVSURfVkVSU0lPTkAKK0xJQlVVSURfVkVSU0lPTl9JTkZPID0gQExJQlVVSURfVkVSU0lPTl9JTkZPQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJJQ09OViA9IEBMVExJQklDT05WQAorTFRMSUJJTlRMID0gQExUTElCSU5UTEAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01LSU5TVEFMTERJUlMgPSBATUtJTlNUQUxMRElSU0AKK01TR0ZNVCA9IEBNU0dGTVRACitNU0dNRVJHRSA9IEBNU0dNRVJHRUAKK05DVVJTRVNfTElCUyA9IEBOQ1VSU0VTX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQS0dfQ09ORklHID0gQFBLR19DT05GSUdACitQT1NVQiA9IEBQT1NVQkAKK1JBTkxJQiA9IEBSQU5MSUJACitTRUQgPSBAU0VEQAorU0VMSU5VWF9MSUJTID0gQFNFTElOVVhfTElCU0AKK1NFTElOVVhfTElCU19TVEFUSUMgPSBAU0VMSU5VWF9MSUJTX1NUQVRJQ0AKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVSURfQ0ZMQUdTID0gQFNVSURfQ0ZMQUdTQAorU1VJRF9MREZMQUdTID0gQFNVSURfTERGTEFHU0AKK1VTRV9OTFMgPSBAVVNFX05MU0AKK1VVSURfQ0ZMQUdTID0gQFVVSURfQ0ZMQUdTQAorVVVJRF9MSUJTID0gQFVVSURfTElCU0AKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1hHRVRURVhUID0gQFhHRVRURVhUQAorWFNMVFBST0MgPSBAWFNMVFBST0NACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmRpcm5hbWUgPSBAbGliZGlybmFtZUAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAordXNyYmluX2V4ZWNkaXIgPSBAdXNyYmluX2V4ZWNkaXJACit1c3JsaWJfZXhlY2RpciA9IEB1c3JsaWJfZXhlY2RpckAKK3VzcnNiaW5fZXhlY2RpciA9IEB1c3JzYmluX2V4ZWNkaXJACitBTV9DUFBGTEFHUyA9IC1pbmNsdWRlICQodG9wX2J1aWxkZGlyKS9jb25maWcuaCBcCisJLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLURMT0NBTEVESVI9XCIkKGxvY2FsZWRpcilcIiBcCisJLUkkKHVsX2xpYnV1aWRfc3JjZGlyKQorQU1fQ0ZMQUdTID0gLWZzaWduZWQtY2hhcgorQU1fTERGTEFHUyA9IAorCisjIEF1dG9tYWtlIChhdCBsZWFzdCB1cCB0byAxLjEwKSBtaXNoYW5kbGVzIGRpc3RfbWFuX01BTlMgaW5zaWRlIGNvbmRpdGlvbmFscy4KKyMgVW5saWtlIHdpdGggb3RoZXIgZGlzdCBwcmltYXJpZXMsIHRoZSBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVkIGlmIHRoZQorIyBjb25kaXRpb25hbCBpcyBmYWxzZS4KKyMgV29yayB0aGUgYnVnIGFyb3VuZCB1bnRpbCBpdCBpcyBmaXhlZDoKK2Rpc3Rfbm9pbnN0X0RBVEEgPSAkKGRpc3RfbWFuX01BTlMpCisKKyMgUGF0aHMgdG8gaW4tdHJlZSBsaWJyYXJpZXMgKHVzZSB1bF8gcHJlZml4IHRvIGF2b2lkIHBvc3NpYmxlIGNvbGxpc2lvbnMpCisjCisjIGJsa2lkCit1bF9saWJibGtpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2J1aWxkZGlyID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMKK3VsX2xpYmJsa2lkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy9ibGtpZC9zcmMvbGliYmxraWQubGEKKworIyBibGtpZC5oIGlzIGdlbmVyYXRlZCBieSAuL2NvbmZpZ3VyZSBzY3JpcHQgYW5kIHN0b3JlZCBpbiBidWlsZCBkaXJlY3RvcnkKK3VsX2xpYmJsa2lkX2luY2RpciA9ICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyMgdXVpZAordWxfbGlidXVpZF9zcmNkaXIgPSAkKHRvcF9zcmNkaXIpL3NobGlicy91dWlkL3NyYwordWxfbGlidXVpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfbGEgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjL2xpYnV1aWQubGEKK3RzdF91dWlkX0xEQUREID0gbGlidXVpZC5sYSAjJCh1bF9saWJ1dWlkX2xhKQorCisjIGluY2x1ZGVzCit1dWlkaW5jZGlyID0gJChpbmNsdWRlZGlyKS91dWlkCit1dWlkaW5jX0hFQURFUlMgPSB1dWlkLmgKK3VzcmxpYl9leGVjX0xUTElCUkFSSUVTID0gbGlidXVpZC5sYQorbGlidXVpZF9sYV9TT1VSQ0VTID0gY2xlYXIuYyBjb21wYXJlLmMgY29weS5jIGdlbl91dWlkLmMgXAorICAgICAgICAgICBpc251bGwuYyBwYWNrLmMgcGFyc2UuYyB1bnBhY2suYyB1bnBhcnNlLmMgdXVpZGQuaCBcCisgICAgICAgICAgIHV1aWRkLmggdXVpZFAuaCB1dWlkX3RpbWUuYyAkKHV1aWRpbmNfSEVBREVSUykKKworbGlidXVpZF9sYV9ERVBFTkRFTkNJRVMgPSB1dWlkLnN5bQorbGlidXVpZF9sYV9MREZMQUdTID0gLVdsLC0tdmVyc2lvbi1zY3JpcHQ9JCh1bF9saWJ1dWlkX3NyY2RpcikvdXVpZC5zeW0gXAorICAgICAgICAgICAgICAgICAgICAgLXZlcnNpb24taW5mbyAkKExJQlVVSURfVkVSU0lPTl9JTkZPKQorCitFWFRSQV9ESVNUID0gdXVpZC5zeW0gZ2VuX3V1aWRfbnQuYworYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIHNobGlicy91dWlkL3NyYy9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc2hsaWJzL3V1aWQvc3JjL01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKK2luc3RhbGwtdXNybGliX2V4ZWNMVExJQlJBUklFUzogJCh1c3JsaWJfZXhlY19MVExJQlJBUklFUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHVzcmxpYl9leGVjZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQodXNybGliX2V4ZWNkaXIpIgorCUBsaXN0PSckKHVzcmxpYl9leGVjX0xUTElCUkFSSUVTKSc7IHRlc3QgLW4gIiQodXNybGliX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBcCisJICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKKwkgIGVsc2UgOjsgZmk7IFwKKwlkb25lOyBcCisJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCisJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikkKHVzcmxpYl9leGVjZGlyKSciOyBcCisJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAiJChERVNURElSKSQodXNybGliX2V4ZWNkaXIpIjsgXAorCX0KKwordW5pbnN0YWxsLXVzcmxpYl9leGVjTFRMSUJSQVJJRVM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJCh1c3JsaWJfZXhlY19MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKHVzcmxpYl9leGVjZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgICQoYW1fX3N0cmlwX2RpcikgXAorCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJCh1c3JsaWJfZXhlY2RpcikvJCRmJyI7IFwKKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICIkKERFU1RESVIpJCh1c3JsaWJfZXhlY2RpcikvJCRmIjsgXAorCWRvbmUKKworY2xlYW4tdXNybGliX2V4ZWNMVExJQlJBUklFUzoKKwktdGVzdCAteiAiJCh1c3JsaWJfZXhlY19MVExJQlJBUklFUykiIHx8IHJtIC1mICQodXNybGliX2V4ZWNfTFRMSUJSQVJJRVMpCisJQGxpc3Q9JyQodXNybGliX2V4ZWNfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKwlkb25lCitsaWJ1dWlkLmxhOiAkKGxpYnV1aWRfbGFfT0JKRUNUUykgJChsaWJ1dWlkX2xhX0RFUEVOREVOQ0lFUykgCisJJChBTV9WX0NDTEQpJChsaWJ1dWlkX2xhX0xJTkspIC1ycGF0aCAkKHVzcmxpYl9leGVjZGlyKSAkKGxpYnV1aWRfbGFfT0JKRUNUUykgJChsaWJ1dWlkX2xhX0xJQkFERCkgJChMSUJTKQorCitjbGVhbi1ub2luc3RQUk9HUkFNUzoKKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0Cit0c3RfdXVpZCQoRVhFRVhUKTogJCh0c3RfdXVpZF9PQkpFQ1RTKSAkKHRzdF91dWlkX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRzdF91dWlkJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHRzdF91dWlkX09CSkVDVFMpICQodHN0X3V1aWRfTERBREQpICQoTElCUykKKworbW9zdGx5Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi4kKE9CSkVYVCkKKworZGlzdGNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICoudGFiLmMKKworQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2NsZWFyLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY29tcGFyZS5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2NvcHkuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9nZW5fdXVpZC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2lzbnVsbC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3BhY2suUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9wYXJzZS5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3RzdF91dWlkLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bnBhY2suUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bnBhcnNlLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdXVpZF90aW1lLlBsb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoTFRDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworaW5zdGFsbC11dWlkaW5jSEVBREVSUzogJCh1dWlkaW5jX0hFQURFUlMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJCh1dWlkaW5jZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQodXVpZGluY2RpcikiCisJQGxpc3Q9JyQodXVpZGluY19IRUFERVJTKSc7IHRlc3QgLW4gIiQodXVpZGluY2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgXAorCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIGVjaG8gIiAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIpJCh1dWlkaW5jZGlyKSciOyBcCisJICAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICIkKERFU1RESVIpJCh1dWlkaW5jZGlyKSIgfHwgZXhpdCAkJD87IFwKKwlkb25lCisKK3VuaW5zdGFsbC11dWlkaW5jSEVBREVSUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKHV1aWRpbmNfSEVBREVSUyknOyB0ZXN0IC1uICIkKHV1aWRpbmNkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHV1aWRpbmNkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQodXVpZGluY2RpcikiICYmIHJtIC1mICQkZmlsZXMKKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChQUk9HUkFNUykgJChEQVRBKSAkKEhFQURFUlMpCitpbnN0YWxsZGlyczoKKwlmb3IgZGlyIGluICIkKERFU1RESVIpJCh1c3JsaWJfZXhlY2RpcikiICIkKERFU1RESVIpJCh1dWlkaW5jZGlyKSI7IGRvIFwKKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKKwlkb25lCitpbnN0YWxsOiBpbnN0YWxsLWFtCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAorCWNsZWFuLXVzcmxpYl9leGVjTFRMSUJSQVJJRVMgbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtdXVpZGluY0hFQURFUlMKKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtdXNybGliX2V4ZWNMVExJQlJBUklFUworCUAkKE5PUk1BTF9JTlNUQUxMKQorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1ob29rCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisKK2luc3RhbGwtaW5mby1hbToKKworaW5zdGFsbC1tYW46CisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06IHVuaW5zdGFsbC11c3JsaWJfZXhlY0xUTElCUkFSSUVTIFwKKwl1bmluc3RhbGwtdXVpZGluY0hFQURFUlMKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB1bmluc3RhbGwtaG9vaworLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtc3RyaXAgdW5pbnN0YWxsLWFtCisKKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKKwljbGVhbi11c3JsaWJfZXhlY0xUTElCUkFSSUVTIGN0YWdzIGRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBcCisJZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgXAorCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCisJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWV4ZWMtaG9vayBpbnN0YWxsLWh0bWwgXAorCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorCWluc3RhbGwtc3RyaXAgaW5zdGFsbC11c3JsaWJfZXhlY0xUTElCUkFSSUVTIFwKKwlpbnN0YWxsLXV1aWRpbmNIRUFERVJTIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAorCWluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCBcCisJdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1ob29rIHVuaW5zdGFsbC11c3JsaWJfZXhlY0xUTElCUkFSSUVTIFwKKwl1bmluc3RhbGwtdXVpZGluY0hFQURFUlMKKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKKyMgbW92ZSBsaWIgZnJvbSAkKHVzcmxpYl9leGVjZGlyKSB0byAkKGxpYmRpcikgaWYgbmVlZGVkCitpbnN0YWxsLWV4ZWMtaG9vazoKKwlpZiB0ZXN0ICIkKHVzcmxpYl9leGVjZGlyKSIgIT0gIiQobGliZGlyKSI7IHRoZW4gXAorCQlta2RpciAtcCAkKERFU1RESVIpJChsaWJkaXIpOyBcCisJCW12ICQoREVTVERJUikkKHVzcmxpYl9leGVjZGlyKS9saWJ1dWlkLnNvLiogJChERVNURElSKSQobGliZGlyKTsgXAorCQlzb19pbWdfbmFtZT0kJChyZWFkbGluayAkKERFU1RESVIpJCh1c3JsaWJfZXhlY2RpcikvbGlidXVpZC5zbyk7IFwKKwkJc29faW1nX3JlbF90YXJnZXQ9JCQoZWNobyAkKHVzcmxpYl9leGVjZGlyKSB8IHNlZCAncyxcKF4vXHxcKVteL11bXi9dKiwuLixnJyk7IFwKKwkJKGNkICQoREVTVERJUikkKHVzcmxpYl9leGVjZGlyKSAmJiBcCisJCQlybSAtZiBsaWJ1dWlkLnNvICYmIFwKKwkJCSQoTE5fUykgJCRzb19pbWdfcmVsX3RhcmdldCQobGliZGlyKS8kJHNvX2ltZ19uYW1lIGxpYnV1aWQuc28pOyBcCisJZmkKKwordW5pbnN0YWxsLWhvb2s6CisJcm0gLWYgJChERVNURElSKSQobGliZGlyKS9saWJ1dWlkLnNvKgorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvY2xlYXIuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9jbGVhci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkOTFmZWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvY2xlYXIuYwpAQCAtMCwwICsxLDQzIEBACisvKgorICogY2xlYXIuYyAtLSBDbGVhciBhIFVVSUQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcgVGhlb2RvcmUgVHMnby4KKyAqCisgKiAlQmVnaW4tSGVhZGVyJQorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisgKiAgICBpbmNsdWRpbmcgdGhlIGRpc2NsYWltZXIgb2Ygd2FycmFudGllcy4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisgKiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisgKiAgICB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBBTEwgT0YKKyAqIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKyAqIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKyAqIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIE5PVCBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaW5jbHVkZSAic3RyaW5nLmgiCisKKyNpbmNsdWRlICJ1dWlkUC5oIgorCit2b2lkIHV1aWRfY2xlYXIodXVpZF90IHV1KQoreworCW1lbXNldCh1dSwgMCwgMTYpOworfQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvY29tcGFyZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL2NvbXBhcmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjhhNzI2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL2NvbXBhcmUuYwpAQCAtMCwwICsxLDU1IEBACisvKgorICogY29tcGFyZS5jIC0tLSBjb21wYXJlIHdoZXRoZXIgb3Igbm90IHR3byBVVUlEJ3MgYXJlIHRoZSBzYW1lCisgKgorICogUmV0dXJucyAwIGlmIHRoZSB0d28gVVVJRCdzIGFyZSBkaWZmZXJlbnQsIGFuZCAxIGlmIHRoZXkgYXJlIHRoZSBzYW1lLgorICoKKyAqIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NyBUaGVvZG9yZSBUcydvLgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIGFuZCB0aGUgZW50aXJlIHBlcm1pc3Npb24gbm90aWNlIGluIGl0cyBlbnRpcmV0eSwKKyAqICAgIGluY2x1ZGluZyB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50aWVzLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKyAqICAgIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3IKKyAqICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorICogV0hJQ0ggQVJFIEhFUkVCWSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUgorICogQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQorICogVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgTk9UIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqICVFbmQtSGVhZGVyJQorICovCisKKyNpbmNsdWRlICJ1dWlkUC5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjZGVmaW5lIFVVQ01QKHUxLHUyKSBpZiAodTEgIT0gdTIpIHJldHVybigodTEgPCB1MikgPyAtMSA6IDEpOworCitpbnQgdXVpZF9jb21wYXJlKGNvbnN0IHV1aWRfdCB1dTEsIGNvbnN0IHV1aWRfdCB1dTIpCit7CisJc3RydWN0IHV1aWQJdXVpZDEsIHV1aWQyOworCisJdXVpZF91bnBhY2sodXUxLCAmdXVpZDEpOworCXV1aWRfdW5wYWNrKHV1MiwgJnV1aWQyKTsKKworCVVVQ01QKHV1aWQxLnRpbWVfbG93LCB1dWlkMi50aW1lX2xvdyk7CisJVVVDTVAodXVpZDEudGltZV9taWQsIHV1aWQyLnRpbWVfbWlkKTsKKwlVVUNNUCh1dWlkMS50aW1lX2hpX2FuZF92ZXJzaW9uLCB1dWlkMi50aW1lX2hpX2FuZF92ZXJzaW9uKTsKKwlVVUNNUCh1dWlkMS5jbG9ja19zZXEsIHV1aWQyLmNsb2NrX3NlcSk7CisJcmV0dXJuIG1lbWNtcCh1dWlkMS5ub2RlLCB1dWlkMi5ub2RlLCA2KTsKK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL2NvcHkuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9jb3B5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFkMzNhYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9jb3B5LmMKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIGNvcHkuYyAtLS0gY29weSBVVUlEcworICoKKyAqIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NyBUaGVvZG9yZSBUcydvLgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIGFuZCB0aGUgZW50aXJlIHBlcm1pc3Npb24gbm90aWNlIGluIGl0cyBlbnRpcmV0eSwKKyAqICAgIGluY2x1ZGluZyB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50aWVzLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKyAqICAgIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3IKKyAqICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorICogV0hJQ0ggQVJFIEhFUkVCWSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUgorICogQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQorICogVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgTk9UIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqICVFbmQtSGVhZGVyJQorICovCisKKyNpbmNsdWRlICJ1dWlkUC5oIgorCit2b2lkIHV1aWRfY29weSh1dWlkX3QgZHN0LCBjb25zdCB1dWlkX3Qgc3JjKQoreworCXVuc2lnbmVkIGNoYXIJCSpjcDE7CisJY29uc3QgdW5zaWduZWQgY2hhcgkqY3AyOworCWludAkJCWk7CisKKwlmb3IgKGk9MCwgY3AxID0gZHN0LCBjcDIgPSBzcmM7IGkgPCAxNjsgaSsrKQorCQkqY3AxKysgPSAqY3AyKys7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvZ2VuX3V1aWQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9nZW5fdXVpZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MGJkOGUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvZ2VuX3V1aWQuYwpAQCAtMCwwICsxLDY3OCBAQAorLyoKKyAqIGdlbl91dWlkLmMgLS0tIGdlbmVyYXRlIGEgRENFLWNvbXBhdGlibGUgdXVpZAorICoKKyAqIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSBUaGVvZG9yZSBUcydvLgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIGFuZCB0aGUgZW50aXJlIHBlcm1pc3Npb24gbm90aWNlIGluIGl0cyBlbnRpcmV0eSwKKyAqICAgIGluY2x1ZGluZyB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50aWVzLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKyAqICAgIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3IKKyAqICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorICogV0hJQ0ggQVJFIEhFUkVCWSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUgorICogQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQorICogVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgTk9UIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqICVFbmQtSGVhZGVyJQorICovCisKKy8qCisgKiBGb3JjZSBpbmNsdXNpb24gb2YgU1ZJRCBzdHVmZiBzaW5jZSB3ZSBuZWVkIGl0IGlmIHdlJ3JlIGNvbXBpbGluZyBpbgorICogZ2NjLXdhbGwgd2FsbCBtb2RlCisgKi8KKyNkZWZpbmUgX1NWSURfU09VUkNFCisKKyNpZmRlZiBfV0lOMzIKKyNkZWZpbmUgX1dJTjMyX1dJTk5UIDB4MDUwMAorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNkZWZpbmUgVVVJRCBNWVVVSUQKKyNlbmRpZgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaWZkZWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lmZGVmIEhBVkVfU1lTX1RJTUVfSAorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaWZkZWYgSEFWRV9TWVNfRklMRV9ICisjaW5jbHVkZSA8c3lzL2ZpbGUuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX0lPQ1RMX0gKKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfVU5fSAorI2luY2x1ZGUgPHN5cy91bi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfU09DS0lPX0gKKyNpbmNsdWRlIDxzeXMvc29ja2lvLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX05FVF9JRl9ICisjaW5jbHVkZSA8bmV0L2lmLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX05FVElORVRfSU5fSAorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfTkVUX0lGX0RMX0gKKyNpbmNsdWRlIDxuZXQvaWZfZGwuaD4KKyNlbmRpZgorI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKEhBVkVfU1lTX1NZU0NBTExfSCkKKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfUkVTT1VSQ0VfSAorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJ1dWlkUC5oIgorI2luY2x1ZGUgInV1aWRkLmgiCisKKyNpZmRlZiBIQVZFX1NSQU5ET00KKyNkZWZpbmUgc3JhbmQoeCkJc3JhbmRvbSh4KQorI2RlZmluZSByYW5kKCkJCXJhbmRvbSgpCisjZW5kaWYKKworI2lmZGVmIEhBVkVfVExTCisjZGVmaW5lIFRIUkVBRF9MT0NBTCBzdGF0aWMgX190aHJlYWQKKyNlbHNlCisjZGVmaW5lIFRIUkVBRF9MT0NBTCBzdGF0aWMKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19OUl9nZXR0aWQpICYmIGRlZmluZWQoSEFWRV9KUkFORDQ4KQorI2RlZmluZSBET19KUkFORF9NSVgKK1RIUkVBRF9MT0NBTCB1bnNpZ25lZCBzaG9ydCBqcmFuZF9zZWVkWzNdOworI2VuZGlmCisKKyNpZmRlZiBfV0lOMzIKK3N0YXRpYyB2b2lkIGdldHRpbWVvZmRheSAoc3RydWN0IHRpbWV2YWwgKnR2LCB2b2lkICpkdW1teSkKK3sKKwlGSUxFVElNRQlmdGltZTsKKwl1aW50NjRfdAluOworCisJR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUgKCZmdGltZSk7CisJbiA9ICgoKHVpbnQ2NF90KSBmdGltZS5kd0hpZ2hEYXRlVGltZSA8PCAzMikKKwkgICAgICsgKHVpbnQ2NF90KSBmdGltZS5kd0xvd0RhdGVUaW1lKTsKKwlpZiAobikgeworCQluIC89IDEwOworCQluIC09ICgoMzY5ICogMzY1ICsgODkpICogKHVpbnQ2NF90KSA4NjQwMCkgKiAxMDAwMDAwOworCX0KKworCXR2LT50dl9zZWMgPSBuIC8gMTAwMDAwMDsKKwl0di0+dHZfdXNlYyA9IG4gJSAxMDAwMDAwOworfQorCitzdGF0aWMgaW50IGdldHVpZCAodm9pZCkKK3sKKwlyZXR1cm4gMTsKK30KKyNlbmRpZgorCitzdGF0aWMgaW50IGdldF9yYW5kb21fZmQodm9pZCkKK3sKKwlzdHJ1Y3QgdGltZXZhbAl0djsKKwlzdGF0aWMgaW50CWZkID0gLTI7CisJaW50CQlpOworCisJaWYgKGZkID09IC0yKSB7CisJCWdldHRpbWVvZmRheSgmdHYsIDApOworI2lmbmRlZiBfV0lOMzIKKwkJZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSk7CisJCWlmIChmZCA9PSAtMSkKKwkJCWZkID0gb3BlbigiL2Rldi9yYW5kb20iLCBPX1JET05MWSB8IE9fTk9OQkxPQ0spOworCQlpZiAoZmQgPj0gMCkgeworCQkJaSA9IGZjbnRsKGZkLCBGX0dFVEZEKTsKKwkJCWlmIChpID49IDApCisJCQkJZmNudGwoZmQsIEZfU0VURkQsIGkgfCBGRF9DTE9FWEVDKTsKKwkJfQorI2VuZGlmCisJCXNyYW5kKChnZXRwaWQoKSA8PCAxNikgXiBnZXR1aWQoKSBeIHR2LnR2X3NlYyBeIHR2LnR2X3VzZWMpOworI2lmZGVmIERPX0pSQU5EX01JWAorCQlqcmFuZF9zZWVkWzBdID0gZ2V0cGlkKCkgXiAodHYudHZfc2VjICYgMHhGRkZGKTsKKwkJanJhbmRfc2VlZFsxXSA9IGdldHBwaWQoKSBeICh0di50dl91c2VjICYgMHhGRkZGKTsKKwkJanJhbmRfc2VlZFsyXSA9ICh0di50dl9zZWMgXiB0di50dl91c2VjKSA+PiAxNjsKKyNlbmRpZgorCX0KKwkvKiBDcmFuayB0aGUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgYSBmZXcgdGltZXMgKi8KKwlnZXR0aW1lb2ZkYXkoJnR2LCAwKTsKKwlmb3IgKGkgPSAodHYudHZfc2VjIF4gdHYudHZfdXNlYykgJiAweDFGOyBpID4gMDsgaS0tKQorCQlyYW5kKCk7CisJcmV0dXJuIGZkOworfQorCisKKy8qCisgKiBHZW5lcmF0ZSBhIHNlcmllcyBvZiByYW5kb20gYnl0ZXMuICBVc2UgL2Rldi91cmFuZG9tIGlmIHBvc3NpYmxlLAorICogYW5kIGlmIG5vdCwgdXNlIHNyYW5kb20vcmFuZG9tLgorICovCitzdGF0aWMgdm9pZCBnZXRfcmFuZG9tX2J5dGVzKHZvaWQgKmJ1ZiwgaW50IG5ieXRlcykKK3sKKwlpbnQgaSwgbiA9IG5ieXRlcywgZmQgPSBnZXRfcmFuZG9tX2ZkKCk7CisJaW50IGxvc2VfY291bnRlciA9IDA7CisJdW5zaWduZWQgY2hhciAqY3AgPSAodW5zaWduZWQgY2hhciAqKSBidWY7CisKKwlpZiAoZmQgPj0gMCkgeworCQl3aGlsZSAobiA+IDApIHsKKwkJCWkgPSByZWFkKGZkLCBjcCwgbik7CisJCQlpZiAoaSA8PSAwKSB7CisJCQkJaWYgKGxvc2VfY291bnRlcisrID4gMTYpCisJCQkJCWJyZWFrOworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJbiAtPSBpOworCQkJY3AgKz0gaTsKKwkJCWxvc2VfY291bnRlciA9IDA7CisJCX0KKwl9CisKKwkvKgorCSAqIFdlIGRvIHRoaXMgYWxsIHRoZSB0aW1lLCBidXQgdGhpcyBpcyB0aGUgb25seSBzb3VyY2Ugb2YKKwkgKiByYW5kb21uZXNzIGlmIC9kZXYvcmFuZG9tL3VyYW5kb20gaXMgb3V0IHRvIGx1bmNoLgorCSAqLworCWZvciAoY3AgPSBidWYsIGkgPSAwOyBpIDwgbmJ5dGVzOyBpKyspCisJCSpjcCsrIF49IChyYW5kKCkgPj4gNykgJiAweEZGOworCisjaWZkZWYgRE9fSlJBTkRfTUlYCisJeworCQl1bnNpZ25lZCBzaG9ydCB0bXBfc2VlZFszXTsKKworCQltZW1jcHkodG1wX3NlZWQsIGpyYW5kX3NlZWQsIHNpemVvZih0bXBfc2VlZCkpOworCQlqcmFuZF9zZWVkWzJdID0ganJhbmRfc2VlZFsyXSBeIHN5c2NhbGwoX19OUl9nZXR0aWQpOworCQlmb3IgKGNwID0gYnVmLCBpID0gMDsgaSA8IG5ieXRlczsgaSsrKQorCQkJKmNwKysgXj0gKGpyYW5kNDgodG1wX3NlZWQpID4+IDcpICYgMHhGRjsKKwkJbWVtY3B5KGpyYW5kX3NlZWQsIHRtcF9zZWVkLAorCQkgICAgICAgc2l6ZW9mKGpyYW5kX3NlZWQpLXNpemVvZih1bnNpZ25lZCBzaG9ydCkpOworCX0KKyNlbmRpZgorCisJcmV0dXJuOworfQorCisvKgorICogR2V0IHRoZSBldGhlcm5ldCBoYXJkd2FyZSBhZGRyZXNzLCBpZiB3ZSBjYW4gZmluZCBpdC4uLgorICoKKyAqIFhYWCBmb3IgYSB3aW5kb3dzIHZlcnNpb24sIHByb2JhYmx5IHNob3VsZCB1c2UgR2V0QWRhcHRlcnNJbmZvOgorICogaHR0cDovL3d3dy5jb2RlZ3VydS5jb20vY3BwL2ktbi9uZXR3b3JrL25ldHdvcmtpbmZvcm1hdGlvbi9hcnRpY2xlLnBocC9jNTQ1MQorICogY29tbWVudGluZyBvdXQgZ2V0X25vZGVfaWQganVzdCB0byBnZXQgZ2VuX3V1aWQgdG8gY29tcGlsZSB1bmRlciB3aW5kb3dzCisgKiBpcyBub3QgdGhlIHJpZ2h0IHdheSB0byBnbyEKKyAqLworc3RhdGljIGludCBnZXRfbm9kZV9pZCh1bnNpZ25lZCBjaGFyICpub2RlX2lkKQoreworI2lmZGVmIEhBVkVfTkVUX0lGX0gKKwlpbnQJCXNkOworCXN0cnVjdCBpZnJlcQlpZnIsICppZnJwOworCXN0cnVjdCBpZmNvbmYJaWZjOworCWNoYXIgYnVmWzEwMjRdOworCWludAkJbiwgaTsKKwl1bnNpZ25lZCBjaGFyCSphOworI2lmZGVmIEhBVkVfTkVUX0lGX0RMX0gKKwlzdHJ1Y3Qgc29ja2FkZHJfZGwgKnNkbHA7CisjZW5kaWYKKworLyoKKyAqIEJTRCA0LjQgZGVmaW5lcyB0aGUgc2l6ZSBvZiBhbiBpZnJlcSB0byBiZQorICogbWF4KHNpemVvZihpZnJlcSksIHNpemVvZihpZnJlcS5pZnJfbmFtZSkraWZyZXEuaWZyX2FkZHIuc2FfbGVuCisgKiBIb3dldmVyLCB1bmRlciBlYXJsaWVyIHN5c3RlbXMsIHNhX2xlbiBpc24ndCBwcmVzZW50LCBzbyB0aGUgc2l6ZSBpcworICoganVzdCBzaXplb2Yoc3RydWN0IGlmcmVxKQorICovCisjaWZkZWYgSEFWRV9TQV9MRU4KKyNpZm5kZWYgbWF4CisjZGVmaW5lIG1heChhLGIpICgoYSkgPiAoYikgPyAoYSkgOiAoYikpCisjZW5kaWYKKyNkZWZpbmUgaWZyZXFfc2l6ZShpKSBtYXgoc2l6ZW9mKHN0cnVjdCBpZnJlcSksXAorICAgICBzaXplb2YoKGkpLmlmcl9uYW1lKSsoaSkuaWZyX2FkZHIuc2FfbGVuKQorI2Vsc2UKKyNkZWZpbmUgaWZyZXFfc2l6ZShpKSBzaXplb2Yoc3RydWN0IGlmcmVxKQorI2VuZGlmIC8qIEhBVkVfU0FfTEVOICovCisKKwlzZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX0RHUkFNLCBJUFBST1RPX0lQKTsKKwlpZiAoc2QgPCAwKSB7CisJCXJldHVybiAtMTsKKwl9CisJbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKGJ1ZikpOworCWlmYy5pZmNfbGVuID0gc2l6ZW9mKGJ1Zik7CisJaWZjLmlmY19idWYgPSBidWY7CisJaWYgKGlvY3RsIChzZCwgU0lPQ0dJRkNPTkYsIChjaGFyICopJmlmYykgPCAwKSB7CisJCWNsb3NlKHNkKTsKKwkJcmV0dXJuIC0xOworCX0KKwluID0gaWZjLmlmY19sZW47CisJZm9yIChpID0gMDsgaSA8IG47IGkrPSBpZnJlcV9zaXplKCppZnJwKSApIHsKKwkJaWZycCA9IChzdHJ1Y3QgaWZyZXEgKikoKGNoYXIgKikgaWZjLmlmY19idWYraSk7CisJCXN0cm5jcHkoaWZyLmlmcl9uYW1lLCBpZnJwLT5pZnJfbmFtZSwgSUZOQU1TSVopOworI2lmZGVmIFNJT0NHSUZIV0FERFIKKwkJaWYgKGlvY3RsKHNkLCBTSU9DR0lGSFdBRERSLCAmaWZyKSA8IDApCisJCQljb250aW51ZTsKKwkJYSA9ICh1bnNpZ25lZCBjaGFyICopICZpZnIuaWZyX2h3YWRkci5zYV9kYXRhOworI2Vsc2UKKyNpZmRlZiBTSU9DR0VOQUREUgorCQlpZiAoaW9jdGwoc2QsIFNJT0NHRU5BRERSLCAmaWZyKSA8IDApCisJCQljb250aW51ZTsKKwkJYSA9ICh1bnNpZ25lZCBjaGFyICopIGlmci5pZnJfZW5hZGRyOworI2Vsc2UKKyNpZmRlZiBIQVZFX05FVF9JRl9ETF9ICisJCXNkbHAgPSAoc3RydWN0IHNvY2thZGRyX2RsICopICZpZnJwLT5pZnJfYWRkcjsKKwkJaWYgKChzZGxwLT5zZGxfZmFtaWx5ICE9IEFGX0xJTkspIHx8IChzZGxwLT5zZGxfYWxlbiAhPSA2KSkKKwkJCWNvbnRpbnVlOworCQlhID0gKHVuc2lnbmVkIGNoYXIgKikgJnNkbHAtPnNkbF9kYXRhW3NkbHAtPnNkbF9ubGVuXTsKKyNlbHNlCisJCS8qCisJCSAqIFhYWCB3ZSBkb24ndCBoYXZlIGEgd2F5IG9mIGdldHRpbmcgdGhlIGhhcmR3YXJlCisJCSAqIGFkZHJlc3MKKwkJICovCisJCWNsb3NlKHNkKTsKKwkJcmV0dXJuIDA7CisjZW5kaWYgLyogSEFWRV9ORVRfSUZfRExfSCAqLworI2VuZGlmIC8qIFNJT0NHRU5BRERSICovCisjZW5kaWYgLyogU0lPQ0dJRkhXQUREUiAqLworCQlpZiAoIWFbMF0gJiYgIWFbMV0gJiYgIWFbMl0gJiYgIWFbM10gJiYgIWFbNF0gJiYgIWFbNV0pCisJCQljb250aW51ZTsKKwkJaWYgKG5vZGVfaWQpIHsKKwkJCW1lbWNweShub2RlX2lkLCBhLCA2KTsKKwkJCWNsb3NlKHNkKTsKKwkJCXJldHVybiAxOworCQl9CisJfQorCWNsb3NlKHNkKTsKKyNlbmRpZgorCXJldHVybiAwOworfQorCisvKiBBc3N1bWUgdGhhdCB0aGUgZ2V0dGltZW9mZGF5KCkgaGFzIG1pY3Jvc2Vjb25kIGdyYW51bGFyaXR5ICovCisjZGVmaW5lIE1BWF9BREpVU1RNRU5UIDEwCisKK3N0YXRpYyBpbnQgZ2V0X2Nsb2NrKHVpbnQzMl90ICpjbG9ja19oaWdoLCB1aW50MzJfdCAqY2xvY2tfbG93LAorCQkgICAgIHVpbnQxNl90ICpyZXRfY2xvY2tfc2VxLCBpbnQgKm51bSkKK3sKKwlUSFJFQURfTE9DQUwgaW50CQlhZGp1c3RtZW50ID0gMDsKKwlUSFJFQURfTE9DQUwgc3RydWN0IHRpbWV2YWwJbGFzdCA9IHswLCAwfTsKKwlUSFJFQURfTE9DQUwgaW50CQlzdGF0ZV9mZCA9IC0yOworCVRIUkVBRF9MT0NBTCBGSUxFCQkqc3RhdGVfZjsKKwlUSFJFQURfTE9DQUwgdWludDE2X3QJCWNsb2NrX3NlcTsKKwlzdHJ1Y3QgdGltZXZhbAkJCXR2OworCXN0cnVjdCBmbG9jawkJCWZsOworCXVpbnQ2NF90CQkJY2xvY2tfcmVnOworCW1vZGVfdAkJCQlzYXZlX3VtYXNrOworCWludAkJCQlsZW47CisKKwlpZiAoc3RhdGVfZmQgPT0gLTIpIHsKKwkJc2F2ZV91bWFzayA9IHVtYXNrKDApOworCQlzdGF0ZV9mZCA9IG9wZW4oIi92YXIvbGliL2xpYnV1aWQvY2xvY2sudHh0IiwKKwkJCQlPX1JEV1J8T19DUkVBVCwgMDY2MCk7CisJCSh2b2lkKSB1bWFzayhzYXZlX3VtYXNrKTsKKwkJc3RhdGVfZiA9IGZkb3BlbihzdGF0ZV9mZCwgInIrIik7CisJCWlmICghc3RhdGVfZikgeworCQkJY2xvc2Uoc3RhdGVfZmQpOworCQkJc3RhdGVfZmQgPSAtMTsKKwkJfQorCX0KKwlmbC5sX3R5cGUgPSBGX1dSTENLOworCWZsLmxfd2hlbmNlID0gU0VFS19TRVQ7CisJZmwubF9zdGFydCA9IDA7CisJZmwubF9sZW4gPSAwOworCWZsLmxfcGlkID0gMDsKKwlpZiAoc3RhdGVfZmQgPj0gMCkgeworCQlyZXdpbmQoc3RhdGVfZik7CisJCXdoaWxlIChmY250bChzdGF0ZV9mZCwgRl9TRVRMS1csICZmbCkgPCAwKSB7CisJCQlpZiAoKGVycm5vID09IEVBR0FJTikgfHwgKGVycm5vID09IEVJTlRSKSkKKwkJCQljb250aW51ZTsKKwkJCWZjbG9zZShzdGF0ZV9mKTsKKwkJCWNsb3NlKHN0YXRlX2ZkKTsKKwkJCXN0YXRlX2ZkID0gLTE7CisJCQlicmVhazsKKwkJfQorCX0KKwlpZiAoc3RhdGVfZmQgPj0gMCkgeworCQl1bnNpZ25lZCBpbnQgY2w7CisJCXVuc2lnbmVkIGxvbmcgdHYxLCB0djI7CisJCWludCBhOworCisJCWlmIChmc2NhbmYoc3RhdGVfZiwgImNsb2NrOiAlMDR4IHR2OiAlbHUgJWx1IGFkajogJWRcbiIsCisJCQkgICAmY2wsICZ0djEsICZ0djIsICZhKSA9PSA0KSB7CisJCQljbG9ja19zZXEgPSBjbCAmIDB4M0ZGRjsKKwkJCWxhc3QudHZfc2VjID0gdHYxOworCQkJbGFzdC50dl91c2VjID0gdHYyOworCQkJYWRqdXN0bWVudCA9IGE7CisJCX0KKwl9CisKKwlpZiAoKGxhc3QudHZfc2VjID09IDApICYmIChsYXN0LnR2X3VzZWMgPT0gMCkpIHsKKwkJZ2V0X3JhbmRvbV9ieXRlcygmY2xvY2tfc2VxLCBzaXplb2YoY2xvY2tfc2VxKSk7CisJCWNsb2NrX3NlcSAmPSAweDNGRkY7CisJCWdldHRpbWVvZmRheSgmbGFzdCwgMCk7CisJCWxhc3QudHZfc2VjLS07CisJfQorCit0cnlfYWdhaW46CisJZ2V0dGltZW9mZGF5KCZ0diwgMCk7CisJaWYgKCh0di50dl9zZWMgPCBsYXN0LnR2X3NlYykgfHwKKwkgICAgKCh0di50dl9zZWMgPT0gbGFzdC50dl9zZWMpICYmCisJICAgICAodHYudHZfdXNlYyA8IGxhc3QudHZfdXNlYykpKSB7CisJCWNsb2NrX3NlcSA9IChjbG9ja19zZXErMSkgJiAweDNGRkY7CisJCWFkanVzdG1lbnQgPSAwOworCQlsYXN0ID0gdHY7CisJfSBlbHNlIGlmICgodHYudHZfc2VjID09IGxhc3QudHZfc2VjKSAmJgorCSAgICAodHYudHZfdXNlYyA9PSBsYXN0LnR2X3VzZWMpKSB7CisJCWlmIChhZGp1c3RtZW50ID49IE1BWF9BREpVU1RNRU5UKQorCQkJZ290byB0cnlfYWdhaW47CisJCWFkanVzdG1lbnQrKzsKKwl9IGVsc2UgeworCQlhZGp1c3RtZW50ID0gMDsKKwkJbGFzdCA9IHR2OworCX0KKworCWNsb2NrX3JlZyA9IHR2LnR2X3VzZWMqMTAgKyBhZGp1c3RtZW50OworCWNsb2NrX3JlZyArPSAoKHVpbnQ2NF90KSB0di50dl9zZWMpKjEwMDAwMDAwOworCWNsb2NrX3JlZyArPSAoKCh1aW50NjRfdCkgMHgwMUIyMUREMikgPDwgMzIpICsgMHgxMzgxNDAwMDsKKworCWlmIChudW0gJiYgKCpudW0gPiAxKSkgeworCQlhZGp1c3RtZW50ICs9ICpudW0gLSAxOworCQlsYXN0LnR2X3VzZWMgKz0gYWRqdXN0bWVudCAvIDEwOworCQlhZGp1c3RtZW50ID0gYWRqdXN0bWVudCAlIDEwOworCQlsYXN0LnR2X3NlYyArPSBsYXN0LnR2X3VzZWMgLyAxMDAwMDAwOworCQlsYXN0LnR2X3VzZWMgPSBsYXN0LnR2X3VzZWMgJSAxMDAwMDAwOworCX0KKworCWlmIChzdGF0ZV9mZCA+IDApIHsKKwkJcmV3aW5kKHN0YXRlX2YpOworCQlsZW4gPSBmcHJpbnRmKHN0YXRlX2YsCisJCQkgICAgICAiY2xvY2s6ICUwNHggdHY6ICUwMTZsdSAlMDhsdSBhZGo6ICUwOGRcbiIsCisJCQkgICAgICBjbG9ja19zZXEsIGxhc3QudHZfc2VjLCBsYXN0LnR2X3VzZWMsIGFkanVzdG1lbnQpOworCQlmZmx1c2goc3RhdGVfZik7CisJCWlmIChmdHJ1bmNhdGUoc3RhdGVfZmQsIGxlbikgPCAwKSB7CisJCQlmcHJpbnRmKHN0YXRlX2YsICIgICAgICAgICAgICAgICAgICAgXG4iKTsKKwkJCWZmbHVzaChzdGF0ZV9mKTsKKwkJfQorCQlyZXdpbmQoc3RhdGVfZik7CisJCWZsLmxfdHlwZSA9IEZfVU5MQ0s7CisJCWZjbnRsKHN0YXRlX2ZkLCBGX1NFVExLLCAmZmwpOworCX0KKworCSpjbG9ja19oaWdoID0gY2xvY2tfcmVnID4+IDMyOworCSpjbG9ja19sb3cgPSBjbG9ja19yZWc7CisJKnJldF9jbG9ja19zZXEgPSBjbG9ja19zZXE7CisJcmV0dXJuIDA7Cit9CisKKyNpZiBkZWZpbmVkKEhBVkVfVVVJREQpICYmIGRlZmluZWQoSEFWRV9TWVNfVU5fSCkKKy8qIHVzZWQgaW4gZ2V0X3V1aWRfdmlhX2RhZW1vbigpIG9ubHkgKi8KK3N0YXRpYyBzc2l6ZV90IHJlYWRfYWxsKGludCBmZCwgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJc3NpemVfdCByZXQ7CisJc3NpemVfdCBjID0gMDsKKwlpbnQgdHJpZXMgPSAwOworCisJbWVtc2V0KGJ1ZiwgMCwgY291bnQpOworCXdoaWxlIChjb3VudCA+IDApIHsKKwkJcmV0ID0gcmVhZChmZCwgYnVmLCBjb3VudCk7CisJCWlmIChyZXQgPD0gMCkgeworCQkJaWYgKChlcnJubyA9PSBFQUdBSU4gfHwgZXJybm8gPT0gRUlOVFIgfHwgcmV0ID09IDApICYmCisJCQkgICAgKHRyaWVzKysgPCA1KSkKKwkJCQljb250aW51ZTsKKwkJCXJldHVybiBjID8gYyA6IC0xOworCQl9CisJCWlmIChyZXQgPiAwKQorCQkJdHJpZXMgPSAwOworCQljb3VudCAtPSByZXQ7CisJCWJ1ZiArPSByZXQ7CisJCWMgKz0gcmV0OworCX0KKwlyZXR1cm4gYzsKK30KKworLyoKKyAqIENsb3NlIGFsbCBmaWxlIGRlc2NyaXB0b3JzCisgKi8KK3N0YXRpYyB2b2lkIGNsb3NlX2FsbF9mZHModm9pZCkKK3sKKwlpbnQgaSwgbWF4OworCisjaWYgZGVmaW5lZChIQVZFX1NZU0NPTkYpICYmIGRlZmluZWQoX1NDX09QRU5fTUFYKQorCW1heCA9IHN5c2NvbmYoX1NDX09QRU5fTUFYKTsKKyNlbGlmIGRlZmluZWQoSEFWRV9HRVREVEFCTEVTSVpFKQorCW1heCA9IGdldGR0YWJsZXNpemUoKTsKKyNlbGlmIGRlZmluZWQoSEFWRV9HRVRSTElNSVQpICYmIGRlZmluZWQoUkxJTUlUX05PRklMRSkKKwlzdHJ1Y3QgcmxpbWl0IHJsOworCisJZ2V0cmxpbWl0KFJMSU1JVF9OT0ZJTEUsICZybCk7CisJbWF4ID0gcmwucmxpbV9jdXI7CisjZWxzZQorCW1heCA9IE9QRU5fTUFYOworI2VuZGlmCisKKwlmb3IgKGk9MDsgaSA8IG1heDsgaSsrKSB7CisJCWNsb3NlKGkpOworCQlpZiAoaSA8PSAyKQorCQkJb3BlbigiL2Rldi9udWxsIiwgT19SRFdSKTsKKwl9Cit9CisKKy8qCisgKiBUcnkgdXNpbmcgdGhlIHV1aWRkIGRhZW1vbiB0byBnZW5lcmF0ZSB0aGUgVVVJRAorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBub24temVybyBvbiBmYWlsdXJlLgorICovCitzdGF0aWMgaW50IGdldF91dWlkX3ZpYV9kYWVtb24oaW50IG9wLCB1dWlkX3Qgb3V0LCBpbnQgKm51bSkKK3sKKwljaGFyIG9wX2J1Zls2NF07CisJaW50IG9wX2xlbjsKKwlpbnQgczsKKwlzc2l6ZV90IHJldDsKKwlpbnQzMl90IHJlcGx5X2xlbiA9IDAsIGV4cGVjdGVkID0gMTY7CisJc3RydWN0IHNvY2thZGRyX3VuIHNydl9hZGRyOworCXN0cnVjdCBzdGF0IHN0OworCXBpZF90IHBpZDsKKwlzdGF0aWMgY29uc3QgY2hhciAqdXVpZGRfcGF0aCA9IFVVSUREX1BBVEg7CisJc3RhdGljIGludCBhY2Nlc3NfcmV0ID0gLTI7CisJc3RhdGljIGludCBzdGFydF9hdHRlbXB0cyA9IDA7CisKKwlpZiAoKHMgPSBzb2NrZXQoQUZfVU5JWCwgU09DS19TVFJFQU0sIDApKSA8IDApCisJCXJldHVybiAtMTsKKworCXNydl9hZGRyLnN1bl9mYW1pbHkgPSBBRl9VTklYOworCXN0cmNweShzcnZfYWRkci5zdW5fcGF0aCwgVVVJRERfU09DS0VUX1BBVEgpOworCisJaWYgKGNvbm5lY3QocywgKGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqKSAmc3J2X2FkZHIsCisJCSAgICBzaXplb2Yoc3RydWN0IHNvY2thZGRyX3VuKSkgPCAwKSB7CisJCWlmIChhY2Nlc3NfcmV0ID09IC0yKQorCQkJYWNjZXNzX3JldCA9IGFjY2Vzcyh1dWlkZF9wYXRoLCBYX09LKTsKKwkJaWYgKGFjY2Vzc19yZXQgPT0gMCkKKwkJCWFjY2Vzc19yZXQgPSBzdGF0KHV1aWRkX3BhdGgsICZzdCk7CisJCWlmIChhY2Nlc3NfcmV0ID09IDAgJiYgKHN0LnN0X21vZGUgJiAoU19JU1VJRCB8IFNfSVNHSUQpKSA9PSAwKQorCQkJYWNjZXNzX3JldCA9IGFjY2VzcyhVVUlERF9ESVIsIFdfT0spOworCQlpZiAoYWNjZXNzX3JldCA9PSAwICYmIHN0YXJ0X2F0dGVtcHRzKysgPCA1KSB7CisJCQlpZiAoKHBpZCA9IGZvcmsoKSkgPT0gMCkgeworCQkJCWNsb3NlX2FsbF9mZHMoKTsKKwkJCQlleGVjbCh1dWlkZF9wYXRoLCAidXVpZGQiLCAiLXFUIiwgIjMwMCIsCisJCQkJICAgICAgKGNoYXIgKikgTlVMTCk7CisJCQkJZXhpdCgxKTsKKwkJCX0KKwkJCSh2b2lkKSB3YWl0cGlkKHBpZCwgMCwgMCk7CisJCQlpZiAoY29ubmVjdChzLCAoY29uc3Qgc3RydWN0IHNvY2thZGRyICopICZzcnZfYWRkciwKKwkJCQkgICAgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl91bikpIDwgMCkKKwkJCQlnb3RvIGZhaWw7CisJCX0gZWxzZQorCQkJZ290byBmYWlsOworCX0KKwlvcF9idWZbMF0gPSBvcDsKKwlvcF9sZW4gPSAxOworCWlmIChvcCA9PSBVVUlERF9PUF9CVUxLX1RJTUVfVVVJRCkgeworCQltZW1jcHkob3BfYnVmKzEsIG51bSwgc2l6ZW9mKCpudW0pKTsKKwkJb3BfbGVuICs9IHNpemVvZigqbnVtKTsKKwkJZXhwZWN0ZWQgKz0gc2l6ZW9mKCpudW0pOworCX0KKworCXJldCA9IHdyaXRlKHMsIG9wX2J1Ziwgb3BfbGVuKTsKKwlpZiAocmV0IDwgMSkKKwkJZ290byBmYWlsOworCisJcmV0ID0gcmVhZF9hbGwocywgKGNoYXIgKikgJnJlcGx5X2xlbiwgc2l6ZW9mKHJlcGx5X2xlbikpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGZhaWw7CisKKwlpZiAocmVwbHlfbGVuICE9IGV4cGVjdGVkKQorCQlnb3RvIGZhaWw7CisKKwlyZXQgPSByZWFkX2FsbChzLCBvcF9idWYsIHJlcGx5X2xlbik7CisKKwlpZiAob3AgPT0gVVVJRERfT1BfQlVMS19USU1FX1VVSUQpCisJCW1lbWNweShvcF9idWYrMTYsIG51bSwgc2l6ZW9mKGludCkpOworCisJbWVtY3B5KG91dCwgb3BfYnVmLCAxNik7CisKKwljbG9zZShzKTsKKwlyZXR1cm4gKChyZXQgPT0gZXhwZWN0ZWQpID8gMCA6IC0xKTsKKworZmFpbDoKKwljbG9zZShzKTsKKwlyZXR1cm4gLTE7Cit9CisKKyNlbHNlIC8qICFkZWZpbmVkKEhBVkVfVVVJREQpICYmIGRlZmluZWQoSEFWRV9TWVNfVU5fSCkgKi8KK3N0YXRpYyBpbnQgZ2V0X3V1aWRfdmlhX2RhZW1vbihpbnQgb3AsIHV1aWRfdCBvdXQsIGludCAqbnVtKQoreworCXJldHVybiAtMTsKK30KKyNlbmRpZgorCit2b2lkIHV1aWRfX2dlbmVyYXRlX3RpbWUodXVpZF90IG91dCwgaW50ICpudW0pCit7CisJc3RhdGljIHVuc2lnbmVkIGNoYXIgbm9kZV9pZFs2XTsKKwlzdGF0aWMgaW50IGhhc19pbml0ID0gMDsKKwlzdHJ1Y3QgdXVpZCB1dTsKKwl1aW50MzJfdAljbG9ja19taWQ7CisKKwlpZiAoIWhhc19pbml0KSB7CisJCWlmIChnZXRfbm9kZV9pZChub2RlX2lkKSA8PSAwKSB7CisJCQlnZXRfcmFuZG9tX2J5dGVzKG5vZGVfaWQsIDYpOworCQkJLyoKKwkJCSAqIFNldCBtdWx0aWNhc3QgYml0LCB0byBwcmV2ZW50IGNvbmZsaWN0cworCQkJICogd2l0aCBJRUVFIDgwMiBhZGRyZXNzZXMgb2J0YWluZWQgZnJvbQorCQkJICogbmV0d29yayBjYXJkcworCQkJICovCisJCQlub2RlX2lkWzBdIHw9IDB4MDE7CisJCX0KKwkJaGFzX2luaXQgPSAxOworCX0KKwlnZXRfY2xvY2soJmNsb2NrX21pZCwgJnV1LnRpbWVfbG93LCAmdXUuY2xvY2tfc2VxLCBudW0pOworCXV1LmNsb2NrX3NlcSB8PSAweDgwMDA7CisJdXUudGltZV9taWQgPSAodWludDE2X3QpIGNsb2NrX21pZDsKKwl1dS50aW1lX2hpX2FuZF92ZXJzaW9uID0gKChjbG9ja19taWQgPj4gMTYpICYgMHgwRkZGKSB8IDB4MTAwMDsKKwltZW1jcHkodXUubm9kZSwgbm9kZV9pZCwgNik7CisJdXVpZF9wYWNrKCZ1dSwgb3V0KTsKK30KKwordm9pZCB1dWlkX2dlbmVyYXRlX3RpbWUodXVpZF90IG91dCkKK3sKKyNpZmRlZiBIQVZFX1RMUworCVRIUkVBRF9MT0NBTCBpbnQJCW51bSA9IDA7CisJVEhSRUFEX0xPQ0FMIHN0cnVjdCB1dWlkCXV1OworCVRIUkVBRF9MT0NBTCB0aW1lX3QJCWxhc3RfdGltZSA9IDA7CisJdGltZV90CQkJCW5vdzsKKworCWlmIChudW0gPiAwKSB7CisJCW5vdyA9IHRpbWUoMCk7CisJCWlmIChub3cgPiBsYXN0X3RpbWUrMSkKKwkJCW51bSA9IDA7CisJfQorCWlmIChudW0gPD0gMCkgeworCQludW0gPSAxMDAwOworCQlpZiAoZ2V0X3V1aWRfdmlhX2RhZW1vbihVVUlERF9PUF9CVUxLX1RJTUVfVVVJRCwKKwkJCQkJb3V0LCAmbnVtKSA9PSAwKSB7CisJCQlsYXN0X3RpbWUgPSB0aW1lKDApOworCQkJdXVpZF91bnBhY2sob3V0LCAmdXUpOworCQkJbnVtLS07CisJCQlyZXR1cm47CisJCX0KKwkJbnVtID0gMDsKKwl9CisJaWYgKG51bSA+IDApIHsKKwkJdXUudGltZV9sb3crKzsKKwkJaWYgKHV1LnRpbWVfbG93ID09IDApIHsKKwkJCXV1LnRpbWVfbWlkKys7CisJCQlpZiAodXUudGltZV9taWQgPT0gMCkKKwkJCQl1dS50aW1lX2hpX2FuZF92ZXJzaW9uKys7CisJCX0KKwkJbnVtLS07CisJCXV1aWRfcGFjaygmdXUsIG91dCk7CisJCXJldHVybjsKKwl9CisjZWxzZQorCWlmIChnZXRfdXVpZF92aWFfZGFlbW9uKFVVSUREX09QX1RJTUVfVVVJRCwgb3V0LCAwKSA9PSAwKQorCQlyZXR1cm47CisjZW5kaWYKKworCXV1aWRfX2dlbmVyYXRlX3RpbWUob3V0LCAwKTsKK30KKworCit2b2lkIHV1aWRfX2dlbmVyYXRlX3JhbmRvbSh1dWlkX3Qgb3V0LCBpbnQgKm51bSkKK3sKKwl1dWlkX3QJYnVmOworCXN0cnVjdCB1dWlkIHV1OworCWludCBpLCBuOworCisJaWYgKCFudW0gfHwgISpudW0pCisJCW4gPSAxOworCWVsc2UKKwkJbiA9ICpudW07CisKKwlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CisJCWdldF9yYW5kb21fYnl0ZXMoYnVmLCBzaXplb2YoYnVmKSk7CisJCXV1aWRfdW5wYWNrKGJ1ZiwgJnV1KTsKKworCQl1dS5jbG9ja19zZXEgPSAodXUuY2xvY2tfc2VxICYgMHgzRkZGKSB8IDB4ODAwMDsKKwkJdXUudGltZV9oaV9hbmRfdmVyc2lvbiA9ICh1dS50aW1lX2hpX2FuZF92ZXJzaW9uICYgMHgwRkZGKQorCQkJfCAweDQwMDA7CisJCXV1aWRfcGFjaygmdXUsIG91dCk7CisJCW91dCArPSBzaXplb2YodXVpZF90KTsKKwl9Cit9CisKK3ZvaWQgdXVpZF9nZW5lcmF0ZV9yYW5kb20odXVpZF90IG91dCkKK3sKKwlpbnQJbnVtID0gMTsKKwkvKiBObyByZWFsIHJlYXNvbiB0byB1c2UgdGhlIGRhZW1vbiBmb3IgcmFuZG9tIHV1aWQncyAtLSB5ZXQgKi8KKworCXV1aWRfX2dlbmVyYXRlX3JhbmRvbShvdXQsICZudW0pOworfQorCisKKy8qCisgKiBUaGlzIGlzIHRoZSBnZW5lcmljIGZyb250LWVuZCB0byB1dWlkX2dlbmVyYXRlX3JhbmRvbSBhbmQKKyAqIHV1aWRfZ2VuZXJhdGVfdGltZS4gIEl0IHVzZXMgdXVpZF9nZW5lcmF0ZV9yYW5kb20gb25seSBpZgorICogL2Rldi91cmFuZG9tIGlzIGF2YWlsYWJsZSwgc2luY2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGhhdmUKKyAqIGhpZ2gtcXVhbGl0eSByYW5kb21uZXNzLgorICovCit2b2lkIHV1aWRfZ2VuZXJhdGUodXVpZF90IG91dCkKK3sKKwlpZiAoZ2V0X3JhbmRvbV9mZCgpID49IDApCisJCXV1aWRfZ2VuZXJhdGVfcmFuZG9tKG91dCk7CisJZWxzZQorCQl1dWlkX2dlbmVyYXRlX3RpbWUob3V0KTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9nZW5fdXVpZF9udC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL2dlbl91dWlkX250LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE0NGJmZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9nZW5fdXVpZF9udC5jCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBnZW5fdXVpZF9udC5jIC0tIFVzZSBOVCBhcGkgdG8gZ2VuZXJhdGUgdXVpZAorICoKKyAqIFdyaXR0ZW4gYnkgQW5kcmV5IFNoZWRlbCAoYW5kcmV5c0Bucy5jci5jeWNvLmNvbSkKKyAqLworCisKKyNpbmNsdWRlICJ1dWlkUC5oIgorCisjcHJhZ21hIHdhcm5pbmcocHVzaCw0KQorCisjcHJhZ21hIGNvbW1lbnQobGliLCAibnRkbGwubGliIikKKworLy8KKy8vIEhlcmUgaXMgYSBuaWNlIGV4YW1wbGUgd2h5IGl0J3Mgbm90IGEgZ29vZCBpZGVhCisvLyB0byB1c2UgbmF0aXZlIEFQSSBpbiBvcmRpbmFyeSBhcHBsaWNhdGlvbnMuCisvLyBOdW1iZXIgb2YgcGFyYW1ldGVycyBpbiBmdW5jdGlvbiBiZWxvdyB3YXMgY2hhbmdlZCBmcm9tIDMgdG8gNAorLy8gZm9yIE5UNS4KKy8vCisvLworLy8gTlRTWVNBUEkKKy8vIE5UU1RBVFVTCisvLyBOVEFQSQorLy8gTnRBbGxvY2F0ZVV1aWRzKAorLy8gICAgIE9VVCBQVUxPTkcgcDEsCisvLyAgICAgT1VUIFBVTE9ORyBwMiwKKy8vICAgICBPVVQgUFVMT05HIHAzLAorLy8gICAgIE9VVCBQVUNIQVIgU2VlZCAvLyA2IGJ5dGVzCisvLyAgICk7CisvLworLy8KKwordW5zaWduZWQgbG9uZworX19zdGRjYWxsCitOdEFsbG9jYXRlVXVpZHMoCisgICB2b2lkKiBwMSwgIC8vIDggYnl0ZXMKKyAgIHZvaWQqIHAyLCAgLy8gNCBieXRlcworICAgdm9pZCogcDMgICAvLyA0IGJ5dGVzCisgICApOworCit0eXBlZGVmCit1bnNpZ25lZCBsb25nCisoX19zdGRjYWxsKgorTnRBbGxvY2F0ZVV1aWRzXzIwMDApKAorICAgdm9pZCogcDEsICAvLyA4IGJ5dGVzCisgICB2b2lkKiBwMiwgIC8vIDQgYnl0ZXMKKyAgIHZvaWQqIHAzLCAgLy8gNCBieXRlcworICAgdm9pZCogc2VlZCAvLyA2IGJ5dGVzCisgICApOworCisKKworLy8KKy8vIE5pY2UsIGJ1dCBpbnN0ZWFkIG9mIGluY2x1ZGluZyBudGRkay5oIG90IHdpbm50LmgKKy8vIEkgc2hvdWxkIGRlZmluZSBpdCBoZXJlIGJlY2F1c2UgdGhleSBNSVNTRUQgX19zdGRjYWxsIGluIHRob3NlIGhlYWRlcnMuCisvLworCitfX2RlY2xzcGVjKGRsbGltcG9ydCkKK3N0cnVjdCBfVEVCKgorX19zdGRjYWxsCitOdEN1cnJlbnRUZWIodm9pZCk7CisKKworLy8KKy8vIFRoZSBvbmx5IHdheSB0byBnZXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzeXN0ZW0gaXMgdG8gZXhhbWluZQorLy8gb25lIHN0b3JlZCBpbiBQRUIuIEJ1dCBpdCdzIHByZXR0eSBkYW5nZXJvdXNlIGJlY2F1c2UgdGhpcyB2YWx1ZSBjb3VsZAorLy8gYmUgYWx0ZXJlZCBpbiBpbWFnZSBoZWFkZXIuCisvLworCitzdGF0aWMKK2ludAorTnQ1KHZvaWQpCit7CisJLy9yZXR1cm4gTnRDdXR0ZW50VGViKCktPlBlYi0+T1NNYWpvclZlcnNpb24gPj0gNTsKKwlyZXR1cm4gKGludCkqKGludCopKChjaGFyKikoaW50KSgqKGludCopKChjaGFyKilOdEN1cnJlbnRUZWIoKSArIDB4MzApKSArIDB4QTQpID49IDU7Cit9CisKKworCisKK3ZvaWQgdXVpZF9nZW5lcmF0ZSh1dWlkX3Qgb3V0KQoreworCWlmKE50NSgpKQorCXsKKwkJdW5zaWduZWQgY2hhciBzZWVkWzZdOworCQkoKE50QWxsb2NhdGVVdWlkc18yMDAwKU50QWxsb2NhdGVVdWlkcykob3V0LCAoKGNoYXIqKW91dCkrOCwgKChjaGFyKilvdXQpKzEyLCAmc2VlZFswXSApOworCX0KKwllbHNlCisJeworCQlOdEFsbG9jYXRlVXVpZHMob3V0LCAoKGNoYXIqKW91dCkrOCwgKChjaGFyKilvdXQpKzEyKTsKKwl9Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvaXNudWxsLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvaXNudWxsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMxZTdlNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9pc251bGwuYwpAQCAtMCwwICsxLDQ4IEBACisvKgorICogaXNudWxsLmMgLS0tIENoZWNrIHdoZXRoZXIgb3Igbm90IHRoZSBVVUlEIGlzIG51bGwKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcgVGhlb2RvcmUgVHMnby4KKyAqCisgKiAlQmVnaW4tSGVhZGVyJQorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisgKiAgICBpbmNsdWRpbmcgdGhlIGRpc2NsYWltZXIgb2Ygd2FycmFudGllcy4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisgKiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisgKiAgICB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBBTEwgT0YKKyAqIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKyAqIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKyAqIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIE5PVCBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaW5jbHVkZSAidXVpZFAuaCIKKworLyogUmV0dXJucyAxIGlmIHRoZSB1dWlkIGlzIHRoZSBOVUxMIHV1aWQgKi8KK2ludCB1dWlkX2lzX251bGwoY29uc3QgdXVpZF90IHV1KQoreworCWNvbnN0IHVuc2lnbmVkIGNoYXIgCSpjcDsKKwlpbnQJCQlpOworCisJZm9yIChpPTAsIGNwID0gdXU7IGkgPCAxNjsgaSsrKQorCQlpZiAoKmNwKyspCisJCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL3BhY2suYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9wYWNrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDk3NTE2ZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9wYWNrLmMKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIEludGVybmFsIHJvdXRpbmUgZm9yIHBhY2tpbmcgVVVJRCdzCisgKgorICogQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3IFRoZW9kb3JlIFRzJ28uCisgKgorICogJUJlZ2luLUhlYWRlciUKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgYW5kIHRoZSBlbnRpcmUgcGVybWlzc2lvbiBub3RpY2UgaW4gaXRzIGVudGlyZXR5LAorICogICAgaW5jbHVkaW5nIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnRpZXMuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZQorICogICAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvcgorICogICAgd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgQUxMIE9GCisgKiBXSElDSCBBUkUgSEVSRUJZIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SCisgKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFCisgKiBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBOT1QgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgInV1aWRQLmgiCisKK3ZvaWQgdXVpZF9wYWNrKGNvbnN0IHN0cnVjdCB1dWlkICp1dSwgdXVpZF90IHB0cikKK3sKKwl1aW50MzJfdAl0bXA7CisJdW5zaWduZWQgY2hhcgkqb3V0ID0gcHRyOworCisJdG1wID0gdXUtPnRpbWVfbG93OworCW91dFszXSA9ICh1bnNpZ25lZCBjaGFyKSB0bXA7CisJdG1wID4+PSA4OworCW91dFsyXSA9ICh1bnNpZ25lZCBjaGFyKSB0bXA7CisJdG1wID4+PSA4OworCW91dFsxXSA9ICh1bnNpZ25lZCBjaGFyKSB0bXA7CisJdG1wID4+PSA4OworCW91dFswXSA9ICh1bnNpZ25lZCBjaGFyKSB0bXA7CisKKwl0bXAgPSB1dS0+dGltZV9taWQ7CisJb3V0WzVdID0gKHVuc2lnbmVkIGNoYXIpIHRtcDsKKwl0bXAgPj49IDg7CisJb3V0WzRdID0gKHVuc2lnbmVkIGNoYXIpIHRtcDsKKworCXRtcCA9IHV1LT50aW1lX2hpX2FuZF92ZXJzaW9uOworCW91dFs3XSA9ICh1bnNpZ25lZCBjaGFyKSB0bXA7CisJdG1wID4+PSA4OworCW91dFs2XSA9ICh1bnNpZ25lZCBjaGFyKSB0bXA7CisKKwl0bXAgPSB1dS0+Y2xvY2tfc2VxOworCW91dFs5XSA9ICh1bnNpZ25lZCBjaGFyKSB0bXA7CisJdG1wID4+PSA4OworCW91dFs4XSA9ICh1bnNpZ25lZCBjaGFyKSB0bXA7CisKKwltZW1jcHkob3V0KzEwLCB1dS0+bm9kZSwgNik7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9wYXJzZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL3BhcnNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc0MzgzZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy9wYXJzZS5jCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBwYXJzZS5jIC0tLSBVVUlEIHBhcnNpbmcKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcgVGhlb2RvcmUgVHMnby4KKyAqCisgKiAlQmVnaW4tSGVhZGVyJQorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisgKiAgICBpbmNsdWRpbmcgdGhlIGRpc2NsYWltZXIgb2Ygd2FycmFudGllcy4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisgKiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisgKiAgICB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBBTEwgT0YKKyAqIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKyAqIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKyAqIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIE5PVCBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAidXVpZFAuaCIKKworaW50IHV1aWRfcGFyc2UoY29uc3QgY2hhciAqaW4sIHV1aWRfdCB1dSkKK3sKKwlzdHJ1Y3QgdXVpZAl1dWlkOworCWludCAJCWk7CisJY29uc3QgY2hhcgkqY3A7CisJY2hhcgkJYnVmWzNdOworCisJaWYgKHN0cmxlbihpbikgIT0gMzYpCisJCXJldHVybiAtMTsKKwlmb3IgKGk9MCwgY3AgPSBpbjsgaSA8PSAzNjsgaSsrLGNwKyspIHsKKwkJaWYgKChpID09IDgpIHx8IChpID09IDEzKSB8fCAoaSA9PSAxOCkgfHwKKwkJICAgIChpID09IDIzKSkgeworCQkJaWYgKCpjcCA9PSAnLScpCisJCQkJY29udGludWU7CisJCQllbHNlCisJCQkJcmV0dXJuIC0xOworCQl9CisJCWlmIChpPT0gMzYpCisJCQlpZiAoKmNwID09IDApCisJCQkJY29udGludWU7CisJCWlmICghaXN4ZGlnaXQoKmNwKSkKKwkJCXJldHVybiAtMTsKKwl9CisJdXVpZC50aW1lX2xvdyA9IHN0cnRvdWwoaW4sIE5VTEwsIDE2KTsKKwl1dWlkLnRpbWVfbWlkID0gc3RydG91bChpbis5LCBOVUxMLCAxNik7CisJdXVpZC50aW1lX2hpX2FuZF92ZXJzaW9uID0gc3RydG91bChpbisxNCwgTlVMTCwgMTYpOworCXV1aWQuY2xvY2tfc2VxID0gc3RydG91bChpbisxOSwgTlVMTCwgMTYpOworCWNwID0gaW4rMjQ7CisJYnVmWzJdID0gMDsKKwlmb3IgKGk9MDsgaSA8IDY7IGkrKykgeworCQlidWZbMF0gPSAqY3ArKzsKKwkJYnVmWzFdID0gKmNwKys7CisJCXV1aWQubm9kZVtpXSA9IHN0cnRvdWwoYnVmLCBOVUxMLCAxNik7CisJfQorCisJdXVpZF9wYWNrKCZ1dWlkLCB1dSk7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdHN0X3V1aWQuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy90c3RfdXVpZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMzEzOGYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdHN0X3V1aWQuYwpAQCAtMCwwICsxLDE4MCBAQAorLyoKKyAqIHRzdF91dWlkLmMgLS0tIHRlc3QgcHJvZ3JhbSBmcm9tIHRoZSBVVUlEIGxpYnJhcnkKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTggVGhlb2RvcmUgVHMnby4KKyAqCisgKiAlQmVnaW4tSGVhZGVyJQorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisgKiAgICBpbmNsdWRpbmcgdGhlIGRpc2NsYWltZXIgb2Ygd2FycmFudGllcy4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisgKiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisgKiAgICB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBBTEwgT0YKKyAqIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKyAqIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKyAqIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIE5PVCBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaWZkZWYgX1dJTjMyCisjZGVmaW5lIF9XSU4zMl9XSU5OVCAweDA1MDAKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZGVmaW5lIFVVSUQgTVlVVUlECisjZW5kaWYKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKyNpbmNsdWRlICJ1dWlkLmgiCisKK3N0YXRpYyBpbnQgdGVzdF91dWlkKGNvbnN0IGNoYXIgKiB1dWlkLCBpbnQgaXNWYWxpZCkKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqIHZhbGlkU3RyWzJdID0geyJpbnZhbGlkIiwgInZhbGlkIn07CisJdXVpZF90IHV1aWRCaXRzOworCWludCBwYXJzZWRPazsKKworCXBhcnNlZE9rID0gdXVpZF9wYXJzZSh1dWlkLCB1dWlkQml0cykgPT0gMDsKKworCXByaW50ZigiJXMgaXMgJXMiLCB1dWlkLCB2YWxpZFN0cltpc1ZhbGlkXSk7CisJaWYgKHBhcnNlZE9rICE9IGlzVmFsaWQpIHsKKwkJcHJpbnRmKCIgYnV0IHV1aWRfcGFyc2Ugc2F5cyAlc1xuIiwgdmFsaWRTdHJbcGFyc2VkT2tdKTsKKwkJcmV0dXJuIDE7CisJfQorCXByaW50ZigiLCBPS1xuIik7CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBfX0dOVUNfXworI2RlZmluZSBBVFRSKHgpIF9fYXR0cmlidXRlX18oeCkKKyNlbHNlCisjZGVmaW5lIEFUVFIoeCkKKyNlbmRpZgorCitpbnQKK21haW4oaW50IGFyZ2MgQVRUUigodW51c2VkKSkgLCBjaGFyICoqYXJndiBBVFRSKCh1bnVzZWQpKSkKK3sKKwl1dWlkX3QJCWJ1ZiwgdHN0OworCWNoYXIJCXN0clsxMDBdOworCXN0cnVjdCB0aW1ldmFsCXR2OworCXRpbWVfdAkJdGltZV9yZWc7CisJdW5zaWduZWQgY2hhcgkqY3A7CisJaW50IGk7CisJaW50IGZhaWxlZCA9IDA7CisJaW50IHR5cGUsIHZhcmlhbnQ7CisKKwl1dWlkX2dlbmVyYXRlKGJ1Zik7CisJdXVpZF91bnBhcnNlKGJ1Ziwgc3RyKTsKKwlwcmludGYoIlVVSUQgZ2VuZXJhdGUgPSAlc1xuIiwgc3RyKTsKKwlwcmludGYoIlVVSUQ6ICIpOworCWZvciAoaT0wLCBjcCA9ICh1bnNpZ25lZCBjaGFyICopICZidWY7IGkgPCAxNjsgaSsrKSB7CisJCXByaW50ZigiJTAyeCIsICpjcCsrKTsKKwl9CisJcHJpbnRmKCJcbiIpOworCXR5cGUgPSB1dWlkX3R5cGUoYnVmKTsgCXZhcmlhbnQgPSB1dWlkX3ZhcmlhbnQoYnVmKTsKKwlwcmludGYoIlVVSUQgdHlwZSA9ICVkLCBVVUlEIHZhcmlhbnQgPSAlZFxuIiwgdHlwZSwgdmFyaWFudCk7CisJaWYgKHZhcmlhbnQgIT0gVVVJRF9WQVJJQU5UX0RDRSkgeworCQlwcmludGYoIkluY29ycmVjdCBVVUlEIFZhcmlhbnQ7IHdhcyBleHBlY3RpbmcgRENFIVxuIik7CisJCWZhaWxlZCsrOworCX0KKwlwcmludGYoIlxuIik7CisKKwl1dWlkX2dlbmVyYXRlX3JhbmRvbShidWYpOworCXV1aWRfdW5wYXJzZShidWYsIHN0cik7CisJcHJpbnRmKCJVVUlEIHJhbmRvbSBzdHJpbmcgPSAlc1xuIiwgc3RyKTsKKwlwcmludGYoIlVVSUQ6ICIpOworCWZvciAoaT0wLCBjcCA9ICh1bnNpZ25lZCBjaGFyICopICZidWY7IGkgPCAxNjsgaSsrKSB7CisJCXByaW50ZigiJTAyeCIsICpjcCsrKTsKKwl9CisJcHJpbnRmKCJcbiIpOworCXR5cGUgPSB1dWlkX3R5cGUoYnVmKTsgCXZhcmlhbnQgPSB1dWlkX3ZhcmlhbnQoYnVmKTsKKwlwcmludGYoIlVVSUQgdHlwZSA9ICVkLCBVVUlEIHZhcmlhbnQgPSAlZFxuIiwgdHlwZSwgdmFyaWFudCk7CisJaWYgKHZhcmlhbnQgIT0gVVVJRF9WQVJJQU5UX0RDRSkgeworCQlwcmludGYoIkluY29ycmVjdCBVVUlEIFZhcmlhbnQ7IHdhcyBleHBlY3RpbmcgRENFIVxuIik7CisJCWZhaWxlZCsrOworCX0KKwlpZiAodHlwZSAhPSA0KSB7CisJCXByaW50ZigiSW5jb3JyZWN0IFVVSUQgdHlwZTsgd2FzIGV4cGVjdGluZyAiCisJCSAgICAgICAiNCAocmFuZG9tIHR5cGUpIVxuIik7CisJCWZhaWxlZCsrOworCX0KKwlwcmludGYoIlxuIik7CisKKwl1dWlkX2dlbmVyYXRlX3RpbWUoYnVmKTsKKwl1dWlkX3VucGFyc2UoYnVmLCBzdHIpOworCXByaW50ZigiVVVJRCBzdHJpbmcgPSAlc1xuIiwgc3RyKTsKKwlwcmludGYoIlVVSUQgdGltZTogIik7CisJZm9yIChpPTAsIGNwID0gKHVuc2lnbmVkIGNoYXIgKikgJmJ1ZjsgaSA8IDE2OyBpKyspIHsKKwkJcHJpbnRmKCIlMDJ4IiwgKmNwKyspOworCX0KKwlwcmludGYoIlxuIik7CisJdHlwZSA9IHV1aWRfdHlwZShidWYpOyAJdmFyaWFudCA9IHV1aWRfdmFyaWFudChidWYpOworCXByaW50ZigiVVVJRCB0eXBlID0gJWQsIFVVSUQgdmFyaWFudCA9ICVkXG4iLCB0eXBlLCB2YXJpYW50KTsKKwlpZiAodmFyaWFudCAhPSBVVUlEX1ZBUklBTlRfRENFKSB7CisJCXByaW50ZigiSW5jb3JyZWN0IFVVSUQgVmFyaWFudDsgd2FzIGV4cGVjdGluZyBEQ0UhXG4iKTsKKwkJZmFpbGVkKys7CisJfQorCWlmICh0eXBlICE9IDEpIHsKKwkJcHJpbnRmKCJJbmNvcnJlY3QgVVVJRCB0eXBlOyB3YXMgZXhwZWN0aW5nICIKKwkJICAgICAgICIxICh0aW1lLWJhc2VkIHR5cGUpIVxcbiIpOworCQlmYWlsZWQrKzsKKwl9CisJdHYudHZfc2VjID0gMDsKKwl0di50dl91c2VjID0gMDsKKwl0aW1lX3JlZyA9IHV1aWRfdGltZShidWYsICZ0dik7CisJcHJpbnRmKCJVVUlEIHRpbWUgaXM6ICglbGQsICVsZCk6ICVzXG4iLCB0di50dl9zZWMsIHR2LnR2X3VzZWMsCisJICAgICAgIGN0aW1lKCZ0aW1lX3JlZykpOworCXV1aWRfcGFyc2Uoc3RyLCB0c3QpOworCWlmICghdXVpZF9jb21wYXJlKGJ1ZiwgdHN0KSkKKwkJcHJpbnRmKCJVVUlEIHBhcnNlIGFuZCBjb21wYXJlIHN1Y2NlZWRlZC5cbiIpOworCWVsc2UgeworCQlwcmludGYoIlVVSUQgcGFyc2UgYW5kIGNvbXBhcmUgZmFpbGVkIVxuIik7CisJCWZhaWxlZCsrOworCX0KKwl1dWlkX2NsZWFyKHRzdCk7CisJaWYgKHV1aWRfaXNfbnVsbCh0c3QpKQorCQlwcmludGYoIlVVSUQgY2xlYXIgYW5kIGlzIG51bGwgc3VjY2VlZGVkLlxuIik7CisJZWxzZSB7CisJCXByaW50ZigiVVVJRCBjbGVhciBhbmQgaXMgbnVsbCBmYWlsZWQhXG4iKTsKKwkJZmFpbGVkKys7CisJfQorCXV1aWRfY29weShidWYsIHRzdCk7CisJaWYgKCF1dWlkX2NvbXBhcmUoYnVmLCB0c3QpKQorCQlwcmludGYoIlVVSUQgY29weSBhbmQgY29tcGFyZSBzdWNjZWVkZWQuXG4iKTsKKwllbHNlIHsKKwkJcHJpbnRmKCJVVUlEIGNvcHkgYW5kIGNvbXBhcmUgZmFpbGVkIVxuIik7CisJCWZhaWxlZCsrOworCX0KKwlmYWlsZWQgKz0gdGVzdF91dWlkKCI4NDk0OWNjNS00NzAxLTRhODQtODk1Yi0zNTRjNTg0YTk4MWIiLCAxKTsKKwlmYWlsZWQgKz0gdGVzdF91dWlkKCI4NDk0OUNDNS00NzAxLTRBODQtODk1Qi0zNTRDNTg0QTk4MUIiLCAxKTsKKwlmYWlsZWQgKz0gdGVzdF91dWlkKCI4NDk0OWNjNS00NzAxLTRhODQtODk1Yi0zNTRjNTg0YTk4MWJjIiwgMCk7CisJZmFpbGVkICs9IHRlc3RfdXVpZCgiODQ5NDljYzUtNDcwMS00YTg0LTg5NWItMzU0YzU4NGE5ODEiLCAwKTsKKwlmYWlsZWQgKz0gdGVzdF91dWlkKCI4NDk0OWNjNXg0NzAxLTRhODQtODk1Yi0zNTRjNTg0YTk4MWIiLCAwKTsKKwlmYWlsZWQgKz0gdGVzdF91dWlkKCI4NDk0OWNjNTA0NzAxLTRhODQtODk1Yi0zNTRjNTg0YTk4MWIiLCAwKTsKKwlmYWlsZWQgKz0gdGVzdF91dWlkKCI4NDk0OWNjNS00NzAxMDRhODQtODk1Yi0zNTRjNTg0YTk4MWIiLCAwKTsKKwlmYWlsZWQgKz0gdGVzdF91dWlkKCI4NDk0OWNjNS00NzAxLTRhODQwODk1Yi0zNTRjNTg0YTk4MWIiLCAwKTsKKwlmYWlsZWQgKz0gdGVzdF91dWlkKCI4NDk0OWNjNS00NzAxLTRhODQtODk1YjAzNTRjNTg0YTk4MWIiLCAwKTsKKwlmYWlsZWQgKz0gdGVzdF91dWlkKCJnNDk0OWNjNS00NzAxLTRhODQtODk1Yi0zNTRjNTg0YTk4MWIiLCAwKTsKKwlmYWlsZWQgKz0gdGVzdF91dWlkKCI4NDk0OWNjNS00NzAxLTRhODQtODk1Yi0zNTRjNTg0YTk4MWciLCAwKTsKKworCWlmIChmYWlsZWQpIHsKKwkJcHJpbnRmKCIlZCBmYWlsdXJlcy5cbiIsIGZhaWxlZCk7CisJCWV4aXQoMSk7CisJfQorCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL3VucGFjay5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL3VucGFjay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlYWFmZjMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdW5wYWNrLmMKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIEludGVybmFsIHJvdXRpbmUgZm9yIHVucGFja2luZyBVVUlECisgKgorICogQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3IFRoZW9kb3JlIFRzJ28uCisgKgorICogJUJlZ2luLUhlYWRlciUKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgYW5kIHRoZSBlbnRpcmUgcGVybWlzc2lvbiBub3RpY2UgaW4gaXRzIGVudGlyZXR5LAorICogICAgaW5jbHVkaW5nIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnRpZXMuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZQorICogICAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvcgorICogICAgd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgQUxMIE9GCisgKiBXSElDSCBBUkUgSEVSRUJZIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SCisgKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFCisgKiBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBOT1QgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgInV1aWRQLmgiCisKK3ZvaWQgdXVpZF91bnBhY2soY29uc3QgdXVpZF90IGluLCBzdHJ1Y3QgdXVpZCAqdXUpCit7CisJY29uc3QgdWludDhfdAkqcHRyID0gaW47CisJdWludDMyX3QJCXRtcDsKKworCXRtcCA9ICpwdHIrKzsKKwl0bXAgPSAodG1wIDw8IDgpIHwgKnB0cisrOworCXRtcCA9ICh0bXAgPDwgOCkgfCAqcHRyKys7CisJdG1wID0gKHRtcCA8PCA4KSB8ICpwdHIrKzsKKwl1dS0+dGltZV9sb3cgPSB0bXA7CisKKwl0bXAgPSAqcHRyKys7CisJdG1wID0gKHRtcCA8PCA4KSB8ICpwdHIrKzsKKwl1dS0+dGltZV9taWQgPSB0bXA7CisKKwl0bXAgPSAqcHRyKys7CisJdG1wID0gKHRtcCA8PCA4KSB8ICpwdHIrKzsKKwl1dS0+dGltZV9oaV9hbmRfdmVyc2lvbiA9IHRtcDsKKworCXRtcCA9ICpwdHIrKzsKKwl0bXAgPSAodG1wIDw8IDgpIHwgKnB0cisrOworCXV1LT5jbG9ja19zZXEgPSB0bXA7CisKKwltZW1jcHkodXUtPm5vZGUsIHB0ciwgNik7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy91bnBhcnNlLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdW5wYXJzZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5NWJiYjAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdW5wYXJzZS5jCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiB1bnBhcnNlLmMgLS0gY29udmVydCBhIFVVSUQgdG8gc3RyaW5nCisgKgorICogQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3IFRoZW9kb3JlIFRzJ28uCisgKgorICogJUJlZ2luLUhlYWRlciUKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgYW5kIHRoZSBlbnRpcmUgcGVybWlzc2lvbiBub3RpY2UgaW4gaXRzIGVudGlyZXR5LAorICogICAgaW5jbHVkaW5nIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnRpZXMuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZQorICogICAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvcgorICogICAgd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgQUxMIE9GCisgKiBXSElDSCBBUkUgSEVSRUJZIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SCisgKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFCisgKiBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBOT1QgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICogJUVuZC1IZWFkZXIlCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlICJ1dWlkUC5oIgorCitzdGF0aWMgY29uc3QgY2hhciAqZm10X2xvd2VyID0KKwkiJTA4eC0lMDR4LSUwNHgtJTAyeCUwMngtJTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4IjsKKworc3RhdGljIGNvbnN0IGNoYXIgKmZtdF91cHBlciA9CisJIiUwOFgtJTA0WC0lMDRYLSUwMlglMDJYLSUwMlglMDJYJTAyWCUwMlglMDJYJTAyWCI7CisKKyNpZmRlZiBVVUlEX1VOUEFSU0VfREVGQVVMVF9VUFBFUgorI2RlZmluZSBGTVRfREVGQVVMVCBmbXRfdXBwZXIKKyNlbHNlCisjZGVmaW5lIEZNVF9ERUZBVUxUIGZtdF9sb3dlcgorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHV1aWRfdW5wYXJzZV94KGNvbnN0IHV1aWRfdCB1dSwgY2hhciAqb3V0LCBjb25zdCBjaGFyICpmbXQpCit7CisJc3RydWN0IHV1aWQgdXVpZDsKKworCXV1aWRfdW5wYWNrKHV1LCAmdXVpZCk7CisJc3ByaW50ZihvdXQsIGZtdCwKKwkJdXVpZC50aW1lX2xvdywgdXVpZC50aW1lX21pZCwgdXVpZC50aW1lX2hpX2FuZF92ZXJzaW9uLAorCQl1dWlkLmNsb2NrX3NlcSA+PiA4LCB1dWlkLmNsb2NrX3NlcSAmIDB4RkYsCisJCXV1aWQubm9kZVswXSwgdXVpZC5ub2RlWzFdLCB1dWlkLm5vZGVbMl0sCisJCXV1aWQubm9kZVszXSwgdXVpZC5ub2RlWzRdLCB1dWlkLm5vZGVbNV0pOworfQorCit2b2lkIHV1aWRfdW5wYXJzZV9sb3dlcihjb25zdCB1dWlkX3QgdXUsIGNoYXIgKm91dCkKK3sKKwl1dWlkX3VucGFyc2VfeCh1dSwgb3V0LAlmbXRfbG93ZXIpOworfQorCit2b2lkIHV1aWRfdW5wYXJzZV91cHBlcihjb25zdCB1dWlkX3QgdXUsIGNoYXIgKm91dCkKK3sKKwl1dWlkX3VucGFyc2VfeCh1dSwgb3V0LAlmbXRfdXBwZXIpOworfQorCit2b2lkIHV1aWRfdW5wYXJzZShjb25zdCB1dWlkX3QgdXUsIGNoYXIgKm91dCkKK3sKKwl1dWlkX3VucGFyc2VfeCh1dSwgb3V0LCBGTVRfREVGQVVMVCk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdXVpZC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL3V1aWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzI5YmY3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL3V1aWQuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIFB1YmxpYyBpbmNsdWRlIGZpbGUgZm9yIHRoZSBVVUlEIGxpYnJhcnkKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTggVGhlb2RvcmUgVHMnby4KKyAqCisgKiAlQmVnaW4tSGVhZGVyJQorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisgKiAgICBpbmNsdWRpbmcgdGhlIGRpc2NsYWltZXIgb2Ygd2FycmFudGllcy4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisgKiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisgKiAgICB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBBTEwgT0YKKyAqIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKyAqIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKyAqIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIE5PVCBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaWZuZGVmIF9VVUlEX1VVSURfSAorI2RlZmluZSBfVVVJRF9VVUlEX0gKKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lmbmRlZiBfV0lOMzIKKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2VuZGlmCisjaW5jbHVkZSA8dGltZS5oPgorCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdXVpZF90WzE2XTsKKworLyogVVVJRCBWYXJpYW50IGRlZmluaXRpb25zICovCisjZGVmaW5lIFVVSURfVkFSSUFOVF9OQ1MJMAorI2RlZmluZSBVVUlEX1ZBUklBTlRfRENFCTEKKyNkZWZpbmUgVVVJRF9WQVJJQU5UX01JQ1JPU09GVAkyCisjZGVmaW5lIFVVSURfVkFSSUFOVF9PVEhFUgkzCisKKy8qIFVVSUQgVHlwZSBkZWZpbml0aW9ucyAqLworI2RlZmluZSBVVUlEX1RZUEVfRENFX1RJTUUgICAxCisjZGVmaW5lIFVVSURfVFlQRV9EQ0VfUkFORE9NIDQKKworLyogQWxsb3cgVVVJRCBjb25zdGFudHMgdG8gYmUgZGVmaW5lZCAqLworI2lmZGVmIF9fR05VQ19fCisjZGVmaW5lIFVVSURfREVGSU5FKG5hbWUsdTAsdTEsdTIsdTMsdTQsdTUsdTYsdTcsdTgsdTksdTEwLHUxMSx1MTIsdTEzLHUxNCx1MTUpIFwKKwlzdGF0aWMgY29uc3QgdXVpZF90IG5hbWUgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpID0ge3UwLHUxLHUyLHUzLHU0LHU1LHU2LHU3LHU4LHU5LHUxMCx1MTEsdTEyLHUxMyx1MTQsdTE1fQorI2Vsc2UKKyNkZWZpbmUgVVVJRF9ERUZJTkUobmFtZSx1MCx1MSx1Mix1Myx1NCx1NSx1Nix1Nyx1OCx1OSx1MTAsdTExLHUxMix1MTMsdTE0LHUxNSkgXAorCXN0YXRpYyBjb25zdCB1dWlkX3QgbmFtZSA9IHt1MCx1MSx1Mix1Myx1NCx1NSx1Nix1Nyx1OCx1OSx1MTAsdTExLHUxMix1MTMsdTE0LHUxNX0KKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qIGNsZWFyLmMgKi8KK3ZvaWQgdXVpZF9jbGVhcih1dWlkX3QgdXUpOworCisvKiBjb21wYXJlLmMgKi8KK2ludCB1dWlkX2NvbXBhcmUoY29uc3QgdXVpZF90IHV1MSwgY29uc3QgdXVpZF90IHV1Mik7CisKKy8qIGNvcHkuYyAqLwordm9pZCB1dWlkX2NvcHkodXVpZF90IGRzdCwgY29uc3QgdXVpZF90IHNyYyk7CisKKy8qIGdlbl91dWlkLmMgKi8KK3ZvaWQgdXVpZF9nZW5lcmF0ZSh1dWlkX3Qgb3V0KTsKK3ZvaWQgdXVpZF9nZW5lcmF0ZV9yYW5kb20odXVpZF90IG91dCk7Cit2b2lkIHV1aWRfZ2VuZXJhdGVfdGltZSh1dWlkX3Qgb3V0KTsKKworLyogaXNudWxsLmMgKi8KK2ludCB1dWlkX2lzX251bGwoY29uc3QgdXVpZF90IHV1KTsKKworLyogcGFyc2UuYyAqLworaW50IHV1aWRfcGFyc2UoY29uc3QgY2hhciAqaW4sIHV1aWRfdCB1dSk7CisKKy8qIHVucGFyc2UuYyAqLwordm9pZCB1dWlkX3VucGFyc2UoY29uc3QgdXVpZF90IHV1LCBjaGFyICpvdXQpOwordm9pZCB1dWlkX3VucGFyc2VfbG93ZXIoY29uc3QgdXVpZF90IHV1LCBjaGFyICpvdXQpOwordm9pZCB1dWlkX3VucGFyc2VfdXBwZXIoY29uc3QgdXVpZF90IHV1LCBjaGFyICpvdXQpOworCisvKiB1dWlkX3RpbWUuYyAqLwordGltZV90IHV1aWRfdGltZShjb25zdCB1dWlkX3QgdXUsIHN0cnVjdCB0aW1ldmFsICpyZXRfdHYpOworaW50IHV1aWRfdHlwZShjb25zdCB1dWlkX3QgdXUpOworaW50IHV1aWRfdmFyaWFudChjb25zdCB1dWlkX3QgdXUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogX1VVSURfVVVJRF9IICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdXVpZC5zeW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdXVpZC5zeW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVkOWYzOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy91dWlkLnN5bQpAQCAtMCwwICsxLDMzIEBACisvKgorICogVGhlIHN5bWJvbCB2ZXJzaW9uaW5nIGVuc3VyZXMgdGhhdCBhIG5ldyBhcHBsaWNhdGlvbiByZXF1aXJpbmcgc3ltYm9sIGZvbygpCisgKiBjYW4ndCBydW4gd2l0aCBvbGQgbGliYmxraWQuc28gbm90IHByb3ZpZGluZyBmb28oKSAtIHRoZSBnbG9iYWwgU09OQU1FCisgKiB2ZXJzaW9uIGluZm8gY2FuJ3QgZW5mb3JjZSB0aGlzIHNpbmNlIHdlIG5ldmVyIGNoYW5nZSB0aGUgU09OQU1FLgorICoKKyAqIFRoZSBvcmlnaW5hbCBsaWJ1dWlkIGZyb20gZTJmc3Byb2dzICg8PTEuNDEuNSkgZG9lcyBub3QgdG8gdXNlCisgKiBzeW1ib2wgdmVyc2lvbmluZyAtLSBhbGwgdGhlIG9yaWdpbmFsIHN5bWJvbHMgYXJlIGluIFVVSURfMS4wIG5vdy4KKyAqLworVVVJRF8xLjAgeworZ2xvYmFsOgorCXV1aWRfY2xlYXI7CisJdXVpZF9jb21wYXJlOworCXV1aWRfY29weTsKKwl1dWlkX2dlbmVyYXRlOworCXV1aWRfZ2VuZXJhdGVfcmFuZG9tOworCXV1aWRfZ2VuZXJhdGVfdGltZTsKKwl1dWlkX2lzX251bGw7CisJdXVpZF9wYXJzZTsKKwl1dWlkX3VucGFyc2U7CisJdXVpZF91bnBhcnNlX2xvd2VyOworCXV1aWRfdW5wYXJzZV91cHBlcjsKKwl1dWlkX3RpbWU7CisJdXVpZF90eXBlOworCXV1aWRfdmFyaWFudDsKKworCS8qIHV1aWRfXyogdGhpcyBpcyBub3QgcGFydCBvZiB0aGUgb2ZmaWNpYWwgQVBJLCB0aGlzIGlzCisJICogdXVpZGQgKHV1aWQgZGFlbW9uKSBzcGVjaWZpYyBzdHVmZi4gSGVsbC4KKwkgKi8KKwl1dWlkX19nZW5lcmF0ZV90aW1lOworCXV1aWRfX2dlbmVyYXRlX3JhbmRvbTsKK2xvY2FsOgorCSo7Cit9OwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL3V1aWRQLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdXVpZFAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDMwY2UyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL3V1aWRQLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIHV1aWQuaCAtLSBwcml2YXRlIGhlYWRlciBmaWxlIGZvciB1dWlkcworICoKKyAqIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NyBUaGVvZG9yZSBUcydvLgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIGFuZCB0aGUgZW50aXJlIHBlcm1pc3Npb24gbm90aWNlIGluIGl0cyBlbnRpcmV0eSwKKyAqICAgIGluY2x1ZGluZyB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50aWVzLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKyAqICAgIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3IKKyAqICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorICogV0hJQ0ggQVJFIEhFUkVCWSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUgorICogQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQorICogVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgTk9UIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqICVFbmQtSGVhZGVyJQorICovCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCisjaW5jbHVkZSAidXVpZC5oIgorCisvKgorICogT2Zmc2V0IGJldHdlZW4gMTUtT2N0LTE1ODIgYW5kIDEtSmFuLTcwCisgKi8KKyNkZWZpbmUgVElNRV9PRkZTRVRfSElHSCAweDAxQjIxREQyCisjZGVmaW5lIFRJTUVfT0ZGU0VUX0xPVyAgMHgxMzgxNDAwMAorCitzdHJ1Y3QgdXVpZCB7CisJdWludDMyX3QJdGltZV9sb3c7CisJdWludDE2X3QJdGltZV9taWQ7CisJdWludDE2X3QJdGltZV9oaV9hbmRfdmVyc2lvbjsKKwl1aW50MTZfdAljbG9ja19zZXE7CisJdWludDhfdAlub2RlWzZdOworfTsKKworCisvKgorICogcHJvdG90eXBlcworICovCit2b2lkIHV1aWRfcGFjayhjb25zdCBzdHJ1Y3QgdXVpZCAqdXUsIHV1aWRfdCBwdHIpOwordm9pZCB1dWlkX3VucGFjayhjb25zdCB1dWlkX3QgaW4sIHN0cnVjdCB1dWlkICp1dSk7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdXVpZF90aW1lLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC9zcmMvdXVpZF90aW1lLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI1ZjVjOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy91dWlkX3RpbWUuYwpAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIHV1aWRfdGltZS5jIC0tLSBJbnRlcnByZXQgdGhlIHRpbWUgZmllbGQgZnJvbSBhIHV1aWQuICBUaGlzIHByb2dyYW0KKyAqIAl2aW9sYXRlcyB0aGUgVVVJRCBhYnN0cmFjdGlvbiBiYXJyaWVyIGJ5IHJlYWNoaW5nIGludG8gdGhlIGd1dHMKKyAqCW9mIGEgVVVJRCBhbmQgaW50ZXJwcmV0aW5nIGl0LgorICoKKyAqIENvcHlyaWdodCAoQykgMTk5OCwgMTk5OSBUaGVvZG9yZSBUcydvLgorICoKKyAqICVCZWdpbi1IZWFkZXIlCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIGFuZCB0aGUgZW50aXJlIHBlcm1pc3Npb24gbm90aWNlIGluIGl0cyBlbnRpcmV0eSwKKyAqICAgIGluY2x1ZGluZyB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50aWVzLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKKyAqICAgIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3IKKyAqICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFMTCBPRgorICogV0hJQ0ggQVJFIEhFUkVCWSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUgorICogQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQorICogVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgTk9UIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqICVFbmQtSGVhZGVyJQorICovCisKKyNpZmRlZiBfV0lOMzIKKyNkZWZpbmUgX1dJTjMyX1dJTk5UIDB4MDUwMAorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNkZWZpbmUgVVVJRCBNWVVVSUQKKyNlbmRpZgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpZmRlZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpZmRlZiBIQVZFX1NZU19USU1FX0gKKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2VuZGlmCisjaW5jbHVkZSA8dGltZS5oPgorCisjaW5jbHVkZSAidXVpZFAuaCIKKwordGltZV90IHV1aWRfdGltZShjb25zdCB1dWlkX3QgdXUsIHN0cnVjdCB0aW1ldmFsICpyZXRfdHYpCit7CisJc3RydWN0IHRpbWV2YWwJCXR2OworCXN0cnVjdCB1dWlkCQl1dWlkOworCXVpbnQzMl90CQloaWdoOworCXVpbnQ2NF90CQljbG9ja19yZWc7CisKKwl1dWlkX3VucGFjayh1dSwgJnV1aWQpOworCisJaGlnaCA9IHV1aWQudGltZV9taWQgfCAoKHV1aWQudGltZV9oaV9hbmRfdmVyc2lvbiAmIDB4RkZGKSA8PCAxNik7CisJY2xvY2tfcmVnID0gdXVpZC50aW1lX2xvdyB8ICgodWludDY0X3QpIGhpZ2ggPDwgMzIpOworCisJY2xvY2tfcmVnIC09ICgoKHVpbnQ2NF90KSAweDAxQjIxREQyKSA8PCAzMikgKyAweDEzODE0MDAwOworCXR2LnR2X3NlYyA9IGNsb2NrX3JlZyAvIDEwMDAwMDAwOworCXR2LnR2X3VzZWMgPSAoY2xvY2tfcmVnICUgMTAwMDAwMDApIC8gMTA7CisKKwlpZiAocmV0X3R2KQorCQkqcmV0X3R2ID0gdHY7CisKKwlyZXR1cm4gdHYudHZfc2VjOworfQorCitpbnQgdXVpZF90eXBlKGNvbnN0IHV1aWRfdCB1dSkKK3sKKwlzdHJ1Y3QgdXVpZAkJdXVpZDsKKworCXV1aWRfdW5wYWNrKHV1LCAmdXVpZCk7CisJcmV0dXJuICgodXVpZC50aW1lX2hpX2FuZF92ZXJzaW9uID4+IDEyKSAmIDB4Rik7Cit9CisKK2ludCB1dWlkX3ZhcmlhbnQoY29uc3QgdXVpZF90IHV1KQoreworCXN0cnVjdCB1dWlkCQl1dWlkOworCWludAkJCXZhcjsKKworCXV1aWRfdW5wYWNrKHV1LCAmdXVpZCk7CisJdmFyID0gdXVpZC5jbG9ja19zZXE7CisKKwlpZiAoKHZhciAmIDB4ODAwMCkgPT0gMCkKKwkJcmV0dXJuIFVVSURfVkFSSUFOVF9OQ1M7CisJaWYgKCh2YXIgJiAweDQwMDApID09IDApCisJCXJldHVybiBVVUlEX1ZBUklBTlRfRENFOworCWlmICgodmFyICYgMHgyMDAwKSA9PSAwKQorCQlyZXR1cm4gVVVJRF9WQVJJQU5UX01JQ1JPU09GVDsKKwlyZXR1cm4gVVVJRF9WQVJJQU5UX09USEVSOworfQorCisjaWZkZWYgREVCVUcKK3N0YXRpYyBjb25zdCBjaGFyICp2YXJpYW50X3N0cmluZyhpbnQgdmFyaWFudCkKK3sKKwlzd2l0Y2ggKHZhcmlhbnQpIHsKKwljYXNlIFVVSURfVkFSSUFOVF9OQ1M6CisJCXJldHVybiAiTkNTIjsKKwljYXNlIFVVSURfVkFSSUFOVF9EQ0U6CisJCXJldHVybiAiRENFIjsKKwljYXNlIFVVSURfVkFSSUFOVF9NSUNST1NPRlQ6CisJCXJldHVybiAiTWljcm9zb2Z0IjsKKwlkZWZhdWx0OgorCQlyZXR1cm4gIk90aGVyIjsKKwl9Cit9CisKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwl1dWlkX3QJCWJ1ZjsKKwl0aW1lX3QJCXRpbWVfcmVnOworCXN0cnVjdCB0aW1ldmFsCXR2OworCWludAkJdHlwZSwgdmFyaWFudDsKKworCWlmIChhcmdjICE9IDIpIHsKKwkJZnByaW50ZihzdGRlcnIsICJVc2FnZTogJXMgdXVpZFxuIiwgYXJndlswXSk7CisJCWV4aXQoMSk7CisJfQorCWlmICh1dWlkX3BhcnNlKGFyZ3ZbMV0sIGJ1ZikpIHsKKwkJZnByaW50ZihzdGRlcnIsICJJbnZhbGlkIFVVSUQ6ICVzXG4iLCBhcmd2WzFdKTsKKwkJZXhpdCgxKTsKKwl9CisJdmFyaWFudCA9IHV1aWRfdmFyaWFudChidWYpOworCXR5cGUgPSB1dWlkX3R5cGUoYnVmKTsKKwl0aW1lX3JlZyA9IHV1aWRfdGltZShidWYsICZ0dik7CisKKwlwcmludGYoIlVVSUQgdmFyaWFudCBpcyAlZCAoJXMpXG4iLCB2YXJpYW50LCB2YXJpYW50X3N0cmluZyh2YXJpYW50KSk7CisJaWYgKHZhcmlhbnQgIT0gVVVJRF9WQVJJQU5UX0RDRSkgeworCQlwcmludGYoIldhcm5pbmc6IFRoaXMgcHJvZ3JhbSBvbmx5IGtub3dzIGhvdyB0byBpbnRlcnByZXQgIgorCQkgICAgICAgIkRDRSBVVUlEcy5cblx0VGhlIHJlc3Qgb2YgdGhlIG91dHB1dCBpcyBsaWtlbHkgIgorCQkgICAgICAgInRvIGJlIGluY29ycmVjdCEhXG4iKTsKKwl9CisJcHJpbnRmKCJVVUlEIHR5cGUgaXMgJWQiLCB0eXBlKTsKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIDE6CisJCXByaW50ZigiICh0aW1lIGJhc2VkKVxuIik7CisJCWJyZWFrOworCWNhc2UgMjoKKwkJcHJpbnRmKCIgKERDRSlcbiIpOworCQlicmVhazsKKwljYXNlIDM6CisJCXByaW50ZigiIChuYW1lLWJhc2VkKVxuIik7CisJCWJyZWFrOworCWNhc2UgNDoKKwkJcHJpbnRmKCIgKHJhbmRvbSlcbiIpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwcmludGYoIlxuIik7CisJfQorCWlmICh0eXBlICE9IDEpIHsKKwkJcHJpbnRmKCJXYXJuaW5nOiBub3QgYSB0aW1lLWJhc2VkIFVVSUQsIHNvIFVVSUQgdGltZSAiCisJCSAgICAgICAiZGVjb2Rpbmcgd2lsbCBsaWtlbHkgbm90IHdvcmshXG4iKTsKKwl9CisJcHJpbnRmKCJVVUlEIHRpbWUgaXM6ICglbGQsICVsZCk6ICVzXG4iLCB0di50dl9zZWMsIHR2LnR2X3VzZWMsCisJICAgICAgIGN0aW1lKCZ0aW1lX3JlZykpOworCisJcmV0dXJuIDA7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy91dWlkZC5oIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc2hsaWJzL3V1aWQvc3JjL3V1aWRkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhlZTBlNQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3NyYy91dWlkZC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBEZWZpbml0aW9ucyB1c2VkIGJ5IHRoZSB1dWlkZCBkYWVtb24KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgVGhlb2RvcmUgVHMnby4KKyAqCisgKiAlQmVnaW4tSGVhZGVyJQorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCBhbmQgdGhlIGVudGlyZSBwZXJtaXNzaW9uIG5vdGljZSBpbiBpdHMgZW50aXJldHksCisgKiAgICBpbmNsdWRpbmcgdGhlIGRpc2NsYWltZXIgb2Ygd2FycmFudGllcy4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCisgKiAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisgKiAgICB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBBTEwgT0YKKyAqIFdISUNIIEFSRSBIRVJFQlkgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKyAqIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUKKyAqIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIE5PVCBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKiAlRW5kLUhlYWRlciUKKyAqLworCisjaWZuZGVmIF9VVUlEX1VVSUREX0gKKyNkZWZpbmUgX1VVSURfVVVJRERfSAorCisjZGVmaW5lIFVVSUREX0RJUgkJIi92YXIvcnVuL3V1aWRkIgorI2RlZmluZSBVVUlERF9TT0NLRVRfUEFUSAlVVUlERF9ESVIgIi9yZXF1ZXN0IgorI2RlZmluZSBVVUlERF9QSURGSUxFX1BBVEgJVVVJRERfRElSICIvdXVpZGQucGlkIgorI2RlZmluZSBVVUlERF9QQVRICQkiL3Vzci9zYmluL3V1aWRkIgorCisjZGVmaW5lIFVVSUREX09QX0dFVFBJRAkJCTAKKyNkZWZpbmUgVVVJRERfT1BfR0VUX01BWE9QCQkxCisjZGVmaW5lIFVVSUREX09QX1RJTUVfVVVJRAkJMgorI2RlZmluZSBVVUlERF9PUF9SQU5ET01fVVVJRAkJMworI2RlZmluZSBVVUlERF9PUF9CVUxLX1RJTUVfVVVJRAkJNAorI2RlZmluZSBVVUlERF9PUF9CVUxLX1JBTkRPTV9VVUlECTUKKyNkZWZpbmUgVVVJRERfTUFYX09QCQkJVVVJRERfT1BfQlVMS19SQU5ET01fVVVJRAorCitleHRlcm4gdm9pZCB1dWlkX19nZW5lcmF0ZV90aW1lKHV1aWRfdCBvdXQsIGludCAqbnVtKTsKK2V4dGVybiB2b2lkIHV1aWRfX2dlbmVyYXRlX3JhbmRvbSh1dWlkX3Qgb3V0LCBpbnQgKm51bSk7CisKKyNlbmRpZiAvKiBfVVVJRF9VVUlEX0ggKi8KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3NobGlicy91dWlkL3V1aWQucGMuaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC91dWlkLnBjLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NWRlMTkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zaGxpYnMvdXVpZC91dWlkLnBjLmluCkBAIC0wLDAgKzEsMTEgQEAKK3ByZWZpeD1AcHJlZml4QAorZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAorbGliZGlyPUB1c3JsaWJfZXhlY2RpckAKK2luY2x1ZGVkaXI9QGluY2x1ZGVkaXJACisKK05hbWU6IHV1aWQKK0Rlc2NyaXB0aW9uOiBVbml2ZXJzYWxseSB1bmlxdWUgaWQgbGlicmFyeQorVmVyc2lvbjogQExJQlVVSURfVkVSU0lPTkAKK1JlcXVpcmVzOgorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vdXVpZAorTGliczogLUwke2xpYmRpcn0gLWx1dWlkCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvTWFrZWZpbGUuYW0gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIyNTMzMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDExMSBAQAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCisKK2Jpbl9QUk9HUkFNUyA9CitzYmluX1BST0dSQU1TID0KK3VzcmJpbl9leGVjX1BST0dSQU1TID0gZmxvY2sgaXBjcm0gaXBjcyBpcGNtayByZW5pY2Ugc2V0c2lkCit1c3JzYmluX2V4ZWNfUFJPR1JBTVMgPSByZWFkcHJvZmlsZQorCitkaXN0X21hbl9NQU5TID0gZmxvY2suMSBpcGNybS4xIGlwY3MuMSBpcGNtay4xIHJlbmljZS4xIHNldHNpZC4xIFwKKwkJcmVhZHByb2ZpbGUuMQorCitpZiBMSU5VWAorYmluX1BST0dSQU1TICs9IGRtZXNnCitzYmluX1BST0dSQU1TICs9IGN0cmxhbHRkZWwKK3VzcmJpbl9leGVjX1BST0dSQU1TICs9IGN5dHVuZSBzZXRhcmNoIGxzY3B1Cit1c3JzYmluX2V4ZWNfUFJPR1JBTVMgKz0gbGRhdHRhY2ggdHVuZWxwIHJ0Y3dha2UKKworZGlzdF9tYW5fTUFOUyArPSBkbWVzZy4xIGN0cmxhbHRkZWwuOCBjeXR1bmUuOCBzZXRhcmNoLjggXAorCQlsZGF0dGFjaC44IGxzY3B1LjEgdHVuZWxwLjggcnRjd2FrZS44CitlbmRpZgorCitjeXR1bmVfU09VUkNFUyA9IGN5dHVuZS5jIGN5Y2xhZGVzLmgKK3R1bmVscF9TT1VSQ0VTID0gdHVuZWxwLmMgbHAuaAorCitpbmZvX1RFWElORk9TID0gaXBjLnRleGkKKworaWYgQlVJTERfRkFMTE9DQVRFCit1c3JiaW5fZXhlY19QUk9HUkFNUyArPSBmYWxsb2NhdGUKK2Rpc3RfbWFuX01BTlMgKz0gZmFsbG9jYXRlLjEKK2VuZGlmCisKK2lmIEJVSUxEX1BJVk9UX1JPT1QKK3NiaW5fUFJPR1JBTVMgKz0gcGl2b3Rfcm9vdAorZGlzdF9tYW5fTUFOUyArPSBwaXZvdF9yb290LjgKK2VuZGlmCisKK2lmIEJVSUxEX1NXSVRDSF9ST09UCitzYmluX1BST0dSQU1TICs9IHN3aXRjaF9yb290CitkaXN0X21hbl9NQU5TICs9IHN3aXRjaF9yb290LjgKK2VuZGlmCisKK2lmIEJVSUxEX1VOU0hBUkUKK3VzcmJpbl9leGVjX1BST0dSQU1TICs9IHVuc2hhcmUKK2Rpc3RfbWFuX01BTlMgKz0gdW5zaGFyZS4xCitlbmRpZgorCitpZiBCVUlMRF9BUkNICitiaW5fUFJPR1JBTVMgKz0gYXJjaAorZGlzdF9tYW5fTUFOUyArPSBhcmNoLjEKK2VuZGlmCisKK1JERVZfTElOS1MgPQoraWYgQlVJTERfUkRFVgordXNyc2Jpbl9leGVjX1BST0dSQU1TICs9IHJkZXYKK1JERVZfTElOS1MgKz0gcmFtc2l6ZSB2aWRtb2RlIHJvb3RmbGFncworZGlzdF9tYW5fTUFOUyArPSByZGV2LjgKK2VuZGlmCisKK1NFVEFSQ0hfTElOS1MgPSBsaW51eDMyIGxpbnV4NjQKKworaWYgQVJDSF9TMzkwCitTRVRBUkNIX0xJTktTICs9IHMzOTAgczM5MHgKK2VuZGlmCitpZiBBUkNIX0k4NgorU0VUQVJDSF9MSU5LUyArPSBpMzg2CitlbmRpZgoraWYgQVJDSF84Nl82NAorU0VUQVJDSF9MSU5LUyArPSBpMzg2IHg4Nl82NAorZW5kaWYKK2lmIEFSQ0hfUFBDCitTRVRBUkNIX0xJTktTICs9IHBwYyBwcGM2NCBwcGMzMgorZW5kaWYKK2lmIEFSQ0hfU1BBUkMKK1NFVEFSQ0hfTElOS1MgKz0gc3BhcmMgc3BhcmM2NCBzcGFyYzMyIHNwYXJjMzJiYXNoCitlbmRpZgoraWYgQVJDSF9NSVBTCitTRVRBUkNIX0xJTktTICs9IG1pcHMgbWlwczY0IG1pcHMzMgorZW5kaWYKK2lmIEFSQ0hfSUE2NAorU0VUQVJDSF9MSU5LUyArPSBpMzg2IGlhNjQKK2VuZGlmCitpZiBBUkNIX0hQUEEKK1NFVEFSQ0hfTElOS1MgKz0gcGFyaXNjIHBhcmlzYzY0IHBhcmlzYzMyCitlbmRpZgorCitSREVWX01BTl9MSU5LUyA9ICQoUkRFVl9MSU5LUzo9LjgpCitTRVRBUkNIX01BTl9MSU5LUyA9ICQoU0VUQVJDSF9MSU5LUzo9LjgpCittYW5fTUFOUyA9ICQoUkRFVl9NQU5fTElOS1MpICQoU0VUQVJDSF9NQU5fTElOS1MpCitDTEVBTkZJTEVTID0gJChtYW5fTUFOUykKKworJChSREVWX01BTl9MSU5LUyk6IHJkZXYuOAorCWVjaG8gIi5zbyBtYW44L3JkZXYuOCIgPiAkQAorCiskKFNFVEFSQ0hfTUFOX0xJTktTKTogc2V0YXJjaC44CisJZWNobyAiLnNvIG1hbjgvc2V0YXJjaC44IiA+ICRACisKK2luc3RhbGwtZXhlYy1ob29rOgorCWZvciBJIGluICQoUkRFVl9MSU5LUyk7IGRvIFwKKwkJY2QgJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKSAmJiBsbiAtc2YgcmRldiAkJEkgOyBcCisJZG9uZQorCWZvciBJIGluICQoU0VUQVJDSF9MSU5LUyk7IGRvIFwKKwkJY2QgJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpICYmIGxuIC1zZiBzZXRhcmNoICQkSSA7IFwKKwlkb25lCisKK3VuaW5zdGFsbC1ob29rOgorCWZvciBJIGluICQoUkRFVl9MSU5LUyk7IGRvIFwKKwkJcm0gLWYgJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpLyQkSSA7IFwKKwlkb25lCisJZm9yIEkgaW4gJChTRVRBUkNIX0xJTktTKTsgZG8gXAorCQlybSAtZiAkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikvJCRJIDsgXAorCWRvbmUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNDBiZjAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSwxMzM5IEBACisjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKworIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgorIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworQFNFVF9NQUtFQAorCisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK0RJU1RfQ09NTU9OID0gJChhbV9fZGlzdF9ub2luc3RfREFUQV9ESVNUKSAkKGRpc3RfbWFuX01BTlMpIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCitiaW5fUFJPR1JBTVMgPSAkKGFtX19FWEVFWFRfMSkgJChhbV9fRVhFRVhUXzIpCitzYmluX1BST0dSQU1TID0gJChhbV9fRVhFRVhUXzMpICQoYW1fX0VYRUVYVF80KSAkKGFtX19FWEVFWFRfNSkKK3VzcmJpbl9leGVjX1BST0dSQU1TID0gZmxvY2skKEVYRUVYVCkgaXBjcm0kKEVYRUVYVCkgaXBjcyQoRVhFRVhUKSBcCisJaXBjbWskKEVYRUVYVCkgcmVuaWNlJChFWEVFWFQpIHNldHNpZCQoRVhFRVhUKSAkKGFtX19FWEVFWFRfNikgXAorCSQoYW1fX0VYRUVYVF83KSAkKGFtX19FWEVFWFRfOCkKK3VzcnNiaW5fZXhlY19QUk9HUkFNUyA9IHJlYWRwcm9maWxlJChFWEVFWFQpICQoYW1fX0VYRUVYVF85KSBcCisJJChhbV9fRVhFRVhUXzEwKQorQExJTlVYX1RSVUVAYW1fX2FwcGVuZF8xID0gZG1lc2cKK0BMSU5VWF9UUlVFQGFtX19hcHBlbmRfMiA9IGN0cmxhbHRkZWwKK0BMSU5VWF9UUlVFQGFtX19hcHBlbmRfMyA9IGN5dHVuZSBzZXRhcmNoIGxzY3B1CitATElOVVhfVFJVRUBhbV9fYXBwZW5kXzQgPSBsZGF0dGFjaCB0dW5lbHAgcnRjd2FrZQorQExJTlVYX1RSVUVAYW1fX2FwcGVuZF81ID0gZG1lc2cuMSBjdHJsYWx0ZGVsLjggY3l0dW5lLjggc2V0YXJjaC44IFwKK0BMSU5VWF9UUlVFQAkJbGRhdHRhY2guOCBsc2NwdS4xIHR1bmVscC44IHJ0Y3dha2UuOAorCitAQlVJTERfRkFMTE9DQVRFX1RSVUVAYW1fX2FwcGVuZF82ID0gZmFsbG9jYXRlCitAQlVJTERfRkFMTE9DQVRFX1RSVUVAYW1fX2FwcGVuZF83ID0gZmFsbG9jYXRlLjEKK0BCVUlMRF9QSVZPVF9ST09UX1RSVUVAYW1fX2FwcGVuZF84ID0gcGl2b3Rfcm9vdAorQEJVSUxEX1BJVk9UX1JPT1RfVFJVRUBhbV9fYXBwZW5kXzkgPSBwaXZvdF9yb290LjgKK0BCVUlMRF9TV0lUQ0hfUk9PVF9UUlVFQGFtX19hcHBlbmRfMTAgPSBzd2l0Y2hfcm9vdAorQEJVSUxEX1NXSVRDSF9ST09UX1RSVUVAYW1fX2FwcGVuZF8xMSA9IHN3aXRjaF9yb290LjgKK0BCVUlMRF9VTlNIQVJFX1RSVUVAYW1fX2FwcGVuZF8xMiA9IHVuc2hhcmUKK0BCVUlMRF9VTlNIQVJFX1RSVUVAYW1fX2FwcGVuZF8xMyA9IHVuc2hhcmUuMQorQEJVSUxEX0FSQ0hfVFJVRUBhbV9fYXBwZW5kXzE0ID0gYXJjaAorQEJVSUxEX0FSQ0hfVFJVRUBhbV9fYXBwZW5kXzE1ID0gYXJjaC4xCitAQlVJTERfUkRFVl9UUlVFQGFtX19hcHBlbmRfMTYgPSByZGV2CitAQlVJTERfUkRFVl9UUlVFQGFtX19hcHBlbmRfMTcgPSByYW1zaXplIHZpZG1vZGUgcm9vdGZsYWdzCitAQlVJTERfUkRFVl9UUlVFQGFtX19hcHBlbmRfMTggPSByZGV2LjgKK0BBUkNIX1MzOTBfVFJVRUBhbV9fYXBwZW5kXzE5ID0gczM5MCBzMzkweAorQEFSQ0hfSTg2X1RSVUVAYW1fX2FwcGVuZF8yMCA9IGkzODYKK0BBUkNIXzg2XzY0X1RSVUVAYW1fX2FwcGVuZF8yMSA9IGkzODYgeDg2XzY0CitAQVJDSF9QUENfVFJVRUBhbV9fYXBwZW5kXzIyID0gcHBjIHBwYzY0IHBwYzMyCitAQVJDSF9TUEFSQ19UUlVFQGFtX19hcHBlbmRfMjMgPSBzcGFyYyBzcGFyYzY0IHNwYXJjMzIgc3BhcmMzMmJhc2gKK0BBUkNIX01JUFNfVFJVRUBhbV9fYXBwZW5kXzI0ID0gbWlwcyBtaXBzNjQgbWlwczMyCitAQVJDSF9JQTY0X1RSVUVAYW1fX2FwcGVuZF8yNSA9IGkzODYgaWE2NAorQEFSQ0hfSFBQQV9UUlVFQGFtX19hcHBlbmRfMjYgPSBwYXJpc2MgcGFyaXNjNjQgcGFyaXNjMzIKK3N1YmRpciA9IHN5cy11dGlscworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQExJTlVYX1RSVUVAYW1fX0VYRUVYVF8xID0gZG1lc2ckKEVYRUVYVCkKK0BCVUlMRF9BUkNIX1RSVUVAYW1fX0VYRUVYVF8yID0gYXJjaCQoRVhFRVhUKQorYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChzYmluZGlyKSIgXAorCSIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpIiBcCisJIiQoREVTVERJUikkKGluZm9kaXIpIiAiJChERVNURElSKSQobWFuMWRpcikiIFwKKwkiJChERVNURElSKSQobWFuOGRpcikiCitATElOVVhfVFJVRUBhbV9fRVhFRVhUXzMgPSBjdHJsYWx0ZGVsJChFWEVFWFQpCitAQlVJTERfUElWT1RfUk9PVF9UUlVFQGFtX19FWEVFWFRfNCA9IHBpdm90X3Jvb3QkKEVYRUVYVCkKK0BCVUlMRF9TV0lUQ0hfUk9PVF9UUlVFQGFtX19FWEVFWFRfNSA9IHN3aXRjaF9yb290JChFWEVFWFQpCitATElOVVhfVFJVRUBhbV9fRVhFRVhUXzYgPSBjeXR1bmUkKEVYRUVYVCkgc2V0YXJjaCQoRVhFRVhUKSBcCitATElOVVhfVFJVRUAJbHNjcHUkKEVYRUVYVCkKK0BCVUlMRF9GQUxMT0NBVEVfVFJVRUBhbV9fRVhFRVhUXzcgPSBmYWxsb2NhdGUkKEVYRUVYVCkKK0BCVUlMRF9VTlNIQVJFX1RSVUVAYW1fX0VYRUVYVF84ID0gdW5zaGFyZSQoRVhFRVhUKQorQExJTlVYX1RSVUVAYW1fX0VYRUVYVF85ID0gbGRhdHRhY2gkKEVYRUVYVCkgdHVuZWxwJChFWEVFWFQpIFwKK0BMSU5VWF9UUlVFQAlydGN3YWtlJChFWEVFWFQpCitAQlVJTERfUkRFVl9UUlVFQGFtX19FWEVFWFRfMTAgPSByZGV2JChFWEVFWFQpCitQUk9HUkFNUyA9ICQoYmluX1BST0dSQU1TKSAkKHNiaW5fUFJPR1JBTVMpICQodXNyYmluX2V4ZWNfUFJPR1JBTVMpIFwKKwkkKHVzcnNiaW5fZXhlY19QUk9HUkFNUykKK2FyY2hfU09VUkNFUyA9IGFyY2guYworYXJjaF9PQkpFQ1RTID0gYXJjaC4kKE9CSkVYVCkKK2FyY2hfTERBREQgPSAkKExEQUREKQorQU1fVl9sdCA9ICQoYW1fX3ZfbHRfJChWKSkKK2FtX192X2x0XyA9ICQoYW1fX3ZfbHRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9sdF8wID0gLS1zaWxlbnQKK2N0cmxhbHRkZWxfU09VUkNFUyA9IGN0cmxhbHRkZWwuYworY3RybGFsdGRlbF9PQkpFQ1RTID0gY3RybGFsdGRlbC4kKE9CSkVYVCkKK2N0cmxhbHRkZWxfTERBREQgPSAkKExEQUREKQorYW1fY3l0dW5lX09CSkVDVFMgPSBjeXR1bmUuJChPQkpFWFQpCitjeXR1bmVfT0JKRUNUUyA9ICQoYW1fY3l0dW5lX09CSkVDVFMpCitjeXR1bmVfTERBREQgPSAkKExEQUREKQorZG1lc2dfU09VUkNFUyA9IGRtZXNnLmMKK2RtZXNnX09CSkVDVFMgPSBkbWVzZy4kKE9CSkVYVCkKK2RtZXNnX0xEQUREID0gJChMREFERCkKK2ZhbGxvY2F0ZV9TT1VSQ0VTID0gZmFsbG9jYXRlLmMKK2ZhbGxvY2F0ZV9PQkpFQ1RTID0gZmFsbG9jYXRlLiQoT0JKRVhUKQorZmFsbG9jYXRlX0xEQUREID0gJChMREFERCkKK2Zsb2NrX1NPVVJDRVMgPSBmbG9jay5jCitmbG9ja19PQkpFQ1RTID0gZmxvY2suJChPQkpFWFQpCitmbG9ja19MREFERCA9ICQoTERBREQpCitpcGNta19TT1VSQ0VTID0gaXBjbWsuYworaXBjbWtfT0JKRUNUUyA9IGlwY21rLiQoT0JKRVhUKQoraXBjbWtfTERBREQgPSAkKExEQUREKQoraXBjcm1fU09VUkNFUyA9IGlwY3JtLmMKK2lwY3JtX09CSkVDVFMgPSBpcGNybS4kKE9CSkVYVCkKK2lwY3JtX0xEQUREID0gJChMREFERCkKK2lwY3NfU09VUkNFUyA9IGlwY3MuYworaXBjc19PQkpFQ1RTID0gaXBjcy4kKE9CSkVYVCkKK2lwY3NfTERBREQgPSAkKExEQUREKQorbGRhdHRhY2hfU09VUkNFUyA9IGxkYXR0YWNoLmMKK2xkYXR0YWNoX09CSkVDVFMgPSBsZGF0dGFjaC4kKE9CSkVYVCkKK2xkYXR0YWNoX0xEQUREID0gJChMREFERCkKK2xzY3B1X1NPVVJDRVMgPSBsc2NwdS5jCitsc2NwdV9PQkpFQ1RTID0gbHNjcHUuJChPQkpFWFQpCitsc2NwdV9MREFERCA9ICQoTERBREQpCitwaXZvdF9yb290X1NPVVJDRVMgPSBwaXZvdF9yb290LmMKK3Bpdm90X3Jvb3RfT0JKRUNUUyA9IHBpdm90X3Jvb3QuJChPQkpFWFQpCitwaXZvdF9yb290X0xEQUREID0gJChMREFERCkKK3JkZXZfU09VUkNFUyA9IHJkZXYuYworcmRldl9PQkpFQ1RTID0gcmRldi4kKE9CSkVYVCkKK3JkZXZfTERBREQgPSAkKExEQUREKQorcmVhZHByb2ZpbGVfU09VUkNFUyA9IHJlYWRwcm9maWxlLmMKK3JlYWRwcm9maWxlX09CSkVDVFMgPSByZWFkcHJvZmlsZS4kKE9CSkVYVCkKK3JlYWRwcm9maWxlX0xEQUREID0gJChMREFERCkKK3JlbmljZV9TT1VSQ0VTID0gcmVuaWNlLmMKK3JlbmljZV9PQkpFQ1RTID0gcmVuaWNlLiQoT0JKRVhUKQorcmVuaWNlX0xEQUREID0gJChMREFERCkKK3J0Y3dha2VfU09VUkNFUyA9IHJ0Y3dha2UuYworcnRjd2FrZV9PQkpFQ1RTID0gcnRjd2FrZS4kKE9CSkVYVCkKK3J0Y3dha2VfTERBREQgPSAkKExEQUREKQorc2V0YXJjaF9TT1VSQ0VTID0gc2V0YXJjaC5jCitzZXRhcmNoX09CSkVDVFMgPSBzZXRhcmNoLiQoT0JKRVhUKQorc2V0YXJjaF9MREFERCA9ICQoTERBREQpCitzZXRzaWRfU09VUkNFUyA9IHNldHNpZC5jCitzZXRzaWRfT0JKRUNUUyA9IHNldHNpZC4kKE9CSkVYVCkKK3NldHNpZF9MREFERCA9ICQoTERBREQpCitzd2l0Y2hfcm9vdF9TT1VSQ0VTID0gc3dpdGNoX3Jvb3QuYworc3dpdGNoX3Jvb3RfT0JKRUNUUyA9IHN3aXRjaF9yb290LiQoT0JKRVhUKQorc3dpdGNoX3Jvb3RfTERBREQgPSAkKExEQUREKQorYW1fdHVuZWxwX09CSkVDVFMgPSB0dW5lbHAuJChPQkpFWFQpCit0dW5lbHBfT0JKRUNUUyA9ICQoYW1fdHVuZWxwX09CSkVDVFMpCit0dW5lbHBfTERBREQgPSAkKExEQUREKQordW5zaGFyZV9TT1VSQ0VTID0gdW5zaGFyZS5jCit1bnNoYXJlX09CSkVDVFMgPSB1bnNoYXJlLiQoT0JKRVhUKQordW5zaGFyZV9MREFERCA9ICQoTERBREQpCitERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKQorZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCithbV9fbXYgPSBtdiAtZgorQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorTFRDT01QSUxFID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgXAorCSQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgXAorCSQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0FNX1ZfQ0MgPSAkKGFtX192X0NDXyQoVikpCithbV9fdl9DQ18gPSAkKGFtX192X0NDXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NfMCA9IEBlY2hvICIgIENDICAgICIgJEA7CitBTV9WX2F0ID0gJChhbV9fdl9hdF8kKFYpKQorYW1fX3ZfYXRfID0gJChhbV9fdl9hdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2F0XzAgPSBACitDQ0xEID0gJChDQykKK0xJTksgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKEFNX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK0FNX1ZfQ0NMRCA9ICQoYW1fX3ZfQ0NMRF8kKFYpKQorYW1fX3ZfQ0NMRF8gPSAkKGFtX192X0NDTERfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ0xEXzAgPSBAZWNobyAiICBDQ0xEICAiICRAOworQU1fVl9HRU4gPSAkKGFtX192X0dFTl8kKFYpKQorYW1fX3ZfR0VOXyA9ICQoYW1fX3ZfR0VOXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfR0VOXzAgPSBAZWNobyAiICBHRU4gICAiICRAOworU09VUkNFUyA9IGFyY2guYyBjdHJsYWx0ZGVsLmMgJChjeXR1bmVfU09VUkNFUykgZG1lc2cuYyBmYWxsb2NhdGUuYyBcCisJZmxvY2suYyBpcGNtay5jIGlwY3JtLmMgaXBjcy5jIGxkYXR0YWNoLmMgbHNjcHUuYyBwaXZvdF9yb290LmMgXAorCXJkZXYuYyByZWFkcHJvZmlsZS5jIHJlbmljZS5jIHJ0Y3dha2UuYyBzZXRhcmNoLmMgc2V0c2lkLmMgXAorCXN3aXRjaF9yb290LmMgJCh0dW5lbHBfU09VUkNFUykgdW5zaGFyZS5jCitESVNUX1NPVVJDRVMgPSBhcmNoLmMgY3RybGFsdGRlbC5jICQoY3l0dW5lX1NPVVJDRVMpIGRtZXNnLmMgXAorCWZhbGxvY2F0ZS5jIGZsb2NrLmMgaXBjbWsuYyBpcGNybS5jIGlwY3MuYyBsZGF0dGFjaC5jIGxzY3B1LmMgXAorCXBpdm90X3Jvb3QuYyByZGV2LmMgcmVhZHByb2ZpbGUuYyByZW5pY2UuYyBydGN3YWtlLmMgc2V0YXJjaC5jIFwKKwlzZXRzaWQuYyBzd2l0Y2hfcm9vdC5jICQodHVuZWxwX1NPVVJDRVMpIHVuc2hhcmUuYworSU5GT19ERVBTID0gJChzcmNkaXIpL2lwYy5pbmZvCitURVhJTkZPX1RFWCA9ICQodG9wX3NyY2RpcikvY29uZmlnL3RleGluZm8udGV4CithbV9fVEVYSU5GT19URVhfRElSID0gJCh0b3Bfc3JjZGlyKS9jb25maWcKK0RWSVMgPSBpcGMuZHZpCitQREZTID0gaXBjLnBkZgorUFNTID0gaXBjLnBzCitIVE1MUyA9IGlwYy5odG1sCitURVhJTkZPUyA9IGlwYy50ZXhpCitURVhJMkRWSSA9IHRleGkyZHZpCitURVhJMlBERiA9ICQoVEVYSTJEVkkpIC0tcGRmIC0tYmF0Y2gKK01BS0VJTkZPSFRNTCA9ICQoTUFLRUlORk8pIC0taHRtbAorQU1fTUFLRUlORk9IVE1MRkxBR1MgPSAkKEFNX01BS0VJTkZPRkxBR1MpCitEVklQUyA9IGR2aXBzCithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCittYW4xZGlyID0gJChtYW5kaXIpL21hbjEKK21hbjhkaXIgPSAkKG1hbmRpcikvbWFuOAorTlJPRkYgPSBucm9mZgorTUFOUyA9ICQoZGlzdF9tYW5fTUFOUykgJChtYW5fTUFOUykKK2FtX19kaXN0X25vaW5zdF9EQVRBX0RJU1QgPSBmbG9jay4xIGlwY3JtLjEgaXBjcy4xIGlwY21rLjEgcmVuaWNlLjEgXAorCXNldHNpZC4xIHJlYWRwcm9maWxlLjEgZG1lc2cuMSBjdHJsYWx0ZGVsLjggY3l0dW5lLjggc2V0YXJjaC44IFwKKwlsZGF0dGFjaC44IGxzY3B1LjEgdHVuZWxwLjggcnRjd2FrZS44IGZhbGxvY2F0ZS4xIHBpdm90X3Jvb3QuOCBcCisJc3dpdGNoX3Jvb3QuOCB1bnNoYXJlLjEgYXJjaC4xIHJkZXYuOAorREFUQSA9ICQoZGlzdF9ub2luc3RfREFUQSkKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitkaXN0X21hbl9NQU5TID0gZmxvY2suMSBpcGNybS4xIGlwY3MuMSBpcGNtay4xIHJlbmljZS4xIHNldHNpZC4xIFwKKwlyZWFkcHJvZmlsZS4xICQoYW1fX2FwcGVuZF81KSAkKGFtX19hcHBlbmRfNykgJChhbV9fYXBwZW5kXzkpIFwKKwkkKGFtX19hcHBlbmRfMTEpICQoYW1fX2FwcGVuZF8xMykgJChhbV9fYXBwZW5kXzE1KSBcCisJJChhbV9fYXBwZW5kXzE4KQorY3l0dW5lX1NPVVJDRVMgPSBjeXR1bmUuYyBjeWNsYWRlcy5oCit0dW5lbHBfU09VUkNFUyA9IHR1bmVscC5jIGxwLmgKK2luZm9fVEVYSU5GT1MgPSBpcGMudGV4aQorUkRFVl9MSU5LUyA9ICQoYW1fX2FwcGVuZF8xNykKK1NFVEFSQ0hfTElOS1MgPSBsaW51eDMyIGxpbnV4NjQgJChhbV9fYXBwZW5kXzE5KSAkKGFtX19hcHBlbmRfMjApIFwKKwkkKGFtX19hcHBlbmRfMjEpICQoYW1fX2FwcGVuZF8yMikgJChhbV9fYXBwZW5kXzIzKSBcCisJJChhbV9fYXBwZW5kXzI0KSAkKGFtX19hcHBlbmRfMjUpICQoYW1fX2FwcGVuZF8yNikKK1JERVZfTUFOX0xJTktTID0gJChSREVWX0xJTktTOj0uOCkKK1NFVEFSQ0hfTUFOX0xJTktTID0gJChTRVRBUkNIX0xJTktTOj0uOCkKK21hbl9NQU5TID0gJChSREVWX01BTl9MSU5LUykgJChTRVRBUkNIX01BTl9MSU5LUykKK0NMRUFORklMRVMgPSAkKG1hbl9NQU5TKQorYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAuZHZpIC5odG1sIC5pbmZvIC5sbyAubyAub2JqIC5wZGYgLnBzIC50ZXhpCiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbSAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gc3lzLXV0aWxzL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZm9yZWlnbiBzeXMtdXRpbHMvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgoraW5zdGFsbC1iaW5QUk9HUkFNUzogJChiaW5fUFJPR1JBTVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChiaW5kaXIpIgorCUBsaXN0PSckKGJpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJChiaW5kaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQoYmluZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAorCSAgICB9IFwKKwk7IGRvbmUKKwordW5pbnN0YWxsLWJpblBST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoYmluZGlyKSIgfHwgbGlzdD07IFwKKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgXAorCSAgc2VkIC1lICdoO3MsXi4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSknIFwKKwkgICAgICAtZSAncy8kJC8kKEVYRUVYVCkvJyBgOyBcCisJdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQoYmluZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKGJpbmRpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tYmluUFJPR1JBTVM6CisJQGxpc3Q9JyQoYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAoraW5zdGFsbC1zYmluUFJPR1JBTVM6ICQoc2Jpbl9QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHNiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChzYmluZGlyKSIKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoc2JpbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJChzYmluZGlyKSQkZGlyJyI7IFwKKwkgICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgIiQoREVTVERJUikkKHNiaW5kaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtc2JpblBST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoc2Jpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHNiaW5kaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChzYmluZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHNiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK2NsZWFuLXNiaW5QUk9HUkFNUzoKKwlAbGlzdD0nJChzYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAoraW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TOiAkKHVzcmJpbl9leGVjX1BST0dSQU1TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQodXNyYmluX2V4ZWNkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiCisJQGxpc3Q9JyQodXNyYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCh1c3JiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikkJGRpciciOyBcCisJICAgICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgfSBcCisJOyBkb25lCisKK3VuaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQodXNyYmluX2V4ZWNfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCh1c3JiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKwkgIHNlZCAtZSAnaDtzLF4uKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pJyBcCisJICAgICAgLWUgJ3MvJCQvJChFWEVFWFQpLycgYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworCitjbGVhbi11c3JiaW5fZXhlY1BST0dSQU1TOgorCUBsaXN0PSckKHVzcmJpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAoraW5zdGFsbC11c3JzYmluX2V4ZWNQUk9HUkFNUzogJCh1c3JzYmluX2V4ZWNfUFJPR1JBTVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJCh1c3JzYmluX2V4ZWNkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpIgorCUBsaXN0PSckKHVzcnNiaW5fZXhlY19QUk9HUkFNUyknOyB0ZXN0IC1uICIkKHVzcnNiaW5fZXhlY2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKwlzZWQgJ3MvJChFWEVFWFQpJCQvLycgfCBcCisJd2hpbGUgcmVhZCBwIHAxOyBkbyBpZiB0ZXN0IC1mICQkcCB8fCB0ZXN0IC1mICQkcDE7IFwKKwkgIHRoZW4gZWNobyAiJCRwIjsgZWNobyAiJCRwIjsgZWxzZSA6OyBmaTsgXAorCWRvbmUgfCBcCisJc2VkIC1lICdwO3MsLiovLCw7bjtoJyAtZSAnc3wuKnwufCcgXAorCSAgICAtZSAncDt4O3MsLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nIHwgXAorCXNlZCAnTjtOO047cyxcbiwgLGcnIHwgXAorCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDEgfSBcCisJICB7IGQ9JCQzOyBpZiAoZGlyc1tkXSAhPSAxKSB7IHByaW50ICJkIiwgZDsgZGlyc1tkXSA9IDEgfSBcCisJICAgIGlmICgkJDIgPT0gJCQ0KSBmaWxlc1tkXSA9IGZpbGVzW2RdICIgIiAkJDE7IFwKKwkgICAgZWxzZSB7IHByaW50ICJmIiwgJCQzICIvIiAkJDQsICQkMTsgfSB9IFwKKwkgIEVORCB7IGZvciAoZCBpbiBmaWxlcykgcHJpbnQgImYiLCBkLCBmaWxlc1tkXSB9JyB8IFwKKwl3aGlsZSByZWFkIHR5cGUgZGlyIGZpbGVzOyBkbyBcCisJICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICckKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAorCSAgICB9IFwKKwk7IGRvbmUKKwordW5pbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQodXNyc2Jpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyc2Jpbl9leGVjZGlyKSIgfHwgbGlzdD07IFwKKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgXAorCSAgc2VkIC1lICdoO3MsXi4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSknIFwKKwkgICAgICAtZSAncy8kJC8kKEVYRUVYVCkvJyBgOyBcCisJdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQodXNyc2Jpbl9leGVjZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tdXNyc2Jpbl9leGVjUFJPR1JBTVM6CisJQGxpc3Q9JyQodXNyc2Jpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAorYXJjaCQoRVhFRVhUKTogJChhcmNoX09CSkVDVFMpICQoYXJjaF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBhcmNoJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGFyY2hfT0JKRUNUUykgJChhcmNoX0xEQUREKSAkKExJQlMpCitjdHJsYWx0ZGVsJChFWEVFWFQpOiAkKGN0cmxhbHRkZWxfT0JKRUNUUykgJChjdHJsYWx0ZGVsX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGN0cmxhbHRkZWwkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoY3RybGFsdGRlbF9PQkpFQ1RTKSAkKGN0cmxhbHRkZWxfTERBREQpICQoTElCUykKK2N5dHVuZSQoRVhFRVhUKTogJChjeXR1bmVfT0JKRUNUUykgJChjeXR1bmVfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgY3l0dW5lJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGN5dHVuZV9PQkpFQ1RTKSAkKGN5dHVuZV9MREFERCkgJChMSUJTKQorZG1lc2ckKEVYRUVYVCk6ICQoZG1lc2dfT0JKRUNUUykgJChkbWVzZ19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBkbWVzZyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChkbWVzZ19PQkpFQ1RTKSAkKGRtZXNnX0xEQUREKSAkKExJQlMpCitmYWxsb2NhdGUkKEVYRUVYVCk6ICQoZmFsbG9jYXRlX09CSkVDVFMpICQoZmFsbG9jYXRlX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGZhbGxvY2F0ZSQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChmYWxsb2NhdGVfT0JKRUNUUykgJChmYWxsb2NhdGVfTERBREQpICQoTElCUykKK2Zsb2NrJChFWEVFWFQpOiAkKGZsb2NrX09CSkVDVFMpICQoZmxvY2tfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgZmxvY2skKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoZmxvY2tfT0JKRUNUUykgJChmbG9ja19MREFERCkgJChMSUJTKQoraXBjbWskKEVYRUVYVCk6ICQoaXBjbWtfT0JKRUNUUykgJChpcGNta19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBpcGNtayQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChpcGNta19PQkpFQ1RTKSAkKGlwY21rX0xEQUREKSAkKExJQlMpCitpcGNybSQoRVhFRVhUKTogJChpcGNybV9PQkpFQ1RTKSAkKGlwY3JtX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGlwY3JtJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGlwY3JtX09CSkVDVFMpICQoaXBjcm1fTERBREQpICQoTElCUykKK2lwY3MkKEVYRUVYVCk6ICQoaXBjc19PQkpFQ1RTKSAkKGlwY3NfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgaXBjcyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChpcGNzX09CSkVDVFMpICQoaXBjc19MREFERCkgJChMSUJTKQorbGRhdHRhY2gkKEVYRUVYVCk6ICQobGRhdHRhY2hfT0JKRUNUUykgJChsZGF0dGFjaF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBsZGF0dGFjaCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChsZGF0dGFjaF9PQkpFQ1RTKSAkKGxkYXR0YWNoX0xEQUREKSAkKExJQlMpCitsc2NwdSQoRVhFRVhUKTogJChsc2NwdV9PQkpFQ1RTKSAkKGxzY3B1X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGxzY3B1JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGxzY3B1X09CSkVDVFMpICQobHNjcHVfTERBREQpICQoTElCUykKK3Bpdm90X3Jvb3QkKEVYRUVYVCk6ICQocGl2b3Rfcm9vdF9PQkpFQ1RTKSAkKHBpdm90X3Jvb3RfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgcGl2b3Rfcm9vdCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChwaXZvdF9yb290X09CSkVDVFMpICQocGl2b3Rfcm9vdF9MREFERCkgJChMSUJTKQorcmRldiQoRVhFRVhUKTogJChyZGV2X09CSkVDVFMpICQocmRldl9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiByZGV2JChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHJkZXZfT0JKRUNUUykgJChyZGV2X0xEQUREKSAkKExJQlMpCityZWFkcHJvZmlsZSQoRVhFRVhUKTogJChyZWFkcHJvZmlsZV9PQkpFQ1RTKSAkKHJlYWRwcm9maWxlX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHJlYWRwcm9maWxlJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHJlYWRwcm9maWxlX09CSkVDVFMpICQocmVhZHByb2ZpbGVfTERBREQpICQoTElCUykKK3JlbmljZSQoRVhFRVhUKTogJChyZW5pY2VfT0JKRUNUUykgJChyZW5pY2VfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgcmVuaWNlJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHJlbmljZV9PQkpFQ1RTKSAkKHJlbmljZV9MREFERCkgJChMSUJTKQorcnRjd2FrZSQoRVhFRVhUKTogJChydGN3YWtlX09CSkVDVFMpICQocnRjd2FrZV9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBydGN3YWtlJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHJ0Y3dha2VfT0JKRUNUUykgJChydGN3YWtlX0xEQUREKSAkKExJQlMpCitzZXRhcmNoJChFWEVFWFQpOiAkKHNldGFyY2hfT0JKRUNUUykgJChzZXRhcmNoX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHNldGFyY2gkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoc2V0YXJjaF9PQkpFQ1RTKSAkKHNldGFyY2hfTERBREQpICQoTElCUykKK3NldHNpZCQoRVhFRVhUKTogJChzZXRzaWRfT0JKRUNUUykgJChzZXRzaWRfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgc2V0c2lkJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKHNldHNpZF9PQkpFQ1RTKSAkKHNldHNpZF9MREFERCkgJChMSUJTKQorc3dpdGNoX3Jvb3QkKEVYRUVYVCk6ICQoc3dpdGNoX3Jvb3RfT0JKRUNUUykgJChzd2l0Y2hfcm9vdF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBzd2l0Y2hfcm9vdCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChzd2l0Y2hfcm9vdF9PQkpFQ1RTKSAkKHN3aXRjaF9yb290X0xEQUREKSAkKExJQlMpCit0dW5lbHAkKEVYRUVYVCk6ICQodHVuZWxwX09CSkVDVFMpICQodHVuZWxwX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHR1bmVscCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJCh0dW5lbHBfT0JKRUNUUykgJCh0dW5lbHBfTERBREQpICQoTElCUykKK3Vuc2hhcmUkKEVYRUVYVCk6ICQodW5zaGFyZV9PQkpFQ1RTKSAkKHVuc2hhcmVfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdW5zaGFyZSQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJCh1bnNoYXJlX09CSkVDVFMpICQodW5zaGFyZV9MREFERCkgJChMSUJTKQorCittb3N0bHljbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLiQoT0JKRVhUKQorCitkaXN0Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi50YWIuYworCitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvYXJjaC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY3RybGFsdGRlbC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY3l0dW5lLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9kbWVzZy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZmFsbG9jYXRlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mbG9jay5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvaXBjbWsuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2lwY3JtLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9pcGNzLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9sZGF0dGFjaC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbHNjcHUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Bpdm90X3Jvb3QuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3JkZXYuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3JlYWRwcm9maWxlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9yZW5pY2UuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3J0Y3dha2UuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3NldGFyY2guUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3NldHNpZC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc3dpdGNoX3Jvb3QuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3R1bmVscC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdW5zaGFyZS5Qb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoTFRDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworCisudGV4aS5pbmZvOgorCXJlc3RvcmU9OiAmJiBiYWNrdXBkaXI9IiQoYW1fX2xlYWRpbmdfZG90KWFtJCQkJCIgJiYgXAorCWFtX19jd2Q9YHB3ZGAgJiYgJChhbV9fY2QpICQoc3JjZGlyKSAmJiBcCisJcm0gLXJmICQkYmFja3VwZGlyICYmIG1rZGlyICQkYmFja3VwZGlyICYmIFwKKwlpZiAoJChNQUtFSU5GTykgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorCSAgZm9yIGYgaW4gJEAgJEAtWzAtOV0gJEAtWzAtOV1bMC05XSAkKEA6LmluZm89KS5pWzAtOV0gJChAOi5pbmZvPSkuaVswLTldWzAtOV07IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAkJGY7IHRoZW4gbXYgJCRmICQkYmFja3VwZGlyOyByZXN0b3JlPW12OyBlbHNlIDo7IGZpOyBcCisJICBkb25lOyBcCisJZWxzZSA6OyBmaSAmJiBcCisJY2QgIiQkYW1fX2N3ZCI7IFwKKwlpZiAkKE1BS0VJTkZPKSAkKEFNX01BS0VJTkZPRkxBR1MpICQoTUFLRUlORk9GTEFHUykgLUkgJChzcmNkaXIpIFwKKwkgLW8gJEAgJDw7IFwKKwl0aGVuIFwKKwkgIHJjPTA7IFwKKwkgICQoYW1fX2NkKSAkKHNyY2Rpcik7IFwKKwllbHNlIFwKKwkgIHJjPSQkPzsgXAorCSAgJChhbV9fY2QpICQoc3JjZGlyKSAmJiBcCisJICAkJHJlc3RvcmUgJCRiYWNrdXBkaXIvKiBgZWNobyAiLi8kQCIgfCBzZWQgJ3N8W14vXSokJHx8J2A7IFwKKwlmaTsgXAorCXJtIC1yZiAkJGJhY2t1cGRpcjsgZXhpdCAkJHJjCisKKy50ZXhpLmR2aToKKwlURVhJTlBVVFM9IiQoYW1fX1RFWElORk9fVEVYX0RJUikkKFBBVEhfU0VQQVJBVE9SKSQkVEVYSU5QVVRTIiBcCisJTUFLRUlORk89JyQoTUFLRUlORk8pICQoQU1fTUFLRUlORk9GTEFHUykgJChNQUtFSU5GT0ZMQUdTKSAtSSAkKHNyY2RpciknIFwKKwkkKFRFWEkyRFZJKSAkPAorCisudGV4aS5wZGY6CisJVEVYSU5QVVRTPSIkKGFtX19URVhJTkZPX1RFWF9ESVIpJChQQVRIX1NFUEFSQVRPUikkJFRFWElOUFVUUyIgXAorCU1BS0VJTkZPPSckKE1BS0VJTkZPKSAkKEFNX01BS0VJTkZPRkxBR1MpICQoTUFLRUlORk9GTEFHUykgLUkgJChzcmNkaXIpJyBcCisJJChURVhJMlBERikgJDwKKworLnRleGkuaHRtbDoKKwlybSAtcmYgJChAOi5odG1sPS5odHApCisJaWYgJChNQUtFSU5GT0hUTUwpICQoQU1fTUFLRUlORk9IVE1MRkxBR1MpICQoTUFLRUlORk9GTEFHUykgLUkgJChzcmNkaXIpIFwKKwkgLW8gJChAOi5odG1sPS5odHApICQ8OyBcCisJdGhlbiBcCisJICBybSAtcmYgJEA7IFwKKwkgIGlmIHRlc3QgISAtZCAkKEA6Lmh0bWw9Lmh0cCkgJiYgdGVzdCAtZCAkKEA6Lmh0bWw9KTsgdGhlbiBcCisJICAgIG12ICQoQDouaHRtbD0pICRAOyBlbHNlIG12ICQoQDouaHRtbD0uaHRwKSAkQDsgZmk7IFwKKwllbHNlIFwKKwkgIGlmIHRlc3QgISAtZCAkKEA6Lmh0bWw9Lmh0cCkgJiYgdGVzdCAtZCAkKEA6Lmh0bWw9KTsgdGhlbiBcCisJICAgIHJtIC1yZiAkKEA6Lmh0bWw9KTsgZWxzZSBybSAtUmYgJChAOi5odG1sPS5odHApICRAOyBmaTsgXAorCSAgZXhpdCAxOyBcCisJZmkKKyQoc3JjZGlyKS9pcGMuaW5mbzogaXBjLnRleGkgCitpcGMuZHZpOiBpcGMudGV4aSAKK2lwYy5wZGY6IGlwYy50ZXhpIAoraXBjLmh0bWw6IGlwYy50ZXhpIAorLmR2aS5wczoKKwlURVhJTlBVVFM9IiQoYW1fX1RFWElORk9fVEVYX0RJUikkKFBBVEhfU0VQQVJBVE9SKSQkVEVYSU5QVVRTIiBcCisJJChEVklQUykgLW8gJEAgJDwKKwordW5pbnN0YWxsLWR2aS1hbToKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKERWSVMpJzsgdGVzdCAtbiAiJChkdmlkaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgJChhbV9fc3RyaXBfZGlyKSBcCisJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKGR2aWRpcikvJCRmJyI7IFwKKwkgIHJtIC1mICIkKERFU1RESVIpJChkdmlkaXIpLyQkZiI7IFwKKwlkb25lCisKK3VuaW5zdGFsbC1odG1sLWFtOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoSFRNTFMpJzsgdGVzdCAtbiAiJChodG1sZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgICQoYW1fX3N0cmlwX2RpcikgXAorCSAgZWNobyAiIHJtIC1yZiAnJChERVNURElSKSQoaHRtbGRpcikvJCRmJyI7IFwKKwkgIHJtIC1yZiAiJChERVNURElSKSQoaHRtbGRpcikvJCRmIjsgXAorCWRvbmUKKwordW5pbnN0YWxsLWluZm8tYW06CisJQCQoUFJFX1VOSU5TVEFMTCkKKwlAaWYgdGVzdCAtZCAnJChERVNURElSKSQoaW5mb2RpciknICYmIFwKKwkgICAgKGluc3RhbGwtaW5mbyAtLXZlcnNpb24gJiYgXAorCSAgICAgaW5zdGFsbC1pbmZvIC0tdmVyc2lvbiAyPiYxIHwgc2VkIDFxIHwgZ3JlcCAtaSAtdiBkZWJpYW4pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisJICBsaXN0PSckKElORk9fREVQUyknOyBcCisJICBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgcmVsZmlsZT1gZWNobyAiJCRmaWxlIiB8IHNlZCAnc3xeLiovfHwnYDsgXAorCSAgICBlY2hvICIgaW5zdGFsbC1pbmZvIC0taW5mby1kaXI9JyQoREVTVERJUikkKGluZm9kaXIpJyAtLXJlbW92ZSAnJChERVNURElSKSQoaW5mb2RpcikvJCRyZWxmaWxlJyI7IFwKKwkgICAgaWYgaW5zdGFsbC1pbmZvIC0taW5mby1kaXI9IiQoREVTVERJUikkKGluZm9kaXIpIiAtLXJlbW92ZSAiJChERVNURElSKSQoaW5mb2RpcikvJCRyZWxmaWxlIjsgXAorCSAgICB0aGVuIDo7IGVsc2UgdGVzdCAhIC1mICIkKERFU1RESVIpJChpbmZvZGlyKS8kJHJlbGZpbGUiIHx8IGV4aXQgMTsgZmk7IFwKKwkgIGRvbmU7IFwKKwllbHNlIDo7IGZpCisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChJTkZPX0RFUFMpJzsgXAorCWZvciBmaWxlIGluICQkbGlzdDsgZG8gXAorCSAgcmVsZmlsZT1gZWNobyAiJCRmaWxlIiB8IHNlZCAnc3xeLiovfHwnYDsgXAorCSAgcmVsZmlsZV9pPWBlY2hvICIkJHJlbGZpbGUiIHwgc2VkICdzfFwuaW5mbyQkfHw7c3wkJHwuaXwnYDsgXAorCSAgKGlmIHRlc3QgLWQgIiQoREVTVERJUikkKGluZm9kaXIpIiAmJiBjZCAiJChERVNURElSKSQoaW5mb2RpcikiOyB0aGVuIFwKKwkgICAgIGVjaG8gIiBjZCAnJChERVNURElSKSQoaW5mb2RpciknICYmIHJtIC1mICQkcmVsZmlsZSAkJHJlbGZpbGUtWzAtOV0gJCRyZWxmaWxlLVswLTldWzAtOV0gJCRyZWxmaWxlX2lbMC05XSAkJHJlbGZpbGVfaVswLTldWzAtOV0iOyBcCisJICAgICBybSAtZiAkJHJlbGZpbGUgJCRyZWxmaWxlLVswLTldICQkcmVsZmlsZS1bMC05XVswLTldICQkcmVsZmlsZV9pWzAtOV0gJCRyZWxmaWxlX2lbMC05XVswLTldOyBcCisJICAgZWxzZSA6OyBmaSk7IFwKKwlkb25lCisKK3VuaW5zdGFsbC1wZGYtYW06CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChQREZTKSc7IHRlc3QgLW4gIiQocGRmZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgICQoYW1fX3N0cmlwX2RpcikgXAorCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwZGZkaXIpLyQkZiciOyBcCisJICBybSAtZiAiJChERVNURElSKSQocGRmZGlyKS8kJGYiOyBcCisJZG9uZQorCit1bmluc3RhbGwtcHMtYW06CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChQU1MpJzsgdGVzdCAtbiAiJChwc2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICAkKGFtX19zdHJpcF9kaXIpIFwKKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQocHNkaXIpLyQkZiciOyBcCisJICBybSAtZiAiJChERVNURElSKSQocHNkaXIpLyQkZiI7IFwKKwlkb25lCisKK2Rpc3QtaW5mbzogJChJTkZPX0RFUFMpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7IFwKKwlsaXN0PSckKElORk9fREVQUyknOyBcCisJZm9yIGJhc2UgaW4gJCRsaXN0OyBkbyBcCisJICBjYXNlICQkYmFzZSBpbiBcCisJICAgICQoc3JjZGlyKS8qKSBiYXNlPWBlY2hvICIkJGJhc2UiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisJICBlc2FjOyBcCisJICBpZiB0ZXN0IC1mICQkYmFzZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBiYXNlX2k9YGVjaG8gIiQkYmFzZSIgfCBzZWQgJ3N8XC5pbmZvJCR8fDtzfCQkfC5pfCdgOyBcCisJICBmb3IgZmlsZSBpbiAkJGQvJCRiYXNlICQkZC8kJGJhc2UtWzAtOV0gJCRkLyQkYmFzZS1bMC05XVswLTldICQkZC8kJGJhc2VfaVswLTldICQkZC8kJGJhc2VfaVswLTldWzAtOV07IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAkJGZpbGU7IHRoZW4gXAorCSAgICAgIHJlbGZpbGU9YGV4cHIgIiQkZmlsZSIgOiAiJCRkL1woLipcKSJgOyBcCisJICAgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJHJlbGZpbGUiIHx8IFwKKwkJY3AgLXAgJCRmaWxlICIkKGRpc3RkaXIpLyQkcmVsZmlsZSI7IFwKKwkgICAgZWxzZSA6OyBmaTsgXAorCSAgZG9uZTsgXAorCWRvbmUKKworbW9zdGx5Y2xlYW4tYW1pbmZvOgorCS1ybSAtcmYgaXBjLmF1eCBpcGMuY3AgaXBjLmNwcyBpcGMuZm4gaXBjLmZucyBpcGMua3kgaXBjLmt5cyBpcGMubG9nIGlwYy5wZyBcCisJICBpcGMucGdzIGlwYy50bXAgaXBjLnRvYyBpcGMudHAgaXBjLnRwcyBpcGMudnIgaXBjLnZycworCitjbGVhbi1hbWluZm86CisJLXRlc3QgLXogImlwYy5kdmkgaXBjLnBkZiBpcGMucHMgaXBjLmh0bWwiIFwKKwl8fCBybSAtcmYgaXBjLmR2aSBpcGMucGRmIGlwYy5wcyBpcGMuaHRtbAorCittYWludGFpbmVyLWNsZWFuLWFtaW5mbzoKKwlAbGlzdD0nJChJTkZPX0RFUFMpJzsgZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICBpX2k9YGVjaG8gIiQkaSIgfCBzZWQgJ3N8XC5pbmZvJCR8fDtzfCQkfC5pfCdgOyBcCisJICBlY2hvICIgcm0gLWYgJCRpICQkaS1bMC05XSAkJGktWzAtOV1bMC05XSAkJGlfaVswLTldICQkaV9pWzAtOV1bMC05XSI7IFwKKwkgIHJtIC1mICQkaSAkJGktWzAtOV0gJCRpLVswLTldWzAtOV0gJCRpX2lbMC05XSAkJGlfaVswLTldWzAtOV07IFwKKwlkb25lCitpbnN0YWxsLW1hbjE6ICQoZGlzdF9tYW5fTUFOUykgJChtYW5fTUFOUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKG1hbjFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW4xZGlyKSIKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCisJeyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSAkKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjFbYS16XSokJC9wJzsgXAorCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgXAorCWRvbmUgfCBcCisJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnIHwgXAorCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAorCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJGJhc2UiID0gIiQkaW5zdCI7IHRoZW4gbGlzdD0iJCRsaXN0ICQkZmlsZSI7IGVsc2UgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuMWRpciknIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobWFuMWRpcikiIHx8IGV4aXQgJCQ/OyB9OyBcCisJZG9uZTsgfQorCit1bmluc3RhbGwtbWFuMToKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjFkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1geyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChkaXN0X21hbl9NQU5TKSAkKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjFbYS16XSokJC9wJzsgXAorCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKwl0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW4xZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJICBjZCAiJChERVNURElSKSQobWFuMWRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KK2luc3RhbGwtbWFuODogJChkaXN0X21hbl9NQU5TKSAkKG1hbl9NQU5TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQobWFuOGRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjhkaXIpIgorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjhkaXIpIiB8fCBleGl0IDA7IFwKKwl7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpICQobWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHdoaWxlIHJlYWQgcDsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ247cywuKi8sLDtwO2g7cywuKlwuLCw7cyxeW144XVswLTlhLXpdKiQkLDgsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCcgfCBcCisJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCisJbGlzdD07IHdoaWxlIHJlYWQgZmlsZSBiYXNlIGluc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkYmFzZSIgPSAiJCRpbnN0IjsgdGhlbiBsaXN0PSIkJGxpc3QgJCRmaWxlIjsgZWxzZSBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjhkaXIpLyQkaW5zdCciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAiJCRmaWxlIiAiJChERVNURElSKSQobWFuOGRpcikvJCRpbnN0IiB8fCBleGl0ICQkPzsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChtYW44ZGlyKSciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChtYW44ZGlyKSIgfHwgZXhpdCAkJD87IH07IFwKKwlkb25lOyB9CisKK3VuaW5zdGFsbC1tYW44OgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuOGRpcikiIHx8IGV4aXQgMDsgXAorCWZpbGVzPWB7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKGRpc3RfbWFuX01BTlMpICQobWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuOFthLXpdKiQkL3AnOyBcCisJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteOF1bMC05YS16XSokJCw4LDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnYDsgXAorCXRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjhkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwkgIGNkICIkKERFU1RESVIpJChtYW44ZGlyKSIgJiYgcm0gLWYgJCRmaWxlczsgfQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAbGlzdD0nJChNQU5TKSc7IGlmIHRlc3QgLW4gIiQkbGlzdCI7IHRoZW4gXAorCSAgbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgICBpZiB0ZXN0IC1mICIkJGQkJHAiOyB0aGVuIGVjaG8gIiQkZCQkcCI7IGVsc2UgOjsgZmk7IGRvbmVgOyBcCisJICBpZiB0ZXN0IC1uICIkJGxpc3QiICYmIFwKKwkgICAgZ3JlcCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVsbDsgdGhlbiBcCisJICAgIGVjaG8gImVycm9yOiBmb3VuZCBtYW4gcGFnZXMgY29udGFpbmluZyB0aGUgXGBtaXNzaW5nIGhlbHAybWFuJyByZXBsYWNlbWVudCB0ZXh0OiIgPiYyOyBcCisJICAgIGdyZXAgLWwgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0IHwgc2VkICdzL14vICAgICAgICAgLycgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0byBmaXggdGhlbSwgaW5zdGFsbCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBtYW4gcGFnZXM7IiA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHR5cGljYWxseSBcYG1ha2UgbWFpbnRhaW5lci1jbGVhbicgd2lsbCByZW1vdmUgdGhlbSIgPiYyOyBcCisJICAgIGV4aXQgMTsgXAorCSAgZWxzZSA6OyBmaTsgXAorCWVsc2UgOjsgZmkKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisJICB0b3BfZGlzdGRpcj0iJCh0b3BfZGlzdGRpcikiIGRpc3RkaXI9IiQoZGlzdGRpcikiIFwKKwkgIGRpc3QtaW5mbworY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLWFtCithbGwtYW06IE1ha2VmaWxlICQoSU5GT19ERVBTKSAkKFBST0dSQU1TKSAkKE1BTlMpICQoREFUQSkKK2luc3RhbGxkaXJzOgorCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChzYmluZGlyKSIgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgIiQoREVTVERJUikkKHVzcnNiaW5fZXhlY2RpcikiICIkKERFU1RESVIpJChpbmZvZGlyKSIgIiQoREVTVERJUikkKG1hbjFkaXIpIiAiJChERVNURElSKSQobWFuOGRpcikiOyBkbyBcCisJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisJZG9uZQoraW5zdGFsbDogaW5zdGFsbC1hbQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCit1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoQ0xFQU5GSUxFUykKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1hbWluZm8gY2xlYW4tYmluUFJPR1JBTVMgY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKwljbGVhbi1zYmluUFJPR1JBTVMgY2xlYW4tdXNyYmluX2V4ZWNQUk9HUkFNUyBcCisJY2xlYW4tdXNyc2Jpbl9leGVjUFJPR1JBTVMgbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06ICQoRFZJUykKKworaHRtbDogaHRtbC1hbQorCitodG1sLWFtOiAkKEhUTUxTKQorCitpbmZvOiBpbmZvLWFtCisKK2luZm8tYW06ICQoSU5GT19ERVBTKQorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06ICQoRFZJUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKGR2aWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGR2aWRpcikiCisJQGxpc3Q9JyQoRFZJUyknOyB0ZXN0IC1uICIkKGR2aWRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgXAorCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQoZHZpZGlyKSciOyBcCisJICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQoZHZpZGlyKSIgfHwgZXhpdCAkJD87IFwKKwlkb25lCitpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtYmluUFJPR1JBTVMgaW5zdGFsbC1zYmluUFJPR1JBTVMgXAorCWluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUyBpbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TCisJQCQoTk9STUFMX0lOU1RBTEwpCisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWhvb2sKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisKK2luc3RhbGwtaHRtbC1hbTogJChIVE1MUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKGh0bWxkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChodG1sZGlyKSIKKwlAbGlzdD0nJChIVE1MUyknOyBsaXN0Mj07IHRlc3QgLW4gIiQoaHRtbGRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiIHx8IHRlc3QgLWQgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICAkKGFtX19zdHJpcF9kaXIpIFwKKwkgIGlmIHRlc3QgLWQgIiQkZCQkcCI7IHRoZW4gXAorCSAgICBlY2hvICIgJChNS0RJUl9QKSAnJChERVNURElSKSQoaHRtbGRpcikvJCRmJyI7IFwKKwkgICAgJChNS0RJUl9QKSAiJChERVNURElSKSQoaHRtbGRpcikvJCRmIiB8fCBleGl0IDE7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRkJCRwJy8qICckKERFU1RESVIpJChodG1sZGlyKS8kJGYnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZCQkcCIvKiAiJChERVNURElSKSQoaHRtbGRpcikvJCRmIiB8fCBleGl0ICQkPzsgXAorCSAgZWxzZSBcCisJICAgIGxpc3QyPSIkJGxpc3QyICQkZCQkcCI7IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCXRlc3QgLXogIiQkbGlzdDIiIHx8IHsgZWNobyAiJCRsaXN0MiIgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQoaHRtbGRpciknIjsgXAorCSAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKGh0bWxkaXIpIiB8fCBleGl0ICQkPzsgXAorCWRvbmU7IH0KK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisKK2luc3RhbGwtaW5mby1hbTogJChJTkZPX0RFUFMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChpbmZvZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoaW5mb2RpcikiCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7IFwKKwlsaXN0PSckKElORk9fREVQUyknOyB0ZXN0IC1uICIkKGluZm9kaXIpIiB8fCBsaXN0PTsgXAorCWZvciBmaWxlIGluICQkbGlzdDsgZG8gXAorCSAgY2FzZSAkJGZpbGUgaW4gXAorCSAgICAkKHNyY2RpcikvKikgZmlsZT1gZWNobyAiJCRmaWxlIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorCSAgZXNhYzsgXAorCSAgaWYgdGVzdCAtZiAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgZmlsZV9pPWBlY2hvICIkJGZpbGUiIHwgc2VkICdzfFwuaW5mbyQkfHw7c3wkJHwuaXwnYDsgXAorCSAgZm9yIGlmaWxlIGluICQkZC8kJGZpbGUgJCRkLyQkZmlsZS1bMC05XSAkJGQvJCRmaWxlLVswLTldWzAtOV0gXAorCSAgICAgICAgICAgICAgICQkZC8kJGZpbGVfaVswLTldICQkZC8kJGZpbGVfaVswLTldWzAtOV0gOyBkbyBcCisJICAgIGlmIHRlc3QgLWYgJCRpZmlsZTsgdGhlbiBcCisJICAgICAgZWNobyAiJCRpZmlsZSI7IFwKKwkgICAgZWxzZSA6IDsgZmk7IFwKKwkgIGRvbmU7IFwKKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKGluZm9kaXIpJyI7IFwKKwkgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChpbmZvZGlyKSIgfHwgZXhpdCAkJD87IGRvbmUKKwlAJChQT1NUX0lOU1RBTEwpCisJQGlmIChpbnN0YWxsLWluZm8gLS12ZXJzaW9uICYmIFwKKwkgICAgIGluc3RhbGwtaW5mbyAtLXZlcnNpb24gMj4mMSB8IHNlZCAxcSB8IGdyZXAgLWkgLXYgZGViaWFuKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorCSAgbGlzdD0nJChJTkZPX0RFUFMpJzsgdGVzdCAtbiAiJChpbmZvZGlyKSIgfHwgbGlzdD07IFwKKwkgIGZvciBmaWxlIGluICQkbGlzdDsgZG8gXAorCSAgICByZWxmaWxlPWBlY2hvICIkJGZpbGUiIHwgc2VkICdzfF4uKi98fCdgOyBcCisJICAgIGVjaG8gIiBpbnN0YWxsLWluZm8gLS1pbmZvLWRpcj0nJChERVNURElSKSQoaW5mb2RpciknICckKERFU1RESVIpJChpbmZvZGlyKS8kJHJlbGZpbGUnIjtcCisJICAgIGluc3RhbGwtaW5mbyAtLWluZm8tZGlyPSIkKERFU1RESVIpJChpbmZvZGlyKSIgIiQoREVTVERJUikkKGluZm9kaXIpLyQkcmVsZmlsZSIgfHwgOjtcCisJICBkb25lOyBcCisJZWxzZSA6IDsgZmkKK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjEgaW5zdGFsbC1tYW44CisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorCitpbnN0YWxsLXBkZi1hbTogJChQREZTKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQocGRmZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGRmZGlyKSIKKwlAbGlzdD0nJChQREZTKSc7IHRlc3QgLW4gIiQocGRmZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBcCisJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChwZGZkaXIpJyI7IFwKKwkgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChwZGZkaXIpIiB8fCBleGl0ICQkPzsgZG9uZQoraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorCitpbnN0YWxsLXBzLWFtOiAkKFBTUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHBzZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocHNkaXIpIgorCUBsaXN0PSckKFBTUyknOyB0ZXN0IC1uICIkKHBzZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBcCisJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChwc2RpciknIjsgXAorCSAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKHBzZGlyKSIgfHwgZXhpdCAkJD87IGRvbmUKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWFtaW5mbyBcCisJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tYW1pbmZvIG1vc3RseWNsZWFuLWNvbXBpbGUgXAorCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1hbQorCitwZGYtYW06ICQoUERGUykKKworcHM6IHBzLWFtCisKK3BzLWFtOiAkKFBTUykKKwordW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtYmluUFJPR1JBTVMgdW5pbnN0YWxsLWR2aS1hbSB1bmluc3RhbGwtaHRtbC1hbSBcCisJdW5pbnN0YWxsLWluZm8tYW0gdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtcGRmLWFtIFwKKwl1bmluc3RhbGwtcHMtYW0gdW5pbnN0YWxsLXNiaW5QUk9HUkFNUyBcCisJdW5pbnN0YWxsLXVzcmJpbl9leGVjUFJPR1JBTVMgdW5pbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TCisJQCQoTk9STUFMX0lOU1RBTEwpCisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdW5pbnN0YWxsLWhvb2sKK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW4xIHVuaW5zdGFsbC1tYW44CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLXN0cmlwIHVuaW5zdGFsbC1hbQorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tYW1pbmZvIFwKKwljbGVhbi1iaW5QUk9HUkFNUyBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorCWNsZWFuLXNiaW5QUk9HUkFNUyBjbGVhbi11c3JiaW5fZXhlY1BST0dSQU1TIFwKKwljbGVhbi11c3JzYmluX2V4ZWNQUk9HUkFNUyBjdGFncyBkaXN0LWluZm8gZGlzdGNsZWFuIFwKKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWJpblBST0dSQU1TIGluc3RhbGwtZGF0YSBcCisJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZXhlYy1ob29rIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAorCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIFwKKwlpbnN0YWxsLW1hbjggaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBcCisJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXNiaW5QUk9HUkFNUyBpbnN0YWxsLXN0cmlwIFwKKwlpbnN0YWxsLXVzcmJpbl9leGVjUFJPR1JBTVMgaW5zdGFsbC11c3JzYmluX2V4ZWNQUk9HUkFNUyBcCisJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKwltYWludGFpbmVyLWNsZWFuLWFtaW5mbyBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorCW1vc3RseWNsZWFuLWFtaW5mbyBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCBcCisJdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1iaW5QUk9HUkFNUyB1bmluc3RhbGwtZHZpLWFtIFwKKwl1bmluc3RhbGwtaG9vayB1bmluc3RhbGwtaHRtbC1hbSB1bmluc3RhbGwtaW5mby1hbSBcCisJdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuMSB1bmluc3RhbGwtbWFuOCB1bmluc3RhbGwtcGRmLWFtIFwKKwl1bmluc3RhbGwtcHMtYW0gdW5pbnN0YWxsLXNiaW5QUk9HUkFNUyBcCisJdW5pbnN0YWxsLXVzcmJpbl9leGVjUFJPR1JBTVMgdW5pbnN0YWxsLXVzcnNiaW5fZXhlY1BST0dSQU1TCisKKworJCh1bF9saWJibGtpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCiskKHVsX2xpYnV1aWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJ1dWlkX2J1aWxkZGlyKQorCiskKFJERVZfTUFOX0xJTktTKTogcmRldi44CisJZWNobyAiLnNvIG1hbjgvcmRldi44IiA+ICRACisKKyQoU0VUQVJDSF9NQU5fTElOS1MpOiBzZXRhcmNoLjgKKwllY2hvICIuc28gbWFuOC9zZXRhcmNoLjgiID4gJEAKKworaW5zdGFsbC1leGVjLWhvb2s6CisJZm9yIEkgaW4gJChSREVWX0xJTktTKTsgZG8gXAorCQljZCAkKERFU1RESVIpJCh1c3JzYmluX2V4ZWNkaXIpICYmIGxuIC1zZiByZGV2ICQkSSA7IFwKKwlkb25lCisJZm9yIEkgaW4gJChTRVRBUkNIX0xJTktTKTsgZG8gXAorCQljZCAkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikgJiYgbG4gLXNmIHNldGFyY2ggJCRJIDsgXAorCWRvbmUKKwordW5pbnN0YWxsLWhvb2s6CisJZm9yIEkgaW4gJChSREVWX0xJTktTKTsgZG8gXAorCQlybSAtZiAkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikvJCRJIDsgXAorCWRvbmUKKwlmb3IgSSBpbiAkKFNFVEFSQ0hfTElOS1MpOyBkbyBcCisJCXJtIC1mICQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKS8kJEkgOyBcCisJZG9uZQorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvYXJjaC4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2FyY2guMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDRmNTYwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2FyY2guMQpAQCAtMCwwICsxLDQwIEBACisuXCIgYXJjaC4xIC0tIAorLlwiIENvcHlyaWdodCAxOTkzIFJpY2thcmQgRS4gRmFpdGggKGZhaXRoQGNzLnVuYy5lZHUpCisuXCIgUHVibGljIGRvbWFpbjogbWF5IGJlIGZyZWVseSBkaXN0cmlidXRlZC4KKy5USCBBUkNIIDEgIjQgSnVseSAxOTk3IiAiTGludXggMi4wIiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCBOQU1FCithcmNoIFwtIHByaW50IG1hY2hpbmUgYXJjaGl0ZWN0dXJlCisuU0ggU1lOT1BTSVMKKy5CIGFyY2gKKy5TSCBERVNDUklQVElPTgorLkIgYXJjaAoraXMgZGVwcmVjYXRlZCBjb21tYW5kIHNpbmNlIHJlbGVhc2UgdXRpbC1saW51eCAyLjEzLiBVc2UKKy5CUiAidW5hbWUgLW0iCitvciB1c2UKKy5CUiBhcmNoCitmcm9tIHRoZSBjb3JldXRpbHMgcGFja2FnZS4KKworT24gY3VycmVudCBMaW51eCBzeXN0ZW1zLAorLkIgYXJjaAorcHJpbnRzIHRoaW5ncyBzdWNoIGFzICJpMzg2IiwgImk0ODYiLCAiaTU4NiIsICJhbHBoYSIsICJzcGFyYyIsCisiYXJtIiwgIm02OGsiLCAibWlwcyIsICJwcGMiLgorLlNIIFNFRSBBTFNPCisuQlIgdW5hbWUgKDEpLAorLkJSIHVuYW1lICgyKQorLlNIIEFWQUlMQUJJTElUWQorVGhlIGFyY2ggY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisuXCIKKy5cIiBEZXRhaWxzOgorLlwiIGFyY2ggcHJpbnRzIHRoZSBtYWNoaW5lIHBhcnQgb2YgdGhlIHN5c3RlbV91dHNuYW1lIHN0cnVjdAorLlwiIFRoaXMgc3RydWN0IGlzIGRlZmluZWQgaW4gdmVyc2lvbi5jLCBhbmQgdGhpcyBmaWVsZCBpcworLlwiIGluaXRpYWxpemVkIHdpdGggVVRTX01BQ0hJTkUsIHdoaWNoIGlzIGRlZmluZWQgYXMgJEFSQ0gKKy5cIiBpbiB0aGUgbWFpbiBNYWtlZmlsZS4KKy5cIiBUaGF0IGdpdmVzIHRoZSBwb3NzaWJpbGl0aWVzIAorLlwiIGFscGhhICAgIGFybSAgICAgIGkzODYgICAgIG02OGsgICAgIG1pcHMgICAgIHBwYyAgICAgIHNwYXJjICAgIHNwYXJjNjQKKy5cIgorLlwiIElmIE1ha2VmaWxlIGlzIG5vdCBlZGl0ZWQsIEFSQ0ggaXMgZ3Vlc3NlZCBieQorLlwiIEFSQ0ggOj0gJChzaGVsbCB1bmFtZSAtbSB8IHNlZCAtZSBzL2kuODYvaTM4Ni8gLWUgcy9zdW40dS9zcGFyYzY0LykKKy5cIiBUaGVuIGhvdyBjb21lIHdlIGdldCB0aGVzZSBpNTg2IHZhbHVlcz8KKy5cIiBXZWxsLCB0aGUgcm91dGluZSBjaGVja19idWdzKCkgZG9lcyBzeXN0ZW1fdXRzbmFtZS5tYWNoaW5lWzFdID0gJzAnICsgeDg2OworLlwiIChjYWxsZWQgaW4gaW5pdC9tYWluLmMsIGRlZmluZWQgaW4gLi9pbmNsdWRlL2FzbS1pMzg2L2J1Z3MuaCkKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9hcmNoLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvYXJjaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZGZmMzAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvYXJjaC5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qIGFyY2ggLS0gcHJpbnQgbWFjaGluZSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24KKyAqIENyZWF0ZWQ6IE1vbiBEZWMgMjAgMTI6Mjc6MTUgMTk5MyBieSBmYWl0aEBjcy51bmMuZWR1CisgKiBSZXZpc2VkOiBNb24gRGVjIDIwIDEyOjI5OjIzIDE5OTMgYnkgZmFpdGhAY3MudW5jLmVkdQorICogQ29weXJpZ2h0IDE5OTMgUmlja2FyZCBFLiBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSkKKworICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKworICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKKyAqIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCisgKiA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4gICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisKK2ludCBtYWluICh2b2lkKQoreworICBzdHJ1Y3QgdXRzbmFtZSB1dHNidWY7CisKKyAgaWYgKHVuYW1lKCAmdXRzYnVmICkpIHsKKyAgICAgcGVycm9yKCAiYXJjaCIgKTsKKyAgICAgcmV0dXJuIDE7CisgIH0KKworICBwcmludGYoICIlc1xuIiwgdXRzYnVmLm1hY2hpbmUgKTsKKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9jdHJsYWx0ZGVsLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvY3RybGFsdGRlbC44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMjE4MzMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvY3RybGFsdGRlbC44CkBAIC0wLDAgKzEsNDEgQEAKKy5cIiBDb3B5cmlnaHQgMTk5MiwgMTk5MyBSaWNrYXJkIEUuIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlwiIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5USCBDVFJMQUxUREVMIDggIjI1IE9jdG9iZXIgMTk5MyIgIkxpbnV4IDEuMiIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorY3RybGFsdGRlbCBcLSBzZXQgdGhlIGZ1bmN0aW9uIG9mIHRoZSBDdHJsLUFsdC1EZWwgY29tYmluYXRpb24KKy5TSCBTWU5PUFNJUworLkJSICJjdHJsYWx0ZGVsIGhhcmQiIHwgc29mdAorLlNIIERFU0NSSVBUSU9OCitCYXNlZCBvbiBleGFtaW5hdGlvbiBvZiB0aGUKKy5JIGxpbnV4L2tlcm5lbC9zeXMuYworY29kZSwgaXQgaXMgY2xlYXIgdGhhdCB0aGVyZSBhcmUgdHdvIHN1cHBvcnRlZCBmdW5jdGlvbnMgdGhhdCB0aGUKK0N0cmwtQWx0LURlbCBzZXF1ZW5jZSBjYW4gcGVyZm9ybTogYQorLkkgaGFyZAorcmVzZXQsIHdoaWNoIGltbWVkaWF0ZWx5IHJlYm9vdHMgdGhlIGNvbXB1dGVyIHdpdGhvdXQgY2FsbGluZworLkJSIHN5bmMgKDIpCithbmQgd2l0aG91dCBhbnkgb3RoZXIgcHJlcGFyYXRpb247IGFuZCBhCisuSSBzb2Z0CityZXNldCwgd2hpY2ggc2VuZHMgdGhlIFNJR0lOVCAoaW50ZXJydXB0KSBzaWduYWwgdG8gdGhlCisuQiBpbml0Citwcm9jZXNzICh0aGlzIGlzIGFsd2F5cyB0aGUgcHJvY2VzcyB3aXRoIFBJRCAxKS4gIElmIHRoaXMgb3B0aW9uIGlzIHVzZWQsCit0aGUKKy5CUiBpbml0ICg4KQorcHJvZ3JhbSBtdXN0IHN1cHBvcnQgdGhpcyBmZWF0dXJlLiAgU2luY2UgdGhlcmUgYXJlIG5vdyBzZXZlcmFsCisuQlIgaW5pdCAoOCkKK3Byb2dyYW1zIGluIHRoZSBMaW51eCBjb21tdW5pdHksIHBsZWFzZSBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUKK3ZlcnNpb24gdGhhdCB5b3UgYXJlIGN1cnJlbnRseSB1c2luZy4KKworLkIgY3RybGFsdGRlbAoraXMgdXN1YWxseSB1c2VkIGluIHRoZQorLkkgL2V0Yy9yYy5sb2NhbAorZmlsZS4KKy5TSCBGSUxFUworLkkgL2V0Yy9yYy5sb2NhbAorLlNIICJTRUUgQUxTTyIKKy5CUiBzaW1wbGVpbml0ICg4KSwKKy5CUiBpbml0ICg4KQorLlNIIEFVVEhPUgorUGV0ZXIgT3JiYWVrIChwb2VAZGFpbWkuYWF1LmRrKQorLlNIIEFWQUlMQUJJTElUWQorVGhlIGN0cmxhbHRkZWwgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvY3RybGFsdGRlbC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2N0cmxhbHRkZWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWFiYzYwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2N0cmxhbHRkZWwuYwpAQCAtMCwwICsxLDQ4IEBACisvKgorICogY3RybGFsdGRlbC5jIC0gU2V0IHRoZSBmdW5jdGlvbiBvZiB0aGUgQ3RybC1BbHQtRGVsIGNvbWJpbmF0aW9uCisgKiBDcmVhdGVkIDQtSnVsLTkyIGJ5IFBldGVyIE9yYmFlayA8cG9lQGRhaW1pLmFhdS5kaz4KKyAqIGZ0cDovL2Z0cC5kYWltaS5hYXUuZGsvcHViL2xpbnV4L3BvZS8KKyAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlICJsaW51eF9yZWJvb3QuaCIKKyNpbmNsdWRlICJubHMuaCIKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisJCisKKwlpZihnZXRldWlkKCkpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJCSAgICBfKCJZb3UgbXVzdCBiZSByb290IHRvIHNldCB0aGUgQ3RybC1BbHQtRGVsIGJlaGF2aW91ci5cbiIpKTsKKwkJZXhpdCgxKTsKKwl9CisKKwlpZihhcmdjID09IDIgJiYgIXN0cmNtcCgiaGFyZCIsIGFyZ3ZbMV0pKSB7CisJCWlmKG15X3JlYm9vdChMSU5VWF9SRUJPT1RfQ01EX0NBRF9PTikgPCAwKSB7CisJCQlwZXJyb3IoImN0cmxhbHRkZWw6IHJlYm9vdCIpOworCQkJZXhpdCgxKTsKKwkJfQorCX0gZWxzZSBpZihhcmdjID09IDIgJiYgIXN0cmNtcCgic29mdCIsIGFyZ3ZbMV0pKSB7CisJCWlmKG15X3JlYm9vdChMSU5VWF9SRUJPT1RfQ01EX0NBRF9PRkYpIDwgMCkgeworCQkJcGVycm9yKCJjdHJsYWx0ZGVsOiByZWJvb3QiKTsKKwkJCWV4aXQoMSk7CisJCX0KKwl9IGVsc2UgeworCQlmcHJpbnRmKHN0ZGVyciwgXygiVXNhZ2U6IGN0cmxhbHRkZWwgaGFyZHxzb2Z0XG4iKSk7CisJCWV4aXQoMSk7CisJfQorCWV4aXQoMCk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2N5Y2xhZGVzLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvY3ljbGFkZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZmNmNjAwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2N5Y2xhZGVzLmgKQEAgLTAsMCArMSwxNiBAQAorc3RydWN0IGN5Y2xhZGVzX21vbml0b3IgeworICAgICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICBpbnRfY291bnQ7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGNoYXJfY291bnQ7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGNoYXJfbWF4OworICAgICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICBjaGFyX2xhc3Q7Cit9OworCisjZGVmaW5lIENZR0VUTU9OICAgICAgICAgICAgICAgIDB4NDM1OTAxCisjZGVmaW5lIENZR0VUVEhSRVNIICAgICAgICAgICAgIDB4NDM1OTAyCisjZGVmaW5lIENZU0VUVEhSRVNIICAgICAgICAgICAgIDB4NDM1OTAzCisjZGVmaW5lIENZR0VUREVGVEhSRVNIICAgICAgICAgIDB4NDM1OTA0CisjZGVmaW5lIENZU0VUREVGVEhSRVNIICAgICAgICAgIDB4NDM1OTA1CisjZGVmaW5lIENZR0VUVElNRU9VVCAgICAgICAgICAgIDB4NDM1OTA2CisjZGVmaW5lIENZU0VUVElNRU9VVCAgICAgICAgICAgIDB4NDM1OTA3CisjZGVmaW5lIENZR0VUREVGVElNRU9VVCAgICAgICAgIDB4NDM1OTA4CisjZGVmaW5lIENZU0VUREVGVElNRU9VVCAgICAgICAgIDB4NDM1OTA5CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvY3l0dW5lLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvY3l0dW5lLjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc5ZGZmYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9jeXR1bmUuOApAQCAtMCwwICsxLDIwMyBAQAorLlwiIGN5dHVuZS44IC0tCisuXCIgQ3JlYXRlZDogU2F0IE1hciAgNCAxNzo0NDo1MyAxOTk1IGJ5IGZhaXRoQGNzLnVuYy5lZHUKKy5cIiBVcGRhdGU6IFNhdCBNYXIgIDQgMTg6MjI6MjQgMTk5NSBieSBmYWl0aEBjcy51bmMuZWR1CisuXCIgVXBkYXRlOiBTdW4gTWFyICA1IDA2OjQwOjEyIDE5OTUgYnkgbmpzQHNjaWZpLmVtaS5uZXQKKy5cIiBDb3B5cmlnaHQgMTk5NSBSaWNrYXJkIEUuIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlwiCisuXCIgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIG1ha2UgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoaXMKKy5cIiBtYW51YWwgcHJvdmlkZWQgdGhlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXJlCisuXCIgcHJlc2VydmVkIG9uIGFsbCBjb3BpZXMuCisuXCIKKy5cIiBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBtb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGlzCisuXCIgbWFudWFsIHVuZGVyIHRoZSBjb25kaXRpb25zIGZvciB2ZXJiYXRpbSBjb3B5aW5nLCBwcm92aWRlZCB0aGF0IHRoZQorLlwiIGVudGlyZSByZXN1bHRpbmcgZGVyaXZlZCB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBhCisuXCIgcGVybWlzc2lvbiBub3RpY2UgaWRlbnRpY2FsIHRvIHRoaXMgb25lCisuXCIKKy5cIiBTaW5jZSB0aGUgTGludXgga2VybmVsIGFuZCBsaWJyYXJpZXMgYXJlIGNvbnN0YW50bHkgY2hhbmdpbmcsIHRoaXMKKy5cIiBtYW51YWwgcGFnZSBtYXkgYmUgaW5jb3JyZWN0IG9yIG91dC1vZi1kYXRlLiAgVGhlIGF1dGhvcihzKSBhc3N1bWUgbm8KKy5cIiByZXNwb25zaWJpbGl0eSBmb3IgZXJyb3JzIG9yIG9taXNzaW9ucywgb3IgZm9yIGRhbWFnZXMgcmVzdWx0aW5nIGZyb20KKy5cIiB0aGUgdXNlIG9mIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluLiAgVGhlIGF1dGhvcihzKSBtYXkgbm90CisuXCIgaGF2ZSB0YWtlbiB0aGUgc2FtZSBsZXZlbCBvZiBjYXJlIGluIHRoZSBwcm9kdWN0aW9uIG9mIHRoaXMgbWFudWFsLAorLlwiIHdoaWNoIGlzIGxpY2Vuc2VkIGZyZWUgb2YgY2hhcmdlLCBhcyB0aGV5IG1pZ2h0IHdoZW4gd29ya2luZworLlwiIHByb2Zlc3Npb25hbGx5LgorLlwiCisuXCIgRm9ybWF0dGVkIG9yIHByb2Nlc3NlZCB2ZXJzaW9ucyBvZiB0aGlzIG1hbnVhbCwgaWYgdW5hY2NvbXBhbmllZCBieQorLlwiIHRoZSBzb3VyY2UsIG11c3QgYWNrbm93bGVkZ2UgdGhlIGNvcHlyaWdodCBhbmQgYXV0aG9ycyBvZiB0aGlzIHdvcmsuCisuXCIgIgorLlRIIENZVFVORSA4ICIgNCBNYXIgMTk5NSIgIiIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorY3l0dW5lIFwtIFR1bmUgZHJpdmVyIHBhcmFtZXRlcnMgZm9yIEN5Y2xhZGVzLVogbXVsdGlwb3J0IHNlcmlhbCBjYXJkCisuU0ggU1lOT1BTSVMKKy5CIGN5dHVuZQorLlJCIFsgXC1xCisuUkIgWyBcLWkKKy5JUiBpbnRlcnZhbCBdXQorLlJCIFt7IFwtcyB8IFwtUyB9CisuSVIgdmFsdWUgXQorLlJCIFsgXC1nIHwgXC1HIF0KKy5SQiBbeyBcLXQgfCBcLVQgfQorLklSIHRpbWVvdXQgXQorLklSIHR0eSAuLi4KKy5TSCBERVNDUklQVElPTgorLkIgY3l0dW5lCitxdWVyaWVzIGFuZCBtb2RpZmllcyB0aGUgaW50ZXJydXB0aW9uIHRocmVzaG9sZCBmb3IgdGhlIEN5Y2xhZGVzIGRyaXZlci4KK0VhY2ggc2VyaWFsIGxpbmUgb24gYSBDeWNsYWRlcyBjYXJkIGhhcyBhIDEyLWJ5dGUgRklGTyBmb3IgaW5wdXQgKGFuZAorYW5vdGhlciAxMi1ieXRlIEZJRk8gZm9yIG91dHB1dCkuICBUaGUgInRocmVzaG9sZCIgc3BlY2lmaWVzIGhvdyBtYW55IGlucHV0CitjaGFyYWN0ZXJzIG11c3QgYmUgcHJlc2VudCBpbiB0aGUgRklGTyBiZWZvcmUgYW4gaW50ZXJydXB0aW9uIGlzIHJhaXNlZC4KK1doZW4gYSBDeWNsYWRlcyB0dHkgaXMgb3BlbmVkLCB0aGlzIHRocmVzaG9sZCBpcyBzZXQgdG8gYSBkZWZhdWx0IHZhbHVlCitiYXNlZCBvbiBiYXVkIHJhdGU6Cisuc3AKKy5SUworICAgIEJhdWQgICAgICAgIFRocmVzaG9sZAorLnNwCis1MC00ODAwICAgICAgICAgICAgMTAKKy5icgorOTYwMCAgICAgICAgICAgICAgICA4CisuYnIKKzE5MjAwICAgICAgICAgICAgICAgNAorLmJyCiszODQwMCAgICAgICAgICAgICAgIDIKKy5icgorNTc2MDAtMTUwMDAwICAgICAgICAxCisuUkUKKy5QUAorSWYgdGhlIHRocmVzaG9sZCBpcyBzZXQgdG9vIGxvdywgdGhlIGxhcmdlIG51bWJlciBvZiBpbnRlcnJ1cHRpb25zIGNhbiBsb2FkCit0aGUgbWFjaGluZSBhbmQgZGVjcmVhc2Ugb3ZlcmFsbCBzeXN0ZW0gdGhyb3VnaHB1dC4gIElmIHRoZSB0aHJlc2hvbGQgaXMgc2V0IHRvbyBoaWdoLCB0aGUKK0ZJRk8gYnVmZmVyIGNhbiBvdmVyZmxvdywgYW5kIGNoYXJhY3RlcnMgd2lsbCBiZSBsb3N0LiAgU2xvd2VyIG1hY2hpbmVzLAoraG93ZXZlciwgbWF5IG5vdCBiZSBhYmxlIHRvIGRlYWwgd2l0aCB0aGUgaW50ZXJydXB0IGxvYWQsIGFuZCB3aWxsIHJlcXVpcmUKK3RoYXQgdGhlIHRocmVzaG9sZCBiZSBhZGp1c3RlZCB1cHdhcmRzLgorLlBQCitJZiB0aGUgY3ljbGFkZXMgZHJpdmVyIHdhcyBjb21waWxlZCB3aXRoCisuQiBFTkFCTEVfTU9OSVRPUklORworZGVmaW5lZCwgdGhlIGN5dHVuZSBjb21tYW5kIGNhbiBiZSB1c2VkIHdpdGggdGhlCisuQiBcLXEKK29wdGlvbiB0byByZXBvcnQgaW50ZXJydXB0cyBvdmVyIHRoZSBtb25pdG9yaW5nIGludGVydmFsIGFuZAorY2hhcmFjdGVycyB0cmFuc2ZlcnJlZCBvdmVyIHRoZSBtb25pdG9yaW5nIGludGVydmFsLiAgSXQgd2lsbCBhbHNvIHJlcG9ydAordGhlIHN0YXRlIG9mIHRoZSBGSUZPLiAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIEZJRk8gd2hlbgorYW4gaW50ZXJydXB0IG9jY3VycmVkLCB0aGUgaW5zdGFudGFuZW91cyBjb3VudCBvZiBjaGFyYWN0ZXJzIGluIHRoZSBGSUZPLAorYW5kIGhvdyBtYW55IGNoYXJhY3RlcnMgYXJlIG5vdyBpbiB0aGUgRklGTyBhcmUgcmVwb3J0ZWQuICBUaGlzIG91dHB1dCBtaWdodAorbG9vayBsaWtlIHRoaXM6Cisuc3AKKy5SUworL2Rldi9jdWJDMDogODMwIGludHMsIDkxMzAgY2hhcnM7IGZpZm86IDExIHRocmVzaG9sZCwgMTEgbWF4LCAxMSBub3cKKy5icgorICAgMTY2LjI1OTg2NiBpbnRlcnJ1cHRzL3NlY29uZCwgMTgyOC44NTg1MjEgY2hhcmFjdGVycy9zZWNvbmQKKy5SRQorLlBQCitUaGlzIG91dHB1dCBpbmRpY2F0ZXMgdGhhdCBmb3IgdGhpcyBtb25pdG9yaW5nIHBlcmlvZCwgdGhlIGludGVycnVwdHMgd2VyZQorYWx3YXlzIGJlaW5nIGhhbmRsZWQgd2l0aGluIG9uZSBjaGFyYWN0ZXIgdGltZSwgYmVjYXVzZQorLkIgbWF4CituZXZlciByb3NlIGFib3ZlCisuQlIgdGhyZXNob2xkIC4KK1RoaXMgaXMgZ29vZCwgYW5kIHlvdSBjYW4gcHJvYmFibHkgcnVuIHRoaXMgd2F5LCBwcm92aWRlZCB0aGF0IGEgbGFyZ2UKK251bWJlciBvZiBzYW1wbGVzIGNvbWUgb3V0IHRoaXMgd2F5LiAgWW91IHdpbGwgbG9zZSBjaGFyYWN0ZXJzIGlmIHlvdQorb3ZlcnJ1biB0aGUgRklGTywgYXMgdGhlIEN5Y2xhZGVzIGhhcmR3YXJlIGRvZXMgbm90IHNlZW0gdG8gc3VwcG9ydAordGhlIFJUUyBSUy0yMzIgc2lnbmFsIGxpbmUgZm9yIGhhcmR3YXJlIGZsb3cgY29udHJvbCBmcm9tIHRoZQorRENFIHRvIHRoZSBEVEUuCisuUFAKK0luIHF1ZXJ5IG1vZGUKKy5CIGN5dHVuZQord2lsbCBwcm9kdWNlIGEgc3VtbWFyeSByZXBvcnQgd2hlbiBlbmRlZCB3aXRoCithIFNJR0lOVCBvciB3aGVuIHRoZSB0aHJlc2hvbGQgb3IgdGltZW91dCBpcyBjaGFuZ2VkLgorLlBQCitUaGVyZSBtYXkgYmUgYSByZXNwb25zaXZlbmVzcyB2cy4gdGhyb3VnaHB1dCB0cmFkZW9mZi4gIFRoZSBDeWNsYWRlcyBjYXJkLAorYXQgdGhlIGhpZ2hlciBzcGVlZHMsIGlzIGNhcGFibGUgb2YgcHV0dGluZyBhIHZlcnkgaGlnaCBpbnRlcnJ1cHQgbG9hZCBvbiB0aGUKK3N5c3RlbS4gIFRoaXMgd2lsbCByZWR1Y2UgdGhlIGFtb3VudCBvZiBDUFUgdGltZSBhdmFpbGFibGUgZm9yIG90aGVyIHRhc2tzCitvbiB5b3VyIHN5c3RlbS4gIEhvd2V2ZXIsIHRoZSB0aW1lIGl0IHRha2VzIHRvIHJlc3BvbmQgdG8gYSBzaW5nbGUgY2hhcmFjdGVyCittYXkgYmUgaW5jcmVhc2VkIGlmIHlvdSBpbmNyZWFzZSB0aGUgdGhyZXNob2xkLiAgVGhpcyBtaWdodCBiZSBub3RpY2VkIGJ5Cittb25pdG9yaW5nCisuQlIgcGluZyAoOCkKK3RpbWVzIG9uIGEgU0xJUCBsaW5rIGNvbnRyb2xsZWQgYnkgYSBDeWNsYWRlcyBjYXJkLiAgSWYgeW91ciBTTElQIGxpbmsgaXMKK2dlbmVyYWxseSB1c2VkIGZvciBpbnRlcmFjdGl2ZSB3b3JrIHN1Y2ggYXMKKy5CUiB0ZWxuZXQgKDEpLAoreW91IG1heSB3YW50IHRvIGxlYXZlIHRoZSB0aHJlc2hvbGQgbG93LCBzbyB0aGF0IGNoYXJhY3RlcnMgYXJlIHJlc3BvbmRlZAordG8gYXMgcXVpY2tseSBhcyBwb3NzaWJsZS4gIElmIHlvdXIgU0xJUCBsaW5rIGlzIGdlbmVyYWxseSB1c2VkIGZvciBmaWxlCit0cmFuc2ZlciwgV1dXLCBhbmQgdGhlIGxpa2UsIHNldHRpbmcgdGhlIEZJRk8gdG8gYSBoaWdoIHZhbHVlIGlzIGxpa2VseSB0bworcmVkdWNlIHRoZSBsb2FkIG9uIHlvdXIgc3lzdGVtIHdoaWxlIG5vdCBzaWduaWZpY2FudGx5IGFmZmVjdGluZwordGhyb3VnaHB1dC4gIEFsdGVybmF0aXZlbHksIHNlZSB0aGUKKy5CIFwtdAorb3IKKy5CIFwtVAorb3B0aW9ucyB0byBhZGp1c3QgdGhlIHRpbWUgdGhhdCB0aGUgY3ljbGFkZXMgd2FpdHMgYmVmb3JlIGZsdXNoaW5nIGl0cworYnVmZmVyLiAgVW5pdHMgYXJlIDVtcy4KKy5QUAorSWYgeW91IGFyZSBydW5uaW5nIGEgbW91c2Ugb24gYSBDeWNsYWRlcyBwb3J0LCBpdCBpcyBsaWtlbHkgdGhhdCB5b3Ugd291bGQKK3dhbnQgdG8gbWFpbnRhaW4gdGhlIHRocmVzaG9sZCBhbmQgdGltZW91dCBhdCBhIGxvdyB2YWx1ZS4KKy5QUAorLlNIIE9QVElPTlMKKy5UUAorLkJJIFwtcyAiIHZhbHVlIgorU2V0IHRoZSBjdXJyZW50IHRocmVzaG9sZCB0bworLkkgdmFsdWUKK2NoYXJhY3RlcnMuICBOb3RlIHRoYXQgaWYgdGhlCisuSSB0dHkKK2lzIG5vdCBiZWluZyBoZWxkIG9wZW4gYnkgYW5vdGhlciBwcm9jZXNzLCB0aGUgdGhyZXNob2xkIHdpbGwgYmUgcmVzZXQgb24KK3RoZSBuZXh0IG9wZW4uICBPbmx5IHZhbHVlcyBiZXR3ZWVuIDEgYW5kIDEyLCBpbmNsdXNpdmUsIGFyZSBwZXJtaXR0ZWQuCisuVFAKKy5CSSBcLXQgIiB2YWx1ZSIKK1NldCB0aGUgY3VycmVudCBmbHVzaCB0aW1lb3V0IHRvCisuSSB2YWx1ZQordW5pdHMuICBOb3RlIHRoYXQgaWYgdGhlCisuSSB0dHkKK2lzIG5vdCBiZWluZyBoZWxkIG9wZW4gYnkgYW5vdGhlciBwcm9jZXNzLCB0aGUgdGhyZXNob2xkIHdpbGwgYmUgcmVzZXQgb24KK3RoZSBuZXh0IG9wZW4uICBPbmx5IHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDI1NSwgaW5jbHVzaXZlLCBhcmUgcGVybWl0dGVkLgorU2V0dGluZworLkkgdmFsdWUKK3RvIHplcm8gZm9yY2VzIHRoZSBkZWZhdWx0LCBjdXJyZW50bHkgMHgyMCAoMTYwbXMpLCBidXQgc29vbiB0byBiZSAweDAyCisoMTBtcykuICBVbml0cyBhcmUgNSBtcy4KKy5UUAorLkIgXC1nCitHZXQgdGhlIGN1cnJlbnQgdGhyZXNob2xkIGFuZCB0aW1lb3V0LgorLlRQCisuQkkgXC1TICIgdmFsdWUiCitTZXQgdGhlIGRlZmF1bHQgdGhyZXNob2xkIHRvCisuSSB2YWx1ZQorY2hhcmFjdGVycy4gIFdoZW4gdGhlCisuSSB0dHkKK2lzIG5leHQgb3BlbmVkLCB0aGlzIHZhbHVlIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0LgorT25seSB2YWx1ZXMgYmV0d2VlbiAxIGFuZCAxMiwgaW5jbHVzaXZlLCBhcmUgcGVybWl0dGVkLgorLlRQCisuQkkgXC1UICIgdmFsdWUiCitTZXQgdGhlIGRlZmF1bHQgZmx1c2ggdGltZW91dCB0bworLkkgdmFsdWUKK3VuaXRzLiAgV2hlbiB0aGUKKy5JIHR0eQoraXMgbmV4dCBvcGVuZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQuICBJZgorLkkgdmFsdWUKK2lzIHplcm8sIHRoZW4gdGhlIHRoZSB2YWx1ZSB3aWxsIGRlZmF1bHQgdG8gMHgyMCAoMTYwbXMpLCBzb29uIHRvIGJlIDB4MDIKKygxMG1zKS4KKy5UUAorLkIgXC1HCitHZXQgdGhlIGRlZmF1bHQgdGhyZXNob2xkIGFuZCBmbHVzaCB0aW1lb3V0IHZhbHVlcy4KKy5UUAorLkIgXC1xCitHYXRoZXIgc3RhdGlzdGljcyBhYm91dCB0aGUKKy5JUiB0dHkgLgorVGhlIHJlc3VsdHMgYXJlIG9ubHkgdmFsaWQgaWYgdGhlIEN5Y2xhZGVzIGRyaXZlciBoYXMgYmVlbiBjb21waWxlZCB3aXRoCisuQiBFTkFCTEVfTU9OSVRPUklORworZGVmaW5lZC4gIFRoaXMgaXMgcHJvYmFibHkgbm90IHRoZSBkZWZhdWx0LgorLlRQCisuQkkgXC1pICIgaW50ZXJ2YWwiCitTdGF0aXN0aWNzIHdpbGwgYmUgZ2F0aGVyZWQgZXZlcnkKKy5JIGludGVydmFsCitzZWNvbmRzLgorLlNIIEJVR1MKK0lmIHlvdSBydW4gdHdvIGNvcGllcyBvZgorLkIgY3l0dW5lCithdCB0aGUgc2FtZSB0aW1lIHRvIHJlcG9ydCBzdGF0aXN0aWNzIGFib3V0IHRoZSBzYW1lIHBvcnQsCit0aGUgJ2ludHMnLCAnY2hhcnMnLCBhbmQgJ21heCcgdmFsdWUgd2lsbCBiZSByZXNldAorYW5kIG5vdCByZXBvcnRlZCBjb3JyZWN0bHkuCisuQiBjeXR1bmUKK3Nob3VsZCBwcmV2ZW50IHRoaXMsIGJ1dCBkb2VzIG5vdC4KKy5cIiAuU0ggQVVUSE9SCisuXCIgTmljayBTaW1pY2ljaCAobmpzQHNjaWZpLmVtaS5uZXQpLCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkKKy5cIiBSaWsgRmFpdGggKGZhaXRoQGNzLnVuYy5lZHUpCisuU0ggRklMRVMKKy5JIC9kZXYvdHR5Q1swLThdCisuYnIKKy5JIC9kZXYvY3ViQ1swLThdCisuU0ggIlNFRSBBTFNPIgorLkJSIHNldHNlcmlhbCAoOCkKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBjeXR1bmUgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvY3l0dW5lLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvY3l0dW5lLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBhODc0ZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9jeXR1bmUuYwpAQCAtMCwwICsxLDQ0NCBAQAorLyogY3l0dW5lLmMgLS0gVHVuZSBDeWNsYWRlcyBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgMTk5NSBOaWNrIFNpbWljaWNoIChuanNAc2NpZmkuZW1pLm5ldCkKKyAqCisgKiBNb2RpZmljYXRpb25zIGJ5IFJpayBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICogICAgICBUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBOaWNrIFNpbWljaWNoCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBOaWNrIFNpbWljaWNoIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE5JQ0sgU0lNSUNJQ0ggQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIE5JQ0sgU0lNSUNJQ0ggT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworIC8qCisgICogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICAqIFN1biBNYXIgMjEgMTk5OSAtIEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUBjb25lY3RpdmEuY29tLmJyPgorICAqIC0gZml4ZWQgc3RyZXJyKGVycm5vKSBpbiBnZXR0ZXh0IGNhbGxzCisgICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKworI2luY2x1ZGUgImN5Y2xhZGVzLmgiCisKKyNpZiAwCisjaWZuZGVmIFhNSVQKKyMgaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorIyBpZiBMSU5VWF9WRVJTSU9OX0NPREUgPiA2NjA1NgorIyAgZGVmaW5lIFhNSVQKKyMgZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpbmNsdWRlICJubHMuaCIKKwkJCQkvKiBVbnRpbCBpdCBnZXRzIHB1dCBpbiB0aGUga2VybmVsLAorCQkJCSAgIHRvZ2dsZSBieSBoYW5kLiAqLworI3VuZGVmIFhNSVQKKworc3RydWN0IGN5Y2xhZGVzX2NvbnRyb2wgeworICBzdHJ1Y3QgY3ljbGFkZXNfbW9uaXRvciBjOworICBpbnQgY2ZpbGU7CisgIGludCBtYXhtYXg7CisgIGRvdWJsZSBtYXh0cmFuOworICBkb3VibGUgbWF4eG1pdDsKKyAgdW5zaWduZWQgbG9uZyB0aHJlc2hvbGRfdmFsdWU7CisgIHVuc2lnbmVkIGxvbmcgdGltZW91dF92YWx1ZTsKK307CitzdHJ1Y3QgY3ljbGFkZXNfY29udHJvbCAqY21vbjsKK2ludCBjbW9uX2luZGV4OworCisjZGVmaW5lIG12dGltZSh0dnB0bywgdHZwZnJvbSkgICgoKHR2cHRvKS0+dHZfc2VjID0gKHR2cGZyb20pLT50dl9zZWMpLCh0dnB0byktPnR2X3VzZWMgPSAodHZwZnJvbSktPnR2X3VzZWMpCisKKworc3RhdGljIGlubGluZSBkb3VibGUKK2R0aW1lKHN0cnVjdCB0aW1ldmFsICogdHZwbmV3LCBzdHJ1Y3QgdGltZXZhbCAqIHR2cG9sZCkgeworICBkb3VibGUgZGlmZjsKKyAgZGlmZiA9IChkb3VibGUpdHZwbmV3LT50dl9zZWMgLSAoZG91YmxlKXR2cG9sZC0+dHZfc2VjOworICBkaWZmICs9ICgoZG91YmxlKXR2cG5ldy0+dHZfdXNlYyAtIChkb3VibGUpdHZwb2xkLT50dl91c2VjKS8xMDAwMDAwOworICByZXR1cm4gZGlmZjsKK30KKworc3RhdGljIGludCBnbG9iYWxfYXJnYywgZ2xvYmFsX29wdGluZDsKK3N0YXRpYyBjaGFyICoqKmdsb2JhbF9hcmd2OworCitzdGF0aWMgdm9pZAorc3VtbWFyeShpbnQgc2lnKSB7CisgIHN0cnVjdCBjeWNsYWRlc19jb250cm9sICpjYzsKKworICBpbnQgYXJnYywgbG9jYWxfb3B0aW5kOworICBjaGFyICoqYXJndjsKKworICBpbnQgaSxqOworCisgIGFyZ2MgPSBnbG9iYWxfYXJnYzsKKyAgYXJndiA9ICpnbG9iYWxfYXJndjsKKyAgbG9jYWxfb3B0aW5kID0gZ2xvYmFsX29wdGluZDsKKworICBpZiAoc2lnID4gMCkgeworICAgIGZvcihpID0gbG9jYWxfb3B0aW5kOyBpIDwgYXJnYzsgaSArKykgeworICAgICAgaiA9IGkgLSBsb2NhbF9vcHRpbmQ7CisgICAgICBjYyA9ICZjbW9uW2Ntb25faW5kZXhdOworICAgICAgZnByaW50ZihzdGRlcnIsIF8oIkZpbGUgJXMsIEZvciB0aHJlc2hvbGQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgaW4gZmlmbyB3ZXJlICVkLFxuYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iKSwgCisJICAgICAgYXJndltpXSwKKwkgICAgICBjYy0+dGhyZXNob2xkX3ZhbHVlLAorCSAgICAgIGNjLT5tYXhtYXgsCisJICAgICAgY2MtPm1heHRyYW4pOworICAgIH0KKyAgICAKKyAgICBleGl0KDApOworICB9CisgIGNjID0gJmNtb25bY21vbl9pbmRleF07CisgIGlmIChjYy0+dGhyZXNob2xkX3ZhbHVlID4gMCAmJiBzaWcgIT0gLTEpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgXygiRmlsZSAlcywgRm9yIHRocmVzaG9sZCB2YWx1ZSAlbHUgYW5kIHRpbXJvdXQgdmFsdWUgJWx1LCBNYXhpbXVtIGNoYXJhY3RlcnMgaW4gZmlmbyB3ZXJlICVkLFxuYW5kIHRoZSBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgaW4gY2hhcmFjdGVycy9zZWNvbmQgd2FzICVmXG4iKSwKKwkgICAgYXJndltjbW9uX2luZGV4K2xvY2FsX29wdGluZF0sCisJICAgIGNjLT50aHJlc2hvbGRfdmFsdWUsCisJICAgIGNjLT50aW1lb3V0X3ZhbHVlLAorCSAgICBjYy0+bWF4bWF4LAorCSAgICBjYy0+bWF4dHJhbik7CisgIH0KKyAgY2MtPm1heG1heCA9IDA7CisgIGNjLT5tYXh0cmFuID0gMC4wOworICBjYy0+dGhyZXNob2xkX3ZhbHVlID0gMDsKKyAgY2MtPnRpbWVvdXRfdmFsdWUgPSAwOworfQorCitzdGF0aWMgaW50IHF1ZXJ5ICAgPSAwOworc3RhdGljIGludCBpbnRlcnZhbCA9IDE7CisKK3N0YXRpYyBpbnQgc2V0ICAgICA9IDA7CitzdGF0aWMgaW50IHNldF92YWwgPSAtMTsKK3N0YXRpYyBpbnQgZ2V0ICAgICA9IDA7CisKK3N0YXRpYyBpbnQgc2V0X2RlZiAgICAgPSAwOworc3RhdGljIGludCBzZXRfZGVmX3ZhbCA9IC0xOworc3RhdGljIGludCBnZXRfZGVmICAgICA9IDA7CisKK3N0YXRpYyBpbnQgc2V0X3RpbWUgPSAwOworc3RhdGljIGludCBzZXRfdGltZV92YWwgPSAtMTsKKworc3RhdGljIGludCBzZXRfZGVmX3RpbWUgPSAwOworc3RhdGljIGludCBzZXRfZGVmX3RpbWVfdmFsID0gLTE7CisKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworCisgIHN0cnVjdCB0aW1ldmFsIGxhc3R0aW1lLCB0aGlzdGltZTsKKyAgc3RydWN0IHRpbWV6b25lIHR6ID0gezAsMH07CisgIGRvdWJsZSBkaWZmOworICBpbnQgZXJyZmxnID0gMDsKKyAgaW50IGZpbGU7CisgIGludCBudW1maWxlczsKKyAgc3RydWN0IGN5Y2xhZGVzX21vbml0b3IgY3l3b3JrOworICAKKyAgaW50IGk7CisgIHVuc2lnbmVkIGxvbmcgdGhyZXNob2xkX3ZhbHVlOworICB1bnNpZ25lZCBsb25nIHRpbWVvdXRfdmFsdWU7CisgIGRvdWJsZSB4ZmVyX3JhdGU7CisjaWZkZWYgWE1JVAorICBkb3VibGUgeG1pdF9yYXRlOworI2VuZGlmCisgIAorICBnbG9iYWxfYXJnYyA9IGFyZ2M7CQkvKiBGb3Igc2lnbmFsIHJvdXRpbmUuICovCisgIGdsb2JhbF9hcmd2ID0gJmFyZ3Y7CQkvKiBGb3Igc2lnbmFsIHJvdXRpbmUuICovCisKKyAgc2V0bG9jYWxlKExDX0FMTCwgIiIpOworICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICB0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisgIHdoaWxlICgoaSA9IGdldG9wdChhcmdjLCBhcmd2LCAicXM6Uzp0OlQ6Z0dpOiIpKSAhPSAtMSkgeworICAgIHN3aXRjaCAoaSkgeworICAgIGNhc2UgJ3EnOgorICAgICAgcXVlcnkgPSAxOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnaSc6CisgICAgICBpbnRlcnZhbCA9IGF0b2kob3B0YXJnKTsKKyAgICAgIGlmKGludGVydmFsIDw9IDApIHsKKwlmcHJpbnRmKHN0ZGVyciwgXygiSW52YWxpZCBpbnRlcnZhbCB2YWx1ZTogJXNcbiIpLG9wdGFyZyk7CisJZXJyZmxnICsrOworICAgICAgfQorICAgICAgYnJlYWs7CisgICAgY2FzZSAncyc6CisgICAgICArK3NldDsKKyAgICAgIHNldF92YWwgPSBhdG9pKG9wdGFyZyk7CisgICAgICBpZihzZXRfdmFsIDw9IDAgfHwgc2V0X3ZhbCA+IDEyKSB7CisJZnByaW50ZihzdGRlcnIsIF8oIkludmFsaWQgc2V0IHZhbHVlOiAlc1xuIiksb3B0YXJnKTsKKwllcnJmbGcgKys7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICBjYXNlICdTJzoKKyAgICAgICArK3NldF9kZWY7CisgICAgICBzZXRfZGVmX3ZhbCA9IGF0b2kob3B0YXJnKTsKKyAgICAgIGlmKHNldF9kZWZfdmFsIDwgMCB8fCBzZXRfZGVmX3ZhbCA+IDEyKSB7CisJZnByaW50ZihzdGRlcnIsIF8oIkludmFsaWQgZGVmYXVsdCB2YWx1ZTogJXNcbiIpLG9wdGFyZyk7CisJZXJyZmxnICsrOworICAgICAgfQorICAgICAgYnJlYWs7CisgICAgY2FzZSAndCc6CisgICAgICArK3NldF90aW1lOworICAgICAgc2V0X3RpbWVfdmFsID0gYXRvaShvcHRhcmcpOworICAgICAgaWYoc2V0X3RpbWVfdmFsIDw9IDAgfHwgc2V0X3RpbWVfdmFsID4gMjU1KSB7CisJZnByaW50ZihzdGRlcnIsIF8oIkludmFsaWQgc2V0IHRpbWUgdmFsdWU6ICVzXG4iKSxvcHRhcmcpOworCWVycmZsZyArKzsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1QnOgorICAgICAgICsrc2V0X2RlZl90aW1lOworICAgICAgc2V0X2RlZl90aW1lX3ZhbCA9IGF0b2kob3B0YXJnKTsKKyAgICAgIGlmKHNldF9kZWZfdGltZV92YWwgPCAwIHx8IHNldF9kZWZfdGltZV92YWwgPiAyNTUpIHsKKwlmcHJpbnRmKHN0ZGVyciwgXygiSW52YWxpZCBkZWZhdWx0IHRpbWUgdmFsdWU6ICVzXG4iKSxvcHRhcmcpOworCWVycmZsZyArKzsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ2cnOiArK2dldDsgICAgIGJyZWFrOworICAgIGNhc2UgJ0cnOiArK2dldF9kZWY7IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBlcnJmbGcgKys7CisgICAgfQorICB9CisgIG51bWZpbGVzID0gYXJnYyAtIG9wdGluZDsKKyAgaWYoZXJyZmxnIHx8IChudW1maWxlcyA9PSAwKQorICAgICB8fCAoIXF1ZXJ5ICYmICFzZXQgJiYgIXNldF9kZWYgJiYgCisJICFnZXQgJiYgIWdldF9kZWYgJiYgIXNldF90aW1lICYmICFzZXRfZGVmX3RpbWUpIHx8IAorICAgICAoc2V0ICYmIHNldF9kZWYpIHx8IChzZXRfdGltZSAmJiBzZXRfZGVmX3RpbWUpIHx8IAorICAgICAoZ2V0ICYmIGdldF9kZWYpKSB7CisgICAgZnByaW50ZihzdGRlcnIsIAorCSAgICBfKCJVc2FnZTogJXMgWy1xIFstaSBpbnRlcnZhbF1dIChbLXMgdmFsdWVdfFstUyB2YWx1ZV0pIChbLXQgdmFsdWVdfFstVCB2YWx1ZV0pIFstZ3wtR10gZmlsZSBbZmlsZS4uLl1cbiIpLAorCSAgICBhcmd2WzBdKTsKKyAgICBleGl0KDEpOworICB9CisKKyAgZ2xvYmFsX29wdGluZCA9IG9wdGluZDsJLyogRm9yIHNpZ25hbCByb3V0aW5lLiAqLworCisgIGlmIChzZXQgfHwgc2V0X2RlZikgeworICAgIGZvcihpID0gb3B0aW5kOyBpIDwgYXJnYzsgaSsrKSB7CisgICAgICBmaWxlID0gb3Blbihhcmd2W2ldLE9fUkRPTkxZKTsKKyAgICAgIGlmKGZpbGUgPT0gLTEpIHsKKyAgICAgICAgaW50IGVycnN2ID0gZXJybm87CisJZnByaW50ZihzdGRlcnIsIF8oIkNhbid0IG9wZW4gJXM6ICVzXG4iKSxhcmd2W2ldLHN0cmVycm9yKGVycnN2KSk7CisJZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIGlmKGlvY3RsKGZpbGUsCisJICAgICAgIHNldCA/IENZU0VUVEhSRVNIIDogQ1lTRVRERUZUSFJFU0gsCisJICAgICAgIHNldCA/IHNldF92YWwgOiBzZXRfZGVmX3ZhbCkpIHsKKwlpbnQgZXJyc3YgPSBlcnJubzsKKwlmcHJpbnRmKHN0ZGVyciwgXygiQ2FuJ3Qgc2V0ICVzIHRvIHRocmVzaG9sZCAlZDogJXNcbiIpLAorCQlhcmd2W2ldLHNldD9zZXRfdmFsOnNldF9kZWZfdmFsLHN0cmVycm9yKGVycnN2KSk7CisJZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIGNsb3NlKGZpbGUpOworICAgIH0KKyAgfQorICBpZiAoc2V0X3RpbWUgfHwgc2V0X2RlZl90aW1lKSB7CisgICAgZm9yKGkgPSBvcHRpbmQ7IGkgPCBhcmdjOyBpKyspIHsKKyAgICAgIGZpbGUgPSBvcGVuKGFyZ3ZbaV0sT19SRE9OTFkpOworICAgICAgaWYoZmlsZSA9PSAtMSkgeworICAgICAgICBpbnQgZXJyc3YgPSBlcnJubzsKKwlmcHJpbnRmKHN0ZGVyciwgXygiQ2FuJ3Qgb3BlbiAlczogJXNcbiIpLGFyZ3ZbaV0sc3RyZXJyb3IoZXJyc3YpKTsKKwlleGl0KDEpOworICAgICAgfQorICAgICAgaWYoaW9jdGwoZmlsZSwKKwkgICAgICAgc2V0X3RpbWUgPyBDWVNFVFRJTUVPVVQgOiBDWVNFVERFRlRJTUVPVVQsCisJICAgICAgIHNldF90aW1lID8gc2V0X3RpbWVfdmFsIDogc2V0X2RlZl90aW1lX3ZhbCkpIHsKKwlpbnQgZXJyc3YgPSBlcnJubzsKKwlmcHJpbnRmKHN0ZGVyciwgXygiQ2FuJ3Qgc2V0ICVzIHRvIHRpbWUgdGhyZXNob2xkICVkOiAlc1xuIiksCisJCWFyZ3ZbaV0sc2V0X3RpbWU/c2V0X3RpbWVfdmFsOnNldF9kZWZfdGltZV92YWwsc3RyZXJyb3IoZXJyc3YpKTsKKwlleGl0KDEpOworICAgICAgfQorICAgICAgY2xvc2UoZmlsZSk7CisgICAgfQorICB9CisKKyAgaWYgKGdldCB8fCBnZXRfZGVmKSB7CisgICAgZm9yKGkgPSBvcHRpbmQ7IGkgPCBhcmdjOyBpKyspIHsKKyAgICAgIGZpbGUgPSBvcGVuKGFyZ3ZbaV0sT19SRE9OTFkpOworICAgICAgaWYoZmlsZSA9PSAtMSkgeworICAgICAgICBpbnQgZXJyc3YgPSBlcnJubzsKKwlmcHJpbnRmKHN0ZGVyciwgXygiQ2FuJ3Qgb3BlbiAlczogJXNcbiIpLGFyZ3ZbaV0sc3RyZXJyb3IoZXJyc3YpKTsKKwlleGl0KDEpOworICAgICAgfQorICAgICAgaWYoaW9jdGwoZmlsZSwgZ2V0ID8gQ1lHRVRUSFJFU0ggOiBDWUdFVERFRlRIUkVTSCwgJnRocmVzaG9sZF92YWx1ZSkpIHsKKyAgICAgICAgaW50IGVycnN2ID0gZXJybm87CisJZnByaW50ZihzdGRlcnIsIF8oIkNhbid0IGdldCB0aHJlc2hvbGQgZm9yICVzOiAlc1xuIiksCisJCWFyZ3ZbaV0sc3RyZXJyb3IoZXJyc3YpKTsKKwlleGl0KDEpOworICAgICAgfQorICAgICAgaWYoaW9jdGwoZmlsZSwgZ2V0ID8gQ1lHRVRUSU1FT1VUIDogQ1lHRVRERUZUSU1FT1VULCAmdGltZW91dF92YWx1ZSkpIHsKKyAgICAgIAlpbnQgZXJyc3YgPSBlcnJubzsKKwlmcHJpbnRmKHN0ZGVyciwgXygiQ2FuJ3QgZ2V0IHRpbWVvdXQgZm9yICVzOiAlc1xuIiksCisJCWFyZ3ZbaV0sc3RyZXJyb3IoZXJyc3YpKTsKKwlleGl0KDEpOworICAgICAgfQorICAgICAgY2xvc2UoZmlsZSk7CisgICAgICBpZiAoZ2V0KQorCSAgICAgIHByaW50ZihfKCIlczogJWxkIGN1cnJlbnQgdGhyZXNob2xkIGFuZCAlbGQgY3VycmVudCB0aW1lb3V0XG4iKSwKKwkJICAgICBhcmd2W2ldLCB0aHJlc2hvbGRfdmFsdWUsIHRpbWVvdXRfdmFsdWUpOworICAgICAgZWxzZQorCSAgICAgIHByaW50ZihfKCIlczogJWxkIGRlZmF1bHQgdGhyZXNob2xkIGFuZCAlbGQgZGVmYXVsdCB0aW1lb3V0XG4iKSwKKwkJICAgICBhcmd2W2ldLCB0aHJlc2hvbGRfdmFsdWUsIHRpbWVvdXRfdmFsdWUpOworICAgIH0KKyAgfQorCisgIGlmKCFxdWVyeSkgcmV0dXJuIDA7CQkvKiBtdXN0IGhhdmUgYmVlbiBzb21ldGhpbmcgZWFybGllciAqLworCisgIC8qIHF1ZXJ5IHN0dWZmIGFmdGVyIHRoaXMgbGluZSAqLworICAKKyAgY21vbiA9IChzdHJ1Y3QgY3ljbGFkZXNfY29udHJvbCAqKSBtYWxsb2Moc2l6ZW9mIChzdHJ1Y3QgY3ljbGFkZXNfY29udHJvbCkKKwkJCQkJICAgICogbnVtZmlsZXMpOworICBpZighY21vbikgeworICAgIHBlcnJvcihfKCJtYWxsb2MgZmFpbGVkIikpOworICAgIGV4aXQoMSk7CisgIH0KKyAgaWYoc2lnbmFsKFNJR0lOVCwgc3VtbWFyeSl8fAorICAgICBzaWduYWwoU0lHUVVJVCwgc3VtbWFyeSl8fAorICAgICBzaWduYWwoU0lHVEVSTSwgc3VtbWFyeSkpIHsKKyAgICBwZXJyb3IoXygiQ2FuJ3Qgc2V0IHNpZ25hbCBoYW5kbGVyIikpOworICAgIGV4aXQoMSk7CisgIH0KKyAgaWYoZ2V0dGltZW9mZGF5KCZsYXN0dGltZSwmdHopKSB7CisgICAgcGVycm9yKF8oImdldHRpbWVvZmRheSBmYWlsZWQiKSk7CisgICAgZXhpdCgxKTsKKyAgfQorICBmb3IoaSA9IG9wdGluZDsgaSA8IGFyZ2M7IGkgKyspIHsKKyAgICBjbW9uX2luZGV4ID0gaSAtIG9wdGluZDsKKyAgICBjbW9uW2Ntb25faW5kZXhdLmNmaWxlID0gb3Blbihhcmd2W2ldLCBPX1JET05MWSk7CisgICAgaWYoLTEgPT0gY21vbltjbW9uX2luZGV4XS5jZmlsZSkgeworICAgICAgaW50IGVycnN2ID0gZXJybm87CisgICAgICBmcHJpbnRmKHN0ZGVyciwgXygiQ2FuJ3Qgb3BlbiAlczogJXNcbiIpLGFyZ3ZbaV0sc3RyZXJyb3IoZXJyc3YpKTsKKyAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIGlmKGlvY3RsKGNtb25bY21vbl9pbmRleF0uY2ZpbGUsIENZR0VUTU9OLCAmY21vbltjbW9uX2luZGV4XS5jKSkgeworICAgICAgaW50IGVycnN2ID0gZXJybm87CisgICAgICBmcHJpbnRmKHN0ZGVyciwgXygiQ2FuJ3QgaXNzdWUgQ1lHRVRNT04gb24gJXM6ICVzXG4iKSwKKwkgICAgICBhcmd2W2ldLHN0cmVycm9yKGVycnN2KSk7CisgICAgICBleGl0KDEpOworICAgIH0KKyAgICBzdW1tYXJ5KC0xKTsKKyAgICBpZihpb2N0bChjbW9uW2Ntb25faW5kZXhdLmNmaWxlLCBDWUdFVFRIUkVTSCwgJnRocmVzaG9sZF92YWx1ZSkpIHsKKyAgICAgIGludCBlcnJzdiA9IGVycm5vOworICAgICAgZnByaW50ZihzdGRlcnIsIF8oIkNhbid0IGdldCB0aHJlc2hvbGQgZm9yICVzOiAlc1xuIiksCisJICAgICAgYXJndltpXSxzdHJlcnJvcihlcnJzdikpOworICAgICAgZXhpdCgxKTsKKyAgICB9CisgICAgaWYoaW9jdGwoY21vbltjbW9uX2luZGV4XS5jZmlsZSwgQ1lHRVRUSU1FT1VULCAmdGltZW91dF92YWx1ZSkpIHsKKyAgICAgIGludCBlcnJzdiA9IGVycm5vOworICAgICAgZnByaW50ZihzdGRlcnIsIF8oIkNhbid0IGdldCB0aW1lb3V0IGZvciAlczogJXNcbiIpLAorCSAgICAgIGFyZ3ZbaV0sc3RyZXJyb3IoZXJyc3YpKTsKKyAgICAgIGV4aXQoMSk7CisgICAgfQorICB9CisgIHdoaWxlKDEpIHsKKyAgICBzbGVlcChpbnRlcnZhbCk7CisgICAgCisgICAgaWYoZ2V0dGltZW9mZGF5KCZ0aGlzdGltZSwmdHopKSB7CisgICAgICBwZXJyb3IoXygiZ2V0dGltZW9mZGF5IGZhaWxlZCIpKTsKKyAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIGRpZmYgPSBkdGltZSgmdGhpc3RpbWUsICZsYXN0dGltZSk7CisgICAgbXZ0aW1lKCZsYXN0dGltZSwgJnRoaXN0aW1lKTsKKworICAgIGZvcihpID0gb3B0aW5kOyBpIDwgYXJnYzsgaSArKykgeworICAgICAgY21vbl9pbmRleCA9IGkgLSBvcHRpbmQ7CisgICAgICBpZihpb2N0bChjbW9uW2Ntb25faW5kZXhdLmNmaWxlLCBDWUdFVE1PTiwgJmN5d29yaykpIHsKKyAgICAgICAgaW50IGVycnN2ID0gZXJybm87CisJZnByaW50ZihzdGRlcnIsIF8oIkNhbid0IGlzc3VlIENZR0VUTU9OIG9uICVzOiAlc1xuIiksCisJCWFyZ3ZbaV0sc3RyZXJyb3IoZXJyc3YpKTsKKwlleGl0KDEpOworICAgICAgfQorICAgICAgaWYoaW9jdGwoY21vbltjbW9uX2luZGV4XS5jZmlsZSwgQ1lHRVRUSFJFU0gsICZ0aHJlc2hvbGRfdmFsdWUpKSB7CisgICAgICAgIGludCBlcnJzdiA9IGVycm5vOworCWZwcmludGYoc3RkZXJyLCBfKCJDYW4ndCBnZXQgdGhyZXNob2xkIGZvciAlczogJXNcbiIpLAorCQlhcmd2W2ldLHN0cmVycm9yKGVycnN2KSk7CisJZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIGlmKGlvY3RsKGNtb25bY21vbl9pbmRleF0uY2ZpbGUsIENZR0VUVElNRU9VVCwgJnRpbWVvdXRfdmFsdWUpKSB7CisgICAgICAgIGludCBlcnJzdiA9IGVycm5vOworCWZwcmludGYoc3RkZXJyLCBfKCJDYW4ndCBnZXQgdGltZW91dCBmb3IgJXM6ICVzXG4iKSwKKwkJYXJndltpXSxzdHJlcnJvcihlcnJzdikpOworCWV4aXQoMSk7CisgICAgICB9CisKKyAgICAgIHhmZXJfcmF0ZSA9IGN5d29yay5jaGFyX2NvdW50L2RpZmY7CisjaWZkZWYgWE1JVAorICAgICAgeG1pdF9yYXRlID0gY3l3b3JrLnNlbmRfY291bnQvZGlmZjsKKyNlbmRpZgorCisgICAgICBpZih0aHJlc2hvbGRfdmFsdWUgIT0gY21vbltjbW9uX2luZGV4XS50aHJlc2hvbGRfdmFsdWUgfHwKKwkgdGltZW91dF92YWx1ZSAhPSBjbW9uW2Ntb25faW5kZXhdLnRpbWVvdXRfdmFsdWUpIHsKKwlzdW1tYXJ5KC0yKTsKKwkvKiBOb3RlIHRoYXQgdGhlIHN1bW1hcnkgbXVzdCBjb21lIGJlZm9yZSB0aGUgc2V0dGluZyBvZiAqLworCS8qIHRocmVzaG9sZF92YWx1ZSAqLworCWNtb25bY21vbl9pbmRleF0udGhyZXNob2xkX3ZhbHVlID0gdGhyZXNob2xkX3ZhbHVlOwkgCisJY21vbltjbW9uX2luZGV4XS50aW1lb3V0X3ZhbHVlID0gdGltZW91dF92YWx1ZTsJIAorICAgICAgfSBlbHNlIHsKKwkvKiBEb24ndCByZWNvcmQgdGhpcyBmaXJzdCBjeWNsZSBhZnRlciBjaGFuZ2UgKi8KKwlpZih4ZmVyX3JhdGUgPiBjbW9uW2Ntb25faW5kZXhdLm1heHRyYW4pIAorCSAgY21vbltjbW9uX2luZGV4XS5tYXh0cmFuID0geGZlcl9yYXRlOworI2lmZGVmIFhNSVQKKwlpZih4bWl0X3JhdGUgPiBjbW9uW2Ntb25faW5kZXhdLm1heHhtaXQpCisgICAgICAgICAgY21vbltjbW9uX2luZGV4XS5tYXh4bWl0ID0geG1pdF9yYXRlOworI2VuZGlmCisJaWYoY3l3b3JrLmNoYXJfbWF4ID4gY21vbltjbW9uX2luZGV4XS5tYXhtYXgpIAorCSAgY21vbltjbW9uX2luZGV4XS5tYXhtYXggPSBjeXdvcmsuY2hhcl9tYXg7CisgICAgICB9CisKKyNpZmRlZiBYTUlUCisgICAgICBwcmludGYoXygiJXM6ICVsdSBpbnRzLCAlbHUvJWx1IGNoYXJzOyBmaWZvOiAlbHUgdGhyZXNoLCAlbHUgdG1vdXQsICIKKwkgICAgICAgIiVsdSBtYXgsICVsdSBub3dcbiIpLAorCSAgICAgYXJndltpXSwKKwkgICAgIGN5d29yay5pbnRfY291bnQsY3l3b3JrLmNoYXJfY291bnQsY3l3b3JrLnNlbmRfY291bnQsCisJICAgICB0aHJlc2hvbGRfdmFsdWUsdGltZW91dF92YWx1ZSwKKwkgICAgIGN5d29yay5jaGFyX21heCxjeXdvcmsuY2hhcl9sYXN0KTsKKyAgICAgIHByaW50ZihfKCIgICAlZiBpbnQvc2VjOyAlZiByZWMsICVmIHNlbmQgKGNoYXIvc2VjKVxuIiksCisJICAgICBjeXdvcmsuaW50X2NvdW50L2RpZmYsCisJICAgICB4ZmVyX3JhdGUsCisJICAgICB4bWl0X3JhdGUpOworI2Vsc2UKKyAgICAgIHByaW50ZihfKCIlczogJWx1IGludHMsICVsdSBjaGFyczsgZmlmbzogJWx1IHRocmVzaCwgJWx1IHRtb3V0LCAiCisJICAgICAgICIlbHUgbWF4LCAlbHUgbm93XG4iKSwKKwkgICAgIGFyZ3ZbaV0sCisJICAgICBjeXdvcmsuaW50X2NvdW50LGN5d29yay5jaGFyX2NvdW50LAorCSAgICAgdGhyZXNob2xkX3ZhbHVlLHRpbWVvdXRfdmFsdWUsCisJICAgICBjeXdvcmsuY2hhcl9tYXgsY3l3b3JrLmNoYXJfbGFzdCk7CisgICAgICBwcmludGYoXygiICAgJWYgaW50L3NlYzsgJWYgcmVjIChjaGFyL3NlYylcbiIpLAorCSAgICAgY3l3b3JrLmludF9jb3VudC9kaWZmLAorCSAgICAgeGZlcl9yYXRlKTsKKyNlbmRpZgorICAgICAgbWVtY3B5KCZjbW9uW2Ntb25faW5kZXhdLmMsICZjeXdvcmssIHNpemVvZiAoc3RydWN0IGN5Y2xhZGVzX21vbml0b3IpKTsKKyAgICB9CisgIH0KKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9kbWVzZy4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2RtZXNnLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRhOTEwMAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9kbWVzZy4xCkBAIC0wLDAgKzEsNzAgQEAKKy5cIiBDb3B5cmlnaHQgMTk5MyBSaWNrYXJkIEUuIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlwiIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5USCBETUVTRyAxCisuU0ggTkFNRQorZG1lc2cgXC0gcHJpbnQgb3IgY29udHJvbCB0aGUga2VybmVsIHJpbmcgYnVmZmVyCisuU0ggU1lOT1BTSVMKKy5CIGRtZXNnCisuUkIgWyBcLWMgXQorLlJCIFsgXC1yIF0KKy5SQiBbIFwtbgorLklSIGxldmVsIF0KKy5SQiBbIFwtcworLklSIGJ1ZnNpemUgXQorLlNIIERFU0NSSVBUSU9OCisuQiBkbWVzZworaXMgdXNlZCB0byBleGFtaW5lIG9yIGNvbnRyb2wgdGhlIGtlcm5lbCByaW5nIGJ1ZmZlci4KKworVGhlIHByb2dyYW0gaGVscHMgdXNlcnMgdG8gcHJpbnQgb3V0IHRoZWlyIGJvb3R1cCBtZXNzYWdlcy4gIEluc3RlYWQgb2YKK2NvcHlpbmcgdGhlIG1lc3NhZ2VzIGJ5IGhhbmQsIHRoZSB1c2VyIG5lZWQgb25seToKKy5SUworZG1lc2cgPiBib290Lm1lc3NhZ2VzCisuUkUKK2FuZCBtYWlsIHRoZQorLkkgYm9vdC5tZXNzYWdlcworZmlsZSB0byB3aG9ldmVyIGNhbiBkZWJ1ZyB0aGVpciBwcm9ibGVtLgorLlNIIE9QVElPTlMKKy5UUAorLkIgXC1jCitDbGVhciB0aGUgcmluZyBidWZmZXIgY29udGVudHMgYWZ0ZXIgcHJpbnRpbmcuCisuVFAKKy5CIFwtcgorUHJpbnQgdGhlIHJhdyBtZXNzYWdlIGJ1ZmZlciwgaS5lLiwgZG9uJ3Qgc3RyaXAgdGhlIGxvZyBsZXZlbCBwcmVmaXhlcy4KKy5UUAorLkJJIFwtcyAiIGJ1ZnNpemUiCitVc2UgYSBidWZmZXIgb2Ygc2l6ZQorLkkgYnVmc2l6ZQordG8gcXVlcnkgdGhlIGtlcm5lbCByaW5nIGJ1ZmZlci4gIFRoaXMgaXMgMTYzOTIgYnkgZGVmYXVsdC4KKyhUaGUgZGVmYXVsdCBrZXJuZWwgc3lzbG9nIGJ1ZmZlciBzaXplIHdhcyA0MDk2CithdCBmaXJzdCwgODE5MiBzaW5jZSAxLjMuNTQsIDE2Mzg0IHNpbmNlIDIuMS4xMTMuKQorSWYgeW91IGhhdmUgc2V0IHRoZSBrZXJuZWwgYnVmZmVyIHRvIGJlIGxhcmdlciB0aGFuIHRoZSBkZWZhdWx0Cit0aGVuIHRoaXMgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIHZpZXcgdGhlIGVudGlyZSBidWZmZXIuCisuVFAKKy5CSSBcLW4gIiBsZXZlbCIKK1NldCB0aGUKKy5JIGxldmVsCithdCB3aGljaCBsb2dnaW5nIG9mIG1lc3NhZ2VzIGlzIGRvbmUgdG8gdGhlIGNvbnNvbGUuICBGb3IgZXhhbXBsZSwKKy5CIFwtbiAxCitwcmV2ZW50cyBhbGwgbWVzc2FnZXMsIGV4Y2VwdCBwYW5pYyBtZXNzYWdlcywgZnJvbSBhcHBlYXJpbmcgb24gdGhlCitjb25zb2xlLiAgQWxsIGxldmVscyBvZiBtZXNzYWdlcyBhcmUgc3RpbGwgd3JpdHRlbiB0bworLklSIC9wcm9jL2ttc2cgLAorc28KKy5CUiBzeXNsb2dkICg4KQorY2FuIHN0aWxsIGJlIHVzZWQgdG8gY29udHJvbCBleGFjdGx5IHdoZXJlIGtlcm5lbCBtZXNzYWdlcyBhcHBlYXIuICBXaGVuCit0aGUKKy5CIFwtbgorb3B0aW9uIGlzIHVzZWQsCisuQiBkbWVzZword2lsbAorLkkgbm90CitwcmludCBvciBjbGVhciB0aGUga2VybmVsIHJpbmcgYnVmZmVyLgorCitXaGVuIGJvdGggb3B0aW9ucyBhcmUgdXNlZCwgb25seSB0aGUgbGFzdCBvcHRpb24gb24gdGhlIGNvbW1hbmQgbGluZSB3aWxsCitoYXZlIGFuIGVmZmVjdC4KKy5TSCBTRUUgQUxTTworLkJSIHN5c2xvZ2QgKDgpCisuXCIgLlNIIEFVVEhPUgorLlwiIFRoZW9kb3JlIFRzJ28gKHR5dHNvQGF0aGVuYS5taXQuZWR1KQorLlNIIEFWQUlMQUJJTElUWQorVGhlIGRtZXNnIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2RtZXNnLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvZG1lc2cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDE4NGFhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2RtZXNnLmMKQEAgLTAsMCArMSwxNTEgQEAKKy8qIGRtZXNnLmMgLS0gUHJpbnQgb3V0IHRoZSBjb250ZW50cyBvZiB0aGUga2VybmVsIHJpbmcgYnVmZmVyCisgKiBDcmVhdGVkOiBTYXQgT2N0ICA5IDE2OjE5OjQ3IDE5OTMKKyAqIFJldmlzZWQ6IFRodSBPY3QgMjggMjE6NTI6MTcgMTk5MyBieSBmYWl0aEBjcy51bmMuZWR1CisgKiBDb3B5cmlnaHQgMTk5MyBUaGVvZG9yZSBUcydvICh0eXRzb0BhdGhlbmEubWl0LmVkdSkKKyAqIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuCisgKiBNb2RpZmljYXRpb25zIGJ5IFJpY2sgU2xhZGtleSAoanJzQHdvcmxkLnN0ZC5jb20pCisgKiBMYXJnZXIgYnVmZmVyc2l6ZSAzIEp1bmUgMTk5OCBieSBOaWNvbGFpIExhbmdmZWxkdCwgYmFzZWQgb24gYSBwYXRjaAorICogYnkgUGVldGVyIEpvb3QuICBUaGlzIHdhcyBhbHNvIHN1Z2dlc3RlZCBieSBKb2huIEh1ZHNvbi4KKyAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqLworCisvKgorICogQ29tbWFuZHMgdG8gc3lzX3N5c2xvZzoKKyAqCisgKiAgICAgIDAgLS0gQ2xvc2UgdGhlIGxvZy4gIEN1cnJlbnRseSBhIE5PUC4KKyAqICAgICAgMSAtLSBPcGVuIHRoZSBsb2cuIEN1cnJlbnRseSBhIE5PUC4KKyAqICAgICAgMiAtLSBSZWFkIGZyb20gdGhlIGxvZy4KKyAqICAgICAgMyAtLSBSZWFkIGFsbCBtZXNzYWdlcyByZW1haW5pbmcgaW4gdGhlIHJpbmcgYnVmZmVyLgorICogICAgICA0IC0tIFJlYWQgYW5kIGNsZWFyIGFsbCBtZXNzYWdlcyByZW1haW5pbmcgaW4gdGhlIHJpbmcgYnVmZmVyCisgKiAgICAgIDUgLS0gQ2xlYXIgcmluZyBidWZmZXIuCisgKiAgICAgIDYgLS0gRGlzYWJsZSBwcmludGsncyB0byBjb25zb2xlCisgKiAgICAgIDcgLS0gRW5hYmxlIHByaW50aydzIHRvIGNvbnNvbGUKKyAqICAgICAgOCAtLSBTZXQgbGV2ZWwgb2YgbWVzc2FnZXMgcHJpbnRlZCB0byBjb25zb2xlCisgKiAgICAgIDkgLS0gUmV0dXJuIG51bWJlciBvZiB1bnJlYWQgY2hhcmFjdGVycyBpbiB0aGUgbG9nIGJ1ZmZlcgorICogICAgICAgICAgIFtzdXBwb3J0ZWQgc2luY2UgMi40LjEwXQorICoKKyAqIE9ubHkgZnVuY3Rpb24gMyBpcyBhbGxvd2VkIHRvIG5vbi1yb290IHByb2Nlc3Nlcy4KKyAqLworCisjaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyMgaW5jbHVkZSA8c3lzL2tsb2cuaD4KKworI2luY2x1ZGUgIm5scy5oIgorCitzdGF0aWMgY2hhciAqcHJvZ25hbWU7CisKK3N0YXRpYyB2b2lkCit1c2FnZSh2b2lkKSB7CisJZnByaW50ZihzdGRlcnIsCisJCV8oIlVzYWdlOiAlcyBbLWNdIFstbiBsZXZlbF0gWy1yXSBbLXMgYnVmc2l6ZV1cbiIpLCBwcm9nbmFtZSk7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CisJY2hhciAqYnVmOworCWludCAgc3o7CisJaW50ICBidWZzaXplID0gMDsKKwlpbnQgIGk7CisJaW50ICBuOworCWludCAgYzsKKwlpbnQgIGxldmVsID0gMDsKKwlpbnQgIGxhc3RjOworCWludCAgY21kID0gMzsJCS8qIFJlYWQgYWxsIG1lc3NhZ2VzIGluIHRoZSByaW5nIGJ1ZmZlciAqLworCWludCAgcmF3ID0gMDsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlwcm9nbmFtZSA9IGFyZ3ZbMF07CisJd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJjcm46czoiKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ2MnOgorCQkJY21kID0gNDsJLyogUmVhZCBhbmQgY2xlYXIgYWxsIG1lc3NhZ2VzICovCisJCQlicmVhazsKKwkJY2FzZSAnbic6CisJCQljbWQgPSA4OwkvKiBTZXQgbGV2ZWwgb2YgbWVzc2FnZXMgKi8KKwkJCWxldmVsID0gYXRvaShvcHRhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgJ3InOgorCQkJcmF3ID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdzJzoKKwkJCWJ1ZnNpemUgPSBhdG9pKG9wdGFyZyk7CisJCQlpZiAoYnVmc2l6ZSA8IDQwOTYpCisJCQkJYnVmc2l6ZSA9IDQwOTY7CisJCQlicmVhazsKKwkJY2FzZSAnPyc6CisJCWRlZmF1bHQ6CisJCQl1c2FnZSgpOworCQkJZXhpdCgxKTsKKwkJfQorCX0KKwlhcmdjIC09IG9wdGluZDsKKwlhcmd2ICs9IG9wdGluZDsKKworCWlmIChhcmdjID4gMSkgeworCQl1c2FnZSgpOworCQlleGl0KDEpOworCX0KKworCWlmIChjbWQgPT0gOCkgeworCQluID0ga2xvZ2N0bChjbWQsIE5VTEwsIGxldmVsKTsKKwkJaWYgKG4gPCAwKSB7CisJCQlwZXJyb3IoImtsb2djdGwiKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJZXhpdCgwKTsKKwl9CisKKwlpZiAoIWJ1ZnNpemUpIHsKKwkJbiA9IGtsb2djdGwoMTAsIE5VTEwsIDApOwkvKiByZWFkIHJpbmdidWZmZXIgc2l6ZSAqLworCQlpZiAobiA+IDApCisJCQlidWZzaXplID0gbjsKKwl9CisKKwlpZiAoYnVmc2l6ZSkgeworCQlzeiA9IGJ1ZnNpemUgKyA4OworCQlidWYgPSAoY2hhciAqKSBtYWxsb2Moc3opOworCQluID0ga2xvZ2N0bChjbWQsIGJ1Ziwgc3opOworCX0gZWxzZSB7CisJCXN6ID0gMTYzOTI7CisJCXdoaWxlICgxKSB7CisJCQlidWYgPSAoY2hhciAqKSBtYWxsb2Moc3opOworCQkJbiA9IGtsb2djdGwoMywgYnVmLCBzeik7CS8qIHJlYWQgb25seSAqLworCQkJaWYgKG4gIT0gc3ogfHwgc3ogPiAoMTw8MjgpKQorCQkJCWJyZWFrOworCQkJZnJlZShidWYpOworCQkJc3ogKj0gNDsKKwkJfQorCisJCWlmIChuID4gMCAmJiBjbWQgPT0gNCkKKwkJCW4gPSBrbG9nY3RsKGNtZCwgYnVmLCBzeik7CS8qIHJlYWQgYW5kIGNsZWFyICovCisJfQorCisJaWYgKG4gPCAwKSB7CisJCXBlcnJvcigia2xvZ2N0bCIpOworCQlleGl0KDEpOworCX0KKworCWxhc3RjID0gJ1xuJzsKKwlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CisJCWlmICghcmF3ICYmIChpID09IDAgfHwgYnVmW2kgLSAxXSA9PSAnXG4nKSAmJiBidWZbaV0gPT0gJzwnKSB7CisJCQlpKys7CisJCQl3aGlsZSAoYnVmW2ldID49ICcwJyAmJiBidWZbaV0gPD0gJzknKQorCQkJCWkrKzsKKwkJCWlmIChidWZbaV0gPT0gJz4nKQorCQkJCWkrKzsKKwkJfQorCQlsYXN0YyA9IGJ1ZltpXTsKKwkJcHV0Y2hhcihsYXN0Yyk7CisJfQorCWlmIChsYXN0YyAhPSAnXG4nKQorCQlwdXRjaGFyKCdcbicpOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2ZhbGxvY2F0ZS4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2ZhbGxvY2F0ZS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwZTk3M2MKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvZmFsbG9jYXRlLjEKQEAgLTAsMCArMSw1MSBAQAorLlwiIC0qLSBucm9mZiAtKi0KKy5USCBGQUxMT0NBVEUgMSAiSnVsIDIwMDkiICJWZXJzaW9uIDEuMCIKKy5TSCBOQU1FCitmYWxsb2NhdGUgXC0gcHJlYWxsb2NhdGUgc3BhY2UgdG8gYSBmaWxlLgorLlNIIFNZTk9QU0lTCisuQiBmYWxsb2NhdGUKKy5SQiBbIFwtbiBdCisuUkIgWyBcLW8KKy5JUiBvZmZzZXQgXQorLkIgXC1sCisuSVIgbGVuZ3RoCisuSSBmaWxlbmFtZQorLlNIIERFU0NSSVBUSU9OCisuQiBmYWxsb2NhdGUKK2lzIHVzZWQgdG8gcHJlYWxsb2NhdGUgYmxvY2tzIHRvIGEgZmlsZS4gIEZvciBmaWxlc3lzdGVtcyB3aGljaCBzdXBwb3J0IHRoZQorZmFsbG9jYXRlIHN5c3RlbSBjYWxsLCB0aGlzIGlzIGRvbmUgcXVpY2tseSBieSBhbGxvY2F0aW5nIGJsb2NrcyBhbmQgbWFya2luZwordGhlbSBhcyB1bmluaXRpYWxpemVkLCByZXF1aXJpbmcgbm8gSU8gdG8gdGhlIGRhdGEgYmxvY2tzLiAgVGhpcyBpcyBtdWNoIGZhc3RlcgordGhhbiBjcmVhdGluZyBhIGZpbGUgYnkgZmlsbGluZyBpdCB3aXRoIHplcm9zLgorLlBQCitBcyBvZiB0aGUgTGludXggS2VybmVsIHYyLjYuMzEsIHRoZSBmYWxsb2NhdGUgc3lzdGVtIGNhbGwgaXMgc3VwcG9ydGVkIGJ5IHRoZQorYnRyZnMsIGV4dDQsIG9jZnMyLCBhbmQgeGZzIGZpbGVzeXN0ZW1zLgorLlBQCitUaGUgZXhpdCBjb2RlIHJldHVybmVkIGJ5CisuQiBmYWxsb2NhdGUKK2lzIDAgb24gc3VjY2VzcyBhbmQgMSBvbiBmYWlsdXJlLgorLlBQCisuU0ggT1BUSU9OUworLklQICJcZkJcLWgsIFwtXC1oZWxwXGZQIgorUHJpbnQgaGVscCBhbmQgZXhpdC4KKy5JUCAiXGZCXC1uLCBcLVwta2VlcC1zaXplXGZQIgorRG8gbm90IG1vZGlmeSB0aGUgYXBwYXJlbnQgbGVuZ3RoIG9mIHRoZSBmaWxlLiBUaGlzIG1heSBlZmZlY3RpdmVseSBhbGxvY2F0ZQorYmxvY2tzIHBhc3QgRU9GLCB3aGljaCBjYW4gYmUgcmVtb3ZlZCB3aXRoIGEgdHJ1bmNhdGUuCisuSVAgIlxmQlwtbywgXC1cLW9mZnNldFxmUCBcZklvZmZzZXRcZlAKK1NwZWNpZmllcyB0aGUgYmVnaW5uaW5nIG9mZnNldCBvZiB0aGUgYWxsb2NhdGlvbiwgaW4gYnl0ZXMuICBTdWZmaXhlcyBvZiBrLCBtLAorZywgdCwgcCwgZSBtYXkgYmUgc3BlY2lmaWVkIHRvIGRlbm90ZSBLaUIsIE1pQiwgR2lCLCBldGMuCisuSVAgIlxmQlwtbCwgXC1cLWxlbmd0aFxmUCBcZklsZW5ndGhcZlAKK1NwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlcy4gIFN1ZmZpeGVzIG9mIGssIG0sIGcsIHQsIHAsIGUKK21heSBiZSBzcGVjaWZpZWQgdG8gZGVub3RlIEtpQiwgTWlCLCBHaUIsIGV0Yy4KKy5TSCBBVVRIT1JTCisubmYKK0VyaWMgU2FuZGVlbiA8c2FuZGVlbkByZWRoYXQuY29tPgorS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisuZmkKKy5TSCBTRUUgQUxTTworLkJSIGZhbGxvY2F0ZSAoMiksCisuQlIgcG9zaXhfZmFsbG9jYXRlICgzKSwKKy5CUiB0cnVuY2F0ZSAoMSkKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBmYWxsb2NhdGUgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9mYWxsb2NhdGUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9mYWxsb2NhdGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTcxNTc3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2ZhbGxvY2F0ZS5jCkBAIC0wLDAgKzEsMTc5IEBACisvKgorICogZmFsbG9jYXRlIC0gdXRpbGl0eSB0byB1c2UgdGhlIGZhbGxvY2F0ZSBzeXN0ZW0gY2FsbAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDA5IFJlZCBIYXQsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFdyaXR0ZW4gYnkgRXJpYyBTYW5kZWVuIDxzYW5kZWVuQHJlZGhhdC5jb20+CisgKiAgICAgICAgICAgIEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIGN2dG51bSByb3V0aW5lIHRha2VuIGZyb20geGZzcHJvZ3MsCisgKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSBTaWxpY29uIEdyYXBoaWNzLCBJbmMuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdvdWxkIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorICogSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPGVyci5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorCisjaWZuZGVmIEhBVkVfRkFMTE9DQVRFCisjIGluY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpbnV4L2ZhbGxvYy5oPgkvKiBmb3IgRkFMTE9DX0ZMXyogZmxhZ3MgKi8KKworI2luY2x1ZGUgIm5scy5oIgorCisKK3N0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpIHVzYWdlKEZJTEUgKm91dCkKK3sKKwlmcHJpbnRmKG91dCwgXygiVXNhZ2U6ICVzIFtvcHRpb25zXSA8ZmlsZW5hbWU+XG5cbk9wdGlvbnM6XG4iKSwKKwkJCXByb2dyYW1faW52b2NhdGlvbl9zaG9ydF9uYW1lKTsKKworCWZwcmludGYob3V0LCBfKAorCQkiIC1oLCAtLWhlbHAgICAgICAgICAgdGhpcyBoZWxwXG4iCisJCSIgLW4sIC0ta2VlcC1zaXplICAgICBkb24ndCBtb2RpZnkgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZVxuIgorCQkiIC1vLCAtLW9mZnNldCA8bnVtPiAgb2Zmc2V0IG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIgorCQkiIC1sLCAtLWxlbmd0aCA8bnVtPiAgbGVuZ3RoIG9mIHRoZSBhbGxvY2F0aW9uLCBpbiBieXRlc1xuIikpOworCisJZnByaW50ZihvdXQsIF8oIlxuRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGZhbGxvY2F0ZSgxKS5cbiIpKTsKKworCWV4aXQob3V0ID09IHN0ZGVyciA/IEVYSVRfRkFJTFVSRSA6IEVYSVRfU1VDQ0VTUyk7Cit9CisKKyNkZWZpbmUgRVhBQllURVMoeCkgICAgICgoeCkgPDwgNjApCisjZGVmaW5lIFBFVEFCWVRFUyh4KSAgICAoKHgpIDw8IDUwKQorI2RlZmluZSBURVJBQllURVMoeCkgICAgKCh4KSA8PCA0MCkKKyNkZWZpbmUgR0lHQUJZVEVTKHgpICAgICgoeCkgPDwgMzApCisjZGVmaW5lIE1FR0FCWVRFUyh4KSAgICAoKHgpIDw8IDIwKQorI2RlZmluZSBLSUxPQllURVMoeCkgICAgKCh4KSA8PCAxMCkKKworc3RhdGljIGxvZmZfdCBjdnRudW0oY2hhciAqcykKK3sKKwlsb2ZmX3QJaTsKKwljaGFyCSpzcDsKKworCWVycm5vID0gMDsKKwlpID0gc3RydG9sbChzLCAmc3AsIDApOworCisJaWYgKChlcnJubyA9PSBFUkFOR0UgJiYgKGkgPT0gTExPTkdfTUFYIHx8IGkgPT0gTExPTkdfTUlOKSkgfHwKKwkgICAgKGVycm5vICE9IDAgJiYgaSA9PSAwKSkKKwkJcmV0dXJuIC0xTEw7CisJaWYgKGkgPT0gMCAmJiBzcCA9PSBzKQorCQlyZXR1cm4gLTFMTDsKKwlpZiAoKnNwID09ICdcMCcpCisJCXJldHVybiBpOworCWlmIChzcFsxXSAhPSAnXDAnKQorCQlyZXR1cm4gLTFMTDsKKworCXN3aXRjaCAodG9sb3dlcigqc3ApKSB7CisJY2FzZSAnayc6CisJCXJldHVybiBLSUxPQllURVMoaSk7CisJY2FzZSAnbSc6CisJCXJldHVybiBNRUdBQllURVMoaSk7CisJY2FzZSAnZyc6CisJCXJldHVybiBHSUdBQllURVMoaSk7CisJY2FzZSAndCc6CisJCXJldHVybiBURVJBQllURVMoaSk7CisJY2FzZSAncCc6CisJCXJldHVybiBQRVRBQllURVMoaSk7CisJY2FzZSAnZSc6CisJCXJldHVybiBFWEFCWVRFUyhpKTsKKwl9CisKKwlyZXR1cm4gLTFMTDsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWNoYXIJKmZuYW1lOworCWludAljOworCWludAllcnJvcjsKKwlpbnQJZmQ7CisJaW50CW1vZGUgPSAwOworCWxvZmZfdAlsZW5ndGggPSAtMkxMOworCWxvZmZfdAlvZmZzZXQgPSAwOworCisJc3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0geworCSAgICB7ICJoZWxwIiwgICAgICAwLCAwLCAnaCcgfSwKKwkgICAgeyAia2VlcC1zaXplIiwgMCwgMCwgJ24nIH0sCisJICAgIHsgIm9mZnNldCIsICAgIDEsIDAsICdvJyB9LAorCSAgICB7ICJsZW5naHQiLCAgICAxLCAwLCAnbCcgfSwKKwkgICAgeyBOVUxMLCAgICAgICAgMCwgMCwgMCB9CisJfTsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiaG5sOm86IiwgbG9uZ29wdHMsIE5VTEwpKSAhPSAtMSkgeworCQlzd2l0Y2goYykgeworCQljYXNlICdoJzoKKwkJCXVzYWdlKHN0ZG91dCk7CisJCQlicmVhazsKKwkJY2FzZSAnbic6CisJCQltb2RlIHw9IEZBTExPQ19GTF9LRUVQX1NJWkU7CisJCQlicmVhazsKKwkJY2FzZSAnbCc6CisJCQlsZW5ndGggPSBjdnRudW0ob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICdvJzoKKwkJCW9mZnNldCA9IGN2dG51bShvcHRhcmcpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQl1c2FnZShzdGRlcnIpOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAobGVuZ3RoID09IC0yTEwpCisJCWVycngoRVhJVF9GQUlMVVJFLCBfKCJubyBsZW5ndGggYXJndW1lbnQgc3BlY2lmaWVkIikpOworCWlmIChsZW5ndGggPD0gMCkKKwkJZXJyeChFWElUX0ZBSUxVUkUsIF8oImludmFsaWQgbGVuZ3RoIHZhbHVlIHNwZWNpZmllZCIpKTsKKwlpZiAob2Zmc2V0IDwgMCkKKwkJZXJyeChFWElUX0ZBSUxVUkUsIF8oImludmFsaWQgb2Zmc2V0IHZhbHVlIHNwZWNpZmllZCIpKTsKKwlpZiAob3B0aW5kID09IGFyZ2MpCisJCWVycngoRVhJVF9GQUlMVVJFLCBfKCJubyBmaWxlbmFtZSBzcGVjaWZpZWQuIikpOworCisJZm5hbWUgPSBhcmd2W29wdGluZCsrXTsKKworCWZkID0gb3BlbihmbmFtZSwgT19XUk9OTFl8T19DUkVBVCwgMDY0NCk7CisJaWYgKGZkIDwgMCkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiJXM6IG9wZW4gZmFpbGVkIiksIGZuYW1lKTsKKworI2lmZGVmIEhBVkVfRkFMTE9DQVRFCisJZXJyb3IgPSBmYWxsb2NhdGUoZmQsIG1vZGUsIG9mZnNldCwgbGVuZ3RoKTsKKyNlbHNlCisJZXJyb3IgPSBzeXNjYWxsKFNZU19mYWxsb2NhdGUsIGZkLCBtb2RlLCBvZmZzZXQsIGxlbmd0aCk7CisjZW5kaWYKKwkvKgorCSAqIEVPUE5PVFNVUFA6IFRoZSBGQUxMT0NfRkxfS0VFUF9TSVpFIGlzIHVuc3VwcG9ydGVkCisJICogRU5PU1lTOiBUaGUgZmlsZXN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0IHN5c19mYWxsb2NhdGUKKwkgKi8KKwlpZiAoZXJyb3IgPCAwKSB7CisJCWlmICgobW9kZSAmIEZBTExPQ19GTF9LRUVQX1NJWkUpICYmIGVycm5vID09IEVPUE5PVFNVUFApCisJCQllcnJ4KEVYSVRfRkFJTFVSRSwKKwkJCQlfKCJrZWVwIHNpemUgbW9kZSAoLW4gb3B0aW9uKSB1bnN1cHBvcnRlZCIpKTsKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiJXM6IGZhbGxvY2F0ZSBmYWlsZWQiKSwgZm5hbWUpOworCX0KKworCWNsb3NlKGZkKTsKKwlyZXR1cm4gRVhJVF9TVUNDRVNTOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2Zsb2NrLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvZmxvY2suMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDYwZmY3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2Zsb2NrLjEKQEAgLTAsMCArMSwxMTMgQEAKKy5cIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLlwiICAgCisuXCIgICBDb3B5cmlnaHQgMjAwMy0yMDA2IEguIFBldGVyIEFudmluIC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorLlwiCisuXCIgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorLlwiICAgb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKy5cIiAgIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKy5cIiAgIHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLAorLlwiICAgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisuXCIgICBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tCisuXCIgICB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKKy5cIiAgIGNvbmRpdGlvbnM6CisuXCIgICAKKy5cIiAgIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsCisuXCIgICBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKy5cIiAgIAorLlwiICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisuXCIgICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMKKy5cIiAgIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisuXCIgICBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVAorLlwiICAgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksCisuXCIgICBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKy5cIiAgIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKy5cIiAgIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKy5cIgorLlwiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisuVEggRkxPQ0sgIjEiICI0IEZlYiAyMDA2IiAiZmxvY2sgdXRpbGl0eSIgIkguIFBldGVyIEFudmluIgorLlNIIE5BTUUKK2Zsb2NrIFwtIE1hbmFnZSBsb2NrcyBmcm9tIHNoZWxsIHNjcmlwdHMKKy5TSCBTWU5PUFNJUworXGZCZmxvY2tcZlAgW1xmQlwtc3hvblxmUF0gW1xmQlwtd1xmUCBcZkl0aW1lb3V0XGZQXSBcZklsb2NrZmlsZVxmUCBbXGZCXC1jXGZQXSBcZkljb21tYW5kLi4uXGZQCisuUFAKK1xmQmZsb2NrXGZQIFtcZkJcLXN4b25cZlBdIFtcZkJcLXdcZlAgXGZJdGltZW91dFxmUF0gXGZJbG9ja2RpclxmUCBbXGZCXC1jXGZQXSBcZkljb21tYW5kLi4uXGZQCisuUFAKK1xmQmZsb2NrXGZQIFtcZkJcLXN4dW5cZlBdIFtcZkJcLXdcZlAgXGZJdGltZW91dFxmUF0gXGZJZmRcZlAKKy5TSCBERVNDUklQVElPTgorLlBQCitUaGlzIHV0aWxpdHkgbWFuYWdlcworLkJSIGZsb2NrICgyKQorbG9ja3MgZnJvbSB3aXRoaW4gc2hlbGwgc2NyaXB0cyBvciB0aGUgY29tbWFuZCBsaW5lLgorLlBQCitUaGUgZmlyc3QgYW5kIHNlY29uZCBmb3JtcyB3cmFwcyB0aGUgbG9jayBhcm91bmQgdGhlIGV4ZWN1dGluZyBhIGNvbW1hbmQsIGluIGEgbWFubmVyIHNpbWlsYXIgdG8KKy5CUiBzdSAoMSkKK29yCisuQlIgbmV3Z3JwICgxKS4KK0l0IGxvY2tzIGEgc3BlY2lmaWVkIGZpbGUgb3IgZGlyZWN0b3J5LCB3aGljaCBpcyBjcmVhdGVkIChhc3N1bWluZyBhcHByb3ByaWF0ZQorcGVybWlzc2lvbnMpLCBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LgorLlBQCitUaGUgdGhpcmQgZm9ybSBpcyBjb252ZW5pZW50IGluc2lkZSBzaGVsbCBzY3JpcHRzLCBhbmQgaXMgdXN1YWxseQordXNlZCB0aGUgZm9sbG93aW5nIG1hbm5lcjoKKy5QUAorXGZDKAorLmJyCisgIGZsb2NrIC1zIDIwMAorLmJyCisgICMgLi4uIGNvbW1hbmRzIGV4ZWN1dGVkIHVuZGVyIGxvY2sgLi4uCisuYnIKKykgMjAwPi92YXIvbG9jay9teWxvY2tmaWxlXGZQCisuUFAKK1RoZSBtb2RlIHVzZWQgdG8gb3BlbiB0aGUgZmlsZSBkb2Vzbid0IG1hdHRlciB0byBcZkJmbG9ja1xmUDsgdXNpbmcKK1xmQz5cZlAgb3IgXGZQPj5cZlAgYWxsb3dzIHRoZSBsb2NrZmlsZSB0byBiZSBjcmVhdGVkIGlmIGl0IGRvZXMgbm90CithbHJlYWR5IGV4aXN0LCBob3dldmVyLCB3cml0ZSBwZXJtaXNzaW9uIGlzIHJlcXVpcmVkOyB1c2luZyBcZkM8XGZQCityZXF1aXJlcyB0aGF0IHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzIGJ1dCBvbmx5IHJlYWQgcGVybWlzc2lvbiBpcworcmVxdWlyZWQuCisuUFAKK0J5IGRlZmF1bHQsIGlmIHRoZSBsb2NrIGNhbm5vdCBiZSBpbW1lZGlhdGVseSBhY3F1aXJlZCwgXGZCZmxvY2tcZlAKK3dhaXRzIHVudGlsIHRoZSBsb2NrIGlzIGF2YWlsYWJsZS4KKy5TSCBPUFRJT05TCisuVFAKK1xmQlwtc1xmUCwgXGZCXC1cLXNoYXJlZFxmUAorT2J0YWluIGEgc2hhcmVkIGxvY2ssIHNvbWV0aW1lcyBjYWxsZWQgYSByZWFkIGxvY2suCisuVFAKK1xmQlwteFxmUCwgXGZCXC1lXGZQLCBcZkJcLVwtZXhjbHVzaXZlXGZQCitPYnRhaW4gYW4gZXhjbHVzaXZlIGxvY2ssIHNvbWV0aW1lcyBjYWxsZWQgYSB3cml0ZSBsb2NrLiAgVGhpcyBpcyB0aGUKK2RlZmF1bHQuCisuVFAKK1xmQlwtdVxmUCwgXGZCXC1cLXVubG9ja1xmUAorRHJvcCBhIGxvY2suICBUaGlzIGlzIHVzdWFsbHkgbm90IHJlcXVpcmVkLCBzaW5jZSBhIGxvY2sgaXMKK2F1dG9tYXRpY2FsbHkgZHJvcHBlZCB3aGVuIHRoZSBmaWxlIGlzIGNsb3NlZC4gIEhvd2V2ZXIsIGl0IG1heSBiZQorcmVxdWlyZWQgaW4gc3BlY2lhbCBjYXNlcywgZm9yIGV4YW1wbGUgaWYgdGhlIGVuY2xvc2VkIGNvbW1hbmQgZ3JvdXAKK21heSBoYXZlIGZvcmtlZCBhIGJhY2tncm91bmQgcHJvY2VzcyB3aGljaCBzaG91bGQgbm90IGJlIGhvbGRpbmcgdGhlCitsb2NrLgorLlRQCitcZkJcLW5cZlAsIFxmQlwtXC1uYlxmUCwgXGZCXC1cLW5vbmJsb2NrXGZQCitGYWlsICh3aXRoIGFuIGV4aXQgY29kZSBvZiAxKSByYXRoZXIgdGhhbiB3YWl0IGlmIHRoZSBsb2NrIGNhbm5vdCBiZQoraW1tZWRpYXRlbHkgYWNxdWlyZWQuCisuVFAKK1xmQlwtd1xmUCwgXGZCXC1cLXdhaXRcZlAsIFxmQlwtXC10aW1lb3V0XGZQIFxmSXNlY29uZHNcZlAKK0ZhaWwgKHdpdGggYW4gZXhpdCBjb2RlIG9mIDEpIGlmIHRoZSBsb2NrIGNhbm5vdCBiZSBhY3F1aXJlZCB3aXRoaW4KK1xmSXNlY29uZHNcZlAgc2Vjb25kcy4gIERlY2ltYWwgZnJhY3Rpb25hbCB2YWx1ZXMgYXJlIGFsbG93ZWQuCisuVFAKK1xmQlwtb1xmUCwgXGZCXC1cLWNsb3NlXGZQCitDbG9zZSB0aGUgZmlsZSBkZXNjcmlwdG9yIG9uIHdoaWNoIHRoZSBsb2NrIGlzIGhlbGQgYmVmb3JlIGV4ZWN1dGluZworXGZJY29tbWFuZFxmUC4gIFRoaXMgaXMgdXNlZnVsIGlmIFxmSWNvbW1hbmRcZlAgc3Bhd25zIGEgY2hpbGQgcHJvY2Vzcword2hpY2ggc2hvdWxkIG5vdCBiZSBob2xkIGluZyB0aGUgbG9jay4KKy5UUAorXGZCXC1jXGZQLCBcZkJcLVwtY29tbWFuZFxmUCBcZkljb21tYW5kXGZQCitQYXNzIGEgc2luZ2xlIFxmSWNvbW1hbmRcZlAgdG8gdGhlIHNoZWxsIHdpdGggXGZCXC1jXGZQLgorLlRQCitcZkJcLWhcZlAsIFxmQlwtXC1oZWxwXGZQCitQcmludCBhIGhlbHAgbWVzc2FnZS4KKy5TSCBBVVRIT1IKK1dyaXR0ZW4gYnkgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+LgorLlNIIENPUFlSSUdIVAorQ29weXJpZ2h0IFwoY28gMjAwM1wtMjAwNiBILiBQZXRlciBBbnZpbi4KKy5icgorVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgorLlNIICJTRUUgQUxTTyIKKy5CUiBmbG9jayAoMikKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBmbG9jayBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9mbG9jay5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2Zsb2NrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVjMDA3YwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9mbG9jay5jCkBAIC0wLDAgKzEsMzI4IEBACisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCisgKgorICogICBDb3B5cmlnaHQgMjAwMy0yMDA1IEguIFBldGVyIEFudmluIC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorICoKKyAqICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KKyAqICAgb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKyAqICAgZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorICogICByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwKKyAqICAgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiAgIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20KKyAqICAgdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCisgKiAgIGNvbmRpdGlvbnM6CisgKgorICogICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbAorICogICBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorICogICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMKKyAqICAgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyAqICAgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQKKyAqICAgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksCisgKiAgIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogICBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiAgIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8cGF0aHMuaD4KKyNpbmNsdWRlIDxzeXNleGl0cy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9maWxlLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorCisjaW5jbHVkZSAibmxzLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0aW9uc1tdID0geworICB7ICJzaGFyZWQiLCAgICAgICAwLCBOVUxMLCAncycgfSwKKyAgeyAiZXhjbHVzaXZlIiwgICAgMCwgTlVMTCwgJ3gnIH0sCisgIHsgInVubG9jayIsICAgICAgIDAsIE5VTEwsICd1JyB9LAorICB7ICJub25ibG9ja2luZyIsICAwLCBOVUxMLCAnbicgfSwKKyAgeyAibmIiLCAgICAgICAgICAgMCwgTlVMTCwgJ24nIH0sCisgIHsgInRpbWVvdXQiLCAgICAgIDEsIE5VTEwsICd3JyB9LAorICB7ICJ3YWl0IiwgICAgICAgICAxLCBOVUxMLCAndycgfSwKKyAgeyAiY2xvc2UiLCAgICAgICAgMCwgTlVMTCwgJ28nIH0sCisgIHsgImhlbHAiLCAgICAgICAgIDAsIE5VTEwsICdoJyB9LAorICB7ICJ2ZXJzaW9uIiwgICAgICAwLCBOVUxMLCAnVicgfSwKKyAgeyAwLCAwLCAwLCAwIH0KK307CisKK2NvbnN0IGNoYXIgKnByb2dyYW07CisKK3N0YXRpYyB2b2lkIHVzYWdlKGludCBleCkKK3sKKyAgZnB1dHMoImZsb2NrICgiIFBBQ0tBR0VfU1RSSU5HICIpXG4iLCBzdGRlcnIpOworICBmcHJpbnRmKHN0ZGVyciwKKwlfKCJVc2FnZTogJTEkcyBbLXN4dW5dWy13ICNdIGZkI1xuIgorCSAgIiAgICAgICAlMSRzIFstc3hvbl1bLXcgI10gZmlsZSBbLWNdIGNvbW1hbmQuLi5cbiIKKwkgICIgICAgICAgJTEkcyBbLXN4b25dWy13ICNdIGRpcmVjdG9yeSBbLWNdIGNvbW1hbmQuLi5cbiIKKwkgICIgIC1zICAtLXNoYXJlZCAgICAgR2V0IGEgc2hhcmVkIGxvY2tcbiIKKwkgICIgIC14ICAtLWV4Y2x1c2l2ZSAgR2V0IGFuIGV4Y2x1c2l2ZSBsb2NrXG4iCisJICAiICAtdSAgLS11bmxvY2sgICAgIFJlbW92ZSBhIGxvY2tcbiIKKwkgICIgIC1uICAtLW5vbmJsb2NrICAgRmFpbCByYXRoZXIgdGhhbiB3YWl0XG4iCisJICAiICAtdyAgLS10aW1lb3V0ICAgIFdhaXQgZm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZVxuIgorCSAgIiAgLW8gIC0tY2xvc2UgICAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgYmVmb3JlIHJ1bm5pbmcgY29tbWFuZFxuIgorCSAgIiAgLWMgIC0tY29tbWFuZCAgICBSdW4gYSBzaW5nbGUgY29tbWFuZCBzdHJpbmcgdGhyb3VnaCB0aGUgc2hlbGxcbiIKKwkgICIgIC1oICAtLWhlbHAgICAgICAgRGlzcGxheSB0aGlzIHRleHRcbiIKKwkgICIgIC1WICAtLXZlcnNpb24gICAgRGlzcGxheSB2ZXJzaW9uXG4iKSwKKwkgIHByb2dyYW0pOworICBleGl0KGV4KTsKK30KKworCitzdGF0aWMgc2lnX2F0b21pY190IHRpbWVvdXRfZXhwaXJlZCA9IDA7CisKK3N0YXRpYyB2b2lkIHRpbWVvdXRfaGFuZGxlcihpbnQgc2lnKQoreworICAodm9pZClzaWc7CisKKyAgdGltZW91dF9leHBpcmVkID0gMTsKK30KKworCitzdGF0aWMgY2hhciAqIHN0cnRvdGltZXZhbChjb25zdCBjaGFyICpzdHIsIHN0cnVjdCB0aW1ldmFsICp0dikKK3sKKyAgY2hhciAqczsKKyAgbG9uZyBmczsJCQkvKiBGcmFjdGlvbmFsIHNlY29uZHMgKi8KKyAgaW50IGk7CisKKyAgdHYtPnR2X3NlYyA9IHN0cnRvbChzdHIsICZzLCAxMCk7CisgIGZzID0gMDsKKworICBpZiAoICpzID09ICcuJyApIHsKKyAgICBzKys7CisKKyAgICBmb3IgKCBpID0gMCA7IGkgPCA2IDsgaSsrICkgeworICAgICAgaWYgKCAhaXNkaWdpdCgqcykgKQorCWJyZWFrOworCisgICAgICBmcyAqPSAxMDsKKyAgICAgIGZzICs9ICpzKysgLSAnMCc7CisgICAgfQorCisgICAgZm9yICggOyBpIDwgNjsgaSsrICkKKyAgICAgIGZzICo9IDEwOworCisgICAgd2hpbGUgKCBpc2RpZ2l0KCpzKSApCisgICAgICBzKys7CisgIH0KKworICB0di0+dHZfdXNlYyA9IGZzOworICByZXR1cm4gczsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgc3RydWN0IGl0aW1lcnZhbCB0aW1lb3V0LCBvbGRfdGltZXI7CisgIGludCBoYXZlX3RpbWVvdXQgPSAwOworICBpbnQgdHlwZSA9IExPQ0tfRVg7CisgIGludCBibG9jayA9IDA7CisgIGludCBmZCA9IC0xOworICBpbnQgb3B0LCBpeDsKKyAgaW50IGRvX2Nsb3NlID0gMDsKKyAgaW50IGVycjsKKyAgaW50IHN0YXR1czsKKyAgY2hhciAqZW9uOworICBjaGFyICoqY21kX2FyZ3YgPSBOVUxMLCAqc2hfY19hcmd2WzRdOworICBjb25zdCBjaGFyICpmaWxlbmFtZSA9IE5VTEw7CisgIHN0cnVjdCBzaWdhY3Rpb24gc2EsIG9sZF9zYTsKKworICBzZXRsb2NhbGUoTENfQUxMLCAiIik7CisgIGJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgcHJvZ3JhbSA9IGFyZ3ZbMF07CisKKyAgaWYgKCBhcmdjIDwgMiApCisgICAgdXNhZ2UoRVhfVVNBR0UpOworCisgIG1lbXNldCgmdGltZW91dCwgMCwgc2l6ZW9mIHRpbWVvdXQpOworCisgIG9wdG9wdCA9IDA7CisgIHdoaWxlICggKG9wdCA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICIrc2V4bm91dzpoVj8iLCBsb25nX29wdGlvbnMsICZpeCkpICE9IEVPRiApIHsKKyAgICBzd2l0Y2gob3B0KSB7CisgICAgY2FzZSAncyc6CisgICAgICB0eXBlID0gTE9DS19TSDsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ2UnOgorICAgIGNhc2UgJ3gnOgorICAgICAgdHlwZSA9IExPQ0tfRVg7CisgICAgICBicmVhazsKKyAgICBjYXNlICd1JzoKKyAgICAgIHR5cGUgPSBMT0NLX1VOOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnbyc6CisgICAgICBkb19jbG9zZSA9IDE7CisgICAgICBicmVhazsKKyAgICBjYXNlICduJzoKKyAgICAgIGJsb2NrID0gTE9DS19OQjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ3cnOgorICAgICAgaGF2ZV90aW1lb3V0ID0gMTsKKyAgICAgIGVvbiA9IHN0cnRvdGltZXZhbChvcHRhcmcsICZ0aW1lb3V0Lml0X3ZhbHVlKTsKKyAgICAgIGlmICggKmVvbiApCisJdXNhZ2UoRVhfVVNBR0UpOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnVic6CisgICAgICBwcmludGYoImZsb2NrICglcylcbiIsIFBBQ0tBR0VfU1RSSU5HKTsKKyAgICAgIGV4aXQoMCk7CisgICAgZGVmYXVsdDoKKyAgICAgIC8qIG9wdG9wdCB3aWxsIGJlIHNldCBpZiB0aGlzIHdhcyBhbiB1bnJlY29nbml6ZWQgb3B0aW9uLCBpLmUuICpub3QqICdoJyBvciAnPycgKi8KKyAgICAgIHVzYWdlKG9wdG9wdCA/IEVYX1VTQUdFIDogMCk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKworICBpZiAoIGFyZ2MgPiBvcHRpbmQrMSApIHsKKyAgICAvKiBSdW4gY29tbWFuZCAqLworCisgICAgaWYgKCAhc3RyY21wKGFyZ3Zbb3B0aW5kKzFdLCAiLWMiKSB8fAorCSAhc3RyY21wKGFyZ3Zbb3B0aW5kKzFdLCAiLS1jb21tYW5kIikgKSB7CisKKyAgICAgIGlmICggYXJnYyAhPSBvcHRpbmQrMyApIHsKKwlmcHJpbnRmKHN0ZGVyciwgXygiJXM6ICVzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGNvbW1hbmQgYXJndW1lbnRcbiIpLAorCQlwcm9ncmFtLCBhcmd2W29wdGluZCsxXSk7CisJZXhpdChFWF9VU0FHRSk7CisgICAgICB9CisKKyAgICAgIGNtZF9hcmd2ID0gc2hfY19hcmd2OworCisgICAgICBjbWRfYXJndlswXSA9IGdldGVudigiU0hFTEwiKTsKKyAgICAgIGlmICggIWNtZF9hcmd2WzBdIHx8ICEqY21kX2FyZ3ZbMF0gKQorCWNtZF9hcmd2WzBdID0gX1BBVEhfQlNIRUxMOworCisgICAgICBjbWRfYXJndlsxXSA9ICItYyI7CisgICAgICBjbWRfYXJndlsyXSA9IGFyZ3Zbb3B0aW5kKzJdOworICAgICAgY21kX2FyZ3ZbM10gPSAwOworICAgIH0gZWxzZSB7CisgICAgICBjbWRfYXJndiA9ICZhcmd2W29wdGluZCsxXTsKKyAgICB9CisKKyAgICBmaWxlbmFtZSA9IGFyZ3Zbb3B0aW5kXTsKKyAgICBmZCA9IG9wZW4oZmlsZW5hbWUsIE9fUkRPTkxZfE9fTk9DVFRZfE9fQ1JFQVQsIDA2NjYpOworICAgIC8qIExpbnV4IGRvZXNuJ3QgbGlrZSBPX0NSRUFUIG9uIGEgZGlyZWN0b3J5LCBldmVuIHRob3VnaCBpdCBzaG91bGQgYmUgYQorICAgICAgIG5vLW9wICovCisgICAgaWYgKGZkIDwgMCAmJiBlcnJubyA9PSBFSVNESVIpCisgICAgICAgIGZkID0gb3BlbihmaWxlbmFtZSwgT19SRE9OTFl8T19OT0NUVFkpOworCisgICAgaWYgKCBmZCA8IDAgKSB7CisgICAgICBlcnIgPSBlcnJubzsKKyAgICAgIGZwcmludGYoc3RkZXJyLCBfKCIlczogY2Fubm90IG9wZW4gbG9jayBmaWxlICVzOiAlc1xuIiksCisJICAgICAgcHJvZ3JhbSwgYXJndltvcHRpbmRdLCBzdHJlcnJvcihlcnIpKTsKKyAgICAgIGV4aXQoKGVyciA9PSBFTk9NRU18fGVyciA9PSBFTUZJTEV8fGVyciA9PSBFTkZJTEUpID8gRVhfT1NFUlIgOgorCSAgIChlcnIgPT0gRVJPRlN8fGVyciA9PSBFTk9TUEMpID8gRVhfQ0FOVENSRUFUIDoKKwkgICBFWF9OT0lOUFVUKTsKKyAgICB9CisKKyAgfSBlbHNlIGlmIChvcHRpbmQgPCBhcmdjKSB7CisgICAgLyogVXNlIHByb3ZpZGVkIGZpbGUgZGVzY3JpcHRvciAqLworCisgICAgZmQgPSAoaW50KXN0cnRvbChhcmd2W29wdGluZF0sICZlb24sIDEwKTsKKyAgICBpZiAoICplb24gfHwgIWFyZ3Zbb3B0aW5kXSApIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCBfKCIlczogYmFkIG51bWJlcjogJXNcbiIpLCBwcm9ncmFtLCBhcmd2W29wdGluZF0pOworICAgICAgZXhpdChFWF9VU0FHRSk7CisgICAgfQorCisgIH0gZWxzZSB7CisgICAgLyogQmFkIG9wdGlvbnMgKi8KKworICAgIGZwcmludGYoc3RkZXJyLCBfKCIlczogcmVxdWlyZXMgZmlsZSBkZXNjcmlwdG9yLCBmaWxlIG9yIGRpcmVjdG9yeVxuIiksCisJCXByb2dyYW0pOworICAgIGV4aXQoRVhfVVNBR0UpOworICB9CisKKworICBpZiAoIGhhdmVfdGltZW91dCApIHsKKyAgICBpZiAoIHRpbWVvdXQuaXRfdmFsdWUudHZfc2VjID09IDAgJiYKKwkgdGltZW91dC5pdF92YWx1ZS50dl91c2VjID09IDAgKSB7CisgICAgICAvKiAtdyAwIGlzIGVxdWl2YWxlbnQgdG8gLW47IHRoaXMgaGFzIHRvIGJlIHNwZWNpYWwtY2FzZWQKKwkgYmVjYXVzZSBzZXR0aW5nIGFuIGl0aW1lciB0byB6ZXJvIG1lYW5zIGRpc2FibGVkISAqLworCisgICAgICBoYXZlX3RpbWVvdXQgPSAwOworICAgICAgYmxvY2sgPSBMT0NLX05COworICAgIH0gZWxzZSB7CisgICAgICBtZW1zZXQoJnNhLCAwLCBzaXplb2Ygc2EpOworCisgICAgICBzYS5zYV9oYW5kbGVyID0gdGltZW91dF9oYW5kbGVyOworICAgICAgc2Euc2FfZmxhZ3MgICA9IFNBX09ORVNIT1Q7CisgICAgICBzaWdhY3Rpb24oU0lHQUxSTSwgJnNhLCAmb2xkX3NhKTsKKworICAgICAgc2V0aXRpbWVyKElUSU1FUl9SRUFMLCAmdGltZW91dCwgJm9sZF90aW1lcik7CisgICAgfQorICB9CisKKyAgd2hpbGUgKCBmbG9jayhmZCwgdHlwZXxibG9jaykgKSB7CisgICAgc3dpdGNoKCAoZXJyID0gZXJybm8pICkgeworICAgIGNhc2UgRVdPVUxEQkxPQ0s6CQkvKiAtbiBvcHRpb24gc2V0IGFuZCBmYWlsZWQgdG8gbG9jayAqLworICAgICAgZXhpdCgxKTsKKyAgICBjYXNlIEVJTlRSOgkJCS8qIFNpZ25hbCByZWNlaXZlZCAqLworICAgICAgaWYgKCB0aW1lb3V0X2V4cGlyZWQgKQorCWV4aXQoMSk7CQkvKiAtdyBvcHRpb24gc2V0IGFuZCBmYWlsZWQgdG8gbG9jayAqLworICAgICAgY29udGludWU7CQkJLyogb3RoZXJ3aXNlIHRyeSBhZ2FpbiAqLworICAgIGRlZmF1bHQ6CQkJLyogT3RoZXIgZXJyb3JzICovCisgICAgICBpZiAoIGZpbGVuYW1lICkKKwlmcHJpbnRmKHN0ZGVyciwgIiVzOiAlczogJXNcbiIsIHByb2dyYW0sIGZpbGVuYW1lLCBzdHJlcnJvcihlcnIpKTsKKyAgICAgIGVsc2UKKwlmcHJpbnRmKHN0ZGVyciwgIiVzOiAlZDogJXNcbiIsIHByb2dyYW0sIGZkLCBzdHJlcnJvcihlcnIpKTsKKyAgICAgIGV4aXQoKGVyciA9PSBFTk9MQ0t8fGVyciA9PSBFTk9NRU0pID8gRVhfT1NFUlIgOiBFWF9EQVRBRVJSKTsKKyAgICB9CisgIH0KKworICBpZiAoIGhhdmVfdGltZW91dCApIHsKKyAgICBzZXRpdGltZXIoSVRJTUVSX1JFQUwsICZvbGRfdGltZXIsIE5VTEwpOyAvKiBDYW5jZWwgaXRpbWVyICovCisgICAgc2lnYWN0aW9uKFNJR0FMUk0sICZvbGRfc2EsIE5VTEwpOyAvKiBDYW5jZWwgc2lnbmFsIGhhbmRsZXIgKi8KKyAgfQorCisgIHN0YXR1cyA9IDA7CisKKyAgaWYgKCBjbWRfYXJndiApIHsKKyAgICBwaWRfdCB3LCBmOworCisgICAgLyogQ2xlYXIgYW55IGluaGVyaXRlZCBzZXR0aW5ncyAqLworICAgIHNpZ25hbChTSUdDSExELCBTSUdfREZMKTsKKyAgICBmID0gZm9yaygpOworCisgICAgaWYgKCBmIDwgMCApIHsKKyAgICAgIGVyciA9IGVycm5vOworICAgICAgZnByaW50ZihzdGRlcnIsIF8oIiVzOiBmb3JrIGZhaWxlZDogJXNcbiIpLCBwcm9ncmFtLCBzdHJlcnJvcihlcnIpKTsKKyAgICAgIGV4aXQoRVhfT1NFUlIpOworICAgIH0gZWxzZSBpZiAoIGYgPT0gMCApIHsKKyAgICAgIGlmICggZG9fY2xvc2UgKQorCWNsb3NlKGZkKTsKKyAgICAgIGVyciA9IGVycm5vOworICAgICAgZXhlY3ZwKGNtZF9hcmd2WzBdLCBjbWRfYXJndik7CisgICAgICAvKiBleGVjdnAoKSBmYWlsZWQgKi8KKyAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6ICVzOiAlc1xuIiwgcHJvZ3JhbSwgY21kX2FyZ3ZbMF0sIHN0cmVycm9yKGVycikpOworICAgICAgX2V4aXQoKGVyciA9PSBFTk9NRU0pID8gRVhfT1NFUlI6IEVYX1VOQVZBSUxBQkxFKTsKKyAgICB9IGVsc2UgeworICAgICAgZG8geworCXcgPSB3YWl0cGlkKGYsICZzdGF0dXMsIDApOworCWlmICh3ID09IC0xICYmIGVycm5vICE9IEVJTlRSKQorCSAgYnJlYWs7CisgICAgICB9IHdoaWxlICggdyAhPSBmICk7CisKKyAgICAgIGlmICh3ID09IC0xKSB7CisJZXJyID0gZXJybm87CisJc3RhdHVzID0gRVhJVF9GQUlMVVJFOworCWZwcmludGYoc3RkZXJyLCAiJXM6IHdhaXRwaWQgZmFpbGVkOiAlc1xuIiwgcHJvZ3JhbSwgc3RyZXJyb3IoZXJyKSk7CisgICAgICB9IGVsc2UgaWYgKCBXSUZFWElURUQoc3RhdHVzKSApCisJc3RhdHVzID0gV0VYSVRTVEFUVVMoc3RhdHVzKTsKKyAgICAgIGVsc2UgaWYgKCBXSUZTSUdOQUxFRChzdGF0dXMpICkKKwlzdGF0dXMgPSBXVEVSTVNJRyhzdGF0dXMpICsgMTI4OworICAgICAgZWxzZQorCXN0YXR1cyA9IEVYX09TRVJSOwkvKiBXVEY/ICovCisgICAgfQorICB9CisKKyAgcmV0dXJuIHN0YXR1czsKK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2lwYy5pbmZvIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2lwYy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExZmU0OTgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjLmluZm8KQEAgLTAsMCArMSwxMTA3IEBACitUaGlzIGlzIGlwYy5pbmZvLCBwcm9kdWNlZCBieSBtYWtlaW5mbyB2ZXJzaW9uIDQuNyBmcm9tIGlwYy50ZXhpLgorCisgICBUaGlzIGZpbGUgZG9jdW1lbnRzIHRoZSBTeXN0ZW0gViBzdHlsZSBpbnRlciBwcm9jZXNzIGNvbW11bmljYXRpb24KK3ByaW1pdGl2ZXMgYXZhaWxhYmxlIHVuZGVyIGxpbnV4LgorCisgICBDb3B5cmlnaHQgKEMpIDE5OTIgIGtyaXNobmEgYmFsYXN1YnJhbWFuaWFuCisKKyAgIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byB1c2UgdGhpcyBtYXRlcmlhbCBhbmQgdGhlIGFjY29tcGFueWluZworcHJvZ3JhbXMgd2l0aGluIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdQTC4KKworSU5GTy1ESVItU0VDVElPTiBNaXNjZWxsYW5lb3VzCitTVEFSVC1JTkZPLURJUi1FTlRSWQorKiBpcGM6IChpcGMpLiAgICAgICAgICAgU3lzdGVtIFYgc3R5bGUgaW50ZXIgcHJvY2VzcyBjb21tdW5pY2F0aW9uCitFTkQtSU5GTy1ESVItRU5UUlkKKworHworRmlsZTogaXBjLmluZm8sICBOb2RlOiBUb3AsICBOZXh0OiBPdmVydmlldywgIFByZXY6IE5vdGVzLCAgVXA6IChkaXIpCisKKzEgU3lzdGVtIFYgSVBDLgorKioqKioqKioqKioqKioqCisKK1RoZXNlIGZhY2lsaXRpZXMgYXJlIHByb3ZpZGVkIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCBwcm9ncmFtcworZGV2ZWxvcGVkIG9uIHN5c3RlbSBWIHVuaXggc3lzdGVtcyBhbmQgb3RoZXJzIHRoYXQgcmVseSBvbiB0aGVzZSBzeXN0ZW0KK1YgbWVjaGFuaXNtcyB0byBhY2NvbXBsaXNoIGludGVyIHByb2Nlc3MgY29tbXVuaWNhdGlvbiAoSVBDKS4KKworICAgVGhlIHNwZWNpZmljcyBkZXNjcmliZWQgaGVyZSBhcmUgYXBwbGljYWJsZSB0byB0aGUgTGludXgKK2ltcGxlbWVudGF0aW9uLiAgT3RoZXIgaW1wbGVtZW50YXRpb25zIG1heSBkbyB0aGluZ3Mgc2xpZ2h0bHkKK2RpZmZlcmVudGx5LgorCisqIE1lbnU6CisKKyogT3ZlcnZpZXc6OiAgCQlXaGF0IGlzIHN5c3RlbSBWIGlwYz8gT3ZlcmFsbCBtZWNoYW5pc21zLgorKiBNZXNzYWdlczo6ICAJCVN5c3RlbSBjYWxscyBmb3IgbWVzc2FnZSBwYXNzaW5nLgorKiBTZW1hcGhvcmVzOjogCQlTeXN0ZW0gY2FsbHMgZm9yIHNlbWFwaG9yZXMuCisqIFNoYXJlZCBNZW1vcnk6OiAJU3lzdGVtIGNhbGxzIGZvciBzaGFyZWQgbWVtb3J5IGFjY2Vzcy4KKyogTm90ZXM6OiAJCU1pc2NlbGxhbmVvdXMgbm90ZXMuCisKKx8KK0ZpbGU6IGlwYy5pbmZvLCAgTm9kZTogT3ZlcnZpZXcsICBOZXh0OiBleGFtcGxlLCAgUHJldjogVG9wLCAgVXA6IFRvcAorCisxLjEgT3ZlcnZpZXcKKz09PT09PT09PT09PQorCitTeXN0ZW0gViBJUEMgY29uc2lzdHMgb2YgdGhyZWUgbWVjaGFuaXNtczoKKworICAgKiBNZXNzYWdlcyA6IGV4Y2hhbmdlIG1lc3NhZ2VzIHdpdGggYW55IHByb2Nlc3Mgb3Igc2VydmVyLgorCisgICAqIFNlbWFwaG9yZXMgOiBhbGxvdyB1bnJlbGF0ZWQgcHJvY2Vzc2VzIHRvIHN5bmNocm9uaXplIGV4ZWN1dGlvbi4KKworICAgKiBTaGFyZWQgbWVtb3J5IDogYWxsb3cgdW5yZWxhdGVkIHByb2Nlc3NlcyB0byBzaGFyZSBtZW1vcnkuCisKKyogTWVudToKKworKiBleGFtcGxlOjogCVVzaW5nIHNoYXJlZCBtZW1vcnkuCisqIHBlcm1zOjogCURlc2NyaXB0aW9uIG9mIGFjY2VzcyBwZXJtaXNzaW9ucy4KKyogc3lzY2FsbHM6OiAgICBPdmVydmlldyBvZiBpcGMgc3lzdGVtIGNhbGxzLgorCisgICBBY2Nlc3MgdG8gYWxsIHJlc291cmNlcyBpcyBwZXJtaXR0ZWQgb24gdGhlIGJhc2lzIG9mIHBlcm1pc3Npb25zIHNldAordXAgd2hlbiB0aGUgcmVzb3VyY2Ugd2FzIGNyZWF0ZWQuCisKKyAgIEEgcmVzb3VyY2UgaGVyZSBjb25zaXN0cyBvZiBtZXNzYWdlIHF1ZXVlLCBhIHNlbWFwaG9yZSBzZXQgKGFycmF5KQorb3IgYSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQuCisKKyAgIEEgcmVzb3VyY2UgbXVzdCBmaXJzdCBiZSBhbGxvY2F0ZWQgYnkgYSBjcmVhdG9yIGJlZm9yZSBpdCBpcyB1c2VkLgorVGhlIGNyZWF0b3IgY2FuIGFzc2lnbiBhIGRpZmZlcmVudCBvd25lci4gQWZ0ZXIgdXNlIHRoZSByZXNvdXJjZSBtdXN0CitiZSBleHBsaWNpdGx5IGRlc3Ryb3llZCBieSB0aGUgY3JlYXRvciBvciBvd25lci4KKworICAgQSByZXNvdXJjZSBpcyBpZGVudGlmaWVkIGJ5IGEgbnVtZXJpYyBJRC4gVHlwaWNhbGx5IGEgY3JlYXRvcgorZGVmaW5lcyBhIEtFWSB0aGF0IG1heSBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgcmVzb3VyY2UuIFRoZSB1c2VyIHByb2Nlc3MKK21heSB0aGVuIHVzZSB0aGlzIEtFWSBpbiB0aGUgImdldCIgc3lzdGVtIGNhbGwgdG8gb2J0YWluIHRoZSBJRCBmb3IgdGhlCitjb3JyZXNwb25kaW5nIHJlc291cmNlLiBUaGlzIElEIGlzIHRoZW4gdXNlZCBmb3IgYWxsIGZ1cnRoZXIgYWNjZXNzLiBBCitsaWJyYXJ5IGNhbGwgImZ0b2siIGlzIHByb3ZpZGVkIHRvIHRyYW5zbGF0ZSBwYXRobmFtZXMgb3Igc3RyaW5ncyB0bworbnVtZXJpYyBrZXlzLgorCisgICBUaGVyZSBhcmUgc3lzdGVtIGFuZCBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGxpbWl0cyBvbiB0aGUgbnVtYmVyIGFuZAorc2l6ZXMgb2YgcmVzb3VyY2VzIG9mIGFueSBnaXZlbiB0eXBlLiBTb21lIG9mIHRoZXNlIGFyZSBpbXBvc2VkIGJ5IHRoZQoraW1wbGVtZW50YXRpb24gYW5kIG90aGVycyBieSB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3Igd2hlbiBjb25maWd1cmluZwordGhlIGtlcm5lbCAoKk5vdGUgbXNnbGltaXRzOjosICpOb3RlIHNlbWxpbWl0czo6LCAqTm90ZSBzaG1saW1pdHM6OikuCisKKyAgIFRoZXJlIGlzIGFuIGBtc3FpZF9kcycsIGBzZW1pZF9kcycgb3IgYHNobWlkX2RzJyBzdHJ1Y3QgYXNzb2NpYXRlZAord2l0aCBlYWNoIG1lc3NhZ2UgcXVldWUsIHNlbWFwaG9yZSBhcnJheSBvciBzaGFyZWQgc2VnbWVudC4gIEVhY2ggaXBjCityZXNvdXJjZSBoYXMgYW4gYXNzb2NpYXRlZCBgaXBjX3Blcm0nIHN0cnVjdCB3aGljaCBkZWZpbmVzIHRoZSBjcmVhdG9yLAorb3duZXIsIGFjY2VzcyBwZXJtcyAuLmV0Yy4uLCBmb3IgdGhlIHJlc291cmNlLiAgVGhlc2Ugc3RydWN0dXJlcyBhcmUKK2RldGFpbGVkIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuCisKKx8KK0ZpbGU6IGlwYy5pbmZvLCAgTm9kZTogZXhhbXBsZSwgIE5leHQ6IHBlcm1zLCAgUHJldjogT3ZlcnZpZXcsICBVcDogT3ZlcnZpZXcKKworMS4yIGV4YW1wbGUKKz09PT09PT09PT09CisKK0hlcmUgaXMgYSBjb2RlIGZyYWdtZW50IHdpdGggcG9pbnRlcnMgb24gaG93IHRvIHVzZSBzaGFyZWQgbWVtb3J5LiBUaGUKK3NhbWUgbWV0aG9kcyBhcmUgYXBwbGljYWJsZSB0byBvdGhlciByZXNvdXJjZXMuCisKKyAgIEluIGEgdHlwaWNhbCBhY2Nlc3Mgc2VxdWVuY2UgdGhlIGNyZWF0b3IgYWxsb2NhdGVzIGEgbmV3IGluc3RhbmNlIG9mCit0aGUgcmVzb3VyY2Ugd2l0aCB0aGUgYGdldCcgc3lzdGVtIGNhbGwgdXNpbmcgdGhlIElQQ19DUkVBVCBmbGFnLgorCitjcmVhdG9yIHByb2Nlc3M6CisgICAgICNpbmNsdWRlIDxzeXMvc2htLmg+CisgICAgIGludCBpZDsKKyAgICAga2V5X3Qga2V5OworICAgICBjaGFyIHByb2NfaWQgPSAnQyc7CisgICAgIGludCBzaXplID0gMHg1MDAwOwkvKiAyMCBLICovCisgICAgIGludCBmbGFncyA9IDA2NjQgfCBJUENfQ1JFQVQ7CQkvKiByZWFkLW9ubHkgZm9yIG90aGVycyAqLworCisgICAgIGtleSA9IGZ0b2sgKCJ+Y3JlYXRvci9pcGNrZXkiLCBwcm9jX2lkKTsKKyAgICAgaWQgPSBzaG1nZXQgKGtleSwgc2l6ZSwgZmxhZ3MpOworICAgICBleGl0ICgwKTsJLyogcXVpdCBsZWF2aW5nIHJlc291cmNlIGFsbG9jYXRlZCAqLworCitVc2VycyB0aGVuIGdhaW4gYWNjZXNzIHRvIHRoZSByZXNvdXJjZSB1c2luZyB0aGUgc2FtZSBrZXkuCitDbGllbnQgcHJvY2VzczoKKyAgICAgI2luY2x1ZGUgPHN5cy9zaG0uaD4KKyAgICAgY2hhciAqc2htYWRkcjsKKyAgICAgaW50IGlkOworICAgICBrZXlfdCBrZXk7CisgICAgIGNoYXIgcHJvY19pZCA9ICdDJzsKKworICAgICBrZXkgPSBmdG9rICgifmNyZWF0b3IvaXBja2V5IiwgcHJvY19pZCk7CisKKyAgICAgaWQgPSBzaG1nZXQgKGtleSwgMCwgMDA0KTsJCS8qIGRlZmF1bHQgc2l6ZSAgICovCisgICAgIGlmIChpZCA9PSAtMSkKKyAgICAgICAgICAgcGVycm9yICgic2htZ2V0IC4uLiIpOworCisgICAgIHNobWFkZHIgPSBzaG1hdCAoaWQsIDAsIFNITV9SRE9OTFkpOyAvKiBhdHRhY2ggc2VnbWVudCBmb3IgcmVhZGluZyAqLworICAgICBpZiAoc2htYWRkciA9PSAoY2hhciAqKSAtMSkKKyAgICAgICAgICAgcGVycm9yICgic2htYXQgLi4uIik7CisKKyAgICAgbG9jYWxfdmFyID0gKihzaG1hZGRyICsgMyk7IAkvKiByZWFkIHNlZ21lbnQgZXRjLiAqLworCisgICAgIHNobWR0IChzaG1hZGRyKTsJCS8qIGRldGFjaCBzZWdtZW50ICovCisKK1doZW4gdGhlIHJlc291cmNlIGlzIG5vIGxvbmdlciBuZWVkZWQgdGhlIGNyZWF0b3Igc2hvdWxkIHJlbW92ZSBpdC4KK0NyZWF0b3Ivb3duZXIgcHJvY2VzcyAyOgorICAgICBrZXkgPSBmdG9rICgifmNyZWF0b3IvaXBja2V5IiwgcHJvY19pZCkKKyAgICAgaWQgPSBzaG1nZXQgKGtleSwgMCwgMCk7CisgICAgIHNobWN0bCAoaWQsIElQQ19STUlELCBOVUxMKTsKKworHworRmlsZTogaXBjLmluZm8sICBOb2RlOiBwZXJtcywgIE5leHQ6IHN5c2NhbGxzLCAgUHJldjogZXhhbXBsZSwgIFVwOiBPdmVydmlldworCisxLjMgUGVybWlzc2lvbnMKKz09PT09PT09PT09PT09PQorCitFYWNoIHJlc291cmNlIGhhcyBhbiBhc3NvY2lhdGVkIGBpcGNfcGVybScgc3RydWN0IHdoaWNoIGRlZmluZXMgdGhlCitjcmVhdG9yLCBvd25lciBhbmQgYWNjZXNzIHBlcm1zIGZvciB0aGUgcmVzb3VyY2UuCisKKyAgICAgc3RydWN0IGlwY19wZXJtCisgICAgICAgICAgICAga2V5X3Qga2V5OyAgICAvKiBzZXQgYnkgY3JlYXRvciAqLworICAgICAgICAgICAgIHVzaG9ydCB1aWQ7ICAgLyogb3duZXIgZXVpZCBhbmQgZWdpZCAqLworICAgICAgICAgICAgIHVzaG9ydCBnaWQ7CisgICAgICAgICAgICAgdXNob3J0IGN1aWQ7ICAvKiBjcmVhdG9yIGV1aWQgYW5kIGVnaWQgKi8KKyAgICAgICAgICAgICB1c2hvcnQgY2dpZDsKKyAgICAgICAgICAgICB1c2hvcnQgbW9kZTsgIC8qIGFjY2VzcyBtb2RlcyBpbiBsb3dlciA5IGJpdHMgKi8KKyAgICAgICAgICAgICB1c2hvcnQgc2VxOyAgIC8qIHNlcXVlbmNlIG51bWJlciAqLworCisgICBUaGUgY3JlYXRpbmcgcHJvY2VzcyBpcyB0aGUgZGVmYXVsdCBvd25lci4gVGhlIG93bmVyIGNhbiBiZQorcmVhc3NpZ25lZCBieSB0aGUgY3JlYXRvciBhbmQgaGFzIGNyZWF0b3IgcGVybXMuIE9ubHkgdGhlIG93bmVyLAorY3JlYXRvciBvciBzdXBlci11c2VyIGNhbiBkZWxldGUgdGhlIHJlc291cmNlLgorCisgICBUaGUgbG93ZXN0IG5pbmUgYml0cyBvZiB0aGUgZmxhZ3MgcGFyYW1ldGVyIHN1cHBsaWVkIGJ5IHRoZSB1c2VyIHRvCit0aGUgc3lzdGVtIGNhbGwgYXJlIGNvbXBhcmVkIHdpdGggdGhlIHZhbHVlcyBzdG9yZWQgaW4gYGlwY19wZXJtcy5tb2RlJwordG8gZGV0ZXJtaW5lIGlmIHRoZSByZXF1ZXN0ZWQgYWNjZXNzIGlzIGFsbG93ZWQuIEluIHRoZSBjYXNlIHRoYXQgdGhlCitzeXN0ZW0gY2FsbCBjcmVhdGVzIHRoZSByZXNvdXJjZSwgdGhlc2UgYml0cyBhcmUgaW5pdGlhbGl6ZWQgZnJvbSB0aGUKK3VzZXIgc3VwcGxpZWQgdmFsdWUuCisKKyAgIEFzIGZvciBmaWxlcywgYWNjZXNzIHBlcm1pc3Npb25zIGFyZSBzcGVjaWZpZWQgYXMgcmVhZCwgd3JpdGUgYW5kCitleGVjIGZvciB1c2VyLCBncm91cCBvciBvdGhlciAodGhvdWdoIHRoZSBleGVjIHBlcm1zIGFyZSB1bnVzZWQpLiBGb3IKK2V4YW1wbGUgMDYyNCBncmFudHMgcmVhZC13cml0ZSB0byBvd25lciwgd3JpdGUtb25seSB0byBncm91cCBhbmQKK3JlYWQtb25seSBhY2Nlc3MgdG8gb3RoZXJzLgorCisgICBGb3Igc2hhcmVkIG1lbW9yeSwgbm90ZSB0aGF0IHJlYWQtd3JpdGUgYWNjZXNzIGZvciBzZWdtZW50cyBpcworZGV0ZXJtaW5lZCBieSBhIHNlcGFyYXRlIGZsYWcgd2hpY2ggaXMgbm90IHN0b3JlZCBpbiB0aGUgYG1vZGUnIGZpZWxkLgorU2hhcmVkIG1lbW9yeSBzZWdtZW50cyBhdHRhY2hlZCB3aXRoIHdyaXRlIGFjY2VzcyBjYW4gYmUgcmVhZC4KKworICAgVGhlIGBjdWlkJywgYGNnaWQnLCBga2V5JyBhbmQgYHNlcScgZmllbGRzIGNhbm5vdCBiZSBjaGFuZ2VkIGJ5IHRoZQordXNlci4KKworHworRmlsZTogaXBjLmluZm8sICBOb2RlOiBzeXNjYWxscywgIE5leHQ6IE1lc3NhZ2VzLCAgUHJldjogcGVybXMsICBVcDogT3ZlcnZpZXcKKworMS40IElQQyBzeXN0ZW0gY2FsbHMKKz09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgc2VjdGlvbiBwcm92aWRlcyBhbiBvdmVydmlldyBvZiB0aGUgSVBDIHN5c3RlbSBjYWxscy4gU2VlIHRoZQorc3BlY2lmaWMgc2VjdGlvbnMgb24gZWFjaCB0eXBlIG9mIHJlc291cmNlIGZvciBkZXRhaWxzLgorCisgICBFYWNoIHR5cGUgb2YgbWVjaGFuaXNtIHByb3ZpZGVzIGEgImdldCIsICJjdGwiIGFuZCBvbmUgb3IgbW9yZSAib3AiCitzeXN0ZW0gY2FsbHMgdGhhdCBhbGxvdyB0aGUgdXNlciB0byBjcmVhdGUgb3IgcHJvY3VyZSB0aGUgcmVzb3VyY2UKKyhnZXQpLCBkZWZpbmUgaXRzIGJlaGF2aW91ciBvciBkZXN0cm95IGl0IChjdGwpIGFuZCBtYW5pcHVsYXRlIHRoZQorcmVzb3VyY2VzIChvcCkuCisKKzEuNC4xIFRoZSAiZ2V0IiBzeXN0ZW0gY2FsbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGBnZXQnIGNhbGwgdHlwaWNhbGx5IHRha2VzIGEgS0VZIGFuZCByZXR1cm5zIGEgbnVtZXJpYyBJRCB0aGF0IGlzCit1c2VkIGZvciBmdXJ0aGVyIGFjY2Vzcy4gIFRoZSBJRCBpcyBhbiBpbmRleCBpbnRvIHRoZSByZXNvdXJjZSB0YWJsZS4gQQorc2VxdWVuY2UgbnVtYmVyIGlzIG1haW50YWluZWQgYW5kIGluY3JlbWVudGVkIHdoZW4gYSByZXNvdXJjZSBpcworZGVzdHJveWVkIHNvIHRoYXQgYWNjZXNzIHVzaW5nIGFuIG9ic29sZXRlIElEIGlzIGxpa2VseSB0byBmYWlsLgorCisgICBUaGUgdXNlciBhbHNvIHNwZWNpZmllcyB0aGUgcGVybWlzc2lvbnMgYW5kIG90aGVyIGJlaGF2aW91cgorY2hhcmVjdGVyaXN0aWNzIGZvciB0aGUgY3VycmVudCBhY2Nlc3MuIFRoZSBmbGFncyBhcmUgb3ItZWQgd2l0aCB0aGUKK3Blcm1pc3Npb25zIHdoZW4gaW52b2tpbmcgc3lzdGVtIGNhbGxzIGFzIGluOgorICAgICBtc2dmbGcgPSBJUENfQ1JFQVQgfCBJUENfRVhDTCB8IDA2NjY7CisgICAgIGlkID0gbXNnZ2V0IChrZXksIG1zZ2ZsZyk7CisKKyAgICogYGtleScgOiBJUENfUFJJVkFURSA9PiBuZXcgaW5zdGFuY2Ugb2YgcmVzb3VyY2UgaXMgaW5pdGlhbGl6ZWQuCisKKyAgICogYGZsYWdzJyA6CisgICAgICAgICAgSVBDX0NSRUFUIDogcmVzb3VyY2UgY3JlYXRlZCBmb3IgS0VZIGlmIGl0IGRvZXMgbm90IGV4aXN0LgorCisgICAgICAgICAgSVBDX0NSRUFUIHwgSVBDX0VYQ0wgOiBmYWlsIGlmIHJlc291cmNlIGV4aXN0cyBmb3IgS0VZLgorCisgICAqIHJldHVybnMgOiBhbiBpZGVudGlmaWVyIHVzZWQgZm9yIGFsbCBmdXJ0aGVyIGFjY2VzcyB0byB0aGUKKyAgICAgcmVzb3VyY2UuCisKKyAgIE5vdGUgdGhhdCBJUENfUFJJVkFURSBpcyBub3QgYSBmbGFnIGJ1dCBhIHNwZWNpYWwgYGtleScgdGhhdCBlbnN1cmVzCisod2hlbiB0aGUgY2FsbCBpcyBzdWNjZXNzZnVsKSB0aGF0IGEgbmV3IHJlc291cmNlIGlzIGNyZWF0ZWQuCisKKyAgIFVzZSBvZiBJUENfUFJJVkFURSBkb2VzIG5vdCBtYWtlIHRoZSByZXNvdXJjZSBpbmFjY2Vzc2libGUgdG8gb3RoZXIKK3VzZXJzLiBGb3IgdGhpcyB5b3UgbXVzdCBzZXQgdGhlIGFjY2VzcyBwZXJtaXNzaW9ucyBhcHByb3ByaWF0ZWx5LgorCisgICBUaGVyZSBpcyBjdXJyZW50bHkgbm8gd2F5IGZvciBhIHByb2Nlc3MgdG8gZW5zdXJlIGV4Y2x1c2l2ZSBhY2Nlc3MKK3RvIGEgcmVzb3VyY2UuIElQQ19DUkVBVCB8IElQQ19FWENMIG9ubHkgZW5zdXJlcyAob24gc3VjY2VzcykgdGhhdCBhIG5ldworcmVzb3VyY2Ugd2FzIGluaXRpYWxpemVkLiBJdCBkb2VzIG5vdCBpbXBseSBleGNsdXNpdmUgYWNjZXNzLgorCitTZWUgQWxzbyA6ICpOb3RlIG1zZ2dldDo6LCAqTm90ZSBzZW1nZXQ6OiwgKk5vdGUgc2htZ2V0OjouCisKKzEuNC4yIFRoZSAiY3RsIiBzeXN0ZW0gY2FsbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUHJvdmlkZXMgb3IgYWx0ZXJzIHRoZSBpbmZvcm1hdGlvbiBzdG9yZWQgaW4gdGhlIHN0cnVjdHVyZSB0aGF0CitkZXNjcmliZXMgdGhlIHJlc291cmNlIGluZGV4ZWQgYnkgSUQuCisKKyAgICAgI2luY2x1ZGUgPHN5cy9tc2cuaD4KKyAgICAgc3RydWN0IG1zcWlkX2RzIGJ1ZjsKKyAgICAgZXJyID0gbXNnY3RsIChpZCwgSVBDX1NUQVQsICZidWYpOworICAgICBpZiAoZXJyKQorICAgICAgICAgICAgICEkIyUqCisgICAgIGVsc2UKKyAgICAgICAgICAgICBwcmludGYgKCJjcmVhdG9yIHVpZCA9ICVkXG4iLCBidWYubXNnX3Blcm0uY3VpZCk7CisgICAgICAgICAgICAgLi4uLgorCitDb21tYW5kcyBzdXBwb3J0ZWQgYnkgYWxsIGBjdGwnIGNhbGxzOgorICAgKiBJUENfU1RBVCA6IHJlYWQgaW5mbyBvbiByZXNvdXJjZSAgc3BlY2lmaWVkIGJ5IGlkIGludG8gdXNlcgorICAgICBhbGxvY2F0ZWQgYnVmZmVyLiBUaGUgdXNlciBtdXN0IGhhdmUgcmVhZCBhY2Nlc3MgdG8gdGhlIHJlc291cmNlLgorCisgICAqIElQQ19TRVQgOiB3cml0ZSBpbmZvIGZyb20gYnVmZmVyIGludG8gcmVzb3VyY2UgZGF0YSBzdHJ1Y3R1cmUuIFRoZQorICAgICB1c2VyIG11c3QgYmUgb3duZXIgY3JlYXRvciBvciBzdXBlci11c2VyLgorCisgICAqIElQQ19STUlEIDogcmVtb3ZlIHJlc291cmNlLiBUaGUgdXNlciBtdXN0IGJlIHRoZSBvd25lciwgY3JlYXRvciBvcgorICAgICBzdXBlci11c2VyLgorCisgICBUaGUgSVBDX1JNSUQgY29tbWFuZCByZXN1bHRzIGluIGltbWVkaWF0ZSByZW1vdmFsIG9mIGEgbWVzc2FnZSBxdWV1ZQorb3Igc2VtYXBob3JlIGFycmF5LiBTaGFyZWQgbWVtb3J5IHNlZ21lbnRzIGhvd2V2ZXIsIGFyZSBvbmx5IGRlc3Ryb3llZAordXBvbiB0aGUgbGFzdCBkZXRhY2ggYWZ0ZXIgSVBDX1JNSUQgaXMgZXhlY3V0ZWQuCisKKyAgIFRoZSBgc2VtY3RsJyBjYWxsIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGNvbW1hbmQgb3B0aW9ucyB0aGF0IGFsbG93Cit0aGUgdXNlciB0byBkZXRlcm1pbmUgb3Igc2V0IHRoZSB2YWx1ZXMgb2YgdGhlIHNlbWFwaG9yZXMgaW4gYW4gYXJyYXkuCisKK1NlZSBBbHNvOiAqTm90ZSBtc2djdGw6OiwgKk5vdGUgc2VtY3RsOjosICpOb3RlIHNobWN0bDo6LgorCisxLjQuMyBUaGUgIm9wIiBzeXN0ZW0gY2FsbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitVc2VkIHRvIHNlbmQgb3IgcmVjZWl2ZSBtZXNzYWdlcywgcmVhZCBvciBhbHRlciBzZW1hcGhvcmUgdmFsdWVzLAorYXR0YWNoIG9yIGRldGFjaCBzaGFyZWQgbWVtb3J5IHNlZ21lbnRzLiAgVGhlIElQQ19OT1dBSVQgZmxhZyB3aWxsCitjYXVzZSB0aGUgb3BlcmF0aW9uIHRvIGZhaWwgd2l0aCBlcnJvciBFQUdBSU4gaWYgdGhlIHByb2Nlc3MgaGFzIHRvCit3YWl0IG9uIHRoZSBjYWxsLgorCitgZmxhZ3MnIDogSVBDX05PV0FJVCAgPT4gcmV0dXJuIHdpdGggZXJyb3IgaWYgYSB3YWl0IGlzIHJlcXVpcmVkLgorCitTZWUgQWxzbzogKk5vdGUgbXNnc25kOjosKk5vdGUgbXNncmN2OjosKk5vdGUgc2Vtb3A6OiwqTm90ZSBzaG1hdDo6LAorKk5vdGUgc2htZHQ6Oi4KKworHworRmlsZTogaXBjLmluZm8sICBOb2RlOiBNZXNzYWdlcywgIE5leHQ6IG1zZ2dldCwgIFByZXY6IHN5c2NhbGxzLCAgVXA6IFRvcAorCisxLjUgTWVzc2FnZXMKKz09PT09PT09PT09PQorCitBIG1lc3NhZ2UgcmVzb3VyY2UgaXMgZGVzY3JpYmVkIGJ5IGEgc3RydWN0IGBtc3FpZF9kcycgd2hpY2ggaXMKK2FsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgd2hlbiB0aGUgcmVzb3VyY2UgaXMgY3JlYXRlZC4gU29tZSBmaWVsZHMgaW4KK2Btc3FpZF9kcycgY2FuIHRoZW4gYmUgYWx0ZXJlZCAoaWYgZGVzaXJlZCkgYnkgaW52b2tpbmcgYG1zZ2N0bCcuICBUaGUKK21lbW9yeSB1c2VkIGJ5IHRoZSByZXNvdXJjZSBpcyByZWxlYXNlZCB3aGVuIGl0IGlzIGRlc3Ryb3llZCBieSBhCitgbXNnY3RsJyBjYWxsLgorCisgICAgIHN0cnVjdCBtc3FpZF9kcworICAgICAgICAgc3RydWN0IGlwY19wZXJtIG1zZ19wZXJtOworICAgICAgICAgc3RydWN0IG1zZyAqbXNnX2ZpcnN0OyAgLyogZmlyc3QgbWVzc2FnZSBvbiBxdWV1ZSAoaW50ZXJuYWwpICovCisgICAgICAgICBzdHJ1Y3QgbXNnICptc2dfbGFzdDsgICAvKiBsYXN0IG1lc3NhZ2UgaW4gcXVldWUgKGludGVybmFsKSAqLworICAgICAgICAgdGltZV90IG1zZ19zdGltZTsgICAgICAgLyogbGFzdCBtc2dzbmQgdGltZSAqLworICAgICAgICAgdGltZV90IG1zZ19ydGltZTsgICAgICAgLyogbGFzdCBtc2dyY3YgdGltZSAqLworICAgICAgICAgdGltZV90IG1zZ19jdGltZTsgICAgICAgLyogbGFzdCBjaGFuZ2UgdGltZSAqLworICAgICAgICAgc3RydWN0IHdhaXRfcXVldWUgKnd3YWl0OyAvKiB3cml0ZXJzIHdhaXRpbmcgKGludGVybmFsKSAqLworICAgICAgICAgc3RydWN0IHdhaXRfcXVldWUgKnJ3YWl0OyAvKiByZWFkZXJzIHdhaXRpbmcgKGludGVybmFsKSAqLworICAgICAgICAgdXNob3J0IG1zZ19jYnl0ZXM7ICAgICAgLyogbnVtYmVyIG9mIGJ5dGVzIHVzZWQgb24gcXVldWUgKi8KKyAgICAgICAgIHVzaG9ydCBtc2dfcW51bTsgICAgICAgIC8qIG51bWJlciBvZiBtZXNzYWdlcyBpbiBxdWV1ZSAqLworICAgICAgICAgdXNob3J0IG1zZ19xYnl0ZXM7ICAgICAgLyogbWF4IG51bWJlciBvZiBieXRlcyBvbiBxdWV1ZSAqLworICAgICAgICAgdXNob3J0IG1zZ19sc3BpZDsgICAgICAgLyogcGlkIG9mIGxhc3QgbXNnc25kICovCisgICAgICAgICB1c2hvcnQgbXNnX2xycGlkOyAgICAgICAvKiBwaWQgb2YgbGFzdCBtc2dyY3YgKi8KKworICAgVG8gc2VuZCBvciByZWNlaXZlIGEgbWVzc2FnZSB0aGUgdXNlciBhbGxvY2F0ZXMgYSBzdHJ1Y3R1cmUgdGhhdAorbG9va3MgbGlrZSBhIGBtc2didWYnIGJ1dCB3aXRoIGFuIGFycmF5IGBtdGV4dCcgb2YgdGhlIHJlcXVpcmVkIHNpemUuCitNZXNzYWdlcyBoYXZlIGEgdHlwZSAocG9zaXRpdmUgaW50ZWdlcikgYXNzb2NpYXRlZCB3aXRoIHRoZW0gc28gdGhhdAorKGZvciBleGFtcGxlKSBhIGxpc3RlbmVyIGNhbiBjaG9vc2UgdG8gcmVjZWl2ZSBvbmx5IG1lc3NhZ2VzIG9mIGEgZ2l2ZW4KK3R5cGUuCisKKyAgICAgc3RydWN0IG1zZ2J1ZgorICAgICAgICAgbG9uZyBtdHlwZTsgICAgICB0eXBlIG9mIG1lc3NhZ2UgKCpOb3RlIG1zZ3Jjdjo6KS4KKyAgICAgICAgIGNoYXIgbXRleHRbMV07ICAgbWVzc2FnZSB0ZXh0IC4uIHdoeSBpcyB0aGlzIG5vdCBhIHB0cj8KKworICAgVGhlIHVzZXIgbXVzdCBoYXZlIHdyaXRlIHBlcm1pc3Npb25zIHRvIHNlbmQgYW5kIHJlYWQgcGVybWlzc2lvbnMgdG8KK3JlY2VpdmUgbWVzc2FnZXMgb24gYSBxdWV1ZS4KKworICAgV2hlbiBgbXNnc25kJyBpcyBpbnZva2VkLCB0aGUgdXNlcidzIG1lc3NhZ2UgaXMgY29waWVkIGludG8gYW4KK2ludGVybmFsIHN0cnVjdCBgbXNnJyBhbmQgYWRkZWQgdG8gdGhlIHF1ZXVlLiBBIGBtc2dyY3YnIHdpbGwgdGhlbiByZWFkCit0aGlzIG1lc3NhZ2UgYW5kIGZyZWUgdGhlIGFzc29jaWF0ZWQgc3RydWN0IGBtc2cnLgorCisqIE1lbnU6CisKKyogbXNnZ2V0OjoKKyogbXNnc25kOjoKKyogbXNncmN2OjoKKyogbXNnY3RsOjoKKyogbXNnbGltaXRzOjogSW1wbGVtZW50YXRpb24gZGVmaW5lZCBsaW1pdHMuCisKKx8KK0ZpbGU6IGlwYy5pbmZvLCAgTm9kZTogbXNnZ2V0LCAgTmV4dDogbXNnc25kLCAgUHJldjogTWVzc2FnZXMsICBVcDogTWVzc2FnZXMKKworMS41LjEgbXNnZ2V0CistLS0tLS0tLS0tLS0KKworQSBtZXNzYWdlIHF1ZXVlIGlzIGFsbG9jYXRlZCBieSBhIG1zZ2dldCBzeXN0ZW0gY2FsbCA6CisKKyAgICAgbXNxaWQgPSBtc2dnZXQgKGtleV90IGtleSwgaW50IG1zZ2ZsZyk7CisKKyAgICogYGtleSc6IGFuIGludGVnZXIgdXN1YWxseSBnb3QgZnJvbSBgZnRvaygpJyBvciBJUENfUFJJVkFURS4KKworICAgKiBgbXNnZmxnJzoKKyAgICAgICAgICBJUENfQ1JFQVQgOiB1c2VkIHRvIGNyZWF0ZSBhIG5ldyByZXNvdXJjZSBpZiBpdCBkb2VzIG5vdAorICAgICAgICAgIGFscmVhZHkgZXhpc3QuCisKKyAgICAgICAgICBJUENfRVhDTCB8IElQQ19DUkVBVCA6IHVzZWQgdG8gZW5zdXJlIGZhaWx1cmUgb2YgdGhlIGNhbGwgaWYKKyAgICAgICAgICB0aGUgcmVzb3VyY2UgYWxyZWFkeSBleGlzdHMuCisKKyAgICAgICAgICByd3hyd3hyd3ggOiBhY2Nlc3MgcGVybWlzc2lvbnMuCisKKyAgICogcmV0dXJuczogbXNxaWQgKGFuIGludGVnZXIgdXNlZCBmb3IgYWxsIGZ1cnRoZXIgYWNjZXNzKSBvbiBzdWNjZXNzLgorICAgICAtMSBvbiBmYWlsdXJlLgorCisgICBBIG1lc3NhZ2UgcXVldWUgaXMgYWxsb2NhdGVkIGlmIHRoZXJlIGlzIG5vIHJlc291cmNlIGNvcnJlc3BvbmRpbmcKK3RvIHRoZSBnaXZlbiBrZXkuIFRoZSBhY2Nlc3MgcGVybWlzc2lvbnMgc3BlY2lmaWVkIGFyZSB0aGVuIGNvcGllZCBpbnRvCit0aGUgYG1zZ19wZXJtJyBzdHJ1Y3QgYW5kIHRoZSBmaWVsZHMgaW4gYG1zcWlkX2RzJyBpbml0aWFsaXplZC4gVGhlCit1c2VyIG11c3QgdXNlIHRoZSBJUENfQ1JFQVQgZmxhZyBvciBrZXkgPSBJUENfUFJJVkFURSwgaWYgYSBuZXcKK2luc3RhbmNlIGlzIHRvIGJlIGFsbG9jYXRlZC4gSWYgYSByZXNvdXJjZSBjb3JyZXNwb25kaW5nIHRvIEtFWSBhbHJlYWR5CitleGlzdHMsIHRoZSBhY2Nlc3MgcGVybWlzc2lvbnMgYXJlIHZlcmlmaWVkLgorCitFcnJvcnM6CitFQUNDRVMgOiAocHJvY3VyZSkgRG8gbm90IGhhdmUgcGVybWlzc2lvbiBmb3IgcmVxdWVzdGVkIGFjY2Vzcy4KK0VFWElTVCA6IChhbGxvY2F0ZSkgSVBDX0NSRUFUIHwgSVBDX0VYQ0wgc3BlY2lmaWVkIGFuZCByZXNvdXJjZSBleGlzdHMuCitFSURSTSAgOiAocHJvY3VyZSkgVGhlIHJlc291cmNlIHdhcyByZW1vdmVkLgorRU5PU1BDIDogQWxsIGlkJ3MgYXJlIHRha2VuIChtYXggb2YgTVNHTU5JIGlkJ3Mgc3lzdGVtLXdpZGUpLgorRU5PRU5UIDogUmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgYW5kIElQQ19DUkVBVCBub3Qgc3BlY2lmaWVkLgorRU5PTUVNIDogQSBuZXcgYG1zcWlkX2RzJyB3YXMgdG8gYmUgY3JlYXRlZCBidXQgLi4uIG5vbWVtLgorCisfCitGaWxlOiBpcGMuaW5mbywgIE5vZGU6IG1zZ3NuZCwgIE5leHQ6IG1zZ3JjdiwgIFByZXY6IG1zZ2dldCwgIFVwOiBNZXNzYWdlcworCisxLjUuMiBtc2dzbmQKKy0tLS0tLS0tLS0tLQorCisgICAgIGludCBtc2dzbmQgKGludCBtc3FpZCwgc3RydWN0IG1zZ2J1ZiAqbXNncCwgaW50IG1zZ3N6LCBpbnQgbXNnZmxnKTsKKworICAgKiBgbXNxaWQnIDogaWQgb2J0YWluZWQgYnkgYSBjYWxsIHRvIG1zZ2dldC4KKworICAgKiBgbXNnc3onIDogc2l6ZSBvZiBtc2cgdGV4dCAoYG10ZXh0JykgaW4gYnl0ZXMuCisKKyAgICogYG1zZ3AnIDogbWVzc2FnZSB0byBiZSBzZW50LiAobXNncC0+bXR5cGUgbXVzdCBiZSBwb3NpdGl2ZSkuCisKKyAgICogYG1zZ2ZsZycgOiBJUENfTk9XQUlULgorCisgICAqIHJldHVybnMgOiBtc2dzeiBvbiBzdWNjZXNzLiAtMSBvbiBlcnJvci4KKworICAgVGhlIG1lc3NhZ2UgdGV4dCBhbmQgdHlwZSBhcmUgc3RvcmVkIGluIHRoZSBpbnRlcm5hbCBgbXNnJworc3RydWN0dXJlLiBgbXNnX2NieXRlcycsIGBtc2dfcW51bScsIGBtc2dfbHNwaWQnLCBhbmQgYG1zZ19zdGltZScKK2ZpZWxkcyBhcmUgdXBkYXRlZC4gUmVhZGVycyB3YWl0aW5nIG9uIHRoZSBxdWV1ZSBhcmUgYXdha2VuZWQuCisKK0Vycm9yczoKK0VBQ0NFUyA6IERvIG5vdCBoYXZlIHdyaXRlIHBlcm1pc3Npb24gb24gcXVldWUuCitFQUdBSU4gOiBJUENfTk9XQUlUIHNwZWNpZmllZCBhbmQgcXVldWUgaXMgZnVsbC4KK0VGQVVMVCA6IG1zZ3Agbm90IGFjY2Vzc2libGUuCitFSURSTSAgOiBUaGUgbWVzc2FnZSBxdWV1ZSB3YXMgcmVtb3ZlZC4KK0VJTlRSICA6IEZ1bGwgcXVldWUgLi4uIHdvdWxkIGhhdmUgc2xlcHQgYnV0IC4uLiB3YXMgaW50ZXJydXB0ZWQuCitFSU5WQUwgOiBtdHlwZSA8IDEsIG1zZ3N6ID4gTVNHTUFYLCBtc2dzeiA8IDAsIG1zcWlkIDwgMCBvciB1bnVzZWQuCitFTk9NRU0gOiBDb3VsZCBub3QgYWxsb2NhdGUgc3BhY2UgZm9yIGhlYWRlciBhbmQgdGV4dC4KKx8KK0ZpbGU6IGlwYy5pbmZvLCAgTm9kZTogbXNncmN2LCAgTmV4dDogbXNnY3RsLCAgUHJldjogbXNnc25kLCAgVXA6IE1lc3NhZ2VzCisKKzEuNS4zIG1zZ3JjdgorLS0tLS0tLS0tLS0tCisKKyAgICAgaW50IG1zZ3JjdiAoaW50IG1zcWlkLCBzdHJ1Y3QgbXNnYnVmICptc2dwLCBpbnQgbXNnc3osIGxvbmcgbXNndHlwLAorICAgICAJCQlpbnQgbXNnZmxnKTsKKworICAgKiBtc3FpZCAgOiBpZCBvYnRhaW5lZCBieSBhIGNhbGwgdG8gbXNnZ2V0LgorCisgICAqIG1zZ3N6ICA6IG1heGltdW0gc2l6ZSBvZiBtZXNzYWdlIHRvIHJlY2VpdmUuCisKKyAgICogbXNncCAgIDogYWxsb2NhdGVkIGJ5IHVzZXIgdG8gc3RvcmUgdGhlIG1lc3NhZ2UgaW4uCisKKyAgICogbXNndHlwIDoKKyAgICAgICAgICAwID0+IGdldCBmaXJzdCBtZXNzYWdlIG9uIHF1ZXVlLgorCisgICAgICAgICAgPiAwID0+IGdldCBmaXJzdCBtZXNzYWdlIG9mIG1hdGNoaW5nIHR5cGUuCisKKyAgICAgICAgICA8IDAgPT4gZ2V0IG1lc3NhZ2Ugd2l0aCBsZWFzdCB0eXBlICB3aGljaCBpcyA8PSBhYnMobXNndHlwKS4KKworICAgKiBtc2dmbGcgOgorICAgICAgICAgIElQQ19OT1dBSVQgOiBSZXR1cm4gaW1tZWRpYXRlbHkgaWYgbWVzc2FnZSBub3QgZm91bmQuCisKKyAgICAgICAgICBNU0dfTk9FUlJPUiA6IFRoZSBtZXNzYWdlIGlzIHRydW5jYXRlZCBpZiBpdCBpcyBsYXJnZXIgdGhhbgorICAgICAgICAgIG1zZ3N6LgorCisgICAgICAgICAgTVNHX0VYQ0VQVCA6IFVzZWQgd2l0aCBtc2d0eXAgPiAwIHRvIHJlY2VpdmUgYW55IG1zZyBleGNlcHQKKyAgICAgICAgICBvZiBzcGVjaWZpZWQgdHlwZS4KKworICAgKiByZXR1cm5zIDogc2l6ZSBvZiBtZXNzYWdlIGlmIGZvdW5kLiAtMSBvbiBlcnJvci4KKworICAgVGhlIGZpcnN0IG1lc3NhZ2UgdGhhdCBtZWV0cyB0aGUgYG1zZ3R5cCcgc3BlY2lmaWNhdGlvbiBpcworaWRlbnRpZmllZC4gRm9yIG1zZ3R5cCA8IDAsIHRoZSBlbnRpcmUgcXVldWUgaXMgc2VhcmNoZWQgZm9yIHRoZQorbWVzc2FnZSB3aXRoIHRoZSBzbWFsbGVzdCB0eXBlLgorCisgICBJZiBpdHMgbGVuZ3RoIGlzIHNtYWxsZXIgdGhhbiBtc2dzeiBvciBpZiB0aGUgdXNlciBzcGVjaWZpZWQgdGhlCitNU0dfTk9FUlJPUiBmbGFnLCBpdHMgdGV4dCBhbmQgdHlwZSBhcmUgY29waWVkIHRvIG1zZ3AtPm10ZXh0IGFuZAorbXNncC0+bXR5cGUsIGFuZCBpdCBpcyB0YWtlbiBvZmYgdGhlIHF1ZXVlLgorCisgICBUaGUgYG1zZ19jYnl0ZXMnLCBgbXNnX3FudW0nLCBgbXNnX2xycGlkJywgYW5kIGBtc2dfcnRpbWUnIGZpZWxkcworYXJlIHVwZGF0ZWQuIFdyaXRlcnMgd2FpdGluZyBvbiB0aGUgcXVldWUgYXJlIGF3YWtlbmVkLgorCitFcnJvcnM6CitFMkJJRyAgOiBtc2cgYmlnZ2VyIHRoYW4gbXNnc3ogYW5kIE1TR19OT0VSUk9SIG5vdCBzcGVjaWZpZWQuCitFQUNDRVMgOiBEbyBub3QgaGF2ZSBwZXJtaXNzaW9uIGZvciByZWFkaW5nIHRoZSBxdWV1ZS4KK0VGQVVMVCA6IG1zZ3Agbm90IGFjY2Vzc2libGUuCitFSURSTSAgOiBtc2cgcXVldWUgd2FzIHJlbW92ZWQuCitFSU5UUiAgOiBtc2cgbm90IGZvdW5kIC4uLiB3b3VsZCBoYXZlIHNsZXB0IGJ1dCAuLi4gd2FzIGludGVycnVwdGVkLgorRUlOVkFMIDogbXNnc3ogPiBtc2dtYXggb3IgbXNnc3ogPCAwLCBtc3FpZCA8IDAgb3IgdW51c2VkLgorRU5PTVNHIDogbXNnIG9mIHJlcXVlc3RlZCB0eXBlIG5vdCBmb3VuZCBhbmQgSVBDX05PV0FJVCBzcGVjaWZpZWQuCisKKx8KK0ZpbGU6IGlwYy5pbmZvLCAgTm9kZTogbXNnY3RsLCAgTmV4dDogbXNnbGltaXRzLCAgUHJldjogbXNncmN2LCAgVXA6IE1lc3NhZ2VzCisKKzEuNS40IG1zZ2N0bAorLS0tLS0tLS0tLS0tCisKKyAgICAgaW50IG1zZ2N0bCAoaW50IG1zcWlkLCBpbnQgY21kLCBzdHJ1Y3QgbXNxaWRfZHMgKmJ1Zik7CisKKyAgICogbXNxaWQgIDogaWQgb2J0YWluZWQgYnkgYSBjYWxsIHRvIG1zZ2dldC4KKworICAgKiBidWYgICAgOiBhbGxvY2F0ZWQgYnkgdXNlciBmb3IgcmVhZGluZy93cml0aW5nIGluZm8uCisKKyAgICogY21kICAgIDogSVBDX1NUQVQsIElQQ19TRVQsIElQQ19STUlEICgqTm90ZSBzeXNjYWxsczo6KS4KKworICAgSVBDX1NUQVQgcmVzdWx0cyBpbiB0aGUgY29weSBvZiB0aGUgcXVldWUgZGF0YSBzdHJ1Y3R1cmUgaW50byB0aGUKK3VzZXIgc3VwcGxpZWQgYnVmZmVyLgorCisgICBJbiB0aGUgY2FzZSBvZiBJUENfU0VULCB0aGUgcXVldWUgc2l6ZSAoYG1zZ19xYnl0ZXMnKSBhbmQgdGhlIGB1aWQnLAorYGdpZCcsIGBtb2RlJyAobG93IDkgYml0cykgZmllbGRzIG9mIHRoZSBgbXNnX3Blcm0nIHN0cnVjdCBhcmUgc2V0IGZyb20KK3RoZSB1c2VyIHN1cHBsaWVkIHZhbHVlcy4gIGBtc2dfY3RpbWUnIGlzIHVwZGF0ZWQuCisKKyAgIE5vdGUgdGhhdCBvbmx5IHRoZSBzdXBlciB1c2VyIG1heSBpbmNyZWFzZSB0aGUgbGltaXQgb24gdGhlIHNpemUgb2YgYQorbWVzc2FnZSBxdWV1ZSBiZXlvbmQgTVNHTU5CLgorCisgICBXaGVuIHRoZSBxdWV1ZSBpcyBkZXN0cm95ZWQgKElQQ19STUlEKSwgdGhlIHNlcXVlbmNlIG51bWJlciBpcworaW5jcmVtZW50ZWQgYW5kIGFsbCB3YWl0aW5nIHJlYWRlcnMgYW5kIHdyaXRlcnMgYXJlIGF3YWtlbmVkLiAgVGhlc2UKK3Byb2Nlc3NlcyB3aWxsIHRoZW4gcmV0dXJuIHdpdGggYGVycm5vJyBzZXQgdG8gRUlEUk0uCisKK0Vycm9yczogRVBFUk0gIDogSW5zdWZmaWNpZW50IHByaXZpbGVnZSB0byBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUKK3F1ZXVlIChJUENfU0VUKSBvciByZW1vdmUgaXQgKElQQ19STUlEKS4KK0VBQ0NFUyA6IERvIG5vdCBoYXZlIHBlcm1pc3Npb24gZm9yIHJlYWRpbmcgdGhlIHF1ZXVlIChJUENfU1RBVCkuCitFRkFVTFQgOiBidWYgbm90IGFjY2Vzc2libGUgKElQQ19TVEFULCBJUENfU0VUKS4KK0VJRFJNICA6IG1zZyBxdWV1ZSB3YXMgcmVtb3ZlZC4KK0VJTlZBTCA6IGludmFsaWQgY21kLCBtc3FpZCA8IDAgb3IgdW51c2VkLgorCisfCitGaWxlOiBpcGMuaW5mbywgIE5vZGU6IG1zZ2xpbWl0cywgIE5leHQ6IFNlbWFwaG9yZXMsICBQcmV2OiBtc2djdGwsICBVcDogTWVzc2FnZXMKKworMS41LjUgTGltaXMgb24gTWVzc2FnZSBSZXNvdXJjZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1NpemVvZiB2YXJpb3VzIHN0cnVjdHVyZXM6CisgICAgIG1zcWlkX2RzICAgICAgICA1MiAgIC8qIDEgcGVyIG1lc3NhZ2UgIHF1ZXVlIC4uIGR5bmFtaWMgKi8KKworICAgICBtc2cgICAgICAgICAgICAgMTYgICAvKiAxIGZvciBlYWNoIG1lc3NhZ2UgaW4gc3lzdGVtIC4uIGR5bmFtaWMgKi8KKworICAgICBtc2didWYgICAgICAgICAgIDggICAvKiBhbGxvY2F0ZWQgYnkgdXNlciAqLworCitMaW1pdHMKKyAgICogTVNHTU5JIDogbnVtYmVyIG9mIG1lc3NhZ2UgcXVldWUgaWRlbnRpZmllcnMgLi4uIHBvbGljeS4KKworICAgKiBNU0dNQVggOiBtYXggc2l6ZSBvZiBtZXNzYWdlLiAgSGVhZGVyIGFuZCBtZXNzYWdlIHNwYWNlIGFsbG9jYXRlZAorICAgICBvbiBvbmUgcGFnZS4gIE1TR01BWCA9IChQQUdFX1NJWkUgLSBzaXplb2Yoc3RydWN0IG1zZykpLgorICAgICBJbXBsZW1lbnRhdGlvbiBtYXhpbXVtIE1TR01BWCA9IDQwODAuCisKKyAgICogTVNHTU5CIDogZGVmYXVsdCBtYXggc2l6ZSBvZiBhIG1lc3NhZ2UgcXVldWUgLi4uIHBvbGljeS4gIFRoZQorICAgICBzdXBlci11c2VyIGNhbiBpbmNyZWFzZSB0aGUgc2l6ZSBvZiBhIHF1ZXVlIGJleW9uZCBNU0dNTkIgYnkgYQorICAgICBgbXNnY3RsJyBjYWxsLgorCitVbnVzZWQgb3IgdW5pbXBsZW1lbnRlZDoKK01TR1RRTCAgbWF4IG51bWJlciBvZiBtZXNzYWdlIGhlYWRlcnMgc3lzdGVtLXdpZGUuCitNU0dQT09MIHRvdGFsIHNpemUgaW4gYnl0ZXMgb2YgbXNnIHBvb2wuCisKKx8KK0ZpbGU6IGlwYy5pbmZvLCAgTm9kZTogU2VtYXBob3JlcywgIE5leHQ6IHNlbWdldCwgIFByZXY6IG1zZ2xpbWl0cywgIFVwOiBUb3AKKworMS42IFNlbWFwaG9yZXMKKz09PT09PT09PT09PT09CisKK0VhY2ggc2VtYXBob3JlIGhhcyBhIHZhbHVlID49IDAuIEFuIGlkIHByb3ZpZGVzIGFjY2VzcyB0byBhbiBhcnJheSBvZgorYG5zZW1zJyBzZW1hcGhvcmVzLiBPcGVyYXRpb25zIHN1Y2ggYXMgcmVhZCwgaW5jcmVtZW50IG9yIGRlY3JlbWVudAorc2VtYXBob3JlcyBpbiBhIHNldCBhcmUgcGVyZm9ybWVkIGJ5IHRoZSBgc2Vtb3AnIGNhbGwgd2hpY2ggcHJvY2Vzc2VzCitgbnNvcHMnIG9wZXJhdGlvbnMgYXQgYSB0aW1lLiBFYWNoIG9wZXJhdGlvbiBpcyBzcGVjaWZpZWQgaW4gYSBzdHJ1Y3QKK2BzZW1idWYnIGRlc2NyaWJlZCBiZWxvdy4gVGhlIG9wZXJhdGlvbnMgYXJlIGFwcGxpZWQgb25seSBpZiBhbGwgb2YKK3RoZW0gc3VjY2VlZC4KKworICAgSWYgeW91IGRvIG5vdCBoYXZlIGEgbmVlZCBmb3Igc3VjaCBhcnJheXMsIHlvdSBhcmUgcHJvYmFibHkgYmV0dGVyCitvZmYgdXNpbmcgdGhlIGB0ZXN0X2JpdCcsIGBzZXRfYml0JyBhbmQgIGBjbGVhcl9iaXQnIGJpdC1vcGVyYXRpb25zCitkZWZpbmVkIGluIDxhc20vYml0b3BzLmg+LgorCisgICBTZW1hcGhvcmUgb3BlcmF0aW9ucyBtYXkgYWxzbyBiZSBxdWFsaWZpZWQgYnkgYSBTRU1fVU5ETyBmbGFnIHdoaWNoCityZXN1bHRzIGluIHRoZSBvcGVyYXRpb24gYmVpbmcgdW5kb25lIHdoZW4gdGhlIHByb2Nlc3MgZXhpdHMuCisKKyAgIElmIGEgZGVjcmVtZW50IGNhbm5vdCBnbyB0aHJvdWdoLCBhIHByb2Nlc3Mgd2lsbCBiZSBwdXQgdG8gc2xlZXAgb24KK2EgcXVldWUgd2FpdGluZyBmb3IgdGhlIGBzZW12YWwnIHRvIGluY3JlYXNlIHVubGVzcyBpdCBzcGVjaWZpZXMKK0lQQ19OT1dBSVQuIEEgcmVhZCBvcGVyYXRpb24gY2FuIHNpbWlsYXJseSByZXN1bHQgaW4gYSBzbGVlcCBvbiBhIHF1ZXVlCit3YWl0aW5nIGZvciBgc2VtdmFsJyB0byBiZWNvbWUgMC4gKEFjdHVhbGx5IHRoZXJlIGFyZSB0d28gcXVldWVzIHBlcgorc2VtYXBob3JlIGFycmF5KS4KKworQSBzZW1hcGhvcmUgYXJyYXkgaXMgZGVzY3JpYmVkIGJ5OgorICAgICBzdHJ1Y3Qgc2VtaWRfZHMKKyAgICAgICBzdHJ1Y3QgaXBjX3Blcm0gc2VtX3Blcm07CisgICAgICAgdGltZV90ICAgICAgICAgIHNlbV9vdGltZTsgICAgICAvKiBsYXN0IHNlbW9wIHRpbWUgKi8KKyAgICAgICB0aW1lX3QgICAgICAgICAgc2VtX2N0aW1lOyAgICAgIC8qIGxhc3QgY2hhbmdlIHRpbWUgKi8KKyAgICAgICBzdHJ1Y3Qgd2FpdF9xdWV1ZSAqZXZlbnRuOwkgIC8qIHdhaXQgZm9yIGEgc2VtdmFsIHRvIGluY3JlYXNlICovCisgICAgICAgc3RydWN0IHdhaXRfcXVldWUgKmV2ZW50ejsgICAgICAvKiB3YWl0IGZvciBhIHNlbXZhbCB0byBiZWNvbWUgMCAqLworICAgICAgIHN0cnVjdCBzZW1fdW5kbyAgKnVuZG87ICAgICAgICAgLyogdW5kbyBlbnRyaWVzICovCisgICAgICAgdXNob3J0ICAgICAgICAgIHNlbV9uc2VtczsgICAgICAvKiBuby4gb2Ygc2VtYXBob3JlcyBpbiBhcnJheSAqLworCitFYWNoIHNlbWFwaG9yZSBpcyBkZXNjcmliZWQgaW50ZXJuYWxseSBieSA6CisgICAgIHN0cnVjdCBzZW0KKyAgICAgICBzaG9ydCAgIHNlbXBpZDsgICAgICAgICAvKiBwaWQgb2YgbGFzdCBzZW1vcCgpICovCisgICAgICAgdXNob3J0ICBzZW12YWw7ICAgICAgICAgLyogY3VycmVudCB2YWx1ZSAqLworICAgICAgIHVzaG9ydCAgc2VtbmNudDsgICAgICAgIC8qIG51bSBwcm9jcyBhd2FpdGluZyBpbmNyZWFzZSBpbiBzZW12YWwgKi8KKyAgICAgICB1c2hvcnQgIHNlbXpjbnQ7ICAgICAgICAvKiBudW0gcHJvY3MgYXdhaXRpbmcgc2VtdmFsID0gMCAqLworCisqIE1lbnU6CisKKyogc2VtZ2V0OjoKKyogc2Vtb3A6OgorKiBzZW1jdGw6OgorKiBzZW1saW1pdHM6OiBMaW1pdHMgaW1wb3NlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uLgorCisfCitGaWxlOiBpcGMuaW5mbywgIE5vZGU6IHNlbWdldCwgIE5leHQ6IHNlbW9wLCAgUHJldjogU2VtYXBob3JlcywgIFVwOiBTZW1hcGhvcmVzCisKKzEuNi4xIHNlbWdldAorLS0tLS0tLS0tLS0tCisKK0Egc2VtYXBob3JlIGFycmF5IGlzIGFsbG9jYXRlZCBieSBhIHNlbWdldCBzeXN0ZW0gY2FsbDoKKworICAgICBzZW1pZCA9IHNlbWdldCAoa2V5X3Qga2V5LCBpbnQgbnNlbXMsIGludCBzZW1mbGcpOworCisgICAqIGBrZXknIDogYW4gaW50ZWdlciB1c3VhbGx5IGdvdCBmcm9tIGBmdG9rJyBvciBJUENfUFJJVkFURQorCisgICAqIGBuc2VtcycgOgorICAgICAgICAgICMgb2Ygc2VtYXBob3JlcyBpbiBhcnJheSAoMCA8PSBuc2VtcyA8PSBTRU1NU0wgPD0gU0VNTU5TKQorCisgICAgICAgICAgMCA9PiBkb250IGNhcmUgY2FuIGJlIHVzZWQgd2hlbiBub3QgY3JlYXRpbmcgdGhlIHJlc291cmNlLgorICAgICAgICAgIElmIHN1Y2Nlc3NmdWwgeW91IGFsd2F5cyBnZXQgYWNjZXNzIHRvIHRoZSBlbnRpcmUgYXJyYXkKKyAgICAgICAgICBhbnl3YXkuCisKKyAgICogc2VtZmxnIDoKKyAgICAgICAgICBJUENfQ1JFQVQgdXNlZCB0byBjcmVhdGUgYSBuZXcgcmVzb3VyY2UKKworICAgICAgICAgIElQQ19FWENMIHVzZWQgd2l0aCBJUENfQ1JFQVQgdG8gZW5zdXJlIGZhaWx1cmUgaWYgdGhlCisgICAgICAgICAgcmVzb3VyY2UgZXhpc3RzLgorCisgICAgICAgICAgcnd4cnd4cnd4ICBhY2Nlc3MgcGVybWlzc2lvbnMuCisKKyAgICogcmV0dXJucyA6IHNlbWlkIG9uIHN1Y2Nlc3MuIC0xIG9uIGZhaWx1cmUuCisKKyAgIEFuIGFycmF5IG9mIG5zZW1zIHNlbWFwaG9yZXMgaXMgYWxsb2NhdGVkIGlmIHRoZXJlIGlzIG5vIHJlc291cmNlCitjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBrZXkuIFRoZSBhY2Nlc3MgcGVybWlzc2lvbnMgc3BlY2lmaWVkIGFyZQordGhlbiBjb3BpZWQgaW50byB0aGUgYHNlbV9wZXJtJyBzdHJ1Y3QgZm9yIHRoZSBhcnJheSBhbG9uZyB3aXRoIHRoZQordXNlci1pZCBldGMuIFRoZSB1c2VyIG11c3QgdXNlIHRoZSBJUENfQ1JFQVQgZmxhZyBvciBrZXkgPSBJUENfUFJJVkFURQoraWYgYSBuZXcgcmVzb3VyY2UgaXMgdG8gYmUgY3JlYXRlZC4KKworRXJyb3JzOgorRUlOVkFMIDogbnNlbXMgbm90IGluIGFib3ZlIHJhbmdlIChhbGxvY2F0ZSkuCituc2VtcyBncmVhdGVyIHRoYW4gbnVtYmVyIGluIGFycmF5IChwcm9jdXJlKS4KK0VFWElTVCA6IChhbGxvY2F0ZSkgSVBDX0NSRUFUIHwgSVBDX0VYQ0wgc3BlY2lmaWVkIGFuZCByZXNvdXJjZSBleGlzdHMuCitFSURSTSAgOiAocHJvY3VyZSkgVGhlIHJlc291cmNlIHdhcyByZW1vdmVkLgorRU5PTUVNIDogY291bGQgbm90IGFsbG9jYXRlIHNwYWNlIGZvciBzZW1hcGhvcmUgYXJyYXkuCitFTk9TUEMgOiBObyBhcnJheXMgYXZhaWxhYmxlIChTRU1NTkkpLCB0b28gZmV3IHNlbWFwaG9yZXMgYXZhaWxhYmxlCisoU0VNTU5TKS4KK0VOT0VOVCA6IFJlc291cmNlIGRvZXMgbm90IGV4aXN0IGFuZCBJUENfQ1JFQVQgbm90IHNwZWNpZmllZC4KK0VBQ0NFUyA6IChwcm9jdXJlKSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIGZvciBzcGVjaWZpZWQgYWNjZXNzLgorCisfCitGaWxlOiBpcGMuaW5mbywgIE5vZGU6IHNlbW9wLCAgTmV4dDogc2VtY3RsLCAgUHJldjogc2VtZ2V0LCAgVXA6IFNlbWFwaG9yZXMKKworMS42LjIgc2Vtb3AKKy0tLS0tLS0tLS0tCisKK09wZXJhdGlvbnMgb24gc2VtYXBob3JlIGFycmF5cyBhcmUgcGVyZm9ybWVkIGJ5IGNhbGxpbmcgc2Vtb3AgOgorCisgICAgIGludCBzZW1vcCAoaW50IHNlbWlkLCBzdHJ1Y3Qgc2VtYnVmICpzb3BzLCB1bnNpZ25lZCBuc29wcyk7CisKKyAgICogc2VtaWQgOiBpZCBvYnRhaW5lZCBieSBhIGNhbGwgdG8gc2VtZ2V0LgorCisgICAqIHNvcHMgOiBhcnJheSBvZiBzZW1hcGhvcmUgb3BlcmF0aW9ucy4KKworICAgKiBuc29wcyA6IG51bWJlciBvZiBvcGVyYXRpb25zIGluIGFycmF5ICgwIDwgbnNvcHMgPCBTRU1PUE0pLgorCisgICAqIHJldHVybnMgOiBzZW12YWwgZm9yIGxhc3Qgb3BlcmF0aW9uLiAtMSBvbiBmYWlsdXJlLgorCitPcGVyYXRpb25zIGFyZSBkZXNjcmliZWQgYnkgYSBzdHJ1Y3R1cmUgc2VtYnVmOgorICAgICBzdHJ1Y3Qgc2VtYnVmCisgICAgICAgICB1c2hvcnQgIHNlbV9udW07ICAgICAgICAvKiBzZW1hcGhvcmUgaW5kZXggaW4gYXJyYXkgKi8KKyAgICAgICAgIHNob3J0ICAgc2VtX29wOyAgICAgICAgIC8qIHNlbWFwaG9yZSBvcGVyYXRpb24gKi8KKyAgICAgICAgIHNob3J0ICAgc2VtX2ZsZzsgICAgICAgIC8qIG9wZXJhdGlvbiBmbGFncyAqLworCisgICBUaGUgdmFsdWUgYHNlbV9vcCcgaXMgdG8gYmUgYWRkZWQgKHNpZ25lZCkgdG8gdGhlIGN1cnJlbnQgdmFsdWUKK3NlbXZhbCBvZiB0aGUgc2VtYXBob3JlIHdpdGggaW5kZXggc2VtX251bSAoMCAuLiBuc2VtcyAtMSkgaW4gdGhlIHNldC4KK0ZsYWdzIHJlY29nbml6ZWQgaW4gc2VtX2ZsZyBhcmUgSVBDX05PV0FJVCBhbmQgU0VNX1VORE8uCisKK1R3byBraW5kcyBvZiBvcGVyYXRpb25zIGNhbiByZXN1bHQgaW4gd2FpdDoKKyAgMS4gSWYgc2VtX29wIGlzIDAgKHJlYWQgb3BlcmF0aW9uKSBhbmQgc2VtdmFsIGlzIG5vbi16ZXJvLCB0aGUgcHJvY2VzcworICAgICBzbGVlcHMgb24gYSBxdWV1ZSB3YWl0aW5nIGZvciBzZW12YWwgdG8gYmVjb21lIHplcm8gb3IgcmV0dXJucyB3aXRoCisgICAgIGVycm9yIEVBR0FJTiBpZiAoSVBDX05PV0FJVCB8IHNlbV9mbGcpIGlzIHRydWUuCisKKyAgMi4gSWYgKHNlbV9vcCA8IDApIGFuZCAoc2VtdmFsICsgc2VtX29wIDwgMCksIHRoZSBwcm9jZXNzIGVpdGhlcgorICAgICBzbGVlcHMgb24gYSBxdWV1ZSB3YWl0aW5nIGZvciBzZW12YWwgdG8gaW5jcmVhc2Ugb3IgcmV0dXJucyB3aXRoCisgICAgIGVycm9yIEVBR0FJTiBpZiAoc2VtX2ZsZyAmIElQQ19OT1dBSVQpIGlzIHRydWUuCisKKyAgIFRoZSBhcnJheSBzb3BzIGlzIGZpcnN0IHJlYWQgaW4gYW5kIHByZWxpbWluYXJ5IGNoZWNrcyBwZXJmb3JtZWQgb24KK3RoZSBhcmd1bWVudHMuIFRoZSBvcGVyYXRpb25zIGFyZSBwYXJzZWQgdG8gZGV0ZXJtaW5lIGlmIGFueSBvZiB0aGVtCituZWVkcyB3cml0ZSBwZXJtaXNzaW9ucyBvciByZXF1ZXN0cyBhbiB1bmRvIG9wZXJhdGlvbi4KKworICAgVGhlIG9wZXJhdGlvbnMgYXJlIHRoZW4gdHJpZWQgYW5kIHRoZSBwcm9jZXNzIHNsZWVwcyBpZiBhbnkgb3BlcmF0aW9uCit0aGF0IGRvZXMgbm90IHNwZWNpZnkgSVBDX05PV0FJVCBjYW5ub3QgZ28gdGhyb3VnaC4gSWYgYSBwcm9jZXNzIHNsZWVwcworaXQgcmVwZWF0cyB0aGVzZSBjaGVja3Mgb24gd2FraW5nIHVwLiBJZiBhbnkgb3BlcmF0aW9uIHRoYXQgcmVxdWVzdHMKK0lQQ19OT1dBSVQsIGNhbm5vdCBnbyB0aHJvdWdoIGF0IGFueSBzdGFnZSwgdGhlIGNhbGwgcmV0dXJucyB3aXRoIGVycm5vCitzZXQgdG8gRUFHQUlOLgorCisgICBGaW5hbGx5LCBvcGVyYXRpb25zIGFyZSBjb21taXR0ZWQgd2hlbiBhbGwgZ28gdGhyb3VnaCB3aXRob3V0IGFuCitpbnRlcnZlbmluZyBzbGVlcC4gUHJvY2Vzc2VzIHdhaXRpbmcgb24gdGhlIHplcm9fcXVldWUgb3IKK2luY3JlbWVudF9xdWV1ZSBhcmUgYXdha2VuZWQgaWYgYW55IG9mIHRoZSBzZW12YWwncyBiZWNvbWVzIHplcm8gb3IgaXMKK2luY3JlbWVudGVkIHJlc3BlY3RpdmVseS4KKworRXJyb3JzOgorRTJCSUcgIDogbnNvcHMgPiBTRU1PUE0uCitFQUNDRVMgOiBEbyBub3QgaGF2ZSBwZXJtaXNzaW9uIGZvciByZXF1ZXN0ZWQgKHJlYWQvYWx0ZXIpIGFjY2Vzcy4KK0VBR0FJTiA6IEFuIG9wZXJhdGlvbiB3aXRoIElQQ19OT1dBSVQgc3BlY2lmaWVkIGNvdWxkIG5vdCBnbyB0aHJvdWdoLgorRUZBVUxUIDogVGhlIGFycmF5IHNvcHMgaXMgbm90IGFjY2Vzc2libGUuCitFRkJJRyAgOiBBbiBvcGVyYXRpb24gaGFkIHNlbW51bSA+PSBuc2Vtcy4KK0VJRFJNICA6IFRoZSByZXNvdXJjZSB3YXMgcmVtb3ZlZC4KK0VJTlRSICA6IFRoZSBwcm9jZXNzIHdhcyBpbnRlcnJ1cHRlZCBvbiBpdHMgd2F5IHRvIGEgd2FpdCBxdWV1ZS4KK0VJTlZBTCA6IG5zb3BzIGlzIDAsIHNlbWlkIDwgMCBvciB1bnVzZWQuCitFTk9NRU0gOiBTRU1fVU5ETyByZXF1ZXN0ZWQuIENvdWxkIG5vdCBhbGxvY2F0ZSBzcGFjZSBmb3IgdW5kbworc3RydWN0dXJlLgorRVJBTkdFIDogc2VtX29wICsgc2VtdmFsID4gU0VNVk1YIGZvciBzb21lIG9wZXJhdGlvbi4KKworHworRmlsZTogaXBjLmluZm8sICBOb2RlOiBzZW1jdGwsICBOZXh0OiBzZW1saW1pdHMsICBQcmV2OiBzZW1vcCwgIFVwOiBTZW1hcGhvcmVzCisKKzEuNi4zIHNlbWN0bAorLS0tLS0tLS0tLS0tCisKKyAgICAgaW50IHNlbWN0bCAoaW50IHNlbWlkLCBpbnQgc2VtbnVtLCBpbnQgY21kLCB1bmlvbiBzZW11biBhcmcpOworCisgICAqIHNlbWlkIDogaWQgb2J0YWluZWQgYnkgYSBjYWxsIHRvIHNlbWdldC4KKworICAgKiBjbWQgOgorICAgICAgICAgIEdFVFBJRCAgcmV0dXJuIHBpZCBmb3IgdGhlIHByb2Nlc3MgdGhhdCBleGVjdXRlZCB0aGUgbGFzdAorICAgICAgICAgIHNlbW9wLgorCisgICAgICAgICAgR0VUVkFMICByZXR1cm4gc2VtdmFsIG9mIHNlbWFwaG9yZSB3aXRoIGluZGV4IHNlbW51bS4KKworICAgICAgICAgIEdFVE5DTlQgcmV0dXJuIG51bWJlciBvZiBwcm9jZXNzZXMgd2FpdGluZyBmb3Igc2VtdmFsIHRvCisgICAgICAgICAgaW5jcmVhc2UuCisKKyAgICAgICAgICBHRVRaQ05UIHJldHVybiBudW1iZXIgb2YgcHJvY2Vzc2VzIHdhaXRpbmcgZm9yIHNlbXZhbCB0bworICAgICAgICAgIGJlY29tZSAwCisKKyAgICAgICAgICBTRVRWQUwgIHNldCBzZW12YWwgPSBhcmcudmFsLgorCisgICAgICAgICAgR0VUQUxMICByZWFkIGFsbCBzZW12YWwncyBpbnRvIGFyZy5hcnJheS4KKworICAgICAgICAgIFNFVEFMTCAgc2V0IGFsbCBzZW12YWwncyB3aXRoIHZhbHVlcyBnaXZlbiBpbiBhcmcuYXJyYXkuCisKKyAgICogcmV0dXJucyA6IDAgb24gc3VjY2VzcyBvciBhcyBnaXZlbiBhYm92ZS4gLTEgb24gZmFpbHVyZS4KKworICAgVGhlIGZpcnN0IDQgb3BlcmF0ZSBvbiB0aGUgc2VtYXBob3JlIHdpdGggaW5kZXggc2VtbnVtIGluIHRoZSBzZXQuCitUaGUgbGFzdCB0d28gb3BlcmF0ZSBvbiBhbGwgc2VtYXBob3JlcyBpbiB0aGUgc2V0LgorCisgICBgYXJnJyBpcyBhIHVuaW9uIDoKKyAgICAgdW5pb24gc2VtdW4KKyAgICAgICAgIGludCB2YWw7ICAgICAgICAgICAgICAgdmFsdWUgZm9yIFNFVFZBTC4KKyAgICAgICAgIHN0cnVjdCBzZW1pZF9kcyAqYnVmOyAgYnVmZmVyIGZvciBJUENfU1RBVCBhbmQgSVBDX1NFVC4KKyAgICAgICAgIHVzaG9ydCAqYXJyYXk7ICAgICAgICAgYXJyYXkgZm9yIEdFVEFMTCBhbmQgU0VUQUxMCisKKyAgICogSVBDX1NFVCwgU0VUVkFMLCBTRVRBTEwgOiBzZW1fY3RpbWUgaXMgdXBkYXRlZC4KKworICAgKiBTRVRWQUwsIFNFVEFMTCA6IFVuZG8gZW50cmllcyBhcmUgY2xlYXJlZCBmb3IgYWx0ZXJlZCBzZW1hcGhvcmVzIGluCisgICAgIGFsbCBwcm9jZXNzZXMuIFByb2Nlc3NlcyBzbGVlcGluZyBvbiB0aGUgd2FpdCBxdWV1ZXMgYXJlIGF3YWtlbmVkCisgICAgIGlmIGEgc2VtdmFsIGJlY29tZXMgMCBvciBpbmNyZWFzZXMuCisKKyAgICogSVBDX1NFVCA6IHNlbV9wZXJtLnVpZCwgc2VtX3Blcm0uZ2lkLCBzZW1fcGVybS5tb2RlIGFyZSB1cGRhdGVkCisgICAgIGZyb20gdXNlciBzdXBwbGllZCB2YWx1ZXMuCisKK0Vycm9yczogRUFDQ0VTIDogZG8gbm90IGhhdmUgcGVybWlzc2lvbiBmb3Igc3BlY2lmaWVkIGFjY2Vzcy4KK0VGQVVMVCA6IGFyZyBpcyBub3QgYWNjZXNzaWJsZS4KK0VJRFJNICA6IFRoZSByZXNvdXJjZSB3YXMgcmVtb3ZlZC4KK0VJTlZBTCA6IHNlbWlkIDwgMCBvciBzZW1udW0gPCAwIG9yIHNlbW51bSA+PSBuc2Vtcy4KK0VQRVJNICA6IElQQ19STUlELCBJUENfU0VUIC4uLiBub3QgY3JlYXRvciwgb3duZXIgb3Igc3VwZXItdXNlci4KK0VSQU5HRSA6IGFyZy5hcnJheVtpXS5zZW12YWwgPiBTRU1WTVggb3IgPCAwIGZvciBzb21lIGkuCisKKx8KK0ZpbGU6IGlwYy5pbmZvLCAgTm9kZTogc2VtbGltaXRzLCAgTmV4dDogU2hhcmVkIE1lbW9yeSwgIFByZXY6IHNlbWN0bCwgIFVwOiBTZW1hcGhvcmVzCisKKzEuNi40IExpbWl0cyBvbiBTZW1hcGhvcmUgUmVzb3VyY2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTaXplb2YgdmFyaW91cyBzdHJ1Y3R1cmVzOgorICAgICBzZW1pZF9kcyAgICA0NCAgIC8qIDEgcGVyIHNlbWFwaG9yZSBhcnJheSAuLiBkeW5hbWljICovCisgICAgIHNlbSAgICAgICAgICA4ICAgLyogMSBmb3IgZWFjaCBzZW1hcGhvcmUgaW4gc3lzdGVtIC4uIGR5bmFtaWMgKi8KKyAgICAgc2VtYnVmICAgICAgIDYgICAvKiBhbGxvY2F0ZWQgYnkgdXNlciAqLworICAgICBzZW1fdW5kbyAgICAyMCAgIC8qIDEgZm9yIGVhY2ggdW5kbyByZXF1ZXN0IC4uIGR5bmFtaWMgKi8KKworTGltaXRzIDoKKyAgICogU0VNVk1YICAzMjc2NyAgc2VtYXBob3JlIG1heGltdW0gdmFsdWUgKHNob3J0KS4KKworICAgKiBTRU1NTkkgIG51bWJlciBvZiBzZW1hcGhvcmUgaWRlbnRpZmllcnMgKG9yIGFycmF5cykgc3lzdGVtCisgICAgIHdpZGUuLi5wb2xpY3kuCisKKyAgICogU0VNTVNMICBtYXhpbXVtICBudW1iZXIgIG9mIHNlbWFwaG9yZXMgcGVyIGlkLiAgMSBzZW1pZF9kcyBwZXIKKyAgICAgYXJyYXksIDEgc3RydWN0IHNlbSBwZXIgc2VtYXBob3JlID0+IFNFTU1TTCA9ICAoUEFHRV9TSVpFIC0KKyAgICAgc2l6ZW9mKHNlbWlkX2RzKSkgLyBzaXplb2Yoc2VtKS4gIEltcGxlbWVudGF0aW9uIG1heGltdW0gU0VNTVNMID0KKyAgICAgNTAwLgorCisgICAqIFNFTU1OUyAgbWF4aW11bSBudW1iZXIgb2Ygc2VtYXBob3JlcyBzeXN0ZW0gd2lkZSAuLi4gcG9saWN5LgorICAgICBTZXR0aW5nIFNFTU1OUyA+PSBTRU1NU0wqU0VNTU5JIG1ha2VzIGl0IGlycmVsZXZlbnQuCisKKyAgICogU0VNT1BNIAlNYXhpbXVtIG51bWJlciBvZiBvcGVyYXRpb25zIGluIG9uZSBzZW1vcAorICAgICBjYWxsLi4ucG9saWN5LgorCitVbnVzZWQgb3IgdW5pbXBsZW1lbnRlZDoKK1NFTUFFTSAgYWRqdXN0IG9uIGV4aXQgbWF4IHZhbHVlLgorU0VNTU5VICBudW1iZXIgb2YgdW5kbyBzdHJ1Y3R1cmVzIHN5c3RlbS13aWRlLgorU0VNVU1FICBtYXhpbXVtIG51bWJlciBvZiB1bmRvIGVudHJpZXMgcGVyIHByb2Nlc3MuCisKKx8KK0ZpbGU6IGlwYy5pbmZvLCAgTm9kZTogU2hhcmVkIE1lbW9yeSwgIE5leHQ6IHNobWdldCwgIFByZXY6IHNlbWxpbWl0cywgIFVwOiBUb3AKKworMS43IFNoYXJlZCBNZW1vcnkKKz09PT09PT09PT09PT09PT09CisKK1NoYXJlZCBtZW1vcnkgaXMgZGlzdGluY3QgZnJvbSB0aGUgc2hhcmluZyBvZiByZWFkLW9ubHkgY29kZSBwYWdlcyBvcgordGhlIHNoYXJpbmcgb2YgdW5hbHRlcmVkIGRhdGEgcGFnZXMgdGhhdCBpcyBhdmFpbGFibGUgZHVlIHRvIHRoZQorY29weS1vbi13cml0ZSBtZWNoYW5pc20uIFRoZSBlc3NlbnRpYWwgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSBzaGFyZWQKK3BhZ2VzIGFyZSBkaXJ0eSAoaW4gdGhlIGNhc2Ugb2YgU2hhcmVkIG1lbW9yeSkgYW5kIGNhbiBiZSBtYWRlIHRvCithcHBlYXIgYXQgYSBjb252ZW5pZW50IGxvY2F0aW9uIGluIHRoZSBwcm9jZXNzJyBhZGRyZXNzIHNwYWNlLgorCitBIHNoYXJlZCBzZWdtZW50IGlzIGRlc2NyaWJlZCBieSA6CisgICAgIHN0cnVjdCBzaG1pZF9kcworICAgICAgICAgc3RydWN0ICBpcGNfcGVybSBzaG1fcGVybTsKKyAgICAgICAgIGludCAgICAgc2htX3NlZ3N6OyAgICAgICAgICAgICAgLyogc2l6ZSBvZiBzZWdtZW50IChieXRlcykgKi8KKyAgICAgICAgIHRpbWVfdCAgc2htX2F0aW1lOyAgICAgICAgICAgICAgLyogbGFzdCBhdHRhY2ggdGltZSAqLworICAgICAgICAgdGltZV90ICBzaG1fZHRpbWU7ICAgICAgICAgICAgICAvKiBsYXN0IGRldGFjaCB0aW1lICovCisgICAgICAgICB0aW1lX3QgIHNobV9jdGltZTsgICAgICAgICAgICAgIC8qIGxhc3QgY2hhbmdlIHRpbWUgKi8KKyAgICAgICAgIHVsb25nICAgKnNobV9wYWdlczsgICAgICAgICAgICAgLyogaW50ZXJuYWwgcGFnZSB0YWJsZSAqLworICAgICAgICAgdXNob3J0ICBzaG1fY3BpZDsgICAgICAgICAgICAgICAvKiBwaWQsIGNyZWF0b3IgKi8KKyAgICAgICAgIHVzaG9ydCAgc2htX2xwaWQ7ICAgICAgICAgICAgICAgLyogcGlkLCBsYXN0IG9wZXJhdGlvbiAqLworICAgICAgICAgc2hvcnQgICBzaG1fbmF0dGNoOyAgICAgICAgICAgICAvKiBuby4gb2YgY3VycmVudCBhdHRhY2hlcyAqLworCisgICBBIHNobWdldCBhbGxvY2F0ZXMgYSBzaG1pZF9kcyBhbmQgYW4gaW50ZXJuYWwgcGFnZSB0YWJsZS4gQSBzaG1hdAorbWFwcyB0aGUgc2VnbWVudCBpbnRvIHRoZSBwcm9jZXNzJyBhZGRyZXNzIHNwYWNlIHdpdGggcG9pbnRlcnMgaW50byB0aGUKK2ludGVybmFsIHBhZ2UgdGFibGUgYW5kIHRoZSBhY3R1YWwgcGFnZXMgYXJlIGZhdWx0ZWQgaW4gYXMgbmVlZGVkLiBUaGUKK21lbW9yeSBhc3NvY2lhdGVkIHdpdGggdGhlIHNlZ21lbnQgbXVzdCBiZSBleHBsaWNpdGx5IGRlc3Ryb3llZCBieQorY2FsbGluZyBzaG1jdGwgd2l0aCBJUENfUk1JRC4KKworKiBNZW51OgorCisqIHNobWdldDo6CisqIHNobWF0OjoKKyogc2htZHQ6OgorKiBzaG1jdGw6OgorKiBzaG1saW1pdHM6OiBMaW1pdHMgaW1wb3NlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uLgorCisfCitGaWxlOiBpcGMuaW5mbywgIE5vZGU6IHNobWdldCwgIE5leHQ6IHNobWF0LCAgUHJldjogU2hhcmVkIE1lbW9yeSwgIFVwOiBTaGFyZWQgTWVtb3J5CisKKzEuNy4xIHNobWdldAorLS0tLS0tLS0tLS0tCisKK0Egc2hhcmVkIG1lbW9yeSBzZWdtZW50IGlzIGFsbG9jYXRlZCBieSBhIHNobWdldCBzeXN0ZW0gY2FsbDoKKworICAgICBpbnQgc2htZ2V0KGtleV90IGtleSwgaW50IHNpemUsIGludCBzaG1mbGcpOworCisgICAqIGtleSA6IGFuIGludGVnZXIgdXN1YWxseSBnb3QgZnJvbSBgZnRvaycgb3IgSVBDX1BSSVZBVEUKKworICAgKiBzaXplIDogc2l6ZSBvZiB0aGUgc2VnbWVudCBpbiBieXRlcyAoU0hNTUlOIDw9IHNpemUgPD0gU0hNTUFYKS4KKworICAgKiBzaG1mbGcgOgorICAgICAgICAgIElQQ19DUkVBVCB1c2VkIHRvIGNyZWF0ZSBhIG5ldyByZXNvdXJjZQorCisgICAgICAgICAgSVBDX0VYQ0wgdXNlZCB3aXRoIElQQ19DUkVBVCB0byBlbnN1cmUgZmFpbHVyZSBpZiB0aGUKKyAgICAgICAgICByZXNvdXJjZSBleGlzdHMuCisKKyAgICAgICAgICByd3hyd3hyd3ggIGFjY2VzcyBwZXJtaXNzaW9ucy4KKworICAgKiByZXR1cm5zIDogc2htaWQgb24gc3VjY2Vzcy4gLTEgb24gZmFpbHVyZS4KKworICAgQSBkZXNjcmlwdG9yIGZvciBhIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBpcyBhbGxvY2F0ZWQgaWYgdGhlcmUgaXNuJ3QKK29uZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBrZXkuIFRoZSBhY2Nlc3MgcGVybWlzc2lvbnMgc3BlY2lmaWVkIGFyZQordGhlbiBjb3BpZWQgaW50byB0aGUgYHNobV9wZXJtJyBzdHJ1Y3QgZm9yIHRoZSBzZWdtZW50IGFsb25nIHdpdGggdGhlCit1c2VyLWlkIGV0Yy4gVGhlIHVzZXIgbXVzdCB1c2UgdGhlIElQQ19DUkVBVCBmbGFnIG9yIGtleSA9IElQQ19QUklWQVRFCit0byBhbGxvY2F0ZSBhIG5ldyBzZWdtZW50LgorCisgICBJZiB0aGUgc2VnbWVudCBhbHJlYWR5IGV4aXN0cywgdGhlIGFjY2VzcyBwZXJtaXNzaW9ucyBhcmUgdmVyaWZpZWQsCithbmQgYSBjaGVjayBpcyBtYWRlIHRvIHNlZSB0aGF0IGl0IGlzIG5vdCBtYXJrZWQgZm9yIGRlc3RydWN0aW9uLgorCisgICBgc2l6ZScgaXMgZWZmZWN0aXZlbHkgcm91bmRlZCB1cCB0byBhIG11bHRpcGxlIG9mIFBBR0VfU0laRSBhcyBzaGFyZWQKK21lbW9yeSBpcyBhbGxvY2F0ZWQgaW4gcGFnZXMuCisKK0Vycm9yczoKK0VJTlZBTCA6IChhbGxvY2F0ZSkgU2l6ZSBub3QgaW4gcmFuZ2Ugc3BlY2lmaWVkIGFib3ZlLgorKHByb2N1cmUpIFNpemUgZ3JlYXRlciB0aGFuIHNpemUgb2Ygc2VnbWVudC4KK0VFWElTVCA6IChhbGxvY2F0ZSkgSVBDX0NSRUFUIHwgSVBDX0VYQ0wgc3BlY2lmaWVkIGFuZCByZXNvdXJjZSBleGlzdHMuCitFSURSTSAgOiAocHJvY3VyZSkgVGhlIHJlc291cmNlIGlzIG1hcmtlZCBkZXN0cm95ZWQgb3Igd2FzIHJlbW92ZWQuCitFTk9TUEMgOiAoYWxsb2NhdGUpIEFsbCBpZCdzIGFyZSB0YWtlbiAobWF4IG9mIFNITU1OSSBpZCdzIHN5c3RlbS13aWRlKS4KK0FsbG9jYXRpbmcgYSBzZWdtZW50IG9mIHRoZSByZXF1ZXN0ZWQgc2l6ZSB3b3VsZCBleGNlZWQgdGhlIHN5c3RlbSB3aWRlCitsaW1pdCBvbiB0b3RhbCBzaGFyZWQgbWVtb3J5IChTSE1BTEwpLgorRU5PRU5UIDogKHByb2N1cmUpIFJlc291cmNlIGRvZXMgbm90IGV4aXN0IGFuZCBJUENfQ1JFQVQgbm90IHNwZWNpZmllZC4KK0VBQ0NFUyA6IChwcm9jdXJlKSBEbyBub3QgaGF2ZSBwZXJtaXNzaW9uIGZvciBzcGVjaWZpZWQgYWNjZXNzLgorRU5PTUVNIDogKGFsbG9jYXRlKSBDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBzaG1pZF9kcyBvciBwZ190YWJsZS4KKworHworRmlsZTogaXBjLmluZm8sICBOb2RlOiBzaG1hdCwgIE5leHQ6IHNobWR0LCAgUHJldjogc2htZ2V0LCAgVXA6IFNoYXJlZCBNZW1vcnkKKworMS43LjIgc2htYXQKKy0tLS0tLS0tLS0tCisKK01hcHMgYSBzaGFyZWQgc2VnbWVudCBpbnRvIHRoZSBwcm9jZXNzJyBhZGRyZXNzIHNwYWNlLgorCisgICAgIGNoYXIgKnZpcnRfYWRkcjsKKyAgICAgdmlydF9hZGRyID0gIHNobWF0IChpbnQgc2htaWQsIGNoYXIgKnNobWFkZHIsIGludCBzaG1mbGcpOworCisgICAqIHNobWlkIDogaWQgZ290IGZyb20gY2FsbCB0byBzaG1nZXQuCisKKyAgICogc2htYWRkciA6IHJlcXVlc3RlZCBhdHRhY2ggYWRkcmVzcy4KKyAgICAgSWYgc2htYWRkciBpcyAwIHRoZSBzeXN0ZW0gZmluZHMgYW4gdW5tYXBwZWQgcmVnaW9uLgorICAgICBJZiBhIG5vbi16ZXJvIHZhbHVlIGlzIGluZGljYXRlZCB0aGUgdmFsdWUgbXVzdCBiZSBwYWdlCisgICAgIGFsaWduZWQgb3IgdGhlIHVzZXIgbXVzdCBzcGVjaWZ5IHRoZSBTSE1fUk5EIGZsYWcuCisKKyAgICogc2htZmxnIDoKKyAgICAgU0hNX1JET05MWSA6IHJlcXVlc3QgcmVhZC1vbmx5IGF0dGFjaC4KKyAgICAgU0hNX1JORCA6IGF0dGFjaCBhZGRyZXNzIGlzIHJvdW5kZWQgRE9XTiB0byBhIG11bHRpcGxlIG9mIFNITUxCQS4KKworICAgKiByZXR1cm5zOiB2aXJ0dWFsIGFkZHJlc3Mgb2YgYXR0YWNoZWQgc2VnbWVudC4gLTEgb24gZmFpbHVyZS4KKworICAgV2hlbiBzaG1hZGRyIGlzIDAsIHRoZSBhdHRhY2ggYWRkcmVzcyBpcyBkZXRlcm1pbmVkIGJ5IGZpbmRpbmcgYW4KK3VubWFwcGVkIHJlZ2lvbiBpbiB0aGUgYWRkcmVzcyByYW5nZSAxRyB0byAxLjVHLCBzdGFydGluZyBhdCAxLjVHIGFuZAorY29taW5nIGRvd24gZnJvbSB0aGVyZS4gVGhlIGFsZ29yaXRobSBpcyB2ZXJ5IHNpbXBsZSBzbyB5b3UgYXJlCitlbmNvdXJhZ2VkIHRvIGF2b2lkIG5vbi1zcGVjaWZpYyBhdHRhY2hlcy4KKworQWxnb3JpdGhtOgorICAgICBEZXRlcm1pbmUgYXR0YWNoIGFkZHJlc3MgYXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICBDaGVjayByZWdpb24gKHNobWFkZHIsIHNobWFkZHIgKyBzaXplKSBpcyBub3QgbWFwcGVkIGFuZCBhbGxvY2F0ZQorICAgICBwYWdlIHRhYmxlcyAodW5kb2N1bWVudGVkIFNITV9SRU1BUCBmbGFnISkuCisgICAgIE1hcCB0aGUgcmVnaW9uIGJ5IHNldHRpbmcgdXAgcG9pbnRlcnMgaW50byB0aGUgaW50ZXJuYWwgcGFnZSB0YWJsZS4KKyAgICAgQWRkIGEgZGVzY3JpcHRvciBmb3IgdGhlIGF0dGFjaCB0byB0aGUgdGFzayBzdHJ1Y3QgZm9yIHRoZSBwcm9jZXNzLgorICAgICBgc2htX25hdHRjaCcsIGBzaG1fbHBpZCcsIGBzaG1fYXRpbWUnIGFyZSB1cGRhdGVkLgorCitOb3RlczoKK1RoZSBgYnJrJyB2YWx1ZSBpcyBub3QgYWx0ZXJlZC4gIFRoZSBzZWdtZW50IGlzIGF1dG9tYXRpY2FsbHkgZGV0YWNoZWQKK3doZW4gdGhlIHByb2Nlc3MgZXhpdHMuICBUaGUgc2FtZSBzZWdtZW50IG1heSBiZSBhdHRhY2hlZCBhcyByZWFkLW9ubHkKK29yIHJlYWQtd3JpdGUgYW5kIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBwcm9jZXNzJyBhZGRyZXNzIHNwYWNlLiAgQQorc2htYXQgY2FuIHN1Y2NlZWQgb24gYSBzZWdtZW50IG1hcmtlZCBmb3IgZGVzdHJ1Y3Rpb24uICBUaGUgcmVxdWVzdCBmb3IKK2EgcGFydGljdWxhciB0eXBlIG9mIGF0dGFjaCBpcyBtYWRlIHVzaW5nIHRoZSBTSE1fUkRPTkxZIGZsYWcuICBUaGVyZQoraXMgbm8gbm90aW9uIG9mIGEgd3JpdGUtb25seSBhdHRhY2guIFRoZSByZXF1ZXN0ZWQgYXR0YWNoIHBlcm1pc3Npb25zCittdXN0IGZhbGwgd2l0aGluIHRob3NlIGFsbG93ZWQgYnkgYHNobV9wZXJtLm1vZGUnLgorCitFcnJvcnM6CitFQUNDRVMgOiBEbyBub3QgaGF2ZSBwZXJtaXNzaW9uIGZvciByZXF1ZXN0ZWQgYWNjZXNzLgorRUlOVkFMIDogc2htaWQgPCAwIG9yIHVudXNlZCwgc2htYWRkciBub3QgYWxpZ25lZCwgYXR0YWNoIGF0IGJyayBmYWlsZWQuCitFSURSTSAgOiByZXNvdXJjZSB3YXMgcmVtb3ZlZC4KK0VOT01FTSA6IENvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGRlc2NyaXB0b3Igb3IgcGFnZSB0YWJsZXMuCisKKx8KK0ZpbGU6IGlwYy5pbmZvLCAgTm9kZTogc2htZHQsICBOZXh0OiBzaG1jdGwsICBQcmV2OiBzaG1hdCwgIFVwOiBTaGFyZWQgTWVtb3J5CisKKzEuNy4zIHNobWR0CistLS0tLS0tLS0tLQorCisgICAgIGludCBzaG1kdCAoY2hhciAqc2htYWRkcik7CisKKyAgICogc2htYWRkciA6IGF0dGFjaCBhZGRyZXNzIG9mIHNlZ21lbnQgKHJldHVybmVkIGJ5IHNobWF0KS4KKworICAgKiByZXR1cm5zIDogMCBvbiBzdWNjZXNzLiAtMSBvbiBmYWlsdXJlLgorCisgICBBbiBhdHRhY2hlZCBzZWdtZW50IGlzIGRldGFjaGVkIGFuZCBgc2htX25hdHRjaCcgZGVjcmVtZW50ZWQuIFRoZQorb2NjdXBpZWQgcmVnaW9uIGluIHVzZXIgc3BhY2UgaXMgdW5tYXBwZWQuIFRoZSBzZWdtZW50IGlzIGRlc3Ryb3llZCBpZgoraXQgaXMgbWFya2VkIGZvciBkZXN0cnVjdGlvbiBhbmQgYHNobV9uYXR0Y2gnIGlzIDAuICBgc2htX2xwaWQnIGFuZAorYHNobV9kdGltZScgYXJlIHVwZGF0ZWQuCisKK0Vycm9yczoKK0VJTlZBTCA6IE5vIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBhdHRhY2hlZCBhdCBzaG1hZGRyLgorCisfCitGaWxlOiBpcGMuaW5mbywgIE5vZGU6IHNobWN0bCwgIE5leHQ6IHNobWxpbWl0cywgIFByZXY6IHNobWR0LCAgVXA6IFNoYXJlZCBNZW1vcnkKKworMS43LjQgc2htY3RsCistLS0tLS0tLS0tLS0KKworRGVzdHJveXMgYWxsb2NhdGVkIHNlZ21lbnRzLiBSZWFkcy9Xcml0ZXMgdGhlIGNvbnRyb2wgc3RydWN0dXJlcy4KKworICAgICBpbnQgc2htY3RsIChpbnQgc2htaWQsIGludCBjbWQsIHN0cnVjdCBzaG1pZF9kcyAqYnVmKTsKKworICAgKiBzaG1pZCA6IGlkIGdvdCBmcm9tIGNhbGwgdG8gc2htZ2V0LgorCisgICAqIGNtZCA6IElQQ19TVEFULCBJUENfU0VULCBJUENfUk1JRCAoKk5vdGUgc3lzY2FsbHM6OikuCisgICAgICAgICAgSVBDX1NFVCA6IFVzZWQgdG8gc2V0IHRoZSBvd25lciB1aWQsIGdpZCwgYW5kIHNobV9wZXJtcy5tb2RlCisgICAgICAgICAgZmllbGQuCisKKyAgICAgICAgICBJUENfUk1JRCA6IFRoZSBzZWdtZW50IGlzIG1hcmtlZCBkZXN0cm95ZWQuIEl0IGlzIG9ubHkKKyAgICAgICAgICBkZXN0cm95ZWQgb24gdGhlIGxhc3QgZGV0YWNoLgorCisgICAgICAgICAgSVBDX1NUQVQgOiBUaGUgc2htaWRfZHMgc3RydWN0dXJlIGlzIGNvcGllZCBpbnRvIHRoZSB1c2VyCisgICAgICAgICAgYWxsb2NhdGVkIGJ1ZmZlci4KKworICAgKiBidWYgOiB1c2VkIHRvIHJlYWQgKElQQ19TVEFUKSBvciB3cml0ZSAoSVBDX1NFVCkgaW5mb3JtYXRpb24uCisKKyAgICogcmV0dXJucyA6IDAgb24gc3VjY2VzcywgLTEgb24gZmFpbHVyZS4KKworICAgVGhlIHVzZXIgbXVzdCBleGVjdXRlIGFuIElQQ19STUlEIHNobWN0bCBjYWxsIHRvIGZyZWUgdGhlIG1lbW9yeQorYWxsb2NhdGVkIGJ5IHRoZSBzaGFyZWQgc2VnbWVudC4gT3RoZXJ3aXNlIGFsbCB0aGUgcGFnZXMgZmF1bHRlZCBpbgord2lsbCBjb250aW51ZSB0byBsaXZlIGluIG1lbW9yeSBvciBzd2FwLgorCitFcnJvcnM6CitFQUNDRVMgOiBEbyBub3QgaGF2ZSBwZXJtaXNzaW9uIGZvciByZXF1ZXN0ZWQgYWNjZXNzLgorRUZBVUxUIDogYnVmIGlzIG5vdCBhY2Nlc3NpYmxlLgorRUlOVkFMIDogc2htaWQgPCAwIG9yIHVudXNlZC4KK0VJRFJNICA6IGlkZW50aWZpZXIgZGVzdHJveWVkLgorRVBFUk0gIDogbm90IGNyZWF0b3IsIG93bmVyIG9yIHN1cGVyLXVzZXIgKElQQ19TRVQsIElQQ19STUlEKS4KKworHworRmlsZTogaXBjLmluZm8sICBOb2RlOiBzaG1saW1pdHMsICBOZXh0OiBOb3RlcywgIFByZXY6IHNobWN0bCwgIFVwOiBTaGFyZWQgTWVtb3J5CisKKzEuNy41IExpbWl0cyBvbiBTaGFyZWQgTWVtb3J5IFJlc291cmNlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0xpbWl0czoKKyAgICogU0hNTU5JICBtYXggbnVtIG9mIHNoYXJlZCBzZWdtZW50cyBzeXN0ZW0gd2lkZSAuLi4gNDA5Ni4KKworICAgKiBTSE1NQVggIG1heCBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgc2l6ZSAoYnl0ZXMpIC4uLiA0TQorCisgICAqIFNITU1JTiAgbWluIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBzaXplIChieXRlcykuICAxIGJ5dGUgKHRob3VnaAorICAgICBQQUdFX1NJWkUgaXMgdGhlIGVmZmVjdGl2ZSBtaW5pbXVtIHNpemUpLgorCisgICAqIFNITUFMTCAgbWF4IHNoYXJlZCBtZW0gc3lzdGVtIHdpZGUgKGluIHBhZ2VzKSAuLi4gcG9saWN5LgorCisgICAqIFNITUxCQSAgc2VnbWVudCBsb3cgYm91bmRhcnkgYWRkcmVzcyBtdWx0aXBsZS4gIE11c3QgYmUgcGFnZQorICAgICBhbGlnbmVkLiBTSE1MQkEgPSBQQUdFX1NJWkUuCisgICBVbnVzZWQgb3IgdW5pbXBsZW1lbnRlZDoKK1NITVNFRyA6IG1heGltdW0gbnVtYmVyIG9mIHNoYXJlZCBzZWdtZW50cyBwZXIgcHJvY2Vzcy4KKworHworRmlsZTogaXBjLmluZm8sICBOb2RlOiBOb3RlcywgIE5leHQ6IFRvcCwgIFByZXY6IHNobWxpbWl0cywgIFVwOiBUb3AKKworMS44IE1pc2NlbGxhbmVvdXMgTm90ZXMKKz09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBzeXN0ZW0gY2FsbHMgYXJlIG1hcHBlZCBpbnRvIG9uZSAtIGBzeXNfaXBjJy4gVGhpcyBzaG91bGQgYmUKK3RyYW5zcGFyZW50IHRvIHRoZSB1c2VyLgorCisxLjguMSBTZW1hcGhvcmUgYHVuZG8nIHJlcXVlc3RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJlIGlzIG9uZSBzZW1fdW5kbyBzdHJ1Y3R1cmUgYXNzb2NpYXRlZCB3aXRoIGEgcHJvY2VzcyBmb3IgZWFjaAorc2VtYXBob3JlIHdoaWNoIHdhcyBhbHRlcmVkICh3aXRoIGFuIHVuZG8gcmVxdWVzdCkgYnkgdGhlIHByb2Nlc3MuCitgc2VtX3VuZG8nIHN0cnVjdHVyZXMgYXJlIGZyZWVkIG9ubHkgd2hlbiB0aGUgcHJvY2VzcyBleGl0cy4KKworICAgT25lIG1ham9yIGNhdXNlIGZvciB1bmhhcHBpbmVzcyB3aXRoIHRoZSB1bmRvIG1lY2hhbmlzbSBpcyB0aGF0IGl0Citkb2VzIG5vdCBmaXQgaW4gd2l0aCB0aGUgbm90aW9uIG9mIGhhdmluZyBhbiBhdG9taWMgc2V0IG9mIG9wZXJhdGlvbnMKK29uIGFuIGFycmF5LiBUaGUgdW5kbyByZXF1ZXN0cyBmb3IgYW4gYXJyYXkgYW5kIGVhY2ggc2VtYXBob3JlIHRoZXJlaW4KK21heSBoYXZlIGJlZW4gYWNjdW11bGF0ZWQgb3ZlciBtYW55IGBzZW1vcCcgY2FsbHMuIFRodXMgdXNlIHRoZSB1bmRvCittZWNoYW5pc20gd2l0aCBwcml2YXRlIHNlbWFwaG9yZXMgb25seS4KKworICAgU2hvdWxkIHRoZSBwcm9jZXNzIHNsZWVwIGluIGBleGl0JyBvciBzaG91bGQgYWxsIHVuZG8gb3BlcmF0aW9ucyBiZQorYXBwbGllZCB3aXRoIHRoZSBJUENfTk9XQUlUIGZsYWcgaW4gZWZmZWN0PyAgQ3VycmVudGx5ICB0aG9zZSB1bmRvCitvcGVyYXRpb25zIHdoaWNoIGdvIHRocm91Z2ggaW1tZWRpYXRlbHkgYXJlIGFwcGxpZWQgYW5kIHRob3NlIHRoYXQKK3JlcXVpcmUgYSB3YWl0IGFyZSBpZ25vcmVkIHNpbGVudGx5LgorCisxLjguMiBTaGFyZWQgbWVtb3J5LCBgbWFsbG9jJyBhbmQgdGhlIGBicmsnLgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworTm90ZSB0aGF0IHNpbmNlIHRoaXMgc2VjdGlvbiB3YXMgd3JpdHRlbiB0aGUgaW1wbGVtZW50YXRpb24gd2FzIGNoYW5nZWQKK3NvIHRoYXQgbm9uLXNwZWNpZmljIGF0dGFjaGVzIGFyZSBkb25lIGluIHRoZSByZWdpb24gMUcgLSAxLjVHLiBIb3dldmVyCittdWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgc3RpbGwgd29ydGggdGhpbmtpbmcgYWJvdXQgc28gSSBsZWZ0IGl0IGluLgorCisgICBPbiBtYW55IHN5c3RlbXMsIHRoZSBzaGFyZWQgbWVtb3J5IGlzIGFsbG9jYXRlZCBpbiBhIHNwZWNpYWwgcmVnaW9uCitvZiB0aGUgYWRkcmVzcyBzcGFjZSAuLi4gd2F5IHVwIHNvbWV3aGVyZS4gQXMgbWVudGlvbmVkIGVhcmxpZXIsIHRoaXMKK2ltcGxlbWVudGF0aW9uIGF0dGFjaGVzIHNoYXJlZCBzZWdtZW50cyBhdCB0aGUgbG93ZXN0IHBvc3NpYmxlIGFkZHJlc3MuCitUaHVzIGlmIHlvdSBwbGFuIHRvIHVzZSBgbWFsbG9jJywgaXQgaXMgd2lzZSB0byBtYWxsb2MgYSBsYXJnZSBzcGFjZQorYW5kIHRoZW4gcHJvY2VlZCB0byBhdHRhY2ggdGhlIHNoYXJlZCBzZWdtZW50cy4gVGhpcyB3YXkgbWFsbG9jIHNldHMKK3RoZSBicmsgc3VmZmljaWVudGx5IGFib3ZlIHRoZSByZWdpb24gaXQgd2lsbCB1c2UuCisKKyAgIEFsdGVybmF0aXZlbHkgeW91IGNhbiB1c2UgYHNicmsnIHRvIGFkanVzdCB0aGUgYGJyaycgdmFsdWUgYXMgeW91CittYWtlIHNoYXJlZCBtZW1vcnkgYXR0YWNoZXMuIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBub3QgdmVyeSBzbWFydCBhYm91dAorc2VsZWN0aW5nIGF0dGFjaCBhZGRyZXNzZXMuIFVzaW5nIHRoZSBzeXN0ZW0gZGVmYXVsdCBhZGRyZXNzZXMgd2lsbAorcmVzdWx0IGluIGZyYWdtZW50YXRpb24gaWYgZGV0YWNoZXMgZG8gbm90IG9jY3VyIGluIHRoZSByZXZlcnNlCitzZXF1ZW5jZSBhcyBhdHRhY2hlcy4KKworICAgVGFraW5nIGNvbnRyb2wgb2YgdGhlIG1hdHRlciBpcyBwcm9iYWJseSBiZXN0LiBUaGUgcnVsZSBhcHBsaWVkIGlzCit0aGF0IGF0dGFjaGVzIGFyZSBhbGxvd2VkIGluIHVubWFwcGVkIHJlZ2lvbnMgb3RoZXIgdGhhbiBpbiB0aGUgdGV4dAorc3BhY2UgKHNlZSA8YS5vdXQuaD4pLiBBbHNvIHJlbWVtYmVyIHRoYXQgYXR0YWNoIGFkZHJlc3NlcyBhbmQgc2VnbWVudAorc2l6ZXMgYXJlIG11bHRpcGxlcyBvZiBQQUdFX1NJWkUuCisKKyAgIE9uZSBtb3JlIHRyYXAgKEkgcXVvdGUgQnJ1bm8gb24gdGhpcykuIElmIHlvdSB1c2UgbWFsbG9jKCkgdG8gZ2V0CitzcGFjZSBmb3IgeW91ciBzaGFyZWQgbWVtb3J5IChpZS4gdG8gZml4IHRoZSBgYnJrJyksIHlvdSBtdXN0IGVuc3VyZSB5b3UKK2dldCBhbiB1bm1hcHBlZCBhZGRyZXNzIHJhbmdlLiBUaGlzIG1lYW5zIHlvdSBtdXN0IG1hbGxvY2F0ZSBtb3JlIG1lbW9yeQordGhhbiB5b3UgaGFkIGV2ZXIgYWxsb2NhdGVkIGJlZm9yZS4gTWVtb3J5IHJldHVybmVkIGJ5IG1hbGxvYygpLCB1c2VkLAordGhlbiBmcmVlZCBieSBmcmVlKCkgYW5kIHRoZW4gYWdhaW4gcmV0dXJuZWQgYnkgbWFsbG9jIGlzIG5vIGdvb2QuCitOZWl0aGVyIGlzIGNhbGxvY2VkIG1lbW9yeS4KKworICAgTm90ZSB0aGF0IGEgc2hhcmVkIG1lbW9yeSByZWdpb24gcmVtYWlucyBhIHNoYXJlZCBtZW1vcnkgcmVnaW9uIHVudGlsCit5b3UgdW5tYXAgaXQuIEF0dGFjaGluZyBhIHNlZ21lbnQgYXQgdGhlIGBicmsnIGFuZCBjYWxsaW5nIG1hbGxvYyBhZnRlcgordGhhdCB3aWxsIHJlc3VsdCBpbiBhbiBvdmVybGFwIG9mIHdoYXQgbWFsbG9jIHRoaW5rcyBpcyBpdHMgc3BhY2Ugd2l0aAord2hhdCBpcyByZWFsbHkgYSBzaGFyZWQgbWVtb3J5IHJlZ2lvbi4gRm9yIGV4YW1wbGUgaW4gdGhlIGNhc2Ugb2YgYQorcmVhZC1vbmx5IGF0dGFjaCwgeW91IHdpbGwgbm90IGJlIGFibGUgdG8gd3JpdGUgdG8gdGhlIG92ZXJsYXBwZWQKK3BvcnRpb24uCisKKzEuOC4zIEZvcmssIGV4ZWMgYW5kIGV4aXQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworT24gYSBmb3JrLCB0aGUgY2hpbGQgaW5oZXJpdHMgYXR0YWNoZWQgc2hhcmVkIG1lbW9yeSBzZWdtZW50cyBidXQgbm90Cit0aGUgc2VtYXBob3JlIHVuZG8gaW5mb3JtYXRpb24uCisKKyAgIEluIHRoZSBjYXNlIG9mIGFuIGV4ZWMsIHRoZSBhdHRhY2hlZCBzaGFyZWQgc2VnbWVudHMgYXJlIGRldGFjaGVkLgorVGhlIHNlbSB1bmRvIGluZm9ybWF0aW9uIGhvd2V2ZXIgcmVtYWlucyBpbnRhY3QuCisKKyAgIFVwb24gZXhpdCwgYWxsIGF0dGFjaGVkIHNoYXJlZCBtZW1vcnkgc2VnbWVudHMgYXJlIGRldGFjaGVkLiAgVGhlCithZGp1c3QgdmFsdWVzIGluIHRoZSB1bmRvIHN0cnVjdHVyZXMgYXJlIGFkZGVkIHRvIHRoZSByZWxldmFudCBzZW12YWxzCitpZiB0aGUgb3BlcmF0aW9ucyBhcmUgcGVybWl0dGVkLiBEaXNhbGxvd2VkIG9wZXJhdGlvbnMgYXJlIGlnbm9yZWQuCisKKzEuOC40IE90aGVyIEZlYXR1cmVzCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGVzZSBmZWF0dXJlcyBvZiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBhcmUgbGlrZWx5IHRvIGJlIG1vZGlmaWVkCitpbiB0aGUgZnV0dXJlLgorCisgICBUaGUgU0hNX0xPQ0sgYW5kIFNITV9VTkxPQ0sgZmxhZyBhcmUgYXZhaWxhYmxlIChzdXBlci11c2VyKSBmb3IgdXNlCit3aXRoIHRoZSBgc2htY3RsJyBjYWxsIHRvIHByZXZlbnQgc3dhcHBpbmcgb2YgYSBzaGFyZWQgc2VnbWVudC4gVGhlIHVzZXIKK211c3QgZmF1bHQgaW4gYW55IHBhZ2VzIHRoYXQgYXJlIHJlcXVpcmVkIHRvIGJlIHByZXNlbnQgYWZ0ZXIgbG9ja2luZworaXMgZW5hYmxlZC4KKworICAgVGhlIElQQ19JTkZPLCBNU0dfU1RBVCwgTVNHX0lORk8sIFNITV9TVEFULCBTSE1fSU5GTywgU0VNX1NUQVQsCitTRU1JTkZPIGBjdGwnIGNhbGxzIGFyZSB1c2VkIGJ5IHRoZSBgaXBjcycgcHJvZ3JhbSB0byBwcm92aWRlCitpbmZvcm1hdGlvbiBvbiBhbGxvY2F0ZWQgcmVzb3VyY2VzLiBUaGVzZSBjYW4gYmUgbW9kaWZpZWQgYXMgbmVlZGVkIG9yCittb3ZlZCB0byBhIHByb2MgZmlsZSBzeXN0ZW0gaW50ZXJmYWNlLgorCisKKworCisgICBUaGFua3MgdG8gT3ZlIEV3ZXJsaWQsIEJydW5vIEhhaWJsZSwgVWxyaWNoIFBlZ2Vsb3cgYW5kIExpbnVzCitUb3J2YWxkcyBmb3IgaWRlYXMsIHR1dG9yaWFscywgYnVnIHJlcG9ydHMgYW5kIGZpeGVzLCBhbmQgbWVycmltZW50LgorQW5kIG1vcmUgdGhhbmtzIHRvIEJydW5vLgorCisKKx8KK1RhZyBUYWJsZToKK05vZGU6IFRvcH80NjkKK05vZGU6IE92ZXJ2aWV3fzExNzEKK05vZGU6IGV4YW1wbGV/MzAxMworTm9kZTogcGVybXN/NDQ5MAorTm9kZTogc3lzY2FsbHN/NjA1NQorTm9kZTogTWVzc2FnZXN/OTU0MAorTm9kZTogbXNnZ2V0fzExNTgwCitOb2RlOiBtc2dzbmR/MTI5NzYKK05vZGU6IG1zZ3Jjdn8xMzk1NgorTm9kZTogbXNnY3RsfzE1NjY3CitOb2RlOiBtc2dsaW1pdHN/MTY4ODcKK05vZGU6IFNlbWFwaG9yZXN/MTc3NzYKK05vZGU6IHNlbWdldH8xOTc0MAorTm9kZTogc2Vtb3B/MjEzMDUKK05vZGU6IHNlbWN0bH8yMzg4MQorTm9kZTogc2VtbGltaXRzfzI1NjUxCitOb2RlOiBTaGFyZWQgTWVtb3J5fzI2ODA1CitOb2RlOiBzaG1nZXR/MjgyOTUKK05vZGU6IHNobWF0fzMwMTAyCitOb2RlOiBzaG1kdH8zMjE1MQorTm9kZTogc2htY3RsfzMyNjk2CitOb2RlOiBzaG1saW1pdHN/MzM4MzkKK05vZGU6IE5vdGVzfzM0NTAyCisfCitFbmQgVGFnIFRhYmxlCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjLnRleGkgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjLnRleGkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjcyZDhiOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9pcGMudGV4aQpAQCAtMCwwICsxLDEzMTMgQEAKK1xpbnB1dCB0ZXhpbmZvICAgQGMgLSotdGV4aW5mby0qLQorQGNvbW1lbnQgJSoqc3RhcnQgb2YgaGVhZGVyIChUaGlzIGlzIGZvciBydW5uaW5nIFRleGluZm8gb24gYSByZWdpb24uKQorQHNldGZpbGVuYW1lIGlwYy5pbmZvCitAc2V0dGl0bGUgSW50ZXIgUHJvY2VzcyBDb21tdW5pY2F0aW9uLgorQHNldGNoYXB0ZXJuZXdwYWdlIG9kZAorQGNvbW1lbnQgJSoqZW5kIG9mIGhlYWRlciAoVGhpcyBpcyBmb3IgcnVubmluZyBUZXhpbmZvIG9uIGEgcmVnaW9uLikKKyAgIAorQGlmaW5mbworVGhpcyBmaWxlIGRvY3VtZW50cyB0aGUgU3lzdGVtIFYgc3R5bGUgaW50ZXIgcHJvY2VzcyBjb21tdW5pY2F0aW9uCitwcmltaXRpdmVzIGF2YWlsYWJsZSB1bmRlciBsaW51eC4KKworQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAxOTkyICBrcmlzaG5hIGJhbGFzdWJyYW1hbmlhbgorICAgIAorUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIHVzZSB0aGlzIG1hdGVyaWFsIGFuZCB0aGUgYWNjb21wYW55aW5nCitwcm9ncmFtcyB3aXRoaW4gdGhlIHRlcm1zIG9mIHRoZSBHTlUgR1BMLgorQGVuZCBpZmluZm8KKyAgICAKK0B0aXRsZXBhZ2UKK0BzcCAxMAorQGNlbnRlciBAdGl0bGVmb250e1N5c3RlbSBWIEludGVyIFByb2Nlc3MgQ29tbXVuaWNhdGlvbn0KK0BzcCAyCitAY2VudGVyIGtyaXNobmEgYmFsYXN1YnJhbWFuaWFuLAorICAgIAorQGNvbW1lbnQgIFRoZSBmb2xsb3dpbmcgdHdvIGNvbW1hbmRzIHN0YXJ0IHRoZSBjb3B5cmlnaHQgcGFnZS4KK0BwYWdlCitAdnNraXAgMHB0IHBsdXMgMWZpbGxsCitDb3B5cmlnaHQgQGNvcHlyaWdodHt9IDE5OTIgIGtyaXNobmEgYmFsYXN1YnJhbWFuaWFuCisgICAgCitQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gdXNlIHRoaXMgbWF0ZXJpYWwgYW5kIHRoZSBhY2NvbXBhbnlpbmcKK3Byb2dyYW1zIHdpdGhpbiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHUEwuCitAZW5kIHRpdGxlcGFnZQorCitAZGlyY2F0ZWdvcnkgTWlzY2VsbGFuZW91cworQGRpcmVudHJ5CisqIGlwYzogKGlwYykuICAgICAgICAgICBTeXN0ZW0gViBzdHlsZSBpbnRlciBwcm9jZXNzIGNvbW11bmljYXRpb24KK0BlbmQgZGlyZW50cnkKKworQG5vZGUgVG9wLCBPdmVydmlldywgTm90ZXMsIChkaXIpCitAY2hhcHRlciBTeXN0ZW0gViBJUEMuCisKK1RoZXNlIGZhY2lsaXRpZXMgYXJlIHByb3ZpZGVkIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aAorcHJvZ3JhbXMgZGV2ZWxvcGVkIG9uIHN5c3RlbSBWIHVuaXggc3lzdGVtcyBhbmQgb3RoZXJzCit0aGF0IHJlbHkgb24gdGhlc2Ugc3lzdGVtIFYgbWVjaGFuaXNtcyB0byBhY2NvbXBsaXNoIGludGVyCitwcm9jZXNzIGNvbW11bmljYXRpb24gKElQQykuQHJlZmlsbAorCitUaGUgc3BlY2lmaWNzIGRlc2NyaWJlZCBoZXJlIGFyZSBhcHBsaWNhYmxlIHRvIHRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbi4KK090aGVyIGltcGxlbWVudGF0aW9ucyBtYXkgZG8gdGhpbmdzIHNsaWdodGx5IGRpZmZlcmVudGx5LgorCitAbWVudQorKiBPdmVydmlldzo6ICAJCVdoYXQgaXMgc3lzdGVtIFYgaXBjPyBPdmVyYWxsIG1lY2hhbmlzbXMuCisqIE1lc3NhZ2VzOjogIAkJU3lzdGVtIGNhbGxzIGZvciBtZXNzYWdlIHBhc3NpbmcuCisqIFNlbWFwaG9yZXM6OiAJCVN5c3RlbSBjYWxscyBmb3Igc2VtYXBob3Jlcy4KKyogU2hhcmVkIE1lbW9yeTo6IAlTeXN0ZW0gY2FsbHMgZm9yIHNoYXJlZCBtZW1vcnkgYWNjZXNzLgorKiBOb3Rlczo6IAkJTWlzY2VsbGFuZW91cyBub3Rlcy4KK0BlbmQgbWVudQorCitAbm9kZSBPdmVydmlldywgZXhhbXBsZSwgVG9wLCBUb3AKK0BzZWN0aW9uIE92ZXJ2aWV3CisKK0Bub2luZGVudCBTeXN0ZW0gViBJUEMgY29uc2lzdHMgb2YgdGhyZWUgbWVjaGFuaXNtczoKKworQGl0ZW1pemUgQGJ1bGxldAorQGl0ZW0gCitNZXNzYWdlcyA6IGV4Y2hhbmdlIG1lc3NhZ2VzIHdpdGggYW55IHByb2Nlc3Mgb3Igc2VydmVyLgorQGl0ZW0gCitTZW1hcGhvcmVzIDogYWxsb3cgdW5yZWxhdGVkIHByb2Nlc3NlcyB0byBzeW5jaHJvbml6ZSBleGVjdXRpb24uCitAaXRlbSAKK1NoYXJlZCBtZW1vcnkgOiBhbGxvdyB1bnJlbGF0ZWQgcHJvY2Vzc2VzIHRvIHNoYXJlIG1lbW9yeS4KK0BlbmQgaXRlbWl6ZQorCitAbWVudQorKiBleGFtcGxlOjogCVVzaW5nIHNoYXJlZCBtZW1vcnkuCisqIHBlcm1zOjogCURlc2NyaXB0aW9uIG9mIGFjY2VzcyBwZXJtaXNzaW9ucy4KKyogc3lzY2FsbHM6OiAgICBPdmVydmlldyBvZiBpcGMgc3lzdGVtIGNhbGxzLgorQGVuZCBtZW51CisKK0FjY2VzcyB0byBhbGwgcmVzb3VyY2VzIGlzIHBlcm1pdHRlZCBvbiB0aGUgYmFzaXMgb2YgcGVybWlzc2lvbnMKK3NldCB1cCB3aGVuIHRoZSByZXNvdXJjZSB3YXMgY3JlYXRlZC5AcmVmaWxsCisKK0EgcmVzb3VyY2UgaGVyZSBjb25zaXN0cyBvZiBtZXNzYWdlIHF1ZXVlLCBhIHNlbWFwaG9yZSBzZXQgKGFycmF5KQorb3IgYSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQuQHJlZmlsbAorCitBIHJlc291cmNlIG11c3QgZmlyc3QgYmUgYWxsb2NhdGVkIGJ5IGEgY3JlYXRvciBiZWZvcmUgaXQgaXMgdXNlZC4KK1RoZSBjcmVhdG9yIGNhbiBhc3NpZ24gYSBkaWZmZXJlbnQgb3duZXIuIEFmdGVyIHVzZSB0aGUgcmVzb3VyY2UKK211c3QgYmUgZXhwbGljaXRseSBkZXN0cm95ZWQgYnkgdGhlIGNyZWF0b3Igb3Igb3duZXIuQHJlZmlsbAorCitBIHJlc291cmNlIGlzIGlkZW50aWZpZWQgYnkgYSBudW1lcmljIEB2YXJ7aWR9LiBUeXBpY2FsbHkgYSBjcmVhdG9yCitkZWZpbmVzIGEgQHZhcntrZXl9IHRoYXQgbWF5IGJlIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZS4gVGhlIHVzZXIKK3Byb2Nlc3MgbWF5IHRoZW4gdXNlIHRoaXMgQHZhcntrZXl9IGluIHRoZSBAZGZue2dldH0gc3lzdGVtIGNhbGwgdG8gb2J0YWluCit0aGUgQHZhcntpZH0gZm9yIHRoZSBjb3JyZXNwb25kaW5nIHJlc291cmNlLiBUaGlzIEB2YXJ7aWR9IGlzIHRoZW4gdXNlZCBmb3IKK2FsbCBmdXJ0aGVyIGFjY2Vzcy4gQSBsaWJyYXJ5IGNhbGwgQGRmbntmdG9rfSBpcyBwcm92aWRlZCB0byB0cmFuc2xhdGUKK3BhdGhuYW1lcyBvciBzdHJpbmdzIHRvIG51bWVyaWMga2V5cy5AcmVmaWxsCisKK1RoZXJlIGFyZSBzeXN0ZW0gYW5kIGltcGxlbWVudGF0aW9uIGRlZmluZWQgbGltaXRzIG9uIHRoZSBudW1iZXIgYW5kCitzaXplcyBvZiByZXNvdXJjZXMgb2YgYW55IGdpdmVuIHR5cGUuIFNvbWUgb2YgdGhlc2UgYXJlIGltcG9zZWQgYnkgdGhlCitpbXBsZW1lbnRhdGlvbiBhbmQgb3RoZXJzIGJ5IHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvcgord2hlbiBjb25maWd1cmluZyB0aGUga2VybmVsIChAeHJlZnttc2dsaW1pdHN9LCBAeHJlZntzZW1saW1pdHN9LAorQHhyZWZ7c2htbGltaXRzfSkuQHJlZmlsbAorCitUaGVyZSBpcyBhbiBAY29kZXttc3FpZF9kc30sIEBjb2Rle3NlbWlkX2RzfSBvciBAY29kZXtzaG1pZF9kc30gc3RydWN0Cithc3NvY2lhdGVkIHdpdGggZWFjaCBtZXNzYWdlIHF1ZXVlLCBzZW1hcGhvcmUgYXJyYXkgb3Igc2hhcmVkIHNlZ21lbnQuCitFYWNoIGlwYyByZXNvdXJjZSBoYXMgYW4gYXNzb2NpYXRlZCBAY29kZXtpcGNfcGVybX0gc3RydWN0IHdoaWNoIGRlZmluZXMKK3RoZSBjcmVhdG9yLCBvd25lciwgYWNjZXNzIHBlcm1zIC4uZXRjLi4sIGZvciB0aGUgcmVzb3VyY2UuCitUaGVzZSBzdHJ1Y3R1cmVzIGFyZSBkZXRhaWxlZCBpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLkByZWZpbGwKKworCisKK0Bub2RlIGV4YW1wbGUsIHBlcm1zLCBPdmVydmlldywgT3ZlcnZpZXcKK0BzZWN0aW9uIGV4YW1wbGUKKworSGVyZSBpcyBhIGNvZGUgZnJhZ21lbnQgd2l0aCBwb2ludGVycyBvbiBob3cgdG8gdXNlIHNoYXJlZCBtZW1vcnkuIFRoZQorc2FtZSBtZXRob2RzIGFyZSBhcHBsaWNhYmxlIHRvIG90aGVyIHJlc291cmNlcy5AcmVmaWxsCisKK0luIGEgdHlwaWNhbCBhY2Nlc3Mgc2VxdWVuY2UgdGhlIGNyZWF0b3IgYWxsb2NhdGVzIGEgbmV3IGluc3RhbmNlCitvZiB0aGUgcmVzb3VyY2Ugd2l0aCB0aGUgQGNvZGV7Z2V0fSBzeXN0ZW0gY2FsbCB1c2luZyB0aGUgSVBDX0NSRUFUCitmbGFnLkByZWZpbGwKKworQG5vaW5kZW50IGNyZWF0b3IgcHJvY2VzczpAKgorCitAZXhhbXBsZQorI2luY2x1ZGUgPHN5cy9zaG0uaD4KK2ludCBpZDsKK2tleV90IGtleTsKK2NoYXIgcHJvY19pZCA9ICdDJzsJCitpbnQgc2l6ZSA9IDB4NTAwMDsJLyogMjAgSyAqLworaW50IGZsYWdzID0gMDY2NCB8IElQQ19DUkVBVDsJCS8qIHJlYWQtb25seSBmb3Igb3RoZXJzICovCisKK2tleSA9IGZ0b2sgKCJ+Y3JlYXRvci9pcGNrZXkiLCBwcm9jX2lkKTsKK2lkID0gc2htZ2V0IChrZXksIHNpemUsIGZsYWdzKTsKK2V4aXQgKDApOwkvKiBxdWl0IGxlYXZpbmcgcmVzb3VyY2UgYWxsb2NhdGVkICovCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitVc2VycyB0aGVuIGdhaW4gYWNjZXNzIHRvIHRoZSByZXNvdXJjZSB1c2luZyB0aGUgc2FtZSBrZXkuQCoKK0Bub2luZGVudAorQ2xpZW50IHByb2Nlc3M6CitAZXhhbXBsZQorI2luY2x1ZGUgPHN5cy9zaG0uaD4KK2NoYXIgKnNobWFkZHI7CitpbnQgaWQ7CitrZXlfdCBrZXk7CitjaGFyIHByb2NfaWQgPSAnQyc7CQorCitrZXkgPSBmdG9rICgifmNyZWF0b3IvaXBja2V5IiwgcHJvY19pZCk7CisKK2lkID0gc2htZ2V0IChrZXksIDAsIDAwNCk7CQkvKiBkZWZhdWx0IHNpemUgICAqLworaWYgKGlkID09IC0xKQorICAgICAgcGVycm9yICgic2htZ2V0IC4uLiIpOworCQorc2htYWRkciA9IHNobWF0IChpZCwgMCwgU0hNX1JET05MWSk7IC8qIGF0dGFjaCBzZWdtZW50IGZvciByZWFkaW5nICovCitpZiAoc2htYWRkciA9PSAoY2hhciAqKSAtMSkKKyAgICAgIHBlcnJvciAoInNobWF0IC4uLiIpOwkKKworbG9jYWxfdmFyID0gKihzaG1hZGRyICsgMyk7IAkvKiByZWFkIHNlZ21lbnQgZXRjLiAqLworCitzaG1kdCAoc2htYWRkcik7CQkvKiBkZXRhY2ggc2VnbWVudCAqLworQGVuZCBleGFtcGxlCisKK0Bub2luZGVudAorV2hlbiB0aGUgcmVzb3VyY2UgaXMgbm8gbG9uZ2VyIG5lZWRlZCB0aGUgY3JlYXRvciBzaG91bGQgcmVtb3ZlIGl0LkAqCitAbm9pbmRlbnQKK0NyZWF0b3Ivb3duZXIgcHJvY2VzcyAyOgorQGV4YW1wbGUKK2tleSA9IGZ0b2sgKCJ+Y3JlYXRvci9pcGNrZXkiLCBwcm9jX2lkKQoraWQgPSBzaG1nZXQgKGtleSwgMCwgMCk7CitzaG1jdGwgKGlkLCBJUENfUk1JRCwgTlVMTCk7CitAZW5kIGV4YW1wbGUKKworCitAbm9kZSBwZXJtcywgc3lzY2FsbHMsIGV4YW1wbGUsIE92ZXJ2aWV3CitAc2VjdGlvbiBQZXJtaXNzaW9ucworCitFYWNoIHJlc291cmNlIGhhcyBhbiBhc3NvY2lhdGVkIEBjb2Rle2lwY19wZXJtfSBzdHJ1Y3Qgd2hpY2ggZGVmaW5lcyB0aGUKK2NyZWF0b3IsIG93bmVyIGFuZCBhY2Nlc3MgcGVybXMgZm9yIHRoZSByZXNvdXJjZS5AcmVmaWxsCisKK0BleGFtcGxlCitzdHJ1Y3QgaXBjX3Blcm0KKyAgICAgICAga2V5X3Qga2V5OyAgICAvKiBzZXQgYnkgY3JlYXRvciAqLworICAgICAgICB1c2hvcnQgdWlkOyAgIC8qIG93bmVyIGV1aWQgYW5kIGVnaWQgKi8KKyAgICAgICAgdXNob3J0IGdpZDsKKyAgICAgICAgdXNob3J0IGN1aWQ7ICAvKiBjcmVhdG9yIGV1aWQgYW5kIGVnaWQgKi8KKyAgICAgICAgdXNob3J0IGNnaWQ7CisgICAgICAgIHVzaG9ydCBtb2RlOyAgLyogYWNjZXNzIG1vZGVzIGluIGxvd2VyIDkgYml0cyAqLworICAgICAgICB1c2hvcnQgc2VxOyAgIC8qIHNlcXVlbmNlIG51bWJlciAqLworQGVuZCBleGFtcGxlCisKK1RoZSBjcmVhdGluZyBwcm9jZXNzIGlzIHRoZSBkZWZhdWx0IG93bmVyLiBUaGUgb3duZXIgY2FuIGJlIHJlYXNzaWduZWQKK2J5IHRoZSBjcmVhdG9yIGFuZCBoYXMgY3JlYXRvciBwZXJtcy4gT25seSB0aGUgb3duZXIsIGNyZWF0b3Igb3Igc3VwZXItdXNlcgorY2FuIGRlbGV0ZSB0aGUgcmVzb3VyY2UuQHJlZmlsbAorCitUaGUgbG93ZXN0IG5pbmUgYml0cyBvZiB0aGUgZmxhZ3MgcGFyYW1ldGVyIHN1cHBsaWVkIGJ5IHRoZSB1c2VyIHRvIHRoZQorc3lzdGVtIGNhbGwgYXJlIGNvbXBhcmVkIHdpdGggdGhlIHZhbHVlcyBzdG9yZWQgaW4gQGNvZGV7aXBjX3Blcm1zLm1vZGV9Cit0byBkZXRlcm1pbmUgaWYgdGhlIHJlcXVlc3RlZCBhY2Nlc3MgaXMgYWxsb3dlZC4gSW4gdGhlIGNhc2UKK3RoYXQgdGhlIHN5c3RlbSBjYWxsIGNyZWF0ZXMgdGhlIHJlc291cmNlLCB0aGVzZSBiaXRzIGFyZSBpbml0aWFsaXplZAorZnJvbSB0aGUgdXNlciBzdXBwbGllZCB2YWx1ZS5AcmVmaWxsCisKK0FzIGZvciBmaWxlcywgYWNjZXNzIHBlcm1pc3Npb25zIGFyZSBzcGVjaWZpZWQgYXMgcmVhZCwgd3JpdGUgYW5kIGV4ZWMKK2ZvciB1c2VyLCBncm91cCBvciBvdGhlciAodGhvdWdoIHRoZSBleGVjIHBlcm1zIGFyZSB1bnVzZWQpLiBGb3IgZXhhbXBsZSAKKzA2MjQgZ3JhbnRzIHJlYWQtd3JpdGUgdG8gb3duZXIsIHdyaXRlLW9ubHkgdG8gZ3JvdXAgYW5kIHJlYWQtb25seQorYWNjZXNzIHRvIG90aGVycy5AcmVmaWxsCisKK0ZvciBzaGFyZWQgbWVtb3J5LCBub3RlIHRoYXQgcmVhZC13cml0ZSBhY2Nlc3MgZm9yIHNlZ21lbnRzIGlzIGRldGVybWluZWQKK2J5IGEgc2VwYXJhdGUgZmxhZyB3aGljaCBpcyBub3Qgc3RvcmVkIGluIHRoZSBAY29kZXttb2RlfSBmaWVsZC4KK1NoYXJlZCBtZW1vcnkgc2VnbWVudHMgYXR0YWNoZWQgd2l0aCB3cml0ZSBhY2Nlc3MgY2FuIGJlIHJlYWQuQHJlZmlsbAorCitUaGUgQGNvZGV7Y3VpZH0sIEBjb2Rle2NnaWR9LCBAY29kZXtrZXl9IGFuZCBAY29kZXtzZXF9IGZpZWxkcworY2Fubm90IGJlIGNoYW5nZWQgYnkgdGhlIHVzZXIuQHJlZmlsbAorCisKKworQG5vZGUgc3lzY2FsbHMsIE1lc3NhZ2VzLCBwZXJtcywgT3ZlcnZpZXcKK0BzZWN0aW9uIElQQyBzeXN0ZW0gY2FsbHMKKworVGhpcyBzZWN0aW9uIHByb3ZpZGVzIGFuIG92ZXJ2aWV3IG9mIHRoZSBJUEMgc3lzdGVtIGNhbGxzLiBTZWUgdGhlCitzcGVjaWZpYyBzZWN0aW9ucyBvbiBlYWNoIHR5cGUgb2YgcmVzb3VyY2UgZm9yIGRldGFpbHMuQHJlZmlsbAorCitFYWNoIHR5cGUgb2YgbWVjaGFuaXNtIHByb3ZpZGVzIGEgQGRmbntnZXR9LCBAZGZue2N0bH0gYW5kIG9uZSBvciBtb3JlCitAZGZue29wfSBzeXN0ZW0gY2FsbHMgdGhhdCBhbGxvdyB0aGUgdXNlciB0byBjcmVhdGUgb3IgcHJvY3VyZSB0aGUKK3Jlc291cmNlIChnZXQpLCBkZWZpbmUgaXRzIGJlaGF2aW91ciBvciBkZXN0cm95IGl0IChjdGwpIGFuZCBtYW5pcHVsYXRlCit0aGUgcmVzb3VyY2VzIChvcCkuQHJlZmlsbAorCQorCisKK0BzdWJzZWN0aW9uIFRoZSBAZGZue2dldH0gc3lzdGVtIGNhbGxzCisKK1RoZSBAY29kZXtnZXR9IGNhbGwgdHlwaWNhbGx5IHRha2VzIGEgQHZhcntrZXl9IGFuZCByZXR1cm5zIGEgbnVtZXJpYworQHZhcntpZH0gdGhhdCBpcyB1c2VkIGZvciBmdXJ0aGVyIGFjY2Vzcy4KK1RoZSBAdmFye2lkfSBpcyBhbiBpbmRleCBpbnRvIHRoZSByZXNvdXJjZSB0YWJsZS4gQSBzZXF1ZW5jZQorbnVtYmVyIGlzIG1haW50YWluZWQgYW5kIGluY3JlbWVudGVkIHdoZW4gYSByZXNvdXJjZSBpcworZGVzdHJveWVkIHNvIHRoYXQgYWNjZXNzIHVzaW5nIGFuIG9ic29sZXRlIEB2YXJ7aWR9IGlzIGxpa2VseSB0byBmYWlsLkByZWZpbGwKKworVGhlIHVzZXIgYWxzbyBzcGVjaWZpZXMgdGhlIHBlcm1pc3Npb25zIGFuZCBvdGhlciBiZWhhdmlvdXIKK2NoYXJlY3RlcmlzdGljcyBmb3IgdGhlIGN1cnJlbnQgYWNjZXNzLiBUaGUgZmxhZ3MgYXJlIG9yLWVkIHdpdGggdGhlCitwZXJtaXNzaW9ucyB3aGVuIGludm9raW5nIHN5c3RlbSBjYWxscyBhcyBpbjpAcmVmaWxsCitAZXhhbXBsZQorbXNnZmxnID0gSVBDX0NSRUFUIHwgSVBDX0VYQ0wgfCAwNjY2OworaWQgPSBtc2dnZXQgKGtleSwgbXNnZmxnKTsKK0BlbmQgZXhhbXBsZQorQGl0ZW1pemUgQGJ1bGxldAorQGl0ZW0KK0Bjb2Rle2tleX0gOiBJUENfUFJJVkFURSA9PiBuZXcgaW5zdGFuY2Ugb2YgcmVzb3VyY2UgaXMgaW5pdGlhbGl6ZWQuCitAaXRlbQorQGNvZGV7ZmxhZ3N9IDoKK0BpdGVtaXplIEBhc2lzCitAaXRlbQorSVBDX0NSRUFUIDogcmVzb3VyY2UgY3JlYXRlZCBmb3IgQHZhcntrZXl9IGlmIGl0IGRvZXMgbm90IGV4aXN0LgorQGl0ZW0KK0lQQ19DUkVBVCB8IElQQ19FWENMIDogZmFpbCBpZiByZXNvdXJjZSBleGlzdHMgZm9yIEB2YXJ7a2V5fS4KK0BlbmQgaXRlbWl6ZQorQGl0ZW0KK3JldHVybnMgOiBhbiBpZGVudGlmaWVyIHVzZWQgZm9yIGFsbCBmdXJ0aGVyIGFjY2VzcyB0byB0aGUgcmVzb3VyY2UuCitAZW5kIGl0ZW1pemUKKworTm90ZSB0aGF0IElQQ19QUklWQVRFIGlzIG5vdCBhIGZsYWcgYnV0IGEgc3BlY2lhbCBAY29kZXtrZXl9Cit0aGF0IGVuc3VyZXMgKHdoZW4gdGhlIGNhbGwgaXMgc3VjY2Vzc2Z1bCkgdGhhdCBhIG5ldyByZXNvdXJjZSBpcworY3JlYXRlZC5AcmVmaWxsCisKK1VzZSBvZiBJUENfUFJJVkFURSBkb2VzIG5vdCBtYWtlIHRoZSByZXNvdXJjZSBpbmFjY2Vzc2libGUgdG8gb3RoZXIKK3VzZXJzLiBGb3IgdGhpcyB5b3UgbXVzdCBzZXQgdGhlIGFjY2VzcyBwZXJtaXNzaW9ucyBhcHByb3ByaWF0ZWx5LkByZWZpbGwKKworVGhlcmUgaXMgY3VycmVudGx5IG5vIHdheSBmb3IgYSBwcm9jZXNzIHRvIGVuc3VyZSBleGNsdXNpdmUgYWNjZXNzIHRvIGEKK3Jlc291cmNlLiBJUENfQ1JFQVQgfCBJUENfRVhDTCBvbmx5IGVuc3VyZXMgKG9uIHN1Y2Nlc3MpIHRoYXQgYSBuZXcKK3Jlc291cmNlIHdhcyBpbml0aWFsaXplZC4gSXQgZG9lcyBub3QgaW1wbHkgZXhjbHVzaXZlIGFjY2Vzcy5AcmVmaWxsCisKK0Bub2luZGVudAorU2VlIEFsc28gOiBAeHJlZnttc2dnZXR9LCBAeHJlZntzZW1nZXR9LCBAeHJlZntzaG1nZXR9LkByZWZpbGwKKworCisKK0BzdWJzZWN0aW9uIFRoZSBAZGZue2N0bH0gc3lzdGVtIGNhbGxzCisKK1Byb3ZpZGVzIG9yIGFsdGVycyB0aGUgaW5mb3JtYXRpb24gc3RvcmVkIGluIHRoZSBzdHJ1Y3R1cmUgdGhhdCBkZXNjcmliZXMKK3RoZSByZXNvdXJjZSBpbmRleGVkIGJ5IEB2YXJ7aWR9LkByZWZpbGwKKworQGV4YW1wbGUKKyNpbmNsdWRlIDxzeXMvbXNnLmg+CitzdHJ1Y3QgbXNxaWRfZHMgYnVmOworZXJyID0gbXNnY3RsIChpZCwgSVBDX1NUQVQsICZidWYpOworaWYgKGVycikKKyAgICAgICAgISQjJSoKK2Vsc2UKKyAgICAgICAgcHJpbnRmICgiY3JlYXRvciB1aWQgPSAlZFxuIiwgYnVmLm1zZ19wZXJtLmN1aWQpOworICAgICAgICAuLi4uCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitDb21tYW5kcyBzdXBwb3J0ZWQgYnkgYWxsIEBjb2Rle2N0bH0gY2FsbHM6QCoKK0BpdGVtaXplIEBidWxsZXQKK0BpdGVtCitJUENfU1RBVCA6IHJlYWQgaW5mbyBvbiByZXNvdXJjZSAgc3BlY2lmaWVkIGJ5IGlkIGludG8gdXNlciBhbGxvY2F0ZWQKK2J1ZmZlci4gVGhlIHVzZXIgbXVzdCBoYXZlIHJlYWQgYWNjZXNzIHRvIHRoZSByZXNvdXJjZS5AcmVmaWxsCitAaXRlbQorSVBDX1NFVCA6IHdyaXRlIGluZm8gZnJvbSBidWZmZXIgaW50byByZXNvdXJjZSBkYXRhIHN0cnVjdHVyZS4gVGhlCit1c2VyIG11c3QgYmUgb3duZXIgY3JlYXRvciBvciBzdXBlci11c2VyLkByZWZpbGwKK0BpdGVtCitJUENfUk1JRCA6IHJlbW92ZSByZXNvdXJjZS4gVGhlIHVzZXIgbXVzdCBiZSB0aGUgb3duZXIsIGNyZWF0b3Igb3IKK3N1cGVyLXVzZXIuQHJlZmlsbAorQGVuZCBpdGVtaXplCisKK1RoZSBJUENfUk1JRCBjb21tYW5kIHJlc3VsdHMgaW4gaW1tZWRpYXRlIHJlbW92YWwgb2YgYSBtZXNzYWdlCitxdWV1ZSBvciBzZW1hcGhvcmUgYXJyYXkuIFNoYXJlZCBtZW1vcnkgc2VnbWVudHMgaG93ZXZlciwgYXJlCitvbmx5IGRlc3Ryb3llZCB1cG9uIHRoZSBsYXN0IGRldGFjaCBhZnRlciBJUENfUk1JRCBpcyBleGVjdXRlZC5AcmVmaWxsCisKK1RoZSBAY29kZXtzZW1jdGx9IGNhbGwgcHJvdmlkZXMgYSBudW1iZXIgb2YgY29tbWFuZCBvcHRpb25zIHRoYXQgYWxsb3cKK3RoZSB1c2VyIHRvIGRldGVybWluZSBvciBzZXQgdGhlIHZhbHVlcyBvZiB0aGUgc2VtYXBob3JlcyBpbiBhbiBhcnJheS5AcmVmaWxsCisKK0Bub2luZGVudAorU2VlIEFsc286IEB4cmVme21zZ2N0bH0sIEB4cmVme3NlbWN0bH0sIEB4cmVme3NobWN0bH0uQHJlZmlsbAorCisKK0BzdWJzZWN0aW9uIFRoZSBAZGZue29wfSBzeXN0ZW0gY2FsbHMKKworVXNlZCB0byBzZW5kIG9yIHJlY2VpdmUgbWVzc2FnZXMsIHJlYWQgb3IgYWx0ZXIgc2VtYXBob3JlIHZhbHVlcywKK2F0dGFjaCBvciBkZXRhY2ggc2hhcmVkIG1lbW9yeSBzZWdtZW50cy4KK1RoZSBJUENfTk9XQUlUIGZsYWcgd2lsbCBjYXVzZSB0aGUgb3BlcmF0aW9uIHRvIGZhaWwgd2l0aCBlcnJvciBFQUdBSU4KK2lmIHRoZSBwcm9jZXNzIGhhcyB0byB3YWl0IG9uIHRoZSBjYWxsLkByZWZpbGwKKworQG5vaW5kZW50CitAY29kZXtmbGFnc30gOiBJUENfTk9XQUlUICA9PiByZXR1cm4gd2l0aCBlcnJvciBpZiBhIHdhaXQgaXMgcmVxdWlyZWQuCisKK0Bub2luZGVudAorU2VlIEFsc286IEB4cmVme21zZ3NuZH0sQHhyZWZ7bXNncmN2fSxAeHJlZntzZW1vcH0sQHhyZWZ7c2htYXR9LAorQHhyZWZ7c2htZHR9LkByZWZpbGwKKworCisKK0Bub2RlIE1lc3NhZ2VzLCBtc2dnZXQsIHN5c2NhbGxzLCBUb3AKK0BzZWN0aW9uIE1lc3NhZ2VzCisKK0EgbWVzc2FnZSByZXNvdXJjZSBpcyBkZXNjcmliZWQgYnkgYSBzdHJ1Y3QgQGNvZGV7bXNxaWRfZHN9IHdoaWNoIGlzCithbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIHdoZW4gdGhlIHJlc291cmNlIGlzIGNyZWF0ZWQuIFNvbWUgZmllbGRzCitpbiBAY29kZXttc3FpZF9kc30gY2FuIHRoZW4gYmUgYWx0ZXJlZCAoaWYgZGVzaXJlZCkgYnkgaW52b2tpbmcgQGNvZGV7bXNnY3RsfS4KK1RoZSBtZW1vcnkgdXNlZCBieSB0aGUgcmVzb3VyY2UgaXMgcmVsZWFzZWQgd2hlbiBpdCBpcyBkZXN0cm95ZWQgYnkKK2EgQGNvZGV7bXNnY3RsfSBjYWxsLkByZWZpbGwKKworQGV4YW1wbGUKK3N0cnVjdCBtc3FpZF9kcworICAgIHN0cnVjdCBpcGNfcGVybSBtc2dfcGVybTsKKyAgICBzdHJ1Y3QgbXNnICptc2dfZmlyc3Q7ICAvKiBmaXJzdCBtZXNzYWdlIG9uIHF1ZXVlIChpbnRlcm5hbCkgKi8KKyAgICBzdHJ1Y3QgbXNnICptc2dfbGFzdDsgICAvKiBsYXN0IG1lc3NhZ2UgaW4gcXVldWUgKGludGVybmFsKSAqLworICAgIHRpbWVfdCBtc2dfc3RpbWU7ICAgICAgIC8qIGxhc3QgbXNnc25kIHRpbWUgKi8KKyAgICB0aW1lX3QgbXNnX3J0aW1lOyAgICAgICAvKiBsYXN0IG1zZ3JjdiB0aW1lICovCisgICAgdGltZV90IG1zZ19jdGltZTsgICAgICAgLyogbGFzdCBjaGFuZ2UgdGltZSAqLworICAgIHN0cnVjdCB3YWl0X3F1ZXVlICp3d2FpdDsgLyogd3JpdGVycyB3YWl0aW5nIChpbnRlcm5hbCkgKi8KKyAgICBzdHJ1Y3Qgd2FpdF9xdWV1ZSAqcndhaXQ7IC8qIHJlYWRlcnMgd2FpdGluZyAoaW50ZXJuYWwpICovCisgICAgdXNob3J0IG1zZ19jYnl0ZXM7ICAgICAgLyogbnVtYmVyIG9mIGJ5dGVzIHVzZWQgb24gcXVldWUgKi8KKyAgICB1c2hvcnQgbXNnX3FudW07ICAgICAgICAvKiBudW1iZXIgb2YgbWVzc2FnZXMgaW4gcXVldWUgKi8KKyAgICB1c2hvcnQgbXNnX3FieXRlczsgICAgICAvKiBtYXggbnVtYmVyIG9mIGJ5dGVzIG9uIHF1ZXVlICovCisgICAgdXNob3J0IG1zZ19sc3BpZDsgICAgICAgLyogcGlkIG9mIGxhc3QgbXNnc25kICovCisgICAgdXNob3J0IG1zZ19scnBpZDsgICAgICAgLyogcGlkIG9mIGxhc3QgbXNncmN2ICovCitAZW5kIGV4YW1wbGUKKworVG8gc2VuZCBvciByZWNlaXZlIGEgbWVzc2FnZSB0aGUgdXNlciBhbGxvY2F0ZXMgYSBzdHJ1Y3R1cmUgdGhhdCBsb29rcworbGlrZSBhIEBjb2Rle21zZ2J1Zn0gYnV0IHdpdGggYW4gYXJyYXkgQGNvZGV7bXRleHR9IG9mIHRoZSByZXF1aXJlZCBzaXplLgorTWVzc2FnZXMgaGF2ZSBhIHR5cGUgKHBvc2l0aXZlIGludGVnZXIpIGFzc29jaWF0ZWQgd2l0aCB0aGVtIHNvIHRoYXQKKyhmb3IgZXhhbXBsZSkgYSBsaXN0ZW5lciBjYW4gY2hvb3NlIHRvIHJlY2VpdmUgb25seSBtZXNzYWdlcyBvZiBhCitnaXZlbiB0eXBlLkByZWZpbGwKKworQGV4YW1wbGUKK3N0cnVjdCBtc2didWYKKyAgICBsb25nIG10eXBlOyAgICAgIHR5cGUgb2YgbWVzc2FnZSAoQHhyZWZ7bXNncmN2fSkuCisgICAgY2hhciBtdGV4dFsxXTsgICBtZXNzYWdlIHRleHQgLi4gd2h5IGlzIHRoaXMgbm90IGEgcHRyPworQGVuZCBleGFtcGxlCisKK1RoZSB1c2VyIG11c3QgaGF2ZSB3cml0ZSBwZXJtaXNzaW9ucyB0byBzZW5kIGFuZCByZWFkIHBlcm1pc3Npb25zCit0byByZWNlaXZlIG1lc3NhZ2VzIG9uIGEgcXVldWUuQHJlZmlsbAorCitXaGVuIEBjb2Rle21zZ3NuZH0gaXMgaW52b2tlZCwgdGhlIHVzZXIncyBtZXNzYWdlIGlzIGNvcGllZCBpbnRvCithbiBpbnRlcm5hbCBzdHJ1Y3QgQGNvZGV7bXNnfSBhbmQgYWRkZWQgdG8gdGhlIHF1ZXVlLiBBIEBjb2Rle21zZ3Jjdn0KK3dpbGwgdGhlbiByZWFkIHRoaXMgbWVzc2FnZSBhbmQgZnJlZSB0aGUgYXNzb2NpYXRlZCBzdHJ1Y3QgQGNvZGV7bXNnfS5AcmVmaWxsCisKKworQG1lbnUKKyogbXNnZ2V0OjoKKyogbXNnc25kOjoKKyogbXNncmN2OjoKKyogbXNnY3RsOjoKKyogbXNnbGltaXRzOjogSW1wbGVtZW50YXRpb24gZGVmaW5lZCBsaW1pdHMuCitAZW5kIG1lbnUKKworCitAbm9kZSBtc2dnZXQsIG1zZ3NuZCwgTWVzc2FnZXMsIE1lc3NhZ2VzCitAc3Vic2VjdGlvbiBtc2dnZXQKKworQG5vaW5kZW50CitBIG1lc3NhZ2UgcXVldWUgaXMgYWxsb2NhdGVkIGJ5IGEgbXNnZ2V0IHN5c3RlbSBjYWxsIDoKKworQGV4YW1wbGUKK21zcWlkID0gbXNnZ2V0IChrZXlfdCBrZXksIGludCBtc2dmbGcpOworQGVuZCBleGFtcGxlCisKK0BpdGVtaXplIEBidWxsZXQKK0BpdGVtCitAY29kZXtrZXl9OiBhbiBpbnRlZ2VyIHVzdWFsbHkgZ290IGZyb20gQGNvZGV7ZnRvaygpfSBvciBJUENfUFJJVkFURS5AcmVmaWxsCitAaXRlbQorQGNvZGV7bXNnZmxnfToKK0BpdGVtaXplIEBhc2lzCitAaXRlbQorSVBDX0NSRUFUIDogdXNlZCB0byBjcmVhdGUgYSBuZXcgcmVzb3VyY2UgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC4KK0BpdGVtCitJUENfRVhDTCB8IElQQ19DUkVBVCA6IHVzZWQgdG8gZW5zdXJlIGZhaWx1cmUgb2YgdGhlIGNhbGwgaWYgdGhlCityZXNvdXJjZSBhbHJlYWR5IGV4aXN0cy5AcmVmaWxsCitAaXRlbQorcnd4cnd4cnd4IDogYWNjZXNzIHBlcm1pc3Npb25zLgorQGVuZCBpdGVtaXplCitAaXRlbQorcmV0dXJuczogbXNxaWQgKGFuIGludGVnZXIgdXNlZCBmb3IgYWxsIGZ1cnRoZXIgYWNjZXNzKSBvbiBzdWNjZXNzLgorLTEgb24gZmFpbHVyZS5AcmVmaWxsCitAZW5kIGl0ZW1pemUKKworQSBtZXNzYWdlIHF1ZXVlIGlzIGFsbG9jYXRlZCBpZiB0aGVyZSBpcyBubyByZXNvdXJjZSBjb3JyZXNwb25kaW5nCit0byB0aGUgZ2l2ZW4ga2V5LiBUaGUgYWNjZXNzIHBlcm1pc3Npb25zIHNwZWNpZmllZCBhcmUgdGhlbiBjb3BpZWQKK2ludG8gdGhlIEBjb2Rle21zZ19wZXJtfSBzdHJ1Y3QgYW5kIHRoZSBmaWVsZHMgaW4gQGNvZGV7bXNxaWRfZHN9Citpbml0aWFsaXplZC4gVGhlIHVzZXIgbXVzdCB1c2UgdGhlIElQQ19DUkVBVCBmbGFnIG9yIGtleSA9IElQQ19QUklWQVRFLAoraWYgYSBuZXcgaW5zdGFuY2UgaXMgdG8gYmUgYWxsb2NhdGVkLiBJZiBhIHJlc291cmNlIGNvcnJlc3BvbmRpbmcgdG8KK0B2YXJ7a2V5fSBhbHJlYWR5IGV4aXN0cywgdGhlIGFjY2VzcyBwZXJtaXNzaW9ucyBhcmUgdmVyaWZpZWQuQHJlZmlsbAorCitAbm9pbmRlbnQKK0Vycm9yczpAKgorQG5vaW5kZW50CitFQUNDRVMgOiAocHJvY3VyZSkgRG8gbm90IGhhdmUgcGVybWlzc2lvbiBmb3IgcmVxdWVzdGVkIGFjY2Vzcy5AKgorQG5vaW5kZW50CitFRVhJU1QgOiAoYWxsb2NhdGUpIElQQ19DUkVBVCB8IElQQ19FWENMIHNwZWNpZmllZCBhbmQgcmVzb3VyY2UgZXhpc3RzLkAqCitAbm9pbmRlbnQKK0VJRFJNICA6IChwcm9jdXJlKSBUaGUgcmVzb3VyY2Ugd2FzIHJlbW92ZWQuQCoKK0Bub2luZGVudAorRU5PU1BDIDogQWxsIGlkJ3MgYXJlIHRha2VuIChtYXggb2YgTVNHTU5JIGlkJ3Mgc3lzdGVtLXdpZGUpLkAqCitAbm9pbmRlbnQKK0VOT0VOVCA6IFJlc291cmNlIGRvZXMgbm90IGV4aXN0IGFuZCBJUENfQ1JFQVQgbm90IHNwZWNpZmllZC5AKgorQG5vaW5kZW50CitFTk9NRU0gOiBBIG5ldyBAY29kZXttc3FpZF9kc30gd2FzIHRvIGJlIGNyZWF0ZWQgYnV0IC4uLiBub21lbS4KKworCisKKworQG5vZGUgbXNnc25kLCBtc2dyY3YsIG1zZ2dldCwgTWVzc2FnZXMKK0BzdWJzZWN0aW9uIG1zZ3NuZAorCitAZXhhbXBsZQoraW50IG1zZ3NuZCAoaW50IG1zcWlkLCBzdHJ1Y3QgbXNnYnVmICptc2dwLCBpbnQgbXNnc3osIGludCBtc2dmbGcpOworQGVuZCBleGFtcGxlCisKK0BpdGVtaXplIEBidWxsZXQKK0BpdGVtCitAY29kZXttc3FpZH0gOiBpZCBvYnRhaW5lZCBieSBhIGNhbGwgdG8gbXNnZ2V0LgorQGl0ZW0KK0Bjb2Rle21zZ3N6fSA6IHNpemUgb2YgbXNnIHRleHQgKEBjb2Rle210ZXh0fSkgaW4gYnl0ZXMuCitAaXRlbQorQGNvZGV7bXNncH0gOiBtZXNzYWdlIHRvIGJlIHNlbnQuIChtc2dwLT5tdHlwZSBtdXN0IGJlIHBvc2l0aXZlKS4KK0BpdGVtCitAY29kZXttc2dmbGd9IDogSVBDX05PV0FJVC4KK0BpdGVtCityZXR1cm5zIDogbXNnc3ogb24gc3VjY2Vzcy4gLTEgb24gZXJyb3IuCitAZW5kIGl0ZW1pemUKKworVGhlIG1lc3NhZ2UgdGV4dCBhbmQgdHlwZSBhcmUgc3RvcmVkIGluIHRoZSBpbnRlcm5hbCBAY29kZXttc2d9CitzdHJ1Y3R1cmUuIEBjb2Rle21zZ19jYnl0ZXN9LCBAY29kZXttc2dfcW51bX0sIEBjb2Rle21zZ19sc3BpZH0sCithbmQgQGNvZGV7bXNnX3N0aW1lfSBmaWVsZHMgYXJlIHVwZGF0ZWQuIFJlYWRlcnMgd2FpdGluZyBvbiB0aGUKK3F1ZXVlIGFyZSBhd2FrZW5lZC5AcmVmaWxsCisKK0Bub2luZGVudAorRXJyb3JzOkAqCitAbm9pbmRlbnQKK0VBQ0NFUyA6IERvIG5vdCBoYXZlIHdyaXRlIHBlcm1pc3Npb24gb24gcXVldWUuQCoKK0Bub2luZGVudAorRUFHQUlOIDogSVBDX05PV0FJVCBzcGVjaWZpZWQgYW5kIHF1ZXVlIGlzIGZ1bGwuQCoKK0Bub2luZGVudAorRUZBVUxUIDogbXNncCBub3QgYWNjZXNzaWJsZS5AKgorQG5vaW5kZW50CitFSURSTSAgOiBUaGUgbWVzc2FnZSBxdWV1ZSB3YXMgcmVtb3ZlZC5AKgorQG5vaW5kZW50CitFSU5UUiAgOiBGdWxsIHF1ZXVlIC4uLiB3b3VsZCBoYXZlIHNsZXB0IGJ1dCAuLi4gd2FzIGludGVycnVwdGVkLkAqCitAbm9pbmRlbnQKK0VJTlZBTCA6IG10eXBlIDwgMSwgbXNnc3ogPiBNU0dNQVgsIG1zZ3N6IDwgMCwgbXNxaWQgPCAwIG9yIHVudXNlZC5AKgorQG5vaW5kZW50CitFTk9NRU0gOiBDb3VsZCBub3QgYWxsb2NhdGUgc3BhY2UgZm9yIGhlYWRlciBhbmQgdGV4dC5AKgorCisKKworQG5vZGUgbXNncmN2LCBtc2djdGwsIG1zZ3NuZCwgTWVzc2FnZXMKK0BzdWJzZWN0aW9uIG1zZ3JjdgorCitAZXhhbXBsZQoraW50IG1zZ3JjdiAoaW50IG1zcWlkLCBzdHJ1Y3QgbXNnYnVmICptc2dwLCBpbnQgbXNnc3osIGxvbmcgbXNndHlwLAorCQkJaW50IG1zZ2ZsZyk7CitAZW5kIGV4YW1wbGUKKworQGl0ZW1pemUgQGJ1bGxldAorQGl0ZW0KK21zcWlkICA6IGlkIG9idGFpbmVkIGJ5IGEgY2FsbCB0byBtc2dnZXQuCitAaXRlbQorbXNnc3ogIDogbWF4aW11bSBzaXplIG9mIG1lc3NhZ2UgdG8gcmVjZWl2ZS4KK0BpdGVtCittc2dwICAgOiBhbGxvY2F0ZWQgYnkgdXNlciB0byBzdG9yZSB0aGUgbWVzc2FnZSBpbi4KK0BpdGVtCittc2d0eXAgOgorQGl0ZW1pemUgQGFzaXMKK0BpdGVtCiswID0+IGdldCBmaXJzdCBtZXNzYWdlIG9uIHF1ZXVlLgorQGl0ZW0KKz4gMCA9PiBnZXQgZmlyc3QgbWVzc2FnZSBvZiBtYXRjaGluZyB0eXBlLgorQGl0ZW0KKzwgMCA9PiBnZXQgbWVzc2FnZSB3aXRoIGxlYXN0IHR5cGUgIHdoaWNoIGlzIDw9IGFicyhtc2d0eXApLiAKK0BlbmQgaXRlbWl6ZQorQGl0ZW0KK21zZ2ZsZyA6CitAaXRlbWl6ZSBAYXNpcworQGl0ZW0KK0lQQ19OT1dBSVQgOiBSZXR1cm4gaW1tZWRpYXRlbHkgaWYgbWVzc2FnZSBub3QgZm91bmQuCitAaXRlbQorTVNHX05PRVJST1IgOiBUaGUgbWVzc2FnZSBpcyB0cnVuY2F0ZWQgaWYgaXQgaXMgbGFyZ2VyIHRoYW4gbXNnc3ouCitAaXRlbQorTVNHX0VYQ0VQVCA6IFVzZWQgd2l0aCBtc2d0eXAgPiAwIHRvIHJlY2VpdmUgYW55IG1zZyBleGNlcHQgb2Ygc3BlY2lmaWVkCit0eXBlLkByZWZpbGwKK0BlbmQgaXRlbWl6ZQorQGl0ZW0KK3JldHVybnMgOiBzaXplIG9mIG1lc3NhZ2UgaWYgZm91bmQuIC0xIG9uIGVycm9yLgorQGVuZCBpdGVtaXplCisKK1RoZSBmaXJzdCBtZXNzYWdlIHRoYXQgbWVldHMgdGhlIEBjb2Rle21zZ3R5cH0gc3BlY2lmaWNhdGlvbiBpcworaWRlbnRpZmllZC4gRm9yIG1zZ3R5cCA8IDAsIHRoZSBlbnRpcmUgcXVldWUgaXMgc2VhcmNoZWQgZm9yIHRoZQorbWVzc2FnZSB3aXRoIHRoZSBzbWFsbGVzdCB0eXBlLkByZWZpbGwKKworSWYgaXRzIGxlbmd0aCBpcyBzbWFsbGVyIHRoYW4gbXNnc3ogb3IgaWYgdGhlIHVzZXIgc3BlY2lmaWVkIHRoZQorTVNHX05PRVJST1IgZmxhZywgaXRzIHRleHQgYW5kIHR5cGUgYXJlIGNvcGllZCB0byBtc2dwLT5tdGV4dCBhbmQKK21zZ3AtPm10eXBlLCBhbmQgaXQgaXMgdGFrZW4gb2ZmIHRoZSBxdWV1ZS5AcmVmaWxsCisKK1RoZSBAY29kZXttc2dfY2J5dGVzfSwgQGNvZGV7bXNnX3FudW19LCBAY29kZXttc2dfbHJwaWR9LAorYW5kIEBjb2Rle21zZ19ydGltZX0gZmllbGRzIGFyZSB1cGRhdGVkLiBXcml0ZXJzIHdhaXRpbmcgb24gdGhlCitxdWV1ZSBhcmUgYXdha2VuZWQuQHJlZmlsbAorCitAbm9pbmRlbnQKK0Vycm9yczpAKgorQG5vaW5kZW50CitFMkJJRyAgOiBtc2cgYmlnZ2VyIHRoYW4gbXNnc3ogYW5kIE1TR19OT0VSUk9SIG5vdCBzcGVjaWZpZWQuQCoKK0Bub2luZGVudAorRUFDQ0VTIDogRG8gbm90IGhhdmUgcGVybWlzc2lvbiBmb3IgcmVhZGluZyB0aGUgcXVldWUuQCoKK0Bub2luZGVudAorRUZBVUxUIDogbXNncCBub3QgYWNjZXNzaWJsZS5AKgorQG5vaW5kZW50CitFSURSTSAgOiBtc2cgcXVldWUgd2FzIHJlbW92ZWQuQCoKK0Bub2luZGVudAorRUlOVFIgIDogbXNnIG5vdCBmb3VuZCAuLi4gd291bGQgaGF2ZSBzbGVwdCBidXQgLi4uIHdhcyBpbnRlcnJ1cHRlZC5AKgorQG5vaW5kZW50CitFSU5WQUwgOiBtc2dzeiA+IG1zZ21heCBvciBtc2dzeiA8IDAsIG1zcWlkIDwgMCBvciB1bnVzZWQuQCoKK0Bub2luZGVudAorRU5PTVNHIDogbXNnIG9mIHJlcXVlc3RlZCB0eXBlIG5vdCBmb3VuZCBhbmQgSVBDX05PV0FJVCBzcGVjaWZpZWQuCisKKworCitAbm9kZSBtc2djdGwsIG1zZ2xpbWl0cywgbXNncmN2LCBNZXNzYWdlcworQHN1YnNlY3Rpb24gbXNnY3RsCisKK0BleGFtcGxlCitpbnQgbXNnY3RsIChpbnQgbXNxaWQsIGludCBjbWQsIHN0cnVjdCBtc3FpZF9kcyAqYnVmKTsKK0BlbmQgZXhhbXBsZQorCitAaXRlbWl6ZSBAYnVsbGV0CitAaXRlbQorbXNxaWQgIDogaWQgb2J0YWluZWQgYnkgYSBjYWxsIHRvIG1zZ2dldC4KK0BpdGVtCitidWYgICAgOiBhbGxvY2F0ZWQgYnkgdXNlciBmb3IgcmVhZGluZy93cml0aW5nIGluZm8uCitAaXRlbQorY21kICAgIDogSVBDX1NUQVQsIElQQ19TRVQsIElQQ19STUlEIChAeHJlZntzeXNjYWxsc30pLgorQGVuZCBpdGVtaXplCisKK0lQQ19TVEFUIHJlc3VsdHMgaW4gdGhlIGNvcHkgb2YgdGhlIHF1ZXVlIGRhdGEgc3RydWN0dXJlCitpbnRvIHRoZSB1c2VyIHN1cHBsaWVkIGJ1ZmZlci5AcmVmaWxsCisKK0luIHRoZSBjYXNlIG9mIElQQ19TRVQsIHRoZSBxdWV1ZSBzaXplIChAY29kZXttc2dfcWJ5dGVzfSkKK2FuZCB0aGUgQGNvZGV7dWlkfSwgQGNvZGV7Z2lkfSwgQGNvZGV7bW9kZX0gKGxvdyA5IGJpdHMpIGZpZWxkcworb2YgdGhlIEBjb2Rle21zZ19wZXJtfSBzdHJ1Y3QgYXJlIHNldCBmcm9tIHRoZSB1c2VyIHN1cHBsaWVkIHZhbHVlcy4KK0Bjb2Rle21zZ19jdGltZX0gaXMgdXBkYXRlZC5AcmVmaWxsCisKK05vdGUgdGhhdCBvbmx5IHRoZSBzdXBlciB1c2VyIG1heSBpbmNyZWFzZSB0aGUgbGltaXQgb24gdGhlIHNpemUgb2YgYQorbWVzc2FnZSBxdWV1ZSBiZXlvbmQgTVNHTU5CLkByZWZpbGwKKworV2hlbiB0aGUgcXVldWUgaXMgZGVzdHJveWVkIChJUENfUk1JRCksIHRoZSBzZXF1ZW5jZSBudW1iZXIgaXMKK2luY3JlbWVudGVkIGFuZCBhbGwgd2FpdGluZyByZWFkZXJzIGFuZCB3cml0ZXJzIGFyZSBhd2FrZW5lZC4KK1RoZXNlIHByb2Nlc3NlcyB3aWxsIHRoZW4gcmV0dXJuIHdpdGggQGNvZGV7ZXJybm99IHNldCB0byBFSURSTS5AcmVmaWxsCisKK0Bub2luZGVudAorRXJyb3JzOgorQG5vaW5kZW50CitFUEVSTSAgOiBJbnN1ZmZpY2llbnQgcHJpdmlsZWdlIHRvIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBxdWV1ZSAoSVBDX1NFVCkKK29yIHJlbW92ZSBpdCAoSVBDX1JNSUQpLkAqCitAbm9pbmRlbnQKK0VBQ0NFUyA6IERvIG5vdCBoYXZlIHBlcm1pc3Npb24gZm9yIHJlYWRpbmcgdGhlIHF1ZXVlIChJUENfU1RBVCkuQCoKK0Bub2luZGVudAorRUZBVUxUIDogYnVmIG5vdCBhY2Nlc3NpYmxlIChJUENfU1RBVCwgSVBDX1NFVCkuQCoKK0Bub2luZGVudAorRUlEUk0gIDogbXNnIHF1ZXVlIHdhcyByZW1vdmVkLkAqCitAbm9pbmRlbnQKK0VJTlZBTCA6IGludmFsaWQgY21kLCBtc3FpZCA8IDAgb3IgdW51c2VkLgorCisKK0Bub2RlIG1zZ2xpbWl0cywgU2VtYXBob3JlcywgbXNnY3RsLCBNZXNzYWdlcworQHN1YnNlY3Rpb24gTGltaXMgb24gTWVzc2FnZSBSZXNvdXJjZXMKKworQG5vaW5kZW50CitTaXplb2YgdmFyaW91cyBzdHJ1Y3R1cmVzOgorQGl0ZW1pemUgQGFzaXMKK0BpdGVtCittc3FpZF9kcyAgICAgICAgNTIgICAvKiAxIHBlciBtZXNzYWdlICBxdWV1ZSAuLiBkeW5hbWljICovCitAaXRlbQorbXNnICAgICAgICAgICAgIDE2ICAgLyogMSBmb3IgZWFjaCBtZXNzYWdlIGluIHN5c3RlbSAuLiBkeW5hbWljICovCitAaXRlbQorbXNnYnVmICAgICAgICAgICA4ICAgLyogYWxsb2NhdGVkIGJ5IHVzZXIgKi8KK0BlbmQgaXRlbWl6ZQorCitAbm9pbmRlbnQKK0xpbWl0cworQGl0ZW1pemUgQGJ1bGxldAorQGl0ZW0KK01TR01OSSA6IG51bWJlciBvZiBtZXNzYWdlIHF1ZXVlIGlkZW50aWZpZXJzIC4uLiBwb2xpY3kuCitAaXRlbQorTVNHTUFYIDogbWF4IHNpemUgb2YgbWVzc2FnZS4KK0hlYWRlciBhbmQgbWVzc2FnZSBzcGFjZSBhbGxvY2F0ZWQgb24gb25lIHBhZ2UuCitNU0dNQVggPSAoUEFHRV9TSVpFIC0gc2l6ZW9mKHN0cnVjdCBtc2cpKS4KK0ltcGxlbWVudGF0aW9uIG1heGltdW0gTVNHTUFYID0gNDA4MC5AcmVmaWxsCitAaXRlbQorTVNHTU5CIDogZGVmYXVsdCBtYXggc2l6ZSBvZiBhIG1lc3NhZ2UgcXVldWUgLi4uIHBvbGljeS4KK1RoZSBzdXBlci11c2VyIGNhbiBpbmNyZWFzZSB0aGUgc2l6ZSBvZiBhCitxdWV1ZSBiZXlvbmQgTVNHTU5CIGJ5IGEgQGNvZGV7bXNnY3RsfSBjYWxsLkByZWZpbGwKK0BlbmQgaXRlbWl6ZQorCitAbm9pbmRlbnQKK1VudXNlZCBvciB1bmltcGxlbWVudGVkOkAqCitNU0dUUUwgIG1heCBudW1iZXIgb2YgbWVzc2FnZSBoZWFkZXJzIHN5c3RlbS13aWRlLkAqCitNU0dQT09MIHRvdGFsIHNpemUgaW4gYnl0ZXMgb2YgbXNnIHBvb2wuCisKKworIAorQG5vZGUgU2VtYXBob3Jlcywgc2VtZ2V0LCBtc2dsaW1pdHMsIFRvcAorQHNlY3Rpb24gU2VtYXBob3JlcworCitFYWNoIHNlbWFwaG9yZSBoYXMgYSB2YWx1ZSA+PSAwLiBBbiBpZCBwcm92aWRlcyBhY2Nlc3MgdG8gYW4gYXJyYXkKK29mIEBjb2Rle25zZW1zfSBzZW1hcGhvcmVzLiBPcGVyYXRpb25zIHN1Y2ggYXMgcmVhZCwgaW5jcmVtZW50IG9yIGRlY3JlbWVudAorc2VtYXBob3JlcyBpbiBhIHNldCBhcmUgcGVyZm9ybWVkIGJ5IHRoZSBAY29kZXtzZW1vcH0gY2FsbCB3aGljaCBwcm9jZXNzZXMKK0Bjb2Rle25zb3BzfSBvcGVyYXRpb25zIGF0IGEgdGltZS4gRWFjaCBvcGVyYXRpb24gaXMgc3BlY2lmaWVkIGluIGEgc3RydWN0CitAY29kZXtzZW1idWZ9IGRlc2NyaWJlZCBiZWxvdy4gVGhlIG9wZXJhdGlvbnMgYXJlIGFwcGxpZWQgb25seSBpZiBhbGwgb2YKK3RoZW0gc3VjY2VlZC5AcmVmaWxsCisKK0lmIHlvdSBkbyBub3QgaGF2ZSBhIG5lZWQgZm9yIHN1Y2ggYXJyYXlzLCB5b3UgYXJlIHByb2JhYmx5IGJldHRlciBvZmYgdXNpbmcKK3RoZSBAY29kZXt0ZXN0X2JpdH0sIEBjb2Rle3NldF9iaXR9IGFuZCAgQGNvZGV7Y2xlYXJfYml0fSBiaXQtb3BlcmF0aW9ucworZGVmaW5lZCBpbiA8YXNtL2JpdG9wcy5oPi5AcmVmaWxsCisKK1NlbWFwaG9yZSBvcGVyYXRpb25zIG1heSBhbHNvIGJlIHF1YWxpZmllZCBieSBhIFNFTV9VTkRPIGZsYWcgd2hpY2gKK3Jlc3VsdHMgaW4gdGhlIG9wZXJhdGlvbiBiZWluZyB1bmRvbmUgd2hlbiB0aGUgcHJvY2VzcyBleGl0cy5AcmVmaWxsCisKK0lmIGEgZGVjcmVtZW50IGNhbm5vdCBnbyB0aHJvdWdoLCBhIHByb2Nlc3Mgd2lsbCBiZSBwdXQgdG8gc2xlZXAKK29uIGEgcXVldWUgd2FpdGluZyBmb3IgdGhlIEBjb2Rle3NlbXZhbH0gdG8gaW5jcmVhc2UgdW5sZXNzIGl0IHNwZWNpZmllcworSVBDX05PV0FJVC4gQSByZWFkIG9wZXJhdGlvbiBjYW4gc2ltaWxhcmx5IHJlc3VsdCBpbiBhIHNsZWVwIG9uIGEKK3F1ZXVlIHdhaXRpbmcgZm9yIEBjb2Rle3NlbXZhbH0gdG8gYmVjb21lIDAuIChBY3R1YWxseSB0aGVyZSBhcmUKK3R3byBxdWV1ZXMgcGVyIHNlbWFwaG9yZSBhcnJheSkuQHJlZmlsbCAKKworQG5vaW5kZW50CitBIHNlbWFwaG9yZSBhcnJheSBpcyBkZXNjcmliZWQgYnk6CitAZXhhbXBsZQorc3RydWN0IHNlbWlkX2RzCisgIHN0cnVjdCBpcGNfcGVybSBzZW1fcGVybTsgICAgICAKKyAgdGltZV90ICAgICAgICAgIHNlbV9vdGltZTsgICAgICAvKiBsYXN0IHNlbW9wIHRpbWUgKi8KKyAgdGltZV90ICAgICAgICAgIHNlbV9jdGltZTsgICAgICAvKiBsYXN0IGNoYW5nZSB0aW1lICovCisgIHN0cnVjdCB3YWl0X3F1ZXVlICpldmVudG47CSAgLyogd2FpdCBmb3IgYSBzZW12YWwgdG8gaW5jcmVhc2UgKi8KKyAgc3RydWN0IHdhaXRfcXVldWUgKmV2ZW50ejsgICAgICAvKiB3YWl0IGZvciBhIHNlbXZhbCB0byBiZWNvbWUgMCAqLworICBzdHJ1Y3Qgc2VtX3VuZG8gICp1bmRvOyAgICAgICAgIC8qIHVuZG8gZW50cmllcyAqLworICB1c2hvcnQgICAgICAgICAgc2VtX25zZW1zOyAgICAgIC8qIG5vLiBvZiBzZW1hcGhvcmVzIGluIGFycmF5ICovCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitFYWNoIHNlbWFwaG9yZSBpcyBkZXNjcmliZWQgaW50ZXJuYWxseSBieSA6CitAZXhhbXBsZQorc3RydWN0IHNlbQorICBzaG9ydCAgIHNlbXBpZDsgICAgICAgICAvKiBwaWQgb2YgbGFzdCBzZW1vcCgpICovCisgIHVzaG9ydCAgc2VtdmFsOyAgICAgICAgIC8qIGN1cnJlbnQgdmFsdWUgKi8KKyAgdXNob3J0ICBzZW1uY250OyAgICAgICAgLyogbnVtIHByb2NzIGF3YWl0aW5nIGluY3JlYXNlIGluIHNlbXZhbCAqLworICB1c2hvcnQgIHNlbXpjbnQ7ICAgICAgICAvKiBudW0gcHJvY3MgYXdhaXRpbmcgc2VtdmFsID0gMCAqLworQGVuZCBleGFtcGxlCisKK0BtZW51CisqIHNlbWdldDo6CisqIHNlbW9wOjoKKyogc2VtY3RsOjoKKyogc2VtbGltaXRzOjogTGltaXRzIGltcG9zZWQgYnkgdGhpcyBpbXBsZW1lbnRhdGlvbi4KK0BlbmQgbWVudQorCitAbm9kZSBzZW1nZXQsIHNlbW9wLCBTZW1hcGhvcmVzLCBTZW1hcGhvcmVzCitAc3Vic2VjdGlvbiBzZW1nZXQKKworQG5vaW5kZW50CitBIHNlbWFwaG9yZSBhcnJheSBpcyBhbGxvY2F0ZWQgYnkgYSBzZW1nZXQgc3lzdGVtIGNhbGw6CisKK0BleGFtcGxlCitzZW1pZCA9IHNlbWdldCAoa2V5X3Qga2V5LCBpbnQgbnNlbXMsIGludCBzZW1mbGcpOworQGVuZCBleGFtcGxlCisKK0BpdGVtaXplIEBidWxsZXQKK0BpdGVtCitAY29kZXtrZXl9IDogYW4gaW50ZWdlciB1c3VhbGx5IGdvdCBmcm9tIEBjb2Rle2Z0b2t9IG9yIElQQ19QUklWQVRFCitAaXRlbQorQGNvZGV7bnNlbXN9IDoKK0BpdGVtaXplIEBhc2lzCitAaXRlbQorIyBvZiBzZW1hcGhvcmVzIGluIGFycmF5ICgwIDw9IG5zZW1zIDw9IFNFTU1TTCA8PSBTRU1NTlMpCitAaXRlbQorMCA9PiBkb250IGNhcmUgY2FuIGJlIHVzZWQgd2hlbiBub3QgY3JlYXRpbmcgdGhlIHJlc291cmNlLgorSWYgc3VjY2Vzc2Z1bCB5b3UgYWx3YXlzIGdldCBhY2Nlc3MgdG8gdGhlIGVudGlyZSBhcnJheSBhbnl3YXkuQHJlZmlsbAorQGVuZCBpdGVtaXplCitAaXRlbQorc2VtZmxnIDoKK0BpdGVtaXplIEBhc2lzCitAaXRlbQorSVBDX0NSRUFUIHVzZWQgdG8gY3JlYXRlIGEgbmV3IHJlc291cmNlCitAaXRlbQorSVBDX0VYQ0wgdXNlZCB3aXRoIElQQ19DUkVBVCB0byBlbnN1cmUgZmFpbHVyZSBpZiB0aGUgcmVzb3VyY2UgZXhpc3RzLgorQGl0ZW0KK3J3eHJ3eHJ3eCAgYWNjZXNzIHBlcm1pc3Npb25zLgorQGVuZCBpdGVtaXplCitAaXRlbQorcmV0dXJucyA6IHNlbWlkIG9uIHN1Y2Nlc3MuIC0xIG9uIGZhaWx1cmUuCitAZW5kIGl0ZW1pemUKKworQW4gYXJyYXkgb2YgbnNlbXMgc2VtYXBob3JlcyBpcyBhbGxvY2F0ZWQgaWYgdGhlcmUgaXMgbm8gcmVzb3VyY2UKK2NvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGtleS4gVGhlIGFjY2VzcyBwZXJtaXNzaW9ucyBzcGVjaWZpZWQgYXJlCit0aGVuIGNvcGllZCBpbnRvIHRoZSBAY29kZXtzZW1fcGVybX0gc3RydWN0IGZvciB0aGUgYXJyYXkgYWxvbmcgd2l0aCB0aGUKK3VzZXItaWQgZXRjLiBUaGUgdXNlciBtdXN0IHVzZSB0aGUgSVBDX0NSRUFUIGZsYWcgb3Iga2V5ID0gSVBDX1BSSVZBVEUKK2lmIGEgbmV3IHJlc291cmNlIGlzIHRvIGJlIGNyZWF0ZWQuQHJlZmlsbAorCitAbm9pbmRlbnQKK0Vycm9yczpAKgorQG5vaW5kZW50CitFSU5WQUwgOiBuc2VtcyBub3QgaW4gYWJvdmUgcmFuZ2UgKGFsbG9jYXRlKS5AKgorICAgICAgIG5zZW1zIGdyZWF0ZXIgdGhhbiBudW1iZXIgaW4gYXJyYXkgKHByb2N1cmUpLkAqCitAbm9pbmRlbnQKK0VFWElTVCA6IChhbGxvY2F0ZSkgSVBDX0NSRUFUIHwgSVBDX0VYQ0wgc3BlY2lmaWVkIGFuZCByZXNvdXJjZSBleGlzdHMuQCoKK0Bub2luZGVudAorRUlEUk0gIDogKHByb2N1cmUpIFRoZSByZXNvdXJjZSB3YXMgcmVtb3ZlZC5AKgorQG5vaW5kZW50CitFTk9NRU0gOiBjb3VsZCBub3QgYWxsb2NhdGUgc3BhY2UgZm9yIHNlbWFwaG9yZSBhcnJheS5AKgorQG5vaW5kZW50CitFTk9TUEMgOiBObyBhcnJheXMgYXZhaWxhYmxlIChTRU1NTkkpLCB0b28gZmV3IHNlbWFwaG9yZXMgYXZhaWxhYmxlIChTRU1NTlMpLkAqCitAbm9pbmRlbnQKK0VOT0VOVCA6IFJlc291cmNlIGRvZXMgbm90IGV4aXN0IGFuZCBJUENfQ1JFQVQgbm90IHNwZWNpZmllZC5AKgorQG5vaW5kZW50CitFQUNDRVMgOiAocHJvY3VyZSkgZG8gbm90IGhhdmUgcGVybWlzc2lvbiBmb3Igc3BlY2lmaWVkIGFjY2Vzcy4KKworCitAbm9kZSBzZW1vcCwgc2VtY3RsLCBzZW1nZXQsIFNlbWFwaG9yZXMKK0BzdWJzZWN0aW9uIHNlbW9wCisKK0Bub2luZGVudAorT3BlcmF0aW9ucyBvbiBzZW1hcGhvcmUgYXJyYXlzIGFyZSBwZXJmb3JtZWQgYnkgY2FsbGluZyBzZW1vcCA6CisKK0BleGFtcGxlCitpbnQgc2Vtb3AgKGludCBzZW1pZCwgc3RydWN0IHNlbWJ1ZiAqc29wcywgdW5zaWduZWQgbnNvcHMpOworQGVuZCBleGFtcGxlCitAaXRlbWl6ZSBAYnVsbGV0CitAaXRlbQorc2VtaWQgOiBpZCBvYnRhaW5lZCBieSBhIGNhbGwgdG8gc2VtZ2V0LgorQGl0ZW0KK3NvcHMgOiBhcnJheSBvZiBzZW1hcGhvcmUgb3BlcmF0aW9ucy4KK0BpdGVtCituc29wcyA6IG51bWJlciBvZiBvcGVyYXRpb25zIGluIGFycmF5ICgwIDwgbnNvcHMgPCBTRU1PUE0pLgorQGl0ZW0KK3JldHVybnMgOiBzZW12YWwgZm9yIGxhc3Qgb3BlcmF0aW9uLiAtMSBvbiBmYWlsdXJlLgorQGVuZCBpdGVtaXplCisKK0Bub2luZGVudAorT3BlcmF0aW9ucyBhcmUgZGVzY3JpYmVkIGJ5IGEgc3RydWN0dXJlIHNlbWJ1ZjoKK0BleGFtcGxlCitzdHJ1Y3Qgc2VtYnVmCisgICAgdXNob3J0ICBzZW1fbnVtOyAgICAgICAgLyogc2VtYXBob3JlIGluZGV4IGluIGFycmF5ICovCisgICAgc2hvcnQgICBzZW1fb3A7ICAgICAgICAgLyogc2VtYXBob3JlIG9wZXJhdGlvbiAqLworICAgIHNob3J0ICAgc2VtX2ZsZzsgICAgICAgIC8qIG9wZXJhdGlvbiBmbGFncyAqLworQGVuZCBleGFtcGxlCisKK1RoZSB2YWx1ZSBAY29kZXtzZW1fb3B9IGlzIHRvIGJlIGFkZGVkIChzaWduZWQpIHRvIHRoZSBjdXJyZW50IHZhbHVlIHNlbXZhbAorb2YgdGhlIHNlbWFwaG9yZSB3aXRoIGluZGV4IHNlbV9udW0gKDAgLi4gbnNlbXMgLTEpIGluIHRoZSBzZXQuCitGbGFncyByZWNvZ25pemVkIGluIHNlbV9mbGcgYXJlIElQQ19OT1dBSVQgYW5kIFNFTV9VTkRPLkByZWZpbGwKKworQG5vaW5kZW50CitUd28ga2luZHMgb2Ygb3BlcmF0aW9ucyBjYW4gcmVzdWx0IGluIHdhaXQ6CitAZW51bWVyYXRlCitAaXRlbQorSWYgc2VtX29wIGlzIDAgKHJlYWQgb3BlcmF0aW9uKSBhbmQgc2VtdmFsIGlzIG5vbi16ZXJvLCB0aGUgcHJvY2Vzcworc2xlZXBzIG9uIGEgcXVldWUgd2FpdGluZyBmb3Igc2VtdmFsIHRvIGJlY29tZSB6ZXJvIG9yIHJldHVybnMgd2l0aAorZXJyb3IgRUFHQUlOIGlmIChJUENfTk9XQUlUIHwgc2VtX2ZsZykgaXMgdHJ1ZS5AcmVmaWxsCitAaXRlbQorSWYgKHNlbV9vcCA8IDApIGFuZCAoc2VtdmFsICsgc2VtX29wIDwgMCksIHRoZSBwcm9jZXNzIGVpdGhlciBzbGVlcHMKK29uIGEgcXVldWUgd2FpdGluZyBmb3Igc2VtdmFsIHRvIGluY3JlYXNlIG9yIHJldHVybnMgd2l0aCBlcnJvciBFQUdBSU4gaWYKKyhzZW1fZmxnICYgSVBDX05PV0FJVCkgaXMgdHJ1ZS5AcmVmaWxsCitAZW5kIGVudW1lcmF0ZQorCitUaGUgYXJyYXkgc29wcyBpcyBmaXJzdCByZWFkIGluIGFuZCBwcmVsaW1pbmFyeSBjaGVja3MgcGVyZm9ybWVkIG9uCit0aGUgYXJndW1lbnRzLiBUaGUgb3BlcmF0aW9ucyBhcmUgcGFyc2VkIHRvIGRldGVybWluZSBpZiBhbnkgb2YKK3RoZW0gbmVlZHMgd3JpdGUgcGVybWlzc2lvbnMgb3IgcmVxdWVzdHMgYW4gdW5kbyBvcGVyYXRpb24uQHJlZmlsbAorCitUaGUgb3BlcmF0aW9ucyBhcmUgdGhlbiB0cmllZCBhbmQgdGhlIHByb2Nlc3Mgc2xlZXBzIGlmIGFueSBvcGVyYXRpb24KK3RoYXQgZG9lcyBub3Qgc3BlY2lmeSBJUENfTk9XQUlUIGNhbm5vdCBnbyB0aHJvdWdoLiBJZiBhIHByb2Nlc3Mgc2xlZXBzCitpdCByZXBlYXRzIHRoZXNlIGNoZWNrcyBvbiB3YWtpbmcgdXAuIElmIGFueSBvcGVyYXRpb24gdGhhdCByZXF1ZXN0cworSVBDX05PV0FJVCwgY2Fubm90IGdvIHRocm91Z2ggYXQgYW55IHN0YWdlLCB0aGUgY2FsbCByZXR1cm5zIHdpdGggZXJybm8KK3NldCB0byBFQUdBSU4uQHJlZmlsbAorCitGaW5hbGx5LCBvcGVyYXRpb25zIGFyZSBjb21taXR0ZWQgd2hlbiBhbGwgZ28gdGhyb3VnaCB3aXRob3V0IGFuIGludGVydmVuaW5nCitzbGVlcC4gUHJvY2Vzc2VzIHdhaXRpbmcgb24gdGhlIHplcm9fcXVldWUgb3IgaW5jcmVtZW50X3F1ZXVlIGFyZSBhd2FrZW5lZAoraWYgYW55IG9mIHRoZSBzZW12YWwncyBiZWNvbWVzIHplcm8gb3IgaXMgaW5jcmVtZW50ZWQgcmVzcGVjdGl2ZWx5LkByZWZpbGwKKworQG5vaW5kZW50CitFcnJvcnM6QCoKK0Bub2luZGVudAorRTJCSUcgIDogbnNvcHMgPiBTRU1PUE0uQCoKK0Bub2luZGVudAorRUFDQ0VTIDogRG8gbm90IGhhdmUgcGVybWlzc2lvbiBmb3IgcmVxdWVzdGVkIChyZWFkL2FsdGVyKSBhY2Nlc3MuQCoKK0Bub2luZGVudAorRUFHQUlOIDogQW4gb3BlcmF0aW9uIHdpdGggSVBDX05PV0FJVCBzcGVjaWZpZWQgY291bGQgbm90IGdvIHRocm91Z2guQCoKK0Bub2luZGVudAorRUZBVUxUIDogVGhlIGFycmF5IHNvcHMgaXMgbm90IGFjY2Vzc2libGUuQCoKK0Bub2luZGVudAorRUZCSUcgIDogQW4gb3BlcmF0aW9uIGhhZCBzZW1udW0gPj0gbnNlbXMuQCoKK0Bub2luZGVudAorRUlEUk0gIDogVGhlIHJlc291cmNlIHdhcyByZW1vdmVkLkAqCitAbm9pbmRlbnQKK0VJTlRSICA6IFRoZSBwcm9jZXNzIHdhcyBpbnRlcnJ1cHRlZCBvbiBpdHMgd2F5IHRvIGEgd2FpdCBxdWV1ZS5AKgorQG5vaW5kZW50CitFSU5WQUwgOiBuc29wcyBpcyAwLCBzZW1pZCA8IDAgb3IgdW51c2VkLkAqCitAbm9pbmRlbnQKK0VOT01FTSA6IFNFTV9VTkRPIHJlcXVlc3RlZC4gQ291bGQgbm90IGFsbG9jYXRlIHNwYWNlIGZvciB1bmRvIHN0cnVjdHVyZS5AKgorQG5vaW5kZW50CitFUkFOR0UgOiBzZW1fb3AgKyBzZW12YWwgPiBTRU1WTVggZm9yIHNvbWUgb3BlcmF0aW9uLgorCisKK0Bub2RlIHNlbWN0bCwgc2VtbGltaXRzLCBzZW1vcCwgU2VtYXBob3JlcworQHN1YnNlY3Rpb24gc2VtY3RsCisKK0BleGFtcGxlCitpbnQgc2VtY3RsIChpbnQgc2VtaWQsIGludCBzZW1udW0sIGludCBjbWQsIHVuaW9uIHNlbXVuIGFyZyk7CitAZW5kIGV4YW1wbGUKKworQGl0ZW1pemUgQGJ1bGxldAorQGl0ZW0KK3NlbWlkIDogaWQgb2J0YWluZWQgYnkgYSBjYWxsIHRvIHNlbWdldC4KK0BpdGVtCitjbWQgOgorQGl0ZW1pemUgQGFzaXMKK0BpdGVtIAorR0VUUElEICByZXR1cm4gcGlkIGZvciB0aGUgcHJvY2VzcyB0aGF0IGV4ZWN1dGVkIHRoZSBsYXN0IHNlbW9wLgorQGl0ZW0gCitHRVRWQUwgIHJldHVybiBzZW12YWwgb2Ygc2VtYXBob3JlIHdpdGggaW5kZXggc2VtbnVtLgorQGl0ZW0gCitHRVROQ05UIHJldHVybiBudW1iZXIgb2YgcHJvY2Vzc2VzIHdhaXRpbmcgZm9yIHNlbXZhbCB0byBpbmNyZWFzZS4KK0BpdGVtIAorR0VUWkNOVCByZXR1cm4gbnVtYmVyIG9mIHByb2Nlc3NlcyB3YWl0aW5nIGZvciBzZW12YWwgdG8gYmVjb21lIDAKK0BpdGVtIAorU0VUVkFMICBzZXQgc2VtdmFsID0gYXJnLnZhbC4KK0BpdGVtIAorR0VUQUxMICByZWFkIGFsbCBzZW12YWwncyBpbnRvIGFyZy5hcnJheS4KK0BpdGVtIAorU0VUQUxMICBzZXQgYWxsIHNlbXZhbCdzIHdpdGggdmFsdWVzIGdpdmVuIGluIGFyZy5hcnJheS4KK0BlbmQgaXRlbWl6ZQorQGl0ZW0KK3JldHVybnMgOiAwIG9uIHN1Y2Nlc3Mgb3IgYXMgZ2l2ZW4gYWJvdmUuIC0xIG9uIGZhaWx1cmUuCitAZW5kIGl0ZW1pemUKKworVGhlIGZpcnN0IDQgb3BlcmF0ZSBvbiB0aGUgc2VtYXBob3JlIHdpdGggaW5kZXggc2VtbnVtIGluIHRoZSBzZXQuCitUaGUgbGFzdCB0d28gb3BlcmF0ZSBvbiBhbGwgc2VtYXBob3JlcyBpbiB0aGUgc2V0LkByZWZpbGwKKworQGNvZGV7YXJnfSBpcyBhIHVuaW9uIDoKK0BleGFtcGxlCit1bmlvbiBzZW11bgorICAgIGludCB2YWw7ICAgICAgICAgICAgICAgdmFsdWUgZm9yIFNFVFZBTC4KKyAgICBzdHJ1Y3Qgc2VtaWRfZHMgKmJ1ZjsgIGJ1ZmZlciBmb3IgSVBDX1NUQVQgYW5kIElQQ19TRVQuCisgICAgdXNob3J0ICphcnJheTsgICAgICAgICBhcnJheSBmb3IgR0VUQUxMIGFuZCBTRVRBTEwKK0BlbmQgZXhhbXBsZQorCitAaXRlbWl6ZSBAYnVsbGV0CitAaXRlbQorSVBDX1NFVCwgU0VUVkFMLCBTRVRBTEwgOiBzZW1fY3RpbWUgaXMgdXBkYXRlZC4KK0BpdGVtCitTRVRWQUwsIFNFVEFMTCA6IFVuZG8gZW50cmllcyBhcmUgY2xlYXJlZCBmb3IgYWx0ZXJlZCBzZW1hcGhvcmVzIGluCithbGwgcHJvY2Vzc2VzLiBQcm9jZXNzZXMgc2xlZXBpbmcgb24gdGhlIHdhaXQgcXVldWVzIGFyZQorYXdha2VuZWQgaWYgYSBzZW12YWwgYmVjb21lcyAwIG9yIGluY3JlYXNlcy5AcmVmaWxsCitAaXRlbQorSVBDX1NFVCA6IHNlbV9wZXJtLnVpZCwgc2VtX3Blcm0uZ2lkLCBzZW1fcGVybS5tb2RlIGFyZSB1cGRhdGVkIGZyb20KK3VzZXIgc3VwcGxpZWQgdmFsdWVzLkByZWZpbGwKK0BlbmQgaXRlbWl6ZQorCitAbm9pbmRlbnQKK0Vycm9yczoKK0Bub2luZGVudAorRUFDQ0VTIDogZG8gbm90IGhhdmUgcGVybWlzc2lvbiBmb3Igc3BlY2lmaWVkIGFjY2Vzcy5AKgorQG5vaW5kZW50CitFRkFVTFQgOiBhcmcgaXMgbm90IGFjY2Vzc2libGUuQCoKK0Bub2luZGVudAorRUlEUk0gIDogVGhlIHJlc291cmNlIHdhcyByZW1vdmVkLkAqCitAbm9pbmRlbnQKK0VJTlZBTCA6IHNlbWlkIDwgMCBvciBzZW1udW0gPCAwIG9yIHNlbW51bSA+PSBuc2Vtcy5AKgorQG5vaW5kZW50CitFUEVSTSAgOiBJUENfUk1JRCwgSVBDX1NFVCAuLi4gbm90IGNyZWF0b3IsIG93bmVyIG9yIHN1cGVyLXVzZXIuQCoKK0Bub2luZGVudAorRVJBTkdFIDogYXJnLmFycmF5W2ldLnNlbXZhbCA+IFNFTVZNWCBvciA8IDAgZm9yIHNvbWUgaS4KKworCisKKworQG5vZGUgc2VtbGltaXRzLCBTaGFyZWQgTWVtb3J5LCBzZW1jdGwsIFNlbWFwaG9yZXMKK0BzdWJzZWN0aW9uIExpbWl0cyBvbiBTZW1hcGhvcmUgUmVzb3VyY2VzCisKK0Bub2luZGVudAorU2l6ZW9mIHZhcmlvdXMgc3RydWN0dXJlczoKK0BleGFtcGxlCitzZW1pZF9kcyAgICA0NCAgIC8qIDEgcGVyIHNlbWFwaG9yZSBhcnJheSAuLiBkeW5hbWljICovCitzZW0gICAgICAgICAgOCAgIC8qIDEgZm9yIGVhY2ggc2VtYXBob3JlIGluIHN5c3RlbSAuLiBkeW5hbWljICovCitzZW1idWYgICAgICAgNiAgIC8qIGFsbG9jYXRlZCBieSB1c2VyICovCitzZW1fdW5kbyAgICAyMCAgIC8qIDEgZm9yIGVhY2ggdW5kbyByZXF1ZXN0IC4uIGR5bmFtaWMgKi8KK0BlbmQgZXhhbXBsZQorCitAbm9pbmRlbnQKK0xpbWl0cyA6QCoKK0BpdGVtaXplIEBidWxsZXQKK0BpdGVtCitTRU1WTVggIDMyNzY3ICBzZW1hcGhvcmUgbWF4aW11bSB2YWx1ZSAoc2hvcnQpLgorQGl0ZW0KK1NFTU1OSSAgbnVtYmVyIG9mIHNlbWFwaG9yZSBpZGVudGlmaWVycyAob3IgYXJyYXlzKSBzeXN0ZW0gd2lkZS4uLnBvbGljeS4KK0BpdGVtCitTRU1NU0wgIG1heGltdW0gIG51bWJlciAgb2Ygc2VtYXBob3JlcyBwZXIgaWQuCisxIHNlbWlkX2RzIHBlciBhcnJheSwgMSBzdHJ1Y3Qgc2VtIHBlciBzZW1hcGhvcmUKKz0+IFNFTU1TTCA9ICAoUEFHRV9TSVpFIC0gc2l6ZW9mKHNlbWlkX2RzKSkgLyBzaXplb2Yoc2VtKS4KK0ltcGxlbWVudGF0aW9uIG1heGltdW0gU0VNTVNMID0gNTAwLkByZWZpbGwKK0BpdGVtCitTRU1NTlMgIG1heGltdW0gbnVtYmVyIG9mIHNlbWFwaG9yZXMgc3lzdGVtIHdpZGUgLi4uIHBvbGljeS4KK1NldHRpbmcgU0VNTU5TID49IFNFTU1TTCpTRU1NTkkgbWFrZXMgaXQgaXJyZWxldmVudC5AcmVmaWxsCitAaXRlbQorU0VNT1BNIAlNYXhpbXVtIG51bWJlciBvZiBvcGVyYXRpb25zIGluIG9uZSBzZW1vcCBjYWxsLi4ucG9saWN5LgorQGVuZCBpdGVtaXplCisKK0Bub2luZGVudAorVW51c2VkIG9yIHVuaW1wbGVtZW50ZWQ6QCoKK0Bub2luZGVudAorU0VNQUVNICBhZGp1c3Qgb24gZXhpdCBtYXggdmFsdWUuQCoKK0Bub2luZGVudAorU0VNTU5VICBudW1iZXIgb2YgdW5kbyBzdHJ1Y3R1cmVzIHN5c3RlbS13aWRlLkAqCitAbm9pbmRlbnQKK1NFTVVNRSAgbWF4aW11bSBudW1iZXIgb2YgdW5kbyBlbnRyaWVzIHBlciBwcm9jZXNzLgorCisKKworQG5vZGUgU2hhcmVkIE1lbW9yeSwgc2htZ2V0LCBzZW1saW1pdHMsIFRvcAorQHNlY3Rpb24gU2hhcmVkIE1lbW9yeQorCitTaGFyZWQgbWVtb3J5IGlzIGRpc3RpbmN0IGZyb20gdGhlIHNoYXJpbmcgb2YgcmVhZC1vbmx5IGNvZGUgcGFnZXMgb3IKK3RoZSBzaGFyaW5nIG9mIHVuYWx0ZXJlZCBkYXRhIHBhZ2VzIHRoYXQgaXMgYXZhaWxhYmxlIGR1ZSB0byB0aGUKK2NvcHktb24td3JpdGUgbWVjaGFuaXNtLiBUaGUgZXNzZW50aWFsIGRpZmZlcmVuY2UgaXMgdGhhdCB0aGUKK3NoYXJlZCBwYWdlcyBhcmUgZGlydHkgKGluIHRoZSBjYXNlIG9mIFNoYXJlZCBtZW1vcnkpIGFuZCBjYW4gYmUKK21hZGUgdG8gYXBwZWFyIGF0IGEgY29udmVuaWVudCBsb2NhdGlvbiBpbiB0aGUgcHJvY2VzcycgYWRkcmVzcyBzcGFjZS5AcmVmaWxsCisKK0Bub2luZGVudAorQSBzaGFyZWQgc2VnbWVudCBpcyBkZXNjcmliZWQgYnkgOgorQGV4YW1wbGUKK3N0cnVjdCBzaG1pZF9kcworICAgIHN0cnVjdCAgaXBjX3Blcm0gc2htX3Blcm07CisgICAgaW50ICAgICBzaG1fc2Vnc3o7ICAgICAgICAgICAgICAvKiBzaXplIG9mIHNlZ21lbnQgKGJ5dGVzKSAqLworICAgIHRpbWVfdCAgc2htX2F0aW1lOyAgICAgICAgICAgICAgLyogbGFzdCBhdHRhY2ggdGltZSAqLworICAgIHRpbWVfdCAgc2htX2R0aW1lOyAgICAgICAgICAgICAgLyogbGFzdCBkZXRhY2ggdGltZSAqLworICAgIHRpbWVfdCAgc2htX2N0aW1lOyAgICAgICAgICAgICAgLyogbGFzdCBjaGFuZ2UgdGltZSAqLworICAgIHVsb25nICAgKnNobV9wYWdlczsgICAgICAgICAgICAgLyogaW50ZXJuYWwgcGFnZSB0YWJsZSAqLworICAgIHVzaG9ydCAgc2htX2NwaWQ7ICAgICAgICAgICAgICAgLyogcGlkLCBjcmVhdG9yICovCisgICAgdXNob3J0ICBzaG1fbHBpZDsgICAgICAgICAgICAgICAvKiBwaWQsIGxhc3Qgb3BlcmF0aW9uICovCisgICAgc2hvcnQgICBzaG1fbmF0dGNoOyAgICAgICAgICAgICAvKiBuby4gb2YgY3VycmVudCBhdHRhY2hlcyAqLworQGVuZCBleGFtcGxlCisKK0Egc2htZ2V0IGFsbG9jYXRlcyBhIHNobWlkX2RzIGFuZCBhbiBpbnRlcm5hbCBwYWdlIHRhYmxlLiBBIHNobWF0CittYXBzIHRoZSBzZWdtZW50IGludG8gdGhlIHByb2Nlc3MnIGFkZHJlc3Mgc3BhY2Ugd2l0aCBwb2ludGVycworaW50byB0aGUgaW50ZXJuYWwgcGFnZSB0YWJsZSBhbmQgdGhlIGFjdHVhbCBwYWdlcyBhcmUgZmF1bHRlZCBpbgorYXMgbmVlZGVkLiBUaGUgbWVtb3J5IGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VnbWVudCBtdXN0IGJlIGV4cGxpY2l0bHkKK2Rlc3Ryb3llZCBieSBjYWxsaW5nIHNobWN0bCB3aXRoIElQQ19STUlELkByZWZpbGwKKworQG1lbnUKKyogc2htZ2V0OjoKKyogc2htYXQ6OgorKiBzaG1kdDo6CisqIHNobWN0bDo6CisqIHNobWxpbWl0czo6IExpbWl0cyBpbXBvc2VkIGJ5IHRoaXMgaW1wbGVtZW50YXRpb24uCitAZW5kIG1lbnUKKworCitAbm9kZSBzaG1nZXQsIHNobWF0LCBTaGFyZWQgTWVtb3J5LCBTaGFyZWQgTWVtb3J5CitAc3Vic2VjdGlvbiBzaG1nZXQKKworQG5vaW5kZW50CitBIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBpcyBhbGxvY2F0ZWQgYnkgYSBzaG1nZXQgc3lzdGVtIGNhbGw6CisKK0BleGFtcGxlCitpbnQgc2htZ2V0KGtleV90IGtleSwgaW50IHNpemUsIGludCBzaG1mbGcpOworQGVuZCBleGFtcGxlCisKK0BpdGVtaXplIEBidWxsZXQKK0BpdGVtCitrZXkgOiBhbiBpbnRlZ2VyIHVzdWFsbHkgZ290IGZyb20gQGNvZGV7ZnRva30gb3IgSVBDX1BSSVZBVEUKK0BpdGVtCitzaXplIDogc2l6ZSBvZiB0aGUgc2VnbWVudCBpbiBieXRlcyAoU0hNTUlOIDw9IHNpemUgPD0gU0hNTUFYKS4KK0BpdGVtCitzaG1mbGcgOgorQGl0ZW1pemUgQGFzaXMKK0BpdGVtCitJUENfQ1JFQVQgdXNlZCB0byBjcmVhdGUgYSBuZXcgcmVzb3VyY2UKK0BpdGVtCitJUENfRVhDTCB1c2VkIHdpdGggSVBDX0NSRUFUIHRvIGVuc3VyZSBmYWlsdXJlIGlmIHRoZSByZXNvdXJjZSBleGlzdHMuCitAaXRlbQorcnd4cnd4cnd4ICBhY2Nlc3MgcGVybWlzc2lvbnMuCitAZW5kIGl0ZW1pemUKK0BpdGVtCityZXR1cm5zIDogc2htaWQgb24gc3VjY2Vzcy4gLTEgb24gZmFpbHVyZS4KK0BlbmQgaXRlbWl6ZQorCitBIGRlc2NyaXB0b3IgZm9yIGEgc2hhcmVkIG1lbW9yeSBzZWdtZW50IGlzIGFsbG9jYXRlZCBpZiB0aGVyZSBpc24ndCBvbmUKK2NvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGtleS4gVGhlIGFjY2VzcyBwZXJtaXNzaW9ucyBzcGVjaWZpZWQgYXJlCit0aGVuIGNvcGllZCBpbnRvIHRoZSBAY29kZXtzaG1fcGVybX0gc3RydWN0IGZvciB0aGUgc2VnbWVudCBhbG9uZyB3aXRoIHRoZQordXNlci1pZCBldGMuIFRoZSB1c2VyIG11c3QgdXNlIHRoZSBJUENfQ1JFQVQgZmxhZyBvciBrZXkgPSBJUENfUFJJVkFURQordG8gYWxsb2NhdGUgYSBuZXcgc2VnbWVudC5AcmVmaWxsCisKK0lmIHRoZSBzZWdtZW50IGFscmVhZHkgZXhpc3RzLCB0aGUgYWNjZXNzIHBlcm1pc3Npb25zIGFyZSB2ZXJpZmllZCwKK2FuZCBhIGNoZWNrIGlzIG1hZGUgdG8gc2VlIHRoYXQgaXQgaXMgbm90IG1hcmtlZCBmb3IgZGVzdHJ1Y3Rpb24uQHJlZmlsbAorCitAY29kZXtzaXplfSBpcyBlZmZlY3RpdmVseSByb3VuZGVkIHVwIHRvIGEgbXVsdGlwbGUgb2YgUEFHRV9TSVpFIGFzIHNoYXJlZAorbWVtb3J5IGlzIGFsbG9jYXRlZCBpbiBwYWdlcy5AcmVmaWxsCisKK0Bub2luZGVudAorRXJyb3JzOkAqCitAbm9pbmRlbnQKK0VJTlZBTCA6IChhbGxvY2F0ZSkgU2l6ZSBub3QgaW4gcmFuZ2Ugc3BlY2lmaWVkIGFib3ZlLkAqCisgICAgICAgICAocHJvY3VyZSkgU2l6ZSBncmVhdGVyIHRoYW4gc2l6ZSBvZiBzZWdtZW50LkAqCitAbm9pbmRlbnQKK0VFWElTVCA6IChhbGxvY2F0ZSkgSVBDX0NSRUFUIHwgSVBDX0VYQ0wgc3BlY2lmaWVkIGFuZCByZXNvdXJjZSBleGlzdHMuQCoKK0Bub2luZGVudAorRUlEUk0gIDogKHByb2N1cmUpIFRoZSByZXNvdXJjZSBpcyBtYXJrZWQgZGVzdHJveWVkIG9yIHdhcyByZW1vdmVkLkAqCitAbm9pbmRlbnQKK0VOT1NQQyA6IChhbGxvY2F0ZSkgQWxsIGlkJ3MgYXJlIHRha2VuIChtYXggb2YgU0hNTU5JIGlkJ3Mgc3lzdGVtLXdpZGUpLgorQWxsb2NhdGluZyBhIHNlZ21lbnQgb2YgdGhlIHJlcXVlc3RlZCBzaXplIHdvdWxkIGV4Y2VlZCB0aGUKK3N5c3RlbSB3aWRlIGxpbWl0IG9uIHRvdGFsIHNoYXJlZCBtZW1vcnkgKFNITUFMTCkuQHJlZmlsbAorQCoKK0Bub2luZGVudAorRU5PRU5UIDogKHByb2N1cmUpIFJlc291cmNlIGRvZXMgbm90IGV4aXN0IGFuZCBJUENfQ1JFQVQgbm90IHNwZWNpZmllZC5AKgorQG5vaW5kZW50CitFQUNDRVMgOiAocHJvY3VyZSkgRG8gbm90IGhhdmUgcGVybWlzc2lvbiBmb3Igc3BlY2lmaWVkIGFjY2Vzcy5AKgorQG5vaW5kZW50CitFTk9NRU0gOiAoYWxsb2NhdGUpIENvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHNobWlkX2RzIG9yIHBnX3RhYmxlLgorCisKKworQG5vZGUgc2htYXQsIHNobWR0LCBzaG1nZXQsIFNoYXJlZCBNZW1vcnkKK0BzdWJzZWN0aW9uIHNobWF0CisKK0Bub2luZGVudAorTWFwcyBhIHNoYXJlZCBzZWdtZW50IGludG8gdGhlIHByb2Nlc3MnIGFkZHJlc3Mgc3BhY2UuCisKK0BleGFtcGxlCitjaGFyICp2aXJ0X2FkZHI7Cit2aXJ0X2FkZHIgPSAgc2htYXQgKGludCBzaG1pZCwgY2hhciAqc2htYWRkciwgaW50IHNobWZsZyk7CitAZW5kIGV4YW1wbGUKKworQGl0ZW1pemUgQGJ1bGxldAorQGl0ZW0KK3NobWlkIDogaWQgZ290IGZyb20gY2FsbCB0byBzaG1nZXQuCitAaXRlbQorc2htYWRkciA6IHJlcXVlc3RlZCBhdHRhY2ggYWRkcmVzcy5AKgorICAgIElmIHNobWFkZHIgaXMgMCB0aGUgc3lzdGVtIGZpbmRzIGFuIHVubWFwcGVkIHJlZ2lvbi5AKgorICAgIElmIGEgbm9uLXplcm8gdmFsdWUgaXMgaW5kaWNhdGVkIHRoZSB2YWx1ZSBtdXN0IGJlIHBhZ2UKKyAgICBhbGlnbmVkIG9yIHRoZSB1c2VyIG11c3Qgc3BlY2lmeSB0aGUgU0hNX1JORCBmbGFnLkByZWZpbGwKK0BpdGVtCitzaG1mbGcgOkAqCisgICAgIFNITV9SRE9OTFkgOiByZXF1ZXN0IHJlYWQtb25seSBhdHRhY2guQCoKKyAgICAgU0hNX1JORCA6IGF0dGFjaCBhZGRyZXNzIGlzIHJvdW5kZWQgRE9XTiB0byBhIG11bHRpcGxlIG9mIFNITUxCQS4KK0BpdGVtCityZXR1cm5zOiB2aXJ0dWFsIGFkZHJlc3Mgb2YgYXR0YWNoZWQgc2VnbWVudC4gLTEgb24gZmFpbHVyZS4KK0BlbmQgaXRlbWl6ZQorCitXaGVuIHNobWFkZHIgaXMgMCwgdGhlIGF0dGFjaCBhZGRyZXNzIGlzIGRldGVybWluZWQgYnkgZmluZGluZyBhbgordW5tYXBwZWQgcmVnaW9uIGluIHRoZSBhZGRyZXNzIHJhbmdlIDFHIHRvIDEuNUcsIHN0YXJ0aW5nIGF0IDEuNUcKK2FuZCBjb21pbmcgZG93biBmcm9tIHRoZXJlLiBUaGUgYWxnb3JpdGhtIGlzIHZlcnkgc2ltcGxlIHNvIHlvdQorYXJlIGVuY291cmFnZWQgdG8gYXZvaWQgbm9uLXNwZWNpZmljIGF0dGFjaGVzLgorCitAbm9pbmRlbnQKK0FsZ29yaXRobToKK0BkaXNwbGF5CitEZXRlcm1pbmUgYXR0YWNoIGFkZHJlc3MgYXMgZGVzY3JpYmVkIGFib3ZlLgorQ2hlY2sgcmVnaW9uIChzaG1hZGRyLCBzaG1hZGRyICsgc2l6ZSkgaXMgbm90IG1hcHBlZCBhbmQgYWxsb2NhdGUKK3BhZ2UgdGFibGVzICh1bmRvY3VtZW50ZWQgU0hNX1JFTUFQIGZsYWchKS4KK01hcCB0aGUgcmVnaW9uIGJ5IHNldHRpbmcgdXAgcG9pbnRlcnMgaW50byB0aGUgaW50ZXJuYWwgcGFnZSB0YWJsZS4KK0FkZCBhIGRlc2NyaXB0b3IgZm9yIHRoZSBhdHRhY2ggdG8gdGhlIHRhc2sgc3RydWN0IGZvciB0aGUgcHJvY2Vzcy4KK0Bjb2Rle3NobV9uYXR0Y2h9LCBAY29kZXtzaG1fbHBpZH0sIEBjb2Rle3NobV9hdGltZX0gYXJlIHVwZGF0ZWQuCitAZW5kIGRpc3BsYXkKKworQG5vaW5kZW50CitOb3RlczpAKgorVGhlIEBjb2Rle2Jya30gdmFsdWUgaXMgbm90IGFsdGVyZWQuCitUaGUgc2VnbWVudCBpcyBhdXRvbWF0aWNhbGx5IGRldGFjaGVkIHdoZW4gdGhlIHByb2Nlc3MgZXhpdHMuCitUaGUgc2FtZSBzZWdtZW50IG1heSBiZSBhdHRhY2hlZCBhcyByZWFkLW9ubHkgb3IgcmVhZC13cml0ZSBhbmQKK21vcmUgdGhhbiBvbmNlIGluIHRoZSBwcm9jZXNzJyBhZGRyZXNzIHNwYWNlLgorQSBzaG1hdCBjYW4gc3VjY2VlZCBvbiBhIHNlZ21lbnQgbWFya2VkIGZvciBkZXN0cnVjdGlvbi4KK1RoZSByZXF1ZXN0IGZvciBhIHBhcnRpY3VsYXIgdHlwZSBvZiBhdHRhY2ggaXMgbWFkZSB1c2luZyB0aGUgU0hNX1JET05MWSBmbGFnLgorVGhlcmUgaXMgbm8gbm90aW9uIG9mIGEgd3JpdGUtb25seSBhdHRhY2guIFRoZSByZXF1ZXN0ZWQgYXR0YWNoCitwZXJtaXNzaW9ucyBtdXN0IGZhbGwgd2l0aGluIHRob3NlIGFsbG93ZWQgYnkgQGNvZGV7c2htX3Blcm0ubW9kZX0uCisKK0Bub2luZGVudAorRXJyb3JzOkAqCitAbm9pbmRlbnQKK0VBQ0NFUyA6IERvIG5vdCBoYXZlIHBlcm1pc3Npb24gZm9yIHJlcXVlc3RlZCBhY2Nlc3MuQCoKK0Bub2luZGVudAorRUlOVkFMIDogc2htaWQgPCAwIG9yIHVudXNlZCwgc2htYWRkciBub3QgYWxpZ25lZCwgYXR0YWNoIGF0IGJyayBmYWlsZWQuQCoKK0Bub2luZGVudAorRUlEUk0gIDogcmVzb3VyY2Ugd2FzIHJlbW92ZWQuQCoKK0Bub2luZGVudAorRU5PTUVNIDogQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgZGVzY3JpcHRvciBvciBwYWdlIHRhYmxlcy4KKworCitAbm9kZSBzaG1kdCwgc2htY3RsLCBzaG1hdCwgU2hhcmVkIE1lbW9yeQorQHN1YnNlY3Rpb24gc2htZHQKKworQGV4YW1wbGUKK2ludCBzaG1kdCAoY2hhciAqc2htYWRkcik7CitAZW5kIGV4YW1wbGUKKworQGl0ZW1pemUgQGJ1bGxldAorQGl0ZW0KK3NobWFkZHIgOiBhdHRhY2ggYWRkcmVzcyBvZiBzZWdtZW50IChyZXR1cm5lZCBieSBzaG1hdCkuCitAaXRlbQorcmV0dXJucyA6IDAgb24gc3VjY2Vzcy4gLTEgb24gZmFpbHVyZS4KK0BlbmQgaXRlbWl6ZQorCitBbiBhdHRhY2hlZCBzZWdtZW50IGlzIGRldGFjaGVkIGFuZCBAY29kZXtzaG1fbmF0dGNofSBkZWNyZW1lbnRlZC4gVGhlCitvY2N1cGllZCByZWdpb24gaW4gdXNlciBzcGFjZSBpcyB1bm1hcHBlZC4gVGhlIHNlZ21lbnQgaXMgZGVzdHJveWVkCitpZiBpdCBpcyBtYXJrZWQgZm9yIGRlc3RydWN0aW9uIGFuZCBAY29kZXtzaG1fbmF0dGNofSBpcyAwLgorQGNvZGV7c2htX2xwaWR9IGFuZCBAY29kZXtzaG1fZHRpbWV9IGFyZSB1cGRhdGVkLkByZWZpbGwKKworQG5vaW5kZW50CitFcnJvcnM6QCoKK0Bub2luZGVudAorRUlOVkFMIDogTm8gc2hhcmVkIG1lbW9yeSBzZWdtZW50IGF0dGFjaGVkIGF0IHNobWFkZHIuCisKKworQG5vZGUgc2htY3RsLCBzaG1saW1pdHMsIHNobWR0LCBTaGFyZWQgTWVtb3J5CitAc3Vic2VjdGlvbiBzaG1jdGwKKworQG5vaW5kZW50CitEZXN0cm95cyBhbGxvY2F0ZWQgc2VnbWVudHMuIFJlYWRzL1dyaXRlcyB0aGUgY29udHJvbCBzdHJ1Y3R1cmVzLgorCitAZXhhbXBsZQoraW50IHNobWN0bCAoaW50IHNobWlkLCBpbnQgY21kLCBzdHJ1Y3Qgc2htaWRfZHMgKmJ1Zik7CitAZW5kIGV4YW1wbGUKKworQGl0ZW1pemUgQGJ1bGxldAorQGl0ZW0KK3NobWlkIDogaWQgZ290IGZyb20gY2FsbCB0byBzaG1nZXQuCitAaXRlbQorY21kIDogSVBDX1NUQVQsIElQQ19TRVQsIElQQ19STUlEIChAeHJlZntzeXNjYWxsc30pLgorQGl0ZW1pemUgQGFzaXMKK0BpdGVtCitJUENfU0VUIDogVXNlZCB0byBzZXQgdGhlIG93bmVyIHVpZCwgZ2lkLCBhbmQgc2htX3Blcm1zLm1vZGUgZmllbGQuCitAaXRlbQorSVBDX1JNSUQgOiBUaGUgc2VnbWVudCBpcyBtYXJrZWQgZGVzdHJveWVkLiBJdCBpcyBvbmx5IGRlc3Ryb3llZAorb24gdGhlIGxhc3QgZGV0YWNoLkByZWZpbGwKK0BpdGVtCitJUENfU1RBVCA6IFRoZSBzaG1pZF9kcyBzdHJ1Y3R1cmUgaXMgY29waWVkIGludG8gdGhlIHVzZXIgYWxsb2NhdGVkIGJ1ZmZlci4KK0BlbmQgaXRlbWl6ZQorQGl0ZW0KK2J1ZiA6IHVzZWQgdG8gcmVhZCAoSVBDX1NUQVQpIG9yIHdyaXRlIChJUENfU0VUKSBpbmZvcm1hdGlvbi4KK0BpdGVtCityZXR1cm5zIDogMCBvbiBzdWNjZXNzLCAtMSBvbiBmYWlsdXJlLgorQGVuZCBpdGVtaXplCisKK1RoZSB1c2VyIG11c3QgZXhlY3V0ZSBhbiBJUENfUk1JRCBzaG1jdGwgY2FsbCB0byBmcmVlIHRoZSBtZW1vcnkKK2FsbG9jYXRlZCBieSB0aGUgc2hhcmVkIHNlZ21lbnQuIE90aGVyd2lzZSBhbGwgdGhlIHBhZ2VzIGZhdWx0ZWQgaW4KK3dpbGwgY29udGludWUgdG8gbGl2ZSBpbiBtZW1vcnkgb3Igc3dhcC5AcmVmaWxsCisKK0Bub2luZGVudAorRXJyb3JzOkAqCitAbm9pbmRlbnQKK0VBQ0NFUyA6IERvIG5vdCBoYXZlIHBlcm1pc3Npb24gZm9yIHJlcXVlc3RlZCBhY2Nlc3MuQCoKK0Bub2luZGVudAorRUZBVUxUIDogYnVmIGlzIG5vdCBhY2Nlc3NpYmxlLkAqCitAbm9pbmRlbnQKK0VJTlZBTCA6IHNobWlkIDwgMCBvciB1bnVzZWQuQCoKK0Bub2luZGVudAorRUlEUk0gIDogaWRlbnRpZmllciBkZXN0cm95ZWQuQCoKK0Bub2luZGVudAorRVBFUk0gIDogbm90IGNyZWF0b3IsIG93bmVyIG9yIHN1cGVyLXVzZXIgKElQQ19TRVQsIElQQ19STUlEKS4KKworCitAbm9kZSBzaG1saW1pdHMsIE5vdGVzLCBzaG1jdGwsIFNoYXJlZCBNZW1vcnkKK0BzdWJzZWN0aW9uIExpbWl0cyBvbiBTaGFyZWQgTWVtb3J5IFJlc291cmNlcworCitAbm9pbmRlbnQKK0xpbWl0czoKK0BpdGVtaXplIEBidWxsZXQKK0BpdGVtCitTSE1NTkkgIG1heCBudW0gb2Ygc2hhcmVkIHNlZ21lbnRzIHN5c3RlbSB3aWRlIC4uLiA0MDk2LgorQGl0ZW0KK1NITU1BWCAgbWF4IHNoYXJlZCBtZW1vcnkgc2VnbWVudCBzaXplIChieXRlcykgLi4uIDRNCitAaXRlbQorU0hNTUlOICBtaW4gc2hhcmVkIG1lbW9yeSBzZWdtZW50IHNpemUgKGJ5dGVzKS4KKzEgYnl0ZSAodGhvdWdoIFBBR0VfU0laRSBpcyB0aGUgZWZmZWN0aXZlIG1pbmltdW0gc2l6ZSkuQHJlZmlsbAorQGl0ZW0KK1NITUFMTCAgbWF4IHNoYXJlZCBtZW0gc3lzdGVtIHdpZGUgKGluIHBhZ2VzKSAuLi4gcG9saWN5LgorQGl0ZW0KK1NITUxCQSAgc2VnbWVudCBsb3cgYm91bmRhcnkgYWRkcmVzcyBtdWx0aXBsZS4KK011c3QgYmUgcGFnZSBhbGlnbmVkLiBTSE1MQkEgPSBQQUdFX1NJWkUuQHJlZmlsbAorQGVuZCBpdGVtaXplCitAbm9pbmRlbnQKK1VudXNlZCBvciB1bmltcGxlbWVudGVkOkAqCitTSE1TRUcgOiBtYXhpbXVtIG51bWJlciBvZiBzaGFyZWQgc2VnbWVudHMgcGVyIHByb2Nlc3MuCisKKworCitAbm9kZSBOb3RlcywgVG9wLCBzaG1saW1pdHMsIFRvcAorQHNlY3Rpb24gTWlzY2VsbGFuZW91cyBOb3RlcworCitUaGUgc3lzdGVtIGNhbGxzIGFyZSBtYXBwZWQgaW50byBvbmUgLS0gQGNvZGV7c3lzX2lwY30uIFRoaXMgc2hvdWxkIGJlCit0cmFuc3BhcmVudCB0byB0aGUgdXNlci5AcmVmaWxsCisKK0BzdWJzZWN0aW9uIFNlbWFwaG9yZSBAY29kZXt1bmRvfSByZXF1ZXN0cworCitUaGVyZSBpcyBvbmUgc2VtX3VuZG8gc3RydWN0dXJlIGFzc29jaWF0ZWQgd2l0aCBhIHByb2Nlc3MgZm9yCitlYWNoIHNlbWFwaG9yZSB3aGljaCB3YXMgYWx0ZXJlZCAod2l0aCBhbiB1bmRvIHJlcXVlc3QpIGJ5IHRoZSBwcm9jZXNzLgorQGNvZGV7c2VtX3VuZG99IHN0cnVjdHVyZXMgYXJlIGZyZWVkIG9ubHkgd2hlbiB0aGUgcHJvY2VzcyBleGl0cy4KKworT25lIG1ham9yIGNhdXNlIGZvciB1bmhhcHBpbmVzcyB3aXRoIHRoZSB1bmRvIG1lY2hhbmlzbSBpcyB0aGF0CitpdCBkb2VzIG5vdCBmaXQgaW4gd2l0aCB0aGUgbm90aW9uIG9mIGhhdmluZyBhbiBhdG9taWMgc2V0IG9mCitvcGVyYXRpb25zIG9uIGFuIGFycmF5LiBUaGUgdW5kbyByZXF1ZXN0cyBmb3IgYW4gYXJyYXkgYW5kIGVhY2gKK3NlbWFwaG9yZSB0aGVyZWluIG1heSBoYXZlIGJlZW4gYWNjdW11bGF0ZWQgb3ZlciBtYW55IEBjb2Rle3NlbW9wfQorY2FsbHMuIFRodXMgdXNlIHRoZSB1bmRvIG1lY2hhbmlzbSB3aXRoIHByaXZhdGUgc2VtYXBob3JlcyBvbmx5LkByZWZpbGwKKworU2hvdWxkIHRoZSBwcm9jZXNzIHNsZWVwIGluIEBjb2Rle2V4aXR9IG9yIHNob3VsZCBhbGwgdW5kbworb3BlcmF0aW9ucyBiZSBhcHBsaWVkIHdpdGggdGhlIElQQ19OT1dBSVQgZmxhZyBpbiBlZmZlY3Q/CitDdXJyZW50bHkgIHRob3NlIHVuZG8gb3BlcmF0aW9ucyB3aGljaCBnbyB0aHJvdWdoIGltbWVkaWF0ZWx5IGFyZQorYXBwbGllZCBhbmQgdGhvc2UgdGhhdCByZXF1aXJlIGEgd2FpdCBhcmUgaWdub3JlZCBzaWxlbnRseS5AcmVmaWxsCisKK0BzdWJzZWN0aW9uIFNoYXJlZCBtZW1vcnksIEBjb2Rle21hbGxvY30gYW5kIHRoZSBAY29kZXticmt9LgorTm90ZSB0aGF0IHNpbmNlIHRoaXMgc2VjdGlvbiB3YXMgd3JpdHRlbiB0aGUgaW1wbGVtZW50YXRpb24gd2FzCitjaGFuZ2VkIHNvIHRoYXQgbm9uLXNwZWNpZmljIGF0dGFjaGVzIGFyZSBkb25lIGluIHRoZSByZWdpb24KKzFHIC0gMS41Ry4gSG93ZXZlciBtdWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgc3RpbGwgd29ydGggdGhpbmtpbmcKK2Fib3V0IHNvIEkgbGVmdCBpdCBpbi4KKworT24gbWFueSBzeXN0ZW1zLCB0aGUgc2hhcmVkIG1lbW9yeSBpcyBhbGxvY2F0ZWQgaW4gYSBzcGVjaWFsIHJlZ2lvbgorb2YgdGhlIGFkZHJlc3Mgc3BhY2UgLi4uIHdheSB1cCBzb21ld2hlcmUuIEFzIG1lbnRpb25lZCBlYXJsaWVyLAordGhpcyBpbXBsZW1lbnRhdGlvbiBhdHRhY2hlcyBzaGFyZWQgc2VnbWVudHMgYXQgdGhlIGxvd2VzdCBwb3NzaWJsZQorYWRkcmVzcy4gVGh1cyBpZiB5b3UgcGxhbiB0byB1c2UgQGNvZGV7bWFsbG9jfSwgaXQgaXMgd2lzZSB0byBtYWxsb2MgYQorbGFyZ2Ugc3BhY2UgYW5kIHRoZW4gcHJvY2VlZCB0byBhdHRhY2ggdGhlIHNoYXJlZCBzZWdtZW50cy4gVGhpcyB3YXkKK21hbGxvYyBzZXRzIHRoZSBicmsgc3VmZmljaWVudGx5IGFib3ZlIHRoZSByZWdpb24gaXQgd2lsbCB1c2UuQHJlZmlsbAorCitBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gdXNlIEBjb2Rle3Nicmt9IHRvIGFkanVzdCB0aGUgQGNvZGV7YnJrfSB2YWx1ZQorYXMgeW91IG1ha2Ugc2hhcmVkIG1lbW9yeSBhdHRhY2hlcy4gVGhlIGltcGxlbWVudGF0aW9uIGlzIG5vdCB2ZXJ5CitzbWFydCBhYm91dCBzZWxlY3RpbmcgYXR0YWNoIGFkZHJlc3Nlcy4gVXNpbmcgdGhlIHN5c3RlbSBkZWZhdWx0CithZGRyZXNzZXMgd2lsbCByZXN1bHQgaW4gZnJhZ21lbnRhdGlvbiBpZiBkZXRhY2hlcyBkbyBub3Qgb2NjdXIKK2luIHRoZSByZXZlcnNlIHNlcXVlbmNlIGFzIGF0dGFjaGVzLkByZWZpbGwKKworVGFraW5nIGNvbnRyb2wgb2YgdGhlIG1hdHRlciBpcyBwcm9iYWJseSBiZXN0LiBUaGUgcnVsZSBhcHBsaWVkCitpcyB0aGF0IGF0dGFjaGVzIGFyZSBhbGxvd2VkIGluIHVubWFwcGVkIHJlZ2lvbnMgb3RoZXIgdGhhbgoraW4gdGhlIHRleHQgc3BhY2UgKHNlZSA8YS5vdXQuaD4pLiBBbHNvIHJlbWVtYmVyIHRoYXQgYXR0YWNoIGFkZHJlc3NlcworYW5kIHNlZ21lbnQgc2l6ZXMgYXJlIG11bHRpcGxlcyBvZiBQQUdFX1NJWkUuQHJlZmlsbAorCitPbmUgbW9yZSB0cmFwIChJIHF1b3RlIEJydW5vIG9uIHRoaXMpLiBJZiB5b3UgdXNlIG1hbGxvYygpIHRvIGdldCBzcGFjZQorZm9yIHlvdXIgc2hhcmVkIG1lbW9yeSAoaWUuIHRvIGZpeCB0aGUgQGNvZGV7YnJrfSksIHlvdSBtdXN0IGVuc3VyZSB5b3UKK2dldCBhbiB1bm1hcHBlZCBhZGRyZXNzIHJhbmdlLiBUaGlzIG1lYW5zIHlvdSBtdXN0IG1hbGxvY2F0ZSBtb3JlIG1lbW9yeQordGhhbiB5b3UgaGFkIGV2ZXIgYWxsb2NhdGVkIGJlZm9yZS4gTWVtb3J5IHJldHVybmVkIGJ5IG1hbGxvYygpLCB1c2VkLAordGhlbiBmcmVlZCBieSBmcmVlKCkgYW5kIHRoZW4gYWdhaW4gcmV0dXJuZWQgYnkgbWFsbG9jIGlzIG5vIGdvb2QuCitOZWl0aGVyIGlzIGNhbGxvY2VkIG1lbW9yeS5AcmVmaWxsCisKK05vdGUgdGhhdCBhIHNoYXJlZCBtZW1vcnkgcmVnaW9uIHJlbWFpbnMgYSBzaGFyZWQgbWVtb3J5IHJlZ2lvbiB1bnRpbAoreW91IHVubWFwIGl0LiBBdHRhY2hpbmcgYSBzZWdtZW50IGF0IHRoZSBAY29kZXticmt9IGFuZCBjYWxsaW5nIG1hbGxvYworYWZ0ZXIgdGhhdCB3aWxsIHJlc3VsdCBpbiBhbiBvdmVybGFwIG9mIHdoYXQgbWFsbG9jIHRoaW5rcyBpcyBpdHMKK3NwYWNlIHdpdGggd2hhdCBpcyByZWFsbHkgYSBzaGFyZWQgbWVtb3J5IHJlZ2lvbi4gRm9yIGV4YW1wbGUgaW4gdGhlIGNhc2UKK29mIGEgcmVhZC1vbmx5IGF0dGFjaCwgeW91IHdpbGwgbm90IGJlIGFibGUgdG8gd3JpdGUgdG8gdGhlIG92ZXJsYXBwZWQKK3BvcnRpb24uQHJlZmlsbAorCisKK0BzdWJzZWN0aW9uIEZvcmssIGV4ZWMgYW5kIGV4aXQKKworT24gYSBmb3JrLCB0aGUgY2hpbGQgaW5oZXJpdHMgYXR0YWNoZWQgc2hhcmVkIG1lbW9yeSBzZWdtZW50cyBidXQKK25vdCB0aGUgc2VtYXBob3JlIHVuZG8gaW5mb3JtYXRpb24uQHJlZmlsbAorCitJbiB0aGUgY2FzZSBvZiBhbiBleGVjLCB0aGUgYXR0YWNoZWQgc2hhcmVkIHNlZ21lbnRzIGFyZSBkZXRhY2hlZC4KK1RoZSBzZW0gdW5kbyBpbmZvcm1hdGlvbiBob3dldmVyIHJlbWFpbnMgaW50YWN0LkByZWZpbGwKKworVXBvbiBleGl0LCBhbGwgYXR0YWNoZWQgc2hhcmVkIG1lbW9yeSBzZWdtZW50cyBhcmUgZGV0YWNoZWQuCitUaGUgYWRqdXN0IHZhbHVlcyBpbiB0aGUgdW5kbyBzdHJ1Y3R1cmVzIGFyZSBhZGRlZCB0byB0aGUgcmVsZXZhbnQgc2VtdmFscworaWYgdGhlIG9wZXJhdGlvbnMgYXJlIHBlcm1pdHRlZC4gRGlzYWxsb3dlZCBvcGVyYXRpb25zIGFyZSBpZ25vcmVkLkByZWZpbGwKKworCitAc3Vic2VjdGlvbiBPdGhlciBGZWF0dXJlcworCitUaGVzZSBmZWF0dXJlcyBvZiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBhcmUKK2xpa2VseSB0byBiZSBtb2RpZmllZCBpbiB0aGUgZnV0dXJlLgorCitUaGUgU0hNX0xPQ0sgYW5kIFNITV9VTkxPQ0sgZmxhZyBhcmUgYXZhaWxhYmxlIChzdXBlci11c2VyKSBmb3IgdXNlIHdpdGggdGhlCitAY29kZXtzaG1jdGx9IGNhbGwgdG8gcHJldmVudCBzd2FwcGluZyBvZiBhIHNoYXJlZCBzZWdtZW50LiBUaGUgdXNlcgorbXVzdCBmYXVsdCBpbiBhbnkgcGFnZXMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gYmUgcHJlc2VudCBhZnRlciBsb2NraW5nCitpcyBlbmFibGVkLgorCitUaGUgSVBDX0lORk8sIE1TR19TVEFULCBNU0dfSU5GTywgU0hNX1NUQVQsIFNITV9JTkZPLCBTRU1fU1RBVCwgU0VNSU5GTworQGNvZGV7Y3RsfSBjYWxscyBhcmUgdXNlZCBieSB0aGUgQGNvZGV7aXBjc30gcHJvZ3JhbSB0byBwcm92aWRlIGluZm9ybWF0aW9uCitvbiBhbGxvY2F0ZWQgcmVzb3VyY2VzLiBUaGVzZSBjYW4gYmUgbW9kaWZpZWQgYXMgbmVlZGVkIG9yIG1vdmVkIHRvIGEgcHJvYworZmlsZSBzeXN0ZW0gaW50ZXJmYWNlLgorCisKK0BzcCAzCitUaGFua3MgdG8gT3ZlIEV3ZXJsaWQsIEJydW5vIEhhaWJsZSwgVWxyaWNoIFBlZ2Vsb3cgYW5kIExpbnVzIFRvcnZhbGRzCitmb3IgaWRlYXMsIHR1dG9yaWFscywgYnVnIHJlcG9ydHMgYW5kIGZpeGVzLCBhbmQgbWVycmltZW50LiBBbmQgbW9yZQordGhhbmtzIHRvIEJydW5vLgorCisKK0Bjb250ZW50cworQGJ5ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjbWsuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9pcGNtay4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzYWY0N2UKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjbWsuMQpAQCAtMCwwICsxLDUxIEBACisuXCIgQ29weXJpZ2h0IDIwMDggSGF5ZGVuIEEuIEphbWVzIChoYXlkZW4uamFtZXNAZ21haWwuY29tKQorLlwiIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5USCAiSVBDTUsiICIxIiAiMjEgTWFyY2ggMjAwOCIgImlwY21rIiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCAiTkFNRSIKK2lwY21rIFwtIGNyZWF0ZSB2YXJpb3VzIGlwYyByZXNvdXJjZXMKKy5TSCAiU1lOT1BTSVMiCisuQiBpcGNtayBcLWgKKy5icgorLkIgaXBjbWsKKy5SQiBbIFwtTQorLklSIHNpemUgXQorLlJCIFsgXC1TCisuSVIgbnNlbXMgXQorLlJCIFsgXC1RIF0KKy5SQiBbIFwtcAorLklSIG1vZGUgXQorLlNIICJERVNDUklQVElPTiIKKy5CIGlwY21rCithbGxvd3MgeW91IHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnRzLCBtZXNzYWdlIHF1ZXVlcyBvciBzZW1hcGhvcmUgYXJyYXlzLgorLlNIICJPUFRJT05TIgorLlRQCitSZXNvdXJjZXMgbWF5IGJlIHNwZWNpZmllZCBhcyBmb2xsb3dzOgorLlRQCisuQkkgXC1NICIgc2l6ZSIKK3NoYXJlZCBtZW1vcnkgc2VnbWVudCBvZiBzaXplCisuSSBzaXplCisuVFAKKy5CSSBcLVMgIiBuc2VtcyIKK3NlbWFwaG9yZSBhcnJheSB3aXRoCisuSSBuc2VtcworZWxlbWVudHMKKy5UUAorLkJJIFwtUQorbWVzc2FnZSBxdWV1ZQorLlRQCitPdGhlciBvcHRpb25zCisuVFAKKy5CSSBcLXAgIiBtb2RlIgorcGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlIChkZWZhdWx0IGlzIDA2NDQpCisuVFAKKy5CIFwtaAorZGlzcGxheSBhIHNob3J0IGhlbHAgbWVzc2FnZSBhbmQgZXhpdAorLlBQCisuU0ggIlNFRSBBTFNPIgorLkJSIGlwY3JtICgxKSwKKy5CUiBpcGNzICgxKQorLlNIICJBVVRIT1IiCitIYXlkZW4gQS4gSmFtZXMgKGhheWRlbi5qYW1lc0BnbWFpbC5jb20pCisuU0ggIkFWQUlMQUJJTElUWSIKK1RoZSBpcGNtayBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWxcLWxpbnV4XC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWxcLWxpbnV4XC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjbWsuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9pcGNtay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlNjYzYmYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjbWsuYwpAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqICBpcGNtay5jIC0gdXNlZCB0byBjcmVhdGUgYWQtaG9jIElQQyBzZWdtZW50cworICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggSGF5ZGVuIEEuIEphbWVzIChoYXlkZW4uamFtZXNAZ21haWwuY29tKQorICogIENvcHlyaWdodCAoQykgMjAwOCBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZXJyLmg+CisjaW5jbHVkZSA8dGltZS5oPgorCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL2lwYy5oPgorI2luY2x1ZGUgPHN5cy9zaG0uaD4KKyNpbmNsdWRlIDxzeXMvc2VtLmg+CisjaW5jbHVkZSA8c3lzL21zZy5oPgorCisjaW5jbHVkZSAibmxzLmgiCisKK3N0YXRpYyBjb25zdCBjaGFyICpwcm9nbmFtZTsKKwora2V5X3QgY3JlYXRlS2V5KHZvaWQpCit7CisJc3JhbmRvbSggdGltZSggTlVMTCApICk7CisJcmV0dXJuIHJhbmRvbSgpOworfQorCitpbnQgY3JlYXRlU2htKHNpemVfdCBzaXplLCBpbnQgcGVybWlzc2lvbikKK3sKKwlpbnQgcmVzdWx0ID0gLTE7CisJaW50IHNobWlkOworCWtleV90IGtleSA9IGNyZWF0ZUtleSgpOworCisJaWYgKC0xICE9IChzaG1pZCA9IHNobWdldChrZXksIHNpemUsIHBlcm1pc3Npb24gfCBJUENfQ1JFQVQpKSkKKwkJcmVzdWx0ID0gc2htaWQ7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCitpbnQgY3JlYXRlTXNnKGludCBwZXJtaXNzaW9uKQoreworCWludCByZXN1bHQgPSAtMTsKKwlpbnQgbXNnaWQ7CisJa2V5X3Qga2V5ID0gY3JlYXRlS2V5KCk7CisKKwlpZiAoLTEgIT0gKG1zZ2lkID0gbXNnZ2V0KGtleSwgcGVybWlzc2lvbiB8IElQQ19DUkVBVCkpKQorCQlyZXN1bHQgPSBtc2dpZDsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK2ludCBjcmVhdGVTZW0oaW50IG5zZW1zLCBpbnQgcGVybWlzc2lvbikKK3sKKwlpbnQgcmVzdWx0ID0gLTE7CisJaW50IHNlbWlkOworCWtleV90IGtleSA9IGNyZWF0ZUtleSgpOworCisJaWYgKC0xICE9IChzZW1pZCA9IHNlbWdldChrZXksIG5zZW1zLCBwZXJtaXNzaW9uIHwgSVBDX0NSRUFUKSkpCisJCXJlc3VsdCA9IHNlbWlkOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB1c2FnZShpbnQgcmMpCit7CisJcHJpbnRmKF8oIlxuVXNhZ2U6ICVzIFtvcHRpb25zXVxuXG4iKSwgcHJvZ25hbWUpOworCXByaW50ZihfKAorCSIgIC1NIDxzaXplPiAgICAgY3JlYXRlIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBvZiBzaXplIDxzaXplPlxuIgorCSIgIC1TIDxuc2Vtcz4gICAgY3JlYXRlIHNlbWFwaG9yZSBhcnJheSB3aXRoIDxuc2Vtcz4gZWxlbWVudHNcbiIKKwkiICAtUSAgICAgICAgICAgIGNyZWF0ZSBtZXNzYWdlIHF1ZXVlXG4iCisJIiAgLXAgPG1vZGU+ICAgICBwZXJtaXNzaW9uIGZvciB0aGUgcmVzb3VyY2UgKGRlZmF1bHQgaXMgMDY0NClcbiIpKTsKKwlwcmludGYoXygiXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgaXBjbWsoMSkuXG5cbiIpKTsKKworCWV4aXQocmMpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJaW50IHBlcm1pc3Npb24gPSAwNjQ0OworCWludCBvcHQ7CisJc2l6ZV90IHNpemUgPSAwOworCWludCBuc2VtcyA9IDA7CisJaW50IGRvU2htID0gMCwgZG9Nc2cgPSAwLCBkb1NlbSA9IDA7CisKKwlwcm9nbmFtZSA9IHByb2dyYW1faW52b2NhdGlvbl9zaG9ydF9uYW1lOworCWlmICghcHJvZ25hbWUpCisJCXByb2duYW1lID0gImlwY21rIjsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwl3aGlsZSgob3B0ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJoTTpRUzpwOiIpKSAhPSAtMSkgeworCQlzd2l0Y2gob3B0KSB7CisJCWNhc2UgJ00nOgorCQkJc2l6ZSA9IGF0b2kob3B0YXJnKTsKKwkJCWRvU2htID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdRJzoKKwkJCWRvTXNnID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdTJzoKKwkJCW5zZW1zID0gYXRvaShvcHRhcmcpOworCQkJZG9TZW0gPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3AnOgorCQkJcGVybWlzc2lvbiA9IHN0cnRvdWwob3B0YXJnLCBOVUxMLCA4KTsKKwkJCWJyZWFrOworCQljYXNlICdoJzoKKwkJCXVzYWdlKEVYSVRfU1VDQ0VTUyk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWRvU2htID0gZG9Nc2cgPSBkb1NlbSA9IDA7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmKCFkb1NobSAmJiAhZG9Nc2cgJiYgIWRvU2VtKQorCQl1c2FnZShFWElUX0ZBSUxVUkUpOworCisJaWYgKGRvU2htKSB7CisJCWludCBzaG1pZDsKKwkJaWYgKC0xID09IChzaG1pZCA9IGNyZWF0ZVNobShzaXplLCBwZXJtaXNzaW9uKSkpCisJCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJjcmVhdGUgc2hhcmUgbWVtb3J5IGZhaWxlZCIpKTsKKwkJZWxzZQorCQkJcHJpbnRmKF8oIlNoYXJlZCBtZW1vcnkgaWQ6ICVkXG4iKSwgc2htaWQpOworCX0KKworCWlmIChkb01zZykgeworCQlpbnQgbXNnaWQ7CisJCWlmICgtMSA9PSAobXNnaWQgPSBjcmVhdGVNc2cocGVybWlzc2lvbikpKQorCQkJZXJyKEVYSVRfRkFJTFVSRSwgXygiY3JlYXRlIG1lc3NhZ2UgcXVldWUgZmFpbGVkIikpOworCQllbHNlCisJCQlwcmludGYoXygiTWVzc2FnZSBxdWV1ZSBpZDogJWRcbiIpLCBtc2dpZCk7CisJfQorCisJaWYgKGRvU2VtKSB7CisJCWludCBzZW1pZDsKKwkJaWYgKC0xID09IChzZW1pZCA9IGNyZWF0ZVNlbShuc2VtcywgcGVybWlzc2lvbikpKQorCQkJZXJyKEVYSVRfRkFJTFVSRSwgXygiY3JlYXRlIHNlbWFwaG9yZSBmYWlsZWQiKSk7CisJCWVsc2UKKwkJCXByaW50ZihfKCJTZW1hcGhvcmUgaWQ6ICVkXG4iKSwgc2VtaWQpOworCX0KKworCXJldHVybiBFWElUX1NVQ0NFU1M7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjcm0uMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9pcGNybS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1YWRmOWIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjcm0uMQpAQCAtMCwwICsxLDEyMiBAQAorLlwiIENvcHlyaWdodCAyMDAyIEFuZHJlIEMuIE1henpvbmUgKGxpbnV4ZGV2QGthcmFnZWUuY29tKQorLlwiIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5USCBJUENSTSAxICJsYXN0IGNoYW5nZTogMTkgTWFyY2ggMjAwMiIgImlwY3JtIiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCBOQU1FCitpcGNybSBcLSByZW1vdmUgYSBtZXNzYWdlIHF1ZXVlLCBzZW1hcGhvcmUgc2V0IG9yIHNoYXJlZCBtZW1vcnkgaWQKKy5TSCBTWU5PUFNJUworLkIgaXBjcm0KK1sKKy5CIFwtTQorLkkga2V5Cit8CisuQiBcLW0KKy5JIGlkCit8CisuQiBcLVEKKy5JIGtleQorfAorLkIgXC1xCisuSSBpZAorfAorLkIgXC1TCisuSSBrZXkKK3wKKy5CIFwtcworLkkgaWQKK10gLi4uCisKK2RlcHJlY2F0ZWQgdXNhZ2UKKworLkJJIGlwY3JtCisuUkIgeyBzaG0gfCBtc2cgfCBzZW0gfQorLklSIGlkIC4uLgorLlNIIERFU0NSSVBUSU9OCisuSSBpcGNybQorcmVtb3ZlcyBTeXN0ZW0gViBpbnRlcnByb2Nlc3MgY29tbXVuaWNhdGlvbiAoSVBDKSBvYmplY3RzCithbmQgYXNzb2NpYXRlZCBkYXRhIHN0cnVjdHVyZXMgZnJvbSB0aGUgc3lzdGVtLgorSW4gb3JkZXIgdG8gZGVsZXRlIHN1Y2ggb2JqZWN0cywgeW91IG11c3QgYmUgc3VwZXJ1c2VyLCBvcgordGhlIGNyZWF0b3Igb3Igb3duZXIgb2YgdGhlIG9iamVjdC4KKworU3lzdGVtIFYgSVBDIG9iamVjdHMgYXJlIG9mIHRocmVlIHR5cGVzOiBzaGFyZWQgbWVtb3J5LAorbWVzc2FnZSBxdWV1ZXMsIGFuZCBzZW1hcGhvcmVzLgorRGVsZXRpb24gb2YgYSBtZXNzYWdlIHF1ZXVlIG9yIHNlbWFwaG9yZSBvYmplY3QgaXMgaW1tZWRpYXRlCisocmVnYXJkbGVzcyBvZiB3aGV0aGVyIGFueSBwcm9jZXNzIHN0aWxsIGhvbGRzIGFuIElQQworaWRlbnRpZmllciBmb3IgdGhlIG9iamVjdCkuCitBIHNoYXJlZCBtZW1vcnkgb2JqZWN0IGlzIG9ubHkgcmVtb3ZlZAorYWZ0ZXIgYWxsIGN1cnJlbnRseSBhdHRhY2hlZCBwcm9jZXNzZXMgaGF2ZSBkZXRhY2hlZAorLlJCICggc2htZHQgKDIpKQordGhlIG9iamVjdCBmcm9tIHRoZWlyIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4KKworVHdvIHN5bnRheCBzdHlsZXMgYXJlIHN1cHBvcnRlZC4gIFRoZSBvbGQgTGludXggaGlzdG9yaWNhbCBzeW50YXggc3BlY2lmaWVzCithIHRocmVlIGxldHRlciBrZXl3b3JkIGluZGljYXRpbmcgd2hpY2ggY2xhc3Mgb2Ygb2JqZWN0IGlzIHRvIGJlIGRlbGV0ZWQsCitmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBJUEMgaWRlbnRpZmllcnMgZm9yIG9iamVjdHMgb2YgdGhpcyB0eXBlLgorCitUaGUgU1VTLWNvbXBsaWFudCBzeW50YXggYWxsb3dzIHRoZSBzcGVjaWZpY2F0aW9uIG9mCit6ZXJvIG9yIG1vcmUgb2JqZWN0cyBvZiBhbGwgdGhyZWUgdHlwZXMgaW4gYSBzaW5nbGUgY29tbWFuZCBsaW5lLAord2l0aCBvYmplY3RzIHNwZWNpZmllZCBlaXRoZXIgYnkga2V5IG9yIGJ5IGlkZW50aWZpZXIuIChTZWUgYmVsb3cuKQorQm90aCBrZXlzIGFuZCBpZGVudGlmaWVycyBtYXkgYmUgc3BlY2lmaWVkIGluIGRlY2ltYWwsIGhleGFkZWNpbWFsCisoc3BlY2lmaWVkIHdpdGggYW4gaW5pdGlhbCAnMHgnIG9yICcwWCcpLCBvciBvY3RhbCAoc3BlY2lmaWVkIHdpdGgKK2FuIGluaXRpYWwgJzAnKS4KKworLlNIIE9QVElPTlMKKy5UUAorLkJJIFwtTSAiIHNobWtleSIKK3JlbW92ZXMgdGhlIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBjcmVhdGVkIHdpdGgKKy5JIHNobWtleQorYWZ0ZXIgdGhlIGxhc3QgZGV0YWNoIGlzIHBlcmZvcm1lZC4KKy5UUAorLkJJIFwtbSAiIHNobWlkIgorcmVtb3ZlcyB0aGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IGlkZW50aWZpZWQgYnkKKy5JIHNobWlkCithZnRlciB0aGUgbGFzdCBkZXRhY2ggaXMgcGVyZm9ybWVkLgorLlRQCisuQkkgXC1RICIgbXNna2V5IgorcmVtb3ZlcyB0aGUgbWVzc2FnZSBxdWV1ZSBjcmVhdGVkIHdpdGgKKy5JUiBtc2drZXkgLgorLlRQCisuQkkgXC1xICIgbXNnaWQiCityZW1vdmVzIHRoZSBtZXNzYWdlIHF1ZXVlIGlkZW50aWZpZWQgYnkKKy5JUiBtc2dpZCAuCisuVFAKKy5CSSBcLVMgIiBzZW1rZXkiCityZW1vdmVzIHRoZSBzZW1hcGhvcmUgY3JlYXRlZCB3aXRoCisuSVIgc2Vta2V5IC4KKy5UUAorLkJJIFwtcyAiIHNlbWlkIgorcmVtb3ZlcyB0aGUgc2VtYXBob3JlIGlkZW50aWZpZWQgYnkKKy5JUiBzZW1pZCAuCisuTFAKK1RoZSBkZXRhaWxzIG9mIHRoZSByZW1vdmVzIGFyZSBkZXNjcmliZWQgaW4KKy5JUiBtc2djdGwgKDIpLAorLklSIHNobWN0bCAoMiksCithbmQKKy5JUiBzZW1jdGwgKDIpLgorVGhlIGlkZW50aWZpZXJzIGFuZCBrZXlzIG1heSBiZSBmb3VuZCBieSB1c2luZworLklSIGlwY3MgKDEpLgorLlNIIE5PVEVTCitJbiBpdHMgZmlyc3QgTGludXggaW1wbGVtZW50YXRpb24sIGlwY3JtIHVzZWQgdGhlIGRlcHJlY2F0ZWQgc3ludGF4CitzaG93biBpbiB0aGUKKy5CUiBTWU5PUFNJUyAuCitGdW5jdGlvbmFsaXR5IHByZXNlbnQgaW4gb3RoZXIgKm5peCBpbXBsZW1lbnRhdGlvbnMgb2YgaXBjcm0gaGFzIHNpbmNlCitiZWVuIGFkZGVkLCBuYW1lbHkgdGhlIGFiaWxpdHkgdG8gZGVsZXRlIHJlc291cmNlcyBieSBrZXkgKG5vdCBqdXN0CitpZGVudGlmaWVyKSwgYW5kIHRvIHJlc3BlY3QgdGhlIHNhbWUgY29tbWFuZC1saW5lIHN5bnRheC4gRm9yIGJhY2t3YXJkCitjb21wYXRpYmlsaXR5IHRoZSBwcmV2aW91cyBzeW50YXggaXMgc3RpbGwgc3VwcG9ydGVkLgorLlwiIC5TSCBBVVRIT1JTCisuXCIgQW5kcmUgQy4gTWF6em9uZSAobGludXhkZXZAa2FyYWdlZS5jb20pCisuXCIgLmJyCisuXCIgS3Jpc2huYSBCYWxhc3VicmFtYW5pYW4gKGJhbGFzdWJAY2lzLm9oaW8tc3RhdGUuZWR1KQorLlNIIFNFRSBBTFNPCisubmgKKy5CUiBpcGNzICgxKSwKKy5CUiBpcGNtayAoMSksCisuQlIgbXNnY3RsICgyKSwKKy5CUiBtc2dnZXQgKDIpLAorLkJSIHNlbWN0bCAoMiksCisuQlIgc2VtZ2V0ICgyKSwKKy5CUiBzaG1jdGwgKDIpLAorLkJSIHNobWR0ICgyKSwKKy5CUiBzaG1nZXQgKDIpLAorLkJSIGZ0b2sgKDMpCisuU0ggQVZBSUxBQklMSVRZCitUaGUgaXBjcm0gY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjcm0uYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9pcGNybS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwN2VhYzgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjcm0uYwpAQCAtMCwwICsxLDI3MiBAQAorLyoKKyAqIGtyaXNobmEgYmFsYXN1YnJhbWFuaWFuIDE5OTMKKyAqCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqCisgKiAxOTk5LTA0LTAyIGZyYW5rIHphZ28KKyAqIC0gY2FuIG5vdyByZW1vdmUgc2V2ZXJhbCBpZCdzIGluIHRoZSBzYW1lIGNhbGwKKyAqCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9pcGMuaD4KKyNpbmNsdWRlIDxzeXMvc2htLmg+CisjaW5jbHVkZSA8c3lzL21zZy5oPgorI2luY2x1ZGUgPHN5cy9zZW0uaD4KKyNpbmNsdWRlICJubHMuaCIKKworLyogZm9yIGdldG9wdCAqLworI2luY2x1ZGUgPHVuaXN0ZC5oPgorLyogZm9yIHRvbG93ZXIgYW5kIGlzdXBwZXIgKi8KKyNpbmNsdWRlIDxjdHlwZS5oPgorCisjaWZuZGVmIEhBVkVfVU5JT05fU0VNVU4KKy8qIGFjY29yZGluZyB0byBYL09QRU4gd2UgaGF2ZSB0byBkZWZpbmUgaXQgb3Vyc2VsdmVzICovCit1bmlvbiBzZW11biB7CisJaW50IHZhbDsKKwlzdHJ1Y3Qgc2VtaWRfZHMgKmJ1ZjsKKwl1bnNpZ25lZCBzaG9ydCBpbnQgKmFycmF5OworCXN0cnVjdCBzZW1pbmZvICpfX2J1ZjsKK307CisjZW5kaWYKKworc3RhdGljIHZvaWQgdXNhZ2UoY2hhciAqKTsKKworY2hhciAqZXhlY25hbWU7CisKK3R5cGVkZWYgZW51bSB0eXBlX2lkIHsKKwlTSE0sCisJU0VNLAorCU1TRworfSB0eXBlX2lkOworCitzdGF0aWMgaW50CityZW1vdmVfaWRzKHR5cGVfaWQgdHlwZSwgaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisJaW50IGlkOworCWludCByZXQgPSAwOwkJLyogZm9yIGdjYyAqLworCWNoYXIgKmVuZDsKKwlpbnQgbmJfZXJyb3JzID0gMDsKKwl1bmlvbiBzZW11biBhcmc7CisKKwlhcmcudmFsID0gMDsKKworCXdoaWxlKGFyZ2MpIHsKKworCQlpZCA9IHN0cnRvdWwoYXJndlswXSwgJmVuZCwgMTApOworCisJCWlmICgqZW5kICE9IDApIHsKKwkJCXByaW50ZiAoXygiaW52YWxpZCBpZDogJXNcbiIpLCBhcmd2WzBdKTsKKwkJCW5iX2Vycm9ycyArKzsKKwkJfSBlbHNlIHsKKwkJCXN3aXRjaCh0eXBlKSB7CisJCQljYXNlIFNFTToKKwkJCQlyZXQgPSBzZW1jdGwgKGlkLCAwLCBJUENfUk1JRCwgYXJnKTsKKwkJCQlicmVhazsKKworCQkJY2FzZSBNU0c6CisJCQkJcmV0ID0gbXNnY3RsIChpZCwgSVBDX1JNSUQsIE5VTEwpOworCQkJCWJyZWFrOworCQkJCQorCQkJY2FzZSBTSE06CisJCQkJcmV0ID0gc2htY3RsIChpZCwgSVBDX1JNSUQsIE5VTEwpOworCQkJCWJyZWFrOworCQkJfQorCisJCQlpZiAocmV0KSB7CisJCQkJcHJpbnRmIChfKCJjYW5ub3QgcmVtb3ZlIGlkICVzICglcylcbiIpLAorCQkJCQlhcmd2WzBdLCBzdHJlcnJvcihlcnJubykpOworCQkJCW5iX2Vycm9ycyArKzsKKwkJCX0KKwkJfQorCQlhcmdjLS07CisJCWFyZ3YrKzsKKwl9CisJCisJcmV0dXJuKG5iX2Vycm9ycyk7Cit9CisKK3N0YXRpYyB2b2lkIGRlcHJlY2F0ZV9kaXNwbGF5X3VzYWdlKHZvaWQpCit7CisJdXNhZ2UoZXhlY25hbWUpOworCXByaW50ZiAoXygiZGVwcmVjYXRlZCB1c2FnZTogJXMge3NobSB8IG1zZyB8IHNlbX0gaWQgLi4uXG4iKSwKKwkJZXhlY25hbWUpOworfQorCitzdGF0aWMgaW50IGRlcHJlY2F0ZWRfbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJZXhlY25hbWUgPSBhcmd2WzBdOworCisJaWYgKGFyZ2MgPCAzKSB7CisJCWRlcHJlY2F0ZV9kaXNwbGF5X3VzYWdlKCk7CisJCWV4aXQoMSk7CisJfQorCQorCWlmICghc3RyY21wKGFyZ3ZbMV0sICJzaG0iKSkgeworCQlpZiAocmVtb3ZlX2lkcyhTSE0sIGFyZ2MtMiwgJmFyZ3ZbMl0pKQorCQkJZXhpdCgxKTsKKwl9CisJZWxzZSBpZiAoIXN0cmNtcChhcmd2WzFdLCAibXNnIikpIHsKKwkJaWYgKHJlbW92ZV9pZHMoTVNHLCBhcmdjLTIsICZhcmd2WzJdKSkKKwkJCWV4aXQoMSk7CisJfSAKKwllbHNlIGlmICghc3RyY21wKGFyZ3ZbMV0sICJzZW0iKSkgeworCQlpZiAocmVtb3ZlX2lkcyhTRU0sIGFyZ2MtMiwgJmFyZ3ZbMl0pKQorCQkJZXhpdCgxKTsKKwl9CisJZWxzZSB7CisJCWRlcHJlY2F0ZV9kaXNwbGF5X3VzYWdlKCk7CisJCXByaW50ZiAoXygidW5rbm93biByZXNvdXJjZSB0eXBlOiAlc1xuIiksIGFyZ3ZbMV0pOworCQlleGl0KDEpOworCX0KKworCXByaW50ZiAoXygicmVzb3VyY2UocykgZGVsZXRlZFxuIikpOworCXJldHVybiAwOworfQorCisKKy8qIHByaW50IHRoZSBuZXcgdXNhZ2UgKi8KK3N0YXRpYyB2b2lkCit1c2FnZShjaGFyICpwcm9nbmFtZSkKK3sKKwlmcHJpbnRmKHN0ZGVyciwKKwkJXygidXNhZ2U6ICVzIFsgWy1xIG1zcWlkXSBbLW0gc2htaWRdIFstcyBzZW1pZF1cbiIKKwkJICAiICAgICAgICAgIFstUSBtc2drZXldIFstTSBzaG1rZXldIFstUyBzZW1rZXldIC4uLiBdXG4iKSwKKwkJcHJvZ25hbWUpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJaW50ICAgYzsKKwlpbnQgICBlcnJvciA9IDA7CisJY2hhciAqcHJvZyA9IGFyZ3ZbMF07CisKKwkvKiBpZiB0aGUgY29tbWFuZCBpcyBleGVjdXRlZCB3aXRob3V0IHBhcmFtZXRlcnMsIGRvIG5vdGhpbmcgKi8KKwlpZiAoYXJnYyA9PSAxKQorCQlyZXR1cm4gMDsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwkvKiBjaGVjayB0byBzZWUgaWYgdGhlIGNvbW1hbmQgaXMgYmVpbmcgaW52b2tlZCBpbiB0aGUgb2xkIHdheSBpZiBzbworCSAgIHRoZW4gcnVuIHRoZSBvbGQgY29kZSAqLworCWlmIChzdHJjbXAoYXJndlsxXSwgInNobSIpID09IDAgfHwKKwkgICAgc3RyY21wKGFyZ3ZbMV0sICJtc2ciKSA9PSAwIHx8CisJICAgIHN0cmNtcChhcmd2WzFdLCAic2VtIikgPT0gMCkKKwkJcmV0dXJuIGRlcHJlY2F0ZWRfbWFpbihhcmdjLCBhcmd2KTsKKworCS8qIHByb2Nlc3MgbmV3IHN5bnRheCB0byBjb25mb3JtIHdpdGggU1lTViBpcGNybSAqLworCXdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2LCAicTptOnM6UTpNOlM6IikpICE9IC0xKSB7CisJCWludCByZXN1bHQ7CisJCWludCBpZCA9IDA7CisJCWludCBpc2tleSA9IGlzdXBwZXIoYyk7CisKKwkJLyogbmVlZGVkIHRvIGRlbGV0ZSBzZW1hcGhvcmVzICovCisJCXVuaW9uIHNlbXVuIGFyZzsKKwkJYXJnLnZhbCA9IDA7CisKKwkJLyogd2UgZG9uJ3QgbmVlZCBjYXNlIGluZm9ybWF0aW9uIGFueSBtb3JlICovCisJCWMgPSB0b2xvd2VyKGMpOworCisJCS8qIG1ha2Ugc3VyZSB0aGUgb3B0aW9uIGlzIGluIHJhbmdlICovCisJCWlmIChjICE9ICdxJyAmJiBjICE9ICdtJyAmJiBjICE9ICdzJykgeworCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlY1xuIiksCisJCQkJcHJvZywgYyk7CisJCQl1c2FnZShwcm9nKTsKKwkJCWVycm9yKys7CisJCQlyZXR1cm4gZXJyb3I7CisJCX0KKworCQlpZiAoaXNrZXkpIHsKKwkJCS8qIGtleXMgYXJlIGluIGhleCBvciBkZWNpbWFsICovCisJCQlrZXlfdCBrZXkgPSBzdHJ0b3VsKG9wdGFyZywgTlVMTCwgMCk7CisJCQlpZiAoa2V5ID09IElQQ19QUklWQVRFKSB7CisJCQkJZXJyb3IrKzsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGlsbGVnYWwga2V5ICglcylcbiIpLAorCQkJCQlwcm9nLCBvcHRhcmcpOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQkvKiBjb252ZXJ0IGtleSB0byBpZCAqLworCQkJaWQgPSAoKGMgPT0gJ3EnKSA/IG1zZ2dldChrZXksIDApIDoKKwkJCSAgICAgIChjID09ICdtJykgPyBzaG1nZXQoa2V5LCAwLCAwKSA6CisJCQkgICAgICBzZW1nZXQoa2V5LCAwLCAwKSk7CisKKwkJCWlmIChpZCA8IDApIHsKKwkJCQljaGFyICplcnJtc2c7CisJCQkJZXJyb3IrKzsKKwkJCQlzd2l0Y2goZXJybm8pIHsKKwkJCQljYXNlIEVBQ0NFUzoKKwkJCQkJZXJybXNnID0gXygicGVybWlzc2lvbiBkZW5pZWQgZm9yIGtleSIpOworCQkJCQlicmVhazsKKwkJCQljYXNlIEVJRFJNOgorCQkJCQllcnJtc2cgPSBfKCJhbHJlYWR5IHJlbW92ZWQga2V5Iik7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgRU5PRU5UOgorCQkJCQllcnJtc2cgPSBfKCJpbnZhbGlkIGtleSIpOworCQkJCQlicmVhazsKKwkJCQlkZWZhdWx0OgorCQkJCQllcnJtc2cgPSBfKCJ1bmtub3duIGVycm9yIGluIGtleSIpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJZnByaW50ZihzdGRlcnIsICIlczogJXMgKCVzKVxuIiwKKwkJCQkJcHJvZywgZXJybXNnLCBvcHRhcmcpOworCQkJCWNvbnRpbnVlOworCQkJfQorCQl9IGVsc2UgeworCQkJLyogaWRzIGFyZSBpbiBkZWNpbWFsICovCisJCQlpZCA9IHN0cnRvdWwob3B0YXJnLCBOVUxMLCAxMCk7CisJCX0KKworCQlyZXN1bHQgPSAoKGMgPT0gJ3EnKSA/IG1zZ2N0bChpZCwgSVBDX1JNSUQsIE5VTEwpIDoKKwkJCSAgKGMgPT0gJ20nKSA/IHNobWN0bChpZCwgSVBDX1JNSUQsIE5VTEwpIDogCisJCQkgIHNlbWN0bChpZCwgMCwgSVBDX1JNSUQsIGFyZykpOworCisJCWlmIChyZXN1bHQgPCAwKSB7CisJCQljaGFyICplcnJtc2c7CisJCQllcnJvcisrOworCQkJc3dpdGNoKGVycm5vKSB7CisJCQljYXNlIEVBQ0NFUzoKKwkJCWNhc2UgRVBFUk06CisJCQkJZXJybXNnID0gaXNrZXkKKwkJCQkJPyBfKCJwZXJtaXNzaW9uIGRlbmllZCBmb3Iga2V5IikKKwkJCQkJOiBfKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgaWQiKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRUlOVkFMOgorCQkJCWVycm1zZyA9IGlza2V5CisJCQkJCT8gXygiaW52YWxpZCBrZXkiKQorCQkJCQk6IF8oImludmFsaWQgaWQiKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRUlEUk06CisJCQkJZXJybXNnID0gaXNrZXkKKwkJCQkJPyBfKCJhbHJlYWR5IHJlbW92ZWQga2V5IikKKwkJCQkJOiBfKCJhbHJlYWR5IHJlbW92ZWQgaWQiKTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJZXJybXNnID0gaXNrZXkKKwkJCQkJPyBfKCJ1bmtub3duIGVycm9yIGluIGtleSIpCisJCQkJCTogXygidW5rbm93biBlcnJvciBpbiBpZCIpOworCQkJCWJyZWFrOworCQkJfQorCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiAlcyAoJXMpXG4iKSwKKwkJCQlwcm9nLCBlcnJtc2csIG9wdGFyZyk7CisJCQljb250aW51ZTsKKwkJfQorCX0KKworCS8qIHByaW50IHVzYWdlIGlmIHdlIHN0aWxsIGhhdmUgc29tZSBhcmd1bWVudHMgbGVmdCBvdmVyICovCisJaWYgKG9wdGluZCAhPSBhcmdjKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCIlczogdW5rbm93biBhcmd1bWVudDogJXNcbiIpLAorCQkJcHJvZywgYXJndltvcHRpbmRdKTsKKwkJdXNhZ2UocHJvZyk7CisJfQorCisJLyogZXhpdCB2YWx1ZSByZWZsZWN0cyB0aGUgbnVtYmVyIG9mIGVycm9ycyBlbmNvdW50ZXJlZCAqLworCXJldHVybiBlcnJvcjsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9pcGNzLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjcy4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmMjEwNzcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjcy4xCkBAIC0wLDAgKzEsODQgQEAKKy5cIiBDb3B5cmlnaHQgMTk5MyBSaWNrYXJkIEUuIEZhaXRoIChmYWl0aEBjcy51bmMuZWR1KQorLlwiIE1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5USCBJUENTIDEgIjkgT2N0b2JlciAxOTkzIiAiTGludXggMC45OSIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQoraXBjcyBcLSBwcm92aWRlIGluZm9ybWF0aW9uIG9uIGlwYyBmYWNpbGl0aWVzCisuU0ggU1lOT1BTSVMKKy5CIGlwY3MKKy5SQiBbIFwtYXNtcSBdCisuUkIgWyBcLXRjbHVwIF0KKy5icgorLkIgaXBjcworLlJCIFsgXC1zbXEgXQorLkJJIFwtaSAiIGlkIgorLmJyCisuQiBpcGNzIFwtaAorLlNIIERFU0NSSVBUSU9OCisuQiBpcGNzCitwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiB0aGUgaXBjIGZhY2lsaXRpZXMgZm9yIHdoaWNoIHRoZSBjYWxsaW5nIHByb2Nlc3MKK2hhcyByZWFkIGFjY2Vzcy4KKworVGhlCisuQiBcLWkKK29wdGlvbiBhbGxvd3MgYSBzcGVjaWZpYyByZXNvdXJjZQorLkkgaWQKK3RvIGJlIHNwZWNpZmllZC4gIE9ubHkgaW5mb3JtYXRpb24gb24gdGhpcworLkkgaWQKK3dpbGwgYmUgcHJpbnRlZC4KKworUmVzb3VyY2VzIG1heSBiZSBzcGVjaWZpZWQgYXMgZm9sbG93czoKKy5UUAorLkIgXC1tCitzaGFyZWQgbWVtb3J5IHNlZ21lbnRzCisuVFAKKy5CIFwtcQorbWVzc2FnZSBxdWV1ZXMKKy5UUAorLkIgXC1zCitzZW1hcGhvcmUgYXJyYXlzCisuVFAKKy5CIFwtYQorYWxsICh0aGlzIGlzIHRoZSBkZWZhdWx0KQorLlBQCitUaGUgb3V0cHV0IGZvcm1hdCBtYXkgYmUgc3BlY2lmaWVkIGFzIGZvbGxvd3M6CisuVFAKKy5CIFwtdAordGltZQorLlRQCisuQiBcLXAKK3BpZAorLlRQCisuQiBcLWMKK2NyZWF0b3IKKy5UUAorLkIgXC1sCitsaW1pdHMKKy5UUAorLkIgXC11CitzdW1tYXJ5CisuU0ggU0VFIEFMU08KKy5CUiBpcGNybSAoMSksCisuQlIgaXBjbWsgKDEpCisuU0ggQ09ORk9STUlORyBUTworVGhlIExpbnV4IGlwY3MgdXRpbGl0eSBpcyBub3QgZnVsbHkgY29tcGF0aWJsZSB0byB0aGUgUE9TSVggaXBjcyB1dGlsaXR5LgorVGhlIExpbnV4IHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCB0aGUKKy5CIFwtYgorYW5kCisuQiBcLW8KK29wdGlvbnMsIGJ1dCBkb2VzIHN1cHBvcnQgdGhlCisuQiBcLWwKK2FuZAorLkIgXC11CitvcHRpb25zIG5vdCBkZWZpbmVkIGJ5IFBPU0lYLiBUaGUgcG9ydGFibGUgYXBwbGljYXRpb24gc2hhbGwgbm90IHVzZSB0aGUKKy5CUiBcLWEgLAorLkJSIFwtYiAsCisuQlIgXC1vICwKKy5CUiBcLWwgLAorYW5kCisuQiBcLXUKK29wdGlvbnMuCisuU0ggQVVUSE9SCitrcmlzaG5hIGJhbGFzdWJyYW1hbmlhbiAoYmFsYXN1YkBjaXMub2hpby1zdGF0ZS5lZHUpCisuU0ggQVZBSUxBQklMSVRZCitUaGUgaXBjcyBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9pcGNzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2NmU1ODYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvaXBjcy5jCkBAIC0wLDAgKzEsNjc3IEBACisvKiBPcmlnaW5hbCBhdXRob3IgdW5rbm93biwgbWF5IGJlICJrcmlzaG5hIGJhbGFzdWJAY2lzLm9oaW8tc3RhdGUuZWR1IiAqLworLyoKKworICBNb2RpZmllZCBTYXQgT2N0ICA5IDEwOjU1OjI4IDE5OTMgZm9yIDAuOTkuMTMKKworICBQYXRjaGVzIGZyb20gTWlrZSBKYWdkaXMgKGphZ2d5QHB1cnBsZXQuZGVtb24uY28udWspIGFwcGxpZWQgV2VkIEZlYgorICA4IDEyOjEyOjIxIDE5OTUgYnkgZmFpdGhAY3MudW5jLmVkdSB0byBwcmludCBudW1lcmljIHVpZHMgaWYgbm8KKyAgcGFzc3dkIGZpbGUgZW50cnkuCisKKyAgUGF0Y2ggZnJvbSBhcm5vbGRzQGlmbnMuZGUgKEhlaW56LUFkbyBBcm5vbGRzKSBhcHBsaWVkIE1vbiBKdWwgMQorICAxOTozMDo0MSAxOTk2IGJ5IGphbmxAbWF0aC51aW8ubm8gdG8gYWRkIGNvZGUgbWlzc2luZyBpbiBjYXNlIFBJRDoKKyAgY2xhdXNlcy4KKworICBQYXRjaGVkIHRvIGRpc3BsYXkgdGhlIGtleSBmaWVsZCAtLSBoeUBwaWNrc3lzLmNvbSAxMi8xOC85NgorCisgIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisKKyovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHB3ZC5oPgorI2luY2x1ZGUgPGdycC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVyci5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9pcGMuaD4KKyNpbmNsdWRlIDxzeXMvc2VtLmg+CisjaW5jbHVkZSA8c3lzL21zZy5oPgorI2luY2x1ZGUgPHN5cy9zaG0uaD4KKworI2luY2x1ZGUgIm5scy5oIgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogU0hNX0RFU1QgYW5kIFNITV9MT0NLRUQgYXJlIGRlZmluZWQgaW4ga2VybmVsIGhlYWRlcnMsCisgICBidXQgaW5zaWRlICNpZmRlZiBfX0tFUk5FTF9fIC4uLiAjZW5kaWYgKi8KKyNpZm5kZWYgU0hNX0RFU1QKKy8qIHNobV9tb2RlIHVwcGVyIGJ5dGUgZmxhZ3MgKi8KKyNkZWZpbmUgU0hNX0RFU1QgICAgICAgIDAxMDAwICAgLyogc2VnbWVudCB3aWxsIGJlIGRlc3Ryb3llZCBvbiBsYXN0IGRldGFjaCAqLworI2RlZmluZSBTSE1fTE9DS0VEICAgICAgMDIwMDAgICAvKiBzZWdtZW50IHdpbGwgbm90IGJlIHN3YXBwZWQgKi8KKyNlbmRpZgorCisvKiBGb3Igb2xkZXIga2VybmVscyB0aGUgc2FtZSBob2xkcyBmb3IgdGhlIGRlZmluZXMgYmVsb3cgKi8KKyNpZm5kZWYgTVNHX1NUQVQKKyNkZWZpbmUgTVNHX1NUQVQJMTEKKyNkZWZpbmUgTVNHX0lORk8JMTIKKyNlbmRpZgorCisjaWZuZGVmIFNITV9TVEFUCisjZGVmaW5lIFNITV9TVEFUICAgICAgICAxMworI2RlZmluZSBTSE1fSU5GTyAgICAgICAgMTQKK3N0cnVjdCBzaG1faW5mbyB7CisgICAgIGludCAgIHVzZWRfaWRzOworICAgICB1bG9uZyBzaG1fdG90OyAvKiB0b3RhbCBhbGxvY2F0ZWQgc2htICovCisgICAgIHVsb25nIHNobV9yc3M7IC8qIHRvdGFsIHJlc2lkZW50IHNobSAqLworICAgICB1bG9uZyBzaG1fc3dwOyAvKiB0b3RhbCBzd2FwcGVkIHNobSAqLworICAgICB1bG9uZyBzd2FwX2F0dGVtcHRzOworICAgICB1bG9uZyBzd2FwX3N1Y2Nlc3NlczsKK307CisjZW5kaWYKKworI2lmbmRlZiBTRU1fU1RBVAorI2RlZmluZSBTRU1fU1RBVAkxOAorI2RlZmluZSBTRU1fSU5GTwkxOQorI2VuZGlmCisKKy8qIFNvbWUgdmVyc2lvbnMgb2YgbGliYyBvbmx5IGRlZmluZSBJUENfSU5GTyB3aGVuIF9fVVNFX0dOVSBpcyBkZWZpbmVkLiAqLworI2lmbmRlZiBJUENfSU5GTworI2RlZmluZSBJUENfSU5GTyAgICAgICAgMworI2VuZGlmCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBUaGUgbGFzdCBhcmcgb2Ygc2VtY3RsIGlzIGEgdW5pb24gc2VtdW4sIGJ1dCB3aGVyZSBpcyBpdCBkZWZpbmVkPworICAgWC9PUEVOIHRlbGxzIHVzIHRvIGRlZmluZSBpdCBvdXJzZWx2ZXMsIGJ1dCB1bnRpbCByZWNlbnRseQorICAgTGludXggaW5jbHVkZSBmaWxlcyB3b3VsZCBhbHNvIGRlZmluZSBpdC4gKi8KKyNpZm5kZWYgSEFWRV9VTklPTl9TRU1VTgorLyogYWNjb3JkaW5nIHRvIFgvT1BFTiB3ZSBoYXZlIHRvIGRlZmluZSBpdCBvdXJzZWx2ZXMgKi8KK3VuaW9uIHNlbXVuIHsKKwlpbnQgdmFsOworCXN0cnVjdCBzZW1pZF9kcyAqYnVmOworCXVuc2lnbmVkIHNob3J0IGludCAqYXJyYXk7CisJc3RydWN0IHNlbWluZm8gKl9fYnVmOworfTsKKyNlbmRpZgorCisvKiBYL09QRU4gKEphbiAxOTg3KSBkb2VzIG5vdCBkZWZpbmUgZmllbGRzIGtleSwgc2VxIGluIHN0cnVjdCBpcGNfcGVybTsKKyAgIGdsaWJjLTEuMDkgaGFzIG5vIHN1cHBvcnQgZm9yIHN5c3YgaXBjLgorICAgZ2xpYmMgMiB1c2VzIF9fa2V5LCBfX3NlcSAqLworI2lmIGRlZmluZWQgKF9fR0xJQkNfXykgJiYgX19HTElCQ19fID49IDIKKyNkZWZpbmUgS0VZIF9fa2V5CisjZWxzZQorI2RlZmluZSBLRVkga2V5CisjZW5kaWYKKworI2RlZmluZSBMSU1JVFMgMQorI2RlZmluZSBTVEFUVVMgMgorI2RlZmluZSBDUkVBVE9SIDMKKyNkZWZpbmUgVElNRSA0CisjZGVmaW5lIFBJRCA1CisKK3ZvaWQgZG9fc2htIChjaGFyIGZvcm1hdCk7Cit2b2lkIGRvX3NlbSAoY2hhciBmb3JtYXQpOwordm9pZCBkb19tc2cgKGNoYXIgZm9ybWF0KTsKK3ZvaWQgcHJpbnRfc2htIChpbnQgaWQpOwordm9pZCBwcmludF9tc2cgKGludCBpZCk7Cit2b2lkIHByaW50X3NlbSAoaW50IGlkKTsKKworc3RhdGljIGNoYXIgKnByb2duYW1lOworCitzdGF0aWMgdm9pZAordXNhZ2UoaW50IHJjKSB7CisJcHJpbnRmIChfKCJ1c2FnZSA6ICVzIC1hc21xIC10Y2x1cCBcbiIpLCBwcm9nbmFtZSk7CisJcHJpbnRmIChfKCJcdCVzIFstcyAtbSAtcV0gLWkgaWRcbiIpLCBwcm9nbmFtZSk7CisJcHJpbnRmIChfKCJcdCVzIC1oIGZvciBoZWxwLlxuIiksIHByb2duYW1lKTsKKwlleGl0KHJjKTsKK30KKworc3RhdGljIHZvaWQKK2hlbHAgKGludCByYykgeworCXByaW50ZiAoXygiJXMgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaXBjIGZhY2lsaXRpZXMgZm9yIgorCQkgICIgd2hpY2ggeW91IGhhdmUgcmVhZCBhY2Nlc3MuXG4iKSwgcHJvZ25hbWUpOworCXByaW50ZiAoXygiUmVzb3VyY2UgU3BlY2lmaWNhdGlvbjpcblx0LW0gOiBzaGFyZWRfbWVtXG5cdC1xIDogbWVzc2FnZXNcbiIpKTsKKwlwcmludGYgKF8oIlx0LXMgOiBzZW1hcGhvcmVzXG5cdC1hIDogYWxsIChkZWZhdWx0KVxuIikpOworCXByaW50ZiAoXygiT3V0cHV0IEZvcm1hdDpcblx0LXQgOiB0aW1lXG5cdC1wIDogcGlkXG5cdC1jIDogY3JlYXRvclxuIikpOworCXByaW50ZiAoXygiXHQtbCA6IGxpbWl0c1xuXHQtdSA6IHN1bW1hcnlcbiIpKTsKKwlwcmludGYgKF8oIi1pIGlkIFstcyAtcSAtbV0gOiBkZXRhaWxzIG9uIHJlc291cmNlIGlkZW50aWZpZWQgYnkgaWRcbiIpKTsKKwl1c2FnZShyYyk7Cit9CisKK2ludAorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisJaW50IG9wdCwgbXNnID0gMCwgc2VtID0gMCwgc2htID0gMCwgaWQ9MCwgcHJpbnQ9MDsKKwljaGFyIGZvcm1hdCA9IDA7CisJY2hhciBvcHRpb25zW10gPSAiYXRjbHVwaHNtcWk6IjsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlwcm9nbmFtZSA9IGFyZ3ZbMF07CisJd2hpbGUgKChvcHQgPSBnZXRvcHQgKGFyZ2MsIGFyZ3YsIG9wdGlvbnMpKSAhPSAtMSkgeworCQlzd2l0Y2ggKG9wdCkgeworCQljYXNlICdpJzoKKwkJCWlkID0gYXRvaSAob3B0YXJnKTsKKwkJCXByaW50ID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdhJzoKKwkJCW1zZyA9IHNobSA9IHNlbSA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAncSc6CisJCQltc2cgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3MnOgorCQkJc2VtID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdtJzoKKwkJCXNobSA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAndCc6CisJCQlmb3JtYXQgPSBUSU1FOworCQkJYnJlYWs7CisJCWNhc2UgJ2MnOgorCQkJZm9ybWF0ID0gQ1JFQVRPUjsKKwkJCWJyZWFrOworCQljYXNlICdwJzoKKwkJCWZvcm1hdCA9IFBJRDsKKwkJCWJyZWFrOworCQljYXNlICdsJzoKKwkJCWZvcm1hdCA9IExJTUlUUzsKKwkJCWJyZWFrOworCQljYXNlICd1JzoKKwkJCWZvcm1hdCA9IFNUQVRVUzsKKwkJCWJyZWFrOworCQljYXNlICdoJzoKKwkJCWhlbHAoRVhJVF9TVUNDRVNTKTsKKwkJY2FzZSAnPyc6CisJCQl1c2FnZShFWElUX1NVQ0NFU1MpOworCQl9CisJfQorCisJaWYgIChwcmludCkgeworCQlpZiAoc2htKQorCQkJcHJpbnRfc2htIChpZCk7CisJCWVsc2UgaWYgKHNlbSkKKwkJCXByaW50X3NlbSAoaWQpOworCQllbHNlIGlmIChtc2cpCisJCQlwcmludF9tc2cgKGlkKTsKKwkJZWxzZQorCQkJdXNhZ2UgKEVYSVRfRkFJTFVSRSk7CisJfSBlbHNlIHsKKwkJaWYgKCAhc2htICYmICFtc2cgJiYgIXNlbSkKKwkJCW1zZyA9IHNlbSA9IHNobSA9IDE7CisJCXByaW50ZiAoIlxuIik7CisKKwkJaWYgKHNobSkgeworCQkJZG9fc2htIChmb3JtYXQpOworCQkJcHJpbnRmICgiXG4iKTsKKwkJfQorCQlpZiAoc2VtKSB7CisJCQlkb19zZW0gKGZvcm1hdCk7CisJCQlwcmludGYgKCJcbiIpOworCQl9CisJCWlmIChtc2cpIHsKKwkJCWRvX21zZyAoZm9ybWF0KTsKKwkJCXByaW50ZiAoIlxuIik7CisJCX0KKwl9CisJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKK30KKworCitzdGF0aWMgdm9pZAorcHJpbnRfcGVybXMgKGludCBpZCwgc3RydWN0IGlwY19wZXJtICppcGNwKSB7CisJc3RydWN0IHBhc3N3ZCAqcHc7CisJc3RydWN0IGdyb3VwICpncjsKKworCXByaW50ZiAoIiUtMTBkICUtMTBvIiwgaWQsIGlwY3AtPm1vZGUgJiAwNzc3KTsKKworCWlmICgocHcgPSBnZXRwd3VpZChpcGNwLT5jdWlkKSkpCisJCXByaW50ZigiICUtMTBzIiwgcHctPnB3X25hbWUpOworCWVsc2UKKwkJcHJpbnRmKCIgJS0xMGQiLCBpcGNwLT5jdWlkKTsKKwlpZiAoKGdyID0gZ2V0Z3JnaWQoaXBjcC0+Y2dpZCkpKQorCQlwcmludGYoIiAlLTEwcyIsIGdyLT5ncl9uYW1lKTsKKwllbHNlCisJCXByaW50ZigiICUtMTBkIiwgaXBjcC0+Y2dpZCk7CisKKwlpZiAoKHB3ID0gZ2V0cHd1aWQoaXBjcC0+dWlkKSkpCisJCXByaW50ZigiICUtMTBzIiwgcHctPnB3X25hbWUpOworCWVsc2UKKwkJcHJpbnRmKCIgJS0xMGQiLCBpcGNwLT51aWQpOworCWlmICgoZ3IgPSBnZXRncmdpZChpcGNwLT5naWQpKSkKKwkJcHJpbnRmKCIgJS0xMHNcbiIsIGdyLT5ncl9uYW1lKTsKKwllbHNlCisJCXByaW50ZigiICUtMTBkXG4iLCBpcGNwLT5naWQpOworfQorCisKK3ZvaWQgZG9fc2htIChjaGFyIGZvcm1hdCkKK3sKKwlpbnQgbWF4aWQsIHNobWlkLCBpZDsKKwlzdHJ1Y3Qgc2htaWRfZHMgc2htc2VnOworCXN0cnVjdCBzaG1faW5mbyBzaG1faW5mbzsKKwlzdHJ1Y3Qgc2htaW5mbyBzaG1pbmZvOworCXN0cnVjdCBpcGNfcGVybSAqaXBjcCA9ICZzaG1zZWcuc2htX3Blcm07CisJc3RydWN0IHBhc3N3ZCAqcHc7CisKKwltYXhpZCA9IHNobWN0bCAoMCwgU0hNX0lORk8sIChzdHJ1Y3Qgc2htaWRfZHMgKikgKHZvaWQgKikgJnNobV9pbmZvKTsKKwlpZiAobWF4aWQgPCAwKSB7CisJCXByaW50ZiAoXygia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzaGFyZWQgbWVtb3J5XG4iKSk7CisJCXJldHVybjsKKwl9CisKKwlzd2l0Y2ggKGZvcm1hdCkgeworCWNhc2UgTElNSVRTOgorCQlwcmludGYgKF8oIi0tLS0tLSBTaGFyZWQgTWVtb3J5IExpbWl0cyAtLS0tLS0tLVxuIikpOworCQlpZiAoKHNobWN0bCAoMCwgSVBDX0lORk8sIChzdHJ1Y3Qgc2htaWRfZHMgKikgKHZvaWQgKikgJnNobWluZm8pKSA8IDAgKQorCQkJcmV0dXJuOworCQkvKiBnbGliYyAyLjEuMyBhbmQgYWxsIGVhcmxpZXIgbGliYydzIGhhdmUgaW50cyBhcyBmaWVsZHMKKwkJICAgb2Ygc3RydWN0IHNobWluZm87IGdsaWJjIDIuMS45MSBoYXMgdW5zaWduZWQgbG9uZzsgYWNoICovCisJCXByaW50ZiAoXygibWF4IG51bWJlciBvZiBzZWdtZW50cyA9ICVsdVxuIiksCisJCQkodW5zaWduZWQgbG9uZykgc2htaW5mby5zaG1tbmkpOworCQlwcmludGYgKF8oIm1heCBzZWcgc2l6ZSAoa2J5dGVzKSA9ICVsdVxuIiksCisJCQkodW5zaWduZWQgbG9uZykgKHNobWluZm8uc2htbWF4ID4+IDEwKSk7CisJCXByaW50ZiAoXygibWF4IHRvdGFsIHNoYXJlZCBtZW1vcnkgKGtieXRlcykgPSAlbGx1XG4iKSwKKwkJCWdldHBhZ2VzaXplKCkgLyAxMDI0ICogKHVuc2lnbmVkIGxvbmcgbG9uZykgc2htaW5mby5zaG1hbGwpOworCQlwcmludGYgKF8oIm1pbiBzZWcgc2l6ZSAoYnl0ZXMpID0gJWx1XG4iKSwKKwkJCSh1bnNpZ25lZCBsb25nKSBzaG1pbmZvLnNobW1pbik7CisJCXJldHVybjsKKworCWNhc2UgU1RBVFVTOgorCQlwcmludGYgKF8oIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLVxuIikpOworCQlwcmludGYgKF8oInNlZ21lbnRzIGFsbG9jYXRlZCAlZFxuIiksIHNobV9pbmZvLnVzZWRfaWRzKTsKKwkJcHJpbnRmIChfKCJwYWdlcyBhbGxvY2F0ZWQgJWxkXG4iKSwgc2htX2luZm8uc2htX3RvdCk7CisJCXByaW50ZiAoXygicGFnZXMgcmVzaWRlbnQgICVsZFxuIiksIHNobV9pbmZvLnNobV9yc3MpOworCQlwcmludGYgKF8oInBhZ2VzIHN3YXBwZWQgICAlbGRcbiIpLCBzaG1faW5mby5zaG1fc3dwKTsKKwkJcHJpbnRmIChfKCJTd2FwIHBlcmZvcm1hbmNlOiAlbGQgYXR0ZW1wdHNcdCAlbGQgc3VjY2Vzc2VzXG4iKSwKKwkJCXNobV9pbmZvLnN3YXBfYXR0ZW1wdHMsIHNobV9pbmZvLnN3YXBfc3VjY2Vzc2VzKTsKKwkJcmV0dXJuOworCisJY2FzZSBDUkVBVE9SOgorCQlwcmludGYgKF8oIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnQgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iKSk7CisJCXByaW50ZiAoIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iLAorCQkJXygic2htaWQiKSxfKCJwZXJtcyIpLF8oImN1aWQiKSxfKCJjZ2lkIiksXygidWlkIiksXygiZ2lkIikpOworCQlicmVhazsKKworCWNhc2UgVElNRToKKwkJcHJpbnRmIChfKCItLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIikpOworCQlwcmludGYgKCIlLTEwcyAlLTEwcyAlLTIwcyAlLTIwcyAlLTIwc1xuIiwKKwkJCV8oInNobWlkIiksXygib3duZXIiKSxfKCJhdHRhY2hlZCIpLF8oImRldGFjaGVkIiksCisJCQlfKCJjaGFuZ2VkIikpOworCQlicmVhazsKKworCWNhc2UgUElEOgorCQlwcmludGYgKF8oIi0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLVxuIikpOworCQlwcmludGYgKCIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIiwKKwkJCV8oInNobWlkIiksXygib3duZXIiKSxfKCJjcGlkIiksXygibHBpZCIpKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlwcmludGYgKF8oIi0tLS0tLSBTaGFyZWQgTWVtb3J5IFNlZ21lbnRzIC0tLS0tLS0tXG4iKSk7CisJCXByaW50ZiAoIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTJzXG4iLAorCQkJXygia2V5IiksXygic2htaWQiKSxfKCJvd25lciIpLF8oInBlcm1zIiksXygiYnl0ZXMiKSwKKwkJCV8oIm5hdHRjaCIpLF8oInN0YXR1cyIpKTsKKwkJYnJlYWs7CisJfQorCisJZm9yIChpZCA9IDA7IGlkIDw9IG1heGlkOyBpZCsrKSB7CisJCXNobWlkID0gc2htY3RsIChpZCwgU0hNX1NUQVQsICZzaG1zZWcpOworCQlpZiAoc2htaWQgPCAwKQorCQkJY29udGludWU7CisJCWlmIChmb3JtYXQgPT0gQ1JFQVRPUikgIHsKKwkJCXByaW50X3Blcm1zIChzaG1pZCwgaXBjcCk7CisJCQljb250aW51ZTsKKwkJfQorCQlwdyA9IGdldHB3dWlkKGlwY3AtPnVpZCk7CisJCXN3aXRjaCAoZm9ybWF0KSB7CisJCWNhc2UgVElNRToKKwkJCWlmIChwdykKKwkJCQlwcmludGYgKCIlLTEwZCAlLTEwLjEwcyIsIHNobWlkLCBwdy0+cHdfbmFtZSk7CisJCQllbHNlCisJCQkJcHJpbnRmICgiJS0xMGQgJS0xMGQiLCBzaG1pZCwgaXBjcC0+dWlkKTsKKwkJCS8qIGN0aW1lIHVzZXMgc3RhdGljIGJ1ZmZlcjogdXNlIHNlcGFyYXRlIGNhbGxzICovCisJCQlwcmludGYoIiAlLTIwLjE2cyIsIHNobXNlZy5zaG1fYXRpbWUKKwkJCSAgICAgICA/IGN0aW1lKCZzaG1zZWcuc2htX2F0aW1lKSArIDQgOiBfKCJOb3Qgc2V0IikpOworCQkJcHJpbnRmKCIgJS0yMC4xNnMiLCBzaG1zZWcuc2htX2R0aW1lCisJCQkgICAgICAgPyBjdGltZSgmc2htc2VnLnNobV9kdGltZSkgKyA0IDogXygiTm90IHNldCIpKTsKKwkJCXByaW50ZigiICUtMjAuMTZzXG4iLCBzaG1zZWcuc2htX2N0aW1lCisJCQkgICAgICAgPyBjdGltZSgmc2htc2VnLnNobV9jdGltZSkgKyA0IDogXygiTm90IHNldCIpKTsKKwkJCWJyZWFrOworCQljYXNlIFBJRDoKKwkJCWlmIChwdykKKwkJCQlwcmludGYgKCIlLTEwZCAlLTEwLjEwcyIsIHNobWlkLCBwdy0+cHdfbmFtZSk7CisJCQllbHNlCisJCQkJcHJpbnRmICgiJS0xMGQgJS0xMGQiLCBzaG1pZCwgaXBjcC0+dWlkKTsKKwkJCXByaW50ZiAoIiAlLTEwZCAlLTEwZFxuIiwKKwkJCQlzaG1zZWcuc2htX2NwaWQsIHNobXNlZy5zaG1fbHBpZCk7CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkgICAgICAgIHByaW50ZigiMHglMDh4ICIsaXBjcC0+S0VZICk7CisJCQlpZiAocHcpCisJCQkJcHJpbnRmICgiJS0xMGQgJS0xMC4xMHMiLCBzaG1pZCwgcHctPnB3X25hbWUpOworCQkJZWxzZQorCQkJCXByaW50ZiAoIiUtMTBkICUtMTBkIiwgc2htaWQsIGlwY3AtPnVpZCk7CisJCQlwcmludGYgKCIgJS0xMG8gJS0xMGx1ICUtMTBsZCAlLTZzICUtNnNcbiIsCisJCQkJaXBjcC0+bW9kZSAmIDA3NzcsCisJCQkJLyoKKwkJCQkgKiBlYXJsaWVyOiBpbnQsIEF1c3RpbiBoYXMgc2l6ZV90CisJCQkJICovCisJCQkJKHVuc2lnbmVkIGxvbmcpIHNobXNlZy5zaG1fc2Vnc3osCisJCQkJLyoKKwkJCQkgKiBnbGliYy0yLjEuMyBhbmQgZWFybGllciBoYXMgdW5zaWduZWQgc2hvcnQ7CisJCQkJICogQXVzdGluIGhhcyBzaG1hdHRfdAorCQkJCSAqLworCQkJCShsb25nKSBzaG1zZWcuc2htX25hdHRjaCwKKwkJCQlpcGNwLT5tb2RlICYgU0hNX0RFU1QgPyBfKCJkZXN0IikgOiAiICIsCisJCQkJaXBjcC0+bW9kZSAmIFNITV9MT0NLRUQgPyBfKCJsb2NrZWQiKSA6ICIgIik7CisJCQlicmVhazsKKwkJfQorCX0KKwlyZXR1cm47Cit9CisKKwordm9pZCBkb19zZW0gKGNoYXIgZm9ybWF0KQoreworCWludCBtYXhpZCwgc2VtaWQsIGlkOworCXN0cnVjdCBzZW1pZF9kcyBzZW1hcnk7CisJc3RydWN0IHNlbWluZm8gc2VtaW5mbzsKKwlzdHJ1Y3QgaXBjX3Blcm0gKmlwY3AgPSAmc2VtYXJ5LnNlbV9wZXJtOworCXN0cnVjdCBwYXNzd2QgKnB3OworCXVuaW9uIHNlbXVuIGFyZzsKKworCWFyZy5hcnJheSA9ICh1c2hvcnQgKikgICh2b2lkICopICZzZW1pbmZvOworCW1heGlkID0gc2VtY3RsICgwLCAwLCBTRU1fSU5GTywgYXJnKTsKKwlpZiAobWF4aWQgPCAwKSB7CisJCXByaW50ZiAoXygia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBzZW1hcGhvcmVzXG4iKSk7CisJCXJldHVybjsKKwl9CisKKwlzd2l0Y2ggKGZvcm1hdCkgeworCWNhc2UgTElNSVRTOgorCQlwcmludGYgKF8oIi0tLS0tLSBTZW1hcGhvcmUgTGltaXRzIC0tLS0tLS0tXG4iKSk7CisJCWFyZy5hcnJheSA9ICh1c2hvcnQgKikgKHZvaWQgKikgJnNlbWluZm87IC8qIGRhbW4gdW5pb24gKi8KKwkJaWYgKChzZW1jdGwgKDAsIDAsIElQQ19JTkZPLCBhcmcpKSA8IDAgKQorCQkJcmV0dXJuOworCQlwcmludGYgKF8oIm1heCBudW1iZXIgb2YgYXJyYXlzID0gJWRcbiIpLCBzZW1pbmZvLnNlbW1uaSk7CisJCXByaW50ZiAoXygibWF4IHNlbWFwaG9yZXMgcGVyIGFycmF5ID0gJWRcbiIpLCBzZW1pbmZvLnNlbW1zbCk7CisJCXByaW50ZiAoXygibWF4IHNlbWFwaG9yZXMgc3lzdGVtIHdpZGUgPSAlZFxuIiksIHNlbWluZm8uc2VtbW5zKTsKKwkJcHJpbnRmIChfKCJtYXggb3BzIHBlciBzZW1vcCBjYWxsID0gJWRcbiIpLCBzZW1pbmZvLnNlbW9wbSk7CisJCXByaW50ZiAoXygic2VtYXBob3JlIG1heCB2YWx1ZSA9ICVkXG4iKSwgc2VtaW5mby5zZW12bXgpOworCQlyZXR1cm47CisKKwljYXNlIFNUQVRVUzoKKwkJcHJpbnRmIChfKCItLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLVxuIikpOworCQlwcmludGYgKF8oInVzZWQgYXJyYXlzID0gJWRcbiIpLCBzZW1pbmZvLnNlbXVzeik7CisJCXByaW50ZiAoXygiYWxsb2NhdGVkIHNlbWFwaG9yZXMgPSAlZFxuIiksIHNlbWluZm8uc2VtYWVtKTsKKwkJcmV0dXJuOworCisJY2FzZSBDUkVBVE9SOgorCQlwcmludGYgKF8oIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIENyZWF0b3JzL093bmVycyAtLS0tLS0tLVxuIikpOworCQlwcmludGYgKCIlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwcyAlLTEwc1xuIiwKKwkJCV8oInNlbWlkIiksXygicGVybXMiKSxfKCJjdWlkIiksXygiY2dpZCIpLF8oInVpZCIpLF8oImdpZCIpKTsKKwkJYnJlYWs7CisKKwljYXNlIFRJTUU6CisJCXByaW50ZiAoXygiLS0tLS0tIFNlbWFwaG9yZSBPcGVyYXRpb24vQ2hhbmdlIFRpbWVzIC0tLS0tLS0tXG4iKSk7CisJCXByaW50ZiAoIiUtOHMgJS0xMHMgJS0yNi4yNHMgJS0yNi4yNHNcbiIsCisJCQlfKCJzZW1pZCIpLF8oIm93bmVyIiksXygibGFzdC1vcCIpLF8oImxhc3QtY2hhbmdlZCIpKTsKKwkJYnJlYWs7CisKKwljYXNlIFBJRDoKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlwcmludGYgKF8oIi0tLS0tLSBTZW1hcGhvcmUgQXJyYXlzIC0tLS0tLS0tXG4iKSk7CisJCXByaW50ZiAoIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iLAorCQkJXygia2V5IiksXygic2VtaWQiKSxfKCJvd25lciIpLF8oInBlcm1zIiksXygibnNlbXMiKSk7CisJCWJyZWFrOworCX0KKworCWZvciAoaWQgPSAwOyBpZCA8PSBtYXhpZDsgaWQrKykgeworCQlhcmcuYnVmID0gKHN0cnVjdCBzZW1pZF9kcyAqKSAmc2VtYXJ5OworCQlzZW1pZCA9IHNlbWN0bCAoaWQsIDAsIFNFTV9TVEFULCBhcmcpOworCQlpZiAoc2VtaWQgPCAwKQorCQkJY29udGludWU7CisJCWlmIChmb3JtYXQgPT0gQ1JFQVRPUikgIHsKKwkJCXByaW50X3Blcm1zIChzZW1pZCwgaXBjcCk7CisJCQljb250aW51ZTsKKwkJfQorCQlwdyA9IGdldHB3dWlkKGlwY3AtPnVpZCk7CisJCXN3aXRjaCAoZm9ybWF0KSB7CisJCWNhc2UgVElNRToKKwkJCWlmIChwdykKKwkJCQlwcmludGYgKCIlLThkICUtMTAuMTBzIiwgc2VtaWQsIHB3LT5wd19uYW1lKTsKKwkJCWVsc2UKKwkJCQlwcmludGYgKCIlLThkICUtMTBkIiwgc2VtaWQsIGlwY3AtPnVpZCk7CisJCQlwcmludGYgKCIgICUtMjYuMjRzIiwgc2VtYXJ5LnNlbV9vdGltZQorCQkJCT8gY3RpbWUoJnNlbWFyeS5zZW1fb3RpbWUpIDogXygiTm90IHNldCIpKTsKKwkJCXByaW50ZiAoIiAlLTI2LjI0c1xuIiwgc2VtYXJ5LnNlbV9jdGltZQorCQkJCT8gY3RpbWUoJnNlbWFyeS5zZW1fY3RpbWUpIDogXygiTm90IHNldCIpKTsKKwkJCWJyZWFrOworCQljYXNlIFBJRDoKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCSAgICAgICAgcHJpbnRmKCIweCUwOHggIiwgaXBjcC0+S0VZKTsKKwkJCWlmIChwdykKKwkJCQlwcmludGYgKCIlLTEwZCAlLTEwLjEwcyIsIHNlbWlkLCBwdy0+cHdfbmFtZSk7CisJCQllbHNlCisJCQkJcHJpbnRmICgiJS0xMGQgJS0xMGQiLCBzZW1pZCwgaXBjcC0+dWlkKTsKKwkJCXByaW50ZiAoIiAlLTEwbyAlLTEwbGRcbiIsCisJCQkJaXBjcC0+bW9kZSAmIDA3NzcsCisJCQkJLyoKKwkJCQkgKiBnbGliYy0yLjEuMyBhbmQgZWFybGllciBoYXMgdW5zaWduZWQgc2hvcnQ7CisJCQkJICogZ2xpYmMtMi4xLjkxIGhhcyB2YXJpYXRpb24gYmV0d2VlbgorCQkJCSAqIHVuc2lnbmVkIHNob3J0IGFuZCB1bnNpZ25lZCBsb25nCisJCQkJICogQXVzdGluIHByZXNjcmliZXMgdW5zaWduZWQgc2hvcnQuCisJCQkJICovCisJCQkJKGxvbmcpIHNlbWFyeS5zZW1fbnNlbXMpOworCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKKwordm9pZCBkb19tc2cgKGNoYXIgZm9ybWF0KQoreworCWludCBtYXhpZCwgbXNxaWQsIGlkOworCXN0cnVjdCBtc3FpZF9kcyBtc2dxdWU7CisJc3RydWN0IG1zZ2luZm8gbXNnaW5mbzsKKwlzdHJ1Y3QgaXBjX3Blcm0gKmlwY3AgPSAmbXNncXVlLm1zZ19wZXJtOworCXN0cnVjdCBwYXNzd2QgKnB3OworCisJbWF4aWQgPSBtc2djdGwgKDAsIE1TR19JTkZPLCAoc3RydWN0IG1zcWlkX2RzICopICh2b2lkICopICZtc2dpbmZvKTsKKwlpZiAobWF4aWQgPCAwKSB7CisJCXByaW50ZiAoXygia2VybmVsIG5vdCBjb25maWd1cmVkIGZvciBtZXNzYWdlIHF1ZXVlc1xuIikpOworCQlyZXR1cm47CisJfQorCisJc3dpdGNoIChmb3JtYXQpIHsKKwljYXNlIExJTUlUUzoKKwkJaWYgKChtc2djdGwgKDAsIElQQ19JTkZPLCAoc3RydWN0IG1zcWlkX2RzICopICh2b2lkICopICZtc2dpbmZvKSkgPCAwICkKKwkJCXJldHVybjsKKwkJcHJpbnRmIChfKCItLS0tLS0gTWVzc2FnZXM6IExpbWl0cyAtLS0tLS0tLVxuIikpOworCQlwcmludGYgKF8oIm1heCBxdWV1ZXMgc3lzdGVtIHdpZGUgPSAlZFxuIiksIG1zZ2luZm8ubXNnbW5pKTsKKwkJcHJpbnRmIChfKCJtYXggc2l6ZSBvZiBtZXNzYWdlIChieXRlcykgPSAlZFxuIiksIG1zZ2luZm8ubXNnbWF4KTsKKwkJcHJpbnRmIChfKCJkZWZhdWx0IG1heCBzaXplIG9mIHF1ZXVlIChieXRlcykgPSAlZFxuIiksIG1zZ2luZm8ubXNnbW5iKTsKKwkJcmV0dXJuOworCisJY2FzZSBTVEFUVVM6CisJCXByaW50ZiAoXygiLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS1cbiIpKTsKKwkJcHJpbnRmIChfKCJhbGxvY2F0ZWQgcXVldWVzID0gJWRcbiIpLCBtc2dpbmZvLm1zZ3Bvb2wpOworCQlwcmludGYgKF8oInVzZWQgaGVhZGVycyA9ICVkXG4iKSwgbXNnaW5mby5tc2dtYXApOworCQlwcmludGYgKF8oInVzZWQgc3BhY2UgPSAlZCBieXRlc1xuIiksIG1zZ2luZm8ubXNndHFsKTsKKwkJcmV0dXJuOworCisJY2FzZSBDUkVBVE9SOgorCQlwcmludGYgKF8oIi0tLS0tLSBNZXNzYWdlIFF1ZXVlczogQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tXG4iKSk7CisJCXByaW50ZiAoIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iLAorCQkJXygibXNxaWQiKSxfKCJwZXJtcyIpLF8oImN1aWQiKSxfKCJjZ2lkIiksXygidWlkIiksXygiZ2lkIikpOworCQlicmVhazsKKworCWNhc2UgVElNRToKKwkJcHJpbnRmIChfKCItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgU2VuZC9SZWN2L0NoYW5nZSBUaW1lcyAtLS0tLS0tLVxuIikpOworCQlwcmludGYgKCIlLThzICUtMTBzICUtMjBzICUtMjBzICUtMjBzXG4iLAorCQkJXygibXNxaWQiKSxfKCJvd25lciIpLF8oInNlbmQiKSxfKCJyZWN2IiksXygiY2hhbmdlIikpOworCQlicmVhazsKKworCWNhc2UgUElEOgorCQlwcmludGYgKF8oIi0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBQSURzIC0tLS0tLS0tXG4iKSk7CisJCXByaW50ZiAoIiUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iLAorCQkJXygibXNxaWQiKSxfKCJvd25lciIpLF8oImxzcGlkIiksXygibHJwaWQiKSk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcHJpbnRmIChfKCItLS0tLS0gTWVzc2FnZSBRdWV1ZXMgLS0tLS0tLS1cbiIpKTsKKwkJcHJpbnRmICgiJS0xMHMgJS0xMHMgJS0xMHMgJS0xMHMgJS0xMnMgJS0xMnNcbiIsCisJCQlfKCJrZXkiKSwgXygibXNxaWQiKSwgXygib3duZXIiKSwgXygicGVybXMiKSwKKwkJCV8oInVzZWQtYnl0ZXMiKSwgXygibWVzc2FnZXMiKSk7CisJCWJyZWFrOworCX0KKworCWZvciAoaWQgPSAwOyBpZCA8PSBtYXhpZDsgaWQrKykgeworCQltc3FpZCA9IG1zZ2N0bCAoaWQsIE1TR19TVEFULCAmbXNncXVlKTsKKwkJaWYgKG1zcWlkIDwgMCkKKwkJCWNvbnRpbnVlOworCQlpZiAoZm9ybWF0ID09IENSRUFUT1IpICB7CisJCQlwcmludF9wZXJtcyAobXNxaWQsIGlwY3ApOworCQkJY29udGludWU7CisJCX0KKwkJcHcgPSBnZXRwd3VpZChpcGNwLT51aWQpOworCQlzd2l0Y2ggKGZvcm1hdCkgeworCQljYXNlIFRJTUU6CisJCQlpZiAocHcpCisJCQkJcHJpbnRmICgiJS04ZCAlLTEwLjEwcyIsIG1zcWlkLCBwdy0+cHdfbmFtZSk7CisJCQllbHNlCisJCQkJcHJpbnRmICgiJS04ZCAlLTEwZCIsIG1zcWlkLCBpcGNwLT51aWQpOworCQkJcHJpbnRmICgiICUtMjAuMTZzIiwgbXNncXVlLm1zZ19zdGltZQorCQkJCT8gY3RpbWUoJm1zZ3F1ZS5tc2dfc3RpbWUpICsgNCA6IF8oIk5vdCBzZXQiKSk7CisJCQlwcmludGYgKCIgJS0yMC4xNnMiLCBtc2dxdWUubXNnX3J0aW1lCisJCQkJPyBjdGltZSgmbXNncXVlLm1zZ19ydGltZSkgKyA0IDogXygiTm90IHNldCIpKTsKKwkJCXByaW50ZiAoIiAlLTIwLjE2c1xuIiwgbXNncXVlLm1zZ19jdGltZQorCQkJCT8gY3RpbWUoJm1zZ3F1ZS5tc2dfY3RpbWUpICsgNCA6IF8oIk5vdCBzZXQiKSk7CisJCQlicmVhazsKKwkJY2FzZSBQSUQ6CisJCQlpZiAocHcpCisJCQkJcHJpbnRmICgiJS04ZCAlLTEwLjEwcyIsIG1zcWlkLCBwdy0+cHdfbmFtZSk7CisJCQllbHNlCisJCQkJcHJpbnRmICgiJS04ZCAlLTEwZCIsIG1zcWlkLCBpcGNwLT51aWQpOworCQkJcHJpbnRmICgiICAlNWQgICAgICU1ZFxuIiwKKwkJCQltc2dxdWUubXNnX2xzcGlkLCBtc2dxdWUubXNnX2xycGlkKTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCSAgICAgICAgcHJpbnRmKCAiMHglMDh4ICIsaXBjcC0+S0VZICk7CisJCQlpZiAocHcpCisJCQkJcHJpbnRmICgiJS0xMGQgJS0xMC4xMHMiLCBtc3FpZCwgcHctPnB3X25hbWUpOworCQkJZWxzZQorCQkJCXByaW50ZiAoIiUtMTBkICUtMTBkIiwgbXNxaWQsIGlwY3AtPnVpZCk7CisJCQlwcmludGYgKCIgJS0xMG8gJS0xMmxkICUtMTJsZFxuIiwKKwkJCQlpcGNwLT5tb2RlICYgMDc3NywKKwkJCQkvKgorCQkJCSAqIGdsaWJjLTIuMS4zIGFuZCBlYXJsaWVyIGhhcyB1bnNpZ25lZCBzaG9ydDsKKwkJCQkgKiBnbGliYy0yLjEuOTEgaGFzIHZhcmlhdGlvbiBiZXR3ZWVuCisJCQkJICogdW5zaWduZWQgc2hvcnQsIHVuc2lnbmVkIGxvbmcKKwkJCQkgKiBBdXN0aW4gaGFzIG1zZ3FudW1fdAorCQkJCSAqLworCQkJCShsb25nKSBtc2dxdWUubXNnX2NieXRlcywKKwkJCQkobG9uZykgbXNncXVlLm1zZ19xbnVtKTsKKwkJCWJyZWFrOworCQl9CisJfQorCXJldHVybjsKK30KKworCit2b2lkIHByaW50X3NobSAoaW50IHNobWlkKQoreworCXN0cnVjdCBzaG1pZF9kcyBzaG1kczsKKwlzdHJ1Y3QgaXBjX3Blcm0gKmlwY3AgPSAmc2htZHMuc2htX3Blcm07CisKKwlpZiAoc2htY3RsIChzaG1pZCwgSVBDX1NUQVQsICZzaG1kcykgPT0gLTEpCisJCWVycihFWElUX0ZBSUxVUkUsIF8oInNobWN0bCBmYWlsZWQiKSk7CisKKwlwcmludGYgKF8oIlxuU2hhcmVkIG1lbW9yeSBTZWdtZW50IHNobWlkPSVkXG4iKSwgc2htaWQpOworCXByaW50ZiAoXygidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcbiIpLAorCQlpcGNwLT51aWQsIGlwY3AtPmdpZCwgaXBjcC0+Y3VpZCwgaXBjcC0+Y2dpZCk7CisJcHJpbnRmIChfKCJtb2RlPSUjb1x0YWNjZXNzX3Blcm1zPSUjb1xuIiksCisJCWlwY3AtPm1vZGUsIGlwY3AtPm1vZGUgJiAwNzc3KTsKKwlwcmludGYgKF8oImJ5dGVzPSVsZFx0bHBpZD0lZFx0Y3BpZD0lZFx0bmF0dGNoPSVsZFxuIiksCisJCShsb25nKSBzaG1kcy5zaG1fc2Vnc3osIHNobWRzLnNobV9scGlkLCBzaG1kcy5zaG1fY3BpZCwKKwkJKGxvbmcpIHNobWRzLnNobV9uYXR0Y2gpOworCXByaW50ZiAoXygiYXR0X3RpbWU9JS0yNi4yNHNcbiIpLAorCQlzaG1kcy5zaG1fYXRpbWUgPyBjdGltZSAoJnNobWRzLnNobV9hdGltZSkgOiBfKCJOb3Qgc2V0IikpOworCXByaW50ZiAoXygiZGV0X3RpbWU9JS0yNi4yNHNcbiIpLAorCQlzaG1kcy5zaG1fZHRpbWUgPyBjdGltZSAoJnNobWRzLnNobV9kdGltZSkgOiBfKCJOb3Qgc2V0IikpOworCXByaW50ZiAoXygiY2hhbmdlX3RpbWU9JS0yNi4yNHNcbiIpLCBjdGltZSAoJnNobWRzLnNobV9jdGltZSkpOworCXByaW50ZiAoIlxuIik7CisJcmV0dXJuOworfQorCisKK3ZvaWQgcHJpbnRfbXNnIChpbnQgbXNxaWQpCit7CisJc3RydWN0IG1zcWlkX2RzIGJ1ZjsKKwlzdHJ1Y3QgaXBjX3Blcm0gKmlwY3AgPSAmYnVmLm1zZ19wZXJtOworCisJaWYgKG1zZ2N0bCAobXNxaWQsIElQQ19TVEFULCAmYnVmKSA9PSAtMSkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygibXNnY3RsIGZhaWxlZCIpKTsKKworCXByaW50ZiAoXygiXG5NZXNzYWdlIFF1ZXVlIG1zcWlkPSVkXG4iKSwgbXNxaWQpOworCXByaW50ZiAoXygidWlkPSVkXHRnaWQ9JWRcdGN1aWQ9JWRcdGNnaWQ9JWRcdG1vZGU9JSNvXG4iKSwKKwkJaXBjcC0+dWlkLCBpcGNwLT5naWQsIGlwY3AtPmN1aWQsIGlwY3AtPmNnaWQsIGlwY3AtPm1vZGUpOworCXByaW50ZiAoXygiY2J5dGVzPSVsZFx0cWJ5dGVzPSVsZFx0cW51bT0lbGRcdGxzcGlkPSVkXHRscnBpZD0lZFxuIiksCisJCS8qCisJCSAqIGdsaWJjLTIuMS4zIGFuZCBlYXJsaWVyIGhhcyB1bnNpZ25lZCBzaG9ydDsKKwkJICogZ2xpYmMtMi4xLjkxIGhhcyB2YXJpYXRpb24gYmV0d2VlbgorCQkgKiB1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgbG9uZworCQkgKiBBdXN0aW4gaGFzIG1zZ3FudW1fdCAoZm9yIG1zZ19xYnl0ZXMpCisJCSAqLworCQkobG9uZykgYnVmLm1zZ19jYnl0ZXMsIChsb25nKSBidWYubXNnX3FieXRlcywKKwkJKGxvbmcpIGJ1Zi5tc2dfcW51bSwgYnVmLm1zZ19sc3BpZCwgYnVmLm1zZ19scnBpZCk7CisJcHJpbnRmIChfKCJzZW5kX3RpbWU9JS0yNi4yNHNcbiIpLAorCQlidWYubXNnX3N0aW1lID8gY3RpbWUgKCZidWYubXNnX3N0aW1lKSA6IF8oIk5vdCBzZXQiKSk7CisJcHJpbnRmIChfKCJyY3ZfdGltZT0lLTI2LjI0c1xuIiksCisJCWJ1Zi5tc2dfcnRpbWUgPyBjdGltZSAoJmJ1Zi5tc2dfcnRpbWUpIDogXygiTm90IHNldCIpKTsKKwlwcmludGYgKF8oImNoYW5nZV90aW1lPSUtMjYuMjRzXG4iKSwKKwkJYnVmLm1zZ19jdGltZSA/IGN0aW1lICgmYnVmLm1zZ19jdGltZSkgOiBfKCJOb3Qgc2V0IikpOworCXByaW50ZiAoIlxuIik7CisJcmV0dXJuOworfQorCit2b2lkIHByaW50X3NlbSAoaW50IHNlbWlkKQoreworCXN0cnVjdCBzZW1pZF9kcyBzZW1kczsKKwlzdHJ1Y3QgaXBjX3Blcm0gKmlwY3AgPSAmc2VtZHMuc2VtX3Blcm07CisJdW5pb24gc2VtdW4gYXJnOworCWludCBpOworCisJYXJnLmJ1ZiA9ICZzZW1kczsKKwlpZiAoc2VtY3RsIChzZW1pZCwgMCwgSVBDX1NUQVQsIGFyZykgPCAwKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJzZW1jdGwgZmFpbGVkIikpOworCisJcHJpbnRmIChfKCJcblNlbWFwaG9yZSBBcnJheSBzZW1pZD0lZFxuIiksIHNlbWlkKTsKKwlwcmludGYgKF8oInVpZD0lZFx0IGdpZD0lZFx0IGN1aWQ9JWRcdCBjZ2lkPSVkXG4iKSwKKwkJaXBjcC0+dWlkLCBpcGNwLT5naWQsIGlwY3AtPmN1aWQsIGlwY3AtPmNnaWQpOworCXByaW50ZiAoXygibW9kZT0lI28sIGFjY2Vzc19wZXJtcz0lI29cbiIpLAorCQlpcGNwLT5tb2RlLCBpcGNwLT5tb2RlICYgMDc3Nyk7CisJcHJpbnRmIChfKCJuc2VtcyA9ICVsZFxuIiksIChsb25nKSBzZW1kcy5zZW1fbnNlbXMpOworCXByaW50ZiAoXygib3RpbWUgPSAlLTI2LjI0c1xuIiksCisJCXNlbWRzLnNlbV9vdGltZSA/IGN0aW1lICgmc2VtZHMuc2VtX290aW1lKSA6IF8oIk5vdCBzZXQiKSk7CisJcHJpbnRmIChfKCJjdGltZSA9ICUtMjYuMjRzXG4iKSwgY3RpbWUgKCZzZW1kcy5zZW1fY3RpbWUpKTsKKworCXByaW50ZiAoIiUtMTBzICUtMTBzICUtMTBzICUtMTBzICUtMTBzXG4iLAorCQlfKCJzZW1udW0iKSxfKCJ2YWx1ZSIpLF8oIm5jb3VudCIpLF8oInpjb3VudCIpLF8oInBpZCIpKTsKKwlhcmcudmFsID0gMDsKKwlmb3IgKGk9MDsgaTwgc2VtZHMuc2VtX25zZW1zOyBpKyspIHsKKwkJaW50IHZhbCwgbmNudCwgemNudCwgcGlkOworCQl2YWwgPSBzZW1jdGwgKHNlbWlkLCBpLCBHRVRWQUwsIGFyZyk7CisJCW5jbnQgPSBzZW1jdGwgKHNlbWlkLCBpLCBHRVROQ05ULCBhcmcpOworCQl6Y250ID0gc2VtY3RsIChzZW1pZCwgaSwgR0VUWkNOVCwgYXJnKTsKKwkJcGlkID0gc2VtY3RsIChzZW1pZCwgaSwgR0VUUElELCBhcmcpOworCQlpZiAodmFsIDwgMCB8fCBuY250IDwgMCB8fCB6Y250IDwgMCB8fCBwaWQgPCAwKQorCQkJZXJyKEVYSVRfRkFJTFVSRSwgXygic2VtY3RsIGZhaWxlZCIpKTsKKworCQlwcmludGYgKCIlLTEwZCAlLTEwZCAlLTEwZCAlLTEwZCAlLTEwZFxuIiwKKwkJCWksIHZhbCwgbmNudCwgemNudCwgcGlkKTsKKwl9CisJcHJpbnRmICgiXG4iKTsKKwlyZXR1cm47Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvbGRhdHRhY2guOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9sZGF0dGFjaC44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NTY5OTkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvbGRhdHRhY2guOApAQCAtMCwwICsxLDEzNSBAQAorLlwiIENvcHlyaWdodCAyMDA4IFRpbG1hbiBTY2htaWR0ICh0aWxtYW5AaW1hcC5jYykKKy5cIiBNYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcgorLlRIIExEQVRUQUNIIDggIjE0IEphbnVhcnkgMjAwOCIgIkxpbnV4IDIuNiIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorbGRhdHRhY2ggXC0gYXR0YWNoIGEgbGluZSBkaXNjaXBsaW5lIHRvIGEgc2VyaWFsIGxpbmUKKy5TSCBTWU5PUFNJUworLkIgbGRhdHRhY2gKKy5SQiBbIFwtZGhWNzhuZW8xMiBdCisuUkIgWyBcLXMKKy5JUiBzcGVlZCBdCisuSSBsZGlzYyBkZXZpY2UKKy5TSCBERVNDUklQVElPTgorVGhlCisuQiBsZGF0dGFjaAorZGFlbW9uIG9wZW5zIHRoZSBzcGVjaWZpZWQKKy5JIGRldmljZQorZmlsZQorKHdoaWNoIHNob3VsZCByZWZlciB0byBhIHNlcmlhbCBkZXZpY2UpCithbmQgYXR0YWNoZXMgdGhlIGxpbmUgZGlzY2lwbGluZQorLkkgbGRpc2MKK3RvIGl0IGZvciBwcm9jZXNzaW5nIG9mIHRoZSBzZW50IGFuZC9vciByZWNlaXZlZCBkYXRhLgorSXQgdGhlbiBnb2VzIGludG8gdGhlIGJhY2tncm91bmQga2VlcGluZyB0aGUgZGV2aWNlIG9wZW4gc28gdGhhdCB0aGUKK2xpbmUgZGlzY2lwbGluZSBzdGF5cyBsb2FkZWQuCisKK1RoZSBsaW5lIGRpc2NpcGxpbmUKKy5JIGxkaXNjCittYXkgYmUgc3BlY2lmaWVkIGVpdGhlciBieSBuYW1lCitvciBieSBudW1iZXIuCisKK0luIG9yZGVyIHRvIGRldGFjaCB0aGUgbGluZSBkaXNjaXBsaW5lLAorLkJSIGtpbGwgKDEpCit0aGUKKy5CIGxkYXR0YWNoCitwcm9jZXNzLgorCitXaXRoIG5vIGFyZ3VtZW50cywKKy5CIGxkYXR0YWNoCitwcmludHMgdXNhZ2UgaW5mb3JtYXRpb24uCisuU0ggTElORSBESVNDSVBMSU5FUworRGVwZW5kaW5nIG9uIHRoZSBrZXJuZWwgcmVsZWFzZSwgdGhlIGZvbGxvd2luZyBsaW5lIGRpc2NpcGxpbmVzIGFyZSBzdXBwb3J0ZWQ6CisuVFAKKy5CUiBUVFkgKCAwICkKK1RoZSBkZWZhdWx0IGxpbmUgZGlzY2lwbGluZSwKK3Byb3ZpZGluZyB0cmFuc3BhcmVudCBvcGVyYXRpb24gKHJhdyBtb2RlKQorYXMgd2VsbCBhcyB0aGUgaGFiaXR1YWwgdGVybWluYWwgbGluZSBlZGl0aW5nIGNhcGFiaWxpdGllcyAoY29va2VkIG1vZGUpLgorLlRQCisuQlIgU0xJUCAoIDEgKQorU2VyaWFsIExpbmUgSVAgKFNMSVApIHByb3RvY29sIHByb2Nlc3NvcgorZm9yIHRyYW5zbWl0dGluZyBUQ1AvSVAgcGFja2V0cyBvdmVyIHNlcmlhbCBsaW5lcy4KKy5UUAorLkJSIE1PVVNFICggMiApCitEZXZpY2UgZHJpdmVyIGZvciBSUzIzMiBjb25uZWN0ZWQgcG9pbnRpbmcgZGV2aWNlcyAoc2VyaWFsIG1pY2UpLgorLlRQCisuQlIgUFBQICggMyApCitQb2ludCB0byBQb2ludCBQcm90b2NvbCAoUFBQKSBwcm9jZXNzb3IKK2ZvciB0cmFuc21pdHRpbmcgbmV0d29yayBwYWNrZXRzIG92ZXIgc2VyaWFsIGxpbmVzLgorLlRQCisuQlIgU1RSSVAgKCA0ICkKKy5UUAorLkJSIEFYMjUgKCA1ICkKKy5UUAorLkJSIFgyNSAoIDYgKQorTGluZSBkcml2ZXIgZm9yIHRyYW5zbWl0dGluZyBYLjI1IHBhY2tldHMgb3ZlciBhc3luY2hyb25vdXMgc2VyaWFsIGxpbmVzLgorLlRQCisuQlIgNlBBQ0sgKCA3ICkKKy5UUAorLkJSIFIzOTY0ICggOSApCitEcml2ZXIgZm9yIFNpbWF0aWMgUjM5NjQgbW9kdWxlLgorLlRQCisuQlIgSVJEQSAoIDExICkKK0xpbnV4IElyRGEgKGluZnJhcmVkIGRhdGEgdHJhbnNtaXNzaW9uKSBkcml2ZXIgLQorc2VlIGh0dHA6Ly9pcmRhLnNvdXJjZWZvcmdlLm5ldC8KKy5UUAorLkJSIEhETEMgKCAxMyApCitTeW5jaHJvbm91cyBIRExDIGRyaXZlci4KKy5UUAorLkJSIFNZTkNfUFBQICggMTQgKQorU3luY2hyb25vdXMgUFBQIGRyaXZlci4KKy5UUAorLkJSIEhDSSAoIDE1ICkKK0JsdWV0b290aCBIQ0kgVUFSVCBkcml2ZXIuCisuVFAKKy5CUiBHSUdBU0VUX00xMDEgKCAxNiApCitEcml2ZXIgZm9yIFNpZW1lbnMgR2lnYXNldCBNMTAxIHNlcmlhbCBERUNUIGFkYXB0ZXIuCisuVFAKKy5CUiBQUFMgKCAxOCApCitEcml2ZXIgZm9yIHNlcmlhbCBsaW5lIFB1bHNlIFBlciBTZWNvbmQgKFBQUykgc291cmNlLgorLlNIIE9QVElPTlMKKy5UUAorXGZCLWRcZlAgfCBcZkItLWRlYnVnXGZQCitDYXVzZXMKKy5CIGxkYXR0YWNoCit0byBzdGF5IGluIHRoZSBmb3JlZ3JvdW5kIHNvIHRoYXQgaXQgY2FuIGJlIGludGVycnVwdGVkIG9yIGRlYnVnZ2VkLAorYW5kIHRvIHByaW50IHZlcmJvc2UgbWVzc2FnZXMgYWJvdXQgaXRzIHByb2dyZXNzIHRvIHRoZSBzdGFuZGFyZCBlcnJvciBvdXRwdXQuCisuVFAKK1xmQi1oXGZQIHwgXGZCLS1oZWxwXGZQCitQcmludHMgYSB1c2FnZSBtZXNzYWdlIGFuZCBleGl0cy4KKy5UUAorXGZCLVZcZlAgfCBcZkItLXZlcnNpb25cZlAKK1ByaW50cyB0aGUgcHJvZ3JhbSB2ZXJzaW9uLgorLlRQCitcZkItc1xmUCBcZkl2YWx1ZVxmUCB8IFxmQi0tc3BlZWRcZlAgXGZJdmFsdWVcZlAKK1NldCB0aGUgc3BlZWQgb2YgdGhlIHNlcmlhbCBsaW5lIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisuVFAKK1xmQi03XGZQIHwgXGZCLS1zZXZlbmJpdHNcZlAKK1NldHMgdGhlIGNoYXJhY3RlciBzaXplIG9mIHRoZSBzZXJpYWwgbGluZSB0byA3IGJpdHMuCisuVFAKK1xmQi04XGZQIHwgXGZCLS1laWdodGJpdHNcZlAKK1NldHMgdGhlIGNoYXJhY3RlciBzaXplIG9mIHRoZSBzZXJpYWwgbGluZSB0byA4IGJpdHMuCisuVFAKK1xmQi1uXGZQIHwgXGZCLS1ub3Bhcml0eVxmUAorU2V0cyB0aGUgcGFyaXR5IG9mIHRoZSBzZXJpYWwgbGluZSB0byBub25lLgorLlRQCitcZkItZVxmUCB8IFxmQi0tZXZlbnBhcml0eVxmUAorU2V0cyB0aGUgcGFyaXR5IG9mIHRoZSBzZXJpYWwgbGluZSB0byBldmVuLgorLlRQCitcZkItb1xmUCB8IFxmQi0tb2RkcGFyaXR5XGZQCitTZXRzIHRoZSBwYXJpdHkgb2YgdGhlIHNlcmlhbCBsaW5lIHRvIG9kZC4KKy5UUAorXGZCLTFcZlAgfCBcZkItLW9uZXN0b3BiaXRcZlAKK1NldHMgdGhlIG51bWJlciBvZiBzdG9wIGJpdHMgb2YgdGhlIHNlcmlhbCBsaW5lIHRvIG9uZS4KKy5UUAorXGZCLTJcZlAgfCBcZkItLXR3b3N0b3BiaXRzXGZQCitTZXRzIHRoZSBudW1iZXIgb2Ygc3RvcCBiaXRzIG9mIHRoZSBzZXJpYWwgbGluZSB0byB0d28uCisuU0ggIlNFRSBBTFNPIgorLkJSIGlucHV0YXR0YWNoICgxKSwKKy5CUiB0dHlzICg0KQorLlNIIEFVVEhPUgorLm5mCitUaWxtYW4gU2NobWlkdCAodGlsbWFuQGltYXAuY2MpCisuZmkKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBsZGF0dGFjaCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZQorYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvbGRhdHRhY2guYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9sZGF0dGFjaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NTYzYWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvbGRhdHRhY2guYwpAQCAtMCwwICsxLDI2MyBAQAorLyogbGluZSBkaXNjaXBsaW5lIGxvYWRpbmcgZGFlbW9uCisgKiBvcGVuIGEgc2VyaWFsIGRldmljZSBhbmQgYXR0YWNoIGEgbGluZSBkaXNjaXBsaW5lIG9uIGl0CisgKgorICogVXNhZ2U6CisgKglsZGF0dGFjaCBHSUdBU0VUX00xMDEgL2Rldi90dHlTMAorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICovCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxlcnIuaD4KKworI2luY2x1ZGUgImMuaCIKKyNpbmNsdWRlICJubHMuaCIKKworI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pIFwKKwlkbyB7IGlmIChkZWJ1ZykgZnByaW50ZihzdGRlcnIgLCAiJXM6IiBmb3JtYXQgIlxuIiAsIHByb2duYW1lICwgIyMgYXJnKTsgfSB3aGlsZSAoMCkKKworI2lmbmRlZiBOX0dJR0FTRVRfTTEwMQorIyBkZWZpbmUgTl9HSUdBU0VUX00xMDEgMTYKKyNlbmRpZgorCisjaWZuZGVmIE5fUFBTCisjIGRlZmluZSBOX1BQUyAxOAorI2VuZGlmCisKKy8qIGF0dGFjaCBhIGxpbmUgZGlzY2lwbGluZSBpb2N0bCAqLworI2lmbmRlZiBUSU9DU0VURAorIyBkZWZpbmUgVElPQ1NFVEQgICAweDU0MjMKKyNlbmRpZgorCitzdGF0aWMgY29uc3QgY2hhciAqcHJvZ25hbWU7CitzdGF0aWMgaW50IGRlYnVnID0gMDsKKworLyogY3VycmVudGx5IHN1cHBvcnRlZCBsaW5lIGRpc2NpcGxpbmVzLCBwbHVzIHNvbWUgYWxpYXNlcyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBsZF9lbnRyeSB7IGNvbnN0IGNoYXIgKnM7IGludCB2OyB9CitsZF90YWJsZVtdID0geworCXsgIlRUWSIsCU5fVFRZIH0sCisJeyAiU0xJUCIsCU5fU0xJUCB9LAorCXsgIk1PVVNFIiwJTl9NT1VTRSB9LAorCXsgIlBQUCIsCU5fUFBQIH0sCisJeyAiU1RSSVAiLAlOX1NUUklQIH0sCisJeyAiQVgyNSIsCU5fQVgyNSB9LAorCXsgIlgyNSIsCU5fWDI1IH0sCisJeyAiNlBBQ0siLAlOXzZQQUNLIH0sCisJeyAiUjM5NjQiLAlOX1IzOTY0IH0sCisJeyAiSVJEQSIsCU5fSVJEQSB9LAorCXsgIkhETEMiLAlOX0hETEMgfSwKKwl7ICJTWU5DX1BQUCIsCU5fU1lOQ19QUFAgfSwKKwl7ICJTWU5DUFBQIiwJTl9TWU5DX1BQUCB9LAorCXsgIkhDSSIsCU5fSENJIH0sCisJeyAiR0lHQVNFVF9NMTAxIiwJTl9HSUdBU0VUX00xMDEgfSwKKwl7ICJHSUdBU0VUIiwJTl9HSUdBU0VUX00xMDEgfSwKKwl7ICJNMTAxIiwJTl9HSUdBU0VUX00xMDEgfSwKKwl7ICJQUFMiLAlOX1BQUyB9LAorfTsKKworLyogbG9vayB1cCBsaW5lIGRpc2NpcGxpbmUgY29kZSAqLworc3RhdGljIGludCBsb29rdXBfbGQoY29uc3QgY2hhciAqcykKK3sKKyAgICBzaXplX3QgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGxkX3RhYmxlKTsgaSsrKQorCWlmICghc3RyY2FzZWNtcChsZF90YWJsZVtpXS5zLCBzKSkKKwkgICAgcmV0dXJuIGxkX3RhYmxlW2ldLnY7CisgICAgcmV0dXJuIC0xOworfQorCitzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKSB1c2FnZShpbnQgZXhpdGNvZGUpCit7CisgICAgc2l6ZV90IGk7CisKKyAgICBmcHJpbnRmKHN0ZGVyciwKKwkgICAgXygiXG5Vc2FnZTogJXMgWyAtZGhWNzhuZW8xMiBdIFsgLXMgPHNwZWVkPiBdIDxsZGlzYz4gPGRldmljZT5cbiIpLAorCSAgICBwcm9nbmFtZSk7CisgICAgZnB1dHMoXygiXG5Lbm93biA8bGRpc2M+IG5hbWVzOlxuIiksIHN0ZGVycik7CisgICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUobGRfdGFibGUpOyBpKyspCisJZnByaW50ZihzdGRlcnIsICIgICVzXG4iLCBsZF90YWJsZVtpXS5zKTsKKyAgICBleGl0KGV4aXRjb2RlKTsKK30KKworc3RhdGljIGludCBteV9jZnNldHNwZWVkKHN0cnVjdCB0ZXJtaW9zICp0cywgaW50IHNwZWVkKQoreworCS8qIFN0YW5kYXJkIHNwZWVkcworCSAqIC0tIGNmc2V0c3BlZWQoKSBpcyBhYmxlIHRvIHRyYW5zbGF0ZSBudW1iZXIgdG8gQnh4eCBjb25zdGFudHMKKwkgKi8KKwlpZiAoY2ZzZXRzcGVlZCh0cywgc3BlZWQpID09IDApCisJCXJldHVybiAwOworCisJLyogTm9uc3RhbmRhcmQgc3BlZWRzCisJICogLS0gd2UgaGF2ZSB0byBieXBhc3MgZ2xpYmMgYW5kIHNldCB0aGUgc3BlZWQgbWFudWFsbHkgKGJlY2F1c2UKKwkgKiAgICBnbGliYyBjaGVja3MgZm9yIHNwZWVkIGFuZCBzdXBwb3J0cyBCeHh4IGJpdCByYXRlcyBvbmx5KS4uLgorCSAqLworI2lmZGVmIF9IQVZFX1NUUlVDVF9URVJNSU9TX0NfSVNQRUVECisjIGRlZmluZSBCT1RIRVIgMDAxMDAwMCAgICAgICAgICAgICAgIC8qIG5vbiBzdGFuZGFyZCByYXRlICovCisJZGJnKCJ1c2luZyBub24tc3RhbmRhcmQgc3BlZWRzIik7CisJdHMtPmNfb3NwZWVkID0gdHMtPmNfaXNwZWVkID0gc3BlZWQ7CisJdHMtPmNfY2ZsYWcgJj0gfkNCQVVEOworCXRzLT5jX2NmbGFnIHw9IEJPVEhFUjsKKwlyZXR1cm4gMDsKKyNlbHNlCisJcmV0dXJuIC0xOworI2VuZGlmCit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgICBpbnQgdHR5X2ZkOworICAgIHN0cnVjdCB0ZXJtaW9zIHRzOworICAgIGludCBzcGVlZCA9IDAsIGJpdHMgPSAnLScsIHBhcml0eSA9ICctJywgc3RvcCA9ICctJzsKKyAgICBpbnQgbGRpc2M7CisgICAgaW50IG9wdGM7CisgICAgY2hhciAqZW5kOworICAgIGNoYXIgKmRldjsKKyAgICBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBvcHR0YmxbXSA9IHsKKwl7InNwZWVkIiwgMSwgMCwgJ3MnfSwKKwl7InNldmVuYml0cyIsIDAsIDAsICc3J30sCisJeyJlaWdodGJpdHMiLCAwLCAwLCAnOCd9LAorCXsibm9wYXJpdHkiLCAwLCAwLCAnbid9LAorCXsiZXZlbnBhcml0eSIsIDAsIDAsICdlJ30sCisJeyJvZGRwYXJpdHkiLCAwLCAwLCAnbyd9LAorCXsib25lc3RvcGJpdCIsIDAsIDAsICcxJ30sCisJeyJ0d29zdG9wYml0cyIsIDAsIDAsICcyJ30sCisJeyJoZWxwIiwgMCwgMCwgJ2gnfSwKKwl7InZlcnNpb24iLCAwLCAwLCAnVid9LAorCXsiZGVidWciLCAwLCAwLCAnZCd9LAorCXswLCAwLCAwLCAwfQorICAgIH07CisKKworICAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyAgICBiaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworICAgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgICAvKiBwYXJzZSBvcHRpb25zICovCisgICAgcHJvZ25hbWUgPSBwcm9ncmFtX2ludm9jYXRpb25fc2hvcnRfbmFtZTsKKworICAgIGlmIChhcmdjID09IDApCisJdXNhZ2UoRVhJVF9TVUNDRVNTKTsKKyAgICB3aGlsZSAoKG9wdGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiZGhWNzhuZW8xMnM6Iiwgb3B0dGJsLCBOVUxMKSkgPj0gMCkgeworCXN3aXRjaCAob3B0YykgeworCWNhc2UgJ2QnOgorCSAgICBkZWJ1ZysrOworCSAgICBicmVhazsKKwljYXNlICcxJzoKKwljYXNlICcyJzoKKwkgICAgc3RvcCA9IG9wdGM7CisJICAgIGJyZWFrOworCWNhc2UgJzcnOgorCWNhc2UgJzgnOgorCSAgICBiaXRzID0gb3B0YzsKKwkgICAgYnJlYWs7CisJY2FzZSAnbic6CisJY2FzZSAnZSc6CisJY2FzZSAnbyc6CisJICAgIHBhcml0eSA9IG9wdGM7CisJICAgIGJyZWFrOworCWNhc2UgJ3MnOgorCSAgICBzcGVlZCA9IHN0cnRvbChvcHRhcmcsICZlbmQsIDEwKTsKKwkgICAgaWYgKCplbmQgfHwgc3BlZWQgPD0gMCkKKwkJZXJyeChFWElUX0ZBSUxVUkUsIF8oImludmFsaWQgc3BlZWQ6ICVzIiksIG9wdGFyZyk7CisJICAgIGJyZWFrOworCWNhc2UgJ1YnOgorCSAgICBwcmludGYoXygibGRhdHRhY2ggZnJvbSAlc1xuIiksIFBBQ0tBR0VfU1RSSU5HKTsKKwkgICAgYnJlYWs7CisJY2FzZSAnaCc6CisJICAgIHVzYWdlKEVYSVRfU1VDQ0VTUyk7CisJZGVmYXVsdDoKKwkgICAgd2FybngoXygiaW52YWxpZCBvcHRpb24iKSk7CisJICAgIHVzYWdlKEVYSVRfRkFJTFVSRSk7CisJfQorICAgIH0KKworICAgIGlmIChhcmdjIC0gb3B0aW5kICE9IDIpCisJdXNhZ2UoRVhJVF9GQUlMVVJFKTsKKworICAgIC8qIHBhcnNlIGxpbmUgZGlzY2lwbGluZSBzcGVjaWZpY2F0aW9uICovCisgICAgaWYgKChsZGlzYyA9IGxvb2t1cF9sZChhcmd2W29wdGluZF0pKSA8IDApIHsKKwlsZGlzYyA9IHN0cnRvbChhcmd2W29wdGluZF0sICZlbmQsIDApOworCWlmICgqZW5kIHx8IGxkaXNjIDwgMCkKKwkgICAgZXJyeChFWElUX0ZBSUxVUkUsIF8oImludmFsaWQgbGluZSBkaXNjaXBsaW5lOiAlcyIpLCBhcmd2W29wdGluZF0pOworICAgIH0KKworICAgIC8qIG9wZW4gZGV2aWNlICovCisgICAgZGV2ID0gYXJndltvcHRpbmQrMV07CisgICAgaWYgKCh0dHlfZmQgPSBvcGVuKGRldiwgT19SRFdSfE9fTk9DVFRZKSkgPCAwKQorCWVycihFWElUX0ZBSUxVUkUsIF8oImNhbm5vdCBvcGVuICVzIiksIGRldik7CisgICAgaWYgKCFpc2F0dHkodHR5X2ZkKSkKKwllcnJ4KEVYSVRfRkFJTFVSRSwgXygiJXMgaXMgbm90IGEgc2VyaWFsIGxpbmUiKSwgZGV2KTsKKworICAgIGRiZygib3BlbmVkICVzIiwgZGV2KTsKKworICAgIC8qIHNldCBsaW5lIHNwZWVkIGFuZCBmb3JtYXQgKi8KKyAgICBpZiAodGNnZXRhdHRyKHR0eV9mZCwgJnRzKSA8IDApCisJZXJyKEVYSVRfRkFJTFVSRSwgXygiY2Fubm90IGdldCB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGZvciAlcyIpLCBkZXYpOworICAgIGNmbWFrZXJhdygmdHMpOworICAgIGlmIChzcGVlZCAmJiBteV9jZnNldHNwZWVkKCZ0cywgc3BlZWQpIDwgMCkKKwllcnJ4KEVYSVRfRkFJTFVSRSwgXygic3BlZWQgJWQgdW5zdXBwb3J0ZWQiKSwgc3BlZWQpOworICAgIHN3aXRjaCAoc3RvcCkgeworICAgIGNhc2UgJzEnOgorCXRzLmNfY2ZsYWcgJj0gfkNTVE9QQjsKKwlicmVhazsKKyAgICBjYXNlICcyJzoKKwl0cy5jX2NmbGFnIHw9IENTVE9QQjsKKwlicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChiaXRzKSB7CisgICAgY2FzZSAnNyc6CisJdHMuY19jZmxhZyA9ICh0cy5jX2NmbGFnICYgfkNTSVpFKSB8IENTNzsKKwlicmVhazsKKyAgICBjYXNlICc4JzoKKwl0cy5jX2NmbGFnID0gKHRzLmNfY2ZsYWcgJiB+Q1NJWkUpIHwgQ1M4OworCWJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKHBhcml0eSkgeworICAgIGNhc2UgJ24nOgorCXRzLmNfY2ZsYWcgJj0gfihQQVJFTkJ8UEFST0REKTsKKwlicmVhazsKKyAgICBjYXNlICdlJzoKKwl0cy5jX2NmbGFnIHw9IFBBUkVOQjsKKwl0cy5jX2NmbGFnICY9IH5QQVJPREQ7CisJYnJlYWs7CisgICAgY2FzZSAnbyc6CisJdHMuY19jZmxhZyB8PSAoUEFSRU5CfFBBUk9ERCk7CisJYnJlYWs7CisgICAgfQorICAgIHRzLmNfY2ZsYWcgfD0gQ1JFQUQ7CS8qIGp1c3QgdG8gYmUgb24gdGhlIHNhZmUgc2lkZSAqLworICAgIGlmICh0Y3NldGF0dHIodHR5X2ZkLCBUQ1NBRkxVU0gsICZ0cykgPCAwKQorCWVycihFWElUX0ZBSUxVUkUsIF8oImNhbm5vdCBzZXQgdGVybWluYWwgYXR0cmlidXRlcyBmb3IgJXMiKSwgZGV2KTsKKworICAgIGRiZygic2V0IHRvIHJhdyAlZCAlYyVjJWM6IGNmbGFnPTB4JXgiLAorCXNwZWVkLCBiaXRzLCBwYXJpdHksIHN0b3AsIHRzLmNfY2ZsYWcpOworCisgICAgLyogQXR0YWNoIHRoZSBsaW5lIGRpc2NwbGluZS4gKi8KKyAgICBpZiAoaW9jdGwodHR5X2ZkLCBUSU9DU0VURCwgJmxkaXNjKSA8IDApCisJZXJyKEVYSVRfRkFJTFVSRSwgXygiY2Fubm90IHNldCBsaW5lIGRpc2NpcGxpbmUiKSk7CisKKyAgICBkYmcoImxpbmUgZGlzY2lwbGluZSBzZXQgdG8gJWQiLCBsZGlzYyk7CisKKyAgICAvKiBHbyBpbnRvIGJhY2tncm91bmQgaWYgbm90IGluIGRlYnVnIG1vZGUuICovCisgICAgaWYgKCFkZWJ1ZyAmJiBkYWVtb24oMCwgMCkgPCAwKQorCWVycihFWElUX0ZBSUxVUkUsIF8oImNhbm5vdCBkYWVtb25pemUiKSk7CisKKyAgICAvKiBTbGVlcCB0byBrZWVwIHRoZSBsaW5lIGRpc2NpcGxpbmUgYWN0aXZlLiAqLworICAgIHBhdXNlKCk7CisKKyAgICBleGl0KEVYSVRfU1VDQ0VTUyk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvbHAuaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9scC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmYTgzZGQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvbHAuaApAQCAtMCwwICsxLDgzIEBACisvKiBMaW5lIHByaW50ZXIgc3R1ZmYgbW9zdGx5IGZvbGxvd3MgdGhlIG9yaWdpbmFsIENlbnRyb25pY3MgcHJpbnRlcnMuIFNlZQorICAgSUVFRSBTdGQuMTI4NC0xOTk0IFN0YW5kYXJkIFNpZ25hbGluZyBNZXRob2QgZm9yIGEgQmktZGlyZWN0aW9uYWwgUGFyYWxsZWwKKyAgIFBlcmlwaGVyYWwgSW50ZXJmYWNlIGZvciBQZXJzb25hbCBDb21wdXRlcnMgZm9yIDUgbW9kZXMgb2YgZGF0YSB0cmFuc2Zlci4gKi8KKworLyogUGFyYWxsZWwgcG9ydCByZWdpc3RlcnM6IGRhdGEgKDB4M2JjLCAweDM3OCwgMHgyNzgpLCBzdGF0dXM9ZGF0YSsxLCBjb250cm9sPWRhdGErMiAqLworCisvKiBQYXJhbGxlbCBwb3J0IHN0YXR1cyByZWdpc3RlciAocmVhZCBvbmx5KToKK2JpdCA3OiBOQlNZCSgxOiByZWFkeSwgMDogYnVzeSBvciBlcnJvciBvciBvZmYtbGluZSkKK2JpdCA2OiBOQUNLCShpZiBOQlNZPTEsIHRoZW4gMTsgaWYgTkJTWT0wIHRoZW4gMTogc2VuZGluZyBkYXRhLCAwOiByZWFkeSB3aXRoIGRhdGEpCitiaXQgNTogIFBBUAkoMTogb3V0LW9mLXBhcGVyKQorYml0IDQ6IE9GT04JKDE6IG9uLWxpbmUpCitiaXQgMzogTkZFSAkoMTogT0ssIDA6IHByaW50ZXIgZXJyb3IpCitiaXRzIDItMDogMDcKKworT24gb3V0LW9mLXBhcGVyOiBQQVA9MSwgT0ZPTj0wLCBORkVIPTEuCisKKyJXaGVuIHJlYWRpbmcgdGhlIGJ1c3kgc3RhdHVzLCByZWFkIHR3aWNlIGluIGEgcm93IGFuZCB1c2UgdGhlIHZhbHVlCitvYnRhaW5lZCBmcm9tIHRoZSBzZWNvbmQgcmVhZC4gVGhpcyBpbXByb3ZlcyB0aGUgcmVsaWFiaWxpdHkgb24gc29tZQorcGFyYWxsZWwgcG9ydHMgd2hlbiB0aGUgYnVzeSBsaW5lIG1heSBub3QgYmUgY29ubmVjdGVkIGFuZCBpcyBmbG9hdGluZy4iCisiT24gc29tZSBPa2lkYXRhIHByaW50ZXJzIHdoZW4gdGhlIGJ1c3kgc2lnbmFsIHN3aXRjaGVzIGZyb20gaGlnaCB0byBsb3csCit0aGUgcHJpbnRlciBzZW5kcyBhIDUwIG5zIGdsaXRjaCBvbiB0aGUgcGFwZXIgb3V0IHNpZ25hbCBsaW5lLiBCZWZvcmUKK2RlY2xhcmluZyBhIHBhcGVyIG91dCBjb25kaXRpb24sIGNoZWNrIHRoZSBzdGF0dXMgYWdhaW4uIgorKFRoZSBVbmRvY3VtZW50ZWQgUEMsIEYuIHZhbiBHaWxsdXdlLCBwLiA3MTEpCisqLworCisvKiBQYXJhbGxlbCBwb3J0IGNvbnRyb2wgcmVnaXN0ZXIgKHJlYWQvd3JpdGUpOgorYml0IDQ6ICBJUlEJKDE6IHdlIHdhbnQgYW4gaW50ZXJydXB0IHdoZW4gTkFDSyBnb2VzIGZyb20gMSB0byAwKQorYml0IDM6ICBEU0wJKDE6IGFjdGl2YXRlIHByaW50ZXIpCitiaXQgMjogTklOSQkoMDogaW5pdGlhbGlzZSBwcmludGVyKQorYml0IDE6ICBBTEYJKDE6IHByaW50ZXIgcGVyZm9ybXMgYXV0b21hdGljIGxpbmVmZWVkIGFmdGVyIGVhY2ggbGluZSkKK2JpdCAwOiAgU1RSCSgwLT4xOiBnZW5lcmF0ZSBhIFN0cm9iZSBwdWxzZTogdHJhbnNwb3J0IGRhdGEgdG8gcHJpbnRlcikKKyovCisKKy8qIFBhcmFsbGVsIHBvcnQgdGltaW5nOgorICAgMS4gd2FpdCBmb3IgTkJTWT0xCisgICAyLiBvdXRiKGRhdGEgYnl0ZSwgZGF0YSBwb3J0KQorICAgMy4gd2FpdCBmb3IgYXQgbGVhc3QgMC41dXMKKyAgIDQuIHJlYWQgY29udHJvbCBwb3J0LCBPUiB3aXRoIFNUUj0weDEsIG91dHB1dCB0byBjb250cm9sIHBvcnQgLSBwdXJwb3NlOgorICAgICAgZ2VuZXJhdGUgc3Ryb2JlIHB1bHNlOyB0aGlzIHdpbGwgbWFrZSB0aGUgYnVzeSBsaW5lIGdvIGhpZ2gKKyAgIDUuIHdhaXQgZm9yIGF0IGxlYXN0IDAuNXVzCisgICA2LiByZWFkIGNvbnRyb2wgcG9ydCwgQU5EIHdpdGggIVNUUiwgb3V0cHV0IHRvIGNvbnRyb2wgcG9ydAorICAgNy4gd2FpdCBmb3IgYXQgbGVhc3QgMC41dXMKKyAgIDguIGluIGEgbG9vcDogcmVhZCBzdGF0dXMgcmVnaXN0ZXIgdW50aWwgTkFDSyBiaXQgaXMgMCBvciBOQlNZPTEKKyAgICAgICh0aGUgcHJpbnRlciB3aWxsIGtlZXAgTkFDSz0wIGZvciBhdCBsZWFzdCAwLjV1cywgdGhlbiBOQUNLPU5CU1k9MSkuCisqLworCisKKy8qIGxwIGlvY3RscyAqLworI2RlZmluZSBMUENIQVIgICAweDA2MDEgIC8qIHNwZWNpZnkgdGhlIG51bWJlciBvZiB0aW1lcyB3ZSBhc2sgZm9yIHRoZSBzdGF0dXMKKwkJCSAgICAod2FpdGluZyBmb3IgcmVhZHkpIGJlZm9yZSBnaXZpbmcgdXAgd2l0aCBhIHRpbWVvdXQKKwkJCSAgICBUaGUgZHVyYXRpb24gbWF5IG1haW5seSBkZXBlbmQgb24gdGhlIHRpbWluZyBvZiBhbiBpbmIuICovCisjZGVmaW5lIExQVElNRSAgIDB4MDYwMiAgLyogdGltZSB0byBzbGVlcCBhZnRlciBlYWNoIHRpbWVvdXQgKGluIHVuaXRzIG9mIDAuMDEgc2VjKSAqLworI2RlZmluZSBMUEFCT1JUICAweDA2MDQgIC8qIGNhbGwgd2l0aCBUUlVFIGFyZyB0byBhYm9ydCBvbiBlcnJvciwKKwkJCSAgICBGQUxTRSB0byByZXRyeS4gIERlZmF1bHQgaXMgcmV0cnkuICAqLworI2RlZmluZSBMUFNFVElSUSAweDA2MDUgIC8qIGNhbGwgd2l0aCBuZXcgSVJRIG51bWJlciwKKwkJCSAgICBvciAwIGZvciBwb2xsaW5nIChubyBJUlEpICovCisjZGVmaW5lIExQR0VUSVJRIDB4MDYwNiAgLyogZ2V0IHRoZSBjdXJyZW50IElSUSBudW1iZXIgKi8KKyNkZWZpbmUgTFBXQUlUICAgMHgwNjA4ICAvKiAjb2YgbG9vcHMgdG8gd2FpdCBiZWZvcmUgdGFraW5nIHN0cm9iZSBoaWdoICovCisjZGVmaW5lIExQQ0FSRUZVTCAgIDB4MDYwOSAgLyogY2FsbCB3aXRoIFRSVUUgYXJnIHRvIHJlcXVpcmUgb3V0LW9mLXBhcGVyLCBvZmYtCisJCQkgICAgbGluZSwgYW5kIGVycm9yIGluZGljYXRvcnMgZ29vZCBvbiBhbGwgd3JpdGVzLAorCQkJICAgIEZBTFNFIHRvIGlnbm9yZSB0aGVtLiAgRGVmYXVsdCBpcyBpZ25vcmUuICovCisjZGVmaW5lIExQQUJPUlRPUEVOIDB4MDYwYSAgLyogY2FsbCB3aXRoIFRSVUUgYXJnIHRvIGFib3J0IG9wZW4oKSBvbiBlcnJvciwKKwkJCSAgICBGQUxTRSB0byBpZ25vcmUgZXJyb3IuICBEZWZhdWx0IGlzIGlnbm9yZS4gICovCisjZGVmaW5lIExQR0VUU1RBVFVTIDB4MDYwYiAgLyogcmV0dXJuIExQX1MobWlub3IpICovCisjZGVmaW5lIExQUkVTRVQgICAgIDB4MDYwYyAgLyogcmVzZXQgcHJpbnRlciAqLworI2RlZmluZSBMUEdFVEZMQUdTICAweDA2MGUgIC8qIGdldCBzdGF0dXMgZmxhZ3MgKi8KKworI2RlZmluZSBMUFNUUklDVCAgICAweDA2MGYgIC8qIGVuYWJsZS9kaXNhYmxlIHN0cmljdCBjb21wbGlhbmNlICgyLjAuMzYpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3RyaWN0OiB3YWl0IHVudGlsICFSRUFEWSBiZWZvcmUgdGFraW5nIHN0cm9iZSBsb3c7CisJCQkgICAgICAgdGhpcyBtYXkgYmUgYmFkIGZvciB0aGUgRXBzb24gU3R5bHVzIDgwMC4KKwkJCSAgICAgICBOb3Qgc3RyaWN0OiB3YWl0IGEgY29uc3RhbnQgdGltZSBhcyBnaXZlbiBieSBMUFdBSVQgKi8KKyNkZWZpbmUgTFBUUlVTVElSUSAgMHgwNjBmICAvKiBzZXQvdW5zZXQgdGhlIExQX1RSVVNUX0lSUSBmbGFnICgyLjEuMTMxKSAqLworCisvKiAKKyAqIGJpdCBkZWZpbmVzIGZvciA4MjU1IHN0YXR1cyBwb3J0CisgKiBiYXNlICsgMQorICogYWNjZXNzZWQgd2l0aCBMUF9TKG1pbm9yKSwgd2hpY2ggZ2V0cyB0aGUgYnl0ZS4uLgorICovCisjZGVmaW5lIExQX1BCVVNZCTB4ODAgIC8qIGludmVydGVkIGlucHV0LCBhY3RpdmUgaGlnaCAqLworI2RlZmluZSBMUF9QQUNLCQkweDQwICAvKiB1bmNoYW5nZWQgaW5wdXQsIGFjdGl2ZSBsb3cgKi8KKyNkZWZpbmUgTFBfUE9VVFBBCTB4MjAgIC8qIHVuY2hhbmdlZCBpbnB1dCwgYWN0aXZlIGhpZ2ggKi8KKyNkZWZpbmUgTFBfUFNFTEVDRAkweDEwICAvKiB1bmNoYW5nZWQgaW5wdXQsIGFjdGl2ZSBoaWdoICovCisjZGVmaW5lIExQX1BFUlJPUlAJMHgwOCAgLyogdW5jaGFuZ2VkIGlucHV0LCBhY3RpdmUgbG93ICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvbHNjcHUuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9sc2NwdS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiOGQzM2IKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvbHNjcHUuMQpAQCAtMCwwICsxLDM0IEBACisuXCIgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aAorLlwiIGdyb2ZmIC1tYW4gLVRhc2NpaSBsc2NwdS4xCisuXCIKKy5USCBMU0NQVSAxICJKVUxZIDIwMDgiIExpbnV4ICJVc2VyIE1hbnVhbHMiCisuU0ggTkFNRQorbHNjcHUgXC0gQ1BVIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBoZWxwZXIKKy5TSCBTWU5PUFNJUworLkIgbHNjcHUKKy5SQiBbIFwtaHAgXQorLlNIIERFU0NSSVBUSU9OCisuQiBsc2NwdQorZ2F0aGVycyBDUFUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGxpa2UgbnVtYmVyIG9mIENQVXMsIHRocmVhZHMsCitjb3Jlcywgc29ja2V0cywgTlVNQSBub2RlcywgaW5mb3JtYXRpb24gYWJvdXQgQ1BVIGNhY2hlcywgQ1BVIGZhbWlseSwKK21vZGVsIGFuZCBzdGVwcGluZyBmcm9tIHN5c2ZzIGFuZCAvcHJvYy9jcHVpbmZvLCBhbmQgcHJpbnRzIGl0IGluCitodW1hbi1yZWFkYWJsZSBmb3JtYXQuIEFsdGVybmF0aXZlbHksIGl0IGNhbiBwcmludCBvdXQgaW4gcGFyc2FibGUKK2Zvcm1hdCBpbmNsdWRpbmcgaG93IGRpZmZlcmVudCBjYWNoZXMgYXJlIHNoYXJlZCBieSBkaWZmZXJlbnQgQ1BVcywKK3doaWNoIGNhbiBhbHNvIGJlIGZlZCB0byBvdGhlciBwcm9ncmFtcy4KKy5TSCBPUFRJT05TCisuVFAKKy5CUiBcLWggLCAiIFwtXC1oZWxwIgorUHJpbnQgYSBoZWxwIG1lc3NhZ2UuCisuVFAKKy5CUiBcLXAgLCAiIFwtXC1wYXJzZSIKK1ByaW50IG91dCBpbiBwYXJzYWJsZSBpbnN0ZWFkIG9mIHByaW50YWJsZSBmb3JtYXQuCisuU0ggQlVHUworVGhlIHByb2dyYW0gYXQgdGhlIG1vbWVudCBkb2VzIG5vdCBoYW5kbGUgdGhlIHN5c3RlbSBpbnN0YWxsZWQgd2l0aAorZGlmZmVyZW50IHR5cGVzIG9mIHBoeXNpY2FsIHByb2Nlc3NvcnMuCisKK1NvbWV0aW1lcyBpbiBYZW4gRG9tMCBrZXJuZWwgcmVwb3J0cyB3cm9uZyBkYXRhLgorLlNIIEFVVEhPUgorQ2FpIFFpYW4gPHFjYWlAcmVkaGF0LmNvbT4KKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBzZXRhcmNoIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2xzY3B1LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvbHNjcHUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2EzZTVjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL2xzY3B1LmMKQEAgLTAsMCArMSw3NDQgQEAKKy8qCisgKiBsc2NwdSAtIENQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IENhaSBRaWFuIDxxY2FpQHJlZGhhdC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxlcnIuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCisjaW5jbHVkZSAibmxzLmgiCisKKyNkZWZpbmUgQ0FDSEVfTUFYIDEwMAorCisvKiAvc3lzIHBhdGhzICovCisjZGVmaW5lIF9QQVRIX1NZU19TWVNURU0JInN5cy9kZXZpY2VzL3N5c3RlbSIKKyNkZWZpbmUgX1BBVEhfU1lTX0NQVTAJCV9QQVRIX1NZU19TWVNURU0gIi9jcHUvY3B1MCIKKyNkZWZpbmUgX1BBVEhfUFJPQ19YRU4JCSJwcm9jL3hlbiIKKyNkZWZpbmUgX1BBVEhfUFJPQ19YRU5DQVAJX1BBVEhfUFJPQ19YRU4gIi9jYXBhYmlsaXRpZXMiCisjZGVmaW5lIF9QQVRIX1BST0NfQ1BVSU5GTwkicHJvYy9jcHVpbmZvIgorI2RlZmluZSBfUEFUSF9QUk9DX1BDSURFVlMJInByb2MvYnVzL3BjaS9kZXZpY2VzIgorCitpbnQgaGF2ZV90b3BvbG9neTsKK2ludCBoYXZlX2NhY2hlOworaW50IGhhdmVfbm9kZTsKKworLyogY2FjaGUocykgZGVzY3JpcHRpb24gKi8KK3N0cnVjdCBjYV9kZXNjIHsKKwljaGFyCSpjYW5hbWU7CisJY2hhcgkqY2FzaXplOworCWludAljYW1hcDsKK307CisKKy8qIHZpcnR1YWxpemF0aW9uIHR5cGVzICovCitlbnVtIHsKKwlWSVJUX05PTkUJPSAwLAorCVZJUlRfUEFSQSwKKwlWSVJUX0ZVTEwKK307Citjb25zdCBjaGFyICp2aXJ0X3R5cGVzW10gPSB7CisJW1ZJUlRfTk9ORV0JPSBOXygibm9uZSIpLAorCVtWSVJUX1BBUkFdCT0gTl8oInBhcmEiKSwKKwlbVklSVF9GVUxMXQk9IE5fKCJmdWxsIikKK307CisKKy8qIGh5cGVydmlzb3IgdmVuZG9ycyAqLworZW51bSB7CisJSFlQRVJfTk9ORQk9IDAsCisJSFlQRVJfWEVOLAorCUhZUEVSX0tWTSwKKwlIWVBFUl9NU0hWCit9OworY29uc3QgY2hhciAqaHZfdmVuZG9yc1tdID0geworCVtIWVBFUl9OT05FXQk9IE5VTEwsCisJW0hZUEVSX1hFTl0JPSAiWGVuIiwKKwlbSFlQRVJfS1ZNXQk9ICJLVk0iLAorCVtIWVBFUl9NU0hWXQk9ICJNaWNyb3NvZnQiCit9OworCisvKiBDUFUgbW9kZXMgKGJpdHMpICovCitlbnVtIHsKKwlNT0RFX1JFQUwJPSAoMSA8PCAxKSwKKwlNT0RFX1RSQU5TUEFSRU5UID0gKDEgPDwgMiksCisJTU9ERV9MT05HCT0gKDEgPDwgMykKK307CisKKy8qIENQVShzKSBkZXNjcmlwdGlvbiAqLworc3RydWN0IGNwdV9kZXNjIHsKKwkvKiBjb3VudGVycyAqLworCWludAljdF9jcHU7CisJaW50CWN0X3RocmVhZDsKKwlpbnQJY3RfY29yZTsKKwlpbnQJY3Rfc29ja2V0OworCWludAljdF9ub2RlOworCWludAljdF9jYWNoZTsKKworCS8qIHdobyBpcyB3aG8gKi8KKwljaGFyCSphcmNoOworCWNoYXIJKnZlbmRvcjsKKwljaGFyCSpmYW1pbHk7CisJY2hhcgkqbW9kZWw7CisJY2hhcgkqdmlydGZsYWc7CS8qIHZpcnR1YWxpemF0aW9uIGZsYWcgKHZteCwgc3ZtKSAqLworCWludAloeXBlcjsJCS8qIGh5cGVydmlzb3IgdmVuZG9yIElEICovCisJaW50CXZpcnR5cGU7CS8qIFZJUlRfUEFSQXxGVUxMfE5PTkUgPyAqLworCisJLyogY2FjaGVzICovCisJc3RydWN0IGNhX2Rlc2MJY2FjaGVbQ0FDSEVfTUFYXTsKKworCS8qIG1pc2MgKi8KKwljaGFyCSptaHo7CisJY2hhcgkqc3RlcHBpbmc7CisJY2hhcgkqZmxhZ3M7CisKKwlpbnQJbW9kZTsJCS8qIHJtLCBsbSBvci9hbmQgdG0gKi8KKworCS8qIE5VTUEgKi8KKwlpbnQJKm5vZGVjcHU7Cit9OworCitjaGFyIHBhdGhidWZbUEFUSF9NQVhdID0gIi8iOworCitzdGF0aWMgdm9pZCBwYXRoX3NjYW5zdHIoY2hhciAqcmVzdWx0LCBjb25zdCBjaGFyICpwYXRoLCAuLi4pCisJCV9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAyLCAzKSkpOworc3RhdGljIGludCBwYXRoX2V4aXN0KGNvbnN0IGNoYXIgKnBhdGgsIC4uLikKKwkJX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDEsIDIpKSk7CitzdGF0aWMgaW50IHBhdGhfc2libGluZyhjb25zdCBjaGFyICpwYXRoLCAuLi4pCisJCV9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAxLCAyKSkpOworCitzdGF0aWMgRklMRSAqCit4Zm9wZW4oY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqbW9kZSkKK3sKKwlGSUxFICpmZCA9IGZvcGVuKHBhdGgsIG1vZGUpOworCWlmICghZmQpCisJCWVycihFWElUX0ZBSUxVUkUsIF8oImVycm9yOiAlcyIpLCBwYXRoKTsKKwlyZXR1cm4gZmQ7Cit9CisKK3N0YXRpYyBGSUxFICoKK3BhdGhfdmZvcGVuKGNvbnN0IGNoYXIgKm1vZGUsIGNvbnN0IGNoYXIgKnBhdGgsIHZhX2xpc3QgYXApCit7CisJdnNucHJpbnRmKHBhdGhidWYsIHNpemVvZihwYXRoYnVmKSwgcGF0aCwgYXApOworCXJldHVybiB4Zm9wZW4ocGF0aGJ1ZiwgbW9kZSk7Cit9CisKK3N0YXRpYyB2b2lkCitwYXRoX3NjYW5zdHIoY2hhciAqcmVzdWx0LCBjb25zdCBjaGFyICpwYXRoLCAuLi4pCit7CisJRklMRSAqZmQ7CisJdmFfbGlzdCBhcDsKKworCXZhX3N0YXJ0KGFwLCBwYXRoKTsKKwlmZCA9IHBhdGhfdmZvcGVuKCJyIiwgcGF0aCwgYXApOworCXZhX2VuZChhcCk7CisKKwlpZiAoZnNjYW5mKGZkLCAiJXMiLCByZXN1bHQpICE9IDEpIHsKKwkJaWYgKGZlcnJvcihmZCkpCisJCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJlcnJvcjogJXMiKSwgcGF0aGJ1Zik7CisJCWVsc2UKKwkJCWVycngoRVhJVF9GQUlMVVJFLCBfKCJlcnJvciBwYXJzZTogJXMiKSwgcGF0aGJ1Zik7CisJfQorCWZjbG9zZShmZCk7Cit9CisKK3N0YXRpYyBpbnQKK3BhdGhfZXhpc3QoY29uc3QgY2hhciAqcGF0aCwgLi4uKQoreworCXZhX2xpc3QgYXA7CisKKwl2YV9zdGFydChhcCwgcGF0aCk7CisJdnNucHJpbnRmKHBhdGhidWYsIHNpemVvZihwYXRoYnVmKSwgcGF0aCwgYXApOworCXZhX2VuZChhcCk7CisKKwlyZXR1cm4gYWNjZXNzKHBhdGhidWYsIEZfT0spID09IDA7Cit9CisKK2NoYXIgKgoreHN0cmR1cChjb25zdCBjaGFyICpzdHIpCit7CisJY2hhciAqcyA9IHN0cmR1cChzdHIpOworCWlmICghcykKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiZXJyb3I6IHN0cmR1cCBmYWlsZWQiKSk7CisJcmV0dXJuIHM7Cit9CisKKy8qIGNvdW50IHRoZSBzZXQgYml0IGluIGEgbWFwcGluZyBmaWxlICovCitzdGF0aWMgaW50CitwYXRoX3NpYmxpbmcoY29uc3QgY2hhciAqcGF0aCwgLi4uKQoreworCWludCBjLCBuOworCWludCByZXN1bHQgPSAwOworCWNoYXIgc1syXTsKKwlGSUxFICpmcDsKKwl2YV9saXN0IGFwOworCisJdmFfc3RhcnQoYXAsIHBhdGgpOworCWZwID0gcGF0aF92Zm9wZW4oInIiLCBwYXRoLCBhcCk7CisJdmFfZW5kKGFwKTsKKworCXdoaWxlICgoYyA9IGZnZXRjKGZwKSkgIT0gRU9GKSB7CisJCWlmIChpc3hkaWdpdChjKSkgeworCQkJc1swXSA9IGM7CisJCQlzWzFdID0gJ1wwJzsKKwkJCWZvciAobiA9IHN0cnRvbChzLCBOVUxMLCAxNik7IG4gPiAwOyBuIC89IDIpIHsKKwkJCQlpZiAobiAlIDIpCisJCQkJCXJlc3VsdCsrOworCQkJfQorCQl9CisJfQorCWZjbG9zZShmcCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKiBMb29rdXAgYSBwYXR0ZXJuIGFuZCBnZXQgdGhlIHZhbHVlIGZyb20gY3B1aW5mby4KKyAqIEZvcm1hdCBpczoKKyAqCisgKgkiPHBhdHRlcm4+ICAgOiA8a2V5PiIKKyAqLworaW50IGxvb2t1cChjaGFyICpsaW5lLCBjaGFyICpwYXR0ZXJuLCBjaGFyICoqdmFsdWUpCit7CisJY2hhciAqcCwgKnY7CisJaW50IGxlbiA9IHN0cmxlbihwYXR0ZXJuKTsKKworCWlmICghKmxpbmUpCisJCXJldHVybiAwOworCisJLyogcGF0dGVybiAqLworCWlmIChzdHJuY21wKGxpbmUsIHBhdHRlcm4sIGxlbikpCisJCXJldHVybiAwOworCisJLyogd2hpdGUgc3BhY2VzICovCisJZm9yIChwID0gbGluZSArIGxlbjsgaXNzcGFjZSgqcCk7IHArKyk7CisKKwkvKiBzZXBhcmF0b3IgKi8KKwlpZiAoKnAgIT0gJzonKQorCQlyZXR1cm4gMDsKKworCS8qIHdoaXRlIHNwYWNlcyAqLworCWZvciAoKytwOyBpc3NwYWNlKCpwKTsgcCsrKTsKKworCS8qIHZhbHVlICovCisJaWYgKCEqcCkKKwkJcmV0dXJuIDA7CisJdiA9IHA7CisKKwkvKiBlbmQgb2YgdmFsdWUgKi8KKwlsZW4gPSBzdHJsZW4obGluZSkgLSAxOworCWZvciAocCA9IGxpbmUgKyBsZW47IGlzc3BhY2UoKihwLTEpKTsgcC0tKTsKKwkqcCA9ICdcMCc7CisKKwkqdmFsdWUgPSB4c3RyZHVwKHYpOworCXJldHVybiAxOworfQorCitzdGF0aWMgdm9pZAorcmVhZF9iYXNpY2luZm8oc3RydWN0IGNwdV9kZXNjICpjcHUpCit7CisJRklMRSAqZnAgPSB4Zm9wZW4oX1BBVEhfUFJPQ19DUFVJTkZPLCAiciIpOworCWNoYXIgYnVmW0JVRlNJWl07CisJc3RydWN0IHV0c25hbWUgdXRzYnVmOworCisJLyogYXJjaGl0ZWN0dXJlICovCisJaWYgKHVuYW1lKCZ1dHNidWYpID09IC0xKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJlcnJvcjogdW5hbWUgZmFpbGVkIikpOworCWNwdS0+YXJjaCA9IHhzdHJkdXAodXRzYnVmLm1hY2hpbmUpOworCisJLyogY291bnQgQ1BVKHMpICovCisJd2hpbGUocGF0aF9leGlzdChfUEFUSF9TWVNfU1lTVEVNICIvY3B1L2NwdSVkIiwgY3B1LT5jdF9jcHUpKQorCQljcHUtPmN0X2NwdSsrOworCisJLyogZGV0YWlscyAqLworCXdoaWxlIChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmcCkgIT0gTlVMTCkgeworCQkvKiBJQTY0ICovCisJCWlmIChsb29rdXAoYnVmLCAidmVuZG9yIiwgJmNwdS0+dmVuZG9yKSkgOworCQllbHNlIGlmIChsb29rdXAoYnVmLCAidmVuZG9yX2lkIiwgJmNwdS0+dmVuZG9yKSkgOworCQkvKiBJQTY0ICovCisJCWVsc2UgaWYgKGxvb2t1cChidWYsICJmYW1pbHkiLCAmY3B1LT5mYW1pbHkpKSA7CisJCWVsc2UgaWYgKGxvb2t1cChidWYsICJjcHUgZmFtaWx5IiwgJmNwdS0+ZmFtaWx5KSkgOworCQllbHNlIGlmIChsb29rdXAoYnVmLCAibW9kZWwiLCAmY3B1LT5tb2RlbCkpIDsKKwkJZWxzZSBpZiAobG9va3VwKGJ1ZiwgInN0ZXBwaW5nIiwgJmNwdS0+c3RlcHBpbmcpKSA7CisJCWVsc2UgaWYgKGxvb2t1cChidWYsICJjcHUgTUh6IiwgJmNwdS0+bWh6KSkgOworCQllbHNlIGlmIChsb29rdXAoYnVmLCAiZmxhZ3MiLCAmY3B1LT5mbGFncykpIDsKKwkJZWxzZQorCQkJY29udGludWU7CisJfQorCisJaWYgKGNwdS0+ZmxhZ3MpIHsKKwkJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiAlcyAiLCBjcHUtPmZsYWdzKTsKKwkJaWYgKHN0cnN0cihidWYsICIgc3ZtICIpKQorCQkJY3B1LT52aXJ0ZmxhZyA9IHN0cmR1cCgic3ZtIik7CisJCWVsc2UgaWYgKHN0cnN0cihidWYsICIgdm14ICIpKQorCQkJY3B1LT52aXJ0ZmxhZyA9IHN0cmR1cCgidm14Iik7CisKKwkJaWYgKHN0cnN0cihidWYsICIgcm0gIikpCisJCQljcHUtPm1vZGUgfD0gTU9ERV9SRUFMOworCQlpZiAoc3Ryc3RyKGJ1ZiwgIiB0bSAiKSkKKwkJCWNwdS0+bW9kZSB8PSBNT0RFX1RSQU5TUEFSRU5UOworCQlpZiAoc3Ryc3RyKGJ1ZiwgIiBsbSAiKSkKKwkJCWNwdS0+bW9kZSB8PSBNT0RFX0xPTkc7CisJfQorCisJZmNsb3NlKGZwKTsKK30KKworc3RhdGljIGludAoraGFzX3BjaV9kZXZpY2UoaW50IHZlbmRvciwgaW50IGRldmljZSkKK3sKKwlGSUxFICpmOworCWludCBudW0sIGZuLCB2ZW4sIGRldjsKKwlpbnQgcmVzID0gMTsKKworCWYgPSBmb3BlbihfUEFUSF9QUk9DX1BDSURFVlMsICJyIik7CisJaWYgKCFmKQorCQlyZXR1cm4gMDsKKworCSAvKiBmb3IgbW9yZSBkZXRhaWxzIGFib3V0IGJ1cy9wY2kvZGV2aWNlcyBmb3JtYXQgc2VlCisJICAqIGRyaXZlcnMvcGNpL3Byb2MuYyBpbiBsaW51eCBrZXJuZWwKKwkgICovCisJd2hpbGUoZnNjYW5mKGYsICIlMDJ4JTAyeFx0JTA0eCUwNHhcdCUqW15cbl0iLAorCQkJJm51bSwgJmZuLCAmdmVuLCAmZGV2KSA9PSA0KSB7CisKKwkJaWYgKHZlbiA9PSB2ZW5kb3IgJiYgZGV2ID09IGRldmljZSkKKwkJCWdvdG8gZm91bmQ7CisJfQorCisJcmVzID0gMDsKK2ZvdW5kOgorCWZjbG9zZShmKTsKKwlyZXR1cm4gcmVzOworfQorCisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9faTM4Nl9fKQorCisvKgorICogVGhpcyBDUFVJRCBsZWFmIHJldHVybnMgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBoeXBlcnZpc29yLgorICogRUFYIDogbWF4aW11bSBpbnB1dCB2YWx1ZSBmb3IgQ1BVSUQgc3VwcG9ydGVkIGJ5IHRoZSBoeXBlcnZpc29yLgorICogRUJYLCBFQ1gsIEVEWCA6IEh5cGVydmlzb3IgdmVuZG9yIElEIHNpZ25hdHVyZS4gRS5nLiBWTXdhcmVWTXdhcmUuCisgKi8KKyNkZWZpbmUgSFlQRVJWSVNPUl9JTkZPX0xFQUYgICAweDQwMDAwMDAwCisKK3N0YXRpYyBpbmxpbmUgdm9pZAorY3B1aWQodW5zaWduZWQgaW50IG9wLCB1bnNpZ25lZCBpbnQgKmVheCwgdW5zaWduZWQgaW50ICplYngsCisJCQkgdW5zaWduZWQgaW50ICplY3gsIHVuc2lnbmVkIGludCAqZWR4KQoreworCV9fYXNtX18oCisjaWYgZGVmaW5lZChfX1BJQ19fKSAmJiBkZWZpbmVkKF9faTM4Nl9fKQorCQkvKiB4ODYgUElDIGNhbm5vdCBjbG9iYmVyIGVieCAtLSBnY2MgYml0Y2hlcyAqLworCQkicHVzaGwgJSVlYng7IgorCQkiY3B1aWQ7IgorCQkibW92bCAlJWVieCwgJSVlc2k7IgorCQkicG9wbCAlJWVieDsiCisJCTogIj1TIiAoKmVieCksCisjZWxzZQorCQkiY3B1aWQ7IgorCQk6ICI9YiIgKCplYngpLAorI2VuZGlmCisJCSAgIj1hIiAoKmVheCksCisJCSAgIj1jIiAoKmVjeCksCisJCSAgIj1kIiAoKmVkeCkKKwkJOiAiMSIgKG9wKSwgImMiKDApKTsKK30KKworc3RhdGljIHZvaWQKK3JlYWRfaHlwZXJ2aXNvcl9jcHVpZChzdHJ1Y3QgY3B1X2Rlc2MgKmNwdSkKK3sKKwl1bnNpZ25lZCBpbnQgZWF4ID0gMCwgZWJ4ID0gMCwgZWN4ID0gMCwgZWR4ID0gMDsKKwljaGFyIGh5cGVyX3ZlbmRvcl9pZFsxM107CisKKwltZW1zZXQoaHlwZXJfdmVuZG9yX2lkLCAwLCBzaXplb2YoaHlwZXJfdmVuZG9yX2lkKSk7CisKKwljcHVpZChIWVBFUlZJU09SX0lORk9fTEVBRiwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7CisJbWVtY3B5KGh5cGVyX3ZlbmRvcl9pZCArIDAsICZlYngsIDQpOworCW1lbWNweShoeXBlcl92ZW5kb3JfaWQgKyA0LCAmZWN4LCA0KTsKKwltZW1jcHkoaHlwZXJfdmVuZG9yX2lkICsgOCwgJmVkeCwgNCk7CisJaHlwZXJfdmVuZG9yX2lkWzEyXSA9ICdcMCc7CisKKwlpZiAoIWh5cGVyX3ZlbmRvcl9pZFswXSkKKwkJcmV0dXJuOworCisJaWYgKCFzdHJuY21wKCJYZW5WTU1YZW5WTU0iLCBoeXBlcl92ZW5kb3JfaWQsIDEyKSkKKwkJY3B1LT5oeXBlciA9IEhZUEVSX1hFTjsKKwllbHNlIGlmICghc3RybmNtcCgiS1ZNS1ZNS1ZNIiwgaHlwZXJfdmVuZG9yX2lkLCA5KSkKKwkJY3B1LT5oeXBlciA9IEhZUEVSX0tWTTsKKwllbHNlIGlmICghc3RybmNtcCgiTWljcm9zb2Z0IEh2IiwgaHlwZXJfdmVuZG9yX2lkLCAxMikpCisJCWNwdS0+aHlwZXIgPSBIWVBFUl9NU0hWOworfQorCisjZWxzZQkvKiAhIF9feDg2XzY0X18gKi8KK3N0YXRpYyB2b2lkCityZWFkX2h5cGVydmlzb3JfY3B1aWQoc3RydWN0IGNwdV9kZXNjICpjcHUpCit7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQKK3JlYWRfaHlwZXJ2aXNvcihzdHJ1Y3QgY3B1X2Rlc2MgKmNwdSkKK3sKKwlyZWFkX2h5cGVydmlzb3JfY3B1aWQoY3B1KTsKKworCWlmIChjcHUtPmh5cGVyKQorCQkvKiBodm0gKi8KKwkJY3B1LT52aXJ0eXBlID0gVklSVF9GVUxMOworCisJZWxzZSBpZiAoIWFjY2VzcyhfUEFUSF9QUk9DX1hFTiwgRl9PSykpIHsKKwkJLyogWGVuIHBhcmEtdmlydCBvciBkb20wICovCisJCUZJTEUgKmZkID0gZm9wZW4oX1BBVEhfUFJPQ19YRU5DQVAsICJyIik7CisJCWludCBkb20wID0gMDsKKworCQlpZiAoZmQpIHsKKwkJCWNoYXIgYnVmWzI1Nl07CisKKwkJCWlmIChmc2NhbmYoZmQsICIlcyIsIGJ1ZikgPT0gMSAmJgorCQkJICAgICFzdHJjbXAoYnVmLCAiY29udHJvbF9kIikpCisJCQkJZG9tMCA9IDE7CisJCQlmY2xvc2UoZmQpOworCQl9CisJCWNwdS0+dmlydHlwZSA9IGRvbTAgPyBWSVJUX05PTkUgOiBWSVJUX1BBUkE7CisJCWNwdS0+aHlwZXIgPSBIWVBFUl9YRU47CisKKwl9IGVsc2UgaWYgKGhhc19wY2lfZGV2aWNlKDB4NTg1MywgMHgwMDAxKSkgeworCQkvKiBYZW4gZnVsbC12aXJ0IG9uIG5vbi14ODZfNjQgKi8KKwkJY3B1LT5oeXBlciA9IEhZUEVSX1hFTjsKKwkJY3B1LT52aXJ0eXBlID0gVklSVF9GVUxMOworCX0KK30KKworc3RhdGljIHZvaWQKK3JlYWRfdG9wb2xvZ3koc3RydWN0IGNwdV9kZXNjICpjcHUpCit7CisJLyogbnVtYmVyIG9mIHRocmVhZHMgKi8KKwljcHUtPmN0X3RocmVhZCA9IHBhdGhfc2libGluZygKKwkJCQlfUEFUSF9TWVNfQ1BVMCAiL3RvcG9sb2d5L3RocmVhZF9zaWJsaW5ncyIpOworCisJLyogbnVtYmVyIG9mIGNvcmVzICovCisJY3B1LT5jdF9jb3JlID0gcGF0aF9zaWJsaW5nKAorCQkJCV9QQVRIX1NZU19DUFUwICIvdG9wb2xvZ3kvY29yZV9zaWJsaW5ncyIpCisJCQkvIGNwdS0+Y3RfdGhyZWFkOworCisJLyogbnVtYmVyIG9mIHNvY2tldHMgKi8KKwljcHUtPmN0X3NvY2tldCA9IGNwdS0+Y3RfY3B1IC8gY3B1LT5jdF9jb3JlIC8gY3B1LT5jdF90aHJlYWQ7Cit9CisKK3N0YXRpYyB2b2lkCityZWFkX2NhY2hlKHN0cnVjdCBjcHVfZGVzYyAqY3B1KQoreworCWNoYXIgYnVmWzI1Nl07CisJRElSICpkcDsKKwlzdHJ1Y3QgZGlyZW50ICpkaXI7CisJaW50IGxldmVsLCB0eXBlOworCisJZHAgPSBvcGVuZGlyKF9QQVRIX1NZU19DUFUwICIvY2FjaGUiKTsKKwlpZiAoZHAgPT0gTlVMTCkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiZXJyb3I6ICVzIiksIF9QQVRIX1NZU19DUFUwICIvY2FjaGUiKTsKKworCXdoaWxlICgoZGlyID0gcmVhZGRpcihkcCkpICE9IE5VTEwpIHsKKwkJaWYgKCFzdHJjbXAoZGlyLT5kX25hbWUsICIuIikKKwkJICAgIHx8ICFzdHJjbXAoZGlyLT5kX25hbWUsICIuLiIpKQorCQkJY29udGludWU7CisKKwkJLyogY2FjaGUgdHlwZSAqLworCQlwYXRoX3NjYW5zdHIoYnVmLCBfUEFUSF9TWVNfQ1BVMCAiL2NhY2hlLyVzL3R5cGUiLCBkaXItPmRfbmFtZSk7CisJCWlmICghc3RyY21wKGJ1ZiwgIkRhdGEiKSkKKwkJCXR5cGUgPSAnZCc7CisJCWVsc2UgaWYgKCFzdHJjbXAoYnVmLCAiSW5zdHJ1Y3Rpb24iKSkKKwkJCXR5cGUgPSAnaSc7CisJCWVsc2UKKwkJCXR5cGUgPSAwOworCisJCS8qIGNhY2hlIGxldmVsICovCisJCXBhdGhfc2NhbnN0cihidWYsIF9QQVRIX1NZU19DUFUwICIvY2FjaGUvJXMvbGV2ZWwiLCBkaXItPmRfbmFtZSk7CisJCWxldmVsID0gYXRvaShidWYpOworCisJCWlmICh0eXBlKQorCQkJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIkwlZCVjIiwgbGV2ZWwsIHR5cGUpOworCQllbHNlCisJCQlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiTCVkIiwgbGV2ZWwpOworCisJCWNwdS0+Y2FjaGVbY3B1LT5jdF9jYWNoZV0uY2FuYW1lID0geHN0cmR1cChidWYpOworCisJCS8qIGNhY2hlIHNpemUgKi8KKwkJcGF0aF9zY2Fuc3RyKGJ1ZiwgX1BBVEhfU1lTX0NQVTAgIi9jYWNoZS8lcy9zaXplIiwgZGlyLT5kX25hbWUpOworCQljcHUtPmNhY2hlW2NwdS0+Y3RfY2FjaGVdLmNhc2l6ZSA9IHhzdHJkdXAoYnVmKTsKKworCQkvKiBpbmZvcm1hdGlvbiBhYm91dCBob3cgQ1BVcyBzaGFyZSBkaWZmZXJlbnQgY2FjaGVzICovCisJCWNwdS0+Y2FjaGVbY3B1LT5jdF9jYWNoZV0uY2FtYXAgPSBwYXRoX3NpYmxpbmcoCisJCQkJX1BBVEhfU1lTX0NQVTAgIi9jYWNoZS8lcy9zaGFyZWRfY3B1X21hcCIsCisJCQkJZGlyLT5kX25hbWUpOworCQljcHUtPmN0X2NhY2hlKys7CisJfQorfQorCitzdGF0aWMgdm9pZAorcmVhZF9ub2RlcyhzdHJ1Y3QgY3B1X2Rlc2MgKmNwdSkKK3sKKwlpbnQgaTsKKworCS8qIG51bWJlciBvZiBOVU1BIG5vZGUgKi8KKwl3aGlsZSAocGF0aF9leGlzdChfUEFUSF9TWVNfU1lTVEVNICIvbm9kZS9ub2RlJWQiLCBjcHUtPmN0X25vZGUpKQorCQljcHUtPmN0X25vZGUrKzsKKworCWNwdS0+bm9kZWNwdSA9IChpbnQgKikgbWFsbG9jKGNwdS0+Y3Rfbm9kZSAqIHNpemVvZihpbnQpKTsKKwlpZiAoIWNwdS0+bm9kZWNwdSkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiZXJyb3I6IG1hbGxvYyBmYWlsZWQiKSk7CisKKwkvKiBpbmZvcm1hdGlvbiBhYm91dCBob3cgbm9kZXMgc2hhcmUgZGlmZmVyZW50IENQVXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgY3B1LT5jdF9ub2RlOyBpKyspCisJCWNwdS0+bm9kZWNwdVtpXSA9IHBhdGhfc2libGluZygKKwkJCQkJX1BBVEhfU1lTX1NZU1RFTSAiL25vZGUvbm9kZSVkL2NwdW1hcCIsCisJCQkJCWkpOworfQorCitzdGF0aWMgdm9pZAorY2hlY2tfc3lzdGVtKHZvaWQpCit7CisJLyogUmVhZCB0aHJvdWdoIHN5c2ZzLiAqLworCWlmIChhY2Nlc3MoX1BBVEhfU1lTX1NZU1RFTSwgRl9PSykpCisJCWVycngoRVhJVF9GQUlMVVJFLAorCQkgICAgIF8oImVycm9yOiAvc3lzIGZpbGVzeXN0ZW0gaXMgbm90IGFjY2Vzc2FibGUuIikpOworCisJaWYgKCFhY2Nlc3MoX1BBVEhfU1lTX1NZU1RFTSAiL25vZGUiLCBGX09LKSkKKwkJaGF2ZV9ub2RlID0gMTsKKworCWlmICghYWNjZXNzKF9QQVRIX1NZU19DUFUwICIvdG9wb2xvZ3kvdGhyZWFkX3NpYmxpbmdzIiwgRl9PSykpCisJCWhhdmVfdG9wb2xvZ3kgPSAxOworCisJaWYgKCFhY2Nlc3MoX1BBVEhfU1lTX0NQVTAgIi9jYWNoZSIsIEZfT0spKQorCQloYXZlX2NhY2hlID0gMTsKK30KKworc3RhdGljIHZvaWQKK3ByaW50X3BhcnNhYmxlKHN0cnVjdCBjcHVfZGVzYyAqY3B1KQoreworCWludCBpLCBqOworCisJcHJpbnRmKF8oCisJIiMgVGhlIGZvbGxvd2luZyBpcyB0aGUgcGFyc2FibGUgZm9ybWF0LCB3aGljaCBjYW4gYmUgZmVkIHRvIG90aGVyXG4iCisJIiMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSURcbiIKKwkiIyBzdGFydGluZyBmcm9tIHplcm8uXG4iCisJIiMgQ1BVLENvcmUsU29ja2V0LE5vZGUiKSk7CisKKwlpZiAoaGF2ZV9jYWNoZSkgeworCQkvKiBzZXBhcmF0b3IgYmV0d2VlbiBDUFUgdG9wb2xvZ3kgYW5kIGNhY2hlIGluZm9ybWF0aW9uICovCisJCXB1dGNoYXIoJywnKTsKKworCQlmb3IgKGkgPSBjcHUtPmN0X2NhY2hlIC0gMTsgaSA+PSAwOyBpLS0pCisJCQlwcmludGYoIiwlcyIsIGNwdS0+Y2FjaGVbaV0uY2FuYW1lKTsKKwl9CisJcHV0Y2hhcignXG4nKTsKKworCWZvciAoaSA9IDA7IGkgPCBjcHUtPmN0X2NwdTsgaSsrKSB7CisJCXByaW50ZigiJWQiLCBpKTsKKworCQlpZiAoaGF2ZV90b3BvbG9neSkKKwkJCXByaW50ZigiLCVkLCVkIiwKKwkJCQlpIC8gY3B1LT5jdF90aHJlYWQsCisJCQkgICAgICAgIGkgLyBjcHUtPmN0X2NvcmUgLyBjcHUtPmN0X3RocmVhZCk7CisJCWVsc2UKKwkJCXByaW50ZigiLCwiKTsKKworCQlpZiAoaGF2ZV9ub2RlKSB7CisJCQlpbnQgYyA9IDA7CisKKwkJCWZvciAoaiA9IDA7IGogPCBjcHUtPmN0X25vZGU7IGorKykgeworCQkJCWMgKz0gY3B1LT5ub2RlY3B1W2pdOworCQkJCWlmIChpIDwgYykgeworCQkJCQlwcmludGYoIiwlZCIsIGopOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCX0gZWxzZQorCQkJcHV0Y2hhcignLCcpOworCisJCWlmIChoYXZlX2NhY2hlKSB7CisJCQlwdXRjaGFyKCcsJyk7CisKKwkJCWZvciAoaiA9IGNwdS0+Y3RfY2FjaGUgLSAxOyBqID49IDA7IGotLSkgeworCQkJCS8qIElmIHNoYXJlZF9jcHVfbWFwIGlzIDAsIGFsbCBDUFVzIHNoYXJlIHRoZSBzYW1lCisJCQkJICAgY2FjaGUuICovCisJCQkJaWYgKGNwdS0+Y2FjaGVbal0uY2FtYXAgPT0gMCkKKwkJCQkJY3B1LT5jYWNoZVtqXS5jYW1hcCA9IGNwdS0+Y3RfY29yZSAqCisJCQkJCQkJICAgICAgY3B1LT5jdF90aHJlYWQ7CisKKwkJCQlwcmludGYoIiwlZCIsIGkgLyBjcHUtPmNhY2hlW2pdLmNhbWFwKTsKKwkJCX0KKwkJfQorCQlwdXRjaGFyKCdcbicpOworCX0KK30KKworCisvKiBvdXRwdXQgZm9ybWF0cyAiPGtleT4gIDx2YWx1ZT4iKi8KKyNkZWZpbmUgcHJpbnRfcyhfa2V5LCBfdmFsKQlwcmludGYoIiUtMjNzJXNcbiIsIF9rZXksIF92YWwpCisjZGVmaW5lIHByaW50X24oX2tleSwgX3ZhbCkJcHJpbnRmKCIlLTIzcyVkXG4iLCBfa2V5LCBfdmFsKQorCitzdGF0aWMgdm9pZAorcHJpbnRfcmVhZGFibGUoc3RydWN0IGNwdV9kZXNjICpjcHUpCit7CisJcHJpbnRfcygiQXJjaGl0ZWN0dXJlOiIsIGNwdS0+YXJjaCk7CisKKwlpZiAoY3B1LT5tb2RlICYgKE1PREVfUkVBTCB8IE1PREVfVFJBTlNQQVJFTlQgfCBNT0RFX0xPTkcpKSB7CisJCWNoYXIgYnVmWzY0XSwgKnAgPSBidWY7CisKKwkJaWYgKGNwdS0+bW9kZSAmIE1PREVfUkVBTCkgeworCQkJc3RyY3B5KHAsICIxNi1iaXQsICIpOworCQkJcCArPSA4OworCQl9CisJCWlmIChjcHUtPm1vZGUgJiBNT0RFX1RSQU5TUEFSRU5UKSB7CisJCQlzdHJjcHkocCwgIjMyLWJpdCwgIik7CisJCQlwICs9IDg7CisJCX0KKwkJaWYgKGNwdS0+bW9kZSAmIE1PREVfTE9ORykgeworCQkJc3RyY3B5KHAsICI2NC1iaXQsICIpOworCQkJcCArPSA4OworCQl9CisJCSoocCAtIDIpID0gJ1wwJzsKKwkJcHJpbnRfcyhfKCJDUFUgb3AtbW9kZShzKToiKSwgYnVmKTsKKwl9CisKKwlwcmludF9uKCJDUFUocyk6IiwgY3B1LT5jdF9jcHUpOworCisJaWYgKGhhdmVfdG9wb2xvZ3kpIHsKKwkJcHJpbnRfbihfKCJUaHJlYWQocykgcGVyIGNvcmU6IiksIGNwdS0+Y3RfdGhyZWFkKTsKKwkJcHJpbnRfbihfKCJDb3JlKHMpIHBlciBzb2NrZXQ6IiksIGNwdS0+Y3RfY29yZSk7CisJCXByaW50X24oXygiQ1BVIHNvY2tldChzKToiKSwgY3B1LT5jdF9zb2NrZXQpOworCX0KKworCWlmIChoYXZlX25vZGUpCisJCXByaW50X24oXygiTlVNQSBub2RlKHMpOiIpLCBjcHUtPmN0X25vZGUpOworCWlmIChjcHUtPnZlbmRvcikKKwkJcHJpbnRfcyhfKCJWZW5kb3IgSUQ6IiksIGNwdS0+dmVuZG9yKTsKKwlpZiAoY3B1LT5mYW1pbHkpCisJCXByaW50X3MoXygiQ1BVIGZhbWlseToiKSwgY3B1LT5mYW1pbHkpOworCWlmIChjcHUtPm1vZGVsKQorCQlwcmludF9zKF8oIk1vZGVsOiIpLCBjcHUtPm1vZGVsKTsKKwlpZiAoY3B1LT5zdGVwcGluZykKKwkJcHJpbnRfcyhfKCJTdGVwcGluZzoiKSwgY3B1LT5zdGVwcGluZyk7CisJaWYgKGNwdS0+bWh6KQorCQlwcmludF9zKF8oIkNQVSBNSHo6IiksIGNwdS0+bWh6KTsKKwlpZiAoY3B1LT52aXJ0ZmxhZykgeworCQlpZiAoIXN0cmNtcChjcHUtPnZpcnRmbGFnLCAic3ZtIikpCisJCQlwcmludF9zKF8oIlZpcnR1YWxpemF0aW9uOiIpLCAiQU1ELVYiKTsKKwkJZWxzZSBpZiAoIXN0cmNtcChjcHUtPnZpcnRmbGFnLCAidm14IikpCisJCQlwcmludF9zKF8oIlZpcnR1YWxpemF0aW9uOiIpLCAiVlQteCIpOworCX0KKwlpZiAoY3B1LT5oeXBlcikgeworCQlwcmludF9zKF8oIkh5cGVydmlzb3IgdmVuZG9yOiIpLCBodl92ZW5kb3JzW2NwdS0+aHlwZXJdKTsKKwkJcHJpbnRfcyhfKCJWaXJ0dWFsaXphdGlvbiB0eXBlOiIpLCB2aXJ0X3R5cGVzW2NwdS0+dmlydHlwZV0pOworCX0KKwlpZiAoaGF2ZV9jYWNoZSkgeworCQljaGFyIGJ1Zls1MTJdOworCQlpbnQgaTsKKworCQlmb3IgKGkgPSBjcHUtPmN0X2NhY2hlIC0gMTsgaSA+PSAwOyBpLS0pIHsKKwkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksCisJCQkJCV8oIiVzIGNhY2hlOiIpLCBjcHUtPmNhY2hlW2ldLmNhbmFtZSk7CisJCQlwcmludF9zKGJ1ZiwgY3B1LT5jYWNoZVtpXS5jYXNpemUpOworCQl9CisJfQorfQorCit2b2lkIHVzYWdlKGludCByYykKK3sKKwlwcmludGYoXygiVXNhZ2U6ICVzIFtvcHRpb25dXG4iKSwKKwkJCXByb2dyYW1faW52b2NhdGlvbl9zaG9ydF9uYW1lKTsKKworCXB1dHMoXygJIkNQVSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gaGVscGVyXG5cbiIKKwkJIiAgLWgsIC0taGVscCAgICAgdXNhZ2UgaW5mb3JtYXRpb25cbiIKKwkJIiAgLXAsIC0tcGFyc2UgICAgcHJpbnQgb3V0IGluIHBhcnNhYmxlIGluc3RlYWQgb2YgcHJpbnRhYmxlIGZvcm1hdC5cbiIKKwkJIiAgLXMsIC0tc3lzcm9vdCAgdXNlIHRoZSBkaXJlY3RvcnkgYXMgYSBuZXcgc3lzdGVtIHJvb3QuXG4iKSk7CisJZXhpdChyYyk7Cit9CisKK3N0YXRpYyBpbnQKK2NhX2NvbXBhcmUoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKK3sKKwlzdHJ1Y3QgY2FfZGVzYyAqY2FjaGUxID0gKHN0cnVjdCBjYV9kZXNjICopIGE7CisJc3RydWN0IGNhX2Rlc2MgKmNhY2hlMiA9IChzdHJ1Y3QgY2FfZGVzYyAqKSBiOworCisJcmV0dXJuIHN0cmNtcChjYWNoZTItPmNhbmFtZSwgY2FjaGUxLT5jYW5hbWUpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCXN0cnVjdCBjcHVfZGVzYyBfY3B1LCAqY3B1ID0gJl9jcHU7CisJaW50IHBhcnNhYmxlID0gMCwgYzsKKworCXN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHsKKwkJeyAiaGVscCIsCW5vX2FyZ3VtZW50LCAgICAgICAwLCAnaCcgfSwKKwkJeyAicGFyc2UiLAlub19hcmd1bWVudCwgICAgICAgMCwgJ3AnIH0sCisJCXsgInN5c3Jvb3QiLAlyZXF1aXJlZF9hcmd1bWVudCwgMCwgJ3MnIH0sCisJCXsgTlVMTCwJCTAsIDAsIDAgfQorCX07CisKKwlzZXRsb2NhbGUoTENfTUVTU0FHRVMsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwl3aGlsZSgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJocHM6IiwgbG9uZ29wdHMsIE5VTEwpKSAhPSAtMSkgeworCQlzd2l0Y2ggKGMpIHsKKwkJY2FzZSAnaCc6CisJCQl1c2FnZShFWElUX1NVQ0NFU1MpOworCQljYXNlICdwJzoKKwkJCXBhcnNhYmxlID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdzJzoKKwkJCXN0cm5jcHkocGF0aGJ1Ziwgb3B0YXJnLCBzaXplb2YocGF0aGJ1ZikpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQl1c2FnZShFWElUX0ZBSUxVUkUpOworCQl9CisJfQorCisJaWYgKGNoZGlyKHBhdGhidWYpID09IC0xKQorCQllcnJ4KEVYSVRfRkFJTFVSRSwKKwkJICAgICBfKCJlcnJvcjogY2hhbmdlIHdvcmtpbmcgZGlyZWN0b3J5IHRvICVzLiIpLCBwYXRoYnVmKTsKKworCW1lbXNldChjcHUsIDAsIHNpemVvZigqY3B1KSk7CisKKwljaGVja19zeXN0ZW0oKTsKKworCXJlYWRfYmFzaWNpbmZvKGNwdSk7CisKKwlpZiAoaGF2ZV90b3BvbG9neSkKKwkJcmVhZF90b3BvbG9neShjcHUpOworCWlmIChoYXZlX2NhY2hlKSB7CisJCXJlYWRfY2FjaGUoY3B1KTsKKwkJcXNvcnQoY3B1LT5jYWNoZSwgY3B1LT5jdF9jYWNoZSwgc2l6ZW9mKHN0cnVjdCBjYV9kZXNjKSwgY2FfY29tcGFyZSk7CisJfQorCWlmIChoYXZlX25vZGUpCisJCXJlYWRfbm9kZXMoY3B1KTsKKworCXJlYWRfaHlwZXJ2aXNvcihjcHUpOworCisJLyogU2hvdyB0aW1lISAqLworCWlmIChwYXJzYWJsZSkKKwkJcHJpbnRfcGFyc2FibGUoY3B1KTsKKwllbHNlCisJCXByaW50X3JlYWRhYmxlKGNwdSk7CisKKwlyZXR1cm4gRVhJVF9TVUNDRVNTOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3Bpdm90X3Jvb3QuOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9waXZvdF9yb290LjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk4MjgxMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9waXZvdF9yb290LjgKQEAgLTAsMCArMSw2NyBAQAorLlRIIFBJVk9UX1JPT1QgOCAiRmViIDIzLCAyMDAwIiAiTGludXgiICJNYWludGVuYW5jZSBDb21tYW5kcyIKKy5TSCBOQU1FCitwaXZvdF9yb290IFwtIGNoYW5nZSB0aGUgcm9vdCBmaWxlIHN5c3RlbQorLlNIIFNZTk9QU0lTCisuQiBwaXZvdF9yb290CisuSSBuZXdfcm9vdCBwdXRfb2xkCisuU0ggREVTQ1JJUFRJT04KK1xmQnBpdm90X3Jvb3RcZlAgbW92ZXMgdGhlIHJvb3QgZmlsZSBzeXN0ZW0gb2YgdGhlIGN1cnJlbnQgcHJvY2VzcyB0byB0aGUKK2RpcmVjdG9yeSBcZklwdXRfb2xkXGZQIGFuZCBtYWtlcyBcZkluZXdfcm9vdFxmUCB0aGUgbmV3IHJvb3QgZmlsZSBzeXN0ZW0uCitTaW5jZSBcZkJwaXZvdF9yb290XGZQKDgpIHNpbXBseSBjYWxscyBcZkJwaXZvdF9yb290XGZQKDIpLCB3ZSByZWZlciB0bwordGhlIG1hbiBwYWdlIG9mIHRoZSBsYXR0ZXIgZm9yIGZ1cnRoZXIgZGV0YWlscy4KKworTm90ZSB0aGF0LCBkZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uIG9mIFxmQnBpdm90X3Jvb3RcZlAsIHJvb3QgYW5kCitjd2Qgb2YgdGhlIGNhbGxlciBtYXkgb3IgbWF5IG5vdCBjaGFuZ2UuIFRoZSBmb2xsb3dpbmcgaXMgYSBzZXF1ZW5jZSBmb3IKK2ludm9raW5nIFxmQnBpdm90X3Jvb3RcZlAgdGhhdCB3b3JrcyBpbiBlaXRoZXIgY2FzZSwgYXNzdW1pbmcgdGhhdAorXGZCcGl2b3Rfcm9vdFxmUCBhbmQgXGZCY2hyb290XGZQIGFyZSBpbiB0aGUgY3VycmVudCBcZkJQQVRIXGZQOgorLnNwCitjZCBcZkluZXdfcm9vdFxmUAorLmJyCitwaXZvdF9yb290IC4gXGZJcHV0X29sZFxmUAorLmJyCitleGVjIGNocm9vdCAuIFxmSWNvbW1hbmRcZlAKKy5zcAorTm90ZSB0aGF0IFxmQmNocm9vdFxmUCBtdXN0IGJlIGF2YWlsYWJsZSB1bmRlciB0aGUgb2xkIHJvb3QgYW5kIHVuZGVyIHRoZSBuZXcKK3Jvb3QsIGJlY2F1c2UgXGZCcGl2b3Rfcm9vdFxmUCBtYXkgb3IgbWF5IG5vdCBoYXZlIGltcGxpY2l0bHkgY2hhbmdlZCB0aGUKK3Jvb3QgZGlyZWN0b3J5IG9mIHRoZSBzaGVsbC4KKworTm90ZSB0aGF0IFxmQmV4ZWMgY2hyb290XGZQIGNoYW5nZXMgdGhlIHJ1bm5pbmcgZXhlY3V0YWJsZSwgd2hpY2ggaXMKK25lY2Vzc2FyeSBpZiB0aGUgb2xkIHJvb3QgZGlyZWN0b3J5IHNob3VsZCBiZSB1bm1vdW50ZWQgYWZ0ZXJ3YXJkcy4KK0Fsc28gbm90ZSB0aGF0IHN0YW5kYXJkIGlucHV0LCBvdXRwdXQsIGFuZCBlcnJvciBtYXkgc3RpbGwgcG9pbnQgdG8gYQorZGV2aWNlIG9uIHRoZSBvbGQgcm9vdCBmaWxlIHN5c3RlbSwga2VlcGluZyBpdCBidXN5LiBUaGV5IGNhbiBlYXNpbHkgYmUKK2NoYW5nZWQgd2hlbiBpbnZva2luZyBcZkJjaHJvb3RcZlAgKHNlZSBiZWxvdzsgbm90ZSB0aGUgYWJzZW5jZSBvZgorbGVhZGluZyBzbGFzaGVzIHRvIG1ha2UgaXQgd29yayB3aGV0aGVyIFxmQnBpdm90X3Jvb3RcZlAgaGFzIGNoYW5nZWQgdGhlCitzaGVsbCdzIHJvb3Qgb3Igbm90KS4KKy5TSCBFWEFNUExFUworQ2hhbmdlIHRoZSByb290IGZpbGUgc3lzdGVtIHRvIC9kZXYvaGRhMSBmcm9tIGFuIGludGVyYWN0aXZlIHNoZWxsOgorLnNwCisubmYKK21vdW50IC9kZXYvaGRhMSAvbmV3LXJvb3QKK2NkIC9uZXctcm9vdAorcGl2b3Rfcm9vdCAuIG9sZC1yb290CitleGVjIGNocm9vdCAuIHNoIDxkZXYvY29uc29sZSA+ZGV2L2NvbnNvbGUgMj4mMQordW1vdW50IC9vbGQtcm9vdAorLmZpCisuc3AKK01vdW50IHRoZSBuZXcgcm9vdCBmaWxlIHN5c3RlbSBvdmVyIE5GUyBmcm9tIDEwLjAuMC4xOi9teV9yb290IGFuZCBydW4KK1xmQmluaXRcZlA6Cisuc3AKKy5uZgoraWZjb25maWcgbG8gMTI3LjAuMC4xIHVwICAgIyBmb3IgcG9ydG1hcAorIyBjb25maWd1cmUgRXRoZXJuZXQgb3Igc3VjaAorcG9ydG1hcCAgICMgZm9yIGxvY2tkIChpbXBsaWNpdGx5IHN0YXJ0ZWQgYnkgbW91bnQpCittb3VudCAtbyBybyAxMC4wLjAuMTovbXlfcm9vdCAvbW50CitraWxsYWxsIHBvcnRtYXAgICAjIHBvcnRtYXAga2VlcHMgb2xkIHJvb3QgYnVzeQorY2QgL21udAorcGl2b3Rfcm9vdCAuIG9sZF9yb290CitleGVjIGNocm9vdCAuIHNoIC1jICd1bW91bnQgL29sZF9yb290OyBleGVjIC9zYmluL2luaXQnIFxcCisgIDxkZXYvY29uc29sZSA+ZGV2L2NvbnNvbGUgMj4mMQorLmZpCisuU0ggIlNFRSBBTFNPIgorLkJSIGNocm9vdCAoMSksCisuQlIgbW91bnQgKDgpLAorLkJSIHBpdm90X3Jvb3QgKDIpLAorLkJSIHVtb3VudCAoOCkKKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBwaXZvdF9yb290IGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3Bpdm90X3Jvb3QuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9waXZvdF9yb290LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJhNmY0OAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9waXZvdF9yb290LmMKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIHBpdm90X3Jvb3QuYyAtIENoYW5nZSB0aGUgcm9vdCBmaWxlIHN5c3RlbQorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMCBXZXJuZXIgQWxtZXNiZXJnZXIKKyAqCisgKiBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNkZWZpbmUgcGl2b3Rfcm9vdChuZXdfcm9vdCxwdXRfb2xkKSBzeXNjYWxsKFNZU19waXZvdF9yb290LG5ld19yb290LHB1dF9vbGQpCisKK2ludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKK3sKKwlpZiAoYXJnYyAhPSAzKSB7CisJCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIG5ld19yb290IHB1dF9vbGRcbiIsIGFyZ3ZbMF0pOworCQlyZXR1cm4gMTsKKwl9CisJaWYgKHBpdm90X3Jvb3QoYXJndlsxXSwgYXJndlsyXSkgPCAwKSB7CisJCXBlcnJvcigicGl2b3Rfcm9vdCIpOworCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcmRldi44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3JkZXYuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmQ2NDIwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3JkZXYuOApAQCAtMCwwICsxLDIwNyBAQAorLlwiIENvcHlyaWdodCAxOTkyLCAxOTkzIFJpY2thcmQgRS4gRmFpdGggKGZhaXRoQGNzLnVuYy5lZHUpCisuXCIgTWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLlwiIENoYW5nZXMgZnJvbSBzY3RAZGNzLmVkLmFjLnVrIGFkZGVkIFNhdCBPY3QgIDkgMDk6NTQ6MDAgMTk5My4KKy5USCBSREVWIDggIjIwIE5vdmVtYmVyIDE5OTMiICJMaW51eCAwLjk5IiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCBOQU1FCityZGV2IFwtIHF1ZXJ5L3NldCBpbWFnZSByb290IGRldmljZSwgUkFNIGRpc2sgc2l6ZSwgb3IgdmlkZW8gbW9kZQorLlNIIFNZTk9QU0lTCisuQiByZGV2CisuUkIgWyBcLVJydmggXQorLlJCIFsgXC1vCisuSVIgb2Zmc2V0IF0KKy5SSSBbIGltYWdlCisuUkkgWyB2YWx1ZQorLlJJIFsgIG9mZnNldCBdXV0KKy5icgorLkIgcmRldgorLlJCIFsgXC1vCisuSVIgb2Zmc2V0IF0KKy5SSSBbIGltYWdlCisuUkkgWyByb290X2RldmljZQorLlJJIFsgIG9mZnNldCBdXV0KKy5icgorLkIgcmFtc2l6ZQorLlJCIFsgXC1vCisuSVIgb2Zmc2V0IF0KKy5SSSBbIGltYWdlCisuUkkgWyBzaXplCisuUkkgWyAgb2Zmc2V0IF1dXQorLmJyCisuQiB2aWRtb2RlCisuUkIgWyBcLW8KKy5JUiBvZmZzZXQgXQorLlJJIFsgaW1hZ2UKKy5SSSBbIG1vZGUKKy5SSSBbICBvZmZzZXQgXV1dCisuYnIKKy5CIHJvb3RmbGFncworLlJCIFsgXC1vCisuSVIgb2Zmc2V0IF0KKy5SSSBbIGltYWdlCisuUkkgWyBmbGFncworLlJJIFsgIG9mZnNldCBdXV0KKy5TSCBERVNDUklQVElPTgorV2l0aCBubyBhcmd1bWVudHMsCisuQiByZGV2CitvdXRwdXRzIGFuCisuSSAvZXRjL210YWIKK2xpbmUgZm9yIHRoZSBjdXJyZW50IHJvb3QgZmlsZSBzeXN0ZW0uCitXaXRoIG5vIGFyZ3VtZW50cywKKy5CUiByYW1zaXplICIsICIgdmlkbW9kZSAiLCBhbmQgIiByb290ZmxhZ3MKK3ByaW50IHVzYWdlIGluZm9ybWF0aW9uLgorCitJbiBhIGJvb3RhYmxlIGltYWdlIGZvciB0aGUgTGludXgga2VybmVsIG9uIGkzODYsIHRoZXJlIGFyZSBzZXZlcmFsIHBhaXJzCitvZiBieXRlcyB3aGljaCBzcGVjaWZ5IHRoZSByb290IGRldmljZSwgdGhlIHZpZGVvIG1vZGUsIGFuZCB0aGUgc2l6ZSBvZgordGhlIFJBTSBkaXNrLiAgVGhlc2UgcGFpcnMgb2YgYnl0ZXMsIGJ5IGRlZmF1bHQsIGJlZ2luCithdCBvZmZzZXQgNTA0IChkZWNpbWFsKSBpbiB0aGUga2VybmVsIGltYWdlOgorCisubmYKKy5SUworIDQ5OCBSb290IGZsYWdzCisoNTAwIGFuZCA1MDIgUmVzZXJ2ZWQpCisgNTA0IFJBTSBEaXNrIFNpemUKKyA1MDYgVkdBIE1vZGUKKyA1MDggUm9vdCBEZXZpY2UKKyg1MTAgQm9vdCBTaWduYXR1cmUpCisuUkUKKy5maQorCisuQiByZGV2Cit3aWxsIGNoYW5nZSB0aGVzZSB2YWx1ZXMuCisKK1R5cGljYWwgdmFsdWVzIGZvciB0aGUKKy5JIGltYWdlCitwYXJhbWV0ZXIsIHdoaWNoIGlzIGEgYm9vdGFibGUgTGludXgga2VybmVsIGltYWdlLCBtaWdodCBiZToKKworLm5mCisuUlMKKy92bWxpbnV4Cisvdm11bml4CisvYm9vdC9iekltYWdlLTIuNC4wCisvZGV2L2ZkMAorL2Rldi9mZDEKKy5SRQorLmZpCisKK1doZW4gdXNpbmcgdGhlCisuQiByZGV2Citjb21tYW5kLCB0aGUKKy5JIHJvb3RfZGV2aWNlCitwYXJhbWV0ZXIgbWlnaHQgYmUgc29tZXRoaW5nIGxpa2U6CisKKy5uZgorLlJTCisvZGV2L2hkYTEKKy9kZXYvaGRmMTMKKy9kZXYvc2RhMgorL2Rldi9zZGM0CisvZGV2L2lkYS9jMGQwcDEKKy5SRQorLmZpCisKK09uZSBtYXkgYWxzbyBzcGVjaWZ5IHRoZSBkZXZpY2UgYnkgYSBjb21tYS1zZXBhcmF0ZWQgcGFpcgorb2YgZGVjaW1hbCBpbnRlZ2VycworLklSIG1ham9yICwgbWlub3IgLgorCitGb3IgdGhlCisuQiByYW1zaXplCitjb21tYW5kLCB0aGUKKy5JIHNpemUKK3BhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHNpemUgb2YgdGhlIFJBTSBkaXNrIGluIGtpbG9ieXRlcy4gMi4wLngga2VybmVscworYW5kIG5ld2VyIGR5bmFtaWNhbGx5IGFsbG9jYXRlIHRoZSByYW1kaXNrIGFuZCBkbyBub3QgbmVlZCB0aGlzIHNldHRpbmcuCisKK0ZvciB0aGUKKy5CIHJvb3RmbGFncworY29tbWFuZCwgdGhlCisuSSBmbGFncworcGFyYW1ldGVyIGNvbnRhaW5zIGV4dHJhIGluZm9ybWF0aW9uIHVzZWQgd2hlbiBtb3VudGluZyByb290LgorQ3VycmVudGx5IHRoZSBvbmx5IGVmZmVjdCBvZiB0aGVzZSBmbGFncyBpcyB0byBmb3JjZSB0aGUga2VybmVsIHRvCittb3VudCB0aGUgcm9vdCBmaWxlc3lzdGVtIGluIHJlYWRvbmx5IG1vZGUgaWYKKy5JIGZsYWdzCitpcyBub24temVyby4KKworRm9yIHRoZQorLkIgdmlkbW9kZQorY29tbWFuZCwgdGhlCisuSSBtb2RlCitwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB2aWRlbyBtb2RlOgorCisubmYKKy5SUworLTMgPSBQcm9tcHQKKy0yID0gRXh0ZW5kZWQgVkdBCistMSA9IE5vcm1hbCBWR0EKKyAwID0gYXMgaWYgIjAiIHdhcyBwcmVzc2VkIGF0IHRoZSBwcm9tcHQKKyAxID0gYXMgaWYgIjEiIHdhcyBwcmVzc2VkIGF0IHRoZSBwcm9tcHQKKyAyID0gYXMgaWYgIjIiIHdhcyBwcmVzc2VkIGF0IHRoZSBwcm9tcHQKKyBuID0gYXMgaWYgIm4iIHdhcyBwcmVzc2VkIGF0IHRoZSBwcm9tcHQKKy5SRQorLmZpCisKK0lmIHRoZQorLkkgdmFsdWUKK2lzIG5vdCBzcGVjaWZpZWQsIHRoZQorLkkgaW1hZ2UKK3dpbGwgYmUgZXhhbWluZWQgdG8gZGV0ZXJtaW5lIHRoZSBjdXJyZW50IHNldHRpbmdzLgorLlNIIE9QVElPTlMKKy5UUAorLkIgXC1yCitDYXVzZXMKKy5CIHJkZXYKK3RvIGFjdCBsaWtlCisuQlIgcmFtc2l6ZQorKE5vdCByZWxldmFudCBmb3IgMi4wLnggYW5kIG5ld2VyIGtlcm5lbHMpLgorLlRQCisuQiBcLVIKK0NhdXNlcworLkIgcmRldgordG8gYWN0IGxpa2UKKy5CUiByb290ZmxhZ3MgLgorLlRQCisuQiBcLXYKK0NhdXNlcworLkIgcmRldgordG8gYWN0IGxpa2UKKy5CUiB2aWRtb2RlIC4KKy5UUAorLkIgXC1oCitQcm92aWRlcyBoZWxwLgorLlNIIEJVR1MKK1RoZQorLkIgcmRldgordXRpbGl0eSwgd2hlbiB1c2VkIG90aGVyIHRoYW4gdG8gZmluZCBhIG5hbWUgZm9yIHRoZSBjdXJyZW50IHJvb3QgZGV2aWNlLAoraXMgYW4gYW5jaWVudCBoYWNrIHRoYXQgd29ya3MgYnkgcGF0Y2hpbmcgYSBrZXJuZWwgaW1hZ2UgYXQgYSBtYWdpYyBvZmZzZXQKK3dpdGggbWFnaWMgbnVtYmVycy4gSXQgZG9lcyBub3Qgd29yayBvbiBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gaTM4Ni4KK0l0cyB1c2UgaXMgc3Ryb25nbHkgZGlzY291cmFnZWQuIFVzZSBhIGJvb3QgbG9hZGVyIGxpa2UgU3lzTGludXggb3IgTElMTworaW5zdGVhZC4KKy5TSCBISVNUT1JZCitBdCBvZmZzZXQgNTAyIHRoZXJlIHVzZWQgdG8gYmUgdGhlIGRldmljZSBudW1iZXIgb2YgdGhlIHN3YXAgZGV2aWNlCisoaW4gTGludXggMC4xMiksIGFuZCAicmRldiAtcyIgb3IgInN3YXBkZXYiIHdvdWxkIHNldCB0aGlzLgorSG93ZXZlciwgc2luY2UgTGludXggMC45NSB0aGlzIGNvbnN0YW50IGlzIG5vdCB1c2VkIGFueSBsb25nZXIsCithbmQgdGhlIHN3YXAgZGV2aWNlIGlzIHNwZWNpZmllZCB1c2luZyB0aGUKKy5CUiBzd2Fwb24gKDIpCitzeXN0ZW0gY2FsbC4KKworQXQgb2Zmc2V0IDUwNCB0aGVyZSB1c2VkIHRvIGJlIHRoZSBzaXplIG9mIHRoZSByYW1kaXNrIGluIGtpbG9ieXRlcy4KK09uZSB3b3VsZCBzcGVjaWZ5IGEgc2l6ZSwgYW5kIHRoaXMgbXVjaCB3YXMgZ3JhYmJlZCBvZmYgdGhlIHRvcCBvZiBtZW1vcnkuCitJbiBMaW51eCAxLjEuMzkgaXQgYmVjYW1lIGFsc28gcG9zc2libGUgdG8gc2V0IHRoaXMgdmFsdWUgb24gdGhlIGtlcm5lbAorY29tbWFuZCBsaW5lLgorSW4gTGludXggMS4zLjQ4IHRoZSByYW1kaXNrIHNldHVwIHdhcyBjaGFuZ2VkLiBSYW1kaXNrIG1lbW9yeSBpcyBub3cKK3Rha2VuIGZyb20gdGhlIGJ1ZmZlciBjYWNoZSwgc28gdGhhdCB0aGUgcmFtZGlzayBjYW4gZ3JvdyBkeW5hbWljYWxseS4KK1RoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgcmFtZGlzayB3b3JkIHdhcyBjaGFuZ2VkIHRvIGEgd29yZCBvZiB3aGljaAordGhlIGhpZ2ggb3JkZXIgYml0IGlzIGEgcHJvbXB0IGZsYWcgKDE6IHByb21wdCBmb3IgcmFtZGlzazoKKyJWRlM6IEluc2VydCByYW1kaXNrIGZsb3BweSBhbmQgcHJlc3MgRU5URVIiIC0gdGhpcyBpcyBuZWVkZWQgd2l0aCBhCit0d28tZmxvcHB5IGJvb3QpLCB0aGUgbmV4dCBiaXQgYSBsb2FkIGZsYWcgKDE6IGxvYWQgcmFtZGlzayksCithbmQgdGhlIGxvdyBvcmRlciAxMSBiaXRzIGdpdmUgdGhlIHN0YXJ0aW5nIGJsb2NrIG51bWJlciBvZiB0aGUKK3Jvb3QgZmlsZXN5c3RlbSBpbWFnZSAoc28gdGhhdCBvbmUgY2FuIGhhdmUgYSBzaW5nbGUgZmxvcHB5IGJvb3QpLgorU2VlIGFsc28KKy5JUiBsaW51eC9Eb2N1bWVudGF0aW9uL3JhbWRpc2sudHh0IC4KKy5TSCBBVVRIT1JTCisubmYKK09yaWdpbmFsbHkgYnkgV2VybmVyIEFsbWVzYmVyZ2VyIChhbG1lc2JlckBuZXNzaWUuY3MuaWQuZXRoei5jaCkKK01vZGlmaWVkIGJ5IFBldGVyIE1hY0RvbmFsZCAocG1hY2RvbmFAc2FuanVhbi5VVmljLkNBKQorcm9vdGZsYWdzIHN1cHBvcnQgYWRkZWQgYnkgU3RlcGhlbiBUd2VlZGllIChzY3RAZGNzLmVkLmFjLnVrKQorLmZpCisuU0ggQVZBSUxBQklMSVRZCitUaGUgcmRldiBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9yZGV2LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcmRldi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0ZmFjODEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcmRldi5jCkBAIC0wLDAgKzEsMjc5IEBACisvKgorCisgIHJkZXYuYyAgLSAgcXVlcnkvc2V0IHJvb3QgZGV2aWNlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RhdGU6IFN1biwgMjcgRGVjIDE5OTIgMTU6NTU6MzEgKzAwMDAKK1N1YmplY3Q6IFJlOiByZGV2CitGcm9tOiBhbG1lc2JlckBuZXNzaWUuY3MuaWQuZXRoei5jaCAoV2VybmVyIEFsbWVzYmVyZ2VyKQorVG86IFJpayBGYWl0aCA8ZmFpdGhAY3MudW5jLmVkdT4KKworVGhlcmUgYXJlIHF1aXRlIGEgZmV3IHZlcnNpb25zIG9mIHJkZXY6CisKKyAgLSB0aGUgb3JpZ2luYWwgcm9vdGRldiB0aGF0IG9ubHkgcHJpbnRlZCB0aGUgY3VycmVudCByb290IGRldmljZSwgYnkKKyAgICBMaW51cy4KKyAgLSByZGV2IHRoYXQgZG9lcyB3aGF0IHJvb3RkZXYgZGlkIGFuZCB0aGF0IGFsc28gYWxsb3dzIHlvdSB0byBjaGFuZ2UKKyAgICB0aGUgcm9vdCAoYW5kIHN3YXApIGRldmljZSwgYnkgbWUuCisgIC0gcmRldiBnb3QgcmVuYW1lZCB0byBzZXRyb290IGFuZCBJIHRoaW5rIGV2ZW4gdG8gcm9vdGRldiBvbiB2YXJpb3VzCisgICAgZGlzdHJpYnV0aW9ucy4KKyAgLSBQZXRlciBNYWNEb25hbGQgYWRkZWQgdmlkZW8gbW9kZSBhbmQgUkFNIGRpc2sgc2V0dGluZyBhbmQgaW5jbHVkZWQKKyAgICB0aGlzIHZlcnNpb24gb24gU0xTLCBjYWxsZWQgcmRldiBhZ2Fpbi4gSSd2ZSBhdHRhY2hlZCBoaXMgcmRldi5jIHRvCisgICAgdGhpcyBtYWlsLgorICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorRGF0ZTogMTEgTWFyIDkyIDIxOjM3OjM3IEdNVAorU3ViamVjdDogcmRldiAtIHF1ZXJ5L3NldCByb290IGRldmljZQorRnJvbTogYWxtZXNiZXJAbmVzc2llLmNzLmlkLmV0aHouY2ggKFdlcm5lciBBbG1lc2JlcmdlcikKK09yZ2FuaXphdGlvbjogU3dpc3MgRmVkZXJhbCBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSAoRVRIKSwgWnVyaWNoLCBDSAorCitXaXRoIGFsbCB0aGF0IHNvY2tldCwgWDExLCBkaXNrIGRyaXZlciBhbmQgRlMgaGFja2luZyBnb2luZyBvbiwgYXBwYXJlbnRseQorbm9ib2R5IGhhcyBmb3VuZCB0aW1lIHRvIGFkZHJlc3Mgb25lIG9mIHRoZSBtaW5vciBudWlzYW5jZXMgb2YgbGlmZTogc2V0LQordGluZyB0aGUgcm9vdCBGUyBkZXZpY2UgaXMgc3RpbGwgc29tZXdoYXQgY3VtYmVyc29tZS4gSSd2ZSB3cml0dGVuIGEgbGl0dGxlCit1dGlsaXR5IHdoaWNoIGNhbiByZWFkIGFuZCBzZXQgdGhlIHJvb3QgZGV2aWNlIGluIGJvb3QgaW1hZ2VzOgorCityZGV2IGFjY2VwdHMgYW4gb3B0aW9uYWwgb2Zmc2V0IGFyZ3VtZW50LCBqdXN0IGluIGNhc2UgdGhlIGFkZHJlc3Mgc2hvdWxkCitldmVyIG1vdmUgZnJvbSA1MDguIElmIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50cywgcmRldiBvdXRwdXRzIGFuIG10YWIgbGluZQorZm9yIHRoZSBjdXJyZW50IHJvb3QgRlMsIGp1c3QgbGlrZSAvZXRjL3Jvb3RkZXYgZG9lcy4KKworcmFtc2l6ZSBzZXRzIHRoZSBzaXplIG9mIHRoZSByYW1kaXNrLiAgSWYgc2l6ZSBpcyB6ZXJvLCBubyByYW1kaXNrIGlzIHVzZWQuCisKK3ZpZG1vZGUgc2V0cyB0aGUgZGVmYXVsdCB2aWRlbyBtb2RlIGF0IGJvb3R1cCB0aW1lLiAgLTEgdXNlcyBkZWZhdWx0IHZpZGVvCittb2RlLCAtMiB1c2VzIG1lbnUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU3VuIERlYyAyNyAxMDo0MjoxNiAxOTkyOiBNaW5vciB1c2FnZSBjaGFuZ2VzLCBmYWl0aEBjcy51bmMuZWR1LgorVHVlIE1hciAzMCAwOTozMTo1MiAxOTkzOiByZGV2IC1SbiB0byBzZXQgcm9vdCByZWFkb25seSBmbGFnLCBzY3RAZGNzLmVkLmFjLnVrCitXZWQgSnVuIDIyIDIxOjEyOjI5IDE5OTQ6IEFwcGxpZWQgcGF0Y2hlcyBmcm9tIERhdmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlbnR6ZWxAbm92YS5lbmV0LmRlYy5jb20pIHRvIHByZXZlbnQgZGVyZWZlcmVuY2luZworCQkJICB0aGUgTlVMTCBwb2ludGVyLCBmYWl0aEBjcy51bmMuZWR1CisxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKy0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorCisjaW5jbHVkZSAibmxzLmgiCisKKy8qIHJkZXYuYyAgLSAgcXVlcnkvc2V0IHJvb3QgZGV2aWNlLiAqLworCitzdGF0aWMgdm9pZAordXNhZ2Uodm9pZCkgeworCisgICAgcHV0cyhfKCJ1c2FnZTogcmRldiBbIC1ydiBdIFsgLW8gT0ZGU0VUIF0gWyBJTUFHRSBbIFZBTFVFIFsgT0ZGU0VUIF0gXSBdIikpOworICAgIHB1dHMoXygiICByZGV2IC9kZXYvZmQwICAob3IgcmRldiAvbGludXgsIGV0Yy4pIGRpc3BsYXlzIHRoZSBjdXJyZW50IFJPT1QgZGV2aWNlIikpOworICAgIHB1dHMoXygiICByZGV2IC9kZXYvZmQwIC9kZXYvaGRhMiAgICAgICAgIHNldHMgUk9PVCB0byAvZGV2L2hkYTIiKSk7CisgICAgcHV0cyhfKCIgIHJkZXYgLVIgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBST09URkxBR1MgKHJlYWRvbmx5IHN0YXR1cykiKSk7CisgICAgcHV0cyhfKCIgIHJkZXYgLXIgL2Rldi9mZDAgNjI3ICAgICAgICAgICAgc2V0IHRoZSBSQU1ESVNLIHNpemUiKSk7CisgICAgcHV0cyhfKCIgIHJkZXYgLXYgL2Rldi9mZDAgMSAgICAgICAgICAgICAgc2V0IHRoZSBib290dXAgVklERU9NT0RFIikpOworICAgIHB1dHMoXygiICByZGV2IC1vIE4gLi4uICAgICAgICAgICAgICAgICAgIHVzZSB0aGUgYnl0ZSBvZmZzZXQgTiIpKTsKKyAgICBwdXRzKF8oIiAgcm9vdGZsYWdzIC4uLiAgICAgICAgICAgICAgICAgICBzYW1lIGFzIHJkZXYgLVIiKSk7CisgICAgcHV0cyhfKCIgIHJhbXNpemUgLi4uICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyByZGV2IC1yIikpOworICAgIHB1dHMoXygiICB2aWRtb2RlIC4uLiAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgcmRldiAtdiIpKTsKKyAgICBwdXRzKF8oIk5vdGU6IHZpZGVvIG1vZGVzIGFyZTogLTM9QXNrLCAtMj1FeHRlbmRlZCwgLTE9Tm9ybWFsVmdhLCAxPWtleTEsIDI9a2V5MiwuLi4iKSk7CisgICAgcHV0cyhfKCIgICAgICB1c2UgLVIgMSB0byBtb3VudCByb290IHJlYWRvbmx5LCAtUiAwIGZvciByZWFkL3dyaXRlLiIpKTsKKyAgICBleGl0KC0xKTsKK30KKworCisjZGVmaW5lIERFRkFVTFRfT0ZGU0VUIDUwOAorCisKK3N0YXRpYyB2b2lkCitkaWUoY2hhciAqbXNnKSB7CisJcGVycm9yKG1zZyk7CisJZXhpdCgxKTsKK30KKworLyogRWFybGllciByZGV2IGZhaWxzIG9uIC9kZXYvaWRhL2MwZDBwMSBzbyB3ZSBhbGxvdyBmb3IKKyAgIHJlY3Vyc2lvbiBpbiAvZGV2LiAtLSBQYXVsIENsZW1lbnRzICovCisvKiBJbiBmYWN0IGRldmZzIG5lZWRzIGRlZXAgcmVjdXJzaW9uLiAqLworCitzdGF0aWMgaW50CitmaW5kX2Rldl9yZWN1cnNpdmUoY2hhciAqZGlybmFtZWJ1ZiwgaW50IG51bWJlcikgeworCURJUiAqZHA7CisJc3RydWN0IGRpcmVudCAqZGlyOworCXN0cnVjdCBzdGF0IHM7CisJaW50IGRpcm5hbWVsZW4gPSAwOworCisJaWYgKChkcCA9IG9wZW5kaXIoZGlybmFtZWJ1ZikpID09IE5VTEwpCisJCWRpZSgib3BlbmRpciIpOworCWRpcm5hbWVsZW4gPSBzdHJsZW4oZGlybmFtZWJ1Zik7CisJd2hpbGUgKChkaXIgPSByZWFkZGlyKGRwKSkgIT0gTlVMTCkgeworCQlpZiAoIXN0cmNtcChkaXItPmRfbmFtZSwgIi4iKSB8fCAhc3RyY21wKGRpci0+ZF9uYW1lLCAiLi4iKSkKKwkJCWNvbnRpbnVlOworCQlpZiAoZGlybmFtZWxlbiArIDEgKyBzdHJsZW4oZGlyLT5kX25hbWUpID4gUEFUSF9NQVgpCisJCQljb250aW51ZTsKKwkJZGlybmFtZWJ1ZltkaXJuYW1lbGVuXSA9ICcvJzsKKwkJc3RyY3B5KGRpcm5hbWVidWYrZGlybmFtZWxlbisxLCBkaXItPmRfbmFtZSk7CisJCWlmIChsc3RhdChkaXJuYW1lYnVmLCAmcykgPCAwKQorCQkJY29udGludWU7CisJCWlmICgocy5zdF9tb2RlICYgU19JRk1UKSA9PSBTX0lGQkxLICYmIHMuc3RfcmRldiA9PSBudW1iZXIpCisJCQlyZXR1cm4gMTsKKwkJaWYgKChzLnN0X21vZGUgJiBTX0lGTVQpID09IFNfSUZESVIgJiYKKwkJICAgIGZpbmRfZGV2X3JlY3Vyc2l2ZShkaXJuYW1lYnVmLCBudW1iZXIpKQorCQkJcmV0dXJuIDE7CisJfQorCWRpcm5hbWVidWZbZGlybmFtZWxlbl0gPSAwOworCWNsb3NlZGlyKGRwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNoYXIgKgorZmluZF9kZXYoaW50IG51bWJlcikgeworCXN0YXRpYyBjaGFyIG5hbWVbUEFUSF9NQVgrMV07CisKKwlpZiAoIW51bWJlcikKKwkJcmV0dXJuICJCb290IGRldmljZSI7CisJc3RyY3B5KG5hbWUsICIvZGV2Iik7CisJaWYgKGZpbmRfZGV2X3JlY3Vyc2l2ZShuYW1lLCBudW1iZXIpKQorCQlyZXR1cm4gbmFtZTsKKwlzcHJpbnRmKG5hbWUsICIweCUwNHgiLCBudW1iZXIpOworCXJldHVybiBuYW1lOworfQorCisvKiBUaGUgZW51bSB2YWx1ZXMgYXJlIHNpZ25pZmljYW50LCB0aGluZ3MgYXJlIHN0b3JlZCBpbiB0aGlzIG9yZGVyLAorICAgc2VlIGJvb3RzZWN0LlMgKi8KK2VudW0geyBSREVWLCBWSURNT0RFLCBSQU1TSVpFLCBfX3N3YXBkZXZfXywgX19zeXNzaXplX18sIFJPT1RGTEFHUyB9OworY2hhciAqY21kbmFtZXNbNl0gPSB7ICJyZGV2IiwgInZpZG1vZGUiLCAgInJhbXNpemUiLCAiIiwgCisJCSAgICAgICIiLCAicm9vdGZsYWdzIn07CitjaGFyICpkZXNjWzZdID0geyAiUm9vdCBkZXZpY2UiLCAiVmlkZW8gbW9kZSIsICAiUmFtc2l6ZSIsICAiIiwKKwkJICAiIiwgIlJvb3QgZmxhZ3MifTsKKyNkZWZpbmUgc2hpZnQobikgYXJndis9bixhcmdjLT1uCisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKwlpbnQgaW1hZ2UsIG9mZnNldCwgZGV2X25yLCBpLCBuZXdvZmZzZXQ9LTE7CisJY2hhciAqcHRyOworCXVuc2lnbmVkIHNob3J0IHZhbCwgaGF2ZV92YWw7CisJc3RydWN0IHN0YXQgczsKKwlpbnQgY21kOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCS8qIHVzZSB0aGUgY29tbWFuZCBuYW1lIHRvIGZpZ3VyZSBvdXQgd2hhdCB3ZSBoYXZlIHRvIGRvIC0gdWdseSAqLworCWNtZCA9IFJERVY7CisJaWYgKChwdHIgPSBzdHJyY2hyKGFyZ3ZbMF0sJy8nKSkgIT0gTlVMTCkKKwkJcHRyKys7CisJZWxzZQorCQlwdHIgPSBhcmd2WzBdOworCWZvciAoaT0wOyBpPD01OyBpKyspIHsKKwkJaWYgKCFzdHJjbXAocHRyLGNtZG5hbWVzW2ldKSkgeworCQkJY21kID0gaTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJd2hpbGUgKGFyZ2MgPiAxKSB7IAorCQlpZiAoYXJndlsxXVswXSAhPSAnLScpCisJCQlicmVhazsKKwkJc3dpdGNoIChhcmd2WzFdWzFdKSB7CisJCWNhc2UgJ1InOgorCQkJY21kID0gUk9PVEZMQUdTOworCQkJc2hpZnQoMSk7CisJCQlicmVhazsKKwkJY2FzZSAncic6IAorCQkJY21kID0gUkFNU0laRTsKKwkJCXNoaWZ0KDEpOworCQkJYnJlYWs7CisJCWNhc2UgJ3YnOgorCQkJY21kID0gVklETU9ERTsKKwkJCXNoaWZ0KDEpOworCQkJYnJlYWs7CisJCWNhc2UgJ28nOgorCQkJaWYgKGFyZ3ZbMV1bMl0pIHsKKwkJCQluZXdvZmZzZXQgPSBhdG9pKGFyZ3ZbMV0rMik7CisJCQkJc2hpZnQoMSk7CisJCQkJYnJlYWs7CisJCQl9IGVsc2UgaWYgKGFyZ2MgPiAyKSB7CisJCQkJbmV3b2Zmc2V0ID0gYXRvaShhcmd2WzJdKTsKKwkJCQlzaGlmdCgyKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCS8qIEZhbGwgdGhyb3VnaC4gLiAuICovCisJCWRlZmF1bHQ6CisJCQl1c2FnZSgpOworCQl9CisJfQorCisJLyogSGVyZSB0aGUgb25seSBzZW5zaWJsZSB3YXkgb2YgdXNpbmcgcmRldiAqLworCWlmIChhcmdjID09IDEpIHsKKwkJaWYgKGNtZCA9PSBSREVWKSB7CisJCQlpZiAoc3RhdCgiLyIsJnMpIDwgMCkgZGllKCIvIik7CisJCQlwcmludGYoIiVzIC9cbiIsIGZpbmRfZGV2KHMuc3RfZGV2KSk7CisJCQlleGl0KDApOworCQl9CisJCXVzYWdlKCk7CisJfQorCisJaWYgKGFyZ2MgPiA0KQorCQl1c2FnZSgpOworCisJLyogQW5jaWVudCBnYXJiYWdlLi4gKi8KKwlvZmZzZXQgPSBERUZBVUxUX09GRlNFVC1jbWQqMjsKKwlpZiAobmV3b2Zmc2V0ID49IDApCisJCW9mZnNldCA9IG5ld29mZnNldDsKKwlpZiAoYXJnYyA9PSA0KQorCQlvZmZzZXQgPSBhdG9pKGFyZ3ZbM10pOworCisJaGF2ZV92YWwgPSAwOworCisJaWYgKGFyZ2MgPj0gMykgeworCQlpZiAoY21kID09IFJERVYpIHsKKwkJCWlmIChpc2RpZ2l0KCphcmd2WzJdKSkgeworCQkJCS8qIGVhcmxpZXI6IHNwZWNpZnkgb2Zmc2V0ICovCisJCQkJLyogbm93OiBzcGVjaWZ5IG1ham9yLG1pbm9yICovCisJCQkJY2hhciAqcDsKKwkJCQl1bnNpZ25lZCBpbnQgbWEsbWk7CisJCQkJaWYgKChwID0gc3RyY2hyKGFyZ3ZbMl0sICcsJykpID09IE5VTEwpCisJCQkJCWRpZShfKCJtaXNzaW5nIGNvbW1hIikpOworCQkJCW1hID0gYXRvaShhcmd2WzJdKTsKKwkJCQltaSA9IGF0b2kocCsxKTsKKwkJCQl2YWwgPSAoKG1hPDw4KSB8IG1pKTsKKwkJCX0gZWxzZSB7CisJCQkJY2hhciAqZGV2aWNlID0gYXJndlsyXTsKKwkJCQlpZiAoc3RhdChkZXZpY2UsJnMpIDwgMCkKKwkJCQkJZGllKGRldmljZSk7CisJCQkJdmFsID0gcy5zdF9yZGV2OworCQkJfQorCQl9IGVsc2UgeworCQkJdmFsID0gYXRvaShhcmd2WzJdKTsKKwkJfQorCQloYXZlX3ZhbCA9IDE7CisJfQorCisJaWYgKGhhdmVfdmFsKSB7CisJCWlmICgoaW1hZ2UgPSBvcGVuKGFyZ3ZbMV0sT19XUk9OTFkpKSA8IDApIGRpZShhcmd2WzFdKTsKKwkJaWYgKGxzZWVrKGltYWdlLG9mZnNldCwwKSA8IDApIGRpZSgibHNlZWsiKTsKKwkJaWYgKHdyaXRlKGltYWdlLChjaGFyICopJnZhbCwyKSAhPSAyKSBkaWUoYXJndlsxXSk7CisJCWlmIChjbG9zZShpbWFnZSkgPCAwKSBkaWUoImNsb3NlIik7CisJfSBlbHNlIHsKKwkJaWYgKChpbWFnZSA9IG9wZW4oYXJndlsxXSxPX1JET05MWSkpIDwgMCkgZGllKGFyZ3ZbMV0pOworCQlpZiAobHNlZWsoaW1hZ2Usb2Zmc2V0LDApIDwgMCkgZGllKCJsc2VlayIpOworCQlkZXZfbnIgPSAwOworCQlpZiAocmVhZChpbWFnZSwoY2hhciAqKSZkZXZfbnIsMikgIT0gMikgZGllKGFyZ3ZbMV0pOworCQlpZiAoY2xvc2UoaW1hZ2UpIDwgMCkgZGllKCJjbG9zZSIpOworCQlmcHV0cyhkZXNjW2NtZF0sIHN0ZG91dCk7CisJCWlmIChjbWQgPT0gUkRFVikKKwkJCXByaW50ZigiICVzXG4iLCBmaW5kX2RldihkZXZfbnIpKTsKKwkJZWxzZQorCQkJcHJpbnRmKCIgJWRcbiIsIGRldl9ucik7CisJfQorCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3JlYWRwcm9maWxlLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcmVhZHByb2ZpbGUuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzY1MDUzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3JlYWRwcm9maWxlLjEKQEAgLTAsMCArMSwxNjkgQEAKKy5USCBSRUFEUFJPRklMRSAxICJNYXkgMTk5NiIKKy5VQyA0CisuU0ggTkFNRQorcmVhZHByb2ZpbGUgLSBhIHRvb2wgdG8gcmVhZCBrZXJuZWwgcHJvZmlsaW5nIGluZm9ybWF0aW9uCisuU0ggU1lOT1BTSVMKKy5CIHJlYWRwcm9maWxlCisuUkkgWyBvcHRpb25zIF0KKworLlNIIFZFUlNJT04KK1RoaXMgbWFucGFnZSBkb2N1bWVudHMgdmVyc2lvbiAyLjAgb2YgdGhlIHByb2dyYW0uCisKKy5TSCBERVNDUklQVElPTgorCisuTFAKK1RoZQorLkIgcmVhZHByb2ZpbGUKK2NvbW1hbmQgdXNlcyB0aGUKKy5CIC9wcm9jL3Byb2ZpbGUKK2luZm9ybWF0aW9uIHRvIHByaW50IGFzY2lpIGRhdGEgb24gc3RhbmRhcmQgb3V0cHV0LgorVGhlIG91dHB1dCBpcworb3JnYW5pemVkIGluIHRocmVlIGNvbHVtbnM6IHRoZSBmaXJzdCBpcyB0aGUgbnVtYmVyIG9mIGNsb2NrIHRpY2tzLAordGhlIHNlY29uZCBpcyB0aGUgbmFtZSBvZiB0aGUgQyBmdW5jdGlvbiBpbiB0aGUga2VybmVsIHdoZXJlIHRob3NlIG1hbnkKK3RpY2tzIG9jY3VycmVkLCBhbmQgdGhlIHRoaXJkIGlzIHRoZSBub3JtYWxpemVkIGBsb2FkJyBvZiB0aGUgcHJvY2VkdXJlLAorY2FsY3VsYXRlZCBhcyBhIHJhdGlvIGJldHdlZW4gdGhlIG51bWJlciBvZiB0aWNrcyBhbmQgdGhlIGxlbmd0aCBvZgordGhlIHByb2NlZHVyZS4gVGhlIG91dHB1dCBpcyBmaWxsZWQgd2l0aCBibGFua3MgdG8gZWFzZSByZWFkYWJpbGl0eS4KKworLkxQCitBdmFpbGFibGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgYXJlIHRoZSBmb2xsb3dpbmc6CisKKy5UUAorLkJJIFwtbSAiIG1hcGZpbGUiCitTcGVjaWZ5IGEgbWFwZmlsZSwgd2hpY2ggYnkgZGVmYXVsdCBpcworLkIgL3Vzci9zcmMvbGludXgvU3lzdGVtLm1hcC4KK1lvdSBzaG91bGQgc3BlY2lmeSB0aGUgbWFwIGZpbGUgb24gY21kbGluZSBpZiB5b3VyIGN1cnJlbnQga2VybmVsIGlzbid0IHRoZQorbGFzdCBvbmUgeW91IGNvbXBpbGVkLCBvciBpZiB5b3Uga2VlcCBTeXN0ZW0ubWFwIGVsc2V3aGVyZS4gSWYgdGhlIG5hbWUgb2YKK3RoZSBtYXAgZmlsZSBlbmRzIHdpdGggYC5neicgaXQgaXMgZGVjb21wcmVzc2VkIG9uIHRoZSBmbHkuCisKKy5UUAorLkJJIFwtcCAiIHByby1maWxlIgorU3BlY2lmeSBhIGRpZmZlcmVudCBwcm9maWxpbmcgYnVmZmVyLCB3aGljaCBieSBkZWZhdWx0IGlzCisuQiAvcHJvYy9wcm9maWxlLgorVXNpbmcgYSBkaWZmZXJlbnQgcHJvLWZpbGUgaXMgdXNlZnVsIGlmIHlvdSB3YW50IHRvIGBmcmVlemUnIHRoZQora2VybmVsIHByb2ZpbGluZyBhdCBzb21lIHRpbWUgYW5kIHJlYWQgaXQgbGF0ZXIuIFRoZQorLkIgL3Byb2MvcHJvZmlsZQorZmlsZSBjYW4gYmUgY29waWVkIHVzaW5nIGBjYXQnIG9yIGBjcCcuIFRoZXJlIGlzIG5vIG1vcmUgc3VwcG9ydCBmb3IKK2NvbXByZXNzZWQgcHJvZmlsZSBidWZmZXJzLCBsaWtlIGluCisuQiByZWFkcHJvZmlsZS0xLjEsCitiZWNhdXNlIHRoZSBwcm9ncmFtIG5lZWRzIHRvIGtub3cgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBpbiBhZHZhbmNlLgorCisuVFAKKy5CIFwtaQorSW5mby4gVGhpcyBtYWtlcworLkIgcmVhZHByb2ZpbGUKK29ubHkgcHJpbnQgdGhlIHByb2ZpbGluZyBzdGVwIHVzZWQgYnkgdGhlIGtlcm5lbC4KK1RoZSBwcm9maWxpbmcgc3RlcCBpcyB0aGUgcmVzb2x1dGlvbiBvZiB0aGUgcHJvZmlsaW5nIGJ1ZmZlciwgYW5kCitpcyBjaG9zZW4gZHVyaW5nIGtlcm5lbCBjb25maWd1cmF0aW9uICh0aHJvdWdoIGBtYWtlIGNvbmZpZycpLAorb3IgaW4gdGhlIGtlcm5lbCdzIGNvbW1hbmQgbGluZS4KK0lmIHRoZQorLkIgXC10CisodGVyc2UpIHN3aXRjaCBpcyB1c2VkIHRvZ2V0aGVyIHdpdGgKKy5CIFwtaQorb25seSB0aGUgZGVjaW1hbCBudW1iZXIgaXMgcHJpbnRlZC4KKworLlRQCisuQiBcLWEKK1ByaW50IGFsbCBzeW1ib2xzIGluIHRoZSBtYXBmaWxlLiBCeSBkZWZhdWx0IHRoZSBwcm9jZWR1cmVzIHdpdGggMCByZXBvcnRlZAordGlja3MgYXJlIG5vdCBwcmludGVkLgorCisuVFAKKy5CIFwtYgorUHJpbnQgaW5kaXZpZHVhbCBoaXN0b2dyYW0tYmluIGNvdW50cy4KKworLlRQCisuQiBcLXIKK1Jlc2V0IHRoZSBwcm9maWxpbmcgYnVmZmVyLiBUaGlzIGNhbiBvbmx5IGJlIGludm9rZWQgYnkgcm9vdCwgYmVjYXVzZQorLkIgL3Byb2MvcHJvZmlsZQoraXMgcmVhZGFibGUgYnkgZXZlcnlib2R5IGJ1dCB3cml0YWJsZSBvbmx5IGJ5IHRoZSBzdXBlcnVzZXIuIEhvd2V2ZXIsCit5b3UgY2FuIG1ha2UKKy5CIHJlYWRwcm9maWxlCitzZXR1aWQgMCwgaW4gb3JkZXIgdG8gcmVzZXQgdGhlIGJ1ZmZlciB3aXRob3V0IGdhaW5pbmcgcHJpdmlsZWdlcy4KKworLlRQCisuQkkgXC1NICIgbXVsdGlwbGllciIKK09uIHNvbWUgYXJjaGl0ZWN0dXJlcyBpdCBpcyBwb3NzaWJsZSB0byBhbHRlciB0aGUgZnJlcXVlbmN5IGF0IHdoaWNoCit0aGUga2VybmVsIGRlbGl2ZXJzIHByb2ZpbGluZyBpbnRlcnJ1cHRzIHRvIGVhY2ggQ1BVLiAgVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0bworc2V0IHRoZSBmcmVxdWVuY3ksIGFzIGEgbXVsdGlwbGllciBvZiB0aGUgc3lzdGVtIGNsb2NrIGZyZXF1ZW5jeSwgSFouCitUaGlzIGlzIHN1cHBvcnRlZCBvbiBpMzg2LVNNUCAoMi4yIGFuZCAyLjQga2VybmVsKSBhbmQgYWxzbyBvbiBzcGFyYy1TTVAKK2FuZCBzcGFyYzY0LVNNUCAoMi40IGtlcm5lbCkuICBUaGlzIG9wdGlvbiBhbHNvIHJlc2V0cyB0aGUgcHJvZmlsaW5nIGJ1ZmZlciwKK2FuZCByZXF1aXJlcyBzdXBlcnVzZXIgcHJpdmlsZWdlcy4KKworLlRQCisuQiBcLXYKK1ZlcmJvc2UuIFRoZSBvdXRwdXQgaXMgb3JnYW5pemVkIGluIGZvdXIgY29sdW1ucyBhbmQgZmlsbGVkIHdpdGggYmxhbmtzLgorVGhlIGZpcnN0IGNvbHVtbiBpcyB0aGUgUkFNIGFkZHJlc3Mgb2YgYSBrZXJuZWwgZnVuY3Rpb24sIHRoZSBzZWNvbmQgaXMKK3RoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiwgdGhlIHRoaXJkIGlzIHRoZSBudW1iZXIgb2YgY2xvY2sgdGlja3MgYW5kIHRoZQorbGFzdCBpcyB0aGUgbm9ybWFsaXplZCBsb2FkLgorCisuVFAKKy5CIFwtVgorVmVyc2lvbi4gVGhpcyBtYWtlcworLkIgcmVhZHByb2ZpbGUKK3ByaW50IGl0cyB2ZXJzaW9uIG51bWJlciBhbmQgZXhpdC4KKworLlNIIEVYQU1QTEVTCitCcm93c2UgdGhlIHByb2ZpbGluZyBidWZmZXIgb3JkZXJpbmcgYnkgY2xvY2sgdGlja3M6CisubmYKKyAgIHJlYWRwcm9maWxlIHwgc29ydCAtbnIgfCBsZXNzCisKKy5maQorUHJpbnQgdGhlIDIwIG1vc3QgbG9hZGVkIHByb2NlZHVyZXM6CisubmYKKyAgIHJlYWRwcm9maWxlIHwgc29ydCAtbnIgKzIgfCBoZWFkIC0yMAorCisuZmkKK1ByaW50IG9ubHkgZmlsZXN5c3RlbSBwcm9maWxlOgorLm5mCisgICByZWFkcHJvZmlsZSB8IGdyZXAgX2V4dDIKKworLmZpCitMb29rIGF0IGFsbCB0aGUga2VybmVsIGluZm9ybWF0aW9uLCB3aXRoIHJhbSBhZGRyZXNzZXMiCisubmYKKyAgIHJlYWRwcm9maWxlIC1hdiB8IGxlc3MKKworLmZpCitCcm93c2UgYSBgZnJlZXplZCcgcHJvZmlsZSBidWZmZXIgZm9yIGEgbm9uIGN1cnJlbnQga2VybmVsOgorLm5mCisgICByZWFkcHJvZmlsZSAtcCB+L3Byb2ZpbGUuZnJlZXplIC1tIC96SW1hZ2UubWFwLmd6CisKKy5maQorUmVxdWVzdCBwcm9maWxpbmcgYXQgMmtIeiBwZXIgQ1BVLCBhbmQgcmVzZXQgdGhlIHByb2ZpbGluZyBidWZmZXIKKy5uZgorICAgc3VkbyByZWFkcHJvZmlsZSAtTSAyMAorCisuZmkKKworLlNIIEJVR1MKKworLkxQCisuQiByZWFkcHJvZmlsZQorb25seSB3b3JrcyB3aXRoIGFuIDEuMy54IG9yIG5ld2VyIGtlcm5lbCwKK2JlY2F1c2UKKy5CIC9wcm9jL3Byb2ZpbGUKK2NoYW5nZWQgaW4gdGhlIHN0ZXAgZnJvbSAxLjIgdG8gMS4zCisKKy5MUAorVGhpcyBwcm9ncmFtIG9ubHkgd29ya3Mgd2l0aCBFTEYga2VybmVscy4gVGhlIGNoYW5nZSBmb3IgYS5vdXQga2VybmVscworaXMgdHJpdmlhbCwgYW5kIGxlZnQgYXMgYW4gZXhlcmNpc2UgdG8gdGhlIGEub3V0IHVzZXIuCisKKy5MUAorVG8gZW5hYmxlIHByb2ZpbGluZywgdGhlIGtlcm5lbCBtdXN0IGJlIHJlYm9vdGVkLCBiZWNhdXNlIG5vIHByb2ZpbGluZyBtb2R1bGUKK2lzIGF2YWlsYWJsZSwgYW5kIGl0IHdvdWxkbid0IGJlIGVhc3kgdG8gYnVpbGQuIFRvIGVuYWJsZSBwcm9maWxpbmcsCit5b3UgY2FuIHNwZWNpZnkgInByb2ZpbGU9MiIgKG9yIGFub3RoZXIgbnVtYmVyKSBvbiB0aGUga2VybmVsIGNvbW1hbmRsaW5lLgorVGhlIG51bWJlciB5b3Ugc3BlY2lmeSBpcyB0aGUgdHdvLWV4cG9uZW50IHVzZWQgYXMgcHJvZmlsaW5nIHN0ZXAuCisKKy5MUAorUHJvZmlsaW5nIGlzIGRpc2FibGVkIHdoZW4gaW50ZXJydXB0cyBhcmUgaW5oaWJpdGVkLiBUaGlzIG1lYW5zIHRoYXQgbWFueQorcHJvZmlsaW5nIHRpY2tzIGhhcHBlbiB3aGVuIGludGVycnVwdHMgYXJlIHJlLWVuYWJsZWQuIFdhdGNoIG91dCBmb3IKK21pc2xlYWRpbmcgaW5mb3JtYXRpb24uCisKKy5TSCBGSUxFUworLm5mCisvcHJvYy9wcm9maWxlICAgICAgICAgICAgICBBIGJpbmFyeSBzbmFwc2hvdCBvZiB0aGUgcHJvZmlsaW5nIGJ1ZmZlci4KKy91c3Ivc3JjL2xpbnV4L1N5c3RlbS5tYXAgIFRoZSBzeW1ib2wgdGFibGUgZm9yIHRoZSBrZXJuZWwuCisvdXNyL3NyYy9saW51eC8qICAgICAgICAgICBUaGUgcHJvZ3JhbSBiZWluZyBwcm9maWxlZCA6LSkKKy5maQorCisuU0ggQVZBSUxBQklMSVRZCitUaGUgcmVhZHByb2ZpbGUgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcmVhZHByb2ZpbGUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9yZWFkcHJvZmlsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyZjVkOGMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcmVhZHByb2ZpbGUuYwpAQCAtMCwwICsxLDQxNiBAQAorLyoKKyAqICByZWFkcHJvZmlsZS5jIC0gdXNlZCB0byByZWFkIC9wcm9jL3Byb2ZpbGUKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAxOTk0LDE5OTYgQWxlc3NhbmRybyBSdWJpbmkgKHJ1YmluaUBpcHZ2aXMudW5pcHYuaXQpCisgKgorICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICovCisKKy8qCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqIDE5OTktMDktMDEgU3RlcGhhbmUgRXJhbmlhbiA8ZXJhbmlhbkBjZWxsby5ocGwuaHAuY29tPgorICogLSA2NGJpdCBjbGVhbiBwYXRjaAorICogM0ZlYjIwMDEgQW5kcmV3IE1vcnRvbiA8YW5kcmV3bUB1b3cuZWR1LmF1PgorICogLSAtTSBvcHRpb24gdG8gd3JpdGUgcHJvZmlsZSBtdWx0aXBsaWVyLgorICogMjAwMS0xMS0wNyBXZXJuZXIgQWxtZXNiZXJnZXIgPHdhQGFsbWVzYmVyZ2VyLm5ldD4KKyAqIC0gYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvbiBhbmQgLW4gb3B0aW9uCisgKiAyMDAxLTExLTA5IFdlcm5lciBBbG1lc2JlcmdlciA8d2FAYWxtZXNiZXJnZXIubmV0PgorICogLSBza2lwIHN0ZXAgc2l6ZSAoaW5kZXggMCkKKyAqIDIwMDItMDMtMDkgSm9obiBMZXZvbiA8bW96QGNvbXBzb2MubWFuLmFjLnVrPgorICogLSBtYWtlIG1hcGxpbmVubyBkbyBzb21ldGhpbmcKKyAqIDIwMDItMTEtMjggTWFkcyBNYXJ0aW4gSm9lcmdlbnNlbiArCisgKiAtIGFsc28gdHJ5IC9ib290L1N5c3RlbS5tYXAtYHVuYW1lIC1yYAorICogMjAwMy0wNC0wOSBXZXJuZXIgQWxtZXNiZXJnZXIgPHdhQGFsbWVzYmVyZ2VyLm5ldD4KKyAqIC0gZml4ZWQgb2ZmLWJ5IGVpZ2h0IGVycm9yIGFuZCBpbXByb3ZlZCBoZXVyaXN0aWNzIGluIGJ5dGUgb3JkZXIgZGV0ZWN0aW9uCisgKiAyMDAzLTA4LTEyIE5pa2l0YSBEYW5pbG92IDxOaWtpdGFATmFtZXN5cy5DT00+CisgKiAtIGFkZGVkIC1zIG9wdGlvbjsgZXhhbXBsZSBvZiB1c2U6CisgKiAicmVhZHByb2ZpbGUgLXMgLW0gL2Jvb3QvU3lzdGVtLm1hcC10ZXN0IHwgZ3JlcCBfX2RfbG9va3VwIHwgc29ydCAtbiAtazMiCisgKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKyNpbmNsdWRlICJubHMuaCIKKworI2RlZmluZSBTX0xFTiAxMjgKKworc3RhdGljIGNoYXIgKnByZ25hbWU7CisKKy8qIFRoZXNlIGFyZSB0aGUgZGVmYXVsdHMgKi8KK3N0YXRpYyBjaGFyIGRlZmF1bHRtYXBbXT0iL2Jvb3QvU3lzdGVtLm1hcCI7CitzdGF0aWMgY2hhciBkZWZhdWx0cHJvW109Ii9wcm9jL3Byb2ZpbGUiOworc3RhdGljIGNoYXIgb3B0c3RyaW5nW109Ik06bTpucDppdHZhclZicyI7CisKK3N0YXRpYyB2b2lkICoKK3htYWxsb2MgKHNpemVfdCBzaXplKSB7CisJdm9pZCAqdDsKKworCWlmIChzaXplID09IDApCisJCXJldHVybiBOVUxMOworCisJdCA9IG1hbGxvYyAoc2l6ZSk7CisJaWYgKHQgPT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZGVyciwgXygib3V0IG9mIG1lbW9yeSIpKTsKKwkJZXhpdCgxKTsKKwl9CisKKwlyZXR1cm4gdDsKK30KKworc3RhdGljIEZJTEUgKgorbXlvcGVuKGNoYXIgKm5hbWUsIGNoYXIgKm1vZGUsIGludCAqZmxhZykgeworCWludCBsZW4gPSBzdHJsZW4obmFtZSk7CisKKwlpZiAoIXN0cmNtcChuYW1lK2xlbi0zLCIuZ3oiKSkgeworCQlGSUxFICpyZXM7CisJCWNoYXIgKmNtZGxpbmUgPSB4bWFsbG9jKGxlbis2KTsKKwkJc3ByaW50ZihjbWRsaW5lLCAiemNhdCAlcyIsIG5hbWUpOworCQlyZXMgPSBwb3BlbihjbWRsaW5lLG1vZGUpOworCQlmcmVlKGNtZGxpbmUpOworCQkqZmxhZyA9IDE7CisJCXJldHVybiByZXM7CisJfQorCSpmbGFnID0gMDsKKwlyZXR1cm4gZm9wZW4obmFtZSxtb2RlKTsKK30KKworI2lmbmRlZiBCT09UX1NZU1RFTV9NQVAKKyNkZWZpbmUgQk9PVF9TWVNURU1fTUFQICIvYm9vdC9TeXN0ZW0ubWFwLSIKKyNlbmRpZgorCitzdGF0aWMgY2hhciAqCitib290X3VuYW1lX3Jfc3RyKHZvaWQpIHsKKwlzdHJ1Y3QgdXRzbmFtZSB1bmFtZV9pbmZvOworCWNoYXIgKnM7CisJc2l6ZV90IGxlbjsKKworCWlmICh1bmFtZSgmdW5hbWVfaW5mbykpCisJCXJldHVybiAiIjsKKwlsZW4gPSBzdHJsZW4oQk9PVF9TWVNURU1fTUFQKSArIHN0cmxlbih1bmFtZV9pbmZvLnJlbGVhc2UpICsgMTsKKwlzID0geG1hbGxvYyhsZW4pOworCXN0cmNweShzLCBCT09UX1NZU1RFTV9NQVApOworCXN0cmNhdChzLCB1bmFtZV9pbmZvLnJlbGVhc2UpOworCXJldHVybiBzOworfQorCitzdGF0aWMgdm9pZAordXNhZ2Uodm9pZCkgeworCWZwcmludGYoc3RkZXJyLCBfKAorCQkiJXM6IFVzYWdlOiBcIiVzIFtvcHRpb25zXVxuIgorCQkiXHQgLW0gPG1hcGZpbGU+ICAoZGVmYXVsdHM6IFwiJXNcIiBhbmRcblx0XHRcdFx0ICBcIiVzXCIpXG4iCisJCSJcdCAtcCA8cHJvLWZpbGU+IChkZWZhdWx0OiBcIiVzXCIpXG4iCisJCSJcdCAtTSA8bXVsdD4gICAgIHNldCB0aGUgcHJvZmlsaW5nIG11bHRpcGxpZXIgdG8gPG11bHQ+XG4iCisJCSJcdCAtaSAgICAgICAgICAgIHByaW50IG9ubHkgaW5mbyBhYm91dCB0aGUgc2FtcGxpbmcgc3RlcFxuIgorCQkiXHQgLXYgICAgICAgICAgICBwcmludCB2ZXJib3NlIGRhdGFcbiIKKwkJIlx0IC1hICAgICAgICAgICAgcHJpbnQgYWxsIHN5bWJvbHMsIGV2ZW4gaWYgY291bnQgaXMgMFxuIgorCQkiXHQgLWIgICAgICAgICAgICBwcmludCBpbmRpdmlkdWFsIGhpc3RvZ3JhbS1iaW4gY291bnRzXG4iCisJCSJcdCAtcyAgICAgICAgICAgIHByaW50IGluZGl2aWR1YWwgY291bnRlcnMgd2l0aGluIGZ1bmN0aW9uc1xuIgorCQkiXHQgLXIgICAgICAgICAgICByZXNldCBhbGwgdGhlIGNvdW50ZXJzIChyb290IG9ubHkpXG4iCisJCSJcdCAtbiAgICAgICAgICAgIGRpc2FibGUgYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvblxuIgorCQkiXHQgLVYgICAgICAgICAgICBwcmludCB2ZXJzaW9uIGFuZCBleGl0XG4iKSwKKwkJcHJnbmFtZSwgcHJnbmFtZSwgZGVmYXVsdG1hcCwgYm9vdF91bmFtZV9yX3N0cigpLCBkZWZhdWx0cHJvKTsKKwlleGl0KDEpOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisJRklMRSAqbWFwOworCWludCBwcm9GZDsKKwljaGFyICptYXBGaWxlLCAqcHJvRmlsZSwgKm11bHQ9MDsKKwl1bnNpZ25lZCBsb25nIGxlbj0wLCBpbmR4PTE7CisJdW5zaWduZWQgbG9uZyBsb25nIGFkZDA9MDsKKwl1bnNpZ25lZCBpbnQgc3RlcDsKKwl1bnNpZ25lZCBpbnQgKmJ1ZiwgdG90YWwsIGZuX2xlbjsKKwl1bnNpZ25lZCBsb25nIGxvbmcgZm5fYWRkLCBuZXh0X2FkZDsgICAgICAgICAgLyogY3VycmVudCBhbmQgbmV4dCBhZGRyZXNzICovCisJY2hhciBmbl9uYW1lW1NfTEVOXSwgbmV4dF9uYW1lW1NfTEVOXTsgICAvKiBjdXJyZW50IGFuZCBuZXh0IG5hbWUgKi8KKwljaGFyIG1vZGVbOF07CisJaW50IGM7CisJaW50IG9wdEFsbD0wLCBvcHRJbmZvPTAsIG9wdFJlc2V0PTAsIG9wdFZlcmJvc2U9MCwgb3B0TmF0aXZlPTA7CisJaW50IG9wdEJpbnM9MCwgb3B0U3ViPTA7CisJY2hhciBtYXBsaW5lW1NfTEVOXTsKKwlpbnQgbWFwbGluZW5vPTE7CisJaW50IHBvcGVuTWFwOyAgIC8qIGZsYWcgdG8gdGVsbCBpZiBwb3BlbigpIGhhcyBiZWVuIHVzZWQgKi8KKwlpbnQgaGVhZGVyX3ByaW50ZWQ7CisKKyNkZWZpbmUgbmV4dCAoY3VycmVudF4xKQorCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCXByZ25hbWUgPSBhcmd2WzBdOworCXByb0ZpbGUgPSBkZWZhdWx0cHJvOworCW1hcEZpbGUgPSBkZWZhdWx0bWFwOworCisJd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsIG9wdHN0cmluZykpICE9IC0xKSB7CisJCXN3aXRjaChjKSB7CisJCWNhc2UgJ20nOgorCQkJbWFwRmlsZSA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQljYXNlICduJzoKKwkJCW9wdE5hdGl2ZSsrOworCQkJYnJlYWs7CisJCWNhc2UgJ3AnOgorCQkJcHJvRmlsZSA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQljYXNlICdhJzoKKwkJCW9wdEFsbCsrOworCQkJYnJlYWs7CisJCWNhc2UgJ2InOgorCQkJb3B0QmlucysrOworCQkJYnJlYWs7CisJCWNhc2UgJ3MnOgorCQkJb3B0U3ViKys7CisJCQlicmVhazsKKwkJY2FzZSAnaSc6CisJCQlvcHRJbmZvKys7CisJCQlicmVhazsKKwkJY2FzZSAnTSc6CisJCQltdWx0ID0gb3B0YXJnOworCQkJYnJlYWs7CisJCWNhc2UgJ3InOgorCQkJb3B0UmVzZXQrKzsKKwkJCWJyZWFrOworCQljYXNlICd2JzoKKwkJCW9wdFZlcmJvc2UrKzsKKwkJCWJyZWFrOworCQljYXNlICdWJzoKKwkJCXByaW50ZihfKCIlcyAoJXMpXG4iKSwgcHJnbmFtZSwKKwkJCSAgICAgICBQQUNLQUdFX1NUUklORyk7CisJCQlleGl0KDApOworCQlkZWZhdWx0OgorCQkJdXNhZ2UoKTsKKwkJfQorCX0KKworCWlmIChvcHRSZXNldCB8fCBtdWx0KSB7CisJCWludCBtdWx0aXBsaWVyLCBmZCwgdG9fd3JpdGU7CisKKwkJLyoKKwkJICogV2hlbiB3cml0aW5nIHRoZSBtdWx0aXBsaWVyLCBpZiB0aGUgbGVuZ3RoIG9mIHRoZSB3cml0ZSBpcworCQkgKiBub3Qgc2l6ZW9mKGludCksIHRoZSBtdWx0aXBsaWVyIGlzIG5vdCBjaGFuZ2VkCisJCSAqLworCQlpZiAobXVsdCkgeworCQkJbXVsdGlwbGllciA9IHN0cnRvdWwobXVsdCwgMCwgMTApOworCQkJdG9fd3JpdGUgPSBzaXplb2YoaW50KTsKKwkJfSBlbHNlIHsKKwkJCW11bHRpcGxpZXIgPSAwOworCQkJdG9fd3JpdGUgPSAxOwkvKiBzdGggZGlmZmVyZW50IGZyb20gc2l6ZW9mKGludCkgKi8KKwkJfQorCQkvKiB0cnkgdG8gYmVjb21lIHJvb3QsIGp1c3QgaW4gY2FzZSAqLworCQlzZXR1aWQoMCk7CisJCWZkID0gb3BlbihkZWZhdWx0cHJvLE9fV1JPTkxZKTsKKwkJaWYgKGZkIDwgMCkgeworCQkJcGVycm9yKGRlZmF1bHRwcm8pOworCQkJZXhpdCgxKTsKKwkJfQorCQlpZiAod3JpdGUoZmQsICZtdWx0aXBsaWVyLCB0b193cml0ZSkgIT0gdG9fd3JpdGUpIHsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJyZWFkcHJvZmlsZTogZXJyb3Igd3JpdGluZyAlczogJXNcbiIpLAorCQkJCWRlZmF1bHRwcm8sIHN0cmVycm9yKGVycm5vKSk7CisJCQlleGl0KDEpOworCQl9CisJCWNsb3NlKGZkKTsKKwkJZXhpdCgwKTsKKwl9CisKKwkvKgorCSAqIFVzZSBhbiBmZCBmb3IgdGhlIHByb2ZpbGluZyBidWZmZXIsIHRvIHNraXAgc3RkaW8gb3ZlcmhlYWQKKwkgKi8KKwlpZiAoKChwcm9GZD1vcGVuKHByb0ZpbGUsT19SRE9OTFkpKSA8IDApCisJICAgIHx8ICgoaW50KShsZW49bHNlZWsocHJvRmQsMCxTRUVLX0VORCkpIDwgMCkKKwkgICAgfHwgKGxzZWVrKHByb0ZkLDAsU0VFS19TRVQpIDwgMCkpIHsKKwkJZnByaW50ZihzdGRlcnIsIiVzOiAlczogJXNcbiIscHJnbmFtZSxwcm9GaWxlLHN0cmVycm9yKGVycm5vKSk7CisJCWV4aXQoMSk7CisJfQorCisJaWYgKCEoYnVmPW1hbGxvYyhsZW4pKSkgeworCQlmcHJpbnRmKHN0ZGVyciwiJXM6IG1hbGxvYygpOiAlc1xuIiwgcHJnbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJZXhpdCgxKTsKKwl9CisKKwlpZiAocmVhZChwcm9GZCxidWYsbGVuKSAhPSBsZW4pIHsKKwkJZnByaW50ZihzdGRlcnIsIiVzOiAlczogJXNcbiIscHJnbmFtZSxwcm9GaWxlLHN0cmVycm9yKGVycm5vKSk7CisJCWV4aXQoMSk7CisJfQorCWNsb3NlKHByb0ZkKTsKKworCWlmICghb3B0TmF0aXZlKSB7CisJCWludCBlbnRyaWVzID0gbGVuL3NpemVvZigqYnVmKTsKKwkJaW50IGJpZyA9IDAsc21hbGwgPSAwLGk7CisJCXVuc2lnbmVkICpwOworCisJCWZvciAocCA9IGJ1ZisxOyBwIDwgYnVmK2VudHJpZXM7IHArKykgeworCQkJaWYgKCpwICYgfjBVIDw8IChzaXplb2YoKmJ1ZikqNCkpCisJCQkJYmlnKys7CisJCQlpZiAoKnAgJiAoKDEgPDwgKHNpemVvZigqYnVmKSo0KSktMSkpCisJCQkJc21hbGwrKzsKKwkJfQorCQlpZiAoYmlnID4gc21hbGwpIHsKKwkJCWZwcmludGYoc3RkZXJyLF8oIkFzc3VtaW5nIHJldmVyc2VkIGJ5dGUgb3JkZXIuICIKKwkJCQkiVXNlIC1uIHRvIGZvcmNlIG5hdGl2ZSBieXRlIG9yZGVyLlxuIikpOworCQkJZm9yIChwID0gYnVmOyBwIDwgYnVmK2VudHJpZXM7IHArKykKKwkJCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKCpidWYpLzI7IGkrKykgeworCQkJCQl1bnNpZ25lZCBjaGFyICpiID0gKHVuc2lnbmVkIGNoYXIgKikgcDsKKwkJCQkJdW5zaWduZWQgY2hhciB0bXA7CisKKwkJCQkJdG1wID0gYltpXTsKKwkJCQkJYltpXSA9IGJbc2l6ZW9mKCpidWYpLWktMV07CisJCQkJCWJbc2l6ZW9mKCpidWYpLWktMV0gPSB0bXA7CisJCQkJfQorCQl9CisJfQorCisJc3RlcCA9IGJ1ZlswXTsKKwlpZiAob3B0SW5mbykgeworCQlwcmludGYoXygiU2FtcGxpbmdfc3RlcDogJWlcbiIpLCBzdGVwKTsKKwkJZXhpdCgwKTsKKwl9IAorCisJdG90YWwgPSAwOworCisJbWFwID0gbXlvcGVuKG1hcEZpbGUsICJyIiwgJnBvcGVuTWFwKTsKKwlpZiAobWFwID09IE5VTEwgJiYgbWFwRmlsZSA9PSBkZWZhdWx0bWFwKSB7CisJCW1hcEZpbGUgPSBib290X3VuYW1lX3Jfc3RyKCk7CisJCW1hcCA9IG15b3BlbihtYXBGaWxlLCAiciIsICZwb3Blbk1hcCk7CisJfQorCWlmIChtYXAgPT0gTlVMTCkgeworCQlpbnQgZXJyc3YgPSBlcnJubzsKKwkJZnByaW50ZihzdGRlcnIsICIlczogIiwgcHJnbmFtZSk7CisJCWVycm5vID0gZXJyc3Y7CisJCXBlcnJvcihtYXBGaWxlKTsKKwkJZXhpdCgxKTsKKwl9CisKKwl3aGlsZSAoZmdldHMobWFwbGluZSxTX0xFTixtYXApKSB7CisJCWlmIChzc2NhbmYobWFwbGluZSwiJWxseCAlcyAlcyIsJmZuX2FkZCxtb2RlLGZuX25hbWUpICE9IDMpIHsKKwkJCWZwcmludGYoc3RkZXJyLF8oIiVzOiAlcyglaSk6IHdyb25nIG1hcCBsaW5lXG4iKSwKKwkJCQlwcmduYW1lLCBtYXBGaWxlLCBtYXBsaW5lbm8pOworCQkJZXhpdCgxKTsKKwkJfQorCQkvKiBvbmx5IGVsZiB3b3JrcyBsaWtlIHRoaXMgKi8KKwkJaWYgKCFzdHJjbXAoZm5fbmFtZSwiX3N0ZXh0IikgfHwgIXN0cmNtcChmbl9uYW1lLCJfX3N0ZXh0IikpIHsKKwkJCWFkZDAgPSBmbl9hZGQ7CisJCQlicmVhazsKKwkJfQorCQltYXBsaW5lbm8rKzsKKwl9CisKKwlpZiAoIWFkZDApIHsKKwkJZnByaW50ZihzdGRlcnIsXygiJXM6IGNhbid0IGZpbmQgXCJfc3RleHRcIiBpbiAlc1xuIiksCisJCQlwcmduYW1lLCBtYXBGaWxlKTsKKwkJZXhpdCgxKTsKKwl9CisKKwkvKgorCSAqIE1haW4gbG9vcC4KKwkgKi8KKwl3aGlsZSAoZmdldHMobWFwbGluZSxTX0xFTixtYXApKSB7CisJCXVuc2lnbmVkIGludCB0aGlzPTA7CisJCWludCBkb25lID0gMDsKKworCQlpZiAoc3NjYW5mKG1hcGxpbmUsIiVsbHggJXMgJXMiLCZuZXh0X2FkZCxtb2RlLG5leHRfbmFtZSkhPTMpIHsKKwkJCWZwcmludGYoc3RkZXJyLF8oIiVzOiAlcyglaSk6IHdyb25nIG1hcCBsaW5lXG4iKSwKKwkJCQlwcmduYW1lLG1hcEZpbGUsIG1hcGxpbmVubyk7CisJCQlleGl0KDEpOworCQl9CisJCWhlYWRlcl9wcmludGVkID0gMDsKKworCQkvKiB0aGUga2VybmVsIG9ubHkgcHJvZmlsZXMgdXAgdG8gX2V0ZXh0ICovCisJCWlmICghc3RyY21wKG5leHRfbmFtZSwgIl9ldGV4dCIpIHx8CisJCSAgICAhc3RyY21wKG5leHRfbmFtZSwgIl9fZXRleHQiKSkKKwkJCWRvbmUgPSAxOworCQllbHNlIHsKKwkJCS8qIGlnbm9yZSBhbnkgTEVBRElORyAoYmVmb3JlIGEgJ1t0VF0nIHN5bWJvbCBpcyBmb3VuZCkKKwkJCSAgIEFic29sdXRlIHN5bWJvbHMgKi8KKwkJCWlmICgoKm1vZGUgPT0gJ0EnIHx8ICptb2RlID09ICc/JykgJiYgdG90YWwgPT0gMCkKKwkJCQljb250aW51ZTsKKwkJCWlmICgqbW9kZSAhPSAnVCcgJiYgKm1vZGUgIT0gJ3QnICYmCisJCQkgICAgKm1vZGUgIT0gJ1cnICYmICptb2RlICE9ICd3JykKKwkJCQlicmVhazsJLyogb25seSB0ZXh0IGlzIHByb2ZpbGVkICovCisJCX0KKworCQlpZiAoaW5keCA+PSBsZW4gLyBzaXplb2YoKmJ1ZikpIHsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogcHJvZmlsZSBhZGRyZXNzIG91dCBvZiByYW5nZS4gIgorCQkJCQkgICJXcm9uZyBtYXAgZmlsZT9cbiIpLCBwcmduYW1lKTsKKwkJCWV4aXQoMSk7CisJCX0KKworCQl3aGlsZSAoaW5keCA8IChuZXh0X2FkZC1hZGQwKS9zdGVwKSB7CisJCQlpZiAob3B0QmlucyAmJiAoYnVmW2luZHhdIHx8IG9wdEFsbCkpIHsKKwkJCQlpZiAoIWhlYWRlcl9wcmludGVkKSB7CisJCQkJCXByaW50ZiAoIiVzOlxuIiwgZm5fbmFtZSk7CisJCQkJCWhlYWRlcl9wcmludGVkID0gMTsKKwkJCQl9CisJCQkJcHJpbnRmICgiXHQlbGx4XHQldVxuIiwgKGluZHggLSAxKSpzdGVwICsgYWRkMCwgYnVmW2luZHhdKTsKKwkJCX0KKwkJCXRoaXMgKz0gYnVmW2luZHgrK107CisJCX0KKwkJdG90YWwgKz0gdGhpczsKKworCQlpZiAob3B0QmlucykgeworCQkJaWYgKG9wdFZlcmJvc2UgfHwgdGhpcyA+IDApCisJCQkJcHJpbnRmICgiICB0b3RhbFx0XHRcdFx0JXVcbiIsIHRoaXMpOworCQl9IGVsc2UgaWYgKCh0aGlzIHx8IG9wdEFsbCkgJiYKKwkJCSAgIChmbl9sZW4gPSBuZXh0X2FkZC1mbl9hZGQpICE9IDApIHsKKwkJCWlmIChvcHRWZXJib3NlKQorCQkJCXByaW50ZigiJTAxNmxseCAlLTQwcyAlNmkgJTguNGZcbiIsIGZuX2FkZCwKKwkJCQkgICAgICAgZm5fbmFtZSx0aGlzLHRoaXMvKGRvdWJsZSlmbl9sZW4pOworCQkJZWxzZQorCQkJCXByaW50ZigiJTZpICUtNDBzICU4LjRmXG4iLAorCQkJCSAgICAgICB0aGlzLGZuX25hbWUsdGhpcy8oZG91YmxlKWZuX2xlbik7CisJCQlpZiAob3B0U3ViKSB7CisJCQkJdW5zaWduZWQgbG9uZyBsb25nIHNjYW47CisKKwkJCQlmb3IgKHNjYW4gPSAoZm5fYWRkLWFkZDApL3N0ZXAgKyAxOworCQkJCSAgICAgc2NhbiA8IChuZXh0X2FkZC1hZGQwKS9zdGVwOyBzY2FuKyspIHsKKwkJCQkJdW5zaWduZWQgbG9uZyBsb25nIGFkZHI7CisKKwkJCQkJYWRkciA9IChzY2FuIC0gMSkqc3RlcCArIGFkZDA7CisJCQkJCXByaW50ZigiXHQlI2xseFx0JXMrJSNsbHhcdCV1XG4iLAorCQkJCQkgICAgICAgYWRkciwgZm5fbmFtZSwgYWRkciAtIGZuX2FkZCwKKwkJCQkJICAgICAgIGJ1ZltzY2FuXSk7CisJCQkJfQorCQkJfQorCQl9CisKKwkJZm5fYWRkID0gbmV4dF9hZGQ7CisJCXN0cmNweShmbl9uYW1lLG5leHRfbmFtZSk7CisKKwkJbWFwbGluZW5vKys7CisJCWlmIChkb25lKQorCQkJYnJlYWs7CisJfQorCisJLyogY2xvY2sgdGlja3MsIG91dCBvZiBrZXJuZWwgdGV4dCAtIHByb2JhYmx5IG1vZHVsZXMgKi8KKwlwcmludGYoIiU2aSAlc1xuIiwgYnVmW2xlbi9zaXplb2YoKmJ1ZiktMV0sICIqdW5rbm93bioiKTsKKworCS8qIHRyYWlsZXIgKi8KKwlpZiAob3B0VmVyYm9zZSkKKwkJcHJpbnRmKCIlMDE2eCAlLTQwcyAlNmkgJTguNGZcbiIsCisJCSAgICAgICAwLCJ0b3RhbCIsdG90YWwsdG90YWwvKGRvdWJsZSkoZm5fYWRkLWFkZDApKTsKKwllbHNlCisJCXByaW50ZigiJTZpICUtNDBzICU4LjRmXG4iLAorCQkgICAgICAgdG90YWwsXygidG90YWwiKSx0b3RhbC8oZG91YmxlKShmbl9hZGQtYWRkMCkpOworCQorCXBvcGVuTWFwID8gcGNsb3NlKG1hcCkgOiBmY2xvc2UobWFwKTsKKwlleGl0KDApOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3JlbmljZS4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3JlbmljZS4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ODU0NTQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcmVuaWNlLjEKQEAgLTAsMCArMSwxNTAgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5ODMsIDE5OTEsIDE5OTMKKy5cIglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy5cIgorLlwiIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLlwiIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLlwiIGFyZSBtZXQ6CisuXCIgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKy5cIiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisuXCIJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorLlwiCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorLlwiIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisuXCIgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisuXCIgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisuXCIKKy5cIiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorLlwiIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLlwiIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisuXCIgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisuXCIgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKy5cIiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworLlwiIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorLlwiIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisuXCIgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorLlwiIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKy5cIiBTVUNIIERBTUFHRS4KKy5cIgorLlwiICAgICBAKCMpcmVuaWNlLjggICA4LjEgKEJlcmtlbGV5KSA2LzkvOTMKKy5cIgorLkRkIEp1bmUgOSwgMTk5MworLkR0IFJFTklDRSAxCisuT3MgQlNEIDQKKy5TaCBOQU1FCisuTm0gcmVuaWNlCisuTmQgYWx0ZXIgcHJpb3JpdHkgb2YgcnVubmluZyBwcm9jZXNzZXMKKy5TaCBTWU5PUFNJUworLk5tIHJlbmljZQorLk9wIEZsIG4KKy5BciBwcmlvcml0eQorLk9vCisuT3AgRmwgcAorLkFyIHBpZCAuLi4KKy5PYworLk9vCisuT3AgRmwgZworLkFyIHBncnAgLi4uCisuT2MKKy5PbworLk9wIEZsIHUKKy5BciB1c2VyIC4uLgorLk9jCisuTm0gcmVuaWNlCisuRmwgaCB8IEZsIHYKKy5TaCBERVNDUklQVElPTgorLk5tIFJlbmljZQorYWx0ZXJzIHRoZQorc2NoZWR1bGluZyBwcmlvcml0eSBvZiBvbmUgb3IgbW9yZSBydW5uaW5nIHByb2Nlc3Nlcy4KK1RoZSBmb2xsb3dpbmcKKy5BciB3aG8KK3BhcmFtZXRlcnMgYXJlIGludGVycHJldGVkIGFzIHByb2Nlc3MgSUQncywgcHJvY2VzcyBncm91cAorSUQncywgb3IgdXNlciBuYW1lcy4KKy5ObSBSZW5pY2UgTnMgJ2luZworYSBwcm9jZXNzIGdyb3VwIGNhdXNlcyBhbGwgcHJvY2Vzc2VzIGluIHRoZSBwcm9jZXNzIGdyb3VwCit0byBoYXZlIHRoZWlyIHNjaGVkdWxpbmcgcHJpb3JpdHkgYWx0ZXJlZC4KKy5ObSBSZW5pY2UgTnMgJ2luZworYSB1c2VyIGNhdXNlcyBhbGwgcHJvY2Vzc2VzIG93bmVkIGJ5IHRoZSB1c2VyIHRvIGhhdmUKK3RoZWlyIHNjaGVkdWxpbmcgcHJpb3JpdHkgYWx0ZXJlZC4KK0J5IGRlZmF1bHQsIHRoZSBwcm9jZXNzZXMgdG8gYmUgYWZmZWN0ZWQgYXJlIHNwZWNpZmllZCBieQordGhlaXIgcHJvY2VzcyBJRCdzLgorLlBwCitPcHRpb25zIHN1cHBvcnRlZCBieQorLk5tIHJlbmljZSA6CisuQmwgLXRhZyAtd2lkdGggRHMKKy5JdCBGbCBuLCBGbCBGbCBwcmlvcml0eQorVGhlIHNjaGVkdWxpbmcKKy5BciBwcmlvcml0eQorb2YgdGhlIHByb2Nlc3MsIHByb2Nlc3MgZ3JvdXAsIG9yIHVzZXIuCisuSXQgRmwgZywgRmwgRmwgcGdycAorRm9yY2UKKy5BciB3aG8KK3BhcmFtZXRlcnMgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgcHJvY2VzcyBncm91cCBJRCdzLgorLkl0IEZsIHUsIEZsIEZsIHVzZXIKK0ZvcmNlIHRoZQorLkFyIHdobworcGFyYW1ldGVycyB0byBiZSBpbnRlcnByZXRlZCBhcyB1c2VyIG5hbWVzLgorLkl0IEZsIHAsIEZsIEZsIHBpZAorUmVzZXRzIHRoZQorLkFyIHdobworaW50ZXJwcmV0YXRpb24gdG8gYmUgKHRoZSBkZWZhdWx0KSBwcm9jZXNzIElEJ3MuCisuSXQgRmwgdiwgRmwgRmwgdmVyc2lvbgorUHJpbnQgdmVyc2lvbi4KKy5JdCBGbCBoLCBGbCBGbCBoZWxwCitQcmludCBoZWxwLgorLkVsCisuUHAKK0ZvciBleGFtcGxlLAorLkJkIC1saXRlcmFsIC1vZmZzZXQKK3JlbmljZSArMSA5ODcgLXUgZGFlbW9uIHJvb3QgLXAgMzIKKy5FZAorLlBwCit3b3VsZCBjaGFuZ2UgdGhlIHByaW9yaXR5IG9mIHByb2Nlc3MgSUQncyA5ODcgYW5kIDMyLCBhbmQKK2FsbCBwcm9jZXNzZXMgb3duZWQgYnkgdXNlcnMgZGFlbW9uIGFuZCByb290LgorLlBwCitVc2VycyBvdGhlciB0aGFuIHRoZSBzdXBlci11c2VyIG1heSBvbmx5IGFsdGVyIHRoZSBwcmlvcml0eSBvZgorcHJvY2Vzc2VzIHRoZXkgb3duLAorYW5kIGNhbiBvbmx5IG1vbm90b25pY2FsbHkgaW5jcmVhc2UgdGhlaXIgYGBuaWNlIHZhbHVlJycKK3dpdGhpbiB0aGUgcmFuZ2UgMCB0bworLkR2IFBSSU9fTUFYCisoMjApLgorKFRoaXMgcHJldmVudHMgb3ZlcnJpZGluZyBhZG1pbmlzdHJhdGl2ZSBmaWF0cy4pCitUaGUgc3VwZXItdXNlcgorbWF5IGFsdGVyIHRoZSBwcmlvcml0eSBvZiBhbnkgcHJvY2VzcworYW5kIHNldCB0aGUgcHJpb3JpdHkgdG8gYW55IHZhbHVlIGluIHRoZSByYW5nZQorLkR2IFBSSU9fTUlOCisoXC0yMCkKK3RvCisuRHYgUFJJT19NQVggLgorVXNlZnVsIHByaW9yaXRpZXMgYXJlOgorMjAgKHRoZSBhZmZlY3RlZCBwcm9jZXNzZXMgd2lsbCBydW4gb25seSB3aGVuIG5vdGhpbmcgZWxzZQoraW4gdGhlIHN5c3RlbSB3YW50cyB0byksCiswICh0aGUgYGBiYXNlJycgc2NoZWR1bGluZyBwcmlvcml0eSksCithbnl0aGluZyBuZWdhdGl2ZSAodG8gbWFrZSB0aGluZ3MgZ28gdmVyeSBmYXN0KS4KKy5TaCBGSUxFUworLkJsIC10YWcgLXdpZHRoIC9ldGMvcGFzc3dkIC1jb21wYWN0CisuSXQgUGEgL2V0Yy9wYXNzd2QKK3RvIG1hcCB1c2VyIG5hbWVzIHRvIHVzZXIgSUQncworLkVsCisuU2ggU0VFIEFMU08KKy5YciBnZXRwcmlvcml0eSAyICwKKy5YciBzZXRwcmlvcml0eSAyCisuU2ggQlVHUworTm9uIHN1cGVyLXVzZXJzIGNhbiBub3QgaW5jcmVhc2Ugc2NoZWR1bGluZyBwcmlvcml0aWVzIG9mIHRoZWlyIG93biBwcm9jZXNzZXMsCitldmVuIGlmIHRoZXkgd2VyZSB0aGUgb25lcyB0aGF0IGRlY3JlYXNlZCB0aGUgcHJpb3JpdGllcyBpbiB0aGUgZmlyc3QgcGxhY2UuCisuYnIKK1RoZSBMaW51eCBrZXJuZWwgKGF0IGxlYXN0IHZlcnNpb24gMi4wLjApIGFuZCBsaW51eCBsaWJjIChhdCBsZWFzdAordmVyc2lvbiA1LjIuMTgpIGRvZXMgbm90IGFncmVlIGVudGlyZWx5IG9uIHdoYXQgdGhlIHNwZWNpZmljcyBvZiB0aGUKK3N5c3RlbWNhbGwgaW50ZXJmYWNlIHRvIHNldCBuaWNlIHZhbHVlcyBpcy4gIFRodXMgY2F1c2VzIHJlbmljZSB0bworcmVwb3J0IGJvZ3VzIHByZXZpb3VzIG5pY2UgdmFsdWVzLgorLlNoIEhJU1RPUlkKK1RoZQorLk5tCitjb21tYW5kIGFwcGVhcmVkIGluCisuQnggNC4wIC4KKy5TaCBBVkFJTEFCSUxJVFkKK1RoZSByZW5pY2UgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcmVuaWNlLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcmVuaWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc5ZThiZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9yZW5pY2UuYwpAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk4MywgMTk4OSwgMTk5MworICoJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKyAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKyAqCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisgLyogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8cHdkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlICJubHMuaCIKKworaW50IGRvbmljZShpbnQsaW50LGludCk7CisKK3ZvaWQgdXNhZ2UoaW50IHJjKQoreworCXByaW50ZiggXygiXG5Vc2FnZTpcbiIKKwkJIiByZW5pY2UgWy1uXSBwcmlvcml0eSBbLXB8LS1waWRdIHBpZCAgWy4uLiBwaWRdXG4iCisJCSIgcmVuaWNlIFstbl0gcHJpb3JpdHkgIC1nfC0tcGdycCBwZ3JwIFsuLi4gcGdycF1cbiIKKwkJIiByZW5pY2UgWy1uXSBwcmlvcml0eSAgLXV8LS11c2VyIHVzZXIgWy4uLiB1c2VyXVxuIgorCQkiIHJlbmljZSAtaCB8IC0taGVscFxuIgorCQkiIHJlbmljZSAtdiB8IC0tdmVyc2lvblxuXG4iKSk7CisKKwlleGl0KHJjKTsKK30KKworLyoKKyAqIENoYW5nZSB0aGUgcHJpb3JpdHkgKG5pY2UpIG9mIHByb2Nlc3NlcworICogb3IgZ3JvdXBzIG9mIHByb2Nlc3NlcyB3aGljaCBhcmUgYWxyZWFkeQorICogcnVubmluZy4KKyAqLworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlpbnQgd2hpY2ggPSBQUklPX1BST0NFU1M7CisJaW50IHdobyA9IDAsIHByaW8sIGVycnMgPSAwOworCWNoYXIgKmVuZHB0ciA9IE5VTEw7CisKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisJYXJnYy0tOworCWFyZ3YrKzsKKworCWlmIChhcmdjID09IDEpIHsKKwkJaWYgKHN0cmNtcCgqYXJndiwgIi1oIikgPT0gMCB8fAorCQkgICAgc3RyY21wKCphcmd2LCAiLS1oZWxwIikgPT0gMCkKKwkJCXVzYWdlKEVYSVRfU1VDQ0VTUyk7CisKKwkJaWYgKHN0cmNtcCgqYXJndiwgIi12IikgPT0gMCB8fAorCQkgICAgc3RyY21wKCphcmd2LCAiLS12ZXJzaW9uIikgPT0gMCkgeworCQkJcHJpbnRmKF8oInJlbmljZSBmcm9tICVzXG4iKSwgUEFDS0FHRV9TVFJJTkcpOworCQkJZXhpdChFWElUX1NVQ0NFU1MpOworCQl9CisJfQorCisJaWYgKGFyZ2MgPCAyKQorCQl1c2FnZShFWElUX0ZBSUxVUkUpOworCisJaWYgKHN0cmNtcCgqYXJndiwgIi1uIikgPT0gMCB8fCBzdHJjbXAoKmFyZ3YsICItLXByaW9yaXR5IikgPT0gMCkgeworCQlhcmdjLS07CisJCWFyZ3YrKzsKKwl9CisKKwlwcmlvID0gc3RydG9sKCphcmd2LCAmZW5kcHRyLCAxMCk7CisJaWYgKCplbmRwdHIpCisJCXVzYWdlKEVYSVRfRkFJTFVSRSk7CisKKwlhcmdjLS07CisJYXJndisrOworCisJZm9yICg7IGFyZ2MgPiAwOyBhcmdjLS0sIGFyZ3YrKykgeworCQlpZiAoc3RyY21wKCphcmd2LCAiLWciKSA9PSAwIHx8IHN0cmNtcCgqYXJndiwgIi0tcGdycCIpID09IDApIHsKKwkJCXdoaWNoID0gUFJJT19QR1JQOworCQkJY29udGludWU7CisJCX0KKwkJaWYgKHN0cmNtcCgqYXJndiwgIi11IikgPT0gMCB8fCBzdHJjbXAoKmFyZ3YsICItLXVzZXIiKSA9PSAwKSB7CisJCQl3aGljaCA9IFBSSU9fVVNFUjsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmIChzdHJjbXAoKmFyZ3YsICItcCIpID09IDAgfHwgc3RyY21wKCphcmd2LCAiLS1waWQiKSA9PSAwKSB7CisJCQl3aGljaCA9IFBSSU9fUFJPQ0VTUzsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICh3aGljaCA9PSBQUklPX1VTRVIpIHsKKwkJCXJlZ2lzdGVyIHN0cnVjdCBwYXNzd2QgKnB3ZCA9IGdldHB3bmFtKCphcmd2KTsKKworCQkJaWYgKHB3ZCA9PSBOVUxMKSB7CisJCQkJZnByaW50ZihzdGRlcnIsIF8oInJlbmljZTogJXM6IHVua25vd24gdXNlclxuIiksCisJCQkJCSphcmd2KTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCXdobyA9IHB3ZC0+cHdfdWlkOworCQl9IGVsc2UgeworCQkJd2hvID0gc3RydG9sKCphcmd2LCAmZW5kcHRyLCAxMCk7CisJCQlpZiAod2hvIDwgMCB8fCAqZW5kcHRyKSB7CisJCQkJZnByaW50ZihzdGRlcnIsIF8oInJlbmljZTogJXM6IGJhZCB2YWx1ZVxuIiksCisJCQkJCSphcmd2KTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCQllcnJzICs9IGRvbmljZSh3aGljaCwgd2hvLCBwcmlvKTsKKwl9CisJcmV0dXJuIGVycnMgIT0gMCA/IEVYSVRfRkFJTFVSRSA6IEVYSVRfU1VDQ0VTUzsKK30KKworaW50Citkb25pY2UoaW50IHdoaWNoLCBpbnQgd2hvLCBpbnQgcHJpbykgeworCWludCBvbGRwcmlvLCBuZXdwcmlvOworCisJZXJybm8gPSAwOworCW9sZHByaW8gPSBnZXRwcmlvcml0eSh3aGljaCwgd2hvKTsKKwlpZiAob2xkcHJpbyA9PSAtMSAmJiBlcnJubykgeworCQlmcHJpbnRmKHN0ZGVyciwgInJlbmljZTogJWQ6ICIsIHdobyk7CisJCXBlcnJvcihfKCJnZXRwcmlvcml0eSIpKTsKKwkJcmV0dXJuIDE7CisJfQorCWlmIChzZXRwcmlvcml0eSh3aGljaCwgd2hvLCBwcmlvKSA8IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICJyZW5pY2U6ICVkOiAiLCB3aG8pOworCQlwZXJyb3IoXygic2V0cHJpb3JpdHkiKSk7CisJCXJldHVybiAxOworCX0KKwllcnJubyA9IDA7CisJbmV3cHJpbyA9IGdldHByaW9yaXR5KHdoaWNoLCB3aG8pOworCWlmIChuZXdwcmlvID09IC0xICYmIGVycm5vKSB7CisJCWZwcmludGYoc3RkZXJyLCAicmVuaWNlOiAlZDogIiwgd2hvKTsKKwkJcGVycm9yKF8oImdldHByaW9yaXR5IikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlwcmludGYoXygiJWQ6IG9sZCBwcmlvcml0eSAlZCwgbmV3IHByaW9yaXR5ICVkXG4iKSwKKwkgICAgICAgd2hvLCBvbGRwcmlvLCBuZXdwcmlvKTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9ydGN3YWtlLjggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcnRjd2FrZS44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5OWI2NzgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcnRjd2FrZS44CkBAIC0wLDAgKzEsMTM1IEBACisuXCIgQ29weXJpZ2h0IChjKSAyMDA3LCBTVVNFIExJTlVYIFByb2R1Y3RzIEdtYkgKKy5cIiAgICAgICAgICAgICAgICAgICAgIEJlcm5oYXJkIFdhbGxlIDxid2FsbGVAc3VzZS5kZT4KKy5cIgorLlwiIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKy5cIiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLlwiIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisuXCIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisuXCIKKy5cIiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy5cIiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLlwiIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy5cIiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLlwiCisuXCIgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy5cIiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorLlwiIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKy5cIiAwMjExMC0xMzAxLCBVU0EuCisuXCIKKy5USCBydGN3YWtlIDggIjIwMDctMDctMTMiICIiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK3J0Y3dha2UgLSBlbnRlciBhIHN5c3RlbSBzbGVlcCBzdGF0ZSB1bnRpbCBzcGVjaWZpZWQgd2FrZXVwIHRpbWUKKy5TSCBTWU5PUFNJUworLkIgcnRjd2FrZQorLlJCIFsgXC1odlZsdWEgXQorLlJCIFsgXC1kCisuSVIgZGV2aWNlIF0KKy5SQiBbIFwtbQorLklSIHN0YW5kYnlfbW9kZSBdCisuUkIgeyAiXC10IFxmSXRpbWVfdFxmUCIgfCAiXC1zIFxmSXNlY29uZHNcZlAiIH0KKy5TSCBERVNDUklQVElPTgorVGhpcyBwcm9ncmFtIGlzIHVzZWQgdG8gZW50ZXIgYSBzeXN0ZW0gc2xlZXAgc3RhdGUgdW50aWwgc3BlY2lmaWVkIHdha2V1cCB0aW1lLgorLlBQCitUaGlzIHVzZXMgY3Jvc3MtcGxhdGZvcm0gTGludXggaW50ZXJmYWNlcyB0byBlbnRlciBhIHN5c3RlbSBzbGVlcCBzdGF0ZSwgYW5kCitsZWF2ZSBpdCBubyBsYXRlciB0aGFuIGEgc3BlY2lmaWVkIHRpbWUuICBJdCB1c2VzIGFueSBSVEMgZnJhbWV3b3JrIGRyaXZlciB0aGF0CitzdXBwb3J0cyBzdGFuZGFyZCBkcml2ZXIgbW9kZWwgd2FrZXVwIGZsYWdzLgorLlBQCitUaGlzIGlzIG5vcm1hbGx5IHVzZWQgbGlrZSB0aGUgb2xkIFxmQmFwbXNsZWVwXGZQIHV0aWxpdHksIHRvIHdha2UgZnJvbSBhIHN1c3BlbmQKK3N0YXRlIGxpa2UgQUNQSSBTMSAoc3RhbmRieSkgb3IgUzMgKHN1c3BlbmQtdG8tUkFNKS4gIE1vc3QgcGxhdGZvcm1zIGNhbgoraW1wbGVtZW50IHRob3NlIHdpdGhvdXQgYW5hbG9ndWVzIG9mIEJJT1MsIEFQTSwgb3IgQUNQSS4KKy5QCitPbiBzb21lIHN5c3RlbXMsIHRoaXMgY2FuIGFsc28gYmUgdXNlZCBsaWtlIFxmQm52cmFtLXdha2V1cFxmUCwgd2FraW5nIGZyb20gc3RhdGVzCitsaWtlIEFDUEkgUzQgKHN1c3BlbmQgdG8gZGlzaykuICBOb3QgYWxsIHN5c3RlbXMgaGF2ZSBwZXJzaXN0ZW50IG1lZGlhIHRoYXQgYXJlCithcHByb3ByaWF0ZSBmb3Igc3VjaCBzdXNwZW5kIG1vZGVzLgorLlNTIE9wdGlvbnMKKy5UUAorXGZCLXZcZlAgfCBcZkItLXZlcmJvc2VcZlAKK0JlIHZlcmJvc2UuCisuVFAKK1xmQi1oXGZQIHwgXGZCLS1oZWxwXGZQCitEaXNwbGF5IGEgc2hvcnQgaGVscCBtZXNzYWdlIHRoYXQgc2hvd3MgaG93IHRvIHVzZSB0aGUgcHJvZ3JhbS4KKy5UUAorXGZCLVZcZlAgfCBcZkItLXZlcnNpb25cZlAKK0Rpc3BsYXlzIHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXN0cy4KKy5UUAorXGZCLWFcZlAgfCBcZkItLWF1dG9cZlAKK1JlYWRzIHRoZSBjbG9jayBtb2RlICh3aGV0aGVyIHRoZSBoYXJkd2FyZSBjbG9jayBpcyBzZXQgdG8gVVRDIG9yIGxvY2FsIHRpbWUpCitmcm9tIFxmSS9ldGMvYWRqdGltZVxmUC4gVGhhdCdzIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUKKy5CUiBod2Nsb2NrICg4KQorc3RvcmVzIHRoYXQgaW5mb3JtYXRpb24uCisuVFAKK1xmQi1sXGZQIHwgXGZCLS1sb2NhbFxmUAorQXNzdW1lcyB0aGF0IHRoZSBoYXJkd2FyZSBjbG9jayBpcyBzZXQgdG8gbG9jYWwgdGltZSwgcmVnYXJkbGVzcyBvZiB0aGUKK2NvbnRlbnRzIG9mIFxmSS9ldGMvYWRqdGltZVxmUC4KKy5UUAorXGZCLXVcZlAgfCBcZkItLXV0Y1xmUAorQXNzdW1lcyB0aGF0IHRoZSBoYXJkd2FyZSBjbG9jayBpcyBzZXQgdG8gVVRDIChVbml2ZXJzYWwgVGltZSBDb29yZGluYXRlZCksCityZWdhcmRsZXNzIG9mIHRoZSBjb250ZW50cyBvZiBcZkkvZXRjL2FkanRpbWVcZlAuCisuVFAKK1xmQi1kXGZQIFxmSWRldmljZVxmUCB8IFxmQi0tZGV2aWNlXGZQIFxmSWRldmljZVxmUAorVXNlcyBcZklkZXZpY2VcZlAgaW5zdGVhZCBvZiBcZklydGMwXGZQIGFzIHJlYWx0aW1lIGNsb2NrLiBUaGlzIG9wdGlvbgoraXMgb25seSByZWxldmFudCBpZiB5b3VyIHN5c3RlbSBoYXMgbW9yZSB0aGFuIG9uZSBSVEMuIFlvdSBtYXkgc3BlY2lmeQorXGZJcnRjMVxmUCwgXGZJcnRjMlxmUCwgLi4uIGhlcmUuCisuVFAKK1xmQi1zXGZQIFxmSXNlY29uZHNcZlAgfCBcZkItLXNlY29uZHNcZlAgXGZJc2Vjb25kc1xmUAorU2V0cyB0aGUgd2FrZXVwIHRpbWUgdG8gXGZJc2Vjb25kc1xmUCBpbiBmdXR1cmUgZnJvbSBub3cuCisuVFAKK1xmQi10XGZQIFxmSXRpbWVfdFxmUCB8IFxmQi0tdGltZVxmUCBcZkl0aW1lX3RcZlAKK1NldHMgdGhlIHdha2V1cCB0aW1lIHRvIHRoZSBhYnNvbHV0ZSB0aW1lIFxmSXRpbWVfdFxmUC4gXGZJdGltZV90XGZQCitpcyB0aGUgdGltZSBpbiBzZWNvbmRzIHNpbmNlIDE5NzAtMDEtMDEsIDAwOjAwIFVUQy4gVXNlIHRoZQorLkJSIGRhdGUgKDEpCit0b29sIHRvIGNvbnZlcnQgYmV0d2VlbiBodW1hbi1yZWFkYWJsZSB0aW1lIGFuZCBcZkl0aW1lX3RcZlAuCisuVFAKK1xmQi1tXGZQIFxmSW1vZGVcZlAgfCBcZkItLW1vZGVcZlAgXGZJbW9kZVxmUAorVXNlIHN0YW5kYnkgc3RhdGUgXGZJbW9kZVxmUC4gVmFsaWQgdmFsdWVzIGFyZToKKy5SUworLlRQCisuQiBzdGFuZGJ5CitBQ1BJIHN0YXRlIFMxLiBUaGlzIHN0YXRlIG9mZmVycyBtaW5pbWFsLCB0aG91Z2ggcmVhbCwgcG93ZXIgc2F2aW5ncywgd2hpbGUKK3Byb3ZpZGluZyBhIHZlcnkgbG93LWxhdGVuY3kgdHJhbnNpdGlvbiBiYWNrIHRvIGEgd29ya2luZyBzeXN0ZW0uIFRoaXMgaXMgdGhlCitkZWZhdWx0IG1vZGUuCisuVFAKKy5CIG1lbQorQUNQSSBzdGF0ZSBTMyAoU3VzcGVuZC10by1SQU0pLiBUaGlzIHN0YXRlIG9mZmVycyBzaWduaWZpY2FudCBwb3dlciBzYXZpbmdzIGFzCitldmVyeXRoaW5nIGluIHRoZSBzeXN0ZW0gaXMgcHV0IGludG8gYSBsb3ctcG93ZXIgc3RhdGUsIGV4Y2VwdCBmb3IgbWVtb3J5LAord2hpY2ggaXMgcGxhY2VkIGluIHNlbGYtcmVmcmVzaCBtb2RlIHRvIHJldGFpbiBpdHMgY29udGVudHMuCisuVFAKKy5CIGRpc2sKK0FDUEkgc3RhdGUgUzQgKFN1c3BlbmQtdG8tZGlzaykuIFRoaXMgc3RhdGUgb2ZmZXJzIHRoZSBncmVhdGVzdCBwb3dlciBzYXZpbmdzLAorYW5kIGNhbiBiZSB1c2VkIGV2ZW4gaW4gdGhlIGFic2VuY2Ugb2YgbG93LWxldmVsIHBsYXRmb3JtIHN1cHBvcnQgZm9yIHBvd2VyCittYW5hZ2VtZW50LiBUaGlzIHN0YXRlIG9wZXJhdGVzIHNpbWlsYXJseSB0byBTdXNwZW5kLXRvLVJBTSwgYnV0IGluY2x1ZGVzIGEKK2ZpbmFsIHN0ZXAgb2Ygd3JpdGluZyBtZW1vcnkgY29udGVudHMgdG8gZGlzay4KKy5UUAorLkIgb2ZmCitBQ1BJIHN0YXRlIFM1IChQb3dlcm9mZikuIFRoaXMgaXMgZG9uZSBieSBjYWxsaW5nICcvc2Jpbi9zaHV0ZG93bicuCitOb3Qgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgQUNQSSwgYnV0IHVzdWFsbHkgd29ya2luZy4KKy5UUAorLkIgbm8KK0Rvbid0IHN1c3BlbmQuIFRoZSBydGN3YWtlIGNvbW1hbmQgc2V0cyBSVEMgd2FrZXVwIHRpbWUgb25seS4KKy5UUAorLkIgb24KK0Rvbid0IHN1c3BlbmQsIGJ1dCByZWFkIFJUQyBkZXZpY2UgdW50aWwgYWxhcm0gdGltZSBhcHBlYXJzLiBUaGlzIG1vZGUgaXMKK3VzZWZ1bCBmb3IgZGVidWdnaW5nLgorLlJFCisuUFAKKy5TSCBOT1RFUworU29tZSBQQyBzeXN0ZW1zIGNhbid0IGN1cnJlbnRseSBleGl0IHNsZWVwIHN0YXRlcyBzdWNoIGFzIFxmSW1lbVxmUAordXNpbmcgb25seSB0aGUga2VybmVsIGNvZGUgYWNjZXNzZWQgYnkgdGhpcyBkcml2ZXIuCitUaGV5IG5lZWQgaGVscCBmcm9tIHVzZXJzcGFjZSBjb2RlIHRvIG1ha2UgdGhlIGZyYW1lYnVmZmVyIHdvcmsgYWdhaW4uCisuU0ggSElTVE9SWQorVGhlIHByb2dyYW0gd2FzIHBvc3RlZCBzZXZlcmFsIHRpbWVzIG9uIExLTUwgYW5kIG90aGVyIGxpc3RzCitiZWZvcmUgYXBwZWFyaW5nIGluIGtlcm5lbCBjb21taXQgbWVzc2FnZSBmb3IgTGludXggMi42IGluIHRoZSBHSVQKK2NvbW1pdCA4N2FjODRmNDJhN2E1ODBkMGRkNzJhZTMxZDZhNWViNGJmZTA0YzZkLgorLlNIIEFWQUlMQUJJTElUWQorVGhlIHJ0Y3dha2UgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCisuU0ggQVVUSE9SCitUaGUgcHJvZ3JhbSB3YXMgd3JpdHRlbiBieSBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK2FuZCBpbXByb3ZlZCBieSBCZXJuaGFyZCBXYWxsZSA8YndhbGxlQHN1c2UuZGU+LgorLlNIIENPUFlSSUdIVAorVGhpcyBpcyBmcmVlIHNvZnR3YXJlLiAgWW91IG1heSByZWRpc3RyaWJ1dGUgY29waWVzIG9mIGl0ICB1bmRlciAgdGhlICB0ZXJtcworb2YgIHRoZSAgR05VIEdlbmVyYWwgIFB1YmxpYyAgTGljZW5zZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPi4KK1RoZXJlIGlzIE5PIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuCisuU0ggIlNFRSBBTFNPIgorLkJSIGh3Y2xvY2sgKDgpLAorLkJSIGRhdGUgKDEpCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvcnRjd2FrZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3J0Y3dha2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjJkZjI2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3J0Y3dha2UuYwpAQCAtMCwwICsxLDUxMCBAQAorLyoKKyAqIHJ0Y3dha2UgLS0gZW50ZXIgYSBzeXN0ZW0gc2xlZXAgc3RhdGUgdW50aWwgc3BlY2lmaWVkIHdha2V1cCB0aW1lLgorICoKKyAqIFRoaXMgdXNlcyBjcm9zcy1wbGF0Zm9ybSBMaW51eCBpbnRlcmZhY2VzIHRvIGVudGVyIGEgc3lzdGVtIHNsZWVwIHN0YXRlLAorICogYW5kIGxlYXZlIGl0IG5vIGxhdGVyIHRoYW4gYSBzcGVjaWZpZWQgdGltZS4gIEl0IHVzZXMgYW55IFJUQyBmcmFtZXdvcmsKKyAqIGRyaXZlciB0aGF0IHN1cHBvcnRzIHN0YW5kYXJkIGRyaXZlciBtb2RlbCB3YWtldXAgZmxhZ3MuCisgKgorICogVGhpcyBpcyBub3JtYWxseSB1c2VkIGxpa2UgdGhlIG9sZCAiYXBtc2xlZXAiIHV0aWxpdHksIHRvIHdha2UgZnJvbSBhCisgKiBzdXNwZW5kIHN0YXRlIGxpa2UgQUNQSSBTMSAoc3RhbmRieSkgb3IgUzMgKHN1c3BlbmQtdG8tUkFNKS4gIE1vc3QKKyAqIHBsYXRmb3JtcyBjYW4gaW1wbGVtZW50IHRob3NlIHdpdGhvdXQgYW5hbG9ndWVzIG9mIEJJT1MsIEFQTSwgb3IgQUNQSS4KKyAqCisgKiBPbiBzb21lIHN5c3RlbXMsIHRoaXMgY2FuIGFsc28gYmUgdXNlZCBsaWtlICJudnJhbS13YWtldXAiLCB3YWtpbmcKKyAqIGZyb20gc3RhdGVzIGxpa2UgQUNQSSBTNCAoc3VzcGVuZCB0byBkaXNrKS4gIE5vdCBhbGwgc3lzdGVtcyBoYXZlCisgKiBwZXJzaXN0ZW50IG1lZGlhIHRoYXQgYXJlIGFwcHJvcHJpYXRlIGZvciBzdWNoIHN1c3BlbmQgbW9kZXMuCisgKgorICogVGhlIGJlc3Qgd2F5IHRvIHNldCB0aGUgc3lzdGVtJ3MgUlRDIGlzIHNvIHRoYXQgaXQgaG9sZHMgdGhlIGN1cnJlbnQKKyAqIHRpbWUgaW4gVVRDLiAgVXNlIHRoZSAiLWwiIGZsYWcgdG8gdGVsbCB0aGlzIHByb2dyYW0gdGhhdCB0aGUgc3lzdGVtCisgKiBSVEMgdXNlcyBhIGxvY2FsIHRpbWV6b25lIGluc3RlYWQgKG1heWJlIHlvdSBkdWFsLWJvb3QgTVMtV2luZG93cykuCisgKiBUaGF0IGZsYWcgc2hvdWxkIG5vdCBiZSBuZWVkZWQgb24gc3lzdGVtcyB3aXRoIGFkanRpbWUgc3VwcG9ydC4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGxpYmdlbi5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dGltZS5oPgorCisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgorCisjaW5jbHVkZSAibmxzLmgiCisjaW5jbHVkZSAicGF0aG5hbWVzLmgiCisjaW5jbHVkZSAidXNsZWVwLmgiCisKKy8qIGNvbnN0YW50cyBmcm9tIGxlZ2FjeSBQQy9BVCBoYXJkd2FyZSAqLworI2RlZmluZQlSVENfUEYJMHg0MAorI2RlZmluZQlSVENfQUYJMHgyMAorI2RlZmluZQlSVENfVUYJMHgxMAorCisjZGVmaW5lIE1BWF9MSU5FCQkxMDI0CisKK3N0YXRpYyBjaGFyCQkqcHJvZ25hbWU7CisKKyNkZWZpbmUgVkVSU0lPTl9TVFJJTkcJCSJydGN3YWtlIGZyb20gIiBQQUNLQUdFX1NUUklORworI2RlZmluZSBSVENfUEFUSAkJIi9zeXMvY2xhc3MvcnRjLyVzL2RldmljZS9wb3dlci93YWtldXAiCisjZGVmaW5lIFNZU19QT1dFUl9TVEFURV9QQVRICSIvc3lzL3Bvd2VyL3N0YXRlIgorI2RlZmluZSBBREpUSU1FX1BBVEgJCSIvZXRjL2FkanRpbWUiCisjZGVmaW5lIERFRkFVTFRfREVWSUNFCQkiL2Rldi9ydGMwIgorI2RlZmluZSBERUZBVUxUX01PREUJCSJzdGFuZGJ5IgorCitlbnVtIENsb2NrTW9kZSB7CisJQ01fQVVUTywKKwlDTV9VVEMsCisJQ01fTE9DQUwKK307CisKK3N0YXRpYyB1bnNpZ25lZAkJdmVyYm9zZTsKK2VudW0gQ2xvY2tNb2RlCQljbG9ja19tb2RlID0gQ01fQVVUTzsKKworc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPSB7CisJeyJhdXRvIiwJbm9fYXJndW1lbnQsCQkwLCAnYSd9LAorCXsibG9jYWwiLAlub19hcmd1bWVudCwJCTAsICdsJ30sCisJeyJ1dGMiLAkJbm9fYXJndW1lbnQsCQkwLCAndSd9LAorCXsidmVyYm9zZSIsCW5vX2FyZ3VtZW50LAkJMCwgJ3YnfSwKKwl7InZlcnNpb24iLAlub19hcmd1bWVudCwJCTAsICdWJ30sCisJeyJoZWxwIiwJbm9fYXJndW1lbnQsCQkwLCAnaCd9LAorCXsibW9kZSIsCXJlcXVpcmVkX2FyZ3VtZW50LAkwLCAnbSd9LAorCXsiZGV2aWNlIiwJcmVxdWlyZWRfYXJndW1lbnQsCTAsICdkJ30sCisJeyJzZWNvbmRzIiwJcmVxdWlyZWRfYXJndW1lbnQsCTAsICdzJ30sCisJeyJ0aW1lIiwJcmVxdWlyZWRfYXJndW1lbnQsCTAsICd0J30sCisJezAsCQkwLAkJCTAsIDAgIH0KK307CisKK3N0YXRpYyB2b2lkIHVzYWdlKGludCByZXR2YWwpCit7CisJcHJpbnRmKF8oInVzYWdlOiAlcyBbb3B0aW9uc11cbiIKKwkJIiAgICAtZCB8IC0tZGV2aWNlIDxkZXZpY2U+ICAgIHNlbGVjdCBydGMgZGV2aWNlIChydGMwfHJ0YzF8Li4uKVxuIgorCQkiICAgIC1sIHwgLS1sb2NhbCAgICAgICAgICAgICAgUlRDIHVzZXMgbG9jYWwgdGltZXpvbmVcbiIKKwkJIiAgICAtbSB8IC0tbW9kZSAgICAgICAgICAgICAgIHN0YW5kYnl8bWVtfC4uLiBzbGVlcCBtb2RlXG4iCisJCSIgICAgLXMgfCAtLXNlY29uZHMgPHNlY29uZHM+ICBzZWNvbmRzIHRvIHNsZWVwXG4iCisJCSIgICAgLXQgfCAtLXRpbWUgPHRpbWVfdD4gICAgICB0aW1lIHRvIHdha2VcbiIKKwkJIiAgICAtdSB8IC0tdXRjICAgICAgICAgICAgICAgIFJUQyB1c2VzIFVUQ1xuIgorCQkiICAgIC12IHwgLS12ZXJib3NlICAgICAgICAgICAgdmVyYm9zZSBtZXNzYWdlc1xuIgorCQkiICAgIC1WIHwgLS12ZXJzaW9uICAgICAgICAgICAgc2hvdyB2ZXJzaW9uXG4iKSwKKwkJCXByb2duYW1lKTsKKwlleGl0KHJldHZhbCk7Cit9CisKK3N0YXRpYyBpbnQgaXNfd2FrZXVwX2VuYWJsZWQoY29uc3QgY2hhciAqZGV2bmFtZSkKK3sKKwljaGFyCWJ1ZlsxMjhdLCAqczsKKwlGSUxFCSpmOworCisJLyogc3RyaXAgdGhlICcvZGV2LycgZnJvbSB0aGUgZGV2bmFtZSBoZXJlICovCisJc25wcmludGYoYnVmLCBzaXplb2YgYnVmLCBSVENfUEFUSCwgZGV2bmFtZSArIHN0cmxlbigiL2Rldi8iKSk7CisJZiA9IGZvcGVuKGJ1ZiwgInIiKTsKKwlpZiAoIWYpIHsKKwkJcGVycm9yKGJ1Zik7CisJCXJldHVybiAwOworCX0KKwlzID0gZmdldHMoYnVmLCBzaXplb2YgYnVmLCBmKTsKKwlmY2xvc2UoZik7CisJaWYgKCFzKQorCQlyZXR1cm4gMDsKKworCXMgPSBzdHJjaHIoYnVmLCAnXG4nKTsKKwlpZiAoIXMpCisJCXJldHVybiAwOworCSpzID0gMDsKKworCS8qIHdha2V1cCBldmVudHMgY291bGQgYmUgZGlzYWJsZWQgb3Igbm90IHN1cHBvcnRlZCAqLworCXJldHVybiBzdHJjbXAoYnVmLCAiZW5hYmxlZCIpID09IDA7Cit9CisKKy8qIGFsbCB0aW1lcyBzaG91bGQgYmUgaW4gVVRDICovCitzdGF0aWMgdGltZV90CXN5c190aW1lOworc3RhdGljIHRpbWVfdAlydGNfdGltZTsKKworc3RhdGljIGludCBnZXRfYmFzZXRpbWVzKGludCBmZCkKK3sKKwlzdHJ1Y3QgdG0JdG07CisJc3RydWN0IHJ0Y190aW1lCXJ0YzsKKworCS8qIHRoaXMgcHJvY2VzcyB3b3JrcyBpbiBSVEMgdGltZSwgZXhjZXB0IHdoZW4gd29ya2luZworCSAqIHdpdGggdGhlIHN5c3RlbSBjbG9jayAod2hpY2ggYWx3YXlzIHVzZXMgVVRDKS4KKwkgKi8KKwlpZiAoY2xvY2tfbW9kZSA9PSBDTV9VVEMpCisJCXNldGVudigiVFoiLCAiVVRDIiwgMSk7CisJdHpzZXQoKTsKKworCS8qIHJlYWQgcnRjIGFuZCBzeXN0ZW0gY2xvY2tzICJhdCB0aGUgc2FtZSB0aW1lIiwgb3IgYXMKKwkgKiBwcmVjaXNlbHkgKCsvLSBhIHNlY29uZCkgYXMgd2UgY2FuIHJlYWQgdGhlbS4KKwkgKi8KKwlpZiAoaW9jdGwoZmQsIFJUQ19SRF9USU1FLCAmcnRjKSA8IDApIHsKKwkJcGVycm9yKF8oInJlYWQgcnRjIHRpbWUiKSk7CisJCXJldHVybiAtMTsKKwl9CisJc3lzX3RpbWUgPSB0aW1lKDApOworCWlmIChzeXNfdGltZSA9PSAodGltZV90KS0xKSB7CisJCXBlcnJvcihfKCJyZWFkIHN5c3RlbSB0aW1lIikpOworCQlyZXR1cm4gLTE7CisJfQorCisJLyogY29udmVydCBydGNfdGltZSB0byBub3JtYWwgYXJpdGhtZXRpYy1mcmllbmRseSBmb3JtLAorCSAqIHVwZGF0aW5nIHRtLnRtX3dkYXkgYXMgdXNlZCBieSBhc2N0aW1lKCkuCisJICovCisJbWVtc2V0KCZ0bSwgMCwgc2l6ZW9mIHRtKTsKKwl0bS50bV9zZWMgPSBydGMudG1fc2VjOworCXRtLnRtX21pbiA9IHJ0Yy50bV9taW47CisJdG0udG1faG91ciA9IHJ0Yy50bV9ob3VyOworCXRtLnRtX21kYXkgPSBydGMudG1fbWRheTsKKwl0bS50bV9tb24gPSBydGMudG1fbW9uOworCXRtLnRtX3llYXIgPSBydGMudG1feWVhcjsKKwl0bS50bV9pc2RzdCA9IC0xOyAgLyogYXNzdW1lIHRoZSBzeXN0ZW0ga25vd3MgYmV0dGVyIHRoYW4gdGhlIFJUQyAqLworCXJ0Y190aW1lID0gbWt0aW1lKCZ0bSk7CisKKwlpZiAocnRjX3RpbWUgPT0gKHRpbWVfdCktMSkgeworCQlwZXJyb3IoXygiY29udmVydCBydGMgdGltZSIpKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmICh2ZXJib3NlKSB7CisJCS8qIFVubGVzcyB0aGUgc3lzdGVtIHVzZXMgVVRDLCBlaXRoZXIgZGVsdGEgb3IgdHpvbmUKKwkJICogcmVmbGVjdHMgYSBzZWNvbmRzIG9mZnNldCBmcm9tIFVUQy4gIFRoZSB2YWx1ZSBjYW4KKwkJICogaGVscCBzb3J0IG91dCBwcm9ibGVtcyBsaWtlIGJ1Z3MgaW4geW91ciBDIGxpYnJhcnkuCisJCSAqLworCQlwcmludGYoIlx0ZGVsdGEgICA9ICVsZFxuIiwgc3lzX3RpbWUgLSBydGNfdGltZSk7CisJCXByaW50ZigiXHR0em9uZSAgID0gJWxkXG4iLCB0aW1lem9uZSk7CisKKwkJcHJpbnRmKCJcdHR6bmFtZSAgPSAlc1xuIiwgdHpuYW1lW2RheWxpZ2h0XSk7CisJCWdtdGltZV9yKCZydGNfdGltZSwgJnRtKTsKKwkJcHJpbnRmKCJcdHN5c3RpbWUgPSAlbGQsIChVVEMpICVzIiwKKwkJCQkobG9uZykgc3lzX3RpbWUsIGFzY3RpbWUoZ210aW1lKCZzeXNfdGltZSkpKTsKKwkJcHJpbnRmKCJcdHJ0Y3RpbWUgPSAlbGQsIChVVEMpICVzIiwKKwkJCQkobG9uZykgcnRjX3RpbWUsIGFzY3RpbWUoJnRtKSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2V0dXBfYWxhcm0oaW50IGZkLCB0aW1lX3QgKndha2V1cCkKK3sKKwlzdHJ1Y3QgdG0JCSp0bTsKKwlzdHJ1Y3QgcnRjX3drYWxybQl3YWtlOworCisJLyogVGhlIHdha2V1cCB0aW1lIGlzIGluIFBPU0lYIHRpbWUgKG1vcmUgb3IgbGVzcyBVVEMpLgorCSAqIElkZWFsbHkgUlRDcyB1c2UgdGhhdCBzYW1lIHRpbWU7IGJ1dCBQQ3MgY2FuJ3QgZG8gdGhhdAorCSAqIGlmIHRoZXkgbmVlZCB0byBib290IE1TLVdpbmRvd3MuICBNZXNzeS4uLgorCSAqCisJICogV2hlbiBjbG9ja19tb2RlID09IENNX1VUQyB0aGlzIHByb2Nlc3MncyB0aW1lem9uZSBpcyBVVEMsCisJICogc28gd2UnbGwgcGFzcyBhIFVUQyBkYXRlIHRvIHRoZSBSVEMuCisJICoKKwkgKiBFbHNlIGNsb2NrX21vZGUgPT0gQ01fTE9DQUwgc28gdGhlIHRpbWUgZ2l2ZW4gdG8gdGhlIFJUQworCSAqIHdpbGwgaW5zdGVhZCB1c2UgdGhlIGxvY2FsIHRpbWUgem9uZS4KKwkgKi8KKwl0bSA9IGxvY2FsdGltZSh3YWtldXApOworCisJd2FrZS50aW1lLnRtX3NlYyA9IHRtLT50bV9zZWM7CisJd2FrZS50aW1lLnRtX21pbiA9IHRtLT50bV9taW47CisJd2FrZS50aW1lLnRtX2hvdXIgPSB0bS0+dG1faG91cjsKKwl3YWtlLnRpbWUudG1fbWRheSA9IHRtLT50bV9tZGF5OworCXdha2UudGltZS50bV9tb24gPSB0bS0+dG1fbW9uOworCXdha2UudGltZS50bV95ZWFyID0gdG0tPnRtX3llYXI7CisJLyogd2RheSwgeWRheSwgYW5kIGlzZHN0IGZpZWxkcyBhcmUgdW51c2VkIGJ5IExpbnV4ICovCisJd2FrZS50aW1lLnRtX3dkYXkgPSAtMTsKKwl3YWtlLnRpbWUudG1feWRheSA9IC0xOworCXdha2UudGltZS50bV9pc2RzdCA9IC0xOworCisJd2FrZS5lbmFibGVkID0gMTsKKwkvKiBGaXJzdCB0cnkgdGhlIHByZWZlcnJlZCBSVENfV0tBTE1fU0VUICovCisJaWYgKGlvY3RsKGZkLCBSVENfV0tBTE1fU0VULCAmd2FrZSkgPCAwKSB7CisJCXdha2UuZW5hYmxlZCA9IDA7CisJCS8qIEZhbGwgYmFjayBvbiB0aGUgbm9uLXByZWZlcnJlZCB3YXkgb2Ygc2V0dGluZyB3YWtldXBzOyBvbmx5CisJCSogd29ya3MgZm9yIGFsYXJtcyA8IDI0IGhvdXJzIGZyb20gbm93ICovCisJCWlmICgocnRjX3RpbWUgKyAoMjQgKiA2MCAqIDYwKSkgPiAqd2FrZXVwKSB7CisJCQlpZiAoaW9jdGwoZmQsIFJUQ19BTE1fU0VULCAmd2FrZS50aW1lKSA8IDApIHsKKwkJCQlwZXJyb3IoXygic2V0IHJ0YyBhbGFybSIpKTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisJCQlpZiAoaW9jdGwoZmQsIFJUQ19BSUVfT04sIDApIDwgMCkgeworCQkJCXBlcnJvcihfKCJlbmFibGUgcnRjIGFsYXJtIikpOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCXBlcnJvcihfKCJzZXQgcnRjIHdha2UgYWxhcm0iKSk7CisJCQlyZXR1cm4gLTE7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgc3VzcGVuZF9zeXN0ZW0oY29uc3QgY2hhciAqc3VzcGVuZCkKK3sKKwlGSUxFCSpmID0gZm9wZW4oU1lTX1BPV0VSX1NUQVRFX1BBVEgsICJ3Iik7CisKKwlpZiAoIWYpIHsKKwkJcGVycm9yKFNZU19QT1dFUl9TVEFURV9QQVRIKTsKKwkJcmV0dXJuOworCX0KKworCWZwcmludGYoZiwgIiVzXG4iLCBzdXNwZW5kKTsKKwlmZmx1c2goZik7CisKKwkvKiB0aGlzIGV4ZWN1dGVzIGFmdGVyIHdha2UgZnJvbSBzdXNwZW5kICovCisJZmNsb3NlKGYpOworfQorCisKK3N0YXRpYyBpbnQgcmVhZF9jbG9ja19tb2RlKHZvaWQpCit7CisJRklMRSAqZnA7CisJY2hhciBsaW5lYnVmW01BWF9MSU5FXTsKKworCWZwID0gZm9wZW4oQURKVElNRV9QQVRILCAiciIpOworCWlmICghZnApCisJCXJldHVybiAtMTsKKworCS8qIHNraXAgZmlyc3QgbGluZSAqLworCWlmICghZmdldHMobGluZWJ1ZiwgTUFYX0xJTkUsIGZwKSkgeworCQlmY2xvc2UoZnApOworCQlyZXR1cm4gLTE7CisJfQorCisJLyogc2tpcCBzZWNvbmQgbGluZSAqLworCWlmICghZmdldHMobGluZWJ1ZiwgTUFYX0xJTkUsIGZwKSkgeworCQlmY2xvc2UoZnApOworCQlyZXR1cm4gLTE7CisJfQorCisJLyogcmVhZCB0aGlyZCBsaW5lICovCisJaWYgKCFmZ2V0cyhsaW5lYnVmLCBNQVhfTElORSwgZnApKSB7CisJCWZjbG9zZShmcCk7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAoc3RybmNtcChsaW5lYnVmLCAiVVRDIiwgMykgPT0gMCkKKwkJY2xvY2tfbW9kZSA9IENNX1VUQzsKKwllbHNlIGlmIChzdHJuY21wKGxpbmVidWYsICJMT0NBTCIsIDUpID09IDApCisJCWNsb2NrX21vZGUgPSBDTV9MT0NBTDsKKworCWZjbG9zZShmcCk7CisKKwlyZXR1cm4gMDsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWNoYXIJCSpkZXZuYW1lID0gREVGQVVMVF9ERVZJQ0U7CisJdW5zaWduZWQJc2Vjb25kcyA9IDA7CisJY2hhcgkJKnN1c3BlbmQgPSBERUZBVUxUX01PREU7CisKKwlpbnQJCXJjID0gRVhJVF9TVUNDRVNTOworCWludAkJdDsKKwlpbnQJCWZkOworCXRpbWVfdAkJYWxhcm0gPSAwOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCXByb2duYW1lID0gYmFzZW5hbWUoYXJndlswXSk7CisKKwl3aGlsZSAoKHQgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWhkOmxtOnM6dDp1VnYiLAorCQkJCQlsb25nX29wdGlvbnMsIE5VTEwpKSAhPSBFT0YpIHsKKwkJc3dpdGNoICh0KSB7CisJCWNhc2UgJ2EnOgorCQkJLyogQ01fQVVUTyBpcyBkZWZhdWx0ICovCisJCQlicmVhazsKKworCQljYXNlICdkJzoKKwkJCWRldm5hbWUgPSBzdHJkdXAob3B0YXJnKTsKKwkJCWJyZWFrOworCisJCWNhc2UgJ2wnOgorCQkJY2xvY2tfbW9kZSA9IENNX0xPQ0FMOworCQkJYnJlYWs7CisKKwkJCS8qIHdoYXQgc3lzdGVtIHBvd2VyIG1vZGUgdG8gdXNlPyAgZm9yIG5vdyBoYW5kbGUgb25seQorCQkJICogc3RhbmRhcmRpemVkIG1vZGUgbmFtZXM7IGV2ZW50dWFsbHkgd2hlbiBzeXN0ZW1zCisJCQkgKiBkZWZpbmUgdGhlaXIgb3duIHN0YXRlIG5hbWVzLCBwYXJzZQorCQkJICogL3N5cy9wb3dlci9zdGF0ZS4KKwkJCSAqCisJCQkgKiAib24iIGlzIHVzZWQganVzdCB0byB0ZXN0IHRoZSBSVEMgYWxhcm0gbWVjaGFuaXNtLAorCQkJICogYnlwYXNzaW5nIGFsbCB0aGUgd2FrZXVwLWZyb20tc2xlZXAgaW5mcmFzdHJ1Y3R1cmUuCisJCQkgKi8KKwkJY2FzZSAnbSc6CisJCQlpZiAoc3RyY21wKG9wdGFyZywgInN0YW5kYnkiKSA9PSAwCisJCQkJCXx8IHN0cmNtcChvcHRhcmcsICJtZW0iKSA9PSAwCisJCQkJCXx8IHN0cmNtcChvcHRhcmcsICJkaXNrIikgPT0gMAorCQkJCQl8fCBzdHJjbXAob3B0YXJnLCAib24iKSA9PSAwCisJCQkJCXx8IHN0cmNtcChvcHRhcmcsICJubyIpID09IDAKKwkJCQkJfHwgc3RyY21wKG9wdGFyZywgIm9mZiIpID09IDAKKwkJCSAgICkgeworCQkJCXN1c3BlbmQgPSBzdHJkdXAob3B0YXJnKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oIiVzOiB1bnJlY29nbml6ZWQgc3VzcGVuZCBzdGF0ZSAnJXMnXG4iKSwKKwkJCQlwcm9nbmFtZSwgb3B0YXJnKTsKKwkJCXVzYWdlKEVYSVRfRkFJTFVSRSk7CisKKwkJCS8qIGFsYXJtIHRpbWUsIHNlY29uZHMtdG8tc2xlZXAgKHJlbGF0aXZlKSAqLworCQljYXNlICdzJzoKKwkJCXQgPSBhdG9pKG9wdGFyZyk7CisJCQlpZiAodCA8IDApIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkJXygiJXM6IGlsbGVnYWwgaW50ZXJ2YWwgJXMgc2Vjb25kc1xuIiksCisJCQkJCXByb2duYW1lLCBvcHRhcmcpOworCQkJCXVzYWdlKEVYSVRfRkFJTFVSRSk7CisJCQl9CisJCQlzZWNvbmRzID0gdDsKKwkJCWJyZWFrOworCisJCQkvKiBhbGFybSB0aW1lLCB0aW1lX3QgKGFic29sdXRlLCBzZWNvbmRzIHNpbmNlCisJCQkgKiAxLzEgMTk3MCBVVEMpCisJCQkgKi8KKwkJY2FzZSAndCc6CisJCQl0ID0gYXRvaShvcHRhcmcpOworCQkJaWYgKHQgPCAwKSB7CisJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJCV8oIiVzOiBpbGxlZ2FsIHRpbWVfdCB2YWx1ZSAlc1xuIiksCisJCQkJCXByb2duYW1lLCBvcHRhcmcpOworCQkJCXVzYWdlKEVYSVRfRkFJTFVSRSk7CisJCQl9CisJCQlhbGFybSA9IHQ7CisJCQlicmVhazsKKworCQljYXNlICd1JzoKKwkJCWNsb2NrX21vZGUgPSBDTV9VVEM7CisJCQlicmVhazsKKworCQljYXNlICd2JzoKKwkJCXZlcmJvc2UrKzsKKwkJCWJyZWFrOworCisJCWNhc2UgJ1YnOgorCQkJcHJpbnRmKF8oIiVzOiB2ZXJzaW9uICVzXG4iKSwgcHJvZ25hbWUsIFZFUlNJT05fU1RSSU5HKTsKKwkJCWV4aXQoRVhJVF9TVUNDRVNTKTsKKworCQljYXNlICdoJzoKKwkJCXVzYWdlKEVYSVRfU1VDQ0VTUyk7CisKKwkJZGVmYXVsdDoKKwkJCXVzYWdlKEVYSVRfRkFJTFVSRSk7CisJCX0KKwl9CisKKwlpZiAoY2xvY2tfbW9kZSA9PSBDTV9BVVRPKSB7CisJCWlmIChyZWFkX2Nsb2NrX21vZGUoKSA8IDApIHsKKwkJCXByaW50ZihfKCIlczogYXNzdW1pbmcgUlRDIHVzZXMgVVRDIC4uLlxuIiksIHByb2duYW1lKTsKKwkJCWNsb2NrX21vZGUgPSBDTV9VVEM7CisJCX0KKwl9CisJaWYgKHZlcmJvc2UpCisJCXByaW50ZihjbG9ja19tb2RlID09IENNX1VUQyA/IF8oIlVzaW5nIFVUQyB0aW1lLlxuIikgOgorCQkJCV8oIlVzaW5nIGxvY2FsIHRpbWUuXG4iKSk7CisKKwlpZiAoIWFsYXJtICYmICFzZWNvbmRzKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCIlczogbXVzdCBwcm92aWRlIHdha2UgdGltZVxuIiksIHByb2duYW1lKTsKKwkJdXNhZ2UoRVhJVF9GQUlMVVJFKTsKKwl9CisKKwkvKiB3aGVuIGRldm5hbWUgZG9lc24ndCBzdGFydCB3aXRoIC9kZXYsIGFwcGVuZCBpdCAqLworCWlmIChzdHJuY21wKGRldm5hbWUsICIvZGV2LyIsIHN0cmxlbigiL2Rldi8iKSkgIT0gMCkgeworCQljaGFyICpuZXdfZGV2bmFtZTsKKworCQluZXdfZGV2bmFtZSA9IG1hbGxvYyhzdHJsZW4oZGV2bmFtZSkgKyBzdHJsZW4oIi9kZXYvIikgKyAxKTsKKwkJaWYgKCFuZXdfZGV2bmFtZSkgeworCQkJcGVycm9yKF8oIm1hbGxvYygpIGZhaWxlZCIpKTsKKwkJCWV4aXQoRVhJVF9GQUlMVVJFKTsKKwkJfQorCisJCXN0cmNweShuZXdfZGV2bmFtZSwgIi9kZXYvIik7CisJCXN0cmNhdChuZXdfZGV2bmFtZSwgZGV2bmFtZSk7CisJCWZyZWUoZGV2bmFtZSk7CisJCWRldm5hbWUgPSBuZXdfZGV2bmFtZTsKKwl9CisKKwlpZiAoc3RyY21wKHN1c3BlbmQsICJvbiIpICE9IDAgJiYgc3RyY21wKHN1c3BlbmQsICJubyIpICE9IDAKKwkJCSYmICFpc193YWtldXBfZW5hYmxlZChkZXZuYW1lKSkgeworCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6ICVzIG5vdCBlbmFibGVkIGZvciB3YWtldXAgZXZlbnRzXG4iKSwKKwkJCQlwcm9nbmFtZSwgZGV2bmFtZSk7CisJCWV4aXQoRVhJVF9GQUlMVVJFKTsKKwl9CisKKwkvKiB0aGlzIFJUQyBtdXN0IGV4aXN0IGFuZCAoaWYgd2UnbGwgc2xlZXApIGJlIHdha2V1cC1lbmFibGVkICovCisjaWZkZWYgT19DTE9FWEVDCisJZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZIHwgT19DTE9FWEVDKTsKKyNlbHNlCisJZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZKTsKKyNlbmRpZgorCWlmIChmZCA8IDApIHsKKwkJcGVycm9yKGRldm5hbWUpOworCQlleGl0KEVYSVRfRkFJTFVSRSk7CisJfQorCisJLyogcmVsYXRpdmUgb3IgYWJzb2x1dGUgYWxhcm0gdGltZSwgbm9ybWFsaXplZCB0byB0aW1lX3QgKi8KKwlpZiAoZ2V0X2Jhc2V0aW1lcyhmZCkgPCAwKQorCQlleGl0KEVYSVRfRkFJTFVSRSk7CisJaWYgKHZlcmJvc2UpCisJCXByaW50ZihfKCJhbGFybSAlbGQsIHN5c190aW1lICVsZCwgcnRjX3RpbWUgJWxkLCBzZWNvbmRzICV1XG4iKSwKKwkJCQlhbGFybSwgc3lzX3RpbWUsIHJ0Y190aW1lLCBzZWNvbmRzKTsKKwlpZiAoYWxhcm0pIHsKKwkJaWYgKGFsYXJtIDwgc3lzX3RpbWUpIHsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oIiVzOiB0aW1lIGRvZXNuJ3QgZ28gYmFja3dhcmQgdG8gJXNcbiIpLAorCQkJCXByb2duYW1lLCBjdGltZSgmYWxhcm0pKTsKKwkJCWV4aXQoRVhJVF9GQUlMVVJFKTsKKwkJfQorCQlhbGFybSArPSBzeXNfdGltZSAtIHJ0Y190aW1lOworCX0gZWxzZQorCQlhbGFybSA9IHJ0Y190aW1lICsgc2Vjb25kcyArIDE7CisKKwlpZiAoc2V0dXBfYWxhcm0oZmQsICZhbGFybSkgPCAwKQorCQlleGl0KEVYSVRfRkFJTFVSRSk7CisKKwlwcmludGYoXygiJXM6IHdha2V1cCBmcm9tIFwiJXNcIiB1c2luZyAlcyBhdCAlc1xuIiksCisJCQlwcm9nbmFtZSwgc3VzcGVuZCwgZGV2bmFtZSwKKwkJCWN0aW1lKCZhbGFybSkpOworCWZmbHVzaChzdGRvdXQpOworCXVzbGVlcCgxMCAqIDEwMDApOworCisJaWYgKHN0cmNtcChzdXNwZW5kLCAibm8iKSA9PSAwKQorCQlleGl0KEVYSVRfU1VDQ0VTUyk7CisJZWxzZSBpZiAoc3RyY21wKHN1c3BlbmQsICJvbiIpICE9IDApIHsKKwkJc3luYygpOworCQlzdXNwZW5kX3N5c3RlbShzdXNwZW5kKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChzdXNwZW5kLCAib2ZmIikgPT0gMCkgeworCQljaGFyICphcmdbNF07CisJCWludCBpID0gMDsKKworCQlhcmdbaSsrXSA9IF9QQVRIX1NIVVRET1dOOworCQlhcmdbaSsrXSA9ICItUCI7CisJCWFyZ1tpKytdID0gIm5vdyI7CisJCWFyZ1tpXSAgID0gTlVMTDsKKworCQlleGVjdihhcmdbMF0sIGFyZyk7CisKKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiB1bmFibGUgdG8gZXhlY3V0ZSAlczogJXNcbiIpLAorCQkJCXByb2duYW1lLCBfUEFUSF9TSFVURE9XTiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJcmMgPSBFWElUX0ZBSUxVUkU7CisJfSBlbHNlIHsKKwkJdW5zaWduZWQgbG9uZyBkYXRhOworCisJCWRvIHsKKwkJCXQgPSByZWFkKGZkLCAmZGF0YSwgc2l6ZW9mIGRhdGEpOworCQkJaWYgKHQgPCAwKSB7CisJCQkJcGVycm9yKF8oInJ0YyByZWFkIikpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHZlcmJvc2UpCisJCQkJcHJpbnRmKCIuLi4gJXM6ICUwM2x4XG4iLCBkZXZuYW1lLCBkYXRhKTsKKwkJfSB3aGlsZSAoIShkYXRhICYgUlRDX0FGKSk7CisJfQorCisJaWYgKGlvY3RsKGZkLCBSVENfQUlFX09GRiwgMCkgPCAwKQorCQlwZXJyb3IoXygiZGlzYWJsZSBydGMgYWxhcm0gaW50ZXJydXB0IikpOworCisJY2xvc2UoZmQpOworCisJcmV0dXJuIHJjOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3NldGFyY2guOCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9zZXRhcmNoLjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMyZDFiZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9zZXRhcmNoLjgKQEAgLTAsMCArMSw3MyBAQAorLlRIIFNFVEFSQ0ggOCAiSnVuIDIwMDciIHNldGFyY2ggIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorc2V0YXJjaCBcLSBjaGFuZ2UgcmVwb3J0ZWQgYXJjaGl0ZWN0dXJlIGluIG5ldyBwcm9ncmFtIGVudmlyb25tZW50IGFuZCBzZXQgcGVyc29uYWxpdHkgZmxhZ3MKKy5TSCBTWU5PUFNJUworLkIgc2V0YXJjaAorLkkgYXJjaAorLlJJIFsgb3B0aW9ucyBdCisuUkkgWyBwcm9ncmFtCisuUkkgWyBhcmd1bWVudHMgXV0KKy5icgorLkkgYXJjaAorLlJJIFsgb3B0aW9ucyBdCisuUkkgWyBwcm9ncmFtCisuUkkgWyBhcmd1bWVudHMgXV0KKy5TSCBERVNDUklQVElPTgorLkIgc2V0YXJjaAorVGhpcyB1dGlsaXR5IGN1cnJlbnRseSBvbmx5IGFmZmVjdHMgdGhlIG91dHB1dCBvZiB1bmFtZSAtbS4gRm9yIGV4YW1wbGUsIG9uIGFuIEFNRDY0IHN5c3RlbSwgcnVubmluZyAnc2V0YXJjaCBpMzg2IHByb2dyYW0nIHdpbGwgY2F1c2UgJ3Byb2dyYW0nIHRvIHNlZQorLklSIGk2ODYKKyhvciBvdGhlciByZWxldmFudCBhcmNoKSBpbnN0ZWFkIG9mCisuSVIgeDg2XzY0CithcyBtYWNoaW5lIHR5cGUuIEl0IGFsc28gYWxsb3dzIHRvIHNldCB2YXJpb3VzIHBlcnNvbmFsaXR5IG9wdGlvbnMuIFRoZSBkZWZhdWx0CisuQiBwcm9ncmFtCitpcyAvYmluL3NoLgorLlNIIE9QVElPTlMKKy5UUAorLkkgIlwtdiwiICJcLVwtdmVyYm9zZSIKK0JlIHZlcmJvc2UuCisuVFAKKy5JICJcLWgsIiAiXC1cLWhlbHAiCitEaXNwbGF5IGhlbHAgKGl0IGlzIGFsc28gZGlzcGxheWVkIHdoZW4gc2V0YXJjaCB0YWtlcyBubyBhcmd1bWVudHMpLgorLlRQCisuSSAiXC0zLCIgIlwtXC0zZ2IiCitTcGVjaWZpZXMgdGhhdCBwcm9jZXNzZXMgc2hvdWxkIHVzZSBhIG1heGltdW0gb2YgM0dCIG9mIGFkZHJlc3Mgc3BhY2Ugb24gc3lzdGVtcyB3aGVyZSBpdCBpcyBzdXBwb3J0ZWQgKEFERFJfTElNSVRfM0dCKS4KKy5UUAorLkkgIlwtQiwiICJcLVwtMzJiaXQiCitUdXJucyBvbiBBRERSX0xJTUlUXzMyQklULgorLlRQCisuSSAiXC1GLCIgIlwtXC1mZHBpYy1mdW5jcHRycyIKK1VzZXJzcGFjZSBmdW5jdGlvbiBwb2ludGVycyBwb2ludCB0byBkZXNjcmlwdG9ycyAodHVybnMgb24gRkRQSUNfRlVOQ1BUUlMpLgorLlRQCisuSSAiXC1JLCIgIlwtXC1zaG9ydC1pbm9kZSIKK1R1cm5zIG9uIFNIT1JUX0lOT0RFLgorLlRQCisuSSAiXC1MLCIgIlwtXC1hZGRyLWNvbXBhdC1sYXlvdXQiCitDaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkICh0dXJucyBvbiB0aGUgQUREUl9DT01QQVRfTEFZT1VUKS4KKy5UUAorLkkgIlwtUiwiICJcLVwtYWRkci1uby1yYW5kb21pemUiCitEaXNhYmxlcyByYW5kb21pemF0aW9uIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgKHR1cm5zIG9uIEFERFJfTk9fUkFORE9NSVpFKS4KKy5UUAorLkkgIlwtUywiICJcLVwtd2hvbGUtc2Vjb25kcyIKK1R1cm5zIG9uIFdIT0xFX1NFQ09ORFMuCisuVFAKKy5JICJcLVQsIiAiXC1cLXN0aWNreS10aW1lb3V0cyIKK1R1cm5zIG9uIFNUSUNLWV9USU1FT1VUUy4KKy5UUAorLkkgIlwtWCIgIlwtXC1yZWFkLWltcGxpZXMtZXhlYyIKK1R1cm5zIG9uIFJFQURfSU1QTElFU19FWEVDLgorLlRQCisuSSAiXC1aLCIgIm1tYXAtcGFnZS16ZXJvIgorVHVybnMgb24gTU1BUF9QQUdFX1pFUk8uCisuU0ggRVhBTVBMRVMKK3NldGFyY2ggcHBjMzIgcnBtYnVpbGQgLS10YXJnZXQ9cHBjIC0tcmVidWlsZCBmb28uc3JjLnJwbQorLmJyCitzZXRhcmNoIHBwYzMyIC12IC12TDMgcnBtYnVpbGQgLS10YXJnZXQ9cHBjIC0tcmVidWlsZCBiYXIuc3JjLnJwbQorLmJyCitzZXRhcmNoIHBwYzMyIC0tMzJiaXQgcnBtYnVpbGQgLS10YXJnZXQ9cHBjIC0tcmVidWlsZCBmb28uc3JjLnJwbQorLlNIIEFVVEhPUgorRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPgorLmJyCitKaW5kcmljaCBOb3Z5IDxqbm92eUByZWRoYXQuY29tPgorLlNIIEFWQUlMQUJJTElUWQorVGhlIHNldGFyY2ggY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvc2V0YXJjaC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3NldGFyY2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWY4ODViCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3NldGFyY2guYwpAQCAtMCwwICsxLDMyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA3IFJlZCBIYXQsIEluYy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorICoKKyAqIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKgorICogV3JpdHRlbiBieSBFbGxpb3QgTGVlIDxzb3B3aXRoQHJlZGhhdC5jb20+CisgKiBOZXcgcGVyc29uYWxpdHkgb3B0aW9ucyAmIGNvZGUgYWRkZWQgYnkgSmluZHJpY2ggTm92eSA8am5vdnlAcmVkaGF0LmNvbT4KKyAqIEFERF9OT19SQU5ET01JWkUgZmxhZyBhZGRlZCBieSBBcmphbiB2YW4gZGUgVmVuIDxhcmphbnZAcmVkaGF0LmNvbT4KKyAqIEhlbHAgYW5kIE1JUFMgc3VwcG9ydCBmcm9tIE1pa2UgRnJ5c2luZ2VyICh2YXBpZXJAZ2VudG9vLm9yZykKKyAqIEJldHRlciBlcnJvciBoYW5kbGluZyBmcm9tIERtaXRyeSBWLiBMZXZpbiAobGR2QGFsdGxpbnV4Lm9yZykKKyAqCisgKiBiYXNlZCBvbiBpZGVhcyBmcm9tIHRoZSBwcGMzMiB1dGlsIGJ5IEd1eSBTdHJlZXRlciAoMjAwMi0wMSksIGJhc2VkIG9uIHRoZQorICogc3BhcmMzMiB1dGlsIGJ5IEpha3ViIEplbGluZWsgKDE5OTgsIDE5OTkpCisgKi8KKworI2luY2x1ZGUgPHN5c2NhbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJzb25hbGl0eS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxlcnJvci5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisjaW5jbHVkZSAibmxzLmgiCisKKyNkZWZpbmUgc2V0X3BlcnMocGVycykgKChsb25nKXN5c2NhbGwoU1lTX3BlcnNvbmFsaXR5LCBwZXJzKSkKKworLyogT3B0aW9uIC0tNGdiIGhhcyBubyBlcXVpdmFsZW50IHNob3J0IG9wdGlvbiwgdXNlIGEgbm9uLWNoYXJhY3RlciBhcyBhCisgICBwc2V1ZG8gc2hvcnQgb3B0aW9uLiAqLworI2RlZmluZSBPUFRfNEdCIChDSEFSX01BWCsxKQorCisjZGVmaW5lIHR1cm5fb24oX2ZsYWcsIF9vcHRzKSBcCisJZG8geyBcCisJCShfb3B0cykgfD0gX2ZsYWc7IFwKKwkJaWYgKHZlcmJvc2UpIFwKKwkJCXByaW50ZihfKCJTd2l0Y2hpbmcgb24gJXMuXG4iKSwgI19mbGFnKTsgXAorCX0gd2hpbGUoMCkKKworCisjaWYgIUhBVkVfREVDTF9BRERSX05PX1JBTkRPTUlaRQorIyBkZWZpbmUgQUREUl9OT19SQU5ET01JWkUgICAgICAgMHgwMDQwMDAwCisjZW5kaWYKKyNpZiAhSEFWRV9ERUNMX0ZEUElDX0ZVTkNQVFJTCisjIGRlZmluZSBGRFBJQ19GVU5DUFRSUyAgICAgICAgICAweDAwODAwMDAKKyNlbmRpZgorI2lmICFIQVZFX0RFQ0xfTU1BUF9QQUdFX1pFUk8KKyMgZGVmaW5lIE1NQVBfUEFHRV9aRVJPICAgICAgICAgIDB4MDEwMDAwMAorI2VuZGlmCisjaWYgIUhBVkVfREVDTF9BRERSX0NPTVBBVF9MQVlPVVQKKyMgZGVmaW5lIEFERFJfQ09NUEFUX0xBWU9VVCAgICAgIDB4MDIwMDAwMAorI2VuZGlmCisjaWYgIUhBVkVfREVDTF9SRUFEX0lNUExJRVNfRVhFQworIyBkZWZpbmUgUkVBRF9JTVBMSUVTX0VYRUMgICAgICAgMHgwNDAwMDAwCisjZW5kaWYKKyNpZiAhSEFWRV9ERUNMX0FERFJfTElNSVRfMzJCSVQKKyMgZGVmaW5lIEFERFJfTElNSVRfMzJCSVQgICAgICAgIDB4MDgwMDAwMAorI2VuZGlmCisjaWYgIUhBVkVfREVDTF9TSE9SVF9JTk9ERQorIyBkZWZpbmUgU0hPUlRfSU5PREUgICAgICAgICAgICAgMHgxMDAwMDAwCisjZW5kaWYKKyNpZiAhSEFWRV9ERUNMX1dIT0xFX1NFQ09ORFMKKyMgZGVmaW5lIFdIT0xFX1NFQ09ORFMgICAgICAgICAgIDB4MjAwMDAwMAorI2VuZGlmCisjaWYgIUhBVkVfREVDTF9TVElDS1lfVElNRU9VVFMKKyMgZGVmaW5lIFNUSUNLWV9USU1FT1VUUyAgICAgICAgIDB4NDAwMDAwMAorI2VuZGlmCisjaWYgIUhBVkVfREVDTF9BRERSX0xJTUlUXzNHQgorIyBkZWZpbmUgQUREUl9MSU1JVF8zR0IgICAgICAgICAgMHg4MDAwMDAwCisjZW5kaWYKKworLyogT3B0aW9ucyAtLTNnYiBhbmQgLS00Z2IgYXJlIGZvciBjb21wYXRpYml0aXR5IHdpdGggYW4gb2xkIERlYmlhbiBzZXRhcmNoCisgICBpbXBsZW1lbnRhdGlvbi4gKi8KK3N0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9Cit7CisgICAgeyAiaGVscCIsICAgICAgICAgICAgICAgMCwgMCwgJ2gnIH0sCisgICAgeyAidmVyYm9zZSIsICAgICAgICAgICAgMCwgMCwgJ3YnIH0sCisgICAgeyAiYWRkci1uby1yYW5kb21pemUiLCAgMCwgMCwgJ1InIH0sCisgICAgeyAiZmRwaWMtZnVuY3B0cnMiLCAgICAgMCwgMCwgJ0YnIH0sCisgICAgeyAibW1hcC1wYWdlLXplcm8iLCAgICAgMCwgMCwgJ1onIH0sCisgICAgeyAiYWRkci1jb21wYXQtbGF5b3V0IiwgMCwgMCwgJ0wnIH0sCisgICAgeyAicmVhZC1pbXBsaWVzLWV4ZWMiLCAgMCwgMCwgJ1gnIH0sCisgICAgeyAiMzJiaXQiLCAgICAgICAgICAgICAgMCwgMCwgJ0InIH0sCisgICAgeyAic2hvcnQtaW5vZGUiLCAgICAgICAgMCwgMCwgJ0knIH0sCisgICAgeyAid2hvbGUtc2Vjb25kcyIsICAgICAgMCwgMCwgJ1MnIH0sCisgICAgeyAic3RpY2t5LXRpbWVvdXRzIiwgICAgMCwgMCwgJ1QnIH0sCisgICAgeyAiM2diIiwgICAgICAgICAgICAgICAgMCwgMCwgJzMnIH0sCisgICAgeyAiNGdiIiwgICAgICAgICAgICAgICAgMCwgMCwgT1BUXzRHQiB9LAorICAgIHsgTlVMTCwgICAgICAgICAgICAgICAgIDAsIDAsIDAgfQorfTsKKworc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkKK3Nob3dfaGVscCh2b2lkKQoreworICBjb25zdCBjaGFyICpwID0gcHJvZ3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWU7CisKKyAgaWYgKCEqcCkKKyAgICBwID0gInNldGFyY2giOworCisgIHByaW50ZihfKCJVc2FnZTogJXMlcyBbb3B0aW9uc10gW3Byb2dyYW0gW3Byb2dyYW0gYXJndW1lbnRzXV1cblxuT3B0aW9uczpcbiIpLAorICAgICAgICAgcCwgIXN0cmNtcChwLCAic2V0YXJjaCIpID8gIiA8YXJjaD4iIDogIiIpOworCisgICBwcmludGYoXygKKyAgICIgLWgsIC0taGVscCAgICAgICAgICAgICAgIGRpc3BsYXlzIHRoaXMgaGVscCB0ZXh0XG4iCisgICAiIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBzYXlzIHdoYXQgb3B0aW9ucyBhcmUgYmVpbmcgc3dpdGNoZWQgb25cbiIKKyAgICIgLVIsIC0tYWRkci1uby1yYW5kb21pemUgIGRpc2FibGVzIHJhbmRvbWl6YXRpb24gb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyBzcGFjZVxuIgorICAgIiAtRiwgLS1mZHBpYy1mdW5jcHRycyAgICAgbWFrZXMgZnVuY3Rpb24gcG9pbnRlcnMgcG9pbnQgdG8gZGVzY3JpcHRvcnNcbiIKKyAgICIgLVosIC0tbW1hcC1wYWdlLXplcm8gICAgIHR1cm5zIG9uIE1NQVBfUEFHRV9aRVJPXG4iCisgICAiIC1MLCAtLWFkZHItY29tcGF0LWxheW91dCBjaGFuZ2VzIHRoZSB3YXkgdmlydHVhbCBtZW1vcnkgaXMgYWxsb2NhdGVkXG4iCisgICAiIC1YLCAtLXJlYWQtaW1wbGllcy1leGVjICB0dXJucyBvbiBSRUFEX0lNUExJRVNfRVhFQ1xuIgorICAgIiAtQiwgLS0zMmJpdCAgICAgICAgICAgICAgdHVybnMgb24gQUREUl9MSU1JVF8zMkJJVFxuIgorICAgIiAtSSwgLS1zaG9ydC1pbm9kZSAgICAgICAgdHVybnMgb24gU0hPUlRfSU5PREVcbiIKKyAgICIgLVMsIC0td2hvbGUtc2Vjb25kcyAgICAgIHR1cm5zIG9uIFdIT0xFX1NFQ09ORFNcbiIKKyAgICIgLVQsIC0tc3RpY2t5LXRpbWVvdXRzICAgIHR1cm5zIG9uIFNUSUNLWV9USU1FT1VUU1xuIgorICAgIiAtMywgLS0zZ2IgICAgICAgICAgICAgICAgbGltaXRzIHRoZSB1c2VkIGFkZHJlc3Mgc3BhY2UgdG8gYSBtYXhpbXVtIG9mIDMgR0JcbiIKKyAgICIgICAgIC0tNGdiICAgICAgICAgICAgICAgIGlnbm9yZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkpXG4iKSk7CisKKyAgcHJpbnRmKF8oIlxuRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHNldGFyY2goOCkuXG4iKSk7CisgIGV4aXQoRVhJVF9TVUNDRVNTKTsKK30KKworc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkKK3Nob3dfdXNhZ2UoY29uc3QgY2hhciAqcykKK3sKKyAgY29uc3QgY2hhciAqcCA9IHByb2dyYW1faW52b2NhdGlvbl9zaG9ydF9uYW1lOworCisgIGlmICghKnApCisgICAgcCA9ICJzZXRhcmNoIjsKKworICBmcHJpbnRmKHN0ZGVyciwgXygiJXM6ICVzXG5UcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iKSwgcCwgcywgcCk7CisgIGV4aXQoRVhJVF9GQUlMVVJFKTsKK30KKworCitpbnQgc2V0X2FyY2goY29uc3QgY2hhciAqcGVycywgdW5zaWduZWQgbG9uZyBvcHRpb25zKQoreworICBzdHJ1Y3QgdXRzbmFtZSB1bjsKKyAgaW50IGk7CisgIHVuc2lnbmVkIGxvbmcgcGVyc192YWx1ZSwgcmVzOworCisgIHN0cnVjdCB7CisgICAgaW50IHBlcnZhbDsKKyAgICBjb25zdCBjaGFyICp0YXJnZXRfYXJjaCwgKnJlc3VsdF9hcmNoOworICB9IHRyYW5zaXRpb25zW10gPSB7CisgICAge1BFUl9MSU5VWDMyLCAibGludXgzMiIsIE5VTEx9LAorICAgIHtQRVJfTElOVVgsICJsaW51eDY0IiwgTlVMTH0sCisjaWYgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgIHtQRVJfTElOVVgzMiwgInBwYzMyIiwgInBwYyJ9LAorICAgIHtQRVJfTElOVVgzMiwgInBwYyIsICJwcGMifSwKKyAgICB7UEVSX0xJTlVYLCAicHBjNjQiLCAicHBjNjQifSwKKyAgICB7UEVSX0xJTlVYLCAicHBjNjRwc2VyaWVzIiwgInBwYzY0In0sCisgICAge1BFUl9MSU5VWCwgInBwYzY0aXNlcmllcyIsICJwcGM2NCJ9LAorI2VuZGlmCisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9faWE2NF9fKQorICAgIHtQRVJfTElOVVgzMiwgImkzODYiLCAiaTM4NiJ9LAorICAgIHtQRVJfTElOVVgzMiwgImk0ODYiLCAiaTM4NiJ9LAorICAgIHtQRVJfTElOVVgzMiwgImk1ODYiLCAiaTM4NiJ9LAorICAgIHtQRVJfTElOVVgzMiwgImk2ODYiLCAiaTM4NiJ9LAorICAgIHtQRVJfTElOVVgzMiwgImF0aGxvbiIsICJpMzg2In0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19pMzg2X18pCisgICAge1BFUl9MSU5VWCwgIng4Nl82NCIsICJ4ODZfNjQifSwKKyNlbmRpZgorI2lmIGRlZmluZWQoX19pYTY0X18pIHx8IGRlZmluZWQoX19pMzg2X18pCisgICAge1BFUl9MSU5VWCwgImlhNjQiLCAiaWE2NCJ9LAorI2VuZGlmCisjaWYgZGVmaW5lZChfX2hwcGFfXykKKyAgICB7UEVSX0xJTlVYMzIsICJwYXJpc2MzMiIsICJwYXJpc2MifSwKKyAgICB7UEVSX0xJTlVYMzIsICJwYXJpc2MiLCAicGFyaXNjIn0sCisgICAge1BFUl9MSU5VWCwgInBhcmlzYzY0IiwgInBhcmlzYzY0In0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9fczM5MHhfXykgfHwgZGVmaW5lZChfX3MzOTBfXykKKyAgICB7UEVSX0xJTlVYMzIsICJzMzkwIiwgInMzOTAifSwKKyAgICB7UEVSX0xJTlVYLCAiczM5MHgiLCAiczM5MHgifSwKKyNlbmRpZgorI2lmIGRlZmluZWQoX19zcGFyYzY0X18pIHx8IGRlZmluZWQoX19zcGFyY19fKQorICAgIHtQRVJfTElOVVgzMiwgInNwYXJjIiwgInNwYXJjIn0sCisgICAge1BFUl9MSU5VWDMyLCAic3BhcmMzMmJhc2giLCAic3BhcmMifSwKKyAgICB7UEVSX0xJTlVYMzIsICJzcGFyYzMyIiwgInNwYXJjIn0sCisgICAge1BFUl9MSU5VWCwgInNwYXJjNjQiLCAic3BhcmM2NCJ9LAorI2VuZGlmCisjaWYgZGVmaW5lZChfX21pcHM2NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorICAgIHtQRVJfTElOVVgzMiwgIm1pcHMzMiIsICJtaXBzIn0sCisgICAge1BFUl9MSU5VWDMyLCAibWlwcyIsICJtaXBzIn0sCisgICAge1BFUl9MSU5VWCwgIm1pcHM2NCIsICJtaXBzNjQifSwKKyNlbmRpZgorI2lmIGRlZmluZWQoX19hbHBoYV9fKQorICAgIHtQRVJfTElOVVgsICJhbHBoYSIsICJhbHBoYSJ9LAorICAgIHtQRVJfTElOVVgsICJhbHBoYWV2NSIsICJhbHBoYSJ9LAorICAgIHtQRVJfTElOVVgsICJhbHBoYWV2NTYiLCAiYWxwaGEifSwKKyAgICB7UEVSX0xJTlVYLCAiYWxwaGFldjYiLCAiYWxwaGEifSwKKyAgICB7UEVSX0xJTlVYLCAiYWxwaGFldjY3IiwgImFscGhhIn0sCisjZW5kaWYKKyAgICB7LTEsIE5VTEwsIE5VTEx9CisgIH07CisKKyAgZm9yKGkgPSAwOyB0cmFuc2l0aW9uc1tpXS5wZXJ2YWwgPj0gMDsgaSsrKQorICAgICAgaWYoIXN0cmNtcChwZXJzLCB0cmFuc2l0aW9uc1tpXS50YXJnZXRfYXJjaCkpCisJYnJlYWs7CisKKyAgaWYodHJhbnNpdGlvbnNbaV0ucGVydmFsIDwgMCkKKyAgICBlcnJvcihFWElUX0ZBSUxVUkUsIDAsIF8oIiVzOiBVbnJlY29nbml6ZWQgYXJjaGl0ZWN0dXJlIiksIHBlcnMpOworCisgIHBlcnNfdmFsdWUgPSB0cmFuc2l0aW9uc1tpXS5wZXJ2YWwgfCBvcHRpb25zOworICByZXMgPSBzZXRfcGVycyhwZXJzX3ZhbHVlKTsKKyAgaWYocmVzID09IC1FSU5WQUwpCisgICAgcmV0dXJuIDE7CisKKyAgdW5hbWUoJnVuKTsKKyAgaWYodHJhbnNpdGlvbnNbaV0ucmVzdWx0X2FyY2ggJiYKKwlzdHJjbXAodW4ubWFjaGluZSwgdHJhbnNpdGlvbnNbaV0ucmVzdWx0X2FyY2gpKQorICB7CisgICAgaWYoc3RyY21wKHRyYW5zaXRpb25zW2ldLnJlc3VsdF9hcmNoLCAiaTM4NiIpCisgICAgICAgfHwgKHN0cmNtcCh1bi5tYWNoaW5lLCAiaTQ4NiIpCisJICAgJiYgc3RyY21wKHVuLm1hY2hpbmUsICJpNTg2IikKKwkgICAmJiBzdHJjbXAodW4ubWFjaGluZSwgImk2ODYiKQorCSAgICYmIHN0cmNtcCh1bi5tYWNoaW5lLCAiYXRobG9uIikpKQorICAgICAgZXJyb3IoRVhJVF9GQUlMVVJFLCAwLCBfKCIlczogVW5yZWNvZ25pemVkIGFyY2hpdGVjdHVyZSIpLCBwZXJzKTsKKyAgfQorCisgIHJldHVybiAwOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICBjb25zdCBjaGFyICpwOworICB1bnNpZ25lZCBsb25nIG9wdGlvbnMgPSAwOworICBpbnQgdmVyYm9zZSA9IDA7CisgIGludCBjOworCisgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyAgYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKyAgdGV4dGRvbWFpbihQQUNLQUdFKTsKKworICBpZiAoYXJnYyA8IDEpCisgICAgc2hvd191c2FnZShfKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKKworICBwID0gcHJvZ3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWU7CisgIGlmICghc3RyY21wKHAsICJzZXRhcmNoIikpIHsKKyAgICBhcmd2Kys7CisgICAgYXJnYy0tOworICAgIGlmIChhcmdjIDwgMSkKKyAgICAgIHNob3dfdXNhZ2UoXygiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CisgICAgcCA9IGFyZ3ZbMF07CisgICAgYXJndlswXSA9IGFyZ3ZbLTFdOyAgICAgIC8qIGZvciBnZXRvcHRfbG9uZygpIHRvIGdldCB0aGUgcHJvZ3JhbSBuYW1lICovCisgICAgaWYgKCFzdHJjbXAocCwgIi1oIikgfHwgIXN0cmNtcChwLCAiLS1oZWxwIikpCisgICAgICBzaG93X2hlbHAoKTsKKyAgfQorICAjaWYgZGVmaW5lZChfX3NwYXJjNjRfXykgfHwgZGVmaW5lZChfX3NwYXJjX18pCisgICBpZiAoIXN0cmNtcChwLCAic3BhcmMzMmJhc2giKSkgeworICAgICAgIGlmIChzZXRfYXJjaChwLCAwTCkpCisgICAgICAgICAgIGVycm9yKEVYSVRfRkFJTFVSRSwgZXJybm8sIF8oIkZhaWxlZCB0byBzZXQgcGVyc29uYWxpdHkgdG8gJXMiKSwgcCk7CisgICAgICAgZXhlY2woIi9iaW4vYmFzaCIsIE5VTEwpOworICAgICAgIGVycm9yKEVYSVRfRkFJTFVSRSwgZXJybm8sICIvYmluL2Jhc2giKTsKKyAgIH0KKyAgI2VuZGlmCisKKyAgd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIitodjNCRklMUlNUWFoiLCBsb25nb3B0cywgTlVMTCkpICE9IC0xKSB7CisgICAgc3dpdGNoIChjKSB7CisgICAgY2FzZSAnaCc6CisgICAgICBzaG93X2hlbHAoKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ3YnOgorICAgICAgdmVyYm9zZSA9IDE7CisgICAgICBicmVhazsKKyAgICBjYXNlICdSJzoKKwl0dXJuX29uKEFERFJfTk9fUkFORE9NSVpFLCBvcHRpb25zKTsKKwlicmVhazsKKyAgICBjYXNlICdGJzoKKwl0dXJuX29uKEZEUElDX0ZVTkNQVFJTLCBvcHRpb25zKTsKKwlicmVhazsKKyAgICBjYXNlICdaJzoKKwl0dXJuX29uKE1NQVBfUEFHRV9aRVJPLCBvcHRpb25zKTsKKwlicmVhazsKKyAgICBjYXNlICdMJzoKKwl0dXJuX29uKEFERFJfQ09NUEFUX0xBWU9VVCwgb3B0aW9ucyk7CisJYnJlYWs7CisgICAgY2FzZSAnWCc6CisJdHVybl9vbihSRUFEX0lNUExJRVNfRVhFQywgb3B0aW9ucyk7CisJYnJlYWs7CisgICAgY2FzZSAnQic6CisJdHVybl9vbihBRERSX0xJTUlUXzMyQklULCBvcHRpb25zKTsKKwlicmVhazsKKyAgICBjYXNlICdJJzoKKwl0dXJuX29uKFNIT1JUX0lOT0RFLCBvcHRpb25zKTsKKwlicmVhazsKKyAgICBjYXNlICdTJzoKKwl0dXJuX29uKFdIT0xFX1NFQ09ORFMsIG9wdGlvbnMpOworCWJyZWFrOworICAgIGNhc2UgJ1QnOgorCXR1cm5fb24oU1RJQ0tZX1RJTUVPVVRTLCBvcHRpb25zKTsKKwlicmVhazsKKyAgICBjYXNlICczJzoKKwl0dXJuX29uKEFERFJfTElNSVRfM0dCLCBvcHRpb25zKTsKKwlicmVhazsKKyAgICBjYXNlIE9QVF80R0I6ICAgICAgICAgIC8qIGp1c3QgaWdub3JlIHRoaXMgb25lICovCisgICAgICBicmVhazsKKyAgICB9CisgIH0KKworICBhcmdjIC09IG9wdGluZDsKKyAgYXJndiArPSBvcHRpbmQ7CisKKyAgaWYgKHNldF9hcmNoKHAsIG9wdGlvbnMpKQorICAgIGVycm9yKEVYSVRfRkFJTFVSRSwgZXJybm8sIF8oIkZhaWxlZCB0byBzZXQgcGVyc29uYWxpdHkgdG8gJXMiKSwgcCk7CisKKyAgaWYgKCFhcmdjKSB7CisgICAgZXhlY2woIi9iaW4vc2giLCAiLXNoIiwgTlVMTCk7CisgICAgZXJyb3IoRVhJVF9GQUlMVVJFLCBlcnJubywgIi9iaW4vc2giKTsKKyAgfQorCisgIGV4ZWN2cChhcmd2WzBdLCBhcmd2KTsKKyAgZXJyb3IoRVhJVF9GQUlMVVJFLCBlcnJubywgIiVzIiwgYXJndlswXSk7CisgIHJldHVybiBFWElUX0ZBSUxVUkU7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvc2V0c2lkLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvc2V0c2lkLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU5NjcxYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9zZXRzaWQuMQpAQCAtMCwwICsxLDIwIEBACisuXCIgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKy5cIiBJbiB0aGUgcHVibGljIGRvbWFpbi4KKy5cIiBQYXRoIG1vZGlmaWNhdGlvbnMgYnkgZmFpdGhAY3MudW5jLmVkdQorLlRIIFNFVFNJRCAxICIyMCBOb3ZlbWJlciAxOTkzIiAiTGludXggMC45OSIgIkxpbnV4IFByb2dyYW1tZXIncyBNYW51YWwiCisuU0ggTkFNRQorc2V0c2lkIFwtIHJ1biBhIHByb2dyYW0gaW4gYSBuZXcgc2Vzc2lvbgorLlNIIFNZTk9QU0lTCisuQiBzZXRzaWQKKy5JIHByb2dyYW0KKy5SSSBbIGFyZyAuLi5dCisuU0ggREVTQ1JJUFRJT04KKy5CIHNldHNpZAorcnVucyBhIHByb2dyYW0gaW4gYSBuZXcgc2Vzc2lvbi4KKy5TSCAiU0VFIEFMU08iCisuQlIgc2V0c2lkICgyKQorLlNIIEFVVEhPUgorUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBzZXRzaWQgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvc2V0c2lkLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvc2V0c2lkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFmM2IwYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9zZXRzaWQuYwpAQCAtMCwwICsxLDQ4IEBACisvKgorICogc2V0c2lkLmMgLS0gZXhlY3V0ZSBhIGNvbW1hbmQgaW4gYSBuZXcgc2Vzc2lvbgorICogUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIEluIHRoZSBwdWJsaWMgZG9tYWluLgorICoKKyAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICoKKyAqIDIwMDEtMDEtMTggSm9obiBGcmVtbGluIDx2aWlAcGVuZ3VpbnBvd2VyZWQuY29tPgorICogLSBmb3JrIGluIGNhc2Ugd2UgYXJlIHByb2Nlc3MgZ3JvdXAgbGVhZGVyCisgKgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgIm5scy5oIgorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisJCisJaWYgKGFyZ2MgPCAyKSB7CisJCWZwcmludGYoc3RkZXJyLCBfKCJ1c2FnZTogJXMgcHJvZ3JhbSBbYXJnIC4uLl1cbiIpLAorCQkJYXJndlswXSk7CisJCWV4aXQoMSk7CisJfQorCWlmIChnZXRwZ3JwKCkgPT0gZ2V0cGlkKCkpIHsKKwkJc3dpdGNoKGZvcmsoKSl7CisJCWNhc2UgLTE6CisJCQlwZXJyb3IoImZvcmsiKTsKKwkJCWV4aXQoMSk7CisJCWNhc2UgMDoJCS8qIGNoaWxkICovCisJCQlicmVhazsKKwkJZGVmYXVsdDoJLyogcGFyZW50ICovCisJCQlleGl0KDApOworCQl9CisJfQorCWlmIChzZXRzaWQoKSA8IDApIHsKKwkJcGVycm9yKCJzZXRzaWQiKTsgLyogY2Fubm90IGhhcHBlbiAqLworCQlleGl0KDEpOworCX0KKwlleGVjdnAoYXJndlsxXSwgYXJndiArIDEpOworCXBlcnJvcigiZXhlY3ZwIik7CisJZXhpdCgxKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9zd2l0Y2hfcm9vdC44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3N3aXRjaF9yb290LjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY3MTJlYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy9zd2l0Y2hfcm9vdC44CkBAIC0wLDAgKzEsNjEgQEAKKy5cIiBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKy5USCBTV0lUQ0hfUk9PVCA4ICJKdW5lIDIwMDkiICJMaW51eCIKKy5TSCBOQU1FCitzd2l0Y2hfcm9vdCBcLSBzd2l0Y2ggdG8gYW5vdGhlciBmaWxlc3lzdGVtIGFzIHRoZSByb290IG9mIHRoZSBtb3VudCB0cmVlLgorLlNIIFNZTk9QU0lTCisuQiBzd2l0Y2hfcm9vdAorLlJCIFsgXC1oViBdCisuTFAKKy5CIHN3aXRjaF9yb290CisuSSBuZXdyb290CisuSSBpbml0CisuUkkgWyBhcmcgLi4uXQorLlNIIERFU0NSSVBUSU9OCisuQiBzd2l0Y2hfcm9vdAorbW92ZXMgYWxyZWFkeSBtb3VudGVkIC9wcm9jLCAvZGV2IGFuZCAvc3lzIHRvCisuSSBuZXdyb290CithbmQgbWFrZXMKKy5JIG5ld3Jvb3QKK3RoZSBuZXcgcm9vdCBmaWxlc3lzdGVtIGFuZCBzdGFydHMKKy5JIGluaXQKK3Byb2Nlc3MuCisKKy5CIFdBUk5JTkc6IHN3aXRjaF9yb290IHJlbW92ZXMgcmVjdXJzaXZlbHkgYWxsIGZpbGVzIGFuZCBkaXJlY3RvcmllcyBvbiB0aGUgY3VycmVudCByb290IGZpbGVzeXN0ZW0uCisKKy5TSCBPUFRJT05TCisuSVAgIlxmQlwtaCwgXC1cLWhlbHBcZlAiCitzaG93IGhlbHAgYW5kIGV4aXQKKy5JUCAiXGZCXC1WLCBcLVwtdmVyc2lvblxmUCIKK3Nob3cgdmVyc2lvbiBudW1iZXIgYW5kIGV4aXQKKworLlNIIFJFVFVSTiBWQUxVRQorLkIgc3dpdGNoX3Jvb3QKK3JldHVybnMgMCBvbiBzdWNjZXNzIGFuZCAxIG9uIGZhaWx1cmUuCisKKy5TSCBOT1RFUworc3dpdGNoX3Jvb3Qgd2lsbCBmYWlsIHRvIGZ1bmN0aW9uIGlmCisuQiBuZXdyb290CitpcyBub3QgdGhlIHJvb3Qgb2YgYSBtb3VudC4gSWYgeW91IHdhbnQgdG8gc3dpdGNoIHJvb3QgaW50byBhIGRpcmVjdG9yeSB0aGF0Citkb2VzIG5vdCBtZWV0IHRoaXMgcmVxdWlyZW1lbnQgdGhlbiB5b3UgY2FuIGZpcnN0IHVzZSBhIGJpbmQtbW91bnRpbmcgdHJpY2sgdG8KK3R1cm4gYW55IGRpcmVjdG9yeSBpbnRvIGEgbW91bnQgcG9pbnQ6Cisuc3AKKy5uZgorLlJTCittb3VudCAtLWJpbmQgJERJUiAkRElSCisuUkUKKy5maQorCisuU0ggIlNFRSBBTFNPIgorLkJSIG1vdW50ICg4KQorLkJSIGNocm9vdCAoMikKKy5CUiBpbml0ICg4KQorLkJSIG1raW5pdHJkICg4KQorLlNIIEFVVEhPUlMKKy5uZgorUGV0ZXIgSm9uZXMgPHBqb25lc0ByZWRoYXQuY29tPgorSmVyZW15IEthdHogPGthdHpqQHJlZGhhdC5jb20+CitLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKy5maQorLlNIIEFWQUlMQUJJTElUWQorVGhlIHN3aXRjaF9yb290IGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3N3aXRjaF9yb290LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvc3dpdGNoX3Jvb3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDMyMjVkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3N3aXRjaF9yb290LmMKQEAgLTAsMCArMSwyMDIgQEAKKy8qCisgKiBzd2l0Y2hyb290LmMgLSBzd2l0Y2ggdG8gbmV3IHJvb3QgZGlyZWN0b3J5IGFuZCBzdGFydCBpbml0LgorICoKKyAqIENvcHlyaWdodCAyMDAyLTIwMDkgUmVkIEhhdCwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICoKKyAqIEF1dGhvcnM6CisgKglQZXRlciBKb25lcyA8cGpvbmVzQHJlZGhhdC5jb20+CisgKglKZXJlbXkgS2F0eiA8a2F0empAcmVkaGF0LmNvbT4KKyAqLworI2luY2x1ZGUgPHN5cy9tb3VudC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxlcnIuaD4KKworI2lmbmRlZiBNU19NT1ZFCisjZGVmaW5lIE1TX01PVkUgODE5MgorI2VuZGlmCisKKy8qIHJlbW92ZSBhbGwgZmlsZXMvZGlyZWN0b3JpZXMgYmVsb3cgZGlyTmFtZSAtLSBkb24ndCBjcm9zcyBtb3VudHBvaW50cyAqLworc3RhdGljIGludCByZWN1cnNpdmVSZW1vdmUoaW50IGZkKQoreworCXN0cnVjdCBzdGF0IHJiOworCURJUiAqZGlyOworCWludCByYyA9IC0xOworCWludCBkZmQ7CisKKwlpZiAoIShkaXIgPSBmZG9wZW5kaXIoZmQpKSkgeworCQl3YXJuKCJmYWlsZWQgdG8gb3BlbiBkaXJlY3RvcnkiKTsKKwkJZ290byBkb25lOworCX0KKworCS8qIGZkb3BlbmRpcigpIHByZWNsdWRlcyB1cyBmcm9tIGNvbnRpbnVpbmcgdG8gdXNlIHRoZSBpbnB1dCBmZCAqLworCWRmZCA9IGRpcmZkKGRpcik7CisKKwlpZiAoZnN0YXQoZGZkLCAmcmIpKSB7CisJCXdhcm4oImZhaWxlZCB0byBzdGF0IGRpcmVjdG9yeSIpOworCQlnb3RvIGRvbmU7CisJfQorCisJd2hpbGUoMSkgeworCQlzdHJ1Y3QgZGlyZW50ICpkOworCisJCWVycm5vID0gMDsKKwkJaWYgKCEoZCA9IHJlYWRkaXIoZGlyKSkpIHsKKwkJCWlmIChlcnJubykgeworCQkJCXdhcm4oImZhaWxlZCB0byByZWFkIGRpcmVjdG9yeSIpOworCQkJCWdvdG8gZG9uZTsKKwkJCX0KKwkJCWJyZWFrOwkvKiBlbmQgb2YgZGlyZWN0b3J5ICovCisJCX0KKworCQlpZiAoIXN0cmNtcChkLT5kX25hbWUsICIuIikgfHwgIXN0cmNtcChkLT5kX25hbWUsICIuLiIpKQorCQkJY29udGludWU7CisKKwkJaWYgKGQtPmRfdHlwZSA9PSBEVF9ESVIpIHsKKwkJCXN0cnVjdCBzdGF0IHNiOworCisJCQlpZiAoZnN0YXRhdChkZmQsIGQtPmRfbmFtZSwgJnNiLCBBVF9TWU1MSU5LX05PRk9MTE9XKSkgeworCQkJCXdhcm4oImZhaWxlZCB0byBzdGF0ICVzIiwgZC0+ZF9uYW1lKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJLyogcmVtb3ZlIHN1YmRpcmVjdG9yaWVzIGlmIGRldmljZSBpcyBzYW1lIGFzIGRpciAqLworCQkJaWYgKHNiLnN0X2RldiA9PSByYi5zdF9kZXYpIHsKKwkJCQlpbnQgY2ZkOworCisJCQkJY2ZkID0gb3BlbmF0KGRmZCwgZC0+ZF9uYW1lLCBPX1JET05MWSk7CisJCQkJaWYgKGNmZCA+PSAwKSB7CisJCQkJCXJlY3Vyc2l2ZVJlbW92ZShjZmQpOworCQkJCQljbG9zZShjZmQpOworCQkJCX0KKwkJCX0gZWxzZQorCQkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKHVubGlua2F0KGRmZCwgZC0+ZF9uYW1lLAorCQkJICAgICBkLT5kX3R5cGUgPT0gRFRfRElSID8gQVRfUkVNT1ZFRElSIDogMCkpCisJCQl3YXJuKCJmYWlsZWQgdG8gdW5saW5rICVzIiwgZC0+ZF9uYW1lKTsKKwl9CisKKwlyYyA9IDA7CS8qIHN1Y2Nlc3MgKi8KKworZG9uZToKKwlpZiAoZGlyKQorCQljbG9zZWRpcihkaXIpOworCXJldHVybiByYzsKK30KKworc3RhdGljIGludCBzd2l0Y2hyb290KGNvbnN0IGNoYXIgKm5ld3Jvb3QpCit7CisJLyogIERvbid0IHRyeSB0byB1bm1vdW50IHRoZSBvbGQgIi8iLCB0aGVyZSdzIG5vIHdheSB0byBkbyBpdC4gKi8KKwljb25zdCBjaGFyICp1bW91bnRzW10gPSB7ICIvZGV2IiwgIi9wcm9jIiwgIi9zeXMiLCBOVUxMIH07CisJaW50IGk7CisJaW50IGNmZDsKKwlwaWRfdCBwaWQ7CisKKwlmb3IgKGkgPSAwOyB1bW91bnRzW2ldICE9IE5VTEw7IGkrKykgeworCQljaGFyIG5ld21vdW50W1BBVEhfTUFYXTsKKworCQlzbnByaW50ZihuZXdtb3VudCwgc2l6ZW9mKG5ld21vdW50KSwgIiVzJXMiLCBuZXdyb290LCB1bW91bnRzW2ldKTsKKworCQlpZiAobW91bnQodW1vdW50c1tpXSwgbmV3bW91bnQsIE5VTEwsIE1TX01PVkUsIE5VTEwpIDwgMCkgeworCQkJd2FybigiZmFpbGVkIHRvIG1vdW50IG1vdmluZyAlcyB0byAlcyIsCisJCQkJdW1vdW50c1tpXSwgbmV3bW91bnQpOworCQkJd2FybngoImZvcmNpbmcgdW5tb3VudCBvZiAlcyIsIHVtb3VudHNbaV0pOworCQkJdW1vdW50Mih1bW91bnRzW2ldLCBNTlRfRk9SQ0UpOworCQl9CisJfQorCisJaWYgKGNoZGlyKG5ld3Jvb3QpKSB7CisJCXdhcm4oImZhaWxlZCB0byBjaGFuZ2UgZGlyZWN0b3J5IHRvICVzIiwgbmV3cm9vdCk7CisJCXJldHVybiAtMTsKKwl9CisKKwljZmQgPSBvcGVuKCIvIiwgT19SRE9OTFkpOworCisJaWYgKG1vdW50KG5ld3Jvb3QsICIvIiwgTlVMTCwgTVNfTU9WRSwgTlVMTCkgPCAwKSB7CisJCXdhcm4oImZhaWxlZCB0byBtb3VudCBtb3ZpbmcgJXMgdG8gLyIsIG5ld3Jvb3QpOworCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKGNocm9vdCgiLiIpKSB7CisJCXdhcm4oImZhaWxlZCB0byBjaGFuZ2Ugcm9vdCIpOworCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKGNmZCA+PSAwKSB7CisJCXBpZCA9IGZvcmsoKTsKKwkJaWYgKHBpZCA8PSAwKSB7CisJCQlyZWN1cnNpdmVSZW1vdmUoY2ZkKTsKKwkJCWlmIChwaWQgPT0gMCkKKwkJCQlleGl0KEVYSVRfU1VDQ0VTUyk7CisJCX0KKwkJY2xvc2UoY2ZkKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHVzYWdlKEZJTEUgKm91dHB1dCkKK3sKKwlmcHJpbnRmKG91dHB1dCwgInVzYWdlOiAlcyA8bmV3cm9vdGRpcj4gPGluaXQ+IDxhcmdzIHRvIGluaXQ+XG4iLAorCQkJcHJvZ3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWUpOworCWV4aXQob3V0cHV0ID09IHN0ZGVyciA/IEVYSVRfRkFJTFVSRSA6IEVYSVRfU1VDQ0VTUyk7Cit9CisKK3N0YXRpYyB2b2lkIHZlcnNpb24odm9pZCkKK3sKKwlmcHJpbnRmKHN0ZG91dCwgICIlcyBmcm9tICVzXG4iLCBwcm9ncmFtX2ludm9jYXRpb25fc2hvcnRfbmFtZSwKKwkJCVBBQ0tBR0VfU1RSSU5HKTsKKwlleGl0KEVYSVRfU1VDQ0VTUyk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJY2hhciAqbmV3cm9vdCwgKmluaXQsICoqaW5pdGFyZ3M7CisKKwlpZiAoYXJndlsxXSAmJiAoIXN0cmNtcChhcmd2WzFdLCAiLS1oZWxwIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiLWgiKSkpCisJCXVzYWdlKHN0ZG91dCk7CisJaWYgKGFyZ3ZbMV0gJiYgKCFzdHJjbXAoYXJndlsxXSwgIi0tdmVyc2lvbiIpIHx8ICFzdHJjbXAoYXJndlsxXSwgIi1WIikpKQorCQl2ZXJzaW9uKCk7CisJaWYgKGFyZ2MgPCAzKQorCQl1c2FnZShzdGRlcnIpOworCisJbmV3cm9vdCA9IGFyZ3ZbMV07CisJaW5pdCA9IGFyZ3ZbMl07CisJaW5pdGFyZ3MgPSAmYXJndlsyXTsKKworCWlmICghKm5ld3Jvb3QgfHwgISppbml0KQorCQl1c2FnZShzdGRlcnIpOworCisJaWYgKHN3aXRjaHJvb3QobmV3cm9vdCkpCisJCWVycngoRVhJVF9GQUlMVVJFLCAiZmFpbGVkLiBTb3JyeS4iKTsKKworCWlmIChhY2Nlc3MoaW5pdCwgWF9PSykpCisJCXdhcm4oImNhbm5vdCBhY2Nlc3MgJXMiLCBpbml0KTsKKworCWV4ZWN2KGluaXQsIGluaXRhcmdzKTsKKwllcnIoRVhJVF9GQUlMVVJFLCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXMiLCBpbml0KTsKK30KKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3R1bmVscC44IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3R1bmVscC44Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YWJmZjUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvdHVuZWxwLjgKQEAgLTAsMCArMSwxODggQEAKKy5cIiBUaGlzIGZpbGUgQ29weXJpZ2h0IChDKSAxOTkyLTE5OTcgTWljaGFlbCBLLiBKb2huc29uIDxqb2huc29ubUByZWRoYXQuY29tPgorLlwiIFRoaXMgZmlsZSBDb3B5cmlnaHQgKEMpIDE5OTggICAgICBBbmRyZWEgQXJjYW5nZWxpICAgPGFuZHJlYUBlLW1pbmQuY29tPgorLlwiIEl0IG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorLlwiIHZlcnNpb24gMiwgb3IgYW55IGhpZ2hlciB2ZXJzaW9uLiAgU2VlIHNlY3Rpb24gQ09QWUlORyBvZiB0aGUgR05VIEdlbmVyYWwKKy5cIiBQdWJsaWMgbGljZW5zZSBmb3IgY29uZGl0aW9ucyB1bmRlciB3aGljaCB0aGlzIGZpbGUgbWF5IGJlIHJlZGlzdHJpYnV0ZWQuCisuXCIKKy5cIiBQb2xpc2hlZCBhIGJpdCAtIGFlYgorLlRIIHR1bmVscCA4ICI3IE1heSAxOTk5IiAidHVuZWxwIiAiTGludXggUHJvZ3JhbW1lcidzIE1hbnVhbCIKKy5TSCBOQU1FCit0dW5lbHAgXC0gc2V0IHZhcmlvdXMgcGFyYW1ldGVycyBmb3IgdGhlIGxwIGRldmljZQorLlNIIFNZTk9QU0lTCisuQiB0dW5lbHAKKy5JIGRldmljZQorLlJCIFsgXC1pCisuSVIgSVJRIF0KKy5SQiBbIFwtdAorLklSIFRJTUUgXQorLlJCIFsgXC1jCisuSVIgQ0hBUlMgXQorLlJCIFsgXC13CisuSVIgV0FJVCBdCisuUkIgWyBcLWEKKy5SQiB7IG9uIHwgb2ZmIH1dCisuUkIgWyBcLW8KKy5SQiB7IG9uIHwgb2ZmIH1dCisuUkIgWyBcLUMKKy5SQiB7IG9uIHwgb2ZmIH1dCisuUkIgWyBcLXIgXQorLlJCIFsgXC1zIF0KKy5SQiBbIFwtcQorLlJCIHsgb24gfCBvZmYgfV0KKy5SQiBbIFwtVAorLlJCIHsgb24gfCBvZmYgfV0KKy5TSCBERVNDUklQVElPTgorXGZCdHVuZWxwXGZQIHNldHMgc2V2ZXJhbCBwYXJhbWV0ZXJzIGZvciB0aGUgL2Rldi9scFxmST9cZlAgZGV2aWNlcywgZm9yIGJldHRlcgorcGVyZm9ybWFuY2UgKG9yIGZvciBhbnkgcGVyZm9ybWFuY2UgYXQgYWxsLCBpZiB5b3VyIHByaW50ZXIgd29uJ3Qgd29yaword2l0aG91dCBpdC4uLikgIFdpdGhvdXQgcGFyYW1ldGVycywgaXQgdGVsbHMgd2hldGhlciB0aGUgZGV2aWNlIGlzIHVzaW5nCitpbnRlcnJ1cHRzLCBhbmQgaWYgc28sIHdoaWNoIG9uZS4gIFdpdGggcGFyYW1ldGVycywgaXQgc2V0cyB0aGUgZGV2aWNlCitjaGFyYWN0ZXJpc3RpY3MgYWNjb3JkaW5nbHkuICBUaGUgcGFyYW1ldGVycyBhcmUgYXMgZm9sbG93czoKKworLlRQCisuQkkgXC1pICIgSVJRIgorc3BlY2lmaWVzIHRoZSBJUlEgdG8gdXNlIGZvciB0aGUgcGFyYWxsZWwgcG9ydCBpbiBxdWVzdGlvbi4gIElmIHRoaXMKK2lzIHNldCB0byBzb21ldGhpbmcgbm9uLXplcm8sIFwtdCBhbmQgXC1jIGhhdmUgbm8gZWZmZWN0LiAgSWYgeW91ciBwb3J0Citkb2VzIG5vdCB1c2UgaW50ZXJydXB0cywgdGhpcyBvcHRpb24gd2lsbCBtYWtlIHByaW50aW5nIHN0b3AuCitUaGUgY29tbWFuZAorLkIgdHVuZWxwIC1pIDAKK3Jlc3RvcmVzIG5vbi1pbnRlcnJ1cHQgZHJpdmVuIChwb2xsaW5nKSBhY3Rpb24sIGFuZCB5b3VyIHByaW50ZXIgc2hvdWxkCit3b3JrIGFnYWluLiAgSWYgeW91ciBwYXJhbGxlbCBwb3J0IGRvZXMgc3VwcG9ydCBpbnRlcnJ1cHRzLAoraW50ZXJydXB0LWRyaXZlbiBwcmludGluZyBzaG91bGQgYmUgc29tZXdoYXQgZmFzdGVyIGFuZCBlZmZpY2llbnQsIGFuZAord2lsbCBwcm9iYWJseSBiZSBkZXNpcmFibGUuCisKK05PVEU6IFRoaXMgb3B0aW9uIHdpbGwgaGF2ZSBubyBlZmZlY3Qgd2l0aCBrZXJuZWwgMi4xLjEzMSBvciBsYXRlciBzaW5jZQordGhlIGlycSBpcyBoYW5kbGVkIGJ5IHRoZSBwYXJwb3J0IGRyaXZlci4gWW91IGNhbiBjaGFuZ2UKK3RoZSBwYXJwb3J0IGlycSBmb3IgZXhhbXBsZSB2aWEKKy5JUiAvcHJvYy9wYXJwb3J0LyovaXJxIC4KK1JlYWQKKy5JIC91c3Ivc3JjL2xpbnV4L0RvY3VtZW50YXRpb24vcGFycG9ydC50eHQKK2ZvciBtb3JlIGRldGFpbHMgb24gcGFycG9ydC4KKworLlRQCisuQkkgXC10ICIgVElNRSIKK2lzIHRoZSBhbW91bnQgb2YgdGltZSBpbiBqaWZmaWVzIHRoYXQgdGhlIGRyaXZlciB3YWl0cyBpZiB0aGUKK3ByaW50ZXIgZG9lc24ndCB0YWtlIGEgY2hhcmFjdGVyIGZvciB0aGUgbnVtYmVyIG9mIHRyaWVzIGRpY3RhdGVkIGJ5Cit0aGUgXC1jIHBhcmFtZXRlci4gIDEwIGlzIHRoZSBkZWZhdWx0IHZhbHVlLiAgSWYgeW91IHdhbnQgZmFzdGVzdAorcG9zc2libGUgcHJpbnRpbmcsIGFuZCBkb24ndCBjYXJlIGFib3V0IHN5c3RlbSBsb2FkLCB5b3UgbWF5IHNldCB0aGlzCit0byAwLiAgSWYgeW91IGRvbid0IGNhcmUgaG93IGZhc3QgeW91ciBwcmludGVyIGdvZXMsIG9yIGFyZSBwcmludGluZwordGV4dCBvbiBhIHNsb3cgcHJpbnRlciB3aXRoIGEgYnVmZmVyLCB0aGVuIDUwMCAoNSBzZWNvbmRzKSBzaG91bGQgYmUKK2ZpbmUsIGFuZCB3aWxsIGdpdmUgeW91IHZlcnkgbG93IHN5c3RlbSBsb2FkLiAgVGhpcyB2YWx1ZSBnZW5lcmFsbHkKK3Nob3VsZCBiZSBsb3dlciBmb3IgcHJpbnRpbmcgZ3JhcGhpY3MgdGhhbiB0ZXh0LCBieSBhIGZhY3RvciBvZgorYXBwcm94aW1hdGVseSAxMCwgZm9yIGJlc3QgcGVyZm9ybWFuY2UuCisKKy5UUAorLkJJIFwtYyAiIENIQVJTIgoraXMgdGhlIG51bWJlciBvZiB0aW1lcyB0byB0cnkgdG8gb3V0cHV0IGEgY2hhcmFjdGVyIHRvIHRoZQorcHJpbnRlciBiZWZvcmUgc2xlZXBpbmcgZm9yIFwtdCBcZklUSU1FXGZQLiAgSXQgaXMgdGhlIG51bWJlciBvZiB0aW1lcyBhcm91bmQKK2EgbG9vcCB0aGF0IHRyaWVzIHRvIHNlbmQgYSBjaGFyYWN0ZXIgdG8gdGhlIHByaW50ZXIuICAxMjAgYXBwZWFycyB0bworYmUgYSBnb29kIHZhbHVlIGZvciBtb3N0IHByaW50ZXJzIGluIHBvbGxpbmcgbW9kZS4gIDEwMDAgaXMgdGhlIGRlZmF1bHQsCitiZWNhdXNlIHRoZXJlIGFyZSBzb21lIHByaW50ZXJzIHRoYXQgYmVjb21lIGplcmt5IG90aGVyd2lzZSwgYnV0IHlvdSBcZkltdXN0XGZQCitzZXQgdGhpcyB0byBgMScgdG8gaGFuZGxlIHRoZSBtYXhpbWFsIENQVSBlZmZpY2llbmN5IGlmIHlvdSBhcmUgdXNpbmcKK2ludGVycnVwdHMuIElmIHlvdSBoYXZlIGEgdmVyeSBmYXN0IHByaW50ZXIsIGEgdmFsdWUgb2YgMTAgbWlnaHQgbWFrZSBtb3JlCitzZW5zZSBldmVuIGlmIGluIHBvbGxpbmcgbW9kZS4KK0lmIHlvdSBoYXZlIGEgXGZJcmVhbGx5XGZQIG9sZCBwcmludGVyLCB5b3UgY2FuIGluY3JlYXNlIHRoaXMgZnVydGhlci4KKworU2V0dGluZyBcLXQgXGZJVElNRVxmUCB0byAwIGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZyBcLWMgXGZJQ0hBUlNcZlAKK3RvIGluZmluaXR5LgorCisuVFAKKy5CSSBcLXcgIiBXQUlUIgoraXMgdGhlIG51bWJlciBvZiB1c2VjIHdlIHdhaXQgd2hpbGUgcGxheWluZyB3aXRoIHRoZSBzdHJvYmUgc2lnbmFsLgorV2hpbGUgbW9zdCBwcmludGVycyBhcHBlYXIgdG8gYmUgYWJsZSB0byBkZWFsIHdpdGggYW4gZXh0cmVtZWx5CitzaG9ydCBzdHJvYmUsIHNvbWUgcHJpbnRlcnMgZGVtYW5kIGEgbG9uZ2VyIG9uZS4gIEluY3JlYXNpbmcgdGhpcyBmcm9tCit0aGUgZGVmYXVsdCAxIG1heSBtYWtlIGl0IHBvc3NpYmxlIHRvIHByaW50IHdpdGggdGhvc2UgcHJpbnRlcnMuICBUaGlzIG1heSBhbHNvCittYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBsb25nZXIgY2FibGVzLiBJdCdzIGFsc28gcG9zc2libGUgdG8gZGVjcmVhc2UgdGhpcwordmFsdWUgdG8gMCBpZiB5b3VyIHByaW50ZXIgaXMgZmFzdCBlbm91Z2ggb3IgeW91ciBtYWNoaW5lIGlzIHNsb3cgZW5vdWdoLgorCisuVFAKKy5CUiBcLWEgIiB7IiBvbiB8IG9mZiB9CitUaGlzIGlzIHdoZXRoZXIgdG8gYWJvcnQgb24gcHJpbnRlciBlcnJvciAtIHRoZSBkZWZhdWx0CitpcyBub3QgdG8uICBJZiB5b3UgYXJlIHNpdHRpbmcgYXQgeW91ciBjb21wdXRlciwgeW91IHByb2JhYmx5IHdhbnQgdG8KK2JlIGFibGUgdG8gc2VlIGFuIGVycm9yIGFuZCBmaXggaXQsIGFuZCBoYXZlIHRoZSBwcmludGVyIGdvIG9uCitwcmludGluZy4gIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB5b3UgYXJlbid0LCB5b3UgbWlnaHQgcmF0aGVyIHRoYXQKK3lvdXIgcHJpbnRlciBzcG9vbGVyIGZpbmQgb3V0IHRoYXQgdGhlIHByaW50ZXIgaXNuJ3QgcmVhZHksIHF1aXQKK3RyeWluZywgYW5kIHNlbmQgeW91IG1haWwgYWJvdXQgaXQuICBUaGUgY2hvaWNlIGlzIHlvdXJzLgorCisuVFAKKy5CUiBcLW8gIiB7IiBvbiB8IG9mZiB9CitUaGlzIG9wdGlvbiBpcyBtdWNoIGxpa2UgXC1hLiAgSXQgbWFrZXMgYW55CisuSSBvcGVuKCkKK29mIHRoaXMgZGV2aWNlIGNoZWNrIHRvIHNlZSB0aGF0IHRoZSBkZXZpY2UgaXMgb24tbGluZSBhbmQgbm90IHJlcG9ydGluZyBhbnkKK291dCBvZiBwYXBlciBvciBvdGhlciBlcnJvcnMuICBUaGlzIGlzIHRoZSBjb3JyZWN0IHNldHRpbmcgZm9yIG1vc3QKK3ZlcnNpb25zIG9mIGxwZC4KKworLlRQCisuQlIgXC1DICIgeyIgb24gfCBvZmYgfQorVGhpcyBvcHRpb24gYWRkcyBleHRyYSAoImNhcmVmdWwiKSBlcnJvciBjaGVja2luZy4gIFdoZW4KK3RoaXMgb3B0aW9uIGlzIG9uLCB0aGUgcHJpbnRlciBkcml2ZXIgd2lsbCBlbnN1cmUgdGhhdCB0aGUgcHJpbnRlciBpcworb24tbGluZSBhbmQgbm90IHJlcG9ydGluZyBhbnkgb3V0IG9mIHBhcGVyIG9yIG90aGVyIGVycm9ycyBiZWZvcmUKK3NlbmRpbmcgZGF0YS4gIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgcHJpbnRlcnMgdGhhdCBub3JtYWxseQorYXBwZWFyIHRvIGFjY2VwdCBkYXRhIHdoZW4gdHVybmVkIG9mZi4KKworTk9URTogVGhpcyBvcHRpb24gaXMgb2Jzb2xldGUgYmVjYXVzZSBpdCdzIHRoZSBkZWZhdWx0IGluIDIuMS4xMzEga2VybmVsCitvciBsYXRlci4KKworLlRQCisuQiBcLXMKK1RoaXMgb3B0aW9uIHJldHVybnMgdGhlIGN1cnJlbnQgcHJpbnRlciBzdGF0dXMsIGJvdGggYXMgYQorZGVjaW1hbCBudW1iZXIgZnJvbSAwLi4yNTUsIGFuZCBhcyBhIGxpc3Qgb2YgYWN0aXZlIGZsYWdzLiAgV2hlbgordGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBcLXEgb2ZmLCB0dXJuaW5nIG9mZiB0aGUgZGlzcGxheSBvZiB0aGUKK2N1cnJlbnQgSVJRLCBpcyBpbXBsaWVkLgorCisuVFAKKy5CUiBcLVQgIiB7IiBvbiB8IG9mZiB9CitUaGlzIG9wdGlvbiBpcyBvYnNvbGV0ZS4gSXQgd2FzIGFkZGVkIGluIExpbnV4IDIuMS4xMzEsCithbmQgcmVtb3ZlZCBhZ2FpbiBpbiBMaW51eCAyLjMuMTAuIFRoZSBiZWxvdyBpcyBmb3IgdGhlc2UKK29sZCBrZXJuZWxzIG9ubHkuCisKK1RoaXMgb3B0aW9uIHRlbGxzIHRoZSBscCBkcml2ZXIgdG8gdHJ1c3Qgb3Igbm90IHRoZSBJUlEuCitUaGlzIG9wdGlvbiBtYWtlcyBzZW5zZSBvbmx5IGlmIHlvdSBhcmUgdXNpbmcgaW50ZXJydXB0cy4KK0lmIHlvdSB0ZWxsIHRoZSBscCBkcml2ZXIgdG8gdHJ1c3QgdGhlIGlycSwgdGhlbiwgd2hlbiB0aGUgbHAgZHJpdmVyIHdpbGwKK2dldCBhbiBpcnEsIGl0IHdpbGwgc2VuZCB0aGUgbmV4dCBwZW5kaW5nIGNoYXJhY3RlciB0byB0aGUgcHJpbnRlcgordW5jb25kaXRpb25hbGx5LCBldmVuIGlmIHRoZSBwcmludGVyIHN0aWxsIGNsYWltcyB0byBiZSBCVVNZLgorVGhpcyBpcyB0aGUgb25seSB3YXkgdG8gc2xlZXAgb24gaW50ZXJydXB0IChhbmQgc28gdGhlIGhhbmRsZSB0aGUgaXJxCitwcmludGluZyBlZmZpY2llbnRseSkgYXQgbGVhc3Qgb24gRXBzb24gU3R5bHVzIENvbG9yIFByaW50ZXJzLgorVGhlIGxwIGRyaXZlciBhdXRvbWFnaWNhbGx5IGRldGVjdHMgaWYgeW91IGNvdWxkIGdldCBpbXByb3ZlZAorcGVyZm9ybWFuY2UgYnkgc2V0dGluZyB0aGlzIGZsYWcsIGFuZCBpbiBzdWNoIGNhc2UgaXQgd2lsbCB3YXJuIHlvdQord2l0aCBhIGtlcm5lbCBtZXNzYWdlLgorCitOT1RFOiBUcnVzdGluZyB0aGUgaXJxIGlzIHJlcG9ydGVkIHRvIGNvcnJ1cHQgdGhlIHByaW50aW5nIG9uIHNvbWUgaGFyZHdhcmUsCit5b3UgbXVzdCB0cnkgdG8ga25vdyBpZiB5b3VyIHByaW50ZXIgd2lsbCB3b3JrIG9yIG5vdC4uLgorCisuVFAKKy5CIFwtcgorVGhpcyBvcHRpb24gcmVzZXRzIHRoZSBwb3J0LiAgSXQgcmVxdWlyZXMgYSBMaW51eCBrZXJuZWwgdmVyc2lvbiBvZgorMS4xLjgwIG9yIGxhdGVyLgorCisuVFAKKy5CUiBcLXEgIiB7IiBvbiB8IG9mZiB9CitUaGlzIG9wdGlvbiBzZXRzIHByaW50aW5nIHRoZSBkaXNwbGF5IG9mIHRoZSBjdXJyZW50IElSUSBzZXR0aW5nLgorCisKKy5TSCBOT1RFUworLkJSIFwtbyAsCisuQlIgXC1DICwKK2FuZAorLkIgXC1zCithbGwgcmVxdWlyZSBhIExpbnV4IGtlcm5lbCB2ZXJzaW9uIG9mIDEuMS43NiBvciBsYXRlci4KKworLkIgXC1DCityZXF1aXJlcyBhIExpbnV4IHZlcnNpb24gcHJpb3IgdG8gMi4xLjEzMS4KKworLkIgXC1UCityZXF1aXJlcyBhIExpbnV4IHZlcnNpb24gb2YgMi4xLjEzMSBvciBsYXRlci4KKworLlNIIEJVR1MKK0J5IHNvbWUgdW5mb3J0dW5hdGUgY29pbmNpZGVuY2UgdGhlIGlvY3RsIExQU1RSSUNUIG9mIDIuMC4zNiBoYXMgdGhlIHNhbWUKK251bWJlciBhcyB0aGUgaW9jdGwgTFBUUlVTVElSUSBpbnRyb2R1Y2VkIGluIDIuMS4xMzEuIFNvLCB1c2Ugb2YgdGhlIFwtVCBvcHRpb24KK29uIGEgMi4wLjM2IGtlcm5lbCB3aXRoIGFuIHR1bmVscCBjb21waWxlZCB1bmRlciAyLjEuMTMxIG9yIGxhdGVyIG1heSBoYXZlCit1bmV4cGVjdGVkIGVmZmVjdHMuCisKKy5TSCBGSUxFUworLkkgL2Rldi9scD8KKy5icgorLkkgL3Byb2MvcGFycG9ydC8qLyoKKworLlNIIEFWQUlMQUJJTElUWQorVGhlIHR1bmVscCAgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvdHVuZWxwLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvdHVuZWxwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE5Y2Y0MgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy90dW5lbHAuYwpAQCAtMCwwICsxLDI5OSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcCisqCUNvcHlyaWdodCAoQykgMTk5Mi0xOTk3IE1pY2hhZWwgSy4gSm9obnNvbiwgam9obnNvbm1AcmVkaGF0LmNvbSAgICAgICoKKyoJCQkJCQkJCQkgICAgICoKKyoJVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgICAgICAgICAgICAgKgorKglQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLCBvciBhbnkgbGF0ZXIgdmVyc2lvbi4gIFNlZSBmaWxlIENPUFlJTkcgICAqCisqCWZvciBpbmZvcm1hdGlvbiBvbiBkaXN0cmlidXRpb24gY29uZGl0aW9ucy4JCQkgICAgICoKK1wqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogJExvZzogdHVuZWxwLmMsdiAkCisgKiBSZXZpc2lvbiAxLjkgIDE5OTgvMDYvMDggMTk6Mzc6MTEgIGphbmwKKyAqIFRodXMgY29tcGlsZXMgdHVuZWxwIHdpdGggMi4xLjEwMyBrZXJuZWxzCisgKgorICogUmV2aXNpb24gMS44ICAxOTk3LzA3LzA2IDAwOjE0OjA2ICBhZWJyCisgKiBGaXhlcyB0byBzaWxlbmNlIC1XYWxsLgorICoKKyAqIFJldmlzaW9uIDEuNyAgMTk5Ny8wNi8yMCAxNjoxMDozOCAgamFubAorICogdHVuZWxwIHJlZnJlc2hlZCBmcm9tIGF1dGhvcnMgYXJjaGl2ZS4KKyAqCisgKiBSZXZpc2lvbiAxLjkgIDE5OTcvMDYvMjAgMTI6NTY6NDMgIGpvaG5zb25tCisgKiBGaW5pc2hlZCBmaXhpbmcgbGljZW5zZSB0ZXJtcy4KKyAqCisgKiBSZXZpc2lvbiAxLjggIDE5OTcvMDYvMjAgMTI6MzQ6NTkgIGpvaG5zb25tCisgKiBGaXhlZCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UuCisgKgorICogUmV2aXNpb24gMS43ICAxOTk1LzAzLzI5IDExOjE2OjIzICBqb2huc29ubQorICogVFlQTyBmaXhlZC4uLgorICoKKyAqIFJldmlzaW9uIDEuNiAgMTk5NS8wMy8yOSAgMTE6MTI6MTUgIGpvaG5zb25tCisgKiBBZGRlZCB0aGlyZCBhcmd1bWVudCB0byBpb2N0bCBuZWVkZWQgd2l0aCBuZXcga2VybmVscworICoKKyAqIFJldmlzaW9uIDEuNSAgMTk5NS8wMS8xMyAgMTA6MzM6NDMgIGpvaG5zb25tCisgKiBDaHJpcydzIGNoYW5nZXMgZm9yIG5ldyBpb2N0bCBudW1iZXJzIGFuZCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQorICogYW5kIHRoZSByZXNldCBpb2N0bC4KKyAqCisgKiBSZXZpc2lvbiAxLjQgIDE5OTUvMDEvMDMgIDE3OjQyOjE0ICBqb2huc29ubQorICogLXMgaXNuJ3Qgc3VwcG9zZWQgdG8gdGFrZSBhbiBhcmd1bWVudDsgcmVtb3ZlZCA6IGFmdGVyIHMgaW4gZ2V0b3B0Li4uCisgKgorICogUmV2aXNpb24gMS4zICAxOTk1LzAxLzAzICAwNzozNjo0OSAgam9obnNvbm0KKyAqIEZpeGVkIHR5cG8KKyAqCisgKiBSZXZpc2lvbiAxLjIgIDE5OTUvMDEvMDMgIDA3OjMzOjQ0ICBqb2huc29ubQorICogcmV2aXNpb25zIGZvciBscCBkcml2ZXIgdXBkYXRlcyBpbiBMaW51eCAxLjEuNzYKKyAqCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqCisgKiAxOTk5LTA1LTA3IE1lcmdlZCBMUFRSVVNUSVJRIHBhdGNoIGJ5IEFuZHJlYSBBcmNhbmdlbGkgKDE5OTgvMTEvMjkpLCBhZWIKKyAqCisgKi8KKworI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKy8qICNpbmNsdWRlIDxsaW51eC9mcy5oPiAqLworI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8bWFsbG9jLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlICJscC5oIgorI2luY2x1ZGUgIm5scy5oIgorCitzdHJ1Y3QgY29tbWFuZCB7CisgIGxvbmcgb3A7CisgIGxvbmcgdmFsOworICBzdHJ1Y3QgY29tbWFuZCAqbmV4dDsKK307CisKKworc3RhdGljIHZvaWQKK3ByaW50X3VzYWdlKGNoYXIgKnByb2duYW1lKSB7CisgIHByaW50ZihfKCJVc2FnZTogJXMgPGRldmljZT4gWyAtaSA8SVJRPiB8IC10IDxUSU1FPiB8IC1jIDxDSEFSUz4gfCAtdyA8V0FJVD4gfCBcbiIKKwkgICAiICAgICAgICAgIC1hIFtvbnxvZmZdIHwgLW8gW29ufG9mZl0gfCAtQyBbb258b2ZmXSB8IC1xIFtvbnxvZmZdIHwgLXMgfCBcbiIKKwkgICAiICAgICAgICAgIC1UIFtvbnxvZmZdIF1cbiIpLAorCSBwcm9nbmFtZSk7CisgIGV4aXQgKDEpOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRfdmVyc2lvbihjaGFyICpwcm9nbmFtZSkgeworICBwcmludGYoIiVzICglcylcbiIsIHByb2duYW1lLCBQQUNLQUdFX1NUUklORyk7Cit9CisKK3N0YXRpYyB2b2lkICoKK215bGxvYyhsb25nIHNpemUpIHsKKyAgdm9pZCAqcHRyOworICBpZighKHB0ciA9ICh2b2lkKiltYWxsb2Moc2l6ZSkpKSB7CisgICAgcGVycm9yKF8oIm1hbGxvYyBlcnJvciIpKTsKKyAgICBleGl0KDIpOworICB9CisgIHJldHVybiBwdHI7Cit9CisKK3N0YXRpYyBjaGFyICpwcm9nbmFtZTsKKworc3RhdGljIGxvbmcKK2dldF92YWwoY2hhciAqdmFsKSB7CisgIGxvbmcgcmV0OworICBpZiAoIShzc2NhbmYodmFsLCAiJWxkIiwgJnJldCkgPT0gMSkpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGJhZCB2YWx1ZVxuIiksIHByb2duYW1lKTsKKyAgICBleGl0KDMpOworICB9CisgIHJldHVybiByZXQ7Cit9CisKKworc3RhdGljIGxvbmcKK2dldF9vbm9mZihjaGFyICp2YWwpIHsKKyAgaWYgKCFzdHJuY2FzZWNtcCgib24iLCB2YWwsIDIpKQorICAgIHJldHVybiAxOworICByZXR1cm4gMDsKK30KKworaW50CittYWluIChpbnQgYXJnYywgY2hhciAqKiBhcmd2KSB7CisgIGludCBjLCBmZCwgaXJxLCBzdGF0dXMsIHNob3dfaXJxLCBvZmZzZXQgPSAwLCByZXR2YWw7CisgIGNoYXIgKmZpbGVuYW1lLCAqcDsKKyAgc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKyAgc3RydWN0IGNvbW1hbmQgKmNtZHMsICpjbWRzdDsKKworICBwcm9nbmFtZSA9IGFyZ3ZbMF07CisgIGlmICgocCA9IHN0cnJjaHIocHJvZ25hbWUsICcvJykpICE9IE5VTEwpCisJICBwcm9nbmFtZSA9IHArMTsKKworICBzZXRsb2NhbGUoTENfQUxMLCAiIik7CisgIGJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgaWYgKGFyZ2MgPCAyKSBwcmludF91c2FnZShwcm9nbmFtZSk7CisKKyAgY21kc3QgPSBjbWRzID0gbXlsbG9jKHNpemVvZihzdHJ1Y3QgY29tbWFuZCkpOworICBjbWRzLT5uZXh0ID0gMDsKKworICBzaG93X2lycSA9IDE7CisgIHdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2LCAidDpjOnc6YTppOmhvOkM6c3E6clQ6dlYiKSkgIT0gLTEpIHsKKyAgICBzd2l0Y2ggKGMpIHsKKyAgICBjYXNlICdoJzoKKyAgICAgIHByaW50X3VzYWdlKHByb2duYW1lKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ2knOgorICAgICAgY21kcy0+b3AgPSBMUFNFVElSUTsKKyAgICAgIGNtZHMtPnZhbCA9IGdldF92YWwob3B0YXJnKTsKKyAgICAgIGNtZHMtPm5leHQgPSBteWxsb2Moc2l6ZW9mKHN0cnVjdCBjb21tYW5kKSk7CisgICAgICBjbWRzID0gY21kcy0+bmV4dDsgY21kcy0+bmV4dCA9IDA7CisgICAgICBicmVhazsKKyAgICBjYXNlICd0JzoKKyAgICAgIGNtZHMtPm9wID0gTFBUSU1FOworICAgICAgY21kcy0+dmFsID0gZ2V0X3ZhbChvcHRhcmcpOworICAgICAgY21kcy0+bmV4dCA9IG15bGxvYyhzaXplb2Yoc3RydWN0IGNvbW1hbmQpKTsKKyAgICAgIGNtZHMgPSBjbWRzLT5uZXh0OyBjbWRzLT5uZXh0ID0gMDsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ2MnOgorICAgICAgY21kcy0+b3AgPSBMUENIQVI7CisgICAgICBjbWRzLT52YWwgPSBnZXRfdmFsKG9wdGFyZyk7CisgICAgICBjbWRzLT5uZXh0ID0gbXlsbG9jKHNpemVvZihzdHJ1Y3QgY29tbWFuZCkpOworICAgICAgY21kcyA9IGNtZHMtPm5leHQ7IGNtZHMtPm5leHQgPSAwOworICAgICAgYnJlYWs7CisgICAgY2FzZSAndyc6CisgICAgICBjbWRzLT5vcCA9IExQV0FJVDsKKyAgICAgIGNtZHMtPnZhbCA9IGdldF92YWwob3B0YXJnKTsKKyAgICAgIGNtZHMtPm5leHQgPSBteWxsb2Moc2l6ZW9mKHN0cnVjdCBjb21tYW5kKSk7CisgICAgICBjbWRzID0gY21kcy0+bmV4dDsgY21kcy0+bmV4dCA9IDA7CisgICAgICBicmVhazsKKyAgICBjYXNlICdhJzoKKyAgICAgIGNtZHMtPm9wID0gTFBBQk9SVDsKKyAgICAgIGNtZHMtPnZhbCA9IGdldF9vbm9mZihvcHRhcmcpOworICAgICAgY21kcy0+bmV4dCA9IG15bGxvYyhzaXplb2Yoc3RydWN0IGNvbW1hbmQpKTsKKyAgICAgIGNtZHMgPSBjbWRzLT5uZXh0OyBjbWRzLT5uZXh0ID0gMDsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ3EnOgorICAgICAgaWYgKGdldF9vbm9mZihvcHRhcmcpKSB7CisgICAgICAgIHNob3dfaXJxPTE7CisgICAgICB9IGVsc2UgeworICAgICAgICBzaG93X2lycT0wOworICAgICAgfQorI2lmZGVmIExQR0VUU1RBVFVTCisgICAgY2FzZSAnbyc6CisgICAgICBjbWRzLT5vcCA9IExQQUJPUlRPUEVOOworICAgICAgY21kcy0+dmFsID0gZ2V0X29ub2ZmKG9wdGFyZyk7CisgICAgICBjbWRzLT5uZXh0ID0gbXlsbG9jKHNpemVvZihzdHJ1Y3QgY29tbWFuZCkpOworICAgICAgY21kcyA9IGNtZHMtPm5leHQ7IGNtZHMtPm5leHQgPSAwOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnQyc6CisgICAgICBjbWRzLT5vcCA9IExQQ0FSRUZVTDsKKyAgICAgIGNtZHMtPnZhbCA9IGdldF9vbm9mZihvcHRhcmcpOworICAgICAgY21kcy0+bmV4dCA9IG15bGxvYyhzaXplb2Yoc3RydWN0IGNvbW1hbmQpKTsKKyAgICAgIGNtZHMgPSBjbWRzLT5uZXh0OyBjbWRzLT5uZXh0ID0gMDsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ3MnOgorICAgICAgc2hvd19pcnEgPSAwOworICAgICAgY21kcy0+b3AgPSBMUEdFVFNUQVRVUzsKKyAgICAgIGNtZHMtPnZhbCA9IDA7CisgICAgICBjbWRzLT5uZXh0ID0gbXlsbG9jKHNpemVvZihzdHJ1Y3QgY29tbWFuZCkpOworICAgICAgY21kcyA9IGNtZHMtPm5leHQ7IGNtZHMtPm5leHQgPSAwOworICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBMUFJFU0VUCisgICAgY2FzZSAncic6CisgICAgICBjbWRzLT5vcCA9IExQUkVTRVQ7CisgICAgICBjbWRzLT52YWwgPSAwOworICAgICAgY21kcy0+bmV4dCA9IG15bGxvYyhzaXplb2Yoc3RydWN0IGNvbW1hbmQpKTsKKyAgICAgIGNtZHMgPSBjbWRzLT5uZXh0OyBjbWRzLT5uZXh0ID0gMDsKKyAgICAgIGJyZWFrOworI2VuZGlmCisjaWZkZWYgTFBUUlVTVElSUQorICAgIGNhc2UgJ1QnOgorICAgICAgLyogTm90ZTogdGhpcyB3aWxsIGRvIHRoZSB3cm9uZyB0aGluZyBvbiAyLjAuMzYgd2hlbiBjb21waWxlZCB1bmRlciAyLjIueCAqLworICAgICAgY21kcy0+b3AgPSBMUFRSVVNUSVJROworICAgICAgY21kcy0+dmFsID0gZ2V0X29ub2ZmKG9wdGFyZyk7CisgICAgICBjbWRzLT5uZXh0ID0gbXlsbG9jKHNpemVvZihzdHJ1Y3QgY29tbWFuZCkpOworICAgICAgY21kcyA9IGNtZHMtPm5leHQ7IGNtZHMtPm5leHQgPSAwOworICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICBjYXNlICd2JzoKKyAgICBjYXNlICdWJzoKKyAgICAgIHByaW50X3ZlcnNpb24ocHJvZ25hbWUpOworICAgICAgZXhpdCgwKTsKKyAgICBkZWZhdWx0OgorICAgICAgcHJpbnRfdXNhZ2UocHJvZ25hbWUpOworICAgIH0KKyAgfQorCisgIGlmIChvcHRpbmQgIT0gYXJnYy0xKQorICAgIHByaW50X3VzYWdlKHByb2duYW1lKTsKKworICBmaWxlbmFtZSA9IHN0cmR1cChhcmd2W29wdGluZF0pOworICBmZCA9IG9wZW4oZmlsZW5hbWUsIE9fV1JPTkxZfE9fTk9OQkxPQ0ssIDApOworICAvKiBOZWVkIHRvIG9wZW4gT19OT05CTE9DSyBpbiBjYXNlIEFCT1JUT1BFTiBpcyBhbHJlYWR5IHNldCBhbmQKKyAgICAgcHJpbnRlciBpcyBvZmYgb3Igb2ZmLWxpbmUgb3IgaW4gYW4gZXJyb3IgY29uZGl0aW9uLiAgT3RoZXJ3aXNlCisgICAgIHdlIHdvdWxkIGFib3J0Li4uICovCisgIGlmIChmZCA8IDApIHsKKyAgICBwZXJyb3IoZmlsZW5hbWUpOworICAgIHJldHVybiAtMTsKKyAgfQorCisgIGZzdGF0KGZkLCAmc3RhdGJ1Zik7CisKKyAgaWYoIVNfSVNDSFIoc3RhdGJ1Zi5zdF9tb2RlKSkgeworICAgIHByaW50ZihfKCIlczogJXMgbm90IGFuIGxwIGRldmljZS5cbiIpLCBhcmd2WzBdLCBmaWxlbmFtZSk7CisgICAgcHJpbnRfdXNhZ2UocHJvZ25hbWUpOworICB9CisKKyAgLyogQWxsb3cgZm9yIGJpbmFyaWVzIGNvbXBpbGVkIHVuZGVyIGEgbmV3IGtlcm5lbCB0byB3b3JrIG9uIHRoZSBvbGQgb25lcyAqLworICAvKiBUaGUgaXJxIGFyZ3VtZW50IHRvIGlvY3RsIGlzbid0IHRvdWNoZWQgYnkgdGhlIG9sZCBrZXJuZWxzLCBidXQgd2UgZG9uJ3QgKi8KKyAgLyogIHdhbnQgdG8gY2F1c2UgdGhlIGtlcm5lbCB0byBjb21wbGFpbiBpZiB3ZSBhcmUgdXNpbmcgYSBuZXcga2VybmVsICovCisgIGlmIChMUEdFVElSUSA+PSAweDA2MDAgJiYgaW9jdGwoZmQsIExQR0VUSVJRLCAmaXJxKSA8IDAgJiYgZXJybm8gPT0gRUlOVkFMKQorICAgIG9mZnNldCA9IDB4MDYwMDsJLyogV2UgZG9uJ3QgdW5kZXJzdGFuZCB0aGUgbmV3IGlvY3RscyAqLworCisgIGNtZHMgPSBjbWRzdDsKKyAgd2hpbGUgKGNtZHMtPm5leHQpIHsKKyNpZmRlZiBMUEdFVFNUQVRVUworICAgIGlmIChjbWRzLT5vcCA9PSBMUEdFVFNUQVRVUykgeworICAgICAgc3RhdHVzID0gMHhkZWFkYmVlZjsKKyAgICAgIHJldHZhbCA9IGlvY3RsKGZkLCBMUEdFVFNUQVRVUyAtIG9mZnNldCwgJnN0YXR1cyk7CisgICAgICBpZiAocmV0dmFsIDwgMCkKKyAgICAgIAlwZXJyb3IoIkxQR0VUU1RBVFVTIGVycm9yIik7CisgICAgICBlbHNlIHsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSAweGRlYWRiZWVmKQkvKiBhIGZldyAxLjEuN3gga2VybmVscyB3aWxsIGRvIHRoaXMgKi8KKyAgICAgICAgICBzdGF0dXMgPSByZXR2YWw7CisJcHJpbnRmKF8oIiVzIHN0YXR1cyBpcyAlZCIpLCBmaWxlbmFtZSwgc3RhdHVzKTsKKwlpZiAoIShzdGF0dXMgJiBMUF9QQlVTWSkpIHByaW50ZihfKCIsIGJ1c3kiKSk7CisJaWYgKCEoc3RhdHVzICYgTFBfUEFDSykpIHByaW50ZihfKCIsIHJlYWR5IikpOworCWlmICgoc3RhdHVzICYgTFBfUE9VVFBBKSkgcHJpbnRmKF8oIiwgb3V0IG9mIHBhcGVyIikpOworCWlmICgoc3RhdHVzICYgTFBfUFNFTEVDRCkpIHByaW50ZihfKCIsIG9uLWxpbmUiKSk7CisJaWYgKCEoc3RhdHVzICYgTFBfUEVSUk9SUCkpIHByaW50ZihfKCIsIGVycm9yIikpOworCXByaW50ZigiXG4iKTsKKyAgICAgIH0KKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBMUEdFVFNUQVRVUyAqLworICAgIGlmIChpb2N0bChmZCwgY21kcy0+b3AgLSBvZmZzZXQsIGNtZHMtPnZhbCkgPCAwKSB7CisgICAgICBwZXJyb3IoInR1bmVscDogaW9jdGwiKTsKKyAgICB9CisgICAgY21kc3QgPSBjbWRzOworICAgIGNtZHMgPSBjbWRzLT5uZXh0OworICAgIGZyZWUoY21kc3QpOworICB9CisKKyAgaWYgKHNob3dfaXJxKSB7CisgICAgaXJxID0gMHhkZWFkYmVlZjsKKyAgICByZXR2YWwgPSBpb2N0bChmZCwgTFBHRVRJUlEgLSBvZmZzZXQsICZpcnEpOworICAgIGlmIChyZXR2YWwgPT0gLTEpIHsKKyAgICAgIHBlcnJvcihfKCJMUEdFVElSUSBlcnJvciIpKTsKKyAgICAgIGV4aXQoNCk7CisgICAgfQorICAgIGlmIChpcnEgPT0gMHhkZWFkYmVlZikJCS8qIHVwIHRvIDEuMS43NyB3aWxsIGRvIHRoaXMgKi8KKyAgICAgIGlycSA9IHJldHZhbDsKKyAgICBpZiAoaXJxKQorICAgICAgcHJpbnRmKF8oIiVzIHVzaW5nIElSUSAlZFxuIiksIGZpbGVuYW1lLCBpcnEpOworICAgIGVsc2UKKyAgICAgIHByaW50ZihfKCIlcyB1c2luZyBwb2xsaW5nXG4iKSwgZmlsZW5hbWUpOworICB9CisKKyAgY2xvc2UoZmQpOworCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3Vuc2hhcmUuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy91bnNoYXJlLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFmY2ZkZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3N5cy11dGlscy91bnNoYXJlLjEKQEAgLTAsMCArMSw1OCBAQAorLlwiIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGgKKy5cIiBncm9mZiAtbWFuIC1UYXNjaWkgbHNjcHUuMQorLlwiCisuVEggVU5TSEFSRSAxICJPQ1RPQkVSIDIwMDgiIExpbnV4ICJVc2VyIE1hbnVhbHMiCisuU0ggTkFNRQordW5zaGFyZSBcLSBydW4gcHJvZ3JhbSB3aXRoIHNvbWUgbmFtZXNwYWNlcyB1bnNoYXJlZCBmcm9tIHBhcmVudAorLlNIIFNZTk9QU0lTCisuQiB1bnNoYXJlCisuUkkgWyBvcHRpb25zIF0KK3Byb2dyYW0KKy5SSSBbIGFyZ3VtZW50cyBdCisuU0ggREVTQ1JJUFRJT04KK1Vuc2hhcmVzIHNwZWNpZmllZCBuYW1lc3BhY2VzIGZyb20gcGFyZW50IHByb2Nlc3MgYW5kIHRoZW4gZXhlY3V0ZXMgc3BlY2lmaWVkCitwcm9ncmFtLiBVbnNoYXJlYWJsZSBuYW1lc3BhY2VzIGFyZToKKy5UUAorLkJSICJtb3VudCBuYW1lc3BhY2UiCittb3VudGluZyBhbmQgdW5tb3VudGluZyBmaWxlc3lzdGVtcyB3aWxsIG5vdCBhZmZlY3QgcmVzdCBvZiB0aGUgc3lzdGVtCisoXGZCQ0xPTkVfTkVXTlNcZlAgZmxhZyksCisuVFAKKy5CUiAiVVRTIG5hbWVzcGFjZSIKK3NldHRpbmcgaG9zdG5hbWUsIGRvbWFpbm5hbWUgd2lsbCBub3QgYWZmZWN0IHJlc3Qgb2YgdGhlIHN5c3RlbQorKFxmQkNMT05FX05FV1VUU1xmUCBmbGFnKSwKKy5UUAorLkJSICJJUEMgbmFtZXNwYWNlIgorcHJvY2VzcyB3aWxsIGhhdmUgaW5kcGVuZGVudCBuYW1lc3BhY2UgZm9yIFN5c3RlbSBWIG1lc3NhZ2UgcXVldWVzLCBzZW1hcGhvcmUKK3NldHMgYW5kIHNoYXJlZCBtZW1vcnkgc2VnbWVudHMgKFxmQkNMT05FX05FV0lQQ1xmUCBmbGFnKSwKKy5UUAorLkJSICJuZXR3b3JrIG5hbWVzcGFjZSIKK3Byb2Nlc3Mgd2lsbCBoYXZlIGluZGVwZW5kZW50IElQdjQgYW5kIElQdjYgc3RhY2tzLCBJUCByb3V0aW5nIHRhYmxlcywgZmlyZXdhbGwKK3J1bGVzLCB0aGUgXGZJL3Byb2MvbmV0XGZQIGFuZCBcZkkvc3lzL2NsYXNzL25ldFxmUCBkaXJlY3RvcnkgdHJlZXMsIHNvY2tldHMKK2V0Yy4gKFxmQkNMT05FX05FV05FVFxmUCBmbGFnKS4KKy5UUAorU2VlIHRoZSBjbG9uZSgyKSBmb3IgZXhhY3Qgc2VtYW50aWNzIG9mIHRoZSBmbGFncy4KKy5TSCBPUFRJT05TCisuVFAKKy5CUiBcLWggLCAiIFwtXC1oZWxwIgorUHJpbnQgYSBoZWxwIG1lc3NhZ2UsCisuVFAKKy5CUiBcLW0gLCAiIFwtXC1tb3VudCIKK1Vuc2hhcmUgdGhlIG1vdW50IG5hbWVzcGFjZSwKKy5UUAorLkJSIFwtdSAsICIgXC1cLXV0cyIKK1Vuc2hhcmUgdGhlIFVUQyBuYW1lc3BhY2UsCisuVFAKKy5CUiBcLWkgLCAiIFwtXC1pcGMiCitVbnNoYXJlIHRoZSBJUEMgbmFtZXNwYWNlLAorLlRQCisuQlIgXC1uICwgIiBcLVwtbmV0IgorVW5zaGFyZSB0aGUgbmV0d29yayBuYW1lc3BhY2UuCisuU0ggU0VFIEFMU08KK3Vuc2hhcmUoMiksIGNsb25lKDIpCisuU0ggQlVHUworTm9uZSBrbm93biBzbyBmYXIuCisuU0ggQVVUSE9SCitNaWtoYWlsIEd1c2Fyb3YgPGRvdHRlZG1hZ0Bkb3R0ZWRtYWcubmV0PgorLlNIIEFWQUlMQUJJTElUWQorVGhlIHVuc2hhcmUgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi9zeXMtdXRpbHMvdW5zaGFyZS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3Vuc2hhcmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjc1ZDE3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvc3lzLXV0aWxzL3Vuc2hhcmUuYwpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIHVuc2hhcmUoMSkgLSBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIGZvciB1bnNoYXJlKDIpCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA5IE1pa2hhaWwgR3VzYXJvdiA8ZG90dGVkbWFnQGRvdHRlZG1hZy5uZXQ+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisgKiB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorICogNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGVyci5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c2NoZWQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAibmxzLmgiCisKKyNpZm5kZWYgQ0xPTkVfTkVXU05TCisjIGRlZmluZSBDTE9ORV9ORVdOUyAweDAwMDIwMDAwCisjZW5kaWYKKyNpZm5kZWYgQ0xPTkVfTkVXVVRTCisjIGRlZmluZSBDTE9ORV9ORVdVVFMgMHgwNDAwMDAwMAorI2VuZGlmCisjaWZuZGVmIENMT05FX05FV0lQQworIyBkZWZpbmUgQ0xPTkVfTkVXSVBDIDB4MDgwMDAwMDAKKyNlbmRpZgorI2lmbmRlZiBDTE9ORV9ORVdORVQKKyMgZGVmaW5lIENMT05FX05FV05FVCAweDQwMDAwMDAwCisjZW5kaWYKKworI2lmbmRlZiBIQVZFX1VOU0hBUkUKKyMgaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKworc3RhdGljIGludCB1bnNoYXJlKGludCBmbGFncykKK3sKKwlyZXR1cm4gc3lzY2FsbChTWVNfdW5zaGFyZSwgZmxhZ3MpOworfQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHVzYWdlKGludCBzdGF0dXMpCit7CisJRklMRSAqb3V0ID0gc3RhdHVzID09IEVYSVRfU1VDQ0VTUyA/IHN0ZG91dCA6IHN0ZGVycjsKKworCWZwcmludGYob3V0LCBfKCJVc2FnZTogJXMgW29wdGlvbnNdIDxwcm9ncmFtPiBbYXJncy4uLl1cbiIpLAorCQlwcm9ncmFtX2ludm9jYXRpb25fc2hvcnRfbmFtZSk7CisKKwlmcHV0cyhfKCJSdW4gcHJvZ3JhbSB3aXRoIHNvbWUgbmFtZXNwYWNlcyB1bnNoYXJlZCBmcm9tIHBhcmVudFxuXG4iCisJCSIgIC1oLCAtLWhlbHAgICAgICAgIHVzYWdlIGluZm9ybWF0aW9uICh0aGlzKVxuIgorCQkiICAtbSwgLS1tb3VudCAgICAgICB1bnNoYXJlIG1vdW50cyBuYW1lc3BhY2VcbiIKKwkJIiAgLXUsIC0tdXRzICAgICAgICAgdW5zaGFyZSBVVFMgbmFtZXNwYWNlIChob3N0bmFtZSBldGMpXG4iCisJCSIgIC1pLCAtLWlwYyAgICAgICAgIHVuc2hhcmUgU3lzdGVtIFYgSVBDIG5hbWVzcGFjZVxuIgorCQkiICAtbiwgLS1uZXQgICAgICAgICB1bnNoYXJlIG5ldHdvcmsgbmFtZXNwYWNlXG4iKSwgb3V0KTsKKworCWZwcmludGYob3V0LCBfKCJcbkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1bnNoYXJlKDEpLlxuIikpOworCWV4aXQoc3RhdHVzKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlzdHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW10gPSB7CisJCXsgImhlbHAiLCBub19hcmd1bWVudCwgMCwgJ2gnIH0sCisJCXsgIm1vdW50Iiwgbm9fYXJndW1lbnQsIDAsICdtJyB9LAorCQl7ICJ1dHMiLCBub19hcmd1bWVudCwgMCwgJ3UnIH0sCisJCXsgImlwYyIsIG5vX2FyZ3VtZW50LCAwLCAnaScgfSwKKwkJeyAibmV0Iiwgbm9fYXJndW1lbnQsIDAsICduJyB9LAorCX07CisKKwlpbnQgdW5zaGFyZV9mbGFncyA9IDA7CisKKwlpbnQgYzsKKworCXNldGxvY2FsZShMQ19NRVNTQUdFUywgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCXdoaWxlKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImhtdWluIiwgbG9uZ29wdHMsIE5VTEwpKSAhPSAtMSkgeworCQlzd2l0Y2goYykgeworCQljYXNlICdoJzoKKwkJCXVzYWdlKEVYSVRfU1VDQ0VTUyk7CisJCWNhc2UgJ20nOgorCQkJdW5zaGFyZV9mbGFncyB8PSBDTE9ORV9ORVdOUzsKKwkJCWJyZWFrOworCQljYXNlICd1JzoKKwkJCXVuc2hhcmVfZmxhZ3MgfD0gQ0xPTkVfTkVXVVRTOworCQkJYnJlYWs7CisJCWNhc2UgJ2knOgorCQkJdW5zaGFyZV9mbGFncyB8PSBDTE9ORV9ORVdJUEM7CisJCQlicmVhazsKKwkJY2FzZSAnbic6CisJCQl1bnNoYXJlX2ZsYWdzIHw9IENMT05FX05FV05FVDsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJdXNhZ2UoRVhJVF9GQUlMVVJFKTsKKwkJfQorCX0KKworCWlmKG9wdGluZCA+PSBhcmdjKQorCQl1c2FnZShFWElUX0ZBSUxVUkUpOworCisJaWYoLTEgPT0gdW5zaGFyZSh1bnNoYXJlX2ZsYWdzKSkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygidW5zaGFyZSBmYWlsZWQiKSk7CisKKwlleGVjdnAoYXJndltvcHRpbmRdLCBhcmd2ICsgb3B0aW5kKTsKKworCWVycihFWElUX0ZBSUxVUkUsIF8oImV4ZWMgJXMgZmFpbGVkIiksIGFyZ3Zbb3B0aW5kXSk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9NYWtlZmlsZS5hbSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNGZhMTAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDEyIEBACitpbmNsdWRlICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KKworU1VCRElSUyA9IGhlbHBlcnMKKworRVhUUkFfRElTVCA9IAlleHBlY3RlZCBcCisJCXRzIFwKKwkJZnVuY3Rpb25zLnNoIFwKKwkJUkVBRE1FIFwKKwkJcnVuLnNoCisKK2NsZWFuLWxvY2FsOgorCXJtIC1yZiBvdXRwdXQgZGlmZgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvTWFrZWZpbGUuaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmNjY2MyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw2NDcgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK0RJU1RfQ09NTU9OID0gUkVBRE1FICQoZGlzdF9ub2luc3RfREFUQSkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL2NvbW1hbmRzLnNoLmluIFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtCitzdWJkaXIgPSB0ZXN0cworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9IGNvbW1hbmRzLnNoCitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorQU1fVl9HRU4gPSAkKGFtX192X0dFTl8kKFYpKQorYW1fX3ZfR0VOXyA9ICQoYW1fX3ZfR0VOXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfR0VOXzAgPSBAZWNobyAiICBHRU4gICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorU09VUkNFUyA9CitESVNUX1NPVVJDRVMgPQorUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCitEQVRBID0gJChkaXN0X25vaW5zdF9EQVRBKQorUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKKwlkaXN0ZGlyCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorYW1fX3JlbGF0aXZpemUgPSBcCisgIGRpcjA9YHB3ZGA7IFwKKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorICAgICAgZWxzZSBcCisgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorICAgICAgICBlbHNlIFwKKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisgICAgICAgIGZpOyBcCisgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisgICAgICBmaTsgXAorICAgIGZpOyBcCisgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisgIGRvbmU7IFwKKyAgcmVsZGlyPSIkJGRpcjIiCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitTVUJESVJTID0gaGVscGVycworRVhUUkFfRElTVCA9IGV4cGVjdGVkIFwKKwkJdHMgXAorCQlmdW5jdGlvbnMuc2ggXAorCQlSRUFETUUgXAorCQlydW4uc2gKKworYWxsOiBhbGwtcmVjdXJzaXZlCisKKy5TVUZGSVhFUzoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiB0ZXN0cy9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gdGVzdHMvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgorY29tbWFuZHMuc2g6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9jb21tYW5kcy5zaC5pbgorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRACisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCisKKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCiskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKwkgIGNhc2UgJCRmIGluIFwKKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwlkb3Rfc2Vlbj1ubzsgXAorCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGRvdF9zZWVuPXllczsgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorCSAgZWxzZSBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisJICBmaTsgXAorCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKwlkb25lOyBcCisJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisJZmk7IHRlc3QgLXogIiQkZmFpbCIKKworJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisJICBjYXNlICQkZiBpbiBcCisJICAgICo9KiB8IC0tWyFrXSopOzsgXAorCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZG90X3NlZW49bm87IFwKKwljYXNlICIkQCIgaW4gXAorCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorCWVzYWM7IFwKKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlyZXY9IiQkcmV2IC4iOyBcCisJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisJICBlbHNlIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKwkgIGZpOyBcCisJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisJICB8fCBldmFsICQkZmFpbGNvbTsgXAorCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgordGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKwlkb25lCitjdGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisJZG9uZQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD0uOyBcCisJZWxzZSBcCisJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD07IFwKKwlmaTsgXAorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKwkgICAgICAgIGRpc3RkaXIpIFwKKwkgICAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorYWxsLWFtOiBNYWtlZmlsZSAkKERBVEEpCitpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCitpbnN0YWxsZGlycy1hbToKK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQordW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1sb2NhbCBtb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktcmVjdXJzaXZlCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1yZWN1cnNpdmUKKworaHRtbC1hbToKKworaW5mbzogaW5mby1yZWN1cnNpdmUKKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06CisKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1yZWN1cnNpdmUKKworcGRmLWFtOgorCitwczogcHMtcmVjdXJzaXZlCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06CisKKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAorCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorCisuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisJY2xlYW4tbG9jYWwgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAorCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKworCiskKHVsX2xpYmJsa2lkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGliYmxraWRfYnVpbGRkaXIpCisKKyQodWxfbGlidXVpZF9sYSk6CisJJChNQUtFKSAtQyAkKHVsX2xpYnV1aWRfYnVpbGRkaXIpCisKK2NsZWFuLWxvY2FsOgorCXJtIC1yZiBvdXRwdXQgZGlmZgorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9SRUFETUUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgzZjM3YwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL1JFQURNRQpAQCAtMCwwICsxLDIyIEBACisKKyB1dGlsLWxpbnV4IHJlZ3Jlc3Npb24gdGVzdHMKKyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworIEl0J3MgZXhwZWN0ZWQgdGhhdCBmb3IgZWFjaCBpbnZhc2l2ZSBjaGFuZ2Ugb3IgaW1wb3J0YW50IGJ1Z2ZpeCB5b3Ugd2lsbAorIGluY2x1ZGUgYSB0ZXN0IHRvIHlvdXIgcGF0Y2guCisKKworIFJ1biBhbGwgdGVzdHM6CisKKwkuL3J1bi5zaCBbLS12ZXJib3NlXQorCisgUnVuIG9uZSB0ZXN0czoKKworCS4vdHMtPGNvbXBvbmVudF9uYW1lPi08dGVzdF9uYW1lPi5zaCBbLS12ZXJib3NlXQorCisKKworICoqKiBXQVJOSU5HICoqKgorCisgVGhlIHRlc3RzIHRvdWNoIHlvdXIgL2V0Yy9mc3RhYiBhbmQgL2V0Yy9ibGtpZC50YWIuIFBsZWFzZSwgYmUgY2FyZWZ1bCBhbmQgdXNlCisgdGhlc2UgdGVzdHMgb25seSBmb3IgZGV2ZWxvcG1lbnQgYW5kIG5ldmVyIG9uIHByb2R1Y3Rpb24gc3lzdGVtLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvY29tbWFuZHMuc2guaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9jb21tYW5kcy5zaC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Mzk5NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvY29tbWFuZHMuc2guaW4KQEAgLTAsMCArMSw1MSBAQAorVE9QRElSPSIkVFNfVE9QRElSLy4uIgorCisjIE1pc2Mgc2V0dGluZ3MKK1RTX1RFU1RVU0VSPSR7VFNfVEVTVFVTRVI6LSJ0ZXN0In0KKworIyBoZWxwZXJzCitUU19IRUxQRVJfU1lTSU5GTz0iJFRTX1RPUERJUi9oZWxwZXJzL3Rlc3Rfc3lzaW5mbyIKK1RTX0hFTFBFUl9QQVRIUz0iJFRTX1RPUERJUi9oZWxwZXJzL3Rlc3RfcGF0aG5hbWVzIgorVFNfSEVMUEVSX0JZVEVTV0FQPSIkVFNfVE9QRElSL2hlbHBlcnMvdGVzdF9ieXRlc3dhcCIKK1RTX0hFTFBFUl9NRDU9IiRUU19UT1BESVIvaGVscGVycy90ZXN0X21kNSIKKworVFNfSEVMUEVSX0lTTU9VTlRFRD0iJFRPUERJUi9saWIvdGVzdF9pc21vdW50ZWQiCisKKyMgVE9ETzogdXNlIHBhcnR4CitUU19IRUxQRVJfUEFSVElUSU9OUz0iJFRPUERJUi9zaGxpYnMvYmxraWQvc2FtcGxlcy9wYXJ0aXRpb25zIgorCitVX0xfTElCUkFSWV9QQVRIPSIkVE9QRElSL3NobGlicy9ibGtpZC9zcmMvLmxpYnM6JFRPUERJUi9zaGxpYnMvdXVpZC9zcmMvLmxpYnMiCisKKyMgcGF0aHMgdG8gY29tbWFuZHMKK1RTX0NNRF9NT1VOVD0ke1RTX0NNRF9NT1VOVDotIiRUT1BESVIvbW91bnQvbW91bnQifQorVFNfQ01EX1VNT1VOVD0ke1RTX0NNRF9VTU9VTlQ6LSIkVE9QRElSL21vdW50L3Vtb3VudCJ9CitUU19DTURfU1dBUE9OPSR7VFNfQ01EX1NXQVBPTjotIiRUT1BESVIvbW91bnQvLmxpYnMvc3dhcG9uIn0KK1RTX0NNRF9TV0FQT0ZGPSR7VFNfQ01EX1NXQVBPRkY6LSIkVE9QRElSL21vdW50Ly5saWJzL3N3YXBvZmYifQorVFNfQ01EX0xPU0VUVVA9JHtUU19DTURfTE9TRVRVUDotIiRUT1BESVIvbW91bnQvbG9zZXR1cCJ9CisKK1RTX0NNRF9NVEFCTE9DSz0ke1RTX0NNRF9NVEFCTE9DSzotIiRUT1BESVIvbW91bnQvbXRhYl9sb2NrX3Rlc3QifQorCitUU19DTURfTUtTV0FQPSR7VFNfQ01EX01LU1dBUDotIiRUT1BESVIvZGlzay11dGlscy9ta3N3YXAifQorVFNfQ01EX01LQ1JBTUZTPSR7VFNfQ01EX01LQ1JBTUZTOi0iJFRPUERJUi9kaXNrLXV0aWxzL21rZnMuY3JhbWZzIn0KK1RTX0NNRF9NS01JTklYPSR7VFNfQ01EX01LTUlOSVg6LSIkVE9QRElSL2Rpc2stdXRpbHMvbWtmcy5taW5peCJ9CitUU19DTURfRlNDS0NSQU1GUz0ke1RTX0NNRF9GU0NLQ1JBTUZTOi0iJFRPUERJUi9kaXNrLXV0aWxzL2ZzY2suY3JhbWZzIn0KK1RTX0NNRF9GU0NLTUlOSVg9JHtUU19DTURfRlNDS01JTklYOi0iJFRPUERJUi9kaXNrLXV0aWxzL2ZzY2subWluaXgifQorCitUU19DTURfSVBDUz0ke1RTX0NNRF9JUENTOi0iJFRPUERJUi9zeXMtdXRpbHMvaXBjcyJ9CisKK1RTX0NNRF9DT0w9JHtUU19DTURfQ09MOi0iJFRPUERJUi90ZXh0LXV0aWxzL2NvbCJ9CisKK1RTX0NNRF9OQU1FST0ke1RTX0NNRF9OQU1FSS0iJFRPUERJUi9taXNjLXV0aWxzL25hbWVpIn0KK1RTX0NNRF9MT09LPSR7VFNfQ01EX0xPT0stIiRUT1BESVIvbWlzYy11dGlscy9sb29rIn0KK1RTX0NNRF9DQUw9JHtUU19DTURfQ0FMLSIkVE9QRElSL21pc2MtdXRpbHMvY2FsIn0KK1RTX0NNRF9TQ1JJUFQ9JHtUU19DTURfU0NSSVBULSIkVE9QRElSL21pc2MtdXRpbHMvc2NyaXB0In0KKworVFNfQ01EX0NIRUNLVFRZPSR7VFNfQ01EX0NIRUNLVFRZLSIkVE9QRElSL2xvZ2luLXV0aWxzL2NoZWNrdHR5X3Rlc3QifQorVFNfQ01EX0lTTE9DQUw9JHtUU19DTURfSVNMT0NBTC0iJFRPUERJUi9sb2dpbi11dGlscy9pc2xvY2FsX3Rlc3QifQorCitUU19DTURfSFdDTE9DSz0ke1RTX0NNRF9IV0NMT0NLLSIkVE9QRElSL2h3Y2xvY2svaHdjbG9jayJ9CitUU19DTURfTFNDUFU9JHtUU19DTURfTFNDUFUtIiRUT1BESVIvc3lzLXV0aWxzL2xzY3B1In0KKworVFNfQ01EX0JMS0lEPSR7VFNfQ01EX0JMS0lELSIkVE9QRElSL21pc2MtdXRpbHMvYmxraWQifQorCitUU19DTURfRkRJU0s9JHtUU19DTURfRkRJU0stIiRUT1BESVIvZmRpc2svZmRpc2sifQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYml0b3BzL3N3YXBieXRlcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2JpdG9wcy9zd2FwYnl0ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk0NjhhNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2JpdG9wcy9zd2FwYnl0ZXMKQEAgLTAsMCArMSwyMSBAQAorVGVzdGluZyBzd2FiMTYKK3N3YWIxNigweDAwMDEpID0gMHgwMTAwCitzd2FiMTYoMHgxMjM0KSA9IDB4MzQxMgorc3dhYjE2KDB4ZmYwMCkgPSAweDAwZmYKK3N3YWIxNigweDQwMDApID0gMHgwMDQwCitzd2FiMTYoMHhmZWZmKSA9IDB4ZmZmZQorVGVzdGluZyBzd2FiMzIKK3N3YWIzMigweDAwMDAwMDAxKSA9IDB4MDEwMDAwMDAKK3N3YWIzMigweDgwMDAwMDAwKSA9IDB4MDAwMDAwODAKK3N3YWIzMigweDEyMzQ1Njc4KSA9IDB4Nzg1NjM0MTIKK3N3YWIzMigweGZmZmYwMDAwKSA9IDB4MDAwMGZmZmYKK3N3YWIzMigweDAwZmYwMDAwKSA9IDB4MDAwMGZmMDAKK3N3YWIzMigweGZmMDAwMDAwKSA9IDB4MDAwMDAwZmYKK1Rlc3Rpbmcgc3dhYjY0Citzd2FiNjQoMHgwMDAwMDAwMDAwMDAwMDAxKSA9IDB4MDEwMDAwMDAwMDAwMDAwMAorc3dhYjY0KDB4ODAwMDAwMDAwMDAwMDAwMCkgPSAweDAwMDAwMDAwMDAwMDAwODAKK3N3YWI2NCgweDEyMzQ1Njc4MTIzNDU2NzgpID0gMHg3ODU2MzQxMjc4NTYzNDEyCitzd2FiNjQoMHhmZmZmZmZmZjAwMDAwMDAwKSA9IDB4MDAwMDAwMDBmZmZmZmZmZgorc3dhYjY0KDB4MDBmZjAwMDAwMDAwMDAwMCkgPSAweDAwMDAwMDAwMDAwMGZmMDAKK3N3YWI2NCgweGZmMDAwMDAwMDAwMDAwMDApID0gMHgwMDAwMDAwMDAwMDAwMGZmCitObyBlcnJvcnMgZm91bmQgaW4gdGhlIGJ5dGVzd2FwIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtYWRhcHRlYy1yYWlkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWFkYXB0ZWMtcmFpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWE1ODg4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWFkYXB0ZWMtcmFpZApAQCAtMCwwICsxLDMgQEAKK0lEX0ZTX1RZUEU9YWRhcHRlY19yYWlkX21lbWJlcgorSURfRlNfVVNBR0U9cmFpZAorSURfRlNfVkVSU0lPTj04CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtYmZzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWJmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Mjg3MzA0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWJmcwpAQCAtMCwwICsxLDIgQEAKK0lEX0ZTX1RZUEU9YmZzCitJRF9GU19VU0FHRT1maWxlc3lzdGVtCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtY3JhbWZzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWNyYW1mcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWFkMDE4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWNyYW1mcwpAQCAtMCwwICsxLDQgQEAKK0lEX0ZTX0xBQkVMX0VOQz10ZXN0LWNyYW0KK0lEX0ZTX0xBQkVMPXRlc3QtY3JhbQorSURfRlNfVFlQRT1jcmFtZnMKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1kZGYtcmFpZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1kZGYtcmFpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODMyOTUwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWRkZi1yYWlkCkBAIC0wLDAgKzEsNSBAQAorSURfRlNfVFlQRT1kZGZfcmFpZF9tZW1iZXIKK0lEX0ZTX1VTQUdFPXJhaWQKK0lEX0ZTX1VVSUQ9OFpfSV9fQl84Wl9JX2VfSV9xX0lfX19fCitJRF9GU19VVUlEX0VOQz04Wlx4YjBJXHg5NVx4MTBCXHgwMjhaXHhiMElceGM4ZVx4YjBJXHhiOHFceGIwSVx4ZmZceGZmXHhmZlx4ZmYKK0lEX0ZTX1ZFUlNJT049MDIuMDAuMDAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1leHQyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWV4dDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE3MGNmNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1leHQyCkBAIC0wLDAgKzEsNyBAQAorSURfRlNfTEFCRUxfRU5DPXRlc3QtZXh0MgorSURfRlNfTEFCRUw9dGVzdC1leHQyCitJRF9GU19UWVBFPWV4dDIKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KK0lEX0ZTX1VVSUQ9MjJmMGVhYzMtNWM4OS00ZWMxLTkwNzYtNjA3OTkxMTlhYWVhCitJRF9GU19VVUlEX0VOQz0yMmYwZWFjMy01Yzg5LTRlYzEtOTA3Ni02MDc5OTExOWFhZWEKK0lEX0ZTX1ZFUlNJT049MS4wCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtZXh0MyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1leHQzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzYWVlZWQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtZXh0MwpAQCAtMCwwICsxLDggQEAKK0lEX0ZTX0xBQkVMX0VOQz10ZXN0LWV4dDMKK0lEX0ZTX0xBQkVMPXRlc3QtZXh0MworSURfRlNfU0VDX1RZUEU9ZXh0MgorSURfRlNfVFlQRT1leHQzCitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19VVUlEPTM1ZjY2ZGFiLTQ3N2UtNDA5MC1hODcyLTk1ZWUwZTQ5M2FkNgorSURfRlNfVVVJRF9FTkM9MzVmNjZkYWItNDc3ZS00MDkwLWE4NzItOTVlZTBlNDkzYWQ2CitJRF9GU19WRVJTSU9OPTEuMApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWZhdCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1mYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FlY2RiNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1mYXQKQEAgLTAsMCArMSw4IEBACitJRF9GU19MQUJFTF9FTkM9VEVTVC1GQVQKK0lEX0ZTX0xBQkVMPVRFU1QtRkFUCitJRF9GU19TRUNfVFlQRT1tc2RvcworSURfRlNfVFlQRT12ZmF0CitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19VVUlEPURFQUQtQkVFRgorSURfRlNfVVVJRF9FTkM9REVBRC1CRUVGCitJRF9GU19WRVJTSU9OPUZBVDEyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtZmF0MzJfbGFiZWxfNjRNQiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1mYXQzMl9sYWJlbF82NE1CCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNzk0OTAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtZmF0MzJfbGFiZWxfNjRNQgpAQCAtMCwwICsxLDcgQEAKK0lEX0ZTX0xBQkVMPUJJTkdPCitJRF9GU19MQUJFTF9FTkM9QklOR08KK0lEX0ZTX1RZUEU9dmZhdAorSURfRlNfVVNBR0U9ZmlsZXN5c3RlbQorSURfRlNfVVVJRD04Q0I1LUJBNDkKK0lEX0ZTX1VVSURfRU5DPThDQjUtQkE0OQorSURfRlNfVkVSU0lPTj1GQVQzMgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWdmczIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtZ2ZzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTk3ODllCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWdmczIKQEAgLTAsMCArMSw1IEBACitJRF9GU19MQUJFTF9FTkM9bXljbHVzdGVyOm15Z2ZzMgorSURfRlNfTEFCRUw9bXljbHVzdGVyOm15Z2ZzMgorSURfRlNfVFlQRT1nZnMyCitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19WRVJTSU9OPTEKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1oZnMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtaGZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0Y2JiNWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtaGZzCkBAIC0wLDAgKzEsNCBAQAorSURfRlNfTEFCRUw9QkJCCitJRF9GU19MQUJFTF9FTkM9QkJCCitJRF9GU19UWVBFPWhmcworSURfRlNfVVNBR0U9ZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWhmc3BsdXMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtaGZzcGx1cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTRiNTlmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWhmc3BsdXMKQEAgLTAsMCArMSw0IEBACitJRF9GU19MQUJFTD0xMjM0NTY3ODlBQkNERQorSURfRlNfTEFCRUxfRU5DPTEyMzQ1Njc4OUFCQ0RFCitJRF9GU19UWVBFPWhmc3BsdXMKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1ocGZzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWhwZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA3MTE1NQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1ocGZzCkBAIC0wLDAgKzEsNyBAQAorSURfRlNfTEFCRUxfRU5DPVAwMVx4MjBTMTZBCitJRF9GU19MQUJFTD1QMDFfUzE2QQorSURfRlNfVFlQRT1ocGZzCitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19VVUlEPTNCQzItMzJENQorSURfRlNfVVVJRF9FTkM9M0JDMi0zMkQ1CitJRF9GU19WRVJTSU9OPTIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1ocHQzN3gtcmFpZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1ocHQzN3gtcmFpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWY2ZGVjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWhwdDM3eC1yYWlkCkBAIC0wLDAgKzEsMiBAQAorSURfRlNfVFlQRT1ocHQzN3hfcmFpZF9tZW1iZXIKK0lEX0ZTX1VTQUdFPXJhaWQKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1ocHQ0NXgtcmFpZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1ocHQ0NXgtcmFpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWI5NTUyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWhwdDQ1eC1yYWlkCkBAIC0wLDAgKzEsMiBAQAorSURfRlNfVFlQRT1ocHQ0NXhfcmFpZF9tZW1iZXIKK0lEX0ZTX1VTQUdFPXJhaWQKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1pc28gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtaXNvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxYTUxMTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtaXNvCkBAIC0wLDAgKzEsNCBAQAorSURfRlNfTEFCRUxfRU5DPUlzb1ZvbHVtZU5hbWUKK0lEX0ZTX0xBQkVMPUlzb1ZvbHVtZU5hbWUKK0lEX0ZTX1RZUEU9aXNvOTY2MAorSURfRlNfVVNBR0U9ZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWlzby1qb2xpZXQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtaXNvLWpvbGlldApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDIxNTU3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWlzby1qb2xpZXQKQEAgLTAsMCArMSw1IEBACitJRF9GU19MQUJFTF9FTkM9VGhpc1dvbmRlcmZ1bExhYmVsSXNWZXJ5VmVyeUxvbmcKK0lEX0ZTX0xBQkVMPVRoaXNXb25kZXJmdWxMYWJlbElzVmVyeVZlcnlMb25nCitJRF9GU19UWVBFPWlzbzk2NjAKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KK0lEX0ZTX1ZFUlNJT049Sm9saWV0XHgyMEV4dGVuc2lvbgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWlzby1yci1qb2xpZXQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtaXNvLXJyLWpvbGlldApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjNhY2ZmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWlzby1yci1qb2xpZXQKQEAgLTAsMCArMSw1IEBACitJRF9GU19MQUJFTF9FTkM9VGhpc0lzVm9sdW1lTmFtZQorSURfRlNfTEFCRUw9VGhpc0lzVm9sdW1lTmFtZQorSURfRlNfVFlQRT1pc285NjYwCitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19WRVJTSU9OPUpvbGlldFx4MjBFeHRlbnNpb24KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1pc3ctcmFpZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1pc3ctcmFpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjQxOWM1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWlzdy1yYWlkCkBAIC0wLDAgKzEsMyBAQAorSURfRlNfVFlQRT1pc3dfcmFpZF9tZW1iZXIKK0lEX0ZTX1VTQUdFPXJhaWQKK0lEX0ZTX1ZFUlNJT049MS4wLjAwCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtamJkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWpiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzYyMTdkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWpiZApAQCAtMCwwICsxLDUgQEAKK0lEX0ZTX1RZUEU9amJkCitJRF9GU19VU0FHRT1vdGhlcgorSURfRlNfVVVJRD0wZDdhMDdkZi03YjA2LTQ4MjktYmNlNy0zYjljM2VjZTU3MGMKK0lEX0ZTX1VVSURfRU5DPTBkN2EwN2RmLTdiMDYtNDgyOS1iY2U3LTNiOWMzZWNlNTcwYworSURfRlNfVkVSU0lPTj0xLjAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1qZnMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtamZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZjljMWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtamZzCkBAIC0wLDAgKzEsNiBAQAorSURfRlNfTEFCRUxfRU5DPXRlc3QtamZzCitJRF9GU19MQUJFTD10ZXN0LWpmcworSURfRlNfVFlQRT1qZnMKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KK0lEX0ZTX1VVSUQ9OWJmN2I4MmUtNzU4My00Yzc0LTk5YTQtMTg5YTY5MWYyN2I1CitJRF9GU19VVUlEX0VOQz05YmY3YjgyZS03NTgzLTRjNzQtOTlhNC0xODlhNjkxZjI3YjUKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1qbWljcm9uLXJhaWQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtam1pY3Jvbi1yYWlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNTcyYjcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtam1pY3Jvbi1yYWlkCkBAIC0wLDAgKzEsMyBAQAorSURfRlNfVFlQRT1qbWljcm9uX3JhaWRfbWVtYmVyCitJRF9GU19VU0FHRT1yYWlkCitJRF9GU19WRVJTSU9OPTAuMQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWxzaS1yYWlkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLWxzaS1yYWlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4ZjcxMTQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtbHNpLXJhaWQKQEAgLTAsMCArMSwyIEBACitJRF9GU19UWVBFPWxzaV9tZWdhX3JhaWRfbWVtYmVyCitJRF9GU19VU0FHRT1yYWlkCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtbHZtMiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1sdm0yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjOGU0OGYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtbHZtMgpAQCAtMCwwICsxLDUgQEAKK0lEX0ZTX1RZUEU9TFZNMl9tZW1iZXIKK0lEX0ZTX1VTQUdFPXJhaWQKK0lEX0ZTX1VVSURfRU5DPVZ5bnY0ay1BUEg4LXhRRVItSFNCYi04VkozLVN2RkYtUEI1TzFVCitJRF9GU19VVUlEPVZ5bnY0ay1BUEg4LXhRRVItSFNCYi04VkozLVN2RkYtUEI1TzFVCitJRF9GU19WRVJTSU9OPUxWTTJceDIwMDAxCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtbWRyYWlkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLW1kcmFpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjEzZGZlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLW1kcmFpZApAQCAtMCwwICsxLDUgQEAKK0lEX0ZTX1RZUEU9bGludXhfcmFpZF9tZW1iZXIKK0lEX0ZTX1VTQUdFPXJhaWQKK0lEX0ZTX1VVSUQ9MzdjNzZiOTEtMDExYS0wNWM1LWQzMGMtMWZkNGM1YzNkYmJjCitJRF9GU19VVUlEX0VOQz0zN2M3NmI5MS0wMTFhLTA1YzUtZDMwYy0xZmQ0YzVjM2RiYmMKK0lEX0ZTX1ZFUlNJT049MC45MC4wCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtbWluaXggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtbWluaXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTYyNzc5OQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1taW5peApAQCAtMCwwICsxLDMgQEAKK0lEX0ZTX1RZUEU9bWluaXgKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KK0lEX0ZTX1ZFUlNJT049MQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLW5ldHdhcmUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtbmV0d2FyZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTRkNWM5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLW5ldHdhcmUKQEAgLTAsMCArMSw1IEBACitJRF9GU19UWVBFPW5zcworSURfRlNfVVNBR0U9ZmlsZXN5c3RlbQorSURfRlNfVVVJRD02NGZiYTZiYi1lYmFkLWQ5MDEtODAwMC0zNjFkOWFiZjI1NjAKK0lEX0ZTX1VVSURfRU5DPTY0ZmJhNmJiLWViYWQtZDkwMS04MDAwLTM2MWQ5YWJmMjU2MAorSURfRlNfVkVSU0lPTj00My4wMgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLW50ZnMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtbnRmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTllNGNlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLW50ZnMKQEAgLTAsMCArMSw2IEBACitJRF9GU19MQUJFTF9FTkM90J3QvtCy0YvQuVx4MjDRgtC+0LwKK0lEX0ZTX0xBQkVMPdCd0L7QstGL0Llf0YLQvtC8CitJRF9GU19UWVBFPW50ZnMKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KK0lEX0ZTX1VVSUQ9MDlDQkI2REUzMEM4NzMxMAorSURfRlNfVVVJRF9FTkM9MDlDQkI2REUzMEM4NzMxMApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLW52aWRpYS1yYWlkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLW52aWRpYS1yYWlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNDNlYTcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtbnZpZGlhLXJhaWQKQEAgLTAsMCArMSwzIEBACitJRF9GU19UWVBFPW52aWRpYV9yYWlkX21lbWJlcgorSURfRlNfVVNBR0U9cmFpZAorSURfRlNfVkVSU0lPTj0xMDAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1vY2ZzMiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1vY2ZzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDYzZTJhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLW9jZnMyCkBAIC0wLDAgKzEsNyBAQAorSURfRlNfTEFCRUxfRU5DPXRlc3Qtb2NmczIKK0lEX0ZTX0xBQkVMPXRlc3Qtb2NmczIKK0lEX0ZTX1RZUEU9b2NmczIKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KK0lEX0ZTX1VVSUQ9NmI2YmZiZWEtM2E3OS00ZjBjLWIxNjYtYTIwNzc2MTAyNDQ1CitJRF9GU19VVUlEX0VOQz02YjZiZmJlYS0zYTc5LTRmMGMtYjE2Ni1hMjA3NzYxMDI0NDUKK0lEX0ZTX1ZFUlNJT049MC45MApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXByb21pc2UtcmFpZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1wcm9taXNlLXJhaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJhODJkMAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1wcm9taXNlLXJhaWQKQEAgLTAsMCArMSwyIEBACitJRF9GU19UWVBFPXByb21pc2VfZmFzdHRyYWNrX3JhaWRfbWVtYmVyCitJRF9GU19VU0FHRT1yYWlkCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtcmVpc2VyMyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1yZWlzZXIzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkOWUwMTQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtcmVpc2VyMwpAQCAtMCwwICsxLDcgQEAKK0lEX0ZTX0xBQkVMX0VOQz1URVNUUkVJU0VSCitJRF9GU19MQUJFTD1URVNUUkVJU0VSCitJRF9GU19UWVBFPXJlaXNlcmZzCitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19VVUlEPTllZmU3ODYzLWIxMjQtNDZkYy1hZDY4LThlY2QwNDIzMGE3YgorSURfRlNfVVVJRF9FTkM9OWVmZTc4NjMtYjEyNC00NmRjLWFkNjgtOGVjZDA0MjMwYTdiCitJRF9GU19WRVJTSU9OPUpSCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtcmVpc2VyNCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1yZWlzZXI0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxZDk4YjkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtcmVpc2VyNApAQCAtMCwwICsxLDcgQEAKK0lEX0ZTX0xBQkVMX0VOQz1URVNUUjQKK0lEX0ZTX0xBQkVMPVRFU1RSNAorSURfRlNfVFlQRT1yZWlzZXI0CitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19VVUlEPTk3MjI2MzNjLWQ2OWEtNDg4MS1iMWM4LWJlZGVjYmJmMzlkMgorSURfRlNfVVVJRF9FTkM9OTcyMjYzM2MtZDY5YS00ODgxLWIxYzgtYmVkZWNiYmYzOWQyCitJRF9GU19WRVJTSU9OPTQKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1yb21mcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1yb21mcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzNiNmYzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXJvbWZzCkBAIC0wLDAgKzEsNCBAQAorSURfRlNfTEFCRUxfRU5DPXRlc3Qtcm9tZnMKK0lEX0ZTX0xBQkVMPXRlc3Qtcm9tZnMKK0lEX0ZTX1RZUEU9cm9tZnMKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1zaWxpY29uLXJhaWQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtc2lsaWNvbi1yYWlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NjgwNTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtc2lsaWNvbi1yYWlkCkBAIC0wLDAgKzEsMyBAQAorSURfRlNfVFlQRT1zaWxpY29uX21lZGxleV9yYWlkX21lbWJlcgorSURfRlNfVVNBR0U9cmFpZAorSURfRlNfVkVSU0lPTj0wLjAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1zbWFsbC1mYXQzMiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1zbWFsbC1mYXQzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzE1YzRkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXNtYWxsLWZhdDMyCkBAIC0wLDAgKzEsNyBAQAorSURfRlNfTEFCRUxfRU5DPVRFU1RWRkFUCitJRF9GU19MQUJFTD1URVNUVkZBVAorSURfRlNfVFlQRT12ZmF0CitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19VVUlEPTE0MjMtQUFFMQorSURfRlNfVVVJRF9FTkM9MTQyMy1BQUUxCitJRF9GU19WRVJTSU9OPUZBVDMyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtc3dhcDAgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtc3dhcDAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJkOTQ5NQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS1zd2FwMApAQCAtMCwwICsxLDMgQEAKK0lEX0ZTX1RZUEU9c3dhcAorSURfRlNfVVNBR0U9b3RoZXIKK0lEX0ZTX1ZFUlNJT049MQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXN3YXAxIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXN3YXAxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzN2Y3NTQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtc3dhcDEKQEAgLTAsMCArMSw3IEBACitJRF9GU19MQUJFTF9FTkM9U1dBUC1URVNUCitJRF9GU19MQUJFTD1TV0FQLVRFU1QKK0lEX0ZTX1RZUEU9c3dhcAorSURfRlNfVVNBR0U9b3RoZXIKK0lEX0ZTX1VVSUQ9OGZmOGU3N2YtODU1My00ODVlLTg2NTYtNThiZTY3YTgxNjY2CitJRF9GU19VVUlEX0VOQz04ZmY4ZTc3Zi04NTUzLTQ4NWUtODY1Ni01OGJlNjdhODE2NjYKK0lEX0ZTX1ZFUlNJT049MgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXViaWZzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXViaWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNjRkYjQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdWJpZnMKQEAgLTAsMCArMSw1IEBACitJRF9GU19UWVBFPXViaWZzCitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19VVUlEPWJhZmU0NmMyLTVlZDktNDQwNS04ZTgxLTdmYzMxN2ZhYjhmMAorSURfRlNfVVVJRF9FTkM9YmFmZTQ2YzItNWVkOS00NDA1LThlODEtN2ZjMzE3ZmFiOGYwCitJRF9GU19WRVJTSU9OPXc0cjAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS11ZGYgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdWRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MmVhYzQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdWRmCkBAIC0wLDAgKzEsNCBAQAorSURfRlNfTEFCRUxfRU5DPXRlc3QtdWRmCitJRF9GU19MQUJFTD10ZXN0LXVkZgorSURfRlNfVFlQRT11ZGYKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS11ZnMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ZTk4NTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdWZzCkBAIC0wLDAgKzEsMyBAQAorSURfRlNfVFlQRT11ZnMKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KK0lEX0ZTX1ZFUlNJT049MgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXZpYS1yYWlkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXZpYS1yYWlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZDBlOGMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdmlhLXJhaWQKQEAgLTAsMCArMSwzIEBACitJRF9GU19UWVBFPXZpYV9yYWlkX21lbWJlcgorSURfRlNfVVNBR0U9cmFpZAorSURfRlNfVkVSU0lPTj0xCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdm1mcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS12bWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2MThlMzAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdm1mcwpAQCAtMCwwICsxLDcgQEAKK0lEX0ZTX0xBQkVMX0VOQz10b3RvCitJRF9GU19MQUJFTD10b3RvCitJRF9GU19UWVBFPVZNRlMKK0lEX0ZTX1VTQUdFPWZpbGVzeXN0ZW0KK0lEX0ZTX1VVSUQ9NDllZGY4NDQtZWJmYzI4ZjMtNjVjYi0wMDIxMjgwMDgzY2YKK0lEX0ZTX1VVSURfRU5DPTQ5ZWRmODQ0LWViZmMyOGYzLTY1Y2ItMDAyMTI4MDA4M2NmCitJRF9GU19WRVJTSU9OPTMxCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdm1mc192b2x1bWUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtdm1mc192b2x1bWUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ0ZGQ4MwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvdy1wcm9iZS12bWZzX3ZvbHVtZQpAQCAtMCwwICsxLDcgQEAKK0lEX0ZTX1RZUEU9Vk1GU192b2x1bWVfbWVtYmVyCitJRF9GU19VU0FHRT1yYWlkCitJRF9GU19VVUlEPTQ5ZWRmODQyLWRjYjM1ZDM3LWIzODMtMDAyMTI4MDA4M2NmCitJRF9GU19VVUlEX0VOQz00OWVkZjg0Mi1kY2IzNWQzNy1iMzgzLTAwMjEyODAwODNjZgorSURfRlNfVVVJRF9TVUI9NDllZGY4NDQtZGEyZGRlMTktNzQ3Yi0wMDIxMjgwMDgzY2YKK0lEX0ZTX1VVSURfU1VCX0VOQz00OWVkZjg0NC1kYTJkZGUxOS03NDdiLTAwMjEyODAwODNjZgorSURfRlNfVkVSU0lPTj0zCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUteGZzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXhmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGJhZjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXhmcwpAQCAtMCwwICsxLDYgQEAKK0lEX0ZTX0xBQkVMX0VOQz10ZXN0LXhmcworSURfRlNfTEFCRUw9dGVzdC14ZnMKK0lEX0ZTX1RZUEU9eGZzCitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19VVUlEPThjOGEwYTVhLTlmNTctNDkyZS05NjEwLTQ1YTYxZjM4ZjU4YQorSURfRlNfVVVJRF9FTkM9OGM4YTBhNWEtOWY1Ny00OTJlLTk2MTAtNDVhNjFmMzhmNThhCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3ctcHJvYmUtemZzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXpmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTU5ZjE4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93LXByb2JlLXpmcwpAQCAtMCwwICsxLDMgQEAKK0lEX0ZTX1RZUEU9emZzCitJRF9GU19VU0FHRT1maWxlc3lzdGVtCitJRF9GU19WRVJTSU9OPTgKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvd3Byb2JlLXB0LWJzZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvd3Byb2JlLXB0LWJzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGU1MmEyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93cHJvYmUtcHQtYnNkCkBAIC0wLDAgKzEsNCBAQAorc2l6ZTogNDQ1NjQ0OCwgc2VjdG9yIHNpemU6IDUxMiwgUFQ6IGJzZCwgb2Zmc2V0OiA1MTIKKy0tLQorIzE6ICAgICAgIDc5MzYgICAgICAgNDg2NCAgMHg3CisjMjogICAgICAxMjU0NCAgICAgICAzNTg0ICAweDcKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvd3Byb2JlLXB0LWRvcytic2QgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3dwcm9iZS1wdC1kb3MrYnNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ODU2ODYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3dwcm9iZS1wdC1kb3MrYnNkCkBAIC0wLDAgKzEsNiBAQAorc2l6ZTogODM4ODYwOCwgc2VjdG9yIHNpemU6IDUxMiwgUFQ6IGRvcywgb2Zmc2V0OiA0NDYKKy0tLQorIzE6ICAgICAgICAgMzIgICAgICAgNzY0OCAgMHg4MworIzI6ICAgICAgIDc2ODAgICAgICAgODcwNCAgMHhhNQorIzU6ICAgICAgIDc5MzYgICAgICAgNDg2NCAgMHg3IChmcmVlYnNkKQorIzY6ICAgICAgMTI1NDQgICAgICAgMzU4NCAgMHg3IChmcmVlYnNkKQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93cHJvYmUtcHQtZ3B0IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93cHJvYmUtcHQtZ3B0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNzU1MWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3dwcm9iZS1wdC1ncHQKQEAgLTAsMCArMSw3IEBACitzaXplOiAxMDQ4NTc2MCwgc2VjdG9yIHNpemU6IDUxMiwgUFQ6IGdwdCwgb2Zmc2V0OiA1MTIKKy0tLQorIzE6ICAgICAgICAgMzQgICAgICAgMjAxNCAgMHgwIG5hbWU9J1RoaXNJc05hbWUnIHV1aWQ9J2JjMTBjZjFkLTdlNjMtNTI0Yy04MjAzLTA4N2FlMTBhODIwYicgdHlwZT0nYTJhMGQwZWItZTViOS0zMzQ0LTg3YzAtNjhiNmI3MjY5OWM3JworIzI6ICAgICAgIDIwNDggICAgICAgMjA0OCAgMHgwIG5hbWU9J1RoaXNJc090aGVyTmFtZScgdXVpZD0nOTYzYWQwYTEtMzg3Mi1jNjQ2LWJiYjMtNzg5Y2JlMTczZWM3JyB0eXBlPSdhMmEwZDBlYi1lNWI5LTMzNDQtODdjMC02OGI2YjcyNjk5YzcnCisjMzogICAgICAgNDA5NiAgICAgICAyMDQ4ICAweDAgbmFtZT0ncHJpbWFyeScgdXVpZD0nNmMxYjEwYTctOGM0Ni1kZjQ3LWFmZjYtY2Q0NDRkMTJhZjYxJyB0eXBlPSdhMmEwZDBlYi1lNWI5LTMzNDQtODdjMC02OGI2YjcyNjk5YzcnCisjNDogICAgICAgNjE0NCAgICAgICAyMDQ4ICAweDAgbmFtZT0ncHJpbWFyeScgdXVpZD0nMGE5NWM0YWYtZjFmMC1kZDRhLTgwMmMtNTk1NzEzMzQ4NmQxJyB0eXBlPSdhMmEwZDBlYi1lNWI5LTMzNDQtODdjMC02OGI2YjcyNjk5YzcnCisjNTogICAgICAgODE5MiAgICAgICAyMDQ4ICAweDAgbmFtZT0ncHJpbWFyeScgdXVpZD0nODdhN2IwMGQtNmJjMS04NjQ4LWFmM2EtZmJiOTcyOTk2NzdjJyB0eXBlPSdhMmEwZDBlYi1lNWI5LTMzNDQtODdjMC02OGI2YjcyNjk5YzcnCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3dwcm9iZS1wdC1zZ2kgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3dwcm9iZS1wdC1zZ2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJiYzdiNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2Jsa2lkL2xvd3Byb2JlLXB0LXNnaQpAQCAtMCwwICsxLDQgQEAKK3NpemU6IDEwNDg1NzYwLCBzZWN0b3Igc2l6ZTogNTEyLCBQVDogc2dpLCBvZmZzZXQ6IDAKKy0tLQorIzE6ICAgICAgICAgNjMgICAgMTYwNjQzNyAgMHg4MworIzI6ICAgIDE2MDY1MDAgICAzMDUyMzUwMCAgMHg4MwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93cHJvYmUtcHQtc3VuIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvYmxraWQvbG93cHJvYmUtcHQtc3VuCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0Y2I1NjEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9ibGtpZC9sb3dwcm9iZS1wdC1zdW4KQEAgLTAsMCArMSw0IEBACitzaXplOiAxMDQ4NTc2MCwgc2VjdG9yIHNpemU6IDUxMiwgUFQ6IHN1biwgb2Zmc2V0OiAwCistLS0KKyMxOiAgICAgICAgICAwICAgICAgODczODAgIDB4ODMKKyMyOiAgICAgIDg3MzgwICAgICAgNDM2OTAgIDB4ODIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2NhbC8xbSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2NhbC8xbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjU3ODc1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvY2FsLzFtCkBAIC0wLDAgKzEsMzcgQEAKKworR3JlZ29yaWFuIC0gTW9uZGF5LWJhc2VkIHdlZWsKKyAgIFNlcHRlbWJlciAyMDA2ICAgCitNbyBUdSBXZSBUaCBGciBTYSBTdQorICAgICAgICAgICAgIDEgIDIgIDMKKyA0ICA1ICA2ICA3ICA4ICA5IDEwCisxMSAxMiAxMyAxNCAxNSAxNiAxNworMTggMTkgMjAgMjEgMjIgMjMgMjQKKzI1IDI2IDI3IDI4IDI5IDMwCisKK0dyZWdvcmlhbiAtIFN1bmRheS1iYXNlZCB3ZWVrCisgICBTZXB0ZW1iZXIgMjAwNiAgIAorU3UgTW8gVHUgV2UgVGggRnIgU2EKKyAgICAgICAgICAgICAgICAxICAyCisgMyAgNCAgNSAgNiAgNyAgOCAgOQorMTAgMTEgMTIgMTMgMTQgMTUgMTYKKzE3IDE4IDE5IDIwIDIxIDIyIDIzCisyNCAyNSAyNiAyNyAyOCAyOSAzMAorCitKdWxpYW4gLSBNb25kYXktYmFzZWQgd2VlaworICAgICAgIFNlcHRlbWJlciAyMDA2ICAgICAgCitNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4KKyAgICAgICAgICAgICAgICAyNDQgMjQ1IDI0NgorMjQ3IDI0OCAyNDkgMjUwIDI1MSAyNTIgMjUzCisyNTQgMjU1IDI1NiAyNTcgMjU4IDI1OSAyNjAKKzI2MSAyNjIgMjYzIDI2NCAyNjUgMjY2IDI2NworMjY4IDI2OSAyNzAgMjcxIDI3MiAyNzMKKworSnVsaWFuIC0gU3VuZGF5LWJhc2VkIHdlZWsKKyAgICAgICBTZXB0ZW1iZXIgMjAwNiAgICAgIAorU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0CisgICAgICAgICAgICAgICAgICAgIDI0NCAyNDUKKzI0NiAyNDcgMjQ4IDI0OSAyNTAgMjUxIDI1MgorMjUzIDI1NCAyNTUgMjU2IDI1NyAyNTggMjU5CisyNjAgMjYxIDI2MiAyNjMgMjY0IDI2NSAyNjYKKzI2NyAyNjggMjY5IDI3MCAyNzEgMjcyIDI3MworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9jYWwvM20gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9jYWwvM20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE5NjU3ZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2NhbC8zbQpAQCAtMCwwICsxLDM3IEBACisKK0dyZWdvcmlhbiAtIE1vbmRheS1iYXNlZCB3ZWVrCisgICAgIEF1Z3VzdCAyMDA2ICAgICAgICAgU2VwdGVtYmVyIDIwMDYgICAgICAgICBPY3RvYmVyIDIwMDYgICAgCitNbyBUdSBXZSBUaCBGciBTYSBTdSAgTW8gVHUgV2UgVGggRnIgU2EgU3UgIE1vIFR1IFdlIFRoIEZyIFNhIFN1CisgICAgMSAgMiAgMyAgNCAgNSAgNiAgICAgICAgICAgICAgIDEgIDIgIDMgICAgICAgICAgICAgICAgICAgICAxCisgNyAgOCAgOSAxMCAxMSAxMiAxMyAgIDQgIDUgIDYgIDcgIDggIDkgMTAgICAyICAzICA0ICA1ICA2ICA3ICA4CisxNCAxNSAxNiAxNyAxOCAxOSAyMCAgMTEgMTIgMTMgMTQgMTUgMTYgMTcgICA5IDEwIDExIDEyIDEzIDE0IDE1CisyMSAyMiAyMyAyNCAyNSAyNiAyNyAgMTggMTkgMjAgMjEgMjIgMjMgMjQgIDE2IDE3IDE4IDE5IDIwIDIxIDIyCisyOCAyOSAzMCAzMSAgICAgICAgICAgMjUgMjYgMjcgMjggMjkgMzAgICAgIDIzIDI0IDI1IDI2IDI3IDI4IDI5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwIDMxICAgICAgICAgICAgICAgCitHcmVnb3JpYW4gLSBTdW5kYXktYmFzZWQgd2VlaworICAgICBBdWd1c3QgMjAwNiAgICAgICAgIFNlcHRlbWJlciAyMDA2ICAgICAgICAgT2N0b2JlciAyMDA2ICAgIAorU3UgTW8gVHUgV2UgVGggRnIgU2EgIFN1IE1vIFR1IFdlIFRoIEZyIFNhICBTdSBNbyBUdSBXZSBUaCBGciBTYQorICAgICAgIDEgIDIgIDMgIDQgIDUgICAgICAgICAgICAgICAgICAxICAyICAgMSAgMiAgMyAgNCAgNSAgNiAgNworIDYgIDcgIDggIDkgMTAgMTEgMTIgICAzICA0ICA1ICA2ICA3ICA4ICA5ICAgOCAgOSAxMCAxMSAxMiAxMyAxNAorMTMgMTQgMTUgMTYgMTcgMTggMTkgIDEwIDExIDEyIDEzIDE0IDE1IDE2ICAxNSAxNiAxNyAxOCAxOSAyMCAyMQorMjAgMjEgMjIgMjMgMjQgMjUgMjYgIDE3IDE4IDE5IDIwIDIxIDIyIDIzICAyMiAyMyAyNCAyNSAyNiAyNyAyOAorMjcgMjggMjkgMzAgMzEgICAgICAgIDI0IDI1IDI2IDI3IDI4IDI5IDMwICAyOSAzMCAzMSAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorSnVsaWFuIC0gTW9uZGF5LWJhc2VkIHdlZWsKKyAgICAgICAgQXVndXN0IDIwMDYgICAgICAgICAgICAgICAgIFNlcHRlbWJlciAyMDA2ICAgICAgICAgICAgICAgIE9jdG9iZXIgMjAwNiAgICAgICAKK01vbiBUdWUgV2VkIFRodSBGcmkgU2F0IFN1biAgTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgU3VuICBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4KKyAgICAyMTMgMjE0IDIxNSAyMTYgMjE3IDIxOCAgICAgICAgICAgICAgICAgIDI0NCAyNDUgMjQ2ICAgICAgICAgICAgICAgICAgICAgICAgICAyNzQKKzIxOSAyMjAgMjIxIDIyMiAyMjMgMjI0IDIyNSAgMjQ3IDI0OCAyNDkgMjUwIDI1MSAyNTIgMjUzICAyNzUgMjc2IDI3NyAyNzggMjc5IDI4MCAyODEKKzIyNiAyMjcgMjI4IDIyOSAyMzAgMjMxIDIzMiAgMjU0IDI1NSAyNTYgMjU3IDI1OCAyNTkgMjYwICAyODIgMjgzIDI4NCAyODUgMjg2IDI4NyAyODgKKzIzMyAyMzQgMjM1IDIzNiAyMzcgMjM4IDIzOSAgMjYxIDI2MiAyNjMgMjY0IDI2NSAyNjYgMjY3ICAyODkgMjkwIDI5MSAyOTIgMjkzIDI5NCAyOTUKKzI0MCAyNDEgMjQyIDI0MyAgICAgICAgICAgICAgMjY4IDI2OSAyNzAgMjcxIDI3MiAyNzMgICAgICAyOTYgMjk3IDI5OCAyOTkgMzAwIDMwMSAzMDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMDMgMzA0ICAgICAgICAgICAgICAgICAgICAKK0p1bGlhbiAtIFN1bmRheS1iYXNlZCB3ZWVrCisgICAgICAgIEF1Z3VzdCAyMDA2ICAgICAgICAgICAgICAgICBTZXB0ZW1iZXIgMjAwNiAgICAgICAgICAgICAgICBPY3RvYmVyIDIwMDYgICAgICAgCitTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgIFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCAgU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0CisgICAgICAgIDIxMyAyMTQgMjE1IDIxNiAyMTcgICAgICAgICAgICAgICAgICAgICAgMjQ0IDI0NSAgMjc0IDI3NSAyNzYgMjc3IDI3OCAyNzkgMjgwCisyMTggMjE5IDIyMCAyMjEgMjIyIDIyMyAyMjQgIDI0NiAyNDcgMjQ4IDI0OSAyNTAgMjUxIDI1MiAgMjgxIDI4MiAyODMgMjg0IDI4NSAyODYgMjg3CisyMjUgMjI2IDIyNyAyMjggMjI5IDIzMCAyMzEgIDI1MyAyNTQgMjU1IDI1NiAyNTcgMjU4IDI1OSAgMjg4IDI4OSAyOTAgMjkxIDI5MiAyOTMgMjk0CisyMzIgMjMzIDIzNCAyMzUgMjM2IDIzNyAyMzggIDI2MCAyNjEgMjYyIDI2MyAyNjQgMjY1IDI2NiAgMjk1IDI5NiAyOTcgMjk4IDI5OSAzMDAgMzAxCisyMzkgMjQwIDI0MSAyNDIgMjQzICAgICAgICAgIDI2NyAyNjggMjY5IDI3MCAyNzEgMjcyIDI3MyAgMzAyIDMwMyAzMDQgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9jYWwveWVhciBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2NhbC95ZWFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxNmQ2MWEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9jYWwveWVhcgpAQCAtMCwwICsxLDE3NyBAQAorCitHcmVnb3JpYW4gLSBNb25kYXktYmFzZWQgd2VlaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICBKYW51YXJ5ICAgICAgICAgICAgICAgRmVicnVhcnkgICAgICAgICAgICAgICAgIE1hcmNoICAgICAgIAorTW8gVHUgV2UgVGggRnIgU2EgU3UgICBNbyBUdSBXZSBUaCBGciBTYSBTdSAgIE1vIFR1IFdlIFRoIEZyIFNhIFN1CisgICAgICAgICAgICAgICAgICAgMSAgICAgICAgICAxICAyICAzICA0ICA1ICAgICAgICAgIDEgIDIgIDMgIDQgIDUKKyAyICAzICA0ICA1ICA2ICA3ICA4ICAgIDYgIDcgIDggIDkgMTAgMTEgMTIgICAgNiAgNyAgOCAgOSAxMCAxMSAxMgorIDkgMTAgMTEgMTIgMTMgMTQgMTUgICAxMyAxNCAxNSAxNiAxNyAxOCAxOSAgIDEzIDE0IDE1IDE2IDE3IDE4IDE5CisxNiAxNyAxOCAxOSAyMCAyMSAyMiAgIDIwIDIxIDIyIDIzIDI0IDI1IDI2ICAgMjAgMjEgMjIgMjMgMjQgMjUgMjYKKzIzIDI0IDI1IDI2IDI3IDI4IDI5ICAgMjcgMjggICAgICAgICAgICAgICAgICAyNyAyOCAyOSAzMCAzMQorMzAgMzEKKyAgICAgICAgQXByaWwgICAgICAgICAgICAgICAgICAgTWF5ICAgICAgICAgICAgICAgICAgIEp1bmUgICAgICAgIAorTW8gVHUgV2UgVGggRnIgU2EgU3UgICBNbyBUdSBXZSBUaCBGciBTYSBTdSAgIE1vIFR1IFdlIFRoIEZyIFNhIFN1CisgICAgICAgICAgICAgICAgMSAgMiAgICAxICAyICAzICA0ICA1ICA2ICA3ICAgICAgICAgICAgIDEgIDIgIDMgIDQKKyAzICA0ICA1ICA2ICA3ICA4ICA5ICAgIDggIDkgMTAgMTEgMTIgMTMgMTQgICAgNSAgNiAgNyAgOCAgOSAxMCAxMQorMTAgMTEgMTIgMTMgMTQgMTUgMTYgICAxNSAxNiAxNyAxOCAxOSAyMCAyMSAgIDEyIDEzIDE0IDE1IDE2IDE3IDE4CisxNyAxOCAxOSAyMCAyMSAyMiAyMyAgIDIyIDIzIDI0IDI1IDI2IDI3IDI4ICAgMTkgMjAgMjEgMjIgMjMgMjQgMjUKKzI0IDI1IDI2IDI3IDI4IDI5IDMwICAgMjkgMzAgMzEgICAgICAgICAgICAgICAyNiAyNyAyOCAyOSAzMAorCisgICAgICAgIEp1bHkgICAgICAgICAgICAgICAgICBBdWd1c3QgICAgICAgICAgICAgICAgU2VwdGVtYmVyICAgICAKK01vIFR1IFdlIFRoIEZyIFNhIFN1ICAgTW8gVHUgV2UgVGggRnIgU2EgU3UgICBNbyBUdSBXZSBUaCBGciBTYSBTdQorICAgICAgICAgICAgICAgIDEgIDIgICAgICAgMSAgMiAgMyAgNCAgNSAgNiAgICAgICAgICAgICAgICAxICAyICAzCisgMyAgNCAgNSAgNiAgNyAgOCAgOSAgICA3ICA4ICA5IDEwIDExIDEyIDEzICAgIDQgIDUgIDYgIDcgIDggIDkgMTAKKzEwIDExIDEyIDEzIDE0IDE1IDE2ICAgMTQgMTUgMTYgMTcgMTggMTkgMjAgICAxMSAxMiAxMyAxNCAxNSAxNiAxNworMTcgMTggMTkgMjAgMjEgMjIgMjMgICAyMSAyMiAyMyAyNCAyNSAyNiAyNyAgIDE4IDE5IDIwIDIxIDIyIDIzIDI0CisyNCAyNSAyNiAyNyAyOCAyOSAzMCAgIDI4IDI5IDMwIDMxICAgICAgICAgICAgMjUgMjYgMjcgMjggMjkgMzAKKzMxCisgICAgICAgT2N0b2JlciAgICAgICAgICAgICAgIE5vdmVtYmVyICAgICAgICAgICAgICAgRGVjZW1iZXIgICAgICAKK01vIFR1IFdlIFRoIEZyIFNhIFN1ICAgTW8gVHUgV2UgVGggRnIgU2EgU3UgICBNbyBUdSBXZSBUaCBGciBTYSBTdQorICAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgMSAgMiAgMyAgNCAgNSAgICAgICAgICAgICAgICAxICAyICAzCisgMiAgMyAgNCAgNSAgNiAgNyAgOCAgICA2ICA3ICA4ICA5IDEwIDExIDEyICAgIDQgIDUgIDYgIDcgIDggIDkgMTAKKyA5IDEwIDExIDEyIDEzIDE0IDE1ICAgMTMgMTQgMTUgMTYgMTcgMTggMTkgICAxMSAxMiAxMyAxNCAxNSAxNiAxNworMTYgMTcgMTggMTkgMjAgMjEgMjIgICAyMCAyMSAyMiAyMyAyNCAyNSAyNiAgIDE4IDE5IDIwIDIxIDIyIDIzIDI0CisyMyAyNCAyNSAyNiAyNyAyOCAyOSAgIDI3IDI4IDI5IDMwICAgICAgICAgICAgMjUgMjYgMjcgMjggMjkgMzAgMzEKKzMwIDMxCisKK0dyZWdvcmlhbiAtIFN1bmRheS1iYXNlZCB3ZWVrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKworICAgICAgIEphbnVhcnkgICAgICAgICAgICAgICBGZWJydWFyeSAgICAgICAgICAgICAgICAgTWFyY2ggICAgICAgCitTdSBNbyBUdSBXZSBUaCBGciBTYSAgIFN1IE1vIFR1IFdlIFRoIEZyIFNhICAgU3UgTW8gVHUgV2UgVGggRnIgU2EKKyAxICAyICAzICA0ICA1ICA2ICA3ICAgICAgICAgICAgIDEgIDIgIDMgIDQgICAgICAgICAgICAgMSAgMiAgMyAgNAorIDggIDkgMTAgMTEgMTIgMTMgMTQgICAgNSAgNiAgNyAgOCAgOSAxMCAxMSAgICA1ICA2ICA3ICA4ICA5IDEwIDExCisxNSAxNiAxNyAxOCAxOSAyMCAyMSAgIDEyIDEzIDE0IDE1IDE2IDE3IDE4ICAgMTIgMTMgMTQgMTUgMTYgMTcgMTgKKzIyIDIzIDI0IDI1IDI2IDI3IDI4ICAgMTkgMjAgMjEgMjIgMjMgMjQgMjUgICAxOSAyMCAyMSAyMiAyMyAyNCAyNQorMjkgMzAgMzEgICAgICAgICAgICAgICAyNiAyNyAyOCAgICAgICAgICAgICAgIDI2IDI3IDI4IDI5IDMwIDMxCisKKyAgICAgICAgQXByaWwgICAgICAgICAgICAgICAgICAgTWF5ICAgICAgICAgICAgICAgICAgIEp1bmUgICAgICAgIAorU3UgTW8gVHUgV2UgVGggRnIgU2EgICBTdSBNbyBUdSBXZSBUaCBGciBTYSAgIFN1IE1vIFR1IFdlIFRoIEZyIFNhCisgICAgICAgICAgICAgICAgICAgMSAgICAgICAxICAyICAzICA0ICA1ICA2ICAgICAgICAgICAgICAgIDEgIDIgIDMKKyAyICAzICA0ICA1ICA2ICA3ICA4ICAgIDcgIDggIDkgMTAgMTEgMTIgMTMgICAgNCAgNSAgNiAgNyAgOCAgOSAxMAorIDkgMTAgMTEgMTIgMTMgMTQgMTUgICAxNCAxNSAxNiAxNyAxOCAxOSAyMCAgIDExIDEyIDEzIDE0IDE1IDE2IDE3CisxNiAxNyAxOCAxOSAyMCAyMSAyMiAgIDIxIDIyIDIzIDI0IDI1IDI2IDI3ICAgMTggMTkgMjAgMjEgMjIgMjMgMjQKKzIzIDI0IDI1IDI2IDI3IDI4IDI5ICAgMjggMjkgMzAgMzEgICAgICAgICAgICAyNSAyNiAyNyAyOCAyOSAzMAorMzAKKyAgICAgICAgSnVseSAgICAgICAgICAgICAgICAgIEF1Z3VzdCAgICAgICAgICAgICAgICBTZXB0ZW1iZXIgICAgIAorU3UgTW8gVHUgV2UgVGggRnIgU2EgICBTdSBNbyBUdSBXZSBUaCBGciBTYSAgIFN1IE1vIFR1IFdlIFRoIEZyIFNhCisgICAgICAgICAgICAgICAgICAgMSAgICAgICAgICAxICAyICAzICA0ICA1ICAgICAgICAgICAgICAgICAgIDEgIDIKKyAyICAzICA0ICA1ICA2ICA3ICA4ICAgIDYgIDcgIDggIDkgMTAgMTEgMTIgICAgMyAgNCAgNSAgNiAgNyAgOCAgOQorIDkgMTAgMTEgMTIgMTMgMTQgMTUgICAxMyAxNCAxNSAxNiAxNyAxOCAxOSAgIDEwIDExIDEyIDEzIDE0IDE1IDE2CisxNiAxNyAxOCAxOSAyMCAyMSAyMiAgIDIwIDIxIDIyIDIzIDI0IDI1IDI2ICAgMTcgMTggMTkgMjAgMjEgMjIgMjMKKzIzIDI0IDI1IDI2IDI3IDI4IDI5ICAgMjcgMjggMjkgMzAgMzEgICAgICAgICAyNCAyNSAyNiAyNyAyOCAyOSAzMAorMzAgMzEKKyAgICAgICBPY3RvYmVyICAgICAgICAgICAgICAgTm92ZW1iZXIgICAgICAgICAgICAgICBEZWNlbWJlciAgICAgIAorU3UgTW8gVHUgV2UgVGggRnIgU2EgICBTdSBNbyBUdSBXZSBUaCBGciBTYSAgIFN1IE1vIFR1IFdlIFRoIEZyIFNhCisgMSAgMiAgMyAgNCAgNSAgNiAgNyAgICAgICAgICAgICAxICAyICAzICA0ICAgICAgICAgICAgICAgICAgIDEgIDIKKyA4ICA5IDEwIDExIDEyIDEzIDE0ICAgIDUgIDYgIDcgIDggIDkgMTAgMTEgICAgMyAgNCAgNSAgNiAgNyAgOCAgOQorMTUgMTYgMTcgMTggMTkgMjAgMjEgICAxMiAxMyAxNCAxNSAxNiAxNyAxOCAgIDEwIDExIDEyIDEzIDE0IDE1IDE2CisyMiAyMyAyNCAyNSAyNiAyNyAyOCAgIDE5IDIwIDIxIDIyIDIzIDI0IDI1ICAgMTcgMTggMTkgMjAgMjEgMjIgMjMKKzI5IDMwIDMxICAgICAgICAgICAgICAgMjYgMjcgMjggMjkgMzAgICAgICAgICAyNCAyNSAyNiAyNyAyOCAyOSAzMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxCisKK0p1bGlhbiAtIE1vbmRheS1iYXNlZCB3ZWVrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDA2ICAgICAgICAgICAgICAgICAgICAgICAgICAKKworICAgICAgICAgIEphbnVhcnkgICAgICAgICAgICAgICAgICAgICAgIEZlYnJ1YXJ5ICAgICAgICAgCitNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4gICBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgIDMyICAzMyAgMzQgIDM1ICAzNgorICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgIDM3ICAzOCAgMzkgIDQwICA0MSAgNDIgIDQzCisgIDkgIDEwICAxMSAgMTIgIDEzICAxNCAgMTUgICAgNDQgIDQ1ICA0NiAgNDcgIDQ4ICA0OSAgNTAKKyAxNiAgMTcgIDE4ICAxOSAgMjAgIDIxICAyMiAgICA1MSAgNTIgIDUzICA1NCAgNTUgIDU2ICA1NworIDIzICAyNCAgMjUgIDI2ICAyNyAgMjggIDI5ICAgIDU4ICA1OQorIDMwICAzMQorICAgICAgICAgICBNYXJjaCAgICAgICAgICAgICAgICAgICAgICAgICBBcHJpbCAgICAgICAgICAgCitNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4gICBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4KKyAgICAgICAgIDYwICA2MSAgNjIgIDYzICA2NCAgICAgICAgICAgICAgICAgICAgICAgIDkxICA5MgorIDY1ICA2NiAgNjcgIDY4ICA2OSAgNzAgIDcxICAgIDkzICA5NCAgOTUgIDk2ICA5NyAgOTggIDk5CisgNzIgIDczICA3NCAgNzUgIDc2ICA3NyAgNzggICAxMDAgMTAxIDEwMiAxMDMgMTA0IDEwNSAxMDYKKyA3OSAgODAgIDgxICA4MiAgODMgIDg0ICA4NSAgIDEwNyAxMDggMTA5IDExMCAxMTEgMTEyIDExMworIDg2ICA4NyAgODggIDg5ICA5MCAgICAgICAgICAgMTE0IDExNSAxMTYgMTE3IDExOCAxMTkgMTIwCisKKyAgICAgICAgICAgIE1heSAgICAgICAgICAgICAgICAgICAgICAgICAgIEp1bmUgICAgICAgICAgIAorTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgU3VuICAgTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgU3VuCisxMjEgMTIyIDEyMyAxMjQgMTI1IDEyNiAxMjcgICAgICAgICAgICAgICAxNTIgMTUzIDE1NCAxNTUKKzEyOCAxMjkgMTMwIDEzMSAxMzIgMTMzIDEzNCAgIDE1NiAxNTcgMTU4IDE1OSAxNjAgMTYxIDE2MgorMTM1IDEzNiAxMzcgMTM4IDEzOSAxNDAgMTQxICAgMTYzIDE2NCAxNjUgMTY2IDE2NyAxNjggMTY5CisxNDIgMTQzIDE0NCAxNDUgMTQ2IDE0NyAxNDggICAxNzAgMTcxIDE3MiAxNzMgMTc0IDE3NSAxNzYKKzE0OSAxNTAgMTUxICAgICAgICAgICAgICAgICAgIDE3NyAxNzggMTc5IDE4MCAxODEKKworICAgICAgICAgICAgSnVseSAgICAgICAgICAgICAgICAgICAgICAgICBBdWd1c3QgICAgICAgICAgCitNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4gICBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4KKyAgICAgICAgICAgICAgICAgICAgMTgyIDE4MyAgICAgICAyMTMgMjE0IDIxNSAyMTYgMjE3IDIxOAorMTg0IDE4NSAxODYgMTg3IDE4OCAxODkgMTkwICAgMjE5IDIyMCAyMjEgMjIyIDIyMyAyMjQgMjI1CisxOTEgMTkyIDE5MyAxOTQgMTk1IDE5NiAxOTcgICAyMjYgMjI3IDIyOCAyMjkgMjMwIDIzMSAyMzIKKzE5OCAxOTkgMjAwIDIwMSAyMDIgMjAzIDIwNCAgIDIzMyAyMzQgMjM1IDIzNiAyMzcgMjM4IDIzOQorMjA1IDIwNiAyMDcgMjA4IDIwOSAyMTAgMjExICAgMjQwIDI0MSAyNDIgMjQzCisyMTIKKyAgICAgICAgIFNlcHRlbWJlciAgICAgICAgICAgICAgICAgICAgICBPY3RvYmVyICAgICAgICAgIAorTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgU3VuICAgTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgU3VuCisgICAgICAgICAgICAgICAgMjQ0IDI0NSAyNDYgICAgICAgICAgICAgICAgICAgICAgICAgICAyNzQKKzI0NyAyNDggMjQ5IDI1MCAyNTEgMjUyIDI1MyAgIDI3NSAyNzYgMjc3IDI3OCAyNzkgMjgwIDI4MQorMjU0IDI1NSAyNTYgMjU3IDI1OCAyNTkgMjYwICAgMjgyIDI4MyAyODQgMjg1IDI4NiAyODcgMjg4CisyNjEgMjYyIDI2MyAyNjQgMjY1IDI2NiAyNjcgICAyODkgMjkwIDI5MSAyOTIgMjkzIDI5NCAyOTUKKzI2OCAyNjkgMjcwIDI3MSAyNzIgMjczICAgICAgIDI5NiAyOTcgMjk4IDI5OSAzMDAgMzAxIDMwMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAzIDMwNAorICAgICAgICAgIE5vdmVtYmVyICAgICAgICAgICAgICAgICAgICAgIERlY2VtYmVyICAgICAgICAgCitNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4gICBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCBTdW4KKyAgICAgICAgMzA1IDMwNiAzMDcgMzA4IDMwOSAgICAgICAgICAgICAgICAgICAzMzUgMzM2IDMzNworMzEwIDMxMSAzMTIgMzEzIDMxNCAzMTUgMzE2ICAgMzM4IDMzOSAzNDAgMzQxIDM0MiAzNDMgMzQ0CiszMTcgMzE4IDMxOSAzMjAgMzIxIDMyMiAzMjMgICAzNDUgMzQ2IDM0NyAzNDggMzQ5IDM1MCAzNTEKKzMyNCAzMjUgMzI2IDMyNyAzMjggMzI5IDMzMCAgIDM1MiAzNTMgMzU0IDM1NSAzNTYgMzU3IDM1OAorMzMxIDMzMiAzMzMgMzM0ICAgICAgICAgICAgICAgMzU5IDM2MCAzNjEgMzYyIDM2MyAzNjQgMzY1CisKKworSnVsaWFuIC0gU3VuZGF5LWJhc2VkIHdlZWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDYgICAgICAgICAgICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgSmFudWFyeSAgICAgICAgICAgICAgICAgICAgICAgRmVicnVhcnkgICAgICAgICAKK1N1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCAgIFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdAorICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgICAgICAgICAgICAgIDMyICAzMyAgMzQgIDM1CisgIDggICA5ICAxMCAgMTEgIDEyICAxMyAgMTQgICAgMzYgIDM3ICAzOCAgMzkgIDQwICA0MSAgNDIKKyAxNSAgMTYgIDE3ICAxOCAgMTkgIDIwICAyMSAgICA0MyAgNDQgIDQ1ICA0NiAgNDcgIDQ4ICA0OQorIDIyICAyMyAgMjQgIDI1ICAyNiAgMjcgIDI4ICAgIDUwICA1MSAgNTIgIDUzICA1NCAgNTUgIDU2CisgMjkgIDMwICAzMSAgICAgICAgICAgICAgICAgICAgNTcgIDU4ICA1OQorCisgICAgICAgICAgIE1hcmNoICAgICAgICAgICAgICAgICAgICAgICAgIEFwcmlsICAgICAgICAgICAKK1N1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCAgIFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdAorICAgICAgICAgICAgIDYwICA2MSAgNjIgIDYzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkxCisgNjQgIDY1ICA2NiAgNjcgIDY4ICA2OSAgNzAgICAgOTIgIDkzICA5NCAgOTUgIDk2ICA5NyAgOTgKKyA3MSAgNzIgIDczICA3NCAgNzUgIDc2ICA3NyAgICA5OSAxMDAgMTAxIDEwMiAxMDMgMTA0IDEwNQorIDc4ICA3OSAgODAgIDgxICA4MiAgODMgIDg0ICAgMTA2IDEwNyAxMDggMTA5IDExMCAxMTEgMTEyCisgODUgIDg2ICA4NyAgODggIDg5ICA5MCAgICAgICAxMTMgMTE0IDExNSAxMTYgMTE3IDExOCAxMTkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyMAorICAgICAgICAgICAgTWF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgSnVuZSAgICAgICAgICAgCitTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgICBTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQKKyAgICAxMjEgMTIyIDEyMyAxMjQgMTI1IDEyNiAgICAgICAgICAgICAgICAgICAxNTIgMTUzIDE1NAorMTI3IDEyOCAxMjkgMTMwIDEzMSAxMzIgMTMzICAgMTU1IDE1NiAxNTcgMTU4IDE1OSAxNjAgMTYxCisxMzQgMTM1IDEzNiAxMzcgMTM4IDEzOSAxNDAgICAxNjIgMTYzIDE2NCAxNjUgMTY2IDE2NyAxNjgKKzE0MSAxNDIgMTQzIDE0NCAxNDUgMTQ2IDE0NyAgIDE2OSAxNzAgMTcxIDE3MiAxNzMgMTc0IDE3NQorMTQ4IDE0OSAxNTAgMTUxICAgICAgICAgICAgICAgMTc2IDE3NyAxNzggMTc5IDE4MCAxODEKKworICAgICAgICAgICAgSnVseSAgICAgICAgICAgICAgICAgICAgICAgICBBdWd1c3QgICAgICAgICAgCitTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgICBTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQKKyAgICAgICAgICAgICAgICAgICAgICAgIDE4MiAgICAgICAgICAgMjEzIDIxNCAyMTUgMjE2IDIxNworMTgzIDE4NCAxODUgMTg2IDE4NyAxODggMTg5ICAgMjE4IDIxOSAyMjAgMjIxIDIyMiAyMjMgMjI0CisxOTAgMTkxIDE5MiAxOTMgMTk0IDE5NSAxOTYgICAyMjUgMjI2IDIyNyAyMjggMjI5IDIzMCAyMzEKKzE5NyAxOTggMTk5IDIwMCAyMDEgMjAyIDIwMyAgIDIzMiAyMzMgMjM0IDIzNSAyMzYgMjM3IDIzOAorMjA0IDIwNSAyMDYgMjA3IDIwOCAyMDkgMjEwICAgMjM5IDI0MCAyNDEgMjQyIDI0MworMjExIDIxMgorICAgICAgICAgU2VwdGVtYmVyICAgICAgICAgICAgICAgICAgICAgIE9jdG9iZXIgICAgICAgICAgCitTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgICBTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQKKyAgICAgICAgICAgICAgICAgICAgMjQ0IDI0NSAgIDI3NCAyNzUgMjc2IDI3NyAyNzggMjc5IDI4MAorMjQ2IDI0NyAyNDggMjQ5IDI1MCAyNTEgMjUyICAgMjgxIDI4MiAyODMgMjg0IDI4NSAyODYgMjg3CisyNTMgMjU0IDI1NSAyNTYgMjU3IDI1OCAyNTkgICAyODggMjg5IDI5MCAyOTEgMjkyIDI5MyAyOTQKKzI2MCAyNjEgMjYyIDI2MyAyNjQgMjY1IDI2NiAgIDI5NSAyOTYgMjk3IDI5OCAyOTkgMzAwIDMwMQorMjY3IDI2OCAyNjkgMjcwIDI3MSAyNzIgMjczICAgMzAyIDMwMyAzMDQKKworICAgICAgICAgIE5vdmVtYmVyICAgICAgICAgICAgICAgICAgICAgIERlY2VtYmVyICAgICAgICAgCitTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQgICBTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQKKyAgICAgICAgICAgIDMwNSAzMDYgMzA3IDMwOCAgICAgICAgICAgICAgICAgICAgICAgMzM1IDMzNgorMzA5IDMxMCAzMTEgMzEyIDMxMyAzMTQgMzE1ICAgMzM3IDMzOCAzMzkgMzQwIDM0MSAzNDIgMzQzCiszMTYgMzE3IDMxOCAzMTkgMzIwIDMyMSAzMjIgICAzNDQgMzQ1IDM0NiAzNDcgMzQ4IDM0OSAzNTAKKzMyMyAzMjQgMzI1IDMyNiAzMjcgMzI4IDMyOSAgIDM1MSAzNTIgMzUzIDM1NCAzNTUgMzU2IDM1NworMzMwIDMzMSAzMzIgMzMzIDMzNCAgICAgICAgICAgMzU4IDM1OSAzNjAgMzYxIDM2MiAzNjMgMzY0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNjUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvY29sL211bHRpYnl0ZSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2NvbC9tdWx0aWJ5dGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZkMzZjYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2NvbC9tdWx0aWJ5dGUKQEAgLTAsMCArMSBAQAorY29sOiBJbnZhbGlkIG9yIGluY29tcGxldGUgbXVsdGlieXRlIG9yIHdpZGUgY2hhcmFjdGVyCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9jcmFtZnMvZnNjay1lbmRpYW5uZXNzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvY3JhbWZzL2ZzY2stZW5kaWFubmVzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzU5MWI2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvY3JhbWZzL2ZzY2stZW5kaWFubmVzcwpAQCAtMCwwICsxLDggQEAKK2V4dHJhY3QgZnJvbSBsaXR0bGUgZW5kaWFuCitsaXR0bGUKK2NyZWF0ZSBiaWcgZW5kaWFuCitiYzBiN2JiZWYwMjc2NWQzMmUwN2ZhYTczNWQyZTBjNgorZXh0cmFjdCBmcm9tIGJpZyBlbmRpYW4KK2JpZworY3JlYXRlIGxpdHRsZSBlbmRpYW4KKzQ2NjZmMGQyYjY2MWY5ZjM5NjI4NzdlZGFiYWRiMjEwCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9jcmFtZnMvbWtmcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2NyYW1mcy9ta2ZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllNjJmNmUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9jcmFtZnMvbWtmcwpAQCAtMCwwICsxLDQxMjUgQEAKK2NyZWF0ZSBtb3VudHBvaW50IGRpcgorZ2VuZXJhdGUgZGF0YQorbGlzdCBjaGVja3N1bXMgZnJvbSBvcmlnaW5hbCBkYXRhCiswMDExYTcyZjM4ZGE2NjhmOTRlZGZhMWQ1MDc0M2UyYSAgLi9kaXItMDA5L2RhdGEuMDA5CiswMDcxYmViNGJhYTU5OTE0MWE3ZTQ0NjMzNGQ1ODMwMCAgLi9kaXItMDk3L2RhdGEuMDAxCiswMDg3M2M4NzVmMzQ2MWZiOWY1YmFhOWEwMzlmMjE4ZiAgLi9kaXItMDkzL2RhdGEuMDAyCiswMTIwZmI4MTI2OTU5ODQzOGU4NGYzZmUxMGIyNDY1OCAgLi9kaXItMTAwL2RhdGEuMDEwCiswMTNiOGFlNWM0YjAxMWI4N2IxNDJlNWQ2MDY0NWY5OCAgLi9kaXItMDIwL2RhdGEuMDEwCiswMTY3NzkxNDYyZmZjYWJhOGMyMjE0MjZjMjVjZjQ1NSAgLi9kaXItMDkyL2RhdGEuMDAwCiswMTkzNmMzNzE2OWNjNzg2Y2RjNzI0YWJiZjE5NjFlMyAgLi9kaXItMDk0L2RhdGEuMDAzCiswMWU1YThiZWU4NjRmOTliY2ZkZTkxYjJmNTAxZmE1NiAgLi9kaXItMDYyL2RhdGEuMDA0CiswMjRiMWQ0Y2I5MzY2MGYxMjVlNmY0NzgzZTI2OTcyYyAgLi9kaXItMDcyL2RhdGEuMDAzCiswMjljMTE5OWQxNmJjOGRhMmFmZDJmZTFjNDdiNjg1OSAgLi9kaXItMDc3L2RhdGEuMDAxCiswMmExYzBhODI3NzFjNTkyMzZlYjlmMzM3ZGQwYjRkYSAgLi9kaXItMDczL2RhdGEuMDAwCiswMzJjZGIxYWMyMjNhZGY5ZWQ0NTI3OGU2NGYyNjVmMCAgLi9kaXItMDgzL2RhdGEuMDA3CiswMzY1NWQwODFjZTU2N2E0ZDVmYzhlMGMzZGM1OWUzYSAgLi9kaXItMDg1L2RhdGEuMDA2CiswMzk3ZTAxY2Y2ODA1NzI4MjU2ZmE5MjcyYWI2NzJjNCAgLi9kaXItMDYyL2RhdGEuMDAzCiswM2E1OGNlYzU4ZjdiNzRjMGQ4ODAzZTVhMDVkYTIwZCAgLi9kaXItMTA3L2RhdGEuMDA0CiswM2IzYjE2NTQ3YjI1ZTk0ODRjNTE2ZjVlODhlNWM3NSAgLi9kaXItMDg5L2RhdGEuMDA2CiswM2I0ZWQ3MGY5NmQ1YzY5M2JjZjdmNWE0NzllY2Q5ZiAgLi9kaXItMDE0L2RhdGEuMDA3CiswM2Q4YTRhYzVhZGQ1YTk1ZjNkOWNhYzhmODQ3YzhlNyAgLi9kaXItMDIzL2RhdGEuMDAwCiswM2RlMmYwOTU4YTc2ZTlkMDEzODliOTE5YzY5ZWM5NiAgLi9kaXItMDc5L2RhdGEuMDA0CiswNDNmYTZjYmEwODk0NmFkNTA4Y2E4OTBhNDJmMDY0NCAgLi9kaXItMDA1L2RhdGEuMDA0CiswNGJlYWM0OWU2ZDFmMWY5MDY3ZGEyNDlmODk1M2ZlOSAgLi9kaXItMDQxL2RhdGEuMDAyCiswNGJmMzY3MjFjOWRhNTViMmZkNjc4MGE1YTZkY2VmMCAgLi9kaXItMDEyL2RhdGEuMDA5CiswNTJhYzdmZjA0NzkyOGE0ZjFjMGQ4YmYzODMyMDQ4MyAgLi9kaXItMDAwL2RhdGEuMDAzCiswNTNiMTUzOTYwOTZjMjc1MWQ5ZTMyYjE4NmJmMDk0OCAgLi9kaXItMDM1L2RhdGEuMDA1CiswNTg4NzllMDcwZDUxYzFlMjQ4N2Q0ODFmOWM0M2I3OCAgLi9kaXItMDcxL2RhdGEuMDA3CiswNWJkNDM4ZDdhMTUxZWJlYzI0Y2NlZmZiNzkyYzNiYiAgLi9kaXItMTA0L2RhdGEuMDA5CiswNWJkOWI2OTJlZjJmZjJjM2UyZTIyYTU4MmJmYzI1YyAgLi9kaXItMDIxL2RhdGEuMDA2CiswNjQ5MmRlZTUwMTU3ZjM3OWVhYmJlODExYmNiNWFjNyAgLi9kaXItMDczL2RhdGEuMDA5CiswNjhjNzI0ZTc2ZGJhMGM4ODdjNTMyM2RlN2I3YTQzNCAgLi9kaXItMDIxL2RhdGEuMDA0CiswNjkzNzlhYmZkOWYyNmUyMDNjNTM5MjM0NDNlNThhNCAgLi9kaXItMDk0L2RhdGEuMDA2CiswNmMzNmY1ZGIwYzAyMTI3ZGJiY2E3NWM1ZDdjMTMwYyAgLi9kaXItMTA0L2RhdGEuMDA2CiswNmQyMTlkODNkMGQyMTQyZTlmN2EwNjM3MmU4MmY4MSAgLi9kaXItMTEwL2RhdGEuMDEwCiswNmRmNzE4Zjg4NWZkNzFmMjU2ODk0MGI2MTY1MjhjMyAgLi9kaXItMDU5L2RhdGEuMDAxCiswNzAxNzgyMzBlYTQ3ZTkwZDAwZjlhNmZhMTk3NWZkMiAgLi9kaXItMDc5L2RhdGEuMDA1CiswNzJjMWQxNzU1YTRhZjc4NTVkZmVhM2M2OGNmMjcwYSAgLi9kaXItMDY1L2RhdGEuMDA4CiswN2NkNzY3ZWYyNGQ0ZWMwNTdhYjk4ZDBiNGIzODhhOSAgLi9kaXItMDkxL2RhdGEuMDAyCiswODEwMjliN2Q4YmIyN2Y2YzRmNzlhMmU0YmE2N2Q4NSAgLi9kaXItMDcwL2RhdGEuMDA1CiswODI2ODA4ODI1NDI1NmMyNTg5NGM2ZDc2OTAyY2Q2MSAgLi9kaXItMDM3L2RhdGEuMDA3CiswODI5YzIwYzgxMTEzZWVjMDc1OWU1ZmRkNzRiMWQzZSAgLi9kaXItMDU2L2RhdGEuMDA1CiswODMxMGFkNzhjYmQzZDZlZTE4NjRlNWMxNDUyNDhkOSAgLi9kaXItMTAzL2RhdGEuMDAxCiswODQ3OGM3YTUyM2E4NzI1MTA3YWQ4MDRhN2RjZGExZSAgLi9kaXItMDk2L2RhdGEuMDAzCiswODc2M2QyMzhlMDJkN2FiNTdkNzYyYjU4MDM4ZTM4YyAgLi9kaXItMDU0L2RhdGEuMDAwCiswOGY5NmJmNjhlZWE4YjgyYmNlMWE1YzE1NjUwNzViZSAgLi9kaXItMDYwL2RhdGEuMDAzCiswOTBlZDg4MDM2YTk2MThlNGM0NDg1OGRiMzk5NzkzZCAgLi9kaXItMDQ0L2RhdGEuMDA4CiswOTJiYWE4ZDI2NTllZDk0ODAzZTY1MmJlNGM4YWZlNCAgLi9kaXItMDk5L2RhdGEuMDA5CiswOTNkMmQ0NTk3MDE1Y2FlNDJkZjdkM2UyZTNiZjgwMiAgLi9kaXItMDYyL2RhdGEuMDA5CiswOTZiN2E0ZjY3YTU2MWZhMjkzM2JiZWZiYTAzMmM2NyAgLi9kaXItMDI1L2RhdGEuMDEwCiswOTliZjQxMDdhZTAwOTQ5N2FiZjUyZDZkMDhmNWIzNiAgLi9kaXItMDEzL2RhdGEuMDA2CiswOWI0ZjVhMmI0OWNlYmE3NTJhNjA0Mjk3YWI2MDYzNSAgLi9kaXItMDQ5L2RhdGEuMDA2CiswOWNhMjUwOWI0MThiNTcyMTE4OGVhMDQ0ZWY2YjRjMiAgLi9kaXItMDYyL2RhdGEuMDA1CiswOWQ2YTg0NGEwZjE5NGY4ODRjOGJmYTZlZDgzMGEwZSAgLi9kaXItMTA2L2RhdGEuMDA3CiswOWQ5ODY3ZjU2MWQzNWQyZGUzN2Q5YWUyOTQwMGVlMCAgLi9kaXItMDg0L2RhdGEuMDAxCiswYTRmOTE2MTA5NmVjZjhmZjgzOTdjZmZjZDliZjJjNyAgLi9kaXItMDAwL2RhdGEuMDAyCiswYTU0ZjJhODM0N2NhZDdlODA2Y2QwMjgwYjYxNzQ2MyAgLi9kaXItMDE3L2RhdGEuMDA1CiswYWRhMDQyODI4YTcwMGFkMjQ4OWEyMzQ3M2Q4ZTkwZSAgLi9kaXItMDAzL2RhdGEuMDA0CiswYWZkM2I0OWYxNmQyOWViYmM2ZjQ3OWEzOWNlN2JmYSAgLi9kaXItMDM3L2RhdGEuMDAzCiswYjBmYjcyZjAzZGI5OWNjNzIyZDRhYWYyYTk4ZTViNiAgLi9kaXItMDEwL2RhdGEuMDA1CiswYjUwOGI1MDIxZWZlNDhhYmVhZmI1OWJjZTZhM2Y2ZCAgLi9kaXItMDk0L2RhdGEuMDA5CiswYjkzOGYwZmU3YmJiNjUxYjFkMjVmNzc2M2FlNmQ1MiAgLi9kaXItMDUyL2RhdGEuMDA0CiswYjk5NzQ2ZjA0OGI2ZTQyMWE0NTJlOTMwMjUzYmIxNSAgLi9kaXItMDU2L2RhdGEuMDA4CiswYmFhYWVlMWVjYWViNWY5Y2Y4Yjc1NjdhZmQ0ZWY4OSAgLi9kaXItMDI2L2RhdGEuMDAxCiswYmJjY2YwNDEwOWIyNmY4ZDRmMWNjY2IwMGY3MjdlOSAgLi9kaXItMDUzL2RhdGEuMDA0CiswYzFlM2M4NjliMGFkYWE3Y2U5Mzg3OWExNTE3NzZkZiAgLi9kaXItMDAxL2RhdGEuMDA2CiswYzgyMTFlZjQyZDc1ODkyYzcwN2YwMjJlMmE3ZDQ1MiAgLi9kaXItMDQzL2RhdGEuMDA0CiswYzkyOThhZWZlNzIwMDRkMzQ2NDNlZGRlZjhmNGYxZiAgLi9kaXItMTA5L2RhdGEuMDA3CiswY2ZjYzE1MjIzNWFjMmYxNTY5YzM5MDA4NGI2ZDQ0MiAgLi9kaXItMDEyL2RhdGEuMDA2CiswZDEzNTU3ZjU2NjY3ODMxYTg1M2Q0MjJmNDBjYjg4ZCAgLi9kaXItMDE0L2RhdGEuMDA2CiswZDNjZDliMjJiOTEzOTFkMTdjMzBlNzlmYzg5MmE2MiAgLi9kaXItMDYyL2RhdGEuMDA4CiswZGExMTc1MzJjYWRlNDNhOWI0MmI2ODFkYmI0ZDk3YiAgLi9kaXItMDQ3L2RhdGEuMDAwCiswZGI4YWVhNWVjZWYwNDA3NDJlNGQ5YjNiYWE3NmRkNiAgLi9kaXItMDMwL2RhdGEuMDAxCiswZGJhYzFkNjk3Y2M3NzY4NWUxZmI4ODQ5MTZjMWFlNSAgLi9kaXItMDI2L2RhdGEuMDA0CiswZGJkZWQ0ZDIyNDUzYzc0ZWQ4Y2E4NzZjNzU5YzFkMCAgLi9kaXItMDI1L2RhdGEuMDA2CiswZGM4OWFkOTE2MDU1YzczMjFhZDg5ZTEzNWQ1YjU2NSAgLi9kaXItMDUxL2RhdGEuMDA2CiswZGNjMWJiNWI4YzY3MWZhOTA2YTRjMDI3Zjc4MTE0OSAgLi9kaXItMDAyL2RhdGEuMDA4CiswZGVmOWU0OWQ0NmY4MTg4N2FmZDYwMDRiYTI3OTY2ZSAgLi9kaXItMDE3L2RhdGEuMDAzCiswZTEyNTc3ZTQ1NGE0NDg2NmY1NGY5OTczODYzN2QzZSAgLi9kaXItMDU5L2RhdGEuMDA0CiswZTIwYTcxODlmMGE5ZDI0MzVmM2JjYTFjM2E2MTExYiAgLi9kaXItMDUzL2RhdGEuMDAzCiswZTM4N2Q0ZTFkMjY2OWVkZDU1Mjc2NzZkYzVhZWM4OCAgLi9kaXItMDkyL2RhdGEuMDAxCiswZTRkNjE1YzJhYWZkYTdjYTllMjRjZTVjNDYzNzA0NyAgLi9kaXItMDQ2L2RhdGEuMDA2CiswZTY0YzM1NmI0NmY3NjkyMzE5NWZkNDlkNDUyY2RhOSAgLi9kaXItMDkyL2RhdGEuMDA0CiswZThkOTlhM2IzNDczMzQ4OGQ0ZDBlOTE4MzdhZTYyNSAgLi9kaXItMDEwL2RhdGEuMDAzCiswZTkzY2I4MjA2YjNkOTJjNmIzNzdmNWYwYWU2YzNjYSAgLi9kaXItMTAxL2RhdGEuMDA4CiswZjA0OGI5YmRhNmY2OTRkOTBlOTYxYTVmODNhZTIwMCAgLi9kaXItMDM5L2RhdGEuMDA5CiswZjVjZGM2NWVmODQ3M2YzMjUzM2UzZjU2ZGNhMmVhNCAgLi9kaXItMDM5L2RhdGEuMDEwCiswZjk5ZGZmYmI3ODBiZjRhYzUzODFmMmYxNDc4MmE2ZSAgLi9kaXItMDQxL2RhdGEuMDAwCisxMDI5ZTkxMmY2ZWNjOTMwNTU4NWU4MzMzZDcxNjAyYyAgLi9kaXItMTAxL2RhdGEuMDA0CisxMDNiOGUyOTliNmVkNWI0N2Q1ZWI2YWY3ZDA0ZDg1ZiAgLi9kaXItMDAxL2RhdGEuMDA4CisxMDQxNzkwM2IzMTI4NDk3ZmZhZTUxMmU5NDEzZDJiYiAgLi9kaXItMDY5L2RhdGEuMDAwCisxMDhjNjE1NjI3ZTNhMjg3NGZmY2QwYzdkYWY5M2ZhYiAgLi9kaXItMDQ5L2RhdGEuMDAyCisxMGU2ZTEwOTdjOWE0YzE3YWViMjExYTI5MjBlODcyYSAgLi9kaXItMDgwL2RhdGEuMDEwCisxMGZiNWRhMDQxMzRjNjYzYjA1NTRhZjA4NGUyYTdlYyAgLi9kaXItMDk1L2RhdGEuMDAwCisxMTRmNmJjMGZjZDg3NjM1YTZiZjMwNDAwOGU5YjVjNCAgLi9kaXItMDkzL2RhdGEuMDAwCisxMTUxYWU2MmRiMTU1YTAxNTcxZDdjNzllZTkzMDdkMyAgLi9kaXItMDAyL2RhdGEuMDEwCisxMWIzZGVjMmJmZjk2NWFmNmIzNjY3MGRmZDdhZTU3MyAgLi9kaXItMDU2L2RhdGEuMDAxCisxMWUzNjFiNzVkZmZiZTBlZDA5Y2RhNjM4ZDg3ZTJjZCAgLi9kaXItMDQ3L2RhdGEuMDA3CisxMWU5YzA2YzBkN2MzNTVmMWJiMGJmOGFkMzM3NmFjYiAgLi9kaXItMDgzL2RhdGEuMDAxCisxMWZiNTljYjM1NTcwODFlZDcyMTk2NjZiNzQzNzRiNCAgLi9kaXItMDA0L2RhdGEuMDA1CisxMjUxODAzZDliMzFjZWIxZWUyOTAwYTg0MDdjNzYyZiAgLi9kaXItMDE4L2RhdGEuMDA0CisxMjVmNzFjNTAxNmU5MmIzNjU5MDcwZWQwNGY1OGJlNiAgLi9kaXItMDYwL2RhdGEuMDA3CisxMmFhNWQwZGFjMGViNTFlN2QyMmI4ODI0NjI4MmYwMyAgLi9kaXItMDkzL2RhdGEuMDA2CisxMmNmYjNhZjg2YjdjYzE0MWEzZmU5YTYyNjg3MjZhNSAgLi9kaXItMDI0L2RhdGEuMDA1CisxMzJhZjcwMDUyNTVjYzRiMDM4YWQ5MDIxZWNhMzg0MCAgLi9kaXItMDY2L2RhdGEuMDA1CisxM2M4ZWIwNzFjOGU4YmQ2ODQyMWQzN2Y5MjU2MDFlNCAgLi9kaXItMDE2L2RhdGEuMDAwCisxM2RkMTRlNTVjZGE5MmRlZjZmMTFkYjQ4MjQzNGEwMCAgLi9kaXItMDIyL2RhdGEuMDA4CisxM2Y2NzM2NmVlNWM4YWRiNDBlODBkM2E1Y2QxN2ZiNyAgLi9kaXItMDY2L2RhdGEuMDAxCisxM2ZiMjM2ZTVmMjdiNzg5ZmMzMWYxY2Y1YjFiODg5MiAgLi9kaXItMDE1L2RhdGEuMDAzCisxNDUwNmMxODgwNGRlYmNlYmYyN2EzNzdhYTA0ZWFhNiAgLi9kaXItMDg3L2RhdGEuMDA3CisxNDUyOGJmYWEwYTFhY2E2M2NiYzgwYWNhYjk2ZjgwMCAgLi9kaXItMDUxL2RhdGEuMDA4CisxNDhjZjVjNWZlYjcyMjA5MjQ0MWVjODdiN2E1NjExYSAgLi9kaXItMDI1L2RhdGEuMDA3CisxNDliNzY3NGE5Mjc5NmJlYzdmNjA2NmJiZGVmOWEzYyAgLi9kaXItMDI3L2RhdGEuMDA3CisxNGRhMDhiMmQ4NWJmYzgxYzBiMGI5MjgxNzk4OTc5MSAgLi9kaXItMDMzL2RhdGEuMDAyCisxNTAwYTRjNTA1NGQ4N2RkNjFjMzkyZjMzODY4ZGE0YiAgLi9kaXItMDM4L2RhdGEuMDEwCisxNTk4N2NiM2RhNjJmNDVjN2FlZTdhMGFiOTUxODIwNiAgLi9kaXItMDg5L2RhdGEuMDAxCisxNWMwNTMyN2YzMzdjN2Q3NDE0ZDQ3MmZhNzcwZWMzYyAgLi9kaXItMDM4L2RhdGEuMDAzCisxNWNjZDVhMzEyZWI3NzJjODVhNDRhNjMwOTkzMjJhZiAgLi9kaXItMDQ1L2RhdGEuMDA1CisxNWYzMGEzMjY0YzBmOGM1N2U2ZDc0OTdhNDA2NGZlZCAgLi9kaXItMTAwL2RhdGEuMDAzCisxNjE1NjcxOGJlY2ViZjBmOTc1MTM2ZGNhNmM2YWU1NiAgLi9kaXItMDQyL2RhdGEuMDA1CisxNjI0ZDJhNGVhZDYxY2IzYzhlMjVjMjE3OTRlYTY3OSAgLi9kaXItMTA2L2RhdGEuMDA2CisxNjhiOTdiZGE4YWE2Zjc5NWQ4ZjcyNzIxOTRkMWQ1YSAgLi9kaXItMDIwL2RhdGEuMDA2CisxNjhmN2ViODJkZDdlYjc4YzRhNTIyMWQyZTU4MWRkZSAgLi9kaXItMDY1L2RhdGEuMDAyCisxNmNmOGM2YWNkM2NkMWNhMmZjNGJmYzliNTQzOTgyYSAgLi9kaXItMDA3L2RhdGEuMDA5CisxNzE0OTMzYjExYTRhOGU2MDAwNTc1NjU4NjZlYzQyMyAgLi9kaXItMDgwL2RhdGEuMDA5CisxNzQ1NjU2Zjk2MDFmYmQ1MTYzMTQ0NTAwZWRhNjU2OCAgLi9kaXItMDU3L2RhdGEuMDA0CisxNzkzNTNjZTE0OGMzNzQyNWQ3NjZlYTViNDNkYzMyYiAgLi9kaXItMDIzL2RhdGEuMDA3CisxN2Y3Nzg3NDU3ZTVmZDFhODYwMWRkMjM3NWVlYTc3NyAgLi9kaXItMDM2L2RhdGEuMDAzCisxODE1YzYzMTc1MjhjYWZkMmExZTYxNDI5ZDI5ZTFjZiAgLi9kaXItMDA4L2RhdGEuMDAzCisxODM2ZmQzOWIwNWQ5NGE4NjBkNzI3Zjk3MmExODcyOSAgLi9kaXItMDI5L2RhdGEuMDA3CisxODY5OTI1NzJlOTdkYzBhMzY4OGIyMjAyYzA2NmE3MCAgLi9kaXItMDY2L2RhdGEuMDA4CisxOGI0YTQzN2Q4MWFjZjU5NGNjMTQ4MjAzMTk4N2Y2MSAgLi9kaXItMDU4L2RhdGEuMDA5CisxOGQ5NzhjNmY1NGI1MGJhY2M1MWI1YmUyYTZiYTZkZSAgLi9kaXItMDUxL2RhdGEuMDAyCisxOGVkZjMzZGEyYzdlODViNmEyZDU0YjA0Zjc5NjY1ZSAgLi9kaXItMDkzL2RhdGEuMDA5CisxOTQ3NjgxZWJkYjY1Y2ZjNmE0ODU1NmVhOWQ5MjNkOSAgLi9kaXItMDIzL2RhdGEuMDA1CisxOTY5ZWNkMjI1YjlkNmZhNDAyOWJmNjczZGJlYTRkZSAgLi9kaXItMDM2L2RhdGEuMDA3CisxOWEzNGY4YzkwMTZjZWE4ZDU4ZjAyYjgxNmQ0NDc1ZCAgLi9kaXItMDY1L2RhdGEuMDAzCisxOWMzZjdiYTYzZjY0Y2Q2ZTg0ZDI4ZTk3NDgzNDEwMSAgLi9kaXItMDEyL2RhdGEuMDAyCisxYTM1ZTE5YzZmYWI0ZmExZDgxOGU2ZWZiNzlhN2IxOCAgLi9kaXItMDUyL2RhdGEuMDAzCisxYTkyZmQ1YTQ4MjFlOTI0NDYxNDI5NTc3NDkxNDA3ZCAgLi9kaXItMDAyL2RhdGEuMDAxCisxYTk3M2YyYzAwZDAwOTA2MDdhMDVkNjA4YjgxODk3ZiAgLi9kaXItMDg4L2RhdGEuMDA1CisxYWNkYWI0ODBjNTJhNDU0YmE1NTUyYzI5NTE2ZDkzMyAgLi9kaXItMDczL2RhdGEuMDA2CisxYWQxN2M0NjAzNjA5YTM2YTcwNDkxNGU2ZjkxZDFlNiAgLi9kaXItMDM0L2RhdGEuMDAyCisxYjFkZGZiODhmMGNmMzdkOTZhNDRlZGViMjY2MjlmOSAgLi9kaXItMDQzL2RhdGEuMDEwCisxYmI1Mzc0N2JlNmFkOGEzZTdkYTU3YzYwYWU1NGJmNCAgLi9kaXItMDQ3L2RhdGEuMDEwCisxYmJiNmIxZWE3ODA2YjkyZTQzMWFhNDgxYmE1MzI1NiAgLi9kaXItMDU5L2RhdGEuMDA5CisxYmVmY2MwMDQwYzZhM2I3ZTkzNmE4OWI3ZGNjOGQxZiAgLi9kaXItMDU0L2RhdGEuMDAzCisxYmYzZDk2YzYzZjA4MjVhMDIzOGIzYzcxMWIyYWRkMSAgLi9kaXItMTA0L2RhdGEuMDA0CisxYmZlNjM2N2M0NmU1MGUzNGY5ZjY4ZGViZTJmZDllNSAgLi9kaXItMDYyL2RhdGEuMDAyCisxYzA1ZjMxNDY2YTZiMDVmMWQ3MzEyMDc2MDQyMWIwNyAgLi9kaXItMDE3L2RhdGEuMDAyCisxYzEwMGZhNGE5OWE2MzViMzk4MjZmYmYzMmExODVlYSAgLi9kaXItMDQ2L2RhdGEuMDAwCisxYzQwNzBmNmYyNTA2YTVkNTlkYWM2MzU3OWRiNWM1ZiAgLi9kaXItMDA5L2RhdGEuMDEwCisxZDI4NmFjNWE3ZjQ0NzdiMDdjYmYyYjhmYTYwOGYzMSAgLi9kaXItMDIyL2RhdGEuMDA3CisxZDg0MmY5NTI4NTBlY2IwN2I5ZjhhYjU5Y2RiYmRmYyAgLi9kaXItMDc0L2RhdGEuMDA5CisxZGFiZTc3YmUxMzAwNzdhMWUyZGU3YjFiMjQzNjM4ZiAgLi9kaXItMTA4L2RhdGEuMDAxCisxZTRiOTBlNzBjNTUzMTE5M2I4MmNjM2I2MTU4NTNhMyAgLi9kaXItMDgzL2RhdGEuMDEwCisxZTRiOTljMGM2Yzk3Y2JlNTljMDFiNmI4MWNkZDU1YSAgLi9kaXItMDAwL2RhdGEuMDA0CisxZTZmZDRlZTQ3MzdlZTQ0N2FkZTIxNjUxMDRmNGRjMyAgLi9kaXItMDQ0L2RhdGEuMDAxCisxZTgyYTVlOTc3ZTc1ZDZmZjEyYmE0ZTRiODEyMTk5NCAgLi9kaXItMDI1L2RhdGEuMDAxCisxZjBhN2FkOTMzMDgxODE1M2U2ZDEzNzA1Mzg5ZjUwNiAgLi9kaXItMDk4L2RhdGEuMDA0CisxZmFhMTBmZjU0YzUxZTllNmE2OTFkMjAyMGIyODE4MCAgLi9kaXItMDEzL2RhdGEuMDA5CisxZmJhZmQwNTMxZjVkYmYzZTg0YTg1YzNhZmVmNzE1OSAgLi9kaXItMDkxL2RhdGEuMDA0CisyMDE4ODI3MDgxODVmZDE1YWIxNjQ4MjZlN2U0YWIzYiAgLi9kaXItMDA3L2RhdGEuMDA1CisyMDI4ZTI1ZWU3ZWEyNDEwYjA1Yzk2ZTI1MzE5OTlhZiAgLi9kaXItMDA4L2RhdGEuMDA5CisyMDRmNjRjYTkzNDQ4OWM5YzMyMWI3NzE2YWJlNjEzNyAgLi9kaXItMDEzL2RhdGEuMDEwCisyMDljYTExODU3NDlmNWY3NjBmM2MyYjFlZWFiY2Y5NCAgLi9kaXItMDgwL2RhdGEuMDA3CisyMTA0YmZhMGQ1Y2M4MTY2MmYwZjI1MWRjODhlZDFmMCAgLi9kaXItMDAyL2RhdGEuMDA3CisyMTMzNTZjNmUwNTBhYTFmNDRmZGI2NzU1NGQ5OTg3ZCAgLi9kaXItMTAwL2RhdGEuMDA2CisyMWNlOTU4NzViMzQ5YWM4YzRhNTY2MWVjN2ZiMWM1YSAgLi9kaXItMTA4L2RhdGEuMDA5CisyMjUxMTc4OTliZGQ1MGI2ZmQ3NTRmYWM0Njg1MjNlNiAgLi9kaXItMDQ2L2RhdGEuMDA0CisyMmM3YzRkNjFiMjU0ZTY3YmZiNjIyOTJmNjgxMzMwMCAgLi9kaXItMDA2L2RhdGEuMDA5CisyMzA1Y2RkNTE1ZWEwM2UwZTNkOWRkNzg5M2M0OGU1ZSAgLi9kaXItMDkzL2RhdGEuMDA3CisyMzQzOTQ3YmNiMmFjYTVhNTgzNDM0ZTIwYjlhZmU4MyAgLi9kaXItMDMxL2RhdGEuMDAxCisyMzdjNWQzYjdhNTU2NjcwYTExOWI2YmVkZjRhN2E0NCAgLi9kaXItMDY0L2RhdGEuMDA1CisyMzg4N2ZjOTdkNWRlODQ2ZGJiOWIyNmZlNDg1NjBlMiAgLi9kaXItMTA1L2RhdGEuMDAzCisyM2U5OGM5OWMxNGRjNzRiZjMzZjQwZjg0MzhkNTk0NyAgLi9kaXItMDM1L2RhdGEuMDAyCisyM2YyZGNmNmJiMDQ1NGZkMjA1ODQ0MmFiNmM5MmIzMiAgLi9kaXItMDU5L2RhdGEuMDA4CisyM2ZhY2Q1MDc4NGI5MWVmZTJlNWU4MTY3OGJmMDRiYiAgLi9kaXItMDY5L2RhdGEuMDA2CisyNDJiZTY4YjM3MjBlNTg2OGU3Zjc2NTJkYTVhZjA0MyAgLi9kaXItMDA2L2RhdGEuMDAxCisyNGE4NjM5NzNmOGVmNjc0YjM1N2UxMTg5YjQwZGU2OSAgLi9kaXItMDYwL2RhdGEuMDAwCisyNGM5ZjQzNzFjOTM2N2ViNTQ0NzkxOThkYjA2MTc0OCAgLi9kaXItMDcwL2RhdGEuMDEwCisyNTM3NTEwY2VmNWU2NjEyNmFiNGE1ZjIwMzhkZTk4YiAgLi9kaXItMDExL2RhdGEuMDA0CisyNTNlN2RjMDMwN2U1NDVmYjQ0ZmI1ZTYyMTg4Mzg5NSAgLi9kaXItMDAyL2RhdGEuMDAwCisyNTczOTRjOWRjYTNkYjdlNzM3ZmZhMWQwNDE5MzE3ZCAgLi9kaXItMDc0L2RhdGEuMDAwCisyNTg1ZGNmYWU0NmJjNGM0NDRmMzQ0MTZlNDhkYTM3MSAgLi9kaXItMDUwL2RhdGEuMDA5CisyNTk1YzVkNWYxNTY0OGY1Yjc4NGNjMzI3YTBiOTQ4MCAgLi9kaXItMDc3L2RhdGEuMDEwCisyNWQ4M2RlMDlkMDc1MDM2YzM3ZjRmYTQwODRlODFmMyAgLi9kaXItMDY2L2RhdGEuMDA2CisyNWRhYmI2M2RiN2U2OWU0OWEyMDA3OGUzZjFjNzM5OCAgLi9kaXItMTAzL2RhdGEuMDA0CisyNjU5MDVlNTgzNjBkNGVlNGNhYmU3ZmEyNGViNDliYyAgLi9kaXItMDg2L2RhdGEuMDA3CisyNjliYzRiN2Y0ZDE2YzY2OTA3ZDQ1MDM1NjY2MWI2ZSAgLi9kaXItMDg4L2RhdGEuMDA4CisyNmI2YTc0ZTNkYWJmZDNjOWE0NjVmNzA1MzM4N2YxOSAgLi9kaXItMDEzL2RhdGEuMDAwCisyNmI3MWQyYTBlNDNjOTgzN2Q1Njc2NjJiZjljN2EwMSAgLi9kaXItMDM2L2RhdGEuMDA2CisyNmJhOWU3YmYxZmZhMjc1NjAyYWMyMzU2NDJhZWMyMiAgLi9kaXItMDYzL2RhdGEuMDA2CisyNzBjNjNiMTlkOWI0Yzk4NjZkZjFhN2E5ZDk2NGJhMyAgLi9kaXItMDU4L2RhdGEuMDAxCisyNzQ3ZDVkZmRiZDRmNWNlNzY2NDI5MTFmZDFjZDdiYSAgLi9kaXItMDM3L2RhdGEuMDA2CisyNzU3MTlhN2QyZTEwZmQwY2MwZGJkNDA2YTVkZDI4NCAgLi9kaXItMDMwL2RhdGEuMDAzCisyNzk3NGFhNDgwMWE3YzNhZjg0Mjg5OTI3MmI5ZjZkNSAgLi9kaXItMDMyL2RhdGEuMDAyCisyN2ExYTgyN2Q4MDM5OTY2NTBiZTc1NTQ3OTAyMDliYiAgLi9kaXItMDk4L2RhdGEuMDEwCisyODNjOWY4ZDNkYzU5Y2ZmNDg1MGNhNmQ5NzY1NDVkMCAgLi9kaXItMDEwL2RhdGEuMDEwCisyODUwM2M4NTljODliNWQ5OTUzZjViZjA4NGI0NDQwOSAgLi9kaXItMDk2L2RhdGEuMDA2CisyOGJhODMwMThjN2Y4ZDc5YTRiZmIyYWE5NGVjZjc3NyAgLi9kaXItMTA3L2RhdGEuMDA3CisyOGYyYzc0MDgyNzc2NTdlNGMyYzViMmU4MDE3YmNhZiAgLi9kaXItMDg4L2RhdGEuMDA2CisyOTA2MTYwMDdkNzZiYmUwNWE2MWM3MzY5M2E5YjA3MCAgLi9kaXItMDAxL2RhdGEuMDEwCisyOTA5MmU5NGJlM2U3NGEyNDZjMjQzODNmOTIwNzUzZiAgLi9kaXItMDM1L2RhdGEuMDA2CisyOTU3YWU5NjYzNDA0NGE0MmJiYzRiYjA3MDdjZDIwMiAgLi9kaXItMDY3L2RhdGEuMDA2CisyYTExZDdlY2ViMzVkOGZmODI0OGYwZWM2N2E0ZWU1NSAgLi9kaXItMDA0L2RhdGEuMDAyCisyYTM5Zjc0OTNlNTY0NmEzOGU5ZjcxZWIyMDJkYmMyZCAgLi9kaXItMDI5L2RhdGEuMDA1CisyYTRiNGZmNDdkN2FiOTcxMTc1NzYzN2Y0ODBjMDU4NiAgLi9kaXItMDk2L2RhdGEuMDA0CisyYTVhNzQ4ZDY1OTkxZjYzZjZkYTM5YTk3YTIyY2NmZCAgLi9kaXItMTA4L2RhdGEuMDAwCisyYTg4NjA3MzlmOWQyZGJkYTY1ZTRkODUyZTBmZDMwOSAgLi9kaXItMDc2L2RhdGEuMDAxCisyYThkNzA1YjkwYjgyYWY0NTVhY2ZhN2Q5YzBmYzNjOSAgLi9kaXItMDY5L2RhdGEuMDA5CisyYWNlNGIwZDhlZjEyMmJkOTE4ZThkNTM4NzE0ZWU3MyAgLi9kaXItMDg0L2RhdGEuMDAyCisyYjA4YzJmMTc4M2Y4NjUwNTEzNjliZjQxYjQ3Zjk2MCAgLi9kaXItMDIzL2RhdGEuMDAzCisyYjMxYjY4ZDE3ZWM2M2IwZTFhNTAxNzZjNDkwMzBlNCAgLi9kaXItMDc2L2RhdGEuMDA3CisyYjM2MGU5YzUwMjI1ZTFlYmY4YmY5NWZjMDkzOWUyZiAgLi9kaXItMDA2L2RhdGEuMDA1CisyYjU0NWU2ZTZjYTNiNjYzOGI2MThjMzRhYWVmZGJmMiAgLi9kaXItMTAwL2RhdGEuMDAxCisyYjVkMTgxMDhlMDMwOTM1NGI0ZjgwYjE4NWUyMzIzYSAgLi9kaXItMDU3L2RhdGEuMDEwCisyYjgyNDQ4ZTZmY2NhYzM0NDFkOWY3ZDdhMTMwNzRkNCAgLi9kaXItMDMxL2RhdGEuMDA3CisyYmNjMjgxOWEyODhlZTRlYzJjOWMwMGM1ODVmNjdkOSAgLi9kaXItMDI3L2RhdGEuMDAxCisyY2JjOWIzOTIyZTVkNzVhOGM0ZTU3NWU1MzA2NWYyZiAgLi9kaXItMTA5L2RhdGEuMDAwCisyY2U3YzlkNWUxYTRhZWQxZTlkZWMxYWE4NTAyMWY0YyAgLi9kaXItMDEwL2RhdGEuMDA2CisyY2Y3YzZlMDM4ZDM3NDQyNzVkOGZmYjhiNGFiNTJkMCAgLi9kaXItMDk2L2RhdGEuMDAxCisyZDA0OTRhMzUwYTU3MGJmODY1OTZlYjVkY2QzZTU3NSAgLi9kaXItMDU5L2RhdGEuMDA3CisyZDFjYWUzZDUxNTFiZWJlMTJhZTdkOTdkOWVmYjkyZCAgLi9kaXItMDA4L2RhdGEuMDA0CisyZDI3ZWMwZDMxOGNmNTZkOGVjYzIyNmE5NzJkYjY3NyAgLi9kaXItMDI3L2RhdGEuMDAyCisyZDM5MmE3YjNkY2ZhNmVlMTM5OWRlOTQxNmE0MWI2MCAgLi9kaXItMDgzL2RhdGEuMDA1CisyZDQ0MzNiNmUzMmJkYThlNTYzZjA0MmZiNzk5ZTg2ZCAgLi9kaXItMTEwL2RhdGEuMDAyCisyZDcwYzEyOWQ4NTdkMjJhODI2NmMyZTVmM2VlNDU2MyAgLi9kaXItMDQ4L2RhdGEuMDAxCisyZDc2Yjk3ODRiYmI2OGM2NzBhZWFlMTM0ZjFjNmMzMiAgLi9kaXItMDk1L2RhdGEuMDAxCisyZGJlZjA0NDVkMWI0NTBiODhiOWU1ODE3NzQxZjI5NSAgLi9kaXItMDcyL2RhdGEuMDAyCisyZGMxODRlOGVjZTc3NDRkZTk5MTJkNDY3MWYyZjExNiAgLi9kaXItMDQ0L2RhdGEuMDA5CisyZGY1ODc3ZGZmN2Y3N2U0OGFhNDViYjk2ZGU5ZjM2MiAgLi9kaXItMDcxL2RhdGEuMDEwCisyZTAzZjdiMjU4ZDAwYzBjNWZmMTA0MjVhNzAxYjQ1NyAgLi9kaXItMDgyL2RhdGEuMDEwCisyZTBiZjkwMzAwOTJkZDc3ZWQ0NGNkN2EyNTQ5NzQ5NiAgLi9kaXItMDcyL2RhdGEuMDA2CisyZTBlZTc5NjY2OTA0ZTM2MjljODAxZjJlMzllZWVmNCAgLi9kaXItMDA5L2RhdGEuMDAxCisyZTQzYWRhMjM0Nzc1YWRiNzcxODhhODQwZWVlMTUyNSAgLi9kaXItMDIwL2RhdGEuMDA5CisyZTY0OGExMzhmMDRkYWJhM2VjMzBkOWVlODUwMmEwMyAgLi9kaXItMDI4L2RhdGEuMDAyCisyZTkwY2Q1NGY4MDM1MmVjN2QwM2ZhOTg3MzcyNDViNSAgLi9kaXItMDM0L2RhdGEuMDA5CisyZjI1M2NiNWMwNjVjOTBjYmM1ZDY2Njc0MTM4NjJhOCAgLi9kaXItMDY2L2RhdGEuMDA5CisyZjUxNjA4Y2QxYzBhZWQ2NGYyYjBiNjVmYTEwMjBjMyAgLi9kaXItMDI1L2RhdGEuMDA5CisyZjhkNjhiYzhlYzFjNWRiOGNlMmY3MGM4N2Y5MWU2OCAgLi9kaXItMDY3L2RhdGEuMDAzCisyZmEwMWE2YjE0ZWE5MWMwMjQ2MGMwYmViNzBmNjljNyAgLi9kaXItMDAzL2RhdGEuMDA1CisyZmQ3NmZhZGIxMjRjNzAxZTg1Mjc2MzEzMTQ4MDQ1NyAgLi9kaXItMDA5L2RhdGEuMDA3CiszMDFlOTY5MjU0MjlhNTc3Y2ZmZDM4MDVjMmI2NzgxZSAgLi9kaXItMDYwL2RhdGEuMDA1CiszMDRkMDM0YzEwYzNmMmU4NjU5YjI1MDQ5MDI4ZGQ2MCAgLi9kaXItMTA0L2RhdGEuMDAzCiszMDVlYjAyN2FiMjIzNzVlMjlmNmNlNTQ0ZmJkMDdiYyAgLi9kaXItMDYzL2RhdGEuMDAyCiszMGE0NGVhY2QwYWY2NzRmMTcyNWZkYTNiNzQ0OGY0ZCAgLi9kaXItMTAxL2RhdGEuMDA5CiszMTE3OWM1MGJjMTU1M2NjZTIzNWM5YWE2MjVjMTZhZSAgLi9kaXItMTA1L2RhdGEuMDEwCiszMTNmZGI4NTg1YzE2ZmZkZWIwMDljMGQzMjU2YTNiMSAgLi9kaXItMDc4L2RhdGEuMDAwCiszMTY5Y2RmNTI0YmEyMDA1NjQ0ZDA5Y2UyZDcyZDY5NCAgLi9kaXItMTAwL2RhdGEuMDAwCiszMWM1YjczNjU3NTBjYTdmYmY3ODljNGNhMzI1MDE4ZCAgLi9kaXItMTA3L2RhdGEuMDA5CiszMjkyODY1MGRjNzJmODgxMDAwN2VmZmE4ZGIwMDExOSAgLi9kaXItMDM1L2RhdGEuMDA4CiszMmFmOTJlMjNlNDUzYzcyNDE3YWNmNTZkM2FiNmZkZSAgLi9kaXItMDMzL2RhdGEuMDA3CiszMmNmMWRmY2I5YmQ3MjM1M2Y0Njk5MzAwNmNiMmQwYyAgLi9kaXItMDAzL2RhdGEuMDA3CiszMmUzZjcyYjFmY2E1YWMzMTc2ZThkYmUxMTBlNzU3YSAgLi9kaXItMTA0L2RhdGEuMDA1CiszMzk4YmY3MzNkNGQyNmE3YTgzMDQ3NDAzODFhODMzMyAgLi9kaXItMDM2L2RhdGEuMDA4CiszM2U4MmRiZWJiZjcxMGExYjIwMzY1NTUxMDQ0M2ZmMSAgLi9kaXItMDM3L2RhdGEuMDA5CiszM2ZjNTAyYTBkMDYxNmY3NjU1MTQ0NmVmMTk2NWMzMCAgLi9kaXItMDY1L2RhdGEuMDA1CiszNDgxZThiMjE4MTQxZTZlNmRjOWI3NTI5NjUwOGIxNSAgLi9kaXItMDMzL2RhdGEuMDA0CiszNGExOTk3Y2E4ODZkN2MxM2JhNDkzNmY0YzhlMGRhYSAgLi9kaXItMDE5L2RhdGEuMDA1CiszNGM5OTM2YzQ2YTg0NzE1MjEyNWU1ODM4MzljMTJjNiAgLi9kaXItMDQzL2RhdGEuMDAzCiszNGYxMDJiNjNlNTMwODk2NGUyZjk3MjVjYWY2ZWMyYyAgLi9kaXItMDg4L2RhdGEuMDAwCiszNGYxNjI3Nzg2ZDhkNzcxNTg0MmFmMmJjYmM5MmRkOCAgLi9kaXItMDIyL2RhdGEuMDAwCiszNTc2NzFlMjBmNTkwOTAwYTM4NjliYzI5ZGJlZTFmZCAgLi9kaXItMDUxL2RhdGEuMDA5CiszNWQzYTFiZDVkZDFhM2Y3ZDBiNTBmYjJjNTQwNjY0NSAgLi9kaXItMDM5L2RhdGEuMDAzCiszNWVjYzAxNDRiY2EzNWY1MTk5ODVhYWExNWJlMjZjYiAgLi9kaXItMTA2L2RhdGEuMDA0CiszNWZmYmU2ZTYyZGE1YjBhZTljMDYzNjM2MDBiMDcxNSAgLi9kaXItMDQ5L2RhdGEuMDAwCiszNjAzZGQ4YzFmMjM0NmVkMDc3MGFhNTQ4NTEzZWIzNCAgLi9kaXItMDI0L2RhdGEuMDAyCiszNjFiODQ1YWEzMGRiZDQ0MmNmMmYwYjg3YWQ0NzQxYSAgLi9kaXItMDU1L2RhdGEuMDAyCiszNjFmZDliNjY0OGY5NWZmN2VlYzhkNzE3ZDE3OWJjMCAgLi9kaXItMDg5L2RhdGEuMDA4CiszNjI3MGE0MTUwOTc4NjVkYmE2ODQ3OGY2OTYyOGRiMSAgLi9kaXItMDAzL2RhdGEuMDA2CiszNjUzYTk4OWI5NzY0YjJmZDUzMDMyNGE5OGVjODIxOCAgLi9kaXItMDY3L2RhdGEuMDA0CiszNjU1MWFmNzc3MDZhZTU2ZGMyMjhjMTE1MWNhYTdhNiAgLi9kaXItMDYyL2RhdGEuMDAwCiszNmI1NWY3NzU3MGQxYjQ2MzgwZDYwMThmNTI2NjFlNyAgLi9kaXItMTA5L2RhdGEuMDA0CiszNmQ2OGI5Y2ZjNTFhYWNjZTA4MDY1ZDM3ZWI1MDBjNiAgLi9kaXItMTAyL2RhdGEuMDAzCiszNmZjMzFiYWJhZDg5ZWYyNmFjZDAzMzdhNzkyODZkMyAgLi9kaXItMDQ5L2RhdGEuMDA0CiszNzA0YzVmZDZhNDQ2ZDUzMGJjY2ExODAwNGYyYjMxZCAgLi9kaXItMDgxL2RhdGEuMDA4CiszNzA3NzYwNzk4ZDRlNTBkYTcwYmFlMGU4ZDJjNGMyOCAgLi9kaXItMDk1L2RhdGEuMDEwCiszNzE3MTlmZTVjZDA1MmJlMmE2M2M2NDQ0ZWM3NzQxMyAgLi9kaXItMDQ0L2RhdGEuMDAyCiszNzU5NGJlNDFkODI5M2MwMzUxODY1YTcwOGUyYWYwNSAgLi9kaXItMDYzL2RhdGEuMDA3CiszNzkwYTJiY2U0MjBhODAwZmY3NmRkYzU1ZDRjMGQwYiAgLi9kaXItMDg2L2RhdGEuMDAxCiszN2Q5ZTBmMmQ5YTM5ZGJkOWZiMDZjNGRiYzFkOTMyZSAgLi9kaXItMDY1L2RhdGEuMDAwCiszODEzMWI1ZmNiMWJhN2Y3NGJjM2ZiODkwOTFkNjdmYyAgLi9kaXItMTA0L2RhdGEuMDAxCiszODIwODVkZjVmMTQyZmRlMDJiNDkyNTY5YjI3ZjdkMyAgLi9kaXItMDc4L2RhdGEuMDAxCiszODMwN2VhYmYxMTA5Yjc4Njc2MDM4NGRiZTcwMTNhMiAgLi9kaXItMDc0L2RhdGEuMDEwCiszODNhZWMzZDIzNmJkZTMxMzRiYmI4MTE0ODc1OTRhZSAgLi9kaXItMDcxL2RhdGEuMDA2CiszODZiZDMxM2I3MTQ0YmRiNzEyMWQ5ZDNjZmZkODAxOSAgLi9kaXItMDk1L2RhdGEuMDAyCiszODgzN2MwMzY1NzZhZDJhZmIxMzgyZTEwZDIyOTY1OCAgLi9kaXItMTA5L2RhdGEuMDAxCiszODk5M2E5MDRmMmQzNzA4N2E1YzRlZDQxM2QzMzFkNCAgLi9kaXItMDgxL2RhdGEuMDA3CiszOGQ4MmM0YmJjZDJkZWY0MTYzNmYwMjE1MWJmNTMxOSAgLi9kaXItMDg0L2RhdGEuMDA0CiszOTJjY2Y1ODY1ZmRmMGRjZmE1OTkwMzQ5MzRlNGZjZiAgLi9kaXItMDcyL2RhdGEuMDA5CiszOTJkNmMyM2Q1YjZhNThiYTQ1NTNjZmVmNTI0NTE5MSAgLi9kaXItMTA5L2RhdGEuMDA5CiszOTczMjQ2NTcxZDQ4ZjVmYmU5ZGRjMzM3Y2EyYzhjOSAgLi9kaXItMDE3L2RhdGEuMDAxCiszOWRlOTQ1YTc2M2JkODNiZGU3ODc4NzkyOTRjOWI0OSAgLi9kaXItMDA1L2RhdGEuMDAyCiszYTRmMzk3MjYyZTJiODMwZmJhZmZlZDRkMDNiMzdlOSAgLi9kaXItMDE2L2RhdGEuMDAyCiszYTgzNjNmYzM5ZTQyMTFhZmUzZWRlNTY4OGY5NDcwNSAgLi9kaXItMDc3L2RhdGEuMDA0CiszYTg5N2E2ODRkZDJiMzJiNGZjYzIyNzU5ODhmZDA4MCAgLi9kaXItMDE4L2RhdGEuMDA4CiszYTk0Y2E4NWFjOTk0ZjQ3ZTgwMTAwMTFmYzVjOTU4MiAgLi9kaXItMDAwL2RhdGEuMDA2CiszYWY4ZWQ5YzU5OWIwNmZmMmQ5OWZlNTU2MzM4MGMzMCAgLi9kaXItMTAzL2RhdGEuMDAzCiszYjE5MjJmYjQzZmIyMjJiNTczYTlmNDRiYjgwNWUwZCAgLi9kaXItMDI5L2RhdGEuMDA5CiszYjcyYjhiNDk4NGNkNTFlNjdlZDAzZjU5ZGE3MTZiMCAgLi9kaXItMDIzL2RhdGEuMDA0CiszYjhhNjU2OTczMTc4YzU4MTU0NTFkOGM2NGZhMWQyMSAgLi9kaXItMDA5L2RhdGEuMDAyCiszYmE3MmM0NWZkMDE3N2Q0OGY2YTdhNTEyMWZhYjVhNSAgLi9kaXItMDAzL2RhdGEuMDAxCiszYmViZDliNmZhNGFlYjk3NzJjYTIzOGZiODhkZGNmNCAgLi9kaXItMDczL2RhdGEuMDEwCiszYzk5Y2UwODgyM2MxYzFiMjRlMWM3NzU3NGNiN2JkZCAgLi9kaXItMDc1L2RhdGEuMDA1CiszY2E1MGEzNzRlMGM0NmNjYzM1Y2FiYTA2MjQ0YTU5MiAgLi9kaXItMDczL2RhdGEuMDA0CiszY2UwYzczOTA4M2NjMjFhZTZmMTllYjM3NzI1OGZiMyAgLi9kaXItMDk3L2RhdGEuMDA2CiszY2VhNDIwNTJhODMzYTFjNjVhYjZkM2RlN2RiOTVmZiAgLi9kaXItMDQ0L2RhdGEuMDA1CiszZDA1YzFlYmI3YWRiZDcyZWFlMDY0YjJiMTZlZDViZCAgLi9kaXItMDE1L2RhdGEuMDA4CiszZDM2MmQ0YWY3YWM0NDJiMGJlOGE2ZTFlYWVkMTIyMiAgLi9kaXItMDU4L2RhdGEuMDAzCiszZDNmYTY5ZWY3OGZmNGVlYzcyYzRhN2Q2MmQ0NDMyMCAgLi9kaXItMDU3L2RhdGEuMDAxCiszZGExMDMxMWFiMzViMzEzYmNlYTBiM2RjZDNlYzMyMCAgLi9kaXItMDg1L2RhdGEuMDA3CiszZGE1YmZjMWYxMjFkYTRhMzVjNWMxYTI2YmRmMjg3MSAgLi9kaXItMDgwL2RhdGEuMDA2CiszZGZkMjAzYjYxNjA2MDEyZTNmZTRkNzk0MDI2ZGU0NSAgLi9kaXItMDYwL2RhdGEuMDA4CiszZWI4MzUzODViYmFhNGMxMmRjNjZhZDVhNTc4N2FjMyAgLi9kaXItMTEwL2RhdGEuMDAzCiszZWJmMTRiZWE1Zjc3NGVkNjhkYzNhYWVjZmQ0YzdhNyAgLi9kaXItMDg2L2RhdGEuMDA2CiszZWNhYmZlM2Q3ZTBmMzlkMWI3N2ZlYjMwYmIyMTQ5YSAgLi9kaXItMTA4L2RhdGEuMDA2Cis0MDE3MjE3YzFmYzM2MjBmMDBhNjNiZjc0NTFkN2Q1OCAgLi9kaXItMDExL2RhdGEuMDA1Cis0MDU2NWU2ZTllYWViYTk1MzhlMDY4ZDdmYzIxMjAyNSAgLi9kaXItMDMwL2RhdGEuMDA3Cis0MDk4MDM5MDhlMTI0OWQ4MTE0MjFmZGY1ZTcyMjFhYSAgLi9kaXItMDExL2RhdGEuMDA2Cis0MDlmMWE1ZGYzMmI0OGNjNjE1YjgwZjg5NTMzMzEyNSAgLi9kaXItMDcwL2RhdGEuMDA2Cis0MGRhMjM2ZGNmYjM3NjI4YTczODNmMTEwYTM0Y2E5MSAgLi9kaXItMDE4L2RhdGEuMDAzCis0MTFiY2VhZTNhMTY0OTU1NTMzZGJhZDYxOGRjZGIxOSAgLi9kaXItMDQyL2RhdGEuMDAwCis0MTI5YjA1MTczYzlkYzgwMGM4MTFjMWM2YWI1NTRmNSAgLi9kaXItMDQ2L2RhdGEuMDA4Cis0MTJlZmRhYjAyNjc0YWI1OTFlZTAyYzFlNWYzMWQwZiAgLi9kaXItMTAyL2RhdGEuMDA1Cis0MTMxNWQzZDU3NTEwOGE1MmUwZmM1YjA3YzUwMzE3NyAgLi9kaXItMDM0L2RhdGEuMDAxCis0MTQxYWEwNTMyNWZmYjVjNTMwMzkxZDg5OWNkMmJjYyAgLi9kaXItMDk5L2RhdGEuMDAzCis0MTc0ZTYxNjlkNjQ1MzA3Y2E4Njc1MjA1ZDQwYzg1MyAgLi9kaXItMDA0L2RhdGEuMDA5Cis0MWJjZmZiNGU3MTc4MGRiOGZlZDk4MTgxMjRlNWI2YyAgLi9kaXItMDYzL2RhdGEuMDAzCis0MWNlNjdiMzVlZTY0YjllODZjMTNlZmNmZGQyNmNlMyAgLi9kaXItMDUwL2RhdGEuMDEwCis0MzRiMGZhNTc5YjI1NTQzMDIxNGRlMzUyMTUxZDExMiAgLi9kaXItMDQxL2RhdGEuMDA4Cis0MzRiMjZmMDBjMTc1ZjI3NmE1NDEwNTE3MTI1MWQ1MiAgLi9kaXItMTA2L2RhdGEuMDA1Cis0MzVjYTIzMzUwM2VlZmJhYzk0NmQzY2E2NTRmOWNjMCAgLi9kaXItMDcyL2RhdGEuMDEwCis0MzdiYTNiYjhkYmI2NzViMTU4ZGFlMGY1OWQ2YTQ0NSAgLi9kaXItMDYxL2RhdGEuMDEwCis0M2M0OTU3MzM1N2VkNTNkY2MyZTM2NGNlMTEyYjYyZCAgLi9kaXItMDYxL2RhdGEuMDA1Cis0NDA0YjZlNGY1OWE4NDFmZTlhM2FlMmU0MWM0YzQ4OCAgLi9kaXItMDcxL2RhdGEuMDAwCis0NDI2YWE0MjRkZDI1Y2U5NzJiNjNiNWM0N2I5NTMwZiAgLi9kaXItMDkwL2RhdGEuMDA2Cis0NDQ4ZDZjOGI2MGQ3YTRiMDhiNTM0YWMxMDU5ZDY2OCAgLi9kaXItMDg5L2RhdGEuMDAyCis0NDcyYmEwMGI3N2E0ZGNlOTA0NTg5YzQ1N2IxYmM5NyAgLi9kaXItMTA2L2RhdGEuMDAxCis0NDg2MWU4ZTE2NGVhNTE3MDljMDY5ZmEyODYxMzRjNiAgLi9kaXItMDU2L2RhdGEuMDAyCis0NDk2MTQ2OGYwOGVlODBjNjE5YWRmMDE1NGU5NmE5ZiAgLi9kaXItMTAxL2RhdGEuMDEwCis0NGI3MDI4MDVhNThmMTQ0OTNiYWUzYzJmMjcxNmRjNyAgLi9kaXItMDg4L2RhdGEuMDA3Cis0NGM3ZDk1MmQ1Yjk1MjhjMTI2M2VkMTFiNWRjMmFlNSAgLi9kaXItMDEyL2RhdGEuMDAwCis0NGM4MjVmYmYxZDIzZmNhYmY0NWU0MmUzOTU0MjNjZCAgLi9kaXItMDg1L2RhdGEuMDA4Cis0NGUzZWM4ZjEwMjU1ZDEwOTc3M2YzMjA0YTUwMjBlOSAgLi9kaXItMDIyL2RhdGEuMDA2Cis0NTAzNGYxMDUyOTg3ZTVkOWUyZDRiYzBmNDYzZWM3YSAgLi9kaXItMDI1L2RhdGEuMDA0Cis0NTFlZTRmOWU5MjY3NjVhMmMwN2Y4OWIxYTJmZTA3OCAgLi9kaXItMDAwL2RhdGEuMDA3Cis0NTJiNGI0MzIwMGQyZWNlMzAwMTZhZTk2NDE1NzE4YSAgLi9kaXItMDg0L2RhdGEuMDA5Cis0NTM1ZjVkOTlhYmVlMzBmZTJlMGQ2NzA5OGRhYmM2MiAgLi9kaXItMDk4L2RhdGEuMDAwCis0NTYyMmFjNGVlMjg3NTJlYjU2ZWFjY2ZiNTQ2MmM1MCAgLi9kaXItMDE2L2RhdGEuMDEwCis0NTliYTI0ZDBlMDNhODFmOGY2ZWQzNTcwMGY0NjQ2MCAgLi9kaXItMTAxL2RhdGEuMDAyCis0NWFmMmRjYTJlZWJjNzE0Y2QwYWQ2M2Y3N2NlYWFhNiAgLi9kaXItMDQwL2RhdGEuMDA4Cis0NWJlMDZmZTZlNTA5YjQzYjZmNjhjNTI4MzVkNTRiOCAgLi9kaXItMDE2L2RhdGEuMDAzCis0NWMyNTBkOTU3MDcxNjAxMGY0MTYxZjFiZmY1ZTQ1MCAgLi9kaXItMDI2L2RhdGEuMDA1Cis0NWVkN2E1YTU0NTc4ZDU5ODUxNTNmZjcwMzMwYzIyOCAgLi9kaXItMDExL2RhdGEuMDA4Cis0NWZlOWZjYWUxNjVhOWQ4OGFmYTI3ZmMzYzkzMzQwNiAgLi9kaXItMDk1L2RhdGEuMDA4Cis0NjFiMDc4NjU5MDU1NmE1NzI5ZTFlMjM1MTJkYjQ5ZSAgLi9kaXItMDM3L2RhdGEuMDA1Cis0NjQ3Y2IyMDQzZjYyM2JhZTg4NjBlN2U4YjU4ODM0YSAgLi9kaXItMDEzL2RhdGEuMDA4Cis0NjgxNzFjZGQzMmIwZTk0Yzk2YTliZTFmMjk4NzM4YSAgLi9kaXItMDQ0L2RhdGEuMDAwCis0NjkwZGQzM2ZmYTIzMjllNWJjNDU2Y2EyNGVjN2Y3MiAgLi9kaXItMDMxL2RhdGEuMDA5Cis0NmY3NTE5OGU0NDBkOGRmYjQzMjA3ZWI0OTY1YzJjNiAgLi9kaXItMDI4L2RhdGEuMDA2Cis0NzEwZWFjZDZiNmRmNmZjNmFjMmRhNWViY2E5NDU0NiAgLi9kaXItMDAzL2RhdGEuMDA5Cis0NzJjZjBlY2QxYjE2OTFiZmFhOGQ1ZmI4NmMyMTM2NiAgLi9kaXItMDc1L2RhdGEuMDAyCis0NzM0NGYzZjNmM2E4MDZmZjYzNjI2N2ViMzkzNjllMCAgLi9kaXItMDgyL2RhdGEuMDA2Cis0N2Q2YzczMDRmOTIxMGVlMTZkYzJkYzVmYzJhOTVlZCAgLi9kaXItMDQ4L2RhdGEuMDA1Cis0ODI5ZjYyOWIxZTU0NWY0Y2Y2OGY1MGU5ZjVlNjIwOSAgLi9kaXItMDIyL2RhdGEuMDA1Cis0ODRhMjkxNjM4ZjgyMjRlYjQwNDQyMzUxZjNlN2Y0MSAgLi9kaXItMDU0L2RhdGEuMDA2Cis0OGU0Mjg5MWJmMmZlMDUzNTM4ODg0MTI3YjBhNTBjZSAgLi9kaXItMDIxL2RhdGEuMDAxCis0OTA3N2U1OTQzYTEwMGI2NzcxYTQ0YmUwNzcwNGE0YiAgLi9kaXItMDEwL2RhdGEuMDAxCis0OTNlODRiYWY2YzAyYjM4MzI0MDcxYzg3ZjBhZmI0YyAgLi9kaXItMDI0L2RhdGEuMDAzCis0OWEwMmMzNDFlNWRlNGJmZDkzOGVhMDMyNmRkZDgxMSAgLi9kaXItMDk2L2RhdGEuMDA5Cis0OWIxMTI3OWY4M2YyMmZmNTM3MTM0YmJjYzg0ZmY5MiAgLi9kaXItMDk5L2RhdGEuMDAyCis0OWQ2YWI4NWI1MGFiNTM4NmY4MjgyYTdiOThhMjA4MyAgLi9kaXItMDI2L2RhdGEuMDAyCis0YTExMTNhODYyZWVjNmZjMWEyOWE3NWE5ODVmMDJjYSAgLi9kaXItMDQ0L2RhdGEuMDA3Cis0YTIwOTU4NWU0NDI2NWNiMGYzNjM3NTY2MDJmY2EwYyAgLi9kaXItMDI3L2RhdGEuMDEwCis0YTNhNjU0M2ZlZmI1NjBmMjM4MzYxNWQ5MDVhNmE5NiAgLi9kaXItMDUzL2RhdGEuMDA3Cis0YTRjMWNjM2M3NzhjYThhNWVjZTM1Mjk1NTkxYzQyMyAgLi9kaXItMDg5L2RhdGEuMDEwCis0YThhMGUwYzY4ZWU5NWI1NDFiY2YzN2NlYjZmY2EzOCAgLi9kaXItMDMyL2RhdGEuMDAwCis0YjdiZTEyZjJhZmFmYTk0MjY2M2FmODhhMmEzNDc5NyAgLi9kaXItMTA3L2RhdGEuMDAyCis0YmRmOGJmMzE1NjlhMDY4ODBiODVlMTc2NzAzZDNjNSAgLi9kaXItMDM4L2RhdGEuMDA5Cis0YmY0ODlmZjY1NmZlZjdiYTBmNjQzY2U2NGYzYWJjMCAgLi9kaXItMDM4L2RhdGEuMDA4Cis0YzAxMGY5MmNmZDAxZGI0OTJiOTgxZjIzNGE2ODQzNyAgLi9kaXItMDE1L2RhdGEuMDA5Cis0YzdiYWRmZmEzNzRkYzExOGM4MWZmMGQwNGYzMTZiNCAgLi9kaXItMDMyL2RhdGEuMDA3Cis0YzhmNjUxY2FlMThkYjQ0NWM4YmIwM2VmYWY1NzYyMiAgLi9kaXItMDU1L2RhdGEuMDA2Cis0Y2I0YzFmMWQzYmJmNGZkYTc2OGI5NzI2NjE1NjdmYSAgLi9kaXItMDMzL2RhdGEuMDAxCis0Y2JjNmNjMjk2Yzg3MDI3ZWQ5Njk1YzAxOGFiNTMwNyAgLi9kaXItMDY4L2RhdGEuMDA0Cis0ZDA2NGQ0OTU5YTc5YWJjOGUzZDA3MzY3NWQ2YzAwMSAgLi9kaXItMDAyL2RhdGEuMDA5Cis0ZDBlMTM3YWU5YmQ2ZTAxMWNjOTc0ZGFmNDdlNTE0ZiAgLi9kaXItMDIwL2RhdGEuMDA3Cis0ZGZhZTRhOWVmNGU4OTRiM2NkODIwOWE0YWU3OGJjZSAgLi9kaXItMDY4L2RhdGEuMDA2Cis0ZTBmOTMyMDQ3ZGMzMjQ0YzJmZTIxNTAwMmVhOGFkMiAgLi9kaXItMDk5L2RhdGEuMDAwCis0ZTI2ZWYzN2U5YzViNjkyNWFkMjkzOGU5YjVkNjhmMSAgLi9kaXItMDQzL2RhdGEuMDA2Cis0ZTQxZmY2MmUxMDUzNTgxMjVlMGIwMzMwYTA0MmZkYyAgLi9kaXItMDAxL2RhdGEuMDA3Cis0ZTQ1YTRiN2NjYmQ3OTAwMzI4M2I2ZTQ3ZDY5MzI3YyAgLi9kaXItMDkzL2RhdGEuMDA0Cis0ZTU0OGYzNGQ1YmJlYjU2ZmE3ZWI1OGNiNDIyMjgzNyAgLi9kaXItMDk4L2RhdGEuMDA5Cis0ZWIyMDk2ZTExNWI2ZTJlNzYzOTg4MWNlNzM0Y2EwOSAgLi9kaXItMDEyL2RhdGEuMDA4Cis0ZWM5NmFiMzQ2NmM5MDExY2QxNTU1YWJlNjk5MmFjZiAgLi9kaXItMDI5L2RhdGEuMDAyCis0ZWM5YmQxMDhmMGRmMGIxODZmMDc3N2I2MGRiZTk0MSAgLi9kaXItMDExL2RhdGEuMDAzCis0ZWQ1MTI1YzA2ZTQxODhhOGU3MzM2OWNlYzc1OGI5ZCAgLi9kaXItMDI4L2RhdGEuMDAxCis0ZWQ2YzIxZjViNzVjMzEzMzZjYzc4NzNlNzk1ZWE0ZCAgLi9kaXItMDYzL2RhdGEuMDAwCis0ZjE0Y2ZhMjY5OGFmNDIwYWUxYWU1ZTQwY2U0NWE1ZSAgLi9kaXItMDMzL2RhdGEuMDAzCis0ZjNmZjc1OWViMTBkNTU4OThmM2IxODljNmI4YzgwZCAgLi9kaXItMDAwL2RhdGEuMDA5Cis0ZjY2ZDM1ZmFjODJhYTM1MzIyYWQzY2M1YjY5MDVkYiAgLi9kaXItMDAxL2RhdGEuMDAwCis0Zjg5ODkxNjAxMGViOGFhZGI3MmU0NTVkNWI4MjFhNSAgLi9kaXItMDUxL2RhdGEuMDAwCis1MDI2ZmQ4ZTA5YzhkYWVmMGExZGE5NmEyODgzMzE1MCAgLi9kaXItMDgxL2RhdGEuMDA1Cis1MDM4OWE0ZTczYTlhNDcyYjVhNWM0YTg5MTBkN2U5NiAgLi9kaXItMDExL2RhdGEuMDAwCis1MDNiNTE0Yzk4NGRhZThmZjY5ZjhiZmVmYTgyNGZiOSAgLi9kaXItMDE2L2RhdGEuMDAxCis1MDQ4YmU4YzJlOGU3NjVkZGI2M2MzYjM3MTg1MmI3MiAgLi9kaXItMDUzL2RhdGEuMDAyCis1MDY3NDE5ODY5ZmFlYzQzZjg1YzhjMzI3YzNkMzc4ZCAgLi9kaXItMDA4L2RhdGEuMDAwCis1MDcyNWE1OTQxZDI2YjI5NDc2NzdiZmUwYzc3NjFmZSAgLi9kaXItMDY2L2RhdGEuMDEwCis1MDc3MWM3NmE4MjEzMjQ1YmU0OTlhZGYxZDQzMTFkMyAgLi9kaXItMTAwL2RhdGEuMDA0Cis1MTE4YWM1M2QzYzdiMzEwNzI4MzNmOTY2ZWZhN2U5ZiAgLi9kaXItMDY0L2RhdGEuMDA2Cis1MTQ0YzRkYTBlMmEzNzRkOTVmZjQ4YTM0YzMyOTdjOSAgLi9kaXItMDkyL2RhdGEuMDAyCis1MTRiMDc2ZTBmMDUxMWYyMTYzNzk5NTBmMjcxNGY5MCAgLi9kaXItMDI0L2RhdGEuMDA0Cis1MTVlZTQ2MzkzN2NmMmEzZmYxNTdiNzg5MWY5NmViNiAgLi9kaXItMDUyL2RhdGEuMDA5Cis1MTYyNjRlNmNkMzcwNThjNjdhNjc5MWQ1OTQ4MmRkYSAgLi9kaXItMDgwL2RhdGEuMDA1Cis1MTYzMmNiN2Y0NGY1YmFjMzBmNWQ2ZjRhOWVkZWM3OSAgLi9kaXItMDk3L2RhdGEuMDA5Cis1MTZlNmJiYjk2ZjY5MjYyZDU3ZjNhNjYwYmM4MDFiMiAgLi9kaXItMDkwL2RhdGEuMDAzCis1MWNlNzNiMTIzMGMwNmQxNTM5ZTZkZTU0MmI2MzAwNiAgLi9kaXItMDA3L2RhdGEuMDA2Cis1MWRiZTI0ZDM2MGNhMzhmZWFjMWI0MzY3NTRmOWI0ZCAgLi9kaXItMDg5L2RhdGEuMDA3Cis1MWVhZWRiYWYzMzk4OGE0OGU2YWY2NWE1YjExN2QzOCAgLi9kaXItMDE2L2RhdGEuMDA1Cis1MjFkZDc3M2ZjNDE3MWRlMTUwYjVmODk5NWE4OGQyMSAgLi9kaXItMDA5L2RhdGEuMDA2Cis1MjY5M2JkNTQwN2EyNDcxY2Y1MTU2YWZlZmRhZjg4OCAgLi9kaXItMDI3L2RhdGEuMDA2Cis1MjczMWUwYWQzMDI4YzUzMGJiNDgwMmE0NzU0YzQwOCAgLi9kaXItMDA4L2RhdGEuMDAxCis1MmRkZmY5N2IzMTZhNDk0ZjQ3MzdlMDYxNDg1MGY1NyAgLi9kaXItMDY5L2RhdGEuMDAyCis1MzAxODQ0Yzk2OGQwNTI1N2YxZTY1MzFlOGNlMGQ1NCAgLi9kaXItMDAzL2RhdGEuMDA4Cis1Mzc2M2ZkMGE4OTRiOGUxMjFjMjgxY2VlMDFmOTQwMiAgLi9kaXItMDY4L2RhdGEuMDA1Cis1M2Q0NTA3YTJkZjhkMjIwNzZkODFkYTVjMDEwMGViYyAgLi9kaXItMDA4L2RhdGEuMDAyCis1M2Y1Y2MwOWQ1N2FmNjBmZTcyNTU5ZWNhMmYxYTYwMyAgLi9kaXItMDExL2RhdGEuMDA3Cis1NDY2NjJjNjI4MmI1ZDQyMjQxM2Y1MzAzN2RmMGQ1NCAgLi9kaXItMDczL2RhdGEuMDAxCis1NDgyYjI1MDdkYzk0YzhlZGRlODQwYjYxOWIzNDk0NCAgLi9kaXItMDgxL2RhdGEuMDAyCis1NGE2YjUxOTJhNGZiMmQxZjJiMjY4NjZkMTNjMDVjMiAgLi9kaXItMDg4L2RhdGEuMDEwCis1NGMzYTUzMjgyNzZkZTA5MjkxOWJmOTY2ZTlkZDdhZCAgLi9kaXItMDY2L2RhdGEuMDAzCis1NGU3ODQxOWJhN2NmMjkxZTI2ZjExNjBiY2QwOTQ2OSAgLi9kaXItMDI4L2RhdGEuMDA3Cis1NTI0MWQyNDc0YjBiZWU3MGY1MGU3NjI5ZmJhM2ExMCAgLi9kaXItMDcwL2RhdGEuMDA3Cis1NTNlNjVjYjNlZTBhOWE1NTcyODI2ZmY0NDAxNDg3YyAgLi9kaXItMDU0L2RhdGEuMDAyCis1NWFkZjUxODI4MGE1NDUzMmRlNmMzM2MyNThhOGU2YyAgLi9kaXItMDgwL2RhdGEuMDA4Cis1NWI4ZDU3ZjNiZWVjNmE4MDc1MjIxZjA4NzUyZmY0MiAgLi9kaXItMTAyL2RhdGEuMDA0Cis1NWM3NmJkYjgyZjhmYTRlMGQyMmY5ZTQxYWQzYWQwYSAgLi9kaXItMDc1L2RhdGEuMDAxCis1NWM4ZDEzZjY4MmE2MjMwNmM4ZDI5NzQ2YmQ3ZTZmYSAgLi9kaXItMDI2L2RhdGEuMDA5Cis1NWQ1OWZjYjQ5YzA3ZWYxNjViMzEwODYyMWYwOGFiMCAgLi9kaXItMDcxL2RhdGEuMDAxCis1NWQ2NmQ3NDIwMWEzYTNlNWIyZDUzZjlmYmI1MmJiYyAgLi9kaXItMDE5L2RhdGEuMDA5Cis1NWQ4OTFhZGE1MWVkYzVkZWMzODM3Y2JhN2M1ZjJmYSAgLi9kaXItMDQxL2RhdGEuMDA2Cis1NWRlN2FlZDRjNjllMzIzNzgzNTJlNmRkOWEzZTVjZSAgLi9kaXItMDU3L2RhdGEuMDA4Cis1NjlmNjQ1OTIwY2IxYTU0MDkzZGU1NDdjZDkyZjMzNyAgLi9kaXItMDg1L2RhdGEuMDAzCis1NmVmMmY3NDc3ODlhYTJhYjFlZjZjNzk0N2I1MGVkNCAgLi9kaXItMDY3L2RhdGEuMDAwCis1NzFhZGE0YzgzMmFhOWVkNjY0MDMzNTJiMDZhMDdkZiAgLi9kaXItMDE2L2RhdGEuMDA2Cis1NzRjZTIyNzNmNGUxN2NkNjczOWExNzcyZDQzZmI2NyAgLi9kaXItMDkwL2RhdGEuMDAxCis1ODdlNzQwNDMyZGU1NDkzMmI0OWY0YjBiMWE5ZDhjZCAgLi9kaXItMDY3L2RhdGEuMDA4Cis1OTIyNjAzMmVmMmVmYjk5MWZmZmM1ZDJkMmE2N2RkMCAgLi9kaXItMDk4L2RhdGEuMDA2Cis1OTJlMjkyN2UwNDY4YWYyYTg2YmIxMGUyYTVjYmZmYyAgLi9kaXItMDY4L2RhdGEuMDA3Cis1OTRmMWEyMWI5OGNhNGE4Yjg5ODExNjRmNDZlZGQwYSAgLi9kaXItMDIzL2RhdGEuMDA2Cis1OWEzZjZmZmI2NDMyYTc2OGZmY2ZjMzkwYmEwZDVlNCAgLi9kaXItMDA1L2RhdGEuMDA3Cis1OWE1NzUxYTQ0NDc4Nzg5YWEwODg1M2E3ZmJjYjRmYyAgLi9kaXItMDM1L2RhdGEuMDA0Cis1YTAzNGEyY2RiMWIzOTdiNDM1YzcxMTlhNzI1ZTYyMiAgLi9kaXItMTA4L2RhdGEuMDAzCis1YWFiZDgxM2NlNzI1MTQ2ZjQ3YmM3M2Q5NDQ5YjUwZSAgLi9kaXItMTA3L2RhdGEuMDA1Cis1YWM0NDVjMmI0NmM1MDQ5N2RlYjFlMmRmMzk4NzY0NiAgLi9kaXItMDY1L2RhdGEuMDA2Cis1YjYyYzE0ZDYwN2MzOTM4ODVjZDBhNzdiNDQ1YTBlMyAgLi9kaXItMDE0L2RhdGEuMDA4Cis1YjhiNDA1MDQ5MjU2NWQ4NjYxYTQ0MzFjN2Q5ZjBmMyAgLi9kaXItMDEwL2RhdGEuMDA5Cis1YmJhYzRlYzY3ZmE4NGQ0MGQ4YThhNGJhOWQwMGQzMSAgLi9kaXItMDE1L2RhdGEuMDEwCis1YzAyNTJjZGQ3Y2QwZDE0NDU4M2M2NzNlMjZhNGNjNiAgLi9kaXItMDQyL2RhdGEuMDAyCis1YzE4NDA1ODBkZjBhNTI4MDU5MDg4ZTQ1ZjIzZjgzNyAgLi9kaXItMDkxL2RhdGEuMDEwCis1YzI0MTc1MzQ2ZGM0MzE3MjBhODMzZGE0MzQ4YWE3OCAgLi9kaXItMTA1L2RhdGEuMDA0Cis1YzJlNGIxOGJiNmU3OGVhMDliOTU4ZjAzYmEwZTc1MCAgLi9kaXItMDY4L2RhdGEuMDEwCis1YzRjNDE2Y2VlMjAwZWU2N2JlYzIwMjljYjU2YjZkYiAgLi9kaXItMDc3L2RhdGEuMDAyCis1YzUzNWUxNGI3Y2Q0NDlhNDA4OTNlZTZhMjJmNjBlMSAgLi9kaXItMDMxL2RhdGEuMDA2Cis1Y2Q2MzFmMTY2YTI5NzBmN2FlYjg5NjBhY2UwZjhlZiAgLi9kaXItMDgyL2RhdGEuMDAwCis1ZDZhODIzYzI0NDYwYjM0M2M2ZTFjYjc0ZjliZGI4ZSAgLi9kaXItMDM4L2RhdGEuMDAwCis1ZDg2OTkwNWZkYmQ0NDA5ZDg3ZDQ4NGRiOGNmZDdlZSAgLi9kaXItMDU4L2RhdGEuMDA2Cis1ZGU5NGMwZGUzYzQ2ODhiNTZiMGQyZmQyYTg5MmI5OCAgLi9kaXItMDI2L2RhdGEuMDEwCis1ZTU3NDJlZjNhM2U0ZjQzODRlY2ZiZDk2NjNhMThlYiAgLi9kaXItMTA1L2RhdGEuMDA2Cis1ZTVhNjA3YTliNjk0NWExZjRkMTc5MjI0NjZmODZlYiAgLi9kaXItMDI4L2RhdGEuMDA4Cis1ZTgyNGUwYWRkOTA1NDhiNTBlOGRlZjBlMGVhMTVhZiAgLi9kaXItMDUxL2RhdGEuMDA0Cis1ZWRhZWViYWYyMjA1NjRjMGY5ZmFlNTNjYWIzYjhhZCAgLi9kaXItMDY0L2RhdGEuMDAyCis1ZjJlYmZjMDgxMDE3MDMwNTYwOWFhYTE3ZDNiNjFhMyAgLi9kaXItMDk2L2RhdGEuMDA1Cis1ZjQ5NTExNmNhYmQyNDMxN2NmZjg5ZTFiOTQ2ZjkzYiAgLi9kaXItMDY4L2RhdGEuMDAwCis1ZjgyYzAzYWVlMDRiYmM3YjEzYmJlODFkODZmMzlkMiAgLi9kaXItMDM2L2RhdGEuMDAxCis1ZmI2Yjc0OWEwNmExY2Q4ZTllOGIyOTM4M2JmYmY0ZCAgLi9kaXItMDkwL2RhdGEuMDA4Cis1ZmMzNjliZWY3MmYzNzk4N2ViMjI4OTllOGFiZTgxNiAgLi9kaXItMDc2L2RhdGEuMDAwCis2MDJkZmQ3ZGMxM2RjYTcyZTVjZGIyYTU1ZDEwZTJkNyAgLi9kaXItMDA1L2RhdGEuMDA2Cis2MDNjNGEyYjI1OTE1MTRmZTNmODk4NDdmZTQ1YzliOSAgLi9kaXItMTAxL2RhdGEuMDA3Cis2MDY5Nzk5ZmNlMDM4NDUyOGI1YjZmMjk3OGE1OTIzYyAgLi9kaXItMTAxL2RhdGEuMDAxCis2MGExNmY0ZWJhNWZjYWMzNWE0NDk2OTJlNDc1Y2NhZSAgLi9kaXItMDg4L2RhdGEuMDAzCis2MGEzMjc2MzIzNDI1ZDM5NDJjMzhhOWQ5MTZmYmNhYyAgLi9kaXItMDM5L2RhdGEuMDA4Cis2MGE2NThkNTJmNTkzODk3ODljYmNmY2FhYjQxYTFkOCAgLi9kaXItMDYzL2RhdGEuMDA4Cis2MGQ2Yzc5ZGY0ODIwMjYzNzA4MmMyMjEzZDRjY2ZkZiAgLi9kaXItMDc1L2RhdGEuMDA0Cis2MGQ4N2ZiMWRhN2JhYTQzOTgyMjI2OWZkMDU0NjdkYyAgLi9kaXItMDI4L2RhdGEuMDA1Cis2MGY5MzlhNzUwMjY0Y2U1OTcwMDJhNGM1YWEzOGIwYyAgLi9kaXItMDEyL2RhdGEuMDA3Cis2MTcyNGJmOWQ4ODI3MzRkMDBjYmYyMTc0NTg2Y2YxZSAgLi9kaXItMDgxL2RhdGEuMDAwCis2MWJhY2E5ZDRmMGMwZTFhZDQ0MGY1MTZlZWVjY2YyNCAgLi9kaXItMDQwL2RhdGEuMDAyCis2MWJkMGU2NDhiYzE5MTFkNDUyZGU4OWQ0ZWRjYWM4MSAgLi9kaXItMDM4L2RhdGEuMDA2Cis2MWUxM2FkY2VkZmEyZGM5N2M2ZmIxMzFjNDgxNDNhZiAgLi9kaXItMDc4L2RhdGEuMDA5Cis2MjEwMmUwYmI2ZTRhMDM0ZDBkZjE5MDg2NGQzMDM0YiAgLi9kaXItMDc4L2RhdGEuMDA1Cis2MjRmZTg2OTY0YTg4NjZhYTA3MmNhOTg5NDRkMWNmYyAgLi9kaXItMDcyL2RhdGEuMDA1Cis2MjhhM2FjNGM4NzNhMTY5ZDhhM2ZhOWRmNjYxNWY0YyAgLi9kaXItMTA5L2RhdGEuMDEwCis2MmUxMDgyMWRjMmY4MGI2MDhmN2Q3ODlmZTgzOTIzYyAgLi9kaXItMDYwL2RhdGEuMDEwCis2MzM3MjZjZDRiNDExNzhjNTUwNmRkMmIyZWFlMDI4MSAgLi9kaXItMDEyL2RhdGEuMDA1Cis2MzZmM2I0YmJjNWUwZDhiOTA0MmYxZGJiMzUwNzlhYiAgLi9kaXItMDc0L2RhdGEuMDA4Cis2MzdkYjg5NDI1OTc2NTIxMDZiZDg0ZDFjMTUzNDFlNCAgLi9kaXItMDk3L2RhdGEuMDA0Cis2M2ViMzNlODgyNDEyMTBjMDUwOTQyY2E5N2E1NzZlYyAgLi9kaXItMDQwL2RhdGEuMDA3Cis2NDA0NmI5ODJhNTk0NDI4MzlhMmQwOWI3NDcwY2Y1MiAgLi9kaXItMDUzL2RhdGEuMDA4Cis2NDBiNTUwZTE4MGQ3YzQyYzJkNDRmMmVkMmQ3YTQzZiAgLi9kaXItMDE1L2RhdGEuMDA1Cis2NDJhZWQ2OWEyOGE5NGJjM2ZhNDg4ZmM2NTI3YjIwZiAgLi9kaXItMDE2L2RhdGEuMDA5Cis2NGJmNzBhMWNkOTQ1Y2Y0NTlhMDdlYzQ2MzFlYWYwYyAgLi9kaXItMDk4L2RhdGEuMDAxCis2NTRlYjM0MjZhMGNmY2NiZjUxZDE0N2YyOWY4ZWI0ZSAgLi9kaXItMDIyL2RhdGEuMDAxCis2NWJkODZjYWUxMDA4MzBmNDIwY2I1NWRhYzJlMTVhNCAgLi9kaXItMTEwL2RhdGEuMDA1Cis2NWNlZGM1OGYwYzQxYzhmZGFlNDIyMDM1YjM3NTBiOCAgLi9kaXItMDkwL2RhdGEuMDAyCis2NjY0MDJlMTM0ZTZmZjcwY2JhMDI5Yzk4NTJiMGY5NyAgLi9kaXItMDE1L2RhdGEuMDAwCis2Njc1NDhmZDY4ODEwZTIwOWVhOTdmZTdiM2ZjYTFmNiAgLi9kaXItMDEyL2RhdGEuMDAzCis2Njc1ZDUwODJlYTUxMzNmNjgzMTQ5OWM5NTczOTU5NCAgLi9kaXItMDExL2RhdGEuMDAxCis2NjlmZmMxNjNiNjZmYzNhYmFjNjYxMTc1ODYxM2E1ZCAgLi9kaXItMDg5L2RhdGEuMDA0Cis2NzFlMmIyMjgwNjM4ZDhlMWQzYThmNmIxZDdlYThlNyAgLi9kaXItMDMyL2RhdGEuMDA0Cis2NzVkZTAzYmFmOGRiNmY4MDk2MmVkMjc4YjZlN2ExMSAgLi9kaXItMTEwL2RhdGEuMDAwCis2N2E4ZWYyNTQyMDA5ZTc1NWRmNWM5YWM2Zjg1M2Q4MCAgLi9kaXItMDI2L2RhdGEuMDAwCis2N2JkMzRhMzBhMDVlYjI2YjNmNjJhMDc1Y2Q4NTZmNCAgLi9kaXItMDM4L2RhdGEuMDAyCis2N2NmZmFhZGE5ODA1YTkwYjExMzU1NDAyZTYzNWNhZSAgLi9kaXItMDU2L2RhdGEuMDA3Cis2N2RkZmE5YjQxNTA3MzdkZWZmNDkxNGNiMzVmZDcxMyAgLi9kaXItMDI3L2RhdGEuMDA4Cis2ODIwYjM0MjQ0MDU4M2Y1MTcyMmI5ZWI2MWI0OGQ2MyAgLi9kaXItMDg4L2RhdGEuMDA0Cis2ODMzNmI2ODExMDJlMTZlNjRmODhhOTVjZjQ3MGI3MiAgLi9kaXItMDM4L2RhdGEuMDA3Cis2ODNhYTc5YmQzY2RjZGFjN2FhMTBhZDFlMmIwZTAyOCAgLi9kaXItMDMzL2RhdGEuMDAwCis2ODU2OTkxY2FhNjk0ZTgzY2FmNmMwZmNhMDIzM2I4MiAgLi9kaXItMDkyL2RhdGEuMDA4Cis2OGE0NjA1NTEwM2Y2ZTczM2U1Y2NlYjcwN2Y2ZGQwZiAgLi9kaXItMDA0L2RhdGEuMDAzCis2OGU5ZTY1MWRjN2E1NjRkZTIxNGIyODJiOWI1Yzc1NyAgLi9kaXItMDA4L2RhdGEuMDA3Cis2OTA3ZGZlMThhMzc2NDM5MTY3NDJiYTk2NGJkYWI1ZCAgLi9kaXItMDI3L2RhdGEuMDA1Cis2OTNmOWM4YjIwYThhOTI3OWM0ZDQzYzgwYzNmYTk4NCAgLi9kaXItMDk3L2RhdGEuMDA4Cis2OTRlOTlmM2I1ZGM1NmJhMDYyZmZmZTgzODFmODczMSAgLi9kaXItMDAwL2RhdGEuMDAxCis2OTVjZGM1YmM3YmE0NmU2YWEzODk1MGRhYWI3MTYzNiAgLi9kaXItMDUwL2RhdGEuMDA1Cis2OTY3YWY4MTU2NTczZTQ0MmExYjZiZDU2ZDBhNDg5MyAgLi9kaXItMDM1L2RhdGEuMDAzCis2OWMxYTUyZDUzOGE2N2JmMmE3ZTVjMzMzNzk1MzNiOCAgLi9kaXItMDE3L2RhdGEuMDAwCis2YTFiZDQxZGE2MmQyNjBmNzQ2ZTBiMDFjN2ExMzQwMyAgLi9kaXItMDUyL2RhdGEuMDAwCis2YTcxYWExNTVkNTk4YjVhZDJmZDY3NTZkYTNjMjc4YSAgLi9kaXItMDk4L2RhdGEuMDAzCis2YTg1NTk2ZjgxNTIyYzM4Yzk1ODkxMGE0YzA0ODdkNyAgLi9kaXItMDYwL2RhdGEuMDA0Cis2YWEzYmJiNDViNjIzMTUxM2UwYmVlNjJlOWExMmE5YiAgLi9kaXItMDgwL2RhdGEuMDAzCis2YWUxOWUzOWY3ODU3ZjE3NmYwMjFhOGNmZTc2OGE2NiAgLi9kaXItMDIzL2RhdGEuMDAyCis2YWY3MjU1YjMzMTg2MDdiMWQ1YTc4OTRkOGNhYWMyNSAgLi9kaXItMDgyL2RhdGEuMDA0Cis2Yjc4MGU3ZjcyYmUzZGY5ZGI3MTI1ODBhY2FmZDBmYSAgLi9kaXItMTAyL2RhdGEuMDEwCis2YjdjYWRjYmY4NzVlZTVhZDUzYjQ3Mjk4YWJmYWFlMCAgLi9kaXItMDgwL2RhdGEuMDAxCis2Yjg1MzNkYmZmZWJiNmVmMmMxZmQ0OGUxZGY2ZWQxOSAgLi9kaXItMDUwL2RhdGEuMDA0Cis2YmM5ZTMyMDNlMjczOGVlMjI1YmU2YTQ1ZGE2ZDA3NyAgLi9kaXItMDU5L2RhdGEuMDEwCis2YmRmYmFiOGE0YjIwZDcxYWNhNWFlYzY2Y2Y0YzA3ZiAgLi9kaXItMDcxL2RhdGEuMDAyCis2YmUzYzM1ZjI4ZjY4ODYxODQwZjAzNDVmNzBmZjUxMSAgLi9kaXItMDExL2RhdGEuMDEwCis2YmZhODNkNDdkODk1YWMwNmY3NGFiY2RmZTI0ZGJkNSAgLi9kaXItMDY3L2RhdGEuMDA5Cis2YzMyNGUxODVjZjI0NjIzYjhlYWI3ZGFhMDEwZTIyMiAgLi9kaXItMDIzL2RhdGEuMDA4Cis2YzMyZjNkNWQyNzBiZjUwN2Y1N2VkZjI4YWMyMDIxNCAgLi9kaXItMTA1L2RhdGEuMDA5Cis2YzhjYjU2YmQ4MWUzMGViZGIwMTY3ZWE5YzM3ZjE0ZCAgLi9kaXItMDAxL2RhdGEuMDA1Cis2YzkzYWFjNDVkOWUwMTllN2JlZWM0YTcwOGEzMDMzZiAgLi9kaXItMDg3L2RhdGEuMDA4Cis2Y2FmNDE0ZDA0YzM0MmY4Mjk4ODc1NzA5OTM1NzlkNyAgLi9kaXItMDg5L2RhdGEuMDAzCis2ZDIyMjlhMDI5ZmU2NDgxNTkwNDEzZjJkYjk4YWEwMiAgLi9kaXItMDAyL2RhdGEuMDA1Cis2ZDJhMjRkZmM4M2VjNTA2OTJhMTM5YmIyYzRjNjFkNiAgLi9kaXItMDgyL2RhdGEuMDAxCis2ZDM4ZGVhYjlhMDk2YTA0ODdlOTMxODI2NTgzNzU4OSAgLi9kaXItMDIyL2RhdGEuMDAyCis2ZDNhMmYxN2RmMmM3MjEwODUxYTJjMGQ1MjM5M2MwYyAgLi9kaXItMDIzL2RhdGEuMDEwCis2ZDc1ZGYzNzZjNDkxMzcxOTkwZWIxZGUwMDQyMjdlYSAgLi9kaXItMDY3L2RhdGEuMDAxCis2ZDkzMWIwMzJjOTc3YmQ0OGVlY2UzOTAwY2I3NWNiYyAgLi9kaXItMDMxL2RhdGEuMDEwCis2ZGQyMmI5ZGRhNmQ2MzQ3YzFiZDlhZmVjNDc5M2E0ZiAgLi9kaXItMDcwL2RhdGEuMDAyCis2ZGQ3ODExYTBjNmZjNGQwNzQyZDQ2NzA3MTQ1YTNlNSAgLi9kaXItMDA0L2RhdGEuMDA0Cis2ZTMyYTczNTkzMDc4MzdlOGFjOTgyM2RlODIzNTU1YyAgLi9kaXItMDQ2L2RhdGEuMDEwCis2ZTVjYzhmNWY4YzJhMDdiOWRlNGE4Yjc4MWQ1YjVlNSAgLi9kaXItMDUwL2RhdGEuMDA2Cis2ZTg0MzczMGRmNjYzZTU2NDdkZTdhYzViZDQ1YTllNCAgLi9kaXItMDc0L2RhdGEuMDAxCis2ZWRkNDYyYmMyMWNmNjZjYmNiYTQwMDY2OWE4YmI1ZSAgLi9kaXItMDA3L2RhdGEuMDEwCis2ZWUwOTczN2U5MmE3OTZkNDk0ZmY4NTcyMTE4NWRhMyAgLi9kaXItMDc5L2RhdGEuMDAxCis2ZWY2ZTdkODY1ODBmNWQwZjc3MzZiYjU3ZTkzZjRiMiAgLi9kaXItMDQ4L2RhdGEuMDA5Cis2ZjMxNGFkYTY0MDdjYzMyYjFmM2U4ZDkwM2I1YzliNSAgLi9kaXItMDE3L2RhdGEuMDA4Cis2ZjQ5ZGEwMTIwMTE5ZWZhNWU0Zjg5ZGUxOTViNGQyZSAgLi9kaXItMDQ4L2RhdGEuMDAwCis2ZjY5MjU3MjI3YTI2MDEyN2E2NWExMzM1MDhiMDMxOSAgLi9kaXItMTA5L2RhdGEuMDA1Cis2Zjg2YzljOWRkZjMxZmZmNDFhNmU0OGI1MmUwNWEwNiAgLi9kaXItMDc4L2RhdGEuMDAzCis2Zjk1Nzk0OTk3MzkwNWU0MGJlZWE2ZTMzZTQ2NWQwYSAgLi9kaXItMDkyL2RhdGEuMDA2Cis2ZmJlMzY0NGJlMmRlMzQyMzIwNGQ3OWJjZTA2YzQwZiAgLi9kaXItMTA2L2RhdGEuMDAzCis3MDI5NmM5MzhjMTIyMGJmNzI2MTk3ZmM1MjFjNWRhMiAgLi9kaXItMDgzL2RhdGEuMDA2Cis3MDQ3ZTFiOGE2MzUxZGEzNTA0OTc3YTRjOTZlZGI3MiAgLi9kaXItMDk3L2RhdGEuMDAyCis3MDUxYmU4MWMyMmJmMGUzOTRlOGQ4OWE2Y2M3OGEyMCAgLi9kaXItMDI4L2RhdGEuMDA0Cis3MDc3Y2FjNjQ2YTViMzdhNDE4NjY0ZDM2NmRlOGQyYSAgLi9kaXItMDg2L2RhdGEuMDA4Cis3MGM5MTNiYmMzNDU0ZDNhZjFkM2I5N2EwODUxYjkwMyAgLi9kaXItMDg1L2RhdGEuMDAwCis3MGRiYjBkY2FmMjYxMmI0OTUyYjM0MTY1MWFkMGMxZSAgLi9kaXItMDY1L2RhdGEuMDA3Cis3MTIxNGZlY2RlZTc4Njc1YWQ5NWI0OTJkZjQwMTdlZiAgLi9kaXItMDQwL2RhdGEuMDA0Cis3MTcxYzdhMTc5NmNiYzIzNTVjNmFkYjAzYzMxMmRhYSAgLi9kaXItMDMyL2RhdGEuMDAxCis3MTg0MWY5MWFiMWM4NzM5MzhmZjRiNGYwMThiMjIyMSAgLi9kaXItMDE0L2RhdGEuMDAyCis3MWEyMjk0NDEyYjMwMjlmMjM2YTI1NGNiMzM1YWM5OCAgLi9kaXItMTAzL2RhdGEuMDA4Cis3MWE2OTk0ZWYyYmY4MzY4YWFhMjM2MmJjZmNjZGNhNyAgLi9kaXItMDE5L2RhdGEuMDA3Cis3MWI0ZGE5MWJkNTE0MmQzMzQyZDY3ZDMyMmZlZjJlNSAgLi9kaXItMDg0L2RhdGEuMDA3Cis3MWRiZmM5MDU3ZmNhNTRhNWExODM0NDY3NzVlMzJiOCAgLi9kaXItMDE2L2RhdGEuMDA4Cis3MjE0ZmNmZjAyZDA3NDMyMTBkNzU0YTM3ZmI5OGIwYyAgLi9kaXItMTAyL2RhdGEuMDA4Cis3MmNlMGZmM2Q3ODgzNzY3NWM1MzhlNmEwMmE2NzU1NyAgLi9kaXItMDY4L2RhdGEuMDAzCis3MmVkYzI4ZTcxYzI0YThjMDRmYWFhM2MyNjQ1ZDkzNiAgLi9kaXItMDY0L2RhdGEuMDAzCis3MmVlMGI3ZjIzNmQwYzFkZTE3MWM4NjE4YThlOGM3ZiAgLi9kaXItMDc4L2RhdGEuMDA4Cis3MzJiMWUwZjBhYjU2ODk4NzkzNTg5YmVmMjVmMjlmMyAgLi9kaXItMDE3L2RhdGEuMDA2Cis3M2JjYjQ5Y2E1Y2E2MDljYmI2NTE0N2NmZDQwNWYzZiAgLi9kaXItMTA1L2RhdGEuMDAxCis3M2ZkMjhmOTA5OWMzOWQ2ZDJjOTIzNTVjMDYwZDZlZCAgLi9kaXItMDY4L2RhdGEuMDA5Cis3NDM3NGRlYzg3NjUxNTFmODI3MDIwOWRjYTZmYzVjNiAgLi9kaXItMDk4L2RhdGEuMDA3Cis3NTAyYWUwNWRiNjVhMzI0NTlhMmI5Nzk5NjQxOTA2NSAgLi9kaXItMDQ2L2RhdGEuMDA1Cis3NTJlNmUwMDNiMmE2M2VlNTMyOWQ5NjI5ZmMxMWUzNyAgLi9kaXItMDY2L2RhdGEuMDA3Cis3NTNiNWI5MjVhMzZlZjI2ODc0YjUzZGYyZWJmYTA2MSAgLi9kaXItMDc1L2RhdGEuMDA2Cis3NTNlMDY1MTQxMTc2ZmY1OTZiZjJlMWFlNjFlZTdlYiAgLi9kaXItMDUxL2RhdGEuMDA3Cis3NTY0MzJkOGY3MmFhZDAzOGU1NDg1YmJlMjRiYWZhZiAgLi9kaXItMTA2L2RhdGEuMDAwCis3NTY1ZDE2NzQxNjRhMDE1YzQyYTJmNTAxMWNjMDg3ZiAgLi9kaXItMDAwL2RhdGEuMDEwCis3NWFlYjNlYTRmYmQxZDUwNDMwYmJlMDRlMjkzMmIxNiAgLi9kaXItMDkzL2RhdGEuMDAxCis3NWI3MTNmNzg1YWM0YTliMWQwODg0MjFmMjNlZDFkZCAgLi9kaXItMDA4L2RhdGEuMDA2Cis3NWRmN2YzNmVlZmE0MmMzNjM4YmM1YjZhOTdkNTVjYyAgLi9kaXItMDYyL2RhdGEuMDA2Cis3NWY0YWNlZGNjZTNkZTg5YTA1YjRjMDk4YjRmODExOCAgLi9kaXItMDg0L2RhdGEuMDAwCis3NjFjOGU0MTVkZmVhMjI2ZjUzYmUyOTU3NzgwYmE2OSAgLi9kaXItMDAwL2RhdGEuMDAwCis3NjNjN2Q0MTIxMGEwY2E5NzVlYjk5ZDBlMTdmNGIyMCAgLi9kaXItMDU4L2RhdGEuMDA3Cis3NjUyODQ2OTMyYmQ1NDdjODE0ZWE4NjQ2Mjg5MWZlNSAgLi9kaXItMDM2L2RhdGEuMDAwCis3NjZiZTJhMDA0Y2VhMmY4NGY5YWViNDBlYjllNTEyNCAgLi9kaXItMDA2L2RhdGEuMDA0Cis3NjcyYTNhNjMxZDhjZWJhZWViMTBiNGVlZWUyZjM3NCAgLi9kaXItMDk3L2RhdGEuMDEwCis3NjdkMGM0NzZjOTQ2OGQ2M2UwODcxYWYyY2VmMTczOCAgLi9kaXItMDYwL2RhdGEuMDA5Cis3NmM5ZWZlZmFhNjBlZTNmYmE3ODU5N2IzM2M1ZjU3NSAgLi9kaXItMDkwL2RhdGEuMDA0Cis3NmUwYTE4MTk2ZTZiOWU4ZjE4NjA3OTFkNWU3MDE0NiAgLi9kaXItMDc1L2RhdGEuMDA4Cis3NzFiMDVmZWE1YmE2ZGE0Y2RiYTg0NjgzYzA3MGM5NSAgLi9kaXItMDUzL2RhdGEuMDA2Cis3NzU4NmIwYzIxMWFlOTA2YmU5MDk0ZDA0OTM3MDY3OCAgLi9kaXItMDIxL2RhdGEuMDAzCis3N2MzMDZkODUwYmVkNzBhZjlhNDMzYTY4NTgyMDQzMSAgLi9kaXItMDUwL2RhdGEuMDAwCis3ODdkN2UwODliMjUyMGZiMzIzODI1YzBmMzRmMTAxOSAgLi9kaXItMDQ3L2RhdGEuMDA0Cis3ODlhZTdlOTlhM2EzZmY0MTY4OGQwZGEwYmFhNTQ5MSAgLi9kaXItMDQ5L2RhdGEuMDA4Cis3OGJjMDIwMTg4YTU5MjdkMWJkZDhhMDA5MTZlN2JkYyAgLi9kaXItMDQ3L2RhdGEuMDAzCis3OGU0YTI5ZDg2NmVlZWU2ZjE2ZGFjMjkyM2ZmOTAzOSAgLi9kaXItMDIwL2RhdGEuMDAyCis3OWFkZmIzZDJhNzQ4NzkzMjUxMWE1YTQyNzliNjFkNCAgLi9kaXItMDI3L2RhdGEuMDAwCis3YTI3YTY2NmUyNzM3ODQxMzY3MDU2YTlkOGZkOWQ1YyAgLi9kaXItMDYwL2RhdGEuMDAyCis3YTUzZGRkYjcwYWVlNThlNTY2MTQyNzI0OWVlNzAzOCAgLi9kaXItMDc2L2RhdGEuMDA4Cis3YTk1YTk0ZmEwMmVmZmEwOTg5NWI0Y2Y5ZjgwNmZhOCAgLi9kaXItMDUzL2RhdGEuMDA5Cis3YWRlZjYwNDE2N2MyYTcwMzFkMTFhNjE4NzZmNWUzZiAgLi9kaXItMDU2L2RhdGEuMDA2Cis3YWZjYzE4ZmRlZWQyNGE0YjY1ODJmMGNiOGM4ZDYzYSAgLi9kaXItMDc5L2RhdGEuMDA3Cis3YjgwNmMwYTNiZDEyOTczYzU1NDBhNGE2NjFlYTY5OCAgLi9kaXItMDEwL2RhdGEuMDAwCis3YjkxZDEwZGM5YTczNTAxZTI2OTVmZDAzZWZjYThhNSAgLi9kaXItMDY0L2RhdGEuMDA0Cis3YmE2NzgxYjlmNmEyMTAyZjZlZTc3ZTRiY2Q2N2U3ZCAgLi9kaXItMTAyL2RhdGEuMDA3Cis3YmJjNmEzZDA4YzhhYWZlNDlmMzgyODZlYTE5MDczNiAgLi9kaXItMDU0L2RhdGEuMDA4Cis3YmMwZmY4ZjU4YjA1MGUzNTg4YTcwZWE1YTg5OWMyYSAgLi9kaXItMDY5L2RhdGEuMDA3Cis3YzI5NTVjYmU4ZDg2MzViNDNmMDY3Yjc4MmE4ZDIyYSAgLi9kaXItMDEzL2RhdGEuMDAyCis3Yzk2ZWVlYjYwYTA3MzkyOTAxN2U4ODMwMjg3ZjdhZCAgLi9kaXItMDk0L2RhdGEuMDA3Cis3Y2VkZjg5OGE4ZmUwZGNkOWU2ZTJmZDk4YTc0YWI4YiAgLi9kaXItMDgyL2RhdGEuMDA1Cis3ZDMyNDI1YjdjMTA0NjA0ZjkwZWY1MDgxYTA2NmQ2NSAgLi9kaXItMDE1L2RhdGEuMDAyCis3ZGJjNGQwYjVlMDkyZWMwN2Q3MTgyMWQwNmNlYzE1MCAgLi9kaXItMDg2L2RhdGEuMDAzCis3ZGVhYmZkZGE2OGMwOWNhNzIxMmVhMDU2NTllOTkyNyAgLi9kaXItMDE3L2RhdGEuMDA0Cis3ZTI2Y2MzMDYxMjM1NmEzNDNiMzlmMDIyOWFjM2Q0NiAgLi9kaXItMDE5L2RhdGEuMDAzCis3ZTdjMmJhZjFjYzc1NjJiNDA3ZmNhMTA4NWMwNWQxNiAgLi9kaXItMDc0L2RhdGEuMDA0Cis3ZTliMGZmNjZlZjgwYmI1MjU3ODMxZjdkMDQ5NjFiNSAgLi9kaXItMDIwL2RhdGEuMDA4Cis3ZWJlODM2ZDg0MWI2MzY2MmVlYWQ2YmViNDEyZDRiYyAgLi9kaXItMTA3L2RhdGEuMDAwCis3ZjQ5ZTc5ODUxYjdiNDVjZDJkMzMxNzVmYTFiMjk2OSAgLi9kaXItMDgxL2RhdGEuMDAxCis3ZjY2N2ZiZDNjYzNmMjg1OTMyYWFmOTJkYTE4OWQxYyAgLi9kaXItMDQ0L2RhdGEuMDA0Cis3Zjg0YWQyMjI2OTUyZGMzYTJjYWQzOGMzZWUyOTcwYyAgLi9kaXItMDA3L2RhdGEuMDAxCis4MDQ1MTUxMTkyYjQ5YThkYTRkMmM4ZTY3NjJjY2JhMiAgLi9kaXItMTA3L2RhdGEuMDEwCis4MDQ4ZTBjYmEyMjJjYzE2NTU3NWVhY2UzOTIyZTViMCAgLi9kaXItMDM5L2RhdGEuMDAwCis4MDQ5YWE3NWVlNGNiMWI0YzNiYmE1OWRmNjdlNDdkZCAgLi9kaXItMDY4L2RhdGEuMDAyCis4MDhhYWQ4MjRiOWUyZTQ2NWJjYTQxZWZkMWY1Mjk1NCAgLi9kaXItMTAwL2RhdGEuMDA1Cis4MDk0MGZhZDc1YzcyNGE5OTA3NmMzNzY4OTIwODNmNSAgLi9kaXItMDA4L2RhdGEuMDEwCis4MDlhZDhmODdiMWQzNDk1Mzg0NzllYjgyNTVmYmQ5NSAgLi9kaXItMDg3L2RhdGEuMDEwCis4MGIxMjYzMTMyOGIwZGExNWRlZjVhYjdmZjU5MjNmYSAgLi9kaXItMDk0L2RhdGEuMDAyCis4MGIzYWRiZWFmNzc1MmY0YjI4NjkwYmYzNDI3N2E5NyAgLi9kaXItMDgyL2RhdGEuMDA5Cis4MTFmMjIyMmJmM2UzMjYxZWRkZmE3YzViM2QwODFiOSAgLi9kaXItMDQ2L2RhdGEuMDA5Cis4MTIwMDg0NjRlNjM3OGY0MWQ2OTkyYjVmZmNiZWI4NCAgLi9kaXItMDQ2L2RhdGEuMDAzCis4MTc3NDkyNzk5NTg0Mjg4YjZkMDkxMmRkYzNjNTc4OCAgLi9kaXItMDEwL2RhdGEuMDAyCis4MWZkMTM4Nzg0MDY1NDRkMzk2ZmIwZDkwN2M5YTQxYiAgLi9kaXItMDQ1L2RhdGEuMDA2Cis4MjAwYmRjMTA0ODBjMGYzMmUyZjgzY2Q2ODUxNWY3ZSAgLi9kaXItMDg0L2RhdGEuMDA2Cis4MjA0MDhhY2UzNDkzMjUwZDk4ZTg2NzRiODE4N2E5MSAgLi9kaXItMDUyL2RhdGEuMDEwCis4MjExNzJlNTRlNGFmZDYyZjcwNWQyMjYzMzFjN2ZiNSAgLi9kaXItMDg1L2RhdGEuMDA1Cis4MjY4MTJhMzYxMDVmY2RmNGQ1NTAwYTZkZjBmMDhkMiAgLi9kaXItMDg1L2RhdGEuMDA5Cis4MmUxNjBjYjY4ZmNkNzMxZmZkOGM5ODJlYjY2OTkyMiAgLi9kaXItMDM0L2RhdGEuMDAwCis4MmYyYmRjYjQ3MjhlM2FkMmFkNDI2ODhjNzc2MDUxZiAgLi9kaXItMDA2L2RhdGEuMDA4Cis4MmZkMGM3YjcyMzk5OTIyYzkxNWQ1NmZmNjk2NmYwOSAgLi9kaXItMTA1L2RhdGEuMDA3Cis4Mzk2MWNhM2E3ZmRjZTdlYzcwNjk2ZTIxNzQ2NTNjNyAgLi9kaXItMDg2L2RhdGEuMDA0Cis4Mzk5MWQ1NzNiYmQ2NDM0OTNjOTRmZTc2ZmNhNzdmYyAgLi9kaXItMDA2L2RhdGEuMDA3Cis4NDQ1NWUyNzk1Mjc2ODJkYzE2NTk3Y2NkNjRiYTI2MCAgLi9kaXItMTAzL2RhdGEuMDEwCis4NDdjZTkxYzRmMzc5NjBiZmY1ZDM0MDIwYjQyZWQ1MiAgLi9kaXItMDY5L2RhdGEuMDAzCis4NDdlOTQxNTRmZTM5ZmNiNDA5NzQ5MDFmZDA1YjU5ZCAgLi9kaXItMDU3L2RhdGEuMDA5Cis4NGE3Y2UzOGM2MjAyZmRiNmI4OThkZjI4NTQ0NjY2MyAgLi9kaXItMTA2L2RhdGEuMDA4Cis4NGFiYTJmNTYxODEzYTliYWMwYjRjMDY2MjAxNTJhZSAgLi9kaXItMDUxL2RhdGEuMDAxCis4NGM1NzViYzM5ZDZjMGM5MTYwMGEyZGQ5ZTQ1MzY5OCAgLi9kaXItMDc4L2RhdGEuMDAyCis4NTEyZTAyZTQ0MTAzZjY3NjdiMzM0MzQ1ZGM3MzU3NSAgLi9kaXItMDQ5L2RhdGEuMDAzCis4NTIwYmRjZDM2NWRiYmVhNTZiNDhlMTgxZTg5MmU2ZiAgLi9kaXItMDM1L2RhdGEuMDEwCis4NTYxNmMwZGE2NjJmMzk2ZDMwMWNiMWU2YmRkN2JkNCAgLi9kaXItMDEzL2RhdGEuMDA0Cis4NWVjODM2ZTY3ZTZmMmJhZWVjMDFmNjY1ZWIyM2UyOSAgLi9kaXItMDk1L2RhdGEuMDAzCis4NjAzMDY3YzE5M2U0YTFjMzU3ODAxYjM4MTY0MWRmYiAgLi9kaXItMDkyL2RhdGEuMDAzCis4NjExYTY2YWIwMTEwMzNiM2M5MDZiYTdiODllNmMyZCAgLi9kaXItMDM3L2RhdGEuMDAwCis4NjM3OGMyZWEzOTY1ODUyOTdmMTY1NTMxZTZjNzg5MCAgLi9kaXItMDI1L2RhdGEuMDAwCis4NjY0MzBiNWQzOTExYzczNjM3NmQ3ZTY2MGE4MWYwMCAgLi9kaXItMDQyL2RhdGEuMDA3Cis4NmJjMzYyZGRjMGNlY2RiNDhlNGVmNDg5ZWZlOWRkOSAgLi9kaXItMDA1L2RhdGEuMDA4Cis4NzJhNzNiYmNlMmM4NDhhNTg0ZTkzODJkNjJhN2E4YSAgLi9kaXItMDkwL2RhdGEuMDA3Cis4NzRjOTNlMDVmNGYzMmJlZmY1MDUxYzRhZjg2YjhlNCAgLi9kaXItMDcyL2RhdGEuMDAwCis4NzZhMmRkM2Q2MzBkOTgxNDMyMDM2OTM4NzRmNjBkMCAgLi9kaXItMDkxL2RhdGEuMDAwCis4N2E0YTEzYTE1YjE3NWI4Yjk0M2NlZmRmZTNlNzRlOSAgLi9kaXItMDkxL2RhdGEuMDA4Cis4N2RjZWQ4MjRlODQxM2UwMmNkYmY1MzlmOGRlMDYxYiAgLi9kaXItMDg2L2RhdGEuMDEwCis4N2Y1ODgxZDVjNGE4OTQwODUzMDdhYTEwZmRiMTA1YSAgLi9kaXItMDQxL2RhdGEuMDA5Cis4N2Y4ZTkyYzhmMWExYzg0MzMzOTg4MDhhYmFmODE2NSAgLi9kaXItMTA5L2RhdGEuMDAzCis4ODEyNDM3MTZiYTRlM2M1ZmYzZGQzNDJjMjFjMDQwYiAgLi9kaXItMDgyL2RhdGEuMDAzCis4ODhkYTNkMjY2NTY0NDJhYTFjMTllMmU0NzdlNTlkZSAgLi9kaXItMDgzL2RhdGEuMDA5Cis4OGZhMWJkODdmYTMxZDg1M2UzNmJkNTAzNTI2MjI3ZCAgLi9kaXItMDQzL2RhdGEuMDA1Cis4OTIyMWQwMWM4OTQyNjJlOTdiMTVlN2Y1NzkxZTE0ZCAgLi9kaXItMDE0L2RhdGEuMDAxCis4OTdlZDNkOTg0YmY1ZjEzNjhmYWJmNDlmM2IwZjEyYiAgLi9kaXItMDcyL2RhdGEuMDAxCis4OWE1MDNmNWQxYTFkOWI5NGVhZGYxNGEzZDdhN2RkNSAgLi9kaXItMDQ1L2RhdGEuMDAwCis4OWU2MDgxYzM1Y2RkM2I4NmE4MzZjZmY1MTk3MTE4NCAgLi9kaXItMDY1L2RhdGEuMDA5Cis4OWYwYWNkNzVjYTk2M2JlYWIwY2FiYmZmZDYyODcyNCAgLi9kaXItMDkxL2RhdGEuMDAxCis4OWY0OTliMGRhNDBhZjc2ODAyZjBlMDNkYTc3ZjZmNiAgLi9kaXItMDQwL2RhdGEuMDEwCis4YTAxMGIxNGVmNjc2ZDQzMDRlZWY3M2IxZjFmNzhlMiAgLi9kaXItMDA0L2RhdGEuMDA3Cis4YTEyODM0OTNlZTYwYjQ5NGE1OGU2YWNlNzQ1MjkwNyAgLi9kaXItMDg5L2RhdGEuMDA5Cis4YTYyYTg3NDJlZDc4MDIzMDQzZDRlYWVjNWIxZTkwNCAgLi9kaXItMDk4L2RhdGEuMDAyCis4YTZiMGM0ZjJjMDRlOTZkNTMxNTg2ODk5NmZjZGRhNyAgLi9kaXItMTA4L2RhdGEuMDA0Cis4YTgyZmY0OWU3MTBiZDg4NDUwODY3YTNmNDQwYjBkYSAgLi9kaXItMDc1L2RhdGEuMDA5Cis4YTg3YjRlMDBjNTMxY2Q1NzdhMzkwMTIzOTdhMGY4NyAgLi9kaXItMDc5L2RhdGEuMDAwCis4YWI5M2JmZGQ5ZTYyZjNkNmRhMGRiYmM1M2ViZmZhMSAgLi9kaXItMDc2L2RhdGEuMDA0Cis4YjA5YjdkNjJhMzczNTY4MWRhMzYzNzE2NTdlMTRmMyAgLi9kaXItMDM5L2RhdGEuMDA3Cis4YjkzZjA0YjUyYmQxZmIwNzgxZjlkNDZhYzdhMjkwZiAgLi9kaXItMDI1L2RhdGEuMDAyCis4YmQ1NjUwYjBlN2Q0ZmJmNjk3MzIxNGMyZjUwNzgwMSAgLi9kaXItMDQ3L2RhdGEuMDAyCis4YmQ1YmZhYzEwNmM2OGNmZmIzYTA5OGM0ZDE1N2NmMSAgLi9kaXItMDYzL2RhdGEuMDEwCis4YzRmZjhmNzgwYTk4ZTM5Mjk1ZjUwMDI3OGExZDg4NyAgLi9kaXItMDk1L2RhdGEuMDA5Cis4ZDExMTBmOWFjY2M4MDRmYzQ4YmIyZWU0YWY2YmJmMSAgLi9kaXItMTEwL2RhdGEuMDA5Cis4ZDQyNjFlODAzNTIwNzBkMjgwMGY1Mjg5MzJlMzdmNCAgLi9kaXItMDU1L2RhdGEuMDAwCis4ZGIwOGY2NmRlZTE5YTU0OGIzZTZlYjNhMTU2MDk4MCAgLi9kaXItMDk0L2RhdGEuMDEwCis4ZGY3NWZlNzEwZGRmMjMxNmRkMTNmODA2NWU0YmY0MSAgLi9kaXItMDg3L2RhdGEuMDAxCis4ZGY4MDI3OWYyYjIwNTFkNjViY2YxZjdhN2RlYTdkOSAgLi9kaXItMDk3L2RhdGEuMDAwCis4ZTU4YTQyY2YzODMxNzNjMGRjZDY2OTQ0MDJiYzk0NiAgLi9kaXItMDE0L2RhdGEuMDAzCis4ZTk5MzM5MzZlMDI2MTU5NTM0ZjQ1MWNkMDU0OGQ0YiAgLi9kaXItMDI5L2RhdGEuMDAxCis4ZTllNDUyMThkMTdhZTFhYWM1N2QyNGJhNDQxN2Q5YyAgLi9kaXItMDcwL2RhdGEuMDAwCis4ZWFiMmIxZDFlYTJhNTkyNmVhNWUyNzY1ODc1NDNjNCAgLi9kaXItMDI0L2RhdGEuMDAwCis4ZWU2NWU4MGRhMzQ0OTQyNWQ2YzhjZWRjN2JlNzJmYyAgLi9kaXItMDk5L2RhdGEuMDAxCis4ZWY2NDg3NWE5Yjk5Njk4NjljYjBmMjVhMzJmYTBmZCAgLi9kaXItMDM5L2RhdGEuMDA0Cis4ZjdiODhhZmEyY2ZhZTBhMzM3ZTFlMzMwZTk1MDdhYSAgLi9kaXItMDc1L2RhdGEuMDEwCis4ZmQ0ZWFiNzY4YzRiNTkwNWU0MTY3MjVkZTQyM2Y1NSAgLi9kaXItMDg3L2RhdGEuMDA2Cis4ZmZjOTI3ZGY4NmRkNGM1ZTM5NjZlOWQwNTY2ZTQ0OSAgLi9kaXItMDE0L2RhdGEuMDAwCis5MDRhNmQxYjI5YjZiMzQ2ZDE3ZmU1NTQ4YjkwY2I2YiAgLi9kaXItMDU5L2RhdGEuMDA1Cis5MDRmNjE4ZmU4NDk2MGY0ZDQ5NWEyY2JmNDk0YTE3OSAgLi9kaXItMDI2L2RhdGEuMDA4Cis5MGU2NDNhMGVhZDI0ZjExNDQ5YmUyYzEzZDczOWE1MyAgLi9kaXItMDE3L2RhdGEuMDA3Cis5MTM2MWZjOTRhMTdkNmJkMDAxZDEzNjM1NWI4NTM1NCAgLi9kaXItMDI0L2RhdGEuMDA4Cis5MTg1MGFhMzgzMWE4MjFkMzc1YzQxNmNmMDQ4ZDgzMCAgLi9kaXItMDEyL2RhdGEuMDEwCis5MWYxNDk5ZjlmYzIxZTc0ODc5NDU5NjAwYTgyNTY1NCAgLi9kaXItMTAzL2RhdGEuMDAwCis5MjA3ZWM4NzdjMmZjMGM4ODdhZGJlODFiOTdkNzE2MCAgLi9kaXItMDIzL2RhdGEuMDA5Cis5MjNmYWUxYWFkMWY3ZjA4N2Y3ZDU2YmUwYTk0OWFiYiAgLi9kaXItMDI0L2RhdGEuMDA3Cis5MjRlNjA4ZTE2ZDE4NTg5YTk5MzJmYzc2YWI3ZGFkMCAgLi9kaXItMDkwL2RhdGEuMDA1Cis5Mjc5Njg4MjhkNWMzMDY1ODA0NDY2YzBiNjU0ZGZiNCAgLi9kaXItMDU0L2RhdGEuMDA1Cis5Mjk3YzhlMzIwOWFkNmMzZTllYjgwM2Q1MTE0NzUzYyAgLi9kaXItMDMwL2RhdGEuMDA4Cis5MmIzODg3MTc5MzYyNTU3YTkwNjNhZGY1NDhiMmJkNyAgLi9kaXItMDgxL2RhdGEuMDEwCis5MmY2NjJmMTZjMzc2OGRiNWVlZGEzYjYwZjRmMGFkZSAgLi9kaXItMDIyL2RhdGEuMDAzCis5M2I3YzRkNTM3M2EzNjRiOGUzZTI2ZDA3N2M5ODBjNyAgLi9kaXItMDc5L2RhdGEuMDAyCis5M2ViMTViNTNlNjg3OWViYTllMjNjMmY2MzZlNzNhNiAgLi9kaXItMDYxL2RhdGEuMDAwCis5NDBiZWUxZDMzMDAwMmNmMjM0YTMzOGI2M2QwNzkxMSAgLi9kaXItMDY4L2RhdGEuMDAxCis5NDE3MmU5MjRhN2NkZGE2MjlmMjAyZTExNWU4NmU5NiAgLi9kaXItMDYyL2RhdGEuMDA3Cis5NDQ0OTIyMGZjYTZhOTU4OTM4NTdhNDU5ZWVlZWVjNiAgLi9kaXItMDAwL2RhdGEuMDA1Cis5NDRhNjBjNTgyMDg4OWFjNmMyMDQzNzhhYjhlYzY4NCAgLi9kaXItMDY1L2RhdGEuMDEwCis5NDYxMWY5N2YzMGIzMjE2ZWUzMDZhOTdlZTA2MzI4NSAgLi9kaXItMTA2L2RhdGEuMDAyCis5NWM0ZjQ0ZGJjNjYyYTFiODBmMjMxYzAzYTE4MzFhMiAgLi9kaXItMDMxL2RhdGEuMDA1Cis5NWYzNGJmNTYwOTc3YWFiZjU2YjIzNzRiZmQ4MDFmYyAgLi9kaXItMDMxL2RhdGEuMDAwCis5NjBiMzQzM2FkZGJlNDE5NDQ1NTA2ZTQwNzBlNzA0YyAgLi9kaXItMDMxL2RhdGEuMDA0Cis5NmZjYzVkZjMzOWNhZmYxNDMxMWEyNGE4MTEzNDcxNCAgLi9kaXItMDQyL2RhdGEuMDA2Cis5NzA2ZGQ3YTdhZTk3OWI4NTgxNTVkZWE4ZDU0Y2I0ZSAgLi9kaXItMDMzL2RhdGEuMDA4Cis5ODczZmNhYWFmMTI5ZDkyMmNiMjljMTBkZDc2NjVhMSAgLi9kaXItMDY2L2RhdGEuMDAyCis5ODkzNDgxMjNkY2QwOGVlMzNjMzUxZTkxNTZkZDU4MSAgLi9kaXItMDA1L2RhdGEuMDA5Cis5OGFmMjNhYzRkYzg5MTMzYzc0OWNiNzk2ODg3ODg1OSAgLi9kaXItMDQxL2RhdGEuMDA1Cis5OGI3MmZhMTUyNmUyMGMxNmFiMDI1NDZiNjU2YTkyNSAgLi9kaXItMDY5L2RhdGEuMDA1Cis5OTAxOWU1ZmVlYWNlY2Q2MjhiNzliMWViN2UxNjFmNyAgLi9kaXItMDcxL2RhdGEuMDA4Cis5OTE0YmVhYzE0NjgxNDkzZjdhN2FhMTlhMGYxYmQ4ZSAgLi9kaXItMDM1L2RhdGEuMDAwCis5OTNjMmMxYjY0ZDRkOTA0OWRmNmQ1ZDdjYjU2YzRjNyAgLi9kaXItMDUxL2RhdGEuMDEwCis5OTk0OTBiYzMzZWMyYTU2YWIyMzBiNmRhOGIxYzFkMSAgLi9kaXItMDQ1L2RhdGEuMDAyCis5OWI3MGEzYjUyMzVlYmZkMWRlNmUwOTZkNTRhYjQxZiAgLi9kaXItMDgzL2RhdGEuMDA4Cis5OWI4MWIxMDI0MTI5OTkxZTE5YjAxMGVlMGYxMjk5ZSAgLi9kaXItMTA4L2RhdGEuMDEwCis5YTBlMGNiOWEyZjg5ZmE4Yzg4OGE3MzEwYjQ5MWFhMyAgLi9kaXItMDc0L2RhdGEuMDAyCis5YTJkNjNjMWI0N2FhMzVhMGQ2NDdkMjc4ZDdiMTNiMyAgLi9kaXItMDIwL2RhdGEuMDA1Cis5YTc3YjAxN2NiNzE0NjQ4YmIzMzg4NTM3MTdhZDdlOCAgLi9kaXItMDU5L2RhdGEuMDA2Cis5YWYzMDUyZDc5ZTAzMjM0ZDUxNzkwYmNhM2Y2MmFiZCAgLi9kaXItMTAzL2RhdGEuMDA2Cis5YjEzMDhkOWE3MWYzZDA3ZGYyMGM2NGVlOTQ4NTIxNSAgLi9kaXItMDA5L2RhdGEuMDA0Cis5YjI0M2U3OTIzMjA3ZmVlYmE0NGVmODk2NzgzNTIxMyAgLi9kaXItMDI5L2RhdGEuMDA2Cis5YjI1Y2M3N2VjMzg4NGI5YjExNWYzNGE2MWFhNmIxYSAgLi9kaXItMDM2L2RhdGEuMDAyCis5YjQ0NzVkNjhkOTliMGQ4YjViNzI0YjE2MWVjMzg1OCAgLi9kaXItMDc5L2RhdGEuMDAzCis5YjdiZmEzZGZiMTIyM2MwODRhNzMyYTQ2MDAxMGJhNiAgLi9kaXItMDI3L2RhdGEuMDA0Cis5YmQyMzkzZjQxNjcxMDRjNjAyZjQ2MmNmZjk3M2M5ZiAgLi9kaXItMDU4L2RhdGEuMDA1Cis5YzQzMGU2ZGI4ZjE1MzBkZmNhYjQwZGUxYWUzMjBlZSAgLi9kaXItMDU4L2RhdGEuMDAwCis5YzQ4ZmYwZTlmYzIxM2NiMmI0ODNkYjIzMGZlYjM0NSAgLi9kaXItMDIyL2RhdGEuMDA5Cis5YzlhM2VmZjU0OWRlZTg4YTM1YzU4OWRkZDlkMjE4YiAgLi9kaXItMDE4L2RhdGEuMDAxCis5Y2NkMDVhYzk2ZmU5MTkyYTZlM2M5Yjg2NGY1MWNjNSAgLi9kaXItMDQzL2RhdGEuMDAyCis5Y2YzM2E3Yzg5MWQ2Yzc0NzIyNjdkNTdjYTZjYmM2NiAgLi9kaXItMDQ2L2RhdGEuMDAyCis5ZDIxZmIzMGFmYWFlZjc5YWVjYjBkYTk4MTVjMzQ3YiAgLi9kaXItMDUwL2RhdGEuMDAxCis5ZGYyY2Q5Zjk1ZmU5OTdjOGRlNjJjNTQ4MWQzYzkzZiAgLi9kaXItMDM0L2RhdGEuMDAzCis5ZTNiODQzMGM3Y2I4NzA4MDNlYzI4NmMxMzcxOGIwMiAgLi9kaXItMDAzL2RhdGEuMDAzCis5ZWE5YzdkNmI5ZmIzMTg4YmEwODIxMTM2YzIyOGU3ZSAgLi9kaXItMDk1L2RhdGEuMDA0Cis5ZWRmOWEwNTYwNzUyMDA4Y2VhYWE0YWUzZWQ1Nzg1ZSAgLi9kaXItMDcxL2RhdGEuMDA1Cis5ZjU0OTY1NjQ2NmY3MGY2MjJjOWRmMWM0Y2NjOTUyMSAgLi9kaXItMDMzL2RhdGEuMDA1Cis5ZjgwOTU4MTQwZDY1YjVlMGZiOWE1MjE2N2IxYzQyMiAgLi9kaXItMDk5L2RhdGEuMDA2Cis5ZmE3ZjkyYTIxYmE1MDAxNDBhZmYxN2Q4NzYyYTZhYSAgLi9kaXItMDc2L2RhdGEuMDEwCis5ZmQzYjI4MDRmNTkzMzc0ZGVmNWEzMDJhOGI0NTBjNCAgLi9kaXItMDc0L2RhdGEuMDA1CithMDMzOWRlMmMwMTNmMmQwM2Y3NTZhODE0NDYzOTg5NyAgLi9kaXItMDYxL2RhdGEuMDA5CithMGEyNzBjZTM3OWZkNGQ5OTFkOWNhNzI4ZDYzYjM2YSAgLi9kaXItMDEyL2RhdGEuMDA0CithMTIxYjMwZmEwYWQ1MGI0ZTgyOWE0NTg3OWNjNWVkZiAgLi9kaXItMTAxL2RhdGEuMDA2CithMThiNjhjNzdjZTkwYjliZGFjYTFhZTU1MjgyMzM3ZCAgLi9kaXItMTEwL2RhdGEuMDA0CithMWUyY2FkOGU5N2M4MmYzMjUzNDQyY2ZmOTk3YmNmMCAgLi9kaXItMDgwL2RhdGEuMDAwCithMjM4ZTI1MDcyM2I0MTEwMWYwN2NmY2ExN2YxMTU2NCAgLi9kaXItMDQ1L2RhdGEuMDA4CithMjQ2YzVjNmMxZjgyM2ViNDEzYWYzN2QzNGIzYmZmZiAgLi9kaXItMDc3L2RhdGEuMDA4CithMjljMjRlMjFlNmY2MDc1NzBmNzZlNTYyNWQzZGM5OSAgLi9kaXItMDMyL2RhdGEuMDAzCithMzQxZDhiMTUyYmU4ZDM0MTc4MmRiNWFiMWQ3YWFiZiAgLi9kaXItMDg0L2RhdGEuMDEwCithMzVlYzg2YjMxZDczODQ5MTQ3ODgwZWVhNDI5N2ZkMCAgLi9kaXItMDYzL2RhdGEuMDAxCithMzg5MWNkNjg1NWMzNDZiMDdmNmQxY2QzODVjNDliNSAgLi9kaXItMDk0L2RhdGEuMDA0CithM2Q5NDEwZWZiMGIxZmY2NjAwYjNmNjI3OTcxZmQxNiAgLi9kaXItMDQyL2RhdGEuMDAxCithNDA1ODcxMzhjZWQwNGIyMGZiMjUyNzM1NDYwNmYyYyAgLi9kaXItMDc2L2RhdGEuMDA2CithNDY5ODEwZTRkMWRhYTEzZjNlOWIyZTZmNjhiOGQxMyAgLi9kaXItMDA0L2RhdGEuMDA2CithNGMxM2RhOTBjYmNmMmYxNjI0YTRiMmMyYTliYjIzMyAgLi9kaXItMTA5L2RhdGEuMDA4CithNGQ0ZDQ5MjE3OWViMmRjYTdjZTMwNTcxYzhlZjNiYSAgLi9kaXItMDA3L2RhdGEuMDA0CithNTJkYTBhYTFhN2FjZDg3NzhmZTZmNDBmMGY4YzBhOSAgLi9kaXItMDYxL2RhdGEuMDA0CithNTU0YjkwNjhlZjQwNmNhMzcyZjkxODkzMDRhODJiNyAgLi9kaXItMDU5L2RhdGEuMDAzCithNTgxZTc1Zjg0ZjRhYzZhZDllNzBlNWI2YmVhNTNhNCAgLi9kaXItMDk1L2RhdGEuMDA2CithNjA1NWQwMDQ3ZDgxNGEzMWYzMmU0MTg1NDQxZDRhMSAgLi9kaXItMDA3L2RhdGEuMDA3CithNjA3NDFlMjA5YjcyNmZkYTRlOTY5YmYzNDRmNGFlYSAgLi9kaXItMDY5L2RhdGEuMDAxCithNjM5NWE5YmNmNTM1MDZjZWYxYzZiNjJjYzM3ZjJkNCAgLi9kaXItMDAzL2RhdGEuMDAwCithNjUwNDA5NTU4ODRkMWM2ZTRkNTRhZDkyOTlhMDhlMiAgLi9kaXItMDYyL2RhdGEuMDAxCithNjU0NTc1NTBkMjM4MDdiMjFjMWFmYTkzZTlkMjFlZiAgLi9kaXItMDM1L2RhdGEuMDA5CithNjZlMmFlZjgwMmY5MjM4NWJmMzhiMDFjZThiMGM4MCAgLi9kaXItMDMxL2RhdGEuMDAzCithNjk1MmM4M2Y2YTQwNmVkMWJhYTJiMTI1MWJjY2ZmZiAgLi9kaXItMDMyL2RhdGEuMDEwCithNzNhYTI2ZjYyZGU5OWU5N2U2OTEzNzlmZjY0ZTgzOCAgLi9kaXItMDU1L2RhdGEuMDEwCithNzNhZDZiODQ3YWY4MGI2NmY0YjM3YmY3NTJlMTA5NyAgLi9kaXItMDk2L2RhdGEuMDAyCithNzhkNTNlNjE3ZDMxZDI5ZDA3YTFiYzhkNDYzZTQ1NiAgLi9kaXItMDk2L2RhdGEuMDEwCithNzkwMzMzNGRhYjJjOTk0OGE5NDYwZDk0ZmZkMjdlYiAgLi9kaXItMDgyL2RhdGEuMDAyCithNzk1N2NkMWJmYjM4YmIyNjVjMmQ5MDliZjRmMGIyMSAgLi9kaXItMDI2L2RhdGEuMDA3CithNzlkZjYxNTJkYTRiNzhlY2U2NjNmNGI5NWQyMGNkMyAgLi9kaXItMDQxL2RhdGEuMDEwCithN2FhN2YwMjEzZDQxZGI5YjdhMmQ2M2M5MGY3Nzc3MiAgLi9kaXItMDUzL2RhdGEuMDAxCithODExMWE0NDM5MjQ0ZWQ5ZGU2ZTBjNTk0NGQ3ZmZhMSAgLi9kaXItMDI5L2RhdGEuMDA4CithODJiMWU3NjljMzNmZTcwMTE5NGQ5NWZjY2YwMjljOCAgLi9kaXItMDEwL2RhdGEuMDA0CithODU3M2NhODcxOTkxMGQzZWEyNTgzOWNmNTI5ZDQ0MSAgLi9kaXItMDkxL2RhdGEuMDA5CithODVjNjYyOWRhNTNkMzJhMGVkMGQzYzhiMGEyNmM3MiAgLi9kaXItMDc3L2RhdGEuMDA1CithOGExMzdkZjA0Yjg3YWM3MzZlMTU4NTE1ZWM3MWE0MiAgLi9kaXItMDg3L2RhdGEuMDAwCithOGE3YWM4N2M0MjZhYTA0N2I1NzNiMmRjYmM0YTBlNiAgLi9kaXItMDU4L2RhdGEuMDA4CithOGMwMzhhMDNmNWJjMmU2YjUyZjAyYjhjNWM1MmNiMiAgLi9kaXItMDU0L2RhdGEuMDA5CithOGM0YzFmOTI0MTMzZWMwYzgzNjA5MDFiY2Y2YzE5OSAgLi9kaXItMDk0L2RhdGEuMDAxCithOGUwNmM5ODE0NDgxOWQ5OGU4MDk0OTJmMDhhYTI5YyAgLi9kaXItMDM1L2RhdGEuMDAxCithOTNhNDlmZDc4NGM2YWQ5MDM4NWVhMDIyZWNkMjM0MyAgLi9kaXItMDQ1L2RhdGEuMDEwCithOTVjNDZhYzcwNDdiODg2NmRkOTIyNWVlNGQ2NDhjNiAgLi9kaXItMDU0L2RhdGEuMDA3CithOTdmOWM2YzUyM2Y1NDc5MDQ2Mzc3ZWNhNzkzZWY1MyAgLi9kaXItMDQwL2RhdGEuMDAwCithOWE1MGVkMmIxNjVkNTQ4YTFhY2EyZTRiMzA2ZDA2YiAgLi9kaXItMDQ4L2RhdGEuMDA2CithOWJhMDlkZjU0NjkzMGJhMjc2NjNkZjAyMjdiMDQ3YSAgLi9kaXItMDAyL2RhdGEuMDAzCithYTEyMmJmZDc2MGVhNGRjNTBhZWNmNGY1MzNjNjVhYSAgLi9kaXItMDE2L2RhdGEuMDA0CithYTNlYjUzYzdhN2E3NzY5MGU5OTZhNWMwYzFjY2ZhZSAgLi9kaXItMDI0L2RhdGEuMDEwCithYTYxYTVkNWYzMzZiMGI1MGU2YjFkMDc5NmI4OTBhZSAgLi9kaXItMDg4L2RhdGEuMDA5CithYTZmZWY2M2MzYjJiYmI5YzE3YzliZDczMDhjNTMwNiAgLi9kaXItMDM2L2RhdGEuMDA0CithYjBmODgxZjg3MjU2M2JkNzg0NmMzNDMyZWY3ZmNlNiAgLi9kaXItMDAzL2RhdGEuMDEwCithYjFlYTFmZTk1YjNhZjdkYjY0YWE4ZmExNDY3NjBiYyAgLi9kaXItMDkzL2RhdGEuMDA4CithYjVhY2Q2YzU5NDE1ZTEzZGM3OTFlM2YzMDBiY2NkMiAgLi9kaXItMDM5L2RhdGEuMDAxCithYmYxNzVlZmZkNmMwNGRiZWRjMDRhMzFmMDA5ZWY3MiAgLi9kaXItMDM4L2RhdGEuMDA0CithYzAwYmI2MDAxZTM1NGE2MDQwNjNmMWUzMWE4ZmUzYyAgLi9kaXItMDI4L2RhdGEuMDAwCithYzBlZWU0OWU0NzM3MjZkZWI1NmQ0N2E4MjMxOThkOSAgLi9kaXItMDg2L2RhdGEuMDA5CithYzZlMWY2MTZmY2FiOTNiZWJlYTEyYzNkZDFmZWZlZSAgLi9kaXItMDY1L2RhdGEuMDAxCithYzhlNTk2ZmRmNjI3OWU0MGZkMDA4NWJiMGYzNDE2NSAgLi9kaXItMDg0L2RhdGEuMDA1CithY2MxZWU3ZmViZDEwMGFiMjNiNmE0NzlkMzAwMTgyNSAgLi9kaXItMDYxL2RhdGEuMDAxCithY2RiZTJlNDk2ZDZhZTIzYzBmMGRjZmIwZWE2ZmFhOCAgLi9kaXItMDA1L2RhdGEuMDA1CithY2U5YzhiNWRkOGU1NWRkMTM3MzVjNjQ5YzlkNGFmNSAgLi9kaXItMDk5L2RhdGEuMDA4CithY2Y1Y2IyYzdiMWViNDM5MGE2MGExNzc0YmM0YmFiMCAgLi9kaXItMDkwL2RhdGEuMDA5CithZDI0MTE0YzljYjhmMDM1YWRlMmU4NjJkOWFiYWZhOCAgLi9kaXItMDUzL2RhdGEuMDEwCithZDMyMGNkYmZiZmE1Y2Y2YzdiN2E4YzQwYTY4NjE5MyAgLi9kaXItMDIxL2RhdGEuMDAwCithZDViMmQ1NDhkYmJmZTZhYjBlMjE0MzdiYjJlMWYyZCAgLi9kaXItMDE5L2RhdGEuMDAxCithZGU5OGFkZWI0NWFiMTljN2NlOGQ0Mjc4MmRjMDRhNyAgLi9kaXItMDg3L2RhdGEuMDA1CithZGVmYzU4NTZkMmE0NTk1YmVlYjFhZGNiZDE3MjIyMSAgLi9kaXItMDE5L2RhdGEuMDA4CithZTgxYzk1Mzc4NmNlYzgyZDBmMWY5NDM1YjBkMGMwZCAgLi9kaXItMDU2L2RhdGEuMDA5CithZWJiZWViNWU0MjFjYjhhZDJlODMxYTMwMjc0MmE2ZSAgLi9kaXItMDgxL2RhdGEuMDAzCithZWM0OTc4YjgxNDQxZGE5Y2JhOTAwODU0OWZkNThiNCAgLi9kaXItMTAzL2RhdGEuMDA3CithZWY2MjhkNzY3NmFlMjExNTNhODdlMGYxZWUwODI3ZCAgLi9kaXItMDUzL2RhdGEuMDAwCithZjkzODViNzYyNTY4NGMzZDE1Mzg1NGJmYmM0MjdmYiAgLi9kaXItMDU3L2RhdGEuMDA3CithZjk0OWUyOTJjNzM2ZGVjNjRjMjliMzVkYmM5NGNmMyAgLi9kaXItMTA0L2RhdGEuMDA4CithZmI2OGRkOTA5NTZjNzI5YzQ5MjExYWE1Y2M5NzRkMyAgLi9kaXItMDE4L2RhdGEuMDAwCithZmM1Y2NlYWVkOTAxZTNiYWYyNjQxMGU1MzBiMjExMiAgLi9kaXItMDQzL2RhdGEuMDA3CithZmQwNTE0MWJlNmY4NjVhNjRlOTM5MDhlMDVhYjJlNyAgLi9kaXItMDcwL2RhdGEuMDA0CitiMDUwZjZmMGI1NWNhZmQ5MWFmOGI1YmZlZDlkN2VmMCAgLi9kaXItMTA2L2RhdGEuMDEwCitiMDZiY2E1M2IxMzEzMDRhODlkMTUyZmE4NjllOGQ0NCAgLi9kaXItMDA2L2RhdGEuMDA2CitiMDdlMDdkOWViNWI5NzY1ZDU5MTY5MTBkMzAyMmExNSAgLi9kaXItMDQxL2RhdGEuMDAzCitiMDk5NjYxZDBkYzdlNzc3ZTk0Yjg4YTc2ODc5MmFiYSAgLi9kaXItMDI5L2RhdGEuMDAwCitiMGY5ZmJjMzg4OTg0Mzc1NmMyZmJiZGJjOGU5NWM4MCAgLi9kaXItMDUyL2RhdGEuMDA3CitiMTQxZTA3NDZkNzcxYjY0MmI4MDc4OWUyY2VlNzhiNyAgLi9kaXItMDU1L2RhdGEuMDA1CitiMTU0NThiOGQyOGI0ZmYyNzdhYTE5ZDY0NGMzZjAxZSAgLi9kaXItMDc4L2RhdGEuMDA0CitiMTk2OTJiZmNjODg3YTAzMjZlYTBkOWZmNzc3YjcwOCAgLi9kaXItMDgyL2RhdGEuMDA4CitiMWEwZjY3YzIyMjExYjYwZWFhM2FkMDQzMzAwZWMzOSAgLi9kaXItMDc3L2RhdGEuMDA3CitiMWNiMDdkN2Y0YWIwMzE1MjJhMTA5MmNkYTAwOWVhNSAgLi9kaXItMDI0L2RhdGEuMDA5CitiMjI4MzkxZTViNjc0ZjZlMzIwZjQ2YzkyYTIzMWE2ZCAgLi9kaXItMDEzL2RhdGEuMDAxCitiMjMxYjE2OTM4OTIyYjYyYmMzMTNjNGRjNzkxZTg5ZiAgLi9kaXItMDQwL2RhdGEuMDAxCitiMjM1ZTY2N2ZlMDZlMjMzM2QzZDRmNGNmZWIxMWQ4ZSAgLi9kaXItMDYxL2RhdGEuMDA3CitiMjVlNDdiOGU2MDg0YTc3MTA4MmE3OWQyOTY0MTI1ZCAgLi9kaXItMDQyL2RhdGEuMDA4CitiMmE1MDE3ZTkxM2EyNTRiMzNjOGZjNTFhMDMwNDc0NSAgLi9kaXItMDE4L2RhdGEuMDA1CitiMzI5ZGFkNmFkODVjNjVhOTIyMmI4YjI2MWU4NjM2MSAgLi9kaXItMDA4L2RhdGEuMDA4CitiMzNjZDBlMThiNWEyMzg0ZGMwNWE0NmY2OWIwOTA1OSAgLi9kaXItMDA3L2RhdGEuMDAwCitiMzNmMTM2MjRhN2E3Y2ZjNTBmZWYwNDU2ZDc0OTQ3YSAgLi9kaXItMDk3L2RhdGEuMDA1CitiMzY3YTAzNjNiNTc0YTg0NTViODQxY2FkYTA0YWNjZCAgLi9kaXItMDQ3L2RhdGEuMDA1CitiM2M1YWM5YWY0ZDdhMDQzMjUxODI4MDY0NTM5NThiYSAgLi9kaXItMTAzL2RhdGEuMDA1CitiM2RmYzhiMGZiNzYxNjI4N2FmNmY3NzU3MjA3YjZiOCAgLi9kaXItMDMzL2RhdGEuMDA5CitiNDFkMGFmYTRkNTc4MjNlMzRkMTFlNjRiZDY1MzRhNiAgLi9kaXItMDg3L2RhdGEuMDA5CitiNDQ1YjdlNjI0ZTdmMWY3YTViZTY1NDFhM2E5M2E4YSAgLi9kaXItMDQzL2RhdGEuMDA5CitiNDZjZjRhNzY3YTJkMzg5ODAwZGRhMDM3NDkxNzQyNyAgLi9kaXItMDU3L2RhdGEuMDAyCitiNGM2NTE2NjE4MGMxNmU1NDM3ZmJmZTAzYWY0YjVkNCAgLi9kaXItMDE1L2RhdGEuMDA0CitiNGNjZjhkYTE0OTk4Y2JlNzIxYzk5MGRlNDZjOWVkYyAgLi9kaXItMDMyL2RhdGEuMDA4CitiNTRiMzkyYjRjZmY5MmY4MTUxZDU4Y2I5MmU2ODhhMCAgLi9kaXItMDY3L2RhdGEuMDA3CitiNTkzNGNiY2UxNjUxYzEyY2JiNGU2MThlMDkxZjQzNSAgLi9kaXItMTAyL2RhdGEuMDAxCitiNWMxZTU3ZmZhMGNlYjA5NDcxNzBmNjEwMDc1ZjNiMCAgLi9kaXItMDQzL2RhdGEuMDAxCitiNWM4ZjRjYTlkMmNmZjUyNDViODQ3ZTIxYzdkZjA0OSAgLi9kaXItMDUwL2RhdGEuMDAyCitiNjFiZjMxOWM1N2RhNGViNGYxMjFmZDVjNTM1NzYwYyAgLi9kaXItMDE1L2RhdGEuMDA3CitiNjdmYjVlZTdiOTMwNjFhZGU2NDkyOTQ5MjU5MGY1YyAgLi9kaXItMDk3L2RhdGEuMDAzCitiNjkwMDc3ZWJiMjVjMjYwNWVmMGVlMzM3Mjg5NGNlYyAgLi9kaXItMDQ0L2RhdGEuMDAzCitiNmMyMGNlZDlmZmUwZTkxZmJmN2M0ZDcxY2M0NTFiYyAgLi9kaXItMDc1L2RhdGEuMDA3CitiNzUzOGY4ODBkOTFhMDcwMzcyOTBmOTgwMjdlZDMwNiAgLi9kaXItMDQwL2RhdGEuMDA5CitiNzlmMWJkYjViYmI0N2U1ZDk2NWU5MDEzN2RkZjI2ZSAgLi9kaXItMDE1L2RhdGEuMDA2CitiN2I3Y2FkODcyMGQwZjk5ZmRiZDc5ODRjYWFkODgzMSAgLi9kaXItMDYxL2RhdGEuMDA2CitiN2Y1NmM5ZWJhZGNhZThiZDdiMzBlMTRiZGUwYjVkMiAgLi9kaXItMDE0L2RhdGEuMDA1CitiN2Y2ZDExMThlZTkzMmM2NWYxZTVhMTkzMWQ2YzhmZiAgLi9kaXItMDE0L2RhdGEuMDA5CitiODRhYzk2Y2VkYjQ0MmZlMjM1Y2ZmYzhhYTMxMTk5ZiAgLi9kaXItMDE3L2RhdGEuMDEwCitiODhjNTdhYmEyNmY4ZTFjMDg1Y2ZjN2FlMTE4ODhkMCAgLi9kaXItMDczL2RhdGEuMDA1CitiOGJmMTcxZWQ0ZjVmOTA1Y2Y4ZjdkYWI2YTgyYTdkMyAgLi9kaXItMDIxL2RhdGEuMDAyCitiOGMzMzZkZDZlYzdkZjVjYjNmNzBhYzc5ZTE2OTIyMSAgLi9kaXItMTA4L2RhdGEuMDA1CitiOGRlODQ3ZDhhZjgzMjkyMDZiNTE2ZjgyNTk0NTQzOSAgLi9kaXItMTA3L2RhdGEuMDA4CitiOTEwNTMwNThmNWNiODY4YTY1ZWIwMGZmYzhjODVkYiAgLi9kaXItMDE4L2RhdGEuMDA3CitiOTgzZWM1ZTI2OTZkZWM0MmU4ODZlNGFhZjI0YzJkZCAgLi9kaXItMDQxL2RhdGEuMDAxCitiYTE4ZTZhZjQ4MDc5OWNiNjFhY2YwZTM5ODQ0MTNkOSAgLi9kaXItMDIzL2RhdGEuMDAxCitiYTFjODZiNGM3NTE5ZTk5ODdmYzYyZTA0ZTE0YjkzZiAgLi9kaXItMTAwL2RhdGEuMDA5CitiYTNkMzczNWRiNzUwMWJiNDVhMWJjMzdhMWM5MGQ5MSAgLi9kaXItMDM5L2RhdGEuMDA2CitiYTVkZmY0NDU4ZTQzOGEzN2Y3MDIwYTY5OTdjYjNlYiAgLi9kaXItMTAyL2RhdGEuMDAyCitiYTcxZWE2Njg4NTMzOWVmYzUwNGY1ODFmYTlkMDVmYSAgLi9kaXItMDIxL2RhdGEuMDEwCitiYWI3MzQwMjMwY2FmZmQ5YWJlNDVhMjEzY2M3Yzk0ZCAgLi9kaXItMDQ0L2RhdGEuMDA2CitiYWNmNzU5MDk5ZDNjZTMzY2RlMTA0ZjBmZDA5NDA0YiAgLi9kaXItMTA3L2RhdGEuMDA2CitiYjNkYzlkOTJlN2MxMzE5MTUwMmY5Y2EyZDlhMmE0NiAgLi9kaXItMDM0L2RhdGEuMDA2CitiYmY2MmRiM2UyNzc4OTNhZTcwNWI5NWRmMDU3YzY3NiAgLi9kaXItMDQ2L2RhdGEuMDAxCitiYzlhMTVlZTUzNTcxYmUwNGNhMTk5Mjc1NGQ0MDdiYyAgLi9kaXItMDM3L2RhdGEuMDAxCitiY2FkZDYzZTAwZmFkNGI3ZjA5ZjMyY2Y1MGM2MDZmOCAgLi9kaXItMDc4L2RhdGEuMDEwCitiY2U0M2Y0YmMzMmUzYjQzMWNlODhlNzE0ZWJkZTRlNyAgLi9kaXItMDc4L2RhdGEuMDA3CitiZDU3Y2EyNTUyYTM1MTk2NDIyZWIyNTRkMGI2Njg5YiAgLi9kaXItMDEwL2RhdGEuMDA3CitiZDZkOTY2MWVmNDRlZTk0ZjNhNTc2Nzk0YmEyZTk3MiAgLi9kaXItMDgzL2RhdGEuMDAwCitiZDg1ZThjOGMwZmQ0ZmZkMGE4YWJkZDM4Njc1ZTRhNyAgLi9kaXItMDYxL2RhdGEuMDAyCitiZDhlOWMzOTJiYzc2YzNkMDRjZTIzYTM3NmNmNzk0MSAgLi9kaXItMTA0L2RhdGEuMDEwCitiZGE4ZDUzYzQ1YzUyMWM1YTdmY2NjZjE5ZTBmZDRkMiAgLi9kaXItMDUyL2RhdGEuMDA2CitiZGE5NDZkNzI5MzA4OWY0ODdkYmNmNjQ1NjRiN2Q3OSAgLi9kaXItMDUxL2RhdGEuMDAzCitiZGQyODUwOTJmYWY1YTE5YzlhOGIzZmJkMTE2MmQ2NCAgLi9kaXItMTAxL2RhdGEuMDAwCitiZGYzOWI4OTM1NjdiM2E2MzI5YTM2ZGFjNDhiNTE2YyAgLi9kaXItMDk5L2RhdGEuMDA1CitiZGY1NmFkZTM0NjI4ZDlhMmU3NTdiMmJjNmViMGUwYyAgLi9kaXItMDEzL2RhdGEuMDA3CitiZTUwN2E4MzBkYzA5YjhjNmQ4MDJkNDU2NDdlZGI1NSAgLi9kaXItMTA0L2RhdGEuMDAyCitiZjEwNmE2MGVlZDE5NjNjZDNlNTg0NjFjMzhjZGE4NyAgLi9kaXItMDM0L2RhdGEuMDEwCitiZjIxZTQ5M2Q1MzYzODVjNDVkZjAzN2IyZTljZGI0NSAgLi9kaXItMDg5L2RhdGEuMDAwCitiZmIwZjRiYTlhODU4OGJlYzNjZWY0ZWRlNmEzYmI1NyAgLi9kaXItMTA2L2RhdGEuMDA5CitiZmRhODY4Mjc3YTZjNmMwZTI1Nzk1YWQ3MzMxNjA3NCAgLi9kaXItMDMyL2RhdGEuMDA2CitiZmRhYzJjOTg4ZGUzOWNlYzk1YTU5ZjhhMDkwNjM2ZCAgLi9kaXItMDkyL2RhdGEuMDA5CitjMDFiZGU0ZTlmZDc3MzNiNmE5MTUyODRhYzEyYzRlOCAgLi9kaXItMTA4L2RhdGEuMDA3CitjMDU2ZmY3MmE5YjE4NzMzMmRjYTMwMGZiYjgxMjI2ZSAgLi9kaXItMDI2L2RhdGEuMDAzCitjMGIyMTgyZGUxOWMxNjk1YjcxMjc3ZDRmYmZhY2MxOCAgLi9kaXItMDUyL2RhdGEuMDAxCitjMGI5NGE1MzgxNzZhYTY5ODZjYWZhMmUyZmQ4ZmU4YyAgLi9kaXItMDQ1L2RhdGEuMDA0CitjMGUxNmE5NjAxNGExMzk5NWU1MzdlOGUzOWIwMTU1ZSAgLi9kaXItMDUyL2RhdGEuMDAyCitjMWNmMTRlMzgxMmE4Yjk5MzM5MTFkYTY3OWM0OWY4ZiAgLi9kaXItMDcyL2RhdGEuMDA3CitjMWVmMGVjMWZlM2NjNjRkNzA1ZDU0OTliNmVlNjIyZSAgLi9kaXItMTEwL2RhdGEuMDAxCitjMjEyOTEyMGJjOTY3MDNkMjg5MjhkNTY3YmM1ZGY1OCAgLi9kaXItMDI1L2RhdGEuMDA1CitjMjQyOWRiY2Y0OTI5ZWY4ODZiNjEyMTQ3ZThlZmJiMyAgLi9kaXItMDQ4L2RhdGEuMDA4CitjMjgxZjlhNDJiNTFlYTdhZjkzZTVhODhjMTIxNjEyMCAgLi9kaXItMDg0L2RhdGEuMDA4CitjMmMyYWJiOWU4NzBkMTQ0ZGRlMDVlYzZkN2E5NzlkYSAgLi9kaXItMDI4L2RhdGEuMDAzCitjMmYxODQ2MDI1MjkzYzI1NjBlZjQ0YTIyODdjYTk0OCAgLi9kaXItMDA3L2RhdGEuMDAyCitjMmY2ZGEwOGUzZTZjMDRmYTA0ZGJlNDdkOWQ5MWVhZCAgLi9kaXItMDg1L2RhdGEuMDAxCitjMzUzNzNmYjk4ODhjMzAyNzJkMmY1NzRjMGE5NDIzYiAgLi9kaXItMDc5L2RhdGEuMDEwCitjMzcyZTM1MTc3YWEzMjg2Y2I1NTA4NTkwYjE5MTMwMiAgLi9kaXItMDUxL2RhdGEuMDA1CitjM2NjOTBkZDMzYjZlNWVkMTAwODE0NTZmMDcwYzQ0NyAgLi9kaXItMDg1L2RhdGEuMDAyCitjNDcwMTFmOTQ4OGE4YjhiNTUxMGFhOTZlZjExZmU1NyAgLi9kaXItMDM5L2RhdGEuMDA1CitjNDk1OGZiMDllZmYwZGQ1MThiOGE2OTk3YzZiNzFmYyAgLi9kaXItMDE3L2RhdGEuMDA5CitjNTM4NDkyNDlmYWQwZGVmZGY4MzdiYmRkZmExNTQ4OSAgLi9kaXItMDc3L2RhdGEuMDAwCitjNTY3NzU2OTBiOTYxYmQwNDI1ZGZkM2Q4M2RjNGZhNyAgLi9kaXItMDY2L2RhdGEuMDAwCitjNTgwNDMxMTIxNTA3OGFhY2RhODk1OTFjNDBiYjRjMiAgLi9kaXItMDA1L2RhdGEuMDAxCitjNWIzMjI3YWE1NDg0OTE5ZGNhMGRhOTQ3MzkwNDE5YSAgLi9kaXItMDk2L2RhdGEuMDAwCitjNWNhZjg1NzUwMzhjZWNhOTFiMTQwZDlkMGUzYjI0ZSAgLi9kaXItMDY5L2RhdGEuMDA4CitjNjFmY2EzZTA1ZjlhODU5NmZmZWQzZjE1MTJjOGZkOSAgLi9kaXItMDI0L2RhdGEuMDAxCitjNjcyZDdiMTY2OTNjMTg0OGZiMjMzMWZkNDgzYmE1ZCAgLi9kaXItMDY3L2RhdGEuMDEwCitjNmM2NGUxYTMxYjY1OTNmMmUzNTc5OGNkZmI5YTY3ZSAgLi9kaXItMTAzL2RhdGEuMDA5CitjNmU3NzQxZjNkNDk5Y2I1OTJlODRlZTUwMWFlN2MxMiAgLi9kaXItMDU2L2RhdGEuMDAwCitjNzM0ZjQ1MGVkMjBlMGU2ZWJlN2U1MmViZWI0MGMyNyAgLi9kaXItMDk1L2RhdGEuMDA3CitjNzY1YWNkMGZkZGZkZDhkZDI1YzFlM2I1NzhhYjhkMiAgLi9kaXItMDIxL2RhdGEuMDA1CitjNzc4MzFjY2ZkMmExYzE4NDJjNDc1ZjIzOTVlNTg2YyAgLi9kaXItMDA0L2RhdGEuMDEwCitjNzhiMzJhMjRmMmZmYWE3YTY0YTkxMDg3MWM3YzJkYSAgLi9kaXItMDg2L2RhdGEuMDA1CitjN2FhOWVjOGY0YTkxZDk5M2ViYzM1N2Y3YzRkNjI0YyAgLi9kaXItMDEyL2RhdGEuMDAxCitjN2I2Mjc2ZGQ5YzUzYWJjNzgyNGIxNzIzNzdmYTU2NiAgLi9kaXItMDczL2RhdGEuMDA4CitjN2JkN2Y4MWI4MWYzYTNkZmZjOWFhNmQ4OTAzYTVkNCAgLi9kaXItMDIwL2RhdGEuMDA0CitjN2QzMDg4ZGJiNDcwYjFmOGU2NTk3OTVlOWFlMDAxYSAgLi9kaXItMDcyL2RhdGEuMDA0CitjN2RiMzBlNDkwMTBhY2Q0NDFjYTA3MWIxNTllODk1MiAgLi9kaXItMDkzL2RhdGEuMDA1CitjODdhNzA2NjVlNDkyOTg1NThjNTRlN2IxMTE1MGJkYyAgLi9kaXItMDczL2RhdGEuMDA3CitjOGM1Mjc3NmE4ZTliM2Y0M2I1NWMxMTJkZTRiMzYxNSAgLi9kaXItMDU1L2RhdGEuMDAxCitjOTBkZDdhZDUzMDIyZTJlYzc3N2I0MDFhMjA1Njc5NCAgLi9kaXItMDMyL2RhdGEuMDA5CitjOTE2NzlkOWNjZWM2MGVjNThmZWM2ZTVlY2I3MWNkZSAgLi9kaXItMDAxL2RhdGEuMDA0CitjOTI4M2QxZGI2MTk5NDM3MDhhNThhMGQ0ZTA3MjQ5MCAgLi9kaXItMDk4L2RhdGEuMDA4CitjOTcxMDBlYWEwZDViNTBjMjk4NmFkMmQ3YTRhYjRjNiAgLi9kaXItMTA1L2RhdGEuMDAyCitjOWNhOTNjOGI5MWUyM2M3ZDg4NDk4NTI2MWM3MjdiZCAgLi9kaXItMDg3L2RhdGEuMDAzCitjOWY2MTNlMzYwNTlmNmEyZWJiMjFkY2I1YWMyZTU0NCAgLi9kaXItMDk4L2RhdGEuMDA1CitjOWZiN2QwOGI3NjI4NmY3MjZkMzQ5OTMzNDUzY2RhYSAgLi9kaXItMTAyL2RhdGEuMDAwCitjYTAyNmUxZmNlNzM0MmVlYThkNTliNWVmMTVhZTFiOSAgLi9kaXItMDE4L2RhdGEuMDAyCitjYTFiNjI0Y2ZlMDM5ODQ0ODU2Nzg2MmFjYjQ5NjcyMSAgLi9kaXItMDAyL2RhdGEuMDA2CitjYTVkZDg5NGEwMDVjMTM3MDJlOTY2ZDA0YTU4NjU3YSAgLi9kaXItMDc0L2RhdGEuMDA3CitjYTY5MGRkZjFkOTQ4OGQzYWFlNWRlNjY3YjQ2ZTNjNiAgLi9kaXItMDcxL2RhdGEuMDA5CitjYWJiMjk0MGZhZmU3ZGRmMjY0MzgzMGY3NTQyY2M0ZiAgLi9kaXItMDcwL2RhdGEuMDA4CitjYWNjOThjZWE3NTI1YmU2NzBmYmEwNjJlOTIxMzg2ZiAgLi9kaXItMDI3L2RhdGEuMDA5CitjYWY5MzA3MzFhMjEyNDUyMGJlNzFmN2JkYmY1MTQ3ZiAgLi9kaXItMDMwL2RhdGEuMDA1CitjYjMwZmEzZDIyYzMyZmY1YjQ2NmEyMTZkN2U0MTc0YyAgLi9kaXItMDQxL2RhdGEuMDA3CitjYjM1M2NjOTAwYTEwYzAwMjBmY2M0MGQyMGZiNzcyYyAgLi9kaXItMDUwL2RhdGEuMDAzCitjYmE4MTkxMTE4ZTE4MjNiYjM4ZjgwMzIxYjk4ZDdhNSAgLi9kaXItMDMyL2RhdGEuMDA1CitjYmY2ODIwMjc0MWM5MmE2YTFhMTM0NWJhNDBkYmMxYyAgLi9kaXItMDE5L2RhdGEuMDA0CitjYmY5NjY3YWMxODFmNTEwMGNmM2Q3ZDE3OWYwN2MyNiAgLi9kaXItMDE0L2RhdGEuMDEwCitjYmZlMjRkN2YxYWVmMjA3NDZhZGRhMDllZGZhMGIxMiAgLi9kaXItMDcyL2RhdGEuMDA4CitjYzI1NjdhMjM1MGZlZTRjNTE4N2EwMGJjMDYxNWQ1ZSAgLi9kaXItMDU0L2RhdGEuMDA0CitjYzc5ODYxNWMwYjAyZDUzZjY4MjcyNDBlZTY1NGY5OCAgLi9kaXItMDY0L2RhdGEuMDEwCitjYzgzZDViNzhhYTM0ZmYzZDgyOTU3YzdkNjllZTE2YSAgLi9kaXItMDEzL2RhdGEuMDAzCitjY2E1YzBiZGQ2ZDBlYjE4YjdjZGVjMmJjYmI1OTc1NCAgLi9kaXItMDc2L2RhdGEuMDA5CitjZDZiZTRiMWIyNWRlOWJmZjY2YWQ4MTkxZWFjN2Q0YyAgLi9kaXItMDQyL2RhdGEuMDA0CitjZGNkNTI0MGU3OGMxMzM1NzI4MTE1M2M0YTQxMzk1ZSAgLi9kaXItMDg3L2RhdGEuMDA0CitjZTBkZWM2MTJkYjgwYTkyYTE3NmNlMTkwYjE5YTc1NCAgLi9kaXItMDcwL2RhdGEuMDAxCitjZTMzOTJjZDRkODFkZTAwMWZiMzk3YmExNjU1YzBjOCAgLi9kaXItMDEwL2RhdGEuMDA4CitjZTU4YTBlNTBkMTZkNzVjNDVjZTk0NDdiYzg2OGI0NSAgLi9kaXItMDE4L2RhdGEuMDA5CitjZjVmYjhjYmZlNzIzNTUyMWZkNzg3OGQ5NjRiYWRhZiAgLi9kaXItMDIyL2RhdGEuMDA0CitjZmJlMGY2OWIzNWJhYTkxMzNiNjM1NWNkMmJkNmQwOCAgLi9kaXItMDk0L2RhdGEuMDA4CitjZmMwMTc5OTMzMjU0OTUyMmE4MjMwNzcxNDdhZGZmMCAgLi9kaXItMDU2L2RhdGEuMDAzCitjZmRlNjRjMzYyODM1YTcyYzhjZWRmZTY0NzdiZGE1NiAgLi9kaXItMDc5L2RhdGEuMDA4CitjZmY2ZjI5YzE1MzYyOTFkNTQ0OThmYjUzOWM2NjgxZiAgLi9kaXItMDAyL2RhdGEuMDAyCitkMTE5MjIzZTBkYTA3ZjAwNTAxMmJmNmZlZjQxNWI1YyAgLi9kaXItMDgyL2RhdGEuMDA3CitkMTZkYmI0MGFkMDRjZmUwOTA0OGRmYTU2OTc3Y2EzYyAgLi9kaXItMDQ0L2RhdGEuMDEwCitkMWRiZmRkZjIwOWY2YTA3MGJjZjQ4MzUzYWJkYmQ4YiAgLi9kaXItMDQwL2RhdGEuMDAzCitkMWU1ODA2YmRjMDZhZTIyMzFiNmY5YjFhM2ZhMWYwYyAgLi9kaXItMDAxL2RhdGEuMDAxCitkMjIyOWM1YTYxYzBjY2Y3YjEzOTcxNDQ4NDIzMWE4NCAgLi9kaXItMDAxL2RhdGEuMDA5CitkMjQ0MjA0YjBlNjNkN2MzM2IyZGQzZTVkMjIzNzc0OCAgLi9kaXItMDM2L2RhdGEuMDA1CitkMjUzZDA5ZWJlNmRmOTZiODQ1NjViM2JmMjZlOGJiYyAgLi9kaXItMDMwL2RhdGEuMDAyCitkMjcwM2RmY2IyMjhhOTg4NWQ1OGViNmJmOGM0MzE4YSAgLi9kaXItMDg4L2RhdGEuMDAyCitkMjdjNzg3MTNmMjUyZTIzOTNlYTk0MmFiY2Y0YTRhYyAgLi9kaXItMDQ4L2RhdGEuMDA3CitkMmI2ZTFkYjdhYjg4MjMzMDE1ZTdkOGZhNWE2YmI4MSAgLi9kaXItMDIxL2RhdGEuMDA5CitkMmJlODE0ZDJhZTVmMzM3MjNjYzg3OTQ2MTQ0ODNmYiAgLi9kaXItMDA4L2RhdGEuMDA1CitkMmJmN2MyMzQ2NWI5NDU1YTNjYTI3YjUwY2MxMjNmZiAgLi9kaXItMDczL2RhdGEuMDAyCitkMmMxYjJiNmNhMTZmNGU0ZmY5NzUwOTI2YWVmYWNkNCAgLi9kaXItMDMwL2RhdGEuMDEwCitkMzQzNjJjMGI4NmE5MzRlODQ4NDc4MDY3NzYwYzg2MyAgLi9kaXItMDIxL2RhdGEuMDA4CitkMzQ3OTk5MzFlZWVmYTkxNDcyN2UwODIyYzY2N2ZjNSAgLi9kaXItMDMxL2RhdGEuMDA4CitkMzVhNjJlZjk5NTcwYzVlZjViYjYyOTFiYmIzNmNjOSAgLi9kaXItMTAxL2RhdGEuMDAzCitkMzlmZGJiZmNkMWUxNWZkYTE0Njk3NzIyNDEyNmY4YiAgLi9kaXItMDExL2RhdGEuMDA5CitkM2ViMGY0YmIzYjA0YjQxMjkwN2U0NTNjODJiYjg5ZiAgLi9kaXItMDM1L2RhdGEuMDA3CitkNDBmMGYzMzNmYzJmMDJhNDI2NmQzNjM4OTdmMzMzNCAgLi9kaXItMDQ1L2RhdGEuMDA5CitkNDRmZmY2ZGUyNDM4MmYxNGIwNDI2MTAxZTczNzM1NCAgLi9kaXItMTEwL2RhdGEuMDA4CitkNDYwNjg2ZDVmMzc0MDE3NDUyZmU2MmUzZjk1YjRkNCAgLi9kaXItMTA1L2RhdGEuMDA4CitkNDYxY2M4NGViMDNjYzZkYjc4ZTA3MjA2NDhkMTVlNCAgLi9kaXItMDYxL2RhdGEuMDAzCitkNDYzMzc5ZDE4MTEyNDFkYzU2YTRjY2M5YmY2OGRmYyAgLi9kaXItMDc2L2RhdGEuMDA1CitkNDZjOGM3YjdjMGI1NGViZDA0NmM2MjA5ZDFmOGFmYSAgLi9kaXItMDU0L2RhdGEuMDAxCitkNGQwZmFlMzU0YWY2Y2RjYzMyMDJjOWFhOGZmMmU5YSAgLi9kaXItMDE5L2RhdGEuMDAyCitkNGYzMDQwY2FiYjVmYmNlODU1MjhlMjVmMjBjZGVhYiAgLi9kaXItMDYxL2RhdGEuMDA4CitkNTFiZTZjODI0ZDA1M2Q0ZTc1NzIwZDZjOGY1MTVmZiAgLi9kaXItMDAxL2RhdGEuMDAyCitkNTQwZWY3OGFjODI5NTU2Zjk5MzNkZDY1NzlkYjdhZSAgLi9kaXItMDkxL2RhdGEuMDAzCitkNTRmMTg4MjQwYmE4M2RmMDkzMmRmZmJiMzYwMDdmYiAgLi9kaXItMDIxL2RhdGEuMDA3CitkNWI1MmM3YzA1NGEyN2JhMzQyYmM3ZTUzYmZlMTMxZSAgLi9kaXItMDgxL2RhdGEuMDA5CitkNWM3Y2Q4MzVmZjE5Y2I3YzcwZTE3ZDMxMzQyNjNiZiAgLi9kaXItMDc0L2RhdGEuMDA2CitkNWZiMzIwNGQ3MGQ5MDZhNzRiNzYwOTk5ZTViMjY2YyAgLi9kaXItMDQyL2RhdGEuMDAzCitkNjc0OTNlZmM3ZjEwOTEwZGFhYjE0MDE2NTQ2YTQ3YiAgLi9kaXItMDU5L2RhdGEuMDAwCitkNjhlZDE1NTNkMjY2MGY1MDk2MTJkOGRkZDhiY2Q2MiAgLi9kaXItMDU2L2RhdGEuMDA0CitkNmYwOTdjODNlNjI4NzdiOTg5NTFiZWFkMDI4MmRmZiAgLi9kaXItMDQwL2RhdGEuMDA1CitkNmZmYzUxM2NlZDdiMGMxMDA1ZGQxMWYxMDkyNGI4OCAgLi9kaXItMDU1L2RhdGEuMDA4CitkN2E2OTMxOTI3MmMyNmIyNDYzMWNjMGFiYjE1MjFlYiAgLi9kaXItMDUzL2RhdGEuMDA1CitkN2MyNDQ3Yzc5ZjU4NGM1YTRiMmVjNTI1YzU4NjEyOSAgLi9kaXItMDMxL2RhdGEuMDAyCitkN2U1NTIwNTdiNDIwZGFiZjAyMmFhNmI4MjY3OTQ2YSAgLi9kaXItMDMwL2RhdGEuMDA2CitkODcyNjBiZDdiZjRhYTZlYzU1NmQ3N2JmOTU4YTM2ZCAgLi9kaXItMDYwL2RhdGEuMDAxCitkODdmNTNmYTBmYWQ5YWY4MjE4YTI3ZmExYjY5YzA3MCAgLi9kaXItMDgwL2RhdGEuMDAyCitkOGYzNzlkZjFmZWJlNzdjODY5OTAwMTc3NDVlZGViYyAgLi9kaXItMDM0L2RhdGEuMDA1CitkOTQ1ZDVhMDcwYjk5NTE2MjI5M2YxYzc3ZmYxNTUyNyAgLi9kaXItMDE4L2RhdGEuMDEwCitkOWVkNDllOTlmNjM1ODFjY2FmZTkxNWI3NmYzZjk2ZCAgLi9kaXItMTAyL2RhdGEuMDA2CitkOWZjYTM5MjJmYTBlMDFmZDUyN2Y4ZGI2OTU4OTQyNSAgLi9kaXItMDg4L2RhdGEuMDAxCitkYTA5ZGZlNGNiOWJkMDZjMzc0NzMyNTRlODU3MTM5YyAgLi9kaXItMDc2L2RhdGEuMDAzCitkYTE4YzkzNTFiY2ViN2YzNDI3MThkNTBmYjA2MjU0NCAgLi9kaXItMDA2L2RhdGEuMDAzCitkYTI0N2ZjNmM5ZTFmODQwZDdlZjU4ZTg2YmJlZDIyMCAgLi9kaXItMDE5L2RhdGEuMDAwCitkYTJlNGZkODVhNDliYTZiMGM3NjU5YzdhYmY5OWFkMSAgLi9kaXItMDg5L2RhdGEuMDA1CitkYTU3YmI0NDExNjBlNjU1NWIzMGM3NTkxNTI4OGJmNSAgLi9kaXItMDk5L2RhdGEuMDA0CitkYTkyMTg0NTNkNGM5OTY3MmU3MDJmMGZkN2I5YzBjMCAgLi9kaXItMDE0L2RhdGEuMDA0CitkYWIyYmVjNzc1MTQwZTYyMDNkYWE2ZWMxMjJmMDQ5ZSAgLi9kaXItMDcxL2RhdGEuMDAzCitkYWI5OWQzZDlkZmM5ZDVjOWYwZDUyNTcxNjE1MzU2MiAgLi9kaXItMDc1L2RhdGEuMDAzCitkYWRjNmM0MWY0MWIzZmYyODcwNmRmNjc1ZWFhOTZiNSAgLi9kaXItMDA0L2RhdGEuMDAwCitkYWZmMmQ2YWYwOTcxOGU0ODI1YjIyYjk4ZjAwYjdlOSAgLi9kaXItMDAzL2RhdGEuMDAyCitkYWZmNjNlOWQxYWUzNzM0ZDA2OWQwZGMwMzA1YmU3MiAgLi9kaXItMTA5L2RhdGEuMDA2CitkYjIxMGI4OWIxMDA0ZjAzMWVhZGQ4NDdlNWEwNjQ1YiAgLi9kaXItMDQzL2RhdGEuMDA4CitkYjJiMDE1ODM4OGVlMjUxOTcwYzY0NTRjOGNkOWE5NyAgLi9kaXItMDgzL2RhdGEuMDAyCitkYjQ5YTEzYmQ3ZTIzMjAyMTBkZjNhMDA2ZjdlOWY2ZiAgLi9kaXItMDQzL2RhdGEuMDAwCitkYmRiYTk2MDdmMmQ3NzdlMTBkZGM2N2Y1MDk1MGUyZSAgLi9kaXItMDU3L2RhdGEuMDA1CitkYzA5ZThhNDFkYjIxNGQyNDgxNDhlZmJmOTYwNWY5NSAgLi9kaXItMDgxL2RhdGEuMDA0CitkYzBhNzAwNzY3NTA0MWIzMDMxN2FmYWY0NGVlNzA4ZSAgLi9kaXItMDY0L2RhdGEuMDAxCitkYzE1M2FlNzE0NTMyZTJkMzRmMWI3ZWEwNDRiNmZmOSAgLi9kaXItMDk2L2RhdGEuMDA4CitkYzFmNGRhNzg1NzMzYmJiMjg5N2Q5NGNlNzhiYzdiZiAgLi9kaXItMDcxL2RhdGEuMDA0CitkYzJmMjJkYWUzYTNkMzRhMTg5Mjk1MDZjZmM2ZjI3NyAgLi9kaXItMDI5L2RhdGEuMDAzCitkYzQwZjlhNTdkZmFjZDIxZDYwMjIxODg5OGFiOTNlNyAgLi9kaXItMDU4L2RhdGEuMDA0CitkYzk4NzU4YzZhOWIzOWE2YTNkZWFlMjk4ZDU3OWM0ZSAgLi9kaXItMDQyL2RhdGEuMDA5CitkY2NkNTYyYTRhOTg2NTNhM2ZlOTZkNzc3NDFkZGJlYiAgLi9kaXItMTA0L2RhdGEuMDAwCitkY2U3ZTdjMjNiNWNiYTViOTZiMTFkNTMwMGUwMGFmZSAgLi9kaXItMDU2L2RhdGEuMDEwCitkZDAwNjA1MmEyODU1MmZhMDY5YWJmNTA0MzQ2MjU3MCAgLi9kaXItMDQ5L2RhdGEuMDA5CitkZDA3OWJkMDUwZGQ3YjgzZmY2YThlMmZiNTc3M2VkNCAgLi9kaXItMDQ5L2RhdGEuMDEwCitkZDg5OGE2YWI4NzM5YzBjZjE2ZGQ3MjAzNGJjNzY2OCAgLi9kaXItMDQ2L2RhdGEuMDA3CitkZDhjMjMzYjk5MmRhNmJhYmJjYmM5Y2U3ODc5MDUxYiAgLi9kaXItMDk3L2RhdGEuMDA3CitkZDk4MTMwNDg5N2JjMzMwZjY5MGQyMDQwYWExZTUzZiAgLi9kaXItMDQ3L2RhdGEuMDA5CitkZGNkN2VhMTNjYWU1NzQ5ODA4OGMxOTk0NjE5YjNiZSAgLi9kaXItMDIwL2RhdGEuMDAxCitkZTdmZTI3NGU3NzBiNGRhYmRlYjg2N2ZhOTJhMTJiYyAgLi9kaXItMTA5L2RhdGEuMDAyCitkZThhNzBlZWUzZTUwOGE3MjNkM2I1ZDJhOTkwMTMxNiAgLi9kaXItMDU1L2RhdGEuMDA0CitkZWI5NjBiMTI2ODcwNWE0NzJlM2I0NjE4MWNjZWJmZSAgLi9kaXItMDQyL2RhdGEuMDEwCitkZWJmMDgxYjY4MjRmMDdjNWY2YzIyZGI2YmMxNTJhNiAgLi9kaXItMDg2L2RhdGEuMDAyCitlMDAzYWFlY2I3N2RmOTFmMDQ5OTBjZDQ1ZWZmMmRiYyAgLi9kaXItMDE4L2RhdGEuMDA2CitlMDU5NmNlMWY4MzMxOTcwNTJiZjcyZmE0ZTQ1ZWMyOCAgLi9kaXItMDc0L2RhdGEuMDAzCitlMDZlNDVlMzY5ZGMyZmE5OGIxOGMzNTI2OGVmODFjNyAgLi9kaXItMDM3L2RhdGEuMDEwCitlMGMyZjJkMzc1YjNmYThjMGM0N2EwMjliYjE4Y2MzOSAgLi9kaXItMDA5L2RhdGEuMDAwCitlMGQ0ODI0N2ZjZmFhODM5MzA1NTVlZGY4YTY2NDdkZiAgLi9kaXItMDQxL2RhdGEuMDA0CitlMGZlMTYzMDNkOTllYzIxZTZkZDEzYWMyN2QyYjVmYSAgLi9kaXItMDgzL2RhdGEuMDA0CitlMTMwMDc1NDBiZmQwYmNjZGNlZGEyZjgyNGFlMzIzNiAgLi9kaXItMDkyL2RhdGEuMDEwCitlMTMxYTgzZDdiNzA2MTA0YjgwMGJjYmE3ZTg5YTlmMCAgLi9kaXItMDA5L2RhdGEuMDA4CitlMTY5NzkwMWZiNDRlYmNjZjQzOGZiMDU2YzFjYmIwMyAgLi9kaXItMDA3L2RhdGEuMDAzCitlMWJlMTVjYWQ5MGI2NTExNGFmZjgwZTBmOTIyZTk4OCAgLi9kaXItMDM0L2RhdGEuMDA4CitlMmUzNDAyN2FmZDQzMWFmMmI1ZWYwYmM4MTVhMTYyMyAgLi9kaXItMTAwL2RhdGEuMDAyCitlMzIxNzRkZTY0ZDg3MWI0N2IzOGFiODc0YWE1MGEzOSAgLi9kaXItMTAyL2RhdGEuMDA5CitlMzNkY2M4ZDdmZmQxZTBmY2NmYjcxYzY3MTVmNmU1NiAgLi9kaXItMDQ5L2RhdGEuMDA3CitlMzgyYTQ1ZGYzMDI0YWQ5NzU2M2Y5YzEzYTE5NTE4MSAgLi9kaXItMTA1L2RhdGEuMDA1CitlM2ExMDQxOTBkMWM0NjFmZmRhYzQ2MmQ2NmRlZTdhZCAgLi9kaXItMDkwL2RhdGEuMDEwCitlNDVjNjc1MmFiMDY3NjAyYTdlOWE3MWI5ZjkxMDVlMyAgLi9kaXItMDQ1L2RhdGEuMDAzCitlNDkyZDQ2ODM2NDg3MjE4N2Q1MDAyMWFhNDkwYzM2NyAgLi9kaXItMDkyL2RhdGEuMDA3CitlNDlmZjViOTBlN2U3NzA0ZDVjODI5YzQxYTg1OWM4NiAgLi9kaXItMDQ3L2RhdGEuMDAxCitlNGEwNzU2ZTNlOTJhYzZiMjY2YzRiMjZkZDQzZDI3ZSAgLi9kaXItMDY0L2RhdGEuMDA4CitlNGEwZGJiOGVkMDAyMDhlOWE0ZDI5M2QxYzI1OTk4OSAgLi9kaXItMTA1L2RhdGEuMDAwCitlNGU1ZTViMjY0MmQzMjJlMWI5NTM5YmIwMjFlMTIyOCAgLi9kaXItMDY0L2RhdGEuMDA5CitlNGU5NDQ3Y2RkM2VlNmY0YTc1M2E5ZmEzYmMxODIzZiAgLi9kaXItMDM3L2RhdGEuMDA0CitlNWMyMWEyNjE0Nzc1ZWJiNzk4NzUyZTRkYmJhN2Y1MiAgLi9kaXItMTA3L2RhdGEuMDAxCitlNWQ4N2QyNWI4ZmRjZTZkNmYzMGI1MjIzMDc2MTg4NCAgLi9kaXItMDcwL2RhdGEuMDA5CitlNWYyNzgzODk2YTg5YmFlZWYwYzVmNjhkMGY0NzM4MiAgLi9kaXItMTEwL2RhdGEuMDA3CitlNmI3NTI4NGNjNmJlNWI4MGM1N2RjNjEzMzczZWVjNSAgLi9kaXItMDg2L2RhdGEuMDAwCitlNmVlY2Y4YTcyN2Y0ZWU2ODUyZTJmNjJmYjk0MWI3MCAgLi9kaXItMDM5L2RhdGEuMDAyCitlNzA2OGY1OTE4YjRjZTUyMzQ0ODA4ZjY4YWQwYTA4NSAgLi9kaXItMDAyL2RhdGEuMDA0CitlNzZkMTU2YzgxODI5ZTg0ZmU2Njg4MjY2ZmI1MmUzNyAgLi9kaXItMDQ4L2RhdGEuMDA0CitlNzc2MTI2YzM4ZjA3NWQ0ZDJkM2VhNWU4MWUzNmUyOCAgLi9kaXItMDk0L2RhdGEuMDA1CitlNzgzY2IwNTYyYTU5MTc5M2Y4MTdhNjU5ZTcwODQ3MCAgLi9kaXItMDcwL2RhdGEuMDAzCitlN2JkOTA2ZmNlNjJiMTE2ZjkwODhiNTg3MzdiMzJjOSAgLi9kaXItMDkxL2RhdGEuMDA2CitlN2M3MTBmZTk0NzU0ZjkwZmI2NGY5ZTdlODkzNTFmYyAgLi9kaXItMDY5L2RhdGEuMDEwCitlODFlZmYyOWI3NzI5NjU2Y2YyZTA2ZWM0YTYwNDE4NSAgLi9kaXItMDQ4L2RhdGEuMDEwCitlODI2MjcwNjdjNWMxNTk3MDU4MGFjZjU5MzliZTIxNiAgLi9kaXItMDMwL2RhdGEuMDAwCitlODQ1NTM3YzE5NzdmNjYwMDRjMDc5YmViOWFmNWQ3NCAgLi9kaXItMDY3L2RhdGEuMDAyCitlODY0OWEzYzY2MDBlMzYyNGY2ZjJjMWFiMzZiZDVmYyAgLi9kaXItMDM2L2RhdGEuMDA5CitlODgyODkzMDBiMmYyZGJjY2E0YzY5Yjk2YWJiMzFlMyAgLi9kaXItMDYwL2RhdGEuMDA2CitlOTJmN2YxYjBhMDdhYzYwYjA1Nzg2ZDU3MjU5NjdhZSAgLi9kaXItMDA1L2RhdGEuMDAzCitlOWQ2MTg4NWUwYmJlMTM0MWE3Nzg5ZWNiYTEyN2FiMyAgLi9kaXItMDIwL2RhdGEuMDAzCitlOWQ5ZmIxMjVkYTZmNzI5NmMwZWU2OTIzNWZkYzU1ZCAgLi9kaXItMDQwL2RhdGEuMDA2CitlOWViZGNjN2ZjNWNlM2VjNDBlYzJjMjJiNTZhMGM1ZSAgLi9kaXItMDU3L2RhdGEuMDAzCitlOWVlZWFjY2Q3YzI2MGY2MTAyMjZkMTk5ZGNjMTEzMyAgLi9kaXItMDAxL2RhdGEuMDAzCitlOWZlMmRkNDM3YzcxMTgwNTU4YzAwNjY0ZDk2OTM2ZSAgLi9kaXItMDU3L2RhdGEuMDAwCitlYTJkMjBiNTk0ODI3OGY1NWY4NzAwYmI3Y2ZiNTI1ZSAgLi9kaXItMDk0L2RhdGEuMDAwCitlYTNhNDBhNmVkN2M1YzdiYWRjZGRjODI5MjQwNDUxZiAgLi9kaXItMDAwL2RhdGEuMDA4CitlYTYwYjg5ODQ2ZmZlOTA5OGYzNzYxMDBhMTVmZDYyMyAgLi9kaXItMDE5L2RhdGEuMDA2CitlYWIwZGY3ZTM1NGJkZDIwMzI0ZmY3NWFhMzU0YzY3ZSAgLi9kaXItMDM2L2RhdGEuMDEwCitlYWM0YWQ5ZTY3ODk3MDI3MjlmMTRkNDgwMjU0ZGYxMyAgLi9kaXItMDc4L2RhdGEuMDA2CitlYWU3NTFiMmY1ODkwYThhMmU2Njg0MjUwMDg3NTQ4OSAgLi9kaXItMDY0L2RhdGEuMDA3CitlYjIxM2RlZjg1ODJiZjljMzkxMDMyYWI4MTAyMjRhNCAgLi9kaXItMDMwL2RhdGEuMDA0CitlYjIyMzlkYzFjMzI4NGE3NDNlYzI0ODBiNjZhNDQwYSAgLi9kaXItMDk1L2RhdGEuMDA1CitlYjM5MzM1NDc0YTVmMTE0NDk2ZTQ1ODU1ZDY1OTY1YiAgLi9kaXItMDMwL2RhdGEuMDA5CitlYjQ5YzY1MmEzYTliNjdmNDhiZWQ1ZjQ1M2M1MTNmYiAgLi9kaXItMDkxL2RhdGEuMDA1CitlYjhhYjhhZGYxZmQ4ZTJlODFlY2VhYTJlNDA1YmVjZiAgLi9kaXItMDE1L2RhdGEuMDAxCitlYzExMWJkZDk1NjI5MDJlZDA0N2NkZGM0ZTI5MWUwZiAgLi9kaXItMDExL2RhdGEuMDAyCitlZDY3MzgxOTg4NzdiYTY3MjE3NGEyM2IzOWFhZjBjYSAgLi9kaXItMDUwL2RhdGEuMDA4CitlZDg3YzQ0MjU3ZTQ0YmFhMDQ4Njc4NDQ4OWZlMWViNyAgLi9kaXItMDkzL2RhdGEuMDAzCitlZGFlMmY5NzdlODg4NWFhYmNhZmVhMTQwZTRlYTQ0NSAgLi9kaXItMTAzL2RhdGEuMDAyCitlZTAzYzNjNWM4MGM1NDNiZjUyMDI5MzgxNDU1ZTBkYSAgLi9kaXItMDkzL2RhdGEuMDEwCitlZTkwZDhkOGE2N2M1ZjA2ZGU5YTM1YTUwNWJkNGQ4MiAgLi9kaXItMDA1L2RhdGEuMDEwCitlZTk4YWNjNGJhN2Y1OTRhNDliODYzNjRlZGNmNDMxMiAgLi9kaXItMDQ3L2RhdGEuMDA2CitlZjQ1YTAxMzU1MTU3ZDVjNGE4YWM5NzgzZDMwYjAwMCAgLi9kaXItMDk5L2RhdGEuMDEwCitlZmU2ZGFiNjllYjM1MDM4ODZiNjIzYWIyNGFlMzJlMCAgLi9kaXItMDMzL2RhdGEuMDA2CitmMDIzMGM1M2RiOGZiOWZmMWE2NmVlYzEyYjI4ZDNjMCAgLi9kaXItMDI5L2RhdGEuMDEwCitmMDM4YTIwMmNjZTU3OWUyOWVkNzVlZjJmOGVjOTIwNSAgLi9kaXItMDc3L2RhdGEuMDA5CitmMDY3ZWYzMzlkYmZhMzczODQyZDZiZWI1ZDRjNTgzOSAgLi9kaXItMDA2L2RhdGEuMDAwCitmMDZhZjM4ODdhNjYyY2FlZDIyMGU5ZmU5OGMxMmY2ZiAgLi9kaXItMDA3L2RhdGEuMDA4CitmMDkzMTFlMzBiNTVmMzE5OWQ2YjU4OTFjZjcxN2JiNSAgLi9kaXItMDgwL2RhdGEuMDA0CitmMGI2OWQyMTg0NzUzZTUzNDE2ODFkZGY5YmMwZGYzMiAgLi9kaXItMDM3L2RhdGEuMDA4CitmMGRiM2Y3MGEzN2Y2NjBjZTMxYmZlMDYwMGI4MGI0OSAgLi9kaXItMDg3L2RhdGEuMDAyCitmMTI3YmVhZDUyMWMwZGE2MmY0YTYwN2ViZDY2MjdiNiAgLi9kaXItMDU3L2RhdGEuMDA2CitmMThiYTViMDJiYmYwM2FiZTEyZmNhNjU1NjRkY2I5NSAgLi9kaXItMTA4L2RhdGEuMDA4CitmMWJmMDQ2NjQzNTBhZmI0Y2U1YTVmMGRkMjQ1ZDJjNSAgLi9kaXItMDM4L2RhdGEuMDAxCitmMWQzNjdkZWE3YmI5OGE5YmRkZDRmNWNjN2E5Nzk4ZSAgLi9kaXItMDY1L2RhdGEuMDA0CitmMWU2NDZmNDZjMzY0NDljMzQxMmFlZDRjYjE2NDk2OCAgLi9kaXItMTEwL2RhdGEuMDA2CitmMjE0Y2E0ODgyMjFjODA0YTU1NTdhOWI4MDlhZmQ2NSAgLi9kaXItMDQ1L2RhdGEuMDA3CitmMjM3ZDA1OTg1ODlhNTQyODE1ZmJmNWVmNTk3NTFjYyAgLi9kaXItMDU0L2RhdGEuMDEwCitmMjU3N2FhODI3OTFlY2JmMjdiOTA4NWEyMmMyM2ZmOSAgLi9kaXItMDU5L2RhdGEuMDAyCitmMjYxNmIyZWEwYjNjZTg1NjVlNTY4YzBlZDhlZmFjYyAgLi9kaXItMDc5L2RhdGEuMDA5CitmMmNjNDQzMzYyYjE1NmEyMjI4ZjRhNjlmZTQxMDJiZiAgLi9kaXItMDg0L2RhdGEuMDAzCitmMmRmM2I1YmJjYjIyNWRmODk1Y2RhYzM4NDE0NWQ4NCAgLi9kaXItMDIwL2RhdGEuMDAwCitmMzI5NzM2Y2FmNGNlN2Q4MDIxM2RlZmExMWYzYzY1YSAgLi9kaXItMDI1L2RhdGEuMDAzCitmMzRmZDRmZjY3OGIyMThlODc4MDcyNGQzYmQyYTQyMCAgLi9kaXItMDI5L2RhdGEuMDA0CitmMzkyNDNiZWJlMWJiYzcxZTg1ZGUyYjNkOGQ3MTIyYSAgLi9kaXItMTA3L2RhdGEuMDAzCitmNDliMDUzNTEzOTc0ZDU5M2RjYzJjNDYxYzk2ZTJhMCAgLi9kaXItMDI4L2RhdGEuMDEwCitmNGMwZDIwZmVjYzA0ZGJmN2EyMDRlMTA1ZjgzNjg5MyAgLi9kaXItMTAxL2RhdGEuMDA1CitmNGNmYjBiZWNlZDkwZTJhZGY5NmQzZjJmYTJiYTQ2NSAgLi9kaXItMDM0L2RhdGEuMDA3CitmNGQ3NDVjMzg1ZjAzN2FhZmVmMDgzMTBmYjE5NGEyYyAgLi9kaXItMDY2L2RhdGEuMDA0CitmNTA4NGFlOWRlZDk4MzNlZThjNjMyODFmNWVkMTY0MSAgLi9kaXItMDU4L2RhdGEuMDAyCitmNTE5ZGQyZmNmYzMwNDcxMDFmYWY5MGJjZjE4NjU0ZCAgLi9kaXItMDQ5L2RhdGEuMDA1CitmNTI1ODMwMmY2YWI4YTM4YTdiNmIwNWIxMGQzNTA5NyAgLi9kaXItMDU1L2RhdGEuMDA5CitmNTMyM2Q0ZDkxNWQ2N2Y5ZDc3N2Q1MjM3NGNkMjdjMCAgLi9kaXItMDE2L2RhdGEuMDA3CitmNWU3NzM4YTlmMmMzZDAyOTI5ZDAwOTcyNDMzNjAyMyAgLi9kaXItMDY3L2RhdGEuMDA1CitmNjJkMGMzYjc5OWIyNTczMGZiNmE0M2QwMDE0ZjIyMCAgLi9kaXItMDIyL2RhdGEuMDEwCitmNmFiZmRiNjNmYjRjOTgxODE0NzA0ZmVkZDRiMThkMCAgLi9kaXItMDU4L2RhdGEuMDEwCitmNmY3ZDQyODc5ZGI3NjIxYWQyMDlkNDViZDlkNmEwYSAgLi9kaXItMDEzL2RhdGEuMDA1CitmNzBmYTg1NmFhMTc0MGI3ZWQ4MjRhNTQzOTY2NWIwZiAgLi9kaXItMDYyL2RhdGEuMDEwCitmNzJkZjAxZjhmMjkwYmM2ZTA1Zjk3MmRiN2EwMWY5MCAgLi9kaXItMDQ4L2RhdGEuMDAyCitmNzNhMTgzZWFiM2ZmZTQwNzAyNzdiOWU3ZjIzZGE1NiAgLi9kaXItMDM3L2RhdGEuMDAyCitmN2Y3YjJmMWIxMzZhMDFkOGE5YjNmMWY2YzNmOWU4OCAgLi9kaXItMDI1L2RhdGEuMDA4CitmODFjMDg4YzcwMWE4OGQ5YjM5NmUzMGY5ODc3NjA2NCAgLi9kaXItMDMzL2RhdGEuMDEwCitmODk3ZTc3MzVlZjE4MDhhNWE3YmY2MTI5Y2YwZTBjOSAgLi9kaXItMDkyL2RhdGEuMDA1CitmOGE2OTY3MTdiYjVhNWFkZWNmMDBkZGQwOTdkOGQwYyAgLi9kaXItMDkxL2RhdGEuMDA3CitmOGUyMTg2ZjA0ZDRjYjY4MDFhY2MyYzBhNjhkODEwYSAgLi9kaXItMDQ5L2RhdGEuMDAxCitmOGY3NzQ5OTdjOTM4OGJiN2E2ZDU5M2U2MjI0ZTk5OCAgLi9kaXItMTA0L2RhdGEuMDA3CitmOTBlNTRjMDhiZTExZTRhYWNkZjNjMDJkZmY4ZWUxYiAgLi9kaXItMDgzL2RhdGEuMDAzCitmOTExMWJiOTkzMGQ4MGNlYTdiN2RiNjRmMDkyZDU5NyAgLi9kaXItMDY4L2RhdGEuMDA4CitmOTY5ZGU0NjJkZDFiNThhNjRiYzc1YWRiZTczMDE2ZCAgLi9kaXItMDQ1L2RhdGEuMDAxCitmOTg0Zjg1YTc3ZDU3YzZiZDNiMzY2NzcxZmQ5OGVhNCAgLi9kaXItMDYzL2RhdGEuMDA1CitmOWE0Njg1MDhmZDdlNmRiNWE3N2UzMTAxZGFmMjJiMyAgLi9kaXItMTAwL2RhdGEuMDA4CitmOWM4ZTZjM2EwYzRhOTM4Y2ViMDMzZjE1MWU1NDFlYSAgLi9kaXItMDc3L2RhdGEuMDAzCitmOWY5MDk5ODJlYTMzZTc3NmI5ODVlZTVhY2E1Mzc4YSAgLi9kaXItMDUyL2RhdGEuMDA1CitmYTQxMWYxZjlmNTU5YjRlZTNkZDEwOWMyZTU5YjEwNiAgLi9kaXItMDgxL2RhdGEuMDA2CitmYWEyYmJmODIwZjc4YjM5NDU0YzRmZWViZTA4YTNjNSAgLi9kaXItMDA0L2RhdGEuMDAxCitmYWI0ZmVmZDJkOGViNzdjNGYzNmM4OTk1OWFlNzk4MCAgLi9kaXItMDczL2RhdGEuMDAzCitmYjIzODhkMDNjMjcyM2YxNTcyOGJkYTljMWRjMjc2MiAgLi9kaXItMDI0L2RhdGEuMDA2CitmYjUyNGUzYmI3NThmMzJlN2QzNGU1MzhhNWU0MDU2MCAgLi9kaXItMDE5L2RhdGEuMDEwCitmYjUzOWZiMDgxZjRhOTVhYzViNWI1ZTExMzQzZTJiNyAgLi9kaXItMDUyL2RhdGEuMDA4CitmYjdkZDQ4ZjM1YzEyODIxMmI3ODU1MWNjZWRhMjQ0YyAgLi9kaXItMDM4L2RhdGEuMDA1CitmYjhhYTE2YWNiOWY3MjkyMzg0ZTI2NTU4NWY0ZGQzNyAgLi9kaXItMDU1L2RhdGEuMDAzCitmYmQxZGI0ZGE4N2MxZWQ4MDgyZDljZjk0ZmM0MjRhYSAgLi9kaXItMDI3L2RhdGEuMDAzCitmYzA0ZTg0YmI2YzY0MGY4OTA4NTRmYzU3NzViOWQ4YSAgLi9kaXItMDM0L2RhdGEuMDA0CitmYzIxYTA0Mzk5MGQwMzcwMzAwM2E1MDZiMDY2MjgyMSAgLi9kaXItMDA1L2RhdGEuMDAwCitmYzJhNDVmMTBlNTJlMTg5MThkMjVkNjQwZjc1MTQ1NyAgLi9kaXItMDk5L2RhdGEuMDA3CitmYzJlNDc2YTZkMWI3Y2U3MWI1MWJkNDM4MTY4OTFhMyAgLi9kaXItMDk2L2RhdGEuMDA3CitmYzMwNDYxNmYyNDMyMmUyNmE0NjY2YzBlNzE4MWU3ZSAgLi9kaXItMDA2L2RhdGEuMDAyCitmYzkwNmQxM2RmNTZkZmM1NTgwYWY4MjNjYTFhZjYxMCAgLi9kaXItMDc3L2RhdGEuMDA2CitmYzk3YjA2NmMwYWY4ZjJmYTQwZjJiYzkxY2FlM2I1NiAgLi9kaXItMDYzL2RhdGEuMDA5CitmYzliZDU4ZjhmMTI2YTg0MDY5ODczNjBiNjRhOTFmZSAgLi9kaXItMDA0L2RhdGEuMDA4CitmY2JhZjMwMTAwMDUwY2MxYmI5OTBlOThkMzA2MDViOSAgLi9kaXItMDA2L2RhdGEuMDEwCitmY2Q3YTZiNzkyNDI2MGI5OTdhZTYwM2VhZGZhZTU5ZiAgLi9kaXItMDkwL2RhdGEuMDAwCitmZDFkZWNiMzE0ODM1Y2JiOTVkNGFhNmU3YmRmMzM1OSAgLi9kaXItMDc1L2RhdGEuMDAwCitmZDM4ZDBkZGQ2MDQyOWIzYzcwNzE4NjdhOGZjZmJjMCAgLi9kaXItMDQ3L2RhdGEuMDA4CitmZDNlNGM0ODdjYWUxYzY4ZjA1ZWEyZGM4MWNiYTc0YyAgLi9kaXItMDU1L2RhdGEuMDA3CitmZDYzMDA0YWU4ODZjZThlNTIwNzU2YzZlZmYwNDgzNSAgLi9kaXItMDA5L2RhdGEuMDAzCitmZTA4NmI3OWEyYzI5ZjEzNDM3YzEzNDZhOGNiNTNmNCAgLi9kaXItMDA5L2RhdGEuMDA1CitmZTM1MDVkZjE2NDJlOWQzMDYyNjllMmUwN2FiMTA4OSAgLi9kaXItMDY0L2RhdGEuMDAwCitmZTRmMzEwYjc3NmUzMDk1MDNmNTIzYjhhMjZkM2JhOCAgLi9kaXItMDg1L2RhdGEuMDEwCitmZTY4ZWM2NjA3YzE1ZjBjZWFiYWRhMTAxYjM4MmIwZSAgLi9kaXItMDY5L2RhdGEuMDA0CitmZTc3NTFhNTQ4NzE3MjMwM2RlNjQ4NjcyNjAyYzI4YSAgLi9kaXItMDc2L2RhdGEuMDAyCitmZWI4YjY5ZTYyMjRhN2VhNzJlODgxZTNmNGE0NWIzMiAgLi9kaXItMDI4L2RhdGEuMDA5CitmZWQ1NDBhMTFmMDBmMWY4MDQ3MGJlN2I0OTFmYzQ1YyAgLi9kaXItMTA4L2RhdGEuMDAyCitmZWQ1ZTAwZGM5NGVkNzUxMDYxMTk0ZWNjZjJjNzdlMiAgLi9kaXItMDUwL2RhdGEuMDA3CitmZjEwYzdiMzdkNzA1YmM0OGExZmRlZTYyZWE3NjYxZiAgLi9kaXItMDc5L2RhdGEuMDA2CitmZjEzZDQ5MzI2ZmY4NzU5MTE5ZTc4OTU5ZGU2MjhlOSAgLi9kaXItMDQ4L2RhdGEuMDAzCitmZjIxNmYwZjJlNTQwZTkwNTc4NzRiMGNiNGZkY2RiMSAgLi9kaXItMTAwL2RhdGEuMDA3CitmZjkyYmYwNDYzNGUyNmEyOTgwZmZiNmFkNDdmOWMwNSAgLi9kaXItMDI2L2RhdGEuMDA2CitmZmUwNzhkZTM1ODMwMjVjNDc4MGM4ZjQzMDU3NzJjMyAgLi9kaXItMDg1L2RhdGEuMDA0CitmZmY2MDE1YzNiOGY3OTFmNDAyNzc5MWFjMGI1ZjU5MyAgLi9kaXItMDYzL2RhdGEuMDA0CisKK2NyZWF0ZSBjcmFtZnMgaW1hZ2UKK2NvdW50IE1ENSBmcm9tIHRoZSBpbWFnZQorYTY2NjdhY2IxY2IwNjg1ZDllYjViOWNkMzcyNDc2NmMgIG1rZnMtbG9vcC5pbWcKKworY3JlYXRlIGxvb3AgZGV2aWNlIGZyb20gaW1hZ2UKK2NoZWNrIHRoZSBpbWFnZQorbW91bnQgdGhlIGltYWdlCitsaXN0IHRoZSBpbWFnZQorLjoKK3RvdGFsIDU2Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMDAKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAwMQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDAyCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMDMKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAwNAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDA1Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMDYKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAwNworZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDA4Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMDkKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAxMAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDExCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMTIKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAxMworZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDE0Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMTUKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAxNgorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDE3Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMTgKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAxOQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDIwCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMjEKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAyMgorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDIzCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMjQKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAyNQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDI2Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMjcKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAyOAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDI5Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMzAKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAzMQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDMyCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMzMKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAzNAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDM1Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMzYKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTAzNworZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDM4Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wMzkKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA0MAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDQxCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNDIKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA0MworZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDQ0Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNDUKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA0NgorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDQ3Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNDgKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA0OQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDUwCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNTEKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA1MgorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDUzCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNTQKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA1NQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDU2Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNTcKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA1OAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDU5Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNjAKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA2MQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDYyCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNjMKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA2NAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDY1Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNjYKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA2NworZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDY4Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNjkKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA3MAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDcxCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNzIKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA3MworZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDc0Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNzUKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA3NgorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDc3Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wNzgKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA3OQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDgwCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wODEKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA4MgorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDgzCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wODQKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA4NQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDg2Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wODcKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA4OAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDg5Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wOTAKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA5MQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDkyCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wOTMKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA5NAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDk1Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wOTYKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTA5NworZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMDk4Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0wOTkKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTEwMAorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMTAxCitkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0xMDIKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTEwMworZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMTA0Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0xMDUKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTEwNgorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMTA3Citkcnd4ci14ci14IDEgcm9vdCByb290IDIyMCAxOTcwLTAxLTAxIDAxOjAwIGRpci0xMDgKK2Ryd3hyLXhyLXggMSByb290IHJvb3QgMjIwIDE5NzAtMDEtMDEgMDE6MDAgZGlyLTEwOQorZHJ3eHIteHIteCAxIHJvb3Qgcm9vdCAyMjAgMTk3MC0wMS0wMSAwMTowMCBkaXItMTEwCisKKy4vZGlyLTAwMDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAwMToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAwMjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAwMzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAwNDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAwNToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAwNjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAwNzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAwODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAwOToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxMDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxMToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxMjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxMzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxNDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxNToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxNjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxNzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAxOToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyMDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyMToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyMjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyMzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyNDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyNToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyNjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyNzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAyOToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzMDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzMToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzMjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzMzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzNDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzNToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzNjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzNzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTAzOToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0MDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0MToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0MjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0MzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0NDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0NToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0NjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0NzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0ODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA0OToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1MDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1MToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1MjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1MzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1NDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1NToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1NjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1NzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1ODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA1OToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2MDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2MToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2MjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2MzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2NDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2NToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2NjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2NzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2ODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA2OToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3MDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3MToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3MjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3MzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3NDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3NToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3NjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3NzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3ODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA3OToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4MDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4MToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4MjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4MzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4NDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4NToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4NjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4NzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4ODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA4OToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5MDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5MToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5MjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5MzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5NDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5NToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5NjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5NzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5ODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTA5OToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwMDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwMToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwMjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwMzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwNDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwNToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwNjoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwNzoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwODoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTEwOToKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKKy4vZGlyLTExMDoKK3RvdGFsIDYKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMAorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDAxCistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDIKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwMworLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA0Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDUKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwNgorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDA3Cistcnctci0tci0tIDEgcm9vdCByb290IDE1IDE5NzAtMDEtMDEgMDE6MDAgZGF0YS4wMDgKKy1ydy1yLS1yLS0gMSByb290IHJvb3QgMTUgMTk3MC0wMS0wMSAwMTowMCBkYXRhLjAwOQorLXJ3LXItLXItLSAxIHJvb3Qgcm9vdCAxNSAxOTcwLTAxLTAxIDAxOjAwIGRhdGEuMDEwCisKK2xpc3QgY2hlY2tzdW1zIGZyb20gbmV3IGRhdGEKKzAwMTFhNzJmMzhkYTY2OGY5NGVkZmExZDUwNzQzZTJhICAuL2Rpci0wMDkvZGF0YS4wMDkKKzAwNzFiZWI0YmFhNTk5MTQxYTdlNDQ2MzM0ZDU4MzAwICAuL2Rpci0wOTcvZGF0YS4wMDEKKzAwODczYzg3NWYzNDYxZmI5ZjViYWE5YTAzOWYyMThmICAuL2Rpci0wOTMvZGF0YS4wMDIKKzAxMjBmYjgxMjY5NTk4NDM4ZTg0ZjNmZTEwYjI0NjU4ICAuL2Rpci0xMDAvZGF0YS4wMTAKKzAxM2I4YWU1YzRiMDExYjg3YjE0MmU1ZDYwNjQ1Zjk4ICAuL2Rpci0wMjAvZGF0YS4wMTAKKzAxNjc3OTE0NjJmZmNhYmE4YzIyMTQyNmMyNWNmNDU1ICAuL2Rpci0wOTIvZGF0YS4wMDAKKzAxOTM2YzM3MTY5Y2M3ODZjZGM3MjRhYmJmMTk2MWUzICAuL2Rpci0wOTQvZGF0YS4wMDMKKzAxZTVhOGJlZTg2NGY5OWJjZmRlOTFiMmY1MDFmYTU2ICAuL2Rpci0wNjIvZGF0YS4wMDQKKzAyNGIxZDRjYjkzNjYwZjEyNWU2ZjQ3ODNlMjY5NzJjICAuL2Rpci0wNzIvZGF0YS4wMDMKKzAyOWMxMTk5ZDE2YmM4ZGEyYWZkMmZlMWM0N2I2ODU5ICAuL2Rpci0wNzcvZGF0YS4wMDEKKzAyYTFjMGE4Mjc3MWM1OTIzNmViOWYzMzdkZDBiNGRhICAuL2Rpci0wNzMvZGF0YS4wMDAKKzAzMmNkYjFhYzIyM2FkZjllZDQ1Mjc4ZTY0ZjI2NWYwICAuL2Rpci0wODMvZGF0YS4wMDcKKzAzNjU1ZDA4MWNlNTY3YTRkNWZjOGUwYzNkYzU5ZTNhICAuL2Rpci0wODUvZGF0YS4wMDYKKzAzOTdlMDFjZjY4MDU3MjgyNTZmYTkyNzJhYjY3MmM0ICAuL2Rpci0wNjIvZGF0YS4wMDMKKzAzYTU4Y2VjNThmN2I3NGMwZDg4MDNlNWEwNWRhMjBkICAuL2Rpci0xMDcvZGF0YS4wMDQKKzAzYjNiMTY1NDdiMjVlOTQ4NGM1MTZmNWU4OGU1Yzc1ICAuL2Rpci0wODkvZGF0YS4wMDYKKzAzYjRlZDcwZjk2ZDVjNjkzYmNmN2Y1YTQ3OWVjZDlmICAuL2Rpci0wMTQvZGF0YS4wMDcKKzAzZDhhNGFjNWFkZDVhOTVmM2Q5Y2FjOGY4NDdjOGU3ICAuL2Rpci0wMjMvZGF0YS4wMDAKKzAzZGUyZjA5NThhNzZlOWQwMTM4OWI5MTljNjllYzk2ICAuL2Rpci0wNzkvZGF0YS4wMDQKKzA0M2ZhNmNiYTA4OTQ2YWQ1MDhjYTg5MGE0MmYwNjQ0ICAuL2Rpci0wMDUvZGF0YS4wMDQKKzA0YmVhYzQ5ZTZkMWYxZjkwNjdkYTI0OWY4OTUzZmU5ICAuL2Rpci0wNDEvZGF0YS4wMDIKKzA0YmYzNjcyMWM5ZGE1NWIyZmQ2NzgwYTVhNmRjZWYwICAuL2Rpci0wMTIvZGF0YS4wMDkKKzA1MmFjN2ZmMDQ3OTI4YTRmMWMwZDhiZjM4MzIwNDgzICAuL2Rpci0wMDAvZGF0YS4wMDMKKzA1M2IxNTM5NjA5NmMyNzUxZDllMzJiMTg2YmYwOTQ4ICAuL2Rpci0wMzUvZGF0YS4wMDUKKzA1ODg3OWUwNzBkNTFjMWUyNDg3ZDQ4MWY5YzQzYjc4ICAuL2Rpci0wNzEvZGF0YS4wMDcKKzA1YmQ0MzhkN2ExNTFlYmVjMjRjY2VmZmI3OTJjM2JiICAuL2Rpci0xMDQvZGF0YS4wMDkKKzA1YmQ5YjY5MmVmMmZmMmMzZTJlMjJhNTgyYmZjMjVjICAuL2Rpci0wMjEvZGF0YS4wMDYKKzA2NDkyZGVlNTAxNTdmMzc5ZWFiYmU4MTFiY2I1YWM3ICAuL2Rpci0wNzMvZGF0YS4wMDkKKzA2OGM3MjRlNzZkYmEwYzg4N2M1MzIzZGU3YjdhNDM0ICAuL2Rpci0wMjEvZGF0YS4wMDQKKzA2OTM3OWFiZmQ5ZjI2ZTIwM2M1MzkyMzQ0M2U1OGE0ICAuL2Rpci0wOTQvZGF0YS4wMDYKKzA2YzM2ZjVkYjBjMDIxMjdkYmJjYTc1YzVkN2MxMzBjICAuL2Rpci0xMDQvZGF0YS4wMDYKKzA2ZDIxOWQ4M2QwZDIxNDJlOWY3YTA2MzcyZTgyZjgxICAuL2Rpci0xMTAvZGF0YS4wMTAKKzA2ZGY3MThmODg1ZmQ3MWYyNTY4OTQwYjYxNjUyOGMzICAuL2Rpci0wNTkvZGF0YS4wMDEKKzA3MDE3ODIzMGVhNDdlOTBkMDBmOWE2ZmExOTc1ZmQyICAuL2Rpci0wNzkvZGF0YS4wMDUKKzA3MmMxZDE3NTVhNGFmNzg1NWRmZWEzYzY4Y2YyNzBhICAuL2Rpci0wNjUvZGF0YS4wMDgKKzA3Y2Q3NjdlZjI0ZDRlYzA1N2FiOThkMGI0YjM4OGE5ICAuL2Rpci0wOTEvZGF0YS4wMDIKKzA4MTAyOWI3ZDhiYjI3ZjZjNGY3OWEyZTRiYTY3ZDg1ICAuL2Rpci0wNzAvZGF0YS4wMDUKKzA4MjY4MDg4MjU0MjU2YzI1ODk0YzZkNzY5MDJjZDYxICAuL2Rpci0wMzcvZGF0YS4wMDcKKzA4MjljMjBjODExMTNlZWMwNzU5ZTVmZGQ3NGIxZDNlICAuL2Rpci0wNTYvZGF0YS4wMDUKKzA4MzEwYWQ3OGNiZDNkNmVlMTg2NGU1YzE0NTI0OGQ5ICAuL2Rpci0xMDMvZGF0YS4wMDEKKzA4NDc4YzdhNTIzYTg3MjUxMDdhZDgwNGE3ZGNkYTFlICAuL2Rpci0wOTYvZGF0YS4wMDMKKzA4NzYzZDIzOGUwMmQ3YWI1N2Q3NjJiNTgwMzhlMzhjICAuL2Rpci0wNTQvZGF0YS4wMDAKKzA4Zjk2YmY2OGVlYThiODJiY2UxYTVjMTU2NTA3NWJlICAuL2Rpci0wNjAvZGF0YS4wMDMKKzA5MGVkODgwMzZhOTYxOGU0YzQ0ODU4ZGIzOTk3OTNkICAuL2Rpci0wNDQvZGF0YS4wMDgKKzA5MmJhYThkMjY1OWVkOTQ4MDNlNjUyYmU0YzhhZmU0ICAuL2Rpci0wOTkvZGF0YS4wMDkKKzA5M2QyZDQ1OTcwMTVjYWU0MmRmN2QzZTJlM2JmODAyICAuL2Rpci0wNjIvZGF0YS4wMDkKKzA5NmI3YTRmNjdhNTYxZmEyOTMzYmJlZmJhMDMyYzY3ICAuL2Rpci0wMjUvZGF0YS4wMTAKKzA5OWJmNDEwN2FlMDA5NDk3YWJmNTJkNmQwOGY1YjM2ICAuL2Rpci0wMTMvZGF0YS4wMDYKKzA5YjRmNWEyYjQ5Y2ViYTc1MmE2MDQyOTdhYjYwNjM1ICAuL2Rpci0wNDkvZGF0YS4wMDYKKzA5Y2EyNTA5YjQxOGI1NzIxMTg4ZWEwNDRlZjZiNGMyICAuL2Rpci0wNjIvZGF0YS4wMDUKKzA5ZDZhODQ0YTBmMTk0Zjg4NGM4YmZhNmVkODMwYTBlICAuL2Rpci0xMDYvZGF0YS4wMDcKKzA5ZDk4NjdmNTYxZDM1ZDJkZTM3ZDlhZTI5NDAwZWUwICAuL2Rpci0wODQvZGF0YS4wMDEKKzBhNGY5MTYxMDk2ZWNmOGZmODM5N2NmZmNkOWJmMmM3ICAuL2Rpci0wMDAvZGF0YS4wMDIKKzBhNTRmMmE4MzQ3Y2FkN2U4MDZjZDAyODBiNjE3NDYzICAuL2Rpci0wMTcvZGF0YS4wMDUKKzBhZGEwNDI4MjhhNzAwYWQyNDg5YTIzNDczZDhlOTBlICAuL2Rpci0wMDMvZGF0YS4wMDQKKzBhZmQzYjQ5ZjE2ZDI5ZWJiYzZmNDc5YTM5Y2U3YmZhICAuL2Rpci0wMzcvZGF0YS4wMDMKKzBiMGZiNzJmMDNkYjk5Y2M3MjJkNGFhZjJhOThlNWI2ICAuL2Rpci0wMTAvZGF0YS4wMDUKKzBiNTA4YjUwMjFlZmU0OGFiZWFmYjU5YmNlNmEzZjZkICAuL2Rpci0wOTQvZGF0YS4wMDkKKzBiOTM4ZjBmZTdiYmI2NTFiMWQyNWY3NzYzYWU2ZDUyICAuL2Rpci0wNTIvZGF0YS4wMDQKKzBiOTk3NDZmMDQ4YjZlNDIxYTQ1MmU5MzAyNTNiYjE1ICAuL2Rpci0wNTYvZGF0YS4wMDgKKzBiYWFhZWUxZWNhZWI1ZjljZjhiNzU2N2FmZDRlZjg5ICAuL2Rpci0wMjYvZGF0YS4wMDEKKzBiYmNjZjA0MTA5YjI2ZjhkNGYxY2NjYjAwZjcyN2U5ICAuL2Rpci0wNTMvZGF0YS4wMDQKKzBjMWUzYzg2OWIwYWRhYTdjZTkzODc5YTE1MTc3NmRmICAuL2Rpci0wMDEvZGF0YS4wMDYKKzBjODIxMWVmNDJkNzU4OTJjNzA3ZjAyMmUyYTdkNDUyICAuL2Rpci0wNDMvZGF0YS4wMDQKKzBjOTI5OGFlZmU3MjAwNGQzNDY0M2VkZGVmOGY0ZjFmICAuL2Rpci0xMDkvZGF0YS4wMDcKKzBjZmNjMTUyMjM1YWMyZjE1NjljMzkwMDg0YjZkNDQyICAuL2Rpci0wMTIvZGF0YS4wMDYKKzBkMTM1NTdmNTY2Njc4MzFhODUzZDQyMmY0MGNiODhkICAuL2Rpci0wMTQvZGF0YS4wMDYKKzBkM2NkOWIyMmI5MTM5MWQxN2MzMGU3OWZjODkyYTYyICAuL2Rpci0wNjIvZGF0YS4wMDgKKzBkYTExNzUzMmNhZGU0M2E5YjQyYjY4MWRiYjRkOTdiICAuL2Rpci0wNDcvZGF0YS4wMDAKKzBkYjhhZWE1ZWNlZjA0MDc0MmU0ZDliM2JhYTc2ZGQ2ICAuL2Rpci0wMzAvZGF0YS4wMDEKKzBkYmFjMWQ2OTdjYzc3Njg1ZTFmYjg4NDkxNmMxYWU1ICAuL2Rpci0wMjYvZGF0YS4wMDQKKzBkYmRlZDRkMjI0NTNjNzRlZDhjYTg3NmM3NTljMWQwICAuL2Rpci0wMjUvZGF0YS4wMDYKKzBkYzg5YWQ5MTYwNTVjNzMyMWFkODllMTM1ZDViNTY1ICAuL2Rpci0wNTEvZGF0YS4wMDYKKzBkY2MxYmI1YjhjNjcxZmE5MDZhNGMwMjdmNzgxMTQ5ICAuL2Rpci0wMDIvZGF0YS4wMDgKKzBkZWY5ZTQ5ZDQ2ZjgxODg3YWZkNjAwNGJhMjc5NjZlICAuL2Rpci0wMTcvZGF0YS4wMDMKKzBlMTI1NzdlNDU0YTQ0ODY2ZjU0Zjk5NzM4NjM3ZDNlICAuL2Rpci0wNTkvZGF0YS4wMDQKKzBlMjBhNzE4OWYwYTlkMjQzNWYzYmNhMWMzYTYxMTFiICAuL2Rpci0wNTMvZGF0YS4wMDMKKzBlMzg3ZDRlMWQyNjY5ZWRkNTUyNzY3NmRjNWFlYzg4ICAuL2Rpci0wOTIvZGF0YS4wMDEKKzBlNGQ2MTVjMmFhZmRhN2NhOWUyNGNlNWM0NjM3MDQ3ICAuL2Rpci0wNDYvZGF0YS4wMDYKKzBlNjRjMzU2YjQ2Zjc2OTIzMTk1ZmQ0OWQ0NTJjZGE5ICAuL2Rpci0wOTIvZGF0YS4wMDQKKzBlOGQ5OWEzYjM0NzMzNDg4ZDRkMGU5MTgzN2FlNjI1ICAuL2Rpci0wMTAvZGF0YS4wMDMKKzBlOTNjYjgyMDZiM2Q5MmM2YjM3N2Y1ZjBhZTZjM2NhICAuL2Rpci0xMDEvZGF0YS4wMDgKKzBmMDQ4YjliZGE2ZjY5NGQ5MGU5NjFhNWY4M2FlMjAwICAuL2Rpci0wMzkvZGF0YS4wMDkKKzBmNWNkYzY1ZWY4NDczZjMyNTMzZTNmNTZkY2EyZWE0ICAuL2Rpci0wMzkvZGF0YS4wMTAKKzBmOTlkZmZiYjc4MGJmNGFjNTM4MWYyZjE0NzgyYTZlICAuL2Rpci0wNDEvZGF0YS4wMDAKKzEwMjllOTEyZjZlY2M5MzA1NTg1ZTgzMzNkNzE2MDJjICAuL2Rpci0xMDEvZGF0YS4wMDQKKzEwM2I4ZTI5OWI2ZWQ1YjQ3ZDVlYjZhZjdkMDRkODVmICAuL2Rpci0wMDEvZGF0YS4wMDgKKzEwNDE3OTAzYjMxMjg0OTdmZmFlNTEyZTk0MTNkMmJiICAuL2Rpci0wNjkvZGF0YS4wMDAKKzEwOGM2MTU2MjdlM2EyODc0ZmZjZDBjN2RhZjkzZmFiICAuL2Rpci0wNDkvZGF0YS4wMDIKKzEwZTZlMTA5N2M5YTRjMTdhZWIyMTFhMjkyMGU4NzJhICAuL2Rpci0wODAvZGF0YS4wMTAKKzEwZmI1ZGEwNDEzNGM2NjNiMDU1NGFmMDg0ZTJhN2VjICAuL2Rpci0wOTUvZGF0YS4wMDAKKzExNGY2YmMwZmNkODc2MzVhNmJmMzA0MDA4ZTliNWM0ICAuL2Rpci0wOTMvZGF0YS4wMDAKKzExNTFhZTYyZGIxNTVhMDE1NzFkN2M3OWVlOTMwN2QzICAuL2Rpci0wMDIvZGF0YS4wMTAKKzExYjNkZWMyYmZmOTY1YWY2YjM2NjcwZGZkN2FlNTczICAuL2Rpci0wNTYvZGF0YS4wMDEKKzExZTM2MWI3NWRmZmJlMGVkMDljZGE2MzhkODdlMmNkICAuL2Rpci0wNDcvZGF0YS4wMDcKKzExZTljMDZjMGQ3YzM1NWYxYmIwYmY4YWQzMzc2YWNiICAuL2Rpci0wODMvZGF0YS4wMDEKKzExZmI1OWNiMzU1NzA4MWVkNzIxOTY2NmI3NDM3NGI0ICAuL2Rpci0wMDQvZGF0YS4wMDUKKzEyNTE4MDNkOWIzMWNlYjFlZTI5MDBhODQwN2M3NjJmICAuL2Rpci0wMTgvZGF0YS4wMDQKKzEyNWY3MWM1MDE2ZTkyYjM2NTkwNzBlZDA0ZjU4YmU2ICAuL2Rpci0wNjAvZGF0YS4wMDcKKzEyYWE1ZDBkYWMwZWI1MWU3ZDIyYjg4MjQ2MjgyZjAzICAuL2Rpci0wOTMvZGF0YS4wMDYKKzEyY2ZiM2FmODZiN2NjMTQxYTNmZTlhNjI2ODcyNmE1ICAuL2Rpci0wMjQvZGF0YS4wMDUKKzEzMmFmNzAwNTI1NWNjNGIwMzhhZDkwMjFlY2EzODQwICAuL2Rpci0wNjYvZGF0YS4wMDUKKzEzYzhlYjA3MWM4ZThiZDY4NDIxZDM3ZjkyNTYwMWU0ICAuL2Rpci0wMTYvZGF0YS4wMDAKKzEzZGQxNGU1NWNkYTkyZGVmNmYxMWRiNDgyNDM0YTAwICAuL2Rpci0wMjIvZGF0YS4wMDgKKzEzZjY3MzY2ZWU1YzhhZGI0MGU4MGQzYTVjZDE3ZmI3ICAuL2Rpci0wNjYvZGF0YS4wMDEKKzEzZmIyMzZlNWYyN2I3ODlmYzMxZjFjZjViMWI4ODkyICAuL2Rpci0wMTUvZGF0YS4wMDMKKzE0NTA2YzE4ODA0ZGViY2ViZjI3YTM3N2FhMDRlYWE2ICAuL2Rpci0wODcvZGF0YS4wMDcKKzE0NTI4YmZhYTBhMWFjYTYzY2JjODBhY2FiOTZmODAwICAuL2Rpci0wNTEvZGF0YS4wMDgKKzE0OGNmNWM1ZmViNzIyMDkyNDQxZWM4N2I3YTU2MTFhICAuL2Rpci0wMjUvZGF0YS4wMDcKKzE0OWI3Njc0YTkyNzk2YmVjN2Y2MDY2YmJkZWY5YTNjICAuL2Rpci0wMjcvZGF0YS4wMDcKKzE0ZGEwOGIyZDg1YmZjODFjMGIwYjkyODE3OTg5NzkxICAuL2Rpci0wMzMvZGF0YS4wMDIKKzE1MDBhNGM1MDU0ZDg3ZGQ2MWMzOTJmMzM4NjhkYTRiICAuL2Rpci0wMzgvZGF0YS4wMTAKKzE1OTg3Y2IzZGE2MmY0NWM3YWVlN2EwYWI5NTE4MjA2ICAuL2Rpci0wODkvZGF0YS4wMDEKKzE1YzA1MzI3ZjMzN2M3ZDc0MTRkNDcyZmE3NzBlYzNjICAuL2Rpci0wMzgvZGF0YS4wMDMKKzE1Y2NkNWEzMTJlYjc3MmM4NWE0NGE2MzA5OTMyMmFmICAuL2Rpci0wNDUvZGF0YS4wMDUKKzE1ZjMwYTMyNjRjMGY4YzU3ZTZkNzQ5N2E0MDY0ZmVkICAuL2Rpci0xMDAvZGF0YS4wMDMKKzE2MTU2NzE4YmVjZWJmMGY5NzUxMzZkY2E2YzZhZTU2ICAuL2Rpci0wNDIvZGF0YS4wMDUKKzE2MjRkMmE0ZWFkNjFjYjNjOGUyNWMyMTc5NGVhNjc5ICAuL2Rpci0xMDYvZGF0YS4wMDYKKzE2OGI5N2JkYThhYTZmNzk1ZDhmNzI3MjE5NGQxZDVhICAuL2Rpci0wMjAvZGF0YS4wMDYKKzE2OGY3ZWI4MmRkN2ViNzhjNGE1MjIxZDJlNTgxZGRlICAuL2Rpci0wNjUvZGF0YS4wMDIKKzE2Y2Y4YzZhY2QzY2QxY2EyZmM0YmZjOWI1NDM5ODJhICAuL2Rpci0wMDcvZGF0YS4wMDkKKzE3MTQ5MzNiMTFhNGE4ZTYwMDA1NzU2NTg2NmVjNDIzICAuL2Rpci0wODAvZGF0YS4wMDkKKzE3NDU2NTZmOTYwMWZiZDUxNjMxNDQ1MDBlZGE2NTY4ICAuL2Rpci0wNTcvZGF0YS4wMDQKKzE3OTM1M2NlMTQ4YzM3NDI1ZDc2NmVhNWI0M2RjMzJiICAuL2Rpci0wMjMvZGF0YS4wMDcKKzE3Zjc3ODc0NTdlNWZkMWE4NjAxZGQyMzc1ZWVhNzc3ICAuL2Rpci0wMzYvZGF0YS4wMDMKKzE4MTVjNjMxNzUyOGNhZmQyYTFlNjE0MjlkMjllMWNmICAuL2Rpci0wMDgvZGF0YS4wMDMKKzE4MzZmZDM5YjA1ZDk0YTg2MGQ3MjdmOTcyYTE4NzI5ICAuL2Rpci0wMjkvZGF0YS4wMDcKKzE4Njk5MjU3MmU5N2RjMGEzNjg4YjIyMDJjMDY2YTcwICAuL2Rpci0wNjYvZGF0YS4wMDgKKzE4YjRhNDM3ZDgxYWNmNTk0Y2MxNDgyMDMxOTg3ZjYxICAuL2Rpci0wNTgvZGF0YS4wMDkKKzE4ZDk3OGM2ZjU0YjUwYmFjYzUxYjViZTJhNmJhNmRlICAuL2Rpci0wNTEvZGF0YS4wMDIKKzE4ZWRmMzNkYTJjN2U4NWI2YTJkNTRiMDRmNzk2NjVlICAuL2Rpci0wOTMvZGF0YS4wMDkKKzE5NDc2ODFlYmRiNjVjZmM2YTQ4NTU2ZWE5ZDkyM2Q5ICAuL2Rpci0wMjMvZGF0YS4wMDUKKzE5NjllY2QyMjViOWQ2ZmE0MDI5YmY2NzNkYmVhNGRlICAuL2Rpci0wMzYvZGF0YS4wMDcKKzE5YTM0ZjhjOTAxNmNlYThkNThmMDJiODE2ZDQ0NzVkICAuL2Rpci0wNjUvZGF0YS4wMDMKKzE5YzNmN2JhNjNmNjRjZDZlODRkMjhlOTc0ODM0MTAxICAuL2Rpci0wMTIvZGF0YS4wMDIKKzFhMzVlMTljNmZhYjRmYTFkODE4ZTZlZmI3OWE3YjE4ICAuL2Rpci0wNTIvZGF0YS4wMDMKKzFhOTJmZDVhNDgyMWU5MjQ0NjE0Mjk1Nzc0OTE0MDdkICAuL2Rpci0wMDIvZGF0YS4wMDEKKzFhOTczZjJjMDBkMDA5MDYwN2EwNWQ2MDhiODE4OTdmICAuL2Rpci0wODgvZGF0YS4wMDUKKzFhY2RhYjQ4MGM1MmE0NTRiYTU1NTJjMjk1MTZkOTMzICAuL2Rpci0wNzMvZGF0YS4wMDYKKzFhZDE3YzQ2MDM2MDlhMzZhNzA0OTE0ZTZmOTFkMWU2ICAuL2Rpci0wMzQvZGF0YS4wMDIKKzFiMWRkZmI4OGYwY2YzN2Q5NmE0NGVkZWIyNjYyOWY5ICAuL2Rpci0wNDMvZGF0YS4wMTAKKzFiYjUzNzQ3YmU2YWQ4YTNlN2RhNTdjNjBhZTU0YmY0ICAuL2Rpci0wNDcvZGF0YS4wMTAKKzFiYmI2YjFlYTc4MDZiOTJlNDMxYWE0ODFiYTUzMjU2ICAuL2Rpci0wNTkvZGF0YS4wMDkKKzFiZWZjYzAwNDBjNmEzYjdlOTM2YTg5YjdkY2M4ZDFmICAuL2Rpci0wNTQvZGF0YS4wMDMKKzFiZjNkOTZjNjNmMDgyNWEwMjM4YjNjNzExYjJhZGQxICAuL2Rpci0xMDQvZGF0YS4wMDQKKzFiZmU2MzY3YzQ2ZTUwZTM0ZjlmNjhkZWJlMmZkOWU1ICAuL2Rpci0wNjIvZGF0YS4wMDIKKzFjMDVmMzE0NjZhNmIwNWYxZDczMTIwNzYwNDIxYjA3ICAuL2Rpci0wMTcvZGF0YS4wMDIKKzFjMTAwZmE0YTk5YTYzNWIzOTgyNmZiZjMyYTE4NWVhICAuL2Rpci0wNDYvZGF0YS4wMDAKKzFjNDA3MGY2ZjI1MDZhNWQ1OWRhYzYzNTc5ZGI1YzVmICAuL2Rpci0wMDkvZGF0YS4wMTAKKzFkMjg2YWM1YTdmNDQ3N2IwN2NiZjJiOGZhNjA4ZjMxICAuL2Rpci0wMjIvZGF0YS4wMDcKKzFkODQyZjk1Mjg1MGVjYjA3YjlmOGFiNTljZGJiZGZjICAuL2Rpci0wNzQvZGF0YS4wMDkKKzFkYWJlNzdiZTEzMDA3N2ExZTJkZTdiMWIyNDM2MzhmICAuL2Rpci0xMDgvZGF0YS4wMDEKKzFlNGI5MGU3MGM1NTMxMTkzYjgyY2MzYjYxNTg1M2EzICAuL2Rpci0wODMvZGF0YS4wMTAKKzFlNGI5OWMwYzZjOTdjYmU1OWMwMWI2YjgxY2RkNTVhICAuL2Rpci0wMDAvZGF0YS4wMDQKKzFlNmZkNGVlNDczN2VlNDQ3YWRlMjE2NTEwNGY0ZGMzICAuL2Rpci0wNDQvZGF0YS4wMDEKKzFlODJhNWU5NzdlNzVkNmZmMTJiYTRlNGI4MTIxOTk0ICAuL2Rpci0wMjUvZGF0YS4wMDEKKzFmMGE3YWQ5MzMwODE4MTUzZTZkMTM3MDUzODlmNTA2ICAuL2Rpci0wOTgvZGF0YS4wMDQKKzFmYWExMGZmNTRjNTFlOWU2YTY5MWQyMDIwYjI4MTgwICAuL2Rpci0wMTMvZGF0YS4wMDkKKzFmYmFmZDA1MzFmNWRiZjNlODRhODVjM2FmZWY3MTU5ICAuL2Rpci0wOTEvZGF0YS4wMDQKKzIwMTg4MjcwODE4NWZkMTVhYjE2NDgyNmU3ZTRhYjNiICAuL2Rpci0wMDcvZGF0YS4wMDUKKzIwMjhlMjVlZTdlYTI0MTBiMDVjOTZlMjUzMTk5OWFmICAuL2Rpci0wMDgvZGF0YS4wMDkKKzIwNGY2NGNhOTM0NDg5YzljMzIxYjc3MTZhYmU2MTM3ICAuL2Rpci0wMTMvZGF0YS4wMTAKKzIwOWNhMTE4NTc0OWY1Zjc2MGYzYzJiMWVlYWJjZjk0ICAuL2Rpci0wODAvZGF0YS4wMDcKKzIxMDRiZmEwZDVjYzgxNjYyZjBmMjUxZGM4OGVkMWYwICAuL2Rpci0wMDIvZGF0YS4wMDcKKzIxMzM1NmM2ZTA1MGFhMWY0NGZkYjY3NTU0ZDk5ODdkICAuL2Rpci0xMDAvZGF0YS4wMDYKKzIxY2U5NTg3NWIzNDlhYzhjNGE1NjYxZWM3ZmIxYzVhICAuL2Rpci0xMDgvZGF0YS4wMDkKKzIyNTExNzg5OWJkZDUwYjZmZDc1NGZhYzQ2ODUyM2U2ICAuL2Rpci0wNDYvZGF0YS4wMDQKKzIyYzdjNGQ2MWIyNTRlNjdiZmI2MjI5MmY2ODEzMzAwICAuL2Rpci0wMDYvZGF0YS4wMDkKKzIzMDVjZGQ1MTVlYTAzZTBlM2Q5ZGQ3ODkzYzQ4ZTVlICAuL2Rpci0wOTMvZGF0YS4wMDcKKzIzNDM5NDdiY2IyYWNhNWE1ODM0MzRlMjBiOWFmZTgzICAuL2Rpci0wMzEvZGF0YS4wMDEKKzIzN2M1ZDNiN2E1NTY2NzBhMTE5YjZiZWRmNGE3YTQ0ICAuL2Rpci0wNjQvZGF0YS4wMDUKKzIzODg3ZmM5N2Q1ZGU4NDZkYmI5YjI2ZmU0ODU2MGUyICAuL2Rpci0xMDUvZGF0YS4wMDMKKzIzZTk4Yzk5YzE0ZGM3NGJmMzNmNDBmODQzOGQ1OTQ3ICAuL2Rpci0wMzUvZGF0YS4wMDIKKzIzZjJkY2Y2YmIwNDU0ZmQyMDU4NDQyYWI2YzkyYjMyICAuL2Rpci0wNTkvZGF0YS4wMDgKKzIzZmFjZDUwNzg0YjkxZWZlMmU1ZTgxNjc4YmYwNGJiICAuL2Rpci0wNjkvZGF0YS4wMDYKKzI0MmJlNjhiMzcyMGU1ODY4ZTdmNzY1MmRhNWFmMDQzICAuL2Rpci0wMDYvZGF0YS4wMDEKKzI0YTg2Mzk3M2Y4ZWY2NzRiMzU3ZTExODliNDBkZTY5ICAuL2Rpci0wNjAvZGF0YS4wMDAKKzI0YzlmNDM3MWM5MzY3ZWI1NDQ3OTE5OGRiMDYxNzQ4ICAuL2Rpci0wNzAvZGF0YS4wMTAKKzI1Mzc1MTBjZWY1ZTY2MTI2YWI0YTVmMjAzOGRlOThiICAuL2Rpci0wMTEvZGF0YS4wMDQKKzI1M2U3ZGMwMzA3ZTU0NWZiNDRmYjVlNjIxODgzODk1ICAuL2Rpci0wMDIvZGF0YS4wMDAKKzI1NzM5NGM5ZGNhM2RiN2U3MzdmZmExZDA0MTkzMTdkICAuL2Rpci0wNzQvZGF0YS4wMDAKKzI1ODVkY2ZhZTQ2YmM0YzQ0NGYzNDQxNmU0OGRhMzcxICAuL2Rpci0wNTAvZGF0YS4wMDkKKzI1OTVjNWQ1ZjE1NjQ4ZjViNzg0Y2MzMjdhMGI5NDgwICAuL2Rpci0wNzcvZGF0YS4wMTAKKzI1ZDgzZGUwOWQwNzUwMzZjMzdmNGZhNDA4NGU4MWYzICAuL2Rpci0wNjYvZGF0YS4wMDYKKzI1ZGFiYjYzZGI3ZTY5ZTQ5YTIwMDc4ZTNmMWM3Mzk4ICAuL2Rpci0xMDMvZGF0YS4wMDQKKzI2NTkwNWU1ODM2MGQ0ZWU0Y2FiZTdmYTI0ZWI0OWJjICAuL2Rpci0wODYvZGF0YS4wMDcKKzI2OWJjNGI3ZjRkMTZjNjY5MDdkNDUwMzU2NjYxYjZlICAuL2Rpci0wODgvZGF0YS4wMDgKKzI2YjZhNzRlM2RhYmZkM2M5YTQ2NWY3MDUzMzg3ZjE5ICAuL2Rpci0wMTMvZGF0YS4wMDAKKzI2YjcxZDJhMGU0M2M5ODM3ZDU2NzY2MmJmOWM3YTAxICAuL2Rpci0wMzYvZGF0YS4wMDYKKzI2YmE5ZTdiZjFmZmEyNzU2MDJhYzIzNTY0MmFlYzIyICAuL2Rpci0wNjMvZGF0YS4wMDYKKzI3MGM2M2IxOWQ5YjRjOTg2NmRmMWE3YTlkOTY0YmEzICAuL2Rpci0wNTgvZGF0YS4wMDEKKzI3NDdkNWRmZGJkNGY1Y2U3NjY0MjkxMWZkMWNkN2JhICAuL2Rpci0wMzcvZGF0YS4wMDYKKzI3NTcxOWE3ZDJlMTBmZDBjYzBkYmQ0MDZhNWRkMjg0ICAuL2Rpci0wMzAvZGF0YS4wMDMKKzI3OTc0YWE0ODAxYTdjM2FmODQyODk5MjcyYjlmNmQ1ICAuL2Rpci0wMzIvZGF0YS4wMDIKKzI3YTFhODI3ZDgwMzk5NjY1MGJlNzU1NDc5MDIwOWJiICAuL2Rpci0wOTgvZGF0YS4wMTAKKzI4M2M5ZjhkM2RjNTljZmY0ODUwY2E2ZDk3NjU0NWQwICAuL2Rpci0wMTAvZGF0YS4wMTAKKzI4NTAzYzg1OWM4OWI1ZDk5NTNmNWJmMDg0YjQ0NDA5ICAuL2Rpci0wOTYvZGF0YS4wMDYKKzI4YmE4MzAxOGM3ZjhkNzlhNGJmYjJhYTk0ZWNmNzc3ICAuL2Rpci0xMDcvZGF0YS4wMDcKKzI4ZjJjNzQwODI3NzY1N2U0YzJjNWIyZTgwMTdiY2FmICAuL2Rpci0wODgvZGF0YS4wMDYKKzI5MDYxNjAwN2Q3NmJiZTA1YTYxYzczNjkzYTliMDcwICAuL2Rpci0wMDEvZGF0YS4wMTAKKzI5MDkyZTk0YmUzZTc0YTI0NmMyNDM4M2Y5MjA3NTNmICAuL2Rpci0wMzUvZGF0YS4wMDYKKzI5NTdhZTk2NjM0MDQ0YTQyYmJjNGJiMDcwN2NkMjAyICAuL2Rpci0wNjcvZGF0YS4wMDYKKzJhMTFkN2VjZWIzNWQ4ZmY4MjQ4ZjBlYzY3YTRlZTU1ICAuL2Rpci0wMDQvZGF0YS4wMDIKKzJhMzlmNzQ5M2U1NjQ2YTM4ZTlmNzFlYjIwMmRiYzJkICAuL2Rpci0wMjkvZGF0YS4wMDUKKzJhNGI0ZmY0N2Q3YWI5NzExNzU3NjM3ZjQ4MGMwNTg2ICAuL2Rpci0wOTYvZGF0YS4wMDQKKzJhNWE3NDhkNjU5OTFmNjNmNmRhMzlhOTdhMjJjY2ZkICAuL2Rpci0xMDgvZGF0YS4wMDAKKzJhODg2MDczOWY5ZDJkYmRhNjVlNGQ4NTJlMGZkMzA5ICAuL2Rpci0wNzYvZGF0YS4wMDEKKzJhOGQ3MDViOTBiODJhZjQ1NWFjZmE3ZDljMGZjM2M5ICAuL2Rpci0wNjkvZGF0YS4wMDkKKzJhY2U0YjBkOGVmMTIyYmQ5MThlOGQ1Mzg3MTRlZTczICAuL2Rpci0wODQvZGF0YS4wMDIKKzJiMDhjMmYxNzgzZjg2NTA1MTM2OWJmNDFiNDdmOTYwICAuL2Rpci0wMjMvZGF0YS4wMDMKKzJiMzFiNjhkMTdlYzYzYjBlMWE1MDE3NmM0OTAzMGU0ICAuL2Rpci0wNzYvZGF0YS4wMDcKKzJiMzYwZTljNTAyMjVlMWViZjhiZjk1ZmMwOTM5ZTJmICAuL2Rpci0wMDYvZGF0YS4wMDUKKzJiNTQ1ZTZlNmNhM2I2NjM4YjYxOGMzNGFhZWZkYmYyICAuL2Rpci0xMDAvZGF0YS4wMDEKKzJiNWQxODEwOGUwMzA5MzU0YjRmODBiMTg1ZTIzMjNhICAuL2Rpci0wNTcvZGF0YS4wMTAKKzJiODI0NDhlNmZjY2FjMzQ0MWQ5ZjdkN2ExMzA3NGQ0ICAuL2Rpci0wMzEvZGF0YS4wMDcKKzJiY2MyODE5YTI4OGVlNGVjMmM5YzAwYzU4NWY2N2Q5ICAuL2Rpci0wMjcvZGF0YS4wMDEKKzJjYmM5YjM5MjJlNWQ3NWE4YzRlNTc1ZTUzMDY1ZjJmICAuL2Rpci0xMDkvZGF0YS4wMDAKKzJjZTdjOWQ1ZTFhNGFlZDFlOWRlYzFhYTg1MDIxZjRjICAuL2Rpci0wMTAvZGF0YS4wMDYKKzJjZjdjNmUwMzhkMzc0NDI3NWQ4ZmZiOGI0YWI1MmQwICAuL2Rpci0wOTYvZGF0YS4wMDEKKzJkMDQ5NGEzNTBhNTcwYmY4NjU5NmViNWRjZDNlNTc1ICAuL2Rpci0wNTkvZGF0YS4wMDcKKzJkMWNhZTNkNTE1MWJlYmUxMmFlN2Q5N2Q5ZWZiOTJkICAuL2Rpci0wMDgvZGF0YS4wMDQKKzJkMjdlYzBkMzE4Y2Y1NmQ4ZWNjMjI2YTk3MmRiNjc3ICAuL2Rpci0wMjcvZGF0YS4wMDIKKzJkMzkyYTdiM2RjZmE2ZWUxMzk5ZGU5NDE2YTQxYjYwICAuL2Rpci0wODMvZGF0YS4wMDUKKzJkNDQzM2I2ZTMyYmRhOGU1NjNmMDQyZmI3OTllODZkICAuL2Rpci0xMTAvZGF0YS4wMDIKKzJkNzBjMTI5ZDg1N2QyMmE4MjY2YzJlNWYzZWU0NTYzICAuL2Rpci0wNDgvZGF0YS4wMDEKKzJkNzZiOTc4NGJiYjY4YzY3MGFlYWUxMzRmMWM2YzMyICAuL2Rpci0wOTUvZGF0YS4wMDEKKzJkYmVmMDQ0NWQxYjQ1MGI4OGI5ZTU4MTc3NDFmMjk1ICAuL2Rpci0wNzIvZGF0YS4wMDIKKzJkYzE4NGU4ZWNlNzc0NGRlOTkxMmQ0NjcxZjJmMTE2ICAuL2Rpci0wNDQvZGF0YS4wMDkKKzJkZjU4NzdkZmY3Zjc3ZTQ4YWE0NWJiOTZkZTlmMzYyICAuL2Rpci0wNzEvZGF0YS4wMTAKKzJlMDNmN2IyNThkMDBjMGM1ZmYxMDQyNWE3MDFiNDU3ICAuL2Rpci0wODIvZGF0YS4wMTAKKzJlMGJmOTAzMDA5MmRkNzdlZDQ0Y2Q3YTI1NDk3NDk2ICAuL2Rpci0wNzIvZGF0YS4wMDYKKzJlMGVlNzk2NjY5MDRlMzYyOWM4MDFmMmUzOWVlZWY0ICAuL2Rpci0wMDkvZGF0YS4wMDEKKzJlNDNhZGEyMzQ3NzVhZGI3NzE4OGE4NDBlZWUxNTI1ICAuL2Rpci0wMjAvZGF0YS4wMDkKKzJlNjQ4YTEzOGYwNGRhYmEzZWMzMGQ5ZWU4NTAyYTAzICAuL2Rpci0wMjgvZGF0YS4wMDIKKzJlOTBjZDU0ZjgwMzUyZWM3ZDAzZmE5ODczNzI0NWI1ICAuL2Rpci0wMzQvZGF0YS4wMDkKKzJmMjUzY2I1YzA2NWM5MGNiYzVkNjY2NzQxMzg2MmE4ICAuL2Rpci0wNjYvZGF0YS4wMDkKKzJmNTE2MDhjZDFjMGFlZDY0ZjJiMGI2NWZhMTAyMGMzICAuL2Rpci0wMjUvZGF0YS4wMDkKKzJmOGQ2OGJjOGVjMWM1ZGI4Y2UyZjcwYzg3ZjkxZTY4ICAuL2Rpci0wNjcvZGF0YS4wMDMKKzJmYTAxYTZiMTRlYTkxYzAyNDYwYzBiZWI3MGY2OWM3ICAuL2Rpci0wMDMvZGF0YS4wMDUKKzJmZDc2ZmFkYjEyNGM3MDFlODUyNzYzMTMxNDgwNDU3ICAuL2Rpci0wMDkvZGF0YS4wMDcKKzMwMWU5NjkyNTQyOWE1NzdjZmZkMzgwNWMyYjY3ODFlICAuL2Rpci0wNjAvZGF0YS4wMDUKKzMwNGQwMzRjMTBjM2YyZTg2NTliMjUwNDkwMjhkZDYwICAuL2Rpci0xMDQvZGF0YS4wMDMKKzMwNWViMDI3YWIyMjM3NWUyOWY2Y2U1NDRmYmQwN2JjICAuL2Rpci0wNjMvZGF0YS4wMDIKKzMwYTQ0ZWFjZDBhZjY3NGYxNzI1ZmRhM2I3NDQ4ZjRkICAuL2Rpci0xMDEvZGF0YS4wMDkKKzMxMTc5YzUwYmMxNTUzY2NlMjM1YzlhYTYyNWMxNmFlICAuL2Rpci0xMDUvZGF0YS4wMTAKKzMxM2ZkYjg1ODVjMTZmZmRlYjAwOWMwZDMyNTZhM2IxICAuL2Rpci0wNzgvZGF0YS4wMDAKKzMxNjljZGY1MjRiYTIwMDU2NDRkMDljZTJkNzJkNjk0ICAuL2Rpci0xMDAvZGF0YS4wMDAKKzMxYzViNzM2NTc1MGNhN2ZiZjc4OWM0Y2EzMjUwMThkICAuL2Rpci0xMDcvZGF0YS4wMDkKKzMyOTI4NjUwZGM3MmY4ODEwMDA3ZWZmYThkYjAwMTE5ICAuL2Rpci0wMzUvZGF0YS4wMDgKKzMyYWY5MmUyM2U0NTNjNzI0MTdhY2Y1NmQzYWI2ZmRlICAuL2Rpci0wMzMvZGF0YS4wMDcKKzMyY2YxZGZjYjliZDcyMzUzZjQ2OTkzMDA2Y2IyZDBjICAuL2Rpci0wMDMvZGF0YS4wMDcKKzMyZTNmNzJiMWZjYTVhYzMxNzZlOGRiZTExMGU3NTdhICAuL2Rpci0xMDQvZGF0YS4wMDUKKzMzOThiZjczM2Q0ZDI2YTdhODMwNDc0MDM4MWE4MzMzICAuL2Rpci0wMzYvZGF0YS4wMDgKKzMzZTgyZGJlYmJmNzEwYTFiMjAzNjU1NTEwNDQzZmYxICAuL2Rpci0wMzcvZGF0YS4wMDkKKzMzZmM1MDJhMGQwNjE2Zjc2NTUxNDQ2ZWYxOTY1YzMwICAuL2Rpci0wNjUvZGF0YS4wMDUKKzM0ODFlOGIyMTgxNDFlNmU2ZGM5Yjc1Mjk2NTA4YjE1ICAuL2Rpci0wMzMvZGF0YS4wMDQKKzM0YTE5OTdjYTg4NmQ3YzEzYmE0OTM2ZjRjOGUwZGFhICAuL2Rpci0wMTkvZGF0YS4wMDUKKzM0Yzk5MzZjNDZhODQ3MTUyMTI1ZTU4MzgzOWMxMmM2ICAuL2Rpci0wNDMvZGF0YS4wMDMKKzM0ZjEwMmI2M2U1MzA4OTY0ZTJmOTcyNWNhZjZlYzJjICAuL2Rpci0wODgvZGF0YS4wMDAKKzM0ZjE2Mjc3ODZkOGQ3NzE1ODQyYWYyYmNiYzkyZGQ4ICAuL2Rpci0wMjIvZGF0YS4wMDAKKzM1NzY3MWUyMGY1OTA5MDBhMzg2OWJjMjlkYmVlMWZkICAuL2Rpci0wNTEvZGF0YS4wMDkKKzM1ZDNhMWJkNWRkMWEzZjdkMGI1MGZiMmM1NDA2NjQ1ICAuL2Rpci0wMzkvZGF0YS4wMDMKKzM1ZWNjMDE0NGJjYTM1ZjUxOTk4NWFhYTE1YmUyNmNiICAuL2Rpci0xMDYvZGF0YS4wMDQKKzM1ZmZiZTZlNjJkYTViMGFlOWMwNjM2MzYwMGIwNzE1ICAuL2Rpci0wNDkvZGF0YS4wMDAKKzM2MDNkZDhjMWYyMzQ2ZWQwNzcwYWE1NDg1MTNlYjM0ICAuL2Rpci0wMjQvZGF0YS4wMDIKKzM2MWI4NDVhYTMwZGJkNDQyY2YyZjBiODdhZDQ3NDFhICAuL2Rpci0wNTUvZGF0YS4wMDIKKzM2MWZkOWI2NjQ4Zjk1ZmY3ZWVjOGQ3MTdkMTc5YmMwICAuL2Rpci0wODkvZGF0YS4wMDgKKzM2MjcwYTQxNTA5Nzg2NWRiYTY4NDc4ZjY5NjI4ZGIxICAuL2Rpci0wMDMvZGF0YS4wMDYKKzM2NTNhOTg5Yjk3NjRiMmZkNTMwMzI0YTk4ZWM4MjE4ICAuL2Rpci0wNjcvZGF0YS4wMDQKKzM2NTUxYWY3NzcwNmFlNTZkYzIyOGMxMTUxY2FhN2E2ICAuL2Rpci0wNjIvZGF0YS4wMDAKKzM2YjU1Zjc3NTcwZDFiNDYzODBkNjAxOGY1MjY2MWU3ICAuL2Rpci0xMDkvZGF0YS4wMDQKKzM2ZDY4YjljZmM1MWFhY2NlMDgwNjVkMzdlYjUwMGM2ICAuL2Rpci0xMDIvZGF0YS4wMDMKKzM2ZmMzMWJhYmFkODllZjI2YWNkMDMzN2E3OTI4NmQzICAuL2Rpci0wNDkvZGF0YS4wMDQKKzM3MDRjNWZkNmE0NDZkNTMwYmNjYTE4MDA0ZjJiMzFkICAuL2Rpci0wODEvZGF0YS4wMDgKKzM3MDc3NjA3OThkNGU1MGRhNzBiYWUwZThkMmM0YzI4ICAuL2Rpci0wOTUvZGF0YS4wMTAKKzM3MTcxOWZlNWNkMDUyYmUyYTYzYzY0NDRlYzc3NDEzICAuL2Rpci0wNDQvZGF0YS4wMDIKKzM3NTk0YmU0MWQ4MjkzYzAzNTE4NjVhNzA4ZTJhZjA1ICAuL2Rpci0wNjMvZGF0YS4wMDcKKzM3OTBhMmJjZTQyMGE4MDBmZjc2ZGRjNTVkNGMwZDBiICAuL2Rpci0wODYvZGF0YS4wMDEKKzM3ZDllMGYyZDlhMzlkYmQ5ZmIwNmM0ZGJjMWQ5MzJlICAuL2Rpci0wNjUvZGF0YS4wMDAKKzM4MTMxYjVmY2IxYmE3Zjc0YmMzZmI4OTA5MWQ2N2ZjICAuL2Rpci0xMDQvZGF0YS4wMDEKKzM4MjA4NWRmNWYxNDJmZGUwMmI0OTI1NjliMjdmN2QzICAuL2Rpci0wNzgvZGF0YS4wMDEKKzM4MzA3ZWFiZjExMDliNzg2NzYwMzg0ZGJlNzAxM2EyICAuL2Rpci0wNzQvZGF0YS4wMTAKKzM4M2FlYzNkMjM2YmRlMzEzNGJiYjgxMTQ4NzU5NGFlICAuL2Rpci0wNzEvZGF0YS4wMDYKKzM4NmJkMzEzYjcxNDRiZGI3MTIxZDlkM2NmZmQ4MDE5ICAuL2Rpci0wOTUvZGF0YS4wMDIKKzM4ODM3YzAzNjU3NmFkMmFmYjEzODJlMTBkMjI5NjU4ICAuL2Rpci0xMDkvZGF0YS4wMDEKKzM4OTkzYTkwNGYyZDM3MDg3YTVjNGVkNDEzZDMzMWQ0ICAuL2Rpci0wODEvZGF0YS4wMDcKKzM4ZDgyYzRiYmNkMmRlZjQxNjM2ZjAyMTUxYmY1MzE5ICAuL2Rpci0wODQvZGF0YS4wMDQKKzM5MmNjZjU4NjVmZGYwZGNmYTU5OTAzNDkzNGU0ZmNmICAuL2Rpci0wNzIvZGF0YS4wMDkKKzM5MmQ2YzIzZDViNmE1OGJhNDU1M2NmZWY1MjQ1MTkxICAuL2Rpci0xMDkvZGF0YS4wMDkKKzM5NzMyNDY1NzFkNDhmNWZiZTlkZGMzMzdjYTJjOGM5ICAuL2Rpci0wMTcvZGF0YS4wMDEKKzM5ZGU5NDVhNzYzYmQ4M2JkZTc4Nzg3OTI5NGM5YjQ5ICAuL2Rpci0wMDUvZGF0YS4wMDIKKzNhNGYzOTcyNjJlMmI4MzBmYmFmZmVkNGQwM2IzN2U5ICAuL2Rpci0wMTYvZGF0YS4wMDIKKzNhODM2M2ZjMzllNDIxMWFmZTNlZGU1Njg4Zjk0NzA1ICAuL2Rpci0wNzcvZGF0YS4wMDQKKzNhODk3YTY4NGRkMmIzMmI0ZmNjMjI3NTk4OGZkMDgwICAuL2Rpci0wMTgvZGF0YS4wMDgKKzNhOTRjYTg1YWM5OTRmNDdlODAxMDAxMWZjNWM5NTgyICAuL2Rpci0wMDAvZGF0YS4wMDYKKzNhZjhlZDljNTk5YjA2ZmYyZDk5ZmU1NTYzMzgwYzMwICAuL2Rpci0xMDMvZGF0YS4wMDMKKzNiMTkyMmZiNDNmYjIyMmI1NzNhOWY0NGJiODA1ZTBkICAuL2Rpci0wMjkvZGF0YS4wMDkKKzNiNzJiOGI0OTg0Y2Q1MWU2N2VkMDNmNTlkYTcxNmIwICAuL2Rpci0wMjMvZGF0YS4wMDQKKzNiOGE2NTY5NzMxNzhjNTgxNTQ1MWQ4YzY0ZmExZDIxICAuL2Rpci0wMDkvZGF0YS4wMDIKKzNiYTcyYzQ1ZmQwMTc3ZDQ4ZjZhN2E1MTIxZmFiNWE1ICAuL2Rpci0wMDMvZGF0YS4wMDEKKzNiZWJkOWI2ZmE0YWViOTc3MmNhMjM4ZmI4OGRkY2Y0ICAuL2Rpci0wNzMvZGF0YS4wMTAKKzNjOTljZTA4ODIzYzFjMWIyNGUxYzc3NTc0Y2I3YmRkICAuL2Rpci0wNzUvZGF0YS4wMDUKKzNjYTUwYTM3NGUwYzQ2Y2NjMzVjYWJhMDYyNDRhNTkyICAuL2Rpci0wNzMvZGF0YS4wMDQKKzNjZTBjNzM5MDgzY2MyMWFlNmYxOWViMzc3MjU4ZmIzICAuL2Rpci0wOTcvZGF0YS4wMDYKKzNjZWE0MjA1MmE4MzNhMWM2NWFiNmQzZGU3ZGI5NWZmICAuL2Rpci0wNDQvZGF0YS4wMDUKKzNkMDVjMWViYjdhZGJkNzJlYWUwNjRiMmIxNmVkNWJkICAuL2Rpci0wMTUvZGF0YS4wMDgKKzNkMzYyZDRhZjdhYzQ0MmIwYmU4YTZlMWVhZWQxMjIyICAuL2Rpci0wNTgvZGF0YS4wMDMKKzNkM2ZhNjllZjc4ZmY0ZWVjNzJjNGE3ZDYyZDQ0MzIwICAuL2Rpci0wNTcvZGF0YS4wMDEKKzNkYTEwMzExYWIzNWIzMTNiY2VhMGIzZGNkM2VjMzIwICAuL2Rpci0wODUvZGF0YS4wMDcKKzNkYTViZmMxZjEyMWRhNGEzNWM1YzFhMjZiZGYyODcxICAuL2Rpci0wODAvZGF0YS4wMDYKKzNkZmQyMDNiNjE2MDYwMTJlM2ZlNGQ3OTQwMjZkZTQ1ICAuL2Rpci0wNjAvZGF0YS4wMDgKKzNlYjgzNTM4NWJiYWE0YzEyZGM2NmFkNWE1Nzg3YWMzICAuL2Rpci0xMTAvZGF0YS4wMDMKKzNlYmYxNGJlYTVmNzc0ZWQ2OGRjM2FhZWNmZDRjN2E3ICAuL2Rpci0wODYvZGF0YS4wMDYKKzNlY2FiZmUzZDdlMGYzOWQxYjc3ZmViMzBiYjIxNDlhICAuL2Rpci0xMDgvZGF0YS4wMDYKKzQwMTcyMTdjMWZjMzYyMGYwMGE2M2JmNzQ1MWQ3ZDU4ICAuL2Rpci0wMTEvZGF0YS4wMDUKKzQwNTY1ZTZlOWVhZWJhOTUzOGUwNjhkN2ZjMjEyMDI1ICAuL2Rpci0wMzAvZGF0YS4wMDcKKzQwOTgwMzkwOGUxMjQ5ZDgxMTQyMWZkZjVlNzIyMWFhICAuL2Rpci0wMTEvZGF0YS4wMDYKKzQwOWYxYTVkZjMyYjQ4Y2M2MTViODBmODk1MzMzMTI1ICAuL2Rpci0wNzAvZGF0YS4wMDYKKzQwZGEyMzZkY2ZiMzc2MjhhNzM4M2YxMTBhMzRjYTkxICAuL2Rpci0wMTgvZGF0YS4wMDMKKzQxMWJjZWFlM2ExNjQ5NTU1MzNkYmFkNjE4ZGNkYjE5ICAuL2Rpci0wNDIvZGF0YS4wMDAKKzQxMjliMDUxNzNjOWRjODAwYzgxMWMxYzZhYjU1NGY1ICAuL2Rpci0wNDYvZGF0YS4wMDgKKzQxMmVmZGFiMDI2NzRhYjU5MWVlMDJjMWU1ZjMxZDBmICAuL2Rpci0xMDIvZGF0YS4wMDUKKzQxMzE1ZDNkNTc1MTA4YTUyZTBmYzViMDdjNTAzMTc3ICAuL2Rpci0wMzQvZGF0YS4wMDEKKzQxNDFhYTA1MzI1ZmZiNWM1MzAzOTFkODk5Y2QyYmNjICAuL2Rpci0wOTkvZGF0YS4wMDMKKzQxNzRlNjE2OWQ2NDUzMDdjYTg2NzUyMDVkNDBjODUzICAuL2Rpci0wMDQvZGF0YS4wMDkKKzQxYmNmZmI0ZTcxNzgwZGI4ZmVkOTgxODEyNGU1YjZjICAuL2Rpci0wNjMvZGF0YS4wMDMKKzQxY2U2N2IzNWVlNjRiOWU4NmMxM2VmY2ZkZDI2Y2UzICAuL2Rpci0wNTAvZGF0YS4wMTAKKzQzNGIwZmE1NzliMjU1NDMwMjE0ZGUzNTIxNTFkMTEyICAuL2Rpci0wNDEvZGF0YS4wMDgKKzQzNGIyNmYwMGMxNzVmMjc2YTU0MTA1MTcxMjUxZDUyICAuL2Rpci0xMDYvZGF0YS4wMDUKKzQzNWNhMjMzNTAzZWVmYmFjOTQ2ZDNjYTY1NGY5Y2MwICAuL2Rpci0wNzIvZGF0YS4wMTAKKzQzN2JhM2JiOGRiYjY3NWIxNThkYWUwZjU5ZDZhNDQ1ICAuL2Rpci0wNjEvZGF0YS4wMTAKKzQzYzQ5NTczMzU3ZWQ1M2RjYzJlMzY0Y2UxMTJiNjJkICAuL2Rpci0wNjEvZGF0YS4wMDUKKzQ0MDRiNmU0ZjU5YTg0MWZlOWEzYWUyZTQxYzRjNDg4ICAuL2Rpci0wNzEvZGF0YS4wMDAKKzQ0MjZhYTQyNGRkMjVjZTk3MmI2M2I1YzQ3Yjk1MzBmICAuL2Rpci0wOTAvZGF0YS4wMDYKKzQ0NDhkNmM4YjYwZDdhNGIwOGI1MzRhYzEwNTlkNjY4ICAuL2Rpci0wODkvZGF0YS4wMDIKKzQ0NzJiYTAwYjc3YTRkY2U5MDQ1ODljNDU3YjFiYzk3ICAuL2Rpci0xMDYvZGF0YS4wMDEKKzQ0ODYxZThlMTY0ZWE1MTcwOWMwNjlmYTI4NjEzNGM2ICAuL2Rpci0wNTYvZGF0YS4wMDIKKzQ0OTYxNDY4ZjA4ZWU4MGM2MTlhZGYwMTU0ZTk2YTlmICAuL2Rpci0xMDEvZGF0YS4wMTAKKzQ0YjcwMjgwNWE1OGYxNDQ5M2JhZTNjMmYyNzE2ZGM3ICAuL2Rpci0wODgvZGF0YS4wMDcKKzQ0YzdkOTUyZDViOTUyOGMxMjYzZWQxMWI1ZGMyYWU1ICAuL2Rpci0wMTIvZGF0YS4wMDAKKzQ0YzgyNWZiZjFkMjNmY2FiZjQ1ZTQyZTM5NTQyM2NkICAuL2Rpci0wODUvZGF0YS4wMDgKKzQ0ZTNlYzhmMTAyNTVkMTA5NzczZjMyMDRhNTAyMGU5ICAuL2Rpci0wMjIvZGF0YS4wMDYKKzQ1MDM0ZjEwNTI5ODdlNWQ5ZTJkNGJjMGY0NjNlYzdhICAuL2Rpci0wMjUvZGF0YS4wMDQKKzQ1MWVlNGY5ZTkyNjc2NWEyYzA3Zjg5YjFhMmZlMDc4ICAuL2Rpci0wMDAvZGF0YS4wMDcKKzQ1MmI0YjQzMjAwZDJlY2UzMDAxNmFlOTY0MTU3MThhICAuL2Rpci0wODQvZGF0YS4wMDkKKzQ1MzVmNWQ5OWFiZWUzMGZlMmUwZDY3MDk4ZGFiYzYyICAuL2Rpci0wOTgvZGF0YS4wMDAKKzQ1NjIyYWM0ZWUyODc1MmViNTZlYWNjZmI1NDYyYzUwICAuL2Rpci0wMTYvZGF0YS4wMTAKKzQ1OWJhMjRkMGUwM2E4MWY4ZjZlZDM1NzAwZjQ2NDYwICAuL2Rpci0xMDEvZGF0YS4wMDIKKzQ1YWYyZGNhMmVlYmM3MTRjZDBhZDYzZjc3Y2VhYWE2ICAuL2Rpci0wNDAvZGF0YS4wMDgKKzQ1YmUwNmZlNmU1MDliNDNiNmY2OGM1MjgzNWQ1NGI4ICAuL2Rpci0wMTYvZGF0YS4wMDMKKzQ1YzI1MGQ5NTcwNzE2MDEwZjQxNjFmMWJmZjVlNDUwICAuL2Rpci0wMjYvZGF0YS4wMDUKKzQ1ZWQ3YTVhNTQ1NzhkNTk4NTE1M2ZmNzAzMzBjMjI4ICAuL2Rpci0wMTEvZGF0YS4wMDgKKzQ1ZmU5ZmNhZTE2NWE5ZDg4YWZhMjdmYzNjOTMzNDA2ICAuL2Rpci0wOTUvZGF0YS4wMDgKKzQ2MWIwNzg2NTkwNTU2YTU3MjllMWUyMzUxMmRiNDllICAuL2Rpci0wMzcvZGF0YS4wMDUKKzQ2NDdjYjIwNDNmNjIzYmFlODg2MGU3ZThiNTg4MzRhICAuL2Rpci0wMTMvZGF0YS4wMDgKKzQ2ODE3MWNkZDMyYjBlOTRjOTZhOWJlMWYyOTg3MzhhICAuL2Rpci0wNDQvZGF0YS4wMDAKKzQ2OTBkZDMzZmZhMjMyOWU1YmM0NTZjYTI0ZWM3ZjcyICAuL2Rpci0wMzEvZGF0YS4wMDkKKzQ2Zjc1MTk4ZTQ0MGQ4ZGZiNDMyMDdlYjQ5NjVjMmM2ICAuL2Rpci0wMjgvZGF0YS4wMDYKKzQ3MTBlYWNkNmI2ZGY2ZmM2YWMyZGE1ZWJjYTk0NTQ2ICAuL2Rpci0wMDMvZGF0YS4wMDkKKzQ3MmNmMGVjZDFiMTY5MWJmYWE4ZDVmYjg2YzIxMzY2ICAuL2Rpci0wNzUvZGF0YS4wMDIKKzQ3MzQ0ZjNmM2YzYTgwNmZmNjM2MjY3ZWIzOTM2OWUwICAuL2Rpci0wODIvZGF0YS4wMDYKKzQ3ZDZjNzMwNGY5MjEwZWUxNmRjMmRjNWZjMmE5NWVkICAuL2Rpci0wNDgvZGF0YS4wMDUKKzQ4MjlmNjI5YjFlNTQ1ZjRjZjY4ZjUwZTlmNWU2MjA5ICAuL2Rpci0wMjIvZGF0YS4wMDUKKzQ4NGEyOTE2MzhmODIyNGViNDA0NDIzNTFmM2U3ZjQxICAuL2Rpci0wNTQvZGF0YS4wMDYKKzQ4ZTQyODkxYmYyZmUwNTM1Mzg4ODQxMjdiMGE1MGNlICAuL2Rpci0wMjEvZGF0YS4wMDEKKzQ5MDc3ZTU5NDNhMTAwYjY3NzFhNDRiZTA3NzA0YTRiICAuL2Rpci0wMTAvZGF0YS4wMDEKKzQ5M2U4NGJhZjZjMDJiMzgzMjQwNzFjODdmMGFmYjRjICAuL2Rpci0wMjQvZGF0YS4wMDMKKzQ5YTAyYzM0MWU1ZGU0YmZkOTM4ZWEwMzI2ZGRkODExICAuL2Rpci0wOTYvZGF0YS4wMDkKKzQ5YjExMjc5ZjgzZjIyZmY1MzcxMzRiYmNjODRmZjkyICAuL2Rpci0wOTkvZGF0YS4wMDIKKzQ5ZDZhYjg1YjUwYWI1Mzg2ZjgyODJhN2I5OGEyMDgzICAuL2Rpci0wMjYvZGF0YS4wMDIKKzRhMTExM2E4NjJlZWM2ZmMxYTI5YTc1YTk4NWYwMmNhICAuL2Rpci0wNDQvZGF0YS4wMDcKKzRhMjA5NTg1ZTQ0MjY1Y2IwZjM2Mzc1NjYwMmZjYTBjICAuL2Rpci0wMjcvZGF0YS4wMTAKKzRhM2E2NTQzZmVmYjU2MGYyMzgzNjE1ZDkwNWE2YTk2ICAuL2Rpci0wNTMvZGF0YS4wMDcKKzRhNGMxY2MzYzc3OGNhOGE1ZWNlMzUyOTU1OTFjNDIzICAuL2Rpci0wODkvZGF0YS4wMTAKKzRhOGEwZTBjNjhlZTk1YjU0MWJjZjM3Y2ViNmZjYTM4ICAuL2Rpci0wMzIvZGF0YS4wMDAKKzRiN2JlMTJmMmFmYWZhOTQyNjYzYWY4OGEyYTM0Nzk3ICAuL2Rpci0xMDcvZGF0YS4wMDIKKzRiZGY4YmYzMTU2OWEwNjg4MGI4NWUxNzY3MDNkM2M1ICAuL2Rpci0wMzgvZGF0YS4wMDkKKzRiZjQ4OWZmNjU2ZmVmN2JhMGY2NDNjZTY0ZjNhYmMwICAuL2Rpci0wMzgvZGF0YS4wMDgKKzRjMDEwZjkyY2ZkMDFkYjQ5MmI5ODFmMjM0YTY4NDM3ICAuL2Rpci0wMTUvZGF0YS4wMDkKKzRjN2JhZGZmYTM3NGRjMTE4YzgxZmYwZDA0ZjMxNmI0ICAuL2Rpci0wMzIvZGF0YS4wMDcKKzRjOGY2NTFjYWUxOGRiNDQ1YzhiYjAzZWZhZjU3NjIyICAuL2Rpci0wNTUvZGF0YS4wMDYKKzRjYjRjMWYxZDNiYmY0ZmRhNzY4Yjk3MjY2MTU2N2ZhICAuL2Rpci0wMzMvZGF0YS4wMDEKKzRjYmM2Y2MyOTZjODcwMjdlZDk2OTVjMDE4YWI1MzA3ICAuL2Rpci0wNjgvZGF0YS4wMDQKKzRkMDY0ZDQ5NTlhNzlhYmM4ZTNkMDczNjc1ZDZjMDAxICAuL2Rpci0wMDIvZGF0YS4wMDkKKzRkMGUxMzdhZTliZDZlMDExY2M5NzRkYWY0N2U1MTRmICAuL2Rpci0wMjAvZGF0YS4wMDcKKzRkZmFlNGE5ZWY0ZTg5NGIzY2Q4MjA5YTRhZTc4YmNlICAuL2Rpci0wNjgvZGF0YS4wMDYKKzRlMGY5MzIwNDdkYzMyNDRjMmZlMjE1MDAyZWE4YWQyICAuL2Rpci0wOTkvZGF0YS4wMDAKKzRlMjZlZjM3ZTljNWI2OTI1YWQyOTM4ZTliNWQ2OGYxICAuL2Rpci0wNDMvZGF0YS4wMDYKKzRlNDFmZjYyZTEwNTM1ODEyNWUwYjAzMzBhMDQyZmRjICAuL2Rpci0wMDEvZGF0YS4wMDcKKzRlNDVhNGI3Y2NiZDc5MDAzMjgzYjZlNDdkNjkzMjdjICAuL2Rpci0wOTMvZGF0YS4wMDQKKzRlNTQ4ZjM0ZDViYmViNTZmYTdlYjU4Y2I0MjIyODM3ICAuL2Rpci0wOTgvZGF0YS4wMDkKKzRlYjIwOTZlMTE1YjZlMmU3NjM5ODgxY2U3MzRjYTA5ICAuL2Rpci0wMTIvZGF0YS4wMDgKKzRlYzk2YWIzNDY2YzkwMTFjZDE1NTVhYmU2OTkyYWNmICAuL2Rpci0wMjkvZGF0YS4wMDIKKzRlYzliZDEwOGYwZGYwYjE4NmYwNzc3YjYwZGJlOTQxICAuL2Rpci0wMTEvZGF0YS4wMDMKKzRlZDUxMjVjMDZlNDE4OGE4ZTczMzY5Y2VjNzU4YjlkICAuL2Rpci0wMjgvZGF0YS4wMDEKKzRlZDZjMjFmNWI3NWMzMTMzNmNjNzg3M2U3OTVlYTRkICAuL2Rpci0wNjMvZGF0YS4wMDAKKzRmMTRjZmEyNjk4YWY0MjBhZTFhZTVlNDBjZTQ1YTVlICAuL2Rpci0wMzMvZGF0YS4wMDMKKzRmM2ZmNzU5ZWIxMGQ1NTg5OGYzYjE4OWM2YjhjODBkICAuL2Rpci0wMDAvZGF0YS4wMDkKKzRmNjZkMzVmYWM4MmFhMzUzMjJhZDNjYzViNjkwNWRiICAuL2Rpci0wMDEvZGF0YS4wMDAKKzRmODk4OTE2MDEwZWI4YWFkYjcyZTQ1NWQ1YjgyMWE1ICAuL2Rpci0wNTEvZGF0YS4wMDAKKzUwMjZmZDhlMDljOGRhZWYwYTFkYTk2YTI4ODMzMTUwICAuL2Rpci0wODEvZGF0YS4wMDUKKzUwMzg5YTRlNzNhOWE0NzJiNWE1YzRhODkxMGQ3ZTk2ICAuL2Rpci0wMTEvZGF0YS4wMDAKKzUwM2I1MTRjOTg0ZGFlOGZmNjlmOGJmZWZhODI0ZmI5ICAuL2Rpci0wMTYvZGF0YS4wMDEKKzUwNDhiZThjMmU4ZTc2NWRkYjYzYzNiMzcxODUyYjcyICAuL2Rpci0wNTMvZGF0YS4wMDIKKzUwNjc0MTk4NjlmYWVjNDNmODVjOGMzMjdjM2QzNzhkICAuL2Rpci0wMDgvZGF0YS4wMDAKKzUwNzI1YTU5NDFkMjZiMjk0NzY3N2JmZTBjNzc2MWZlICAuL2Rpci0wNjYvZGF0YS4wMTAKKzUwNzcxYzc2YTgyMTMyNDViZTQ5OWFkZjFkNDMxMWQzICAuL2Rpci0xMDAvZGF0YS4wMDQKKzUxMThhYzUzZDNjN2IzMTA3MjgzM2Y5NjZlZmE3ZTlmICAuL2Rpci0wNjQvZGF0YS4wMDYKKzUxNDRjNGRhMGUyYTM3NGQ5NWZmNDhhMzRjMzI5N2M5ICAuL2Rpci0wOTIvZGF0YS4wMDIKKzUxNGIwNzZlMGYwNTExZjIxNjM3OTk1MGYyNzE0ZjkwICAuL2Rpci0wMjQvZGF0YS4wMDQKKzUxNWVlNDYzOTM3Y2YyYTNmZjE1N2I3ODkxZjk2ZWI2ICAuL2Rpci0wNTIvZGF0YS4wMDkKKzUxNjI2NGU2Y2QzNzA1OGM2N2E2NzkxZDU5NDgyZGRhICAuL2Rpci0wODAvZGF0YS4wMDUKKzUxNjMyY2I3ZjQ0ZjViYWMzMGY1ZDZmNGE5ZWRlYzc5ICAuL2Rpci0wOTcvZGF0YS4wMDkKKzUxNmU2YmJiOTZmNjkyNjJkNTdmM2E2NjBiYzgwMWIyICAuL2Rpci0wOTAvZGF0YS4wMDMKKzUxY2U3M2IxMjMwYzA2ZDE1MzllNmRlNTQyYjYzMDA2ICAuL2Rpci0wMDcvZGF0YS4wMDYKKzUxZGJlMjRkMzYwY2EzOGZlYWMxYjQzNjc1NGY5YjRkICAuL2Rpci0wODkvZGF0YS4wMDcKKzUxZWFlZGJhZjMzOTg4YTQ4ZTZhZjY1YTViMTE3ZDM4ICAuL2Rpci0wMTYvZGF0YS4wMDUKKzUyMWRkNzczZmM0MTcxZGUxNTBiNWY4OTk1YTg4ZDIxICAuL2Rpci0wMDkvZGF0YS4wMDYKKzUyNjkzYmQ1NDA3YTI0NzFjZjUxNTZhZmVmZGFmODg4ICAuL2Rpci0wMjcvZGF0YS4wMDYKKzUyNzMxZTBhZDMwMjhjNTMwYmI0ODAyYTQ3NTRjNDA4ICAuL2Rpci0wMDgvZGF0YS4wMDEKKzUyZGRmZjk3YjMxNmE0OTRmNDczN2UwNjE0ODUwZjU3ICAuL2Rpci0wNjkvZGF0YS4wMDIKKzUzMDE4NDRjOTY4ZDA1MjU3ZjFlNjUzMWU4Y2UwZDU0ICAuL2Rpci0wMDMvZGF0YS4wMDgKKzUzNzYzZmQwYTg5NGI4ZTEyMWMyODFjZWUwMWY5NDAyICAuL2Rpci0wNjgvZGF0YS4wMDUKKzUzZDQ1MDdhMmRmOGQyMjA3NmQ4MWRhNWMwMTAwZWJjICAuL2Rpci0wMDgvZGF0YS4wMDIKKzUzZjVjYzA5ZDU3YWY2MGZlNzI1NTllY2EyZjFhNjAzICAuL2Rpci0wMTEvZGF0YS4wMDcKKzU0NjY2MmM2MjgyYjVkNDIyNDEzZjUzMDM3ZGYwZDU0ICAuL2Rpci0wNzMvZGF0YS4wMDEKKzU0ODJiMjUwN2RjOTRjOGVkZGU4NDBiNjE5YjM0OTQ0ICAuL2Rpci0wODEvZGF0YS4wMDIKKzU0YTZiNTE5MmE0ZmIyZDFmMmIyNjg2NmQxM2MwNWMyICAuL2Rpci0wODgvZGF0YS4wMTAKKzU0YzNhNTMyODI3NmRlMDkyOTE5YmY5NjZlOWRkN2FkICAuL2Rpci0wNjYvZGF0YS4wMDMKKzU0ZTc4NDE5YmE3Y2YyOTFlMjZmMTE2MGJjZDA5NDY5ICAuL2Rpci0wMjgvZGF0YS4wMDcKKzU1MjQxZDI0NzRiMGJlZTcwZjUwZTc2MjlmYmEzYTEwICAuL2Rpci0wNzAvZGF0YS4wMDcKKzU1M2U2NWNiM2VlMGE5YTU1NzI4MjZmZjQ0MDE0ODdjICAuL2Rpci0wNTQvZGF0YS4wMDIKKzU1YWRmNTE4MjgwYTU0NTMyZGU2YzMzYzI1OGE4ZTZjICAuL2Rpci0wODAvZGF0YS4wMDgKKzU1YjhkNTdmM2JlZWM2YTgwNzUyMjFmMDg3NTJmZjQyICAuL2Rpci0xMDIvZGF0YS4wMDQKKzU1Yzc2YmRiODJmOGZhNGUwZDIyZjllNDFhZDNhZDBhICAuL2Rpci0wNzUvZGF0YS4wMDEKKzU1YzhkMTNmNjgyYTYyMzA2YzhkMjk3NDZiZDdlNmZhICAuL2Rpci0wMjYvZGF0YS4wMDkKKzU1ZDU5ZmNiNDljMDdlZjE2NWIzMTA4NjIxZjA4YWIwICAuL2Rpci0wNzEvZGF0YS4wMDEKKzU1ZDY2ZDc0MjAxYTNhM2U1YjJkNTNmOWZiYjUyYmJjICAuL2Rpci0wMTkvZGF0YS4wMDkKKzU1ZDg5MWFkYTUxZWRjNWRlYzM4MzdjYmE3YzVmMmZhICAuL2Rpci0wNDEvZGF0YS4wMDYKKzU1ZGU3YWVkNGM2OWUzMjM3ODM1MmU2ZGQ5YTNlNWNlICAuL2Rpci0wNTcvZGF0YS4wMDgKKzU2OWY2NDU5MjBjYjFhNTQwOTNkZTU0N2NkOTJmMzM3ICAuL2Rpci0wODUvZGF0YS4wMDMKKzU2ZWYyZjc0Nzc4OWFhMmFiMWVmNmM3OTQ3YjUwZWQ0ICAuL2Rpci0wNjcvZGF0YS4wMDAKKzU3MWFkYTRjODMyYWE5ZWQ2NjQwMzM1MmIwNmEwN2RmICAuL2Rpci0wMTYvZGF0YS4wMDYKKzU3NGNlMjI3M2Y0ZTE3Y2Q2NzM5YTE3NzJkNDNmYjY3ICAuL2Rpci0wOTAvZGF0YS4wMDEKKzU4N2U3NDA0MzJkZTU0OTMyYjQ5ZjRiMGIxYTlkOGNkICAuL2Rpci0wNjcvZGF0YS4wMDgKKzU5MjI2MDMyZWYyZWZiOTkxZmZmYzVkMmQyYTY3ZGQwICAuL2Rpci0wOTgvZGF0YS4wMDYKKzU5MmUyOTI3ZTA0NjhhZjJhODZiYjEwZTJhNWNiZmZjICAuL2Rpci0wNjgvZGF0YS4wMDcKKzU5NGYxYTIxYjk4Y2E0YThiODk4MTE2NGY0NmVkZDBhICAuL2Rpci0wMjMvZGF0YS4wMDYKKzU5YTNmNmZmYjY0MzJhNzY4ZmZjZmMzOTBiYTBkNWU0ICAuL2Rpci0wMDUvZGF0YS4wMDcKKzU5YTU3NTFhNDQ0Nzg3ODlhYTA4ODUzYTdmYmNiNGZjICAuL2Rpci0wMzUvZGF0YS4wMDQKKzVhMDM0YTJjZGIxYjM5N2I0MzVjNzExOWE3MjVlNjIyICAuL2Rpci0xMDgvZGF0YS4wMDMKKzVhYWJkODEzY2U3MjUxNDZmNDdiYzczZDk0NDliNTBlICAuL2Rpci0xMDcvZGF0YS4wMDUKKzVhYzQ0NWMyYjQ2YzUwNDk3ZGViMWUyZGYzOTg3NjQ2ICAuL2Rpci0wNjUvZGF0YS4wMDYKKzViNjJjMTRkNjA3YzM5Mzg4NWNkMGE3N2I0NDVhMGUzICAuL2Rpci0wMTQvZGF0YS4wMDgKKzViOGI0MDUwNDkyNTY1ZDg2NjFhNDQzMWM3ZDlmMGYzICAuL2Rpci0wMTAvZGF0YS4wMDkKKzViYmFjNGVjNjdmYTg0ZDQwZDhhOGE0YmE5ZDAwZDMxICAuL2Rpci0wMTUvZGF0YS4wMTAKKzVjMDI1MmNkZDdjZDBkMTQ0NTgzYzY3M2UyNmE0Y2M2ICAuL2Rpci0wNDIvZGF0YS4wMDIKKzVjMTg0MDU4MGRmMGE1MjgwNTkwODhlNDVmMjNmODM3ICAuL2Rpci0wOTEvZGF0YS4wMTAKKzVjMjQxNzUzNDZkYzQzMTcyMGE4MzNkYTQzNDhhYTc4ICAuL2Rpci0xMDUvZGF0YS4wMDQKKzVjMmU0YjE4YmI2ZTc4ZWEwOWI5NThmMDNiYTBlNzUwICAuL2Rpci0wNjgvZGF0YS4wMTAKKzVjNGM0MTZjZWUyMDBlZTY3YmVjMjAyOWNiNTZiNmRiICAuL2Rpci0wNzcvZGF0YS4wMDIKKzVjNTM1ZTE0YjdjZDQ0OWE0MDg5M2VlNmEyMmY2MGUxICAuL2Rpci0wMzEvZGF0YS4wMDYKKzVjZDYzMWYxNjZhMjk3MGY3YWViODk2MGFjZTBmOGVmICAuL2Rpci0wODIvZGF0YS4wMDAKKzVkNmE4MjNjMjQ0NjBiMzQzYzZlMWNiNzRmOWJkYjhlICAuL2Rpci0wMzgvZGF0YS4wMDAKKzVkODY5OTA1ZmRiZDQ0MDlkODdkNDg0ZGI4Y2ZkN2VlICAuL2Rpci0wNTgvZGF0YS4wMDYKKzVkZTk0YzBkZTNjNDY4OGI1NmIwZDJmZDJhODkyYjk4ICAuL2Rpci0wMjYvZGF0YS4wMTAKKzVlNTc0MmVmM2EzZTRmNDM4NGVjZmJkOTY2M2ExOGViICAuL2Rpci0xMDUvZGF0YS4wMDYKKzVlNWE2MDdhOWI2OTQ1YTFmNGQxNzkyMjQ2NmY4NmViICAuL2Rpci0wMjgvZGF0YS4wMDgKKzVlODI0ZTBhZGQ5MDU0OGI1MGU4ZGVmMGUwZWExNWFmICAuL2Rpci0wNTEvZGF0YS4wMDQKKzVlZGFlZWJhZjIyMDU2NGMwZjlmYWU1M2NhYjNiOGFkICAuL2Rpci0wNjQvZGF0YS4wMDIKKzVmMmViZmMwODEwMTcwMzA1NjA5YWFhMTdkM2I2MWEzICAuL2Rpci0wOTYvZGF0YS4wMDUKKzVmNDk1MTE2Y2FiZDI0MzE3Y2ZmODllMWI5NDZmOTNiICAuL2Rpci0wNjgvZGF0YS4wMDAKKzVmODJjMDNhZWUwNGJiYzdiMTNiYmU4MWQ4NmYzOWQyICAuL2Rpci0wMzYvZGF0YS4wMDEKKzVmYjZiNzQ5YTA2YTFjZDhlOWU4YjI5MzgzYmZiZjRkICAuL2Rpci0wOTAvZGF0YS4wMDgKKzVmYzM2OWJlZjcyZjM3OTg3ZWIyMjg5OWU4YWJlODE2ICAuL2Rpci0wNzYvZGF0YS4wMDAKKzYwMmRmZDdkYzEzZGNhNzJlNWNkYjJhNTVkMTBlMmQ3ICAuL2Rpci0wMDUvZGF0YS4wMDYKKzYwM2M0YTJiMjU5MTUxNGZlM2Y4OTg0N2ZlNDVjOWI5ICAuL2Rpci0xMDEvZGF0YS4wMDcKKzYwNjk3OTlmY2UwMzg0NTI4YjViNmYyOTc4YTU5MjNjICAuL2Rpci0xMDEvZGF0YS4wMDEKKzYwYTE2ZjRlYmE1ZmNhYzM1YTQ0OTY5MmU0NzVjY2FlICAuL2Rpci0wODgvZGF0YS4wMDMKKzYwYTMyNzYzMjM0MjVkMzk0MmMzOGE5ZDkxNmZiY2FjICAuL2Rpci0wMzkvZGF0YS4wMDgKKzYwYTY1OGQ1MmY1OTM4OTc4OWNiY2ZjYWFiNDFhMWQ4ICAuL2Rpci0wNjMvZGF0YS4wMDgKKzYwZDZjNzlkZjQ4MjAyNjM3MDgyYzIyMTNkNGNjZmRmICAuL2Rpci0wNzUvZGF0YS4wMDQKKzYwZDg3ZmIxZGE3YmFhNDM5ODIyMjY5ZmQwNTQ2N2RjICAuL2Rpci0wMjgvZGF0YS4wMDUKKzYwZjkzOWE3NTAyNjRjZTU5NzAwMmE0YzVhYTM4YjBjICAuL2Rpci0wMTIvZGF0YS4wMDcKKzYxNzI0YmY5ZDg4MjczNGQwMGNiZjIxNzQ1ODZjZjFlICAuL2Rpci0wODEvZGF0YS4wMDAKKzYxYmFjYTlkNGYwYzBlMWFkNDQwZjUxNmVlZWNjZjI0ICAuL2Rpci0wNDAvZGF0YS4wMDIKKzYxYmQwZTY0OGJjMTkxMWQ0NTJkZTg5ZDRlZGNhYzgxICAuL2Rpci0wMzgvZGF0YS4wMDYKKzYxZTEzYWRjZWRmYTJkYzk3YzZmYjEzMWM0ODE0M2FmICAuL2Rpci0wNzgvZGF0YS4wMDkKKzYyMTAyZTBiYjZlNGEwMzRkMGRmMTkwODY0ZDMwMzRiICAuL2Rpci0wNzgvZGF0YS4wMDUKKzYyNGZlODY5NjRhODg2NmFhMDcyY2E5ODk0NGQxY2ZjICAuL2Rpci0wNzIvZGF0YS4wMDUKKzYyOGEzYWM0Yzg3M2ExNjlkOGEzZmE5ZGY2NjE1ZjRjICAuL2Rpci0xMDkvZGF0YS4wMTAKKzYyZTEwODIxZGMyZjgwYjYwOGY3ZDc4OWZlODM5MjNjICAuL2Rpci0wNjAvZGF0YS4wMTAKKzYzMzcyNmNkNGI0MTE3OGM1NTA2ZGQyYjJlYWUwMjgxICAuL2Rpci0wMTIvZGF0YS4wMDUKKzYzNmYzYjRiYmM1ZTBkOGI5MDQyZjFkYmIzNTA3OWFiICAuL2Rpci0wNzQvZGF0YS4wMDgKKzYzN2RiODk0MjU5NzY1MjEwNmJkODRkMWMxNTM0MWU0ICAuL2Rpci0wOTcvZGF0YS4wMDQKKzYzZWIzM2U4ODI0MTIxMGMwNTA5NDJjYTk3YTU3NmVjICAuL2Rpci0wNDAvZGF0YS4wMDcKKzY0MDQ2Yjk4MmE1OTQ0MjgzOWEyZDA5Yjc0NzBjZjUyICAuL2Rpci0wNTMvZGF0YS4wMDgKKzY0MGI1NTBlMTgwZDdjNDJjMmQ0NGYyZWQyZDdhNDNmICAuL2Rpci0wMTUvZGF0YS4wMDUKKzY0MmFlZDY5YTI4YTk0YmMzZmE0ODhmYzY1MjdiMjBmICAuL2Rpci0wMTYvZGF0YS4wMDkKKzY0YmY3MGExY2Q5NDVjZjQ1OWEwN2VjNDYzMWVhZjBjICAuL2Rpci0wOTgvZGF0YS4wMDEKKzY1NGViMzQyNmEwY2ZjY2JmNTFkMTQ3ZjI5ZjhlYjRlICAuL2Rpci0wMjIvZGF0YS4wMDEKKzY1YmQ4NmNhZTEwMDgzMGY0MjBjYjU1ZGFjMmUxNWE0ICAuL2Rpci0xMTAvZGF0YS4wMDUKKzY1Y2VkYzU4ZjBjNDFjOGZkYWU0MjIwMzViMzc1MGI4ICAuL2Rpci0wOTAvZGF0YS4wMDIKKzY2NjQwMmUxMzRlNmZmNzBjYmEwMjljOTg1MmIwZjk3ICAuL2Rpci0wMTUvZGF0YS4wMDAKKzY2NzU0OGZkNjg4MTBlMjA5ZWE5N2ZlN2IzZmNhMWY2ICAuL2Rpci0wMTIvZGF0YS4wMDMKKzY2NzVkNTA4MmVhNTEzM2Y2ODMxNDk5Yzk1NzM5NTk0ICAuL2Rpci0wMTEvZGF0YS4wMDEKKzY2OWZmYzE2M2I2NmZjM2FiYWM2NjExNzU4NjEzYTVkICAuL2Rpci0wODkvZGF0YS4wMDQKKzY3MWUyYjIyODA2MzhkOGUxZDNhOGY2YjFkN2VhOGU3ICAuL2Rpci0wMzIvZGF0YS4wMDQKKzY3NWRlMDNiYWY4ZGI2ZjgwOTYyZWQyNzhiNmU3YTExICAuL2Rpci0xMTAvZGF0YS4wMDAKKzY3YThlZjI1NDIwMDllNzU1ZGY1YzlhYzZmODUzZDgwICAuL2Rpci0wMjYvZGF0YS4wMDAKKzY3YmQzNGEzMGEwNWViMjZiM2Y2MmEwNzVjZDg1NmY0ICAuL2Rpci0wMzgvZGF0YS4wMDIKKzY3Y2ZmYWFkYTk4MDVhOTBiMTEzNTU0MDJlNjM1Y2FlICAuL2Rpci0wNTYvZGF0YS4wMDcKKzY3ZGRmYTliNDE1MDczN2RlZmY0OTE0Y2IzNWZkNzEzICAuL2Rpci0wMjcvZGF0YS4wMDgKKzY4MjBiMzQyNDQwNTgzZjUxNzIyYjllYjYxYjQ4ZDYzICAuL2Rpci0wODgvZGF0YS4wMDQKKzY4MzM2YjY4MTEwMmUxNmU2NGY4OGE5NWNmNDcwYjcyICAuL2Rpci0wMzgvZGF0YS4wMDcKKzY4M2FhNzliZDNjZGNkYWM3YWExMGFkMWUyYjBlMDI4ICAuL2Rpci0wMzMvZGF0YS4wMDAKKzY4NTY5OTFjYWE2OTRlODNjYWY2YzBmY2EwMjMzYjgyICAuL2Rpci0wOTIvZGF0YS4wMDgKKzY4YTQ2MDU1MTAzZjZlNzMzZTVjY2ViNzA3ZjZkZDBmICAuL2Rpci0wMDQvZGF0YS4wMDMKKzY4ZTllNjUxZGM3YTU2NGRlMjE0YjI4MmI5YjVjNzU3ICAuL2Rpci0wMDgvZGF0YS4wMDcKKzY5MDdkZmUxOGEzNzY0MzkxNjc0MmJhOTY0YmRhYjVkICAuL2Rpci0wMjcvZGF0YS4wMDUKKzY5M2Y5YzhiMjBhOGE5Mjc5YzRkNDNjODBjM2ZhOTg0ICAuL2Rpci0wOTcvZGF0YS4wMDgKKzY5NGU5OWYzYjVkYzU2YmEwNjJmZmZlODM4MWY4NzMxICAuL2Rpci0wMDAvZGF0YS4wMDEKKzY5NWNkYzViYzdiYTQ2ZTZhYTM4OTUwZGFhYjcxNjM2ICAuL2Rpci0wNTAvZGF0YS4wMDUKKzY5NjdhZjgxNTY1NzNlNDQyYTFiNmJkNTZkMGE0ODkzICAuL2Rpci0wMzUvZGF0YS4wMDMKKzY5YzFhNTJkNTM4YTY3YmYyYTdlNWMzMzM3OTUzM2I4ICAuL2Rpci0wMTcvZGF0YS4wMDAKKzZhMWJkNDFkYTYyZDI2MGY3NDZlMGIwMWM3YTEzNDAzICAuL2Rpci0wNTIvZGF0YS4wMDAKKzZhNzFhYTE1NWQ1OThiNWFkMmZkNjc1NmRhM2MyNzhhICAuL2Rpci0wOTgvZGF0YS4wMDMKKzZhODU1OTZmODE1MjJjMzhjOTU4OTEwYTRjMDQ4N2Q3ICAuL2Rpci0wNjAvZGF0YS4wMDQKKzZhYTNiYmI0NWI2MjMxNTEzZTBiZWU2MmU5YTEyYTliICAuL2Rpci0wODAvZGF0YS4wMDMKKzZhZTE5ZTM5Zjc4NTdmMTc2ZjAyMWE4Y2ZlNzY4YTY2ICAuL2Rpci0wMjMvZGF0YS4wMDIKKzZhZjcyNTViMzMxODYwN2IxZDVhNzg5NGQ4Y2FhYzI1ICAuL2Rpci0wODIvZGF0YS4wMDQKKzZiNzgwZTdmNzJiZTNkZjlkYjcxMjU4MGFjYWZkMGZhICAuL2Rpci0xMDIvZGF0YS4wMTAKKzZiN2NhZGNiZjg3NWVlNWFkNTNiNDcyOThhYmZhYWUwICAuL2Rpci0wODAvZGF0YS4wMDEKKzZiODUzM2RiZmZlYmI2ZWYyYzFmZDQ4ZTFkZjZlZDE5ICAuL2Rpci0wNTAvZGF0YS4wMDQKKzZiYzllMzIwM2UyNzM4ZWUyMjViZTZhNDVkYTZkMDc3ICAuL2Rpci0wNTkvZGF0YS4wMTAKKzZiZGZiYWI4YTRiMjBkNzFhY2E1YWVjNjZjZjRjMDdmICAuL2Rpci0wNzEvZGF0YS4wMDIKKzZiZTNjMzVmMjhmNjg4NjE4NDBmMDM0NWY3MGZmNTExICAuL2Rpci0wMTEvZGF0YS4wMTAKKzZiZmE4M2Q0N2Q4OTVhYzA2Zjc0YWJjZGZlMjRkYmQ1ICAuL2Rpci0wNjcvZGF0YS4wMDkKKzZjMzI0ZTE4NWNmMjQ2MjNiOGVhYjdkYWEwMTBlMjIyICAuL2Rpci0wMjMvZGF0YS4wMDgKKzZjMzJmM2Q1ZDI3MGJmNTA3ZjU3ZWRmMjhhYzIwMjE0ICAuL2Rpci0xMDUvZGF0YS4wMDkKKzZjOGNiNTZiZDgxZTMwZWJkYjAxNjdlYTljMzdmMTRkICAuL2Rpci0wMDEvZGF0YS4wMDUKKzZjOTNhYWM0NWQ5ZTAxOWU3YmVlYzRhNzA4YTMwMzNmICAuL2Rpci0wODcvZGF0YS4wMDgKKzZjYWY0MTRkMDRjMzQyZjgyOTg4NzU3MDk5MzU3OWQ3ICAuL2Rpci0wODkvZGF0YS4wMDMKKzZkMjIyOWEwMjlmZTY0ODE1OTA0MTNmMmRiOThhYTAyICAuL2Rpci0wMDIvZGF0YS4wMDUKKzZkMmEyNGRmYzgzZWM1MDY5MmExMzliYjJjNGM2MWQ2ICAuL2Rpci0wODIvZGF0YS4wMDEKKzZkMzhkZWFiOWEwOTZhMDQ4N2U5MzE4MjY1ODM3NTg5ICAuL2Rpci0wMjIvZGF0YS4wMDIKKzZkM2EyZjE3ZGYyYzcyMTA4NTFhMmMwZDUyMzkzYzBjICAuL2Rpci0wMjMvZGF0YS4wMTAKKzZkNzVkZjM3NmM0OTEzNzE5OTBlYjFkZTAwNDIyN2VhICAuL2Rpci0wNjcvZGF0YS4wMDEKKzZkOTMxYjAzMmM5NzdiZDQ4ZWVjZTM5MDBjYjc1Y2JjICAuL2Rpci0wMzEvZGF0YS4wMTAKKzZkZDIyYjlkZGE2ZDYzNDdjMWJkOWFmZWM0NzkzYTRmICAuL2Rpci0wNzAvZGF0YS4wMDIKKzZkZDc4MTFhMGM2ZmM0ZDA3NDJkNDY3MDcxNDVhM2U1ICAuL2Rpci0wMDQvZGF0YS4wMDQKKzZlMzJhNzM1OTMwNzgzN2U4YWM5ODIzZGU4MjM1NTVjICAuL2Rpci0wNDYvZGF0YS4wMTAKKzZlNWNjOGY1ZjhjMmEwN2I5ZGU0YThiNzgxZDViNWU1ICAuL2Rpci0wNTAvZGF0YS4wMDYKKzZlODQzNzMwZGY2NjNlNTY0N2RlN2FjNWJkNDVhOWU0ICAuL2Rpci0wNzQvZGF0YS4wMDEKKzZlZGQ0NjJiYzIxY2Y2NmNiY2JhNDAwNjY5YThiYjVlICAuL2Rpci0wMDcvZGF0YS4wMTAKKzZlZTA5NzM3ZTkyYTc5NmQ0OTRmZjg1NzIxMTg1ZGEzICAuL2Rpci0wNzkvZGF0YS4wMDEKKzZlZjZlN2Q4NjU4MGY1ZDBmNzczNmJiNTdlOTNmNGIyICAuL2Rpci0wNDgvZGF0YS4wMDkKKzZmMzE0YWRhNjQwN2NjMzJiMWYzZThkOTAzYjVjOWI1ICAuL2Rpci0wMTcvZGF0YS4wMDgKKzZmNDlkYTAxMjAxMTllZmE1ZTRmODlkZTE5NWI0ZDJlICAuL2Rpci0wNDgvZGF0YS4wMDAKKzZmNjkyNTcyMjdhMjYwMTI3YTY1YTEzMzUwOGIwMzE5ICAuL2Rpci0xMDkvZGF0YS4wMDUKKzZmODZjOWM5ZGRmMzFmZmY0MWE2ZTQ4YjUyZTA1YTA2ICAuL2Rpci0wNzgvZGF0YS4wMDMKKzZmOTU3OTQ5OTczOTA1ZTQwYmVlYTZlMzNlNDY1ZDBhICAuL2Rpci0wOTIvZGF0YS4wMDYKKzZmYmUzNjQ0YmUyZGUzNDIzMjA0ZDc5YmNlMDZjNDBmICAuL2Rpci0xMDYvZGF0YS4wMDMKKzcwMjk2YzkzOGMxMjIwYmY3MjYxOTdmYzUyMWM1ZGEyICAuL2Rpci0wODMvZGF0YS4wMDYKKzcwNDdlMWI4YTYzNTFkYTM1MDQ5NzdhNGM5NmVkYjcyICAuL2Rpci0wOTcvZGF0YS4wMDIKKzcwNTFiZTgxYzIyYmYwZTM5NGU4ZDg5YTZjYzc4YTIwICAuL2Rpci0wMjgvZGF0YS4wMDQKKzcwNzdjYWM2NDZhNWIzN2E0MTg2NjRkMzY2ZGU4ZDJhICAuL2Rpci0wODYvZGF0YS4wMDgKKzcwYzkxM2JiYzM0NTRkM2FmMWQzYjk3YTA4NTFiOTAzICAuL2Rpci0wODUvZGF0YS4wMDAKKzcwZGJiMGRjYWYyNjEyYjQ5NTJiMzQxNjUxYWQwYzFlICAuL2Rpci0wNjUvZGF0YS4wMDcKKzcxMjE0ZmVjZGVlNzg2NzVhZDk1YjQ5MmRmNDAxN2VmICAuL2Rpci0wNDAvZGF0YS4wMDQKKzcxNzFjN2ExNzk2Y2JjMjM1NWM2YWRiMDNjMzEyZGFhICAuL2Rpci0wMzIvZGF0YS4wMDEKKzcxODQxZjkxYWIxYzg3MzkzOGZmNGI0ZjAxOGIyMjIxICAuL2Rpci0wMTQvZGF0YS4wMDIKKzcxYTIyOTQ0MTJiMzAyOWYyMzZhMjU0Y2IzMzVhYzk4ICAuL2Rpci0xMDMvZGF0YS4wMDgKKzcxYTY5OTRlZjJiZjgzNjhhYWEyMzYyYmNmY2NkY2E3ICAuL2Rpci0wMTkvZGF0YS4wMDcKKzcxYjRkYTkxYmQ1MTQyZDMzNDJkNjdkMzIyZmVmMmU1ICAuL2Rpci0wODQvZGF0YS4wMDcKKzcxZGJmYzkwNTdmY2E1NGE1YTE4MzQ0Njc3NWUzMmI4ICAuL2Rpci0wMTYvZGF0YS4wMDgKKzcyMTRmY2ZmMDJkMDc0MzIxMGQ3NTRhMzdmYjk4YjBjICAuL2Rpci0xMDIvZGF0YS4wMDgKKzcyY2UwZmYzZDc4ODM3Njc1YzUzOGU2YTAyYTY3NTU3ICAuL2Rpci0wNjgvZGF0YS4wMDMKKzcyZWRjMjhlNzFjMjRhOGMwNGZhYWEzYzI2NDVkOTM2ICAuL2Rpci0wNjQvZGF0YS4wMDMKKzcyZWUwYjdmMjM2ZDBjMWRlMTcxYzg2MThhOGU4YzdmICAuL2Rpci0wNzgvZGF0YS4wMDgKKzczMmIxZTBmMGFiNTY4OTg3OTM1ODliZWYyNWYyOWYzICAuL2Rpci0wMTcvZGF0YS4wMDYKKzczYmNiNDljYTVjYTYwOWNiYjY1MTQ3Y2ZkNDA1ZjNmICAuL2Rpci0xMDUvZGF0YS4wMDEKKzczZmQyOGY5MDk5YzM5ZDZkMmM5MjM1NWMwNjBkNmVkICAuL2Rpci0wNjgvZGF0YS4wMDkKKzc0Mzc0ZGVjODc2NTE1MWY4MjcwMjA5ZGNhNmZjNWM2ICAuL2Rpci0wOTgvZGF0YS4wMDcKKzc1MDJhZTA1ZGI2NWEzMjQ1OWEyYjk3OTk2NDE5MDY1ICAuL2Rpci0wNDYvZGF0YS4wMDUKKzc1MmU2ZTAwM2IyYTYzZWU1MzI5ZDk2MjlmYzExZTM3ICAuL2Rpci0wNjYvZGF0YS4wMDcKKzc1M2I1YjkyNWEzNmVmMjY4NzRiNTNkZjJlYmZhMDYxICAuL2Rpci0wNzUvZGF0YS4wMDYKKzc1M2UwNjUxNDExNzZmZjU5NmJmMmUxYWU2MWVlN2ViICAuL2Rpci0wNTEvZGF0YS4wMDcKKzc1NjQzMmQ4ZjcyYWFkMDM4ZTU0ODViYmUyNGJhZmFmICAuL2Rpci0xMDYvZGF0YS4wMDAKKzc1NjVkMTY3NDE2NGEwMTVjNDJhMmY1MDExY2MwODdmICAuL2Rpci0wMDAvZGF0YS4wMTAKKzc1YWViM2VhNGZiZDFkNTA0MzBiYmUwNGUyOTMyYjE2ICAuL2Rpci0wOTMvZGF0YS4wMDEKKzc1YjcxM2Y3ODVhYzRhOWIxZDA4ODQyMWYyM2VkMWRkICAuL2Rpci0wMDgvZGF0YS4wMDYKKzc1ZGY3ZjM2ZWVmYTQyYzM2MzhiYzViNmE5N2Q1NWNjICAuL2Rpci0wNjIvZGF0YS4wMDYKKzc1ZjRhY2VkY2NlM2RlODlhMDViNGMwOThiNGY4MTE4ICAuL2Rpci0wODQvZGF0YS4wMDAKKzc2MWM4ZTQxNWRmZWEyMjZmNTNiZTI5NTc3ODBiYTY5ICAuL2Rpci0wMDAvZGF0YS4wMDAKKzc2M2M3ZDQxMjEwYTBjYTk3NWViOTlkMGUxN2Y0YjIwICAuL2Rpci0wNTgvZGF0YS4wMDcKKzc2NTI4NDY5MzJiZDU0N2M4MTRlYTg2NDYyODkxZmU1ICAuL2Rpci0wMzYvZGF0YS4wMDAKKzc2NmJlMmEwMDRjZWEyZjg0ZjlhZWI0MGViOWU1MTI0ICAuL2Rpci0wMDYvZGF0YS4wMDQKKzc2NzJhM2E2MzFkOGNlYmFlZWIxMGI0ZWVlZTJmMzc0ICAuL2Rpci0wOTcvZGF0YS4wMTAKKzc2N2QwYzQ3NmM5NDY4ZDYzZTA4NzFhZjJjZWYxNzM4ICAuL2Rpci0wNjAvZGF0YS4wMDkKKzc2YzllZmVmYWE2MGVlM2ZiYTc4NTk3YjMzYzVmNTc1ICAuL2Rpci0wOTAvZGF0YS4wMDQKKzc2ZTBhMTgxOTZlNmI5ZThmMTg2MDc5MWQ1ZTcwMTQ2ICAuL2Rpci0wNzUvZGF0YS4wMDgKKzc3MWIwNWZlYTViYTZkYTRjZGJhODQ2ODNjMDcwYzk1ICAuL2Rpci0wNTMvZGF0YS4wMDYKKzc3NTg2YjBjMjExYWU5MDZiZTkwOTRkMDQ5MzcwNjc4ICAuL2Rpci0wMjEvZGF0YS4wMDMKKzc3YzMwNmQ4NTBiZWQ3MGFmOWE0MzNhNjg1ODIwNDMxICAuL2Rpci0wNTAvZGF0YS4wMDAKKzc4N2Q3ZTA4OWIyNTIwZmIzMjM4MjVjMGYzNGYxMDE5ICAuL2Rpci0wNDcvZGF0YS4wMDQKKzc4OWFlN2U5OWEzYTNmZjQxNjg4ZDBkYTBiYWE1NDkxICAuL2Rpci0wNDkvZGF0YS4wMDgKKzc4YmMwMjAxODhhNTkyN2QxYmRkOGEwMDkxNmU3YmRjICAuL2Rpci0wNDcvZGF0YS4wMDMKKzc4ZTRhMjlkODY2ZWVlZTZmMTZkYWMyOTIzZmY5MDM5ICAuL2Rpci0wMjAvZGF0YS4wMDIKKzc5YWRmYjNkMmE3NDg3OTMyNTExYTVhNDI3OWI2MWQ0ICAuL2Rpci0wMjcvZGF0YS4wMDAKKzdhMjdhNjY2ZTI3Mzc4NDEzNjcwNTZhOWQ4ZmQ5ZDVjICAuL2Rpci0wNjAvZGF0YS4wMDIKKzdhNTNkZGRiNzBhZWU1OGU1NjYxNDI3MjQ5ZWU3MDM4ICAuL2Rpci0wNzYvZGF0YS4wMDgKKzdhOTVhOTRmYTAyZWZmYTA5ODk1YjRjZjlmODA2ZmE4ICAuL2Rpci0wNTMvZGF0YS4wMDkKKzdhZGVmNjA0MTY3YzJhNzAzMWQxMWE2MTg3NmY1ZTNmICAuL2Rpci0wNTYvZGF0YS4wMDYKKzdhZmNjMThmZGVlZDI0YTRiNjU4MmYwY2I4YzhkNjNhICAuL2Rpci0wNzkvZGF0YS4wMDcKKzdiODA2YzBhM2JkMTI5NzNjNTU0MGE0YTY2MWVhNjk4ICAuL2Rpci0wMTAvZGF0YS4wMDAKKzdiOTFkMTBkYzlhNzM1MDFlMjY5NWZkMDNlZmNhOGE1ICAuL2Rpci0wNjQvZGF0YS4wMDQKKzdiYTY3ODFiOWY2YTIxMDJmNmVlNzdlNGJjZDY3ZTdkICAuL2Rpci0xMDIvZGF0YS4wMDcKKzdiYmM2YTNkMDhjOGFhZmU0OWYzODI4NmVhMTkwNzM2ICAuL2Rpci0wNTQvZGF0YS4wMDgKKzdiYzBmZjhmNThiMDUwZTM1ODhhNzBlYTVhODk5YzJhICAuL2Rpci0wNjkvZGF0YS4wMDcKKzdjMjk1NWNiZThkODYzNWI0M2YwNjdiNzgyYThkMjJhICAuL2Rpci0wMTMvZGF0YS4wMDIKKzdjOTZlZWViNjBhMDczOTI5MDE3ZTg4MzAyODdmN2FkICAuL2Rpci0wOTQvZGF0YS4wMDcKKzdjZWRmODk4YThmZTBkY2Q5ZTZlMmZkOThhNzRhYjhiICAuL2Rpci0wODIvZGF0YS4wMDUKKzdkMzI0MjViN2MxMDQ2MDRmOTBlZjUwODFhMDY2ZDY1ICAuL2Rpci0wMTUvZGF0YS4wMDIKKzdkYmM0ZDBiNWUwOTJlYzA3ZDcxODIxZDA2Y2VjMTUwICAuL2Rpci0wODYvZGF0YS4wMDMKKzdkZWFiZmRkYTY4YzA5Y2E3MjEyZWEwNTY1OWU5OTI3ICAuL2Rpci0wMTcvZGF0YS4wMDQKKzdlMjZjYzMwNjEyMzU2YTM0M2IzOWYwMjI5YWMzZDQ2ICAuL2Rpci0wMTkvZGF0YS4wMDMKKzdlN2MyYmFmMWNjNzU2MmI0MDdmY2ExMDg1YzA1ZDE2ICAuL2Rpci0wNzQvZGF0YS4wMDQKKzdlOWIwZmY2NmVmODBiYjUyNTc4MzFmN2QwNDk2MWI1ICAuL2Rpci0wMjAvZGF0YS4wMDgKKzdlYmU4MzZkODQxYjYzNjYyZWVhZDZiZWI0MTJkNGJjICAuL2Rpci0xMDcvZGF0YS4wMDAKKzdmNDllNzk4NTFiN2I0NWNkMmQzMzE3NWZhMWIyOTY5ICAuL2Rpci0wODEvZGF0YS4wMDEKKzdmNjY3ZmJkM2NjM2YyODU5MzJhYWY5MmRhMTg5ZDFjICAuL2Rpci0wNDQvZGF0YS4wMDQKKzdmODRhZDIyMjY5NTJkYzNhMmNhZDM4YzNlZTI5NzBjICAuL2Rpci0wMDcvZGF0YS4wMDEKKzgwNDUxNTExOTJiNDlhOGRhNGQyYzhlNjc2MmNjYmEyICAuL2Rpci0xMDcvZGF0YS4wMTAKKzgwNDhlMGNiYTIyMmNjMTY1NTc1ZWFjZTM5MjJlNWIwICAuL2Rpci0wMzkvZGF0YS4wMDAKKzgwNDlhYTc1ZWU0Y2IxYjRjM2JiYTU5ZGY2N2U0N2RkICAuL2Rpci0wNjgvZGF0YS4wMDIKKzgwOGFhZDgyNGI5ZTJlNDY1YmNhNDFlZmQxZjUyOTU0ICAuL2Rpci0xMDAvZGF0YS4wMDUKKzgwOTQwZmFkNzVjNzI0YTk5MDc2YzM3Njg5MjA4M2Y1ICAuL2Rpci0wMDgvZGF0YS4wMTAKKzgwOWFkOGY4N2IxZDM0OTUzODQ3OWViODI1NWZiZDk1ICAuL2Rpci0wODcvZGF0YS4wMTAKKzgwYjEyNjMxMzI4YjBkYTE1ZGVmNWFiN2ZmNTkyM2ZhICAuL2Rpci0wOTQvZGF0YS4wMDIKKzgwYjNhZGJlYWY3NzUyZjRiMjg2OTBiZjM0Mjc3YTk3ICAuL2Rpci0wODIvZGF0YS4wMDkKKzgxMWYyMjIyYmYzZTMyNjFlZGRmYTdjNWIzZDA4MWI5ICAuL2Rpci0wNDYvZGF0YS4wMDkKKzgxMjAwODQ2NGU2Mzc4ZjQxZDY5OTJiNWZmY2JlYjg0ICAuL2Rpci0wNDYvZGF0YS4wMDMKKzgxNzc0OTI3OTk1ODQyODhiNmQwOTEyZGRjM2M1Nzg4ICAuL2Rpci0wMTAvZGF0YS4wMDIKKzgxZmQxMzg3ODQwNjU0NGQzOTZmYjBkOTA3YzlhNDFiICAuL2Rpci0wNDUvZGF0YS4wMDYKKzgyMDBiZGMxMDQ4MGMwZjMyZTJmODNjZDY4NTE1ZjdlICAuL2Rpci0wODQvZGF0YS4wMDYKKzgyMDQwOGFjZTM0OTMyNTBkOThlODY3NGI4MTg3YTkxICAuL2Rpci0wNTIvZGF0YS4wMTAKKzgyMTE3MmU1NGU0YWZkNjJmNzA1ZDIyNjMzMWM3ZmI1ICAuL2Rpci0wODUvZGF0YS4wMDUKKzgyNjgxMmEzNjEwNWZjZGY0ZDU1MDBhNmRmMGYwOGQyICAuL2Rpci0wODUvZGF0YS4wMDkKKzgyZTE2MGNiNjhmY2Q3MzFmZmQ4Yzk4MmViNjY5OTIyICAuL2Rpci0wMzQvZGF0YS4wMDAKKzgyZjJiZGNiNDcyOGUzYWQyYWQ0MjY4OGM3NzYwNTFmICAuL2Rpci0wMDYvZGF0YS4wMDgKKzgyZmQwYzdiNzIzOTk5MjJjOTE1ZDU2ZmY2OTY2ZjA5ICAuL2Rpci0xMDUvZGF0YS4wMDcKKzgzOTYxY2EzYTdmZGNlN2VjNzA2OTZlMjE3NDY1M2M3ICAuL2Rpci0wODYvZGF0YS4wMDQKKzgzOTkxZDU3M2JiZDY0MzQ5M2M5NGZlNzZmY2E3N2ZjICAuL2Rpci0wMDYvZGF0YS4wMDcKKzg0NDU1ZTI3OTUyNzY4MmRjMTY1OTdjY2Q2NGJhMjYwICAuL2Rpci0xMDMvZGF0YS4wMTAKKzg0N2NlOTFjNGYzNzk2MGJmZjVkMzQwMjBiNDJlZDUyICAuL2Rpci0wNjkvZGF0YS4wMDMKKzg0N2U5NDE1NGZlMzlmY2I0MDk3NDkwMWZkMDViNTlkICAuL2Rpci0wNTcvZGF0YS4wMDkKKzg0YTdjZTM4YzYyMDJmZGI2Yjg5OGRmMjg1NDQ2NjYzICAuL2Rpci0xMDYvZGF0YS4wMDgKKzg0YWJhMmY1NjE4MTNhOWJhYzBiNGMwNjYyMDE1MmFlICAuL2Rpci0wNTEvZGF0YS4wMDEKKzg0YzU3NWJjMzlkNmMwYzkxNjAwYTJkZDllNDUzNjk4ICAuL2Rpci0wNzgvZGF0YS4wMDIKKzg1MTJlMDJlNDQxMDNmNjc2N2IzMzQzNDVkYzczNTc1ICAuL2Rpci0wNDkvZGF0YS4wMDMKKzg1MjBiZGNkMzY1ZGJiZWE1NmI0OGUxODFlODkyZTZmICAuL2Rpci0wMzUvZGF0YS4wMTAKKzg1NjE2YzBkYTY2MmYzOTZkMzAxY2IxZTZiZGQ3YmQ0ICAuL2Rpci0wMTMvZGF0YS4wMDQKKzg1ZWM4MzZlNjdlNmYyYmFlZWMwMWY2NjVlYjIzZTI5ICAuL2Rpci0wOTUvZGF0YS4wMDMKKzg2MDMwNjdjMTkzZTRhMWMzNTc4MDFiMzgxNjQxZGZiICAuL2Rpci0wOTIvZGF0YS4wMDMKKzg2MTFhNjZhYjAxMTAzM2IzYzkwNmJhN2I4OWU2YzJkICAuL2Rpci0wMzcvZGF0YS4wMDAKKzg2Mzc4YzJlYTM5NjU4NTI5N2YxNjU1MzFlNmM3ODkwICAuL2Rpci0wMjUvZGF0YS4wMDAKKzg2NjQzMGI1ZDM5MTFjNzM2Mzc2ZDdlNjYwYTgxZjAwICAuL2Rpci0wNDIvZGF0YS4wMDcKKzg2YmMzNjJkZGMwY2VjZGI0OGU0ZWY0ODllZmU5ZGQ5ICAuL2Rpci0wMDUvZGF0YS4wMDgKKzg3MmE3M2JiY2UyYzg0OGE1ODRlOTM4MmQ2MmE3YThhICAuL2Rpci0wOTAvZGF0YS4wMDcKKzg3NGM5M2UwNWY0ZjMyYmVmZjUwNTFjNGFmODZiOGU0ICAuL2Rpci0wNzIvZGF0YS4wMDAKKzg3NmEyZGQzZDYzMGQ5ODE0MzIwMzY5Mzg3NGY2MGQwICAuL2Rpci0wOTEvZGF0YS4wMDAKKzg3YTRhMTNhMTViMTc1YjhiOTQzY2VmZGZlM2U3NGU5ICAuL2Rpci0wOTEvZGF0YS4wMDgKKzg3ZGNlZDgyNGU4NDEzZTAyY2RiZjUzOWY4ZGUwNjFiICAuL2Rpci0wODYvZGF0YS4wMTAKKzg3ZjU4ODFkNWM0YTg5NDA4NTMwN2FhMTBmZGIxMDVhICAuL2Rpci0wNDEvZGF0YS4wMDkKKzg3ZjhlOTJjOGYxYTFjODQzMzM5ODgwOGFiYWY4MTY1ICAuL2Rpci0xMDkvZGF0YS4wMDMKKzg4MTI0MzcxNmJhNGUzYzVmZjNkZDM0MmMyMWMwNDBiICAuL2Rpci0wODIvZGF0YS4wMDMKKzg4OGRhM2QyNjY1NjQ0MmFhMWMxOWUyZTQ3N2U1OWRlICAuL2Rpci0wODMvZGF0YS4wMDkKKzg4ZmExYmQ4N2ZhMzFkODUzZTM2YmQ1MDM1MjYyMjdkICAuL2Rpci0wNDMvZGF0YS4wMDUKKzg5MjIxZDAxYzg5NDI2MmU5N2IxNWU3ZjU3OTFlMTRkICAuL2Rpci0wMTQvZGF0YS4wMDEKKzg5N2VkM2Q5ODRiZjVmMTM2OGZhYmY0OWYzYjBmMTJiICAuL2Rpci0wNzIvZGF0YS4wMDEKKzg5YTUwM2Y1ZDFhMWQ5Yjk0ZWFkZjE0YTNkN2E3ZGQ1ICAuL2Rpci0wNDUvZGF0YS4wMDAKKzg5ZTYwODFjMzVjZGQzYjg2YTgzNmNmZjUxOTcxMTg0ICAuL2Rpci0wNjUvZGF0YS4wMDkKKzg5ZjBhY2Q3NWNhOTYzYmVhYjBjYWJiZmZkNjI4NzI0ICAuL2Rpci0wOTEvZGF0YS4wMDEKKzg5ZjQ5OWIwZGE0MGFmNzY4MDJmMGUwM2RhNzdmNmY2ICAuL2Rpci0wNDAvZGF0YS4wMTAKKzhhMDEwYjE0ZWY2NzZkNDMwNGVlZjczYjFmMWY3OGUyICAuL2Rpci0wMDQvZGF0YS4wMDcKKzhhMTI4MzQ5M2VlNjBiNDk0YTU4ZTZhY2U3NDUyOTA3ICAuL2Rpci0wODkvZGF0YS4wMDkKKzhhNjJhODc0MmVkNzgwMjMwNDNkNGVhZWM1YjFlOTA0ICAuL2Rpci0wOTgvZGF0YS4wMDIKKzhhNmIwYzRmMmMwNGU5NmQ1MzE1ODY4OTk2ZmNkZGE3ICAuL2Rpci0xMDgvZGF0YS4wMDQKKzhhODJmZjQ5ZTcxMGJkODg0NTA4NjdhM2Y0NDBiMGRhICAuL2Rpci0wNzUvZGF0YS4wMDkKKzhhODdiNGUwMGM1MzFjZDU3N2EzOTAxMjM5N2EwZjg3ICAuL2Rpci0wNzkvZGF0YS4wMDAKKzhhYjkzYmZkZDllNjJmM2Q2ZGEwZGJiYzUzZWJmZmExICAuL2Rpci0wNzYvZGF0YS4wMDQKKzhiMDliN2Q2MmEzNzM1NjgxZGEzNjM3MTY1N2UxNGYzICAuL2Rpci0wMzkvZGF0YS4wMDcKKzhiOTNmMDRiNTJiZDFmYjA3ODFmOWQ0NmFjN2EyOTBmICAuL2Rpci0wMjUvZGF0YS4wMDIKKzhiZDU2NTBiMGU3ZDRmYmY2OTczMjE0YzJmNTA3ODAxICAuL2Rpci0wNDcvZGF0YS4wMDIKKzhiZDViZmFjMTA2YzY4Y2ZmYjNhMDk4YzRkMTU3Y2YxICAuL2Rpci0wNjMvZGF0YS4wMTAKKzhjNGZmOGY3ODBhOThlMzkyOTVmNTAwMjc4YTFkODg3ICAuL2Rpci0wOTUvZGF0YS4wMDkKKzhkMTExMGY5YWNjYzgwNGZjNDhiYjJlZTRhZjZiYmYxICAuL2Rpci0xMTAvZGF0YS4wMDkKKzhkNDI2MWU4MDM1MjA3MGQyODAwZjUyODkzMmUzN2Y0ICAuL2Rpci0wNTUvZGF0YS4wMDAKKzhkYjA4ZjY2ZGVlMTlhNTQ4YjNlNmViM2ExNTYwOTgwICAuL2Rpci0wOTQvZGF0YS4wMTAKKzhkZjc1ZmU3MTBkZGYyMzE2ZGQxM2Y4MDY1ZTRiZjQxICAuL2Rpci0wODcvZGF0YS4wMDEKKzhkZjgwMjc5ZjJiMjA1MWQ2NWJjZjFmN2E3ZGVhN2Q5ICAuL2Rpci0wOTcvZGF0YS4wMDAKKzhlNThhNDJjZjM4MzE3M2MwZGNkNjY5NDQwMmJjOTQ2ICAuL2Rpci0wMTQvZGF0YS4wMDMKKzhlOTkzMzkzNmUwMjYxNTk1MzRmNDUxY2QwNTQ4ZDRiICAuL2Rpci0wMjkvZGF0YS4wMDEKKzhlOWU0NTIxOGQxN2FlMWFhYzU3ZDI0YmE0NDE3ZDljICAuL2Rpci0wNzAvZGF0YS4wMDAKKzhlYWIyYjFkMWVhMmE1OTI2ZWE1ZTI3NjU4NzU0M2M0ICAuL2Rpci0wMjQvZGF0YS4wMDAKKzhlZTY1ZTgwZGEzNDQ5NDI1ZDZjOGNlZGM3YmU3MmZjICAuL2Rpci0wOTkvZGF0YS4wMDEKKzhlZjY0ODc1YTliOTk2OTg2OWNiMGYyNWEzMmZhMGZkICAuL2Rpci0wMzkvZGF0YS4wMDQKKzhmN2I4OGFmYTJjZmFlMGEzMzdlMWUzMzBlOTUwN2FhICAuL2Rpci0wNzUvZGF0YS4wMTAKKzhmZDRlYWI3NjhjNGI1OTA1ZTQxNjcyNWRlNDIzZjU1ICAuL2Rpci0wODcvZGF0YS4wMDYKKzhmZmM5MjdkZjg2ZGQ0YzVlMzk2NmU5ZDA1NjZlNDQ5ICAuL2Rpci0wMTQvZGF0YS4wMDAKKzkwNGE2ZDFiMjliNmIzNDZkMTdmZTU1NDhiOTBjYjZiICAuL2Rpci0wNTkvZGF0YS4wMDUKKzkwNGY2MThmZTg0OTYwZjRkNDk1YTJjYmY0OTRhMTc5ICAuL2Rpci0wMjYvZGF0YS4wMDgKKzkwZTY0M2EwZWFkMjRmMTE0NDliZTJjMTNkNzM5YTUzICAuL2Rpci0wMTcvZGF0YS4wMDcKKzkxMzYxZmM5NGExN2Q2YmQwMDFkMTM2MzU1Yjg1MzU0ICAuL2Rpci0wMjQvZGF0YS4wMDgKKzkxODUwYWEzODMxYTgyMWQzNzVjNDE2Y2YwNDhkODMwICAuL2Rpci0wMTIvZGF0YS4wMTAKKzkxZjE0OTlmOWZjMjFlNzQ4Nzk0NTk2MDBhODI1NjU0ICAuL2Rpci0xMDMvZGF0YS4wMDAKKzkyMDdlYzg3N2MyZmMwYzg4N2FkYmU4MWI5N2Q3MTYwICAuL2Rpci0wMjMvZGF0YS4wMDkKKzkyM2ZhZTFhYWQxZjdmMDg3ZjdkNTZiZTBhOTQ5YWJiICAuL2Rpci0wMjQvZGF0YS4wMDcKKzkyNGU2MDhlMTZkMTg1ODlhOTkzMmZjNzZhYjdkYWQwICAuL2Rpci0wOTAvZGF0YS4wMDUKKzkyNzk2ODgyOGQ1YzMwNjU4MDQ0NjZjMGI2NTRkZmI0ICAuL2Rpci0wNTQvZGF0YS4wMDUKKzkyOTdjOGUzMjA5YWQ2YzNlOWViODAzZDUxMTQ3NTNjICAuL2Rpci0wMzAvZGF0YS4wMDgKKzkyYjM4ODcxNzkzNjI1NTdhOTA2M2FkZjU0OGIyYmQ3ICAuL2Rpci0wODEvZGF0YS4wMTAKKzkyZjY2MmYxNmMzNzY4ZGI1ZWVkYTNiNjBmNGYwYWRlICAuL2Rpci0wMjIvZGF0YS4wMDMKKzkzYjdjNGQ1MzczYTM2NGI4ZTNlMjZkMDc3Yzk4MGM3ICAuL2Rpci0wNzkvZGF0YS4wMDIKKzkzZWIxNWI1M2U2ODc5ZWJhOWUyM2MyZjYzNmU3M2E2ICAuL2Rpci0wNjEvZGF0YS4wMDAKKzk0MGJlZTFkMzMwMDAyY2YyMzRhMzM4YjYzZDA3OTExICAuL2Rpci0wNjgvZGF0YS4wMDEKKzk0MTcyZTkyNGE3Y2RkYTYyOWYyMDJlMTE1ZTg2ZTk2ICAuL2Rpci0wNjIvZGF0YS4wMDcKKzk0NDQ5MjIwZmNhNmE5NTg5Mzg1N2E0NTllZWVlZWM2ICAuL2Rpci0wMDAvZGF0YS4wMDUKKzk0NGE2MGM1ODIwODg5YWM2YzIwNDM3OGFiOGVjNjg0ICAuL2Rpci0wNjUvZGF0YS4wMTAKKzk0NjExZjk3ZjMwYjMyMTZlZTMwNmE5N2VlMDYzMjg1ICAuL2Rpci0xMDYvZGF0YS4wMDIKKzk1YzRmNDRkYmM2NjJhMWI4MGYyMzFjMDNhMTgzMWEyICAuL2Rpci0wMzEvZGF0YS4wMDUKKzk1ZjM0YmY1NjA5NzdhYWJmNTZiMjM3NGJmZDgwMWZjICAuL2Rpci0wMzEvZGF0YS4wMDAKKzk2MGIzNDMzYWRkYmU0MTk0NDU1MDZlNDA3MGU3MDRjICAuL2Rpci0wMzEvZGF0YS4wMDQKKzk2ZmNjNWRmMzM5Y2FmZjE0MzExYTI0YTgxMTM0NzE0ICAuL2Rpci0wNDIvZGF0YS4wMDYKKzk3MDZkZDdhN2FlOTc5Yjg1ODE1NWRlYThkNTRjYjRlICAuL2Rpci0wMzMvZGF0YS4wMDgKKzk4NzNmY2FhYWYxMjlkOTIyY2IyOWMxMGRkNzY2NWExICAuL2Rpci0wNjYvZGF0YS4wMDIKKzk4OTM0ODEyM2RjZDA4ZWUzM2MzNTFlOTE1NmRkNTgxICAuL2Rpci0wMDUvZGF0YS4wMDkKKzk4YWYyM2FjNGRjODkxMzNjNzQ5Y2I3OTY4ODc4ODU5ICAuL2Rpci0wNDEvZGF0YS4wMDUKKzk4YjcyZmExNTI2ZTIwYzE2YWIwMjU0NmI2NTZhOTI1ICAuL2Rpci0wNjkvZGF0YS4wMDUKKzk5MDE5ZTVmZWVhY2VjZDYyOGI3OWIxZWI3ZTE2MWY3ICAuL2Rpci0wNzEvZGF0YS4wMDgKKzk5MTRiZWFjMTQ2ODE0OTNmN2E3YWExOWEwZjFiZDhlICAuL2Rpci0wMzUvZGF0YS4wMDAKKzk5M2MyYzFiNjRkNGQ5MDQ5ZGY2ZDVkN2NiNTZjNGM3ICAuL2Rpci0wNTEvZGF0YS4wMTAKKzk5OTQ5MGJjMzNlYzJhNTZhYjIzMGI2ZGE4YjFjMWQxICAuL2Rpci0wNDUvZGF0YS4wMDIKKzk5YjcwYTNiNTIzNWViZmQxZGU2ZTA5NmQ1NGFiNDFmICAuL2Rpci0wODMvZGF0YS4wMDgKKzk5YjgxYjEwMjQxMjk5OTFlMTliMDEwZWUwZjEyOTllICAuL2Rpci0xMDgvZGF0YS4wMTAKKzlhMGUwY2I5YTJmODlmYThjODg4YTczMTBiNDkxYWEzICAuL2Rpci0wNzQvZGF0YS4wMDIKKzlhMmQ2M2MxYjQ3YWEzNWEwZDY0N2QyNzhkN2IxM2IzICAuL2Rpci0wMjAvZGF0YS4wMDUKKzlhNzdiMDE3Y2I3MTQ2NDhiYjMzODg1MzcxN2FkN2U4ICAuL2Rpci0wNTkvZGF0YS4wMDYKKzlhZjMwNTJkNzllMDMyMzRkNTE3OTBiY2EzZjYyYWJkICAuL2Rpci0xMDMvZGF0YS4wMDYKKzliMTMwOGQ5YTcxZjNkMDdkZjIwYzY0ZWU5NDg1MjE1ICAuL2Rpci0wMDkvZGF0YS4wMDQKKzliMjQzZTc5MjMyMDdmZWViYTQ0ZWY4OTY3ODM1MjEzICAuL2Rpci0wMjkvZGF0YS4wMDYKKzliMjVjYzc3ZWMzODg0YjliMTE1ZjM0YTYxYWE2YjFhICAuL2Rpci0wMzYvZGF0YS4wMDIKKzliNDQ3NWQ2OGQ5OWIwZDhiNWI3MjRiMTYxZWMzODU4ICAuL2Rpci0wNzkvZGF0YS4wMDMKKzliN2JmYTNkZmIxMjIzYzA4NGE3MzJhNDYwMDEwYmE2ICAuL2Rpci0wMjcvZGF0YS4wMDQKKzliZDIzOTNmNDE2NzEwNGM2MDJmNDYyY2ZmOTczYzlmICAuL2Rpci0wNTgvZGF0YS4wMDUKKzljNDMwZTZkYjhmMTUzMGRmY2FiNDBkZTFhZTMyMGVlICAuL2Rpci0wNTgvZGF0YS4wMDAKKzljNDhmZjBlOWZjMjEzY2IyYjQ4M2RiMjMwZmViMzQ1ICAuL2Rpci0wMjIvZGF0YS4wMDkKKzljOWEzZWZmNTQ5ZGVlODhhMzVjNTg5ZGRkOWQyMThiICAuL2Rpci0wMTgvZGF0YS4wMDEKKzljY2QwNWFjOTZmZTkxOTJhNmUzYzliODY0ZjUxY2M1ICAuL2Rpci0wNDMvZGF0YS4wMDIKKzljZjMzYTdjODkxZDZjNzQ3MjI2N2Q1N2NhNmNiYzY2ICAuL2Rpci0wNDYvZGF0YS4wMDIKKzlkMjFmYjMwYWZhYWVmNzlhZWNiMGRhOTgxNWMzNDdiICAuL2Rpci0wNTAvZGF0YS4wMDEKKzlkZjJjZDlmOTVmZTk5N2M4ZGU2MmM1NDgxZDNjOTNmICAuL2Rpci0wMzQvZGF0YS4wMDMKKzllM2I4NDMwYzdjYjg3MDgwM2VjMjg2YzEzNzE4YjAyICAuL2Rpci0wMDMvZGF0YS4wMDMKKzllYTljN2Q2YjlmYjMxODhiYTA4MjExMzZjMjI4ZTdlICAuL2Rpci0wOTUvZGF0YS4wMDQKKzllZGY5YTA1NjA3NTIwMDhjZWFhYTRhZTNlZDU3ODVlICAuL2Rpci0wNzEvZGF0YS4wMDUKKzlmNTQ5NjU2NDY2ZjcwZjYyMmM5ZGYxYzRjY2M5NTIxICAuL2Rpci0wMzMvZGF0YS4wMDUKKzlmODA5NTgxNDBkNjViNWUwZmI5YTUyMTY3YjFjNDIyICAuL2Rpci0wOTkvZGF0YS4wMDYKKzlmYTdmOTJhMjFiYTUwMDE0MGFmZjE3ZDg3NjJhNmFhICAuL2Rpci0wNzYvZGF0YS4wMTAKKzlmZDNiMjgwNGY1OTMzNzRkZWY1YTMwMmE4YjQ1MGM0ICAuL2Rpci0wNzQvZGF0YS4wMDUKK2EwMzM5ZGUyYzAxM2YyZDAzZjc1NmE4MTQ0NjM5ODk3ICAuL2Rpci0wNjEvZGF0YS4wMDkKK2EwYTI3MGNlMzc5ZmQ0ZDk5MWQ5Y2E3MjhkNjNiMzZhICAuL2Rpci0wMTIvZGF0YS4wMDQKK2ExMjFiMzBmYTBhZDUwYjRlODI5YTQ1ODc5Y2M1ZWRmICAuL2Rpci0xMDEvZGF0YS4wMDYKK2ExOGI2OGM3N2NlOTBiOWJkYWNhMWFlNTUyODIzMzdkICAuL2Rpci0xMTAvZGF0YS4wMDQKK2ExZTJjYWQ4ZTk3YzgyZjMyNTM0NDJjZmY5OTdiY2YwICAuL2Rpci0wODAvZGF0YS4wMDAKK2EyMzhlMjUwNzIzYjQxMTAxZjA3Y2ZjYTE3ZjExNTY0ICAuL2Rpci0wNDUvZGF0YS4wMDgKK2EyNDZjNWM2YzFmODIzZWI0MTNhZjM3ZDM0YjNiZmZmICAuL2Rpci0wNzcvZGF0YS4wMDgKK2EyOWMyNGUyMWU2ZjYwNzU3MGY3NmU1NjI1ZDNkYzk5ICAuL2Rpci0wMzIvZGF0YS4wMDMKK2EzNDFkOGIxNTJiZThkMzQxNzgyZGI1YWIxZDdhYWJmICAuL2Rpci0wODQvZGF0YS4wMTAKK2EzNWVjODZiMzFkNzM4NDkxNDc4ODBlZWE0Mjk3ZmQwICAuL2Rpci0wNjMvZGF0YS4wMDEKK2EzODkxY2Q2ODU1YzM0NmIwN2Y2ZDFjZDM4NWM0OWI1ICAuL2Rpci0wOTQvZGF0YS4wMDQKK2EzZDk0MTBlZmIwYjFmZjY2MDBiM2Y2Mjc5NzFmZDE2ICAuL2Rpci0wNDIvZGF0YS4wMDEKK2E0MDU4NzEzOGNlZDA0YjIwZmIyNTI3MzU0NjA2ZjJjICAuL2Rpci0wNzYvZGF0YS4wMDYKK2E0Njk4MTBlNGQxZGFhMTNmM2U5YjJlNmY2OGI4ZDEzICAuL2Rpci0wMDQvZGF0YS4wMDYKK2E0YzEzZGE5MGNiY2YyZjE2MjRhNGIyYzJhOWJiMjMzICAuL2Rpci0xMDkvZGF0YS4wMDgKK2E0ZDRkNDkyMTc5ZWIyZGNhN2NlMzA1NzFjOGVmM2JhICAuL2Rpci0wMDcvZGF0YS4wMDQKK2E1MmRhMGFhMWE3YWNkODc3OGZlNmY0MGYwZjhjMGE5ICAuL2Rpci0wNjEvZGF0YS4wMDQKK2E1NTRiOTA2OGVmNDA2Y2EzNzJmOTE4OTMwNGE4MmI3ICAuL2Rpci0wNTkvZGF0YS4wMDMKK2E1ODFlNzVmODRmNGFjNmFkOWU3MGU1YjZiZWE1M2E0ICAuL2Rpci0wOTUvZGF0YS4wMDYKK2E2MDU1ZDAwNDdkODE0YTMxZjMyZTQxODU0NDFkNGExICAuL2Rpci0wMDcvZGF0YS4wMDcKK2E2MDc0MWUyMDliNzI2ZmRhNGU5NjliZjM0NGY0YWVhICAuL2Rpci0wNjkvZGF0YS4wMDEKK2E2Mzk1YTliY2Y1MzUwNmNlZjFjNmI2MmNjMzdmMmQ0ICAuL2Rpci0wMDMvZGF0YS4wMDAKK2E2NTA0MDk1NTg4NGQxYzZlNGQ1NGFkOTI5OWEwOGUyICAuL2Rpci0wNjIvZGF0YS4wMDEKK2E2NTQ1NzU1MGQyMzgwN2IyMWMxYWZhOTNlOWQyMWVmICAuL2Rpci0wMzUvZGF0YS4wMDkKK2E2NmUyYWVmODAyZjkyMzg1YmYzOGIwMWNlOGIwYzgwICAuL2Rpci0wMzEvZGF0YS4wMDMKK2E2OTUyYzgzZjZhNDA2ZWQxYmFhMmIxMjUxYmNjZmZmICAuL2Rpci0wMzIvZGF0YS4wMTAKK2E3M2FhMjZmNjJkZTk5ZTk3ZTY5MTM3OWZmNjRlODM4ICAuL2Rpci0wNTUvZGF0YS4wMTAKK2E3M2FkNmI4NDdhZjgwYjY2ZjRiMzdiZjc1MmUxMDk3ICAuL2Rpci0wOTYvZGF0YS4wMDIKK2E3OGQ1M2U2MTdkMzFkMjlkMDdhMWJjOGQ0NjNlNDU2ICAuL2Rpci0wOTYvZGF0YS4wMTAKK2E3OTAzMzM0ZGFiMmM5OTQ4YTk0NjBkOTRmZmQyN2ViICAuL2Rpci0wODIvZGF0YS4wMDIKK2E3OTU3Y2QxYmZiMzhiYjI2NWMyZDkwOWJmNGYwYjIxICAuL2Rpci0wMjYvZGF0YS4wMDcKK2E3OWRmNjE1MmRhNGI3OGVjZTY2M2Y0Yjk1ZDIwY2QzICAuL2Rpci0wNDEvZGF0YS4wMTAKK2E3YWE3ZjAyMTNkNDFkYjliN2EyZDYzYzkwZjc3NzcyICAuL2Rpci0wNTMvZGF0YS4wMDEKK2E4MTExYTQ0MzkyNDRlZDlkZTZlMGM1OTQ0ZDdmZmExICAuL2Rpci0wMjkvZGF0YS4wMDgKK2E4MmIxZTc2OWMzM2ZlNzAxMTk0ZDk1ZmNjZjAyOWM4ICAuL2Rpci0wMTAvZGF0YS4wMDQKK2E4NTczY2E4NzE5OTEwZDNlYTI1ODM5Y2Y1MjlkNDQxICAuL2Rpci0wOTEvZGF0YS4wMDkKK2E4NWM2NjI5ZGE1M2QzMmEwZWQwZDNjOGIwYTI2YzcyICAuL2Rpci0wNzcvZGF0YS4wMDUKK2E4YTEzN2RmMDRiODdhYzczNmUxNTg1MTVlYzcxYTQyICAuL2Rpci0wODcvZGF0YS4wMDAKK2E4YTdhYzg3YzQyNmFhMDQ3YjU3M2IyZGNiYzRhMGU2ICAuL2Rpci0wNTgvZGF0YS4wMDgKK2E4YzAzOGEwM2Y1YmMyZTZiNTJmMDJiOGM1YzUyY2IyICAuL2Rpci0wNTQvZGF0YS4wMDkKK2E4YzRjMWY5MjQxMzNlYzBjODM2MDkwMWJjZjZjMTk5ICAuL2Rpci0wOTQvZGF0YS4wMDEKK2E4ZTA2Yzk4MTQ0ODE5ZDk4ZTgwOTQ5MmYwOGFhMjljICAuL2Rpci0wMzUvZGF0YS4wMDEKK2E5M2E0OWZkNzg0YzZhZDkwMzg1ZWEwMjJlY2QyMzQzICAuL2Rpci0wNDUvZGF0YS4wMTAKK2E5NWM0NmFjNzA0N2I4ODY2ZGQ5MjI1ZWU0ZDY0OGM2ICAuL2Rpci0wNTQvZGF0YS4wMDcKK2E5N2Y5YzZjNTIzZjU0NzkwNDYzNzdlY2E3OTNlZjUzICAuL2Rpci0wNDAvZGF0YS4wMDAKK2E5YTUwZWQyYjE2NWQ1NDhhMWFjYTJlNGIzMDZkMDZiICAuL2Rpci0wNDgvZGF0YS4wMDYKK2E5YmEwOWRmNTQ2OTMwYmEyNzY2M2RmMDIyN2IwNDdhICAuL2Rpci0wMDIvZGF0YS4wMDMKK2FhMTIyYmZkNzYwZWE0ZGM1MGFlY2Y0ZjUzM2M2NWFhICAuL2Rpci0wMTYvZGF0YS4wMDQKK2FhM2ViNTNjN2E3YTc3NjkwZTk5NmE1YzBjMWNjZmFlICAuL2Rpci0wMjQvZGF0YS4wMTAKK2FhNjFhNWQ1ZjMzNmIwYjUwZTZiMWQwNzk2Yjg5MGFlICAuL2Rpci0wODgvZGF0YS4wMDkKK2FhNmZlZjYzYzNiMmJiYjljMTdjOWJkNzMwOGM1MzA2ICAuL2Rpci0wMzYvZGF0YS4wMDQKK2FiMGY4ODFmODcyNTYzYmQ3ODQ2YzM0MzJlZjdmY2U2ICAuL2Rpci0wMDMvZGF0YS4wMTAKK2FiMWVhMWZlOTViM2FmN2RiNjRhYThmYTE0Njc2MGJjICAuL2Rpci0wOTMvZGF0YS4wMDgKK2FiNWFjZDZjNTk0MTVlMTNkYzc5MWUzZjMwMGJjY2QyICAuL2Rpci0wMzkvZGF0YS4wMDEKK2FiZjE3NWVmZmQ2YzA0ZGJlZGMwNGEzMWYwMDllZjcyICAuL2Rpci0wMzgvZGF0YS4wMDQKK2FjMDBiYjYwMDFlMzU0YTYwNDA2M2YxZTMxYThmZTNjICAuL2Rpci0wMjgvZGF0YS4wMDAKK2FjMGVlZTQ5ZTQ3MzcyNmRlYjU2ZDQ3YTgyMzE5OGQ5ICAuL2Rpci0wODYvZGF0YS4wMDkKK2FjNmUxZjYxNmZjYWI5M2JlYmVhMTJjM2RkMWZlZmVlICAuL2Rpci0wNjUvZGF0YS4wMDEKK2FjOGU1OTZmZGY2Mjc5ZTQwZmQwMDg1YmIwZjM0MTY1ICAuL2Rpci0wODQvZGF0YS4wMDUKK2FjYzFlZTdmZWJkMTAwYWIyM2I2YTQ3OWQzMDAxODI1ICAuL2Rpci0wNjEvZGF0YS4wMDEKK2FjZGJlMmU0OTZkNmFlMjNjMGYwZGNmYjBlYTZmYWE4ICAuL2Rpci0wMDUvZGF0YS4wMDUKK2FjZTljOGI1ZGQ4ZTU1ZGQxMzczNWM2NDljOWQ0YWY1ICAuL2Rpci0wOTkvZGF0YS4wMDgKK2FjZjVjYjJjN2IxZWI0MzkwYTYwYTE3NzRiYzRiYWIwICAuL2Rpci0wOTAvZGF0YS4wMDkKK2FkMjQxMTRjOWNiOGYwMzVhZGUyZTg2MmQ5YWJhZmE4ICAuL2Rpci0wNTMvZGF0YS4wMTAKK2FkMzIwY2RiZmJmYTVjZjZjN2I3YThjNDBhNjg2MTkzICAuL2Rpci0wMjEvZGF0YS4wMDAKK2FkNWIyZDU0OGRiYmZlNmFiMGUyMTQzN2JiMmUxZjJkICAuL2Rpci0wMTkvZGF0YS4wMDEKK2FkZTk4YWRlYjQ1YWIxOWM3Y2U4ZDQyNzgyZGMwNGE3ICAuL2Rpci0wODcvZGF0YS4wMDUKK2FkZWZjNTg1NmQyYTQ1OTViZWViMWFkY2JkMTcyMjIxICAuL2Rpci0wMTkvZGF0YS4wMDgKK2FlODFjOTUzNzg2Y2VjODJkMGYxZjk0MzViMGQwYzBkICAuL2Rpci0wNTYvZGF0YS4wMDkKK2FlYmJlZWI1ZTQyMWNiOGFkMmU4MzFhMzAyNzQyYTZlICAuL2Rpci0wODEvZGF0YS4wMDMKK2FlYzQ5NzhiODE0NDFkYTljYmE5MDA4NTQ5ZmQ1OGI0ICAuL2Rpci0xMDMvZGF0YS4wMDcKK2FlZjYyOGQ3Njc2YWUyMTE1M2E4N2UwZjFlZTA4MjdkICAuL2Rpci0wNTMvZGF0YS4wMDAKK2FmOTM4NWI3NjI1Njg0YzNkMTUzODU0YmZiYzQyN2ZiICAuL2Rpci0wNTcvZGF0YS4wMDcKK2FmOTQ5ZTI5MmM3MzZkZWM2NGMyOWIzNWRiYzk0Y2YzICAuL2Rpci0xMDQvZGF0YS4wMDgKK2FmYjY4ZGQ5MDk1NmM3MjljNDkyMTFhYTVjYzk3NGQzICAuL2Rpci0wMTgvZGF0YS4wMDAKK2FmYzVjY2VhZWQ5MDFlM2JhZjI2NDEwZTUzMGIyMTEyICAuL2Rpci0wNDMvZGF0YS4wMDcKK2FmZDA1MTQxYmU2Zjg2NWE2NGU5MzkwOGUwNWFiMmU3ICAuL2Rpci0wNzAvZGF0YS4wMDQKK2IwNTBmNmYwYjU1Y2FmZDkxYWY4YjViZmVkOWQ3ZWYwICAuL2Rpci0xMDYvZGF0YS4wMTAKK2IwNmJjYTUzYjEzMTMwNGE4OWQxNTJmYTg2OWU4ZDQ0ICAuL2Rpci0wMDYvZGF0YS4wMDYKK2IwN2UwN2Q5ZWI1Yjk3NjVkNTkxNjkxMGQzMDIyYTE1ICAuL2Rpci0wNDEvZGF0YS4wMDMKK2IwOTk2NjFkMGRjN2U3NzdlOTRiODhhNzY4NzkyYWJhICAuL2Rpci0wMjkvZGF0YS4wMDAKK2IwZjlmYmMzODg5ODQzNzU2YzJmYmJkYmM4ZTk1YzgwICAuL2Rpci0wNTIvZGF0YS4wMDcKK2IxNDFlMDc0NmQ3NzFiNjQyYjgwNzg5ZTJjZWU3OGI3ICAuL2Rpci0wNTUvZGF0YS4wMDUKK2IxNTQ1OGI4ZDI4YjRmZjI3N2FhMTlkNjQ0YzNmMDFlICAuL2Rpci0wNzgvZGF0YS4wMDQKK2IxOTY5MmJmY2M4ODdhMDMyNmVhMGQ5ZmY3NzdiNzA4ICAuL2Rpci0wODIvZGF0YS4wMDgKK2IxYTBmNjdjMjIyMTFiNjBlYWEzYWQwNDMzMDBlYzM5ICAuL2Rpci0wNzcvZGF0YS4wMDcKK2IxY2IwN2Q3ZjRhYjAzMTUyMmExMDkyY2RhMDA5ZWE1ICAuL2Rpci0wMjQvZGF0YS4wMDkKK2IyMjgzOTFlNWI2NzRmNmUzMjBmNDZjOTJhMjMxYTZkICAuL2Rpci0wMTMvZGF0YS4wMDEKK2IyMzFiMTY5Mzg5MjJiNjJiYzMxM2M0ZGM3OTFlODlmICAuL2Rpci0wNDAvZGF0YS4wMDEKK2IyMzVlNjY3ZmUwNmUyMzMzZDNkNGY0Y2ZlYjExZDhlICAuL2Rpci0wNjEvZGF0YS4wMDcKK2IyNWU0N2I4ZTYwODRhNzcxMDgyYTc5ZDI5NjQxMjVkICAuL2Rpci0wNDIvZGF0YS4wMDgKK2IyYTUwMTdlOTEzYTI1NGIzM2M4ZmM1MWEwMzA0NzQ1ICAuL2Rpci0wMTgvZGF0YS4wMDUKK2IzMjlkYWQ2YWQ4NWM2NWE5MjIyYjhiMjYxZTg2MzYxICAuL2Rpci0wMDgvZGF0YS4wMDgKK2IzM2NkMGUxOGI1YTIzODRkYzA1YTQ2ZjY5YjA5MDU5ICAuL2Rpci0wMDcvZGF0YS4wMDAKK2IzM2YxMzYyNGE3YTdjZmM1MGZlZjA0NTZkNzQ5NDdhICAuL2Rpci0wOTcvZGF0YS4wMDUKK2IzNjdhMDM2M2I1NzRhODQ1NWI4NDFjYWRhMDRhY2NkICAuL2Rpci0wNDcvZGF0YS4wMDUKK2IzYzVhYzlhZjRkN2EwNDMyNTE4MjgwNjQ1Mzk1OGJhICAuL2Rpci0xMDMvZGF0YS4wMDUKK2IzZGZjOGIwZmI3NjE2Mjg3YWY2Zjc3NTcyMDdiNmI4ICAuL2Rpci0wMzMvZGF0YS4wMDkKK2I0MWQwYWZhNGQ1NzgyM2UzNGQxMWU2NGJkNjUzNGE2ICAuL2Rpci0wODcvZGF0YS4wMDkKK2I0NDViN2U2MjRlN2YxZjdhNWJlNjU0MWEzYTkzYThhICAuL2Rpci0wNDMvZGF0YS4wMDkKK2I0NmNmNGE3NjdhMmQzODk4MDBkZGEwMzc0OTE3NDI3ICAuL2Rpci0wNTcvZGF0YS4wMDIKK2I0YzY1MTY2MTgwYzE2ZTU0MzdmYmZlMDNhZjRiNWQ0ICAuL2Rpci0wMTUvZGF0YS4wMDQKK2I0Y2NmOGRhMTQ5OThjYmU3MjFjOTkwZGU0NmM5ZWRjICAuL2Rpci0wMzIvZGF0YS4wMDgKK2I1NGIzOTJiNGNmZjkyZjgxNTFkNThjYjkyZTY4OGEwICAuL2Rpci0wNjcvZGF0YS4wMDcKK2I1OTM0Y2JjZTE2NTFjMTJjYmI0ZTYxOGUwOTFmNDM1ICAuL2Rpci0xMDIvZGF0YS4wMDEKK2I1YzFlNTdmZmEwY2ViMDk0NzE3MGY2MTAwNzVmM2IwICAuL2Rpci0wNDMvZGF0YS4wMDEKK2I1YzhmNGNhOWQyY2ZmNTI0NWI4NDdlMjFjN2RmMDQ5ICAuL2Rpci0wNTAvZGF0YS4wMDIKK2I2MWJmMzE5YzU3ZGE0ZWI0ZjEyMWZkNWM1MzU3NjBjICAuL2Rpci0wMTUvZGF0YS4wMDcKK2I2N2ZiNWVlN2I5MzA2MWFkZTY0OTI5NDkyNTkwZjVjICAuL2Rpci0wOTcvZGF0YS4wMDMKK2I2OTAwNzdlYmIyNWMyNjA1ZWYwZWUzMzcyODk0Y2VjICAuL2Rpci0wNDQvZGF0YS4wMDMKK2I2YzIwY2VkOWZmZTBlOTFmYmY3YzRkNzFjYzQ1MWJjICAuL2Rpci0wNzUvZGF0YS4wMDcKK2I3NTM4Zjg4MGQ5MWEwNzAzNzI5MGY5ODAyN2VkMzA2ICAuL2Rpci0wNDAvZGF0YS4wMDkKK2I3OWYxYmRiNWJiYjQ3ZTVkOTY1ZTkwMTM3ZGRmMjZlICAuL2Rpci0wMTUvZGF0YS4wMDYKK2I3YjdjYWQ4NzIwZDBmOTlmZGJkNzk4NGNhYWQ4ODMxICAuL2Rpci0wNjEvZGF0YS4wMDYKK2I3ZjU2YzllYmFkY2FlOGJkN2IzMGUxNGJkZTBiNWQyICAuL2Rpci0wMTQvZGF0YS4wMDUKK2I3ZjZkMTExOGVlOTMyYzY1ZjFlNWExOTMxZDZjOGZmICAuL2Rpci0wMTQvZGF0YS4wMDkKK2I4NGFjOTZjZWRiNDQyZmUyMzVjZmZjOGFhMzExOTlmICAuL2Rpci0wMTcvZGF0YS4wMTAKK2I4OGM1N2FiYTI2ZjhlMWMwODVjZmM3YWUxMTg4OGQwICAuL2Rpci0wNzMvZGF0YS4wMDUKK2I4YmYxNzFlZDRmNWY5MDVjZjhmN2RhYjZhODJhN2QzICAuL2Rpci0wMjEvZGF0YS4wMDIKK2I4YzMzNmRkNmVjN2RmNWNiM2Y3MGFjNzllMTY5MjIxICAuL2Rpci0xMDgvZGF0YS4wMDUKK2I4ZGU4NDdkOGFmODMyOTIwNmI1MTZmODI1OTQ1NDM5ICAuL2Rpci0xMDcvZGF0YS4wMDgKK2I5MTA1MzA1OGY1Y2I4NjhhNjVlYjAwZmZjOGM4NWRiICAuL2Rpci0wMTgvZGF0YS4wMDcKK2I5ODNlYzVlMjY5NmRlYzQyZTg4NmU0YWFmMjRjMmRkICAuL2Rpci0wNDEvZGF0YS4wMDEKK2JhMThlNmFmNDgwNzk5Y2I2MWFjZjBlMzk4NDQxM2Q5ICAuL2Rpci0wMjMvZGF0YS4wMDEKK2JhMWM4NmI0Yzc1MTllOTk4N2ZjNjJlMDRlMTRiOTNmICAuL2Rpci0xMDAvZGF0YS4wMDkKK2JhM2QzNzM1ZGI3NTAxYmI0NWExYmMzN2ExYzkwZDkxICAuL2Rpci0wMzkvZGF0YS4wMDYKK2JhNWRmZjQ0NThlNDM4YTM3ZjcwMjBhNjk5N2NiM2ViICAuL2Rpci0xMDIvZGF0YS4wMDIKK2JhNzFlYTY2ODg1MzM5ZWZjNTA0ZjU4MWZhOWQwNWZhICAuL2Rpci0wMjEvZGF0YS4wMTAKK2JhYjczNDAyMzBjYWZmZDlhYmU0NWEyMTNjYzdjOTRkICAuL2Rpci0wNDQvZGF0YS4wMDYKK2JhY2Y3NTkwOTlkM2NlMzNjZGUxMDRmMGZkMDk0MDRiICAuL2Rpci0xMDcvZGF0YS4wMDYKK2JiM2RjOWQ5MmU3YzEzMTkxNTAyZjljYTJkOWEyYTQ2ICAuL2Rpci0wMzQvZGF0YS4wMDYKK2JiZjYyZGIzZTI3Nzg5M2FlNzA1Yjk1ZGYwNTdjNjc2ICAuL2Rpci0wNDYvZGF0YS4wMDEKK2JjOWExNWVlNTM1NzFiZTA0Y2ExOTkyNzU0ZDQwN2JjICAuL2Rpci0wMzcvZGF0YS4wMDEKK2JjYWRkNjNlMDBmYWQ0YjdmMDlmMzJjZjUwYzYwNmY4ICAuL2Rpci0wNzgvZGF0YS4wMTAKK2JjZTQzZjRiYzMyZTNiNDMxY2U4OGU3MTRlYmRlNGU3ICAuL2Rpci0wNzgvZGF0YS4wMDcKK2JkNTdjYTI1NTJhMzUxOTY0MjJlYjI1NGQwYjY2ODliICAuL2Rpci0wMTAvZGF0YS4wMDcKK2JkNmQ5NjYxZWY0NGVlOTRmM2E1NzY3OTRiYTJlOTcyICAuL2Rpci0wODMvZGF0YS4wMDAKK2JkODVlOGM4YzBmZDRmZmQwYThhYmRkMzg2NzVlNGE3ICAuL2Rpci0wNjEvZGF0YS4wMDIKK2JkOGU5YzM5MmJjNzZjM2QwNGNlMjNhMzc2Y2Y3OTQxICAuL2Rpci0xMDQvZGF0YS4wMTAKK2JkYThkNTNjNDVjNTIxYzVhN2ZjY2NmMTllMGZkNGQyICAuL2Rpci0wNTIvZGF0YS4wMDYKK2JkYTk0NmQ3MjkzMDg5ZjQ4N2RiY2Y2NDU2NGI3ZDc5ICAuL2Rpci0wNTEvZGF0YS4wMDMKK2JkZDI4NTA5MmZhZjVhMTljOWE4YjNmYmQxMTYyZDY0ICAuL2Rpci0xMDEvZGF0YS4wMDAKK2JkZjM5Yjg5MzU2N2IzYTYzMjlhMzZkYWM0OGI1MTZjICAuL2Rpci0wOTkvZGF0YS4wMDUKK2JkZjU2YWRlMzQ2MjhkOWEyZTc1N2IyYmM2ZWIwZTBjICAuL2Rpci0wMTMvZGF0YS4wMDcKK2JlNTA3YTgzMGRjMDliOGM2ZDgwMmQ0NTY0N2VkYjU1ICAuL2Rpci0xMDQvZGF0YS4wMDIKK2JmMTA2YTYwZWVkMTk2M2NkM2U1ODQ2MWMzOGNkYTg3ICAuL2Rpci0wMzQvZGF0YS4wMTAKK2JmMjFlNDkzZDUzNjM4NWM0NWRmMDM3YjJlOWNkYjQ1ICAuL2Rpci0wODkvZGF0YS4wMDAKK2JmYjBmNGJhOWE4NTg4YmVjM2NlZjRlZGU2YTNiYjU3ICAuL2Rpci0xMDYvZGF0YS4wMDkKK2JmZGE4NjgyNzdhNmM2YzBlMjU3OTVhZDczMzE2MDc0ICAuL2Rpci0wMzIvZGF0YS4wMDYKK2JmZGFjMmM5ODhkZTM5Y2VjOTVhNTlmOGEwOTA2MzZkICAuL2Rpci0wOTIvZGF0YS4wMDkKK2MwMWJkZTRlOWZkNzczM2I2YTkxNTI4NGFjMTJjNGU4ICAuL2Rpci0xMDgvZGF0YS4wMDcKK2MwNTZmZjcyYTliMTg3MzMyZGNhMzAwZmJiODEyMjZlICAuL2Rpci0wMjYvZGF0YS4wMDMKK2MwYjIxODJkZTE5YzE2OTViNzEyNzdkNGZiZmFjYzE4ICAuL2Rpci0wNTIvZGF0YS4wMDEKK2MwYjk0YTUzODE3NmFhNjk4NmNhZmEyZTJmZDhmZThjICAuL2Rpci0wNDUvZGF0YS4wMDQKK2MwZTE2YTk2MDE0YTEzOTk1ZTUzN2U4ZTM5YjAxNTVlICAuL2Rpci0wNTIvZGF0YS4wMDIKK2MxY2YxNGUzODEyYThiOTkzMzkxMWRhNjc5YzQ5ZjhmICAuL2Rpci0wNzIvZGF0YS4wMDcKK2MxZWYwZWMxZmUzY2M2NGQ3MDVkNTQ5OWI2ZWU2MjJlICAuL2Rpci0xMTAvZGF0YS4wMDEKK2MyMTI5MTIwYmM5NjcwM2QyODkyOGQ1NjdiYzVkZjU4ICAuL2Rpci0wMjUvZGF0YS4wMDUKK2MyNDI5ZGJjZjQ5MjllZjg4NmI2MTIxNDdlOGVmYmIzICAuL2Rpci0wNDgvZGF0YS4wMDgKK2MyODFmOWE0MmI1MWVhN2FmOTNlNWE4OGMxMjE2MTIwICAuL2Rpci0wODQvZGF0YS4wMDgKK2MyYzJhYmI5ZTg3MGQxNDRkZGUwNWVjNmQ3YTk3OWRhICAuL2Rpci0wMjgvZGF0YS4wMDMKK2MyZjE4NDYwMjUyOTNjMjU2MGVmNDRhMjI4N2NhOTQ4ICAuL2Rpci0wMDcvZGF0YS4wMDIKK2MyZjZkYTA4ZTNlNmMwNGZhMDRkYmU0N2Q5ZDkxZWFkICAuL2Rpci0wODUvZGF0YS4wMDEKK2MzNTM3M2ZiOTg4OGMzMDI3MmQyZjU3NGMwYTk0MjNiICAuL2Rpci0wNzkvZGF0YS4wMTAKK2MzNzJlMzUxNzdhYTMyODZjYjU1MDg1OTBiMTkxMzAyICAuL2Rpci0wNTEvZGF0YS4wMDUKK2MzY2M5MGRkMzNiNmU1ZWQxMDA4MTQ1NmYwNzBjNDQ3ICAuL2Rpci0wODUvZGF0YS4wMDIKK2M0NzAxMWY5NDg4YThiOGI1NTEwYWE5NmVmMTFmZTU3ICAuL2Rpci0wMzkvZGF0YS4wMDUKK2M0OTU4ZmIwOWVmZjBkZDUxOGI4YTY5OTdjNmI3MWZjICAuL2Rpci0wMTcvZGF0YS4wMDkKK2M1Mzg0OTI0OWZhZDBkZWZkZjgzN2JiZGRmYTE1NDg5ICAuL2Rpci0wNzcvZGF0YS4wMDAKK2M1Njc3NTY5MGI5NjFiZDA0MjVkZmQzZDgzZGM0ZmE3ICAuL2Rpci0wNjYvZGF0YS4wMDAKK2M1ODA0MzExMjE1MDc4YWFjZGE4OTU5MWM0MGJiNGMyICAuL2Rpci0wMDUvZGF0YS4wMDEKK2M1YjMyMjdhYTU0ODQ5MTlkY2EwZGE5NDczOTA0MTlhICAuL2Rpci0wOTYvZGF0YS4wMDAKK2M1Y2FmODU3NTAzOGNlY2E5MWIxNDBkOWQwZTNiMjRlICAuL2Rpci0wNjkvZGF0YS4wMDgKK2M2MWZjYTNlMDVmOWE4NTk2ZmZlZDNmMTUxMmM4ZmQ5ICAuL2Rpci0wMjQvZGF0YS4wMDEKK2M2NzJkN2IxNjY5M2MxODQ4ZmIyMzMxZmQ0ODNiYTVkICAuL2Rpci0wNjcvZGF0YS4wMTAKK2M2YzY0ZTFhMzFiNjU5M2YyZTM1Nzk4Y2RmYjlhNjdlICAuL2Rpci0xMDMvZGF0YS4wMDkKK2M2ZTc3NDFmM2Q0OTljYjU5MmU4NGVlNTAxYWU3YzEyICAuL2Rpci0wNTYvZGF0YS4wMDAKK2M3MzRmNDUwZWQyMGUwZTZlYmU3ZTUyZWJlYjQwYzI3ICAuL2Rpci0wOTUvZGF0YS4wMDcKK2M3NjVhY2QwZmRkZmRkOGRkMjVjMWUzYjU3OGFiOGQyICAuL2Rpci0wMjEvZGF0YS4wMDUKK2M3NzgzMWNjZmQyYTFjMTg0MmM0NzVmMjM5NWU1ODZjICAuL2Rpci0wMDQvZGF0YS4wMTAKK2M3OGIzMmEyNGYyZmZhYTdhNjRhOTEwODcxYzdjMmRhICAuL2Rpci0wODYvZGF0YS4wMDUKK2M3YWE5ZWM4ZjRhOTFkOTkzZWJjMzU3ZjdjNGQ2MjRjICAuL2Rpci0wMTIvZGF0YS4wMDEKK2M3YjYyNzZkZDljNTNhYmM3ODI0YjE3MjM3N2ZhNTY2ICAuL2Rpci0wNzMvZGF0YS4wMDgKK2M3YmQ3ZjgxYjgxZjNhM2RmZmM5YWE2ZDg5MDNhNWQ0ICAuL2Rpci0wMjAvZGF0YS4wMDQKK2M3ZDMwODhkYmI0NzBiMWY4ZTY1OTc5NWU5YWUwMDFhICAuL2Rpci0wNzIvZGF0YS4wMDQKK2M3ZGIzMGU0OTAxMGFjZDQ0MWNhMDcxYjE1OWU4OTUyICAuL2Rpci0wOTMvZGF0YS4wMDUKK2M4N2E3MDY2NWU0OTI5ODU1OGM1NGU3YjExMTUwYmRjICAuL2Rpci0wNzMvZGF0YS4wMDcKK2M4YzUyNzc2YThlOWIzZjQzYjU1YzExMmRlNGIzNjE1ICAuL2Rpci0wNTUvZGF0YS4wMDEKK2M5MGRkN2FkNTMwMjJlMmVjNzc3YjQwMWEyMDU2Nzk0ICAuL2Rpci0wMzIvZGF0YS4wMDkKK2M5MTY3OWQ5Y2NlYzYwZWM1OGZlYzZlNWVjYjcxY2RlICAuL2Rpci0wMDEvZGF0YS4wMDQKK2M5MjgzZDFkYjYxOTk0MzcwOGE1OGEwZDRlMDcyNDkwICAuL2Rpci0wOTgvZGF0YS4wMDgKK2M5NzEwMGVhYTBkNWI1MGMyOTg2YWQyZDdhNGFiNGM2ICAuL2Rpci0xMDUvZGF0YS4wMDIKK2M5Y2E5M2M4YjkxZTIzYzdkODg0OTg1MjYxYzcyN2JkICAuL2Rpci0wODcvZGF0YS4wMDMKK2M5ZjYxM2UzNjA1OWY2YTJlYmIyMWRjYjVhYzJlNTQ0ICAuL2Rpci0wOTgvZGF0YS4wMDUKK2M5ZmI3ZDA4Yjc2Mjg2ZjcyNmQzNDk5MzM0NTNjZGFhICAuL2Rpci0xMDIvZGF0YS4wMDAKK2NhMDI2ZTFmY2U3MzQyZWVhOGQ1OWI1ZWYxNWFlMWI5ICAuL2Rpci0wMTgvZGF0YS4wMDIKK2NhMWI2MjRjZmUwMzk4NDQ4NTY3ODYyYWNiNDk2NzIxICAuL2Rpci0wMDIvZGF0YS4wMDYKK2NhNWRkODk0YTAwNWMxMzcwMmU5NjZkMDRhNTg2NTdhICAuL2Rpci0wNzQvZGF0YS4wMDcKK2NhNjkwZGRmMWQ5NDg4ZDNhYWU1ZGU2NjdiNDZlM2M2ICAuL2Rpci0wNzEvZGF0YS4wMDkKK2NhYmIyOTQwZmFmZTdkZGYyNjQzODMwZjc1NDJjYzRmICAuL2Rpci0wNzAvZGF0YS4wMDgKK2NhY2M5OGNlYTc1MjViZTY3MGZiYTA2MmU5MjEzODZmICAuL2Rpci0wMjcvZGF0YS4wMDkKK2NhZjkzMDczMWEyMTI0NTIwYmU3MWY3YmRiZjUxNDdmICAuL2Rpci0wMzAvZGF0YS4wMDUKK2NiMzBmYTNkMjJjMzJmZjViNDY2YTIxNmQ3ZTQxNzRjICAuL2Rpci0wNDEvZGF0YS4wMDcKK2NiMzUzY2M5MDBhMTBjMDAyMGZjYzQwZDIwZmI3NzJjICAuL2Rpci0wNTAvZGF0YS4wMDMKK2NiYTgxOTExMThlMTgyM2JiMzhmODAzMjFiOThkN2E1ICAuL2Rpci0wMzIvZGF0YS4wMDUKK2NiZjY4MjAyNzQxYzkyYTZhMWExMzQ1YmE0MGRiYzFjICAuL2Rpci0wMTkvZGF0YS4wMDQKK2NiZjk2NjdhYzE4MWY1MTAwY2YzZDdkMTc5ZjA3YzI2ICAuL2Rpci0wMTQvZGF0YS4wMTAKK2NiZmUyNGQ3ZjFhZWYyMDc0NmFkZGEwOWVkZmEwYjEyICAuL2Rpci0wNzIvZGF0YS4wMDgKK2NjMjU2N2EyMzUwZmVlNGM1MTg3YTAwYmMwNjE1ZDVlICAuL2Rpci0wNTQvZGF0YS4wMDQKK2NjNzk4NjE1YzBiMDJkNTNmNjgyNzI0MGVlNjU0Zjk4ICAuL2Rpci0wNjQvZGF0YS4wMTAKK2NjODNkNWI3OGFhMzRmZjNkODI5NTdjN2Q2OWVlMTZhICAuL2Rpci0wMTMvZGF0YS4wMDMKK2NjYTVjMGJkZDZkMGViMThiN2NkZWMyYmNiYjU5NzU0ICAuL2Rpci0wNzYvZGF0YS4wMDkKK2NkNmJlNGIxYjI1ZGU5YmZmNjZhZDgxOTFlYWM3ZDRjICAuL2Rpci0wNDIvZGF0YS4wMDQKK2NkY2Q1MjQwZTc4YzEzMzU3MjgxMTUzYzRhNDEzOTVlICAuL2Rpci0wODcvZGF0YS4wMDQKK2NlMGRlYzYxMmRiODBhOTJhMTc2Y2UxOTBiMTlhNzU0ICAuL2Rpci0wNzAvZGF0YS4wMDEKK2NlMzM5MmNkNGQ4MWRlMDAxZmIzOTdiYTE2NTVjMGM4ICAuL2Rpci0wMTAvZGF0YS4wMDgKK2NlNThhMGU1MGQxNmQ3NWM0NWNlOTQ0N2JjODY4YjQ1ICAuL2Rpci0wMTgvZGF0YS4wMDkKK2NmNWZiOGNiZmU3MjM1NTIxZmQ3ODc4ZDk2NGJhZGFmICAuL2Rpci0wMjIvZGF0YS4wMDQKK2NmYmUwZjY5YjM1YmFhOTEzM2I2MzU1Y2QyYmQ2ZDA4ICAuL2Rpci0wOTQvZGF0YS4wMDgKK2NmYzAxNzk5MzMyNTQ5NTIyYTgyMzA3NzE0N2FkZmYwICAuL2Rpci0wNTYvZGF0YS4wMDMKK2NmZGU2NGMzNjI4MzVhNzJjOGNlZGZlNjQ3N2JkYTU2ICAuL2Rpci0wNzkvZGF0YS4wMDgKK2NmZjZmMjljMTUzNjI5MWQ1NDQ5OGZiNTM5YzY2ODFmICAuL2Rpci0wMDIvZGF0YS4wMDIKK2QxMTkyMjNlMGRhMDdmMDA1MDEyYmY2ZmVmNDE1YjVjICAuL2Rpci0wODIvZGF0YS4wMDcKK2QxNmRiYjQwYWQwNGNmZTA5MDQ4ZGZhNTY5NzdjYTNjICAuL2Rpci0wNDQvZGF0YS4wMTAKK2QxZGJmZGRmMjA5ZjZhMDcwYmNmNDgzNTNhYmRiZDhiICAuL2Rpci0wNDAvZGF0YS4wMDMKK2QxZTU4MDZiZGMwNmFlMjIzMWI2ZjliMWEzZmExZjBjICAuL2Rpci0wMDEvZGF0YS4wMDEKK2QyMjI5YzVhNjFjMGNjZjdiMTM5NzE0NDg0MjMxYTg0ICAuL2Rpci0wMDEvZGF0YS4wMDkKK2QyNDQyMDRiMGU2M2Q3YzMzYjJkZDNlNWQyMjM3NzQ4ICAuL2Rpci0wMzYvZGF0YS4wMDUKK2QyNTNkMDllYmU2ZGY5NmI4NDU2NWIzYmYyNmU4YmJjICAuL2Rpci0wMzAvZGF0YS4wMDIKK2QyNzAzZGZjYjIyOGE5ODg1ZDU4ZWI2YmY4YzQzMThhICAuL2Rpci0wODgvZGF0YS4wMDIKK2QyN2M3ODcxM2YyNTJlMjM5M2VhOTQyYWJjZjRhNGFjICAuL2Rpci0wNDgvZGF0YS4wMDcKK2QyYjZlMWRiN2FiODgyMzMwMTVlN2Q4ZmE1YTZiYjgxICAuL2Rpci0wMjEvZGF0YS4wMDkKK2QyYmU4MTRkMmFlNWYzMzcyM2NjODc5NDYxNDQ4M2ZiICAuL2Rpci0wMDgvZGF0YS4wMDUKK2QyYmY3YzIzNDY1Yjk0NTVhM2NhMjdiNTBjYzEyM2ZmICAuL2Rpci0wNzMvZGF0YS4wMDIKK2QyYzFiMmI2Y2ExNmY0ZTRmZjk3NTA5MjZhZWZhY2Q0ICAuL2Rpci0wMzAvZGF0YS4wMTAKK2QzNDM2MmMwYjg2YTkzNGU4NDg0NzgwNjc3NjBjODYzICAuL2Rpci0wMjEvZGF0YS4wMDgKK2QzNDc5OTkzMWVlZWZhOTE0NzI3ZTA4MjJjNjY3ZmM1ICAuL2Rpci0wMzEvZGF0YS4wMDgKK2QzNWE2MmVmOTk1NzBjNWVmNWJiNjI5MWJiYjM2Y2M5ICAuL2Rpci0xMDEvZGF0YS4wMDMKK2QzOWZkYmJmY2QxZTE1ZmRhMTQ2OTc3MjI0MTI2ZjhiICAuL2Rpci0wMTEvZGF0YS4wMDkKK2QzZWIwZjRiYjNiMDRiNDEyOTA3ZTQ1M2M4MmJiODlmICAuL2Rpci0wMzUvZGF0YS4wMDcKK2Q0MGYwZjMzM2ZjMmYwMmE0MjY2ZDM2Mzg5N2YzMzM0ICAuL2Rpci0wNDUvZGF0YS4wMDkKK2Q0NGZmZjZkZTI0MzgyZjE0YjA0MjYxMDFlNzM3MzU0ICAuL2Rpci0xMTAvZGF0YS4wMDgKK2Q0NjA2ODZkNWYzNzQwMTc0NTJmZTYyZTNmOTViNGQ0ICAuL2Rpci0xMDUvZGF0YS4wMDgKK2Q0NjFjYzg0ZWIwM2NjNmRiNzhlMDcyMDY0OGQxNWU0ICAuL2Rpci0wNjEvZGF0YS4wMDMKK2Q0NjMzNzlkMTgxMTI0MWRjNTZhNGNjYzliZjY4ZGZjICAuL2Rpci0wNzYvZGF0YS4wMDUKK2Q0NmM4YzdiN2MwYjU0ZWJkMDQ2YzYyMDlkMWY4YWZhICAuL2Rpci0wNTQvZGF0YS4wMDEKK2Q0ZDBmYWUzNTRhZjZjZGNjMzIwMmM5YWE4ZmYyZTlhICAuL2Rpci0wMTkvZGF0YS4wMDIKK2Q0ZjMwNDBjYWJiNWZiY2U4NTUyOGUyNWYyMGNkZWFiICAuL2Rpci0wNjEvZGF0YS4wMDgKK2Q1MWJlNmM4MjRkMDUzZDRlNzU3MjBkNmM4ZjUxNWZmICAuL2Rpci0wMDEvZGF0YS4wMDIKK2Q1NDBlZjc4YWM4Mjk1NTZmOTkzM2RkNjU3OWRiN2FlICAuL2Rpci0wOTEvZGF0YS4wMDMKK2Q1NGYxODgyNDBiYTgzZGYwOTMyZGZmYmIzNjAwN2ZiICAuL2Rpci0wMjEvZGF0YS4wMDcKK2Q1YjUyYzdjMDU0YTI3YmEzNDJiYzdlNTNiZmUxMzFlICAuL2Rpci0wODEvZGF0YS4wMDkKK2Q1YzdjZDgzNWZmMTljYjdjNzBlMTdkMzEzNDI2M2JmICAuL2Rpci0wNzQvZGF0YS4wMDYKK2Q1ZmIzMjA0ZDcwZDkwNmE3NGI3NjA5OTllNWIyNjZjICAuL2Rpci0wNDIvZGF0YS4wMDMKK2Q2NzQ5M2VmYzdmMTA5MTBkYWFiMTQwMTY1NDZhNDdiICAuL2Rpci0wNTkvZGF0YS4wMDAKK2Q2OGVkMTU1M2QyNjYwZjUwOTYxMmQ4ZGRkOGJjZDYyICAuL2Rpci0wNTYvZGF0YS4wMDQKK2Q2ZjA5N2M4M2U2Mjg3N2I5ODk1MWJlYWQwMjgyZGZmICAuL2Rpci0wNDAvZGF0YS4wMDUKK2Q2ZmZjNTEzY2VkN2IwYzEwMDVkZDExZjEwOTI0Yjg4ICAuL2Rpci0wNTUvZGF0YS4wMDgKK2Q3YTY5MzE5MjcyYzI2YjI0NjMxY2MwYWJiMTUyMWViICAuL2Rpci0wNTMvZGF0YS4wMDUKK2Q3YzI0NDdjNzlmNTg0YzVhNGIyZWM1MjVjNTg2MTI5ICAuL2Rpci0wMzEvZGF0YS4wMDIKK2Q3ZTU1MjA1N2I0MjBkYWJmMDIyYWE2YjgyNjc5NDZhICAuL2Rpci0wMzAvZGF0YS4wMDYKK2Q4NzI2MGJkN2JmNGFhNmVjNTU2ZDc3YmY5NThhMzZkICAuL2Rpci0wNjAvZGF0YS4wMDEKK2Q4N2Y1M2ZhMGZhZDlhZjgyMThhMjdmYTFiNjljMDcwICAuL2Rpci0wODAvZGF0YS4wMDIKK2Q4ZjM3OWRmMWZlYmU3N2M4Njk5MDAxNzc0NWVkZWJjICAuL2Rpci0wMzQvZGF0YS4wMDUKK2Q5NDVkNWEwNzBiOTk1MTYyMjkzZjFjNzdmZjE1NTI3ICAuL2Rpci0wMTgvZGF0YS4wMTAKK2Q5ZWQ0OWU5OWY2MzU4MWNjYWZlOTE1Yjc2ZjNmOTZkICAuL2Rpci0xMDIvZGF0YS4wMDYKK2Q5ZmNhMzkyMmZhMGUwMWZkNTI3ZjhkYjY5NTg5NDI1ICAuL2Rpci0wODgvZGF0YS4wMDEKK2RhMDlkZmU0Y2I5YmQwNmMzNzQ3MzI1NGU4NTcxMzljICAuL2Rpci0wNzYvZGF0YS4wMDMKK2RhMThjOTM1MWJjZWI3ZjM0MjcxOGQ1MGZiMDYyNTQ0ICAuL2Rpci0wMDYvZGF0YS4wMDMKK2RhMjQ3ZmM2YzllMWY4NDBkN2VmNThlODZiYmVkMjIwICAuL2Rpci0wMTkvZGF0YS4wMDAKK2RhMmU0ZmQ4NWE0OWJhNmIwYzc2NTljN2FiZjk5YWQxICAuL2Rpci0wODkvZGF0YS4wMDUKK2RhNTdiYjQ0MTE2MGU2NTU1YjMwYzc1OTE1Mjg4YmY1ICAuL2Rpci0wOTkvZGF0YS4wMDQKK2RhOTIxODQ1M2Q0Yzk5NjcyZTcwMmYwZmQ3YjljMGMwICAuL2Rpci0wMTQvZGF0YS4wMDQKK2RhYjJiZWM3NzUxNDBlNjIwM2RhYTZlYzEyMmYwNDllICAuL2Rpci0wNzEvZGF0YS4wMDMKK2RhYjk5ZDNkOWRmYzlkNWM5ZjBkNTI1NzE2MTUzNTYyICAuL2Rpci0wNzUvZGF0YS4wMDMKK2RhZGM2YzQxZjQxYjNmZjI4NzA2ZGY2NzVlYWE5NmI1ICAuL2Rpci0wMDQvZGF0YS4wMDAKK2RhZmYyZDZhZjA5NzE4ZTQ4MjViMjJiOThmMDBiN2U5ICAuL2Rpci0wMDMvZGF0YS4wMDIKK2RhZmY2M2U5ZDFhZTM3MzRkMDY5ZDBkYzAzMDViZTcyICAuL2Rpci0xMDkvZGF0YS4wMDYKK2RiMjEwYjg5YjEwMDRmMDMxZWFkZDg0N2U1YTA2NDViICAuL2Rpci0wNDMvZGF0YS4wMDgKK2RiMmIwMTU4Mzg4ZWUyNTE5NzBjNjQ1NGM4Y2Q5YTk3ICAuL2Rpci0wODMvZGF0YS4wMDIKK2RiNDlhMTNiZDdlMjMyMDIxMGRmM2EwMDZmN2U5ZjZmICAuL2Rpci0wNDMvZGF0YS4wMDAKK2RiZGJhOTYwN2YyZDc3N2UxMGRkYzY3ZjUwOTUwZTJlICAuL2Rpci0wNTcvZGF0YS4wMDUKK2RjMDllOGE0MWRiMjE0ZDI0ODE0OGVmYmY5NjA1Zjk1ICAuL2Rpci0wODEvZGF0YS4wMDQKK2RjMGE3MDA3Njc1MDQxYjMwMzE3YWZhZjQ0ZWU3MDhlICAuL2Rpci0wNjQvZGF0YS4wMDEKK2RjMTUzYWU3MTQ1MzJlMmQzNGYxYjdlYTA0NGI2ZmY5ICAuL2Rpci0wOTYvZGF0YS4wMDgKK2RjMWY0ZGE3ODU3MzNiYmIyODk3ZDk0Y2U3OGJjN2JmICAuL2Rpci0wNzEvZGF0YS4wMDQKK2RjMmYyMmRhZTNhM2QzNGExODkyOTUwNmNmYzZmMjc3ICAuL2Rpci0wMjkvZGF0YS4wMDMKK2RjNDBmOWE1N2RmYWNkMjFkNjAyMjE4ODk4YWI5M2U3ICAuL2Rpci0wNTgvZGF0YS4wMDQKK2RjOTg3NThjNmE5YjM5YTZhM2RlYWUyOThkNTc5YzRlICAuL2Rpci0wNDIvZGF0YS4wMDkKK2RjY2Q1NjJhNGE5ODY1M2EzZmU5NmQ3Nzc0MWRkYmViICAuL2Rpci0xMDQvZGF0YS4wMDAKK2RjZTdlN2MyM2I1Y2JhNWI5NmIxMWQ1MzAwZTAwYWZlICAuL2Rpci0wNTYvZGF0YS4wMTAKK2RkMDA2MDUyYTI4NTUyZmEwNjlhYmY1MDQzNDYyNTcwICAuL2Rpci0wNDkvZGF0YS4wMDkKK2RkMDc5YmQwNTBkZDdiODNmZjZhOGUyZmI1NzczZWQ0ICAuL2Rpci0wNDkvZGF0YS4wMTAKK2RkODk4YTZhYjg3MzljMGNmMTZkZDcyMDM0YmM3NjY4ICAuL2Rpci0wNDYvZGF0YS4wMDcKK2RkOGMyMzNiOTkyZGE2YmFiYmNiYzljZTc4NzkwNTFiICAuL2Rpci0wOTcvZGF0YS4wMDcKK2RkOTgxMzA0ODk3YmMzMzBmNjkwZDIwNDBhYTFlNTNmICAuL2Rpci0wNDcvZGF0YS4wMDkKK2RkY2Q3ZWExM2NhZTU3NDk4MDg4YzE5OTQ2MTliM2JlICAuL2Rpci0wMjAvZGF0YS4wMDEKK2RlN2ZlMjc0ZTc3MGI0ZGFiZGViODY3ZmE5MmExMmJjICAuL2Rpci0xMDkvZGF0YS4wMDIKK2RlOGE3MGVlZTNlNTA4YTcyM2QzYjVkMmE5OTAxMzE2ICAuL2Rpci0wNTUvZGF0YS4wMDQKK2RlYjk2MGIxMjY4NzA1YTQ3MmUzYjQ2MTgxY2NlYmZlICAuL2Rpci0wNDIvZGF0YS4wMTAKK2RlYmYwODFiNjgyNGYwN2M1ZjZjMjJkYjZiYzE1MmE2ICAuL2Rpci0wODYvZGF0YS4wMDIKK2UwMDNhYWVjYjc3ZGY5MWYwNDk5MGNkNDVlZmYyZGJjICAuL2Rpci0wMTgvZGF0YS4wMDYKK2UwNTk2Y2UxZjgzMzE5NzA1MmJmNzJmYTRlNDVlYzI4ICAuL2Rpci0wNzQvZGF0YS4wMDMKK2UwNmU0NWUzNjlkYzJmYTk4YjE4YzM1MjY4ZWY4MWM3ICAuL2Rpci0wMzcvZGF0YS4wMTAKK2UwYzJmMmQzNzViM2ZhOGMwYzQ3YTAyOWJiMThjYzM5ICAuL2Rpci0wMDkvZGF0YS4wMDAKK2UwZDQ4MjQ3ZmNmYWE4MzkzMDU1NWVkZjhhNjY0N2RmICAuL2Rpci0wNDEvZGF0YS4wMDQKK2UwZmUxNjMwM2Q5OWVjMjFlNmRkMTNhYzI3ZDJiNWZhICAuL2Rpci0wODMvZGF0YS4wMDQKK2UxMzAwNzU0MGJmZDBiY2NkY2VkYTJmODI0YWUzMjM2ICAuL2Rpci0wOTIvZGF0YS4wMTAKK2UxMzFhODNkN2I3MDYxMDRiODAwYmNiYTdlODlhOWYwICAuL2Rpci0wMDkvZGF0YS4wMDgKK2UxNjk3OTAxZmI0NGViY2NmNDM4ZmIwNTZjMWNiYjAzICAuL2Rpci0wMDcvZGF0YS4wMDMKK2UxYmUxNWNhZDkwYjY1MTE0YWZmODBlMGY5MjJlOTg4ICAuL2Rpci0wMzQvZGF0YS4wMDgKK2UyZTM0MDI3YWZkNDMxYWYyYjVlZjBiYzgxNWExNjIzICAuL2Rpci0xMDAvZGF0YS4wMDIKK2UzMjE3NGRlNjRkODcxYjQ3YjM4YWI4NzRhYTUwYTM5ICAuL2Rpci0xMDIvZGF0YS4wMDkKK2UzM2RjYzhkN2ZmZDFlMGZjY2ZiNzFjNjcxNWY2ZTU2ICAuL2Rpci0wNDkvZGF0YS4wMDcKK2UzODJhNDVkZjMwMjRhZDk3NTYzZjljMTNhMTk1MTgxICAuL2Rpci0xMDUvZGF0YS4wMDUKK2UzYTEwNDE5MGQxYzQ2MWZmZGFjNDYyZDY2ZGVlN2FkICAuL2Rpci0wOTAvZGF0YS4wMTAKK2U0NWM2NzUyYWIwNjc2MDJhN2U5YTcxYjlmOTEwNWUzICAuL2Rpci0wNDUvZGF0YS4wMDMKK2U0OTJkNDY4MzY0ODcyMTg3ZDUwMDIxYWE0OTBjMzY3ICAuL2Rpci0wOTIvZGF0YS4wMDcKK2U0OWZmNWI5MGU3ZTc3MDRkNWM4MjljNDFhODU5Yzg2ICAuL2Rpci0wNDcvZGF0YS4wMDEKK2U0YTA3NTZlM2U5MmFjNmIyNjZjNGIyNmRkNDNkMjdlICAuL2Rpci0wNjQvZGF0YS4wMDgKK2U0YTBkYmI4ZWQwMDIwOGU5YTRkMjkzZDFjMjU5OTg5ICAuL2Rpci0xMDUvZGF0YS4wMDAKK2U0ZTVlNWIyNjQyZDMyMmUxYjk1MzliYjAyMWUxMjI4ICAuL2Rpci0wNjQvZGF0YS4wMDkKK2U0ZTk0NDdjZGQzZWU2ZjRhNzUzYTlmYTNiYzE4MjNmICAuL2Rpci0wMzcvZGF0YS4wMDQKK2U1YzIxYTI2MTQ3NzVlYmI3OTg3NTJlNGRiYmE3ZjUyICAuL2Rpci0xMDcvZGF0YS4wMDEKK2U1ZDg3ZDI1YjhmZGNlNmQ2ZjMwYjUyMjMwNzYxODg0ICAuL2Rpci0wNzAvZGF0YS4wMDkKK2U1ZjI3ODM4OTZhODliYWVlZjBjNWY2OGQwZjQ3MzgyICAuL2Rpci0xMTAvZGF0YS4wMDcKK2U2Yjc1Mjg0Y2M2YmU1YjgwYzU3ZGM2MTMzNzNlZWM1ICAuL2Rpci0wODYvZGF0YS4wMDAKK2U2ZWVjZjhhNzI3ZjRlZTY4NTJlMmY2MmZiOTQxYjcwICAuL2Rpci0wMzkvZGF0YS4wMDIKK2U3MDY4ZjU5MThiNGNlNTIzNDQ4MDhmNjhhZDBhMDg1ICAuL2Rpci0wMDIvZGF0YS4wMDQKK2U3NmQxNTZjODE4MjllODRmZTY2ODgyNjZmYjUyZTM3ICAuL2Rpci0wNDgvZGF0YS4wMDQKK2U3NzYxMjZjMzhmMDc1ZDRkMmQzZWE1ZTgxZTM2ZTI4ICAuL2Rpci0wOTQvZGF0YS4wMDUKK2U3ODNjYjA1NjJhNTkxNzkzZjgxN2E2NTllNzA4NDcwICAuL2Rpci0wNzAvZGF0YS4wMDMKK2U3YmQ5MDZmY2U2MmIxMTZmOTA4OGI1ODczN2IzMmM5ICAuL2Rpci0wOTEvZGF0YS4wMDYKK2U3YzcxMGZlOTQ3NTRmOTBmYjY0ZjllN2U4OTM1MWZjICAuL2Rpci0wNjkvZGF0YS4wMTAKK2U4MWVmZjI5Yjc3Mjk2NTZjZjJlMDZlYzRhNjA0MTg1ICAuL2Rpci0wNDgvZGF0YS4wMTAKK2U4MjYyNzA2N2M1YzE1OTcwNTgwYWNmNTkzOWJlMjE2ICAuL2Rpci0wMzAvZGF0YS4wMDAKK2U4NDU1MzdjMTk3N2Y2NjAwNGMwNzliZWI5YWY1ZDc0ICAuL2Rpci0wNjcvZGF0YS4wMDIKK2U4NjQ5YTNjNjYwMGUzNjI0ZjZmMmMxYWIzNmJkNWZjICAuL2Rpci0wMzYvZGF0YS4wMDkKK2U4ODI4OTMwMGIyZjJkYmNjYTRjNjliOTZhYmIzMWUzICAuL2Rpci0wNjAvZGF0YS4wMDYKK2U5MmY3ZjFiMGEwN2FjNjBiMDU3ODZkNTcyNTk2N2FlICAuL2Rpci0wMDUvZGF0YS4wMDMKK2U5ZDYxODg1ZTBiYmUxMzQxYTc3ODllY2JhMTI3YWIzICAuL2Rpci0wMjAvZGF0YS4wMDMKK2U5ZDlmYjEyNWRhNmY3Mjk2YzBlZTY5MjM1ZmRjNTVkICAuL2Rpci0wNDAvZGF0YS4wMDYKK2U5ZWJkY2M3ZmM1Y2UzZWM0MGVjMmMyMmI1NmEwYzVlICAuL2Rpci0wNTcvZGF0YS4wMDMKK2U5ZWVlYWNjZDdjMjYwZjYxMDIyNmQxOTlkY2MxMTMzICAuL2Rpci0wMDEvZGF0YS4wMDMKK2U5ZmUyZGQ0MzdjNzExODA1NThjMDA2NjRkOTY5MzZlICAuL2Rpci0wNTcvZGF0YS4wMDAKK2VhMmQyMGI1OTQ4Mjc4ZjU1Zjg3MDBiYjdjZmI1MjVlICAuL2Rpci0wOTQvZGF0YS4wMDAKK2VhM2E0MGE2ZWQ3YzVjN2JhZGNkZGM4MjkyNDA0NTFmICAuL2Rpci0wMDAvZGF0YS4wMDgKK2VhNjBiODk4NDZmZmU5MDk4ZjM3NjEwMGExNWZkNjIzICAuL2Rpci0wMTkvZGF0YS4wMDYKK2VhYjBkZjdlMzU0YmRkMjAzMjRmZjc1YWEzNTRjNjdlICAuL2Rpci0wMzYvZGF0YS4wMTAKK2VhYzRhZDllNjc4OTcwMjcyOWYxNGQ0ODAyNTRkZjEzICAuL2Rpci0wNzgvZGF0YS4wMDYKK2VhZTc1MWIyZjU4OTBhOGEyZTY2ODQyNTAwODc1NDg5ICAuL2Rpci0wNjQvZGF0YS4wMDcKK2ViMjEzZGVmODU4MmJmOWMzOTEwMzJhYjgxMDIyNGE0ICAuL2Rpci0wMzAvZGF0YS4wMDQKK2ViMjIzOWRjMWMzMjg0YTc0M2VjMjQ4MGI2NmE0NDBhICAuL2Rpci0wOTUvZGF0YS4wMDUKK2ViMzkzMzU0NzRhNWYxMTQ0OTZlNDU4NTVkNjU5NjViICAuL2Rpci0wMzAvZGF0YS4wMDkKK2ViNDljNjUyYTNhOWI2N2Y0OGJlZDVmNDUzYzUxM2ZiICAuL2Rpci0wOTEvZGF0YS4wMDUKK2ViOGFiOGFkZjFmZDhlMmU4MWVjZWFhMmU0MDViZWNmICAuL2Rpci0wMTUvZGF0YS4wMDEKK2VjMTExYmRkOTU2MjkwMmVkMDQ3Y2RkYzRlMjkxZTBmICAuL2Rpci0wMTEvZGF0YS4wMDIKK2VkNjczODE5ODg3N2JhNjcyMTc0YTIzYjM5YWFmMGNhICAuL2Rpci0wNTAvZGF0YS4wMDgKK2VkODdjNDQyNTdlNDRiYWEwNDg2Nzg0NDg5ZmUxZWI3ICAuL2Rpci0wOTMvZGF0YS4wMDMKK2VkYWUyZjk3N2U4ODg1YWFiY2FmZWExNDBlNGVhNDQ1ICAuL2Rpci0xMDMvZGF0YS4wMDIKK2VlMDNjM2M1YzgwYzU0M2JmNTIwMjkzODE0NTVlMGRhICAuL2Rpci0wOTMvZGF0YS4wMTAKK2VlOTBkOGQ4YTY3YzVmMDZkZTlhMzVhNTA1YmQ0ZDgyICAuL2Rpci0wMDUvZGF0YS4wMTAKK2VlOThhY2M0YmE3ZjU5NGE0OWI4NjM2NGVkY2Y0MzEyICAuL2Rpci0wNDcvZGF0YS4wMDYKK2VmNDVhMDEzNTUxNTdkNWM0YThhYzk3ODNkMzBiMDAwICAuL2Rpci0wOTkvZGF0YS4wMTAKK2VmZTZkYWI2OWViMzUwMzg4NmI2MjNhYjI0YWUzMmUwICAuL2Rpci0wMzMvZGF0YS4wMDYKK2YwMjMwYzUzZGI4ZmI5ZmYxYTY2ZWVjMTJiMjhkM2MwICAuL2Rpci0wMjkvZGF0YS4wMTAKK2YwMzhhMjAyY2NlNTc5ZTI5ZWQ3NWVmMmY4ZWM5MjA1ICAuL2Rpci0wNzcvZGF0YS4wMDkKK2YwNjdlZjMzOWRiZmEzNzM4NDJkNmJlYjVkNGM1ODM5ICAuL2Rpci0wMDYvZGF0YS4wMDAKK2YwNmFmMzg4N2E2NjJjYWVkMjIwZTlmZTk4YzEyZjZmICAuL2Rpci0wMDcvZGF0YS4wMDgKK2YwOTMxMWUzMGI1NWYzMTk5ZDZiNTg5MWNmNzE3YmI1ICAuL2Rpci0wODAvZGF0YS4wMDQKK2YwYjY5ZDIxODQ3NTNlNTM0MTY4MWRkZjliYzBkZjMyICAuL2Rpci0wMzcvZGF0YS4wMDgKK2YwZGIzZjcwYTM3ZjY2MGNlMzFiZmUwNjAwYjgwYjQ5ICAuL2Rpci0wODcvZGF0YS4wMDIKK2YxMjdiZWFkNTIxYzBkYTYyZjRhNjA3ZWJkNjYyN2I2ICAuL2Rpci0wNTcvZGF0YS4wMDYKK2YxOGJhNWIwMmJiZjAzYWJlMTJmY2E2NTU2NGRjYjk1ICAuL2Rpci0xMDgvZGF0YS4wMDgKK2YxYmYwNDY2NDM1MGFmYjRjZTVhNWYwZGQyNDVkMmM1ICAuL2Rpci0wMzgvZGF0YS4wMDEKK2YxZDM2N2RlYTdiYjk4YTliZGRkNGY1Y2M3YTk3OThlICAuL2Rpci0wNjUvZGF0YS4wMDQKK2YxZTY0NmY0NmMzNjQ0OWMzNDEyYWVkNGNiMTY0OTY4ICAuL2Rpci0xMTAvZGF0YS4wMDYKK2YyMTRjYTQ4ODIyMWM4MDRhNTU1N2E5YjgwOWFmZDY1ICAuL2Rpci0wNDUvZGF0YS4wMDcKK2YyMzdkMDU5ODU4OWE1NDI4MTVmYmY1ZWY1OTc1MWNjICAuL2Rpci0wNTQvZGF0YS4wMTAKK2YyNTc3YWE4Mjc5MWVjYmYyN2I5MDg1YTIyYzIzZmY5ICAuL2Rpci0wNTkvZGF0YS4wMDIKK2YyNjE2YjJlYTBiM2NlODU2NWU1NjhjMGVkOGVmYWNjICAuL2Rpci0wNzkvZGF0YS4wMDkKK2YyY2M0NDMzNjJiMTU2YTIyMjhmNGE2OWZlNDEwMmJmICAuL2Rpci0wODQvZGF0YS4wMDMKK2YyZGYzYjViYmNiMjI1ZGY4OTVjZGFjMzg0MTQ1ZDg0ICAuL2Rpci0wMjAvZGF0YS4wMDAKK2YzMjk3MzZjYWY0Y2U3ZDgwMjEzZGVmYTExZjNjNjVhICAuL2Rpci0wMjUvZGF0YS4wMDMKK2YzNGZkNGZmNjc4YjIxOGU4NzgwNzI0ZDNiZDJhNDIwICAuL2Rpci0wMjkvZGF0YS4wMDQKK2YzOTI0M2JlYmUxYmJjNzFlODVkZTJiM2Q4ZDcxMjJhICAuL2Rpci0xMDcvZGF0YS4wMDMKK2Y0OWIwNTM1MTM5NzRkNTkzZGNjMmM0NjFjOTZlMmEwICAuL2Rpci0wMjgvZGF0YS4wMTAKK2Y0YzBkMjBmZWNjMDRkYmY3YTIwNGUxMDVmODM2ODkzICAuL2Rpci0xMDEvZGF0YS4wMDUKK2Y0Y2ZiMGJlY2VkOTBlMmFkZjk2ZDNmMmZhMmJhNDY1ICAuL2Rpci0wMzQvZGF0YS4wMDcKK2Y0ZDc0NWMzODVmMDM3YWFmZWYwODMxMGZiMTk0YTJjICAuL2Rpci0wNjYvZGF0YS4wMDQKK2Y1MDg0YWU5ZGVkOTgzM2VlOGM2MzI4MWY1ZWQxNjQxICAuL2Rpci0wNTgvZGF0YS4wMDIKK2Y1MTlkZDJmY2ZjMzA0NzEwMWZhZjkwYmNmMTg2NTRkICAuL2Rpci0wNDkvZGF0YS4wMDUKK2Y1MjU4MzAyZjZhYjhhMzhhN2I2YjA1YjEwZDM1MDk3ICAuL2Rpci0wNTUvZGF0YS4wMDkKK2Y1MzIzZDRkOTE1ZDY3ZjlkNzc3ZDUyMzc0Y2QyN2MwICAuL2Rpci0wMTYvZGF0YS4wMDcKK2Y1ZTc3MzhhOWYyYzNkMDI5MjlkMDA5NzI0MzM2MDIzICAuL2Rpci0wNjcvZGF0YS4wMDUKK2Y2MmQwYzNiNzk5YjI1NzMwZmI2YTQzZDAwMTRmMjIwICAuL2Rpci0wMjIvZGF0YS4wMTAKK2Y2YWJmZGI2M2ZiNGM5ODE4MTQ3MDRmZWRkNGIxOGQwICAuL2Rpci0wNTgvZGF0YS4wMTAKK2Y2ZjdkNDI4NzlkYjc2MjFhZDIwOWQ0NWJkOWQ2YTBhICAuL2Rpci0wMTMvZGF0YS4wMDUKK2Y3MGZhODU2YWExNzQwYjdlZDgyNGE1NDM5NjY1YjBmICAuL2Rpci0wNjIvZGF0YS4wMTAKK2Y3MmRmMDFmOGYyOTBiYzZlMDVmOTcyZGI3YTAxZjkwICAuL2Rpci0wNDgvZGF0YS4wMDIKK2Y3M2ExODNlYWIzZmZlNDA3MDI3N2I5ZTdmMjNkYTU2ICAuL2Rpci0wMzcvZGF0YS4wMDIKK2Y3ZjdiMmYxYjEzNmEwMWQ4YTliM2YxZjZjM2Y5ZTg4ICAuL2Rpci0wMjUvZGF0YS4wMDgKK2Y4MWMwODhjNzAxYTg4ZDliMzk2ZTMwZjk4Nzc2MDY0ICAuL2Rpci0wMzMvZGF0YS4wMTAKK2Y4OTdlNzczNWVmMTgwOGE1YTdiZjYxMjljZjBlMGM5ICAuL2Rpci0wOTIvZGF0YS4wMDUKK2Y4YTY5NjcxN2JiNWE1YWRlY2YwMGRkZDA5N2Q4ZDBjICAuL2Rpci0wOTEvZGF0YS4wMDcKK2Y4ZTIxODZmMDRkNGNiNjgwMWFjYzJjMGE2OGQ4MTBhICAuL2Rpci0wNDkvZGF0YS4wMDEKK2Y4Zjc3NDk5N2M5Mzg4YmI3YTZkNTkzZTYyMjRlOTk4ICAuL2Rpci0xMDQvZGF0YS4wMDcKK2Y5MGU1NGMwOGJlMTFlNGFhY2RmM2MwMmRmZjhlZTFiICAuL2Rpci0wODMvZGF0YS4wMDMKK2Y5MTExYmI5OTMwZDgwY2VhN2I3ZGI2NGYwOTJkNTk3ICAuL2Rpci0wNjgvZGF0YS4wMDgKK2Y5NjlkZTQ2MmRkMWI1OGE2NGJjNzVhZGJlNzMwMTZkICAuL2Rpci0wNDUvZGF0YS4wMDEKK2Y5ODRmODVhNzdkNTdjNmJkM2IzNjY3NzFmZDk4ZWE0ICAuL2Rpci0wNjMvZGF0YS4wMDUKK2Y5YTQ2ODUwOGZkN2U2ZGI1YTc3ZTMxMDFkYWYyMmIzICAuL2Rpci0xMDAvZGF0YS4wMDgKK2Y5YzhlNmMzYTBjNGE5MzhjZWIwMzNmMTUxZTU0MWVhICAuL2Rpci0wNzcvZGF0YS4wMDMKK2Y5ZjkwOTk4MmVhMzNlNzc2Yjk4NWVlNWFjYTUzNzhhICAuL2Rpci0wNTIvZGF0YS4wMDUKK2ZhNDExZjFmOWY1NTliNGVlM2RkMTA5YzJlNTliMTA2ICAuL2Rpci0wODEvZGF0YS4wMDYKK2ZhYTJiYmY4MjBmNzhiMzk0NTRjNGZlZWJlMDhhM2M1ICAuL2Rpci0wMDQvZGF0YS4wMDEKK2ZhYjRmZWZkMmQ4ZWI3N2M0ZjM2Yzg5OTU5YWU3OTgwICAuL2Rpci0wNzMvZGF0YS4wMDMKK2ZiMjM4OGQwM2MyNzIzZjE1NzI4YmRhOWMxZGMyNzYyICAuL2Rpci0wMjQvZGF0YS4wMDYKK2ZiNTI0ZTNiYjc1OGYzMmU3ZDM0ZTUzOGE1ZTQwNTYwICAuL2Rpci0wMTkvZGF0YS4wMTAKK2ZiNTM5ZmIwODFmNGE5NWFjNWI1YjVlMTEzNDNlMmI3ICAuL2Rpci0wNTIvZGF0YS4wMDgKK2ZiN2RkNDhmMzVjMTI4MjEyYjc4NTUxY2NlZGEyNDRjICAuL2Rpci0wMzgvZGF0YS4wMDUKK2ZiOGFhMTZhY2I5ZjcyOTIzODRlMjY1NTg1ZjRkZDM3ICAuL2Rpci0wNTUvZGF0YS4wMDMKK2ZiZDFkYjRkYTg3YzFlZDgwODJkOWNmOTRmYzQyNGFhICAuL2Rpci0wMjcvZGF0YS4wMDMKK2ZjMDRlODRiYjZjNjQwZjg5MDg1NGZjNTc3NWI5ZDhhICAuL2Rpci0wMzQvZGF0YS4wMDQKK2ZjMjFhMDQzOTkwZDAzNzAzMDAzYTUwNmIwNjYyODIxICAuL2Rpci0wMDUvZGF0YS4wMDAKK2ZjMmE0NWYxMGU1MmUxODkxOGQyNWQ2NDBmNzUxNDU3ICAuL2Rpci0wOTkvZGF0YS4wMDcKK2ZjMmU0NzZhNmQxYjdjZTcxYjUxYmQ0MzgxNjg5MWEzICAuL2Rpci0wOTYvZGF0YS4wMDcKK2ZjMzA0NjE2ZjI0MzIyZTI2YTQ2NjZjMGU3MTgxZTdlICAuL2Rpci0wMDYvZGF0YS4wMDIKK2ZjOTA2ZDEzZGY1NmRmYzU1ODBhZjgyM2NhMWFmNjEwICAuL2Rpci0wNzcvZGF0YS4wMDYKK2ZjOTdiMDY2YzBhZjhmMmZhNDBmMmJjOTFjYWUzYjU2ICAuL2Rpci0wNjMvZGF0YS4wMDkKK2ZjOWJkNThmOGYxMjZhODQwNjk4NzM2MGI2NGE5MWZlICAuL2Rpci0wMDQvZGF0YS4wMDgKK2ZjYmFmMzAxMDAwNTBjYzFiYjk5MGU5OGQzMDYwNWI5ICAuL2Rpci0wMDYvZGF0YS4wMTAKK2ZjZDdhNmI3OTI0MjYwYjk5N2FlNjAzZWFkZmFlNTlmICAuL2Rpci0wOTAvZGF0YS4wMDAKK2ZkMWRlY2IzMTQ4MzVjYmI5NWQ0YWE2ZTdiZGYzMzU5ICAuL2Rpci0wNzUvZGF0YS4wMDAKK2ZkMzhkMGRkZDYwNDI5YjNjNzA3MTg2N2E4ZmNmYmMwICAuL2Rpci0wNDcvZGF0YS4wMDgKK2ZkM2U0YzQ4N2NhZTFjNjhmMDVlYTJkYzgxY2JhNzRjICAuL2Rpci0wNTUvZGF0YS4wMDcKK2ZkNjMwMDRhZTg4NmNlOGU1MjA3NTZjNmVmZjA0ODM1ICAuL2Rpci0wMDkvZGF0YS4wMDMKK2ZlMDg2Yjc5YTJjMjlmMTM0MzdjMTM0NmE4Y2I1M2Y0ICAuL2Rpci0wMDkvZGF0YS4wMDUKK2ZlMzUwNWRmMTY0MmU5ZDMwNjI2OWUyZTA3YWIxMDg5ICAuL2Rpci0wNjQvZGF0YS4wMDAKK2ZlNGYzMTBiNzc2ZTMwOTUwM2Y1MjNiOGEyNmQzYmE4ICAuL2Rpci0wODUvZGF0YS4wMTAKK2ZlNjhlYzY2MDdjMTVmMGNlYWJhZGExMDFiMzgyYjBlICAuL2Rpci0wNjkvZGF0YS4wMDQKK2ZlNzc1MWE1NDg3MTcyMzAzZGU2NDg2NzI2MDJjMjhhICAuL2Rpci0wNzYvZGF0YS4wMDIKK2ZlYjhiNjllNjIyNGE3ZWE3MmU4ODFlM2Y0YTQ1YjMyICAuL2Rpci0wMjgvZGF0YS4wMDkKK2ZlZDU0MGExMWYwMGYxZjgwNDcwYmU3YjQ5MWZjNDVjICAuL2Rpci0xMDgvZGF0YS4wMDIKK2ZlZDVlMDBkYzk0ZWQ3NTEwNjExOTRlY2NmMmM3N2UyICAuL2Rpci0wNTAvZGF0YS4wMDcKK2ZmMTBjN2IzN2Q3MDViYzQ4YTFmZGVlNjJlYTc2NjFmICAuL2Rpci0wNzkvZGF0YS4wMDYKK2ZmMTNkNDkzMjZmZjg3NTkxMTllNzg5NTlkZTYyOGU5ICAuL2Rpci0wNDgvZGF0YS4wMDMKK2ZmMjE2ZjBmMmU1NDBlOTA1Nzg3NGIwY2I0ZmRjZGIxICAuL2Rpci0xMDAvZGF0YS4wMDcKK2ZmOTJiZjA0NjM0ZTI2YTI5ODBmZmI2YWQ0N2Y5YzA1ICAuL2Rpci0wMjYvZGF0YS4wMDYKK2ZmZTA3OGRlMzU4MzAyNWM0NzgwYzhmNDMwNTc3MmMzICAuL2Rpci0wODUvZGF0YS4wMDQKK2ZmZjYwMTVjM2I4Zjc5MWY0MDI3NzkxYWMwYjVmNTkzICAuL2Rpci0wNjMvZGF0YS4wMDQKKwordW1vdW50IHRoZSBpbWFnZQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvY3JhbWZzL21rZnMtZW5kaWFubmVzcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2NyYW1mcy9ta2ZzLWVuZGlhbm5lc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY5MzVhNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2NyYW1mcy9ta2ZzLWVuZGlhbm5lc3MKQEAgLTAsMCArMSw0IEBACitjcmVhdGUgbGl0dGxlIGVuZGlhbgorNDY2NmYwZDJiNjYxZjlmMzk2Mjg3N2VkYWJhZGIyMTAKK2NyZWF0ZSBiaWcgZW5kaWFuCitiYzBiN2JiZWYwMjc2NWQzMmUwN2ZhYTczNWQyZTBjNgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svYWxpZ24tNTEyLTRLIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svYWxpZ24tNTEyLTRLCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MTNlMTcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9hbGlnbi01MTItNEsKQEAgLTAsMCArMSw3OCBAQAorQ3JlYXRlIHBhcnRpdGlvbnMKK0RldmljZSBjb250YWlucyBuZWl0aGVyIGEgdmFsaWQgRE9TIHBhcnRpdGlvbiB0YWJsZSwgbm9yIFN1biwgU0dJIG9yIE9TRiBkaXNrbGFiZWwKKworQ2hhbmdlcyB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgb25seSwgdW50aWwgeW91IGRlY2lkZSB0byB3cml0ZSB0aGVtLgorQWZ0ZXIgdGhhdCwgb2YgY291cnNlLCB0aGUgcHJldmlvdXMgY29udGVudCB3b24ndCBiZSByZWNvdmVyYWJsZS4KKworV2FybmluZzogaW52YWxpZCBmbGFnIDB4MDAwMCBvZiBwYXJ0aXRpb24gdGFibGUgNCB3aWxsIGJlIGNvcnJlY3RlZCBieSB3KHJpdGUpCisKK1RoZSBkZXZpY2UgcHJlc2VudHMgYSBsb2dpY2FsIHNlY3RvciBzaXplIHRoYXQgaXMgc21hbGxlciB0aGFuCit0aGUgcGh5c2ljYWwgc2VjdG9yIHNpemUuIEFsaWduaW5nIHRvIGEgcGh5c2ljYWwgc2VjdG9yIChvciBvcHRpbWFsCitJL08pIHNpemUgYm91bmRhcnkgaXMgcmVjb21tZW5kZWQsIG9yIHBlcmZvcm1hbmNlIG1heSBiZSBpbXBhY3RlZC4KKworV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvCisgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvCisgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuCisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXQKKworQ29tbWFuZCAobSBmb3IgaGVscCk6IENoYW5naW5nIGRpc3BsYXkvZW50cnkgdW5pdHMgdG8gc2VjdG9ycworCitDb21tYW5kIChtIGZvciBoZWxwKTogQ29tbWFuZCBhY3Rpb24KKyAgIGUgICBleHRlbmRlZAorICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpCitQYXJ0aXRpb24gbnVtYmVyICgxLTQpOiBGaXJzdCBzZWN0b3IgKDIwNDgtMTAyMzk5LCBkZWZhdWx0IDIwNDgpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDIwNDgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDIwNDgtMTAyMzk5LCBkZWZhdWx0IDEwMjM5OSk6IAorQ29tbWFuZCAobSBmb3IgaGVscCk6IENvbW1hbmQgYWN0aW9uCisgICBlICAgZXh0ZW5kZWQKKyAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KQorUGFydGl0aW9uIG51bWJlciAoMS00KTogRmlyc3Qgc2VjdG9yICgyMjUyOC0xMDIzOTksIGRlZmF1bHQgMjI1MjgpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDIyNTI4CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICgyMjUyOC0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogQ29tbWFuZCBhY3Rpb24KKyAgIGUgICBleHRlbmRlZAorICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpCitQYXJ0aXRpb24gbnVtYmVyICgxLTQpOiBGaXJzdCBzZWN0b3IgKDQzMDA4LTEwMjM5OSwgZGVmYXVsdCA0MzAwOCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNDMwMDgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDQzMDA4LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiAKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDb21tYW5kIGFjdGlvbgorICAgZSAgIGV4dGVuZGVkCisgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNCkKK1NlbGVjdGVkIHBhcnRpdGlvbiA0CitGaXJzdCBzZWN0b3IgKDYzNDg4LTEwMjM5OSwgZGVmYXVsdCA2MzQ4OCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNjM0ODgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDYzNDg4LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDEwMjM5OQorCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg2NTUzNi0xMDIzOTksIGRlZmF1bHQgNjU1MzYpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDY1NTM2CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg2NTUzNi0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg3NzgyNC0xMDIzOTksIGRlZmF1bHQgNzc4MjQpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDc3ODI0CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg3NzgyNC0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg5MDExMi0xMDIzOTksIGRlZmF1bHQgOTAxMTIpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDkwMTEyCitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg5MDExMi0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogVXNpbmcgZGVmYXVsdCB2YWx1ZSAxMDIzOTkKKworQ29tbWFuZCAobSBmb3IgaGVscCk6IAorRGlzayAvZGV2L3NkYjogNTIgTUIsIDUyNDI4ODAwIGJ5dGVzCiszMiBoZWFkcywgMzIgc2VjdG9ycy90cmFjaywgMTAwIGN5bGluZGVycywgdG90YWwgMTAyNDAwIHNlY3RvcnMKK1VuaXRzID0gc2VjdG9ycyBvZiAxICogNTEyID0gNTEyIGJ5dGVzCitTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6IDUxMiBieXRlcyAvIDQwOTYgYnl0ZXMKK0kvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiA0MDk2IGJ5dGVzIC8gMzI3NjggYnl0ZXMKKworCisgICBEZXZpY2UgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbQorL2Rldi9zZGIxICAgICAgICAgICAgMjA0OCAgICAgICAyMjUyNyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorL2Rldi9zZGIyICAgICAgICAgICAyMjUyOCAgICAgICA0MzAwNyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorL2Rldi9zZGIzICAgICAgICAgICA0MzAwOCAgICAgICA2MzQ4NyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorL2Rldi9zZGI0ICAgICAgICAgICA2MzQ4OCAgICAgIDEwMjM5OSAgICAgICAxOTQ1NiAgICA1ICBFeHRlbmRlZAorL2Rldi9zZGI1ICAgICAgICAgICA2NTUzNiAgICAgICA3NTc3NSAgICAgICAgNTEyMCAgIDgzICBMaW51eAorL2Rldi9zZGI2ICAgICAgICAgICA3NzgyNCAgICAgICA4ODA2MyAgICAgICAgNTEyMCAgIDgzICBMaW51eAorL2Rldi9zZGI3ICAgICAgICAgICA5MDExMiAgICAgIDEwMjM5OSAgICAgICAgNjE0NCAgIDgzICBMaW51eAorCitDb21tYW5kIChtIGZvciBoZWxwKTogVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIQorCitDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuCitTeW5jaW5nIGRpc2tzLgorQWxpZ25tZW50IG9mZnNldHM6CiswCiswCiswCiswCiswCiswCiswCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9hbGlnbi01MTItNEstNjMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9hbGlnbi01MTItNEstNjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVlM2JkOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2ZkaXNrL2FsaWduLTUxMi00Sy02MwpAQCAtMCwwICsxLDc5IEBACitDcmVhdGUgcGFydGl0aW9ucworRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGIGRpc2tsYWJlbAorCitDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uCitBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLgorCitXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHgwMDAwIG9mIHBhcnRpdGlvbiB0YWJsZSA0IHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSkKKworVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW4KK3RoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWwKK0kvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLgorCitXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8KKyAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG8KKyAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS4KKworQ29tbWFuZCAobSBmb3IgaGVscCk6IERPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldAorCitDb21tYW5kIChtIGZvciBoZWxwKTogQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byBzZWN0b3JzCisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDb21tYW5kIGFjdGlvbgorICAgZSAgIGV4dGVuZGVkCisgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNCkKK1BhcnRpdGlvbiBudW1iZXIgKDEtNCk6IEZpcnN0IHNlY3RvciAoNy0xMDIzOTksIGRlZmF1bHQgNyk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNworTGFzdCBzZWN0b3IsICtzZWN0b3JzIG9yICtzaXple0ssTSxHfSAoNy0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogQ29tbWFuZCBhY3Rpb24KKyAgIGUgICBleHRlbmRlZAorICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpCitQYXJ0aXRpb24gbnVtYmVyICgxLTQpOiBGaXJzdCBzZWN0b3IgKDIwNDg3LTEwMjM5OSwgZGVmYXVsdCAyMDQ4Nyk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgMjA0ODcKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDIwNDg3LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiAKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDb21tYW5kIGFjdGlvbgorICAgZSAgIGV4dGVuZGVkCisgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNCkKK1BhcnRpdGlvbiBudW1iZXIgKDEtNCk6IEZpcnN0IHNlY3RvciAoNDA5NjctMTAyMzk5LCBkZWZhdWx0IDQwOTY3KTogVXNpbmcgZGVmYXVsdCB2YWx1ZSA0MDk2NworTGFzdCBzZWN0b3IsICtzZWN0b3JzIG9yICtzaXple0ssTSxHfSAoNDA5NjctMTAyMzk5LCBkZWZhdWx0IDEwMjM5OSk6IAorQ29tbWFuZCAobSBmb3IgaGVscCk6IENvbW1hbmQgYWN0aW9uCisgICBlICAgZXh0ZW5kZWQKKyAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KQorU2VsZWN0ZWQgcGFydGl0aW9uIDQKK0ZpcnN0IHNlY3RvciAoNjE0NDctMTAyMzk5LCBkZWZhdWx0IDYxNDQ3KTogVXNpbmcgZGVmYXVsdCB2YWx1ZSA2MTQ0NworTGFzdCBzZWN0b3IsICtzZWN0b3JzIG9yICtzaXple0ssTSxHfSAoNjE0NDctMTAyMzk5LCBkZWZhdWx0IDEwMjM5OSk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgMTAyMzk5CisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBGaXJzdCBzZWN0b3IgKDYxNDU0LTEwMjM5OSwgZGVmYXVsdCA2MzQ4Nyk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNjM0ODcKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDYzNDg3LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiAKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBGaXJzdCBzZWN0b3IgKDYxNDU0LTEwMjM5OSwgZGVmYXVsdCA3NTc3NSk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNzU3NzUKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDc1Nzc1LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiAKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBGaXJzdCBzZWN0b3IgKDYxNDU0LTEwMjM5OSwgZGVmYXVsdCA4ODA2Myk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgODgwNjMKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDg4MDYzLTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDEwMjM5OQorCitDb21tYW5kIChtIGZvciBoZWxwKTogCitEaXNrIC9kZXYvc2RiOiA1MiBNQiwgNTI0Mjg4MDAgYnl0ZXMKKzMyIGhlYWRzLCAzMiBzZWN0b3JzL3RyYWNrLCAxMDAgY3lsaW5kZXJzLCB0b3RhbCAxMDI0MDAgc2VjdG9ycworVW5pdHMgPSBzZWN0b3JzIG9mIDEgKiA1MTIgPSA1MTIgYnl0ZXMKK1NlY3RvciBzaXplIChsb2dpY2FsL3BoeXNpY2FsKTogNTEyIGJ5dGVzIC8gNDA5NiBieXRlcworSS9PIHNpemUgKG1pbmltdW0vb3B0aW1hbCk6IDQwOTYgYnl0ZXMgLyAzMjc2OCBieXRlcworQWxpZ25tZW50IG9mZnNldDogMzU4NCBieXRlcworCisKKyAgIERldmljZSBCb290ICAgICAgU3RhcnQgICAgICAgICBFbmQgICAgICBCbG9ja3MgICBJZCAgU3lzdGVtCisvZGV2L3NkYjEgICAgICAgICAgICAgICA3ICAgICAgIDIwNDg2ICAgICAgIDEwMjQwICAgODMgIExpbnV4CisvZGV2L3NkYjIgICAgICAgICAgIDIwNDg3ICAgICAgIDQwOTY2ICAgICAgIDEwMjQwICAgODMgIExpbnV4CisvZGV2L3NkYjMgICAgICAgICAgIDQwOTY3ICAgICAgIDYxNDQ2ICAgICAgIDEwMjQwICAgODMgIExpbnV4CisvZGV2L3NkYjQgICAgICAgICAgIDYxNDQ3ICAgICAgMTAyMzk5ICAgICAgIDIwNDc2KyAgIDUgIEV4dGVuZGVkCisvZGV2L3NkYjUgICAgICAgICAgIDYzNDg3ICAgICAgIDczNzI2ICAgICAgICA1MTIwICAgODMgIExpbnV4CisvZGV2L3NkYjYgICAgICAgICAgIDc1Nzc1ICAgICAgIDg2MDE0ICAgICAgICA1MTIwICAgODMgIExpbnV4CisvZGV2L3NkYjcgICAgICAgICAgIDg4MDYzICAgICAgMTAyMzk5ICAgICAgICA3MTY4KyAgODMgIExpbnV4CisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBUaGUgcGFydGl0aW9uIHRhYmxlIGhhcyBiZWVuIGFsdGVyZWQhCisKK0NhbGxpbmcgaW9jdGwoKSB0byByZS1yZWFkIHBhcnRpdGlvbiB0YWJsZS4KK1N5bmNpbmcgZGlza3MuCitBbGlnbm1lbnQgb2Zmc2V0czoKKzAKKzAKKzAKKzAKKzAKKzAKKzAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2ZkaXNrL2FsaWduLTUxMi00Sy1tZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2ZkaXNrL2FsaWduLTUxMi00Sy1tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjZiOTRhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svYWxpZ24tNTEyLTRLLW1kCkBAIC0wLDAgKzEsOTkgQEAKK0NyZWF0ZSBwYXJ0aXRpb25zCitEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgZGlza2xhYmVsCisKK0NoYW5nZXMgd2lsbCByZW1haW4gaW4gbWVtb3J5IG9ubHksIHVudGlsIHlvdSBkZWNpZGUgdG8gd3JpdGUgdGhlbS4KK0FmdGVyIHRoYXQsIG9mIGNvdXJzZSwgdGhlIHByZXZpb3VzIGNvbnRlbnQgd29uJ3QgYmUgcmVjb3ZlcmFibGUuCisKK1dhcm5pbmc6IGludmFsaWQgZmxhZyAweDAwMDAgb2YgcGFydGl0aW9uIHRhYmxlIDQgd2lsbCBiZSBjb3JyZWN0ZWQgYnkgdyhyaXRlKQorCitUaGUgZGV2aWNlIHByZXNlbnRzIGEgbG9naWNhbCBzZWN0b3Igc2l6ZSB0aGF0IGlzIHNtYWxsZXIgdGhhbgordGhlIHBoeXNpY2FsIHNlY3RvciBzaXplLiBBbGlnbmluZyB0byBhIHBoeXNpY2FsIHNlY3RvciAob3Igb3B0aW1hbAorSS9PKSBzaXplIGJvdW5kYXJ5IGlzIHJlY29tbWVuZGVkLCBvciBwZXJmb3JtYW5jZSBtYXkgYmUgaW1wYWN0ZWQuCisKK1dBUk5JTkc6IERPUy1jb21wYXRpYmxlIG1vZGUgaXMgZGVwcmVjYXRlZC4gSXQncyBzdHJvbmdseSByZWNvbW1lbmRlZCB0bworICAgICAgICAgc3dpdGNoIG9mZiB0aGUgbW9kZSAoY29tbWFuZCAnYycpIGFuZCBjaGFuZ2UgZGlzcGxheSB1bml0cyB0bworICAgICAgICAgc2VjdG9ycyAoY29tbWFuZCAndScpLgorCitDb21tYW5kIChtIGZvciBoZWxwKTogRE9TIENvbXBhdGliaWxpdHkgZmxhZyBpcyBub3Qgc2V0CisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDaGFuZ2luZyBkaXNwbGF5L2VudHJ5IHVuaXRzIHRvIHNlY3RvcnMKKworQ29tbWFuZCAobSBmb3IgaGVscCk6IENvbW1hbmQgYWN0aW9uCisgICBlICAgZXh0ZW5kZWQKKyAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KQorUGFydGl0aW9uIG51bWJlciAoMS00KTogRmlyc3Qgc2VjdG9yICgyMDQ4LTEwMjM5OSwgZGVmYXVsdCAyMDQ4KTogVXNpbmcgZGVmYXVsdCB2YWx1ZSAyMDQ4CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICgyMDQ4LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiAKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDb21tYW5kIGFjdGlvbgorICAgZSAgIGV4dGVuZGVkCisgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNCkKK1BhcnRpdGlvbiBudW1iZXIgKDEtNCk6IEZpcnN0IHNlY3RvciAoNDMwMDgtMTAyMzk5LCBkZWZhdWx0IDQzMDA4KTogVXNpbmcgZGVmYXVsdCB2YWx1ZSA0MzAwOAorTGFzdCBzZWN0b3IsICtzZWN0b3JzIG9yICtzaXple0ssTSxHfSAoNDMwMDgtMTAyMzk5LCBkZWZhdWx0IDEwMjM5OSk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgMTAyMzk5CisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiAKK0Rpc2sgL2Rldi9zZGI6IDUyIE1CLCA1MjQyODgwMCBieXRlcworMzIgaGVhZHMsIDMyIHNlY3RvcnMvdHJhY2ssIDEwMCBjeWxpbmRlcnMsIHRvdGFsIDEwMjQwMCBzZWN0b3JzCitVbml0cyA9IHNlY3RvcnMgb2YgMSAqIDUxMiA9IDUxMiBieXRlcworU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiA1MTIgYnl0ZXMgLyA0MDk2IGJ5dGVzCitJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogNDA5NiBieXRlcyAvIDMyNzY4IGJ5dGVzCisKKworICAgRGV2aWNlIEJvb3QgICAgICBTdGFydCAgICAgICAgIEVuZCAgICAgIEJsb2NrcyAgIElkICBTeXN0ZW0KKy9kZXYvc2RiMSAgICAgICAgICAgIDIwNDggICAgICAgNDMwMDcgICAgICAgMjA0ODAgICA4MyAgTGludXgKKy9kZXYvc2RiMiAgICAgICAgICAgNDMwMDggICAgICAxMDIzOTkgICAgICAgMjk2OTYgICA4MyAgTGludXgKKworQ29tbWFuZCAobSBmb3IgaGVscCk6IFRoZSBwYXJ0aXRpb24gdGFibGUgaGFzIGJlZW4gYWx0ZXJlZCEKKworQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLgorU3luY2luZyBkaXNrcy4KK0FsaWdubWVudCBvZmZzZXRzOgorMAorMAorQ3JlYXRlIHBhcnRpdGlvbnMgKE1EKQorRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGIGRpc2tsYWJlbAorCitDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uCitBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLgorCitXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHgwMDAwIG9mIHBhcnRpdGlvbiB0YWJsZSA0IHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSkKKworVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW4KK3RoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWwKK0kvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLgorCitXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8KKyAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG8KKyAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS4KKworQ29tbWFuZCAobSBmb3IgaGVscCk6IERPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldAorCitDb21tYW5kIChtIGZvciBoZWxwKTogQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byBzZWN0b3JzCisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDb21tYW5kIGFjdGlvbgorICAgZSAgIGV4dGVuZGVkCisgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNCkKK1BhcnRpdGlvbiBudW1iZXIgKDEtNCk6IEZpcnN0IHNlY3RvciAoMjA0OC0xMDAwOTUsIGRlZmF1bHQgMjA0OCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgMjA0OAorTGFzdCBzZWN0b3IsICtzZWN0b3JzIG9yICtzaXple0ssTSxHfSAoMjA0OC0xMDAwOTUsIGRlZmF1bHQgMTAwMDk1KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogQ29tbWFuZCBhY3Rpb24KKyAgIGUgICBleHRlbmRlZAorICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpCitQYXJ0aXRpb24gbnVtYmVyICgxLTQpOiBGaXJzdCBzZWN0b3IgKDIyNTI4LTEwMDA5NSwgZGVmYXVsdCAyMjUyOCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgMjI1MjgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDIyNTI4LTEwMDA5NSwgZGVmYXVsdCAxMDAwOTUpOiAKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiAKK0Rpc2sgL2Rldi9tZDg6IDUxIE1CLCA1MTI0OTE1MiBieXRlcworMiBoZWFkcywgNCBzZWN0b3JzL3RyYWNrLCAxMjUxMiBjeWxpbmRlcnMsIHRvdGFsIDEwMDA5NiBzZWN0b3JzCitVbml0cyA9IHNlY3RvcnMgb2YgMSAqIDUxMiA9IDUxMiBieXRlcworU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiA1MTIgYnl0ZXMgLyA0MDk2IGJ5dGVzCitJL08gc2l6ZSAobWluaW11bS9vcHRpbWFsKTogNjU1MzYgYnl0ZXMgLyAxMzEwNzIgYnl0ZXMKKworCisgICAgRGV2aWNlIEJvb3QgICAgICBTdGFydCAgICAgICAgIEVuZCAgICAgIEJsb2NrcyAgIElkICBTeXN0ZW0KKy9kZXYvbWQ4cDEgICAgICAgICAgICAyMDQ4ICAgICAgIDIyNTI3ICAgICAgIDEwMjQwICAgODMgIExpbnV4CisvZGV2L21kOHAyICAgICAgICAgICAyMjUyOCAgICAgICA0MzAwNyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorCitDb21tYW5kIChtIGZvciBoZWxwKTogVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIQorCitDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuCitTeW5jaW5nIGRpc2tzLgorQWxpZ25tZW50IG9mZnNldHMgKE1EKToKKzAKKzAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2ZkaXNrL2FsaWduLTUxMi00Sy10b3BvbG9neSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2ZkaXNrL2FsaWduLTUxMi00Sy10b3BvbG9neQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTAxY2M2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svYWxpZ24tNTEyLTRLLXRvcG9sb2d5CkBAIC0wLDAgKzEsNzggQEAKK0NyZWF0ZSBwYXJ0aXRpb25zCitEZXZpY2UgY29udGFpbnMgbmVpdGhlciBhIHZhbGlkIERPUyBwYXJ0aXRpb24gdGFibGUsIG5vciBTdW4sIFNHSSBvciBPU0YgZGlza2xhYmVsCitCdWlsZGluZyBhIG5ldyBET1MgZGlza2xhYmVsIHdpdGggZGlzayBpZGVudGlmaWVyIDB4ODE3Y2I4NGEuCitDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uCitBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLgorCitXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHgwMDAwIG9mIHBhcnRpdGlvbiB0YWJsZSA0IHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSkKKworVGhlIGRldmljZSBwcmVzZW50cyBhIGxvZ2ljYWwgc2VjdG9yIHNpemUgdGhhdCBpcyBzbWFsbGVyIHRoYW4KK3RoZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZS4gQWxpZ25pbmcgdG8gYSBwaHlzaWNhbCBzZWN0b3IgKG9yIG9wdGltYWwKK0kvTykgc2l6ZSBib3VuZGFyeSBpcyByZWNvbW1lbmRlZCwgb3IgcGVyZm9ybWFuY2UgbWF5IGJlIGltcGFjdGVkLgorCitXQVJOSU5HOiBET1MtY29tcGF0aWJsZSBtb2RlIGlzIGRlcHJlY2F0ZWQuIEl0J3Mgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8KKyAgICAgICAgIHN3aXRjaCBvZmYgdGhlIG1vZGUgKGNvbW1hbmQgJ2MnKSBhbmQgY2hhbmdlIGRpc3BsYXkgdW5pdHMgdG8KKyAgICAgICAgIHNlY3RvcnMgKGNvbW1hbmQgJ3UnKS4KKworQ29tbWFuZCAobSBmb3IgaGVscCk6IERPUyBDb21wYXRpYmlsaXR5IGZsYWcgaXMgbm90IHNldAorCitDb21tYW5kIChtIGZvciBoZWxwKTogQ2hhbmdpbmcgZGlzcGxheS9lbnRyeSB1bml0cyB0byBzZWN0b3JzCisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDb21tYW5kIGFjdGlvbgorICAgZSAgIGV4dGVuZGVkCisgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNCkKK1BhcnRpdGlvbiBudW1iZXIgKDEtNCk6IEZpcnN0IHNlY3RvciAoNjQtMTAyMzk5LCBkZWZhdWx0IDY0KTogVXNpbmcgZGVmYXVsdCB2YWx1ZSA2NAorTGFzdCBzZWN0b3IsICtzZWN0b3JzIG9yICtzaXple0ssTSxHfSAoNjQtMTAyMzk5LCBkZWZhdWx0IDEwMjM5OSk6CitDb21tYW5kIChtIGZvciBoZWxwKTogQ29tbWFuZCBhY3Rpb24KKyAgIGUgICBleHRlbmRlZAorICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpCitQYXJ0aXRpb24gbnVtYmVyICgxLTQpOiBGaXJzdCBzZWN0b3IgKDIwNTQ0LTEwMjM5OSwgZGVmYXVsdCAyMDU0NCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgMjA1NDQKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDIwNTQ0LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOgorQ29tbWFuZCAobSBmb3IgaGVscCk6IENvbW1hbmQgYWN0aW9uCisgICBlICAgZXh0ZW5kZWQKKyAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KQorUGFydGl0aW9uIG51bWJlciAoMS00KTogRmlyc3Qgc2VjdG9yICg0MTAyNC0xMDIzOTksIGRlZmF1bHQgNDEwMjQpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDQxMDI0CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg0MTAyNC0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KToKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDb21tYW5kIGFjdGlvbgorICAgZSAgIGV4dGVuZGVkCisgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNCkKK1NlbGVjdGVkIHBhcnRpdGlvbiA0CitGaXJzdCBzZWN0b3IgKDYxNTA0LTEwMjM5OSwgZGVmYXVsdCA2MTUwNCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNjE1MDQKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDYxNTA0LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDEwMjM5OQorCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg2MTU2OC0xMDIzOTksIGRlZmF1bHQgNjE1NjgpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDYxNTY4CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg2MTU2OC0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KToKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBGaXJzdCBzZWN0b3IgKDcxODcyLTEwMjM5OSwgZGVmYXVsdCA3MTg3Mik6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNzE4NzIKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDcxODcyLTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOgorQ29tbWFuZCAobSBmb3IgaGVscCk6IEZpcnN0IHNlY3RvciAoODIxNzYtMTAyMzk5LCBkZWZhdWx0IDgyMTc2KTogVXNpbmcgZGVmYXVsdCB2YWx1ZSA4MjE3NgorTGFzdCBzZWN0b3IsICtzZWN0b3JzIG9yICtzaXple0ssTSxHfSAoODIxNzYtMTAyMzk5LCBkZWZhdWx0IDEwMjM5OSk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgMTAyMzk5CisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOgorRGlzayAvZGV2L3NkYjogNTIgTUIsIDUyNDI4ODAwIGJ5dGVzCiszMiBoZWFkcywgMzIgc2VjdG9ycy90cmFjaywgMTAwIGN5bGluZGVycywgdG90YWwgMTAyNDAwIHNlY3RvcnMKK1VuaXRzID0gc2VjdG9ycyBvZiAxICogNTEyID0gNTEyIGJ5dGVzCitTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6IDUxMiBieXRlcyAvIDQwOTYgYnl0ZXMKK0kvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiA0MDk2IGJ5dGVzIC8gMzI3NjggYnl0ZXMKK0Rpc2sgaWRlbnRpZmllcjogMHg4MTdjYjg0YQorCisgICBEZXZpY2UgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbQorL2Rldi9zZGIxICAgICAgICAgICAgICA2NCAgICAgICAyMDU0MyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorL2Rldi9zZGIyICAgICAgICAgICAyMDU0NCAgICAgICA0MTAyMyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorL2Rldi9zZGIzICAgICAgICAgICA0MTAyNCAgICAgICA2MTUwMyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorL2Rldi9zZGI0ICAgICAgICAgICA2MTUwNCAgICAgIDEwMjM5OSAgICAgICAyMDQ0OCAgICA1ICBFeHRlbmRlZAorL2Rldi9zZGI1ICAgICAgICAgICA2MTU2OCAgICAgICA3MTgwNyAgICAgICAgNTEyMCAgIDgzICBMaW51eAorL2Rldi9zZGI2ICAgICAgICAgICA3MTg3MiAgICAgICA4MjExMSAgICAgICAgNTEyMCAgIDgzICBMaW51eAorL2Rldi9zZGI3ICAgICAgICAgICA4MjE3NiAgICAgIDEwMjM5OSAgICAgICAxMDExMiAgIDgzICBMaW51eAorCitDb21tYW5kIChtIGZvciBoZWxwKTogVGhlIHBhcnRpdGlvbiB0YWJsZSBoYXMgYmVlbiBhbHRlcmVkIQorCitDYWxsaW5nIGlvY3RsKCkgdG8gcmUtcmVhZCBwYXJ0aXRpb24gdGFibGUuCitTeW5jaW5nIGRpc2tzLgorQWxpZ25tZW50IG9mZnNldHM6CiswCiswCiswCiswCiswCiswCiswCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9hbGlnbi01MTItNTEyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svYWxpZ24tNTEyLTUxMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTg0ZDZiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svYWxpZ24tNTEyLTUxMgpAQCAtMCwwICsxLDYzIEBACitDcmVhdGUgcGFydGl0aW9ucworRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGIGRpc2tsYWJlbAorCitDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uCitBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLgorCitXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHgwMDAwIG9mIHBhcnRpdGlvbiB0YWJsZSA0IHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSkKKworV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvCisgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvCisgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuCisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXQKKworQ29tbWFuZCAobSBmb3IgaGVscCk6IENoYW5naW5nIGRpc3BsYXkvZW50cnkgdW5pdHMgdG8gc2VjdG9ycworCitDb21tYW5kIChtIGZvciBoZWxwKTogQ29tbWFuZCBhY3Rpb24KKyAgIGUgICBleHRlbmRlZAorICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpCitQYXJ0aXRpb24gbnVtYmVyICgxLTQpOiBGaXJzdCBzZWN0b3IgKDIwNDgtMTAyMzk5LCBkZWZhdWx0IDIwNDgpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDIwNDgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDIwNDgtMTAyMzk5LCBkZWZhdWx0IDEwMjM5OSk6IAorQ29tbWFuZCAobSBmb3IgaGVscCk6IENvbW1hbmQgYWN0aW9uCisgICBlICAgZXh0ZW5kZWQKKyAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KQorUGFydGl0aW9uIG51bWJlciAoMS00KTogRmlyc3Qgc2VjdG9yICgyMjUyOC0xMDIzOTksIGRlZmF1bHQgMjI1MjgpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDIyNTI4CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICgyMjUyOC0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogQ29tbWFuZCBhY3Rpb24KKyAgIGUgICBleHRlbmRlZAorICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpCitQYXJ0aXRpb24gbnVtYmVyICgxLTQpOiBGaXJzdCBzZWN0b3IgKDQzMDA4LTEwMjM5OSwgZGVmYXVsdCA0MzAwOCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNDMwMDgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDQzMDA4LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiAKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDb21tYW5kIGFjdGlvbgorICAgZSAgIGV4dGVuZGVkCisgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNCkKK1NlbGVjdGVkIHBhcnRpdGlvbiA0CitGaXJzdCBzZWN0b3IgKDYzNDg4LTEwMjM5OSwgZGVmYXVsdCA2MzQ4OCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNjM0ODgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDYzNDg4LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDEwMjM5OQorCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg2NTUzNi0xMDIzOTksIGRlZmF1bHQgNjU1MzYpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDY1NTM2CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg2NTUzNi0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg3NzgyNC0xMDIzOTksIGRlZmF1bHQgNzc4MjQpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDc3ODI0CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg3NzgyNC0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg5MDExMi0xMDIzOTksIGRlZmF1bHQgOTAxMTIpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDkwMTEyCitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg5MDExMi0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogVXNpbmcgZGVmYXVsdCB2YWx1ZSAxMDIzOTkKKworQ29tbWFuZCAobSBmb3IgaGVscCk6IAorRGlzayAvZGV2L2xvb3AwOiA1MiBNQiwgNTI0Mjg4MDAgYnl0ZXMKKzI1NSBoZWFkcywgNjMgc2VjdG9ycy90cmFjaywgNiBjeWxpbmRlcnMsIHRvdGFsIDEwMjQwMCBzZWN0b3JzCitVbml0cyA9IHNlY3RvcnMgb2YgMSAqIDUxMiA9IDUxMiBieXRlcworU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiA1MTIgYnl0ZXMgLyA1MTIgYnl0ZXMKK0kvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiA1MTIgYnl0ZXMgLyA1MTIgYnl0ZXMKKworCisgICAgICBEZXZpY2UgQm9vdCAgICAgIFN0YXJ0ICAgICAgICAgRW5kICAgICAgQmxvY2tzICAgSWQgIFN5c3RlbQorL2Rldi9sb29wMHAxICAgICAgICAgICAgMjA0OCAgICAgICAyMjUyNyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorL2Rldi9sb29wMHAyICAgICAgICAgICAyMjUyOCAgICAgICA0MzAwNyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorL2Rldi9sb29wMHAzICAgICAgICAgICA0MzAwOCAgICAgICA2MzQ4NyAgICAgICAxMDI0MCAgIDgzICBMaW51eAorL2Rldi9sb29wMHA0ICAgICAgICAgICA2MzQ4OCAgICAgIDEwMjM5OSAgICAgICAxOTQ1NiAgICA1ICBFeHRlbmRlZAorL2Rldi9sb29wMHA1ICAgICAgICAgICA2NTUzNiAgICAgICA3NTc3NSAgICAgICAgNTEyMCAgIDgzICBMaW51eAorL2Rldi9sb29wMHA2ICAgICAgICAgICA3NzgyNCAgICAgICA4ODA2MyAgICAgICAgNTEyMCAgIDgzICBMaW51eAorL2Rldi9sb29wMHA3ICAgICAgICAgICA5MDExMiAgICAgIDEwMjM5OSAgICAgICAgNjE0NCAgIDgzICBMaW51eAorCitDb21tYW5kIChtIGZvciBoZWxwKTogCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9hbGlnbi01MTItNTEyLXRvcG9sb2d5IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svYWxpZ24tNTEyLTUxMi10b3BvbG9neQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWNkMWI0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svYWxpZ24tNTEyLTUxMi10b3BvbG9neQpAQCAtMCwwICsxLDc0IEBACitDcmVhdGUgcGFydGl0aW9ucworRGV2aWNlIGNvbnRhaW5zIG5laXRoZXIgYSB2YWxpZCBET1MgcGFydGl0aW9uIHRhYmxlLCBub3IgU3VuLCBTR0kgb3IgT1NGIGRpc2tsYWJlbAorCitDaGFuZ2VzIHdpbGwgcmVtYWluIGluIG1lbW9yeSBvbmx5LCB1bnRpbCB5b3UgZGVjaWRlIHRvIHdyaXRlIHRoZW0uCitBZnRlciB0aGF0LCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBjb250ZW50IHdvbid0IGJlIHJlY292ZXJhYmxlLgorCitXYXJuaW5nOiBpbnZhbGlkIGZsYWcgMHgwMDAwIG9mIHBhcnRpdGlvbiB0YWJsZSA0IHdpbGwgYmUgY29ycmVjdGVkIGJ5IHcocml0ZSkKKworV0FSTklORzogRE9TLWNvbXBhdGlibGUgbW9kZSBpcyBkZXByZWNhdGVkLiBJdCdzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvCisgICAgICAgICBzd2l0Y2ggb2ZmIHRoZSBtb2RlIChjb21tYW5kICdjJykgYW5kIGNoYW5nZSBkaXNwbGF5IHVuaXRzIHRvCisgICAgICAgICBzZWN0b3JzIChjb21tYW5kICd1JykuCisKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBET1MgQ29tcGF0aWJpbGl0eSBmbGFnIGlzIG5vdCBzZXQKKworQ29tbWFuZCAobSBmb3IgaGVscCk6IENoYW5naW5nIGRpc3BsYXkvZW50cnkgdW5pdHMgdG8gc2VjdG9ycworCitDb21tYW5kIChtIGZvciBoZWxwKTogQ29tbWFuZCBhY3Rpb24KKyAgIGUgICBleHRlbmRlZAorICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpCitQYXJ0aXRpb24gbnVtYmVyICgxLTQpOiBGaXJzdCBzZWN0b3IgKDIwNDgtMTAyMzk5LCBkZWZhdWx0IDIwNDgpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDIwNDgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDIwNDgtMTAyMzk5LCBkZWZhdWx0IDEwMjM5OSk6IAorQ29tbWFuZCAobSBmb3IgaGVscCk6IENvbW1hbmQgYWN0aW9uCisgICBlICAgZXh0ZW5kZWQKKyAgIHAgICBwcmltYXJ5IHBhcnRpdGlvbiAoMS00KQorUGFydGl0aW9uIG51bWJlciAoMS00KTogRmlyc3Qgc2VjdG9yICgyMjUyOC0xMDIzOTksIGRlZmF1bHQgMjI1MjgpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDIyNTI4CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICgyMjUyOC0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogQ29tbWFuZCBhY3Rpb24KKyAgIGUgICBleHRlbmRlZAorICAgcCAgIHByaW1hcnkgcGFydGl0aW9uICgxLTQpCitQYXJ0aXRpb24gbnVtYmVyICgxLTQpOiBGaXJzdCBzZWN0b3IgKDQzMDA4LTEwMjM5OSwgZGVmYXVsdCA0MzAwOCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNDMwMDgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDQzMDA4LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiAKK0NvbW1hbmQgKG0gZm9yIGhlbHApOiBDb21tYW5kIGFjdGlvbgorICAgZSAgIGV4dGVuZGVkCisgICBwICAgcHJpbWFyeSBwYXJ0aXRpb24gKDEtNCkKK1NlbGVjdGVkIHBhcnRpdGlvbiA0CitGaXJzdCBzZWN0b3IgKDYzNDg4LTEwMjM5OSwgZGVmYXVsdCA2MzQ4OCk6IFVzaW5nIGRlZmF1bHQgdmFsdWUgNjM0ODgKK0xhc3Qgc2VjdG9yLCArc2VjdG9ycyBvciArc2l6ZXtLLE0sR30gKDYzNDg4LTEwMjM5OSwgZGVmYXVsdCAxMDIzOTkpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDEwMjM5OQorCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg2NTUzNi0xMDIzOTksIGRlZmF1bHQgNjU1MzYpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDY1NTM2CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg2NTUzNi0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg3NzgyNC0xMDIzOTksIGRlZmF1bHQgNzc4MjQpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDc3ODI0CitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg3NzgyNC0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogCitDb21tYW5kIChtIGZvciBoZWxwKTogRmlyc3Qgc2VjdG9yICg5MDExMi0xMDIzOTksIGRlZmF1bHQgOTAxMTIpOiBVc2luZyBkZWZhdWx0IHZhbHVlIDkwMTEyCitMYXN0IHNlY3RvciwgK3NlY3RvcnMgb3IgK3NpemV7SyxNLEd9ICg5MDExMi0xMDIzOTksIGRlZmF1bHQgMTAyMzk5KTogVXNpbmcgZGVmYXVsdCB2YWx1ZSAxMDIzOTkKKworQ29tbWFuZCAobSBmb3IgaGVscCk6IAorRGlzayAvZGV2L3NkYjogNTIgTUIsIDUyNDI4ODAwIGJ5dGVzCiszMiBoZWFkcywgMzIgc2VjdG9ycy90cmFjaywgMTAwIGN5bGluZGVycywgdG90YWwgMTAyNDAwIHNlY3RvcnMKK1VuaXRzID0gc2VjdG9ycyBvZiAxICogNTEyID0gNTEyIGJ5dGVzCitTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6IDUxMiBieXRlcyAvIDUxMiBieXRlcworSS9PIHNpemUgKG1pbmltdW0vb3B0aW1hbCk6IDUxMiBieXRlcyAvIDMyNzY4IGJ5dGVzCisKKworICAgRGV2aWNlIEJvb3QgICAgICBTdGFydCAgICAgICAgIEVuZCAgICAgIEJsb2NrcyAgIElkICBTeXN0ZW0KKy9kZXYvc2RiMSAgICAgICAgICAgIDIwNDggICAgICAgMjI1MjcgICAgICAgMTAyNDAgICA4MyAgTGludXgKKy9kZXYvc2RiMiAgICAgICAgICAgMjI1MjggICAgICAgNDMwMDcgICAgICAgMTAyNDAgICA4MyAgTGludXgKKy9kZXYvc2RiMyAgICAgICAgICAgNDMwMDggICAgICAgNjM0ODcgICAgICAgMTAyNDAgICA4MyAgTGludXgKKy9kZXYvc2RiNCAgICAgICAgICAgNjM0ODggICAgICAxMDIzOTkgICAgICAgMTk0NTYgICAgNSAgRXh0ZW5kZWQKKy9kZXYvc2RiNSAgICAgICAgICAgNjU1MzYgICAgICAgNzU3NzUgICAgICAgIDUxMjAgICA4MyAgTGludXgKKy9kZXYvc2RiNiAgICAgICAgICAgNzc4MjQgICAgICAgODgwNjMgICAgICAgIDUxMjAgICA4MyAgTGludXgKKy9kZXYvc2RiNyAgICAgICAgICAgOTAxMTIgICAgICAxMDIzOTkgICAgICAgIDYxNDQgICA4MyAgTGludXgKKworQ29tbWFuZCAobSBmb3IgaGVscCk6IFRoZSBwYXJ0aXRpb24gdGFibGUgaGFzIGJlZW4gYWx0ZXJlZCEKKworQ2FsbGluZyBpb2N0bCgpIHRvIHJlLXJlYWQgcGFydGl0aW9uIHRhYmxlLgorU3luY2luZyBkaXNrcy4KK0FsaWdubWVudCBvZmZzZXRzOgorMAorMAorMAorMAorMAorMAorMApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svZG9zbGFiZWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9kb3NsYWJlbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjExZjRlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZmRpc2svZG9zbGFiZWwKQEAgLTAsMCArMSwyNCBAQAorSW5pdGlhbGl6ZSBlbXB0eSBpbWFnZQorZjFjOTY0NWRiYzE0ZWZkZGM3ZDhhMzIyNjg1ZjI2ZWIgZG9zbGFiZWwuaW1nCitDcmVhdGUgbmV3IERPUyBwYXJ0aXRpb24gdGFibGUKKzU3ZTcyMWUzOGQxMjY2YzJkZjA1NTA2N2MxOGYyY2Y5IGRvc2xhYmVsLmltZworQ3JlYXRlIHByaW1hcnkgcGFydGl0aW9uCithZTRmOWIxMmY0YTc2ODg0OWY3MmVhMzY5MzhjMzBjNyBkb3NsYWJlbC5pbWcKK1NldCBwYXJ0aXRpb24gdHlwZQorNGE1ZGJhODE4Zjk5NjJhODJhMDg2ZDhiOTliODlhMTcgZG9zbGFiZWwuaW1nCitTZXQgcHJpbWFyeSBwYXJ0aXRpb24gYWN0aXZlCitjMzBlOWM3NjFiNzFjZjk1YzY3ZTc1OGI5MzcwNmFjNSBkb3NsYWJlbC5pbWcKK1JlLWNyZWF0ZSBwcmltYXJ5IHBhcnRpdGlvbgorYWU0ZjliMTJmNGE3Njg4NDlmNzJlYTM2OTM4YzMwYzcgZG9zbGFiZWwuaW1nCitDcmVhdGUgZXh0ZW5kZWQgcGFydGl0aW9uCis3Njk4N2EwMGIzNTM2ODdjZDFkYmEzZGRlYTlkNjZmOSBkb3NsYWJlbC5pbWcKK0NyZWF0ZSBsb2dpY2FsIHBhcnRpdGlvbnMKK2ExY2Q2NzA4ZTRhNmQyZTVmNmJjOWQ1YzBkYTBjZjNiIGRvc2xhYmVsLmltZworRGVsZXRlIGxvZ2ljYWwgcGFydGl0aW9ucworNGM2OTM3ZDUyOWFjZTU2NjFmYjgyZWZiOTM5NDE1NGEgZG9zbGFiZWwuaW1nCitDcmVhdGUgYW5vdGhlciBsb2dpY2FsIHBhcnRpdGlvbgorOTU4OWVhYWVkNjk4ZDI0MDI5NDVhYjNlNTEzYzFlYjQgZG9zbGFiZWwuaW1nCitEZWxldGUgcHJpbWFyeSBwYXJ0aXRpb24KKzFlNmQ2NDZlNWRmNjZhMjY2NGNmYmJiMTNmYTlhMDhhIGRvc2xhYmVsLmltZworRGVsZXRlIGV4dGVuZGVkIHBhcnRpdGlvbgorZmMzY2RiMTIzMjY2NTZkNzk5NmIwOWI2Zjc2OTczZTcgZG9zbGFiZWwuaW1nCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9vZGRpbnB1dCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2ZkaXNrL29kZGlucHV0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNTcxM2MKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9vZGRpbnB1dApAQCAtMCwwICsxLDE0IEBACitJbml0aWFsaXplIGVtcHR5IGltYWdlCitmMWM5NjQ1ZGJjMTRlZmRkYzdkOGEzMjI2ODVmMjZlYiBvZGRpbnB1dC5pbWcKK0VtcHR5IGltYWdlIGxpc3RpbmcKK0Rpc2sgdGVzdGltYWdlIGRvZXNuJ3QgY29udGFpbiBhIHZhbGlkIHBhcnRpdGlvbiB0YWJsZQorCitEaXNrIHRlc3RpbWFnZTogMCBNQiwgMCBieXRlcworMjU1IGhlYWRzLCA2MyBzZWN0b3JzL3RyYWNrLCAwIGN5bGluZGVycworVW5pdHMgPSBjeWxpbmRlcnMgb2YgMTYwNjUgKiA1MTIgPSA4MjI1MjgwIGJ5dGVzCitTZWN0b3Igc2l6ZSAobG9naWNhbC9waHlzaWNhbCk6IDUxMiBieXRlcyAvIDUxMiBieXRlcworSS9PIHNpemUgKG1pbmltdW0vb3B0aW1hbCk6IDUxMiBieXRlcyAvIDUxMiBieXRlcworRGlzayBpZGVudGlmaWVyOiAweDAwMDAwMDAwCisKK05vbmV4aXN0YW50IGZpbGUKK1RvbyBzbWFsbCBmaWxlCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9vZGRpbnB1dC50b29zbWFsbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2ZkaXNrL29kZGlucHV0LnRvb3NtYWxsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2Yzc1ZWQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9vZGRpbnB1dC50b29zbWFsbApAQCAtMCwwICsxIEBACitUaGlzIGZpbGUgaXMgdG9vIHNtYWxsCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9zdW5sYWJlbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2ZkaXNrL3N1bmxhYmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzYWQwYzcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mZGlzay9zdW5sYWJlbApAQCAtMCwwICsxLDE2IEBACitJbml0aWFsaXplIGVtcHR5IGltYWdlCitmMWM5NjQ1ZGJjMTRlZmRkYzdkOGEzMjI2ODVmMjZlYiBzdW5sYWJlbC5pbWcKK0NyZWF0ZSBuZXcgU1VOIHBhcnRpdGlvbiB0YWJsZQorMGEzMmIzYThkYTYwNzI1MmVkYThjZGIyNDBjY2U5ZmUgc3VubGFiZWwuaW1nCitDcmVhdGUgZmlyc3QgcGFydGl0aW9uCisxMGRhMzdiYWRkMWE3MDJmZjdlM2QzZjdhODRjZDg3OSBzdW5sYWJlbC5pbWcKK1NldCBwYXJ0aXRpb24gc3lzaWQKKzQxNGRmMWI0MjhlMmY3ZWMxYjNkMGZiZGY5YTI4MjY0IHN1bmxhYmVsLmltZworU2V0IGZpcnN0IHBhcnRpdGlvbiByZWFkb25seQorMmJjNjQ4MDBjNTQxMjU0ZTg3NjQzMjYyYmQ5Y2NjODUgc3VubGFiZWwuaW1nCitTZXQgZmlyc3QgcGFydGl0aW9uIG1vdW50YWJsZQorMmY1MDg3YTYwYzNhZWU0MmMzYmM3YzY4MWUyZjhlMGQgc3VubGFiZWwuaW1nCitDcmVhdGUgc2Vjb25kIHBhcnRpdGlvbgorNWQxNTU3YzBkMjkxNjdmNDE4NmQ3M2FiZDBkY2IyZjMgc3VubGFiZWwuaW1nCitEZWxldGUgYWxsIHBhcnRpdGlvbnMKK2Y3ZTMwOTY1N2FkZDc4ZWE1MzY5NmUyNzQ2ZGY5ZjI5IHN1bmxhYmVsLmltZwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZnNjay9pc21vdW50ZWQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9mc2NrL2lzbW91bnRlZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzNiZDQzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvZnNjay9pc21vdW50ZWQKQEAgLTAsMCArMSBAQAorbW91bnRlZApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvaXBjcy9oZWFkZXJzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvaXBjcy9oZWFkZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1NWQzMDgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9pcGNzL2hlYWRlcnMKQEAgLTAsMCArMSw2NCBAQAordGVzdDogc2htIGhlYWRlcnMKKy0tLS0tLSBTaGFyZWQgTWVtb3J5IEF0dGFjaC9EZXRhY2gvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tCitzaG1pZCAgICAgIG93bmVyICAgICAgYXR0YWNoZWQgICAgICAgICAgICAgZGV0YWNoZWQgICAgICAgICAgICAgY2hhbmdlZCAgICAgICAgICAgICAKKy0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLQorc2htaWQgICAgICBvd25lciAgICAgIGNwaWQgICAgICAgbHBpZCAgICAgIAorLS0tLS0tIFNoYXJlZCBNZW1vcnkgU2VnbWVudCBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS0KK3NobWlkICAgICAgcGVybXMgICAgICBjdWlkICAgICAgIGNnaWQgICAgICAgdWlkICAgICAgICBnaWQgICAgICAgCistLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS0KKy0tLS0tLSBTaGFyZWQgTWVtb3J5IFN0YXR1cyAtLS0tLS0tLQorCit0ZXN0OiBtZXNnIGhlYWRlcnMKKy0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBTZW5kL1JlY3YvQ2hhbmdlIFRpbWVzIC0tLS0tLS0tCittc3FpZCAgICBvd25lciAgICAgIHNlbmQgICAgICAgICAgICAgICAgIHJlY3YgICAgICAgICAgICAgICAgIGNoYW5nZSAgICAgICAgICAgICAgCistLS0tLS0gTWVzc2FnZSBRdWV1ZXMgUElEcyAtLS0tLS0tLQorbXNxaWQgICAgICBvd25lciAgICAgIGxzcGlkICAgICAgbHJwaWQgICAgIAorLS0tLS0tIE1lc3NhZ2UgUXVldWVzOiBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS0KK21zcWlkICAgICAgcGVybXMgICAgICBjdWlkICAgICAgIGNnaWQgICAgICAgdWlkICAgICAgICBnaWQgICAgICAgCistLS0tLS0gTWVzc2FnZXM6IExpbWl0cyAtLS0tLS0tLQorLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS0KKwordGVzdDogc2VtIGhlYWRlcnMKKy0tLS0tLSBTZW1hcGhvcmUgT3BlcmF0aW9uL0NoYW5nZSBUaW1lcyAtLS0tLS0tLQorc2VtaWQgICAgb3duZXIgICAgICBsYXN0LW9wICAgICAgICAgICAgICAgICAgICBsYXN0LWNoYW5nZWQgICAgICAgICAgICAgIAorLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgQ3JlYXRvcnMvT3duZXJzIC0tLS0tLS0tCitzZW1pZCAgICAgIHBlcm1zICAgICAgY3VpZCAgICAgICBjZ2lkICAgICAgIHVpZCAgICAgICAgZ2lkICAgICAgIAorLS0tLS0tIFNlbWFwaG9yZSBMaW1pdHMgLS0tLS0tLS0KKy0tLS0tLSBTZW1hcGhvcmUgU3RhdHVzIC0tLS0tLS0tCisKK3Rlc3Q6IGFsbCBoZWFkZXJzCistLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50cyAtLS0tLS0tLQora2V5ICAgICAgICBzaG1pZCAgICAgIG93bmVyICAgICAgcGVybXMgICAgICBieXRlcyAgICAgIG5hdHRjaCAgICAgc3RhdHVzICAgICAgCistLQorLS0tLS0tIFNlbWFwaG9yZSBBcnJheXMgLS0tLS0tLS0KK2tleSAgICAgICAgc2VtaWQgICAgICBvd25lciAgICAgIHBlcm1zICAgICAgbnNlbXMgICAgIAorLS0KKy0tLS0tLSBNZXNzYWdlIFF1ZXVlcyAtLS0tLS0tLQora2V5ICAgICAgICBtc3FpZCAgICAgIG93bmVyICAgICAgcGVybXMgICAgICB1c2VkLWJ5dGVzICAgbWVzc2FnZXMgICAgCistLS0tLS0gU2hhcmVkIE1lbW9yeSBBdHRhY2gvRGV0YWNoL0NoYW5nZSBUaW1lcyAtLS0tLS0tLQorc2htaWQgICAgICBvd25lciAgICAgIGF0dGFjaGVkICAgICAgICAgICAgIGRldGFjaGVkICAgICAgICAgICAgIGNoYW5nZWQgICAgICAgICAgICAgCistLQorLS0tLS0tIFNlbWFwaG9yZSBPcGVyYXRpb24vQ2hhbmdlIFRpbWVzIC0tLS0tLS0tCitzZW1pZCAgICBvd25lciAgICAgIGxhc3Qtb3AgICAgICAgICAgICAgICAgICAgIGxhc3QtY2hhbmdlZCAgICAgICAgICAgICAgCistLQorLS0tLS0tIE1lc3NhZ2UgUXVldWVzIFNlbmQvUmVjdi9DaGFuZ2UgVGltZXMgLS0tLS0tLS0KK21zcWlkICAgIG93bmVyICAgICAgc2VuZCAgICAgICAgICAgICAgICAgcmVjdiAgICAgICAgICAgICAgICAgY2hhbmdlICAgICAgICAgICAgICAKKy0tLS0tLSBTaGFyZWQgTWVtb3J5IENyZWF0b3IvTGFzdC1vcCAtLS0tLS0tLQorc2htaWQgICAgICBvd25lciAgICAgIGNwaWQgICAgICAgbHBpZCAgICAgIAorLS0KKy0tLS0tLSBNZXNzYWdlIFF1ZXVlcyBQSURzIC0tLS0tLS0tCittc3FpZCAgICAgIG93bmVyICAgICAgbHNwaWQgICAgICBscnBpZCAgICAgCistLS0tLS0gU2hhcmVkIE1lbW9yeSBTZWdtZW50IENyZWF0b3JzL093bmVycyAtLS0tLS0tLQorc2htaWQgICAgICBwZXJtcyAgICAgIGN1aWQgICAgICAgY2dpZCAgICAgICB1aWQgICAgICAgIGdpZCAgICAgICAKKy0tCistLS0tLS0gU2VtYXBob3JlIEFycmF5cyBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS0KK3NlbWlkICAgICAgcGVybXMgICAgICBjdWlkICAgICAgIGNnaWQgICAgICAgdWlkICAgICAgICBnaWQgICAgICAgCistLQorLS0tLS0tIE1lc3NhZ2UgUXVldWVzOiBDcmVhdG9ycy9Pd25lcnMgLS0tLS0tLS0KK21zcWlkICAgICAgcGVybXMgICAgICBjdWlkICAgICAgIGNnaWQgICAgICAgdWlkICAgICAgICBnaWQgICAgICAgCistLS0tLS0gU2hhcmVkIE1lbW9yeSBMaW1pdHMgLS0tLS0tLS0KKy0tLS0tLSBTZW1hcGhvcmUgTGltaXRzIC0tLS0tLS0tCistLS0tLS0gTWVzc2FnZXM6IExpbWl0cyAtLS0tLS0tLQorLS0tLS0tIFNoYXJlZCBNZW1vcnkgU3RhdHVzIC0tLS0tLS0tCistLS0tLS0gU2VtYXBob3JlIFN0YXR1cyAtLS0tLS0tLQorLS0tLS0tIE1lc3NhZ2VzOiBTdGF0dXMgLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2lwY3MvbGltaXRzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvaXBjcy9saW1pdHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ4MGExZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2lwY3MvbGltaXRzCkBAIC0wLDAgKzEsMTEgQEAKK2xvYWQgb3JpZ2luYWwgdmFsdWVzCitjaGVjayBmb3IgZGlmZmVyZW5jZSBiZXR3ZWVuIGtlcm5lbCBhbmQgSVBDCisvcHJvYy9zeXMva2VybmVsL3NobW1uaSBPSworL3Byb2Mvc3lzL2tlcm5lbC9zaG1hbGwgT0sKKy9wcm9jL3N5cy9rZXJuZWwvc2htbWF4IE9LCittYXhpbWFsaXplIGtlcm5lbCBzZXR0aW5nCityZS1jaGVjayBmb3IgZGlmZmVyZW5jZSBiZXR3ZWVuIGtlcm5lbCBhbmQgSVBDCisvcHJvYy9zeXMva2VybmVsL3NobW1uaSBPSworL3Byb2Mvc3lzL2tlcm5lbC9zaG1hbGwgT0sKKy9wcm9jL3N5cy9rZXJuZWwvc2htbWF4IE9LCit3cml0ZSBvcmlnaW5hbCB2YWx1ZXMgdG8ga2VybmVsCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9pcGNzL2xpbWl0czIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9pcGNzL2xpbWl0czIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg0NTRlMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2lwY3MvbGltaXRzMgpAQCAtMCwwICsxLDQgQEAKK2NoZWNrIGZvciBkaWZmZXJlbmNlIGJldHdlZW4ga2VybmVsIGFuZCBJUEMKKy9wcm9jL3N5cy9rZXJuZWwvc2htbW5pIE9LCisvcHJvYy9zeXMva2VybmVsL3NobWFsbCBPSworL3Byb2Mvc3lzL2tlcm5lbC9zaG1tYXggT0sKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xvZ2luL2NoZWNrdHR5IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbG9naW4vY2hlY2t0dHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmUxYjJjMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xvZ2luL2NoZWNrdHR5CkBAIC0wLDAgKzEsOCBAQAoraG5tYXRjaCgpIG9uIDEzMC4yMjUuMTYuMC8yNTUuMjU1LjI1NC4wICAgICA8LS0gMTMwLjIyNS4xNi4xICAgOiBtYXRjaAoraG5tYXRjaCgpIG9uIDEzMC4yMjUuMTYuMC8yNTUuMjU1LjI1NC4wICAgICA8LS0gMTAuMjAuMzAuMSAgICAgOiBtaXNtYXRjaAoraG5tYXRjaCgpIG9uIDEzMC4yMjUuMC4wLzI1NS4yNTQuMC4wICAgICAgICA8LS0gMTMwLjIyNS4xNi4xICAgOiBtYXRjaAoraG5tYXRjaCgpIG9uIDEzMC4yMjUuMC4wLzI1NS4yNTQuMC4wICAgICAgICA8LS0gMTMwLjIyNS4xNy4xICAgOiBtYXRjaAoraG5tYXRjaCgpIG9uIDEzMC4yMjUuMC4wLzI1NS4yNTQuMC4wICAgICAgICA8LS0gMTUwLjE2MC4xNzAuMTgwOiBtaXNtYXRjaAoraG5tYXRjaCgpIG9uIFszZmZlOjUwNToyOjE6Ol0vNjQgICAgICAgICAgICA8LS0gM2ZmZTo1MDU6MjoxOjogOiBtYXRjaAoraG5tYXRjaCgpIG9uIFszZmZlOjUwNToyOjE6Ol0vNjQgICAgICAgICAgICA8LS0gM2ZmZTo1MDU6MjoyOjogOiBtaXNtYXRjaAoraG5tYXRjaCgpIG9uIFszZmZlOjUwNToyOjE6Ol0vNjQgICAgICAgICAgICA8LS0gM2ZmZTo1MDU6MjoxOmZmZmY6ZmZmZjo6OiBtYXRjaApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbG9naW4vaXNsb2NhbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xvZ2luL2lzbG9jYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVkNDNmZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xvZ2luL2lzbG9jYWwKQEAgLTAsMCArMSwxMyBAQAorMTpyb290CisxOm5vYm9keQorMDoKKzA6eW91bmdtYW4KKzA6eW91bmdtYW4yCiswOmFiY2RlZmdoeAorMDpub2JvCisxOmxvbmcKKzA6cm90CisxOmFsCiswOm1hbGZvcm1lZAorMTpub25sCiswOnpub2JvZHkKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xvb2svc2VwYXJhdG9yIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbG9vay9zZXBhcmF0b3IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMxOWQwMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xvb2svc2VwYXJhdG9yCkBAIC0wLDAgKzEgQEAKK2FwcGxlLXBpZQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUtaTM4Ni1hbWRzaGFuZ2hhaSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWkzODYtYW1kc2hhbmdoYWkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUzMDA4OAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWkzODYtYW1kc2hhbmdoYWkKQEAgLTAsMCArMSwyOCBAQAorQ1BVIG9wLW1vZGUocyk6ICAgICAgICAzMi1iaXQsIDY0LWJpdAorQ1BVKHMpOiAgICAgICAgICAgICAgICA4CitUaHJlYWQocykgcGVyIGNvcmU6ICAgIDEKK0NvcmUocykgcGVyIHNvY2tldDogICAgNAorQ1BVIHNvY2tldChzKTogICAgICAgICAyCitWZW5kb3IgSUQ6ICAgICAgICAgICAgIEF1dGhlbnRpY0FNRAorQ1BVIGZhbWlseTogICAgICAgICAgICAxNgorTW9kZWw6ICAgICAgICAgICAgICAgICA0CitTdGVwcGluZzogICAgICAgICAgICAgIDAKK0NQVSBNSHo6ICAgICAgICAgICAgICAgMTk5NS4xNTgKK1ZpcnR1YWxpemF0aW9uOiAgICAgICAgQU1ELVYKK0wxZCBjYWNoZTogICAgICAgICAgICAgNTEySworTDFpIGNhY2hlOiAgICAgICAgICAgICA1MTJLCitMMiBjYWNoZTogICAgICAgICAgICAgIDUxMksKK0wzIGNhY2hlOiAgICAgICAgICAgICAgNjE0NEsKKworIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXIKKyMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSUQKKyMgc3RhcnRpbmcgZnJvbSB6ZXJvLgorIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSwsTDFkLEwxaSxMMixMMworMCwwLDAsLCwwLDAsMCwwCisxLDEsMCwsLDEsMSwxLDEKKzIsMiwwLCwsMiwyLDIsMgorMywzLDAsLCwzLDMsMywzCis0LDQsMSwsLDQsNCw0LDQKKzUsNSwxLCwsNSw1LDUsNQorNiw2LDEsLCw2LDYsNiw2Cis3LDcsMSwsLDcsNyw3LDcKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWkzODYtZGVsbHBlNzAwIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUtaTM4Ni1kZWxscGU3MDAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI3NTYyYgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWkzODYtZGVsbHBlNzAwCkBAIC0wLDAgKzEsMTcgQEAKK0NQVSBvcC1tb2RlKHMpOiAgICAgICAgMzItYml0CitDUFUocyk6ICAgICAgICAgICAgICAgIDIKK1RocmVhZChzKSBwZXIgY29yZTogICAgMgorQ29yZShzKSBwZXIgc29ja2V0OiAgICAxCitDUFUgc29ja2V0KHMpOiAgICAgICAgIDEKK1ZlbmRvciBJRDogICAgICAgICAgICAgR2VudWluZUludGVsCitDUFUgZmFtaWx5OiAgICAgICAgICAgIDE1CitNb2RlbDogICAgICAgICAgICAgICAgIDIKK1N0ZXBwaW5nOiAgICAgICAgICAgICAgOQorQ1BVIE1IejogICAgICAgICAgICAgICAzMzkxLjc3MworCisjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlcgorIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRAorIyBzdGFydGluZyBmcm9tIHplcm8uCisjIENQVSxDb3JlLFNvY2tldCxOb2RlCiswLDAsMCwKKzEsMCwwLApkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUtaTM4Ni1pbnRlbHM1MDAwcGhiIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUtaTM4Ni1pbnRlbHM1MDAwcGhiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MzZhYWUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9sc2NwdS9sc2NwdS1pMzg2LWludGVsczUwMDBwaGIKQEAgLTAsMCArMSwyNyBAQAorQ1BVIG9wLW1vZGUocyk6ICAgICAgICAzMi1iaXQsIDY0LWJpdAorQ1BVKHMpOiAgICAgICAgICAgICAgICA4CitUaHJlYWQocykgcGVyIGNvcmU6ICAgIDEKK0NvcmUocykgcGVyIHNvY2tldDogICAgNAorQ1BVIHNvY2tldChzKTogICAgICAgICAyCitWZW5kb3IgSUQ6ICAgICAgICAgICAgIEdlbnVpbmVJbnRlbAorQ1BVIGZhbWlseTogICAgICAgICAgICA2CitNb2RlbDogICAgICAgICAgICAgICAgIDE1CitTdGVwcGluZzogICAgICAgICAgICAgIDcKK0NQVSBNSHo6ICAgICAgICAgICAgICAgMTU5Ni4wNDQKK1ZpcnR1YWxpemF0aW9uOiAgICAgICAgVlQteAorTDFkIGNhY2hlOiAgICAgICAgICAgICAzMksKK0wxaSBjYWNoZTogICAgICAgICAgICAgMzJLCitMMiBjYWNoZTogICAgICAgICAgICAgIDQwOTZLCisKKyMgVGhlIGZvbGxvd2luZyBpcyB0aGUgcGFyc2FibGUgZm9ybWF0LCB3aGljaCBjYW4gYmUgZmVkIHRvIG90aGVyCisjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElECisjIHN0YXJ0aW5nIGZyb20gemVyby4KKyMgQ1BVLENvcmUsU29ja2V0LE5vZGUsLEwxZCxMMWksTDIKKzAsMCwwLCwsMCwwLDAKKzEsMSwwLCwsMSwxLDAKKzIsMiwwLCwsMiwyLDEKKzMsMywwLCwsMywzLDEKKzQsNCwxLCwsNCw0LDIKKzUsNSwxLCwsNSw1LDIKKzYsNiwxLCwsNiw2LDMKKzcsNywxLCwsNyw3LDMKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWkzODYteGVucGFyYSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWkzODYteGVucGFyYQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTNmYTJjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUtaTM4Ni14ZW5wYXJhCkBAIC0wLDAgKzEsMTkgQEAKK0NQVShzKTogICAgICAgICAgICAgICAgMgorVmVuZG9yIElEOiAgICAgICAgICAgICBHZW51aW5lSW50ZWwKK0NQVSBmYW1pbHk6ICAgICAgICAgICAgNgorTW9kZWw6ICAgICAgICAgICAgICAgICAyMworU3RlcHBpbmc6ICAgICAgICAgICAgICA2CitDUFUgTUh6OiAgICAgICAgICAgICAgIDI0OTMuNzc2CitWaXJ0dWFsaXphdGlvbjogICAgICAgIFZULXgKK0h5cGVydmlzb3IgdmVuZG9yOiAgICAgWGVuCitWaXJ0dWFsaXphdGlvbiB0eXBlOiAgIHBhcmEKK0wxZCBjYWNoZTogICAgICAgICAgICAgMzJLCitMMWkgY2FjaGU6ICAgICAgICAgICAgIDMySworTDIgY2FjaGU6ICAgICAgICAgICAgICA2MTQ0SworCisjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlcgorIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRAorIyBzdGFydGluZyBmcm9tIHplcm8uCisjIENQVSxDb3JlLFNvY2tldCxOb2RlLCxMMWQsTDFpLEwyCiswLCwsLCwwLDAsMAorMSwsLCwsMSwxLDAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWlhNjQtaHBtYXR0ZXJob3JuIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUtaWE2NC1ocG1hdHRlcmhvcm4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM4YmY0NgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWlhNjQtaHBtYXR0ZXJob3JuCkBAIC0wLDAgKzEsMjYgQEAKK0NQVShzKTogICAgICAgICAgICAgICAgOAorVGhyZWFkKHMpIHBlciBjb3JlOiAgICAxCitDb3JlKHMpIHBlciBzb2NrZXQ6ICAgIDEKK0NQVSBzb2NrZXQocyk6ICAgICAgICAgOAorTlVNQSBub2RlKHMpOiAgICAgICAgICAzCitWZW5kb3IgSUQ6ICAgICAgICAgICAgIEdlbnVpbmVJbnRlbAorQ1BVIGZhbWlseTogICAgICAgICAgICBJdGFuaXVtIDIKK01vZGVsOiAgICAgICAgICAgICAgICAgMQorQ1BVIE1IejogICAgICAgICAgICAgICAxMzAwLjAwMDAwMAorTDFkIGNhY2hlOiAgICAgICAgICAgICAxNksKK0wxaSBjYWNoZTogICAgICAgICAgICAgMTZLCitMMiBjYWNoZTogICAgICAgICAgICAgIDI1NksKK0wzIGNhY2hlOiAgICAgICAgICAgICAgMzA3MksKKworIyBUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJzYWJsZSBmb3JtYXQsIHdoaWNoIGNhbiBiZSBmZWQgdG8gb3RoZXIKKyMgcHJvZ3JhbXMuIEVhY2ggZGlmZmVyZW50IGl0ZW0gaW4gZXZlcnkgY29sdW1uIGhhcyBhbiB1bmlxdWUgSUQKKyMgc3RhcnRpbmcgZnJvbSB6ZXJvLgorIyBDUFUsQ29yZSxTb2NrZXQsTm9kZSwsTDFkLEwxaSxMMixMMworMCwwLDAsMCwsMCwwLDAsMAorMSwxLDEsMCwsMSwxLDEsMQorMiwyLDIsMCwsMiwyLDIsMgorMywzLDMsMCwsMywzLDMsMworNCw0LDQsMSwsNCw0LDQsNAorNSw1LDUsMSwsNSw1LDUsNQorNiw2LDYsMSwsNiw2LDYsNgorNyw3LDcsMSwsNyw3LDcsNwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUtaWE2NC1ocHJ4MTYyMCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWlhNjQtaHByeDE2MjAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDgxZDg3OAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWlhNjQtaHByeDE2MjAKQEAgLTAsMCArMSwyMCBAQAorQ1BVKHMpOiAgICAgICAgICAgICAgICAyCitUaHJlYWQocykgcGVyIGNvcmU6ICAgIDEKK0NvcmUocykgcGVyIHNvY2tldDogICAgMQorQ1BVIHNvY2tldChzKTogICAgICAgICAyCitOVU1BIG5vZGUocyk6ICAgICAgICAgIDEKK1ZlbmRvciBJRDogICAgICAgICAgICAgR2VudWluZUludGVsCitDUFUgZmFtaWx5OiAgICAgICAgICAgIEl0YW5pdW0gMgorTW9kZWw6ICAgICAgICAgICAgICAgICAyCitDUFUgTUh6OiAgICAgICAgICAgICAgIDE1OTkuMDAwOTY3CitMMWQgY2FjaGU6ICAgICAgICAgICAgIDE2SworTDFpIGNhY2hlOiAgICAgICAgICAgICAxNksKK0wyIGNhY2hlOiAgICAgICAgICAgICAgMjU2SworTDMgY2FjaGU6ICAgICAgICAgICAgICAzMDcySworCisjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlcgorIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRAorIyBzdGFydGluZyBmcm9tIHplcm8uCisjIENQVSxDb3JlLFNvY2tldCxOb2RlLCxMMWQsTDFpLEwyLEwzCiswLDAsMCwwLCwwLDAsMCwwCisxLDEsMSwwLCwxLDEsMSwxCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9sc2NwdS9sc2NwdS1pYTY0LXBnMCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LWlhNjQtcGcwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MDBiODAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9sc2NwdS9sc2NwdS1pYTY0LXBnMApAQCAtMCwwICsxLDM1IEBACitDUFUocyk6ICAgICAgICAgICAgICAgIDE2CitUaHJlYWQocykgcGVyIGNvcmU6ICAgIDEKK0NvcmUocykgcGVyIHNvY2tldDogICAgMgorQ1BVIHNvY2tldChzKTogICAgICAgICA4CitOVU1BIG5vZGUocyk6ICAgICAgICAgIDIKK1ZlbmRvciBJRDogICAgICAgICAgICAgR2VudWluZUludGVsCitDUFUgZmFtaWx5OiAgICAgICAgICAgIEl0YW5pdW0gMgorTW9kZWw6ICAgICAgICAgICAgICAgICAwCitDUFUgTUh6OiAgICAgICAgICAgICAgIDE0MTguMDAwMjI3CitMMWQgY2FjaGU6ICAgICAgICAgICAgIDE2SworTDFpIGNhY2hlOiAgICAgICAgICAgICAxNksKK0wyZCBjYWNoZTogICAgICAgICAgICAgMjU2SworTDJpIGNhY2hlOiAgICAgICAgICAgICAxMDI0SworTDMgY2FjaGU6ICAgICAgICAgICAgICA2MTQ0SworCisjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlcgorIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRAorIyBzdGFydGluZyBmcm9tIHplcm8uCisjIENQVSxDb3JlLFNvY2tldCxOb2RlLCxMMWQsTDFpLEwyZCxMMmksTDMKKzAsMCwwLDAsLDAsMCwwLDAsMAorMSwxLDAsMCwsMSwxLDEsMCwwCisyLDIsMSwwLCwyLDIsMiwxLDEKKzMsMywxLDAsLDMsMywzLDEsMQorNCw0LDIsMCwsNCw0LDQsMiwyCis1LDUsMiwwLCw1LDUsNSwyLDIKKzYsNiwzLDAsLDYsNiw2LDMsMworNyw3LDMsMCwsNyw3LDcsMywzCis4LDgsNCwxLCw4LDgsOCw0LDQKKzksOSw0LDEsLDksOSw5LDQsNAorMTAsMTAsNSwxLCwxMCwxMCwxMCw1LDUKKzExLDExLDUsMSwsMTEsMTEsMTEsNSw1CisxMiwxMiw2LDEsLDEyLDEyLDEyLDYsNgorMTMsMTMsNiwxLCwxMywxMywxMyw2LDYKKzE0LDE0LDcsMSwsMTQsMTQsMTQsNyw3CisxNSwxNSw3LDEsLDE1LDE1LDE1LDcsNwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUteDg2XzY0LWhwZGw1ODUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9sc2NwdS9sc2NwdS14ODZfNjQtaHBkbDU4NQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmJjOGNiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUteDg2XzY0LWhwZGw1ODUKQEAgLTAsMCArMSwzNyBAQAorQ1BVIG9wLW1vZGUocyk6ICAgICAgICA2NC1iaXQKK0NQVShzKTogICAgICAgICAgICAgICAgMTYKK1RocmVhZChzKSBwZXIgY29yZTogICAgMQorQ29yZShzKSBwZXIgc29ja2V0OiAgICA0CitDUFUgc29ja2V0KHMpOiAgICAgICAgIDQKK05VTUEgbm9kZShzKTogICAgICAgICAgNAorVmVuZG9yIElEOiAgICAgICAgICAgICBBdXRoZW50aWNBTUQKK0NQVSBmYW1pbHk6ICAgICAgICAgICAgMTYKK01vZGVsOiAgICAgICAgICAgICAgICAgMgorU3RlcHBpbmc6ICAgICAgICAgICAgICAzCitDUFUgTUh6OiAgICAgICAgICAgICAgIDIyMTAuMTg4CitWaXJ0dWFsaXphdGlvbjogICAgICAgIEFNRC1WCitMMWQgY2FjaGU6ICAgICAgICAgICAgIDUxMksKK0wxaSBjYWNoZTogICAgICAgICAgICAgNTEySworTDIgY2FjaGU6ICAgICAgICAgICAgICA1MTJLCitMMyBjYWNoZTogICAgICAgICAgICAgIDIwNDhLCisKKyMgVGhlIGZvbGxvd2luZyBpcyB0aGUgcGFyc2FibGUgZm9ybWF0LCB3aGljaCBjYW4gYmUgZmVkIHRvIG90aGVyCisjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElECisjIHN0YXJ0aW5nIGZyb20gemVyby4KKyMgQ1BVLENvcmUsU29ja2V0LE5vZGUsLEwxZCxMMWksTDIsTDMKKzAsMCwwLDAsLDAsMCwwLDAKKzEsMSwwLDAsLDEsMSwxLDEKKzIsMiwwLDAsLDIsMiwyLDIKKzMsMywwLDAsLDMsMywzLDMKKzQsNCwxLDEsLDQsNCw0LDQKKzUsNSwxLDEsLDUsNSw1LDUKKzYsNiwxLDEsLDYsNiw2LDYKKzcsNywxLDEsLDcsNyw3LDcKKzgsOCwyLDIsLDgsOCw4LDgKKzksOSwyLDIsLDksOSw5LDkKKzEwLDEwLDIsMiwsMTAsMTAsMTAsMTAKKzExLDExLDIsMiwsMTEsMTEsMTEsMTEKKzEyLDEyLDMsMywsMTIsMTIsMTIsMTIKKzEzLDEzLDMsMywsMTMsMTMsMTMsMTMKKzE0LDE0LDMsMywsMTQsMTQsMTQsMTQKKzE1LDE1LDMsMywsMTUsMTUsMTUsMTUKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LXg4Nl82NC1pYm1lMzI2bSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LXg4Nl82NC1pYm1lMzI2bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzczYWFjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUteDg2XzY0LWlibWUzMjZtCkBAIC0wLDAgKzEsMjEgQEAKK0NQVSBvcC1tb2RlKHMpOiAgICAgICAgNjQtYml0CitDUFUocyk6ICAgICAgICAgICAgICAgIDIKK1RocmVhZChzKSBwZXIgY29yZTogICAgMQorQ29yZShzKSBwZXIgc29ja2V0OiAgICAyCitDUFUgc29ja2V0KHMpOiAgICAgICAgIDEKK05VTUEgbm9kZShzKTogICAgICAgICAgMQorVmVuZG9yIElEOiAgICAgICAgICAgICBBdXRoZW50aWNBTUQKK0NQVSBmYW1pbHk6ICAgICAgICAgICAgMTUKK01vZGVsOiAgICAgICAgICAgICAgICAgMzMKK1N0ZXBwaW5nOiAgICAgICAgICAgICAgMgorQ1BVIE1IejogICAgICAgICAgICAgICAxOTk1LjA1OAorTDFkIGNhY2hlOiAgICAgICAgICAgICAxMDI0SworTDFpIGNhY2hlOiAgICAgICAgICAgICAxMDI0SworTDIgY2FjaGU6ICAgICAgICAgICAgICAxMDI0SworCisjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlcgorIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRAorIyBzdGFydGluZyBmcm9tIHplcm8uCisjIENQVSxDb3JlLFNvY2tldCxOb2RlLCxMMWQsTDFpLEwyCiswLDAsMCwwLCwwLDAsMAorMSwxLDAsMCwsMSwxLDEKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LXg4Nl82NC1uZWNlbTE0IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUteDg2XzY0LW5lY2VtMTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNkZTljMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LXg4Nl82NC1uZWNlbTE0CkBAIC0wLDAgKzEsMjAgQEAKK0NQVSBvcC1tb2RlKHMpOiAgICAgICAgMzItYml0LCA2NC1iaXQKK0NQVShzKTogICAgICAgICAgICAgICAgMgorVGhyZWFkKHMpIHBlciBjb3JlOiAgICAyCitDb3JlKHMpIHBlciBzb2NrZXQ6ICAgIDEKK0NQVSBzb2NrZXQocyk6ICAgICAgICAgMQorTlVNQSBub2RlKHMpOiAgICAgICAgICAxCitWZW5kb3IgSUQ6ICAgICAgICAgICAgIEdlbnVpbmVJbnRlbAorQ1BVIGZhbWlseTogICAgICAgICAgICAxNQorTW9kZWw6ICAgICAgICAgICAgICAgICA0CitTdGVwcGluZzogICAgICAgICAgICAgIDMKK0NQVSBNSHo6ICAgICAgICAgICAgICAgMzc5MC41OTkKK0wxZCBjYWNoZTogICAgICAgICAgICAgMTZLCitMMiBjYWNoZTogICAgICAgICAgICAgIDIwNDhLCisKKyMgVGhlIGZvbGxvd2luZyBpcyB0aGUgcGFyc2FibGUgZm9ybWF0LCB3aGljaCBjYW4gYmUgZmVkIHRvIG90aGVyCisjIHByb2dyYW1zLiBFYWNoIGRpZmZlcmVudCBpdGVtIGluIGV2ZXJ5IGNvbHVtbiBoYXMgYW4gdW5pcXVlIElECisjIHN0YXJ0aW5nIGZyb20gemVyby4KKyMgQ1BVLENvcmUsU29ja2V0LE5vZGUsLEwxZCxMMgorMCwwLDAsMCwsMCwwCisxLDAsMCwwLCwwLDAKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LXg4Nl82NC14ZW5mdWxsIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbHNjcHUvbHNjcHUteDg2XzY0LXhlbmZ1bGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE1YzQ2YQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL2xzY3B1L2xzY3B1LXg4Nl82NC14ZW5mdWxsCkBAIC0wLDAgKzEsMjIgQEAKK0NQVShzKTogICAgICAgICAgICAgICAgMgorVGhyZWFkKHMpIHBlciBjb3JlOiAgICAxCitDb3JlKHMpIHBlciBzb2NrZXQ6ICAgIDEKK0NQVSBzb2NrZXQocyk6ICAgICAgICAgMgorTlVNQSBub2RlKHMpOiAgICAgICAgICAxCitWZW5kb3IgSUQ6ICAgICAgICAgICAgIEdlbnVpbmVJbnRlbAorQ1BVIGZhbWlseTogICAgICAgICAgICA2CitNb2RlbDogICAgICAgICAgICAgICAgIDIzCitTdGVwcGluZzogICAgICAgICAgICAgIDYKK0NQVSBNSHo6ICAgICAgICAgICAgICAgMjQ5My45MDAKK0h5cGVydmlzb3IgdmVuZG9yOiAgICAgWGVuCitWaXJ0dWFsaXphdGlvbiB0eXBlOiAgIGZ1bGwKK0wxZCBjYWNoZTogICAgICAgICAgICAgMzJLCitMMWkgY2FjaGU6ICAgICAgICAgICAgIDMySworTDIgY2FjaGU6ICAgICAgICAgICAgICA2MTQ0SworCisjIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHBhcnNhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIGZlZCB0byBvdGhlcgorIyBwcm9ncmFtcy4gRWFjaCBkaWZmZXJlbnQgaXRlbSBpbiBldmVyeSBjb2x1bW4gaGFzIGFuIHVuaXF1ZSBJRAorIyBzdGFydGluZyBmcm9tIHplcm8uCisjIENQVSxDb3JlLFNvY2tldCxOb2RlLCxMMWQsTDFpLEwyCiswLDAsMCwwLCwwLDAsMAorMSwxLDEsMCwsMSwxLDEKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21kNS9tZDUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tZDUvbWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjYTMwMGIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tZDUvbWQ1CkBAIC0wLDAgKzEsNyBAQAorZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2UgIC0KKzkwMDE1MDk4M2NkMjRmYjBkNjk2M2Y3ZDI4ZTE3ZjcyICAtCis1ZWI2ZDU4MGU1ZjY4ZmRlNjVjMzc3OGFmYjg4MjZmZiAgLQorYmQxZTEzYmRhYWI4MjU4MWQ0ZGMyOTllYjlhM2RhMGYgIC0KK2Q4MWVlNGY1Njc5NzJhMThmOTMyNjU0MGI1ZDhhZWFmICAtCis5NTYxYmQyMDhjMDA0MWM2NzMwODBlZDc0NDkxOWI4NSAgLQorZDk4ZDU4ZDU1NjJjYTRkZDQ3ZjBmMGZlODZiMmQ0OGYgIC0KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21pbml4L2ZzY2sgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9taW5peC9mc2NrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ZGU3MjUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9taW5peC9mc2NrCkBAIC0wLDAgKzEsOCBAQAorY3JlYXRlIG1pbml4IGZzCisxNzI4IGlub2RlcworNTEyMCBibG9ja3MKK0ZpcnN0ZGF0YXpvbmU9NTggKDU4KQorWm9uZXNpemU9MTAyNAorTWF4c2l6ZT0yNjg5NjY5MTIKKworZnNjayBtaW5peCBmcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbWluaXgvbWtmcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21pbml4L21rZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkyZDVkYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21pbml4L21rZnMKQEAgLTAsMCArMSwxMCBAQAorY3JlYXRlIG1pbml4IGZzCisxNzI4IGlub2RlcworNTEyMCBibG9ja3MKK0ZpcnN0ZGF0YXpvbmU9NTggKDU4KQorWm9uZXNpemU9MTAyNAorTWF4c2l6ZT0yNjg5NjY5MTIKKworY3JlYXRlIG1vdW50cG9pbnQgZGlyCittb3VudCB0aGUgZmlsZXN5c3RlbQordW1vdW50IHRoZSBpbWFnZQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZGV2bmFtZSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2Rldm5hbWUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2Rldm5hbWUKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItZGV2bmFtZSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLWRldm5hbWUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLWRldm5hbWUKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItZGV2bmFtZTJsYWJlbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLWRldm5hbWUybGFiZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLWRldm5hbWUybGFiZWwKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItZGV2bmFtZTJ1dWlkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItZGV2bmFtZTJ1dWlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ODIxMTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tb3VudC9mc3RhYi1kZXZuYW1lMnV1aWQKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItbGFiZWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tb3VudC9mc3RhYi1sYWJlbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTgyMTExCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItbGFiZWwKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItbGFiZWwyZGV2bmFtZSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLWxhYmVsMmRldm5hbWUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLWxhYmVsMmRldm5hbWUKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItbGFiZWwydXVpZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLWxhYmVsMnV1aWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLWxhYmVsMnV1aWQKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItc3ltbGluayBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLXN5bWxpbmsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLXN5bWxpbmsKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItdXVpZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLXV1aWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLXV1aWQKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItdXVpZDJkZXZuYW1lIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItdXVpZDJkZXZuYW1lCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ODIxMTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tb3VudC9mc3RhYi11dWlkMmRldm5hbWUKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvZnN0YWItdXVpZDJsYWJlbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLXV1aWQybGFiZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L2ZzdGFiLXV1aWQybGFiZWwKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvbGFiZWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tb3VudC9sYWJlbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTgyMTExCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvbGFiZWwKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvbW92ZSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L21vdmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L21vdmUKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvbXRhYmxvY2sgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tb3VudC9tdGFibG9jawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2UzMThkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvbXRhYmxvY2sKQEAgLTAsMCArMSBAQAorNTAwMDAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tb3VudC9ub25jYW5vbmljYWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tb3VudC9ub25jYW5vbmljYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFjM2E0ZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L25vbmNhbm9uaWNhbApAQCAtMCwwICsxLDIgQEAKK21vdW50OiBzcGVjOiAgIi8vZXRjIgorbW91bnQ6IHNwZWM6ICAiL2V0YyIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L3BhdGhzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvcGF0aHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVjNjY5NwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L3BhdGhzCkBAIC0wLDAgKzEsMTEgQEAKK21vdW50OiBmc3RhYiBwYXRoOiAiL2V0Yy9mc3RhYiIKK21vdW50OiBtdGFiIHBhdGg6ICAiL2V0Yy9tdGFiIgorbW91bnQ6IGxvY2sgcGF0aDogICIvZXRjL210YWJ+IgorbW91bnQ6IHRlbXAgcGF0aDogICIvZXRjL210YWIudG1wIgorbW91bnQ6IFVJRDogICAgICAgIDAKK21vdW50OiBlVUlEOiAgICAgICAwCittb3VudDogc3BlYzogICIvZGV2L2R1bW15IgorbW91bnQ6IG5vZGU6ICAiL21udCIKK21vdW50OiB0eXBlczogIihudWxsKSIKK21vdW50OiBvcHRzOiAgIihudWxsKSIKKy9kZXYvZHVtbXkgb24gL21udCB0eXBlIHVua25vd24gKHJ3KQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvcmVtb3VudCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L3JlbW91bnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L3JlbW91bnQKQEAgLTAsMCArMSBAQAorU3VjY2VzcwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbW91bnQvc3BlY2lhbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L3NwZWNpYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUwYzY0YwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L3NwZWNpYWwKQEAgLTAsMCArMSwxNyBAQAorbW91bnQ6IGZzdGFiIHBhdGg6ICIvZXRjL2ZzdGFiIgorbW91bnQ6IG10YWIgcGF0aDogICIvZXRjL210YWIiCittb3VudDogbG9jayBwYXRoOiAgIi9ldGMvbXRhYn4iCittb3VudDogdGVtcCBwYXRoOiAgIi9ldGMvbXRhYi50bXAiCittb3VudDogVUlEOiAgICAgICAgMAorbW91bnQ6IGVVSUQ6ICAgICAgIDAKK21vdW50OiBzcGVjOiAgIi9mb28iCittb3VudDogbm9kZTogICIvYmFyIgorbW91bnQ6IHR5cGVzOiAibXl0ZXN0IgorbW91bnQ6IG9wdHM6ICAiKG51bGwpIgorbW91bnQ6IGV4dGVybmFsIG1vdW50OiBhcmd2WzBdID0gIi9zYmluL21vdW50Lm15dGVzdCIKK21vdW50OiBleHRlcm5hbCBtb3VudDogYXJndlsxXSA9ICIvZm9vIgorbW91bnQ6IGV4dGVybmFsIG1vdW50OiBhcmd2WzJdID0gIi9iYXIiCittb3VudDogZXh0ZXJuYWwgbW91bnQ6IGFyZ3ZbM10gPSAiLXYiCittb3VudDogZXh0ZXJuYWwgbW91bnQ6IGFyZ3ZbNF0gPSAiLW8iCittb3VudDogZXh0ZXJuYWwgbW91bnQ6IGFyZ3ZbNV0gPSAicnciCisvc2Jpbi9tb3VudC5teXRlc3QgY2FsbGVkIHdpdGggIi9mb28gL2JhciAtdiAtbyBydyIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL21vdW50L3V1aWQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tb3VudC91dWlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ODIxMTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9tb3VudC91dWlkCkBAIC0wLDAgKzEgQEAKK1N1Y2Nlc3MKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL25hbWVpL2xvZ2ljIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvZXhwZWN0ZWQvbmFtZWkvbG9naWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUwNWUzNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL25hbWVpL2xvZ2ljCkBAIC0wLDAgKzEsOSBAQAorZjogbmFtZWkxL25hbWVpMi9hCisgZCBuYW1laTEKKyBkIG5hbWVpMgorIC0gYQorZjogbmFtZWkxL25hbWVpMi9iCisgZCBuYW1laTEKKyBkIG5hbWVpMgorIC0gYgorbmFtZWk6IGZhaWxlZCB0byBzdGF0OiBuYW1laTEvbmFtZWkyL2EvYjogTm90IGEgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9wYXRocy9idWlsdC1pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL3BhdGhzL2J1aWx0LWluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMzcyZGUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9wYXRocy9idWlsdC1pbgpAQCAtMCwwICsxLDQ0IEBACisgICAgICAgX1BBVEhfREVGUEFUSCAvdXNyL2xvY2FsL2JpbjovYmluOi91c3IvYmluCisgIF9QQVRIX0RFRlBBVEhfUk9PVCAvdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3NiaW46L2JpbjovdXNyL3NiaW46L3Vzci9iaW4KKyAgICAgICBfUEFUSF9ERVZfVFRZIC9kZXYvdHR5CisgICAgICBfUEFUSF9ERVZfTE9PUCAvZGV2L2xvb3AKKyAgICAgX1BBVEhfU0VDVVJFVFRZIC9ldGMvc2VjdXJldHR5CisgICAgICBfUEFUSF9XVE1QTE9DSyAvZXRjL3d0bXBsb2NrCisgICAgIF9QQVRIX0hVU0hMT0dJTiAuaHVzaGxvZ2luCisgICAgICAgX1BBVEhfTUFJTERJUiAvdmFyL21haWwKKyAgICAgIF9QQVRIX01PVERGSUxFIC9ldGMvbW90ZAorICAgICAgIF9QQVRIX05PTE9HSU4gL2V0Yy9ub2xvZ2luCisgICAgICAgICBfUEFUSF9MT0dJTiAvYmluL2xvZ2luCisgICAgICAgX1BBVEhfSU5JVFRBQiAvZXRjL2luaXR0YWIKKyAgICAgICAgICAgIF9QQVRIX1JDIC9ldGMvcmMKKyAgICAgICAgX1BBVEhfUkVCT09UIC9zYmluL3JlYm9vdAorICAgICAgICBfUEFUSF9TSU5HTEUgL2V0Yy9zaW5nbGVib290CisgX1BBVEhfU0hVVERPV05fQ09ORiAvZXRjL3NodXRkb3duLmNvbmYKKyAgICAgICAgX1BBVEhfU0VDVVJFIC9ldGMvc2VjdXJlc2luZ2xlCisgICAgICAgX1BBVEhfVVNFUlRUWSAvZXRjL3VzZXJ0dHkKKyAgICAgICAgX1BBVEhfVU1PVU5UIC9iaW4vdW1vdW50CisgICAgICAgIF9QQVRIX1BBU1NXRCAvZXRjL3Bhc3N3ZAorICAgICAgIF9QQVRIX0dTSEFET1cgL2V0Yy9nc2hhZG93CisgICAgICAgICAgX1BBVEhfUFRNUCAvZXRjL3B0bXAKKyAgICAgICBfUEFUSF9QVE1QVE1QIC9ldGMvcHRtcHRtcAorICAgICAgICAgX1BBVEhfR1JPVVAgL2V0Yy9ncm91cAorICAgICAgICAgIF9QQVRIX0dUTVAgL2V0Yy9ndG1wCisgICAgICAgX1BBVEhfR1RNUFRNUCAvZXRjL2d0bXB0bXAKKyBfUEFUSF9TSEFET1dfUEFTU1dEIC9ldGMvc2hhZG93CisgICBfUEFUSF9TSEFET1dfUFRNUCAvZXRjL3NwdG1wCitfUEFUSF9TSEFET1dfUFRNUFRNUCAvZXRjL3NwdG1wdG1wCisgIF9QQVRIX1NIQURPV19HUk9VUCAvZXRjL2dzaGFkb3cKKyAgIF9QQVRIX1NIQURPV19HVE1QIC9ldGMvc2d0bXAKK19QQVRIX1NIQURPV19HVE1QVE1QIC9ldGMvc2d0bXB0bXAKKyAgICAgICAgIF9QQVRIX1dPUkRTIC91c3Ivc2hhcmUvZGljdC93b3JkcworICAgICBfUEFUSF9XT1JEU19BTFQgL3Vzci9zaGFyZS9kaWN0L3dlYjIKKyAgICAgICAgX1BBVEhfVU1PVU5UIC9iaW4vdW1vdW50CisgICBfUEFUSF9GSUxFU1lTVEVNUyAvZXRjL2ZpbGVzeXN0ZW1zCisgICAgX1BBVEhfUFJPQ19TV0FQUyAvcHJvYy9zd2FwcworX1BBVEhfUFJPQ19GSUxFU1lTVEVNUyAvcHJvYy9maWxlc3lzdGVtcworICAgICAgIF9QQVRIX01PVU5URUQgL2V0Yy9tdGFiCisgICAgICAgIF9QQVRIX01OVFRBQiAvZXRjL2ZzdGFiCisgIF9QQVRIX01PVU5URURfTE9DSyAvZXRjL210YWJ+CisgICBfUEFUSF9NT1VOVEVEX1RNUCAvZXRjL210YWIudG1wCisgICBfUEFUSF9ERVZfQllMQUJFTCAvZGV2L2Rpc2svYnktbGFiZWwKKyAgICBfUEFUSF9ERVZfQllVVUlEIC9kZXYvZGlzay9ieS11dWlkCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9zY3JpcHQvcmFjZSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL3NjcmlwdC9yYWNlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzYjMzZDIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9zY3JpcHQvcmFjZQpAQCAtMCwwICsxIEBACisxMDAwCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9zd2Fwb24vZGV2bmFtZSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL3N3YXBvbi9kZXZuYW1lCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ODIxMTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9zd2Fwb24vZGV2bmFtZQpAQCAtMCwwICsxIEBACitTdWNjZXNzCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9zd2Fwb24vbGFiZWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9zd2Fwb24vbGFiZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4MjExMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL3N3YXBvbi9sYWJlbApAQCAtMCwwICsxIEBACitTdWNjZXNzCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9zd2Fwb24vdXVpZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2V4cGVjdGVkL3N3YXBvbi91dWlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ODIxMTEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9leHBlY3RlZC9zd2Fwb24vdXVpZApAQCAtMCwwICsxIEBACitTdWNjZXNzCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9mdW5jdGlvbnMuc2ggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9mdW5jdGlvbnMuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU2NmU0MwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2Z1bmN0aW9ucy5zaApAQCAtMCwwICsxLDM3NSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisKKworZnVuY3Rpb24gdHNfYWJzcGF0aCB7CisJY2QgJDEKKwlwd2QKK30KKworZnVuY3Rpb24gdHNfc2tpcF9zdWJ0ZXN0IHsKKwllY2hvICIgSUdOT1JFICgkMSkiCit9CisKK2Z1bmN0aW9uIHRzX3NraXAgeworCXRzX3NraXBfc3VidGVzdCAiJDEiCisJaWYgWyAtbiAiJDIiIC1hIC1iICIkMiIgXTsgdGhlbgorCQl0c19kZXZpY2VfZGVpbml0ICIkMiIKKwlmaQorCWV4aXQgMAorfQorCitmdW5jdGlvbiB0c19za2lwX25vbnJvb3QgeworCWlmIFsgJFVJRCAtbmUgMCBdOyB0aGVuCisJCXRzX3NraXAgIm5vdCByb290IHBlcm1pc3Npb25zIgorCWZpCit9CisKK2Z1bmN0aW9uIHRzX2ZhaWxlZF9zdWJ0ZXN0IHsKKwlpZiBbIHgiJDEiID09IHgiIiBdOyB0aGVuCisJCWVjaG8gIiBGQUlMRUQgKCRUU19OUykiCisJZWxzZQorCQllY2hvICIgRkFJTEVEICgkMSkiCisJZmkKK30KKworZnVuY3Rpb24gdHNfZmFpbGVkIHsKKwl0c19mYWlsZWRfc3VidGVzdCAiJDEiCisJZXhpdCAxCit9CisKK2Z1bmN0aW9uIHRzX29rX3N1YnRlc3QgeworCWlmIFsgeCIkMSIgPT0geCIiIF07IHRoZW4KKwkJZWNobyAiIE9LIgorCWVsc2UKKwkJZWNobyAiIE9LICgkMSkiCisJZmkKK30KKworZnVuY3Rpb24gdHNfb2sgeworCXRzX29rX3N1YnRlc3QgIiQxIgorCWV4aXQgMAorfQorCitmdW5jdGlvbiB0c19sb2cgeworCWVjaG8gIiQxIiA+PiAkVFNfT1VUUFVUCisJWyAiJFRTX1ZFUkJPU0UiID09ICJ5ZXMiIF0gJiYgZWNobyAiJDEiCit9CisKK2Z1bmN0aW9uIHRzX2hhc19vcHRpb24geworCU5BTUU9IiQxIgorCUFMTD0iJDIiCisJZWNobyAtbiAkQUxMIHwgc2VkICdzLyAvL2cnIHwgYXdrICdCRUdJTiB7IEZTPSI9IjsgUlM9Ii0tIiB9IC8oJyROQU1FJyR8JyROQU1FJz0pLyB7IHByaW50ICJ5ZXMiIH0nCit9CisKK2Z1bmN0aW9uIHRzX2luaXRfZW52IHsKKwlsb2NhbCBteWRpcj0kKHRzX2Fic3BhdGggJChkaXJuYW1lICQwKSkKKworCWV4cG9ydCBMQU5HPSJlbl9VUy5VVEYtOCIKKworCVRTX1RPUERJUj0kKHRzX2Fic3BhdGggJG15ZGlyLy4uLy4uLykKKwlUU19TQ1JJUFQ9IiRteWRpci8kKGJhc2VuYW1lICQwKSIKKwlUU19TVUJESVI9JChkaXJuYW1lICRUU19TQ1JJUFQpCisJVFNfVEVTVE5BTUU9JChiYXNlbmFtZSAkVFNfU0NSSVBUKQorCVRTX0NPTVBPTkVOVD0kKGJhc2VuYW1lICRUU19TVUJESVIpCisKKwlUU19OU1VCVEVTVFM9MAorCVRTX05TVUJGQUlMRUQ9MAorCisJVFNfTlM9IiRUU19DT01QT05FTlQvJFRTX1RFU1ROQU1FIgorCVRTX1NFTEY9IiRUU19TVUJESVIiCisKKwlUU19PVVRESVI9IiRUU19UT1BESVIvb3V0cHV0LyRUU19DT01QT05FTlQiCisJVFNfT1VUUFVUPSIkVFNfT1VURElSLyRUU19URVNUTkFNRSIKKwlUU19ESUZGRElSPSIkVFNfVE9QRElSL2RpZmYvJFRTX0NPTVBPTkVOVCIKKwlUU19ESUZGPSIkVFNfRElGRkRJUi8kVFNfVEVTVE5BTUUiCisJVFNfRVhQRUNURUQ9IiRUU19UT1BESVIvZXhwZWN0ZWQvJFRTX05TIgorCVRTX01PVU5UUE9JTlQ9IiRUU19PVVRESVIvJHtUU19URVNUTkFNRX0tbW50IgorCisJVFNfVkVSQk9TRT0kKHRzX2hhc19vcHRpb24gInZlcmJvc2UiICIkKiIpCisKKwlCTEtJRF9GSUxFPSIkVFNfT1VURElSLyR7VFNfVEVTVE5BTUV9LmJsa2lkdGFiIgorCisJWyAtZCAiJFRTX09VVERJUiIgXSAgfHwgbWtkaXIgLXAgIiRUU19PVVRESVIiCisJWyAtZCAiJFRTX0RJRkZESVIiIF0gfHwgbWtkaXIgLXAgIiRUU19ESUZGRElSIgorCisJZGVjbGFyZSAtYSBUU19TVUlEX1BST0dTCisJZGVjbGFyZSAtYSBUU19TVUlEX1VTRVIKKwlkZWNsYXJlIC1hIFRTX1NVSURfR1JPVVAKKworCS4gJFRTX1RPUERJUi9jb21tYW5kcy5zaAorCisJZXhwb3J0IEJMS0lEX0ZJTEUKKworCXJtIC1mICRUU19PVVRQVVQKKwl0b3VjaCAkVFNfT1VUUFVUCisKKwlpZiBbICIkVFNfVkVSQk9TRSIgPT0gInllcyIgXTsgdGhlbgorCQllY2hvCisJCWVjaG8gIiAgICAgc2NyaXB0OiAkVFNfU0NSSVBUIgorCQllY2hvICIgICAgc3ViIGRpcjogJFRTX1NVQkRJUiIKKwkJZWNobyAiICAgIHRvcCBkaXI6ICRUU19UT1BESVIiCisJCWVjaG8gIiAgICAgICBzZWxmOiAkVFNfU0VMRiIKKwkJZWNobyAiICB0ZXN0IG5hbWU6ICRUU19URVNUTkFNRSIKKwkJZWNobyAiICB0ZXN0IGRlc2M6ICRUU19ERVNDIgorCQllY2hvICIgIGNvbXBvbmVudDogJFRTX0NPTVBPTkVOVCIKKwkJZWNobyAiICBuYW1lc3BhY2U6ICRUU19OUyIKKwkJZWNobyAiICAgIHZlcmJvc2U6ICRUU19WRVJCT1NFIgorCQllY2hvICIgICAgIG91dHB1dDogJFRTX09VVFBVVCIKKwkJZWNobyAiICAgZXhwZWN0ZWQ6ICRUU19FWFBFQ1RFRCIKKwkJZWNobyAiIG1vdW50cG9pbnQ6ICRUU19NT1VOVFBPSU5UIgorCQllY2hvCisJZmkKK30KKworZnVuY3Rpb24gdHNfaW5pdF9zdWJ0ZXN0IHsKKworCVRTX1NVQk5BTUU9IiQxIgorCisJVFNfT1VUUFVUPSIkVFNfT1VURElSLyRUU19URVNUTkFNRS0kVFNfU1VCTkFNRSIKKwlUU19ESUZGPSIkVFNfRElGRkRJUi8kVFNfVEVTVE5BTUUtJFRTX1NVQk5BTUUiCisJVFNfRVhQRUNURUQ9IiRUU19UT1BESVIvZXhwZWN0ZWQvJFRTX05TLSRUU19TVUJOQU1FIgorCVRTX01PVU5UUE9JTlQ9IiRUU19PVVRESVIvJHtUU19URVNUTkFNRS0kVFNfU1VCTkFNRX0tbW50IgorCisJWyAkVFNfTlNVQlRFU1RTIC1lcSAwIF0gJiYgZWNobworCVRTX05TVUJURVNUUz0kKCggJFRTX05TVUJURVNUUyArIDEgKSkKKworCXByaW50ZiAiJTE2czogJS0yN3MgLi4uIiAiIiAiJFRTX1NVQk5BTUUiCit9CisKK2Z1bmN0aW9uIHRzX2luaXQgeworCWxvY2FsIGlzX2Zha2U9JCggdHNfaGFzX29wdGlvbiAiZmFrZSIgIiQqIikKKworCXRzX2luaXRfZW52ICIkKiIKKworCXByaW50ZiAiJTEzczogJS0zMHMgLi4uIiAiJFRTX0NPTVBPTkVOVCIgIiRUU19ERVNDIgorCisJWyAiJGlzX2Zha2UiID09ICJ5ZXMiIF0gJiYgdHNfc2tpcCAiZmFrZSBtb2RlIgorfQorCitmdW5jdGlvbiB0c19pbml0X3N1aWQgeworCVBST0c9IiQxIgorCWN0PSR7I1RTX1NVSURfUFJPR1NbKl19CisKKwkjIFNhdmUgaW5mbyBhYm91dCBvcmlnaW5hbCBzZXR0aW5nCisJVFNfU1VJRF9QUk9HU1skY3RdPSRQUk9HCisJVFNfU1VJRF9VU0VSWyRjdF09JChzdGF0IC0tcHJpbnRmPSIlVSIgJFBST0cpCisJVFNfU1VJRF9HUk9VUFskY3RdPSQoc3RhdCAtLXByaW50Zj0iJUciICRQUk9HKQorCisJY2hvd24gcm9vdC5yb290ICRQUk9HICY+IC9kZXYvbnVsbAorCWNobW9kIHUrcyAkUFJPRyAmPiAvZGV2L251bGwKK30KKworZnVuY3Rpb24gdHNfZ2VuX2RpZmYgeworCWxvY2FsIHJlcz0wCisKKwlpZiBbIC1zICRUU19PVVRQVVQgXTsgdGhlbgorCQlkaWZmIC11ICRUU19FWFBFQ1RFRCAkVFNfT1VUUFVUID4gJFRTX0RJRkYKKwkJWyAtcyAkVFNfRElGRiBdICYmIHJlcz0xCisJZWxzZQorCQlyZXM9MQorCWZpCisJcmV0dXJuICRyZXMKK30KKworZnVuY3Rpb24gdHNfZmluYWxpemVfc3VidGVzdCB7CisJbG9jYWwgcmVzPTAKKworCWlmIFsgLXMgJFRTX0VYUEVDVEVEIF07IHRoZW4KKwkJdHNfZ2VuX2RpZmYKKwkJaWYgWyAkPyAtZXEgMSBdOyB0aGVuCisJCQl0c19mYWlsZWRfc3VidGVzdCAiJDEiCisJCQlyZXM9MQorCQllbHNlCisJCQl0c19va19zdWJ0ZXN0ICIkMSIKKwkJZmkKKwllbHNlCisJCXRzX3NraXBfc3VidGVzdCAib3V0cHV0IHVuZGVmaW5lZCIKKwlmaQorCisJWyAkcmVzIC1uZSAwIF0gJiYgVFNfTlNVQkZBSUxFRD0kKCggJFRTX05TVUJGQUlMRUQgKyAxICkpCisJcmV0dXJuICRyZXMKK30KKworZnVuY3Rpb24gdHNfZmluYWxpemUgeworCWZvciBpZHggaW4gJChzZXEgMCAkKCgkeyNUU19TVUlEX1BST0dTWypdfSAtIDEpKSk7IGRvCisJCVBST0c9JHtUU19TVUlEX1BST0dTWyRpZHhdfQorCQljaG1vZCBhLXMgJFBST0cgJj4gL2Rldi9udWxsCisJCWNob3duICR7VFNfU1VJRF9VU0VSWyRpZHhdfS4ke1RTX1NVSURfR1JPVVBbJGlkeF19ICRQUk9HICY+IC9kZXYvbnVsbAorCWRvbmUKKworCWlmIFsgJFRTX05TVUJURVNUUyAtbmUgMCBdOyB0aGVuCisJCXByaW50ZiAiJTExcy4uLiIKKwkJaWYgWyAkVFNfTlNVQkZBSUxFRCAtbmUgMCBdOyB0aGVuCisJCQl0c19mYWlsZWQgIiRUU19OU1VCRkFJTEVEIGZyb20gJFRTX05TVUJURVNUUyBzdWItdGVzdHMiCisJCWVsc2UKKwkJCXRzX29rICJhbGwgJFRTX05TVUJURVNUUyBzdWItdGVzdHMgUEFTU0VEIgorCQlmaQorCWZpCisKKwlpZiBbIC1zICRUU19FWFBFQ1RFRCBdOyB0aGVuCisJCXRzX2dlbl9kaWZmCisJCWlmIFsgJD8gLWVxIDEgXTsgdGhlbgorCQkJdHNfZmFpbGVkICIkMSIKKwkJZmkKKwkJdHNfb2sgIiQxIgorCWZpCisKKwl0c19za2lwICJvdXRwdXQgdW5kZWZpbmVkIgorfQorCitmdW5jdGlvbiB0c19kaWUgeworCXRzX2xvZyAiJDEiCisJaWYgWyAtbiAiJDIiIF0gJiYgWyAtYiAiJDIiIF07IHRoZW4KKwkJdHNfZGV2aWNlX2RlaW5pdCAiJDIiCisJCXRzX2ZzdGFiX2NsZWFuCQkjIGZvciBzdXJlLi4uIAorCWZpCisJdHNfZmluYWxpemUKK30KKworZnVuY3Rpb24gdHNfaW1hZ2VfbWQ1c3VtIHsKKwlsb2NhbCBpbWc9JHsxOi0iJFRTX09VVERJUi8ke1RTX1RFU1ROQU1FfS5pbWcifQorCWVjaG8gJChtZDVzdW0gIiRpbWciIHwgYXdrICd7cHJpbnRmICQxfScpICQoYmFzZW5hbWUgIiRpbWciKQorfQorCitmdW5jdGlvbiB0c19pbWFnZV9pbml0IHsKKwlsb2NhbCBtaWI9JHsxOi0iNSJ9CSMgc2l6ZSBpbiBNaUJzCisJbG9jYWwgaW1nPSR7MjotIiRUU19PVVRESVIvJHtUU19URVNUTkFNRX0uaW1nIn0KKwkKKwlkZCBpZj0vZGV2L3plcm8gb2Y9IiRpbWciIGJzPTFNIGNvdW50PSRtaWIgJj4gL2Rldi9udWxsCisJZWNobyAiJGltZyIKKwlyZXR1cm4gMAorfQorCitmdW5jdGlvbiB0c19kZXZpY2VfaW5pdCB7CisJbG9jYWwgaW1nPSQodHNfaW1hZ2VfaW5pdCAkMSAkMikKKwlsb2NhbCBkZXY9JCgkVFNfQ01EX0xPU0VUVVAgLXMgLWYgIiRpbWciKQorCisJaWYgWyAteiAiJGRldiIgXTsgdGhlbgorCQl0c19kZXZpY2VfZGVpbml0ICRkZXYKKwkJcmV0dXJuIDEJCSMgZXJyb3IKKwlmaQorCisJZWNobyAkZGV2CisJcmV0dXJuIDAJCQkjIHN1Y2NlcworfQorCitmdW5jdGlvbiB0c19kZXZpY2VfZGVpbml0IHsKKwlsb2NhbCBERVY9IiQxIgorCisJaWYgWyAtYiAiJERFViIgXTsgdGhlbgorCQkkVFNfQ01EX1VNT1VOVCAiJERFViIgJj4gL2Rldi9udWxsCisJCSRUU19DTURfTE9TRVRVUCAtZCAiJERFViIgJj4gL2Rldi9udWxsCisJZmkKK30KKworZnVuY3Rpb24gdHNfdXVpZF9ieV9kZXZuYW1lIHsKKwllY2hvICQoJFRTX0NNRF9CTEtJRCAtcCAtcyBVVUlEIC1vIHZhbHVlICQxKQorfQorCitmdW5jdGlvbiB0c19sYWJlbF9ieV9kZXZuYW1lIHsKKwllY2hvICQoJFRTX0NNRF9CTEtJRCAtcCAtcyBMQUJFTCAtbyB2YWx1ZSAkMSkKK30KKworZnVuY3Rpb24gdHNfZnN0eXBlX2J5X2Rldm5hbWUgeworCWVjaG8gJCgkVFNfQ01EX0JMS0lEIC1wIC1zIFRZUEUgLW8gdmFsdWUgJDEpCit9CisKK2Z1bmN0aW9uIHRzX2RldmljZV9oYXMgeworCWxvY2FsIFRBRz0iJDEiCisJbG9jYWwgVkFMPSIkMiIKKwlsb2NhbCBERVY9IiQzIgorCWxvY2FsIHZsPSIiCisKKwljYXNlICRUQUcgaW4KKwkJIlRZUEUiKSB2bD0kKHRzX2ZzdHlwZV9ieV9kZXZuYW1lICRERVYpOzsKKwkJIkxBQkVMIikgdmw9JCh0c19sYWJlbF9ieV9kZXZuYW1lICRERVYpOzsKKwkJIlVVSUQiKSB2bD0kKHRzX3V1aWRfYnlfZGV2bmFtZSAkREVWKTs7CisJCSopIHJldHVybiAxOzsKKwllc2FjCisKKwlpZiBbICIkdmwiID09ICIkVkFMIiBdOyB0aGVuCisJCXJldHVybiAwCisJZmkKKwlyZXR1cm4gMQorfQorCitmdW5jdGlvbiB0c19kZXZpY2VfaGFzX3V1aWQgeworCXRzX3V1aWRfYnlfZGV2bmFtZSAiJDEiIHwgZWdyZXAgLXEgJ15bMC05YS16XXs4fS1bMC05YS16XXs0fS1bMC05YS16XXs0fS1bMC05YS16XXs0fS1bMC05YS16XXsxMn0kJworCXJldHVybiAkPworfQorCitmdW5jdGlvbiB0c19pc19tb3VudGVkIHsKKwlsb2NhbCBERVY9JDEKKworCWdyZXAgLXEgJERFViAvcHJvYy9tb3VudHMgJiYgcmV0dXJuIDAKKworCWlmIFsgIiR7REVWIy9kZXYvbG9vcC99IiAhPSAiJERFViIgXTsgdGhlbgorCQlyZXR1cm4gZ3JlcCAtcSAiL2Rldi9sb29wJHtERVYjL2Rldi9sb29wL30iIC9wcm9jL21vdW50cworCWZpCisJcmV0dXJuIDEKK30KKworZnVuY3Rpb24gdHNfc3dhcG9mZiB7CisJbG9jYWwgREVWPSIkMSIKKworCSMgc3dhcG9mZiBkb2Vzbid0IGV4aXN0IGluIGJ1aWxkIHRyZWUKKwlpZiBbICEgLXggIiRUU19DTURfU1dBUE9GRiIgXTsgdGhlbgorCQlsbiAtc2YgJFRTX0NNRF9TV0FQT04gJFRTX0NNRF9TV0FQT0ZGCisJCVJFTVNXQVBPRkY9InRydWUiCisJZmkKKwlMRF9MSUJSQVJZX1BBVEg9IiRVX0xfTElCUkFSWV9QQVRIIiBcCisJCQkkVFNfQ01EX1NXQVBPRkYgJERFViAyPiYxID4+ICRUU19PVVRQVVQKKwlpZiBbIC1uICIkUkVNU1dBUE9GRiIgXTsgdGhlbgorCQlybSAtZiAkVFNfQ01EX1NXQVBPRkYKKwlmaQorfQorCitmdW5jdGlvbiB0c19mc3RhYl9vcGVuIHsKKwllY2hvICIjIDwhLS0gdXRpbC1saW51eC1uZyB0ZXN0IGVudHJ5IiA+PiAvZXRjL2ZzdGFiCit9CisKK2Z1bmN0aW9uIHRzX2ZzdGFiX2Nsb3NlIHsKKwllY2hvICIjIC0tPiIgPj4gL2V0Yy9mc3RhYgorfQorCitmdW5jdGlvbiB0c19mc3RhYl9hZGRsaW5lIHsKKwlsb2NhbCBTUEVDPSIkMSIKKwlsb2NhbCBNTlQ9JHsyOi0iJFRTX01PVU5UUE9JTlQifQorCWxvY2FsIEZTPSR7MzotImF1dG8ifQorCWxvY2FsIE9QVD0kezQ6LSJkZWZhdWx0cyJ9CisKKwllY2hvICIkU1BFQyAgICRNTlQgICAkRlMgICAkT1BUICAgMCAgIDAiID4+IC9ldGMvZnN0YWIKK30KKworZnVuY3Rpb24gdHNfZnN0YWJfYWRkIHsKKwl0c19mc3RhYl9vcGVuCisJdHNfZnN0YWJfYWRkbGluZSAkKgorCXRzX2ZzdGFiX2Nsb3NlCit9CisKK2Z1bmN0aW9uIHRzX2ZzdGFiX2NsZWFuIHsKKwlzZWQgLS1pbi1wbGFjZSAiCisvIyA8IS0tIHV0aWwtbGludXgtbmcvIWIKKzphCisvIyAtLT4vIXsKKyAgTgorICBiYQorfQorcy8jIDwhLS0gdXRpbC1saW51eC1uZy4qLS0+Ly87CisvXiQvZCIgL2V0Yy9mc3RhYgorfQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9oZWxwZXJzL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvaGVscGVycy9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjAwN2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvaGVscGVycy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDcgQEAKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQorCitub2luc3RfUFJPR1JBTVMgPSB0ZXN0X3N5c2luZm8gdGVzdF9wYXRobmFtZXMgdGVzdF9ieXRlc3dhcCBcCisJCSAgdGVzdF9tZDUKKwordGVzdF9tZDVfU09VUkNFUyA9IHRlc3RfbWQ1LmMgJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvaGVscGVycy9NYWtlZmlsZS5pbiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2hlbHBlcnMvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQyOTcxOAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2hlbHBlcnMvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw2MDMgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKKworVlBBVEggPSBAc3JjZGlyQAorcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACitwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorRElTVF9DT01NT04gPSAkKGRpc3Rfbm9pbnN0X0RBVEEpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KK25vaW5zdF9QUk9HUkFNUyA9IHRlc3Rfc3lzaW5mbyQoRVhFRVhUKSB0ZXN0X3BhdGhuYW1lcyQoRVhFRVhUKSBcCisJdGVzdF9ieXRlc3dhcCQoRVhFRVhUKSB0ZXN0X21kNSQoRVhFRVhUKQorc3ViZGlyID0gdGVzdHMvaGVscGVycworQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvZ2V0dGV4dC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ndGstZG9jLm00ICQodG9wX3NyY2RpcikvbTQvaWNvbnYubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLWxkLm00ICQodG9wX3NyY2RpcikvbTQvbGliLWxpbmsubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbGliLXByZWZpeC5tNCAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9ubHMubTQgJCh0b3Bfc3JjZGlyKS9tNC9wby5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9wcm9ndGVzdC5tNCAkKHRvcF9zcmNkaXIpL200L3Rscy5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorUFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKK3Rlc3RfYnl0ZXN3YXBfU09VUkNFUyA9IHRlc3RfYnl0ZXN3YXAuYwordGVzdF9ieXRlc3dhcF9PQkpFQ1RTID0gdGVzdF9ieXRlc3dhcC4kKE9CSkVYVCkKK3Rlc3RfYnl0ZXN3YXBfTERBREQgPSAkKExEQUREKQorQU1fVl9sdCA9ICQoYW1fX3ZfbHRfJChWKSkKK2FtX192X2x0XyA9ICQoYW1fX3ZfbHRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9sdF8wID0gLS1zaWxlbnQKK2FtX3Rlc3RfbWQ1X09CSkVDVFMgPSB0ZXN0X21kNS4kKE9CSkVYVCkgbWQ1LiQoT0JKRVhUKQordGVzdF9tZDVfT0JKRUNUUyA9ICQoYW1fdGVzdF9tZDVfT0JKRUNUUykKK3Rlc3RfbWQ1X0xEQUREID0gJChMREFERCkKK3Rlc3RfcGF0aG5hbWVzX1NPVVJDRVMgPSB0ZXN0X3BhdGhuYW1lcy5jCit0ZXN0X3BhdGhuYW1lc19PQkpFQ1RTID0gdGVzdF9wYXRobmFtZXMuJChPQkpFWFQpCit0ZXN0X3BhdGhuYW1lc19MREFERCA9ICQoTERBREQpCit0ZXN0X3N5c2luZm9fU09VUkNFUyA9IHRlc3Rfc3lzaW5mby5jCit0ZXN0X3N5c2luZm9fT0JKRUNUUyA9IHRlc3Rfc3lzaW5mby4kKE9CSkVYVCkKK3Rlc3Rfc3lzaW5mb19MREFERCA9ICQoTERBREQpCitERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKQorZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCithbV9fbXYgPSBtdiAtZgorQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorTFRDT01QSUxFID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgXAorCSQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgXAorCSQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0FNX1ZfQ0MgPSAkKGFtX192X0NDXyQoVikpCithbV9fdl9DQ18gPSAkKGFtX192X0NDXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NfMCA9IEBlY2hvICIgIENDICAgICIgJEA7CitBTV9WX2F0ID0gJChhbV9fdl9hdF8kKFYpKQorYW1fX3ZfYXRfID0gJChhbV9fdl9hdF8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X2F0XzAgPSBACitDQ0xEID0gJChDQykKK0xJTksgPSAkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKEFNX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK0FNX1ZfQ0NMRCA9ICQoYW1fX3ZfQ0NMRF8kKFYpKQorYW1fX3ZfQ0NMRF8gPSAkKGFtX192X0NDTERfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9DQ0xEXzAgPSBAZWNobyAiICBDQ0xEICAiICRAOworQU1fVl9HRU4gPSAkKGFtX192X0dFTl8kKFYpKQorYW1fX3ZfR0VOXyA9ICQoYW1fX3ZfR0VOXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfR0VOXzAgPSBAZWNobyAiICBHRU4gICAiICRAOworU09VUkNFUyA9IHRlc3RfYnl0ZXN3YXAuYyAkKHRlc3RfbWQ1X1NPVVJDRVMpIHRlc3RfcGF0aG5hbWVzLmMgXAorCXRlc3Rfc3lzaW5mby5jCitESVNUX1NPVVJDRVMgPSB0ZXN0X2J5dGVzd2FwLmMgJCh0ZXN0X21kNV9TT1VSQ0VTKSB0ZXN0X3BhdGhuYW1lcy5jIFwKKwl0ZXN0X3N5c2luZm8uYworREFUQSA9ICQoZGlzdF9ub2luc3RfREFUQSkKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCit0ZXN0X21kNV9TT1VSQ0VTID0gdGVzdF9tZDUuYyAkKHRvcF9zcmNkaXIpL2xpYi9tZDUuYworYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0gJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIHRlc3RzL2hlbHBlcnMvTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduIHRlc3RzL2hlbHBlcnMvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgorCitjbGVhbi1ub2luc3RQUk9HUkFNUzoKKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0Cit0ZXN0X2J5dGVzd2FwJChFWEVFWFQpOiAkKHRlc3RfYnl0ZXN3YXBfT0JKRUNUUykgJCh0ZXN0X2J5dGVzd2FwX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRlc3RfYnl0ZXN3YXAkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQodGVzdF9ieXRlc3dhcF9PQkpFQ1RTKSAkKHRlc3RfYnl0ZXN3YXBfTERBREQpICQoTElCUykKK3Rlc3RfbWQ1JChFWEVFWFQpOiAkKHRlc3RfbWQ1X09CSkVDVFMpICQodGVzdF9tZDVfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdGVzdF9tZDUkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQodGVzdF9tZDVfT0JKRUNUUykgJCh0ZXN0X21kNV9MREFERCkgJChMSUJTKQordGVzdF9wYXRobmFtZXMkKEVYRUVYVCk6ICQodGVzdF9wYXRobmFtZXNfT0JKRUNUUykgJCh0ZXN0X3BhdGhuYW1lc19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB0ZXN0X3BhdGhuYW1lcyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJCh0ZXN0X3BhdGhuYW1lc19PQkpFQ1RTKSAkKHRlc3RfcGF0aG5hbWVzX0xEQUREKSAkKExJQlMpCit0ZXN0X3N5c2luZm8kKEVYRUVYVCk6ICQodGVzdF9zeXNpbmZvX09CSkVDVFMpICQodGVzdF9zeXNpbmZvX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRlc3Rfc3lzaW5mbyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJCh0ZXN0X3N5c2luZm9fT0JKRUNUUykgJCh0ZXN0X3N5c2luZm9fTERBREQpICQoTElCUykKKworbW9zdGx5Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi4kKE9CSkVYVCkKKworZGlzdGNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICoudGFiLmMKKworQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL21kNS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9ieXRlc3dhcC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9tZDUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RfcGF0aG5hbWVzLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X3N5c2luZm8uUG9AYW1fX3F1b3RlQAorCisuYy5vOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyAkPAorCisuYy5vYmo6CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgYCQoQ1lHUEFUSF9XKSAnJDwnYAorCisuYy5sbzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKExUQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChBTV9WX0NDKSBAQU1fQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKExUQ09NUElMRSkgLWMgLW8gJEAgJDwKKworbWQ1Lm86ICQodG9wX3NyY2RpcikvbGliL21kNS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1kNS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS9tZDUuVHBvIC1jIC1vIG1kNS5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL2xpYi9tZDUuYycgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpL21kNS5UcG8gJChERVBESVIpL21kNS5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2RpcikvbGliL21kNS5jJyBvYmplY3Q9J21kNS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtZDUubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2RpcikvbGliL21kNS5jCisKK21kNS5vYmo6ICQodG9wX3NyY2RpcikvbGliL21kNS5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLU1UIG1kNS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL21kNS5UcG8gLWMgLW8gbWQ1Lm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2RpcikvbGliL21kNS5jJzsgZmlgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfYXQpJChhbV9fbXYpICQoREVQRElSKS9tZDUuVHBvICQoREVQRElSKS9tZDUuUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL2xpYi9tZDUuYycgb2JqZWN0PSdtZDUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBtZDUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL2xpYi9tZDUuYyc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL2xpYi9tZDUuYyc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9saWIvbWQ1LmMnOyBmaWAKKworbW9zdGx5Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgKi5sbworCitjbGVhbi1saWJ0b29sOgorCS1ybSAtcmYgLmxpYnMgX2xpYnMKKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykgJChEQVRBKQoraW5zdGFsbGRpcnM6CitpbnN0YWxsOiBpbnN0YWxsLWFtCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAorCW1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktYW0KKworZHZpLWFtOgorCitodG1sOiBodG1sLWFtCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tYW0KKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbToKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKworbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbAorCitwZGY6IHBkZi1hbQorCitwZGYtYW06CisKK3BzOiBwcy1hbQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOgorCisuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisKKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAorCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworJCh1bF9saWJ1dWlkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGlidXVpZF9idWlsZGRpcikKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvaGVscGVycy90ZXN0X2J5dGVzd2FwLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9oZWxwZXJzL3Rlc3RfYnl0ZXN3YXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTMyZDVhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvaGVscGVycy90ZXN0X2J5dGVzd2FwLmMKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBUaGlzIHRlc3RpbmcgcHJvZ3JhbSBtYWtlcyBzdXJlIHRoZSBieXRlc3dhcCBmdW5jdGlvbnMgd29yaworICoKKyAqIENvcHlyaWdodCAoQykgMjAwMCBieSBUaGVvZG9yZSBUcydvLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBtYXkgYmUgcmVkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBQdWJsaWMKKyAqIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSAiYml0b3BzLmgiCisKK3VpbnQxNl90IGFyeTE2W10gPSB7CisJMHgwMDAxLCAweDAxMDAsCisJMHgxMjM0LCAweDM0MTIsCisJMHhmZjAwLCAweDAwZmYsCisJMHg0MDAwLCAweDAwNDAsCisJMHhmZWZmLCAweGZmZmUsCisJMHgwMDAwLCAweDAwMDAKKwl9OworCit1aW50MzJfdCBhcnkzMltdID0geworCTB4MDAwMDAwMDEsIDB4MDEwMDAwMDAsCisJMHg4MDAwMDAwMCwgMHgwMDAwMDA4MCwKKwkweDEyMzQ1Njc4LCAweDc4NTYzNDEyLAorCTB4ZmZmZjAwMDAsIDB4MDAwMGZmZmYsCisJMHgwMGZmMDAwMCwgMHgwMDAwZmYwMCwKKwkweGZmMDAwMDAwLCAweDAwMDAwMGZmLAorCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAKKwl9OworCit1aW50NjRfdCBhcnk2NFtdID0geworCTB4MDAwMDAwMDAwMDAwMDAwMSwgMHgwMTAwMDAwMDAwMDAwMDAwLAorCTB4ODAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDgwLAorCTB4MTIzNDU2NzgxMjM0NTY3OCwgMHg3ODU2MzQxMjc4NTYzNDEyLAorCTB4ZmZmZmZmZmYwMDAwMDAwMCwgMHgwMDAwMDAwMGZmZmZmZmZmLAorCTB4MDBmZjAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDBmZjAwLAorCTB4ZmYwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMGZmLAorCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwCisJfTsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWludAlpOworCWludAllcnJvcnMgPSAwOworCisJcHJpbnRmKCJUZXN0aW5nIHN3YWIxNlxuIik7CisJaT0wOworCWRvIHsKKwkJcHJpbnRmKCJzd2FiMTYoMHglMDQiUFJJeDE2IikgPSAweCUwNCJQUkl4MTYiXG4iLAorCQkJCWFyeTE2W2ldLCBzd2FiMTYoYXJ5MTZbaV0pKTsKKwkJaWYgKHN3YWIxNihhcnkxNltpXSkgIT0gYXJ5MTZbaSsxXSkgeworCQkJcHJpbnRmKCJFcnJvciEhISAgICUwNCJQUkl4MTYiICE9ICUwNCJQUkl4MTYiXG4iLAorCQkJICAgICAgIHN3YWIxNihhcnkxNltpXSksIGFyeTE2W2krMV0pOworCQkJZXJyb3JzKys7CisJCX0KKwkJaWYgKHN3YWIxNihhcnkxNltpKzFdKSAhPSBhcnkxNltpXSkgeworCQkJcHJpbnRmKCJFcnJvciEhISAgICUwNCJQUkl4MTYiICE9ICUwNCJQUkl4MTYiXG4iLAorCQkJICAgICAgIHN3YWIxNihhcnkxNltpKzFdKSwgYXJ5MTZbaV0pOworCQkJZXJyb3JzKys7CisJCX0KKwkJaSArPSAyOworCX0gd2hpbGUgKGFyeTE2W2ldICE9IDApOworCisJcHJpbnRmKCJUZXN0aW5nIHN3YWIzMlxuIik7CisJaSA9IDA7CisJZG8geworCQlwcmludGYoInN3YWIzMigweCUwOCJQUkl4MzIiKSA9IDB4JTA4IlBSSXgzMiJcbiIsCisJCQkJYXJ5MzJbaV0sIHN3YWIzMihhcnkzMltpXSkpOworCQlpZiAoc3dhYjMyKGFyeTMyW2ldKSAhPSBhcnkzMltpKzFdKSB7CisJCQlwcmludGYoIkVycm9yISEhICAgJTA0IlBSSXgzMiIgIT0gJTA0IlBSSXgzMiJcbiIsCisJCQkJc3dhYjMyKGFyeTMyW2ldKSwgYXJ5MzJbaSsxXSk7CisJCQllcnJvcnMrKzsKKwkJfQorCQlpZiAoc3dhYjMyKGFyeTMyW2krMV0pICE9IGFyeTMyW2ldKSB7CisJCQlwcmludGYoIkVycm9yISEhICAgJTA0IlBSSXgzMiIgIT0gJTA0IlBSSXgzMiJcbiIsCisJCQkgICAgICAgc3dhYjMyKGFyeTMyW2krMV0pLCBhcnkzMltpXSk7CisJCQllcnJvcnMrKzsKKwkJfQorCQlpICs9IDI7CisJfSB3aGlsZSAoYXJ5MzJbaV0gIT0gMCk7CisKKwlwcmludGYoIlRlc3Rpbmcgc3dhYjY0XG4iKTsKKwlpID0gMDsKKwlkbyB7CisJCXByaW50Zigic3dhYjY0KDB4JTAxNiJQUkl4NjQiKSA9IDB4JTAxNiJQUkl4NjQiXG4iLAorCQkJCWFyeTY0W2ldLCBzd2FiNjQoYXJ5NjRbaV0pKTsKKwkJaWYgKHN3YWI2NChhcnk2NFtpXSkgIT0gYXJ5NjRbaSsxXSkgeworCQkJcHJpbnRmKCJFcnJvciEhISAgICUwMTYiUFJJeDY0IiAhPSAlMDE2IlBSSXg2NCJcbiIsCisJCQkJc3dhYjY0KGFyeTY0W2ldKSwgYXJ5NjRbaSsxXSk7CisJCQllcnJvcnMrKzsKKwkJfQorCQlpZiAoc3dhYjY0KGFyeTY0W2krMV0pICE9IGFyeTY0W2ldKSB7CisJCQlwcmludGYoIkVycm9yISEhICAgJTAxNiJQUkl4NjQiICE9ICUwMTYiUFJJeDY0IlxuIiwKKwkJCSAgICAgICBzd2FiNjQoYXJ5NjRbaSsxXSksIGFyeTY0W2ldKTsKKwkJCWVycm9ycysrOworCQl9CisJCWkgKz0gMjsKKwl9IHdoaWxlIChhcnk2NFtpXSAhPSAwKTsKKworCWlmICghZXJyb3JzKQorCQlwcmludGYoIk5vIGVycm9ycyBmb3VuZCBpbiB0aGUgYnl0ZXN3YXAgaW1wbGVtZW50YXRpb25cbiIpOworCisJcmV0dXJuIGVycm9yczsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2hlbHBlcnMvdGVzdF9tZDUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2hlbHBlcnMvdGVzdF9tZDUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTk4ODJiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvaGVscGVycy90ZXN0X21kNS5jCkBAIC0wLDAgKzEsMzAgQEAKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlICJtZDUuaCIKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJaW50IGksIHJldDsKKwlzdHJ1Y3QgTUQ1Q29udGV4dCBjdHg7CisJdW5zaWduZWQgY2hhciBkaWdlc3RbMTZdOworCXVuc2lnbmVkIGNoYXIgYnVmW0JVRlNJWl07CisKKwlNRDVJbml0KCAmY3R4ICk7CisKKwl3aGlsZSghZmVvZihzdGRpbikgJiYgIWZlcnJvcihzdGRpbikpIHsKKwkJcmV0ID0gZnJlYWQoYnVmLCAxLCBzaXplb2YoYnVmKSwgc3RkaW4pOworCQlpZiAocmV0KQorCQkJTUQ1VXBkYXRlKCAmY3R4LCBidWYsIHJldCApOworCX0KKworCWZjbG9zZShzdGRpbik7CisJTUQ1RmluYWwoIGRpZ2VzdCwgJmN0eCApOworCisJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspCisJCXByaW50ZiggIiUwMngiLCBkaWdlc3RbaV0gKTsKKwlwcmludGYoIiAgLVxuIik7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9oZWxwZXJzL3Rlc3RfcGF0aG5hbWVzLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9oZWxwZXJzL3Rlc3RfcGF0aG5hbWVzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNjNmVmZAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2hlbHBlcnMvdGVzdF9wYXRobmFtZXMuYwpAQCAtMCwwICsxLDEwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorICoKKyAqIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgInBhdGhuYW1lcy5oIgorCitzdHJ1Y3QgaGxwUGF0aAoreworCWNvbnN0IGNoYXIgKm5hbWU7CisJY29uc3QgY2hhciAqcGF0aDsKK307CisKKyNkZWZpbmUgREVGX0hMUFBBVEgoX3ApCQl7ICNfcCwgX3AgfQorCitzdHJ1Y3QgaGxwUGF0aCBwYXRoc1tdID0KK3sKKwlERUZfSExQUEFUSChfUEFUSF9ERUZQQVRIKSwKKwlERUZfSExQUEFUSChfUEFUSF9ERUZQQVRIX1JPT1QpLAorCURFRl9ITFBQQVRIKF9QQVRIX0RFVl9UVFkpLAorCURFRl9ITFBQQVRIKF9QQVRIX0RFVl9MT09QKSwKKwlERUZfSExQUEFUSChfUEFUSF9TRUNVUkVUVFkpLAorCURFRl9ITFBQQVRIKF9QQVRIX1dUTVBMT0NLKSwKKwlERUZfSExQUEFUSChfUEFUSF9IVVNITE9HSU4pLAorCURFRl9ITFBQQVRIKF9QQVRIX01BSUxESVIpLAorCURFRl9ITFBQQVRIKF9QQVRIX01PVERGSUxFKSwKKwlERUZfSExQUEFUSChfUEFUSF9OT0xPR0lOKSwKKwlERUZfSExQUEFUSChfUEFUSF9MT0dJTiksCisJREVGX0hMUFBBVEgoX1BBVEhfSU5JVFRBQiksCisJREVGX0hMUFBBVEgoX1BBVEhfUkMpLAorCURFRl9ITFBQQVRIKF9QQVRIX1JFQk9PVCksCisJREVGX0hMUFBBVEgoX1BBVEhfU0lOR0xFKSwKKwlERUZfSExQUEFUSChfUEFUSF9TSFVURE9XTl9DT05GKSwKKwlERUZfSExQUEFUSChfUEFUSF9TRUNVUkUpLAorCURFRl9ITFBQQVRIKF9QQVRIX1VTRVJUVFkpLAorCURFRl9ITFBQQVRIKF9QQVRIX1VNT1VOVCksCisJREVGX0hMUFBBVEgoX1BBVEhfUEFTU1dEKSwKKwlERUZfSExQUEFUSChfUEFUSF9HU0hBRE9XKSwKKwlERUZfSExQUEFUSChfUEFUSF9QVE1QKSwKKwlERUZfSExQUEFUSChfUEFUSF9QVE1QVE1QKSwKKwlERUZfSExQUEFUSChfUEFUSF9HUk9VUCksCisJREVGX0hMUFBBVEgoX1BBVEhfR1RNUCksCisJREVGX0hMUFBBVEgoX1BBVEhfR1RNUFRNUCksCisJREVGX0hMUFBBVEgoX1BBVEhfU0hBRE9XX1BBU1NXRCksCisJREVGX0hMUFBBVEgoX1BBVEhfU0hBRE9XX1BUTVApLAorCURFRl9ITFBQQVRIKF9QQVRIX1NIQURPV19QVE1QVE1QKSwKKwlERUZfSExQUEFUSChfUEFUSF9TSEFET1dfR1JPVVApLAorCURFRl9ITFBQQVRIKF9QQVRIX1NIQURPV19HVE1QKSwKKwlERUZfSExQUEFUSChfUEFUSF9TSEFET1dfR1RNUFRNUCksCisJREVGX0hMUFBBVEgoX1BBVEhfV09SRFMpLAorCURFRl9ITFBQQVRIKF9QQVRIX1dPUkRTX0FMVCksCisJREVGX0hMUFBBVEgoX1BBVEhfVU1PVU5UKSwKKwlERUZfSExQUEFUSChfUEFUSF9GSUxFU1lTVEVNUyksCisJREVGX0hMUFBBVEgoX1BBVEhfUFJPQ19TV0FQUyksCisJREVGX0hMUFBBVEgoX1BBVEhfUFJPQ19GSUxFU1lTVEVNUyksCisJREVGX0hMUFBBVEgoX1BBVEhfTU9VTlRFRCksCisJREVGX0hMUFBBVEgoX1BBVEhfTU5UVEFCKSwKKwlERUZfSExQUEFUSChfUEFUSF9NT1VOVEVEX0xPQ0spLAorCURFRl9ITFBQQVRIKF9QQVRIX01PVU5URURfVE1QKSwKKwlERUZfSExQUEFUSChfUEFUSF9ERVZfQllMQUJFTCksCisJREVGX0hMUFBBVEgoX1BBVEhfREVWX0JZVVVJRCksCisJeyBOVUxMLCBOVUxMIH0KK307CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJc3RydWN0IGhscFBhdGggKnA7CisKKwlpZiAoYXJnYyA9PSAxKSB7CisJCWZvciAocCA9IHBhdGhzOyBwLT5uYW1lOyBwKyspCisJCQlwcmludGYoIiUyMHMgJXNcbiIsIHAtPm5hbWUsIHAtPnBhdGgpOworCQlleGl0KEVYSVRfU1VDQ0VTUyk7CisJfSBlbHNlIHsKKwkJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1oZWxwIikgPT0gMCB8fCBzdHJjbXAoYXJndlsxXSwgIi1oIikgPT0gMCkgeworCQkJcHJpbnRmKCIlcyA8b3B0aW9uPlxuIiwgYXJndlswXSk7CisJCQlmcHV0cygib3B0aW9uczpcbiIsIHN0ZG91dCk7CisJCQlmb3IgKHAgPSBwYXRoczsgcC0+bmFtZTsgcCsrKQorCQkJCXByaW50ZigiXHQlc1xuIiwgcC0+bmFtZSk7CisJCQlleGl0KEVYSVRfU1VDQ0VTUyk7CisJCX0KKworCQlmb3IgKHAgPSBwYXRoczsgcC0+bmFtZTsgcCsrKSB7CisJCQlpZiAoc3RyY21wKHAtPm5hbWUsIGFyZ3ZbMV0pID09IDApIHsKKwkJCQlwcmludGYoIiVzXG4iLCBwLT5wYXRoKTsKKwkJCQlleGl0KEVYSVRfU1VDQ0VTUyk7CisJCQl9CisJCX0KKwl9CisKKwlleGl0KEVYSVRfRkFJTFVSRSk7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL2hlbHBlcnMvdGVzdF9zeXNpbmZvLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9oZWxwZXJzL3Rlc3Rfc3lzaW5mby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjZTFmZTcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy9oZWxwZXJzL3Rlc3Rfc3lzaW5mby5jCkBAIC0wLDAgKzEsMTQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisgKgorICogVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVuZGlhbi5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorCisjaWYgIWRlZmluZWQgX19CWVRFX09SREVSIHx8ICEoX19CWVRFX09SREVSID09IF9fTElUVExFX0VORElBTikgJiYgIShfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOKQorI2Vycm9yIG1pc3NpbmcgX19CWVRFX09SREVSCisjZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgeworCWNvbnN0IGNoYXIJKm5hbWU7CisJaW50CQkoKmZuYykodm9pZCk7Cit9IG1udEhscGZuYzsKKworaW50CitobHBfd29yZHNpemUodm9pZCkKK3sKKwlwcmludGYoIiVkXG4iLCBfX1dPUkRTSVpFKTsKKwlyZXR1cm4gMDsKK30KKworaW50CitobHBfZW5kaWFubmVzcyh2b2lkKQoreworI2lmIChfX0JZVEVfT1JERVIgPT0gX19MSVRUTEVfRU5ESUFOKQorCXByaW50ZigiTEVcbiIpOworI2Vsc2UKKwlwcmludGYoIkJFXG4iKTsKKyNlbmRpZgorCXJldHVybiAwOworfQorCisKK2ludAoraGxwX3BhZ2VzaXplKHZvaWQpCit7CisJcHJpbnRmKCIlZFxuIiwgZ2V0cGFnZXNpemUoKSk7CisJcmV0dXJuIDA7Cit9CisKK2ludAoraGxwX2ludF9tYXgodm9pZCkKK3sKKwlwcmludGYoIiVkXG4iLCBJTlRfTUFYKTsKKwlyZXR1cm4gMDsKK30KKworaW50CitobHBfdWludF9tYXgodm9pZCkKK3sKKwlwcmludGYoIiV1XG4iLCBVSU5UX01BWCk7CisJcmV0dXJuIDA7Cit9CisKK2ludAoraGxwX2xvbmdfbWF4KHZvaWQpCit7CisJcHJpbnRmKCIlbGRcbiIsIExPTkdfTUFYKTsKKwlyZXR1cm4gMDsKK30KKworaW50CitobHBfdWxvbmdfbWF4KHZvaWQpCit7CisJcHJpbnRmKCIlbHVcbiIsIFVMT05HX01BWCk7CisJcmV0dXJuIDA7Cit9CisKK2ludAoraGxwX3Vsb25nX21heDMyKHZvaWQpCit7CisjaWYgX19XT1JEU0laRSA9PSA2NAorCXByaW50ZigiJWx1XG4iLCBVTE9OR19NQVggPj4gMzIpOworI2Vsc2UKKwlwcmludGYoIiVsdVxuIiwgVUxPTkdfTUFYKTsKKyNlbmRpZgorCXJldHVybiAwOworfQorCittbnRIbHBmbmMgaGxwc1tdID0KK3sKKwl7ICJXT1JEU0laRSIsCWhscF93b3Jkc2l6ZQl9LAorCXsgInBhZ2VzaXplIiwJaGxwX3BhZ2VzaXplCX0sCisJeyAiSU5UX01BWCIsCWhscF9pbnRfbWF4CX0sCisJeyAiVUlOVF9NQVgiLCAgIGhscF91aW50X21heAl9LAorCXsgIkxPTkdfTUFYIiwgICBobHBfbG9uZ19tYXgJfSwKKwl7ICJVTE9OR19NQVgiLCAgaGxwX3Vsb25nX21heAl9LAorCXsgIlVMT05HX01BWDMyIixobHBfdWxvbmdfbWF4MzIJfSwKKwl7ICJieXRlLW9yZGVyIiwgaGxwX2VuZGlhbm5lc3MgIH0sCisJeyBOVUxMLCBOVUxMIH0KK307CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJaW50IHJlID0gMDsKKwltbnRIbHBmbmMgKmZuOworCisJaWYgKGFyZ2MgPT0gMSkgeworCQlmb3IgKGZuID0gaGxwczsgZm4tPm5hbWU7IGZuKyspIHsKKwkJCXByaW50ZigiJTE1czogIiwgZm4tPm5hbWUpOworCQkJcmUgKz0gZm4tPmZuYygpOworCQl9CisJfSBlbHNlIHsKKwkJaW50IGk7CisKKwkJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1oZWxwIikgPT0gMCB8fCBzdHJjbXAoYXJndlsxXSwgIi1oIikgPT0gMCkgeworCQkJcHJpbnRmKCIlcyA8b3B0aW9uPlxuIiwgYXJndlswXSk7CisJCQlmcHV0cygib3B0aW9uczpcbiIsIHN0ZG91dCk7CisJCQlmb3IgKGZuID0gaGxwczsgZm4tPm5hbWU7IGZuKyspCisJCQkJcHJpbnRmKCJcdCVzXG4iLCBmbi0+bmFtZSk7CisJCQlleGl0KEVYSVRfU1VDQ0VTUyk7CisJCX0KKworCQlmb3IgKGk9MTsgaSA8IGFyZ2M7IGkrKykgeworCQkJZm9yIChmbiA9IGhscHM7IGZuLT5uYW1lOyBmbisrKSB7CisJCQkJaWYgKHN0cmNtcChmbi0+bmFtZSwgYXJndltpXSkgPT0gMCkKKwkJCQkJcmUgKz0gZm4tPmZuYygpOworCQkJfQorCQl9CisJfQorCisJZXhpdChyZSA/IEVYSVRfRkFJTFVSRSA6IEVYSVRfU1VDQ0VTUyk7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3J1bi5zaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3J1bi5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iOTlmODc2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvcnVuLnNoCkBAIC0wLDAgKzEsNjIgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworCitUU19UT1BESVI9JChjZCAkKGRpcm5hbWUgJDApICYmIHB3ZCkKK2NvbXBzPSQoZmluZCAkVFNfVE9QRElSL3RzLyAtdHlwZSBmIC1wZXJtIC9hK3ggLXJlZ2V4ICIuKi9bXlwufl0qIiB8ICBzb3J0KQorCitpZiBbIC1uICIkMSIgXTsgdGhlbgorCWlmIFsgLWQgIiRUU19UT1BESVIvdHMvJDEiIF07IHRoZW4KKwkJY29tcHM9JChmaW5kICRUU19UT1BESVIvdHMvJDEgLXR5cGUgZiAtcGVybSAvYSt4IC1yZWdleCAiLiovW15cLn5dKiIgfCAgc29ydCkKKwllbHNlCisJCWVjaG8KKwkJZWNobyAidXNhZ2U6ICQwIFs8Y29tcG9uZW50Pl0iCisJCWVjaG8gInN1cHBvcnRlZCBjb21wb25lbnRzOiIKKwkJCWZvciB0cyBpbiAkY29tcHM7IGRvCisJCQkJZWNobyAtZSAiXHQkKGJhc2VuYW1lICQoZGlybmFtZSAkdHMpKSIKKwkJCWRvbmUgfCBzb3J0IC11CisJCWVjaG8KKwkJZXhpdCAxCisJZmkKK2ZpCisKK2VjaG8KK2VjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLSBVdGlscy1saW51eC1uZyByZWdyZXNzaW9uIHRlc3RzIC0tLS0tLS0tLS0tLS0tLS0tLSIKK2VjaG8KK2VjaG8gIiAgICAgICAgICAgICAgICAgICAgRm9yIGRldmVsb3BtZW50IHB1cnBvc2Ugb25seS4gICAgICAgICAgICAgICAgICAgICIKK2VjaG8gIiAgICAgICAgICAgICAgICAgRG9uJ3QgZXhlY3V0ZSBvbiBwcm9kdWN0aW9uIHN5c3RlbSEgICAgICAgICAgICAgICAgICIKK2VjaG8KKworcmVzPTAKK2NvdW50PTAKK2ZvciB0cyBpbiAkY29tcHM7IGRvCisJJHRzICIkMSIKKwlyZXM9JCgoICRyZXMgKyAkPyApKQorCWNvdW50PSQoKCAkY291bnQgKyAxICkpCitkb25lCisKK2VjaG8KK2VjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKK2lmIFsgJHJlcyAtZXEgMCBdOyB0aGVuCisJZWNobyAiICBBbGwgJGNvdW50IHRlc3RzIFBBU1NFRCIKKwlyZXM9MAorZWxzZQorCWVjaG8gIiAgJHJlcyB0ZXN0cyBvZiAkY291bnQgRkFJTEVEIgorCXJlcz0xCitmaQorZWNobyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgorZXhpdCAkcmVzCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9iaXRvcHMvc3dhcGJ5dGVzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYml0b3BzL3N3YXBieXRlcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMzEwYjlkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYml0b3BzL3N3YXBieXRlcwpAQCAtMCwwICsxLDI3IEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9InN3YXAgYnl0ZXMiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgorCiskVFNfSEVMUEVSX0JZVEVTV0FQID4+ICRUU19PVVRQVVQKKwordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2FkYXB0ZWMtcmFpZC5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2FkYXB0ZWMtcmFpZC5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzYzEwZDcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvYWRhcHRlYy1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2Jmcy5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2Jmcy5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ZGY0OGYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvYmZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2NyYW1mcy5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2NyYW1mcy5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2MzgxMTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvY3JhbWZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2RkZi1yYWlkLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvZGRmLXJhaWQuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGYwYzhhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2RkZi1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2V4dDIuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9leHQyLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE4MTFjZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9leHQyLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2V4dDMuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9leHQzLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTM5NDU5OAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9leHQzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2ZhdC5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2ZhdC5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmYTdmMmQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvZmF0LmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2ZhdDMyX2xhYmVsXzY0TUIuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9mYXQzMl9sYWJlbF82NE1CLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E3NjI5MwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9mYXQzMl9sYWJlbF82NE1CLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2dmczIuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9nZnMyLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFiMmY5MAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9nZnMyLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2hmcy5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2hmcy5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0ZmMxYWIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvaGZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2hmc3BsdXMuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9oZnNwbHVzLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZhZDFiOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9oZnNwbHVzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2hwZnMuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9ocGZzLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU0ZTZkZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9ocGZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2hwdDM3eC1yYWlkLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvaHB0Mzd4LXJhaWQuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmUxM2JiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2hwdDM3eC1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2hwdDQ1eC1yYWlkLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvaHB0NDV4LXJhaWQuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmVhYTViCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2hwdDQ1eC1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2lzby1qb2xpZXQuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9pc28tam9saWV0LmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU0M2MwYgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9pc28tam9saWV0LmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2lzby1yci1qb2xpZXQuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9pc28tcnItam9saWV0LmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdlOGI3NgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9pc28tcnItam9saWV0LmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2lzby5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2lzby5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzODk4NDcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvaXNvLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2lzdy1yYWlkLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvaXN3LXJhaWQuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjE0Yzk2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2lzdy1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2piZC5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2piZC5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2YzRmYzQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvamJkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2pmcy5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2pmcy5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNGQyNDkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvamZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2ptaWNyb24tcmFpZC5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2ptaWNyb24tcmFpZC5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNGIyMzYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvam1pY3Jvbi1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2xzaS1yYWlkLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvbHNpLXJhaWQuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmQ3NWMzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2xzaS1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL2x2bTIuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9sdm0yLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JiODRiZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9sdm0yLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL21kcmFpZC5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL21kcmFpZC5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YTY3YTMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvbWRyYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL21pbml4LmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvbWluaXguaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTFmM2E4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL21pbml4LmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL25ldHdhcmUuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9uZXR3YXJlLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWMyMDY3MwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9uZXR3YXJlLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL250ZnMuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9udGZzLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMxMjQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9udGZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL252aWRpYS1yYWlkLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvbnZpZGlhLXJhaWQuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMWYwNjJlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL252aWRpYS1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL29jZnMyLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvb2NmczIuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTIwM2RhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL29jZnMyLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3Byb21pc2UtcmFpZC5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3Byb21pc2UtcmFpZC5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTVhMDgKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvcHJvbWlzZS1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3JlaXNlcjMuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9yZWlzZXIzLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgwMmJjMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9yZWlzZXIzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3JlaXNlcjQuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9yZWlzZXI0LmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA3NTcxZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy9yZWlzZXI0LmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3JvbWZzLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvcm9tZnMuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTRkNzdiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3JvbWZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3NpbGljb24tcmFpZC5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3NpbGljb24tcmFpZC5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzY2NiZjkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvc2lsaWNvbi1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3NtYWxsLWZhdDMyLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvc21hbGwtZmF0MzIuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjkwZjljCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3NtYWxsLWZhdDMyLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3N3YXAwLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvc3dhcDAuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDI3YjZmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3N3YXAwLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3N3YXAxLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvc3dhcDEuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2FkZWRkCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3N3YXAxLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3ViaWZzLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvdWJpZnMuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmJhOGY3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3ViaWZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3VkZi5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3VkZi5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMmRlYjAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvdWRmLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3Vmcy5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3Vmcy5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3YWJiZWQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvdWZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3ZpYS1yYWlkLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvdmlhLXJhaWQuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjY2ZjVlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3ZpYS1yYWlkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3ZtZnMuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy92bWZzLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDk0MDE0MwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1mcy92bWZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3ZtZnNfdm9sdW1lLmltZy5iejIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvdm1mc192b2x1bWUuaW1nLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzBlYzY2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3ZtZnNfdm9sdW1lLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3hmcy5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3hmcy5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmNjk4MmIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMveGZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3pmcy5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLWZzL3pmcy5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYWFlZjAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtZnMvemZzLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLXB0L2JzZC5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLXB0L2JzZC5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0YjA1ZTQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtcHQvYnNkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLXB0L2Rvcytic2QuaW1nLmJ6MiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1wdC9kb3MrYnNkLmltZy5iejIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NjZGQ4YQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2ltYWdlcy1wdC9kb3MrYnNkLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLXB0L2dwdC5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLXB0L2dwdC5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNGRlN2MKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtcHQvZ3B0LmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLXB0L3NnaS5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLXB0L3NnaS5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMWMzMTMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtcHQvc2dpLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLXB0L3N1bi5pbWcuYnoyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvaW1hZ2VzLXB0L3N1bi5pbWcuYnoyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkZjRmMDIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9pbWFnZXMtcHQvc3VuLmltZy5iejIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvbG93LXByb2JlIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvbG93LXByb2JlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZmMjFiM2IKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9ibGtpZC9sb3ctcHJvYmUKQEAgLTAsMCArMSw0NiBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9Imxvdy1sZXZlbCBzdXBlcmJsb2NrcyBwcm9iaW5nIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCisKK3RzX2luaXQgIiQqIgorCitpZiBbICEgLXggIiRUU19DTURfQkxLSUQiIF07IHRoZW4KKwl0c19za2lwICJibGtpZCBkaXNhYmxlZCIKK2ZpCisKK21rZGlyIC1wICRUU19PVVRESVIvaW1hZ2VzLWZzCisKK2ZvciBpbWcgaW4gJChscyAkVFNfU0VMRi9pbWFnZXMtZnMvKi5pbWcuYnoyIHwgc29ydCk7IGRvCisJbmFtZT0kKGJhc2VuYW1lICRpbWcgLmltZy5iejIpCisJb3V0aW1nPSRUU19PVVRESVIvaW1hZ2VzLWZzLyR7bmFtZX0uaW1nCisKKwl0c19pbml0X3N1YnRlc3QgJG5hbWUKKworCWJ1bnppcDIgPCAkaW1nID4gJG91dGltZworCisJIy9saWIvdWRldi92b2xfaWQgJG91dGltZyAgfCBlZ3JlcCAtdiAnW1s6YWxudW06XV9dKj0kJyB8IHNvcnQgPiAkVFNfT1VUUFVUIDI+JjEKKwkkVFNfQ01EX0JMS0lEIC1wIC1vIHVkZXYgJG91dGltZyAyPiYxIHwgc29ydCA+ICRUU19PVVRQVVQKKwl0c19maW5hbGl6ZV9zdWJ0ZXN0Citkb25lCisKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2xvd3Byb2JlLXB0IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvYmxraWQvbG93cHJvYmUtcHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzExZGVmNgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2Jsa2lkL2xvd3Byb2JlLXB0CkBAIC0wLDAgKzEsNDUgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJwYXJ0aXRpb25zIHByb2JpbmciCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKKwordHNfaW5pdCAiJCoiCisKK2lmIFsgISAteCAiJFRTX0hFTFBFUl9QQVJUSVRJT05TIiBdOyB0aGVuCisJdHNfc2tpcCAiYmxraWQgZGlzYWJsZWQiCitmaQorCitta2RpciAtcCAkVFNfT1VURElSL2ltYWdlcy1wdAorCitmb3IgaW1nIGluICQobHMgJFRTX1NFTEYvaW1hZ2VzLXB0LyouaW1nLmJ6MiB8IHNvcnQpOyBkbworCW5hbWU9JChiYXNlbmFtZSAkaW1nIC5pbWcuYnoyKQorCW91dGltZz0kVFNfT1VURElSL2ltYWdlcy1wdC8ke25hbWV9LmltZworCisJdHNfaW5pdF9zdWJ0ZXN0ICRuYW1lCisKKwlidW56aXAyIDwgJGltZyA+ICRvdXRpbWcKKworCSRUU19IRUxQRVJfUEFSVElUSU9OUyAkb3V0aW1nICY+ICRUU19PVVRQVVQKKwl0c19maW5hbGl6ZV9zdWJ0ZXN0Citkb25lCisKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NhbC8xbSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NhbC8xbQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZmU2NGNmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvY2FsLzFtCkBAIC0wLDAgKzEsNTkgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSIxIG1vbnRoIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKKworc2V0IC1vIHBpcGVmYWlsCisKK1VTRVRFUk09JCggdHNfaGFzX29wdGlvbiAidXNldGVybSIgIiQqIiApCitNWVRJTUU9IjI3IDA5IDIwMDYiCisKK1sgIiRVU0VURVJNIiA9PSAieWVzIiBdICYmIFRTX1ZFUkJPU0U9InllcyIKK3RzX2xvZyAiIgorCit0c19sb2cgIkdyZWdvcmlhbiAtIE1vbmRheS1iYXNlZCB3ZWVrIgoraWYgWyAiJFVTRVRFUk0iID09ICJ5ZXMiIF07IHRoZW4KKwkkVFNfQ01EX0NBTCAtMW0gJE1ZVElNRQorZmkKKyRUU19DTURfQ0FMIC0xbSAkTVlUSU1FID4+ICRUU19PVVRQVVQKKwordHNfbG9nICJHcmVnb3JpYW4gLSBTdW5kYXktYmFzZWQgd2VlayIKK2lmIFsgIiRVU0VURVJNIiA9PSAieWVzIiBdOyB0aGVuCisJJFRTX0NNRF9DQUwgLTFzICRNWVRJTUUKK2ZpCiskVFNfQ01EX0NBTCAtMXMgJE1ZVElNRSA+PiAkVFNfT1VUUFVUCisKKwordHNfbG9nICJKdWxpYW4gLSBNb25kYXktYmFzZWQgd2VlayIKK2lmIFsgIiRVU0VURVJNIiA9PSAieWVzIiBdOyB0aGVuCisJJFRTX0NNRF9DQUwgLTFtaiAkTVlUSU1FCitmaQorJFRTX0NNRF9DQUwgLTFtaiAkTVlUSU1FID4+ICRUU19PVVRQVVQKKwordHNfbG9nICJKdWxpYW4gLSBTdW5kYXktYmFzZWQgd2VlayIKK2lmIFsgIiRVU0VURVJNIiA9PSAieWVzIiBdOyB0aGVuCisJJFRTX0NNRF9DQUwgLTFzaiAkTVlUSU1FCitmaQorJFRTX0NNRF9DQUwgLTFzaiAkTVlUSU1FID4+ICRUU19PVVRQVVQKKwordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvY2FsLzNtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvY2FsLzNtCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU4YjVkYTUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9jYWwvM20KQEAgLTAsMCArMSw1OCBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSIzIG1vbnRocyIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCisKK3NldCAtbyBwaXBlZmFpbAorCitVU0VURVJNPSQoIHRzX2hhc19vcHRpb24gInVzZXRlcm0iICIkKiIgKQorTVlUSU1FPSIyNyAwOSAyMDA2IgorCitbICIkVVNFVEVSTSIgPT0gInllcyIgXSAmJiBUU19WRVJCT1NFPSJ5ZXMiCit0c19sb2cgIiIKKwordHNfbG9nICJHcmVnb3JpYW4gLSBNb25kYXktYmFzZWQgd2VlayIKK2lmIFsgIiRVU0VURVJNIiA9PSAieWVzIiBdOyB0aGVuCisJICRUU19DTURfQ0FMIC0zbSAkTVlUSU1FCitmaQorJFRTX0NNRF9DQUwgLTNtICRNWVRJTUUgPj4gJFRTX09VVFBVVAorCit0c19sb2cgIkdyZWdvcmlhbiAtIFN1bmRheS1iYXNlZCB3ZWVrIgoraWYgWyAiJFVTRVRFUk0iID09ICJ5ZXMiIF07IHRoZW4KKwkgJFRTX0NNRF9DQUwgLTNzICRNWVRJTUUKK2ZpCiskVFNfQ01EX0NBTCAtM3MgJE1ZVElNRSA+PiAkVFNfT1VUUFVUCisKKwordHNfbG9nICJKdWxpYW4gLSBNb25kYXktYmFzZWQgd2VlayIKK2lmIFsgIiRVU0VURVJNIiA9PSAieWVzIiBdOyB0aGVuCisJJFRTX0NNRF9DQUwgLTNtaiAkTVlUSU1FCitmaQorJFRTX0NNRF9DQUwgLTNtaiAkTVlUSU1FID4+ICRUU19PVVRQVVQKKwordHNfbG9nICJKdWxpYW4gLSBTdW5kYXktYmFzZWQgd2VlayIKK2lmIFsgIiRVU0VURVJNIiA9PSAieWVzIiBdOyB0aGVuCisJICRUU19DTURfQ0FMIC0zc2ogJE1ZVElNRQorZmkKKyRUU19DTURfQ0FMIC0zc2ogJE1ZVElNRSA+PiAkVFNfT1VUUFVUCisKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NhbC95ZWFyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvY2FsL3llYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjU4YzM5MwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NhbC95ZWFyCkBAIC0wLDAgKzEsNTggQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0ieWVhciIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCisKK3NldCAtbyBwaXBlZmFpbAorCitVU0VURVJNPSQoIHRzX2hhc19vcHRpb24gInVzZXRlcm0iICIkKiIgKQorTVlUSU1FPSIyOSAxMSAyMDA2IgorCitbICIkVVNFVEVSTSIgPT0gInllcyIgXSAmJiBUU19WRVJCT1NFPSJ5ZXMiCit0c19sb2cgIiIKKwordHNfbG9nICJHcmVnb3JpYW4gLSBNb25kYXktYmFzZWQgd2VlayIKK2lmIFsgIiRVU0VURVJNIiA9PSAieWVzIiBdOyB0aGVuCisJJFRTX0NNRF9DQUwgLXltICRNWVRJTUUKK2ZpCiskVFNfQ01EX0NBTCAteW0gJE1ZVElNRSA+PiAkVFNfT1VUUFVUCisKK3RzX2xvZyAiR3JlZ29yaWFuIC0gU3VuZGF5LWJhc2VkIHdlZWsiCitpZiBbICIkVVNFVEVSTSIgPT0gInllcyIgXTsgdGhlbgorCSRUU19DTURfQ0FMIC15cyAkTVlUSU1FCitmaQorJFRTX0NNRF9DQUwgLXlzICRNWVRJTUUgPj4gJFRTX09VVFBVVAorCisKK3RzX2xvZyAiSnVsaWFuIC0gTW9uZGF5LWJhc2VkIHdlZWsiCitpZiBbICIkVVNFVEVSTSIgPT0gInllcyIgXTsgdGhlbgorCSRUU19DTURfQ0FMIC15bWogJE1ZVElNRQorZmkKKyRUU19DTURfQ0FMIC15bWogJE1ZVElNRSA+PiAkVFNfT1VUUFVUCisKK3RzX2xvZyAiSnVsaWFuIC0gU3VuZGF5LWJhc2VkIHdlZWsiCitpZiBbICIkVVNFVEVSTSIgPT0gInllcyIgXTsgdGhlbgorCSRUU19DTURfQ0FMIC15c2ogJE1ZVElNRQorZmkKKyRUU19DTURfQ0FMIC15c2ogJE1ZVElNRSA+PiAkVFNfT1VUUFVUCisKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NvbC9tdWx0aWJ5dGUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9jb2wvbXVsdGlieXRlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEyY2Y5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9jb2wvbXVsdGlieXRlCkBAIC0wLDAgKzEsMjcgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0ibXVsdGlieXRlIGlucHV0IgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKKworY2F0ICRUU19TRUxGL211bHRpYnl0ZS5kYXRhIHwgJFRTX0NNRF9DT0wgPiAvZGV2L251bGwgIDI+ICRUU19PVVRQVVQKKwordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvY29sL211bHRpYnl0ZS5kYXRhIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvY29sL211bHRpYnl0ZS5kYXRhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyMDNhZmQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9jb2wvbXVsdGlieXRlLmRhdGEKQEAgLTAsMCArMSBAQAorRGF0ZWluYW1lIGRlciBWZXJzYW5kaPxsbGUKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NyYW1mcy9jcmFtZnMtYmlnLmltZyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NyYW1mcy9jcmFtZnMtYmlnLmltZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZWE1MTZlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvY3JhbWZzL2NyYW1mcy1iaWcuaW1nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NyYW1mcy9jcmFtZnMtbGl0dGxlLmltZyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NyYW1mcy9jcmFtZnMtbGl0dGxlLmltZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWRmYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvY3JhbWZzL2NyYW1mcy1saXR0bGUuaW1nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NyYW1mcy9mc2NrLWVuZGlhbm5lc3MgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9jcmFtZnMvZnNjay1lbmRpYW5uZXNzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkzZWJjN2MKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9jcmFtZnMvZnNjay1lbmRpYW5uZXNzCkBAIC0wLDAgKzEsNTcgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iZnNjayBlbmRpYW5uZXNzIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCitzZXQgLW8gcGlwZWZhaWwKKworKCRUU19DTURfRlNDS0NSQU1GUyAteCBURVNUX1hfRkxBRyAyPiYxIHx8IHRydWUpIFwKKwl8IGdyZXAgLXEgImNvbXBpbGVkIHdpdGhvdXQgLXggc3VwcG9ydCIgJiYgdHNfc2tpcCAiZnNjazogY29tcGlsZWQgd2l0aG91dCAteCBzdXBwb3J0IgorCitJTUFHRV9MSVRUTEU9IiRUU19TRUxGL2NyYW1mcy1saXR0bGUuaW1nIgkjS25vd24gZ29vZCBsaXR0bGUgZW5kaWFuIGltYWdlCitJTUFHRV9CSUc9IiRUU19TRUxGL2NyYW1mcy1iaWcuaW1nIgkJI0tub3duIGdvb2QgYmlnIGVuZGlhbiBpbWFnZQorCitJTUFHRV9DUkVBVEVEPSIkVFNfT1VURElSLyR7VFNfVEVTVE5BTUV9LWNyYW1mcy5pbWciCSNJbWFnZSBjcmVhdGVkIGR1cmluZyB0aGUgdGVzdCBhbmQgY29tcGFyZWQgYWdhaW5zdCB0aGUga25vd24gaW1hZ2VzLgorSU1BR0VfREFUQT0iJFRTX09VVERJUi8ke1RTX1RFU1ROQU1FfS1kYXRhIgorCit0ZXN0X2ltYWdlKCkgeworCWxvY2FsIEZST01fRU5ESUFOTkVTUz0iJDEiOyBzaGlmdAorCWxvY2FsIFRPX0VORElBTk5FU1M9IiQxIjsgc2hpZnQKKwlsb2NhbCBGUk9NX0lNQUdFPSIkMSI7IHNoaWZ0CisKKwlybSAtcmYgIiRJTUFHRV9EQVRBIgorCXRzX2xvZyAiZXh0cmFjdCBmcm9tICRGUk9NX0VORElBTk5FU1MgZW5kaWFuIgorCSRUU19DTURfRlNDS0NSQU1GUyAtdiAteCAkSU1BR0VfREFUQSAkRlJPTV9JTUFHRSB8IGhlYWQgLW4xIHwgY3V0IC1kIiAiIC1mNCAyPiYxID4+ICRUU19PVVRQVVQKKworCXRzX2xvZyAiY3JlYXRlICRUT19FTkRJQU5ORVNTIGVuZGlhbiIKKwkkVFNfQ01EX01LQ1JBTUZTIC1OICIkVE9fRU5ESUFOTkVTUyIgIiRJTUFHRV9EQVRBIiAiJElNQUdFX0NSRUFURUQiIDI+JjEgPj4gJFRTX09VVFBVVAorCisJbWQ1c3VtICRJTUFHRV9DUkVBVEVEIHwgY3V0IC1kIiAiIC1mMSA+PiAkVFNfT1VUUFVUCisKKwlybSAiJElNQUdFX0NSRUFURUQiCit9CisKK3Rlc3RfaW1hZ2UgImxpdHRsZSIgImJpZyIgIiRJTUFHRV9MSVRUTEUiCit0ZXN0X2ltYWdlICJiaWciICJsaXR0bGUiICIkSU1BR0VfQklHIgorCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9jcmFtZnMvbWtmcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NyYW1mcy9ta2ZzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmViODVjNTUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9jcmFtZnMvbWtmcwpAQCAtMCwwICsxLDk1IEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9Im1rZnMgY2hlY2tzdW1zIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCitzZXQgLW8gcGlwZWZhaWwKKworT1JJR1BXRD0kKHB3ZCkKK0lNQUdFX05BTUU9IiR7VFNfVEVTVE5BTUV9LWxvb3AuaW1nIgorSU1BR0VfUEFUSD0iJFRTX09VVERJUi8kSU1BR0VfTkFNRSIKK0lNQUdFX1NSQz0iJFRTX09VVERJUi8ke1RTX1RFU1ROQU1FfS1kYXRhIgorTEFCRUw9InRlc3RDcmFtZnMiCisKK3RzX2xvZyAiY3JlYXRlIG1vdW50cG9pbnQgZGlyIgorCitbIC1kICIkVFNfTU9VTlRQT0lOVCIgXSB8fCBta2RpciAtcCAkVFNfTU9VTlRQT0lOVAorCit0c19sb2cgImdlbmVyYXRlIGRhdGEiCitpZiBbICEgLWQgIiRJTUFHRV9TUkMiIF07IHRoZW4KKwlta2RpciAtcCAkSU1BR0VfU1JDCisJZm9yIGQgaW4gYHNlcSAwIDExMGA7IGRvCisJCURJUk5BTUU9IiRJTUFHRV9TUkMvJChwcmludGYgImRpci0lMDNkIiAkZCkiCisJCW1rZGlyIC1wICRESVJOQU1FCisJCWZvciBmIGluIGBzZXEgMCAxMGA7IGRvCisJCQlGSUxFTkFNRT0iJERJUk5BTUUvJChwcmludGYgImRhdGEuJTAzZCIgJGYpIgorCQkJcHJpbnRmICJkYXRhIGluICUwM2QtJTAzZCIgJGQgJGYgPj4gJEZJTEVOQU1FCisJCWRvbmUKKwlkb25lCitmaQorCitjZCAkSU1BR0VfU1JDCisKK3RzX2xvZyAibGlzdCBjaGVja3N1bXMgZnJvbSBvcmlnaW5hbCBkYXRhIgorZmluZCAtdHlwZSBmIC1leGVjIG1kNXN1bSB7fSBcOyB8IHNvcnQgPj4gJFRTX09VVFBVVAorZWNobyA+PiAkVFNfT1VUUFVUCisKK3RzX2xvZyAiY3JlYXRlIGNyYW1mcyBpbWFnZSIKKyRUU19DTURfTUtDUkFNRlMgLW4gJExBQkVMICRJTUFHRV9TUkMgJElNQUdFX1BBVEggMj4mMSA+PiAkVFNfT1VUUFVUCitbIC1zICIkSU1BR0VfUEFUSCIgXSB8fCB0c19kaWUgIkNhbm5vdCBjcmVhdGUgJElNQUdFX1BBVEgiCisKK2NkICRUU19PVVRESVIKKwordHNfbG9nICJjb3VudCBNRDUgZnJvbSB0aGUgaW1hZ2UiCittZDVzdW0gJElNQUdFX05BTUUgMj4mMSB8IHNvcnQgPj4gJFRTX09VVFBVVAorZWNobyA+PiAkVFNfT1VUUFVUCisKK3RzX2xvZyAiY3JlYXRlIGxvb3AgZGV2aWNlIGZyb20gaW1hZ2UiCitERVZJQ0U9JCgkVFNfQ01EX0xPU0VUVVAgLXMgLWYgJElNQUdFX1BBVEgpCisKK3RzX2xvZyAiY2hlY2sgdGhlIGltYWdlIgordHNfZGV2aWNlX2hhcyAiVFlQRSIgImNyYW1mcyIgJERFVklDRQorWyAgIiQ/IiA9PSAiMCIgXSB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCBjcmFtZnMgb24gJERFVklDRSIgJERFVklDRQorCit0c19sb2cgIm1vdW50IHRoZSBpbWFnZSIKKyRUU19DTURfTU9VTlQgLUwgJExBQkVMICRUU19NT1VOVFBPSU5UIDI+JjEgPj4gJFRTX09VVFBVVAorCisjIGNoZWNrIGl0Cit0c19pc19tb3VudGVkICRERVZJQ0UgfHwgdHNfZGllICJDYW5ub3QgZm91bmQgJERFVklDRSBpbiAvcHJvYy9tb3VudHMiICRERVZJQ0UKKworY2QgJFRTX01PVU5UUE9JTlQKKwordHNfbG9nICJsaXN0IHRoZSBpbWFnZSIKK2xzIC1sYVIgLS10aW1lLXN0eWxlPWxvbmctaXNvIC4gPj4gJFRTX09VVFBVVAorZWNobyA+PiAkVFNfT1VUUFVUCisKK3RzX2xvZyAibGlzdCBjaGVja3N1bXMgZnJvbSBuZXcgZGF0YSIKK2ZpbmQgLiAtdHlwZSBmIC1leGVjIG1kNXN1bSB7fSBcOyB8IHNvcnQgPj4gJFRTX09VVFBVVAorZWNobyA+PiAkVFNfT1VUUFVUCisKK2NkICRPUklHUFdECisKK3RzX2xvZyAidW1vdW50IHRoZSBpbWFnZSIKKyRUU19DTURfVU1PVU5UICRERVZJQ0UKKyRUU19DTURfTE9TRVRVUCAtZCAkREVWSUNFIDI+JjEgPj4gJFRTX09VVFBVVAordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvY3JhbWZzL21rZnMtZW5kaWFubmVzcyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NyYW1mcy9ta2ZzLWVuZGlhbm5lc3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmY1YmM4NAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2NyYW1mcy9ta2ZzLWVuZGlhbm5lc3MKQEAgLTAsMCArMSw1MyBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJta2ZzIGVuZGlhbm5lc3MiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK3NldCAtbyBwaXBlZmFpbAorCitJTUFHRV9EQVRBPSIkVFNfT1VURElSLyR7VFNfVEVTVE5BTUV9LWRhdGEiCitJTUFHRV9DUkVBVEVEPSIkVFNfT1VURElSLyR7VFNfVEVTVE5BTUV9LWNyYW1mcy5pbWciCSNJbWFnZSBjcmVhdGVkIGR1cmluZyB0aGUgdGVzdCBhbmQgY29tcGFyZWQgYWdhaW5zdCB0aGUga25vd24gaW1hZ2VzLgorCit0ZXN0X2ltYWdlKCkgeworCWxvY2FsIFRPX0VORElBTk5FU1M9IiQxIjsgc2hpZnQKKwl0c19sb2cgImNyZWF0ZSAkVE9fRU5ESUFOTkVTUyBlbmRpYW4iCisKKwkkVFNfQ01EX01LQ1JBTUZTIC1OICIkVE9fRU5ESUFOTkVTUyIgIiRJTUFHRV9EQVRBIiAiJElNQUdFX0NSRUFURUQiIDI+JjEgPj4gJFRTX09VVFBVVAorCisJbWQ1c3VtICRJTUFHRV9DUkVBVEVEIHwgY3V0IC1kIiAiIC1mMSA+PiAkVFNfT1VUUFVUCisKKwlybSAiJElNQUdFX0NSRUFURUQiCit9CisKKyNnZW5lcmF0ZSB0ZXN0IGRhdGEKK21rZGlyIC1wICRJTUFHRV9EQVRBL2RpckEvZGlyQgoreWVzICJUZXN0aW5nIGNyYW1mcyAxMjM0NTY3ODkwIEVuZGlhbm5lc3MgY2hlY2sgMTIzNDU2Nzg5MCBFbmRpYW5uZXNzIGNoZWNrIiBcCisJfCBkZCBvZj0kSU1BR0VfREFUQS9kaXJBL2RpckIvYSBicz01MTIgY291bnQ9MSAmPiAvZGV2L251bGwKK3llcyAiVGVzdGluZyBjcmFtZnMgMTIzNDU2Nzg5MCBFbmRpYW5uZXNzIGNoZWNrIDEyMzQ1Njc4OTAgRW5kaWFubmVzcyBjaGVjayIgXAorCXwgZGQgb2Y9JElNQUdFX0RBVEEvZGlyQS9kaXJCL2IgYnM9NTEyIGNvdW50PTMwICY+IC9kZXYvbnVsbAorCisjcGVyZm9ybSB0ZXN0cyBmb3IgYm90aCBlbmRpYW5zCit0ZXN0X2ltYWdlICJsaXR0bGUiCit0ZXN0X2ltYWdlICJiaWciCisKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2ZkaXNrL2FsaWduLTUxMi00SyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2ZkaXNrL2FsaWduLTUxMi00SwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYmJkOGE3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZmRpc2svYWxpZ24tNTEyLTRLCkBAIC0wLDAgKzEsOTEgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKworCisjCisjIFRlc3QgYWxpZ25tZW50IGZvciA1MTIvNTEyIGRpc2sgKndpdGgqIHRvcG9sb2d5IC0tIGFsaWduZWQgdG8gb3B0aW1hbAorIyBJL08gc2l6ZSAoMzJLaUIpCisjCisKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImFsaWduIDUxMi80SyIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworbW9kcHJvYmUgLS1kcnktcnVuIC0tcXVpZXQgc2NzaV9kZWJ1ZworWyAiJD8iID09IDAgXSB8fCB0c19za2lwICJtaXNzaW5nIHNjc2lfZGVidWcgbW9kdWxlIgorCitybW1vZCBzY3NpX2RlYnVnICY+IC9kZXYvbnVsbAorbW9kcHJvYmUgc2NzaV9kZWJ1ZyBkZXZfc2l6ZV9tYj01MCBzZWN0b3Jfc2l6ZT01MTIgcGh5c2Jsa19leHA9MworWyAiJD8iID09IDAgXSB8fCB0c19kaWUgIkNhbm5vdCBpbml0IGRldmljZSIKKworc2xlZXAgMworCitERVZOQU1FPSQoZ3JlcCBzY3NpX2RlYnVnIC9zeXMvYmxvY2svKi9kZXZpY2UvbW9kZWwgfCBhd2sgLUYgJy8nICd7cHJpbnQgJDR9JykKK1sgIngke0RFVk5BTUV9IiA9PSAieCIgXSAmJiB0c19kaWUgIkNhbm5vdCBmb3VuZCBkZXZpY2UiCisKK0RFVklDRT0iL2Rldi8ke0RFVk5BTUV9IgorCit0c19sb2cgIkNyZWF0ZSBwYXJ0aXRpb25zIgorJFRTX0NNRF9GRElTSyAke0RFVklDRX0gPj4gJFRTX09VVFBVVCAyPiYxIDw8RU9GCitjCit1CituCitwCisxCisKKysxME0KK24KK3AKKzIKKworKzEwTQorbgorcAorMworCisrMTBNCituCitlCisKKworbgorCisrNU0KK24KKworKzVNCituCisKKworcAordworcQorRU9GCisKK3RzX2xvZyAiQWxpZ25tZW50IG9mZnNldHM6IgorY2F0IC9zeXMvYmxvY2svJHtERVZOQU1FfS8ke0RFVk5BTUV9ezEsMiwzLDQsNSw2LDd9L2FsaWdubWVudF9vZmZzZXQgPj4gJFRTX09VVFBVVCAyPiYxCisKK3NsZWVwIDMKK3JtbW9kIHNjc2lfZGVidWcKKworIyByZW1vdmUgZGlzayBJRAorc2VkIC1pIC1lICdzL0Rpc2sgaWRlbnRpZmllcjouKi8vZycgJFRTX09VVFBVVAorc2VkIC1pIC1lICdzL0J1aWxkaW5nIGEgbmV3LiovL2cnICRUU19PVVRQVVQKKwordHNfZmluYWxpemUKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2ZkaXNrL2FsaWduLTUxMi00Sy02MyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2ZkaXNrL2FsaWduLTUxMi00Sy02MwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNTc3ZDc0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZmRpc2svYWxpZ24tNTEyLTRLLTYzCkBAIC0wLDAgKzEsOTEgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKworCisjCisjIFRlc3QgYWxpZ25tZW50IGZvciA1MTIvNTEyIGRpc2sgKndpdGgqIHRvcG9sb2d5IC0tIGFsaWduZWQgdG8gb3B0aW1hbAorIyBJL08gc2l6ZSAoMzJLaUIpCisjCisKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImFsaWduIDUxMi80SyArYWxpZ25tZW50X29mZnNldCIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworbW9kcHJvYmUgLS1kcnktcnVuIC0tcXVpZXQgc2NzaV9kZWJ1ZworWyAiJD8iID09IDAgXSB8fCB0c19za2lwICJtaXNzaW5nIHNjc2lfZGVidWcgbW9kdWxlIgorCitybW1vZCBzY3NpX2RlYnVnICY+IC9kZXYvbnVsbAorbW9kcHJvYmUgc2NzaV9kZWJ1ZyBkZXZfc2l6ZV9tYj01MCBzZWN0b3Jfc2l6ZT01MTIgcGh5c2Jsa19leHA9MyBsb3dlc3RfYWxpZ25lZD03CitbICIkPyIgPT0gMCBdIHx8IHRzX2RpZSAiQ2Fubm90IGluaXQgZGV2aWNlIgorCitzbGVlcCAzCisKK0RFVk5BTUU9JChncmVwIHNjc2lfZGVidWcgL3N5cy9ibG9jay8qL2RldmljZS9tb2RlbCB8IGF3ayAtRiAnLycgJ3twcmludCAkNH0nKQorWyAieCR7REVWTkFNRX0iID09ICJ4IiBdICYmIHRzX2RpZSAiQ2Fubm90IGZvdW5kIGRldmljZSIKKworREVWSUNFPSIvZGV2LyR7REVWTkFNRX0iCisKK3RzX2xvZyAiQ3JlYXRlIHBhcnRpdGlvbnMiCiskVFNfQ01EX0ZESVNLICR7REVWSUNFfSA+PiAkVFNfT1VUUFVUIDI+JjEgPDxFT0YKK2MKK3UKK24KK3AKKzEKKworKzEwTQorbgorcAorMgorCisrMTBNCituCitwCiszCisKKysxME0KK24KK2UKKworCituCisKKys1TQorbgorCisrNU0KK24KKworCitwCit3CitxCitFT0YKKwordHNfbG9nICJBbGlnbm1lbnQgb2Zmc2V0czoiCitjYXQgL3N5cy9ibG9jay8ke0RFVk5BTUV9LyR7REVWTkFNRX17MSwyLDMsNCw1LDYsN30vYWxpZ25tZW50X29mZnNldCA+PiAkVFNfT1VUUFVUIDI+JjEKKworc2xlZXAgMworcm1tb2Qgc2NzaV9kZWJ1ZworCisjIHJlbW92ZSBkaXNrIElECitzZWQgLWkgLWUgJ3MvRGlzayBpZGVudGlmaWVyOi4qLy9nJyAkVFNfT1VUUFVUCitzZWQgLWkgLWUgJ3MvQnVpbGRpbmcgYSBuZXcuKi8vZycgJFRTX09VVFBVVAorCit0c19maW5hbGl6ZQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZmRpc2svYWxpZ24tNTEyLTRLLW1kIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZmRpc2svYWxpZ24tNTEyLTRLLW1kCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxMGJiM2EKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mZGlzay9hbGlnbi01MTItNEstbWQKQEAgLTAsMCArMSwxMDQgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKworCisjCisjIFRlc3QgYWxpZ25tZW50IGZvciA1MTIvNTEyIGRpc2sgKndpdGgqIHRvcG9sb2d5IC0tIGFsaWduZWQgdG8gb3B0aW1hbAorIyBJL08gc2l6ZSAoMzJLaUIpCisjCisKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImFsaWduIDUxMi80SyArTUQiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK21vZHByb2JlIC0tZHJ5LXJ1biAtLXF1aWV0IHNjc2lfZGVidWcKK1sgIiQ/IiA9PSAwIF0gfHwgdHNfc2tpcCAibWlzc2luZyBzY3NpX2RlYnVnIG1vZHVsZSIKK1sgLXggL3NiaW4vbWRhZG0gXSB8fCB0c19za2lwICJtaXNzaW5nIG1kYWRtIgorCitybW1vZCBzY3NpX2RlYnVnICY+IC9kZXYvbnVsbAorbW9kcHJvYmUgc2NzaV9kZWJ1ZyBkZXZfc2l6ZV9tYj01MCBzZWN0b3Jfc2l6ZT01MTIgcGh5c2Jsa19leHA9MworWyAiJD8iID09IDAgXSB8fCB0c19kaWUgIkNhbm5vdCBpbml0IGRldmljZSIKKworc2xlZXAgMworCitERVZOQU1FPSQoZ3JlcCBzY3NpX2RlYnVnIC9zeXMvYmxvY2svKi9kZXZpY2UvbW9kZWwgfCBhd2sgLUYgJy8nICd7cHJpbnQgJDR9JykKK1sgIngke0RFVk5BTUV9IiA9PSAieCIgXSAmJiB0c19kaWUgIkNhbm5vdCBmb3VuZCBkZXZpY2UiCisKK0RFVklDRT0iL2Rldi8ke0RFVk5BTUV9IgorCit0c19sb2cgIkNyZWF0ZSBwYXJ0aXRpb25zIgorJFRTX0NNRF9GRElTSyAke0RFVklDRX0gPj4gJFRTX09VVFBVVCAyPiYxIDw8RU9GCitjCit1CituCitwCisxCisKKysyME0KK24KK3AKKzIKKworCitwCit3CitxCitFT0YKKwordHNfbG9nICJBbGlnbm1lbnQgb2Zmc2V0czoiCitjYXQgL3N5cy9ibG9jay8ke0RFVk5BTUV9LyR7REVWTkFNRX17MSwyfS9hbGlnbm1lbnRfb2Zmc2V0ID4+ICRUU19PVVRQVVQgMj4mMQorCitzbGVlcCAzCitNRF9ERVZOQU1FPW1kOAorTURfREVWSUNFPS9kZXYvJHtNRF9ERVZOQU1FfQorCisvc2Jpbi9tZGFkbSAtcSAtUyAke01EX0RFVklDRX0gJj4gL2Rldi9udWxsCisvc2Jpbi9tZGFkbSAtcSAtLWNyZWF0ZSAke01EX0RFVklDRX0gLS1sZXZlbD0wIC0tcmFpZC1kZXZpY2VzPTIgJHtERVZJQ0V9MSAke0RFVklDRX0yID4+ICRUU19PVVRQVVQgMj4mMQorCit0c19sb2cgIkNyZWF0ZSBwYXJ0aXRpb25zIChNRCkiCiskVFNfQ01EX0ZESVNLICR7TURfREVWSUNFfSA+PiAkVFNfT1VUUFVUIDI+JjEgPDxFT0YKK2MKK3UKK24KK3AKKzEKKworKzEwTQorbgorcAorMgorCisrMTBNCitwCit3CitxCitFT0YKKwordHNfbG9nICJBbGlnbm1lbnQgb2Zmc2V0cyAoTUQpOiIKK2NhdCAvc3lzL2Jsb2NrLyR7TURfREVWTkFNRX0vJHtNRF9ERVZOQU1FfXB7MSwyfS9hbGlnbm1lbnRfb2Zmc2V0ID4+ICRUU19PVVRQVVQgMj4mMQorCitzbGVlcCAzCisvc2Jpbi9tZGFkbSAtcSAtUyAke01EX0RFVklDRX0gPj4gJFRTX09VVFBVVCAyPiYxCitybW1vZCBzY3NpX2RlYnVnCisKKyMgcmVtb3ZlIGRpc2sgSUQKK3NlZCAtaSAtZSAncy9EaXNrIGlkZW50aWZpZXI6LiovL2cnICRUU19PVVRQVVQKK3NlZCAtaSAtZSAncy9CdWlsZGluZyBhIG5ldy4qLy9nJyAkVFNfT1VUUFVUCisKK3RzX2ZpbmFsaXplCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mZGlzay9hbGlnbi01MTItNTEyIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZmRpc2svYWxpZ24tNTEyLTUxMgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOTZlNmE1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZmRpc2svYWxpZ24tNTEyLTUxMgpAQCAtMCwwICsxLDc0IEBACisjIS9iaW4vYmFzaAorCisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisKKyMKKyMgVGVzdCBkZWZhdWx0IDFNaUIgKDIwNDggc2VjdG9ycykgYWxpZ25tZW50IGZvciA1MTIvNTEyIGRpc2sgKndpdGhvdXQqCisjIHRvcG9sb2d5LgorIworCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJhbGlnbiA1MTIvNTEyIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCitERVZJQ0U9JCh0c19kZXZpY2VfaW5pdCA1MCkKK1sgIiQ/IiA9PSAwIF0gfHwgdHNfZGllICJDYW5ub3QgaW5pdCBkZXZpY2UiCisKK3RzX2xvZyAiQ3JlYXRlIHBhcnRpdGlvbnMiCiskVFNfQ01EX0ZESVNLICR7REVWSUNFfSA+PiAkVFNfT1VUUFVUIDI+JjEgPDxFT0YKK2MKK3UKK24KK3AKKzEKKworKzEwTQorbgorcAorMgorCisrMTBNCituCitwCiszCisKKysxME0KK24KK2UKKworCituCisKKys1TQorbgorCisrNU0KK24KKworCitwCitxCitFT0YKKwordHNfZGV2aWNlX2RlaW5pdCAkREVWSUNFCisKKyMgcmVtb3ZlIGRpc2sgSUQKK3NlZCAtaSAtZSAncy9EaXNrIGlkZW50aWZpZXI6LiovL2cnICRUU19PVVRQVVQKK3NlZCAtaSAtZSAncy9CdWlsZGluZyBhIG5ldy4qLy9nJyAkVFNfT1VUUFVUCisKK3RzX2ZpbmFsaXplCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mZGlzay9hbGlnbi01MTItNTEyLXRvcG9sb2d5IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZmRpc2svYWxpZ24tNTEyLTUxMi10b3BvbG9neQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43M2EzMTM2Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZmRpc2svYWxpZ24tNTEyLTUxMi10b3BvbG9neQpAQCAtMCwwICsxLDkxIEBACisjIS9iaW4vYmFzaAorCisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisKKworIworIyBUZXN0IGFsaWdubWVudCBmb3IgNTEyLzUxMiBkaXNrICp3aXRoKiB0b3BvbG9neSAtLSBhbGlnbmVkIHRvIG9wdGltYWwKKyMgSS9PIHNpemUgKDMyS2lCKQorIworCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJhbGlnbiA1MTIvNTEyICt0b3BvbG9neSIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworbW9kcHJvYmUgLS1kcnktcnVuIC0tcXVpZXQgc2NzaV9kZWJ1ZworWyAiJD8iID09IDAgXSB8fCB0c19za2lwICJtaXNzaW5nIHNjc2lfZGVidWcgbW9kdWxlIgorCitybW1vZCBzY3NpX2RlYnVnICY+IC9kZXYvbnVsbAorbW9kcHJvYmUgc2NzaV9kZWJ1ZyBkZXZfc2l6ZV9tYj01MCBzZWN0b3Jfc2l6ZT01MTIKK1sgIiQ/IiA9PSAwIF0gfHwgdHNfZGllICJDYW5ub3QgaW5pdCBkZXZpY2UiCisKK3NsZWVwIDMKKworREVWTkFNRT0kKGdyZXAgc2NzaV9kZWJ1ZyAvc3lzL2Jsb2NrLyovZGV2aWNlL21vZGVsIHwgYXdrIC1GICcvJyAne3ByaW50ICQ0fScpCitbICJ4JHtERVZOQU1FfSIgPT0gIngiIF0gJiYgdHNfZGllICJDYW5ub3QgZm91bmQgZGV2aWNlIgorCitERVZJQ0U9Ii9kZXYvJHtERVZOQU1FfSIKKwordHNfbG9nICJDcmVhdGUgcGFydGl0aW9ucyIKKyRUU19DTURfRkRJU0sgJHtERVZJQ0V9ID4+ICRUU19PVVRQVVQgMj4mMSA8PEVPRgorYwordQorbgorcAorMQorCisrMTBNCituCitwCisyCisKKysxME0KK24KK3AKKzMKKworKzEwTQorbgorZQorCisKK24KKworKzVNCituCisKKys1TQorbgorCisKK3AKK3cKK3EKK0VPRgorCit0c19sb2cgIkFsaWdubWVudCBvZmZzZXRzOiIKK2NhdCAvc3lzL2Jsb2NrLyR7REVWTkFNRX0vJHtERVZOQU1FfXsxLDIsMyw0LDUsNiw3fS9hbGlnbm1lbnRfb2Zmc2V0ID4+ICRUU19PVVRQVVQgMj4mMQorCitzbGVlcCAzCitybW1vZCBzY3NpX2RlYnVnCisKKyMgcmVtb3ZlIGRpc2sgSUQKK3NlZCAtaSAtZSAncy9EaXNrIGlkZW50aWZpZXI6LiovL2cnICRUU19PVVRQVVQKK3NlZCAtaSAtZSAncy9CdWlsZGluZyBhIG5ldy4qLy9nJyAkVFNfT1VUUFVUCisKK3RzX2ZpbmFsaXplCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mZGlzay9kb3NsYWJlbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2ZkaXNrL2Rvc2xhYmVsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2MmNkYWEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mZGlzay9kb3NsYWJlbApAQCAtMCwwICsxLDk5IEBACisjIS9iaW4vYmFzaAorCisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImRvc2xhYmVsIHRlc3RzIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKKworIyBjbWQgdG8gY2hhbmdlIG51bWJlciBvZiBjeWxpbmRlcnMgdG8gMTAyNCBhbmQgY2hhbmdlcyBzeXN0ZW0gaWQgdG8gMHgxCitGRElTS19DTURfSU5JVD0ieFxuY1xuMTAyNFxuaVxuMHgxXG5yXG4iCitGRElTS19DTURfV1JJVEVfQ0xPU0U9IndcbnFcbiIKK0ZESVNLX0NNRF9DUkVBVEVfRE9TTEFCRUw9Im9cbiIgI2NyZWF0ZSBkb3MgbGFiZWwKK0ZESVNLX0NNRF9DUkVBVEVfUFJJTUFSWT0iblxucFxuMVxuXG4rMU1cbiIgIyBjcmVhdGUgcHJpbWFyeSBwYXJ0aXRpb24gMSBvZiBzaXplIDFNQgorRkRJU0tfQ01EX0NIQU5HRV9QQVJUVFlQRT0idFxuYmZcbiIgIyBjaGFuZ2UgcGFydGl0aW9uIHR5cGUgdG8gImJmIC0gc29sYXJpcyIsIHRoaXMgcmVxdWlyZXMgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBwYXJ0aXRpb24gdG8gY2hhbmdlCitGRElTS19DTURfU0VUX0FDVElWRT0iYVxuMVxuIiAjIHNldCBmaXJzdCBwYXJ0aXRpb24gYWN0aXZlCitGRElTS19DTURfQ1JFQVRFX0VYVEVOREVEPSJuXG5lXG4yXG5cbisxMFxuIiAjIGNyZWF0ZSBleHRlbmRlZCBwYXJ0aXRpb24gMiBvZiBzaXplIDExIGN5bGluZGVycworRkRJU0tfQ01EX0NSRUFURV9MT0dJQ0FMPSJuXG5sXG5cbisxXG4iICMgY3JlYXRlIG5leHQgbG9naWNhbCBwYXJ0aXRpb24gb2Ygc2l6ZSAyIGN5bAorRkRJU0tfQ01EX0RFTEVURV9MT0dJQ0FMUz0iZFxuNlxuZFxuNVxuZFxuNlxkNVxuIiAjIGRlbGV0ZSBtaWRkbGUsIGhlYWQsIHRhaWwsIGxhc3QgcGFydGl0aW9ucworRkRJU0tfQ01EX0RFTEVURV9QUklNQVJZPSJkXG4xXG4iICMgZGVsZXRlIGZpcnN0IHByaW1hcnkKK0ZESVNLX0NNRF9ERUxFVEVfRVhURU5ERUQ9ImRcbjJcbiIgIyBkZWxldGUgc2Vjb25kIHByaW1hcnkKKworI3NldCAteCAKKwordHNfbG9nICJJbml0aWFsaXplIGVtcHR5IGltYWdlIgorVEVTVF9JTUFHRV9OQU1FPSQodHNfaW1hZ2VfaW5pdCAxMCkKK3RzX2ltYWdlX21kNXN1bSA+PiAkVFNfT1VUUFVUIDI+JjEKKworIyBuZWVkIHRvIHJ1biBpbml0IHR3aWNlLCB0byBjaGFuZ2Ugc3lzdGVtIElEIGFmdGVyIG5ldyBsYWJlbCwgb3RoZXJ3aXNlIHN5c3RlbQorIyBJRCB3aWxsIGJlIHJhbmRvbSBhbmQgd2lsbCBzY3JldyB1cCBtZDUncwordHNfbG9nICJDcmVhdGUgbmV3IERPUyBwYXJ0aXRpb24gdGFibGUiCitlY2hvIC1lICIke0ZESVNLX0NNRF9JTklUfSR7RkRJU0tfQ01EX0NSRUFURV9ET1NMQUJFTH0ke0ZESVNLX0NNRF9JTklUfSR7RkRJU0tfQ01EX1dSSVRFX0NMT1NFfSIgXAorCSB8ICRUU19DTURfRkRJU0sgJHtURVNUX0lNQUdFX05BTUV9ICY+IC9kZXYvbnVsbAordHNfaW1hZ2VfbWQ1c3VtID4+ICRUU19PVVRQVVQgMj4mMQorCit0c19sb2cgIkNyZWF0ZSBwcmltYXJ5IHBhcnRpdGlvbiIKK2VjaG8gLWUgIiR7RkRJU0tfQ01EX0lOSVR9JHtGRElTS19DTURfQ1JFQVRFX1BSSU1BUll9JHtGRElTS19DTURfV1JJVEVfQ0xPU0V9IiB8IFwKKwkkVFNfQ01EX0ZESVNLICR7VEVTVF9JTUFHRV9OQU1FfSAmPiAvZGV2L251bGwKK3RzX2ltYWdlX21kNXN1bSA+PiAkVFNfT1VUUFVUIDI+JjEKKwordHNfbG9nICJTZXQgcGFydGl0aW9uIHR5cGUiCitlY2hvIC1lICIke0ZESVNLX0NNRF9JTklUfSR7RkRJU0tfQ01EX0NIQU5HRV9QQVJUVFlQRX0ke0ZESVNLX0NNRF9XUklURV9DTE9TRX0iIHwgXAorCSRUU19DTURfRkRJU0sgJHtURVNUX0lNQUdFX05BTUV9ICY+IC9kZXYvbnVsbAordHNfaW1hZ2VfbWQ1c3VtID4+ICRUU19PVVRQVVQgMj4mMQorCit0c19sb2cgIlNldCBwcmltYXJ5IHBhcnRpdGlvbiBhY3RpdmUiCitlY2hvIC1lICIke0ZESVNLX0NNRF9JTklUfSR7RkRJU0tfQ01EX1NFVF9BQ1RJVkV9JHtGRElTS19DTURfV1JJVEVfQ0xPU0V9IiB8IFwKKwkkVFNfQ01EX0ZESVNLICR7VEVTVF9JTUFHRV9OQU1FfSAmPiAvZGV2L251bGwKK3RzX2ltYWdlX21kNXN1bSA+PiAkVFNfT1VUUFVUIDI+JjEKKwordHNfbG9nICJSZS1jcmVhdGUgcHJpbWFyeSBwYXJ0aXRpb24iCitlY2hvIC1lICIke0ZESVNLX0NNRF9JTklUfWRcbiR7RkRJU0tfQ01EX0NSRUFURV9QUklNQVJZfSR7RkRJU0tfQ01EX1dSSVRFX0NMT1NFfSIgfCBcCisJJFRTX0NNRF9GRElTSyAke1RFU1RfSU1BR0VfTkFNRX0gJj4gL2Rldi9udWxsCit0c19pbWFnZV9tZDVzdW0gPj4gJFRTX09VVFBVVCAyPiYxCisKK3RzX2xvZyAiQ3JlYXRlIGV4dGVuZGVkIHBhcnRpdGlvbiIKK2VjaG8gLWUgIiR7RkRJU0tfQ01EX0lOSVR9JHtGRElTS19DTURfQ1JFQVRFX0VYVEVOREVEfSR7RkRJU0tfQ01EX1dSSVRFX0NMT1NFfSIgfCBcCisJJFRTX0NNRF9GRElTSyAke1RFU1RfSU1BR0VfTkFNRX0gJj4gL2Rldi9udWxsCit0c19pbWFnZV9tZDVzdW0gPj4gJFRTX09VVFBVVCAyPiYxCisKK3RzX2xvZyAiQ3JlYXRlIGxvZ2ljYWwgcGFydGl0aW9ucyIKK2VjaG8gLWUgIiR7RkRJU0tfQ01EX0lOSVR9JHtGRElTS19DTURfQ1JFQVRFX0xPR0lDQUx9JHtGRElTS19DTURfQ1JFQVRFX0xPR0lDQUx9JHtGRElTS19DTURfQ1JFQVRFX0xPR0lDQUx9JHtGRElTS19DTURfQ1JFQVRFX0xPR0lDQUx9JHtGRElTS19DTURfV1JJVEVfQ0xPU0V9IiBcCisJfCAkVFNfQ01EX0ZESVNLICR7VEVTVF9JTUFHRV9OQU1FfSAmPiAvZGV2L251bGwKK3RzX2ltYWdlX21kNXN1bSA+PiAkVFNfT1VUUFVUIDI+JjEKKwordHNfbG9nICJEZWxldGUgbG9naWNhbCBwYXJ0aXRpb25zIgorZWNobyAtZSAiJHtGRElTS19DTURfSU5JVH0ke0ZESVNLX0NNRF9ERUxFVEVfTE9HSUNBTFN9JHtGRElTS19DTURfV1JJVEVfQ0xPU0V9IiBcCisJfCAkVFNfQ01EX0ZESVNLICR7VEVTVF9JTUFHRV9OQU1FfSAmPiAvZGV2L251bGwKK3RzX2ltYWdlX21kNXN1bSA+PiAkVFNfT1VUUFVUIDI+JjEKKwordHNfbG9nICJDcmVhdGUgYW5vdGhlciBsb2dpY2FsIHBhcnRpdGlvbiIKK2VjaG8gLWUgIiR7RkRJU0tfQ01EX0lOSVR9JHtGRElTS19DTURfQ1JFQVRFX0xPR0lDQUx9JHtGRElTS19DTURfV1JJVEVfQ0xPU0V9IiBcCisJfCAkVFNfQ01EX0ZESVNLICR7VEVTVF9JTUFHRV9OQU1FfSAmPiAvZGV2L251bGwKK3RzX2ltYWdlX21kNXN1bSA+PiAkVFNfT1VUUFVUIDI+JjEKKwordHNfbG9nICJEZWxldGUgcHJpbWFyeSBwYXJ0aXRpb24iCitlY2hvIC1lICIke0ZESVNLX0NNRF9JTklUfSR7RkRJU0tfQ01EX0RFTEVURV9QUklNQVJZfSR7RkRJU0tfQ01EX1dSSVRFX0NMT1NFfSIgXAorCXwgJFRTX0NNRF9GRElTSyAke1RFU1RfSU1BR0VfTkFNRX0gJj4gL2Rldi9udWxsCit0c19pbWFnZV9tZDVzdW0gPj4gJFRTX09VVFBVVCAyPiYxCisKK3RzX2xvZyAiRGVsZXRlIGV4dGVuZGVkIHBhcnRpdGlvbiIKK2VjaG8gLWUgIiR7RkRJU0tfQ01EX0lOSVR9JHtGRElTS19DTURfREVMRVRFX0VYVEVOREVEfSR7RkRJU0tfQ01EX1dSSVRFX0NMT1NFfSIgXAorCXwgJFRTX0NNRF9GRElTSyAke1RFU1RfSU1BR0VfTkFNRX0gJj4gL2Rldi9udWxsCit0c19pbWFnZV9tZDVzdW0gPj4gJFRTX09VVFBVVCAyPiYxCisKK3RzX2ZpbmFsaXplCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mZGlzay9vZGRpbnB1dCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2ZkaXNrL29kZGlucHV0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlkNWM0NzYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mZGlzay9vZGRpbnB1dApAQCAtMCwwICsxLDM5IEBACisjIS9iaW4vYmFzaAorCisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImludmFsaWQgaW5wdXQgdGVzdHMiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgorCisjc2V0IC14CisKK3RzX2xvZyAiSW5pdGlhbGl6ZSBlbXB0eSBpbWFnZSIKK1RFU1RfSU1BR0VfTkFNRT0kKHRzX2ltYWdlX2luaXQgMTApCit0c19pbWFnZV9tZDVzdW0gPj4gJFRTX09VVFBVVCAyPiYxCisKK3RzX2xvZyAiRW1wdHkgaW1hZ2UgbGlzdGluZyIgIyB0aGlzIHNob3VsZCByZXBvcnQgZW1wdHkgcGFydGl0aW9uIHRhYmxlCisjIFRFU1RfSU1BR0VfTkFNRSBoYXMgYWJzb2x1dGUgcGF0aCwgYW5kIGlzIGJ5IGRlZmluaXRpb24gZGlmZmVyZW50IG9uIGVhY2ggY29tcHV0ZXIsIHdlIG5lZWQgdG8gc2VkIGl0IGF3YXkKKyRUU19DTURfRkRJU0sgLWwgJHtURVNUX0lNQUdFX05BTUV9IDI+JjEgfCBzZWQgLWUgInMvJHtURVNUX0lNQUdFX05BTUUvL1wvL1xcL30vdGVzdGltYWdlLyIgPj4gJFRTX09VVFBVVAorCit0c19sb2cgIk5vbmV4aXN0YW50IGZpbGUiICMgdGhpcyBvcmlnaW5hbGx5IGRvZXMgYWJzb2x1dGVseSBub3RoaW5nCiskVFNfQ01EX0ZESVNLIC1sIF9hX2ZpbGVfdGhhdF9kb2VzX25vdF9leGlzdF8gPj4gJFRTX09VVFBVVCAyPiYxCisKK3RzX2xvZyAiVG9vIHNtYWxsIGZpbGUiICMgc2FtZSBoZXJlCiskVFNfQ01EX0ZESVNLIC1sICRUU19UT1BESVIvZXhwZWN0ZWQvZmRpc2svb2RkaW5wdXQudG9vc21hbGwgPj4gJFRTX09VVFBVVCAyPiYxCisKK3RzX2ZpbmFsaXplCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mZGlzay9zdW5sYWJlbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2ZkaXNrL3N1bmxhYmVsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZiZjdlMGUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mZGlzay9zdW5sYWJlbApAQCAtMCwwICsxLDc0IEBACisjIS9iaW4vYmFzaAorCisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9InN1bmxhYmVsIHRlc3RzIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKKworRkRJU0tfQ01EX0lOSVQ9InNcbjFcbjFcbjEwMjRcbiIgIyBjcmVhdGUgbmV3IHN1bmxhYmVsCitGRElTS19DTURfV1JJVEVfQ0xPU0U9IndcbnFcbiIKK0ZESVNLX0NNRF9ERUxFVEVBTEw9ImRcbjFcbmRcbjJcbmRcbjNcbmRcbjRcbmRcbjVcbmRcbjZcbmRcbjdcbmRcbjhcbiIgIyBkZWxldGUgYWxsIHBhcnRpdGlvbnMKKworRkRJU0tfQ01EX0NSRUFURV9QUklNQVJZPSJuXG4xXG4wXG4xMjhcbiIgIyBjcmVhdGUgZmlyc3QgcGFydGl0aW9uLCBjeWxpbmRlcnMgMCB0aHJvdWdoIDEyOAorRkRJU0tfQ01EX1RPR0dMRV9SRUFET05MWT0iYVxuMVxuIiAjIHNldHMgZmlyc3QgcGFydGl0aW9uIGFzIHJlYWQtb25seQorRkRJU0tfQ01EX1RPR0dMRV9NT1VOVEFCTEU9ImNcbjFcbiIgIyBzZXRzIGZpcnN0IHBhcnRpdGlvbiBhcyBtb3VudGFibGUKK0ZESVNLX0NNRF9DSEFOR0VfU1lTSUQ9InRcbjFcbjRcbiIgIyBjaGFuZ2VzIHN5c2lkIHRvIDQgKFN1bk9TIHVzcikKK0ZESVNLX0NNRF9DUkVBVEVfU0VDT05EQVJZPSJuXG4yXG4xMjhcblxuIiAjIGNyZWF0ZSBzZWNvbmRhcnkgcGFydGl0aW9uIGN5bGluZGVycyAxMjggdG8gdGhlIGVuZCBvZiBkaXNrCisKKyNzZXQgLXgKKwordHNfbG9nICJJbml0aWFsaXplIGVtcHR5IGltYWdlIgorVEVTVF9JTUFHRV9OQU1FPSQodHNfaW1hZ2VfaW5pdCAxMCkKK3RzX2ltYWdlX21kNXN1bSA+PiAkVFNfT1VUUFVUIDI+JjEKKwordHNfbG9nICJDcmVhdGUgbmV3IFNVTiBwYXJ0aXRpb24gdGFibGUiCitlY2hvIC1lICIke0ZESVNLX0NNRF9JTklUfSR7RkRJU0tfQ01EX0RFTEVURUFMTH0ke0ZESVNLX0NNRF9XUklURV9DTE9TRX0iIFwKKwkgfCAkVFNfQ01EX0ZESVNLICR7VEVTVF9JTUFHRV9OQU1FfSAmPiAvZGV2L251bGwKK3RzX2ltYWdlX21kNXN1bSA+PiAkVFNfT1VUUFVUIDI+JjEKKwordHNfbG9nICJDcmVhdGUgZmlyc3QgcGFydGl0aW9uIgorZWNobyAtZSAiJHtGRElTS19DTURfQ1JFQVRFX1BSSU1BUll9JHtGRElTS19DTURfV1JJVEVfQ0xPU0V9IiB8IFwKKwkkVFNfQ01EX0ZESVNLICR7VEVTVF9JTUFHRV9OQU1FfSAmPiAvZGV2L251bGwKK3RzX2ltYWdlX21kNXN1bSA+PiAkVFNfT1VUUFVUIDI+JjEKKwordHNfbG9nICJTZXQgcGFydGl0aW9uIHN5c2lkIgorZWNobyAtZSAiJHtGRElTS19DTURfQ0hBTkdFX1NZU0lEfSR7RkRJU0tfQ01EX1dSSVRFX0NMT1NFfSIgfCBcCisJJFRTX0NNRF9GRElTSyAke1RFU1RfSU1BR0VfTkFNRX0gJj4gL2Rldi9udWxsCit0c19pbWFnZV9tZDVzdW0gPj4gJFRTX09VVFBVVCAyPiYxCisKK3RzX2xvZyAiU2V0IGZpcnN0IHBhcnRpdGlvbiByZWFkb25seSIKK2VjaG8gLWUgIiR7RkRJU0tfQ01EX1RPR0dMRV9SRUFET05MWX0ke0ZESVNLX0NNRF9XUklURV9DTE9TRX0iIHwgXAorCSRUU19DTURfRkRJU0sgJHtURVNUX0lNQUdFX05BTUV9ICY+IC9kZXYvbnVsbAordHNfaW1hZ2VfbWQ1c3VtID4+ICRUU19PVVRQVVQgMj4mMQorCit0c19sb2cgIlNldCBmaXJzdCBwYXJ0aXRpb24gbW91bnRhYmxlIgorZWNobyAtZSAiJHtGRElTS19DTURfVE9HR0xFX01PVU5UQUJMRX0ke0ZESVNLX0NNRF9XUklURV9DTE9TRX0iIHwgXAorCSRUU19DTURfRkRJU0sgJHtURVNUX0lNQUdFX05BTUV9ICY+IC9kZXYvbnVsbAordHNfaW1hZ2VfbWQ1c3VtID4+ICRUU19PVVRQVVQgMj4mMQorCit0c19sb2cgIkNyZWF0ZSBzZWNvbmQgcGFydGl0aW9uIgorZWNobyAtZSAiJHtGRElTS19DTURfQ1JFQVRFX1NFQ09OREFSWX0ke0ZESVNLX0NNRF9XUklURV9DTE9TRX0iIHwgXAorCSRUU19DTURfRkRJU0sgJHtURVNUX0lNQUdFX05BTUV9ICY+IC9kZXYvbnVsbAordHNfaW1hZ2VfbWQ1c3VtID4+ICRUU19PVVRQVVQgMj4mMQorCit0c19sb2cgIkRlbGV0ZSBhbGwgcGFydGl0aW9ucyIKK2VjaG8gLWUgIiR7RkRJU0tfQ01EX0RFTEVURUFMTH0ke0ZESVNLX0NNRF9XUklURV9DTE9TRX0iIHwgXAorCSRUU19DTURfRkRJU0sgJHtURVNUX0lNQUdFX05BTUV9ICY+IC9kZXYvbnVsbAordHNfaW1hZ2VfbWQ1c3VtID4+ICRUU19PVVRQVVQgMj4mMQorCit0c19maW5hbGl6ZQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZnNjay9pc21vdW50ZWQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9mc2NrL2lzbW91bnRlZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZjA0OWY3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvZnNjay9pc21vdW50ZWQKQEAgLTAsMCArMSw0NSBAQAorIyEvYmluL2Jhc2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iaXMgbW91bnRlZCIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworc2V0IC1vIHBpcGVmYWlsCisKKz4gJFRTX09VVFBVVAorCitERVZJQ0U9JCh0c19kZXZpY2VfaW5pdCkKK1sgIiQ/IiA9PSAwIF0gfHwgdHNfZGllICJDYW5ub3QgaW5pdCBkZXZpY2UiCisKK21rZnMuZXh0MyAkREVWSUNFICY+IC9kZXYvbnVsbCB8fCB0c19kaWUgIkNhbm5vdCBtYWtlIGV4dDMgb24gJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfaGFzICJUWVBFIiAiZXh0MyIgJERFVklDRSB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCBleHQzIG9uICRERVZJQ0UiICRERVZJQ0UKKworWyAtZCAiJFRTX01PVU5UUE9JTlQiIF0gfHwgbWtkaXIgLXAgJFRTX01PVU5UUE9JTlQKKworJFRTX0NNRF9NT1VOVCAkREVWSUNFICRUU19NT1VOVFBPSU5UID4+ICRUU19PVVRQVVQgMj4mMQorCisjIHRlc3QgYnkgaXNtb3VudGVkLmMKKyRUU19IRUxQRVJfSVNNT1VOVEVEICRERVZJQ0UgfCBhd2sgJ3twcmludCAkMX0nID4+ICRUU19PVVRQVVQgMj4mMQorCiskVFNfQ01EX1VNT1VOVCAkREVWSUNFIHx8IHRzX2RpZSAiQ2Fubm90IHVtb3VudCAkREVWSUNFIiAkREVWSUNFCisKK3RzX2RldmljZV9kZWluaXQgJERFVklDRQordHNfZmluYWxpemUKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2h3Y2xvY2svc3lzdG9oYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2h3Y2xvY2svc3lzdG9oYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MTNjMWZlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvaHdjbG9jay9zeXN0b2hjCkBAIC0wLDAgKzEsNTcgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9InN5c3RlbSB0byBodyIKK05UUF9TRVJWRVI9IjAuZmVkb3JhLnBvb2wubnRwLm9yZyIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworWyAteCAiL3Vzci9zYmluL250cGRhdGUiIF0gfHwgdHNfc2tpcCAiY2Fubm90IGZvdW5kIG50cGRhdGUgY29tbWFuZCIKKworc2V0IC1vIHBpcGVmYWlsCisKKyMgc3luYyB3aXRoIHNlcnZlcgorKG50cGRhdGUgJE5UUF9TRVJWRVIgfCBzZWQgInMvXi4qb2Zmc2V0IFwoWzAtOS5dKlwpIHNlYy9cMS9nIikgJj4gL2Rldi9udWxsCitbICIkPyIgPT0gIjEiIF0gJiYgdHNfc2tpcCAiY2Fubm90IHN5bmMgd2l0aCAkTlRQX1NFUlZFUiIKKworIyBzeW5jIGFnYWluIGFuZCBjaGVjayBkaWZmZXJlbmNlCitPRkZTRVQ9JCggbnRwZGF0ZSAkTlRQX1NFUlZFUiAyPiAvZGV2L251bGwgfCBzZWQgInMvXi4qb2Zmc2V0IFtcLV0qXChbMC05Ll0qXCkgc2VjL1wxL2ciICkKK1sgIiQ/IiA9PSAiMSIgXSAmJiB0c19za2lwICJjYW5ub3Qgc3luYyB3aXRoICROVFBfU0VSVkVSICgybmQgYXR0ZW1wdCkiCisKK0RJRkY9JCggZWNobyAiJE9GRlNFVCA+IDEiIHwgYmMgKQorWyAiJERJRkYiID09ICIxIiBdICYmIHRzX3NraXAgImRpZmYgYmV0d2VlbiBzeXN0aW1lIGFuZCBOVFAgaXMgZ3JlYXRlZCB0aGFuIDEgc2Vjb25kIgorCisjIGNhbGwgaHdjbG9jaworZm9yIGkgaW4gYHNlcSAwIDEwYDsgZG8KKwkjZWNobyAic3luYyAjJGkiCisJJFRTX0NNRF9IV0NMT0NLIC0tc3lzdG9oYworCSRUU19DTURfSFdDTE9DSyAtLWhjdG9zeXMKK2RvbmUKKworIyBzeW5jIHdpdGggTlRQIGFuZCBjaGVjayBuZXcgZGlmZmVyZW5jZQorT0ZGU0VUPSQoIG50cGRhdGUgJE5UUF9TRVJWRVIgMj4gL2Rldi9udWxsIHwgc2VkICJzL14uKm9mZnNldCBbXC1dKlwoWzAtOS5dKlwpIHNlYy9cMS9nIiApCitbICIkPyIgPT0gIjEiIF0gJiYgdHNfc2tpcCAiY2Fubm90IHN5bmMgd2l0aCAkTlRQX1NFUlZFUiAoM3JkIGF0dGVtcHQpIgorCitESUZGPSQoIGVjaG8gIiRPRkZTRVQgPiAxIiB8IGJjICkKK1sgIiRESUZGIiA9PSAiMSIgXSAmJiB0c19mYWlsZWQgIm9mZnNldCBpcyAkT0ZGU0VUIgorCit0c19vayAib2Zmc2V0IGlzICRPRkZTRVQiCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2lwY3MvZnVuY3Rpb25zLnNoIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvaXBjcy9mdW5jdGlvbnMuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc0MmQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2lwY3MvZnVuY3Rpb25zLnNoCkBAIC0wLDAgKzEsODMgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworCitQQUdFX1NJWkU9JCgkVFNfSEVMUEVSX1NZU0lORk8gcGFnZXNpemUpCisKKyMga2VybmVsIGZpbGVzCitJUENTX1BST0NGSUxFUz0oCisJL3Byb2Mvc3lzL2tlcm5lbC9zaG1tbmkKKwkvcHJvYy9zeXMva2VybmVsL3NobWFsbAorCS9wcm9jL3N5cy9rZXJuZWwvc2htbWF4CispCisKKyMgcmF3IGRhdGEgY29udmVydGVkIHRvIGlwY3MtbGlrZSBmb3JtYXQKKyMJc2htbW5pID0gc2FtZQorIwlzaG1hbGwgPSBmcm9tIHBhZ2VzIHRvIEtCeXRlcworIwlzaG1tYXggPSBmcm9tIGJ5dGVzIHRvIEtCeXRlcworIworSVBDU19LRVJORUxfQ01EPSgKKwkiY2F0IC9wcm9jL3N5cy9rZXJuZWwvc2htbW5pIgorCSJlY2hvIFwkKGNhdCAvcHJvYy9zeXMva2VybmVsL3NobWFsbCkgLyAxMDI0IFwqICRQQUdFX1NJWkUgfCBiYyAtbCB8IHNlZCAncy9cLi4qLy8nIgorCSJlY2hvIFwkKGNhdCAvcHJvYy9zeXMva2VybmVsL3NobW1heCkgLyAxMDI0IHwgYmMgLWwgfCBzZWQgJ3MvXC4uKi8vJyIKKykKKworIyBkYXRhIGZyb20gdGhlIGlwY3MgY29tbWFuZAorSVBDU19DTUQ9KAorCSIkVFNfQ01EX0lQQ1MgLW0gLWwgfCBhd2sgJy9tYXggbnVtYmVyIG9mIHNlZ21lbnRzLyB7IHByaW50IFwkNiB9JyIKKwkiJFRTX0NNRF9JUENTIC1tIC1sIHwgYXdrICcvbWF4IHRvdGFsIHNoYXJlZCBtZW1vcnkvIHsgcHJpbnQgXCQ3IH0nIgorCSIkVFNfQ01EX0lQQ1MgLW0gLWwgfCBhd2sgJy9tYXggc2VnIHNpemUvIHsgcHJpbnQgXCQ2IH0nIgorKQorCisKKyMgVGhlIGxpbnV4IGtlcm5lbCBhY2NlcHRzIFVMT05HX01BWCwgYnV0IHRoaXMgdmFsdWUgaXMgc2FtZSBsaWtlIFVMTE9OR19NQVggb24KKyMgNjQtYml0IGFyY2hzLiBTbyB0aGUgaXBjcyBjb21tYW5kIGhhcyB0byBhbHdheXMgb3ZlcmZsb3cgb24gNjQtYml0IGFyY2hzIHdoZW4KKyMgc2htYWxsICg9bnVtIG9mIHBhZ2VzISkgaXMgc2FtZSBvciBhbG1vc3Qgc2FtZSBsaWtlIFVMT05HX01BWC4gVGhpcyBpcyByZWFzb24KKyMgd2h5IHdlIGZvciB0aGUgdGVzdCB1c2VzIDMyLWJpdCBsaW1pdHMgb24gYWxsIGFyY2hzLgorIworIyAoRG9uJ3Qgd29ycnkgdGhhdCA2NC1iaXQgVUxPTkdfTUFYIG1ha2VzIGlwY3MgdXNlbGVzcyAuLi4KKyMgIC4uLiBpdCdzIGEgcHJvYmxlbSBmb3IgYWRtaW5zIHdobyB3YW50IHRvIHVzZSA3NTU1Nzg2MzcyNVRCIG9mIFJBTSBmb3Igc2htKQorIworSVBDU19MSU1JVFM9KAorCSQoJFRTX0hFTFBFUl9TWVNJTkZPIElOVF9NQVgpCisJJCgkVFNfSEVMUEVSX1NZU0lORk8gVUxPTkdfTUFYMzIpCisJJCgkVFNfSEVMUEVSX1NZU0lORk8gVUxPTkdfTUFYMzIpCispCisKKyMgbGlzdCBvZiBpbmRleGVzID0gMC4uKHNpemVvZiBBcnJheSAtIDEpCitJUENTX0lEWD0kKHNlcSAwICQoKCAkeyNJUENTX1BST0NGSUxFU1sqXX0gLSAxICkpKQorCisjIGNoZWNrZXIKK2Z1bmN0aW9uIGlwY3NfbGltaXRzX2NoZWNrIHsKKwlmb3IgaSBpbiAkSVBDU19JRFg7IGRvCisJCWVjaG8gLW4gJHtJUENTX1BST0NGSUxFU1skaV19CisKKwkJYT0kKGV2YWwgJHtJUENTX0tFUk5FTF9DTURbJGldfSkKKwkJYj0kKGV2YWwgJHtJUENTX0NNRFskaV19KQorCisJCSNlY2hvIC1uICIgUkFXOiAiCisJCSNjYXQgJHtJUENTX1BST0NGSUxFU1skaV19CisJCSNlY2hvICJDTUQ6ICR7SUNQU19LRVJORUxfQ01EWyRpXX0iCisKKwkJaWYgWyB4IiRhIiA9PSB4IiRiIiBdOyB0aGVuCisJCQllY2hvICIgT0siCisJCWVsc2UKKwkJCWVjaG8gIiBrZXJuZWw9JGEsIGlwY3M9JGIiCisJCWZpCisJZG9uZQorfQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9pcGNzL2hlYWRlcnMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9pcGNzL2hlYWRlcnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTNiYzNkMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2lwY3MvaGVhZGVycwpAQCAtMCwwICsxLDU4IEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImhlYWRlcnMiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgorCit0c19sb2cgInRlc3Q6IHNobSBoZWFkZXJzIgorJFRTX0NNRF9JUENTIC1tIC10IHwgZ3JlcCAtLWFmdGVyLWNvbnRleHQ9MSAiXi0tLSIgID4+ICRUU19PVVRQVVQKKyRUU19DTURfSVBDUyAtbSAtcCB8IGdyZXAgLS1hZnRlci1jb250ZXh0PTEgIl4tLS0iICA+PiAkVFNfT1VUUFVUCiskVFNfQ01EX0lQQ1MgLW0gLWMgfCBncmVwIC0tYWZ0ZXItY29udGV4dD0xICJeLS0tIiAgPj4gJFRTX09VVFBVVAorJFRTX0NNRF9JUENTIC1tIC1sIHwgZ3JlcCAiXi0tLSIgID4+ICRUU19PVVRQVVQKKyRUU19DTURfSVBDUyAtbSAtdSB8IGdyZXAgIl4tLS0iICA+PiAkVFNfT1VUUFVUCitlY2hvID4+ICRUU19PVVRQVVQKKwordHNfbG9nICJ0ZXN0OiBtZXNnIGhlYWRlcnMiCiskVFNfQ01EX0lQQ1MgLXEgLXQgfCBncmVwIC0tYWZ0ZXItY29udGV4dD0xICJeLS0tIiAgPj4gJFRTX09VVFBVVAorJFRTX0NNRF9JUENTIC1xIC1wIHwgZ3JlcCAtLWFmdGVyLWNvbnRleHQ9MSAiXi0tLSIgID4+ICRUU19PVVRQVVQKKyRUU19DTURfSVBDUyAtcSAtYyB8IGdyZXAgLS1hZnRlci1jb250ZXh0PTEgIl4tLS0iICA+PiAkVFNfT1VUUFVUCiskVFNfQ01EX0lQQ1MgLXEgLWwgfCBncmVwICAiXi0tLSIgID4+ICRUU19PVVRQVVQKKyRUU19DTURfSVBDUyAtcSAtdSB8IGdyZXAgICJeLS0tIiAgPj4gJFRTX09VVFBVVAorZWNobyA+PiAkVFNfT1VUUFVUCisKK3RzX2xvZyAidGVzdDogc2VtIGhlYWRlcnMiCiskVFNfQ01EX0lQQ1MgLXMgLXQgfCBncmVwIC0tYWZ0ZXItY29udGV4dD0xICJeLS0tIiAgPj4gJFRTX09VVFBVVAorJFRTX0NNRF9JUENTIC1zIC1wIHwgZ3JlcCAtLWFmdGVyLWNvbnRleHQ9MSAiXi0tLSIgID4+ICRUU19PVVRQVVQKKyRUU19DTURfSVBDUyAtcyAtYyB8IGdyZXAgLS1hZnRlci1jb250ZXh0PTEgIl4tLS0iICA+PiAkVFNfT1VUUFVUCiskVFNfQ01EX0lQQ1MgLXMgLWwgfCBncmVwICAiXi0tLSIgID4+ICRUU19PVVRQVVQKKyRUU19DTURfSVBDUyAtcyAtdSB8IGdyZXAgICJeLS0tIiAgPj4gJFRTX09VVFBVVAorZWNobyA+PiAkVFNfT1VUUFVUCisKK3RzX2xvZyAidGVzdDogYWxsIGhlYWRlcnMiCiskVFNfQ01EX0lQQ1MgLWEgfCBncmVwIC0tYWZ0ZXItY29udGV4dD0xICJeLS0tIiAgPj4gJFRTX09VVFBVVAorCiskVFNfQ01EX0lQQ1MgLWEgLXQgfCBncmVwIC0tYWZ0ZXItY29udGV4dD0xICJeLS0tIiAgPj4gJFRTX09VVFBVVAorJFRTX0NNRF9JUENTIC1hIC1wIHwgZ3JlcCAtLWFmdGVyLWNvbnRleHQ9MSAiXi0tLSIgID4+ICRUU19PVVRQVVQKKyRUU19DTURfSVBDUyAtYSAtYyB8IGdyZXAgLS1hZnRlci1jb250ZXh0PTEgIl4tLS0iICA+PiAkVFNfT1VUUFVUCiskVFNfQ01EX0lQQ1MgLWEgLWwgfCBncmVwICJeLS0tIiAgPj4gJFRTX09VVFBVVAorJFRTX0NNRF9JUENTIC1hIC11IHwgZ3JlcCAiXi0tLSIgID4+ICRUU19PVVRQVVQKKwordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvaXBjcy9saW1pdHMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9pcGNzL2xpbWl0cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNGVmYjljCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvaXBjcy9saW1pdHMKQEAgLTAsMCArMSw1MSBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImxpbWl0cyBvdmVyZmxvdyIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAorCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCisuICRUU19TRUxGL2Z1bmN0aW9ucy5zaAorCit0c19sb2cgImxvYWQgb3JpZ2luYWwgdmFsdWVzIgorZm9yIGkgaW4gJElQQ1NfSURYOyBkbworCVNITV9PUkdbJGldPSQoY2F0ICR7SVBDU19QUk9DRklMRVNbJGldfSkKK2RvbmUgPj4gJFRTX09VVFBVVAorCit0c19sb2cgImNoZWNrIGZvciBkaWZmZXJlbmNlIGJldHdlZW4ga2VybmVsIGFuZCBJUEMiCitpcGNzX2xpbWl0c19jaGVjayA+PiAkVFNfT1VUUFVUCisKK3RzX2xvZyAibWF4aW1hbGl6ZSBrZXJuZWwgc2V0dGluZyIKK2ZvciBpIGluICRJUENTX0lEWDsgZG8KKwllY2hvICR7SVBDU19MSU1JVFNbJGldfSA+PiAke0lQQ1NfUFJPQ0ZJTEVTWyRpXX0KK2RvbmUgPj4gJFRTX09VVFBVVAorCit0c19sb2cgInJlLWNoZWNrIGZvciBkaWZmZXJlbmNlIGJldHdlZW4ga2VybmVsIGFuZCBJUEMiCitpcGNzX2xpbWl0c19jaGVjayA+PiAkVFNfT1VUUFVUCisKK3RzX2xvZyAid3JpdGUgb3JpZ2luYWwgdmFsdWVzIHRvIGtlcm5lbCIKK2ZvciBpIGluICRJUENTX0lEWDsgZG8KKwllY2hvICR7U0hNX09SR1skaV19ID4+ICR7SVBDU19QUk9DRklMRVNbJGldfQorZG9uZSA+PiAkVFNfT1VUUFVUCisKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2lwY3MvbGltaXRzMiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2lwY3MvbGltaXRzMgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYjJjYTJiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvaXBjcy9saW1pdHMyCkBAIC0wLDAgKzEsMzEgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJiYXNpYyBsaW1pdHMiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgorCisuICRUU19TRUxGL2Z1bmN0aW9ucy5zaAorCit0c19sb2cgImNoZWNrIGZvciBkaWZmZXJlbmNlIGJldHdlZW4ga2VybmVsIGFuZCBJUEMiCitpcGNzX2xpbWl0c19jaGVjayA+PiAkVFNfT1VUUFVUCisKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xvZ2luL2NoZWNrdHR5IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbG9naW4vY2hlY2t0dHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDE5ZmIwMgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xvZ2luL2NoZWNrdHR5CkBAIC0wLDAgKzEsMjYgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iY2hlY2t0dHkiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgorCiskVFNfQ01EX0NIRUNLVFRZICA+PiAkVFNfT1VUUFVUCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sb2dpbi9pc2xvY2FsIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbG9naW4vaXNsb2NhbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNTM0ZjdlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbG9naW4vaXNsb2NhbApAQCAtMCwwICsxLDI3IEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwOCBKYW1lcyBZb3VuZ21hbiA8amF5QGdudS5vcmc+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJpc2xvY2FsIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKKworJFRTX0NNRF9JU0xPQ0FMICIkVFNfU0VMRi9pc2xvY2FsLmRhdGEiIHJvb3Qgbm9ib2R5ICIiIHlvdW5nbWFuIHlvdW5nbWFuMiBcCisgICAgYWJjZGVmZ2h4IG5vYm8gbG9uZyByb3QgYWwgbWFsZm9ybWVkIFwKKyAgICBub25sIHpub2JvZHkgPj4gJFRTX09VVFBVVAordHNfZmluYWxpemUKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xvZ2luL2lzbG9jYWwuZGF0YSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xvZ2luL2lzbG9jYWwuZGF0YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTZhOGE5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbG9naW4vaXNsb2NhbC5kYXRhCkBAIC0wLDAgKzEsMTAgQEAKK3Jvb3Q6eDowOjA6cm9vdDovcm9vdDovYmluL2Jhc2gKK3N5czp4OjM6MzpzeXM6L2RldjovYmluL3NoCitvcmFjOng6MzM6MzM6c3lzOi9kZXY6L2Jpbi95b3VuZ21hbgorbG9uZzp4OjQ6NDpmb286L2hvbWUvbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbm5uZ2dnOi9iaW4vc2gKK2FsOng6NTo1OmZub3JkOi9kZXY6L2Jpbi9zaAorYWJjZGVmZ2g6eDo2OjM6Zm5vcmQ6L2RldjovYmluL3NoCittYWxmb3JtZWQKKworbm9ib2R5Ong6NjU1MzQ6NjU1MzQ6bm9ib2R5Oi9ub25leGlzdGVudDovYmluL3NoCitub25sOng6NjU1MzI6NjU1MzI6bm8gbmV3bGluZTovOi9iaW4vZmFsc2UKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xvb2svc2VwYXJhdG9yIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbG9vay9zZXBhcmF0b3IKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTNjZjljNwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xvb2svc2VwYXJhdG9yCkBAIC0wLDAgKzEsNDEgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworCisjCisjIFdBUk5JTkc6IHRoZSBsb29rIGNvbW1hbmQgZXhwZWN0cyB0aGF0IHRoZSAvdXNyL3NoYXJlL2RpY3Qvd29yZHMgdXNlcworIyAgICAgICAgICBkaXJlY3Rvcnkgb3JkZXIhCisjCisjIGZvciBleGFtcGxlOgorIworIwljYXQgd29yZHMucmF3IHwgZWdyZXAgLS1pbnZlcnQtbWF0Y2ggIidzJCIgfCBcCisjCQllZ3JlcCAgIl5bWzphbG51bTpdJyYhLC4vLV0rJCIgfCBcCisjCQlzb3J0IC0taWdub3JlLWNhc2UgLS1kaWN0aW9uYXJ5LW9yZGVyIHwgXAorIwkJdW5pcSA+ICB3b3JkcworIworCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJzZXBhcmF0b3IiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgorCitbIC1mICIvdXNyL3NoYXJlL2RpY3Qvd29yZHMiIF0gfHwgdHNfc2tpcCAiL3Vzci9zaGFyZS9kaWN0L3dvcmRzIG5vdCBzdWNoIGZpbGUiCisKKyRUU19DTURfTE9PSyBhcHBsZS1waWUgPj4gJFRTX09VVFBVVAordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaTM4Ni1hbWRzaGFuZ2hhaS50YXIuZ3ogYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9kdW1wcy9pMzg2LWFtZHNoYW5naGFpLnRhci5negpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTljMjJiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaTM4Ni1hbWRzaGFuZ2hhaS50YXIuZ3oKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaTM4Ni1kZWxscGU3MDAudGFyLmd6IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaTM4Ni1kZWxscGU3MDAudGFyLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExOGE3NzkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9kdW1wcy9pMzg2LWRlbGxwZTcwMC50YXIuZ3oKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaTM4Ni1pbnRlbHM1MDAwcGhiLnRhci5neiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xzY3B1L2R1bXBzL2kzODYtaW50ZWxzNTAwMHBoYi50YXIuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZjOTgxMQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xzY3B1L2R1bXBzL2kzODYtaW50ZWxzNTAwMHBoYi50YXIuZ3oKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaWE2NC1ocG1hdHRlcmhvcm4udGFyLmd6IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaWE2NC1ocG1hdHRlcmhvcm4udGFyLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1ZjE1MTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9kdW1wcy9pYTY0LWhwbWF0dGVyaG9ybi50YXIuZ3oKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaWE2NC1ocHJ4MTYyMC50YXIuZ3ogYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9kdW1wcy9pYTY0LWhwcngxNjIwLnRhci5negpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2JjYjE3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaWE2NC1ocHJ4MTYyMC50YXIuZ3oKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaWE2NC1wZzAudGFyLmd6IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMvaWE2NC1wZzAudGFyLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzMGQ3OTIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9kdW1wcy9pYTY0LXBnMC50YXIuZ3oKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMveDg2XzY0LWhwZGw1ODUudGFyLmd6IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMveDg2XzY0LWhwZGw1ODUudGFyLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5NzkwYjcKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9kdW1wcy94ODZfNjQtaHBkbDU4NS50YXIuZ3oKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMveDg2XzY0LWlibWUzMjZtLnRhci5neiBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xzY3B1L2R1bXBzL3g4Nl82NC1pYm1lMzI2bS50YXIuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFmZjUyZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xzY3B1L2R1bXBzL3g4Nl82NC1pYm1lMzI2bS50YXIuZ3oKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMveDg2XzY0LW5lY2VtMTQudGFyLmd6IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvZHVtcHMveDg2XzY0LW5lY2VtMTQudGFyLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwZWQzNWYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9kdW1wcy94ODZfNjQtbmVjZW0xNC50YXIuZ3oKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvbHNjcHUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9sc2NwdQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYzdmMmE0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbHNjcHUvbHNjcHUKQEAgLTAsMCArMSw0NyBAQAorIyEvYmluL2Jhc2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA4IENhaSBRaWFuIDxxY2FpQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAorCit0c19pbml0ICIkKiIKKworZm9yIGR1bXAgaW4gJChscyAkVFNfU0VMRi9kdW1wcy8qLnRhci5neiB8IHNvcnQpOyBkbworCW5hbWU9JChiYXNlbmFtZSAkZHVtcCAudGFyLmd6KQorCWR1bXBkaXI9IiRUU19PVVRESVIvZHVtcHMiCisKKwl0c19pbml0X3N1YnRlc3QgJG5hbWUKKwlta2RpciAtcCAkZHVtcGRpcgorCisJdGFyIC1DICRkdW1wZGlyIC16eGYgJGR1bXAgCisKKwkjIEFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBpcyBub3QgYXBwbGljYWJsZSB3aXRoIC1zLgorCSIke1RTX0NNRF9MU0NQVX0iIC1zICIke2R1bXBkaXJ9LyR7bmFtZX0iIHwgXAorCQlncmVwIC12ICJBcmNoaXRlY3R1cmUiID4iJHtUU19PVVRQVVR9IiAyPiYxCisKKwllY2hvID4+IiR7VFNfT1VUUFVUfSIKKworCSIke1RTX0NNRF9MU0NQVX0iIC1wIC1zICIke2R1bXBkaXJ9LyR7bmFtZX0iIFwKKwkJID4+IiR7VFNfT1VUUFVUfSIgMj4mMQorCisJdHNfZmluYWxpemVfc3VidGVzdAorZG9uZQorCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9tay1pbnB1dC5zaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL2xzY3B1L21rLWlucHV0LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkZjcwZWMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9sc2NwdS9tay1pbnB1dC5zaApAQCAtMCwwICsxLDM5IEBACisjIS9iaW4vYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDgtMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBzY3JpcHQgbWFrZXMgYSBjb3B5IG9mIHJlbGV2YW50IGZpbGVzIGZyb20gL3N5cyBhbmQgL3Byb2MuCisjIFRoZSBmaWxlcyBhcmUgdXNlZnVsbCBmb3IgbHNjcHUoMSkgcmVncmVzc2lvbiB0ZXN0cy4KKyMKK3Byb2duYW1lPSQoYmFzZW5hbWUgJDApCisKK2lmIFsgLXogIiQxIiBdOyB0aGVuCisJZWNobyAtZSAiXG51c2FnZTogJHByb2duYW1lIDx0ZXN0bmFtZT5cbiIKKwlleGl0IDEKK2ZpCisKK1RTX05BTUU9IiQxIgorVFNfRFVNUD0iJFRTX05BTUUiCitDUD0iY3AgLXIgLS1wYXJlbnRzIgorCitta2RpciAtcCAkVFNfRFVNUC97cHJvYyxzeXN9CisKKyRDUCAvcHJvYy9jcHVpbmZvICRUU19EVU1QCisKK21rZGlyIC1wICRUU19EVU1QL3Byb2MvYnVzL3BjaQorJENQIC9wcm9jL2J1cy9wY2kvZGV2aWNlcyAkVFNfRFVNUAorCitpZiBbIC1kICIvcHJvYy94ZW4iIF07IHRoZW4KKwlta2RpciAtcCAkVFNfRFVNUC9wcm9jL3hlbgorCWlmIFsgLWYgIi9wcm9jL3hlbi9jYXBhYmlsaXRpZXMiIF07IHRoZW4KKwkJJENQIC9wcm9jL3hlbi9jYXBhYmlsaXRpZXMgJFRTX0RVTVAKKwlmaQorZmkKKworJENQIC9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1LyogJFRTX0RVTVAKKyRDUCAvc3lzL2RldmljZXMvc3lzdGVtL25vZGUvKi9jcHVtYXAgJFRTX0RVTVAKKwordGFyIHpjdmYgJFRTX05BTUUudGFyLmd6ICRUU19EVU1QCitybSAtcmYgJFRTX0RVTVAKKworCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tZDUvZGF0YSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21kNS9kYXRhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlZWQwNWEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tZDUvZGF0YQpAQCAtMCwwICsxLDcgQEAKKworYWJjCitxYXp4c3dlZGMKKzFxYXp4c3cyM2VkYworYSBhIGEgYSBhIGEgYSBhIGEgYQorS1VXSU9KRE5XUUtMRkRIUVVXRURBWUNOQVVJV1NZRFVRVUlDQlNLTEJDTFVXSUdERgorRUFTQzY1NDU2NDI0MzIxMzJTREVDU0VTQ0VBQ1NKS0RXSU9VRE9JV0lET1FQV1VEUVdJT1NOWENTQVNDQQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbWQ1L21kNSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21kNS9tZDUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWRhNmQwNAotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21kNS9tZDUKQEAgLTAsMCArMSwzMSBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDkgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgorCis+ICRUU19PVVRQVVQKKworY2F0ICRUU19TRUxGL2RhdGEgfCB3aGlsZSByZWFkIGRhdGEKK2RvCisJZWNobyAtbiAkZGF0YSB8ICRUU19IRUxQRVJfTUQ1ID4+ICRUU19PVVRQVVQKK2RvbmUKKwordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbWluaXgvZnNjayBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21pbml4L2ZzY2sKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzM1MThmYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21pbml4L2ZzY2sKQEAgLTAsMCArMSwzNyBAQAorIyEvYmluL2Jhc2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA5IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0ibWtmcyBjaGVja3N1bXMiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK3NldCAtbyBwaXBlZmFpbAorCitJTUFHRT0iJFRTX09VVERJUi8ke1RTX1RFU1ROQU1FfS1sb29wLmltZyIKK0RFVklDRT0kKHRzX2RldmljZV9pbml0KQorCit0c19sb2cgImNyZWF0ZSBtaW5peCBmcyIKKyRUU19DTURfTUtNSU5JWCAkREVWSUNFIDI+JjEgPj4gJFRTX09VVFBVVAorCit0c19sb2cgImZzY2sgbWluaXggZnMiCiskVFNfQ01EX0ZTQ0tNSU5JWCAkREVWSUNFIDI+JjEgPj4gJFRTX09VVFBVVAorCit0c19kZXZpY2VfZGVpbml0ICRERVZJQ0UKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21pbml4L21rZnMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9taW5peC9ta2ZzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcyNzcwYmEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9taW5peC9ta2ZzCkBAIC0wLDAgKzEsNDUgQEAKKyMhL2Jpbi9iYXNoCisjCisjIENvcHlyaWdodCAoQykgMjAwOSBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9Im1rZnMiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK3NldCAtbyBwaXBlZmFpbAorCitJTUFHRT0iJFRTX09VVERJUi8ke1RTX1RFU1ROQU1FfS1sb29wLmltZyIKK0RFVklDRT0kKHRzX2RldmljZV9pbml0KQorCit0c19sb2cgImNyZWF0ZSBtaW5peCBmcyIKKyRUU19DTURfTUtNSU5JWCAkREVWSUNFIDI+JjEgPj4gJFRTX09VVFBVVAorCit0c19sb2cgImNyZWF0ZSBtb3VudHBvaW50IGRpciIKK1sgLWQgIiRUU19NT1VOVFBPSU5UIiBdIHx8IG1rZGlyIC1wICRUU19NT1VOVFBPSU5UCisKK3RzX2xvZyAibW91bnQgdGhlIGZpbGVzeXN0ZW0iCiskVFNfQ01EX01PVU5UICRERVZJQ0UgJFRTX01PVU5UUE9JTlQgMj4mMSA+PiAkVFNfT1VUUFVUCisKKyMgY2hlY2sgaXQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorCit0c19sb2cgInVtb3VudCB0aGUgaW1hZ2UiCiskVFNfQ01EX1VNT1VOVCAkREVWSUNFCit0c19kZXZpY2VfZGVpbml0ICRERVZJQ0UKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2Rldm5hbWUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9kZXZuYW1lCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY0Yjc5MDMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9kZXZuYW1lCkBAIC0wLDAgKzEsNDcgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJieSBkZXZuYW1lIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCitzZXQgLW8gcGlwZWZhaWwKKworREVWSUNFPSQodHNfZGV2aWNlX2luaXQpCitbICIkPyIgPT0gMCBdIHx8IHRzX2RpZSAiQ2Fubm90IGluaXQgZGV2aWNlIgorCitta2ZzLmV4dDMgJERFVklDRSAmPiAvZGV2L251bGwgfHwgdHNfZGllICJDYW5ub3QgbWFrZSBleHQzIG9uICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2hhcyAiVFlQRSIgImV4dDMiICRERVZJQ0UgfHwgdHNfZGllICJDYW5ub3QgZm91bmQgZXh0MyBvbiAkREVWSUNFIiAkREVWSUNFCisKK1sgLWQgIiRUU19NT1VOVFBPSU5UIiBdIHx8IG1rZGlyIC1wICRUU19NT1VOVFBPSU5UCisKKyRUU19DTURfTU9VTlQgJERFVklDRSAkVFNfTU9VTlRQT0lOVCAyPiYxID4+ICRUU19PVVRQVVQKKwordHNfaXNfbW91bnRlZCAkREVWSUNFIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kICRERVZJQ0UgaW4gL3Byb2MvbW91bnRzIiAkREVWSUNFCisKKyRUU19DTURfVU1PVU5UICRERVZJQ0UgfHwgdHNfZGllICJDYW5ub3QgdW1vdW50ICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2RlaW5pdCAkREVWSUNFCisKK3RzX2xvZyAiU3VjY2VzcyIKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2ZzdGFiLWRldm5hbWUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi1kZXZuYW1lCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhMjQ5NGQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi1kZXZuYW1lCkBAIC0wLDAgKzEsNTMgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iYnkgZGV2bmFtZSAoZnN0YWIpIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCitzZXQgLW8gcGlwZWZhaWwKKworREVWSUNFPSQodHNfZGV2aWNlX2luaXQpCitbICIkPyIgPT0gMCBdIHx8IHRzX2RpZSAiQ2Fubm90IGluaXQgZGV2aWNlIgorCitta2ZzLmV4dDMgJERFVklDRSAmPiAvZGV2L251bGwgfHwgdHNfZGllICJDYW5ub3QgbWFrZSBleHQzIG9uICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2hhcyAiVFlQRSIgImV4dDMiICRERVZJQ0UgfHwgdHNfZGllICJDYW5ub3QgZm91bmQgZXh0MyBvbiAkREVWSUNFIiAkREVWSUNFCisKK1sgLWQgIiRUU19NT1VOVFBPSU5UIiBdIHx8IG1rZGlyIC1wICRUU19NT1VOVFBPSU5UCisKK3RzX2ZzdGFiX2FkZCAkREVWSUNFCisKKyMgdmFyaWFudCBBKQorJFRTX0NNRF9NT1VOVCAkVFNfTU9VTlRQT0lOVCAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCisjIHZhcmlhbnQgQikKKyRUU19DTURfTU9VTlQgJERFVklDRSAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfZGVpbml0ICRERVZJQ0UKK3RzX2ZzdGFiX2NsZWFuCisKK3RzX2xvZyAiU3VjY2VzcyIKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2ZzdGFiLWRldm5hbWUybGFiZWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi1kZXZuYW1lMmxhYmVsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA1MzIxM2YKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi1kZXZuYW1lMmxhYmVsCkBAIC0wLDAgKzEsNDkgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iYnkgZGV2bmFtZSAoZnN0YWIgbGFiZWwpIgorTEFCRUw9InRlc3RNb3VudEQyTCIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworc2V0IC1vIHBpcGVmYWlsCisKK0RFVklDRT0kKHRzX2RldmljZV9pbml0KQorWyAiJD8iID09IDAgXSB8fCB0c19kaWUgIkNhbm5vdCBpbml0IGRldmljZSIKKworbWtmcy5leHQzIC1MICRMQUJFTCAkREVWSUNFICY+IC9kZXYvbnVsbCB8fCB0c19kaWUgIkNhbm5vdCBtYWtlIGV4dDMgb24gJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfaGFzICJMQUJFTCIgJExBQkVMICRERVZJQ0UgXAorIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kIExBQkVMICckTEFCRUwnIG9uICRERVZJQ0UiICRERVZJQ0UKKworWyAtZCAiJFRTX01PVU5UUE9JTlQiIF0gfHwgbWtkaXIgLXAgJFRTX01PVU5UUE9JTlQKKwordHNfZnN0YWJfYWRkICJMQUJFTD0kTEFCRUwiCisKKyRUU19DTURfTU9VTlQgJERFVklDRSAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkNhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfZGVpbml0ICRERVZJQ0UKK3RzX2ZzdGFiX2NsZWFuCisKK3RzX2xvZyAiU3VjY2VzcyIKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2ZzdGFiLWRldm5hbWUydXVpZCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2ZzdGFiLWRldm5hbWUydXVpZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41Y2FiNjIxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItZGV2bmFtZTJ1dWlkCkBAIC0wLDAgKzEsNDkgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iYnkgZGV2bmFtZSAoZnN0YWIgdXVpZCkiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK3NldCAtbyBwaXBlZmFpbAorCitERVZJQ0U9JCh0c19kZXZpY2VfaW5pdCkKK1sgIiQ/IiA9PSAwIF0gfHwgdHNfZGllICJDYW5ub3QgaW5pdCBkZXZpY2UiCisKK21rZnMuZXh0MyAkREVWSUNFICY+IC9kZXYvbnVsbCB8fCB0c19kaWUgIkNhbm5vdCBtYWtlIGV4dDMgb24gJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfaGFzX3V1aWQgJERFVklDRSB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCBVVUlEIG9uICRERVZJQ0UiICRERVZJQ0UKKworVVVJRD0kKHRzX3V1aWRfYnlfZGV2bmFtZSAkREVWSUNFKQorCitbIC1kICIkVFNfTU9VTlRQT0lOVCIgXSB8fCBta2RpciAtcCAkVFNfTU9VTlRQT0lOVAorCit0c19mc3RhYl9hZGQgIlVVSUQ9JFVVSUQiCisKKyRUU19DTURfTU9VTlQgJERFVklDRSAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkNhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfZGVpbml0ICRERVZJQ0UKK3RzX2ZzdGFiX2NsZWFuCisKK3RzX2xvZyAiU3VjY2VzcyIKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2ZzdGFiLWxhYmVsIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItbGFiZWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjE5MDM4MwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2ZzdGFiLWxhYmVsCkBAIC0wLDAgKzEsNjAgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iYnkgbGFiZWwgKGZzdGFiKSIKK0xBQkVMPSJ0ZXN0RnN0YWJMYWJlbCIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworc2V0IC1vIHBpcGVmYWlsCisKK0RFVklDRT0kKHRzX2RldmljZV9pbml0KQorWyAiJD8iID09IDAgXSB8fCB0c19kaWUgIkNhbm5vdCBpbml0IGRldmljZSIKKworbWtmcy5leHQzIC1MICRMQUJFTCAkREVWSUNFICY+IC9kZXYvbnVsbCB8fCB0c19kaWUgIkNhbm5vdCBtYWtlIGV4dDMgb24gJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfaGFzICJMQUJFTCIgJExBQkVMICRERVZJQ0UgXAorIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kIExBQkVMICckTEFCRUwnIG9uICRERVZJQ0UiICRERVZJQ0UKKworWyAtZCAiJFRTX01PVU5UUE9JTlQiIF0gfHwgbWtkaXIgLXAgJFRTX01PVU5UUE9JTlQKKwordHNfZnN0YWJfYWRkICJMQUJFTD0kTEFCRUwiCisKKyMgdmFyaWFudCBBKQorJFRTX0NNRF9NT1VOVCAkVFNfTU9VTlRQT0lOVCAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCisjIHZhcmlhbnQgQikKKyRUU19DTURfTU9VTlQgLUwgJExBQkVMIDI+JjEgPj4gJFRTX09VVFBVVAordHNfaXNfbW91bnRlZCAkREVWSUNFIHx8IHRzX2RpZSAiQikgQ2Fubm90IGZvdW5kICRERVZJQ0UgaW4gL3Byb2MvbW91bnRzIiAkREVWSUNFCiskVFNfQ01EX1VNT1VOVCAkREVWSUNFIHx8IHRzX2RpZSAiQikgQ2Fubm90IHVtb3VudCAkREVWSUNFIiAkREVWSUNFCisKKyMgdmFyaWFudCBDKQorJFRTX0NNRF9NT1VOVCBMQUJFTD0kTEFCRUwgMj4mMSA+PiAkVFNfT1VUUFVUCit0c19pc19tb3VudGVkICRERVZJQ0UgfHwgdHNfZGllICJDKSBDYW5ub3QgZm91bmQgJERFVklDRSBpbiAvcHJvYy9tb3VudHMiICRERVZJQ0UKKyRUU19DTURfVU1PVU5UICRERVZJQ0UgfHwgdHNfZGllICJDKSBDYW5ub3QgdW1vdW50ICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2RlaW5pdCAkREVWSUNFCit0c19mc3RhYl9jbGVhbgorCit0c19sb2cgIlN1Y2Nlc3MiCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi1sYWJlbDJkZXZuYW1lIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItbGFiZWwyZGV2bmFtZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YWU5YmZmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItbGFiZWwyZGV2bmFtZQpAQCAtMCwwICsxLDU1IEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImJ5IGxhYmVsIChmc3RhYiBkZXZuYW1lKSIKK0xBQkVMPSJ0ZXN0TW91bnRMMkQiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK3NldCAtbyBwaXBlZmFpbAorCitERVZJQ0U9JCh0c19kZXZpY2VfaW5pdCkKK1sgIiQ/IiA9PSAwIF0gfHwgdHNfZGllICJDYW5ub3QgaW5pdCBkZXZpY2UiCisKK21rZnMuZXh0MyAtTCAkTEFCRUwgJERFVklDRSAmPiAvZGV2L251bGwgfHwgdHNfZGllICJDYW5ub3QgbWFrZSBleHQzIG9uICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2hhcyAiTEFCRUwiICRMQUJFTCAkREVWSUNFIFwKKyB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCBMQUJFTCAnJExBQkVMJyBvbiAkREVWSUNFIiAkREVWSUNFCisKK1sgLWQgIiRUU19NT1VOVFBPSU5UIiBdIHx8IG1rZGlyIC1wICRUU19NT1VOVFBPSU5UCisKK3RzX2ZzdGFiX2FkZCAiJERFVklDRSIKKworIyB2YXJpYW50IEEpCiskVFNfQ01EX01PVU5UIC1MICRMQUJFTCAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCisjIHZhcmlhbnQgQikKKyRUU19DTURfTU9VTlQgIkxBQkVMPSRMQUJFTCIgMj4mMSA+PiAkVFNfT1VUUFVUCit0c19pc19tb3VudGVkICRERVZJQ0UgfHwgdHNfZGllICJCKSBDYW5ub3QgZm91bmQgJERFVklDRSBpbiAvcHJvYy9tb3VudHMiICRERVZJQ0UKKyRUU19DTURfVU1PVU5UICRERVZJQ0UgfHwgdHNfZGllICJCKSBDYW5ub3QgdW1vdW50ICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2RlaW5pdCAkREVWSUNFCit0c19mc3RhYl9jbGVhbgorCit0c19sb2cgIlN1Y2Nlc3MiCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi1sYWJlbDJ1dWlkIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItbGFiZWwydXVpZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNzRjZGYyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItbGFiZWwydXVpZApAQCAtMCwwICsxLDYwIEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iYnkgbGFiZWwgKGZzdGFiIHV1aWQpIgorTEFCRUw9InRlc3RNb3VudEwyVSIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworc2V0IC1vIHBpcGVmYWlsCisKK0RFVklDRT0kKHRzX2RldmljZV9pbml0KQorWyAiJD8iID09IDAgXSB8fCB0c19kaWUgIkNhbm5vdCBpbml0IGRldmljZSIKKworbWtmcy5leHQzIC1MICRMQUJFTCAkREVWSUNFICY+IC9kZXYvbnVsbCB8fCB0c19kaWUgIkNhbm5vdCBtYWtlIGV4dDMgb24gJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfaGFzICJMQUJFTCIgJExBQkVMICRERVZJQ0UgXAorIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kIExBQkVMICckTEFCRUwnIG9uICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2hhc191dWlkICRERVZJQ0UgfHwgdHNfZGllICJDYW5ub3QgZm91bmQgVVVJRCBvbiAkREVWSUNFIiAkREVWSUNFCisKK1VVSUQ9JCh0c191dWlkX2J5X2Rldm5hbWUgJERFVklDRSkKKworWyAtZCAiJFRTX01PVU5UUE9JTlQiIF0gfHwgbWtkaXIgLXAgJFRTX01PVU5UUE9JTlQKKwordHNfZnN0YWJfYWRkICJVVUlEPSRVVUlEIgorCisjIHZhcmlhbnQgQSkKKyRUU19DTURfTU9VTlQgLUwgJExBQkVMIDI+JjEgPj4gJFRTX09VVFBVVAordHNfaXNfbW91bnRlZCAkREVWSUNFIHx8IHRzX2RpZSAiQSkgQ2Fubm90IGZvdW5kICRERVZJQ0UgaW4gL3Byb2MvbW91bnRzIiAkREVWSUNFCiskVFNfQ01EX1VNT1VOVCAkREVWSUNFIHx8IHRzX2RpZSAiQSkgQ2Fubm90IHVtb3VudCAkREVWSUNFIiAkREVWSUNFCisKKyMgdmFyaWFudCBCKQorJFRTX0NNRF9NT1VOVCAiTEFCRUw9JExBQkVMIiAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfZGVpbml0ICRERVZJQ0UKK3RzX2ZzdGFiX2NsZWFuCisKK3RzX2xvZyAiU3VjY2VzcyIKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2ZzdGFiLXN5bWxpbmsgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi1zeW1saW5rCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQxZTUxYjQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi1zeW1saW5rCkBAIC0wLDAgKzEsNjggQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJieSBkZXZuYW1lIChmc3RhYiBzeW1saW5rKSIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworc2V0IC1vIHBpcGVmYWlsCisKK0xJTktOQU1FPSIkVFNfT1VURElSLyR7VFNfVEVTVE5BTUV9X2xuayIKKworREVWSUNFPSQodHNfZGV2aWNlX2luaXQpCitbICIkPyIgPT0gMCBdIHx8IHRzX2RpZSAiQ2Fubm90IGluaXQgZGV2aWNlIgorCitta2ZzLmV4dDMgJERFVklDRSAmPiAvZGV2L251bGwgfHwgdHNfZGllICJDYW5ub3QgbWFrZSBleHQzIG9uICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2hhcyAiVFlQRSIgImV4dDMiICRERVZJQ0UgfHwgdHNfZGllICJDYW5ub3QgZm91bmQgZXh0MyBvbiAkREVWSUNFIiAkREVWSUNFCisKK1sgLWQgIiRUU19NT1VOVFBPSU5UIiBdIHx8IG1rZGlyIC1wICRUU19NT1VOVFBPSU5UCisKK3JtIC1yZiAkTElOS05BTUUKK2xuIC1zICRERVZJQ0UgJExJTktOQU1FCisKK3RzX2ZzdGFiX2FkZCAkTElOS05BTUUgJFRTX01PVU5UUE9JTlQgImF1dG8iICJkZWZhdWx0cyx1c2VyIgorCisjIHZhcmlhbnQgQSkgLS0gVUlEPTAKKyRUU19DTURfTU9VTlQgJExJTktOQU1FIDI+JjEgPj4gJFRTX09VVFBVVAordHNfaXNfbW91bnRlZCAkREVWSUNFIHx8IHRzX2RpZSAiQSkgQ2Fubm90IGZvdW5kICRERVZJQ0UgaW4gL3Byb2MvbW91bnRzIiAkREVWSUNFCiskVFNfQ01EX1VNT1VOVCAkTElOS05BTUUgfHwgdHNfZGllICJBKSBDYW5ub3QgdW1vdW50ICRMSU5LTkFNRSIgJERFVklDRQorCisjIHZhcmlhbiBCKSAtLSBkaXNhYmxlZCwgdGhlICRUU19DTURfTU9VTlQgaXMgdXN1YWxseSBub3QgYSByZWFsIHByb2dyYW0sIGJ1dAorIyAgICAgICAgICAgICAgbGlidG9vbCB3cmFwcGVyIGFuZCB0aGUgcmVhbCBtb3VudCBpcyBleGVjKCllZCB3aXRoCisjICAgICAgICAgICAgICBMRF9MSUJSQVJZX1BBVEguIFRoaXMgYWxsIGlzIGJhZCBmb3Igc3VpZCBwcm9ncmFtcy4uLgorCisjdHNfaW5pdF9zdWlkICRUU19DTURfTU9VTlQKKyN0c19pbml0X3N1aWQgJFRTX0NNRF9VTU9VTlQKKyMKKyNzdSAkVFNfVEVTVFVTRVIgLWMgIiRUU19DTURfTU9VTlQgLXYgLXYgLXYgJExJTktOQU1FIiAyPiYxID4+ICRUU19PVVRQVVQKKyN0c19pc19tb3VudGVkICRERVZJQ0UKKyMgICB8fCB0c19kaWUgIkIpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorI3N1ICRUU19URVNUVVNFUiAtYyAiJFRTX0NNRF9VTU9VTlQgJExJTktOQU1FIiAyPiYxID4+ICRUU19PVVRQVVQgXAorIyAgIHx8IHRzX2RpZSAiQikgQ2Fubm90IHVtb3VudCAkTElOS05BTUUiICRERVZJQ0UKKwordHNfZGV2aWNlX2RlaW5pdCAkREVWSUNFCit0c19mc3RhYl9jbGVhbgorcm0gLWYgJExJTktOQU1FCisKK3RzX2xvZyAiU3VjY2VzcyIKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2ZzdGFiLXV1aWQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi11dWlkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczYjU5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi11dWlkCkBAIC0wLDAgKzEsNjAgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iYnkgdXVpZCAoZnN0YWIpIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCitzZXQgLW8gcGlwZWZhaWwKKworREVWSUNFPSQodHNfZGV2aWNlX2luaXQpCitbICIkPyIgPT0gMCBdIHx8IHRzX2RpZSAiQ2Fubm90IGluaXQgZGV2aWNlIgorCitta2ZzLmV4dDMgJERFVklDRSAmPiAvZGV2L251bGwgfHwgdHNfZGllICJDYW5ub3QgbWFrZSBleHQzIG9uICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2hhc191dWlkICRERVZJQ0UgfHwgdHNfZGllICJDYW5ub3QgZm91bmQgVVVJRCBvbiAkREVWSUNFIiAkREVWSUNFCisKK1VVSUQ9JCh0c191dWlkX2J5X2Rldm5hbWUgJERFVklDRSkKKworWyAtZCAiJFRTX01PVU5UUE9JTlQiIF0gfHwgbWtkaXIgLXAgJFRTX01PVU5UUE9JTlQKKwordHNfZnN0YWJfYWRkICJVVUlEPSRVVUlEIgorCisjIHZhcmlhbiBBKQorJFRTX0NNRF9NT1VOVCAkVFNfTU9VTlRQT0lOVCAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCisjIHZhcmlhbiBCKQorJFRTX0NNRF9NT1VOVCAtVSAkVVVJRCAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCisjIHZhcmlhbiBDKQorJFRTX0NNRF9NT1VOVCBVVUlEPSRVVUlEIDI+JjEgPj4gJFRTX09VVFBVVAordHNfaXNfbW91bnRlZCAkREVWSUNFIHx8IHRzX2RpZSAiQykgQ2Fubm90IGZvdW5kICRERVZJQ0UgaW4gL3Byb2MvbW91bnRzIiAkREVWSUNFCiskVFNfQ01EX1VNT1VOVCAkREVWSUNFIHx8IHRzX2RpZSAiQykgQ2Fubm90IHVtb3VudCAkREVWSUNFIiAkREVWSUNFCisKK3RzX2RldmljZV9kZWluaXQgJERFVklDRQordHNfZnN0YWJfY2xlYW4KKwordHNfbG9nICJTdWNjZXNzIgordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItdXVpZDJkZXZuYW1lIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItdXVpZDJkZXZuYW1lCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEwMTNkMmUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi11dWlkMmRldm5hbWUKQEAgLTAsMCArMSw1NSBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJieSB1dWlkIChmc3RhYiBkZXZuYW1lKSIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworc2V0IC1vIHBpcGVmYWlsCisKK0RFVklDRT0kKHRzX2RldmljZV9pbml0KQorWyAiJD8iID09IDAgXSB8fCB0c19kaWUgIkNhbm5vdCBpbml0IGRldmljZSIKKworbWtmcy5leHQzICRERVZJQ0UgJj4gL2Rldi9udWxsIHx8IHRzX2RpZSAiQ2Fubm90IG1ha2UgZXh0MyBvbiAkREVWSUNFIiAkREVWSUNFCisKK3RzX2RldmljZV9oYXNfdXVpZCAkREVWSUNFIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kIFVVSUQgb24gJERFVklDRSIgJERFVklDRQorCitVVUlEPSQodHNfdXVpZF9ieV9kZXZuYW1lICRERVZJQ0UpCisKK1sgLWQgIiRUU19NT1VOVFBPSU5UIiBdIHx8IG1rZGlyIC1wICRUU19NT1VOVFBPSU5UCisKK3RzX2ZzdGFiX2FkZCAiJERFVklDRSIKKworIyB2YXJpYW50IEEpCiskVFNfQ01EX01PVU5UIC1VICRVVUlEIDI+JjEgPj4gJFRTX09VVFBVVAordHNfaXNfbW91bnRlZCAkREVWSUNFIHx8IHRzX2RpZSAiQSkgQ2Fubm90IGZvdW5kICRERVZJQ0UgaW4gL3Byb2MvbW91bnRzIiAkREVWSUNFCiskVFNfQ01EX1VNT1VOVCAkREVWSUNFIHx8IHRzX2RpZSAiQSkgQ2Fubm90IHVtb3VudCAkREVWSUNFIiAkREVWSUNFCisKKyMgdmFyaWFudCBCKQorJFRTX0NNRF9NT1VOVCAiVVVJRD0kVVVJRCIgMj4mMSA+PiAkVFNfT1VUUFVUCit0c19pc19tb3VudGVkICRERVZJQ0UgfHwgdHNfZGllICJCKSBDYW5ub3QgZm91bmQgJERFVklDRSBpbiAvcHJvYy9tb3VudHMiICRERVZJQ0UKKyRUU19DTURfVU1PVU5UICRERVZJQ0UgfHwgdHNfZGllICJCKSBDYW5ub3QgdW1vdW50ICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2RlaW5pdCAkREVWSUNFCit0c19mc3RhYl9jbGVhbgorCit0c19sb2cgIlN1Y2Nlc3MiCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9mc3RhYi11dWlkMmxhYmVsIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItdXVpZDJsYWJlbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NGZiNTE3Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvZnN0YWItdXVpZDJsYWJlbApAQCAtMCwwICsxLDU5IEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImJ5IHV1aWQgKGZzdGFiIGxhYmVsKSIKK0xBQkVMPSJ0ZXN0TW91bnRVMkwiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK3NldCAtbyBwaXBlZmFpbAorCitERVZJQ0U9JCh0c19kZXZpY2VfaW5pdCkKK1sgIiQ/IiA9PSAwIF0gfHwgdHNfZGllICJDYW5ub3QgaW5pdCBkZXZpY2UiCisKK21rZnMuZXh0MyAtTCAkTEFCRUwgJERFVklDRSAmPiAvZGV2L251bGwgfHwgdHNfZGllICJDYW5ub3QgbWFrZSBleHQzIG9uICRERVZJQ0UiICRERVZJQ0UKKwordHNfZGV2aWNlX2hhcyAiTEFCRUwiICRMQUJFTCAkREVWSUNFIFwKKyB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCBMQUJFTCAnJExBQkVMJyBvbiAkREVWSUNFIiAkREVWSUNFCisKK3RzX2RldmljZV9oYXNfdXVpZCAkREVWSUNFIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kIFVVSUQgb24gJERFVklDRSIgJERFVklDRQorCitVVUlEPSQodHNfdXVpZF9ieV9kZXZuYW1lICRERVZJQ0UpCisKK1sgLWQgIiRUU19NT1VOVFBPSU5UIiBdIHx8IG1rZGlyIC1wICRUU19NT1VOVFBPSU5UCisKK3RzX2ZzdGFiX2FkZCAiTEFCRUw9JExBQkVMIgorCisjIHZhcmlhbnQgQSkKKyRUU19DTURfTU9VTlQgLVUgJFVVSUQgMj4mMSA+PiAkVFNfT1VUUFVUCit0c19pc19tb3VudGVkICRERVZJQ0UgfHwgdHNfZGllICJBKSBDYW5ub3QgZm91bmQgJERFVklDRSBpbiAvcHJvYy9tb3VudHMiICRERVZJQ0UKKyRUU19DTURfVU1PVU5UICRERVZJQ0UgfHwgdHNfZGllICJBKSBDYW5ub3QgdW1vdW50ICRERVZJQ0UiICRERVZJQ0UKKworIyB2YXJpYW50IEIpCiskVFNfQ01EX01PVU5UICJVVUlEPSRVVUlEIiAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfZGVpbml0ICRERVZJQ0UKK3RzX2ZzdGFiX2NsZWFuCisKK3RzX2xvZyAiU3VjY2VzcyIKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2xhYmVsIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvbGFiZWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzg4MGU0YgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L2xhYmVsCkBAIC0wLDAgKzEsNTMgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJieSBsYWJlbCIKK0xBQkVMPSJ0ZXN0TW91bnRMYWJlbCIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworc2V0IC1vIHBpcGVmYWlsCisKK0RFVklDRT0kKHRzX2RldmljZV9pbml0KQorWyAiJD8iID09IDAgXSB8fCB0c19kaWUgIkNhbm5vdCBpbml0IGRldmljZSIKKworbWtmcy5leHQzIC1MICRMQUJFTCAkREVWSUNFICY+IC9kZXYvbnVsbCB8fCB0c19kaWUgIkNhbm5vdCBtYWtlIGV4dDMgb24gJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfaGFzICJMQUJFTCIgJExBQkVMICRERVZJQ0UgXAorIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kIExBQkVMICckTEFCRUwnIG9uICRERVZJQ0UiICRERVZJQ0UKKworWyAtZCAiJFRTX01PVU5UUE9JTlQiIF0gfHwgbWtkaXIgLXAgJFRTX01PVU5UUE9JTlQKKworIyB2YXJpYW50IEEpCiskVFNfQ01EX01PVU5UIC1MICRMQUJFTCAkVFNfTU9VTlRQT0lOVCAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCisjIHZhcmlhbnQgQikKKyRUU19DTURfTU9VTlQgTEFCRUw9JExBQkVMICRUU19NT1VOVFBPSU5UIDI+JjEgPj4gJFRTX09VVFBVVAordHNfaXNfbW91bnRlZCAkREVWSUNFIHx8IHRzX2RpZSAiQikgQ2Fubm90IGZvdW5kICRERVZJQ0UgaW4gL3Byb2MvbW91bnRzIiAkREVWSUNFCiskVFNfQ01EX1VNT1VOVCAkREVWSUNFIHx8IHRzX2RpZSAiQikgQ2Fubm90IHVtb3VudCAkREVWSUNFIiAkREVWSUNFCisKK3RzX2RldmljZV9kZWluaXQgJERFVklDRQorCit0c19sb2cgIlN1Y2Nlc3MiCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9tb3ZlIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvbW92ZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NjBlZjQzCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvbW92ZQpAQCAtMCwwICsxLDU2IEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9Im1vdmUiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK0RJUl9TUkM9IiRUU19PVVRESVIvbW50LW1vdmUtc3JjIgorRElSX0E9IiRUU19PVVRESVIvbW50LW1vdmUtQSIKK0RJUl9CPSIkVFNfT1VURElSL21udC1tb3ZlLUIiCisKK1sgLWQgJERJUl9TUkMgXSB8fCBta2RpciAkRElSX1NSQworWyAtZCAkRElSX0EgXSB8fCBta2RpciAkRElSX0EKK1sgLWQgJERJUl9CIF0gfHwgbWtkaXIgJERJUl9CCisKKyMgYmluZAorJFRTX0NNRF9NT1VOVCAtLWJpbmQgJERJUl9TUkMgJERJUl9BCisKKyMgY2hlY2sgdGhlIGJpbmQKK2VncmVwIC1xICJeJERJUl9TUkMgJERJUl9BIiAvZXRjL210YWIKK1sgIiQ/IiA9PSAiMCIgXSB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCBiaW5kZWQgJERJUl9TUkMgaW4gL2V0Yy9tdGFiIgorCisjIG1vdmUKKyRUU19DTURfTU9VTlQgLS1tb3ZlICRESVJfQSAkRElSX0IKKworIyBjaGVjayB0aGUgbW92ZQorZWdyZXAgLXEgIl4kRElSX1NSQyAkRElSX0IiIC9ldGMvbXRhYgoraWYgWyAiJD8iICE9ICIwIiBdOyB0aGVuCisJJFRTX0NNRF9VTU9VTlQgJERJUl9TUkMKKwl0c19kaWUgIkNhbm5vdCBmb3VuZCBtb3ZlZCAkRElSX1NSQyBpbiAvZXRjL210YWIiCitmaQorCisjIGNsZWFuIHVwCiskVFNfQ01EX1VNT1VOVCAkRElSX1NSQworcm1kaXIgJERJUl9TUkMgJERJUl9BICRESVJfQgorCit0c19sb2cgIlN1Y2Nlc3MiCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9tdGFibG9jayBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L210YWJsb2NrCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEzN2UxYTIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9tdGFibG9jawpAQCAtMCwwICsxLDUwIEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9Im10YWIgbG9jayIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworIworIyBCZSBjYXJlZnVsIHdpdGggbnVtYmVyIG9mIHByb2Nlc3Nlcy4gRG9uJ3QgZm9yZ2V0IHRoYXQgdGhlcmUgaXMgdGltZSBsaW1pdAorIyB3aGVuIHRoZSBtb3VudCB3YWl0cyBvbiB0aGUgbXRhYiBsb2NrLiBJZiB5b3UgZGVmaW5lIHRvbyBtdWNoIHByb2Nlc3NlcyBzb21lCisjIG9mIHRoZW0gd2lsbCBmYWlsIHdpdGggdGltZW91dC4KKyMKKyMgTm90ZTogdGhlIG9yaWdpbmFsIHZlcnNpb24gKDwgMi4xMykgb2YgdXRpbC1saW51eCBpcyBjb21wbGV0ZWx5IHVzZWxlc3MgZm9yCisjIHRoaXMgdGVzdCAobWF4aW11bSBmb3IgdGhpcyBvbGQgdmVyc2lvbiBpcyBOTE9PUFM9MTAgYW5kIE5QUk9DRVNTRVM9NSAoMi13YXkKKyMgMkdIeiBtYWNoaW5lKSkuIEl0IGhhcyB0ZXJyaWJsZSBwZXJmb3JtYW5jZSBkdWUgYSBiYWQgdGltZW91dHMgaW1wbGVtbnRhdGlvbgorIyBpbiBsb2NrX210YWIoKS4KKyMKK05MT09QUz0xMDAwCitOUFJPQ0VTU0VTPTUwCisKKworPiAkVFNfT1VUUFVULmRlYnVnCitlY2hvIDAgPiAkVFNfT1VUUFVUCitTWU5DVElNRT0kKCggJChkYXRlICslcykgKyAxMCApKQorCitmb3IgaWQgaW4gJChzZXEgMCAkKCggJE5QUk9DRVNTRVMgLSAxICkpKTsgZG8KKwkkVFNfQ01EX01UQUJMT0NLICRpZCAkU1lOQ1RJTUUgJFRTX09VVFBVVCAkTkxPT1BTID4+ICRUU19PVVRQVVQuZGVidWcgMj4mMSAmCitkb25lCisKK3dhaXQKKwordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvbm9uY2Fub25pY2FsIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvbm9uY2Fub25pY2FsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxMTQ5OTIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9ub25jYW5vbmljYWwKQEAgLTAsMCArMSwzNCBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJub24gY2Fub25pY2FsIHBhdGgiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK1sgISAtZSAiL2V0YyIgXSAmJiB0c19za2lwICIvZXRjIG5vdCBzdWNoIGZpbGUgb2YgZGlyZWN0b3J5IgorCisjIERvbid0IGNhbm9uaWNhbGl6ZSBTUEVDIGZvciBjaWZzLCBuZnMsIHNtYmZzLCAuLi4KKyRUU19DTURfTU9VTlQgLXYgLXYgLXYgLWYgLWkgLW4gLXQgY2lmcyAvL2V0YyAvZm9vIHwgZ3JlcCAic3BlYzoiID4+ICRUU19PVVRQVVQgMj4mMQorCisjIENhbm9uaWNhbGl6ZSB3aGVuIEZTIHR5cGUgdW5kZWZpbmVkIGFuZCB0aGUgU1BFQyBleGlzdHMKKyRUU19DTURfTU9VTlQgLXYgLXYgLXYgLWYgLWkgLW4gIC8vZXRjIC9mb28gfCBncmVwICJzcGVjOiIgPj4gJFRTX09VVFBVVCAyPiYxCisKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L3BhdGhzIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvcGF0aHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmIyY2FiZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L3BhdGhzCkBAIC0wLDAgKzEsMjggQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJiYXNpYyBwYXRocyIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworJFRTX0NNRF9NT1VOVCAtbiAtZiAtdiAtdiAtdiAvZGV2L2R1bW15IC9tbnQgJj4gJFRTX09VVFBVVAorCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9yZW1vdW50IGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvcmVtb3VudApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41N2RkMDc0Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvcmVtb3VudApAQCAtMCwwICsxLDUyIEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9InJlbW91bnQiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKKyMgbW91bnRwb2ludAorWyAtZCAkVFNfTU9VTlRQT0lOVCBdIHx8IG1rZGlyIC1wICRUU19NT1VOVFBPSU5UCisKK0RFVklDRT0kKHRzX2RldmljZV9pbml0KQorWyAiJD8iID09IDAgXSB8fCB0c19kaWUgIkNhbm5vdCBpbml0IGRldmljZSIKKworbWtmcy5leHQyICRERVZJQ0UgJj4gL2Rldi9udWxsIHx8IHRzX2RpZSAiQ2Fubm90IG1ha2UgZXh0MiBvbiAkREVWSUNFIiAkREVWSUNFCisKKyMgbW91bnQgcmVhZC13cml0ZQorJFRTX0NNRF9NT1VOVCAkREVWSUNFICRUU19NT1VOVFBPSU5UIHx8IHRzX2RpZSAiQ2Fubm90IG1vdW50ICRUU19NT1VOVFBPSU5UIiAkREVWSUNFCisKKyMgY2hlY2sgdGhlIG1vdW50CitlZ3JlcCAtcSAiXiRERVZJQ0UgJFRTX01PVU5UUE9JTlQiIC9ldGMvbXRhYiBcCisgfHwgdHNfZGllICJDYW5ub3QgZm91bmQgJFRTX01PVU5UUE9JTlQgaW4gL2V0Yy9tdGFiIiAkREVWSUNFCisKKyMgcmVtb3VudAorJFRTX0NNRF9NT1VOVCAtbyByZW1vdW50LHJvICRUU19NT1VOVFBPSU5UIFwKKyB8fCB0c19kaWUgIkNhbm5vdCByZW1vdW50ICRUU19NT1VOVFBPSU5UIiAkREVWSUNFCisKKyMgY2hlY2sgdGhlIHJlbW91bnQKK2VncmVwIC1xICJeJERFVklDRSAkVFNfTU9VTlRQT0lOVCBleHQyIHJvIDAgMCIgL2V0Yy9tdGFiIFwKKyB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCByZW1vdW50ZWQgJFRTX01PVU5UUE9JTlQgaW4gL2V0Yy9tdGFiIiAkREVWSUNFCisKK3RzX2RldmljZV9kZWluaXQgJERFVklDRQorCit0c19sb2cgIlN1Y2Nlc3MiCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC9zcGVjaWFsIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvc3BlY2lhbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzExNTRlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbW91bnQvc3BlY2lhbApAQCAtMCwwICsxLDQwIEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImNhbGwgbW91bnQuPHR5cGU+IgorTU9VTlRFUj0iL3NiaW4vbW91bnQubXl0ZXN0IgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCitjYXQgPiAkTU9VTlRFUiA8PFxFT0YKKyMhL2Jpbi9iYXNoCisjIFRoaXMgdXRpbC1saW51eC1uZyByZWdyZXNzaW9uIHRlc3QgY29tcG9uZW50CisjIEl0J3Mgc2FmZSB0byByZW1vdmUgbWUuLi4KKyMKK2VjaG8gIiQwIGNhbGxlZCB3aXRoIFwiJCpcIiIKK0VPRgorY2htb2QgK3ggJE1PVU5URVIKKworJFRTX0NNRF9NT1VOVCAtdiAtdiAtdiAtdCBteXRlc3QgIC9mb28gL2JhciAmPiAkVFNfT1VUUFVUCisKK3JtIC1mICRNT1VOVEVSCisKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL21vdW50L3V1aWQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC91dWlkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc5ODQyMzAKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9tb3VudC91dWlkCkBAIC0wLDAgKzEsNTIgQEAKKyMhL2Jpbi9iYXNoCisKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IEthcmVsIFphayA8a3pha0ByZWRoYXQuY29tPgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB1dGlsLWxpbnV4LW5nLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0iYnkgdXVpZCIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCit0c19za2lwX25vbnJvb3QKKworc2V0IC1vIHBpcGVmYWlsCisKK0RFVklDRT0kKHRzX2RldmljZV9pbml0KQorWyAiJD8iID09IDAgXSB8fCB0c19kaWUgIkNhbm5vdCBpbml0IGRldmljZSIKKworbWtmcy5leHQzICRERVZJQ0UgJj4gL2Rldi9udWxsIHx8IHRzX2RpZSAiQ2Fubm90IG1ha2UgZXh0MyBvbiAkREVWSUNFIiAkREVWSUNFCisKK3RzX2RldmljZV9oYXNfdXVpZCAkREVWSUNFIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kIFVVSUQgb24gJERFVklDRSIgJERFVklDRQorCitVVUlEPSQodHNfdXVpZF9ieV9kZXZuYW1lICRERVZJQ0UpCisKK1sgLWQgIiRUU19NT1VOVFBPSU5UIiBdIHx8IG1rZGlyIC1wICRUU19NT1VOVFBPSU5UCisKKyMgdmFyaWFudCBBKQorJFRTX0NNRF9NT1VOVCAtVSAkVVVJRCAkVFNfTU9VTlRQT0lOVCAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkEpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCisjIHZhcmlhbnQgQikKKyRUU19DTURfTU9VTlQgVVVJRD0kVVVJRCAkVFNfTU9VTlRQT0lOVCAyPiYxID4+ICRUU19PVVRQVVQKK3RzX2lzX21vdW50ZWQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL21vdW50cyIgJERFVklDRQorJFRTX0NNRF9VTU9VTlQgJERFVklDRSB8fCB0c19kaWUgIkIpIENhbm5vdCB1bW91bnQgJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfZGVpbml0ICRERVZJQ0UKKwordHNfbG9nICJTdWNjZXNzIgordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbmFtZWkvbG9naWMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9uYW1laS9sb2dpYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzk2NzEyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvbmFtZWkvbG9naWMKQEAgLTAsMCArMSwzNCBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJiYXNpYyBmdW5jdGlvbmFsaXR5IgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKKworY2QgJFRTX09VVERJUgorCitta2RpciAtcCBuYW1laTEvbmFtZWkyCit0b3VjaCBuYW1laTEvbmFtZWkyL2EgbmFtZWkxL25hbWVpMi9iCisKKyRUU19DTURfTkFNRUkgbmFtZWkxL25hbWVpMi9hICAgPj4gJFRTX09VVFBVVCAyPiYxCiskVFNfQ01EX05BTUVJIG5hbWVpMS9uYW1laTIvYiAgID4+ICRUU19PVVRQVVQgMj4mMQorJFRTX0NNRF9OQU1FSSBuYW1laTEvbmFtZWkyL2EvYiA+PiAkVFNfT1VUUFVUIDI+JjEKKwordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvcGF0aHMvYnVpbHQtaW4gYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9wYXRocy9idWlsdC1pbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNTQwYjJmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvcGF0aHMvYnVpbHQtaW4KQEAgLTAsMCArMSwyNyBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJidWlsdC1pbiIKKworLiAkVFNfVE9QRElSL2Z1bmN0aW9ucy5zaAordHNfaW5pdCAiJCoiCisKKyRUU19IRUxQRVJfUEFUSFMgJj4gJFRTX09VVFBVVAorCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9zY3JpcHQvcmFjZSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL3NjcmlwdC9yYWNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ5NjJkYjkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9zY3JpcHQvcmFjZQpAQCAtMCwwICsxLDM2IEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKworVFNfVE9QRElSPSIkKGRpcm5hbWUgJDApLy4uLy4uIgorVFNfREVTQz0icmFjZSBjb25kaXRpb25zIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKKworYmluZ29maWxlPSIkVFNfT1VURElSLyR7VFNfVEVTVE5BTUV9LWJpbmdvIgorCitzZXQgLW8gcGlwZWZhaWwKKworZm9yIGkgaW4gYHNlcSAxIDEwMDBgOyBkbworCSRUU19DTURfU0NSSVBUIC1xIC1jICJwcmludGYgJ0JpbmdvXG4nIiAkYmluZ29maWxlCitkb25lIHwgZ3JlcCAtYyBCaW5nbyA+PiAkVFNfT1VUUFVUCisKK3JtIC1mICRiaW5nb2ZpbGUKKwordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvc3dhcG9uL2Rldm5hbWUgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9zd2Fwb24vZGV2bmFtZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YWQ2YjJmCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvc3dhcG9uL2Rldm5hbWUKQEAgLTAsMCArMSw0NSBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJieSBkZXZuYW1lIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCitzZXQgLW8gcGlwZWZhaWwKKworREVWSUNFPSQodHNfZGV2aWNlX2luaXQpCitbICIkPyIgPT0gMCBdIHx8IHRzX2RpZSAiQ2Fubm90IGluaXQgZGV2aWNlIgorCiskVFNfQ01EX01LU1dBUCAkREVWSUNFID4gL2Rldi9udWxsIDI+PiAkVFNfT1VUUFVUIFwKKyB8fCB0c19kaWUgIkNhbm5vdCBtYWtlIHN3YXAgJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfaGFzICJUWVBFIiAic3dhcCIgJERFVklDRSB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCBzd2FwIG9uICRERVZJQ0UiICRERVZJQ0UKKworTERfTElCUkFSWV9QQVRIPSIkVV9MX0xJQlJBUllfUEFUSCIgXAorCQkkVFNfQ01EX1NXQVBPTiAkREVWSUNFIDI+JjEgPj4gJFRTX09VVFBVVAorCitncmVwIC1xICRERVZJQ0UgL3Byb2Mvc3dhcHMgfHwgdHNfZGllICJDYW5ub3QgZm91bmQgJERFVklDRSBpbiAvcHJvYy9zd2FwcyIgJERFVklDRQorCit0c19zd2Fwb2ZmICRERVZJQ0UKK3RzX2RldmljZV9kZWluaXQgJERFVklDRQorCit0c19sb2cgIlN1Y2Nlc3MiCit0c19maW5hbGl6ZQorCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9zd2Fwb24vbGFiZWwgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9zd2Fwb24vbGFiZWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWMwZGU2NgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rlc3RzL3RzL3N3YXBvbi9sYWJlbApAQCAtMCwwICsxLDQ3IEBACisjIS9iaW4vYmFzaAorCisjCisjIENvcHlyaWdodCAoQykgMjAwNyBLYXJlbCBaYWsgPGt6YWtAcmVkaGF0LmNvbT4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdXRpbC1saW51eC1uZy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKK1RTX1RPUERJUj0iJChkaXJuYW1lICQwKS8uLi8uLiIKK1RTX0RFU0M9ImJ5IGxhYmVsIgorTEFCRUw9InRlc3RTd2FwTGFiZWwiCisKKy4gJFRTX1RPUERJUi9mdW5jdGlvbnMuc2gKK3RzX2luaXQgIiQqIgordHNfc2tpcF9ub25yb290CisKK3NldCAtbyBwaXBlZmFpbAorCitERVZJQ0U9JCh0c19kZXZpY2VfaW5pdCkKK1sgIiQ/IiA9PSAwIF0gfHwgdHNfZGllICJDYW5ub3QgaW5pdCBkZXZpY2UiCisKKyRUU19DTURfTUtTV0FQIC1MICRMQUJFTCAkREVWSUNFID4gL2Rldi9udWxsIDI+PiAkVFNfT1VUUFVUIFwKKyB8fCB0c19kaWUgIkNhbm5vdCBtYWtlIHN3YXAgb24gJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfaGFzICJMQUJFTCIgJExBQkVMICRERVZJQ0UgXAorIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kIExBQkVMICckTEFCRUwnIG9uICRERVZJQ0UiICRERVZJQ0UKKworTERfTElCUkFSWV9QQVRIPSIkVV9MX0xJQlJBUllfUEFUSCIgXAorCSRUU19DTURfU1dBUE9OIC1MICRMQUJFTCAyPiYxID4+ICRUU19PVVRQVVQKKworZ3JlcCAtcSAkREVWSUNFIC9wcm9jL3N3YXBzIHx8IHRzX2RpZSAiQ2Fubm90IGZvdW5kICRERVZJQ0UgaW4gL3Byb2Mvc3dhcHMiICRERVZJQ0UKKwordHNfc3dhcG9mZiAkREVWSUNFCit0c19kZXZpY2VfZGVpbml0ICRERVZJQ0UKKwordHNfbG9nICJTdWNjZXNzIgordHNfZmluYWxpemUKKwpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvc3dhcG9uL3V1aWQgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXN0cy90cy9zd2Fwb24vdXVpZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYzAxNWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGVzdHMvdHMvc3dhcG9uL3V1aWQKQEAgLTAsMCArMSw0NyBAQAorIyEvYmluL2Jhc2gKKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDcgS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHV0aWwtbGludXgtbmcuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCitUU19UT1BESVI9IiQoZGlybmFtZSAkMCkvLi4vLi4iCitUU19ERVNDPSJieSB1dWlkIgorCisuICRUU19UT1BESVIvZnVuY3Rpb25zLnNoCit0c19pbml0ICIkKiIKK3RzX3NraXBfbm9ucm9vdAorCitzZXQgLW8gcGlwZWZhaWwKKworREVWSUNFPSQodHNfZGV2aWNlX2luaXQpCitbICIkPyIgPT0gMCBdIHx8IHRzX2RpZSAiQ2Fubm90IGluaXQgZGV2aWNlIgorCiskVFNfQ01EX01LU1dBUCAkREVWSUNFID4gL2Rldi9udWxsIDI+PiAkVFNfT1VUUFVUIFwKKyB8fCB0c19kaWUgIkNhbm5vdCBtYWtlIHN3YXAgJERFVklDRSIgJERFVklDRQorCit0c19kZXZpY2VfaGFzX3V1aWQgJERFVklDRSB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCBVVUlEIG9uICRERVZJQ0UiICRERVZJQ0UKKworVVVJRD0kKHRzX3V1aWRfYnlfZGV2bmFtZSAkREVWSUNFKQorCitMRF9MSUJSQVJZX1BBVEg9IiRVX0xfTElCUkFSWV9QQVRIIiBcCisJJFRTX0NNRF9TV0FQT04gLVUgJFVVSUQgMj4mMSA+PiAkVFNfT1VUUFVUCisKK2dyZXAgLXEgJERFVklDRSAvcHJvYy9zd2FwcyB8fCB0c19kaWUgIkNhbm5vdCBmb3VuZCAkREVWSUNFIGluIC9wcm9jL3N3YXBzIiAkREVWSUNFCisKK3RzX3N3YXBvZmYgJERFVklDRQordHNfZGV2aWNlX2RlaW5pdCAkREVWSUNFCisKK3RzX2xvZyAiU3VjY2VzcyIKK3RzX2ZpbmFsaXplCisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvTElDRU5TRS5wZyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvTElDRU5TRS5wZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODA1YTMxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9MSUNFTlNFLnBnCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKglDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMSBHdW5uYXIgUml0dGVyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gW2RlbGV0ZWRdCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIEd1bm5hciBSaXR0ZXIgbm9yIHRoZSBuYW1lcyBvZiBoaXMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR1VOTkFSIFJJVFRFUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR1VOTkFSIFJJVFRFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL01ha2VmaWxlLmFtIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZWM4OTViCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDMzIEBACitpbmNsdWRlICQodG9wX3NyY2RpcikvY29uZmlnL2luY2x1ZGUtTWFrZWZpbGUuYW0KKworRVhUUkFfRElTVCA9IFJFQURNRS5jbGVhciBSRUFETUUuY29sCisKK3VzcmJpbl9leGVjX1BST0dSQU1TID0gY29sIGNvbGNydCBjb2xybSBjb2x1bW4gaGV4ZHVtcCByZXYgbGluZSB0YWlsZgorCitoZXhkdW1wX1NPVVJDRVMgPSBoZXhkdW1wLmMgY29udi5jIGRpc3BsYXkuYyBoZXhzeW50YXguYyBvZHN5bnRheC5jIHBhcnNlLmMgXAorCQkgIGhleGR1bXAuaAorCitkaXN0X21hbl9NQU5TID0gY29sLjEgY29sY3J0LjEgY29scm0uMSBjb2x1bW4uMSBoZXhkdW1wLjEgcmV2LjEgbGluZS4xIHRhaWxmLjEKKworaWYgSEFWRV9OQ1VSU0VTCitiaW5fUFJPR1JBTVMgPSBtb3JlCit1c3JiaW5fZXhlY19QUk9HUkFNUyArPSB1bCBwZworaWYgSEFWRV9USU5GTworbW9yZV9MREFERCA9IC1sdGluZm8KK3BnX0xEQUREID0gLWx0aW5mbyBATkNVUlNFU19MSUJTQAordWxfTERBREQgPSAtbHRpbmZvCitlbHNlCittb3JlX0xEQUREID0gQE5DVVJTRVNfTElCU0AKK3BnX0xEQUREID0gQE5DVVJTRVNfTElCU0AKK3VsX0xEQUREID0gQE5DVVJTRVNfTElCU0AKK2VuZGlmCitkaXN0X21hbl9NQU5TICs9IHVsLjEgbW9yZS4xIHBnLjEKK2Vsc2UKK2lmIEhBVkVfVEVSTUNBUAorYmluX1BST0dSQU1TID0gbW9yZQorbW9yZV9MREFERCA9IC1sdGVybWNhcAorZGlzdF9tYW5fTUFOUyArPSBtb3JlLjEKK2VuZGlmCitlbmRpZgorCitFWFRSQV9ESVNUICs9IFJFQURNRS5wZyBMSUNFTlNFLnBnCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL01ha2VmaWxlLmluIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTY1ZWJhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDgyNyBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitESVNUX0NPTU1PTiA9ICQoYW1fX2Rpc3Rfbm9pbnN0X0RBVEFfRElTVCkgJChkaXN0X21hbl9NQU5TKSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWcvaW5jbHVkZS1NYWtlZmlsZS5hbQordXNyYmluX2V4ZWNfUFJPR1JBTVMgPSBjb2wkKEVYRUVYVCkgY29sY3J0JChFWEVFWFQpIGNvbHJtJChFWEVFWFQpIFwKKwljb2x1bW4kKEVYRUVYVCkgaGV4ZHVtcCQoRVhFRVhUKSByZXYkKEVYRUVYVCkgbGluZSQoRVhFRVhUKSBcCisJdGFpbGYkKEVYRUVYVCkgJChhbV9fRVhFRVhUXzEpCitASEFWRV9OQ1VSU0VTX0ZBTFNFQEBIQVZFX1RFUk1DQVBfVFJVRUBiaW5fUFJPR1JBTVMgPSBtb3JlJChFWEVFWFQpCitASEFWRV9OQ1VSU0VTX1RSVUVAYmluX1BST0dSQU1TID0gbW9yZSQoRVhFRVhUKQorQEhBVkVfTkNVUlNFU19UUlVFQGFtX19hcHBlbmRfMSA9IHVsIHBnCitASEFWRV9OQ1VSU0VTX1RSVUVAYW1fX2FwcGVuZF8yID0gdWwuMSBtb3JlLjEgcGcuMQorQEhBVkVfTkNVUlNFU19GQUxTRUBASEFWRV9URVJNQ0FQX1RSVUVAYW1fX2FwcGVuZF8zID0gbW9yZS4xCitzdWJkaXIgPSB0ZXh0LXV0aWxzCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9nZXR0ZXh0Lm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2d0ay1kb2MubTQgJCh0b3Bfc3JjZGlyKS9tNC9pY29udi5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItbGQubTQgJCh0b3Bfc3JjZGlyKS9tNC9saWItbGluay5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9saWItcHJlZml4Lm00ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L25scy5tNCAkKHRvcF9zcmNkaXIpL200L3BvLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L3Byb2d0ZXN0Lm00ICQodG9wX3NyY2RpcikvbTQvdGxzLm00IFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvbWtpbnN0YWxsZGlycworQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9jb25maWcuaAorQ09ORklHX0NMRUFOX0ZJTEVTID0KK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgXAorCSIkKERFU1RESVIpJChtYW4xZGlyKSIKK0BIQVZFX05DVVJTRVNfVFJVRUBhbV9fRVhFRVhUXzEgPSB1bCQoRVhFRVhUKSBwZyQoRVhFRVhUKQorUFJPR1JBTVMgPSAkKGJpbl9QUk9HUkFNUykgJCh1c3JiaW5fZXhlY19QUk9HUkFNUykKK2NvbF9TT1VSQ0VTID0gY29sLmMKK2NvbF9PQkpFQ1RTID0gY29sLiQoT0JKRVhUKQorY29sX0xEQUREID0gJChMREFERCkKK0FNX1ZfbHQgPSAkKGFtX192X2x0XyQoVikpCithbV9fdl9sdF8gPSAkKGFtX192X2x0XyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfbHRfMCA9IC0tc2lsZW50Citjb2xjcnRfU09VUkNFUyA9IGNvbGNydC5jCitjb2xjcnRfT0JKRUNUUyA9IGNvbGNydC4kKE9CSkVYVCkKK2NvbGNydF9MREFERCA9ICQoTERBREQpCitjb2xybV9TT1VSQ0VTID0gY29scm0uYworY29scm1fT0JKRUNUUyA9IGNvbHJtLiQoT0JKRVhUKQorY29scm1fTERBREQgPSAkKExEQUREKQorY29sdW1uX1NPVVJDRVMgPSBjb2x1bW4uYworY29sdW1uX09CSkVDVFMgPSBjb2x1bW4uJChPQkpFWFQpCitjb2x1bW5fTERBREQgPSAkKExEQUREKQorYW1faGV4ZHVtcF9PQkpFQ1RTID0gaGV4ZHVtcC4kKE9CSkVYVCkgY29udi4kKE9CSkVYVCkgXAorCWRpc3BsYXkuJChPQkpFWFQpIGhleHN5bnRheC4kKE9CSkVYVCkgb2RzeW50YXguJChPQkpFWFQpIFwKKwlwYXJzZS4kKE9CSkVYVCkKK2hleGR1bXBfT0JKRUNUUyA9ICQoYW1faGV4ZHVtcF9PQkpFQ1RTKQoraGV4ZHVtcF9MREFERCA9ICQoTERBREQpCitsaW5lX1NPVVJDRVMgPSBsaW5lLmMKK2xpbmVfT0JKRUNUUyA9IGxpbmUuJChPQkpFWFQpCitsaW5lX0xEQUREID0gJChMREFERCkKK21vcmVfU09VUkNFUyA9IG1vcmUuYworbW9yZV9PQkpFQ1RTID0gbW9yZS4kKE9CSkVYVCkKK21vcmVfREVQRU5ERU5DSUVTID0KK3BnX1NPVVJDRVMgPSBwZy5jCitwZ19PQkpFQ1RTID0gcGcuJChPQkpFWFQpCitwZ19ERVBFTkRFTkNJRVMgPQorcmV2X1NPVVJDRVMgPSByZXYuYworcmV2X09CSkVDVFMgPSByZXYuJChPQkpFWFQpCityZXZfTERBREQgPSAkKExEQUREKQordGFpbGZfU09VUkNFUyA9IHRhaWxmLmMKK3RhaWxmX09CSkVDVFMgPSB0YWlsZi4kKE9CSkVYVCkKK3RhaWxmX0xEQUREID0gJChMREFERCkKK3VsX1NPVVJDRVMgPSB1bC5jCit1bF9PQkpFQ1RTID0gdWwuJChPQkpFWFQpCit1bF9ERVBFTkRFTkNJRVMgPQorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpIFwKKwkkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpIFwKKwkkKEFNX0NGTEFHUykgJChDRkxBR1MpCitBTV9WX0NDID0gJChhbV9fdl9DQ18kKFYpKQorYW1fX3ZfQ0NfID0gJChhbV9fdl9DQ18kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0NDXzAgPSBAZWNobyAiICBDQyAgICAiICRAOworQU1fVl9hdCA9ICQoYW1fX3ZfYXRfJChWKSkKK2FtX192X2F0XyA9ICQoYW1fX3ZfYXRfJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkpCithbV9fdl9hdF8wID0gQAorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitBTV9WX0NDTEQgPSAkKGFtX192X0NDTERfJChWKSkKK2FtX192X0NDTERfID0gJChhbV9fdl9DQ0xEXyQoQU1fREVGQVVMVF9WRVJCT1NJVFkpKQorYW1fX3ZfQ0NMRF8wID0gQGVjaG8gIiAgQ0NMRCAgIiAkQDsKK0FNX1ZfR0VOID0gJChhbV9fdl9HRU5fJChWKSkKK2FtX192X0dFTl8gPSAkKGFtX192X0dFTl8kKEFNX0RFRkFVTFRfVkVSQk9TSVRZKSkKK2FtX192X0dFTl8wID0gQGVjaG8gIiAgR0VOICAgIiAkQDsKK1NPVVJDRVMgPSBjb2wuYyBjb2xjcnQuYyBjb2xybS5jIGNvbHVtbi5jICQoaGV4ZHVtcF9TT1VSQ0VTKSBsaW5lLmMgXAorCW1vcmUuYyBwZy5jIHJldi5jIHRhaWxmLmMgdWwuYworRElTVF9TT1VSQ0VTID0gY29sLmMgY29sY3J0LmMgY29scm0uYyBjb2x1bW4uYyAkKGhleGR1bXBfU09VUkNFUykgXAorCWxpbmUuYyBtb3JlLmMgcGcuYyByZXYuYyB0YWlsZi5jIHVsLmMKK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorICAgICopIGY9JCRwOzsgXAorICBlc2FjOworYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworYW1fX2luc3RhbGxfbWF4ID0gNDAKK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgorYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAorICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKK2FtX19iYXNlX2xpc3QgPSBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKK21hbjFkaXIgPSAkKG1hbmRpcikvbWFuMQorTlJPRkYgPSBucm9mZgorTUFOUyA9ICQoZGlzdF9tYW5fTUFOUykKK2FtX19kaXN0X25vaW5zdF9EQVRBX0RJU1QgPSBjb2wuMSBjb2xjcnQuMSBjb2xybS4xIGNvbHVtbi4xIGhleGR1bXAuMSBcCisJcmV2LjEgbGluZS4xIHRhaWxmLjEgdWwuMSBtb3JlLjEgcGcuMQorREFUQSA9ICQoZGlzdF9ub2luc3RfREFUQSkKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FNX0RFRkFVTFRfVkVSQk9TSVRZID0gQEFNX0RFRkFVTFRfVkVSQk9TSVRZQAorQVIgPSBAQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JMS0lEX0NGTEFHUyA9IEBCTEtJRF9DRkxBR1NACitCTEtJRF9MSUJTID0gQEJMS0lEX0xJQlNACitCTEtJRF9MSUJTX1NUQVRJQyA9IEBCTEtJRF9MSUJTX1NUQVRJQ0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitHTVNHRk1UID0gQEdNU0dGTVRACitHUkVQID0gQEdSRVBACitHVEtET0NfQ0hFQ0sgPSBAR1RLRE9DX0NIRUNLQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0lOVExMSUJTID0gQElOVExMSUJTQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJCTEtJRF9EQVRFID0gQExJQkJMS0lEX0RBVEVACitMSUJCTEtJRF9WRVJTSU9OID0gQExJQkJMS0lEX1ZFUlNJT05ACitMSUJCTEtJRF9WRVJTSU9OX0lORk8gPSBATElCQkxLSURfVkVSU0lPTl9JTkZPQAorTElCSUNPTlYgPSBATElCSUNPTlZACitMSUJJTlRMID0gQExJQklOVExACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJVVUlEX1ZFUlNJT04gPSBATElCVVVJRF9WRVJTSU9OQAorTElCVVVJRF9WRVJTSU9OX0lORk8gPSBATElCVVVJRF9WRVJTSU9OX0lORk9ACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQklDT05WID0gQExUTElCSUNPTlZACitMVExJQklOVEwgPSBATFRMSUJJTlRMQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTUtJTlNUQUxMRElSUyA9IEBNS0lOU1RBTExESVJTQAorTVNHRk1UID0gQE1TR0ZNVEAKK01TR01FUkdFID0gQE1TR01FUkdFQAorTkNVUlNFU19MSUJTID0gQE5DVVJTRVNfTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BLR19DT05GSUcgPSBAUEtHX0NPTkZJR0AKK1BPU1VCID0gQFBPU1VCQAorUkFOTElCID0gQFJBTkxJQkAKK1NFRCA9IEBTRURACitTRUxJTlVYX0xJQlMgPSBAU0VMSU5VWF9MSUJTQAorU0VMSU5VWF9MSUJTX1NUQVRJQyA9IEBTRUxJTlVYX0xJQlNfU1RBVElDQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUUklQID0gQFNUUklQQAorU1VJRF9DRkxBR1MgPSBAU1VJRF9DRkxBR1NACitTVUlEX0xERkxBR1MgPSBAU1VJRF9MREZMQUdTQAorVVNFX05MUyA9IEBVU0VfTkxTQAorVVVJRF9DRkxBR1MgPSBAVVVJRF9DRkxBR1NACitVVUlEX0xJQlMgPSBAVVVJRF9MSUJTQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorWEdFVFRFWFQgPSBAWEdFVFRFWFRACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZGlybmFtZSA9IEBsaWJkaXJuYW1lQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit1c3JiaW5fZXhlY2RpciA9IEB1c3JiaW5fZXhlY2RpckAKK3VzcmxpYl9leGVjZGlyID0gQHVzcmxpYl9leGVjZGlyQAordXNyc2Jpbl9leGVjZGlyID0gQHVzcnNiaW5fZXhlY2RpckAKK0FNX0NQUEZMQUdTID0gLWluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKwktRExPQ0FMRURJUj1cIiQobG9jYWxlZGlyKVwiCisKK0FNX0NGTEFHUyA9IC1mc2lnbmVkLWNoYXIKK0FNX0xERkxBR1MgPSAKKworIyBBdXRvbWFrZSAoYXQgbGVhc3QgdXAgdG8gMS4xMCkgbWlzaGFuZGxlcyBkaXN0X21hbl9NQU5TIGluc2lkZSBjb25kaXRpb25hbHMuCisjIFVubGlrZSB3aXRoIG90aGVyIGRpc3QgcHJpbWFyaWVzLCB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCBpZiB0aGUKKyMgY29uZGl0aW9uYWwgaXMgZmFsc2UuCisjIFdvcmsgdGhlIGJ1ZyBhcm91bmQgdW50aWwgaXQgaXMgZml4ZWQ6CitkaXN0X25vaW5zdF9EQVRBID0gJChkaXN0X21hbl9NQU5TKQorCisjIFBhdGhzIHRvIGluLXRyZWUgbGlicmFyaWVzICh1c2UgdWxfIHByZWZpeCB0byBhdm9pZCBwb3NzaWJsZSBjb2xsaXNpb25zKQorIworIyBibGtpZAordWxfbGliYmxraWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9idWlsZGRpciA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjCit1bF9saWJibGtpZF9sYSA9ICQodG9wX2J1aWxkZGlyKS9zaGxpYnMvYmxraWQvc3JjL2xpYmJsa2lkLmxhCisKKyMgYmxraWQuaCBpcyBnZW5lcmF0ZWQgYnkgLi9jb25maWd1cmUgc2NyaXB0IGFuZCBzdG9yZWQgaW4gYnVpbGQgZGlyZWN0b3J5Cit1bF9saWJibGtpZF9pbmNkaXIgPSAkKHVsX2xpYmJsa2lkX2J1aWxkZGlyKQorCisjIHV1aWQKK3VsX2xpYnV1aWRfc3JjZGlyID0gJCh0b3Bfc3JjZGlyKS9zaGxpYnMvdXVpZC9zcmMKK3VsX2xpYnV1aWRfYnVpbGRkaXIgPSAkKHRvcF9idWlsZGRpcikvc2hsaWJzL3V1aWQvc3JjCit1bF9saWJ1dWlkX2xhID0gJCh0b3BfYnVpbGRkaXIpL3NobGlicy91dWlkL3NyYy9saWJ1dWlkLmxhCitFWFRSQV9ESVNUID0gUkVBRE1FLmNsZWFyIFJFQURNRS5jb2wgUkVBRE1FLnBnIExJQ0VOU0UucGcKK2hleGR1bXBfU09VUkNFUyA9IGhleGR1bXAuYyBjb252LmMgZGlzcGxheS5jIGhleHN5bnRheC5jIG9kc3ludGF4LmMgcGFyc2UuYyBcCisJCSAgaGV4ZHVtcC5oCisKK2Rpc3RfbWFuX01BTlMgPSBjb2wuMSBjb2xjcnQuMSBjb2xybS4xIGNvbHVtbi4xIGhleGR1bXAuMSByZXYuMSBsaW5lLjEgXAorCXRhaWxmLjEgJChhbV9fYXBwZW5kXzIpICQoYW1fX2FwcGVuZF8zKQorQEhBVkVfTkNVUlNFU19GQUxTRUBASEFWRV9URVJNQ0FQX1RSVUVAbW9yZV9MREFERCA9IC1sdGVybWNhcAorQEhBVkVfTkNVUlNFU19UUlVFQEBIQVZFX1RJTkZPX0ZBTFNFQG1vcmVfTERBREQgPSBATkNVUlNFU19MSUJTQAorQEhBVkVfTkNVUlNFU19UUlVFQEBIQVZFX1RJTkZPX1RSVUVAbW9yZV9MREFERCA9IC1sdGluZm8KK0BIQVZFX05DVVJTRVNfVFJVRUBASEFWRV9USU5GT19GQUxTRUBwZ19MREFERCA9IEBOQ1VSU0VTX0xJQlNACitASEFWRV9OQ1VSU0VTX1RSVUVAQEhBVkVfVElORk9fVFJVRUBwZ19MREFERCA9IC1sdGluZm8gQE5DVVJTRVNfTElCU0AKK0BIQVZFX05DVVJTRVNfVFJVRUBASEFWRV9USU5GT19GQUxTRUB1bF9MREFERCA9IEBOQ1VSU0VTX0xJQlNACitASEFWRV9OQ1VSU0VTX1RSVUVAQEhBVkVfVElORk9fVFJVRUB1bF9MREFERCA9IC1sdGluZm8KK2FsbDogYWxsLWFtCisKKy5TVUZGSVhFUzoKKy5TVUZGSVhFUzogLmMgLmxvIC5vIC5vYmoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9pbmNsdWRlLU1ha2VmaWxlLmFtICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZm9yZWlnbiB0ZXh0LXV0aWxzL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZm9yZWlnbiB0ZXh0LXV0aWxzL01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKK2luc3RhbGwtYmluUFJPR1JBTVM6ICQoYmluX1BST0dSQU1TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQoYmluZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoYmluZGlyKSIKKwlAbGlzdD0nJChiaW5fUFJPR1JBTVMpJzsgdGVzdCAtbiAiJChiaW5kaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisJc2VkICdzLyQoRVhFRVhUKSQkLy8nIHwgXAorCXdoaWxlIHJlYWQgcCBwMTsgZG8gaWYgdGVzdCAtZiAkJHAgfHwgdGVzdCAtZiAkJHAxOyBcCisJICB0aGVuIGVjaG8gIiQkcCI7IGVjaG8gIiQkcCI7IGVsc2UgOjsgZmk7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAncDtzLC4qLywsO247aCcgLWUgJ3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJyB8IFwKKwlzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxIH0gXAorCSAgeyBkPSQkMzsgaWYgKGRpcnNbZF0gIT0gMSkgeyBwcmludCAiZCIsIGQ7IGRpcnNbZF0gPSAxIH0gXAorCSAgICBpZiAoJCQyID09ICQkNCkgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgIGVsc2UgeyBwcmludCAiZiIsICQkMyAiLyIgJCQ0LCAkJDE7IH0gfSBcCisJICBFTkQgeyBmb3IgKGQgaW4gZmlsZXMpIHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCisJd2hpbGUgcmVhZCB0eXBlIGRpciBmaWxlczsgZG8gXAorCSAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKKwkgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAnJChERVNURElSKSQoYmluZGlyKSQkZGlyJyI7IFwKKwkgICAgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgIiQoREVTVERJUikkKGJpbmRpcikkJGRpciIgfHwgZXhpdCAkJD87IFwKKwkgICAgfSBcCisJOyBkb25lCisKK3VuaW5zdGFsbC1iaW5QUk9HUkFNUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKGJpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKwkgIHNlZCAtZSAnaDtzLF4uKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pJyBcCisJICAgICAgLWUgJ3MvJCQvJChFWEVFWFQpLycgYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKGJpbmRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJChiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK2NsZWFuLWJpblBST0dSQU1TOgorCUBsaXN0PSckKGJpbl9QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QKK2luc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUzogJCh1c3JiaW5fZXhlY19QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHVzcmJpbl9leGVjZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpIgorCUBsaXN0PSckKHVzcmJpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisJc2VkICdzLyQoRVhFRVhUKSQkLy8nIHwgXAorCXdoaWxlIHJlYWQgcCBwMTsgZG8gaWYgdGVzdCAtZiAkJHAgfHwgdGVzdCAtZiAkJHAxOyBcCisJICB0aGVuIGVjaG8gIiQkcCI7IGVjaG8gIiQkcCI7IGVsc2UgOjsgZmk7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAncDtzLC4qLywsO247aCcgLWUgJ3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJyB8IFwKKwlzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxIH0gXAorCSAgeyBkPSQkMzsgaWYgKGRpcnNbZF0gIT0gMSkgeyBwcmludCAiZCIsIGQ7IGRpcnNbZF0gPSAxIH0gXAorCSAgICBpZiAoJCQyID09ICQkNCkgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgIGVsc2UgeyBwcmludCAiZiIsICQkMyAiLyIgJCQ0LCAkJDE7IH0gfSBcCisJICBFTkQgeyBmb3IgKGQgaW4gZmlsZXMpIHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCisJd2hpbGUgcmVhZCB0eXBlIGRpciBmaWxlczsgZG8gXAorCSAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKKwkgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAnJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpJCRkaXInIjsgXAorCSAgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTExfUFJPR1JBTSkgJCRmaWxlcyAiJChERVNURElSKSQodXNyYmluX2V4ZWNkaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKHVzcmJpbl9leGVjX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQodXNyYmluX2V4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJCh1c3JiaW5fZXhlY2RpcikiICYmIHJtIC1mICQkZmlsZXMKKworY2xlYW4tdXNyYmluX2V4ZWNQUk9HUkFNUzoKKwlAbGlzdD0nJCh1c3JiaW5fZXhlY19QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QKK2NvbCQoRVhFRVhUKTogJChjb2xfT0JKRUNUUykgJChjb2xfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgY29sJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGNvbF9PQkpFQ1RTKSAkKGNvbF9MREFERCkgJChMSUJTKQorY29sY3J0JChFWEVFWFQpOiAkKGNvbGNydF9PQkpFQ1RTKSAkKGNvbGNydF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBjb2xjcnQkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQoY29sY3J0X09CSkVDVFMpICQoY29sY3J0X0xEQUREKSAkKExJQlMpCitjb2xybSQoRVhFRVhUKTogJChjb2xybV9PQkpFQ1RTKSAkKGNvbHJtX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGNvbHJtJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGNvbHJtX09CSkVDVFMpICQoY29scm1fTERBREQpICQoTElCUykKK2NvbHVtbiQoRVhFRVhUKTogJChjb2x1bW5fT0JKRUNUUykgJChjb2x1bW5fREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgY29sdW1uJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGNvbHVtbl9PQkpFQ1RTKSAkKGNvbHVtbl9MREFERCkgJChMSUJTKQoraGV4ZHVtcCQoRVhFRVhUKTogJChoZXhkdW1wX09CSkVDVFMpICQoaGV4ZHVtcF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBoZXhkdW1wJChFWEVFWFQpCisJJChBTV9WX0NDTEQpJChMSU5LKSAkKGhleGR1bXBfT0JKRUNUUykgJChoZXhkdW1wX0xEQUREKSAkKExJQlMpCitsaW5lJChFWEVFWFQpOiAkKGxpbmVfT0JKRUNUUykgJChsaW5lX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGxpbmUkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQobGluZV9PQkpFQ1RTKSAkKGxpbmVfTERBREQpICQoTElCUykKK21vcmUkKEVYRUVYVCk6ICQobW9yZV9PQkpFQ1RTKSAkKG1vcmVfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgbW9yZSQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChtb3JlX09CSkVDVFMpICQobW9yZV9MREFERCkgJChMSUJTKQorcGckKEVYRUVYVCk6ICQocGdfT0JKRUNUUykgJChwZ19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBwZyQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChwZ19PQkpFQ1RTKSAkKHBnX0xEQUREKSAkKExJQlMpCityZXYkKEVYRUVYVCk6ICQocmV2X09CSkVDVFMpICQocmV2X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHJldiQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJChyZXZfT0JKRUNUUykgJChyZXZfTERBREQpICQoTElCUykKK3RhaWxmJChFWEVFWFQpOiAkKHRhaWxmX09CSkVDVFMpICQodGFpbGZfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdGFpbGYkKEVYRUVYVCkKKwkkKEFNX1ZfQ0NMRCkkKExJTkspICQodGFpbGZfT0JKRUNUUykgJCh0YWlsZl9MREFERCkgJChMSUJTKQordWwkKEVYRUVYVCk6ICQodWxfT0JKRUNUUykgJCh1bF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB1bCQoRVhFRVhUKQorCSQoQU1fVl9DQ0xEKSQoTElOSykgJCh1bF9PQkpFQ1RTKSAkKHVsX0xEQUREKSAkKExJQlMpCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jb2wuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2NvbGNydC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY29scm0uUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2NvbHVtbi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY29udi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZGlzcGxheS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvaGV4ZHVtcC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvaGV4c3ludGF4LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saW5lLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tb3JlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9vZHN5bnRheC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcGFyc2UuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3BnLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9yZXYuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3RhaWxmLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS91bC5Qb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKEFNX1ZfQ0MpJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQU1fVl9DQykgQEFNX0JBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9DQykkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQU1fVl9hdCkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX0NDKSQoTFRDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChBTV9WX2F0KSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKEFNX1ZfQ0MpIEBBTV9CQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworaW5zdGFsbC1tYW4xOiAkKGRpc3RfbWFuX01BTlMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChtYW4xZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobWFuMWRpcikiCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuMWRpcikiIHx8IGV4aXQgMDsgXAorCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKwl9IHwgd2hpbGUgcmVhZCBwOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAnbjtzLC4qLywsO3A7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJyB8IFwKKwlzZWQgJ047TjtzLFxuLCAsZycgfCB7IFwKKwlsaXN0PTsgd2hpbGUgcmVhZCBmaWxlIGJhc2UgaW5zdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVuIGxpc3Q9IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0JyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICIkJGZpbGUiICIkKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QiIHx8IGV4aXQgJCQ/OyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKG1hbjFkaXIpJyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBleGl0ICQkPzsgfTsgXAorCWRvbmU7IH0KKwordW5pbnN0YWxsLW1hbjE6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCisJZmlsZXM9YHsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQoZGlzdF9tYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKwl9IHwgc2VkIC1lICdzLC4qLywsO2g7cywuKlwuLCw7cyxeW14xXVswLTlhLXpdKiQkLDEsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCdgOyBcCisJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICBlY2hvICIgKCBjZCAnJChERVNURElSKSQobWFuMWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCSAgY2QgIiQoREVTVERJUikkKG1hbjFkaXIpIiAmJiBybSAtZiAkJGZpbGVzOyB9CisKK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJbWtpZCAtZklEICQkdW5pcXVlCit0YWdzOiBUQUdTCisKK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXNoaWZ0OyBcCisJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisJICBlbHNlIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICQkdW5pcXVlOyBcCisJICBmaTsgXAorCWZpCitjdGFnczogQ1RBR1MKK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKwkgICAgICQkdW5pcXVlCisKK0dUQUdTOgorCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisKK2Rpc3RjbGVhbi10YWdzOgorCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBsaXN0PSckKE1BTlMpJzsgaWYgdGVzdCAtbiAiJCRsaXN0IjsgdGhlbiBcCisJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICAgIGlmIHRlc3QgLWYgIiQkZCQkcCI7IHRoZW4gZWNobyAiJCRkJCRwIjsgZWxzZSA6OyBmaTsgZG9uZWA7IFwKKwkgIGlmIHRlc3QgLW4gIiQkbGlzdCIgJiYgXAorCSAgICBncmVwICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCA+L2Rldi9udWxsOyB0aGVuIFwKKwkgICAgZWNobyAiZXJyb3I6IGZvdW5kIG1hbiBwYWdlcyBjb250YWluaW5nIHRoZSBcYG1pc3NpbmcgaGVscDJtYW4nIHJlcGxhY2VtZW50IHRleHQ6IiA+JjI7IFwKKwkgICAgZ3JlcCAtbCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgfCBzZWQgJ3MvXi8gICAgICAgICAvJyA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHRvIGZpeCB0aGVtLCBpbnN0YWxsIGhlbHAybWFuLCByZW1vdmUgYW5kIHJlZ2VuZXJhdGUgdGhlIG1hbiBwYWdlczsiID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdHlwaWNhbGx5IFxgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB3aWxsIHJlbW92ZSB0aGVtIiA+JjI7IFwKKwkgICAgZXhpdCAxOyBcCisJICBlbHNlIDo7IGZpOyBcCisJZWxzZSA6OyBmaQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLWFtCithbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpICQoTUFOUykgJChEQVRBKQoraW5zdGFsbGRpcnM6CisJZm9yIGRpciBpbiAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKHVzcmJpbl9leGVjZGlyKSIgIiQoREVTVERJUikkKG1hbjFkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWJpblBST0dSQU1TIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisJY2xlYW4tdXNyYmluX2V4ZWNQUk9HUkFNUyBtb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLWFtCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1hbQorCitodG1sLWFtOgorCitpbmZvOiBpbmZvLWFtCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1tYW4KKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtYmluUFJPR1JBTVMgaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TCisKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisKK2luc3RhbGwtaHRtbC1hbToKKworaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjogaW5zdGFsbC1tYW4xCisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1iaW5QUk9HUkFNUyB1bmluc3RhbGwtbWFuIFwKKwl1bmluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUworCit1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMQorCisuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisKKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1iaW5QUk9HUkFNUyBcCisJY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLXVzcmJpbl9leGVjUFJPR1JBTVMgY3RhZ3MgXAorCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWJpblBST0dSQU1TIFwKKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAorCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIFwKKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorCWluc3RhbGwtc3RyaXAgaW5zdGFsbC11c3JiaW5fZXhlY1BST0dSQU1TIGluc3RhbGxjaGVjayBcCisJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1iaW5QUk9HUkFNUyBcCisJdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuMSB1bmluc3RhbGwtdXNyYmluX2V4ZWNQUk9HUkFNUworCisKKyQodWxfbGliYmxraWRfbGEpOgorCSQoTUFLRSkgLUMgJCh1bF9saWJibGtpZF9idWlsZGRpcikKKworJCh1bF9saWJ1dWlkX2xhKToKKwkkKE1BS0UpIC1DICQodWxfbGlidXVpZF9idWlsZGRpcikKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9SRUFETUUuY2xlYXIgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL1JFQURNRS5jbGVhcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Njg0MTMyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9SRUFETUUuY2xlYXIKQEAgLTAsMCArMSw3IEBACitSZWRIYXQgYW5kIFN1U0UgdGFrZSB0aGUgcHJvZ3JhbSBjbGVhciBmcm9tIG5jdXJzZXMuCisgQSAyMEtCIHByb2dyYW0gZXF1aXZhbGVudCB0byAidHB1dCBjbGVhciIuCisKK1NsYWNrd2FyZSB1c2VzIHRoZSBzY3JpcHQuCisKK1NvLCBib3RoIHZlcnNpb25zIHdpbGwgYmVoYXZlIGlkZW50aWNhbGx5LCBhbmQKK1NsYWNrd2FyZSBzYXZlcyAyMCBLQi4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvUkVBRE1FLmNvbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvUkVBRE1FLmNvbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTdkZDZjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9SRUFETUUuY29sCkBAIC0wLDAgKzEsNDggQEAKKyMJQCgjKVJFQURNRQk1LjEgKEJlcmtlbGV5KSA1LzIyLzkwCisKK2NvbCAtIGZpbHRlciBvdXQgcmV2ZXJzZSBsaW5lIGZlZWRzLgorCitPcHRpb25zIGFyZToKKwktYglkbyBub3QgcHJpbnQgYW55IGJhY2tzcGFjZXMgKGxhc3QgY2hhcmFjdGVyIHdyaXR0ZW4gaXMgcHJpbnRlZCkKKwktZglhbGxvdyBoYWxmIGxpbmUgZmVlZHMgaW4gb3V0cHV0LCBieSBkZWZhdWx0IGNoYXJhY3RlcnMgYmV0d2VlbgorCQlsaW5lcyBhcmUgcHVzaGVkIHRvIHRoZSBsaW5lIGJlbG93CisJLXgJZG8gbm90IGNvbXByZXNzIHNwYWNlcyBpbnRvIHRhYnMuCisJLWwgbnVtCWtlZXAgKGF0IGxlYXN0KSBudW0gbGluZXMgaW4gbWVtb3J5LCAxMjggYXJlIGtlcHQgYnkgZGVmYXVsdAorCitJbiB0aGUgMzJWIHNvdXJjZSBjb2RlIHRvIGNvbCgxKSB0aGUgZGVmYXVsdCBiZWhhdmlvciB3YXMgdG8gTk9UIGNvbXByZXNzCitzcGFjZXMgaW50byB0YWJzLiAgVGhlcmUgd2FzIGEgLWggb3B0aW9uIHdoaWNoIGNhdXNlZCBpdCB0byBjb21wcmVzcyBzcGFjZXMKK2ludG8gdGFicy4gIFRoZXJlIHdhcyBubyAteCBmbGFnLgorCitUaGUgMzJWIGRvY3VtZW50YXRpb24sIGhvd2V2ZXIsIHdhcyBjb25zaXN0ZW50IHdpdGggdGhlIFNWSUQgKGFjdHVhbGx5LCBWNworYXQgdGhlIHRpbWUpIGFuZCBkb2N1bWVudGVkIGEgLXggZmxhZyAoYXMgZGVmaW5lZCBhYm92ZSkgd2hpbGUgbWFraW5nIG5vCittZW50aW9uIG9mIGEgLWggZmxhZy4gIEp1c3QgYmVmb3JlIDQuM0JTRCB3ZW50IG91dCwgQ1NSRyB1cGRhdGVkIHRoZSBtYW51YWwKK3BhZ2UgdG8gcmVmbGVjdCB0aGUgd2F5IHRoZSBjb2RlIHdvcmtlZC4gIFN1c3BlY3RpbmcgdGhhdCB0aGlzIHdhcyBwcm9iYWJseQordGhlIHdyb25nIHdheSB0byBnbywgdGhpcyB2ZXJzaW9uIGFkb3B0cyB0aGUgU1ZJRCBkZWZhdWx0cywgYW5kIG5vIGxvbmdlcgorZG9jdW1lbnRzIHRoZSAtaCBvcHRpb24uCisKK1RoZSBTNSAtcCBmbGFnIGlzIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSBpdCBpc24ndCBjbGVhciB3aGF0IGl0IGRvZXMgKGxvb2tzCitsaWtlIGEga2x1ZGdlIGludHJvZHVjZWQgZm9yIGEgcGFydGljdWxhciBwcmludGVyKS4KKworS25vd24gZGlmZmVyZW5jZXMgYmV0d2VlbiBBVCZUJ3MgY29sIGFuZCB0aGlzIG9uZSAoIyBpcyBkZWxpbWl0ZXIpOgorCUlucHV0CQkJQVQmVCBjb2wJCXRoaXMgY29sCisJI1xuYWJjXEU3ZGVmXG4jCQkjICAgZGVmXG5hYmNcciMJCSMgICBkZWZcbmFiY1xuIworCSNhIwkJCSMjCQkJI2FcbiMKKwkJLSBsYXN0IGxpbmUgYWx3YXlzIGVuZHMgd2l0aCBhdCBsZWFzdCBvbmUgXG4gKG9yIFxFOSkKKwkjMTIzNDU2NyA4XG4jCQkjMTIzNDU2N1x0OFxuIwkJIzEyMzQ1NjcgOFxuIworCQktIHNpbmdsZSBzcGFjZSBub3QgZXhwYW5kZWQgdG8gdGFiCisgICAgIC1mICNhXEU4YlxuIwkJI2FiXG4jCQkJIyBiXEU5XHJhXG4jCisJCS0gY2FuIGJhY2sgdXAgcGFzdCBmaXJzdCBsaW5lIChhcyBmYXIgYXMgeW91IHdhbnQpIHNvIHlvdQorCQkgICpjYW4qIGhhdmUgYSBzdXBlciBzY3JpcHQgb24gdGhlIGZpcnN0IGxpbmUKKwkjXEU5X1xiYVxFOFxuYlxuIwkjXG5fXGJiXGJhXG4jCQkjXG5fXGJhXGJiXG4jCisJCS0gYWx3YXlzIHByaW50IGxhc3QgY2hhcmFjdGVyIHdyaXR0ZW4gdG8gYSBwb3NpdGlvbiwKKwkJICBBVCZUIGNvbCBjbGFpbXMgdG8gZG8gdGhpcyBidXQgZG9lc24ndC4KKworSWYgYSBjaGFyYWN0ZXIgaXMgdG8gYmUgcGxhY2VkIG9uIGEgbGluZSB0aGF0IGhhcyBiZWVuIGZsdXNoZWQsIGEgd2FybmluZworaXMgcHJvZHVjZWQgKHRoZSBBVCZUIGNvbCBpcyBzaWxlbnQpLiAgIFRoZSAtbCBmbGFnIChub3QgaW4gQVQmVCBjb2wpIGNhbgorYmUgdXNlZCB0byBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGxpbmVzIGJ1ZmZlcmVkIHRvIGF2b2lkIHRoZSBwcm9ibGVtLgorCitHZW5lcmFsIGFsZ29yaXRobTogYSBsaW1pdGVkIG51bWJlciBvZiBsaW5lcyBhcmUgYnVmZmVyZWQgaW4gYSBsaW5rZWQKK2xpc3QuICBXaGVuIGEgcHJpbnRhYmxlIGNoYXJhY3RlciBpcyByZWFkLCBpdCBpcyBwdXQgaW4gdGhlIGJ1ZmZlciBvZgordGhlIGN1cnJlbnQgbGluZSBhbG9uZyB3aXRoIHRoZSBjb2x1bW4gaXQncyBzdXBwb3NlZCB0byBiZSBpbi4gIFdoZW4KK2EgbGluZSBpcyBmbHVzaGVkLCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgbGluZSBhcmUgc29ydGVkIGFjY29yZGluZyB0bworY29sdW1uIGFuZCB0aGVuIHByaW50ZWQuCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL1JFQURNRS5wZyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvUkVBRE1FLnBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmOTJiODUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL1JFQURNRS5wZwpAQCAtMCwwICsxLDIzIEBACitSRUFETUUgZm9yIHRoZSAicGciIHV0aWxpdHkgZm9yIExpbnV4LgorCitUaGUgInBnIiB1dGlsaXR5IGlzIHRoZSBoaXN0b3JpYyBTeXN0ZW0gViBlcXVpdmFsZW50IHRvIEJTRCdzICJtb3JlIi4gVGhpcworaXMgYSBmcmVlIGNsb25lIG9mIGl0LCBhbmQgaXQgaXMgaW50ZW5kZWQgdG8gY29uZm9ybSB0byB0aGUgU1ZJRCA0IGFzIHdlbGwKK2FzIHRoZSBTVVN2MiBzcGVjaWZpY2F0aW9uIG9mIHRoaXMgY29tbWFuZC4KKworQ29udHJhc3RpbmcgdG8gdGhlIFN5c3RlbSBWIGltcGxlbWVudGF0aW9uLCB0aGlzIG9uZSBmaWx0ZXJzIGJhY2tzcGFjZQorZm9ybWF0dGluZyBzZXF1ZW5jZXMgd2hpbGUgc2VhcmNoaW5nLCBzbyB5b3UgY2FuIGNvbWZvcnRhYmx5IHNlYXJjaCBpbiBucm9mZgorb3V0cHV0IGxpa2UgbWFudWFsIHBhZ2VzLgorCitUaGlzIGNvZGUgdXNlcyByb3V0aW5lcyBhcyBkZWZpbmVkIGJ5IFNVU3YyLCBzbyBhIGdsaWJjIHZlcnNpb24gb2YgMi4xIG9yCitoaWdoZXIgaXMgcmVxdWlyZWQgb24gTGludXguIEEgY3Vyc2VzIGltcGxlbWVudGF0aW9uIChsaWtlIG5jdXJzZXMpIG11c3QKK2JlIHByZXNlbnQgYXMgd2VsbC4KKworSWYgbGFyZ2UgZmlsZXMgPiAyR0IgYXJlIHN1cHBvcnRlZCBieSB0aGUga2VybmVsIGFuZCB0aGUgQyBsaWJyYXJ5LCBwZyBpcworYWJsZSB0byBoYW5kbGUgdGhlbS4KKworUGxlYXNlIHNlbmQgY29tbWVudHMsIGJ1Zy1yZXBvcnRzIGFuZCBlc3BlY2lhbGx5IGJ1Zy1maXhlcyB0bworPGctckBiaWdmb290LmRlPiAuCisKK0d1bm5hciBSaXR0ZXIKK0ZyZWlidXJnIGkuIEJyLgorR2VybWFueQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2wuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvY29sLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZhZmJhMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvY29sLjEKQEAgLTAsMCArMSwxNDEgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5OTAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKy5cIiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLlwiCisuXCIgVGhpcyBjb2RlIGlzIGRlcml2ZWQgZnJvbSBzb2Z0d2FyZSBjb250cmlidXRlZCB0byBCZXJrZWxleSBieQorLlwiIE1pY2hhZWwgUmVuZGVsbC4KKy5cIgorLlwiIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLlwiIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLlwiIGFyZSBtZXQ6CisuXCIgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKy5cIiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisuXCIJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorLlwiCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorLlwiIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisuXCIgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisuXCIgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisuXCIKKy5cIiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorLlwiIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLlwiIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisuXCIgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisuXCIgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKy5cIiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworLlwiIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorLlwiIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisuXCIgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorLlwiIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKy5cIiBTVUNIIERBTUFHRS4KKy5cIgorLlwiICAgICBAKCMpY29sLjEJNi44IChCZXJrZWxleSkgNi8xNy85MQorLlwiCisuRGQgSnVuZSAxNywgMTk5MQorLkR0IENPTCAxCisuT3MKKy5TaCBOQU1FCisuTm0gY29sCisuTmQgZmlsdGVyIHJldmVyc2UgbGluZSBmZWVkcyBmcm9tIGlucHV0CisuU2ggU1lOT1BTSVMKKy5ObSBjb2wKKy5PcCBGbCBiZnB4CisuT3AgRmwgbCBBciBudW0KKy5TaCBERVNDUklQVElPTgorLk5tIENvbAorZmlsdGVycyBvdXQgcmV2ZXJzZSAoYW5kIGhhbGYgcmV2ZXJzZSkgbGluZSBmZWVkcyBzbyB0aGUgb3V0cHV0IGlzCitpbiB0aGUgY29ycmVjdCBvcmRlciB3aXRoIG9ubHkgZm9yd2FyZCBhbmQgaGFsZiBmb3J3YXJkIGxpbmUKK2ZlZWRzLCBhbmQgcmVwbGFjZXMgd2hpdGUtc3BhY2UgY2hhcmFjdGVycyB3aXRoIHRhYnMgd2hlcmUgcG9zc2libGUuCitUaGlzIGNhbiBiZSB1c2VmdWwgaW4gcHJvY2Vzc2luZyB0aGUgb3V0cHV0IG9mCisuWHIgbnJvZmYgMQorYW5kCisuWHIgdGJsICAxIC4KKy5QcAorLk5tIENvbAorcmVhZHMgZnJvbSBzdGFuZGFyZCBpbnB1dCBhbmQgd3JpdGVzIHRvIHN0YW5kYXJkIG91dHB1dC4KKy5QcAorVGhlIG9wdGlvbnMgYXJlIGFzIGZvbGxvd3M6CisuQmwgLXRhZyAtd2lkdGggIi1sbnVtIgorLkl0IEZsIGIKK0RvIG5vdCBvdXRwdXQgYW55IGJhY2tzcGFjZXMsIHByaW50aW5nIG9ubHkgdGhlIGxhc3QgY2hhcmFjdGVyCit3cml0dGVuIHRvIGVhY2ggY29sdW1uIHBvc2l0aW9uLgorLkl0IEZsIGYKK0ZvcndhcmQgaGFsZiBsaW5lIGZlZWRzIGFyZSBwZXJtaXR0ZWQgKGBgZmluZScnIG1vZGUpLgorTm9ybWFsbHkgY2hhcmFjdGVycyBwcmludGVkIG9uIGEgaGFsZiBsaW5lIGJvdW5kYXJ5IGFyZSBwcmludGVkCitvbiB0aGUgZm9sbG93aW5nIGxpbmUuCisuSXQgRmwgcAorRm9yY2UgdW5rbm93biBjb250cm9sIHNlcXVlbmNlcyB0byBiZSBwYXNzZWQgdGhyb3VnaCB1bmNoYW5nZWQuCitOb3JtYWxseSwKKy5ObSBjb2wKK3dpbGwgZmlsdGVyIG91dCBhbnkgY29udHJvbCBzZXF1ZW5jZXMgZnJvbSB0aGUgaW5wdXQgb3RoZXIgdGhhbiB0aG9zZQorcmVjb2duaXplZCBhbmQgaW50ZXJwcmV0ZWQgYnkgaXRzZWxmLCB3aGljaCBhcmUgbGlzdGVkIGJlbG93LgorLkl0IEZsIHgKK091dHB1dCBtdWx0aXBsZSBzcGFjZXMgaW5zdGVhZCBvZiB0YWJzLgorLkl0IEZsIGwgTnMgQXIgbnVtCitCdWZmZXIgYXQgbGVhc3QKKy5BciBudW0KK2xpbmVzIGluIG1lbW9yeS4KK0J5IGRlZmF1bHQsIDEyOCBsaW5lcyBhcmUgYnVmZmVyZWQuCisuRWwKKy5QcAorVGhlIGNvbnRyb2wgc2VxdWVuY2VzIGZvciBjYXJyaWFnZSBtb3Rpb24gdGhhdAorLk5tIGNvbAordW5kZXJzdGFuZHMgYW5kIHRoZWlyIGRlY2ltYWwgdmFsdWVzIGFyZSBsaXN0ZWQgaW4gdGhlIGZvbGxvd2luZwordGFibGU6CisuUHAKKy5CbCAtdGFnIC13aWR0aCAiY2FycmlhZ2UgcmV0dXJuIiAtY29tcGFjdAorLkl0IEVTQ1wtNworcmV2ZXJzZSBsaW5lIGZlZWQgKGVzY2FwZSB0aGVuIDcpCisuSXQgRVNDXC04CitoYWxmIHJldmVyc2UgbGluZSBmZWVkIChlc2NhcGUgdGhlbiA4KQorLkl0IEVTQ1wtOQoraGFsZiBmb3J3YXJkIGxpbmUgZmVlZCAoZXNjYXBlIHRoZW4gOSkKKy5JdCBiYWNrc3BhY2UKK21vdmVzIGJhY2sgb25lIGNvbHVtbiAoOCk7IGlnbm9yZWQgaW4gdGhlIGZpcnN0IGNvbHVtbgorLkl0IGNhcnJpYWdlIHJldHVybgorKDEzKQorLkl0IG5ld2xpbmUKK2ZvcndhcmQgbGluZSBmZWVkICgxMCk7IGFsc28gZG9lcyBjYXJyaWFnZSByZXR1cm4KKy5JdCBzaGlmdCBpbgorc2hpZnQgdG8gbm9ybWFsIGNoYXJhY3RlciBzZXQgKDE1KQorLkl0IHNoaWZ0IG91dAorc2hpZnQgdG8gYWx0ZXJuYXRlIGNoYXJhY3RlciBzZXQgKDE0KQorLkl0IHNwYWNlCittb3ZlcyBmb3J3YXJkIG9uZSBjb2x1bW4gKDMyKQorLkl0IHRhYgorbW92ZXMgZm9yd2FyZCB0byBuZXh0IHRhYiBzdG9wICg5KQorLkl0IHZlcnRpY2FsIHRhYgorcmV2ZXJzZSBsaW5lIGZlZWQgKDExKQorLkVsCisuUHAKK0FsbCB1bnJlY29nbml6ZWQgY29udHJvbCBjaGFyYWN0ZXJzIGFuZCBlc2NhcGUgc2VxdWVuY2VzIGFyZQorZGlzY2FyZGVkLgorLlBwCisuTm0gQ29sCitrZWVwcyB0cmFjayBvZiB0aGUgY2hhcmFjdGVyIHNldCBhcyBjaGFyYWN0ZXJzIGFyZSByZWFkIGFuZCBtYWtlcworc3VyZSB0aGUgY2hhcmFjdGVyIHNldCBpcyBjb3JyZWN0IHdoZW4gdGhleSBhcmUgb3V0cHV0LgorLlBwCitJZiB0aGUgaW5wdXQgYXR0ZW1wdHMgdG8gYmFjayB1cCB0byB0aGUgbGFzdCBmbHVzaGVkIGxpbmUsCisuTm0gY29sCit3aWxsIGRpc3BsYXkgYSB3YXJuaW5nIG1lc3NhZ2UuCisuU2ggU0VFIEFMU08KKy5YciBleHBhbmQgMSAsCisuWHIgbnJvZmYgMSAsCisuWHIgdGJsIDEKKy5TaCBTVEFOREFSRFMKK1RoZQorLk5tIGNvbAordXRpbGl0eSBjb25mb3JtcyB0byB0aGUgU2luZ2xlIFVOSVggU3BlY2lmaWNhdGlvbiwgVmVyc2lvbiAyLiBUaGUKKy5GbCBsCitvcHRpb24gaXMgYW4gZXh0ZW5zaW9uIHRvIHRoZSBzdGFuZGFyZC4KKy5TaCBISVNUT1JZCitBCisuTm0gY29sCitjb21tYW5kCithcHBlYXJlZCBpbiBWZXJzaW9uIDYgQVQmVCBVTklYLgorLlNoIEFWQUlMQUJJTElUWQorVGhlIGNvbCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvY29sLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2NvbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiODFhODkKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2NvbC5jCkBAIC0wLDAgKzEsNTU5IEBACisvKi0KKyAqIENvcHlyaWdodCAoYykgMTk5MCBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVkIHRvIEJlcmtlbGV5IGJ5CisgKiBNaWNoYWVsIFJlbmRlbGwgb2YgdGhlIE1lbW9yaWFsIFVuaXZlcnNpdHkgb2YgTmV3Zm91bmRsYW5kLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogV2VkIEp1biAyMiAyMjoxNTo0MSAxOTk0LCBmYWl0aEBjcy51bmMuZWR1OiBBZGRlZCBpbnRlcm5hdGlvbmFsaXphdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRjaGVzIGZyb20gQW5kcmllcy5Ccm91d2VyQGN3aS5ubAorICogV2VkIFNlcCAxNCAyMjozMToxNyAxOTk0OiBwYXRjaGVzIGZyb20gQ2FybCBDaHJpc3RvZmZlcnNvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAoY2NocmlzQGNvbm5lY3RlZC5jb20pCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIAlhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICogMTk5OS0wOS0xOSBCcnVubyBIYWlibGUgPGhhaWJsZUBjbGlzcC5jb25zLm9yZz4KKyAqIAltb2RpZmllZCB0byB3b3JrIGNvcnJlY3RseSBpbiBtdWx0aS1ieXRlIGxvY2FsZXMKKyAqCisgKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgIm5scy5oIgorCisjaW5jbHVkZSAid2lkZWNoYXIuaCIKKworI2RlZmluZQlCUwknXGInCQkvKiBiYWNrc3BhY2UgKi8KKyNkZWZpbmUJVEFCCSdcdCcJCS8qIHRhYiAqLworI2RlZmluZQlTUEFDRQknICcJCS8qIHNwYWNlICovCisjZGVmaW5lCU5MCSdcbicJCS8qIG5ld2xpbmUgKi8KKyNkZWZpbmUJQ1IJJ1xyJwkJLyogY2FycmlhZ2UgcmV0dXJuICovCisjZGVmaW5lCUVTQwknXDAzMycJCS8qIGVzY2FwZSAqLworI2RlZmluZQlTSQknXDAxNycJCS8qIHNoaWZ0IGluIHRvIG5vcm1hbCBjaGFyYWN0ZXIgc2V0ICovCisjZGVmaW5lCVNPCSdcMDE2JwkJLyogc2hpZnQgb3V0IHRvIGFsdGVybmF0ZSBjaGFyYWN0ZXIgc2V0ICovCisjZGVmaW5lCVZUCSdcMDEzJwkJLyogdmVydGljYWwgdGFiIChha2EgcmV2ZXJzZSBsaW5lIGZlZWQpICovCisjZGVmaW5lCVJMRgknXDAwNycJCS8qIEVTQy0wNyByZXZlcnNlIGxpbmUgZmVlZCAqLworI2RlZmluZQlSSExGCSdcMDEwJwkJLyogRVNDLTAxMCByZXZlcnNlIGhhbGYtbGluZSBmZWVkICovCisjZGVmaW5lCUZITEYJJ1wwMTEnCQkvKiBFU0MtMDExIGZvcndhcmQgaGFsZi1saW5lIGZlZWQgKi8KKworLyogYnVpbGQgdXAgYXQgbGVhc3QgdGhpcyBtYW55IGxpbmVzIGJlZm9yZSBmbHVzaGluZyB0aGVtIG91dCAqLworI2RlZmluZQlCVUZGRVJfTUFSR0lOCQkzMgorCit0eXBlZGVmIGNoYXIgQ1NFVDsKKwordHlwZWRlZiBzdHJ1Y3QgY2hhcl9zdHIgeworI2RlZmluZQlDU19OT1JNQUwJMQorI2RlZmluZQlDU19BTFRFUk5BVEUJMgorCXNob3J0CQljX2NvbHVtbjsJLyogY29sdW1uIGNoYXJhY3RlciBpcyBpbiAqLworCUNTRVQJCWNfc2V0OwkJLyogY2hhcmFjdGVyIHNldCAoY3VycmVudGx5IG9ubHkgMikgKi8KKwl3Y2hhcl90CQljX2NoYXI7CQkvKiBjaGFyYWN0ZXIgaW4gcXVlc3Rpb24gKi8KKwlpbnQJCWNfd2lkdGg7CS8qIGNoYXJhY3RlciB3aWR0aCAqLworfSBDSEFSOworCit0eXBlZGVmIHN0cnVjdCBsaW5lX3N0ciBMSU5FOworc3RydWN0IGxpbmVfc3RyIHsKKwlDSEFSCSpsX2xpbmU7CQkvKiBjaGFyYWN0ZXJzIG9uIHRoZSBsaW5lICovCisJTElORQkqbF9wcmV2OwkJLyogcHJldmlvdXMgbGluZSAqLworCUxJTkUJKmxfbmV4dDsJCS8qIG5leHQgbGluZSAqLworCWludAlsX2xzaXplOwkJLyogYWxsb2NhdGVkIHNpemVvZiBsX2xpbmUgKi8KKwlpbnQJbF9saW5lX2xlbjsJCS8qIHN0cmxlbihsX2xpbmUpICovCisJaW50CWxfbmVlZHNfc29ydDsJCS8qIHNldCBpZiBjaGFycyB3ZW50IGluIG91dCBvZiBvcmRlciAqLworCWludAlsX21heF9jb2w7CQkvKiBtYXggY29sdW1uIGluIHRoZSBsaW5lICovCit9OworCit2b2lkIHVzYWdlKHZvaWQpOwordm9pZCB3cmVycih2b2lkKTsKK3ZvaWQgd2FybihpbnQpOwordm9pZCBmcmVlX2xpbmUoTElORSAqbCk7Cit2b2lkIGZsdXNoX2xpbmUoTElORSAqbCk7Cit2b2lkIGZsdXNoX2xpbmVzKGludCk7Cit2b2lkIGZsdXNoX2JsYW5rcyh2b2lkKTsKK3ZvaWQgKnhtYWxsb2Modm9pZCAqcCwgc2l6ZV90IHNpemUpOworTElORSAqYWxsb2NfbGluZSh2b2lkKTsKKworQ1NFVCBsYXN0X3NldDsJCQkvKiBjaGFyX3NldCBvZiBsYXN0IGNoYXIgcHJpbnRlZCAqLworTElORSAqbGluZXM7CitpbnQgY29tcHJlc3Nfc3BhY2VzOwkJLyogaWYgZG9pbmcgc3BhY2UgLT4gdGFiIGNvbnZlcnNpb24gKi8KK2ludCBmaW5lOwkJCS8qIGlmIGBmaW5lJyByZXNvbHV0aW9uIChoYWxmIGxpbmVzKSAqLworaW50IG1heF9idWZkX2xpbmVzOwkJLyogbWF4ICMgbGluZXMgdG8ga2VlcCBpbiBtZW1vcnkgKi8KK2ludCBuYmxhbmtfbGluZXM7CQkvKiAjIGJsYW5rcyBhZnRlciBsYXN0IGZsdXNoZWQgbGluZSAqLworaW50IG5vX2JhY2tzcGFjZXM7CQkvKiBpZiBub3QgdG8gb3V0cHV0IGFueSBiYWNrc3BhY2VzICovCitpbnQgcGFzc191bmtub3duX3NlcXM7CQkvKiB3aGV0aGVyIHRvIHBhc3MgdW5rbm93biBjb250cm9sIHNlcXVlbmNlcyAqLworCisjZGVmaW5lCVBVVEMoY2gpIFwKKwlpZiAocHV0d2NoYXIoY2gpID09IFdFT0YpIFwKKwkJd3JlcnIoKTsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCXJlZ2lzdGVyIHdpbnRfdCBjaDsKKwlDSEFSICpjOworCUNTRVQgY3VyX3NldDsJCQkvKiBjdXJyZW50IGNoYXJhY3RlciBzZXQgKi8KKwlMSU5FICpsOwkJCS8qIGN1cnJlbnQgbGluZSAqLworCWludCBleHRyYV9saW5lczsJCS8qICMgb2YgbGluZXMgYWJvdmUgZmlyc3QgbGluZSAqLworCWludCBjdXJfY29sOwkJCS8qIGN1cnJlbnQgY29sdW1uICovCisJaW50IGN1cl9saW5lOwkJCS8qIGxpbmUgbnVtYmVyIG9mIGN1cnJlbnQgcG9zaXRpb24gKi8KKwlpbnQgbWF4X2xpbmU7CQkJLyogbWF4IHZhbHVlIG9mIGN1cl9saW5lICovCisJaW50IHRoaXNfbGluZTsJCQkvKiBsaW5lIGwgcG9pbnRzIHRvICovCisJaW50IG5mbHVzaGRfbGluZXM7CQkvKiBudW1iZXIgb2YgbGluZXMgdGhhdCB3ZXJlIGZsdXNoZWQgKi8KKwlpbnQgYWRqdXN0LCBvcHQsIHdhcm5lZDsKKwlpbnQgcmV0ID0gMDsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisJCisJbWF4X2J1ZmRfbGluZXMgPSAxMjg7CisJY29tcHJlc3Nfc3BhY2VzID0gMTsJCS8qIGNvbXByZXNzIHNwYWNlcyBpbnRvIHRhYnMgKi8KKwlwYXNzX3Vua25vd25fc2VxcyA9IDA7ICAgICAgICAgIC8qIHJlbW92ZSB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZXMgKi8KKwl3aGlsZSAoKG9wdCA9IGdldG9wdChhcmdjLCBhcmd2LCAiYmZobDpweCIpKSAhPSAtMSkKKwkJc3dpdGNoIChvcHQpIHsKKwkJY2FzZSAnYic6CQkvKiBkbyBub3Qgb3V0cHV0IGJhY2tzcGFjZXMgKi8KKwkJCW5vX2JhY2tzcGFjZXMgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ2YnOgkJLyogYWxsb3cgaGFsZiBmb3J3YXJkIGxpbmUgZmVlZHMgKi8KKwkJCWZpbmUgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ2gnOgkJLyogY29tcHJlc3Mgc3BhY2VzIGludG8gdGFicyAqLworCQkJY29tcHJlc3Nfc3BhY2VzID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdsJzoJCS8qIGJ1ZmZlcmVkIGxpbmUgY291bnQgKi8KKwkJCWlmICgobWF4X2J1ZmRfbGluZXMgPSBhdG9pKG9wdGFyZykpIDw9IDApIHsKKwkJCQkodm9pZClmcHJpbnRmKHN0ZGVyciwKKwkJCQkgICAgXygiY29sOiBiYWQgLWwgYXJndW1lbnQgJXMuXG4iKSwgb3B0YXJnKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgJ3AnOgorCQkJcGFzc191bmtub3duX3NlcXMgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3gnOgkJLyogZG8gbm90IGNvbXByZXNzIHNwYWNlcyBpbnRvIHRhYnMgKi8KKwkJCWNvbXByZXNzX3NwYWNlcyA9IDA7CisJCQlicmVhazsKKwkJY2FzZSAnPyc6CisJCWRlZmF1bHQ6CisJCQl1c2FnZSgpOworCQl9CisKKwlpZiAob3B0aW5kICE9IGFyZ2MpCisJCXVzYWdlKCk7CisKKwkvKiB0aGlzIHZhbHVlIGlzIGluIGhhbGYgbGluZXMgKi8KKwltYXhfYnVmZF9saW5lcyAqPSAyOworCisJYWRqdXN0ID0gY3VyX2NvbCA9IGV4dHJhX2xpbmVzID0gd2FybmVkID0gMDsKKwljdXJfbGluZSA9IG1heF9saW5lID0gbmZsdXNoZF9saW5lcyA9IHRoaXNfbGluZSA9IDA7CisJY3VyX3NldCA9IGxhc3Rfc2V0ID0gQ1NfTk9STUFMOworCWxpbmVzID0gbCA9IGFsbG9jX2xpbmUoKTsKKwkKKwl3aGlsZSAoZmVvZihzdGRpbik9PTApIHsKKwkJZXJybm8gPSAwOworCQlpZiAoKGNoID0gZ2V0d2NoYXIoKSkgPT0gV0VPRikgeworCQkJaWYgKGVycm5vPT1FSUxTRVEpIHsKKwkJCQlwZXJyb3IoImNvbCIpOworCQkJCXJldCA9IDE7CisJCQl9CisJCQlicmVhazsKKwkJfQkKKwkJaWYgKCFpc3dncmFwaChjaCkpIHsKKwkJCXN3aXRjaCAoY2gpIHsKKwkJCWNhc2UgQlM6CQkvKiBjYW4ndCBnbyBiYWNrIGZ1cnRoZXIgKi8KKwkJCQlpZiAoY3VyX2NvbCA9PSAwKQorCQkJCQljb250aW51ZTsKKwkJCQktLWN1cl9jb2w7CisJCQkJY29udGludWU7CisJCQljYXNlIENSOgorCQkJCWN1cl9jb2wgPSAwOworCQkJCWNvbnRpbnVlOworCQkJY2FzZSBFU0M6CQkvKiBqdXN0IGlnbm9yZSBFT0YgKi8KKwkJCQlzd2l0Y2goZ2V0d2NoYXIoKSkgeworCQkJCWNhc2UgUkxGOgorCQkJCQljdXJfbGluZSAtPSAyOworCQkJCQlicmVhazsKKwkJCQljYXNlIFJITEY6CisJCQkJCWN1cl9saW5lLS07CisJCQkJCWJyZWFrOworCQkJCWNhc2UgRkhMRjoKKwkJCQkJY3VyX2xpbmUrKzsKKwkJCQkJaWYgKGN1cl9saW5lID4gbWF4X2xpbmUpCisJCQkJCQltYXhfbGluZSA9IGN1cl9saW5lOworCQkJCX0KKwkJCQljb250aW51ZTsKKwkJCWNhc2UgTkw6CisJCQkJY3VyX2xpbmUgKz0gMjsKKwkJCQlpZiAoY3VyX2xpbmUgPiBtYXhfbGluZSkKKwkJCQkJbWF4X2xpbmUgPSBjdXJfbGluZTsKKwkJCQljdXJfY29sID0gMDsKKwkJCQljb250aW51ZTsKKwkJCWNhc2UgU1BBQ0U6CisJCQkJKytjdXJfY29sOworCQkJCWNvbnRpbnVlOworCQkJY2FzZSBTSToKKwkJCQljdXJfc2V0ID0gQ1NfTk9STUFMOworCQkJCWNvbnRpbnVlOworCQkJY2FzZSBTTzoKKwkJCQljdXJfc2V0ID0gQ1NfQUxURVJOQVRFOworCQkJCWNvbnRpbnVlOworCQkJY2FzZSBUQUI6CQkvKiBhZGp1c3QgY29sdW1uICovCisJCQkJY3VyX2NvbCB8PSA3OworCQkJCSsrY3VyX2NvbDsKKwkJCQljb250aW51ZTsKKwkJCWNhc2UgVlQ6CisJCQkJY3VyX2xpbmUgLT0gMjsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCWlmIChpc3dzcGFjZShjaCkpIHsKKwkJCQlpZiAod2N3aWR0aChjaCkgPiAwKQorCQkJCQljdXJfY29sICs9IHdjd2lkdGgoY2gpOworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJaWYgKCFwYXNzX3Vua25vd25fc2VxcykKKwkJCQljb250aW51ZTsKKwkJfQorCisJCS8qIE11c3Qgc3R1ZmYgY2ggaW4gYSBsaW5lIC0gYXJlIHdlIGF0IHRoZSByaWdodCBvbmU/ICovCisJCWlmIChjdXJfbGluZSAhPSB0aGlzX2xpbmUgLSBhZGp1c3QpIHsKKwkJCUxJTkUgKmxuZXc7CisJCQlpbnQgbm1vdmU7CisKKwkJCWFkanVzdCA9IDA7CisJCQlubW92ZSA9IGN1cl9saW5lIC0gdGhpc19saW5lOworCQkJaWYgKCFmaW5lKSB7CisJCQkJLyogcm91bmQgdXAgdG8gbmV4dCBsaW5lICovCisJCQkJaWYgKGN1cl9saW5lICYgMSkgeworCQkJCQlhZGp1c3QgPSAxOworCQkJCQlubW92ZSsrOworCQkJCX0KKwkJCX0KKwkJCWlmIChubW92ZSA8IDApIHsKKwkJCQlmb3IgKDsgbm1vdmUgPCAwICYmIGwtPmxfcHJldjsgbm1vdmUrKykKKwkJCQkJbCA9IGwtPmxfcHJldjsKKwkJCQlpZiAobm1vdmUpIHsKKwkJCQkJaWYgKG5mbHVzaGRfbGluZXMgPT0gMCkgeworCQkJCQkJLyoKKwkJCQkJCSAqIEFsbG93IGJhY2t1cCBwYXN0IGZpcnN0CisJCQkJCQkgKiBsaW5lIGlmIG5vdGhpbmcgaGFzIGJlZW4KKwkJCQkJCSAqIGZsdXNoZWQgeWV0LgorCQkJCQkJICovCisJCQkJCQlmb3IgKDsgbm1vdmUgPCAwOyBubW92ZSsrKSB7CisJCQkJCQkJbG5ldyA9IGFsbG9jX2xpbmUoKTsKKwkJCQkJCQlsLT5sX3ByZXYgPSBsbmV3OworCQkJCQkJCWxuZXctPmxfbmV4dCA9IGw7CisJCQkJCQkJbCA9IGxpbmVzID0gbG5ldzsKKwkJCQkJCQlleHRyYV9saW5lcysrOworCQkJCQkJfQorCQkJCQl9IGVsc2UgeworCQkJCQkJaWYgKCF3YXJuZWQrKykKKwkJCQkJCQl3YXJuKGN1cl9saW5lKTsKKwkJCQkJCWN1cl9saW5lIC09IG5tb3ZlOworCQkJCQl9CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQkvKiBtYXkgbmVlZCB0byBhbGxvY2F0ZSBoZXJlICovCisJCQkJZm9yICg7IG5tb3ZlID4gMCAmJiBsLT5sX25leHQ7IG5tb3ZlLS0pCisJCQkJCWwgPSBsLT5sX25leHQ7CisJCQkJZm9yICg7IG5tb3ZlID4gMDsgbm1vdmUtLSkgeworCQkJCQlsbmV3ID0gYWxsb2NfbGluZSgpOworCQkJCQlsbmV3LT5sX3ByZXYgPSBsOworCQkJCQlsLT5sX25leHQgPSBsbmV3OworCQkJCQlsID0gbG5ldzsKKwkJCQl9CisJCQl9CisJCQl0aGlzX2xpbmUgPSBjdXJfbGluZSArIGFkanVzdDsKKwkJCW5tb3ZlID0gdGhpc19saW5lIC0gbmZsdXNoZF9saW5lczsKKwkJCWlmIChubW92ZSA+PSBtYXhfYnVmZF9saW5lcyArIEJVRkZFUl9NQVJHSU4pIHsKKwkJCQluZmx1c2hkX2xpbmVzICs9IG5tb3ZlIC0gbWF4X2J1ZmRfbGluZXM7CisJCQkJZmx1c2hfbGluZXMobm1vdmUgLSBtYXhfYnVmZF9saW5lcyk7CisJCQl9CisJCX0KKwkJLyogZ3JvdyBsaW5lJ3MgYnVmZmVyPyAqLworCQlpZiAobC0+bF9saW5lX2xlbiArIDEgPj0gbC0+bF9sc2l6ZSkgeworCQkJaW50IG5lZWQ7CisKKwkJCW5lZWQgPSBsLT5sX2xzaXplID8gbC0+bF9sc2l6ZSAqIDIgOiA5MDsKKwkJCWwtPmxfbGluZSA9IChDSEFSICopeG1hbGxvYygodm9pZCAqKSBsLT5sX2xpbmUsCisJCQkgICAgKHVuc2lnbmVkKSBuZWVkICogc2l6ZW9mKENIQVIpKTsKKwkJCWwtPmxfbHNpemUgPSBuZWVkOworCQl9CisJCWMgPSAmbC0+bF9saW5lW2wtPmxfbGluZV9sZW4rK107CisJCWMtPmNfY2hhciA9IGNoOworCQljLT5jX3NldCA9IGN1cl9zZXQ7CisJCWMtPmNfY29sdW1uID0gY3VyX2NvbDsKKwkJYy0+Y193aWR0aCA9IHdjd2lkdGgoY2gpOworCQkvKgorCQkgKiBJZiB0aGluZ3MgYXJlIHB1dCBpbiBvdXQgb2Ygb3JkZXIsIHRoZXkgd2lsbCBuZWVkIHNvcnRpbmcKKwkJICogd2hlbiBpdCBpcyBmbHVzaGVkLgorCQkgKi8KKwkJaWYgKGN1cl9jb2wgPCBsLT5sX21heF9jb2wpCisJCQlsLT5sX25lZWRzX3NvcnQgPSAxOworCQllbHNlCisJCQlsLT5sX21heF9jb2wgPSBjdXJfY29sOworCQlpZiAoYy0+Y193aWR0aCA+IDApCisJCQljdXJfY29sICs9IGMtPmNfd2lkdGg7CisJfQorCS8qIGdvdG8gdGhlIGxhc3QgbGluZSB0aGF0IGhhZCBhIGNoYXJhY3RlciBvbiBpdCAqLworCWZvciAoOyBsLT5sX25leHQ7IGwgPSBsLT5sX25leHQpCisJCXRoaXNfbGluZSsrOworCWZsdXNoX2xpbmVzKHRoaXNfbGluZSAtIG5mbHVzaGRfbGluZXMgKyBleHRyYV9saW5lcyArIDEpOworCisJLyogbWFrZSBzdXJlIHdlIGxlYXZlIHRoaW5ncyBpbiBhIHNhbmUgc3RhdGUgKi8KKwlpZiAobGFzdF9zZXQgIT0gQ1NfTk9STUFMKQorCQlQVVRDKCdcMDE3Jyk7CisKKwkvKiBmbHVzaCBvdXQgdGhlIGxhc3QgZmV3IGJsYW5rIGxpbmVzICovCisJbmJsYW5rX2xpbmVzID0gbWF4X2xpbmUgLSB0aGlzX2xpbmU7CisJaWYgKG1heF9saW5lICYgMSkKKwkJbmJsYW5rX2xpbmVzKys7CisJZWxzZSBpZiAoIW5ibGFua19saW5lcykKKwkJLyogbWlzc2luZyBhIFxuIG9uIHRoZSBsYXN0IGxpbmU/ICovCisJCW5ibGFua19saW5lcyA9IDI7CisJZmx1c2hfYmxhbmtzKCk7CisJaWYgKGZlcnJvcihzdGRvdXQpIHx8IGZjbG9zZShzdGRvdXQpKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGZsdXNoX2xpbmVzKGludCBuZmx1c2gpCit7CisJTElORSAqbDsKKworCXdoaWxlICgtLW5mbHVzaCA+PSAwKSB7CisJCWwgPSBsaW5lczsKKwkJbGluZXMgPSBsLT5sX25leHQ7CisJCWlmIChsLT5sX2xpbmUpIHsKKwkJCWZsdXNoX2JsYW5rcygpOworCQkJZmx1c2hfbGluZShsKTsKKwkJfQorCQluYmxhbmtfbGluZXMrKzsKKwkJaWYgKGwtPmxfbGluZSkKKwkJCSh2b2lkKWZyZWUoKHZvaWQgKilsLT5sX2xpbmUpOworCQlmcmVlX2xpbmUobCk7CisJfQorCWlmIChsaW5lcykKKwkJbGluZXMtPmxfcHJldiA9IE5VTEw7Cit9CisKKy8qCisgKiBQcmludCBhIG51bWJlciBvZiBuZXdsaW5lL2hhbGYgbmV3bGluZXMuICBJZiBmaW5lIGZsYWcgaXMgc2V0LCBuYmxhbmtfbGluZXMKKyAqIGlzIHRoZSBudW1iZXIgb2YgaGFsZiBsaW5lIGZlZWRzLCBvdGhlcndpc2UgaXQgaXMgdGhlIG51bWJlciBvZiB3aG9sZSBsaW5lCisgKiBmZWVkcy4KKyAqLwordm9pZCBmbHVzaF9ibGFua3MoKQoreworCWludCBoYWxmLCBpLCBuYjsKKworCWhhbGYgPSAwOworCW5iID0gbmJsYW5rX2xpbmVzOworCWlmIChuYiAmIDEpIHsKKwkJaWYgKGZpbmUpCisJCQloYWxmID0gMTsKKwkJZWxzZQorCQkJbmIrKzsKKwl9CisJbmIgLz0gMjsKKwlmb3IgKGkgPSBuYjsgLS1pID49IDA7KQorCQlQVVRDKCdcbicpOworCWlmIChoYWxmKSB7CisJCVBVVEMoJ1wwMzMnKTsKKwkJUFVUQygnOScpOworCQlpZiAoIW5iKQorCQkJUFVUQygnXHInKTsKKwl9CisJbmJsYW5rX2xpbmVzID0gMDsKK30KKworLyoKKyAqIFdyaXRlIGEgbGluZSB0byBzdGRvdXQgdGFraW5nIGNhcmUgb2Ygc3BhY2UgdG8gdGFiIGNvbnZlcnNpb24gKC1oIGZsYWcpCisgKiBhbmQgY2hhcmFjdGVyIHNldCBzaGlmdHMuCisgKi8KK3ZvaWQgZmx1c2hfbGluZShMSU5FICpsKQoreworCUNIQVIgKmMsICplbmRjOworCWludCBuY2hhcnMsIGxhc3RfY29sLCB0aGlzX2NvbDsKKworCWxhc3RfY29sID0gMDsKKwluY2hhcnMgPSBsLT5sX2xpbmVfbGVuOworCisJaWYgKGwtPmxfbmVlZHNfc29ydCkgeworCQlzdGF0aWMgQ0hBUiAqc29ydGVkOworCQlzdGF0aWMgaW50IGNvdW50X3NpemUsICpjb3VudCwgaSwgc2F2ZSwgc29ydGVkX3NpemUsIHRvdDsKKworCQkvKgorCQkgKiBEbyBhbiBPKG4pIHNvcnQgb24gbC0+bF9saW5lIGJ5IGNvbHVtbiBiZWluZyBjYXJlZnVsIHRvCisJCSAqIHByZXNlcnZlIHRoZSBvcmRlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSBzYW1lIGNvbHVtbi4KKwkJICovCisJCWlmIChsLT5sX2xzaXplID4gc29ydGVkX3NpemUpIHsKKwkJCXNvcnRlZF9zaXplID0gbC0+bF9sc2l6ZTsKKwkJCXNvcnRlZCA9IChDSEFSICopeG1hbGxvYygodm9pZCAqKXNvcnRlZCwKKwkJCSAgICAodW5zaWduZWQpc2l6ZW9mKENIQVIpICogc29ydGVkX3NpemUpOworCQl9CisJCWlmIChsLT5sX21heF9jb2wgPj0gY291bnRfc2l6ZSkgeworCQkJY291bnRfc2l6ZSA9IGwtPmxfbWF4X2NvbCArIDE7CisJCQljb3VudCA9IChpbnQgKil4bWFsbG9jKCh2b2lkICopY291bnQsCisJCQkgICAgKHVuc2lnbmVkKXNpemVvZihpbnQpICogY291bnRfc2l6ZSk7CisJCX0KKwkJbWVtc2V0KGNvdW50LCAwLCBzaXplb2YoaW50KSAqIGwtPmxfbWF4X2NvbCArIDEpOworCQlmb3IgKGkgPSBuY2hhcnMsIGMgPSBsLT5sX2xpbmU7IC0taSA+PSAwOyBjKyspCisJCQljb3VudFtjLT5jX2NvbHVtbl0rKzsKKworCQkvKgorCQkgKiBjYWxjdWxhdGUgcnVubmluZyB0b3RhbCAoc2hpZnRlZCBkb3duIGJ5IDEpIHRvIHVzZSBhcworCQkgKiBpbmRpY2VzIGludG8gbmV3IGxpbmUuCisJCSAqLworCQlmb3IgKHRvdCA9IDAsIGkgPSAwOyBpIDw9IGwtPmxfbWF4X2NvbDsgaSsrKSB7CisJCQlzYXZlID0gY291bnRbaV07CisJCQljb3VudFtpXSA9IHRvdDsKKwkJCXRvdCArPSBzYXZlOworCQl9CisKKwkJZm9yIChpID0gbmNoYXJzLCBjID0gbC0+bF9saW5lOyAtLWkgPj0gMDsgYysrKQorCQkJc29ydGVkW2NvdW50W2MtPmNfY29sdW1uXSsrXSA9ICpjOworCQljID0gc29ydGVkOworCX0gZWxzZQorCQljID0gbC0+bF9saW5lOworCXdoaWxlIChuY2hhcnMgPiAwKSB7CisJCXRoaXNfY29sID0gYy0+Y19jb2x1bW47CisJCWVuZGMgPSBjOworCQlkbyB7CisJCQkrK2VuZGM7CisJCX0gd2hpbGUgKC0tbmNoYXJzID4gMCAmJiB0aGlzX2NvbCA9PSBlbmRjLT5jX2NvbHVtbik7CisKKwkJLyogaWYgLWIgb25seSBwcmludCBsYXN0IGNoYXJhY3RlciAqLworCQlpZiAobm9fYmFja3NwYWNlcykgeworCQkJYyA9IGVuZGMgLSAxOworCQkJaWYgKG5jaGFycyA+IDAgJiYKKwkJCSAgICB0aGlzX2NvbCArIGMtPmNfd2lkdGggPiBlbmRjLT5jX2NvbHVtbikKKwkJCQljb250aW51ZTsKKwkJfQorCisJCWlmICh0aGlzX2NvbCA+IGxhc3RfY29sKSB7CisJCQlpbnQgbnNwYWNlID0gdGhpc19jb2wgLSBsYXN0X2NvbDsKKworCQkJaWYgKGNvbXByZXNzX3NwYWNlcyAmJiBuc3BhY2UgPiAxKSB7CisJCQkJaW50IG50YWJzOworCisJCQkJbnRhYnMgPSB0aGlzX2NvbCAvIDggLSBsYXN0X2NvbCAvIDg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudGFicyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuc3BhY2UgPSB0aGlzX2NvbCAmIDc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKC0tbnRhYnMgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBVVEMoJ1x0Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKwkJCX0KKwkJCXdoaWxlICgtLW5zcGFjZSA+PSAwKQorCQkJCVBVVEMoJyAnKTsKKwkJCWxhc3RfY29sID0gdGhpc19jb2w7CisJCX0KKworCQlmb3IgKDs7KSB7CisJCQlpZiAoYy0+Y19zZXQgIT0gbGFzdF9zZXQpIHsKKwkJCQlzd2l0Y2ggKGMtPmNfc2V0KSB7CisJCQkJY2FzZSBDU19OT1JNQUw6CisJCQkJCVBVVEMoJ1wwMTcnKTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBDU19BTFRFUk5BVEU6CisJCQkJCVBVVEMoJ1wwMTYnKTsKKwkJCQl9CisJCQkJbGFzdF9zZXQgPSBjLT5jX3NldDsKKwkJCX0KKwkJCVBVVEMoYy0+Y19jaGFyKTsKKwkJCWlmICgoYysxKSA8IGVuZGMpIHsKKwkJCQlpbnQgaTsKKwkJCQlmb3IgKGk9MDsgaSA8IGMtPmNfd2lkdGg7IGkrKykKKwkJCQkJUFVUQygnXGInKTsKKwkJCX0KKwkJCWlmICgrK2MgPj0gZW5kYykKKwkJCQlicmVhazsKKwkJfQorCQlsYXN0X2NvbCArPSAoYy0xKS0+Y193aWR0aDsKKwl9Cit9CisKKyNkZWZpbmUJTkFMTE9DIDY0CisKK3N0YXRpYyBMSU5FICpsaW5lX2ZyZWVsaXN0OworCitMSU5FICoKK2FsbG9jX2xpbmUoKQoreworCUxJTkUgKmw7CisJaW50IGk7CisKKwlpZiAoIWxpbmVfZnJlZWxpc3QpIHsKKwkJbCA9IChMSU5FICopeG1hbGxvYygodm9pZCAqKU5VTEwsIHNpemVvZihMSU5FKSAqIE5BTExPQyk7CisJCWxpbmVfZnJlZWxpc3QgPSBsOworCQlmb3IgKGkgPSAxOyBpIDwgTkFMTE9DOyBpKyssIGwrKykKKwkJCWwtPmxfbmV4dCA9IGwgKyAxOworCQlsLT5sX25leHQgPSBOVUxMOworCX0KKwlsID0gbGluZV9mcmVlbGlzdDsKKwlsaW5lX2ZyZWVsaXN0ID0gbC0+bF9uZXh0OworCisJbWVtc2V0KGwsIDAsIHNpemVvZihMSU5FKSk7CisJcmV0dXJuKGwpOworfQorCit2b2lkIGZyZWVfbGluZShMSU5FICpsKQoreworCWwtPmxfbmV4dCA9IGxpbmVfZnJlZWxpc3Q7CisJbGluZV9mcmVlbGlzdCA9IGw7Cit9CisKK3ZvaWQgKgoreG1hbGxvYyh2b2lkICpwLCBzaXplX3Qgc2l6ZSkKK3sKKwlpZiAoIShwID0gKHZvaWQgKilyZWFsbG9jKHAsIHNpemUpKSkgeworCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgImNvbDogJXMuXG4iLCBzdHJlcnJvcihFTk9NRU0pKTsKKwkJZXhpdCgxKTsKKwl9CisJcmV0dXJuKHApOworfQorCit2b2lkIHVzYWdlKCkKK3sKKwkodm9pZClmcHJpbnRmKHN0ZGVyciwgXygidXNhZ2U6IGNvbCBbLWJmcHhdIFstbCBubGluZV1cbiIpKTsKKwlleGl0KDEpOworfQorCit2b2lkIHdyZXJyKCkKK3sKKwkodm9pZClmcHJpbnRmKHN0ZGVyciwgXygiY29sOiB3cml0ZSBlcnJvci5cbiIpKTsKKwlleGl0KDEpOworfQorCit2b2lkIHdhcm4oaW50IGxpbmUpCit7CisJKHZvaWQpZnByaW50ZihzdGRlcnIsCisJICAgIF8oImNvbDogd2FybmluZzogY2FuJ3QgYmFjayB1cCAlcy5cbiIpLCBsaW5lIDwgMCA/CisJICAgIF8oInBhc3QgZmlyc3QgbGluZSIpIDogXygiLS0gbGluZSBhbHJlYWR5IGZsdXNoZWQiKSk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2NvbGNydC4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2xjcnQuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGVjZWI1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2xjcnQuMQpAQCAtMCwwICsxLDExMSBAQAorLlwiIENvcHlyaWdodCAoYykgMTk4MCwgMTk5MCwgMTk5MworLlwiCVRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLlwiCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLlwiIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorLlwiICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKy5cIglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisuXCIJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisuXCIgNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKy5cIiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKy5cIiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy5cIgorLlwiIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisuXCIgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisuXCIgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKy5cIiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKy5cIiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorLlwiIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisuXCIgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisuXCIgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKy5cIiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisuXCIgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorLlwiIFNVQ0ggREFNQUdFLgorLlwiCisuXCIgICAgIEAoIyljb2xjcnQuMQk4LjEgKEJlcmtlbGV5KSA2LzMwLzkzCisuXCIKKy5EZCBKdW5lIDMwLCAxOTkzCisuRHQgQ09MQ1JUIDEKKy5PcyBCU0QgMworLlNoIE5BTUUKKy5ObSBjb2xjcnQKKy5OZCBmaWx0ZXIgbnJvZmYgb3V0cHV0IGZvciBDUlQgcHJldmlld2luZworLlNoIFNZTk9QU0lTCisuTm0gY29sY3J0CisuT3AgRmwKKy5PcCBGbCBcJjIKKy5PcCBBcgorLlNoIERFU0NSSVBUSU9OCisuTm0gQ29sY3J0Citwcm92aWRlcyB2aXJ0dWFsIGhhbGYtbGluZSBhbmQgcmV2ZXJzZSBsaW5lIGZlZWQgc2VxdWVuY2VzCitmb3IgdGVybWluYWxzIHdpdGhvdXQgc3VjaCBjYXBhYmlsaXR5LCBhbmQgb24gd2hpY2ggb3ZlcnN0cmlraW5nCitpcyBkZXN0cnVjdGl2ZS4KK0hhbGYtbGluZSBjaGFyYWN0ZXJzIGFuZCB1bmRlcmxpbmluZyAoY2hhbmdlZCB0byBkYXNoaW5nIGBcLScpCithcmUgcGxhY2VkIG9uIG5ldyBsaW5lcyBpbiBiZXR3ZWVuIHRoZSBub3JtYWwgb3V0cHV0IGxpbmVzLgorLlBwCitBdmFpbGFibGUgb3B0aW9uczoKKy5CbCAtdGFnIC13aWR0aCBEcworLkl0IEZsCitTdXBwcmVzcyBhbGwgdW5kZXJsaW5pbmcuCitUaGlzIG9wdGlvbiBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBmb3IgcHJldmlld2luZworLkVtIGFsbGJveGVkCit0YWJsZXMgZnJvbQorLlhyIHRibCAxIC4KKy5JdCBGbCAyCitDYXVzZXMgYWxsIGhhbGYtbGluZXMgdG8gYmUgcHJpbnRlZCwgZWZmZWN0aXZlbHkgZG91YmxlIHNwYWNpbmcgdGhlIG91dHB1dC4KK05vcm1hbGx5LCBhIG1pbmltYWwgc3BhY2Ugb3V0cHV0IGZvcm1hdCBpcyB1c2VkIHdoaWNoIHdpbGwgc3VwcHJlc3MgZW1wdHkKK2xpbmVzLgorVGhlIHByb2dyYW0gbmV2ZXIgc3VwcHJlc3NlcyB0d28gY29uc2VjdXRpdmUgZW1wdHkgbGluZXMsIGhvd2V2ZXIuCitUaGUKKy5GbCAyCitvcHRpb24gaXMgdXNlZnVsIGZvciBzZW5kaW5nIG91dHB1dCB0byB0aGUgbGluZSBwcmludGVyIHdoZW4gdGhlIG91dHB1dAorY29udGFpbnMgc3VwZXJzY3JpcHRzIGFuZCBzdWJzY3JpcHRzIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBiZSBpbnZpc2libGUuCisuRWwKKy5TaCBFWEFNUExFUworQSB0eXBpY2FsIHVzZSBvZgorLk5tIGNvbGNydAord291bGQgYmUKKy5CZCAtbGl0ZXJhbAordGJsIGV4dW0yLm4gXCZ8IG5yb2ZmIFwtbXMgXCZ8IGNvbGNydCBcLSBcJnwgbW9yZQorLkVkCisuU2ggU0VFIEFMU08KKy5YciBucm9mZiAxICwKKy5YciB0cm9mZiAxICwKKy5YciBjb2wgMSAsCisuWHIgbW9yZSAxICwKKy5YciB1bCAxCisuU2ggQlVHUworU2hvdWxkIGZvbGQgdW5kZXJsaW5lcyBvbnRvIGJsYW5rcyBldmVuIHdpdGggdGhlCisuUWwgRmwKK29wdGlvbiBzbyB0aGF0CithIHRydWUgdW5kZXJsaW5lIGNoYXJhY3RlciB3b3VsZCBzaG93LgorLlBwCitDYW4ndCBiYWNrIHVwIG1vcmUgdGhhbiAxMDIgbGluZXMuCisuUHAKK0dlbmVyYWwgb3ZlcnN0cmlraW5nIGlzIGxvc3Q7CithcyBhIHNwZWNpYWwgY2FzZQorLlFsIFwmfAorb3ZlcnN0cnVjayB3aXRoCisuUWwgXC0KK29yIHVuZGVybGluZSBiZWNvbWVzCisuUWwgXCYrIC4KKy5QcAorTGluZXMgYXJlIHRyaW1tZWQgdG8gMTMyIGNoYXJhY3RlcnMuCisuUHAKK1NvbWUgcHJvdmlzaW9uIHNob3VsZCBiZSBtYWRlIGZvciBwcm9jZXNzaW5nIHN1cGVyc2NyaXB0cyBhbmQgc3Vic2NyaXB0cworaW4gZG9jdW1lbnRzIHdoaWNoIGFyZSBhbHJlYWR5IGRvdWJsZS1zcGFjZWQuCisuU2ggSElTVE9SWQorVGhlCisuTm0KK2NvbW1hbmQgYXBwZWFyZWQgaW4gCisuQnggMy4wIC4KKy5TaCBBVkFJTEFCSUxJVFkKK1RoZSBjb2xjcnQgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2NvbGNydC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2xjcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Zjc5NjY1Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2xjcnQuYwpAQCAtMCwwICsxLDI4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk4MCwgMTk5MworICoJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKyAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKyAqCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisvKgorICogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgKiAJYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqIDE5OTktMDktMTkgQnJ1bm8gSGFpYmxlIDxoYWlibGVAY2xpc3AuY29ucy5vcmc+CisgKiAJbW9kaWZpZWQgdG8gd29yayBjb3JyZWN0bHkgaW4gbXVsdGktYnl0ZSBsb2NhbGVzCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CQkvKiBmb3IgY2xvc2UoKSAqLworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgIm5scy5oIgorCisjaW5jbHVkZSAid2lkZWNoYXIuaCIKKworaW50IHBsdXMod2NoYXJfdCBjLCB3Y2hhcl90IGQpOwordm9pZCBtb3ZlKGludCBsLCBpbnQgbSk7Cit2b2lkIHBmbHVzaChpbnQgb2wpOworCisvKgorICogY29sY3J0IC0gcmVwbGFjZXMgY29sIGZvciBjcnRzIHdpdGggbmV3IG5yb2ZmIGVzcC4gd2hlbiB1c2luZyB0YmwuCisgKiBCaWxsIEpveSBVQ0IgSnVseSAxNCwgMTk3NworICoKKyAqIFRoaXMgZmlsdGVyIHVzZXMgYSBzY3JlZW4gYnVmZmVyLCAyNjcgaGFsZi1saW5lcyBieSAxMzIgY29sdW1ucy4KKyAqIEl0IGludGVycHJldHMgdGhlIHVwIGFuZCBkb3duIHNlcXVlbmNlcyBnZW5lcmF0ZWQgYnkgdGhlIG5ldworICogbnJvZmYgd2hlbiB1c2VkIHdpdGggdGJsIGFuZCBieSBcdSBcZCBhbmQgXHIuCisgKiBHZW5lcmFsIG92ZXJzdHJpa2luZyBkb2Vzbid0IHdvcmsgY29ycmVjdGx5LgorICogVW5kZXJsaW5pbmcgaXMgc3BsaXQgb250byBtdWx0aXBsZSBsaW5lcywgZXRjLgorICoKKyAqIE9wdGlvbiAtIHN1cHByZXNzZXMgYWxsIHVuZGVybGluaW5nLgorICogT3B0aW9uIC0yIGZvcmNlcyBwcmludGluZyBvZiBhbGwgaGFsZiBsaW5lcy4KKyAqLworCit3Y2hhcl90CXBhZ2VbMjY3XVsxMzJdOworCitpbnQJb3V0bGluZSA9IDE7CitpbnQJb3V0Y29sOworCitjaGFyCXN1cHByZXN1bDsKK2NoYXIJcHJpbnRhbGw7CisKK2NoYXIJKnByb2duYW1lOwordm9pZCBjb2xjcnQoRklMRSAqZik7CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKwlGSUxFICpmOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWFyZ2MtLTsKKwlwcm9nbmFtZSA9ICphcmd2Kys7CisJd2hpbGUgKGFyZ2MgPiAwICYmIGFyZ3ZbMF1bMF0gPT0gJy0nKSB7CisJCXN3aXRjaCAoYXJndlswXVsxXSkgeworCQkJY2FzZSAwOgorCQkJCXN1cHByZXN1bCA9IDE7CisJCQkJYnJlYWs7CisJCQljYXNlICcyJzoKKwkJCQlwcmludGFsbCA9IDE7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCXByaW50ZihfKCJ1c2FnZTogJXMgWyAtIF0gWyAtMiBdIFsgZmlsZSAuLi4gXVxuIiksIHByb2duYW1lKTsKKwkJCQlmZmx1c2goc3Rkb3V0KTsKKwkJCQlleGl0KDEpOworCQl9CisJCWFyZ2MtLTsKKwkJYXJndisrOworCX0KKwlmID0gc3RkaW47CisJZG8geworCQlpZiAoYXJnYyA+IDApIHsKKwkJCWlmICghKGYgPSBmb3Blbihhcmd2WzBdLCAiciIpKSkgeworCQkJCWZmbHVzaChzdGRvdXQpOworCQkJCXBlcnJvcihhcmd2WzBdKTsKKwkJCQlleGl0ICgxKTsKKwkJCX0KKwkJCWFyZ2MtLTsKKwkJCWFyZ3YrKzsKKwkJfQorCQljb2xjcnQoZik7CisJCWlmIChmICE9IHN0ZGluKQorCQkJZmNsb3NlKGYpOworCX0gd2hpbGUgKGFyZ2MgPiAwKTsKKwlmZmx1c2goc3Rkb3V0KTsKKwlpZiAoZmVycm9yKHN0ZG91dCkgfHwgZmNsb3NlKHN0ZG91dCkpCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCit2b2lkCitjb2xjcnQoRklMRSAqZikgeworCXdpbnRfdCBjOworCXdjaGFyX3QgKmNwLCAqZHA7CisJaW50IGksIHc7CisKKwlmb3IgKDs7KSB7CisJCWMgPSBnZXR3YyhmKTsKKwkJaWYgKGMgPT0gV0VPRikgeworCQkJcGZsdXNoKG91dGxpbmUpOworCQkJZmZsdXNoKHN0ZG91dCk7CisJCQlicmVhazsKKwkJfQorCQlzd2l0Y2ggKGMpIHsKKwkJY2FzZSAnXG4nOgorCQkJaWYgKG91dGxpbmUgPj0gMjY1KQorCQkJCXBmbHVzaCg2Mik7CisJCQlvdXRsaW5lICs9IDI7CisJCQlvdXRjb2wgPSAwOworCQkJY29udGludWU7CisJCWNhc2UgJ1wwMTYnOgorCQljYXNlICdcMDE3JzoKKwkJCWNvbnRpbnVlOworCQljYXNlIDAzMzoKKwkJCWMgPSBnZXR3YyhmKTsKKwkJCXN3aXRjaCAoYykgeworCQkJY2FzZSAnOSc6CisJCQkJaWYgKG91dGxpbmUgPj0gMjY2KQorCQkJCQlwZmx1c2goNjIpOworCQkJCW91dGxpbmUrKzsKKwkJCQljb250aW51ZTsKKwkJCWNhc2UgJzgnOgorCQkJCWlmIChvdXRsaW5lID49IDEpCisJCQkJCW91dGxpbmUtLTsKKwkJCQljb250aW51ZTsKKwkJCWNhc2UgJzcnOgorCQkJCW91dGxpbmUgLT0gMjsKKwkJCQlpZiAob3V0bGluZSA8IDApCisJCQkJCW91dGxpbmUgPSAwOworCQkJCWNvbnRpbnVlOworCQkJZGVmYXVsdDoKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJY2FzZSAnXGInOgorCQkJaWYgKG91dGNvbCkKKwkJCQlvdXRjb2wtLTsKKwkJCWNvbnRpbnVlOworCQljYXNlICdcdCc6CisJCQlvdXRjb2wgKz0gODsKKwkJCW91dGNvbCAmPSB+NzsKKwkJCW91dGNvbC0tOworCQkJYyA9ICcgJzsKKwkJZGVmYXVsdDoKKwkJCXcgPSB3Y3dpZHRoKGMpOworCQkJaWYgKG91dGNvbCArIHcgPiAxMzIpIHsKKwkJCQlvdXRjb2wrKzsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCWNwID0gJnBhZ2Vbb3V0bGluZV1bb3V0Y29sXTsKKwkJCW91dGNvbCArPSB3OworCQkJaWYgKGMgPT0gJ18nKSB7CisJCQkJaWYgKHN1cHByZXN1bCkKKwkJCQkJY29udGludWU7CisJCQkJY3AgKz0gMTMyOworCQkJCWMgPSAnLSc7CisJCQl9CisJCQlpZiAoKmNwID09IDApIHsKKwkJCQkvKiB0cmljayEgKi8KKwkJCQlmb3IgKGk9MDsgaTx3OyBpKyspCisJCQkJCWNwW2ldID0gYzsKKwkJCQlkcCA9IGNwIC0gKG91dGNvbC13KTsKKwkJCQlmb3IgKGNwLS07IGNwID49IGRwICYmICpjcCA9PSAwOyBjcC0tKQorCQkJCQkqY3AgPSAnICc7CisJCQl9IGVsc2UgeworCQkJCWlmIChwbHVzKGMsICpjcCkgfHwgcGx1cygqY3AsIGMpKQorCQkJCQkqY3AgPSAnKyc7CisJCQkJZWxzZSBpZiAoKmNwID09ICcgJyB8fCAqY3AgPT0gMCkgeworCQkJCQlmb3IgKGk9MTsgaTx3OyBpKyspCisJCQkJCQlpZiAoY3BbaV0gIT0gJyAnICYmIGNwW2ldICE9IDApCisJCQkJCQkJY29udGludWU7CisJCQkJCWZvciAoaT0wOyBpPHc7IGkrKykKKwkJCQkJCWNwW2ldID0gYzsKKwkJCQl9CisJCQl9CisJCQljb250aW51ZTsKKwkJfQorCX0KK30KKworaW50IHBsdXMod2NoYXJfdCBjLCB3Y2hhcl90IGQpCit7CisKKwlyZXR1cm4gKGMgPT0gJ3wnICYmIChkID09ICctJyB8fCBkID09ICdfJykpOworfQorCitpbnQgZmlyc3Q7CisKK3ZvaWQgcGZsdXNoKGludCBvbCkKK3sKKwlyZWdpc3RlciBpbnQgaTsKKwlyZWdpc3RlciB3Y2hhcl90ICpjcDsKKwljaGFyIGxhc3RvbWl0OworCWludCBsLCB3OworCisJbCA9IG9sOworCWxhc3RvbWl0ID0gMDsKKwlpZiAobCA+IDI2NikKKwkJbCA9IDI2NjsKKwllbHNlCisJCWwgfD0gMTsKKwlmb3IgKGkgPSBmaXJzdCB8IDE7IGkgPCBsOyBpKyspIHsKKwkJbW92ZShpLCBpIC0gMSk7CisJCW1vdmUoaSwgaSArIDEpOworCX0KKwlmb3IgKGkgPSBmaXJzdDsgaSA8IGw7IGkrKykgeworCQljcCA9IHBhZ2VbaV07CisJCWlmIChwcmludGFsbCA9PSAwICYmIGxhc3RvbWl0ID09IDAgJiYgKmNwID09IDApIHsKKwkJCWxhc3RvbWl0ID0gMTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWxhc3RvbWl0ID0gMDsKKwkJd2hpbGUgKCpjcCkgeworCQkJaWYgKCh3ID0gd2N3aWR0aCgqY3ApKSA+IDApIHsKKwkJCQlwdXR3Y2hhcigqY3ApOworCQkJCWNwICs9IHc7CisJCQl9IGVsc2UKKwkJCQljcCsrOworCQl9CisJCXB1dHdjaGFyKCdcbicpOworCX0KKwltZW1tb3ZlKHBhZ2UsIHBhZ2Vbb2xdLCAoMjY3IC0gb2wpICogMTMyICogc2l6ZW9mKHdjaGFyX3QpKTsKKwltZW1zZXQocGFnZVsyNjctIG9sXSwgJ1wwJywgb2wgKiAxMzIgKiBzaXplb2Yod2NoYXJfdCkpOworCW91dGxpbmUgLT0gb2w7CisJb3V0Y29sID0gMDsKKwlmaXJzdCA9IDE7Cit9CisKK3ZvaWQgbW92ZShpbnQgbCwgaW50IG0pCit7CisJcmVnaXN0ZXIgd2NoYXJfdCAqY3AsICpkcDsKKworCWZvciAoY3AgPSBwYWdlW2xdLCBkcCA9IHBhZ2VbbV07ICpjcDsgY3ArKywgZHArKykgeworCQlzd2l0Y2ggKCpjcCkgeworCQkJY2FzZSAnfCc6CisJCQkJaWYgKCpkcCAhPSAnICcgJiYgKmRwICE9ICd8JyAmJiAqZHAgIT0gMCkKKwkJCQkJcmV0dXJuOworCQkJCWJyZWFrOworCQkJY2FzZSAnICc6CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCXJldHVybjsKKwkJfQorCX0KKwlpZiAoKmNwID09IDApIHsKKwkJZm9yIChjcCA9IHBhZ2VbbF0sIGRwID0gcGFnZVttXTsgKmNwOyBjcCsrLCBkcCsrKQorCQkJaWYgKCpjcCA9PSAnfCcpCisJCQkJKmRwID0gJ3wnOworCQkJZWxzZSBpZiAoKmRwID09IDApCisJCQkJKmRwID0gJyAnOworCQlwYWdlW2xdWzBdID0gMDsKKwl9Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2NvbHJtLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2NvbHJtLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAyMTY3YQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvY29scm0uMQpAQCAtMCwwICsxLDY2IEBACisuXCIgQ29weXJpZ2h0IChjKSAxOTgwLCAxOTkwIFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisuXCIgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy5cIgorLlwiIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLlwiIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLlwiIGFyZSBtZXQ6CisuXCIgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKy5cIiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisuXCIJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorLlwiCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorLlwiIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisuXCIgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisuXCIgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisuXCIKKy5cIiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorLlwiIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLlwiIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisuXCIgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisuXCIgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKy5cIiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworLlwiIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorLlwiIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisuXCIgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorLlwiIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKy5cIiBTVUNIIERBTUFHRS4KKy5cIgorLlwiICAgICBAKCMpY29scm0uMQk2LjYgKEJlcmtlbGV5KSAzLzE0LzkxCisuXCIKKy5EZCBNYXJjaCAxNCwgMTk5MQorLkR0IENPTFJNIDEKKy5PcyBCU0QgMworLlNoIE5BTUUKKy5ObSBjb2xybQorLk5kIHJlbW92ZSBjb2x1bW5zIGZyb20gYSBmaWxlCisuU2ggU1lOT1BTSVMKKy5ObSBjb2xybQorLk9wIEFyIHN0YXJ0Y29sIE9wIEFyIGVuZGNvbAorLlNoIERFU0NSSVBUSU9OCisuTm0gQ29scm0KK3JlbW92ZXMgc2VsZWN0ZWQgY29sdW1ucyBmcm9tIGEgZmlsZS4gIElucHV0IGlzIHRha2VuIGZyb20gc3RhbmRhcmQgaW5wdXQuCitPdXRwdXQgaXMgc2VudCB0byBzdGFuZGFyZCBvdXRwdXQuCisuUHAKK0lmIGNhbGxlZCB3aXRoIG9uZSBwYXJhbWV0ZXIgdGhlIGNvbHVtbnMKK29mIGVhY2ggbGluZSB3aWxsIGJlIHJlbW92ZWQgc3RhcnRpbmcgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbHVtbi4KK0lmIGNhbGxlZCB3aXRoIHR3byBwYXJhbWV0ZXJzIHRoZSBjb2x1bW5zIGZyb20gdGhlIGZpcnN0IGNvbHVtbgordG8gdGhlIGxhc3QgY29sdW1uIHdpbGwgYmUgcmVtb3ZlZC4KKy5QcAorQ29sdW1uIG51bWJlcmluZyBzdGFydHMgd2l0aCBjb2x1bW4gMS4KKy5TaCBTRUUgQUxTTworLlhyIGF3ayAxICwKKy5YciBjb2x1bW4gMSAsCisuWHIgZXhwYW5kIDEgLAorLlhyIHBhc3RlIDEKKy5TaCBISVNUT1JZCitUaGUKKy5ObQorY29tbWFuZCBhcHBlYXJlZCBpbiAKKy5CeCAzLjAgLgorLlNoIEFWQUlMQUJJTElUWQorVGhlIGNvbHJtIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2xybS5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2xybS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4YjFlYTQKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2NvbHJtLmMKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5ODAgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKy8qCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIAlhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICogMTk5OS0wOS0xOSBCcnVubyBIYWlibGUgPGhhaWJsZUBjbGlzcC5jb25zLm9yZz4KKyAqIAltb2RpZmllZCB0byB3b3JrIGNvcnJlY3RseSBpbiBtdWx0aS1ieXRlIGxvY2FsZXMKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgIndpZGVjaGFyLmgiCisKKy8qCitDT0xSTSByZW1vdmVzIHVud2FudGVkIGNvbHVtbnMgZnJvbSBhIGZpbGUKKwlKZWZmIFNjaHJpZWJtYW4gIFVDIEJlcmtlbGV5IDExLTc0CisqLworCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCXJlZ2lzdGVyIGludCBjdCwgZmlyc3QsIGxhc3Q7CisJcmVnaXN0ZXIgd2ludF90IGM7CisJaW50IGksIHc7CisJaW50IHBhZGRpbmc7CisKKwlzZXRsb2NhbGUoTENfQUxMLCAiIik7CisKKwlmaXJzdCA9IDA7CisJbGFzdCA9IDA7CisJaWYgKGFyZ2MgPiAxKQorCQlmaXJzdCA9IGF0b2koKisrYXJndik7CisJaWYgKGFyZ2MgPiAyKQorCQlsYXN0ID0gYXRvaSgqKythcmd2KTsKKworc3RhcnQ6CisJY3QgPSAwOworbG9vcDE6CisJYyA9IGdldHdjKHN0ZGluKTsKKwlpZiAoYyA9PSBXRU9GKQorCQlnb3RvIGZpbjsKKwlpZiAoYyA9PSAnXHQnKQorCQl3ID0gKChjdCArIDgpICYgfjcpIC0gY3Q7CisJZWxzZSBpZiAoYyA9PSAnXGInKQorCQl3ID0gKGN0ID8gY3QgLSAxIDogMCkgLSBjdDsKKwllbHNlIHsKKwkJdyA9IHdjd2lkdGgoYyk7CisJCWlmICh3IDwgMCkKKwkJCXcgPSAwOworCX0KKwljdCArPSB3OworCWlmIChjID09ICdcbicpIHsKKwkJcHV0d2MoYywgc3Rkb3V0KTsKKwkJZ290byBzdGFydDsKKwl9CisJaWYgKCFmaXJzdCB8fCBjdCA8IGZpcnN0KSB7CisJCXB1dHdjKGMsIHN0ZG91dCk7CisJCWdvdG8gbG9vcDE7CisJfQorCWZvciAoaSA9IGN0LXcrMTsgaSA8IGZpcnN0OyBpKyspCisJCXB1dHdjKCcgJywgc3Rkb3V0KTsKKworLyogTG9vcCBnZXR0aW5nIHJpZCBvZiBjaGFyYWN0ZXJzICovCisJd2hpbGUgKCFsYXN0IHx8IGN0IDwgbGFzdCkgeworCQljID0gZ2V0d2Moc3RkaW4pOworCQlpZiAoYyA9PSBXRU9GKQorCQkJZ290byBmaW47CisJCWlmIChjID09ICdcbicpIHsKKwkJCXB1dHdjKGMsIHN0ZG91dCk7CisJCQlnb3RvIHN0YXJ0OworCQl9CisJCWlmIChjID09ICdcdCcpCisJCQljdCA9IChjdCArIDgpICYgfjc7CisJCWVsc2UgaWYgKGMgPT0gJ1xiJykKKwkJCWN0ID0gY3QgPyBjdCAtIDEgOiAwOworCQllbHNlIHsKKwkJCXcgPSB3Y3dpZHRoKGMpOworCQkJaWYgKHcgPCAwKQorCQkJCXcgPSAwOworCQkJY3QgKz0gdzsKKwkJfQorCX0KKworCXBhZGRpbmcgPSAwOworCisvKiBPdXRwdXQgbGFzdCBvZiB0aGUgbGluZSAqLworCWZvciAoOzspIHsKKwkJYyA9IGdldHdjKHN0ZGluKTsKKwkJaWYgKGMgPT0gV0VPRikKKwkJCWJyZWFrOworCQlpZiAoYyA9PSAnXG4nKSB7CisJCQlwdXR3YyhjLCBzdGRvdXQpOworCQkJZ290byBzdGFydDsKKwkJfQorCQlpZiAocGFkZGluZyA9PSAwICYmIGxhc3QgPCBjdCkgeworCQkJZm9yIChpID0gbGFzdDsgaSA8Y3Q7IGkrKykKKwkJCQlwdXR3YygnICcsIHN0ZG91dCk7CisJCQlwYWRkaW5nID0gMTsKKwkJfQorCQlwdXR3YyhjLCBzdGRvdXQpOworCX0KK2ZpbjoKKwlmZmx1c2goc3Rkb3V0KTsKKwlpZiAoZmVycm9yKHN0ZG91dCkgfHwgZmNsb3NlKHN0ZG91dCkpCisJCXJldHVybiAxOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2x1bW4uMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvY29sdW1uLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWRhNTljYwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvY29sdW1uLjEKQEAgLTAsMCArMSwxMDIgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5ODksIDE5OTAsIDE5OTMKKy5cIglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy5cIgorLlwiIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLlwiIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLlwiIGFyZSBtZXQ6CisuXCIgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy5cIiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKy5cIiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisuXCIJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorLlwiCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorLlwiIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisuXCIgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisuXCIgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisuXCIKKy5cIiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorLlwiIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLlwiIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisuXCIgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisuXCIgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKy5cIiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworLlwiIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorLlwiIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisuXCIgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorLlwiIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKy5cIiBTVUNIIERBTUFHRS4KKy5cIgorLlwiICAgICBAKCMpY29sdW1uLjEJOC4xIChCZXJrZWxleSkgNi82LzkzCisuXCIKKy5EZCBKdW5lIDYsIDE5OTMKKy5PcworLkR0IENPTFVNTiAxCisuU2ggTkFNRQorLk5tIGNvbHVtbgorLk5kIGNvbHVtbmF0ZSBsaXN0cworLlNoIFNZTk9QU0lTCisuTm0gY29sdW1uCisuT3AgRmwgdHgKKy5PcCBGbCBjIEFyIGNvbHVtbnMKKy5PcCBGbCBzIEFyIHNlcAorLk9wIEFyCisuU2ggREVTQ1JJUFRJT04KK1RoZQorLk5tIGNvbHVtbgordXRpbGl0eSBmb3JtYXRzIGl0cyBpbnB1dCBpbnRvIG11bHRpcGxlIGNvbHVtbnMuCitSb3dzIGFyZSBmaWxsZWQgYmVmb3JlIGNvbHVtbnMuCitJbnB1dCBpcyB0YWtlbiBmcm9tCisuQXIgZmlsZQorb3BlcmFuZHMsIG9yLCBieSBkZWZhdWx0LCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dC4KK0VtcHR5IGxpbmVzIGFyZSBpZ25vcmVkLgorLlBwCitUaGUgb3B0aW9ucyBhcmUgYXMgZm9sbG93czoKKy5CbCAtdGFnIC13aWR0aCBEcworLkl0IEZsIGMKK091dHB1dCBpcyBmb3JtYXR0ZWQgZm9yIGEgZGlzcGxheQorLkFyIGNvbHVtbnMKK3dpZGUuCisuSXQgRmwgcworU3BlY2lmeSBhIHNldCBvZiBjaGFyYWN0ZXJzIHRvIGJlIHVzZWQgdG8gZGVsaW1pdCBjb2x1bW5zIGZvciB0aGUKKy5GbCB0CitvcHRpb24uCisuSXQgRmwgdAorRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGUgaW5wdXQgY29udGFpbnMgYW5kIGNyZWF0ZSBhIHRhYmxlLgorQ29sdW1ucyBhcmUgZGVsaW1pdGVkIHdpdGggd2hpdGVzcGFjZSwgYnkgZGVmYXVsdCwgb3Igd2l0aCB0aGUgY2hhcmFjdGVycworc3VwcGxpZWQgdXNpbmcgdGhlCisuRmwgcworb3B0aW9uLgorVXNlZnVsIGZvciBwcmV0dHktcHJpbnRpbmcgZGlzcGxheXMuCisuSXQgRmwgeAorRmlsbCBjb2x1bW5zIGJlZm9yZSBmaWxsaW5nIHJvd3MuCisuRWwKKy5QcAorLk5tIENvbHVtbgorZXhpdHMgMCBvbiBzdWNjZXNzLCA+MCBpZiBhbiBlcnJvciBvY2N1cnJlZC4KKy5TaCBFTlZJUk9OTUVOVAorLkJsIC10YWcgLXdpZHRoIENPTFVNTlMKKy5JdCBFdiBDT0xVTU5TCitUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKy5FdiBDT0xVTU5TCitpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc2l6ZSBvZgordGhlIHNjcmVlbiBpZiBubyBvdGhlciBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUuCisuRWwKKy5TaCBFWEFNUExFUworLkRsIChwcmludGYgXCYiUEVSTSBMSU5LUyBPV05FUiBHUk9VUCBTSVpFIE1PTlRIIERBWSBISDpNTS9ZRUFSXCBOQU1FXGVuXCYiXCBcJlxlCisuRGwgXCY7IGxzIC1sIFwmfCBzZWQgMWQpIFwmfCBjb2x1bW4gLXQKKy5TaCBTRUUgQUxTTworLlhyIGNvbHJtIDEgLAorLlhyIGxzIDEgLAorLlhyIHBhc3RlIDEgLAorLlhyIHNvcnQgMQorLlNoIEhJU1RPUlkKK1RoZQorLk5tCitjb21tYW5kIGFwcGVhcmVkIGluIAorLkJ4IDQuMyBSZW5vIC4KKy5TaCBBVkFJTEFCSUxJVFkKK1RoZSBjb2x1bW4gY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2NvbHVtbi5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2x1bW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWQ0MWEyCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb2x1bW4uYwpAQCAtMCwwICsxLDM3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk4OSwgMTk5MywgMTk5NAorICoJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKyAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKyAqCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworIAorLyoKKyAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICogCWFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CisgKiAxOTk5LTA5LTE5IEJydW5vIEhhaWJsZSA8aGFpYmxlQGNsaXNwLmNvbnMub3JnPgorICogCW1vZGlmaWVkIHRvIHdvcmsgY29ycmVjdGx5IGluIG11bHRpLWJ5dGUgbG9jYWxlcworICovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKworI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnIuaD4KKyNpbmNsdWRlICJubHMuaCIKKworI2luY2x1ZGUgIndpZGVjaGFyLmgiCisKKyNpZmRlZiBIQVZFX1dJREVDSEFSCisjZGVmaW5lIHdjc193aWR0aChzKSB3Y3N3aWR0aChzLHdjc2xlbihzKSkKK3N0YXRpYyB3Y2hhcl90ICptYnNfdG9fd2NzKGNvbnN0IGNoYXIgKik7CisjZWxzZQorI2RlZmluZSB3Y3Nfd2lkdGgocykgc3RybGVuKHMpCisjZGVmaW5lIG1ic190b193Y3Mocykgc3RyZHVwKHMpCitzdGF0aWMgY2hhciAqbXRzYWZlX3N0cnRvayhjaGFyICosIGNvbnN0IGNoYXIgKiwgY2hhciAqKik7CisjZGVmaW5lIHdjc3RvayBtdHNhZmVfc3RydG9rCisjZW5kaWYKKworc3RhdGljIHZvaWQgIGNfY29sdW1uYXRlIF9fUCgodm9pZCkpOworc3RhdGljIHZvaWQgKmVtYWxsb2MgX19QKChpbnQpKTsKK3N0YXRpYyB2b2lkICBpbnB1dCBfX1AoKEZJTEUgKikpOworc3RhdGljIHZvaWQgIG1ha2V0YmwgX19QKCh2b2lkKSk7CitzdGF0aWMgdm9pZCAgcHJpbnQgX19QKCh2b2lkKSk7CitzdGF0aWMgdm9pZCAgcl9jb2x1bW5hdGUgX19QKCh2b2lkKSk7CitzdGF0aWMgdm9pZCAgdXNhZ2UgX19QKCh2b2lkKSk7CisKK2ludCB0ZXJtd2lkdGggPSA4MDsJCS8qIGRlZmF1bHQgdGVybWluYWwgd2lkdGggKi8KKworaW50IGVudHJpZXM7CQkJLyogbnVtYmVyIG9mIHJlY29yZHMgKi8KK2ludCBldmFsOwkJCS8qIGV4aXQgdmFsdWUgKi8KK2ludCBtYXhsZW5ndGg7CQkJLyogbG9uZ2VzdCByZWNvcmQgKi8KK3djaGFyX3QgKipsaXN0OwkJCS8qIGFycmF5IG9mIHBvaW50ZXJzIHRvIHJlY29yZHMgKi8KK3djaGFyX3QgZGVmYXVsdF9zZXBhcmF0b3JbXSA9IHsgJ1x0JywgJyAnLCAwIH07Cit3Y2hhcl90ICpzZXBhcmF0b3IgPSBkZWZhdWx0X3NlcGFyYXRvcjsJLyogZmllbGQgc2VwYXJhdG9yIGZvciB0YWJsZSBvcHRpb24gKi8KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlzdHJ1Y3Qgd2luc2l6ZSB3aW47CisJRklMRSAqZnA7CisJaW50IGNoLCB0ZmxhZywgeGZsYWc7CisJY2hhciAqcDsKKworCWV4dGVybiBjaGFyICpfX3Byb2duYW1lOworCV9fcHJvZ25hbWUgPSBhcmd2WzBdOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWlmIChpb2N0bCgxLCBUSU9DR1dJTlNaLCAmd2luKSA9PSAtMSB8fCAhd2luLndzX2NvbCkgeworCQlpZiAoKHAgPSBnZXRlbnYoIkNPTFVNTlMiKSkgIT0gTlVMTCkKKwkJCXRlcm13aWR0aCA9IGF0b2kocCk7CisJfSBlbHNlCisJCXRlcm13aWR0aCA9IHdpbi53c19jb2w7CisKKwl0ZmxhZyA9IHhmbGFnID0gMDsKKwl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJjOnM6dHgiKSkgIT0gLTEpCisJCXN3aXRjaChjaCkgeworCQljYXNlICdjJzoKKwkJCXRlcm13aWR0aCA9IGF0b2kob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICdzJzoKKwkJCXNlcGFyYXRvciA9IG1ic190b193Y3Mob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICd0JzoKKwkJCXRmbGFnID0gMTsKKwkJCWJyZWFrOworCQljYXNlICd4JzoKKwkJCXhmbGFnID0gMTsKKwkJCWJyZWFrOworCQljYXNlICc/JzoKKwkJZGVmYXVsdDoKKwkJCXVzYWdlKCk7CisJCX0KKwlhcmdjIC09IG9wdGluZDsKKwlhcmd2ICs9IG9wdGluZDsKKworCWlmICghKmFyZ3YpCisJCWlucHV0KHN0ZGluKTsKKwllbHNlIGZvciAoOyAqYXJndjsgKythcmd2KQorCQlpZiAoKGZwID0gZm9wZW4oKmFyZ3YsICJyIikpICE9IE5VTEwpIHsKKwkJCWlucHV0KGZwKTsKKwkJCSh2b2lkKWZjbG9zZShmcCk7CisJCX0gZWxzZSB7CisJCQl3YXJuKCIlcyIsICphcmd2KTsKKwkJCWV2YWwgPSAxOworCQl9CisKKwlpZiAoIWVudHJpZXMpCisJCWV4aXQoZXZhbCk7CisKKwlpZiAodGZsYWcpCisJCW1ha2V0YmwoKTsKKwllbHNlIGlmIChtYXhsZW5ndGggPj0gdGVybXdpZHRoKQorCQlwcmludCgpOworCWVsc2UgaWYgKHhmbGFnKQorCQljX2NvbHVtbmF0ZSgpOworCWVsc2UKKwkJcl9jb2x1bW5hdGUoKTsKKwlpZiAoZmVycm9yKHN0ZG91dCkgfHwgZmNsb3NlKHN0ZG91dCkpCisJCWV2YWwgPSAxOworCWV4aXQoZXZhbCk7Cit9CisKKyNkZWZpbmUJVEFCCTgKK3N0YXRpYyB2b2lkCitjX2NvbHVtbmF0ZSgpCit7CisJaW50IGNoY250LCBjb2wsIGNudCwgZW5kY29sLCBudW1jb2xzOworCXdjaGFyX3QgKipscDsKKworCW1heGxlbmd0aCA9IChtYXhsZW5ndGggKyBUQUIpICYgfihUQUIgLSAxKTsKKwludW1jb2xzID0gdGVybXdpZHRoIC8gbWF4bGVuZ3RoOworCWVuZGNvbCA9IG1heGxlbmd0aDsKKwlmb3IgKGNoY250ID0gY29sID0gMCwgbHAgPSBsaXN0OzsgKytscCkgeworCQlmcHV0d3MoKmxwLCBzdGRvdXQpOworCQljaGNudCArPSB3Y3Nfd2lkdGgoKmxwKTsKKwkJaWYgKCEtLWVudHJpZXMpCisJCQlicmVhazsKKwkJaWYgKCsrY29sID09IG51bWNvbHMpIHsKKwkJCWNoY250ID0gY29sID0gMDsKKwkJCWVuZGNvbCA9IG1heGxlbmd0aDsKKwkJCXB1dHdjaGFyKCdcbicpOworCQl9IGVsc2UgeworCQkJd2hpbGUgKChjbnQgPSAoKGNoY250ICsgVEFCKSAmIH4oVEFCIC0gMSkpKSA8PSBlbmRjb2wpIHsKKwkJCQlwdXR3Y2hhcignXHQnKTsKKwkJCQljaGNudCA9IGNudDsKKwkJCX0KKwkJCWVuZGNvbCArPSBtYXhsZW5ndGg7CisJCX0KKwl9CisJaWYgKGNoY250KQorCQlwdXR3Y2hhcignXG4nKTsKK30KKworc3RhdGljIHZvaWQKK3JfY29sdW1uYXRlKCkKK3sKKwlpbnQgYmFzZSwgY2hjbnQsIGNudCwgY29sLCBlbmRjb2wsIG51bWNvbHMsIG51bXJvd3MsIHJvdzsKKworCW1heGxlbmd0aCA9IChtYXhsZW5ndGggKyBUQUIpICYgfihUQUIgLSAxKTsKKwludW1jb2xzID0gdGVybXdpZHRoIC8gbWF4bGVuZ3RoOworCWlmICghbnVtY29scykgCisJICBudW1jb2xzID0gMTsKKwludW1yb3dzID0gZW50cmllcyAvIG51bWNvbHM7CisJaWYgKGVudHJpZXMgJSBudW1jb2xzKQorCQkrK251bXJvd3M7CisKKwlmb3IgKHJvdyA9IDA7IHJvdyA8IG51bXJvd3M7ICsrcm93KSB7CisJCWVuZGNvbCA9IG1heGxlbmd0aDsKKwkJZm9yIChiYXNlID0gcm93LCBjaGNudCA9IGNvbCA9IDA7IGNvbCA8IG51bWNvbHM7ICsrY29sKSB7CisJCQlmcHV0d3MobGlzdFtiYXNlXSwgc3Rkb3V0KTsKKwkJCWNoY250ICs9IHdjc193aWR0aChsaXN0W2Jhc2VdKTsKKwkJCWlmICgoYmFzZSArPSBudW1yb3dzKSA+PSBlbnRyaWVzKQorCQkJCWJyZWFrOworCQkJd2hpbGUgKChjbnQgPSAoKGNoY250ICsgVEFCKSAmIH4oVEFCIC0gMSkpKSA8PSBlbmRjb2wpIHsKKwkJCQlwdXR3Y2hhcignXHQnKTsKKwkJCQljaGNudCA9IGNudDsKKwkJCX0KKwkJCWVuZGNvbCArPSBtYXhsZW5ndGg7CisJCX0KKwkJcHV0d2NoYXIoJ1xuJyk7CisJfQorfQorCitzdGF0aWMgdm9pZAorcHJpbnQoKQoreworCWludCBjbnQ7CisJd2NoYXJfdCAqKmxwOworCisJZm9yIChjbnQgPSBlbnRyaWVzLCBscCA9IGxpc3Q7IGNudC0tOyArK2xwKSB7CisJCWZwdXR3cygqbHAsIHN0ZG91dCk7CisJCXB1dHdjaGFyKCdcbicpOworCX0KK30KKwordHlwZWRlZiBzdHJ1Y3QgX3RibCB7CisJd2NoYXJfdCAqKmxpc3Q7CisJaW50IGNvbHMsICpsZW47Cit9IFRCTDsKKyNkZWZpbmUJREVGQ09MUwkyNQorCitzdGF0aWMgdm9pZAorbWFrZXRibCgpCit7CisJVEJMICp0OworCWludCBjb2xvZmYsIGNudCwgaTsKKwl3Y2hhcl90ICpwLCAqKmxwOworCWludCAqbGVucywgbWF4Y29sczsKKwlUQkwgKnRibDsKKwl3Y2hhcl90ICoqY29sczsKKwl3Y2hhcl90ICp3Y3N0b2tfc3RhdGU7CisKKwl0ID0gdGJsID0gZW1hbGxvYyhlbnRyaWVzICogc2l6ZW9mKFRCTCkpOworCWNvbHMgPSBlbWFsbG9jKChtYXhjb2xzID0gREVGQ09MUykgKiBzaXplb2Yod2NoYXJfdCAqKSk7CisJbGVucyA9IGVtYWxsb2MobWF4Y29scyAqIHNpemVvZihpbnQpKTsKKwlmb3IgKGNudCA9IDAsIGxwID0gbGlzdDsgY250IDwgZW50cmllczsgKytjbnQsICsrbHAsICsrdCkgeworCSAgICBmb3IgKGNvbG9mZiA9IDAsIHAgPSAqbHA7CisJICAgICAgICAgKGNvbHNbY29sb2ZmXSA9IHdjc3RvayhwLCBzZXBhcmF0b3IsICZ3Y3N0b2tfc3RhdGUpKSAhPSBOVUxMOworCSAgICAgICAgIHAgPSBOVUxMKQorCQlpZiAoKytjb2xvZmYgPT0gbWF4Y29scykgeworCQkgICAgaWYgKCEoY29scyA9IHJlYWxsb2MoY29scywgKCh1X2ludCltYXhjb2xzICsgREVGQ09MUykKKwkJCQkJICAgICAgICogc2l6ZW9mKHdjaGFyX3QgKikpKSB8fAorCQkJIShsZW5zID0gcmVhbGxvYyhsZW5zLCAoKHVfaW50KW1heGNvbHMgKyBERUZDT0xTKQorCQkJCQkgICAgICAgKiBzaXplb2YoaW50KSkpKQorCQkJZXJyKDEsIE5VTEwpOworCQkgICAgbWVtc2V0KChjaGFyICopbGVucyArIG1heGNvbHMgKiBzaXplb2YoaW50KSwKKwkJCSAgIDAsIERFRkNPTFMgKiBzaXplb2YoaW50KSk7CisJCSAgICBtYXhjb2xzICs9IERFRkNPTFM7CisJCX0KKwkgICAgdC0+bGlzdCA9IGVtYWxsb2MoY29sb2ZmICogc2l6ZW9mKHdjaGFyX3QgKikpOworCSAgICB0LT5sZW4gPSBlbWFsbG9jKGNvbG9mZiAqIHNpemVvZihpbnQpKTsKKwkgICAgZm9yICh0LT5jb2xzID0gY29sb2ZmOyAtLWNvbG9mZiA+PSAwOykgeworCQl0LT5saXN0W2NvbG9mZl0gPSBjb2xzW2NvbG9mZl07CisJCXQtPmxlbltjb2xvZmZdID0gd2NzX3dpZHRoKGNvbHNbY29sb2ZmXSk7CisJCWlmICh0LT5sZW5bY29sb2ZmXSA+IGxlbnNbY29sb2ZmXSkKKwkJICAgIGxlbnNbY29sb2ZmXSA9IHQtPmxlbltjb2xvZmZdOworCSAgICB9CisJfQorCWZvciAoY250ID0gMCwgdCA9IHRibDsgY250IDwgZW50cmllczsgKytjbnQsICsrdCkgeworCSAgICBmb3IgKGNvbG9mZiA9IDA7IGNvbG9mZiA8IHQtPmNvbHMgLSAxOyArK2NvbG9mZikgeworCQlmcHV0d3ModC0+bGlzdFtjb2xvZmZdLCBzdGRvdXQpOworCQlmb3IgKGkgPSBsZW5zW2NvbG9mZl0gLSB0LT5sZW5bY29sb2ZmXSArIDI7IGkgPiAwOyBpLS0pCisJCSAgICBwdXR3Y2hhcignICcpOworCSAgICB9CisJICAgIGZwdXR3cyh0LT5saXN0W2NvbG9mZl0sIHN0ZG91dCk7CisJICAgIHB1dHdjaGFyKCdcbicpOworCX0KK30KKworI2RlZmluZQlERUZOVU0JCTEwMDAKKyNkZWZpbmUJTUFYTElORUxFTgkoTElORV9NQVggKyAxKQorCitzdGF0aWMgdm9pZAoraW5wdXQoZnApCisJRklMRSAqZnA7Cit7CisJc3RhdGljIGludCBtYXhlbnRyeTsKKwlpbnQgbGVuOworCXdjaGFyX3QgKnAsIGJ1ZltNQVhMSU5FTEVOXTsKKworCWlmICghbGlzdCkKKwkJbGlzdCA9IGVtYWxsb2MoKG1heGVudHJ5ID0gREVGTlVNKSAqIHNpemVvZih3Y2hhcl90ICopKTsKKwl3aGlsZSAoZmdldHdzKGJ1ZiwgTUFYTElORUxFTiwgZnApKSB7CisJCWZvciAocCA9IGJ1ZjsgKnAgJiYgaXN3c3BhY2UoKnApOyArK3ApOworCQlpZiAoISpwKQorCQkJY29udGludWU7CisJCWlmICghKHAgPSB3Y3NjaHIocCwgJ1xuJykpKSB7CisJCQl3YXJueChfKCJsaW5lIHRvbyBsb25nIikpOworCQkJZXZhbCA9IDE7CisJCQljb250aW51ZTsKKwkJfQorCQkqcCA9ICdcMCc7CisJCWxlbiA9IHdjc193aWR0aChidWYpOwkvKiBsZW4gPSBwIC0gYnVmOyAqLworCQlpZiAobWF4bGVuZ3RoIDwgbGVuKQorCQkJbWF4bGVuZ3RoID0gbGVuOworCQlpZiAoZW50cmllcyA9PSBtYXhlbnRyeSkgeworCQkJbWF4ZW50cnkgKz0gREVGTlVNOworCQkJaWYgKCEobGlzdCA9IHJlYWxsb2MobGlzdCwKKwkJCSAgICAodV9pbnQpbWF4ZW50cnkgKiBzaXplb2Yod2NoYXJfdCAqKSkpKQorCQkJCWVycigxLCBOVUxMKTsKKwkJfQorCQlsaXN0W2VudHJpZXMrK10gPSB3Y3NkdXAoYnVmKTsKKwl9Cit9CisKKyNpZmRlZiBIQVZFX1dJREVDSEFSCitzdGF0aWMgd2NoYXJfdCAqbWJzX3RvX3djcyhjb25zdCBjaGFyICpzKQoreworCXNpemVfdCBuOworCXdjaGFyX3QgKndjczsKKworCW4gPSBtYnN0b3djcygod2NoYXJfdCAqKTAsIHMsIDApOworCWlmIChuIDwgMCkKKwkJcmV0dXJuIE5VTEw7CisJd2NzID0gbWFsbG9jKChuICsgMSkgKiBzaXplb2Yod2NoYXJfdCkpOworCWlmICghd2NzKQorCQlyZXR1cm4gTlVMTDsKKwlpZiAobWJzdG93Y3Mod2NzLCBzLCBuICsgMSkgPCAwKQorCQlyZXR1cm4gTlVMTDsKKwlyZXR1cm4gd2NzOworfQorI2VuZGlmCisKKyNpZm5kZWYgSEFWRV9XSURFQ0hBUgorc3RhdGljIGNoYXIgKm10c2FmZV9zdHJ0b2soY2hhciAqc3RyLCBjb25zdCBjaGFyICpkZWxpbSwgY2hhciAqKnB0cikKK3sKKwlpZiAoc3RyID09IE5VTEwpIHsKKwkJc3RyID0gKnB0cjsKKwkJaWYgKHN0ciA9PSBOVUxMKQorCQkJcmV0dXJuIE5VTEw7CisJfQorCXN0ciArPSBzdHJzcG4oc3RyLCBkZWxpbSk7CisJaWYgKCpzdHIgPT0gJ1wwJykgeworCQkqcHRyID0gTlVMTDsKKwkJcmV0dXJuIE5VTEw7CisJfSBlbHNlIHsKKwkJY2hhciAqdG9rZW5fZW5kID0gc3RycGJyayhzdHIsIGRlbGltKTsKKwkJaWYgKHRva2VuX2VuZCkgeworCQkJKnRva2VuX2VuZCA9ICdcMCc7CisJCQkqcHRyID0gdG9rZW5fZW5kICsgMTsKKwkJfSBlbHNlCisJCQkqcHRyID0gTlVMTDsKKwkJcmV0dXJuIHN0cjsKKwl9Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgKgorZW1hbGxvYyhzaXplKQorCWludCBzaXplOworeworCWNoYXIgKnA7CisKKwlpZiAoIShwID0gbWFsbG9jKHNpemUpKSkKKwkJZXJyKDEsIE5VTEwpOworCW1lbXNldChwLCAwLCBzaXplKTsKKwlyZXR1cm4gKHApOworfQorCitzdGF0aWMgdm9pZAordXNhZ2UoKQoreworCisJKHZvaWQpZnByaW50ZihzdGRlcnIsCisJICAgIF8oInVzYWdlOiBjb2x1bW4gWy10eF0gWy1jIGNvbHVtbnNdIFtmaWxlIC4uLl1cbiIpKTsKKwlleGl0KDEpOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb252LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2NvbnYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTBlZmExCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9jb252LmMKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5ODkgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKyAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKyAqCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgImhleGR1bXAuaCIKKwordm9pZAorY29udl9jKFBSICpwciwgdV9jaGFyICpwKQoreworCWNoYXIgYnVmWzEwXTsKKwljaGFyIGNvbnN0ICpzdHI7CisKKwlzd2l0Y2goKnApIHsKKwljYXNlICdcMCc6CisJCXN0ciA9ICJcXDAiOworCQlnb3RvIHN0cnByOworCS8qIGNhc2UgJ1xhJzogKi8KKwljYXNlICdcMDA3JzoKKwkJaWYgKGRlcHJlY2F0ZWQpCQkvKiBvZCBkaWRuJ3Qga25vdyBhYm91dCBcYSAqLworCQkJYnJlYWs7CisJCXN0ciA9ICJcXGEiOworCQlnb3RvIHN0cnByOworCWNhc2UgJ1xiJzoKKwkJc3RyID0gIlxcYiI7CisJCWdvdG8gc3RycHI7CisJY2FzZSAnXGYnOgorCQlzdHIgPSAiXFxmIjsKKwkJZ290byBzdHJwcjsKKwljYXNlICdcbic6CisJCXN0ciA9ICJcXG4iOworCQlnb3RvIHN0cnByOworCWNhc2UgJ1xyJzoKKwkJc3RyID0gIlxcciI7CisJCWdvdG8gc3RycHI7CisJY2FzZSAnXHQnOgorCQlzdHIgPSAiXFx0IjsKKwkJZ290byBzdHJwcjsKKwljYXNlICdcdic6CisJCWlmIChkZXByZWNhdGVkKQorCQkJYnJlYWs7CisJCXN0ciA9ICJcXHYiOworCQlnb3RvIHN0cnByOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwlpZiAoaXNwcmludCgqcCkpIHsKKwkJKnByLT5jY2hhciA9ICdjJzsKKwkJKHZvaWQpcHJpbnRmKHByLT5mbXQsICpwKTsKKwl9IGVsc2UgeworCQkodm9pZClzcHJpbnRmKGJ1ZiwgIiUwM28iLCAoaW50KSpwKTsKKwkJc3RyID0gYnVmOworc3RycHI6CQkqcHItPmNjaGFyID0gJ3MnOworCQkodm9pZClwcmludGYocHItPmZtdCwgc3RyKTsKKwl9Cit9CisKK3ZvaWQKK2NvbnZfdShQUiAqcHIsIHVfY2hhciAqcCkKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqbGlzdFtdID0geworCQkibnVsIiwgInNvaCIsICJzdHgiLCAiZXR4IiwgImVvdCIsICJlbnEiLCAiYWNrIiwgImJlbCIsCisJCSAiYnMiLCAgImh0IiwgICJsZiIsICAidnQiLCAgImZmIiwgICJjciIsICAic28iLCAgInNpIiwKKwkJImRsZSIsICJkY2wiLCAiZGMyIiwgImRjMyIsICJkYzQiLCAibmFrIiwgInN5biIsICJldGIiLAorCQkiY2FuIiwgICJlbSIsICJzdWIiLCAiZXNjIiwgICJmcyIsICAiZ3MiLCAgInJzIiwgICJ1cyIsCisJfTsKKworCQkJCQkJLyogb2QgdXNlZCBubCwgbm90IGxmICovCisJaWYgKCpwIDw9IDB4MWYpIHsKKwkJKnByLT5jY2hhciA9ICdzJzsKKwkJaWYgKGRlcHJlY2F0ZWQgJiYgKnAgPT0gMHgwYSkKKwkJCSh2b2lkKXByaW50Zihwci0+Zm10LCAibmwiKTsKKwkJZWxzZQorCQkJKHZvaWQpcHJpbnRmKHByLT5mbXQsIGxpc3RbKnBdKTsKKwl9IGVsc2UgaWYgKCpwID09IDB4N2YpIHsKKwkJKnByLT5jY2hhciA9ICdzJzsKKwkJKHZvaWQpcHJpbnRmKHByLT5mbXQsICJkZWwiKTsKKwl9IGVsc2UgaWYgKGRlcHJlY2F0ZWQgJiYgKnAgPT0gMHgyMCkgewkvKiBvZCByZXBsYWNlZCBzcGFjZSB3aXRoIHNwICovCisJCSpwci0+Y2NoYXIgPSAncyc7CisJCSh2b2lkKXByaW50Zihwci0+Zm10LCAiIHNwIik7CisJfSBlbHNlIGlmIChpc3ByaW50KCpwKSkgeworCQkqcHItPmNjaGFyID0gJ2MnOworCQkodm9pZClwcmludGYocHItPmZtdCwgKnApOworCX0gZWxzZSB7CisJCSpwci0+Y2NoYXIgPSAneCc7CisJCSh2b2lkKXByaW50Zihwci0+Zm10LCAoaW50KSpwKTsKKwl9Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2Rpc3BsYXkuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvZGlzcGxheS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhMzVlNDYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2Rpc3BsYXkuYwpAQCAtMCwwICsxLDM2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk4OSBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgImhleGR1bXAuaCIKKworc3RhdGljIHZvaWQgZG9za2lwKGNvbnN0IGNoYXIgKiwgaW50KTsKK3N0YXRpYyB1X2NoYXIgKmdldCh2b2lkKTsKKworI2lmbmRlZiBNSU4KKyNkZWZpbmUgTUlOKGEsYikgKChhKTwoYik/KGEpOihiKSkKKyNlbmRpZgorCitlbnVtIF92ZmxhZyB2ZmxhZyA9IEZJUlNUOworCitzdGF0aWMgb2ZmX3QgYWRkcmVzczsJCQkvKiBhZGRyZXNzL29mZnNldCBpbiBzdHJlYW0gKi8KK3N0YXRpYyBvZmZfdCBlYWRkcmVzczsJCQkvKiBlbmQgYWRkcmVzcyAqLworCitzdGF0aWMgaW5saW5lIHZvaWQKK3ByaW50KFBSICpwciwgdV9jaGFyICpicCkgeworCisJc3dpdGNoKHByLT5mbGFncykgeworCWNhc2UgRl9BRERSRVNTOgorCQkodm9pZClwcmludGYocHItPmZtdCwgKHF1YWRfdClhZGRyZXNzKTsKKwkJYnJlYWs7CisJY2FzZSBGX0JQQUQ6CisJCSh2b2lkKXByaW50Zihwci0+Zm10LCAiIik7CisJCWJyZWFrOworCWNhc2UgRl9DOgorCQljb252X2MocHIsIGJwKTsKKwkJYnJlYWs7CisJY2FzZSBGX0NIQVI6CisJCSh2b2lkKXByaW50Zihwci0+Zm10LCAqYnApOworCQlicmVhazsKKwljYXNlIEZfREJMOgorCSAgICB7CisJCWRvdWJsZSBkdmFsOworCQlmbG9hdCBmdmFsOworCQlzd2l0Y2gocHItPmJjbnQpIHsKKwkJY2FzZSA0OgorCQkJbWVtbW92ZSgmZnZhbCwgYnAsIHNpemVvZihmdmFsKSk7CisJCQkodm9pZClwcmludGYocHItPmZtdCwgZnZhbCk7CisJCQlicmVhazsKKwkJY2FzZSA4OgorCQkJbWVtbW92ZSgmZHZhbCwgYnAsIHNpemVvZihkdmFsKSk7CisJCQkodm9pZClwcmludGYocHItPmZtdCwgZHZhbCk7CisJCQlicmVhazsKKwkJfQorCQlicmVhazsKKwkgICAgfQorCWNhc2UgRl9JTlQ6CisJICAgIHsKKwkJc2hvcnQgc3ZhbDsJLyogaW50MTZfdCAqLworCQlpbnQgaXZhbDsJLyogaW50MzJfdCAqLworCQlsb25nIGxvbmcgTHZhbDsJLyogaW50NjRfdCwgcXVhZF90ICovCisKKwkJc3dpdGNoKHByLT5iY250KSB7CisJCWNhc2UgMToKKwkJCSh2b2lkKXByaW50Zihwci0+Zm10LCAocXVhZF90KSpicCk7CisJCQlicmVhazsKKwkJY2FzZSAyOgorCQkJbWVtbW92ZSgmc3ZhbCwgYnAsIHNpemVvZihzdmFsKSk7CisJCQkodm9pZClwcmludGYocHItPmZtdCwgKHF1YWRfdClzdmFsKTsKKwkJCWJyZWFrOworCQljYXNlIDQ6CisJCQltZW1tb3ZlKCZpdmFsLCBicCwgc2l6ZW9mKGl2YWwpKTsKKwkJCSh2b2lkKXByaW50Zihwci0+Zm10LCAocXVhZF90KWl2YWwpOworCQkJYnJlYWs7CisJCWNhc2UgODoKKwkJCW1lbW1vdmUoJkx2YWwsIGJwLCBzaXplb2YoTHZhbCkpOworCQkJKHZvaWQpcHJpbnRmKHByLT5mbXQsIChxdWFkX3QpTHZhbCk7CisJCQlicmVhazsKKwkJfQorCQlicmVhazsKKwkgICAgfQorCWNhc2UgRl9QOgorCQkodm9pZClwcmludGYocHItPmZtdCwgaXNwcmludCgqYnApID8gKmJwIDogJy4nKTsKKwkJYnJlYWs7CisJY2FzZSBGX1NUUjoKKwkJKHZvaWQpcHJpbnRmKHByLT5mbXQsIChjaGFyICopYnApOworCQlicmVhazsKKwljYXNlIEZfVEVYVDoKKwkJKHZvaWQpcHJpbnRmKCIlcyIsIHByLT5mbXQpOworCQlicmVhazsKKwljYXNlIEZfVToKKwkJY29udl91KHByLCBicCk7CisJCWJyZWFrOworCWNhc2UgRl9VSU5UOgorCSAgICB7CisJCXVuc2lnbmVkIHNob3J0IHN2YWw7CS8qIHVfaW50MTZfdCAqLworCQl1bnNpZ25lZCBpbnQgaXZhbDsJLyogdV9pbnQzMl90ICovCisJCXVuc2lnbmVkIGxvbmcgbG9uZyBMdmFsOy8qIHVfaW50NjRfdCwgdV9xdWFkX3QgKi8KKworCQlzd2l0Y2gocHItPmJjbnQpIHsKKwkJY2FzZSAxOgorCQkJKHZvaWQpcHJpbnRmKHByLT5mbXQsICh1X3F1YWRfdCkqYnApOworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJCW1lbW1vdmUoJnN2YWwsIGJwLCBzaXplb2Yoc3ZhbCkpOworCQkJKHZvaWQpcHJpbnRmKHByLT5mbXQsICh1X3F1YWRfdClzdmFsKTsKKwkJCWJyZWFrOworCQljYXNlIDQ6CisJCQltZW1tb3ZlKCZpdmFsLCBicCwgc2l6ZW9mKGl2YWwpKTsKKwkJCSh2b2lkKXByaW50Zihwci0+Zm10LCAodV9xdWFkX3QpaXZhbCk7CisJCQlicmVhazsKKwkJY2FzZSA4OgorCQkJbWVtbW92ZSgmTHZhbCwgYnAsIHNpemVvZihMdmFsKSk7CisJCQkodm9pZClwcmludGYocHItPmZtdCwgKHVfcXVhZF90KUx2YWwpOworCQkJYnJlYWs7CisJCX0KKwkJYnJlYWs7CisJICAgIH0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIGJwYWQoUFIgKnByKQoreworCXN0YXRpYyBjb25zdCBjaGFyICpzcGVjID0gIiAtMCsjIjsKKwljaGFyICpwMSwgKnAyOworCisJLyoKKwkgKiByZW1vdmUgYWxsIGNvbnZlcnNpb24gZmxhZ3M7ICctJyBpcyB0aGUgb25seSBvbmUgdmFsaWQKKwkgKiB3aXRoICVzLCBhbmQgaXQncyBub3QgdXNlZnVsIGhlcmUuCisJICovCisJcHItPmZsYWdzID0gRl9CUEFEOworCXByLT5jY2hhclswXSA9ICdzJzsKKwlwci0+Y2NoYXJbMV0gPSAwOworCWZvciAocDEgPSBwci0+Zm10OyAqcDEgIT0gJyUnOyArK3AxKTsKKwlmb3IgKHAyID0gKytwMTsgKnAxICYmIHN0cmNocihzcGVjLCAqcDEpOyArK3AxKTsKKwl3aGlsZSAoKCpwMisrID0gKnAxKyspICE9IDApIDsKK30KKwordm9pZCBkaXNwbGF5KHZvaWQpCit7CisJcmVnaXN0ZXIgRlMgKmZzOworCXJlZ2lzdGVyIEZVICpmdTsKKwlyZWdpc3RlciBQUiAqcHI7CisJcmVnaXN0ZXIgaW50IGNudDsKKwlyZWdpc3RlciB1X2NoYXIgKmJwOworCW9mZl90IHNhdmVhZGRyZXNzOworCXVfY2hhciBzYXZlY2ggPSAwLCAqc2F2ZWJwOworCisJd2hpbGUgKChicCA9IGdldCgpKSAhPSBOVUxMKQorCSAgICBmb3IgKGZzID0gZnNoZWFkLCBzYXZlYnAgPSBicCwgc2F2ZWFkZHJlc3MgPSBhZGRyZXNzOyBmczsKKwkJZnMgPSBmcy0+bmV4dGZzLCBicCA9IHNhdmVicCwgYWRkcmVzcyA9IHNhdmVhZGRyZXNzKQorCQkgICAgZm9yIChmdSA9IGZzLT5uZXh0ZnU7IGZ1OyBmdSA9IGZ1LT5uZXh0ZnUpIHsKKwkJCWlmIChmdS0+ZmxhZ3MmRl9JR05PUkUpCisJCQkJYnJlYWs7CisJCQlmb3IgKGNudCA9IGZ1LT5yZXBzOyBjbnQ7IC0tY250KQorCQkJICAgIGZvciAocHIgPSBmdS0+bmV4dHByOyBwcjsgYWRkcmVzcyArPSBwci0+YmNudCwKKwkJCQlicCArPSBwci0+YmNudCwgcHIgPSBwci0+bmV4dHByKSB7CisJCQkJICAgIGlmIChlYWRkcmVzcyAmJiBhZGRyZXNzID49IGVhZGRyZXNzICYmCisJCQkJCSEocHItPmZsYWdzJihGX1RFWFR8Rl9CUEFEKSkpCisJCQkJCSAgICBicGFkKHByKTsKKwkJCQkgICAgaWYgKGNudCA9PSAxICYmIHByLT5ub3NwYWNlKSB7CisJCQkJCXNhdmVjaCA9ICpwci0+bm9zcGFjZTsKKwkJCQkJKnByLT5ub3NwYWNlID0gJ1wwJzsKKwkJCQkgICAgfQorCQkJCSAgICBwcmludChwciwgYnApOworCQkJCSAgICBpZiAoY250ID09IDEgJiYgcHItPm5vc3BhY2UpCisJCQkJCSpwci0+bm9zcGFjZSA9IHNhdmVjaDsKKwkJCSAgICB9CisJCSAgICB9CisJaWYgKGVuZGZ1KSB7CisJCS8qCisJCSAqIGlmIGVhZGRyZXNzIG5vdCBzZXQsIGVycm9yIG9yIGZpbGUgc2l6ZSB3YXMgbXVsdGlwbGUgb2YKKwkJICogYmxvY2tzaXplLCBhbmQgbm8gcGFydGlhbCBibG9jayBldmVyIGZvdW5kLgorCQkgKi8KKwkJaWYgKCFlYWRkcmVzcykgeworCQkJaWYgKCFhZGRyZXNzKQorCQkJCXJldHVybjsKKwkJCWVhZGRyZXNzID0gYWRkcmVzczsKKwkJfQorCQlmb3IgKHByID0gZW5kZnUtPm5leHRwcjsgcHI7IHByID0gcHItPm5leHRwcikKKwkJCXN3aXRjaChwci0+ZmxhZ3MpIHsKKwkJCWNhc2UgRl9BRERSRVNTOgorCQkJCSh2b2lkKXByaW50Zihwci0+Zm10LCAocXVhZF90KWVhZGRyZXNzKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRl9URVhUOgorCQkJCSh2b2lkKXByaW50ZigiJXMiLCBwci0+Zm10KTsKKwkJCQlicmVhazsKKwkJCX0KKwl9Cit9CisKK3N0YXRpYyBjaGFyICoqX2FyZ3Y7CisKK3N0YXRpYyB1X2NoYXIgKgorZ2V0KHZvaWQpCit7CisJc3RhdGljIGludCBhdGVvZiA9IDE7CisJc3RhdGljIHVfY2hhciAqY3VycCwgKnNhdnA7CisJaW50IG47CisJaW50IG5lZWQsIG5yZWFkOworCXVfY2hhciAqdG1wcDsKKworCWlmICghY3VycCkgeworCQljdXJwID0gZW1hbGxvYyhibG9ja3NpemUpOworCQlzYXZwID0gZW1hbGxvYyhibG9ja3NpemUpOworCX0gZWxzZSB7CisJCXRtcHAgPSBjdXJwOworCQljdXJwID0gc2F2cDsKKwkJc2F2cCA9IHRtcHA7CisJCWFkZHJlc3MgKz0gYmxvY2tzaXplOworCX0KKwlmb3IgKG5lZWQgPSBibG9ja3NpemUsIG5yZWFkID0gMDs7KSB7CisJCS8qCisJCSAqIGlmIHJlYWQgdGhlIHJpZ2h0IG51bWJlciBvZiBieXRlcywgb3IgYXQgRU9GIGZvciBvbmUgZmlsZSwKKwkJICogYW5kIG5vIG90aGVyIGZpbGVzIGFyZSBhdmFpbGFibGUsIHplcm8tcGFkIHRoZSByZXN0IG9mIHRoZQorCQkgKiBibG9jayBhbmQgc2V0IHRoZSBlbmQgZmxhZy4KKwkJICovCisJCWlmICghbGVuZ3RoIHx8IChhdGVvZiAmJiAhbmV4dChOVUxMKSkpIHsKKwkJCWlmIChuZWVkID09IGJsb2Nrc2l6ZSkKKwkJCQlyZXR1cm4oTlVMTCk7CisJCQlpZiAoIW5lZWQgJiYgdmZsYWcgIT0gQUxMICYmCisJCQkgICAgIW1lbWNtcChjdXJwLCBzYXZwLCBucmVhZCkpIHsKKwkJCQlpZiAodmZsYWcgIT0gRFVQKQorCQkJCQkodm9pZClwcmludGYoIipcbiIpOworCQkJCXJldHVybihOVUxMKTsKKwkJCX0KKwkJCWlmIChuZWVkID4gMCkKKwkJCQltZW1zZXQoKGNoYXIgKiljdXJwICsgbnJlYWQsIDAsIG5lZWQpOworCQkJZWFkZHJlc3MgPSBhZGRyZXNzICsgbnJlYWQ7CisJCQlyZXR1cm4oY3VycCk7CisJCX0KKwkJbiA9IGZyZWFkKChjaGFyICopY3VycCArIG5yZWFkLCBzaXplb2YodV9jaGFyKSwKKwkJICAgIGxlbmd0aCA9PSAtMSA/IG5lZWQgOiBNSU4obGVuZ3RoLCBuZWVkKSwgc3RkaW4pOworCQlpZiAoIW4pIHsKKwkJCWlmIChmZXJyb3Ioc3RkaW4pKQorCQkJCSh2b2lkKWZwcmludGYoc3RkZXJyLCAiaGV4ZHVtcDogJXM6ICVzXG4iLAorCQkJCSAgICBfYXJndlstMV0sIHN0cmVycm9yKGVycm5vKSk7CisJCQlhdGVvZiA9IDE7CisJCQljb250aW51ZTsKKwkJfQorCQlhdGVvZiA9IDA7CisJCWlmIChsZW5ndGggIT0gLTEpCisJCQlsZW5ndGggLT0gbjsKKwkJaWYgKCEobmVlZCAtPSBuKSkgeworCQkJaWYgKHZmbGFnID09IEFMTCB8fCB2ZmxhZyA9PSBGSVJTVCB8fAorCQkJICAgIG1lbWNtcChjdXJwLCBzYXZwLCBibG9ja3NpemUpKSB7CisJCQkJaWYgKHZmbGFnID09IERVUCB8fCB2ZmxhZyA9PSBGSVJTVCkKKwkJCQkJdmZsYWcgPSBXQUlUOworCQkJCXJldHVybihjdXJwKTsKKwkJCX0KKwkJCWlmICh2ZmxhZyA9PSBXQUlUKQorCQkJCSh2b2lkKXByaW50ZigiKlxuIik7CisJCQl2ZmxhZyA9IERVUDsKKwkJCWFkZHJlc3MgKz0gYmxvY2tzaXplOworCQkJbmVlZCA9IGJsb2Nrc2l6ZTsKKwkJCW5yZWFkID0gMDsKKwkJfQorCQllbHNlCisJCQlucmVhZCArPSBuOworCX0KK30KKworaW50IG5leHQoY2hhciAqKmFyZ3YpCit7CisJc3RhdGljIGludCBkb25lOworCWludCBzdGF0b2s7CisKKwlpZiAoYXJndikgeworCQlfYXJndiA9IGFyZ3Y7CisJCXJldHVybigxKTsKKwl9CisJZm9yICg7OykgeworCQlpZiAoKl9hcmd2KSB7CisJCQlpZiAoIShmcmVvcGVuKCpfYXJndiwgInIiLCBzdGRpbikpKSB7CisJCQkJKHZvaWQpZnByaW50ZihzdGRlcnIsICJoZXhkdW1wOiAlczogJXNcbiIsCisJCQkJICAgICpfYXJndiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCQlleGl0dmFsID0gMTsKKwkJCQkrK19hcmd2OworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJc3RhdG9rID0gZG9uZSA9IDE7CisJCX0gZWxzZSB7CisJCQlpZiAoZG9uZSsrKQorCQkJCXJldHVybigwKTsKKwkJCXN0YXRvayA9IDA7CisJCX0KKwkJaWYgKHNraXApCisJCQlkb3NraXAoc3RhdG9rID8gKl9hcmd2IDogInN0ZGluIiwgc3RhdG9rKTsKKwkJaWYgKCpfYXJndikKKwkJCSsrX2FyZ3Y7CisJCWlmICghc2tpcCkKKwkJCXJldHVybigxKTsKKwl9CisJLyogTk9UUkVBQ0hFRCAqLworfQorCitzdGF0aWMgdm9pZAorZG9za2lwKGNvbnN0IGNoYXIgKmZuYW1lLCBpbnQgc3RhdG9rKQoreworCXN0cnVjdCBzdGF0IHNidWY7CisKKwlpZiAoc3RhdG9rKSB7CisJCWlmIChmc3RhdChmaWxlbm8oc3RkaW4pLCAmc2J1ZikpIHsKKwkJCSh2b2lkKWZwcmludGYoc3RkZXJyLCAiaGV4ZHVtcDogJXM6ICVzLlxuIiwKKwkJCSAgICBmbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJaWYgKFNfSVNSRUcoc2J1Zi5zdF9tb2RlKSAmJiBza2lwID4gc2J1Zi5zdF9zaXplKSB7CisJCSAgLyogSWYgc2l6ZSB2YWxpZCBhbmQgc2tpcCA+PSBzaXplICovCisJCQlza2lwIC09IHNidWYuc3Rfc2l6ZTsKKwkJCWFkZHJlc3MgKz0gc2J1Zi5zdF9zaXplOworCQkJcmV0dXJuOworCQl9CisJfQorCS8qIHNidWYgbWF5IGJlIHVuZGVmaW5lZCBoZXJlIC0gZG8gbm90IHRlc3QgaXQgKi8KKwlpZiAoZnNlZWsoc3RkaW4sIHNraXAsIFNFRUtfU0VUKSkgeworCQkodm9pZClmcHJpbnRmKHN0ZGVyciwgImhleGR1bXA6ICVzOiAlcy5cbiIsCisJCSAgICBmbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJZXhpdCgxKTsKKwl9CisJYWRkcmVzcyArPSBza2lwOworCXNraXAgPSAwOworfQorCit2b2lkICoKK2VtYWxsb2MoaW50IHN6KSB7CisJdm9pZCAqcDsKKworCWlmICghKHAgPSBtYWxsb2MoKHVfaW50KXN6KSkpCisJCW5vbWVtKCk7CisJbWVtc2V0KHAsIDAsIHN6KTsKKwlyZXR1cm4ocCk7Cit9CisKK3ZvaWQgbm9tZW0oKSB7CisJKHZvaWQpZnByaW50ZihzdGRlcnIsICJoZXhkdW1wOiAlcy5cbiIsIHN0cmVycm9yKGVycm5vKSk7CisJZXhpdCgxKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvaGV4ZHVtcC4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9oZXhkdW1wLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRjYjhjMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvaGV4ZHVtcC4xCkBAIC0wLDAgKzEsMzQyIEBACisuXCIgQ29weXJpZ2h0IChjKSAxOTg5LCAxOTkwLCAxOTkzCisuXCIJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisuXCIKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisuXCIgICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorLlwiCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKy5cIglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKy5cIiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorLlwiICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKy5cIiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy5cIiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorLlwiIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorLlwiIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisuXCIgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKy5cIiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKy5cIiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLlwiIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKy5cIiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisuXCIgU1VDSCBEQU1BR0UuCisuXCIKKy5cIglmcm9tOiBAKCMpaGV4ZHVtcC4xCTguMiAoQmVya2VsZXkpIDQvMTgvOTQKKy5cIgorLkRkIEFwcmlsIDE4LCAxOTk0CisuRHQgSEVYRFVNUCAxCisuT3MKKy5TaCBOQU1FCisuTm0gaGV4ZHVtcAorLk5kIGFzY2lpLCBkZWNpbWFsLCBoZXhhZGVjaW1hbCwgb2N0YWwgZHVtcAorLlNoIFNZTk9QU0lTCisuTm0KKy5PcCBGbCBiY0Nkb3Z4CisuQmsgLXdvcmRzCisuT3AgRmwgZSBBciBmb3JtYXRfc3RyaW5nCisuRWsKKy5CayAtd29yZHMKKy5PcCBGbCBmIEFyIGZvcm1hdF9maWxlCisuRWsKKy5CayAtd29yZHMKKy5PcCBGbCBuIEFyIGxlbmd0aAorLkVrCisuQmsgLXdvcmRzCisuT3AgRmwgcyBBciBza2lwCisuRWsKKy5BciBmaWxlIC4uLgorLlNoIERFU0NSSVBUSU9OCitUaGUgaGV4ZHVtcCB1dGlsaXR5IGlzIGEgZmlsdGVyIHdoaWNoIGRpc3BsYXlzIHRoZSBzcGVjaWZpZWQgZmlsZXMsIG9yCit0aGUgc3RhbmRhcmQgaW5wdXQsIGlmIG5vIGZpbGVzIGFyZSBzcGVjaWZpZWQsIGluIGEgdXNlciBzcGVjaWZpZWQKK2Zvcm1hdC4KKy5QcAorVGhlIG9wdGlvbnMgYXJlIGFzIGZvbGxvd3M6CisuQmwgLXRhZyAtd2lkdGggRmwKKy5JdCBGbCBiCisuRW0gT25lLWJ5dGUgb2N0YWwgZGlzcGxheSAuCitEaXNwbGF5IHRoZSBpbnB1dCBvZmZzZXQgaW4gaGV4YWRlY2ltYWwsIGZvbGxvd2VkIGJ5IHNpeHRlZW4KK3NwYWNlLXNlcGFyYXRlZCwgdGhyZWUgY29sdW1uLCB6ZXJvLWZpbGxlZCwgYnl0ZXMgb2YgaW5wdXQgZGF0YSwKK2luIG9jdGFsLCBwZXIgbGluZS4KKy5JdCBGbCBjCisuRW0gT25lLWJ5dGUgY2hhcmFjdGVyIGRpc3BsYXkgLgorRGlzcGxheSB0aGUgaW5wdXQgb2Zmc2V0IGluIGhleGFkZWNpbWFsLCBmb2xsb3dlZCBieSBzaXh0ZWVuCitzcGFjZS1zZXBhcmF0ZWQsIHRocmVlIGNvbHVtbiwgc3BhY2UtZmlsbGVkLCBjaGFyYWN0ZXJzIG9mIGlucHV0CitkYXRhIHBlciBsaW5lLgorLkl0IEZsIEMKKy5FbSBDYW5vbmljYWwgaGV4K0FTQ0lJIGRpc3BsYXkgLgorRGlzcGxheSB0aGUgaW5wdXQgb2Zmc2V0IGluIGhleGFkZWNpbWFsLCBmb2xsb3dlZCBieSBzaXh0ZWVuCitzcGFjZS1zZXBhcmF0ZWQsIHR3byBjb2x1bW4sIGhleGFkZWNpbWFsIGJ5dGVzLCBmb2xsb3dlZCBieSB0aGUKK3NhbWUgc2l4dGVlbiBieXRlcyBpbiAlX3AgZm9ybWF0IGVuY2xvc2VkIGluIGBgfCcnIGNoYXJhY3RlcnMuCisuSXQgRmwgZAorLkVtIFR3by1ieXRlIGRlY2ltYWwgZGlzcGxheSAuCitEaXNwbGF5IHRoZSBpbnB1dCBvZmZzZXQgaW4gaGV4YWRlY2ltYWwsIGZvbGxvd2VkIGJ5IGVpZ2h0CitzcGFjZS1zZXBhcmF0ZWQsIGZpdmUgY29sdW1uLCB6ZXJvLWZpbGxlZCwgdHdvLWJ5dGUgdW5pdHMKK29mIGlucHV0IGRhdGEsIGluIHVuc2lnbmVkIGRlY2ltYWwsIHBlciBsaW5lLgorLkl0IEZsIGUgQXIgZm9ybWF0X3N0cmluZworU3BlY2lmeSBhIGZvcm1hdCBzdHJpbmcgdG8gYmUgdXNlZCBmb3IgZGlzcGxheWluZyBkYXRhLgorLkl0IEZsIGYgQXIgZm9ybWF0X2ZpbGUKK1NwZWNpZnkgYSBmaWxlIHRoYXQgY29udGFpbnMgb25lIG9yIG1vcmUgbmV3bGluZSBzZXBhcmF0ZWQgZm9ybWF0IHN0cmluZ3MuCitFbXB0eSBsaW5lcyBhbmQgbGluZXMgd2hvc2UgZmlyc3Qgbm9uLWJsYW5rIGNoYXJhY3RlciBpcyBhIGhhc2ggbWFyaworLlBmICggQ20gXCYjICkKK2FyZSBpZ25vcmVkLgorLkl0IEZsIG4gQXIgbGVuZ3RoCitJbnRlcnByZXQgb25seQorLkFyIGxlbmd0aAorYnl0ZXMgb2YgaW5wdXQuCisuSXQgRmwgbworLkVtIFR3by1ieXRlIG9jdGFsIGRpc3BsYXkgLgorRGlzcGxheSB0aGUgaW5wdXQgb2Zmc2V0IGluIGhleGFkZWNpbWFsLCBmb2xsb3dlZCBieSBlaWdodAorc3BhY2Utc2VwYXJhdGVkLCBzaXggY29sdW1uLCB6ZXJvLWZpbGxlZCwgdHdvIGJ5dGUgcXVhbnRpdGllcyBvZgoraW5wdXQgZGF0YSwgaW4gb2N0YWwsIHBlciBsaW5lLgorLkl0IEZsIHMgQXIgb2Zmc2V0CitTa2lwCisuQXIgb2Zmc2V0CitieXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0LgorQnkgZGVmYXVsdCwKKy5BciBvZmZzZXQKK2lzIGludGVycHJldGVkIGFzIGEgZGVjaW1hbCBudW1iZXIuCitXaXRoIGEgbGVhZGluZworLkNtIDB4CitvcgorLkNtIDBYICwKKy5BciBvZmZzZXQKK2lzIGludGVycHJldGVkIGFzIGEgaGV4YWRlY2ltYWwgbnVtYmVyLAorb3RoZXJ3aXNlLCB3aXRoIGEgbGVhZGluZworLkNtIDAgLAorLkFyIG9mZnNldAoraXMgaW50ZXJwcmV0ZWQgYXMgYW4gb2N0YWwgbnVtYmVyLgorQXBwZW5kaW5nIHRoZSBjaGFyYWN0ZXIKKy5DbSBiICwKKy5DbSBrICwKK29yCisuQ20gbQordG8KKy5BciBvZmZzZXQKK2NhdXNlcyBpdCB0byBiZSBpbnRlcnByZXRlZCBhcyBhIG11bHRpcGxlIG9mCisuTGkgNTEyICwKKy5MaSAxMDI0ICwKK29yCisuTGkgMTA0ODU3NiAsCityZXNwZWN0aXZlbHkuCisuSXQgRmwgdgorVGhlCisuRmwgdgorb3B0aW9uIGNhdXNlcyBoZXhkdW1wIHRvIGRpc3BsYXkgYWxsIGlucHV0IGRhdGEuCitXaXRob3V0IHRoZQorLkZsIHYKK29wdGlvbiwgYW55IG51bWJlciBvZiBncm91cHMgb2Ygb3V0cHV0IGxpbmVzLCB3aGljaCB3b3VsZCBiZQoraWRlbnRpY2FsIHRvIHRoZSBpbW1lZGlhdGVseSBwcmVjZWRpbmcgZ3JvdXAgb2Ygb3V0cHV0IGxpbmVzIChleGNlcHQKK2ZvciB0aGUgaW5wdXQgb2Zmc2V0cyksIGFyZSByZXBsYWNlZCB3aXRoIGEgbGluZSBjb21wcmlzZWQgb2YgYQorc2luZ2xlIGFzdGVyaXNrLgorLkl0IEZsIHgKKy5FbSBUd28tYnl0ZSBoZXhhZGVjaW1hbCBkaXNwbGF5IC4KK0Rpc3BsYXkgdGhlIGlucHV0IG9mZnNldCBpbiBoZXhhZGVjaW1hbCwgZm9sbG93ZWQgYnkgZWlnaHQsIHNwYWNlCitzZXBhcmF0ZWQsIGZvdXIgY29sdW1uLCB6ZXJvLWZpbGxlZCwgdHdvLWJ5dGUgcXVhbnRpdGllcyBvZiBpbnB1dAorZGF0YSwgaW4gaGV4YWRlY2ltYWwsIHBlciBsaW5lLgorLkVsCisuUHAKK0ZvciBlYWNoIGlucHV0IGZpbGUsCisuTm0KK3NlcXVlbnRpYWxseSBjb3BpZXMgdGhlIGlucHV0IHRvIHN0YW5kYXJkIG91dHB1dCwgdHJhbnNmb3JtaW5nIHRoZQorZGF0YSBhY2NvcmRpbmcgdG8gdGhlIGZvcm1hdCBzdHJpbmdzIHNwZWNpZmllZCBieSB0aGUKKy5GbCBlCithbmQKKy5GbCBmCitvcHRpb25zLCBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5IHdlcmUgc3BlY2lmaWVkLgorLlNzIEZvcm1hdHMKK0EgZm9ybWF0IHN0cmluZyBjb250YWlucyBhbnkgbnVtYmVyIG9mIGZvcm1hdCB1bml0cywgc2VwYXJhdGVkIGJ5Cit3aGl0ZXNwYWNlLgorQSBmb3JtYXQgdW5pdCBjb250YWlucyB1cCB0byB0aHJlZSBpdGVtczogYW4gaXRlcmF0aW9uIGNvdW50LCBhIGJ5dGUKK2NvdW50LCBhbmQgYSBmb3JtYXQuCisuUHAKK1RoZSBpdGVyYXRpb24gY291bnQgaXMgYW4gb3B0aW9uYWwgcG9zaXRpdmUgaW50ZWdlciwgd2hpY2ggZGVmYXVsdHMgdG8KK29uZS4KK0VhY2ggZm9ybWF0IGlzIGFwcGxpZWQgaXRlcmF0aW9uIGNvdW50IHRpbWVzLgorLlBwCitUaGUgYnl0ZSBjb3VudCBpcyBhbiBvcHRpb25hbCBwb3NpdGl2ZSBpbnRlZ2VyLgorSWYgc3BlY2lmaWVkIGl0IGRlZmluZXMgdGhlIG51bWJlciBvZiBieXRlcyB0byBiZSBpbnRlcnByZXRlZCBieQorZWFjaCBpdGVyYXRpb24gb2YgdGhlIGZvcm1hdC4KKy5QcAorSWYgYW4gaXRlcmF0aW9uIGNvdW50IGFuZC9vciBhIGJ5dGUgY291bnQgaXMgc3BlY2lmaWVkLCBhIHNpbmdsZSBzbGFzaAorbXVzdCBiZSBwbGFjZWQgYWZ0ZXIgdGhlIGl0ZXJhdGlvbiBjb3VudCBhbmQvb3IgYmVmb3JlIHRoZSBieXRlIGNvdW50Cit0byBkaXNhbWJpZ3VhdGUgdGhlbS4KK0FueSB3aGl0ZXNwYWNlIGJlZm9yZSBvciBhZnRlciB0aGUgc2xhc2ggaXMgaWdub3JlZC4KKy5QcAorVGhlIGZvcm1hdCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBzdXJyb3VuZGVkIGJ5IGRvdWJsZSBxdW90ZQorKCIgIikgbWFya3MuCitJdCBpcyBpbnRlcnByZXRlZCBhcyBhIGZwcmludGYtc3R5bGUgZm9ybWF0IHN0cmluZyAoc2VlCisuWHIgZnByaW50ZiAzICkgLAord2l0aCB0aGUKK2ZvbGxvd2luZyBleGNlcHRpb25zOgorLkJsIC1idWxsZXQgLW9mZnNldCBpbmRlbnQKKy5JdAorQW4gYXN0ZXJpc2sgKCopIG1heSBub3QgYmUgdXNlZCBhcyBhIGZpZWxkIHdpZHRoIG9yIHByZWNpc2lvbi4KKy5JdAorQSBieXRlIGNvdW50IG9yIGZpZWxkIHByZWNpc2lvbgorLkVtIGlzCityZXF1aXJlZCBmb3IgZWFjaCBgYHMnJyBjb252ZXJzaW9uCitjaGFyYWN0ZXIgKHVubGlrZSB0aGUKKy5YciBmcHJpbnRmIDMKK2RlZmF1bHQgd2hpY2ggcHJpbnRzIHRoZSBlbnRpcmUgc3RyaW5nIGlmIHRoZSBwcmVjaXNpb24gaXMgdW5zcGVjaWZpZWQpLgorLkl0CitUaGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzIGBgaCcnLCBgYGwnJywgYGBuJycsIGBgcCcnIGFuZCBgYHEnJyBhcmUKK25vdCBzdXBwb3J0ZWQuCisuSXQKK1RoZSBzaW5nbGUgY2hhcmFjdGVyIGVzY2FwZSBzZXF1ZW5jZXMKK2Rlc2NyaWJlZCBpbiB0aGUgQyBzdGFuZGFyZCBhcmUgc3VwcG9ydGVkOgorLkJkIC1yYWdnZWQgLW9mZnNldCBpbmRlbnQgLWNvbXBhY3QKKy5CbCAtY29sdW1uIDxhbGVydF9jaGFyYWN0ZXI+CisuSXQgTlVMCVxlMAorLkl0IDxhbGVydCBjaGFyYWN0ZXI+CVxlYQorLkl0IDxiYWNrc3BhY2U+CVxlYgorLkl0IDxmb3JtLWZlZWQ+CVxlZgorLkl0IDxuZXdsaW5lPglcZW4KKy5JdCA8Y2FycmlhZ2UgcmV0dXJuPglcZXIKKy5JdCA8dGFiPglcZXQKKy5JdCA8dmVydGljYWwgdGFiPglcZXYKKy5FbAorLkVkCisuRWwKKy5QcAorSGV4ZHVtcCBhbHNvIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBjb252ZXJzaW9uIHN0cmluZ3M6CisuQmwgLXRhZyAtd2lkdGggRmwKKy5JdCBDbSBcJl9hIE5zIE9wIENtIGRveAorRGlzcGxheSB0aGUgaW5wdXQgb2Zmc2V0LCBjdW11bGF0aXZlIGFjcm9zcyBpbnB1dCBmaWxlcywgb2YgdGhlCituZXh0IGJ5dGUgdG8gYmUgZGlzcGxheWVkLgorVGhlIGFwcGVuZGVkIGNoYXJhY3RlcnMKKy5DbSBkICwKKy5DbSBvICwKK2FuZAorLkNtIHgKK3NwZWNpZnkgdGhlIGRpc3BsYXkgYmFzZQorYXMgZGVjaW1hbCwgb2N0YWwgb3IgaGV4YWRlY2ltYWwgcmVzcGVjdGl2ZWx5LgorLkl0IENtIFwmX0EgTnMgT3AgQ20gZG94CitJZGVudGljYWwgdG8gdGhlCisuQ20gXCZfYQorY29udmVyc2lvbiBzdHJpbmcgZXhjZXB0IHRoYXQgaXQgaXMgb25seSBwZXJmb3JtZWQKK29uY2UsIHdoZW4gYWxsIG9mIHRoZSBpbnB1dCBkYXRhIGhhcyBiZWVuIHByb2Nlc3NlZC4KKy5JdCBDbSBcJl9jCitPdXRwdXQgY2hhcmFjdGVycyBpbiB0aGUgZGVmYXVsdCBjaGFyYWN0ZXIgc2V0LgorTm9ucHJpbnRpbmcgY2hhcmFjdGVycyBhcmUgZGlzcGxheWVkIGluIHRocmVlIGNoYXJhY3RlciwgemVyby1wYWRkZWQKK29jdGFsLCBleGNlcHQgZm9yIHRob3NlIHJlcHJlc2VudGFibGUgYnkgc3RhbmRhcmQgZXNjYXBlIG5vdGF0aW9uCisoc2VlIGFib3ZlKSwKK3doaWNoIGFyZSBkaXNwbGF5ZWQgYXMgdHdvIGNoYXJhY3RlciBzdHJpbmdzLgorLkl0IENtIF9wCitPdXRwdXQgY2hhcmFjdGVycyBpbiB0aGUgZGVmYXVsdCBjaGFyYWN0ZXIgc2V0LgorTm9ucHJpbnRpbmcgY2hhcmFjdGVycyBhcmUgZGlzcGxheWVkIGFzIGEgc2luZ2xlCisuRHEgQ20gXCYuIC4KKy5JdCBDbSBfdQorT3V0cHV0IFVTIEFTQ0lJIGNoYXJhY3RlcnMsIHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IGNvbnRyb2wgY2hhcmFjdGVycyBhcmUKK2Rpc3BsYXllZCB1c2luZyB0aGUgZm9sbG93aW5nLCBsb3dlci1jYXNlLCBuYW1lcy4KK0NoYXJhY3RlcnMgZ3JlYXRlciB0aGFuIDB4ZmYsIGhleGFkZWNpbWFsLCBhcmUgZGlzcGxheWVkIGFzIGhleGFkZWNpbWFsCitzdHJpbmdzLgorLkJsIC1jb2x1bW4gXCYwMDBfbnUgXCYwMDFfc28gXCYwMDJfc3QgXCYwMDNfZXQgXCYwMDRfZW8KKy5JdCBcJjAwMFwgbnVsXHQwMDFcIHNvaFx0MDAyXCBzdHhcdDAwM1wgZXR4XHQwMDRcIGVvdFx0MDA1XCBlbnEKKy5JdCBcJjAwNlwgYWNrXHQwMDdcIGJlbFx0MDA4XCBic1x0MDA5XCBodFx0MDBBXCBsZlx0MDBCXCB2dAorLkl0IFwmMDBDXCBmZlx0MDBEXCBjclx0MDBFXCBzb1x0MDBGXCBzaVx0MDEwXCBkbGVcdDAxMVwgZGMxCisuSXQgXCYwMTJcIGRjMlx0MDEzXCBkYzNcdDAxNFwgZGM0XHQwMTVcIG5ha1x0MDE2XCBzeW5cdDAxN1wgZXRiCisuSXQgXCYwMThcIGNhblx0MDE5XCBlbVx0MDFBXCBzdWJcdDAxQlwgZXNjXHQwMUNcIGZzXHQwMURcIGdzCisuSXQgXCYwMUVcIHJzXHQwMUZcIHVzXHQwRkZcIGRlbAorLkVsCisuRWwKKy5QcAorVGhlIGRlZmF1bHQgYW5kIHN1cHBvcnRlZCBieXRlIGNvdW50cyBmb3IgdGhlIGNvbnZlcnNpb24gY2hhcmFjdGVycworYXJlIGFzIGZvbGxvd3M6CisuQmwgLXRhZyAtd2lkdGggICJYYyxfWGMsX1hjLF9YYyxfWGMsX1hjIiAtb2Zmc2V0IGluZGVudAorLkl0IExpIFwmJV9jICwgXCYlX3AgLCBcJiVfdSAsIFwmJWMKK09uZSBieXRlIGNvdW50cyBvbmx5LgorLkl0IFhvCisuTGkgXCYlZCAsIFwmJWkgLCBcJiVvICwKKy5MaSBcJiV1ICwgXCYlWCAsIFwmJXgKKy5YYworRm91ciBieXRlIGRlZmF1bHQsIG9uZSwgdHdvIGFuZCBmb3VyIGJ5dGUgY291bnRzIHN1cHBvcnRlZC4KKy5JdCBYbworLkxpIFwmJUUgLCBcJiVlICwgXCYlZiAsCisuTGkgXCYlRyAsIFwmJWcKKy5YYworRWlnaHQgYnl0ZSBkZWZhdWx0LCBmb3VyIGJ5dGUgY291bnRzIHN1cHBvcnRlZC4KKy5FbAorLlBwCitUaGUgYW1vdW50IG9mIGRhdGEgaW50ZXJwcmV0ZWQgYnkgZWFjaCBmb3JtYXQgc3RyaW5nIGlzIHRoZSBzdW0gb2YgdGhlCitkYXRhIHJlcXVpcmVkIGJ5IGVhY2ggZm9ybWF0IHVuaXQsIHdoaWNoIGlzIHRoZSBpdGVyYXRpb24gY291bnQgdGltZXMgdGhlCitieXRlIGNvdW50LCBvciB0aGUgaXRlcmF0aW9uIGNvdW50IHRpbWVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQgYnkKK3RoZSBmb3JtYXQgaWYgdGhlIGJ5dGUgY291bnQgaXMgbm90IHNwZWNpZmllZC4KKy5QcAorVGhlIGlucHV0IGlzIG1hbmlwdWxhdGVkIGluIGBgYmxvY2tzJycsIHdoZXJlIGEgYmxvY2sgaXMgZGVmaW5lZCBhcyB0aGUKK2xhcmdlc3QgYW1vdW50IG9mIGRhdGEgc3BlY2lmaWVkIGJ5IGFueSBmb3JtYXQgc3RyaW5nLgorRm9ybWF0IHN0cmluZ3MgaW50ZXJwcmV0aW5nIGxlc3MgdGhhbiBhbiBpbnB1dCBibG9jaydzIHdvcnRoIG9mIGRhdGEsCit3aG9zZSBsYXN0IGZvcm1hdCB1bml0IGJvdGggaW50ZXJwcmV0cyBzb21lIG51bWJlciBvZiBieXRlcyBhbmQgZG9lcworbm90IGhhdmUgYSBzcGVjaWZpZWQgaXRlcmF0aW9uIGNvdW50LCBoYXZlIHRoZSBpdGVyYXRpb24gY291bnQKK2luY3JlbWVudGVkIHVudGlsIHRoZSBlbnRpcmUgaW5wdXQgYmxvY2sgaGFzIGJlZW4gcHJvY2Vzc2VkIG9yIHRoZXJlCitpcyBub3QgZW5vdWdoIGRhdGEgcmVtYWluaW5nIGluIHRoZSBibG9jayB0byBzYXRpc2Z5IHRoZSBmb3JtYXQgc3RyaW5nLgorLlBwCitJZiwgZWl0aGVyIGFzIGEgcmVzdWx0IG9mIHVzZXIgc3BlY2lmaWNhdGlvbiBvciBoZXhkdW1wIG1vZGlmeWluZwordGhlIGl0ZXJhdGlvbiBjb3VudCBhcyBkZXNjcmliZWQgYWJvdmUsIGFuIGl0ZXJhdGlvbiBjb3VudCBpcworZ3JlYXRlciB0aGFuIG9uZSwgbm8gdHJhaWxpbmcgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGFyZSBvdXRwdXQKK2R1cmluZyB0aGUgbGFzdCBpdGVyYXRpb24uCisuUHAKK0l0IGlzIGFuIGVycm9yIHRvIHNwZWNpZnkgYSBieXRlIGNvdW50IGFzIHdlbGwgYXMgbXVsdGlwbGUgY29udmVyc2lvbgorY2hhcmFjdGVycyBvciBzdHJpbmdzIHVubGVzcyBhbGwgYnV0IG9uZSBvZiB0aGUgY29udmVyc2lvbiBjaGFyYWN0ZXJzCitvciBzdHJpbmdzIGlzCisuQ20gXCZfYQorb3IKKy5DbSBcJl9BIC4KKy5QcAorSWYsIGFzIGEgcmVzdWx0IG9mIHRoZSBzcGVjaWZpY2F0aW9uIG9mIHRoZQorLkZsIG4KK29wdGlvbiBvciBlbmQtb2YtZmlsZSBiZWluZyByZWFjaGVkLCBpbnB1dCBkYXRhIG9ubHkgcGFydGlhbGx5CitzYXRpc2ZpZXMgYSBmb3JtYXQgc3RyaW5nLCB0aGUgaW5wdXQgYmxvY2sgaXMgemVyby1wYWRkZWQgc3VmZmljaWVudGx5Cit0byBkaXNwbGF5IGFsbCBhdmFpbGFibGUgZGF0YSAoaS5lLiBhbnkgZm9ybWF0IHVuaXRzIG92ZXJsYXBwaW5nIHRoZQorZW5kIG9mIGRhdGEgd2lsbCBkaXNwbGF5IHNvbWUgbnVtYmVyIG9mIHRoZSB6ZXJvIGJ5dGVzKS4KKy5QcAorRnVydGhlciBvdXRwdXQgYnkgc3VjaCBmb3JtYXQgc3RyaW5ncyBpcyByZXBsYWNlZCBieSBhbiBlcXVpdmFsZW50CitudW1iZXIgb2Ygc3BhY2VzLgorQW4gZXF1aXZhbGVudCBudW1iZXIgb2Ygc3BhY2VzIGlzIGRlZmluZWQgYXMgdGhlIG51bWJlciBvZiBzcGFjZXMKK291dHB1dCBieSBhbgorLkNtIHMKK2NvbnZlcnNpb24gY2hhcmFjdGVyIHdpdGggdGhlIHNhbWUgZmllbGQgd2lkdGgKK2FuZCBwcmVjaXNpb24gYXMgdGhlIG9yaWdpbmFsIGNvbnZlcnNpb24gY2hhcmFjdGVyIG9yIGNvbnZlcnNpb24KK3N0cmluZyBidXQgd2l0aCBhbnkKKy5EcSBMaSBcJisgLAorLkRxIFwmXCBcJiAsCisuRHEgTGkgXCYjCitjb252ZXJzaW9uIGZsYWcgY2hhcmFjdGVycworcmVtb3ZlZCwgYW5kIHJlZmVyZW5jaW5nIGEgTlVMTCBzdHJpbmcuCisuUHAKK0lmIG5vIGZvcm1hdCBzdHJpbmdzIGFyZSBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IGRpc3BsYXkgaXMgZXF1aXZhbGVudAordG8gc3BlY2lmeWluZyB0aGUKKy5GbCB4CitvcHRpb24uCisuUHAKKy5ObQorZXhpdHMgMCBvbiBzdWNjZXNzIGFuZCA+MCBpZiBhbiBlcnJvciBvY2N1cnJlZC4KKy5TaCBFWEFNUExFUworRGlzcGxheSB0aGUgaW5wdXQgaW4gcGVydXNhbCBmb3JtYXQ6CisuQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKKyIlMDYuNl9hbyAiICAxMi8xICIlM191ICIKKyJcZXRcZXQiICIlX3AgIgorIlxlbiIKKy5FZAorLlBwCitJbXBsZW1lbnQgdGhlIFwteCBvcHRpb246CisuQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKKyIlMDcuN19BeFxlbiIKKyIlMDcuN19heCAgIiA4LzIgIiUwNHggIiAiXGVuIgorLkVkCisuU2ggU1RBTkRBUkRTCitUaGUKKy5ObQordXRpbGl0eSBpcyBleHBlY3RlZCB0byBiZQorLlN0IC1wMTAwMy4yCitjb21wYXRpYmxlLgorLlNoIEFWQUlMQUJJTElUWQorVGhlIGhleGR1bXAgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2hleGR1bXAuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvaGV4ZHVtcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4YmI3NmUKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2hleGR1bXAuYwpAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTg5IFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworIC8qIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAgKi8KKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSAiaGV4ZHVtcC5oIgorI2luY2x1ZGUgIm5scy5oIgorCitGUyAqZnNoZWFkOwkJCQkvKiBoZWFkIG9mIGZvcm1hdCBzdHJpbmdzICovCitpbnQgYmxvY2tzaXplOwkJCQkvKiBkYXRhIGJsb2NrIHNpemUgKi8KK2ludCBleGl0dmFsOwkJCQkvKiBmaW5hbCBleGl0IHZhbHVlICovCitpbnQgbGVuZ3RoID0gLTE7CQkJLyogbWF4IGJ5dGVzIHRvIHJlYWQgKi8KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCUZTICp0ZnM7CisJY2hhciAqcDsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwlpZiAoIShwID0gc3RycmNocihhcmd2WzBdLCAnbycpKSB8fCBzdHJjbXAocCwgIm9kIikpCisJCW5ld3N5bnRheChhcmdjLCAmYXJndik7CisJZWxzZQorCQlvbGRzeW50YXgoYXJnYywgJmFyZ3YpOworCisJLyogZmlndXJlIG91dCB0aGUgZGF0YSBibG9jayBzaXplICovCisJZm9yIChibG9ja3NpemUgPSAwLCB0ZnMgPSBmc2hlYWQ7IHRmczsgdGZzID0gdGZzLT5uZXh0ZnMpIHsKKwkJdGZzLT5iY250ID0gc2l6ZSh0ZnMpOworCQlpZiAoYmxvY2tzaXplIDwgdGZzLT5iY250KQorCQkJYmxvY2tzaXplID0gdGZzLT5iY250OworCX0KKwkvKiByZXdyaXRlIHRoZSBydWxlcywgZG8gc3ludGF4IGNoZWNraW5nICovCisJZm9yICh0ZnMgPSBmc2hlYWQ7IHRmczsgdGZzID0gdGZzLT5uZXh0ZnMpCisJCXJld3JpdGUodGZzKTsKKworCSh2b2lkKW5leHQoYXJndik7CisJZGlzcGxheSgpOworCXJldHVybiBleGl0dmFsOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9oZXhkdW1wLmggYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2hleGR1bXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWU5NjNiCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9oZXhkdW1wLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk4OSBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqCUAoIyloZXhkdW1wLmgJNS40IChCZXJrZWxleSkgNi8xLzkwCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3ByIHsKKwlzdHJ1Y3QgX3ByICpuZXh0cHI7CQkvKiBuZXh0IHByaW50IHVuaXQgKi8KKyNkZWZpbmUJRl9BRERSRVNTCTB4MDAxCQkvKiBwcmludCBvZmZzZXQgKi8KKyNkZWZpbmUJRl9CUEFECQkweDAwMgkJLyogYmxhbmsgcGFkICovCisjZGVmaW5lCUZfQwkJMHgwMDQJCS8qICVfYyAqLworI2RlZmluZQlGX0NIQVIJCTB4MDA4CQkvKiAlYyAqLworI2RlZmluZQlGX0RCTAkJMHgwMTAJCS8qICVbRWVmR2ZdICovCisjZGVmaW5lCUZfSU5UCQkweDAyMAkJLyogJVtkaV0gKi8KKyNkZWZpbmUJRl9QCQkweDA0MAkJLyogJV9wICovCisjZGVmaW5lCUZfU1RSCQkweDA4MAkJLyogJXMgKi8KKyNkZWZpbmUJRl9VCQkweDEwMAkJLyogJV91ICovCisjZGVmaW5lCUZfVUlOVAkJMHgyMDAJCS8qICVbb3VYeF0gKi8KKyNkZWZpbmUJRl9URVhUCQkweDQwMAkJLyogbm8gY29udmVyc2lvbnMgKi8KKwl1X2ludCBmbGFnczsJCQkvKiBmbGFnIHZhbHVlcyAqLworCWludCBiY250OwkJCS8qIGJ5dGUgY291bnQgKi8KKwljaGFyICpjY2hhcjsJCQkvKiBjb252ZXJzaW9uIGNoYXJhY3RlciAqLworCWNoYXIgKmZtdDsJCQkvKiBwcmludGYgZm9ybWF0ICovCisJY2hhciAqbm9zcGFjZTsJCQkvKiBubyB3aGl0ZXNwYWNlIHZlcnNpb24gKi8KK30gUFI7CisKK3R5cGVkZWYgc3RydWN0IF9mdSB7CisJc3RydWN0IF9mdSAqbmV4dGZ1OwkJLyogbmV4dCBmb3JtYXQgdW5pdCAqLworCXN0cnVjdCBfcHIgKm5leHRwcjsJCS8qIG5leHQgcHJpbnQgdW5pdCAqLworI2RlZmluZQlGX0lHTk9SRQkweDAxCQkvKiAlX0EgKi8KKyNkZWZpbmUJRl9TRVRSRVAJMHgwMgkJLyogcmVwIGNvdW50IHNldCwgbm90IGRlZmF1bHQgKi8KKwl1X2ludCBmbGFnczsJCQkvKiBmbGFnIHZhbHVlcyAqLworCWludCByZXBzOwkJCS8qIHJlcGV0aXRpb24gY291bnQgKi8KKwlpbnQgYmNudDsJCQkvKiBieXRlIGNvdW50ICovCisJY2hhciAqZm10OwkJCS8qIGZvcm1hdCBzdHJpbmcgKi8KK30gRlU7CisKK3R5cGVkZWYgc3RydWN0IF9mcyB7CQkJLyogZm9ybWF0IHN0cmluZ3MgKi8KKwlzdHJ1Y3QgX2ZzICpuZXh0ZnM7CQkvKiBsaW5rZWQgbGlzdCBvZiBmb3JtYXQgc3RyaW5ncyAqLworCXN0cnVjdCBfZnUgKm5leHRmdTsJCS8qIGxpbmtlZCBsaXN0IG9mIGZvcm1hdCB1bml0cyAqLworCWludCBiY250OworfSBGUzsKKworZXh0ZXJuIEZVICplbmRmdTsKK2V4dGVybiBGUyAqZnNoZWFkOwkJCS8qIGhlYWQgb2YgZm9ybWF0IHN0cmluZ3MgbGlzdCAqLworZXh0ZXJuIGludCBibG9ja3NpemU7CQkJLyogZGF0YSBibG9jayBzaXplICovCitleHRlcm4gaW50IGRlcHJlY2F0ZWQ7CQkJLyogb2QgY29tcGF0aWJpbGl0eSAqLworZXh0ZXJuIGludCBleGl0dmFsOwkJCS8qIGZpbmFsIGV4aXQgdmFsdWUgKi8KK2V4dGVybiBpbnQgbGVuZ3RoOwkJCS8qIG1heCBieXRlcyB0byByZWFkICovCitleHRlcm4gb2ZmX3Qgc2tpcDsgICAgICAgICAgICAgICAgICAgICAgLyogYnl0ZXMgdG8gc2tpcCAqLworCitlbnVtIF92ZmxhZyB7IEFMTCwgRFVQLCBGSVJTVCwgV0FJVCB9OwkvKiAtdiB2YWx1ZXMgKi8KK2V4dGVybiBlbnVtIF92ZmxhZyB2ZmxhZzsKKwordm9pZCAqZW1hbGxvYyhpbnQpOworaW50IHNpemUoRlMgKik7Cit2b2lkIGFkZChjb25zdCBjaGFyICopOwordm9pZCByZXdyaXRlKEZTICopOwordm9pZCBhZGRmaWxlKGNoYXIgKik7Cit2b2lkIGRpc3BsYXkodm9pZCk7Cit2b2lkIG5vbWVtKHZvaWQpOwordm9pZCB1c2FnZSh2b2lkKTsKK3ZvaWQgY29udl9jKFBSICosIHVfY2hhciAqKTsKK3ZvaWQgY29udl91KFBSICosIHVfY2hhciAqKTsKK2ludCAgbmV4dChjaGFyICoqKTsKK3ZvaWQgb2xkc3ludGF4KGludCwgY2hhciAqKiopOwordm9pZCBuZXdzeW50YXgoaW50LCBjaGFyICoqKik7CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2hleHN5bnRheC5jIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9oZXhzeW50YXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDUwNDNjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9oZXhzeW50YXguYwpAQCAtMCwwICsxLDEzMyBAQAorLyotCisgKiBDb3B5cmlnaHQgKGMpIDE5OTAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKyAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKyAqCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisgLyogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlICJoZXhkdW1wLmgiCisjaW5jbHVkZSAibmxzLmgiCisKK29mZl90IHNraXA7CQkJCS8qIGJ5dGVzIHRvIHNraXAgKi8KKwordm9pZAorbmV3c3ludGF4KGludCBhcmdjLCBjaGFyICoqKmFyZ3ZwKQoreworCWludCBjaDsKKwljaGFyICpwLCAqKmFyZ3Y7CisKKwlhcmd2ID0gKmFyZ3ZwOworCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwgImJjQ2RlOmY6bjpvczp2eCIpKSAhPSAtMSkKKwkJc3dpdGNoIChjaCkgeworCQljYXNlICdiJzoKKwkJCWFkZCgiXCIlMDcuN19BeFxuXCIiKTsKKwkJCWFkZCgiXCIlMDcuN19heCBcIiAxNi8xIFwiJTAzbyBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnYyc6CisJCQlhZGQoIlwiJTA3LjdfQXhcblwiIik7CisJCQlhZGQoIlwiJTA3LjdfYXggXCIgMTYvMSBcIiUzX2MgXCIgXCJcXG5cIiIpOworCQkJYnJlYWs7CisJCWNhc2UgJ0MnOgorCQkJYWRkKCJcIiUwOC44X0F4XG5cIiIpOworCQkJYWRkKCJcIiUwOC44X2F4ICBcIiA4LzEgXCIlMDJ4IFwiIFwiICBcIiA4LzEgXCIlMDJ4IFwiICIpOworCQkJYWRkKCJcIiAgfFwiIDE2LzEgXCIlX3BcIiBcInxcXG5cIiIpOworCQkJYnJlYWs7CisJCWNhc2UgJ2QnOgorCQkJYWRkKCJcIiUwNy43X0F4XG5cIiIpOworCQkJYWRkKCJcIiUwNy43X2F4IFwiIDgvMiBcIiAgJTA1dSBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnZSc6CisJCQlhZGQob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICdmJzoKKwkJCWFkZGZpbGUob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICduJzoKKwkJCWlmICgobGVuZ3RoID0gYXRvaShvcHRhcmcpKSA8IDApIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkgICAgXygiaGV4ZHVtcDogYmFkIGxlbmd0aCB2YWx1ZS5cbiIpKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgJ28nOgorCQkJYWRkKCJcIiUwNy43X0F4XG5cIiIpOworCQkJYWRkKCJcIiUwNy43X2F4IFwiIDgvMiBcIiAlMDZvIFwiIFwiXFxuXCIiKTsKKwkJCWJyZWFrOworCQljYXNlICdzJzoKKwkJCWlmICgoc2tpcCA9IHN0cnRvbChvcHRhcmcsICZwLCAwKSkgPCAwKSB7CisJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJICAgIF8oImhleGR1bXA6IGJhZCBza2lwIHZhbHVlLlxuIikpOworCQkJCWV4aXQoMSk7CisJCQl9CisJCQlzd2l0Y2goKnApIHsKKwkJCWNhc2UgJ2InOgorCQkJCXNraXAgKj0gNTEyOworCQkJCWJyZWFrOworCQkJY2FzZSAnayc6CisJCQkJc2tpcCAqPSAxMDI0OworCQkJCWJyZWFrOworCQkJY2FzZSAnbSc6CisJCQkJc2tpcCAqPSAxMDQ4NTc2OworCQkJCWJyZWFrOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgJ3YnOgorCQkJdmZsYWcgPSBBTEw7CisJCQlicmVhazsKKwkJY2FzZSAneCc6CisJCQlhZGQoIlwiJTA3LjdfQXhcblwiIik7CisJCQlhZGQoIlwiJTA3LjdfYXggXCIgOC8yIFwiICAgJTA0eCBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnPyc6CisJCQl1c2FnZSgpOworCQl9CisKKwlpZiAoIWZzaGVhZCkgeworCQlhZGQoIlwiJTA3LjdfQXhcblwiIik7CisJCWFkZCgiXCIlMDcuN19heCBcIiA4LzIgXCIlMDR4IFwiIFwiXFxuXCIiKTsKKwl9CisKKwkqYXJndnAgKz0gb3B0aW5kOworfQorCit2b2lkCit1c2FnZSgpCit7CisJZnByaW50ZihzdGRlcnIsCitfKCJoZXhkdW1wOiBbLWJjQ2RvdnhdIFstZSBmbXRdIFstZiBmbXRfZmlsZV0gWy1uIGxlbmd0aF0gWy1zIHNraXBdIFtmaWxlIC4uLl1cbiIpKTsKKwlleGl0KDEpOworfQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9saW5lLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2xpbmUuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzA4MWVhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9saW5lLjEKQEAgLTAsMCArMSwxNyBAQAorLlwiIFRoaXMgcGFnZSBpcyBpbiB0aGUgcHVibGljIGRvbWFpbgorLlRIIExJTkUgMSAiMjAwMi0wNy0wNyIgIiIgIlVzZXIgQ29tbWFuZHMiCisuU0ggTkFNRQorbGluZSBcLSByZWFkIG9uZSBsaW5lCisuU0ggU1lOT1BTSVMKKy5CIGxpbmUKKy5TSCBERVNDUklQVElPTgorVGhlIHV0aWxpdHkKKy5JIGxpbmUKK2NvcGllcyBvbmUgbGluZSAodXAgdG8gYSBuZXdsaW5lKSBmcm9tIHN0YW5kYXJkIGlucHV0IHRvIHN0YW5kYXJkIG91dHB1dC4KK0l0IGFsd2F5cyBwcmludHMgYXQgbGVhc3QgYSBuZXdsaW5lIGFuZCByZXR1cm5zIGFuIGV4aXQgc3RhdHVzIG9mIDEKK29uIEVPRiBvciByZWFkIGVycm9yLgorLlNIICJTRUUgQUxTTyIKKy5CUiByZWFkICgxKQorLlNIIEFWQUlMQUJJTElUWQorVGhlIGxpbmUgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2xpbmUuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvbGluZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4YzUzZmEKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL2xpbmUuYwpAQCAtMCwwICsxLDM2IEBACisvKgorICogbGluZSAtIHJlYWQgb25lIGxpbmUKKyAqCisgKiBHdW5uYXIgUml0dGVyLCBGcmVpYnVyZyBpLiBCci4sIEdlcm1hbnksIERlY2VtYmVyIDIwMDAuCisgKgorICogUHVibGljIERvbWFpbi4KKyAqLworCisjaW5jbHVkZQk8c3RkaW8uaD4KKyNpbmNsdWRlCTx1bmlzdGQuaD4KKworc3RhdGljIGludAlzdGF0dXM7CQkvKiBleGl0IHN0YXR1cyAqLworCitzdGF0aWMgdm9pZAorZG9saW5lKGludCBmZCkKK3sKKwljaGFyIGM7CisKKwlmb3IgKDs7KSB7CisJCWlmIChyZWFkKGZkLCAmYywgMSkgPD0gMCkgeworCQkJc3RhdHVzID0gMTsKKwkJCWJyZWFrOworCQl9CisJCWlmIChjID09ICdcbicpCisJCQlicmVhazsKKwkJcHV0Y2hhcihjKTsKKwl9CisJcHV0Y2hhcignXG4nKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlkb2xpbmUoMCk7CisJcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvbW9yZS4xIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9tb3JlLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTA0OWQxMwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvbW9yZS4xCkBAIC0wLDAgKzEsMjA1IEBACisuXCIgQ29weXJpZ2h0IChjKSAxOTg4LCAxOTkwIFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisuXCIgQ29weXJpZ2h0IChjKSAxOTg4IE1hcmsgTnVkbGVtYW4KKy5cIiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLlwiCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLlwiIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorLlwiICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKy5cIglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisuXCIJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisuXCIgNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKy5cIiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKy5cIiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy5cIgorLlwiIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisuXCIgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisuXCIgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKy5cIiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKy5cIiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorLlwiIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisuXCIgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisuXCIgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKy5cIiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisuXCIgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorLlwiIFNVQ0ggREFNQUdFLgorLlwiCisuXCIJQCgjKW1vcmUuMQk1LjE1IChCZXJrZWxleSkgNy8yOS85MQorLlwiCisuXCIgUmV2aXNlZDogRnJpIERlYyAyNSAxNToyNzoyNyAxOTkyIGJ5IHJvb3QKKy5cIiAyNURlYzkyOiBFeHRlbnNpdmUgY2hhbmdlcyBtYWRlIGJ5IFJpayBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSkgdG8KKy5cIiBjb25mb3JtIHdpdGggdGhlIG1vcmUgNS4xOSBjdXJyZW50bHkgaW4gdXNlIGJ5IHRoZSBMaW51eCBjb21tdW5pdHkuCisuXCIKKy5cIiAuRGQgSnVseSAyOSwgMTk5MSAoTW9kaWZpZWQgRGVjZW1iZXIgMjUsIDE5OTIpCisuRGQgRGVjZW1iZXIgMjUsIDE5OTIKKy5EdCBNT1JFIDEKKy5PcyAiTGludXggMC45OCIKKy5TaCBOQU1FCisuTm0gbW9yZQorLk5kIGZpbGUgcGVydXNhbCBmaWx0ZXIgZm9yIGNydCB2aWV3aW5nCisuU2ggU1lOT1BTSVMKKy5ObSBtb3JlCisuT3AgRmwgZGxmcGNzdQorLk9wIEZsIG51bQorLk9wICsvXGZJcGF0dGVyblxmUAorLk9wICtcZklsaW5lbnVtXGZQCisuT3AgQXIKKy5TaCBERVNDUklQVElPTgorLk5tIE1vcmUKK2lzIGEgZmlsdGVyIGZvciBwYWdpbmcgdGhyb3VnaCB0ZXh0IG9uZSBzY3JlZW5mdWwgYXQgYSB0aW1lLiAgVGhpcyB2ZXJzaW9uCitpcyBlc3BlY2lhbGx5IHByaW1pdGl2ZS4gIFVzZXJzIHNob3VsZCByZWFsaXplIHRoYXQKKy5YciBsZXNzIDEKK3Byb3ZpZGVzCisuWHIgbW9yZSAxCitlbXVsYXRpb24gYW5kIGV4dGVuc2l2ZSBlbmhhbmNlbWVudHMuCisuU2ggT1BUSU9OUworQ29tbWFuZCBsaW5lIG9wdGlvbnMgYXJlIGRlc2NyaWJlZCBiZWxvdy4KK09wdGlvbnMgYXJlIGFsc28gdGFrZW4gZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKy5FdiBNT1JFCisobWFrZSBzdXJlIHRvIHByZWNlZGUgdGhlbSB3aXRoIGEgZGFzaCAoYGAtJycpKSBidXQgY29tbWFuZAorbGluZSBvcHRpb25zIHdpbGwgb3ZlcnJpZGUgdGhlbS4KKy5CbCAtdGFnIC13aWR0aCBmbGFnCisuSXQgRmwgbnVtCitUaGlzIG9wdGlvbiBzcGVjaWZpZXMgYW4gaW50ZWdlciB3aGljaCBpcyB0aGUgc2NyZWVuIHNpemUgKGluIGxpbmVzKS4KKy5JdCBGbCBkCisuTm0gbW9yZQord2lsbCBwcm9tcHQgdGhlIHVzZXIgd2l0aCB0aGUgbWVzc2FnZSAiW1ByZXNzIHNwYWNlIHRvIGNvbnRpbnVlLCAncScgdG8KK3F1aXQuXSIgYW5kIHdpbGwgZGlzcGxheSAiW1ByZXNzICdoJyBmb3IgaW5zdHJ1Y3Rpb25zLl0iIGluc3RlYWQgb2YgcmluZ2luZwordGhlIGJlbGwgd2hlbiBhbiBpbGxlZ2FsIGtleSBpcyBwcmVzc2VkLgorLkl0IEZsIGwKKy5ObSBtb3JlCit1c3VhbGx5IHRyZWF0cworLkljIFwmXkwKKyhmb3JtIGZlZWQpIGFzIGEgc3BlY2lhbCBjaGFyYWN0ZXIsIGFuZCB3aWxsIHBhdXNlIGFmdGVyIGFueSBsaW5lIHRoYXQKK2NvbnRhaW5zIGEgZm9ybSBmZWVkLiAgVGhlCisuRmwgbAorb3B0aW9uIHdpbGwgcHJldmVudCB0aGlzIGJlaGF2aW9yLgorLkl0IEZsIGYKK0NhdXNlcworLk5tIG1vcmUKK3RvIGNvdW50IGxvZ2ljYWwsIHJhdGhlciB0aGFuIHNjcmVlbiBsaW5lcyAoaS5lLiwgbG9uZyBsaW5lcyBhcmUgbm90Citmb2xkZWQpLgorLkl0IEZsIHAKK0RvIG5vdCBzY3JvbGwuICBJbnN0ZWFkLCBjbGVhciB0aGUgd2hvbGUgc2NyZWVuIGFuZCB0aGVuIGRpc3BsYXkgdGhlIHRleHQuCisuSXQgRmwgYworRG8gbm90IHNjcm9sbC4gIEluc3RlYWQsIHBhaW50IGVhY2ggc2NyZWVuIGZyb20gdGhlIHRvcCwgY2xlYXJpbmcgdGhlCityZW1haW5kZXIgb2YgZWFjaCBsaW5lIGFzIGl0IGlzIGRpc3BsYXllZC4KKy5JdCBGbCBzCitTcXVlZXplIG11bHRpcGxlIGJsYW5rIGxpbmVzIGludG8gb25lLgorLkl0IEZsIHUKK1N1cHByZXNzIHVuZGVybGluaW5nLgorLkl0IEljICsvCitUaGUKKy5JYyArLworb3B0aW9uIHNwZWNpZmllcyBhIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQgZm9yIGJlZm9yZQorZWFjaCBmaWxlIGlzIGRpc3BsYXllZC4KKy5JdCBJYyArbnVtCitTdGFydCBhdCBsaW5lIG51bWJlcgorLkljIG51bSAuCisuRWwKKy5TaCBDT01NQU5EUworSW50ZXJhY3RpdmUgY29tbWFuZHMgZm9yCisuTm0gbW9yZQorYXJlIGJhc2VkIG9uCisuWHIgdmkgIDEgIC4KK1NvbWUgY29tbWFuZHMgbWF5IGJlIHByZWNlZGVkIGJ5IGEgZGVjaW1hbCBudW1iZXIsIGNhbGxlZCBrIGluIHRoZQorZGVzY3JpcHRpb25zIGJlbG93LgorSW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbnMsIF5YIG1lYW5zIGNvbnRyb2wtWC4KKy5QcAorLkJsIC10YWcgLXdpZHRoIEljCisuSXQgSWMgaCBObyBvciBJYyA/CitIZWxwOiBkaXNwbGF5IGEgc3VtbWFyeSBvZiB0aGVzZSBjb21tYW5kcy4KK0lmIHlvdSBmb3JnZXQgYWxsIHRoZSBvdGhlciBjb21tYW5kcywgcmVtZW1iZXIgdGhpcyBvbmUuCisuSXQgSWMgU1BBQ0UKK0Rpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQuICBEZWZhdWx0cyB0byBjdXJyZW50IHNjcmVlbiBzaXplLgorLkl0IEljIHoKK0Rpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQuICBEZWZhdWx0cyB0byBjdXJyZW50IHNjcmVlbiBzaXplLiAgQXJndW1lbnQKK2JlY29tZXMgbmV3IGRlZmF1bHQuCisuSXQgSWMgUkVUVVJOCitEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0LiAgRGVmYXVsdHMgdG8gMS4gIEFyZ3VtZW50IGJlY29tZXMgbmV3CitkZWZhdWx0LgorLkl0IEljIGQgTm8gb3IgSWMgXCZeRAorU2Nyb2xsIGsgbGluZXMuICBEZWZhdWx0IGlzIGN1cnJlbnQgc2Nyb2xsIHNpemUsIGluaXRpYWxseSAxMS4gIEFyZ3VtZW50CitiZWNvbWVzIG5ldyBkZWZhdWx0LgorLkl0IFhvCisuSWMgcQorLk5vIG9yCisuSWMgUQorLk5vIG9yCisuSWMgSU5URVJSVVBUCisuWGMKK0V4aXQuCisuSXQgSWMgcworU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dC4gIERlZmF1bHRzIHRvIDEuCisuSXQgSWMgZgorU2tpcCBmb3J3YXJkIGsgc2NyZWVuZnVscyBvZiB0ZXh0LiAgRGVmYXVsdHMgdG8gMS4KKy5JdCBJYyBiIE5vIG9yIEljIFwmXkIKK1NraXAgYmFja3dhcmRzIGsgc2NyZWVuZnVscyBvZiB0ZXh0LiAgRGVmYXVsdHMgdG8gMS4KK09ubHkgd29ya3Mgd2l0aCBmaWxlcywgbm90IHBpcGVzLgorLkl0IEljICcKK0dvIHRvIHBsYWNlIHdoZXJlIHByZXZpb3VzIHNlYXJjaCBzdGFydGVkLgorLkl0IEljID0KK0Rpc3BsYXkgY3VycmVudCBsaW5lIG51bWJlci4KKy5JdCBJYyBcJi8gTnMgQXIgcGF0dGVybgorU2VhcmNoIGZvciBrdGggb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24uICBEZWZhdWx0cyB0byAxLgorLkl0IEljIG4KK1NlYXJjaCBmb3Iga3RoIG9jY3VycmVuY2Ugb2YgbGFzdCByLmUuICBEZWZhdWx0cyB0byAxLgorLkl0IEljICE8Y21kPiBObyBvciBJYyA6ITxjbWQ+CitFeGVjdXRlIDxjbWQ+IGluIGEgc3Vic2hlbGwKKy5JdCBJYyB2CitTdGFydCB1cCBhbiBlZGl0b3IgYXQgY3VycmVudCBsaW5lLgorVGhlIGVkaXRvciBpcyB0YWtlbiBmcm9tIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBWSVNVQUwgaWYgZGVmaW5lZCwKK29yIEVESVRPUiBpZiBWSVNVQUwgaXMgbm90IGRlZmluZWQsCitvciBkZWZhdWx0cyB0byAidmkiIGlmIG5laXRoZXIgVklTVUFMIG5vciBFRElUT1IgaXMgZGVmaW5lZC4KKy5JdCBJYyBcJl5MCitSZWRyYXcgc2NyZWVuCisuSXQgSWMgOm4KK0dvIHRvIGt0aCBuZXh0IGZpbGUuICBEZWZhdWx0cyB0byAxLgorLkl0IEljIDpwCitHbyB0byBrdGggcHJldmlvdXMgZmlsZS4gIERlZmF1bHRzIHRvIDEuCisuSXQgSWMgOmYKK0Rpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyCisuSXQgSWMgXCYuCitSZXBlYXQgcHJldmlvdXMgY29tbWFuZAorLkVsCisuU2ggRU5WSVJPTk1FTlQKKy5ObSBNb3JlCit1dGlsaXplcyB0aGUgZm9sbG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlcywgaWYgdGhleSBleGlzdDoKKy5CbCAtdGFnIC13aWR0aCBGbAorLkl0IEV2IE1PUkUKK1RoaXMgdmFyaWFibGUgbWF5IGJlIHNldCB3aXRoIGZhdm9yZWQgb3B0aW9ucyB0bworLk5tIG1vcmUgLgorLkl0IEV2IFNIRUxMCitDdXJyZW50IHNoZWxsIGluIHVzZSAobm9ybWFsbHkgc2V0IGJ5IHRoZSBzaGVsbCBhdCBsb2dpbiB0aW1lKS4KKy5JdCBFdiBURVJNCitTcGVjaWZpZXMgdGVybWluYWwgdHlwZSwgdXNlZCBieSBtb3JlIHRvIGdldCB0aGUgdGVybWluYWwKK2NoYXJhY3RlcmlzdGljcyBuZWNlc3NhcnkgdG8gbWFuaXB1bGF0ZSB0aGUgc2NyZWVuLgorLkVsCisuU2ggU0VFIEFMU08KKy5YciB2aSAxICwKKy5YciBsZXNzIDEKKy5TaCBBVVRIT1JTCitFcmljIFNoaWVuYnJvb2QsIFVDIEJlcmtlbGV5CisuYnIKK01vZGlmaWVkIGJ5IEdlb2ZmIFBlY2ssIFVDQiB0byBhZGQgdW5kZXJsaW5pbmcsIHNpbmdsZSBzcGFjaW5nCisuYnIKK01vZGlmaWVkIGJ5IEpvaG4gRm9kZXJhcm8sIFVDQiB0byBhZGQgLWMgYW5kIE1PUkUgZW52aXJvbm1lbnQgdmFyaWFibGUKKy5TaCBISVNUT1JZCitUaGUKKy5ObSBtb3JlCitjb21tYW5kIGFwcGVhcmVkIGluCisuQnggMy4wIC4KK1RoaXMgbWFuIHBhZ2UgZG9jdW1lbnRzCisuTm0gbW9yZQordmVyc2lvbiA1LjE5IChCZXJrZWxleSA2LzI5Lzg4KSwgd2hpY2ggaXMgY3VycmVudGx5IGluIHVzZSBpbiB0aGUgTGludXgKK2NvbW11bml0eS4gIERvY3VtZW50YXRpb24gd2FzIHByb2R1Y2VkIHVzaW5nIHNldmVyYWwgb3RoZXIgdmVyc2lvbnMgb2YgdGhlCittYW4gcGFnZSwgYW5kIGV4dGVuc2l2ZSBpbnNwZWN0aW9uIG9mIHRoZSBzb3VyY2UgY29kZS4KKy5TaCBBVkFJTEFCSUxJVFkKK1RoZSBtb3JlIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9tb3JlLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL21vcmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZWVkZmJlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9tb3JlLmMKQEAgLTAsMCArMSwyMTYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTgwIFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMgYXJlIHBlcm1pdHRlZAorICogcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwYXJhZ3JhcGggYXJlCisgKiBkdXBsaWNhdGVkIGluIGFsbCBzdWNoIGZvcm1zIGFuZCB0aGF0IGFueSBkb2N1bWVudGF0aW9uLAorICogYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzLCBhbmQgb3RoZXIgbWF0ZXJpYWxzIHJlbGF0ZWQgdG8gc3VjaAorICogZGlzdHJpYnV0aW9uIGFuZCB1c2UgYWNrbm93bGVkZ2UgdGhhdCB0aGUgc29mdHdhcmUgd2FzIGRldmVsb3BlZAorICogYnkgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgQmVya2VsZXkuICBUaGUgbmFtZSBvZiB0aGUKKyAqIFVuaXZlcnNpdHkgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRJQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKyAqLworCisvKgorKiogbW9yZS5jIC0gR2VuZXJhbCBwdXJwb3NlIHR0eSBvdXRwdXQgZmlsdGVyIGFuZCBmaWxlIHBlcnVzYWwgcHJvZ3JhbQorKioKKyoqCWJ5IEVyaWMgU2hpZW5icm9vZCwgVUMgQmVya2VsZXkKKyoqCisqKgltb2RpZmllZCBieSBHZW9mZiBQZWNrLCBVQ0IgdG8gYWRkIHVuZGVybGluaW5nLCBzaW5nbGUgc3BhY2luZworKioJbW9kaWZpZWQgYnkgSm9obiBGb2RlcmFybywgVUNCIHRvIGFkZCAtYyBhbmQgTU9SRSBlbnZpcm9ubWVudCB2YXJpYWJsZQorKioJbW9kaWZpZWQgYnkgRXJpayBUcm9hbiA8ZXd0QHJlZGhhdC5jb20+IHRvIGJlIG1vcmUgcG9zaXggYW5kIHNvIGNvbXBpbGUKKyoqCSAgb24gbGludXgvYXhwLgorKioJbW9kaWZpZWQgYnkgS2FycyBkZSBKb25nIDxqb25na0Bjcy51dHdlbnRlLm5sPiB0byB1c2UgdGVybWluZm8gaW5zdGVhZAorKioJICBvZiB0ZXJtY2FwLgorCTE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorCS0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKwkxOTk5LTAzLTE5IEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUBjb25lY3RpdmEuY29tLmJyPgorCS0gbW9yZSBubHMgdHJhbnNsYXRhYmxlIHN0cmluZ3MKKwkxOTk5LTA1LTA5IGFlYiAtIGFwcGxpZWQgYSBSZWRIYXQgcGF0Y2ggKHNldGptcC0+c2lnc2V0am1wKTsgd2l0aG91dCBpdAorCWEgc2Vjb25kIF5aIHdvdWxkIGZhaWwuCisJMTk5OS0wNS0wOSBhZWIgLSB1bmRvbmUgS2Fycycgd29yaywgc28gdGhhdCBtb3JlIHdvcmtzIHdpdGhvdXQKKwlsaWJjdXJzZXMgKGFuZCBoZW5jZSBjYW4gYmUgaW4gL2JpbiB3aXRoIGxpYmN1cnNlcyBiZWluZyBpbiAvdXNyL2xpYgorCXdoaWNoIG1heSBub3QgYmUgbW91bnRlZCkuIEhvd2V2ZXIsIHdoZW4gdGVybWNhcCBpcyBub3QgcHJlc2VudCBjdXJzZXMKKwljYW4gc3RpbGwgYmUgdXNlZC4KKyovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgkJLyogZm9yIGFsbG9jYSgpICovCisjaW5jbHVkZSA8c3RkYXJnLmg+CQkvKiBmb3IgdmFfc3RhcnQoKSBldGMgKi8KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisjaW5jbHVkZSA8c2V0am1wLmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvZmlsZS5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSAieHN0cm5jcHkuaCIKKyNpbmNsdWRlICJubHMuaCIKKyNpbmNsdWRlICJ3aWRlY2hhci5oIgorCisjZGVmaW5lIF9SRUdFWF9SRV9DT01QCisjaW5jbHVkZSA8cmVnZXguaD4KKyN1bmRlZiBfUkVHRVhfUkVfQ09NUAorCisjZGVmaW5lIFZJCQkidmkiCS8qIGZvdW5kIG9uIHRoZSB1c2VyJ3MgcGF0aCAqLworCisjZGVmaW5lIEZvcGVuKHMsbSkJKEN1cnJsaW5lID0gMCxmaWxlX3Bvcz0wLGZvcGVuKHMsbSkpCisjZGVmaW5lIEZ0ZWxsKGYpCWZpbGVfcG9zCisjZGVmaW5lIEZzZWVrKGYsb2ZmKQkoZmlsZV9wb3M9b2ZmLGZzZWVrKGYsb2ZmLDApKQorI2RlZmluZSBHZXRjKGYpCQkoKytmaWxlX3BvcywgZ2V0YyhmKSkKKyNkZWZpbmUgVW5nZXRjKGMsZikJKC0tZmlsZV9wb3MsIHVuZ2V0YyhjLGYpKQorI2RlZmluZSBwdXRjZXJyKGMpCWZwdXRjKGMsIHN0ZGVycikKKyNkZWZpbmUgcHV0c2VycihzKQlmcHV0cyhzLCBzdGRlcnIpCisjZGVmaW5lIHB1dHNvdXQocykJZnB1dHMocywgc3Rkb3V0KQorCisjZGVmaW5lIHN0dHkoZmQsYXJncCkgIHRjc2V0YXR0cihmZCxUQ1NBTk9XLGFyZ3ApCisKKy8qIHNvbWUgZnVuY3Rpb24gZGVjbGFyYXRpb25zICovCit2b2lkIGluaXR0ZXJtKHZvaWQpOwordm9pZCBraWxsX2xpbmUodm9pZCk7Cit2b2lkIGRvY2xlYXIodm9pZCk7Cit2b2lkIGNsZWFyZW9sKHZvaWQpOwordm9pZCBjbHJlb3Modm9pZCk7Cit2b2lkIGhvbWUodm9pZCk7Cit2b2lkIGVycm9yIChjaGFyICptZXNzKTsKK3ZvaWQgZG9fc2hlbGwgKGNoYXIgKmZpbGVuYW1lKTsKK2ludCAgY29sb24gKGNoYXIgKmZpbGVuYW1lLCBpbnQgY21kLCBpbnQgbmxpbmVzKTsKK2ludCAgZXhwYW5kIChjaGFyICoqb3V0YnVmLCBjaGFyICppbmJ1Zik7Cit2b2lkIGFyZ3NjYW4oY2hhciAqcyxjaGFyICphcmd2MCk7Cit2b2lkIHJkbGluZSAocmVnaXN0ZXIgRklMRSAqZik7Cit2b2lkIGNvcHlfZmlsZShyZWdpc3RlciBGSUxFICpmKTsKK3ZvaWQgc2VhcmNoKGNoYXIgYnVmW10sIEZJTEUgKmZpbGUsIHJlZ2lzdGVyIGludCBuKTsKK3ZvaWQgc2tpcGYgKHJlZ2lzdGVyIGludCBuc2tpcCk7Cit2b2lkIHNraXBsbnMocmVnaXN0ZXIgaW50IG4sIHJlZ2lzdGVyIEZJTEUgKmYpOwordm9pZCBzY3JlZW4gKHJlZ2lzdGVyIEZJTEUgKmYsIHJlZ2lzdGVyIGludCBudW1fbGluZXMpOworaW50ICBjb21tYW5kIChjaGFyICpmaWxlbmFtZSwgcmVnaXN0ZXIgRklMRSAqZik7Cit2b2lkIGVyYXNlcCAocmVnaXN0ZXIgaW50IGNvbCk7Cit2b2lkIHNob3cgKHJlZ2lzdGVyIGNoYXIgY2gpOwordm9pZCBzZXRfdHR5KHZvaWQpOwordm9pZCByZXNldF90dHkodm9pZCk7Cit2b2lkIHR0eWluIChjaGFyIGJ1ZltdLCByZWdpc3RlciBpbnQgbm1heCwgY2hhciBwY2hhcik7CitpbnQgIG51bWJlcihjaGFyICpjbWQpOworaW50ICByZWFkY2ggKHZvaWQpOworaW50ICBnZXRfbGluZShyZWdpc3RlciBGSUxFICpmLCBpbnQgKmxlbmd0aCk7Cit2b2lkIHByYnVmIChyZWdpc3RlciBjaGFyICpzLCByZWdpc3RlciBpbnQgbik7Cit2b2lkIGV4ZWN1dGUgKGNoYXIgKmZpbGVuYW1lLCBjaGFyICpjbWQsIC4uLik7CitGSUxFICpjaGVja2YgKGNoYXIgKiwgaW50ICopOworaW50IHByZXBhcmVfbGluZV9idWZmZXIodm9pZCk7CisKKyNkZWZpbmUgVEJVRlNJWgkxMDI0CisjZGVmaW5lIExJTlNJWgkyNTYJLyogbWluaW1hbCBMaW5lIGJ1ZmZlciBzaXplICovCisjZGVmaW5lIGN0cmwobGV0dGVyKQkobGV0dGVyICYgMDc3KQorI2RlZmluZSBSVUJPVVQJJ1wxNzcnCisjZGVmaW5lIEVTQwknXDAzMycKKyNkZWZpbmUgUVVJVAknXDAzNCcKKworc3RydWN0IHRlcm1pb3MJb3R0eSwgc2F2ZXR0eTA7Citsb25nCQlmaWxlX3BvcywgZmlsZV9zaXplOworaW50CQlmbnVtLCBub19pbnR0eSwgbm9fdHR5LCBzbG93X3R0eTsKK2ludAkJZHVtX29wdCwgZGxpbmVzOwordm9pZAkJb25xdWl0KGludCksIG9uc3VzcChpbnQpLCBjaGd3aW5zeihpbnQpLCBlbmRfaXQoaW50KTsKK2ludAkJbnNjcm9sbCA9IDExOwkvKiBOdW1iZXIgb2YgbGluZXMgc2Nyb2xsZWQgYnkgJ2QnICovCitpbnQJCWZvbGRfb3B0ID0gMTsJLyogRm9sZCBsb25nIGxpbmVzICovCitpbnQJCXN0b3Bfb3B0ID0gMTsJLyogU3RvcCBhZnRlciBmb3JtIGZlZWRzICovCitpbnQJCXNzcF9vcHQgPSAwOwkvKiBTdXBwcmVzcyB3aGl0ZSBzcGFjZSAqLworaW50CQl1bF9vcHQgPSAxOwkvKiBVbmRlcmxpbmUgYXMgYmVzdCB3ZSBjYW4gKi8KK2ludAkJcHJvbXB0bGVuOworaW50CQlDdXJybGluZTsJLyogTGluZSB3ZSBhcmUgY3VycmVudGx5IGF0ICovCitpbnQJCXN0YXJ0dXAgPSAxOworaW50CQlmaXJzdGYgPSAxOworaW50CQlub3RlbGwgPSAxOworaW50CQlkb2NydGVyYXNlID0gMDsKK2ludAkJZG9jcnRraWxsID0gMDsKK2ludAkJYmFkX3NvOwkvKiBUcnVlIGlmIG92ZXJ3cml0aW5nIGRvZXMgbm90IHR1cm4gb2ZmIHN0YW5kb3V0ICovCitpbnQJCWlud2FpdCwgUGF1c2UsIGVycm9yczsKK2ludAkJd2l0aGluOwkvKiB0cnVlIGlmIHdlIGFyZSB3aXRoaW4gYSBmaWxlLAorCQkJZmFsc2UgaWYgd2UgYXJlIGJldHdlZW4gZmlsZXMgKi8KK2ludAkJaGFyZCwgZHVtYiwgbm9zY3JvbGwsIGhhcmR0YWJzLCBjbHJlb2wsIGVhdG5sOworaW50CQljYXRjaF9zdXNwOwkvKiBXZSBzaG91bGQgY2F0Y2ggdGhlIFNJR1RTVFAgc2lnbmFsICovCitjaGFyCQkqKmZuYW1lczsJLyogVGhlIGxpc3Qgb2YgZmlsZSBuYW1lcyAqLworaW50CQluZmlsZXM7CQkvKiBOdW1iZXIgb2YgZmlsZXMgbGVmdCB0byBwcm9jZXNzICovCitjaGFyCQkqc2hlbGw7CQkvKiBUaGUgbmFtZSBvZiB0aGUgc2hlbGwgdG8gdXNlICovCitpbnQJCXNoZWxscDsJCS8qIEEgcHJldmlvdXMgc2hlbGwgY29tbWFuZCBleGlzdHMgKi8KK3NpZ2ptcF9idWYJcmVzdG9yZTsKK2NoYXIJCSpMaW5lOwkJLyogTGluZSBidWZmZXIgKi8KK3NpemVfdAkJTGluZUxlbjsJLyogc2l6ZSBvZiBMaW5lIGJ1ZmZlciAqLworaW50CQlMcHAgPSAyNDsJLyogbGluZXMgcGVyIHBhZ2UgKi8KK2NoYXIJCSpDbGVhcjsJCS8qIGNsZWFyIHNjcmVlbiAqLworY2hhcgkJKmVyYXNlbG47CS8qIGVyYXNlIGxpbmUgKi8KK2NoYXIJCSpTZW50ZXIsICpTZXhpdDsvKiBlbnRlciBhbmQgZXhpdCBzdGFuZG91dCBtb2RlICovCitjaGFyCQkqVUxlbnRlciwgKlVMZXhpdDsJLyogZW50ZXIgYW5kIGV4aXQgdW5kZXJsaW5lIG1vZGUgKi8KK2NoYXIJCSpjaFVMOwkJLyogdW5kZXJsaW5lIGNoYXJhY3RlciAqLworY2hhcgkJKmNoQlM7CQkvKiBiYWNrc3BhY2UgY2hhcmFjdGVyICovCitjaGFyCQkqSG9tZTsJCS8qIGdvIHRvIGhvbWUgKi8KK2NoYXIJCSpjdXJzb3JtOwkvKiBjdXJzb3IgbW92ZW1lbnQgKi8KK2NoYXIJCWN1cnNvcmhvbWVbNDBdOwkvKiBjb250YWlucyBjdXJzb3IgbW92ZW1lbnQgdG8gaG9tZSAqLworY2hhcgkJKkVvZENscjsJLyogY2xlYXIgcmVzdCBvZiBzY3JlZW4gKi8KK2ludAkJTWNvbCA9IDgwOwkvKiBudW1iZXIgb2YgY29sdW1ucyAqLworaW50CQlXcmFwID0gMTsJLyogc2V0IGlmIGF1dG9tYXJnaW5zICovCitpbnQJCXNvZ2xpdGNoOwkvKiB0ZXJtaW5hbCBoYXMgc3RhbmRvdXQgbW9kZSBnbGl0Y2ggKi8KK2ludAkJdWxnbGl0Y2g7CS8qIHRlcm1pbmFsIGhhcyB1bmRlcmxpbmUgbW9kZSBnbGl0Y2ggKi8KK2ludAkJcHN0YXRlID0gMDsJLyogY3VycmVudCBVTCBzdGF0ZSAqLworc3RhdGljIGludAltYWdpYyhGSUxFICosIGNoYXIgKik7CitzdHJ1Y3QgeworICAgIGxvbmcgY2hyY3RyLCBsaW5lOworfSBjb250ZXh0LCBzY3JlZW5fc3RhcnQ7CitleHRlcm4gY2hhcglQQzsJCS8qIHBhZCBjaGFyYWN0ZXIgKi8KKworI2lmZGVmIEhBVkVfTkNVUlNFU19ICisjIGluY2x1ZGUgPG5jdXJzZXMuaD4KKyNlbGlmIGRlZmluZWQoSEFWRV9OQ1VSU0VTX05DVVJTRVNfSCkKKyMgaW5jbHVkZSA8bmN1cnNlcy9uY3Vyc2VzLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoSEFWRV9OQ1VSU0VTX0gpIHx8IGRlZmluZWQoSEFWRV9OQ1VSU0VTX05DVVJTRVNfSCkKKyMgaW5jbHVkZSA8dGVybS5oPgkJCS8qIGluY2x1ZGUgYWZ0ZXIgPGN1cnNlcy5oPiAqLworCitzdGF0aWMgdm9pZAorbXlfcHV0c3RyaW5nKGNoYXIgKnMpIHsKKwl0cHV0cyAocywgMSwgcHV0Y2hhcik7CQkvKiBwdXRwKHMpOyAqLworfQorCitzdGF0aWMgdm9pZAorbXlfc2V0dXB0ZXJtKGNoYXIgKnRlcm0sIGludCBmaWxkZXMsIGludCAqZXJycmV0KSB7CisgICAgIHNldHVwdGVybSh0ZXJtLCBmaWxkZXMsIGVycnJldCk7Cit9CisKK3N0YXRpYyBpbnQKK215X3RnZXRudW0oY2hhciAqcywgY2hhciAqc3MpIHsKKyAgICAgcmV0dXJuIHRpZ2V0bnVtKHNzKTsKK30KKworc3RhdGljIGludAorbXlfdGdldGZsYWcoY2hhciAqcywgY2hhciAqc3MpIHsKKyAgICAgcmV0dXJuIHRpZ2V0ZmxhZyhzcyk7Cit9CisKK3N0YXRpYyBjaGFyICoKK215X3RnZXRzdHIoY2hhciAqcywgY2hhciAqc3MpIHsKKyAgICAgcmV0dXJuIHRpZ2V0c3RyKHNzKTsKK30KKworc3RhdGljIGNoYXIgKgorbXlfdGdvdG8oY2hhciAqY2FwLCBpbnQgY29sLCBpbnQgcm93KSB7CisgICAgIHJldHVybiB0cGFybShjYXAsIGNvbCwgcm93KTsKK30KKworI2VsaWYgZGVmaW5lZChIQVZFX0xJQlRFUk1DQVApICAgICAgICAgIC8qICFuY3Vyc2VzICovCisKKyNpbmNsdWRlIDx0ZXJtY2FwLmg+CisKK2NoYXIgdGVybWJ1ZmZlcls0MDk2XTsKK2NoYXIgdGNidWZmZXJbNDA5Nl07CitjaGFyICpzdHJidWYgPSB0ZXJtYnVmZmVyOworCitzdGF0aWMgdm9pZAorbXlfcHV0c3RyaW5nKGNoYXIgKnMpIHsKKyAgICAgdHB1dHMgKHMsIDEsIHB1dGNoYXIpOworfQorCitzdGF0aWMgdm9pZAorbXlfc2V0dXB0ZXJtKGNoYXIgKnRlcm0sIGludCBmaWxkZXMsIGludCAqZXJycmV0KSB7CisgICAgICplcnJyZXQgPSB0Z2V0ZW50KHRjYnVmZmVyLCB0ZXJtKTsKK30KKworc3RhdGljIGludAorbXlfdGdldG51bShjaGFyICpzLCBjaGFyICpzcykgeworICAgICByZXR1cm4gdGdldG51bShzKTsKK30KKworc3RhdGljIGludAorbXlfdGdldGZsYWcoY2hhciAqcywgY2hhciAqc3MpIHsKKyAgICAgcmV0dXJuIHRnZXRmbGFnKHMpOworfQorCitzdGF0aWMgY2hhciAqCitteV90Z2V0c3RyKGNoYXIgKnMsIGNoYXIgKnNzKSB7CisgICAgIHJldHVybiB0Z2V0c3RyKHMsICZzdHJidWYpOworfQorCitzdGF0aWMgY2hhciAqCitteV90Z290byhjaGFyICpjYXAsIGludCBjb2wsIGludCByb3cpIHsKKyAgICAgcmV0dXJuIHRnb3RvKGNhcCwgY29sLCByb3cpOworfQorCisjZW5kaWYgLyogSEFWRV9MSUJURVJNQ0FQICovCisKK3N0YXRpYyB2b2lkCitpZHVtbXkoaW50ICpraykge30KKworc3RhdGljIHZvaWQKK0ZkdW1teShGSUxFICoqZmYpIHt9CisKK3N0YXRpYyB2b2lkCit1c2FnZShjaGFyICpzKSB7CisJY2hhciAqcCA9IHN0cnJjaHIocywgJy8nKTsKKwlmcHJpbnRmKHN0ZGVyciwKKwkJXygidXNhZ2U6ICVzIFstZGZscGNzdV0gWytsaW5lbnVtIHwgKy9wYXR0ZXJuXSBuYW1lMSBuYW1lMiAuLi5cbiIpLAorCQlwID8gcCArIDEgOiBzKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgRklMRQkqZjsKKyAgICBjaGFyCSpzOworICAgIGNoYXIJKnA7CisgICAgaW50CQljaDsKKyAgICBpbnQJCWxlZnQ7CisgICAgaW50CQlwcm5hbWVzID0gMDsKKyAgICBpbnQJCWluaXRvcHQgPSAwOworICAgIGludAkJc3JjaG9wdCA9IDA7CisgICAgaW50CQljbGVhcml0ID0gMDsKKyAgICBpbnQJCWluaXRsaW5lID0gMDsKKyAgICBjaGFyCWluaXRidWZbODBdOworCisgICAgc2V0bG9jYWxlKExDX0FMTCwgIiIpOworICAgIGJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisgICAgdGV4dGRvbWFpbihQQUNLQUdFKTsKKyAgICAKKyAgICAvKiBhdm9pZCBnY2MgY29tcGxhaW50cyBhYm91dCByZWdpc3RlciB2YXJpYWJsZXMgdGhhdAorICAgICAgIG1heSBiZSBjbG9iYmVyZWQgYnkgYSBsb25nam1wLCBieSBmb3JjaW5nIG91ciB2YXJpYWJsZXMgaGVyZQorICAgICAgIHRvIGJlIG5vbi1yZWdpc3RlciAqLworICAgIEZkdW1teSgmZik7IGlkdW1teSgmbGVmdCk7IGlkdW1teSgmcHJuYW1lcyk7CisgICAgaWR1bW15KCZpbml0b3B0KTsgaWR1bW15KCZzcmNob3B0KTsgaWR1bW15KCZpbml0bGluZSk7CisKKyAgICBuZmlsZXMgPSBhcmdjOworICAgIGZuYW1lcyA9IGFyZ3Y7CisgICAgc2V0bG9jYWxlKExDX0FMTCwgIiIpOworICAgIGluaXR0ZXJtICgpOworICAgIGlmIChwcmVwYXJlX2xpbmVfYnVmZmVyKCkpIHsKKwlmcHJpbnRmKHN0ZGVyciwgXygiZmFpbGVkIHRvIGluaXRpYWxpemUgbGluZSBidWZmZXJcbiIpKTsKKwlleGl0KDEpOworICAgIH0KKyAgICBuc2Nyb2xsID0gTHBwLzIgLSAxOworICAgIGlmIChuc2Nyb2xsIDw9IDApCisJbnNjcm9sbCA9IDE7CisgICAgaWYoKHMgPSBnZXRlbnYoIk1PUkUiKSkgIT0gTlVMTCkgYXJnc2NhbihzLGFyZ3ZbMF0pOworICAgIHdoaWxlICgtLW5maWxlcyA+IDApIHsKKwlpZiAoKGNoID0gKCorK2ZuYW1lcylbMF0pID09ICctJykgeworCSAgICBhcmdzY2FuKCpmbmFtZXMrMSxhcmd2WzBdKTsKKwl9CisJZWxzZSBpZiAoY2ggPT0gJysnKSB7CisJICAgIHMgPSAqZm5hbWVzOworCSAgICBpZiAoKisrcyA9PSAnLycpIHsKKwkJc3JjaG9wdCsrOworCQlmb3IgKCsrcywgcCA9IGluaXRidWY7IHAgPCBpbml0YnVmICsgNzkgJiYgKnMgIT0gJ1wwJzspCisJCSAgICAqcCsrID0gKnMrKzsKKwkJKnAgPSAnXDAnOworCSAgICB9CisJICAgIGVsc2UgeworCQlpbml0b3B0Kys7CisJCWZvciAoaW5pdGxpbmUgPSAwOyAqcyAhPSAnXDAnOyBzKyspCisJCSAgICBpZiAoaXNkaWdpdCAoKnMpKQorCQkJaW5pdGxpbmUgPSBpbml0bGluZSoxMCArICpzIC0nMCc7CisJCS0taW5pdGxpbmU7CisJICAgIH0KKwl9CisJZWxzZSBicmVhazsKKyAgICB9CisgICAgLyogYWxsb3cgY2xyZW9sIG9ubHkgaWYgSG9tZSBhbmQgZXJhc2VsbiBhbmQgRW9kQ2xyIHN0cmluZ3MgYXJlCisgICAgICogIGRlZmluZWQsIGFuZCBpbiB0aGF0IGNhc2UsIG1ha2Ugc3VyZSB3ZSBhcmUgaW4gbm9zY3JvbGwgbW9kZQorICAgICAqLworICAgIGlmIChjbHJlb2wpIHsKKyAgICAgICAgaWYoKEhvbWUgPT0gTlVMTCkgfHwgKCpIb21lID09ICdcMCcpIHx8CisJICAgKGVyYXNlbG4gPT0gTlVMTCkgfHwgKCplcmFzZWxuID09ICdcMCcpIHx8CisgICAgICAgICAgIChFb2RDbHIgPT0gTlVMTCkgfHwgKCpFb2RDbHIgPT0gJ1wwJykgKQorCSAgICAgIGNscmVvbCA9IDA7CisJZWxzZSBub3Njcm9sbCA9IDE7CisgICAgfQorICAgIGlmIChkbGluZXMgPT0gMCkKKwkgICAgZGxpbmVzID0gTHBwIC0gMTsJLyogd2FzOiBMcHAgLSAobm9zY3JvbGwgPyAxIDogMikgKi8KKyAgICBsZWZ0ID0gZGxpbmVzOworICAgIGlmIChuZmlsZXMgPiAxKQorCXBybmFtZXMrKzsKKyAgICBpZiAoIW5vX2ludHR5ICYmIG5maWxlcyA9PSAwKSB7CisJdXNhZ2UoYXJndlswXSk7CisJZXhpdCgxKTsKKyAgICB9CisgICAgZWxzZQorCWYgPSBzdGRpbjsKKyAgICBpZiAoIW5vX3R0eSkgeworCXNpZ25hbChTSUdRVUlULCBvbnF1aXQpOworCXNpZ25hbChTSUdJTlQsIGVuZF9pdCk7CisjaWZkZWYgU0lHV0lOQ0gKKwlzaWduYWwoU0lHV0lOQ0gsIGNoZ3dpbnN6KTsKKyNlbmRpZgorCWlmIChzaWduYWwgKFNJR1RTVFAsIFNJR19JR04pID09IFNJR19ERkwpIHsKKwkgICAgc2lnbmFsKFNJR1RTVFAsIG9uc3VzcCk7CisJICAgIGNhdGNoX3N1c3ArKzsKKwl9CisJc3R0eSAoZmlsZW5vKHN0ZGVyciksICZvdHR5KTsKKyAgICB9CisgICAgaWYgKG5vX2ludHR5KSB7CisJaWYgKG5vX3R0eSkKKwkgICAgY29weV9maWxlIChzdGRpbik7CisJZWxzZSB7CisJICAgIGlmICgoY2ggPSBHZXRjIChmKSkgPT0gJ1xmJykKKwkJZG9jbGVhcigpOworCSAgICBlbHNlIHsKKwkJVW5nZXRjIChjaCwgZik7CisJCWlmIChub3Njcm9sbCAmJiAoY2ggIT0gRU9GKSkgeworCQkgICAgaWYgKGNscmVvbCkKKwkJCWhvbWUgKCk7CisJCSAgICBlbHNlCisJCQlkb2NsZWFyICgpOworCQl9CisJICAgIH0KKwkgICAgaWYgKHNyY2hvcHQpCisJICAgIHsKKwkJc2VhcmNoIChpbml0YnVmLCBzdGRpbiwgMSk7CisJCWlmIChub3Njcm9sbCkKKwkJICAgIGxlZnQtLTsKKwkgICAgfQorCSAgICBlbHNlIGlmIChpbml0b3B0KQorCQlza2lwbG5zIChpbml0bGluZSwgc3RkaW4pOworCSAgICBzY3JlZW4gKHN0ZGluLCBsZWZ0KTsKKwl9CisJbm9faW50dHkgPSAwOworCXBybmFtZXMrKzsKKwlmaXJzdGYgPSAwOworICAgIH0KKworICAgIHdoaWxlIChmbnVtIDwgbmZpbGVzKSB7CisJaWYgKChmID0gY2hlY2tmIChmbmFtZXNbZm51bV0sICZjbGVhcml0KSkgIT0gTlVMTCkgeworCSAgICBjb250ZXh0LmxpbmUgPSBjb250ZXh0LmNocmN0ciA9IDA7CisJICAgIEN1cnJsaW5lID0gMDsKKwkgICAgaWYgKGZpcnN0Zikgc2lnc2V0am1wIChyZXN0b3JlLCAxKTsKKwkgICAgaWYgKGZpcnN0ZikgeworCQlmaXJzdGYgPSAwOworCQlpZiAoc3JjaG9wdCkgeworCQkgICAgc2VhcmNoIChpbml0YnVmLCBmLCAxKTsKKwkJICAgIGlmIChub3Njcm9sbCkKKwkJCWxlZnQtLTsKKwkJfQorCQllbHNlIGlmIChpbml0b3B0KQorCQkgICAgc2tpcGxucyAoaW5pdGxpbmUsIGYpOworCSAgICB9CisJICAgIGVsc2UgaWYgKGZudW0gPCBuZmlsZXMgJiYgIW5vX3R0eSkgeworCQlzaWdzZXRqbXAgKHJlc3RvcmUsIDEpOworCQlsZWZ0ID0gY29tbWFuZCAoZm5hbWVzW2ZudW1dLCBmKTsKKwkgICAgfQorCSAgICBpZiAobGVmdCAhPSAwKSB7CisJCWlmICgobm9zY3JvbGwgfHwgY2xlYXJpdCkgJiYgKGZpbGVfc2l6ZSAhPSBMT05HX01BWCkpIHsKKwkJICAgIGlmIChjbHJlb2wpCisJCQlob21lICgpOworCQkgICAgZWxzZQorCQkJZG9jbGVhciAoKTsKKwkJfQorCQlpZiAocHJuYW1lcykgeworCQkgICAgaWYgKGJhZF9zbykKKwkJCWVyYXNlcCAoMCk7CisJCSAgICBpZiAoY2xyZW9sKQorCQkJY2xlYXJlb2wgKCk7CisJCSAgICBwdXRzb3V0KCI6Ojo6Ojo6Ojo6Ojo6OiIpOworCQkgICAgaWYgKHByb21wdGxlbiA+IDE0KQorCQkJZXJhc2VwICgxNCk7CisJCSAgICBwdXRjaGFyKCdcbicpOworCQkgICAgaWYoY2xyZW9sKSBjbGVhcmVvbCgpOworCQkgICAgcHV0cyhmbmFtZXNbZm51bV0pOworCQkgICAgaWYoY2xyZW9sKSBjbGVhcmVvbCgpOworCQkgICAgcHV0cygiOjo6Ojo6Ojo6Ojo6OjoiKTsKKwkJICAgIGlmIChsZWZ0ID4gTHBwIC0gNCkKKwkJCWxlZnQgPSBMcHAgLSA0OworCQl9CisJCWlmIChub190dHkpCisJCSAgICBjb3B5X2ZpbGUgKGYpOworCQllbHNlIHsKKwkJICAgIHdpdGhpbisrOworCQkgICAgc2NyZWVuKGYsIGxlZnQpOworCQkgICAgd2l0aGluID0gMDsKKwkJfQorCSAgICB9CisJICAgIHNpZ3NldGptcCAocmVzdG9yZSwgMSk7CisJICAgIGZmbHVzaChzdGRvdXQpOworCSAgICBmY2xvc2UoZik7CisJICAgIHNjcmVlbl9zdGFydC5saW5lID0gc2NyZWVuX3N0YXJ0LmNocmN0ciA9IDBMOworCSAgICBjb250ZXh0LmxpbmUgPSBjb250ZXh0LmNocmN0ciA9IDBMOworCX0KKwlmbnVtKys7CisJZmlyc3RmID0gMDsKKyAgICB9CisgICAgcmVzZXRfdHR5ICgpOworICAgIGV4aXQoMCk7Cit9CisKK3ZvaWQgYXJnc2NhbihjaGFyICpzLCBjaGFyICphcmd2MCkgeworCWludCBzZWVuX251bSA9IDA7CisKKwl3aGlsZSAoKnMgIT0gJ1wwJykgeworCQlzd2l0Y2ggKCpzKSB7CisJCSAgY2FzZSAnMCc6IGNhc2UgJzEnOiBjYXNlICcyJzoKKwkJICBjYXNlICczJzogY2FzZSAnNCc6IGNhc2UgJzUnOgorCQkgIGNhc2UgJzYnOiBjYXNlICc3JzogY2FzZSAnOCc6CisJCSAgY2FzZSAnOSc6CisJCQlpZiAoIXNlZW5fbnVtKSB7CisJCQkJZGxpbmVzID0gMDsKKwkJCQlzZWVuX251bSA9IDE7CisJCQl9CisJCQlkbGluZXMgPSBkbGluZXMqMTAgKyAqcyAtICcwJzsKKwkJCWJyZWFrOworCQkgIGNhc2UgJ2QnOgorCQkJZHVtX29wdCA9IDE7CisJCQlicmVhazsKKwkJICBjYXNlICdsJzoKKwkJCXN0b3Bfb3B0ID0gMDsKKwkJCWJyZWFrOworCQkgIGNhc2UgJ2YnOgorCQkJZm9sZF9vcHQgPSAwOworCQkJYnJlYWs7CisJCSAgY2FzZSAncCc6CisJCQlub3Njcm9sbCsrOworCQkJYnJlYWs7CisJCSAgY2FzZSAnYyc6CisJCQljbHJlb2wrKzsKKwkJCWJyZWFrOworCQkgIGNhc2UgJ3MnOgorCQkJc3NwX29wdCA9IDE7CisJCQlicmVhazsKKwkJICBjYXNlICd1JzoKKwkJCXVsX29wdCA9IDA7CisJCQlicmVhazsKKwkJICBjYXNlICctJzogY2FzZSAnICc6IGNhc2UgJ1x0JzoKKwkJCWJyZWFrOworCQkgIGRlZmF1bHQ6CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCIlczogdW5rbm93biBvcHRpb24gXCItJWNcIlxuIiksIGFyZ3YwLCAqcyk7CisJCQl1c2FnZShhcmd2MCk7CisJCQlleGl0KDEpOworCQkJYnJlYWs7CisJCX0KKwkJcysrOworCX0KK30KKworCisvKgorKiogQ2hlY2sgd2hldGhlciB0aGUgZmlsZSBuYW1lZCBieSBmcyBpcyBhbiBBU0NJSSBmaWxlIHdoaWNoIHRoZSB1c2VyIG1heQorKiogYWNjZXNzLiAgSWYgaXQgaXMsIHJldHVybiB0aGUgb3BlbmVkIGZpbGUuIE90aGVyd2lzZSByZXR1cm4gTlVMTC4KKyovCisKK0ZJTEUgKgorY2hlY2tmIChmcywgY2xlYXJmaXJzdCkKKwlyZWdpc3RlciBjaGFyICpmczsKKwlpbnQgKmNsZWFyZmlyc3Q7Cit7CisJc3RydWN0IHN0YXQgc3RidWY7CisJcmVnaXN0ZXIgRklMRSAqZjsKKwlpbnQgYzsKKworCWlmIChzdGF0IChmcywgJnN0YnVmKSA9PSAtMSkgeworCQkodm9pZClmZmx1c2goc3Rkb3V0KTsKKwkJaWYgKGNscmVvbCkKKwkJCWNsZWFyZW9sICgpOworCQlwZXJyb3IoZnMpOworCQlyZXR1cm4oKEZJTEUgKilOVUxMKTsKKwl9CisJaWYgKChzdGJ1Zi5zdF9tb2RlICYgU19JRk1UKSA9PSBTX0lGRElSKSB7CisJCXByaW50ZihfKCJcbioqKiAlczogZGlyZWN0b3J5ICoqKlxuXG4iKSwgZnMpOworCQlyZXR1cm4oKEZJTEUgKilOVUxMKTsKKwl9CisJaWYgKChmID0gRm9wZW4oZnMsICJyIikpID09IE5VTEwpIHsKKwkJKHZvaWQpZmZsdXNoKHN0ZG91dCk7CisJCXBlcnJvcihmcyk7CisJCXJldHVybigoRklMRSAqKU5VTEwpOworCX0KKwlpZiAobWFnaWMoZiwgZnMpKQorCQlyZXR1cm4oKEZJTEUgKilOVUxMKTsKKwlmY250bChmaWxlbm8oZiksIEZfU0VURkQsIEZEX0NMT0VYRUMgKTsKKwljID0gR2V0YyhmKTsKKwkqY2xlYXJmaXJzdCA9IChjID09ICdcZicpOworCVVuZ2V0YyAoYywgZik7CisJaWYgKChmaWxlX3NpemUgPSBzdGJ1Zi5zdF9zaXplKSA9PSAwKQorCQlmaWxlX3NpemUgPSBMT05HX01BWDsKKwlyZXR1cm4oZik7Cit9CisKKy8qCisgKiBtYWdpYyAtLQorICoJY2hlY2sgZm9yIGZpbGUgbWFnaWMgbnVtYmVycy4gIFRoaXMgY29kZSB3b3VsZCBiZXN0IGJlIHNoYXJlZCB3aXRoCisgKgl0aGUgZmlsZSgxKSBwcm9ncmFtIG9yLCBwZXJoYXBzLCBtb3JlIHNob3VsZCBub3QgdHJ5IHRvIGJlIHNvIHNtYXJ0LgorICovCitzdGF0aWMgaW50CittYWdpYyhmLCBmcykKKwlGSUxFICpmOworCWNoYXIgKmZzOworeworCXNpZ25lZCBjaGFyIHR3b2J5dGVzWzJdOworCisJLyogZG9uJ3QgdHJ5IHRvIGxvb2sgYWhlYWQgaWYgdGhlIGlucHV0IGlzIHVuc2Vla2FibGUgKi8KKwlpZiAoZnNlZWsoZiwgMEwsIFNFRUtfU0VUKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoZnJlYWQodHdvYnl0ZXMsIDIsIDEsIGYpID09IDEpIHsKKwkJc3dpdGNoKHR3b2J5dGVzWzBdICsgKHR3b2J5dGVzWzFdPDw4KSkgeworCQljYXNlIDA0MDc6CS8qIGEub3V0IG9iaiAqLworCQljYXNlIDA0MTA6CS8qIGEub3V0IGV4ZWMgKi8KKwkJY2FzZSAwNDEzOgkvKiBhLm91dCBkZW1hbmQgZXhlYyAqLworCQljYXNlIDA0MDU6CisJCWNhc2UgMDQxMToKKwkJY2FzZSAwMTc3NTQ1OgorCQljYXNlIDB4NDU3ZjoJCS8qIHNpbXBsZSBFTEYgZGV0ZWN0aW9uICovCisJCQlwcmludGYoXygiXG4qKioqKioqKiAlczogTm90IGEgdGV4dCBmaWxlICoqKioqKioqXG5cbiIpLCBmcyk7CisJCQkodm9pZClmY2xvc2UoZik7CisJCQlyZXR1cm4gMTsKKwkJfQorCX0KKwkodm9pZClmc2VlayhmLCAwTCwgU0VFS19TRVQpOwkJLyogcmV3aW5kKCkgbm90IG5lY2Vzc2FyeSAqLworCXJldHVybiAwOworfQorCisvKgorKiogUHJpbnQgb3V0IHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSBmLCBvbmUgc2NyZWVuZnVsIGF0IGEgdGltZS4KKyovCisKKyNkZWZpbmUgU1RPUCAtMTAKKwordm9pZCBzY3JlZW4gKHJlZ2lzdGVyIEZJTEUgKmYsIHJlZ2lzdGVyIGludCBudW1fbGluZXMpCit7CisgICAgcmVnaXN0ZXIgaW50IGM7CisgICAgcmVnaXN0ZXIgaW50IG5jaGFyczsKKyAgICBpbnQgbGVuZ3RoOwkJCS8qIGxlbmd0aCBvZiBjdXJyZW50IGxpbmUgKi8KKyAgICBzdGF0aWMgaW50IHByZXZfbGVuID0gMTsJLyogbGVuZ3RoIG9mIHByZXZpb3VzIGxpbmUgKi8KKworICAgIGZvciAoOzspIHsKKwl3aGlsZSAobnVtX2xpbmVzID4gMCAmJiAhUGF1c2UpIHsKKwkgICAgaWYgKChuY2hhcnMgPSBnZXRfbGluZSAoZiwgJmxlbmd0aCkpID09IEVPRikKKwkgICAgeworCQlpZiAoY2xyZW9sKQorCQkgICAgY2xyZW9zKCk7CisJCXJldHVybjsKKwkgICAgfQorCSAgICBpZiAoc3NwX29wdCAmJiBsZW5ndGggPT0gMCAmJiBwcmV2X2xlbiA9PSAwKQorCQljb250aW51ZTsKKwkgICAgcHJldl9sZW4gPSBsZW5ndGg7CisJICAgIGlmIChiYWRfc28gfHwgKChTZW50ZXIgJiYgKlNlbnRlciA9PSAnICcpICYmIChwcm9tcHRsZW4gPiAwKSkpCisJCWVyYXNlcCAoMCk7CisJICAgIC8qIG11c3QgY2xlYXIgYmVmb3JlIGRyYXdpbmcgbGluZSBzaW5jZSB0YWJzIG9uIHNvbWUgdGVybWluYWxzCisJICAgICAqIGRvIG5vdCBlcmFzZSB3aGF0IHRoZXkgdGFiIG92ZXIuCisJICAgICAqLworCSAgICBpZiAoY2xyZW9sKQorCQljbGVhcmVvbCAoKTsKKwkgICAgcHJidWYgKExpbmUsIGxlbmd0aCk7CisJICAgIGlmIChuY2hhcnMgPCBwcm9tcHRsZW4pCisJCWVyYXNlcCAobmNoYXJzKTsJLyogZXJhc2VwICgpIHNldHMgcHJvbXB0bGVuIHRvIDAgKi8KKwkgICAgZWxzZSBwcm9tcHRsZW4gPSAwOworCSAgICAvKiBpcyB0aGlzIG5lZWRlZD8KKwkgICAgICogaWYgKGNscmVvbCkKKwkgICAgICoJY2xlYXJlb2woKTsJKiBtdXN0IGNsZWFyIGFnYWluIGluIGNhc2Ugd2Ugd3JhcHBlZCAqCisJICAgICAqLworCSAgICBpZiAobmNoYXJzIDwgTWNvbCB8fCAhZm9sZF9vcHQpCisJCXByYnVmKCJcbiIsIDEpOwkvKiB3aWxsIHR1cm4gb2ZmIFVMIGlmIG5lY2Vzc2FyeSAqLworCSAgICBpZiAobmNoYXJzID09IFNUT1ApCisJCWJyZWFrOworCSAgICBudW1fbGluZXMtLTsKKwl9CisJaWYgKHBzdGF0ZSkgeworCQlteV9wdXRzdHJpbmcgKFVMZXhpdCk7CisJCXBzdGF0ZSA9IDA7CisJfQorCWZmbHVzaChzdGRvdXQpOworCWlmICgoYyA9IEdldGMoZikpID09IEVPRikKKwl7CisJICAgIGlmIChjbHJlb2wpCisJCWNscmVvcyAoKTsKKwkgICAgcmV0dXJuOworCX0KKworCWlmIChQYXVzZSAmJiBjbHJlb2wpCisJICAgIGNscmVvcyAoKTsKKwlVbmdldGMgKGMsIGYpOworCXNpZ3NldGptcCAocmVzdG9yZSwgMSk7CisJUGF1c2UgPSAwOyBzdGFydHVwID0gMDsKKwlpZiAoKG51bV9saW5lcyA9IGNvbW1hbmQgKE5VTEwsIGYpKSA9PSAwKQorCSAgICByZXR1cm47CisJaWYgKGhhcmQgJiYgcHJvbXB0bGVuID4gMCkKKwkJZXJhc2VwICgwKTsKKwlpZiAobm9zY3JvbGwgJiYgbnVtX2xpbmVzID49IGRsaW5lcykKKwl7CisJICAgIGlmIChjbHJlb2wpCisJCWhvbWUoKTsKKwkgICAgZWxzZQorCQlkb2NsZWFyICgpOworCX0KKwlzY3JlZW5fc3RhcnQubGluZSA9IEN1cnJsaW5lOworCXNjcmVlbl9zdGFydC5jaHJjdHIgPSBGdGVsbCAoZik7CisgICAgfQorfQorCisvKgorKiogQ29tZSBoZXJlIGlmIGEgcXVpdCBzaWduYWwgaXMgcmVjZWl2ZWQKKyovCisKK3ZvaWQgb25xdWl0KGludCBkdW1teSkgeworICAgIHNpZ25hbChTSUdRVUlULCBTSUdfSUdOKTsKKyAgICBpZiAoIWlud2FpdCkgeworCXB1dGNoYXIgKCdcbicpOworCWlmICghc3RhcnR1cCkgeworCSAgICBzaWduYWwoU0lHUVVJVCwgb25xdWl0KTsKKwkgICAgc2lnbG9uZ2ptcCAocmVzdG9yZSwgMSk7CisJfQorCWVsc2UKKwkgICAgUGF1c2UrKzsKKyAgICB9CisgICAgZWxzZSBpZiAoIWR1bV9vcHQgJiYgbm90ZWxsKSB7CisJcHJvbXB0bGVuICs9IGZwcmludGYoc3RkZXJyLCBfKCJbVXNlIHEgb3IgUSB0byBxdWl0XSIpKTsKKwlub3RlbGwgPSAwOworICAgIH0KKyAgICBzaWduYWwoU0lHUVVJVCwgb25xdWl0KTsKK30KKworLyoKKyoqIENvbWUgaGVyZSBpZiBhIHNpZ25hbCBmb3IgYSB3aW5kb3cgc2l6ZSBjaGFuZ2UgaXMgcmVjZWl2ZWQKKyovCisKKyNpZmRlZiBTSUdXSU5DSAordm9pZCBjaGd3aW5zeihpbnQgZHVtbXkpIHsKKyAgICBzdHJ1Y3Qgd2luc2l6ZSB3aW47CisKKyAgICAodm9pZCkgc2lnbmFsKFNJR1dJTkNILCBTSUdfSUdOKTsKKyAgICBpZiAoaW9jdGwoZmlsZW5vKHN0ZG91dCksIFRJT0NHV0lOU1osICZ3aW4pICE9IC0xKSB7CisJaWYgKHdpbi53c19yb3cgIT0gMCkgeworCSAgICBMcHAgPSB3aW4ud3Nfcm93OworCSAgICBuc2Nyb2xsID0gTHBwLzIgLSAxOworCSAgICBpZiAobnNjcm9sbCA8PSAwKQorCQluc2Nyb2xsID0gMTsKKwkgICAgZGxpbmVzID0gTHBwIC0gMTsJLyogd2FzOiBMcHAgLSAobm9zY3JvbGwgPyAxIDogMikgKi8KKwl9CisJaWYgKHdpbi53c19jb2wgIT0gMCkKKwkgICAgTWNvbCA9IHdpbi53c19jb2w7CisgICAgfQorICAgICh2b2lkKSBzaWduYWwoU0lHV0lOQ0gsIGNoZ3dpbnN6KTsKK30KKyNlbmRpZgorCisvKgorKiogQ2xlYW4gdXAgdGVybWluYWwgc3RhdGUgYW5kIGV4aXQuIEFsc28gY29tZSBoZXJlIGlmIGludGVycnVwdCBzaWduYWwgcmVjZWl2ZWQKKyovCisKK3ZvaWQgZW5kX2l0IChpbnQgZHVtbXkpIHsKKyAgICByZXNldF90dHkgKCk7CisgICAgaWYgKGNscmVvbCkgeworCXB1dGNoYXIgKCdccicpOworCWNscmVvcyAoKTsKKwlmZmx1c2ggKHN0ZG91dCk7CisgICAgfQorICAgIGVsc2UgaWYgKCFjbHJlb2wgJiYgKHByb21wdGxlbiA+IDApKSB7CisJa2lsbF9saW5lICgpOworCWZmbHVzaCAoc3Rkb3V0KTsKKyAgICB9CisgICAgZWxzZQorCXB1dGNlcnIoJ1xuJyk7CisgICAgX2V4aXQoMCk7Cit9CisKK3ZvaWQgY29weV9maWxlKHJlZ2lzdGVyIEZJTEUgKmYpIHsKKyAgICByZWdpc3RlciBpbnQgYzsKKworICAgIHdoaWxlICgoYyA9IGdldGMoZikpICE9IEVPRikKKwlwdXRjaGFyKGMpOworfQorCisjZGVmaW5lIHJpbmdiZWxsKCkJcHV0Y2VycignXDAwNycpCisKKy8qIFNlZSB3aGV0aGVyIHRoZSBsYXN0IGNvbXBvbmVudCBvZiB0aGUgcGF0aCBuYW1lICJwYXRoIiBpcyBlcXVhbCB0byB0aGUKKyoqIHN0cmluZyAic3RyaW5nIgorKi8KKworc3RhdGljIGludCB0YWlsZXF1IChjaGFyICpwYXRoLCByZWdpc3RlciBjaGFyICpzdHJpbmcpCit7CisJcmVnaXN0ZXIgY2hhciAqdGFpbDsKKworCXRhaWwgPSBwYXRoICsgc3RybGVuKHBhdGgpOworCXdoaWxlICgtLXRhaWwgPj0gcGF0aCkKKwkJaWYgKCp0YWlsID09ICcvJykKKwkJCWJyZWFrOworCSsrdGFpbDsKKwl3aGlsZSAoKnRhaWwrKyA9PSAqc3RyaW5nKyspCisJCWlmICgqdGFpbCA9PSAnXDAnKQorCQkJcmV0dXJuKDEpOworCXJldHVybigwKTsKK30KKworc3RhdGljIHZvaWQgcHJvbXB0IChjaGFyICpmaWxlbmFtZSkKK3sKKyAgICBpZiAoY2xyZW9sKQorCWNsZWFyZW9sICgpOworICAgIGVsc2UgaWYgKHByb21wdGxlbiA+IDApCisJa2lsbF9saW5lICgpOworICAgIGlmICghaGFyZCkgeworCXByb21wdGxlbiA9IDA7CisJaWYgKFNlbnRlciAmJiBTZXhpdCkgeworCSAgICBteV9wdXRzdHJpbmcgKFNlbnRlcik7CisJICAgIHByb21wdGxlbiArPSAoMiAqIHNvZ2xpdGNoKTsKKwl9CisJaWYgKGNscmVvbCkKKwkgICAgY2xlYXJlb2wgKCk7CisJcHJvbXB0bGVuICs9IHByaW50ZihfKCItLU1vcmUtLSIpKTsKKwlpZiAoZmlsZW5hbWUgIT0gTlVMTCkgeworCSAgICBwcm9tcHRsZW4gKz0gcHJpbnRmKF8oIihOZXh0IGZpbGU6ICVzKSIpLCBmaWxlbmFtZSk7CisJfSBlbHNlIGlmICghbm9faW50dHkpIHsKKwkgICAgcHJvbXB0bGVuICs9IHByaW50ZigiKCVkJSUpIiwgKGludCkgKChmaWxlX3BvcyAqIDEwMCkgLyBmaWxlX3NpemUpKTsKKwl9CisJaWYgKGR1bV9vcHQpIHsKKwkgICAgcHJvbXB0bGVuICs9IHByaW50ZihfKCJbUHJlc3Mgc3BhY2UgdG8gY29udGludWUsICdxJyB0byBxdWl0Ll0iKSk7CisJfQorCWlmIChTZW50ZXIgJiYgU2V4aXQpCisJICAgIG15X3B1dHN0cmluZyAoU2V4aXQpOworCWlmIChjbHJlb2wpCisJICAgIGNscmVvcyAoKTsKKwlmZmx1c2goc3Rkb3V0KTsKKyAgICB9CisgICAgZWxzZQorCXJpbmdiZWxsKCk7CisgICAgaW53YWl0Kys7Cit9CisKK2ludCBwcmVwYXJlX2xpbmVfYnVmZmVyKHZvaWQpCit7CisgICAgY2hhciAqbmxpbmU7CisgICAgc2l6ZV90IG5zeiA9IE1jb2wgKiA0OworCisgICAgaWYgKExpbmVMZW4gPj0gbnN6KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChuc3ogPCBMSU5TSVopCisgICAgICAgIG5zeiA9IExJTlNJWjsKKworICAgIG5saW5lID0gcmVhbGxvYyhMaW5lLCBuc3opOworICAgIGlmIChubGluZSkgeworICAgICAgICBMaW5lID0gbmxpbmU7CisgICAgICAgIExpbmVMZW4gPSBuc3o7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qIGVycm9yKCkgdXNlcyBzaWdsb25nam1wKCksIHdlIHdhbnQgdG8gcmV0dXJuIGZyb20gdGhpcworICAgICAqIGZ1bmN0aW9uIHdoZW4gdGhlIExpbmUgYnVmZmVyIGlzIGluaXRpbGl6ZWQgZmlyc3QgdGltZSBpbiBtYWluKCkKKyAgICAgKi8KKyAgICBpZiAoTGluZSkKKyAgICAgICAgZXJyb3IoXygib3V0IG9mIG1lbW9yeSIpKTsKKyAgICByZXR1cm4gLTE7Cit9CisKKy8qCisgKiBHZXQgYSBsb2dpY2FsIGxpbmUKKyAqLworCitpbnQgZ2V0X2xpbmUocmVnaXN0ZXIgRklMRSAqZiwgaW50ICpsZW5ndGgpCit7CisgICAgaW50CWM7CisgICAgY2hhciAqcDsKKyAgICBpbnQJY29sdW1uOworICAgIHN0YXRpYyBpbnQgY29sZmxnOworCisjaWZkZWYgSEFWRV9XSURFQ0hBUgorICAgIGludCBpOworICAgIHdjaGFyX3Qgd2M7CisgICAgaW50IHdjX3dpZHRoOworICAgIG1ic3RhdGVfdCBzdGF0ZSwgc3RhdGVfYmFrOwkJLyogQ3VycmVudCBzdGF0dXMgb2YgdGhlIHN0cmVhbS4gKi8KKyAgICBjaGFyIG1iY1tNQl9MRU5fTUFYXTsJCS8qIEJ1ZmZlciBmb3Igb25lIG11bHRpYnl0ZSBjaGFyLiAqLworICAgIHNpemVfdCBtYmxlbmd0aDsJCQkvKiBCeXRlIGxlbmd0aCBvZiBtdWx0aWJ5dGUgY2hhci4gKi8KKyAgICBzaXplX3QgbWJjX3BvcyA9IDA7CQkJLyogUG9zdGlvbiBvZiB0aGUgTUJDLiAqLworICAgIGludCB1c2VfbWJjX2J1ZmZlcl9mbGFnID0gMDsJLyogSWYgMSwgbWJjIGhhcyBkYXRhLiAqLworICAgIGludCBicmVha19mbGFnID0gMDsJCQkvKiBJZiAxLCBleGl0IHdoaWxlKCkuICovCisgICAgbG9uZyBmaWxlX3Bvc19iYWsgPSBGdGVsbCAoZik7CisKKyAgICBtZW1zZXQgKCZzdGF0ZSwgJ1wwJywgc2l6ZW9mIChtYnN0YXRlX3QpKTsKKyNlbmRpZgorCisgICAgcHJlcGFyZV9saW5lX2J1ZmZlcigpOworCisgICAgcCA9IExpbmU7CisgICAgY29sdW1uID0gMDsKKyAgICBjID0gR2V0YyAoZik7CisgICAgaWYgKGNvbGZsZyAmJiBjID09ICdcbicpIHsKKwlDdXJybGluZSsrOworCWMgPSBHZXRjIChmKTsKKyAgICB9CisgICAgd2hpbGUgKHAgPCAmTGluZVtMaW5lTGVuIC0gMV0pIHsKKyNpZmRlZiBIQVZFX1dJREVDSEFSCisJaWYgKGZvbGRfb3B0ICYmIHVzZV9tYmNfYnVmZmVyX2ZsYWcgJiYgTUJfQ1VSX01BWCA+IDEpIHsKKwkgICAgdXNlX21iY19idWZmZXJfZmxhZyA9IDA7CisJICAgIHN0YXRlX2JhayA9IHN0YXRlOworCSAgICBtYmNbbWJjX3BvcysrXSA9IGM7Citwcm9jZXNzX21iYzoKKwkgICAgbWJsZW5ndGggPSBtYnJ0b3djICgmd2MsIG1iYywgbWJjX3BvcywgJnN0YXRlKTsKKworCSAgICBzd2l0Y2ggKG1ibGVuZ3RoKSB7CisJICAgICAgY2FzZSAoc2l6ZV90KS0yOgkgIC8qIEluY29tcGxldGUgbXVsdGlieXRlIGNoYXJhY3Rlci4gKi8KKwkJdXNlX21iY19idWZmZXJfZmxhZyA9IDE7CisJCXN0YXRlID0gc3RhdGVfYmFrOworCQlicmVhazsKKworCSAgICAgIGNhc2UgKHNpemVfdCktMToJICAvKiBJbnZhbGlkIGFzIGEgbXVsdGlieXRlIGNoYXJhY3Rlci4gKi8KKwkJKnArKyA9IG1iY1swXTsKKwkJc3RhdGUgPSBzdGF0ZV9iYWs7CisJCWNvbHVtbisrOworCQlmaWxlX3Bvc19iYWsrKzsKKwkJCisJCWlmIChjb2x1bW4gPj0gTWNvbCkgeworCQkgICAgRnNlZWsgKGYsIGZpbGVfcG9zX2Jhayk7CisJCX0gZWxzZSB7CisJCSAgICBtZW1tb3ZlIChtYmMsIG1iYyArIDEsIC0tbWJjX3Bvcyk7CisJCSAgICBpZiAobWJjX3BvcyA+IDApIHsKKwkJCW1iY1ttYmNfcG9zXSA9ICdcMCc7CisJCQlnb3RvIHByb2Nlc3NfbWJjOworCQkgICAgfQorCQl9CisJCWJyZWFrOworCisJICAgICAgZGVmYXVsdDoKKwkJd2Nfd2lkdGggPSB3Y3dpZHRoICh3Yyk7CisKKwkJaWYgKGNvbHVtbiArIHdjX3dpZHRoID4gTWNvbCkgeworCQkgICAgRnNlZWsgKGYsIGZpbGVfcG9zX2Jhayk7CisJCSAgICBicmVha19mbGFnID0gMTsKKwkJfSBlbHNlIHsKKwkJICAgIGZvciAoaSA9IDA7IGkgPCBtYmNfcG9zOyBpKyspCisJCSAgICAgICpwKysgPSBtYmNbaV07CisJCSAgICBpZiAod2Nfd2lkdGggPiAwKQorCQkgICAgICBjb2x1bW4gKz0gd2Nfd2lkdGg7CisJCX0KKwkgICAgfQorCisJICAgIGlmIChicmVha19mbGFnIHx8IGNvbHVtbiA+PSBNY29sKQorCSAgICAgIGJyZWFrOworCisJICAgIGMgPSBHZXRjIChmKTsKKwkgICAgY29udGludWU7CisJfQorI2VuZGlmIAorCWlmIChjID09IEVPRikgeworCSAgICBpZiAocCA+IExpbmUpIHsKKwkJKnAgPSAnXDAnOworCQkqbGVuZ3RoID0gcCAtIExpbmU7CisJCXJldHVybiAoY29sdW1uKTsKKwkgICAgfQorCSAgICAqbGVuZ3RoID0gcCAtIExpbmU7CisJICAgIHJldHVybiAoRU9GKTsKKwl9CisJaWYgKGMgPT0gJ1xuJykgeworCSAgICBDdXJybGluZSsrOworCSAgICBicmVhazsKKwl9CisKKwkqcCsrID0gYzsKKyNpZiAwCisJaWYgKGMgPT0gJ1wwMzMnKSB7ICAgICAgLyogRVNDICovCisJCWMgPSBHZXRjKGYpOworCQl3aGlsZSAoYyA+ICcgJyAmJiBjIDwgJzAnICYmIHAgPCAmTGluZVtMaW5lTGVuIC0gMV0pIHsKKwkJCSpwKysgPSBjOworCQkJYyA9IEdldGMoZik7CisJCX0KKwkJaWYgKGMgPj0gJzAnICYmIGMgPCAnXDE3NycgJiYgcCA8ICZMaW5lW0xpbmVMZW4gLSAxXSkgeworCQkJKnArKyA9IGM7CisJCQljID0gR2V0YyhmKTsKKwkJCWNvbnRpbnVlOworCQl9CisJfQorI2VuZGlmCisJaWYgKGMgPT0gJ1x0JykgeworCSAgICBpZiAoIWhhcmR0YWJzIHx8IChjb2x1bW4gPCBwcm9tcHRsZW4gJiYgIWhhcmQpKSB7CisJCWlmIChoYXJkdGFicyAmJiBlcmFzZWxuICYmICFkdW1iKSB7CisJCSAgICBjb2x1bW4gPSAxICsgKGNvbHVtbiB8IDcpOworCQkgICAgbXlfcHV0c3RyaW5nIChlcmFzZWxuKTsKKwkJICAgIHByb21wdGxlbiA9IDA7CisJCX0KKwkJZWxzZSB7CisJCSAgICBmb3IgKC0tcDsgcCA8ICZMaW5lW0xpbmVMZW4gLSAxXTspIHsKKwkJCSpwKysgPSAnICc7CisJCQlpZiAoKCsrY29sdW1uICYgNykgPT0gMCkKKwkJCSAgICBicmVhazsKKwkJICAgIH0KKwkJICAgIGlmIChjb2x1bW4gPj0gcHJvbXB0bGVuKSBwcm9tcHRsZW4gPSAwOworCQl9CisJICAgIH0gZWxzZQorCQljb2x1bW4gPSAxICsgKGNvbHVtbiB8IDcpOworCX0gZWxzZSBpZiAoYyA9PSAnXGInICYmIGNvbHVtbiA+IDApIHsKKwkgICAgY29sdW1uLS07CisJfSBlbHNlIGlmIChjID09ICdccicpIHsKKwkgICAgaW50IG5leHQgPSBHZXRjKGYpOworCSAgICBpZiAobmV4dCA9PSAnXG4nKSB7CisJCXAtLTsKKwkJQ3VycmxpbmUrKzsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgVW5nZXRjKG5leHQsZik7CisJICAgIGNvbHVtbiA9IDA7CisJfSBlbHNlIGlmIChjID09ICdcZicgJiYgc3RvcF9vcHQpIHsKKwkJcFstMV0gPSAnXic7CisJCSpwKysgPSAnTCc7CisJCWNvbHVtbiArPSAyOworCQlQYXVzZSsrOworCX0gZWxzZSBpZiAoYyA9PSBFT0YpIHsKKwkgICAgKmxlbmd0aCA9IHAgLSBMaW5lOworCSAgICByZXR1cm4gKGNvbHVtbik7CisJfSBlbHNlIHsKKyNpZmRlZiBIQVZFX1dJREVDSEFSCisJICAgIGlmIChmb2xkX29wdCAmJiBNQl9DVVJfTUFYID4gMSkgeworCQltZW1zZXQgKG1iYywgJ1wwJywgTUJfTEVOX01BWCk7CisJCW1iY19wb3MgPSAwOworCQltYmNbbWJjX3BvcysrXSA9IGM7CisJCXN0YXRlX2JhayA9IHN0YXRlOworCisJCW1ibGVuZ3RoID0gbWJydG93YyAoJndjLCBtYmMsIG1iY19wb3MsICZzdGF0ZSk7CisKKwkJLyogVGhlIHZhbHVlIG9mIG1ibGVuZ3RoIGlzIGFsd2F5cyBsZXNzIHRoYW4gMiBoZXJlLiAqLworCQlzd2l0Y2ggKG1ibGVuZ3RoKSB7CisJCSAgY2FzZSAoc2l6ZV90KS0yOgorCQkgICAgcC0tOworCQkgICAgZmlsZV9wb3NfYmFrID0gRnRlbGwgKGYpIC0gMTsKKwkJICAgIHN0YXRlID0gc3RhdGVfYmFrOworCQkgICAgdXNlX21iY19idWZmZXJfZmxhZyA9IDE7CisJCSAgICBicmVhazsKKworCQkgIGNhc2UgKHNpemVfdCktMToKKwkJICAgIHN0YXRlID0gc3RhdGVfYmFrOworCQkgICAgY29sdW1uKys7CisJCSAgICBicmVhazsKKworCQkgIGRlZmF1bHQ6CisJCSAgICB3Y193aWR0aCA9IHdjd2lkdGggKHdjKTsKKwkJICAgIGlmICh3Y193aWR0aCA+IDApCisJCSAgICAgIGNvbHVtbiArPSB3Y193aWR0aDsKKwkJfQorCSAgICB9IGVsc2UKKyNlbmRpZgorCSAgICAgIHsKKwkJaWYgKGlzcHJpbnQoYykpCisJCSAgIGNvbHVtbisrOworCSAgICAgIH0KKwl9CisKKwlpZiAoY29sdW1uID49IE1jb2wgJiYgZm9sZF9vcHQpCisJCWJyZWFrOworCWMgPSBHZXRjIChmKTsKKyAgICB9CisgICAgaWYgKGNvbHVtbiA+PSBNY29sICYmIE1jb2wgPiAwKSB7CisJaWYgKCFXcmFwKSB7CisJICAgICpwKysgPSAnXG4nOworCX0KKyAgICB9CisgICAgY29sZmxnID0gY29sdW1uID09IE1jb2wgJiYgZm9sZF9vcHQ7CisgICAgaWYgKGNvbGZsZyAmJiBlYXRubCAmJiBXcmFwKSB7CisJKnArKyA9ICdcbic7IC8qIHNpbXVsYXRlIG5vcm1hbCB3cmFwICovCisgICAgfQorICAgICpsZW5ndGggPSBwIC0gTGluZTsKKyAgICAqcCA9IDA7CisgICAgcmV0dXJuIChjb2x1bW4pOworfQorCisvKgorKiogRXJhc2UgdGhlIHJlc3Qgb2YgdGhlIHByb21wdCwgYXNzdW1pbmcgd2UgYXJlIHN0YXJ0aW5nIGF0IGNvbHVtbiBjb2wuCisqLworCit2b2lkIGVyYXNlcCAocmVnaXN0ZXIgaW50IGNvbCkKK3sKKworICAgIGlmIChwcm9tcHRsZW4gPT0gMCkKKwlyZXR1cm47CisgICAgaWYgKGhhcmQpIHsKKwlwdXRjaGFyICgnXG4nKTsKKyAgICB9CisgICAgZWxzZSB7CisJaWYgKGNvbCA9PSAwKQorCSAgICBwdXRjaGFyICgnXHInKTsKKwlpZiAoIWR1bWIgJiYgZXJhc2VsbikKKwkgICAgbXlfcHV0c3RyaW5nIChlcmFzZWxuKTsKKwllbHNlCisJICAgIGZvciAoY29sID0gcHJvbXB0bGVuIC0gY29sOyBjb2wgPiAwOyBjb2wtLSkKKwkJcHV0Y2hhciAoJyAnKTsKKyAgICB9CisgICAgcHJvbXB0bGVuID0gMDsKK30KKworLyoKKyoqIEVyYXNlIHRoZSBjdXJyZW50IGxpbmUgZW50aXJlbHkKKyovCisKK3ZvaWQga2lsbF9saW5lKCkKK3sKKyAgICBlcmFzZXAoMCk7CisgICAgaWYgKCFlcmFzZWxuIHx8IGR1bWIpCisJcHV0Y2hhcignXHInKTsKK30KKworLyoKKyAqIGZvcmNlIGNsZWFyIHRvIGVuZCBvZiBsaW5lCisgKi8KK3ZvaWQgY2xlYXJlb2woKQoreworICAgIG15X3B1dHN0cmluZyhlcmFzZWxuKTsKK30KKwordm9pZCBjbHJlb3MoKQoreworICAgIG15X3B1dHN0cmluZyhFb2RDbHIpOworfQorCisvKiBQcmludCBhIGJ1ZmZlciBvZiBuIGNoYXJhY3RlcnMgKi8KKwordm9pZCBwcmJ1ZiAocmVnaXN0ZXIgY2hhciAqcywgcmVnaXN0ZXIgaW50IG4pCit7CisgICAgcmVnaXN0ZXIgY2hhciBjOwkJCS8qIG5leHQgb3V0cHV0IGNoYXJhY3RlciAqLworICAgIHJlZ2lzdGVyIGludCBzdGF0ZTsJCQkvKiBuZXh0IG91dHB1dCBjaGFyJ3MgVUwgc3RhdGUgKi8KKyNkZWZpbmUgd291bGR1bChzLG4pCSgobikgPj0gMiAmJiAoKChzKVswXSA9PSAnXycgJiYgKHMpWzFdID09ICdcYicpIHx8ICgocylbMV0gPT0gJ1xiJyAmJiAocylbMl0gPT0gJ18nKSkpCisKKyAgICB3aGlsZSAoLS1uID49IDApCisJaWYgKCF1bF9vcHQpCisJICAgIHB1dGNoYXIgKCpzKyspOworCWVsc2UgeworCSAgICBpZiAoKnMgPT0gJyAnICYmIHBzdGF0ZSA9PSAwICYmIHVsZ2xpdGNoICYmIHdvdWxkdWwocysxLCBuLTEpKSB7CisJCXMrKzsKKwkJY29udGludWU7CisJICAgIH0KKwkgICAgaWYgKChzdGF0ZSA9IHdvdWxkdWwocywgbikpICE9IDApIHsKKwkJYyA9ICgqcyA9PSAnXycpPyBzWzJdIDogKnMgOworCQluIC09IDI7CisJCXMgKz0gMzsKKwkgICAgfSBlbHNlCisJCWMgPSAqcysrOworCSAgICBpZiAoc3RhdGUgIT0gcHN0YXRlKSB7CisJCWlmIChjID09ICcgJyAmJiBzdGF0ZSA9PSAwICYmIHVsZ2xpdGNoICYmIHdvdWxkdWwocywgbi0xKSkKKwkJICAgIHN0YXRlID0gMTsKKwkJZWxzZQorCQkgICAgbXlfcHV0c3RyaW5nKHN0YXRlID8gVUxlbnRlciA6IFVMZXhpdCk7CisJICAgIH0KKwkgICAgaWYgKGMgIT0gJyAnIHx8IHBzdGF0ZSA9PSAwIHx8IHN0YXRlICE9IDAgfHwgdWxnbGl0Y2ggPT0gMCkKKyNpZmRlZiBIQVZFX1dJREVDSEFSCisJICAgIHsKKwkJd2NoYXJfdCB3YzsKKwkJc2l6ZV90IG1ibGVuZ3RoOworCQltYnN0YXRlX3Qgc3RhdGU7CisJCW1lbXNldCAoJnN0YXRlLCAnXDAnLCBzaXplb2YgKG1ic3RhdGVfdCkpOworCQlzLS07IG4rKzsKKwkJbWJsZW5ndGggPSBtYnJ0b3djICgmd2MsIHMsIG4sICZzdGF0ZSk7CisJCWlmIChtYmxlbmd0aCA9PSAoc2l6ZV90KSAtMiB8fCBtYmxlbmd0aCA9PSAoc2l6ZV90KSAtMSkKKwkJCW1ibGVuZ3RoID0gMTsKKwkJd2hpbGUgKG1ibGVuZ3RoLS0pCisJCQlwdXRjaGFyICgqcysrKTsKKwkJbiArPSBtYmxlbmd0aDsKKwkgICAgfQorI2Vsc2UKKwkgICAgICAgIHB1dGNoYXIoYyk7CisjZW5kaWYgLyogSEFWRV9XSURFQ0hBUiAqLworCSAgICBpZiAoc3RhdGUgJiYgKmNoVUwpIHsKKwkJcHV0c291dChjaEJTKTsKKwkJbXlfcHV0c3RyaW5nKGNoVUwpOworCSAgICB9CisJICAgIHBzdGF0ZSA9IHN0YXRlOworCX0KK30KKworLyoKKyoqICBDbGVhciB0aGUgc2NyZWVuCisqLwordm9pZAorZG9jbGVhcigpCit7CisgICAgaWYgKENsZWFyICYmICFoYXJkKSB7CisJbXlfcHV0c3RyaW5nKENsZWFyKTsKKworCS8qIFB1dCBvdXQgY2FycmlhZ2UgcmV0dXJuIHNvIHRoYXQgc3lzdGVtIGRvZXNuJ3QKKwkqKiBnZXQgY29uZnVzZWQgYnkgZXNjYXBlIHNlcXVlbmNlcyB3aGVuIGV4cGFuZGluZyB0YWJzCisJKi8KKwlwdXRjaGFyICgnXHInKTsKKwlwcm9tcHRsZW4gPSAwOworICAgIH0KK30KKworLyoKKyAqIEdvIHRvIGhvbWUgcG9zaXRpb24KKyAqLwordm9pZAoraG9tZSgpCit7CisgICAgbXlfcHV0c3RyaW5nKEhvbWUpOworfQorCitzdGF0aWMgaW50IGxhc3RjbWQsIGxhc3RhcmcsIGxhc3RwOworc3RhdGljIGludCBsYXN0Y29sb247CitjaGFyIHNoZWxsX2xpbmVbMTAwMF07CisKKy8qCisqKiBSZWFkIGEgY29tbWFuZCBhbmQgZG8gaXQuIEEgY29tbWFuZCBjb25zaXN0cyBvZiBhbiBvcHRpb25hbCBpbnRlZ2VyCisqKiBhcmd1bWVudCBmb2xsb3dlZCBieSB0aGUgY29tbWFuZCBjaGFyYWN0ZXIuICBSZXR1cm4gdGhlIG51bWJlciBvZiBsaW5lcworKiogdG8gZGlzcGxheSBpbiB0aGUgbmV4dCBzY3JlZW5mdWwuICBJZiB0aGVyZSBpcyBub3RoaW5nIG1vcmUgdG8gZGlzcGxheQorKiogaW4gdGhlIGN1cnJlbnQgZmlsZSwgemVybyBpcyByZXR1cm5lZC4KKyovCisKK2ludCBjb21tYW5kIChjaGFyICpmaWxlbmFtZSwgcmVnaXN0ZXIgRklMRSAqZikKK3sKKyAgICByZWdpc3RlciBpbnQgbmxpbmVzOworICAgIHJlZ2lzdGVyIGludCByZXR2YWwgPSAwOworICAgIHJlZ2lzdGVyIGludCBjOworICAgIGNoYXIgY29sb25jaDsKKyAgICBpbnQgZG9uZTsKKyAgICBjaGFyIGNvbWNoYXIsIGNtZGJ1Zls4MF07CisKKyNkZWZpbmUgcmV0KHZhbCkgcmV0dmFsPXZhbDtkb25lKys7YnJlYWsKKworICAgIGRvbmUgPSAwOworICAgIGlmICghZXJyb3JzKQorCXByb21wdCAoZmlsZW5hbWUpOworICAgIGVsc2UKKwllcnJvcnMgPSAwOworICAgIGZvciAoOzspIHsKKwlubGluZXMgPSBudW1iZXIgKCZjb21jaGFyKTsKKwlsYXN0cCA9IGNvbG9uY2ggPSAwOworCWlmIChjb21jaGFyID09ICcuJykgewkvKiBSZXBlYXQgbGFzdCBjb21tYW5kICovCisJCWxhc3RwKys7CisJCWNvbWNoYXIgPSBsYXN0Y21kOworCQlubGluZXMgPSBsYXN0YXJnOworCQlpZiAobGFzdGNtZCA9PSAnOicpCisJCQljb2xvbmNoID0gbGFzdGNvbG9uOworCX0KKwlsYXN0Y21kID0gY29tY2hhcjsKKwlsYXN0YXJnID0gbmxpbmVzOworCWlmICgoY2NfdCkgY29tY2hhciA9PSBvdHR5LmNfY2NbVkVSQVNFXSkgeworCSAgICBraWxsX2xpbmUgKCk7CisJICAgIHByb21wdCAoZmlsZW5hbWUpOworCSAgICBjb250aW51ZTsKKwl9CisJc3dpdGNoIChjb21jaGFyKSB7CisJY2FzZSAnOic6CisJICAgIHJldHZhbCA9IGNvbG9uIChmaWxlbmFtZSwgY29sb25jaCwgbmxpbmVzKTsKKwkgICAgaWYgKHJldHZhbCA+PSAwKQorCQlkb25lKys7CisJICAgIGJyZWFrOworCWNhc2UgJ2InOgorCWNhc2UgY3RybCgnQicpOgorCSAgICB7CisJCXJlZ2lzdGVyIGludCBpbml0bGluZTsKKworCQlpZiAobm9faW50dHkpIHsKKwkJICAgIHJpbmdiZWxsKCk7CisJCSAgICByZXR1cm4gKC0xKTsKKwkJfQorCisJCWlmIChubGluZXMgPT0gMCkgbmxpbmVzKys7CisKKwkJcHV0Y2hhciAoJ1xyJyk7CisJCWVyYXNlcCAoMCk7CisJCXB1dGNoYXIoJ1xuJyk7CisJCWlmIChjbHJlb2wpCisJCQljbGVhcmVvbCAoKTsKKwkJaWYgKG5saW5lcyAhPSAxKQorCQkJcHJpbnRmKF8oIi4uLmJhY2sgJWQgcGFnZXMiKSwgbmxpbmVzKTsKKwkJZWxzZQorCQkJcHV0c291dChfKCIuLi5iYWNrIDEgcGFnZSIpKTsKKwkJaWYgKGNscmVvbCkKKwkJCWNsZWFyZW9sICgpOworCQlwdXRjaGFyKCdcbicpOworCisJCWluaXRsaW5lID0gQ3VycmxpbmUgLSBkbGluZXMgKiAobmxpbmVzICsgMSk7CisJCWlmICghIG5vc2Nyb2xsKQorCQkgICAgLS1pbml0bGluZTsKKwkJaWYgKGluaXRsaW5lIDwgMCkgaW5pdGxpbmUgPSAwOworCQlGc2VlayhmLCAwTCk7CisJCUN1cnJsaW5lID0gMDsJLyogc2tpcGxucygpIHdpbGwgbWFrZSBDdXJybGluZSBjb3JyZWN0ICovCisJCXNraXBsbnMoaW5pdGxpbmUsIGYpOworCQlpZiAoISBub3Njcm9sbCkgeworCQkgICAgcmV0KGRsaW5lcyArIDEpOworCQl9CisJCWVsc2UgeworCQkgICAgcmV0KGRsaW5lcyk7CisJCX0KKwkgICAgfQorCWNhc2UgJyAnOgorCWNhc2UgJ3onOgorCSAgICBpZiAobmxpbmVzID09IDApIG5saW5lcyA9IGRsaW5lczsKKwkgICAgZWxzZSBpZiAoY29tY2hhciA9PSAneicpIGRsaW5lcyA9IG5saW5lczsKKwkgICAgcmV0IChubGluZXMpOworCWNhc2UgJ2QnOgorCWNhc2UgY3RybCgnRCcpOgorCSAgICBpZiAobmxpbmVzICE9IDApIG5zY3JvbGwgPSBubGluZXM7CisJICAgIHJldCAobnNjcm9sbCk7CisJY2FzZSAncSc6CisJY2FzZSAnUSc6CisJICAgIGVuZF9pdCAoMCk7CisJY2FzZSAncyc6CisJY2FzZSAnZic6CisJY2FzZSBjdHJsKCdGJyk6CisJICAgIGlmIChubGluZXMgPT0gMCkgbmxpbmVzKys7CisJICAgIGlmIChjb21jaGFyID09ICdmJykKKwkJbmxpbmVzICo9IGRsaW5lczsKKwkgICAgcHV0Y2hhciAoJ1xyJyk7CisJICAgIGVyYXNlcCAoMCk7CisJICAgIHB1dGNoYXIoJ1xuJyk7CisJICAgIGlmIChjbHJlb2wpCisJCWNsZWFyZW9sICgpOworCSAgICBpZiAobmxpbmVzID09IDEpCisJCSAgICBwdXRzb3V0KF8oIi4uLnNraXBwaW5nIG9uZSBsaW5lIikpOworCSAgICBlbHNlCisJCSAgICBwcmludGYoXygiLi4uc2tpcHBpbmcgJWQgbGluZXMiKSwgbmxpbmVzKTsKKworCSAgICBpZiAoY2xyZW9sKQorCQljbGVhcmVvbCAoKTsKKwkgICAgcHV0Y2hhcignXG4nKTsKKworCSAgICB3aGlsZSAobmxpbmVzID4gMCkgeworCQl3aGlsZSAoKGMgPSBHZXRjIChmKSkgIT0gJ1xuJykKKwkJICAgIGlmIChjID09IEVPRikgeworCQkJcmV0dmFsID0gMDsKKwkJCWRvbmUrKzsKKwkJCWdvdG8gZW5kc3c7CisJCSAgICB9CisJCSAgICBDdXJybGluZSsrOworCQkgICAgbmxpbmVzLS07CisJICAgIH0KKwkgICAgcmV0IChkbGluZXMpOworCWNhc2UgJ1xuJzoKKwkgICAgaWYgKG5saW5lcyAhPSAwKQorCQlkbGluZXMgPSBubGluZXM7CisJICAgIGVsc2UKKwkJbmxpbmVzID0gMTsKKwkgICAgcmV0IChubGluZXMpOworCWNhc2UgJ1xmJzoKKwkgICAgaWYgKCFub19pbnR0eSkgeworCQlkb2NsZWFyICgpOworCQlGc2VlayAoZiwgc2NyZWVuX3N0YXJ0LmNocmN0cik7CisJCUN1cnJsaW5lID0gc2NyZWVuX3N0YXJ0LmxpbmU7CisJCXJldCAoZGxpbmVzKTsKKwkgICAgfQorCSAgICBlbHNlIHsKKwkJcmluZ2JlbGwoKTsKKwkJYnJlYWs7CisJICAgIH0KKwljYXNlICdcJyc6CisJICAgIGlmICghbm9faW50dHkpIHsKKwkJa2lsbF9saW5lICgpOworCQlwdXRzb3V0KF8oIlxuKioqQmFjayoqKlxuXG4iKSk7CisJCUZzZWVrIChmLCBjb250ZXh0LmNocmN0cik7CisJCUN1cnJsaW5lID0gY29udGV4dC5saW5lOworCQlyZXQgKGRsaW5lcyk7CisJICAgIH0KKwkgICAgZWxzZSB7CisJCXJpbmdiZWxsKCk7CisJCWJyZWFrOworCSAgICB9CisJY2FzZSAnPSc6CisJICAgIGtpbGxfbGluZSAoKTsKKwkgICAgcHJvbXB0bGVuID0gcHJpbnRmKCIlZCIsIEN1cnJsaW5lKTsKKwkgICAgZmZsdXNoIChzdGRvdXQpOworCSAgICBicmVhazsKKwljYXNlICduJzoKKwkgICAgbGFzdHArKzsKKwljYXNlICcvJzoKKwkgICAgaWYgKG5saW5lcyA9PSAwKSBubGluZXMrKzsKKwkgICAga2lsbF9saW5lICgpOworCSAgICBwdXRjaGFyKCcvJyk7CisJICAgIHByb21wdGxlbiA9IDE7CisJICAgIGZmbHVzaCAoc3Rkb3V0KTsKKwkgICAgaWYgKGxhc3RwKSB7CisJCXB1dGNlcnIoJ1xyJyk7CisJCXNlYXJjaCAoTlVMTCwgZiwgbmxpbmVzKTsJLyogVXNlIHByZXZpb3VzIHIuZS4gKi8KKwkgICAgfQorCSAgICBlbHNlIHsKKwkJdHR5aW4gKGNtZGJ1Ziwgc2l6ZW9mKGNtZGJ1ZiktMiwgJy8nKTsKKwkJcHV0Y2VycignXHInKTsKKwkJc2VhcmNoIChjbWRidWYsIGYsIG5saW5lcyk7CisJICAgIH0KKwkgICAgcmV0IChkbGluZXMtMSk7CisJY2FzZSAnISc6CisJICAgIGRvX3NoZWxsIChmaWxlbmFtZSk7CisJICAgIGJyZWFrOworCWNhc2UgJz8nOgorCWNhc2UgJ2gnOgorCSAgICBpZiAobm9zY3JvbGwpIGRvY2xlYXIoKTsKKwkgICAgcHV0c291dChfKCJcbiIKKyJNb3N0IGNvbW1hbmRzIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgaW50ZWdlciBhcmd1bWVudCBrLiAgIgorIkRlZmF1bHRzIGluIGJyYWNrZXRzLlxuIgorIlN0YXIgKCopIGluZGljYXRlcyBhcmd1bWVudCBiZWNvbWVzIG5ldyBkZWZhdWx0LlxuIikpOworCSAgICBwdXRzKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCisJCSItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisJICAgIHB1dHNvdXQoXygKKyI8c3BhY2U+ICAgICAgICAgICAgICAgICBEaXNwbGF5IG5leHQgayBsaW5lcyBvZiB0ZXh0IFtjdXJyZW50IHNjcmVlbiBzaXplXVxuIgorInogICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgW2N1cnJlbnQgc2NyZWVuIHNpemVdKlxuIgorIjxyZXR1cm4+ICAgICAgICAgICAgICAgIERpc3BsYXkgbmV4dCBrIGxpbmVzIG9mIHRleHQgWzFdKlxuIgorImQgb3IgY3RybC1EICAgICAgICAgICAgIFNjcm9sbCBrIGxpbmVzIFtjdXJyZW50IHNjcm9sbCBzaXplLCBpbml0aWFsbHkgMTFdKlxuIgorInEgb3IgUSBvciA8aW50ZXJydXB0PiAgIEV4aXQgZnJvbSBtb3JlXG4iCisicyAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBmb3J3YXJkIGsgbGluZXMgb2YgdGV4dCBbMV1cbiIKKyJmICAgICAgICAgICAgICAgICAgICAgICBTa2lwIGZvcndhcmQgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiYiBvciBjdHJsLUIgICAgICAgICAgICAgU2tpcCBiYWNrd2FyZHMgayBzY3JlZW5mdWxzIG9mIHRleHQgWzFdXG4iCisiJyAgICAgICAgICAgICAgICAgICAgICAgR28gdG8gcGxhY2Ugd2hlcmUgcHJldmlvdXMgc2VhcmNoIHN0YXJ0ZWRcbiIKKyI9ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IGN1cnJlbnQgbGluZSBudW1iZXJcbiIKKyIvPHJlZ3VsYXIgZXhwcmVzc2lvbj4gICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiBbMV1cbiIKKyJuICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIGt0aCBvY2N1cnJlbmNlIG9mIGxhc3Qgci5lIFsxXVxuIgorIiE8Y21kPiBvciA6ITxjbWQ+ICAgICAgIEV4ZWN1dGUgPGNtZD4gaW4gYSBzdWJzaGVsbFxuIgorInYgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IHVwIC91c3IvYmluL3ZpIGF0IGN1cnJlbnQgbGluZVxuIgorImN0cmwtTCAgICAgICAgICAgICAgICAgIFJlZHJhdyBzY3JlZW5cbiIKKyI6biAgICAgICAgICAgICAgICAgICAgICBHbyB0byBrdGggbmV4dCBmaWxlIFsxXVxuIgorIjpwICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIGt0aCBwcmV2aW91cyBmaWxlIFsxXVxuIgorIjpmICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyXG4iCisiLiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IHByZXZpb3VzIGNvbW1hbmRcbiIpKTsKKwkgICAgcHV0cygiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgorCQkiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOworCSAgICBwcm9tcHQoZmlsZW5hbWUpOworCSAgICBicmVhazsKKwljYXNlICd2JzoJLyogVGhpcyBjYXNlIHNob3VsZCBnbyByaWdodCBiZWZvcmUgZGVmYXVsdCAqLworCSAgICBpZiAoIW5vX2ludHR5KSB7CisJCSAgICAvKgorCQkgICAgICogRWFybGllcjogY2FsbCB2aSArbiBmaWxlLiBUaGlzIGFsc28gd29ya3MgZm9yIGVtYWNzLgorCQkgICAgICogUE9TSVg6IGNhbGwgdmkgLWMgbiBmaWxlICh3aGVuIGVkaXRvciBpcyB2aSBvciBleCkuCisJCSAgICAgKi8KKwkJICAgIGNoYXIgKmVkaXRvciwgKnA7CisJCSAgICBpbnQgbiA9IChDdXJybGluZSAtIGRsaW5lcyA8PSAwID8gMSA6CisJCQkgICAgIEN1cnJsaW5lIC0gKGRsaW5lcyArIDEpIC8gMik7CisJCSAgICBpbnQgc3BsaXQgPSAwOworCisJCSAgICBlZGl0b3IgPSBnZXRlbnYoIlZJU1VBTCIpOworCQkgICAgaWYgKGVkaXRvciA9PSBOVUxMIHx8ICplZGl0b3IgPT0gJ1wwJykKKwkJCSAgICBlZGl0b3IgPSBnZXRlbnYoIkVESVRPUiIpOworCQkgICAgaWYgKGVkaXRvciA9PSBOVUxMIHx8ICplZGl0b3IgPT0gJ1wwJykKKwkJCSAgICBlZGl0b3IgPSBWSTsKKworCQkgICAgcCA9IHN0cnJjaHIoZWRpdG9yLCAnLycpOworCQkgICAgaWYgKHApCisJCQkgICAgcCsrOworCQkgICAgZWxzZQorCQkJICAgIHAgPSBlZGl0b3I7CisJCSAgICBpZiAoIXN0cmNtcChwLCAidmkiKSB8fCAhc3RyY21wKHAsICJleCIpKSB7CisJCQkgICAgc3ByaW50ZihjbWRidWYsICItYyAlZCIsIG4pOworCQkJICAgIHNwbGl0ID0gMTsKKwkJICAgIH0gZWxzZSB7CisJCQkgICAgc3ByaW50ZihjbWRidWYsICIrJWQiLCBuKTsKKwkJICAgIH0KKworCQkgICAga2lsbF9saW5lKCk7CisJCSAgICBwcmludGYoIiVzICVzICVzIiwgZWRpdG9yLCBjbWRidWYsIGZuYW1lc1tmbnVtXSk7CisJCSAgICBpZiAoc3BsaXQpIHsKKwkJCSAgICBjbWRidWZbMl0gPSAwOworCQkJICAgIGV4ZWN1dGUoZmlsZW5hbWUsIGVkaXRvciwgZWRpdG9yLCBjbWRidWYsCisJCQkJICAgIGNtZGJ1ZiszLCBmbmFtZXNbZm51bV0sIChjaGFyICopMCk7CisJCSAgICB9IGVsc2UKKwkJCSAgICBleGVjdXRlKGZpbGVuYW1lLCBlZGl0b3IsIGVkaXRvciwKKwkJCQkgICAgY21kYnVmLCBmbmFtZXNbZm51bV0sIChjaGFyICopMCk7CisJCSAgICBicmVhazsKKwkgICAgfQorCSAgICAvKiBmYWxsIHRocm91Z2ggKi8KKwlkZWZhdWx0OgorCSAgICBpZiAoZHVtX29wdCkgeworICAgCQlraWxsX2xpbmUgKCk7CisJCWlmIChTZW50ZXIgJiYgU2V4aXQpIHsKKwkJICAgIG15X3B1dHN0cmluZyAoU2VudGVyKTsKKwkJICAgIHByb21wdGxlbiA9IHByaW50ZihfKCJbUHJlc3MgJ2gnIGZvciBpbnN0cnVjdGlvbnMuXSIpKQorCQkJICAgICsgMiAqIHNvZ2xpdGNoOworCQkgICAgbXlfcHV0c3RyaW5nIChTZXhpdCk7CisJCX0KKwkJZWxzZQorCQkgICAgcHJvbXB0bGVuID0gcHJpbnRmKF8oIltQcmVzcyAnaCcgZm9yIGluc3RydWN0aW9ucy5dIikpOworCQlmZmx1c2ggKHN0ZG91dCk7CisJICAgIH0KKwkgICAgZWxzZQorCQlyaW5nYmVsbCgpOworCSAgICBicmVhazsKKwl9CisJaWYgKGRvbmUpIGJyZWFrOworICAgIH0KKyAgICBwdXRjaGFyICgnXHInKTsKK2VuZHN3OgorICAgIGlud2FpdCA9IDA7CisgICAgbm90ZWxsKys7CisgICAgcmV0dXJuIChyZXR2YWwpOworfQorCitzdGF0aWMgY2hhciBjaDsKKworLyoKKyAqIEV4ZWN1dGUgYSBjb2xvbi1wcmVmaXhlZCBjb21tYW5kLgorICogUmV0dXJucyA8MCBpZiBub3QgYSBjb21tYW5kIHRoYXQgc2hvdWxkIGNhdXNlCisgKiBtb3JlIG9mIHRoZSBmaWxlIHRvIGJlIHByaW50ZWQuCisgKi8KKworaW50IGNvbG9uIChjaGFyICpmaWxlbmFtZSwgaW50IGNtZCwgaW50IG5saW5lcykgeworCWlmIChjbWQgPT0gMCkKKwkJY2ggPSByZWFkY2ggKCk7CisJZWxzZQorCQljaCA9IGNtZDsKKwlsYXN0Y29sb24gPSBjaDsKKwlzd2l0Y2ggKGNoKSB7CisJY2FzZSAnZic6CisJCWtpbGxfbGluZSAoKTsKKwkJaWYgKCFub19pbnR0eSkKKwkJCXByb21wdGxlbiA9IHByaW50ZihfKCJcIiVzXCIgbGluZSAlZCIpLCBmbmFtZXNbZm51bV0sIEN1cnJsaW5lKTsKKwkJZWxzZQorCQkJcHJvbXB0bGVuID0gcHJpbnRmKF8oIltOb3QgYSBmaWxlXSBsaW5lICVkIiksIEN1cnJsaW5lKTsKKwkJZmZsdXNoIChzdGRvdXQpOworCQlyZXR1cm4gKC0xKTsKKwljYXNlICduJzoKKwkJaWYgKG5saW5lcyA9PSAwKSB7CisJCQlpZiAoZm51bSA+PSBuZmlsZXMgLSAxKQorCQkJCWVuZF9pdCAoMCk7CisJCQlubGluZXMrKzsKKwkJfQorCQlwdXRjaGFyICgnXHInKTsKKwkJZXJhc2VwICgwKTsKKwkJc2tpcGYgKG5saW5lcyk7CisJCXJldHVybiAoMCk7CisJY2FzZSAncCc6CisJCWlmIChub19pbnR0eSkgeworCQkJcmluZ2JlbGwoKTsKKwkJCXJldHVybiAoLTEpOworCQl9CisJCXB1dGNoYXIgKCdccicpOworCQllcmFzZXAgKDApOworCQlpZiAobmxpbmVzID09IDApCisJCQlubGluZXMrKzsKKwkJc2tpcGYgKC1ubGluZXMpOworCQlyZXR1cm4gKDApOworCWNhc2UgJyEnOgorCQlkb19zaGVsbCAoZmlsZW5hbWUpOworCQlyZXR1cm4gKC0xKTsKKwljYXNlICdxJzoKKwljYXNlICdRJzoKKwkJZW5kX2l0ICgwKTsKKwlkZWZhdWx0OgorCQlyaW5nYmVsbCgpOworCQlyZXR1cm4gKC0xKTsKKwl9Cit9CisKKy8qCisqKiBSZWFkIGEgZGVjaW1hbCBudW1iZXIgZnJvbSB0aGUgdGVybWluYWwuIFNldCBjbWQgdG8gdGhlIG5vbi1kaWdpdCB3aGljaAorKiogdGVybWluYXRlcyB0aGUgbnVtYmVyLgorKi8KKworaW50IG51bWJlcihjaGFyICpjbWQpCit7CisJcmVnaXN0ZXIgaW50IGk7CisKKwlpID0gMDsgY2ggPSBvdHR5LmNfY2NbVktJTExdOworCWZvciAoOzspIHsKKwkJY2ggPSByZWFkY2ggKCk7CisJCWlmIChpc2RpZ2l0KGNoKSkKKwkJCWkgPSBpKjEwICsgY2ggLSAnMCc7CisJCWVsc2UgaWYgKChjY190KSBjaCA9PSBvdHR5LmNfY2NbVktJTExdKQorCQkJaSA9IDA7CisJCWVsc2UgeworCQkJKmNtZCA9IGNoOworCQkJYnJlYWs7CisJCX0KKwl9CisJcmV0dXJuIChpKTsKK30KKwordm9pZCBkb19zaGVsbCAoY2hhciAqZmlsZW5hbWUpCit7CisJY2hhciBjbWRidWZbMjAwXTsKKwlpbnQgcmM7CisJY2hhciAqZXhwYW5kZWQ7CisKKwlraWxsX2xpbmUgKCk7CisJcHV0Y2hhcignIScpOworCWZmbHVzaCAoc3Rkb3V0KTsKKwlwcm9tcHRsZW4gPSAxOworCWlmIChsYXN0cCkKKwkJcHV0c291dChzaGVsbF9saW5lKTsKKwllbHNlIHsKKwkJdHR5aW4gKGNtZGJ1Ziwgc2l6ZW9mKGNtZGJ1ZiktMiwgJyEnKTsKKwkJZXhwYW5kZWQgPSAwOworCQlyYyA9IGV4cGFuZCAoJmV4cGFuZGVkLCBjbWRidWYpOworCQlpZiAoZXhwYW5kZWQpIHsKKwkJCWlmIChzdHJsZW4oZXhwYW5kZWQpIDwgc2l6ZW9mKHNoZWxsX2xpbmUpKQorCQkJCXN0cmNweShzaGVsbF9saW5lLCBleHBhbmRlZCk7CisJCQllbHNlCisJCQkJcmMgPSAtMTsKKwkJCWZyZWUoZXhwYW5kZWQpOworCQl9CisJCWlmIChyYyA8IDApIHsKKwkJCXB1dHNlcnIoXygiICBPdmVyZmxvd1xuIikpOworCQkJcHJvbXB0IChmaWxlbmFtZSk7CisJCQlyZXR1cm47CisJCX0gZWxzZSBpZiAocmMgPiAwKSB7CisJCQlraWxsX2xpbmUgKCk7CisJCQlwcm9tcHRsZW4gPSBwcmludGYoIiElcyIsIHNoZWxsX2xpbmUpOworCQl9CisJfQorCWZmbHVzaCAoc3Rkb3V0KTsKKwlwdXRjZXJyKCdcbicpOworCXByb21wdGxlbiA9IDA7CisJc2hlbGxwID0gMTsKKwlleGVjdXRlIChmaWxlbmFtZSwgc2hlbGwsIHNoZWxsLCAiLWMiLCBzaGVsbF9saW5lLCAwKTsKK30KKworLyoKKyoqIFNlYXJjaCBmb3IgbnRoIG9jdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gY29udGFpbmVkIGluIGJ1ZiBpbiB0aGUgZmlsZQorKi8KKwordm9pZCBzZWFyY2goY2hhciBidWZbXSwgRklMRSAqZmlsZSwgcmVnaXN0ZXIgaW50IG4pCit7CisgICAgbG9uZyBzdGFydGxpbmUgPSBGdGVsbCAoZmlsZSk7CisgICAgcmVnaXN0ZXIgbG9uZyBsaW5lMSA9IHN0YXJ0bGluZTsKKyAgICByZWdpc3RlciBsb25nIGxpbmUyID0gc3RhcnRsaW5lOworICAgIHJlZ2lzdGVyIGxvbmcgbGluZTMgPSBzdGFydGxpbmU7CisgICAgcmVnaXN0ZXIgaW50IGxuY291bnQ7CisgICAgaW50IHNhdmVsbiwgcnY7CisgICAgY2hhciAqczsKKworICAgIGNvbnRleHQubGluZSA9IHNhdmVsbiA9IEN1cnJsaW5lOworICAgIGNvbnRleHQuY2hyY3RyID0gc3RhcnRsaW5lOworICAgIGxuY291bnQgPSAwOworICAgIGlmICgocyA9IHJlX2NvbXAgKGJ1ZikpICE9IDApCisJZXJyb3IgKHMpOworICAgIHdoaWxlICghZmVvZiAoZmlsZSkpIHsKKwlsaW5lMyA9IGxpbmUyOworCWxpbmUyID0gbGluZTE7CisJbGluZTEgPSBGdGVsbCAoZmlsZSk7CisJcmRsaW5lIChmaWxlKTsKKwlsbmNvdW50Kys7CisJaWYgKChydiA9IHJlX2V4ZWMgKExpbmUpKSA9PSAxKSB7CisJCWlmICgtLW4gPT0gMCkgeworCQkgICAgaWYgKGxuY291bnQgPiAzIHx8IChsbmNvdW50ID4gMSAmJiBub19pbnR0eSkpCisJCSAgICB7CisJCQlwdXRjaGFyKCdcbicpOworCQkJaWYgKGNscmVvbCkKKwkJCSAgICBjbGVhcmVvbCAoKTsKKwkJCXB1dHNvdXQoXygiLi4uc2tpcHBpbmdcbiIpKTsKKwkJICAgIH0KKwkJICAgIGlmICghbm9faW50dHkpIHsKKwkJCUN1cnJsaW5lIC09IChsbmNvdW50ID49IDMgPyAzIDogbG5jb3VudCk7CisJCQlGc2VlayAoZmlsZSwgbGluZTMpOworCQkJaWYgKG5vc2Nyb2xsKSB7CisJCQkgICAgaWYgKGNscmVvbCkgeworCQkJCWhvbWUgKCk7CisJCQkJY2xlYXJlb2wgKCk7CisJCQkgICAgfQorCQkJICAgIGVsc2UKKwkJCQlkb2NsZWFyICgpOworCQkJfQorCQkgICAgfQorCQkgICAgZWxzZSB7CisJCQlraWxsX2xpbmUgKCk7CisJCQlpZiAobm9zY3JvbGwpIHsKKwkJCSAgICBpZiAoY2xyZW9sKSB7CisJCQkgICAgICAgIGhvbWUgKCk7CisJCQkgICAgICAgIGNsZWFyZW9sICgpOworCQkJICAgIH0KKwkJCSAgICBlbHNlCisJCQkJZG9jbGVhciAoKTsKKwkJCX0KKwkJCXB1dHMoTGluZSk7CisJCSAgICB9CisJCSAgICBicmVhazsKKwkJfQorCX0gZWxzZSBpZiAocnYgPT0gLTEpCisJICAgIGVycm9yIChfKCJSZWd1bGFyIGV4cHJlc3Npb24gYm90Y2giKSk7CisgICAgfQorICAgIGlmIChmZW9mIChmaWxlKSkgeworCWlmICghbm9faW50dHkpIHsKKwkgICAgQ3VycmxpbmUgPSBzYXZlbG47CisJICAgIEZzZWVrIChmaWxlLCBzdGFydGxpbmUpOworCX0KKwllbHNlIHsKKwkgICAgcHV0c291dChfKCJcblBhdHRlcm4gbm90IGZvdW5kXG4iKSk7CisJICAgIGVuZF9pdCAoMCk7CisJfQorCWVycm9yIChfKCJQYXR0ZXJuIG5vdCBmb3VuZCIpKTsKKyAgICB9Cit9CisKKy8qVkFSQVJHUzIqLwordm9pZCBleGVjdXRlIChjaGFyICpmaWxlbmFtZSwgY2hhciAqY21kLCAuLi4pCit7CisJaW50IGlkOworCWludCBuOworCXZhX2xpc3QgYXJncDsKKwljaGFyICogYXJnOworIAljaGFyICoqIGFyZ3M7CisJaW50IGFyZ2NvdW50OworCisJZmZsdXNoIChzdGRvdXQpOworCXJlc2V0X3R0eSAoKTsKKwlmb3IgKG4gPSAxMDsgKGlkID0gZm9yayAoKSkgPCAwICYmIG4gPiAwOyBuLS0pCisJICAgIHNsZWVwICg1KTsKKwlpZiAoaWQgPT0gMCkgeworCSAgICBpZiAoIWlzYXR0eSgwKSkgeworCQljbG9zZSgwKTsKKwkJb3BlbigiL2Rldi90dHkiLCAwKTsKKwkgICAgfQorCisJICAgIHZhX3N0YXJ0KGFyZ3AsIGNtZCk7CisJICAgIGFyZyA9IHZhX2FyZyhhcmdwLCBjaGFyICopOworCSAgICBhcmdjb3VudCA9IDA7CisJICAgIHdoaWxlIChhcmcpIHsKKwkJYXJnY291bnQrKzsKKwkgICAgICAgIGFyZyA9IHZhX2FyZyhhcmdwLCBjaGFyICopOworCSAgICB9CisJICAgIHZhX2VuZChhcmdwKTsKKworCSAgICBhcmdzID0gYWxsb2NhKHNpemVvZihjaGFyICopICogKGFyZ2NvdW50ICsgMSkpOworCSAgICBhcmdzW2FyZ2NvdW50XSA9IE5VTEw7CisJICAgIAorCSAgICB2YV9zdGFydChhcmdwLCBjbWQpOworCSAgICBhcmcgPSB2YV9hcmcoYXJncCwgY2hhciAqKTsKKwkgICAgYXJnY291bnQgPSAwOworCSAgICB3aGlsZSAoYXJnKSB7CisJCWFyZ3NbYXJnY291bnRdID0gYXJnOworCQlhcmdjb3VudCsrOworCSAgICAgICAgYXJnID0gdmFfYXJnKGFyZ3AsIGNoYXIgKik7CisJICAgIH0KKwkgICAgdmFfZW5kKGFyZ3ApOworCQorCSAgICBleGVjdnAgKGNtZCwgYXJncyk7CisJICAgIHB1dHNlcnIoXygiZXhlYyBmYWlsZWRcbiIpKTsKKwkgICAgZXhpdCAoMSk7CisJfQorCWlmIChpZCA+IDApIHsKKwkgICAgc2lnbmFsIChTSUdJTlQsIFNJR19JR04pOworCSAgICBzaWduYWwgKFNJR1FVSVQsIFNJR19JR04pOworCSAgICBpZiAoY2F0Y2hfc3VzcCkKKwkJc2lnbmFsKFNJR1RTVFAsIFNJR19ERkwpOworCSAgICB3aGlsZSAod2FpdCgwKSA+IDApOworCSAgICBzaWduYWwgKFNJR0lOVCwgZW5kX2l0KTsKKwkgICAgc2lnbmFsIChTSUdRVUlULCBvbnF1aXQpOworCSAgICBpZiAoY2F0Y2hfc3VzcCkKKwkJc2lnbmFsKFNJR1RTVFAsIG9uc3VzcCk7CisJfSBlbHNlCisJICAgIHB1dHNlcnIoXygiY2FuJ3QgZm9ya1xuIikpOworCXNldF90dHkgKCk7CisJcHV0cygiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisJcHJvbXB0IChmaWxlbmFtZSk7Cit9CisvKgorKiogU2tpcCBuIGxpbmVzIGluIHRoZSBmaWxlIGYKKyovCisKK3ZvaWQgc2tpcGxucyAocmVnaXN0ZXIgaW50IG4sIHJlZ2lzdGVyIEZJTEUgKmYpCit7CisgICAgcmVnaXN0ZXIgaW50IGM7CisKKyAgICB3aGlsZSAobiA+IDApIHsKKwl3aGlsZSAoKGMgPSBHZXRjIChmKSkgIT0gJ1xuJykKKwkgICAgaWYgKGMgPT0gRU9GKQorCQlyZXR1cm47CisJICAgIG4tLTsKKwkgICAgQ3VycmxpbmUrKzsKKyAgICB9Cit9CisKKy8qCisqKiBTa2lwIG5za2lwIGZpbGVzIGluIHRoZSBmaWxlIGxpc3QgKGZyb20gdGhlIGNvbW1hbmQgbGluZSkuIE5za2lwIG1heSBiZQorKiogbmVnYXRpdmUuCisqLworCit2b2lkIHNraXBmIChyZWdpc3RlciBpbnQgbnNraXApCit7CisgICAgaWYgKG5za2lwID09IDApIHJldHVybjsKKyAgICBpZiAobnNraXAgPiAwKSB7CisJaWYgKGZudW0gKyBuc2tpcCA+IG5maWxlcyAtIDEpCisJICAgIG5za2lwID0gbmZpbGVzIC0gZm51bSAtIDE7CisgICAgfQorICAgIGVsc2UgaWYgKHdpdGhpbikKKwkrK2ZudW07CisgICAgZm51bSArPSBuc2tpcDsKKyAgICBpZiAoZm51bSA8IDApCisJZm51bSA9IDA7CisgICAgcHV0cyhfKCJcbi4uLlNraXBwaW5nICIpKTsKKyAgICBpZiAoY2xyZW9sKQorCWNsZWFyZW9sICgpOworICAgIGlmIChuc2tpcCA+IDApCisJICAgIHB1dHNvdXQoXygiLi4uU2tpcHBpbmcgdG8gZmlsZSAiKSk7CisgICAgZWxzZQorCSAgICBwdXRzb3V0KF8oIi4uLlNraXBwaW5nIGJhY2sgdG8gZmlsZSAiKSk7CisgICAgcHV0cyhmbmFtZXNbZm51bV0pOworICAgIGlmIChjbHJlb2wpCisJY2xlYXJlb2wgKCk7CisgICAgcHV0Y2hhcignXG4nKTsKKyAgICAtLWZudW07Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGVybWluYWwgSS9PIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCit2b2lkIGluaXR0ZXJtKCkKK3sKKyAgICBpbnQJCXJldDsKKyAgICBjaGFyCSpwYWRzdHI7CisgICAgY2hhcgkqdGVybTsKKyAgICBzdHJ1Y3Qgd2luc2l6ZSB3aW47CisKKyNpZmRlZiBkb19TSUdUVE9VCityZXRyeToKKyNlbmRpZgorICAgIG5vX3R0eSA9IHRjZ2V0YXR0cihmaWxlbm8oc3Rkb3V0KSwgJm90dHkpOworICAgIGlmICghbm9fdHR5KSB7CQorCWRvY3J0ZXJhc2UgPSAob3R0eS5jX2NjW1ZFUkFTRV0gIT0gMjU1KTsKKwlkb2NydGtpbGwgPSAgKG90dHkuY19jY1tWS0lMTF0gIT0gMjU1KTsKKyNpZmRlZiBkb19TSUdUVE9VCisJeworCSAgICBpbnQgdGdycDsKKwkgICAgLyoKKwkgICAgICogV2FpdCB1bnRpbCB3ZSdyZSBpbiB0aGUgZm9yZWdyb3VuZCBiZWZvcmUgd2Ugc2F2ZSB0aGUKKwkgICAgICogdGhlIHRlcm1pbmFsIG1vZGVzLgorCSAgICAgKi8KKwkgICAgaWYgKCh0Z3JwID0gdGNnZXRwZ3JwKGZpbGVubyhzdGRvdXQpKSkgPCAwKSB7CisJCXBlcnJvcigidGNnZXRwZ3JwIik7CisJCWV4aXQoMSk7CisJICAgIH0KKwkgICAgaWYgKHRncnAgIT0gZ2V0cGdycCgwKSkgeworCQlraWxsKDAsIFNJR1RUT1UpOworCQlnb3RvIHJldHJ5OworCSAgICB9CisJfQorI2VuZGlmCisJaWYgKCh0ZXJtID0gZ2V0ZW52KCJURVJNIikpID09IDApIHsKKwkgICAgZHVtYisrOyB1bF9vcHQgPSAwOworCX0KKyAgICAgICAgbXlfc2V0dXB0ZXJtKHRlcm0sIDEsICZyZXQpOworCWlmIChyZXQgPD0gMCkgeworCSAgICBkdW1iKys7IHVsX29wdCA9IDA7CisJfQorCWVsc2UgeworI2lmZGVmIFRJT0NHV0lOU1oKKwkgICAgaWYgKGlvY3RsKGZpbGVubyhzdGRvdXQpLCBUSU9DR1dJTlNaLCAmd2luKSA8IDApIHsKKyNlbmRpZgorCQlMcHAgPSBteV90Z2V0bnVtKCJsaSIsImxpbmVzIik7CisJCU1jb2wgPSBteV90Z2V0bnVtKCJjbyIsImNvbHMiKTsKKyNpZmRlZiBUSU9DR1dJTlNaCisJICAgIH0gZWxzZSB7CisJCWlmICgoTHBwID0gd2luLndzX3JvdykgPT0gMCkKKwkJICAgIExwcCA9IG15X3RnZXRudW0oImxpIiwibGluZXMiKTsKKwkJaWYgKChNY29sID0gd2luLndzX2NvbCkgPT0gMCkKKwkJICAgIE1jb2wgPSBteV90Z2V0bnVtKCJjbyIsImNvbHMiKTsKKwkgICAgfQorI2VuZGlmCisJICAgIGlmICgoTHBwIDw9IDApIHx8IG15X3RnZXRmbGFnKCJoYyIsImhjIikpIHsKKwkJaGFyZCsrOwkvKiBIYXJkIGNvcHkgdGVybWluYWwgKi8KKwkJTHBwID0gMjQ7CisJICAgIH0KKworCSAgICBpZiAobXlfdGdldGZsYWcoInhuIiwieGVubCIpKQorCQllYXRubCsrOyAvKiBFYXQgbmV3bGluZSBhdCBsYXN0IGNvbHVtbiArIDE7IGRlYywgY29uY2VwdCAqLworCSAgICBpZiAoTWNvbCA8PSAwKQorCQlNY29sID0gODA7CisKKwkgICAgaWYgKHRhaWxlcXUgKGZuYW1lc1swXSwgInBhZ2UiKSkKKwkJbm9zY3JvbGwrKzsKKwkgICAgV3JhcCA9IG15X3RnZXRmbGFnKCJhbSIsImFtIik7CisJICAgIGJhZF9zbyA9IG15X3RnZXRmbGFnICgieHMiLCJ4aHAiKTsKKwkgICAgZXJhc2VsbiA9IG15X3RnZXRzdHIoImNlIiwiZWwiKTsKKwkgICAgQ2xlYXIgPSBteV90Z2V0c3RyKCJjbCIsImNsZWFyIik7CisJICAgIFNlbnRlciA9IG15X3RnZXRzdHIoInNvIiwic21zbyIpOworCSAgICBTZXhpdCA9IG15X3RnZXRzdHIoInNlIiwicm1zbyIpOworCSAgICBpZiAoKHNvZ2xpdGNoID0gbXlfdGdldG51bSgic2ciLCJ4bWMiKSkgPCAwKQorCQlzb2dsaXRjaCA9IDA7CisKKwkgICAgLyoKKwkgICAgICogIFNldCB1cCBmb3IgdW5kZXJsaW5pbmc6ICBzb21lIHRlcm1pbmFscyBkb24ndCBuZWVkIGl0OworCSAgICAgKiAgb3RoZXJzIGhhdmUgc3RhcnQvc3RvcCBzZXF1ZW5jZXMsIHN0aWxsIG90aGVycyBoYXZlIGFuCisJICAgICAqICB1bmRlcmxpbmUgY2hhciBzZXF1ZW5jZSB3aGljaCBpcyBhc3N1bWVkIHRvIG1vdmUgdGhlCisJICAgICAqICBjdXJzb3IgZm9yd2FyZCBvbmUgY2hhcmFjdGVyLiAgSWYgdW5kZXJsaW5lIHNlcXVlbmNlCisJICAgICAqICBpc24ndCBhdmFpbGFibGUsIHNldHRsZSBmb3Igc3RhbmRvdXQgc2VxdWVuY2UuCisJICAgICAqLworCisJICAgIGlmIChteV90Z2V0ZmxhZygidWwiLCJ1bCIpIHx8IG15X3RnZXRmbGFnKCJvcyIsIm9zIikpCisJCXVsX29wdCA9IDA7CisJICAgIGlmICgoY2hVTCA9IG15X3RnZXRzdHIoInVjIiwidWMiKSkgPT0gTlVMTCApCisJCWNoVUwgPSAiIjsKKwkgICAgaWYgKCgoVUxlbnRlciA9IG15X3RnZXRzdHIoInVzIiwic211bCIpKSA9PSBOVUxMIHx8CisJICAgICAgICAgKFVMZXhpdCA9IG15X3RnZXRzdHIoInVlIiwicm11bCIpKSA9PSBOVUxMKSAmJiAhKmNoVUwpIHsKKwkgICAgICAgIGlmICgoVUxlbnRlciA9IFNlbnRlcikgPT0gTlVMTCB8fCAoVUxleGl0ID0gU2V4aXQpID09IE5VTEwpIHsKKwkJCVVMZW50ZXIgPSAiIjsKKwkJCVVMZXhpdCA9ICIiOworCQl9IGVsc2UKKwkJCXVsZ2xpdGNoID0gc29nbGl0Y2g7CisJICAgIH0gZWxzZSB7CisJCXVsZ2xpdGNoID0gMDsKKwkgICAgfQorCisJICAgIGlmICgocGFkc3RyID0gbXlfdGdldHN0cigicGMiLCJwYWQiKSkgIT0gTlVMTCkKKwkJUEMgPSAqcGFkc3RyOworCSAgICBIb21lID0gbXlfdGdldHN0cigiaG8iLCJob21lIik7CisJICAgIGlmIChIb21lID09IDAgfHwgKkhvbWUgPT0gJ1wwJykgeworCQlpZiAoKGN1cnNvcm0gPSBteV90Z2V0c3RyKCJjbSIsImN1cCIpKSAhPSBOVUxMKSB7CisJCSAgICBjb25zdCBjaGFyICp0ID0gKGNvbnN0IGNoYXIgKilteV90Z290byhjdXJzb3JtLCAwLCAwKTsKKwkJICAgIHhzdHJuY3B5KGN1cnNvcmhvbWUsIHQsIHNpemVvZihjdXJzb3Job21lKSk7CisJCSAgICBIb21lID0gY3Vyc29yaG9tZTsKKwkJfQorCSAgICB9CisJICAgIEVvZENsciA9IG15X3RnZXRzdHIoImNkIiwiZWQiKTsKKwkgICAgaWYgKChjaEJTID0gbXlfdGdldHN0cigibGUiLCJjdWIxIikpID09IE5VTEwpCisJCWNoQlMgPSAiXGIiOworCisJfQorCWlmICgoc2hlbGwgPSBnZXRlbnYoIlNIRUxMIikpID09IE5VTEwpCisJICAgIHNoZWxsID0gIi9iaW4vc2giOworICAgIH0KKyAgICBub19pbnR0eSA9IHRjZ2V0YXR0cihmaWxlbm8oc3RkaW4pLCAmb3R0eSk7CisgICAgdGNnZXRhdHRyKGZpbGVubyhzdGRlcnIpLCAmb3R0eSk7CisgICAgc2F2ZXR0eTAgPSBvdHR5OworICAgIHNsb3dfdHR5ID0gY2ZnZXRpc3BlZWQoJm90dHkpIDwgQjEyMDA7CisgICAgaGFyZHRhYnMgPSAob3R0eS5jX29mbGFnICYgVEFCRExZKSAhPSBYVEFCUzsKKyAgICBpZiAoIW5vX3R0eSkgeworCW90dHkuY19sZmxhZyAmPSB+KElDQU5PTnxFQ0hPKTsKKwlvdHR5LmNfY2NbVk1JTl0gPSAxOworCW90dHkuY19jY1tWVElNRV0gPSAwOworICAgIH0KK30KKworaW50IHJlYWRjaCAoKSB7CisJdW5zaWduZWQgY2hhciBjOworCisJZXJybm8gPSAwOworCWlmIChyZWFkIChmaWxlbm8oc3RkZXJyKSwgJmMsIDEpIDw9IDApIHsKKwkJaWYgKGVycm5vICE9IEVJTlRSKQorCQkJZW5kX2l0KDApOworCQllbHNlCisJCQljID0gb3R0eS5jX2NjW1ZLSUxMXTsKKwl9CisJcmV0dXJuIChjKTsKK30KKworc3RhdGljIGNoYXIgKkJTID0gIlxiIjsKK3N0YXRpYyBjaGFyICpCU0IgPSAiXGIgXGIiOworc3RhdGljIGNoYXIgKkNBUkFUID0gIl4iOworI2RlZmluZSBFUkFTRU9ORUNPTFVNTiBcCisgICAgaWYgKGRvY3J0ZXJhc2UpIFwKKwlwdXRzZXJyKEJTQik7IFwKKyAgICBlbHNlIFwKKwlwdXRzZXJyKEJTKTsKKwordm9pZCB0dHlpbiAoY2hhciBidWZbXSwgcmVnaXN0ZXIgaW50IG5tYXgsIGNoYXIgcGNoYXIpIHsKKyAgICBjaGFyICpzcDsKKyAgICBpbnQgYzsKKyAgICBpbnQgc2xhc2ggPSAwOworICAgIGludAltYXhsZW47CisKKyAgICBzcCA9IGJ1ZjsKKyAgICBtYXhsZW4gPSAwOworICAgIHdoaWxlIChzcCAtIGJ1ZiA8IG5tYXgpIHsKKwlpZiAocHJvbXB0bGVuID4gbWF4bGVuKSBtYXhsZW4gPSBwcm9tcHRsZW47CisJYyA9IHJlYWRjaCAoKTsKKwlpZiAoYyA9PSAnXFwnKSB7CisJICAgIHNsYXNoKys7CisJfQorCWVsc2UgaWYgKCgoY2NfdCkgYyA9PSBvdHR5LmNfY2NbVkVSQVNFXSkgJiYgIXNsYXNoKSB7CisJICAgIGlmIChzcCA+IGJ1ZikgeworI2lmZGVmIEhBVkVfV0lERUNIQVIKKwkJaWYgKE1CX0NVUl9NQVggPiAxKQorCQkgIHsKKwkJICAgIHdjaGFyX3Qgd2M7CisJCSAgICBzaXplX3QgcG9zID0gMCwgbWJsZW5ndGg7CisJCSAgICBtYnN0YXRlX3Qgc3RhdGUsIHN0YXRlX2JhazsKKworCQkgICAgbWVtc2V0ICgmc3RhdGUsICdcMCcsIHNpemVvZiAobWJzdGF0ZV90KSk7CisKKwkJICAgIHdoaWxlICgxKSB7CisJCQkgc3RhdGVfYmFrID0gc3RhdGU7CisJCQkgbWJsZW5ndGggPSBtYnJ0b3djICgmd2MsIGJ1ZiArIHBvcywgc3AgLSBidWYsICZzdGF0ZSk7CisKKwkJCSBzdGF0ZSA9IChtYmxlbmd0aCA9PSAoc2l6ZV90KS0yCisJCQkJIHx8IG1ibGVuZ3RoID09IChzaXplX3QpLTEpID8gc3RhdGVfYmFrIDogc3RhdGU7CisJCQkgbWJsZW5ndGggPSAobWJsZW5ndGggPT0gKHNpemVfdCktMgorCQkJCSAgICAgfHwgbWJsZW5ndGggPT0gKHNpemVfdCktMQorCQkJCSAgICAgfHwgbWJsZW5ndGggPT0gMCkgPyAxIDogbWJsZW5ndGg7CisKKwkJCSBpZiAoYnVmICsgcG9zICsgbWJsZW5ndGggPj0gc3ApCisJCQkgYnJlYWs7CisKKwkJCSBwb3MgKz0gbWJsZW5ndGg7CisJCSAgICB9CisKKwkJICAgIGlmIChtYmxlbmd0aCA9PSAxKSB7CisJCSAgICAgIEVSQVNFT05FQ09MVU1OCisJCSAgICB9CisJCSAgICBlbHNlIHsKKwkJCWludCB3Y193aWR0aDsKKwkJCXdjX3dpZHRoID0gd2N3aWR0aCAod2MpOworCQkJd2Nfd2lkdGggPSAod2Nfd2lkdGggPCAxKSA/IDEgOiB3Y193aWR0aDsKKwkJCXdoaWxlICh3Y193aWR0aC0tKSB7CisJCQkgICAgRVJBU0VPTkVDT0xVTU4KKwkJCX0KKwkJICAgIH0KKworCQkgICAgd2hpbGUgKG1ibGVuZ3RoLS0pIHsKKwkJCS0tcHJvbXB0bGVuOworCQkJLS1zcDsKKwkJICAgIH0KKwkJICB9CisJCWVsc2UKKyNlbmRpZgorCQkgIHsKKwkJICAgIC0tcHJvbXB0bGVuOworCQkgICAgRVJBU0VPTkVDT0xVTU4KKwkJICAgIC0tc3A7CisJCSAgfQorCisJCWlmICgoKnNwIDwgJyAnICYmICpzcCAhPSAnXG4nKSB8fCAqc3AgPT0gUlVCT1VUKSB7CisJCSAgICAtLXByb21wdGxlbjsKKwkJICAgIEVSQVNFT05FQ09MVU1OCisJCX0KKwkJY29udGludWU7CisJICAgIH0KKwkgICAgZWxzZSB7CisJCWlmICghZXJhc2VsbikgcHJvbXB0bGVuID0gbWF4bGVuOworCQlzaWdsb25nam1wIChyZXN0b3JlLCAxKTsKKwkgICAgfQorCX0KKwllbHNlIGlmICgoKGNjX3QpIGMgPT0gb3R0eS5jX2NjW1ZLSUxMXSkgJiYgIXNsYXNoKSB7CisJICAgIGlmIChoYXJkKSB7CisJCXNob3cgKGMpOworCQlwdXRjaGFyICgnXG4nKTsKKwkJcHV0Y2hhciAocGNoYXIpOworCSAgICB9CisJICAgIGVsc2UgeworCQlwdXRjaGFyICgnXHInKTsKKwkJcHV0Y2hhciAocGNoYXIpOworCQlpZiAoZXJhc2VsbikKKwkJICAgIGVyYXNlcCAoMSk7CisJCWVsc2UgaWYgKGRvY3J0a2lsbCkKKwkJICAgIHdoaWxlIChwcm9tcHRsZW4tLSA+IDEpCisJCQlwdXRzZXJyKEJTQik7CisJCXByb21wdGxlbiA9IDE7CisJICAgIH0KKwkgICAgc3AgPSBidWY7CisJICAgIGZmbHVzaCAoc3Rkb3V0KTsKKwkgICAgY29udGludWU7CisJfQorCWlmIChzbGFzaCAmJiAoKGNjX3QpIGMgPT0gb3R0eS5jX2NjW1ZLSUxMXQorCQkgICB8fCAoY2NfdCkgYyA9PSBvdHR5LmNfY2NbVkVSQVNFXSkpIHsKKwkgICAgRVJBU0VPTkVDT0xVTU4KKwkgICAgLS1zcDsKKwl9CisJaWYgKGMgIT0gJ1xcJykKKwkgICAgc2xhc2ggPSAwOworCSpzcCsrID0gYzsKKwlpZiAoKGMgPCAnICcgJiYgYyAhPSAnXG4nICYmIGMgIT0gRVNDKSB8fCBjID09IFJVQk9VVCkgeworCSAgICBjICs9IChjID09IFJVQk9VVCkgPyAtMDEwMCA6IDAxMDA7CisJICAgIHB1dHNlcnIoQ0FSQVQpOworCSAgICBwcm9tcHRsZW4rKzsKKwl9CisJaWYgKGMgIT0gJ1xuJyAmJiBjICE9IEVTQykgeworCSAgICBwdXRjZXJyKGMpOworCSAgICBwcm9tcHRsZW4rKzsKKwl9CisJZWxzZQorCSAgICBicmVhazsKKyAgICB9CisgICAgKi0tc3AgPSAnXDAnOworICAgIGlmICghZXJhc2VsbikgcHJvbXB0bGVuID0gbWF4bGVuOworICAgIGlmIChzcCAtIGJ1ZiA+PSBubWF4IC0gMSkKKwllcnJvciAoXygiTGluZSB0b28gbG9uZyIpKTsKK30KKworLyogcmV0dXJuOiAwIC0gdW5jaGFuZ2VkLCAxIC0gY2hhbmdlZCwgLTEgLSBvdmVyZmxvdyAodW5jaGFuZ2VkKSAqLworaW50IGV4cGFuZCAoY2hhciAqKm91dGJ1ZiwgY2hhciAqaW5idWYpIHsKKyAgICBjaGFyICppbnBzdHI7CisgICAgY2hhciAqb3V0c3RyOworICAgIGNoYXIgYzsKKyAgICBjaGFyICp0ZW1wOworICAgIGludCBjaGFuZ2VkID0gMDsKKyAgICBpbnQgdGVtcHN6LCB4dHJhLCBvZmZzZXQ7CisKKyAgICB4dHJhID0gc3RybGVuIChmbmFtZXNbZm51bV0pICsgc3RybGVuIChzaGVsbF9saW5lKSArIDE7CisgICAgdGVtcHN6ID0gMjAwICsgeHRyYTsKKyAgICB0ZW1wID0gbWFsbG9jKHRlbXBzeik7CisgICAgaWYgKCF0ZW1wKSB7CisJICAgIGVycm9yIChfKCJPdXQgb2YgbWVtb3J5IikpOworCSAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlucHN0ciA9IGluYnVmOworICAgIG91dHN0ciA9IHRlbXA7CisgICAgd2hpbGUgKChjID0gKmlucHN0cisrKSAhPSAnXDAnKXsKKwlvZmZzZXQgPSBvdXRzdHItdGVtcDsKKwlpZiAodGVtcHN6LW9mZnNldC0xIDwgeHRyYSkgeworCQl0ZW1wc3ogKz0gMjAwICsgeHRyYTsKKwkJdGVtcCA9IHJlYWxsb2ModGVtcCwgdGVtcHN6KTsKKwkJaWYgKCF0ZW1wKSB7CisJCQllcnJvciAoXygiT3V0IG9mIG1lbW9yeSIpKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQlvdXRzdHIgPSB0ZW1wICsgb2Zmc2V0OworCX0KKwlzd2l0Y2ggKGMpIHsKKwljYXNlICclJzoKKwkgICAgaWYgKCFub19pbnR0eSkgeworCQlzdHJjcHkgKG91dHN0ciwgZm5hbWVzW2ZudW1dKTsKKwkJb3V0c3RyICs9IHN0cmxlbiAoZm5hbWVzW2ZudW1dKTsKKwkJY2hhbmdlZCsrOworCSAgICB9IGVsc2UKKwkJKm91dHN0cisrID0gYzsKKwkgICAgYnJlYWs7CisJY2FzZSAnISc6CisJICAgIGlmICghc2hlbGxwKQorCQllcnJvciAoXygiTm8gcHJldmlvdXMgY29tbWFuZCB0byBzdWJzdGl0dXRlIGZvciIpKTsKKwkgICAgc3RyY3B5IChvdXRzdHIsIHNoZWxsX2xpbmUpOworCSAgICBvdXRzdHIgKz0gc3RybGVuIChzaGVsbF9saW5lKTsKKwkgICAgY2hhbmdlZCsrOworCSAgICBicmVhazsKKwljYXNlICdcXCc6CisJICAgIGlmICgqaW5wc3RyID09ICclJyB8fCAqaW5wc3RyID09ICchJykgeworCQkqb3V0c3RyKysgPSAqaW5wc3RyKys7CisJCWJyZWFrOworCSAgICB9CisJZGVmYXVsdDoKKwkgICAgKm91dHN0cisrID0gYzsKKwl9CisgICAgfQorICAgICpvdXRzdHIrKyA9ICdcMCc7CisgICAgKm91dGJ1ZiA9IHRlbXA7CisgICAgcmV0dXJuIChjaGFuZ2VkKTsKK30KKwordm9pZCBzaG93IChjaGFyIGMpIHsKKyAgICBpZiAoKGMgPCAnICcgJiYgYyAhPSAnXG4nICYmIGMgIT0gRVNDKSB8fCBjID09IFJVQk9VVCkgeworCWMgKz0gKGMgPT0gUlVCT1VUKSA/IC0wMTAwIDogMDEwMDsKKwlwdXRzZXJyKENBUkFUKTsKKwlwcm9tcHRsZW4rKzsKKyAgICB9CisgICAgcHV0Y2VycihjKTsKKyAgICBwcm9tcHRsZW4rKzsKK30KKwordm9pZCBlcnJvciAoY2hhciAqbWVzcykKK3sKKyAgICBpZiAoY2xyZW9sKQorCWNsZWFyZW9sICgpOworICAgIGVsc2UKKwlraWxsX2xpbmUgKCk7CisgICAgcHJvbXB0bGVuICs9IHN0cmxlbiAobWVzcyk7CisgICAgaWYgKFNlbnRlciAmJiBTZXhpdCkgeworCW15X3B1dHN0cmluZyAoU2VudGVyKTsKKwlwdXRzb3V0KG1lc3MpOworCW15X3B1dHN0cmluZyAoU2V4aXQpOworICAgIH0KKyAgICBlbHNlCisJcHV0c291dChtZXNzKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICBlcnJvcnMrKzsKKyAgICBzaWdsb25nam1wIChyZXN0b3JlLCAxKTsKK30KKworCit2b2lkIHNldF90dHkgKCkgeworCW90dHkuY19sZmxhZyAmPSB+KElDQU5PTnxFQ0hPKTsKKwlvdHR5LmNfY2NbVk1JTl0gPSAxOwkvKiByZWFkIGF0IGxlYXN0IDEgY2hhciAqLworCW90dHkuY19jY1tWVElNRV0gPSAwOwkvKiBubyB0aW1lb3V0ICovCisJc3R0eShmaWxlbm8oc3RkZXJyKSwgJm90dHkpOworfQorCitzdGF0aWMgaW50CitvdXJwdXRjaChpbnQgYykgeworCXJldHVybiBwdXRjKGMsIHN0ZG91dCk7Cit9CisKK3ZvaWQKK3Jlc2V0X3R0eSAoKSB7CisgICAgaWYgKG5vX3R0eSkKKwlyZXR1cm47CisgICAgaWYgKHBzdGF0ZSkgeworCXRwdXRzKFVMZXhpdCwgMSwgb3VycHV0Y2gpOwkvKiBwdXRjaGFyIC0gaWYgdGhhdCBpc250IGEgbWFjcm8gKi8KKwlmZmx1c2goc3Rkb3V0KTsKKwlwc3RhdGUgPSAwOworICAgIH0KKyAgICBvdHR5LmNfbGZsYWcgfD0gSUNBTk9OfEVDSE87CisgICAgb3R0eS5jX2NjW1ZNSU5dID0gc2F2ZXR0eTAuY19jY1tWTUlOXTsKKyAgICBvdHR5LmNfY2NbVlRJTUVdID0gc2F2ZXR0eTAuY19jY1tWVElNRV07CisgICAgc3R0eShmaWxlbm8oc3RkZXJyKSwgJnNhdmV0dHkwKTsKK30KKwordm9pZCByZGxpbmUgKHJlZ2lzdGVyIEZJTEUgKmYpCit7CisgICAgcmVnaXN0ZXIgaW50ICBjOworICAgIHJlZ2lzdGVyIGNoYXIgKnA7CisKKyAgICBwcmVwYXJlX2xpbmVfYnVmZmVyKCk7CisKKyAgICBwID0gTGluZTsKKyAgICB3aGlsZSAoKGMgPSBHZXRjIChmKSkgIT0gJ1xuJyAmJiBjICE9IEVPRiAmJiBwIC0gTGluZSA8IExpbmVMZW4gLSAxKQorCSpwKysgPSBjOworICAgIGlmIChjID09ICdcbicpCisJQ3VycmxpbmUrKzsKKyAgICAqcCA9ICdcMCc7Cit9CisKKy8qIENvbWUgaGVyZSB3aGVuIHdlIGdldCBhIHN1c3BlbmQgc2lnbmFsIGZyb20gdGhlIHRlcm1pbmFsICovCisKK3ZvaWQgb25zdXNwIChpbnQgZHVtbXkpIHsKKyAgICBzaWdzZXRfdCBzaWduYWxzLCBvbGRtYXNrOworCisgICAgLyogaWdub3JlIFNJR1RUT1Ugc28gd2UgZG9uJ3QgZ2V0IHN0b3BwZWQgaWYgY3NoIGdyYWJzIHRoZSB0dHkgKi8KKyAgICBzaWduYWwoU0lHVFRPVSwgU0lHX0lHTik7CisgICAgcmVzZXRfdHR5ICgpOworICAgIGZmbHVzaCAoc3Rkb3V0KTsKKyAgICBzaWduYWwoU0lHVFRPVSwgU0lHX0RGTCk7CisgICAgLyogU2VuZCB0aGUgVFNUUCBzaWduYWwgdG8gc3VzcGVuZCBvdXIgcHJvY2VzcyBncm91cCAqLworICAgIHNpZ25hbChTSUdUU1RQLCBTSUdfREZMKTsKKworICAgIC8qIHVuYmxvY2sgU0lHVFNUUCBvciB3ZSB3b24ndCBiZSBhYmxlIHRvIHN1c3BlbmQgb3Vyc2VsZiAqLworICAgIHNpZ2VtcHR5c2V0KCZzaWduYWxzKTsKKyAgICBzaWdhZGRzZXQoJnNpZ25hbHMsIFNJR1RTVFApOworICAgIHNpZ3Byb2NtYXNrKFNJR19VTkJMT0NLLCAmc2lnbmFscywgJm9sZG1hc2spOworCisgICAga2lsbCAoMCwgU0lHVFNUUCk7CisgICAgLyogUGF1c2UgZm9yIHN0YXRpb24gYnJlYWsgKi8KKworICAgIHNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmb2xkbWFzaywgTlVMTCk7CisKKyAgICAvKiBXZSdyZSBiYWNrICovCisgICAgc2lnbmFsIChTSUdUU1RQLCBvbnN1c3ApOworICAgIHNldF90dHkgKCk7CisgICAgaWYgKGlud2FpdCkKKwkgICAgc2lnbG9uZ2ptcCAocmVzdG9yZSwgMSk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL29kc3ludGF4LmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL29kc3ludGF4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc3MTFmOQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvb2RzeW50YXguYwpAQCAtMCwwICsxLDI2NSBAQAorLyotCisgKiBDb3B5cmlnaHQgKGMpIDE5OTAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKyAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKyAqCUNhbGlmb3JuaWEsIEJlcmtlbGV5IGFuZCBpdHMgY29udHJpYnV0b3JzLgorICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisgLyogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgICogLSBhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgkJLyogZm9yIGlzZGlnaXQoKSAqLworI2luY2x1ZGUgPHVuaXN0ZC5oPgkJLyogZm9yIGdldG9wdCgpICovCisjaW5jbHVkZSAiaGV4ZHVtcC5oIgorI2luY2x1ZGUgIm5scy5oIgorCitzdGF0aWMgdm9pZCBvZG9mZnNldChpbnQsIGNoYXIgKioqKTsKK3N0YXRpYyB2b2lkIG9kcHJlY2VkZSh2b2lkKTsKKworaW50IGRlcHJlY2F0ZWQ7CisKK3ZvaWQKK29sZHN5bnRheChpbnQgYXJnYywgY2hhciAqKiphcmd2cCkKK3sKKwlpbnQgY2g7CisJY2hhciAqKmFyZ3Y7CisKKwlkZXByZWNhdGVkID0gMTsKKwlhcmd2ID0gKmFyZ3ZwOworCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwgImFCYmNEZGVGZkhoSWlMbE9vUHBzd3ZYeCIpKSAhPSAtMSkKKwkJc3dpdGNoIChjaCkgeworCQljYXNlICdhJzoKKwkJCW9kcHJlY2VkZSgpOworCQkJYWRkKCIxNi8xIFwiJTNfdSBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnQic6CisJCWNhc2UgJ28nOgorCQkJb2RwcmVjZWRlKCk7CisJCQlhZGQoIjgvMiBcIiAlMDZvIFwiIFwiXFxuXCIiKTsKKwkJCWJyZWFrOworCQljYXNlICdiJzoKKwkJCW9kcHJlY2VkZSgpOworCQkJYWRkKCIxNi8xIFwiJTAzbyBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnYyc6CisJCQlvZHByZWNlZGUoKTsKKwkJCWFkZCgiMTYvMSBcIiUzX2MgXCIgXCJcXG5cIiIpOworCQkJYnJlYWs7CisJCWNhc2UgJ2QnOgorCQkJb2RwcmVjZWRlKCk7CisJCQlhZGQoIjgvMiBcIiAgJTA1dSBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnRCc6CisJCQlvZHByZWNlZGUoKTsKKwkJCWFkZCgiNC80IFwiICAgICAlMDEwdSBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnZSc6CQkvKiB1bmRvY3VtZW50ZWQgaW4gb2QgKi8KKwkJY2FzZSAnRic6CisJCQlvZHByZWNlZGUoKTsKKwkJCWFkZCgiMi84IFwiICAgICAgICAgICUyMS4xNGUgXCIgXCJcXG5cIiIpOworCQkJYnJlYWs7CisJCQkKKwkJY2FzZSAnZic6CisJCQlvZHByZWNlZGUoKTsKKwkJCWFkZCgiNC80IFwiICUxNC43ZSBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnSCc6CisJCWNhc2UgJ1gnOgorCQkJb2RwcmVjZWRlKCk7CisJCQlhZGQoIjQvNCBcIiAgICAgICAlMDh4IFwiIFwiXFxuXCIiKTsKKwkJCWJyZWFrOworCQljYXNlICdoJzoKKwkJY2FzZSAneCc6CisJCQlvZHByZWNlZGUoKTsKKwkJCWFkZCgiOC8yIFwiICAgJTA0eCBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnSSc6CisJCWNhc2UgJ0wnOgorCQljYXNlICdsJzoKKwkJCW9kcHJlY2VkZSgpOworCQkJYWRkKCI0LzQgXCIgICAgJTExZCBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnaSc6CisJCQlvZHByZWNlZGUoKTsKKwkJCWFkZCgiOC8yIFwiICU2ZCBcIiBcIlxcblwiIik7CisJCQlicmVhazsKKwkJY2FzZSAnTyc6CisJCQlvZHByZWNlZGUoKTsKKwkJCWFkZCgiNC80IFwiICAgICUwMTFvIFwiIFwiXFxuXCIiKTsKKwkJCWJyZWFrOworCQljYXNlICd2JzoKKwkJCXZmbGFnID0gQUxMOworCQkJYnJlYWs7CisJCWNhc2UgJ1AnOgorCQljYXNlICdwJzoKKwkJY2FzZSAncyc6CisJCWNhc2UgJ3cnOgorCQljYXNlICc/JzoKKwkJZGVmYXVsdDoKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJICAgIF8oIm9kOiBvZCgxKSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciBoZXhkdW1wKDEpLlxuIikpOworCQkJaWYgKGNoICE9ICc/JykKKwkJCQlmcHJpbnRmKHN0ZGVyciwKK18oIm9kOiBoZXhkdW1wKDEpIGNvbXBhdGliaWxpdHkgZG9lc24ndCBzdXBwb3J0IHRoZSAtJWMgb3B0aW9uJXNcbiIpLAorCQkJCSAgICBjaCwgY2ggPT0gJ3MnID8gXygiOyBzZWUgc3RyaW5ncygxKS4iKSA6ICIuIik7CisJCQl1c2FnZSgpOworCQl9CisKKwlpZiAoIWZzaGVhZCkgeworCQlhZGQoIlwiJTA3LjdfQW9cblwiIik7CisJCWFkZCgiXCIlMDcuN19hbyAgXCIgOC8yIFwiJTA2byBcIiBcIlxcblwiIik7CisJfQorCisJYXJnYyAtPSBvcHRpbmQ7CisJKmFyZ3ZwICs9IG9wdGluZDsKKworCWlmIChhcmdjKQorCQlvZG9mZnNldChhcmdjLCBhcmd2cCk7Cit9CisKKyNkZWZpbmUJaXNoZXhkaWdpdChjKSBcCisJKChjID49ICcwJyAmJiBjIDw9ICc5JykgfHwgKGMgPj0gJ2EnICYmIGMgPD0gJ2YnKSB8fCAoYyA+PSAnQScgJiYgYyA8PSAnRicpKQorCitzdGF0aWMgdm9pZAorb2RvZmZzZXQoaW50IGFyZ2MsIGNoYXIgKioqYXJndnApCit7CisJY2hhciAqbnVtLCAqcDsKKwlpbnQgYmFzZTsKKwljaGFyICplbmQ7CisKKwkvKgorCSAqIFRoZSBvZmZzZXQgc3ludGF4IG9mIG9kKDEpIHdhcyBnZW51aW5lbHkgYml6YXJyZS4gIEZpcnN0LCBpZgorCSAqIGl0IHN0YXJ0ZWQgd2l0aCBhIHBsdXMgaXQgaGFkIHRvIGJlIGFuIG9mZnNldC4gIE90aGVyd2lzZSwgaWYKKwkgKiB0aGVyZSB3ZXJlIGF0IGxlYXN0IHR3byBhcmd1bWVudHMsIGEgbnVtYmVyIG9yIGxvd2VyLWNhc2UgJ3gnCisJICogZm9sbG93ZWQgYnkgYSBudW1iZXIgbWFrZXMgaXQgYW4gb2Zmc2V0LiAgQnkgZGVmYXVsdCBpdCB3YXMKKwkgKiBvY3RhbDsgaWYgaXQgc3RhcnRlZCB3aXRoICd4JyBvciAnMHgnIGl0IHdhcyBoZXguICBJZiBpdCBlbmRlZAorCSAqIGluIGEgJy4nLCBpdCB3YXMgZGVjaW1hbC4gIElmIGEgJ2InIG9yICdCJyB3YXMgYXBwZW5kZWQsIGl0CisJICogbXVsdGlwbGllZCB0aGUgbnVtYmVyIGJ5IDUxMiBvciAxMDI0IGJ5dGUgdW5pdHMuICBUaGVyZSB3YXMKKwkgKiBubyB3YXkgdG8gYXNzaWduIGEgYmxvY2sgY291bnQgdG8gYSBoZXggb2Zmc2V0LgorCSAqCisJICogV2UgYXNzdW1lIGl0J3MgYSBmaWxlIGlmIHRoZSBvZmZzZXQgaXMgYmFkLgorCSAqLworCXAgPSBhcmdjID09IDEgPyAoKmFyZ3ZwKVswXSA6ICgqYXJndnApWzFdOworCWlmICghcCkKKwkJcmV0dXJuOworCisJaWYgKCpwICE9ICcrJyAmJiAoYXJnYyA8IDIgfHwKKwkgICAgKCFpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKXBbMF0pICYmCisJICAgICAocFswXSAhPSAneCcgfHwgIWlzaGV4ZGlnaXQocFsxXSkpKSkpCisJCXJldHVybjsKKworCWJhc2UgPSAwOworCS8qCisJICogc2tpcCBvdmVyIGxlYWRpbmcgJysnLCAneFswLTlhLWZBLWZdJyBvciAnMHgnLCBhbmQKKwkgKiBzZXQgYmFzZS4KKwkgKi8KKwlpZiAocFswXSA9PSAnKycpCisJCSsrcDsKKwlpZiAocFswXSA9PSAneCcgJiYgaXNoZXhkaWdpdChwWzFdKSkgeworCQkrK3A7CisJCWJhc2UgPSAxNjsKKwl9IGVsc2UgaWYgKHBbMF0gPT0gJzAnICYmIHBbMV0gPT0gJ3gnKSB7CisJCXAgKz0gMjsKKwkJYmFzZSA9IDE2OworCX0KKworCS8qIHNraXAgb3ZlciB0aGUgbnVtYmVyICovCisJaWYgKGJhc2UgPT0gMTYpCisJCWZvciAobnVtID0gcDsgaXNoZXhkaWdpdCgqcCk7ICsrcCk7CisJZWxzZQorCQlmb3IgKG51bSA9IHA7IGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpKnApOyArK3ApOworCisJLyogY2hlY2sgZm9yIG5vIG51bWJlciAqLworCWlmIChudW0gPT0gcCkKKwkJcmV0dXJuOworCisJLyogaWYgdGVybWluYXRlcyB3aXRoIGEgJy4nLCBiYXNlIGlzIGRlY2ltYWwgKi8KKwlpZiAoKnAgPT0gJy4nKSB7CisJCWlmIChiYXNlKQorCQkJcmV0dXJuOworCQliYXNlID0gMTA7CisJfQorCisJc2tpcCA9IHN0cnRvbChudW0sICZlbmQsIGJhc2UgPyBiYXNlIDogOCk7CisKKwkvKiBpZiBlbmQgaXNuJ3QgdGhlIHNhbWUgYXMgcCwgd2UgZ290IGEgbm9uLW9jdGFsIGRpZ2l0ICovCisJaWYgKGVuZCAhPSBwKSB7CisJCXNraXAgPSAwOworCQlyZXR1cm47CisJfQorCisJaWYgKCpwKSB7CisJCWlmICgqcCA9PSAnQicpIHsKKwkJCXNraXAgKj0gMTAyNDsKKwkJCXArKzsKKwkJfSBlbHNlIGlmICgqcCA9PSAnYicpIHsKKwkJCXNraXAgKj0gNTEyOworCQkJcCsrOworCQl9CisJfQorCisJaWYgKCpwKSB7CisJCXNraXAgPSAwOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBJZiB0aGUgb2Zmc2V0IHVzZXMgYSBub24tb2N0YWwgYmFzZSwgdGhlIGJhc2Ugb2YKKwkgKiB0aGUgb2Zmc2V0IGlzIGNoYW5nZWQgYXMgd2VsbC4gIFRoaXMgaXNuJ3QgcHJldHR5LAorCSAqIGJ1dCBpdCdzIGVhc3kuCisJICovCisjZGVmaW5lCVRZUEVfT0ZGU0VUCTcKKwlpZiAoYmFzZSA9PSAxNikgeworCQlmc2hlYWQtPm5leHRmdS0+Zm10W1RZUEVfT0ZGU0VUXSA9ICd4JzsKKwkJZnNoZWFkLT5uZXh0ZnMtPm5leHRmdS0+Zm10W1RZUEVfT0ZGU0VUXSA9ICd4JzsKKwl9IGVsc2UgaWYgKGJhc2UgPT0gMTApIHsKKwkJZnNoZWFkLT5uZXh0ZnUtPmZtdFtUWVBFX09GRlNFVF0gPSAnZCc7CisJCWZzaGVhZC0+bmV4dGZzLT5uZXh0ZnUtPmZtdFtUWVBFX09GRlNFVF0gPSAnZCc7CisJfQorCisJLyogVGVybWluYXRlIGZpbGUgbGlzdC4gKi8KKwkoKmFyZ3ZwKVsxXSA9IE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkCitvZHByZWNlZGUodm9pZCkKK3sKKwlzdGF0aWMgaW50IGZpcnN0ID0gMTsKKworCWlmIChmaXJzdCkgeworCQlmaXJzdCA9IDA7CisJCWFkZCgiXCIlMDcuN19Bb1xuXCIiKTsKKwkJYWRkKCJcIiUwNy43X2FvICBcIiIpOworCX0gZWxzZQorCQlhZGQoIlwiICAgICAgICAgXCIiKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvcGFyc2UuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvcGFyc2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTY0YzYwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9wYXJzZS5jCkBAIC0wLDAgKzEsNTA0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTg5IFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworIC8qIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgorICAqIC0gYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAgKi8KKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9maWxlLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgImhleGR1bXAuaCIKKyNpbmNsdWRlICJubHMuaCIKKworc3RhdGljIHZvaWQgZXNjYXBlKGNoYXIgKnAxKTsKK3N0YXRpYyB2b2lkIGJhZGNudChjb25zdCBjaGFyICpzKTsKK3N0YXRpYyB2b2lkIGJhZHNmbXQodm9pZCk7CitzdGF0aWMgdm9pZCBiYWRmbXQoY29uc3QgY2hhciAqZm10KTsKK3N0YXRpYyB2b2lkIGJhZGNvbnYoY29uc3QgY2hhciAqY2gpOworCitGVSAqZW5kZnU7CQkJCQkvKiBmb3JtYXQgYXQgZW5kLW9mLWRhdGEgKi8KKwordm9pZCBhZGRmaWxlKGNoYXIgKm5hbWUpCit7CisJY2hhciAqcDsKKwlGSUxFICpmcDsKKwlpbnQgY2g7CisJY2hhciBidWZbMjA0OCArIDFdOworCisJaWYgKChmcCA9IGZvcGVuKG5hbWUsICJyIikpID09IE5VTEwpIHsKKwkJKHZvaWQpZnByaW50ZihzdGRlcnIsIF8oImhleGR1bXA6IGNhbid0IHJlYWQgJXMuXG4iKSwgbmFtZSk7CisJCWV4aXQoMSk7CisJfQorCXdoaWxlIChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmcCkpIHsKKwkJaWYgKChwID0gc3RyY2hyKGJ1ZiwgJ1xuJykpID09IE5VTEwpIHsKKwkJCSh2b2lkKWZwcmludGYoc3RkZXJyLCBfKCJoZXhkdW1wOiBsaW5lIHRvbyBsb25nLlxuIikpOworCQkJd2hpbGUgKChjaCA9IGdldGNoYXIoKSkgIT0gJ1xuJyAmJiBjaCAhPSBFT0YpOworCQkJY29udGludWU7CisJCX0KKwkJKnAgPSAnXDAnOworCQlmb3IgKHAgPSBidWY7ICpwICYmIGlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpKnApOyArK3ApOworCQlpZiAoISpwIHx8ICpwID09ICcjJykKKwkJCWNvbnRpbnVlOworCQlhZGQocCk7CisJfQorCSh2b2lkKWZjbG9zZShmcCk7Cit9CisKK3ZvaWQgYWRkKGNvbnN0IGNoYXIgKmZtdCkKK3sKKwljb25zdCBjaGFyICpwOworCXN0YXRpYyBGUyAqKm5leHRmczsKKwlGUyAqdGZzOworCUZVICp0ZnUsICoqbmV4dGZ1OworCWNvbnN0IGNoYXIgKnNhdmVwOworCisJLyogU3RhcnQgbmV3IGxpbmtlZCBsaXN0IG9mIGZvcm1hdCB1bml0cy4gKi8KKwl0ZnMgPSBlbWFsbG9jKHNpemVvZihGUykpOworCWlmICghZnNoZWFkKQorCQlmc2hlYWQgPSB0ZnM7CisJZWxzZQorCQkqbmV4dGZzID0gdGZzOworCW5leHRmcyA9ICZ0ZnMtPm5leHRmczsKKwluZXh0ZnUgPSAmdGZzLT5uZXh0ZnU7CisKKwkvKiBUYWtlIHRoZSBmb3JtYXQgc3RyaW5nIGFuZCBicmVhayBpdCB1cCBpbnRvIGZvcm1hdCB1bml0cy4gKi8KKwlmb3IgKHAgPSBmbXQ7OykgeworCQkvKiBTa2lwIGxlYWRpbmcgd2hpdGUgc3BhY2UuICovCisJCWZvciAoOyBpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKSpwKTsgKytwKTsKKwkJaWYgKCEqcCkKKwkJCWJyZWFrOworCisJCS8qIEFsbG9jYXRlIGEgbmV3IGZvcm1hdCB1bml0IGFuZCBsaW5rIGl0IGluLiAqLworCQl0ZnUgPSBlbWFsbG9jKHNpemVvZihGVSkpOworCQkqbmV4dGZ1ID0gdGZ1OworCQluZXh0ZnUgPSAmdGZ1LT5uZXh0ZnU7CisJCXRmdS0+cmVwcyA9IDE7CisKKwkJLyogSWYgbGVhZGluZyBkaWdpdCwgcmVwZXRpdGlvbiBjb3VudC4gKi8KKwkJaWYgKGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpKnApKSB7CisJCQlmb3IgKHNhdmVwID0gcDsgaXNkaWdpdCgodW5zaWduZWQgY2hhcikqcCk7ICsrcCk7CisJCQlpZiAoIWlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpKnApICYmICpwICE9ICcvJykKKwkJCQliYWRmbXQoZm10KTsKKwkJCS8qIG1heSBvdmVyd3JpdGUgZWl0aGVyIHdoaXRlIHNwYWNlIG9yIHNsYXNoICovCisJCQl0ZnUtPnJlcHMgPSBhdG9pKHNhdmVwKTsKKwkJCXRmdS0+ZmxhZ3MgPSBGX1NFVFJFUDsKKwkJCS8qIHNraXAgdHJhaWxpbmcgd2hpdGUgc3BhY2UgKi8KKwkJCWZvciAoKytwOyBpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKSpwKTsgKytwKTsKKwkJfQorCisJCS8qIFNraXAgc2xhc2ggYW5kIHRyYWlsaW5nIHdoaXRlIHNwYWNlLiAqLworCQlpZiAoKnAgPT0gJy8nKQorCQkJd2hpbGUgKGlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpKisrcCkpOworCisJCS8qIGJ5dGUgY291bnQgKi8KKwkJaWYgKGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpKnApKSB7CisJCQlmb3IgKHNhdmVwID0gcDsgaXNkaWdpdCgodW5zaWduZWQgY2hhcikqcCk7ICsrcCk7CisJCQlpZiAoIWlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpKnApKQorCQkJCWJhZGZtdChmbXQpOworCQkJdGZ1LT5iY250ID0gYXRvaShzYXZlcCk7CisJCQkvKiBza2lwIHRyYWlsaW5nIHdoaXRlIHNwYWNlICovCisJCQlmb3IgKCsrcDsgaXNzcGFjZSgodW5zaWduZWQgY2hhcikqcCk7ICsrcCk7CisJCX0KKworCQkvKiBmb3JtYXQgKi8KKwkJaWYgKCpwICE9ICciJykKKwkJCWJhZGZtdChmbXQpOworCQlmb3IgKHNhdmVwID0gKytwOyAqcCAhPSAnIic7KQorCQkJaWYgKCpwKysgPT0gMCkKKwkJCQliYWRmbXQoZm10KTsKKwkJaWYgKCEodGZ1LT5mbXQgPSBtYWxsb2MocCAtIHNhdmVwICsgMSkpKQorCQkJbm9tZW0oKTsKKwkJKHZvaWQpIHN0cm5jcHkodGZ1LT5mbXQsIHNhdmVwLCBwIC0gc2F2ZXApOworCQl0ZnUtPmZtdFtwIC0gc2F2ZXBdID0gJ1wwJzsKKwkJZXNjYXBlKHRmdS0+Zm10KTsKKwkJcCsrOworCX0KK30KKworc3RhdGljIGNvbnN0IGNoYXIgKnNwZWMgPSAiLiMtKyAwMTIzNDU2Nzg5IjsKKworaW50IHNpemUoRlMgKmZzKQoreworCUZVICpmdTsKKwlpbnQgYmNudCwgY3Vyc2l6ZTsKKwljaGFyICpmbXQ7CisJaW50IHByZWM7CisKKwkvKiBmaWd1cmUgb3V0IHRoZSBkYXRhIGJsb2NrIHNpemUgbmVlZGVkIGZvciBlYWNoIGZvcm1hdCB1bml0ICovCisJZm9yIChjdXJzaXplID0gMCwgZnUgPSBmcy0+bmV4dGZ1OyBmdTsgZnUgPSBmdS0+bmV4dGZ1KSB7CisJCWlmIChmdS0+YmNudCkgeworCQkJY3Vyc2l6ZSArPSBmdS0+YmNudCAqIGZ1LT5yZXBzOworCQkJY29udGludWU7CisJCX0KKwkJZm9yIChiY250ID0gcHJlYyA9IDAsIGZtdCA9IGZ1LT5mbXQ7ICpmbXQ7ICsrZm10KSB7CisJCQlpZiAoKmZtdCAhPSAnJScpCisJCQkJY29udGludWU7CisJCQkvKgorCQkJICogc2tpcCBhbnkgc3BlY2lhbCBjaGFycyAtLSBzYXZlIHByZWNpc2lvbiBpbgorCQkJICogY2FzZSBpdCdzIGEgJXMgZm9ybWF0LgorCQkJICovCisJCQl3aGlsZSAoc3RyY2hyKHNwZWMgKyAxLCAqKytmbXQpKTsKKwkJCWlmICgqZm10ID09ICcuJyAmJiBpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSorK2ZtdCkpIHsKKwkJCQlwcmVjID0gYXRvaShmbXQpOworCQkJCXdoaWxlIChpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSorK2ZtdCkpOworCQkJfQorCQkJc3dpdGNoKCpmbXQpIHsKKwkJCWNhc2UgJ2MnOgorCQkJCWJjbnQgKz0gMTsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ2QnOiBjYXNlICdpJzogY2FzZSAnbyc6IGNhc2UgJ3UnOgorCQkJY2FzZSAneCc6IGNhc2UgJ1gnOgorCQkJCWJjbnQgKz0gNDsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ2UnOiBjYXNlICdFJzogY2FzZSAnZic6IGNhc2UgJ2cnOiBjYXNlICdHJzoKKwkJCQliY250ICs9IDg7CisJCQkJYnJlYWs7CisJCQljYXNlICdzJzoKKwkJCQliY250ICs9IHByZWM7CisJCQkJYnJlYWs7CisJCQljYXNlICdfJzoKKwkJCQlzd2l0Y2goKisrZm10KSB7CisJCQkJY2FzZSAnYyc6IGNhc2UgJ3AnOiBjYXNlICd1JzoKKwkJCQkJYmNudCArPSAxOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCX0KKwkJY3Vyc2l6ZSArPSBiY250ICogZnUtPnJlcHM7CisJfQorCXJldHVybihjdXJzaXplKTsKK30KKwordm9pZCByZXdyaXRlKEZTICpmcykKK3sKKwllbnVtIHsgTk9UT0tBWSwgVVNFQkNOVCwgVVNFUFJFQyB9IHNva2F5OworCVBSICpwciwgKipuZXh0cHI7CisJRlUgKmZ1OworCWNoYXIgKnAxLCAqcDI7CisJY2hhciBzYXZlY2gsICpmbXRwLCBjc1szXTsKKwlpbnQgbmNvbnYsIHByZWM7CisKKwluZXh0cHIgPSBOVUxMOworCXByZWMgPSAwOworCisJZm9yIChmdSA9IGZzLT5uZXh0ZnU7IGZ1OyBmdSA9IGZ1LT5uZXh0ZnUpIHsKKwkJLyoKKwkJICogQnJlYWsgZWFjaCBmb3JtYXQgdW5pdCBpbnRvIHByaW50IHVuaXRzOyBlYWNoCisJCSAqIGNvbnZlcnNpb24gY2hhcmFjdGVyIGdldHMgaXRzIG93bi4KKwkJICovCisJCWZvciAobmNvbnYgPSAwLCBmbXRwID0gZnUtPmZtdDsgKmZtdHA7IG5leHRwciA9ICZwci0+bmV4dHByKSB7CisJCQlwciA9IGVtYWxsb2Moc2l6ZW9mKFBSKSk7CisJCQlpZiAoIWZ1LT5uZXh0cHIpCisJCQkJZnUtPm5leHRwciA9IHByOworCQkJZWxzZQorCQkJCSpuZXh0cHIgPSBwcjsKKworCQkJLyogU2tpcCBwcmVjZWRpbmcgdGV4dCBhbmQgdXAgdG8gdGhlIG5leHQgJSBzaWduLiAqLworCQkJZm9yIChwMSA9IGZtdHA7ICpwMSAmJiAqcDEgIT0gJyUnOyArK3AxKTsKKworCQkJLyogT25seSB0ZXh0IGluIHRoZSBzdHJpbmcuICovCisJCQlpZiAoISpwMSkgeworCQkJCXByLT5mbXQgPSBmbXRwOworCQkJCXByLT5mbGFncyA9IEZfVEVYVDsKKwkJCQlicmVhazsKKwkJCX0KKworCQkJLyoKKwkJCSAqIEdldCBwcmVjaXNpb24gZm9yICVzIC0tIGlmIGhhdmUgYSBieXRlIGNvdW50LCBkb24ndAorCQkJICogbmVlZCBpdC4KKwkJCSAqLworCQkJaWYgKGZ1LT5iY250KSB7CisJCQkJc29rYXkgPSBVU0VCQ05UOworCQkJCS8qIHNraXAgdG8gY29udmVyc2lvbiBjaGFyYWN0ZXIgKi8KKwkJCQlmb3IgKCsrcDE7IHN0cmNocihzcGVjLCAqcDEpOyArK3AxKTsKKwkJCX0gZWxzZSB7CisJCQkJLyogc2tpcCBhbnkgc3BlY2lhbCBjaGFycywgZmllbGQgd2lkdGggKi8KKwkJCQl3aGlsZSAoc3RyY2hyKHNwZWMgKyAxLCAqKytwMSkpOworCQkJCWlmICgqcDEgPT0gJy4nICYmCisJCQkJICAgIGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpKisrcDEpKSB7CisJCQkJCXNva2F5ID0gVVNFUFJFQzsKKwkJCQkJcHJlYyA9IGF0b2kocDEpOworCQkJCQl3aGlsZSAoaXNkaWdpdCgodW5zaWduZWQgY2hhcikqKytwMSkpOworCQkJCX0gZWxzZQorCQkJCQlzb2theSA9IE5PVE9LQVk7CisJCQl9CisKKwkJCXAyID0gcDEgKyAxOwkJLyogU2V0IGVuZCBwb2ludGVyLiAqLworCQkJY3NbMF0gPSAqcDE7CQkvKiBTZXQgY29udmVyc2lvbiBzdHJpbmcuICovCisJCQljc1sxXSA9IDA7CisKKwkJCS8qCisJCQkgKiBGaWd1cmUgb3V0IHRoZSBieXRlIGNvdW50IGZvciBlYWNoIGNvbnZlcnNpb247CisJCQkgKiByZXdyaXRlIHRoZSBmb3JtYXQgYXMgbmVjZXNzYXJ5LCBzZXQgdXAgYmxhbmstCisJCQkgKiBwYWRkaW5nIGZvciBlbmQgb2YgZGF0YS4KKwkJCSAqLworCQkJc3dpdGNoKGNzWzBdKSB7CisJCQljYXNlICdjJzoKKwkJCQlwci0+ZmxhZ3MgPSBGX0NIQVI7CisJCQkJc3dpdGNoKGZ1LT5iY250KSB7CisJCQkJY2FzZSAwOiBjYXNlIDE6CisJCQkJCXByLT5iY250ID0gMTsKKwkJCQkJYnJlYWs7CisJCQkJZGVmYXVsdDoKKwkJCQkJcDFbMV0gPSAnXDAnOworCQkJCQliYWRjbnQocDEpOworCQkJCX0KKwkJCQlicmVhazsKKwkJCWNhc2UgJ2QnOiBjYXNlICdpJzoKKwkJCQlwci0+ZmxhZ3MgPSBGX0lOVDsKKwkJCQlnb3RvIGlzaW50OworCQkJY2FzZSAnbyc6IGNhc2UgJ3UnOiBjYXNlICd4JzogY2FzZSAnWCc6CisJCQkJcHItPmZsYWdzID0gRl9VSU5UOworaXNpbnQ6CQkJCWNzWzJdID0gJ1wwJzsKKwkJCQljc1sxXSA9IGNzWzBdOworCQkJCWNzWzBdID0gJ3EnOworCQkJCXN3aXRjaChmdS0+YmNudCkgeworCQkJCWNhc2UgMDogY2FzZSA0OgorCQkJCQlwci0+YmNudCA9IDQ7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgMToKKwkJCQkJcHItPmJjbnQgPSAxOworCQkJCQlicmVhazsKKwkJCQljYXNlIDI6CisJCQkJCXByLT5iY250ID0gMjsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSA4OgorCQkJCQlwci0+YmNudCA9IDg7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCXAxWzFdID0gJ1wwJzsKKwkJCQkJYmFkY250KHAxKTsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQljYXNlICdlJzogY2FzZSAnRSc6IGNhc2UgJ2YnOiBjYXNlICdnJzogY2FzZSAnRyc6CisJCQkJcHItPmZsYWdzID0gRl9EQkw7CisJCQkJc3dpdGNoKGZ1LT5iY250KSB7CisJCQkJY2FzZSAwOiBjYXNlIDg6CisJCQkJCXByLT5iY250ID0gODsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSA0OgorCQkJCQlwci0+YmNudCA9IDQ7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCXAxWzFdID0gJ1wwJzsKKwkJCQkJYmFkY250KHAxKTsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQljYXNlICdzJzoKKwkJCQlwci0+ZmxhZ3MgPSBGX1NUUjsKKwkJCQlzd2l0Y2goc29rYXkpIHsKKwkJCQljYXNlIE5PVE9LQVk6CisJCQkJCWJhZHNmbXQoKTsKKwkJCQljYXNlIFVTRUJDTlQ6CisJCQkJCXByLT5iY250ID0gZnUtPmJjbnQ7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgVVNFUFJFQzoKKwkJCQkJcHItPmJjbnQgPSBwcmVjOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQljYXNlICdfJzoKKwkJCQkrK3AyOworCQkJCXN3aXRjaChwMVsxXSkgeworCQkJCWNhc2UgJ0EnOgorCQkJCQllbmRmdSA9IGZ1OworCQkJCQlmdS0+ZmxhZ3MgfD0gRl9JR05PUkU7CisJCQkJCS8qIEZBTExUSFJPVUdIICovCisJCQkJY2FzZSAnYSc6CisJCQkJCXByLT5mbGFncyA9IEZfQUREUkVTUzsKKwkJCQkJKytwMjsKKwkJCQkJc3dpdGNoKHAxWzJdKSB7CisJCQkJCWNhc2UgJ2QnOiBjYXNlICdvJzogY2FzZSd4JzoKKwkJCQkJCWNzWzBdID0gJ3EnOworCQkJCQkJY3NbMV0gPSBwMVsyXTsKKwkJCQkJCWNzWzJdID0gJ1wwJzsKKwkJCQkJCWJyZWFrOworCQkJCQlkZWZhdWx0OgorCQkJCQkJcDFbM10gPSAnXDAnOworCQkJCQkJYmFkY29udihwMSk7CisJCQkJCX0KKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAnYyc6CisJCQkJCXByLT5mbGFncyA9IEZfQzsKKwkJCQkJLyogY3NbMF0gPSAnYyc7CXNldCBpbiBjb252X2MgKi8KKwkJCQkJZ290byBpc2ludDI7CisJCQkJY2FzZSAncCc6CisJCQkJCXByLT5mbGFncyA9IEZfUDsKKwkJCQkJY3NbMF0gPSAnYyc7CisJCQkJCWdvdG8gaXNpbnQyOworCQkJCWNhc2UgJ3UnOgorCQkJCQlwci0+ZmxhZ3MgPSBGX1U7CisJCQkJCS8qIGNzWzBdID0gJ2MnOwlzZXQgaW4gY29udl91ICovCitpc2ludDI6CQkJCQlzd2l0Y2goZnUtPmJjbnQpIHsKKwkJCQkJY2FzZSAwOiBjYXNlIDE6CisJCQkJCQlwci0+YmNudCA9IDE7CisJCQkJCQlicmVhazsKKwkJCQkJZGVmYXVsdDoKKwkJCQkJCXAxWzJdID0gJ1wwJzsKKwkJCQkJCWJhZGNudChwMSk7CisJCQkJCX0KKwkJCQkJYnJlYWs7CisJCQkJZGVmYXVsdDoKKwkJCQkJcDFbMl0gPSAnXDAnOworCQkJCQliYWRjb252KHAxKTsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCXAxWzFdID0gJ1wwJzsKKwkJCQliYWRjb252KHAxKTsKKwkJCX0KKworCQkJLyoKKwkJCSAqIENvcHkgdG8gUFIgZm9ybWF0IHN0cmluZywgc2V0IGNvbnZlcnNpb24gY2hhcmFjdGVyCisJCQkgKiBwb2ludGVyLCB1cGRhdGUgb3JpZ2luYWwuCisJCQkgKi8KKwkJCXNhdmVjaCA9ICpwMjsKKwkJCXAxWzBdID0gJ1wwJzsKKwkJCXByLT5mbXQgPSBlbWFsbG9jKHN0cmxlbihmbXRwKSArIHN0cmxlbihjcykgKyAxKTsKKwkJCSh2b2lkKXN0cmNweShwci0+Zm10LCBmbXRwKTsKKwkJCSh2b2lkKXN0cmNhdChwci0+Zm10LCBjcyk7CisJCQkqcDIgPSBzYXZlY2g7CisJCQlwci0+Y2NoYXIgPSBwci0+Zm10ICsgKHAxIC0gZm10cCk7CisJCQlmbXRwID0gcDI7CisKKwkJCS8qIE9ubHkgb25lIGNvbnZlcnNpb24gY2hhcmFjdGVyIGlmIGJ5dGUgY291bnQgKi8KKwkJCWlmICghKHByLT5mbGFncyZGX0FERFJFU1MpICYmIGZ1LT5iY250ICYmIG5jb252KyspIHsKKwkJCQkodm9pZClmcHJpbnRmKHN0ZGVyciwKKwkJCQkgICAgXygiaGV4ZHVtcDogYnl0ZSBjb3VudCB3aXRoIG11bHRpcGxlIGNvbnZlcnNpb24gY2hhcmFjdGVycy5cbiIpKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQl9CisJCS8qCisJCSAqIElmIGZvcm1hdCB1bml0IGJ5dGUgY291bnQgbm90IHNwZWNpZmllZCwgZmlndXJlIGl0IG91dAorCQkgKiBzbyBjYW4gYWRqdXN0IHJlcCBjb3VudCBsYXRlci4KKwkJICovCisJCWlmICghZnUtPmJjbnQpCisJCQlmb3IgKHByID0gZnUtPm5leHRwcjsgcHI7IHByID0gcHItPm5leHRwcikKKwkJCQlmdS0+YmNudCArPSBwci0+YmNudDsKKwl9CisJLyoKKwkgKiBJZiB0aGUgZm9ybWF0IHN0cmluZyBpbnRlcnByZXRzIGFueSBkYXRhIGF0IGFsbCwgYW5kIGl0J3MKKwkgKiBub3QgdGhlIHNhbWUgYXMgdGhlIGJsb2Nrc2l6ZSwgYW5kIGl0cyBsYXN0IGZvcm1hdCB1bml0CisJICogaW50ZXJwcmV0cyBhbnkgZGF0YSBhdCBhbGwsIGFuZCBoYXMgbm8gaXRlcmF0aW9uIGNvdW50LAorCSAqIHJlcGVhdCBpdCBhcyBuZWNlc3NhcnkuCisJICoKKwkgKiBJZiByZXAgY291bnQgaXMgZ3JlYXRlciB0aGFuIDEsIG5vIHRyYWlsaW5nIHdoaXRlc3BhY2UKKwkgKiBnZXRzIG91dHB1dCBmcm9tIHRoZSBsYXN0IGl0ZXJhdGlvbiBvZiB0aGUgZm9ybWF0IHVuaXQuCisJICovCisJZm9yIChmdSA9IGZzLT5uZXh0ZnU7IGZ1OyBmdSA9IGZ1LT5uZXh0ZnUpIHsKKwkJaWYgKCFmdS0+bmV4dGZ1ICYmIGZzLT5iY250IDwgYmxvY2tzaXplICYmCisJCSAgICAhKGZ1LT5mbGFncyZGX1NFVFJFUCkgJiYgZnUtPmJjbnQpCisJCQlmdS0+cmVwcyArPSAoYmxvY2tzaXplIC0gZnMtPmJjbnQpIC8gZnUtPmJjbnQ7CisJCWlmIChmdS0+cmVwcyA+IDEpIHsKKwkJCWZvciAocHIgPSBmdS0+bmV4dHByOzsgcHIgPSBwci0+bmV4dHByKQorCQkJCWlmICghcHItPm5leHRwcikKKwkJCQkJYnJlYWs7CisJCQlmb3IgKHAxID0gcHItPmZtdCwgcDIgPSBOVUxMOyAqcDE7ICsrcDEpCisJCQkJcDIgPSBpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKSpwMSkgPyBwMSA6IE5VTEw7CisJCQlpZiAocDIpCisJCQkJcHItPm5vc3BhY2UgPSBwMjsKKwkJfQorCX0KK30KKworCitzdGF0aWMgdm9pZCBlc2NhcGUoY2hhciAqcDEpCit7CisJY2hhciAqcDI7CisKKwkvKiBhbHBoYWJldGljIGVzY2FwZSBzZXF1ZW5jZXMgaGF2ZSB0byBiZSBkb25lIGluIHBsYWNlICovCisJZm9yIChwMiA9IHAxOzsgKytwMSwgKytwMikgeworCQlpZiAoISpwMSkgeworCQkJKnAyID0gKnAxOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKCpwMSA9PSAnXFwnKQorCQkJc3dpdGNoKCorK3AxKSB7CisJCQljYXNlICdhJzoKKwkJCSAgICAgLyogKnAyID0gJ1xhJzsgKi8KKwkJCQkqcDIgPSAnXDAwNyc7CisJCQkJYnJlYWs7CisJCQljYXNlICdiJzoKKwkJCQkqcDIgPSAnXGInOworCQkJCWJyZWFrOworCQkJY2FzZSAnZic6CisJCQkJKnAyID0gJ1xmJzsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ24nOgorCQkJCSpwMiA9ICdcbic7CisJCQkJYnJlYWs7CisJCQljYXNlICdyJzoKKwkJCQkqcDIgPSAnXHInOworCQkJCWJyZWFrOworCQkJY2FzZSAndCc6CisJCQkJKnAyID0gJ1x0JzsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ3YnOgorCQkJCSpwMiA9ICdcdic7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCSpwMiA9ICpwMTsKKwkJCQlicmVhazsKKwkJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIGJhZGNudChjb25zdCBjaGFyICpzKQoreworCSh2b2lkKWZwcmludGYoc3RkZXJyLAorCSAgICBfKCJoZXhkdW1wOiBiYWQgYnl0ZSBjb3VudCBmb3IgY29udmVyc2lvbiBjaGFyYWN0ZXIgJXMuXG4iKSwgcyk7CisJZXhpdCgxKTsKK30KKworc3RhdGljIHZvaWQgYmFkc2ZtdCh2b2lkKQoreworCSh2b2lkKWZwcmludGYoc3RkZXJyLAorCSAgICBfKCJoZXhkdW1wOiAlJXMgcmVxdWlyZXMgYSBwcmVjaXNpb24gb3IgYSBieXRlIGNvdW50LlxuIikpOworCWV4aXQoMSk7Cit9CisKK3N0YXRpYyB2b2lkIGJhZGZtdChjb25zdCBjaGFyICpmbXQpCit7CisJKHZvaWQpZnByaW50ZihzdGRlcnIsIF8oImhleGR1bXA6IGJhZCBmb3JtYXQgeyVzfVxuIiksIGZtdCk7CisJZXhpdCgxKTsKK30KKworc3RhdGljIHZvaWQgYmFkY29udihjb25zdCBjaGFyICpjaCkKK3sKKwkodm9pZClmcHJpbnRmKHN0ZGVyciwgXygiaGV4ZHVtcDogYmFkIGNvbnZlcnNpb24gY2hhcmFjdGVyICUlJXMuXG4iKSwgY2gpOworCWV4aXQoMSk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL3BnLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL3BnLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE4OTFjYQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvcGcuMQpAQCAtMCwwICsxLDIzNyBAQAorLlwiIEAoIylwZy4xCTEuNyAoZ3JpdHRlcikgNC8yNS8wMQorLlRIIFBHIDEgIjIwMDEtMDQtMjUiICJHdW5uYXIgUml0dGVyIiAiVXNlciBDb21tYW5kcyIKKy5TSCBOQU1FCitwZyBcLSBicm93c2UgcGFnZXdpc2UgdGhyb3VnaCB0ZXh0IGZpbGVzCisuU0ggU1lOT1BTSVMKKy5CIHBnCisuUkIgWyBcLVxmSW51bWJlclxmUCBdCisuUkIgWyBcLXAKKy5JUiBzdHJpbmcgXQorLlJCIFsgXC1jZWZucnMgXQorLlJCIFsgK1xmSWxpbmVcZlAgXQorLlJCIFsgKy9cZklwYXR0ZXJuXGZQLyBdCisuUkkgWyBmaWxlIC4uLl0KKy5TSCBERVNDUklQVElPTgorLkkgUGcKK2Rpc3BsYXlzIGEgdGV4dCBmaWxlIG9uIGEKKy5TTSBDUlQKK29uZSBzY3JlZW5mdWwgYXQgb25jZS4KK0FmdGVyIGVhY2ggcGFnZSwgYSBwcm9tcHQgaXMgZGlzcGxheWVkLiBUaGUgdXNlciBtYXkgdGhlbiBlaXRoZXIgcHJlc3MgdGhlCituZXdsaW5lIGtleSB0byB2aWV3IHRoZSBuZXh0IHBhZ2Ugb3Igb25lIG9mIHRoZSBrZXlzIGRlc2NyaWJlZCBiZWxvdy4KKy5QUAorSWYgbm8gZmlsZW5hbWUgaXMgZ2l2ZW4gb24gdGhlIGNvbW1hbmQgbGluZSwKKy5JIHBnCityZWFkcyBmcm9tIHN0YW5kYXJkIGlucHV0LgorSWYgdGhlIHN0YW5kYXJkIG91dHB1dCBpcyBub3QgYSB0ZXJtaW5hbCwKKy5JIHBnCithY3RzIGxpa2UKKy5JUiBjYXQgKDEpCitidXQgcHJlY2VkZXMgZWFjaCBmaWxlIHdpdGggaXRzIG5hbWUgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZS4KKy5QUAorSWYgaW5wdXQgY29tZXMgZnJvbSBhIHBpcGUsCisuSSBwZworc3RvcmVzIHRoZSBkYXRhIGluIGEgYnVmZmVyIGZpbGUgd2hpbGUgcmVhZGluZwordG8gbWFrZSBuYXZpZ2F0aW9uIHBvc3NpYmxlLgorLlNIIE9QVElPTlMKKy5JIFBnCithY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKy5UUAorLkJJIFwtIG51bWJlcgorVGhlIG51bWJlciBvZiBsaW5lcyBwZXIgcGFnZS4gVXN1YWxseSwgdGhpcyBpcyB0aGUgbnVtYmVyIG9mCisuU00gQ1JUCitsaW5lcworbWludXMgb25lLgorLlRQCisuQiBcLWMKK0NsZWFyIHRoZSBzY3JlZW4gYmVmb3JlIGEgcGFnZSBpcyBkaXNwbGF5ZWQKK2lmIHRoZSB0ZXJtaW5mbyBlbnRyeSBmb3IgdGhlIHRlcm1pbmFsIHByb3ZpZGVzIHRoaXMgY2FwYWJpbGl0eS4KKy5UUAorLkIgXC1lCisuSSBwZword2lsbCBub3QgcGF1c2UgYW5kIGRpc3BsYXkKKy5TTSAoRU9GKQorYXQgdGhlIGVuZCBvZiBhIGZpbGUuCisuVFAKKy5CIFwtZgorLkkgcGcKK2RvZXMgbm90IHNwbGl0IGxvbmcgbGluZXMuCisuVFAKKy5CIFwtbgorV2l0aG91dCB0aGlzIG9wdGlvbiwgY29tbWFuZHMgbXVzdCBiZSB0ZXJtaW5hdGVkIGJ5IGEgbmV3bGluZSBjaGFyYWN0ZXIuIFdpdGgKK3RoaXMgb3B0aW9uLAorLkkgcGcKK2FkdmFuY2VzIG9uY2UgYSBjb21tYW5kIGxldHRlciBpcyBlbnRlcmVkLgorLlRQCisuQkkgXC1wIFwgc3RyaW5nCitJbnN0ZWFkIG9mIHRoZSBwcm9tcHQKKy5JICIgOiIKKywKKy5JIHN0cmluZworaXMgZGlzcGxheWVkLgorSWYKKy5JIHN0cmluZworY29udGFpbnMKKy5JICVkCissIGl0cyBmaXJzdCBvY2N1cnJlbmNlIGlzIHJlcGxhY2VkIGJ5IHRoZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFnZS4KKy5UUAorLkIgXC1yCitEaXNhbGxvdyB0aGUgc2hlbGwgZXNjYXBlLgorLlRQCisuQiBcLXMKK1ByaW50IG1lc3NhZ2VzIGluCisuSSBzdGFuZG91dAorbW9kZQoraWYgdGhlIHRlcm1pbmZvIGVudHJ5IGZvciB0aGUgdGVybWluYWwgcHJvdmlkZXMgdGhpcyBjYXBhYmlsaXR5LgorLlRQCisuQkkgKyBudW1iZXIKK1N0YXJ0IGF0IHRoZSBnaXZlbiBsaW5lLgorLlRQCisuQkkgKy8gcGF0dGVybiAvCitTdGFydCBhdCB0aGUgbGluZSBjb250YWluaW5nIHRoZSBCYXNpYyBSZWd1bGFyIEV4cHJlc3Npb24KKy5JIHBhdHRlcm4KK2dpdmVuLgorLlNIIFVTQUdFCitUaGUgZm9sbG93aW5nIGNvbW1hbmRzIG1heSBiZSBlbnRlcmVkIGF0IHRoZSBwcm9tcHQuIENvbW1hbmRzIHByZWNlZGVkIGJ5CisuSSBpCitpbiB0aGlzIGRvY3VtZW50IGFjY2VwdCBhIG51bWJlciBhcyBhcmd1bWVudCwgcG9zaXRpdmUgb3IgbmVnYXRpdmUuCitJZiB0aGlzIGFyZ3VtZW50IHN0YXJ0cyB3aXRoCisuSSArCitvcgorLkkgXC0sCitpdCBpcyBpbnRlcnByZXRlZCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaW5wdXQgZmlsZSwKK290aGVyd2lzZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nLgorLlRQCisuSUIgaSA8bmV3bGluZT4KK0Rpc3BsYXkgdGhlIG5leHQgb3IgdGhlIGluZGljYXRlZCBwYWdlLgorLlRQCitcZklpXGZSXGZCZFxmUiBvciBcZkJeRFxmUgorRGlzcGxheSB0aGUgbmV4dCBoYWxmcGFnZS4gSWYKKy5JIGkKK2lzIGdpdmVuLCBpdCBpcyBhbHdheXMgaW50ZXJwcmV0ZWQgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24uCisuVFAKKy5JQiBpIGwKK0Rpc3BsYXkgdGhlIG5leHQgb3IgdGhlIGluZGljYXRlZCBsaW5lLgorLlRQCisuSUIgaSBmCitTa2lwIGEgcGFnZSBmb3J3YXJkLgorLkkgaQorbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBhbmQgaXMgYWx3YXlzIGludGVycHJldGVkIHJlbGF0aXZlCit0byB0aGUgY3VycmVudCBwb3NpdGlvbi4KKy5UUAorXGZJaVxmUlxmQndcZlIgb3IgXGZJaVxmUlxmQnpcZlIKK0JlaGF2ZSBhcworLkkgPG5ld2xpbmU+CitleGNlcHQgdGhhdAorLkkgaQorYmVjb21lcyB0aGUgbmV3IHBhZ2Ugc2l6ZS4KKy5UUAorLkJSIC4gIiBvciAiIF5MCitSZWRyYXcgdGhlIHNjcmVlbi4KKy5UUAorLkIgJAorQWR2YW5jZSB0byB0aGUgbGFzdCBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLgorLlRQCisuSUIgaSAvIHBhdHRlcm4gLworU2VhcmNoIGZvcndhcmQgdW50aWwgdGhlIGZpcnN0IG9yIHRoZSBcZklpXGZSLXRoCitvY2N1cnJlbmNlIG9mIHRoZSBCYXNpYyBSZWd1bGFyIEV4cHJlc3Npb24KKy5JIHBhdHRlcm4KK2lzIGZvdW5kLiBUaGUgc2VhcmNoIHN0YXJ0cworYWZ0ZXIgdGhlIGN1cnJlbnQgcGFnZSBhbmQgc3RvcHMgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4gTm8gd3JhcC1hcm91bmQgaXMKK3BlcmZvcm1lZC4KKy5JIGkKK211c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIuCisuVFAKK1xmSWlcZlJcZkI/XGZSXGZJcGF0dGVyblxmUlxmQj9cZlIgb3IgXGZJaVxmUlxmQl5cZlJcZklwYXR0ZXJuXGZSXGZCXlxmUgorU2VhcmNoIGJhY2t3YXJkIHVudGlsIHRoZSBmaXJzdCBvciB0aGUgXGZJaVxmUi10aAorb2NjdXJyZW5jZSBvZiB0aGUgQmFzaWMgUmVndWxhciBFeHByZXNzaW9uCisuSSBwYXR0ZXJuCitpcyBmb3VuZC4gVGhlIHNlYXJjaCBzdGFydHMKK2JlZm9yZSB0aGUgY3VycmVudCBwYWdlIGFuZCBzdG9wcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlLgorTm8gd3JhcC1hcm91bmQgaXMgcGVyZm9ybWVkLgorLkkgaQorbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlci4KKy5QUAorVGhlIHNlYXJjaCBjb21tYW5kcyBhY2NlcHQgYW4gYWRkZWQgbGV0dGVyLiBJZgorLkIgdAoraXMgZ2l2ZW4sIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIHBhdHRlcm4gaXMgZGlzcGxheWVkIGF0IHRoZSB0b3Agb2YgdGhlCitzY3JlZW4sIHdoaWNoIGlzIHRoZSBkZWZhdWx0LgorLkIgbQorc2VsZWN0cyB0aGUgbWlkZGxlIGFuZAorLkIgYgordGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLgorVGhlIHNlbGVjdGVkIHBvc2l0aW9uIGlzIHVzZWQgaW4gZm9sbG93aW5nIHNlYXJjaGVzLCB0b28uCisuVFAKKy5JQiBpIG4KK0FkdmFuY2UgdG8gdGhlIG5leHQgZmlsZSBvcgorLkkgaQorZmlsZXMgZm9yd2FyZC4KKy5UUAorLklCIGkgcAorUmVyZWFkIHRoZSBwcmV2aW91cyBmaWxlIG9yCisuSSBpCitmaWxlcyBiYWNrd2FyZC4KKy5UUAorLkJJIHMgXCBmaWxlbmFtZQorU2F2ZSB0aGUgY3VycmVudCBmaWxlIHRvIHRoZSBnaXZlbgorLkkgZmlsZW5hbWUuCisuVFAKKy5CIGgKK0Rpc3BsYXkgYSBjb21tYW5kIHN1bW1hcnkuCisuVFAKKy5CSSAhIGNvbW1hbmQKK0V4ZWN1dGUKKy5JIGNvbW1hbmQKK3VzaW5nIHRoZSBzaGVsbC4KKy5UUAorLkJSIHEgIiBvciAiIFEKK1F1aXQuCisuUFAKK0lmIHRoZSB1c2VyIHByZXNzZXMgdGhlIGludGVycnVwdCBvciBxdWl0IGtleSB3aGlsZQorLkkgcGcKK3JlYWRzIGZyb20gdGhlCitpbnB1dCBmaWxlIG9yIHdyaXRlcyBvbiB0aGUgdGVybWluYWwsCisuSSBwZword2lsbCBpbW1lZGlhdGVseSBkaXNwbGF5IHRoZSBwcm9tcHQuCitJbiBhbGwgb3RoZXIgc2l0dWF0aW9ucyB0aGVzZSBrZXlzIHdpbGwgdGVybWluYXRlCisuSSBwZy4KKy5TSCAiRU5WSVJPTk1FTlQgVkFSSUFCTEVTIgorVGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMKK2FmZmVjdCB0aGUgYmVoYXZpb3VyIG9mCisuSSBwZzoKKy5UUAorLkIgQ09MVU1OUworT3ZlcnJpZGVzIHRoZSBzeXN0ZW0tc3VwcGxpZWQgbnVtYmVyIG9mIGNvbHVtbnMgaWYgc2V0LgorLlRQCisuQlIgTEFORyAsXCAgTENfQUxMICxcICBMQ19DT0xMQVRFICxcICBMQ19DVFlQRSAsXCAgTENfTUVTU0FHRVMKK1NlZQorLklSIGxvY2FsZSAoNykuCisuVFAKKy5CIExJTkVTCitPdmVycmlkZXMgdGhlIHN5c3RlbS1zdXBwbGllZCBudW1iZXIgb2YgbGluZXMgaWYgc2V0LgorLlRQCisuQiBTSEVMTAorVXNlZCBieSB0aGUKKy5CICEKK2NvbW1hbmQuCisuVFAKKy5CIFRFUk0KK0RldGVybWluZXMgdGhlIHRlcm1pbmFsIHR5cGUuCisuU0ggIlNFRSBBTFNPIgorLkJSIGNhdCAoMSksCisuQlIgbW9yZSAoMSksCisuQlIgc2ggKDEpLAorLkJSIHRlcm1pbmZvICg1KSwKKy5CUiBsb2NhbGUgKDcpLAorLkJSIHJlZ2V4ICg3KSwKKy5CUiB0ZXJtICg3KQorLlNIIE5PVEVTCisuSSBwZworZXhwZWN0cyB0aGUgdGVybWluYWwgdGFidWxhdG9ycyB0byBzZXQgb24gZWlnaHQgcG9zaXRpb25zLgorLlBQCitGaWxlcyB0aGF0IGluY2x1ZGUKKy5TTSBOVUwKK2NoYXJhY3RlcnMgY2Fubm90IGJlIGRpc3BsYXllZCBieQorLklSIHBnIC4KKy5TSCBBVkFJTEFCSUxJVFkKK1RoZSBwZyBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvcGcuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvcGcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGMxMjIxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9wZy5jCkBAIC0wLDAgKzEsMTc3MSBAQAorLyoKKyAqIHBnICAtIEEgY2xvbmUgb2YgdGhlIFN5c3RlbSBWIENSVCBwYWdpbmcgdXRpbGl0eS4KKyAqCisgKglDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMSBHdW5uYXIgUml0dGVyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gW2RlbGV0ZWRdCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIEd1bm5hciBSaXR0ZXIgbm9yIHRoZSBuYW1lcyBvZiBoaXMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR1VOTkFSIFJJVFRFUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR1VOTkFSIFJJVFRFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKy8qIFNjY3NpZCBAKCMpcGcuYyAxLjQ0IChncml0dGVyKSAyLzgvMDIgLSBtb2RpZmllZCBmb3IgdXRpbC1saW51eCAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2lmbmRlZglUSU9DR1dJTlNaCisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzeXMvdGVybWlvcy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8cmVnZXguaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzZXRqbXAuaD4KKyNpbmNsdWRlIDxsaWJnZW4uaD4KKworI2lmZGVmIEhBVkVfTkNVUlNFU19ICisjaW5jbHVkZSA8bmN1cnNlcy5oPgorI2VsaWYgZGVmaW5lZChIQVZFX05DVVJTRVNfTkNVUlNFU19IKQorI2luY2x1ZGUgPG5jdXJzZXMvbmN1cnNlcy5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDx0ZXJtLmg+CisKKyNpbmNsdWRlICJubHMuaCIKKyNpbmNsdWRlICJ3aWRlY2hhci5oIgorCisjZGVmaW5lCVJFQURCVUYJCUxJTkVfTUFYCS8qIHNpemUgb2YgaW5wdXQgYnVmZmVyICovCisjZGVmaW5lIENNREJVRgkJMjU1CQkvKiBzaXplIG9mIGNvbW1hbmQgYnVmZmVyICovCisjZGVmaW5lCVRBQlNJWkUJCTgJCS8qIHNwYWNlcyBjb25zdW1lZCBieSB0YWIgY2hhcmFjdGVyICovCisKKy8qCisgKiBBdm9pZCB0aGUgbWVzc2FnZSAiYHZhcicgbWlnaHQgYmUgY2xvYmJlcmVkIGJ5IGBsb25nam1wJyBvciBgdmZvcmsnIgorICovCisjZGVmaW5lCUNMT0JCR1JEKGEpCSh2b2lkKSgmKGEpKTsKKworI2RlZmluZQljdWMoYykJCSgoYykgJiAwMzc3KQorCitlbnVtIHsgRk9SV0FSRCA9IDEsIEJBQ0tXQVJEID0gMiB9OwkvKiBzZWFyY2ggZGlyZWN0aW9uICovCitlbnVtIHsgVE9QLCBNSURETEUsIEJPVFRPTSB9OwkJLyogcG9zaXRpb24gb2YgbWF0Y2hpbmcgbGluZSAqLworCisvKgorICogU3RhdGVzIGZvciBzeW50YXgtYXdhcmUgY29tbWFuZCBsaW5lIGVkaXRvci4KKyAqLworZW51bSB7CisJQ09VTlQsCisJU0lHTiwKKwlDTURfRklOLAorCVNFQVJDSCwKKwlTRUFSQ0hfRklOLAorCUFERE9OX0ZJTiwKKwlTVFJJTkcsCisJSU5WQUxJRAorfTsKKworLyoKKyAqIEN1cnJlbnQgY29tbWFuZAorICovCitzdHJ1Y3QgeworCWNoYXIgY21kbGluZVtDTURCVUZdOworCXNpemVfdCBjbWRsZW47CisJaW50IGNvdW50OworCWludCBrZXk7CisJY2hhciBwYXR0ZXJuW0NNREJVRl07CisJY2hhciBhZGRvbjsKK30gY21kOworCisvKgorICogUG9zaXRpb24gb2YgZmlsZSBhcmd1bWVudHMgb24gYXJndltdIHRvIG1haW4oKQorICovCitzdHJ1Y3QgeworCWludCBmaXJzdDsKKwlpbnQgY3VycmVudDsKKwlpbnQgbGFzdDsKK30gZmlsZXM7CisKK3ZvaWQJCSgqb2xkaW50KShpbnQpOwkJLyogb2xkIFNJR0lOVCBoYW5kbGVyICovCit2b2lkCQkoKm9sZHF1aXQpKGludCk7CS8qIG9sZCBTSUdRVUlUIGhhbmRsZXIgKi8KK3ZvaWQJCSgqb2xkdGVybSkoaW50KTsJLyogb2xkIFNJR1RFUk0gaGFuZGxlciAqLworY2hhcgkJKnR0eTsJCQkvKiByZXN1bHQgb2YgdHR5bmFtZSgxKSAqLworY2hhcgkJKnByb2duYW1lOwkJLyogcHJvZ3JhbSBuYW1lICovCit1bnNpZ25lZAlvbnR0eTsJCQkvKiB3aGV0aGVyIHJ1bm5pbmcgb24gdHR5IGRldmljZSAqLwordW5zaWduZWQJZXhpdHN0YXR1czsJCS8qIGV4aXQgc3RhdHVzICovCitpbnQJCXBhZ2VsZW4gPSAyMzsJCS8qIGxpbmVzIG9uIGEgc2luZ2xlIHNjcmVlbiBwYWdlICovCitpbnQJCXR0eWNvbHMgPSA3OTsJCS8qIHNjcmVlbiBjb2x1bW5zIChzdGFydGluZyBhdCAwKSAqLworc3RydWN0IHRlcm1pb3MJb3RpbzsJCQkvKiBvbGQgdGVybWlvcyBzZXR0aW5ncyAqLworaW50CQl0aW5mb3N0YXQgPSAtMTsJCS8qIHRlcm1pbmZvIHJvdXRpbmVzIGluaXRpYWxpemVkICovCitpbnQJCXNlYXJjaGRpc3BsYXkgPSBUT1A7CS8qIG1hdGNoaW5nIGxpbmUgcG9zaXRpb24gKi8KK3JlZ2V4X3QJCXJlOwkJCS8qIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBzZWFyY2ggZm9yICovCitpbnQJCXJlbWVtYmVyZWQ7CQkvKiBoYXZlIGEgcmVtZW1iZXJlZCBzZWFyY2ggc3RyaW5nICovCitpbnQJCWNmbGFnOwkJCS8qIGNsZWFyIHNjcmVlbiBiZWZvcmUgZWFjaCBwYWdlICovCitpbnQJCWVmbGFnOwkJCS8qIHN1cHByZXNzIChFT0YpICovCitpbnQJCWZmbGFnOwkJCS8qIGRvIG5vdCBzcGxpdCBsaW5lcyAqLworaW50CQluZmxhZzsJCQkvKiBubyBuZXdsaW5lIGZvciBjb21tYW5kcyByZXF1aXJlZCAqLworaW50CQlyZmxhZzsJCQkvKiAicmVzdHJpY3RlZCIgcGcgKi8KK2ludAkJc2ZsYWc7CQkJLyogdXNlIHN0YW5kb3V0IG1vZGUgKi8KK2NoYXIJCSpwc3RyaW5nID0gIjoiOwkJLyogcHJvbXB0IHN0cmluZyAqLworY2hhcgkJKnNlYXJjaGZvcjsJCS8qIHNlYXJjaCBwYXR0ZXJuIGZyb20gYXJndltdICovCitpbnQJCWhhdmVwYWdlbGVuOwkJLyogcGFnZSBsZW5ndGggaXMgbWFudWFsbHkgZGVmaW5lZCAqLworbG9uZwkJc3RhcnRsaW5lOwkJLyogc3RhcnQgbGluZSBmcm9tIGFyZ3ZbXSAqLworaW50CQluZXh0ZmlsZSA9IDE7CQkvKiBmaWxlcyB0byBhZHZhbmNlICovCitqbXBfYnVmCQlqbXBlbnY7CQkJLyoganVtcCBmcm9tIHNpZ25hbCBoYW5kbGVycyAqLworaW50CQljYW5qdW1wOwkJLyogam1wZW52IGlzIHZhbGlkICovCit3Y2hhcl90CQl3YnVmW1JFQURCVUZdOwkJLyogdXNlZCBpbiBzZXZlcmFsIHdpZGVjaGFyIHJvdXRpbmVzICovCisKK2NvbnN0IGNoYXIgKmNvcHlyaWdodCA9CisiQCgjKXBnIDEuNDQgMi84LzAyLiBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMSBHdW5uYXIgUml0dGVyLiAiOworY29uc3QgY2hhciAqaGVscHNjcmVlbiA9IE5fKCJBbGwgcmlnaHRzIHJlc2VydmVkLlxuXAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXAorICBoICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNjcmVlblxuXAorICBxIG9yIFEgICAgICAgICAgICAgICAgICBxdWl0IHByb2dyYW1cblwKKyAgPG5ld2xpbmU+ICAgICAgICAgICAgICAgbmV4dCBwYWdlXG5cCisgIGYgICAgICAgICAgICAgICAgICAgICAgIHNraXAgYSBwYWdlIGZvcndhcmRcblwKKyAgZCBvciBeRCAgICAgICAgICAgICAgICAgbmV4dCBoYWxmcGFnZVxuXAorICBsICAgICAgICAgICAgICAgICAgICAgICBuZXh0IGxpbmVcblwKKyAgJCAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBwYWdlXG5cCisgIC9yZWdleC8gICAgICAgICAgICAgICAgIHNlYXJjaCBmb3J3YXJkIGZvciByZWdleFxuXAorICA/cmVnZXg/IG9yIF5yZWdleF4gICAgICBzZWFyY2ggYmFja3dhcmQgZm9yIHJlZ2V4XG5cCisgIC4gb3IgXkwgICAgICAgICAgICAgICAgIHJlZHJhdyBzY3JlZW5cblwKKyAgdyBvciB6ICAgICAgICAgICAgICAgICAgc2V0IHBhZ2Ugc2l6ZSBhbmQgZ28gdG8gbmV4dCBwYWdlXG5cCisgIHMgZmlsZW5hbWUgICAgICAgICAgICAgIHNhdmUgY3VycmVudCBmaWxlIHRvIGZpbGVuYW1lXG5cCisgICFjb21tYW5kICAgICAgICAgICAgICAgIHNoZWxsIGVzY2FwZVxuXAorICBwICAgICAgICAgICAgICAgICAgICAgICBnbyB0byBwcmV2aW91cyBmaWxlXG5cCisgIG4gICAgICAgICAgICAgICAgICAgICAgIGdvIHRvIG5leHQgZmlsZVxuXAorXG5cCitNYW55IGNvbW1hbmRzIGFjY2VwdCBwcmVjZWRpbmcgbnVtYmVycywgZm9yIGV4YW1wbGU6XG5cCisrMTxuZXdsaW5lPiAobmV4dCBwYWdlKTsgLTE8bmV3bGluZT4gKHByZXZpb3VzIHBhZ2UpOyAxPG5ld2xpbmU+IChmaXJzdCBwYWdlKS5cblwKK1xuXAorU2VlIHBnKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CisKKyNpZm5kZWYgSEFWRV9GU0VFS08KKyAgc3RhdGljIGludCBmc2Vla28oRklMRSAqZiwgb2ZmX3Qgb2ZmLCBpbnQgd2hlbmNlKSB7CisJcmV0dXJuIGZzZWVrKGYsIChsb25nKSBvZmYsIHdoZW5jZSk7CisgIH0KKyAgc3RhdGljIG9mZl90IGZ0ZWxsbyhGSUxFICpmKSB7CisJcmV0dXJuIChvZmZfdCkgZnRlbGwoZik7CisgIH0KKyNlbmRpZgorCisjaWZkZWYgVVNFX1NJR1NFVAkvKiBuZXZlciBkZWZpbmVkICovCisvKiBzaWdzZXQgYW5kIHNpZ3JlbHNlIGFyZSBvYnNvbGV0ZSAtIHVzZSB3aGVuIFBPU0lYIHN0dWZmIGlzIHVuYXZhaWxhYmxlICovCisjZGVmaW5lIG15X3NpZ3NldAlzaWdzZXQKKyNkZWZpbmUgbXlfc2lncmVsc2UJc2lncmVsc2UKKyNlbHNlCitzdGF0aWMgaW50IG15X3NpZ3JlbHNlKGludCBzaWcpIHsKKwlzaWdzZXRfdCBzaWdzOworCisJaWYgKHNpZ2VtcHR5c2V0KCZzaWdzKSB8fCBzaWdhZGRzZXQoJnNpZ3MsIHNpZykpCisJCXJldHVybiAtMTsKKwlyZXR1cm4gc2lncHJvY21hc2soU0lHX1VOQkxPQ0ssICZzaWdzLCBOVUxMKTsKK30KK3R5cGVkZWYgdm9pZCAoKm15X3NpZ2hhbmRsZXJfdCkoaW50KTsKK3N0YXRpYyBteV9zaWdoYW5kbGVyX3QgbXlfc2lnc2V0KGludCBzaWcsIG15X3NpZ2hhbmRsZXJfdCBkaXNwKSB7CisJc3RydWN0IHNpZ2FjdGlvbiBhY3QsIG9hY3Q7CisKKwlhY3Quc2FfaGFuZGxlciA9IGRpc3A7CisJaWYgKHNpZ2VtcHR5c2V0KCZhY3Quc2FfbWFzaykpCisJCXJldHVybiBTSUdfRVJSOworCWFjdC5zYV9mbGFncyA9IDA7CisJaWYgKHNpZ2FjdGlvbihzaWcsICZhY3QsICZvYWN0KSkKKwkJcmV0dXJuIFNJR19FUlI7CisJaWYgKG15X3NpZ3JlbHNlKHNpZykpCisJCXJldHVybiBTSUdfRVJSOworCXJldHVybiBvYWN0LnNhX2hhbmRsZXI7Cit9CisjZW5kaWYKKworLyoKKyAqIFF1aXQgcGcuCisgKi8KK3N0YXRpYyB2b2lkCitxdWl0KGludCBzdGF0dXMpCit7CisJZXhpdChzdGF0dXMgPCAwMTAwID8gc3RhdHVzIDogMDc3KTsKK30KKworLyoKKyAqIE1lbW9yeSBhbGxvY2F0b3IgaW5jbHVkaW5nIGNoZWNrLgorICovCitzdGF0aWMgY2hhciAqCitzbWFsbG9jKHNpemVfdCBzKQoreworICAgICAgICBjaGFyICptID0gKGNoYXIgKiltYWxsb2Mocyk7CisgICAgICAgIGlmIChtID09IE5VTEwpIHsKKwkJY29uc3QgY2hhciAqcCA9IF8oIk91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgICAgIHdyaXRlKDIsIHAsIHN0cmxlbihwKSk7CisgICAgICAgICAgICAgICAgcXVpdCgrK2V4aXRzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtOworfQorCisvKgorICogVXNhZ2UgbWVzc2FnZSBhbmQgc2ltaWxhciByb3V0aW5lcy4KKyAqLworc3RhdGljIHZvaWQKK3VzYWdlKHZvaWQpCit7CisJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBVc2FnZTogJXMgWy1udW1iZXJdIFstcCBzdHJpbmddIFstY2VmbnJzXSAiCisJCQkgICJbK2xpbmVdIFsrL3BhdHRlcm4vXSBbZmlsZXNdXG4iKSwKKwkJCXByb2duYW1lLCBwcm9nbmFtZSk7CisJcXVpdCgyKTsKK30KKworc3RhdGljIHZvaWQKK25lZWRhcmcoY2hhciAqcykKK3sKKwlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCAtLSAlc1xuIiksCisJCXByb2duYW1lLCBzKTsKKwl1c2FnZSgpOworfQorCitzdGF0aWMgdm9pZAoraW52b3B0KGNoYXIgKnMpCit7CisJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBpbGxlZ2FsIG9wdGlvbiAtLSAlc1xuIiksIHByb2duYW1lLCBzKTsKKwl1c2FnZSgpOworfQorCisjaWZkZWYgSEFWRV9XSURFQ0hBUgorLyoKKyAqIEEgbWJzdG93Y3MoKS1hbGlrZSBmdW5jdGlvbiB0aGF0IHRyYW5zcGFyZW50bHkgaGFuZGxlcyBpbnZhbGlkIHNlcXVlbmNlcy4KKyAqLworc3RhdGljIHNpemVfdAoreG1ic3Rvd2NzKHdjaGFyX3QgKnB3Y3MsIGNvbnN0IGNoYXIgKnMsIHNpemVfdCBud2NzKQoreworCXNpemVfdCBuID0gbndjczsKKwlpbnQgYzsKKworCW1idG93Yyhwd2NzLCBOVUxMLCBNQl9DVVJfTUFYKTsKKwl3aGlsZSAoKnMgJiYgbikgeworCQlpZiAoKGMgPSBtYnRvd2MocHdjcywgcywgTUJfQ1VSX01BWCkpIDwgMCkgeworCQkJcysrOworCQkJKnB3Y3MgPSBMJz8nOworCQl9IGVsc2UKKwkJCXMgKz0gYzsKKwkJcHdjcysrOworCQluLS07CisJfQorCWlmIChuKQorCQkqcHdjcyA9IEwnXDAnOworCW1idG93Yyhwd2NzLCBOVUxMLCBNQl9DVVJfTUFYKTsKKwlyZXR1cm4gbndjcyAtIG47Cit9CisjZW5kaWYKKworLyoKKyAqIEhlbHBlciBmdW5jdGlvbiBmb3IgdHB1dHMoKS4KKyAqLworc3RhdGljIGludAorb3V0Y2FwKGludCBpKQoreworCWNoYXIgYyA9IGk7CisJcmV0dXJuIHdyaXRlKDEsICZjLCAxKTsKK30KKworLyoKKyAqIFdyaXRlIG1lc3NhZ2VzIHRvIHRlcm1pbmFsLgorICovCitzdGF0aWMgdm9pZAorbWVzZyhjaGFyICptZXNzYWdlKQoreworCWlmIChvbnR0eSA9PSAwKQorCQlyZXR1cm47CisJaWYgKCptZXNzYWdlICE9ICdcbicgJiYgc2ZsYWcpCisJCXZpZHB1dHMoQV9TVEFORE9VVCwgb3V0Y2FwKTsKKwl3cml0ZSgxLCBtZXNzYWdlLCBzdHJsZW4obWVzc2FnZSkpOworCWlmICgqbWVzc2FnZSAhPSAnXG4nICYmIHNmbGFnKQorCQl2aWRwdXRzKEFfTk9STUFMLCBvdXRjYXApOworfQorCisvKgorICogR2V0IHRoZSB3aW5kb3cgc2l6ZS4KKyAqLworc3RhdGljIHZvaWQKK2dldHdpbnNpemUodm9pZCkKK3sKKwlzdGF0aWMgaW50IGluaXRpYWxpemVkLCBlbnZsaW5lcywgZW52Y29scywgZGVmbGluZXMsIGRlZmNvbHM7CisjaWZkZWYJVElPQ0dXSU5TWgorCXN0cnVjdCB3aW5zaXplIHdpbnN6OworCWludCBiYWRpb2N0bDsKKyNlbmRpZgorCWNoYXIgKnA7CisKKwlpZiAoaW5pdGlhbGl6ZWQgPT0gMCkgeworCQlpZiAoKHAgPSBnZXRlbnYoIkxJTkVTIikpICE9IE5VTEwgJiYgKnAgIT0gJ1wwJykKKwkJCWlmICgoZW52bGluZXMgPSBhdG9pKHApKSA8IDApCisJCQkJZW52bGluZXMgPSAwOworCQlpZiAoKHAgPSBnZXRlbnYoIkNPTFVNTlMiKSkgIT0gTlVMTCAmJiAqcCAhPSAnXDAnKQorCQkJaWYgKChlbnZjb2xzID0gYXRvaShwKSkgPCAwKQorCQkJCWVudmNvbHMgPSAwOworCQkvKiB0ZXJtaW5mbyB2YWx1ZXMuICovCisJCWlmICh0aW5mb3N0YXQgIT0gMSB8fCBjb2x1bW5zID09IDApCisJCQlkZWZjb2xzID0gMjQ7CisJCWVsc2UKKwkJCWRlZmNvbHMgPSBjb2x1bW5zOworCQlpZiAodGluZm9zdGF0ICE9IDEgfHwgbGluZXMgPT0gMCkKKwkJCWRlZmxpbmVzID0gODA7CisJCWVsc2UKKwkJCWRlZmxpbmVzID0gbGluZXM7CisJCWluaXRpYWxpemVkID0gMTsKKwl9CisjaWZkZWYJVElPQ0dXSU5TWgorCWJhZGlvY3RsID0gaW9jdGwoMSwgVElPQ0dXSU5TWiwgJndpbnN6KTsKKyNlbmRpZgorCWlmIChlbnZjb2xzKQorCQl0dHljb2xzID0gZW52Y29scyAtIDE7CisjaWZkZWYJVElPQ0dXSU5TWgorCWVsc2UgaWYgKCFiYWRpb2N0bCkKKwkJdHR5Y29scyA9IHdpbnN6LndzX2NvbCAtIDE7CisjZW5kaWYKKwllbHNlCisJCXR0eWNvbHMgPSBkZWZjb2xzIC0gMTsKKwlpZiAoaGF2ZXBhZ2VsZW4gPT0gMCkgeworCQlpZiAoZW52bGluZXMpCisJCQlwYWdlbGVuID0gZW52bGluZXMgLSAxOworI2lmZGVmCVRJT0NHV0lOU1oKKwkJZWxzZSBpZiAoIWJhZGlvY3RsKQorCQkJcGFnZWxlbiA9IHdpbnN6LndzX3JvdyAtIDE7CisjZW5kaWYKKwkJZWxzZQorCQkJcGFnZWxlbiA9IGRlZmxpbmVzIC0gMTsKKwl9Cit9CisKKy8qCisgKiBNZXNzYWdlIGlmIHNraXBwaW5nIHBhcnRzIG9mIGZpbGVzLgorICovCitzdGF0aWMgdm9pZAorc2tpcChpbnQgZGlyZWN0aW9uKQoreworCWlmIChkaXJlY3Rpb24gPiAwKQorCQltZXNnKF8oIi4uLnNraXBwaW5nIGZvcndhcmRcbiIpKTsKKwllbHNlCisJCW1lc2coXygiLi4uc2tpcHBpbmcgYmFja3dhcmRcbiIpKTsKK30KKworLyoKKyAqIFNpZ25hbCBoYW5kbGVyIHdoaWxlIHJlYWRpbmcgZnJvbSBpbnB1dCBmaWxlLgorICovCitzdGF0aWMgdm9pZAorc2lnaGFuZGxlcihpbnQgc2lnbnVtKQoreworCWlmIChjYW5qdW1wICYmIChzaWdudW0gPT0gU0lHSU5UIHx8IHNpZ251bSA9PSBTSUdRVUlUKSkKKwkJbG9uZ2ptcChqbXBlbnYsIHNpZ251bSk7CisJdGNzZXRhdHRyKDEsIFRDU0FEUkFJTiwgJm90aW8pOworCXF1aXQoZXhpdHN0YXR1cyk7Cit9CisKKy8qCisgKiBDaGVjayB3aGV0aGVyIHRoZSByZXF1ZXN0ZWQgZmlsZSB3YXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCisgKi8KK3N0YXRpYyBpbnQKK2NoZWNrZih2b2lkKQoreworCWlmIChmaWxlcy5jdXJyZW50ICsgbmV4dGZpbGUgPj0gZmlsZXMubGFzdCkgeworCQltZXNnKF8oIk5vIG5leHQgZmlsZSIpKTsKKwkJcmV0dXJuIDE7CisJfQorCWlmIChmaWxlcy5jdXJyZW50ICsgbmV4dGZpbGUgPCBmaWxlcy5maXJzdCkgeworCQltZXNnKF8oIk5vIHByZXZpb3VzIGZpbGUiKSk7CisJCXJldHVybiAxOworCX0KKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIEhBVkVfV0lERUNIQVIKKy8qCisgKiBSZXR1cm4gdGhlIGxhc3QgY2hhcmFjdGVyIHRoYXQgd2lsbCBmaXQgb24gdGhlIGxpbmUgYXQgY29sIGNvbHVtbnMKKyAqIGluIGNhc2UgTUJfQ1VSX01BWCA+IDEuCisgKi8KK3N0YXRpYyBjaGFyICoKK2VuZGxpbmVfZm9yX21iKHVuc2lnbmVkIGNvbCwgY2hhciAqcykKK3sKKwl1bnNpZ25lZCBwb3MgPSAwOworCXdjaGFyX3QgKnAgPSB3YnVmOworCXdjaGFyX3QgKmVuZDsKKwlzaXplX3Qgd2w7CisJY2hhciAqdCA9IHM7CisKKwlpZiAoKHdsID0geG1ic3Rvd2NzKHdidWYsIHQsIHNpemVvZiB3YnVmIC0gMSkpID09IChzaXplX3QpLTEpCisJCXJldHVybiBzICsgMTsKKwl3YnVmW3dsXSA9IEwnXDAnOworCXdoaWxlICgqcCAhPSBMJ1wwJykgeworCQlzd2l0Y2ggKCpwKSB7CisJCQkvKgorCQkJICogQ3Vyc29yIGxlZnQuCisJCQkgKi8KKwkJY2FzZSBMJ1xiJzoKKwkJCWlmIChwb3MgPiAwKQorCQkJCXBvcy0tOworCQkJYnJlYWs7CisJCQkvKgorCQkJICogTm8gY3Vyc29yIG1vdmVtZW50LgorCQkJICovCisJCWNhc2UgTCdcYSc6CisJCQlicmVhazsKKwkJCS8qCisJCQkgKiBTcGVjaWFsLgorCQkJICovCisJCWNhc2UgTCdccic6CisJCQlwb3MgPSAwOworCQkJYnJlYWs7CisJCWNhc2UgTCdcbic6CisJCQllbmQgPSBwICsgMTsKKwkJCWdvdG8gZW5kZWQ7CisJCQkvKgorCQkJICogQ3Vyc29yIHJpZ2h0LgorCQkJICovCisJCWNhc2UgTCdcdCc6CisJCQlwb3MgKz0gVEFCU0laRSAtIChwb3MgJSBUQUJTSVpFKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJaWYgKGlzd3ByaW50KCpwKSkKKwkJCQlwb3MgKz0gd2N3aWR0aCgqcCk7CisJCQllbHNlCisJCQkJcG9zICs9IHdjd2lkdGgoTCc/Jyk7CisJCX0KKwkJaWYgKHBvcyA+IGNvbCkgeworCQkJaWYgKCpwID09IEwnXHQnKQorCQkJCXArKzsKKwkJCWVsc2UgaWYgKHBvcyA+IGNvbCArIDEpCisJCQkJLyoKKwkJCQkgKiB3Y3dpZHRoKCkgZm91bmQgYSBjaGFyYWN0ZXIgdGhhdAorCQkJCSAqIGhhcyBtdWx0aXBsZSBjb2x1bW5zLiBXaGF0IGhhcHBlbnMKKwkJCQkgKiBub3c/IEFzc3VtZSB0aGUgdGVybWluYWwgd2lsbCBwcmludAorCQkJCSAqIHRoZSBlbnRpcmUgY2hhcmFjdGVyIG9udG8gdGhlIG5leHQKKwkJCQkgKiByb3cuCisJCQkJICovCisJCQkJcC0tOworCQkJaWYgKCorK3AgPT0gTCdcbicpCisJCQkJcCsrOworCQkJZW5kID0gcDsKKwkJCWdvdG8gZW5kZWQ7CisJCX0KKwkJcCsrOworCX0KKwllbmQgPSBwOworIGVuZGVkOgorCSplbmQgPSBMJ1wwJzsKKwlwID0gd2J1ZjsKKwlpZiAoKHBvcyA9IHdjc3RvbWJzKE5VTEwsIHAsIFJFQURCVUYpKSA9PSAtMSkKKwkJcmV0dXJuIHMgKyAxOworCXJldHVybiBzICsgcG9zOworfQorI2VuZGlmCisKKy8qCisgKiBSZXR1cm4gdGhlIGxhc3QgY2hhcmFjdGVyIHRoYXQgd2lsbCBmaXQgb24gdGhlIGxpbmUgYXQgY29sIGNvbHVtbnMuCisgKi8KK3N0YXRpYyBjaGFyICoKK2VuZGxpbmUodW5zaWduZWQgY29sLCBjaGFyICpzKQoreworCXVuc2lnbmVkIHBvcyA9IDA7CisJY2hhciAqdCA9IHM7CisKKyNpZmRlZiBIQVZFX1dJREVDSEFSCisJaWYgKE1CX0NVUl9NQVggPiAxKQorCQlyZXR1cm4gZW5kbGluZV9mb3JfbWIoY29sLCBzKTsKKyNlbmRpZgorCisJd2hpbGUgKCpzICE9ICdcMCcpIHsKKwkJc3dpdGNoICgqcykgeworCQkJLyoKKwkJCSAqIEN1cnNvciBsZWZ0LgorCQkJICovCisJCWNhc2UgJ1xiJzoKKwkJCWlmIChwb3MgPiAwKQorCQkJCXBvcy0tOworCQkJYnJlYWs7CisJCQkvKgorCQkJICogTm8gY3Vyc29yIG1vdmVtZW50LgorCQkJICovCisJCWNhc2UgJ1xhJzoKKwkJCWJyZWFrOworCQkJLyoKKwkJCSAqIFNwZWNpYWwuCisJCQkgKi8KKwkJY2FzZSAnXHInOgorCQkJcG9zID0gMDsKKwkJCWJyZWFrOworCQljYXNlICdcbic6CisJCQl0ID0gcyArIDE7CisJCQlnb3RvIGNlbmQ7CisJCQkvKgorCQkJICogQ3Vyc29yIHJpZ2h0LgorCQkJICovCisJCWNhc2UgJ1x0JzoKKwkJCXBvcyArPSBUQUJTSVpFIC0gKHBvcyAlIFRBQlNJWkUpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlwb3MrKzsKKwkJfQorCQlpZiAocG9zID4gY29sKSB7CisJCQlpZiAoKnMgPT0gJ1x0JykKKwkJCQlzKys7CisJCQlpZiAoKisrcyA9PSAnXG4nKQorCQkJCXMrKzsKKwkJCXQgPSBzOworCQkJZ290byBjZW5kOworCQl9CisJCXMrKzsKKwl9CisJdCA9IHM7CisgY2VuZDoKKwlyZXR1cm4gdDsKK30KKworLyoKKyAqIENsZWFyIHRoZSBjdXJyZW50IGxpbmUgb24gdGhlIHRlcm1pbmFsJ3Mgc2NyZWVuLgorICovCitzdGF0aWMgdm9pZAorY2xpbmUodm9pZCkKK3sKKwljaGFyICpidWYgPSAoY2hhciAqKXNtYWxsb2ModHR5Y29scyArIDIpOworCW1lbXNldChidWYsICcgJywgdHR5Y29scyArIDIpOworCWJ1ZlswXSA9ICdccic7CisJYnVmW3R0eWNvbHMgKyAxXSA9ICdccic7CisJd3JpdGUoMSwgYnVmLCB0dHljb2xzICsgMik7CisJZnJlZShidWYpOworfQorCisvKgorICogRXZhbHVhdGUgYSBjb21tYW5kIGNoYXJhY3RlcidzIHNlbWFudGljcy4KKyAqLworc3RhdGljIGludAorZ2V0c3RhdGUoaW50IGMpCit7CisJc3dpdGNoIChjKSB7CisJY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6IGNhc2UgJzUnOgorCWNhc2UgJzYnOiBjYXNlICc3JzogY2FzZSAnOCc6IGNhc2UgJzknOiBjYXNlICcwJzoKKwljYXNlICdcMCc6CisJCXJldHVybiBDT1VOVDsKKwljYXNlICctJzogY2FzZSAnKyc6CisJCXJldHVybiBTSUdOOworCWNhc2UgJ2wnOiBjYXNlICdkJzogY2FzZSAnXDAwNCc6IGNhc2UgJ2YnOiBjYXNlICd6JzoKKwljYXNlICcuJzogY2FzZSAnXDAxNCc6IGNhc2UgJyQnOiBjYXNlICduJzogY2FzZSAncCc6CisJY2FzZSAndyc6IGNhc2UgJ2gnOiBjYXNlICdxJzogY2FzZSAnUSc6CisJCXJldHVybiBDTURfRklOOworCWNhc2UgJy8nOiBjYXNlICc/JzogY2FzZSAnXic6CisJCXJldHVybiBTRUFSQ0g7CisJY2FzZSAncyc6IGNhc2UgJyEnOgorCQlyZXR1cm4gU1RSSU5HOworCWNhc2UgJ20nOiBjYXNlICdiJzogY2FzZSAndCc6CisJCXJldHVybiBBRERPTl9GSU47CisJZGVmYXVsdDoKKyNpZmRlZiBQR19CRUxMCisJCWlmIChiZWxsKQorCQkJdHB1dHMoYmVsbCwgMSwgb3V0Y2FwKTsKKyNlbmRpZiAgLyogIFBHX0JFTEwgICovCisJCXJldHVybiBJTlZBTElEOworCX0KK30KKworLyoKKyAqIEdldCB0aGUgY291bnQgYW5kIGlnbm9yZSBsYXN0IGNoYXJhY3RlciBvZiBzdHJpbmcuCisgKi8KK3N0YXRpYyBpbnQKK2dldGNvdW50KGNoYXIgKmNtZHN0cikKK3sKKwljaGFyICpidWY7CisJY2hhciAqcDsKKwlpbnQgaTsKKworCWlmICgqY21kc3RyID09ICdcMCcpCisJCXJldHVybiAxOworCWJ1ZiA9IChjaGFyICopc21hbGxvYyhzdHJsZW4oY21kc3RyKSArIDEpOworCXN0cmNweShidWYsIGNtZHN0cik7CisJaWYgKGNtZC5rZXkgIT0gJ1wwJykgeworCQlpZiAoY21kLmtleSA9PSAnLycgfHwgY21kLmtleSA9PSAnPycgfHwgY21kLmtleSA9PSAnXicpIHsKKwkJCWlmICgocCA9IHN0cmNocihidWYsIGNtZC5rZXkpKSAhPSBOVUxMKQorCQkJCSpwID0gJ1wwJzsKKwkJfSBlbHNlCisJCQkqKGJ1ZiArIHN0cmxlbihidWYpIC0gMSkgPSAnXDAnOworCX0KKwlpZiAoKmJ1ZiA9PSAnXDAnKQorCQlyZXR1cm4gMTsKKwlpZiAoYnVmWzBdID09ICctJyAmJiBidWZbMV0gPT0gJ1wwJykgeworCQlpID0gLTE7CisJfSBlbHNlIHsKKwkJaWYgKCpidWYgPT0gJysnKQorCQkJaSA9IGF0b2koYnVmICsgMSk7CisJCWVsc2UKKwkJCWkgPSBhdG9pKGJ1Zik7CisJfQorCWZyZWUoYnVmKTsKKwlyZXR1cm4gaTsKK30KKworLyoKKyAqIFJlYWQgd2hhdCB0aGUgdXNlciB3cml0ZXMgYXQgdGhlIHByb21wdC4gVGhpcyBpcyB0cmlja3kgYmVjYXVzZQorICogd2UgY2hlY2sgZm9yIHZhbGlkIGlucHV0LgorICovCitzdGF0aWMgdm9pZAorcHJvbXB0KGxvbmcgbG9uZyBwYWdlbm8pCit7CisJc3RydWN0IHRlcm1pb3MgdGlvOworCWNoYXIga2V5OworCWludCBzdGF0ZSA9IENPVU5UOworCWludCBlc2NhcGUgPSAwOworCWNoYXIgYltMSU5FX01BWF0sICpwOworCisJaWYgKHBhZ2VubyAhPSAtMSkgeworCQlpZiAoKHAgPSBzdHJzdHIocHN0cmluZywgIiVkIikpID09IE5VTEwpIHsKKwkJCW1lc2cocHN0cmluZyk7CisJCX0gZWxzZSB7CisJCQlzdHJjcHkoYiwgcHN0cmluZyk7CisJCQlzcHJpbnRmKGIgKyAocCAtIHBzdHJpbmcpLCAiJWxsZCIsIHBhZ2Vubyk7CisJCQlzdHJjYXQoYiwgcCArIDIpOworCQkJbWVzZyhiKTsKKwkJfQorCX0KKwljbWQua2V5ID0gY21kLmFkZG9uID0gY21kLmNtZGxpbmVbMF0gPSAnXDAnOworCWNtZC5jbWRsZW4gPSAwOworCXRjZ2V0YXR0cigxLCAmdGlvKTsKKwl0aW8uY19sZmxhZyAmPSB+KElDQU5PTiB8IEVDSE8pOworCXRpby5jX2NjW1ZNSU5dID0gMTsKKwl0aW8uY19jY1tWVElNRV0gPSAwOworCXRjc2V0YXR0cigxLCBUQ1NBRFJBSU4sICZ0aW8pOworCXRjZmx1c2goMSwgVENJRkxVU0gpOworCWZvciAoOzspIHsKKwkJc3dpdGNoIChyZWFkKDEsICZrZXksIDEpKSB7CisJCWNhc2UgMDogcXVpdCgwKTsKKwkJCS8qTk9UUkVBQ0hFRCovCisJCWNhc2UgLTE6IHF1aXQoMSk7CisJCX0KKwkJaWYgKGtleSA9PSB0aW8uY19jY1tWRVJBU0VdKSB7CisJCQlpZiAoY21kLmNtZGxlbikgeworCQkJCXdyaXRlKDEsICJcYiBcYiIsIDMpOworCQkJCWNtZC5jbWRsaW5lWy0tY21kLmNtZGxlbl0gPSAnXDAnOworCQkJCXN3aXRjaCAoc3RhdGUpIHsKKwkJCQljYXNlIEFERE9OX0ZJTjoKKwkJCQkJc3RhdGUgPSBTRUFSQ0hfRklOOworCQkJCQljbWQuYWRkb24gPSAnXDAnOworCQkJCQlicmVhazsKKwkJCQljYXNlIENNRF9GSU46CisJCQkJCWNtZC5rZXkgPSAnXDAnOworCQkJCQlzdGF0ZSA9IENPVU5UOworCQkJCQlicmVhazsKKwkJCQljYXNlIFNFQVJDSF9GSU46CisJCQkJCXN0YXRlID0gU0VBUkNIOworCQkJCQkvKkZBTExUSFJVKi8KKwkJCQljYXNlIFNFQVJDSDoKKwkJCQkJaWYgKGNtZC5jbWRsaW5lW2NtZC5jbWRsZW4gLSAxXQorCQkJCQkJCT09ICdcXCcpIHsKKwkJCQkJCWVzY2FwZSA9IDE7CisJCQkJCQl3aGlsZShjbWQuY21kbGluZVtjbWQuY21kbGVuCisJCQkJCQkJCS0gZXNjYXBlIC0gMV0KKwkJCQkJCQk9PSAnXFwnKSBlc2NhcGUrKzsKKwkJCQkJCWVzY2FwZSAlPSAyOworCQkJCQl9CisJCQkJCWVsc2UgeworCQkJCQkJZXNjYXBlID0gMDsKKwkJCQkJCWlmIChzdHJjaHIoY21kLmNtZGxpbmUsIGNtZC5rZXkpCisJCQkJCQkJPT0gTlVMTCkgeworCQkJCQkJCWNtZC5rZXkgPSAnXDAnOworCQkJCQkJCXN0YXRlID0gQ09VTlQ7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJaWYgKGNtZC5jbWRsZW4gPT0gMCkgeworCQkJCXN0YXRlID0gQ09VTlQ7CisJCQkJY21kLmtleSA9ICdcMCc7CisJCQl9CisJCQljb250aW51ZTsKKwkJfQorCQlpZiAoa2V5ID09IHRpby5jX2NjW1ZLSUxMXSkgeworCQkJY2xpbmUoKTsKKwkJCWNtZC5jbWRsZW4gPSAwOworCQkJY21kLmNtZGxpbmVbMF0gPSAnXDAnOworCQkJc3RhdGUgPSBDT1VOVDsKKwkJCWNtZC5rZXkgPSAnXDAnOworCQkJY29udGludWU7CisJCX0KKwkJaWYgKGtleSA9PSAnXG4nIHx8IChuZmxhZyAmJiBzdGF0ZSA9PSBDT1VOVCAmJiBrZXkgPT0gJyAnKSkKKwkJCWJyZWFrOworCQlpZiAoY21kLmNtZGxlbiA+PSBDTURCVUYgLSAxKQorCQkJY29udGludWU7CisJCXN3aXRjaCAoc3RhdGUpIHsKKwkJY2FzZSBTVFJJTkc6CisJCQlicmVhazsKKwkJY2FzZSBTRUFSQ0g6CisJCQlpZiAoIWVzY2FwZSkgeworCQkJCWlmIChrZXkgPT0gY21kLmtleSkKKwkJCQkJc3RhdGUgPSBTRUFSQ0hfRklOOworCQkJCWlmIChrZXkgPT0gJ1xcJykKKwkJCQkJZXNjYXBlID0gMTsKKwkJCX0gZWxzZQorCQkJCWVzY2FwZSA9IDA7CisJCQlicmVhazsKKwkJY2FzZSBTRUFSQ0hfRklOOgorCQkJaWYgKGdldHN0YXRlKGtleSkgIT0gQURET05fRklOKQorCQkJCWNvbnRpbnVlOworCQkJc3RhdGUgPSBBRERPTl9GSU47CisJCQljbWQuYWRkb24gPSBrZXk7CisJCQlzd2l0Y2ggKGtleSkgeworCQkJY2FzZSAndCc6CisJCQkJc2VhcmNoZGlzcGxheSA9IFRPUDsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ20nOgorCQkJCXNlYXJjaGRpc3BsYXkgPSBNSURETEU7CisJCQkJYnJlYWs7CisJCQljYXNlICdiJzoKKwkJCQlzZWFyY2hkaXNwbGF5ID0gQk9UVE9NOworCQkJCWJyZWFrOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgQ01EX0ZJTjoKKwkJY2FzZSBBRERPTl9GSU46CisJCQljb250aW51ZTsKKwkJZGVmYXVsdDoKKwkJCXN0YXRlID0gZ2V0c3RhdGUoa2V5KTsKKwkJCXN3aXRjaCAoc3RhdGUpIHsKKwkJCWNhc2UgU0lHTjoKKwkJCQlpZiAoY21kLmNtZGxlbiAhPSAwKSB7CisJCQkJCXN0YXRlID0gSU5WQUxJRDsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJCXN0YXRlID0gQ09VTlQ7CisJCQkJLypGQUxMVEhSVSovCisJCQljYXNlIENPVU5UOgorCQkJCWJyZWFrOworCQkJY2FzZSBBRERPTl9GSU46CisJCQljYXNlIElOVkFMSUQ6CisJCQkJY29udGludWU7CisJCQlkZWZhdWx0OgorCQkJCWNtZC5rZXkgPSBrZXk7CisJCQl9CisJCX0KKwkJd3JpdGUoMSwgJmtleSwgMSk7CisJCWNtZC5jbWRsaW5lW2NtZC5jbWRsZW4rK10gPSBrZXk7CisJCWNtZC5jbWRsaW5lW2NtZC5jbWRsZW5dID0gJ1wwJzsKKwkJaWYgKG5mbGFnICYmIHN0YXRlID09IENNRF9GSU4pCisJCQlnb3RvIGVuZHByb21wdDsKKwl9CitlbmRwcm9tcHQ6CisJdGNzZXRhdHRyKDEsIFRDU0FEUkFJTiwgJm90aW8pOworCWNsaW5lKCk7CisJY21kLmNvdW50ID0gZ2V0Y291bnQoY21kLmNtZGxpbmUpOworfQorCisjaWZkZWYgSEFWRV9XSURFQ0hBUgorLyoKKyAqIFJlbW92ZSBiYWNrc3BhY2UgZm9ybWF0dGluZywgZm9yIHNlYXJjaGVzCisgKiBpbiBjYXNlIE1CX0NVUl9NQVggPiAxLgorICovCitzdGF0aWMgY2hhciAqCitjb2xiX2Zvcl9tYihjaGFyICpzKQoreworCWNoYXIgKnAgPSBzOworCXdjaGFyX3QgKndwLCAqd3E7CisJc2l6ZV90IGwgPSBzdHJsZW4ocyksIHdsOworCXVuc2lnbmVkIGk7CisKKwlpZiAoKHdsID0geG1ic3Rvd2NzKHdidWYsIHAsIHNpemVvZiB3YnVmKSkgPT0gKHNpemVfdCktMSkKKwkJcmV0dXJuIHM7CisJZm9yICh3cCA9IHdidWYsIHdxID0gd2J1ZiwgaSA9IDA7ICp3cCAhPSBMJ1wwJyAmJiBpIDwgd2w7CisJICAgICB3cCsrLCB3cSsrKSB7CisJCWlmICgqd3AgPT0gTCdcYicpIHsKKwkJCWlmICh3cSAhPSB3YnVmKQorCQkJCXdxIC09IDI7CisJCQllbHNlCisJCQkJd3EtLTsKKwkJfSBlbHNlCisJCQkqd3EgPSAqd3A7CisJfQorCSp3cSA9IEwnXDAnOworCXdwID0gd2J1ZjsKKwl3Y3N0b21icyhzLCB3cCwgbCArIDEpOworCisJcmV0dXJuIHM7Cit9CisjZW5kaWYKKworLyoKKyAqIFJlbW92ZSBiYWNrc3BhY2UgZm9ybWF0dGluZywgZm9yIHNlYXJjaGVzLgorICovCitzdGF0aWMgY2hhciAqCitjb2xiKGNoYXIgKnMpCit7CisJY2hhciAqcCA9IHMsICpxOworCisjaWZkZWYgSEFWRV9XSURFQ0hBUgorCWlmIChNQl9DVVJfTUFYID4gMSkKKwkJcmV0dXJuIGNvbGJfZm9yX21iKHMpOworI2VuZGlmCisKKwlmb3IgKHEgPSBzOyAqcCAhPSAnXDAnOyBwKyssIHErKykgeworCQlpZiAoKnAgPT0gJ1xiJykgeworCQkJaWYgKHEgIT0gcykKKwkJCQlxIC09IDI7CisJCQllbHNlCisJCQkJcS0tOworCQl9IGVsc2UKKwkJCSpxID0gKnA7CisJfQorCSpxID0gJ1wwJzsKKworCXJldHVybiBzOworfQorCisjaWZkZWYgSEFWRV9XSURFQ0hBUgorLyoKKyAqIENvbnZlcnQgbm9ucHJpbnRhYmxlIGNoYXJhY3RlcnMgdG8gc3BhY2VzCisgKiBpbiBjYXNlIE1CX0NVUl9NQVggPiAxLgorICovCitzdGF0aWMgdm9pZAorbWFrZXByaW50X2Zvcl9tYihjaGFyICpzLCBzaXplX3QgbCkKK3sKKwljaGFyICp0ID0gczsKKwl3Y2hhcl90ICp3cCA9IHdidWY7CisJc2l6ZV90IHdsOworCisJaWYgKCh3bCA9IHhtYnN0b3djcyh3YnVmLCB0LCBzaXplb2Ygd2J1ZikpID09IChzaXplX3QpLTEpCisJCXJldHVybjsKKwl3aGlsZSAod2wtLSkgeworCQlpZiAoIWlzd3ByaW50KCp3cCkgJiYgKndwICE9IEwnXG4nICYmICp3cCAhPSBMJ1xyJworCQkgICAgJiYgKndwICE9IEwnXGInICYmICp3cCAhPSBMJ1x0JykKKwkJCSp3cCA9IEwnPyc7CisJCXdwKys7CisJfQorCXdwID0gd2J1ZjsKKwl3Y3N0b21icyhzLCB3cCwgbCk7Cit9CisjZW5kaWYKKworLyoKKyAqIENvbnZlcnQgbm9ucHJpbnRhYmxlIGNoYXJhY3RlcnMgdG8gc3BhY2VzLgorICovCitzdGF0aWMgdm9pZAorbWFrZXByaW50KGNoYXIgKnMsIHNpemVfdCBsKQoreworI2lmZGVmIEhBVkVfV0lERUNIQVIKKwlpZiAoTUJfQ1VSX01BWCA+IDEpCisJCXJldHVybiBtYWtlcHJpbnRfZm9yX21iKHMsIGwpOworI2VuZGlmCisKKwl3aGlsZSAobC0tKSB7CisJCWlmICghaXNwcmludChjdWMoKnMpKSAmJiAqcyAhPSAnXG4nICYmICpzICE9ICdccicKKwkJICAgICYmICpzICE9ICdcYicgJiYgKnMgIT0gJ1x0JykKKwkJCSpzID0gJz8nOworCQlzKys7CisJfQorfQorCisvKgorICogU3RyaXAgYmFja3NsYXNoIGNoYXJhY3RlcnMgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nLgorICovCitzdGF0aWMgdm9pZAorc3RyaXBycyhjaGFyICpzKQoreworCWNoYXIgKnAgPSBzOworCisJZG8geworCQlpZiAoKnMgPT0gJ1xcJykgeworCQkJcysrOworCQl9CisJCSpwKysgPSAqczsKKwl9IHdoaWxlICgqcysrICE9ICdcMCcpOworfQorCisvKgorICogRXh0cmFjdCB0aGUgc2VhcmNoIHBhdHRlcm4gb2ZmIHRoZSBjb21tYW5kIGxpbmUuCisgKi8KK3N0YXRpYyBjaGFyICoKK21ha2VwYXQodm9pZCkKK3sKKwljaGFyICpwOworCisJaWYgKGNtZC5hZGRvbiA9PSAnXDAnKQorCQlwID0gY21kLmNtZGxpbmUgKyBzdHJsZW4oY21kLmNtZGxpbmUpIC0gMTsKKwllbHNlCisJCXAgPSBjbWQuY21kbGluZSArIHN0cmxlbihjbWQuY21kbGluZSkgLSAyOworCWlmICgqcCA9PSBjbWQua2V5KQorCQkqcCA9ICdcMCc7CisJZWxzZQorCQkqKHAgKyAxKSA9ICdcMCc7CisJaWYgKChwID0gc3RyY2hyKGNtZC5jbWRsaW5lLCBjbWQua2V5KSkgIT0gTlVMTCkgeworCQlwKys7CisJCXN0cmlwcnMocCk7CisJfQorCXJldHVybiBwOworfQorCisvKgorICogUHJvY2VzcyBlcnJvcnMgdGhhdCBvY2N1cnJlZCBpbiB0ZW1wb3JhcnkgZmlsZSBvcGVyYXRpb25zLgorICovCitzdGF0aWMgdm9pZAordG1wZXJyKEZJTEUgKmYsIGNoYXIgKmZ0eXBlKQoreworCWlmIChmZXJyb3IoZikpCisJCWZwcmludGYoc3RkZXJyLCBfKCIlczogUmVhZCBlcnJvciBmcm9tICVzIGZpbGVcbiIpLAorCQkJcHJvZ25hbWUsIGZ0eXBlKTsKKwllbHNlIGlmIChmZW9mKGYpKQorCQkvKgorCQkgKiBNb3N0IGxpa2VseSAnXDAnIGluIGlucHV0LgorCQkgKi8KKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBVbmV4cGVjdGVkIEVPRiBpbiAlcyBmaWxlXG4iKSwKKwkJCXByb2duYW1lLCBmdHlwZSk7CisJZWxzZQorCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IFVua25vd24gZXJyb3IgaW4gJXMgZmlsZVxuIiksCisJCQlwcm9nbmFtZSwgZnR5cGUpOworCXF1aXQoKytleGl0c3RhdHVzKTsKK30KKworLyoKKyAqIHBlcnJvcigpLWxpa2UsIGJ1dCBzaG93aW5nIHRoZSBwcm9ncmFtJ3MgbmFtZS4KKyAqLworc3RhdGljIHZvaWQKK3BnZXJyb3IoaW50IGVubywgY2hhciAqc3RyaW5nKQoreworCWZwcmludGYoc3RkZXJyLCAiJXM6ICVzOiAlc1xuIiwgcHJvZ25hbWUsIHN0cmluZywgc3RyZXJyb3IoZW5vKSk7Cit9CisKKy8qCisgKiBSZWFkIHRoZSBmaWxlIGFuZCByZXNwb25kIHRvIHVzZXIgaW5wdXQuCisgKiBCZXdhcmU6IGxvbmcgYW5kIHVnbHkuCisgKi8KK3N0YXRpYyB2b2lkCitwZ2ZpbGUoRklMRSAqZiwgY2hhciAqbmFtZSkKK3sKKwlvZmZfdCBwb3MsIG9sZHBvcywgZnBvczsKKwlvZmZfdCBsaW5lID0gMCwgZmxpbmUgPSAwLCBibGluZSA9IDAsIG9sZGxpbmUgPSAwLCBlb2ZsaW5lID0gMDsKKwlpbnQgZGxpbmUgPSAwOworCS8qCisJICogVGhlc2UgYXJlIHRoZSBsaW5lIGNvdW50ZXJzOgorCSAqIGxpbmUJCXRoZSBsaW5lIGRlc2lyZWQgdG8gZGlzcGxheQorCSAqIGZsaW5lCXRoZSBjdXJyZW50IGxpbmUgb2YgdGhlIGlucHV0IGZpbGUKKwkgKiBibGluZQl0aGUgY3VycmVudCBsaW5lIG9mIHRoZSBmaWxlIGJ1ZmZlcgorCSAqIG9sZGxpbmUJdGhlIGxpbmUgYmVmb3JlIGEgc2VhcmNoIHdhcyBzdGFydGVkCisJICogZW9mbGluZQl0aGUgbGFzdCBsaW5lIG9mIHRoZSBmaWxlIGlmIGl0IGlzIGFscmVhZHkgcmVhY2hlZAorCSAqIGRsaW5lCXRoZSBsaW5lIG9uIHRoZSBkaXNwbGF5CisJICovCisJaW50IHNlYXJjaCA9IDA7CisJdW5zaWduZWQgc2VhcmNoY291bnQgPSAwOworCS8qCisJICogQWR2YW5jZSB0byBFT0YgaW1tZWRpYXRlbHkuCisJICovCisJaW50IHNlZWtlb2YgPSAwOworCS8qCisJICogRU9GIGhhcyBiZWVuIHJlYWNoZWQgYnkgYGxpbmUnLgorCSAqLworCWludCBlb2YgPSAwOworCS8qCisJICogZiBhbmQgZmJ1ZiByZWZlciB0byB0aGUgc2FtZSBmaWxlLgorCSAqLworCWludCBub2J1ZiA9IDA7CisJaW50IHNpZzsKKwlpbnQgcmVycm9yOworCXNpemVfdCBzejsKKwljaGFyIGJbUkVBREJVRiArIDFdOworCWNoYXIgKnA7CisJLyoKKwkgKiBmYnVmCQlhbiBleGFjdCBjb3B5IG9mIHRoZSBpbnB1dCBmaWxlIGFzIGl0IGdldHMgcmVhZAorCSAqIGZpbmQJCWluZGV4IHRhYmxlIGZvciBpbnB1dCwgb25lIGVudHJ5IHBlciBsaW5lCisJICogc2F2ZQkJZm9yIHRoZSBzIGNvbW1hbmQsIHRvIHNhdmUgdG8gYSBmaWxlCisJICovCisJRklMRSAqZmJ1ZiwgKmZpbmQsICpzYXZlOworCisJLyogc2lsZW5jZSBjb21waWxlciAtIGl0IG1heSB3YXJuIGFib3V0IGxvbmdqbXAoKSAqLworCUNMT0JCR1JEKGxpbmUpOworCUNMT0JCR1JEKGZsaW5lKTsKKwlDTE9CQkdSRChibGluZSk7CisJQ0xPQkJHUkQob2xkbGluZSk7CisJQ0xPQkJHUkQoZW9mbGluZSk7CisJQ0xPQkJHUkQoZGxpbmUpOworCUNMT0JCR1JEKHR0eWNvbHMpOworCUNMT0JCR1JEKHNlYXJjaCk7CisJQ0xPQkJHUkQoc2VhcmNoY291bnQpOworCUNMT0JCR1JEKHNlZWtlb2YpOworCUNMT0JCR1JEKGVvZik7CisJQ0xPQkJHUkQoZnBvcyk7CisJQ0xPQkJHUkQobm9idWYpOworCUNMT0JCR1JEKGZidWYpOworCisJaWYgKG9udHR5ID09IDApIHsKKwkJLyoKKwkJICogSnVzdCBjb3B5IHN0ZGluIHRvIHN0ZG91dC4KKwkJICovCisJCXdoaWxlICgoc3ogPSBmcmVhZChiLCBzaXplb2YgKmIsIFJFQURCVUYsIGYpKSAhPSAwKQorCQkJd3JpdGUoMSwgYiwgc3opOworCQlpZiAoZmVycm9yKGYpKSB7CisJCQlwZ2Vycm9yKGVycm5vLCBuYW1lKTsKKwkJCWV4aXRzdGF0dXMrKzsKKwkJfQorCQlyZXR1cm47CisJfQorCWlmICgoZnBvcyA9IGZzZWVrbyhmLCAob2ZmX3QpMCwgU0VFS19TRVQpKSA9PSAtMSkKKwkJZmJ1ZiA9IHRtcGZpbGUoKTsKKwllbHNlIHsKKwkJZmJ1ZiA9IGY7CisJCW5vYnVmID0gMTsKKwl9CisJZmluZCA9IHRtcGZpbGUoKTsKKwlpZiAoZmJ1ZiA9PSBOVUxMIHx8IGZpbmQgPT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IENhbm5vdCBjcmVhdGUgdGVtcGZpbGVcbiIpLCBwcm9nbmFtZSk7CisJCXF1aXQoKytleGl0c3RhdHVzKTsKKwl9CisJaWYgKHNlYXJjaGZvcikgeworCQlzZWFyY2ggPSBGT1JXQVJEOworCQlvbGRsaW5lID0gMDsKKwkJc2VhcmNoY291bnQgPSAxOworCQlyZXJyb3IgPSByZWdjb21wKCZyZSwgc2VhcmNoZm9yLCBSRUdfTk9TVUIgfCBSRUdfTkVXTElORSk7CisJCWlmIChyZXJyb3IgIT0gMCkgeworCQkJbWVzZyhfKCJSRSBlcnJvcjogIikpOworCQkJcmVnZXJyb3IocmVycm9yLCAmcmUsIGIsIFJFQURCVUYpOworCQkJbWVzZyhiKTsKKwkJCWdvdG8gbmV3Y21kOworCQl9CisJCXJlbWVtYmVyZWQgPSAxOworCX0KKworCWZvciAobGluZSA9IHN0YXJ0bGluZTsgOyApIHsKKwkJLyoKKwkJICogR2V0IGEgbGluZSBmcm9tIGlucHV0IGZpbGUgb3IgYnVmZmVyLgorCQkgKi8KKwkJaWYgKGxpbmUgPCBibGluZSkgeworCQkJZnNlZWtvKGZpbmQsIGxpbmUgKiBzaXplb2YgcG9zLCBTRUVLX1NFVCk7CisJCQlpZiAoZnJlYWQoJnBvcywgc2l6ZW9mIHBvcywgMSwgZmluZCkgPT0gMCkKKwkJCQl0bXBlcnIoZmluZCwgImluZGV4Iik7CisJCQlmc2Vla28oZmluZCwgKG9mZl90KTAsIFNFRUtfRU5EKTsKKwkJCWZzZWVrbyhmYnVmLCBwb3MsIFNFRUtfU0VUKTsKKwkJCWlmIChmZ2V0cyhiLCBSRUFEQlVGLCBmYnVmKSA9PSBOVUxMKQorCQkJCXRtcGVycihmYnVmLCAiYnVmZmVyIik7CisJCX0gZWxzZSBpZiAoZW9mbGluZSA9PSAwKSB7CisJCQlmc2Vla28oZmluZCwgKG9mZl90KTAsIFNFRUtfRU5EKTsKKwkJCWRvIHsKKwkJCQlpZiAoIW5vYnVmKQorCQkJCQlmc2Vla28oZmJ1ZiwgKG9mZl90KTAsIFNFRUtfRU5EKTsKKwkJCQlwb3MgPSBmdGVsbG8oZmJ1Zik7CisJCQkJaWYgKChzaWcgPSBzZXRqbXAoam1wZW52KSkgIT0gMCkgeworCQkJCQkvKgorCQkJCQkgKiBXZSBnb3QgYSBzaWduYWwuCisJCQkJCSAqLworCQkJCQljYW5qdW1wID0gMDsKKwkJCQkJbXlfc2lncmVsc2Uoc2lnKTsKKwkJCQkJZnNlZWtvKGZidWYsIHBvcywgU0VFS19TRVQpOworCQkJCQkqYiA9ICdcMCc7CisJCQkJCWRsaW5lID0gcGFnZWxlbjsKKwkJCQkJYnJlYWs7CisJCQkJfSBlbHNlIHsKKwkJCQkJaWYgKG5vYnVmKQorCQkJCQkJZnNlZWtvKGYsIGZwb3MsIFNFRUtfU0VUKTsKKwkJCQkJY2FuanVtcCA9IDE7CisJCQkJCXAgPSBmZ2V0cyhiLCBSRUFEQlVGLCBmKTsKKwkJCQkJaWYgKG5vYnVmKQorCQkJCQkJaWYgKChmcG9zID0gZnRlbGxvKGYpKSA9PSAtMSkKKwkJCQkJCQlwZ2Vycm9yKGVycm5vLCBuYW1lKTsKKwkJCQkJY2FuanVtcCA9IDA7CisJCQkJfQorCQkJCWlmIChwID09IE5VTEwgfHwgKmIgPT0gJ1wwJykgeworCQkJCQlpZiAoZmVycm9yKGYpKQorCQkJCQkJcGdlcnJvcihlcnJubywgbmFtZSk7CisJCQkJCWVvZmxpbmUgPSBmbGluZTsKKwkJCQkJZW9mID0gMTsKKwkJCQkJYnJlYWs7CisJCQkJfSBlbHNlIHsKKwkJCQkJaWYgKCFub2J1ZikKKwkJCQkJCWZwdXRzKGIsIGZidWYpOworCQkJCQlmd3JpdGUoJnBvcywgc2l6ZW9mIHBvcywgMSwgZmluZCk7CisJCQkJCWlmICghZmZsYWcpIHsKKwkJCQkJCW9sZHBvcyA9IHBvczsKKwkJCQkJCXAgPSBiOworCQkJCQkJd2hpbGUgKCoocCA9IGVuZGxpbmUodHR5Y29scywKKwkJCQkJCQkJCXApKQorCQkJCQkJCQkhPSAnXDAnKSB7CisJCQkJCQkJcG9zID0gb2xkcG9zICsgKHAgLSBiKTsKKwkJCQkJCQlmd3JpdGUoJnBvcywKKwkJCQkJCQkJc2l6ZW9mIHBvcywKKwkJCQkJCQkJMSwgZmluZCk7CisJCQkJCQkJZmxpbmUrKzsKKwkJCQkJCQlibGluZSsrOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWZsaW5lKys7CisJCQkJfQorCQkJfSB3aGlsZSAobGluZSA+IGJsaW5lKyspOworCQl9IGVsc2UgeworCQkJLyoKKwkJCSAqIGVvZmxpbmUgIT0gMAorCQkJICovCisJCQllb2YgPSAxOworCQl9CisJCWlmIChzZWFyY2ggPT0gRk9SV0FSRCAmJiByZW1lbWJlcmVkID09IDEpIHsKKwkJCWlmIChlb2YpIHsKKwkJCQlsaW5lID0gb2xkbGluZTsKKwkJCQlzZWFyY2ggPSBzZWFyY2hjb3VudCA9IDA7CisJCQkJbWVzZyhfKCJQYXR0ZXJuIG5vdCBmb3VuZCIpKTsKKwkJCQllb2YgPSAwOworCQkJCWdvdG8gbmV3Y21kOworCQkJfQorCQkJbGluZSsrOworCQkJY29sYihiKTsKKwkJCWlmIChyZWdleGVjKCZyZSwgYiwgMCwgTlVMTCwgMCkgPT0gMCkgeworCQkJCXNlYXJjaGNvdW50LS07CisJCQl9CisJCQlpZiAoc2VhcmNoY291bnQgPT0gMCkgeworCQkJCXNlYXJjaCA9IGRsaW5lID0gMDsKKwkJCQlzd2l0Y2ggKHNlYXJjaGRpc3BsYXkpIHsKKwkJCQljYXNlIFRPUDoKKwkJCQkJbGluZSAtPSAxOworCQkJCQlicmVhazsKKwkJCQljYXNlIE1JRERMRToKKwkJCQkJbGluZSAtPSBwYWdlbGVuIC8gMiArIDE7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgQk9UVE9NOgorCQkJCQlsaW5lIC09IHBhZ2VsZW47CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlza2lwKDEpOworCQkJfQorCQkJY29udGludWU7CisJCX0gZWxzZSBpZiAoZW9mKQl7CS8qCisJCQkJCSAqIFdlIGFyZSBub3Qgc2VhcmNoaW5nLgorCQkJCQkgKi8KKwkJCWxpbmUgPSBibGluZTsKKwkJfSBlbHNlIGlmICgqYiAhPSAnXDAnKSB7CisJCQlpZiAoY2ZsYWcgJiYgY2xlYXJfc2NyZWVuKSB7CisJCQkJc3dpdGNoIChkbGluZSkgeworCQkJCWNhc2UgMDoKKwkJCQkJdHB1dHMoY2xlYXJfc2NyZWVuLCAxLCBvdXRjYXApOworCQkJCQlkbGluZSA9IDA7CisJCQkJfQorCQkJfQorCQkJbGluZSsrOworCQkJaWYgKGVvZmxpbmUgJiYgbGluZSA9PSBlb2ZsaW5lKQorCQkJCWVvZiA9IDE7CisJCQlkbGluZSsrOworCQkJaWYgKChzaWcgPSBzZXRqbXAoam1wZW52KSkgIT0gMCkgeworCQkJCS8qCisJCQkJICogV2UgZ290IGEgc2lnbmFsLgorCQkJCSAqLworCQkJCWNhbmp1bXAgPSAwOworCQkJCW15X3NpZ3JlbHNlKHNpZyk7CisJCQkJZGxpbmUgPSBwYWdlbGVuOworCQkJfSBlbHNlIHsKKwkJCQlwID0gZW5kbGluZSh0dHljb2xzLCBiKTsKKwkJCQlzeiA9IHAgLSBiOworCQkJCW1ha2VwcmludChiLCBzeik7CisJCQkJY2FuanVtcCA9IDE7CisJCQkJd3JpdGUoMSwgYiwgc3opOworCQkJCWNhbmp1bXAgPSAwOworCQkJfQorCQl9CisJCWlmIChkbGluZSA+PSBwYWdlbGVuIHx8IGVvZikgeworCQkJLyoKKwkJCSAqIFRpbWUgZm9yIHByb21wdGluZyEKKwkJCSAqLworCQkJaWYgKGVvZiAmJiBzZWVrZW9mKSB7CisJCQkJZW9mID0gc2Vla2VvZiA9IDA7CisJCQkJaWYgKGxpbmUgPj0gcGFnZWxlbikKKwkJCQkJbGluZSAtPSBwYWdlbGVuOworCQkJCWVsc2UKKwkJCQkJbGluZSA9IDA7CisJCQkJZGxpbmUgPSAtMTsKKwkJCQljb250aW51ZTsKKwkJCX0KK25ld2NtZDoKKwkJCWlmIChlb2YpIHsKKwkJCQlpZiAoZmxpbmUgPT0gMCB8fCBlZmxhZykKKwkJCQkJYnJlYWs7CisJCQkJbWVzZyhfKCIoRU9GKSIpKTsKKwkJCX0KKwkJCXByb21wdCgobGluZSAtIDEpIC8gcGFnZWxlbiArIDEpOworCQkJc3dpdGNoIChjbWQua2V5KSB7CisJCQljYXNlICcvJzoKKwkJCQkvKgorCQkJCSAqIFNlYXJjaCBmb3J3YXJkLgorCQkJCSAqLworCQkJCXNlYXJjaCA9IEZPUldBUkQ7CisJCQkJb2xkbGluZSA9IGxpbmU7CisJCQkJc2VhcmNoY291bnQgPSBjbWQuY291bnQ7CisJCQkJcCA9IG1ha2VwYXQoKTsKKwkJCQlpZiAocCAhPSBOVUxMICYmICpwKSB7CisJCQkJCWlmIChyZW1lbWJlcmVkID09IDEpCisJCQkJCQlyZWdmcmVlKCZyZSk7CisJCQkJCXJlcnJvciA9IHJlZ2NvbXAoJnJlLCBwLAorCQkJCQkJUkVHX05PU1VCIHwgUkVHX05FV0xJTkUpOworCQkJCQlpZiAocmVycm9yICE9IDApIHsKKwkJCQkJCW1lc2coXygiUkUgZXJyb3I6ICIpKTsKKwkJCQkJCXN6ID0gcmVnZXJyb3IocmVycm9yLCAmcmUsCisJCQkJCQkJCWIsIFJFQURCVUYpOworCQkJCQkJbWVzZyhiKTsKKwkJCQkJCWdvdG8gbmV3Y21kOworCQkJCQl9CisJCQkJCXJlbWVtYmVyZWQgPSAxOworCQkJCX0gZWxzZSBpZiAocmVtZW1iZXJlZCA9PSAwKSB7CisJCQkJCW1lc2coXygiTm8gcmVtZW1iZXJlZCBzZWFyY2ggc3RyaW5nIikpOworCQkJCQlnb3RvIG5ld2NtZDsKKwkJCQl9CisJCQkJY29udGludWU7CisJCQljYXNlICc/JzoKKwkJCWNhc2UgJ14nOgorCQkJCS8qCisJCQkJICogU2VhcmNoIGJhY2t3YXJkLgorCQkJCSAqLworCQkJCXNlYXJjaCA9IEJBQ0tXQVJEOworCQkJCW9sZGxpbmUgPSBsaW5lOworCQkJCXNlYXJjaGNvdW50ID0gY21kLmNvdW50OworCQkJCXAgPSBtYWtlcGF0KCk7CisJCQkJaWYgKHAgIT0gTlVMTCAmJiAqcCkgeworCQkJCQlpZiAocmVtZW1iZXJlZCA9PSAxKQorCQkJCQkJcmVnZnJlZSgmcmUpOworCQkJCQlyZXJyb3IgPSByZWdjb21wKCZyZSwgcCwKKwkJCQkJCVJFR19OT1NVQiB8IFJFR19ORVdMSU5FKTsKKwkJCQkJaWYgKHJlcnJvciAhPSAwKSB7CisJCQkJCQltZXNnKF8oIlJFIGVycm9yOiAiKSk7CisJCQkJCQlyZWdlcnJvcihyZXJyb3IsICZyZSwKKwkJCQkJCQkJYiwgUkVBREJVRik7CisJCQkJCQltZXNnKGIpOworCQkJCQkJZ290byBuZXdjbWQ7CisJCQkJCX0KKwkJCQkJcmVtZW1iZXJlZCA9IDE7CisJCQkJfSBlbHNlIGlmIChyZW1lbWJlcmVkID09IDApIHsKKwkJCQkJbWVzZyhfKCJObyByZW1lbWJlcmVkIHNlYXJjaCBzdHJpbmciKSk7CisJCQkJCWdvdG8gbmV3Y21kOworCQkJCX0KKwkJCQlsaW5lIC09IHBhZ2VsZW47CisJCQkJaWYgKGxpbmUgPD0gMCkKKwkJCQkJZ290byBub3Rmb3VuZF9idzsKKwkJCQl3aGlsZSAobGluZSkgeworCQkJCQlmc2Vla28oZmluZCwgLS1saW5lICogc2l6ZW9mIHBvcywKKwkJCQkJCQlTRUVLX1NFVCk7CisJCQkJCWlmKGZyZWFkKCZwb3MsIHNpemVvZiBwb3MsIDEsZmluZCk9PTApCisJCQkJCQl0bXBlcnIoZmluZCwgImluZGV4Iik7CisJCQkJCWZzZWVrbyhmaW5kLCAob2ZmX3QpMCwgU0VFS19FTkQpOworCQkJCQlmc2Vla28oZmJ1ZiwgcG9zLCBTRUVLX1NFVCk7CisJCQkJCWlmIChmZ2V0cyhiLCBSRUFEQlVGLCBmYnVmKSA9PSBOVUxMKQorCQkJCQkJdG1wZXJyKGZidWYsICJidWZmZXIiKTsKKwkJCQkJY29sYihiKTsKKwkJCQkJaWYgKHJlZ2V4ZWMoJnJlLCBiLCAwLCBOVUxMLCAwKSA9PSAwKQorCQkJCQkJc2VhcmNoY291bnQtLTsKKwkJCQkJaWYgKHNlYXJjaGNvdW50ID09IDApCisJCQkJCQlnb3RvIGZvdW5kX2J3OworCQkJCX0KK25vdGZvdW5kX2J3OgorCQkJCWxpbmUgPSBvbGRsaW5lOworCQkJCXNlYXJjaCA9IHNlYXJjaGNvdW50ID0gMDsKKwkJCQltZXNnKF8oIlBhdHRlcm4gbm90IGZvdW5kIikpOworCQkJCWdvdG8gbmV3Y21kOworZm91bmRfYnc6CisJCQkJZW9mID0gc2VhcmNoID0gZGxpbmUgPSAwOworCQkJCXNraXAoLTEpOworCQkJCXN3aXRjaCAoc2VhcmNoZGlzcGxheSkgeworCQkJCWNhc2UgVE9QOgorCQkJCQkvKiBsaW5lIC09IDE7ICovCisJCQkJCWJyZWFrOworCQkJCWNhc2UgTUlERExFOgorCQkJCQlsaW5lIC09IHBhZ2VsZW4gLyAyOworCQkJCQlicmVhazsKKwkJCQljYXNlIEJPVFRPTToKKwkJCQkJaWYgKGxpbmUgIT0gMCkKKwkJCQkJCWRsaW5lID0gLTE7CisJCQkJCWxpbmUgLT0gcGFnZWxlbjsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWlmIChsaW5lIDwgMCkKKwkJCQkJbGluZSA9IDA7CisJCQkJY29udGludWU7CisJCQljYXNlICdzJzoKKwkJCQkvKgorCQkJCSAqIFNhdmUgdG8gZmlsZS4KKwkJCQkgKi8KKwkJCQlwID0gY21kLmNtZGxpbmU7CisJCQkJd2hpbGUgKCorK3AgPT0gJyAnKTsKKwkJCQlpZiAoKnAgPT0gJ1wwJykKKwkJCQkJZ290byBuZXdjbWQ7CisJCQkJc2F2ZSA9IGZvcGVuKHAsICJ3YiIpOworCQkJCWlmIChzYXZlID09IE5VTEwpIHsKKwkJCQkJY21kLmNvdW50ID0gZXJybm87CisJCQkJCW1lc2coXygiQ2Fubm90IG9wZW4gIikpOworCQkJCQltZXNnKHApOworCQkJCQltZXNnKCI6ICIpOworCQkJCQltZXNnKHN0cmVycm9yKGNtZC5jb3VudCkpOworCQkJCQlnb3RvIG5ld2NtZDsKKwkJCQl9CisJCQkJLyoKKwkJCQkgKiBBZHZhbmNlIHRvIEVPRi4KKwkJCQkgKi8KKwkJCQlmc2Vla28oZmluZCwgKG9mZl90KTAsIFNFRUtfRU5EKTsKKwkJCQlmb3IgKDs7KSB7CisJCQkJCWlmICghbm9idWYpCisJCQkJCQlmc2Vla28oZmJ1Ziwob2ZmX3QpMCxTRUVLX0VORCk7CisJCQkJCXBvcyA9IGZ0ZWxsbyhmYnVmKTsKKwkJCQkJaWYgKGZnZXRzKGIsIFJFQURCVUYsIGYpID09IE5VTEwpIHsKKwkJCQkJCWVvZmxpbmUgPSBmbGluZTsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJCWlmICghbm9idWYpCisJCQkJCQlmcHV0cyhiLCBmYnVmKTsKKwkJCQkJZndyaXRlKCZwb3MsIHNpemVvZiBwb3MsIDEsIGZpbmQpOworCQkJCQlpZiAoIWZmbGFnKSB7CisJCQkJCQlvbGRwb3MgPSBwb3M7CisJCQkJCQlwID0gYjsKKwkJCQkJCXdoaWxlICgqKHAgPSBlbmRsaW5lKHR0eWNvbHMsCisJCQkJCQkJCQlwKSkKKwkJCQkJCQkJIT0gJ1wwJykgeworCQkJCQkJCXBvcyA9IG9sZHBvcyArIChwIC0gYik7CisJCQkJCQkJZndyaXRlKCZwb3MsCisJCQkJCQkJCXNpemVvZiBwb3MsCisJCQkJCQkJCTEsIGZpbmQpOworCQkJCQkJCWZsaW5lKys7CisJCQkJCQkJYmxpbmUrKzsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCQlmbGluZSsrOworCQkJCQlibGluZSsrOworCQkJCX0KKwkJCQlmc2Vla28oZmJ1ZiwgKG9mZl90KTAsIFNFRUtfU0VUKTsKKwkJCQl3aGlsZSAoKHN6ID0gZnJlYWQoYiwgc2l6ZW9mICpiLCBSRUFEQlVGLAorCQkJCQkJCWZidWYpKSAhPSAwKSB7CisJCQkJCS8qCisJCQkJCSAqIE5vIGVycm9yIGNoZWNrIGZvciBjb21wYXQuCisJCQkJCSAqLworCQkJCQlmd3JpdGUoYiwgc2l6ZW9mICpiLCBzeiwgc2F2ZSk7CisJCQkJfQorCQkJCWZjbG9zZShzYXZlKTsKKwkJCQlmc2Vla28oZmJ1ZiwgKG9mZl90KTAsIFNFRUtfRU5EKTsKKwkJCQltZXNnKF8oInNhdmVkIikpOworCQkJCWdvdG8gbmV3Y21kOworCQkJY2FzZSAnbCc6CisJCQkJLyoKKwkJCQkgKiBOZXh0IGxpbmUuCisJCQkJICovCisJCQkJaWYgKCpjbWQuY21kbGluZSAhPSAnbCcpCisJCQkJCWVvZiA9IDA7CisJCQkJaWYgKGNtZC5jb3VudCA9PSAwKQorCQkJCQljbWQuY291bnQgPSAxOyAvKiBjb21wYXQgKi8KKwkJCQlpZiAoaXNkaWdpdChjdWMoKmNtZC5jbWRsaW5lKSkpIHsKKwkJCQkJbGluZSA9IGNtZC5jb3VudCAtIDI7CisJCQkJCWRsaW5lID0gMDsKKwkJCQl9IGVsc2UgeworCQkJCQlpZiAoY21kLmNvdW50ICE9IDEpIHsKKwkJCQkJCWxpbmUgKz0gY21kLmNvdW50IC0gMQorCQkJCQkJCS0gcGFnZWxlbjsKKwkJCQkJCWRsaW5lID0gLTE7CisJCQkJCQlza2lwKGNtZC5jb3VudCk7CisJCQkJCX0KKwkJCQkJLyoKKwkJCQkJICogTm90aGluZyB0byBkbyBpZiBjb3VudD09MS4KKwkJCQkJICovCisJCQkJfQorCQkJCWJyZWFrOworCQkJY2FzZSAnZCc6CisJCQkJLyoKKwkJCQkgKiBIYWxmIHNjcmVlbiBmb3J3YXJkLgorCQkJCSAqLworCQkJY2FzZSAnXDAwNCc6CS8qIF5EICovCisJCQkJaWYgKCpjbWQuY21kbGluZSAhPSBjbWQua2V5KQorCQkJCQllb2YgPSAwOworCQkJCWlmIChjbWQuY291bnQgPT0gMCkKKwkJCQkJY21kLmNvdW50ID0gMTsgLyogY29tcGF0ICovCisJCQkJbGluZSArPSAoY21kLmNvdW50ICogcGFnZWxlbiAvIDIpCisJCQkJCS0gcGFnZWxlbiAtIDE7CisJCQkJZGxpbmUgPSAtMTsKKwkJCQlza2lwKGNtZC5jb3VudCk7CisJCQkJYnJlYWs7CisJCQljYXNlICdmJzoKKwkJCQkvKgorCQkJCSAqIFNraXAgZm9yd2FyZC4KKwkJCQkgKi8KKwkJCQlpZiAoY21kLmNvdW50IDw9IDApCisJCQkJCWNtZC5jb3VudCA9IDE7IC8qIGNvbXBhdCAqLworCQkJCWxpbmUgKz0gY21kLmNvdW50ICogcGFnZWxlbiAtIDI7CisJCQkJaWYgKGVvZikKKwkJCQkJbGluZSArPSAyOworCQkJCWlmICgqY21kLmNtZGxpbmUgIT0gJ2YnKQorCQkJCQllb2YgPSAwOworCQkJCWVsc2UgaWYgKGVvZikKKwkJCQkJYnJlYWs7CisJCQkJaWYgKGVvZmxpbmUgJiYgbGluZSA+PSBlb2ZsaW5lKQorCQkJCQlsaW5lIC09IHBhZ2VsZW47CisJCQkJZGxpbmUgPSAtMTsKKwkJCQlza2lwKGNtZC5jb3VudCk7CisJCQkJYnJlYWs7CisJCQljYXNlICdcMCc6CisJCQkJLyoKKwkJCQkgKiBKdXN0IGEgbnVtYmVyLCBvciAnLScsIG9yIDxuZXdsaW5lPi4KKwkJCQkgKi8KKwkJCQlpZiAoY21kLmNvdW50ID09IDApCisJCQkJCWNtZC5jb3VudCA9IDE7IC8qIGNvbXBhdCAqLworCQkJCWlmIChpc2RpZ2l0KGN1YygqY21kLmNtZGxpbmUpKSkKKwkJCQkJbGluZSA9IChjbWQuY291bnQgLSAxKSAqIHBhZ2VsZW4gLSAyOworCQkJCWVsc2UKKwkJCQkJbGluZSArPSAoY21kLmNvdW50IC0gMSkKKwkJCQkJCSogKHBhZ2VsZW4gLSAxKSAtIDI7CisJCQkJaWYgKCpjbWQuY21kbGluZSAhPSAnXDAnKQorCQkJCQllb2YgPSAwOworCQkJCWlmIChjbWQuY291bnQgIT0gMSkgeworCQkJCQlza2lwKGNtZC5jb3VudCk7CisJCQkJCWRsaW5lID0gLTE7CisJCQkJfSBlbHNlIHsKKwkJCQkJZGxpbmUgPSAxOworCQkJCQlsaW5lICs9IDI7CisJCQkJfQorCQkJCWJyZWFrOworCQkJY2FzZSAnJCc6CisJCQkJLyoKKwkJCQkgKiBBZHZhbmNlIHRvIEVPRi4KKwkJCQkgKi8KKwkJCQlpZiAoIWVvZikKKwkJCQkJc2tpcCgxKTsKKwkJCQllb2YgPSAwOworCQkJCWxpbmUgPSBMT05HX01BWDsKKwkJCQlzZWVrZW9mID0gMTsKKwkJCQlkbGluZSA9IC0xOworCQkJCWJyZWFrOworCQkJY2FzZSAnLic6CisJCQljYXNlICdcMDE0JzogLyogXkwgKi8KKwkJCQkvKgorCQkJCSAqIFJlcGFpbnQgc2NyZWVuLgorCQkJCSAqLworCQkJCWVvZiA9IDA7CisJCQkJaWYgKGxpbmUgPj0gcGFnZWxlbikKKwkJCQkJbGluZSAtPSBwYWdlbGVuOworCQkJCWVsc2UKKwkJCQkJbGluZSA9IDA7CisJCQkJZGxpbmUgPSAwOworCQkJCWJyZWFrOworCQkJY2FzZSAnISc6CisJCQkJLyoKKwkJCQkgKiBTaGVsbCBlc2NhcGUuCisJCQkJICovCisJCQkJaWYgKHJmbGFnKSB7CisJCQkJCW1lc2cocHJvZ25hbWUpOworCQkJCQltZXNnKF8oIjogIWNvbW1hbmQgbm90IGFsbG93ZWQgaW4gIgorCQkJCQkgICAgICAgInJmbGFnIG1vZGUuXG4iKSk7CisJCQkJfSBlbHNlIHsKKwkJCQkJcGlkX3QgY3BpZDsKKworCQkJCQl3cml0ZSgxLCBjbWQuY21kbGluZSwKKwkJCQkJICAgICAgc3RybGVuKGNtZC5jbWRsaW5lKSk7CisJCQkJCXdyaXRlKDEsICJcbiIsIDEpOworCQkJCQlteV9zaWdzZXQoU0lHSU5ULCBTSUdfSUdOKTsKKwkJCQkJbXlfc2lnc2V0KFNJR1FVSVQsIFNJR19JR04pOworCQkJCQlzd2l0Y2ggKGNwaWQgPSBmb3JrKCkpIHsKKwkJCQkJY2FzZSAwOgorCQkJCQkJcCA9IGdldGVudigiU0hFTEwiKTsKKwkJCQkJCWlmIChwID09IE5VTEwpIHAgPSAiL2Jpbi9zaCI7CisJCQkJCQlpZiAoIW5vYnVmKQorCQkJCQkJCWZjbG9zZShmYnVmKTsKKwkJCQkJCWZjbG9zZShmaW5kKTsKKwkJCQkJCWlmIChpc2F0dHkoMCkgPT0gMCkgeworCQkJCQkJCWNsb3NlKDApOworCQkJCQkJCW9wZW4odHR5LCBPX1JET05MWSk7CisJCQkJCQl9IGVsc2UgeworCQkJCQkJCWZjbG9zZShmKTsKKwkJCQkJCX0KKwkJCQkJCW15X3NpZ3NldChTSUdJTlQsIG9sZGludCk7CisJCQkJCQlteV9zaWdzZXQoU0lHUVVJVCwgb2xkcXVpdCk7CisJCQkJCQlteV9zaWdzZXQoU0lHVEVSTSwgb2xkdGVybSk7CisJCQkJCQlleGVjbChwLCBwLCAiLWMiLAorCQkJCQkJCWNtZC5jbWRsaW5lICsgMSwgTlVMTCk7CisJCQkJCQlwZ2Vycm9yKGVycm5vLCBwKTsKKwkJCQkJCV9leGl0KDAxNzcpOworCQkJCQkJLypOT1RSRUFDSEVEKi8KKwkJCQkJY2FzZSAtMToKKwkJCQkJCW1lc2coXygiZm9yaygpIGZhaWxlZCwgIgorCQkJCQkJICAgICAgICJ0cnkgYWdhaW4gbGF0ZXJcbiIpKTsKKwkJCQkJCWJyZWFrOworCQkJCQlkZWZhdWx0OgorCQkJCQkJd2hpbGUgKHdhaXQoTlVMTCkgIT0gY3BpZCk7CisJCQkJCX0KKwkJCQkJbXlfc2lnc2V0KFNJR0lOVCwgc2lnaGFuZGxlcik7CisJCQkJCW15X3NpZ3NldChTSUdRVUlULCBzaWdoYW5kbGVyKTsKKwkJCQkJbWVzZygiIVxuIik7CisJCQkJfQorCQkJCWdvdG8gbmV3Y21kOworCQkJY2FzZSAnaCc6CisJCQl7CisJCQkJLyoKKwkJCQkgKiBIZWxwIQorCQkJCSAqLworCQkJCWNvbnN0IGNoYXIgKmhlbHAgPSBfKGhlbHBzY3JlZW4pOworCQkJCXdyaXRlKDEsIGNvcHlyaWdodCArIDQsIHN0cmxlbihjb3B5cmlnaHQgKyA0KSk7CisJCQkJd3JpdGUoMSwgaGVscCwgc3RybGVuKGhlbHApKTsKKwkJCQlnb3RvIG5ld2NtZDsKKwkJCX0KKwkJCWNhc2UgJ24nOgorCQkJCS8qCisJCQkJICogTmV4dCBmaWxlLgorCQkJCSAqLworCQkJCWlmIChjbWQuY291bnQgPT0gMCkKKwkJCQkJY21kLmNvdW50ID0gMTsKKwkJCQluZXh0ZmlsZSA9IGNtZC5jb3VudDsKKwkJCQlpZiAoY2hlY2tmKCkpIHsKKwkJCQkJbmV4dGZpbGUgPSAxOworCQkJCQlnb3RvIG5ld2NtZDsKKwkJCQl9CisJCQkJZW9mID0gMTsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ3AnOgorCQkJCS8qCisJCQkJICogUHJldmlvdXMgZmlsZS4KKwkJCQkgKi8KKwkJCQlpZiAoY21kLmNvdW50ID09IDApCisJCQkJCWNtZC5jb3VudCA9IDE7CisJCQkJbmV4dGZpbGUgPSAwIC0gY21kLmNvdW50OworCQkJCWlmIChjaGVja2YoKSkgeworCQkJCQluZXh0ZmlsZSA9IDE7CisJCQkJCWdvdG8gbmV3Y21kOworCQkJCX0KKwkJCQllb2YgPSAxOworCQkJCWJyZWFrOworCQkJY2FzZSAncSc6CisJCQljYXNlICdRJzoKKwkJCQkvKgorCQkJCSAqIEV4aXQgcGcuCisJCQkJICovCisJCQkJcXVpdChleGl0c3RhdHVzKTsKKwkJCQkvKk5PVFJFQUNIRUQqLworCQkJY2FzZSAndyc6CisJCQljYXNlICd6JzoKKwkJCQkvKgorCQkJCSAqIFNldCB3aW5kb3cgc2l6ZS4KKwkJCQkgKi8KKwkJCQlpZiAoY21kLmNvdW50IDwgMCkKKwkJCQkJY21kLmNvdW50ID0gMDsKKwkJCQlpZiAoKmNtZC5jbWRsaW5lICE9IGNtZC5rZXkpCisJCQkJCXBhZ2VsZW4gPSArK2NtZC5jb3VudDsKKwkJCQlkbGluZSA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAobGluZSA8PSAwKSB7CisJCQkJbGluZSA9IDA7CisJCQkJZGxpbmUgPSAwOworCQkJfQorCQkJaWYgKGNmbGFnICYmIGRsaW5lID09IDEpIHsKKwkJCQlkbGluZSA9IDA7CisJCQkJbGluZS0tOworCQkJfQorCQl9CisJCWlmIChlb2YpCisJCQlicmVhazsKKwl9CisJZmNsb3NlKGZpbmQpOworCWlmICghbm9idWYpCisJCWZjbG9zZShmYnVmKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlpbnQgYXJnLCBpOworCWNoYXIgKnA7CisJRklMRSAqaW5wdXQ7CisKKwlwcm9nbmFtZSA9IGJhc2VuYW1lKGFyZ3ZbMF0pOworCisJc2V0bG9jYWxlKExDX01FU1NBR0VTLCAiIik7CisJYmluZHRleHRkb21haW4oUEFDS0FHRSwgTE9DQUxFRElSKTsKKwl0ZXh0ZG9tYWluKFBBQ0tBR0UpOworCisJaWYgKHRjZ2V0YXR0cigxLCAmb3RpbykgPT0gMCkgeworCQlvbnR0eSA9IDE7CisJCW9sZGludCA9IG15X3NpZ3NldChTSUdJTlQsIHNpZ2hhbmRsZXIpOworCQlvbGRxdWl0ID0gbXlfc2lnc2V0KFNJR1FVSVQsIHNpZ2hhbmRsZXIpOworCQlvbGR0ZXJtID0gbXlfc2lnc2V0KFNJR1RFUk0sIHNpZ2hhbmRsZXIpOworCQlzZXRsb2NhbGUoTENfQ1RZUEUsICIiKTsKKwkJc2V0bG9jYWxlKExDX0NPTExBVEUsICIiKTsKKwkJdHR5ID0gdHR5bmFtZSgxKTsKKwkJc2V0dXB0ZXJtKE5VTEwsIDEsICZ0aW5mb3N0YXQpOworCQlnZXR3aW5zaXplKCk7CisJCWhlbHBzY3JlZW4gPSBfKGhlbHBzY3JlZW4pOworCX0KKwlmb3IgKGFyZyA9IDE7IGFyZ3ZbYXJnXTsgYXJnKyspIHsKKwkJaWYgKCphcmd2W2FyZ10gPT0gJysnKQorCQkJY29udGludWU7CisJCWlmICgqYXJndlthcmddICE9ICctJyB8fCBhcmd2W2FyZ11bMV0gPT0gJ1wwJykKKwkJCWJyZWFrOworCQlhcmdjLS07CisJCWZvciAoaSA9IDE7IGFyZ3ZbYXJnXVtpXTsgaSsrKSB7CisJCQlzd2l0Y2ggKGFyZ3ZbYXJnXVtpXSkgeworCQkJY2FzZSAnLSc6CisJCQkJaWYgKGkgIT0gMSB8fCBhcmd2W2FyZ11baSArIDFdKQorCQkJCQlpbnZvcHQoJmFyZ3ZbYXJnXVtpXSk7CisJCQkJZ290byBlbmRhcmdzOworCQkJY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6IGNhc2UgJzUnOgorCQkJY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6IGNhc2UgJzAnOgorCQkJCXBhZ2VsZW4gPSBhdG9pKGFyZ3ZbYXJnXSArIGkpOworCQkJCWhhdmVwYWdlbGVuID0gMTsKKwkJCQlnb3RvIG5leHRhcmc7CisJCQljYXNlICdjJzoKKwkJCQljZmxhZyA9IDE7CisJCQkJYnJlYWs7CisJCQljYXNlICdlJzoKKwkJCQllZmxhZyA9IDE7CisJCQkJYnJlYWs7CisJCQljYXNlICdmJzoKKwkJCQlmZmxhZyA9IDE7CisJCQkJYnJlYWs7CisJCQljYXNlICduJzoKKwkJCQluZmxhZyA9IDE7CisJCQkJYnJlYWs7CisJCQljYXNlICdwJzoKKwkJCQlpZiAoYXJndlthcmddW2kgKyAxXSkgeworCQkJCQlwc3RyaW5nID0gJmFyZ3ZbYXJnXVtpICsgMV07CisJCQkJfSBlbHNlIGlmIChhcmd2WysrYXJnXSkgeworCQkJCQktLWFyZ2M7CisJCQkJCXBzdHJpbmcgPSBhcmd2W2FyZ107CisJCQkJfSBlbHNlCisJCQkJCW5lZWRhcmcoIi1wIik7CisJCQkJZ290byBuZXh0YXJnOworCQkJY2FzZSAncic6CisJCQkJcmZsYWcgPSAxOworCQkJCWJyZWFrOworCQkJY2FzZSAncyc6CisJCQkJc2ZsYWcgPSAxOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQlpbnZvcHQoJmFyZ3ZbYXJnXVtpXSk7CisJCQl9CisJCX0KK25leHRhcmc6CisJCTsKKwl9CitlbmRhcmdzOgorCWZvciAoYXJnID0gMTsgYXJndlthcmddOyBhcmcrKykgeworCQlpZiAoKmFyZ3ZbYXJnXSA9PSAnLScpIHsKKwkJCWlmIChhcmd2W2FyZ11bMV0gPT0gJy0nKSB7CisJCQkJYXJnKys7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoYXJndlthcmddWzFdID09ICdcMCcpCisJCQkJYnJlYWs7CisJCQlpZiAoYXJndlthcmddWzFdID09ICdwJyAmJiBhcmd2W2FyZ11bMl0gPT0gJ1wwJykKKwkJCQlhcmcrKzsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICgqYXJndlthcmddICE9ICcrJykKKwkJCWJyZWFrOworCQlhcmdjLS07CisJCXN3aXRjaCAoKihhcmd2W2FyZ10gKyAxKSkgeworCQljYXNlICdcMCc6CisJCQluZWVkYXJnKCIrIik7CisJCQkvKk5PVFJFQUNIRUQqLworCQljYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzogY2FzZSAnNSc6CisJCWNhc2UgJzYnOiBjYXNlICc3JzogY2FzZSAnOCc6IGNhc2UgJzknOiBjYXNlICcwJzoKKwkJCXN0YXJ0bGluZSA9IGF0b2koYXJndlthcmddICsgMSk7CisJCQlicmVhazsKKwkJY2FzZSAnLyc6CisJCQlzZWFyY2hmb3IgPSBhcmd2W2FyZ10gKyAyOworCQkJaWYgKCpzZWFyY2hmb3IgPT0gJ1wwJykKKwkJCQluZWVkYXJnKCIrLyIpOworCQkJcCA9IHNlYXJjaGZvciArIHN0cmxlbihzZWFyY2hmb3IpIC0gMTsKKwkJCWlmICgqcCA9PSAnLycpICpwID0gJ1wwJzsKKwkJCWlmICgqc2VhcmNoZm9yID09ICdcMCcpCisJCQkJbmVlZGFyZygiKy8iKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJaW52b3B0KGFyZ3ZbYXJnXSk7CisJCX0KKwl9CisJaWYgKGFyZ2MgPT0gMSkgeworCQlwZ2ZpbGUoc3RkaW4sICJzdGRpbiIpOworCX0gZWxzZSB7CisJCWZpbGVzLmZpcnN0ID0gYXJnOworCQlmaWxlcy5sYXN0ID0gYXJnICsgYXJnYyAtIDE7CisJCWZvciAoIDsgYXJndlthcmddOyBhcmcgKz0gbmV4dGZpbGUpIHsKKwkJCW5leHRmaWxlID0gMTsKKwkJCWZpbGVzLmN1cnJlbnQgPSBhcmc7CisJCQlpZiAoYXJnYyA+IDIpIHsKKwkJCQlzdGF0aWMgaW50IGZpcnN0dGltZTsKKwkJCQlmaXJzdHRpbWUrKzsKKwkJCQlpZiAoZmlyc3R0aW1lID4gMSkgeworCQkJCQltZXNnKF8oIihOZXh0IGZpbGU6ICIpKTsKKwkJCQkJbWVzZyhhcmd2W2FyZ10pOworCQkJCQltZXNnKCIpIik7CituZXdmaWxlOgorCQkJCQlpZiAob250dHkpIHsKKwkJCQkJcHJvbXB0KC0xKTsKKwkJCQkJc3dpdGNoKGNtZC5rZXkpIHsKKwkJCQkJY2FzZSAnbic6CisJCQkJCQkvKgorCQkJCQkgCSogTmV4dCBmaWxlLgorCQkJCQkgCSovCisJCQkJCQlpZiAoY21kLmNvdW50ID09IDApCisJCQkJCQkJY21kLmNvdW50ID0gMTsKKwkJCQkJCW5leHRmaWxlID0gY21kLmNvdW50OworCQkJCQkJaWYgKGNoZWNrZigpKSB7CisJCQkJCQkJbmV4dGZpbGUgPSAxOworCQkJCQkJCW1lc2coIjoiKTsKKwkJCQkJCQlnb3RvIG5ld2ZpbGU7CisJCQkJCQl9CisJCQkJCQljb250aW51ZTsKKwkJCQkJY2FzZSAncCc6CisJCQkJCQkvKgorCQkJCQkgCSogUHJldmlvdXMgZmlsZS4KKwkJCQkJIAkqLworCQkJCQkJaWYgKGNtZC5jb3VudCA9PSAwKQorCQkJCQkJCWNtZC5jb3VudCA9IDE7CisJCQkJCQluZXh0ZmlsZSA9IDAgLSBjbWQuY291bnQ7CisJCQkJCQlpZiAoY2hlY2tmKCkpIHsKKwkJCQkJCQluZXh0ZmlsZSA9IDE7CisJCQkJCQkJbWVzZygiOiIpOworCQkJCQkJCWdvdG8gbmV3ZmlsZTsKKwkJCQkJCX0KKwkJCQkJCWNvbnRpbnVlOworCQkJCQljYXNlICdxJzoKKwkJCQkJY2FzZSAnUSc6CisJCQkJCQlxdWl0KGV4aXRzdGF0dXMpOworCQkJCX0KKwkJCQl9IGVsc2UgbWVzZygiXG4iKTsKKwkJCQl9CisJCQl9CisJCQlpZiAoc3RyY21wKGFyZ3ZbYXJnXSwgIi0iKSA9PSAwKQorCQkJCWlucHV0ID0gc3RkaW47CisJCQllbHNlIHsKKwkJCQlpbnB1dCA9IGZvcGVuKGFyZ3ZbYXJnXSwgInIiKTsKKwkJCQlpZiAoaW5wdXQgPT0gTlVMTCkgeworCQkJCQlwZ2Vycm9yKGVycm5vLCBhcmd2W2FyZ10pOworCQkJCQlleGl0c3RhdHVzKys7CisJCQkJCWNvbnRpbnVlOworCQkJCX0KKwkJCX0KKwkJCWlmIChvbnR0eSA9PSAwICYmIGFyZ2MgPiAyKSB7CisJCQkJLyoKKwkJCQkgKiBVc2UgdGhlIHByZWZpeCBhcyBzcGVjaWZpZWQgYnkgU1VTdjIuCisJCQkJICovCisJCQkJd3JpdGUoMSwgIjo6Ojo6Ojo6Ojo6Ojo6XG4iLCAxNSk7CisJCQkJd3JpdGUoMSwgYXJndlthcmddLCBzdHJsZW4oYXJndlthcmddKSk7CisJCQkJd3JpdGUoMSwgIlxuOjo6Ojo6Ojo6Ojo6OjpcbiIsIDE2KTsKKwkJCX0KKwkJCXBnZmlsZShpbnB1dCwgYXJndlthcmddKTsKKwkJCWlmIChpbnB1dCAhPSBzdGRpbikKKwkJCQlmY2xvc2UoaW5wdXQpOworCQl9CisJfQorCXF1aXQoZXhpdHN0YXR1cyk7CisJLypOT1RSRUFDSEVEKi8KKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvcmV2LjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL3Jldi4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyODg2MTYKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL3Jldi4xCkBAIC0wLDAgKzEsNTMgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5ODUsIDE5OTIgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KKy5cIiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLlwiCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLlwiIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorLlwiICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKy5cIglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisuXCIJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisuXCIgNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKy5cIiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKy5cIiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy5cIgorLlwiIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisuXCIgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisuXCIgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKy5cIiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKy5cIiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorLlwiIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisuXCIgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisuXCIgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKy5cIiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisuXCIgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorLlwiIFNVQ0ggREFNQUdFLgorLlwiCisuXCIJZnJvbTogQCgjKXJldi4xCTYuMyAoQmVya2VsZXkpIDMvMjEvOTIKKy5cIiAgICAgTW9kaWZpZWQgZm9yIExpbnV4IGJ5IENoYXJsZXMgSGFubnVtIChteWNyb2Z0QGdudS5haS5taXQuZWR1KQorLlwiICAgICAgICAgICAgICAgICAgICAgICBhbmQgQnJpYW4gS29laG1zdGVkdCAoYnBrQGdudS5haS5taXQuZWR1KQorLlwiCisuRGQgTWFyY2ggMjEsIDE5OTIKKy5EdCBSRVYgMQorLk9zCisuU2ggTkFNRQorLk5tIHJldgorLk5kIHJldmVyc2UgbGluZXMgb2YgYSBmaWxlIG9yIGZpbGVzCisuU2ggU1lOT1BTSVMKKy5ObSByZXYKKy5PcCBBciBmaWxlIC4uLgorLlNoIERFU0NSSVBUSU9OCitUaGUKKy5ObSByZXYKK3V0aWxpdHkgY29waWVzIHRoZSBzcGVjaWZpZWQgZmlsZXMgdG8gdGhlIHN0YW5kYXJkIG91dHB1dCwgcmV2ZXJzaW5nIHRoZQorb3JkZXIgb2YgY2hhcmFjdGVycyBpbiBldmVyeSBsaW5lLgorSWYgbm8gZmlsZXMgYXJlIHNwZWNpZmllZCwgdGhlIHN0YW5kYXJkIGlucHV0IGlzIHJlYWQuCisuU2ggQVZBSUxBQklMSVRZCitUaGUgcmV2IGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgdXRpbC1saW51eC1uZyBwYWNrYWdlIGFuZCBpcyBhdmFpbGFibGUgZnJvbQorZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvLgpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy9yZXYuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvcmV2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FlMzhjZgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvcmV2LmMKQEAgLTAsMCArMSwxNDUgQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAxOTg3LCAxOTkyIFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mCisgKglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKyAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogTW9kaWZpZWQgZm9yIExpbnV4IGJ5IENoYXJsZXMgSGFubnVtIChteWNyb2Z0QGdudS5haS5taXQuZWR1KQorICogICAgICAgICAgICAgICAgICAgYW5kIEJyaWFuIEtvZWhtc3RlZHQgKGJwa0BnbnUuYWkubWl0LmVkdSkKKyAqCisgKiBXZWQgU2VwIDE0IDIyOjI2OjAwIDE5OTQ6IFBhdGNoIGZyb20gYmpkb3VtYSA8Ympkb3VtYUB4czRhbGwubmw+IHRvIGhhbmRsZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0IGxpbmUgdGhhdCBoYXMgbm8gbmV3bGluZSBjb3JyZWN0bHkuCisgKiAzLUp1bi0xOTk4OiBQYXRjaGVkIGJ5IE5pY29sYWkgTGFuZ2ZlbGR0IHRvIHdvcmsgYmV0dGVyIG9uIExpbnV4OgorICogCUhhbmRsZSBhbnktbGVuZ3RoLWxpbmVzLiAgQ29kZSBjb3BpZWQgZnJvbSB1dGlsLWxpbnV4JyBzZXRwd25hbS5jCisgKiAxOTk5LTAyLTIyIEFya2FkaXVzeiBNabZraWV3aWN6IDxtaXNpZWtAcGxkLk9SRy5QTD4KKyAqIAlhZGRlZCBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAorICogMTk5OS0wOS0xOSBCcnVubyBIYWlibGUgPGhhaWJsZUBjbGlzcC5jb25zLm9yZz4KKyAqIAltb2RpZmllZCB0byB3b3JrIGNvcnJlY3RseSBpbiBtdWx0aS1ieXRlIGxvY2FsZXMKKyAqCisgKi8KKworI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxlcnIuaD4KKworI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgIndpZGVjaGFyLmgiCisKK3ZvaWQgdXNhZ2Uodm9pZCk7CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICByZWdpc3RlciBjaGFyICpmaWxlbmFtZTsKKyAgcmVnaXN0ZXIgd2NoYXJfdCAqdDsKKyAgc2l6ZV90IGJ1ZmxlbiA9IDUxMjsKKyAgd2NoYXJfdCAqcCA9IG1hbGxvYyhidWZsZW4qc2l6ZW9mKHdjaGFyX3QpKTsKKyAgc2l6ZV90IGxlbjsKKyAgRklMRSAqZnA7CisgIGludCBjaCwgcnZhbDsKKworICBzZXRsb2NhbGUoTENfQUxMLCAiIik7CisgIGJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisgIHRleHRkb21haW4oUEFDS0FHRSk7CisKKyAgd2hpbGUgKChjaCA9IGdldG9wdChhcmdjLCBhcmd2LCAiIikpICE9IC0xKQorICAgIHN3aXRjaChjaCkgeworICAgIGNhc2UgJz8nOgorICAgIGRlZmF1bHQ6CisgICAgICB1c2FnZSgpOworICAgIH0KKworICBhcmdjIC09IG9wdGluZDsKKyAgYXJndiArPSBvcHRpbmQ7CisKKyAgZnAgPSBzdGRpbjsKKyAgZmlsZW5hbWUgPSAic3RkaW4iOworICBydmFsID0gMDsKKyAgZG8geworICAgIGlmICgqYXJndikgeworICAgICAgaWYgKChmcCA9IGZvcGVuKCphcmd2LCAiciIpKSA9PSBOVUxMKSB7CisJd2FybigiY2Fubm90IG9wZW4gJXMiLCAqYXJndiApOworCXJ2YWwgPSAxOworCSsrYXJndjsKKwljb250aW51ZTsKKyAgICAgIH0KKyAgICAgIGZpbGVuYW1lID0gKmFyZ3YrKzsKKyAgICB9CisKKyAgICB3aGlsZSAoZmdldHdzKHAsIGJ1ZmxlbiwgZnApKSB7CisKKyAgICAgIGxlbiA9IHdjc2xlbihwKTsKKworICAgICAgLyogVGhpcyBpcyBteSBoYWNrIGZyb20gc2V0cHduYW0uYyAtamFubCAqLworICAgICAgd2hpbGUgKHBbbGVuLTFdICE9ICdcbicgJiYgIWZlb2YoZnApKSB7CisJLyogRXh0ZW5kIGlucHV0IGJ1ZmZlciBpZiBpdCBmYWlsZWQgZ2V0dGluZyB0aGUgd2hvbGUgbGluZSAqLworCisJLyogU28gbm93IHdlIGRvdWJsZSB0aGUgYnVmZmVyIHNpemUgKi8KKwlidWZsZW4gKj0gMjsKKworCXAgPSByZWFsbG9jKHAsIGJ1ZmxlbipzaXplb2Yod2NoYXJfdCkpOworCWlmIChwID09IE5VTEwpCisJICBlcnIoMSwgXygidW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnNwYWNlIikpOworCisJLyogQW5kIGZpbGwgdGhlIHJlc3Qgb2YgdGhlIGJ1ZmZlciAqLworCWlmIChmZ2V0d3MoJnBbbGVuXSwgYnVmbGVuLzIsIGZwKSA9PSBOVUxMKSBicmVhazsKKworCWxlbiA9IHdjc2xlbihwKTsKKworCS8qIFRoYXQgd2FzIGEgbG90IG9mIHdvcmsgZm9yIG5vdGhpbmcuICBHaW1tZSBwZXJsISAqLworICAgICAgfQorCisgICAgICB0ID0gcCArIGxlbiAtIDEgLSAoKihwK2xlbi0xKT09J1xyJyB8fCAqKHArbGVuLTEpPT0nXG4nKTsKKyAgICAgIGZvciAoIDsgdCA+PSBwOyAtLXQpCisJaWYgKCp0ICE9IDApCisJICBwdXR3Y2hhcigqdCk7CisgICAgICBwdXR3Y2hhcignXG4nKTsKKyAgICB9CisgICAgZmZsdXNoKGZwKTsKKyAgICBpZiAoZmVycm9yKGZwKSkgeworICAgICAgd2FybigiJXMiLCBmaWxlbmFtZSk7CisgICAgICBydmFsID0gMTsKKyAgICB9CisgICAgaWYgKGZjbG9zZShmcCkpCisgICAgICBydmFsID0gMTsKKyAgfSB3aGlsZSgqYXJndik7CisgIGV4aXQocnZhbCk7Cit9CisKK3ZvaWQKK3VzYWdlKHZvaWQpCit7CisJKHZvaWQpZnByaW50ZihzdGRlcnIsIF8oInVzYWdlOiByZXYgW2ZpbGUgLi4uXVxuIikpOworCWV4aXQoMSk7Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL3RhaWxmLjEgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL3RhaWxmLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk0ZDlkNgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvdGFpbGYuMQpAQCAtMCwwICsxLDYxIEBACisuXCIgdGFpbGYuMSAtLSAKKy5cIiBDcmVhdGVkOiBUaHUgSmFuIDExIDE2OjQzOjEwIDE5OTYgYnkgZmFpdGhAYWNtLm9yZworLlwiIENvcHlyaWdodCAxOTk2LCAyMDAzIFJpY2thcmQgRS4gRmFpdGggKGZhaXRoQGFjbS5vcmcpCisuXCIgCisuXCIgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIG1ha2UgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoaXMKKy5cIiBtYW51YWwgcHJvdmlkZWQgdGhlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXJlCisuXCIgcHJlc2VydmVkIG9uIGFsbCBjb3BpZXMuCisuXCIgCisuXCIgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhpcworLlwiIG1hbnVhbCB1bmRlciB0aGUgY29uZGl0aW9ucyBmb3IgdmVyYmF0aW0gY29weWluZywgcHJvdmlkZWQgdGhhdCB0aGUKKy5cIiBlbnRpcmUgcmVzdWx0aW5nIGRlcml2ZWQgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgYQorLlwiIHBlcm1pc3Npb24gbm90aWNlIGlkZW50aWNhbCB0byB0aGlzIG9uZS4KKy5cIiAKKy5cIiBTaW5jZSB0aGUgTGludXgga2VybmVsIGFuZCBsaWJyYXJpZXMgYXJlIGNvbnN0YW50bHkgY2hhbmdpbmcsIHRoaXMKKy5cIiBtYW51YWwgcGFnZSBtYXkgYmUgaW5jb3JyZWN0IG9yIG91dC1vZi1kYXRlLiAgVGhlIGF1dGhvcihzKSBhc3N1bWUgbm8KKy5cIiByZXNwb25zaWJpbGl0eSBmb3IgZXJyb3JzIG9yIG9taXNzaW9ucywgb3IgZm9yIGRhbWFnZXMgcmVzdWx0aW5nIGZyb20KKy5cIiB0aGUgdXNlIG9mIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluLiAgVGhlIGF1dGhvcihzKSBtYXkgbm90CisuXCIgaGF2ZSB0YWtlbiB0aGUgc2FtZSBsZXZlbCBvZiBjYXJlIGluIHRoZSBwcm9kdWN0aW9uIG9mIHRoaXMgbWFudWFsLAorLlwiIHdoaWNoIGlzIGxpY2Vuc2VkIGZyZWUgb2YgY2hhcmdlLCBhcyB0aGV5IG1pZ2h0IHdoZW4gd29ya2luZworLlwiIHByb2Zlc3Npb25hbGx5LgorLlwiIAorLlwiIEZvcm1hdHRlZCBvciBwcm9jZXNzZWQgdmVyc2lvbnMgb2YgdGhpcyBtYW51YWwsIGlmIHVuYWNjb21wYW5pZWQgYnkKKy5cIiB0aGUgc291cmNlLCBtdXN0IGFja25vd2xlZGdlIHRoZSBjb3B5cmlnaHQgYW5kIGF1dGhvcnMgb2YgdGhpcyB3b3JrLgorLlwiIAorLlRIIFRBSUxGIDEgIjEzIEZlYnJ1YXJ5IDIwMDMiICIiICJMaW51eCBQcm9ncmFtbWVyJ3MgTWFudWFsIgorLlNIIE5BTUUKK3RhaWxmIFwtIGZvbGxvdyB0aGUgZ3Jvd3RoIG9mIGEgbG9nIGZpbGUKKy5TSCBTWU5PUFNJUworLkIgdGFpbGYKK1tcZklPUFRJT05cZlJdIFxmSWZpbGVcZlIKKy5TSCBERVNDUklQVElPTgorLkIgdGFpbGYKK3dpbGwgcHJpbnQgb3V0IHRoZSBsYXN0IDEwIGxpbmVzIG9mIGEgZmlsZSBhbmQgdGhlbiB3YWl0IGZvciB0aGUgZmlsZSB0bworZ3Jvdy4gIEl0IGlzIHNpbWlsYXIgdG8KKy5CIHRhaWwgLWYKK2J1dCBkb2VzIG5vdCBhY2Nlc3MgdGhlIGZpbGUgd2hlbiBpdCBpcyBub3QgZ3Jvd2luZy4gIFRoaXMgaGFzIHRoZSBzaWRlCitlZmZlY3Qgb2Ygbm90IHVwZGF0aW5nIHRoZSBhY2Nlc3MgdGltZSBmb3IgdGhlIGZpbGUsIHNvIGEgZmlsZXN5c3RlbSBmbHVzaAorZG9lcyBub3Qgb2NjdXIgcGVyaW9kaWNhbGx5IHdoZW4gbm8gbG9nIGFjdGl2aXR5IGlzIGhhcHBlbmluZy4KKy5QUAorLkIgdGFpbGYKK2lzIGV4dHJlbWVseSB1c2VmdWwgZm9yIG1vbml0b3JpbmcgbG9nIGZpbGVzIG9uIGEgbGFwdG9wIHdoZW4gbG9nZ2luZyBpcworaW5mcmVxdWVudCBhbmQgdGhlIHVzZXIgZGVzaXJlcyB0aGF0IHRoZSBoYXJkIGRpc2sgc3BpbiBkb3duIHRvIGNvbnNlcnZlCitiYXR0ZXJ5IGxpZmUuCisuUFAKK01hbmRhdG9yeSBhcmd1bWVudHMgdG8gbG9uZyBvcHRpb25zIGFyZSBtYW5kYXRvcnkgZm9yIHNob3J0IG9wdGlvbnMgdG9vLgorLlRQCitcZkJcLW5cZlIsIFxmQlwtXC1saW5lc1xmUj1cZklOXGZSLCBcZkJcLU5cZlIKK291dHB1dCB0aGUgbGFzdAorLkkgTgorbGluZXMsIGluc3RlYWQgb2YgdGhlIGxhc3QgMTAuCisuU0ggQVVUSE9SCitUaGlzIHByb2dyYW0gd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSBSaWsgRmFpdGggKGZhaXRoQGFjbS5vcmcpIGFuZCBtYXkgYmUgZnJlZWx5CitkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFgxMS9NSVQgTGljZW5zZS4gIFRoZXJlIGlzIEFCU09MVVRFTFkKK05PIFdBUlJBTlRZIGZvciB0aGlzIHByb2dyYW0uCisKK1RoZSBsYXRlc3QgaW5vdGlmeSBiYXNlZCBpbXBsZW1lbnRhdGlvbiB3YXMgd3JpdHRlbiBieSBLYXJlbCBaYWsgKGt6YWtAcmVkaGF0LmNvbSkuCisuU0ggIlNFRSBBTFNPIgorLkJSIHRhaWwgIigxKSwgIiBsZXNzICIoMSkiCisuU0ggQVZBSUxBQklMSVRZCitUaGUgdGFpbGYgY29tbWFuZCBpcyBwYXJ0IG9mIHRoZSB1dGlsLWxpbnV4LW5nIHBhY2thZ2UgYW5kIGlzIGF2YWlsYWJsZSBmcm9tCitmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy8uCmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL3RhaWxmLmMgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90ZXh0LXV0aWxzL3RhaWxmLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU5OThjZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvdGFpbGYuYwpAQCAtMCwwICsxLDIyNyBAQAorLyogdGFpbGYuYyAtLSB0YWlsIGEgbG9nIGZpbGUgYW5kIHRoZW4gZm9sbG93IGl0CisgKiBDcmVhdGVkOiBUdWUgSmFuICA5IDE1OjQ5OjIxIDE5OTYgYnkgZmFpdGhAYWNtLm9yZworICogQ29weXJpZ2h0IDE5OTYsIDIwMDMgUmlja2FyZCBFLiBGYWl0aCAoZmFpdGhAYWNtLm9yZykKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisgKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogbGVzcyAtRiBhbmQgdGFpbCAtZiBjYXVzZSBhIGRpc2sgYWNjZXNzIGV2ZXJ5IGZpdmUgc2Vjb25kcy4gIFRoaXMKKyAqIHByb2dyYW0gYXZvaWRzIHRoaXMgcHJvYmxlbSBieSB3YWl0aW5nIGZvciB0aGUgZmlsZSBzaXplIHRvIGNoYW5nZS4KKyAqIEhlbmNlLCB0aGUgZmlsZSBpcyBub3QgYWNjZXNzZWQsIGFuZCB0aGUgYWNjZXNzIHRpbWUgZG9lcyBub3QgbmVlZCB0byBiZQorICogZmx1c2hlZCBiYWNrIHRvIGRpc2suICBUaGlzIGlzIHNvcnQgb2YgYSAic3RlYWx0aCIgdGFpbC4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxtYWxsb2MuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGVyci5oPgorI2lmZGVmIEhBVkVfSU5PVElGWV9JTklUCisjaW5jbHVkZSA8c3lzL2lub3RpZnkuaD4KKyNlbmRpZgorI2luY2x1ZGUgIm5scy5oIgorI2luY2x1ZGUgInVzbGVlcC5oIgorCisjZGVmaW5lIERFRkFVTFRfTElORVMgIDEwCisKK3N0YXRpYyB2b2lkCit0YWlsZihjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGxpbmVzKQoreworCWNoYXIgKmJ1ZiwgKnA7CisJaW50ICBoZWFkID0gMDsKKwlpbnQgIHRhaWwgPSAwOworCUZJTEUgKnN0cjsKKwlpbnQgIGk7CisKKwlpZiAoIShzdHIgPSBmb3BlbihmaWxlbmFtZSwgInIiKSkpCisJCWVycihFWElUX0ZBSUxVUkUsIF8oImNhbm5vdCBvcGVuIFwiJXNcIiBmb3IgcmVhZCIpLCBmaWxlbmFtZSk7CisKKwlidWYgPSBtYWxsb2MobGluZXMgKiBCVUZTSVopOworCXAgPSBidWY7CisJd2hpbGUgKGZnZXRzKHAsIEJVRlNJWiwgc3RyKSkgeworCQlpZiAoKyt0YWlsID49IGxpbmVzKSB7CisJCQl0YWlsID0gMDsKKwkJCWhlYWQgPSAxOworCQl9CisJCXAgPSBidWYgKyAodGFpbCAqIEJVRlNJWik7CisJfQorCisJaWYgKGhlYWQpIHsKKwkJZm9yIChpID0gdGFpbDsgaSA8IGxpbmVzOyBpKyspCisJCQlmcHV0cyhidWYgKyAoaSAqIEJVRlNJWiksIHN0ZG91dCk7CisJCWZvciAoaSA9IDA7IGkgPCB0YWlsOyBpKyspCisJCQlmcHV0cyhidWYgKyAoaSAqIEJVRlNJWiksIHN0ZG91dCk7CisJfSBlbHNlIHsKKwkJZm9yIChpID0gaGVhZDsgaSA8IHRhaWw7IGkrKykKKwkJCWZwdXRzKGJ1ZiArIChpICogQlVGU0laKSwgc3Rkb3V0KTsKKwl9CisKKwlmZmx1c2goc3Rkb3V0KTsKKwlmcmVlKGJ1Zik7CisJZmNsb3NlKHN0cik7Cit9CisKK3N0YXRpYyB2b2lkCityb2xsX2ZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIG9mZl90ICpzaXplKQoreworCWNoYXIgYnVmW0JVRlNJWl07CisJaW50IGZkOworCXN0cnVjdCBzdGF0IHN0OworCisJaWYgKCEoZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1JET05MWSkpKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJjYW5ub3Qgb3BlbiBcIiVzXCIgZm9yIHJlYWQiKSwgZmlsZW5hbWUpOworCisJaWYgKGZzdGF0KGZkLCAmc3QpID09IC0xKQorCQllcnIoRVhJVF9GQUlMVVJFLCBfKCJjYW5ub3Qgc3RhdCBcIiVzXCIiKSwgZmlsZW5hbWUpOworCisJaWYgKHN0LnN0X3NpemUgPT0gKnNpemUpIHsKKwkJY2xvc2UoZmQpOworCQlyZXR1cm47CisJfQorCisJaWYgKGxzZWVrKGZkLCAqc2l6ZSwgU0VFS19TRVQpICE9IChvZmZfdCktMSkgeworCQlzc2l6ZV90IHJjLCB3YzsKKworCQl3aGlsZSAoKHJjID0gcmVhZChmZCwgYnVmLCBzaXplb2YoYnVmKSkpID4gMCkgeworCQkJd2MgPSB3cml0ZShTVERPVVRfRklMRU5PLCBidWYsIHJjKTsKKwkJCWlmIChyYyAhPSB3YykKKwkJCQl3YXJueChfKCJpbmNvbXBsZXRlIHdyaXRlIHRvIFwiJXNcIiAod3JpdHRlbiAlemQsIGV4cGVjdGVkICV6ZClcbiIpLAorCQkJCQlmaWxlbmFtZSwgd2MsIHJjKTsKKwkJfQorCQlmZmx1c2goc3Rkb3V0KTsKKwl9CisJY2xvc2UoZmQpOworCSpzaXplID0gc3Quc3Rfc2l6ZTsKK30KKworc3RhdGljIHZvaWQKK3dhdGNoX2ZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIG9mZl90ICpzaXplKQoreworCWRvIHsKKwkJcm9sbF9maWxlKGZpbGVuYW1lLCBzaXplKTsKKwkJdXNsZWVwKDI1MDAwMCk7CisJfSB3aGlsZSgxKTsKK30KKworCisjaWZkZWYgSEFWRV9JTk9USUZZX0lOSVQKKworI2RlZmluZSBFVkVOVFMJCShJTl9NT0RJRll8SU5fREVMRVRFX1NFTEZ8SU5fTU9WRV9TRUxGfElOX1VOTU9VTlQpCisjZGVmaW5lIE5FVkVOVFMJCTQKKworc3RhdGljIGludAord2F0Y2hfZmlsZV9pbm90aWZ5KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBvZmZfdCAqc2l6ZSkKK3sKKwljaGFyIGJ1ZlsgTkVWRU5UUyAqIHNpemVvZihzdHJ1Y3QgaW5vdGlmeV9ldmVudCkgXTsKKwlpbnQgZmQsIGZmZCwgZTsKKwlzc2l6ZV90IGxlbjsKKworCWZkID0gaW5vdGlmeV9pbml0KCk7CisJaWYgKGZkID09IC0xKQorCQlyZXR1cm4gMDsKKworCWZmZCA9IGlub3RpZnlfYWRkX3dhdGNoKGZkLCBmaWxlbmFtZSwgRVZFTlRTKTsKKwlpZiAoZmZkID09IC0xKSB7CisJCWlmIChlcnJubyA9PSBFTk9TUEMpCisJCQllcnJ4KEVYSVRfRkFJTFVSRSwgXygiJXM6IGNhbm5vdCBhZGQgaW5vdGlmeSB3YXRjaCAiCisJCQkJIihsaW1pdCBvZiBpbm90aWZ5IHdhdGNoZXMgd2FzIHJlYWNoZWQpLiIpLAorCQkJCWZpbGVuYW1lKTsKKworCQllcnIoRVhJVF9GQUlMVVJFLCBfKCIlczogY2Fubm90IGFkZCBpbm90aWZ5IHdhdGNoLiIpLCBmaWxlbmFtZSk7CisJfQorCisJd2hpbGUgKGZmZCA+PSAwKSB7CisJCWxlbiA9IHJlYWQoZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCQlpZiAobGVuIDwgMCAmJiAoZXJybm8gPT0gRUlOVFIgfHwgZXJybm8gPT0gRUFHQUlOKSkKKwkJCWNvbnRpbnVlOworCQlpZiAobGVuIDwgMCkKKwkJCWVycihFWElUX0ZBSUxVUkUsCisJCQkJXygiJXM6IGNhbm5vdCByZWFkIGlub3RpZnkgZXZlbnRzIiksIGZpbGVuYW1lKTsKKworCQlmb3IgKGUgPSAwOyBlIDwgbGVuOyApIHsKKwkJCXN0cnVjdCBpbm90aWZ5X2V2ZW50ICpldiA9IChzdHJ1Y3QgaW5vdGlmeV9ldmVudCAqKSAmYnVmW2VdOworCisJCQlpZiAoZXYtPm1hc2sgJiBJTl9NT0RJRlkpCisJCQkJcm9sbF9maWxlKGZpbGVuYW1lLCBzaXplKTsKKwkJCWVsc2UgeworCQkJCWNsb3NlKGZmZCk7CisJCQkJZmZkID0gLTE7CisJCQkJYnJlYWs7CisJCQl9CisJCQllICs9IHNpemVvZihzdHJ1Y3QgaW5vdGlmeV9ldmVudCkgKyBldi0+bGVuOworCQl9CisJfQorCWNsb3NlKGZkKTsKKwlyZXR1cm4gMTsKK30KKworI2VuZGlmIC8qIEhBVkVfSU5PVElGWV9JTklUICovCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwljb25zdCBjaGFyICpmaWxlbmFtZTsKKwlpbnQgbGluZXMgPSBERUZBVUxUX0xJTkVTOworCXN0cnVjdCBzdGF0IHN0OworCW9mZl90IHNpemUgPSAwOworCisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExPQ0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCWFyZ2MtLTsKKwlhcmd2Kys7CisKKwlmb3IgKDsgYXJnYyA+IDAgJiYgYXJndlswXVswXSA9PSAnLSc7IGFyZ2MtLSwgYXJndisrKSB7CisJCWlmICghc3RyY21wKCphcmd2LCAiLW4iKSB8fCAhc3RyY21wKCphcmd2LCAiLS1saW5lcyIpKSB7CisJCQlhcmdjLS07CWFyZ3YrKzsKKwkJCWlmIChhcmdjID4gMCAmJiAobGluZXMgPSBhdG9pKGFyZ3ZbMF0pKSA8PSAwKQorCQkJCWVycngoRVhJVF9GQUlMVVJFLCBfKCJpbnZhbGlkIG51bWJlciBvZiBsaW5lcyIpKTsKKwkJfQorCQllbHNlIGlmIChpc2RpZ2l0KGFyZ3ZbMF1bMV0pKSB7CisJCQlpZiAoKGxpbmVzID0gYXRvaSgqYXJndiArIDEpKSA8PSAwKQorCQkJCWVycngoRVhJVF9GQUlMVVJFLCBfKCJpbnZhbGlkIG51bWJlciBvZiBsaW5lcyIpKTsKKwkJfQorCQllbHNlCisJCQllcnJ4KEVYSVRfRkFJTFVSRSwgXygiaW52YWxpZCBvcHRpb24iKSk7CisJfQorCisJaWYgKGFyZ2MgIT0gMSkKKwkJZXJyeChFWElUX0ZBSUxVUkUsIF8oInVzYWdlOiB0YWlsZiBbLW4gTiB8IC1OXSBsb2dmaWxlIikpOworCisJZmlsZW5hbWUgPSBhcmd2WzBdOworCisJaWYgKHN0YXQoZmlsZW5hbWUsICZzdCkgIT0gMCkKKwkJZXJyKEVYSVRfRkFJTFVSRSwgXygiY2Fubm90IHN0YXQgXCIlc1wiIiksIGZpbGVuYW1lKTsKKworCXNpemUgPSBzdC5zdF9zaXplOzsKKwl0YWlsZihmaWxlbmFtZSwgbGluZXMpOworCisjaWZkZWYgSEFWRV9JTk9USUZZX0lOSVQKKwlpZiAoIXdhdGNoX2ZpbGVfaW5vdGlmeShmaWxlbmFtZSwgJnNpemUpKQorI2VuZGlmCisJCXdhdGNoX2ZpbGUoZmlsZW5hbWUsICZzaXplKTsKKworCXJldHVybiBFWElUX1NVQ0NFU1M7Cit9CisKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvdWwuMSBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvdWwuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWM2OTQwCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy91bC4xCkBAIC0wLDAgKzEsMTEwIEBACisuXCIgQ29weXJpZ2h0IChjKSAxOTgwLCAxOTkxLCAxOTkzCisuXCIJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisuXCIKKy5cIiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy5cIiBhcmUgbWV0OgorLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLlwiIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisuXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLlwiICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisuXCIgMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisuXCIgICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorLlwiCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIFVuaXZlcnNpdHkgb2YKKy5cIglDYWxpZm9ybmlhLCBCZXJrZWxleSBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4KKy5cIiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorLlwiICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKy5cIiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy5cIiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorLlwiIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorLlwiIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisuXCIgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKy5cIiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKy5cIiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLlwiIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKy5cIiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisuXCIgU1VDSCBEQU1BR0UuCisuXCIKKy5cIiAgICAgQCgjKXVsLjEJOC4xIChCZXJrZWxleSkgNi82LzkzCisuXCIKKy5EZCBKdW5lIDYsIDE5OTMKKy5EdCBVTCAxCisuT3MgQlNEIDQKKy5TaCBOQU1FCisuTm0gdWwKKy5OZCBkbyB1bmRlcmxpbmluZworLlNoIFNZTk9QU0lTCisuTm0gdWwKKy5PcCBGbCBpCisuT3AgRmwgdCBBciB0ZXJtaW5hbAorLk9wIEFyIG5hbWUgQXIgLi4uCisuU2ggREVTQ1JJUFRJT04KKy5ObSBVbAorcmVhZHMgdGhlIG5hbWVkIGZpbGVzIChvciBzdGFuZGFyZCBpbnB1dCBpZiBub25lIGFyZSBnaXZlbikKK2FuZCB0cmFuc2xhdGVzIG9jY3VycmVuY2VzIG9mIHVuZGVyc2NvcmVzIHRvIHRoZSBzZXF1ZW5jZQord2hpY2ggaW5kaWNhdGVzIHVuZGVybGluaW5nIGZvciB0aGUgdGVybWluYWwgaW4gdXNlLCBhcyBzcGVjaWZpZWQKK2J5IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQorLkV2IFRFUk0gLgorVGhlCisuUGEgdGVybWluZm8KK2RhdGFiYXNlIGlzIHJlYWQgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBzZXF1ZW5jZXMgZm9yIHVuZGVybGluaW5nLgorSWYgdGhlIHRlcm1pbmFsIGlzIGluY2FwYWJsZSBvZiB1bmRlcmxpbmluZywgYnV0IGlzIGNhcGFibGUgb2YKK2Egc3RhbmRvdXQgbW9kZSB0aGVuIHRoYXQgaXMgdXNlZCBpbnN0ZWFkLgorSWYgdGhlIHRlcm1pbmFsIGNhbiBvdmVyc3RyaWtlLAorb3IgaGFuZGxlcyB1bmRlcmxpbmluZyBhdXRvbWF0aWNhbGx5LAorLk5tIHVsCitkZWdlbmVyYXRlcyB0bworLlhyIGNhdCAxIC4KK0lmIHRoZSB0ZXJtaW5hbCBjYW5ub3QgdW5kZXJsaW5lLCB1bmRlcmxpbmluZyBpcyBpZ25vcmVkLgorLlBwCitUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIGF2YWlsYWJsZToKKy5CbCAtdGFnIC13aWR0aCBEcworLkl0IEZsIGkKK1VuZGVybGluaW5nIGlzIGluZGljYXRlZCBieSBhIHNlcGFyYXRlIGxpbmUgY29udGFpbmluZyBhcHByb3ByaWF0ZQorZGFzaGVzIGBcLSc7IHRoaXMgaXMgdXNlZnVsIHdoZW4geW91IHdhbnQgdG8gbG9vayBhdCB0aGUgdW5kZXJsaW5pbmcKK3doaWNoIGlzIHByZXNlbnQgaW4gYW4KKy5YciBucm9mZgorb3V0cHV0IHN0cmVhbSBvbiBhIGNydC10ZXJtaW5hbC4KKy5JdCBGbCB0IEFyIHRlcm1pbmFsCitPdmVycmlkZXMgdGhlIHRlcm1pbmFsIHR5cGUgc3BlY2lmaWVkIGluIHRoZSBlbnZpcm9ubWVudCB3aXRoCisuQXIgdGVybWluYWwgLgorLkVsCisuU2ggRU5WSVJPTk1FTlQKK1RoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgdXNlZDoKKy5CbCAtdGFnIC13aWR0aCBURVJNCisuSXQgRXYgVEVSTQorVGhlCisuRXYgVEVSTQordmFyaWFibGUgaXMgdXNlZCB0byByZWxhdGUgYSB0dHkgZGV2aWNlCit3aXRoIGl0cyBkZXZpY2UgY2FwYWJpbGl0eSBkZXNjcmlwdGlvbiAoc2VlCisuWHIgdGVybWluZm8gNSApIC4KKy5FdiBURVJNCitpcyBzZXQgYXQgbG9naW4gdGltZSwgZWl0aGVyIGJ5IHRoZSBkZWZhdWx0IHRlcm1pbmFsIHR5cGUKK3NwZWNpZmllZCBpbgorLlBhIC9ldGMvdHR5cworb3IgYXMgc2V0IGR1cmluZyB0aGUgbG9naW4gcHJvY2VzcyBieSB0aGUgdXNlciBpbiB0aGVpcgorLlBhIGxvZ2luCitmaWxlIChzZWUKKy5YciBzZXRlbnYgMSApIC4KKy5FbAorLlNoIFNFRSBBTFNPCisuWHIgbWFuIDEgLAorLlhyIG5yb2ZmIDEgLAorLlhyIGNvbGNydCAxCisuU2ggQlVHUworLlhyIE5yb2ZmCit1c3VhbGx5IG91dHB1dHMgYSBzZXJpZXMgb2YgYmFja3NwYWNlcyBhbmQgdW5kZXJsaW5lcyBpbnRlcm1peGVkCit3aXRoIHRoZSB0ZXh0IHRvIGluZGljYXRlIHVuZGVybGluaW5nLiAgTm8gYXR0ZW1wdCBpcyBtYWRlIHRvIG9wdGltaXplCit0aGUgYmFja3dhcmQgbW90aW9uLgorLlNoIEhJU1RPUlkKK1RoZQorLk5tCitjb21tYW5kIGFwcGVhcmVkIGluCisuQnggMy4wIC4KKy5TaCBBVkFJTEFCSUxJVFkKK1RoZSB1bCBjb21tYW5kIGlzIHBhcnQgb2YgdGhlIHV0aWwtbGludXgtbmcgcGFja2FnZSBhbmQgaXMgYXZhaWxhYmxlIGZyb20KK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nLy4KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvdWwuYyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3RleHQtdXRpbHMvdWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTQ5MWI4Ci0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy0yLjE3LjIvdGV4dC11dGlscy91bC5jCkBAIC0wLDAgKzEsNjAzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTgwLCAxOTkzCisgKglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgorICoJQ2FsaWZvcm5pYSwgQmVya2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCisgKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKy8qCisgKiBtb2RpZmllZCBieSBLYXJzIGRlIEpvbmcgPGpvbmdrQGNzLnV0d2VudGUubmw+CisgKgl0byB1c2UgdGVybWluZm8gaW5zdGVhZCBvZiB0ZXJtY2FwLgorICogMTk5OS0wMi0yMiBBcmthZGl1c3ogTWm2a2lld2ljeiA8bWlzaWVrQHBsZC5PUkcuUEw+CisgKiAJYWRkZWQgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKKyAqIDE5OTktMDktMTkgQnJ1bm8gSGFpYmxlIDxoYWlibGVAY2xpc3AuY29ucy5vcmc+CisgKiAJbW9kaWZpZWQgdG8gd29yayBjb3JyZWN0bHkgaW4gbXVsdGktYnl0ZSBsb2NhbGVzCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CQkvKiBmb3IgZ2V0b3B0KCksIGlzYXR0eSgpICovCisjaW5jbHVkZSA8c3RyaW5nLmg+CQkvKiBmb3IgbWVtc2V0KCksIHN0cmNweSgpICovCisjaW5jbHVkZSA8dGVybS5oPgkJLyogZm9yIHNldHVwdGVybSgpICovCisjaW5jbHVkZSA8c3RkbGliLmg+CQkvKiBmb3IgZ2V0ZW52KCkgKi8KKyNpbmNsdWRlIDxsaW1pdHMuaD4JCS8qIGZvciBJTlRfTUFYICovCisjaW5jbHVkZSAibmxzLmgiCisKKyNpbmNsdWRlICJ3aWRlY2hhci5oIgorCisjaWZkZWYgSEFWRV9XSURFQ0hBUgorc3RhdGljIGludCBwdXQxd2MoaW50IGMpIC8qIE91dHB1dCBhbiBBU0NJSSBjaGFyYWN0ZXIgYXMgYSB3aWRlIGNoYXJhY3RlciAqLworeworICBpZiAocHV0d2NoYXIoYykgPT0gV0VPRikKKyAgICByZXR1cm4gRU9GOworICBlbHNlCisgICAgcmV0dXJuIGM7Cit9CisjZGVmaW5lIHB1dHdwKHMpIHRwdXRzKHMsMSxwdXQxd2MpCisjZWxzZQorI2RlZmluZSBwdXR3cChzKSBwdXRwKHMpCisjZW5kaWYKKwordm9pZCBmaWx0ZXIoRklMRSAqZik7Cit2b2lkIGZsdXNobG4odm9pZCk7Cit2b2lkIG92ZXJzdHJpa2Uodm9pZCk7Cit2b2lkIGlhdHRyKHZvaWQpOwordm9pZCBpbml0YnVmKHZvaWQpOwordm9pZCBmd2Qodm9pZCk7Cit2b2lkIHJldmVyc2Uodm9pZCk7Cit2b2lkIGluaXRpbmZvKHZvaWQpOwordm9pZCBvdXRjKHdpbnRfdCBjLCBpbnQgd2lkdGgpOwordm9pZCBzZXRtb2RlKGludCBuZXdtb2RlKTsKK3N0YXRpYyB2b2lkIHNldGNvbChpbnQgbmV3Y29sKTsKK3N0YXRpYyB2b2lkIG5lZWRjb2woaW50IGNvbCk7CisKKyNkZWZpbmUJSUVTQwknXDAzMycKKyNkZWZpbmUJU08JJ1wwMTYnCisjZGVmaW5lCVNJCSdcMDE3JworI2RlZmluZQlIRldECSc5JworI2RlZmluZQlIUkVWCSc4JworI2RlZmluZQlGUkVWCSc3JworCisjZGVmaW5lCU5PUk1BTAkwMDAKKyNkZWZpbmUJQUxUU0VUCTAwMQkvKiBSZXZlcnNlICovCisjZGVmaW5lCVNVUEVSU0MJMDAyCS8qIERpbSAqLworI2RlZmluZQlTVUJTQwkwMDQJLyogRGltIHwgVWwgKi8KKyNkZWZpbmUJVU5ERVJMCTAxMAkvKiBVbCAqLworI2RlZmluZQlCT0xECTAyMAkvKiBCb2xkICovCisjZGVmaW5lCUlOSVRCVUYJNTEyCisKK2ludAltdXN0X3VzZV91YywgbXVzdF9vdmVyc3RyaWtlOworY2hhcgkqQ1VSU19VUCwgKkNVUlNfUklHSFQsICpDVVJTX0xFRlQsCisJKkVOVEVSX1NUQU5ET1VULCAqRVhJVF9TVEFORE9VVCwgKkVOVEVSX1VOREVSTElORSwgKkVYSVRfVU5ERVJMSU5FLAorCSpFTlRFUl9ESU0sICpFTlRFUl9CT0xELCAqRU5URVJfUkVWRVJTRSwgKlVOREVSX0NIQVIsICpFWElUX0FUVFJJQlVURVM7CisKK3N0cnVjdAlDSEFSCXsKKwljaGFyCWNfbW9kZTsKKwl3Y2hhcl90CWNfY2hhcjsKKwlpbnQJY193aWR0aDsKK30gOworCitzdHJ1Y3QJQ0hBUgkqb2J1ZjsKK2ludAlvYnVmbGVuOwkJLyogVHJhY2tzIG51bWJlciBvZiBlbGVtZW50cyBpbiBvYnVmLiAqLworaW50CWNvbCwgbWF4Y29sOworaW50CW1vZGU7CitpbnQJaGFsZnBvczsKK2ludAl1cGxuOworaW50CWlmbGFnOworCisjZGVmaW5lCVBSSU5UKHMpCWlmIChzID09IE5VTEwpIC8qIHZvaWQgKi87IGVsc2UgcHV0d3AocykKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWludCBjLCByZXQ7CisJY2hhciAqdGVybXR5cGU7CisJRklMRSAqZjsKKworCXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNLQUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwl0ZXJtdHlwZSA9IGdldGVudigiVEVSTSIpOworCWlmICh0ZXJtdHlwZSA9PSBOVUxMIHx8IChhcmd2WzBdWzBdID09ICdjJyAmJiAhaXNhdHR5KDEpKSkKKwkJdGVybXR5cGUgPSAibHByIjsKKwl3aGlsZSAoKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgIml0OlQ6IikpICE9IC0xKQorCQlzd2l0Y2goYykgeworCisJCWNhc2UgJ3QnOgorCQljYXNlICdUJzogLyogZm9yIG5yb2ZmIGNvbXBhdGliaWxpdHkgKi8KKwkJCQl0ZXJtdHlwZSA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQljYXNlICdpJzoKKwkJCWlmbGFnID0gMTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQlfKCJ1c2FnZTogJXMgWyAtaSBdIFsgLXRUZXJtIF0gZmlsZS4uLlxuIiksCisJCQkJYXJndlswXSk7CisJCQlleGl0KDEpOworCQl9CisJc2V0dXB0ZXJtKHRlcm10eXBlLCAxLCAmcmV0KTsKKwlzd2l0Y2gocmV0KSB7CisKKwljYXNlIDE6CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJZnByaW50ZihzdGRlcnIsXygidHJvdWJsZSByZWFkaW5nIHRlcm1pbmZvIikpOworCQkvKiBmYWxsIHRocm91Z2ggdG8gLi4uICovCisKKwljYXNlIDA6CisJCS8qIE5vIHN1Y2ggdGVybWluYWwgdHlwZSAtIGFzc3VtZSBkdW1iICovCisJICAgICAgICBzZXR1cHRlcm0oImR1bWIiLCAxLCAoaW50ICopMCk7CisJCWJyZWFrOworCX0KKwlpbml0aW5mbygpOworCWlmICggICAgKHRpZ2V0ZmxhZygib3MiKSAmJiBFTlRFUl9CT0xEPT1OVUxMICkgfHwKKwkJKHRpZ2V0ZmxhZygidWwiKSAmJiBFTlRFUl9VTkRFUkxJTkU9PU5VTEwgJiYgVU5ERVJfQ0hBUj09TlVMTCkpCisJCQltdXN0X292ZXJzdHJpa2UgPSAxOworCWluaXRidWYoKTsKKwlpZiAob3B0aW5kID09IGFyZ2MpCisJCWZpbHRlcihzdGRpbik7CisJZWxzZSBmb3IgKDsgb3B0aW5kPGFyZ2M7IG9wdGluZCsrKSB7CisJCWYgPSBmb3Blbihhcmd2W29wdGluZF0sInIiKTsKKwkJaWYgKGYgPT0gTlVMTCkgeworCQkJcGVycm9yKGFyZ3Zbb3B0aW5kXSk7CisJCQlleGl0KDEpOworCQl9IGVsc2UKKwkJCWZpbHRlcihmKTsKKwl9CisJaWYgKGZlcnJvcihzdGRvdXQpIHx8IGZjbG9zZShzdGRvdXQpKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKwordm9pZCBmaWx0ZXIoRklMRSAqZikKK3sKKwl3aW50X3QgYzsKKwlpbnQgaSwgdzsKKworCXdoaWxlICgoYyA9IGdldHdjKGYpKSAhPSBXRU9GKSBzd2l0Y2goYykgeworCisJY2FzZSAnXGInOgorCQlzZXRjb2woY29sIC0gMSk7CisJCWNvbnRpbnVlOworCisJY2FzZSAnXHQnOgorCQlzZXRjb2woKGNvbCs4KSAmIH4wNyk7CisJCWNvbnRpbnVlOworCisJY2FzZSAnXHInOgorCQlzZXRjb2woMCk7CisJCWNvbnRpbnVlOworCisJY2FzZSBTTzoKKwkJbW9kZSB8PSBBTFRTRVQ7CisJCWNvbnRpbnVlOworCisJY2FzZSBTSToKKwkJbW9kZSAmPSB+QUxUU0VUOworCQljb250aW51ZTsKKworCWNhc2UgSUVTQzoKKwkJc3dpdGNoIChjID0gZ2V0d2MoZikpIHsKKworCQljYXNlIEhSRVY6CisJCQlpZiAoaGFsZnBvcyA9PSAwKSB7CisJCQkJbW9kZSB8PSBTVVBFUlNDOworCQkJCWhhbGZwb3MtLTsKKwkJCX0gZWxzZSBpZiAoaGFsZnBvcyA+IDApIHsKKwkJCQltb2RlICY9IH5TVUJTQzsKKwkJCQloYWxmcG9zLS07CisJCQl9IGVsc2UgeworCQkJCWhhbGZwb3MgPSAwOworCQkJCXJldmVyc2UoKTsKKwkJCX0KKwkJCWNvbnRpbnVlOworCisJCWNhc2UgSEZXRDoKKwkJCWlmIChoYWxmcG9zID09IDApIHsKKwkJCQltb2RlIHw9IFNVQlNDOworCQkJCWhhbGZwb3MrKzsKKwkJCX0gZWxzZSBpZiAoaGFsZnBvcyA8IDApIHsKKwkJCQltb2RlICY9IH5TVVBFUlNDOworCQkJCWhhbGZwb3MrKzsKKwkJCX0gZWxzZSB7CisJCQkJaGFsZnBvcyA9IDA7CisJCQkJZndkKCk7CisJCQl9CisJCQljb250aW51ZTsKKworCQljYXNlIEZSRVY6CisJCQlyZXZlcnNlKCk7CisJCQljb250aW51ZTsKKworCQlkZWZhdWx0OgorCQkJZnByaW50ZihzdGRlcnIsCisJCQkJXygiVW5rbm93biBlc2NhcGUgc2VxdWVuY2UgaW4gaW5wdXQ6ICVvLCAlb1xuIiksCisJCQkJSUVTQywgYyk7CisJCQlleGl0KDEpOworCQl9CisJCWNvbnRpbnVlOworCisJY2FzZSAnXyc6CisJCWlmIChvYnVmW2NvbF0uY19jaGFyIHx8IG9idWZbY29sXS5jX3dpZHRoIDwgMCkgeworCQkJd2hpbGUoY29sID4gMCAmJiBvYnVmW2NvbF0uY193aWR0aCA8IDApCisJCQkJY29sLS07CisJCQl3ID0gb2J1Zltjb2xdLmNfd2lkdGg7CisJCQlmb3IgKGkgPSAwOyBpIDwgdzsgaSsrKQorCQkJCW9idWZbY29sKytdLmNfbW9kZSB8PSBVTkRFUkwgfCBtb2RlOworCQkJc2V0Y29sKGNvbCk7CisJCQljb250aW51ZTsKKwkJfQorCQlvYnVmW2NvbF0uY19jaGFyID0gJ18nOworCQlvYnVmW2NvbF0uY193aWR0aCA9IDE7CisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgJyAnOgorCQlzZXRjb2woY29sICsgMSk7CisJCWNvbnRpbnVlOworCisJY2FzZSAnXG4nOgorCQlmbHVzaGxuKCk7CisJCWNvbnRpbnVlOworCisJY2FzZSAnXGYnOgorCQlmbHVzaGxuKCk7CisJCXB1dHdjaGFyKCdcZicpOworCQljb250aW51ZTsKKworCWRlZmF1bHQ6CisJCWlmICghaXN3cHJpbnQoYykpCS8qIG5vbiBwcmludGluZyAqLworCQkJY29udGludWU7CisJCXcgPSB3Y3dpZHRoKGMpOworCQluZWVkY29sKGNvbCArIHcpOworCQlpZiAob2J1Zltjb2xdLmNfY2hhciA9PSAnXDAnKSB7CisJCQlvYnVmW2NvbF0uY19jaGFyID0gYzsKKwkJCWZvciAoaSA9IDA7IGkgPCB3OyBpKyspCisJCQkJb2J1Zltjb2wraV0uY19tb2RlID0gbW9kZTsKKwkJCW9idWZbY29sXS5jX3dpZHRoID0gdzsKKwkJCWZvciAoaSA9IDE7IGkgPCB3OyBpKyspCisJCQkJb2J1Zltjb2wraV0uY193aWR0aCA9IC0xOworCQl9IGVsc2UgaWYgKG9idWZbY29sXS5jX2NoYXIgPT0gJ18nKSB7CisJCQlvYnVmW2NvbF0uY19jaGFyID0gYzsKKwkJCWZvciAoaSA9IDA7IGkgPCB3OyBpKyspCisJCQkJb2J1Zltjb2wraV0uY19tb2RlIHw9IFVOREVSTHxtb2RlOworCQkJb2J1Zltjb2xdLmNfd2lkdGggPSB3OworCQkJZm9yIChpID0gMTsgaSA8IHc7IGkrKykKKwkJCQlvYnVmW2NvbCtpXS5jX3dpZHRoID0gLTE7CisJCX0gZWxzZSBpZiAob2J1Zltjb2xdLmNfY2hhciA9PSBjKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgdzsgaSsrKQorCQkJCW9idWZbY29sK2ldLmNfbW9kZSB8PSBCT0xEfG1vZGU7CisJCX0gZWxzZSB7CisJCQl3ID0gb2J1Zltjb2xdLmNfd2lkdGg7CisJCQlmb3IgKGkgPSAwOyBpIDwgdzsgaSsrKQorCQkJCW9idWZbY29sK2ldLmNfbW9kZSA9IG1vZGU7CisJCX0KKwkJc2V0Y29sKGNvbCArIHcpOworCQljb250aW51ZTsKKwl9CisJaWYgKG1heGNvbCkKKwkJZmx1c2hsbigpOworfQorCit2b2lkIGZsdXNobG4odm9pZCkKK3sKKwlpbnQgbGFzdG1vZGU7CisJaW50IGk7CisJaW50IGhhZG1vZGVzID0gMDsKKworCWxhc3Rtb2RlID0gTk9STUFMOworCWZvciAoaT0wOyBpPG1heGNvbDsgaSsrKSB7CisJCWlmIChvYnVmW2ldLmNfbW9kZSAhPSBsYXN0bW9kZSkgeworCQkJaGFkbW9kZXMrKzsKKwkJCXNldG1vZGUob2J1ZltpXS5jX21vZGUpOworCQkJbGFzdG1vZGUgPSBvYnVmW2ldLmNfbW9kZTsKKwkJfQorCQlpZiAob2J1ZltpXS5jX2NoYXIgPT0gJ1wwJykgeworCQkJaWYgKHVwbG4pIHsKKwkJCQlQUklOVChDVVJTX1JJR0hUKTsKKwkJCX0gZWxzZQorCQkJCW91dGMoJyAnLCAxKTsKKwkJfSBlbHNlCisJCQlvdXRjKG9idWZbaV0uY19jaGFyLCBvYnVmW2ldLmNfd2lkdGgpOworCQlpZiAob2J1ZltpXS5jX3dpZHRoID4gMSkKKwkJCWkgKz0gb2J1ZltpXS5jX3dpZHRoIC0xOworCX0KKwlpZiAobGFzdG1vZGUgIT0gTk9STUFMKSB7CisJCXNldG1vZGUoMCk7CisJfQorCWlmIChtdXN0X292ZXJzdHJpa2UgJiYgaGFkbW9kZXMpCisJCW92ZXJzdHJpa2UoKTsKKwlwdXR3Y2hhcignXG4nKTsKKwlpZiAoaWZsYWcgJiYgaGFkbW9kZXMpCisJCWlhdHRyKCk7CisJKHZvaWQpZmZsdXNoKHN0ZG91dCk7CisJaWYgKHVwbG4pCisJCXVwbG4tLTsKKwlpbml0YnVmKCk7Cit9CisKKy8qCisgKiBGb3IgdGVybWluYWxzIHRoYXQgY2FuIG92ZXJzdHJpa2UsIG92ZXJzdHJpa2UgdW5kZXJsaW5lcyBhbmQgYm9sZHMuCisgKiBXZSBkb24ndCBkbyBhbnl0aGluZyB3aXRoIGhhbGZsaW5lIHVwcyBhbmQgZG93bnMsIG9yIEdyZWVrLgorICovCit2b2lkIG92ZXJzdHJpa2Uodm9pZCkKK3sKKwlyZWdpc3RlciBpbnQgaTsKKyNpZmRlZiBfX0dOVUNfXworCXJlZ2lzdGVyIHdjaGFyX3QgKmxidWYgPSBfX2J1aWx0aW5fYWxsb2NhKChtYXhjb2wrMSkqc2l6ZW9mKHdjaGFyX3QpKTsKKyNlbHNlCisJd2NoYXJfdCBsYnVmWzI1Nl07CisjZW5kaWYKKwlyZWdpc3RlciB3Y2hhcl90ICpjcCA9IGxidWY7CisJaW50IGhhZGJvbGQ9MDsKKworCS8qIFNldCB1cCBvdmVyc3RyaWtlIGJ1ZmZlciAqLworCWZvciAoaT0wOyBpPG1heGNvbDsgaSsrKQorCQlzd2l0Y2ggKG9idWZbaV0uY19tb2RlKSB7CisJCWNhc2UgTk9STUFMOgorCQlkZWZhdWx0OgorCQkJKmNwKysgPSAnICc7CisJCQlicmVhazsKKwkJY2FzZSBVTkRFUkw6CisJCQkqY3ArKyA9ICdfJzsKKwkJCWJyZWFrOworCQljYXNlIEJPTEQ6CisJCQkqY3ArKyA9IG9idWZbaV0uY19jaGFyOworCQkJaWYgKG9idWZbaV0uY193aWR0aCA+IDEpCisJCQkJaSArPSBvYnVmW2ldLmNfd2lkdGggLSAxOworCQkJaGFkYm9sZD0xOworCQkJYnJlYWs7CisJCX0KKwlwdXR3Y2hhcignXHInKTsKKwlmb3IgKCpjcD0nICc7ICpjcD09JyAnOyBjcC0tKQorCQkqY3AgPSAwOworCWZvciAoY3A9bGJ1ZjsgKmNwOyBjcCsrKQorCQlwdXR3Y2hhcigqY3ApOworCWlmIChoYWRib2xkKSB7CisJCXB1dHdjaGFyKCdccicpOworCQlmb3IgKGNwPWxidWY7ICpjcDsgY3ArKykKKwkJCXB1dHdjaGFyKCpjcD09J18nID8gJyAnIDogKmNwKTsKKwkJcHV0d2NoYXIoJ1xyJyk7CisJCWZvciAoY3A9bGJ1ZjsgKmNwOyBjcCsrKQorCQkJcHV0d2NoYXIoKmNwPT0nXycgPyAnICcgOiAqY3ApOworCX0KK30KKwordm9pZCBpYXR0cih2b2lkKQoreworCXJlZ2lzdGVyIGludCBpOworI2lmZGVmIF9fR05VQ19fCisJcmVnaXN0ZXIgY2hhciAqbGJ1ZiA9IF9fYnVpbHRpbl9hbGxvY2EoKG1heGNvbCsxKSpzaXplb2YoY2hhcikpOworI2Vsc2UKKwljaGFyIGxidWZbMjU2XTsKKyNlbmRpZgorCXJlZ2lzdGVyIGNoYXIgKmNwID0gbGJ1ZjsKKworCWZvciAoaT0wOyBpPG1heGNvbDsgaSsrKQorCQlzd2l0Y2ggKG9idWZbaV0uY19tb2RlKSB7CisJCWNhc2UgTk9STUFMOgkqY3ArKyA9ICcgJzsgYnJlYWs7CisJCWNhc2UgQUxUU0VUOgkqY3ArKyA9ICdnJzsgYnJlYWs7CisJCWNhc2UgU1VQRVJTQzoJKmNwKysgPSAnXic7IGJyZWFrOworCQljYXNlIFNVQlNDOgkqY3ArKyA9ICd2JzsgYnJlYWs7CisJCWNhc2UgVU5ERVJMOgkqY3ArKyA9ICdfJzsgYnJlYWs7CisJCWNhc2UgQk9MRDoJKmNwKysgPSAnISc7IGJyZWFrOworCQlkZWZhdWx0OgkqY3ArKyA9ICdYJzsgYnJlYWs7CisJCX0KKwlmb3IgKCpjcD0nICc7ICpjcD09JyAnOyBjcC0tKQorCQkqY3AgPSAwOworCWZvciAoY3A9bGJ1ZjsgKmNwOyBjcCsrKQorCQlwdXR3Y2hhcigqY3ApOworCXB1dHdjaGFyKCdcbicpOworfQorCit2b2lkIGluaXRidWYodm9pZCkKK3sKKwlpZiAob2J1ZiA9PSBOVUxMKSB7CS8qIEZpcnN0IHRpbWUuICovCisJCW9idWZsZW4gPSBJTklUQlVGOworCQlvYnVmID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgQ0hBUikgKiBvYnVmbGVuKTsKKwkJaWYgKG9idWYgPT0gTlVMTCkgeworCQkJZnByaW50ZihzdGRlcnIsIF8oIlVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIuXG4iKSk7CisJCQlleGl0KDEpOworCQl9CisJfQorCisJLyogYXNzdW1lcyBOT1JNQUwgPT0gMCAqLworCW1lbXNldChvYnVmLCAwLCBzaXplb2Yoc3RydWN0IENIQVIpICogb2J1Zmxlbik7CisJc2V0Y29sKDApOworCW1heGNvbCA9IDA7CisJbW9kZSAmPSBBTFRTRVQ7Cit9CisKK3ZvaWQgZndkKHZvaWQpCit7CisJaW50IG9sZGNvbCwgb2xkbWF4OworCisJb2xkY29sID0gY29sOworCW9sZG1heCA9IG1heGNvbDsKKwlmbHVzaGxuKCk7CisJc2V0Y29sKG9sZGNvbCk7CisJbWF4Y29sID0gb2xkbWF4OworfQorCit2b2lkIHJldmVyc2Uodm9pZCkKK3sKKwl1cGxuKys7CisJZndkKCk7CisJUFJJTlQoQ1VSU19VUCk7CisJUFJJTlQoQ1VSU19VUCk7CisJdXBsbisrOworfQorCit2b2lkIGluaXRpbmZvKHZvaWQpCit7CisJQ1VSU19VUCA9CQl0aWdldHN0cigiY3V1MSIpOworCUNVUlNfUklHSFQgPQkJdGlnZXRzdHIoImN1ZjEiKTsKKwlDVVJTX0xFRlQgPQkJdGlnZXRzdHIoImN1YjEiKTsKKwlpZiAoQ1VSU19MRUZUID09IE5VTEwpCisJCUNVUlNfTEVGVCA9CSJcYiI7CisKKwlFTlRFUl9TVEFORE9VVCA9CXRpZ2V0c3RyKCJzbXNvIik7CisJRVhJVF9TVEFORE9VVCA9CQl0aWdldHN0cigicm1zbyIpOworCUVOVEVSX1VOREVSTElORSA9CXRpZ2V0c3RyKCJzbXVsIik7CisJRVhJVF9VTkRFUkxJTkUgPQl0aWdldHN0cigicm11bCIpOworCUVOVEVSX0RJTSA9CQl0aWdldHN0cigiZGltIik7CisJRU5URVJfQk9MRCA9CQl0aWdldHN0cigiYm9sZCIpOworCUVOVEVSX1JFVkVSU0UgPQkJdGlnZXRzdHIoInJldiIpOworCUVYSVRfQVRUUklCVVRFUyA9CXRpZ2V0c3RyKCJzZ3IwIik7CisKKwlpZiAoIUVOVEVSX0JPTEQgJiYgRU5URVJfUkVWRVJTRSkKKwkJRU5URVJfQk9MRCA9IEVOVEVSX1JFVkVSU0U7CisJaWYgKCFFTlRFUl9CT0xEICYmIEVOVEVSX1NUQU5ET1VUKQorCQlFTlRFUl9CT0xEID0gRU5URVJfU1RBTkRPVVQ7CisJaWYgKCFFTlRFUl9VTkRFUkxJTkUgJiYgRU5URVJfU1RBTkRPVVQpIHsKKwkJRU5URVJfVU5ERVJMSU5FID0gRU5URVJfU1RBTkRPVVQ7CisJCUVYSVRfVU5ERVJMSU5FID0gRVhJVF9TVEFORE9VVDsKKwl9CisJaWYgKCFFTlRFUl9ESU0gJiYgRU5URVJfU1RBTkRPVVQpCisJCUVOVEVSX0RJTSA9IEVOVEVSX1NUQU5ET1VUOworCWlmICghRU5URVJfUkVWRVJTRSAmJiBFTlRFUl9TVEFORE9VVCkKKwkJRU5URVJfUkVWRVJTRSA9IEVOVEVSX1NUQU5ET1VUOworCWlmICghRVhJVF9BVFRSSUJVVEVTICYmIEVYSVRfU1RBTkRPVVQpCisJCUVYSVRfQVRUUklCVVRFUyA9IEVYSVRfU1RBTkRPVVQ7CisJCisJLyoKKwkgKiBOb3RlIHRoYXQgd2UgdXNlIFJFVkVSU0UgZm9yIHRoZSBhbHRlcm5hdGUgY2hhcmFjdGVyIHNldCwKKwkgKiBub3QgdGhlIGFzL2FlIGNhcGFiaWxpdGllcy4gIFRoaXMgaXMgYmVjYXVzZSB3ZSBhcmUgbW9kZWxsaW5nCisJICogdGhlIG1vZGVsIDM3IHRlbGV0eXBlIChzaW5jZSB0aGF0J3Mgd2hhdCBucm9mZiBvdXRwdXRzKSBhbmQKKwkgKiB0aGUgdHlwaWNhbCBhcy9hZSBpcyBtb3JlIG9mIGEgZ3JhcGhpY3Mgc2V0LCBub3QgdGhlIGdyZWVrCisJICogbGV0dGVycyB0aGUgMzcgaGFzLgorCSAqLworCisJVU5ERVJfQ0hBUiA9CQl0aWdldHN0cigidWMiKTsKKwltdXN0X3VzZV91YyA9IChVTkRFUl9DSEFSICYmICFFTlRFUl9VTkRFUkxJTkUpOworfQorCitzdGF0aWMgaW50IGN1cm1vZGUgPSAwOworCit2b2lkCitvdXRjKHdpbnRfdCBjLCBpbnQgd2lkdGgpIHsKKwlpbnQgaTsKKworCXB1dHdjaGFyKGMpOworCWlmIChtdXN0X3VzZV91YyAmJiAoY3VybW9kZSZVTkRFUkwpKSB7CisJCWZvciAoaT0wOyBpPHdpZHRoOyBpKyspCisJCQlQUklOVChDVVJTX0xFRlQpOworCQlmb3IgKGk9MDsgaTx3aWR0aDsgaSsrKQorCQkJUFJJTlQoVU5ERVJfQ0hBUik7CisJfQorfQorCit2b2lkIHNldG1vZGUoaW50IG5ld21vZGUpCit7CisJaWYgKCFpZmxhZykgeworCQlpZiAoY3VybW9kZSAhPSBOT1JNQUwgJiYgbmV3bW9kZSAhPSBOT1JNQUwpCisJCQlzZXRtb2RlKE5PUk1BTCk7CisJCXN3aXRjaCAobmV3bW9kZSkgeworCQljYXNlIE5PUk1BTDoKKwkJCXN3aXRjaChjdXJtb2RlKSB7CisJCQljYXNlIE5PUk1BTDoKKwkJCQlicmVhazsKKwkJCWNhc2UgVU5ERVJMOgorCQkJCVBSSU5UKEVYSVRfVU5ERVJMSU5FKTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJLyogVGhpcyBpbmNsdWRlcyBzdGFuZG91dCAqLworCQkJCVBSSU5UKEVYSVRfQVRUUklCVVRFUyk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSBBTFRTRVQ6CisJCQlQUklOVChFTlRFUl9SRVZFUlNFKTsKKwkJCWJyZWFrOworCQljYXNlIFNVUEVSU0M6CisJCQkvKgorCQkJICogVGhpcyBvbmx5IHdvcmtzIG9uIGEgZmV3IHRlcm1pbmFscy4KKwkJCSAqIEl0IHNob3VsZCBiZSBmaXhlZC4KKwkJCSAqLworCQkJUFJJTlQoRU5URVJfVU5ERVJMSU5FKTsKKwkJCVBSSU5UKEVOVEVSX0RJTSk7CisJCQlicmVhazsKKwkJY2FzZSBTVUJTQzoKKwkJCVBSSU5UKEVOVEVSX0RJTSk7CisJCQlicmVhazsKKwkJY2FzZSBVTkRFUkw6CisJCQlQUklOVChFTlRFUl9VTkRFUkxJTkUpOworCQkJYnJlYWs7CisJCWNhc2UgQk9MRDoKKwkJCVBSSU5UKEVOVEVSX0JPTEQpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQkvKgorCQkJICogV2Ugc2hvdWxkIGhhdmUgc29tZSBwcm92aXNpb24gaGVyZSBmb3IgbXVsdGlwbGUgbW9kZXMKKwkJCSAqIG9uIGF0IG9uY2UuICBUaGlzIHdpbGwgaGF2ZSB0byBjb21lIGxhdGVyLgorCQkJICovCisJCQlQUklOVChFTlRFUl9TVEFORE9VVCk7CisJCQlicmVhazsKKwkJfQorCX0KKwljdXJtb2RlID0gbmV3bW9kZTsKK30KKworc3RhdGljIHZvaWQKK3NldGNvbChpbnQgbmV3Y29sKSB7CisJY29sID0gbmV3Y29sOworCisJaWYgKGNvbCA8IDApCisJCWNvbCA9IDA7CisJZWxzZSBpZiAoY29sID4gbWF4Y29sKQorCQluZWVkY29sKGNvbCk7Cit9CisKK3N0YXRpYyB2b2lkCituZWVkY29sKGludCBjb2wpIHsKKwltYXhjb2wgPSBjb2w7CisKKwkvKiBJZiBjb2wgPj0gb2J1ZmxlbiwgZXhwYW5kIG9idWYgdW50aWwgb2J1ZmxlbiA+IGNvbC4gKi8KKwl3aGlsZSAoY29sID49IG9idWZsZW4pIHsKKwkJLyogUGFyYW5vaWQgY2hlY2sgZm9yIG9idWZsZW4gPT0gSU5UX01BWC4gKi8KKwkJaWYgKG9idWZsZW4gPT0gSU5UX01BWCkgeworCQkJZnByaW50ZihzdGRlcnIsCisJCQkJXygiSW5wdXQgbGluZSB0b28gbG9uZy5cbiIpKTsKKwkJCWV4aXQoMSk7CisJCX0KKworCQkvKiBTaW1pbGFyIHBhcmFub2lhOiBkb3VibGUgb25seSB1cCB0byBJTlRfTUFYLiAqLworCQlvYnVmbGVuID0gKChJTlRfTUFYIC8gMikgPCBvYnVmbGVuKQorCQkJPyBJTlRfTUFYCisJCQk6IG9idWZsZW4gKiAyOworCisJCS8qIE5vdyB3ZSBjYW4gdHJ5IHRvIGV4cGFuZCBvYnVmLiAqLworCQlvYnVmID0gcmVhbGxvYyhvYnVmLCBzaXplb2Yoc3RydWN0IENIQVIpICogb2J1Zmxlbik7CisJCWlmIChvYnVmID09IE5VTEwpIHsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCV8oIk91dCBvZiBtZW1vcnkgd2hlbiBncm93aW5nIGJ1ZmZlci5cbiIpKTsKKwkJCWV4aXQoMSk7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS91dGlsLWxpbnV4LW5nLTIuMTcuMi90b29scy9jaGVja2NvbmZpZy5zaCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rvb2xzL2NoZWNrY29uZmlnLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk4NGU3MmIKLS0tIC9kZXYvbnVsbAorKysgYi91dGlsLWxpbnV4LW5nLTIuMTcuMi90b29scy9jaGVja2NvbmZpZy5zaApAQCAtMCwwICsxLDUzIEBACisjIS9iaW4vYmFzaAorCisjCisjIFRoaXMgc2NyaXB0IGNoZWNrcyBmb3IgSEFWRV8gYW5kIEVOQUJMRV8gbWFjcm9zIHdoaWNoIGFyZQorIyBub3QgaW5jbHVkZWQgaW4gY29uZmlnLmguaW4KKyMKKyMgVXNhZ2U6ICAgY2hlY2tjb25maWcuc2ggPHRvcF9zcmNkaXI+IDxzcmNmaWxlPiBbPHNyY2ZpbGU+IC4uLl0KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA3IE1hdHRoaWFzIEtvZW5pZyA8bWtvZW5pZ0BzdXNlLmRlPgorIyBDb3B5cmlnaHQgKEMpIDIwMDggS2FyZWwgWmFrIDxremFrQHJlZGhhdC5jb20+CisjCisKKworZnVuY3Rpb24gZGllKCkgeworCWVjaG8gImVycm9yOiAkMSIKKwlleGl0IDEKK30KKworc3JjZGlyPSQxCitjb25maWc9IiRzcmNkaXIvY29uZmlnLmguaW4iCisKK1sgLWQgIiRzcmNkaXIiIF0gfHwgZGllICIkc3JjZGlyOiBub3Qgc3VjaCBkaXJlY3RvcnkuIgorWyAtZiAiJGNvbmZpZyIgXSB8fCBkaWUgIiRjb25maWc6IG5vdCBzdWNoIGZpbGUuIgorCitzaGlmdAorCit3aGlsZSAoKCAiJCMiICkpOyBkbworCXNyY2ZpbGU9JDEKKwlzaGlmdAorCisJWyAhIC1mICIkc3JjZmlsZSIgXSAmJiBjb250aW51ZTsKKworCSMgTm90ZSB0aGF0IHdlIHVzZSBIQVZFXyBtYWNyb3Mgc2luY2UgdXRpbC1saW51eC1uZy0yLjE0LiBUaGUKKwkjIHByZXZpb3VzIHZlcnNpb24gYWxzbyBoYXZlIHVzZWQgRU5BQkxFXyB0b28uCisJIworCSMgRU5BQkxFXyBhbmQgSEFWRV8gbWFjcm9zIHNob3VsZG4ndCBiZSB1c2VkIGZvciBhbnkgb3RoZXIgcHVwb3NlIHRoYXQKKwkjIGZvciBjb25maWcvYnVpbGQgb3B0aW9ucy4KKwkjCisJREVGSU5FUz0kKHNlZCAtbiAtZSAncy8uKlsgXHQoXVwrXChIQVZFX1tbOmFsbnVtOl1dXCtbXiBcdCk7XSpcKS4qL1wxL3AnIFwKKwkJCSAtZSAncy8uKlsgXHQoXVwrXChFTkFCTEVfW1s6YWxudW06XV1cK1teIFx0KTtdKlwpLiovXDEvcCcgXAorICAgICAgICAgICAgICAgICAgICAgICAgICRzcmNmaWxlIHwgc29ydCAtdSkKKwlbIC16ICIkREVGSU5FUyIgXSAmJiBjb250aW51ZQorCisJZm9yIGQgaW4gJERFRklORVM7IGRvCisJCWNhc2UgJGQgaW4KKwkJSEFWRV9DT05GSUdfSCkgY29udGludWUKKwkJICAgOzsKKwkJKikgZ3JlcCAtcSAiJGRcKCBcfFw+XCkiICRjb25maWcgfHwgXAorCQkgICAgIGVjaG8gJChlY2hvICRzcmNmaWxlIHwgc2VkICdzOlxcJyRzcmNkaXIvJzo6JykgIjogJGQiCisJICAgICAgICAgICA7OworCQllc2FjCisJZG9uZQorZG9uZQpkaWZmIC0tZ2l0IGEvdXRpbC1saW51eC1uZy0yLjE3LjIvdG9vbHMvY2hlY2tpbmNsdWRlcy5wbCBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rvb2xzL2NoZWNraW5jbHVkZXMucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGU2YjcxNgotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmctMi4xNy4yL3Rvb2xzL2NoZWNraW5jbHVkZXMucGwKQEAgLTAsMCArMSwyNCBAQAorIyEvdXNyL2Jpbi9wZXJsCisjCisjIGNoZWNraW5jbHVkZXM6IEZpbmQgZmlsZXMgaW5jbHVkZWQgbW9yZSB0aGFuIG9uY2UgaW4gKG90aGVyKSBmaWxlcy4KKyMgQ29weXJpZ2h0IGFiYW5kb25lZCwgMjAwMCwgTmllbHMgS3Jpc3RpYW4gQmVjaCBKZW5zZW4gPG5rYmpAaW1hZ2UuZGs+LgorCitmb3JlYWNoICRmaWxlIChAQVJHVikgeworCW9wZW4oRklMRSwgJGZpbGUpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGZpbGU6ICQhLlxuIjsKKworCW15ICVpbmNsdWRlZGZpbGVzID0gKCk7CisKKwl3aGlsZSAoPEZJTEU+KSB7CisJCWlmIChtL15ccyojXHMqaW5jbHVkZVxzKls8Il0oXFMqKVs+Il0vbykgeworCQkJKyskaW5jbHVkZWRmaWxlc3skMX07CisJCX0KKwl9CisJCisJZm9yZWFjaCAkZmlsZW5hbWUgKGtleXMgJWluY2x1ZGVkZmlsZXMpIHsKKwkJaWYgKCRpbmNsdWRlZGZpbGVzeyRmaWxlbmFtZX0gPiAxKSB7CisJCQlwcmludCAiJGZpbGU6ICRmaWxlbmFtZSBpcyBpbmNsdWRlZCBtb3JlIHRoYW4gb25jZS5cbiI7CisJCX0KKwl9CisKKwljbG9zZShGSUxFKTsKK30KZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmcudGFyLmJ6MiBiL3V0aWwtbGludXgtbmcudGFyLmJ6MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTJlNTlhCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy50YXIuYnoyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmcudXJsIGIvdXRpbC1saW51eC1uZy51cmwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA2ZWM3YwotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwtbGludXgtbmcudXJsCkBAIC0wLDAgKzEgQEAKK2Z0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE3L3V0aWwtbGludXgtbmctMi4xNy4yLnRhci5iejIKZGlmZiAtLWdpdCBhL3V0aWwtbGludXgtbmcudmVyc2lvbiBiL3V0aWwtbGludXgtbmcudmVyc2lvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGRjMGVjCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC1saW51eC1uZy52ZXJzaW9uCkBAIC0wLDAgKzEgQEAKKzIuMTcuMgo=